<?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>127763</bug_id>
          
          <creation_ts>2014-01-27 22:52:55 -0800</creation_ts>
          <short_desc>Merge the jsCStack branch</short_desc>
          <delta_ts>2014-01-31 17:58:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>127777</dependson>
    
    <dependson>127773</dependson>
    
    <dependson>127776</dependson>
    
    <dependson>127856</dependson>
    
    <dependson>127903</dependson>
    
    <dependson>127904</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>bunhere</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbriance</cc>
    
    <cc>mkwst</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>roger_fong</cc>
    
    <cc>sergio</cc>
    
    <cc>syoichi</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>972789</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-27 22:52:55 -0800</bug_when>
    <thetext>I filed this mostly to see if the EWS bots could chew on this for a while.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972791</commentid>
    <comment_count>1</comment_count>
      <attachid>222406</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-27 23:00:52 -0800</bug_when>
    <thetext>Created attachment 222406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972792</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-27 23:03:58 -0800</bug_when>
    <thetext>Attachment 222406 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITCode.h:221:  The parameter name &quot;ref&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITCode.h:244:  The parameter name &quot;ref&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/DFGExitProfile.h:58:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/Repatch.cpp:1497:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:315:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  The parameter name &quot;codeBlock&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ScriptBreakpoint.h:7:  &quot;JavaScriptCore/ScriptBreakpoint.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ScriptBreakpoint.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/jit/JITOperations.cpp:704:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/runtime/VM.h:71:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:165:  The parameter name &quot;kind&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:169:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:172:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:159:  __rcf_exec is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1423:  llint_throw_stack_overflow_error is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1433:  llint_stack_check_at_vm_entry is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:34:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:35:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/jit/ArityCheckFailReturnThunks.cpp:62:  Declaration has space between type name and * in m_nextSize * 2  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/interpreter/Interpreter.cpp:654:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/interpreter/Interpreter.cpp:655:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.h:44:  The parameter name &quot;gpr&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.h:45:  The parameter name &quot;gpr&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLAbstractHeap.cpp:181:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLAbstractHeap.cpp:191:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/ForwardingHeaders/yarr/RegularExpression.h:7:  &quot;JavaScriptCore/RegularExpression.h&quot; already included at Source/WebCore/ForwardingHeaders/yarr/RegularExpression.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:62:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:66:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ScriptDebugListener.h:7:  &quot;JavaScriptCore/ScriptDebugListener.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ScriptDebugListener.h:3  [build/include] [4]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ContentSearchUtilities.h:7:  &quot;JavaScriptCore/ContentSearchUtilities.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ContentSearchUtilities.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:116:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:120:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:123:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitBase.h:70:  The parameter name &quot;jitType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITCode.cpp:130:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITCode.cpp:131:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/heap/MachineStackMarker.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:126:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:134:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:578:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:129:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:59:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:100:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:113:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:356:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:362:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:376:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:378:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:498:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
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]
Total errors found: 52 in 293 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>972800</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-27 23:27:59 -0800</bug_when>
    <thetext>Looks like ENABLE_C_LOOP is unhappy due to using Interpreter in VM.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972801</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-27 23:28:41 -0800</bug_when>
    <thetext>The EFL failure looks like BS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972802</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-27 23:29:35 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Looks like ENABLE_C_LOOP is unhappy due to using Interpreter in VM.h

Specifically in VM::sanitizeStackForVM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972816</commentid>
    <comment_count>6</comment_count>
      <attachid>222406</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 00:13:42 -0800</bug_when>
    <thetext>Comment on attachment 222406
Patch

Attachment 222406 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6667972764499968

New failing tests:
js/large-expressions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972817</commentid>
    <comment_count>7</comment_count>
      <attachid>222412</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 00:13:45 -0800</bug_when>
    <thetext>Created attachment 222412
Archive of layout-test-results from webkit-ews-14 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-14  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972831</commentid>
    <comment_count>8</comment_count>
      <attachid>222406</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 01:02:53 -0800</bug_when>
    <thetext>Comment on attachment 222406
Patch

Attachment 222406 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/5709166211497984

New failing tests:
js/large-expressions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972832</commentid>
    <comment_count>9</comment_count>
      <attachid>222416</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 01:02:58 -0800</bug_when>
    <thetext>Created attachment 222416
Archive of layout-test-results from webkit-ews-06 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-06  Port: mac-mountainlion  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972838</commentid>
    <comment_count>10</comment_count>
      <attachid>222406</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 01:33:05 -0800</bug_when>
    <thetext>Comment on attachment 222406
Patch

Attachment 222406 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6735891565379584

New failing tests:
js/large-expressions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972839</commentid>
    <comment_count>11</comment_count>
      <attachid>222420</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 01:33:08 -0800</bug_when>
    <thetext>Created attachment 222420
Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-12  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972862</commentid>
    <comment_count>12</comment_count>
      <attachid>222406</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 02:46:36 -0800</bug_when>
    <thetext>Comment on attachment 222406
Patch

Attachment 222406 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/6503878170247168

New failing tests:
js/large-expressions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972863</commentid>
    <comment_count>13</comment_count>
      <attachid>222425</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 02:46:39 -0800</bug_when>
    <thetext>Created attachment 222425
Archive of layout-test-results from webkit-ews-01 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-01  Port: mac-mountainlion  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972890</commentid>
    <comment_count>14</comment_count>
      <attachid>222406</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-28 06:39:49 -0800</bug_when>
    <thetext>Comment on attachment 222406
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1325
&gt; +    unsigned depthLimit;
&gt; +    unsigned recursionLimit;
&gt; +    if (canCompile(capabilityLevel)) {
&gt; +        depthLimit = Options::maximumInliningDepth();
&gt; +        recursionLimit = Options::maximumInliningRecursion();
&gt; +    } else {
&gt; +        depthLimit = Options::maximumInliningDepthForMustInline();
&gt; +        recursionLimit = Options::maximumInliningRecursionForMustInline();
&gt; +    }

This part should be removed, because it is dead code as the EFL EWS noticed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972891</commentid>
    <comment_count>15</comment_count>
      <attachid>222437</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-28 06:40:51 -0800</bug_when>
    <thetext>Created attachment 222437
patch for EWS, integrated to the original patch with one more fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972892</commentid>
    <comment_count>16</comment_count>
      <attachid>222437</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-28 06:41:47 -0800</bug_when>
    <thetext>Comment on attachment 222437
patch for EWS, integrated to the original patch with one more fix

uploaded to wrong bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972941</commentid>
    <comment_count>17</comment_count>
      <attachid>222450</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-28 08:57:16 -0800</bug_when>
    <thetext>Created attachment 222450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972946</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-28 09:00:08 -0800</bug_when>
    <thetext>Attachment 222450 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITCode.h:221:  The parameter name &quot;ref&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITCode.h:244:  The parameter name &quot;ref&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/DFGExitProfile.h:58:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/Repatch.cpp:1497:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:315:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  The parameter name &quot;codeBlock&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ScriptBreakpoint.h:7:  &quot;JavaScriptCore/ScriptBreakpoint.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ScriptBreakpoint.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/jit/JITOperations.cpp:704:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/runtime/VM.h:71:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:165:  The parameter name &quot;kind&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:169:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:172:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:159:  __rcf_exec is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:34:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:35:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/jit/ArityCheckFailReturnThunks.cpp:62:  Declaration has space between type name and * in m_nextSize * 2  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/interpreter/Interpreter.cpp:654:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/interpreter/Interpreter.cpp:655:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.h:44:  The parameter name &quot;gpr&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.h:45:  The parameter name &quot;gpr&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLAbstractHeap.cpp:181:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLAbstractHeap.cpp:191:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/ForwardingHeaders/yarr/RegularExpression.h:7:  &quot;JavaScriptCore/RegularExpression.h&quot; already included at Source/WebCore/ForwardingHeaders/yarr/RegularExpression.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:62:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:66:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ScriptDebugListener.h:7:  &quot;JavaScriptCore/ScriptDebugListener.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ScriptDebugListener.h:3  [build/include] [4]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ContentSearchUtilities.h:7:  &quot;JavaScriptCore/ContentSearchUtilities.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ContentSearchUtilities.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:116:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:120:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:123:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitBase.h:70:  The parameter name &quot;jitType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITCode.cpp:130:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITCode.cpp:131:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/heap/MachineStackMarker.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:126:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:134:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:578:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:129:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:59:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:100:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:113:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:356:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:362:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:376:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:378:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:498:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
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]
Total errors found: 50 in 293 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>972985</commentid>
    <comment_count>19</comment_count>
      <attachid>222463</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-28 10:01:52 -0800</bug_when>
    <thetext>Created attachment 222463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972986</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-28 10:05:38 -0800</bug_when>
    <thetext>Attachment 222463 did not pass style-queue:


ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:315:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/VM.h:71:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:169:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:172:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:159:  __rcf_exec is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:34:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:35:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:62:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:66:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:116:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:120:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:123:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/heap/MachineStackMarker.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:134:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:59:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:100:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:113:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:497:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 19 in 289 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>972995</commentid>
    <comment_count>21</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-28 10:30:23 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Created an attachment (id=222463) [details]
&gt; Patch

I&apos;m not sure why Windows is failing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973000</commentid>
    <comment_count>22</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-28 10:54:14 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #19)
&gt; &gt; Created an attachment (id=222463) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; I&apos;m not sure why Windows is failing.

From the build output it looks like we don&apos;t do anything when compiling the JavaScriptCore target.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973012</commentid>
    <comment_count>23</comment_count>
      <attachid>222468</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-28 11:22:39 -0800</bug_when>
    <thetext>Created attachment 222468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973013</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-28 11:24:38 -0800</bug_when>
    <thetext>Attachment 222468 did not pass style-queue:


ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:315:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/VM.h:71:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:169:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:172:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:159:  __rcf_exec is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:34:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:35:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:62:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:66:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:116:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:120:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:123:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/heap/MachineStackMarker.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:134:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:59:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:100:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:113:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:497:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 19 in 289 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>973052</commentid>
    <comment_count>25</comment_count>
      <attachid>222468</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 13:25:51 -0800</bug_when>
    <thetext>Comment on attachment 222468
Patch

Attachment 222468 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/5369286860210176

New failing tests:
js/large-expressions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973053</commentid>
    <comment_count>26</comment_count>
      <attachid>222477</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 13:25:55 -0800</bug_when>
    <thetext>Created attachment 222477
Archive of layout-test-results from webkit-ews-06 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-06  Port: mac-mountainlion  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973122</commentid>
    <comment_count>27</comment_count>
      <attachid>222496</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-01-28 14:51:58 -0800</bug_when>
    <thetext>Created attachment 222496
Updated patch that build with ENABLE_LLINT_C_LOOP=1

Believe this will fix Windows build, but want to see what the EWS says.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973124</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-28 14:54:54 -0800</bug_when>
    <thetext>Attachment 222496 did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp:67:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:315:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/VM.h:71:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:174:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:159:  __rcf_exec is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:34:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:35:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:62:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:66:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:116:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:120:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:123:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/heap/MachineStackMarker.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:134:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:59:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:100:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:113:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:497:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 20 in 214 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>973168</commentid>
    <comment_count>29</comment_count>
      <attachid>222516</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-01-28 15:42:54 -0800</bug_when>
    <thetext>Created attachment 222516
Patch with added missing files

Prior patch with new files added back in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973172</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-28 15:45:59 -0800</bug_when>
    <thetext>Attachment 222516 did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp:67:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:315:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/VM.h:71:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:174:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:159:  __rcf_exec is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:34:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:35:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:62:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:66:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:116:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:120:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:123:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/heap/MachineStackMarker.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:134:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:59:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:100:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:113:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:497:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 20 in 288 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>973198</commentid>
    <comment_count>31</comment_count>
      <attachid>222524</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-01-28 16:08:34 -0800</bug_when>
    <thetext>Created attachment 222524
Updated patch with speculative build fix for Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973205</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-28 16:12:30 -0800</bug_when>
    <thetext>Attachment 222524 did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp:67:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:315:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/VM.h:71:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:174:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:159:  __rcf_exec is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:34:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:35:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:62:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:66:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:116:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:120:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:123:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/heap/MachineStackMarker.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:134:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:59:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:100:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:113:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:497:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 20 in 288 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>973405</commentid>
    <comment_count>33</comment_count>
      <attachid>222524</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-29 10:41:30 -0800</bug_when>
    <thetext>Comment on attachment 222524
Updated patch with speculative build fix for Windows

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973420</commentid>
    <comment_count>34</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-01-29 11:14:21 -0800</bug_when>
    <thetext>Committed r163027: &lt;http://trac.webkit.org/changeset/163027&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973829</commentid>
    <comment_count>35</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2014-01-30 11:04:29 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; Committed r163027: &lt;http://trac.webkit.org/changeset/163027&gt;

Following this patch.
500+ layout test failures on Windows
http://build.webkit.org/builders/Apple%20Win%207%20Release%20%28Tests%29/builds/42167/steps/layout-test/logs/stdio

Also JSC tests don&apos;t run. After some investigating:

It&apos;s testapi that&apos;s failing. Testapi.c Ln 1602    
ASSERT(JSValueIsObject(context, result));

The script silently stops which is why we don&apos;t see any output on the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973939</commentid>
    <comment_count>36</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2014-01-30 13:08:22 -0800</bug_when>
    <thetext>Filed bug for Windows failures: https://bugs.webkit.org/process_bug.cgi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974549</commentid>
    <comment_count>37</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-31 17:58:02 -0800</bug_when>
    <thetext>This caused all media support in the Windows port to break.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222406</attachid>
            <date>2014-01-27 23:00:52 -0800</date>
            <delta_ts>2014-01-28 08:57:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127763-20140127230041.patch</filename>
            <type>text/plain</type>
            <size>1634158</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkyMSBA
QAorMjAxNC0wMS0yNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIE1lcmdlIHRoZSBqc0NTdGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6Cisg
ICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6
aXNJbnQ3KToKKyAgICAgICAgKEpTQzo6aXNJbnQxMSk6CisgICAgICAgIChKU0M6OlBhaXJQb3N0
SW5kZXg6OlBhaXJQb3N0SW5kZXgpOgorICAgICAgICAoSlNDOjpQYWlyUG9zdEluZGV4OjpvcGVy
YXRvciBpbnQpOgorICAgICAgICAoSlNDOjpQYWlyUHJlSW5kZXg6OlBhaXJQcmVJbmRleCk6Cisg
ICAgICAgIChKU0M6OlBhaXJQcmVJbmRleDo6b3BlcmF0b3IgaW50KToKKyAgICAgICAgKEpTQzo6
QVJNNjRBc3NlbWJsZXI6Om1lbVBhaXJPZmZzZXRTaGlmdCk6CisgICAgICAgIChKU0M6OkFSTTY0
QXNzZW1ibGVyOjphZGQpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bGRwKToKKyAg
ICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OnN0cCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNz
ZW1ibGVyOjpzdWIpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFN0b3JlUmVn
aXN0ZXJQYWlyUG9zdEluZGV4KToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmxvYWRT
dG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KToKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3Nl
bWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmFkZCk6CisgICAgICAgIChK
U0M6OkFSTXY3QXNzZW1ibGVyOjpwb3ApOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6
cHVzaCk6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpBUk1JbnN0cnVjdGlvbkZvcm1h
dHRlcjo6dHdvV29yZE9wMTZJbW0xNik6CisgICAgICAgICogYXNzZW1ibGVyL0Fic3RyYWN0TWFj
cm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTGlua0J1ZmZlci5jcHA6CisgICAg
ICAgIChKU0M6OnNob3VsZFNob3dEaXNhc3NlbWJseUZvcik6CisgICAgICAgIChKU0M6OkxpbmtC
dWZmZXI6OmZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseSk6CisgICAgICAgICogYXNzZW1ibGVy
L0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZW50cnlwb2ludCk6Cisg
ICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyOjpzdG9yZVB0cik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6YWRkNjQpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpwb3BQYWlyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6cHVzaFBhaXIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmFk
ZDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6cG9wUGFpcik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnB1c2hQYWlyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk12Nzo6dGVzdDMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJDb2RlUmVmLmg6CisgICAgICAgIChKU0M6OlJldHVybkFkZHJlc3NQdHI6OmR1bXAp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVQdHI6Om9wZXJhdG9yIFVuc3BlY2lm
aWVkQm9vbFR5cGUqKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpvcGVy
YXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKik6CisgICAgICAgICogYXNzZW1ibGVyL01heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmg6IEFkZGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6dW5saW5rKToKKyAgICAg
ICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZv
OjpDYWxsTGlua0luZm8pOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcDoK
KyAgICAgICAgKEpTQzo6Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQpOgorICAgICAg
ICAoSlNDOjpDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgIChKU0M6OkNhbGxM
aW5rU3RhdHVzOjpjb21wdXRlREZHU3RhdHVzZXMpOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxM
aW5rU3RhdHVzLmg6CisgICAgICAgIChKU0M6OkNhbGxMaW5rU3RhdHVzOjptYWtlQ2xvc3VyZUNh
bGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6ZHVtcEFzc3VtaW5nSklUVHlwZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpDb2RlQmxvY2spOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmdldFN0dWJJbmZvTWFwKToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjphZGRTdHViSW5mbyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZE
RkdDb21waWxlcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Y2hlY2tJZk9wdGltaXphdGlv
blRocmVzaG9sZFJlYWNoZWQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnN0YWNrUG9pbnRl
ck9mZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6c2V0SklUQ29kZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6aml0Q29k
ZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3BlY2lhbEZhc3RDYXNlUHJvZmlsZUZvckJ5
dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpoYXNFeGl0U2l0ZSk6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6bGl2ZW5lc3NBbmFseXNpcyk6CisgICAgICAgICogYnl0
ZWNvZGUvQ29kZU9yaWdpbi5jcHA6CisgICAgICAgIChKU0M6OkNvZGVPcmlnaW46OmlzQXBwcm94
aW1hdGVseUVxdWFsVG8pOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2luOjphcHByb3hpbWF0ZUhh
c2gpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVPcmlnaW4uaDoKKyAgICAgICAgKEpTQzo6Q29k
ZU9yaWdpbjo6Q29kZU9yaWdpbik6CisgICAgICAgIChKU0M6OkNvZGVPcmlnaW46OmRlbGV0ZWRN
YXJrZXIpOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoOjpoYXNoKToK
KyAgICAgICAgKEpTQzo6Q29kZU9yaWdpbkFwcHJveGltYXRlSGFzaDo6ZXF1YWwpOgorICAgICAg
ICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0
UHJvZmlsZTo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0UHJvZmlsZTo6aGFzRXhpdFNp
dGUpOgorICAgICAgICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmg6CisgICAgICAgIChKU0M6
OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6RnJlcXVlbnRFeGl0U2l0ZSk6CisgICAgICAgIChKU0M6
OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChKU0M6OkRGRzo6
RnJlcXVlbnRFeGl0U2l0ZTo6c3Vic3VtZXMpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50
RXhpdFNpdGU6Omhhc2gpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50RXhpdFNpdGU6Ompp
dFR5cGUpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50RXhpdFNpdGU6OndpdGhKSVRUeXBl
KToKKyAgICAgICAgKEpTQzo6REZHOjpRdWVyeWFibGVFeGl0UHJvZmlsZTo6aGFzRXhpdFNpdGUp
OgorICAgICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmg6CisgICAgICAgICogYnl0ZWNvZGUvRXhp
dGluZ0pJVFR5cGUuaDogQWRkZWQuCisgICAgICAgIChKU0M6OmV4aXRpbmdKSVRUeXBlRm9yKToK
KyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0
QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUpOgorICAgICAgICAoSlNDOjpHZXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yKToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJ
bmZvKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogYnl0
ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwOgorICAgICAg
ICAoSlNDOjpQcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludDo6ZmlyZUludGVy
bmFsKToKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6UHV0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUpOgorICAgICAgICAoSlNDOjpQdXRCeUlkU3Rh
dHVzOjpjb21wdXRlRm9yKToKKyAgICAgICAgKEpTQzo6UHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
clN0dWJJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmg6CisgICAgICAg
ICogYnl0ZWNvZGUvU3RydWN0dXJlU2V0Lmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNldDo6
U3RydWN0dXJlU2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU2V0OjphZGQpOgorICAgICAg
ICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAgICAgICogYnl0ZWNvZGUvVmFs
dWVSZWNvdmVyeS5oOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5Ojp3aXRoTG9jYWxzT2Zm
c2V0KToKKyAgICAgICAgKiBieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaDoKKyAgICAgICAgKEpT
Qzo6VmlydHVhbFJlZ2lzdGVyOjpvZmZzZXRJbkJ5dGVzKToKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlckNhbGxGcmFtZS5jcHA6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6QXJyYXlNb2RlOjpyZWZpbmUpOgorICAgICAgICAqIGRmZy9ERkdB
cnJheU1vZGUuaDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjphZGRDYWxsKToKKyAgICAgICAgKEpTQzo6REZH
OjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZUlubGluaW5nKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlR2V0QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OnBhcnNlQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZSk6
CisgICAgICAgICogZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkNGR1NpbXBsaWZpY2F0aW9uUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RG
R0NTRVBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDU0VQaGFzZTo6aW52YWxpZGF0aW9u
UG9pbnRFbGltaW5hdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6Q1NFUGhhc2U6OnBlcmZvcm1O
b2RlQ1NFKToKKyAgICAgICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMu
aDoKKyAgICAgICAgKEpTQzo6REZHOjppbmxpbmVGdW5jdGlvbkZvckNhbGxDYXBhYmlsaXR5TGV2
ZWwpOgorICAgICAgICAoSlNDOjpERkc6OmlubGluZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGxDYXBh
YmlsaXR5TGV2ZWwpOgorICAgICAgICAoSlNDOjpERkc6OmlubGluZUZ1bmN0aW9uRm9yQ29uc3Ry
dWN0Q2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKEpTQzo6REZHOjppbmxpbmVGdW5jdGlvbkZv
ckNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZnL0RGR0NvbW1vbi5oOgorICAgICAgICAq
IGRmZy9ERkdDb21waWxhdGlvbk1vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjppc0ZUTCk6Cisg
ICAgICAgICogZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUlt
cGwpOgorICAgICAgICAoSlNDOjpERkc6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdEcml2
ZXIuaDoKKyAgICAgICAgKiBkZmcvREZHRmFpbGVkRmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpGYWlsZWRGaW5hbGl6ZXI6OmNvZGVTaXplKToKKyAgICAgICAgKiBkZmcvREZHRmFp
bGVkRmluYWxpemVyLmg6CisgICAgICAgICogZGZnL0RGR0ZpbmFsaXplci5oOgorICAgICAgICAq
IGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpm
aXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwU2V0TG9jYWxz
SW5CbG9jayk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBVbnR5cGVkU2V0
TG9jYWxzSW5CbG9jayk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4RWRnZSk6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6aW5zZXJ0U3RvcmVCYXJyaWVyKToKKyAg
ICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXhJbnRFZGdlKToKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjppbmplY3RJbnQzMlRvRG91YmxlTm9kZSk6CisgICAgICAgIChKU0M6
OkRGRzo6Rml4dXBQaGFzZTo6YXR0ZW1wdFRvTWFrZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAg
KEpTQzo6REZHOjpGaXh1cFBoYXNlOjphZGRQaGFudG9tc0lmTmVjZXNzYXJ5KToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjppc0xpdmVJbkJ5
dGVjb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZnJhbWVSZWdpc3RlckNvdW50KToK
KyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6c3RhY2tQb2ludGVyT2Zmc2V0KToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKiBkZmcvREZHSklUQ29kZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6SklUQ29kZTo6c2V0T3B0aW1pemF0aW9uVGhyZXNob2xkQmFzZWRPbkNvbXBp
bGF0aW9uUmVzdWx0KToKKyAgICAgICAgKiBkZmcvREZHSklUQ29kZS5oOgorICAgICAgICAqIGRm
Zy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNv
bXBpbGVFbnRyeSk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNvbXBpbGVFeGNl
cHRpb25IYW5kbGVycyk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmxpbmspOgor
ICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpjb21waWxlKToKKyAgICAgICAgKEpTQzo6
REZHOjpKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuaDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6Y3VycmVudEpTQ2Fs
bEluZGV4KToKKyAgICAgICAgKiBkZmcvREZHSklURmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpKSVRGaW5hbGl6ZXI6OmNvZGVTaXplKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRG
aW5hbGl6ZXI6OmZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRGaW5hbGl6ZXI6OmZp
bmFsaXplRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpERkc6OkpJVEZpbmFsaXplcjo6ZmluYWxp
emVDb21tb24pOgorICAgICAgICAqIGRmZy9ERkdKSVRGaW5hbGl6ZXIuaDoKKyAgICAgICAgKiBk
ZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmlzU2VtYW50aWNhbGx5U2tp
cHBhYmxlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpkdW1wTm9kZUZsYWdzKToKKyAgICAgICAgKiBkZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5h
bHlzaXNQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSQXZhaWxhYmlsaXR5QW5hbHlz
aXNQaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHT1NSRW50cnkuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OnByZXBhcmVPU1JFbnRyeSk6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5cG9p
bnRDcmVhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFbnRyeXBvaW50Q3Jl
YXRpb25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdC5oOgorICAgICAgICAo
SlNDOjpERkc6Ok9TUkV4aXQ6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKToKKyAg
ICAgICAgKiBkZmcvREZHT1NSRXhpdEJhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4
aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3cpOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0QmFzZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4aXRCYXNlOjpj
b25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZSk6CisgICAgICAgICogZGZnL0RGR09TUkV4
aXRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAg
ICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
Ok9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0
Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAoSlNDOjpERkc6OmFkanVzdEFuZEp1bXBUb1Rh
cmdldCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9E
RkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpwcm9maWxlckNvbXBpbGF0aW9uS2luZEZv
ck1vZGUpOgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OlBsYW4pOgorICAgICAgICAoSlNDOjpE
Rkc6OlBsYW46OnJlcG9ydENvbXBpbGVUaW1lcyk6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6
Y29tcGlsZUluVGhyZWFkKToKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJl
YWRJbXBsKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5oOgorICAgICAgICAqIGRmZy9ERkdTU0FM
b3dlcmluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTU0FMb3dlcmluZ1BoYXNlOjpo
YW5kbGVOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpTU0FMb3dlcmluZ1BoYXNlOjpsb3dlckJv
dW5kc0NoZWNrKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3VycmVudEJsb2NrKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6cHJlcGFyZUpJVENvZGVGb3JUaWVyVXApOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheSk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckZs
b2F0VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVBcml0aE1vZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUZyYW1lT2Zmc2V0KToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlQXJndW1lbnRTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVUYWdTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVQYXlsb2FkU2xvdCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUFyZ3VtZW50VGFnU2xvdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3Qp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsZWVGcmFtZUNhbGxlckZy
YW1lKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVGllclVwQ2hlY2tJ
bmplY3Rpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6VGllclVwQ2hlY2tJbmplY3Rp
b25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHVmFsaWRhdGUuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlZhbGlkYXRlOjp2YWxpZGF0ZSk6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxERkdXb3JrbGlzdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCk6CisgICAgICAg
IChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6
OmV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwpOgorICAgICAgICAoSlNDOjpERkc6OmVu
c3VyZUdsb2JhbFdvcmtsaXN0Rm9yKToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAg
ICAgICAgKiBkaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHA6CisgICAgICAgIChKU0M6
OkFSTTY0RGlzYXNzZW1ibGVyOjpBNjRET3Bjb2RlOjphcHBlbmRSZWdpc3Rlck5hbWUpOgorICAg
ICAgICAoSlNDOjpBUk02NERpc2Fzc2VtYmxlcjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVy
UGFpcjo6b3BOYW1lKToKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2NERPcGNv
ZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OmZvcm1hdCk6CisgICAgICAgICogZGlzYXNzZW1ibGVy
L0FSTTY0L0E2NERPcGNvZGUuaDoKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2
NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OnJ0Mik6CisgICAgICAgIChKU0M6OkFSTTY0
RGlzYXNzZW1ibGVyOjpBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyOjppbW1lZGlhdGU3
KToKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2NERPcGNvZGVMb2FkU3RvcmVS
ZWdpc3RlclBhaXI6Om9mZnNldE1vZGUpOgorICAgICAgICAoSlNDOjpBUk02NERpc2Fzc2VtYmxl
cjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpcjo6bEJpdCk6CisgICAgICAgICogZnRs
L0ZUTEFiYnJldmlhdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6RlRMOjphcnJheVR5cGUpOgorICAg
ICAgICAoSlNDOjpGVEw6OmFkZFRhcmdldERlcGVuZGVudEZ1bmN0aW9uQXR0cik6CisgICAgICAg
ICogZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6SW5kZXhlZEFi
c3RyYWN0SGVhcDo6SW5kZXhlZEFic3RyYWN0SGVhcCk6CisgICAgICAgIChKU0M6OkZUTDo6SW5k
ZXhlZEFic3RyYWN0SGVhcDo6YmFzZUluZGV4KToKKyAgICAgICAgKEpTQzo6RlRMOjpJbmRleGVk
QWJzdHJhY3RIZWFwOjppbml0aWFsaXplKToKKyAgICAgICAgKEpTQzo6RlRMOjpOdW1iZXJlZEFi
c3RyYWN0SGVhcDo6TnVtYmVyZWRBYnN0cmFjdEhlYXApOgorICAgICAgICAoSlNDOjpGVEw6OkFi
c29sdXRlQWJzdHJhY3RIZWFwOjpBYnNvbHV0ZUFic3RyYWN0SGVhcCk6CisgICAgICAgICogZnRs
L0ZUTEFic3RyYWN0SGVhcC5oOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpBYnN0
cmFjdEhlYXBSZXBvc2l0b3J5KToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpGVEw6OkF2YWlsYWJsZVJlY292ZXJ5OjpkdW1wKToKKyAgICAgICAgKiBm
dGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6QXZh
aWxhYmxlUmVjb3Zlcnk6OkF2YWlsYWJsZVJlY292ZXJ5KToKKyAgICAgICAgKEpTQzo6RlRMOjpB
dmFpbGFibGVSZWNvdmVyeTo6bm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVj
b3Zlcnk6OmZvcm1hdCk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVjb3Zlcnk6Om9w
Y29kZSk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVjb3Zlcnk6OmxlZnQpOgorICAg
ICAgICAoSlNDOjpGVEw6OkF2YWlsYWJsZVJlY292ZXJ5OjpyaWdodCk6CisgICAgICAgICogZnRs
L0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6dmVyYm9zZUNhcGFiaWxp
dGllcyk6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TENvbW1vblZhbHVlcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Q29tbW9uVmFsdWVzOjpDb21t
b25WYWx1ZXMpOgorICAgICAgICAqIGZ0bC9GVExDb21tb25WYWx1ZXMuaDoKKyAgICAgICAgKiBm
dGwvRlRMQ29tcGlsZS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6bW1BbGxvY2F0ZUNvZGVTZWN0
aW9uKToKKyAgICAgICAgKEpTQzo6RlRMOjpmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMpOgor
ICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExFeGl0VmFsdWUu
Y3BwOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6ZHVtcEluQ29udGV4dCk6CisgICAg
ICAgICogZnRsL0ZUTEV4aXRWYWx1ZS5oOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6
cmVjb3ZlcnkpOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6aXNSZWNvdmVyeSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVlOjpsZWZ0UmVjb3ZlcnlBcmd1bWVudCk6CisgICAg
ICAgIChKU0M6OkZUTDo6RXhpdFZhbHVlOjpyaWdodFJlY292ZXJ5QXJndW1lbnQpOgorICAgICAg
ICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6cmVjb3ZlcnlGb3JtYXQpOgorICAgICAgICAoSlNDOjpG
VEw6OkV4aXRWYWx1ZTo6cmVjb3ZlcnlPcGNvZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRW
YWx1ZTo6d2l0aFZpcnR1YWxSZWdpc3Rlcik6CisgICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVl
Ojp2YWx1ZUZvcm1hdCk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2l6ZU9mQ2FsbCk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNh
Y2hlU2l6ZS5oOgorICAgICAgICAqIGZ0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5Lmg6CisgICAg
ICAgICogZnRsL0ZUTEpJVENvZGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENvZGU6Omlu
aXRpYWxpemVBcml0eUNoZWNrRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29k
ZTo6aW5pdGlhbGl6ZUFkZHJlc3NGb3JDYWxsKToKKyAgICAgICAgKEpTQzo6RlRMOjpKSVRDb2Rl
OjphZGRyZXNzRm9yQ2FsbCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6ZXhlY3V0YWJs
ZUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6ZGF0YUFkZHJl
c3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6b2Zmc2V0T2YpOgorICAg
ICAgICAoSlNDOjpGVEw6OkpJVENvZGU6OnNpemUpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENv
ZGU6OmNvbnRhaW5zKToKKyAgICAgICAgKiBmdGwvRlRMSklUQ29kZS5oOgorICAgICAgICAqIGZ0
bC9GVExKSVRGaW5hbGl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJVEZpbmFsaXplcjo6
Y29kZVNpemUpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5j
dGlvbik6CisgICAgICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGZ0bC9G
VExKU0NhbGwuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpKU0NhbGw6OkpTQ2FsbCk6
CisgICAgICAgIChKU0M6OkZUTDo6SlNDYWxsOjplbWl0KToKKyAgICAgICAgKEpTQzo6RlRMOjpK
U0NhbGw6OmxpbmspOgorICAgICAgICAqIGZ0bC9GVExKU0NhbGwuaDogQWRkZWQuCisgICAgICAg
IChKU0M6OkZUTDo6SlNDYWxsOjpzdGFja21hcElEKToKKyAgICAgICAgKEpTQzo6RlRMOjpKU0Nh
bGw6Om9wZXJhdG9yPCk6CisgICAgICAgICogZnRsL0ZUTExpbmsuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OmxpbmspOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06Omxvd2VyKToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2Vy
REZHVG9MTFZNOjpjb21waWxlQXJpdGhBZGRPclN1Yik6CisgICAgICAgIChKU0M6OkZUTDo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVBcml0aE11bCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVBcml0aERpdik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVBcml0aE1vZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVBcml0aFNpbik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmNvbXBpbGVBcml0aENvcyk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVBcml0aFNxcnQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQXJpdGhOZWdhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQ2hlY2tFeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
Y29tcGlsZUdldEJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlUHV0QnlJZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVH
ZXRBcnJheUxlbmd0aCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVQ
dXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOZXdB
cnJheVdpdGhTaXplKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZVRvU3RyaW5nKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU1h
a2VSb3BlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVN0cmlu
Z0NoYXJBdCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTdHJp
bmdDaGFyQ29kZUF0KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZUdldENhbGxlZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVH
ZXRTY29wZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDYWxs
T3JDb25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxl
U3dpdGNoKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNoZWNr
QXJndW1lbnRzTm90Q3JlYXRlZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmNvbXBpbGVDb3VudEV4ZWN1dGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OnR5cGVkQXJyYXlMZW5ndGgpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZN
Ojpib29saWZ5KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29udGlndW91
c1B1dEJ5VmFsT3V0T2ZCb3VuZHMpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZN
OjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxh
dGVTdHJpbmdPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpzcGVj
dWxhdGVTdHJpbmdPclN0cmluZ09iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OnNwZWN1bGF0ZVN0cmluZ09iamVjdEZvckNlbGwpOgorICAgICAgICAoSlNDOjpGVEw6
Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JTdHJ1Y3R1cmUpOgorICAg
ICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjYWxsQ2hlY2spOgorICAgICAgICAoSlND
OjpGVEw6Okxvd2VyREZHVG9MTFZNOjphcHBlbmRPU1JFeGl0KToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6YnVpbGRFeGl0QXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y2FsbFN0YWNrbWFwKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dl
ckRGR1RvTExWTTo6YWRkRXhpdEFyZ3VtZW50Rm9yTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6
TG93ZXJERkdUb0xMVk06OmRvZXNLaWxsKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1Rv
TExWTTo6YWRkQXZhaWxhYmxlUmVjb3ZlcnkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZH
VG9MTFZNOjpwYXlsb2FkRm9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
dGFnRm9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6YWRkcmVzc0Zvcik6
CisgICAgICAgICogZnRsL0ZUTE9TUkVudHJ5LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpwcmVw
YXJlT1NSRW50cnkpOgorICAgICAgICAqIGZ0bC9GVExPU1JFeGl0Lmg6CisgICAgICAgIChKU0M6
OkZUTDo6T1NSRXhpdDo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUpOgorICAgICAg
ICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBp
bGVTdHViKToKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6
T3V0cHV0Ojpkb3VibGVTaW4pOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlQ29z
KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OmRvdWJsZVNxcnQpOgorICAgICAgICAoSlND
OjpGVEw6Ok91dHB1dDo6cHRyVG9JbnQpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YXNj
cmliZVJhbmdlKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6Om5vbk5lZ2F0aXZlMzIpOgor
ICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6bG9hZDMyTm9uTmVnYXRpdmUpOgorICAgICAgICAq
IGZ0bC9GVExSZWNvdmVyeU9wY29kZS5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpwcmludElu
dGVybmFsKToKKyAgICAgICAgKiBmdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaDogQWRkZWQuCisgICAg
ICAgICogZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6
RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpkdW1wKToKKyAgICAgICAgKiBmdGwvRlRMUmVnaXN0ZXJB
dE9mZnNldC5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpS
ZWdpc3RlckF0T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0Ojpv
cGVyYXRvciEpOgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lzdGVyQXRPZmZzZXQ6Omdwcik6Cisg
ICAgICAgIChKU0M6OkZUTDo6UmVnaXN0ZXJBdE9mZnNldDo6b2Zmc2V0KToKKyAgICAgICAgKEpT
Qzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpvcGVyYXRvcj09KToKKyAgICAgICAgKEpTQzo6RlRM
OjpSZWdpc3RlckF0T2Zmc2V0OjpvcGVyYXRvcjwpOgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lz
dGVyQXRPZmZzZXQ6OmdldEdQUik6CisgICAgICAgICogZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6c3RvcmVDb2RlT3JpZ2luKToKKyAgICAgICAgKEpTQzo6RlRM
OjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBmdGwvRlRMU2xvd1BhdGhDYWxsLmg6CisgICAg
ICAgICogZnRsL0ZUTFN0YWNrTWFwcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6U3RhY2tNYXBz
OjpSZWNvcmQ6OnBhcnNlKToKKyAgICAgICAgKiBmdGwvRlRMU3RhY2tNYXBzLmg6CisgICAgICAg
ICogZnRsL0ZUTFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpTdGF0ZTo6U3RhdGUpOgor
ICAgICAgICAqIGZ0bC9GVExTdGF0ZS5oOgorICAgICAgICAqIGZ0bC9GVExUaHVua3MuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6Om9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpGVEw6OnNsb3dQYXRoQ2FsbFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKiBm
dGwvRlRMVGh1bmtzLmg6CisgICAgICAgICogZnRsL0ZUTFVud2luZEluZm8uY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6RlRMOjpVbndpbmRJbmZvOjpVbndpbmRJbmZvKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpVbndpbmRJbmZvOjp+VW53aW5kSW5mbyk6CisgICAgICAgIChKU0M6OkZUTDo6VW53
aW5kSW5mbzo6cGFyc2UpOgorICAgICAgICAoSlNDOjpGVEw6OlVud2luZEluZm86OmR1bXApOgor
ICAgICAgICAoSlNDOjpGVEw6OlVud2luZEluZm86OmZpbmQpOgorICAgICAgICAoSlNDOjpGVEw6
OlVud2luZEluZm86OmluZGV4T2YpOgorICAgICAgICAqIGZ0bC9GVExVbndpbmRJbmZvLmg6IEFk
ZGVkLgorICAgICAgICAqIGZ0bC9GVExWYWx1ZVJhbmdlLmNwcDogQWRkZWQuCisgICAgICAgIChK
U0M6OkZUTDo6VmFsdWVSYW5nZTo6ZGVjb3JhdGVJbnN0cnVjdGlvbik6CisgICAgICAgICogZnRs
L0ZUTFZhbHVlUmFuZ2UuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6VmFsdWVSYW5nZTo6
VmFsdWVSYW5nZSk6CisgICAgICAgIChKU0M6OkZUTDo6VmFsdWVSYW5nZTo6YmVnaW4pOgorICAg
ICAgICAoSlNDOjpGVEw6OlZhbHVlUmFuZ2U6OmVuZCk6CisgICAgICAgICogaGVhcC9Db25zZXJ2
YXRpdmVSb290cy5jcHA6CisgICAgICAgIChKU0M6OkNvbnNlcnZhdGl2ZVJvb3RzOjpnZW5lcmlj
QWRkU3Bhbik6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6
bWFya1Jvb3RzKToKKyAgICAgICAgKEpTQzo6SGVhcDo6Y29sbGVjdElmTmVjZXNzYXJ5T3JEZWZl
cik6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgIChKU0M6OkhlYXA6OmlzRGVmZXJy
ZWQpOgorICAgICAgICAqIGhlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcDoKKyAgICAgICAgKEpT
Qzo6TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGhyZWFkKToKKyAgICAgICAgKEpT
Qzo6TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21PdGhlclRocmVhZCk6CisgICAgICAgIChKU0M6
Ok1hY2hpbmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgICogaGVh
cC9NYWNoaW5lU3RhY2tNYXJrZXIuaDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUu
Y3BwOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnRvcE9mRnJhbWVJbnRlcm5hbCk6CisgICAg
ICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6
dG9wT2ZGcmFtZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAg
ICAgICAoSlNDOjpzaXplRnJhbWVGb3JWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6dW53aW5kQ2Fs
bEZyYW1lKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnVud2luZCk6CisgICAgICAgIChK
U0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4
ZWN1dGVDYWxsKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3Qp
OgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJlcGFyZUZvclJlcGVhdENhbGwpOgorICAg
ICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6CisgICAgICAgIChKU0M6Ok5hdGl2ZUNh
bGxGcmFtZVRyYWNlcjo6TmF0aXZlQ2FsbEZyYW1lVHJhY2VyKToKKyAgICAgICAgKiBpbnRlcnBy
ZXRlci9KU1N0YWNrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6SlNTdGFjayk6CisgICAg
ICAgIChKU0M6OkpTU3RhY2s6On5KU1N0YWNrKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6Z3Jv
d1Nsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6Z2F0aGVyQ29uc2VydmF0aXZlUm9v
dHMpOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpzYW5pdGl6ZVN0YWNrKToKKyAgICAgICAgKEpT
Qzo6SlNTdGFjazo6cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KToKKyAgICAgICAgKEpTQzo6SlNTdGFj
azo6c2V0UmVzZXJ2ZWRab25lU2l6ZSk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6Omxvd0FkZHJl
c3MpOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpoaWdoQWRkcmVzcyk6CisgICAgICAgIChKU0M6
OkpTU3RhY2s6OmNvbW1pdHRlZEJ5dGVDb3VudCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSlNT
dGFjay5oOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpjb250YWluc0FkZHJlc3MpOgorICAgICAg
ICAoSlNDOjpKU1N0YWNrOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6
OkpTU3RhY2s6OnNhbml0aXplU3RhY2spOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjppbml0aWFs
aXplVGhyZWFkaW5nKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6YmFzZU9mU3RhY2spOgorICAg
ICAgICAoSlNDOjpKU1N0YWNrOjpsb3dBZGRyZXNzKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6
cmVzZXJ2YXRpb25Ub3ApOgorICAgICAgICAqIGludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmg6
CisgICAgICAgIChKU0M6OkpTU3RhY2s6OmVuc3VyZUNhcGFjaXR5Rm9yKToKKyAgICAgICAgKEpT
Qzo6SlNTdGFjazo6dG9wT2ZGcmFtZUZvcik6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OnRvcE9m
U3RhY2spOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpzaHJpbmspOgorICAgICAgICAoSlNDOjpK
U1N0YWNrOjpncm93KToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6c2V0U3RhY2tMaW1pdCk6Cisg
ICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpQ
cm90b0NhbGxGcmFtZTo6aW5pdCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJh
bWUuaDoKKyAgICAgICAgKEpTQzo6UHJvdG9DYWxsRnJhbWU6OnNldFBhZGRlZEFyZ0NvdW50KToK
KyAgICAgICAgKiBqaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKEpTQzo6QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6OkFyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzKToKKyAgICAgICAgKEpTQzo6QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6On5B
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcyk6CisgICAgICAgIChKU0M6OkFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzOjpyZXR1cm5QQ3NGb3IpOgorICAgICAgICAoSlNDOjpBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rczo6cmV0dXJuUENGb3IpOgorICAgICAgICAqIGppdC9Bcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcy5oOiBBZGRlZC4KKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmNw
cDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5QbGFjZSk6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0QXJndW1lbnRDb3VudFNh
bmUpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNz
ZW1ibHlIZWxwZXJzOjpjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCk6CisgICAgICAgIChKU0M6
OkFzc2VtYmx5SGVscGVyczo6cHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSk6CisgICAgICAgIChK
U0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdEZ1bmN0aW9uUHJvbG9ndWUpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmVtaXRGdW5jdGlvbkVwaWxvZ3VlKToKKyAgICAgICAgKEpTQzo6
QXNzZW1ibHlIZWxwZXJzOjplbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZSk6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFB1dFBheWxvYWRUb0NhbGxGcmFt
ZUhlYWRlckJlZm9yZVByb2xvZ3VlKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpl
bWl0UHV0VGFnVG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZSk6CisgICAgICAgIChKU0M6
OkFzc2VtYmx5SGVscGVyczo6dGFnRm9yKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpwYXlsb2FkRm9yKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRU
YWdzSW5QbGFjZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0QXJn
dW1lbnRDb3VudFNhbmUpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAg
KEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50cyk6CisgICAgICAgICogaml0L0V4ZWN1
dGFibGVBbGxvY2F0b3IuaDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjayk6CisgICAgICAgIChKU0M6OkpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUp
OgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlRXhjZXB0aW9uSGFuZGxlcnMpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZvcik6CisgICAgICAgIChKU0M6
OkpJVDo6c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVMb2FkVmFy
YXJncyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUNhbGxFdmFsKToKKyAgICAgICAgKEpT
Qzo6SklUOjpjb21waWxlQ2FsbEV2YWxTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpJVDo6Y29t
cGlsZU9wQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKToK
KyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUNsb3N1cmVDYWxsKToKKyAgICAgICAg
KiBqaXQvSklUQ2FsbDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3JldCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29t
cGlsZUNhbGxFdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlQ2FsbEV2YWxTbG93Q2Fz
ZSk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbCk6CisgICAgICAgIChKU0M6OkpJ
VDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKToKKyAgICAgICAgKiBqaXQvSklUQ29kZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVENvZGU6OmV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0
aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZik6CisgICAgICAgIChKU0M6OkpJVENvZGVXaXRo
Q29kZVJlZjo6fkpJVENvZGVXaXRoQ29kZVJlZik6CisgICAgICAgIChKU0M6OkpJVENvZGVXaXRo
Q29kZVJlZjo6ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkpJVENv
ZGVXaXRoQ29kZVJlZjo6ZGF0YUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkpJVENv
ZGVXaXRoQ29kZVJlZjo6b2Zmc2V0T2YpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0aENvZGVS
ZWY6OnNpemUpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0aENvZGVSZWY6OmNvbnRhaW5zKToK
KyAgICAgICAgKEpTQzo6RGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZSk6CisgICAgICAgIChK
U0M6OkRpcmVjdEpJVENvZGU6On5EaXJlY3RKSVRDb2RlKToKKyAgICAgICAgKEpTQzo6RGlyZWN0
SklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVSZWYpOgorICAgICAgICAoSlNDOjpEaXJlY3RKSVRDb2Rl
OjplbnN1cmVXcmFwcGVycyk6CisgICAgICAgIChKU0M6OkRpcmVjdEpJVENvZGU6OmFkZHJlc3NG
b3JDYWxsKToKKyAgICAgICAgKEpTQzo6TmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZSk6Cisg
ICAgICAgIChKU0M6Ok5hdGl2ZUpJVENvZGU6On5OYXRpdmVKSVRDb2RlKToKKyAgICAgICAgKEpT
Qzo6TmF0aXZlSklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVSZWYpOgorICAgICAgICAoSlNDOjpOYXRp
dmVKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCk6CisgICAgICAgICogaml0L0pJVENvZGUuaDoKKyAg
ICAgICAgKiBqaXQvSklURXhjZXB0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmdlbmVyaWNVbndp
bmQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9yKToKKyAgICAgICAgKiBq
aXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUR2V0QnlJZEdl
bmVyYXRvcjo6SklUR2V0QnlJZEdlbmVyYXRvcik6CisgICAgICAgICogaml0L0pJVElubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0TmFrZWRDYWxsKToKKyAgICAgICAgKEpTQzo6SklU
OjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uTm9FeGNl
cHRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZW5kKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3JldCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfY2F0Y2gpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbG9v
cF9oaW50KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQpOgorICAg
ICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZh
dGVDb21waWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lbmQp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfY2F0Y2gpOgorICAgICAgICAqIGppdC9KSVRP
cGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAo
SlNDOjpvcGVyYXRpb25MaW5rRm9yKToKKyAgICAgICAgKEpTQzo6b3BlcmF0aW9uVmlydHVhbEZv
cik6CisgICAgICAgIChKU0M6Om9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbEZvcik6CisgICAgICAg
ICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQpOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpK
SVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV9pZCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQpOgorICAgICAgICAqIGppdC9KSVRT
dHViUm91dGluZS5oOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAgICAqIGppdC9K
SVRTdHVic01TVkM2NC5hc206CisgICAgICAgICogaml0L0pJVFN0dWJzWDg2Lmg6CisgICAgICAg
ICogaml0L0pJVFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZl
VGFpbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIpOgor
ICAgICAgICAqIGppdC9KSVRUaHVua3MuaDoKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJQcmVzZXJ2
YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OnJlZ2lzdGVy
c1RvUHJlc2VydmUpOgorICAgICAgICAoSlNDOjpyZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCk6
CisgICAgICAgIChKU0M6OmdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKToKKyAg
ICAgICAgKEpTQzo6Z2VuZXJhdGVSZWdpc3RlclJlc3RvcmF0aW9uKToKKyAgICAgICAgKEpTQzo6
cmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvUmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAqIGppdC9S
ZXBhdGNoLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVQcm90b0NoYWluQWNjZXNzU3R1Yik6
CisgICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OnRyeUJ1aWxk
R2V0QnlJRExpc3QpOgorICAgICAgICAoSlNDOjpzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKToK
KyAgICAgICAgKEpTQzo6d3JpdGVCYXJyaWVyKToKKyAgICAgICAgKEpTQzo6ZW1pdFB1dFJlcGxh
Y2VTdHViKToKKyAgICAgICAgKEpTQzo6ZW1pdFB1dFRyYW5zaXRpb25TdHViKToKKyAgICAgICAg
KEpTQzo6dHJ5UmVwYXRjaEluKToKKyAgICAgICAgKEpTQzo6bGlua1Nsb3dGb3IpOgorICAgICAg
ICAoSlNDOjpsaW5rRm9yKToKKyAgICAgICAgKEpTQzo6bGlua0Nsb3N1cmVDYWxsKToKKyAgICAg
ICAgKiBqaXQvUmVwYXRjaC5oOgorICAgICAgICAqIGppdC9TcGVjaWFsaXplZFRodW5rSklULmg6
CisgICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OlNwZWNpYWxpemVkVGh1bmtKSVQp
OgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRodW5rSklUOjpyZXR1cm5KU1ZhbHVlKToKKyAg
ICAgICAgKEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmV0dXJuRG91YmxlKToKKyAgICAgICAg
KEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmV0dXJuSW50MzIpOgorICAgICAgICAoSlNDOjpT
cGVjaWFsaXplZFRodW5rSklUOjpyZXR1cm5KU0NlbGwpOgorICAgICAgICAqIGppdC9UaHVua0dl
bmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjp0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1Bh
dGhHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpzbG93UGF0aEZvcik6CisgICAgICAgIChKU0M6
OmxpbmtGb3JUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmxpbmtDYWxsVGh1bmtHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpsaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OmxpbmtDbG9zdXJlQ2FsbEZvclRodW5rR2VuZXJhdG9yKToKKyAgICAg
ICAgKEpTQzo6bGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjps
aW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6dmlydHVhbEZvclRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6dmlydHVhbENh
bGxUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDb25zdHJ1Y3RUaHVua0dl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVu
a0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVz
UmVnc1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bmF0aXZlRm9yR2VuZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6bmF0aXZlVGFpbENhbGxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjph
cml0eUZpeHVwKToKKyAgICAgICAgKEpTQzo6Y2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6Y2hhckF0VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpmcm9tQ2hh
ckNvZGVUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnNxcnRUaHVua0dlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OmZsb29yVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpjZWls
VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpyb3VuZFRodW5rR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6ZXhwVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpsb2dUaHVua0dl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OmFic1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpT
Qzo6cG93VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjppbXVsVGh1bmtHZW5lcmF0b3Ip
OgorICAgICAgICAoSlNDOjphcnJheUl0ZXJhdG9yTmV4dFRodW5rR2VuZXJhdG9yKToKKyAgICAg
ICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgIChKU0M6OmxpbmtUaHVua0dlbmVy
YXRvckZvcik6CisgICAgICAgIChKU0M6OmxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yRm9y
KToKKyAgICAgICAgKEpTQzo6dmlydHVhbFRodW5rR2VuZXJhdG9yRm9yKToKKyAgICAgICAgKiBs
bGludC9MTEludENMb29wLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkNMb29wOjppbml0aWFs
aXplKToKKyAgICAgICAgKiBsbGludC9MTEludENMb29wLmg6CisgICAgICAgICogbGxpbnQvTExJ
bnREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25z
KToKKyAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9pbnQuY3BwOgorICAgICAgICAoSlNDOjpM
TEludDo6c2V0RnVuY3Rpb25FbnRyeXBvaW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldEV2
YWxFbnRyeXBvaW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldFByb2dyYW1FbnRyeXBvaW50
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZvcik6CisgICAgICAg
ICogbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcDoKKyAgICAgICAgKiBsbGludC9MTElu
dE9wY29kZS5oOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6TExJbnQ6
OmVudHJ5T1NSKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldFVwQ2FsbCk6CisgICAgICAgIChK
U0M6OkxMSW50OjpsbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvcik6CisgICAgICAgIChK
U0M6OkxMSW50OjpsbGludF9zdGFja19jaGVja19hdF92bV9lbnRyeSk6CisgICAgICAgICogbGxp
bnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKiBsbGludC9MTEludFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OmNhbGxUb0phdmFTY3JpcHQpOgorICAgICAgICAoSlNDOjpjYWxsVG9OYXRp
dmVGdW5jdGlvbik6CisgICAgICAgICogbGxpbnQvTExJbnRUaHVua3MuaDoKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q0xvb3BSZWdpc3Rlcjo6b3BlcmF0b3IgRXhl
Y1N0YXRlKik6CisgICAgICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIEluc3RydWN0
aW9uKik6CisgICAgICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFZNKik6CisgICAg
ICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFByb3RvQ2FsbEZyYW1lKik6CisgICAg
ICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFJlZ2lzdGVyKik6CisgICAgICAgIChK
U0M6OkNMb29wOjpleGVjdXRlKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206Cisg
ICAgICAgICogbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcDoKKyAgICAgICAgKGluaXRpYWxp
emVBbmRHZXRKU0NMTFZNQVBJKToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybS5yYjoKKyAgICAg
ICAgKiBvZmZsaW5lYXNtL2FybTY0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vY2xvb3AucmI6
CisgICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS94ODYucmI6CisgICAgICAgICogcGFyc2VyL1BhcnNlckVycm9yLmg6CisgICAgICAgIChK
U0M6OlBhcnNlckVycm9yOjp0b0Vycm9yT2JqZWN0KToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlckNvbXBpbGF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZXI6OkNvbXBpbGF0aW9u
OjphZGREZXNjcmlwdGlvbik6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlv
bi5oOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcDoKKyAg
ICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJD
b21waWxhdGlvbktpbmQuaDoKKyAgICAgICAgKiBydW50aW1lL0FyaXR5Q2hlY2tNb2RlLmg6IEFk
ZGVkLgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpT
Qzo6c2V0dXBBcml0eUNoZWNrRGF0YSk6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToK
KyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAoSlNDOjpDb21t
b25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JIYW5k
bGluZ1Njb3BlLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkVycm9ySGFuZGxpbmdTY29wZTo6
RXJyb3JIYW5kbGluZ1Njb3BlKToKKyAgICAgICAgKEpTQzo6RXJyb3JIYW5kbGluZ1Njb3BlOjp+
RXJyb3JIYW5kbGluZ1Njb3BlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySGFuZGxpbmdTY29w
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAg
ICAgICAoSlNDOjp0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcik6CisgICAgICAgIChKU0M6OnRocm93
VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbik6CisgICAgICAgICogcnVudGltZS9FeGVjdXRh
YmxlLmNwcDoKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUpOgor
ICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQmFzZTo6ZHVtcCk6CisgICAgICAgICogcnVudGltZS9F
eGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVCYXNlOjplbnRyeXBvaW50Rm9y
KToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6Om9mZnNldE9mSklUQ29kZVdpdGhBcml0
eUNoZWNrRm9yKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKToKKyAg
ICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxMb2Nrcyk6CisgICAgICAg
IChKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzOjp+RHJvcEFsbExvY2tzKToKKyAgICAgICAgKiBy
dW50aW1lL0pTTG9jay5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoK
KyAgICAgICAgKEpTQzo6cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgIChKU0M6
Ok9wdGlvbnM6OmluaXRpYWxpemUpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjpzZXRPcHRpb24p
OgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Nb2RlLmg6IEFkZGVkLgorICAgICAgICAqIHJ1bnRpbWUvU3RhY2tBbGln
bm1lbnQuaDoKKyAgICAgICAgKEpTQzo6cm91bmRBcmd1bWVudENvdW50VG9BbGlnbkZyYW1lKToK
KyAgICAgICAgKEpTQzo6cm91bmRMb2NhbFJlZ2lzdGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZz
ZXQpOgorICAgICAgICAoSlNDOjpsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVycyk6CisgICAgICAg
ICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcDoKKyAgICAgICAgKEpTQzo6U3Ry
aW5nUmVjdXJzaW9uQ2hlY2tlcjo6dGhyb3dTdGFja092ZXJmbG93RXJyb3IpOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpkdW1wKToK
KyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAg
ICAgKEpTQzo6Y2xlYW5Xb3JrbGlzdCk6CisgICAgICAgIChKU0M6OlZNOjp+Vk0pOgorICAgICAg
ICAoSlNDOjpWTTo6Z2V0SG9zdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6cHJlcGFyZVRvRGlz
Y2FyZENvZGVGb3IpOgorICAgICAgICAoSlNDOjpWTTo6cHJlcGFyZVRvRGlzY2FyZENvZGUpOgor
ICAgICAgICAoSlNDOjpWTTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAoSlNDOjpWTTo6dXBk
YXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKToKKyAgICAgICAgKEpTQzo6bG9nU2Fu
aXRpemVTdGFjayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6
cmVzZXJ2ZWRab25lU2l6ZSk6CisgICAgICAgIChKU0M6OlZNOjpsYXN0U3RhY2tUb3ApOgorICAg
ICAgICAoSlNDOjpWTTo6c2V0TGFzdFN0YWNrVG9wKToKKyAgICAgICAgKEpTQzo6Vk06OnNjcmF0
Y2hCdWZmZXJGb3JTaXplKToKKyAgICAgICAgKEpTQzo6Vk06OnNldFN0YWNrTGltaXQpOgorICAg
ICAgICAoSlNDOjpzYW5pdGl6ZVN0YWNrRm9yVk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk1FbnRy
eVNjb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUpOgor
ICAgICAgICAoSlNDOjpWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUpOgorICAgICAgICAqIHJ1
bnRpbWUvVk1FbnRyeVNjb3BlLmg6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2FkZC1jb25zdGFu
dC1vdmVyZmxvdy1yZWNvdmVyeS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanM6IEFk
ZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvYWRkLWludDUyLWxh
cmdlLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2FkZC1vdmVyZmxvdy1yZWNvdmVyeS5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9hZGQtc21hbGwtY29uc3Rh
bnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KiB0ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9lbXB0eS1mdW5jdGlvbi5qczogQWRkZWQuCisgICAgICAgIChm
b28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDMyLXRvLWRvdWJsZS5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9leGl0LWFm
dGVyLWludDUyLXRvLWRvdWJsZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChtYWtlV2VpcmRPYmplY3QpOgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9leGl0LWFmdGVyLWxsdm0tZm9sZHMtbGFyZ2UtaW50LWNvbnN0YW50LmpzOiBBZGRlZC4K
KyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2V4aXQtZnJvbS1mdGwtd2l0
aC1hcml0eS1jaGVjay1mYWlsLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChi
YXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtYXJpdGhjb3MuanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc2luLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLXB1
dGJ5aWQuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVj
dC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQt
YnktaWQtdGhyb3ctZnJvbS1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorICAgICAgICAobWFrZVdpdGhHZXR0ZXIucmV0dXJuKToKKyAgICAg
ICAgKG1ha2VXaXRoR2V0dGVyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRo
cm93LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS10aGF0LWRv
ZXMtbm90LWV4aXQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKG1ha2VXaXRo
R2V0dGVyLnJldHVybik6CisgICAgICAgIChtYWtlV2l0aEdldHRlcik6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gt
b3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKG1ha2VX
aXRoR2V0dGVyLnJldHVybik6CisgICAgICAgIChtYWtlV2l0aEdldHRlcik6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL2ljLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFyYXJn
cy1hbmQtY2FsbC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAg
ICAgICAgKGJheik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3Mu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXop
OgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpzOiBBZGRlZC4K
KyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwt
aW4tYW5kLW91dC1vZi1ib3VuZHMuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWJvdW5k
cy10aGVuLWV4aXQtb3V0LW9mLWJvdW5kcy5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0
LW9mLWJvdW5kcy1ib3VuZHMtdGhlbi1kby1pbi1ib3VuZHMuanM6IEFkZGVkLgorICAgICAgICAo
Zm9vKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbnZhbGlkYXRp
b24tcG9pbnQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKFRoaW5neSk6Cisg
ICAgICAgIChUaGluZ3kucHJvdG90eXBlLmYpOgorICAgICAgICAocG9zc2libHlEb0JhZFRoaW5n
cy5UaGluZ3kucHJvdG90eXBlLmYpOgorICAgICAgICAocG9zc2libHlEb0JhZFRoaW5ncyk6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0yLmpzOiBBZGRlZC4KKyAgICAgICAgKGZv
byk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0zLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL25ldy1hcnJheS1zdG9yYWdlLWFycmF5
LXdpdGgtc2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL25ldy1hcnJheS13aXRoLXNpemUtd2l0aC1iYWQtdGltZS5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXctY29u
dGlndW91cy1hcnJheS13aXRoLXNpemUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXctZG91YmxlLWFycmF5LXdpdGgt
c2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL25ldy1pbnQzMi1hcnJheS13aXRoLXNpemUuanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXct
dW5kZWNpZGVkLWFycmF5LXdpdGgtc2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC10aHJvdy10aHJv
dWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL3JlY3Vyc2UtaW5maW5pdGVseS1vbi1nZXR0ZXIuanM6IEFkZGVkLgorICAg
ICAgICAoLnZhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3JlcGVhdGVkLWFyaXR5LWNoZWNr
LWZhaWwuanM6IEFkZGVkLgorICAgICAgICAoYmFyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
cnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAgICAg
KGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW1wbGUtcG9s
eXZhcmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgIChmdXp6KToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXoxKToKKyAgICAg
ICAgKGJhejIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtZ2V0
LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKGZ1enopOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvc2ltcGxl
LXBvbHl2YXJpYW50LXB1dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChmdXp6KToKKyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgorICAgICAg
ICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3RvLXN0cmlu
Zy1vbi1vYmplY3Qtb3Itc3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKEZvbyk6CisgICAgICAg
IChGb28ucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3QuanM6IEFkZGVkLgorICAgICAgICAoRm9vKToK
KyAgICAgICAgKEZvby5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKiB0ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vYmplY3QuanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmlu
Zy1vci1zdHJpbmctb2JqZWN0LXRoZW4tb2JqZWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgIChGb28pOgorICAgICAgICAoRm9vLnByb3RvdHlwZS50b1N0cmluZyk6CisgICAg
ICAgICogdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy90by1zdHJp
bmctb24tdmFsdWUtb3Itc3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS5qczogQWRkZWQuCisgICAgICAgIChm
b28pOgorCiAyMDE0LTAxLTI3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ1JBU0ggd2hlbiBkZWJ1Z2dlciBjbG9zZXMgcmVt
b3RlIGluc3BlY3RpbmcgSlNDb250ZXh0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM0MCw2ICszNDAsNyBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvRHVtcENvbnRleHQuY3BwCiAgICAgcnVudGltZS9F
cnJvci5jcHAKICAgICBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisgICAgcnVudGltZS9F
cnJvckhhbmRsaW5nU2NvcGUuY3BwCiAgICAgcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAogICAg
IHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9FeGNlcHRpb25IZWxwZXJz
LmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCSh3b3JraW5nIGNvcHkpCkBAIC05MSw2ICs5MSw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb24uY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZfNjQuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01JUFNBc3NlbWJsZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9SZXBhdGNoQnVmZmVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
U0g0QXNzZW1ibGVyLmggXApAQCAtOTA0LDYgKzkwNSw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3Iu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9ySW5zdGFuY2UuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQ
cm90b3R5cGUuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUub3JkZXIJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtNDk4MSw3ICs0OTgxLDYgQEAgX2xs
aW50X3Nsb3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIKIF9sbGludF9zbG93X3BhdGhfZGVi
dWcKIF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwKIF9sbGludF9zbG93X3BhdGhf
cHJvZmlsZV9kaWRfY2FsbAotX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2NhbGwKIF9sbGludF9i
ZWdpbgogX2xsaW50X3Byb2dyYW1fcHJvbG9ndWUKIF9sbGludF9ldmFsX3Byb2xvZ3VlCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2MjkxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU4OSw2ICs1ODksNyBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxEdW1wQ29udGV4dC5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yLmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JDb25zdHJ1Y3Rvci5jcHAiIC8+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvclByb3RvdHlwZS5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEV4Y2VwdGlvbkhlbHBlcnMuY3BwIiAv
PgpAQCAtNzkxLDYgKzc5Miw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJs
ZXJcTWFjcm9Bc3NlbWJsZXJYODYuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFz
c2VtYmxlclxNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cYXNzZW1ibGVyXE1hY3JvQXNzZW1ibGVyWDg2XzY0LmgiIC8+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwu
aCAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXFJlcGF0Y2hCdWZmZXIu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxYODZBc3NlbWJsZXIu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXFNjcmlwdEZ1bmN0aW9u
Q2FsbC5oIiAvPgpAQCAtMTIwNCw2ICsxMjA2LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcRHVtcENvbnRleHQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcRXJyb3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
RXJyb3JDb25zdHJ1Y3Rvci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxFcnJvckhhbmRsaW5nU2NvcGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1
bnRpbWVcRXJyb3JJbnN0YW5jZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxFcnJvclByb3RvdHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxFeGNlcHRpb25IZWxwZXJzLmgiIC8+CkBAIC0xNDA2LDIyICsxNDA5LDYgQEAKICAgICAg
IDxGaWxlVHlwZT5Eb2N1bWVudDwvRmlsZVR5cGU+CiAgICAgPC9Ob25lPgogICA8L0l0ZW1Hcm91
cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8TUFTTSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YnNNU1ZD
NjQuYXNtIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICA8L01BU00+Ci0gIDwvSXRlbUdyb3VwPgogICA8SW1wb3J0IFByb2plY3Q9IiQoVkNU
YXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgogICA8SW1wb3J0R3JvdXAgTGFi
ZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQ
YXRoKVxCdWlsZEN1c3RvbWl6YXRpb25zXG1hc20udGFyZ2V0cyIgLz4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE2
MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtNTM3LDYgKzUz
Nyw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yQ29uc3RydWN0
b3IuY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckluc3RhbmNlLmNwcCI+CiAg
ICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTE0NDIs
NiArMTQ0NSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWFjcm9B
c3NlbWJsZXJYODZfNjQuaCI+CiAgICAgICA8RmlsdGVyPmFzc2VtYmxlcjwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiPgorICAgICAgPEZpbHRlcj5hc3NlbWJsZXI8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2Vt
YmxlclxSZXBhdGNoQnVmZmVyLmgiPgogICAgICAgPEZpbHRlcj5hc3NlbWJsZXI8L0ZpbHRlcj4K
ICAgICA8L0NsSW5jbHVkZT4KQEAgLTIxMjksNiArMjEzNSw5IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEVycm9yQ29uc3RydWN0b3IuaCI+CiAgICAgICA8RmlsdGVyPnJ1
bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiPgorICAgICAgPEZpbHRlcj5ydW50aW1l
PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
dW50aW1lXEVycm9ySW5zdGFuY2UuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4K
ICAgICA8L0NsSW5jbHVkZT4KQEAgLTMyOTUsOSArMzMwNCw0IEBACiAgICAgPE5vbmUgSW5jbHVk
ZT0iSmF2YVNjcmlwdENvcmVQb3N0QnVpbGQuY21kIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ikph
dmFTY3JpcHRDb3JlUHJlQnVpbGQuY21kIiAvPgogICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91
cD4KLSAgICA8TUFTTSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YnNNU1ZDNjQuYXNtIj4KLSAgICAg
IDxGaWx0ZXI+aml0PC9GaWx0ZXI+Ci0gICAgPC9NQVNNPgotICA8L0l0ZW1Hcm91cD4KIDwvUHJv
amVjdD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjEwLDYgKzIxMCw3IEBACiAJCTBGMzhCMDE5
MTdDRkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzOEIwMTUxN0NGRTc1NTAwQjE0NEQz
IC8qIERGR0NvbXBpbGF0aW9uTW9kZS5jcHAgKi87IH07CiAJCTBGMzhCMDFBMTdDRkU3NTUwMEIx
NDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzhCMDE2MTdDRkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxh
dGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjNBQzc1MjE4M0VBMTA0MDAzMjAyOUYgLyogU3RhY2tBbGlnbm1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0FDNzUxMTgzRUExMDQw
MDMyMDI5RiAvKiBTdGFja0FsaWdubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTBGM0FDNzU0MTg4RTVFQzgwMDMyMDI5RiAvKiBFeGl0aW5n
SklUVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYzQUM3NTMxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzQjNBMUExNTNFNjhGMjAw
M0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0IzQTE3MTUzRTY4RUYwMDNFRDBGRiAvKiBE
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgKi87IH07CiAJCTBGM0IzQTFCMTUzRTY4RjQwMDNF
RDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzQjNBMTgxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0Nv
bnN0YW50Rm9sZGluZ1BoYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEYzQjNBMjcxNTQ0Qzk5NTAwM0VEMEZGIC8qIERGR0NGR1NpbXBsaWZp
Y2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYzQjNBMjQxNTQ0Qzk5MTAwM0VEMEZGIC8qIERGR0NGR1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwICovOyB9OwpAQCAtMjM2LDYgKzIzNywxMCBAQAogCQkwRjQ2ODBENTE0QkJEMjRCMDBC
RkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxs
UmV0dXJuVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjQ4NTMyMTE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2RlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzFGMTg3NzUw
NTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuY3BwICovOyB9OwogCQkwRjQ4NTMyMjE4Nzc1MDU2
MDA4M0I2ODcgLyogREZHQXJpdGhNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMyMDE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2Rl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY0
ODUzMjcxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzIzMTg3REZERUMw
MDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5jcHAgKi87IH07CisJCTBGNDg1MzI4MTg3
REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjQxODdERkRFQzAwODNCNjg3IC8q
IEZUTEF2YWlsYWJsZVJlY292ZXJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMEY0ODUzMjkxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5
T3Bjb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNDg1MzI1MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5jcHAgKi87IH07
CisJCTBGNDg1MzJBMTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjYxODdERkRF
QzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0OTNBRkExNkQwQ0FEMzAwODQ1MDhCIC8qIFNv
dXJjZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNDkzQUY4MTZEMENBRDEwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgKi87
IH07CiAJCTBGNEI5NERDMTdCOUYwNzUwMEREMDNBNCAvKiBUeXBlZEFycmF5SW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0Qjk0REIxN0I5
RjA3NTAwREQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1NTQxQjExNjEzQzFGQjAwQ0UzRTI1IC8q
IFNwZWNpYWxQb2ludGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNTU0MUFGMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9pbnRlci5jcHAg
Ki87IH07CkBAIC0yNDgsNiArMjUzLDggQEAKIAkJMEY1NkExRDUxNTAwMUNGNDAwMjk5MkIxIC8q
IEV4ZWN1dGlvbkNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIu
Y3BwICovOyB9OwogCQkwRjU3MkQ0RjE2ODc5RkREMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTcyRDRE
MTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUE1MkQwMTdBREQ3MTcwMDhFQ0IyRCAv
KiBDb3B5VG9rZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNUE1MkNGMTdBREQ3MTcwMDhFQ0IyRCAvKiBDb3B5VG9rZW4uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjVBNjI4MzE4OEM5OEQ0MDA3
MkM5REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjVBNjI4MTE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5n
ZS5jcHAgKi87IH07CisJCTBGNUE2Mjg0MTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVBNjI4
MjE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUVGOTFFMTY4NzhGN0EwMDNFNUMyNSAv
KiBKSVRUaHVua3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgKi87IH07CiAJ
CTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAv
KiBKSVRUaHVua3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjVGMDhDRjE0NkM3NjMzMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXpl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RjA4
Q0UxNDZDNzYyRjAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjY5LDYgKzI3NiwxOCBA
QAogCQkwRjY2NkVDRDE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRh
dGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlv
blBoYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEY2NkUxNkIxNERGM0YxNjAwQjdCMkU0IC8qIERGR0FkamFjZW5jeUxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjZFMTY4MTRERjNGMTMw
MEI3QjJFNCAvKiBERkdBZGphY2VuY3lMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2NkUxNkMxNERGM0YxNjAwQjdCMkU0IC8qIERGR0Vk
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjZF
MTY5MTRERjNGMTMwMEI3QjJFNCAvKiBERkdFZGdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQjUxODVGQzlFOTAwODQ1RDk3IC8qIEZU
TEpTQ2FsbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjZCMUNCMzE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCAqLzsgfTsKKwkJMEY2
QjFDQjYxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQjQxODVGQzlFOTAwODQ1RDk3IC8qIEZU
TEpTQ2FsbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTBGNkIxQ0I5MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQjcxODYxMjQ0QzAw
ODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQkExODYxMjQ0QzAwODQ1RDk3IC8qIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY2QjFDQjgxODYxMjQ0QzAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9u
TW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTBGNkIxQ0JEMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJH
ZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY2QjFDQkIxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvci5jcHAgKi87IH07CisJCTBGNkIxQ0JFMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0JDMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjZCMUNDMzE4NjJDNDc4MDA4NDVEOTcgLyog
RlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjZCMUNCRjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9m
ZnNldC5jcHAgKi87IH07CisJCTBGNkIxQ0M0MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3Rl
ckF0T2Zmc2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjZCMUNDMDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNkIxQ0M1MTg2
MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0MxMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExV
bndpbmRJbmZvLmNwcCAqLzsgfTsKKwkJMEY2QjFDQzYxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVu
d2luZEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNkIxQ0MyMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQzkxODY0MURGODAw
ODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0M3MTg2NDFERjgwMDg0NUQ5NyAv
KiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgKi87IH07CisJCTBGNkIxQ0NBMTg2NDFE
RjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQzgxODY0MURGODAwODQ1RDk3
IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3MDI1QTkxNzE0QjBGQTAwMzgyQzBFIC8qIERG
R09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjcwMjVBNzE3MTRCMEY4MDAzODJDMEUgLyogREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcCAqLzsgfTsKIAkJMEY3MDI1QUExNzE0QjBGQzAwMzgyQzBFIC8qIERG
R09TUkV4aXRDb21waWxlckNvbW1vbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY3MDI1QTgxNzE0QjBGODAwMzgyQzBFIC8qIERGR09TUkV4aXRDb21w
aWxlckNvbW1vbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGNzE0Q0E0MTZFQTkyRjAwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9wYWdhdGlv
blBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNzE0Q0ExMTZFQTkyRUQwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNl
LmNwcCAqLzsgfTsKQEAgLTEzNDYsNiArMTM2NSw4IEBACiAJCUZFNTkzMkE4MTgzQzVBMjYwMEEx
RUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFNTkzMkE2MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUEwODYy
MDE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVBMDg2MUUxODJCN0EwNDAwRjZEODUxIC8qIEJyZWFr
cG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGRUEwODYyMTE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUEwODYxRjE4MkI3QTA0
MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkVCNThDMTQxODdCOEIxNjAwOThFRjBCIC8qIEVy
cm9ySGFuZGxpbmdTY29wZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRUI1OEMxMjE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3Bl
LmNwcCAqLzsgfTsKKwkJRkVCNThDMTUxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdT
Y29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVC
NThDMTMxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFRDI4N0IyMTVFQzlBNTcw
MERBODE2MSAvKiBMTEludE9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2RlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkVEOTRG
MkUxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRj
aGRvZy5jcHAgKi87IH07CiAJCUZFRDk0RjJGMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRGMkMx
NzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE2MDUsNiArMTYyNiw3IEBACiAJCTBGMzhCMDE1MTdD
RkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gREZHQ29tcGlsYXRpb25Nb2RlLmNwcDsgcGF0aCA9IGRmZy9E
RkdDb21waWxhdGlvbk1vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjM4
QjAxNjE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0NvbXBpbGF0aW9uTW9kZS5oOyBwYXRoID0gZGZnL0RG
R0NvbXBpbGF0aW9uTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNBQzc1
MTE4M0VBMTA0MDAzMjAyOUYgLyogU3RhY2tBbGlnbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3RhY2tBbGlnbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEYzQUM3NTMxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4aXRpbmdKSVRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGM0IzQTE3MTUzRTY4RUYwMDNFRDBGRiAvKiBERkdDb25zdGFu
dEZvbGRpbmdQaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBE
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA7IHBhdGggPSBkZmcvREZHQ29uc3RhbnRGb2xkaW5n
UGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNCM0ExODE1M0U2OEVG
MDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaDsgcGF0aCA9IGRmZy9ERkdD
b25zdGFudEZvbGRpbmdQaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNC
M0EyNDE1NDRDOTkxMDAzRUQwRkYgLyogREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdDRkdTaW1wbGlmaWNhdGlvblBo
YXNlLmNwcDsgcGF0aCA9IGRmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MzIsNiArMTY1NCwxMCBAQAogCQkwRjQ2ODBEMTE0
QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBIb3N0Q2FsbFJldHVyblZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNDg1MzFGMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQXJpdGhNb2RlLmNwcDsg
cGF0aCA9IGRmZy9ERkdBcml0aE1vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjQ4NTMyMDE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0FyaXRoTW9kZS5oOyBwYXRoID0gZGZnL0RGR0FyaXRo
TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ4NTMyMzE4N0RGREVDMDA4
M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwOyBwYXRoID0gZnRsL0ZUTEF2
YWlsYWJsZVJlY292ZXJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0ODUz
MjQxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5Lmg7IHBhdGggPSBmdGwv
RlRMQXZhaWxhYmxlUmVjb3ZlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0
ODUzMjUxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFJlY292ZXJ5T3Bjb2RlLmNwcDsgcGF0aCA9
IGZ0bC9GVExSZWNvdmVyeU9wY29kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNDg1MzI2MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExSZWNvdmVyeU9wY29kZS5oOyBwYXRoID0gZnRs
L0ZUTFJlY292ZXJ5T3Bjb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDkz
QUY4MTZEMENBRDEwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGNEI5NERCMTdCOUYwNzUwMEREMDNBNCAvKiBUeXBlZEFycmF5SW5s
aW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlZEFycmF5SW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU1NDFBRjE2MTNDMUZCMDBDRTNF
MjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU3BlY2lhbFBvaW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTY0NCw2ICsxNjcwLDggQEAKIAkJMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4ZWN1dGlv
bkNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXhlY3V0
aW9uQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTcyRDREMTY4
NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUaHVua0dlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjVBNTJDRjE3QURENzE3MDA4RUNCMkQgLyogQ29weVRva2VuLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvcHlUb2tlbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRjVBNjI4MTE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExWYWx1ZVJhbmdlLmNwcDsgcGF0aCA9
IGZ0bC9GVExWYWx1ZVJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1
QTYyODIxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gRlRMVmFsdWVSYW5nZS5oOyBwYXRoID0gZnRsL0ZUTFZhbHVlUmFu
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RUY5MUIxNjg3OEY3ODAwM0U1
QzI1IC8qIEpJVFRodW5rcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKSVRUaHVua3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVFRjkxQzE2
ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpJVFRodW5rcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVGMDhD
RTE0NkM3NjJGMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjY1LDYgKzE2OTMsMTggQEAKIAkJMEY2NjZFQ0IxODM2
QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9u
UGhhc2UuaDsgcGF0aCA9IGRmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2NkUxNjgxNERGM0YxMzAwQjdCMkU0IC8q
IERGR0FkamFjZW5jeUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZH
QWRqYWNlbmN5TGlzdC5oOyBwYXRoID0gZGZnL0RGR0FkamFjZW5jeUxpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2NkUxNjkxNERGM0YxMzAwQjdCMkU0IC8qIERGR0VkZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRWRnZS5oOyBwYXRoID0gZGZn
L0RGR0VkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQjMxODVGQzlF
OTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBGVExKU0NhbGwuY3BwOyBwYXRoID0gZnRsL0ZUTEpTQ2FsbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0I0MTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0Nh
bGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMSlNDYWxsLmg7IHBhdGgg
PSBmdGwvRlRMSlNDYWxsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0I3
MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBcml0eUNoZWNrTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRjZCMUNCODE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lzdGVyUHJlc2VydmF0aW9u
TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCQjE4NjEyNDZBMDA4
NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0JDMTg2
MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFw
cGVyR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0JGMTg2
MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwOyBwYXRoID0gZnRs
L0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjZCMUNDMDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExSZWdpc3RlckF0T2Zmc2V0Lmg7IHBhdGggPSBm
dGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjZCMUNDMTE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExVbndpbmRJbmZvLmNwcDsgcGF0aCA9IGZ0bC9G
VExVbndpbmRJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQzIx
ODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gRlRMVW53aW5kSW5mby5oOyBwYXRoID0gZnRsL0ZUTFVud2luZEluZm8uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQzcxODY0MURGODAwODQ1RDk3IC8q
IEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQzgxODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tG
YWlsUmV0dXJuVGh1bmtzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyaXR5
Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NzAyNUE3MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHT1NSRXhpdENvbXBpbGVyQ29t
bW9uLmNwcDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjcwMjVBODE3MTRCMEY4MDAzODJDMEUgLyogREZHT1NS
RXhpdENvbXBpbGVyQ29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERG
R09TUkV4aXRDb21waWxlckNvbW1vbi5oOyBwYXRoID0gZGZnL0RGR09TUkV4aXRDb21waWxlckNv
bW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjcxNENBMTE2RUE5MkVEMDBG
M0VCRUIgLyogREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcDsg
cGF0aCA9IGRmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMTYsNiArMjE1Niw3IEBACiAJCTY1NjBBNENGMDRCM0IzRTcw
MDhBRTk1MiAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENv
cmVGb3VuZGF0aW9uLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0NvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsK
IAkJNjU2MjFFNkIwODlFODU5NzAwNzYwRjM1IC8qIFByb3BlcnR5U2xvdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9wZXJ0eVNs
b3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTY1NjIx
RTZDMDg5RTg1OTcwMDc2MEYzNSAvKiBQcm9wZXJ0eVNsb3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvcGVydHlTbG90Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJNjU4NjAxNzcxODVBOEY1RTAwMDMw
RUVFIC8qIE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1OTg3RjJDMTY3RkU4NEIwMDNDMkY4RCAvKiBERkdPU1JF
eGl0Q29tcGlsYXRpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERG
R09TUkV4aXRDb21waWxhdGlvbkluZm8uaDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0Q29tcGlsYXRp
b25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1OTg3RjJGMTY4MjhBN0Uw
MDNDMkY4RCAvKiBVbnVzZWRQb2ludGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFVudXNlZFBvaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjVDMDI4
NEYxNzE3OTVFMjAwMzUxRTM1IC8qIEFSTXY3RGlzYXNzZW1ibGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFSTXY3RGlzYXNzZW1ibGVyLmNwcDsgcGF0aCA9IGRp
c2Fzc2VtYmxlci9BUk12N0Rpc2Fzc2VtYmxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yNzgzLDYgKzI4MjQsOCBAQAogCQlGRTU5MzJBNjE4M0M1QTI2MDBBMUVDQ0MgLyog
Vk1FbnRyeVNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZNRW50cnlT
Y29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUEwODYxRTE4MkI3QTA0MDBG
NkQ4NTEgLyogQnJlYWtwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
cmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQTA4NjFGMTgyQjdB
MDQwMEY2RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGVidWdnZXJQcmltaXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUZFQjU4QzEyMTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXJyb3JIYW5kbGluZ1Njb3Bl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVCNThDMTMxODdCOEIxNjAwOThF
RjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFcnJvckhhbmRsaW5nU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2RlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50T3Bjb2RlLmg7IHBhdGggPSBsbGludC9MTEludE9wY29k
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5NEYyQjE3MUUzRTIzMDBCRTc3
QTQgLyogV2F0Y2hkb2cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2F0Y2hkb2cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5NEYyQzE3MUUz
RTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2F0Y2hkb2cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwMDEsNiArMzA0
NCw4IEBACiAJCQkJMEZFQTBBMTgxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVhcC5o
ICovLAogCQkJCTBGRUEwQTE5MTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmNwcCAqLywKIAkJCQkwRkVBMEExQTE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5oICovLAorCQkJCTBGNDg1MzIzMTg3REZERUMwMDgzQjY4NyAvKiBG
VExBdmFpbGFibGVSZWNvdmVyeS5jcHAgKi8sCisJCQkJMEY0ODUzMjQxODdERkRFQzAwODNCNjg3
IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmggKi8sCiAJCQkJMEZFQTA5RkUxNzA1MTNEQjAwQkI3
MjJDIC8qIEZUTENhcGFiaWxpdGllcy5jcHAgKi8sCiAJCQkJMEZFQTA5RkYxNzA1MTNEQjAwQkI3
MjJDIC8qIEZUTENhcGFiaWxpdGllcy5oICovLAogCQkJCTBGRUEwQTI1MTcwOTYyM0IwMEJCNzIy
QyAvKiBGVExDb21tb25WYWx1ZXMuY3BwICovLApAQCAtMzAzMSw2ICszMDc2LDggQEAKIAkJCQkw
RkVBMEEwMzE3MDUxM0RCMDBCQjcyMkMgLyogRlRMSklUQ29kZS5oICovLAogCQkJCUE3OEE5NzdE
MTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIuY3BwICovLAogCQkJCUE3OEE5NzdF
MTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIuaCAqLywKKwkJCQkwRjZCMUNCMzE4
NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCAqLywKKwkJCQkwRjZCMUNCNDE4NUZDOUU5
MDA4NDVEOTcgLyogRlRMSlNDYWxsLmggKi8sCiAJCQkJMEY4RjJCOTMxNzJFMDQ5RTAwN0RCREE1
IC8qIEZUTExpbmsuY3BwICovLAogCQkJCTBGOEYyQjk0MTcyRTA0OUUwMDdEQkRBNSAvKiBGVExM
aW5rLmggKi8sCiAJCQkJMEZDRUZBREQxODA3MzhDMDAwNDcyQ0U0IC8qIEZUTExvY2F0aW9uLmNw
cCAqLywKQEAgLTMwNDcsNiArMzA5NCwxMCBAQAogCQkJCTBGMjM1QkNBMTcxNzhFMUMwMDY5MEM3
RiAvKiBGVExPU1JFeGl0Q29tcGlsZXIuaCAqLywKIAkJCQkwRkVBMEEyOTE3MDk2Mjk2MDBCQjcy
MkMgLyogRlRMT3V0cHV0LmNwcCAqLywKIAkJCQkwRkVBMEEwNjE3MDUxM0RCMDBCQjcyMkMgLyog
RlRMT3V0cHV0LmggKi8sCisJCQkJMEY0ODUzMjUxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292
ZXJ5T3Bjb2RlLmNwcCAqLywKKwkJCQkwRjQ4NTMyNjE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVj
b3ZlcnlPcGNvZGUuaCAqLywKKwkJCQkwRjZCMUNCRjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVn
aXN0ZXJBdE9mZnNldC5jcHAgKi8sCisJCQkJMEY2QjFDQzAxODYyQzQ3ODAwODQ1RDk3IC8qIEZU
TFJlZ2lzdGVyQXRPZmZzZXQuaCAqLywKIAkJCQkwRkNFRkFBOTE4MDRDMTNFMDA0NzJDRTQgLyog
RlRMU2F2ZVJlc3RvcmUuY3BwICovLAogCQkJCTBGQ0VGQUFBMTgwNEMxM0UwMDQ3MkNFNCAvKiBG
VExTYXZlUmVzdG9yZS5oICovLAogCQkJCTBGMjVGMUFBMTgxNjM1RjMwMDUyMkYzOSAvKiBGVExT
bG93UGF0aENhbGwuY3BwICovLApAQCAtMzA2MSw5ICszMTEyLDEzIEBACiAJCQkJMEYyMzVCQ0Ix
NzE3OEUxQzAwNjkwQzdGIC8qIEZUTFRodW5rcy5jcHAgKi8sCiAJCQkJMEYyMzVCQ0MxNzE3OEUx
QzAwNjkwQzdGIC8qIEZUTFRodW5rcy5oICovLAogCQkJCTBGRUEwQTFCMTcwOEIwMDcwMEJCNzIy
QyAvKiBGVExUeXBlZFBvaW50ZXIuaCAqLywKKwkJCQkwRjZCMUNDMTE4NjJDNDc4MDA4NDVEOTcg
LyogRlRMVW53aW5kSW5mby5jcHAgKi8sCisJCQkJMEY2QjFDQzIxODYyQzQ3ODAwODQ1RDk3IC8q
IEZUTFVud2luZEluZm8uaCAqLywKIAkJCQkwRjIzNUJDRDE3MTc4RTFDMDA2OTBDN0YgLyogRlRM
VmFsdWVGb3JtYXQuY3BwICovLAogCQkJCTBGMjM1QkNFMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExW
YWx1ZUZvcm1hdC5oICovLAogCQkJCTBGREIyQ0M4MTczREE1MUUwMDdCM0MxQiAvKiBGVExWYWx1
ZUZyb21CbG9jay5oICovLAorCQkJCTBGNUE2MjgxMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1
ZVJhbmdlLmNwcCAqLywKKwkJCQkwRjVBNjI4MjE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVS
YW5nZS5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBmdGw7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMzE1Miw2ICszMjA3LDggQEAKIAkJMTQyOUQ5MkMwRUQyMkQ3MDAwQjg5NjE5IC8q
IGppdCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMEY2
QjFDQzcxODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCAq
LywKKwkJCQkwRjZCMUNDODE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5U
aHVua3MuaCAqLywKIAkJCQkwRjI0RTUzQjE3RUE5RjU5MDBBQkIyMTcgLyogQXNzZW1ibHlIZWxw
ZXJzLmNwcCAqLywKIAkJCQkwRjI0RTUzQzE3RUE5RjU5MDBBQkIyMTcgLyogQXNzZW1ibHlIZWxw
ZXJzLmggKi8sCiAJCQkJMEYyNEU1M0QxN0VBOUY1OTAwQUJCMjE3IC8qIENDYWxsSGVscGVycy5o
ICovLApAQCAtMzIwNSw2ICszMjYyLDggQEAKIAkJCQkwRkM3MTJFMTE3Q0Q4NzhGMDA4Q0M5M0Mg
LyogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAqLywKIAkJCQlBNzZGNTRB
MjEzQjI4QUFCMDBFRjJCQ0UgLyogSklUV3JpdGVCYXJyaWVyLmggKi8sCiAJCQkJQTc2QzUxNzQx
MTgyNzQ4RDAwNzE1QjA1IC8qIEpTSW50ZXJmYWNlSklULmggKi8sCisJCQkJMEY2QjFDQkIxODYx
MjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAg
Ki8sCisJCQkJMEY2QjFDQkMxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9u
V3JhcHBlckdlbmVyYXRvci5oICovLAogCQkJCTBGQzMxNDE0MTgxNDZENzAwMDAzMzIzMiAvKiBS
ZWdpc3RlclNldC5jcHAgKi8sCiAJCQkJMEZDMzE0MTAxODE0NTU5MTAwMDMzMjMyIC8qIFJlZ2lz
dGVyU2V0LmggKi8sCiAJCQkJMEYyNEU1NDkxN0VFMjc0OTAwQUJCMjE3IC8qIFJlcGF0Y2guY3Bw
ICovLApAQCAtMzU1NCw2ICszNjEzLDcgQEAKIAkJCQlBNzYxNDBDODE4Mjk4MkNCMDA3NTA2MjQg
LyogQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5oICovLAogCQkJCUE3NjE0MEM5MTgyOTgy
Q0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAgKi8sCiAJCQkJQTc2
MTQwQ0ExODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmggKi8s
CisJCQkJMEY2QjFDQjcxODYxMjQ0QzAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggKi8sCiAJ
CQkJQTdBOEFGMjUxN0FEQjVGMjAwNUFCMTc0IC8qIEFycmF5QnVmZmVyLmNwcCAqLywKIAkJCQlB
N0E4QUYyNjE3QURCNUYzMDA1QUIxNzQgLyogQXJyYXlCdWZmZXIuaCAqLywKIAkJCQkwRkZDOTlE
MjE4NEVFMzE4MDA5QzEwQUIgLyogQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50LmNwcCAq
LywKQEAgLTM2MTgsNiArMzY3OCw4IEBACiAJCQkJQkMzMDQ2MDYwRTFGNDk3RjAwMzIzMkNGIC8q
IEVycm9yLmggKi8sCiAJCQkJQkMwMkU5MDQwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yQ29uc3Ry
dWN0b3IuY3BwICovLAogCQkJCUJDMDJFOTA1MEUxODM5REIwMDBGOTI5NyAvKiBFcnJvckNvbnN0
cnVjdG9yLmggKi8sCisJCQkJRkVCNThDMTIxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxp
bmdTY29wZS5jcHAgKi8sCisJCQkJRkVCNThDMTMxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFu
ZGxpbmdTY29wZS5oICovLAogCQkJCUJDMDJFOThBMEUxODNFMzgwMDBGOTI5NyAvKiBFcnJvcklu
c3RhbmNlLmNwcCAqLywKIAkJCQlCQzAyRTk4QjBFMTgzRTM4MDAwRjkyOTcgLyogRXJyb3JJbnN0
YW5jZS5oICovLAogCQkJCUJDMDJFOTA2MEUxODM5REIwMDBGOTI5NyAvKiBFcnJvclByb3RvdHlw
ZS5jcHAgKi8sCkBAIC0zODUxLDYgKzM5MTMsNyBAQAogCQkJCUY2OTJBODdDMDI1NTU5N0QwMUZG
NjBGNyAvKiBSZWdFeHBPYmplY3QuaCAqLywKIAkJCQlCQ0QyMDJCRjBFMTcwNkE3MDAyQzdFODIg
LyogUmVnRXhwUHJvdG90eXBlLmNwcCAqLywKIAkJCQlCQ0QyMDJDMDBFMTcwNkE3MDAyQzdFODIg
LyogUmVnRXhwUHJvdG90eXBlLmggKi8sCisJCQkJMEY2QjFDQjgxODYxMjQ0QzAwODQ1RDk3IC8q
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oICovLAogCQkJCTBGQjdGMzkxMTVFRDhFMzgwMEYx
NjdCMiAvKiBSZWplY3QuaCAqLywKIAkJCQkwRjc3MDA5MTE0MDJGRjI4MDA3OEVCMzkgLyogU2Ft
cGxpbmdDb3VudGVyLmNwcCAqLywKIAkJCQkwRjc3MDA4RTE0MDJGREQ2MDA3OEVCMzkgLyogU2Ft
cGxpbmdDb3VudGVyLmggKi8sCkBAIC0zOTY1LDYgKzQwMjgsOCBAQAogCQk4NkVDOURCMzEzMjhE
RjQ0MDAyQjJBRDcgLyogZGZnICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQkyQUNDRjNEQzE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxp
c2lvblBoYXNlLmNwcCAqLywKKwkJCQkyQUNDRjNERDE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3Rv
cmVCYXJyaWVyRWxpc2lvblBoYXNlLmggKi8sCiAJCQkJQTc3QTQyMzYxN0EwQkJGRDAwQThEQjgx
IC8qIERGR0Fic3RyYWN0SGVhcC5jcHAgKi8sCiAJCQkJQTc3QTQyMzcxN0EwQkJGRDAwQThEQjgx
IC8qIERGR0Fic3RyYWN0SGVhcC5oICovLAogCQkJCUE3MDREOEZFMTdBMEJBQTgwMDZCQTU1NCAv
KiBERkdBYnN0cmFjdEludGVycHJldGVyLmggKi8sCkBAIC00MTUzLDggKzQyMTgsNiBAQAogCQkJ
CTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBERkdTU0FMb3dlcmluZ1BoYXNlLmggKi8sCiAJ
CQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhhc2UuY3BwICov
LAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdGOCAvKiBERkdTdGFja0xheW91dFBoYXNlLmgg
Ki8sCi0JCQkJMkFDQ0YzREMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNp
b25QaGFzZS5jcHAgKi8sCi0JCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3Jl
QmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJCTBGQzIwQ0IzMTg1MkUyQzYwMEM5RTk1NCAv
KiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRkMyMENCNDE4NTJFMkM2
MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5oICovLAogCQkJCTBGNjM5NDc2
MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmggKi8sCkBAIC00
MjUwLDYgKzQzMTMsNyBAQAogCQk5Njg4Q0IxMjBFRDEyQjRFMDAxRDY0OUYgLyogYXNzZW1ibGVy
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2NTg2MDE3
NzE4NUE4RjVFMDAwMzBFRUUgLyogTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCAqLywK
IAkJCQk4NjAxNjFERjBGM0E4M0MxMDBGODQ3MTAgLyogQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5o
ICovLAogCQkJCTg2NDA5MjNCMTU2RUVEM0IwMDU2NkNCMiAvKiBBUk02NEFzc2VtYmxlci5oICov
LAogCQkJCTg2RDNCMkJGMTAxNTZCREUwMDI4NjVFNyAvKiBBUk1Bc3NlbWJsZXIuY3BwICovLApA
QCAtNDMyMiw2ICs0Mzg2LDcgQEAKIAkJCQk5NjlBMDc5MjBFRDFEM0FFMDBGMUY2ODEgLyogRXZh
bENvZGVDYWNoZS5oICovLAogCQkJCTBGNTZBMUQ0MTUwMDFDRjIwMDI5OTJCMSAvKiBFeGVjdXRp
b25Db3VudGVyLmNwcCAqLywKIAkJCQkwRjU2QTFEMTE1MDAwRjMxMDAyOTkyQjEgLyogRXhlY3V0
aW9uQ291bnRlci5oICovLAorCQkJCTBGM0FDNzUzMTg4RTVFQzgwMDMyMDI5RiAvKiBFeGl0aW5n
SklUVHlwZS5oICovLAogCQkJCTBGQjEwNTgyMTY3NTQ4MEMwMEY4QUI2RSAvKiBFeGl0S2luZC5j
cHAgKi8sCiAJCQkJMEZCMTA1ODMxNjc1NDgwQzAwRjhBQjZFIC8qIEV4aXRLaW5kLmggKi8sCiAJ
CQkJMEYwQjgzQUExNEJDRjVCOTAwODg1QjRGIC8qIEV4cHJlc3Npb25SYW5nZUluZm8uaCAqLywK
QEAgLTQ1NDEsMTMgKzQ2MDYsMTQgQEAKIAkJCQk4NkFERDE0NTBGRERFQTk4MDAwNkVFQzIgLyog
QVJNdjdBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Q0VFRTE1MTg3RjNCQUQwMEU1
NUM5OSAvKiBJbnNwZWN0b3JBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVDMDI4NUQxNzE3
OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkE2ODI5
NUIxODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBI
ZWFkZXJzICovLAorIAkJCQkyQTY4Mjk1QjE4NzVGODA1MDBCNkMzRTIgLyogQ29weVdyaXRlQmFy
cmllci5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgMkE0RUM5MEMxODYwRDZDMjAw
OTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU1OTMy
QTgxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTUzMjQzOTMxODU2OTcwOTAwMkVENjkyIC8qIENvZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdz
LnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJQTUzMjQzOTIxODU2OTcwOTAwMkVENjkyIC8qIENvZGVH
ZW5lcmF0b3JJbnNwZWN0b3IucHkgaW4gSGVhZGVycyAqLywKKyAJCQkJQTUzMjQzOTIxODU2OTcw
OTAwMkVENjkyIC8qIENvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogVGVtcFJlZ2lzdGVyU2V0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFQjU4QzE1MTg3QjhCMTYwMDk4RUYwQiAv
KiBFcnJvckhhbmRsaW5nU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkZGM0MwMTc5ODY4
OTQwMDAyRjQ2MiAvKiBERkdGaWx0cmF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTg0MEUyNzE4N0M5ODFFMDA4NDNCMTAgLyogY3NzbWluLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzJGQ0FFMTExN0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlQmFzaWNCbG9jay5oIGluIEhlYWRl
cnMgKi8sCkBAIC00NTU2LDcgKzQ2MjIsNyBAQAogCQkJCTBGODMzNUI4MTYzOUMxRUEwMDE0NDNC
NSAvKiBBcnJheUFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg0MEUy
OTE4N0NBNUU2MDA4NDNCMTAgLyogaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNj
cmlwdHMucHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTg0MEUyQjE4N0NBNzVCMDA4NDNCMTAgLyog
anNtaW4ucHkgaW4gSGVhZGVycyAqLywKLQkJCQlBNTMyNDM5ODE4NTZBNDg5MDAyRUQ2OTIgLyog
SW5zcGVjdG9ySlMuanNvbiBpbiBIZWFkZXJzICovLAorIAkJCQlBNTMyNDM5ODE4NTZBNDg5MDAy
RUQ2OTIgLyogSW5zcGVjdG9ySlMuanNvbiBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTJBMTg3
Q0E3NTkwMDg0M0IxMCAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywKIAkJCQlGRUEwODYyMDE4MkI3
QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdBOEFGMzUx
N0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTQ2MjQs
NiArNDY5MCw3IEBACiAJCQkJQzJFQUEzRkExNDlBODM1RTAwRkNFMTEyIC8qIENvcGllZFNwYWNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkM4RDAyRDE0QTNDNkUwMDA1NzhFNjUgLyogQ29waWVk
U3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVBNTJEMDE3QURENzE3MDA4RUNC
MkQgLyogQ29weVRva2VuLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNDNjE4NjJDNDc4MDA4
NDVEOTcgLyogRlRMVW53aW5kSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIyMzlEMTgxNjI2
MkJERDAwNUFDNUZEIC8qIENvcHlWaXNpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjIzOUQx
OTE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3JJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDMjE4RDE0MDE2NTVDRkQ1MDA2MkJCODEgLyogQ29weVdvcmtMaXN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTQ2NjUsNyArNDczMiw4IEBACiAJCQkJMEY4MzY0QjcxNjRCMEMxMTAwNTMzMjlB
IC8qIERGR0JyYW5jaERpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFBMDA5QzAxODMx
QTIyRDAwQ0Y4NzExIC8qIE1hY3JvQXNzZW1ibGVyQVJNNjQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg2RUM5REM1MTMyOERGODIwMDJCMkFENyAvKiBERkdCeXRlQ29kZVBhcnNlci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQTU5M0NGODcxODQwMzhDQTAwQkZDRTI3IC8qIEluc3BlY3RvckFnZW50UmVn
aXN0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDg1MzI4MTg3REZERUMwMDgzQjY4NyAvKiBG
VExBdmFpbGFibGVSZWNvdmVyeS5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgQTU5
M0NGODcxODQwMzhDQTAwQkZDRTI3IC8qIEluc3BlY3RvckFnZW50UmVnaXN0cnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMjU2QzM2MTYyN0IwQUQwMDdGMjc4MyAvKiBERkdDYWxsQXJyYXlBbGxv
Y2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3QjI5NEIxNEMz
Q0QyRjAwN0MzREIxIC8qIERGR0NhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZG
RkM5NTgxNEVGOTBBMjAwQzcyNTMyIC8qIERGR0NGQVBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAg
LTQ2OTksNiArNDc2Nyw3IEBACiAJCQkJMEZCQzBBRTgxNDk2QzdDNzAwRDRGQkREIC8qIERGR0V4
aXRQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc3NTE3OTczOEI4MDA5REY3NDQg
LyogREZHRmFpbGVkRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc3NzE3OTcz
OEI4MDA5REY3NDQgLyogREZHRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNC
NjE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJC
REMxNjE1MUM1RDRGMDBDRDg5MTAgLyogREZHRml4dXBQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY5RDMzOTcxN0ZGQzRFNjAwNzNDMkJDIC8qIERGR0ZsdXNoZWRBdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdEODlDRjgxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0ZsdXNoRm9ybWF0LmggaW4g
SGVhZGVycyAqLywKQEAgLTQ3MzUsNiArNDgwNCw3IEBACiAJCQkJMEZEOEEzMjYxN0Q1MUY1NzAw
Q0EyQzQwIC8qIERGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkMwOTc2QTE0NjhBNkY3MDBDRjI0NDIgLyogREZHT1NSRXhpdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZGQzk5RDExODRFQzhBRDAwOUMxMEFCIC8qIENvbnN0YW50TW9kZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY2QjFDQkExODYxMjQ0QzAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMzVCRUMxNzE3OEU3MzAwNjkwQzdG
IC8qIERGR09TUkV4aXRCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUJBMTVFRDE4MjM0MEI0
MDBBODJFNjkgLyogUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZGQjkyMUMxNkQwMkYxMTAwNTVBNURCIC8qIERGR09TUkV4aXRDb21waWxhdGlvbklu
Zm8uaCBpbiBIZWFkZXJzICovLApAQCAtNDgwMyw2ICs0ODczLDcgQEAKIAkJCQkwRkVBMEExRjE3
MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTU5NDU1OTMxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdn
YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMEExNzA1MTNEQjAwQkI3MjJDIC8qIEZU
TENhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0ODUzMkExODdERkRFQzAwODNC
Njg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEyMzE3
MDk2MDY5MDBCQjcyMkMgLyogRlRMQ29tbW9uVmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkVBMEEwQzE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ29tcGlsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyMzVCRDQxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTEV4aXRBcmd1bWVudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC00ODE5LDYgKzQ4OTAsNyBAQAogCQkJCTBGRUEwQTI0MTcwOTYwNjkwMEJCNzIy
QyAvKiBGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEw
RTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMSklUQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4
QTk3ODExNzk3MzhENTAwOURGNzQ0IC8qIEZUTEpJVEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY1QTYyODQxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGOEYyQjk2MTcyRTA0QTMwMDdEQkRBNSAvKiBGVExMaW5rLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkNFRkFFMDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRUEwQTEwMTcwNTEzREIwMEJCNzIyQyAvKiBGVExMb3dlckRG
R1RvTExWTS5oIGluIEhlYWRlcnMgKi8sCkBAIC00OTAxLDYgKzQ5NzMsNyBAQAogCQkJCTBGQzIw
Q0I2MTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkIxNEUxRjE4MTI0QUNFMDA5QjZCNEQgLyogSklUSW5saW5lQ2FjaGVH
ZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2Q0M4NUExMEVFNzlBNDcwMDI4ODY4MiAv
KiBKSVRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNCRTE4NjEyNDZBMDA4NDVE
OTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjI0RTU0RDE3RUUyNzQ5MDBBQkIyMTcgLyogSklUT3BlcmF0aW9ucy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTc5MERENzAxODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTRFMTdFRTI3NDkwMEFCQjIxNyAvKiBKSVRPcGVy
YXRpb25XcmFwcGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC00OTE2LDYgKzQ5ODksNyBAQAogCQkJ
CTBGQzcxMkUzMTdDRDg3OTMwMDhDQzkzQyAvKiBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc2RjU0QTMxM0IyOEFBQjAwRUYyQkNFIC8q
IEpJVFdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MTYwRTE2RjVDRDAw
QjM0NDYwIC8qIEpTQWN0aXZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQjkxODYx
MjQ0QzAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDA0
ODAxMzEwMjFBMUQ5MDA4RTdGMDEgLyogSlNBUElWYWx1ZVdyYXBwZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUMyQ0YzOUMyMTZFMTVBODEwMERENjlCRSAvKiBKU0FQSVdyYXBwZXJPYmplY3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUE3NjE0MEQyMTgyOTgyQ0IwMDc1MDYyNCAvKiBKU0FyZ3VtZW50
c0l0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTQ5NjksNiArNTA0Myw4IEBACiAJCQkJQkMx
OEM0MjMwRTE2RjVDRDAwQjM0NDYwIC8qIEpTTG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzI1
RDcwOUMxNkRFOTlGNDAwRkNBNkJDIC8qIEpTTWFuYWdlZFZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNzAwODc0MjE3Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGM0FDNzU0MTg4RTVFQzgwMDMyMDI5RiAvKiBFeGl0aW5nSklUVHlwZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY2QjFDQzQxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZz
ZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0ODc0QUU0MTVFQkRFNEEwMDJFMzU4NyAvKiBKU05h
bWVTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjQwRTE2RjVDRDAwQjM0NDYwIC8q
IEpTT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyNTBFMTZGNUNEMDBCMzQ0NjAg
LyogSlNPYmplY3RSZWYuaCBpbiBIZWFkZXJzICovLApAQCAtNTI3Myw2ICs1MzQ5LDcgQEAKIAkJ
CQk5Njg4Q0IxNjBFRDEyQjRFMDAxRDY0OUYgLyogWDg2QXNzZW1ibGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY2NjZFQ0QxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZvclZhbGlk
YXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQ0ExODY0MURGODAwODQ1RDk3
IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Njcw
NEI4NTEyREJBMzM3MDBBOUZFN0IgLyogWWFyckludGVycHJldGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTVEOTNBNjE4NTAxMkE4MDA0MDBERUQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NjcwNEI4NzEyREJBMzM3MDBBOUZFN0IgLyogWWFyckpJVC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC01NzE2LDYgKzU3OTMsNyBAQAogCQkJCTE0MjlEOEREMEVEMjIwNUIw
MEI4OTYxOSAvKiBDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwQjgzQjAxNEJD
RjcxNjAwODg1QjRGIC8qIENhbGxMaW5rSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTEz
RTVCNzE4NUI4QkQzMDA3RTk1QUQgLyogSW5qZWN0ZWRTY3JpcHQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMEY1QTYyODMxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY5MzMyOUQxNENBN0RDMzAwODVGM0M2IC8qIENhbGxMaW5rU3RhdHVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzNEN0FFMTY1QTE0MkQwMEFDQUI3MSAvKiBDbG9z
dXJlQ2FsbFN0dWJSb3V0aW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk2OUEwNzk2MEVEMUQz
QUUwMEYxRjY4MSAvKiBDb2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01NzU0LDYgKzU4
MzIsNyBAQAogCQkJCTBGNjM5NDg0MTVFNDgxMTgwMDZBNTk3QyAvKiBERkdBcnJheU1vZGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEOUEyOTQxN0EwQkM3NDAwRUUyNjE4IC8qIERGR0F0VGFp
bEFic3RyYWN0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3MTRDQTQxNkVBOTJGMDAw
RjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJRkVCNThDMTQxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNGMjE3QTBCOENDMDA3NzNBRDggLyogREZHQmFzaWNC
bG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzBCMDgzMjE3QTBCNzlCMDBEQUYxNEIgLyog
REZHQmluYXJ5U3dpdGNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0YzMTdBMEI4Q0Mw
MDc3M0FEOCAvKiBERkdCbG9ja0luc2VydGlvblNldC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTU4
MzEsOSArNTkxMCwxMSBAQAogCQkJCTg2ODgwRjREMTQzNTNCMjEwMEIwOEQ0MiAvKiBERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0ZGMTdBMEI4Q0MwMDc3
M0FEOCAvKiBERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5
RkI0RjQxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEY2QjFDQkQxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0
aW9uV3JhcHBlckdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMwOTdBMTE0NkIy
OENBMDBDRjI0NDIgLyogREZHVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDhBMzI3
MTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRDhBMzI5MTdENTFGNTcwMENBMkM0MCAvKiBERkdUb0ZUTERlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjQ4NTMyNzE4
N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZEOEEzMkIxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRm9yT1NSRW50cnlEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2Mzk0NDAx
NUM3NUYxRDAwNkE1OTdDIC8qIERGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZCRTBGNzYxNkMxREIwRjAwODJDNUU4IC8qIERGR1VuaWZpY2F0aW9uUGhh
c2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01ODkyLDkgKzU5NzMsMTEgQEAKIAkJCQkwRkNFRkFB
QjE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEYyNUYxQjExODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjI1RjFCMzE4MTYzNUYzMDA1MjJGMzkgLyogRlRMU2xvd1BhdGhDYWxs
S2V5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0M1MTg2MkM0NzgwMDg0NUQ5NyAvKiBG
VExVbndpbmRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzMzlBMTgwM0FEQjcwMDcz
QzJCQyAvKiBGVExTdGFja01hcHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQTBBMTYxNzA2
QkI5MDAwQkI3MjJDIC8qIEZUTFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTdDMDA4Q0Qy
MTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8s
CisgCQkJCTdDMDA4Q0QyMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5jdGlvbnMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQjUxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2Fs
bC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIzNUJFMTE3MTc4RTFDMDA2OTBDN0YgLyogRlRM
VGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1OTNDRjdDMTg0MDM2MDMwMEJGQ0UyNyAv
KiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIz
NUJFMzE3MTc4RTFDMDA2OTBDN0YgLyogRlRMVmFsdWVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC01OTgwLDYgKzYwNjMsNyBAQAogCQkJCTE0MjgwODc1MTA3RUMxM0UwMDEzRTdCMiAvKiBK
U0xvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzI1RDcwOUIxNkRFOTlGNDAwRkNBNkJDIC8q
IEpTTWFuYWdlZFZhbHVlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcwMDg3NDExN0NCRThFQjAw
QzNFNjQzIC8qIEpTTWFwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNDg1MzI5MTg3REZERUMw
MDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDg3
NEFFMzE1RUJERTRBMDAyRTM1ODcgLyogSlNOYW1lU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTcyNzAwOTAwREFDNkJCQzAwRTU0OEQ3IC8qIEpTTm90QW5PYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTQ3RjM5RDQxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTT2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtNjA5Niw2ICs2MTgwLDcgQEAKIAkJCQkwRjY2NkVDQzE4MzZCMzdFMDBE
MDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGQjEwNThCMTY3NTQ4MzEwMEY4QUI2RSAvKiBQcm9maWxlck9TUkV4aXQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCMTA1OEQxNjc1NDgzNzAwRjhBQjZFIC8qIFByb2ZpbGVy
T1NSRXhpdFNpdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQzMxODYyQzQ3ODAwODQ1
RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxMzkx
MkIxNjc3MUMzQTAwOUNDQjA3IC8qIFByb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTdGQjYwQTQxMDNGN0RDMjAwMTdBMjg2IC8qIFByb3BlcnR5RGVzY3Jp
cHRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURFNzEwN0VDN0U3MDA2NTA0NDYgLyog
UHJvcGVydHlOYW1lQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02MTI1LDYgKzYyMTAsNyBA
QAogCQkJCTBGOEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYgLyogU291cmNl
UHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZCMUNDOTE4NjQxREY4MDA4
NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEYwQ0Q0QzQxNUY2QjZCQjAwMzJGMUMwIC8qIFNwYXJzZUFycmF5VmFsdWVNYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEY1NTQxQjExNjEzQzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2lu
dGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDgyRTg2MTQxRjNGRjEwMDE3OUM5NCAvKiBT
cGVjdWxhdGVkVHlwZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgJKHJldmlzaW9uIDE2MjkxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDI2IEBACiAjZGVmaW5lIERBVEFTSVpFIERBVEFTSVpF
X09GKGRhdGFzaXplKQogI2RlZmluZSBNRU1PUFNJWkUgTUVNT1BTSVpFX09GKGRhdGFzaXplKQog
I2RlZmluZSBDSEVDS19GUF9NRU1PUF9EQVRBU0laRSgpIEFTU0VSVChkYXRhc2l6ZSA9PSA4IHx8
IGRhdGFzaXplID09IDE2IHx8IGRhdGFzaXplID09IDMyIHx8IGRhdGFzaXplID09IDY0IHx8IGRh
dGFzaXplID09IDEyOCkKKyNkZWZpbmUgTUVNUEFJUk9QU0laRV9JTlQoZGF0YXNpemUpICgoZGF0
YXNpemUgPT0gNjQpID8gTWVtUGFpck9wXzY0IDogTWVtUGFpck9wXzMyKQorI2RlZmluZSBNRU1Q
QUlST1BTSVpFX0ZQKGRhdGFzaXplKSAoKGRhdGFzaXplID09IDEyOCkgPyBNZW1QYWlyT3BfVjEy
OCA6IChkYXRhc2l6ZSA9PSA2NCkgPyBNZW1QYWlyT3BfVjY0IDogTWVtUGFpck9wXzMyKQogCiBu
YW1lc3BhY2UgSlNDIHsKIAorQUxXQVlTX0lOTElORSBib29sIGlzSW50NyhpbnQzMl90IHZhbHVl
KQoreworICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDI1KSA+PiAyNSk7Cit9CisKIEFM
V0FZU19JTkxJTkUgYm9vbCBpc0ludDkoaW50MzJfdCB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFs
dWUgPT0gKCh2YWx1ZSA8PCAyMykgPj4gMjMpOwogfQogCitBTFdBWVNfSU5MSU5FIGJvb2wgaXNJ
bnQxMShpbnQzMl90IHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDIx
KSA+PiAyMSk7Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBpc1VJbnQ1KGludDMyX3QgdmFsdWUp
CiB7CiAgICAgcmV0dXJuICEodmFsdWUgJiB+MHgxZik7CkBAIC0xMTksNiArMTMxLDM0IEBAIHBy
aXZhdGU6CiAgICAgaW50IG1fdmFsdWU7CiB9OwogCitjbGFzcyBQYWlyUG9zdEluZGV4IHsKK3B1
YmxpYzoKKyAgICBleHBsaWNpdCBQYWlyUG9zdEluZGV4KGludCB2YWx1ZSkKKyAgICAgICAgOiBt
X3ZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW50MTEodmFsdWUpKTsKKyAg
ICB9CisKKyAgICBvcGVyYXRvciBpbnQoKSB7IHJldHVybiBtX3ZhbHVlOyB9CisKK3ByaXZhdGU6
CisgICAgaW50IG1fdmFsdWU7Cit9OworCitjbGFzcyBQYWlyUHJlSW5kZXggeworcHVibGljOgor
ICAgIGV4cGxpY2l0IFBhaXJQcmVJbmRleChpbnQgdmFsdWUpCisgICAgICAgIDogbV92YWx1ZSh2
YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0ludDExKHZhbHVlKSk7CisgICAgfQorCisg
ICAgb3BlcmF0b3IgaW50KCkgeyByZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRlOgorICAgIGlu
dCBtX3ZhbHVlOworfTsKKwogY2xhc3MgTG9naWNhbEltbWVkaWF0ZSB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIExvZ2ljYWxJbW1lZGlhdGUgY3JlYXRlMzIodWludDMyX3QgdmFsdWUpCkBAIC04MjMs
NiArODYzLDE2IEBAIHByaXZhdGU6CiAgICAgICAgIE1lbU9wX0xPQURfc2lnbmVkMzIgPSAzIC8v
IHNpemUgbWF5IGJlIDAgb3IgMQogICAgIH07CiAKKyAgICBlbnVtIE1lbVBhaXJPcFNpemUgewor
ICAgICAgICBNZW1QYWlyT3BfMzIgPSAwLAorICAgICAgICBNZW1QYWlyT3BfTG9hZFNpZ25lZF8z
MiA9IDEsCisgICAgICAgIE1lbVBhaXJPcF82NCA9IDIsCisKKyAgICAgICAgTWVtUGFpck9wX1Yz
MiA9IE1lbVBhaXJPcF8zMiwKKyAgICAgICAgTWVtUGFpck9wX1Y2NCA9IDEsCisgICAgICAgIE1l
bVBhaXJPcF9WMTI4ID0gMgorICAgIH07CisKICAgICBlbnVtIE1vdmVXaWRlT3AgewogICAgICAg
ICBNb3ZlV2lkZU9wX04gPSAwLAogICAgICAgICBNb3ZlV2lkZU9wX1ogPSAyLApAQCAtODM2LDYg
Kzg4NiwxNCBAQCBwcml2YXRlOgogICAgICAgICBMZHJMaXRlcmFsT3BfMTI4QklUID0gMgogICAg
IH07CiAKKyAgICBzdGF0aWMgdW5zaWduZWQgbWVtUGFpck9mZnNldFNoaWZ0KGJvb2wgViwgTWVt
UGFpck9wU2l6ZSBzaXplKQorICAgIHsKKyAgICAgICAgLy8gcmV0dXJuIHRoZSBsb2cyIG9mIHRo
ZSBzaXplIGluIGJ5dGVzLCBlLmcuIDY0IGJpdCBzaXplIHJldHVybnMgMworICAgICAgICBpZiAo
VikKKyAgICAgICAgICAgIHJldHVybiBzaXplICsgMjsKKyAgICAgICAgcmV0dXJuIChzaXplID4+
IDEpICsgMjsKKyAgICB9CisKIHB1YmxpYzoKICAgICAvLyBJbnRlZ2VyIEluc3RydWN0aW9uczoK
IApAQCAtODcxLDggKzkyOSw5IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgYWRk
KFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNoaWZ0VHlwZSBz
aGlmdCwgaW50IGFtb3VudCkKICAgICB7CiAgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7Ci0gICAg
ICAgIGlmIChpc1NwKHJuKSkgeworICAgICAgICBpZiAoaXNTcChyZCkgfHwgaXNTcChybikpIHsK
ICAgICAgICAgICAgIEFTU0VSVChzaGlmdCA9PSBMU0wpOworICAgICAgICAgICAgQVNTRVJUKCFp
c1NwKHJtKSk7CiAgICAgICAgICAgICBhZGQ8ZGF0YXNpemUsIHNldEZsYWdzPihyZCwgcm4sIHJt
LCBVWFRYLCBhbW91bnQpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGluc24oYWRkU3Vi
dHJhY3RTaGlmdGVkUmVnaXN0ZXIoREFUQVNJWkUsIEFkZE9wX0FERCwgc2V0RmxhZ3MsIHNoaWZ0
LCBybSwgYW1vdW50LCBybiwgcmQpKTsKQEAgLTEyMTYsNiArMTI3NSwyMCBAQCBwdWJsaWM6CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBsZHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBhaXJQ
b3N0SW5kZXggc2ltbSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7CisgICAgICAg
IGluc24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1FTVBBSVJPUFNJWkVfSU5UKGRh
dGFzaXplKSwgZmFsc2UsIE1lbU9wX0xPQUQsIHNpbW0sIHJuLCBydCwgcnQyKSk7CisgICAgfQor
CisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBsZHAo
UmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBhaXJQcmVJbmRl
eCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAgICAgaW5zbihs
b2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSks
IGZhbHNlLCBNZW1PcF9MT0FELCBzaW1tLCBybiwgcnQsIHJ0MikpOworICAgIH0KKworICAgIHRl
bXBsYXRlPGludCBkYXRhc2l6ZT4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbGRyKFJlZ2lzdGVy
SUQgcnQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAgICBsZHI8
ZGF0YXNpemU+KHJ0LCBybiwgcm0sIFVYVFgsIDApOwpAQCAtMTc0OCw2ICsxODIxLDIwIEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lO
TElORSB2b2lkIHN0cChSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0MiwgUmVnaXN0ZXJJRCBy
biwgUGFpclBvc3RJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsK
KyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoTUVNUEFJUk9QU0la
RV9JTlQoZGF0YXNpemUpLCBmYWxzZSwgTWVtT3BfU1RPUkUsIHNpbW0sIHJuLCBydCwgcnQyKSk7
CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBzdHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBh
aXJQcmVJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAg
ICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNRU1QQUlST1BTSVpFX0lOVChk
YXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9TVE9SRSwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHN0
cihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKICAg
ICAgICAgc3RyPGRhdGFzaXplPihydCwgcm4sIHJtLCBVWFRYLCAwKTsKQEAgLTE4NzYsOCArMTk2
Myw5IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3ViKFJlZ2lzdGVySUQgcmQs
IFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNoaWZ0VHlwZSBzaGlmdCwgaW50IGFtb3Vu
dCkKICAgICB7CiAgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7Ci0gICAgICAgIGlmIChpc1NwKHJu
KSkgeworICAgICAgICBpZiAoaXNTcChyZCkgfHwgaXNTcChybikpIHsKICAgICAgICAgICAgIEFT
U0VSVChzaGlmdCA9PSBMU0wpOworICAgICAgICAgICAgQVNTRVJUKCFpc1NwKHJtKSk7CiAgICAg
ICAgICAgICBzdWI8ZGF0YXNpemUsIHNldEZsYWdzPihyZCwgcm4sIHJtLCBVWFRYLCBhbW91bnQp
OwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGluc24oYWRkU3VidHJhY3RTaGlmdGVkUmVn
aXN0ZXIoREFUQVNJWkUsIEFkZE9wX1NVQiwgc2V0RmxhZ3MsIHNoaWZ0LCBybSwgYW1vdW50LCBy
biwgcmQpKTsKQEAgLTMzNjEsNiArMzQ0OSwyMyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIC8v
ICdWJyBtZWFucyB2ZWN0b3IKKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0b3Jl
UmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1lbVBhaXJPcFNpemUgc2l6ZSwgYm9vbCBWLCBNZW1PcCBv
cGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0ZXJJRCBydCwgRlBSZWdp
c3RlcklEIHJ0MikKKyAgICB7CisgICAgICAgIEFTU0VSVChzaXplIDwgMyk7CisgICAgICAgIEFT
U0VSVChvcGMgPT0gKG9wYyAmIDEpKTsgLy8gT25seSBsb2FkIG9yIHN0b3JlLCBsb2FkIHNpZ25l
ZCA2NCBpcyBoYW5kbGVkIHZpYSBzaXplLgorICAgICAgICBBU1NFUlQoViB8fCAoc2l6ZSAhPSBN
ZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9MT0FEKSk7IC8vIFRoZXJl
IGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgorICAgICAgICB1bnNpZ25lZCBpbW1lZFNo
aWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUpOworICAgICAgICBpbnQgaW1t
NyA9IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OworICAgICAgICBBU1NFUlQoKGltbTcg
PDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50NyhpbW03KSk7CisgICAg
ICAgIHJldHVybiAoMHgyODgwMDAwMCB8IHNpemUgPDwgMzAgfCBWIDw8IDI2IHwgb3BjIDw8IDIy
IHwgKGltbTcgJiAweDdmKSA8PCAxNSB8IHJ0MiA8PCAxMCB8IHhPclNwKHJuKSA8PCA1IHwgcnQp
OworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2FkU3RvcmVSZWdpc3Rl
clBhaXJQb3N0SW5kZXgoTWVtUGFpck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50
IGltbWVkaWF0ZSwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIp
CisgICAgeworICAgICAgICByZXR1cm4gbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KHNp
emUsIFYsIG9wYywgaW1tZWRpYXRlLCBybiwgeE9yWnJBc0ZQUihydCksIHhPclpyQXNGUFIocnQy
KSk7CisgICAgfQorCisgICAgLy8gJ1YnIG1lYW5zIHZlY3RvcgogICAgIEFMV0FZU19JTkxJTkUg
c3RhdGljIGludCBsb2FkU3RvcmVSZWdpc3RlclByZUluZGV4KE1lbU9wU2l6ZSBzaXplLCBib29s
IFYsIE1lbU9wIG9wYywgaW50IGltbTksIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0ZXJJRCBydCkK
ICAgICB7CiAgICAgICAgIEFTU0VSVCghKHNpemUgJiYgViAmJiAob3BjICYgMikpKTsgLy8gTWF4
aW11bSB2ZWN0b3Igc2l6ZSBpcyAxMjggYml0cy4KQEAgLTMzNzUsNiArMzQ4MCwyMyBAQCBwcml2
YXRlOgogICAgIH0KIAogICAgIC8vICdWJyBtZWFucyB2ZWN0b3IKKyAgICBBTFdBWVNfSU5MSU5F
IHN0YXRpYyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoTWVtUGFpck9wU2l6ZSBz
aXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGltbWVkaWF0ZSwgUmVnaXN0ZXJJRCBybiwgRlBS
ZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHNp
emUgPCAzKTsKKyAgICAgICAgQVNTRVJUKG9wYyA9PSAob3BjICYgMSkpOyAvLyBPbmx5IGxvYWQg
b3Igc3RvcmUsIGxvYWQgc2lnbmVkIDY0IGlzIGhhbmRsZWQgdmlhIHNpemUuCisgICAgICAgIEFT
U0VSVChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyKSB8fCAob3BjID09IE1l
bU9wX0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9yZSBzaWduZWQuCisgICAg
ICAgIHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zmc2V0U2hpZnQoViwgc2l6
ZSk7CisgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+IGltbWVkU2hpZnRBbW91bnQ7Cisg
ICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBpbW1lZGlhdGUgJiYg
aXNJbnQ3KGltbTcpKTsKKyAgICAgICAgcmV0dXJuICgweDI5ODAwMDAwIHwgc2l6ZSA8PCAzMCB8
IFYgPDwgMjYgfCBvcGMgPDwgMjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1IHwgcnQyIDw8IDEwIHwg
eE9yU3Aocm4pIDw8IDUgfCBydCk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMg
aW50IGxvYWRTdG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KE1lbVBhaXJPcFNpemUgc2l6ZSwgYm9v
bCBWLCBNZW1PcCBvcGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQg
cnQsIFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxvYWRTdG9yZVJlZ2lz
dGVyUGFpclByZUluZGV4KHNpemUsIFYsIG9wYywgaW1tZWRpYXRlLCBybiwgeE9yWnJBc0ZQUihy
dCksIHhPclpyQXNGUFIocnQyKSk7CisgICAgfQorCisgICAgLy8gJ1YnIG1lYW5zIHZlY3Rvcgog
ICAgIC8vICdTJyBtZWFucyBzaGlmdCBybQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBs
b2FkU3RvcmVSZWdpc3RlclJlZ2lzdGVyT2Zmc2V0KE1lbU9wU2l6ZSBzaXplLCBib29sIFYsIE1l
bU9wIG9wYywgUmVnaXN0ZXJJRCBybSwgRXh0ZW5kVHlwZSBvcHRpb24sIGJvb2wgUywgUmVnaXN0
ZXJJRCBybiwgRlBSZWdpc3RlcklEIHJ0KQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJKHJldmlzaW9uIDE2MjkxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNjU0LDYgKzY1NCw4IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBlbnVt
IHsKICAgICAgICAgT1BfQl9UMSAgICAgICAgID0gMHhEMDAwLAogICAgICAgICBPUF9CX1QyICAg
ICAgICAgPSAweEUwMDAsCisgICAgICAgIE9QX1BPUF9UMiAgICAgICA9IDB4RThCRCwKKyAgICAg
ICAgT1BfUFVTSF9UMiAgICAgID0gMHhFOTJELAogICAgICAgICBPUF9BTkRfcmVnX1QyICAgPSAw
eEVBMDAsCiAgICAgICAgIE9QX1RTVF9yZWdfVDIgICA9IDB4RUExMCwKICAgICAgICAgT1BfT1JS
X3JlZ19UMiAgID0gMHhFQTQwLApAQCAtODk0LDYgKzg5NiwxMSBAQCBwdWJsaWM6CiAgICAgLy8g
Tk9URTogSW4gYW4gSVQgYmxvY2ssIGFkZCBkb2Vzbid0IG1vZGlmeSB0aGUgZmxhZ3MgcmVnaXN0
ZXIuCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGFkZChSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklE
IHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKKyAgICAgICAgaWYgKHJkID09IEFSTVJlZ2lzdGVy
czo6c3ApIHsKKyAgICAgICAgICAgIG1vdihyZCwgcm4pOworICAgICAgICAgICAgcm4gPSByZDsK
KyAgICAgICAgfQorCiAgICAgICAgIGlmIChyZCA9PSBybikKICAgICAgICAgICAgIG1fZm9ybWF0
dGVyLm9uZVdvcmRPcDhSZWdSZWcxNDMoT1BfQUREX3JlZ19UMiwgcm0sIHJkKTsKICAgICAgICAg
ZWxzZSBpZiAocmQgPT0gcm0pCkBAIC0xNDg4LDYgKzE0OTUsMjIgQEAgcHVibGljOgogICAgICAg
ICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzRGb3VyRm91cnMoT1BfUk9SX3JlZ19UMiwgcm4s
IEZvdXJGb3VycygweGYsIHJkLCAwLCBybSkpOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBwb3AodWludDMyX3QgcmVnaXN0ZXJMaXN0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKFdU
Rjo6Yml0Q291bnQocmVnaXN0ZXJMaXN0KSA+IDEpOworICAgICAgICBBU1NFUlQoISgoMSA8PCBB
Uk1SZWdpc3RlcnM6OnBjKSAmIHJlZ2lzdGVyTGlzdCkgfHwgISgoMSA8PCBBUk1SZWdpc3RlcnM6
OmxyKSAmIHJlZ2lzdGVyTGlzdCkpOworICAgICAgICBBU1NFUlQoISgoMSA8PCBBUk1SZWdpc3Rl
cnM6OnNwKSAmIHJlZ2lzdGVyTGlzdCkpOworICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3Ax
NkltbTE2KE9QX1BPUF9UMiwgcmVnaXN0ZXJMaXN0KTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5M
SU5FIHZvaWQgcHVzaCh1aW50MzJfdCByZWdpc3Rlckxpc3QpCisgICAgeworICAgICAgICBBU1NF
UlQoV1RGOjpiaXRDb3VudChyZWdpc3Rlckxpc3QpID4gMSk7CisgICAgICAgIEFTU0VSVCghKCgx
IDw8IEFSTVJlZ2lzdGVyczo6cGMpICYgcmVnaXN0ZXJMaXN0KSk7CisgICAgICAgIEFTU0VSVCgh
KCgxIDw8IEFSTVJlZ2lzdGVyczo6c3ApICYgcmVnaXN0ZXJMaXN0KSk7CisgICAgICAgIG1fZm9y
bWF0dGVyLnR3b1dvcmRPcDE2SW1tMTYoT1BfUFVTSF9UMiwgcmVnaXN0ZXJMaXN0KTsKKyAgICB9
CisKICNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZGl2KFJl
Z2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewpAQCAtMjc5
MSw2ICsyODE0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX2J1ZmZlci5wdXRTaG9ydChv
cDIpOwogICAgICAgICB9CiAKKyAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHR3b1dvcmRPcDE2
SW1tMTYoT3Bjb2RlSUQxIG9wMSwgdWludDE2X3QgaW1tKQorICAgICAgICB7CisgICAgICAgICAg
ICBtX2J1ZmZlci5wdXRTaG9ydChvcDEpOworICAgICAgICAgICAgbV9idWZmZXIucHV0U2hvcnQo
aW1tKTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHR3
b1dvcmRPcDVpNkltbTRSZWc0RW5jb2RlZEltbShPcGNvZGVJRDEgb3AsIGludCBpbW00LCBSZWdp
c3RlcklEIHJkLCBBUk1UaHVtYkltbWVkaWF0ZSBpbW0pCiAgICAgICAgIHsKICAgICAgICAgICAg
IEFSTVRodW1iSW1tZWRpYXRlIG5ld0ltbSA9IGltbTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3Ry
YWN0TWFjcm9Bc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTQwLDcgKzE0MCw3IEBAIHB1
YmxpYzoKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFzZSwgb2Zmc2V0
ICsgYWRkaXRpb25hbE9mZnNldCk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgUmVn
aXN0ZXJJRCBiYXNlOwogICAgICAgICBpbnQzMl90IG9mZnNldDsKICAgICB9OwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxMiArMjgsMjEgQEAKIAogI2lmIEVO
QUJMRShBU1NFTUJMRVIpCiAKKyNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJKSVRD
b2RlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVkZSA8
d3RmL0NvbXBpbGF0aW9uVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCitib29sIHNob3Vs
ZFNob3dEaXNhc3NlbWJseUZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3sKKyAgICBpZiAoSklU
Q29kZTo6aXNPcHRpbWl6aW5nSklUKGNvZGVCbG9jay0+aml0VHlwZSgpKSAmJiBPcHRpb25zOjpz
aG93REZHRGlzYXNzZW1ibHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIE9w
dGlvbnM6OnNob3dEaXNhc3NlbWJseSgpOworfQorCiBMaW5rQnVmZmVyOjpDb2RlUmVmIExpbmtC
dWZmZXI6OmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpCiB7CiAgICAgcGVyZm9ybUZp
bmFsaXphdGlvbigpOwpAQCAtNDcsOCArNTYsNiBAQCBMaW5rQnVmZmVyOjpDb2RlUmVmIExpbmtC
dWZmZXI6OmZpbmFsaXplCiAKIExpbmtCdWZmZXI6OkNvZGVSZWYgTGlua0J1ZmZlcjo6ZmluYWxp
emVDb2RlV2l0aERpc2Fzc2VtYmx5KGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQogewotICAgIEFT
U0VSVChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHkoKSB8fCBPcHRpb25zOjpzaG93REZHRGlzYXNz
ZW1ibHkoKSk7Ci0gICAgCiAgICAgQ29kZVJlZiByZXN1bHQgPSBmaW5hbGl6ZUNvZGVXaXRob3V0
RGlzYXNzZW1ibHkoKTsKIAogI2lmIEVOQUJMRShESVNBU1NFTUJMRVIpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEw
LCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOSwgMjAxMCwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDYgKzQzLDcg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIENvZGVCbG9jazsKIGNsYXNzIFZNOwogCiAv
LyBMaW5rQnVmZmVyOgpAQCAtMTY0LDYgKzE2NSwxMSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
Ly8gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCB0byBvYnRhaW4gaGFuZGxlcyB0byBhbGxvdyB0aGUg
Y29kZSB0byBiZSByZWxpbmtlZCAvIHJlcGF0Y2hlZCBsYXRlci4KKyAgICAKKyAgICBDb2RlTG9j
YXRpb25MYWJlbCBlbnRyeXBvaW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBDb2RlTG9jYXRp
b25MYWJlbChjb2RlKCkpOworICAgIH0KIAogICAgIENvZGVMb2NhdGlvbkNhbGwgbG9jYXRpb25P
ZihDYWxsIGNhbGwpCiAgICAgewpAQCAtMzAzLDYgKzMwOSwxMSBAQCBwcml2YXRlOgogICAgICA/
ICgobGlua0J1ZmZlclJlZmVyZW5jZSkuZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5IGRhdGFM
b2dGQXJndW1lbnRzRm9ySGVhZGluZykgXAogICAgICA6IChsaW5rQnVmZmVyUmVmZXJlbmNlKS5m
aW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKSkKIAorYm9vbCBzaG91bGRTaG93RGlzYXNz
ZW1ibHlGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spOworCisjZGVmaW5lIEZJTkFMSVpFX0NPREVf
Rk9SKGNvZGVCbG9jaywgbGlua0J1ZmZlclJlZmVyZW5jZSwgZGF0YUxvZ0ZBcmd1bWVudHNGb3JI
ZWFkaW5nKSAgXAorICAgIEZJTkFMSVpFX0NPREVfSUYoc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5Rm9y
KGNvZGVCbG9jayksIGxpbmtCdWZmZXJSZWZlcmVuY2UsIGRhdGFMb2dGQXJndW1lbnRzRm9ySGVh
ZGluZykKKwogLy8gVXNlIHRoaXMgdG8gZmluYWxpemUgY29kZSwgbGlrZSBzbzoKIC8vCiAvLyBD
b2RlUmVmIGNvZGUgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsICgibXkgc3VwZXIgdGhpbmd5
IG51bWJlciAlZCIsIG51bWJlcikpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC01OTUsNiArNTk1LDExIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1t
MzIoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1t
MzIgaW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIHN0b3JlMzIo
aW1tLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIg
aW1tLCBCYXNlSW5kZXggYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3JlMzIoVHJ1c3RlZElt
bTMyKGltbSksIGFkZHJlc3MpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMDEsNyArMjAxLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRk
NjQoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1fYXNz
ZW1ibGVyLmFkZDw2ND4oZGVzdCwgZGVzdCwgc3JjKTsKKyAgICAgICAgaWYgKHNyYyA9PSBBUk02
NFJlZ2lzdGVyczo6c3ApCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIHNy
YywgZGVzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4o
ZGVzdCwgZGVzdCwgc3JjKTsKICAgICB9CiAKICAgICB2b2lkIGFkZDY0KFRydXN0ZWRJbW0zMiBp
bW0sIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTE0MzcsNiArMTQ0MCwxNiBAQCBwdWJsaWM6CiAgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogCisgICAgdm9pZCBwb3BQYWlyKFJlZ2lzdGVySUQgZGVzdDEs
IFJlZ2lzdGVySUQgZGVzdDIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5sZHA8NjQ+KGRl
c3QxLCBkZXN0MiwgQVJNNjRSZWdpc3RlcnM6OnNwLCBQYWlyUG9zdEluZGV4KDE2KSk7CisgICAg
fQorCisgICAgdm9pZCBwdXNoUGFpcihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMikK
KyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnN0cDw2ND4oc3JjMSwgc3JjMiwgQVJNNjRSZWdp
c3RlcnM6OnNwLCBQYWlyUHJlSW5kZXgoLTE2KSk7CisgICAgfQorCiAgICAgdm9pZCBwb3BUb1Jl
c3RvcmUoUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRyPDY0
PihkZXN0LCBBUk02NFJlZ2lzdGVyczo6c3AsIFBvc3RJbmRleCgxNikpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3
LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNiArMTcwLDE0IEBA
IHB1YmxpYzoKICAgICB2b2lkIGFkZDMyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3Jj
LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1J
bW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQxMk9yRW5jb2RlZEltbShpbW0ubV92YWx1
ZSk7CisKKyAgICAgICAgLy8gRm9yIGFkZHMgd2l0aCBzdGFjayBwb2ludGVyIGRlc3RpbmF0aW9u
LCBtb3ZpbmcgdGhlIHNyYyBmaXJzdCB0byBzcCBpcworICAgICAgICAvLyBuZWVkZWQgdG8gYXZv
aWQgdW5wcmVkaWN0YWJsZSBpbnN0cnVjdGlvbgorICAgICAgICBpZiAoZGVzdCA9PSBBUk1SZWdp
c3RlcnM6OnNwICYmIHNyYyAhPSBkZXN0KSB7CisgICAgICAgICAgICBtb3ZlKHNyYywgQVJNUmVn
aXN0ZXJzOjpzcCk7CisgICAgICAgICAgICBzcmMgPSBBUk1SZWdpc3RlcnM6OnNwOworICAgICAg
ICB9CisKICAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5hZGQoZGVzdCwgc3JjLCBhcm1JbW0pOwogICAgICAgICBlbHNlIHsKQEAgLTExNjAsNiAr
MTE2OCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHB1c2goZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAg
fQogCisgICAgdm9pZCBwb3BQYWlyKFJlZ2lzdGVySUQgZGVzdDEsIFJlZ2lzdGVySUQgZGVzdDIp
CisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5wb3AoMSA8PCBkZXN0MSB8IDEgPDwgZGVzdDIp
OworICAgIH0KKyAgICAKKyAgICB2b2lkIHB1c2hQYWlyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0
ZXJJRCBzcmMyKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucHVzaCgxIDw8IHNyYzEgfCAx
IDw8IHNyYzIpOworICAgIH0KKyAgICAKICAgICAvLyBSZWdpc3RlciBtb3ZlIG9wZXJhdGlvbnM6
CiAgICAgLy8KICAgICAvLyBNb3ZlIHZhbHVlcyBpbiByZWdpc3RlcnMuCkBAIC0xMjgxLDExICsx
Mjk5LDE5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3QocmVnLCByZWcp
OwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFSTVRodW1iSW1tZWRpYXRlIGFybUltbSA9
IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2RlZEltbShpbW0pOwotICAgICAgICAgICAgaWYg
KGFybUltbS5pc1ZhbGlkKCkpCi0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0KHJlZywg
YXJtSW1tKTsKLSAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGFybUltbS5pc1Zh
bGlkKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVnID09IEFSTVJlZ2lzdGVyczo6c3ApIHsK
KyAgICAgICAgICAgICAgICAgICAgbW92ZShyZWcsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAg
ICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3QoYWRkcmVzc1RlbXBSZWdpc3RlciwgYXJt
SW1tKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9hc3Nl
bWJsZXIudHN0KHJlZywgYXJtSW1tKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgbW92ZShtYXNrLCBkYXRhVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAgICBtX2Fz
c2VtYmxlci50c3QocmVnLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBpZiAo
cmVnID09IEFSTVJlZ2lzdGVyczo6c3ApIHsKKyAgICAgICAgICAgICAgICAgICAgbW92ZShyZWcs
IGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci50
c3QoYWRkcmVzc1RlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIGRhdGFU
ZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
Q29kZVJlZi5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQsNiAr
MjU0LDExIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkKiB2YWx1ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdmFsdWU7IH0KKyAgICAKKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29u
c3QKKyAgICB7CisgICAgICAgIG91dC5wcmludChSYXdQb2ludGVyKG1fdmFsdWUpKTsKKyAgICB9
CiAKIHByaXZhdGU6CiAgICAgdm9pZCogbV92YWx1ZTsKQEAgLTMwOSw5ICszMTQsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQqIGRhdGFMb2NhdGlvbigpIGNvbnN0IHsgQVNTRVJUX1ZBTElEX0NPREVf
UE9JTlRFUihtX3ZhbHVlKTsgcmV0dXJuIG1fdmFsdWU7IH0KICNlbmRpZgogCi0gICAgYm9vbCBv
cGVyYXRvciEoKSBjb25zdAorICAgIHR5cGVkZWYgdm9pZCogKE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGUpOworICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5
cGUqKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiAhbV92YWx1ZTsKKyAgICAgICAgcmV0
dXJuICEhbV92YWx1ZSA/IHJlaW50ZXJwcmV0X2Nhc3Q8VW5zcGVjaWZpZWRCb29sVHlwZSo+KDEp
IDogMDsKICAgICB9CiAgICAgCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciYgb3RoZXIpIGNvbnN0CkBAIC00MzQsNyArNDQwLDExIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIEpTQzo6dHJ5VG9EaXNhc3NlbWJsZShtX2NvZGVQdHIsIHNpemUoKSwgcHJl
Zml4LCBXVEY6OmRhdGFGaWxlKCkpOwogICAgIH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yISgp
IGNvbnN0IHsgcmV0dXJuICFtX2NvZGVQdHI7IH0KKyAgICB0eXBlZGVmIHZvaWQqIChNYWNyb0Fz
c2VtYmxlckNvZGVSZWY6OipVbnNwZWNpZmllZEJvb2xUeXBlKTsKKyAgICBvcGVyYXRvciBVbnNw
ZWNpZmllZEJvb2xUeXBlKigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gISFtX2NvZGVQ
dHIgPyByZWludGVycHJldF9jYXN0PFVuc3BlY2lmaWVkQm9vbFR5cGUqPigxKSA6IDA7CisgICAg
fQogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsX2gKKyNkZWZpbmUgTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGxfaAorCisjaW5jbHVk
ZSAiSlNTdGFjay5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyLmgiCisjaW5jbHVkZSAiU3RhY2tBbGln
bm1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorCituYW1lc3BhY2UgSlNDIHsK
KworLy8gVGhlIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsIGlzIHRoZSBtYXggYW1vdW50
IG9mIHN0YWNrIHNwYWNlIChpbiBieXRlcykKKy8vIHRoYXQgY2FuIGJlIHVzZWQgZm9yIG91dGdv
aW5nIGFyZ3Mgd2hlbiBjYWxsaW5nIGEgc2xvdyBwYXRoIEMgZnVuY3Rpb24KKy8vIGZyb20gSlMg
Y29kZS4KKworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMDsKKworI2VsaWYgQ1BVKFg4Nl82NCkgJiYg
T1MoV0lORE9XUykKKy8vIDQgYXJncyBpbiByZWdpc3RlcnMsIGJ1dCBzdGFjayBzcGFjZSBuZWVk
cyB0byBiZSBhbGxvY2F0ZWQgZm9yIGFsbCBhcmdzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDY0OworCisjZWxpZiBDUFUoWDg2XzY0KQorLy8g
QWxsIGFyZ3MgaW4gcmVnaXN0ZXJzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVu
dEZvclNsb3dQYXRoQ2FsbCA9IDA7CisKKyNlbGlmIENQVShYODYpCisvLyA3IGFyZ3Mgb24gc3Rh
Y2sgKDI4IGJ5dGVzKS4KK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwgPSA0MDsKKworI2VsaWYgQ1BVKEFSTTY0KQorLy8gQWxsIGFyZ3MgaW4gcmVnaXN0
ZXJzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9
IDA7CisKKyNlbGlmIENQVShBUk0pCisvLyBGaXJzdCBmb3VyIGFyZ3MgaW4gcmVnaXN0ZXJzLCBy
ZW1haW5pbmcgNCBhcmdzIG9uIHN0YWNrLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCA9IDI0OworCisjZWxpZiBDUFUoU0g0KQorLy8gRmlyc3QgZm91
ciBhcmdzIGluIHJlZ2lzdGVycywgcmVtYWluaW5nIDQgYXJncyBvbiBzdGFjay4KK3N0YXRpYyBj
b25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAyNDsKKworI2VsaWYg
Q1BVKE1JUFMpCisvLyBUaG91Z2ggYXJncyBhcmUgaW4gcmVnaXN0ZXJzLCB0aGVyZSBuZWVkIHRv
IGJlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgYWxsIGFyZ3MuCitzdGF0aWMgY29uc3Qgc2l6ZV90
IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDA7CisKKyNlbHNlCisjZXJyb3IgIlVu
c3VwcG9ydGVkIENQVTogbmVlZCB2YWx1ZSBmb3IgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwiCisKKyNlbmRpZgorCitDT01QSUxFX0FTU0VSVCghKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsICUgc2l6ZW9mKFJlZ2lzdGVyKSksIGV4dGVudF9tdXN0X2JlX2luX211bHRpcGxlc19v
Zl9yZWdpc3RlcnMpOworLy8gTWFrZSBzdXJlIHRoYXQgY2ZyIC0gbWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwgYnl0ZXMgd2lsbCBtYWtlIHRoZSBzdGFjayBwb2ludGVyIGFsaWduZWQKK0NP
TVBJTEVfQVNTRVJUKChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCAlIDE2KSA9PSAxNiAt
IHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSwgZXh0ZW50X211c3RfYWxpZ25fc3RhY2tfZnJvbV9j
YWxsZnJhbWVfcG9pbnRlcik7CisKK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGxJblJlZ2lzdGVycyA9IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
IC8gc2l6ZW9mKFJlZ2lzdGVyKTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBN
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbF9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzcsMTUgKzM3LDE1IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjp1bmxpbmsoVk0mIHZt
LCBSZXBhdGMKIHsKICAgICBBU1NFUlQoaXNMaW5rZWQoKSk7CiAgICAgCisgICAgaWYgKE9wdGlv
bnM6OnNob3dEaXNhc3NlbWJseSgpKQorICAgICAgICBkYXRhTG9nKCJVbmxpbmtpbmcgY2FsbCBm
cm9tICIsIGNhbGxSZXR1cm5Mb2NhdGlvbiwgIiB0byAiLCBwb2ludGVyRHVtcChyZXBhdGNoQnVm
ZmVyLmNvZGVCbG9jaygpKSwgIlxuIik7CisKICAgICByZXBhdGNoQnVmZmVyLnJldmVydEp1bXBS
ZXBsYWNlbWVudFRvQnJhbmNoUHRyV2l0aFBhdGNoKFJlcGF0Y2hCdWZmZXI6OnN0YXJ0T2ZCcmFu
Y2hQdHJXaXRoUGF0Y2hPblJlZ2lzdGVyKGhvdFBhdGhCZWdpbiksIHN0YXRpY19jYXN0PE1hY3Jv
QXNzZW1ibGVyOjpSZWdpc3RlcklEPihjYWxsZWVHUFIpLCAwKTsKLSAgICBpZiAoaXNERkcpIHsK
LSNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbFJl
dHVybkxvY2F0aW9uLCAoY2FsbFR5cGUgPT0gQ29uc3RydWN0ID8gdm0uZ2V0Q1RJU3R1YihsaW5r
Q29uc3RydWN0VGh1bmtHZW5lcmF0b3IpIDogdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2Vu
ZXJhdG9yKSkuY29kZSgpKTsKLSNlbHNlCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0jZW5kaWYKLSAgICB9IGVsc2UKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmso
Y2FsbFJldHVybkxvY2F0aW9uLCBjYWxsVHlwZSA9PSBDb25zdHJ1Y3QgPyB2bS5nZXRDVElTdHVi
KGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpIDogdm0uZ2V0Q1RJU3R1YihsaW5r
Q2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKAor
ICAgICAgICBjYWxsUmV0dXJuTG9jYXRpb24sCisgICAgICAgIHZtLmdldENUSVN0dWIobGlua1Ro
dW5rR2VuZXJhdG9yRm9yKAorICAgICAgICAgICAgY2FsbFR5cGUgPT0gQ29uc3RydWN0ID8gQ29k
ZUZvckNvbnN0cnVjdCA6IENvZGVGb3JDYWxsLAorICAgICAgICAgICAgaXNGVEwgPyBNdXN0UHJl
c2VydmVSZWdpc3RlcnMgOiBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKSkuY29kZSgp
KTsKICAgICBoYXNTZWVuU2hvdWxkUmVwYXRjaCA9IGZhbHNlOwogICAgIGNhbGxlZS5jbGVhcigp
OwogICAgIHN0dWIuY2xlYXIoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9DYWxsTGlua0luZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ2FsbExpbmtJbmZvLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNTUsOCAr
NTUsOCBAQCBzdHJ1Y3QgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2VuCiAgICAgfQog
ICAgICAgICAKICAgICBDYWxsTGlua0luZm8oKQotICAgICAgICA6IGhhc1NlZW5TaG91bGRSZXBh
dGNoKGZhbHNlKQotICAgICAgICAsIGlzREZHKGZhbHNlKQorICAgICAgICA6IGlzRlRMKGZhbHNl
KQorICAgICAgICAsIGhhc1NlZW5TaG91bGRSZXBhdGNoKGZhbHNlKQogICAgICAgICAsIGhhc1Nl
ZW5DbG9zdXJlKGZhbHNlKQogICAgICAgICAsIGNhbGxUeXBlKE5vbmUpCiAgICAgewpAQCAtNzks
OCArNzksOCBAQCBzdHJ1Y3QgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2VuCiAgICAg
SklUV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IGNhbGxlZTsKICAgICBXcml0ZUJhcnJpZXI8SlNG
dW5jdGlvbj4gbGFzdFNlZW5DYWxsZWU7CiAgICAgUmVmUHRyPENsb3N1cmVDYWxsU3R1YlJvdXRp
bmU+IHN0dWI7CisgICAgYm9vbCBpc0ZUTCA6IDE7CiAgICAgYm9vbCBoYXNTZWVuU2hvdWxkUmVw
YXRjaCA6IDE7Ci0gICAgYm9vbCBpc0RGRyA6IDE7CiAgICAgYm9vbCBoYXNTZWVuQ2xvc3VyZSA6
IDE7CiAgICAgdW5zaWduZWQgY2FsbFR5cGUgOiA1OyAvLyBDYWxsVHlwZQogICAgIHVuc2lnbmVk
IGNhbGxlZUdQUiA6IDg7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2Fs
bExpbmtTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI2LDEzICsyNiwxNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkNhbGxMaW5rU3RhdHVzLmgiCiAKKyNpbmNsdWRlICJDYWxsTGlua0luZm8uaCIKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJERkdKSVRDb2RlLmgiCiAjaW5jbHVkZSAiTExJbnRD
YWxsTGlua0luZm8uaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0Nv
bW1hUHJpbnRlci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIGNvbnN0IGJvb2wgdmVy
Ym9zZSA9IGZhbHNlOworCiBDYWxsTGlua1N0YXR1czo6Q2FsbExpbmtTdGF0dXMoSlNWYWx1ZSB2
YWx1ZSkKICAgICA6IG1fY2FsbFRhcmdldCh2YWx1ZSkKICAgICAsIG1fZXhlY3V0YWJsZSgwKQpA
QCAtODEsMTIgKzg1LDI0IEBAIEludHJpbnNpYyBDYWxsTGlua1N0YXR1czo6aW50cmluc2ljRm9y
KEMKICAgICByZXR1cm4gbV9leGVjdXRhYmxlLT5pbnRyaW5zaWNGb3Ioa2luZCk7CiB9CiAKLUNh
bGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KENvZGVCbG9jayog
cHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKK0NhbGxMaW5rU3RhdHVzIENh
bGxMaW5rU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXIm
IGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4
KQogewogICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKICAgICBVTlVTRURfUEFSQU0o
Ynl0ZWNvZGVJbmRleCk7CiAjaWYgRU5BQkxFKExMSU5UKQorICAgIGlmIChwcm9maWxlZEJsb2Nr
LT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4
LCBCYWRGdW5jdGlvbikpKSB7CisgICAgICAgIC8vIFdlIGNvdWxkIGZvcmNlIHRoaXMgdG8gYmUg
YSBjbG9zdXJlIGNhbGwsIGJ1dCBpbnN0ZWFkIHdlJ2xsIGp1c3QgYXNzdW1lIHRoYXQgaXQKKyAg
ICAgICAgLy8gdGFrZXMgc2xvdyBwYXRoLgorICAgICAgICByZXR1cm4gdGFrZXNTbG93UGF0aCgp
OworICAgIH0KKyAgICAKKyAgICBWTSYgdm0gPSAqcHJvZmlsZWRCbG9jay0+dm0oKTsKKyAgICAK
ICAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSBwcm9maWxlZEJsb2NrLT5pbnN0cnVjdGlv
bnMoKS5iZWdpbigpICsgYnl0ZWNvZGVJbmRleDsKKyAgICBPcGNvZGVJRCBvcCA9IHZtLmludGVy
cHJldGVyLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvblswXS51Lm9wY29kZSk7CisgICAgaWYgKG9w
ICE9IG9wX2NhbGwgJiYgb3AgIT0gb3BfY29uc3RydWN0KQorICAgICAgICByZXR1cm4gQ2FsbExp
bmtTdGF0dXMoKTsKKyAgICAKICAgICBMTEludENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvID0g
aW5zdHJ1Y3Rpb25bNV0udS5jYWxsTGlua0luZm87CiAgICAgCiAgICAgcmV0dXJuIENhbGxMaW5r
U3RhdHVzKGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuZ2V0KCkpOwpAQCAtMTAyLDI3ICsx
MTgsMTE3IEBAIENhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm8KICAgICBV
TlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CiAgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5k
ZXgpOwogI2lmIEVOQUJMRShKSVQpCisgICAgaWYgKHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRl
KGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlKSkK
KyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1
ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KSkKKyAgICAgICAg
fHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNp
dGUoYnl0ZWNvZGVJbmRleCwgQmFkRXhlY3V0YWJsZSkpKQorICAgICAgICByZXR1cm4gdGFrZXNT
bG93UGF0aCgpOworICAgIAogICAgIGlmICghcHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQ
cm9maWxpbmcoKSkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9j
aywgYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50KGxvY2tl
ciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7CiAgICAgCiAgICAgaWYgKHByb2ZpbGVk
QmxvY2stPmNvdWxkVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpKQotICAgICAgICByZXR1cm4g
Q2FsbExpbmtTdGF0dXM6OnRha2VzU2xvd1BhdGgoKTsKKyAgICAgICAgcmV0dXJuIHRha2VzU2xv
d1BhdGgoKTsKICAgICAKICAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IHByb2ZpbGVk
QmxvY2stPmdldENhbGxMaW5rSW5mbyhieXRlY29kZUluZGV4KTsKKyAgICAKKyAgICBDYWxsTGlu
a1N0YXR1cyByZXN1bHQgPSBjb21wdXRlRm9yKGxvY2tlciwgY2FsbExpbmtJbmZvKTsKKyAgICBp
ZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQobG9ja2VyLCBwcm9m
aWxlZEJsb2NrLCBieXRlY29kZUluZGV4KTsKKyAgICAKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+
aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwg
QmFkRnVuY3Rpb24pKSkKKyAgICAgICAgcmVzdWx0Lm1ha2VDbG9zdXJlQ2FsbCgpOworICAgIAor
ICAgIHJldHVybiByZXN1bHQ7CisjZWxzZQorICAgIHJldHVybiBDYWxsTGlua1N0YXR1cygpOwor
I2VuZGlmCit9CisKK0NhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKGNv
bnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKK3sK
ICAgICBpZiAoY2FsbExpbmtJbmZvLnN0dWIpCiAgICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1
cyhjYWxsTGlua0luZm8uc3R1Yi0+ZXhlY3V0YWJsZSgpLCBjYWxsTGlua0luZm8uc3R1Yi0+c3Ry
dWN0dXJlKCkpOwogICAgIAogICAgIEpTRnVuY3Rpb24qIHRhcmdldCA9IGNhbGxMaW5rSW5mby5s
YXN0U2VlbkNhbGxlZS5nZXQoKTsKICAgICBpZiAoIXRhcmdldCkKLSAgICAgICAgcmV0dXJuIGNv
bXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIHJl
dHVybiBDYWxsTGlua1N0YXR1cygpOwogICAgIAogICAgIGlmIChjYWxsTGlua0luZm8uaGFzU2Vl
bkNsb3N1cmUpCiAgICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1cyh0YXJnZXQtPmV4ZWN1dGFi
bGUoKSwgdGFyZ2V0LT5zdHJ1Y3R1cmUoKSk7CiAKICAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXMo
dGFyZ2V0KTsKLSNlbHNlCi0gICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKCk7Ci0jZW5kaWYKK30K
Kwordm9pZCBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZURGR1N0YXR1c2VzKAorICAgIENvZGVCbG9j
ayogZGZnQ29kZUJsb2NrLCBDYWxsTGlua1N0YXR1czo6Q29udGV4dE1hcCYgbWFwKQoreworI2lm
IEVOQUJMRShERkdfSklUKQorICAgIFJFTEVBU0VfQVNTRVJUKGRmZ0NvZGVCbG9jay0+aml0VHlw
ZSgpID09IEpJVENvZGU6OkRGR0pJVCk7CisgICAgQ29kZUJsb2NrKiBiYXNlbGluZUNvZGVCbG9j
ayA9IGRmZ0NvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKTsKKyAgICBERkc6OkpJVENvZGUqIGppdENv
ZGUgPSBkZmdDb2RlQmxvY2stPmppdENvZGUoKS0+ZGZnKCk7CisgICAgUkVMRUFTRV9BU1NFUlQo
ZGZnQ29kZUJsb2NrLT5udW1iZXJPZkNhbGxMaW5rSW5mb3MoKSA8PSBqaXRDb2RlLT5zbG93UGF0
aENhbGxzLnNpemUoKSk7CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IGRmZ0NvZGVCbG9jay0+
bnVtYmVyT2ZDYWxsTGlua0luZm9zKCk7IGktLTspIHsKKyAgICAgICAgQ2FsbExpbmtJbmZvJiBp
bmZvID0gZGZnQ29kZUJsb2NrLT5jYWxsTGlua0luZm8oaSk7CisgICAgICAgIENvZGVPcmlnaW4g
Y29kZU9yaWdpbiA9IGluZm8uY29kZU9yaWdpbjsKKyAgICAgICAgCisgICAgICAgIGJvb2wgdGFr
ZVNsb3dQYXRoOworICAgICAgICBib29sIGJhZEZ1bmN0aW9uOworICAgICAgICAKKyAgICAgICAg
Ly8gQ2hlY2sgaWYgd2UgaGFkIGFscmVhZHkgcHJldmlvdXNseSBtYWRlIGEgdGVycmlibGUgbWlz
dGFrZSBpbiB0aGUgRlRMIGZvciB0aGlzCisgICAgICAgIC8vIGNvZGUgb3JpZ2luLiBOb3RlIHRo
YXQgdGhpcyBpcyBhcHByb3hpbWF0ZSBiZWNhdXNlIHdlIGNvdWxkIGhhdmUgYSBtb25vdmFyaWFu
dAorICAgICAgICAvLyBpbmxpbmUgaW4gdGhlIEZUTCB0aGF0IGVuZGVkIHVwIGZhaWxpbmcuIFdl
IHNob3VsZCBmaXggdGhhdCBhdCBzb21lIHBvaW50IGJ5CisgICAgICAgIC8vIGhhdmluZyBkYXRh
IHN0cnVjdHVyZXMgdG8gdHJhY2sgdGhlIGNvbnRleHQgb2YgZnJlcXVlbnQgZXhpdHMuIFRoaXMg
aXMgY3VycmVudGx5CisgICAgICAgIC8vIGNoYWxsZW5naW5nIGJlY2F1c2UgaXQgd291bGQgcmVx
dWlyZSBjcmVhdGluZyBhIENvZGVPcmlnaW4tYmFzZWQgZGF0YWJhc2UgaW4KKyAgICAgICAgLy8g
YmFzZWxpbmUgQ29kZUJsb2NrcywgYnV0IHRob3NlIENvZGVCbG9ja3MgZG9uJ3QgcmVhbGx5IGhh
dmUgYSBwbGFjZSB0byBwdXQgdGhlCisgICAgICAgIC8vIElubGluZUNhbGxGcmFtZXMuCisgICAg
ICAgIENvZGVCbG9jayogY3VycmVudEJhc2VsaW5lID0KKyAgICAgICAgICAgIGJhc2VsaW5lQ29k
ZUJsb2NrRm9yT3JpZ2luQW5kQmFzZWxpbmVDb2RlQmxvY2soY29kZU9yaWdpbiwgYmFzZWxpbmVD
b2RlQmxvY2spOworICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihjdXJyZW50QmFzZWxpbmUtPm1fbG9jayk7CisgICAgICAgICAgICB0YWtlU2xvd1BhdGgg
PQorICAgICAgICAgICAgICAgIGN1cnJlbnRCYXNlbGluZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBE
Rkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBCYWRDYWNoZSwg
RXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHx8IGN1cnJlbnRCYXNlbGluZS0+aGFzRXhp
dFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5ieXRlY29kZUlu
ZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQsIEV4aXRGcm9tRlRMKSkKKyAgICAgICAgICAgICAgICB8
fCBjdXJyZW50QmFzZWxpbmUtPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRT
aXRlKGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgQmFkRXhlY3V0YWJsZSwgRXhpdEZyb21GVEwp
KTsKKyAgICAgICAgICAgIGJhZEZ1bmN0aW9uID0KKyAgICAgICAgICAgICAgICBjdXJyZW50QmFz
ZWxpbmUtPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGNvZGVPcmln
aW4uYnl0ZWNvZGVJbmRleCwgQmFkRnVuY3Rpb24sIEV4aXRGcm9tRlRMKSk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKGRmZ0NvZGVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIGlmICh0YWtlU2xvd1BhdGgg
fHwgaml0Q29kZS0+c2xvd1BhdGhDYWxsc1tpXSA+PSBPcHRpb25zOjpjb3VsZFRha2VTbG93Q2Fz
ZU1pbmltdW1Db3VudCgpKQorICAgICAgICAgICAgICAgIG1hcC5hZGQoaW5mby5jb2RlT3JpZ2lu
LCB0YWtlc1Nsb3dQYXRoKCkpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
Q2FsbExpbmtTdGF0dXMgc3RhdHVzID0gY29tcHV0ZUZvcihsb2NrZXIsIGluZm8pOworICAgICAg
ICAgICAgICAgIGlmIChzdGF0dXMuaXNTZXQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
YmFkRnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMubWFrZUNsb3N1cmVD
YWxsKCk7CisgICAgICAgICAgICAgICAgICAgIG1hcC5hZGQoaW5mby5jb2RlT3JpZ2luLCBzdGF0
dXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
KyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKyAgICAKKyAgICBpZiAodmVyYm9zZSkgeworICAg
ICAgICBkYXRhTG9nKCJDb250ZXh0IG1hcDpcbiIpOworICAgICAgICBDb250ZXh0TWFwOjppdGVy
YXRvciBpdGVyID0gbWFwLmJlZ2luKCk7CisgICAgICAgIENvbnRleHRNYXA6Oml0ZXJhdG9yIGVu
ZCA9IG1hcC5lbmQoKTsKKyAgICAgICAgZm9yICg7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKKyAg
ICAgICAgICAgIGRhdGFMb2coIiAgICAiLCBpdGVyLT5rZXksICI6XG4iKTsKKyAgICAgICAgICAg
IGRhdGFMb2coIiAgICAgICAgIiwgaXRlci0+dmFsdWUsICJcbiIpOworICAgICAgICB9CisgICAg
fQorfQorCitDYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcigKKyAgICBD
b2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgQ2Fs
bExpbmtTdGF0dXM6OkNvbnRleHRNYXAmIG1hcCkKK3sKKyAgICBDb250ZXh0TWFwOjpjb25zdF9p
dGVyYXRvciBpdGVyID0gbWFwLmZpbmQoY29kZU9yaWdpbik7CisgICAgaWYgKGl0ZXIgIT0gbWFw
LmVuZCgpKQorICAgICAgICByZXR1cm4gaXRlci0+dmFsdWU7CisgICAgCisgICAgcmV0dXJuIGNv
bXB1dGVGb3IocHJvZmlsZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKIH0KIAog
dm9pZCBDYWxsTGlua1N0YXR1czo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlu
a1N0YXR1cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw3ICsyNiw5IEBACiAjaWZu
ZGVmIENhbGxMaW5rU3RhdHVzX2gKICNkZWZpbmUgQ2FsbExpbmtTdGF0dXNfaAogCisjaW5jbHVk
ZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKKyNp
bmNsdWRlICJDb25jdXJyZW50SklUTG9jay5oIgogI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2lu
Y2x1ZGUgIkpTQ0pTVmFsdWUuaCIKIApAQCAtMzcsNiArMzksNyBAQCBjbGFzcyBFeGVjdXRhYmxl
QmFzZTsKIGNsYXNzIEludGVybmFsRnVuY3Rpb247CiBjbGFzcyBKU0Z1bmN0aW9uOwogY2xhc3Mg
U3RydWN0dXJlOworc3RydWN0IENhbGxMaW5rSW5mbzsKIAogY2xhc3MgQ2FsbExpbmtTdGF0dXMg
ewogcHVibGljOgpAQCAtNzQsMzEgKzc3LDE5IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMg
Q2FsbExpbmtTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUlu
ZGV4KTsKICAgICAKLSAgICBDYWxsTGlua1N0YXR1cyYgc2V0SGFzQmFkRnVuY3Rpb25FeGl0U2l0
ZShib29sIGRpZEhhdmVFeGl0U2l0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1Byb3Zl
ZCk7Ci0gICAgICAgIGlmIChkaWRIYXZlRXhpdFNpdGUpIHsKLSAgICAgICAgICAgIC8vIFR1cm4g
dGhpcyBpbnRvIGEgY2xvc3VyZSBjYWxsLgotICAgICAgICAgICAgbV9jYWxsVGFyZ2V0ID0gSlNW
YWx1ZSgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9CisgICAgLy8g
Q29tcHV0ZXMgdGhlIHN0YXR1cyBhc3N1bWluZyB0aGF0IHdlIG5ldmVyIHRvb2sgc2xvdyBwYXRo
IGFuZCBuZXZlciBwcmV2aW91c2x5CisgICAgLy8gZXhpdGVkLgorICAgIHN0YXRpYyBDYWxsTGlu
a1N0YXR1cyBjb21wdXRlRm9yKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDYWxsTGlua0lu
Zm8mKTsKKyAgICAKKyAgICB0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgQ2FsbExpbmtTdGF0
dXMsIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g+IENvbnRleHRNYXA7CisgICAgCisgICAgLy8g
Q29tcHV0ZXMgYWxsIG9mIHRoZSBzdGF0dXNlcyBvZiB0aGUgREZHIGNvZGUgYmxvY2suIERvZXNu
J3QgaW5jbHVkZSBzdGF0dXNlcyB0aGF0IGhhZAorICAgIC8vIG5vIGluZm9ybWF0aW9uLiBDdXJy
ZW50bHkgd2UgdXNlIHRoaXMgd2hlbiBjb21waWxpbmcgRlRMIGNvZGUsIHRvIGVuYWJsZSBwb2x5
dmFyaWFudAorICAgIC8vIGlubGluaW5nLgorICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVERkdTdGF0
dXNlcyhDb2RlQmxvY2sqIGRmZ0NvZGVCbG9jaywgQ29udGV4dE1hcCYpOwogICAgIAotICAgIENh
bGxMaW5rU3RhdHVzJiBzZXRIYXNCYWRDYWNoZUV4aXRTaXRlKGJvb2wgZGlkSGF2ZUV4aXRTaXRl
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2lzUHJvdmVkKTsKLSAgICAgICAgaWYgKGRpZEhh
dmVFeGl0U2l0ZSkKLSAgICAgICAgICAgICp0aGlzID0gdGFrZXNTbG93UGF0aCgpOwotICAgICAg
ICByZXR1cm4gKnRoaXM7Ci0gICAgfQotICAgIAotICAgIENhbGxMaW5rU3RhdHVzJiBzZXRIYXNC
YWRFeGVjdXRhYmxlRXhpdFNpdGUoYm9vbCBkaWRIYXZlRXhpdFNpdGUpCi0gICAgewotICAgICAg
ICBBU1NFUlQoIW1faXNQcm92ZWQpOwotICAgICAgICBpZiAoZGlkSGF2ZUV4aXRTaXRlKQotICAg
ICAgICAgICAgKnRoaXMgPSB0YWtlc1Nsb3dQYXRoKCk7Ci0gICAgICAgIHJldHVybiAqdGhpczsK
LSAgICB9CisgICAgLy8gSGVscGVyIHRoYXQgZmlyc3QgY29uc3VsdHMgdGhlIENvbnRleHRNYXAg
YW5kIHRoZW4gZG9lcyBjb21wdXRlRm9yKCkuCisgICAgc3RhdGljIENhbGxMaW5rU3RhdHVzIGNv
bXB1dGVGb3IoQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29uc3QgQ29udGV4dE1hcCYpOwogICAg
IAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVybiBtX2NhbGxUYXJnZXQgfHwgbV9leGVj
dXRhYmxlIHx8IG1fY291bGRUYWtlU2xvd1BhdGg7IH0KICAgICAKQEAgLTExOSw3ICsxMTAsMTQg
QEAgcHVibGljOgogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJp
dmF0ZToKLSAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxv
Y2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KTsKKyAgICB2b2lkIG1ha2VDbG9zdXJlQ2FsbCgp
CisgICAgeworICAgICAgICBBU1NFUlQoIW1faXNQcm92ZWQpOworICAgICAgICAvLyBUdXJuIHRo
aXMgaW50byBhIGNsb3N1cmUgY2FsbC4KKyAgICAgICAgbV9jYWxsVGFyZ2V0ID0gSlNWYWx1ZSgp
OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZyb21MTElu
dChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNv
ZGVJbmRleCk7CiAgICAgCiAgICAgSlNWYWx1ZSBtX2NhbGxUYXJnZXQ7CiAgICAgRXhlY3V0YWJs
ZUJhc2UqIG1fZXhlY3V0YWJsZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDEwICsx
MjksMTUgQEAgQ1N0cmluZyBDb2RlQmxvY2s6OnNvdXJjZUNvZGVPbk9uZUxpbmUoKQogCiB2b2lk
IENvZGVCbG9jazo6ZHVtcEFzc3VtaW5nSklUVHlwZShQcmludFN0cmVhbSYgb3V0LCBKSVRDb2Rl
OjpKSVRUeXBlIGppdFR5cGUpIGNvbnN0CiB7CisgICAgb3V0LnByaW50KGluZmVycmVkTmFtZSgp
LCAiIyIpOwogICAgIGlmIChoYXNIYXNoKCkgfHwgaXNTYWZlVG9Db21wdXRlSGFzaCgpKQotICAg
ICAgICBvdXQucHJpbnQoaW5mZXJyZWROYW1lKCksICIjIiwgaGFzaCgpLCAiOlsiLCBSYXdQb2lu
dGVyKHRoaXMpLCAiLT4iLCBSYXdQb2ludGVyKG93bmVyRXhlY3V0YWJsZSgpKSwgIiwgIiwgaml0
VHlwZSwgY29kZVR5cGUoKSk7CisgICAgICAgIG91dC5wcmludChoYXNoKCkpOwogICAgIGVsc2UK
LSAgICAgICAgb3V0LnByaW50KGluZmVycmVkTmFtZSgpLCAiIzxuby1oYXNoPjpbIiwgUmF3UG9p
bnRlcih0aGlzKSwgIi0+IiwgUmF3UG9pbnRlcihvd25lckV4ZWN1dGFibGUoKSksICIsICIsIGpp
dFR5cGUsIGNvZGVUeXBlKCkpOworICAgICAgICBvdXQucHJpbnQoIjxuby1oYXNoPiIpOworICAg
IG91dC5wcmludCgiOlsiLCBSYXdQb2ludGVyKHRoaXMpLCAiLT4iKTsKKyAgICBpZiAoISFtX2Fs
dGVybmF0aXZlKQorICAgICAgICBvdXQucHJpbnQoUmF3UG9pbnRlcihtX2FsdGVybmF0aXZlLmdl
dCgpKSwgIi0+Iik7CisgICAgb3V0LnByaW50KFJhd1BvaW50ZXIob3duZXJFeGVjdXRhYmxlKCkp
LCAiLCAiLCBqaXRUeXBlLCBjb2RlVHlwZSgpKTsKIAogICAgIGlmIChjb2RlVHlwZSgpID09IEZ1
bmN0aW9uQ29kZSkKICAgICAgICAgb3V0LnByaW50KHNwZWNpYWxpemF0aW9uS2luZCgpKTsKQEAg
LTE0Myw2ICsxNDgsMTAgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBBc3N1bWluZ0pJVFR5cGUoUHJp
bgogICAgICAgICBvdXQucHJpbnQoIiAoTmV2ZXJJbmxpbmUpIik7CiAgICAgaWYgKG93bmVyRXhl
Y3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkKICAgICAgICAgb3V0LnByaW50KCIgKFN0cmljdE1v
ZGUpIik7CisgICAgaWYgKHRoaXMtPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCAm
JiBtX2RpZEZhaWxGVExDb21waWxhdGlvbikKKyAgICAgICAgb3V0LnByaW50KCIgKEZUTEZhaWwp
Iik7CisgICAgaWYgKHRoaXMtPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCAmJiBt
X2hhc0JlZW5Db21waWxlZFdpdGhGVEwpCisgICAgICAgIG91dC5wcmludCgiIChIYWRGVExSZXBs
YWNlbWVudCkiKTsKICAgICBvdXQucHJpbnQoIl0iKTsKIH0KIApAQCAtNTI2LDEyICs1MzUsNyBA
QCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgb3V0LnByaW50
ZigiXG4iKTsKICAgICAKICAgICBTdHViSW5mb01hcCBzdHViSW5mb3M7Ci0jaWYgRU5BQkxFKEpJ
VCkKLSAgICB7Ci0gICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0g
ICAgICAgIGdldFN0dWJJbmZvTWFwKGxvY2tlciwgc3R1YkluZm9zKTsKLSAgICB9Ci0jZW5kaWYK
KyAgICBnZXRTdHViSW5mb01hcChzdHViSW5mb3MpOwogICAgIAogICAgIGNvbnN0IEluc3RydWN0
aW9uKiBiZWdpbiA9IGluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgY29uc3QgSW5zdHJ1Y3Rp
b24qIGVuZCA9IGluc3RydWN0aW9ucygpLmVuZCgpOwpAQCAtMTQ2OSw2ICsxNDczLDcgQEAgQ29k
ZUJsb2NrOjpDb2RlQmxvY2soQ29weVBhcnNlZEJsb2NrVGFnLAogICAgICwgbV9pc0NvbnN0cnVj
dG9yKG90aGVyLm1faXNDb25zdHJ1Y3RvcikKICAgICAsIG1fc2hvdWxkQWx3YXlzQmVJbmxpbmVk
KHRydWUpCiAgICAgLCBtX2RpZEZhaWxGVExDb21waWxhdGlvbihmYWxzZSkKKyAgICAsIG1faGFz
QmVlbkNvbXBpbGVkV2l0aEZUTChmYWxzZSkKICAgICAsIG1fdW5saW5rZWRDb2RlKCpvdGhlci5t
X3ZtLCBvdGhlci5tX293bmVyRXhlY3V0YWJsZS5nZXQoKSwgb3RoZXIubV91bmxpbmtlZENvZGUu
Z2V0KCkpCiAgICAgLCBtX3N0ZXBwaW5nTW9kZShTdGVwcGluZ01vZGVEaXNhYmxlZCkKICAgICAs
IG1fbnVtQnJlYWtwb2ludHMoMCkKQEAgLTE1MjUsNiArMTUzMCw3IEBAIENvZGVCbG9jazo6Q29k
ZUJsb2NrKFNjcmlwdEV4ZWN1dGFibGUqIG8KICAgICAsIG1faXNDb25zdHJ1Y3Rvcih1bmxpbmtl
ZENvZGVCbG9jay0+aXNDb25zdHJ1Y3RvcigpKQogICAgICwgbV9zaG91bGRBbHdheXNCZUlubGlu
ZWQodHJ1ZSkKICAgICAsIG1fZGlkRmFpbEZUTENvbXBpbGF0aW9uKGZhbHNlKQorICAgICwgbV9o
YXNCZWVuQ29tcGlsZWRXaXRoRlRMKGZhbHNlKQogICAgICwgbV91bmxpbmtlZENvZGUobV9nbG9i
YWxPYmplY3QtPnZtKCksIG93bmVyRXhlY3V0YWJsZSwgdW5saW5rZWRDb2RlQmxvY2spCiAgICAg
LCBtX3N0ZXBwaW5nTW9kZShTdGVwcGluZ01vZGVEaXNhYmxlZCkKICAgICAsIG1fbnVtQnJlYWtw
b2ludHMoMCkKQEAgLTE4NTQsMjMgKzE4NjAsMTMgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soU2Ny
aXB0RXhlY3V0YWJsZSogbwogCiAgICAgLy8gSWYgdGhlIGNvbmN1cnJlbnQgdGhyZWFkIHdpbGwg
d2FudCB0aGUgY29kZSBibG9jaydzIGhhc2gsIHRoZW4gY29tcHV0ZSBpdCBoZXJlCiAgICAgLy8g
c3luY2hyb25vdXNseS4KLSAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5KCkKLSAgICAg
ICAgfHwgT3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkKLSAgICAgICAgfHwgT3B0aW9uczo6
ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCkKLSAgICAgICAgfHwgT3B0aW9uczo6ZHVtcEdyYXBoQXRF
YWNoUGhhc2UoKQotICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKQotICAg
ICAgICB8fCBPcHRpb25zOjpsb2dDb21waWxhdGlvbkNoYW5nZXMoKQotICAgICAgICB8fCBPcHRp
b25zOjp2YWxpZGF0ZUdyYXBoKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRhdGVHcmFwaEF0
RWFjaFBoYXNlKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpCi0gICAgICAgIHx8
IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkKLSAgICAgICAgfHwgT3B0aW9uczo6
cmVwb3J0Q29tcGlsZVRpbWVzKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNGQSgpKQor
ICAgIGlmIChPcHRpb25zOjphbHdheXNDb21wdXRlSGFzaCgpKQogICAgICAgICBoYXNoKCk7CiAK
ICAgICBpZiAoT3B0aW9uczo6ZHVtcEdlbmVyYXRlZEJ5dGVjb2RlcygpKQogICAgICAgICBkdW1w
Qnl0ZWNvZGUoKTsKIAorICAgIAogICAgIG1faGVhcC0+bV9jb2RlQmxvY2tzLmFkZCh0aGlzKTsK
ICAgICBtX2hlYXAtPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChzaXplb2YoQ29kZUJsb2NrKSArIG1f
aW5zdHJ1Y3Rpb25zLnNpemUoKSAqIHNpemVvZihJbnN0cnVjdGlvbikpOwogfQpAQCAtMjMzNCwx
NiArMjMzMCwyNiBAQCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoCiAj
ZW5kaWYKIH0KIAordm9pZCBDb2RlQmxvY2s6OmdldFN0dWJJbmZvTWFwKGNvbnN0IENvbmN1cnJl
bnRKSVRMb2NrZXImLCBTdHViSW5mb01hcCYgcmVzdWx0KQorewogI2lmIEVOQUJMRShKSVQpCi1T
dHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRTdHViSW5mbygpCisgICAgdG9IYXNoTWFw
KG1fc3R1YkluZm9zLCBnZXRTdHJ1Y3R1cmVTdHViSW5mb0NvZGVPcmlnaW4sIHJlc3VsdCk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOworI2VuZGlmCit9CisKK3ZvaWQgQ29kZUJs
b2NrOjpnZXRTdHViSW5mb01hcChTdHViSW5mb01hcCYgcmVzdWx0KQogewogICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgcmV0dXJuIG1fc3R1YkluZm9zLmFkZCgp
OworICAgIGdldFN0dWJJbmZvTWFwKGxvY2tlciwgcmVzdWx0KTsKIH0KIAotdm9pZCBDb2RlQmxv
Y2s6OmdldFN0dWJJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01h
cCYgcmVzdWx0KQorI2lmIEVOQUJMRShKSVQpCitTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2Nr
OjphZGRTdHViSW5mbygpCiB7Ci0gICAgdG9IYXNoTWFwKG1fc3R1YkluZm9zLCBnZXRTdHJ1Y3R1
cmVTdHViSW5mb0NvZGVPcmlnaW4sIHJlc3VsdCk7CisgICAgQ29uY3VycmVudEpJVExvY2tlciBs
b2NrZXIobV9sb2NrKTsKKyAgICByZXR1cm4gbV9zdHViSW5mb3MuYWRkKCk7CiB9CiAKIHZvaWQg
Q29kZUJsb2NrOjpyZXNldFN0dWIoU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvKQpAQCAtMjg5
OSw2ICsyOTA1LDExIEBAIHZvaWQgQ29kZUJsb2NrOjpjb3VudFJlb3B0aW1pemF0aW9uKCkKIHVu
c2lnbmVkIENvZGVCbG9jazo6bnVtYmVyT2ZERkdDb21waWxlcygpCiB7CiAgICAgQVNTRVJUKEpJ
VENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUoKSkpOworICAgIGlmIChPcHRpb25zOjp0ZXN0
VGhlRlRMKCkpIHsKKyAgICAgICAgaWYgKG1fZGlkRmFpbEZUTENvbXBpbGF0aW9uKQorICAgICAg
ICAgICAgcmV0dXJuIDEwMDAwMDA7CisgICAgICAgIHJldHVybiAobV9oYXNCZWVuQ29tcGlsZWRX
aXRoRlRMID8gMSA6IDApICsgbV9yZW9wdGltaXphdGlvblJldHJ5Q291bnRlcjsKKyAgICB9CiAg
ICAgcmV0dXJuIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQocmVwbGFjZW1lbnQoKS0+aml0VHlw
ZSgpKSA/IDEgOiAwKSArIG1fcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXI7CiB9CiAKQEAgLTMw
MTAsNyArMzAyMSw3IEBAIGludDMyX3QgQ29kZUJsb2NrOjphZGp1c3RlZENvdW50ZXJWYWx1ZSgK
IGJvb2wgQ29kZUJsb2NrOjpjaGVja0lmT3B0aW1pemF0aW9uVGhyZXNob2xkUmVhY2hlZCgpCiB7
CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgaWYgKERGRzo6V29ya2xpc3QqIHdvcmtsaXN0ID0g
bV92bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAgICBpZiAoREZHOjpXb3JrbGlzdCogd29ya2xpc3Qg
PSBERkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKSkgewogICAgICAgICBpZiAo
d29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUoREZHOjpDb21waWxhdGlvbktleSh0aGlzLCBERkc6
OkRGR01vZGUpKQogICAgICAgICAgICAgPT0gREZHOjpXb3JrbGlzdDo6Q29tcGlsZWQpIHsKICAg
ICAgICAgICAgIG9wdGltaXplTmV4dEludm9jYXRpb24oKTsKQEAgLTMzNDEsNiArMzM1MiwxMSBA
QCB1bnNpZ25lZCBDb2RlQmxvY2s6OmZyYW1lUmVnaXN0ZXJDb3VudCgpCiAgICAgfQogfQogCitp
bnQgQ29kZUJsb2NrOjpzdGFja1BvaW50ZXJPZmZzZXQoKQoreworICAgIHJldHVybiB2aXJ0dWFs
UmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVyQ291bnQoKSAtIDEpLm9mZnNldCgpOworfQor
CiBzaXplX3QgQ29kZUJsb2NrOjpwcmVkaWN0ZWRNYWNoaW5lQ29kZVNpemUoKQogewogICAgIC8v
IFRoaXMgd2lsbCBiZSBjYWxsZWQgZnJvbSBDb2RlQmxvY2s6OkNvZGVCbG9jayBiZWZvcmUgZWl0
aGVyIG1fdm0gb3IgdGhlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBleHByZXNzaW9uUmFuZ2VGb3JCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBi
eXRlY29kZU9mZnNldCwgaW50JiBkaXZvdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCYgc3RhcnRPZmZzZXQsIGludCYgZW5kT2Zmc2V0LCB1bnNpZ25lZCYg
bGluZSwgdW5zaWduZWQmIGNvbHVtbik7CiAKKyAgICB2b2lkIGdldFN0dWJJbmZvTWFwKGNvbnN0
IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01hcCYgcmVzdWx0KTsKKyAgICB2b2lkIGdl
dFN0dWJJbmZvTWFwKFN0dWJJbmZvTWFwJiByZXN1bHQpOworCiAjaWYgRU5BQkxFKEpJVCkKICAg
ICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1YkluZm8oKTsKICAgICBCYWc8U3RydWN0dXJlU3R1
YkluZm8+OjppdGVyYXRvciBiZWdpbigpIHsgcmV0dXJuIG1fc3R1YkluZm9zLmJlZ2luKCk7IH0K
QEAgLTE4Miw4ICsxODUsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0U3R1YihTdHJ1Y3R1
cmVTdHViSW5mbyYpOwogICAgIAotICAgIHZvaWQgZ2V0U3R1YkluZm9NYXAoY29uc3QgQ29uY3Vy
cmVudEpJVExvY2tlciYsIFN0dWJJbmZvTWFwJiByZXN1bHQpOwotCiAgICAgQnlWYWxJbmZvJiBn
ZXRCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKICAgICB7CiAgICAgICAgIHJldHVy
biAqKGJpbmFyeVNlYXJjaDxCeVZhbEluZm8sIHVuc2lnbmVkPihtX2J5VmFsSW5mb3MsIG1fYnlW
YWxJbmZvcy5zaXplKCksIGJ5dGVjb2RlSW5kZXgsIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgp
KTsKQEAgLTI1NiwxNyArMjU3LDE1IEBAIHB1YmxpYzoKICAgICAvLyBFeGFjdGx5IGVxdWl2YWxl
bnQgdG8gY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+bmV3UmVwbGFjZW1lbnRDb2RlQmxv
Y2tGb3IoY29kZUJsb2NrLT5zcGVjaWFsaXphdGlvbktpbmQoKSkKICAgICBQYXNzUmVmUHRyPENv
ZGVCbG9jaz4gbmV3UmVwbGFjZW1lbnQoKTsKICAgICAKLSAgICB2b2lkIHNldEpJVENvZGUoUGFz
c1JlZlB0cjxKSVRDb2RlPiBjb2RlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVdpdGhBcml0
eUNoZWNrKQorICAgIHZvaWQgc2V0SklUQ29kZShQYXNzUmVmUHRyPEpJVENvZGU+IGNvZGUpCiAg
ICAgewogICAgICAgICBBU1NFUlQobV9oZWFwLT5pc0RlZmVycmVkKCkpOwogICAgICAgICBtX2hl
YXAtPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChjb2RlLT5zaXplKCkpOwogICAgICAgICBDb25jdXJy
ZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBXVEY6OnN0b3JlU3RvcmVGZW5j
ZSgpOyAvLyBUaGlzIGlzIHByb2JhYmx5IG5vdCBuZWVkZWQgYmVjYXVzZSB0aGUgbG9jayB3aWxs
IGFsc28gZG8gc29tZXRoaW5nIHNpbWlsYXIsIGJ1dCBpdCdzIGdvb2QgdG8gYmUgcGFyYW5vaWQu
CiAgICAgICAgIG1faml0Q29kZSA9IGNvZGU7Ci0gICAgICAgIG1faml0Q29kZVdpdGhBcml0eUNo
ZWNrID0gY29kZVdpdGhBcml0eUNoZWNrOwogICAgIH0KICAgICBQYXNzUmVmUHRyPEpJVENvZGU+
IGppdENvZGUoKSB7IHJldHVybiBtX2ppdENvZGU7IH0KLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgaml0Q29kZVdpdGhBcml0eUNoZWNrKCkgeyByZXR1cm4gbV9qaXRDb2RlV2l0aEFyaXR5Q2hl
Y2s7IH0KICAgICBKSVRDb2RlOjpKSVRUeXBlIGppdFR5cGUoKSBjb25zdAogICAgIHsKICAgICAg
ICAgSklUQ29kZSogaml0Q29kZSA9IG1faml0Q29kZS5nZXQoKTsKQEAgLTQ4OSw4ICs0ODgsOCBA
QCBwdWJsaWM6CiAgICAgUmFyZUNhc2VQcm9maWxlKiBzcGVjaWFsRmFzdENhc2VQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQogICAgIHsKICAgICAgICAgcmV0dXJu
IHRyeUJpbmFyeVNlYXJjaDxSYXJlQ2FzZVByb2ZpbGUsIGludD4oCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3BlY2lhbEZhc3RDYXNlUHJv
ZmlsZXMsIG1fc3BlY2lhbEZhc3RDYXNlUHJvZmlsZXMuc2l6ZSgpLCBieXRlY29kZU9mZnNldCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0
UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQpOworICAgICAgICAgICAgbV9zcGVjaWFsRmFz
dENhc2VQcm9maWxlcywgbV9zcGVjaWFsRmFzdENhc2VQcm9maWxlcy5zaXplKCksIGJ5dGVjb2Rl
T2Zmc2V0LAorICAgICAgICAgICAgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQpOwog
ICAgIH0KIAogICAgIGJvb2wgbGlrZWx5VG9UYWtlU3BlY2lhbEZhc3RDYXNlKGludCBieXRlY29k
ZU9mZnNldCkKQEAgLTU3NiwxMSArNTc1LDE1IEBAIHB1YmxpYzoKICAgICAgICAgQ29uY3VycmVu
dEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUu
YWRkKGxvY2tlciwgc2l0ZSk7CiAgICAgfQotICAgICAgICAKKyAgICAgCisgICAgYm9vbCBoYXNF
eGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGNvbnN0IERGRzo6RnJl
cXVlbnRFeGl0U2l0ZSYgc2l0ZSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2V4aXRQ
cm9maWxlLmhhc0V4aXRTaXRlKGxvY2tlciwgc2l0ZSk7CisgICAgfQogICAgIGJvb2wgaGFzRXhp
dFNpdGUoY29uc3QgREZHOjpGcmVxdWVudEV4aXRTaXRlJiBzaXRlKSBjb25zdAogICAgIHsKICAg
ICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICAgICAgcmV0dXJu
IG1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobG9ja2VyLCBzaXRlKTsKKyAgICAgICAgcmV0dXJu
IGhhc0V4aXRTaXRlKGxvY2tlciwgc2l0ZSk7CiAgICAgfQogCiAgICAgREZHOjpFeGl0UHJvZmls
ZSYgZXhpdFByb2ZpbGUoKSB7IHJldHVybiBtX2V4aXRQcm9maWxlOyB9CkBAIC02NzksOSArNjgy
LDE5IEBAIHB1YmxpYzoKIAogICAgIEJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcyYgbGl2ZW5lc3NB
bmFseXNpcygpCiAgICAgewotICAgICAgICBpZiAoIW1fbGl2ZW5lc3NBbmFseXNpcykKLSAgICAg
ICAgICAgIG1fbGl2ZW5lc3NBbmFseXNpcyA9IHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNvZGVMaXZl
bmVzc0FuYWx5c2lzPih0aGlzKTsKLSAgICAgICAgcmV0dXJuICptX2xpdmVuZXNzQW5hbHlzaXM7
CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9j
ayk7CisgICAgICAgICAgICBpZiAoISFtX2xpdmVuZXNzQW5hbHlzaXMpCisgICAgICAgICAgICAg
ICAgcmV0dXJuICptX2xpdmVuZXNzQW5hbHlzaXM7CisgICAgICAgIH0KKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPEJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcz4gYW5hbHlzaXMgPQorICAgICAgICAg
ICAgc3RkOjptYWtlX3VuaXF1ZTxCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXM+KHRoaXMpOworICAg
ICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwor
ICAgICAgICAgICAgaWYgKCFtX2xpdmVuZXNzQW5hbHlzaXMpCisgICAgICAgICAgICAgICAgbV9s
aXZlbmVzc0FuYWx5c2lzID0gc3RkOjptb3ZlKGFuYWx5c2lzKTsKKyAgICAgICAgICAgIHJldHVy
biAqbV9saXZlbmVzc0FuYWx5c2lzOworICAgICAgICB9CiAgICAgfQogICAgIAogICAgIHZvaWQg
dmFsaWRhdGUoKTsKQEAgLTg2Niw2ICs4NzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVB
bGxQcmVkaWN0aW9ucygpOwogCiAgICAgdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50KCk7Cisg
ICAgaW50IHN0YWNrUG9pbnRlck9mZnNldCgpOwogCiAgICAgYm9vbCBoYXNPcERlYnVnRm9yTGlu
ZUFuZENvbHVtbih1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1bW4pOwogCkBAIC04OTEsNyAr
OTA1LDcgQEAgcHVibGljOgogCiAgICAgaW50IG1fbnVtQ2FsbGVlUmVnaXN0ZXJzOwogICAgIGlu
dCBtX251bVZhcnM7Ci0gICAgYm9vbCBtX2lzQ29uc3RydWN0b3I7CisgICAgYm9vbCBtX2lzQ29u
c3RydWN0b3IgOiAxOwogICAgIAogICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwdWJsaWM7
IGl0J3MgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIGFueW9uZSBkb2luZyBhbnkKICAgICAvLyBvZiB0
aGUgZm9sbG93aW5nIHRvIGhvbGQgdGhlIGxvY2s6CkBAIC05MTEsMTAgKzkyNSwxMSBAQCBwdWJs
aWM6CiAgICAgLy8gY29uY3VycmVudCBjb21waWxhdGlvbiB0aHJlYWRzIGZpbmlzaCB3aGF0IHRo
ZXkncmUgZG9pbmcuCiAgICAgbXV0YWJsZSBDb25jdXJyZW50SklUTG9jayBtX2xvY2s7CiAgICAg
Ci0gICAgYm9vbCBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZDsKLSAgICBib29sIG1fYWxsVHJhbnNp
dGlvbnNIYXZlQmVlbk1hcmtlZDsgLy8gSW5pdGlhbGl6ZWQgYW5kIHVzZWQgb24gZXZlcnkgR0Mu
CisgICAgYm9vbCBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZDsgLy8gTm90IGEgYml0ZmllbGQgYmVj
YXVzZSB0aGUgSklUIHdhbnRzIHRvIHN0b3JlIHRvIGl0LgorICAgIGJvb2wgbV9hbGxUcmFuc2l0
aW9uc0hhdmVCZWVuTWFya2VkIDogMTsgLy8gSW5pdGlhbGl6ZWQgYW5kIHVzZWQgb24gZXZlcnkg
R0MuCiAgICAgCi0gICAgYm9vbCBtX2RpZEZhaWxGVExDb21waWxhdGlvbjsKKyAgICBib29sIG1f
ZGlkRmFpbEZUTENvbXBpbGF0aW9uIDogMTsKKyAgICBib29sIG1faGFzQmVlbkNvbXBpbGVkV2l0
aEZUTCA6IDE7CiAKICAgICAvLyBJbnRlcm5hbCBtZXRob2RzIGZvciB1c2UgYnkgdmFsaWRhdGlv
biBjb2RlLiBJdCB3b3VsZCBiZSBwcml2YXRlIGlmIGl0IHdhc24ndAogICAgIC8vIGZvciB0aGUg
ZmFjdCB0aGF0IHdlIHVzZSBpdCBmcm9tIGFub255bW91cyBuYW1lc3BhY2VzLgpAQCAtMTA1NCw3
ICsxMDY5LDYgQEAgcHJpdmF0ZToKICAgICBTZW50aW5lbExpbmtlZExpc3Q8TExJbnRDYWxsTGlu
a0luZm8sIEJhc2ljUmF3U2VudGluZWxOb2RlPExMSW50Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWlu
Z0xMSW50Q2FsbHM7CiAjZW5kaWYKICAgICBSZWZQdHI8SklUQ29kZT4gbV9qaXRDb2RlOwotICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVXaXRoQXJpdHlDaGVjazsKICNpZiBFTkFC
TEUoSklUKQogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7CiAgICAgVmVj
dG9yPEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NSw3ICs0NSw2NCBAQCB1bnNpZ25lZCBDb2RlT3JpZ2luOjppbmxpbmVEZXB0aCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGlubGluZURlcHRoRm9yQ2FsbEZyYW1lKGlubGluZUNhbGxGcmFtZSk7
CiB9CisKK2Jvb2wgQ29kZU9yaWdpbjo6aXNBcHByb3hpbWF0ZWx5RXF1YWxUbyhjb25zdCBDb2Rl
T3JpZ2luJiBvdGhlcikgY29uc3QKK3sKKyAgICBDb2RlT3JpZ2luIGEgPSAqdGhpczsKKyAgICBD
b2RlT3JpZ2luIGIgPSBvdGhlcjsKKworICAgIGlmICghYS5pc1NldCgpKQorICAgICAgICByZXR1
cm4gIWIuaXNTZXQoKTsKKyAgICBpZiAoIWIuaXNTZXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIAorICAgIGlmIChhLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisgICAgICAgIHJl
dHVybiBiLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CisgICAgaWYgKGIuaXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGZvciAoOzsp
IHsKKyAgICAgICAgQVNTRVJUKGEuaXNTZXQoKSk7CisgICAgICAgIEFTU0VSVChiLmlzU2V0KCkp
OworICAgICAgICAKKyAgICAgICAgaWYgKGEuYnl0ZWNvZGVJbmRleCAhPSBiLmJ5dGVjb2RlSW5k
ZXgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAoKCEh
YS5pbmxpbmVDYWxsRnJhbWUpICE9ICghIWIuaW5saW5lQ2FsbEZyYW1lKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmICghYS5pbmxpbmVDYWxsRnJhbWUp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChhLmlubGlu
ZUNhbGxGcmFtZS0+ZXhlY3V0YWJsZSAhPSBiLmlubGluZUNhbGxGcmFtZS0+ZXhlY3V0YWJsZSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGEgPSBhLmlubGlu
ZUNhbGxGcmFtZS0+Y2FsbGVyOworICAgICAgICBiID0gYi5pbmxpbmVDYWxsRnJhbWUtPmNhbGxl
cjsKKyAgICB9Cit9CisKK3Vuc2lnbmVkIENvZGVPcmlnaW46OmFwcHJveGltYXRlSGFzaCgpIGNv
bnN0Cit7CisgICAgaWYgKCFpc1NldCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoaXNI
YXNoVGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIDE7CiAgICAgCisgICAgdW5z
aWduZWQgcmVzdWx0ID0gMjsKKyAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSAqdGhpczsKKyAg
ICBmb3IgKDs7KSB7CisgICAgICAgIHJlc3VsdCArPSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXg7
CisgICAgICAgIAorICAgICAgICBpZiAoIWNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKQorICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIHJlc3VsdCArPSBXVEY6
OlB0ckhhc2g8SlNDZWxsKj46Omhhc2goY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUtPmV4ZWN1
dGFibGUuZ2V0KCkpOworICAgICAgICAKKyAgICAgICAgY29kZU9yaWdpbiA9IGNvZGVPcmlnaW4u
aW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7CisgICAgfQorfQorCiBWZWN0b3I8Q29kZU9yaWdpbj4g
Q29kZU9yaWdpbjo6aW5saW5lU3RhY2soKSBjb25zdAogewogICAgIFZlY3RvcjxDb2RlT3JpZ2lu
PiByZXN1bHQoaW5saW5lRGVwdGgoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlT3JpZ2luLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYz
LDcgQEAgc3RydWN0IENvZGVPcmlnaW4gewogICAgIAogICAgIENvZGVPcmlnaW4oV1RGOjpIYXNo
VGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICA6IGJ5dGVjb2RlSW5kZXgoaW52YWxpZEJ5
dGVjb2RlSW5kZXgpCi0gICAgICAgICwgaW5saW5lQ2FsbEZyYW1lKGJpdHdpc2VfY2FzdDxJbmxp
bmVDYWxsRnJhbWUqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEpKSkKKyAgICAgICAgLCBpbmxp
bmVDYWxsRnJhbWUoZGVsZXRlZE1hcmtlcigpKQogICAgIHsKICAgICB9CiAgICAgCkBAIC05Nywx
NSArOTcsMjcgQEAgc3RydWN0IENvZGVPcmlnaW4gewogICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3Q7CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IENv
ZGVPcmlnaW4mIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQogICAg
IAorICAgIC8vIFRoaXMgY2hlY2tzIGlmIHRoZSB0d28gY29kZSBvcmlnaW5zIGNvcnJlc3BvbmQg
dG8gdGhlIHNhbWUgc3RhY2sgdHJhY2Ugc25pcHBldHMsCisgICAgLy8gYnV0IGlnbm9yZSB3aGV0
aGVyIHRoZSBJbmxpbmVDYWxsRnJhbWUncyBhcmUgaWRlbnRpY2FsLgorICAgIGJvb2wgaXNBcHBy
b3hpbWF0ZWx5RXF1YWxUbyhjb25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3Q7CisgICAgCisg
ICAgdW5zaWduZWQgYXBwcm94aW1hdGVIYXNoKCkgY29uc3Q7CisgICAgCiAgICAgLy8gR2V0IHRo
ZSBpbmxpbmUgc3RhY2suIFRoaXMgaXMgc2xvdywgYW5kIGlzIGludGVuZGVkIGZvciBkZWJ1Z2dp
bmcgb25seS4KICAgICBWZWN0b3I8Q29kZU9yaWdpbj4gaW5saW5lU3RhY2soKSBjb25zdDsKICAg
ICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGR1bXBJbkNv
bnRleHQoUHJpbnRTdHJlYW0mLCBEdW1wQ29udGV4dCopIGNvbnN0OworCitwcml2YXRlOgorICAg
IHN0YXRpYyBJbmxpbmVDYWxsRnJhbWUqIGRlbGV0ZWRNYXJrZXIoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGJpdHdpc2VfY2FzdDxJbmxpbmVDYWxsRnJhbWUqPihzdGF0aWNfY2FzdDx1aW50cHRy
X3Q+KDEpKTsKKyAgICB9CiB9OwogCiBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsKLSAgICBWZWN0
b3I8VmFsdWVSZWNvdmVyeT4gYXJndW1lbnRzOworICAgIFZlY3RvcjxWYWx1ZVJlY292ZXJ5PiBh
cmd1bWVudHM7IC8vIEluY2x1ZGVzICd0aGlzJy4KICAgICBXcml0ZUJhcnJpZXI8U2NyaXB0RXhl
Y3V0YWJsZT4gZXhlY3V0YWJsZTsKICAgICBWYWx1ZVJlY292ZXJ5IGNhbGxlZVJlY292ZXJ5Owog
ICAgIENvZGVPcmlnaW4gY2FsbGVyOwpAQCAtMTg1LDYgKzE5NywxMiBAQCBzdHJ1Y3QgQ29kZU9y
aWdpbkhhc2ggewogICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkID0gdHJ1ZTsKIH07CiAKK3N0cnVjdCBDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoIHsK
KyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBDb2RlT3JpZ2luJiBrZXkpIHsgcmV0dXJu
IGtleS5hcHByb3hpbWF0ZUhhc2goKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IENv
ZGVPcmlnaW4mIGEsIGNvbnN0IENvZGVPcmlnaW4mIGIpIHsgcmV0dXJuIGEuaXNBcHByb3hpbWF0
ZWx5RXF1YWxUbyhiKTsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gdHJ1ZTsKK307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiBuYW1lc3Bh
Y2UgV1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJv
ZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RG
R0V4aXRQcm9maWxlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsOCBAQCBFeGl0UHJvZmlsZTo6fkV4aXRQcm9maWxlKCkgeyB9CiAKIGJvb2wgRXhpdFByb2Zp
bGU6OmFkZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgY29uc3QgRnJlcXVlbnRFeGl0U2l0
ZSYgc2l0ZSkKIHsKKyAgICBBU1NFUlQoc2l0ZS5qaXRUeXBlKCkgIT0gRXhpdEZyb21Bbnl0aGlu
Zyk7CisgICAgCiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgc2VlbiBhbnkgZnJlcXVlbnQgZXhpdHMg
dGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1dCB0aGlzIHNpdGUKICAgICAvLyBpbnRvIGl0Lgog
ICAgIGlmICghbV9mcmVxdWVudEV4aXRTaXRlcykgewpAQCAtNzgsNyArODAsNyBAQCBib29sIEV4
aXRQcm9maWxlOjpoYXNFeGl0U2l0ZShjb25zdCBDb25jCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2ZyZXF1ZW50RXhpdFNpdGVzLT5zaXplKCk7
IGktLTspIHsKLSAgICAgICAgaWYgKG1fZnJlcXVlbnRFeGl0U2l0ZXMtPmF0KGkpID09IHNpdGUp
CisgICAgICAgIGlmIChzaXRlLnN1YnN1bWVzKG1fZnJlcXVlbnRFeGl0U2l0ZXMtPmF0KGkpKSkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4
aXRQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvbmN1cnJlbnRKSVRMb2NrLmgiCiAjaW5jbHVkZSAiRXhp
dEtpbmQuaCIKKyNpbmNsdWRlICJFeGl0aW5nSklUVHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
QEAgLTM5LDE4ICs0MCwyMiBAQCBwdWJsaWM6CiAgICAgRnJlcXVlbnRFeGl0U2l0ZSgpCiAgICAg
ICAgIDogbV9ieXRlY29kZU9mZnNldCgwKSAvLyAwID0gZW1wdHkgdmFsdWUKICAgICAgICAgLCBt
X2tpbmQoRXhpdEtpbmRVbnNldCkKKyAgICAgICAgLCBtX2ppdFR5cGUoRXhpdEZyb21Bbnl0aGlu
ZykKICAgICB7CiAgICAgfQogICAgIAogICAgIEZyZXF1ZW50RXhpdFNpdGUoV1RGOjpIYXNoVGFi
bGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQoMSkgLy8gMSA9
IGRlbGV0ZWQgdmFsdWUKICAgICAgICAgLCBtX2tpbmQoRXhpdEtpbmRVbnNldCkKKyAgICAgICAg
LCBtX2ppdFR5cGUoRXhpdEZyb21Bbnl0aGluZykKICAgICB7CiAgICAgfQogICAgIAotICAgIGV4
cGxpY2l0IEZyZXF1ZW50RXhpdFNpdGUodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsIEV4aXRLaW5k
IGtpbmQpCisgICAgZXhwbGljaXQgRnJlcXVlbnRFeGl0U2l0ZSgKKyAgICAgICAgdW5zaWduZWQg
Ynl0ZWNvZGVPZmZzZXQsIEV4aXRLaW5kIGtpbmQsIEV4aXRpbmdKSVRUeXBlIGppdFR5cGUgPSBF
eGl0RnJvbUFueXRoaW5nKQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZz
ZXQpCiAgICAgICAgICwgbV9raW5kKGtpbmQpCisgICAgICAgICwgbV9qaXRUeXBlKGppdFR5cGUp
CiAgICAgewogICAgICAgICBpZiAobV9raW5kID09IEFyZ3VtZW50c0VzY2FwZWQpIHsKICAgICAg
ICAgICAgIC8vIENvdW50IHRoaXMgb25lIGdsb2JhbGx5LiBJdCBkb2Vzbid0IG1hdHRlciB3aGVy
ZSBpbiB0aGUgY29kZSBibG9jayB0aGUgYXJndW1lbnRzIGV4Y2FwZWQ7CkBAIC02MSw5ICs2Niwx
MCBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gVXNlIHRoaXMgY29uc3RydWN0b3IgaWYgeW91IHdp
c2ggZm9yIHRoZSBleGl0IHNpdGUgdG8gYmUgY291bnRlZCBnbG9iYWxseSB3aXRoaW4gaXRzCiAg
ICAgLy8gY29kZSBibG9jay4KLSAgICBleHBsaWNpdCBGcmVxdWVudEV4aXRTaXRlKEV4aXRLaW5k
IGtpbmQpCisgICAgZXhwbGljaXQgRnJlcXVlbnRFeGl0U2l0ZShFeGl0S2luZCBraW5kLCBFeGl0
aW5nSklUVHlwZSBqaXRUeXBlID0gRXhpdEZyb21Bbnl0aGluZykKICAgICAgICAgOiBtX2J5dGVj
b2RlT2Zmc2V0KDApCiAgICAgICAgICwgbV9raW5kKGtpbmQpCisgICAgICAgICwgbV9qaXRUeXBl
KGppdFR5cGUpCiAgICAgewogICAgIH0KICAgICAKQEAgLTc1LDE2ICs4MSwzNiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIG90aGVyKSBjb25z
dAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXQgPT0gb3RoZXIubV9ieXRl
Y29kZU9mZnNldAotICAgICAgICAgICAgJiYgbV9raW5kID09IG90aGVyLm1fa2luZDsKKyAgICAg
ICAgICAgICYmIG1fa2luZCA9PSBvdGhlci5tX2tpbmQKKyAgICAgICAgICAgICYmIG1faml0VHlw
ZSA9PSBvdGhlci5tX2ppdFR5cGU7CisgICAgfQorICAgIAorICAgIGJvb2wgc3Vic3VtZXMoY29u
c3QgRnJlcXVlbnRFeGl0U2l0ZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICBpZiAobV9i
eXRlY29kZU9mZnNldCAhPSBvdGhlci5tX2J5dGVjb2RlT2Zmc2V0KQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBpZiAobV9raW5kICE9IG90aGVyLm1fa2luZCkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKG1faml0VHlwZSA9PSBFeGl0RnJvbUFueXRo
aW5nKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBtX2ppdFR5cGUg
PT0gb3RoZXIubV9qaXRUeXBlOwogICAgIH0KICAgICAKICAgICB1bnNpZ25lZCBoYXNoKCkgY29u
c3QKICAgICB7Ci0gICAgICAgIHJldHVybiBXVEY6OmludEhhc2gobV9ieXRlY29kZU9mZnNldCkg
KyBtX2tpbmQ7CisgICAgICAgIHJldHVybiBXVEY6OmludEhhc2gobV9ieXRlY29kZU9mZnNldCkg
KyBtX2tpbmQgKyBtX2ppdFR5cGUgKiA3OwogICAgIH0KICAgICAKICAgICB1bnNpZ25lZCBieXRl
Y29kZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXQ7IH0KICAgICBFeGl0
S2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CisgICAgRXhpdGluZ0pJVFR5cGUg
aml0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1faml0VHlwZTsgfQorICAgIAorICAgIEZyZXF1ZW50
RXhpdFNpdGUgd2l0aEpJVFR5cGUoRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkgY29uc3QKKyAgICB7
CisgICAgICAgIEZyZXF1ZW50RXhpdFNpdGUgcmVzdWx0ID0gKnRoaXM7CisgICAgICAgIHJlc3Vs
dC5tX2ppdFR5cGUgPSBqaXRUeXBlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIAog
ICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAogICAgIHsKQEAgLTk0LDYg
KzEyMCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9ieXRlY29kZU9mZnNl
dDsKICAgICBFeGl0S2luZCBtX2tpbmQ7CisgICAgRXhpdGluZ0pJVFR5cGUgbV9qaXRUeXBlOwog
fTsKIAogc3RydWN0IEZyZXF1ZW50RXhpdFNpdGVIYXNoIHsKQEAgLTE2Niw2ICsxOTMsMTAgQEAg
cHVibGljOgogCiAgICAgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBz
aXRlKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKHNpdGUuaml0VHlwZSgpID09IEV4aXRGcm9t
QW55dGhpbmcpIHsKKyAgICAgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShzaXRlLndpdGhKSVRU
eXBlKEV4aXRGcm9tREZHKSkKKyAgICAgICAgICAgICAgICB8fCBoYXNFeGl0U2l0ZShzaXRlLndp
dGhKSVRUeXBlKEV4aXRGcm9tRlRMKSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZnJl
cXVlbnRFeGl0U2l0ZXMuZmluZChzaXRlKSAhPSBtX2ZyZXF1ZW50RXhpdFNpdGVzLmVuZCgpOwog
ICAgIH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2lu
ZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2lu
ZC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
RXhpdEtpbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotZW51bSBFeGl0S2luZCB7CitlbnVtIEV4aXRLaW5kIDogdWludDhfdCB7CiAgICAg
RXhpdEtpbmRVbnNldCwKICAgICBCYWRUeXBlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhIHR5cGUg
cHJlZGljdGlvbiB3YXMgd3JvbmcuCiAgICAgQmFkRnVuY3Rpb24sIC8vIFdlIGV4aXRlZCBiZWNh
dXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBmdW5jdGlvbiB3
ZSB3b3VsZCBzZWUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdGlu
Z0pJVFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
RXhpdGluZ0pJVFR5cGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9FeGl0aW5nSklUVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBF
eGl0aW5nSklUVHlwZV9oCisjZGVmaW5lIEV4aXRpbmdKSVRUeXBlX2gKKworI2luY2x1ZGUgIkpJ
VENvZGUuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gRXhpdGluZ0pJVFR5cGUgOiB1aW50
OF90IHsKKyAgICBFeGl0RnJvbUFueXRoaW5nLAorICAgIEV4aXRGcm9tREZHLAorICAgIEV4aXRG
cm9tRlRMCit9OworCitpbmxpbmUgRXhpdGluZ0pJVFR5cGUgZXhpdGluZ0pJVFR5cGVGb3IoSklU
Q29kZTo6SklUVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgSklU
Q29kZTo6REZHSklUOgorICAgICAgICByZXR1cm4gRXhpdEZyb21ERkc7CisgICAgY2FzZSBKSVRD
b2RlOjpGVExKSVQ6CisgICAgICAgIHJldHVybiBFeGl0RnJvbUZUTDsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gRXhp
dEZyb21Bbnl0aGluZzsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYg
Ly8gRXhpdGluZ0pJVFR5cGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvR2V0QnlJZFN0YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM0LDYgKzM0LDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitib29sIEdl
dEJ5SWRTdGF0dXM6Omhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tl
ciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0
aW5nSklUVHlwZSBqaXRUeXBlKQoreworICAgIHJldHVybiBwcm9maWxlZEJsb2NrLT5oYXNFeGl0
U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRDYWNo
ZSwgaml0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tl
ciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlV2F0Y2hwb2lu
dCwgaml0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tl
ciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENh
Y2hlLCBqaXRUeXBlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9j
a2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkV2Vha0NvbnN0YW50
Q2FjaGVXYXRjaHBvaW50LCBqaXRUeXBlKSk7Cit9CisKIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0
YXR1czo6Y29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVk
IGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICBVTlVTRURfUEFSQU0ocHJv
ZmlsZWRCbG9jayk7CkBAIC0xMjAsMTMgKzEyOCwyNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRT
dGF0dXM6OmNvbXB1dGVGb3IoCiB7CiAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIocHJv
ZmlsZWRCbG9jay0+bV9sb2NrKTsKICAgICAKLSAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9j
ayk7Ci0gICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwotICAgIFVOVVNFRF9QQVJBTSh1
aWQpOworICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKAorICAg
ICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIG1hcC5nZXQoQ29kZU9yaWdpbihieXRlY29kZUlu
ZGV4KSksIHVpZCk7CisgICAgCisgICAgaWYgKCFyZXN1bHQudGFrZXNTbG93UGF0aCgpCisgICAg
ICAgICYmIChoYXNFeGl0U2l0ZShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgp
CisgICAgICAgICAgICB8fCBwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShieXRl
Y29kZUluZGV4KSkpCisgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgs
IHRydWUpOworCisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxM
SW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CisgICAgCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1
YkluZm8oCisgICAgY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogcHJvZmls
ZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLAorICAgIFN0cmluZ0ltcGwqIHVp
ZCkKK3sKICNpZiBFTkFCTEUoSklUKQotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9
IG1hcC5nZXQoQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSk7CiAgICAgaWYgKCFzdHViSW5mbyB8
fCAhc3R1YkluZm8tPnNlZW4pCi0gICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50KHByb2Zp
bGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CisgICAgICAgIHJldHVybiBHZXRCeUlkU3Rh
dHVzKE5vSW5mb3JtYXRpb24pOwogICAgIAogICAgIGlmIChzdHViSW5mby0+cmVzZXRCeUdDKQog
ICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCB0cnVlKTsKQEAgLTE1
MiwxNiArMTc0LDEyIEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigK
ICAgICAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE1ha2VzQ2FsbHMsIHRydWUpOwogICAg
IH0KICAgICAKLSAgICAvLyBOZXh0IGNoZWNrIGlmIGl0IHRha2VzIHNsb3cgY2FzZSwgaW4gd2hp
Y2ggY2FzZSB3ZSB3YW50IHRvIGJlIGtpbmQgb2YgY2FyZWZ1bC4KLSAgICBpZiAocHJvZmlsZWRC
bG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpCi0gICAgICAgIHJldHVy
biBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOwotICAgIAogICAgIC8vIEZpbmFs
bHkgZmlndXJlIG91dCBpZiB3ZSBjYW4gZGVyaXZlIGFuIGFjY2VzcyBzdHJhdGVneS4KICAgICBH
ZXRCeUlkU3RhdHVzIHJlc3VsdDsKICAgICByZXN1bHQubV93YXNTZWVuSW5KSVQgPSB0cnVlOyAv
LyBUaGlzIGlzIGludGVyZXN0aW5nIGZvciBieXRlY29kZSBkdW1waW5nIG9ubHkuCiAgICAgc3dp
dGNoIChzdHViSW5mby0+YWNjZXNzVHlwZSkgewogICAgIGNhc2UgYWNjZXNzX3Vuc2V0OgotICAg
ICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4
LCB1aWQpOworICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uKTsKICAg
ICAgICAgCiAgICAgY2FzZSBhY2Nlc3NfZ2V0X2J5X2lkX3NlbGY6IHsKICAgICAgICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBzdHViSW5mby0+dS5nZXRCeUlkU2VsZi5iYXNlT2JqZWN0U3RydWN0
dXJlLmdldCgpOwpAQCAtMjYyLDExICsyODAsNDAgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3Rh
dHVzOjpjb21wdXRlRm9yKAogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiAjZWxzZSAvLyBFTkFC
TEUoSklUKQotICAgIFVOVVNFRF9QQVJBTShtYXApOworICAgIFVOVVNFRF9QQVJBTShwcm9maWxl
ZEJsb2NrKTsKKyAgICBVTlVTRURfUEFSQU0oc3R1YkluZm8pOworICAgIFVOVVNFRF9QQVJBTSh1
aWQpOwogICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24sIGZhbHNlKTsKICNl
bmRpZiAvLyBFTkFCTEUoSklUKQogfQogCitHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNv
bXB1dGVGb3IoCisgICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Js
b2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVNYXAsCisgICAgU3R1YkluZm9NYXAmIGRmZ01hcCwg
Q29kZU9yaWdpbiBjb2RlT3JpZ2luLCBTdHJpbmdJbXBsKiB1aWQpCit7CisgICAgaWYgKGRmZ0Js
b2NrKSB7CisgICAgICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0OworICAgICAgICB7CisgICAgICAg
ICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihkZmdCbG9jay0+bV9sb2NrKTsKKyAgICAg
ICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbyhsb2NrZXIsIGRmZ0Jsb2NrLCBkZmdN
YXAuZ2V0KGNvZGVPcmlnaW4pLCB1aWQpOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChy
ZXN1bHQudGFrZXNTbG93UGF0aCgpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAK
KyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIocHJvZmls
ZWRCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIGlmIChoYXNFeGl0U2l0ZShsb2NrZXIsIHBy
b2ZpbGVkQmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgRXhpdEZyb21GVEwpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAocmVzdWx0LmlzU2V0KCkpCisgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHJldHVybiBjb21wdXRlRm9yKHByb2Zp
bGVkQmxvY2ssIGJhc2VsaW5lTWFwLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIHVpZCk7Cit9
CisKIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBTdHJpbmdJbXBsKiB1aWQpCiB7CiAgICAgLy8gRm9yIG5vdyB3ZSBv
bmx5IGhhbmRsZSB0aGUgc3VwZXIgc2ltcGxlIHNlbGYgYWNjZXNzIGNhc2UuIFdlIGNvdWxkIGhh
bmRsZSB0aGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5
SWRTdGF0dXMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiAr
MjYsOSBAQAogI2lmbmRlZiBHZXRCeUlkU3RhdHVzX2gKICNkZWZpbmUgR2V0QnlJZFN0YXR1c19o
CiAKKyNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCisjaW5jbHVkZSAiQ29uY3VycmVudEpJVExvY2su
aCIKKyNpbmNsdWRlICJFeGl0aW5nSklUVHlwZS5oIgogI2luY2x1ZGUgIkludGVuZGVkU3RydWN0
dXJlQ2hhaW4uaCIKICNpbmNsdWRlICJQcm9wZXJ0eU9mZnNldC5oIgogI2luY2x1ZGUgIlN0cnVj
dHVyZVNldC5oIgpAQCAtNzQsNiArNzcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEdldEJ5SWRT
dGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqLCBTdHViSW5mb01hcCYsIHVuc2lnbmVkIGJ5dGVj
b2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29t
cHV0ZUZvcihWTSYsIFN0cnVjdHVyZSosIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgCisgICAgc3Rh
dGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIENv
ZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwgU3R1YkluZm9NYXAm
IGRmZ01hcCwgQ29kZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlkKTsKKyAgICAKICAgICBTdGF0ZSBz
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICAKICAgICBib29sIGlzU2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb0luZm9ybWF0aW9uOyB9CkBAIC05MCw2ICs5NSw4
IEBAIHB1YmxpYzoKICAgICBib29sIHdhc1NlZW5JbkpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fd2Fz
U2VlbkluSklUOyB9CiAgICAgCiBwcml2YXRlOgorICAgIHN0YXRpYyBib29sIGhhc0V4aXRTaXRl
KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29k
ZUluZGV4LCBFeGl0aW5nSklUVHlwZSA9IEV4aXRGcm9tQW55dGhpbmcpOworICAgIHN0YXRpYyBH
ZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50SklUTG9ja2Vy
JiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8qLCBTdHJpbmdJbXBsKiB1aWQpOwogICAg
IHN0YXRpYyB2b2lkIGNvbXB1dGVGb3JDaGFpbihHZXRCeUlkU3RhdHVzJiByZXN1bHQsIENvZGVC
bG9jayosIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0
ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBs
KiB1aWQpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2Zp
bGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dh
dGNocG9pbnQuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00OSw3ICs0OSw5IEBAIHZvaWQgUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmlu
Z1dhdGNocG8KICAgICAKICAgICBpZiAoc291cmNlQmFzZWxpbmVDb2RlQmxvY2spIHsKICAgICAg
ICAgc291cmNlQmFzZWxpbmVDb2RlQmxvY2stPmFkZEZyZXF1ZW50RXhpdFNpdGUoCi0gICAgICAg
ICAgICBERkc6OkZyZXF1ZW50RXhpdFNpdGUobV9jb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIG1f
ZXhpdEtpbmQpKTsKKyAgICAgICAgICAgIERGRzo6RnJlcXVlbnRFeGl0U2l0ZSgKKyAgICAgICAg
ICAgICAgICBtX2NvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgbV9leGl0S2luZCwKKyAgICAgICAg
ICAgICAgICBleGl0aW5nSklUVHlwZUZvcihtX2NvZGVCbG9jay0+aml0VHlwZSgpKSkpOwogICAg
IH0KICAgICAKICAgICBtX2NvZGVCbG9jay0+amV0dGlzb24oQ291bnRSZW9wdGltaXphdGlvbik7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0
dXMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvUHV0QnlJZFN0YXR1cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDYgKzM1
LDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitib29sIFB1dEJ5SWRTdGF0dXM6Omhhc0V4aXRT
aXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxl
ZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSBleGl0VHlwZSkK
K3sKKyAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZy
ZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGUsIGV4aXRUeXBlKSkKKyAgICAg
ICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhp
dFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50LCBleGl0VHlwZSkpCisgICAg
ICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4
aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlLCBleGl0VHlwZSkpCisg
ICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVu
dEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2ludCwg
ZXhpdFR5cGUpKTsKK30KKwogUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRnJv
bUxMSW50KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwg
U3RyaW5nSW1wbCogdWlkKQogewogICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKQEAg
LTg5LDEzICs5NywyNyBAQCBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3Io
CiAgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwogICAgIFVOVVNFRF9QQVJBTSh1aWQp
OwogI2lmIEVOQUJMRShKSVQpCi0gICAgaWYgKHByb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNs
b3dDYXNlKGJ5dGVjb2RlSW5kZXgpKQorICAgIGlmIChwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rh
a2VTbG93Q2FzZShieXRlY29kZUluZGV4KQorICAgICAgICB8fCBoYXNFeGl0U2l0ZShsb2NrZXIs
IHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpKQogICAgICAgICByZXR1cm4gUHV0QnlJZFN0
YXR1cyhUYWtlc1Nsb3dQYXRoLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsKICAgICAKICAgICBT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtYXAuZ2V0KENvZGVPcmlnaW4oYnl0ZWNvZGVJ
bmRleCkpOwotICAgIGlmICghc3R1YkluZm8gfHwgIXN0dWJJbmZvLT5zZWVuKQorICAgIFB1dEJ5
SWRTdGF0dXMgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKGxvY2tlciwgcHJvZmlsZWRCbG9j
aywgc3R1YkluZm8sIHVpZCk7CisgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBjb21w
dXRlRnJvbUxMSW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CiAgICAgCisg
ICAgcmV0dXJuIHJlc3VsdDsKKyNlbHNlIC8vIEVOQUJMRShKSVQpCisgICAgVU5VU0VEX1BBUkFN
KG1hcCk7CisgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgMCwgMCwgMCwg
aW52YWxpZE9mZnNldCk7CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKK30KKworUHV0QnlJZFN0YXR1
cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvLCBTdHJpbmdJbXBsKiB1aWQpCit7CisgICAgaWYgKCFzdHViSW5mbyB8fCAhc3R1YkluZm8t
PnNlZW4pCisgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKCk7CisgICAgCiAgICAgaWYgKHN0
dWJJbmZvLT5yZXNldEJ5R0MpCiAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xv
d1BhdGgsIDAsIDAsIDAsIGludmFsaWRPZmZzZXQpOwogCkBAIC0xNDIsMTAgKzE2NCwyOCBAQCBQ
dXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCiAgICAgICAgIC8vIHdlIGNv
dWxkIGRvIGFib3V0IGl0LgogICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQ
YXRoLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsKICAgICB9Ci0jZWxzZSAvLyBFTkFCTEUoSklU
KQotICAgIFVOVVNFRF9QQVJBTShtYXApOwotICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKE5vSW5m
b3JtYXRpb24sIDAsIDAsIDAsIGludmFsaWRPZmZzZXQpOwotI2VuZGlmIC8vIEVOQUJMRShKSVQp
Cit9CisKK1B1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sq
IGJhc2VsaW5lQmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGlu
ZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBTdHJpbmdJ
bXBsKiB1aWQpCit7CisgICAgaWYgKGRmZ0Jsb2NrKSB7CisgICAgICAgIHsKKyAgICAgICAgICAg
IENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGJhc2VsaW5lQmxvY2stPm1fbG9jayk7CisgICAg
ICAgICAgICBpZiAoaGFzRXhpdFNpdGUobG9ja2VyLCBiYXNlbGluZUJsb2NrLCBjb2RlT3JpZ2lu
LmJ5dGVjb2RlSW5kZXgsIEV4aXRGcm9tRlRMKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUHV0
QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAg
ICAgIFB1dEJ5SWRTdGF0dXMgcmVzdWx0OworICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJy
ZW50SklUTG9ja2VyIGxvY2tlcihkZmdCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIHJlc3Vs
dCA9IGNvbXB1dGVGb3JTdHViSW5mbyhsb2NrZXIsIGRmZ0Jsb2NrLCBkZmdNYXAuZ2V0KGNvZGVP
cmlnaW4pLCB1aWQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAocmVzdWx0Lmlz
U2V0KCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICByZXR1
cm4gY29tcHV0ZUZvcihiYXNlbGluZUJsb2NrLCBiYXNlbGluZU1hcCwgY29kZU9yaWdpbi5ieXRl
Y29kZUluZGV4LCB1aWQpOwogfQogCiBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1
dGVGb3IoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgU3RyaW5nSW1wbCogdWlkLCBib29sIGlzRGlyZWN0KQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCShyZXZpc2lvbiAxNjI5
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFB1dEJ5SWRTdGF0dXNfaAog
I2RlZmluZSBQdXRCeUlkU3RhdHVzX2gKIAorI2luY2x1ZGUgIkV4aXRpbmdKSVRUeXBlLmgiCiAj
aW5jbHVkZSAiSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oIgogI2luY2x1ZGUgIlByb3BlcnR5T2Zm
c2V0LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKQEAgLTk0LDYgKzk1LDggQEAg
cHVibGljOgogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiwg
U3R1YkluZm9NYXAmLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQpOwog
ICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoVk0mLCBKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSosIFN0cmluZ0ltcGwqIHVpZCwgYm9vbCBpc0RpcmVjdCk7CiAgICAgCisgICAg
c3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ss
IENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwgU3R1YkluZm9N
YXAmIGRmZ01hcCwgQ29kZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlkKTsKKyAgICAKICAgICBTdGF0
ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICAKICAgICBib29sIGlzU2V0
KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb0luZm9ybWF0aW9uOyB9CkBAIC0xMDgsNiAr
MTExLDggQEAgcHVibGljOgogICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fb2Zmc2V0OyB9CiAgICAgCiBwcml2YXRlOgorICAgIHN0YXRpYyBib29sIGhhc0V4aXRT
aXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRl
Y29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSA9IEV4aXRGcm9tQW55dGhpbmcpOworICAgIHN0YXRp
YyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50SklUTG9j
a2VyJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8qLCBTdHJpbmdJbXBsKiB1aWQpOwog
ICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiwgdW5z
aWduZWQgYnl0ZWNvZGVJbmRleCwgU3RyaW5nSW1wbCogdWlkKTsKICAgICAKICAgICBTdGF0ZSBt
X3N0YXRlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNl
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1
cmVTZXQuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIHB1Ymxp
YzoKICAgICAKICAgICBTdHJ1Y3R1cmVTZXQoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewor
ICAgICAgICBBU1NFUlQoc3RydWN0dXJlKTsKICAgICAgICAgbV9zdHJ1Y3R1cmVzLmFwcGVuZChz
dHJ1Y3R1cmUpOwogICAgIH0KICAgICAKQEAgLTU1LDYgKzU2LDcgQEAgcHVibGljOgogICAgIAog
ICAgIHZvaWQgYWRkKFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKKyAgICAgICAgQVNTRVJU
KHN0cnVjdHVyZSk7CiAgICAgICAgIEFTU0VSVCghY29udGFpbnMoc3RydWN0dXJlKSk7CiAgICAg
ICAgIG1fc3RydWN0dXJlcy5hcHBlbmQoc3RydWN0dXJlKTsKICAgICB9CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVy
ZVN0dWJJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIxNiw3
ICsyMTYsNiBAQCBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm8gewogCiAgICAgc3RydWN0IHsKICAg
ICAgICAgaW50OF90IHJlZ2lzdGVyc0ZsdXNoZWQ7Ci0gICAgICAgIGludDhfdCBjYWxsRnJhbWVS
ZWdpc3RlcjsKICAgICAgICAgaW50OF90IGJhc2VHUFI7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkK
ICAgICAgICAgaW50OF90IHZhbHVlVGFnR1BSOwpAQCAtMjkwLDcgKzI4OSw3IEBAIGlubGluZSBD
b2RlT3JpZ2luIGdldFN0cnVjdHVyZVN0dWJJbmZvQ28KICAgICByZXR1cm4gc3RydWN0dXJlU3R1
YkluZm8uY29kZU9yaWdpbjsKIH0KIAotdHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIFN0cnVj
dHVyZVN0dWJJbmZvKj4gU3R1YkluZm9NYXA7Cit0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwg
U3RydWN0dXJlU3R1YkluZm8qLCBDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoPiBTdHViSW5mb01h
cDsKIAogI2Vsc2UKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVl
UmVjb3ZlcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VmFsdWVSZWNvdmVyeS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsNiArMjMw
LDI3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFZpcnR1YWxSZWdpc3RlcihtX3NvdXJjZS52
aXJ0dWFsUmVnKTsKICAgICB9CiAgICAgCisgICAgVmFsdWVSZWNvdmVyeSB3aXRoTG9jYWxzT2Zm
c2V0KGludCBvZmZzZXQpIGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKG1fdGVjaG5pcXVl
KSB7CisgICAgICAgIGNhc2UgRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIEludDMy
RGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIERvdWJsZURpc3BsYWNlZEluSlNTdGFj
azoKKyAgICAgICAgY2FzZSBDZWxsRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIEJv
b2xlYW5EaXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgSW50NTJEaXNwbGFjZWRJbkpT
U3RhY2s6CisgICAgICAgIGNhc2UgU3RyaWN0SW50NTJEaXNwbGFjZWRJbkpTU3RhY2s6IHsKKyAg
ICAgICAgICAgIFZhbHVlUmVjb3ZlcnkgcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0Lm1fdGVj
aG5pcXVlID0gbV90ZWNobmlxdWU7CisgICAgICAgICAgICByZXN1bHQubV9zb3VyY2UudmlydHVh
bFJlZyA9IG1fc291cmNlLnZpcnR1YWxSZWcgKyBvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKICAgICBKU1ZhbHVl
IGNvbnN0YW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3RlY2huaXF1ZSA9PSBD
b25zdGFudCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJl
Z2lzdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Zp
cnR1YWxSZWdpc3Rlci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1
LDcgQEAgcHVibGljOgogICAgIGludCB0b0FyZ3VtZW50KCkgY29uc3QgeyBBU1NFUlQoaXNBcmd1
bWVudCgpKTsgcmV0dXJuIG9wZXJhbmRUb0FyZ3VtZW50KG1fdmlydHVhbFJlZ2lzdGVyKTsgfQog
ICAgIGludCB0b0NvbnN0YW50SW5kZXgoKSBjb25zdCB7IEFTU0VSVChpc0NvbnN0YW50KCkpOyBy
ZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXIgLSBzX2ZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4OyB9
CiAgICAgaW50IG9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVyOyB9Cisg
ICAgaW50IG9mZnNldEluQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZpcnR1YWxSZWdpc3RlciAq
IHNpemVvZihSZWdpc3Rlcik7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaXJ0dWFs
UmVnaXN0ZXIgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVyID09IG90aGVy
Lm1fdmlydHVhbFJlZ2lzdGVyOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFZpcnR1YWxS
ZWdpc3RlciBvdGhlcikgY29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXIgIT0gb3RoZXIu
bV92aXJ0dWFsUmVnaXN0ZXI7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKLSNpbmNsdWRlICJW
TUVudHJ5U2NvcGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTMxLDcgKzEzMSwxMCBAQCBBcnJheU1vZGUgQXJyYXlNb2RlOjpmcm9tT2JzZXJ2ZWQoY29uc3Qg
CiAgICAgfQogfQogCi1BcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoU3BlY3VsYXRlZFR5cGUg
YmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlLCBOb2RlRmxh
Z3MgZmxhZ3MpIGNvbnN0CitBcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoCisgICAgR3JhcGgm
IGdyYXBoLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sCisgICAgU3BlY3VsYXRlZFR5cGUgYmFzZSwg
U3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlLAorICAgIE5vZGVGbGFn
cyBmbGFncykgY29uc3QKIHsKICAgICBpZiAoIWJhc2UgfHwgIWluZGV4KSB7CiAgICAgICAgIC8v
IEl0IGNhbiBiZSB0aGF0IHdlIGhhZCBhIGxlZ2l0aW1hdGUgYXJyYXlNb2RlIGJ1dCBubyBpbmNv
bWluZyBwcmVkaWN0aW9ucy4gVGhhdCdsbApAQCAtMTg2LDcgKzE4OSw3IEBAIEFycmF5TW9kZSBB
cnJheU1vZGU6OnJlZmluZShTcGVjdWxhdGVkVHkKICAgICAgICAgICAgIHJldHVybiB3aXRoQ29u
dmVyc2lvbihBcnJheTo6UmFnZUNvbnZlcnQpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAg
ICAgIAotICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6CisgICAgY2FzZSBB
cnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczogewogICAgICAgICBiYXNlICY9IH5TcGVjT3Ro
ZXI7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNTdHJpbmdTcGVjdWxhdGlvbihiYXNlKSkKQEAg
LTE5NSwzNCArMTk4LDQxIEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShTcGVjdWxhdGVk
VHkKICAgICAgICAgaWYgKGlzQXJndW1lbnRzU3BlY3VsYXRpb24oYmFzZSkpCiAgICAgICAgICAg
ICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkFyZ3VtZW50cyk7CiAgICAgICAgIAorICAgICAgICBB
cnJheU1vZGUgcmVzdWx0OworICAgICAgICBpZiAoZ3JhcGguaGFzRXhpdFNpdGUoY29kZU9yaWdp
biwgT3V0T2ZCb3VuZHMpKQorICAgICAgICAgICAgcmVzdWx0ID0gd2l0aFNwZWN1bGF0aW9uKEFy
cmF5OjpPdXRPZkJvdW5kcyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9ICp0
aGlzOworICAgICAgICAKICAgICAgICAgaWYgKGlzSW50OEFycmF5U3BlY3VsYXRpb24oYmFzZSkp
Ci0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkludDhBcnJheSk7CisgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpJbnQ4QXJyYXkpOwogICAgICAgICAK
ICAgICAgICAgaWYgKGlzSW50MTZBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAg
cmV0dXJuIHdpdGhUeXBlKEFycmF5OjpJbnQxNkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQud2l0aFR5cGUoQXJyYXk6OkludDE2QXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYg
KGlzSW50MzJBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhU
eXBlKEFycmF5OjpJbnQzMkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5
cGUoQXJyYXk6OkludDMyQXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWludDhBcnJh
eVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpV
aW50OEFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6OlVp
bnQ4QXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWludDhDbGFtcGVkQXJyYXlTcGVj
dWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6VWludDhD
bGFtcGVkQXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6
VWludDhDbGFtcGVkQXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWludDE2QXJyYXlT
cGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6VWlu
dDE2QXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6VWlu
dDE2QXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWludDMyQXJyYXlTcGVjdWxhdGlv
bihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6VWludDMyQXJyYXkp
OworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6VWludDMyQXJyYXkp
OwogICAgICAgICAKICAgICAgICAgaWYgKGlzRmxvYXQzMkFycmF5U3BlY3VsYXRpb24oYmFzZSkp
Ci0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkZsb2F0MzJBcnJheSk7CisgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpGbG9hdDMyQXJyYXkpOwogICAg
ICAgICAKICAgICAgICAgaWYgKGlzRmxvYXQ2NEFycmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAg
ICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkZsb2F0NjRBcnJheSk7CisgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpGbG9hdDY0QXJyYXkpOwogCiAgICAgICAg
IHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkdlbmVyaWMpOworICAgIH0KIAogICAgIGRlZmF1bHQ6
CiAgICAgICAgIHJldHVybiAqdGhpczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQXJyYXlNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBcnJheU1vZGUuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheU1vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjExLDcgKzIxMSw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIEFycmF5TW9kZSh0eXBlLCBhcnJheUNsYXNzKCksIHNwZWN1
bGF0aW9uKCksIGNvbnZlcnNpb24pOwogICAgIH0KICAgICAKLSAgICBBcnJheU1vZGUgcmVmaW5l
KFNwZWN1bGF0ZWRUeXBlIGJhc2UsIFNwZWN1bGF0ZWRUeXBlIGluZGV4LCBTcGVjdWxhdGVkVHlw
ZSB2YWx1ZSA9IFNwZWNOb25lLCBOb2RlRmxhZ3MgPSAwKSBjb25zdDsKKyAgICBBcnJheU1vZGUg
cmVmaW5lKEdyYXBoJiwgQ29kZU9yaWdpbiwgU3BlY3VsYXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRl
ZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlID0gU3BlY05vbmUsIE5vZGVGbGFncyA9
IDApIGNvbnN0OwogICAgIAogICAgIGJvb2wgYWxyZWFkeUNoZWNrZWQoR3JhcGgmLCBOb2RlKiwg
QWJzdHJhY3RWYWx1ZSYpIGNvbnN0OwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlByZWNpc2VKdW1wVGFyZ2V0cy5oIgogI2luY2x1ZGUgIlB1dEJ5SWRTdGF0dXMuaCIKKyNpbmNs
dWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlN0cmluZ0NvbnN0cnVjdG9yLmgiCiAj
aW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBA
IC0xNjAsNyArMTYxLDggQEAgcHJpdmF0ZToKICAgICBib29sIGhhbmRsZU1pbk1heChpbnQgcmVz
dWx0T3BlcmFuZCwgTm9kZVR5cGUgb3AsIGludCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzKTsKICAgICAKICAgICAvLyBIYW5kbGUgY2FsbHMuIFRoaXMgcmVz
b2x2ZXMgaXNzdWVzIHN1cnJvdW5kaW5nIGlubGluaW5nIGFuZCBpbnRyaW5zaWNzLgotICAgIHZv
aWQgaGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBOb2RlVHlwZSBv
cCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CisgICAgdm9pZCBoYW5kbGVDYWxsKGludCByZXN1
bHQsIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCB1bnNpZ25lZCBpbnN0cnVj
dGlvblNpemUsIGludCBjYWxsZWUsIGludCBhcmdDb3VudCwgaW50IHJlZ2lzdGVyT2Zmc2V0KTsK
KyAgICB2b2lkIGhhbmRsZUNhbGwoSW5zdHJ1Y3Rpb24qIHBjLCBOb2RlVHlwZSBvcCwgQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCBraW5kKTsKICAgICB2b2lkIGVtaXRGdW5jdGlvbkNoZWNrcyhjb25z
dCBDYWxsTGlua1N0YXR1cyYsIE5vZGUqIGNhbGxUYXJnZXQsIGludCByZWdpc3Rlck9mZnNldCwg
Q29kZVNwZWNpYWxpemF0aW9uS2luZCk7CiAgICAgdm9pZCBlbWl0QXJndW1lbnRQaGFudG9tcyhp
bnQgcmVnaXN0ZXJPZmZzZXQsIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCk7CiAgICAgLy8gSGFuZGxlIGlubGluaW5nLiBSZXR1cm4gdHJ1ZSBp
ZiBpdCBzdWNjZWVkZWQsIGZhbHNlIGlmIHdlIG5lZWQgdG8gcGxhbnQgYSBjYWxsLgpAQCAtNzcz
LDIyICs3NzUsMjEgQEAgcHJpdmF0ZToKICAgICAgICAgbV9udW1QYXNzZWRWYXJBcmdzKys7CiAg
ICAgfQogICAgIAotICAgIE5vZGUqIGFkZENhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgTm9kZVR5cGUgb3ApCisgICAgTm9kZSogYWRkQ2FsbChpbnQgcmVzdWx0LCBOb2RlVHlw
ZSBvcCwgaW50IGNhbGxlZSwgaW50IGFyZ0NvdW50LCBpbnQgcmVnaXN0ZXJPZmZzZXQpCiAgICAg
ewogICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwog
ICAgICAgICAKLSAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSkpOwotICAgICAgICBpbnQgYXJnQ291bnQgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgICAgICBpZiAoSlNTdGFjazo6VGhp
c0FyZ3VtZW50ICsgKHVuc2lnbmVkKWFyZ0NvdW50ID4gbV9wYXJhbWV0ZXJTbG90cykKLSAgICAg
ICAgICAgIG1fcGFyYW1ldGVyU2xvdHMgPSBKU1N0YWNrOjpUaGlzQXJndW1lbnQgKyBhcmdDb3Vu
dDsKKyAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3RlcihjYWxsZWUpKSk7
CisgICAgICAgIHNpemVfdCBwYXJhbWV0ZXJTbG90cyA9IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRl
clNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSArIGFyZ0NvdW50OworICAgICAg
ICBpZiAocGFyYW1ldGVyU2xvdHMgPiBtX3BhcmFtZXRlclNsb3RzKQorICAgICAgICAgICAgbV9w
YXJhbWV0ZXJTbG90cyA9IHBhcmFtZXRlclNsb3RzOwogCi0gICAgICAgIGludCByZWdpc3Rlck9m
ZnNldCA9IC1jdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwogICAgICAgICBpbnQgZHVt
bXlUaGlzQXJndW1lbnQgPSBvcCA9PSBDYWxsID8gMCA6IDE7CiAgICAgICAgIGZvciAoaW50IGkg
PSAwICsgZHVtbXlUaGlzQXJndW1lbnQ7IGkgPCBhcmdDb3VudDsgKytpKQogICAgICAgICAgICAg
YWRkVmFyQXJnQ2hpbGQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGksIHJlZ2lzdGVy
T2Zmc2V0KSkpOwogCiAgICAgICAgIE5vZGUqIGNhbGwgPSBhZGRUb0dyYXBoKE5vZGU6OlZhckFy
Zywgb3AsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pKTsKLSAgICAgICAgc2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgY2FsbCk7CisgICAg
ICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0KSwgY2FsbCk7CiAgICAgICAgIHJldHVybiBj
YWxsOwogICAgIH0KICAgICAKQEAgLTk5Myw5ICs5OTQsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBU
aGUgbnVtYmVyIG9mIGxvY2FscyAodmFycyArIHRlbXBvcmFyaWVzKSB1c2VkIGluIHRoZSBmdW5j
dGlvbi4KICAgICB1bnNpZ25lZCBtX251bUxvY2FsczsKICAgICAvLyBUaGUgbnVtYmVyIG9mIHNs
b3RzIChpbiB1bml0cyBvZiBzaXplb2YoUmVnaXN0ZXIpKSB0aGF0IHdlIG5lZWQgdG8KLSAgICAv
LyBwcmVhbGxvY2F0ZSBmb3IgY2FsbHMgZW1hbmF0aW5nIGZyb20gdGhpcyBmcmFtZS4gVGhpcyBp
bmNsdWRlcyB0aGUKLSAgICAvLyBzaXplIG9mIHRoZSBDYWxsRnJhbWUsIG9ubHkgaWYgdGhpcyBp
cyBub3QgYSBsZWFmIGZ1bmN0aW9uLiAgKEkuZS4KLSAgICAvLyB0aGlzIGlzIDAgaWYgYW5kIG9u
bHkgaWYgdGhpcyBmdW5jdGlvbiBpcyBhIGxlYWYuKQorICAgIC8vIHByZWFsbG9jYXRlIGZvciBh
cmd1bWVudHMgdG8gb3V0Z29pbmcgY2FsbHMgZnJvbSB0aGlzIGZyYW1lLiBUaGlzCisgICAgLy8g
bnVtYmVyIGluY2x1ZGVzIHRoZSBDYWxsRnJhbWUgc2xvdHMgdGhhdCB3ZSBpbml0aWFsaXplIGZv
ciB0aGUgY2FsbGVlCisgICAgLy8gKGJ1dCBub3QgdGhlIGNhbGxlZS1pbml0aWFsaXplZCBDYWxs
ZXJGcmFtZSBhbmQgUmV0dXJuUEMgc2xvdHMpLgorICAgIC8vIFRoaXMgbnVtYmVyIGlzIDAgaWYg
YW5kIG9ubHkgaWYgdGhpcyBmdW5jdGlvbiBpcyBhIGxlYWYuCiAgICAgdW5zaWduZWQgbV9wYXJh
bWV0ZXJTbG90czsKICAgICAvLyBUaGUgbnVtYmVyIG9mIHZhciBhcmdzIHBhc3NlZCB0byB0aGUg
bmV4dCB2YXIgYXJnIG5vZGUuCiAgICAgdW5zaWduZWQgbV9udW1QYXNzZWRWYXJBcmdzOwpAQCAt
MTEzNCw2ICsxMTM2LDEwIEBAIHByaXZhdGU6CiAgICAgLy8gd29yay1hcm91bmQgZm9yIHRoZSBm
YWN0IHRoYXQgSlNWYWx1ZU1hcCBjYW4ndCBoYW5kbGUgImVtcHR5IiB2YWx1ZXMuCiAgICAgdW5z
aWduZWQgbV9lbXB0eUpTVmFsdWVJbmRleDsKICAgICAKKyAgICBDb2RlQmxvY2sqIG1fZGZnQ29k
ZUJsb2NrOworICAgIENhbGxMaW5rU3RhdHVzOjpDb250ZXh0TWFwIG1fY2FsbENvbnRleHRNYXA7
CisgICAgU3R1YkluZm9NYXAgbV9kZmdTdHViSW5mb3M7CisgICAgCiAgICAgSW5zdHJ1Y3Rpb24q
IG1fY3VycmVudEluc3RydWN0aW9uOwogfTsKIApAQCAtMTE0NSw0MyArMTE1MSw0NSBAQCBwcml2
YXRlOgogICAgIG1fY3VycmVudEluZGV4ICs9IE9QQ09ERV9MRU5HVEgobmFtZSk7IFwKICAgICBy
ZXR1cm4gc2hvdWxkQ29udGludWVQYXJzaW5nCiAKLQotdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlQ2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBOb2RlVHlwZSBvcCwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQordm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2Fs
bChJbnN0cnVjdGlvbiogcGMsIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtp
bmQpCiB7CiAgICAgQVNTRVJUKE9QQ09ERV9MRU5HVEgob3BfY2FsbCkgPT0gT1BDT0RFX0xFTkdU
SChvcF9jb25zdHJ1Y3QpKTsKKyAgICBoYW5kbGVDYWxsKAorICAgICAgICBwY1sxXS51Lm9wZXJh
bmQsIG9wLCBraW5kLCBPUENPREVfTEVOR1RIKG9wX2NhbGwpLAorICAgICAgICBwY1syXS51Lm9w
ZXJhbmQsIHBjWzNdLnUub3BlcmFuZCwgLXBjWzRdLnUub3BlcmFuZCk7Cit9CisKK3ZvaWQgQnl0
ZUNvZGVQYXJzZXI6OmhhbmRsZUNhbGwoCisgICAgaW50IHJlc3VsdCwgTm9kZVR5cGUgb3AsIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgdW5zaWduZWQgaW5zdHJ1Y3Rpb25TaXplLAorICAg
IGludCBjYWxsZWUsIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgaW50IHJlZ2lzdGVy
T2Zmc2V0KQoreworICAgIEFTU0VSVChyZWdpc3Rlck9mZnNldCA8PSAwKTsKICAgICAKLSAgICBO
b2RlKiBjYWxsVGFyZ2V0ID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kKSk7CisgICAgTm9kZSogY2FsbFRhcmdldCA9IGdldChWaXJ0dWFsUmVnaXN0
ZXIoY2FsbGVlKSk7CiAgICAgCiAgICAgQ2FsbExpbmtTdGF0dXMgY2FsbExpbmtTdGF0dXM7CiAK
LSAgICBpZiAobV9ncmFwaC5pc0NvbnN0YW50KGNhbGxUYXJnZXQpKQotICAgICAgICBjYWxsTGlu
a1N0YXR1cyA9IENhbGxMaW5rU3RhdHVzKG1fZ3JhcGgudmFsdWVPZkpTQ29uc3RhbnQoY2FsbFRh
cmdldCkpLnNldElzUHJvdmVkKHRydWUpOwotICAgIGVsc2UgewotICAgICAgICBjYWxsTGlua1N0
YXR1cyA9IENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKG1faW5saW5lU3RhY2tUb3AtPm1fcHJv
ZmlsZWRCbG9jaywgbV9jdXJyZW50SW5kZXgpOwotICAgICAgICBjYWxsTGlua1N0YXR1cy5zZXRI
YXNCYWRGdW5jdGlvbkV4aXRTaXRlKG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFz
RXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZEZ1bmN0aW9uKSk7Ci0gICAgICAgIGNhbGxMaW5r
U3RhdHVzLnNldEhhc0JhZENhY2hlRXhpdFNpdGUoCi0gICAgICAgICAgICBtX2lubGluZVN0YWNr
VG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkK
LSAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNp
dGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCkpOwotICAgICAgICBjYWxsTGlu
a1N0YXR1cy5zZXRIYXNCYWRFeGVjdXRhYmxlRXhpdFNpdGUobV9pbmxpbmVTdGFja1RvcC0+bV9l
eGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkRXhlY3V0YWJsZSkpOwor
ICAgIGlmIChtX2dyYXBoLmlzQ29uc3RhbnQoY2FsbFRhcmdldCkpIHsKKyAgICAgICAgY2FsbExp
bmtTdGF0dXMgPSBDYWxsTGlua1N0YXR1cygKKyAgICAgICAgICAgIG1fZ3JhcGgudmFsdWVPZkpT
Q29uc3RhbnQoY2FsbFRhcmdldCkpLnNldElzUHJvdmVkKHRydWUpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGNhbGxMaW5rU3RhdHVzID0gQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3IoCisgICAg
ICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIGN1cnJlbnRDb2RlT3Jp
Z2luKCksIG1fY2FsbENvbnRleHRNYXApOwogICAgIH0KICAgICAKICAgICBpZiAoIWNhbGxMaW5r
U3RhdHVzLmNhbk9wdGltaXplKCkpIHsKICAgICAgICAgLy8gT2RkbHksIHRoaXMgY29uZmxhdGVz
IGNhbGxzIHRoYXQgaGF2ZW4ndCBleGVjdXRlZCB3aXRoIGNhbGxzIHRoYXQgYmVoYXZlZCBzdWZm
aWNpZW50bHkgcG9seW1vcnBoaWNhbGx5CiAgICAgICAgIC8vIHRoYXQgd2UgY2Fubm90IG9wdGlt
aXplIHRoZW0uCiAgICAgICAgIAotICAgICAgICBhZGRDYWxsKGN1cnJlbnRJbnN0cnVjdGlvbiwg
b3ApOworICAgICAgICBhZGRDYWxsKHJlc3VsdCwgb3AsIGNhbGxlZSwgYXJndW1lbnRDb3VudElu
Y2x1ZGluZ1RoaXMsIHJlZ2lzdGVyT2Zmc2V0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAKLSAgICBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kOwotICAgIGludCByZWdpc3Rlck9mZnNldCA9IC1jdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kOwotCi0gICAgaW50IHJlc3VsdE9wZXJhbmQgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwotICAgIHVuc2lnbmVkIG5leHRPZmZzZXQgPSBtX2N1cnJl
bnRJbmRleCArIE9QQ09ERV9MRU5HVEgob3BfY2FsbCk7CisgICAgdW5zaWduZWQgbmV4dE9mZnNl
dCA9IG1fY3VycmVudEluZGV4ICsgaW5zdHJ1Y3Rpb25TaXplOwogICAgIFNwZWN1bGF0ZWRUeXBl
IHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uKCk7CiAKICAgICBpZiAoSW50ZXJuYWxGdW5jdGlv
biogZnVuY3Rpb24gPSBjYWxsTGlua1N0YXR1cy5pbnRlcm5hbEZ1bmN0aW9uKCkpIHsKLSAgICAg
ICAgaWYgKGhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbihyZXN1bHRPcGVyYW5kLCBmdW5j
dGlvbiwgcmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBwcmVkaWN0
aW9uLCBraW5kKSkgeworICAgICAgICBpZiAoaGFuZGxlQ29uc3RhbnRJbnRlcm5hbEZ1bmN0aW9u
KHJlc3VsdCwgZnVuY3Rpb24sIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcywgcHJlZGljdGlvbiwga2luZCkpIHsKICAgICAgICAgICAgIC8vIFRoaXMgcGhhbnRvbWlu
ZyBoYXMgdG8gYmUgKmFmdGVyKiB0aGUgY29kZSBmb3IgdGhlIGludHJpbnNpYywgdG8gc2lnbmlm
eSB0aGF0CiAgICAgICAgICAgICAvLyB0aGUgaW5wdXRzIG11c3QgYmUga2VwdCBhbGl2ZSB3aGF0
ZXZlciBleGl0cyB0aGUgaW50cmluc2ljIG1heSBkby4KICAgICAgICAgICAgIGFkZFRvR3JhcGgo
UGhhbnRvbSwgY2FsbFRhcmdldCk7CkBAIC0xMTkwLDcgKzExOTgsNyBAQCB2b2lkIEJ5dGVDb2Rl
UGFyc2VyOjpoYW5kbGVDYWxsKEluc3RydWN0CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IC8vIENhbiBvbmx5IGhhbmRsZSB0aGlzIHVzaW5nIHRoZSBnZW5lcmljIGNhbGwgaGFuZGxlci4K
LSAgICAgICAgYWRkQ2FsbChjdXJyZW50SW5zdHJ1Y3Rpb24sIG9wKTsKKyAgICAgICAgYWRkQ2Fs
bChyZXN1bHQsIG9wLCBjYWxsZWUsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCByZWdpc3Rl
ck9mZnNldCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgICAgIApAQCAtMTE5OCw3ICsx
MjA2LDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdAogICAgIGlm
IChpbnRyaW5zaWMgIT0gTm9JbnRyaW5zaWMpIHsKICAgICAgICAgZW1pdEZ1bmN0aW9uQ2hlY2tz
KGNhbGxMaW5rU3RhdHVzLCBjYWxsVGFyZ2V0LCByZWdpc3Rlck9mZnNldCwga2luZCk7CiAgICAg
ICAgICAgICAKLSAgICAgICAgaWYgKGhhbmRsZUludHJpbnNpYyhyZXN1bHRPcGVyYW5kLCBpbnRy
aW5zaWMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcHJlZGlj
dGlvbikpIHsKKyAgICAgICAgaWYgKGhhbmRsZUludHJpbnNpYyhyZXN1bHQsIGludHJpbnNpYywg
cmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBwcmVkaWN0aW9uKSkg
ewogICAgICAgICAgICAgLy8gVGhpcyBwaGFudG9taW5nIGhhcyB0byBiZSAqYWZ0ZXIqIHRoZSBj
b2RlIGZvciB0aGUgaW50cmluc2ljLCB0byBzaWduaWZ5IHRoYXQKICAgICAgICAgICAgIC8vIHRo
ZSBpbnB1dHMgbXVzdCBiZSBrZXB0IGFsaXZlIHdoYXRldmVyIGV4aXRzIHRoZSBpbnRyaW5zaWMg
bWF5IGRvLgogICAgICAgICAgICAgYWRkVG9HcmFwaChQaGFudG9tLCBjYWxsVGFyZ2V0KTsKQEAg
LTEyMDcsMTMgKzEyMTUsMTMgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0
cnVjdAogICAgICAgICAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5l
ZENhbGwoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAo
aGFuZGxlSW5saW5pbmcoY2FsbFRhcmdldCwgcmVzdWx0T3BlcmFuZCwgY2FsbExpbmtTdGF0dXMs
IHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgbmV4dE9mZnNldCwg
a2luZCkpIHsKKyAgICB9IGVsc2UgaWYgKGhhbmRsZUlubGluaW5nKGNhbGxUYXJnZXQsIHJlc3Vs
dCwgY2FsbExpbmtTdGF0dXMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcywgbmV4dE9mZnNldCwga2luZCkpIHsKICAgICAgICAgaWYgKG1fZ3JhcGguY29tcGlsYXRp
b24oKSkKICAgICAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5lZENh
bGwoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBhZGRDYWxsKGN1cnJlbnRJ
bnN0cnVjdGlvbiwgb3ApOworICAgIGFkZENhbGwocmVzdWx0LCBvcCwgY2FsbGVlLCBhcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcywgcmVnaXN0ZXJPZmZzZXQpOwogfQogCiB2b2lkIEJ5dGVDb2Rl
UGFyc2VyOjplbWl0RnVuY3Rpb25DaGVja3MoY29uc3QgQ2FsbExpbmtTdGF0dXMmIGNhbGxMaW5r
U3RhdHVzLCBOb2RlKiBjYWxsVGFyZ2V0LCBpbnQgcmVnaXN0ZXJPZmZzZXQsIENvZGVTcGVjaWFs
aXphdGlvbktpbmQga2luZCkKQEAgLTEyNTAsMzAgKzEyNTgsMzIgQEAgdm9pZCBCeXRlQ29kZVBh
cnNlcjo6ZW1pdEFyZ3VtZW50UGhhbnRvbQogCiBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJ
bmxpbmluZyhOb2RlKiBjYWxsVGFyZ2V0Tm9kZSwgaW50IHJlc3VsdE9wZXJhbmQsIGNvbnN0IENh
bGxMaW5rU3RhdHVzJiBjYWxsTGlua1N0YXR1cywgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHVuc2lnbmVkIG5leHRPZmZzZXQsIENvZGVTcGVjaWFs
aXphdGlvbktpbmQga2luZCkKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CisgICAgCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIGRhdGFMb2coIkNvbnNpZGVyaW5n
IGlubGluaW5nICIsIGNhbGxMaW5rU3RhdHVzLCAiIGludG8gIiwgY3VycmVudENvZGVPcmlnaW4o
KSwgIlxuIik7CisgICAgCiAgICAgLy8gRmlyc3QsIHRoZSByZWFsbHkgc2ltcGxlIGNoZWNrczog
ZG8gd2UgaGF2ZSBhbiBhY3R1YWwgSlMgZnVuY3Rpb24/Ci0gICAgaWYgKCFjYWxsTGlua1N0YXR1
cy5leGVjdXRhYmxlKCkpCisgICAgaWYgKCFjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCkpIHsK
KyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBi
ZWNhdXNlIHRoZXJlIGlzIG5vIGV4ZWN1dGFibGUuXG4iKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmIChjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkp
CisgICAgfQorICAgIGlmIChjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0
aW9uKCkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAg
RmFpbGluZyBiZWNhdXNlIGl0J3MgYSBob3N0IGZ1bmN0aW9uLlxuIik7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CiAgICAgCiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxl
ID0ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGNhbGxMaW5rU3RhdHVzLmV4ZWN1dGFibGUo
KSk7CiAgICAgCiAgICAgLy8gRG9lcyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB3ZSdyZSBwYXNz
aW5nIG1hdGNoIHRoZSBhcml0eSBvZiB0aGUgdGFyZ2V0PyBXZSBjdXJyZW50bHkKICAgICAvLyBp
bmxpbmUgb25seSBpZiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBwYXNzZWQgaXMgZ3JlYXRlciB0
aGFuIG9yIGVxdWFsIHRvIHRoZSBudW1iZXIKICAgICAvLyBhcmd1bWVudHMgZXhwZWN0ZWQuCi0g
ICAgaWYgKHN0YXRpY19jYXN0PGludD4oZXhlY3V0YWJsZS0+cGFyYW1ldGVyQ291bnQoKSkgKyAx
ID4gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpCisgICAgaWYgKHN0YXRpY19jYXN0PGludD4o
ZXhlY3V0YWJsZS0+cGFyYW1ldGVyQ291bnQoKSkgKyAxID4gYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAg
RmFpbGluZyBiZWNhdXNlIG9mIGFyaXR5IG1pc21hdGNoLlxuIik7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICAvLyBIYXZlIHdlIGV4Y2VlZGVkIGlubGluZSBzdGFjayBkZXB0aCwg
b3IgYXJlIHdlIHRyeWluZyB0byBpbmxpbmUgYSByZWN1cnNpdmUgY2FsbD8KLSAgICAvLyBJZiBl
aXRoZXIgb2YgdGhlc2UgYXJlIGRldGVjdGVkLCB0aGVuIGRvbid0IGlubGluZS4KLSAgICB1bnNp
Z25lZCBkZXB0aCA9IDA7Ci0gICAgZm9yIChJbmxpbmVTdGFja0VudHJ5KiBlbnRyeSA9IG1faW5s
aW5lU3RhY2tUb3A7IGVudHJ5OyBlbnRyeSA9IGVudHJ5LT5tX2NhbGxlcikgewotICAgICAgICAr
K2RlcHRoOwotICAgICAgICBpZiAoZGVwdGggPj0gT3B0aW9uczo6bWF4aW11bUlubGluaW5nRGVw
dGgoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gRGVwdGggZXhjZWVkZWQuCi0gICAg
ICAgIAotICAgICAgICBpZiAoZW50cnktPmV4ZWN1dGFibGUoKSA9PSBleGVjdXRhYmxlKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBSZWN1cnNpb24gZGV0ZWN0ZWQuCiAgICAgfQogICAg
IAogICAgIC8vIERvIHdlIGhhdmUgYSBjb2RlIGJsb2NrLCBhbmQgZG9lcyB0aGUgY29kZSBibG9j
aydzIHNpemUgbWF0Y2ggdGhlIGhldXJpc3RpY3MvcmVxdWlyZW1lbnRzIGZvcgpAQCAtMTI4Mywx
MCArMTI5Myw2MCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhOb2RlCiAg
ICAgLy8gZ2xvYmFsIGZ1bmN0aW9uLCB3aGVyZSB3YXRjaHBvaW50aW5nIGdpdmVzIHVzIHN0YXRp
YyBpbmZvcm1hdGlvbi4gT3ZlcmFsbCwgaXQncyBhIHJhcmUgY2FzZQogICAgIC8vIGJlY2F1c2Ug
d2UgZXhwZWN0IHRoYXQgYW55IGhvdCBjYWxsZWVzIHdvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIGNv
bXBpbGVkLgogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlY3V0YWJsZS0+YmFzZWxpbmVD
b2RlQmxvY2tGb3Ioa2luZCk7Ci0gICAgaWYgKCFjb2RlQmxvY2spCisgICAgaWYgKCFjb2RlQmxv
Y2spIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFp
bGluZyBiZWNhdXNlIG5vIGNvZGUgYmxvY2sgYXZhaWxhYmxlLlxuIik7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoIWNhbklubGluZUZ1bmN0aW9uRm9yKGNvZGVCbG9jaywga2luZCwg
Y2FsbExpbmtTdGF0dXMuaXNDbG9zdXJlQ2FsbCgpKSkKKyAgICB9CisgICAgQ2FwYWJpbGl0eUxl
dmVsIGNhcGFiaWxpdHlMZXZlbCA9IGlubGluZUZ1bmN0aW9uRm9yQ2FwYWJpbGl0eUxldmVsKAor
ICAgICAgICBjb2RlQmxvY2ssIGtpbmQsIGNhbGxMaW5rU3RhdHVzLmlzQ2xvc3VyZUNhbGwoKSk7
CisgICAgaWYgKCFjYW5JbmxpbmUoY2FwYWJpbGl0eUxldmVsKSkgeworICAgICAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgICAgIGRhdGFMb2coIiAgICBGYWlsaW5nIGJlY2F1c2UgdGhlIGZ1bmN0
aW9uIGlzIG5vdCBpbmxpbmVhYmxlLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgCisgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGJlIGJldHRlciBhdCBwcmVkaWN0aW5n
IGhvdyBtdWNoIGJsb2F0IHdlIHdpbGwgaW50cm9kdWNlIGJ5IGlubGluaW5nCisgICAgLy8gdGhp
cyBmdW5jdGlvbi4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI3NjI3CisgICAgCisgICAgLy8gSGF2ZSB3ZSBleGNlZWRlZCBpbmxpbmUgc3RhY2sgZGVw
dGgsIG9yIGFyZSB3ZSB0cnlpbmcgdG8gaW5saW5lIGEgcmVjdXJzaXZlIGNhbGwgdG8KKyAgICAv
LyB0b28gbWFueSBsZXZlbHM/IElmIGVpdGhlciBvZiB0aGVzZSBhcmUgZGV0ZWN0ZWQsIHRoZW4g
ZG9uJ3QgaW5saW5lLiBXZSBhZGp1c3Qgb3VyCisgICAgLy8gaGV1cmlzdGljcyBpZiB3ZSBhcmUg
ZGVhbGluZyB3aXRoIGEgZnVuY3Rpb24gdGhhdCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIGNvbXBpbGVk
LgorICAgIAorICAgIHVuc2lnbmVkIGRlcHRoTGltaXQ7CisgICAgdW5zaWduZWQgcmVjdXJzaW9u
TGltaXQ7CisgICAgaWYgKGNhbkNvbXBpbGUoY2FwYWJpbGl0eUxldmVsKSkgeworICAgICAgICBk
ZXB0aExpbWl0ID0gT3B0aW9uczo6bWF4aW11bUlubGluaW5nRGVwdGgoKTsKKyAgICAgICAgcmVj
dXJzaW9uTGltaXQgPSBPcHRpb25zOjptYXhpbXVtSW5saW5pbmdSZWN1cnNpb24oKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBkZXB0aExpbWl0ID0gT3B0aW9uczo6bWF4aW11bUlubGluaW5nRGVw
dGhGb3JNdXN0SW5saW5lKCk7CisgICAgICAgIHJlY3Vyc2lvbkxpbWl0ID0gT3B0aW9uczo6bWF4
aW11bUlubGluaW5nUmVjdXJzaW9uRm9yTXVzdElubGluZSgpOworICAgIH0KKyAgICAKKyAgICB1
bnNpZ25lZCBkZXB0aCA9IDA7CisgICAgdW5zaWduZWQgcmVjdXJzaW9uID0gMDsKKyAgICAKKyAg
ICBmb3IgKElubGluZVN0YWNrRW50cnkqIGVudHJ5ID0gbV9pbmxpbmVTdGFja1RvcDsgZW50cnk7
IGVudHJ5ID0gZW50cnktPm1fY2FsbGVyKSB7CisgICAgICAgICsrZGVwdGg7CisgICAgICAgIGlm
IChkZXB0aCA+PSBPcHRpb25zOjptYXhpbXVtSW5saW5pbmdEZXB0aCgpKSB7CisgICAgICAgICAg
ICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNh
dXNlIGRlcHRoIGV4Y2VlZGVkLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChlbnRyeS0+ZXhlY3V0YWJsZSgpID09IGV4ZWN1
dGFibGUpIHsKKyAgICAgICAgICAgICsrcmVjdXJzaW9uOworICAgICAgICAgICAgaWYgKHJlY3Vy
c2lvbiA+PSBPcHRpb25zOjptYXhpbXVtSW5saW5pbmdSZWN1cnNpb24oKSkgeworICAgICAgICAg
ICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFp
bGluZyBiZWNhdXNlIHJlY3Vyc2lvbiBkZXRlY3RlZC5cbiIpOworICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBp
ZiAodmVyYm9zZSkKKyAgICAgICAgZGF0YUxvZygiICAgIENvbW1pdHRpbmcgdG8gaW5saW5pbmcu
XG4iKTsKICAgICAKICAgICAvLyBOb3cgd2Uga25vdyB3aXRob3V0IGEgZG91YnQgdGhhdCB3ZSBh
cmUgY29tbWl0dGVkIHRvIGlubGluaW5nLiBTbyBiZWdpbiB0aGUgcHJvY2VzcwogICAgIC8vIGJ5
IGNoZWNraW5nIHRoZSBjYWxsZWUgKGlmIG5lY2Vzc2FyeSkgYW5kIG1ha2luZyBzdXJlIHRoYXQg
YXJndW1lbnRzIGFuZCB0aGUgY2FsbGVlCkBAIC0xNzczLDExICsxODMzLDcgQEAgdm9pZCBCeXRl
Q29kZVBhcnNlcjo6aGFuZGxlR2V0QnlJZCgKICAgICBpbnQgZGVzdGluYXRpb25PcGVyYW5kLCBT
cGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uLCBOb2RlKiBiYXNlLCB1bnNpZ25lZCBpZGVudGlmaWVy
TnVtYmVyLAogICAgIGNvbnN0IEdldEJ5SWRTdGF0dXMmIGdldEJ5SWRTdGF0dXMpCiB7Ci0gICAg
aWYgKCFnZXRCeUlkU3RhdHVzLmlzU2ltcGxlKCkKLSAgICAgICAgfHwgbV9pbmxpbmVTdGFja1Rv
cC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUpCi0g
ICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9j
dXJyZW50SW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCkKLSAgICAgICAgfHwgbV9pbmxpbmVTdGFj
a1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkV2Vha0Nv
bnN0YW50Q2FjaGUpCi0gICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUu
aGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2lu
dCkpIHsKKyAgICBpZiAoIWdldEJ5SWRTdGF0dXMuaXNTaW1wbGUoKSkgewogICAgICAgICBzZXQo
VmlydHVhbFJlZ2lzdGVyKGRlc3RpbmF0aW9uT3BlcmFuZCksCiAgICAgICAgICAgICBhZGRUb0dy
YXBoKAogICAgICAgICAgICAgICAgIGdldEJ5SWRTdGF0dXMubWFrZXNDYWxscygpID8gR2V0QnlJ
ZEZsdXNoIDogR2V0QnlJZCwKQEAgLTI0NDQsNiArMjUwMCw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJz
ZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKHByb3Bl
cnR5KTsKICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKHZhbHVlKTsKICAgICAgICAgICAgIGFk
ZFZhckFyZ0NoaWxkKDApOyAvLyBMZWF2ZSByb29tIGZvciBwcm9wZXJ0eSBzdG9yYWdlLgorICAg
ICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoMCk7IC8vIExlYXZlIHJvb20gZm9yIGxlbmd0aC4KICAg
ICAgICAgICAgIGFkZFRvR3JhcGgoTm9kZTo6VmFyQXJnLCBvcGNvZGVJRCA9PSBvcF9wdXRfYnlf
dmFsX2RpcmVjdCA/IFB1dEJ5VmFsRGlyZWN0IDogUHV0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUu
YXNXb3JkKCkpLCBPcEluZm8oMCkpOwogCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9wdXRf
YnlfdmFsKTsKQEAgLTI0NTksOCArMjUxNiw5IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNl
QmxvY2sodW5zaWduZWQKICAgICAgICAgICAgIAogICAgICAgICAgICAgU3RyaW5nSW1wbCogdWlk
ID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOwogICAgICAgICAgICAg
R2V0QnlJZFN0YXR1cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigK
LSAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIG1faW5s
aW5lU3RhY2tUb3AtPm1fc3R1YkluZm9zLAotICAgICAgICAgICAgICAgIG1fY3VycmVudEluZGV4
LCB1aWQpOworICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9j
aywgbV9kZmdDb2RlQmxvY2ssCisgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9z
dHViSW5mb3MsIG1fZGZnU3R1YkluZm9zLAorICAgICAgICAgICAgICAgIGN1cnJlbnRDb2RlT3Jp
Z2luKCksIHVpZCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGhhbmRsZUdldEJ5SWQoCiAg
ICAgICAgICAgICAgICAgY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlv
biwgYmFzZSwgaWRlbnRpZmllck51bWJlciwgZ2V0QnlJZFN0YXR1cyk7CkBAIC0yNDc5LDI2ICsy
NTM3LDIwIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAg
ICAgICAgIGJvb2wgZGlyZWN0ID0gY3VycmVudEluc3RydWN0aW9uWzhdLnUub3BlcmFuZDsKIAog
ICAgICAgICAgICAgUHV0QnlJZFN0YXR1cyBwdXRCeUlkU3RhdHVzID0gUHV0QnlJZFN0YXR1czo6
Y29tcHV0ZUZvcigKLSAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVk
QmxvY2ssIG1faW5saW5lU3RhY2tUb3AtPm1fc3R1YkluZm9zLAotICAgICAgICAgICAgICAgIG1f
Y3VycmVudEluZGV4LCBtX2dyYXBoLmlkZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJlcl0pOwor
ICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9kZmdD
b2RlQmxvY2ssCisgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9zdHViSW5mb3Ms
IG1fZGZnU3R1YkluZm9zLAorICAgICAgICAgICAgICAgIGN1cnJlbnRDb2RlT3JpZ2luKCksIG1f
Z3JhcGguaWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVtYmVyXSk7CiAgICAgICAgICAgICBib29s
IGNhbkNvdW50QXNJbmxpbmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGlmICghcHV0QnlJZFN0YXR1
cy5pc1NldCgpKSB7CiAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChGb3JjZU9TUkV4aXQpOwog
ICAgICAgICAgICAgICAgIGNhbkNvdW50QXNJbmxpbmVkID0gZmFsc2U7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGJvb2wgaGFzRXhpdFNpdGUgPQotICAgICAgICAg
ICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJy
ZW50SW5kZXgsIEJhZENhY2hlKQotICAgICAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3At
Pm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlV2F0Y2hw
b2ludCkKLSAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxl
Lmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZSkKLSAgICAg
ICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRl
KG1fY3VycmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZVdhdGNocG9pbnQpOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBpZiAoIWhhc0V4aXRTaXRlICYmIHB1dEJ5SWRTdGF0dXMuaXNT
aW1wbGVSZXBsYWNlKCkpIHsKKyAgICAgICAgICAgIGlmIChwdXRCeUlkU3RhdHVzLmlzU2ltcGxl
UmVwbGFjZSgpKSB7CiAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja1N0cnVjdHVyZSwg
T3BJbmZvKG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KHB1dEJ5SWRTdGF0dXMub2xkU3RydWN0dXJl
KCkpKSwgYmFzZSk7CiAgICAgICAgICAgICAgICAgaGFuZGxlUHV0QnlPZmZzZXQoYmFzZSwgaWRl
bnRpZmllck51bWJlciwgcHV0QnlJZFN0YXR1cy5vZmZzZXQoKSwgdmFsdWUpOwogICAgICAgICAg
ICAgfSBlbHNlIGlmICgKLSAgICAgICAgICAgICAgICAhaGFzRXhpdFNpdGUKLSAgICAgICAgICAg
ICAgICAmJiBwdXRCeUlkU3RhdHVzLmlzU2ltcGxlVHJhbnNpdGlvbigpCisgICAgICAgICAgICAg
ICAgcHV0QnlJZFN0YXR1cy5pc1NpbXBsZVRyYW5zaXRpb24oKQogICAgICAgICAgICAgICAgICYm
ICghcHV0QnlJZFN0YXR1cy5zdHJ1Y3R1cmVDaGFpbigpCiAgICAgICAgICAgICAgICAgICAgIHx8
IHB1dEJ5SWRTdGF0dXMuc3RydWN0dXJlQ2hhaW4oKS0+aXNTdGlsbFZhbGlkKCkpKSB7CiAgICAg
ICAgICAgICAgICAgCkBAIC0yOTczLDMwICszMDI1LDQxIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6
OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2NvbnN0cnVj
dCk7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBvcF9jYWxsX3ZhcmFyZ3M6IHsKKyAgICAg
ICAgICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAg
ICAgICAgICAgaW50IGNhbGxlZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7Cisg
ICAgICAgICAgICBpbnQgdGhpc1JlZyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7
CisgICAgICAgICAgICBpbnQgYXJndW1lbnRzID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUub3Bl
cmFuZDsKKyAgICAgICAgICAgIGludCBmaXJzdEZyZWVSZWcgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
NV0udS5vcGVyYW5kOworICAgICAgICAgICAgCiAgICAgICAgICAgICBBU1NFUlQoaW5saW5lQ2Fs
bEZyYW1lKCkpOwotICAgICAgICAgICAgQVNTRVJUKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9w
ZXJhbmQgPT0gbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxvY2stPmFyZ3VtZW50c1JlZ2lzdGVy
KCkub2Zmc2V0KCkpOworICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChhcmd1bWVudHMsIGFyZ3Vt
ZW50cyA9PSBtX2lubGluZVN0YWNrVG9wLT5tX2NvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIo
KS5vZmZzZXQoKSk7CiAgICAgICAgICAgICBBU1NFUlQoIW1faW5saW5lU3RhY2tUb3AtPm1fY29k
ZUJsb2NrLT5zeW1ib2xUYWJsZSgpLT5zbG93QXJndW1lbnRzKCkpOwotICAgICAgICAgICAgLy8g
SXQgd291bGQgYmUgY29vbCB0byBmdW5uZWwgdGhpcyBpbnRvIGhhbmRsZUNhbGwoKSBzbyB0aGF0
IGl0IGNhbiBoYW5kbGUKLSAgICAgICAgICAgIC8vIGlubGluaW5nLiBCdXQgY3VycmVudGx5IHRo
YXQgd29uJ3QgYmUgcHJvZml0YWJsZSBhbnl3YXksIHNpbmNlIG5vbmUgb2YgdGhlCi0gICAgICAg
ICAgICAvLyB1c2VzIG9mIGNhbGxfdmFyYXJncyB3aWxsIGJlIGlubGluZWFibGUuIFNvIHdlIHNl
dCB0aGlzIHVwIG1hbnVhbGx5IGFuZAotICAgICAgICAgICAgLy8gd2l0aG91dCBpbmxpbmUvaW50
cmluc2ljIGRldGVjdGlvbi4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgU3BlY3VsYXRlZFR5
cGUgcHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb24oKTsKLSAgICAgICAgICAgIAorCiAgICAgICAg
ICAgICBhZGRUb0dyYXBoKENoZWNrQXJndW1lbnRzTm90Q3JlYXRlZCk7Ci0gICAgICAgICAgICAK
KwogICAgICAgICAgICAgdW5zaWduZWQgYXJnQ291bnQgPSBpbmxpbmVDYWxsRnJhbWUoKS0+YXJn
dW1lbnRzLnNpemUoKTsKLSAgICAgICAgICAgIGlmIChKU1N0YWNrOjpUaGlzQXJndW1lbnQgKyBh
cmdDb3VudCA+IG1fcGFyYW1ldGVyU2xvdHMpCi0gICAgICAgICAgICAgICAgbV9wYXJhbWV0ZXJT
bG90cyA9IEpTU3RhY2s6OlRoaXNBcmd1bWVudCArIGFyZ0NvdW50OwogICAgICAgICAgICAgCi0g
ICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQpKSk7IC8vIGNhbGxlZQotICAgICAgICAgICAgYWRkVmFyQXJn
Q2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5k
KSkpOyAvLyB0aGlzCisgICAgICAgICAgICAvLyBMZXQncyBjb21wdXRlIHRoZSByZWdpc3RlciBv
ZmZzZXQuIFdlIHN0YXJ0IHdpdGggdGhlIGxhc3QgdXNlZCByZWdpc3RlciwgYW5kCisgICAgICAg
ICAgICAvLyB0aGVuIGFkanVzdCBmb3IgdGhlIHRoaW5ncyB3ZSB3YW50IGluIHRoZSBjYWxsIGZy
YW1lLgorICAgICAgICAgICAgaW50IHJlZ2lzdGVyT2Zmc2V0ID0gZmlyc3RGcmVlUmVnICsgMTsK
KyAgICAgICAgICAgIHJlZ2lzdGVyT2Zmc2V0IC09IGFyZ0NvdW50OyAvLyBXZSB3aWxsIGJlIHBh
c3Npbmcgc29tZSBhcmd1bWVudHMuCisgICAgICAgICAgICByZWdpc3Rlck9mZnNldCAtPSBKU1N0
YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOyAvLyBXZSB3aWxsIHByZXRlbmQgdG8gaGF2ZSBhIGNh
bGwgZnJhbWUgaGVhZGVyLgorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBHZXQgdGhlIGFs
aWdubWVudCByaWdodC4KKyAgICAgICAgICAgIHJlZ2lzdGVyT2Zmc2V0ID0gLVdURjo6cm91bmRV
cFRvTXVsdGlwbGVPZigKKyAgICAgICAgICAgICAgICBzdGFja0FsaWdubWVudFJlZ2lzdGVycygp
LAorICAgICAgICAgICAgICAgIC1yZWdpc3Rlck9mZnNldCk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIC8vIFRoZSBieXRlY29kZSB3b3VsZG4ndCBoYXZlIHNldCB1cCB0aGUgYXJndW1lbnRz
LiBCdXQgd2UnbGwgZG8gaXQgYW5kIG1ha2UgaXQKKyAgICAgICAgICAgIC8vIGxvb2sgbGlrZSB0
aGUgYnl0ZWNvZGUgaGFkIGRvbmUgaXQuCisgICAgICAgICAgICBpbnQgbmV4dFJlZ2lzdGVyID0g
cmVnaXN0ZXJPZmZzZXQgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOworICAgICAgICAg
ICAgc2V0KFZpcnR1YWxSZWdpc3RlcihuZXh0UmVnaXN0ZXIrKyksIGdldChWaXJ0dWFsUmVnaXN0
ZXIodGhpc1JlZykpLCBJbW1lZGlhdGVTZXQpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBh
cmd1bWVudCA9IDE7IGFyZ3VtZW50IDwgYXJnQ291bnQ7ICsrYXJndW1lbnQpCi0gICAgICAgICAg
ICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGFyZ3Vt
ZW50KSkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLAotICAgICAgICAgICAgICAgIGFkZFRvR3Jh
cGgoTm9kZTo6VmFyQXJnLCBDYWxsLCBPcEluZm8oMCksIE9wSW5mbyhwcmVkaWN0aW9uKSkpOwor
ICAgICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIobmV4dFJlZ2lzdGVyKyspLCBnZXQo
dmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpKSwgSW1tZWRpYXRlU2V0KTsKICAg
ICAgICAgICAgIAorICAgICAgICAgICAgaGFuZGxlQ2FsbCgKKyAgICAgICAgICAgICAgICByZXN1
bHQsIENhbGwsIENvZGVGb3JDYWxsLCBPUENPREVfTEVOR1RIKG9wX2NhbGxfdmFyYXJncyksCisg
ICAgICAgICAgICAgICAgY2FsbGVlLCBhcmdDb3VudCwgcmVnaXN0ZXJPZmZzZXQpOwogICAgICAg
ICAgICAgTkVYVF9PUENPREUob3BfY2FsbF92YXJhcmdzKTsKICAgICAgICAgfQogICAgICAgICAg
ICAgCkBAIC0zNjU0LDYgKzM3MTcsMTYgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2UoKQog
ICAgIC8vIFNldCBkdXJpbmcgY29uc3RydWN0aW9uLgogICAgIEFTU0VSVCghbV9jdXJyZW50SW5k
ZXgpOwogICAgIAorICAgIGlmIChpc0ZUTChtX2dyYXBoLm1fcGxhbi5tb2RlKSkgeworICAgICAg
ICBtX2RmZ0NvZGVCbG9jayA9IG1fZ3JhcGgubV9wbGFuLnByb2ZpbGVkREZHQ29kZUJsb2NrLmdl
dCgpOworICAgICAgICBpZiAobV9kZmdDb2RlQmxvY2spIHsKKyAgICAgICAgICAgIGlmIChPcHRp
b25zOjplbmFibGVQb2x5dmFyaWFudENhbGxJbmxpbmluZygpKQorICAgICAgICAgICAgICAgIENh
bGxMaW5rU3RhdHVzOjpjb21wdXRlREZHU3RhdHVzZXMobV9kZmdDb2RlQmxvY2ssIG1fY2FsbENv
bnRleHRNYXApOworICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmVuYWJsZVBvbHl2YXJpYW50QnlJ
ZElubGluaW5nKCkpCisgICAgICAgICAgICAgICAgbV9kZmdDb2RlQmxvY2stPmdldFN0dWJJbmZv
TWFwKG1fZGZnU3R1YkluZm9zKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKICAgICBpZiAobV9j
b2RlQmxvY2stPmNhcHR1cmVDb3VudCgpKSB7CiAgICAgICAgIFN5bWJvbFRhYmxlKiBzeW1ib2xU
YWJsZSA9IG1fY29kZUJsb2NrLT5zeW1ib2xUYWJsZSgpOwogICAgICAgICBDb25jdXJyZW50SklU
TG9ja2VyIGxvY2tlcihzeW1ib2xUYWJsZS0+bV9sb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDRkdTaW1w
bGlmaWNhdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksOCBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgICAgIC8vIHN1Ym9wdGltYWwsIGJlY2F1c2UgaWYgbXkgc3Vj
Y2Vzc29yIGhhcyBtdWx0aXBsZSBwcmVkZWNlc3NvcnMgdGhlbiB3ZSdsbAogICAgICAgICAgICAg
ICAgICAgICAvLyBiZSBrZWVwaW5nIGFsaXZlIHRoaW5ncyBvbiBvdGhlciBwcmVkZWNlc3NvciBl
ZGdlcyB1bm5lY2Vzc2FyaWx5LgogICAgICAgICAgICAgICAgICAgICAvLyBXaGF0IHdlIHJlYWxs
eSBuZWVkIGlzIHRoZSBub3Rpb24gb2YgZW5kLW9mLWJsb2NrIGdob3N0aWVzIQorICAgICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogQWxsb3cgcHV0dGluZyBwaGFudG9tcyBhZnRlciB0ZXJtaW5h
bHMuCisgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjY3NzgKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDU0VQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDU0VQaGFzZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBA
CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkRGR0Fic3RyYWN0SGVhcC5oIgor
I2luY2x1ZGUgIkRGR0Nsb2JiZXJpemUuaCIKICNpbmNsdWRlICJERkdFZGdlVXNlc1N0cnVjdHVy
ZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKQEAgLTEw
MDYsNiArMTAwOCwxOCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
ICAgICAKKyAgICBib29sIGludmFsaWRhdGlvblBvaW50RWxpbWluYXRpb24oKQorICAgIHsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9pbmRleEluQmxvY2s7IGktLTspIHsKKyAgICAgICAg
ICAgIE5vZGUqIG5vZGUgPSBtX2N1cnJlbnRCbG9jay0+YXQoaSk7CisgICAgICAgICAgICBpZiAo
bm9kZS0+b3AoKSA9PSBJbnZhbGlkYXRpb25Qb2ludCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgICAgIGlmICh3cml0ZXNPdmVybGFwKG1fZ3JhcGgsIG5vZGUsIFdhdGNo
cG9pbnRfZmlyZSkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKICAgICB2b2lkIGVsaW1pbmF0ZUlycmVsZXZhbnRQ
aGFudG9tQ2hpbGRyZW4oTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChub2RlLT5v
cCgpID09IFBoYW50b20pOwpAQCAtMTM4NSw5ICsxMzk5LDEzIEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBlbGltaW5hdGUocHV0QnlPZmZzZXRTdG9yZUVsaW1pbmF0aW9uKG1fZ3JhcGgubV9zdG9y
YWdlQWNjZXNzRGF0YVtub2RlLT5zdG9yYWdlQWNjZXNzRGF0YUluZGV4KCldLmlkZW50aWZpZXJO
dW1iZXIsIG5vZGUtPmNoaWxkMSgpLm5vZGUoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAKKyAgICAgICAgY2FzZSBJbnZhbGlkYXRpb25Qb2ludDoKKyAgICAgICAgICAgIGlm
IChpbnZhbGlkYXRpb25Qb2ludEVsaW1pbmF0aW9uKCkpCisgICAgICAgICAgICAgICAgZWxpbWlu
YXRlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAogICAgICAgICBjYXNlIFBo
YW50b206CiAgICAgICAgICAgICAvLyBGSVhNRTogd2Ugb3VnaHQgdG8gcmVtb3ZlIFBoYW50b20n
cyB0aGF0IGhhdmUgbm8gY2hpbGRyZW4uCi0gICAgICAgICAgICAKICAgICAgICAgICAgIGVsaW1p
bmF0ZUlycmVsZXZhbnRQaGFudG9tQ2hpbGRyZW4obm9kZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmls
aXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2Fw
YWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgsNiArMTk4LDgg
QEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRAogICAgIGNhc2Ugb3Bf
Y2FsbF92YXJhcmdzOgogICAgICAgICBpZiAoY29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkgJiYg
cGNbNF0udS5vcGVyYW5kID09IGNvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKS5vZmZzZXQo
KSkKICAgICAgICAgICAgIHJldHVybiBDYW5JbmxpbmU7CisgICAgICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgaGFuZGxlIHRoaXMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjc2MjYKICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CiAKICAg
ICBjYXNlIG9wX25ld19yZWdleHA6IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDYXBhYmlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NhcGFiaWxpdGllcy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC05NiwxOSArOTYs
MjggQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBmdW5jdGlvbkZvckNvbnN0cgogICAgIHJldHVy
biBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAotaW5saW5lIGJvb2wgY2FuSW5saW5l
RnVuY3Rpb25Gb3JDYWxsKENvZGVCbG9jayogY29kZUJsb2NrKQoraW5saW5lIENhcGFiaWxpdHlM
ZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNhbGxDYXBhYmlsaXR5TGV2ZWwoQ29kZUJsb2NrKiBjb2Rl
QmxvY2spCiB7Ci0gICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDYWxsKGNvZGVCbG9j
aykgJiYgY2FuSW5saW5lKGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spKTsKKyAgICBpZiAoIW1p
Z2h0SW5saW5lRnVuY3Rpb25Gb3JDYWxsKGNvZGVCbG9jaykpCisgICAgICAgIHJldHVybiBDYW5u
b3RDb21waWxlOworICAgIAorICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsK
IH0KIAotaW5saW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChDb2RlQmxv
Y2sqIGNvZGVCbG9jaykKK2lubGluZSBDYXBhYmlsaXR5TGV2ZWwgaW5saW5lRnVuY3Rpb25Gb3JD
bG9zdXJlQ2FsbENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKLSAgICBy
ZXR1cm4gbWlnaHRJbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxsKGNvZGVCbG9jaykgJiYgY2Fu
SW5saW5lKGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spKTsKKyAgICBpZiAoIW1pZ2h0SW5saW5l
RnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChjb2RlQmxvY2spKQorICAgICAgICByZXR1cm4gQ2Fubm90
Q29tcGlsZTsKKyAgICAKKyAgICByZXR1cm4gY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiB9
CiAKLWlubGluZSBib29sIGNhbklubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KENvZGVCbG9jayog
Y29kZUJsb2NrKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNvbnN0
cnVjdENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKLSAgICByZXR1cm4g
bWlnaHRJbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdChjb2RlQmxvY2spICYmIGNhbklubGluZShj
YXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKSk7CisgICAgaWYgKCFtaWdodElubGluZUZ1bmN0aW9u
Rm9yQ29uc3RydWN0KGNvZGVCbG9jaykpCisgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwor
ICAgIAorICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAogaW5saW5l
IGJvb2wgbWlnaHRJbmxpbmVGdW5jdGlvbkZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCBraW5kKQpAQCAtMTI0LDE2ICsxMzMsMTYgQEAgaW5saW5lIGJvb2wg
bWlnaHRJbmxpbmVGdW5jdGlvbihDb2RlQmxvYwogICAgIHJldHVybiBtaWdodElubGluZUZ1bmN0
aW9uRm9yKGNvZGVCbG9jaywgY29kZUJsb2NrLT5zcGVjaWFsaXphdGlvbktpbmQoKSk7CiB9CiAK
LWlubGluZSBib29sIGNhbklubGluZUZ1bmN0aW9uRm9yKENvZGVCbG9jayogY29kZUJsb2NrLCBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIGJvb2wgaXNDbG9zdXJlQ2FsbCkKK2lubGluZSBD
YXBhYmlsaXR5TGV2ZWwgaW5saW5lRnVuY3Rpb25Gb3JDYXBhYmlsaXR5TGV2ZWwoQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgYm9vbCBpc0Nsb3N1cmVD
YWxsKQogewogICAgIGlmIChpc0Nsb3N1cmVDYWxsKSB7CiAgICAgICAgIEFTU0VSVChraW5kID09
IENvZGVGb3JDYWxsKTsKLSAgICAgICAgcmV0dXJuIGNhbklubGluZUZ1bmN0aW9uRm9yQ2xvc3Vy
ZUNhbGwoY29kZUJsb2NrKTsKKyAgICAgICAgcmV0dXJuIGlubGluZUZ1bmN0aW9uRm9yQ2xvc3Vy
ZUNhbGxDYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKICAgICB9CiAgICAgaWYgKGtpbmQgPT0g
Q29kZUZvckNhbGwpCi0gICAgICAgIHJldHVybiBjYW5JbmxpbmVGdW5jdGlvbkZvckNhbGwoY29k
ZUJsb2NrKTsKKyAgICAgICAgcmV0dXJuIGlubGluZUZ1bmN0aW9uRm9yQ2FsbENhcGFiaWxpdHlM
ZXZlbChjb2RlQmxvY2spOwogICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwot
ICAgIHJldHVybiBjYW5JbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdChjb2RlQmxvY2spOworICAg
IHJldHVybiBpbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdENhcGFiaWxpdHlMZXZlbChjb2RlQmxv
Y2spOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29tbW9uLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDE1ICs4Nyw2IEBA
IGlubGluZSBib29sIHZhbGlkYXRpb25FbmFibGVkKCkKICNlbmRpZgogfQogCi1pbmxpbmUgYm9v
bCBlbmFibGVDb25jdXJyZW50SklUKCkKLXsKLSNpZiBFTkFCTEUoQ09OQ1VSUkVOVF9KSVQpCi0g
ICAgcmV0dXJuIE9wdGlvbnM6OmVuYWJsZUNvbmN1cnJlbnRKSVQoKSAmJiBPcHRpb25zOjpudW1i
ZXJPZkNvbXBpbGVyVGhyZWFkcygpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYK
LX0KLQogaW5saW5lIGJvb2wgZW5hYmxlSW50NTIoKQogewogI2lmIFVTRShKU1ZBTFVFNjQpCkBA
IC0yMzUsNyArMjI2LDEzIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogLy8g
UHV0IHRoaW5ncyBoZXJlIHRoYXQgbXVzdCBiZSBkZWZpbmVkIGV2ZW4gaWYgRU5BQkxFKERGR19K
SVQpIGlzIGZhbHNlLgogCi1lbnVtIENhcGFiaWxpdHlMZXZlbCB7IENhbm5vdENvbXBpbGUsIENh
bklubGluZSwgQ2FuQ29tcGlsZSwgQ2FuQ29tcGlsZUFuZElubGluZSwgQ2FwYWJpbGl0eUxldmVs
Tm90U2V0IH07CitlbnVtIENhcGFiaWxpdHlMZXZlbCB7CisgICAgQ2Fubm90Q29tcGlsZSwKKyAg
ICBDYW5JbmxpbmUsCisgICAgQ2FuQ29tcGlsZSwKKyAgICBDYW5Db21waWxlQW5kSW5saW5lLAor
ICAgIENhcGFiaWxpdHlMZXZlbE5vdFNldAorfTsKIAogaW5saW5lIGJvb2wgY2FuQ29tcGlsZShD
YXBhYmlsaXR5TGV2ZWwgbGV2ZWwpCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NvbXBpbGF0aW9uTW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29tcGlsYXRpb25Nb2RlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tcGlsYXRpb25Nb2RlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDYgKzM3LDE3IEBAIGVudW0gQ29tcGlsYXRpb25Nb2RlIHsKICAgICBGVExGb3JPU1JFbnRy
eU1vZGUKIH07CiAKK2lubGluZSBib29sIGlzRlRMKENvbXBpbGF0aW9uTW9kZSBtb2RlKQorewor
ICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgRlRMTW9kZToKKyAgICBjYXNlIEZUTEZvck9T
UkVudHJ5TW9kZToKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiBu
YW1lc3BhY2UgV1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5j
cHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJp
dmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsOSArNTUs
OSBAQCB1bnNpZ25lZCBnZXROdW1Db21waWxhdGlvbnMoKQogCiAjaWYgRU5BQkxFKERGR19KSVQp
CiBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCi0gICAgVk0mIHZtLCBDb2Rl
QmxvY2sqIGNvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUsIHVuc2lnbmVkIG9zckVudHJ5
Qnl0ZWNvZGVJbmRleCwKLSAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZh
bHVlcywKLSAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY2FsbGJh
Y2ssIFdvcmtsaXN0KiB3b3JrbGlzdCkKKyAgICBWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2Nr
LCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9kZSwK
KyAgICB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIGNvbnN0IE9wZXJhbmRzPEpTVmFs
dWU+JiBtdXN0SGFuZGxlVmFsdWVzLAorICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrPiBjYWxsYmFjaykKIHsKICAgICBTYW1wbGluZ1JlZ2lvbiBzYW1wbGluZ1JlZ2lv
bigiREZHIENvbXBpbGF0aW9uIChEcml2ZXIpIik7CiAgICAgCkBAIC02Niw2ICs2Niw3IEBAIHN0
YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAgICBBU1NFUlQoY29kZUJsb2Nr
KTsKICAgICBBU1NFUlQoY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpKTsKICAgICBBU1NFUlQoY29k
ZUJsb2NrLT5hbHRlcm5hdGl2ZSgpLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6QmFzZWxpbmVKSVQp
OworICAgIEFTU0VSVCghcHJvZmlsZWRERkdDb2RlQmxvY2sgfHwgcHJvZmlsZWRERkdDb2RlQmxv
Y2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpERkdKSVQpOwogICAgIAogICAgIGlmICghT3B0aW9u
czo6dXNlREZHSklUKCkgfHwgIU1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnQo
KSkKICAgICAgICAgcmV0dXJuIENvbXBpbGF0aW9uRmFpbGVkOwpAQCAtODAsMTYgKzgxLDMxIEBA
IHN0YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAgICAvLyBtYWtlIHN1cmUg
dGhhdCBhbGwgSklUIGNvZGUgZ2VuZXJhdGlvbiBkb2VzIGZpbmFsaXphdGlvbiBvbiB0aGUgbWFp
biB0aHJlYWQuCiAgICAgdm0uZ2V0Q1RJU3R1Yihvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJh
dG9yKTsKICAgICB2bS5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdl
bmVyYXRvcik7Ci0gICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKTsKLSAg
ICB2bS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7Ci0gICAgdm0uZ2V0
Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcik7Ci0gICAgdm0uZ2V0Q1RJU3R1
Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHViKHZpcnR1YWxD
b25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7CisgICAgaWYgKG1vZGUgPT0gREZHTW9kZSkgeworICAg
ICAgICB2bS5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5n
ZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENU
SVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElT
dHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElTdHViKHZp
cnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdm0u
Z2V0Q1RJU3R1YihsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAg
ICAgICB2bS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2Vu
ZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2Vy
dmVzUmVnc1RodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1Yih2aXJ0dWFsQ2Fs
bFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElTdHVi
KHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKTsKKyAgICB9
CiAgICAgCiAgICAgUmVmUHRyPFBsYW4+IHBsYW4gPSBhZG9wdFJlZigKLSAgICAgICAgbmV3IFBs
YW4oY29kZUJsb2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RIYW5kbGVWYWx1
ZXMpKTsKKyAgICAgICAgbmV3IFBsYW4oY29kZUJsb2NrLCBwcm9maWxlZERGR0NvZGVCbG9jaywg
bW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFsdWVzKSk7CiAgICAgCi0g
ICAgaWYgKHdvcmtsaXN0KSB7CisgICAgYm9vbCBlbmFibGVDb25jdXJyZW50SklUOworI2lmIEVO
QUJMRShDT05DVVJSRU5UX0pJVCkKKyAgICBlbmFibGVDb25jdXJyZW50SklUID0gT3B0aW9uczo6
ZW5hYmxlQ29uY3VycmVudEpJVCgpOworI2Vsc2UgLy8gRU5BQkxFKENPTkNVUlJFTlRfSklUKQor
ICAgIGVuYWJsZUNvbmN1cnJlbnRKSVQgPSBmYWxzZTsKKyNlbmRpZiAvLyBFTkFCTEUoQ09OQ1VS
UkVOVF9KSVQpCisgICAgaWYgKGVuYWJsZUNvbmN1cnJlbnRKSVQpIHsKKyAgICAgICAgV29ya2xp
c3QqIHdvcmtsaXN0ID0gZW5zdXJlR2xvYmFsV29ya2xpc3RGb3IobW9kZSk7CiAgICAgICAgIHBs
YW4tPmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgICAgIGlmIChsb2dDb21waWxhdGlvbkNoYW5n
ZXMoKSkKICAgICAgICAgICAgIGRhdGFMb2coIkRlZmVycmluZyBERkcgY29tcGlsYXRpb24gb2Yg
IiwgKmNvZGVCbG9jaywgIiB3aXRoIHF1ZXVlIGxlbmd0aCAiLCB3b3JrbGlzdC0+cXVldWVMZW5n
dGgoKSwgIi5cbiIpOwpAQCAtMTAyLDIxICsxMTgsMjIgQEAgc3RhdGljIENvbXBpbGF0aW9uUmVz
dWx0IGNvbXBpbGVJbXBsKAogfQogI2Vsc2UgLy8gRU5BQkxFKERGR19KSVQpCiBzdGF0aWMgQ29t
cGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCi0gICAgVk0mLCBDb2RlQmxvY2sqLCBDb21waWxh
dGlvbk1vZGUsIHVuc2lnbmVkLCBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYsCi0gICAgUGFzc1Jl
ZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+LCBXb3JrbGlzdCopCisgICAgVk0mLCBD
b2RlQmxvY2sqLCBDb2RlQmxvY2sqLCBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkLCBjb25zdCBP
cGVyYW5kczxKU1ZhbHVlPiYsCisgICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2s+KQogewogICAgIHJldHVybiBDb21waWxhdGlvbkZhaWxlZDsKIH0KICNlbmRpZiAvLyBF
TkFCTEUoREZHX0pJVCkKIAogQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZSgKLSAgICBWTSYgdm0s
IENvZGVCbG9jayogY29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9kZSwgdW5zaWduZWQgb3Ny
RW50cnlCeXRlY29kZUluZGV4LAotICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFu
ZGxlVmFsdWVzLAotICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBw
YXNzZWRDYWxsYmFjaywgV29ya2xpc3QqIHdvcmtsaXN0KQorICAgIFZNJiB2bSwgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0aW9u
TW9kZSBtb2RlLAorICAgIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgY29uc3QgT3Bl
cmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMsCisgICAgUGFzc1JlZlB0cjxEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2s+IHBhc3NlZENhbGxiYWNrKQogewogICAgIFJlZlB0cjxEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gcGFzc2VkQ2FsbGJhY2s7CiAgICAg
Q29tcGlsYXRpb25SZXN1bHQgcmVzdWx0ID0gY29tcGlsZUltcGwoCi0gICAgICAgIHZtLCBjb2Rl
QmxvY2ssIG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcywgY2Fs
bGJhY2ssIHdvcmtsaXN0KTsKKyAgICAgICAgdm0sIGNvZGVCbG9jaywgcHJvZmlsZWRERkdDb2Rl
QmxvY2ssIG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcywKKyAg
ICAgICAgY2FsbGJhY2spOwogICAgIGlmIChyZXN1bHQgIT0gQ29tcGlsYXRpb25EZWZlcnJlZCkK
ICAgICAgICAgY2FsbGJhY2stPmNvbXBpbGF0aW9uRGlkQ29tcGxldGUoY29kZUJsb2NrLCByZXN1
bHQpOwogICAgIHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RyaXZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RHJpdmVyLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRHJpdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDE2ICs0MCwxNCBAQCBj
bGFzcyBWTTsKIAogbmFtZXNwYWNlIERGRyB7CiAKLWNsYXNzIFdvcmtsaXN0OwotCiBKU19FWFBP
UlRfUFJJVkFURSB1bnNpZ25lZCBnZXROdW1Db21waWxhdGlvbnMoKTsKIAogLy8gSWYgdGhlIHdv
cmtsaXN0IGlzIG5vbi1udWxsLCB3ZSBkbyBhIGNvbmN1cnJlbnQgY29tcGlsZS4gT3RoZXJ3aXNl
IHdlIGRvIGEgc3luY2hyb25vdXMKIC8vIGNvbXBpbGUuIEV2ZW4gaWYgd2UgZG8gYSBzeW5jaHJv
bm91cyBjb21waWxlLCB3ZSBjYWxsIHRoZSBjYWxsYmFjayB3aXRoIHRoZSByZXN1bHQuCiBDb21w
aWxhdGlvblJlc3VsdCBjb21waWxlKAotICAgIFZNJiwgQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25N
b2RlLCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCi0gICAgY29uc3QgT3BlcmFuZHM8
SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMsCi0gICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2s+LCBXb3JrbGlzdCopOworICAgIFZNJiwgQ29kZUJsb2NrKiwgQ29kZUJs
b2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlLAorICAgIHVuc2lnbmVk
IG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5k
bGVWYWx1ZXMsCisgICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+KTsK
IAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM5LDYgKzM5LDExIEBAIEZhaWxlZEZpbmFsaXplcjo6fkZhaWxlZEZpbmFs
aXplcigpCiB7CiB9CiAKK3NpemVfdCBGYWlsZWRGaW5hbGl6ZXI6OmNvZGVTaXplKCkKK3sKKyAg
ICByZXR1cm4gMDsKK30KKwogYm9vbCBGYWlsZWRGaW5hbGl6ZXI6OmZpbmFsaXplKCkKIHsKICAg
ICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxl
ZEZpbmFsaXplci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RmFpbGVkRmluYWxpemVyLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5
LDcgQEAgcHVibGljOgogICAgIEZhaWxlZEZpbmFsaXplcihQbGFuJik7CiAgICAgdmlydHVhbCB+
RmFpbGVkRmluYWxpemVyKCk7CiAgICAgCisgICAgdmlydHVhbCBzaXplX3QgY29kZVNpemUoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemUoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOwogfTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRmluYWxpemVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
NDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgRmluYWxpemVyKFBsYW4mKTsKICAgICB2aXJ0dWFs
IH5GaW5hbGl6ZXIoKTsKICAgICAKKyAgICB2aXJ0dWFsIHNpemVfdCBjb2RlU2l6ZSgpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemUoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGZpbmFs
aXplRnVuY3Rpb24oKSA9IDA7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDEyICsxMDAs
MTQgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBCaXRSU2hpZnQ6CiAgICAgICAgIGNhc2UgQml0
TFNoaWZ0OgogICAgICAgICBjYXNlIEJpdFVSU2hpZnQ6IHsKLSAgICAgICAgICAgIGZpeEJpbmFy
eUludEVkZ2VzKCk7CisgICAgICAgICAgICBmaXhJbnRFZGdlKG5vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgICAgIGZpeEludEVkZ2Uobm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIEFyaXRoSU11bDogewotICAgICAgICAgICAgZml4
QmluYXJ5SW50RWRnZXMoKTsKKyAgICAgICAgICAgIGZpeEludEVkZ2Uobm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgZml4SW50RWRnZShub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBu
b2RlLT5zZXRPcChBcml0aE11bCk7CiAgICAgICAgICAgICBub2RlLT5zZXRBcml0aE1vZGUoQXJp
dGg6OlVuY2hlY2tlZCk7CiAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKElu
dDMyVXNlKTsKQEAgLTQ1MCw2ICs0NTIsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEdldEJ5
VmFsOiB7CiAgICAgICAgICAgICBub2RlLT5zZXRBcnJheU1vZGUoCiAgICAgICAgICAgICAgICAg
bm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKAorICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBu
b2RlLT5jb2RlT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS0+cHJl
ZGljdGlvbigpLAogICAgICAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDIoKS0+cHJlZGljdGlv
bigpLAogICAgICAgICAgICAgICAgICAgICBTcGVjTm9uZSwgbm9kZS0+ZmxhZ3MoKSkpOwpAQCAt
NTA3LDYgKzUxMCw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgICAgIG5vZGUtPnNldEFycmF5TW9k
ZSgKICAgICAgICAgICAgICAgICBub2RlLT5hcnJheU1vZGUoKS5yZWZpbmUoCisgICAgICAgICAg
ICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAg
IGNoaWxkMS0+cHJlZGljdGlvbigpLAogICAgICAgICAgICAgICAgICAgICBjaGlsZDItPnByZWRp
Y3Rpb24oKSwKICAgICAgICAgICAgICAgICAgICAgY2hpbGQzLT5wcmVkaWN0aW9uKCkpKTsKQEAg
LTU5Miw2ICs1OTYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gdGhhdCB3b3VsZCBicmVh
ayB0aGluZ3MuCiAgICAgICAgICAgICBub2RlLT5zZXRBcnJheU1vZGUoCiAgICAgICAgICAgICAg
ICAgbm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKAorICAgICAgICAgICAgICAgICAgICBtX2dyYXBo
LCBub2RlLT5jb2RlT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS0+
cHJlZGljdGlvbigpICYgU3BlY0NlbGwsCiAgICAgICAgICAgICAgICAgICAgIFNwZWNJbnQzMiwK
ICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQyKCktPnByZWRpY3Rpb24oKSkpOwpAQCAt
OTQ2LDcgKzk1MSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgT3BJbmZvKG1fZ3JhcGgu
Z2xvYmFsT2JqZWN0Rm9yKG5vZGUtPmNvZGVPcmlnaW4pKSk7CiAgICAgICAgICAgICBOb2RlKiBi
YXJyaWVyTm9kZSA9IG1fZ3JhcGguYWRkTm9kZShTcGVjTm9uZSwgQ29uZGl0aW9uYWxTdG9yZUJh
cnJpZXIsIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIAogICAgICAgICAgICAgICAgIEVkZ2Uo
Z2xvYmFsT2JqZWN0Tm9kZSwgS25vd25DZWxsVXNlKSwgRWRnZShub2RlLT5jaGlsZDEoKS5ub2Rl
KCksIFVudHlwZWRVc2UpKTsKLSAgICAgICAgICAgIGZpeHVwTm9kZShiYXJyaWVyTm9kZSk7CiAg
ICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnQobV9pbmRleEluQmxvY2ssIGJhcnJpZXJO
b2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC05NTQsNyArOTU4LDYgQEAg
cHJpdmF0ZToKICAgICAgICAgY2FzZSBUZWFyT2ZmQWN0aXZhdGlvbjogewogICAgICAgICAgICAg
Tm9kZSogYmFycmllck5vZGUgPSBtX2dyYXBoLmFkZE5vZGUoU3BlY05vbmUsIFN0b3JlQmFycmll
cldpdGhOdWxsQ2hlY2ssIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIAogICAgICAgICAgICAg
ICAgIEVkZ2Uobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBVbnR5cGVkVXNlKSk7Ci0gICAgICAgICAg
ICBmaXh1cE5vZGUoYmFycmllck5vZGUpOwogICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5z
ZXJ0KG1faW5kZXhJbkJsb2NrLCBiYXJyaWVyTm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpAQCAtMTAzNCw2ICsxMDM3LDI0IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAg
ICBpZiAoIW5vZGUtPmNvbnRhaW5zTW92SGludCgpKQogICAgICAgICAgICAgREZHX05PREVfRE9f
VE9fQ0hJTERSRU4obV9ncmFwaCwgbm9kZSwgb2JzZXJ2ZVVudHlwZWRFZGdlKTsKKyAgICAgICAg
CisgICAgICAgIGlmIChub2RlLT5pc1Rlcm1pbmFsKCkpIHsKKyAgICAgICAgICAgIC8vIFRlcm1p
bmFsIG5vZGVzIGRvbid0IG5lZWQgcG9zdC1waGFudG9tcywgYW5kIGluc2VydGluZyB0aGVtIHdv
dWxkIHZpb2xhdGUKKyAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IHJlcXVpcmVtZW50IHRoYXQg
YSB0ZXJtaW5hbCBpcyB0aGUgbGFzdCB0aGluZyBpbiBhIGJsb2NrLiBXZQorICAgICAgICAgICAg
Ly8gc2hvdWxkIGV2ZW50dWFsbHkgY2hhbmdlIHRoYXQgcmVxdWlyZW1lbnQgYnV0IGV2ZW4gaWYg
d2UgZGlkLCB0aGlzIHdvdWxkCisgICAgICAgICAgICAvLyBzdGlsbCBiZSBhIHZhbGlkIG9wdGlt
aXphdGlvbi4gQWxsIHRlcm1pbmFscyBhY2NlcHQganVzdCBvbmUgaW5wdXQsIGFuZAorICAgICAg
ICAgICAgLy8gaWYgdGhhdCBpbnB1dCBpcyBhIGNvbnZlcnNpb24gbm9kZSB0aGVuIG5vIGZ1cnRo
ZXIgc3BlY3VsYXRpb25zIHdpbGwgYmUKKyAgICAgICAgICAgIC8vIHBlcmZvcm1lZC4KKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgYnkgYWxsb3dpbmcgUGhhbnRvbXMgYWZ0
ZXIgdGVybWluYWxzLgorICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyNjc3OAorICAgICAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLnJlc2l6
ZSgwKTsKKyAgICAgICAgLy8gU2luY2UgU3RvcmVCYXJyaWVycyBhcmUgcmVjdXJzaXZlbHkgZml4
ZWQgdXAgc28gdGhhdCB0aGVpciBjaGlsZHJlbiBsb29rIAorICAgICAgICAvLyBpZGVudGljYWwg
dG8gdGhhdCBvZiB0aGUgbm9kZSB0aGV5J3JlIGJhcnJpZXItaW5nLCB3ZSBuZWVkIHRvIGF2b2lk
IGFkZGluZworICAgICAgICAvLyBhbnkgUGhhbnRvbXMgd2hlbiBwcm9jZXNzaW5nIHRoZW0gYmVj
YXVzZSB0aGlzIHdvdWxkIGludmFsaWRhdGUgdGhlIAorICAgICAgICAvLyBJbnNlcnRpb25TZXQn
cyBpbnZhcmlhbnQgb2YgaW5zZXJ0aW5nIHRoaW5ncyBpbiBhIG1vbm90b25pY2FsbHkgaW5jcmVh
c2luZworICAgICAgICAvLyBvcmRlci4gVGhpcyBzaG91bGQgYmUgb2theSBhbnl3YXlzIGJlY2F1
c2UgU3RvcmVCYXJyaWVycyBjYW4ndCBleGl0LiAKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5KCk7CiAgICAgfQogICAgIAogICAgIHZvaWQgb2JzZXJ2
ZVVudHlwZWRFZGdlKE5vZGUqLCBFZGdlJiBlZGdlKQpAQCAtMTMxOSw2ICsxMzQwLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgYWRkUGhhbnRv
bXNJZk5lY2Vzc2FyeSgpOwogICAgICAgICB9CiAgICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1
dGUoYmxvY2spOwogICAgIH0KQEAgLTEzMzQsOCArMTM1NiwxMCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgaWYgKG5vZGUtPm9wKCkgIT0gU2V0TG9jYWwpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5k
KCkgPT0gVW50eXBlZFVzZSkKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5k
KCkgPT0gVW50eXBlZFVzZSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4o
bm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIGFkZFBoYW50b21zSWZOZWNlc3Nhcnko
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBtX2luc2VydGlvblNldC5leGVj
dXRlKGJsb2NrKTsKICAgICB9CkBAIC0xNTA5LDYgKzE1MzMsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgIC8vIEludDhUb0RvdWJsZSB3aWxsIGNvbnZlcnQgaW50NTIncyB0aGF0IGZpdCBp
biBhbiBpbnQzMiBpbnRvIGEgZG91YmxlCiAgICAgICAgICAgICAgICAgLy8gcmF0aGVyIHRoYW4g
dHJ5aW5nIHRvIGNyZWF0ZSBhIGJveGVkIGludDMyIGxpa2UgSW50NTJUb1ZhbHVlIGRvZXMuCiAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLmFwcGVu
ZChlZGdlLm5vZGUoKSk7CiAgICAgICAgICAgICAgICAgTm9kZSogcmVzdWx0ID0gbV9pbnNlcnRp
b25TZXQuaW5zZXJ0Tm9kZSgKICAgICAgICAgICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNw
ZWNJbnQ1MkFzRG91YmxlLCBJbnQ1MlRvRG91YmxlLAogICAgICAgICAgICAgICAgICAgICBtX2N1
cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBFZGdlKGVkZ2Uubm9kZSgpLCBOdW1iZXJVc2UpKTsKQEAg
LTE1NjIsNiArMTU4Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLwogICAgICAgICAgICAg
Ly8gQnV0IHRoZSBzb2x1dGlvbiB3ZSB1c2UgaGFuZGxlcyB0aGUgYWJvdmUgZ3JhY2VmdWxseS4K
ICAgICAgICAgICAgIAorICAgICAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLmFwcGVuZChlZGdl
Lm5vZGUoKSk7CiAgICAgICAgICAgICBOb2RlKiByZXN1bHQgPSBtX2luc2VydGlvblNldC5pbnNl
cnROb2RlKAogICAgICAgICAgICAgICAgIG1faW5kZXhJbkJsb2NrLCBTcGVjSW50NTIsIEludDUy
VG9WYWx1ZSwKICAgICAgICAgICAgICAgICBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBFZGdl
KGVkZ2Uubm9kZSgpLCBVbnR5cGVkVXNlKSk7CkBAIC0xNTgzLDE2ICsxNjA5LDE1IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBiYXJyaWVyTm9kZSA9IG1fZ3JhcGguYWRkTm9kZShTcGVjTm9uZSwg
Q29uZGl0aW9uYWxTdG9yZUJhcnJpZXIsIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIAogICAg
ICAgICAgICAgICAgIEVkZ2UoY2hpbGQxLm5vZGUoKSwgY2hpbGQxLnVzZUtpbmQoKSksIEVkZ2Uo
Y2hpbGQyLm5vZGUoKSwgY2hpbGQyLnVzZUtpbmQoKSkpOwogICAgICAgICB9Ci0gICAgICAgIGZp
eHVwTm9kZShiYXJyaWVyTm9kZSk7CiAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydChpbmRl
eEluQmxvY2ssIGJhcnJpZXJOb2RlKTsKICAgICB9CiAKLSAgICBib29sIGZpeEludEVkZ2UoRWRn
ZSYgZWRnZSkKKyAgICB2b2lkIGZpeEludEVkZ2UoRWRnZSYgZWRnZSkKICAgICB7CiAgICAgICAg
IE5vZGUqIG5vZGUgPSBlZGdlLm5vZGUoKTsKICAgICAgICAgaWYgKG5vZGUtPnNob3VsZFNwZWN1
bGF0ZUludDMyKCkpIHsKICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KGVkZ2UpOwotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBVc2VLaW5kIHVzZUtpbmQ7CkBAIC0xNjEwLDI0ICsxNjM1LDEzIEBA
IHByaXZhdGU6CiAgICAgICAgIG9ic2VydmVVc2VLaW5kT25Ob2RlKG5vZGUsIHVzZUtpbmQpOwog
ICAgICAgICAKICAgICAgICAgZWRnZSA9IEVkZ2UobmV3Tm9kZSwgS25vd25JbnQzMlVzZSk7Ci0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICB2b2lkIGZpeEJpbmFyeUludEVk
Z2VzKCkKLSAgICB7Ci0gICAgICAgIEFkamFjZW5jeUxpc3QgY2hpbGRyZW4gPSBtX2N1cnJlbnRO
b2RlLT5jaGlsZHJlbjsKLSAgICAgICAgCi0gICAgICAgIC8vIENhbGwgZml4SW50RWRnZSgpIG9u
IGJvdGggZWRnZXMuCi0gICAgICAgIGJvb2wgbmVlZFBoYW50b20gPQotICAgICAgICAgICAgZml4
SW50RWRnZShtX2N1cnJlbnROb2RlLT5jaGlsZDEoKSkgfCBmaXhJbnRFZGdlKG1fY3VycmVudE5v
ZGUtPmNoaWxkMigpKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghbmVlZFBoYW50b20pCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9pbmRl
eEluQmxvY2sgKyAxLCBTcGVjTm9uZSwgUGhhbnRvbSwgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdp
biwgY2hpbGRyZW4pOworICAgICAgICBtX3JlcXVpcmVkUGhhbnRvbXMuYXBwZW5kKG5vZGUpOwog
ICAgIH0KICAgICAKICAgICB2b2lkIGluamVjdEludDMyVG9Eb3VibGVOb2RlKEVkZ2UmIGVkZ2Us
IFVzZUtpbmQgdXNlS2luZCA9IE51bWJlclVzZSkKICAgICB7CisgICAgICAgIG1fcmVxdWlyZWRQ
aGFudG9tcy5hcHBlbmQoZWRnZS5ub2RlKCkpOworICAgICAgICAKICAgICAgICAgTm9kZSogcmVz
dWx0ID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAgICAgICAgICAgIG1faW5kZXhJbkJs
b2NrLCBTcGVjSW50NTJBc0RvdWJsZSwgSW50MzJUb0RvdWJsZSwKICAgICAgICAgICAgIG1fY3Vy
cmVudE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5ub2RlKCksIE51bWJlclVzZSkpOwpAQCAt
MTcyMiw3ICsxNzM2LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICAgICAgCi0gICAgICAgIGFycmF5TW9kZSA9IGFycmF5TW9kZS5yZWZpbmUobm9kZS0+Y2hp
bGQxKCktPnByZWRpY3Rpb24oKSwgbm9kZS0+cHJlZGljdGlvbigpKTsKKyAgICAgICAgYXJyYXlN
b2RlID0gYXJyYXlNb2RlLnJlZmluZSgKKyAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVP
cmlnaW4sIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCksIG5vZGUtPnByZWRpY3Rpb24oKSk7
CiAgICAgICAgICAgICAKICAgICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6Okdl
bmVyaWMpIHsKICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBpbnB1dCBpcyBzb21ldGhpbmcg
dGhhdCB3ZSBjYW4ndCBnZXQgYXJyYXkgbGVuZ3RoIGZvciwgYnV0IGZvciB3aGljaCB3ZQpAQCAt
MTgxMywxMiArMTgyOCwyNyBAQCBwcml2YXRlOgogICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVz
ZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgCisg
ICAgdm9pZCBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5KCkKKyAgICB7CisgICAgICAgIGlmIChtX3Jl
cXVpcmVkUGhhbnRvbXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9yZXF1aXJlZFBoYW50b21zLnNpemUoKTsgaS0t
OykgeworICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAg
ICAgICBtX2luZGV4SW5CbG9jayArIDEsIFNwZWNOb25lLCBQaGFudG9tLCBtX2N1cnJlbnROb2Rl
LT5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgIEVkZ2UobV9yZXF1aXJlZFBoYW50b21zW2ld
LCBVbnR5cGVkVXNlKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fcmVxdWlyZWRQ
aGFudG9tcy5yZXNpemUoMCk7CisgICAgfQogCiAgICAgQmFzaWNCbG9jayogbV9ibG9jazsKICAg
ICB1bnNpZ25lZCBtX2luZGV4SW5CbG9jazsKICAgICBOb2RlKiBtX2N1cnJlbnROb2RlOwogICAg
IEluc2VydGlvblNldCBtX2luc2VydGlvblNldDsKICAgICBib29sIG1fcHJvZml0YWJpbGl0eUNo
YW5nZWQ7CisgICAgVmVjdG9yPE5vZGUqLCAzPiBtX3JlcXVpcmVkUGhhbnRvbXM7CiB9OwogICAg
IAogYm9vbCBwZXJmb3JtRml4dXAoR3JhcGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw4ICszNiwxMCBA
QAogI2luY2x1ZGUgIkZ1bmN0aW9uRXhlY3V0YWJsZUR1bXAuaCIKICNpbmNsdWRlICJKSVQuaCIK
ICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhbmRzSW5saW5lcy5oIgogI2luY2x1ZGUgIk9w
ZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgPHd0Zi9D
b21tYVByaW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KIApAQCAtNjc4LDEwICs2
ODAsMTAgQEAgRnVsbEJ5dGVjb2RlTGl2ZW5lc3MmIEdyYXBoOjpsaXZlbmVzc0ZvcgogYm9vbCBH
cmFwaDo6aXNMaXZlSW5CeXRlY29kZShWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCwgQ29kZU9yaWdp
biBjb2RlT3JpZ2luKQogewogICAgIGZvciAoOzspIHsKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVy
IHJlZyA9IFZpcnR1YWxSZWdpc3RlcigKKyAgICAgICAgICAgIG9wZXJhbmQub2Zmc2V0KCkgLSBj
b2RlT3JpZ2luLnN0YWNrT2Zmc2V0KCkpOworICAgICAgICAKICAgICAgICAgaWYgKG9wZXJhbmQu
b2Zmc2V0KCkgPCBjb2RlT3JpZ2luLnN0YWNrT2Zmc2V0KCkgKyBKU1N0YWNrOjpDYWxsRnJhbWVI
ZWFkZXJTaXplKSB7Ci0gICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0gVmlydHVhbFJl
Z2lzdGVyKAotICAgICAgICAgICAgICAgIG9wZXJhbmQub2Zmc2V0KCkgLSBjb2RlT3JpZ2luLnN0
YWNrT2Zmc2V0KCkpOwotICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAocmVnLmlzQXJndW1l
bnQoKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHJlZy5vZmZzZXQoKSA8IEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpOwogICAgICAgICAgICAgICAgIApAQCAtNzAwLDEw
ICs3MDIsMTggQEAgYm9vbCBHcmFwaDo6aXNMaXZlSW5CeXRlY29kZShWaXJ0dWFsUmVnaQogICAg
ICAgICAgICAgICAgIHJlZy5vZmZzZXQoKSwgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKICAg
ICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKCFjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFt
ZSkKKyAgICAgICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUgPSBjb2RlT3JpZ2lu
LmlubGluZUNhbGxGcmFtZTsKKyAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUpCiAgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICAvLyBBcmd1bWVudHMgYXJlIGFsd2F5cyBsaXZlLiBUaGlz
IHdvdWxkIGJlIHJlZHVuZGFudCBpZiBpdCB3YXNuJ3QgZm9yIG91cgorICAgICAgICAvLyBvcF9j
YWxsX3ZhcmFyZ3MgaW5saW5pbmcuCisgICAgICAgIGlmIChyZWcuaXNBcmd1bWVudCgpCisgICAg
ICAgICAgICAmJiByZWcudG9Bcmd1bWVudCgpCisgICAgICAgICAgICAmJiBzdGF0aWNfY2FzdDxz
aXplX3Q+KHJlZy50b0FyZ3VtZW50KCkpIDwgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHMuc2l6
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIAotICAgICAgICBjb2RlT3Jp
Z2luID0gY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUtPmNhbGxlcjsKKyAgICAgICAgY29kZU9y
aWdpbiA9IGlubGluZUNhbGxGcmFtZS0+Y2FsbGVyOwogICAgIH0KICAgICAKICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTcxMSw3ICs3MjEsMTMgQEAgYm9vbCBHcmFwaDo6aXNMaXZlSW5CeXRlY29kZShW
aXJ0dWFsUmVnaQogCiB1bnNpZ25lZCBHcmFwaDo6ZnJhbWVSZWdpc3RlckNvdW50KCkKIHsKLSAg
ICByZXR1cm4gbV9uZXh0TWFjaGluZUxvY2FsICsgbV9wYXJhbWV0ZXJTbG90czsKKyAgICB1bnNp
Z25lZCByZXN1bHQgPSBtX25leHRNYWNoaW5lTG9jYWwgKyBzdGQ6Om1heChtX3BhcmFtZXRlclNs
b3RzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGxJ
blJlZ2lzdGVycykpOworICAgIHJldHVybiByb3VuZExvY2FsUmVnaXN0ZXJDb3VudEZvckZyYW1l
UG9pbnRlck9mZnNldChyZXN1bHQpOworfQorCit1bnNpZ25lZCBHcmFwaDo6c3RhY2tQb2ludGVy
T2Zmc2V0KCkKK3sKKyAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZnJhbWVSZWdp
c3RlckNvdW50KCkgLSAxKS5vZmZzZXQoKTsKIH0KIAogdW5zaWduZWQgR3JhcGg6OnJlcXVpcmVk
UmVnaXN0ZXJDb3VudEZvckV4aXQoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3Jh
cGguaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OTMsNiArNzkzLDcgQEAgcHVibGljOgogICAgIGJv
b2wgaXNMaXZlSW5CeXRlY29kZShWaXJ0dWFsUmVnaXN0ZXIsIENvZGVPcmlnaW4pOwogICAgIAog
ICAgIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudCgpOworICAgIHVuc2lnbmVkIHN0YWNrUG9p
bnRlck9mZnNldCgpOwogICAgIHVuc2lnbmVkIHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQo
KTsKICAgICB1bnNpZ25lZCByZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0
KCk7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29k
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw2ICsxNTYsNyBAQCB2b2lkIEpJVENvZGU6OnNl
dE9wdGltaXphdGlvblRocmVzaG9sZEJhCiAgICAgc3dpdGNoIChyZXN1bHQpIHsKICAgICBjYXNl
IENvbXBpbGF0aW9uU3VjY2Vzc2Z1bDoKICAgICAgICAgb3B0aW1pemVOZXh0SW52b2NhdGlvbihj
b2RlQmxvY2spOworICAgICAgICBjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigpLT5tX2hhc0Jl
ZW5Db21waWxlZFdpdGhGVEwgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDb21w
aWxhdGlvbkZhaWxlZDoKICAgICAgICAgZG9udE9wdGltaXplQW55dGltZVNvb24oY29kZUJsb2Nr
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMTE5LDYgKzExOSw3IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8REZHOjpPU1JFbnRy
eURhdGE+IG9zckVudHJ5OwogICAgIFNlZ21lbnRlZFZlY3RvcjxERkc6Ok9TUkV4aXQsIDg+IG9z
ckV4aXQ7CiAgICAgVmVjdG9yPERGRzo6U3BlY3VsYXRpb25SZWNvdmVyeT4gc3BlY3VsYXRpb25S
ZWNvdmVyeTsKKyAgICBWZWN0b3I8dW5zaWduZWQ+IHNsb3dQYXRoQ2FsbHM7CiAgICAgREZHOjpW
YXJpYWJsZUV2ZW50U3RyZWFtIHZhcmlhYmxlRXZlbnRTdHJlYW07CiAgICAgREZHOjpNaW5pZmll
ZEdyYXBoIG1pbmlmaWVkREZHOwogI2lmIEVOQUJMRShGVExfSklUKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJldmlzaW9uIDE2MjkxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1
ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiREZHRmFpbGVkRmluYWxpemVyLmgiCiAjaW5jbHVkZSAiREZHSW5saW5lQ2Fj
aGVXcmFwcGVySW5saW5lcy5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRGR1NwZWN1
bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1
ZUlubGluZXMuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgog
I2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCkBAIC05MiwxNSArOTQs
MTQgQEAgdm9pZCBKSVRDb21waWxlcjo6bGlua09TUkV4aXRzKCkKIHZvaWQgSklUQ29tcGlsZXI6
OmNvbXBpbGVFbnRyeSgpCiB7CiAgICAgLy8gVGhpcyBjb2RlIGN1cnJlbnRseSBtYXRjaGVzIHRo
ZSBvbGQgSklULiBJbiB0aGUgZnVuY3Rpb24gaGVhZGVyIHdlIG5lZWQgdG8KLSAgICAvLyBwb3Ag
dGhlIHJldHVybiBhZGRyZXNzIChzaW5jZSB3ZSBkbyBub3QgYWxsb3cgYW55IHJlY3Vyc2lvbiBv
biB0aGUgbWFjaGluZQotICAgIC8vIHN0YWNrKSwgYW5kIHBlcmZvcm0gYSBmYXN0IHN0YWNrIGNo
ZWNrLgorICAgIC8vIHNhdmUgcmV0dXJuIGFkZHJlc3MgYW5kIGNhbGwgZnJhbWUgdmlhIHRoZSBw
cm9sb2d1ZSBhbmQgcGVyZm9ybSBhIGZhc3Qgc3RhY2sgY2hlY2suCiAgICAgLy8gRklYTUU6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjI5MgogICAgIC8vIFdlJ2xs
IG5lZWQgdG8gY29udmVydCB0aGUgcmVtYWluaW5nIGN0aV8gc3R5bGUgY2FsbHMgKHNwZWNpZmlj
YWxseSB0aGUgc3RhY2sKICAgICAvLyBjaGVjaykgd2hpY2ggd2lsbCBiZSBkZXBlbmRlbnQgb24g
c3RhY2sgbGF5b3V0LiAoV2UnZCBuZWVkIHRvIGFjY291bnQgZm9yIHRoaXMgaW4KICAgICAvLyBi
b3RoIG5vcm1hbCByZXR1cm4gY29kZSBhbmQgd2hlbiBqdW1waW5nIHRvIGFuIGV4Y2VwdGlvbiBo
YW5kbGVyKS4KLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6cmVn
VDIpOwotICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86OnJlZ1Qy
KTsKKyAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgIGVtaXRQdXRJbW1lZGlhdGVUb0Nh
bGxGcmFtZUhlYWRlcihtX2NvZGVCbG9jaywgSlNTdGFjazo6Q29kZUJsb2NrKTsKKyAgICBqaXRB
c3NlcnRUYWdzSW5QbGFjZSgpOwogfQogCiB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlQm9keSgp
CkBAIC0xMjEsMjIgKzEyMiwyNSBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRXhjZXB0aW9u
SGFuZGxlCiAKICAgICBpZiAoIW1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNr
LmVtcHR5KCkpIHsKICAgICAgICAgbV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJh
Y2subGluayh0aGlzKTsKLSAgICAgICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhl
YWRlclB0cihHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBlbWl0R2V0Q2FsbGVyRnJh
bWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgICAg
IGRvTG9va3VwID0ganVtcCgpOwogICAgIH0KIAogICAgIGlmICghbV9leGNlcHRpb25DaGVja3Mu
ZW1wdHkoKSkKICAgICAgICAgbV9leGNlcHRpb25DaGVja3MubGluayh0aGlzKTsKIAotICAgIC8v
IGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIgaXMgcGFzc2VkIG9uZSBhcmd1bWVudCwgdGhlIGV4ZWMg
KHRoZSBDYWxsRnJhbWUqKS4KLSAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIgaXMg
cGFzc2VkIHR3byBhcmd1bWVudHMsIHRoZSBWTSBhbmQgdGhlIGV4ZWMgKHRoZSBDYWxsRnJhbWUq
KS4KKyAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpOwogCiAgICAgaWYgKGRvTG9va3VwLmlzU2V0KCkpCiAgICAgICAgIGRvTG9va3VwLmxp
bmsodGhpcyk7CiAKKyAgICBtb3ZlKFRydXN0ZWRJbW1QdHIodm0oKSksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CisKICNpZiBDUFUoWDg2KQogICAgIC8vIEZJWE1FOiBzaG91bGQgdXNlIHRoZSBj
YWxsIGFic3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkgaW4gdGhlIFNwZWN1bGF0aXZl
SklUIGxheWVyIQogICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBwb2tlKEdQ
UkluZm86OmFyZ3VtZW50R1BSMSwgMSk7CiAjZW5kaWYKICAgICBtX2NhbGxzLmFwcGVuZChDYWxs
TGlua1JlY29yZChjYWxsKCksIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpKTsKICAgICBqdW1wVG9F
eGNlcHRpb25IYW5kbGVyKCk7CkBAIC0yMjgsMTMgKzIzMiwxNiBAQCB2b2lkIEpJVENvbXBpbGVy
OjpsaW5rKExpbmtCdWZmZXImIGxpbmtCCiAgICAgICAgIGluZm8ucGF0Y2guZGVsdGFDYWxsVG9T
bG93Q2FzZSA9IGRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihjYWxsUmV0dXJuTG9jYXRpb24sIGxp
bmtCdWZmZXIubG9jYXRpb25PZihtX2luc1tpXS5tX3Nsb3dQYXRoR2VuZXJhdG9yLT5sYWJlbCgp
KSk7CiAgICAgfQogICAgIAorICAgIFJFTEVBU0VfQVNTRVJUKCFtX2dyYXBoLm1fcGxhbi53aWxs
VHJ5VG9UaWVyVXAgfHwgbV9qaXRDb2RlLT5zbG93UGF0aENhbGxzLnNpemUoKSA+PSBtX2pzQ2Fs
bHMuc2l6ZSgpKTsKICAgICBtX2NvZGVCbG9jay0+c2V0TnVtYmVyT2ZDYWxsTGlua0luZm9zKG1f
anNDYWxscy5zaXplKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2pzQ2FsbHMu
c2l6ZSgpOyArK2kpIHsKICAgICAgICAgQ2FsbExpbmtJbmZvJiBpbmZvID0gbV9jb2RlQmxvY2st
PmNhbGxMaW5rSW5mbyhpKTsKICAgICAgICAgaW5mby5jYWxsVHlwZSA9IG1fanNDYWxsc1tpXS5t
X2NhbGxUeXBlOwotICAgICAgICBpbmZvLmlzREZHID0gdHJ1ZTsKICAgICAgICAgaW5mby5jb2Rl
T3JpZ2luID0gbV9qc0NhbGxzW2ldLm1fY29kZU9yaWdpbjsKLSAgICAgICAgbGlua0J1ZmZlci5s
aW5rKG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxsLCBGdW5jdGlvblB0cigobV92bS0+Z2V0Q1RJU3R1
YihpbmZvLmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q29uc3RydWN0ID8gbGlua0NvbnN0cnVj
dFRodW5rR2VuZXJhdG9yIDogbGlua0NhbGxUaHVua0dlbmVyYXRvcikpLmNvZGUoKS5leGVjdXRh
YmxlQWRkcmVzcygpKSk7CisgICAgICAgIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxpbmtU
aHVua0dlbmVyYXRvckZvcigKKyAgICAgICAgICAgIGluZm8uY2FsbFR5cGUgPT0gQ2FsbExpbmtJ
bmZvOjpDb25zdHJ1Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisgICAgICAg
ICAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKKyAgICAgICAgbGlua0J1ZmZl
ci5saW5rKG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxsLCBGdW5jdGlvblB0cihtX3ZtLT5nZXRDVElT
dHViKGdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKICAgICAgICAgaW5m
by5jYWxsUmV0dXJuTG9jYXRpb24gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbChtX2pz
Q2FsbHNbaV0ubV9zbG93Q2FsbCk7CiAgICAgICAgIGluZm8uaG90UGF0aEJlZ2luID0gbGlua0J1
ZmZlci5sb2NhdGlvbk9mKG1fanNDYWxsc1tpXS5tX3RhcmdldFRvQ2hlY2spOwogICAgICAgICBp
bmZvLmhvdFBhdGhPdGhlciA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fanNDYWxs
c1tpXS5tX2Zhc3RDYWxsKTsKQEAgLTI3OCw2ICsyODUsOCBAQCB2b2lkIEpJVENvbXBpbGVyOjpj
b21waWxlKCkKICAgICBzZXRTdGFydE9mQ29kZSgpOwogICAgIGNvbXBpbGVFbnRyeSgpOwogICAg
IG1fc3BlY3VsYXRpdmUgPSBhZG9wdFB0cihuZXcgU3BlY3VsYXRpdmVKSVQoKnRoaXMpKTsKKyAg
ICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1fZ3JhcGguc3RhY2tQb2ludGVyT2Zmc2V0KCkgKiBzaXpl
b2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogICAgIGNvbXBpbGVC
b2R5KCk7CiAgICAgc2V0RW5kT2ZNYWluUGF0aCgpOwogCkBAIC0zMjUsMTEgKzMzNCwxMiBAQCB2
b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogICAgIC8vIHNvIGVudGVyIGFmdGVy
IHRoaXMuCiAgICAgTGFiZWwgZnJvbUFyaXR5Q2hlY2sodGhpcyk7CiAgICAgLy8gUGxhbnQgYSBj
aGVjayB0aGF0IHN1ZmZpY2llbnQgc3BhY2UgaXMgYXZhaWxhYmxlIGluIHRoZSBKU1N0YWNrLgot
ICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9ncmFwaC5y
ZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCkpLm9mZnNldCgpICogc2l6
ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdU
MSk7Ci0gICAgSnVtcCBzdGFja0NoZWNrID0gYnJhbmNoUHRyKEFib3ZlLCBBYnNvbHV0ZUFkZHJl
c3MobV92bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCBHUFJJbmZvOjpyZWdUMSk7Ci0gICAg
Ly8gUmV0dXJuIGhlcmUgYWZ0ZXIgc3RhY2sgY2hlY2suCi0gICAgTGFiZWwgZnJvbVN0YWNrQ2hl
Y2sgPSBsYWJlbCgpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9y
TG9jYWwobV9ncmFwaC5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCkg
LSAxKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgR1BSSW5mbzo6cmVnVDEpOworICAgIEp1bXAgc3RhY2tPdmVyZmxvdyA9IGJyYW5jaFB0
cihBYm92ZSwgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwg
R1BSSW5mbzo6cmVnVDEpOwogCisgICAgLy8gTW92ZSB0aGUgc3RhY2sgcG9pbnRlciBkb3duIHRv
IGFjY29tbW9kYXRlIGxvY2FscworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobV9ncmFwaC5zdGFj
a1BvaW50ZXJPZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KCk7CiAKICAgICAvLyA9PT0gRnVuY3Rpb24gYm9keSBjb2RlIGdlbmVyYXRpb24gPT09
CiAgICAgbV9zcGVjdWxhdGl2ZSA9IGFkb3B0UHRyKG5ldyBTcGVjdWxhdGl2ZUpJVCgqdGhpcykp
OwpAQCAtMzM4LDE3ICszNDgsMTkgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9u
KCkKIAogICAgIC8vID09PSBGdW5jdGlvbiBmb290ZXIgY29kZSBnZW5lcmF0aW9uID09PQogICAg
IC8vCi0gICAgLy8gR2VuZXJhdGUgY29kZSB0byBwZXJmb3JtIHRoZSBzbG93IHN0YWNrIGNoZWNr
IChpZiB0aGUgZmFzdCBvbmUgaW4KKyAgICAvLyBHZW5lcmF0ZSBjb2RlIHRvIHBlcmZvcm0gdGhl
IHN0YWNrIG92ZXJmbG93IGhhbmRsaW5nIChpZiB0aGUgc3RhY2sgY2hlY2sgaW4KICAgICAvLyB0
aGUgZnVuY3Rpb24gaGVhZGVyIGZhaWxzKSwgYW5kIGdlbmVyYXRlIHRoZSBlbnRyeSBwb2ludCB3
aXRoIGFyaXR5IGNoZWNrLgogICAgIC8vCi0gICAgLy8gR2VuZXJhdGUgdGhlIHN0YWNrIGNoZWNr
OyBpZiB0aGUgZmFzdCBjaGVjayBpbiB0aGUgZnVuY3Rpb24gaGVhZCBmYWlscywKLSAgICAvLyB3
ZSBuZWVkIHRvIGNhbGwgb3V0IHRvIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIHdoZXRoZXIg
bW9yZSBzcGFjZSBpcyBhdmFpbGFibGUuCi0gICAgLy8gRklYTUU6IGNoYW5nZSB0aGlzIGZyb20g
YSBjdGkgY2FsbCB0byBhIERGRyBzdHlsZSBvcGVyYXRpb24gKG5vcm1hbCBDIGNhbGxpbmcgY29u
dmVudGlvbnMpLgotICAgIHN0YWNrQ2hlY2subGluayh0aGlzKTsKKyAgICAvLyBHZW5lcmF0ZSB0
aGUgc3RhY2sgb3ZlcmZsb3cgaGFuZGxpbmc7IGlmIHRoZSBzdGFjayBjaGVjayBpbiB0aGUgZnVu
Y3Rpb24gaGVhZCBmYWlscywKKyAgICAvLyB3ZSBuZWVkIHRvIGNhbGwgb3V0IHRvIGEgaGVscGVy
IGZ1bmN0aW9uIHRvIHRocm93IHRoZSBTdGFja092ZXJmbG93RXJyb3IuCisgICAgc3RhY2tPdmVy
Zmxvdy5saW5rKHRoaXMpOwogCiAgICAgZW1pdFN0b3JlQ29kZU9yaWdpbihDb2RlT3JpZ2luKDAp
KTsKLSAgICBtX3NwZWN1bGF0aXZlLT5jYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNr
T25FeGNlcHRpb24ob3BlcmF0aW9uU3RhY2tDaGVjaywgbV9jb2RlQmxvY2spOwotICAgIGp1bXAo
ZnJvbVN0YWNrQ2hlY2spOworCisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
KQorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgIG1fc3BlY3VsYXRpdmUtPmNhbGxP
cGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25UaHJvd1N0
YWNrT3ZlcmZsb3dFcnJvciwgbV9jb2RlQmxvY2spOwogICAgIAogICAgIC8vIFRoZSBmYXN0IGVu
dHJ5IHBvaW50IGludG8gYSBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgY29ycmVjdCBudW1i
ZXIgb2YgYXJndW1lbnRzCiAgICAgLy8gaGF2ZSBiZWVuIHBhc3NlZCB0byB0aGUgY2FsbCAod2Ug
b25seSB1c2UgdGhlIGZhc3QgZW50cnkgcG9pbnQgd2hlcmUgd2UgY2FuIHN0YXRpY2FsbHkKQEAg
LTM2MSw5ICszNzMsMTUgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKCkKICAg
ICBsb2FkMzIoQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpSlNT
dGFjazo6QXJndW1lbnRDb3VudCksIEdQUkluZm86OnJlZ1QxKTsKICAgICBicmFuY2gzMihBYm92
ZU9yRXF1YWwsIEdQUkluZm86OnJlZ1QxLCBUcnVzdGVkSW1tMzIobV9jb2RlQmxvY2stPm51bVBh
cmFtZXRlcnMoKSkpLmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgdGhpcyk7CiAgICAgZW1pdFN0b3Jl
Q29kZU9yaWdpbihDb2RlT3JpZ2luKDApKTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwpCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIG1fc3BlY3VsYXRpdmUt
PmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihtX2NvZGVCbG9j
ay0+bV9pc0NvbnN0cnVjdG9yID8gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayA6IG9wZXJh
dGlvbkNhbGxBcml0eUNoZWNrLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgaWYgKG1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIGJyYW5j
aFRlc3QzMihaZXJvLCBHUFJJbmZvOjpyZWdUMCkubGlua1RvKGZyb21Bcml0eUNoZWNrLCB0aGlz
KTsKICAgICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmlnaW4oMCkpOworICAgIG1vdmUoVHJ1
c3RlZEltbVB0cihtX3ZtLT5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENzRm9y
KCptX3ZtLCBtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSksIEdQUkluZm86OnJlZ1Q1KTsK
KyAgICBsb2FkUHRyKEJhc2VJbmRleChHUFJJbmZvOjpyZWdUNSwgR1BSSW5mbzo6cmVnVDAsIHRp
bWVzUHRyKCkpLCBHUFJJbmZvOjpyZWdUNSk7CiAgICAgbV9jYWxsQXJpdHlGaXh1cCA9IGNhbGwo
KTsKICAgICBqdW1wKGZyb21Bcml0eUNoZWNrKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MjIxLDYgKzIyMSwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX2lucy5hcHBlbmQocmVj
b3JkKTsKICAgICB9CisgICAgCisgICAgdW5zaWduZWQgY3VycmVudEpTQ2FsbEluZGV4KCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2pzQ2FsbHMuc2l6ZSgpOworICAgIH0KIAogICAg
IHZvaWQgYWRkSlNDYWxsKENhbGwgZmFzdENhbGwsIENhbGwgc2xvd0NhbGwsIERhdGFMYWJlbFB0
ciB0YXJnZXRUb0NoZWNrLCBDYWxsTGlua0luZm86OkNhbGxUeXBlIGNhbGxUeXBlLCBHUFJSZWcg
Y2FsbGVlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmNwcAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NiwxMCArNDYsMTYgQEAgSklURmluYWxpemVyOjp+SklURmluYWxpemVyKCkK
IHsKIH0KIAorc2l6ZV90IEpJVEZpbmFsaXplcjo6Y29kZVNpemUoKQoreworICAgIHJldHVybiBt
X2xpbmtCdWZmZXItPnNpemUoKTsKK30KKwogYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplKCkK
IHsKLSAgICBtX2ppdENvZGUtPmluaXRpYWxpemVDb2RlUmVmKG1fbGlua0J1ZmZlci0+ZmluYWxp
emVDb2RlV2l0aG91dERpc2Fzc2VtYmx5KCkpOwotICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJ
VENvZGUobV9qaXRDb2RlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgbV9qaXRDb2Rl
LT5pbml0aWFsaXplQ29kZVJlZigKKyAgICAgICAgbV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVX
aXRob3V0RGlzYXNzZW1ibHkoKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgIG1fcGxh
bi5jb2RlQmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlKTsKICAgICAKICAgICBmaW5hbGl6ZUNv
bW1vbigpOwogICAgIApAQCAtNTksOCArNjUsOSBAQCBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxp
emUoKQogYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogewogICAgIFJFTEVB
U0VfQVNTRVJUKCFtX3dpdGhBcml0eUNoZWNrLmlzRW1wdHlWYWx1ZSgpKTsKLSAgICBtX2ppdENv
ZGUtPmluaXRpYWxpemVDb2RlUmVmKG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2RlV2l0aG91dERp
c2Fzc2VtYmx5KCkpOwotICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUobV9qaXRDb2Rl
LCBtX3dpdGhBcml0eUNoZWNrKTsKKyAgICBtX2ppdENvZGUtPmluaXRpYWxpemVDb2RlUmVmKAor
ICAgICAgICBtX2xpbmtCdWZmZXItPmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpLCBt
X3dpdGhBcml0eUNoZWNrKTsKKyAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1faml0
Q29kZSk7CiAgICAgCiAgICAgZmluYWxpemVDb21tb24oKTsKICAgICAKQEAgLTc1LDYgKzgyLDkg
QEAgdm9pZCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplQ29tbW9uKCkKICAgICAKICAgICBpZiAobV9w
bGFuLmNvbXBpbGF0aW9uKQogICAgICAgICBtX3BsYW4udm0ubV9wZXJCeXRlY29kZVByb2ZpbGVy
LT5hZGRDb21waWxhdGlvbihtX3BsYW4uY29tcGlsYXRpb24pOworICAgIAorICAgIGlmICghbV9w
bGFuLndpbGxUcnlUb1RpZXJVcCkKKyAgICAgICAgbV9wbGFuLmNvZGVCbG9jay0+YmFzZWxpbmVW
ZXJzaW9uKCktPm1fZGlkRmFpbEZUTENvbXBpbGF0aW9uID0gdHJ1ZTsKIH0KIAogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRG
aW5hbGl6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VEZpbmFsaXplci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0pJVEZpbmFsaXplci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHB1
YmxpYzoKICAgICBKSVRGaW5hbGl6ZXIoUGxhbiYsIFBhc3NSZWZQdHI8SklUQ29kZT4sIFBhc3NP
d25QdHI8TGlua0J1ZmZlcj4sIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVjayA9
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cihNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OkVtcHR5VmFsdWUp
KTsKICAgICB2aXJ0dWFsIH5KSVRGaW5hbGl6ZXIoKTsKICAgICAKKyAgICB2aXJ0dWFsIHNpemVf
dCBjb2RlU2l6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZSgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZUZ1bmN0aW9uKCkgb3ZlcnJpZGU7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMTE5OCw2ICsxMTk4LDExIEBAIHN0cnVjdCBOb2RlIHsKICAgICAg
ICAgICAgIHJldHVybiBzaG91bGRHZW5lcmF0ZSgpOwogICAgICAgICB9CiAgICAgfQorICAgIAor
ICAgIGJvb2wgaXNTZW1hbnRpY2FsbHlTa2lwcGFibGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IG9wKCkgPT0gQ291bnRFeGVjdXRpb247CisgICAgfQogCiAgICAgdW5zaWduZWQgcmVmQ291bnQo
KQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5j
cHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZUZsYWdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksOSBAQCB2b2lkIGR1bXBOb2Rl
RmxhZ3MoUHJpbnRTdHJlYW0mIGFjdHVhbE91CiAgICAgICAgIGNhc2UgTm9kZVJlc3VsdEludDMy
OgogICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiSW50MzIiKTsKICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGVSZXN1bHRJbnQ1MjoKKyAgICAgICAgICAgIG91dC5wcmlu
dChjb21tYSwgIkludDUyIik7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2Rl
UmVzdWx0Qm9vbGVhbjoKICAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgIkJvb2xlYW4iKTsK
ICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJp
bGl0eUFuYWx5c2lzUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSwxNSArNjEsMTMgQEAg
cHVibGljOgogICAgICAgICAgICAgICAgIEF2YWlsYWJpbGl0eTo6dW5hdmFpbGFibGUoKS53aXRo
Rmx1c2goCiAgICAgICAgICAgICAgICAgICAgIEZsdXNoZWRBdChGbHVzaGVkSlNWYWx1ZSwgdmly
dHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpKSk7CiAgICAgICAgIH0KLSAgICAgICAg
Zm9yICh1bnNpZ25lZCBsb2NhbCA9IHJvb3QtPnNzYS0+YXZhaWxhYmlsaXR5QXRIZWFkLm51bWJl
ck9mTG9jYWxzKCk7IGxvY2FsLS07KQotICAgICAgICAgICAgcm9vdC0+c3NhLT5hdmFpbGFiaWxp
dHlBdEhlYWQubG9jYWwobG9jYWwpID0gQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpOwotICAg
ICAgICAKKwogICAgICAgICBpZiAobV9ncmFwaC5tX3BsYW4ubW9kZSA9PSBGVExGb3JPU1JFbnRy
eU1vZGUpIHsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgbG9jYWwgPSBtX2dyYXBoLm1fcHJv
ZmlsZWRCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7IGxvY2FsLS07KSB7Ci0gICAgICAgICAg
ICAgICAgcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubG9jYWwobG9jYWwpID0KLSAgICAg
ICAgICAgICAgICAgICAgQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpLndpdGhGbHVzaCgKLSAg
ICAgICAgICAgICAgICAgICAgICAgIEZsdXNoZWRBdChGbHVzaGVkSlNWYWx1ZSwgdmlydHVhbFJl
Z2lzdGVyRm9yTG9jYWwobG9jYWwpKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGxvY2FsID0gbV9ncmFwaC5tX3Byb2ZpbGVkQmxvY2stPm1fbnVtQ2FsbGVlUmVn
aXN0ZXJzOyBsb2NhbC0tOykKKyAgICAgICAgICAgICAgICByb290LT5zc2EtPmF2YWlsYWJpbGl0
eUF0SGVhZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGxvY2FsID0gcm9vdC0+c3Nh
LT5hdmFpbGFiaWxpdHlBdEhlYWQubnVtYmVyT2ZMb2NhbHMoKTsgbG9jYWwtLTspCisgICAgICAg
ICAgICAgICAgcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubG9jYWwobG9jYWwpID0gQXZh
aWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAv
LyBUaGlzIGNvdWxkIGJlIG1hZGUgbW9yZSBlZmZpY2llbnQgYnkgcHJvY2Vzc2luZyBibG9ja3Mg
aW4gcmV2ZXJzZSBwb3N0b3JkZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkVudHJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkVudHJ5LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JFbnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDEwIEBAIHZv
aWQqIHByZXBhcmVPU1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIEMKICAgICBBU1NFUlQoY29kZUJs
b2NrLT5hbHRlcm5hdGl2ZSgpKTsKICAgICBBU1NFUlQoY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgp
LT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6QmFzZWxpbmVKSVQpOwogICAgIEFTU0VSVCghY29kZUJs
b2NrLT5qaXRDb2RlTWFwKCkpOwotICAgIAorCisgICAgaWYgKCFPcHRpb25zOjplbmFibGVPU1JF
bnRyeVRvREZHKCkpCisgICAgICAgIHJldHVybiAwOworCiAgICAgaWYgKE9wdGlvbnM6OnZlcmJv
c2VPU1IoKSkgewogICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgIkRGRyBPU1IgaW4gIiwg
KmNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSwgIiAtPiAiLCAqY29kZUJsb2NrLApAQCAtNTIsOCAr
NTUsOCBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0YXRlKiBleGVjLCBDCiAgICAgfQog
ICAgIAogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwotICAgIAotICAgIHZtLT5pbnRlcnByZXRl
ci0+c3RhY2soKS5zYW5pdGl6ZVN0YWNrKCk7CisKKyAgICBzYW5pdGl6ZVN0YWNrRm9yVk0odm0p
OwogICAgIAogICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSAhPSBKSVRDb2RlOjpERkdKSVQp
IHsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUQ29k
ZTo6RlRMSklUKTsKQEAgLTE4NSw3ICsxODgsNyBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhl
Y1N0YXRlKiBleGVjLCBDCiAgICAgLy8gICAgd291bGQgaGF2ZSBvdGhlcndpc2UganVzdCBrZXB0
IHJ1bm5pbmcgYWxiZWl0IGxlc3MgcXVpY2tseS4KICAgICAKICAgICB1bnNpZ25lZCBmcmFtZVNp
emUgPSBqaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5k
RXhpdCgpOwotICAgIGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJl
Z2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lU2l6ZSkub2Zmc2V0KCldKSkg
eworICAgIGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKCZl
eGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVNpemUgLSAxKS5v
ZmZzZXQoKV0pKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAg
ICAgICBkYXRhTG9nRigiICAgIE9TUiBmYWlsZWQgYmVjYXVzZSBzdGFjayBncm93dGggZmFpbGVk
LlxuIik7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMjEzLDEyICsyMTYsMTQgQEAgdm9pZCogcHJl
cGFyZU9TUkVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgQwogICAgIAogICAgIC8vIDUpIENsZWFyIHRo
b3NlIHBhcnRzIG9mIHRoZSBjYWxsIGZyYW1lIHRoYXQgdGhlIERGRyBhaW4ndCB1c2luZy4gVGhp
cyBoZWxwcyBHQyBvbiBzb21lCiAgICAgLy8gICAgcHJvZ3JhbXMgYnkgZWxpbWluYXRpbmcgc29t
ZSBzdGFsZSBwb2ludGVyIHBhdGhvbG9naWVzLgotICAgIAorCisjaWYgMCAvLyBGSVhNRTogQ1N0
YWNrIC0gVGhpcyBuZWVkcyB0byBiZSB2ZXJpZmllZCBiZWZvcmUgYmVpbmcgZW5hYmxlZAogICAg
IGZvciAodW5zaWduZWQgaSA9IGZyYW1lU2l6ZTsgaS0tOykgewogICAgICAgICBpZiAoZW50cnkt
Pm1fbWFjaGluZVN0YWNrVXNlZC5nZXQoaSkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgcmVnaXN0ZXJzW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGkpLm9mZnNldCgpXSA9IEpTVmFs
dWU6OmVuY29kZShKU1ZhbHVlKCkpOwogICAgIH0KKyNlbmRpZgogICAgIAogICAgIC8vIDYpIEZp
eCB0aGUgY2FsbCBmcmFtZS4KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuY3BwCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5cG9p
bnRDcmVhdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjMsNyArNjMsMTAgQEAgcHVibGlj
OgogICAgICAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSBtX2dyYXBoLmJsb2NrKGJsb2NrSW5k
ZXgpOwogICAgICAgICAgICAgaWYgKCFibG9jaykKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgIHVuc2lnbmVkIG5vZGVJbmRleCA9IDA7CiAgICAgICAgICAgICBOb2RlKiBm
aXJzdE5vZGUgPSBibG9jay0+YXQoMCk7CisgICAgICAgICAgICB3aGlsZSAoZmlyc3ROb2RlLT5p
c1NlbWFudGljYWxseVNraXBwYWJsZSgpKQorICAgICAgICAgICAgICAgIGZpcnN0Tm9kZSA9IGJs
b2NrLT5hdCgrK25vZGVJbmRleCk7CiAgICAgICAgICAgICBpZiAoZmlyc3ROb2RlLT5vcCgpID09
IExvb3BIaW50CiAgICAgICAgICAgICAgICAgJiYgZmlyc3ROb2RlLT5jb2RlT3JpZ2luID09IENv
ZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkpIHsKICAgICAgICAgICAgICAgICB0YXJnZXQgPSBibG9j
azsKQEAgLTgzLDE3ICs4Niw2IEBAIHB1YmxpYzoKICAgICAgICAgQmFzaWNCbG9jayogbmV3Um9v
dCA9IGluc2VydGlvblNldC5pbnNlcnQoMCk7CiAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdp
biA9IHRhcmdldC0+YXQoMCktPmNvZGVPcmlnaW47CiAgICAgICAgIAotICAgICAgICBmb3IgKGlu
dCBhcmd1bWVudCA9IDA7IGFyZ3VtZW50IDwgYmFzZWxpbmUtPm51bVBhcmFtZXRlcnMoKTsgKyth
cmd1bWVudCkgewotICAgICAgICAgICAgTm9kZSogb2xkTm9kZSA9IHRhcmdldC0+dmFyaWFibGVz
QXRIZWFkLmFyZ3VtZW50KGFyZ3VtZW50KTsKLSAgICAgICAgICAgIGlmICghb2xkTm9kZSkgewot
ICAgICAgICAgICAgICAgIC8vIEp1c3QgZm9yIHNhbml0eSwgYWx3YXlzIGhhdmUgYSBTZXRBcmd1
bWVudCBldmVuIGlmIGl0J3Mgbm90IG5lZWRlZC4KLSAgICAgICAgICAgICAgICBvbGROb2RlID0g
bV9ncmFwaC5tX2FyZ3VtZW50c1thcmd1bWVudF07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBOb2RlKiBub2RlID0gbmV3Um9vdC0+YXBwZW5kTm9kZSgKLSAgICAgICAgICAgICAgICBtX2dy
YXBoLCBTcGVjTm9uZSwgU2V0QXJndW1lbnQsIGNvZGVPcmlnaW4sCi0gICAgICAgICAgICAgICAg
T3BJbmZvKG9sZE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKSk7Ci0gICAgICAgICAgICBtX2dy
YXBoLm1fYXJndW1lbnRzW2FyZ3VtZW50XSA9IG5vZGU7Ci0gICAgICAgIH0KICAgICAgICAgVmVj
dG9yPE5vZGUqPiBsb2NhbHMoYmFzZWxpbmUtPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKTsKICAgICAg
ICAgZm9yIChpbnQgbG9jYWwgPSAwOyBsb2NhbCA8IGJhc2VsaW5lLT5tX251bUNhbGxlZVJlZ2lz
dGVyczsgKytsb2NhbCkgewogICAgICAgICAgICAgTm9kZSogcHJldmlvdXNIZWFkID0gdGFyZ2V0
LT52YXJpYWJsZXNBdEhlYWQubG9jYWwobG9jYWwpOwpAQCAtMTA4LDYgKzEwMCwxOSBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgbV9ncmFwaCwgU3BlY05vbmUsIE1vdkhpbnQsIGNvZGVPcmln
aW4sIE9wSW5mbyh2YXJpYWJsZS0+bG9jYWwoKS5vZmZzZXQoKSksCiAgICAgICAgICAgICAgICAg
RWRnZShsb2NhbHNbbG9jYWxdKSk7CiAgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBhcmd1
bWVudCA9IDA7IGFyZ3VtZW50IDwgYmFzZWxpbmUtPm51bVBhcmFtZXRlcnMoKTsgKythcmd1bWVu
dCkgeworICAgICAgICAgICAgTm9kZSogb2xkTm9kZSA9IHRhcmdldC0+dmFyaWFibGVzQXRIZWFk
LmFyZ3VtZW50KGFyZ3VtZW50KTsKKyAgICAgICAgICAgIGlmICghb2xkTm9kZSkgeworICAgICAg
ICAgICAgICAgIC8vIEp1c3QgZm9yIHNhbml0eSwgYWx3YXlzIGhhdmUgYSBTZXRBcmd1bWVudCBl
dmVuIGlmIGl0J3Mgbm90IG5lZWRlZC4KKyAgICAgICAgICAgICAgICBvbGROb2RlID0gbV9ncmFw
aC5tX2FyZ3VtZW50c1thcmd1bWVudF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBOb2Rl
KiBub2RlID0gbmV3Um9vdC0+YXBwZW5kTm9kZSgKKyAgICAgICAgICAgICAgICBtX2dyYXBoLCBT
cGVjTm9uZSwgU2V0QXJndW1lbnQsIGNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgT3BJbmZv
KG9sZE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKSk7CisgICAgICAgICAgICBtX2dyYXBoLm1f
YXJndW1lbnRzW2FyZ3VtZW50XSA9IG5vZGU7CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAg
IGZvciAoaW50IGxvY2FsID0gMDsgbG9jYWwgPCBiYXNlbGluZS0+bV9udW1DYWxsZWVSZWdpc3Rl
cnM7ICsrbG9jYWwpIHsKICAgICAgICAgICAgIE5vZGUqIHByZXZpb3VzSGVhZCA9IHRhcmdldC0+
dmFyaWFibGVzQXRIZWFkLmxvY2FsKGxvY2FsKTsKICAgICAgICAgICAgIGlmICghcHJldmlvdXNI
ZWFkKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDExIEBAIHN0cnVjdCBPU1JFeGl0IDogcHVibGljIE9T
UkV4aXRCYXNlIHsKICAgICB1bnNpZ25lZCBtX3N0cmVhbUluZGV4OwogICAgIAogICAgIFJlZlB0
cjxWYWx1ZVJlY292ZXJ5T3ZlcnJpZGU+IG1fdmFsdWVSZWNvdmVyeU92ZXJyaWRlOworICAgIAor
ICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2NrKiBwcm9m
aWxlZENvZGVCbG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBPU1JFeGl0QmFzZTo6Y29uc2lk
ZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUocHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRGcm9tREZH
KTsKKyAgICB9CiB9OwogCiBzdHJ1Y3QgU3BlY3VsYXRpb25GYWlsdXJlRGVidWdJbmZvIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAKLWJvb2wgT1NSRXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5nQXNGcmVx
dWVudEV4aXRTaXRlU2xvdyhDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrKQorYm9vbCBPU1JF
eGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KENvZGVCbG9jayog
cHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRpbmdKSVRUeXBlIGppdFR5cGUpCiB7CiAgICAgQ29kZUJs
b2NrKiBzb3VyY2VQcm9maWxlZENvZGVCbG9jayA9CiAgICAgICAgIGJhc2VsaW5lQ29kZUJsb2Nr
Rm9yT3JpZ2luQW5kQmFzZWxpbmVDb2RlQmxvY2soCkBAIC00Myw3ICs0Myw3IEBAIGJvb2wgT1NS
RXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWUKICAgICBpZiAoIXNvdXJjZVByb2ZpbGVk
Q29kZUJsb2NrKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHNvdXJjZVByb2Zp
bGVkQ29kZUJsb2NrLT5hZGRGcmVxdWVudEV4aXRTaXRlKAotICAgICAgICAgICAgRnJlcXVlbnRF
eGl0U2l0ZShtX2NvZGVPcmlnaW5Gb3JFeGl0UHJvZmlsZS5ieXRlY29kZUluZGV4LCBtX2tpbmQp
KTsKKyAgICAgICAgRnJlcXVlbnRFeGl0U2l0ZShtX2NvZGVPcmlnaW5Gb3JFeGl0UHJvZmlsZS5i
eXRlY29kZUluZGV4LCBtX2tpbmQsIGppdFR5cGUpKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2Uu
aAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
eGl0QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCwxNSArNTgsMTYgQEAgc3RydWN0IE9TUkV4
aXRCYXNlIHsKICAgICBDb2RlT3JpZ2luIG1fY29kZU9yaWdpbjsKICAgICBDb2RlT3JpZ2luIG1f
Y29kZU9yaWdpbkZvckV4aXRQcm9maWxlOwogCi0gICAgYm9vbCBjb25zaWRlckFkZGluZ0FzRnJl
cXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrKQorcHJvdGVjdGVkOgor
ICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2NrKiBwcm9m
aWxlZENvZGVCbG9jaywgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkKICAgICB7CiAgICAgICAgIGlm
ICghbV9jb3VudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIGNv
bnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhwcm9maWxlZENvZGVCbG9jayk7Cisg
ICAgICAgIHJldHVybiBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3cocHJvZmls
ZWRDb2RlQmxvY2ssIGppdFR5cGUpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBib29sIGNvbnNp
ZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJs
b2NrKTsKKyAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhDb2Rl
QmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrLCBFeGl0aW5nSklUVHlwZSBqaXRUeXBlKTsKIH07CiAK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTIgQEAgdm9pZCBPU1JFeGl0Q29tcGls
ZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgICAgICBtX2ppdC5kZWJ1Z0NhbGwoZGVidWdPcGVy
YXRpb25QcmludFNwZWN1bGF0aW9uRmFpbHVyZSwgZGVidWdJbmZvKTsKICAgICB9CiAgICAgCisg
ICAgLy8gTmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgc3RhY2sgcG9pbnRlciBhY2NvdW50cyBmb3Ig
dGhlIHdvcnN0LWNhc2Ugc3RhY2sgdXNhZ2UgYXQgZXhpdC4KKyAgICBtX2ppdC5hZGRQdHIoCisg
ICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgLW1faml0LmNv
ZGVCbG9jaygpLT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5yZXF1aXJlZFJlZ2lzdGVyQ291bnRG
b3JFeGl0ICogc2l6ZW9mKFJlZ2lzdGVyKSksCisgICAgICAgIENDYWxsSGVscGVyczo6ZnJhbWVQ
b2ludGVyUmVnaXN0ZXIsIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAg
IAogICAgIC8vIDIpIFBlcmZvcm0gc3BlY3VsYXRpb24gcmVjb3ZlcnkuIFRoaXMgb25seSBjb21l
cyBpbnRvIHBsYXkgd2hlbiBhbiBvcGVyYXRpb24KICAgICAvLyAgICBzdGFydHMgbXV0YXRpbmcg
c3RhdGUgYmVmb3JlIHZlcmlmeWluZyB0aGUgc3BlY3VsYXRpb24gaXQgaGFzIGFscmVhZHkgbWFk
ZS4KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBp
bGVyNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdENvbXBpbGVyNjQuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAs
NiArNDAsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIHZvaWQgT1NSRXhp
dENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdCBPcGVyYW5k
czxWYWx1ZVJlY292ZXJ5PiYgb3BlcmFuZHMsIFNwZWN1bGF0aW9uUmVjb3ZlcnkqIHJlY292ZXJ5
KQogeworICAgIG1faml0LmppdEFzc2VydFRhZ3NJblBsYWNlKCk7CisKICAgICAvLyAxKSBQcm8t
Zm9ybWEgc3R1ZmYuCiAgICAgaWYgKE9wdGlvbnM6OnByaW50RWFjaE9TUkV4aXQoKSkgewogICAg
ICAgICBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0luZm8qIGRlYnVnSW5mbyA9IG5ldyBTcGVjdWxh
dGlvbkZhaWx1cmVEZWJ1Z0luZm87CkBAIC00OCw2ICs1MCwxMiBAQCB2b2lkIE9TUkV4aXRDb21w
aWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgICAgIG1faml0LmRlYnVnQ2FsbChkZWJ1Z09w
ZXJhdGlvblByaW50U3BlY3VsYXRpb25GYWlsdXJlLCBkZWJ1Z0luZm8pOwogICAgIH0KICAgICAK
KyAgICAvLyBOZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBzdGFjayBwb2ludGVyIGFjY291bnRzIGZv
ciB0aGUgd29yc3QtY2FzZSBzdGFjayB1c2FnZSBhdCBleGl0LgorICAgIG1faml0LmFkZFB0cigK
KyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoCisgICAgICAgICAgICAtbV9qaXQu
Y29kZUJsb2NrKCktPmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPnJlcXVpcmVkUmVnaXN0ZXJDb3Vu
dEZvckV4aXQgKiBzaXplb2YoUmVnaXN0ZXIpKSwKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpmcmFt
ZVBvaW50ZXJSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Cisg
ICAgCiAgICAgLy8gMikgUGVyZm9ybSBzcGVjdWxhdGlvbiByZWNvdmVyeS4gVGhpcyBvbmx5IGNv
bWVzIGludG8gcGxheSB3aGVuIGFuIG9wZXJhdGlvbgogICAgIC8vICAgIHN0YXJ0cyBtdXRhdGlu
ZyBzdGF0ZSBiZWZvcmUgdmVyaWZ5aW5nIHRoZSBzcGVjdWxhdGlvbiBpdCBoYXMgYWxyZWFkeSBt
YWRlLgogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29t
cGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw3ICs5
Niw3IEBAIHZvaWQgY29tcGlsZU9TUkV4aXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAKICAg
ICAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIGNvZGVCbG9jayk7CiAgICAg
ICAgIGV4aXQubV9jb2RlID0gRklOQUxJWkVfQ09ERV9JRigKLSAgICAgICAgICAgIHNob3VsZFNo
b3dEaXNhc3NlbWJseSgpLAorICAgICAgICAgICAgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwg
T3B0aW9uczo6dmVyYm9zZU9TUigpLAogICAgICAgICAgICAgcGF0Y2hCdWZmZXIsCiAgICAgICAg
ICAgICAoIkRGRyBPU1IgZXhpdCAjJXUgKCVzLCAlcykgZnJvbSAlcywgd2l0aCBvcGVyYW5kcyA9
ICVzIiwKICAgICAgICAgICAgICAgICBleGl0SW5kZXgsIHRvQ1N0cmluZyhleGl0Lm1fY29kZU9y
aWdpbikuZGF0YSgpLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
Q29tcGlsZXJDb21tb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNp
bmNsdWRlICJERkdPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlND
SlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKQEAgLTE3Myw3ICsx
NzQsMTEgQEAgdm9pZCBhZGp1c3RBbmRKdW1wVG9UYXJnZXQoQ0NhbGxIZWxwZXJzJgogICAgIEFT
U0VSVChtYXBwaW5nLT5tX2J5dGVjb2RlSW5kZXggPT0gZXhpdC5tX2NvZGVPcmlnaW4uYnl0ZWNv
ZGVJbmRleCk7CiAgICAgCiAgICAgdm9pZCoganVtcFRhcmdldCA9IGJhc2VsaW5lQ29kZUJsb2Nr
LT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQobWFwcGluZy0+bV9tYWNoaW5l
Q29kZU9mZnNldCk7CisKKyAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZElt
bTMyKEpJVDo6c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKGJhc2VsaW5lQ29kZUJsb2NrKSAqIHNpemVv
ZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQXNzZW1ibHlIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgCisgICAgaml0LmppdEFzc2VydFRhZ3NJblBs
YWNlKCk7CisKICAgICBqaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoanVt
cFRhcmdldCksIEdQUkluZm86OnJlZ1QyKTsKICAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMik7
CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNDAsNyArMTE0MCw3IEBAIHZvaWQgSklUX09Q
RVJBVElPTiB0cmlnZ2VyVGllclVwTm93KEV4ZWMKICAgICB9CiAgICAgCiAgICAgV29ya2xpc3Q6
OlN0YXRlIHdvcmtsaXN0U3RhdGU7Ci0gICAgaWYgKFdvcmtsaXN0KiB3b3JrbGlzdCA9IHZtLT53
b3JrbGlzdC5nZXQoKSkgeworICAgIGlmIChXb3JrbGlzdCogd29ya2xpc3QgPSBleGlzdGluZ0ds
b2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkpIHsKICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdvcmts
aXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSgKICAgICAgICAgICAgICp2bSwgQ29tcGls
YXRpb25LZXkoY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKSwgRlRMTW9kZSkpOwogICAgIH0g
ZWxzZQpAQCAtMTE2OSw4ICsxMTY5LDggQEAgdm9pZCBKSVRfT1BFUkFUSU9OIHRyaWdnZXJUaWVy
VXBOb3coRXhlYwogCiAgICAgLy8gV2UgbmVlZCB0byBjb21waWxlIHRoZSBjb2RlLgogICAgIGNv
bXBpbGUoCi0gICAgICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBG
VExNb2RlLCBVSU5UX01BWCwgT3BlcmFuZHM8SlNWYWx1ZT4oKSwKLSAgICAgICAgVG9GVExEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spLCB2bS0+ZW5zdXJlV29y
a2xpc3QoKSk7CisgICAgICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgp
LCBjb2RlQmxvY2ssIEZUTE1vZGUsIFVJTlRfTUFYLAorICAgICAgICBPcGVyYW5kczxKU1ZhbHVl
PigpLCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKGNvZGVCbG9jaykp
OwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKQEAgLTEyMDIs
OCArMTIwMiwxMCBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIAorICAgIFdvcmtsaXN0KiB3b3JrbGlzdCA9IGV4
aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKTsKKwogICAgIFdvcmtsaXN0OjpTdGF0ZSB3
b3JrbGlzdFN0YXRlOwotICAgIGlmIChXb3JrbGlzdCogd29ya2xpc3QgPSB2bS0+d29ya2xpc3Qu
Z2V0KCkpIHsKKyAgICBpZiAod29ya2xpc3QpIHsKICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdv
cmtsaXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSgKICAgICAgICAgICAgICp2bSwgQ29t
cGlsYXRpb25LZXkoY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKSwgRlRMRm9yT1NSRW50cnlN
b2RlKSk7CiAgICAgfSBlbHNlCkBAIC0xMjUyLDEwICsxMjU0LDkgQEAgY2hhciogSklUX09QRVJB
VElPTiB0cmlnZ2VyT1NSRW50cnlOb3coCiAgICAgT3BlcmFuZHM8SlNWYWx1ZT4gbXVzdEhhbmRs
ZVZhbHVlczsKICAgICBqaXRDb2RlLT5yZWNvbnN0cnVjdCgKICAgICAgICAgZXhlYywgY29kZUJs
b2NrLCBDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgpLCBzdHJlYW1JbmRleCwgbXVzdEhhbmRsZVZh
bHVlcyk7Ci0gICAgQ29tcGlsYXRpb25SZXN1bHQgZm9yRW50cnlSZXN1bHQgPSBERkc6OmNvbXBp
bGUoCi0gICAgICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBGVExG
b3JPU1JFbnRyeU1vZGUsIGJ5dGVjb2RlSW5kZXgsCi0gICAgICAgIG11c3RIYW5kbGVWYWx1ZXMs
IFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2Rl
QmxvY2spLAotICAgICAgICB2bS0+ZW5zdXJlV29ya2xpc3QoKSk7CisgICAgQ29tcGlsYXRpb25S
ZXN1bHQgZm9yRW50cnlSZXN1bHQgPSBjb21waWxlKAorICAgICAgICAqdm0sIGNvZGVCbG9jay0+
bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgY29kZUJsb2NrLCBGVExGb3JPU1JFbnRyeU1vZGUsIGJ5
dGVjb2RlSW5kZXgsCisgICAgICAgIG11c3RIYW5kbGVWYWx1ZXMsIFRvRlRMRm9yT1NSRW50cnlE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spKTsKICAgICAKICAg
ICAvLyBCdXQgd2UgYWxzbyB3YW50IHRvIHRyaWdnZXIgYSByZXBsYWNlbWVudCBjb21waWxlLiBP
ZiBjb3Vyc2UsIHdlIGRvbid0IHdhbnQgdG8KICAgICAvLyB0cmlnZ2VyIGl0IGlmIHdlIGRvbid0
IG5lZWQgdG8uIE5vdGUgdGhhdCB0aGlzIGlzIGtpbmQgb2Ygd2VpcmQgYmVjYXVzZSB3ZSBtaWdo
dApAQCAtMTI2OCwxMSArMTI2OSwxMSBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JF
bnRyeU5vdygKICAgICBDb21waWxhdGlvbktleSBrZXlGb3JSZXBsYWNlbWVudChjb2RlQmxvY2st
PmJhc2VsaW5lVmVyc2lvbigpLCBGVExNb2RlKTsKICAgICBpZiAoY29kZUJsb2NrLT5jb2RlVHlw
ZSgpICE9IEdsb2JhbENvZGUKICAgICAgICAgJiYgIWNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVw
bGFjZW1lbnQoKQotICAgICAgICAmJiAoIXZtLT53b3JrbGlzdC5nZXQoKQotICAgICAgICAgICAg
fHwgdm0tPndvcmtsaXN0LT5jb21waWxhdGlvblN0YXRlKGtleUZvclJlcGxhY2VtZW50KSA9PSBX
b3JrbGlzdDo6Tm90S25vd24pKSB7CisgICAgICAgICYmICghd29ya2xpc3QKKyAgICAgICAgICAg
IHx8IHdvcmtsaXN0LT5jb21waWxhdGlvblN0YXRlKGtleUZvclJlcGxhY2VtZW50KSA9PSBXb3Jr
bGlzdDo6Tm90S25vd24pKSB7CiAgICAgICAgIGNvbXBpbGUoCi0gICAgICAgICAgICAqdm0sIGNv
ZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgRlRMTW9kZSwgVUlOVF9NQVgsIE9wZXJh
bmRzPEpTVmFsdWU+KCksCi0gICAgICAgICAgICBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjazo6Y3JlYXRlKGNvZGVCbG9jayksIHZtLT5lbnN1cmVXb3JrbGlzdCgpKTsKKyAgICAgICAg
ICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBjb2RlQmxvY2ssIEZU
TE1vZGUsIFVJTlRfTUFYLAorICAgICAgICAgICAgT3BlcmFuZHM8SlNWYWx1ZT4oKSwgVG9GVExE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spKTsKICAgICB9CiAg
ICAgCiAgICAgaWYgKGZvckVudHJ5UmVzdWx0ICE9IENvbXBpbGF0aW9uU3VjY2Vzc2Z1bCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
OTAsMTcgKzkwLDM3IEBAIHN0YXRpYyB2b2lkIGR1bXBBbmRWZXJpZnlHcmFwaChHcmFwaCYgZ3IK
ICAgICAgICAgdmFsaWRhdGUoZ3JhcGgsIG1vZGVGb3JGaW5hbFZhbGlkYXRlKTsKIH0KIAorc3Rh
dGljIFByb2ZpbGVyOjpDb21waWxhdGlvbktpbmQgcHJvZmlsZXJDb21waWxhdGlvbktpbmRGb3JN
b2RlKENvbXBpbGF0aW9uTW9kZSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNh
c2UgSW52YWxpZENvbXBpbGF0aW9uTW9kZToKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFByb2ZpbGVyOjpERkc7CisgICAgY2FzZSBERkdNb2Rl
OgorICAgICAgICByZXR1cm4gUHJvZmlsZXI6OkRGRzsKKyAgICBjYXNlIEZUTE1vZGU6CisgICAg
ICAgIHJldHVybiBQcm9maWxlcjo6RlRMOworICAgIGNhc2UgRlRMRm9yT1NSRW50cnlNb2RlOgor
ICAgICAgICByZXR1cm4gUHJvZmlsZXI6OkZUTEZvck9TUkVudHJ5OworICAgIH0KKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBQcm9maWxlcjo6REZHOworfQor
CiBQbGFuOjpQbGFuKAotICAgIFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBwYXNzZWRDb2RlQmxvY2ss
IENvbXBpbGF0aW9uTW9kZSBtb2RlLAotICAgIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRl
eCwgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMpCisgICAgUGFzc1Jl
ZlB0cjxDb2RlQmxvY2s+IHBhc3NlZENvZGVCbG9jaywgQ29kZUJsb2NrKiBwcm9maWxlZERGR0Nv
ZGVCbG9jaywKKyAgICBDb21waWxhdGlvbk1vZGUgbW9kZSwgdW5zaWduZWQgb3NyRW50cnlCeXRl
Y29kZUluZGV4LAorICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVz
KQogICAgIDogdm0oKnBhc3NlZENvZGVCbG9jay0+dm0oKSkKICAgICAsIGNvZGVCbG9jayhwYXNz
ZWRDb2RlQmxvY2spCisgICAgLCBwcm9maWxlZERGR0NvZGVCbG9jayhwcm9maWxlZERGR0NvZGVC
bG9jaykKICAgICAsIG1vZGUobW9kZSkKICAgICAsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleChvc3JF
bnRyeUJ5dGVjb2RlSW5kZXgpCiAgICAgLCBtdXN0SGFuZGxlVmFsdWVzKG11c3RIYW5kbGVWYWx1
ZXMpCi0gICAgLCBjb21waWxhdGlvbihjb2RlQmxvY2stPnZtKCktPm1fcGVyQnl0ZWNvZGVQcm9m
aWxlciA/IGFkb3B0UmVmKG5ldyBQcm9maWxlcjo6Q29tcGlsYXRpb24oY29kZUJsb2NrLT52bSgp
LT5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmVuc3VyZUJ5dGVjb2Rlc0Zvcihjb2RlQmxvY2suZ2V0
KCkpLCBQcm9maWxlcjo6REZHKSkgOiAwKQorICAgICwgY29tcGlsYXRpb24oY29kZUJsb2NrLT52
bSgpLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIgPyBhZG9wdFJlZihuZXcgUHJvZmlsZXI6OkNvbXBp
bGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyLT5lbnN1cmVCeXRl
Y29kZXNGb3IoY29kZUJsb2NrLmdldCgpKSwgcHJvZmlsZXJDb21waWxhdGlvbktpbmRGb3JNb2Rl
KG1vZGUpKSkgOiAwKQogICAgICwgaWRlbnRpZmllcnMoY29kZUJsb2NrLmdldCgpKQogICAgICwg
d2Vha1JlZmVyZW5jZXMoY29kZUJsb2NrLmdldCgpKQorICAgICwgd2lsbFRyeVRvVGllclVwKGZh
bHNlKQogICAgICwgaXNDb21waWxlZChmYWxzZSkKIHsKIH0KQEAgLTEwOSwxMCArMTI5LDE2IEBA
IFBsYW46On5QbGFuKCkKIHsKIH0KIAorYm9vbCBQbGFuOjpyZXBvcnRDb21waWxlVGltZXMoKSBj
b25zdAoreworICAgIHJldHVybiBPcHRpb25zOjpyZXBvcnRDb21waWxlVGltZXMoKQorICAgICAg
ICB8fCAoT3B0aW9uczo6cmVwb3J0RlRMQ29tcGlsZVRpbWVzKCkgJiYgaXNGVEwobW9kZSkpOwor
fQorCiB2b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0ZSYgbG9uZ0xpdmVk
U3RhdGUpCiB7CiAgICAgZG91YmxlIGJlZm9yZSA9IDA7Ci0gICAgaWYgKE9wdGlvbnM6OnJlcG9y
dENvbXBpbGVUaW1lcygpKQorICAgIGlmIChyZXBvcnRDb21waWxlVGltZXMoKSkKICAgICAgICAg
YmVmb3JlID0gY3VycmVudFRpbWVNUygpOwogICAgIAogICAgIFNhbXBsaW5nUmVnaW9uIHNhbXBs
aW5nUmVnaW9uKCJERkcgQ29tcGlsYXRpb24gKFBsYW4pIik7CkBAIC0xMjUsNyArMTUxLDcgQEAg
dm9pZCBQbGFuOjpjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdAogCiAgICAgUkVMRUFTRV9B
U1NFUlQoZmluYWxpemVyKTsKICAgICAKLSAgICBpZiAoT3B0aW9uczo6cmVwb3J0Q29tcGlsZVRp
bWVzKCkpIHsKKyAgICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpIHsKICAgICAgICAgY29uc3Qg
Y2hhciogcGF0aE5hbWU7CiAgICAgICAgIHN3aXRjaCAocGF0aCkgewogICAgICAgICBjYXNlIEZh
aWxQYXRoOgpAQCAtMTQzLDcgKzE2OSw3IEBAIHZvaWQgUGxhbjo6Y29tcGlsZUluVGhyZWFkKExv
bmdMaXZlZFN0YXQKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRvdWJs
ZSBub3cgPSBjdXJyZW50VGltZU1TKCk7Ci0gICAgICAgIGRhdGFMb2coIk9wdGltaXplZCAiLCAq
Y29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpLCAiIHVzaW5nICIsIG1vZGUsICIgd2l0aCAiLCBwYXRo
TmFtZSwgIiBpbiAiLCBub3cgLSBiZWZvcmUsICIgbXMiKTsKKyAgICAgICAgZGF0YUxvZygiT3B0
aW1pemVkICIsICpjb2RlQmxvY2ssICIgdXNpbmcgIiwgbW9kZSwgIiB3aXRoICIsIHBhdGhOYW1l
LCAiIGludG8gIiwgZmluYWxpemVyLT5jb2RlU2l6ZSgpLCAiIGJ5dGVzIGluICIsIG5vdyAtIGJl
Zm9yZSwgIiBtcyIpOwogICAgICAgICBpZiAocGF0aCA9PSBGVExQYXRoKQogICAgICAgICAgICAg
ZGF0YUxvZygiIChERkc6ICIsIGJlZm9yZUZUTCAtIGJlZm9yZSwgIiwgTExWTTogIiwgbm93IC0g
YmVmb3JlRlRMLCAiKSIpOwogICAgICAgICBkYXRhTG9nKCIuXG4iKTsKQEAgLTI5Miw3ICszMTgs
NyBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyCiAgICAgICAgIEZU
TDo6U3RhdGUgc3RhdGUoZGZnKTsKICAgICAgICAgRlRMOjpsb3dlckRGR1RvTExWTShzdGF0ZSk7
CiAgICAgICAgIAotICAgICAgICBpZiAoT3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkpCisg
ICAgICAgIGlmIChyZXBvcnRDb21waWxlVGltZXMoKSkKICAgICAgICAgICAgIGJlZm9yZUZUTCA9
IGN1cnJlbnRUaW1lTVMoKTsKICAgICAgICAgCiAgICAgICAgIGlmIChPcHRpb25zOjpsbHZtQWx3
YXlzRmFpbHNCZWZvcmVDb21waWxlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUGxhbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UGxhbi5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1BsYW4uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsNyArNTUsOCBAQCBjbGFzcyBMb25nTGl2ZWRTdGF0
ZTsKIAogc3RydWN0IFBsYW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGxhbj4gewog
ICAgIFBsYW4oCi0gICAgICAgIFBhc3NSZWZQdHI8Q29kZUJsb2NrPiwgQ29tcGlsYXRpb25Nb2Rl
LCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCisgICAgICAgIFBhc3NSZWZQdHI8Q29k
ZUJsb2NrPiBjb2RlQmxvY2tUb0NvbXBpbGUsIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxv
Y2ssCisgICAgICAgIENvbXBpbGF0aW9uTW9kZSwgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUlu
ZGV4LAogICAgICAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcyk7
CiAgICAgflBsYW4oKTsKICAgICAKQEAgLTcwLDYgKzcxLDcgQEAgc3RydWN0IFBsYW4gOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZQogICAgIAogICAgIFZNJiB2bTsKICAgICBSZWZQdHI8Q29k
ZUJsb2NrPiBjb2RlQmxvY2s7CisgICAgUmVmUHRyPENvZGVCbG9jaz4gcHJvZmlsZWRERkdDb2Rl
QmxvY2s7CiAgICAgQ29tcGlsYXRpb25Nb2RlIG1vZGU7CiAgICAgY29uc3QgdW5zaWduZWQgb3Ny
RW50cnlCeXRlY29kZUluZGV4OwogICAgIE9wZXJhbmRzPEpTVmFsdWU+IG11c3RIYW5kbGVWYWx1
ZXM7CkBAIC04NCw2ICs4Niw4IEBAIHN0cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGUKICAgICBEZXNpcmVkV2Vha1JlZmVyZW5jZXMgd2Vha1JlZmVyZW5jZXM7CiAgICAgRGVz
aXJlZFdyaXRlQmFycmllcnMgd3JpdGVCYXJyaWVyczsKICAgICBEZXNpcmVkVHJhbnNpdGlvbnMg
dHJhbnNpdGlvbnM7CisgICAgCisgICAgYm9vbCB3aWxsVHJ5VG9UaWVyVXA7CiAKICAgICBkb3Vi
bGUgYmVmb3JlRlRMOwogICAgIApAQCAtOTIsNiArOTYsOCBAQCBzdHJ1Y3QgUGxhbiA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAgUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjaz4gY2FsbGJhY2s7CiAKIHByaXZhdGU6CisgICAgYm9vbCByZXBvcnRDb21waWxlVGltZXMo
KSBjb25zdDsKKyAgICAKICAgICBlbnVtIENvbXBpbGF0aW9uUGF0aCB7IEZhaWxQYXRoLCBERkdQ
YXRoLCBGVExQYXRoIH07CiAgICAgQ29tcGlsYXRpb25QYXRoIGNvbXBpbGVJblRocmVhZEltcGwo
TG9uZ0xpdmVkU3RhdGUmKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNzMsMjIgKzczLDMzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIAogICAgICAgICBjYXNlIFB1dEJ5VmFsOgotICAgICAgICBjYXNlIFB1dEJ5VmFsRGly
ZWN0OgotICAgICAgICAgICAgbG93ZXJCb3VuZHNDaGVjaygKLSAgICAgICAgICAgICAgICBtX2dy
YXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMCksCi0gICAgICAgICAgICAgICAgbV9ncmFwaC52YXJB
cmdDaGlsZChtX25vZGUsIDEpLAotICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bV9ub2RlLCAzKSk7CisgICAgICAgIGNhc2UgUHV0QnlWYWxEaXJlY3Q6IHsKKyAgICAgICAgICAg
IEVkZ2UgYmFzZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKTsKKyAgICAgICAgICAg
IEVkZ2UgaW5kZXggPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSk7CisgICAgICAgICAg
ICBFZGdlIHN0b3JhZ2UgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMyk7CisgICAgICAg
ICAgICBpZiAobG93ZXJCb3VuZHNDaGVjayhiYXNlLCBpbmRleCwgc3RvcmFnZSkpCisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmFy
cmF5TW9kZSgpLnR5cGVkQXJyYXlUeXBlKCkgIT0gTm90VHlwZWRBcnJheSAmJiBtX25vZGUtPmFy
cmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKSkgeworICAgICAgICAgICAgICAgIE5vZGUqIGxlbmd0
aCA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgICAgIG1fbm9k
ZUluZGV4LCBTcGVjSW50MzIsIEdldEFycmF5TGVuZ3RoLCBtX25vZGUtPmNvZGVPcmlnaW4sCisg
ICAgICAgICAgICAgICAgICAgIE9wSW5mbyhtX25vZGUtPmFycmF5TW9kZSgpLmFzV29yZCgpKSwg
YmFzZSwgc3RvcmFnZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9ncmFw
aC52YXJBcmdDaGlsZChtX25vZGUsIDQpID0gRWRnZShsZW5ndGgsIEtub3duSW50MzJVc2UpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgdm9pZCBsb3dlckJvdW5kc0NoZWNr
KEVkZ2UgYmFzZSwgRWRnZSBpbmRleCwgRWRnZSBzdG9yYWdlKQorICAgIGJvb2wgbG93ZXJCb3Vu
ZHNDaGVjayhFZGdlIGJhc2UsIEVkZ2UgaW5kZXgsIEVkZ2Ugc3RvcmFnZSkKICAgICB7CiAgICAg
ICAgIGlmICghbV9ub2RlLT5hcnJheU1vZGUoKS5wZXJtaXRzQm91bmRzQ2hlY2tMb3dlcmluZygp
KQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAKICAgICAgICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgpLmxlbmd0aE5lZWRzU3RvcmFnZSgp
KQogICAgICAgICAgICAgc3RvcmFnZSA9IEVkZ2UoKTsKQEAgLTk5LDYgKzExMCw3IEBAIHByaXZh
dGU6CiAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAgICAgICBtX25v
ZGVJbmRleCwgU3BlY0ludDMyLCBDaGVja0luQm91bmRzLCBtX25vZGUtPmNvZGVPcmlnaW4sCiAg
ICAgICAgICAgICBpbmRleCwgRWRnZShsZW5ndGgsIEtub3duSW50MzJVc2UpKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogICAgIAogICAgIEluc2VydGlvblNldCBtX2luc2VydGlvblNl
dDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82
NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcy
LDcgKzE3Miw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKEVkZ2UgZWQKIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBH
UFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVz
dWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51
bWJlciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9k
ZSBzcGlsbE1vZGUpCiB7CiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1f
aml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLAorICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwg
dXNlZFJlZ2lzdGVycygpLAogICAgICAgICBKU1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBi
YXNlUGF5bG9hZEdQUiksCiAgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0
UGF5bG9hZEdQUiksIHNwaWxsTW9kZSAhPSBOZWVkVG9TcGlsbCk7CiAgICAgCkBAIC0yMDQsNyAr
MjA0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlTwogdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJl
ZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHZhbHVlVGFnR1BSLCBHUFJSZWcgdmFsdWVQYXlsb2Fk
R1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0S2lu
ZCBwdXRLaW5kLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCkKIHsKICAgICBKSVRQ
dXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmln
aW4sIHVzZWRSZWdpc3RlcnMoKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsCisgICAgICAg
IG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksCiAgICAgICAg
IEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShiYXNlUGF5bG9hZEdQUiksIEpTVmFsdWVSZWdzKHZh
bHVlVGFnR1BSLCB2YWx1ZVBheWxvYWRHUFIpLAogICAgICAgICBzY3JhdGNoR1BSLCBmYWxzZSwg
bV9qaXQuZWNtYU1vZGVGb3IoY29kZU9yaWdpbiksIHB1dEtpbmQpOwogICAgIApAQCAtNjMxLDEw
ICs2MzEsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBub2RlCiAgICAg
CiAgICAgaW50IG51bUFyZ3MgPSBudW1QYXNzZWRBcmdzICsgZHVtbXlUaGlzQXJndW1lbnQ7CiAK
LSAgICBtX2ppdC5zdG9yZTMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIobnVtQXJncyks
IGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QobnVtQXJncywgSlNTdGFjazo6QXJndW1lbnRDb3VudCkp
OwotICAgIG1faml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBjYWxsZWVG
cmFtZUNhbGxlckZyYW1lKG51bUFyZ3MpKTsKLSAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVBheWxv
YWRHUFIsIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QobnVtQXJncywgSlNTdGFjazo6Q2FsbGVlKSk7
Ci0gICAgbV9qaXQuc3RvcmUzMihjYWxsZWVUYWdHUFIsIGNhbGxlZUZyYW1lVGFnU2xvdChudW1B
cmdzLCBKU1N0YWNrOjpDYWxsZWUpKTsKKyAgICBtX2ppdC5zdG9yZTMyKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIobnVtQXJncyksIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoSlNTdGFjazo6
QXJndW1lbnRDb3VudCkpOworICAgIG1faml0LnN0b3JlMzIoY2FsbGVlUGF5bG9hZEdQUiwgY2Fs
bGVlRnJhbWVQYXlsb2FkU2xvdChKU1N0YWNrOjpDYWxsZWUpKTsKKyAgICBtX2ppdC5zdG9yZTMy
KGNhbGxlZVRhZ0dQUiwgY2FsbGVlRnJhbWVUYWdTbG90KEpTU3RhY2s6OkNhbGxlZSkpOwogCiAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1QYXNzZWRBcmdzOyBpKyspIHsKICAgICAgICAgRWRn
ZSBhcmdFZGdlID0gbV9qaXQuZ3JhcGgoKS5tX3ZhckFyZ0NoaWxkcmVuW25vZGUtPmZpcnN0Q2hp
bGQoKSArIDEgKyBpXTsKQEAgLTY0Myw4ICs2NDIsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpl
bWl0Q2FsbChOb2RlKiBub2RlCiAgICAgICAgIEdQUlJlZyBhcmdQYXlsb2FkR1BSID0gYXJnLnBh
eWxvYWRHUFIoKTsKICAgICAgICAgdXNlKGFyZ0VkZ2UpOwogCi0gICAgICAgIG1faml0LnN0b3Jl
MzIoYXJnVGFnR1BSLCBjYWxsZWVBcmd1bWVudFRhZ1Nsb3QobnVtQXJncywgaSArIGR1bW15VGhp
c0FyZ3VtZW50KSk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIoYXJnUGF5bG9hZEdQUiwgY2FsbGVl
QXJndW1lbnRQYXlsb2FkU2xvdChudW1BcmdzLCBpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKKyAg
ICAgICAgbV9qaXQuc3RvcmUzMihhcmdUYWdHUFIsIGNhbGxlZUFyZ3VtZW50VGFnU2xvdChpICsg
ZHVtbXlUaGlzQXJndW1lbnQpKTsKKyAgICAgICAgbV9qaXQuc3RvcmUzMihhcmdQYXlsb2FkR1BS
LCBjYWxsZWVBcmd1bWVudFBheWxvYWRTbG90KGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOwogICAg
IH0KIAogICAgIGZsdXNoUmVnaXN0ZXJzKCk7CkBAIC02NTksMTMgKzY1OCwxMSBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBub2RlCiAKICAgICBtX2ppdC5lbWl0U3RvcmVD
b2RlT3JpZ2luKG5vZGUtPmNvZGVPcmlnaW4pOwogICAgIAotICAgIG1faml0LmFkZFB0cihUcnVz
dGVkSW1tMzIoY2FsbGVlRnJhbWVPZmZzZXQobnVtQXJncykpLCBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3Rlcik7Ci0gICAgCiAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpOb3RFcXVhbCwgY2FsbGVlVGFnR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
Q2VsbFRhZykpKTsKICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyV2l0aFBhdGNo
KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgY2FsbGVlUGF5bG9hZEdQUiwgdGFyZ2V0VG9DaGVj
aykpOwogICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2FsbGVlUGF5
bG9hZEdQUiwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGUpKSwgcmVzdWx0UGF5
bG9hZEdQUik7Ci0gICAgbV9qaXQuc3RvcmVQdHIocmVzdWx0UGF5bG9hZEdQUiwgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0
cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKiBKU1N0YWNrOjpTY29wZUNoYWluICsgT0JKRUNU
X09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOwotICAg
IG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIs
IHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKiBKU1N0YWNrOjpTY29w
ZUNoYWluICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50
YWcpKSk7CisgICAgbV9qaXQuc3RvcmVQdHIocmVzdWx0UGF5bG9hZEdQUiwgY2FsbGVlRnJhbWVQ
YXlsb2FkU2xvdChKU1N0YWNrOjpTY29wZUNoYWluKSk7CisgICAgbV9qaXQuc3RvcmVQdHIoTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVlRnJhbWVU
YWdTbG90KEpTU3RhY2s6OlNjb3BlQ2hhaW4pKTsKIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGZh
c3RDYWxsID0gbV9qaXQubmVhckNhbGwoKTsKIApAQCAtMzA0NywxMiArMzA0NCw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCi0gICAgICAgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgICAgICBtX2pp
dC5lbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OnJlZ1QyKTsK
LSAgICAgICAgLy8gUmVzdG9yZSBvdXIgY2FsbGVyJ3MgInIiLgotICAgICAgICBtX2ppdC5lbWl0
R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyKTsKLSAgICAgICAgLy8gUmV0dXJuLgotICAgICAgICBtX2ppdC5yZXN0b3JlUmV0dXJu
QWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpyZWdUMik7CisgICAgICAgIG1faml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgIG1faml0LnJldCgpOwogICAgICAgICAKICAgICAg
ICAgbm9SZXN1bHQobm9kZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE5MCw4ICsxOTAsOCBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKEVk
Z2UgCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9y
aWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIsIHVuc2lnbmVkIGlkZW50aWZp
ZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVy
c01vZGUgc3BpbGxNb2RlKQogewogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAg
ICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksIEpTVmFs
dWVSZWdzKHJlc3VsdEdQUiksIHNwaWxsTW9kZSAhPSBOZWVkVG9TcGlsbCk7CisgICAgICAgIG1f
aml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEpTVmFsdWVSZWdz
KGJhc2VHUFIpLAorICAgICAgICBKU1ZhbHVlUmVncyhyZXN1bHRHUFIpLCBzcGlsbE1vZGUgIT0g
TmVlZFRvU3BpbGwpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKICAgICAKICAg
ICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwpAQCAtMjEwLDkgKzIxMCw4IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU8KIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNhY2hlZFB1dEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwg
R1BSUmVnIHZhbHVlR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51
bWJlciwgUHV0S2luZCBwdXRLaW5kLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCkK
IHsKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9qaXQuY29kZUJsb2Nr
KCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsCi0gICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVlUmVncyh2YWx1ZUdQUiks
IHNjcmF0Y2hHUFIsIGZhbHNlLAotICAgICAgICBtX2ppdC5lY21hTW9kZUZvcihjb2RlT3JpZ2lu
KSwgcHV0S2luZCk7CisgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2Vk
UmVnaXN0ZXJzKCksIEpTVmFsdWVSZWdzKGJhc2VHUFIpLAorICAgICAgICBKU1ZhbHVlUmVncyh2
YWx1ZUdQUiksIHNjcmF0Y2hHUFIsIGZhbHNlLCBtX2ppdC5lY21hTW9kZUZvcihjb2RlT3JpZ2lu
KSwgcHV0S2luZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOwogICAgIAogICAg
IEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CkBAIC02NjMsOSArNjYyLDggQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZQogICAgIAogICAgIGludCBudW1B
cmdzID0gbnVtUGFzc2VkQXJncyArIGR1bW15VGhpc0FyZ3VtZW50OwogICAgIAotICAgIG1faml0
LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVlRnJh
bWVQYXlsb2FkU2xvdChudW1BcmdzLCBKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7Ci0gICAgbV9q
aXQuc3RvcmU2NChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgY2FsbGVlRnJhbWVDYWxsZXJG
cmFtZShudW1BcmdzKSk7Ci0gICAgbV9qaXQuc3RvcmU2NChjYWxsZWVHUFIsIGNhbGxlZUZyYW1l
U2xvdChudW1BcmdzLCBKU1N0YWNrOjpDYWxsZWUpKTsKKyAgICBtX2ppdC5zdG9yZTMyKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIobnVtQXJncyksIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3Qo
SlNTdGFjazo6QXJndW1lbnRDb3VudCkpOworICAgIG1faml0LnN0b3JlNjQoY2FsbGVlR1BSLCBj
YWxsZWVGcmFtZVNsb3QoSlNTdGFjazo6Q2FsbGVlKSk7CiAgICAgCiAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBudW1QYXNzZWRBcmdzOyBpKyspIHsKICAgICAgICAgRWRnZSBhcmdFZGdlID0gbV9q
aXQuZ3JhcGgoKS5tX3ZhckFyZ0NoaWxkcmVuW25vZGUtPmZpcnN0Q2hpbGQoKSArIDEgKyBpXTsK
QEAgLTY3Myw3ICs2NzEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBu
b2RlCiAgICAgICAgIEdQUlJlZyBhcmdHUFIgPSBhcmcuZ3ByKCk7CiAgICAgICAgIHVzZShhcmdF
ZGdlKTsKICAgICAgICAgCi0gICAgICAgIG1faml0LnN0b3JlNjQoYXJnR1BSLCBjYWxsZWVBcmd1
bWVudFNsb3QobnVtQXJncywgaSArIGR1bW15VGhpc0FyZ3VtZW50KSk7CisgICAgICAgIG1faml0
LnN0b3JlNjQoYXJnR1BSLCBjYWxsZWVBcmd1bWVudFNsb3QoaSArIGR1bW15VGhpc0FyZ3VtZW50
KSk7CiAgICAgfQogCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKQEAgLTY4MiwyMyArNjgwLDI4IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUKICAgICBHUFJSZWcgcmVz
dWx0R1BSID0gcmVzdWx0LmdwcigpOwogCiAgICAgSklUQ29tcGlsZXI6OkRhdGFMYWJlbFB0ciB0
YXJnZXRUb0NoZWNrOwotICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93UGF0aDsKKyAgICBK
SVRDb21waWxlcjo6SnVtcCBzbG93UGF0aDsKIAogICAgIG1faml0LmVtaXRTdG9yZUNvZGVPcmln
aW4obm9kZS0+Y29kZU9yaWdpbik7CiAgICAgCi0gICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0z
MihjYWxsZWVGcmFtZU9mZnNldChudW1BcmdzKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
KTsKLSAgICAKLSAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyV2l0aFBhdGNoKE1h
Y3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgY2FsbGVlR1BSLCB0YXJnZXRUb0NoZWNrLCBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cigwKSkpOworICAgIHNsb3dQYXRoID0gbV9qaXQuYnJhbmNo
UHRyV2l0aFBhdGNoKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgY2FsbGVlR1BSLCB0YXJnZXRU
b0NoZWNrLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigwKSk7CiAKICAgICBtX2ppdC5s
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNhbGxlZUdQUiwgT0JKRUNUX09GRlNFVE9G
KEpTRnVuY3Rpb24sIG1fc2NvcGUpKSwgcmVzdWx0R1BSKTsKLSAgICBtX2ppdC5zdG9yZTY0KHJl
c3VsdEdQUiwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKiBKU1N0YWNrOjpT
Y29wZUNoYWluKSk7CisgICAgbV9qaXQuc3RvcmU2NChyZXN1bHRHUFIsIGNhbGxlZUZyYW1lU2xv
dChKU1N0YWNrOjpTY29wZUNoYWluKSk7CiAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBmYXN0Q2Fs
bCA9IG1faml0Lm5lYXJDYWxsKCk7Ci0gICAgCisKICAgICBKSVRDb21waWxlcjo6SnVtcCBkb25l
ID0gbV9qaXQuanVtcCgpOwogICAgIAogICAgIHNsb3dQYXRoLmxpbmsoJm1faml0KTsKICAgICAK
KyAgICBpZiAobV9qaXQuZ3JhcGgoKS5tX3BsYW4ud2lsbFRyeVRvVGllclVwKSB7CisgICAgICAg
IG1faml0LmFkZDMyKAorICAgICAgICAgICAgVHJ1c3RlZEltbTMyKDEpLAorICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkFic29sdXRlQWRkcmVzcygKKyAgICAgICAgICAgICAgICBtX2ppdC5q
aXRDb2RlKCktPnNsb3dQYXRoQ2FsbHMuYmVnaW4oKSArIG1faml0LmN1cnJlbnRKU0NhbGxJbmRl
eCgpKSk7CisgICAgfQorICAgIAogICAgIG1faml0Lm1vdmUoY2FsbGVlR1BSLCBHUFJJbmZvOjpy
ZWdUMCk7IC8vIENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdUMAogICAgIEpJVENvbXBpbGVyOjpD
YWxsIHNsb3dDYWxsID0gbV9qaXQubmVhckNhbGwoKTsKICAgICAKQEAgLTMyMDAsNyArMzIwMyw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAg
IAogICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgICAgICAgICAgc2xv
d1BhdGhDYWxsKAotICAgICAgICAgICAgICAgICAgICBzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9u
QXJyYXlQdXNoLCBOb1Jlc3VsdCwgc3RvcmFnZUxlbmd0aEdQUiwKKyAgICAgICAgICAgICAgICAg
ICAgc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5UHVzaCwgc3RvcmFnZUxlbmd0aEdQUiwK
ICAgICAgICAgICAgICAgICAgICAgdmFsdWVHUFIsIGJhc2VHUFIpKTsKICAgICAgICAgCiAgICAg
ICAgICAgICBqc1ZhbHVlUmVzdWx0KHN0b3JhZ2VMZW5ndGhHUFIsIG5vZGUpOwpAQCAtMzIyNCw3
ICszMjI3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKICAgICAgICAgICAg
ICAgICBzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLCB0aGlzLCBv
cGVyYXRpb25BcnJheVB1c2hEb3VibGUsIE5vUmVzdWx0LCBzdG9yYWdlTGVuZ3RoR1BSLAorICAg
ICAgICAgICAgICAgICAgICBzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uQXJyYXlQdXNoRG91Ymxl
LCBzdG9yYWdlTGVuZ3RoR1BSLAogICAgICAgICAgICAgICAgICAgICB2YWx1ZUZQUiwgYmFzZUdQ
UikpOwogICAgICAgICAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQoc3RvcmFnZUxlbmd0aEdQ
Uiwgbm9kZSk7CkBAIC0zMzg4LDEyICszMzkxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICBKU1ZhbHVlT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOwogICAgICAgICBtX2ppdC5tb3ZlKG9wMS5ncHIoKSwgR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpOwogCi0gICAgICAgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgICAg
ICBtX2ppdC5lbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OnJl
Z1QxKTsKLSAgICAgICAgLy8gUmVzdG9yZSBvdXIgY2FsbGVyJ3MgInIiLgotICAgICAgICBtX2pp
dC5lbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyKTsKLSAgICAgICAgLy8gUmV0dXJuLgotICAgICAgICBtX2ppdC5yZXN0b3Jl
UmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpyZWdUMSk7CisgICAgICAgIG1faml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgIG1faml0LnJldCgpOwogICAgICAgICAK
ICAgICAgICAgbm9SZXN1bHQobm9kZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNDYsNiArMTM0Niw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDdXJyZW50
QmxvY2sKICAgICBtX3N0cmVhbS0+YXBwZW5kQW5kTG9nKFZhcmlhYmxlRXZlbnQ6OnJlc2V0KCkp
OwogICAgIAogICAgIG1faml0LmppdEFzc2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCk7CisgICAgbV9q
aXQuaml0QXNzZXJ0VGFnc0luUGxhY2UoKTsKKyAgICBtX2ppdC5qaXRBc3NlcnRBcmd1bWVudENv
dW50U2FuZSgpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2Jsb2NrLT52YXJpYWJs
ZXNBdEhlYWQubnVtYmVyT2ZBcmd1bWVudHMoKTsgKytpKSB7CiAgICAgICAgIG1fc3RyZWFtLT5h
cHBlbmRBbmRMb2coCkBAIC0xNTMyLDEwICsxNTM0LDQwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNoZWNrQXJndW1lbnRUeXBlcygKICAgICBtX2lzQ2hlY2tpbmdBcmd1bWVudFR5cGVzID0gZmFs
c2U7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnByZXBhcmVKSVRDb2RlRm9yVGllclVwKCkK
K3sKKyAgICB1bnNpZ25lZCBudW1iZXJPZkNhbGxzID0gMDsKKyAgICAKKyAgICBmb3IgKEJsb2Nr
SW5kZXggYmxvY2tJbmRleCA9IG1faml0LmdyYXBoKCkubnVtQmxvY2tzKCk7IGJsb2NrSW5kZXgt
LTspIHsKKyAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSBtX2ppdC5ncmFwaCgpLmJsb2NrKGJs
b2NrSW5kZXgpOworICAgICAgICBpZiAoIWJsb2NrKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIAorICAgICAgICBmb3IgKHVuc2lnbmVkIG5vZGVJbmRleCA9IGJsb2NrLT5zaXplKCk7
IG5vZGVJbmRleC0tOykgeworICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2Rl
SW5kZXgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsK
KyAgICAgICAgICAgIGNhc2UgQ2FsbDoKKyAgICAgICAgICAgIGNhc2UgQ29uc3RydWN0OgorICAg
ICAgICAgICAgICAgIG51bWJlck9mQ2FsbHMrKzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgbV9qaXQuaml0
Q29kZSgpLT5zbG93UGF0aENhbGxzLmZpbGwoMCwgbnVtYmVyT2ZDYWxscyk7Cit9CisKIGJvb2wg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoKQogewogICAgIGNoZWNrQXJndW1lbnRUeXBlcygpOwot
CisgICAgCisgICAgaWYgKG1faml0LmdyYXBoKCkubV9wbGFuLndpbGxUcnlUb1RpZXJVcCkKKyAg
ICAgICAgcHJlcGFyZUpJVENvZGVGb3JUaWVyVXAoKTsKKyAgICAKICAgICBBU1NFUlQoIW1fY3Vy
cmVudE5vZGUpOwogICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRl
eCA8IG1faml0LmdyYXBoKCkubnVtQmxvY2tzKCk7ICsrYmxvY2tJbmRleCkgewogICAgICAgICBt
X2ppdC5zZXRGb3JCbG9ja0luZGV4KGJsb2NrSW5kZXgpOwpAQCAtMjM5MCw2ICsyNDIyLDEwIEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckkKICAgICBBU1NFUlQodmFs
dWVHUFIgIT0gYmFzZSk7CiAgICAgQVNTRVJUKHZhbHVlR1BSICE9IHN0b3JhZ2VSZWcpOwogICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9mQm91bmRzID0ganVtcEZvclR5cGVkQXJyYXlPdXRP
ZkJvdW5kcyhub2RlLCBiYXNlLCBwcm9wZXJ0eSk7CisgICAgaWYgKG5vZGUtPmFycmF5TW9kZSgp
LmlzSW5Cb3VuZHMoKSAmJiBvdXRPZkJvdW5kcy5pc1NldCgpKSB7CisgICAgICAgIHNwZWN1bGF0
aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVTb3VyY2UoKSwgMCwgb3V0T2ZCb3VuZHMpOwor
ICAgICAgICBvdXRPZkJvdW5kcyA9IE1hY3JvQXNzZW1ibGVyOjpKdW1wKCk7CisgICAgfQogCiAg
ICAgc3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgMToKQEAgLTI0NjUsNiAr
MjUwMSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGCiAgICAg
QVNTRVJUX1VOVVNFRChiYXNlVXNlLCBub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZCht
X2ppdC5ncmFwaCgpLCBub2RlLCBtX3N0YXRlLmZvck5vZGUoYmFzZVVzZSkpKTsKICAgICAKICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9IGp1bXBGb3JUeXBlZEFycmF5T3V0
T2ZCb3VuZHMobm9kZSwgYmFzZSwgcHJvcGVydHkpOworICAgIGlmIChub2RlLT5hcnJheU1vZGUo
KS5pc0luQm91bmRzKCkgJiYgb3V0T2ZCb3VuZHMuaXNTZXQoKSkgeworICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlU291cmNlKCksIDAsIG91dE9mQm91bmRzKTsK
KyAgICAgICAgb3V0T2ZCb3VuZHMgPSBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpOworICAgIH0KICAg
ICAKICAgICBzd2l0Y2ggKGVsZW1lbnRTaXplKHR5cGUpKSB7CiAgICAgY2FzZSA0OiB7CkBAIC0z
NDI5LDYgKzM0NjksMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKE5v
ZAogICAgICAgICBHUFJSZWcgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BSID0gcXVvdGllbnRUaGVu
UmVtYWluZGVyLmdwcigpOwogICAgICAgICBHUFJSZWcgbXVsdGlwbHlBbnN3ZXJHUFIgPSBtdWx0
aXBseUFuc3dlci5ncHIoKTsKIAorICAgICAgICBKSVRDb21waWxlcjo6SnVtcExpc3QgZG9uZTsK
KyAgICAgICAgCisgICAgICAgIGlmIChzaG91bGRDaGVja092ZXJmbG93KG5vZGUtPmFyaXRoTW9k
ZSgpKSkKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3ZlcmZsb3csIEpTVmFsdWVSZWdz
KCksIDAsIG1faml0LmJyYW5jaFRlc3QzMihKSVRDb21waWxlcjo6WmVybywgZGl2aXNvckdQUikp
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGRlbm9taW5h
dG9yTm90WmVybyA9IG1faml0LmJyYW5jaFRlc3QzMihKSVRDb21waWxlcjo6Tm9uWmVybywgZGl2
aXNvckdQUik7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKGRpdmlzb3JHUFIsIHF1b3RpZW50VGhl
blJlbWFpbmRlckdQUik7CisgICAgICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5qdW1wKCkpOwor
ICAgICAgICAgICAgZGVub21pbmF0b3JOb3RaZXJvLmxpbmsoJm1faml0KTsKKyAgICAgICAgfQor
CiAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLnNkaXYocXVvdGllbnRUaGVuUmVtYWluZGVyR1BS
LCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7CiAgICAgICAgIC8vIEZJWE1FOiBJdCBzZWVtcyBs
aWtlIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB3ZSBkb24ndCBuZWVkIHRoaXM/IFdoYXQgaWYgd2Ug
aGF2ZQogICAgICAgICAvLyBhcml0aE1vZGUoKSA9PSBBcml0aDo6VW5jaGVja2VkPwpAQCAtMzQ0
NSw2ICszNDk2LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKE5vZAog
ICAgICAgICAgICAgbnVtZXJhdG9yUG9zaXRpdmUubGluaygmbV9qaXQpOwogICAgICAgICB9CiAK
KyAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CisgICAgICAgIAogICAgICAgICBpbnQzMlJlc3Vs
dChxdW90aWVudFRoZW5SZW1haW5kZXJHUFIsIG5vZGUpOwogI2VsaWYgQ1BVKEFSTTY0KQogICAg
ICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKQEAgLTM0NTUsNiArMzUwOCwxNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNb2QoTm9kCiAgICAgICAgIEdQUlJlZyBxdW90
aWVudFRoZW5SZW1haW5kZXJHUFIgPSBxdW90aWVudFRoZW5SZW1haW5kZXIuZ3ByKCk7CiAgICAg
ICAgIEdQUlJlZyBtdWx0aXBseUFuc3dlckdQUiA9IG11bHRpcGx5QW5zd2VyLmdwcigpOwogCisg
ICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBkb25lOworICAgIAorICAgICAgICBpZiAoc2hv
dWxkQ2hlY2tPdmVyZmxvdyhub2RlLT5hcml0aE1vZGUoKSkpCisgICAgICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKE92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIo
SklUQ29tcGlsZXI6Olplcm8sIGRpdmlzb3JHUFIpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICBKSVRDb21waWxlcjo6SnVtcCBkZW5vbWluYXRvck5vdFplcm8gPSBtX2ppdC5icmFuY2hU
ZXN0MzIoSklUQ29tcGlsZXI6Ok5vblplcm8sIGRpdmlzb3JHUFIpOworICAgICAgICAgICAgbV9q
aXQubW92ZShkaXZpc29yR1BSLCBxdW90aWVudFRoZW5SZW1haW5kZXJHUFIpOworICAgICAgICAg
ICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKKyAgICAgICAgICAgIGRlbm9taW5hdG9yTm90
WmVyby5saW5rKCZtX2ppdCk7CisgICAgICAgIH0KKwogICAgICAgICBtX2ppdC5hc3NlbWJsZXIo
KS5zZGl2PDMyPihxdW90aWVudFRoZW5SZW1haW5kZXJHUFIsIGRpdmlkZW5kR1BSLCBkaXZpc29y
R1BSKTsKICAgICAgICAgLy8gRklYTUU6IEl0IHNlZW1zIGxpa2UgdGhlcmUgYXJlIGNhc2VzIHdo
ZXJlIHdlIGRvbid0IG5lZWQgdGhpcz8gV2hhdCBpZiB3ZSBoYXZlCiAgICAgICAgIC8vIGFyaXRo
TW9kZSgpID09IEFyaXRoOjpVbmNoZWNrZWQ/CkBAIC0zNDcxLDYgKzM1MzUsOCBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNb2QoTm9kCiAgICAgICAgICAgICBudW1lcmF0b3JQ
b3NpdGl2ZS5saW5rKCZtX2ppdCk7CiAgICAgICAgIH0KIAorICAgICAgICBkb25lLmxpbmsoJm1f
aml0KTsKKwogICAgICAgICBpbnQzMlJlc3VsdChxdW90aWVudFRoZW5SZW1haW5kZXJHUFIsIG5v
ZGUpOwogI2Vsc2UgLy8gbm90IGFyY2hpdGVjdHVyZSB0aGF0IGNhbiBkbyBpbnRlZ2VyIGRpdmlz
aW9uCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZpc2lvbiAxNjI5
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHdv
cmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTksOSBAQCBwdWJsaWM6CiAgICAgflNwZWN1bGF0aXZl
SklUKCk7CiAKICAgICBib29sIGNvbXBpbGUoKTsKKyAgICAKKyAgICB2b2lkIHByZXBhcmVKSVRD
b2RlRm9yVGllclVwKCk7CisgICAgCiAgICAgdm9pZCBjcmVhdGVPU1JFbnRyaWVzKCk7CiAgICAg
dm9pZCBsaW5rT1NSRW50cmllcyhMaW5rQnVmZmVyJik7CiAKQEAgLTc0Miw0NCArNzQ1LDQ1IEBA
IHB1YmxpYzoKICAgICAKICAgICBwdHJkaWZmX3QgY2FsbGVlRnJhbWVPZmZzZXQoaW50IG51bUFy
Z3MpCiAgICAgewotICAgICAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9qaXQu
Z3JhcGgoKS5tX25leHRNYWNoaW5lTG9jYWwgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXpl
ICsgbnVtQXJncykub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4g
dmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9qaXQuZ3JhcGgoKS5tX25leHRNYWNoaW5lTG9jYWwg
LSAxICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIG51bUFyZ3MpLm9mZnNldCgpICog
c2l6ZW9mKFJlZ2lzdGVyKTsKICAgICB9CiAgICAgCiAgICAgLy8gQWNjZXNzIHRvIG91ciBmaXhl
ZCBjYWxsZWUgQ2FsbEZyYW1lLgotICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZy
YW1lU2xvdChpbnQgbnVtQXJncywgaW50IHNsb3QpCisgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MgY2FsbGVlRnJhbWVTbG90KGludCBzbG90KQogICAgIHsKLSAgICAgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBjYWxsZWVGcmFt
ZU9mZnNldChudW1BcmdzKSArIHNpemVvZihSZWdpc3RlcikgKiBzbG90KTsKKyAgICAgICAgQVNT
RVJUKHNsb3QgPj0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpOworICAgICAgICByZXR1
cm4gTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyLCBzaXplb2YoUmVnaXN0ZXIpICogKHNsb3QgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFu
ZFBDU2l6ZSkpOwogICAgIH0KIAogICAgIC8vIEFjY2VzcyB0byBvdXIgZml4ZWQgY2FsbGVlIENh
bGxGcmFtZS4KLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVBcmd1bWVudFNsb3Qo
aW50IG51bUFyZ3MsIGludCBhcmd1bWVudCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBj
YWxsZWVBcmd1bWVudFNsb3QoaW50IGFyZ3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNh
bGxlZUZyYW1lU2xvdChudW1BcmdzLCB2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVu
dCkub2Zmc2V0KCkpOworICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KHZpcnR1YWxSZWdp
c3RlckZvckFyZ3VtZW50KGFyZ3VtZW50KS5vZmZzZXQoKSk7CiAgICAgfQogCi0gICAgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVUYWdTbG90KGludCBudW1BcmdzLCBpbnQgc2xv
dCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVRhZ1Nsb3QoaW50IHNs
b3QpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KG51bUFyZ3MsIHNsb3Qp
LndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0
cy50YWcpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdChzbG90KS53aXRoT2Zmc2V0
KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7CiAg
ICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVQYXlsb2FkU2xv
dChpbnQgbnVtQXJncywgaW50IHNsb3QpCisgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2Fs
bGVlRnJhbWVQYXlsb2FkU2xvdChpbnQgc2xvdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxs
ZWVGcmFtZVNsb3QobnVtQXJncywgc2xvdCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5j
b2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKTsKKyAgICAgICAgcmV0dXJuIGNh
bGxlZUZyYW1lU2xvdChzbG90KS53aXRoT2Zmc2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFs
dWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpOwogICAgIH0KIAotICAgIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50VGFnU2xvdChpbnQgbnVtQXJncywgaW50IGFyZ3Vt
ZW50KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50VGFnU2xvdChp
bnQgYXJndW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbGVlQXJndW1lbnRTbG90KG51
bUFyZ3MsIGFyZ3VtZW50KS53aXRoT2Zmc2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVE
ZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVBcmd1bWVudFNs
b3QoYXJndW1lbnQpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2Ny
aXB0b3IsIGFzQml0cy50YWcpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyBjYWxsZWVBcmd1bWVudFBheWxvYWRTbG90KGludCBudW1BcmdzLCBpbnQgYXJndW1lbnQpCisg
ICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRQYXlsb2FkU2xvdChpbnQg
YXJndW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbGVlQXJndW1lbnRTbG90KG51bUFy
Z3MsIGFyZ3VtZW50KS53aXRoT2Zmc2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNj
cmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpOworICAgICAgICByZXR1cm4gY2FsbGVlQXJndW1lbnRT
bG90KGFyZ3VtZW50KS53aXRoT2Zmc2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNj
cmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpOwogICAgIH0KIAotICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUoaW50IG51bUFyZ3MpCisgICAgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVDYWxsZXJGcmFtZSgpCiAgICAgewotICAgICAgICBy
ZXR1cm4gY2FsbGVlRnJhbWVTbG90KG51bUFyZ3MsIDApLndpdGhPZmZzZXQoQ2FsbEZyYW1lOjpj
YWxsZXJGcmFtZU9mZnNldCgpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdCgwKS53
aXRoT2Zmc2V0KENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSk7CiAgICAgfQogCiAgICAg
dm9pZCBlbWl0Q2FsbChOb2RlKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVGllclVwQ2hlY2tJbmplY3Rpb25QaGFzZS5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGllclVwQ2hlY2tJbmpl
Y3Rpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ5LDI3ICs0OSw1OSBAQCBwdWJsaWM6CiAg
ICAgICAgIAogICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUV4cGVyaW1lbnRhbEZUTCgpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotCisgICAgICAgIAorICAgICAgICBpZiAobV9ncmFwaC5t
X3Byb2ZpbGVkQmxvY2stPm1fZGlkRmFpbEZUTENvbXBpbGF0aW9uKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIAogI2lmIEVOQUJMRShGVExfSklUKQogICAgICAgICBGVEw6OkNh
cGFiaWxpdHlMZXZlbCBsZXZlbCA9IEZUTDo6Y2FuQ29tcGlsZShtX2dyYXBoKTsKICAgICAgICAg
aWYgKGxldmVsID09IEZUTDo6Q2Fubm90Q29tcGlsZSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgCisgICAgICAgIGlmICghT3B0aW9uczo6ZW5hYmxlT1NSRW50cnlUb0ZUTCgp
KQorICAgICAgICAgICAgbGV2ZWwgPSBGVEw6OkNhbkNvbXBpbGU7CisgICAgICAgIAogICAgICAg
ICBJbnNlcnRpb25TZXQgaW5zZXJ0aW9uU2V0KG1fZ3JhcGgpOwogICAgICAgICBmb3IgKEJsb2Nr
SW5kZXggYmxvY2tJbmRleCA9IG1fZ3JhcGgubnVtQmxvY2tzKCk7IGJsb2NrSW5kZXgtLTspIHsK
ICAgICAgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9ncmFwaC5ibG9jayhibG9ja0luZGV4
KTsKICAgICAgICAgICAgIGlmICghYmxvY2spCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChibG9jay0+YXQoMCktPm9wKCkgPT0gTG9vcEhp
bnQpIHsKLSAgICAgICAgICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBibG9jay0+YXQo
MCktPmNvZGVPcmlnaW47Ci0gICAgICAgICAgICAgICAgTm9kZVR5cGUgbm9kZVR5cGU7Ci0gICAg
ICAgICAgICAgICAgaWYgKGxldmVsID09IEZUTDo6Q2FuQ29tcGlsZUFuZE9TUkVudGVyICYmICFj
b2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAgICAgICBub2RlVHlw
ZSA9IENoZWNrVGllclVwQW5kT1NSRW50ZXI7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKGJsb2NrLT5ieXRlY29kZUJlZ2luID09IGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCk7
Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG5vZGVUeXBlID0g
Q2hlY2tUaWVyVXBJbkxvb3A7Ci0gICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5v
ZGUoMSwgU3BlY05vbmUsIG5vZGVUeXBlLCBjb2RlT3JpZ2luKTsKKyAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgYmxvY2stPnNpemUoKTsgKytub2Rl
SW5kZXgpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRl
eCk7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgIT0gTG9vcEhpbnQpCisgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IC8vIFdlIG9ubHkgcHV0IE9TUiBjaGVja3MgZm9yIHRoZSBmaXJzdCBMb29wSGludCBpbiB0aGUg
YmxvY2suIE5vdGUgdGhhdAorICAgICAgICAgICAgICAgIC8vIG1vcmUgdGhhbiBvbmUgTG9vcEhp
bnQgY291bGQgaGFwcGVuIGluIGNhc2VzIHdoZXJlIHdlIGRpZCBhIGxvdCBvZiBDRkcKKyAgICAg
ICAgICAgICAgICAvLyBzaW1wbGlmaWNhdGlvbiBpbiB0aGUgYnl0ZWNvZGUgcGFyc2VyLCBidXQg
aXQgc2hvdWxkIGJlIHZlcnkgcmFyZS4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBub2RlLT5jb2RlT3JpZ2luOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIGlmIChsZXZlbCAhPSBGVEw6OkNhbkNvbXBpbGVBbmRPU1JF
bnRlciB8fCBjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSkgeworICAgICAgICAgICAgICAgICAg
ICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJ
bmRleCArIDEsIFNwZWNOb25lLCBDaGVja1RpZXJVcEluTG9vcCwgY29kZU9yaWdpbik7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBib29sIGlzQXRUb3AgPSB0cnVlOworICAgICAgICAgICAgICAg
IGZvciAodW5zaWduZWQgc3ViTm9kZUluZGV4ID0gbm9kZUluZGV4OyBzdWJOb2RlSW5kZXgtLTsp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jay0+YXQoc3ViTm9kZUluZGV4KS0+aXNT
ZW1hbnRpY2FsbHlTa2lwcGFibGUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNBdFRv
cCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgaWYgKCFpc0F0VG9wKSB7CisgICAgICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5p
bnNlcnROb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUluZGV4ICsgMSwgU3BlY05v
bmUsIENoZWNrVGllclVwSW5Mb29wLCBjb2RlT3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKGJsb2NrLT5ieXRlY29kZUJlZ2luID09IGNvZGVPcmlnaW4uYnl0
ZWNvZGVJbmRleCk7CisgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisg
ICAgICAgICAgICAgICAgICAgIG5vZGVJbmRleCArIDEsIFNwZWNOb25lLCBDaGVja1RpZXJVcEFu
ZE9TUkVudGVyLCBjb2RlT3JpZ2luKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGJsb2NrLT5sYXN0KCktPm9wKCkg
PT0gUmV0dXJuKSB7CkBAIC04MCw2ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBpbnNl
cnRpb25TZXQuZXhlY3V0ZShibG9jayk7CiAgICAgICAgIH0KICAgICAgICAgCisgICAgICAgIG1f
Z3JhcGgubV9wbGFuLndpbGxUcnlUb1RpZXJVcCA9IHRydWU7CiAgICAgICAgIHJldHVybiB0cnVl
OwogI2Vsc2UgLy8gRU5BQkxFKEZUTF9KSVQpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNw
cAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxp
ZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw2ICsxODIsMTggQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgVl9FUVVBTCgobm9kZSksIG5v
ZGUtPnJlZkNvdW50KCksIDEpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMCA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKSB7Cisg
ICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChpKTsKKyAgICAgICAgICAgICAg
ICBWQUxJREFURSgobm9kZSksICFub2RlLT5pc1Rlcm1pbmFsKCkpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJsb2NrLT5z
aXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQoaSk7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPmhhc1N0cnVjdHVy
ZSgpKQorICAgICAgICAgICAgICAgICAgICBWQUxJREFURSgobm9kZSksICEhbm9kZS0+c3RydWN0
dXJlKCkpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzd2l0
Y2ggKG1fZ3JhcGgubV9mb3JtKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1dvcmtsaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1dvcmtsaXN0LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdXb3JrbGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MSwyMyArMjYxLDUyIEBA
IHZvaWQgV29ya2xpc3Q6OnRocmVhZEZ1bmN0aW9uKHZvaWQqIGFyZ3UKICAgICBzdGF0aWNfY2Fz
dDxXb3JrbGlzdCo+KGFyZ3VtZW50KS0+cnVuVGhyZWFkKCk7CiB9CiAKLXN0YXRpYyBXb3JrbGlz
dCogdGhlR2xvYmFsV29ya2xpc3Q7CitzdGF0aWMgV29ya2xpc3QqIHRoZUdsb2JhbERGR1dvcmts
aXN0OwogCi1Xb3JrbGlzdCogZ2xvYmFsV29ya2xpc3QoKQorV29ya2xpc3QqIGVuc3VyZUdsb2Jh
bERGR1dvcmtsaXN0KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUds
b2JhbFdvcmtsaXN0T25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUdsb2Jh
bFdvcmtsaXN0T25jZUZsYWcsIFtdIHsKLSAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRz
OworICAgICAgICB0aGVHbG9iYWxERkdXb3JrbGlzdCA9IFdvcmtsaXN0OjpjcmVhdGUoT3B0aW9u
czo6bnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgIH0pOworICAg
IHJldHVybiB0aGVHbG9iYWxERkdXb3JrbGlzdDsKK30KIAotICAgICAgICBpZiAoT3B0aW9uczo6
dXNlRXhwZXJpbWVudGFsRlRMKCkpCi0gICAgICAgICAgICBudW1iZXJPZlRocmVhZHMgPSAxOyAv
LyBXZSBkb24ndCB5ZXQgdXNlIExMVk0gaW4gYSB0aHJlYWQtc2FmZSB3YXkuCi0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIG51bWJlck9mVGhyZWFkcyA9IE9wdGlvbnM6Om51bWJlck9mQ29tcGls
ZXJUaHJlYWRzKCk7CitXb3JrbGlzdCogZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgp
Cit7CisgICAgcmV0dXJuIHRoZUdsb2JhbERGR1dvcmtsaXN0OworfQogCi0gICAgICAgIHRoZUds
b2JhbFdvcmtsaXN0ID0gV29ya2xpc3Q6OmNyZWF0ZShudW1iZXJPZlRocmVhZHMpLmxlYWtSZWYo
KTsKK3N0YXRpYyBXb3JrbGlzdCogdGhlR2xvYmFsRlRMV29ya2xpc3Q7CisKK1dvcmtsaXN0KiBl
bnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpCit7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGlu
aXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRp
YWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBbXSB7CisgICAgICAgIHRoZUdsb2JhbEZUTFdv
cmtsaXN0ID0gV29ya2xpc3Q6OmNyZWF0ZShPcHRpb25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhy
ZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CisgICAgcmV0dXJuIHRoZUdsb2JhbEZUTFdvcmts
aXN0OworfQorCitXb3JrbGlzdCogZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVsbCgpCit7
CisgICAgcmV0dXJuIHRoZUdsb2JhbEZUTFdvcmtsaXN0OworfQogCi0gICAgcmV0dXJuIHRoZUds
b2JhbFdvcmtsaXN0OworV29ya2xpc3QqIGVuc3VyZUdsb2JhbFdvcmtsaXN0Rm9yKENvbXBpbGF0
aW9uTW9kZSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgSW52YWxpZENv
bXBpbGF0aW9uTW9kZToKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBERkdNb2RlOgorICAgICAgICByZXR1cm4gZW5zdXJl
R2xvYmFsREZHV29ya2xpc3QoKTsKKyAgICBjYXNlIEZUTE1vZGU6CisgICAgY2FzZSBGVExGb3JP
U1JFbnRyeU1vZGU6CisgICAgICAgIHJldHVybiBlbnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpOwor
ICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOwog
fQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1dvcmtsaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdXb3JrbGlzdC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1dvcmtsaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDEwICs5NSwxNSBA
QCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZBY3RpdmVUaHJlYWRzOwogfTsKIAot
Ly8gRm9yIG5vdyB3ZSB1c2UgYSBzaW5nbGUgZ2xvYmFsIHdvcmtsaXN0LiBJdCdzIG5vdCBjbGVh
ciB0aGF0IHRoaXMKLS8vIGlzIHRoZSByaWdodCB0aGluZyB0byBkbywgYnV0IGl0IGlzIHdoYXQg
d2UgZG8sIGZvciBub3cuIFRoaXMgZnVuY3Rpb24KLS8vIHdpbGwgbGF6aWx5IGNyZWF0ZSBvbmUg
d2hlbiBpdCdzIG5lZWRlZC4KLVdvcmtsaXN0KiBnbG9iYWxXb3JrbGlzdCgpOworLy8gRm9yIERG
R01vZGUgY29tcGlsYXRpb25zLgorV29ya2xpc3QqIGVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KCk7
CitXb3JrbGlzdCogZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpOworCisvLyBGb3Ig
RlRMTW9kZSBhbmQgRlRMRm9yT1NSRW50cnlNb2RlIGNvbXBpbGF0aW9ucy4KK1dvcmtsaXN0KiBl
bnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpOworV29ya2xpc3QqIGV4aXN0aW5nR2xvYmFsRlRMV29y
a2xpc3RPck51bGwoKTsKKworV29ya2xpc3QqIGVuc3VyZUdsb2JhbFdvcmtsaXN0Rm9yKENvbXBp
bGF0aW9uTW9kZSk7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNv
ZGUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNz
ZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2Miw4
IEBAIHN0cnVjdCBPcGNvZGVHcm91cEluaXRpYWxpemVyIHsKIHsgZ3JvdXBJbmRleCwgZ3JvdXBD
bGFzczo6bWFzaywgZ3JvdXBDbGFzczo6cGF0dGVybiwgZ3JvdXBDbGFzczo6Zm9ybWF0IH0KIAog
c3RhdGljIE9wY29kZUdyb3VwSW5pdGlhbGl6ZXIgb3Bjb2RlR3JvdXBMaXN0W10gPSB7CisgICAg
T1BDT0RFX0dST1VQX0VOVFJZKDB4MDgsIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIp
LAorICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgweDA5LCBBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0
ZXJQYWlyKSwKICAgICBPUENPREVfR1JPVVBfRU5UUlkoMHgwYSwgQTY0RE9wY29kZUxvZ2ljYWxT
aGlmdGVkUmVnaXN0ZXIpLAogICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgweDBiLCBBNjRET3Bjb2Rl
QWRkU3VidHJhY3RFeHRlbmRlZFJlZ2lzdGVyKSwKICAgICBPUENPREVfR1JPVVBfRU5UUlkoMHgw
YiwgQTY0RE9wY29kZUFkZFN1YnRyYWN0U2hpZnRlZFJlZ2lzdGVyKSwKQEAgLTE3Miw2ICsxNzQs
MTEgQEAgY29uc3QgY2hhciogQTY0RE9wY29kZTo6Zm9ybWF0KCkKIAogdm9pZCBBNjRET3Bjb2Rl
OjphcHBlbmRSZWdpc3Rlck5hbWUodW5zaWduZWQgcmVnaXN0ZXJOdW1iZXIsIGJvb2wgaXM2NEJp
dCkKIHsKKyAgICBpZiAocmVnaXN0ZXJOdW1iZXIgPT0gMjkpIHsKKyAgICAgICAgYnVmZmVyUHJp
bnRmKGlzNjRCaXQgPyAiZnAiIDogIndmcCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgaWYgKHJlZ2lzdGVyTnVtYmVyID09IDMwKSB7CiAgICAgICAgIGJ1ZmZlclByaW50ZihpczY0
Qml0ID8gImxyIiA6ICJ3bHIiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTM5LDYgKzk0Niw2MyBA
QCBjb25zdCBjaGFyKiBBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJPCiAgICAgcmV0dXJuIG1f
Zm9ybWF0QnVmZmVyOwogfQogCitjb25zdCBjaGFyKiBBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0
ZXJQYWlyOjpvcE5hbWUoKQoreworICAgIGlmICghdkJpdCgpICYmIGxCaXQoKSAmJiBzaXplKCkg
PT0gMHgxKQorICAgICAgICByZXR1cm4gImxkcHN3IjsKKyAgICBpZiAobEJpdCgpKQorICAgICAg
ICByZXR1cm4gImxkcCI7CisgICAgcmV0dXJuICJzdHAiOworfQorCitjb25zdCBjaGFyKiBBNjRE
T3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyOjpmb3JtYXQoKQoreworICAgIGNvbnN0IGNoYXIq
IHRoaXNPcE5hbWUgPSBvcE5hbWUoKTsKKyAgICAKKyAgICBpZiAoc2l6ZSgpID09IDB4MykKKyAg
ICAgICAgcmV0dXJuIEE2NERPcGNvZGU6OmZvcm1hdCgpOworCisgICAgaWYgKChvZmZzZXRNb2Rl
KCkgPCAweDEpIHx8IChvZmZzZXRNb2RlKCkgPiAweDMpKQorICAgICAgICByZXR1cm4gQTY0RE9w
Y29kZTo6Zm9ybWF0KCk7CisKKyAgICBpZiAoKG9mZnNldE1vZGUoKSA9PSAweDEpICYmICF2Qml0
KCkgJiYgIWxCaXQoKSkKKyAgICAgICAgcmV0dXJuIEE2NERPcGNvZGU6OmZvcm1hdCgpOworCisg
ICAgYXBwZW5kSW5zdHJ1Y3Rpb25OYW1lKHRoaXNPcE5hbWUpOworICAgIHVuc2lnbmVkIG9mZnNl
dFNoaWZ0OworICAgIGlmICh2Qml0KCkpIHsKKyAgICAgICAgYXBwZW5kRlBSZWdpc3Rlck5hbWUo
cnQoKSwgc2l6ZSgpKTsKKyAgICAgICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIGFwcGVu
ZEZQUmVnaXN0ZXJOYW1lKHJ0MigpLCBzaXplKCkpOworICAgICAgICBvZmZzZXRTaGlmdCA9IHNp
emUoKSArIDI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXBwZW5kUmVnaXN0ZXJOYW1lKHJ0KCks
IGlzNjRCaXQoKSk7CisgICAgICAgIGFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICBhcHBlbmRS
ZWdpc3Rlck5hbWUocnQyKCksIGlzNjRCaXQoKSk7CisgICAgICAgIG9mZnNldFNoaWZ0ID0gKHNp
emUoKSA+PiAxKSArIDI7CisgICAgfQorCisgICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgYXBw
ZW5kQ2hhcmFjdGVyKCdbJyk7CisgICAgYXBwZW5kU1BPclJlZ2lzdGVyTmFtZShybigpKTsKKwor
ICAgIGludCBvZmZzZXQgPSBpbW1lZGlhdGU3KCkgPDwgb2Zmc2V0U2hpZnQ7CisKKyAgICBpZiAo
b2Zmc2V0TW9kZSgpID09IDEpIHsKKyAgICAgICAgYXBwZW5kQ2hhcmFjdGVyKCddJyk7CisgICAg
ICAgIGFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICBhcHBlbmRTaWduZWRJbW1lZGlhdGUob2Zm
c2V0KTsKKyAgICB9IGVsc2UgeworICAgICAgICBhcHBlbmRTZXBhcmF0b3IoKTsKKyAgICAgICAg
YXBwZW5kU2lnbmVkSW1tZWRpYXRlKG9mZnNldCk7CisgICAgICAgIGFwcGVuZENoYXJhY3Rlcign
XScpOworICAgICAgICBpZiAob2Zmc2V0TW9kZSgpID09IDB4MykKKyAgICAgICAgICAgIGFwcGVu
ZENoYXJhY3RlcignIScpOworICAgIH0KKworICAgIHJldHVybiBtX2Zvcm1hdEJ1ZmZlcjsKK30K
KwogY29uc3QgY2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVVuc2lnbmVkSW1tZWRpYXRlOjpmb3Jt
YXQoKQogewogICAgIGNvbnN0IGNoYXIqIHRoaXNPcE5hbWUgPSBvcE5hbWUoKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9w
Y29kZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNz
ZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTY1LDYgKzU2NSwy
MiBAQCBwdWJsaWM6CiAgICAgaW50IHNCaXQoKSB7IHJldHVybiAobV9vcGNvZGUgPj4gMTIpICYg
MHgxOyB9CiB9OwogCitjbGFzcyBBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyIDogcHVi
bGljIEE2NERPcGNvZGVMb2FkU3RvcmUgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCB1aW50
MzJfdCBtYXNrID0gMHgzYTAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVy
biA9IDB4MjgwMDAwMDA7CisKKyAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlTG9h
ZFN0b3JlUmVnaXN0ZXJQYWlyLCB0aGlzT2JqKTsKKworICAgIGNvbnN0IGNoYXIqIGZvcm1hdCgp
OworICAgIGNvbnN0IGNoYXIqIG9wTmFtZSgpOworCisgICAgdW5zaWduZWQgcnQyKCkgeyByZXR1
cm4gKG1fb3Bjb2RlID4+IDEwKSAmIDB4MWY7IH0KKyAgICBpbnQgaW1tZWRpYXRlNygpIHsgcmV0
dXJuIChzdGF0aWNfY2FzdDxpbnQ+KChtX29wY29kZSA+PiAxNSkgJiAweDdmKSA8PCAyNSkgPj4g
MjU7IH0KKyAgICB1bnNpZ25lZCBvZmZzZXRNb2RlKCkgeyByZXR1cm4gKG1fb3Bjb2RlID4+IDIz
KSAmIDB4NzsgfQorICAgIGludCBsQml0KCkgeyByZXR1cm4gKG1fb3Bjb2RlID4+IDIyKSAmIDB4
MTsgfQorfTsKKwogY2xhc3MgQTY0RE9wY29kZUxvYWRTdG9yZVVuc2lnbmVkSW1tZWRpYXRlIDog
cHVibGljIEE2NERPcGNvZGVMb2FkU3RvcmUgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCBtYXNrID0gMHgzYjAwMDAwMDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQWJicmV2aWF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJicmV2aWF0aW9ucy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEFiYnJldmlhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTgs
NiArNTgsNyBAQCBzdGF0aWMgaW5saW5lIExUeXBlIGZsb2F0VHlwZShMQ29udGV4dCBjCiBzdGF0
aWMgaW5saW5lIExUeXBlIGRvdWJsZVR5cGUoTENvbnRleHQgY29udGV4dCkgeyByZXR1cm4gbGx2
bS0+RG91YmxlVHlwZUluQ29udGV4dChjb250ZXh0KTsgfQogCiBzdGF0aWMgaW5saW5lIExUeXBl
IHBvaW50ZXJUeXBlKExUeXBlIHR5cGUpIHsgcmV0dXJuIGxsdm0tPlBvaW50ZXJUeXBlKHR5cGUs
IDApOyB9CitzdGF0aWMgaW5saW5lIExUeXBlIGFycmF5VHlwZShMVHlwZSB0eXBlLCB1bnNpZ25l
ZCBjb3VudCkgeyByZXR1cm4gbGx2bS0+QXJyYXlUeXBlKHR5cGUsIGNvdW50KTsgfQogc3RhdGlj
IGlubGluZSBMVHlwZSB2ZWN0b3JUeXBlKExUeXBlIHR5cGUsIHVuc2lnbmVkIGNvdW50KSB7IHJl
dHVybiBsbHZtLT5WZWN0b3JUeXBlKHR5cGUsIGNvdW50KTsgfQogCiBlbnVtIFBhY2tpbmdNb2Rl
IHsgTm90UGFja2VkLCBQYWNrZWQgfTsKQEAgLTEzMiw2ICsxMzMsNyBAQCBzdGF0aWMgaW5saW5l
IHZvaWQgc2V0TWV0YWRhdGEoTFZhbHVlIGluCiBzdGF0aWMgaW5saW5lIExWYWx1ZSBhZGRGdW5j
dGlvbihMTW9kdWxlIG1vZHVsZSwgY29uc3QgY2hhciogbmFtZSwgTFR5cGUgdHlwZSkgeyByZXR1
cm4gbGx2bS0+QWRkRnVuY3Rpb24obW9kdWxlLCBuYW1lLCB0eXBlKTsgfQogc3RhdGljIGlubGlu
ZSB2b2lkIHNldExpbmthZ2UoTFZhbHVlIGdsb2JhbCwgTExpbmthZ2UgbGlua2FnZSkgeyBsbHZt
LT5TZXRMaW5rYWdlKGdsb2JhbCwgbGlua2FnZSk7IH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRG
dW5jdGlvbkNhbGxpbmdDb252KExWYWx1ZSBmdW5jdGlvbiwgTENhbGxDb252IGNvbnZlbnRpb24p
IHsgbGx2bS0+U2V0RnVuY3Rpb25DYWxsQ29udihmdW5jdGlvbiwgY29udmVudGlvbik7IH0KK3N0
YXRpYyBpbmxpbmUgdm9pZCBhZGRUYXJnZXREZXBlbmRlbnRGdW5jdGlvbkF0dHIoTFZhbHVlIGZ1
bmN0aW9uLCBjb25zdCBjaGFyKiBrZXksIGNvbnN0IGNoYXIqIHZhbHVlKSB7IGxsdm0tPkFkZFRh
cmdldERlcGVuZGVudEZ1bmN0aW9uQXR0cihmdW5jdGlvbiwga2V5LCB2YWx1ZSk7IH0KIAogc3Rh
dGljIGlubGluZSBMVmFsdWUgYWRkRXh0ZXJuRnVuY3Rpb24oTE1vZHVsZSBtb2R1bGUsIGNvbnN0
IGNoYXIqIG5hbWUsIExUeXBlIHR5cGUpCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTUzLDkgKzUzLDEwIEBAIHZvaWQgQWJzdHJhY3RIZWFwOjpkZWNvcmF0ZUluc3RydWN0aW9uKEwK
ICAgICBzZXRNZXRhZGF0YShpbnN0cnVjdGlvbiwgcmVwb3NpdG9yeS5tX3RiYWFLaW5kLCB0YmFh
TWV0YWRhdGEocmVwb3NpdG9yeSkpOwogfQogCi1JbmRleGVkQWJzdHJhY3RIZWFwOjpJbmRleGVk
QWJzdHJhY3RIZWFwKExDb250ZXh0IGNvbnRleHQsIEFic3RyYWN0SGVhcCogcGFyZW50LCBjb25z
dCBjaGFyKiBoZWFwTmFtZSwgc2l6ZV90IGVsZW1lbnRTaXplKQorSW5kZXhlZEFic3RyYWN0SGVh
cDo6SW5kZXhlZEFic3RyYWN0SGVhcChMQ29udGV4dCBjb250ZXh0LCBBYnN0cmFjdEhlYXAqIHBh
cmVudCwgY29uc3QgY2hhciogaGVhcE5hbWUsIHB0cmRpZmZfdCBvZmZzZXQsIHNpemVfdCBlbGVt
ZW50U2l6ZSkKICAgICA6IG1faGVhcEZvckFueUluZGV4KHBhcmVudCwgaGVhcE5hbWUpCiAgICAg
LCBtX2hlYXBOYW1lTGVuZ3RoKHN0cmxlbihoZWFwTmFtZSkpCisgICAgLCBtX29mZnNldChvZmZz
ZXQpCiAgICAgLCBtX2VsZW1lbnRTaXplKGVsZW1lbnRTaXplKQogICAgICwgbV9zY2FsZVRlcm0o
MCkKICAgICAsIG1fY2FuU2hpZnQoZmFsc2UpCkBAIC05Myw3ICs5NCw3IEBAIFR5cGVkUG9pbnRl
ciBJbmRleGVkQWJzdHJhY3RIZWFwOjpiYXNlSW4KICAgICB9IGVsc2UKICAgICAgICAgcmVzdWx0
ID0gb3V0LmFkZChiYXNlLCBvdXQubXVsKGluZGV4LCBtX3NjYWxlVGVybSkpOwogICAgIAotICAg
IHJldHVybiBUeXBlZFBvaW50ZXIoYXRBbnlJbmRleCgpLCBvdXQuYWRkUHRyKHJlc3VsdCwgb2Zm
c2V0KSk7CisgICAgcmV0dXJuIFR5cGVkUG9pbnRlcihhdEFueUluZGV4KCksIG91dC5hZGRQdHIo
cmVzdWx0LCBtX29mZnNldCArIG9mZnNldCkpOwogfQogCiBjb25zdCBBYnN0cmFjdEZpZWxkJiBJ
bmRleGVkQWJzdHJhY3RIZWFwOjphdFNsb3cocHRyZGlmZl90IGluZGV4KQpAQCAtMTY4LDcgKzE2
OSw3IEBAIHZvaWQgSW5kZXhlZEFic3RyYWN0SGVhcDo6aW5pdGlhbGl6ZShBYnMKICAgICAgICAg
ICAgIGFjY3VtdWxhdG9yID4+PSA0OwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBmaWVs
ZC5pbml0aWFsaXplKCZtX2hlYXBGb3JBbnlJbmRleCwgY2hhcmFjdGVycywgc2lnbmVkSW5kZXgg
KiBtX2VsZW1lbnRTaXplKTsKKyAgICAgICAgZmllbGQuaW5pdGlhbGl6ZSgmbV9oZWFwRm9yQW55
SW5kZXgsIGNoYXJhY3RlcnMsIG1fb2Zmc2V0ICsgc2lnbmVkSW5kZXggKiBtX2VsZW1lbnRTaXpl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKQEAgLTE3Nyw3ICsxNzgsNyBAQCB2b2lk
IEluZGV4ZWRBYnN0cmFjdEhlYXA6OmluaXRpYWxpemUoQWJzCiAKIE51bWJlcmVkQWJzdHJhY3RI
ZWFwOjpOdW1iZXJlZEFic3RyYWN0SGVhcCgKICAgICBMQ29udGV4dCBjb250ZXh0LCBBYnN0cmFj
dEhlYXAqIGhlYXAsIGNvbnN0IGNoYXIqIGhlYXBOYW1lKQotICAgIDogbV9pbmRleGVkSGVhcChj
b250ZXh0LCBoZWFwLCBoZWFwTmFtZSwgMSkKKyAgICA6IG1faW5kZXhlZEhlYXAoY29udGV4dCwg
aGVhcCwgaGVhcE5hbWUsIDAsIDEpCiB7CiB9CiAKQEAgLTE4Nyw3ICsxODgsNyBAQCBOdW1iZXJl
ZEFic3RyYWN0SGVhcDo6fk51bWJlcmVkQWJzdHJhY3RICiAKIEFic29sdXRlQWJzdHJhY3RIZWFw
OjpBYnNvbHV0ZUFic3RyYWN0SGVhcCgKICAgICBMQ29udGV4dCBjb250ZXh0LCBBYnN0cmFjdEhl
YXAqIGhlYXAsIGNvbnN0IGNoYXIqIGhlYXBOYW1lKQotICAgIDogbV9pbmRleGVkSGVhcChjb250
ZXh0LCBoZWFwLCBoZWFwTmFtZSwgMSkKKyAgICA6IG1faW5kZXhlZEhlYXAoY29udGV4dCwgaGVh
cCwgaGVhcE5hbWUsIDAsIDEpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQWJzdHJhY3RIZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXAuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDcg
KzEzOSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEluZGV4ZWRBYnN0cmFjdEhlYXAgewogcHVibGlj
OgotICAgIEluZGV4ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQsIEFic3RyYWN0SGVhcCogcGFyZW50
LCBjb25zdCBjaGFyKiBoZWFwTmFtZSwgc2l6ZV90IGVsZW1lbnRTaXplKTsKKyAgICBJbmRleGVk
QWJzdHJhY3RIZWFwKExDb250ZXh0LCBBYnN0cmFjdEhlYXAqIHBhcmVudCwgY29uc3QgY2hhciog
aGVhcE5hbWUsIHB0cmRpZmZfdCBvZmZzZXQsIHNpemVfdCBlbGVtZW50U2l6ZSk7CiAgICAgfklu
ZGV4ZWRBYnN0cmFjdEhlYXAoKTsKICAgICAKICAgICBjb25zdCBBYnN0cmFjdEhlYXAmIGF0QW55
SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2hlYXBGb3JBbnlJbmRleDsgfQpAQCAtMTY4LDYgKzE2
OCw3IEBAIHByaXZhdGU6CiAKICAgICBBYnN0cmFjdEhlYXAgbV9oZWFwRm9yQW55SW5kZXg7CiAg
ICAgc2l6ZV90IG1faGVhcE5hbWVMZW5ndGg7CisgICAgcHRyZGlmZl90IG1fb2Zmc2V0OwogICAg
IHNpemVfdCBtX2VsZW1lbnRTaXplOwogICAgIExWYWx1ZSBtX3NjYWxlVGVybTsKICAgICBib29s
IG1fY2FuU2hpZnQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgQWJzdHJhY3RIZWFwUmVwb3NpdG9yeTo6QWJz
dHJhY3RIZWFwUmVwbwogICAgIAogICAgICwgSlNDZWxsX2ZyZWVMaXN0TmV4dChKU0NlbGxfc3Ry
dWN0dXJlKQogICAgIAotI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElBTElaQVRJ
T04obmFtZSwgc2l6ZSkgLCBuYW1lKGNvbnRleHQsICZyb290LCAjbmFtZSwgc2l6ZSkKKyNkZWZp
bmUgSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0lOSVRJQUxJWkFUSU9OKG5hbWUsIG9mZnNldCwgc2l6
ZSkgLCBuYW1lKGNvbnRleHQsICZyb290LCAjbmFtZSwgb2Zmc2V0LCBzaXplKQogICAgIEZPUl9F
QUNIX0lOREVYRURfQUJTVFJBQ1RfSEVBUChJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElBTEla
QVRJT04pCiAjdW5kZWYgSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0lOSVRJQUxJWkFUSU9OCiAgICAg
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4
LDExICs0OCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8o
SlNBcnJheUJ1ZmZlclZpZXdfbW9kZSwgSlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mTW9kZSgp
KSBcCiAgICAgbWFjcm8oSlNBcnJheUJ1ZmZlclZpZXdfdmVjdG9yLCBKU0FycmF5QnVmZmVyVmll
dzo6b2Zmc2V0T2ZWZWN0b3IoKSkgXAogICAgIG1hY3JvKEpTQ2VsbF9zdHJ1Y3R1cmUsIEpTQ2Vs
bDo6c3RydWN0dXJlT2Zmc2V0KCkpIFwKKyAgICBtYWNybyhKU0Z1bmN0aW9uX2V4ZWN1dGFibGUs
IEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSBcCisgICAgbWFjcm8oSlNGdW5jdGlv
bl9zY29wZSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZTY29wZUNoYWluKCkpIFwKICAgICBtYWNybyhK
U09iamVjdF9idXR0ZXJmbHksIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSkgXAogICAgIG1h
Y3JvKEpTU2NvcGVfbmV4dCwgSlNTY29wZTo6b2Zmc2V0T2ZOZXh0KCkpIFwKKyAgICBtYWNybyhK
U1N0cmluZ19mbGFncywgSlNTdHJpbmc6Om9mZnNldE9mRmxhZ3MoKSkgXAogICAgIG1hY3JvKEpT
U3RyaW5nX2xlbmd0aCwgSlNTdHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkpIFwKICAgICBtYWNybyhK
U1N0cmluZ192YWx1ZSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSkgXAogICAgIG1hY3JvKEpT
VmFyaWFibGVPYmplY3RfcmVnaXN0ZXJzLCBKU1ZhcmlhYmxlT2JqZWN0OjpvZmZzZXRPZlJlZ2lz
dGVycygpKSBcCisgICAgbWFjcm8oSlNXcmFwcGVyT2JqZWN0X2ludGVybmFsVmFsdWUsIEpTV3Jh
cHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpKSBcCiAgICAgbWFjcm8oTWFya2VkQWxs
b2NhdG9yX2ZyZWVMaXN0SGVhZCwgTWFya2VkQWxsb2NhdG9yOjpvZmZzZXRPZkZyZWVMaXN0SGVh
ZCgpKSBcCiAgICAgbWFjcm8oTWFya2VkQmxvY2tfbWFya0JpdHMsIE1hcmtlZEJsb2NrOjpvZmZz
ZXRPZk1hcmtzKCkpIFwKICAgICBtYWNybyhTdHJpbmdJbXBsX2RhdGEsIFN0cmluZ0ltcGw6OmRh
dGFPZmZzZXQoKSkgXApAQCAtNjQsMTQgKzY4LDE1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgRlRMIHsKICAgICBtYWNybyhTdHJ1Y3R1cmVfdHlwZUluZm9UeXBlLCBTdHJ1Y3R1cmU6OnR5
cGVJbmZvVHlwZU9mZnNldCgpKQogCiAjZGVmaW5lIEZPUl9FQUNIX0lOREVYRURfQUJTVFJBQ1Rf
SEVBUChtYWNybykgXAotICAgIG1hY3JvKGNoYXJhY3RlcnM4LCBzaXplb2YoTENoYXIpKSBcCi0g
ICAgbWFjcm8oY2hhcmFjdGVyczE2LCBzaXplb2YoVUNoYXIpKSBcCi0gICAgbWFjcm8oaW5kZXhl
ZEludDMyUHJvcGVydGllcywgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAotICAgIG1hY3JvKGlu
ZGV4ZWREb3VibGVQcm9wZXJ0aWVzLCBzaXplb2YoZG91YmxlKSkgXAotICAgIG1hY3JvKGluZGV4
ZWRDb250aWd1b3VzUHJvcGVydGllcywgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAotICAgIG1h
Y3JvKGluZGV4ZWRBcnJheVN0b3JhZ2VQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUp
KSBcCi0gICAgbWFjcm8oc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncywgc2l6ZW9mKEpTU3RyaW5nKikp
IFwKLSAgICBtYWNybyh2YXJpYWJsZXMsIHNpemVvZihSZWdpc3RlcikpCisgICAgbWFjcm8oSlNS
b3BlU3RyaW5nX2ZpYmVycywgSlNSb3BlU3RyaW5nOjpvZmZzZXRPZkZpYmVycygpLCBzaXplb2Yo
V3JpdGVCYXJyaWVyPEpTU3RyaW5nPikpIFwKKyAgICBtYWNybyhjaGFyYWN0ZXJzOCwgMCwgc2l6
ZW9mKExDaGFyKSkgXAorICAgIG1hY3JvKGNoYXJhY3RlcnMxNiwgMCwgc2l6ZW9mKFVDaGFyKSkg
XAorICAgIG1hY3JvKGluZGV4ZWRJbnQzMlByb3BlcnRpZXMsIDAsIHNpemVvZihFbmNvZGVkSlNW
YWx1ZSkpIFwKKyAgICBtYWNybyhpbmRleGVkRG91YmxlUHJvcGVydGllcywgMCwgc2l6ZW9mKGRv
dWJsZSkpIFwKKyAgICBtYWNybyhpbmRleGVkQ29udGlndW91c1Byb3BlcnRpZXMsIDAsIHNpemVv
ZihFbmNvZGVkSlNWYWx1ZSkpIFwKKyAgICBtYWNybyhpbmRleGVkQXJyYXlTdG9yYWdlUHJvcGVy
dGllcywgMCwgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKHNpbmdsZUNoYXJh
Y3RlclN0cmluZ3MsIDAsIHNpemVvZihKU1N0cmluZyopKSBcCisgICAgbWFjcm8odmFyaWFibGVz
LCAwLCBzaXplb2YoUmVnaXN0ZXIpKQogICAgIAogI2RlZmluZSBGT1JfRUFDSF9OVU1CRVJFRF9B
QlNUUkFDVF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8ocHJvcGVydGllcykKQEAgLTk3LDcgKzEw
Miw3IEBAIHB1YmxpYzoKICAgICAKICAgICBBYnN0cmFjdEZpZWxkJiBKU0NlbGxfZnJlZUxpc3RO
ZXh0OwogICAgIAotI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfREVDTEFSQVRJT04obmFt
ZSwgc2l6ZSkgSW5kZXhlZEFic3RyYWN0SGVhcCBuYW1lOworI2RlZmluZSBJTkRFWEVEX0FCU1RS
QUNUX0hFQVBfREVDTEFSQVRJT04obmFtZSwgb2Zmc2V0LCBzaXplKSBJbmRleGVkQWJzdHJhY3RI
ZWFwIG5hbWU7CiAgICAgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKElOREVYRURfQUJT
VFJBQ1RfSEVBUF9ERUNMQVJBVElPTikKICN1bmRlZiBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfREVD
TEFSQVRJT04KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxh
YmxlUmVjb3ZlcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCIK
KworI2lmIEVOQUJMRShGVExfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7
CisKK3ZvaWQgQXZhaWxhYmxlUmVjb3Zlcnk6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
K3sKKyAgICBvdXQucHJpbnQobm9kZSgpLCAiID0+ICIsIG9wY29kZSgpLCAiLCAiLCBSYXdQb2lu
dGVyKG1fbGVmdCksICIsICIsIFJhd1BvaW50ZXIobV9yaWdodCksICIsICIsIG1fZm9ybWF0KTsK
K30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9K
SVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3Zl
cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEF2YWlsYWJs
ZVJlY292ZXJ5LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEF2YWlsYWJsZVJlY292ZXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZUTEF2
YWlsYWJsZVJlY292ZXJ5X2gKKyNkZWZpbmUgRlRMQXZhaWxhYmxlUmVjb3ZlcnlfaAorCisjaWYg
RU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJERkdOb2RlLmgiCisjaW5jbHVkZSAiRlRMQWJi
cmV2aWF0ZWRUeXBlcy5oIgorI2luY2x1ZGUgIkZUTFJlY292ZXJ5T3Bjb2RlLmgiCisjaW5jbHVk
ZSAiRlRMVmFsdWVGb3JtYXQuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewor
CitjbGFzcyBBdmFpbGFibGVSZWNvdmVyeSB7CitwdWJsaWM6CisgICAgQXZhaWxhYmxlUmVjb3Zl
cnkoKQorICAgICAgICA6IG1fbm9kZSgwKQorICAgICAgICAsIG1fZm9ybWF0KEludmFsaWRWYWx1
ZUZvcm1hdCkKKyAgICAgICAgLCBtX29wY29kZShBZGRSZWNvdmVyeSkKKyAgICAgICAgLCBtX2xl
ZnQoMCkKKyAgICAgICAgLCBtX3JpZ2h0KDApCisgICAgeworICAgIH0KKyAgICAKKyAgICBBdmFp
bGFibGVSZWNvdmVyeShERkc6Ok5vZGUqIG5vZGUsIFJlY292ZXJ5T3Bjb2RlIG9wY29kZSwgTFZh
bHVlIGxlZnQsIExWYWx1ZSByaWdodCwgVmFsdWVGb3JtYXQgZm9ybWF0KQorICAgICAgICA6IG1f
bm9kZShub2RlKQorICAgICAgICAsIG1fZm9ybWF0KGZvcm1hdCkKKyAgICAgICAgLCBtX29wY29k
ZShvcGNvZGUpCisgICAgICAgICwgbV9sZWZ0KGxlZnQpCisgICAgICAgICwgbV9yaWdodChyaWdo
dCkKKyAgICB7CisgICAgfQorICAgIAorICAgIERGRzo6Tm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbm9kZTsgfQorICAgIFZhbHVlRm9ybWF0IGZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1f
Zm9ybWF0OyB9CisgICAgUmVjb3ZlcnlPcGNvZGUgb3Bjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9v
cGNvZGU7IH0KKyAgICBMVmFsdWUgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQorICAg
IExWYWx1ZSByaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0KKyAgICAKKyAgICB2b2lk
IGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKKyAgICAKK3ByaXZhdGU6CisgICAgREZHOjpOb2Rl
KiBtX25vZGU7CisgICAgVmFsdWVGb3JtYXQgbV9mb3JtYXQ7CisgICAgUmVjb3ZlcnlPcGNvZGUg
bV9vcGNvZGU7CisgICAgTFZhbHVlIG1fbGVmdDsKKyAgICBMVmFsdWUgbV9yaWdodDsKK307CisK
K30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQor
CisjZW5kaWYgLy8gRlRMQXZhaWxhYmxlUmVjb3ZlcnlfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDExIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsK
IAogdXNpbmcgbmFtZXNwYWNlIERGRzsKIAorc3RhdGljIGJvb2wgdmVyYm9zZUNhcGFiaWxpdGll
cygpCit7CisgICAgcmV0dXJuIHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSB8fCBPcHRpb25z
Ojp2ZXJib3NlRlRMRmFpbHVyZSgpOworfQorCiBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNv
bXBpbGUoTm9kZSogbm9kZSkKIHsKICAgICAvLyBOT1RFOiBJZiB3ZSBldmVyIGhhdmUgcGhhbnRv
bSBhcmd1bWVudHMsIHdlIGNhbiBjb21waWxlIHRoZW0gYnV0IHdlIGNhbm5vdApAQCAtNzcsNiAr
ODIsOSBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogCiAgICAgY2Fz
ZSBBcml0aE1pbjoKICAgICBjYXNlIEFyaXRoTWF4OgogICAgIGNhc2UgQXJpdGhBYnM6CisgICAg
Y2FzZSBBcml0aFNpbjoKKyAgICBjYXNlIEFyaXRoQ29zOgorICAgIGNhc2UgQXJpdGhTcXJ0Ogog
ICAgIGNhc2UgQXJpdGhOZWdhdGU6CiAgICAgY2FzZSBVSW50MzJUb051bWJlcjoKICAgICBjYXNl
IEludDMyVG9Eb3VibGU6CkBAIC04OCw4ICs5Niw2IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwg
Y2FuQ29tcGlsZShOb2RlKiAKICAgICBjYXNlIFVwc2lsb246CiAgICAgY2FzZSBFeHRyYWN0T1NS
RW50cnlMb2NhbDoKICAgICBjYXNlIExvb3BIaW50OgotICAgIGNhc2UgQ2FsbDoKLSAgICBjYXNl
IENvbnN0cnVjdDoKICAgICBjYXNlIEdldE15U2NvcGU6CiAgICAgY2FzZSBTa2lwU2NvcGU6CiAg
ICAgY2FzZSBHZXRDbG9zdXJlUmVnaXN0ZXJzOgpAQCAtMTA4LDE1ICsxMTQsMjcgQEAgaW5saW5l
IENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNhc2UgU3RvcmVCYXJyaWVy
OgogICAgIGNhc2UgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXI6CiAgICAgY2FzZSBTdG9yZUJhcnJp
ZXJXaXRoTnVsbENoZWNrOgorICAgIGNhc2UgQ2FsbDoKKyAgICBjYXNlIENvbnN0cnVjdDoKICAg
ICBjYXNlIFZhbHVlVG9JbnQzMjoKICAgICBjYXNlIEJyYW5jaDoKICAgICBjYXNlIExvZ2ljYWxO
b3Q6CiAgICAgY2FzZSBDaGVja0luQm91bmRzOgogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9p
bnRlcjoKICAgICBjYXNlIENoZWNrOgorICAgIGNhc2UgQ291bnRFeGVjdXRpb246CisgICAgY2Fz
ZSBDaGVja0V4ZWN1dGFibGU6CisgICAgY2FzZSBHZXRTY29wZToKKyAgICBjYXNlIEFsbG9jYXRp
b25Qcm9maWxlV2F0Y2hwb2ludDoKKyAgICBjYXNlIENoZWNrQXJndW1lbnRzTm90Q3JlYXRlZDoK
KyAgICBjYXNlIEdldENhbGxlZToKKyAgICBjYXNlIFRvU3RyaW5nOgorICAgIGNhc2UgTWFrZVJv
cGU6CisgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgogICAgICAgICAvLyBUaGVzZSBhcmUgT0su
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR2V0QnlJZDoKKyAgICBjYXNlIFB1dEJ5SWREaXJl
Y3Q6CiAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2lu
ZCgpID09IENlbGxVc2UpCiAgICAgICAgICAgICBicmVhazsKQEAgLTIzNyw4ICsyNTUsMTcgQEAg
aW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogQ2FwYWJpbGl0eUxldmVs
IGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogewogICAgIGlmIChncmFwaC5tX2NvZGVCbG9jay0+
Y29kZVR5cGUoKSAhPSBGdW5jdGlvbkNvZGUpIHsKLSAgICAgICAgaWYgKHZlcmJvc2VDb21waWxh
dGlvbkVuYWJsZWQoKSkKLSAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3RpbmcgY29kZSBi
bG9jayB0aGF0IGRvZXNuJ3QgYmVsb25nIHRvIGEgZnVuY3Rpb24uXG4iKTsKKyAgICAgICAgaWYg
KHZlcmJvc2VDYXBhYmlsaXRpZXMoKSkKKyAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3Rp
bmcgIiwgKmdyYXBoLm1fY29kZUJsb2NrLCAiIGJlY2F1c2UgaXQgZG9lc24ndCBiZWxvbmcgdG8g
YSBmdW5jdGlvbi5cbiIpOworICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKKyAgICB9Cisg
ICAgCisgICAgaWYgKGdyYXBoLm1fY29kZUJsb2NrLT5uZWVkc0FjdGl2YXRpb24oKSkgeworICAg
ICAgICAvLyBOZWVkIHRoaXMgYmVjYXVzZSBhbHRob3VnaCB3ZSBhbHNvIGRvbid0IHN1cHBvcnQK
KyAgICAgICAgLy8gQ3JlYXRlQWN0aXZhdGlvbi9UZWFyT2ZmQWN0aXZhdGlvbiwgd2UgbWlnaHQg
bm90IHNlZSB0aG9zZSBub2RlcyBpbiBjYXNlIG9mCisgICAgICAgIC8vIE9TUiBlbnRyeS4KKyAg
ICAgICAgaWYgKHZlcmJvc2VDYXBhYmlsaXRpZXMoKSkKKyAgICAgICAgICAgIGRhdGFMb2coIkZU
TCByZWplY3RpbmcgIiwgKmdyYXBoLm1fY29kZUJsb2NrLCAiIGJlY2F1c2UgaXQgdXNlcyBhY3Rp
dmF0aW9ucy5cbiIpOwogICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKICAgICB9CiAgICAg
CkBAIC0yNzQsMTMgKzMwMSwxNiBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYg
Z3JhcGgpCiAgICAgICAgICAgICAgICAgY2FzZSBPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAg
Y2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nVXNlOgor
ICAgICAgICAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CisgICAgICAgICAgICAgICAgY2Fz
ZSBTdHJpbmdPYmplY3RVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09i
amVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNlOgogICAgICAgICAg
ICAgICAgICAgICAvLyBUaGVzZSBhcmUgT0suCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGtu
b3cgaG93IHRvIGhhbmRsZSBhbnl0aGluZyBlbHNlLgotICAgICAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKCJGVEwgcmVqZWN0aW5nIG5vZGUgYmVjYXVzZSBvZiBiYWQgdXNlIGtpbmQ6ICIsIGVk
Z2UudXNlS2luZCgpLCAiIGluIG5vZGU6XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZl
cmJvc2VDYXBhYmlsaXRpZXMoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygi
RlRMIHJlamVjdGluZyBub2RlIGluICIsICpncmFwaC5tX2NvZGVCbG9jaywgIiBiZWNhdXNlIG9m
IGJhZCB1c2Uga2luZDogIiwgZWRnZS51c2VLaW5kKCksICIgaW4gbm9kZTpcbiIpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgZ3JhcGguZHVtcChXVEY6OmRhdGFGaWxlKCksICIgICAgIiwgbm9k
ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENh
bm5vdENvbXBpbGU7CkBAIC0yODksOCArMzE5LDggQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBp
bGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBzd2l0Y2ggKGNhbkNv
bXBpbGUobm9kZSkpIHsKICAgICAgICAgICAgIGNhc2UgQ2Fubm90Q29tcGlsZTogCi0gICAgICAg
ICAgICAgICAgaWYgKHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkgewotICAgICAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nIG5vZGU6XG4iKTsKKyAgICAgICAgICAgICAg
ICBpZiAodmVyYm9zZUNhcGFiaWxpdGllcygpKSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGFM
b2coIkZUTCByZWplY3Rpbmcgbm9kZSBpbiAiLCAqZ3JhcGgubV9jb2RlQmxvY2ssICI6XG4iKTsK
ICAgICAgICAgICAgICAgICAgICAgZ3JhcGguZHVtcChXVEY6OmRhdGFGaWxlKCksICIgICAgIiwg
bm9kZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVybiBDYW5ub3RD
b21waWxlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21tb25WYWx1ZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFs
dWVzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDb21tb25WYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02MSw2ICs2MSw4IEBAIENvbW1vblZh
bHVlczo6Q29tbW9uVmFsdWVzKExDb250ZXh0IGNvbnQKICAgICAsIGludFB0ckVpZ2h0KGNvbnN0
SW50KGludFB0ciwgOCwgU2lnbkV4dGVuZCkpCiAgICAgLCBpbnRQdHJQdHIoY29uc3RJbnQoaW50
UHRyLCBzaXplb2Yodm9pZCopLCBTaWduRXh0ZW5kKSkKICAgICAsIGRvdWJsZVplcm8oY29uc3RS
ZWFsKGRvdWJsZVR5cGUsIDApKQorICAgICwgcmFuZ2VLaW5kKG1kS2luZElEKGNvbnRleHQsICJy
YW5nZSIpKQorICAgICwgbm9uTmVnYXRpdmVJbnQzMihjb25zdEludChpbnQzMiwgMCwgU2lnbkV4
dGVuZCksIGNvbnN0SW50KGludDMyLCAxbGwgPDwgMzEsIFNpZ25FeHRlbmQpKQogICAgICwgbV9j
b250ZXh0KGNvbnRleHQpCiAgICAgLCBtX21vZHVsZSgwKQogewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExDb21tb25WYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKICNpbmNsdWRlICJGVExBYmJy
ZXZpYXRpb25zLmgiCisjaW5jbHVkZSAiRlRMVmFsdWVSYW5nZS5oIgogCiBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEZUTCB7CiAKQEAgLTc0LDYgKzc1LDEwIEBAIHB1YmxpYzoKICAgICBjb25z
dCBMVmFsdWUgaW50UHRyUHRyOwogICAgIGNvbnN0IExWYWx1ZSBkb3VibGVaZXJvOwogICAgIAor
ICAgIGNvbnN0IHVuc2lnbmVkIHJhbmdlS2luZDsKKyAgICAKKyAgICBjb25zdCBWYWx1ZVJhbmdl
IG5vbk5lZ2F0aXZlSW50MzI7CisgICAgCiAgICAgTENvbnRleHQgY29uc3QgbV9jb250ZXh0Owog
ICAgIExNb2R1bGUgbV9tb2R1bGU7CiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDb21waWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTENvbXBpbGUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENvbXBpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSAiRlRMSW5saW5lQ2FjaGVTaXplLmgiCiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgogI2lu
Y2x1ZGUgIkZUTFRodW5rcy5oIgorI2luY2x1ZGUgIkZUTFVud2luZEluZm8uaCIKICNpbmNsdWRl
ICJKSVRTdHVicy5oIgogI2luY2x1ZGUgIkxMVk1BUEkuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVy
LmgiCkBAIC00OSw3ICs1MCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBERkc7CiBzdGF0aWMgdWludDhf
dCogbW1BbGxvY2F0ZUNvZGVTZWN0aW9uKAogICAgIHZvaWQqIG9wYXF1ZVN0YXRlLCB1aW50cHRy
X3Qgc2l6ZSwgdW5zaWduZWQgYWxpZ25tZW50LCB1bnNpZ25lZCwgY29uc3QgY2hhciogc2VjdGlv
bk5hbWUpCiB7Ci0gICAgCiAgICAgU3RhdGUmIHN0YXRlID0gKnN0YXRpY19jYXN0PFN0YXRlKj4o
b3BhcXVlU3RhdGUpOwogICAgIAogICAgIFJFTEVBU0VfQVNTRVJUKGFsaWdubWVudCA8PSBqaXRB
bGxvY2F0aW9uR3JhbnVsZSk7CkBAIC01OCw2ICs1OCwxMSBAQCBzdGF0aWMgdWludDhfdCogbW1B
bGxvY2F0ZUNvZGVTZWN0aW9uKAogICAgICAgICBzdGF0ZS5ncmFwaC5tX3ZtLmV4ZWN1dGFibGVB
bGxvY2F0b3IuYWxsb2NhdGUoCiAgICAgICAgICAgICBzdGF0ZS5ncmFwaC5tX3ZtLCBzaXplLCBz
dGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCk7CiAgICAg
CisgICAgaWYgKCFzdHJjbXAoc2VjdGlvbk5hbWUsICJfX2NvbXBhY3RfdW53aW5kIikpIHsKKyAg
ICAgICAgc3RhdGUuY29tcGFjdFVud2luZCA9IHJlc3VsdC0+c3RhcnQoKTsKKyAgICAgICAgc3Rh
dGUuY29tcGFjdFVud2luZFNpemUgPSByZXN1bHQtPnNpemVJbkJ5dGVzKCk7CisgICAgfQorICAg
IAogICAgIHN0YXRlLmppdENvZGUtPmFkZEhhbmRsZShyZXN1bHQpOwogICAgIHN0YXRlLmNvZGVT
ZWN0aW9uTmFtZXMuYXBwZW5kKHNlY3Rpb25OYW1lKTsKICAgICAKQEAgLTE0OSw4ICsxNTQsNjMg
QEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgIFN0YXRlJiBz
dGF0ZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVENvZGUqIGppdENvZGUsIEdlbmVyYXRlZEZ1
bmN0aW9uIGdlbmVyYXRlZEZ1bmN0aW9uLAogICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwJiByZWNv
cmRNYXApCiB7Ci0gICAgVk0mIHZtID0gc3RhdGUuZ3JhcGgubV92bTsKKyAgICBHcmFwaCYgZ3Jh
cGggPSBzdGF0ZS5ncmFwaDsKKyAgICBWTSYgdm0gPSBncmFwaC5tX3ZtOwogICAgIFN0YWNrTWFw
cyBzdGFja21hcHMgPSBqaXRDb2RlLT5zdGFja21hcHM7CisgICAgCisgICAgU3RhY2tNYXBzOjpS
ZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChzdGF0ZS5jYXB0dXJlZFN0
YWNrbWFwSUQpOworICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXIgIT0gcmVjb3JkTWFwLmVuZCgpKTsK
KyAgICBSRUxFQVNFX0FTU0VSVChpdGVyLT52YWx1ZS5sb2NhdGlvbnMuc2l6ZSgpID09IDEpOwor
ICAgIExvY2F0aW9uIGNhcHR1cmVkTG9jYXRpb24gPQorICAgICAgICBMb2NhdGlvbjo6Zm9yU3Rh
Y2ttYXBzKCZqaXRDb2RlLT5zdGFja21hcHMsIGl0ZXItPnZhbHVlLmxvY2F0aW9uc1swXSk7Cisg
ICAgUkVMRUFTRV9BU1NFUlQoY2FwdHVyZWRMb2NhdGlvbi5raW5kKCkgPT0gTG9jYXRpb246OlJl
Z2lzdGVyKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjYXB0dXJlZExvY2F0aW9uLmdwcigpID09IEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBSRUxFQVNFX0FTU0VSVCghKGNhcHR1cmVk
TG9jYXRpb24uYWRkZW5kKCkgJSBzaXplb2YoUmVnaXN0ZXIpKSk7CisgICAgaW50MzJfdCBsb2Nh
bHNPZmZzZXQgPSBjYXB0dXJlZExvY2F0aW9uLmFkZGVuZCgpIC8gc2l6ZW9mKFJlZ2lzdGVyKSAr
IGdyYXBoLm1fbmV4dE1hY2hpbmVMb2NhbDsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBn
cmFwaC5tX2lubGluZVZhcmlhYmxlRGF0YS5zaXplKCk7IGktLTspIHsKKyAgICAgICAgSW5saW5l
Q2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUgPSBncmFwaC5tX2lubGluZVZhcmlhYmxlRGF0YVtp
XS5pbmxpbmVDYWxsRnJhbWU7CisgICAgICAgIAorICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1l
LT5hcmd1bWVudHNSZWdpc3Rlci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGlubGluZUNhbGxG
cmFtZS0+YXJndW1lbnRzUmVnaXN0ZXIgPSBWaXJ0dWFsUmVnaXN0ZXIoCisgICAgICAgICAgICAg
ICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNSZWdpc3Rlci5vZmZzZXQoKSArIGxvY2Fsc09m
ZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAodW5zaWduZWQgYXJndW1l
bnQgPSBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCk7IGFyZ3VtZW50LS0gPiAxOykg
eworICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNbYXJndW1lbnRdID0KKyAg
ICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1thcmd1bWVudF0ud2l0aExv
Y2Fsc09mZnNldChsb2NhbHNPZmZzZXQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBp
ZiAoaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKSB7CisgICAgICAgICAgICBpbmxpbmVD
YWxsRnJhbWUtPmNhbGxlZVJlY292ZXJ5ID0KKyAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJh
bWUtPmNhbGxlZVJlY292ZXJ5LndpdGhMb2NhbHNPZmZzZXQobG9jYWxzT2Zmc2V0KTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAoY29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpIHsK
KyAgICAgICAgY29kZUJsb2NrLT5zZXRBcmd1bWVudHNSZWdpc3RlcigKKyAgICAgICAgICAgIFZp
cnR1YWxSZWdpc3Rlcihjb2RlQmxvY2stPmFyZ3VtZW50c1JlZ2lzdGVyKCkub2Zmc2V0KCkgKyBs
b2NhbHNPZmZzZXQpKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIENDYWxsSGVscGVycyBjaGVj
a0pJVCgmdm0sIGNvZGVCbG9jayk7CisgICAgICAgIAorICAgICAgICAvLyBBdCB0aGlzIHBvaW50
IGl0J3MgcGVyZmVjdGx5IGZhaXIgdG8ganVzdCBibG93IGF3YXkgYWxsIHN0YXRlIGFuZCByZXN0
b3JlIHRoZQorICAgICAgICAvLyBKUyBKSVQgdmlldyBvZiB0aGUgdW5pdmVyc2UuCisgICAgICAg
IGNoZWNrSklULm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVy
KSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICAgICAgY2hlY2tKSVQubW92
ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KFRhZ01hc2spLCBHUFJJbmZvOjp0YWdNYXNr
UmVnaXN0ZXIpOworICAgICAgICAKKyAgICAgICAgY2hlY2tKSVQubW92ZShNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cigmdm0pLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBj
aGVja0pJVC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gY2hlY2tKSVQuY2Fs
bCgpOworICAgICAgICBjaGVja0pJVC5qdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CisgICAgICAg
IAorICAgICAgICBPd25QdHI8TGlua0J1ZmZlcj4gbGlua0J1ZmZlciA9IGFkb3B0UHRyKG5ldyBM
aW5rQnVmZmVyKAorICAgICAgICAgICAgdm0sICZjaGVja0pJVCwgY29kZUJsb2NrLCBKSVRDb21w
aWxhdGlvbk11c3RTdWNjZWVkKSk7CisgICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbCwgRnVu
Y3Rpb25QdHIobG9va3VwRXhjZXB0aW9uSGFuZGxlcikpOworICAgICAgICAKKyAgICAgICAgc3Rh
dGUuZmluYWxpemVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlciA9IGxpbmtCdWZmZXIucmVs
ZWFzZSgpOworICAgIH0KIAogICAgIEV4aXRUaHVua0dlbmVyYXRvciBleGl0VGh1bmtHZW5lcmF0
b3Ioc3RhdGUpOwogICAgIGV4aXRUaHVua0dlbmVyYXRvci5lbWl0VGh1bmtzKCk7CkBAIC0xNjYs
MTYgKzIyNiwzMCBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24o
KSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJIYW5kbGluZyBPU1Igc3RhY2ttYXAgIyIsIGV4
aXQubV9zdGFja21hcElELCAiIGZvciAiLCBleGl0Lm1fY29kZU9yaWdpbiwgIlxuIik7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVy
ID0gcmVjb3JkTWFwLmZpbmQoZXhpdC5tX3N0YWNrbWFwSUQpOworCisgICAgICAgICAgICBpdGVy
ID0gcmVjb3JkTWFwLmZpbmQoZXhpdC5tX3N0YWNrbWFwSUQpOwogICAgICAgICAgICAgaWYgKGl0
ZXIgPT0gcmVjb3JkTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gSXQgd2FzIG9wdGlt
aXplZCBvdXQuCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIGluZm8ubV90aHVua0FkZHJlc3MgPSBsaW5rQnVmZmVyLT5s
b2NhdGlvbk9mKGluZm8ubV90aHVua0xhYmVsKTsKLSAgICAgICAgICAgIAogICAgICAgICAgICAg
ZXhpdC5tX3BhdGNoYWJsZUNvZGVPZmZzZXQgPSBsaW5rQnVmZmVyLT5vZmZzZXRPZihpbmZvLm1f
dGh1bmtKdW1wKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0g
ZXhpdC5tX3ZhbHVlcy5zaXplKCk7IGotLTspIHsKKyAgICAgICAgICAgICAgICBFeGl0VmFsdWUg
dmFsdWUgPSBleGl0Lm1fdmFsdWVzW2pdOworICAgICAgICAgICAgICAgIGlmICghdmFsdWUuaXNJ
bkpTU3RhY2tTb21laG93KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgIGlmICghdmFsdWUudmlydHVhbFJlZ2lzdGVyKCkuaXNMb2NhbCgpKQorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBleGl0Lm1fdmFsdWVzW2pd
ID0gdmFsdWUud2l0aFZpcnR1YWxSZWdpc3RlcigKKyAgICAgICAgICAgICAgICAgICAgVmlydHVh
bFJlZ2lzdGVyKHZhbHVlLnZpcnR1YWxSZWdpc3RlcigpLm9mZnNldCgpICsgbG9jYWxzT2Zmc2V0
KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChPcHRpb25z
Ojp2ZXJib3NlQ29tcGlsYXRpb24oKSkgeworICAgICAgICAgICAgICAgIER1bXBDb250ZXh0IGNv
bnRleHQ7CisgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEV4aXQgdmFsdWVzOiAiLCBpbkNv
bnRleHQoZXhpdC5tX3ZhbHVlcywgJmNvbnRleHQpLCAiXG4iKTsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgICAgICAKICAgICAgICAgc3RhdGUuZmluYWxpemVyLT5leGl0VGh1bmtzTGlu
a0J1ZmZlciA9IGxpbmtCdWZmZXIucmVsZWFzZSgpOwpAQCAtMTg0LDEzICsyNTgsMTUgQEAgc3Rh
dGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgIGlmICghc3RhdGUuZ2V0
QnlJZHMuaXNFbXB0eSgpIHx8ICFzdGF0ZS5wdXRCeUlkcy5pc0VtcHR5KCkpIHsKICAgICAgICAg
Q0NhbGxIZWxwZXJzIHNsb3dQYXRoSklUKCZ2bSwgY29kZUJsb2NrKTsKICAgICAgICAgCisgICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZXhjZXB0aW9uVGFyZ2V0OworICAgICAgICAKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhdGUuZ2V0QnlJZHMuc2l6ZSgpOyBpLS07KSB7CiAg
ICAgICAgICAgICBHZXRCeUlkRGVzY3JpcHRvciYgZ2V0QnlJZCA9IHN0YXRlLmdldEJ5SWRzW2ld
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0
aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiSGFuZGxpbmcgR2V0QnlJZCBzdGFja21h
cCAjIiwgZ2V0QnlJZC5zdGFja21hcElEKCksICJcbiIpOwogICAgICAgICAgICAgCi0gICAgICAg
ICAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJlY29yZE1hcC5maW5k
KGdldEJ5SWQuc3RhY2ttYXBJRCgpKTsKKyAgICAgICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmlu
ZChnZXRCeUlkLnN0YWNrbWFwSUQoKSk7CiAgICAgICAgICAgICBpZiAoaXRlciA9PSByZWNvcmRN
YXAuZW5kKCkpIHsKICAgICAgICAgICAgICAgICAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4KICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTIwMiwxOCArMjc4LDE3IEBAIHN0YXRpYyB2b2lk
IGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAgIFJlZ2lzdGVyU2V0IHVz
ZWRSZWdpc3RlcnMgPSBSZWdpc3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIEdQUlJlZyByZXN1bHQgPSByZWNvcmQubG9jYXRpb25zWzBdLmRpcmVjdEdQ
UigpOwotICAgICAgICAgICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gcmVjb3JkLmxvY2F0
aW9uc1sxXS5kaXJlY3RHUFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyBiYXNlID0gcmVjb3JkLmxv
Y2F0aW9uc1syXS5kaXJlY3RHUFIoKTsKKyAgICAgICAgICAgIEdQUlJlZyBiYXNlID0gcmVjb3Jk
LmxvY2F0aW9uc1sxXS5kaXJlY3RHUFIoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgSklU
R2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgICAgICAgICAgY29kZUJsb2NrLCBnZXRCeUlk
LmNvZGVPcmlnaW4oKSwgdXNlZFJlZ2lzdGVycywgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3MoYmFzZSksIEpTVmFsdWVSZWdzKHJlc3VsdCksIGZhbHNlKTsK
KyAgICAgICAgICAgICAgICBjb2RlQmxvY2ssIGdldEJ5SWQuY29kZU9yaWdpbigpLCB1c2VkUmVn
aXN0ZXJzLCBKU1ZhbHVlUmVncyhiYXNlKSwKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhy
ZXN1bHQpLCBmYWxzZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpMYWJlbCBiZWdpbiA9IHNsb3dQYXRoSklULmxhYmVsKCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKAotICAgICAg
ICAgICAgICAgIHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93UGF0aEpJVCwgb3BlcmF0aW9uR2V0
QnlJZE9wdGltaXplLCByZXN1bHQsCi0gICAgICAgICAgICAgICAgY2FsbEZyYW1lUmVnaXN0ZXIs
IGdlbi5zdHViSW5mbygpLCBiYXNlLCBnZXRCeUlkLnVpZCgpKTsKKyAgICAgICAgICAgICAgICBz
dGF0ZSwgdXNlZFJlZ2lzdGVycywgc2xvd1BhdGhKSVQsIGdldEJ5SWQuY29kZU9yaWdpbigpLCAm
ZXhjZXB0aW9uVGFyZ2V0LAorICAgICAgICAgICAgICAgIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6
ZSwgcmVzdWx0LCBnZW4uc3R1YkluZm8oKSwgYmFzZSwgZ2V0QnlJZC51aWQoKSk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoYmVnaW4sIGNhbGwpOwog
ICAgICAgICAgICAgCkBAIC0yMjcsNyArMzAyLDcgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25C
YXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxh
dGlvbigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhhbmRsaW5nIFB1dEJ5SWQgc3RhY2tt
YXAgIyIsIHB1dEJ5SWQuc3RhY2ttYXBJRCgpLCAiXG4iKTsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmlu
ZChwdXRCeUlkLnN0YWNrbWFwSUQoKSk7CisgICAgICAgICAgICBpdGVyID0gcmVjb3JkTWFwLmZp
bmQocHV0QnlJZC5zdGFja21hcElEKCkpOwogICAgICAgICAgICAgaWYgKGl0ZXIgPT0gcmVjb3Jk
TWFwLmVuZCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gSXQgd2FzIG9wdGltaXplZCBvdXQuCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CkBAIC0yMzgsMjAgKzMxMywxOSBAQCBzdGF0aWMgdm9p
ZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAgICAvLyBGSVhNRTogTExW
TSBzaG91bGQgdGVsbCB1cyB3aGljaCByZWdpc3RlcnMgYXJlIGxpdmUuCiAgICAgICAgICAgICBS
ZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6OmFsbFJlZ2lzdGVycygpOwog
ICAgICAgICAgICAgCi0gICAgICAgICAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSByZWNv
cmQubG9jYXRpb25zWzBdLmRpcmVjdEdQUigpOwotICAgICAgICAgICAgR1BSUmVnIGJhc2UgPSBy
ZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwotICAgICAgICAgICAgR1BSUmVnIHZhbHVl
ID0gcmVjb3JkLmxvY2F0aW9uc1syXS5kaXJlY3RHUFIoKTsKKyAgICAgICAgICAgIEdQUlJlZyBi
YXNlID0gcmVjb3JkLmxvY2F0aW9uc1swXS5kaXJlY3RHUFIoKTsKKyAgICAgICAgICAgIEdQUlJl
ZyB2YWx1ZSA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCk7CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICAgICAgICAgIGNv
ZGVCbG9jaywgcHV0QnlJZC5jb2RlT3JpZ2luKCksIHVzZWRSZWdpc3RlcnMsIGNhbGxGcmFtZVJl
Z2lzdGVyLAotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2UpLCBKU1ZhbHVlUmVncyh2
YWx1ZSksIE1hY3JvQXNzZW1ibGVyOjpzY3JhdGNoUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAg
ZmFsc2UsIHB1dEJ5SWQuZWNtYU1vZGUoKSwgcHV0QnlJZC5wdXRLaW5kKCkpOworICAgICAgICAg
ICAgICAgIGNvZGVCbG9jaywgcHV0QnlJZC5jb2RlT3JpZ2luKCksIHVzZWRSZWdpc3RlcnMsIEpT
VmFsdWVSZWdzKGJhc2UpLAorICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHZhbHVlKSwgTWFj
cm9Bc3NlbWJsZXI6OnNjcmF0Y2hSZWdpc3RlciwgZmFsc2UsIHB1dEJ5SWQuZWNtYU1vZGUoKSwK
KyAgICAgICAgICAgICAgICBwdXRCeUlkLnB1dEtpbmQoKSk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBiZWdpbiA9IHNsb3dQYXRoSklULmxhYmVsKCk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBj
YWxsT3BlcmF0aW9uKAotICAgICAgICAgICAgICAgIHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93
UGF0aEpJVCwgZ2VuLnNsb3dQYXRoRnVuY3Rpb24oKSwgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAg
ICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCksIHZhbHVlLCBiYXNlLCBwdXRCeUlkLnVpZCgpKTsK
KyAgICAgICAgICAgICAgICBzdGF0ZSwgdXNlZFJlZ2lzdGVycywgc2xvd1BhdGhKSVQsIHB1dEJ5
SWQuY29kZU9yaWdpbigpLCAmZXhjZXB0aW9uVGFyZ2V0LAorICAgICAgICAgICAgICAgIGdlbi5z
bG93UGF0aEZ1bmN0aW9uKCksIGdlbi5zdHViSW5mbygpLCB2YWx1ZSwgYmFzZSwgcHV0QnlJZC51
aWQoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwo
YmVnaW4sIGNhbGwpOwogICAgICAgICAgICAgCkBAIC0yNTksOCArMzMzLDEzIEBAIHN0YXRpYyB2
b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAgIHB1dEJ5SWQubV9n
ZW5lcmF0b3IgPSBnZW47CiAgICAgICAgIH0KICAgICAgICAgCisgICAgICAgIGV4Y2VwdGlvblRh
cmdldC5saW5rKCZzbG93UGF0aEpJVCk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGV4
Y2VwdGlvbkp1bXAgPSBzbG93UGF0aEpJVC5qdW1wKCk7CisgICAgICAgIAogICAgICAgICBzdGF0
ZS5maW5hbGl6ZXItPnNpZGVDb2RlTGlua0J1ZmZlciA9IGFkb3B0UHRyKAogICAgICAgICAgICAg
bmV3IExpbmtCdWZmZXIodm0sICZzbG93UGF0aEpJVCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlv
bk11c3RTdWNjZWVkKSk7CisgICAgICAgIHN0YXRlLmZpbmFsaXplci0+c2lkZUNvZGVMaW5rQnVm
ZmVyLT5saW5rKAorICAgICAgICAgICAgZXhjZXB0aW9uSnVtcCwgc3RhdGUuZmluYWxpemVyLT5o
YW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+ZW50cnlwb2ludCgpKTsKICAgICAgICAgCiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXRlLmdldEJ5SWRzLnNpemUoKTsgaS0tOykgewogICAg
ICAgICAgICAgZ2VuZXJhdGVJQ0Zhc3RQYXRoKApAQCAtMjc0LDI4ICszNTMsODEgQEAgc3RhdGlj
IHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICB9CiAgICAgfQogICAg
IAotICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjb2RlQmxvY2spOwotICAgIAotICAg
IGZvciAodW5zaWduZWQgZXhpdEluZGV4ID0gaml0Q29kZS0+b3NyRXhpdC5zaXplKCk7IGV4aXRJ
bmRleC0tOykgewotICAgICAgICBPU1JFeGl0Q29tcGlsYXRpb25JbmZvJiBpbmZvID0gc3RhdGUu
ZmluYWxpemVyLT5vc3JFeGl0W2V4aXRJbmRleF07Ci0gICAgICAgIE9TUkV4aXQmIGV4aXQgPSBq
aXRDb2RlLT5vc3JFeGl0W2V4aXRJbmRleF07Ci0gICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFw
OjppdGVyYXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZXhpdC5tX3N0YWNrbWFwSUQpOworICAg
IC8vIEhhbmRsaW5nIEpTIGNhbGxzIGlzIHdlaXJkOiB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHdl
IHNvcnQgdGhlbSBieSB0aGUgUEMgaW4gTExWTQorICAgIC8vIGdlbmVyYXRlZCBjb2RlLiBUaGF0
IGltcGxpZXMgZmlyc3QgcHJ1bmluZyB0aGUgb25lcyB0aGF0IExMVk0gZGlkbid0IGdlbmVyYXRl
LgorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdGF0ZS5qc0NhbGxzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIEpTQ2FsbCYgY2FsbCA9IHN0YXRlLmpzQ2FsbHNbaV07CisgICAgICAgIAor
ICAgICAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJlY29yZE1hcC5m
aW5kKGNhbGwuc3RhY2ttYXBJRCgpKTsKICAgICAgICAgaWYgKGl0ZXIgPT0gcmVjb3JkTWFwLmVu
ZCgpKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGNvdWxkIGhhcHBlbiBpZiBMTFZNIG9wdGltaXpl
cyBvdXQgYW4gT1NSIGV4aXQuCisgICAgICAgICAgICAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4g
UHJ1bmUgaXQuCisgICAgICAgICAgICBjYWxsID0gc3RhdGUuanNDYWxscy5sYXN0KCk7CisgICAg
ICAgICAgICBzdGF0ZS5qc0NhbGxzLnJlbW92ZUxhc3QoKTsKKyAgICAgICAgICAgIGktLTsKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIAorICAgICAgICBjYWxsLm1f
aW5zdHJ1Y3Rpb25PZmZzZXQgPSBpdGVyLT52YWx1ZS5pbnN0cnVjdGlvbk9mZnNldDsKKyAgICB9
CisgICAgCisgICAgc3RkOjpzb3J0KHN0YXRlLmpzQ2FsbHMuYmVnaW4oKSwgc3RhdGUuanNDYWxs
cy5lbmQoKSk7CisgICAgCisgICAgY29kZUJsb2NrLT5zZXROdW1iZXJPZkNhbGxMaW5rSW5mb3Mo
c3RhdGUuanNDYWxscy5zaXplKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXRlLmpzQ2Fs
bHMuc2l6ZSgpOyBpLS07KSB7CisgICAgICAgIEpTQ2FsbCYgY2FsbCA9IHN0YXRlLmpzQ2FsbHNb
aV07CisKKyAgICAgICAgQ0NhbGxIZWxwZXJzIGZhc3RQYXRoSklUKCZ2bSwgY29kZUJsb2NrKTsK
KyAgICAgICAgY2FsbC5lbWl0KGZhc3RQYXRoSklUKTsKKyAgICAgICAgCisgICAgICAgIGNoYXIq
IHN0YXJ0T2ZJQyA9IGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJhdGVkRnVuY3Rpb24pICsgY2Fs
bC5tX2luc3RydWN0aW9uT2Zmc2V0OworICAgICAgICAKKyAgICAgICAgTGlua0J1ZmZlciBsaW5r
QnVmZmVyKHZtLCAmZmFzdFBhdGhKSVQsIHN0YXJ0T2ZJQywgc2l6ZU9mQ2FsbCgpKTsKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlQobGlua0J1ZmZlci5pc1ZhbGlkKCkpOworICAgICAgICAKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkFzc2VtYmxlclR5cGVfVDo6ZmlsbE5vcHMoCisgICAgICAgICAg
ICBzdGFydE9mSUMgKyBsaW5rQnVmZmVyLnNpemUoKSwgc2l6ZU9mQ2FsbCgpIC0gbGlua0J1ZmZl
ci5zaXplKCkpOworICAgICAgICAKKyAgICAgICAgQ2FsbExpbmtJbmZvJiBpbmZvID0gY29kZUJs
b2NrLT5jYWxsTGlua0luZm8oaSk7CisgICAgICAgIGNhbGwubGluayh2bSwgbGlua0J1ZmZlciwg
aW5mbyk7CisgICAgfQorICAgIAorICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjb2Rl
QmxvY2spOworICAgIAorICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChzdGF0ZS5oYW5kbGVFeGNl
cHRpb25TdGFja21hcElEKTsKKyAgICAvLyBJdCdzIHNvcnQgb2YgcmVtb3RlbHkgcG9zc2libGUg
dGhhdCB3ZSB3b24ndCBoYXZlIGFuIGluLWJhbmQgZXhjZXB0aW9uIGhhbmRsaW5nCisgICAgLy8g
cGF0aCwgZm9yIHNvbWUga2luZHMgb2YgZnVuY3Rpb25zLgorICAgIGlmIChpdGVyICE9IHJlY29y
ZE1hcC5lbmQoKSkgewogICAgICAgICBTdGFja01hcHM6OlJlY29yZCYgcmVjb3JkID0gaXRlci0+
dmFsdWU7CiAgICAgICAgIAogICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzb3VyY2UgPSBDb2Rl
TG9jYXRpb25MYWJlbCgKICAgICAgICAgICAgIGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJhdGVk
RnVuY3Rpb24pICsgcmVjb3JkLmluc3RydWN0aW9uT2Zmc2V0KTsKKworICAgICAgICByZXBhdGNo
QnVmZmVyLnJlcGxhY2VXaXRoSnVtcChzb3VyY2UsIHN0YXRlLmZpbmFsaXplci0+aGFuZGxlRXhj
ZXB0aW9uc0xpbmtCdWZmZXItPmVudHJ5cG9pbnQoKSk7CisgICAgfQorICAgIAorICAgIGZvciAo
dW5zaWduZWQgZXhpdEluZGV4ID0gMDsgZXhpdEluZGV4IDwgaml0Q29kZS0+b3NyRXhpdC5zaXpl
KCk7ICsrZXhpdEluZGV4KSB7CisgICAgICAgIE9TUkV4aXRDb21waWxhdGlvbkluZm8mIGluZm8g
PSBzdGF0ZS5maW5hbGl6ZXItPm9zckV4aXRbZXhpdEluZGV4XTsKKyAgICAgICAgT1NSRXhpdCYg
ZXhpdCA9IGppdENvZGUtPm9zckV4aXRbZXhpdEluZGV4XTsKKyAgICAgICAgaXRlciA9IHJlY29y
ZE1hcC5maW5kKGV4aXQubV9zdGFja21hcElEKTsKICAgICAgICAgCi0gICAgICAgIGlmIChpbmZv
Lm1faXNJbnZhbGlkYXRpb25Qb2ludCkgewotICAgICAgICAgICAgaml0Q29kZS0+Y29tbW9uLmp1
bXBSZXBsYWNlbWVudHMuYXBwZW5kKEp1bXBSZXBsYWNlbWVudChzb3VyY2UsIGluZm8ubV90aHVu
a0FkZHJlc3MpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBWZWN0b3I8Y29uc3Qg
dm9pZCo+IGNvZGVBZGRyZXNzZXM7CisgICAgICAgIAorICAgICAgICBpZiAoaXRlciAhPSByZWNv
cmRNYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkJiByZWNvcmQgPSBp
dGVyLT52YWx1ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwg
c291cmNlID0gQ29kZUxvY2F0aW9uTGFiZWwoCisgICAgICAgICAgICAgICAgYml0d2lzZV9jYXN0
PGNoYXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyByZWNvcmQuaW5zdHJ1Y3Rpb25PZmZzZXQpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBjb2RlQWRkcmVzc2VzLmFwcGVuZChiaXR3aXNlX2Nh
c3Q8Y2hhcio+KGdlbmVyYXRlZEZ1bmN0aW9uKSArIHJlY29yZC5pbnN0cnVjdGlvbk9mZnNldCAr
IE1hY3JvQXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkpOworICAgICAgICAgICAg
CisgICAgICAgICAgICBpZiAoaW5mby5tX2lzSW52YWxpZGF0aW9uUG9pbnQpCisgICAgICAgICAg
ICAgICAgaml0Q29kZS0+Y29tbW9uLmp1bXBSZXBsYWNlbWVudHMuYXBwZW5kKEp1bXBSZXBsYWNl
bWVudChzb3VyY2UsIGluZm8ubV90aHVua0FkZHJlc3MpKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICByZXBhdGNoQnVmZmVyLnJlcGxhY2VXaXRoSnVtcChzb3VyY2UsIGluZm8u
bV90aHVua0FkZHJlc3MpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICByZXBhdGNoQnVm
ZmVyLnJlcGxhY2VXaXRoSnVtcChzb3VyY2UsIGluZm8ubV90aHVua0FkZHJlc3MpOworICAgICAg
ICBpZiAoZ3JhcGguY29tcGlsYXRpb24oKSkKKyAgICAgICAgICAgIGdyYXBoLmNvbXBpbGF0aW9u
KCktPmFkZE9TUkV4aXRTaXRlKGNvZGVBZGRyZXNzZXMpOwogICAgIH0KIH0KIApAQCAtMzczLDcg
KzUwNSw3IEBAIHZvaWQgY29tcGlsZShTdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICBFeGVjdXRh
YmxlTWVtb3J5SGFuZGxlKiBoYW5kbGUgPSBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKClbaV0uZ2V0
KCk7CiAgICAgICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgICAgICJHZW5lcmF0ZWQgTExW
TSBjb2RlIGZvciAiLAotICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRl
LmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLAorICAgICAgICAgICAgICAgIENv
ZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExK
SVQpLAogICAgICAgICAgICAgICAgICIgIyIsIGksICIsICIsIHN0YXRlLmNvZGVTZWN0aW9uTmFt
ZXNbaV0sICI6XG4iKTsKICAgICAgICAgICAgIGRpc2Fzc2VtYmxlKAogICAgICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cihoYW5kbGUtPnN0YXJ0KCkpLCBoYW5kbGUtPnNpemVJbkJ5
dGVzKCksCkBAIC0zODQsMTcgKzUxNiwyMiBAQCB2b2lkIGNvbXBpbGUoU3RhdGUmIHN0YXRlKQog
ICAgICAgICAgICAgY29uc3QgUmVmQ291bnRlZEFycmF5PExTZWN0aW9uV29yZD4mIHNlY3Rpb24g
PSBzdGF0ZS5qaXRDb2RlLT5kYXRhU2VjdGlvbnMoKVtpXTsKICAgICAgICAgICAgIGRhdGFMb2co
CiAgICAgICAgICAgICAgICAgIkdlbmVyYXRlZCBMTFZNIGRhdGEgc2VjdGlvbiBmb3IgIiwKLSAg
ICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9j
aywgSklUQ29kZTo6REZHSklUKSwKKyAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlw
ZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6RlRMSklUKSwKICAgICAgICAgICAg
ICAgICAiICMiLCBpLCAiLCAiLCBzdGF0ZS5kYXRhU2VjdGlvbk5hbWVzW2ldLCAiOlxuIik7CiAg
ICAgICAgICAgICBkdW1wRGF0YVNlY3Rpb24oc2VjdGlvbiwgIiAgICAiKTsKICAgICAgICAgfQog
ICAgIH0KICAgICAKKyAgICBzdGF0ZS5qaXRDb2RlLT51bndpbmRJbmZvLnBhcnNlKAorICAgICAg
ICBzdGF0ZS5jb21wYWN0VW53aW5kLCBzdGF0ZS5jb21wYWN0VW53aW5kU2l6ZSwgc3RhdGUuZ2Vu
ZXJhdGVkRnVuY3Rpb24pOworICAgIGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJseSgpKQor
ICAgICAgICBkYXRhTG9nKCJVbndpbmQgaW5mbyBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUo
c3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCksICI6XG4gICAgIiwgc3Rh
dGUuaml0Q29kZS0+dW53aW5kSW5mbywgIlxuIik7CisgICAgCiAgICAgaWYgKHN0YXRlLnN0YWNr
bWFwc1NlY3Rpb24uc2l6ZSgpKSB7CiAgICAgICAgIGlmIChzaG91bGRTaG93RGlzYXNzZW1ibHko
KSkgewogICAgICAgICAgICAgZGF0YUxvZygKICAgICAgICAgICAgICAgICAiR2VuZXJhdGVkIExM
Vk0gc3RhY2ttYXBzIHNlY3Rpb24gZm9yICIsCi0gICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0
aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkRGR0pJVCksICI6XG4i
KTsKKyAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2Nv
ZGVCbG9jaywgSklUQ29kZTo6RlRMSklUKSwgIjpcbiIpOwogICAgICAgICAgICAgZGF0YUxvZygi
ICAgIFJhdyBkYXRhOlxuIik7CiAgICAgICAgICAgICBkdW1wRGF0YVNlY3Rpb24oc3RhdGUuc3Rh
Y2ttYXBzU2VjdGlvbiwgIiAgICAiKTsKICAgICAgICAgfQpAQCAtNDIxLDggKzU1OCw5IEBAIHZv
aWQgY29tcGlsZShTdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICAgICAgRXhlY3V0YWJsZU1lbW9y
eUhhbmRsZSogaGFuZGxlID0gc3RhdGUuaml0Q29kZS0+aGFuZGxlcygpW2ldLmdldCgpOwogICAg
ICAgICAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAgICAgICAgICJHZW5lcmF0ZWQgTExW
TSBjb2RlIGFmdGVyIHN0YWNrbWFwLWJhc2VkIGZpeC11cCBmb3IgIiwKLSAgICAgICAgICAgICAg
ICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENv
ZGU6OkRGR0pJVCksCi0gICAgICAgICAgICAgICAgICAgICIgIyIsIGksICIsICIsIHN0YXRlLmNv
ZGVTZWN0aW9uTmFtZXNbaV0sICI6XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgQ29kZUJsb2Nr
V2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCksCisg
ICAgICAgICAgICAgICAgICAgICIgaW4gIiwgc3RhdGUuZ3JhcGgubV9wbGFuLm1vZGUsICIgIyIs
IGksICIsICIsCisgICAgICAgICAgICAgICAgICAgIHN0YXRlLmNvZGVTZWN0aW9uTmFtZXNbaV0s
ICI6XG4iKTsKICAgICAgICAgICAgICAgICBkaXNhc3NlbWJsZSgKICAgICAgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGhhbmRsZS0+c3RhcnQoKSksIGhhbmRsZS0+c2l6ZUlu
Qnl0ZXMoKSwKICAgICAgICAgICAgICAgICAgICAgIiAgICAiLCBXVEY6OmRhdGFGaWxlKCksIExM
Vk1TdWJzZXQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVl
LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExF
eGl0VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OSw2ICs1OSw5IEBAIHZvaWQgRXhpdFZhbHVl
OjpkdW1wSW5Db250ZXh0KFByaW50U3RyZWEKICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0Fz
RG91YmxlOgogICAgICAgICBvdXQucHJpbnQoIkluSlNTdGFja0FzRG91YmxlOnIiLCB2aXJ0dWFs
UmVnaXN0ZXIoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEV4aXRWYWx1ZVJlY292ZXJ5
OgorICAgICAgICBvdXQucHJpbnQoIlJlY292ZXJ5KCIsIHJlY292ZXJ5T3Bjb2RlKCksICIsIGFy
ZyIsIGxlZnRSZWNvdmVyeUFyZ3VtZW50KCksICIsIGFyZyIsIHJpZ2h0UmVjb3ZlcnlBcmd1bWVu
dCgpLCAiLCAiLCByZWNvdmVyeUZvcm1hdCgpLCAiKSIpOworICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMx
LDYgKzMxLDcgQEAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkZUTEV4aXRBcmd1
bWVudC5oIgorI2luY2x1ZGUgIkZUTFJlY292ZXJ5T3Bjb2RlLmgiCiAjaW5jbHVkZSAiSlNDSlNW
YWx1ZS5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogI2luY2x1ZGUgPHd0Zi9Qcmlu
dFN0cmVhbS5oPgpAQCAtNTEsNyArNTIsOCBAQCBlbnVtIEV4aXRWYWx1ZUtpbmQgewogICAgIEV4
aXRWYWx1ZUluSlNTdGFjaywKICAgICBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDMyLAogICAgIEV4
aXRWYWx1ZUluSlNTdGFja0FzSW50NTIsCi0gICAgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGUK
KyAgICBFeGl0VmFsdWVJbkpTU3RhY2tBc0RvdWJsZSwKKyAgICBFeGl0VmFsdWVSZWNvdmVyeQog
fTsKIAogY2xhc3MgRXhpdFZhbHVlIHsKQEAgLTExOCw2ICsxMjAsMTcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKKyAgICBzdGF0aWMgRXhpdFZhbHVlIHJl
Y292ZXJ5KFJlY292ZXJ5T3Bjb2RlIG9wY29kZSwgdW5zaWduZWQgbGVmdEFyZ3VtZW50LCB1bnNp
Z25lZCByaWdodEFyZ3VtZW50LCBWYWx1ZUZvcm1hdCBmb3JtYXQpCisgICAgeworICAgICAgICBF
eGl0VmFsdWUgcmVzdWx0OworICAgICAgICByZXN1bHQubV9raW5kID0gRXhpdFZhbHVlUmVjb3Zl
cnk7CisgICAgICAgIHJlc3VsdC51LnJlY292ZXJ5Lm9wY29kZSA9IG9wY29kZTsKKyAgICAgICAg
cmVzdWx0LnUucmVjb3ZlcnkubGVmdEFyZ3VtZW50ID0gbGVmdEFyZ3VtZW50OworICAgICAgICBy
ZXN1bHQudS5yZWNvdmVyeS5yaWdodEFyZ3VtZW50ID0gcmlnaHRBcmd1bWVudDsKKyAgICAgICAg
cmVzdWx0LnUucmVjb3ZlcnkuZm9ybWF0ID0gZm9ybWF0OworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KKyAgICAKICAgICBFeGl0VmFsdWVLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBt
X2tpbmQ7IH0KICAgICAKICAgICBib29sIGlzRGVhZCgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9
PSBFeGl0VmFsdWVEZWFkOyB9CkBAIC0xMzUsNiArMTQ4LDcgQEAgcHVibGljOgogICAgIH0KICAg
ICBib29sIGlzQ29uc3RhbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gRXhpdFZhbHVlQ29u
c3RhbnQ7IH0KICAgICBib29sIGlzQXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0g
RXhpdFZhbHVlQXJndW1lbnQ7IH0KKyAgICBib29sIGlzUmVjb3ZlcnkoKSBjb25zdCB7IHJldHVy
biBraW5kKCkgPT0gRXhpdFZhbHVlUmVjb3Zlcnk7IH0KICAgICAKICAgICBFeGl0QXJndW1lbnQg
ZXhpdEFyZ3VtZW50KCkgY29uc3QKICAgICB7CkBAIC0xNDIsNiArMTU2LDMwIEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIEV4aXRBcmd1bWVudCh1LmFyZ3VtZW50KTsKICAgICB9CiAgICAgCisg
ICAgdW5zaWduZWQgbGVmdFJlY292ZXJ5QXJndW1lbnQoKSBjb25zdAorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzUmVjb3ZlcnkoKSk7CisgICAgICAgIHJldHVybiB1LnJlY292ZXJ5LmxlZnRBcmd1
bWVudDsKKyAgICB9CisgICAgCisgICAgdW5zaWduZWQgcmlnaHRSZWNvdmVyeUFyZ3VtZW50KCkg
Y29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICByZXR1
cm4gdS5yZWNvdmVyeS5yaWdodEFyZ3VtZW50OworICAgIH0KKyAgICAKKyAgICBWYWx1ZUZvcm1h
dCByZWNvdmVyeUZvcm1hdCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNSZWNvdmVy
eSgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZhbHVlRm9ybWF0Pih1LnJlY292ZXJ5
LmZvcm1hdCk7CisgICAgfQorICAgIAorICAgIFJlY292ZXJ5T3Bjb2RlIHJlY292ZXJ5T3Bjb2Rl
KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVjb3ZlcnlPcGNvZGU+KHUucmVjb3Zlcnkub3Bjb2RlKTsKKyAg
ICB9CisgICAgCiAgICAgSlNWYWx1ZSBjb25zdGFudCgpIGNvbnN0CiAgICAgewogICAgICAgICBB
U1NFUlQoaXNDb25zdGFudCgpKTsKQEAgLTE1Myw2ICsxOTEsMTUgQEAgcHVibGljOgogICAgICAg
ICBBU1NFUlQoaXNJbkpTU3RhY2tTb21laG93KCkpOwogICAgICAgICByZXR1cm4gVmlydHVhbFJl
Z2lzdGVyKHUudmlydHVhbFJlZ2lzdGVyKTsKICAgICB9CisgICAgCisgICAgRXhpdFZhbHVlIHdp
dGhWaXJ0dWFsUmVnaXN0ZXIoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlcikKKyAgICB7
CisgICAgICAgIEFTU0VSVChpc0luSlNTdGFja1NvbWVob3coKSk7CisgICAgICAgIEV4aXRWYWx1
ZSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBtX2tpbmQ7CisgICAgICAgIHJlc3Vs
dC51LnZpcnR1YWxSZWdpc3RlciA9IHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKTsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9CiAKICAgICAvLyBJZiBpdCdzIGluIHRoZSBKU1N0YWNrIHNv
bWVob3csIHRoaXMgd2lsbCB0ZWxsIHlvdSB3aGF0IGZvcm1hdCBpdCdzIGluLCBpbiBhIG1hbm5l
cgogICAgIC8vIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIGV4aXRBcmd1bWVudCgpLmZvcm1hdCgp
LiBJZiBpdCdzIGEgY29uc3RhbnQgb3IgaXQncyBkZWFkLCBpdApAQCAtMTgxLDYgKzIyOCw5IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0Fz
RG91YmxlOgogICAgICAgICAgICAgcmV0dXJuIFZhbHVlRm9ybWF0RG91YmxlOworICAgICAgICAg
ICAgCisgICAgICAgIGNhc2UgRXhpdFZhbHVlUmVjb3Zlcnk6CisgICAgICAgICAgICByZXR1cm4g
cmVjb3ZlcnlGb3JtYXQoKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE5Niw2ICsyNDYsMTIgQEAgcHJpdmF0ZToKICAgICAg
ICAgRXhpdEFyZ3VtZW50UmVwcmVzZW50YXRpb24gYXJndW1lbnQ7CiAgICAgICAgIEVuY29kZWRK
U1ZhbHVlIGNvbnN0YW50OwogICAgICAgICBpbnQgdmlydHVhbFJlZ2lzdGVyOworICAgICAgICBz
dHJ1Y3QgeworICAgICAgICAgICAgdWludDE2X3QgbGVmdEFyZ3VtZW50OworICAgICAgICAgICAg
dWludDE2X3QgcmlnaHRBcmd1bWVudDsKKyAgICAgICAgICAgIHVpbnQxNl90IG9wY29kZTsKKyAg
ICAgICAgICAgIHVpbnQxNl90IGZvcm1hdDsKKyAgICAgICAgfSByZWNvdmVyeTsKICAgICB9IHU7
CiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVD
YWNoZVNpemUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDEx
IEBAIHNpemVfdCBzaXplT2ZQdXRCeUlkKCkKICAgICByZXR1cm4gMzI7CiB9CiAKK3NpemVfdCBz
aXplT2ZDYWxsKCkKK3sKKyAgICByZXR1cm4gNDM7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpGVEwKIAogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsK
IAogc2l6ZV90IHNpemVPZkdldEJ5SWQoKTsKIHNpemVfdCBzaXplT2ZQdXRCeUlkKCk7CitzaXpl
X3Qgc2l6ZU9mQ2FsbCgpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5o
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJp
bnNpY1JlcG9zaXRvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTcgKzQwLDI1IEBAIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhhZGRXaXRoT3ZlcmZsb3czMiwg
Imxsdm0uc2FkZC53aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1f
Y29udGV4dCwgaW50MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBcCiAgICAgbWFjcm8oYWRk
V2l0aE92ZXJmbG93NjQsICJsbHZtLnNhZGQud2l0aC5vdmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5
cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDY0LCBib29sZWFuKSwgaW50NjQsIGludDY0KSkg
XAogICAgIG1hY3JvKGRvdWJsZUFicywgImxsdm0uZmFicy5mNjQiLCBmdW5jdGlvblR5cGUoZG91
YmxlVHlwZSwgZG91YmxlVHlwZSkpIFwKKyAgICBtYWNybyhkb3VibGVTaW4sICJsbHZtLnNpbi5m
NjQiLCBmdW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91YmxlVHlwZSkpIFwKKyAgICBtYWNybyhk
b3VibGVDb3MsICJsbHZtLmNvcy5mNjQiLCBmdW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91Ymxl
VHlwZSkpIFwKKyAgICBtYWNybyhkb3VibGVTcXJ0LCAibGx2bS5zcXJ0LmY2NCIsIGZ1bmN0aW9u
VHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkgXAorICAgIG1hY3JvKGZyYW1lQWRkcmVzcywg
Imxsdm0uZnJhbWVhZGRyZXNzIiwgZnVuY3Rpb25UeXBlKHBvaW50ZXJUeXBlKGludDgpLCBpbnQz
MikpIFwKICAgICBtYWNybyhtdWxXaXRoT3ZlcmZsb3czMiwgImxsdm0uc211bC53aXRoLm92ZXJm
bG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50MzIsIGJvb2xl
YW4pLCBpbnQzMiwgaW50MzIpKSBcCiAgICAgbWFjcm8obXVsV2l0aE92ZXJmbG93NjQsICJsbHZt
LnNtdWwud2l0aC5vdmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShtX2NvbnRl
eHQsIGludDY0LCBib29sZWFuKSwgaW50NjQsIGludDY0KSkgXAotICAgIG1hY3JvKHBhdGNocG9p
bnRJbnQ2NCwgImxsdm0uZXhwZXJpbWVudGFsLnBhdGNocG9pbnQuaTY0IiwgZnVuY3Rpb25UeXBl
KGludDY0LCBpbnQzMiwgaW50MzIsIHJlZjgsIGludDMyLCBWYXJpYWRpYykpIFwKLSAgICBtYWNy
byhwYXRjaHBvaW50Vm9pZCwgImxsdm0uZXhwZXJpbWVudGFsLnBhdGNocG9pbnQudm9pZCIsIGZ1
bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50MzIsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFkaWMp
KSBcCi0gICAgbWFjcm8oc3RhY2ttYXAsICJsbHZtLmV4cGVyaW1lbnRhbC5zdGFja21hcCIsIGZ1
bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50MzIsIGludDMyLCBWYXJpYWRpYykpIFwKKyAgICBtYWNy
byhwYXRjaHBvaW50SW50NjQsICJsbHZtLmV4cGVyaW1lbnRhbC5wYXRjaHBvaW50Lmk2NCIsIGZ1
bmN0aW9uVHlwZShpbnQ2NCwgaW50NjQsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFkaWMpKSBc
CisgICAgbWFjcm8ocGF0Y2hwb2ludFZvaWQsICJsbHZtLmV4cGVyaW1lbnRhbC5wYXRjaHBvaW50
LnZvaWQiLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludDY0LCBpbnQzMiwgcmVmOCwgaW50MzIs
IFZhcmlhZGljKSkgXAorICAgIG1hY3JvKHN0YWNrbWFwLCAibGx2bS5leHBlcmltZW50YWwuc3Rh
Y2ttYXAiLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludDY0LCBpbnQzMiwgVmFyaWFkaWMpKSBc
CiAgICAgbWFjcm8oc3ViV2l0aE92ZXJmbG93MzIsICJsbHZtLnNzdWIud2l0aC5vdmVyZmxvdy5p
MzIiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDMyLCBib29sZWFuKSwg
aW50MzIsIGludDMyKSkgXAogICAgIG1hY3JvKHN1YldpdGhPdmVyZmxvdzY0LCAibGx2bS5zc3Vi
LndpdGgub3ZlcmZsb3cuaTY0IiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBp
bnQ2NCwgYm9vbGVhbiksIGludDY0LCBpbnQ2NCkpIFwKICAgICBtYWNybyh0cmFwLCAibGx2bS50
cmFwIiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlKSkgXAogICAgIG1hY3JvKHg4NlNTRTJDdnRUU0Qy
U0ksICJsbHZtLng4Ni5zc2UyLmN2dHRzZDJzaSIsIGZ1bmN0aW9uVHlwZShpbnQzMiwgdmVjdG9y
VHlwZShkb3VibGVUeXBlLCAyKSkpCiAKICNkZWZpbmUgRk9SX0VBQ0hfRlVOQ1RJT05fVFlQRSht
YWNybykgXAorICAgIG1hY3JvKENfSklUT3BlcmF0aW9uX0VDLCBmdW5jdGlvblR5cGUoaW50UHRy
LCBpbnRQdHIsIGludFB0cikpIFwKKyAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FSiwgZnVuY3Rp
b25UeXBlKGludFB0ciwgaW50UHRyLCBpbnQ2NCkpIFwKKyAgICBtYWNybyhDX0pJVE9wZXJhdGlv
bl9FSnNzSnNzLCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50UHRyKSkg
XAorICAgIG1hY3JvKENfSklUT3BlcmF0aW9uX0VKc3NKc3NKc3MsIGZ1bmN0aW9uVHlwZShpbnRQ
dHIsIGludFB0ciwgaW50UHRyLCBpbnRQdHIsIGludFB0cikpIFwKICAgICBtYWNybyhDX0pJVE9w
ZXJhdGlvbl9FU3QsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAogICAg
IG1hY3JvKElfSklUT3BlcmF0aW9uX0VKc3MsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwg
aW50UHRyKSkgXAogICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0UsIGZ1bmN0aW9uVHlwZShpbnQ2
NCwgaW50UHRyKSkgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2Rl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUu
Y3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJ
VENvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCwyNyArNTQsMzUgQEAgdm9pZCBKSVRDb2Rl
OjphZGREYXRhU2VjdGlvbihSZWZDb3VudGVkQQogICAgIG1fZGF0YVNlY3Rpb25zLmFwcGVuZChk
YXRhU2VjdGlvbik7CiB9CiAKLXZvaWQgSklUQ29kZTo6aW5pdGlhbGl6ZUNvZGUoQ29kZVJlZiBl
bnRyeXBvaW50KQordm9pZCBKSVRDb2RlOjppbml0aWFsaXplQXJpdHlDaGVja0VudHJ5cG9pbnQo
Q29kZVJlZiBlbnRyeXBvaW50KQogewotICAgIG1fZW50cnlwb2ludCA9IGVudHJ5cG9pbnQ7Cisg
ICAgbV9hcml0eUNoZWNrRW50cnlwb2ludCA9IGVudHJ5cG9pbnQ7CiB9CiAKLUpJVENvZGU6OkNv
ZGVQdHIgSklUQ29kZTo6YWRkcmVzc0ZvckNhbGwoKQordm9pZCBKSVRDb2RlOjppbml0aWFsaXpl
QWRkcmVzc0ZvckNhbGwoQ29kZVB0ciBhZGRyZXNzKQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1f
ZW50cnlwb2ludCk7Ci0gICAgcmV0dXJuIG1fZW50cnlwb2ludC5jb2RlKCk7CisgICAgbV9hZGRy
ZXNzRm9yQ2FsbCA9IGFkZHJlc3M7Cit9CisKK0pJVENvZGU6OkNvZGVQdHIgSklUQ29kZTo6YWRk
cmVzc0ZvckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlIGFyaXR5Q2hl
Y2ssIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkKK3sKKyAgICBzd2l0Y2ggKGFyaXR5Q2hlY2sp
IHsKKyAgICBjYXNlIEFyaXR5Q2hlY2tOb3RSZXF1aXJlZDoKKyAgICAgICAgcmV0dXJuIG1fYWRk
cmVzc0ZvckNhbGw7CisgICAgY2FzZSBNdXN0Q2hlY2tBcml0eToKKyAgICAgICAgcmV0dXJuIG1f
YXJpdHlDaGVja0VudHJ5cG9pbnQuY29kZSgpOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBDb2RlUHRyKCk7CiB9CiAKIHZvaWQqIEpJVENvZGU6
OmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkKIHsKLSAgICBSRUxFQVNF
X0FTU0VSVChtX2VudHJ5cG9pbnQpOwotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIq
PihtX2VudHJ5cG9pbnQuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpICsgb2Zmc2V0OworICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2FkZHJlc3NGb3JDYWxsLmV4ZWN1dGFi
bGVBZGRyZXNzKCkpICsgb2Zmc2V0OwogfQogCiB2b2lkKiBKSVRDb2RlOjpkYXRhQWRkcmVzc0F0
T2Zmc2V0KHNpemVfdCkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQpOwotCiAg
ICAgLy8gV2UgY2FuJ3QgcGF0Y2ggRlRMIGNvZGUsIHlldC4gRXZlbiBpZiB3ZSBkaWQsIGl0J3Mg
bm90IGNsZWFyIHRoYXQgd2Ugd291bGQgZG8gc28KICAgICAvLyB0aHJvdWdoIHRoaXMgQVBJLgog
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04Myw4ICs5MSw2IEBAIHZvaWQq
IEpJVENvZGU6OmRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV8KIAogdW5zaWduZWQgSklUQ29kZTo6
b2Zmc2V0T2Yodm9pZCopCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLQog
ICAgIC8vIFdlIGN1cnJlbnRseSBkb24ndCBoYXZlIHZpc2liaWxpdHkgaW50byB0aGUgRlRMIGNv
ZGUuCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKQEAg
LTkyLDggKzk4LDYgQEAgdW5zaWduZWQgSklUQ29kZTo6b2Zmc2V0T2Yodm9pZCopCiAKIHNpemVf
dCBKSVRDb2RlOjpzaXplKCkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQpOwot
CiAgICAgLy8gV2UgZG9uJ3Qga25vdyB0aGUgc2l6ZSBvZiBGVEwgY29kZSwgeWV0LiBNYWtlIGEg
d2lsZCBndWVzcy4gVGhpcyBpcyBtb3N0bHkgdXNlZCBmb3IKICAgICAvLyBHQyBsb2FkIGVzdGlt
YXRlcy4KICAgICByZXR1cm4gMTAwMDsKQEAgLTEwMSw4ICsxMDUsNiBAQCBzaXplX3QgSklUQ29k
ZTo6c2l6ZSgpCiAKIGJvb2wgSklUQ29kZTo6Y29udGFpbnModm9pZCopCiB7Ci0gICAgUkVMRUFT
RV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLQogICAgIC8vIFdlIGhhdmUgbm8gaWRlYSB3aGF0IGFk
ZHJlc3NlcyB0aGUgRlRMIGNvZGUgY29udGFpbnMsIHlldC4KICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSklUQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMSklUQ29kZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEpJVENvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIkRGR0NvbW1vbkRhdGEuaCIKICNpbmNsdWRlICJGVExPU1JFeGl0LmgiCiAjaW5j
bHVkZSAiRlRMU3RhY2tNYXBzLmgiCisjaW5jbHVkZSAiRlRMVW53aW5kSW5mby5oIgogI2luY2x1
ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJMTFZNQVBJLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWRBcnJheS5oPgpAQCAtNDYsMTcgKzQ3LDE4IEBAIHB1YmxpYzoKICAgICBKSVRDb2RlKCk7
CiAgICAgfkpJVENvZGUoKTsKICAgICAKLSAgICBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKCk7Ci0g
ICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KTsKLSAgICB2
b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpOwotICAgIHVuc2lnbmVkIG9m
ZnNldE9mKHZvaWQqIHBvaW50ZXJJbnRvQ29kZSk7Ci0gICAgc2l6ZV90IHNpemUoKTsKLSAgICBi
b29sIGNvbnRhaW5zKHZvaWQqKTsKKyAgICBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKFZNJiwgRXhl
Y3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9kZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKSBv
dmVycmlkZTsKKyAgICB2b2lkKiBleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZz
ZXQpIG92ZXJyaWRlOworICAgIHZvaWQqIGRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNl
dCkgb3ZlcnJpZGU7CisgICAgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCogcG9pbnRlckludG9Db2Rl
KSBvdmVycmlkZTsKKyAgICBzaXplX3Qgc2l6ZSgpIG92ZXJyaWRlOworICAgIGJvb2wgY29udGFp
bnModm9pZCopIG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgaW5pdGlhbGl6ZUV4aXRUaHVua3Mo
Q29kZVJlZik7CiAgICAgdm9pZCBhZGRIYW5kbGUoUGFzc1JlZlB0cjxFeGVjdXRhYmxlTWVtb3J5
SGFuZGxlPik7CiAgICAgdm9pZCBhZGREYXRhU2VjdGlvbihSZWZDb3VudGVkQXJyYXk8TFNlY3Rp
b25Xb3JkPik7Ci0gICAgdm9pZCBpbml0aWFsaXplQ29kZShDb2RlUmVmIGVudHJ5cG9pbnQpOwor
ICAgIHZvaWQgaW5pdGlhbGl6ZUFyaXR5Q2hlY2tFbnRyeXBvaW50KENvZGVSZWYpOworICAgIHZv
aWQgaW5pdGlhbGl6ZUFkZHJlc3NGb3JDYWxsKENvZGVQdHIpOwogICAgIAogICAgIGNvbnN0IFZl
Y3RvcjxSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4+JiBoYW5kbGVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9oYW5kbGVzOyB9CiAgICAgY29uc3QgVmVjdG9yPFJlZkNvdW50ZWRBcnJheTxMU2Vj
dGlvbldvcmQ+PiYgZGF0YVNlY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhU2VjdGlvbnM7
IH0KQEAgLTY5LDExICs3MSwxMyBAQCBwdWJsaWM6CiAgICAgREZHOjpDb21tb25EYXRhIGNvbW1v
bjsKICAgICBTZWdtZW50ZWRWZWN0b3I8T1NSRXhpdCwgOD4gb3NyRXhpdDsKICAgICBTdGFja01h
cHMgc3RhY2ttYXBzOworICAgIFVud2luZEluZm8gdW53aW5kSW5mbzsKICAgICAKIHByaXZhdGU6
CiAgICAgVmVjdG9yPFJlZkNvdW50ZWRBcnJheTxMU2VjdGlvbldvcmQ+PiBtX2RhdGFTZWN0aW9u
czsKICAgICBWZWN0b3I8UmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+PiBtX2hhbmRsZXM7
Ci0gICAgQ29kZVJlZiBtX2VudHJ5cG9pbnQ7CisgICAgQ29kZVB0ciBtX2FkZHJlc3NGb3JDYWxs
OworICAgIENvZGVSZWYgbV9hcml0eUNoZWNrRW50cnlwb2ludDsKICAgICBDb2RlUmVmIG1fZXhp
dFRodW5rczsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmlu
YWxpemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJ
VEZpbmFsaXplci5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMSklURmluYWxpemVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNiArNDUsMjIgQEAg
SklURmluYWxpemVyOjp+SklURmluYWxpemVyKCkKIHsKIH0KIAorc2l6ZV90IEpJVEZpbmFsaXpl
cjo6Y29kZVNpemUoKQoreworICAgIHNpemVfdCByZXN1bHQgPSAwOworICAgIAorICAgIHJlc3Vs
dCArPSBleGl0VGh1bmtzTGlua0J1ZmZlci0+c2l6ZSgpOworICAgIHJlc3VsdCArPSBlbnRyeXBv
aW50TGlua0J1ZmZlci0+c2l6ZSgpOworICAgIGlmIChzaWRlQ29kZUxpbmtCdWZmZXIpCisgICAg
ICAgIHJlc3VsdCArPSBzaWRlQ29kZUxpbmtCdWZmZXItPnNpemUoKTsKKyAgICByZXN1bHQgKz0g
aGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXItPnNpemUoKTsKKyAgICAKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSBqaXRDb2RlLT5oYW5kbGVzKCkuc2l6ZSgpOyBpLS07KQorICAgICAgICByZXN1bHQg
Kz0gaml0Q29kZS0+aGFuZGxlcygpW2ldLT5zaXplSW5CeXRlcygpOworICAgIAorICAgIHJldHVy
biByZXN1bHQ7Cit9CisKIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZSgpCiB7CiAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTczLDkgKzg5LDcgQEAgYm9vbCBKSVRGaW5h
bGl6ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogICAgICAgICAgICAgZXhpdFRodW5rc0xpbmtCdWZm
ZXItPmxpbmsoCiAgICAgICAgICAgICAgICAgaW5mby5tX3RodW5rSnVtcCwKICAgICAgICAgICAg
ICAgICBDb2RlTG9jYXRpb25MYWJlbCgKLSAgICAgICAgICAgICAgICAgICAgbV9wbGFuLnZtLmZ0
bFRodW5rcy0+Z2V0T1NSRXhpdEdlbmVyYXRpb25UaHVuaygKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG1fcGxhbi52bSwgTG9jYXRpb246OmZvclN0YWNrbWFwcygKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmaml0Q29kZS0+c3RhY2ttYXBzLCBpdGVyLT52YWx1ZS5sb2NhdGlvbnNbMF0p
KS5jb2RlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9wbGFuLnZtLmdldENUSVN0dWIob3Ny
RXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcikuY29kZSgpKSk7CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIGppdENvZGUtPmluaXRpYWxpemVFeGl0VGh1bmtzKApAQCAtMTAyLDE1ICsx
MTYsMjYgQEAgYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogICAgICAgICAg
ICAgLmV4ZWN1dGFibGVNZW1vcnkoKSk7CiAgICAgfQogICAgIAorICAgIGlmIChoYW5kbGVFeGNl
cHRpb25zTGlua0J1ZmZlcikgeworICAgICAgICBqaXRDb2RlLT5hZGRIYW5kbGUoRklOQUxJWkVf
REZHX0NPREUoCisgICAgICAgICAgICAqaGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXIsCisgICAg
ICAgICAgICAoIkZUTCBleGNlcHRpb24gaGFuZGxlciBmb3IgJXMiLAorICAgICAgICAgICAgICAg
IHRvQ1N0cmluZyhDb2RlQmxvY2tXaXRoSklUVHlwZShtX3BsYW4uY29kZUJsb2NrLmdldCgpLCBK
SVRDb2RlOjpGVExKSVQpKS5kYXRhKCkpKQorICAgICAgICAgICAgLmV4ZWN1dGFibGVNZW1vcnko
KSk7CisgICAgfQorICAgIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVj
azsKICAgICBpZiAoYXJpdHlDaGVjay5pc1NldCgpKQogICAgICAgICB3aXRoQXJpdHlDaGVjayA9
IGVudHJ5cG9pbnRMaW5rQnVmZmVyLT5sb2NhdGlvbk9mKGFyaXR5Q2hlY2spOwotICAgIGppdENv
ZGUtPmluaXRpYWxpemVDb2RlKAorICAgIGppdENvZGUtPmluaXRpYWxpemVBcml0eUNoZWNrRW50
cnlwb2ludCgKICAgICAgICAgRklOQUxJWkVfREZHX0NPREUoCiAgICAgICAgICAgICAqZW50cnlw
b2ludExpbmtCdWZmZXIsCiAgICAgICAgICAgICAoIkZUTCBlbnRyeXBvaW50IHRodW5rIGZvciAl
cyB3aXRoIExMVk0gZ2VuZXJhdGVkIGNvZGUgYXQgJXAiLCB0b0NTdHJpbmcoQ29kZUJsb2NrV2l0
aEpJVFR5cGUobV9wbGFuLmNvZGVCbG9jay5nZXQoKSwgSklUQ29kZTo6RlRMSklUKSkuZGF0YSgp
LCBmdW5jdGlvbikpKTsKICAgICAKLSAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKGpp
dENvZGUsIHdpdGhBcml0eUNoZWNrKTsKKyAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2Rl
KGppdENvZGUpOworICAgIAorICAgIGlmIChtX3BsYW4uY29tcGlsYXRpb24pCisgICAgICAgIG1f
cGxhbi52bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmFkZENvbXBpbGF0aW9uKG1fcGxhbi5jb21w
aWxhdGlvbik7CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDEyICs0NiwxNCBAQCBwdWJsaWM6CiAgICAgSklURmluYWxpemVyKERGRzo6UGxhbiYp
OwogICAgIHZpcnR1YWwgfkpJVEZpbmFsaXplcigpOwogICAgIAotICAgIGJvb2wgZmluYWxpemUo
KTsKLSAgICBib29sIGZpbmFsaXplRnVuY3Rpb24oKTsKKyAgICBzaXplX3QgY29kZVNpemUoKSBv
dmVycmlkZTsKKyAgICBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBmaW5hbGl6
ZUZ1bmN0aW9uKCkgb3ZlcnJpZGU7CiAKICAgICBPd25QdHI8TGlua0J1ZmZlcj4gZXhpdFRodW5r
c0xpbmtCdWZmZXI7CiAgICAgT3duUHRyPExpbmtCdWZmZXI+IGVudHJ5cG9pbnRMaW5rQnVmZmVy
OwogICAgIE93blB0cjxMaW5rQnVmZmVyPiBzaWRlQ29kZUxpbmtCdWZmZXI7CisgICAgT3duUHRy
PExpbmtCdWZmZXI+IGhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyOwogICAgIFZlY3RvcjxTbG93
UGF0aENhbGw+IHNsb3dQYXRoQ2FsbHM7IC8vIENhbGxzIGluc2lkZSB0aGUgc2lkZSBjb2RlLgog
ICAgIFZlY3RvcjxPU1JFeGl0Q29tcGlsYXRpb25JbmZvPiBvc3JFeGl0OwogICAgIE1hY3JvQXNz
ZW1ibGVyOjpMYWJlbCBhcml0eUNoZWNrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExKU0NhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSlNDYWxsLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSlNDYWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJGVExKU0NhbGwuaCIKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVk
ZSAiREZHTm9kZS5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK0pTQ2Fs
bDo6SlNDYWxsKHVuc2lnbmVkIHN0YWNrbWFwSUQsIERGRzo6Tm9kZSogbm9kZSkKKyAgICA6IG1f
c3RhY2ttYXBJRChzdGFja21hcElEKQorICAgICwgbV9ub2RlKG5vZGUpCisgICAgLCBtX2luc3Ry
dWN0aW9uT2Zmc2V0KDApCit7Cit9CisKK3ZvaWQgSlNDYWxsOjplbWl0KENDYWxsSGVscGVycyYg
aml0KQoreworICAgIENDYWxsSGVscGVyczo6SnVtcCBzbG93UGF0aCA9IGppdC5icmFuY2hQdHJX
aXRoUGF0Y2goCisgICAgICAgIENDYWxsSGVscGVyczo6Tm90RXF1YWwsIEdQUkluZm86OnJlZ1Qw
LCBtX3RhcmdldFRvQ2hlY2ssCisgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigw
KSk7CisgICAgCisgICAgaml0LmxvYWRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVz
cyhHUFJJbmZvOjpyZWdUMCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZTY29wZUNoYWluKCkpLAorICAg
ICAgICBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlNjQoCisgICAgICAgIEdQUkluZm86
OnJlZ1QxLAorICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgc2l6ZW9mKFJlZ2lz
dGVyKSAqIChKU1N0YWNrOjpTY29wZUNoYWluIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1Np
emUpKSk7CisgICAgCisgICAgbV9mYXN0Q2FsbCA9IGppdC5uZWFyQ2FsbCgpOworICAgIENDYWxs
SGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKKyAgICAKKyAgICBzbG93UGF0aC5saW5r
KCZqaXQpOworICAgIG1fc2xvd0NhbGwgPSBqaXQubmVhckNhbGwoKTsKKyAgICAKKyAgICBkb25l
LmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgSlNDYWxsOjpsaW5rKFZNJiB2bSwgTGlua0J1ZmZlciYg
bGlua0J1ZmZlciwgQ2FsbExpbmtJbmZvJiBjYWxsSW5mbykKK3sKKyAgICBUaHVua0dlbmVyYXRv
ciBnZW5lcmF0b3IgPSBsaW5rVGh1bmtHZW5lcmF0b3JGb3IoCisgICAgICAgIG1fbm9kZS0+b3Ao
KSA9PSBERkc6OkNvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwKKyAg
ICAgICAgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKKyAgICAKKyAgICBsaW5rQnVmZmVyLmxpbmso
CisgICAgICAgIG1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKHZtLmdldENUSVN0dWIoZ2VuZXJhdG9y
KS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgIAorICAgIGNhbGxJbmZvLmlzRlRM
ID0gdHJ1ZTsKKyAgICBjYWxsSW5mby5jYWxsVHlwZSA9IG1fbm9kZS0+b3AoKSA9PSBERkc6OkNv
bnN0cnVjdCA/IENhbGxMaW5rSW5mbzo6Q29uc3RydWN0IDogQ2FsbExpbmtJbmZvOjpDYWxsOwor
ICAgIGNhbGxJbmZvLmNvZGVPcmlnaW4gPSBtX25vZGUtPmNvZGVPcmlnaW47CisgICAgY2FsbElu
Zm8uY2FsbFJldHVybkxvY2F0aW9uID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9z
bG93Q2FsbCk7CisgICAgY2FsbEluZm8uaG90UGF0aEJlZ2luID0gbGlua0J1ZmZlci5sb2NhdGlv
bk9mKG1fdGFyZ2V0VG9DaGVjayk7CisgICAgY2FsbEluZm8uaG90UGF0aE90aGVyID0gbGlua0J1
ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9mYXN0Q2FsbCk7CisgICAgY2FsbEluZm8uY2FsbGVl
R1BSID0gR1BSSW5mbzo6cmVnVDA7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKwor
I2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEpTQ2FsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSlNDYWxsLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEpTQ2FsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBGVExKU0NhbGxfaAorI2Rl
ZmluZSBGVExKU0NhbGxfaAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJDQ2Fs
bEhlbHBlcnMuaCIKKyNpbmNsdWRlICJDYWxsTGlua0luZm8uaCIKKyNpbmNsdWRlICJDb2RlT3Jp
Z2luLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorCituYW1lc3BhY2UgSlNDIHsKKworbmFt
ZXNwYWNlIERGRyB7CitzdHJ1Y3QgTm9kZTsKK30KKworbmFtZXNwYWNlIEZUTCB7CisKK2NsYXNz
IEpTQ2FsbCB7CitwdWJsaWM6CisgICAgSlNDYWxsKHVuc2lnbmVkIHN0YWNrbWFwSUQsIERGRzo6
Tm9kZSopOworICAgIAorICAgIHZvaWQgZW1pdChDQ2FsbEhlbHBlcnMmKTsKKyAgICB2b2lkIGxp
bmsoVk0mLCBMaW5rQnVmZmVyJiwgQ2FsbExpbmtJbmZvJik7CisgICAgCisgICAgdW5zaWduZWQg
c3RhY2ttYXBJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2ttYXBJRDsgfQorICAgIAorICAgIGJv
b2wgb3BlcmF0b3I8KGNvbnN0IEpTQ2FsbCYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gbV9pbnN0cnVjdGlvbk9mZnNldCA8IG90aGVyLm1faW5zdHJ1Y3Rpb25PZmZzZXQ7Cisg
ICAgfQorICAgIAorcHJpdmF0ZToKKyAgICB1bnNpZ25lZCBtX3N0YWNrbWFwSUQ7CisgICAgREZH
OjpOb2RlKiBtX25vZGU7CisgICAgQ0NhbGxIZWxwZXJzOjpEYXRhTGFiZWxQdHIgbV90YXJnZXRU
b0NoZWNrOworICAgIENDYWxsSGVscGVyczo6Q2FsbCBtX2Zhc3RDYWxsOworICAgIENDYWxsSGVs
cGVyczo6Q2FsbCBtX3Nsb3dDYWxsOworCitwdWJsaWM6CisgICAgdWludDMyX3QgbV9pbnN0cnVj
dGlvbk9mZnNldDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8v
IEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMSlNDYWxsX2gKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAorI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ2FsbEZy
YW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRUeXBlLmgiCkBAIC0zNywx
MjEgKzM4LDE1MCBAQAogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiTExWTUFQSS5o
IgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJQcm9maWxlckNvbXBpbGF0aW9u
LmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgRlRMIHsKIAogdXNpbmcgbmFtZXNwYWNlIERGRzsKIAotc3RhdGljIHZvaWQgY29tcGls
ZUVudHJ5KENDYWxsSGVscGVycyYgaml0KQotewotICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJl
c3NBZnRlckNhbGwoR1BSSW5mbzo6cmVnVDIpOwotICAgIGppdC5lbWl0UHV0UmV0dXJuUENUb0Nh
bGxGcmFtZUhlYWRlcihHUFJJbmZvOjpyZWdUMik7Ci0gICAgaml0LmVtaXRQdXRJbW1lZGlhdGVU
b0NhbGxGcmFtZUhlYWRlcihqaXQuY29kZUJsb2NrKCksIEpTU3RhY2s6OkNvZGVCbG9jayk7Ci19
Ci0KIHZvaWQgbGluayhTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jazsKKyAgICBHcmFwaCYgZ3JhcGggPSBzdGF0ZS5ncmFw
aDsKKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGdyYXBoLm1fY29kZUJsb2NrOworICAgIFZN
JiB2bSA9IGdyYXBoLm1fdm07CiAgICAgCiAgICAgLy8gTExWTSB3aWxsIGNyZWF0ZSBpdHMgb3du
IGp1bXAgdGFibGVzIGFzIG5lZWRlZC4KICAgICBjb2RlQmxvY2stPmNsZWFyU3dpdGNoSnVtcFRh
YmxlcygpOwogICAgIAotICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5mcmFtZVJlZ2lzdGVyQ291
bnQgPSBzdGF0ZS5ncmFwaC5mcmFtZVJlZ2lzdGVyQ291bnQoKTsKLSAgICBzdGF0ZS5qaXRDb2Rl
LT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCA9IHN0YXRlLmdyYXBoLnJlcXVp
cmVkUmVnaXN0ZXJDb3VudEZvckV4aXQoKTsKKyAgICAvLyBGSVhNRTogTmVlZCB0byBrbm93IHRo
ZSByZWFsIGZyYW1lIHJlZ2lzdGVyIGNvdW50LgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU3MjcKKyAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24uZnJh
bWVSZWdpc3RlckNvdW50ID0gMTAwMDsKKyAgICAKKyAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24u
cmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCA9IGdyYXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3Vu
dEZvckV4aXQoKTsKICAgICAKLSAgICBpZiAoIXN0YXRlLmdyYXBoLm1faW5saW5lQ2FsbEZyYW1l
cy0+aXNFbXB0eSgpKQotICAgICAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24uaW5saW5lQ2FsbEZy
YW1lcyA9IHN0ZDo6bW92ZShzdGF0ZS5ncmFwaC5tX2lubGluZUNhbGxGcmFtZXMpOworICAgIGlm
ICghZ3JhcGgubV9pbmxpbmVDYWxsRnJhbWVzLT5pc0VtcHR5KCkpCisgICAgICAgIHN0YXRlLmpp
dENvZGUtPmNvbW1vbi5pbmxpbmVDYWxsRnJhbWVzID0gc3RkOjptb3ZlKGdyYXBoLm1faW5saW5l
Q2FsbEZyYW1lcyk7CiAgICAgCiAgICAgLy8gQ3JlYXRlIHRoZSBlbnRyeXBvaW50LiBOb3RlIHRo
YXQgd2UgdXNlIHRoaXMgZW50cnlwb2ludCB0b3RhbGx5IGRpZmZlcmVudGx5CiAgICAgLy8gZGVw
ZW5kaW5nIG9uIHdoZXRoZXIgd2UncmUgZG9pbmcgT1NSIGVudHJ5IG9yIG5vdC4KLSAgICAvLyBG
SVhNRTogRXhjZXB0IGZvciBPU1IgZW50cnksIHRoaXMgaXMgYSB0b3RhbCBrbHVkZ2UgLSBMTFZN
IHNob3VsZCBqdXN0IHVzZSBvdXIKLSAgICAvLyBjYWxsaW5nIGNvbnZlbnRpb24uCi0gICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMQotICAgIENDYWxs
SGVscGVycyBqaXQoJnN0YXRlLmdyYXBoLm1fdm0sIGNvZGVCbG9jayk7CisgICAgQ0NhbGxIZWxw
ZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7CiAgICAgCiAgICAgT3duUHRyPExpbmtCdWZmZXI+IGxp
bmtCdWZmZXI7CiAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBhcml0eUNoZWNrOwotICAgIHN3aXRj
aCAoc3RhdGUuZ3JhcGgubV9wbGFuLm1vZGUpIHsKLSAgICBjYXNlIEZUTE1vZGU6IHsKLSAgICAg
ICAgY29tcGlsZUVudHJ5KGppdCk7CisKKyAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgZnJhbWUg
PSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgIENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIC1zdGF0aWNfY2FzdDxpbnQzMl90PihzaXplb2Yodm9pZCopKSk7CiAgICAg
Ci0gICAgICAgIC8vIFRoaXMgcGFydCBpcyBvbmx5IG5lY2Vzc2FyeSBmb3IgZnVuY3Rpb25zLiBX
ZSBjdXJyZW50bHkgb25seSBjb21waWxlIGZ1bmN0aW9ucy4KLSAgICAgICAgCi0gICAgICAgIEND
YWxsSGVscGVyczo6TGFiZWwgZnJvbUFyaXR5Q2hlY2sgPSBqaXQubGFiZWwoKTsKLSAgICAgICAg
Ci0gICAgICAgIC8vIFBsYW50IGEgY2hlY2sgdGhhdCBzdWZmaWNpZW50IHNwYWNlIGlzIGF2YWls
YWJsZSBpbiB0aGUgSlNTdGFjay4KLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjI5MQotICAgICAgICBqaXQuYWRkUHRyKAotICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwo
c3RhdGUuaml0Q29kZS0+Y29tbW9uLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQpLm9mZnNl
dCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksCi0gICAgICAgICAgICBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgc3Rh
Y2tDaGVjayA9IGppdC5icmFuY2hQdHIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFib3Zl
LAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3Moc3RhdGUuZ3JhcGgu
bV92bS5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksCi0gICAgICAgICAgICBHUFJJbmZvOjpyZWdU
MSk7Ci0gICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgZnJvbVN0YWNrQ2hlY2sgPSBqaXQubGFi
ZWwoKTsKLSAgICAgICAgCi0gICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwot
ICAgICAgICBqaXQubW92ZSgKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihyZWludGVycHJldF9jYXN0PHZvaWQqPihzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbikpLAotICAg
ICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgICAgIGppdC5jYWxsKEdQUkluZm86
Om5vbkFyZ0dQUjApOwotICAgICAgICBqaXQuZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhl
YWRlclB0cihHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIGppdC5lbWl0R2V0Q2FsbGVyRnJhbWVG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAg
ICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86OnJlZ1QxKTsK
LSAgICAgICAgaml0LnJldCgpOwotICAgICAgICAKLSAgICAgICAgc3RhY2tDaGVjay5saW5rKCZq
aXQpOwotICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoY29kZUJs
b2NrKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIGppdC5z
dG9yZTMyKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQ2FsbEZyYW1l
OjpMb2NhdGlvbjo6ZW5jb2RlQXNCeXRlY29kZU9mZnNldCgwKSksCi0gICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OnRhZ0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFy
Z3VtZW50Q291bnQpKSk7Ci0gICAgICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgJnN0YXRlLmdyYXBoLm1fdm0udG9wQ2FsbEZyYW1lKTsKLSAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpDYWxsIGNhbGxTdGFja0NoZWNrID0gaml0LmNhbGwoKTsKLSNpZiAhQVNTRVJUX0RJ
U0FCTEVECi0gICAgICAgIC8vIEZJWE1FOiBuZWVkIHRvIG1ha2UgdGhpcyBjYWxsIHJlZ2lzdGVy
IHdpdGggZXhjZXB0aW9uIGhhbmRsaW5nIHNvbWVob3cuIFRoaXMgaXMKLSAgICAgICAgLy8gcGFy
dCBvZiBhIGJpZ2dlciBwcm9ibGVtOiBGVEwgc2hvdWxkIGJlIGFibGUgdG8gaGFuZGxlIGV4Y2Vw
dGlvbnMuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTM2MjIKLSAgICAgICAgLy8gVW50aWwgdGhlbiwgdXNlIGEgSklUIEFTU0VSVC4KLSAgICAg
ICAgaml0LmxvYWQ2NChzdGF0ZS5ncmFwaC5tX3ZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBHUFJJ
bmZvOjpyZWdUMCk7Ci0gICAgICAgIGppdC5qaXRBc3NlcnRJc051bGwoR1BSSW5mbzo6cmVnVDAp
OwotI2VuZGlmCi0gICAgICAgIGppdC5qdW1wKGZyb21TdGFja0NoZWNrKTsKKyAgICBpZiAoUHJv
ZmlsZXI6OkNvbXBpbGF0aW9uKiBjb21waWxhdGlvbiA9IGdyYXBoLmNvbXBpbGF0aW9uKCkpIHsK
KyAgICAgICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKAorICAgICAgICAgICAgUHJvZmls
ZXI6Ok9yaWdpblN0YWNrKCksCisgICAgICAgICAgICB0b0NTdHJpbmcoIkdlbmVyYXRlZCBGVEwg
SklUIGNvZGUgZm9yICIsIENvZGVCbG9ja1dpdGhKSVRUeXBlKGNvZGVCbG9jaywgSklUQ29kZTo6
RlRMSklUKSwgIiwgaW5zdHJ1Y3Rpb24gY291bnQgPSAiLCBncmFwaC5tX2NvZGVCbG9jay0+aW5z
dHJ1Y3Rpb25Db3VudCgpLCAiOlxuIikpOworICAgICAgICAKKyAgICAgICAgZ3JhcGgubV9kb21p
bmF0b3JzLmNvbXB1dGVJZk5lY2Vzc2FyeShncmFwaCk7CisgICAgICAgIGdyYXBoLm1fbmF0dXJh
bExvb3BzLmNvbXB1dGVJZk5lY2Vzc2FyeShncmFwaCk7CisgICAgICAgIAorICAgICAgICBjb25z
dCBjaGFyKiBwcmVmaXggPSAiICAgICI7CisgICAgICAgIAorICAgICAgICBEdW1wQ29udGV4dCBk
dW1wQ29udGV4dDsKKyAgICAgICAgU3RyaW5nUHJpbnRTdHJlYW0gb3V0OworICAgICAgICBOb2Rl
KiBsYXN0Tm9kZSA9IDA7CisgICAgICAgIGZvciAoc2l6ZV90IGJsb2NrSW5kZXggPSAwOyBibG9j
a0luZGV4IDwgZ3JhcGgubnVtQmxvY2tzKCk7ICsrYmxvY2tJbmRleCkgeworICAgICAgICAgICAg
QmFzaWNCbG9jayogYmxvY2sgPSBncmFwaC5ibG9jayhibG9ja0luZGV4KTsKKyAgICAgICAgICAg
IGlmICghYmxvY2spCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGdyYXBoLmR1bXBCbG9ja0hlYWRlcihvdXQsIHByZWZpeCwgYmxvY2ssIEdyYXBo
OjpEdW1wTGl2ZVBoaXNPbmx5LCAmZHVtcENvbnRleHQpOworICAgICAgICAgICAgY29tcGlsYXRp
b24tPmFkZERlc2NyaXB0aW9uKFByb2ZpbGVyOjpPcmlnaW5TdGFjaygpLCBvdXQudG9DU3RyaW5n
KCkpOworICAgICAgICAgICAgb3V0LnJlc2V0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGZvciAoc2l6ZV90IG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsr
bm9kZUluZGV4KSB7CisgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2Rl
SW5kZXgpOworICAgICAgICAgICAgICAgIGlmICghbm9kZS0+d2lsbEhhdmVDb2RlR2VuT3JPU1Io
KSAmJiAhT3B0aW9uczo6c2hvd0FsbERGR05vZGVzKCkpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFByb2ZpbGVyOjpPcmln
aW5TdGFjayBzdGFjazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobm9k
ZS0+Y29kZU9yaWdpbi5pc1NldCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrID0gUHJv
ZmlsZXI6Ok9yaWdpblN0YWNrKAorICAgICAgICAgICAgICAgICAgICAgICAgKnZtLm1fcGVyQnl0
ZWNvZGVQcm9maWxlciwgY29kZUJsb2NrLCBub2RlLT5jb2RlT3JpZ2luKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGdyYXBoLmR1bXBD
b2RlT3JpZ2luKG91dCwgcHJlZml4LCBsYXN0Tm9kZSwgbm9kZSwgJmR1bXBDb250ZXh0KSkgewor
ICAgICAgICAgICAgICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oc3RhY2ssIG91
dC50b0NTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIG91dC5yZXNldCgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBncmFwaC5kdW1w
KG91dCwgcHJlZml4LCBub2RlLCAmZHVtcENvbnRleHQpOworICAgICAgICAgICAgICAgIGNvbXBp
bGF0aW9uLT5hZGREZXNjcmlwdGlvbihzdGFjaywgb3V0LnRvQ1N0cmluZygpKTsKKyAgICAgICAg
ICAgICAgICBvdXQucmVzZXQoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBp
ZiAobm9kZS0+Y29kZU9yaWdpbi5pc1NldCgpKQorICAgICAgICAgICAgICAgICAgICBsYXN0Tm9k
ZSA9IG5vZGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGR1
bXBDb250ZXh0LmR1bXAob3V0LCBwcmVmaXgpOworICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVz
Y3JpcHRpb24oUHJvZmlsZXI6Ok9yaWdpblN0YWNrKCksIG91dC50b0NTdHJpbmcoKSk7CisgICAg
ICAgIG91dC5yZXNldCgpOworICAgICAgICAKKyAgICAgICAgb3V0LnByaW50KCIgICAgRGlzYXNz
ZW1ibHk6XG4iKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRlLmppdENv
ZGUtPmhhbmRsZXMoKS5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHN0YXRlLmNvZGVT
ZWN0aW9uTmFtZXNbaV0gIT0gIl9fdGV4dCIpCisgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBoYW5k
bGUgPSBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKClbaV0uZ2V0KCk7CisgICAgICAgICAgICAgICAg
ZGlzYXNzZW1ibGUoCisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciho
YW5kbGUtPnN0YXJ0KCkpLCBoYW5kbGUtPnNpemVJbkJ5dGVzKCksCisgICAgICAgICAgICAgICAg
ICAgICIgICAgICAiLCBvdXQsIExMVk1TdWJzZXQpOworICAgICAgICB9CisgICAgICAgIGNvbXBp
bGF0aW9uLT5hZGREZXNjcmlwdGlvbihQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwgb3V0LnRvQ1N0
cmluZygpKTsKKyAgICAgICAgb3V0LnJlc2V0KCk7CiAgICAgICAgIAotICAgICAgICBhcml0eUNo
ZWNrID0gaml0LmxhYmVsKCk7Ci0gICAgICAgIGNvbXBpbGVFbnRyeShqaXQpOworICAgICAgICBz
dGF0ZS5qaXRDb2RlLT5jb21tb24uY29tcGlsYXRpb24gPSBjb21waWxhdGlvbjsKKyAgICB9Cisg
ICAgCisgICAgc3dpdGNoIChncmFwaC5tX3BsYW4ubW9kZSkgeworICAgIGNhc2UgRlRMTW9kZTog
eworICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1haW5QYXRoSnVtcHM7CisgICAgCiAg
ICAgICAgIGppdC5sb2FkMzIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnBheWxvYWRGb3Io
c3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihKU1N0YWNrOjpBcmd1bWVudENvdW50KSksCisg
ICAgICAgICAgICBmcmFtZS53aXRoT2Zmc2V0KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpB
cmd1bWVudENvdW50KSwKICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0
LmJyYW5jaDMyKAorICAgICAgICBtYWluUGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoMzIoCiAg
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFib3ZlT3JFcXVhbCwgR1BSSW5mbzo6cmVnVDEsCi0g
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihjb2RlQmxvY2stPm51bVBhcmFt
ZXRlcnMoKSkpCi0gICAgICAgICAgICAubGlua1RvKGZyb21Bcml0eUNoZWNrLCAmaml0KTsKKyAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGNvZGVCbG9jay0+bnVtUGFyYW1l
dGVycygpKSkpOworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICAgICAg
aml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgICAgIGppdC5zdG9yZTMyKAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoQ2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNCeXRlY29kZU9mZnNldCgwKSks
Ci0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVn
aXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7Ci0gICAgICAgIGppdC5zdG9yZVB0cihH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgJnN0YXRlLmdyYXBoLm1fdm0udG9wQ2FsbEZyYW1l
KTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6dGFnRm9yKEpTU3RhY2s6OkFyZ3VtZW50Q291
bnQpKTsKKyAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAm
dm0udG9wQ2FsbEZyYW1lKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxBcml0eUNo
ZWNrID0gaml0LmNhbGwoKTsKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAgIC8vIEZJWE1F
OiBuZWVkIHRvIG1ha2UgdGhpcyBjYWxsIHJlZ2lzdGVyIHdpdGggZXhjZXB0aW9uIGhhbmRsaW5n
IHNvbWVob3cuIFRoaXMgaXMKICAgICAgICAgLy8gcGFydCBvZiBhIGJpZ2dlciBwcm9ibGVtOiBG
VEwgc2hvdWxkIGJlIGFibGUgdG8gaGFuZGxlIGV4Y2VwdGlvbnMuCiAgICAgICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjIKICAgICAgICAgLy8gVW50
aWwgdGhlbiwgdXNlIGEgSklUIEFTU0VSVC4KLSAgICAgICAgaml0LmxvYWQ2NChzdGF0ZS5ncmFw
aC5tX3ZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgICAgIGpp
dC5sb2FkNjQodm0uYWRkcmVzc09mRXhjZXB0aW9uKCksIEdQUkluZm86OnJlZ1QxKTsKICAgICAg
ICAgaml0LmppdEFzc2VydElzTnVsbChHUFJJbmZvOjpyZWdUMSk7CiAjZW5kaWYKLSAgICAgICAg
aWYgKEdQUkluZm86OnJldHVyblZhbHVlR1BSICE9IEdQUkluZm86OnJlZ1QwKQotICAgICAgICAg
ICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJlZ1QwKTsKLSAg
ICAgICAgaml0LmJyYW5jaFRlc3QzMihDQ2FsbEhlbHBlcnM6Olplcm8sIEdQUkluZm86OnJlZ1Qw
KS5saW5rVG8oZnJvbUFyaXR5Q2hlY2ssICZqaXQpOworICAgICAgICBqaXQubW92ZShHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICBqaXQuZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoKTsKKyAgICAgICAgbWFpblBhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaFRl
c3QzMihDQ2FsbEhlbHBlcnM6Olplcm8sIEdQUkluZm86OnJlZ1QwKSk7CisgICAgICAgIGppdC5l
bWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIodm0uYXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MtPnJldHVyblBDc0Zvcih2
bSwgY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKSwgR1BSSW5mbzo6cmVnVDUpOworICAgICAg
ICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChHUFJJbmZvOjpyZWdUNSwgR1BS
SW5mbzo6cmVnVDAsIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSksIEdQUkluZm86OnJlZ1Q1KTsK
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxBcml0eUZpeHVwID0gaml0LmNhbGwoKTsK
LSAgICAgICAgaml0Lmp1bXAoZnJvbUFyaXR5Q2hlY2spOwotICAgICAgICAKLSAgICAgICAgbGlu
a0J1ZmZlciA9IGFkb3B0UHRyKG5ldyBMaW5rQnVmZmVyKHN0YXRlLmdyYXBoLm1fdm0sICZqaXQs
IGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOwotICAgICAgICBsaW5rQnVm
ZmVyLT5saW5rKGNhbGxTdGFja0NoZWNrLCBvcGVyYXRpb25TdGFja0NoZWNrKTsKKyAgICAgICAg
aml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAgIG1haW5QYXRoSnVtcHMuYXBwZW5k
KGppdC5qdW1wKCkpOworCisgICAgICAgIGxpbmtCdWZmZXIgPSBhZG9wdFB0cihuZXcgTGlua0J1
ZmZlcih2bSwgJmppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7CiAg
ICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbEFyaXR5Q2hlY2ssIGNvZGVCbG9jay0+bV9pc0Nv
bnN0cnVjdG9yID8gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayA6IG9wZXJhdGlvbkNhbGxB
cml0eUNoZWNrKTsKLSAgICAgICAgbGlua0J1ZmZlci0+bGluayhjYWxsQXJpdHlGaXh1cCwgRnVu
Y3Rpb25QdHIoKHN0YXRlLmdyYXBoLm1fdm0uZ2V0Q1RJU3R1Yihhcml0eUZpeHVwKSkuY29kZSgp
LmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgbGlua0J1ZmZlci0+bGluayhjYWxsQXJp
dHlGaXh1cCwgRnVuY3Rpb25QdHIoKHZtLmdldENUSVN0dWIoYXJpdHlGaXh1cCkpLmNvZGUoKS5l
eGVjdXRhYmxlQWRkcmVzcygpKSk7CisgICAgICAgIGxpbmtCdWZmZXItPmxpbmsobWFpblBhdGhK
dW1wcywgQ29kZUxvY2F0aW9uTGFiZWwoYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0ZS5nZW5lcmF0
ZWRGdW5jdGlvbikpKTsKKworICAgICAgICBzdGF0ZS5qaXRDb2RlLT5pbml0aWFsaXplQWRkcmVz
c0ZvckNhbGwoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGUu
Z2VuZXJhdGVkRnVuY3Rpb24pKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCkBA
IC0xNjAsMTggKzE5MCwxNCBAQCB2b2lkIGxpbmsoU3RhdGUmIHN0YXRlKQogICAgICAgICAvLyB2
YWx1ZXMgaW50byB0aGUgc2NyYXRjaCBidWZmZXIuIEV2ZXJ5dGhpbmcgc2hvdWxkIGJlIGdvb2Qg
dG8gZ28gLSBhdCB0aGlzCiAgICAgICAgIC8vIHBvaW50IHdlJ3ZlIGV2ZW4gZG9uZSB0aGUgc3Rh
Y2sgY2hlY2suIEJhc2ljYWxseSB3ZSBqdXN0IGhhdmUgdG8gbWFrZSB0aGUKICAgICAgICAgLy8g
Y2FsbCB0byB0aGUgTExWTS1nZW5lcmF0ZWQgY29kZS4KLSAgICAgICAgaml0LnNldHVwQXJndW1l
bnRzRXhlY1N0YXRlKCk7Ci0gICAgICAgIGppdC5tb3ZlKAotICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0YXRlLmdlbmVyYXRl
ZEZ1bmN0aW9uKSksCi0gICAgICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICAgICAg
aml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgICAgIGppdC5lbWl0R2V0UmV0dXJu
UENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0LmVt
aXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIpOwotICAgICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4o
R1BSSW5mbzo6cmVnVDEpOwotICAgICAgICBqaXQucmV0KCk7CisgICAgICAgIENDYWxsSGVscGVy
czo6TGFiZWwgc3RhcnQgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVw
aWxvZ3VlKCk7CisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBtYWluUGF0aEp1bXAgPSBqaXQu
anVtcCgpOwogICAgICAgICAKLSAgICAgICAgbGlua0J1ZmZlciA9IGFkb3B0UHRyKG5ldyBMaW5r
QnVmZmVyKAotICAgICAgICAgICAgc3RhdGUuZ3JhcGgubV92bSwgJmppdCwgY29kZUJsb2NrLCBK
SVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7CisgICAgICAgIGxpbmtCdWZmZXIgPSBhZG9wdFB0
cihuZXcgTGlua0J1ZmZlcih2bSwgJmppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RT
dWNjZWVkKSk7CisgICAgICAgIGxpbmtCdWZmZXItPmxpbmsobWFpblBhdGhKdW1wLCBDb2RlTG9j
YXRpb25MYWJlbChiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uKSkp
OworCisgICAgICAgIHN0YXRlLmppdENvZGUtPmluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbChsaW5r
QnVmZmVyLT5sb2NhdGlvbk9mKHN0YXJ0KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAg
ICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9M
TFZNLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvTExWTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIgogI2luY2x1ZGUgIkRGR0luUGxh
Y2VBYnN0cmFjdFN0YXRlLmgiCiAjaW5jbHVkZSAiRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5o
IgorI2luY2x1ZGUgIkZUTEF2YWlsYWJsZVJlY292ZXJ5LmgiCiAjaW5jbHVkZSAiRlRMRm9yT1NS
RW50cnlKSVRDb2RlLmgiCiAjaW5jbHVkZSAiRlRMRm9ybWF0dGVkVmFsdWUuaCIKICNpbmNsdWRl
ICJGVExJbmxpbmVDYWNoZVNpemUuaCIKQEAgLTUxLDYgKzUyLDEwIEBAIHVzaW5nIG5hbWVzcGFj
ZSBERkc7CiAKIHN0YXRpYyBzdGQ6OmF0b21pYzxpbnQ+IGNvbXBpbGVDb3VudGVyOwogCisvLyBG
SVhNRTogR2V0IHJpZCBvZiB0aGlzIGFuZCBpbnRyb2R1Y2UgYSByZWFsIHN0YWNrIGNoZWNrLgor
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTY1MAorc3RhdGlj
IHVpbnRwdHJfdCBzdGFja0xpbWl0OworCiAvLyBVc2luZyB0aGlzIGluc3RlYWQgb2YgdHlwZUNo
ZWNrKCkgaGVscHMgdG8gcmVkdWNlIHRoZSBsb2FkIG9uIExMVk0sIGJ5IGNyZWF0aW5nCiAvLyBz
aWduaWZpY2FudGx5IGxlc3MgZGVhZCBjb2RlLgogI2RlZmluZSBGVExfVFlQRV9DSEVDSyhsb3dW
YWx1ZSwgaGlnaFZhbHVlLCB0eXBlc1Bhc3NlZFRocm91Z2gsIGZhaWxDb25kaXRpb24pIGRvIHsg
XApAQCAtOTIsMTkgKzk3LDIwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGxsdm0tPk1vZHVsZUNy
ZWF0ZVdpdGhOYW1lSW5Db250ZXh0KG5hbWUuZGF0YSgpLCBtX2Z0bFN0YXRlLmNvbnRleHQpOwog
ICAgICAgICAKICAgICAgICAgbV9mdGxTdGF0ZS5mdW5jdGlvbiA9IGFkZEZ1bmN0aW9uKAotICAg
ICAgICAgICAgbV9mdGxTdGF0ZS5tb2R1bGUsIG5hbWUuZGF0YSgpLCBmdW5jdGlvblR5cGUobV9v
dXQuaW50NjQsIG1fb3V0LmludFB0cikpOworICAgICAgICAgICAgbV9mdGxTdGF0ZS5tb2R1bGUs
IG5hbWUuZGF0YSgpLCBmdW5jdGlvblR5cGUobV9vdXQuaW50NjQpKTsKICAgICAgICAgc2V0RnVu
Y3Rpb25DYWxsaW5nQ29udihtX2Z0bFN0YXRlLmZ1bmN0aW9uLCBMTFZNQ0NhbGxDb252KTsKKyAg
ICAgICAgaWYgKGlzWDg2KCkgJiYgT3B0aW9uczo6bGx2bURpc2FsbG93QVZYKCkpIHsKKyAgICAg
ICAgICAgIC8vIEFWWCBtYWtlcyBWOC9yYXl0cmFjZSA4MCUgc2xvd2VyLiBJdCBtYWtlcyBLcmFr
ZW4vYXVkaW8tb3NjaWxsYXRvciA0LjV4CisgICAgICAgICAgICAvLyBzbG93ZXIuIEl0IHNob3Vs
ZCBiZSBkaXNhYmxlZC4KKyAgICAgICAgICAgIGFkZFRhcmdldERlcGVuZGVudEZ1bmN0aW9uQXR0
cihtX2Z0bFN0YXRlLmZ1bmN0aW9uLCAidGFyZ2V0LWZlYXR1cmVzIiwgIi1hdngiKTsKKyAgICAg
ICAgfQogICAgICAgICAKICAgICAgICAgbV9vdXQuaW5pdGlhbGl6ZShtX2Z0bFN0YXRlLm1vZHVs
ZSwgbV9mdGxTdGF0ZS5mdW5jdGlvbiwgbV9oZWFwcyk7CiAgICAgICAgIAotICAgICAgICBtX3By
b2xvZ3VlID0gYXBwZW5kQmFzaWNCbG9jayhtX2Z0bFN0YXRlLmNvbnRleHQsIG1fZnRsU3RhdGUu
ZnVuY3Rpb24pOwotICAgICAgICBtX291dC5hcHBlbmRUbyhtX3Byb2xvZ3VlKTsKLSAgICAgICAg
Y3JlYXRlUGhpVmFyaWFibGVzKCk7Ci0gICAgICAgIAotICAgICAgICBtX2NhbGxGcmFtZSA9IG1f
b3V0LnBhcmFtKDApOwotICAgICAgICBtX3RhZ1R5cGVOdW1iZXIgPSBtX291dC5jb25zdEludDY0
KFRhZ1R5cGVOdW1iZXIpOwotICAgICAgICBtX3RhZ01hc2sgPSBtX291dC5jb25zdEludDY0KFRh
Z01hc2spOwotICAgICAgICAKKyAgICAgICAgbV9wcm9sb2d1ZSA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiUHJvbG9ndWUiKSk7CisgICAgICAgIExCYXNpY0Jsb2NrIHN0YWNrT3ZlcmZsb3cgPSBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIlN0YWNrIG92ZXJmbG93IikpOworICAgICAgICBtX2hhbmRs
ZUV4Y2VwdGlvbnMgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkhhbmRsZSBFeGNlcHRpb25zIikp
OworCiAgICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8
IG1fZ3JhcGgubnVtQmxvY2tzKCk7ICsrYmxvY2tJbmRleCkgewogICAgICAgICAgICAgbV9oaWdo
QmxvY2sgPSBtX2dyYXBoLmJsb2NrKGJsb2NrSW5kZXgpOwogICAgICAgICAgICAgaWYgKCFtX2hp
Z2hCbG9jaykKQEAgLTExMiw4ICsxMTgsNDIgQEAgcHVibGljOgogICAgICAgICAgICAgbV9ibG9j
a3MuYWRkKG1faGlnaEJsb2NrLCBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkJsb2NrICIsICptX2hp
Z2hCbG9jaykpKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8o
bV9wcm9sb2d1ZSk7Ci0gICAgICAgIG1fb3V0Lmp1bXAobG93QmxvY2sobV9ncmFwaC5ibG9jaygw
KSkpOworICAgICAgICBtX291dC5hcHBlbmRUbyhtX3Byb2xvZ3VlLCBzdGFja092ZXJmbG93KTsK
KyAgICAgICAgY3JlYXRlUGhpVmFyaWFibGVzKCk7CisgICAgICAgIExWYWx1ZSBjYXB0dXJlZEFs
bG9jYSA9IG1fb3V0LmFsbG9jYShhcnJheVR5cGUobV9vdXQuaW50NjQsIG1fZ3JhcGgubV9uZXh0
TWFjaGluZUxvY2FsKSk7CisgICAgICAgIG1fY2FwdHVyZWQgPSBtX291dC5hZGQoCisgICAgICAg
ICAgICBtX291dC5wdHJUb0ludChjYXB0dXJlZEFsbG9jYSwgbV9vdXQuaW50UHRyKSwKKyAgICAg
ICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKG1fZ3JhcGgubV9uZXh0TWFjaGluZUxvY2FsICogc2l6
ZW9mKFJlZ2lzdGVyKSkpOzsKKyAgICAgICAgCisgICAgICAgIC8vIFdlIHNob3VsZCBub3QgY3Jl
YXRlIGFueSBhbGxvY2EncyBhZnRlciB0aGlzIHBvaW50LCBzaW5jZSB0aGV5IHdpbGwgY2Vhc2Ug
dG8KKyAgICAgICAgLy8gYmUgbWVtMnJlZyBjYW5kaWRhdGVzLgorICAgICAgICAKKyAgICAgICAg
bV9mdGxTdGF0ZS5jYXB0dXJlZFN0YWNrbWFwSUQgPSBtX3N0YWNrbWFwSURzKys7CisgICAgICAg
IG1fb3V0LmNhbGwoCisgICAgICAgICAgICBtX291dC5zdGFja21hcEludHJpbnNpYygpLCBtX291
dC5jb25zdEludDY0KG1fZnRsU3RhdGUuY2FwdHVyZWRTdGFja21hcElEKSwKKyAgICAgICAgICAg
IG1fb3V0LmludDMyWmVybywgY2FwdHVyZWRBbGxvY2EpOworICAgICAgICAKKyAgICAgICAgbV9j
YWxsRnJhbWUgPSBtX291dC5wdHJUb0ludCgKKyAgICAgICAgICAgIG1fb3V0LmNhbGwobV9vdXQu
ZnJhbWVBZGRyZXNzSW50cmluc2ljKCksIG1fb3V0LmludDMyWmVybyksIG1fb3V0LmludFB0cik7
CisgICAgICAgIG1fdGFnVHlwZU51bWJlciA9IG1fb3V0LmNvbnN0SW50NjQoVGFnVHlwZU51bWJl
cik7CisgICAgICAgIG1fdGFnTWFzayA9IG1fb3V0LmNvbnN0SW50NjQoVGFnTWFzayk7CisgICAg
ICAgIAorICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5jb25zdEludFB0cihjb2RlQmxvY2so
KSksIGFkZHJlc3NGb3IoSlNTdGFjazo6Q29kZUJsb2NrKSk7CisgICAgICAgIG1fb3V0LmJyYW5j
aCgKKyAgICAgICAgICAgIG1fb3V0LmJlbG93KG1fY2FsbEZyYW1lLCBtX291dC5sb2FkUHRyKG1f
b3V0LmFic29sdXRlKCZzdGFja0xpbWl0KSkpLAorICAgICAgICAgICAgc3RhY2tPdmVyZmxvdywg
bG93QmxvY2sobV9ncmFwaC5ibG9jaygwKSkpOworICAgICAgICAKKyAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oc3RhY2tPdmVyZmxvdywgbV9oYW5kbGVFeGNlcHRpb25zKTsKKyAgICAgICAgLy8gRklY
TUU6IERvIGEgcmVhbCBzdGFjayBjaGVjayBhbmQgdGhyb3cgdGhlIGV4Y2VwdGlvbiBhcHByb3By
aWF0ZWx5LgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI1NjUwCisgICAgICAgIG1fb3V0LmNyYXNoKCk7CisgICAgICAgIAorICAgICAgICBtX291
dC5hcHBlbmRUbyhtX2hhbmRsZUV4Y2VwdGlvbnMsIGxvd0Jsb2NrKG1fZ3JhcGguYmxvY2soMCkp
KTsKKyAgICAgICAgbV9mdGxTdGF0ZS5oYW5kbGVFeGNlcHRpb25TdGFja21hcElEID0gbV9zdGFj
a21hcElEcysrOworICAgICAgICBtX291dC5jYWxsKAorICAgICAgICAgICAgbV9vdXQuc3RhY2tt
YXBJbnRyaW5zaWMoKSwgbV9vdXQuY29uc3RJbnQ2NChtX2Z0bFN0YXRlLmhhbmRsZUV4Y2VwdGlv
blN0YWNrbWFwSUQpLAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihNYWNyb0Fzc2VtYmxl
cjo6bWF4SnVtcFJlcGxhY2VtZW50U2l6ZSgpKSk7CisgICAgICAgIG1fb3V0LnVucmVhY2hhYmxl
KCk7CiAgICAgICAgIAogICAgICAgICBWZWN0b3I8QmFzaWNCbG9jayo+IGRlcHRoRmlyc3Q7CiAg
ICAgICAgIG1fZ3JhcGguZ2V0QmxvY2tzSW5EZXB0aEZpcnN0T3JkZXIoZGVwdGhGaXJzdCk7CkBA
IC0yMjYsNiArMjY2LDggQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKHZlcmJvc2VDb21waWxhdGlv
bkVuYWJsZWQoKSkKICAgICAgICAgICAgIGRhdGFMb2coIkxvd2VyaW5nICIsIG1fbm9kZSwgIlxu
Iik7CiAgICAgICAgIAorICAgICAgICBtX2F2YWlsYWJsZVJlY292ZXJpZXMucmVzaXplKDApOwor
ICAgICAgICAKICAgICAgICAgYm9vbCBzaG91bGRFeGVjdXRlRWZmZWN0cyA9IG1faW50ZXJwcmV0
ZXIuc3RhcnRFeGVjdXRpbmcobV9ub2RlKTsKICAgICAgICAgCiAgICAgICAgIHN3aXRjaCAobV9u
b2RlLT5vcCgpKSB7CkBAIC0yNjUsMTkgKzMwNywxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
Y29tcGlsZVZhbHVlQWRkKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcml0
aEFkZDoKLSAgICAgICAgICAgIGNvbXBpbGVBZGRTdWIoKTsKLSAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIEFyaXRoU3ViOgotICAgICAgICAgICAgY29tcGlsZUFkZFN1YigpOworICAg
ICAgICAgICAgY29tcGlsZUFyaXRoQWRkT3JTdWIoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEFyaXRoTXVsOgogICAgICAgICAgICAgY29tcGlsZUFyaXRoTXVsKCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcml0aERpdjoKLSAgICAgICAgICAgIGNvbXBp
bGVBcml0aERpdk1vZCgpOworICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2KCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcml0aE1vZDoKLSAgICAgICAgICAgIGNvbXBpbGVB
cml0aERpdk1vZCgpOworICAgICAgICAgICAgY29tcGlsZUFyaXRoTW9kKCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBBcml0aE1pbjoKICAgICAgICAgY2FzZSBBcml0aE1heDoK
QEAgLTI4Niw2ICszMjYsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBBcml0aEFiczoKICAg
ICAgICAgICAgIGNvbXBpbGVBcml0aEFicygpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQXJpdGhTaW46CisgICAgICAgICAgICBjb21waWxlQXJpdGhTaW4oKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFyaXRoQ29zOgorICAgICAgICAgICAgY29tcGlsZUFy
aXRoQ29zKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcml0aFNxcnQ6Cisg
ICAgICAgICAgICBjb21waWxlQXJpdGhTcXJ0KCk7CisgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBBcml0aE5lZ2F0ZToKICAgICAgICAgICAgIGNvbXBpbGVBcml0aE5lZ2F0ZSgpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0zMjIsNiArMzcxLDkgQEAgcHJpdmF0ZToKICAgICAgICAg
Y2FzZSBDaGVja0Z1bmN0aW9uOgogICAgICAgICAgICAgY29tcGlsZUNoZWNrRnVuY3Rpb24oKTsK
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENoZWNrRXhlY3V0YWJsZToKKyAgICAg
ICAgICAgIGNvbXBpbGVDaGVja0V4ZWN1dGFibGUoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CiAgICAgICAgICAgICBjb21waWxlQXJyYXlp
ZnlUb1N0cnVjdHVyZSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMzQsNiArMzg2LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgY2FzZSBHZXRCeUlkOgogICAgICAgICAgICAgY29tcGlsZUdldEJ5
SWQoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CiAg
ICAgICAgIGNhc2UgUHV0QnlJZDoKICAgICAgICAgICAgIGNvbXBpbGVQdXRCeUlkKCk7CiAgICAg
ICAgICAgICBicmVhazsKQEAgLTM3Miw5ICs0MjUsMTggQEAgcHJpdmF0ZToKICAgICAgICAgY2Fz
ZSBOZXdBcnJheUJ1ZmZlcjoKICAgICAgICAgICAgIGNvbXBpbGVOZXdBcnJheUJ1ZmZlcigpOwog
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTmV3QXJyYXlXaXRoU2l6ZToKKyAgICAg
ICAgICAgIGNvbXBpbGVOZXdBcnJheVdpdGhTaXplKCk7CisgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICAgICAgICAgIGNvbXBpbGVB
bGxvY2F0ZVByb3BlcnR5U3RvcmFnZSgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgVG9TdHJpbmc6CisgICAgICAgICAgICBjb21waWxlVG9TdHJpbmcoKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIE1ha2VSb3BlOgorICAgICAgICAgICAgY29tcGlsZU1ha2VS
b3BlKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdHJpbmdDaGFyQXQ6CiAg
ICAgICAgICAgICBjb21waWxlU3RyaW5nQ2hhckF0KCk7CiAgICAgICAgICAgICBicmVhazsKQEAg
LTM5Niw2ICs0NTgsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBOb3RpZnlXcml0ZToKICAg
ICAgICAgICAgIGNvbXBpbGVOb3RpZnlXcml0ZSgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgR2V0Q2FsbGVlOgorICAgICAgICAgICAgY29tcGlsZUdldENhbGxlZSgpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR2V0U2NvcGU6CisgICAgICAgICAgICBjb21w
aWxlR2V0U2NvcGUoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdldE15U2Nv
cGU6CiAgICAgICAgICAgICBjb21waWxlR2V0TXlTY29wZSgpOwogICAgICAgICAgICAgYnJlYWs7
CkBAIC00NjYsNiArNTM0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgSW50NTJUb1ZhbHVl
OgogICAgICAgICAgICAgY29tcGlsZUludDUyVG9WYWx1ZSgpOwogICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkOgorICAgICAgICAgICAgY29t
cGlsZUNoZWNrQXJndW1lbnRzTm90Q3JlYXRlZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQ291bnRFeGVjdXRpb246CisgICAgICAgICAgICBjb21waWxlQ291bnRFeGVjdXRp
b24oKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFN0b3JlQmFycmllcjoKICAg
ICAgICAgICAgIGNvbXBpbGVTdG9yZUJhcnJpZXIoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
NDgyLDYgKzU1Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVmFyaWFibGVXYXRjaHBvaW50
OgogICAgICAgICBjYXNlIEZ1bmN0aW9uUmVlbnRyeVdhdGNocG9pbnQ6CiAgICAgICAgIGNhc2Ug
VHlwZWRBcnJheVdhdGNocG9pbnQ6CisgICAgICAgIGNhc2UgQWxsb2NhdGlvblByb2ZpbGVXYXRj
aHBvaW50OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODE1LDI0ICs4OTAsNTMgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0pTVmFs
dWUobV9ub2RlLT5jaGlsZDIoKSkpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBjb21waWxlQWRk
U3ViKCkKKyAgICB2b2lkIGNvbXBpbGVBcml0aEFkZE9yU3ViKCkKICAgICB7CiAgICAgICAgIGJv
b2wgaXNTdWIgPSAgbV9ub2RlLT5vcCgpID09IEFyaXRoU3ViOwogICAgICAgICBzd2l0Y2ggKG1f
bm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgSW50MzJVc2U6IHsKICAgICAg
ICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
ICAgICBMVmFsdWUgcmlnaHQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKLSAgICAgICAg
ICAgIExWYWx1ZSByZXN1bHQgPSBpc1N1YiA/IG1fb3V0LnN1YihsZWZ0LCByaWdodCkgOiBtX291
dC5hZGQobGVmdCwgcmlnaHQpOwogCiAgICAgICAgICAgICBpZiAoIXNob3VsZENoZWNrT3ZlcmZs
b3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICBzZXRJbnQzMihyZXN1
bHQpOworICAgICAgICAgICAgICAgIHNldEludDMyKGlzU3ViID8gbV9vdXQuc3ViKGxlZnQsIHJp
Z2h0KSA6IG1fb3V0LmFkZChsZWZ0LCByaWdodCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBMVmFsdWUgb3ZlcmZsb3cgPSBpc1N1YiA/IG1f
b3V0LnN1YldpdGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0KSA6IG1fb3V0LmFkZFdpdGhPdmVyZmxv
dzMyKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIExWYWx1ZSByZXN1bHQ7CisgICAgICAgICAg
ICBpZiAoIWlzU3ViKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQuYWRkV2l0aE92
ZXJmbG93MzIobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMigpKSkgeworICAgICAgICAgICAgICAgICAgICBh
ZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y2hp
bGQyKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuZXh0cmFj
dFZhbHVlKHJlc3VsdCwgMCksIGxlZnQsIFZhbHVlRm9ybWF0SW50MzIpOworICAgICAgICAgICAg
ICAgIH0gZWxzZSBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDEoKSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBt
X25vZGUtPmNoaWxkMSgpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
b3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCByaWdodCwgVmFsdWVGb3JtYXRJbnQzMik7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBtX291dC5zdWJXaXRoT3ZlcmZsb3czMihsZWZ0LCByaWdodCk7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQyKCkpKSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCA9IGxlZnQgLSByaWdodAorICAgICAgICAg
ICAgICAgICAgICAvLyByZXN1bHQgLSBsZWZ0ID0gLXJpZ2h0CisgICAgICAgICAgICAgICAgICAg
IC8vIHJpZ2h0ID0gbGVmdCAtIHJlc3VsdAorICAgICAgICAgICAgICAgICAgICBhZGRBdmFpbGFi
bGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQyKCksIFN1
YlJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCwgbV9vdXQuZXh0cmFjdFZh
bHVlKHJlc3VsdCwgMCksIFZhbHVlRm9ybWF0SW50MzIpOworICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDEoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gcmVzdWx0ID0gbGVmdCAtIHJpZ2h0CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCAr
IHJpZ2h0ID0gbGVmdAorICAgICAgICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQxKCksIEFkZFJlY292ZXJ5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIHJp
Z2h0LCBWYWx1ZUZvcm1hdEludDMyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5l
eHRyYWN0VmFsdWUob3ZlcmZsb3csIDEpKTsKLSAgICAgICAgICAgIHNldEludDMyKHJlc3VsdCk7
CisgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0
cmFjdFZhbHVlKHJlc3VsdCwgMSkpOworICAgICAgICAgICAgc2V0SW50MzIobV9vdXQuZXh0cmFj
dFZhbHVlKHJlc3VsdCwgMCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgICAgIApAQCAtODQ4LDExICs5NTIsNDEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dJbnQ1MihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAg
ICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAg
ICAgICAgTFZhbHVlIHJlc3VsdCA9IGlzU3ViID8gbV9vdXQuc3ViKGxlZnQsIHJpZ2h0KSA6IG1f
b3V0LmFkZChsZWZ0LCByaWdodCk7CiAKLSAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvdyA9IGlz
U3ViID8gbV9vdXQuc3ViV2l0aE92ZXJmbG93NjQobGVmdCwgcmlnaHQpIDogbV9vdXQuYWRkV2l0
aE92ZXJmbG93NjQobGVmdCwgcmlnaHQpOwotICAgICAgICAgICAgc3BlY3VsYXRlKEludDUyT3Zl
cmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93LCAxKSk7Ci0g
ICAgICAgICAgICBzZXRJbnQ1MihyZXN1bHQpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdDsK
KyAgICAgICAgICAgIGlmICghaXNTdWIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291
dC5hZGRXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdodCk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQyKCkpKSB7CisgICAgICAgICAg
ICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAg
bV9ub2RlLT5jaGlsZDIoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBt
X291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgbGVmdCwgVmFsdWVGb3JtYXRJbnQ1Mik7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMSgpKSkgewor
ICAgICAgICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1fbm9kZS0+Y2hpbGQxKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAgICAg
ICAgICAgICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIHJpZ2h0LCBWYWx1ZUZvcm1h
dEludDUyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG9lc0tpbGwobV9ub2RlLT5j
aGlsZDIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0ID0gbGVmdCAtIHJpZ2h0
CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCAtIGxlZnQgPSAtcmlnaHQKKyAgICAgICAg
ICAgICAgICAgICAgLy8gcmlnaHQgPSBsZWZ0IC0gcmVzdWx0CisgICAgICAgICAgICAgICAgICAg
IGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5j
aGlsZDIoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0LCBtX291
dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgVmFsdWVGb3JtYXRJbnQ1Mik7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMSgpKSkgeworICAgICAgICAg
ICAgICAgICAgICAvLyByZXN1bHQgPSBsZWZ0IC0gcmlnaHQKKyAgICAgICAgICAgICAgICAgICAg
Ly8gcmVzdWx0ICsgcmlnaHQgPSBsZWZ0CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJs
ZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDEoKSwgQWRk
UmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUocmVz
dWx0LCAwKSwgcmlnaHQsIFZhbHVlRm9ybWF0SW50NTIpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgc3BlY3VsYXRlKEludDUyT3ZlcmZsb3csIG5vVmFs
dWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMSkpOworICAgICAgICAgICAgc2V0
SW50NTIobV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtODc2LDExICsxMDEwLDE1IEBAIHByaXZhdGU6
CiAgICAgICAgIGNhc2UgSW50MzJVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93
SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dJ
bnQzMihtX25vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291
dC5tdWwobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgcmVz
dWx0OwogCi0gICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxvdyhtX25vZGUtPmFyaXRo
TW9kZSgpKSkgeworICAgICAgICAgICAgaWYgKCFzaG91bGRDaGVja092ZXJmbG93KG1fbm9kZS0+
YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0Lm11bChsZWZ0LCBy
aWdodCk7CisgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBMVmFsdWUgb3ZlcmZs
b3dSZXN1bHQgPSBtX291dC5tdWxXaXRoT3ZlcmZsb3czMihsZWZ0LCByaWdodCk7CiAgICAgICAg
ICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RW
YWx1ZShvdmVyZmxvd1Jlc3VsdCwgMSkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0
LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFy
aXRoTW9kZSgpKSkgewpAQCAtOTA0LDExICsxMDQyLDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBJbnQ1MktpbmQga2luZDsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93V2hpY2hldmVy
SW50NTIobV9ub2RlLT5jaGlsZDEoKSwga2luZCk7CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQg
PSBsb3dJbnQ1MihtX25vZGUtPmNoaWxkMigpLCBvcHBvc2l0ZShraW5kKSk7Ci0gICAgICAgICAg
ICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQubXVsKGxlZnQsIHJpZ2h0KTsKLQogCiAgICAgICAgICAg
ICBMVmFsdWUgb3ZlcmZsb3dSZXN1bHQgPSBtX291dC5tdWxXaXRoT3ZlcmZsb3c2NChsZWZ0LCBy
aWdodCk7CiAgICAgICAgICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAw
LCBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKKyAgICAgICAgICAgIExW
YWx1ZSByZXN1bHQgPSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOwogCiAg
ICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aE1vZGUo
KSkpIHsKICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IEZUTF9ORVdfQkxP
Q0sobV9vdXQsICgiQXJpdGhNdWwgc2xvdyBjYXNlIikpOwpAQCAtOTM5LDE2ICsxMDc2LDE2IEBA
IHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIGNvbXBpbGVBcml0aERpdk1v
ZCgpCisgICAgdm9pZCBjb21waWxlQXJpdGhEaXYoKQogICAgIHsKICAgICAgICAgc3dpdGNoICht
X25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewogICAgICAgICBjYXNlIEludDMyVXNlOiB7CiAgICAg
ICAgICAgICBMVmFsdWUgbnVtZXJhdG9yID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgICAgICBMVmFsdWUgZGVub21pbmF0b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigp
KTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgTEJhc2ljQmxvY2sgdW5zYWZlRGVub21pbmF0
b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIHVuc2FmZSBkZW5vbWluYXRv
ciIpKTsKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxP
Q0sobV9vdXQsICgiQXJpdGhEaXZNb2QgY29udGludWF0aW9uIikpOwotICAgICAgICAgICAgTEJh
c2ljQmxvY2sgZG9uZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXZNb2QgZG9uZSIp
KTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIHVuc2FmZURlbm9taW5hdG9yID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJBcml0aERpdiB1bnNhZmUgZGVub21pbmF0b3IiKSk7CisgICAgICAgICAg
ICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRo
RGl2IGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGRvbmUgPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IGRvbmUiKSk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIFZlY3RvcjxWYWx1ZUZyb21CbG9jaywgMz4gcmVzdWx0czsKICAgICAgICAgICAgIApA
QCAtOTkxLDggKzExMjgsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8o
Y29udGludWF0aW9uLCBkb25lKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNob3Vs
ZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7Ci0gICAgICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgemVyb051bWVyYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJp
dGhEaXZNb2QgemVybyBudW1lcmF0b3IiKSk7Ci0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sg
bnVtZXJhdG9yQ29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1v
ZCBudW1lcmF0b3IgY29udGludWF0aW9uIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IHplcm9OdW1lcmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IHplcm8gbnVt
ZXJhdG9yIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG51bWVyYXRvckNvbnRpbnVh
dGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgbnVtZXJhdG9yIGNvbnRpbnVh
dGlvbiIpKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5icmFuY2go
bV9vdXQuaXNaZXJvMzIobnVtZXJhdG9yKSwgemVyb051bWVyYXRvciwgbnVtZXJhdG9yQ29udGlu
dWF0aW9uKTsKICAgICAgICAgICAgICAgICAKQEAgLTEwMDYsMTcgKzExNDMsMTUgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhudW1lcmF0b3JDb250aW51YXRpb24s
IGlubmVyTGFzdE5leHQpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAg
ICBMVmFsdWUgZGl2TW9kUmVzdWx0ID0gbV9ub2RlLT5vcCgpID09IEFyaXRoRGl2Ci0gICAgICAg
ICAgICAgICAgPyBtX291dC5kaXYobnVtZXJhdG9yLCBkZW5vbWluYXRvcikKLSAgICAgICAgICAg
ICAgICA6IG1fb3V0LnJlbShudW1lcmF0b3IsIGRlbm9taW5hdG9yKTsKKyAgICAgICAgICAgIExW
YWx1ZSByZXN1bHQgPSBtX291dC5kaXYobnVtZXJhdG9yLCBkZW5vbWluYXRvcik7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGlmIChzaG91bGRDaGVja092ZXJmbG93KG1fbm9kZS0+YXJpdGhN
b2RlKCkpKSB7CiAgICAgICAgICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgICAg
ICBPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLAotICAgICAgICAgICAgICAgICAgICBtX291dC5ub3RF
cXVhbChtX291dC5tdWwoZGl2TW9kUmVzdWx0LCBkZW5vbWluYXRvciksIG51bWVyYXRvcikpOwor
ICAgICAgICAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChtX291dC5tdWwocmVzdWx0LCBkZW5v
bWluYXRvciksIG51bWVyYXRvcikpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAg
ICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IoZGl2TW9kUmVzdWx0KSk7CisgICAg
ICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IocmVzdWx0KSk7CiAgICAgICAgICAg
ICBtX291dC5qdW1wKGRvbmUpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhkb25lLCBsYXN0TmV4dCk7CkBAIC0xMDI2LDkgKzExNjEsOCBAQCBwcml2YXRlOgogICAg
ICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOdW1iZXJVc2U6IHsKLSAgICAgICAg
ICAgIExWYWx1ZSBDMSA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAg
IExWYWx1ZSBDMiA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgIHNl
dERvdWJsZShtX25vZGUtPm9wKCkgPT0gQXJpdGhEaXYgPyBtX291dC5kb3VibGVEaXYoQzEsIEMy
KSA6IG1fb3V0LmRvdWJsZVJlbShDMSwgQzIpKTsKKyAgICAgICAgICAgIHNldERvdWJsZShtX291
dC5kb3VibGVEaXYoCisgICAgICAgICAgICAgICAgbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkp
LCBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgICAgICAKQEAgLTEwMzgsNiArMTE3Miw5OSBAQCBwcml2YXRlOgogICAg
ICAgICB9CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZUFyaXRoTW9kKCkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKKyAgICAgICAgY2FzZSBJ
bnQzMlVzZTogeworICAgICAgICAgICAgTFZhbHVlIG51bWVyYXRvciA9IGxvd0ludDMyKG1fbm9k
ZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIGRlbm9taW5hdG9yID0gbG93SW50MzIo
bV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IHVuc2FmZURlbm9taW5hdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCB1bnNh
ZmUgZGVub21pbmF0b3IiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24g
PSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGRvbmUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9k
IGRvbmUiKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZlY3RvcjxWYWx1ZUZyb21CbG9j
aywgMz4gcmVzdWx0czsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGFkanVzdGVk
RGVub21pbmF0b3IgPSBtX291dC5hZGQoZGVub21pbmF0b3IsIG1fb3V0LmludDMyT25lKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmFib3ZlKGFkanVzdGVk
RGVub21pbmF0b3IsIG1fb3V0LmludDMyT25lKSwgY29udGludWF0aW9uLCB1bnNhZmVEZW5vbWlu
YXRvcik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0g
bV9vdXQuYXBwZW5kVG8odW5zYWZlRGVub21pbmF0b3IsIGNvbnRpbnVhdGlvbik7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBuZWcyVG9UaGUzMSA9IG1fb3V0LmNvbnN0SW50MzIo
LTIxNDc0ODM2NDctMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEZJWE1FOiAtMl4z
MSAvIC0xIHdpbGwgYWN0dWFsbHkgeWllbGQgbmVnYXRpdmUgemVybywgc28gd2UgY291bGQgaGF2
ZSBhCisgICAgICAgICAgICAvLyBzZXBhcmF0ZSBjYXNlIGZvciB0aGF0LiBCdXQgaXQgcHJvYmFi
bHkgZG9lc24ndCBtYXR0ZXIgc28gbXVjaC4KKyAgICAgICAgICAgIGlmIChzaG91bGRDaGVja092
ZXJmbG93KG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgTFZhbHVlIGNv
bmQgPSBtX291dC5iaXRPcihtX291dC5pc1plcm8zMihkZW5vbWluYXRvciksIG1fb3V0LmVxdWFs
KG51bWVyYXRvciwgbmVnMlRvVGhlMzEpKTsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3Zl
cmZsb3csIG5vVmFsdWUoKSwgMCwgY29uZCk7CisgICAgICAgICAgICAgICAgbV9vdXQuanVtcChj
b250aW51YXRpb24pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBU
aGlzIGlzIHRoZSBjYXNlIHdoZXJlIHdlIGNvbnZlcnQgdGhlIHJlc3VsdCB0byBhbiBpbnQgYWZ0
ZXIgd2UncmUgZG9uZS4gU28sCisgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRlbm9taW5hdG9y
IGlzIHplcm8sIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUgcmVzdWx0IHNob3VsZCBiZSB6ZXJv
LgorICAgICAgICAgICAgICAgIC8vIElmIHRoZSBkZW5vbWluYXRvciBpcyBub3QgemVybyAoaS5l
LiBpdCdzIC0xIGJlY2F1c2Ugd2UncmUgZ3VhcmRlZCBieSB0aGUKKyAgICAgICAgICAgICAgICAv
LyBjaGVjayBhYm92ZSkgYW5kIHRoZSBudW1lcmF0b3IgaXMgLTJeMzEgdGhlbiB0aGUgcmVzdWx0
IHNob3VsZCBiZSAtMl4zMS4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBMQmFz
aWNCbG9jayBtb2RCeVplcm8gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG1vZHVs
byBieSB6ZXJvIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdE1vZEJ5WmVybyA9
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2Qgbm90IG1vZHVsbyBieSB6ZXJvIikpOwor
ICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5lZzJUb1RoZTMxQnlOZWcxID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJBcml0aE1vZCAtMl4zMS8tMSIpKTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvMzIoZGVub21pbmF0b3IpLCBt
b2RCeVplcm8sIG5vdE1vZEJ5WmVybyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8obW9kQnlaZXJvLCBub3RNb2RCeVplcm8pOworICAgICAgICAgICAg
ICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5pbnQzMlplcm8pKTsKKyAgICAg
ICAgICAgICAgICBtX291dC5qdW1wKGRvbmUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdE1vZEJ5WmVybywgbmVnMlRvVGhlMzFCeU5lZzEpOwor
ICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5lcXVhbChudW1lcmF0b3IsIG5lZzJU
b1RoZTMxKSwgbmVnMlRvVGhlMzFCeU5lZzEsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obmVnMlRvVGhlMzFCeU5lZzEsIGNv
bnRpbnVhdGlvbik7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9y
KG1fb3V0LmludDMyWmVybykpOworICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNv
bnRpbnVhdGlvbiwgZG9uZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSByZW1h
aW5kZXIgPSBtX291dC5yZW0obnVtZXJhdG9yLCBkZW5vbWluYXRvcik7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTW9k
ZSgpKSkgeworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5lZ2F0aXZlTnVtZXJhdG9yID0g
RlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBuZWdhdGl2ZSBudW1lcmF0b3IiKSk7Cisg
ICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbnVtZXJhdG9yQ29udGludWF0aW9uID0gRlRMX05F
V19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBudW1lcmF0b3IgY29udGludWF0aW9uIikpOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAg
ICAgICAgICAgbV9vdXQubGVzc1RoYW4obnVtZXJhdG9yLCBtX291dC5pbnQzMlplcm8pLAorICAg
ICAgICAgICAgICAgICAgICBuZWdhdGl2ZU51bWVyYXRvciwgbnVtZXJhdG9yQ29udGludWF0aW9u
KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpbm5lckxh
c3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obmVnYXRpdmVOdW1lcmF0b3IsIG51bWVyYXRvckNvbnRp
bnVhdGlvbik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc3BlY3VsYXRlKE5l
Z2F0aXZlWmVybywgbm9WYWx1ZSgpLCAwLCBtX291dC5pc1plcm8zMihyZW1haW5kZXIpKTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5qdW1wKG51bWVyYXRvckNvbnRp
bnVhdGlvbik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5k
VG8obnVtZXJhdG9yQ29udGludWF0aW9uLCBpbm5lckxhc3ROZXh0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHJl
bWFpbmRlcikpOworICAgICAgICAgICAgbV9vdXQuanVtcChkb25lKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZG9uZSwgbGFzdE5leHQpOworICAgICAgICAgICAg
CisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5waGkobV9vdXQuaW50MzIsIHJlc3VsdHMpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2Fz
ZSBOdW1iZXJVc2U6IHsKKyAgICAgICAgICAgIHNldERvdWJsZSgKKyAgICAgICAgICAgICAgICBt
X291dC5kb3VibGVSZW0obG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dEb3VibGUobV9u
b2RlLT5jaGlsZDIoKSkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
ICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKwogICAgIHZv
aWQgY29tcGlsZUFyaXRoTWluT3JNYXgoKQogICAgIHsKICAgICAgICAgc3dpdGNoIChtX25vZGUt
PmJpbmFyeVVzZUtpbmQoKSkgewpAQCAtMTExNCw2ICsxMzQxLDEyIEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKworICAgIHZvaWQgY29tcGlsZUFyaXRo
U2luKCkgeyBzZXREb3VibGUobV9vdXQuZG91YmxlU2luKGxvd0RvdWJsZShtX25vZGUtPmNoaWxk
MSgpKSkpOyB9CisKKyAgICB2b2lkIGNvbXBpbGVBcml0aENvcygpIHsgc2V0RG91YmxlKG1fb3V0
LmRvdWJsZUNvcyhsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSkpKTsgfQorCisgICAgdm9pZCBj
b21waWxlQXJpdGhTcXJ0KCkgeyBzZXREb3VibGUobV9vdXQuZG91YmxlU3FydChsb3dEb3VibGUo
bV9ub2RlLT5jaGlsZDEoKSkpKTsgfQogICAgIAogICAgIHZvaWQgY29tcGlsZUFyaXRoTmVnYXRl
KCkKICAgICB7CkBAIC0xMTIxLDE2ICsxMzU0LDE4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2Ug
SW50MzJVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0ludDMyKG1fbm9kZS0+
Y2hpbGQxKCkpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9v
dXQubmVnKHZhbHVlKTsKLSAgICAgICAgICAgIGlmIChzaG91bGRDaGVja092ZXJmbG93KG1fbm9k
ZS0+YXJpdGhNb2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRDaGVja05lZ2F0
aXZlWmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAgICAgICAgICAgICAgICAvLyBX
ZSBkb24ndCBoYXZlIGEgbmVnYXRlLXdpdGgtb3ZlcmZsb3cgaW50cmluc2ljLiBIb3BlZnVsbHkg
dGhpcwotICAgICAgICAgICAgICAgICAgICAvLyBkb2VzIHRoZSB0cmljaywgdGhvdWdoLgotICAg
ICAgICAgICAgICAgICAgICBMVmFsdWUgb3ZlcmZsb3dSZXN1bHQgPSBtX291dC5zdWJXaXRoT3Zl
cmZsb3czMihtX291dC5pbnQzMlplcm8sIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgc3Bl
Y3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxv
d1Jlc3VsdCwgMSkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAg
ICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQudGVzdElzWmVybzMyKHZh
bHVlLCBtX291dC5jb25zdEludDMyKDB4N2ZmZmZmZmYpKSk7Ci0KKyAgICAgICAgICAgIExWYWx1
ZSByZXN1bHQ7CisgICAgICAgICAgICBpZiAoIXNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5h
cml0aE1vZGUoKSkpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubmVnKHZhbHVlKTsK
KyAgICAgICAgICAgIGVsc2UgaWYgKCFzaG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFy
aXRoTW9kZSgpKSkgeworICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhdmUgYSBuZWdhdGUt
d2l0aC1vdmVyZmxvdyBpbnRyaW5zaWMuIEhvcGVmdWxseSB0aGlzCisgICAgICAgICAgICAgICAg
Ly8gZG9lcyB0aGUgdHJpY2ssIHRob3VnaC4KKyAgICAgICAgICAgICAgICBMVmFsdWUgb3ZlcmZs
b3dSZXN1bHQgPSBtX291dC5zdWJXaXRoT3ZlcmZsb3czMihtX291dC5pbnQzMlplcm8sIHZhbHVl
KTsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9v
dXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7CisgICAgICAgICAgICAgICAgcmVz
dWx0ID0gbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAwKTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCks
IDAsIG1fb3V0LnRlc3RJc1plcm8zMih2YWx1ZSwgbV9vdXQuY29uc3RJbnQzMigweDdmZmZmZmZm
KSkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0Lm5lZyh2YWx1ZSk7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIHNldEludDMyKHJlc3VsdCk7CkBAIC0xMTUxLDcgKzEzODYs
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SW50NTIobV9ub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgb3ZlcmZsb3dSZXN1bHQgPSBtX291dC5z
dWJXaXRoT3ZlcmZsb3c2NChtX291dC5pbnQ2NFplcm8sIHZhbHVlKTsKICAgICAgICAgICAgIHNw
ZWN1bGF0ZShJbnQ1Mk92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShv
dmVyZmxvd1Jlc3VsdCwgMSkpOwotICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0Lm5l
Zyh2YWx1ZSk7CisgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuZXh0cmFjdFZhbHVl
KG92ZXJmbG93UmVzdWx0LCAwKTsKICAgICAgICAgICAgIHNwZWN1bGF0ZShOZWdhdGl2ZVplcm8s
IG5vVmFsdWUoKSwgMCwgbV9vdXQuaXNaZXJvNjQocmVzdWx0KSk7CiAgICAgICAgICAgICBzZXRJ
bnQ1MihyZXN1bHQpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjc1LDYgKzE1MTAsMTcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKGNlbGwsIHdlYWtQb2ludGVyKG1f
bm9kZS0+ZnVuY3Rpb24oKSkpKTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlQ2hlY2tF
eGVjdXRhYmxlKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgCisgICAgICAgIHNwZWN1bGF0ZSgKKyAgICAgICAgICAgIEJh
ZEV4ZWN1dGFibGUsIGpzVmFsdWVWYWx1ZShjZWxsKSwgbV9ub2RlLT5jaGlsZDEoKS5ub2RlKCks
CisgICAgICAgICAgICBtX291dC5ub3RFcXVhbCgKKyAgICAgICAgICAgICAgICBtX291dC5sb2Fk
UHRyKGNlbGwsIG1faGVhcHMuSlNGdW5jdGlvbl9leGVjdXRhYmxlKSwKKyAgICAgICAgICAgICAg
ICB3ZWFrUG9pbnRlcihtX25vZGUtPmV4ZWN1dGFibGUoKSkpKTsKKyAgICB9CisgICAgCiAgICAg
dm9pZCBjb21waWxlQXJyYXlpZnlUb1N0cnVjdHVyZSgpCiAgICAgewogICAgICAgICBMVmFsdWUg
Y2VsbCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC0xMzcwLDggKzE2MTYsOCBAQCBw
cml2YXRlOgogICAgICAgICAKICAgICAgICAgTFZhbHVlIGNhbGwgPSBtX291dC5jYWxsKAogICAg
ICAgICAgICAgbV9vdXQucGF0Y2hwb2ludEludDY0SW50cmluc2ljKCksCi0gICAgICAgICAgICBt
X291dC5jb25zdEludDMyKHN0YWNrbWFwSUQpLCBtX291dC5jb25zdEludDMyKHNpemVPZkdldEJ5
SWQoKSksCi0gICAgICAgICAgICBjb25zdE51bGwobV9vdXQucmVmOCksIG1fb3V0LmNvbnN0SW50
MzIoMiksIG1fY2FsbEZyYW1lLCBiYXNlKTsKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50NjQo
c3RhY2ttYXBJRCksIG1fb3V0LmNvbnN0SW50MzIoc2l6ZU9mR2V0QnlJZCgpKSwKKyAgICAgICAg
ICAgIGNvbnN0TnVsbChtX291dC5yZWY4KSwgbV9vdXQuY29uc3RJbnQzMigxKSwgYmFzZSk7CiAg
ICAgICAgIHNldEluc3RydWN0aW9uQ2FsbGluZ0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJlZ0Nh
bGxDb252KTsKICAgICAgICAgc2V0SlNWYWx1ZShjYWxsKTsKICAgICAgICAgCkBAIC0xMzk1LDgg
KzE2NDEsOCBAQCBwcml2YXRlOgogICAgICAgICAKICAgICAgICAgTFZhbHVlIGNhbGwgPSBtX291
dC5jYWxsKAogICAgICAgICAgICAgbV9vdXQucGF0Y2hwb2ludFZvaWRJbnRyaW5zaWMoKSwKLSAg
ICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoc3RhY2ttYXBJRCksIG1fb3V0LmNvbnN0SW50MzIo
c2l6ZU9mUHV0QnlJZCgpKSwKLSAgICAgICAgICAgIGNvbnN0TnVsbChtX291dC5yZWY4KSwgbV9v
dXQuY29uc3RJbnQzMigzKSwgbV9jYWxsRnJhbWUsIGJhc2UsIHZhbHVlKTsKKyAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50NjQoc3RhY2ttYXBJRCksIG1fb3V0LmNvbnN0SW50MzIoc2l6ZU9mUHV0
QnlJZCgpKSwKKyAgICAgICAgICAgIGNvbnN0TnVsbChtX291dC5yZWY4KSwgbV9vdXQuY29uc3RJ
bnQzMigyKSwgYmFzZSwgdmFsdWUpOwogICAgICAgICBzZXRJbnN0cnVjdGlvbkNhbGxpbmdDb252
ZW50aW9uKGNhbGwsIExMVk1BbnlSZWdDYWxsQ29udik7CiAgICAgICAgIAogICAgICAgICBtX2Z0
bFN0YXRlLnB1dEJ5SWRzLmFwcGVuZChQdXRCeUlkRGVzY3JpcHRvcigKQEAgLTE0NjMsMjAgKzE3
MDksMjAgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6CiAgICAgICAgIGNh
c2UgQXJyYXk6OkRvdWJsZToKICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewotICAg
ICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyKGxvd1N0b3JhZ2UobV9ub2RlLT5jaGlsZDIo
KSksIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpOworICAgICAgICAgICAgc2V0SW50
MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUobG93U3RvcmFnZShtX25vZGUtPmNoaWxkMigpKSwg
bV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFycmF5OjpTdHJpbmc6IHsKICAg
ICAgICAgICAgIExWYWx1ZSBzdHJpbmcgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAg
ICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyKHN0cmluZywgbV9oZWFwcy5KU1N0cmluZ19s
ZW5ndGgpKTsKKyAgICAgICAgICAgIHNldEludDMyKG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0
cmluZywgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBpZiAo
aXNUeXBlZFZpZXcobV9ub2RlLT5hcnJheU1vZGUoKS50eXBlZEFycmF5VHlwZSgpKSkgewogICAg
ICAgICAgICAgICAgIHNldEludDMyKAotICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzIo
bG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwgbV9oZWFwcy5KU0FycmF5QnVmZmVyVmlld19sZW5n
dGgpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUobG93Q2Vs
bChtX25vZGUtPmNoaWxkMSgpKSwgbV9oZWFwcy5KU0FycmF5QnVmZmVyVmlld19sZW5ndGgpKTsK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKQEAg
LTE1MTgsNyArMTc2NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1f
b3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCi0gICAgICAg
ICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJm
bHlfcHVibGljTGVuZ3RoKSksCisgICAgICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2Fk
MzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwK
ICAgICAgICAgICAgICAgICBzbG93Q2FzZSwgZmFzdENhc2UpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGZhc3RDYXNlLCBz
bG93Q2FzZSk7CkBAIC0xNTY1LDcgKzE4MTEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVx
dWFsKAotICAgICAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyKHN0b3JhZ2UsIG1f
aGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpLAorICAgICAgICAgICAgICAgICAgICBpbmRl
eCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVi
bGljTGVuZ3RoKSksCiAgICAgICAgICAgICAgICAgc2xvd0Nhc2UsIGluQm91bmRzKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRU
byhpbkJvdW5kcywgYm94UGF0aCk7CkBAIC0xNjg3LDYgKzE5MzMsNyBAQCBwcml2YXRlOgogICAg
ICAgICBFZGdlIGNoaWxkMiA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKTsKICAgICAg
ICAgRWRnZSBjaGlsZDMgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMik7CiAgICAgICAg
IEVkZ2UgY2hpbGQ0ID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDMpOworICAgICAgICBF
ZGdlIGNoaWxkNSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCA0KTsKICAgICAgICAgCiAg
ICAgICAgIHN3aXRjaCAobV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpIHsKICAgICAgICAgY2Fz
ZSBBcnJheTo6R2VuZXJpYzogewpAQCAtMTgwMSw2ICsyMDQ4LDkgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX291dC56ZXJvRXh0KGluZGV4LCBtX291dC5pbnRQdHIp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKGxvZ0VsZW1l
bnRTaXplKHR5cGUpKSkpKTsKICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBMVHlw
ZSByZWZUeXBlOworICAgICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZVRvU3RvcmU7CisgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKGlzSW50KHR5cGUpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIExWYWx1ZSBpbnRWYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChj
aGlsZDMudXNlS2luZCgpKSB7CkBAIC0xODc2LDM0ICsyMTI2LDUzIEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVsZW1lbnRTaXpl
KHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG1fb3V0LnN0b3JlOChtX291dC5pbnRDYXN0KGludFZhbHVlLCBtX291dC5pbnQ4KSwg
cG9pbnRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvU3RvcmUgPSBtX291dC5p
bnRDYXN0KGludFZhbHVlLCBtX291dC5pbnQ4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
ZlR5cGUgPSBtX291dC5yZWY4OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0
b3JlMTYobV9vdXQuaW50Q2FzdChpbnRWYWx1ZSwgbV9vdXQuaW50MTYpLCBwb2ludGVyKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9TdG9yZSA9IG1fb3V0LmludENhc3QoaW50VmFs
dWUsIG1fb3V0LmludDE2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlR5cGUgPSBtX291
dC5yZWYxNjsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
ICAgICBjYXNlIDQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBtX291dC5zdG9yZTMyKGludFZh
bHVlLCBwb2ludGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9TdG9yZSA9IGlu
dFZhbHVlOworICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZjMyOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIC8qICFpc0lu
dCh0eXBlKSAqLyB7CisgICAgICAgICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0RvdWJs
ZShjaGlsZDMpOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBUeXBlRmxvYXQzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHZh
bHVlVG9TdG9yZSA9IG1fb3V0LmZwQ2FzdCh2YWx1ZSwgbV9vdXQuZmxvYXRUeXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJlZlR5cGUgPSBtX291dC5yZWZGbG9hdDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVGbG9hdDY0
OgorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3JlID0gdmFsdWU7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZWZUeXBlID0gbV9vdXQucmVmRG91YmxlOwogICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIEFTU0VSVChpc0Zsb2F0KHR5cGUpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICBMVmFsdWUgdmFsdWUgPSBsb3dEb3VibGUoY2hpbGQzKTsKLSAgICAgICAgICAgICAgICBz
d2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgICAgICAgICBjYXNlIFR5cGVGbG9hdDMyOgotICAgICAg
ICAgICAgICAgICAgICBtX291dC5zdG9yZUZsb2F0KG1fb3V0LmZwQ2FzdCh2YWx1ZSwgbV9vdXQu
ZmxvYXRUeXBlKSwgcG9pbnRlcik7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIGNhc2UgVHlwZUZsb2F0NjQ6Ci0gICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0
b3JlRG91YmxlKHZhbHVlLCBwb2ludGVyKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1vZGUo
KS5pc0luQm91bmRzKCkpCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlKHZhbHVlVG9T
dG9yZSwgcG9pbnRlciwgcmVmVHlwZSk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlzSW5Cb3VuZHMgPSBGVExfTkVXX0JMT0NLKG1fb3V0
LCAoIlB1dEJ5VmFsIHR5cGVkIGFycmF5IGluIGJvdW5kcyBjYXNlIikpOworICAgICAgICAgICAg
ICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IlB1dEJ5VmFsIHR5cGVkIGFycmF5IGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbChpbmRleCwgbG93SW50MzIoY2hpbGQ1KSksCisgICAg
ICAgICAgICAgICAgICAgICAgICBjb250aW51YXRpb24sIGlzSW5Cb3VuZHMpOworICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBt
X291dC5hcHBlbmRUbyhpc0luQm91bmRzLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgICAg
ICAgICBtX291dC5zdG9yZSh2YWx1ZVRvU3RvcmUsIHBvaW50ZXIsIHJlZlR5cGUpOworICAgICAg
ICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxh
c3ROZXh0KTsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC0yMDYwLDYgKzIz
MjksMTA5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihtX25vZGUt
Pm51bUNvbnN0YW50cygpKSkpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVOZXdBcnJh
eVdpdGhTaXplKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBwdWJsaWNMZW5ndGggPSBsb3dJbnQz
MihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgCisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX25vZGUtPmNvZGVPcmlnaW4p
OworICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1
Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKAorICAgICAgICAgICAgbV9ub2Rl
LT5pbmRleGluZ1R5cGUoKSk7CisgICAgICAgIAorICAgICAgICBpZiAoIWdsb2JhbE9iamVjdC0+
aXNIYXZpbmdBQmFkVGltZSgpICYmICFoYXNBcnJheVN0b3JhZ2UobV9ub2RlLT5pbmRleGluZ1R5
cGUoKSkpIHsKKyAgICAgICAgICAgIEFTU0VSVCgKKyAgICAgICAgICAgICAgICBoYXNVbmRlY2lk
ZWQoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkKKyAgICAgICAgICAgICAgICB8fCBoYXNJbnQz
MihzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKQorICAgICAgICAgICAgICAgIHx8IGhhc0RvdWJs
ZShzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKQorICAgICAgICAgICAgICAgIHx8IGhhc0NvbnRp
Z3VvdXMoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkpOworCisgICAgICAgICAgICBMQmFzaWNC
bG9jayBmYXN0Q2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBm
YXN0IGNhc2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXJnZUNhc2UgPSBGVExfTkVX
X0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgbGFyZ2UgY2FzZSIpKTsKKyAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGZhaWxDYXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJh
eVdpdGhTaXplIGZhaWwgY2FzZSIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNl
ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIHNsb3cgY2FzZSIpKTsK
KyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1
YWwocHVibGljTGVuZ3RoLCBtX291dC5jb25zdEludDMyKE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgp
KSwKKyAgICAgICAgICAgICAgICBsYXJnZUNhc2UsIGZhc3RDYXNlKTsKKworICAgICAgICAgICAg
TEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhmYXN0Q2FzZSwgbGFyZ2VDYXNl
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgcm91bmQgdXAgdG8gQkFT
RV9WRUNUT1JfTEVOIGZvciBuZXcgQXJyYXkoYmxhaCkuCisgICAgICAgICAgICBMVmFsdWUgdmVj
dG9yTGVuZ3RoID0gcHVibGljTGVuZ3RoOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFs
dWUgcGF5bG9hZFNpemUgPQorICAgICAgICAgICAgICAgIG1fb3V0LnNobChtX291dC56ZXJvRXh0
KHZlY3Rvckxlbmd0aCwgbV9vdXQuaW50UHRyKSwgbV9vdXQuY29uc3RJbnRQdHIoMykpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgYnV0dGVyZmx5U2l6ZSA9IG1fb3V0LmFkZCgK
KyAgICAgICAgICAgICAgICBwYXlsb2FkU2l6ZSwgbV9vdXQuY29uc3RJbnRQdHIoc2l6ZW9mKElu
ZGV4aW5nSGVhZGVyKSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgZW5kT2ZT
dG9yYWdlID0gYWxsb2NhdGVCYXNpY1N0b3JhZ2VBbmRHZXRFbmQoYnV0dGVyZmx5U2l6ZSwgZmFp
bENhc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgYnV0dGVyZmx5ID0gbV9v
dXQuc3ViKGVuZE9mU3RvcmFnZSwgcGF5bG9hZFNpemUpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBMVmFsdWUgb2JqZWN0ID0gYWxsb2NhdGVPYmplY3Q8SlNBcnJheT4oCisgICAgICAgICAg
ICAgICAgbV9vdXQuY29uc3RJbnRQdHIoc3RydWN0dXJlKSwgYnV0dGVyZmx5LCBmYWlsQ2FzZSk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LnN0b3JlMzIocHVibGljTGVuZ3RoLCBi
dXR0ZXJmbHksIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCk7CisgICAgICAgICAgICBt
X291dC5zdG9yZTMyKHZlY3Rvckxlbmd0aCwgYnV0dGVyZmx5LCBtX2hlYXBzLkJ1dHRlcmZseV92
ZWN0b3JMZW5ndGgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaGFzRG91YmxlKG1f
bm9kZS0+aW5kZXhpbmdUeXBlKCkpKSB7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgaW5p
dExvb3AgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgZG91YmxlIGlu
aXQgbG9vcCIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpbml0RG9uZSA9IEZUTF9O
RVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBkb3VibGUgaW5pdCBkb25lIikpOwor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIG9yaWdpbmFs
SW5kZXggPSBtX291dC5hbmNob3IodmVjdG9yTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBWYWx1
ZUZyb21CbG9jayBvcmlnaW5hbFBvaW50ZXIgPSBtX291dC5hbmNob3IoYnV0dGVyZmx5KTsKKyAg
ICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQubm90WmVybzMyKHZlY3Rvckxlbmd0aCks
IGluaXRMb29wLCBpbml0RG9uZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
TEJhc2ljQmxvY2sgaW5pdExhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaW5pdExvb3AsIGluaXRE
b25lKTsKKyAgICAgICAgICAgICAgICBMVmFsdWUgaW5kZXggPSBtX291dC5waGkobV9vdXQuaW50
MzIsIG9yaWdpbmFsSW5kZXgpOworICAgICAgICAgICAgICAgIExWYWx1ZSBwb2ludGVyID0gbV9v
dXQucGhpKG1fb3V0LmludFB0ciwgb3JpZ2luYWxQb2ludGVyKTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBtX291dC5zdG9yZTY0KAorICAgICAgICAgICAgICAgICAgICBtX291
dC5jb25zdEludDY0KGJpdHdpc2VfY2FzdDxpbnQ2NF90PihRTmFOKSksCisgICAgICAgICAgICAg
ICAgICAgIFR5cGVkUG9pbnRlcihtX2hlYXBzLmluZGV4ZWREb3VibGVQcm9wZXJ0aWVzLmF0QW55
SW5kZXgoKSwgcG9pbnRlcikpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIExW
YWx1ZSBuZXh0SW5kZXggPSBtX291dC5zdWIoaW5kZXgsIG1fb3V0LmludDMyT25lKTsKKyAgICAg
ICAgICAgICAgICBhZGRJbmNvbWluZyhpbmRleCwgbV9vdXQuYW5jaG9yKG5leHRJbmRleCkpOwor
ICAgICAgICAgICAgICAgIGFkZEluY29taW5nKHBvaW50ZXIsIG1fb3V0LmFuY2hvcihtX291dC5h
ZGQocG9pbnRlciwgbV9vdXQuaW50UHRyRWlnaHQpKSk7CisgICAgICAgICAgICAgICAgbV9vdXQu
YnJhbmNoKG1fb3V0Lm5vdFplcm8zMihuZXh0SW5kZXgpLCBpbml0TG9vcCwgaW5pdERvbmUpOwor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGluaXREb25l
LCBpbml0TGFzdE5leHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAg
ICBWYWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKG9iamVjdCk7CisgICAg
ICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGxhcmdlQ2FzZSwgZmFpbENhc2UpOworICAgICAgICAgICAgVmFs
dWVGcm9tQmxvY2sgbGFyZ2VTdHJ1Y3R1cmUgPSBtX291dC5hbmNob3IobV9vdXQuY29uc3RJbnRQ
dHIoCisgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4
aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoQXJyYXlTdG9yYWdlKSkpOworICAgICAg
ICAgICAgbV9vdXQuanVtcChzbG93Q2FzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKGZhaWxDYXNlLCBzbG93Q2FzZSk7CisgICAgICAgICAgICBWYWx1ZUZyb21C
bG9jayBmYWlsU3RydWN0dXJlID0gbV9vdXQuYW5jaG9yKG1fb3V0LmNvbnN0SW50UHRyKHN0cnVj
dHVyZSkpOworICAgICAgICAgICAgbV9vdXQuanVtcChzbG93Q2FzZSk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dDYXNlLCBjb250aW51YXRpb24pOworICAg
ICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZVZhbHVlID0gbV9vdXQucGhpKAorICAgICAgICAgICAg
ICAgIG1fb3V0LmludFB0ciwgbGFyZ2VTdHJ1Y3R1cmUsIGZhaWxTdHJ1Y3R1cmUpOworICAgICAg
ICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcih2bUNhbGwoCisg
ICAgICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemUp
LAorICAgICAgICAgICAgICAgIG1fY2FsbEZyYW1lLCBzdHJ1Y3R1cmVWYWx1ZSwgcHVibGljTGVu
Z3RoKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwor
ICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkobV9vdXQuaW50UHRyLCBmYXN0UmVzdWx0
LCBzbG93UmVzdWx0KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVWYWx1ZSA9IG1fb3V0LnNlbGVjdCgKKyAgICAgICAg
ICAgIG1fb3V0LmFib3ZlT3JFcXVhbChwdWJsaWNMZW5ndGgsIG1fb3V0LmNvbnN0SW50MzIoTUlO
X1NQQVJTRV9BUlJBWV9JTkRFWCkpLAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIoCisg
ICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlw
ZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoQXJyYXlTdG9yYWdlKSksCisgICAgICAgICAgICBt
X291dC5jb25zdEludFB0cihzdHJ1Y3R1cmUpKTsKKyAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwo
bV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemUpLCBtX2NhbGxGcmFtZSwg
c3RydWN0dXJlVmFsdWUsIHB1YmxpY0xlbmd0aCkpOworICAgIH0KKyAgICAKICAgICB2b2lkIGNv
bXBpbGVBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSgpCiAgICAgewogICAgICAgICBTdHJ1Y3R1cmVU
cmFuc2l0aW9uRGF0YSYgZGF0YSA9IG1fbm9kZS0+c3RydWN0dXJlVHJhbnNpdGlvbkRhdGEoKTsK
QEAgLTIxMDIsNiArMjQ3NCwxNjAgQEAgcHJpdmF0ZToKICAgICAgICAgc2V0U3RvcmFnZShyZXN1
bHQpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVUb1N0cmluZygpCisgICAgeworICAg
ICAgICBzd2l0Y2ggKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CisgICAgICAgIGNhc2Ug
U3RyaW5nT2JqZWN0VXNlOiB7CisgICAgICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9u
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JDZWxs
KG1fbm9kZS0+Y2hpbGQxKCksIGNlbGwpOworICAgICAgICAgICAgbV9pbnRlcnByZXRlci5maWx0
ZXIobV9ub2RlLT5jaGlsZDEoKSwgU3BlY1N0cmluZ09iamVjdCk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTV3JhcHBl
ck9iamVjdF9pbnRlcm5hbFZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOiB7Cisg
ICAgICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CisgICAg
ICAgICAgICBMVmFsdWUgc3RydWN0dXJlID0gbV9vdXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpT
Q2VsbF9zdHJ1Y3R1cmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBu
b3RTdHJpbmcgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIFN0cmluZ09yU3RyaW5n
T2JqZWN0IG5vdCBzdHJpbmcgY2FzZSIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRp
bnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiVG9TdHJpbmcgU3RyaW5nT3JTdHJpbmdP
YmplY3QgY29udGludWF0aW9uIikpOworICAgICAgICAgICAgCisgICAgICAgICAgICBWYWx1ZUZy
b21CbG9jayBzaW1wbGVSZXN1bHQgPSBtX291dC5hbmNob3IoY2VsbCk7CisgICAgICAgICAgICBt
X291dC5icmFuY2goCisgICAgICAgICAgICAgICAgbV9vdXQuZXF1YWwoc3RydWN0dXJlLCBtX291
dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpLAorICAgICAgICAgICAg
ICAgIGNvbnRpbnVhdGlvbiwgbm90U3RyaW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
TEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RTdHJpbmcsIGNvbnRpbnVh
dGlvbik7CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JTdHJ1Y3R1cmUobV9u
b2RlLT5jaGlsZDEoKSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHVu
Ym94ZWRSZXN1bHQgPSBtX291dC5hbmNob3IoCisgICAgICAgICAgICAgICAgbV9vdXQubG9hZFB0
cihjZWxsLCBtX2hlYXBzLkpTV3JhcHBlck9iamVjdF9pbnRlcm5hbFZhbHVlKSk7CisgICAgICAg
ICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAgICAgc2V0
SlNWYWx1ZShtX291dC5waGkobV9vdXQuaW50NjQsIHNpbXBsZVJlc3VsdCwgdW5ib3hlZFJlc3Vs
dCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX2ludGVycHJldGVyLmZpbHRlcihtX25v
ZGUtPmNoaWxkMSgpLCBTcGVjU3RyaW5nIHwgU3BlY1N0cmluZ09iamVjdCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIENlbGxVc2U6
CisgICAgICAgIGNhc2UgVW50eXBlZFVzZTogeworICAgICAgICAgICAgTFZhbHVlIHZhbHVlOwor
ICAgICAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UpCisg
ICAgICAgICAgICAgICAgdmFsdWUgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHZhbHVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2ljQmxvY2sgaXNDZWxsID0g
RlRMX05FV19CTE9DSyhtX291dCwgKCJUb1N0cmluZyBDZWxsVXNlL1VudHlwZWRVc2UgaXMgY2Vs
bCIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdFN0cmluZyA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiVG9TdHJpbmcgQ2VsbFVzZS9VbnR5cGVkVXNlIG5vdCBzdHJpbmciKSk7CisgICAg
ICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IlRvU3RyaW5nIENlbGxVc2UvVW50eXBlZFVzZSBjb250aW51YXRpb24iKSk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIExWYWx1ZSBpc0NlbGxQcmVkaWNhdGU7CisgICAgICAgICAgICBpZiAo
bV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkKKyAgICAgICAgICAgICAgICBp
c0NlbGxQcmVkaWNhdGUgPSBtX291dC5ib29sZWFuVHJ1ZTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBpc0NlbGxQcmVkaWNhdGUgPSB0aGlzLT5pc0NlbGwodmFsdWUpOworICAg
ICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQ2VsbFByZWRpY2F0ZSwgaXNDZWxsLCBub3RTdHJpbmcp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0
LmFwcGVuZFRvKGlzQ2VsbCwgbm90U3RyaW5nKTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2Nr
IHNpbXBsZVJlc3VsdCA9IG1fb3V0LmFuY2hvcih2YWx1ZSk7CisgICAgICAgICAgICBMVmFsdWUg
aXNTdHJpbmdQcmVkaWNhdGU7CisgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS0+cHJl
ZGljdGlvbigpICYgU3BlY1N0cmluZykgeworICAgICAgICAgICAgICAgIGlzU3RyaW5nUHJlZGlj
YXRlID0gbV9vdXQuZXF1YWwoCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWRQdHIodmFs
dWUsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSksCisgICAgICAgICAgICAgICAgICAgIG1fb3V0
LmNvbnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICBpc1N0cmluZ1ByZWRpY2F0ZSA9IG1fb3V0LmJvb2xlYW5G
YWxzZTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc1N0cmluZ1ByZWRpY2F0ZSwgY29udGlu
dWF0aW9uLCBub3RTdHJpbmcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhub3RTdHJpbmcsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICBMVmFsdWUgb3BlcmF0
aW9uOworICAgICAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxV
c2UpCisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlv
blRvU3RyaW5nT25DZWxsKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBvcGVy
YXRpb24gPSBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uVG9TdHJpbmcpOworICAgICAgICAgICAg
VmFsdWVGcm9tQmxvY2sgY29udmVydGVkUmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZtQ2FsbChvcGVy
YXRpb24sIG1fY2FsbEZyYW1lLCB2YWx1ZSkpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250
aW51YXRpb24pOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250
aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKG1f
b3V0LmludDY0LCBzaW1wbGVSZXN1bHQsIGNvbnZlcnRlZFJlc3VsdCkpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGNvbXBpbGVNYWtlUm9wZSgpCisgICAg
eworICAgICAgICBMVmFsdWUga2lkc1szXTsKKyAgICAgICAgdW5zaWduZWQgbnVtS2lkczsKKyAg
ICAgICAga2lkc1swXSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIGtpZHNb
MV0gPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBpZiAobV9ub2RlLT5jaGls
ZDMoKSkgeworICAgICAgICAgICAga2lkc1syXSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDMoKSk7
CisgICAgICAgICAgICBudW1LaWRzID0gMzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGtpZHNbMl0gPSAwOworICAgICAgICAgICAgbnVtS2lkcyA9IDI7CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dQYXRoID0gRlRMX05FV19CTE9DSyhtX291dCwg
KCJNYWtlUm9wZSBzbG93IHBhdGgiKSk7CisgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlv
biA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTWFrZVJvcGUgY29udGludWF0aW9uIikpOworICAg
ICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5pbnNlcnROZXdCbG9j
a3NCZWZvcmUoc2xvd1BhdGgpOworICAgICAgICAKKyAgICAgICAgTWFya2VkQWxsb2NhdG9yJiBh
bGxvY2F0b3IgPQorICAgICAgICAgICAgdm0oKS5oZWFwLmFsbG9jYXRvckZvck9iamVjdFdpdGhJ
bW1vcnRhbFN0cnVjdHVyZURlc3RydWN0b3Ioc2l6ZW9mKEpTUm9wZVN0cmluZykpOworICAgICAg
ICAKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGFsbG9jYXRlQ2VsbCgKKyAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50UHRyKCZhbGxvY2F0b3IpLAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQ
dHIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpLAorICAgICAgICAgICAgc2xvd1BhdGgpOwor
ICAgICAgICAKKyAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRyWmVybywgcmVzdWx0
LCBtX2hlYXBzLkpTU3RyaW5nX3ZhbHVlKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG51bUtpZHM7ICsraSkKKyAgICAgICAgICAgIG1fb3V0LnN0b3JlUHRyKGtpZHNbaV0sIHJl
c3VsdCwgbV9oZWFwcy5KU1JvcGVTdHJpbmdfZmliZXJzW2ldKTsKKyAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gbnVtS2lkczsgaSA8IEpTUm9wZVN0cmluZzo6c19tYXhJbnRlcm5hbFJvcGVMZW5n
dGg7ICsraSkKKyAgICAgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmludFB0clplcm8sIHJl
c3VsdCwgbV9oZWFwcy5KU1JvcGVTdHJpbmdfZmliZXJzW2ldKTsKKyAgICAgICAgTFZhbHVlIGZs
YWdzID0gbV9vdXQubG9hZDMyKGtpZHNbMF0sIG1faGVhcHMuSlNTdHJpbmdfZmxhZ3MpOworICAg
ICAgICBMVmFsdWUgbGVuZ3RoID0gbV9vdXQubG9hZDMyKGtpZHNbMF0sIG1faGVhcHMuSlNTdHJp
bmdfbGVuZ3RoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IG51bUtpZHM7ICsr
aSkgeworICAgICAgICAgICAgZmxhZ3MgPSBtX291dC5iaXRBbmQoZmxhZ3MsIG1fb3V0LmxvYWQz
MihraWRzW2ldLCBtX2hlYXBzLkpTU3RyaW5nX2ZsYWdzKSk7CisgICAgICAgICAgICBsZW5ndGgg
PSBtX291dC5hZGQobGVuZ3RoLCBtX291dC5sb2FkMzIoa2lkc1tpXSwgbV9oZWFwcy5KU1N0cmlu
Z19sZW5ndGgpKTsKKyAgICAgICAgfQorICAgICAgICBtX291dC5zdG9yZTMyKAorICAgICAgICAg
ICAgbV9vdXQuYml0QW5kKG1fb3V0LmNvbnN0SW50MzIoSlNTdHJpbmc6OklzOEJpdCksIGZsYWdz
KSwKKyAgICAgICAgICAgIHJlc3VsdCwgbV9oZWFwcy5KU1N0cmluZ19mbGFncyk7CisgICAgICAg
IG1fb3V0LnN0b3JlMzIobGVuZ3RoLCByZXN1bHQsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKTsK
KyAgICAgICAgCisgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNo
b3IocmVzdWx0KTsKKyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAK
KyAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd1BhdGgsIGNvbnRpbnVhdGlvbik7CisgICAgICAg
IFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQ7CisgICAgICAgIHN3aXRjaCAobnVtS2lkcykgewor
ICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZt
Q2FsbCgKKyAgICAgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uTWFrZVJvcGUy
KSwgbV9jYWxsRnJhbWUsIGtpZHNbMF0sIGtpZHNbMV0pKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZt
Q2FsbCgKKyAgICAgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uTWFrZVJvcGUz
KSwgbV9jYWxsRnJhbWUsIGtpZHNbMF0sIGtpZHNbMV0sIGtpZHNbMl0pKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIG1fb3V0
Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNv
bnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShtX291
dC5pbnQ2NCwgZmFzdFJlc3VsdCwgc2xvd1Jlc3VsdCkpOworICAgIH0KKyAgICAKICAgICB2b2lk
IGNvbXBpbGVTdHJpbmdDaGFyQXQoKQogICAgIHsKICAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dD
ZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwpAQCAtMjExNCw3ICsyNjQwLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIAogICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICBtX291dC5hYm92
ZU9yRXF1YWwoCi0gICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihiYXNlLCBtX2hl
YXBzLkpTU3RyaW5nX2xlbmd0aCkpLAorICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2Fk
MzJOb25OZWdhdGl2ZShiYXNlLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCkpLAogICAgICAgICAg
ICAgc2xvd1BhdGgsIGZhc3RQYXRoKTsKICAgICAgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9j
ayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGZhc3RQYXRoLCBzbG93UGF0aCk7CkBAIC0yMjEw
LDcgKzI3MzYsOCBAQCBwcml2YXRlOgogICAgICAgICAKICAgICAgICAgc3BlY3VsYXRlKAogICAg
ICAgICAgICAgVW5jb3VudGFibGUsIG5vVmFsdWUoKSwgMCwKLSAgICAgICAgICAgIG1fb3V0LmFi
b3ZlT3JFcXVhbChpbmRleCwgbV9vdXQubG9hZDMyKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfbGVu
Z3RoKSkpOworICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKAorICAgICAgICAgICAgICAg
IGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShiYXNlLCBtX2hlYXBzLkpTU3RyaW5nX2xl
bmd0aCkpKTsKICAgICAgICAgCiAgICAgICAgIExWYWx1ZSBzdHJpbmdJbXBsID0gbV9vdXQubG9h
ZFB0cihiYXNlLCBtX2hlYXBzLkpTU3RyaW5nX3ZhbHVlKTsKICAgICAgICAgCkBAIC0yMzQ1LDYg
KzI4NzIsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9u
LCBsYXN0TmV4dCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZUdldENhbGxlZSgpCisg
ICAgeworICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWRQdHIoYWRkcmVzc0ZvcihKU1N0YWNr
OjpDYWxsZWUpKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgY29tcGlsZUdldFNjb3BlKCkKKyAg
ICB7CisgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9hZFB0cihsb3dDZWxsKG1fbm9kZS0+Y2hp
bGQxKCkpLCBtX2hlYXBzLkpTRnVuY3Rpb25fc2NvcGUpKTsKKyAgICB9CisgICAgCiAgICAgdm9p
ZCBjb21waWxlR2V0TXlTY29wZSgpCiAgICAgewogICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0Lmxv
YWRQdHIoYWRkcmVzc0ZvcigKQEAgLTI0ODgsMzUgKzMwMjUsMzcgQEAgcHJpdmF0ZToKICAgICAK
ICAgICB2b2lkIGNvbXBpbGVDYWxsT3JDb25zdHJ1Y3QoKQogICAgIHsKLSAgICAgICAgLy8gRklY
TUU6IFRoaXMgaXMgdW5hY2NlcHRhYmx5IHNsb3cuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjEKKyAgICAgICAgaW50IGR1bW15VGhpc0Fy
Z3VtZW50ID0gbV9ub2RlLT5vcCgpID09IENhbGwgPyAwIDogMTsKKyAgICAgICAgaW50IG51bVBh
c3NlZEFyZ3MgPSBtX25vZGUtPm51bUNoaWxkcmVuKCkgLSAxOworICAgICAgICBpbnQgbnVtQXJn
cyA9IG51bVBhc3NlZEFyZ3MgKyBkdW1teVRoaXNBcmd1bWVudDsKICAgICAgICAgCi0gICAgICAg
IEpfSklUT3BlcmF0aW9uX0UgZnVuY3Rpb24gPQotICAgICAgICAgICAgbV9ub2RlLT5vcCgpID09
IENhbGwgPyBvcGVyYXRpb25GVExDYWxsIDogb3BlcmF0aW9uRlRMQ29uc3RydWN0OworICAgICAg
ICBMVmFsdWUgY2FsbGVlID0gbG93SlNWYWx1ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwg
MCkpOwogICAgICAgICAKLSAgICAgICAgaW50IGR1bW15VGhpc0FyZ3VtZW50ID0gbV9ub2RlLT5v
cCgpID09IENhbGwgPyAwIDogMTsKKyAgICAgICAgdW5zaWduZWQgc3RhY2ttYXBJRCA9IG1fc3Rh
Y2ttYXBJRHMrKzsKICAgICAgICAgCi0gICAgICAgIGludCBudW1QYXNzZWRBcmdzID0gbV9ub2Rl
LT5udW1DaGlsZHJlbigpIC0gMTsKKyAgICAgICAgVmVjdG9yPExWYWx1ZT4gYXJndW1lbnRzOwor
ICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50NjQoc3RhY2ttYXBJRCkpOwor
ICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50MzIoc2l6ZU9mQ2FsbCgpKSk7
CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoY29uc3ROdWxsKG1fb3V0LnJlZjgpKTsKKyAgICAg
ICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDMyKDEgKyBKU1N0YWNrOjpDYWxsRnJh
bWVIZWFkZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUgKyBudW1BcmdzKSk7
CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoY2FsbGVlKTsgLy8gY2FsbGVlIC0+ICVyYXgKKyAg
ICAgICAgYXJndW1lbnRzLmFwcGVuZChnZXRVbmRlZihtX291dC5pbnQ2NCkpOyAvLyBjb2RlIGJs
b2NrCisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoZ2V0VW5kZWYobV9vdXQuaW50NjQpKTsgLy8g
c2NvcGUgY2hhaW4KKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjYWxsZWUpOyAvLyBjYWxsZWUg
LT4gc3RhY2sKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDY0KG51bUFy
Z3MpKTsgLy8gYXJndW1lbnQgY291bnQgYW5kIHplcm9zIGZvciB0aGUgdGFnCisgICAgICAgIGlm
IChkdW1teVRoaXNBcmd1bWVudCkKKyAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoZ2V0VW5k
ZWYobV9vdXQuaW50NjQpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1QYXNzZWRB
cmdzOyArK2kpCisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGxvd0pTVmFsdWUobV9ncmFw
aC52YXJBcmdDaGlsZChtX25vZGUsIDEgKyBpKSkpOwogICAgICAgICAKLSAgICAgICAgTFZhbHVl
IGNhbGxlZUZyYW1lID0gbV9vdXQuYWRkKAotICAgICAgICAgICAgbV9jYWxsRnJhbWUsCi0gICAg
ICAgICAgICBtX291dC5jb25zdEludFB0cihzaXplb2YoUmVnaXN0ZXIpICogdmlydHVhbFJlZ2lz
dGVyRm9yTG9jYWwobV9ncmFwaC5mcmFtZVJlZ2lzdGVyQ291bnQoKSkub2Zmc2V0KCkpKTsKKyAg
ICAgICAgY2FsbFByZWZsaWdodCgpOwogICAgICAgICAKLSAgICAgICAgbV9vdXQuc3RvcmUzMigK
LSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIobnVtUGFzc2VkQXJncyArIGR1bW15VGhpc0Fy
Z3VtZW50KSwKLSAgICAgICAgICAgIHBheWxvYWRGb3IoY2FsbGVlRnJhbWUsIEpTU3RhY2s6OkFy
Z3VtZW50Q291bnQpKTsKLSAgICAgICAgbV9vdXQuc3RvcmU2NChtX2NhbGxGcmFtZSwgY2FsbGVl
RnJhbWUsIG1faGVhcHMuQ2FsbEZyYW1lX2NhbGxlckZyYW1lKTsKLSAgICAgICAgbV9vdXQuc3Rv
cmU2NCgKLSAgICAgICAgICAgIGxvd0pTVmFsdWUobV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUs
IDApKSwKLSAgICAgICAgICAgIGFkZHJlc3NGb3IoY2FsbGVlRnJhbWUsIEpTU3RhY2s6OkNhbGxl
ZSkpOworICAgICAgICBMVmFsdWUgY2FsbCA9IG1fb3V0LmNhbGwobV9vdXQucGF0Y2hwb2ludElu
dDY0SW50cmluc2ljKCksIGFyZ3VtZW50cyk7CisgICAgICAgIHNldEluc3RydWN0aW9uQ2FsbGlu
Z0NvbnZlbnRpb24oY2FsbCwgTExWTVdlYktpdEpTQ2FsbENvbnYpOwogICAgICAgICAKLSAgICAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1QYXNzZWRBcmdzOyArK2kpIHsKLSAgICAgICAgICAg
IG1fb3V0LnN0b3JlNjQoCi0gICAgICAgICAgICAgICAgbG93SlNWYWx1ZShtX2dyYXBoLnZhckFy
Z0NoaWxkKG1fbm9kZSwgMSArIGkpKSwKLSAgICAgICAgICAgICAgICBhZGRyZXNzRm9yKGNhbGxl
ZUZyYW1lLCB2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChpICsgZHVtbXlUaGlzQXJndW1lbnQp
Lm9mZnNldCgpKSk7Ci0gICAgICAgIH0KKyAgICAgICAgbV9mdGxTdGF0ZS5qc0NhbGxzLmFwcGVu
ZChKU0NhbGwoc3RhY2ttYXBJRCwgbV9ub2RlKSk7CiAgICAgICAgIAotICAgICAgICBzZXRKU1Zh
bHVlKHZtQ2FsbChtX291dC5vcGVyYXRpb24oZnVuY3Rpb24pLCBjYWxsZWVGcmFtZSkpOworICAg
ICAgICBzZXRKU1ZhbHVlKGNhbGwpOwogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVKdW1w
KCkKQEAgLTI2MjcsNyArMzE2Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX291dC5ub3RFcXVhbCgKLSAgICAg
ICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyKHN0cmluZ1ZhbHVlLCBtX2hlYXBzLkpTU3RyaW5n
X2xlbmd0aCksCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0
cmluZ1ZhbHVlLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCksCiAgICAgICAgICAgICAgICAgICAg
IG1fb3V0LmludDMyT25lKSwKICAgICAgICAgICAgICAgICBsb3dCbG9jayhkYXRhLT5mYWxsVGhy
b3VnaCksIGxlbmd0aElzMSk7CiAgICAgICAgICAgICAKQEAgLTI3MDgsNiArMzI0NywyMiBAQCBw
cml2YXRlOgogICAgICAgICBpbmZvLm1faXNJbnZhbGlkYXRpb25Qb2ludCA9IHRydWU7CiAgICAg
fQogICAgIAorICAgIHZvaWQgY29tcGlsZUNoZWNrQXJndW1lbnRzTm90Q3JlYXRlZCgpCisgICAg
eworICAgICAgICBBU1NFUlQoIWlzRW1wdHlTcGVjdWxhdGlvbigKKyAgICAgICAgICAgIG1fc3Rh
dGUudmFyaWFibGVzKCkub3BlcmFuZCgKKyAgICAgICAgICAgICAgICBtX2dyYXBoLmFyZ3VtZW50
c1JlZ2lzdGVyRm9yKG1fbm9kZS0+Y29kZU9yaWdpbikpLm1fdHlwZSkpOworICAgICAgICAKKyAg
ICAgICAgVmlydHVhbFJlZ2lzdGVyIHJlZyA9IG1fZ3JhcGgubWFjaGluZUFyZ3VtZW50c1JlZ2lz
dGVyRm9yKG1fbm9kZS0+Y29kZU9yaWdpbik7CisgICAgICAgIHNwZWN1bGF0ZShBcmd1bWVudHNF
c2NhcGVkLCBub1ZhbHVlKCksIDAsIG1fb3V0Lm5vdFplcm82NChtX291dC5sb2FkNjQoYWRkcmVz
c0ZvcihyZWcpKSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGNvbXBpbGVDb3VudEV4ZWN1dGlv
bigpCisgICAgeworICAgICAgICBUeXBlZFBvaW50ZXIgY291bnRlciA9IG1fb3V0LmFic29sdXRl
KG1fbm9kZS0+ZXhlY3V0aW9uQ291bnRlcigpLT5hZGRyZXNzKCkpOworICAgICAgICBtX291dC5z
dG9yZTY0KG1fb3V0LmFkZChtX291dC5sb2FkNjQoY291bnRlciksIG1fb3V0LmNvbnN0SW50NjQo
MSkpLCBjb3VudGVyKTsKKyAgICB9CisgICAgCiAgICAgVHlwZWRQb2ludGVyIGJhc2VJbmRleChJ
bmRleGVkQWJzdHJhY3RIZWFwJiBoZWFwLCBMVmFsdWUgc3RvcmFnZSwgTFZhbHVlIGluZGV4LCBF
ZGdlIGVkZ2UpCiAgICAgewogICAgICAgICByZXR1cm4gbV9vdXQuYmFzZUluZGV4KApAQCAtMjky
NCw3ICszNDc5LDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIGlmIChKU0FycmF5QnVmZmVy
VmlldyogdmlldyA9IG1fZ3JhcGgudHJ5R2V0Rm9sZGFibGVWaWV3KGJhc2VFZGdlLm5vZGUoKSwg
YXJyYXlNb2RlKSkKICAgICAgICAgICAgIHJldHVybiBtX291dC5jb25zdEludDMyKHZpZXctPmxl
bmd0aCgpKTsKLSAgICAgICAgcmV0dXJuIG1fb3V0LmxvYWQzMihiYXNlLCBtX2hlYXBzLkpTQXJy
YXlCdWZmZXJWaWV3X2xlbmd0aCk7CisgICAgICAgIHJldHVybiBtX291dC5sb2FkMzJOb25OZWdh
dGl2ZShiYXNlLCBtX2hlYXBzLkpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0aCk7CiAgICAgfQogICAg
IAogICAgIExWYWx1ZSB0eXBlZEFycmF5TGVuZ3RoKEVkZ2UgYmFzZUVkZ2UsIEFycmF5TW9kZSBh
cnJheU1vZGUpCkBAIC0yOTQ4LDcgKzM1MDMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAg
ICAgICBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pKTsKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6
IHsKICAgICAgICAgICAgIExWYWx1ZSBzdHJpbmdWYWx1ZSA9IGxvd1N0cmluZyhtX25vZGUtPmNo
aWxkMSgpKTsKLSAgICAgICAgICAgIExWYWx1ZSBsZW5ndGggPSBtX291dC5sb2FkMzIoc3RyaW5n
VmFsdWUsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKTsKKyAgICAgICAgICAgIExWYWx1ZSBsZW5n
dGggPSBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdHJpbmdWYWx1ZSwgbV9oZWFwcy5KU1N0cmlu
Z19sZW5ndGgpOwogICAgICAgICAgICAgcmV0dXJuIG1fb3V0Lm5vdEVxdWFsKGxlbmd0aCwgbV9v
dXQuaW50MzJaZXJvKTsKICAgICAgICAgfQogICAgICAgICBjYXNlIFVudHlwZWRVc2U6IHsKQEAg
LTMwODIsNyArMzYzNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVh
dGlvbikKICAgICB7CiAgICAgICAgIExWYWx1ZSBpc05vdEluQm91bmRzID0gbV9vdXQuYWJvdmVP
ckVxdWFsKAotICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihzdG9yYWdlLCBtX2hlYXBz
LkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsKKyAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2Fk
MzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsK
ICAgICAgICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSkgewogICAgICAg
ICAgICAgTEJhc2ljQmxvY2sgbm90SW5Cb3VuZHNDYXNlID0KICAgICAgICAgICAgICAgICBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIlB1dEJ5VmFsIG5vdCBpbiBib3VuZHMiKSk7CkBAIC0zMDk0LDcg
KzM2NDksNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBt
X291dC5hcHBlbmRUbyhub3RJbkJvdW5kc0Nhc2UsIHBlcmZvcm1TdG9yZSk7CiAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICBMVmFsdWUgaXNPdXRPZkJvdW5kcyA9IG1fb3V0LmFib3ZlT3JF
cXVhbCgKLSAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyKHN0b3JhZ2UsIG1faGVh
cHMuQnV0dGVyZmx5X3ZlY3Rvckxlbmd0aCkpOworICAgICAgICAgICAgICAgIGluZGV4LCBtX291
dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV92ZWN0b3JMZW5n
dGgpKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghbV9ub2RlLT5hcnJheU1v
ZGUoKS5pc091dE9mQm91bmRzKCkpCiAgICAgICAgICAgICAgICAgc3BlY3VsYXRlKE91dE9mQm91
bmRzLCBub1ZhbHVlKCksIDAsIGlzT3V0T2ZCb3VuZHMpOwpAQCAtMzcxOCw2ICs0MjczLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEtub3duSW50MzJVc2U6
CiAgICAgICAgIGNhc2UgS25vd25OdW1iZXJVc2U6CisgICAgICAgIGNhc2UgS25vd25TdHJpbmdV
c2U6CiAgICAgICAgICAgICBBU1NFUlQoIW1faW50ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2soZWRn
ZSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSW50MzJVc2U6CkBAIC0zNzQx
LDYgKzQyOTcsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAg
ICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBTdHJpbmdPYmplY3RVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3Qo
ZWRnZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09i
amVjdFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09yU3RyaW5nT2JqZWN0KGVkZ2Up
OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUmVhbE51bWJlclVzZToKICAgICAg
ICAgICAgIHNwZWN1bGF0ZVJlYWxOdW1iZXIoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKQEAg
LTM5MjgsNiArNDQ5MCw1NSBAQCBwcml2YXRlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRn
ZSwgbG93Q2VsbChlZGdlKSk7CiAgICAgfQogICAgIAorICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5n
T2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIGlmICghbV9pbnRlcnByZXRlci5uZWVk
c1R5cGVDaGVjayhlZGdlLCBTcGVjU3RyaW5nT2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgCisgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvckNlbGwoZWRnZSwgbG93
Q2VsbChlZGdlKSk7CisgICAgICAgIG1faW50ZXJwcmV0ZXIuZmlsdGVyKGVkZ2UsIFNwZWNTdHJp
bmdPYmplY3QpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09yU3RyaW5n
T2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIGlmICghbV9pbnRlcnByZXRlci5uZWVk
c1R5cGVDaGVjayhlZGdlLCBTcGVjU3RyaW5nIHwgU3BlY1N0cmluZ09iamVjdCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBMQmFzaWNCbG9jayBub3RTdHJpbmcgPSBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIlNwZWN1bGF0ZSBTdHJpbmdPclN0cmluZ09iamVjdCBub3Qg
c3RyaW5nIGNhc2UiKSk7CisgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9O
RVdfQkxPQ0sobV9vdXQsICgiU3BlY3VsYXRlIFN0cmluZ09yU3RyaW5nT2JqZWN0IGNvbnRpbnVh
dGlvbiIpKTsKKyAgICAgICAgCisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291dC5sb2Fk
UHRyKGxvd0NlbGwoZWRnZSksIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSk7CisgICAgICAgIG1f
b3V0LmJyYW5jaCgKKyAgICAgICAgICAgIG1fb3V0LmVxdWFsKHN0cnVjdHVyZSwgbV9vdXQuY29u
c3RJbnRQdHIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSwKKyAgICAgICAgICAgIGNvbnRp
bnVhdGlvbiwgbm90U3RyaW5nKTsKKyAgICAgICAgCisgICAgICAgIExCYXNpY0Jsb2NrIGxhc3RO
ZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90U3RyaW5nLCBjb250aW51YXRpb24pOworICAgICAgICBz
cGVjdWxhdGVTdHJpbmdPYmplY3RGb3JTdHJ1Y3R1cmUoZWRnZSwgc3RydWN0dXJlKTsKKyAgICAg
ICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAKKyAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIAorICAgICAgICBtX2ludGVy
cHJldGVyLmZpbHRlcihlZGdlLCBTcGVjU3RyaW5nIHwgU3BlY1N0cmluZ09iamVjdCk7CisgICAg
fQorICAgIAorICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yQ2VsbChFZGdlIGVkZ2Us
IExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yU3Ry
dWN0dXJlKGVkZ2UsIG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJl
KSk7CisgICAgfQorICAgIAorICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yU3RydWN0
dXJlKEVkZ2UgZWRnZSwgTFZhbHVlIHN0cnVjdHVyZSkKKyAgICB7CisgICAgICAgIFN0cnVjdHVy
ZSogc3RyaW5nT2JqZWN0U3RydWN0dXJlID0KKyAgICAgICAgICAgIG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKG1fbm9kZS0+Y29kZU9yaWdpbiktPnN0cmluZ09iamVjdFN0cnVjdHVyZSgpOworICAg
ICAgICAKKyAgICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShlZGdlKS5tX2N1cnJlbnRLbm93blN0
cnVjdHVyZS5pc1N1YnNldE9mKFN0cnVjdHVyZVNldChzdHJpbmdPYmplY3RTdHJ1Y3R1cmUpKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIHNwZWN1bGF0ZSgKKyAgICAg
ICAgICAgIE5vdFN0cmluZ09iamVjdCwgbm9WYWx1ZSgpLCAwLAorICAgICAgICAgICAgbV9vdXQu
bm90RXF1YWwoc3RydWN0dXJlLCB3ZWFrUG9pbnRlcihzdHJpbmdPYmplY3RTdHJ1Y3R1cmUpKSk7
CisgICAgfQorICAgIAogICAgIHZvaWQgc3BlY3VsYXRlTm9uTnVsbE9iamVjdChFZGdlIGVkZ2Us
IExWYWx1ZSBjZWxsKQogICAgIHsKICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IG1fb3V0Lmxv
YWRQdHIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlKTsKQEAgLTQxMDYsMTggKzQ3MTcs
MTMgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKG1vZGUgPT0gTm9FeGNlcHRpb25zKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICAgICAgTEJhc2ljQmxvY2sgZGlkSGF2ZUV4Y2Vw
dGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiRGlkIGhhdmUgZXhjZXB0aW9uIikpOwogICAg
ICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkV4
Y2VwdGlvbiBjaGVjayBjb250aW51YXRpb24iKSk7CiAgICAgICAgIAogICAgICAgICBtX291dC5i
cmFuY2goCiAgICAgICAgICAgICBtX291dC5ub3RaZXJvNjQobV9vdXQubG9hZDY0KG1fb3V0LmFi
c29sdXRlKHZtKCkuYWRkcmVzc09mRXhjZXB0aW9uKCkpKSksCi0gICAgICAgICAgICBkaWRIYXZl
RXhjZXB0aW9uLCBjb250aW51YXRpb24pOwotICAgICAgICAKLSAgICAgICAgTEJhc2ljQmxvY2sg
bGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhkaWRIYXZlRXhjZXB0aW9uLCBjb250aW51YXRpb24p
OwotICAgICAgICAvLyBGSVhNRTogSGFuZGxlIGV4Y2VwdGlvbnMuIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjIKLSAgICAgICAgbV9vdXQuY3Jhc2goKTsKKyAg
ICAgICAgICAgIG1faGFuZGxlRXhjZXB0aW9ucywgY29udGludWF0aW9uKTsKICAgICAgICAgCi0g
ICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICBt
X291dC5hcHBlbmRUbyhjb250aW51YXRpb24pOwogICAgIH0KICAgICAKICAgICBMQmFzaWNCbG9j
ayBsb3dCbG9jayhCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTQxMzMsOCArNDczOSwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgYXBwZW5kT1NSRXhpdCgKICAgICAgICAgRXhpdEtpbmQga2luZCwgRm9y
bWF0dGVkVmFsdWUgbG93VmFsdWUsIE5vZGUqIGhpZ2hWYWx1ZSwgTFZhbHVlIGZhaWxDb25kaXRp
b24pCiAgICAgewotICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQorICAg
ICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBkYXRh
TG9nKCIgICAgT1NSIGV4aXQgIyIsIG1fZnRsU3RhdGUuaml0Q29kZS0+b3NyRXhpdC5zaXplKCks
ICIgd2l0aCBhdmFpbGFiaWxpdHk6ICIsIG1fYXZhaWxhYmlsaXR5LCAiXG4iKTsKKyAgICAgICAg
ICAgIGlmICghbV9hdmFpbGFibGVSZWNvdmVyaWVzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICBkYXRhTG9nKCIgICAgICAgIEF2YWlsYWJsZSByZWNvdmVyaWVzOiAiLCBsaXN0RHVtcChtX2F2
YWlsYWJsZVJlY292ZXJpZXMpLCAiXG4iKTsKKyAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVCht
X2Z0bFN0YXRlLmppdENvZGUtPm9zckV4aXQuc2l6ZSgpID09IG1fZnRsU3RhdGUuZmluYWxpemVy
LT5vc3JFeGl0LnNpemUoKSk7CiAgICAgICAgIApAQCAtNDE3OCw3ICs0Nzg3LDYgQEAgcHJpdmF0
ZToKICAgICAgICAgT1NSRXhpdCYgZXhpdCwgRXhpdEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBG
b3JtYXR0ZWRWYWx1ZSBsb3dWYWx1ZSwKICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQog
ICAgIHsKLSAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX2NhbGxGcmFtZSk7CiAgICAgICAgIGlm
ICghIWxvd1ZhbHVlKQogICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChsb3dWYWx1ZS52YWx1
ZSgpKTsKICAgICAgICAgCkBAIC00MjQ2LDcgKzQ4NTQsNyBAQCBwcml2YXRlOgogICAgIHsKICAg
ICAgICAgZXhpdC5tX3N0YWNrbWFwSUQgPSBtX3N0YWNrbWFwSURzKys7CiAgICAgICAgIGFyZ3Vt
ZW50cy5pbnNlcnQoMCwgbV9vdXQuY29uc3RJbnQzMihNYWNyb0Fzc2VtYmxlcjo6bWF4SnVtcFJl
cGxhY2VtZW50U2l6ZSgpKSk7Ci0gICAgICAgIGFyZ3VtZW50cy5pbnNlcnQoMCwgbV9vdXQuY29u
c3RJbnQzMihleGl0Lm1fc3RhY2ttYXBJRCkpOworICAgICAgICBhcmd1bWVudHMuaW5zZXJ0KDAs
IG1fb3V0LmNvbnN0SW50NjQoZXhpdC5tX3N0YWNrbWFwSUQpKTsKICAgICAgICAgCiAgICAgICAg
IG1fb3V0LmNhbGwobV9vdXQuc3RhY2ttYXBJbnRyaW5zaWMoKSwgYXJndW1lbnRzKTsKICAgICB9
CkBAIC00MjYwLDYgKzQ4NjgsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKHRyeVRvU2V0Q29u
c3RhbnRFeGl0QXJndW1lbnQoZXhpdCwgaW5kZXgsIG5vZGUpKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYXZhaWxhYmxl
UmVjb3Zlcmllcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgQXZhaWxhYmxlUmVjb3Zlcnkg
cmVjb3ZlcnkgPSBtX2F2YWlsYWJsZVJlY292ZXJpZXNbaV07CisgICAgICAgICAgICBpZiAocmVj
b3Zlcnkubm9kZSgpICE9IG5vZGUpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGV4aXQubV92YWx1ZXNbaW5kZXhdID0gRXhpdFZhbHVlOjpyZWNv
dmVyeSgKKyAgICAgICAgICAgICAgICByZWNvdmVyeS5vcGNvZGUoKSwgYXJndW1lbnRzLnNpemUo
KSwgYXJndW1lbnRzLnNpemUoKSArIDEsCisgICAgICAgICAgICAgICAgcmVjb3ZlcnkuZm9ybWF0
KCkpOworICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChyZWNvdmVyeS5sZWZ0KCkpOworICAg
ICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChyZWNvdmVyeS5yaWdodCgpKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgTG93ZXJlZE5vZGVWYWx1ZSB2
YWx1ZSA9IG1faW50MzJWYWx1ZXMuZ2V0KG5vZGUpOwogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1
ZSkpIHsKICAgICAgICAgICAgIGFkZEV4aXRBcmd1bWVudChleGl0LCBhcmd1bWVudHMsIGluZGV4
LCBWYWx1ZUZvcm1hdEludDMyLCB2YWx1ZS52YWx1ZSgpKTsKQEAgLTQzMjksNiArNDk1MCwyOSBA
QCBwcml2YXRlOgogICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHZhbHVlKTsKICAgICB9CiAgICAg
CisgICAgYm9vbCBkb2VzS2lsbChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBpZiAoZWRnZS5k
b2VzTm90S2lsbCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAg
ICAgaWYgKGVkZ2UtPmhhc0NvbnN0YW50KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIGFkZEF2YWls
YWJsZVJlY292ZXJ5KAorICAgICAgICBOb2RlKiBub2RlLCBSZWNvdmVyeU9wY29kZSBvcGNvZGUs
IExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQsIFZhbHVlRm9ybWF0IGZvcm1hdCkKKyAgICB7Cisg
ICAgICAgIG1fYXZhaWxhYmxlUmVjb3Zlcmllcy5hcHBlbmQoQXZhaWxhYmxlUmVjb3Zlcnkobm9k
ZSwgb3Bjb2RlLCBsZWZ0LCByaWdodCwgZm9ybWF0KSk7CisgICAgfQorICAgIAorICAgIHZvaWQg
YWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgIEVkZ2UgZWRnZSwgUmVjb3ZlcnlPcGNvZGUg
b3Bjb2RlLCBMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0LCBWYWx1ZUZvcm1hdCBmb3JtYXQpCisg
ICAgeworICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeShlZGdlLm5vZGUoKSwgb3Bjb2RlLCBs
ZWZ0LCByaWdodCwgZm9ybWF0KTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBzZXRJbnQzMihOb2Rl
KiBub2RlLCBMVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBtX2ludDMyVmFsdWVzLnNldChu
b2RlLCBMb3dlcmVkTm9kZVZhbHVlKHZhbHVlLCBtX2hpZ2hCbG9jaykpOwpAQCAtNDQzMSwzNSAr
NTA3NSwzNyBAQCBwcml2YXRlOgogICAgIH0KICAgICBUeXBlZFBvaW50ZXIgcGF5bG9hZEZvcihM
VmFsdWUgYmFzZSwgaW50IG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRkcmVzc0Zv
cihiYXNlLCBvcGVyYW5kLCBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnBheWxvYWQpKTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IoYmFzZSwgb3BlcmFu
ZCwgUGF5bG9hZE9mZnNldCk7CiAgICAgfQogICAgIFR5cGVkUG9pbnRlciB0YWdGb3IoTFZhbHVl
IGJhc2UsIGludCBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IoYmFz
ZSwgb3BlcmFuZCwgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0
cy50YWcpKTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IoYmFzZSwgb3BlcmFuZCwgVGFnT2Zm
c2V0KTsKICAgICB9Ci0gICAgVHlwZWRQb2ludGVyIGFkZHJlc3NGb3IoaW50IG9wZXJhbmQpCisg
ICAgVHlwZWRQb2ludGVyIGFkZHJlc3NGb3IoaW50IG9wZXJhbmQsIHB0cmRpZmZfdCBvZmZzZXQg
PSAwKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IobV9jYWxsRnJhbWUsIG9wZXJh
bmQpOworICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIob3BlcmFuZCks
IG9mZnNldCk7CiAgICAgfQotICAgIFR5cGVkUG9pbnRlciBhZGRyZXNzRm9yKFZpcnR1YWxSZWdp
c3RlciBvcGVyYW5kKQorICAgIFR5cGVkUG9pbnRlciBhZGRyZXNzRm9yKFZpcnR1YWxSZWdpc3Rl
ciBvcGVyYW5kLCBwdHJkaWZmX3Qgb2Zmc2V0ID0gMCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZGRyZXNzRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5kLm9mZnNldCgpKTsKKyAgICAgICAgaWYgKG9w
ZXJhbmQuaXNMb2NhbCgpKQorICAgICAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IobV9jYXB0dXJl
ZCwgb3BlcmFuZC5vZmZzZXQoKSwgb2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3Io
bV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zmc2V0KCksIG9mZnNldCk7CiAgICAgfQogICAgIFR5cGVk
UG9pbnRlciBwYXlsb2FkRm9yKGludCBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHBh
eWxvYWRGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQpOworICAgICAgICByZXR1cm4gcGF5bG9hZEZv
cihWaXJ0dWFsUmVnaXN0ZXIob3BlcmFuZCkpOwogICAgIH0KICAgICBUeXBlZFBvaW50ZXIgcGF5
bG9hZEZvcihWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBw
YXlsb2FkRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5kLm9mZnNldCgpKTsKKyAgICAgICAgcmV0dXJu
IGFkZHJlc3NGb3Iob3BlcmFuZCwgUGF5bG9hZE9mZnNldCk7CiAgICAgfQogICAgIFR5cGVkUG9p
bnRlciB0YWdGb3IoaW50IG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4gdGFnRm9yKG1f
Y2FsbEZyYW1lLCBvcGVyYW5kKTsKKyAgICAgICAgcmV0dXJuIHRhZ0ZvcihWaXJ0dWFsUmVnaXN0
ZXIob3BlcmFuZCkpOwogICAgIH0KICAgICBUeXBlZFBvaW50ZXIgdGFnRm9yKFZpcnR1YWxSZWdp
c3RlciBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZ0ZvcihtX2NhbGxGcmFtZSwg
b3BlcmFuZC5vZmZzZXQoKSk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKG9wZXJhbmQsIFRh
Z09mZnNldCk7CiAgICAgfQogICAgIAogICAgIFZNJiB2bSgpIHsgcmV0dXJuIG1fZ3JhcGgubV92
bTsgfQpAQCAtNDQ3MSw5ICs1MTE3LDExIEBAIHByaXZhdGU6CiAgICAgT3V0cHV0IG1fb3V0Owog
ICAgIAogICAgIExCYXNpY0Jsb2NrIG1fcHJvbG9ndWU7CisgICAgTEJhc2ljQmxvY2sgbV9oYW5k
bGVFeGNlcHRpb25zOwogICAgIEhhc2hNYXA8QmFzaWNCbG9jayosIExCYXNpY0Jsb2NrPiBtX2Js
b2NrczsKICAgICAKICAgICBMVmFsdWUgbV9jYWxsRnJhbWU7CisgICAgTFZhbHVlIG1fY2FwdHVy
ZWQ7CiAgICAgTFZhbHVlIG1fdGFnVHlwZU51bWJlcjsKICAgICBMVmFsdWUgbV90YWdNYXNrOwog
ICAgIApAQCAtNDQ4OSw2ICs1MTM3LDggQEAgcHJpdmF0ZToKICAgICAKICAgICBPcGVyYW5kczxB
dmFpbGFiaWxpdHk+IG1fYXZhaWxhYmlsaXR5OwogICAgIAorICAgIFZlY3RvcjxBdmFpbGFibGVS
ZWNvdmVyeSwgMz4gbV9hdmFpbGFibGVSZWNvdmVyaWVzOworICAgIAogICAgIEluUGxhY2VBYnN0
cmFjdFN0YXRlIG1fc3RhdGU7CiAgICAgQWJzdHJhY3RJbnRlcnByZXRlcjxJblBsYWNlQWJzdHJh
Y3RTdGF0ZT4gbV9pbnRlcnByZXRlcjsKICAgICBCYXNpY0Jsb2NrKiBtX2hpZ2hCbG9jazsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRW50cnkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRW50cnkuY3BwCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoCiB7CiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBDb2RlQmxvY2sqIGJhc2VsaW5lID0gZGZnQ29k
ZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKTsKKyAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJs
ZSA9IGRmZ0NvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCk7CiAgICAgREZHOjpKSVRDb2RlKiBk
ZmdDb2RlID0gZGZnQ29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZygpOwogICAgIEZvck9TUkVudHJ5
SklUQ29kZSogZW50cnlDb2RlID0gZW50cnlDb2RlQmxvY2stPmppdENvZGUoKS0+ZnRsRm9yT1NS
RW50cnkoKTsKICAgICAKQEAgLTgwLDcgKzgxLDcgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5KAog
ICAgICAgICBzY3JhdGNoW2xvY2FsXSA9IEpTVmFsdWU6OmVuY29kZSh2YWx1ZXMubG9jYWwobG9j
YWwpKTsKICAgICAKICAgICBpbnQgc3RhY2tGcmFtZVNpemUgPSBlbnRyeUNvZGUtPmNvbW1vbi5y
ZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCk7Ci0gICAgaWYgKCF2bS5p
bnRlcnByZXRlci0+c3RhY2soKS5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0
ZXJGb3JMb2NhbChzdGFja0ZyYW1lU2l6ZSkub2Zmc2V0KCldKSkgeworICAgIGlmICghdm0uaW50
ZXJwcmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IoJmV4ZWMtPnJlZ2lzdGVycygpW3Zp
cnR1YWxSZWdpc3RlckZvckxvY2FsKHN0YWNrRnJhbWVTaXplIC0gMSkub2Zmc2V0KCldKSkgewog
ICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAgICAgZGF0YUxvZygi
ICAgIE9TUiBmYWlsZWQgYmVjYXVzZSBzdGFjayBncm93dGggZmFpbGVkLlxuIik7CiAgICAgICAg
IHJldHVybiAwOwpAQCAtODgsNyArODksOSBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoCiAgICAg
CiAgICAgZXhlYy0+c2V0Q29kZUJsb2NrKGVudHJ5Q29kZUJsb2NrKTsKICAgICAKLSAgICB2b2lk
KiByZXN1bHQgPSBlbnRyeUNvZGUtPmFkZHJlc3NGb3JDYWxsKCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KTsKKyAgICB2b2lkKiByZXN1bHQgPSBlbnRyeUNvZGUtPmFkZHJlc3NGb3JDYWxsKAorICAgICAg
ICB2bSwgZXhlY3V0YWJsZSwgQXJpdHlDaGVja05vdFJlcXVpcmVkLAorICAgICAgICBSZWdpc3Rl
clByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKS5leGVjdXRhYmxlQWRkcmVzcygpOwogICAgIGlmIChP
cHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgIGRhdGFMb2coIiAgICBFbnRyeSB3aWxsIHN1
Y2NlZWQsIGdvaW5nIHRvIGFkZHJlc3MiLCBSYXdQb2ludGVyKHJlc3VsdCksICJcbiIpOwogICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0LmgJKHJldmlzaW9uIDE2
MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjYsNiArMTY2LDExIEBAIHN0cnVjdCBPU1JFeGl0IDogcHVibGljIERGRzo6
T1NSRXhpdEJhc2UKICAgICB1aW50MzJfdCBtX3N0YWNrbWFwSUQ7CiAgICAgCiAgICAgQ29kZUxv
Y2F0aW9uSnVtcCBjb2RlTG9jYXRpb25Gb3JSZXBhdGNoKENvZGVCbG9jayogZnRsQ29kZUJsb2Nr
KSBjb25zdDsKKyAgICAKKyAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRl
KENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2spCisgICAgeworICAgICAgICByZXR1cm4gT1NS
RXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKHByb2ZpbGVkQ29kZUJs
b2NrLCBFeGl0RnJvbUZUTCk7CisgICAgfQogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZU
TApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBp
bGVyLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPU1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw5IEBACiAjaW5j
bHVkZSAiRlRMT1NSRXhpdC5oIgogI2luY2x1ZGUgIkZUTFNhdmVSZXN0b3JlLmgiCiAjaW5jbHVk
ZSAiT3BlcmFuZHNJbmxpbmVzLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZlci5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CkBAIC02Miw5ICs2NCwxMCBAQCBzdGF0
aWMgdm9pZCBjb21waWxlU3R1YigKICAgICAKICAgICAvLyBXZSBuZWVkIHNjcmF0Y2ggc3BhY2Ug
dG8gc2F2ZSBhbGwgcmVnaXN0ZXJzIGFuZCB0byBidWlsZCB1cCB0aGUgSlNTdGFjay4KICAgICAv
LyBVc2UgYSBzY3JhdGNoIGJ1ZmZlciB0byB0cmFuc2ZlciBhbGwgdmFsdWVzLgotICAgIFNjcmF0
Y2hCdWZmZXIqIHNjcmF0Y2hCdWZmZXIgPSB2bS0+c2NyYXRjaEJ1ZmZlckZvclNpemUoc2l6ZW9m
KEVuY29kZWRKU1ZhbHVlKSAqIGV4aXQubV92YWx1ZXMuc2l6ZSgpICsgcmVxdWlyZWRTY3JhdGNo
TWVtb3J5U2l6ZUluQnl0ZXMoKSk7CisgICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9
IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6ZShzaXplb2YoRW5jb2RlZEpTVmFsdWUpICogZXhpdC5t
X3ZhbHVlcy5zaXplKCkgKyByZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpICsgaml0
Q29kZS0+dW53aW5kSW5mby5tX3JlZ2lzdGVycy5zaXplKCkgKiBzaXplb2YodWludDY0X3QpKTsK
ICAgICBFbmNvZGVkSlNWYWx1ZSogc2NyYXRjaCA9IHNjcmF0Y2hCdWZmZXIgPyBzdGF0aWNfY2Fz
dDxFbmNvZGVkSlNWYWx1ZSo+KHNjcmF0Y2hCdWZmZXItPmRhdGFCdWZmZXIoKSkgOiAwOwogICAg
IGNoYXIqIHJlZ2lzdGVyU2NyYXRjaCA9IGJpdHdpc2VfY2FzdDxjaGFyKj4oc2NyYXRjaCArIGV4
aXQubV92YWx1ZXMuc2l6ZSgpKTsKKyAgICB1aW50NjRfdCogdW53aW5kU2NyYXRjaCA9IGJpdHdp
c2VfY2FzdDx1aW50NjRfdCo+KHJlZ2lzdGVyU2NyYXRjaCArIHJlcXVpcmVkU2NyYXRjaE1lbW9y
eVNpemVJbkJ5dGVzKCkpOwogICAgIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHNhdmVBbGxSZWdp
c3RlcnMoKSBoYXMgYSBwbGFjZSBvbiB0b3Agb2YgdGhlIHN0YWNrIHRvIHNwaWxsIHRoaW5ncy4g
VGhhdAogICAgIC8vIGZ1bmN0aW9uIGV4cGVjdHMgdG8gYmUgYWJsZSB0byB1c2UgdG9wIG9mIHN0
YWNrIGZvciBzY3JhdGNoIG1lbW9yeS4KQEAgLTc1LDE4ICs3OCwyNyBAQCBzdGF0aWMgdm9pZCBj
b21waWxlU3R1YigKICAgICBqaXQucG9wKEdQUkluZm86OnJlZ1QwKTsKICAgICBqaXQucG9wKEdQ
UkluZm86OnJlZ1QwKTsKICAgICAKKyAgICBpZiAodm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlciAm
JiBjb2RlQmxvY2stPmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPmNvbXBpbGF0aW9uKSB7CisgICAg
ICAgIFByb2ZpbGVyOjpEYXRhYmFzZSYgZGF0YWJhc2UgPSAqdm0tPm1fcGVyQnl0ZWNvZGVQcm9m
aWxlcjsKKyAgICAgICAgUHJvZmlsZXI6OkNvbXBpbGF0aW9uKiBjb21waWxhdGlvbiA9IGNvZGVC
bG9jay0+aml0Q29kZSgpLT5kZmdDb21tb24oKS0+Y29tcGlsYXRpb24uZ2V0KCk7CisgICAgICAg
IAorICAgICAgICBQcm9maWxlcjo6T1NSRXhpdCogcHJvZmlsZXJFeGl0ID0gY29tcGlsYXRpb24t
PmFkZE9TUkV4aXQoCisgICAgICAgICAgICBleGl0SUQsIFByb2ZpbGVyOjpPcmlnaW5TdGFjayhk
YXRhYmFzZSwgY29kZUJsb2NrLCBleGl0Lm1fY29kZU9yaWdpbiksCisgICAgICAgICAgICBleGl0
Lm1fa2luZCwgaXNXYXRjaHBvaW50KGV4aXQubV9raW5kKSk7CisgICAgICAgIGppdC5hZGQ2NChD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJl
c3MocHJvZmlsZXJFeGl0LT5jb3VudGVyQWRkcmVzcygpKSk7CisgICAgfQorCiAgICAgLy8gVGhl
IHJlbWFpbmluZyBjb2RlIGFzc3VtZXMgdGhhdCBTUC9GUCBhcmUgaW4gdGhlIHNhbWUgc3RhdGUg
dGhhdCB0aGV5IHdlcmUgaW4gdGhlIEZUTCdzCiAgICAgLy8gY2FsbCBmcmFtZS4KICAgICAKICAg
ICAvLyBHZXQgdGhlIGNhbGwgZnJhbWUgYW5kIHRhZyB0aGluZ2llcy4KICAgICAvLyBSZXN0b3Jl
IHRoZSBleGl0aW5nIGZ1bmN0aW9uJ3MgY2FsbEZyYW1lIHZhbHVlIGludG8gYSByZWdUNAotICAg
IHJlY29yZC0+bG9jYXRpb25zWzBdLnJlc3RvcmVJbnRvKGppdCwgaml0Q29kZS0+c3RhY2ttYXBz
LCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86OnJlZ1Q0KTsKICAgICBqaXQubW92ZShNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVt
YmVyUmVnaXN0ZXIpOwogICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQo
VGFnTWFzayksIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CiAgICAgCiAgICAgLy8gRG8gc29t
ZSB2YWx1ZSBwcm9maWxpbmcuCiAgICAgaWYgKGV4aXQubV9wcm9maWxlVmFsdWVGb3JtYXQgIT0g
SW52YWxpZFZhbHVlRm9ybWF0KSB7Ci0gICAgICAgIHJlY29yZC0+bG9jYXRpb25zWzFdLnJlc3Rv
cmVJbnRvKGppdCwgaml0Q29kZS0+c3RhY2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86
OnJlZ1QwKTsKKyAgICAgICAgcmVjb3JkLT5sb2NhdGlvbnNbMF0ucmVzdG9yZUludG8oaml0LCBq
aXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVnVDApOwogICAg
ICAgICByZWJveEFjY29yZGluZ1RvRm9ybWF0KAogICAgICAgICAgICAgZXhpdC5tX3Byb2ZpbGVW
YWx1ZUZvcm1hdCwgaml0LCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86
OnJlZ1QyKTsKICAgICAgICAgCkBAIC0xMzAsNyArMTQyLDQ1IEBAIHN0YXRpYyB2b2lkIGNvbXBp
bGVTdHViKAogICAgICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzSW50MzI6CiAgICAgICAg
IGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNJbnQ1MjoKICAgICAgICAgY2FzZSBFeGl0VmFsdWVJ
bkpTU3RhY2tBc0RvdWJsZToKLSAgICAgICAgICAgIGppdC5sb2FkNjQoQXNzZW1ibHlIZWxwZXJz
OjphZGRyZXNzRm9yKHZhbHVlLnZpcnR1YWxSZWdpc3RlcigpLCBHUFJJbmZvOjpyZWdUNCksIEdQ
UkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgIGppdC5sb2FkNjQoQXNzZW1ibHlIZWxwZXJzOjph
ZGRyZXNzRm9yKHZhbHVlLnZpcnR1YWxSZWdpc3RlcigpKSwgR1BSSW5mbzo6cmVnVDApOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBFeGl0VmFsdWVSZWNv
dmVyeToKKyAgICAgICAgICAgIHJlY29yZC0+bG9jYXRpb25zW3ZhbHVlLnJpZ2h0UmVjb3ZlcnlB
cmd1bWVudCgpXS5yZXN0b3JlSW50bygKKyAgICAgICAgICAgICAgICBqaXQsIGppdENvZGUtPnN0
YWNrbWFwcywgcmVnaXN0ZXJTY3JhdGNoLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgICAgICAgICBy
ZWNvcmQtPmxvY2F0aW9uc1t2YWx1ZS5sZWZ0UmVjb3ZlcnlBcmd1bWVudCgpXS5yZXN0b3JlSW50
bygKKyAgICAgICAgICAgICAgICBqaXQsIGppdENvZGUtPnN0YWNrbWFwcywgcmVnaXN0ZXJTY3Jh
dGNoLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnJlY292ZXJ5
T3Bjb2RlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgQWRkUmVjb3Zlcnk6CisgICAgICAgICAgICAg
ICAgc3dpdGNoICh2YWx1ZS5yZWNvdmVyeUZvcm1hdCgpKSB7CisgICAgICAgICAgICAgICAgY2Fz
ZSBWYWx1ZUZvcm1hdEludDMyOgorICAgICAgICAgICAgICAgICAgICBqaXQuYWRkMzIoR1BSSW5m
bzo6cmVnVDEsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgY2FzZSBWYWx1ZUZvcm1hdEludDUyOgorICAgICAgICAgICAgICAgICAg
ICBqaXQuYWRkNjQoR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBTdWJSZWNvdmVyeToKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnJl
Y292ZXJ5Rm9ybWF0KCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFZhbHVlRm9ybWF0SW50MzI6
CisgICAgICAgICAgICAgICAgICAgIGppdC5zdWIzMihHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6
cmVnVDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNl
IFZhbHVlRm9ybWF0SW50NTI6CisgICAgICAgICAgICAgICAgICAgIGppdC5zdWI2NChHUFJJbmZv
OjpyZWdUMSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IAogICAgICAgICBkZWZhdWx0OgpAQCAtMTQxLDYgKzE5MSwxMzcgQEAgc3RhdGljIHZvaWQgY29t
cGlsZVN0dWIoCiAgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBzY3JhdGNoICsg
aW5kZXgpOwogICAgIH0KICAgICAKKyAgICAvLyBIZW5jZWZvcnRoIHdlIG1ha2UgaXQgbG9vayBs
aWtlIHRoZSBleGl0aW5nIGZ1bmN0aW9uIHdhcyBjYWxsZWQgdGhyb3VnaCBhIHJlZ2lzdGVyCisg
ICAgLy8gcHJlc2VydmF0aW9uIHdyYXBwZXIuIFRoaXMgaW1wbGllcyB0aGF0IEZQIG11c3QgYmUg
bnVkZ2VkIGRvd24gYnkgYSBjZXJ0YWluIGFtb3VudC4gVGhlbgorICAgIC8vIHdlIHJlc3RvcmUg
dGhlIHZhcmlvdXMgdGhpbmdzIGFjY29yZGluZyB0byBlaXRoZXIgZXhpdC5tX3ZhbHVlcyBvciBi
eSBjb3B5aW5nIGZyb20gdGhlCisgICAgLy8gb2xkIGZyYW1lLCBhbmQgZmluYWxseSB3ZSBzYXZl
IHRoZSB2YXJpb3VzIGNhbGxlZS1zYXZlIHJlZ2lzdGVycyBpbnRvIHdoZXJlIHRoZQorICAgIC8v
IHJlc3RvcmF0aW9uIHRodW5rIHdvdWxkIHJlc3RvcmUgdGhlbSBmcm9tLgorICAgIAorICAgIHB0
cmRpZmZfdCBvZmZzZXQgPSByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpOworICAgIFJlZ2lz
dGVyU2V0IHRvU2F2ZSA9IHJlZ2lzdGVyc1RvUHJlc2VydmUoKTsKKyAgICAKKyAgICAvLyBCZWZv
cmUgd2Ugc3RhcnQgbWVzc2luZyB3aXRoIHRoZSBmcmFtZSwgd2UgbmVlZCB0byBzZXQgYXNpZGUg
YW55IHJlZ2lzdGVycyB0aGF0IHRoZQorICAgIC8vIEZUTCBjb2RlIHdhcyBwcmVzZXJ2aW5nLgor
ICAgIGZvciAodW5zaWduZWQgaSA9IGppdENvZGUtPnVud2luZEluZm8ubV9yZWdpc3RlcnMuc2l6
ZSgpOyBpLS07KSB7CisgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQgZW50cnkgPSBqaXRDb2RlLT51
bndpbmRJbmZvLm1fcmVnaXN0ZXJzW2ldOworICAgICAgICBqaXQubG9hZDY0KAorICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJl
Z2lzdGVyLCBlbnRyeS5vZmZzZXQoKSksCisgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMCk7Cisg
ICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCB1bndpbmRTY3JhdGNoICsgaSk7Cisg
ICAgfQorICAgIAorICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpwYXlsb2FkRm9yKEpTU3Rh
Y2s6OkFyZ3VtZW50Q291bnQpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgCisgICAgLy8gTGV0J3Mg
c2F5IHRoYXQgdGhlIEZUTCBmdW5jdGlvbiBoYWQgZmFpbGVkIGl0cyBhcml0eSBjaGVjay4gSW4g
dGhhdCBjYXNlLCB0aGUgc3RhY2sgd2lsbAorICAgIC8vIGNvbnRhaW4gc29tZSBleHRyYSBzdHVm
Zi4KKyAgICAvLworICAgIC8vIEZpcnN0IHdlIGNvbXB1dGUgdGhlIHBhZGRlZCBzdGFjayBzcGFj
ZToKKyAgICAvLworICAgIC8vICAgICBwYWRkZWRTdGFja1NwYWNlID0gcm91bmRVcChjb2RlQmxv
Y2stPm51bVBhcmFtZXRlcnMgLSByZWdUMiArIDEpCisgICAgLy8KKyAgICAvLyBUaGUgc3RhY2sg
d2lsbCBoYXZlIHJlZ1QyICsgQ2FsbEZyYW1lSGVhZGVyU2l6ZSBzdHVmZiwgYnV0IGFib3ZlIGl0
IHRoZXJlIHdpbGwgYmUKKyAgICAvLyBwYWRkZWRTdGFja1NwYWNlIGd1bmsgdXNlZCBieSB0aGUg
YXJpdHkgY2hlY2sgZmFpbCByZXN0b3JhdGlvbiB0aHVuay4gV2hlbiB0aGF0IGhhcHBlbnMKKyAg
ICAvLyB3ZSB3YW50IHRvIG1ha2UgdGhlIHN0YWNrIGxvb2sgbGlrZSB0aGlzLCBmcm9tIGhpZ2hl
ciBhZGRyZXNzZXMgZG93bjoKKyAgICAvLworICAgIC8vICAgICAtIHJlZ2lzdGVyIHByZXNlcnZh
dGlvbiByZXR1cm4gUEMKKyAgICAvLyAgICAgLSBwcmVzZXJ2ZWQgcmVnaXN0ZXJzCisgICAgLy8g
ICAgIC0gYXJpdHkgY2hlY2sgZmFpbCByZXR1cm4gUEMKKyAgICAvLyAgICAgLSBhcmd1bWVudCBw
YWRkaW5nCisgICAgLy8gICAgIC0gYWN0dWFsIGFyZ3VtZW50cworICAgIC8vICAgICAtIGNhbGwg
ZnJhbWUgaGVhZGVyCisgICAgLy8KKyAgICAvLyBTbyB0aGF0IHRoZSBhY3R1YWwgY2FsbCBmcmFt
ZSBoZWFkZXIgYXBwZWFycyB0byByZXR1cm4gdG8gdGhlIGFyaXR5IGNoZWNrIGZhaWwgcmV0dXJu
CisgICAgLy8gUEMsIGFuZCB0aGF0IHRoZW4gcmV0dXJucyB0byB0aGUgcmVnaXN0ZXIgcHJlc2Vy
dmF0aW9uIHRodW5rLiBUaGUgYXJpdHkgY2hlY2sgdGh1bmsgdGhhdAorICAgIC8vIHdlIHJldHVy
biB0byB3aWxsIGhhdmUgdGhlIHBhZGRpbmcgc2l6ZSBlbmNvZGVkIGludG8gaXQuIEl0IHdpbGwg
dGhlbiBrbm93IHRvIHJldHVybgorICAgIC8vIGludG8gdGhlIHJlZ2lzdGVyIHByZXNlcnZhdGlv
biB0aHVuaywgd2hpY2ggdXNlcyB0aGUgYXJndW1lbnQgY291bnQgdG8gZmlndXJlIG91dCB3aGVy
ZQorICAgIC8vIHJlZ2lzdGVycyBhcmUgcHJlc2VydmVkLgorCisgICAgLy8gVGhpcyBjb2RlIGFz
c3VtZXMgdGhhdCB3ZSdyZSBkZWFsaW5nIHdpdGggRnVuY3Rpb25Db2RlLgorICAgIFJFTEVBU0Vf
QVNTRVJUKGNvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpOworICAgIAorICAg
IGppdC5hZGQzMigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtY29kZUJs
b2NrLT5udW1QYXJhbWV0ZXJzKCkpLCBHUFJJbmZvOjpyZWdUMiwKKyAgICAgICAgR1BSSW5mbzo6
cmVnVDMpOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGFyaXR5SW50YWN0ID0gaml0LmJyYW5j
aFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgR1BSSW5mbzo6cmVnVDMpOworICAgIGppdC5u
ZWczMihHUFJJbmZvOjpyZWdUMyk7CisgICAgaml0LmFkZDMyKE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoMSArIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSwgR1BSSW5mbzo6cmVn
VDMpOworICAgIGppdC5hbmQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1zdGFja0Fs
aWdubWVudFJlZ2lzdGVycygpKSwgR1BSSW5mbzo6cmVnVDMpOworICAgIGppdC5hZGQzMihHUFJJ
bmZvOjpyZWdUMywgR1BSSW5mbzo6cmVnVDIpOworICAgIGFyaXR5SW50YWN0LmxpbmsoJmppdCk7
CisKKyAgICAvLyBGaXJzdCBzZXQgdXAgU1Agc28gdGhhdCBvdXIgZGF0YSBkb2Vzbid0IGdldCBj
bG9iYmVyZWQgYnkgc2lnbmFscy4KKyAgICBqaXQuYWRkUHRyKAorICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9m
KAorICAgICAgICAgICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksCisgICAgICAgICAg
ICAgICAgLXJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KCkgLSBleGl0Lm1fdmFsdWVzLm51bWJl
ck9mTG9jYWxzKCkgKiBzaXplb2YoUmVnaXN0ZXIpIC0gbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwpKSwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBN
YWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIAorICAgIGppdC5zdWJQ
dHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIocmVnaXN0ZXJQcmVzZXJ2
YXRpb25PZmZzZXQoKSksCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdp
c3Rlcik7CisgICAgCisgICAgLy8gQ29weSB0aGUgb2xkIGZyYW1lIGRhdGEgaW50byBpdHMgbmV3
IGxvY2F0aW9uLgorICAgIGppdC5hZGQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0Lm1v
dmUoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7
CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGxvb3AgPSBqaXQubGFiZWwoKTsKKyAgICBqaXQu
c3ViMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmVnVDIpOwor
ICAgIGppdC5sb2FkNjQoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDEsIG9m
ZnNldCksIEdQUkluZm86OnJlZ1QwKTsKKyAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwg
R1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5hZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMihzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5icmFuY2hU
ZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEdQUkluZm86OnJlZ1QyKS5saW5rVG8obG9v
cCwgJmppdCk7CisgICAgCisgICAgLy8gQXQgdGhpcyBwb2ludCByZWdUMSBwb2ludHMgdG8gd2hl
cmUgd2Ugd291bGQgc2F2ZSBvdXIgcmVnaXN0ZXJzLiBTYXZlIHRoZW0gaGVyZS4KKyAgICBwdHJk
aWZmX3QgY3VycmVudE9mZnNldCA9IDA7CisgICAgZm9yIChHUFJSZWcgZ3ByID0gQXNzZW1ibHlI
ZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGdwciA8PSBBc3NlbWJseUhlbHBlcnM6Omxhc3RSZWdp
c3RlcigpOyBncHIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KGdwciArIDEpKSB7CisgICAgICAgIGlm
ICghdG9TYXZlLmdldChncHIpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGN1cnJl
bnRPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICAgICAgdW5zaWduZWQgdW53aW5kSW5k
ZXggPSBqaXRDb2RlLT51bndpbmRJbmZvLmluZGV4T2YoZ3ByKTsKKyAgICAgICAgaWYgKHVud2lu
ZEluZGV4ID09IFVJTlRfTUFYKSB7CisgICAgICAgICAgICAvLyBUaGUgRlRMIGNvbXBpbGF0aW9u
IGRpZG4ndCBwcmVzZXJ2ZSB0aGlzIHJlZ2lzdGVyLiBUaGlzIG1lYW5zIHRoYXQgaXQgYWxzbwor
ICAgICAgICAgICAgLy8gZGlkbid0IHVzZSB0aGUgcmVnaXN0ZXIuIFNvIGl0cyB2YWx1ZSBhdCB0
aGUgYmVnaW5uaW5nIG9mIE9TUiBleGl0IHNob3VsZCBiZQorICAgICAgICAgICAgLy8gcHJlc2Vy
dmVkIGJ5IHRoZSB0aHVuay4gTHVja2lseSwgd2Ugc2F2ZWQgYWxsIHJlZ2lzdGVycyBpbnRvIHRo
ZSByZWdpc3RlcgorICAgICAgICAgICAgLy8gc2NyYXRjaCBidWZmZXIsIHNvIHdlIGNhbiByZXN0
b3JlIHRoZW0gZnJvbSB0aGVyZS4KKyAgICAgICAgICAgIGppdC5sb2FkNjQocmVnaXN0ZXJTY3Jh
dGNoICsgb2Zmc2V0T2ZHUFIoZ3ByKSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgLy8gVGhlIEZUTCBjb21waWxhdGlvbiBwcmVzZXJ2ZWQgdGhlIHJlZ2lz
dGVyLiBJdHMgbmV3IHZhbHVlIGlzIHRoZXJlZm9yZQorICAgICAgICAgICAgLy8gaXJyZWxldmFu
dCwgYnV0IHdlIGNhbiBnZXQgdGhlIHZhbHVlIHRoYXQgd2FzIHByZXNlcnZlZCBieSB1c2luZyB0
aGUgdW53aW5kCisgICAgICAgICAgICAvLyBkYXRhLiBXZSd2ZSBhbHJlYWR5IGNvcGllZCBhbGwg
dW53aW5kLWFibGUgcHJlc2VydmVkIHJlZ2lzdGVycyBpbnRvIHRoZSB1bndpbmQKKyAgICAgICAg
ICAgIC8vIHNjcmF0Y2ggYnVmZmVyLCBzbyB3ZSBjYW4gZ2V0IGl0IGZyb20gdGhlcmUuCisgICAg
ICAgICAgICBqaXQubG9hZDY0KHVud2luZFNjcmF0Y2ggKyB1bndpbmRJbmRleCwgR1BSSW5mbzo6
cmVnVDApOworICAgICAgICB9CisgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBB
c3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDEsIGN1cnJlbnRPZmZzZXQpKTsK
KyAgICB9CisgICAgCisgICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSByZXR1cm4g
aW50byB0aGUgcmVnaXN0ZXIgcmVzdG9yYXRpb24gdGh1bmsuIFRoaXMgd29ya3MKKyAgICAvLyBk
aWZmZXJlbnRseSBkZXBlbmRpbmcgb24gd2hldGhlciBvciBub3Qgd2UgaGFkIGFyaXR5IGlzc3Vl
cy4KKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBhcml0eUludGFjdEZvclJldHVyblBDID0KKyAg
ICAgICAgaml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgR1BSSW5mbzo6cmVn
VDMpOworICAgIAorICAgIC8vIFRoZSByZXR1cm4gUEMgaW4gdGhlIGNhbGwgZnJhbWUgaGVhZGVy
IHBvaW50cyBhdCBleGFjdGx5IHRoZSByaWdodCBhcml0eSByZXN0b3JhdGlvbgorICAgIC8vIHRo
dW5rLiBXZSBkb24ndCB3YW50IHRvIGNoYW5nZSB0aGF0LiBCdXQgdGhlIGFyaXR5IHJlc3RvcmF0
aW9uIHRodW5rJ3MgZnJhbWUgaGFzIGEKKyAgICAvLyByZXR1cm4gUEMgYW5kIHdlIHdhbnQgdG8g
cmVyb3V0ZSB0aGF0IHRvIG91ciByZWdpc3RlciByZXN0b3JhdGlvbiB0aHVuay4gVGhlIGFyaXR5
CisgICAgLy8gcmVzdG9yYXRpb24ncyByZXR1cm4gUEMganVzdCBqdXN0IGJlbG93IHJlZ1QxLCBh
bmQgdGhlIHJlZ2lzdGVyIHJlc3RvcmF0aW9uJ3MgcmV0dXJuIFBDCisgICAgLy8gaXMgcmlnaHQg
YXQgcmVnVDEuCisgICAgaml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5m
bzo6cmVnVDEsIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpKSwgR1BS
SW5mbzo6cmVnVDApOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6
cmVnVDEpOworICAgIGppdC5zdG9yZVB0cigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW1QdHIodm0tPmdldENUSVN0dWIocmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9y
KS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSksCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKEdQUkluZm86OnJlZ1QxLCAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVn
aXN0ZXIpKSkpOworICAgIAorICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGFyaXR5UmV0dXJuUENS
ZWFkeSA9IGppdC5qdW1wKCk7CisKKyAgICBhcml0eUludGFjdEZvclJldHVyblBDLmxpbmsoJmpp
dCk7CisgICAgCisgICAgaml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9B
c3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0
KCkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QwLCBH
UFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRyKAorICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cih2bS0+Z2V0Q1RJU3R1YihyZWdpc3RlclJlc3RvcmF0aW9uVGh1bmtH
ZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSwKKyAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBDYWxs
RnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKKyAgICAKKyAgICBhcml0eVJldHVyblBDUmVhZHku
bGluaygmaml0KTsKKyAgICAKICAgICAvLyBOb3cgZ2V0IHN0YXRlIG91dCBvZiB0aGUgc2NyYXRj
aCBidWZmZXIgYW5kIHBsYWNlIGl0IGJhY2sgaW50byB0aGUgc3RhY2suIFRoaXMgcGFydCBkb2Vz
CiAgICAgLy8gYWxsIHJlYm94aW5nLgogICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBleGl0Lm1f
dmFsdWVzLnNpemUoKTsgaW5kZXgtLTspIHsKQEAgLTE1MCwyNiArMzMxLDE2IEBAIHN0YXRpYyB2
b2lkIGNvbXBpbGVTdHViKAogICAgICAgICBqaXQubG9hZDY0KHNjcmF0Y2ggKyBpbmRleCwgR1BS
SW5mbzo6cmVnVDApOwogICAgICAgICByZWJveEFjY29yZGluZ1RvRm9ybWF0KAogICAgICAgICAg
ICAgdmFsdWUudmFsdWVGb3JtYXQoKSwgaml0LCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVn
VDEsIEdQUkluZm86OnJlZ1QyKTsKLSAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAs
IEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+
KG9wZXJhbmQpLCBHUFJJbmZvOjpyZWdUNCkpOworICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZv
OjpyZWdUMCwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxS
ZWdpc3Rlcj4ob3BlcmFuZCkpKTsKICAgICB9CiAgICAgCi0gICAgLy8gUmVzdG9yZSB0aGUgb2xk
IHN0YWNrIHBvaW50ZXIgYW5kIHRoZW4gcHV0IHJlZ1Q0IGludG8gY2FsbEZyYW1lUmVnaXN0ZXIu
IFRoZSBpZGVhIGlzCi0gICAgLy8gdGhhdCB0aGUgRlRMIGNhbGwgZnJhbWUgaXMgcHVzaGVkIG9u
dG8gdGhlIEpTIGNhbGwgZnJhbWUgYW5kIHdlIGNhbiByZWNvdmVyIHRoZSBvbGQKLSAgICAvLyB2
YWx1ZSBvZiB0aGUgc3RhY2sgcG9pbnRlciBieSBwb3BwaW5nIHRoZSBGVEwgY2FsbCBmcmFtZS4g
V2UgYWxyZWFkeSBrbm93IHdoYXQgdGhlCi0gICAgLy8gZnJhbWUgcG9pbnRlciBpbiB0aGUgSlMg
Y2FsbCBmcmFtZSB3YXMgYmVjYXVzZSBpdCB3b3VsZCBoYXZlIGJlZW4gcGFzc2VkIGFzIGFuIGFy
Z3VtZW50Ci0gICAgLy8gdG8gdGhlIEZUTCBjYWxsIGZyYW1lLgotICAgIGppdC5tb3ZlKE1hY3Jv
QXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKLSAgICBqaXQucG9wKEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgIGpp
dC5wb3AoR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgaml0Lm1vdmUoR1BSSW5mbzo6cmVnVDQs
IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAKICAgICBoYW5kbGVFeGl0Q291bnRz
KGppdCwgZXhpdCk7CiAgICAgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhqaXQsIGV4aXQpOwogICAg
IGFkanVzdEFuZEp1bXBUb1RhcmdldChqaXQsIGV4aXQpOwogICAgIAogICAgIExpbmtCdWZmZXIg
cGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBjb2RlQmxvY2spOwogICAgIGV4aXQubV9jb2RlID0gRklO
QUxJWkVfQ09ERV9JRigKLSAgICAgICAgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCksCisgICAgICAg
IHNob3VsZFNob3dEaXNhc3NlbWJseSgpIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwKICAgICAg
ICAgcGF0Y2hCdWZmZXIsCiAgICAgICAgICgiRlRMIE9TUiBleGl0ICMldSAoJXMsICVzKSBmcm9t
ICVzLCB3aXRoIG9wZXJhbmRzID0gJXMsIGFuZCByZWNvcmQgPSAlcyIsCiAgICAgICAgICAgICBl
eGl0SUQsIHRvQ1N0cmluZyhleGl0Lm1fY29kZU9yaWdpbikuZGF0YSgpLApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODQsNyArMTg0
LDIzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBjYWxsKGRvdWJsZUFic0ludHJp
bnNpYygpLCB2YWx1ZSk7CiAgICAgfQotICAgIAorICAgIExWYWx1ZSBkb3VibGVTaW4oTFZhbHVl
IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGwoZG91YmxlU2luSW50cmluc2ljKCks
IHZhbHVlKTsKKyAgICB9CisKKworICAgIExWYWx1ZSBkb3VibGVDb3MoTFZhbHVlIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGwoZG91YmxlQ29zSW50cmluc2ljKCksIHZhbHVlKTsK
KyAgICB9CisKKyAgICBMVmFsdWUgZG91YmxlU3FydChMVmFsdWUgdmFsdWUpCisgICAgeworICAg
ICAgICByZXR1cm4gY2FsbChkb3VibGVTcXJ0SW50cmluc2ljKCksIHZhbHVlKTsKKyAgICB9CisK
KwogICAgIHN0YXRpYyBib29sIGhhc1NlbnNpYmxlRG91YmxlVG9JbnQoKSB7IHJldHVybiBpc1g4
NigpOyB9CiAgICAgTFZhbHVlIHNlbnNpYmxlRG91YmxlVG9JbnQoTFZhbHVlIHZhbHVlKQogICAg
IHsKQEAgLTIxMCw2ICsyMjYsNyBAQCBwdWJsaWM6CiAgICAgTFZhbHVlIGNhc3RUb0ludDMyKExW
YWx1ZSB2YWx1ZSkgeyByZXR1cm4gaW50Q2FzdCh2YWx1ZSwgaW50MzIpOyB9CiAgICAgTFZhbHVl
IGZwQ2FzdChMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxkRlBDYXN0KG1f
YnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CiAgICAgTFZhbHVlIGludFRvUHRyKExWYWx1ZSB2YWx1
ZSwgTFR5cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRJbnRUb1B0cihtX2J1aWxkZXIsIHZhbHVlLCB0
eXBlKTsgfQorICAgIExWYWx1ZSBwdHJUb0ludChMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsg
cmV0dXJuIGJ1aWxkUHRyVG9JbnQobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0KICAgICBMVmFs
dWUgYml0Q2FzdChMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxkQml0Q2Fz
dChtX2J1aWxkZXIsIHZhbHVlLCB0eXBlKTsgfQogICAgIAogICAgIExWYWx1ZSBhbGxvY2EoTFR5
cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRBbGxvY2EobV9idWlsZGVyLCB0eXBlKTsgfQpAQCAtMzE0
LDYgKzMzMSwyMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9yZVB0cihMVmFsdWUgdmFsdWUsIExW
YWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyBzdG9yZVB0cih2YWx1ZSwg
YWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9CiAgICAgdm9pZCBzdG9yZURvdWJsZShMVmFsdWUgdmFs
dWUsIExWYWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyBzdG9yZURvdWJs
ZSh2YWx1ZSwgYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9CiAgICAgCisgICAgdm9pZCBhc2NyaWJl
UmFuZ2UoTFZhbHVlIGxvYWRJbnN0cnVjdGlvbiwgY29uc3QgVmFsdWVSYW5nZSYgcmFuZ2UpCisg
ICAgeworICAgICAgICByYW5nZS5kZWNvcmF0ZUluc3RydWN0aW9uKG1fY29udGV4dCwgbG9hZElu
c3RydWN0aW9uLCByYW5nZUtpbmQpOworICAgIH0KKyAgICAKKyAgICBMVmFsdWUgbm9uTmVnYXRp
dmUzMihMVmFsdWUgbG9hZEluc3RydWN0aW9uKQorICAgIHsKKyAgICAgICAgYXNjcmliZVJhbmdl
KGxvYWRJbnN0cnVjdGlvbiwgbm9uTmVnYXRpdmVJbnQzMik7CisgICAgICAgIHJldHVybiBsb2Fk
SW5zdHJ1Y3Rpb247CisgICAgfQorICAgIAorICAgIExWYWx1ZSBsb2FkMzJOb25OZWdhdGl2ZShU
eXBlZFBvaW50ZXIgcG9pbnRlcikgeyByZXR1cm4gbm9uTmVnYXRpdmUzMihsb2FkMzIocG9pbnRl
cikpOyB9CisgICAgTFZhbHVlIGxvYWQzMk5vbk5lZ2F0aXZlKExWYWx1ZSBiYXNlLCBjb25zdCBB
YnN0cmFjdEZpZWxkJiBmaWVsZCkgeyByZXR1cm4gbm9uTmVnYXRpdmUzMihsb2FkMzIoYmFzZSwg
ZmllbGQpKTsgfQorICAgIAogICAgIExWYWx1ZSBpY21wKExJbnRQcmVkaWNhdGUgY29uZCwgTFZh
bHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gYnVpbGRJQ21wKG1fYnVpbGRlciwgY29u
ZCwgbGVmdCwgcmlnaHQpOyB9CiAgICAgTFZhbHVlIGVxdWFsKExWYWx1ZSBsZWZ0LCBMVmFsdWUg
cmlnaHQpIHsgcmV0dXJuIGljbXAoTExWTUludEVRLCBsZWZ0LCByaWdodCk7IH0KICAgICBMVmFs
dWUgbm90RXF1YWwoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gaWNtcChMTFZN
SW50TkUsIGxlZnQsIHJpZ2h0KTsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExSZWNvdmVyeU9wY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExSZWNvdmVyeU9wY29kZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExSZWNvdmVyeU9wY29kZS5oIgorCisj
aWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KKworbmFt
ZXNwYWNlIFdURiB7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6
OkZUTDo6UmVjb3ZlcnlPcGNvZGUgb3Bjb2RlKQoreworICAgIHN3aXRjaCAob3Bjb2RlKSB7Cisg
ICAgY2FzZSBKU0M6OkZUTDo6QWRkUmVjb3Zlcnk6CisgICAgICAgIG91dC5wcmludCgiQWRkIik7
CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6RlRMOjpTdWJSZWNvdmVyeToKKyAgICAg
ICAgb3V0LnByaW50KCJTdWIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlm
IC8vIEVOQUJMRShGVExfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFJlY292ZXJ5T3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExSZWNvdmVyeU9wY29kZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExSZWNvdmVyeU9wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBGVExSZWNvdmVyeU9wY29kZV9oCisjZGVmaW5lIEZUTFJlY292ZXJ5T3Bjb2RlX2gKKworI2lm
IEVOQUJMRShGVExfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK2Vu
dW0gUmVjb3ZlcnlPcGNvZGUgeworICAgIEFkZFJlY292ZXJ5LAorICAgIFN1YlJlY292ZXJ5Cit9
OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKK25hbWVzcGFjZSBXVEYgeworCitjbGFz
cyBQcmludFN0cmVhbTsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6RlRM
OjpSZWNvdmVyeU9wY29kZSk7CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5B
QkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExSZWNvdmVyeU9wY29kZV9oCisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmNwcAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVnaXN0ZXJBdE9m
ZnNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRlRMUmVnaXN0ZXJBdE9mZnNldC5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKK25h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKwordm9pZCBSZWdpc3RlckF0T2Zmc2V0Ojpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgb3V0LnByaW50KGdwcigpLCAiIGF0
ICIsIG9mZnNldCgpKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYg
Ly8gRU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
UmVnaXN0ZXJBdE9mZnNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIEZUTFJlZ2lzdGVyQXRPZmZzZXRfaAorI2RlZmluZSBGVExSZWdpc3RlckF0T2Zmc2V0
X2gKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1
ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7
CisKK2NsYXNzIFJlZ2lzdGVyQXRPZmZzZXQgeworcHVibGljOgorICAgIFJlZ2lzdGVyQXRPZmZz
ZXQoKQorICAgICAgICA6IG1fZ3ByKEludmFsaWRHUFJSZWcpCisgICAgICAgICwgbV9vZmZzZXQo
MCkKKyAgICB7CisgICAgfQorICAgIAorICAgIFJlZ2lzdGVyQXRPZmZzZXQoR1BSUmVnIGdwciwg
cHRyZGlmZl90IG9mZnNldCkKKyAgICAgICAgOiBtX2dwcihncHIpCisgICAgICAgICwgbV9vZmZz
ZXQob2Zmc2V0KQorICAgIHsKKyAgICB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25z
dCB7IHJldHVybiBtX2dwciA9PSBJbnZhbGlkR1BSUmVnOyB9CisgICAgCisgICAgR1BSUmVnIGdw
cigpIGNvbnN0IHsgcmV0dXJuIG1fZ3ByOyB9CisgICAgcHRyZGlmZl90IG9mZnNldCgpIGNvbnN0
IHsgcmV0dXJuIG1fb2Zmc2V0OyB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJl
Z2lzdGVyQXRPZmZzZXQmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGdwcigp
ID09IG90aGVyLmdwcigpICYmIG9mZnNldCgpID09IG90aGVyLm9mZnNldCgpOworICAgIH0KKyAg
ICAKKyAgICBib29sIG9wZXJhdG9yPChjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiBvdGhlcikgY29u
c3QKKyAgICB7CisgICAgICAgIGlmIChncHIoKSAhPSBvdGhlci5ncHIoKSkKKyAgICAgICAgICAg
IHJldHVybiBncHIoKSA8IG90aGVyLmdwcigpOworICAgICAgICByZXR1cm4gb2Zmc2V0KCkgPCBv
dGhlci5vZmZzZXQoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIEdQUlJlZyBnZXRHUFIoUmVn
aXN0ZXJBdE9mZnNldCogdmFsdWUpIHsgcmV0dXJuIHZhbHVlLT5ncHIoKTsgfQorICAgIAorICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBHUFJS
ZWcgbV9ncHI7CisgICAgcHRyZGlmZl90IG1fb2Zmc2V0OworfTsKKworfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExS
ZWdpc3RlckF0T2Zmc2V0X2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExT
bG93UGF0aENhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMU2xvd1BhdGhDYWxsLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw3
IEBACiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNp
bmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRlRMU3RhdGUuaCIKICNpbmNs
dWRlICJHUFJJbmZvLmgiCiAKQEAgLTEzNCwxMSArMTM1LDEzIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIFNsb3dQYXRoQ2FsbEtleSh1c2VkUmVnaXN0ZXJzKCksIGNhbGxUYXJnZXQsIG9mZnNl
dCgpKTsKICAgICB9CiAgICAgCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgbWFrZUNhbGwodm9p
ZCogY2FsbFRhcmdldCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBtYWtlQ2FsbCh2b2lkKiBj
YWxsVGFyZ2V0LCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QqIGV4Y2VwdGlvblRhcmdldCkKICAg
ICB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHJlc3VsdCA9IG1faml0LmNhbGwoKTsK
ICAgICAgICAgbV9zdGF0ZS5maW5hbGl6ZXItPnNsb3dQYXRoQ2FsbHMuYXBwZW5kKFNsb3dQYXRo
Q2FsbCgKICAgICAgICAgICAgIHJlc3VsdCwga2V5V2l0aFRhcmdldChjYWxsVGFyZ2V0KSkpOwor
ICAgICAgICBpZiAoZXhjZXB0aW9uVGFyZ2V0KQorICAgICAgICAgICAgZXhjZXB0aW9uVGFyZ2V0
LT5hcHBlbmQobV9qaXQuZW1pdEV4Y2VwdGlvbkNoZWNrKCkpOwogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgIH0KICAgICAKQEAgLTE1NywzMiArMTYwLDQ0IEBAIHByaXZhdGU6CiAKIH0gLy8g
YW5vbnltb3VzIG5hbWVzcGFjZQogCit2b2lkIHN0b3JlQ29kZU9yaWdpbihTdGF0ZSYgc3RhdGUs
IENDYWxsSGVscGVycyYgaml0LCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCit7CisgICAgaWYgKCFj
b2RlT3JpZ2luLmlzU2V0KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICB1bnNpZ25lZCBp
bmRleCA9IHN0YXRlLmppdENvZGUtPmNvbW1vbi5hZGRDb2RlT3JpZ2luKGNvZGVPcmlnaW4pOwor
ICAgIHVuc2lnbmVkIGxvY2F0aW9uQml0cyA9IENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFz
Q29kZU9yaWdpbkluZGV4KGluZGV4KTsKKyAgICBqaXQuc3RvcmUzMigKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwKKyAgICAgICAgQ0NhbGxIZWxwZXJz
Ojp0YWdGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihKU1N0YWNrOjpBcmd1bWVudENv
dW50KSkpOworfQorCiBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKAotICAgIFN0
YXRlJiBzdGF0ZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENDYWxsSGVscGVy
cyYgaml0LCAKLSAgICBKX0pJVE9wZXJhdGlvbl9FU3NpSkkgb3BlcmF0aW9uLCBHUFJSZWcgcmVz
dWx0LCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBHUFJSZWcgb2JqZWN0LCBTdHJpbmdJbXBsKiB1aWQpCisgICAgU3RhdGUmIHN0YXRl
LCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgQ0NhbGxIZWxwZXJzJiBqaXQsCisg
ICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QqIGV4Y2Vw
dGlvblRhcmdldCwKKyAgICBKX0pJVE9wZXJhdGlvbl9FU3NpSkkgb3BlcmF0aW9uLCBHUFJSZWcg
cmVzdWx0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sCisgICAgR1BSUmVnIG9iamVjdCwg
U3RyaW5nSW1wbCogdWlkKQogeworICAgIHN0b3JlQ29kZU9yaWdpbihzdGF0ZSwgaml0LCBjb2Rl
T3JpZ2luKTsKICAgICBDYWxsQ29udGV4dCBjb250ZXh0KHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBq
aXQsIDQsIHJlc3VsdCk7Ci0gICAgaml0LnNldHVwQXJndW1lbnRzKAotICAgICAgICBjYWxsRnJh
bWVSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwgb2JqZWN0
LAorICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAgICAgIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cihzdHViSW5mbyksIG9iamVjdCwKICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tUHRyKHVpZCkpOwotICAgIHJldHVybiBjb250ZXh0Lm1ha2VDYWxsKGJp
dHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0aW9uKSk7Ci0gICAgLy8gRklYTUU6IEZUTCBzaG91bGQg
c3VwcG9ydCBleGNlcHRpb25zLgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTM2MjIKKyAgICByZXR1cm4gY29udGV4dC5tYWtlQ2FsbChiaXR3aXNlX2Nh
c3Q8dm9pZCo+KG9wZXJhdGlvbiksIGV4Y2VwdGlvblRhcmdldCk7CiB9CiAKIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oCiAgICAgU3RhdGUmIHN0YXRlLCBjb25zdCBSZWdpc3Rl
clNldCYgdXNlZFJlZ2lzdGVycywgQ0NhbGxIZWxwZXJzJiBqaXQsIAotICAgIFZfSklUT3BlcmF0
aW9uX0VTc2lKSkkgb3BlcmF0aW9uLCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBHUFJSZWcgdmFsdWUsIEdQUlJlZyBvYmplY3QsIFN0
cmluZ0ltcGwqIHVpZCkKKyAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIE1hY3JvQXNzZW1ibGVy
OjpKdW1wTGlzdCogZXhjZXB0aW9uVGFyZ2V0LAorICAgIFZfSklUT3BlcmF0aW9uX0VTc2lKSkkg
b3BlcmF0aW9uLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEdQUlJlZyB2YWx1ZSwKKyAg
ICBHUFJSZWcgb2JqZWN0LCBTdHJpbmdJbXBsKiB1aWQpCiB7CisgICAgc3RvcmVDb2RlT3JpZ2lu
KHN0YXRlLCBqaXQsIGNvZGVPcmlnaW4pOwogICAgIENhbGxDb250ZXh0IGNvbnRleHQoc3RhdGUs
IHVzZWRSZWdpc3RlcnMsIGppdCwgNSwgSW52YWxpZEdQUlJlZyk7Ci0gICAgaml0LnNldHVwQXJn
dW1lbnRzKAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKHN0dWJJbmZvKSwgdmFsdWUsIG9iamVjdCwKKyAgICBqaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKAorICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoc3R1Yklu
Zm8pLCB2YWx1ZSwgb2JqZWN0LAogICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
dWlkKSk7Ci0gICAgcmV0dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9jYXN0PHZvaWQqPihv
cGVyYXRpb24pKTsKLSAgICAvLyBGSVhNRTogRlRMIHNob3VsZCBzdXBwb3J0IGV4Y2VwdGlvbnMu
Ci0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgor
ICAgIHJldHVybiBjb250ZXh0Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0aW9u
KSwgZXhjZXB0aW9uVGFyZ2V0KTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC01NSwxMyArNTUsMTUgQEAgcHJpdmF0ZToKICAgICBTbG93UGF0aENh
bGxLZXkgbV9rZXk7CiB9OwogCit2b2lkIHN0b3JlQ29kZU9yaWdpbihTdGF0ZSYsIENDYWxsSGVs
cGVycyYsIENvZGVPcmlnaW4pOworCiBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KAotICAgIFN0YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmLCBDQ2FsbEhlbHBlcnMmLCBKX0pJVE9w
ZXJhdGlvbl9FU3NpSkksCi0gICAgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lz
dGVyLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZyBvYmplY3QsCisgICAgU3RhdGUmLCBjb25z
dCBSZWdpc3RlclNldCYsIENDYWxsSGVscGVycyYsIENvZGVPcmlnaW4sIENDYWxsSGVscGVyczo6
SnVtcExpc3QqLAorICAgIEpfSklUT3BlcmF0aW9uX0VTc2lKSSwgR1BSUmVnIHJlc3VsdCwgU3Ry
dWN0dXJlU3R1YkluZm8qLCBHUFJSZWcgb2JqZWN0LAogICAgIFN0cmluZ0ltcGwqIHVpZCk7CiBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKAotICAgIFN0YXRlJiwgY29uc3QgUmVn
aXN0ZXJTZXQmLCBDQ2FsbEhlbHBlcnMmLCBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJLAotICAgIEdQ
UlJlZyBjYWxsRnJhbWVSZWdpc3RlciwgU3RydWN0dXJlU3R1YkluZm8qLCBHUFJSZWcgdmFsdWUs
IEdQUlJlZyBvYmplY3QsCisgICAgU3RhdGUmLCBjb25zdCBSZWdpc3RlclNldCYsIENDYWxsSGVs
cGVycyYsIENvZGVPcmlnaW4sIENDYWxsSGVscGVyczo6SnVtcExpc3QqLAorICAgIFZfSklUT3Bl
cmF0aW9uX0VTc2lKSkksIFN0cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnIHZhbHVlLCBHUFJSZWcg
b2JqZWN0LAogICAgIFN0cmluZ0ltcGwqIHVpZCk7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpG
VEwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5jcHAJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksOSBAQCB2b2lkIFN0YWNrTWFwczo6TG9j
YXRpb246OnJlc3RvcmVJbnRvKAogCiBib29sIFN0YWNrTWFwczo6UmVjb3JkOjpwYXJzZShEYXRh
VmlldyogdmlldywgdW5zaWduZWQmIG9mZnNldCkKIHsKLSAgICBwYXRjaHBvaW50SUQgPSB2aWV3
LT5yZWFkPHVpbnQzMl90PihvZmZzZXQsIHRydWUpOworICAgIGludDY0X3QgaWQgPSB2aWV3LT5y
ZWFkPGludDY0X3Q+KG9mZnNldCwgdHJ1ZSk7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PGludDMy
X3Q+KGlkKSA9PSBpZCk7CisgICAgcGF0Y2hwb2ludElEID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KGlkKTsKICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4ocGF0Y2hwb2ludElEKSA8IDApCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTkwLDYgKzkyLDEzIEBAIGJvb2wgU3RhY2tN
YXBzOjpSZWNvcmQ6OnBhcnNlKERhdGFWaWV3KiAKICAgICB3aGlsZSAobGVuZ3RoLS0pCiAgICAg
ICAgIGxvY2F0aW9ucy5hcHBlbmQocmVhZE9iamVjdDxMb2NhdGlvbj4odmlldywgb2Zmc2V0KSk7
CiAgICAgCisgICAgdW5zaWduZWQgbnVtTGl2ZU91dHMgPSB2aWV3LT5yZWFkPHVpbnQxNl90Pihv
ZmZzZXQsIHRydWUpOworICAgIHdoaWxlIChudW1MaXZlT3V0cy0tKSB7CisgICAgICAgIHZpZXct
PnJlYWQ8dWludDE2X3Q+KG9mZnNldCwgdHJ1ZSk7IC8vIHJlZ251bQorICAgICAgICB2aWV3LT5y
ZWFkPHVpbnQ4X3Q+KG9mZnNldCwgdHJ1ZSk7IC8vIHJlc2VydmVkCisgICAgICAgIHZpZXctPnJl
YWQ8dWludDhfdD4ob2Zmc2V0LCB0cnVlKTsgLy8gc2l6ZSBpbiBieXRlcworICAgIH0KKyAgICAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExTdGFja01hcHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFN0YWNrTWFwcy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFN0YWNrTWFwcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIHN0cnVj
dCBTdGFja01hcHMgewogICAgICAgICB1aW50MTZfdCBkd2FyZlJlZ051bTsgLy8gUmVwcmVzZW50
ZWQgYXMgYSAxMi1iaXQgaW50IGluIHRoZSBzZWN0aW9uLgogICAgICAgICBpbnQ4X3Qgc2l6ZTsK
ICAgICAgICAgS2luZCBraW5kOwotICAgICAgICBpbnQxNl90IG9mZnNldDsKKyAgICAgICAgaW50
MzJfdCBvZmZzZXQ7CiAgICAgICAgIAogICAgICAgICB2b2lkIHBhcnNlKERhdGFWaWV3KiwgdW5z
aWduZWQmIG9mZnNldCk7CiAgICAgICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25z
dDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuY3BwCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDMsNiArNDMsOCBAQCBTdGF0ZTo6U3RhdGUoR3JhcGgmIGdyYXBoKQogICAg
ICwgbW9kdWxlKDApCiAgICAgLCBmdW5jdGlvbigwKQogICAgICwgZ2VuZXJhdGVkRnVuY3Rpb24o
MCkKKyAgICAsIGNvbXBhY3RVbndpbmQoMCkKKyAgICAsIGNvbXBhY3RVbndpbmRTaXplKDApCiB7
CiAgICAgc3dpdGNoIChncmFwaC5tX3BsYW4ubW9kZSkgewogICAgIGNhc2UgRlRMTW9kZTogewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmgiCiAjaW5j
bHVkZSAiRlRMSklUQ29kZS5oIgogI2luY2x1ZGUgIkZUTEpJVEZpbmFsaXplci5oIgorI2luY2x1
ZGUgIkZUTEpTQ2FsbC5oIgogI2luY2x1ZGUgIkZUTFN0YWNrTWFwcy5oIgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC01NywxMCArNTgsMTUgQEAgcHVibGljOgogICAgIFJlZlB0
cjxKSVRDb2RlPiBqaXRDb2RlOwogICAgIEdlbmVyYXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0
aW9uOwogICAgIEpJVEZpbmFsaXplciogZmluYWxpemVyOworICAgIHVuc2lnbmVkIGhhbmRsZUV4
Y2VwdGlvblN0YWNrbWFwSUQ7CisgICAgdW5zaWduZWQgY2FwdHVyZWRTdGFja21hcElEOwogICAg
IFNlZ21lbnRlZFZlY3RvcjxHZXRCeUlkRGVzY3JpcHRvcj4gZ2V0QnlJZHM7CiAgICAgU2VnbWVu
dGVkVmVjdG9yPFB1dEJ5SWREZXNjcmlwdG9yPiBwdXRCeUlkczsKKyAgICBWZWN0b3I8SlNDYWxs
PiBqc0NhbGxzOwogICAgIFZlY3RvcjxDU3RyaW5nPiBjb2RlU2VjdGlvbk5hbWVzOwogICAgIFZl
Y3RvcjxDU3RyaW5nPiBkYXRhU2VjdGlvbk5hbWVzOworICAgIHZvaWQqIGNvbXBhY3RVbndpbmQ7
CisgICAgc2l6ZV90IGNvbXBhY3RVbndpbmRTaXplOwogICAgIFJlZkNvdW50ZWRBcnJheTxMU2Vj
dGlvbldvcmQ+IHN0YWNrbWFwc1NlY3Rpb247CiAgICAgCiAgICAgdm9pZCBkdW1wU3RhdGUoY29u
c3QgY2hhciogd2hlbik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5r
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3Mu
Y3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRo
dW5rcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwogCi1NYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSYgdm0sIGNvbnN0IExv
Y2F0aW9uJiBsb2NhdGlvbikKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlv
blRodW5rR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICBBc3NlbWJseUhlbHBlcnMgaml0KCZ2bSwg
MCk7CisgICAgQXNzZW1ibHlIZWxwZXJzIGppdCh2bSwgMCk7CiAgICAgCiAgICAgLy8gTm90ZSB0
aGF0IHRoZSAicmV0dXJuIGFkZHJlc3MiIHdpbGwgYmUgdGhlIE9TUiBleGl0IElELgogICAgIApA
QCAtNTEsNyArNTEsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25U
CiAgICAgaml0LnB1c2goR1BSSW5mbzo6cmVnVDApOwogICAgIGppdC5wdXNoKEdQUkluZm86OnJl
Z1QwKTsKICAgICAKLSAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0uc2NyYXRj
aEJ1ZmZlckZvclNpemUocmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSk7CisgICAg
U2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6ZShy
ZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKTsKICAgICBjaGFyKiBidWZmZXIgPSBz
dGF0aWNfY2FzdDxjaGFyKj4oc2NyYXRjaEJ1ZmZlci0+ZGF0YUJ1ZmZlcigpKTsKICAgICAKICAg
ICBzYXZlQWxsUmVnaXN0ZXJzKGppdCwgYnVmZmVyKTsKQEAgLTYwLDcgKzYwLDcgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVAogICAgIGppdC5tb3ZlKE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHNjcmF0Y2hCdWZmZXItPmFjdGl2ZUxlbmd0aFB0cigpKSwg
R1BSSW5mbzo6bm9uQXJnR1BSMSk7CiAgICAgaml0LnN0b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tUHRyKHJlcXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVzKCkpLCBHUFJJbmZv
Ojpub25BcmdHUFIxKTsKIAotICAgIGxvY2F0aW9uLnJlc3RvcmVJbnRvKGppdCwgYnVmZmVyLCBH
UFJJbmZvOjphcmd1bWVudEdQUjAsIDEpOworICAgIGppdC5sb2FkUHRyKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5wZWVrKEdQUklu
Zm86OmFyZ3VtZW50R1BSMSwgMyk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgZnVuY3Rpb25D
YWxsID0gaml0LmNhbGwoKTsKICAgICAKQEAgLTcxLDYgKzcxLDEwIEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblQKICAgICAKICAgICBqaXQubW92ZShHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmVnVDApOwogICAgIAorICAgIC8vIE1ha2Ugc3VyZSB3
ZSB0ZWxsIHRoZSBHQyB0aGF0IHdlJ3JlIG5vdCB1c2luZyB0aGUgc2NyYXRjaCBidWZmZXIgYW55
bW9yZS4KKyAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzY3JhdGNo
QnVmZmVyLT5hY3RpdmVMZW5ndGhQdHIoKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3Rv
cmVQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoMCksIEdQUkluZm86OnJlZ1QxKTsK
KyAgICAKICAgICAvLyBQcmVwYXJlIGZvciB0YWlsIGNhbGwuCiAgICAgaml0LnBvcChHUFJJbmZv
OjpyZWdUMSk7CiAgICAgaml0LnBvcChHUFJJbmZvOjpyZWdUMSk7CkBAIC04MSwxNCArODUsMTQg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVAogICAgIC8vIHJlc3Rv
cmUgYWxsIHJlZ2lzdGVycy4KICAgICAKICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZv
cmVSZXR1cm4oR1BSSW5mbzo6cmVnVDApOwotICAgIAorCiAgICAgcmVzdG9yZUFsbFJlZ2lzdGVy
cyhqaXQsIGJ1ZmZlcik7CiAKICAgICBqaXQucmV0KCk7CiAgICAgCi0gICAgTGlua0J1ZmZlciBw
YXRjaEJ1ZmZlcih2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICBMaW5rQnVmZmVyIHBh
dGNoQnVmZmVyKCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKICAgICBwYXRjaEJ1ZmZlci5s
aW5rKGZ1bmN0aW9uQ2FsbCwgY29tcGlsZUZUTE9TUkV4aXQpOwotICAgIHJldHVybiBGSU5BTEla
RV9DT0RFKHBhdGNoQnVmZmVyLCAoIkZUTCBPU1IgZXhpdCBnZW5lcmF0aW9uIHRodW5rIGZvciBj
YWxsRnJhbWUgYXQgJXMiLCB0b0NTdHJpbmcobG9jYXRpb24pLmRhdGEoKSkpOworICAgIHJldHVy
biBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIkZUTCBPU1IgZXhpdCBnZW5lcmF0aW9uIHRo
dW5rIikpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1bmtHZW5l
cmF0b3IoVk0mIHZtLCBjb25zdCBTbG93UGF0aENhbGxLZXkmIGtleSkKQEAgLTExOSwxMSArMTIz
LDEzIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzbG93UGF0aENhbGxUaHVua0cKICAgICAgICAg
Y3VycmVudE9mZnNldCArPSBzaXplb2YoZG91YmxlKTsKICAgICB9CiAgICAgCisgICAgLy8gRklY
TUU6IENTdGFjayAtIE5lZWQgdG8gZG8gc29lbWV0aGluZyBsaWtlIGppdC5lbWl0RnVuY3Rpb25Q
cm9sb2d1ZSgpOwogICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5m
bzo6bm9uQXJnR1BSMCk7CiAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86Om5vbkFyZ0dQUjAsIEFz
c2VtYmx5SGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIsIGtleS5vZmZzZXQoKSkpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGwgPSBq
aXQuY2FsbCgpOwotICAgIAorCisgICAgLy8gRklYTUU6IENTdGFjayAtIE5lZWQgdG8gZG8gc29t
ZXRoaW5nIGxpa2Ugaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgaml0LmxvYWRQdHIo
QXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdp
c3Rlciwga2V5Lm9mZnNldCgpKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsK
ICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6bm9uUHJl
c2VydmVkTm9uUmV0dXJuR1BSKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMVGh1bmtzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExUaHVua3MuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExUaHVua3MuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBWTTsK
IAogbmFtZXNwYWNlIEZUTCB7CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJh
dGlvblRodW5rR2VuZXJhdG9yKFZNJiwgY29uc3QgTG9jYXRpb24mKTsKK01hY3JvQXNzZW1ibGVy
Q29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IoVk0mLCBjb25zdCBTbG93UGF0
aENhbGxLZXkmKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgS2V5VHlwZUFyZ3VtZW50PgpAQCAtNzgs
MTIgKzc4LDYgQEAgdHlwZW5hbWUgTWFwVHlwZTo6S2V5VHlwZSBrZXlGb3JUaHVuayhNYQogCiBj
bGFzcyBUaHVua3MgewogcHVibGljOgotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZXRPU1JF
eGl0R2VuZXJhdGlvblRodW5rKFZNJiB2bSwgY29uc3QgTG9jYXRpb24mIGxvY2F0aW9uKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRlSWZOZWNlc3NhcnkoCi0gICAgICAgICAgICB2bSwg
bV9vc3JFeGl0VGh1bmtzLCBsb2NhdGlvbiwgb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRv
cik7Ci0gICAgfQotICAgIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZXRTbG93UGF0aENh
bGxUaHVuayhWTSYgdm0sIGNvbnN0IFNsb3dQYXRoQ2FsbEtleSYga2V5KQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGdlbmVyYXRlSWZOZWNlc3NhcnkoCkBAIC05Niw3ICs5MCw2IEBAIHB1YmxpYzoK
ICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIFRodW5rTWFwPExvY2F0aW9uPiBtX29zckV4aXRU
aHVua3M7CiAgICAgVGh1bmtNYXA8U2xvd1BhdGhDYWxsS2V5PiBtX3Nsb3dQYXRoQ2FsbFRodW5r
czsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53aW5kSW5mby5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExVbndpbmRJbmZv
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53aW5k
SW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkZUTFVud2luZEluZm8uaCIKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVk
ZSA8d3RmL0xpc3REdW1wLmg+CisjaW5jbHVkZSA8bWFjaC1vL2NvbXBhY3RfdW53aW5kX2VuY29k
aW5nLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworVW53aW5kSW5mbzo6
VW53aW5kSW5mbygpIHsgfQorVW53aW5kSW5mbzo6flVud2luZEluZm8oKSB7IH0KKworbmFtZXNw
YWNlIHsKKworc3RydWN0IENvbXBhY3RVbndpbmQgeworICAgIHZvaWQqIGZ1bmN0aW9uOworICAg
IHVpbnQzMl90IHNpemU7CisgICAgY29tcGFjdF91bndpbmRfZW5jb2RpbmdfdCBlbmNvZGluZzsK
KyAgICB2b2lkKiBwZXJzb25hbGl0eTsKKyAgICB2b2lkKiBsc2RhOworfTsKKworfSAvLyBhbm9u
eW1vdXMgbmFtZXNwYWNlCisKK3ZvaWQgVW53aW5kSW5mbzo6cGFyc2Uodm9pZCogc2VjdGlvbiwg
c2l6ZV90IHNpemUsIEdlbmVyYXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0aW9uKQoreworICAg
IG1fcmVnaXN0ZXJzLmNsZWFyKCk7CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlQoc2VjdGlvbik7
CisgICAgUkVMRUFTRV9BU1NFUlQoc2l6ZSA+PSBzaXplb2YoQ29tcGFjdFVud2luZCkpOworICAg
IAorICAgIENvbXBhY3RVbndpbmQqIGRhdGEgPSBiaXR3aXNlX2Nhc3Q8Q29tcGFjdFVud2luZCo+
KHNlY3Rpb24pOworICAgIAorICAgIFJFTEVBU0VfQVNTRVJUKCFkYXRhLT5wZXJzb25hbGl0eSk7
IC8vIFdlIGRvbid0IGtub3cgaG93IHRvIGhhbmRsZSB0aGlzLgorICAgIFJFTEVBU0VfQVNTRVJU
KCFkYXRhLT5sc2RhKTsgLy8gV2UgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIHRoaXMuCisgICAg
UkVMRUFTRV9BU1NFUlQoZGF0YS0+ZnVuY3Rpb24gPT0gZ2VuZXJhdGVkRnVuY3Rpb24pOyAvLyBU
aGUgdW53aW5kIGRhdGEgYmV0dGVyIGJlIGZvciBvdXIgZnVuY3Rpb24uCisgICAgCisgICAgY29t
cGFjdF91bndpbmRfZW5jb2RpbmdfdCBlbmNvZGluZyA9IGRhdGEtPmVuY29kaW5nOworICAgIFJF
TEVBU0VfQVNTRVJUKCEoZW5jb2RpbmcgJiBVTldJTkRfSVNfTk9UX0ZVTkNUSU9OX1NUQVJUKSk7
CisgICAgUkVMRUFTRV9BU1NFUlQoIShlbmNvZGluZyAmIFVOV0lORF9IQVNfTFNEQSkpOworICAg
IFJFTEVBU0VfQVNTRVJUKCEoZW5jb2RpbmcgJiBVTldJTkRfUEVSU09OQUxJVFlfTUFTSykpOwor
ICAgIFJFTEVBU0VfQVNTRVJUKChlbmNvZGluZyAmIFVOV0lORF9YODZfNjRfTU9ERV9NQVNLKSA9
PSBVTldJTkRfWDg2XzY0X01PREVfUkJQX0ZSQU1FKTsKKyAgICAKKyAgICBpbnQzMl90IG9mZnNl
dCA9IC0oKGVuY29kaW5nICYgVU5XSU5EX1g4Nl82NF9SQlBfRlJBTUVfT0ZGU0VUKSA+PiAxNikg
KiA4OworICAgIHVpbnQzMl90IG5leHRSZWdpc3RlcnMgPSBlbmNvZGluZzsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSA1OyBpLS07KSB7CisgICAgICAgIHVpbnQzMl90IGN1cnJlbnRSZWdpc3RlciA9
IG5leHRSZWdpc3RlcnMgJiA3OworICAgICAgICBuZXh0UmVnaXN0ZXJzID4+PSAzOworICAgICAg
ICAKKyAgICAgICAgc3dpdGNoIChjdXJyZW50UmVnaXN0ZXIpIHsKKyAgICAgICAgY2FzZSBVTldJ
TkRfWDg2XzY0X1JFR19OT05FOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAg
ICAgICAgY2FzZSBVTldJTkRfWDg2XzY0X1JFR19SQlg6CisgICAgICAgICAgICBtX3JlZ2lzdGVy
cy5hcHBlbmQoUmVnaXN0ZXJBdE9mZnNldChYODZSZWdpc3RlcnM6OmVieCwgb2Zmc2V0KSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZf
NjRfUkVHX1IxMjoKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zm
c2V0KFg4NlJlZ2lzdGVyczo6cjEyLCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgCisgICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUjEzOgorICAgICAgICAg
ICAgbV9yZWdpc3RlcnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjpyMTMs
IG9mZnNldCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2Fz
ZSBVTldJTkRfWDg2XzY0X1JFR19SMTQ6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQo
UmVnaXN0ZXJBdE9mZnNldChYODZSZWdpc3RlcnM6OnIxNCwgb2Zmc2V0KSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1Ix
NToKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJl
Z2lzdGVyczo6cjE1LCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
CisgICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUkJQOgorICAgICAgICAgICAgbV9yZWdp
c3RlcnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjplYnAsIG9mZnNldCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIG9mZnNldCArPSA4OworICAgIH0KKyAgICAKKyAgICBzdGQ6OnNvcnQobV9y
ZWdpc3RlcnMuYmVnaW4oKSwgbV9yZWdpc3RlcnMuZW5kKCkpOworfQorCit2b2lkIFVud2luZElu
Zm86OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBvdXQucHJpbnQobGlzdER1
bXAobV9yZWdpc3RlcnMpKTsKK30KKworUmVnaXN0ZXJBdE9mZnNldCogVW53aW5kSW5mbzo6Zmlu
ZChHUFJSZWcgZ3ByKSBjb25zdAoreworICAgIHJldHVybiB0cnlCaW5hcnlTZWFyY2g8UmVnaXN0
ZXJBdE9mZnNldCwgR1BSUmVnPihtX3JlZ2lzdGVycywgbV9yZWdpc3RlcnMuc2l6ZSgpLCBncHIs
IFJlZ2lzdGVyQXRPZmZzZXQ6OmdldEdQUik7Cit9CisKK3Vuc2lnbmVkIFVud2luZEluZm86Omlu
ZGV4T2YoR1BSUmVnIGdwcikgY29uc3QKK3sKKyAgICBpZiAoUmVnaXN0ZXJBdE9mZnNldCogcG9p
bnRlciA9IGZpbmQoZ3ByKSkKKyAgICAgICAgcmV0dXJuIHBvaW50ZXIgLSBtX3JlZ2lzdGVycy5i
ZWdpbigpOworICAgIHJldHVybiBVSU5UX01BWDsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMVW53aW5kSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMVW53aW5kSW5mby5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExVbndpbmRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIEZUTFVud2luZEluZm9faAorI2RlZmluZSBGVExVbndpbmRJbmZvX2gKKworI2lmIEVOQUJM
RShGVExfSklUKQorCisjaW5jbHVkZSAiRlRMR2VuZXJhdGVkRnVuY3Rpb24uaCIKKyNpbmNsdWRl
ICJGVExSZWdpc3RlckF0T2Zmc2V0LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRM
IHsKKworc3RydWN0IFVud2luZEluZm8geworICAgIFVud2luZEluZm8oKTsKKyAgICB+VW53aW5k
SW5mbygpOworICAgIAorICAgIHZvaWQgcGFyc2Uodm9pZCosIHNpemVfdCwgR2VuZXJhdGVkRnVu
Y3Rpb24pOworICAgIAorICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OworICAgIAor
ICAgIFJlZ2lzdGVyQXRPZmZzZXQqIGZpbmQoR1BSUmVnIGdwcikgY29uc3Q7CisgICAgdW5zaWdu
ZWQgaW5kZXhPZihHUFJSZWcgZ3ByKSBjb25zdDsgLy8gUmV0dXJucyBVSU5UX01BWCBpZiBub3Qg
Zm91bmQuCisgICAgCisgICAgVmVjdG9yPFJlZ2lzdGVyQXRPZmZzZXQ+IG1fcmVnaXN0ZXJzOwor
fTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9K
SVQpCisKKyNlbmRpZiAvLyBGVExVbndpbmRJbmZvX2gKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExWYWx1ZVJhbmdlLmgiCisKKyNpbmNs
dWRlICJGVExBYmJyZXZpYXRpb25zLmgiCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCit2b2lkIFZhbHVlUmFuZ2U6OmRlY29yYXRlSW5z
dHJ1Y3Rpb24oCisgICAgTENvbnRleHQgY29udGV4dCwgTFZhbHVlIGxvYWRJbnN0cnVjdGlvbiwg
dW5zaWduZWQgcmFuZ2VLaW5kKSBjb25zdAoreworICAgIGlmICghbV9yYW5nZU1ldGFkYXRhKQor
ICAgICAgICBtX3JhbmdlTWV0YWRhdGEgPSBtZE5vZGUoY29udGV4dCwgbV9iZWdpbiwgbV9lbmQp
OworICAgIHNldE1ldGFkYXRhKGxvYWRJbnN0cnVjdGlvbiwgcmFuZ2VLaW5kLCBtX3JhbmdlTWV0
YWRhdGEpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFC
TEUoRlRMX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5n
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5n
ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVJh
bmdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZUTFZhbHVlUmFuZ2VfaAorI2Rl
ZmluZSBGVExWYWx1ZVJhbmdlX2gKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAi
RlRMQWJicmV2aWF0ZWRUeXBlcy5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7
CisKK2NsYXNzIFZhbHVlUmFuZ2UgeworcHVibGljOgorICAgIFZhbHVlUmFuZ2UoKQorICAgICAg
ICA6IG1fYmVnaW4oMCkKKyAgICAgICAgLCBtX2VuZCgwKQorICAgICAgICAsIG1fcmFuZ2VNZXRh
ZGF0YSgwKQorICAgIHsKKyAgICB9CisgICAgCisgICAgVmFsdWVSYW5nZShMVmFsdWUgYmVnaW4s
IExWYWx1ZSBlbmQpCisgICAgICAgIDogbV9iZWdpbihiZWdpbikKKyAgICAgICAgLCBtX2VuZChl
bmQpCisgICAgICAgICwgbV9yYW5nZU1ldGFkYXRhKDApCisgICAgeworICAgIH0KKyAgICAKKyAg
ICBMVmFsdWUgYmVnaW4oKSBjb25zdCB7IHJldHVybiBtX2JlZ2luOyB9CisgICAgTFZhbHVlIGVu
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kOyB9CisgICAgCisgICAgdm9pZCBkZWNvcmF0ZUluc3Ry
dWN0aW9uKExDb250ZXh0LCBMVmFsdWUgbG9hZEluc3RydWN0aW9uLCB1bnNpZ25lZCByYW5nZUtp
bmQpIGNvbnN0OworICAgIAorcHJpdmF0ZToKKyAgICBMVmFsdWUgbV9iZWdpbjsKKyAgICBMVmFs
dWUgbV9lbmQ7CisgICAgbXV0YWJsZSBMVmFsdWUgbV9yYW5nZU1ldGFkYXRhOworfTsKKworfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNl
bmRpZiAvLyBGVExWYWx1ZVJhbmdlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29uc2VydmF0aXZlUm9vdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05OSw3ICs5OSw2IEBAIHZvaWQgQ29uc2VydmF0aXZlUm9vdHM6OmdlbmVyaWNBZGRT
cGFuKHYKICAgICAgICAgZW5kID0gc3dhcFRlbXA7CiAgICAgfQogCi0gICAgQVNTRVJUKChzdGF0
aWNfY2FzdDxjaGFyKj4oZW5kKSAtIHN0YXRpY19jYXN0PGNoYXIqPihiZWdpbikpIDwgMHgxMDAw
MDAwKTsKICAgICBBU1NFUlQoaXNQb2ludGVyQWxpZ25lZChiZWdpbikpOwogICAgIEFTU0VSVChp
c1BvaW50ZXJBbGlnbmVkKGVuZCkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSwgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDExLCAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBT
ZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNDUxLDI0ICs0NTEsMjcg
QEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoKQogICAgIGRvdWJsZSBnY1N0YXJ0VGltZSA9IFdURjo6
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAjZW5kaWYKIAorICAgIG1fY29kZUJsb2Nr
cy5jbGVhck1hcmtzKCk7CiAgICAgdm9pZCogZHVtbXk7Ci0gICAgCisKICAgICAvLyBXZSBnYXRo
ZXIgY29uc2VydmF0aXZlIHJvb3RzIGJlZm9yZSBjbGVhcmluZyBtYXJrIGJpdHMgYmVjYXVzZSBj
b25zZXJ2YXRpdmUKICAgICAvLyBnYXRoZXJpbmcgdXNlcyB0aGUgbWFyayBiaXRzIHRvIGRldGVy
bWluZSB3aGV0aGVyIGEgcmVmZXJlbmNlIGlzIHZhbGlkLgogICAgIENvbnNlcnZhdGl2ZVJvb3Rz
IG1hY2hpbmVUaHJlYWRSb290cygmbV9vYmplY3RTcGFjZS5ibG9ja3MoKSwgJm1fc3RvcmFnZVNw
YWNlKTsKICAgICBtX2ppdFN0dWJSb3V0aW5lcy5jbGVhck1hcmtzKCk7CiAgICAgewogICAgICAg
ICBHQ1BIQVNFKEdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKTsKLSAgICAgICAgbV9tYWNoaW5lVGhy
ZWFkcy5nYXRoZXJDb25zZXJ2YXRpdmVSb290cyhtYWNoaW5lVGhyZWFkUm9vdHMsICZkdW1teSk7
CisgICAgICAgIG1fbWFjaGluZVRocmVhZHMuZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMobWFjaGlu
ZVRocmVhZFJvb3RzLCBtX2ppdFN0dWJSb3V0aW5lcywgbV9jb2RlQmxvY2tzLCAmZHVtbXkpOwog
ICAgIH0KIAorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgQ29uc2VydmF0aXZlUm9vdHMg
c3RhY2tSb290cygmbV9vYmplY3RTcGFjZS5ibG9ja3MoKSwgJm1fc3RvcmFnZVNwYWNlKTsKLSAg
ICBtX2NvZGVCbG9ja3MuY2xlYXJNYXJrcygpOwogICAgIHsKICAgICAgICAgR0NQSEFTRShHYXRo
ZXJTdGFja1Jvb3RzKTsKICAgICAgICAgc3RhY2soKS5nYXRoZXJDb25zZXJ2YXRpdmVSb290cyhz
dGFja1Jvb3RzLCBtX2ppdFN0dWJSb3V0aW5lcywgbV9jb2RlQmxvY2tzKTsKLSAgICAgICAgc3Rh
Y2soKS5zYW5pdGl6ZVN0YWNrKCk7CiAgICAgfQorI2VuZGlmCisKKyAgICBzYW5pdGl6ZVN0YWNr
Rm9yVk0obV92bSk7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICBDb25zZXJ2YXRpdmVSb290
cyBzY3JhdGNoQnVmZmVyUm9vdHMoJm1fb2JqZWN0U3BhY2UuYmxvY2tzKCksICZtX3N0b3JhZ2VT
cGFjZSk7CkBAIC01MDUsMTIgKzUwOCwxNCBAQCB2b2lkIEhlYXA6Om1hcmtSb290cygpCiAgICAg
ICAgICAgICB2aXNpdG9yLmFwcGVuZChtYWNoaW5lVGhyZWFkUm9vdHMpOwogICAgICAgICAgICAg
dmlzaXRvci5kb25hdGVBbmREcmFpbigpOwogICAgICAgICB9CisjaWYgRU5BQkxFKExMSU5UX0Nf
TE9PUCkKICAgICAgICAgewogICAgICAgICAgICAgR0NQSEFTRShWaXNpdFN0YWNrUm9vdHMpOwog
ICAgICAgICAgICAgTUFSS19MT0dfUk9PVCh2aXNpdG9yLCAiU3RhY2siKTsKICAgICAgICAgICAg
IHZpc2l0b3IuYXBwZW5kKHN0YWNrUm9vdHMpOwogICAgICAgICAgICAgdmlzaXRvci5kb25hdGVB
bmREcmFpbigpOwogICAgICAgICB9CisjZW5kaWYKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAg
ICAgewogICAgICAgICAgICAgR0NQSEFTRShWaXNpdFNjcmF0Y2hCdWZmZXJSb290cyk7CkBAIC05
NTIsMTIgKzk1NywxMiBAQCB2b2lkIEhlYXA6OmNvbGxlY3QoKQogCiBib29sIEhlYXA6OmNvbGxl
Y3RJZk5lY2Vzc2FyeU9yRGVmZXIoKQogewotICAgIGlmIChtX2RlZmVycmFsRGVwdGgpCisgICAg
aWYgKGlzRGVmZXJyZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAorCiAgICAgaWYg
KCFzaG91bGRDb2xsZWN0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIGNv
bGxlY3QoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuaAkod29ya2luZyBjb3B5KQpAQCAtMTk3LDcgKzE5Nyw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAKICAgICAgICAgdm9pZCBhZGRSZWZlcmVuY2UoSlNDZWxsKiwgQXJyYXlCdWZmZXIq
KTsKICAgICAgICAgCi0gICAgICAgIGJvb2wgaXNEZWZlcnJlZCgpIGNvbnN0IHsgcmV0dXJuICEh
bV9kZWZlcnJhbERlcHRoOyB9CisgICAgICAgIGJvb2wgaXNEZWZlcnJlZCgpIGNvbnN0IHsgcmV0
dXJuICEhbV9kZWZlcnJhbERlcHRoIHx8IE9wdGlvbnM6OmRpc2FibGVHQygpOyB9CiAKICNpZiBV
U0UoQ0YpCiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgcmVsZWFzZVNvb24oUmV0
YWluUHRyPFQ+JiYpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0
YWNrTWFya2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9N
YWNoaW5lU3RhY2tNYXJrZXIuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MzIsNyArMjMyLDcgQEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6cmVtb3ZlQ3VycmVudFRocmVhZAog
I2RlZmluZSBSRUdJU1RFUl9CVUZGRVJfQUxJR05NRU5UCiAjZW5kaWYKIAotdm9pZCBNYWNoaW5l
VGhyZWFkczo6Z2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNl
cnZhdGl2ZVJvb3RzLCB2b2lkKiBzdGFja0N1cnJlbnQpCit2b2lkIE1hY2hpbmVUaHJlYWRzOjpn
YXRoZXJGcm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9v
dHMsIEpJVFN0dWJSb3V0aW5lU2V0JiBqaXRTdHViUm91dGluZXMsIENvZGVCbG9ja1NldCYgY29k
ZUJsb2Nrcywgdm9pZCogc3RhY2tDdXJyZW50KQogewogICAgIC8vIHNldGptcCBmb3JjZXMgdm9s
YXRpbGUgcmVnaXN0ZXJzIG9udG8gdGhlIHN0YWNrCiAgICAgam1wX2J1ZiByZWdpc3RlcnMgUkVH
SVNURVJfQlVGRkVSX0FMSUdOTUVOVDsKQEAgLTI0OCwxMiArMjQ4LDEyIEBAIHZvaWQgTWFjaGlu
ZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGgKICAgICB2b2lkKiByZWdpc3RlcnNCZWdpbiA9
ICZyZWdpc3RlcnM7CiAgICAgdm9pZCogcmVnaXN0ZXJzRW5kID0gcmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4ocm91bmRVcFRvTXVsdGlwbGVPZjxzaXplb2Yodm9pZCopPihyZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oJnJlZ2lzdGVycyArIDEpKSk7CiAgICAgc3dhcElmQmFja3dhcmRzKHJlZ2lz
dGVyc0JlZ2luLCByZWdpc3RlcnNFbmQpOwotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChyZWdp
c3RlcnNCZWdpbiwgcmVnaXN0ZXJzRW5kKTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQocmVn
aXN0ZXJzQmVnaW4sIHJlZ2lzdGVyc0VuZCwgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsK
IAogICAgIHZvaWQqIHN0YWNrQmVnaW4gPSBzdGFja0N1cnJlbnQ7CiAgICAgdm9pZCogc3RhY2tF
bmQgPSB3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5vcmlnaW4oKTsKICAgICBzd2FwSWZCYWNrd2Fy
ZHMoc3RhY2tCZWdpbiwgc3RhY2tFbmQpOwotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGFj
a0JlZ2luLCBzdGFja0VuZCk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrQmVnaW4s
IHN0YWNrRW5kLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogfQogCiBzdGF0aWMgaW5s
aW5lIHZvaWQgc3VzcGVuZFRocmVhZChjb25zdCBQbGF0Zm9ybVRocmVhZCYgcGxhdGZvcm1UaHJl
YWQpCkBAIC00MzQsMjQgKzQzNCwyNCBAQCBzdGF0aWMgdm9pZCBmcmVlUGxhdGZvcm1UaHJlYWRS
ZWdpc3RlcnMoCiAjZW5kaWYKIH0KIAotdm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJvbU90
aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgVGhyZWFkKiB0
aHJlYWQpCit2b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29uc2Vy
dmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBUaHJlYWQqIHRocmVhZCwgSklUU3R1YlJv
dXRpbmVTZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzKQogewog
ICAgIFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzIHJlZ3M7CiAgICAgc2l6ZV90IHJlZ1NpemUgPSBn
ZXRQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyh0aHJlYWQtPnBsYXRmb3JtVGhyZWFkLCByZWdzKTsK
IAotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGF0aWNfY2FzdDx2b2lkKj4oJnJlZ3MpLCBz
dGF0aWNfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJnJlZ3MpICsgcmVnU2l6
ZSkpOworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGF0aWNfY2FzdDx2b2lkKj4oJnJlZ3Mp
LCBzdGF0aWNfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJnJlZ3MpICsgcmVn
U2l6ZSksIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiAKICAgICB2b2lkKiBzdGFja1Bv
aW50ZXIgPSBvdGhlclRocmVhZFN0YWNrUG9pbnRlcihyZWdzKTsKICAgICB2b2lkKiBzdGFja0Jh
c2UgPSB0aHJlYWQtPnN0YWNrQmFzZTsKICAgICBzd2FwSWZCYWNrd2FyZHMoc3RhY2tQb2ludGVy
LCBzdGFja0Jhc2UpOwotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGFja1BvaW50ZXIsIHN0
YWNrQmFzZSk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrUG9pbnRlciwgc3RhY2tC
YXNlLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogCiAgICAgZnJlZVBsYXRmb3JtVGhy
ZWFkUmVnaXN0ZXJzKHJlZ3MpOwogfQogCi12b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJDb25z
ZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIHZvaWQq
IHN0YWNrQ3VycmVudCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckNvbnNlcnZhdGl2ZVJv
b3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgSklUU3R1YlJvdXRpbmVT
ZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzLCB2b2lkKiBzdGFj
a0N1cnJlbnQpCiB7Ci0gICAgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoY29uc2VydmF0aXZlUm9v
dHMsIHN0YWNrQ3VycmVudCk7CisgICAgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoY29uc2VydmF0
aXZlUm9vdHMsIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcywgc3RhY2tDdXJyZW50KTsKIAog
ICAgIGlmIChtX3RocmVhZFNwZWNpZmljKSB7CiAgICAgICAgIFBsYXRmb3JtVGhyZWFkIGN1cnJl
bnRQbGF0Zm9ybVRocmVhZCA9IGdldEN1cnJlbnRQbGF0Zm9ybVRocmVhZCgpOwpAQCAtNDczLDcg
KzQ3Myw3IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckNvbnNlcnZhdGl2ZVIKICAgICAg
ICAgLy8gYW5kIHNpbmNlIHRoaXMgaXMgYSBzaGFyZWQgaGVhcCwgdGhleSBhcmUgcmVhbCBsb2Nr
cy4KICAgICAgICAgZm9yIChUaHJlYWQqIHRocmVhZCA9IG1fcmVnaXN0ZXJlZFRocmVhZHM7IHRo
cmVhZDsgdGhyZWFkID0gdGhyZWFkLT5uZXh0KSB7CiAgICAgICAgICAgICBpZiAoIWVxdWFsVGhy
ZWFkKHRocmVhZC0+cGxhdGZvcm1UaHJlYWQsIGN1cnJlbnRQbGF0Zm9ybVRocmVhZCkpCi0gICAg
ICAgICAgICAgICAgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKGNvbnNlcnZhdGl2ZVJvb3RzLCB0aHJl
YWQpOworICAgICAgICAgICAgICAgIGdhdGhlckZyb21PdGhlclRocmVhZChjb25zZXJ2YXRpdmVS
b290cywgdGhyZWFkLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogICAgICAgICB9CiAK
ICAgICAgICAgZm9yIChUaHJlYWQqIHRocmVhZCA9IG1fcmVnaXN0ZXJlZFRocmVhZHM7IHRocmVh
ZDsgdGhyZWFkID0gdGhyZWFkLT5uZXh0KSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDggKzI4LDEwIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCisgICAgY2xhc3MgQ29k
ZUJsb2NrU2V0OwogICAgIGNsYXNzIENvbnNlcnZhdGl2ZVJvb3RzOwogICAgIGNsYXNzIEhlYXA7
CisgICAgY2xhc3MgSklUU3R1YlJvdXRpbmVTZXQ7CiAKICAgICBjbGFzcyBNYWNoaW5lVGhyZWFk
cyB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1hY2hpbmVUaHJlYWRzKTsKQEAgLTM3
LDIwICszOSwyMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjaGluZVRocmVhZHMoSGVh
cCopOwogICAgICAgICB+TWFjaGluZVRocmVhZHMoKTsKIAotICAgICAgICB2b2lkIGdhdGhlckNv
bnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiwgdm9pZCogc3RhY2tDdXJyZW50KTsK
KyAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYs
IEpJVFN0dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jiwgdm9pZCogc3RhY2tDdXJyZW50KTsK
IAogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIG1ha2VVc2FibGVGcm9tTXVsdGlwbGVU
aHJlYWRzKCk7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgYWRkQ3VycmVudFRocmVh
ZCgpOyAvLyBPbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBieSBjbGllbnRzIHRoYXQgY2FuIHVzZSB0
aGUgc2FtZSBoZWFwIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHZvaWQgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmLCB2b2lk
KiBzdGFja0N1cnJlbnQpOworICAgICAgICB2b2lkIGdhdGhlckZyb21DdXJyZW50VGhyZWFkKENv
bnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2RlQmxvY2tTZXQmLCB2b2lk
KiBzdGFja0N1cnJlbnQpOwogCiAgICAgICAgIGNsYXNzIFRocmVhZDsKIAogICAgICAgICBzdGF0
aWMgdm9pZCByZW1vdmVUaHJlYWQodm9pZCopOwogICAgICAgICB2b2lkIHJlbW92ZUN1cnJlbnRU
aHJlYWQoKTsKIAotICAgICAgICB2b2lkIGdhdGhlckZyb21PdGhlclRocmVhZChDb25zZXJ2YXRp
dmVSb290cyYsIFRocmVhZCopOworICAgICAgICB2b2lkIGdhdGhlckZyb21PdGhlclRocmVhZChD
b25zZXJ2YXRpdmVSb290cyYsIFRocmVhZCosIEpJVFN0dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2Nr
U2V0Jik7CiAKICAgICAgICAgTXV0ZXggbV9yZWdpc3RlcmVkVGhyZWFkc011dGV4OwogICAgICAg
ICBUaHJlYWQqIG1fcmVnaXN0ZXJlZFRocmVhZHM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExNiwxMSArMTE2LDExIEBAIENvZGVPcmlnaW4gQ2FsbEZyYW1lOjpjb2RlT3Jp
Z2luKCkKICAgICByZXR1cm4gQ29kZU9yaWdpbihsb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7
CiB9CiAKLVJlZ2lzdGVyKiBDYWxsRnJhbWU6OmZyYW1lRXh0ZW50SW50ZXJuYWwoKQorUmVnaXN0
ZXIqIENhbGxGcmFtZTo6dG9wT2ZGcmFtZUludGVybmFsKCkKIHsKICAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jayA9IHRoaXMtPmNvZGVCbG9jaygpOwogICAgIEFTU0VSVChjb2RlQmxvY2spOwotICAg
IHJldHVybiByZWdpc3RlcnMoKSArIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+
ZnJhbWVSZWdpc3RlckNvdW50KCkpLm9mZnNldCgpOworICAgIHJldHVybiByZWdpc3RlcnMoKSAr
IGNvZGVCbG9jay0+c3RhY2tQb2ludGVyT2Zmc2V0KCk7CiB9CiAKIEpTR2xvYmFsT2JqZWN0KiBD
YWxsRnJhbWU6OnZtRW50cnlHbG9iYWxPYmplY3QoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzYsMTUgKzE3NiwxMyBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAgICAgIC8vIENvZGVP
cmlnaW4oMCkgaWYgd2UncmUgaW4gbmF0aXZlIGNvZGUuCiAgICAgICAgIENvZGVPcmlnaW4gY29k
ZU9yaWdpbigpOwogCi0gICAgICAgIFJlZ2lzdGVyKiBmcmFtZUV4dGVudCgpCisgICAgICAgIFJl
Z2lzdGVyKiB0b3BPZkZyYW1lKCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGlzVk1FbnRy
eVNlbnRpbmVsKCkgfHwgIWNvZGVCbG9jaygpKQotICAgICAgICAgICAgICAgIHJldHVybiByZWdp
c3RlcnMoKSAtIDE7Ci0gICAgICAgICAgICByZXR1cm4gZnJhbWVFeHRlbnRJbnRlcm5hbCgpOwor
ICAgICAgICAgICAgICAgIHJldHVybiByZWdpc3RlcnMoKTsKKyAgICAgICAgICAgIHJldHVybiB0
b3BPZkZyYW1lSW50ZXJuYWwoKTsKICAgICAgICAgfQogICAgIAotICAgICAgICBSZWdpc3Rlciog
ZnJhbWVFeHRlbnRJbnRlcm5hbCgpOwotCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAg
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRWUEMoKSBjb25zdAogICAgICAgICB7CkBAIC0zMTgsNiArMzE2
LDggQEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICBFeGVjU3RhdGUoKTsKICAgICAgICAgfkV4
ZWNTdGF0ZSgpOwogCisgICAgICAgIFJlZ2lzdGVyKiB0b3BPZkZyYW1lSW50ZXJuYWwoKTsKKwog
ICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZSBmb3IgaW50ZXJuYWwgdXNlIGluIGRlYnVnZ2lu
ZyBhbmQgdmVyaWZpY2F0aW9uCiAgICAgICAgIC8vIGNvZGUgb25seSBhbmQgbm90IG1lYW50IGFz
IGFuIEFQSSBmb3IgZ2VuZXJhbCB1c2FnZToKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiUmVnRXhwUHJvdG90eXBlLmgi
CiAjaW5jbHVkZSAiUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKKyNpbmNs
dWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5oIgogI2luY2x1
ZGUgIlN0cmljdEV2YWxBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5saW5lcy5oIgpA
QCAtNzQsNiArNzUsNyBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+
CiAjaW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9XVEZUaHJlYWREYXRhLmg+CkBAIC04OSwyMiArOTEs
NiBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgSlNDIHsKIAotSW50ZXJwcmV0
ZXI6OkVycm9ySGFuZGxpbmdNb2RlOjpFcnJvckhhbmRsaW5nTW9kZShFeGVjU3RhdGUgKmV4ZWMp
Ci0gICAgOiBtX2ludGVycHJldGVyKCpleGVjLT5pbnRlcnByZXRlcigpKQotewotICAgIGlmICgh
bV9pbnRlcnByZXRlci5tX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRyeSkKLSAgICAgICAgbV9pbnRl
cnByZXRlci5zdGFjaygpLmVuYWJsZUVycm9yU3RhY2tSZXNlcnZlKCk7Ci0gICAgbV9pbnRlcnBy
ZXRlci5tX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRyeSsrOwotfQotCi1JbnRlcnByZXRlcjo6RXJy
b3JIYW5kbGluZ01vZGU6On5FcnJvckhhbmRsaW5nTW9kZSgpCi17Ci0gICAgbV9pbnRlcnByZXRl
ci5tX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRyeS0tOwotICAgIEFTU0VSVChtX2ludGVycHJldGVy
Lm1fZXJyb3JIYW5kbGluZ01vZGVSZWVudHJ5ID49IDApOwotICAgIGlmICghbV9pbnRlcnByZXRl
ci5tX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRyeSkKLSAgICAgICAgbV9pbnRlcnByZXRlci5zdGFj
aygpLmRpc2FibGVFcnJvclN0YWNrUmVzZXJ2ZSgpOwotfQotCiBKU1ZhbHVlIGV2YWwoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgaWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSkK
QEAgLTE1MiwyMiArMTM4LDI1IEBAIEpTVmFsdWUgZXZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
ICAgICByZXR1cm4gaW50ZXJwcmV0ZXItPmV4ZWN1dGUoZXZhbCwgY2FsbEZyYW1lLCB0aGlzVmFs
dWUsIGNhbGxlclNjb3BlQ2hhaW4pOwogfQogCi1DYWxsRnJhbWUqIHNpemVBbmRBbGxvY0ZyYW1l
Rm9yVmFyYXJncyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNTdGFjayogc3RhY2ssIEpTVmFsdWUg
YXJndW1lbnRzLCBpbnQgZmlyc3RGcmVlUmVnaXN0ZXIpCitDYWxsRnJhbWUqIHNpemVGcmFtZUZv
clZhcmFyZ3MoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTU3RhY2sqIHN0YWNrLCBKU1ZhbHVlIGFy
Z3VtZW50cywgaW50IGZpcnN0RnJlZVJlZ2lzdGVyKQogewogICAgIGlmICghYXJndW1lbnRzKSB7
IC8vIGYuYXBwbHkoeCwgYXJndW1lbnRzKSwgd2l0aCBhcmd1bWVudHMgdW5tb2RpZmllZC4KICAg
ICAgICAgdW5zaWduZWQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPSBjYWxsRnJhbWUtPmFy
Z3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCk7Ci0gICAgICAgIENhbGxGcmFtZSogbmV3Q2FsbEZy
YW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIGZpcnN0RnJl
ZVJlZ2lzdGVyIC0gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgLSBKU1N0YWNrOjpDYWxsRnJh
bWVIZWFkZXJTaXplIC0gMSk7Ci0gICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhp
cyA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzICsgMSB8fCAhc3RhY2stPmdyb3cobmV3Q2FsbEZy
YW1lLT5yZWdpc3RlcnMoKSkpIHsKLSAgICAgICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4
Y2VwdGlvbihjYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsK
KyAgICAgICAgdW5zaWduZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBU
b011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lzdGVy
ICsgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJT
aXplICsgMSk7CisgICAgICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpj
cmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0KTsK
KyAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID4gQXJndW1lbnRzOjpNYXhB
cmd1bWVudHMgKyAxIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5y
ZWdpc3RlcnMoKSkpIHsKKyAgICAgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxG
cmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4g
bmV3Q2FsbEZyYW1lOwogICAgIH0KIAogICAgIGlmIChhcmd1bWVudHMuaXNVbmRlZmluZWRPck51
bGwoKSkgewotICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3Jl
YXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBmaXJzdEZyZWVSZWdpc3RlciAtIDEgLSBKU1N0
YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gMSk7Ci0gICAgICAgIGlmICghc3RhY2stPmdyb3co
bmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKLSAgICAgICAgICAgIGNhbGxGcmFtZS0+dm0o
KS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxs
RnJhbWUpKTsKKyAgICAgICAgdW5zaWduZWQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPSAx
OworICAgICAgICB1bnNpZ25lZCBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRV
cFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCAgLWZpcnN0RnJlZVJlZ2lz
dGVyICsgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFk
ZXJTaXplICsgMSk7CisgICAgICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1l
OjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0
KTsKKyAgICAgICAgaWYgKCFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5y
ZWdpc3RlcnMoKSkpIHsKKyAgICAgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxG
cmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4g
bmV3Q2FsbEZyYW1lOwpAQCAtMTgxLDkgKzE3MCwxMCBAQCBDYWxsRnJhbWUqIHNpemVBbmRBbGxv
Y0ZyYW1lRm9yVmFyYXJncyhDCiAgICAgaWYgKGFzT2JqZWN0KGFyZ3VtZW50cyktPmNsYXNzSW5m
bygpID09IEFyZ3VtZW50czo6aW5mbygpKSB7CiAgICAgICAgIEFyZ3VtZW50cyogYXJnc09iamVj
dCA9IGFzQXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgICAgIHVuc2lnbmVkIGFyZ0NvdW50ID0g
YXJnc09iamVjdC0+bGVuZ3RoKGNhbGxGcmFtZSk7Ci0gICAgICAgIENhbGxGcmFtZSogbmV3Q2Fs
bEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIGZpcnN0
RnJlZVJlZ2lzdGVyIC0gQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7Ci0gICAg
ICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzIHx8ICFzdGFjay0+Z3Jv
dyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewotICAgICAgICAgICAgY2FsbEZyYW1lLT52
bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNh
bGxGcmFtZSkpOworICAgICAgICB1bnNpZ25lZCBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCA9IFdU
Rjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCAtZmlyc3RG
cmVlUmVnaXN0ZXIgKyBDYWxsRnJhbWU6Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsKKyAgICAg
ICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUt
PnJlZ2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAoYXJn
Q291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3RhY2stPmVuc3VyZUNhcGFjaXR5
Rm9yKG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAgICAgICAgICB0aHJvd1N0YWNr
T3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKQEAgLTE5Miw5ICsxODIsMTAgQEAgQ2Fs
bEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoQwogICAgIGlmIChpc0pTQXJyYXko
YXJndW1lbnRzKSkgewogICAgICAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkoYXJndW1lbnRz
KTsKICAgICAgICAgdW5zaWduZWQgYXJnQ291bnQgPSBhcnJheS0+bGVuZ3RoKCk7Ci0gICAgICAg
IENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5y
ZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJn
Q291bnQgKyAxKSk7Ci0gICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1l
bnRzIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewotICAgICAg
ICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25lZCBwYWRkZWRDYWxs
ZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJl
Z2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBDYWxsRnJhbWU6Om9mZnNldEZvcihhcmdD
b3VudCArIDEpKTsKKyAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6
OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQp
OworICAgICAgICBpZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3Rh
Y2stPmVuc3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAg
ICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKQEAgLTIw
Miw5ICsxOTMsMTAgQEAgQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoQwog
CiAgICAgSlNPYmplY3QqIGFyZ09iamVjdCA9IGFzT2JqZWN0KGFyZ3VtZW50cyk7CiAgICAgdW5z
aWduZWQgYXJnQ291bnQgPSBhcmdPYmplY3QtPmdldChjYWxsRnJhbWUsIGNhbGxGcmFtZS0+cHJv
cGVydHlOYW1lcygpLmxlbmd0aCkudG9VSW50MzIoY2FsbEZyYW1lKTsKLSAgICBDYWxsRnJhbWUq
IG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkg
KyBmaXJzdEZyZWVSZWdpc3RlciAtIENhbGxGcmFtZTo6b2Zmc2V0Rm9yKGFyZ0NvdW50ICsgMSkp
OwotICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzIHx8ICFzdGFjay0+
Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewotICAgICAgICBjYWxsRnJhbWUtPnZt
KCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCAgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNh
bGxGcmFtZSkpOworICAgIHVuc2lnbmVkIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpy
b3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIC1maXJzdEZyZWVS
ZWdpc3RlciArIENhbGxGcmFtZTo6b2Zmc2V0Rm9yKGFyZ0NvdW50ICsgMSkpOworICAgIENhbGxG
cmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3Rl
cnMoKSAtIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0KTsKKyAgICBpZiAoYXJnQ291bnQgPiBBcmd1
bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3RhY2stPmVuc3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxG
cmFtZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNh
bGxGcmFtZSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICByZXR1cm4gbmV3Q2FsbEZy
YW1lOwpAQCAtNDIxLDcgKzQxMyw2IEBAIHN0YXRpYyBib29sIHVud2luZENhbGxGcmFtZShTdGFj
a1Zpc2l0b3IKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHZpc2l0b3ItPmNhbGxGcmFt
ZSgpOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdmlzaXRvci0+Y29kZUJsb2NrKCk7Ci0g
ICAgQ29kZUJsb2NrKiBvbGRDb2RlQmxvY2sgPSBjb2RlQmxvY2s7CiAgICAgSlNTY29wZSogc2Nv
cGUgPSBjYWxsRnJhbWUtPnNjb3BlKCk7CiAKICAgICBpZiAoRGVidWdnZXIqIGRlYnVnZ2VyID0g
Y2FsbEZyYW1lLT52bUVudHJ5R2xvYmFsT2JqZWN0KCktPmRlYnVnZ2VyKCkpIHsKQEAgLTQzMiwx
NiArNDIzLDE2IEBAIHN0YXRpYyBib29sIHVud2luZENhbGxGcmFtZShTdGFja1Zpc2l0b3IKICAg
ICB9CiAKICAgICBKU1ZhbHVlIGFjdGl2YXRpb247Ci0gICAgaWYgKG9sZENvZGVCbG9jay0+Y29k
ZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUgJiYgb2xkQ29kZUJsb2NrLT5uZWVkc0FjdGl2YXRpb24o
KSkgeworICAgIGlmIChjb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlICYmIGNv
ZGVCbG9jay0+bmVlZHNBY3RpdmF0aW9uKCkpIHsKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoIXZpc2l0b3ItPmlzSW5saW5lZEZyYW1lKCkpOwogI2VuZGlmCi0g
ICAgICAgIGFjdGl2YXRpb24gPSBjYWxsRnJhbWUtPnVuY2hlY2tlZFIob2xkQ29kZUJsb2NrLT5h
Y3RpdmF0aW9uUmVnaXN0ZXIoKS5vZmZzZXQoKSkuanNWYWx1ZSgpOworICAgICAgICBhY3RpdmF0
aW9uID0gY2FsbEZyYW1lLT51bmNoZWNrZWRSKGNvZGVCbG9jay0+YWN0aXZhdGlvblJlZ2lzdGVy
KCkub2Zmc2V0KCkpLmpzVmFsdWUoKTsKICAgICAgICAgaWYgKGFjdGl2YXRpb24pCiAgICAgICAg
ICAgICBqc0Nhc3Q8SlNBY3RpdmF0aW9uKj4oYWN0aXZhdGlvbiktPnRlYXJPZmYoKnNjb3BlLT52
bSgpKTsKICAgICB9CiAKLSAgICBpZiAob2xkQ29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0
aW9uQ29kZSAmJiBvbGRDb2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSkgeworICAgIGlmIChjb2Rl
QmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlICYmIGNvZGVCbG9jay0+dXNlc0FyZ3Vt
ZW50cygpKSB7CiAgICAgICAgIGlmIChBcmd1bWVudHMqIGFyZ3VtZW50cyA9IHZpc2l0b3ItPmV4
aXN0aW5nQXJndW1lbnRzKCkpIHsKICAgICAgICAgICAgIGlmIChhY3RpdmF0aW9uKQogICAgICAg
ICAgICAgICAgIGFyZ3VtZW50cy0+ZGlkVGVhck9mZkFjdGl2YXRpb24oY2FsbEZyYW1lLCBqc0Nh
c3Q8SlNBY3RpdmF0aW9uKj4oYWN0aXZhdGlvbikpOwpAQCAtNDU1LDExICs0NDYsNyBAQCBzdGF0
aWMgYm9vbCB1bndpbmRDYWxsRnJhbWUoU3RhY2tWaXNpdG9yCiAgICAgfQogCiAgICAgQ2FsbEZy
YW1lKiBjYWxsZXJGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKLSAgICBpZiAoY2Fs
bGVyRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkpIHsKLSAgICAgICAgY2FsbEZyYW1lLT52bSgp
LnRvcENhbGxGcmFtZSA9IGNhbGxlckZyYW1lLT52bUVudHJ5U2VudGluZWxDYWxsZXJGcmFtZSgp
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOworICAgIHJl
dHVybiAhY2FsbGVyRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCk7CiB9CiAKIHN0YXRpYyBTdGFj
a0ZyYW1lQ29kZVR5cGUgZ2V0U3RhY2tGcmFtZUNvZGVUeXBlKFN0YWNrVmlzaXRvciYgdmlzaXRv
cikKQEAgLTY2Miw3ICs2NDksMTcgQEAgcHJpdmF0ZToKIAogTkVWRVJfSU5MSU5FIEhhbmRsZXJJ
bmZvKiBJbnRlcnByZXRlcjo6dW53aW5kKENhbGxGcmFtZSomIGNhbGxGcmFtZSwgSlNWYWx1ZSYg
ZXhjZXB0aW9uVmFsdWUpCiB7CisgICAgaWYgKGNhbGxGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwo
KSkgeworICAgICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiB3ZSB0aHJvdyBzdGFjayBvdmVyZmxv
dyBpbiBhIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkCisgICAgICAgIC8vIGRpcmVjdGx5IGZyb20g
Y2FsbFRvSmF2YVNjcmlwdC4gIFN0YWNrIG92ZXJmbG93IHRocm93cyB0aGUgZXhjZXB0aW9uIGlu
IHRoZQorICAgICAgICAvLyBjb250ZXh0IG9mIHRoZSBjYWxsZXIuICBJbiB0aGF0IGNhc2UgdGhl
IGNhbGxlciBpcyB0aGUgc2VudGluZWwgZnJhbWUuICBUaGUKKyAgICAgICAgLy8gcmlnaHQgdGhp
bmcgdG8gZG8gaXMgdG8gcHJldGVuZCB0aGF0IHRoZSBleGNlcHRpb24gaXMgdW5jYXVnaHQgc28g
dGhhdCB3ZQorICAgICAgICAvLyBnbyB0byB0aGUgdW5jYXVnaHQgZXhjZXB0aW9uIGhhbmRsZXIs
IHdoaWNoIHJldHVybnMgdGhyb3VnaCBjYWxsVG9KYXZhU2NyaXB0LgorICAgICAgICByZXR1cm4g
MDsKKyAgICB9CisgICAgCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNv
ZGVCbG9jaygpOworICAgIEFTU0VSVChjb2RlQmxvY2spOwogICAgIGJvb2wgaXNUZXJtaW5hdGlv
biA9IGZhbHNlOwogCiAgICAgQVNTRVJUKCFleGNlcHRpb25WYWx1ZS5pc0VtcHR5KCkpOwpAQCAt
NzY3LDcgKzc2NCw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoUHJvZ3JhbUV4ZWMK
ICAgICBpZiAodm0uaXNDb2xsZWN0b3JCdXN5KCkpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsK
IAotICAgIFZNRW50cnlTY29wZSBlbnRyeVNjb3BlKHZtLCBzY29wZS0+Z2xvYmFsT2JqZWN0KCkp
OwogICAgIGlmICghdm0uaXNTYWZlVG9SZWN1cnNlKCkpCiAgICAgICAgIHJldHVybiBjaGVja2Vk
UmV0dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwogCkBAIC04NzQsNiAr
ODcwLDggQEAgZmFpbGVkSlNPTlA6CiAgICAgLy8gSWYgd2UgZ2V0IGhlcmUsIHRoZW4gd2UgaGF2
ZSBhbHJlYWR5IHByb3ZlbiB0aGF0IHRoZSBzY3JpcHQgaXMgbm90IGEgSlNPTgogICAgIC8vIG9i
amVjdC4KIAorICAgIFZNRW50cnlTY29wZSBlbnRyeVNjb3BlKHZtLCBzY29wZS0+Z2xvYmFsT2Jq
ZWN0KCkpOworCiAgICAgLy8gQ29tcGlsZSBzb3VyY2UgdG8gYnl0ZWNvZGUgaWYgbmVjZXNzYXJ5
OgogICAgIGlmIChKU09iamVjdCogZXJyb3IgPSBwcm9ncmFtLT5pbml0aWFsaXplR2xvYmFsUHJv
cGVydGllcyh2bSwgY2FsbEZyYW1lLCBzY29wZSkpCiAgICAgICAgIHJldHVybiBjaGVja2VkUmV0
dXJuKGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGVycm9yKSk7CkBA
IC04ODgsOSArODg2LDYgQEAgZmFpbGVkSlNPTlA6CiAKICAgICBBU1NFUlQoY29kZUJsb2NrLT5u
dW1QYXJhbWV0ZXJzKCkgPT0gMSk7IC8vIDEgcGFyYW1ldGVyIGZvciAndGhpcycuCiAKLSAgICBp
ZiAoVU5MSUtFTFkoIW1fc3RhY2suZW50cnlDaGVjayhjb2RlQmxvY2ssIDEpKSkKLSAgICAgICAg
cmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7
Ci0KICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFt
ZS5pbml0KGNvZGVCbG9jaywgc2NvcGUsIDAsIHRoaXNPYmosIDEpOwogCkBAIC05MDMsNyArODk4
LDcgQEAgZmFpbGVkSlNPTlA6CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxs
UmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRv
Z1Njb3BlKHZtLndhdGNoZG9nKTsKIAotICAgICAgICByZXN1bHQgPSBwcm9ncmFtLT5nZW5lcmF0
ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9w
T2ZTdGFjaygpKTsKKyAgICAgICAgcmVzdWx0ID0gcHJvZ3JhbS0+Z2VuZXJhdGVkSklUQ29kZSgp
LT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKICAgICBpZiAoTGVnYWN5
UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCkBAIC05NTEsOSArOTQ2
LDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYQogICAgIGlmIChV
TkxJS0VMWSh2bS53YXRjaGRvZy5kaWRGaXJlKGNhbGxGcmFtZSkpKQogICAgICAgICByZXR1cm4g
dGhyb3dUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGNhbGxGcmFtZSk7CiAKLSAgICBpZiAo
VU5MSUtFTFkoIW1fc3RhY2suZW50cnlDaGVjayhuZXdDb2RlQmxvY2ssIGFyZ3NDb3VudCkpKQot
ICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxs
RnJhbWUpKTsKLQogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3Rv
Q2FsbEZyYW1lLmluaXQobmV3Q29kZUJsb2NrLCBzY29wZSwgZnVuY3Rpb24sIHRoaXNWYWx1ZSwg
YXJnc0NvdW50LCBhcmdzLmRhdGEoKSk7CiAKQEAgLTk2Nyw5ICs5NTksMTIgQEAgSlNWYWx1ZSBJ
bnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYQogCiAgICAgICAgIC8vIEV4ZWN1dGUgdGhl
IGNvZGU6CiAgICAgICAgIGlmIChpc0pTQ2FsbCkKLSAgICAgICAgICAgIHJlc3VsdCA9IGNhbGxE
YXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+ZXhl
Y3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbFRvTmF0
aXZlRnVuY3Rpb24ocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY2FsbERhdGEubmF0aXZlLmZ1bmN0
aW9uKSwgJnZtLnRvcENhbGxGcmFtZSwgJnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNrLmdldFRvcE9m
U3RhY2soKSkpOworICAgICAgICAgICAgcmVzdWx0ID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVj
dXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2Fs
bEZyYW1lKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBKU1ZhbHVlOjpk
ZWNvZGUoY2FsbFRvTmF0aXZlRnVuY3Rpb24ocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uKSwgJnZtLCAmcHJvdG9DYWxsRnJhbWUpKTsKKyAgICAgICAgICAg
IGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9
IGpzTnVsbCgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBw
cm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQpAQCAtMTAxOSw5ICsxMDE0LDYgQEAgSlNP
YmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KAogICAgIGlmIChVTkxJS0VMWSh2
bS53YXRjaGRvZy5kaWRGaXJlKGNhbGxGcmFtZSkpKQogICAgICAgICByZXR1cm4gdGhyb3dUZXJt
aW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGNhbGxGcmFtZSk7CiAKLSAgICBpZiAoVU5MSUtFTFko
IW1fc3RhY2suZW50cnlDaGVjayhuZXdDb2RlQmxvY2ssIGFyZ3NDb3VudCkpKQotICAgICAgICBy
ZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsK
LQogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1l
LmluaXQobmV3Q29kZUJsb2NrLCBzY29wZSwgY29uc3RydWN0b3IsIGpzVW5kZWZpbmVkKCksIGFy
Z3NDb3VudCwgYXJncy5kYXRhKCkpOwogCkBAIC0xMDM1LDkgKzEwMjcsOSBAQCBKU09iamVjdCog
SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoCiAKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUg
Y29kZS4KICAgICAgICAgaWYgKGlzSlNDb25zdHJ1Y3QpCi0gICAgICAgICAgICByZXN1bHQgPSBj
b25zdHJ1Y3REYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNv
bnN0cnVjdCgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNrLmdldFRvcE9m
U3RhY2soKSk7CisgICAgICAgICAgICByZXN1bHQgPSBjb25zdHJ1Y3REYXRhLmpzLmZ1bmN0aW9u
RXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNvbnN0cnVjdCgpLT5leGVjdXRlKCZ2bSwg
JnByb3RvQ2FsbEZyYW1lKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBK
U1ZhbHVlOjpkZWNvZGUoY2FsbFRvTmF0aXZlRnVuY3Rpb24ocmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0udG9wQ2FsbEZyYW1lLCAmcHJv
dG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKSk7CisgICAgICAgICAgICByZXN1
bHQgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbFRvTmF0aXZlRnVuY3Rpb24ocmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0sICZwcm90b0NhbGxG
cmFtZSkpOwogCiAgICAgICAgICAgICBpZiAoIWNhbGxGcmFtZS0+aGFkRXhjZXB0aW9uKCkpCiAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVzdWx0LmlzT2JqZWN0KCkpOwpAQCAtMTA3
MiwxMSArMTA2NCw2IEBAIENhbGxGcmFtZUNsb3N1cmUgSW50ZXJwcmV0ZXI6OnByZXBhcmVGb3IK
IAogICAgIHNpemVfdCBhcmdzQ291bnQgPSBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsKIAot
ICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5lbnRyeUNoZWNrKG5ld0NvZGVCbG9jaywgYXJnc0Nv
dW50KSkpIHsKLSAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKLSAg
ICAgICAgcmV0dXJuIENhbGxGcmFtZUNsb3N1cmUoKTsKLSAgICB9Ci0KICAgICBwcm90b0NhbGxG
cmFtZS0+aW5pdChuZXdDb2RlQmxvY2ssIHNjb3BlLCBmdW5jdGlvbiwganNVbmRlZmluZWQoKSwg
YXJnc0NvdW50LCBhcmdzKTsKICAgICAvLyBSZXR1cm4gdGhlIHN1Y2Nlc3NmdWwgY2xvc3VyZToK
ICAgICBDYWxsRnJhbWVDbG9zdXJlIHJlc3VsdCA9IHsgY2FsbEZyYW1lLCBwcm90b0NhbGxGcmFt
ZSwgZnVuY3Rpb24sIGZ1bmN0aW9uRXhlY3V0YWJsZSwgJnZtLCBzY29wZSwgbmV3Q29kZUJsb2Nr
LT5udW1QYXJhbWV0ZXJzKCksIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzIH07CkBAIC0xMTA3
LDcgKzEwOTQsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKENhbGxGcmFtZUNsCiAg
ICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQo
KSk7CiAgICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRvZ1Njb3BlKHZtLndhdGNoZG9nKTsK
IAotICAgICAgICByZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVk
SklUQ29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJvdG9DYWxsRnJhbWUsIG1f
c3RhY2suZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICAgICAgcmVzdWx0ID0gY2xvc3VyZS5mdW5jdGlv
bkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCktPmV4ZWN1dGUoJnZtLCBjbG9z
dXJlLnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKICAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHBy
b2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCkBAIC0xMTc4LDkgKzExNjUsNiBAQCBKU1Zh
bHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVjdXRhCiAKICAgICBBU1NFUlQoY29kZUJs
b2NrLT5udW1QYXJhbWV0ZXJzKCkgPT0gMSk7IC8vIDEgcGFyYW1ldGVyIGZvciAndGhpcycuCiAK
LSAgICBpZiAoVU5MSUtFTFkoIW1fc3RhY2suZW50cnlDaGVjayhjb2RlQmxvY2ssIDEpKSkKLSAg
ICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZy
YW1lKSk7Ci0KICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0Nh
bGxGcmFtZS5pbml0KGNvZGVCbG9jaywgc2NvcGUsIDAsIHRoaXNWYWx1ZSwgMSk7CiAKQEAgLTEx
OTMsNyArMTE3Nyw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGEK
ICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdl
dCgpKTsKICAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cp
OwogCi0gICAgICAgIHJlc3VsdCA9IGV2YWwtPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhlY3V0ZSgm
dm0sICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpOworICAgICAgICBy
ZXN1bHQgPSBldmFsLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxs
RnJhbWUpOwogICAgIH0KIAogICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5l
bmFibGVkUHJvZmlsZXIoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTgw
LDYgKzE4MCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIEFTU0VSVCghY2FsbEZy
YW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpKTsKICAgICAgICAgICAgIHZtLT50b3BDYWxsRnJhbWUg
PSBjYWxsRnJhbWU7CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGVudW0gVk1FbnRyeVNl
bnRpbmVsT0tUYWcgeyBWTUVudHJ5U2VudGluZWxPSyB9OworICAgICAgICBBTFdBWVNfSU5MSU5F
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlcihWTSogdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBWTUVu
dHJ5U2VudGluZWxPS1RhZykKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHZtKTsKKyAg
ICAgICAgICAgIEFTU0VSVChjYWxsRnJhbWUpOworICAgICAgICAgICAgaWYgKCFjYWxsRnJhbWUt
PmlzVk1FbnRyeVNlbnRpbmVsKCkpCisgICAgICAgICAgICAgICAgdm0tPnRvcENhbGxGcmFtZSA9
IGNhbGxGcmFtZTsKKyAgICAgICAgfQogICAgIH07CiAKICAgICBjbGFzcyBJbnRlcnByZXRlciB7
CkBAIC0xOTAsMTQgKzE5OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBmcmllbmQgY2xh
c3MgVk07CiAKICAgICBwdWJsaWM6Ci0gICAgICAgIGNsYXNzIEVycm9ySGFuZGxpbmdNb2RlIHsK
LSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgRXJyb3JIYW5k
bGluZ01vZGUoRXhlY1N0YXRlKik7Ci0gICAgICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB+RXJy
b3JIYW5kbGluZ01vZGUoKTsKLSAgICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgIEludGVycHJl
dGVyJiBtX2ludGVycHJldGVyOwotICAgICAgICB9OwotCiAgICAgICAgIEludGVycHJldGVyKFZN
ICYpOwogICAgICAgICB+SW50ZXJwcmV0ZXIoKTsKICAgICAgICAgCkBAIC0yMzcsOCArMjM4LDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBTYW1wbGluZ1Rvb2wqIHNhbXBs
ZXIoKSB7IHJldHVybiBtX3NhbXBsZXIuZ2V0KCk7IH0KIAotICAgICAgICBib29sIGlzSW5FcnJv
ckhhbmRsaW5nTW9kZSgpIHsgcmV0dXJuIG1fZXJyb3JIYW5kbGluZ01vZGVSZWVudHJ5OyB9Ci0K
ICAgICAgICAgTkVWRVJfSU5MSU5FIEhhbmRsZXJJbmZvKiB1bndpbmQoQ2FsbEZyYW1lKiYsIEpT
VmFsdWUmKTsKICAgICAgICAgTkVWRVJfSU5MSU5FIHZvaWQgZGVidWcoQ2FsbEZyYW1lKiwgRGVi
dWdIb29rSUQpOwogICAgICAgICBKU1N0cmluZyogc3RhY2tUcmFjZUFzU3RyaW5nKEV4ZWNTdGF0
ZSosIFZlY3RvcjxTdGFja0ZyYW1lPik7CkBAIC0yODYsNyArMjg1LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgfTsKIAogICAgIEpTVmFsdWUgZXZhbChDYWxsRnJhbWUqKTsKLSAgICBDYWxsRnJh
bWUqIHNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhDYWxsRnJhbWUqLCBKU1N0YWNrKiwgSlNW
YWx1ZSwgaW50KTsKKyAgICBDYWxsRnJhbWUqIHNpemVGcmFtZUZvclZhcmFyZ3MoQ2FsbEZyYW1l
KiwgSlNTdGFjayosIEpTVmFsdWUsIGludCk7CiAgICAgdm9pZCBsb2FkVmFyYXJncyhDYWxsRnJh
bWUqLCBDYWxsRnJhbWUqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKIH0gLy8gbmFtZXNwYWNlIEpTQwog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3Bw
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SlNTdGFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDkgKzMxLDExIEBACiAK
ICNpbmNsdWRlICJDb25zZXJ2YXRpdmVSb290cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgi
CisjaW5jbHVkZSAiT3B0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2lmIEVOQUJMRShM
TElOVF9DX0xPT1ApCiBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVzQ291bnQgPSAwOwogCiBz
dGF0aWMgTXV0ZXgmIHN0YWNrU3RhdGlzdGljc011dGV4KCkKQEAgLTQxLDg3ICs0Myw5OCBAQCBz
dGF0aWMgTXV0ZXgmIHN0YWNrU3RhdGlzdGljc011dGV4KCkKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKE11dGV4LCBzdGF0aWNNdXRleCwgKCkpOwogICAgIHJldHVybiBzdGF0aWNNdXRleDsKIH0g
ICAgCisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAotSlNTdGFjazo6SlNTdGFjayhW
TSYgdm0sIHNpemVfdCBjYXBhY2l0eSkKK0pTU3RhY2s6OkpTU3RhY2soVk0mIHZtKQogICAgIDog
bV92bSh2bSkKLSAgICAsIG1fZW5kKDApCiAgICAgLCBtX3RvcENhbGxGcmFtZSh2bS50b3BDYWxs
RnJhbWUpCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICAsIG1fZW5kKDApCisgICAgLCBt
X3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVycygwKQorI2VuZGlmCiB7CisjaWYgRU5BQkxFKExM
SU5UX0NfTE9PUCkKKyAgICBzaXplX3QgY2FwYWNpdHkgPSBPcHRpb25zOjptYXhQZXJUaHJlYWRT
dGFja1VzYWdlKCk7CiAgICAgQVNTRVJUKGNhcGFjaXR5ICYmIGlzUGFnZUFsaWduZWQoY2FwYWNp
dHkpKTsKIAotICAgIG1fcmVzZXJ2YXRpb24gPSBQYWdlUmVzZXJ2YXRpb246OnJlc2VydmUocm91
bmRVcEFsbG9jYXRpb25TaXplKGNhcGFjaXR5ICogc2l6ZW9mKFJlZ2lzdGVyKSwgY29tbWl0U2l6
ZSksIE9TQWxsb2NhdG9yOjpKU1ZNU3RhY2tQYWdlcyk7Ci0gICAgdXBkYXRlU3RhY2tMaW1pdCho
aWdoQWRkcmVzcygpKTsKLSAgICBtX2NvbW1pdEVuZCA9IGhpZ2hBZGRyZXNzKCk7CisgICAgbV9y
ZXNlcnZhdGlvbiA9IFBhZ2VSZXNlcnZhdGlvbjo6cmVzZXJ2ZShXVEY6OnJvdW5kVXBUb011bHRp
cGxlT2YoY29tbWl0U2l6ZSwgY2FwYWNpdHkpLCBPU0FsbG9jYXRvcjo6SlNWTVN0YWNrUGFnZXMp
OworICAgIHNldFN0YWNrTGltaXQoaGlnaEFkZHJlc3MoKSk7CisgICAgbV9jb21taXRUb3AgPSBo
aWdoQWRkcmVzcygpOwogICAgIAotICAgIG1fbGFzdFN0YWNrVG9wID0gZ2V0QmFzZU9mU3RhY2so
KTsKLQotICAgIGRpc2FibGVFcnJvclN0YWNrUmVzZXJ2ZSgpOworICAgIG1fbGFzdFN0YWNrVG9w
ID0gYmFzZU9mU3RhY2soKTsKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09QKQogCiAgICAg
bV90b3BDYWxsRnJhbWUgPSAwOwogfQogCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKIEpTU3Rh
Y2s6On5KU1N0YWNrKCkKIHsKLSAgICB2b2lkKiBoaWdoQWRkcmVzcyA9IHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KHN0YXRpY19jYXN0PGNoYXIqPihtX3Jlc2VydmF0aW9uLmJhc2UoKSkgKyBtX3Jl
c2VydmF0aW9uLnNpemUoKSk7Ci0gICAgbV9yZXNlcnZhdGlvbi5kZWNvbW1pdChyZWludGVycHJl
dF9jYXN0PHZvaWQqPihtX2NvbW1pdEVuZCksIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGhp
Z2hBZGRyZXNzKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KG1fY29tbWl0RW5kKSk7Ci0g
ICAgYWRkVG9Db21taXR0ZWRCeXRlQ291bnQoLShyZWludGVycHJldF9jYXN0PGludHB0cl90Piho
aWdoQWRkcmVzcykgLSByZWludGVycHJldF9jYXN0PGludHB0cl90PihtX2NvbW1pdEVuZCkpKTsK
KyAgICBwdHJkaWZmX3Qgc2l6ZVRvRGVjb21taXQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPiho
aWdoQWRkcmVzcygpKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0VG9wKTsKKyAg
ICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fY29tbWl0
VG9wKSwgc2l6ZVRvRGVjb21taXQpOworICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KC1zaXpl
VG9EZWNvbW1pdCk7CiAgICAgbV9yZXNlcnZhdGlvbi5kZWFsbG9jYXRlKCk7CiB9CiAKLWJvb2wg
SlNTdGFjazo6Z3Jvd1Nsb3dDYXNlKFJlZ2lzdGVyKiBuZXdFbmQpCitib29sIEpTU3RhY2s6Omdy
b3dTbG93Q2FzZShSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKIHsKKyAgICBSZWdpc3RlciogbmV3
VG9wT2ZTdGFja1dpdGhSZXNlcnZlZFpvbmUgPSBuZXdUb3BPZlN0YWNrIC0gbV9yZXNlcnZlZFpv
bmVTaXplSW5SZWdpc3RlcnM7CisKICAgICAvLyBJZiB3ZSBoYXZlIGFscmVhZHkgY29tbWl0dGVk
IGVub3VnaCBtZW1vcnkgdG8gc2F0aXNmeSB0aGlzIHJlcXVlc3QsCiAgICAgLy8ganVzdCB1cGRh
dGUgdGhlIGVuZCBwb2ludGVyIGFuZCByZXR1cm4uCi0gICAgaWYgKG5ld0VuZCA+PSBtX2NvbW1p
dEVuZCkgewotICAgICAgICB1cGRhdGVTdGFja0xpbWl0KG5ld0VuZCk7CisgICAgaWYgKG5ld1Rv
cE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lID49IG1fY29tbWl0VG9wKSB7CisgICAgICAgIHNldFN0
YWNrTGltaXQobmV3VG9wT2ZTdGFjayk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAog
ICAgIC8vIENvbXB1dGUgdGhlIGNodW5rIHNpemUgb2YgYWRkaXRpb25hbCBtZW1vcnkgdG8gY29t
bWl0LCBhbmQgc2VlIGlmIHdlCiAgICAgLy8gaGF2ZSBpdCBpcyBzdGlsbCB3aXRoaW4gb3VyIGJ1
ZGdldC4gSWYgbm90LCB3ZSdsbCBmYWlsIHRvIGdyb3cgYW5kCiAgICAgLy8gcmV0dXJuIGZhbHNl
LgotICAgIGxvbmcgZGVsdGEgPSByb3VuZFVwQWxsb2NhdGlvblNpemUocmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4obV9jb21taXRFbmQpIC0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obmV3RW5kKSwg
Y29tbWl0U2l6ZSk7Ci0gICAgaWYgKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0RW5k
KSAtIGRlbHRhIDw9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fdXNlYWJsZUVuZCkpCisgICAg
cHRyZGlmZl90IGRlbHRhID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRUb3ApIC0g
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obmV3VG9wT2ZTdGFja1dpdGhSZXNlcnZlZFpvbmUpOwor
ICAgIGRlbHRhID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKGNvbW1pdFNpemUsIGRlbHRhKTsK
KyAgICBSZWdpc3RlciogbmV3Q29tbWl0VG9wID0gbV9jb21taXRUb3AgLSAoZGVsdGEgLyBzaXpl
b2YoUmVnaXN0ZXIpKTsKKyAgICBpZiAobmV3Q29tbWl0VG9wIDwgcmVzZXJ2YXRpb25Ub3AoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gT3RoZXJ3aXNlLCB0aGUgZ3Jvd3RoIGlz
IHN0aWxsIHdpdGhpbiBvdXIgYnVkZ2V0LiBHbyBhaGVhZCBhbmQgY29tbWl0CiAgICAgLy8gaXQg
YW5kIHJldHVybiB0cnVlLgotICAgIG1fcmVzZXJ2YXRpb24uY29tbWl0KHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KG1fY29tbWl0RW5kKSAtIGRlbHRhLCBkZWx0YSk7CisgICAgbV9yZXNlcnZhdGlv
bi5jb21taXQobmV3Q29tbWl0VG9wLCBkZWx0YSk7CiAgICAgYWRkVG9Db21taXR0ZWRCeXRlQ291
bnQoZGVsdGEpOwotICAgIG1fY29tbWl0RW5kID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0
ZXIqPihyZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVuZCkgLSBkZWx0YSk7Ci0gICAg
dXBkYXRlU3RhY2tMaW1pdChuZXdFbmQpOworICAgIG1fY29tbWl0VG9wID0gbmV3Q29tbWl0VG9w
OworICAgIHNldFN0YWNrTGltaXQobmV3VG9wT2ZTdGFjayk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKIHZvaWQgSlNTdGFjazo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9v
dHMmIGNvbnNlcnZhdGl2ZVJvb3RzKQogewotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChnZXRC
YXNlT2ZTdGFjaygpLCBnZXRUb3BPZlN0YWNrKCkpOworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFk
ZCh0b3BPZlN0YWNrKCkgKyAxLCBoaWdoQWRkcmVzcygpKTsKIH0KIAogdm9pZCBKU1N0YWNrOjpn
YXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9v
dHMsIEpJVFN0dWJSb3V0aW5lU2V0JiBqaXRTdHViUm91dGluZXMsIENvZGVCbG9ja1NldCYgY29k
ZUJsb2NrcykKIHsKLSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoZ2V0QmFzZU9mU3RhY2soKSwg
Z2V0VG9wT2ZTdGFjaygpLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOworICAgIGNvbnNl
cnZhdGl2ZVJvb3RzLmFkZCh0b3BPZlN0YWNrKCkgKyAxLCBoaWdoQWRkcmVzcygpLCBqaXRTdHVi
Um91dGluZXMsIGNvZGVCbG9ja3MpOwogfQogCiB2b2lkIEpTU3RhY2s6OnNhbml0aXplU3RhY2so
KQogewotICAgIEFTU0VSVChnZXRUb3BPZlN0YWNrKCkgPD0gZ2V0QmFzZU9mU3RhY2soKSk7Cisg
ICAgQVNTRVJUKHRvcE9mU3RhY2soKSA8PSBiYXNlT2ZTdGFjaygpKTsKICAgICAKLSAgICBpZiAo
bV9sYXN0U3RhY2tUb3AgPCBnZXRUb3BPZlN0YWNrKCkpIHsKLSAgICAgICAgY2hhciogYmVnaW4g
PSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2xhc3RTdGFja1RvcCk7Ci0gICAgICAgIGNoYXIq
IGVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGdldFRvcE9mU3RhY2soKSk7CisgICAgaWYg
KG1fbGFzdFN0YWNrVG9wIDwgdG9wT2ZTdGFjaygpKSB7CisgICAgICAgIGNoYXIqIGJlZ2luID0g
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9sYXN0U3RhY2tUb3AgKyAxKTsKKyAgICAgICAgY2hh
ciogZW5kID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odG9wT2ZTdGFjaygpICsgMSk7CiAgICAg
ICAgIG1lbXNldChiZWdpbiwgMCwgZW5kIC0gYmVnaW4pOwogICAgIH0KICAgICAKLSAgICBtX2xh
c3RTdGFja1RvcCA9IGdldFRvcE9mU3RhY2soKTsKKyAgICBtX2xhc3RTdGFja1RvcCA9IHRvcE9m
U3RhY2soKTsKIH0KIAogdm9pZCBKU1N0YWNrOjpyZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKQogewot
ICAgIHB0cmRpZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihoaWdoQWRk
cmVzcygpKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX2NvbW1pdEVuZCk7Ci0gICAg
bV9yZXNlcnZhdGlvbi5kZWNvbW1pdChtX2NvbW1pdEVuZCwgZGVsdGEpOworICAgIFJlZ2lzdGVy
KiBoaWdoQWRkcmVzc1dpdGhSZXNlcnZlZFpvbmUgPSBoaWdoQWRkcmVzcygpIC0gbV9yZXNlcnZl
ZFpvbmVTaXplSW5SZWdpc3RlcnM7CisgICAgcHRyZGlmZl90IGRlbHRhID0gcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4oaGlnaEFkZHJlc3NXaXRoUmVzZXJ2ZWRab25lKSAtIHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KG1fY29tbWl0VG9wKTsKKyAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KG1fY29t
bWl0VG9wLCBkZWx0YSk7CiAgICAgYWRkVG9Db21taXR0ZWRCeXRlQ291bnQoLWRlbHRhKTsKLSAg
ICBtX2NvbW1pdEVuZCA9IGhpZ2hBZGRyZXNzKCk7CisgICAgbV9jb21taXRUb3AgPSBoaWdoQWRk
cmVzc1dpdGhSZXNlcnZlZFpvbmU7CiB9CiAKIHZvaWQgSlNTdGFjazo6aW5pdGlhbGl6ZVRocmVh
ZGluZygpCkBAIC0xMjksMTIgKzE0Miw2IEBAIHZvaWQgSlNTdGFjazo6aW5pdGlhbGl6ZVRocmVh
ZGluZygpCiAgICAgc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKTsKIH0KIAotc2l6ZV90IEpTU3RhY2s6
OmNvbW1pdHRlZEJ5dGVDb3VudCgpCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHN0YWNrU3Rh
dGlzdGljc011dGV4KCkpOwotICAgIHJldHVybiBjb21taXR0ZWRCeXRlc0NvdW50OwotfQotCiB2
b2lkIEpTU3RhY2s6OmFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGxvbmcgYnl0ZUNvdW50KQogewog
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihzdGFja1N0YXRpc3RpY3NNdXRleCgpKTsKQEAgLTE0Miwy
NSArMTQ5LDQxIEBAIHZvaWQgSlNTdGFjazo6YWRkVG9Db21taXR0ZWRCeXRlQ291bnQobG8KICAg
ICBjb21taXR0ZWRCeXRlc0NvdW50ICs9IGJ5dGVDb3VudDsKIH0KIAotdm9pZCBKU1N0YWNrOjpl
bmFibGVFcnJvclN0YWNrUmVzZXJ2ZSgpCit2b2lkIEpTU3RhY2s6OnNldFJlc2VydmVkWm9uZVNp
emUoc2l6ZV90IHJlc2VydmVkWm9uZVNpemUpCiB7Ci0gICAgbV91c2VhYmxlRW5kID0gcmVzZXJ2
YXRpb25FbmQoKTsKKyAgICBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVycyA9IHJlc2VydmVk
Wm9uZVNpemUgLyBzaXplb2YoUmVnaXN0ZXIpOworICAgIGlmIChtX2NvbW1pdFRvcCA+PSAobV9l
bmQgKyAxKSAtIG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzKQorICAgICAgICBncm93U2xv
d0Nhc2UobV9lbmQgKyAxKTsKIH0KKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09QKQogCi12
b2lkIEpTU3RhY2s6OmRpc2FibGVFcnJvclN0YWNrUmVzZXJ2ZSgpCisjaWYgIUVOQUJMRShMTElO
VF9DX0xPT1ApCitSZWdpc3RlciogSlNTdGFjazo6bG93QWRkcmVzcygpIGNvbnN0CiB7Ci0gICAg
Y2hhciogdXNlYWJsZUVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlc2VydmF0aW9uRW5k
KCkpICsgY29tbWl0U2l6ZTsKLSAgICBtX3VzZWFibGVFbmQgPSByZWludGVycHJldF9jYXN0X3B0
cjxSZWdpc3Rlcio+KHVzZWFibGVFbmQpOworICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3Rh
Y2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxS
ZWdpc3Rlcio+KG1fdm0uc3RhY2tMaW1pdCgpKTsKK30KIAotICAgIC8vIEJ5IHRoZSB0aW1lIHdl
IGdldCBoZXJlLCB3ZSBhcmUgZ3VhcmFudGVlZCB0byBiZSBkZXN0cnVjdGluZyB0aGUgbGFzdAot
ICAgIC8vIEludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZSB0aGF0IGVuYWJsZWQgdGhpcyBy
ZXNlcnZlIGluIHRoZSBmaXJzdAotICAgIC8vIHBsYWNlLiBUaGF0IG1lYW5zIHRoZSBzdGFjayBz
cGFjZSBiZXlvbmQgbV91c2VhYmxlRW5kIGJlZm9yZSB3ZQotICAgIC8vIGVuYWJsZWQgdGhlIHJl
c2VydmUgd2FzIG5vdCBwcmV2aW91c2x5IGluIHVzZS4gSGVuY2UsIGl0IGlzIHNhZmUgdG8KLSAg
ICAvLyBzaHJpbmsgYmFjayB0byB0aGF0IG1fdXNlYWJsZUVuZC4KLSAgICBpZiAobV9lbmQgPCBt
X3VzZWFibGVFbmQpIHsKLSAgICAgICAgQVNTRVJUKG1fdG9wQ2FsbEZyYW1lLT5mcmFtZUV4dGVu
dCgpID49IG1fdXNlYWJsZUVuZCk7Ci0gICAgICAgIHNocmluayhtX3VzZWFibGVFbmQpOwotICAg
IH0KK1JlZ2lzdGVyKiBKU1N0YWNrOjpoaWdoQWRkcmVzcygpIGNvbnN0Cit7CisgICAgQVNTRVJU
KHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOworICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4od3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkub3Jp
Z2luKCkpOworfQorI2VuZGlmIC8vICFFTkFCTEUoTExJTlRfQ19MT09QKQorCitzaXplX3QgSlNT
dGFjazo6Y29tbWl0dGVkQnl0ZUNvdW50KCkKK3sKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQor
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihzdGFja1N0YXRpc3RpY3NNdXRleCgpKTsKKyAgICByZXR1
cm4gY29tbWl0dGVkQnl0ZXNDb3VudDsKKyNlbHNlCisgICAgLy8gV2hlbiB1c2luZyB0aGUgQyBz
dGFjaywgd2UgZG9uJ3Qga25vdyBob3cgbWFueSBzdGFjayBwYWdlcyBhcmUgYWN0dWFsbHkKKyAg
ICAvLyBjb21taXR0ZWQuIFNvLCB3ZSB1c2UgdGhlIGN1cnJlbnQgc3RhY2sgdXNhZ2UgYXMgYW4g
ZXN0aW1hdGUuCisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rv
d253YXJkKCkpOworICAgIGludDhfdCogY3VycmVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50OF90
Kj4oJmN1cnJlbnQpOworICAgIGludDhfdCogaGlnaCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50OF90
Kj4od3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkub3JpZ2luKCkpOworICAgIHJldHVybiBoaWdoIC0g
Y3VycmVudDsKKyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suaAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4
LCAyMDA5LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsMTEgKzM1LDYgQEAKICNpbmNsdWRlIDx3
dGYvUGFnZVJlc2VydmF0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1ZNVGFncy5oPgogCi0jZGVmaW5l
IEVOQUJMRV9ERUJVR19KU1NUQUNLIDAKLSNpZiAhZGVmaW5lZChOREVCVUcpICYmICFkZWZpbmVk
KEVOQUJMRV9ERUJVR19KU1NUQUNLKQotI2RlZmluZSBFTkFCTEVfREVCVUdfSlNTVEFDSyAxCi0j
ZW5kaWYKLQogbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBDb2RlQmxvY2tTZXQ7CkBAIC02
MSw3ICs1Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShKU1N0YWNrKTsKICAgICBwdWJsaWM6CiAgICAgICAgIGVudW0gQ2FsbEZyYW1lSGVhZGVyRW50
cnkgewotICAgICAgICAgICAgQ29kZUJsb2NrID0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpIC8g
c2l6ZW9mKFJlZ2lzdGVyKSwKKyAgICAgICAgICAgIENhbGxlckZyYW1lQW5kUENTaXplID0gc2l6
ZW9mKENhbGxlckZyYW1lQW5kUEMpIC8gc2l6ZW9mKFJlZ2lzdGVyKSwKKyAgICAgICAgICAgIENv
ZGVCbG9jayA9IENhbGxlckZyYW1lQW5kUENTaXplLAogICAgICAgICAgICAgU2NvcGVDaGFpbiwK
ICAgICAgICAgICAgIENhbGxlZSwKICAgICAgICAgICAgIEFyZ3VtZW50Q291bnQsCkBAIC03Miw5
MiArNjgsODcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBGaXJzdEFyZ3VtZW50LAog
ICAgICAgICB9OwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgZGVmYXVsdENhcGFjaXR5
ID0gNTEyICogMTAyNDsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBjb21taXRTaXplID0g
MTYgKiAxMDI0OwogICAgICAgICAvLyBBbGxvdyA4ayBvZiBleGNlc3MgcmVnaXN0ZXJzIGJlZm9y
ZSB3ZSBzdGFydCB0cnlpbmcgdG8gcmVhcCB0aGUgc3RhY2sKICAgICAgICAgc3RhdGljIGNvbnN0
IHB0cmRpZmZfdCBtYXhFeGNlc3NDYXBhY2l0eSA9IDggKiAxMDI0OwogCi0gICAgICAgIEpTU3Rh
Y2soVk0mLCBzaXplX3QgY2FwYWNpdHkgPSBkZWZhdWx0Q2FwYWNpdHkpOwotICAgICAgICB+SlNT
dGFjaygpOworICAgICAgICBKU1N0YWNrKFZNJik7CiAgICAgICAgIAorICAgICAgICBib29sIGVu
c3VyZUNhcGFjaXR5Rm9yKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsKKworICAgICAgICBib29s
IGNvbnRhaW5zQWRkcmVzcyhSZWdpc3RlciogYWRkcmVzcykgeyByZXR1cm4gKGxvd0FkZHJlc3Mo
KSA8PSBhZGRyZXNzICYmIGFkZHJlc3MgPCBoaWdoQWRkcmVzcygpKTsgfQorICAgICAgICBzdGF0
aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVDb3VudCgpOworCisjaWYgIUVOQUJMRShMTElOVF9DX0xP
T1ApCisgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9v
dHMmKSB7IH0KKyAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRp
dmVSb290cyYsIEpJVFN0dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0JikgeyB9CisgICAgICAg
IHZvaWQgc2FuaXRpemVTdGFjaygpIHsgfQorICAgICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXpl
VGhyZWFkaW5nKCkgeyB9CisjZWxzZQorICAgICAgICB+SlNTdGFjaygpOworCiAgICAgICAgIHZv
aWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmKTsKICAgICAgICAg
dm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYsIEpJVFN0dWJS
b3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jik7CiAgICAgICAgIHZvaWQgc2FuaXRpemVTdGFjaygp
OwogCi0gICAgICAgIFJlZ2lzdGVyKiBnZXRCYXNlT2ZTdGFjaygpIGNvbnN0CisgICAgICAgIFJl
Z2lzdGVyKiBiYXNlT2ZTdGFjaygpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVy
biBoaWdoQWRkcmVzcygpIC0gMTsKICAgICAgICAgfQogCiAgICAgICAgIHNpemVfdCBzaXplKCkg
Y29uc3QgeyByZXR1cm4gaGlnaEFkZHJlc3MoKSAtIGxvd0FkZHJlc3MoKTsgfQogCi0gICAgICAg
IGJvb2wgZ3JvdyhSZWdpc3RlciopOwotICAgICAgICAKLSAgICAgICAgc3RhdGljIHNpemVfdCBj
b21taXR0ZWRCeXRlQ291bnQoKTsKICAgICAgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVRocmVh
ZGluZygpOwogCi0gICAgICAgIFJlZ2lzdGVyKiBnZXRUb3BPZkZyYW1lKENhbGxGcmFtZSopOwot
ICAgICAgICBSZWdpc3RlciogZ2V0U3RhcnRPZkZyYW1lKENhbGxGcmFtZSopOwotICAgICAgICBS
ZWdpc3RlciogZ2V0VG9wT2ZTdGFjaygpOwotCi0gICAgICAgIGJvb2wgZW50cnlDaGVjayhjbGFz
cyBDb2RlQmxvY2sqLCBpbnQpOworICAgICAgICB2b2lkIHNldFJlc2VydmVkWm9uZVNpemUoc2l6
ZV90KTsKIAotICAgICAgICBDYWxsRnJhbWUqIHB1c2hGcmFtZShjbGFzcyBDb2RlQmxvY2sqLCBK
U1Njb3BlKiwgaW50IGFyZ3NDb3VudCwgSlNPYmplY3QqIGNhbGxlZSk7Ci0KLSAgICAgICAgdm9p
ZCBwb3BGcmFtZShDYWxsRnJhbWUqKTsKLQotICAgICAgICBib29sIGNvbnRhaW5zQWRkcmVzcyhS
ZWdpc3RlciogYWRkcmVzcykgeyByZXR1cm4gKGxvd0FkZHJlc3MoKSA8PSBhZGRyZXNzICYmIGFk
ZHJlc3MgPD0gaGlnaEFkZHJlc3MoKSk7IH0KLQotICAgICAgICB2b2lkIGVuYWJsZUVycm9yU3Rh
Y2tSZXNlcnZlKCk7Ci0gICAgICAgIHZvaWQgZGlzYWJsZUVycm9yU3RhY2tSZXNlcnZlKCk7Ci0K
LSNpZiBFTkFCTEUoREVCVUdfSlNTVEFDSykKLSAgICAgICAgdm9pZCBpbnN0YWxsRmVuY2UoQ2Fs
bEZyYW1lKiwgY29uc3QgY2hhciAqZnVuY3Rpb24gPSAiIiwgaW50IGxpbmVObyA9IDApOwotICAg
ICAgICB2b2lkIHZhbGlkYXRlRmVuY2UoQ2FsbEZyYW1lKiwgY29uc3QgY2hhciAqZnVuY3Rpb24g
PSAiIiwgaW50IGxpbmVObyA9IDApOwotICAgICAgICBzdGF0aWMgY29uc3QgaW50IEZlbmNlU2l6
ZSA9IDQ7Ci0jZWxzZSAvLyAhRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0gICAgICAgIHZvaWQgaW5z
dGFsbEZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIqID0gIiIsIGludCA9IDApIHsgfQotICAg
ICAgICB2b2lkIHZhbGlkYXRlRmVuY2UoQ2FsbEZyYW1lKiwgY29uc3QgY2hhciogPSAiIiwgaW50
ID0gMCkgeyB9Ci0jZW5kaWYgLy8gIUVOQUJMRShERUJVR19KU1NUQUNLKQorICAgICAgICBpbmxp
bmUgUmVnaXN0ZXIqIHRvcE9mU3RhY2soKTsKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09Q
KQogCiAgICAgcHJpdmF0ZToKKworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgICAgIFJl
Z2lzdGVyKiBsb3dBZGRyZXNzKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IG1fZW5kOworICAgICAgICAgICAgcmV0dXJuIG1fZW5kICsgMTsKICAgICAgICAgfQogCiAgICAg
ICAgIFJlZ2lzdGVyKiBoaWdoQWRkcmVzcygpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAg
IHJldHVybiByZWludGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHN0YXRpY19jYXN0PGNoYXIq
PihtX3Jlc2VydmF0aW9uLmJhc2UoKSkgKyBtX3Jlc2VydmF0aW9uLnNpemUoKSk7CiAgICAgICAg
IH0KKyNlbHNlCisgICAgICAgIFJlZ2lzdGVyKiBsb3dBZGRyZXNzKCkgY29uc3Q7CisgICAgICAg
IFJlZ2lzdGVyKiBoaWdoQWRkcmVzcygpIGNvbnN0OworI2VuZGlmIC8vIEVOQUJMRShMTElOVF9D
X0xPT1ApCiAKLSAgICAgICAgUmVnaXN0ZXIqIHJlc2VydmF0aW9uRW5kKCkgY29uc3QKKyNpZiBF
TkFCTEUoTExJTlRfQ19MT09QKQorICAgICAgICBpbmxpbmUgUmVnaXN0ZXIqIHRvcE9mRnJhbWVG
b3IoQ2FsbEZyYW1lKik7CisKKyAgICAgICAgUmVnaXN0ZXIqIHJlc2VydmF0aW9uVG9wKCkgY29u
c3QKICAgICAgICAgewotICAgICAgICAgICAgY2hhciogcmVzZXJ2YXRpb25FbmQgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpOwotICAgICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4ocmVzZXJ2YXRpb25FbmQpOworICAgICAgICAg
ICAgY2hhciogcmVzZXJ2YXRpb25Ub3AgPSBzdGF0aWNfY2FzdDxjaGFyKj4obV9yZXNlcnZhdGlv
bi5iYXNlKCkpOworICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lz
dGVyKj4ocmVzZXJ2YXRpb25Ub3ApOwogICAgICAgICB9CiAKLSNpZiBFTkFCTEUoREVCVUdfSlNT
VEFDSykKLSAgICAgICAgc3RhdGljIEpTVmFsdWUgZ2VuZXJhdGVGZW5jZVZhbHVlKHNpemVfdCBh
cmdJbmRleCk7Ci0gICAgICAgIHZvaWQgaW5zdGFsbFRyYXBzQWZ0ZXJGcmFtZShDYWxsRnJhbWUq
KTsKLSNlbHNlCi0gICAgICAgIHZvaWQgaW5zdGFsbFRyYXBzQWZ0ZXJGcmFtZShDYWxsRnJhbWUq
KSB7IH0KLSNlbmRpZgotCi0gICAgICAgIGJvb2wgZ3Jvd1Nsb3dDYXNlKFJlZ2lzdGVyKik7Ci0g
ICAgICAgIHZvaWQgc2hyaW5rKFJlZ2lzdGVyKik7CisgICAgICAgIGJvb2wgZ3JvdyhSZWdpc3Rl
ciogbmV3VG9wT2ZTdGFjayk7CisgICAgICAgIGJvb2wgZ3Jvd1Nsb3dDYXNlKFJlZ2lzdGVyKiBu
ZXdUb3BPZlN0YWNrKTsKKyAgICAgICAgdm9pZCBzaHJpbmsoUmVnaXN0ZXIqIG5ld1RvcE9mU3Rh
Y2spOwogICAgICAgICB2b2lkIHJlbGVhc2VFeGNlc3NDYXBhY2l0eSgpOwogICAgICAgICB2b2lk
IGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGxvbmcpOwogCi0gICAgICAgIHZvaWQgdXBkYXRlU3Rh
Y2tMaW1pdChSZWdpc3RlciogbmV3RW5kKTsKKyAgICAgICAgdm9pZCBzZXRTdGFja0xpbWl0KFJl
Z2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09QKQog
CiAgICAgICAgIFZNJiBtX3ZtOworICAgICAgICBDYWxsRnJhbWUqJiBtX3RvcENhbGxGcmFtZTsK
KyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICAgICBSZWdpc3RlciogbV9lbmQ7Ci0gICAg
ICAgIFJlZ2lzdGVyKiBtX2NvbW1pdEVuZDsKLSAgICAgICAgUmVnaXN0ZXIqIG1fdXNlYWJsZUVu
ZDsKKyAgICAgICAgUmVnaXN0ZXIqIG1fY29tbWl0VG9wOwogICAgICAgICBQYWdlUmVzZXJ2YXRp
b24gbV9yZXNlcnZhdGlvbjsKLSAgICAgICAgQ2FsbEZyYW1lKiYgbV90b3BDYWxsRnJhbWU7CiAg
ICAgICAgIFJlZ2lzdGVyKiBtX2xhc3RTdGFja1RvcDsKKyAgICAgICAgcHRyZGlmZl90IG1fcmVz
ZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzOworI2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1Ap
CiAKICAgICAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKICAgICB9OwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2tJ
bmxpbmVzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9KU1N0YWNrSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMywy
NjIgKzMzLDY1IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1pbmxpbmUgUmVnaXN0ZXIqIEpTU3Rh
Y2s6OmdldFRvcE9mRnJhbWUoQ2FsbEZyYW1lKiBmcmFtZSkKK2lubGluZSBib29sIEpTU3RhY2s6
OmVuc3VyZUNhcGFjaXR5Rm9yKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogewotICAgIGlmIChV
TkxJS0VMWSghZnJhbWUpKQotICAgICAgICByZXR1cm4gZ2V0QmFzZU9mU3RhY2soKTsKLSAgICBy
ZXR1cm4gZnJhbWUtPmZyYW1lRXh0ZW50KCk7Ci19Ci0KLWlubGluZSBSZWdpc3RlciogSlNTdGFj
azo6Z2V0VG9wT2ZTdGFjaygpCi17Ci0gICAgcmV0dXJuIGdldFRvcE9mRnJhbWUobV90b3BDYWxs
RnJhbWUpOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgcmV0dXJuIGdyb3cobmV3VG9w
T2ZTdGFjayk7CisjZWxzZQorICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dy
b3dpbmdEb3dud2FyZCgpKTsKKyAgICByZXR1cm4gbmV3VG9wT2ZTdGFjayA+PSBtX3ZtLnN0YWNr
TGltaXQoKTsKKyNlbmRpZgogfQogCi1pbmxpbmUgUmVnaXN0ZXIqIEpTU3RhY2s6OmdldFN0YXJ0
T2ZGcmFtZShDYWxsRnJhbWUqIGZyYW1lKQotewotICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUg
PSBmcmFtZS0+Y2FsbGVyRnJhbWVTa2lwcGluZ1ZNRW50cnlTZW50aW5lbCgpOwotICAgIHJldHVy
biBnZXRUb3BPZkZyYW1lKGNhbGxlckZyYW1lKTsKLX0KKyNpZiBFTkFCTEUoTExJTlRfQ19MT09Q
KQogCi1pbmxpbmUgYm9vbCBKU1N0YWNrOjplbnRyeUNoZWNrKGNsYXNzIENvZGVCbG9jayogY29k
ZUJsb2NrLCBpbnQgYXJnc0NvdW50KQoraW5saW5lIFJlZ2lzdGVyKiBKU1N0YWNrOjp0b3BPZkZy
YW1lRm9yKENhbGxGcmFtZSogZnJhbWUpCiB7Ci0gICAgUmVnaXN0ZXIqIG9sZEVuZCA9IGdldFRv
cE9mU3RhY2soKTsKLQotICAgIC8vIEVuc3VyZSB0aGF0IHdlIGhhdmUgZW5vdWdoIHNwYWNlIGZv
ciB0aGUgcGFyYW1ldGVyczoKLSAgICBzaXplX3QgcGFkZGVkQXJnc0NvdW50ID0gYXJnc0NvdW50
OwotICAgIGlmIChjb2RlQmxvY2spIHsKLSAgICAgICAgc2l6ZV90IG51bVBhcmFtZXRlcnMgPSBj
b2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKTsKLSAgICAgICAgaWYgKHBhZGRlZEFyZ3NDb3VudCA8
IG51bVBhcmFtZXRlcnMpCi0gICAgICAgICAgICBwYWRkZWRBcmdzQ291bnQgPSBudW1QYXJhbWV0
ZXJzOwotICAgIH0KLQotICAgIFJlZ2lzdGVyKiBuZXdDYWxsRnJhbWVTbG90ID0gb2xkRW5kIC0g
cGFkZGVkQXJnc0NvdW50IC0gKDIgKiBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSArIDE7
Ci0KLSNpZiBFTkFCTEUoREVCVUdfSlNTVEFDSykKLSAgICBuZXdDYWxsRnJhbWVTbG90IC09IEpT
U3RhY2s6OkZlbmNlU2l6ZTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIGlmIChVTkxJ
S0VMWSghZnJhbWUpKQorICAgICAgICByZXR1cm4gYmFzZU9mU3RhY2soKTsKICNlbmRpZgotCi0g
ICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG5ld0NhbGxGcmFtZVNsb3Q7Ci0gICAgaWYgKCEhY29kZUJs
b2NrKQotICAgICAgICBuZXdFbmQgKz0gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29kZUJsb2Nr
LT5mcmFtZVJlZ2lzdGVyQ291bnQoKSkub2Zmc2V0KCk7Ci0KLSAgICAvLyBFbnN1cmUgdGhhdCB3
ZSBoYXZlIHRoZSBuZWVkZWQgc3RhY2sgY2FwYWNpdHkgdG8gcHVzaCB0aGUgbmV3IGZyYW1lOgot
ICAgIGlmICghZ3JvdyhuZXdFbmQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICByZXR1cm4gZnJhbWUtPnRvcE9mRnJhbWUoKSAtIDE7CiB9CiAKLWlubGlu
ZSBDYWxsRnJhbWUqIEpTU3RhY2s6OnB1c2hGcmFtZShjbGFzcyBDb2RlQmxvY2sqIGNvZGVCbG9j
aywgSlNTY29wZSogc2NvcGUsIGludCBhcmdzQ291bnQsIEpTT2JqZWN0KiBjYWxsZWUpCitpbmxp
bmUgUmVnaXN0ZXIqIEpTU3RhY2s6OnRvcE9mU3RhY2soKQogewotICAgIEFTU0VSVCghIXNjb3Bl
KTsKLSAgICBSZWdpc3Rlciogb2xkRW5kID0gZ2V0VG9wT2ZTdGFjaygpOwotCi0gICAgLy8gRW5z
dXJlIHRoYXQgd2UgaGF2ZSBlbm91Z2ggc3BhY2UgZm9yIHRoZSBwYXJhbWV0ZXJzOgotICAgIHNp
emVfdCBwYWRkZWRBcmdzQ291bnQgPSBhcmdzQ291bnQ7Ci0gICAgaWYgKGNvZGVCbG9jaykgewot
ICAgICAgICBzaXplX3QgbnVtUGFyYW1ldGVycyA9IGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygp
OwotICAgICAgICBpZiAocGFkZGVkQXJnc0NvdW50IDwgbnVtUGFyYW1ldGVycykKLSAgICAgICAg
ICAgIHBhZGRlZEFyZ3NDb3VudCA9IG51bVBhcmFtZXRlcnM7Ci0gICAgfQotCi0gICAgUmVnaXN0
ZXIqIG5ld0NhbGxGcmFtZVNsb3QgPSBvbGRFbmQgLSBwYWRkZWRBcmdzQ291bnQgLSAoMiAqIEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpICsgMTsKLQotI2lmIEVOQUJMRShERUJVR19KU1NU
QUNLKQotICAgIG5ld0NhbGxGcmFtZVNsb3QgLT0gSlNTdGFjazo6RmVuY2VTaXplOwotI2VuZGlm
Ci0KLSAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3Q2FsbEZyYW1lU2xvdDsKLSAgICBpZiAoISFj
b2RlQmxvY2spCi0gICAgICAgIG5ld0VuZCArPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2Rl
QmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKTsKLQotICAgIC8vIEVuc3VyZSB0
aGF0IHdlIGhhdmUgdGhlIG5lZWRlZCBzdGFjayBjYXBhY2l0eSB0byBwdXNoIHRoZSBuZXcgZnJh
bWU6Ci0gICAgaWYgKCFncm93KG5ld0VuZCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgLy8g
Q29tcHV0ZSB0aGUgYWRkcmVzcyBvZiB0aGUgbmV3IFZNIHNlbnRpbmVsIGZyYW1lIGZvciB0aGlz
IGludm9jYXRpb246Ci0gICAgQ2FsbEZyYW1lKiBuZXdWTUVudHJ5U2VudGluZWxGcmFtZSA9IENh
bGxGcmFtZTo6Y3JlYXRlKG5ld0NhbGxGcmFtZVNsb3QgKyBwYWRkZWRBcmdzQ291bnQgKyBKU1N0
YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKTsKLSAgICBBU1NFUlQoISFuZXdWTUVudHJ5U2VudGlu
ZWxGcmFtZSk7Ci0KLSAgICAvLyBDb21wdXRlIHRoZSBhZGRyZXNzIG9mIHRoZSBuZXcgZnJhbWUg
Zm9yIHRoaXMgaW52b2NhdGlvbjoKLSAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxG
cmFtZTo6Y3JlYXRlKG5ld0NhbGxGcmFtZVNsb3QpOwotICAgIEFTU0VSVCghIW5ld0NhbGxGcmFt
ZSk7Ci0KLSAgICAvLyBUaGUgY2FsbGVyIGZyYW1lIHNob3VsZCBhbHdheXMgYmUgdGhlIHJlYWwg
cHJldmlvdXMgZnJhbWUgb24gdGhlIHN0YWNrLAotICAgIC8vIGFuZCBub3QgYSBwb3RlbnRpYWwg
R2xvYmFsRXhlYyB0aGF0IHdhcyBwYXNzZWQgaW4uIFBvaW50IGNhbGxlckZyYW1lIHRvCi0gICAg
Ly8gdGhlIHRvcCBmcmFtZSBvbiB0aGUgc3RhY2suCi0gICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFt
ZSA9IG1fdG9wQ2FsbEZyYW1lOwotCi0gICAgLy8gSW5pdGlhbGl6ZSB0aGUgVk0gc2VudGluZWwg
ZnJhbWUgaGVhZGVyOgotICAgIG5ld1ZNRW50cnlTZW50aW5lbEZyYW1lLT5pbml0aWFsaXplVk1F
bnRyeVNlbnRpbmVsRnJhbWUoY2FsbGVyRnJhbWUpOwotCi0gICAgLy8gSW5pdGlhbGl6ZSB0aGUg
Y2FsbGVlIGZyYW1lIGhlYWRlcjoKLSAgICBuZXdDYWxsRnJhbWUtPmluaXQoY29kZUJsb2NrLCAw
LCBzY29wZSwgbmV3Vk1FbnRyeVNlbnRpbmVsRnJhbWUsIGFyZ3NDb3VudCwgY2FsbGVlKTsKLQot
ICAgIEFTU0VSVCghIW5ld0NhbGxGcmFtZS0+c2NvcGUoKSk7Ci0KLSAgICAvLyBQYWQgYWRkaXRp
b25hbCBhcmdzIGlmIG5lZWRlZDoKLSAgICAvLyBOb3RlOiB3ZSBuZWVkIHRvIHN1YnRyYWN0IDEg
ZnJvbSBhcmdzQ291bnQgYW5kIHBhZGRlZEFyZ3NDb3VudCB0bwotICAgIC8vIGV4Y2x1ZGUgdGhl
IHRoaXMgcG9pbnRlci4KLSAgICBmb3IgKHNpemVfdCBpID0gYXJnc0NvdW50LTE7IGkgPCBwYWRk
ZWRBcmdzQ291bnQtMTsgKytpKQotICAgICAgICBuZXdDYWxsRnJhbWUtPnNldEFyZ3VtZW50KGks
IGpzVW5kZWZpbmVkKCkpOwotCi0gICAgaW5zdGFsbEZlbmNlKG5ld0NhbGxGcmFtZSwgX19GVU5D
VElPTl9fLCBfX0xJTkVfXyk7Ci0gICAgdmFsaWRhdGVGZW5jZShuZXdDYWxsRnJhbWUsIF9fRlVO
Q1RJT05fXywgX19MSU5FX18pOwotICAgIGluc3RhbGxUcmFwc0FmdGVyRnJhbWUobmV3Q2FsbEZy
YW1lKTsKLQotICAgIC8vIFB1c2ggdGhlIG5ldyBmcmFtZToKLSAgICBtX3RvcENhbGxGcmFtZSA9
IG5ld0NhbGxGcmFtZTsKLQotICAgIHJldHVybiBuZXdDYWxsRnJhbWU7Ci19Ci0KLWlubGluZSB2
b2lkIEpTU3RhY2s6OnBvcEZyYW1lKENhbGxGcmFtZSogZnJhbWUpCi17Ci0gICAgdmFsaWRhdGVG
ZW5jZShmcmFtZSwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7Ci0KLSAgICAvLyBQb3Agb2ZmIHRo
ZSBjYWxsZWUgZnJhbWUgYW5kIHRoZSBzZW50aW5lbCBmcmFtZS4KLSAgICBDYWxsRnJhbWUqIGNh
bGxlckZyYW1lID0gZnJhbWUtPmNhbGxlckZyYW1lKCktPnZtRW50cnlTZW50aW5lbENhbGxlckZy
YW1lKCk7Ci0KLSAgICAvLyBQb3AgdG8gdGhlIGNhbGxlcjoKLSAgICBtX3RvcENhbGxGcmFtZSA9
IGNhbGxlckZyYW1lOwotCi0gICAgLy8gSWYgd2UgYXJlIHBvcHBpbmcgdGhlIHZlcnkgZmlyc3Qg
ZnJhbWUgZnJvbSB0aGUgc3RhY2sgaS5lLiBubyBtb3JlCi0gICAgLy8gZnJhbWVzIGJlZm9yZSB0
aGlzLCB0aGVuIHdlIGNhbiBub3cgc2FmZWx5IHNocmluayB0aGUgc3RhY2suIEluCi0gICAgLy8g
dGhpcyBjYXNlLCB3ZSdyZSBzaHJpbmtpbmcgYWxsIHRoZSB3YXkgdG8gdGhlIGJlZ2lubmluZyBz
aW5jZSB0aGVyZQotICAgIC8vIGFyZSBubyBtb3JlIGZyYW1lcyBvbiB0aGUgc3RhY2suCi0gICAg
aWYgKCFjYWxsZXJGcmFtZSkKLSAgICAgICAgc2hyaW5rKGdldEJhc2VPZlN0YWNrKCkpOwotCi0g
ICAgaW5zdGFsbFRyYXBzQWZ0ZXJGcmFtZShjYWxsZXJGcmFtZSk7CisgICAgcmV0dXJuIHRvcE9m
RnJhbWVGb3IobV90b3BDYWxsRnJhbWUpOwogfQogCi1pbmxpbmUgdm9pZCBKU1N0YWNrOjpzaHJp
bmsoUmVnaXN0ZXIqIG5ld0VuZCkKK2lubGluZSB2b2lkIEpTU3RhY2s6OnNocmluayhSZWdpc3Rl
ciogbmV3VG9wT2ZTdGFjaykKIHsKKyAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3VG9wT2ZTdGFj
ayAtIDE7CiAgICAgaWYgKG5ld0VuZCA+PSBtX2VuZCkKICAgICAgICAgcmV0dXJuOwotICAgIHVw
ZGF0ZVN0YWNrTGltaXQobmV3RW5kKTsKLSAgICBpZiAobV9lbmQgPT0gZ2V0QmFzZU9mU3RhY2so
KSAmJiAobV9jb21taXRFbmQgLSBnZXRCYXNlT2ZTdGFjaygpKSA+PSBtYXhFeGNlc3NDYXBhY2l0
eSkKKyAgICBzZXRTdGFja0xpbWl0KG5ld1RvcE9mU3RhY2spOworICAgIC8vIE5vdGU6IENsYW5n
IGNvbXBsYWlucyBvZiBhbiB1bnJlc29sdmVkIGxpbmthZ2UgdG8gbWF4RXhjZXNzQ2FwYWNpdHkg
aWYKKyAgICAvLyBpbnZva2Ugc3RkOjptYXgoKSB3aXRoIGl0IGFzIGFuIGFyZ3VtZW50LiBUbyB3
b3JrIGFyb3VuZCB0aGlzLCB3ZSBmaXJzdAorICAgIC8vIGFzc2lnbiB0aGUgY29uc3RhbnQgdG8g
YSBsb2NhbCB2YXJpYWJsZSwgYW5kIHVzZSB0aGUgbG9jYWwgaW5zdGVhZC4KKyAgICBwdHJkaWZm
X3QgbWF4RXhjZXNzQ2FwYWNpdHkgPSBKU1N0YWNrOjptYXhFeGNlc3NDYXBhY2l0eTsKKyAgICBw
dHJkaWZmX3QgbWF4RXhjZXNzSW5SZWdpc3RlcnMgPSBzdGQ6Om1heChtYXhFeGNlc3NDYXBhY2l0
eSwgbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnMpOworICAgIGlmIChtX2VuZCA9PSBiYXNl
T2ZTdGFjaygpICYmIChoaWdoQWRkcmVzcygpIC0gbV9jb21taXRUb3ApID49IG1heEV4Y2Vzc0lu
UmVnaXN0ZXJzKQogICAgICAgICByZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKTsKIH0KIAotaW5saW5l
IGJvb2wgSlNTdGFjazo6Z3JvdyhSZWdpc3RlciogbmV3RW5kKQoraW5saW5lIGJvb2wgSlNTdGFj
azo6Z3JvdyhSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKIHsKKyAgICBSZWdpc3RlciogbmV3RW5k
ID0gbmV3VG9wT2ZTdGFjayAtIDE7CiAgICAgaWYgKG5ld0VuZCA+PSBtX2VuZCkKICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGdyb3dTbG93Q2FzZShuZXdFbmQpOworICAgIHJldHVy
biBncm93U2xvd0Nhc2UobmV3VG9wT2ZTdGFjayk7CiB9CiAKLWlubGluZSB2b2lkIEpTU3RhY2s6
OnVwZGF0ZVN0YWNrTGltaXQoUmVnaXN0ZXIqIG5ld0VuZCkKK2lubGluZSB2b2lkIEpTU3RhY2s6
OnNldFN0YWNrTGltaXQoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7CisgICAgUmVnaXN0ZXIq
IG5ld0VuZCA9IG5ld1RvcE9mU3RhY2sgLSAxOwogICAgIG1fZW5kID0gbmV3RW5kOwotI2lmIFVT
RShTRVBBUkFURV9DX0FORF9KU19TVEFDSykKLSAgICBtX3ZtLnNldEpTU3RhY2tMaW1pdChuZXdF
bmQpOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgbV92bS5zZXRKU1N0YWNrTGltaXQo
bmV3VG9wT2ZTdGFjayk7CiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShERUJVR19KU1NUQUNLKQot
aW5saW5lIEpTVmFsdWUgSlNTdGFjazo6Z2VuZXJhdGVGZW5jZVZhbHVlKHNpemVfdCBhcmdJbmRl
eCkKLXsKLSAgICB1bnNpZ25lZCBmZW5jZUJpdHMgPSAweGZhY2ViYWQwIHwgKChhcmdJbmRleCsx
KSAmIDB4Zik7Ci0gICAgSlNWYWx1ZSBmZW5jZVZhbHVlID0gSlNWYWx1ZShmZW5jZUJpdHMpOwot
ICAgIHJldHVybiBmZW5jZVZhbHVlOwotfQotCi0vLyBUaGUgSlNTdGFjayBmZW5jZXMgbWVjaGFu
aXNtIHdvcmtzIGFzIGZvbGxvd3M6Ci0vLyAxLiBBIGZlbmNlIGlzIGEgbnVtYmVyIChKU1N0YWNr
OjpGZW5jZVNpemUpIG9mIEpTVmFsdWVzIHRoYXQgYXJlIGluaXRpYWxpemVkCi0vLyAgICB3aXRo
IHZhbHVlcyBnZW5lcmF0ZWQgYnkgSlNTdGFjazo6Z2VuZXJhdGVGZW5jZVZhbHVlKCkuCi0vLyAy
LiBXaGVuIHB1c2hGcmFtZSgpIGlzIGNhbGxlZCwgdGhlIGZlbmNlIGlzIGluc3RhbGxlZCBhZnRl
ciB0aGUgbWF4IGV4dGVudAotLy8gICAgb2YgdGhlIHByZXZpb3VzIHRvcENhbGxGcmFtZSBhbmQg
dGhlIGxhc3QgYXJnIG9mIHRoZSBuZXcgZnJhbWU6Ci0vLwotLy8gICAgICAgICAgICAgICAgICAg
ICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAg
ICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAg
ICAgICAgICAgICAgICAgICAgfCBGcmFtZSBIZWFkZXIgb2YgcHJldmlvdXMgZnJhbWUgICAgICAg
fAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS18Ci0vLyAgICB0b3BDYWxsRnJhbWUgLS0+IHwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfCBMb2NhbHMgb2YgcHJl
dmlvdXMgZnJhbWUgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAg
IHwgKioqIHRoZSBGZW5jZSAqKiogICAgICAgICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAg
ICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAg
ICAgICAgICAgICAgICAgICB8IFZNIGVudHJ5IHNlbnRpbmVsIGZyYW1lIGhlYWRlciAgICAgICB8
Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCBBcmdzIG9mIG5ldyBmcmFtZSAgICAg
ICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgRnJhbWUg
SGVhZGVyIG9mIG5ldyBmcmFtZSAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAg
fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgIGZy
YW1lIC0tPiB8IExvY2FscyBvZiBuZXcgZnJhbWUgICAgICAgICAgICAgICAgICB8Ci0vLyAgICAg
ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK
LS8vCi0vLyAzLiBJbiBwb3BGcmFtZSgpIGFuZCBlbHNld2hlcmUsIHdlIGNhbiBjYWxsIEpTU3Rh
Y2s6OnZhbGlkYXRlRmVuY2UoKSB0bwotLy8gICAgYXNzZXJ0IHRoYXQgdGhlIGZlbmNlIGNvbnRh
aW5zIHRoZSB2YWx1ZXMgd2UgZXhwZWN0LgotCi1pbmxpbmUgdm9pZCBKU1N0YWNrOjppbnN0YWxs
RmVuY2UoQ2FsbEZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciAqZnVuY3Rpb24sIGludCBsaW5lTm8p
Ci17Ci0gICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0obGluZU5v
KTsKLSAgICBSZWdpc3Rlciogc3RhcnRPZkZyYW1lID0gZ2V0U3RhcnRPZkZyYW1lKGZyYW1lKTsK
LQotICAgIC8vIFRoZSBsYXN0IGFyZ0luZGV4IGlzIGF0OgotICAgIHNpemVfdCBtYXhJbmRleCA9
IGZyYW1lLT5hcmdJbmRleEZvclJlZ2lzdGVyKHN0YXJ0T2ZGcmFtZSkgKyAxOwotICAgIHNpemVf
dCBzdGFydEluZGV4ID0gbWF4SW5kZXggLSBGZW5jZVNpemU7Ci0gICAgZm9yIChzaXplX3QgaSA9
IHN0YXJ0SW5kZXg7IGkgPCBtYXhJbmRleDsgKytpKSB7Ci0gICAgICAgIEpTVmFsdWUgZmVuY2VW
YWx1ZSA9IGdlbmVyYXRlRmVuY2VWYWx1ZShpKTsKLSAgICAgICAgZnJhbWUtPnNldEFyZ3VtZW50
KGksIGZlbmNlVmFsdWUpOwotICAgIH0KLX0KLQotaW5saW5lIHZvaWQgSlNTdGFjazo6dmFsaWRh
dGVGZW5jZShDYWxsRnJhbWUqIGZyYW1lLCBjb25zdCBjaGFyICpmdW5jdGlvbiwgaW50IGxpbmVO
bykKLXsKLSAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb24pOwotICAgIFVOVVNFRF9QQVJBTShsaW5l
Tm8pOwotICAgIEFTU0VSVCghIWZyYW1lLT5zY29wZSgpKTsKLSAgICBSZWdpc3Rlciogc3RhcnRP
ZkZyYW1lID0gZ2V0U3RhcnRPZkZyYW1lKGZyYW1lKTsKLSAgICBzaXplX3QgbWF4SW5kZXggPSBm
cmFtZS0+YXJnSW5kZXhGb3JSZWdpc3RlcihzdGFydE9mRnJhbWUpICsgMTsKLSAgICBzaXplX3Qg
c3RhcnRJbmRleCA9IG1heEluZGV4IC0gRmVuY2VTaXplOwotICAgIGZvciAoc2l6ZV90IGkgPSBz
dGFydEluZGV4OyBpIDwgbWF4SW5kZXg7ICsraSkgewotICAgICAgICBKU1ZhbHVlIGZlbmNlVmFs
dWUgPSBnZW5lcmF0ZUZlbmNlVmFsdWUoaSk7Ci0gICAgICAgIEpTVmFsdWUgYWN0dWFsVmFsdWUg
PSBmcmFtZS0+Z2V0QXJndW1lbnRVbnNhZmUoaSk7Ci0gICAgICAgIEFTU0VSVChmZW5jZVZhbHVl
ID09IGFjdHVhbFZhbHVlKTsKLSAgICB9Ci19Ci0KLS8vIFdoZW4gZGVidWdnaW5nIHRoZSBKU1N0
YWNrLCB3ZSBpbnN0YWxsIGJhZCB2YWx1ZXMgYWZ0ZXIgdGhlIGV4dGVudCBvZiB0aGUKLS8vIHRv
cENhbGxGcmFtZSBhdCB0aGUgZW5kIG9mIHB1c2hGcmFtZSgpIGFuZCBwb3BGcmFtZSgpLiBUaGUg
aW50ZW50aW9uIGlzCi0vLyB0byB0cmlnZ2VyIGNyYXNoZXMgaW4gdGhlIGV2ZW50IHRoYXQgbWVt
b3J5IGluIHRoaXMgc3VwcG9zZWRseSB1bnVzZWQKLS8vIHJlZ2lvbiBpcyByZWFkIGFuZCBjb25z
dW1lZCB3aXRob3V0IHByb3BlciBpbml0aWFsaXphdGlvbi4gQWZ0ZXIgdGhlIHRyYXAKLS8vIHdv
cmRzIGFyZSBpbnN0YWxsZWQsIHRoZSBzdGFjayBsb29rcyBsaWtlIHRoaXM6Ci0vLwotLy8gICAg
ICAgICAgICAgICAgICAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0vLyAgICAg
ICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAg
ICAgICAgICAgICAgICAgfCBGcmFtZSBIZWFkZXIgb2YgZnJhbWUgICAgICAgfAotLy8gICAgICAg
ICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICB0b3BD
YWxsRnJhbWUgLS0+IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLS8vICAgICAgICAg
ICAgICAgICAgICAgfCBMb2NhbHMgb2YgZnJhbWUgICAgICAgICAgICAgfAotLy8gICAgICAgICAg
ICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAg
ICAgICAgICAgIHwgKioqIFRyYXAgd29yZHMgKioqICAgICAgICAgIHwKLS8vICAgICAgICAgICAg
ICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAg
ICAgICAgICB8IFVudXNlZCBzcGFjZSAuLi4gICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAg
ICAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQotaW5saW5lIHZvaWQgSlNT
dGFjazo6aW5zdGFsbFRyYXBzQWZ0ZXJGcmFtZShDYWxsRnJhbWUqIGZyYW1lKQotewotICAgIFJl
Z2lzdGVyKiB0b3BPZkZyYW1lID0gZ2V0VG9wT2ZGcmFtZShmcmFtZSk7Ci0gICAgY29uc3QgaW50
IHNpemVPZlRyYXAgPSA2NDsKLSAgICBpbnQzMl90KiBzdGFydE9mVHJhcCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8aW50MzJfdCo+KHRvcE9mRnJhbWUpOwotICAgIGludDMyX3QqIGVuZE9mVHJhcCA9IHN0
YXJ0T2ZUcmFwIC0gc2l6ZU9mVHJhcDsKLSAgICBpbnQzMl90KiBlbmRPZkNvbW1pdGVkTWVtb3J5
ID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4obV9jb21taXRFbmQpOwotCi0gICAgLy8gTWFr
ZSBzdXJlIHdlJ3JlIG5vdCBleGNlZWRpbmcgdGhlIGFtb3VudCBvZiBhdmFpbGFibGUgbWVtb3J5
IHRvIHdyaXRlIHRvOgotICAgIGlmIChlbmRPZlRyYXAgPCBlbmRPZkNvbW1pdGVkTWVtb3J5KQot
ICAgICAgICBlbmRPZlRyYXAgPSBlbmRPZkNvbW1pdGVkTWVtb3J5OwotCi0gICAgLy8gTGF5IHRo
ZSB0cmFwczoKLSAgICBpbnQzMl90KiBwID0gc3RhcnRPZlRyYXA7Ci0gICAgd2hpbGUgKHAgPiBl
bmRPZlRyYXApCi0gICAgICAgICpwLS0gPSAweGFiYWRjYWZlOyAvLyBBIGJhZCB3b3JkIHRvIHRy
aWdnZXIgYSBjcmFzaCBpZiBkZXJlZidlZC4KLX0KLSNlbmRpZiAvLyBFTkFCTEUoREVCVUdfSlNT
VEFDSykKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09QKQogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZy
YW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
UHJvdG9DYWxsRnJhbWUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIKIAogI2luY2x1ZGUgIkNv
ZGVCbG9jay5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewogCkBAIC00Myw3ICs0NCw5IEBAIHZvaWQgUHJvdG9DYWxsRnJhbWU6OmluaXQoQ29kZUJsb2Nr
KiBjb2QKICAgICAgICAgaWYgKHBhZGRlZEFyZ3NDb3VudCA8IG51bVBhcmFtZXRlcnMpCiAgICAg
ICAgICAgICBwYWRkZWRBcmdzQ291bnQgPSBudW1QYXJhbWV0ZXJzOwogICAgIH0KLSAgICB0aGlz
LT5zZXRQYWRkZWRBcmdzQ291bnQocGFkZGVkQXJnc0NvdW50KTsKKyAgICAvLyBSb3VuZCB1cCBw
YWRkZWRBcmdzQ291bnQgdG8ga2VlcCB0aGUgc3RhY2sgZnJhbWUgc2l6ZSBhbGlnbmVkLgorICAg
IHBhZGRlZEFyZ3NDb3VudCA9IHJvdW5kQXJndW1lbnRDb3VudFRvQWxpZ25GcmFtZShwYWRkZWRB
cmdzQ291bnQpOworICAgIHRoaXMtPnNldFBhZGRlZEFyZ0NvdW50KHBhZGRlZEFyZ3NDb3VudCk7
CiAgICAgdGhpcy0+Y2xlYXJDdXJyZW50VlBDKCk7CiAgICAgdGhpcy0+c2V0VGhpc1ZhbHVlKHRo
aXNWYWx1ZSk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUHJv
dG9DYWxsRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvUHJvdG9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUzLDcgKzUzLDcgQEAgc3RydWN0IFByb3RvQ2FsbEZyYW1lIHsKICAgICBpbnQgYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMoKSBjb25zdCB7IHJldHVybiBhcmdDb3VudEFuZENvZGVPcmlnaW5W
YWx1ZS5wYXlsb2FkKCk7IH0KICAgICBpbnQgYXJndW1lbnRDb3VudCgpIGNvbnN0IHsgcmV0dXJu
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkgLSAxOyB9CiAgICAgdm9pZCBzZXRBcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyhpbnQgY291bnQpIHsgYXJnQ291bnRBbmRDb2RlT3JpZ2luVmFs
dWUucGF5bG9hZCgpID0gY291bnQ7IH0KLSAgICB2b2lkIHNldFBhZGRlZEFyZ3NDb3VudChzaXpl
X3QgYXJnQ291bnQpIHsgcGFkZGVkQXJnQ291bnQgPSBhcmdDb3VudDsgfQorICAgIHZvaWQgc2V0
UGFkZGVkQXJnQ291bnQoc2l6ZV90IGFyZ0NvdW50KSB7IHBhZGRlZEFyZ0NvdW50ID0gYXJnQ291
bnQ7IH0KIAogICAgIHZvaWQgY2xlYXJDdXJyZW50VlBDKCkgeyBhcmdDb3VudEFuZENvZGVPcmln
aW5WYWx1ZS50YWcoKSA9IDA7IH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCisKKyNpZiBFTkFCTEUoSklUKQor
CisjaW5jbHVkZSAiQXNzZW1ibHlIZWxwZXJzLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgor
I2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitBcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rczo6QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKQorICAgIDog
bV9uZXh0U2l6ZSgwKQoreworfQorCitBcml0eUNoZWNrRmFpbFJldHVyblRodW5rczo6fkFyaXR5
Q2hlY2tGYWlsUmV0dXJuVGh1bmtzKCkgeyB9CisKK0NvZGVMb2NhdGlvbkxhYmVsKiBBcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rczo6cmV0dXJuUENzRm9yKAorICAgIFZNJiB2bSwgdW5zaWduZWQg
bnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzKQoreworICAgIEFTU0VSVChudW1FeHBl
Y3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPj0gMSk7CisgICAgCisgICAgbnVtRXhwZWN0ZWRB
cmd1bWVudHNJbmNsdWRpbmdUaGlzID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKAorICAgICAg
ICBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGlu
Z1RoaXMpOworICAgIAorICAgIHsKKyAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIo
bV9sb2NrKTsKKyAgICAgICAgaWYgKG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyA8
IG1fbmV4dFNpemUpCisgICAgICAgICAgICByZXR1cm4gbV9yZXR1cm5QQ0FycmF5cy5sYXN0KCku
Z2V0KCk7CisgICAgfQorICAgIAorICAgIEFTU0VSVCghaXNDb21waWxhdGlvblRocmVhZCgpKTsK
KyAgICAKKyAgICBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPSBzdGQ6Om1heCgK
KyAgICAgICAgbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzLAorICAgICAgICBtX25l
eHRTaXplICogMik7CisgICAgCisgICAgQXNzZW1ibHlIZWxwZXJzIGppdCgmdm0sIDApOworICAg
IAorICAgIFZlY3RvcjxBc3NlbWJseUhlbHBlcnM6OkxhYmVsPiBsYWJlbHM7CisgICAgCisgICAg
Zm9yICh1bnNpZ25lZCBzaXplID0gbV9uZXh0U2l6ZTsgc2l6ZSA8PSBudW1FeHBlY3RlZEFyZ3Vt
ZW50c0luY2x1ZGluZ1RoaXM7IHNpemUgKz0gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSkgewor
ICAgICAgICBsYWJlbHMuYXBwZW5kKGppdC5sYWJlbCgpKTsKKyAgICAgICAgCisgICAgICAgIGpp
dC5sb2FkMzIoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAg
ICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwKKyAgICAgICAg
ICAgICAgICAoSlNTdGFjazo6QXJndW1lbnRDb3VudCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5k
UENTaXplKSAqIHNpemVvZihSZWdpc3RlcikgKworICAgICAgICAgICAgICAgIFBheWxvYWRPZmZz
ZXQpLAorICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDQpOworICAgICAgICBqaXQuYWRkMzIoCisg
ICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigKKyAgICAgICAgICAgICAg
ICBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQ
Q1NpemUgKyBzaXplIC0gMSksCisgICAgICAgICAgICBHUFJJbmZvOjpyZWdUNCwgR1BSSW5mbzo6
cmVnVDIpOworICAgICAgICBqaXQubHNoaWZ0MzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoMyksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMik7CisgICAgICAgIGppdC5s
b2FkUHRyKEdQUkluZm86OnJlZ1QyLCBHUFJJbmZvOjpyZWdUMik7CisgICAgICAgIAorICAgICAg
ICBqaXQuYWRkUHRyKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
c2l6ZSAqIHNpemVvZihSZWdpc3RlcikpLAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIAorICAgICAgICAvLyBUaHVua3MgbGlrZSBv
dXJzIHdhbnQgdG8gdXNlIHRoZSByZXR1cm4gUEMgdG8gZmlndXJlIG91dCB3aGVyZSB0aGluZ3MK
KyAgICAgICAgLy8gd2VyZSBzYXZlZC4gU28sIHdlIHBheSBpdCBmb3J3YXJkLgorICAgICAgICBq
aXQuc3RvcmUzMigKKyAgICAgICAgICAgIEdQUkluZm86OnJlZ1Q0LAorICAgICAgICAgICAgQXNz
ZW1ibHlIZWxwZXJzOjpBZGRyZXNzKAorICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsCisgICAgICAgICAgICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50
Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIp
ICsKKyAgICAgICAgICAgICAgICBQYXlsb2FkT2Zmc2V0KSk7CisgICAgICAgIAorICAgICAgICBq
aXQuanVtcChHUFJJbmZvOjpyZWdUMik7CisgICAgfQorICAgIAorICAgIExpbmtCdWZmZXIgbGlu
a0J1ZmZlcih2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICAKKyAgICB1bnNpZ25lZCBy
ZXR1cm5QQ3NTaXplID0gbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzIC8gc3RhY2tB
bGlnbm1lbnRSZWdpc3RlcnMoKSArIDE7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvZGVMb2NhdGlv
bkxhYmVsW10+IHJldHVyblBDcyA9CisgICAgICAgIHN0ZDo6bWFrZV91bmlxdWU8Q29kZUxvY2F0
aW9uTGFiZWxbXT4ocmV0dXJuUENzU2l6ZSk7CisgICAgZm9yICh1bnNpZ25lZCBzaXplID0gMDsg
c2l6ZSA8PSBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXM7IHNpemUgKz0gc3RhY2tB
bGlnbm1lbnRSZWdpc3RlcnMoKSkgeworICAgICAgICB1bnNpZ25lZCBpbmRleCA9IHNpemUgLyBz
dGFja0FsaWdubWVudFJlZ2lzdGVycygpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChpbmRleCA8
IHJldHVyblBDc1NpemUpOworICAgICAgICBpZiAoc2l6ZSA8IG1fbmV4dFNpemUpCisgICAgICAg
ICAgICByZXR1cm5QQ3NbaW5kZXhdID0gbV9yZXR1cm5QQ0FycmF5cy5sYXN0KClbaW5kZXhdOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm5QQ3NbaW5kZXhdID0gbGlua0J1ZmZlci5s
b2NhdGlvbk9mKGxhYmVsc1soc2l6ZSAtIG1fbmV4dFNpemUpIC8gc3RhY2tBbGlnbm1lbnRSZWdp
c3RlcnMoKV0pOworICAgIH0KKworICAgIENvZGVMb2NhdGlvbkxhYmVsKiByZXN1bHQgPSByZXR1
cm5QQ3MuZ2V0KCk7CisKKyAgICB7CisgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2Vy
KG1fbG9jayk7CisgICAgICAgIG1fcmV0dXJuUENBcnJheXMuYXBwZW5kKHN0ZDo6bW92ZShyZXR1
cm5QQ3MpKTsKKyAgICAgICAgbV9yZWZzLmFwcGVuZChGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIs
ICgiQXJpdHkgY2hlY2sgZmFpbCByZXR1cm4gdGh1bmtzIGZvciB1cCB0byBudW1BcmdzID0gJXUi
LCBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMpKSk7CisgICAgICAgIG1fbmV4dFNp
emUgPSBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgKyBzdGFja0FsaWdubWVudFJl
Z2lzdGVycygpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitDb2RlTG9j
YXRpb25MYWJlbCBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rczo6cmV0dXJuUENGb3IoVk0mIHZt
LCB1bnNpZ25lZCBzbG90c1RvQWRkKQoreworICAgIHJldHVybiByZXR1cm5QQ3NGb3Iodm0sIHNs
b3RzVG9BZGQpW3Nsb3RzVG9BZGQgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpXTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBBcml0
eUNoZWNrRmFpbFJldHVyblRodW5rc19oCisjZGVmaW5lIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1
bmtzX2gKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDb2RlTG9jYXRpb24uaCIKKyNp
bmNsdWRlICJDb25jdXJyZW50SklUTG9jay5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisK
K25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcyB7Citw
dWJsaWM6CisgICAgQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKTsKKyAgICB+QXJpdHlDaGVj
a0ZhaWxSZXR1cm5UaHVua3MoKTsKKyAgICAKKyAgICAvLyBSZXR1cm5zIGEgcG9pbnRlciB0byBh
biBhcnJheSBvZiByZXR1cm4gbGFiZWxzIGluZGV4ZWQgYnkgbWlzc2luZ0FyZ3MuCisgICAgQ29k
ZUxvY2F0aW9uTGFiZWwqIHJldHVyblBDc0ZvcihWTSYsIHVuc2lnbmVkIG51bUV4cGVjdGVkQXJn
dW1lbnRzSW5jbHVkaW5nVGhpcyk7CisgICAgCisgICAgQ29kZUxvY2F0aW9uTGFiZWwgcmV0dXJu
UENGb3IoVk0mLCB1bnNpZ25lZCBzbG90c1RvQWRkKTsKKyAgICAKK3ByaXZhdGU6CisgICAgVmVj
dG9yPHN0ZDo6dW5pcXVlX3B0cjxDb2RlTG9jYXRpb25MYWJlbFtdPj4gbV9yZXR1cm5QQ0FycmF5
czsKKyAgICB1bnNpZ25lZCBtX25leHRTaXplOworICAgIFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY+IG1fcmVmczsKKyAgICBDb25jdXJyZW50SklUTG9jayBtX2xvY2s7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNlbmRpZiAvLyBBcml0
eUNoZWNrRmFpbFJldHVyblRodW5rc19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEwLDYgKzExMCwxNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0SXNDZWxsKEdQ
CiAgICAgYnJlYWtwb2ludCgpOwogICAgIGNoZWNrQ2VsbC5saW5rKHRoaXMpOwogfQorCit2b2lk
IEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0VGFnc0luUGxhY2UoKQoreworICAgIEp1bXAgb2sg
PSBicmFuY2g2NChFcXVhbCwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBUcnVzdGVk
SW1tNjQoVGFnVHlwZU51bWJlcikpOworICAgIGJyZWFrcG9pbnQoKTsKKyAgICBvay5saW5rKHRo
aXMpOworICAgIAorICAgIG9rID0gYnJhbmNoNjQoRXF1YWwsIEdQUkluZm86OnRhZ01hc2tSZWdp
c3RlciwgVHJ1c3RlZEltbTY0KFRhZ01hc2spKTsKKyAgICBicmVha3BvaW50KCk7CisgICAgb2su
bGluayh0aGlzKTsKK30KICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCiB2b2lkIEFzc2VtYmx5SGVs
cGVyczo6aml0QXNzZXJ0SXNJbnQzMihHUFJSZWcgZ3ByKQogewpAQCAtMTQ1LDYgKzE1NiwxMCBA
QCB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0SXNDZWxsKEdQCiAgICAgYnJlYWtwb2lu
dCgpOwogICAgIGNoZWNrQ2VsbC5saW5rKHRoaXMpOwogfQorCit2b2lkIEFzc2VtYmx5SGVscGVy
czo6aml0QXNzZXJ0VGFnc0luUGxhY2UoKQoreworfQogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJf
NjQpCiAKIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRIYXNWYWxpZENhbGxGcmFtZSgp
CkBAIC0xNjAsNiArMTc1LDEzIEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc051
bGwoR1AKICAgICBicmVha3BvaW50KCk7CiAgICAgY2hlY2tOdWxsLmxpbmsodGhpcyk7CiB9CisK
K3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRBcmd1bWVudENvdW50U2FuZSgpCit7Cisg
ICAgSnVtcCBvayA9IGJyYW5jaDMyKEJlbG93LCBwYXlsb2FkRm9yKEpTU3RhY2s6OkFyZ3VtZW50
Q291bnQpLCBUcnVzdGVkSW1tMzIoMTAwMDAwMDApKTsKKyAgICBicmVha3BvaW50KCk7CisgICAg
b2subGluayh0aGlzKTsKK30KICNlbmRpZiAvLyAhQVNTRVJUX0RJU0FCTEVECiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fz
c2VtYmx5SGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw4ICs1OCwzNiBAQCBwdWJsaWM6
CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSB7IHJldHVybiBtX2NvZGVCbG9jazsgfQogICAg
IFZNKiB2bSgpIHsgcmV0dXJuIG1fdm07IH0KICAgICBBc3NlbWJsZXJUeXBlX1QmIGFzc2VtYmxl
cigpIHsgcmV0dXJuIG1fYXNzZW1ibGVyOyB9Ci0gICAgCisKKyAgICB2b2lkIGNoZWNrU3RhY2tQ
b2ludGVyQWxpZ25tZW50KCkKKyAgICB7CisgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm90aCB1
bm5lZWRlZCBhbmQgaGFyZGVyIHRvIHdyaXRlIGNvcnJlY3RseSBmb3IgQVJNNjQKKyNpZiAhZGVm
aW5lZChOREVCVUcpICYmICFDUFUoQVJNNjQpCisgICAgICAgIEp1bXAgc3RhY2tQb2ludGVyQWxp
Z25lZCA9IGJyYW5jaFRlc3RQdHIoWmVybywgc3RhY2tQb2ludGVyUmVnaXN0ZXIsIFRydXN0ZWRJ
bW0zMigweGYpKTsKKyAgICAgICAgYnJlYWtwb2ludCgpOworICAgICAgICBzdGFja1BvaW50ZXJB
bGlnbmVkLmxpbmsodGhpcyk7CisjZW5kaWYKKyAgICB9CisKICNpZiBDUFUoWDg2XzY0KSB8fCBD
UFUoWDg2KQorICAgIHNpemVfdCBwcm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkKKyAgICB7Cisg
ICAgICAgIC8vIFByb2xvZ3VlIG9ubHkgc2F2ZXMgdGhlIGZyYW1lUG9pbnRlclJlZ2lzdGVyCisg
ICAgICAgIHJldHVybiBzaXplb2Yodm9pZCopOworICAgIH0KKworICAgIHZvaWQgZW1pdEZ1bmN0
aW9uUHJvbG9ndWUoKQorICAgIHsKKyAgICAgICAgcHVzaChmcmFtZVBvaW50ZXJSZWdpc3Rlcik7
CisgICAgICAgIG1vdmUoc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGZyYW1lUG9pbnRlclJlZ2lzdGVy
KTsKKyAgICB9CisKKyAgICB2b2lkIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICB7CisgICAg
ICAgIG1vdmUoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAg
ICAgICAgcG9wKGZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICB9CisKICAgICB2b2lkIHByZXNl
cnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJSZWcgcmVnKQogICAgIHsKICAgICAgICAgcG9w
KHJlZyk7CkBAIC03Nyw2ICsxMDUsMjQgQEAgcHVibGljOgogI2VuZGlmIC8vIENQVShYODZfNjQp
IHx8IENQVShYODYpCiAKICNpZiBDUFUoQVJNKSB8fCBDUFUoQVJNNjQpCisgICAgc2l6ZV90IHBy
b2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKQorICAgIHsKKyAgICAgICAgLy8gUHJvbG9ndWUgc2F2
ZXMgdGhlIGZyYW1lUG9pbnRlclJlZ2lzdGVyIGFuZCBsaW5rUmVnaXN0ZXIKKyAgICAgICAgcmV0
dXJuIDIgKiBzaXplb2Yodm9pZCopOworICAgIH0KKworICAgIHZvaWQgZW1pdEZ1bmN0aW9uUHJv
bG9ndWUoKQorICAgIHsKKyAgICAgICAgcHVzaFBhaXIoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIGxp
bmtSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGZyYW1lUG9p
bnRlclJlZ2lzdGVyKTsKKyAgICB9CisKKyAgICB2b2lkIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCkK
KyAgICB7CisgICAgICAgIG1vdmUoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKKyAgICAgICAgcG9wUGFpcihmcmFtZVBvaW50ZXJSZWdpc3RlciwgbGlua1JlZ2lz
dGVyKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcHJlc2VydmVSZXR1cm5BZGRy
ZXNzQWZ0ZXJDYWxsKFJlZ2lzdGVySUQgcmVnKQogICAgIHsKICAgICAgICAgbW92ZShsaW5rUmVn
aXN0ZXIsIHJlZyk7CkBAIC05NCw2ICsxNDAsMTIgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBD
UFUoTUlQUykKKyAgICBzaXplX3QgcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpCisgICAgewor
ICAgICAgICAvLyBQcm9sb2d1ZSBzYXZlcyB0aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5kIHJl
dHVybkFkZHJlc3NSZWdpc3RlcgorICAgICAgICByZXR1cm4gMiAqIHNpemVvZih2b2lkKik7Cisg
ICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVy
Q2FsbChSZWdpc3RlcklEIHJlZykKICAgICB7CiAgICAgICAgIG1vdmUocmV0dXJuQWRkcmVzc1Jl
Z2lzdGVyLCByZWcpOwpAQCAtMTExLDYgKzE2MywxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lm
IENQVShTSDQpCisgICAgc2l6ZV90IHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKQorICAgIHsK
KyAgICAgICAgLy8gUHJvbG9ndWUgc2F2ZXMgdGhlIGZyYW1lUG9pbnRlclJlZ2lzdGVyIGFuZCBs
aW5rIHJlZ2lzdGVyCisgICAgICAgIHJldHVybiAyICogc2l6ZW9mKHZvaWQqKTsKKyAgICB9CisK
ICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKFJl
Z2lzdGVySUQgcmVnKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3RzcHIocmVnKTsKQEAg
LTE1MCwxMCArMjA4LDYgQEAgcHVibGljOgogICAgICAgICBzdG9yZVB0cihmcm9tLCBBZGRyZXNz
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0
KCkpKTsKICAgICB9CiAKLSAgICB2b2lkIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFk
ZXJQdHIoUmVnaXN0ZXJJRCB0bykKLSAgICB7Ci0gICAgICAgIGxvYWRQdHIoQWRkcmVzcyhHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSwgdG8p
OwotICAgIH0KICAgICB2b2lkIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKFJlZ2lz
dGVySUQgZnJvbSkKICAgICB7CiAgICAgICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3MoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOwpAQCAt
MTYzLDYgKzIxNywyOSBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3Mo
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkp
OwogICAgIH0KIAorICAgIC8vIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3Vl
KCkgYW5kIHJlbGF0ZWQgYXJlIHVzZWQgdG8gYWNjZXNzIGNhbGxlZSBmcmFtZSBoZWFkZXIKKyAg
ICAvLyBmaWVsZHMgYmVmb3JlIHRoZSBjb2RlIGZyb20gZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKSBo
YXMgZXhlY3V0ZWQuCisgICAgLy8gRmlyc3QsIHRoZSBhY2Nlc3MgaXMgdmlhIHRoZSBzdGFjayBw
b2ludGVyLiBTZWNvbmQsIHRoZSBhZGRyZXNzIGNhbGN1bGF0aW9uIG11c3QgYWxzbyB0YWtlCisg
ICAgLy8gaW50byBhY2NvdW50IHRoYXQgdGhlIHN0YWNrIHBvaW50ZXIgbWF5IG5vdCBoYXZlIGJl
ZW4gYWRqdXN0ZWQgZG93biBmb3IgdGhlIHJldHVybiBQQyBhbmQvb3IKKyAgICAvLyBjYWxsZXIn
cyBmcmFtZSBwb2ludGVyLiBPbiBzb21lIHBsYXRmb3JtcywgdGhlIGNhbGxlZSBpcyByZXNwb25z
aWJsZSBmb3IgcHVzaGluZyB0aGUKKyAgICAvLyAibGluayByZWdpc3RlciIgY29udGFpbmluZyB0
aGUgcmV0dXJuIGFkZHJlc3MgaW4gdGhlIGZ1bmN0aW9uIHByb2xvZ3VlLgorI2lmIFVTRShKU1ZB
TFVFNjQpCisgICAgdm9pZCBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZShH
UFJSZWcgZnJvbSwgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCisgICAgewor
ICAgICAgICBzdG9yZVB0cihmcm9tLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBlbnRy
eSAqIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBwcm9sb2d1ZVN0
YWNrUG9pbnRlckRlbHRhKCkpKTsKKyAgICB9CisjZWxzZQorICAgIHZvaWQgZW1pdFB1dFBheWxv
YWRUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKEdQUlJlZyBmcm9tLCBKU1N0YWNrOjpD
YWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSkKKyAgICB7CisgICAgICAgIHN0b3JlUHRyKGZyb20s
IEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGVudHJ5ICogc3RhdGljX2Nhc3Q8cHRyZGlm
Zl90PihzaXplb2YoUmVnaXN0ZXIpKSAtIHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKSArIE9C
SkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpKTsK
KyAgICB9CisKKyAgICB2b2lkIGVtaXRQdXRUYWdUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xv
Z3VlKFRydXN0ZWRJbW0zMiB0YWcsIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVudHJ5
KQorICAgIHsKKyAgICAgICAgc3RvcmVQdHIodGFnLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lz
dGVyLCBlbnRyeSAqIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBw
cm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVl
RGVzY3JpcHRvciwgYXNCaXRzLnRhZykpKTsKKyAgICB9CisjZW5kaWYKKwogICAgIEp1bXAgYnJh
bmNoSWZOb3RDZWxsKEdQUlJlZyByZWcpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0x
OTQsNyArMjcxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBBZGRyZXNzIHRhZ0ZvcihWaXJ0dWFs
UmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyKQogICAgIHsKICAgICAgICAgQVNTRVJUKHZpcnR1YWxS
ZWdpc3Rlci5pc1ZhbGlkKCkpOwotICAgICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVy
KSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7
CisgICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0
dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgVGFnT2Zmc2V0KTsKICAg
ICB9CiAgICAgc3RhdGljIEFkZHJlc3MgdGFnRm9yKGludCBvcGVyYW5kKQogICAgIHsKQEAgLTIw
NCw3ICsyODEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEFkZHJlc3MgcGF5bG9hZEZvcihWaXJ0
dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyKQogICAgIHsKICAgICAgICAgQVNTRVJUKHZpcnR1
YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwotICAgICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lz
dGVyKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5
bG9hZCkpOworICAgICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
ciwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRP
ZmZzZXQpOwogICAgIH0KICAgICBzdGF0aWMgQWRkcmVzcyBwYXlsb2FkRm9yKGludCBvcGVyYW5k
KQogICAgIHsKQEAgLTI5OCw2ICszNzUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBqaXRBc3NlcnRJ
c0NlbGwoR1BSUmVnKTsKICAgICB2b2lkIGppdEFzc2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCk7CiAg
ICAgdm9pZCBqaXRBc3NlcnRJc051bGwoR1BSUmVnKTsKKyAgICB2b2lkIGppdEFzc2VydFRhZ3NJ
blBsYWNlKCk7CisgICAgdm9pZCBqaXRBc3NlcnRBcmd1bWVudENvdW50U2FuZSgpOwogI2Vsc2UK
ICAgICB2b2lkIGppdEFzc2VydElzSW50MzIoR1BSUmVnKSB7IH0KICAgICB2b2lkIGppdEFzc2Vy
dElzSlNJbnQzMihHUFJSZWcpIHsgfQpAQCAtMzA2LDYgKzM4NSw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGppdEFzc2VydElzQ2VsbChHUFJSZWcpIHsgfQogICAgIHZvaWQgaml0QXNzZXJ0SGFzVmFs
aWRDYWxsRnJhbWUoKSB7IH0KICAgICB2b2lkIGppdEFzc2VydElzTnVsbChHUFJSZWcpIHsgfQor
ICAgIHZvaWQgaml0QXNzZXJ0VGFnc0luUGxhY2UoKSB7IH0KKyAgICB2b2lkIGppdEFzc2VydEFy
Z3VtZW50Q291bnRTYW5lKCkgeyB9CiAjZW5kaWYKIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgY29u
dmVydCBiZXR3ZWVuIGRvdWJsZXMsIGFuZCBkb3VibGVzIGJveGVkIGFuZCBKU1ZhbHVlcy4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkocmV2aXNpb24gMTYy
OTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTUsNiArOTUsMTMgQEAgcHVibGljOgogICAgICAgICBhZGRDYWxsQXJndW1l
bnQoYXJnMik7CiAgICAgfQogICAgIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3Vt
ZW50cyhUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAgcmVz
ZXRDYWxsQXJndW1lbnRzKCk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcxKTsKKyAgICAg
ICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOworICAgIH0KKyAgICAKICAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgc2V0dXBBcmd1bWVudHMoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJn
MykKICAgICB7CiAgICAgICAgIHJlc2V0Q2FsbEFyZ3VtZW50cygpOwpAQCAtOTM5LDYgKzk0Niwx
MiBAQCBwdWJsaWM6CiAgICAgICAgIG1vdmUoYXJnMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoVHJ1c3RlZElt
bVB0ciBhcmcxLCBHUFJSZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1vdmUoYXJnMiwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgbW92ZShhcmcxLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOworICAgIH0KKyAgICAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHMo
R1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQogICAgIHsKICAgICAgICAgc2V0dXBUd29TdHViQXJn
c0dQUjxHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMT4oYXJnMSwg
YXJnMik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3IuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDIxICs3OCw2IEBA
IHZvaWQgcmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoVk0mKTsKIAogc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGppdEFsbG9jYXRpb25HcmFudWxlID0gMzI7CiAKLWlubGluZSBzaXplX3Qgcm91bmRVcEFs
bG9jYXRpb25TaXplKHNpemVfdCByZXF1ZXN0LCBzaXplX3QgZ3JhbnVsYXJpdHkpCi17Ci0gICAg
UkVMRUFTRV9BU1NFUlQoKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgLSBncmFu
dWxhcml0eSkgPiByZXF1ZXN0KTsKLSAgICAKLSAgICAvLyBSb3VuZCB1cCB0byBuZXh0IHBhZ2Ug
Ym91bmRhcnkKLSAgICBzaXplX3Qgc2l6ZSA9IHJlcXVlc3QgKyAoZ3JhbnVsYXJpdHkgLSAxKTsK
LSAgICBzaXplID0gc2l6ZSAmIH4oZ3JhbnVsYXJpdHkgLSAxKTsKLSAgICBBU1NFUlQoc2l6ZSA+
PSByZXF1ZXN0KTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQotfQotCi1uYW1lc3BhY2UgSlNDIHsK
LQogdHlwZWRlZiBXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGUgRXhlY3V0YWJsZU1lbW9yeUhhbmRs
ZTsKIAogI2lmIEVOQUJMRShBU1NFTUJMRVIpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKIEpTQzo6TWFjcm9Bc3NlbWJsZXJY
ODZDb21tb246OlNTRTJDaGVja1N0YXRlIEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnNf
c3NlMkNoZWNrU3RhdGUgPSBOb3RDaGVja2VkU1NFMjsKICNlbmRpZgogCisjaW5jbHVkZSAiQXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNs
dWRlICJERkdDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpAQCAtNDIs
MTEgKzQzLDEzIEBAIEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OlNTRTJDaGVja1MKICNp
bmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxp
bmtCdWZmZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgog
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAjaW5j
bHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogI2luY2x1ZGUg
IlNsb3dQYXRoQ2FsbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSA8
d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CkBAIC05OCw2ICsxMDEsNyBAQCB2b2lkIEpJVDo6ZW1pdEVudGVyT3B0aW1pemF0aW9uQ2hl
Y2soKQogICAgIEFTU0VSVCghbV9ieXRlY29kZU9mZnNldCk7CiAgICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25PcHRpbWl6ZSwgbV9ieXRlY29kZU9mZnNldCk7CiAgICAgc2tpcE9wdGltaXplLmFw
cGVuZChicmFuY2hUZXN0UHRyKFplcm8sIHJldHVyblZhbHVlR1BSKSk7CisgICAgbW92ZShyZXR1
cm5WYWx1ZUdQUjIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBqdW1wKHJldHVyblZhbHVl
R1BSKTsKICAgICBza2lwT3B0aW1pemUubGluayh0aGlzKTsKIH0KQEAgLTEyOCw2ICsxMzIsOSBA
QCB2b2lkIEpJVDo6ZW1pdEVudGVyT3B0aW1pemF0aW9uQ2hlY2soKQogCiB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcygpCiB7CisgICAgaml0QXNzZXJ0VGFnc0luUGxhY2UoKTsKKyAg
ICBqaXRBc3NlcnRBcmd1bWVudENvdW50U2FuZSgpOworICAgIAogICAgIEluc3RydWN0aW9uKiBp
bnN0cnVjdGlvbnNCZWdpbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwog
ICAgIHVuc2lnbmVkIGluc3RydWN0aW9uQ291bnQgPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25z
KCkuc2l6ZSgpOwogCkBAIC00OTYsOCArNTAzLDcgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpw
cml2YXRlQ29tcGlsZShKSQogICAgIGlmIChtX3JhbmRvbUdlbmVyYXRvci5nZXRVaW50MzIoKSAm
IDEpCiAgICAgICAgIG5vcCgpOwogCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxs
KHJlZ1QyKTsKLSAgICBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihyZWdUMik7Cisg
ICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICBlbWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJh
bWVIZWFkZXIobV9jb2RlQmxvY2ssIEpTU3RhY2s6OkNvZGVCbG9jayk7CiAKICAgICBMYWJlbCBi
ZWdpbkxhYmVsKHRoaXMpOwpAQCAtNTA3LDcgKzUxMyw3IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJ
VDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAgICBzYW1wbGVJbnN0cnVjdGlvbihtX2NvZGVCbG9jay0+
aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSk7CiAjZW5kaWYKIAotICAgIEp1bXAgc3RhY2tDaGVjazsK
KyAgICBKdW1wIHN0YWNrT3ZlcmZsb3c7CiAgICAgaWYgKG1fY29kZUJsb2NrLT5jb2RlVHlwZSgp
ID09IEZ1bmN0aW9uQ29kZSkgewogICAgICAgICBBU1NFUlQobV9ieXRlY29kZU9mZnNldCA9PSAo
dW5zaWduZWQpLTEpOwogICAgICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CkBAIC01
MjcsMTIgKzUzMywxMyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJ
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMy
KHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lUmVnaXN0ZXJDb3VudEZvcihtX2NvZGVCbG9j
aykpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdU
MSk7Ci0gICAgICAgIHN0YWNrQ2hlY2sgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVz
cyhtX3ZtLT5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksIHJlZ1QxKTsKKyAgICAgICAgYWRkUHRy
KFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9m
KFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7CisgICAgICAgIHN0YWNrT3Zl
cmZsb3cgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5hZGRyZXNzT2ZK
U1N0YWNrTGltaXQoKSksIHJlZ1QxKTsKICAgICB9CiAKLSAgICBMYWJlbCBmdW5jdGlvbkJvZHkg
PSBsYWJlbCgpOwotICAgIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zm
c2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rl
ciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50
KCk7CisKICAgICBwcml2YXRlQ29tcGlsZU1haW5QYXNzKCk7CiAgICAgcHJpdmF0ZUNvbXBpbGVM
aW5rUGFzcygpOwogICAgIHByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCk7CkBAIC01NDIsMTggKzU0
OSwxNSBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAKICAgICBM
YWJlbCBhcml0eUNoZWNrOwogICAgIGlmIChtX2NvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5j
dGlvbkNvZGUpIHsKLSAgICAgICAgc3RhY2tDaGVjay5saW5rKHRoaXMpOworICAgICAgICBzdGFj
a092ZXJmbG93LmxpbmsodGhpcyk7CiAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXQgPSAwOwotICAg
ICAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0
aW9uU3RhY2tDaGVjaywgbV9jb2RlQmxvY2spOwotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgbV9i
eXRlY29kZU9mZnNldCA9ICh1bnNpZ25lZCktMTsgLy8gUmVzZXQgdGhpcywgaW4gb3JkZXIgdG8g
Z3VhcmQgaXRzIHVzZSB3aXRoIEFTU0VSVHMuCi0jZW5kaWYKLSAgICAgICAganVtcChmdW5jdGlv
bkJvZHkpOworICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAg
ICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhDYWxs
RnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9y
LCBtX2NvZGVCbG9jayk7CiAKICAgICAgICAgYXJpdHlDaGVjayA9IGxhYmVsKCk7CiAgICAgICAg
IHN0b3JlOChUcnVzdGVkSW1tMzIoMCksICZtX2NvZGVCbG9jay0+bV9zaG91bGRBbHdheXNCZUlu
bGluZWQpOwotICAgICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDIpOwot
ICAgICAgICBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihyZWdUMik7CisgICAgICAg
IGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgICAgIGVtaXRQdXRJbW1lZGlhdGVUb0NhbGxG
cmFtZUhlYWRlcihtX2NvZGVCbG9jaywgSlNTdGFjazo6Q29kZUJsb2NrKTsKIAogICAgICAgICBs
b2FkMzIocGF5bG9hZEZvcihKU1N0YWNrOjpBcmd1bWVudENvdW50KSwgcmVnVDEpOwpAQCAtNTYx
LDEwICs1NjUsMTYgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSQog
CiAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXQgPSAwOwogCisgICAgICAgIGlmIChtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAg
ICAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24obV9jb2Rl
QmxvY2stPm1faXNDb25zdHJ1Y3RvciA/IG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2sgOiBv
cGVyYXRpb25DYWxsQXJpdHlDaGVjayk7CisgICAgICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIGlmIChy
ZXR1cm5WYWx1ZUdQUiAhPSByZWdUMCkKICAgICAgICAgICAgIG1vdmUocmV0dXJuVmFsdWVHUFIs
IHJlZ1QwKTsKICAgICAgICAgYnJhbmNoVGVzdDMyKFplcm8sIHJlZ1QwKS5saW5rVG8oYmVnaW5M
YWJlbCwgdGhpcyk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihtX3ZtLT5hcml0eUNoZWNr
RmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENzRm9yKCptX3ZtLCBtX2NvZGVCbG9jay0+bnVtUGFy
YW1ldGVycygpKSksIHJlZ1Q1KTsKKyAgICAgICAgbG9hZFB0cihCYXNlSW5kZXgocmVnVDUsIHJl
Z1QwLCB0aW1lc1B0cigpKSwgcmVnVDUpOwogICAgICAgICBlbWl0TmFrZWRDYWxsKG1fdm0tPmdl
dENUSVN0dWIoYXJpdHlGaXh1cCkuY29kZSgpKTsKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKQEAg
LTY1MywyMCArNjYzLDEyIEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUo
SkkKICAgICAgICAgaW5mby5jYWxsZWVHUFIgPSByZWdUMDsKICAgICB9CiAKLSNpZiBFTkFCTEUo
REZHX0pJVCkgfHwgRU5BQkxFKExMSU5UKQotICAgIGlmIChjYW5CZU9wdGltaXplZE9ySW5saW5l
ZCgpCi0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICB8fCB0cnVlCi0jZW5kaWYKLSAgICAgICAg
KSB7Ci0gICAgICAgIENvbXBhY3RKSVRDb2RlTWFwOjpFbmNvZGVyIGppdENvZGVNYXBFbmNvZGVy
OwotICAgICAgICBmb3IgKHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gMDsgYnl0ZWNvZGVPZmZz
ZXQgPCBtX2xhYmVscy5zaXplKCk7ICsrYnl0ZWNvZGVPZmZzZXQpIHsKLSAgICAgICAgICAgIGlm
IChtX2xhYmVsc1tieXRlY29kZU9mZnNldF0uaXNTZXQoKSkKLSAgICAgICAgICAgICAgICBqaXRD
b2RlTWFwRW5jb2Rlci5hcHBlbmQoYnl0ZWNvZGVPZmZzZXQsIHBhdGNoQnVmZmVyLm9mZnNldE9m
KG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XSkpOwotICAgICAgICB9Ci0gICAgICAgIG1fY29kZUJs
b2NrLT5zZXRKSVRDb2RlTWFwKGppdENvZGVNYXBFbmNvZGVyLmZpbmlzaCgpKTsKKyAgICBDb21w
YWN0SklUQ29kZU1hcDo6RW5jb2RlciBqaXRDb2RlTWFwRW5jb2RlcjsKKyAgICBmb3IgKHVuc2ln
bmVkIGJ5dGVjb2RlT2Zmc2V0ID0gMDsgYnl0ZWNvZGVPZmZzZXQgPCBtX2xhYmVscy5zaXplKCk7
ICsrYnl0ZWNvZGVPZmZzZXQpIHsKKyAgICAgICAgaWYgKG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0
XS5pc1NldCgpKQorICAgICAgICAgICAgaml0Q29kZU1hcEVuY29kZXIuYXBwZW5kKGJ5dGVjb2Rl
T2Zmc2V0LCBwYXRjaEJ1ZmZlci5vZmZzZXRPZihtX2xhYmVsc1tieXRlY29kZU9mZnNldF0pKTsK
ICAgICB9Ci0jZW5kaWYKKyAgICBtX2NvZGVCbG9jay0+c2V0SklUQ29kZU1hcChqaXRDb2RlTWFw
RW5jb2Rlci5maW5pc2goKSk7CiAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgd2l0aEFyaXR5
Q2hlY2s7CiAgICAgaWYgKG1fY29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSkK
QEAgLTY4Nyw4ICs2ODksNyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxl
KEpJCiAgICAgCiAgICAgbV9jb2RlQmxvY2stPnNocmlua1RvRml0KENvZGVCbG9jazo6TGF0ZVNo
cmluayk7CiAgICAgbV9jb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5l
dyBEaXJlY3RKSVRDb2RlKHJlc3VsdCwgSklUQ29kZTo6QmFzZWxpbmVKSVQpKSwKLSAgICAgICAg
d2l0aEFyaXR5Q2hlY2spOworICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShyZXN1
bHQsIHdpdGhBcml0eUNoZWNrLCBKSVRDb2RlOjpCYXNlbGluZUpJVCkpKTsKICAgICAKICNpZiBF
TkFCTEUoSklUX1ZFUkJPU0UpCiAgICAgZGF0YUxvZ0YoIkpJVCBnZW5lcmF0ZWQgY29kZSBmb3Ig
JXAgYXQgWyVwLCAlcCkuXG4iLCBtX2NvZGVCbG9jaywgcmVzdWx0LmV4ZWN1dGFibGVNZW1vcnko
KS0+c3RhcnQoKSwgcmVzdWx0LmV4ZWN1dGFibGVNZW1vcnkoKS0+ZW5kKCkpOwpAQCAtNjk3LDQy
ICs2OTgsNiBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAgICAg
cmV0dXJuIENvbXBpbGF0aW9uU3VjY2Vzc2Z1bDsKIH0KIAotdm9pZCBKSVQ6OmxpbmtGb3IoRXhl
Y1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIENvZGVCbG9jayogY2FsbGVyQ29kZUJs
b2NrLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywgSklUOjpDb2RlUHRyIGNvZGUsIENhbGxM
aW5rSW5mbyogY2FsbExpbmtJbmZvLCBWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2lu
ZCkKLXsKLSAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIoY2FsbGVyQ29kZUJsb2NrKTsK
LQotICAgIEFTU0VSVCghY2FsbExpbmtJbmZvLT5pc0xpbmtlZCgpKTsKLSAgICBjYWxsTGlua0lu
Zm8tPmNhbGxlZS5zZXQoKnZtLCBjYWxsTGlua0luZm8tPmhvdFBhdGhCZWdpbiwgY2FsbGVyQ29k
ZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVlKTsKLSAgICBjYWxsTGlua0luZm8tPmxh
c3RTZWVuQ2FsbGVlLnNldCgqdm0sIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCks
IGNhbGxlZSk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5ob3RQYXRo
T3RoZXIsIGNvZGUpOwotCi0gICAgaWYgKGNhbGxlZUNvZGVCbG9jaykKLSAgICAgICAgY2FsbGVl
Q29kZUJsb2NrLT5saW5rSW5jb21pbmdDYWxsKGV4ZWMsIGNhbGxMaW5rSW5mbyk7Ci0KLSAgICAv
LyBQYXRjaCB0aGUgc2xvdyBwYXRjaCBzbyB3ZSBkbyBub3QgY29udGludWUgdG8gdHJ5IHRvIGxp
bmsuCi0gICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpIHsKLSAgICAgICAgQVNTRVJUKGNhbGxM
aW5rSW5mby0+Y2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpDYWxsCi0gICAgICAgICAgICAgICB8
fCBjYWxsTGlua0luZm8tPmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2FsbFZhcmFyZ3MpOwot
ICAgICAgICBpZiAoY2FsbExpbmtJbmZvLT5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNhbGwp
IHsKLSAgICAgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby0+Y2FsbFJl
dHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRv
cikuY29kZSgpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHJl
cGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby0+Y2FsbFJldHVybkxvY2F0aW9uLCB2bS0+
Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0g
ICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24s
IHZtLT5nZXRDVElTdHViKHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpKTsK
LX0KLQotdm9pZCBKSVQ6OmxpbmtTbG93Q2FsbChDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jaywg
Q2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8pCi17Ci0gICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNo
QnVmZmVyKGNhbGxlckNvZGVCbG9jayk7Ci0KLSAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxs
TGlua0luZm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiwgY2FsbGVyQ29kZUJsb2NrLT52bSgpLT5nZXRD
VElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7Ci19Ci0KIHZvaWQgSklU
Ojpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKIHsKICAgICBpZiAobV9leGNlcHRp
b25DaGVja3MuZW1wdHkoKSAmJiBtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFj
ay5lbXB0eSgpKQpAQCAtNzQyLDcgKzcwNyw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUV4
Y2VwdGlvbkhhbmRsZXIKIAogICAgIGlmICghbV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZyYW1l
Um9sbGJhY2suZW1wdHkoKSkgewogICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJh
bWVSb2xsYmFjay5saW5rKHRoaXMpOwotICAgICAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIGVtaXRHZXRD
YWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsK
ICAgICAgICAgZG9Mb29rdXAgPSBqdW1wKCk7CiAgICAgfQogCkBAIC03NTAsMTkgKzcxNSwzMyBA
QCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVyCiAgICAgICAgIG1fZXhj
ZXB0aW9uQ2hlY2tzLmxpbmsodGhpcyk7CiAgICAgCiAgICAgLy8gbG9va3VwRXhjZXB0aW9uSGFu
ZGxlciBpcyBwYXNzZWQgb25lIGFyZ3VtZW50LCB0aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgot
ICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CisgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKTsKIAogICAgIGlmIChkb0xvb2t1cC5pc1NldCgpKQogICAgICAgICBkb0xvb2t1cC5s
aW5rKHRoaXMpOwogCisgICAgbW92ZShUcnVzdGVkSW1tUHRyKHZtKCkpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOworCiAjaWYgQ1BVKFg4NikKICAgICAvLyBGSVhNRTogc2hvdWxkIHVzZSB0aGUg
Y2FsbCBhYnN0cmFjdGlvbiwgYnV0IHRoaXMgaXMgY3VycmVudGx5IGluIHRoZSBTcGVjdWxhdGl2
ZUpJVCBsYXllciEKICAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgcG9rZShH
UFJJbmZvOjphcmd1bWVudEdQUjEsIDEpOwogI2VuZGlmCiAgICAgbV9jYWxscy5hcHBlbmQoQ2Fs
bFJlY29yZChjYWxsKCksICh1bnNpZ25lZCktMSwgRnVuY3Rpb25QdHIobG9va3VwRXhjZXB0aW9u
SGFuZGxlcikudmFsdWUoKSkpOwogICAgIGp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIoKTsKIH0KIAor
dW5zaWduZWQgSklUOjpmcmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2sp
Cit7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb2RlQmxvY2stPm1fbnVtQ2Fs
bGVlUmVnaXN0ZXJzKSA9PSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRS
ZWdpc3RlcnMoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNvZGVCbG9jay0+bV9udW1DYWxsZWVS
ZWdpc3RlcnMpKSk7CisKKyAgICByZXR1cm4gcm91bmRMb2NhbFJlZ2lzdGVyQ291bnRGb3JGcmFt
ZVBvaW50ZXJPZmZzZXQoY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVycyArIG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5SZWdpc3RlcnMpOworfQorCitpbnQgSklUOjpzdGFja1Bv
aW50ZXJPZmZzZXRGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCit7CisgICAgcmV0dXJuIHZpcnR1
YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lUmVnaXN0ZXJDb3VudEZvcihjb2RlQmxvY2spIC0gMSku
b2Zmc2V0KCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgJKHdvcmtpbmcgY29weSkKQEAgLTI0MSwxMyArMjQxLDggQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgICAgICByZXR1cm4gaml0LnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwg
ZnVuYyk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgdm9pZCBsaW5rRm9yKEV4ZWNTdGF0
ZSosIEpTRnVuY3Rpb24qIGNhbGxlZSwgQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ssIENvZGVC
bG9jayogY2FsbGVlQ29kZUJsb2NrLCBDb2RlUHRyLCBDYWxsTGlua0luZm8qLCBWTSosIENvZGVT
cGVjaWFsaXphdGlvbktpbmQpOwotICAgICAgICBzdGF0aWMgdm9pZCBsaW5rU2xvd0NhbGwoQ29k
ZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ssIENhbGxMaW5rSW5mbyopOwotICAgICAgICAKLSAgICAg
ICAgc3RhdGljIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqIGNvZGVC
bG9jaykKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGNvZGVCbG9jay0+bV9udW1DYWxs
ZWVSZWdpc3RlcnM7Ci0gICAgICAgIH0KKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGZyYW1lUmVn
aXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqKTsKKyAgICAgICAgc3RhdGljIGludCBzdGFja1BvaW50
ZXJPZmZzZXRGb3IoQ29kZUJsb2NrKik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBKSVQoVk0q
LCBDb2RlQmxvY2sqID0gMCk7CkBAIC02OTcsMTEgKzY5MiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZVRh
ZywgSl9KSVRPcGVyYXRpb25fRVBjLCBpbnQsIEluc3RydWN0aW9uKik7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVosIGludCwgaW50
MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oUF9KSVRP
cGVyYXRpb25fRUpTLCBHUFJSZWcsIHNpemVfdCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oUF9KSVRPcGVyYXRpb25fRVosIGludDMyX3QpOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VDQywgUmVn
aXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKSiwgUmVnaXN0ZXJJ
RCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oU19KSVRPcGVyYXRpb25fRU9Kc3MsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOworICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNwcnRfSklUT3BlcmF0aW9uX0Va
LCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihW
X0pJVE9wZXJhdGlvbl9FKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FQywgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNDLCBSZWdpc3RlcklELCBS
ZWdpc3RlcklEKTsKQEAgLTcyNiw2ICs3MjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FUGMsIElu
c3RydWN0aW9uKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRVosIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24oSl9KSVRPcGVy
YXRpb25fRSk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25Ob0V4
Y2VwdGlvbkNoZWNrKEpfSklUT3BlcmF0aW9uX0VFLCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhj
ZXB0aW9uKFZfSklUT3BlcmF0aW9uX0VDYiwgQ29kZUJsb2NrKik7CiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlv
bihaX0pJVE9wZXJhdGlvbl9FKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZlci5o
IgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKKyNp
bmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVh
bS5oPgogCiAKQEAgLTU2LDEwICs1Nyw5IEBAIHZvaWQgSklUOjplbWl0X29wX3JldChJbnN0cnVj
dGlvbiogY3VycmUKICAgICB1bnNpZ25lZCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kOwogCiAgICAgZW1pdExvYWQoZHN0LCByZWdUMSwgcmVnVDApOwotICAgIGVtaXRHZXRS
ZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVnVDIpOwotICAgIGVtaXRHZXRDYWxsZXJG
cmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwogCi0gICAgcmVz
dG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDIpOworICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KCk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsK
IH0KIApAQCAtNzMsMjAgKzczLDE2IEBAIHZvaWQgSklUOjplbWl0X29wX3JldF9vYmplY3Rfb3Jf
dGhpcyhJbnMKICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlT2Zm
c2V0KCkpLCByZWdUMik7CiAgICAgSnVtcCBub3RPYmplY3QgPSBlbWl0SnVtcElmTm90T2JqZWN0
KHJlZ1QyKTsKIAotICAgIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVn
VDIpOwotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZy
YW1lUmVnaXN0ZXIpOwotCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVn
VDIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisgICAgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKICAgICByZXQoKTsKIAogICAgIG5vdEpTQ2VsbC5saW5rKHRoaXMpOwogICAg
IG5vdE9iamVjdC5saW5rKHRoaXMpOwogICAgIGVtaXRMb2FkKHRoaXNSZWcsIHJlZ1QxLCByZWdU
MCk7CiAKLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QyKTsK
LSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJl
Z2lzdGVyKTsKLQotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QyKTsK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTE1MSw4ICsxNDcsMTIgQEAgdm9pZCBKSVQ6OmNv
bXBpbGVMb2FkVmFyYXJncyhJbnN0cnVjdGlvbgogICAgICAgICAvLyByZWdUMjogYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMKIAogICAgICAgICBtb3ZlKHJlZ1QyLCByZWdUMyk7CisgICAgICAg
IGFkZFB0cihUcnVzdGVkSW1tMzIoLWZpcnN0RnJlZVJlZ2lzdGVyICsgSlNTdGFjazo6Q2FsbEZy
YW1lSGVhZGVyU2l6ZSksIHJlZ1QzKTsKKyAgICAgICAgLy8gcmVnVDEgbm93IGhhcyB0aGUgcmVx
dWlyZWQgZnJhbWUgc2l6ZSBpbiBSZWdpc3RlciB1bml0cworICAgICAgICAvLyBSb3VuZCByZWdU
MSB0byBuZXh0IG11bHRpcGxlIG9mIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkKKyAgICAgICAg
YWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpIC0gMSksIHJlZ1Qz
KTsKKyAgICAgICAgYW5kUHRyKFRydXN0ZWRJbW0zMih+KHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJz
KCkgLSAxKSksIHJlZ1QzKTsKICAgICAgICAgbmVnMzIocmVnVDMpOwotICAgICAgICBhZGQzMihU
cnVzdGVkSW1tMzIoZmlyc3RGcmVlUmVnaXN0ZXIgLSBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJT
aXplKSwgcmVnVDMpOwogICAgICAgICBsc2hpZnQzMihUcnVzdGVkSW1tMzIoMyksIHJlZ1QzKTsK
ICAgICAgICAgYWRkUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMyk7CiAgICAgICAgIC8vIHJl
Z1QzOiBuZXdDYWxsRnJhbWUKQEAgLTE4NSwyMiArMTg1LDM0IEBAIHZvaWQgSklUOjpjb21waWxl
TG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24KICAgICAgICAgc2xvd0Nhc2UubGluayh0aGlzKTsKIAog
ICAgIGVtaXRMb2FkKGFyZ3VtZW50cywgcmVnVDEsIHJlZ1QwKTsKLSAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvblNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncywgcmVnVDEsIHJlZ1QwLCBmaXJz
dEZyZWVSZWdpc3Rlcik7Ci0gICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgcmVnVDUpOwotICAgIGVt
aXRMb2FkKHRoaXNWYWx1ZSwgcmVnVDEsIHJlZ1QwKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvblNpemVGcmFtZUZvclZhcmFyZ3MsIHJlZ1QxLCByZWdUMCwgZmlyc3RGcmVlUmVnaXN0ZXIp
OworICAgIG1vdmUocmV0dXJuVmFsdWVHUFIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBl
bWl0TG9hZCh0aGlzVmFsdWUsIHJlZ1QxLCByZWdUNCk7CiAgICAgZW1pdExvYWQoYXJndW1lbnRz
LCByZWdUMywgcmVnVDIpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTG9hZFZhcmFyZ3Ms
IHJlZ1Q1LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMik7CisgICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25Mb2FkVmFyYXJncywgcmV0dXJuVmFsdWVHUFIsIHJlZ1QxLCByZWdUNCwgcmVnVDMs
IHJlZ1QyKTsKICAgICBtb3ZlKHJldHVyblZhbHVlR1BSLCByZWdUMyk7CiAKICAgICBpZiAoY2Fu
T3B0aW1pemUpCiAgICAgICAgIGVuZC5saW5rKHRoaXMpOworCisgICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMywgc3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwogfQogCiB2b2lkIEpJVDo6Y29tcGlsZUNhbGxFdmFsKEluc3RydWN0aW9uKiBpbnN0cnVj
dGlvbikKIHsKLSAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRp
b24ob3BlcmF0aW9uQ2FsbEV2YWwpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLXN0YXRpY19j
YXN0PHB0cmRpZmZfdD4oc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSksIHN0YWNrUG9pbnRlclJl
Z2lzdGVyLCByZWdUMSk7CisKKyAgICBjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhvcGVy
YXRpb25DYWxsRXZhbCwgcmVnVDEpOworCisgICAgSnVtcCBub0V4Y2VwdGlvbiA9IGVtaXRFeGNl
cHRpb25DaGVjayhJbnZlcnRlZEV4Y2VwdGlvbkNoZWNrKTsKKyAgICBhZGRQdHIoVHJ1c3RlZElt
bTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIp
KSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBleGNlcHRp
b25DaGVjayhqdW1wKCkpOworCisgICAgbm9FeGNlcHRpb24ubGluayh0aGlzKTsKICAgICBhZGRT
bG93Q2FzZShicmFuY2gzMihFcXVhbCwgcmVnVDEsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0
eVZhbHVlVGFnKSkpOwotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQ
dHIoY2FsbEZyYW1lUmVnaXN0ZXIpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1Bv
aW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFt
ZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgCkBA
IC0yMTEsOCArMjIzLDEzIEBAIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2YWxTbG93Q2FzZShJbnN0
cnUKIHsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKKyAgICBsb2FkUHRyKEFkZHJlc3Moc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpDYWxsZWUgLSBz
aXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMCk7CisgICAgbG9hZFB0cihBZGRyZXNzKHN0
YWNrUG9pbnRlclJlZ2lzdGVyLCBzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6Q2FsbGVlIC0g
c2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwgcmVnVDEpOworCiAgICAgZW1pdExvYWQoSlNTdGFj
azo6Q2FsbGVlLCByZWdUMSwgcmVnVDApOwogICAgIGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJ
U3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIGFkZFB0cihUcnVz
dGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdp
c3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNo
ZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2Rl
QmxvY2spOwogICAgIApAQCAtMjUxLDE4ICsyNjgsMTcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENh
bGwoT3Bjb2RlSUQgb3Bjb2RlSQogICAgICAgICAgICAgZG9uZS5saW5rKHRoaXMpOwogICAgICAg
ICB9CiAgICAgCi0gICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIocmVnaXN0ZXJPZmZzZXQgKiBz
aXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QzKTsKKyAgICAgICAgYWRk
UHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikgKyBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVn
aXN0ZXIpOwogCi0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGFyZ0NvdW50KSwgcGF5bG9h
ZEZvcihKU1N0YWNrOjpBcmd1bWVudENvdW50LCByZWdUMykpOwotICAgIH0gLy8gcmVnVDMgaG9s
ZHMgbmV3Q2FsbEZyYW1lIHdpdGggQXJndW1lbnRDb3VudCBpbml0aWFsaXplZC4KKyAgICAgICAg
c3RvcmUzMihUcnVzdGVkSW1tMzIoYXJnQ291bnQpLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lz
dGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVn
aXN0ZXIpKSArIFBheWxvYWRPZmZzZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKyAg
ICB9IC8vIFNQIGhvbGRzIG5ld0NhbGxGcmFtZSArIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSwg
d2l0aCBBcmd1bWVudENvdW50IGluaXRpYWxpemVkLgogICAgIAogICAgIHVpbnQzMl90IGxvY2F0
aW9uQml0cyA9IENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0ZWNvZGVJbnN0cnVjdGlv
bihpbnN0cnVjdGlvbik7CiAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwg
dGFnRm9yKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQsIGNhbGxGcmFtZVJlZ2lzdGVyKSk7CiAgICAg
ZW1pdExvYWQoY2FsbGVlLCByZWdUMSwgcmVnVDApOyAvLyByZWdUMSwgcmVnVDAgaG9sZHMgY2Fs
bGVlLgogCi0gICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MocmVnVDMsIENh
bGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwotICAgIGVtaXRTdG9yZShKU1N0YWNrOjpD
YWxsZWUsIHJlZ1QxLCByZWdUMCwgcmVnVDMpOwotICAgIG1vdmUocmVnVDMsIGNhbGxGcmFtZVJl
Z2lzdGVyKTsKKyAgICBzdG9yZTMyKHJlZ1QwLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsg
UGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworICAgIHN0b3JlMzIo
cmVnVDEsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0
YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBUYWdPZmZzZXQgLSBzaXplb2YoQ2Fs
bGVyRnJhbWVBbmRQQykpKTsKIAogICAgIGlmIChvcGNvZGVJRCA9PSBvcF9jYWxsX2V2YWwpIHsK
ICAgICAgICAgY29tcGlsZUNhbGxFdmFsKGluc3RydWN0aW9uKTsKQEAgLTI4MSwxMCArMjk3LDE2
IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKE9wY29kZUlEIG9wY29kZUkKICAgICBtX2NhbGxT
dHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsVHlwZSA9
IENhbGxMaW5rSW5mbzo6Y2FsbFR5cGVGb3Iob3Bjb2RlSUQpOwogICAgIG1fY2FsbFN0cnVjdHVy
ZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmJ5dGVjb2RlSW5kZXggPSBt
X2J5dGVjb2RlT2Zmc2V0OwogCi0gICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZG
U0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZSkpLCByZWdUMSk7Ci0gICAgZW1pdFB1dENlbGxUb0Nh
bGxGcmFtZUhlYWRlcihyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CisgICAgbG9hZFB0cihB
ZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZSkpLCByZWdU
Mik7CisgICAgc3RvcmUzMihyZWdUMiwgQWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5
bG9hZE9mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworICAgIHN0b3JlMzIoVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBKU1N0YWNrOjpTY29wZUNoYWluICogc2l6ZW9mKFJlZ2lzdGVyKSArIFRhZ09mZnNldCAtIHNp
emVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1l
bnQoKTsKICAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5m
b0luZGV4XS5ob3RQYXRoT3RoZXIgPSBlbWl0TmFrZWRDYWxsKCk7CiAKKyAgICBhZGRQdHIoVHJ1
c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVn
aXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBj
aGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29k
ZUJsb2NrKTsKICAgICBlbWl0UHV0Q2FsbFJlc3VsdChpbnN0cnVjdGlvbik7CiB9CkBAIC0yOTks
NyArMzIxLDE0IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UoT3Bjb2RlSUQKICAg
ICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogCi0gICAgbV9j
YWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uY2FsbFJl
dHVybkxvY2F0aW9uID0gZW1pdE5ha2VkQ2FsbChvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBt
X3ZtLT5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpIDogbV92
bS0+Z2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIFRodW5r
R2VuZXJhdG9yIGdlbmVyYXRvciA9IGxpbmtUaHVua0dlbmVyYXRvckZvcigKKyAgICAgICAgb3Bj
b2RlSUQgPT0gb3BfY29uc3RydWN0ID8gQ29kZUZvckNvbnN0cnVjdCA6IENvZGVGb3JDYWxsLAor
ICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKKyAgICAKKyAgICBtX2Nh
bGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0
dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENUSVN0dWIoZ2VuZXJhdG9yKS5j
b2RlKCkpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3Io
bV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAog
ICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgZW1pdFB1dENhbGxSZXN1bHQo
aW5zdHJ1Y3Rpb24pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
KyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5o
IgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCkBAIC03MSwxMCArNzIsMTQg
QEAgdm9pZCBKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyhJbnN0cnVjdGlvbgogICAgICAgICBlbWl0
R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQsIHJlZ1QwKTsK
ICAgICAgICAgc2xvd0Nhc2UuYXBwZW5kKGJyYW5jaDMyKEFib3ZlLCByZWdUMCwgVHJ1c3RlZElt
bTMyKEFyZ3VtZW50czo6TWF4QXJndW1lbnRzICsgMSkpKTsKICAgICAgICAgLy8gcmVnVDA6IGFy
Z3VtZW50Q291bnRJbmNsdWRpbmdUaGlzCi0KICAgICAgICAgbW92ZShyZWdUMCwgcmVnVDEpOwor
ICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIoLWZpcnN0RnJlZVJlZ2lzdGVyICsgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIHJlZ1QxKTsKKyAgICAgICAgLy8gcmVnVDEgbm93IGhhcyB0
aGUgcmVxdWlyZWQgZnJhbWUgc2l6ZSBpbiBSZWdpc3RlciB1bml0cworICAgICAgICAvLyBSb3Vu
ZCByZWdUMSB0byBuZXh0IG11bHRpcGxlIG9mIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkKKyAg
ICAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSwg
cmVnVDEpOworICAgICAgICBhbmQ2NChUcnVzdGVkSW1tMzIofihzdGFja0FsaWdubWVudFJlZ2lz
dGVycygpIC0gMSkpLCByZWdUMSk7CisKICAgICAgICAgbmVnNjQocmVnVDEpOwotICAgICAgICBh
ZGQ2NChUcnVzdGVkSW1tMzIoZmlyc3RGcmVlUmVnaXN0ZXIgLSBKU1N0YWNrOjpDYWxsRnJhbWVI
ZWFkZXJTaXplKSwgcmVnVDEpOwogICAgICAgICBsc2hpZnQ2NChUcnVzdGVkSW1tMzIoMyksIHJl
Z1QxKTsKICAgICAgICAgYWRkUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7CiAgICAgICAg
IC8vIHJlZ1QxOiBuZXdDYWxsRnJhbWUKQEAgLTEwNSw3ICsxMTAsOCBAQCB2b2lkIEpJVDo6Y29t
cGlsZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uCiAgICAgICAgIHNsb3dDYXNlLmxpbmsodGhpcyk7
CiAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGFyZ3VtZW50cywgcmVnVDEpOwotICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzLCByZWdUMSwg
Zmlyc3RGcmVlUmVnaXN0ZXIpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUZyYW1l
Rm9yVmFyYXJncywgcmVnVDEsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKKyAgICBtb3ZlKHJldHVyblZh
bHVlR1BSLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cih0aGlzVmFsdWUsIHJlZ1QxKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGFyZ3VtZW50
cywgcmVnVDIpOwogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHJldHVy
blZhbHVlR1BSLCByZWdUMSwgcmVnVDIpOwpAQCAtMTEzLDEzICsxMTksMjQgQEAgdm9pZCBKSVQ6
OmNvbXBpbGVMb2FkVmFyYXJncyhJbnN0cnVjdGlvbgogCiAgICAgaWYgKGNhbk9wdGltaXplKQog
ICAgICAgICBlbmQubGluayh0aGlzKTsKKyAgICAKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHNp
emVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QxLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiB9
CiAKIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2YWwoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQog
ewotICAgIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVy
YXRpb25DYWxsRXZhbCk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtc3RhdGljX2Nhc3Q8cHRy
ZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIs
IHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhvcGVyYXRpb25DYWxs
RXZhbCwgcmVnVDEpOworCisgICAgSnVtcCBub0V4Y2VwdGlvbiA9IGVtaXRFeGNlcHRpb25DaGVj
ayhJbnZlcnRlZEV4Y2VwdGlvbkNoZWNrKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNr
UG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZy
YW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgICAgCisgICAgZXhjZXB0aW9uQ2hl
Y2soanVtcCgpKTsKKworICAgIG5vRXhjZXB0aW9uLmxpbmsodGhpcyk7CiAgICAgYWRkU2xvd0Nh
c2UoYnJhbmNoNjQoRXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKEpT
VmFsdWUoKSkpKSk7Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0
cihjYWxsRnJhbWVSZWdpc3Rlcik7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9p
bnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1l
UmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFs
aWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICAKQEAg
LTEzMCw4ICsxNDcsMTAgQEAgdm9pZCBKSVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dDYXNlKEluc3Ry
dQogewogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKIAotICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1l
SGVhZGVyNjQoSlNTdGFjazo6Q2FsbGVlLCByZWdUMCk7CisgICAgbG9hZDY0KEFkZHJlc3Moc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpDYWxsZWUgLSBz
aXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMCk7CiAgICAgZW1pdE5ha2VkQ2FsbChtX3Zt
LT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgYWRk
UHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6
ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9j
ayhtX2NvZGVCbG9jayk7CiAgICAgCkBAIC0xNzAsMTggKzE4OSwxNiBAQCB2b2lkIEpJVDo6Y29t
cGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJCiAgICAgICAgICAgICBkb25lLmxpbmsodGhpcyk7
CiAgICAgICAgIH0KICAgICAKLSAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9m
ZnNldCAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3RlciwgcmVnVDEpOwotICAg
ICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihhcmdDb3VudCksIEFkZHJlc3MocmVnVDEsIEpTU3Rh
Y2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsg
T0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkp
OwotICAgIH0gLy8gcmVnVDEgaG9sZHMgbmV3Q2FsbEZyYW1lIHdpdGggQXJndW1lbnRDb3VudCBp
bml0aWFsaXplZC4KKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAq
IHNpemVvZihSZWdpc3RlcikgKyBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCBjYWxsRnJhbWVS
ZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBzdG9yZTMyKFRydXN0ZWRJ
bW0zMihhcmdDb3VudCksIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkFy
Z3VtZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9h
ZE9mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworICAgIH0gLy8gU1AgaG9sZHMg
bmV3Q2FsbEZyYW1lICsgc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpLCB3aXRoIEFyZ3VtZW50Q291
bnQgaW5pdGlhbGl6ZWQuCiAgICAgCiAgICAgdWludDMyX3QgYnl0ZWNvZGVPZmZzZXQgPSBpbnN0
cnVjdGlvbiAtIG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwogICAgIHVpbnQz
Ml90IGxvY2F0aW9uQml0cyA9IENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0ZWNvZGVP
ZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOwotICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGxvY2F0aW9u
Qml0cyksIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQg
KiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgT0JKRUNUX09GRlNFVE9GKEVu
Y29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSk7CisgICAgc3RvcmUzMihUcnVzdGVk
SW1tMzIobG9jYXRpb25CaXRzKSwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6
QXJndW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBUYWdP
ZmZzZXQpKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGNhbGxlZSwgcmVnVDApOyAvLyBy
ZWdUMCBob2xkcyBjYWxsZWUuCiAKLSAgICBzdG9yZTY0KGNhbGxGcmFtZVJlZ2lzdGVyLCBBZGRy
ZXNzKHJlZ1QxLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpKTsKLSAgICBzdG9yZTY0
KHJlZ1QwLCBBZGRyZXNzKHJlZ1QxLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+
KHNpemVvZihSZWdpc3RlcikpKSk7Ci0gICAgbW92ZShyZWdUMSwgY2FsbEZyYW1lUmVnaXN0ZXIp
OworICAgIHN0b3JlNjQocmVnVDAsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3Rh
Y2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXplb2Yo
Q2FsbGVyRnJhbWVBbmRQQykpKTsKIAogICAgIGlmIChvcGNvZGVJRCA9PSBvcF9jYWxsX2V2YWwp
IHsKICAgICAgICAgY29tcGlsZUNhbGxFdmFsKGluc3RydWN0aW9uKTsKQEAgLTE5OCwxMCArMjE1
LDE0IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKE9wY29kZUlEIG9wY29kZUkKICAgICBtX2Nh
bGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsVHlw
ZSA9IENhbGxMaW5rSW5mbzo6Y2FsbFR5cGVGb3Iob3Bjb2RlSUQpOwogICAgIG1fY2FsbFN0cnVj
dHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmJ5dGVjb2RlSW5kZXgg
PSBtX2J5dGVjb2RlT2Zmc2V0OwogCi0gICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1Rf
T0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZSkpLCByZWdUMSk7Ci0gICAgZW1pdFB1dFRvQ2Fs
bEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKKyAgICBsb2FkUHRyKEFk
ZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlZ1Qy
KTsKKyAgICBzdG9yZTY0KHJlZ1QyLCBBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50
ZXJSZWdpc3RlciwgSlNTdGFjazo6U2NvcGVDaGFpbiAqIHNpemVvZihSZWdpc3RlcikgLSBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKwogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxh
dGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmhvdFBhdGhPdGhlciA9IGVtaXROYWtlZENhbGwo
KTsKIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29k
ZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisKICAgICBz
YW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIAogICAgIGVtaXRQdXRDYWxsUmVzdWx0
KGluc3RydWN0aW9uKTsKQEAgLTIxNiw3ICsyMzcsMTQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENh
bGxTbG93Q2FzZShPcGNvZGVJRAogCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogCi0gICAgbV9j
YWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uY2FsbFJl
dHVybkxvY2F0aW9uID0gZW1pdE5ha2VkQ2FsbChvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBt
X3ZtLT5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpIDogbV92
bS0+Z2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIFRodW5r
R2VuZXJhdG9yIGdlbmVyYXRvciA9IGxpbmtUaHVua0dlbmVyYXRvckZvcigKKyAgICAgICAgb3Bj
b2RlSUQgPT0gb3BfY29uc3RydWN0ID8gQ29kZUZvckNvbnN0cnVjdCA6IENvZGVGb3JDYWxsLAor
ICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKKyAgICAKKyAgICBtX2Nh
bGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0
dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENUSVN0dWIoZ2VuZXJhdG9yKS5j
b2RlKCkpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3Io
bV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAog
ICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgCkBAIC0yMjYsNyArMjU0LDcg
QEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGxTbG93Q2FzZShPcGNvZGVJRAogdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlQ2xvc3VyZUNhbGwoQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8sIENvZGVC
bG9jayogY2FsbGVlQ29kZUJsb2NrLCBTdHJ1Y3R1cmUqIGV4cGVjdGVkU3RydWN0dXJlLCBFeGVj
dXRhYmxlQmFzZSogZXhwZWN0ZWRFeGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29k
ZVB0cikKIHsKICAgICBKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgCisKICAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFRlc3RQdHIoTm9uWmVybywgcmVnVDAsIHRhZ01hc2tSZWdpc3RlcikpOwog
ICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBK
U0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgVHJ1c3RlZEltbVB0cihleHBlY3RlZFN0cnVjdHVy
ZSkpKTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVzcyhy
ZWdUMCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBUcnVzdGVkSW1tUHRyKGV4
cGVjdGVkRXhlY3V0YWJsZSkpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2Rl
LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
b2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiTExJ
bnRUaHVua3MuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFt
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDEsMTEgKzQyLDkgQEAgSklUQ29kZTo6fkpJVENv
ZGUoKQogewogfQogCi1KU1ZhbHVlIEpJVENvZGU6OmV4ZWN1dGUoVk0qIHZtLCBQcm90b0NhbGxG
cmFtZSogcHJvdG9DYWxsRnJhbWUsIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKQorSlNWYWx1ZSBKSVRD
b2RlOjpleGVjdXRlKFZNKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lKQogewot
ICAgIEFTU0VSVCghdm0tPnRvcENhbGxGcmFtZSB8fCAoKFJlZ2lzdGVyKikodm0tPnRvcENhbGxG
cmFtZSkgPj0gdG9wT2ZTdGFjaykpOwotCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBKU1ZhbHVlOjpk
ZWNvZGUoY2FsbFRvSmF2YVNjcmlwdChleGVjdXRhYmxlQWRkcmVzcygpLCAmdm0tPnRvcENhbGxG
cmFtZSwgcHJvdG9DYWxsRnJhbWUsIHRvcE9mU3RhY2spKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9
IEpTVmFsdWU6OmRlY29kZShjYWxsVG9KYXZhU2NyaXB0KGV4ZWN1dGFibGVBZGRyZXNzKCksIHZt
LCBwcm90b0NhbGxGcmFtZSkpOwogICAgIHJldHVybiB2bS0+ZXhjZXB0aW9uKCkgPyBqc051bGwo
KSA6IHJlc3VsdDsKIH0KIApAQCAtNzMsNTIgKzcyLDM1IEBAIEZUTDo6Rm9yT1NSRW50cnlKSVRD
b2RlKiBKSVRDb2RlOjpmdGxGb3IKICAgICByZXR1cm4gMDsKIH0KIAotUGFzc1JlZlB0cjxKSVRD
b2RlPiBKSVRDb2RlOjpob3N0RnVuY3Rpb24oSklUQ29kZTo6Q29kZVJlZiBjb2RlKQotewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShjb2RlLCBIb3N0Q2FsbFRodW5rKSk7
Ci19Ci0KLURpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQorSklU
Q29kZVdpdGhDb2RlUmVmOjpKSVRDb2RlV2l0aENvZGVSZWYoSklUVHlwZSBqaXRUeXBlKQogICAg
IDogSklUQ29kZShqaXRUeXBlKQogewogfQogCi1EaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRDb2Rl
KGNvbnN0IEpJVENvZGU6OkNvZGVSZWYgcmVmLCBKSVRUeXBlIGppdFR5cGUpCitKSVRDb2RlV2l0
aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZihDb2RlUmVmIHJlZiwgSklUVHlwZSBqaXRUeXBl
KQogICAgIDogSklUQ29kZShqaXRUeXBlKQogICAgICwgbV9yZWYocmVmKQogewogfQogCi1EaXJl
Y3RKSVRDb2RlOjp+RGlyZWN0SklUQ29kZSgpCi17Ci19Ci0KLXZvaWQgRGlyZWN0SklUQ29kZTo6
aW5pdGlhbGl6ZUNvZGVSZWYoY29uc3QgSklUQ29kZTo6Q29kZVJlZiByZWYpCitKSVRDb2RlV2l0
aENvZGVSZWY6On5KSVRDb2RlV2l0aENvZGVSZWYoKQogewotICAgIFJFTEVBU0VfQVNTRVJUKCFt
X3JlZik7Ci0gICAgbV9yZWYgPSByZWY7CiB9CiAKLUpJVENvZGU6OkNvZGVQdHIgRGlyZWN0SklU
Q29kZTo6YWRkcmVzc0ZvckNhbGwoKQotewotICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsKLSAg
ICByZXR1cm4gbV9yZWYuY29kZSgpOwotfQotCi12b2lkKiBEaXJlY3RKSVRDb2RlOjpleGVjdXRh
YmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCit2b2lkKiBKSVRDb2RlV2l0aENvZGVS
ZWY6OmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkKIHsKICAgICBSRUxF
QVNFX0FTU0VSVChtX3JlZik7CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1f
cmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSArIG9mZnNldDsKIH0KIAotdm9pZCogRGly
ZWN0SklUQ29kZTo6ZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KQordm9pZCogSklU
Q29kZVdpdGhDb2RlUmVmOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCiB7CiAg
ICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIEFTU0VSVChvZmZzZXQgPD0gc2l6ZSgpKTsg
Ly8gdXNlIDw9IGluc3RlYWQgb2YgPCBiZWNhdXNlIGl0IGlzIHZhbGlkIHRvIGFzayBmb3IgYW4g
YWRkcmVzcyBhdCB0aGUgZXhjbHVzaXZlIGVuZCBvZiB0aGUgY29kZS4KICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4obV9yZWYuY29kZSgpLmRhdGFMb2NhdGlvbigpKSArIG9mZnNl
dDsKIH0KIAotdW5zaWduZWQgRGlyZWN0SklUQ29kZTo6b2Zmc2V0T2Yodm9pZCogcG9pbnRlcklu
dG9Db2RlKQordW5zaWduZWQgSklUQ29kZVdpdGhDb2RlUmVmOjpvZmZzZXRPZih2b2lkKiBwb2lu
dGVySW50b0NvZGUpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIGludHB0cl90
IHJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXJJbnRvQ29kZSkgLSBy
ZWludGVycHJldF9jYXN0PGludHB0cl90PihtX3JlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KSk7CkBAIC0xMjYsMTggKzEwOCwxMTcgQEAgdW5zaWduZWQgRGlyZWN0SklUQ29kZTo6b2Zmc2V0
T2Yodm9pZCogcAogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVzdWx0KTsKIH0K
IAotc2l6ZV90IERpcmVjdEpJVENvZGU6OnNpemUoKQorc2l6ZV90IEpJVENvZGVXaXRoQ29kZVJl
Zjo6c2l6ZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIHJldHVybiBtX3Jl
Zi5zaXplKCk7CiB9CiAKLWJvb2wgRGlyZWN0SklUQ29kZTo6Y29udGFpbnModm9pZCogYWRkcmVz
cykKK2Jvb2wgSklUQ29kZVdpdGhDb2RlUmVmOjpjb250YWlucyh2b2lkKiBhZGRyZXNzKQogewog
ICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsKICAgICByZXR1cm4gbV9yZWYuZXhlY3V0YWJsZU1l
bW9yeSgpLT5jb250YWlucyhhZGRyZXNzKTsKIH0KIAorRGlyZWN0SklUQ29kZTo6RGlyZWN0SklU
Q29kZShKSVRUeXBlIGppdFR5cGUpCisgICAgOiBKSVRDb2RlV2l0aENvZGVSZWYoaml0VHlwZSkK
K3sKK30KKworRGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZSgKKyAgICBKSVRDb2RlOjpDb2Rl
UmVmIHJlZiwgSklUQ29kZTo6Q29kZVB0ciB3aXRoQXJpdHlDaGVjaywgSklUVHlwZSBqaXRUeXBl
KQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlwZSkKKyAgICAsIG1fd2l0aEFy
aXR5Q2hlY2sod2l0aEFyaXR5Q2hlY2spCit7Cit9CisKK0RpcmVjdEpJVENvZGU6On5EaXJlY3RK
SVRDb2RlKCkKK3sKK30KKwordm9pZCBEaXJlY3RKSVRDb2RlOjppbml0aWFsaXplQ29kZVJlZihK
SVRDb2RlOjpDb2RlUmVmIHJlZiwgSklUQ29kZTo6Q29kZVB0ciB3aXRoQXJpdHlDaGVjaykKK3sK
KyAgICBSRUxFQVNFX0FTU0VSVCghbV9yZWYpOworICAgIG1fcmVmID0gcmVmOworICAgIG1fd2l0
aEFyaXR5Q2hlY2sgPSB3aXRoQXJpdHlDaGVjazsKK30KKworRGlyZWN0SklUQ29kZTo6UmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyogRGlyZWN0SklUQ29kZTo6ZW5zdXJlV3JhcHBlcnMoKQor
eworICAgIGlmICghbV93cmFwcGVycykKKyAgICAgICAgbV93cmFwcGVycyA9IHN0ZDo6bWFrZV91
bmlxdWU8UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycz4oKTsKKyAgICByZXR1cm4gbV93cmFw
cGVycy5nZXQoKTsKK30KKworSklUQ29kZTo6Q29kZVB0ciBEaXJlY3RKSVRDb2RlOjphZGRyZXNz
Rm9yQ2FsbCgKKyAgICBWTSYgdm0sIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlLCBBcml0eUNo
ZWNrTW9kZSBhcml0eSwKKyAgICBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQor
eworICAgIHN3aXRjaCAoYXJpdHkpIHsKKyAgICBjYXNlIEFyaXR5Q2hlY2tOb3RSZXF1aXJlZDoK
KyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNl
cnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwor
ICAgICAgICAgICAgcmV0dXJuIG1fcmVmLmNvZGUoKTsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2Vy
dmVSZWdpc3RlcnM6IHsKKyNpZiBFTkFCTEUoSklUKQorICAgICAgICAgICAgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25XcmFwcGVycyogd3JhcHBlcnMgPSBlbnN1cmVXcmFwcGVycygpOworICAgICAgICAg
ICAgaWYgKCF3cmFwcGVycy0+d2l0aG91dEFyaXR5Q2hlY2spCisgICAgICAgICAgICAgICAgd3Jh
cHBlcnMtPndpdGhvdXRBcml0eUNoZWNrID0gZ2VuZXJhdGVSZWdpc3RlclByZXNlcnZhdGlvbldy
YXBwZXIodm0sIGV4ZWN1dGFibGUsIG1fcmVmLmNvZGUoKSk7CisgICAgICAgICAgICByZXR1cm4g
d3JhcHBlcnMtPndpdGhvdXRBcml0eUNoZWNrLmNvZGUoKTsKKyNlbHNlCisgICAgICAgICAgICBV
TlVTRURfUEFSQU0odm0pOworICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGV4ZWN1dGFibGUpOwor
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAg
ICB9IH0KKyAgICBjYXNlIE11c3RDaGVja0FyaXR5OgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVy
cykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dpdGhBcml0eUNoZWNrKTsKKyAgICAgICAgICAgIHJl
dHVybiBtX3dpdGhBcml0eUNoZWNrOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVy
czogeworI2lmIEVOQUJMRShKSVQpCisgICAgICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbldy
YXBwZXJzKiB3cmFwcGVycyA9IGVuc3VyZVdyYXBwZXJzKCk7CisgICAgICAgICAgICBpZiAoIXdy
YXBwZXJzLT53aXRoQXJpdHlDaGVjaykKKyAgICAgICAgICAgICAgICB3cmFwcGVycy0+d2l0aEFy
aXR5Q2hlY2sgPSBnZW5lcmF0ZVJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcih2bSwgZXhlY3V0
YWJsZSwgbV93aXRoQXJpdHlDaGVjayk7CisgICAgICAgICAgICByZXR1cm4gd3JhcHBlcnMtPndp
dGhBcml0eUNoZWNrLmNvZGUoKTsKKyNlbHNlCisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIH0gfQorICAgIH0KKyAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBDb2RlUHRyKCk7Cit9CisKK05hdGl2ZUpJ
VENvZGU6Ok5hdGl2ZUpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQorICAgIDogSklUQ29kZVdpdGhD
b2RlUmVmKGppdFR5cGUpCit7Cit9CisKK05hdGl2ZUpJVENvZGU6Ok5hdGl2ZUpJVENvZGUoQ29k
ZVJlZiByZWYsIEpJVFR5cGUgaml0VHlwZSkKKyAgICA6IEpJVENvZGVXaXRoQ29kZVJlZihyZWYs
IGppdFR5cGUpCit7Cit9CisKK05hdGl2ZUpJVENvZGU6On5OYXRpdmVKSVRDb2RlKCkKK3sKK30K
Kwordm9pZCBOYXRpdmVKSVRDb2RlOjppbml0aWFsaXplQ29kZVJlZihDb2RlUmVmIHJlZikKK3sK
KyAgICBBU1NFUlQoIW1fcmVmKTsKKyAgICBtX3JlZiA9IHJlZjsKK30KKworSklUQ29kZTo6Q29k
ZVB0ciBOYXRpdmVKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgKKyAgICBWTSYsIEV4ZWN1dGFibGVC
YXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkKK3sKKyAgICBS
RUxFQVNFX0FTU0VSVCghIW1fcmVmKTsKKyAgICByZXR1cm4gbV9yZWYuY29kZSgpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNlIFdURiB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENvZGUuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE0ICsyNiwxNCBAQAogI2lm
bmRlZiBKSVRDb2RlX2gKICNkZWZpbmUgSklUQ29kZV9oCiAKLSNpZiBFTkFCTEUoSklUKSB8fCBF
TkFCTEUoTExJTlQpCisjaW5jbHVkZSAiQXJpdHlDaGVja01vZGUuaCIKICNpbmNsdWRlICJDYWxs
RnJhbWUuaCIKICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJKSVRTdHVicy5o
IgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlICJMZWdhY3lQcm9maWxlci5oIgog
I2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgotI2VuZGlmCisjaW5jbHVkZSAiUmVn
aXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC01NCw3ICs1
NCwxNCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgQ29kZVJl
ZjsKICAgICB0eXBlZGVmIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBDb2RlUHRyOwogCi0gICAgZW51
bSBKSVRUeXBlIHsgTm9uZSwgSG9zdENhbGxUaHVuaywgSW50ZXJwcmV0ZXJUaHVuaywgQmFzZWxp
bmVKSVQsIERGR0pJVCwgRlRMSklUIH07CisgICAgZW51bSBKSVRUeXBlIDogdWludDhfdCB7Cisg
ICAgICAgIE5vbmUsCisgICAgICAgIEhvc3RDYWxsVGh1bmssCisgICAgICAgIEludGVycHJldGVy
VGh1bmssCisgICAgICAgIEJhc2VsaW5lSklULAorICAgICAgICBERkdKSVQsCisgICAgICAgIEZU
TEpJVAorICAgIH07CiAgICAgCiAgICAgc3RhdGljIEpJVFR5cGUgYm90dG9tVGllckpJVCgpCiAg
ICAgewpAQCAtMTY0LDcgKzE3MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGppdENvZGUt
PmppdFR5cGUoKTsKICAgICB9CiAgICAgCi0gICAgdmlydHVhbCBDb2RlUHRyIGFkZHJlc3NGb3JD
YWxsKCkgPSAwOworICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbChWTSYsIEV4ZWN1
dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zm
c2V0KSA9IDA7CiAgICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MoKSB7IHJldHVybiBleGVjdXRh
YmxlQWRkcmVzc0F0T2Zmc2V0KDApOyB9CiAgICAgdmlydHVhbCB2b2lkKiBkYXRhQWRkcmVzc0F0
T2Zmc2V0KHNpemVfdCBvZmZzZXQpID0gMDsKQEAgLTE3NSw3ICsxODIsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBGVEw6OkpJVENvZGUqIGZ0bCgpOwogICAgIHZpcnR1YWwgRlRMOjpGb3JPU1JF
bnRyeUpJVENvZGUqIGZ0bEZvck9TUkVudHJ5KCk7CiAgICAgCi0gICAgSlNWYWx1ZSBleGVjdXRl
KFZNKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOworICAgIEpTVmFsdWUgZXhlY3V0ZShW
TSosIFByb3RvQ2FsbEZyYW1lKik7CiAgICAgCiAgICAgdm9pZCogc3RhcnQoKSB7IHJldHVybiBk
YXRhQWRkcmVzc0F0T2Zmc2V0KDApOyB9CiAgICAgdmlydHVhbCBzaXplX3Qgc2l6ZSgpID0gMDsK
QEAgLTE4MywzMSArMTkwLDYyIEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgY29u
dGFpbnModm9pZCopID0gMDsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpJVENvZGU+IGhvc3RG
dW5jdGlvbihDb2RlUmVmKTsKLQogcHJpdmF0ZToKICAgICBKSVRUeXBlIG1faml0VHlwZTsKIH07
CiAKLWNsYXNzIERpcmVjdEpJVENvZGUgOiBwdWJsaWMgSklUQ29kZSB7CitjbGFzcyBKSVRDb2Rl
V2l0aENvZGVSZWYgOiBwdWJsaWMgSklUQ29kZSB7Citwcm90ZWN0ZWQ6CisgICAgSklUQ29kZVdp
dGhDb2RlUmVmKEpJVFR5cGUpOworICAgIEpJVENvZGVXaXRoQ29kZVJlZihDb2RlUmVmLCBKSVRU
eXBlKTsKKwogcHVibGljOgotICAgIERpcmVjdEpJVENvZGUoSklUVHlwZSk7Ci0gICAgRGlyZWN0
SklUQ29kZShjb25zdCBDb2RlUmVmLCBKSVRUeXBlKTsKLSAgICB2aXJ0dWFsIH5EaXJlY3RKSVRD
b2RlKCk7Ci0gICAgCi0gICAgdm9pZCBpbml0aWFsaXplQ29kZVJlZihDb2RlUmVmIHJlZik7Cisg
ICAgdmlydHVhbCB+SklUQ29kZVdpdGhDb2RlUmVmKCk7CiAKLSAgICB2aXJ0dWFsIENvZGVQdHIg
YWRkcmVzc0ZvckNhbGwoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQqIGV4ZWN1dGFibGVB
ZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
KiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCogcG9pbnRlckludG9Db2RlKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHNpemVfdCBzaXplKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNvbnRh
aW5zKHZvaWQqKSBvdmVycmlkZTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBDb2RlUmVm
IG1fcmVmOwogfTsKIAorY2xhc3MgRGlyZWN0SklUQ29kZSA6IHB1YmxpYyBKSVRDb2RlV2l0aENv
ZGVSZWYgeworcHVibGljOgorICAgIERpcmVjdEpJVENvZGUoSklUVHlwZSk7CisgICAgRGlyZWN0
SklUQ29kZShDb2RlUmVmLCBDb2RlUHRyIHdpdGhBcml0eUNoZWNrLCBKSVRUeXBlKTsKKyAgICB2
aXJ0dWFsIH5EaXJlY3RKSVRDb2RlKCk7CisgICAgCisgICAgdm9pZCBpbml0aWFsaXplQ29kZVJl
ZihDb2RlUmVmIHJlZiwgQ29kZVB0ciB3aXRoQXJpdHlDaGVjayk7CisKKyAgICB2aXJ0dWFsIENv
ZGVQdHIgYWRkcmVzc0ZvckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2Rl
LCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHN0
cnVjdCBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzIHsKKyAgICAgICAgQ29kZVJlZiB3aXRo
b3V0QXJpdHlDaGVjazsKKyAgICAgICAgQ29kZVJlZiB3aXRoQXJpdHlDaGVjazsKKyAgICB9Owor
CisgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyogZW5zdXJlV3JhcHBlcnMoKTsKKyAg
ICAKKyAgICBDb2RlUHRyIG1fd2l0aEFyaXR5Q2hlY2s7CisgICAgCisgICAgc3RkOjp1bmlxdWVf
cHRyPFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnM+IG1fd3JhcHBlcnM7Cit9OworCitjbGFz
cyBOYXRpdmVKSVRDb2RlIDogcHVibGljIEpJVENvZGVXaXRoQ29kZVJlZiB7CitwdWJsaWM6Cisg
ICAgTmF0aXZlSklUQ29kZShKSVRUeXBlKTsKKyAgICBOYXRpdmVKSVRDb2RlKENvZGVSZWYsIEpJ
VFR5cGUpOworICAgIHZpcnR1YWwgfk5hdGl2ZUpJVENvZGUoKTsKKyAgICAKKyAgICB2b2lkIGlu
aXRpYWxpemVDb2RlUmVmKENvZGVSZWYgcmVmKTsKKworICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRy
ZXNzRm9yQ2FsbChWTSYsIEV4ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTW9kZSkgb3ZlcnJpZGU7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAog
bmFtZXNwYWNlIFdURiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2Vw
dGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhj
ZXB0aW9ucy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklURXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDExIEBAIG5h
bWVzcGFjZSBKU0MgewogCiB2b2lkIGdlbmVyaWNVbndpbmQoVk0qIHZtLCBFeGVjU3RhdGUqIGNh
bGxGcmFtZSwgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZSkKIHsKKyAgICBpZiAoT3B0aW9uczo6YnJl
YWtPblRocm93KCkpIHsKKyAgICAgICAgZGF0YUxvZygiSW4gY2FsbCBmcmFtZSAiLCBSYXdQb2lu
dGVyKGNhbGxGcmFtZSksICIgZm9yIGNvZGUgYmxvY2sgIiwgKmNhbGxGcmFtZS0+Y29kZUJsb2Nr
KCksICJcbiIpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKyAgICAKICAgICBSRUxFQVNFX0FT
U0VSVChleGNlcHRpb25WYWx1ZSk7CiAgICAgSGFuZGxlckluZm8qIGhhbmRsZXIgPSB2bS0+aW50
ZXJwcmV0ZXItPnVud2luZChjYWxsRnJhbWUsIGV4Y2VwdGlvblZhbHVlKTsgLy8gVGhpcyBtYXkg
dXBkYXRlIGNhbGxGcmFtZS4KIApAQCAtNTYsNyArNjEsNyBAQCB2b2lkIGdlbmVyaWNVbndpbmQo
Vk0qIHZtLCBFeGVjU3RhdGUqIGNhCiAgICAgICAgIGNhdGNoUm91dGluZSA9IGNhdGNoUENGb3JJ
bnRlcnByZXRlci0+dS5wb2ludGVyOwogI2VuZGlmCiAgICAgfSBlbHNlCi0gICAgICAgIGNhdGNo
Um91dGluZSA9IExMSW50OjpnZXRDb2RlUHRyKHJldHVybkZyb21KYXZhU2NyaXB0KTsKKyAgICAg
ICAgY2F0Y2hSb3V0aW5lID0gTExJbnQ6OmdldENvZGVQdHIoaGFuZGxlVW5jYXVnaHRFeGNlcHRp
b24pOwogICAgIAogICAgIHZtLT5jYWxsRnJhbWVGb3JUaHJvdyA9IGNhbGxGcmFtZTsKICAgICB2
bS0+dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3cgPSBjYXRjaFJvdXRpbmU7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNw
cAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVDYWNoZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3I6OkpJVElubGluZUNhY2hlRwogCiBKSVRCeUlkR2VuZXJhdG9y
OjpKSVRCeUlkR2VuZXJhdG9yKAogICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2lu
IGNvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAotICAgIEdQUlJl
ZyBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUs
IGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKKyAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVn
cyB2YWx1ZSwgYm9vbCByZWdpc3RlcnNGbHVzaGVkKQogICAgIDogSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IoY29kZUJsb2NrLCBjb2RlT3JpZ2luKQogICAgICwgbV9iYXNlKGJhc2UpCiAgICAgLCBt
X3ZhbHVlKHZhbHVlKQpAQCAtNjIsNyArNjIsNiBAQCBKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlk
R2VuZXJhdG9yKAogICAgIG1fc3R1YkluZm8tPnBhdGNoLnVzZWRSZWdpc3RlcnMuc2V0KGJhc2Up
OwogICAgIG1fc3R1YkluZm8tPnBhdGNoLnVzZWRSZWdpc3RlcnMuc2V0KHZhbHVlKTsKICAgICAK
LSAgICBtX3N0dWJJbmZvLT5wYXRjaC5jYWxsRnJhbWVSZWdpc3RlciA9IHN0YXRpY19jYXN0PGlu
dDhfdD4oY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIG1fc3R1YkluZm8tPnBhdGNoLmJhc2VHUFIg
PSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KGJhc2UucGF5bG9hZEdQUigpKTsKICAgICBtX3N0dWJJbmZv
LT5wYXRjaC52YWx1ZUdQUiA9IHN0YXRpY19jYXN0PGludDhfdD4odmFsdWUucGF5bG9hZEdQUigp
KTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtMTMwLDExICsxMjksOSBAQCB2b2lkIEpJVEdl
dEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhCiAKIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OkpJ
VFB1dEJ5SWRHZW5lcmF0b3IoCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmlnaW4g
Y29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCi0gICAgR1BSUmVn
IGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwg
R1BSUmVnIHNjcmF0Y2gsCi0gICAgYm9vbCByZWdpc3RlcnNGbHVzaGVkLCBFQ01BTW9kZSBlY21h
TW9kZSwgUHV0S2luZCBwdXRLaW5kKQotICAgIDogSklUQnlJZEdlbmVyYXRvcigKLSAgICAgICAg
Y29kZUJsb2NrLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzLCBjYWxsRnJhbWVSZWdpc3Rlciwg
YmFzZSwgdmFsdWUsCi0gICAgICAgIHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgSlNWYWx1ZVJlZ3Mg
YmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzY3JhdGNoLCBib29sIHJlZ2lzdGVyc0Zs
dXNoZWQsCisgICAgRUNNQU1vZGUgZWNtYU1vZGUsIFB1dEtpbmQgcHV0S2luZCkKKyAgICA6IEpJ
VEJ5SWRHZW5lcmF0b3IoY29kZUJsb2NrLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzLCBiYXNl
LCB2YWx1ZSwgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICAsIG1fc2NyYXRjaChzY3JhdGNoKQogICAg
ICwgbV9lY21hTW9kZShlY21hTW9kZSkKICAgICAsIG1fcHV0S2luZChwdXRLaW5kKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0
b3IuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJ
bmxpbmVDYWNoZUdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw4IEBAIHBy
b3RlY3RlZDoKICAgICBKSVRCeUlkR2VuZXJhdG9yKCkgeyB9CiAKICAgICBKSVRCeUlkR2VuZXJh
dG9yKAotICAgICAgICBDb2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYs
IEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNW
YWx1ZVJlZ3MgdmFsdWUsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCk7CisgICAgICAgIENvZGVCbG9j
ayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNW
YWx1ZVJlZ3MgdmFsdWUsCisgICAgICAgIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCk7CiAgICAgCiBw
dWJsaWM6CiAgICAgdm9pZCByZXBvcnRTbG93UGF0aENhbGwoTWFjcm9Bc3NlbWJsZXI6OkxhYmVs
IHNsb3dQYXRoQmVnaW4sIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwpCkBAIC05NiwxMSArOTYs
OCBAQCBwdWJsaWM6CiAKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yKAogICAgICAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYg
dXNlZFJlZ2lzdGVycywKLSAgICAgICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVl
UmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwKLSAgICAgICAgYm9vbCByZWdpc3RlcnNGbHVz
aGVkKQotICAgICAgICA6IEpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgICAgICBjb2RlQmxvY2ss
IGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMsIGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlLCB2YWx1
ZSwKLSAgICAgICAgICAgIHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgICAgIEpTVmFsdWVSZWdzIGJh
c2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgICAgIDog
SklUQnlJZEdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMsIGJh
c2UsIHZhbHVlLCByZWdpc3RlcnNGbHVzaGVkKQogICAgIHsKICAgICB9CiAgICAgCkBAIC0xMTIs
OSArMTA5LDggQEAgcHVibGljOgogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IoKSB7IH0KIAogICAg
IEpJVFB1dEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNv
bnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIs
Ci0gICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2Ny
YXRjaCwgYm9vbCByZWdpc3RlcnNGbHVzaGVkLAotICAgICAgICBFQ01BTW9kZSwgUHV0S2luZCk7
CisgICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2Vk
UmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyBiYXNlLAorICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZSwg
R1BSUmVnIHNjcmF0Y2gsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCwgRUNNQU1vZGUsIFB1dEtpbmQp
OwogICAgIAogICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOwogICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9uIDE2
MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC05Myw3ICs5Myw2IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmVtaXRMb2Fk
Q2hhcmFjdGUKIEFMV0FZU19JTkxJTkUgSklUOjpDYWxsIEpJVDo6ZW1pdE5ha2VkQ2FsbChDb2Rl
UHRyIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChtX2J5dGVjb2RlT2Zmc2V0ICE9ICh1bnNpZ25l
ZCktMSk7IC8vIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBkdXJpbmcgaG90L2Nv
bGQgcGF0aCBnZW5lcmF0aW9uLCBzbyB0aGF0IG1fYnl0ZWNvZGVPZmZzZXQgaXMgc2V0LgotCiAg
ICAgQ2FsbCBuYWtlZENhbGwgPSBuZWFyQ2FsbCgpOwogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxS
ZWNvcmQobmFrZWRDYWxsLCBtX2J5dGVjb2RlT2Zmc2V0LCBmdW5jdGlvbi5leGVjdXRhYmxlQWRk
cmVzcygpKSk7CiAgICAgcmV0dXJuIG5ha2VkQ2FsbDsKQEAgLTIyMywyMSArMjIyLDIxIEBAIEFM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwog
fQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihQX0pJVE9wZXJhdGlvbl9FWiBvcGVyYXRpb24sIGludDMyX3Qgb3ApCitBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9F
Q0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCiB7Ci0g
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihvcCkpOworICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMik7CiAgICAgcmV0dXJuIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25f
RUNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyKQorQUxX
QVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oU19KSVRP
cGVyYXRpb25fRU9Kc3Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCBy
ZWdPcDIpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3Ay
KTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwog
fQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihTX0pJVE9wZXJhdGlvbl9FT0pzcyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdp
c3RlcklEIHJlZ09wMikKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpj
YWxsT3BlcmF0aW9uKFNwcnRfSklUT3BlcmF0aW9uX0VaIG9wZXJhdGlvbiwgaW50MzJfdCBvcCkK
IHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIpOworICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIob3ApKTsKICAgICByZXR1
cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCkBAIC0yNzcs
NiArMjc2LDEzIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAg
ICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJh
dGlvbik7CiB9CiAKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhKX0pJVE9wZXJhdGlvbl9FRSBvcGVyYXRpb24sIFJl
Z2lzdGVySUQgcmVnT3ApCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09w
KTsKKyAgICB1cGRhdGVUb3BDYWxsRnJhbWUoKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVy
YXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2Fs
bE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKFZfSklUT3BlcmF0aW9u
X0VDYiBvcGVyYXRpb24sIENvZGVCbG9jayogcG9pbnRlcikKIHsKICAgICBzZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihwb2ludGVyKSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEy
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29t
PgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkpTUHJvcGVy
dHlOYW1lSXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1ZhcmlhYmxlT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
LmgiCiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVy
LmgiCiAKQEAgLTQ4LDYgKzQ5LDcgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNvbXBpbGVD
VElOYXRpdgogewogICAgIENhbGwgbmF0aXZlQ2FsbDsKIAorICAgIGVtaXRGdW5jdGlvblByb2xv
Z3VlKCk7CiAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKDAsIEpTU3RhY2s6
OkNvZGVCbG9jayk7CiAgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsICZtX3ZtLT50b3BD
YWxsRnJhbWUpOwogCkBAIC01OCwyMSArNjAsMTcgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0
ZUNvbXBpbGVDVElOYXRpdgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3Rh
Y2s6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFt
ZUhlYWRlcihyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAKLSAgICBwZWVrKHJlZ1QxKTsK
LSAgICBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSk7Ci0KICAgICAvLyBD
YWxsaW5nIGNvbnZlbnRpb246ICAgICAgZihlY3gsIGVkeCwgLi4uKTsKICAgICAvLyBIb3N0IGZ1
bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsKICAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lz
dGVyLCBYODZSZWdpc3RlcnM6OmVjeCk7CiAKLSAgICBzdWJQdHIoVHJ1c3RlZEltbTMyKDE2IC0g
c2l6ZW9mKHZvaWQqKSksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgLy8gQWxpZ24gc3RhY2sgYWZ0
ZXIgY2FsbC4KLQotICAgIG1vdmUocmVnVDAsIGNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJs
eSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3Rh
Y2suCisgICAgc3ViUHRyKFRydXN0ZWRJbW0zMig4KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAv
LyBBbGlnbiBzdGFjayBmb3IgY2FsbC4KKyAgICBzdG9yZVB0cihYODZSZWdpc3RlcnM6OmVjeCwg
QWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlcikpOwogCiAgICAgLy8gY2FsbCB0aGUgZnVuY3Rp
b24KICAgICBuYXRpdmVDYWxsID0gY2FsbCgpOwogCi0gICAgYWRkUHRyKFRydXN0ZWRJbW0zMigx
NiAtIHNpemVvZih2b2lkKikpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgYWRkUHRyKFRy
dXN0ZWRJbW0zMig4KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogCiAjZWxpZiBDUFUoQVJNKSB8
fCBDUFUoU0g0KSB8fCBDUFUoTUlQUykKICAgICAvLyBMb2FkIGNhbGxlciBmcmFtZSdzIHNjb3Bl
IGNoYWluIGludG8gdGhpcyBjYWxsZnJhbWUgc28gdGhhdCB3aGF0ZXZlciB3ZSBjYWxsIGNhbiBn
ZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgpAQCAtODAsOSArNzgsNiBAQCBKSVQ6OkNvZGVSZWYgSklU
Ojpwcml2YXRlQ29tcGlsZUNUSU5hdGl2CiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQ
dHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1QyKTsKICAgICBlbWl0UHV0Q2VsbFRv
Q2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKIAotICAgIHByZXNl
cnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKLSAg
ICBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihyZWdUMyk7Ci0KICNpZiBDUFUoTUlQ
UykKICAgICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBmb3IgKHVudXNlZCkgMTYgYnl0ZXMgKDgt
Ynl0ZSBhbGlnbmVkKSBmb3IgNCBhcmd1bWVudHMuCiAgICAgc3ViUHRyKFRydXN0ZWRJbW0zMigx
NiksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTkzLDcgKzg4LDYgQEAgSklUOjpDb2RlUmVm
IEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdgogICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIs
IGFyZ3VtZW50R1BSMCk7CiAKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0
YWNrOjpDYWxsZWUsIGFyZ3VtZW50R1BSMSk7Ci0gICAgbW92ZShyZWdUMiwgY2FsbEZyYW1lUmVn
aXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lk
IGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBsb2FkUHRyKEFkZHJlc3MoYXJndW1lbnRHUFIxLCBP
QkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9leGVjdXRhYmxlKSksIHJlZ1QyKTsKIAogICAg
IC8vIGNhbGwgdGhlIGZ1bmN0aW9uCkBAIC0xMTMsMzAgKzEwNywyNyBAQCBKSVQ6OkNvZGVSZWYg
SklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2CiAgICAgLy8gQ2hlY2sgZm9yIGFuIGV4Y2VwdGlv
bgogICAgIEp1bXAgc2F3RXhjZXB0aW9uID0gYnJhbmNoMzIoTm90RXF1YWwsIEFic29sdXRlQWRk
cmVzcyhyZWludGVycHJldF9jYXN0PGNoYXIqPih2bS0+YWRkcmVzc09mRXhjZXB0aW9uKCkpICsg
T0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCBUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6RW1wdHlWYWx1ZVRhZykpOyAKIAorICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgLy8gUmV0dXJuLgogICAgIHJldCgpOwogCiAgICAgLy8gSGFuZGxlIGFuIGV4Y2VwdGlvbgog
ICAgIHNhd0V4Y2VwdGlvbi5saW5rKHRoaXMpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFk
ZHJlc3MuCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QxKTsKLQotICAg
IG1vdmUoVHJ1c3RlZEltbVB0cigmdm0tPmV4Y2VwdGlvbkxvY2F0aW9uKSwgcmVnVDIpOwotICAg
IHN0b3JlUHRyKHJlZ1QxLCByZWdUMik7CiAgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIs
ICZtX3ZtLT50b3BDYWxsRnJhbWUpOwogCiAjaWYgQ1BVKFg4NikKLSAgICBhZGRQdHIoVHJ1c3Rl
ZEltbTMyKC0xMiksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICBwdXNoKGNhbGxGcmFtZVJl
Z2lzdGVyKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC00KSwgc3RhY2tQb2ludGVyUmVnaXN0
ZXIpOworICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciksIFg4NlJlZ2lzdGVy
czo6ZWN4KTsKKyAgICBwdXNoKFg4NlJlZ2lzdGVyczo6ZWN4KTsKICNlbHNlCi0gICAgbW92ZShj
YWxsRnJhbWVSZWdpc3RlciwgYXJndW1lbnRHUFIwKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MoY2Fs
bEZyYW1lUmVnaXN0ZXIpLCBhcmd1bWVudEdQUjApOwogI2VuZGlmCiAgICAgbW92ZShUcnVzdGVk
SW1tUHRyKEZ1bmN0aW9uUHRyKG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKS52YWx1ZSgpKSwg
cmVnVDMpOwogICAgIGNhbGwocmVnVDMpOwogCiAjaWYgQ1BVKFg4NikKLSAgICBhZGRQdHIoVHJ1
c3RlZEltbTMyKDE2KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGFkZFB0cihUcnVzdGVk
SW1tMzIoOCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICNlbmRpZgogCiAgICAganVtcFRvRXhj
ZXB0aW9uSGFuZGxlcigpOwpAQCAtMTc1LDcgKzE2Niw3IEBAIHZvaWQgSklUOjplbWl0X29wX2Vu
ZChJbnN0cnVjdGlvbiogY3VycmUKIHsKICAgICBBU1NFUlQocmV0dXJuVmFsdWVHUFIgIT0gY2Fs
bEZyYW1lUmVnaXN0ZXIpOwogICAgIGVtaXRMb2FkKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQsIHJlZ1QxLCByZWdUMCk7Ci0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1
cm4oQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgp
KSk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKIH0KIApAQCAtOTI3
LDYgKzkxOCw5IEBAIHZvaWQgSklUOjplbWl0X29wX2NhdGNoKEluc3RydWN0aW9uKiBjdXIKICAg
ICBtb3ZlKFRydXN0ZWRJbW1QdHIobV92bSksIHJlZ1QzKTsKICAgICAvLyBvcGVyYXRpb25UaHJv
dyByZXR1cm5zIHRoZSBjYWxsRnJhbWUgZm9yIHRoZSBoYW5kbGVyLgogICAgIGxvYWQzMihBZGRy
ZXNzKHJlZ1QzLCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lz
dGVyKTsKKworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKGNv
ZGVCbG9jaygpKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOworCiAgICAgLy8gTm93IHN0b3JlIHRoZSBleGNlcHRpb24gcmV0dXJu
ZWQgYnkgb3BlcmF0aW9uVGhyb3cuCiAgICAgbG9hZDMyKEFkZHJlc3MocmVnVDMsIFZNOjpleGNl
cHRpb25PZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2Fk
KSksIHJlZ1QwKTsKICAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMywgVk06OmV4Y2VwdGlvbk9mZnNl
dCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCByZWdUMSk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDE2
MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIK
KyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIlNs
b3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogCkBAIC03Myw3ICs3
NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2VuZChJbnN0cnVjdGlvbiogY3VycmUKIHsKICAgICBS
RUxFQVNFX0FTU0VSVChyZXR1cm5WYWx1ZUdQUiAhPSBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBy
ZXR1cm5WYWx1ZUdQUik7Ci0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oQWRk
cmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7Cisg
ICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKIH0KIApAQCAtMjYyLDE0ICsy
NjMsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgLy8g
UmV0dXJuIHRoZSByZXN1bHQgaW4gJWVheC4KICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJldHVyblZhbHVlR1BSKTsKIAotICAgIC8v
IEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJh
bWVIZWFkZXJQdHIocmVnVDEpOwotCi0gICAgLy8gUmVzdG9yZSBvdXIgY2FsbGVyJ3MgInIiLgot
ICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVn
aXN0ZXIpOwotCi0gICAgLy8gUmV0dXJuLgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3Jl
UmV0dXJuKHJlZ1QxKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTI4NSwxNCArMjgwLDgg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0X29iamVjdF9vcl90aGlzKElucwogICAgIGxvYWRQdHIo
QWRkcmVzcyhyZXR1cm5WYWx1ZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHJlZ1Qy
KTsKICAgICBKdW1wIG5vdE9iamVjdCA9IGVtaXRKdW1wSWZOb3RPYmplY3QocmVnVDIpOwogCi0g
ICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgZW1pdEdldFJldHVyblBDRnJvbUNh
bGxGcmFtZUhlYWRlclB0cihyZWdUMSk7Ci0KLSAgICAvLyBSZXN0b3JlIG91ciBjYWxsZXIncyAi
ciIuCi0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJh
bWVSZWdpc3Rlcik7Ci0KICAgICAvLyBSZXR1cm4uCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NC
ZWZvcmVSZXR1cm4ocmVnVDEpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0
KCk7CiAKICAgICAvLyBSZXR1cm4gJ3RoaXMnIGluICVlYXguCkBAIC0zMDAsMTQgKzI4OSw4IEBA
IHZvaWQgSklUOjplbWl0X29wX3JldF9vYmplY3Rfb3JfdGhpcyhJbnMKICAgICBub3RPYmplY3Qu
bGluayh0aGlzKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQsIHJldHVyblZhbHVlR1BSKTsKIAotICAgIC8vIEdyYWIgdGhlIHJldHVy
biBhZGRyZXNzLgotICAgIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVn
VDEpOwotCi0gICAgLy8gUmVzdG9yZSBvdXIgY2FsbGVyJ3MgInIiLgotICAgIGVtaXRHZXRDYWxs
ZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwotCiAgICAg
Ly8gUmV0dXJuLgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QxKTsK
KyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC02NTAsNiAr
NjMzLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goSW5zdHJ1Y3Rpb24qIGN1cgogewogICAg
IG1vdmUoVHJ1c3RlZEltbVB0cihtX3ZtKSwgcmVnVDMpOwogICAgIGxvYWQ2NChBZGRyZXNzKHJl
Z1QzLCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsK
KworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKGNvZGVCbG9j
aygpKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVy
UmVnaXN0ZXIpOworCiAgICAgbG9hZDY0KEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZz
ZXQoKSksIHJlZ1QwKTsKICAgICBzdG9yZTY0KFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUo
SlNWYWx1ZSgpKSksIEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSkpOwogICAg
IGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7
CkBAIC0xMTAzLDIwICsxMDg5LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbG9vcF9oaW50KEluc3Ry
dWN0aW9uKgogewogICAgIC8vIEVtaXQgdGhlIEpJVCBvcHRpbWl6YXRpb24gY2hlY2s6IAogICAg
IGlmIChjYW5CZU9wdGltaXplZCgpKSB7Ci0gICAgICAgIGlmIChPcHRpb25zOjplbmFibGVPU1JF
bnRyeUluTG9vcHMoKSkgewotICAgICAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoQWRkMzIoUG9z
aXRpdmVPclplcm8sIFRydXN0ZWRJbW0zMihPcHRpb25zOjpleGVjdXRpb25Db3VudGVySW5jcmVt
ZW50Rm9yTG9vcCgpKSwKLSAgICAgICAgICAgICAgICBBYnNvbHV0ZUFkZHJlc3MobV9jb2RlQmxv
Y2stPmFkZHJlc3NPZkpJVEV4ZWN1dGVDb3VudGVyKCkpKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAvLyBBZGQgd2l0aCBzYXR1cmF0aW9uLgotICAgICAgICAgICAgbW92ZShUcnVz
dGVkSW1tUHRyKG1fY29kZUJsb2NrLT5hZGRyZXNzT2ZKSVRFeGVjdXRlQ291bnRlcigpKSwgcmVn
VDMpOwotICAgICAgICAgICAgbG9hZDMyKHJlZ1QzLCByZWdUMik7Ci0gICAgICAgICAgICBKdW1w
IGRvbnRBZGQgPSBicmFuY2gzMigKLSAgICAgICAgICAgICAgICBHcmVhdGVyVGhhbiwgcmVnVDIs
Ci0gICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJf
dD46Om1heCgpIC0gT3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZvckxvb3AoKSkp
OwotICAgICAgICAgICAgYWRkMzIoVHJ1c3RlZEltbTMyKE9wdGlvbnM6OmV4ZWN1dGlvbkNvdW50
ZXJJbmNyZW1lbnRGb3JMb29wKCkpLCByZWdUMik7Ci0gICAgICAgICAgICBzdG9yZTMyKHJlZ1Qy
LCByZWdUMyk7Ci0gICAgICAgICAgICBkb250QWRkLmxpbmsodGhpcyk7Ci0gICAgICAgIH0KKyAg
ICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoQWRkMzIoUG9zaXRpdmVPclplcm8sIFRydXN0ZWRJbW0z
MihPcHRpb25zOjpleGVjdXRpb25Db3VudGVySW5jcmVtZW50Rm9yTG9vcCgpKSwKKyAgICAgICAg
ICAgIEFic29sdXRlQWRkcmVzcyhtX2NvZGVCbG9jay0+YWRkcmVzc09mSklURXhlY3V0ZUNvdW50
ZXIoKSkpKTsKICAgICB9CiAKICAgICAvLyBFbWl0IHRoZSB3YXRjaGRvZyB0aW1lciBjaGVjazoK
QEAgLTExMjgsMTEgKzExMDIsMTIgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2xvb3BfaGludChJ
bnN0cnVjdAogewogI2lmIEVOQUJMRShERkdfSklUKQogICAgIC8vIEVtaXQgdGhlIHNsb3cgcGF0
aCBmb3IgdGhlIEpJVCBvcHRpbWl6YXRpb24gY2hlY2s6Ci0gICAgaWYgKGNhbkJlT3B0aW1pemVk
KCkgJiYgT3B0aW9uczo6ZW5hYmxlT1NSRW50cnlJbkxvb3BzKCkpIHsKKyAgICBpZiAoY2FuQmVP
cHRpbWl6ZWQoKSkgewogICAgICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgICAgIAogICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk9wdGltaXplLCBtX2J5dGVjb2RlT2Zmc2V0KTsK
ICAgICAgICAgSnVtcCBub09wdGltaXplZEVudHJ5ID0gYnJhbmNoVGVzdFB0cihaZXJvLCByZXR1
cm5WYWx1ZUdQUik7CisgICAgICAgIG1vdmUocmV0dXJuVmFsdWVHUFIyLCBzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CiAgICAgICAgIGp1bXAocmV0dXJuVmFsdWVHUFIpOwogICAgICAgICBub09wdGlt
aXplZEVudHJ5LmxpbmsodGhpcyk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTIgKzMwLDEy
IEBACiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5o
IgogI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKLSNpbmNsdWRlICJDb21tb25TbG93UGF0
aHMuaCIKICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1vZGUuaCIKICNpbmNsdWRlICJERkdEcml2
ZXIuaCIKICNpbmNsdWRlICJERkdPU1JFbnRyeS5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0Lmgi
CiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5nU2NvcGUuaCIKICNp
bmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgi
CiAjaW5jbHVkZSAiSklULmgiCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgKiBfUmV0dXJuQWRkcmVz
cyh2b2lkKTsKICNlbmRpZgogCiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25TdGFja0No
ZWNrKEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2spCit2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IoRXhlY1N0YXRlKiBleGVjLCBD
b2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAgICAvLyBXZSBwYXNzIGluIG91ciBvd24gY29kZSBi
bG9jaywgYmVjYXVzZSB0aGUgY2FsbGZyYW1lIGhhc24ndCBiZWVuIHBvcHVsYXRlZC4KICAgICBW
TSogdm0gPSBjb2RlQmxvY2stPnZtKCk7CkBAIC04MCwxMSArODAsOCBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uU3RhY2tDaGVjayhFCiAgICAgICAgIGNhbGxlckZyYW1lID0gZXhlYzsK
IAogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxlckZyYW1lKTsKLQot
ICAgIEpTU3RhY2smIHN0YWNrID0gdm0tPmludGVycHJldGVyLT5zdGFjaygpOwotCi0gICAgaWYg
KFVOTElLRUxZKCFzdGFjay5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKV0pKSkKLSAg
ICAgICAgdm0tPnRocm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93
RXJyb3IoY2FsbGVyRnJhbWUpKTsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZSgq
dm0pOworICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKGNhbGxlckZyYW1lKSk7CiB9CiAKIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVy
YXRpb25DYWxsQXJpdHlDaGVjayhFeGVjU3RhdGUqIGV4ZWMpCkBAIC05Nyw3ICs5NCw3IEBAIGlu
dDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsQXJpdHkKIAogICAgIGludDMyX3QgbWlz
c2luZ0FyZ0NvdW50ID0gQ29tbW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4ZWMsICZzdGFj
aywgQ29kZUZvckNhbGwpOwogICAgIGlmIChtaXNzaW5nQXJnQ291bnQgPCAwKQotICAgICAgICB2
bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihj
YWxsZXJGcmFtZSkpOworICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsZXJGcmFt
ZSk7CiAKICAgICByZXR1cm4gbWlzc2luZ0FyZ0NvdW50OwogfQpAQCAtMTEyLDcgKzEwOSw3IEBA
IGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db25zdHJ1Y3QKIAogICAgIGludDMyX3Qg
bWlzc2luZ0FyZ0NvdW50ID0gQ29tbW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4ZWMsICZz
dGFjaywgQ29kZUZvckNvbnN0cnVjdCk7CiAgICAgaWYgKG1pc3NpbmdBcmdDb3VudCA8IDApCi0g
ICAgICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxv
d0Vycm9yKGNhbGxlckZyYW1lKSk7CisgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNh
bGxlckZyYW1lKTsKIAogICAgIHJldHVybiBtaXNzaW5nQXJnQ291bnQ7CiB9CkBAIC02MTIsMTUg
KzYwOSwxMyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWCiAgICAg
ZGlyZWN0UHV0QnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZVZhbHVlKSwgc3Vic2NyaXB0LCB2YWx1
ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwo
RXhlY1N0YXRlKiBleGVjQ2FsbGVlKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25DYWxsRXZhbChFeGVjU3RhdGUqIGV4ZWMsIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsK
LSAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsK
LSAgICBBU1NFUlQoZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmNvZGVU
eXBlKCkgIT0gRnVuY3Rpb25Db2RlCi0gICAgICAgIHx8ICFleGVjQ2FsbGVlLT5jYWxsZXJGcmFt
ZSgpLT5jb2RlQmxvY2soKS0+bmVlZHNGdWxsU2NvcGVDaGFpbigpCi0gICAgICAgIHx8IGV4ZWND
YWxsZWUtPmNhbGxlckZyYW1lKCktPnVuY2hlY2tlZFIoZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUo
KS0+Y29kZUJsb2NrKCktPmFjdGl2YXRpb25SZWdpc3RlcigpLm9mZnNldCgpKS5qc1ZhbHVlKCkp
OworICAgIEFTU0VSVChleGVjLT5jb2RlQmxvY2soKS0+Y29kZVR5cGUoKSAhPSBGdW5jdGlvbkNv
ZGUKKyAgICAgICAgfHwgIWV4ZWMtPmNvZGVCbG9jaygpLT5uZWVkc0Z1bGxTY29wZUNoYWluKCkK
KyAgICAgICAgfHwgZXhlYy0+dW5jaGVja2VkUihleGVjLT5jb2RlQmxvY2soKS0+YWN0aXZhdGlv
blJlZ2lzdGVyKCkub2Zmc2V0KCkpLmpzVmFsdWUoKSk7CiAKLSAgICBleGVjQ2FsbGVlLT5zZXRT
Y29wZShjYWxsZXJGcmFtZS0+c2NvcGUoKSk7Ci0gICAgZXhlY0NhbGxlZS0+c2V0UmV0dXJuUEMo
c3RhdGljX2Nhc3Q8SW5zdHJ1Y3Rpb24qPihPVVJfUkVUVVJOX0FERFJFU1MpKTsKKyAgICBleGVj
Q2FsbGVlLT5zZXRTY29wZShleGVjLT5zY29wZSgpKTsKICAgICBleGVjQ2FsbGVlLT5zZXRDb2Rl
QmxvY2soMCk7CiAKICAgICBpZiAoIWlzSG9zdEZ1bmN0aW9uKGV4ZWNDYWxsZWUtPmNhbGxlZUFz
VmFsdWUoKSwgZ2xvYmFsRnVuY0V2YWwpKQpAQCAtNjg1LDcgKzY4MCw4IEBAIHN0YXRpYyB2b2lk
KiBoYW5kbGVIb3N0Q2FsbChFeGVjU3RhdGUqIGUKICAgICByZXR1cm4gdm0tPmdldENUSVN0dWIo
dGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJs
ZUFkZHJlc3MoKTsKIH0KIAotaW5saW5lIGNoYXIqIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjQ2Fs
bGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCitpbmxpbmUgY2hhciogbGlua0ZvcigK
KyAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwg
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBFeGVjU3RhdGUqIGV4
ZWMgPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwogICAgIFZNKiB2bSA9ICZleGVjLT52bSgp
OwpAQCAtNzAzLDM5ICs2OTksNTMgQEAgaW5saW5lIGNoYXIqIGxpbmtGb3IoRXhlY1N0YXRlKiBl
eGVjQ2FsbAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyOwogICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gMDsKICAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IGV4ZWMt
PmNvZGVCbG9jaygpLT5nZXRDYWxsTGlua0luZm8oZXhlY0NhbGxlZS0+cmV0dXJuUEMoKSk7Ci0g
ICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpCi0gICAgICAgIGNvZGVQdHIgPSBl
eGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2FsbCgpOwot
ICAgIGVsc2UgeworICAgIGlmIChleGVjdXRhYmxlLT5pc0hvc3RGdW5jdGlvbigpKSB7CisgICAg
ICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9yKCp2bSwga2luZCwgTXVzdENo
ZWNrQXJpdHksIHJlZ2lzdGVycyk7CisgICAgfSBlbHNlIHsKICAgICAgICAgRnVuY3Rpb25FeGVj
dXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFi
bGUqPihleGVjdXRhYmxlKTsKICAgICAgICAgSlNPYmplY3QqIGVycm9yID0gZnVuY3Rpb25FeGVj
dXRhYmxlLT5wcmVwYXJlRm9yRXhlY3V0aW9uKGV4ZWNDYWxsZWUsIGNhbGxlZS0+c2NvcGUoKSwg
a2luZCk7CiAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgdm0tPnRocm93RXhjZXB0
aW9uKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CisgICAgICAgICAgICB0
aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihleGVjKTsKICAgICAgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNoYXIqPih2bS0+Z2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xv
d1BhdGhHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKICAgICAgICAgfQog
ICAgICAgICBjb2RlQmxvY2sgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvZGVCbG9ja0ZvcihraW5k
KTsKKyAgICAgICAgQXJpdHlDaGVja01vZGUgYXJpdHk7CiAgICAgICAgIGlmIChleGVjQ2FsbGVl
LT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2Rl
QmxvY2stPm51bVBhcmFtZXRlcnMoKSkgfHwgY2FsbExpbmtJbmZvLmNhbGxUeXBlID09IENhbGxM
aW5rSW5mbzo6Q2FsbFZhcmFyZ3MpCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVj
dXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCk7CisgICAgICAg
ICAgICBhcml0eSA9IE11c3RDaGVja0FyaXR5OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBj
b2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5h
ZGRyZXNzRm9yQ2FsbCgpOworICAgICAgICAgICAgYXJpdHkgPSBBcml0eUNoZWNrTm90UmVxdWly
ZWQ7CisgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3Io
KnZtLCBraW5kLCBhcml0eSwgcmVnaXN0ZXJzKTsKICAgICB9CiAgICAgaWYgKCFjYWxsTGlua0lu
Zm8uc2Vlbk9uY2UoKSkKICAgICAgICAgY2FsbExpbmtJbmZvLnNldFNlZW4oKTsKICAgICBlbHNl
Ci0gICAgICAgIGxpbmtGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBjb2RlQmxvY2ssIGNh
bGxlZSwgY29kZVB0ciwga2luZCk7CisgICAgICAgIGxpbmtGb3IoZXhlY0NhbGxlZSwgY2FsbExp
bmtJbmZvLCBjb2RlQmxvY2ssIGNhbGxlZSwgY29kZVB0ciwga2luZCwgcmVnaXN0ZXJzKTsKICAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29kZVB0ci5leGVjdXRhYmxlQWRkcmVz
cygpKTsKIH0KIAogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbChFeGVjU3Rh
dGUqIGV4ZWNDYWxsZWUpCiB7Ci0gICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZv
ckNhbGwpOworICAgIHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBSZWdp
c3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAogY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25MaW5rQ29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICByZXR1
cm4gbGlua0ZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gbGlu
a0ZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlvbk5v
dFJlcXVpcmVkKTsKK30KKworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbFRo
YXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3sKKyAgICByZXR1cm4gbGlu
a0ZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKIH0K
IAotaW5saW5lIGNoYXIqIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjQ2Fs
bGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIEpTQ2VsbComIGNhbGxlZUFzRnVuY3Rp
b25DZWxsKQorY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ29uc3RydWN0VGhhdFBy
ZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIHJldHVybiBsaW5rRm9y
KGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9
CisKK2lubGluZSBjaGFyKiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKAorICAgIEV4ZWNTdGF0ZSog
ZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZh
dGlvbk1vZGUgcmVnaXN0ZXJzLAorICAgIEpTQ2VsbComIGNhbGxlZUFzRnVuY3Rpb25DZWxsKQog
ewogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCk7CiAgICAg
Vk0qIHZtID0gJmV4ZWMtPnZtKCk7CkBAIC03NTcsMTYgKzc2NywyMCBAQCBpbmxpbmUgY2hhciog
dmlydHVhbEZvcldpdGhGdW5jdGlvbihFeGVjCiAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4odm0tPmdldENUSVN0dWIodGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQ
YXRoR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGV4ZWN1dGFibGUtPmdlbmVy
YXRlZEpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5kKS5leGVjdXRhYmxlQWRkcmVzcygpKTsK
KyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oZXhlY3V0YWJsZS0+ZW50cnlwb2lu
dEZvcigKKyAgICAgICAgKnZtLCBraW5kLCBNdXN0Q2hlY2tBcml0eSwgcmVnaXN0ZXJzKS5leGVj
dXRhYmxlQWRkcmVzcygpKTsKIH0KIAotaW5saW5lIGNoYXIqIHZpcnR1YWxGb3IoRXhlY1N0YXRl
KiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCitpbmxpbmUgY2hhciog
dmlydHVhbEZvcigKKyAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlv
bktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBK
U0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsSWdub3JlZDsKLSAgICByZXR1cm4gdmlydHVhbEZv
cldpdGhGdW5jdGlvbihleGVjQ2FsbGVlLCBraW5kLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbElnbm9y
ZWQpOworICAgIHJldHVybiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIGtpbmQs
IHJlZ2lzdGVycywgY2FsbGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVkKTsKIH0KIAotc3RhdGljIGJv
b2wgYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIEpT
Q2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGwsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQor
c3RhdGljIGJvb2wgYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbCgKKyAgICBFeGVjU3RhdGUq
IGV4ZWNDYWxsZWUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMsIEpTQ2VsbCog
Y2FsbGVlQXNGdW5jdGlvbkNlbGwsCisgICAgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiB7
CiAgICAgaWYgKCFjYWxsZWVBc0Z1bmN0aW9uQ2VsbCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtNzgwLDcgKzc5NCwxMCBAQCBzdGF0aWMgYm9vbCBhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVD
YWxsCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBBU1NFUlQoY2FsbGVlLT5leGVj
dXRhYmxlKCktPmhhc0pJVENvZGVGb3JDYWxsKCkpOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjb2RlUHRyID0gY2FsbGVlLT5leGVjdXRhYmxlKCktPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxs
KCktPmFkZHJlc3NGb3JDYWxsKCk7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIg
PQorICAgICAgICBjYWxsZWUtPmV4ZWN1dGFibGUoKS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwo
KS0+YWRkcmVzc0ZvckNhbGwoCisgICAgICAgICAgICAqZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUo
KS0+Y29kZUJsb2NrKCktPnZtKCksIGNhbGxlZS0+ZXhlY3V0YWJsZSgpLAorICAgICAgICAgICAg
QXJpdHlDaGVja05vdFJlcXVpcmVkLCByZWdpc3RlcnMpOwogICAgIAogICAgIENvZGVCbG9jayog
Y29kZUJsb2NrOwogICAgIGlmIChjYWxsZWUtPmV4ZWN1dGFibGUoKS0+aXNIb3N0RnVuY3Rpb24o
KSkKQEAgLTc5Myw3ICs4MTAsNyBAQCBzdGF0aWMgYm9vbCBhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1
cmVDYWxsCiAgICAgCiAgICAgbGlua0Nsb3N1cmVDYWxsKAogICAgICAgICBleGVjQ2FsbGVlLCBj
YWxsTGlua0luZm8sIGNvZGVCbG9jaywKLSAgICAgICAgY2FsbGVlLT5zdHJ1Y3R1cmUoKSwgY2Fs
bGVlLT5leGVjdXRhYmxlKCksIGNvZGVQdHIpOworICAgICAgICBjYWxsZWUtPnN0cnVjdHVyZSgp
LCBjYWxsZWUtPmV4ZWN1dGFibGUoKSwgY29kZVB0ciwgcmVnaXN0ZXJzKTsKICAgICAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTgwMSwyNSArODE4LDQ2IEBAIHN0YXRpYyBib29sIGF0dGVtcHRU
b09wdGltaXplQ2xvc3VyZUNhbGwKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Ns
b3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKICAgICBKU0NlbGwqIGNhbGxlZUFz
RnVuY3Rpb25DZWxsOwotICAgIGNoYXIqIHJlc3VsdCA9IHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24o
ZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIGNhbGxlZUFzRnVuY3Rpb25DZWxsKTsKKyAgICBjaGFy
KiByZXN1bHQgPSB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxs
LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCk7
CiAgICAgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8gPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFt
ZSgpLT5jb2RlQmxvY2soKS0+Z2V0Q2FsbExpbmtJbmZvKGV4ZWNDYWxsZWUtPnJldHVyblBDKCkp
OwogCi0gICAgaWYgKCFhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKGV4ZWNDYWxsZWUsIGNh
bGxlZUFzRnVuY3Rpb25DZWxsLCBjYWxsTGlua0luZm8pKQotICAgICAgICBsaW5rU2xvd0Zvcihl
eGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIENvZGVGb3JDYWxsKTsKKyAgICBpZiAoIWF0dGVtcHRU
b09wdGltaXplQ2xvc3VyZUNhbGwoZXhlY0NhbGxlZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RS
ZXF1aXJlZCwgY2FsbGVlQXNGdW5jdGlvbkNlbGwsIGNhbGxMaW5rSW5mbykpCisgICAgICAgIGxp
bmtTbG93Rm9yKGV4ZWNDYWxsZWUsIGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwsIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
IGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENhbGwoRXhlY1N0YXRlKiBleGVj
Q2FsbGVlKQogeyAgICAKLSAgICByZXR1cm4gdmlydHVhbEZvcihleGVjQ2FsbGVlLCBDb2RlRm9y
Q2FsbCk7CisgICAgcmV0dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewotICAg
IHJldHVybiB2aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJl
dHVybiB2aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QsIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQogCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkK
K3sKKyAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsOworICAgIGNoYXIqIHJlc3VsdCA9
IHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIE11c3RQcmVz
ZXJ2ZVJlZ2lzdGVycywgY2FsbGVlQXNGdW5jdGlvbkNlbGwpOworICAgIENhbGxMaW5rSW5mbyYg
Y2FsbExpbmtJbmZvID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmdl
dENhbGxMaW5rSW5mbyhleGVjQ2FsbGVlLT5yZXR1cm5QQygpKTsKKworICAgIGlmICghYXR0ZW1w
dFRvT3B0aW1pemVDbG9zdXJlQ2FsbChleGVjQ2FsbGVlLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMs
IGNhbGxlZUFzRnVuY3Rpb25DZWxsLCBjYWxsTGlua0luZm8pKQorICAgICAgICBsaW5rU2xvd0Zv
cihleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdp
c3RlcnMpOworICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmlydHVhbENhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqIGV4ZWND
YWxsZWUpCit7ICAgIAorICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JD
YWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqIGV4ZWND
YWxsZWUpCit7CisgICAgcmV0dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0
cnVjdCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQ29tcGFyZUxlc3MoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogewpAQCAtOTc0LDcgKzEwMTIsNyBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVidWcoRXhlY1N0CiB9CiAKICNpZiBFTkFC
TEUoREZHX0pJVCkKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0
YXRlKiBleGVjLCBpbnQzMl90IGJ5dGVjb2RlSW5kZXgpCitTbG93UGF0aFJldHVyblR5cGUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0
ZWNvZGVJbmRleCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTEwMjQsNyArMTA2Miw3IEBAIGNoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAgICAgY29kZUJsb2NrLT51
cGRhdGVBbGxQcmVkaWN0aW9ucygpOwogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigp
KQogICAgICAgICAgICAgZGF0YUxvZygiQ2hvb3Npbmcgbm90IHRvIG9wdGltaXplICIsICpjb2Rl
QmxvY2ssICIgeWV0LCBiZWNhdXNlIHRoZSB0aHJlc2hvbGQgaGFzbid0IGJlZW4gcmVhY2hlZC5c
biIpOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAw
KTsKICAgICB9CiAgICAgCiAgICAgaWYgKGNvZGVCbG9jay0+bV9zaG91bGRBbHdheXNCZUlubGlu
ZWQpIHsKQEAgLTEwMzIsMTggKzEwNzAsMTkgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRp
b25PcHRpbWl6ZShFeAogICAgICAgICBjb2RlQmxvY2stPm9wdGltaXplQWZ0ZXJXYXJtVXAoKTsK
ICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAgIGRhdGFMb2co
IkNob29zaW5nIG5vdCB0byBvcHRpbWl6ZSAiLCAqY29kZUJsb2NrLCAiIHlldCwgYmVjYXVzZSBt
X3Nob3VsZEFsd2F5c0JlSW5saW5lZCA9PSB0cnVlLlxuIik7Ci0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgIH0KIAogICAgIC8vIFdlIGNh
bm5vdCBiZSBpbiB0aGUgcHJvY2VzcyBvZiBhc3luY2hyb25vdXMgY29tcGlsYXRpb24gYW5kIGFs
c28gaGF2ZSBhbiBvcHRpbWl6ZWQKICAgICAvLyByZXBsYWNlbWVudC4KKyAgICBERkc6Oldvcmts
aXN0KiB3b3JrbGlzdCA9IERGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpOwog
ICAgIEFTU0VSVCgKLSAgICAgICAgIXZtLndvcmtsaXN0Ci0gICAgICAgIHx8ICEodm0ud29ya2xp
c3QtPmNvbXBpbGF0aW9uU3RhdGUoREZHOjpDb21waWxhdGlvbktleShjb2RlQmxvY2ssIERGRzo6
REZHTW9kZSkpICE9IERGRzo6V29ya2xpc3Q6Ok5vdEtub3duCisgICAgICAgICF3b3JrbGlzdAor
ICAgICAgICB8fCAhKHdvcmtsaXN0LT5jb21waWxhdGlvblN0YXRlKERGRzo6Q29tcGlsYXRpb25L
ZXkoY29kZUJsb2NrLCBERkc6OkRGR01vZGUpKSAhPSBERkc6OldvcmtsaXN0OjpOb3RLbm93bgog
ICAgICAgICAmJiBjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxhY2VtZW50KCkpKTsKIAogICAg
IERGRzo6V29ya2xpc3Q6OlN0YXRlIHdvcmtsaXN0U3RhdGU7Ci0gICAgaWYgKHZtLndvcmtsaXN0
KSB7CisgICAgaWYgKHdvcmtsaXN0KSB7CiAgICAgICAgIC8vIFRoZSBjYWxsIHRvIERGRzo6V29y
a2xpc3Q6OmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKCkgd2lsbCBjb21wbGV0ZSBhbGwgcmVh
ZHkKICAgICAgICAgLy8gKGkuZS4gY29tcGlsZWQpIGNvZGUgYmxvY2tzLiBCdXQgaWYgaXQgY29t
cGxldGVzIG91cnMsIHdlIGFsc28gbmVlZCB0byBrbm93CiAgICAgICAgIC8vIHdoYXQgdGhlIHJl
c3VsdCB3YXMgc28gdGhhdCB3ZSBkb24ndCBwbG93IGFoZWFkIGFuZCBhdHRlbXB0IE9TUiBvciBp
bW1lZGlhdGUKQEAgLTEwNjIsNyArMTEwMSw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uT3B0aW1pemUoRXgKICAgICAgICAgLy8gcHJvYmFibHkgYSB3YXN0ZSBvZiBtZW1vcnkuIE91
ciBnb2FsIGhlcmUgaXMgdG8gY29tcGxldGUgY29kZSBibG9ja3MgYXMgc29vbiBhcwogICAgICAg
ICAvLyBwb3NzaWJsZSBpbiBvcmRlciB0byBtaW5pbWl6ZSB0aGUgY2hhbmNlcyBvZiB1cyBleGVj
dXRpbmcgYmFzZWxpbmUgY29kZSBhZnRlcgogICAgICAgICAvLyBvcHRpbWl6ZWQgY29kZSBpcyBh
bHJlYWR5IGF2YWlsYWJsZS4KLSAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHZtLndvcmtsaXN0LT5j
b21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSgKKyAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdvcmts
aXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSgKICAgICAgICAgICAgIHZtLCBERkc6OkNv
bXBpbGF0aW9uS2V5KGNvZGVCbG9jaywgREZHOjpERkdNb2RlKSk7CiAgICAgfSBlbHNlCiAgICAg
ICAgIHdvcmtsaXN0U3RhdGUgPSBERkc6OldvcmtsaXN0OjpOb3RLbm93bjsKQEAgLTEwNzIsNyAr
MTExMSw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAg
ICAgLy8gcmVwbGFjZW1lbnQuCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb2RlQmxvY2stPmhh
c09wdGltaXplZFJlcGxhY2VtZW50KCkpOwogICAgICAgICBjb2RlQmxvY2stPnNldE9wdGltaXph
dGlvblRocmVzaG9sZEJhc2VkT25Db21waWxhdGlvblJlc3VsdChDb21waWxhdGlvbkRlZmVycmVk
KTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7
CiAgICAgfQogCiAgICAgaWYgKHdvcmtsaXN0U3RhdGUgPT0gREZHOjpXb3JrbGlzdDo6Q29tcGls
ZWQpIHsKQEAgLTEwODUsNyArMTEyNCw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
T3B0aW1pemUoRXgKICAgICAgICAgICAgIGNvZGVCbG9jay0+dXBkYXRlQWxsUHJlZGljdGlvbnMo
KTsKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgICAgICAg
ICAgZGF0YUxvZygiQ29kZSBibG9jayAiLCAqY29kZUJsb2NrLCAiIHdhcyBjb21waWxlZCBidXQg
aXQgZG9lc24ndCBoYXZlIGFuIG9wdGltaXplZCByZXBsYWNlbWVudC5cbiIpOwotICAgICAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAg
ICAgICB9CiAgICAgfSBlbHNlIGlmIChjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxhY2VtZW50
KCkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKQEAgLTExMTAsNyArMTE0
OSw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAgICAg
ICAgICAgICAgICAgIigiLCAqY29kZUJsb2NrLT5yZXBsYWNlbWVudCgpLCAiKSAoaW4gbG9vcCku
XG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvZGVCbG9jay0+cmVwbGFjZW1lbnQo
KS0+amV0dGlzb24oQ291bnRSZW9wdGltaXphdGlvbik7Ci0gICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgICAgIH0KICAgICB9
IGVsc2UgewogICAgICAgICBpZiAoIWNvZGVCbG9jay0+c2hvdWxkT3B0aW1pemVOb3coKSkgewpA
QCAtMTExOSw3ICsxMTU4LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6
ZShFeAogICAgICAgICAgICAgICAgICAgICAiRGVsYXlpbmcgb3B0aW1pemF0aW9uIGZvciAiLCAq
Y29kZUJsb2NrLAogICAgICAgICAgICAgICAgICAgICAiIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50
IHByb2ZpbGluZy5cbiIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKQEAgLTExNDcsMTIgKzExODYsMTEgQEAgY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICB9CiAKICAgICAg
ICAgQ29tcGlsYXRpb25SZXN1bHQgcmVzdWx0ID0gREZHOjpjb21waWxlKAotICAgICAgICAgICAg
dm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgREZHOjpERkdNb2RlLCBieXRl
Y29kZUluZGV4LAotICAgICAgICAgICAgbXVzdEhhbmRsZVZhbHVlcywgSklUVG9ERkdEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSgpLAotICAgICAgICAgICAgdm0uZW5zdXJlV29y
a2xpc3QoKSk7CisgICAgICAgICAgICB2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdl
dCgpLCAwLCBERkc6OkRGR01vZGUsIGJ5dGVjb2RlSW5kZXgsCisgICAgICAgICAgICBtdXN0SGFu
ZGxlVmFsdWVzLCBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKCkp
OwogICAgICAgICAKICAgICAgICAgaWYgKHJlc3VsdCAhPSBDb21waWxhdGlvblN1Y2Nlc3NmdWwp
Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQo
MCwgMCk7CiAgICAgfQogICAgIAogICAgIENvZGVCbG9jayogb3B0aW1pemVkQ29kZUJsb2NrID0g
Y29kZUJsb2NrLT5yZXBsYWNlbWVudCgpOwpAQCAtMTE2Niw3ICsxMjA0LDggQEAgY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICB9CiAKICAgICAgICAgY29k
ZUJsb2NrLT5vcHRpbWl6ZVNvb24oKTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIq
PihhZGRyZXNzKTsKKyAgICAgICAgQVNTRVJUKGV4ZWMtPmNvZGVCbG9jaygpID09IG9wdGltaXpl
ZENvZGVCbG9jayk7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoYWRkcmVzcywgZXhlYy0+
dG9wT2ZGcmFtZSgpKTsKICAgICB9CiAKICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKSB7
CkBAIC0xMTk1LDE0ICsxMjM0LDE0IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0
aW1pemUoRXgKICAgICAgICAgICAgICAgICAqY29kZUJsb2NrLT5yZXBsYWNlbWVudCgpLCAiIChh
ZnRlciBPU1IgZmFpbCkuXG4iKTsKICAgICAgICAgfQogICAgICAgICBvcHRpbWl6ZWRDb2RlQmxv
Y2stPmpldHRpc29uKENvdW50UmVvcHRpbWl6YXRpb24pOwotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICB9CiAKICAgICAvLyBPU1IgZmFp
bGVkIHRoaXMgdGltZSwgYnV0IGl0IG1pZ2h0IHN1Y2NlZWQgbmV4dCB0aW1lISBMZXQgdGhlIGNv
ZGUgcnVuIGEgYml0CiAgICAgLy8gbG9uZ2VyIGFuZCB0aGVuIHRyeSBhZ2Fpbi4KICAgICBjb2Rl
QmxvY2stPm9wdGltaXplQWZ0ZXJXYXJtVXAoKTsKICAgICAKLSAgICByZXR1cm4gMDsKKyAgICBy
ZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogfQogI2VuZGlmCiAKQEAgLTE1MzAsMTMgKzE1Njks
MTMgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbgogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlc3VsdCkpOwogfQogCi1DYWxsRnJhbWUqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgaW50MzJfdCBmaXJzdEZy
ZWVSZWdpc3RlcikKK0NhbGxGcmFtZSogSklUX09QRVJBVElPTiBvcGVyYXRpb25TaXplRnJhbWVG
b3JWYXJhcmdzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50
cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKICAgICBKU1N0
YWNrKiBzdGFjayA9ICZleGVjLT5pbnRlcnByZXRlcigpLT5zdGFjaygpOwogICAgIEpTVmFsdWUg
YXJndW1lbnRzID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVudHMpOwotICAgIENhbGxG
cmFtZSogbmV3Q2FsbEZyYW1lID0gc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKGV4ZWMsIHN0
YWNrLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKKyAgICBDYWxsRnJhbWUqIG5ld0Nh
bGxGcmFtZSA9IHNpemVGcmFtZUZvclZhcmFyZ3MoZXhlYywgc3RhY2ssIGFyZ3VtZW50cywgZmly
c3RGcmVlUmVnaXN0ZXIpOwogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiB9CiAKQEAgLTE3Mjks
MTIgKzE3NjgsMTEgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluaXRHbG9iYWxDbwog
ICAgIHBjWzFdLnUucmVnaXN0ZXJQb2ludGVyLT5zZXQoKnZtLCBleGVjLT5jb2RlQmxvY2soKS0+
Z2xvYmFsT2JqZWN0KCksIHZhbHVlKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIGxvb2t1cEV4
Y2VwdGlvbkhhbmRsZXIoRXhlY1N0YXRlKiBleGVjKQordm9pZCBKSVRfT1BFUkFUSU9OIGxvb2t1
cEV4Y2VwdGlvbkhhbmRsZXIoVk0qIHZtLCBFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgVk0qIHZt
ID0gJmV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhl
Yyk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYywgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyOjpWTUVudHJ5U2VudGluZWxPSyk7CiAKLSAgICBKU1ZhbHVlIGV4Y2VwdGlv
blZhbHVlID0gZXhlYy0+ZXhjZXB0aW9uKCk7CisgICAgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZSA9
IHZtLT5leGNlcHRpb24oKTsKICAgICBBU1NFUlQoZXhjZXB0aW9uVmFsdWUpOwogICAgIAogICAg
IGdlbmVyaWNVbndpbmQodm0sIGV4ZWMsIGV4Y2VwdGlvblZhbHVlKTsKQEAgLTE3NjcsNyArMTgw
NSw2IEBAIGFzbSAoCiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKSAiXG4iCiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1C
T0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgIm1vdiAwKCVy
YnApLCAlcmJwXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdiAl
cmJwLCAlcmRpXG4iCiAgICAgImptcCAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVy
blZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE3NzgsOCArMTgxNSwxMSBAQCBhc20g
KAogIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgog
SElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgotICAgICJtb3YgMCglZWJwKSwgJWVicFxu
IiAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQotICAgICJtb3YgJWVicCwgNCglZXNw
KVxuIgorICAgICJtb3YgKCVlc3ApLCAlZWF4XG4iCisgICAgInB1c2ggJWVicFxuIgorICAgICJs
ZWFsIC00KCVlc3ApLCAlZXNwXG4iCisgICAgInB1c2ggJWVicFxuIgorICAgICJwdXNoICVlYXhc
biIKICAgICAiam1wICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRo
RXhlY1N0YXRlKSAiXG4iCiApOwogCkBAIC0xNzkyLDcgKzE4MzIsNiBAQCBISURFX1NZTUJPTChn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiAiLnRodW1iIiAiXG4iCiAiLnRodW1iX2Z1bmMg
IiBUSFVNQl9GVU5DX1BBUkFNKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9T
VFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibGRyIHI3LCBbcjcs
ICMwXSIgIlxuIiAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3YgcjAs
IHI3IiAiXG4iCiAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1
ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CkBAIC0xODA0LDcgKzE4NDMsNiBAQCBhc20gKAogSElE
RV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogSU5MSU5FX0FSTV9GVU5DVElP
TihnZXRIb3N0Q2FsbFJldHVyblZhbHVlKQogU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVy
blZhbHVlKSAiOiIgIlxuIgotICAgICJsZHIgcjExLCBbcjExLCAjMF0iICJcbiIgLy8gQ2FsbGVy
RnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAibW92IHIwLCByMTEiICJcbiIKICAgICAiYiAi
IExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxu
IgogKTsKQEAgLTE4MTYsNyArMTg1NCw2IEBAIGFzbSAoCiAiLmdsb2JsICIgU1lNQk9MX1NUUklO
RyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6
IiAiXG4iCi0gICAgImxkdXIgeDI5LCBbeDI5LCAjMF0iICJcbiIKICAgICAgIm1vdiB4MCwgeDI5
IiAiXG4iCiAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVX
aXRoRXhlY1N0YXRlKSAiXG4iCiApOwpAQCAtMTgyOCw3ICsxODY1LDYgQEAgYXNtICgKIEhJREVf
U1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9TVFJJTkcoZ2V0SG9z
dENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKICAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGdldEhv
c3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKQotICAgICJsdyAkZnAsIDAoJGZwKSIgIlxu
IiAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3ZlICRhMCwgJGZwIiAi
XG4iCiAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhF
eGVjU3RhdGUpICJcbiIKICk7CkBAIC0xODM5LDcgKzE4NzUsNiBAQCBhc20gKAogIi5nbG9ibCAi
IFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogSElERV9TWU1CT0wo
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKSAiOiIgIlxuIgotICAgICJtb3YubCBAcjE0LCByMTQiICJcbiIgLy8gQ2FsbGVy
RnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAibW92IHIxNCwgcjQiICJcbiIKICAgICAibW92
LmwgMmYsICIgU0g0X1NDUkFUQ0hfUkVHSVNURVIgIlxuIgogICAgICJicmFmICIgU0g0X1NDUkFU
Q0hfUkVHSVNURVIgIlxuIgpAQCAtMTg1Miw3ICsxODg3LDYgQEAgU1lNQk9MX1NUUklORyhnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKSAiOgogZXh0ZXJuICJDIiB7CiAgICAgX19kZWNsc3BlYyhuYWtl
ZCkgRW5jb2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZSgpCiAgICAgewotICAgICAgICBfX2FzbSBtb3YgZWJwLCBbZWJwICsgMF07
IC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgICAgIF9fYXNtIG1vdiBbZXNw
ICsgNF0sIGVicDsKICAgICAgICAgX19hc20gam1wIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRo
RXhlY1N0YXRlCiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5B
QkxFKEpJVCkKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgIkNvbW1vblNsb3dQ
YXRocy5oIgogI2luY2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJKU0FycmF5Lmgi
CiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgpAQCAtNzIsNiArNzMsNyBAQCBleHRlcm4gIkMiIHsK
ICAgICBQYzogSW5zdHJ1Y3Rpb24qIGkuZS4gYnl0ZWNvZGUgUEMKICAgICBSOiBSZWdpc3Rlcgog
ICAgIFM6IHNpemVfdAorICAgIFNwcnQ6IFNsb3dQYXRoUmV0dXJuVHlwZQogICAgIFNzaTogU3Ry
dWN0dXJlU3R1YkluZm8qCiAgICAgU3Q6IFN0cnVjdHVyZSoKICAgICBWOiB2b2lkCkBAIC05Miw2
ICs5NCw3IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkoKIHR5cGVk
ZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VDSSkoRXhl
Y1N0YXRlKiwgSlNDZWxsKiwgU3RyaW5nSW1wbCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUNKKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBF
bmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpK
X0pJVE9wZXJhdGlvbl9FREEpKEV4ZWNTdGF0ZSosIGRvdWJsZSwgSlNBcnJheSopOwordHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUUpKEV4ZWNT
dGF0ZSosIEV4ZWNTdGF0ZSopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICgqSl9KSVRPcGVyYXRpb25fRUkpKEV4ZWNTdGF0ZSosIFN0cmluZ0ltcGwqKTsKIHR5cGVkZWYg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKKShFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gKCpKX0pJVE9wZXJhdGlvbl9FSkEpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU0Fy
cmF5Kik7CkBAIC0xMzMsNiArMTM2LDcgQEAgdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAo
KlNfSklUT3BlcgogdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0aW9u
X0VKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVk
ZWYgc2l6ZV90IEpJVF9PUEVSQVRJT04gKCpTX0pJVE9wZXJhdGlvbl9FT0pzcykoRXhlY1N0YXRl
KiwgSlNPYmplY3QqLCBKU1N0cmluZyopOwogdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAo
KlNfSklUT3BlcmF0aW9uX0opKEVuY29kZWRKU1ZhbHVlKTsKK3R5cGVkZWYgU2xvd1BhdGhSZXR1
cm5UeXBlIEpJVF9PUEVSQVRJT04gKCpTcHJ0X0pJVE9wZXJhdGlvbl9FWikoRXhlY1N0YXRlKiwg
aW50MzJfdCk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0Up
KEV4ZWNTdGF0ZSopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlv
bl9FQykoRXhlY1N0YXRlKiwgSlNDZWxsKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAo
KlZfSklUT3BlcmF0aW9uX0VDYikoRXhlY1N0YXRlKiwgQ29kZUJsb2NrKik7CkBAIC0xNzQsMTgg
KzE3OCwxNyBAQCB0eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhCiB0eXBl
ZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FU3RQUykoRXhlY1N0YXRl
KiwgU3RydWN0dXJlKiwgdm9pZCosIHNpemVfdCk7CiB0eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJ
T04gKCpQX0pJVE9wZXJhdGlvbl9FU3RTUykoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgc2l6ZV90
LCBzaXplX3QpOwogdHlwZWRlZiBjaGFyKiBKSVRfT1BFUkFUSU9OICgqUF9KSVRPcGVyYXRpb25f
RVN0WikoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgaW50MzJfdCk7Ci10eXBlZGVmIGNoYXIqIEpJ
VF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FWikoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiB0
eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FWlopKEV4ZWNTdGF0
ZSosIGludDMyX3QsIGludDMyX3QpOwogdHlwZWRlZiBTdHJpbmdJbXBsKiBKSVRfT1BFUkFUSU9O
ICgqSV9KSVRPcGVyYXRpb25fRUpzcykoRXhlY1N0YXRlKiwgSlNTdHJpbmcqKTsKIHR5cGVkZWYg
SlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gKCpKc3NfSklUT3BlcmF0aW9uX0VaKShFeGVjU3RhdGUq
LCBpbnQzMl90KTsKIAogLy8gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBsb29rdXAgYW4gZXhjZXB0
aW9uIGhhbmRlciwga2V5ZWQgYnkgZmF1bHRMb2NhdGlvbiwgd2hpY2ggaXMKIC8vIHRoZSByZXR1
cm4gbG9jYXRpb24gZnJvbSBvbmUgb2YgdGhlIGNhbGxzIG91dCB0byBvbmUgb2YgdGhlIGhlbHBl
ciBvcGVyYXRpb25zIGFib3ZlLgotICAgIAotdm9pZCBKSVRfT1BFUkFUSU9OIGxvb2t1cEV4Y2Vw
dGlvbkhhbmRsZXIoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworCit2b2lkIEpJVF9PUEVSQVRJ
T04gbG9va3VwRXhjZXB0aW9uSGFuZGxlcihWTSosIEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsK
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25WTUhhbmRsZUV4Y2VwdGlvbihFeGVjU3RhdGUq
KSBXVEZfSU5URVJOQUw7CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25TdGFja0NoZWNr
KEV4ZWNTdGF0ZSosIENvZGVCbG9jayopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihFeGVjU3RhdGUqLCBDb2RlQmxvY2sq
KSBXVEZfSU5URVJOQUw7CiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5
Q2hlY2soRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2soRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkKEV4ZWNTdGF0ZSosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIFN0cmluZ0ltcGwqKSBXVEZfSU5URVJO
QUw7CkBAIC0yMTMsMTIgKzIxNiwxOCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
QnlWYWwoRXhlCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkg
V1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJp
YyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0
QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwotY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0
ZSosIEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTGlua0NhbGwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5U
RVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3QoRXhl
Y1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5r
Q29uc3RydWN0KEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTGlua0NhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJO
QUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVz
ZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmlydHVhbENhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBXVEZfSU5U
RVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3RUaGF0
UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBX
VEZfSU5URVJOQUw7CisKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVMZXNz
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFM
Owogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUxlc3NFcShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHNpemVfdCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwpAQCAtMjQyLDcgKzI1MSw3IEBA
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YXRpY0UKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25UaHJvdyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVS
TkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlYnVnKEV4ZWNTdGF0ZSosIGludDMy
X3QpIFdURl9JTlRFUk5BTDsKICNpZiBFTkFCTEUoREZHX0pJVCkKLWNoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwor
U2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0
YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwogI2VuZGlmCiB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlJbmRleChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwg
RW5jb2RlZEpTVmFsdWUpOwogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0yNjcsNyArMjc2LDcgQEAg
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRlYXJPZmZBcmd1bQogRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIGJhc2UsIGNvbnN0IElkZW50aWZpZXIqKSBXVEZfSU5URVJOQUw7CiBKU0NlbGwqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uR2V0UE5hbWVzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KikgV1RGX0lO
VEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9m
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykgV1RGX0lO
VEVSTkFMOwotQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVBbmRBbGxvY0Zy
YW1lRm9yVmFyYXJncyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGludDMy
X3QgZmlyc3RGcmVlUmVnaXN0ZXIpIFdURl9JTlRFUk5BTDsKK0NhbGxGcmFtZSogSklUX09QRVJB
VElPTiBvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIGFyZ3VtZW50cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikgV1RGX0lOVEVSTkFMOwog
Q2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxvYWRWYXJhcmdzKEV4ZWNTdGF0ZSos
IENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgYXJn
dW1lbnRzKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblRvT2JqZWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiAK
QEAgLTI4Nyw2ICsyOTYsNjggQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluaXRHbG9i
YWxDbwogCiB9IC8vIGV4dGVybiAiQyIKIAoraW5saW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0
aW9uTGlua0ZvcigKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2Fz
ZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2Fz
ZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9w
ZXJhdGlvbkxpbmtDYWxsOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAg
ICAgICAgICAgIHJldHVybiBvcGVyYXRpb25MaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAg
ICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3Q7
CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJu
IG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnczsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKworaW5saW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uVmlydHVh
bEZvcigKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBDb2Rl
Rm9yQ2FsbDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdp
c3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlv
blZpcnR1YWxDYWxsOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAg
ICAgICAgIHJldHVybiBvcGVyYXRpb25WaXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAg
ICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1
Y3Q7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0
dXJuIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnczsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gMDsKK30KKworaW5saW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9u
TGlua0Nsb3N1cmVDYWxsRm9yKFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7
CisgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9u
Tm90UmVxdWlyZWQ6CisgICAgICAgIHJldHVybiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGw7Cisg
ICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgIHJldHVybiBvcGVyYXRpb25M
aW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnczsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlND
CiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMDksIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00ODIsNyArNDgyLDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfZ2V0X2J5X2lkKEluc3RydWN0aW9uKgogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBn
ZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBS
ZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3Rl
ciwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJl
Z1QwKSwgdHJ1ZSk7CisgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpT
VmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIHRydWUpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRo
KCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0
QnlJZHMuYXBwZW5kKGdlbik7CkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
cHV0X2J5X2lkKEluc3RydWN0aW9uKgogCiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCiAg
ICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3Rl
clNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNW
YWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwK
KyAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVn
VDMsIHJlZ1QyKSwKICAgICAgICAgcmVnVDEsIHRydWUsIG1fY29kZUJsb2NrLT5lY21hTW9kZSgp
LCBkaXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOwogICAgIAogICAgIGdlbi5nZW5lcmF0ZUZh
c3RQYXRoKCp0aGlzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNTIwLDcgKzUyMCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChJbnN0cnVjdGlv
bioKIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywg
Q29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3Rl
cnMoKSwKLSAgICAgICAgY2FsbEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNW
YWx1ZVJlZ3MocmVnVDApLCB0cnVlKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1Zh
bHVlUmVncyhyZWdUMCksIHRydWUpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsK
ICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBw
ZW5kKGdlbik7CkBAIC01NjYsOCArNTY2LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lk
KEluc3RydWN0aW9uKgogCiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1f
Y29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3Bl
Y2lhbFJlZ2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3Mo
cmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSksIHJlZ1QyLCB0cnVlLAotICAgICAgICBtX2NvZGVC
bG9jay0+ZWNtYU1vZGUoKSwgZGlyZWN0ID8gRGlyZWN0IDogTm90RGlyZWN0KTsKKyAgICAgICAg
SlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSksIHJlZ1QyLCB0cnVlLCBtX2Nv
ZGVCbG9jay0+ZWNtYU1vZGUoKSwKKyAgICAgICAgZGlyZWN0ID8gRGlyZWN0IDogTm90RGlyZWN0
KTsKICAgICAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nh
c2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKQEAgLTEwNzgsNyArMTA3OCw3IEBAIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW4KICAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUs
IGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxBdE9mZnNldChieVZhbEluZm8tPmJhZFR5cGVK
dW1wVG9Eb25lKSk7CiAgICAgCiAgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpF
X0NPREVfRk9SX1NUVUIoCi0gICAgICAgIHBhdGNoQnVmZmVyLAorICAgICAgICBtX2NvZGVCbG9j
aywgcGF0Y2hCdWZmZXIsCiAgICAgICAgICgiQmFzZWxpbmUgZ2V0X2J5X3ZhbCBzdHViIGZvciAl
cywgcmV0dXJuIHBvaW50ICVwIiwgdG9DU3RyaW5nKCptX2NvZGVCbG9jaykuZGF0YSgpLCByZXR1
cm5BZGRyZXNzLnZhbHVlKCkpKTsKICAgICAKICAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZm
ZXIobV9jb2RlQmxvY2spOwpAQCAtMTE0MSwxMiArMTE0MSwxMiBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVQdXRCeVZhbChCeVZhbEluCiAgICAgYm9vbCBpc0RpcmVjdCA9IG1faW50ZXJwcmV0
ZXItPmdldE9wY29kZUlEKGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5vcGNvZGUpID09IG9wX3B1dF9i
eV92YWxfZGlyZWN0OwogICAgIGlmICghaXNEaXJlY3QpIHsKICAgICAgICAgYnlWYWxJbmZvLT5z
dHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1
ZmZlciwKKyAgICAgICAgICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAgICAg
ICgiQmFzZWxpbmUgcHV0X2J5X3ZhbCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwgdG9D
U3RyaW5nKCptX2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKICAg
ICAgICAgCiAgICAgfSBlbHNlIHsKICAgICAgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJ
TkFMSVpFX0NPREVfRk9SX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKKyAgICAgICAg
ICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAgICAgICgiQmFzZWxpbmUgcHV0
X2J5X3ZhbF9kaXJlY3Qgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHRvQ1N0cmluZygq
bV9jb2RlQmxvY2spLmRhdGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7CiAgICAgfQogICAg
IFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTE1MCwxMSArMTUwLDggQEAgcHJvdGVjdGVkOgogfTsKIAogLy8gSGVscGVyIGZvciB0aGUg
Y3JlYXRpb24gb2Ygc2ltcGxlIHN0dWIgcm91dGluZXMgdGhhdCBuZWVkIG5vIGhlbHAgZnJvbSB0
aGUgR0MuCi0jZGVmaW5lIEZJTkFMSVpFX0NPREVfRk9SX1NUVUIocGF0Y2hCdWZmZXIsIGRhdGFM
b2dGQXJndW1lbnRzKSBcCi0gICAgKGFkb3B0UmVmKG5ldyBKSVRTdHViUm91dGluZShGSU5BTEla
RV9DT0RFKChwYXRjaEJ1ZmZlciksIGRhdGFMb2dGQXJndW1lbnRzKSkpKQotCi0jZGVmaW5lIEZJ
TkFMSVpFX0NPREVfRk9SX0RGR19TVFVCKHBhdGNoQnVmZmVyLCBkYXRhTG9nRkFyZ3VtZW50cykg
XAotICAgIChhZG9wdFJlZihuZXcgSklUU3R1YlJvdXRpbmUoRklOQUxJWkVfREZHX0NPREUoKHBh
dGNoQnVmZmVyKSwgZGF0YUxvZ0ZBcmd1bWVudHMpKSkpCisjZGVmaW5lIEZJTkFMSVpFX0NPREVf
Rk9SX1NUVUIoY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwgZGF0YUxvZ0ZBcmd1bWVudHMpIFwKKyAg
ICAoYWRvcHRSZWYobmV3IEpJVFN0dWJSb3V0aW5lKEZJTkFMSVpFX0NPREVfRk9SKChjb2RlQmxv
Y2spLCAocGF0Y2hCdWZmZXIpLCBkYXRhTG9nRkFyZ3VtZW50cykpKSkKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsMTQgKzM3LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShK
SVQpCiAKICNpZiBPUyhXSU5ET1dTKQotY2xhc3MgRXhlY1N0YXRlOwotY2xhc3MgUmVnaXN0ZXI7
CiBzdHJ1Y3QgUHJvdG9DYWxsRnJhbWU7CitjbGFzcyBWTTsKIAogZXh0ZXJuICJDIiB7Ci0gICAg
RW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwgRXhlY1N0YXRlKiosIFByb3Rv
Q2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKLSAgICB2b2lkIHJldHVybkZyb21KYXZhU2NyaXB0KCk7
Ci0gICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCosIEV4ZWNTdGF0
ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKik7CisgICAgRW5jb2RlZEpTVmFsdWUgY2Fs
bFRvSmF2YVNjcmlwdCh2b2lkKiwgVk0qLCBQcm90b0NhbGxGcmFtZSopOworICAgIEVuY29kZWRK
U1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqLCBWTSosIFByb3RvQ2FsbEZyYW1lKik7
CisgICAgdm9pZCBoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbigpOwogfQogI2VuZGlmCiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZDNjQuYXNtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZDNjQuYXNtCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzTVNWQzY0LmFz
bQkod29ya2luZyBjb3B5KQpAQCAtMSwyNTUgKzAsMCBAQAotOy8qCi07IENvcHlyaWdodCAoQykg
MjAxMyBEaWdpYSBQbGMuIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotOwotOyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLTsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi07IGFyZSBtZXQ6Ci07IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci07ICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLTsgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLTsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotOwotOyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLTsgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLTsgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi07IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi07IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotOyBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi07IFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotOyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi07IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotOyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLTsgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLTsqLwotCi1FWFRFUk4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUgOiBu
ZWFyCi0KLVBVQkxJQyBjYWxsVG9KYXZhU2NyaXB0Ci1QVUJMSUMgcmV0dXJuRnJvbUphdmFTY3Jp
cHQKLVBVQkxJQyBnZXRIb3N0Q2FsbFJldHVyblZhbHVlCi0KLV9URVhUICAgU0VHTUVOVAotCi1j
YWxsVG9KYXZhU2NyaXB0IFBST0MKLSAgICA7OyBUaGlzIGZ1bmN0aW9uIGlzIGJlbGlldmVkIHRv
IGJlIGFuIGFjY3VyYXRlIGFkYXB0YXRpb24gb2YgdGhlIGFzc2VtYmx5IGNyZWF0ZWQgYnkgdGhl
IGxsaW50IHN0dWIgb2YgdGhlCi0gICAgOzsgc2FtZSBuYW1lIHdpdGggY2hhbmdlcyBmb3IgYXJn
dW1lbnQgcmVnaXN0ZXIgZGlmZmVyZW5jZXMuCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3JzcF0K
LSAgICBwdXNoIHJicAotICAgIG1vdiByYXgsIHJicCA7IFNhdmUgcHJldmlvdXMgZnJhbWUgcG9p
bnRlcgotICAgIG1vdiByYnAsIHJzcAotICAgIHB1c2ggcjEyCi0gICAgcHVzaCByMTMKLSAgICBw
dXNoIHIxNAotICAgIHB1c2ggcjE1Ci0gICAgcHVzaCByYngKLSAgICBwdXNoIHJzaQotICAgIHB1
c2ggcmRpCi0KLSAgICA7IEpJVCBvcGVyYXRpb25zIGNhbiB1c2UgdXAgdG8gNiBhcmdzICg0IGlu
IHJlZ2lzdGVycyBhbmQgMiBvbiB0aGUgc3RhY2spLgotICAgIDsgSW4gYWRkaXRpb24sIFg4Nl82
NCBBQkkgc3BlY2lmaWVzIHRoYXQgdGhlIHdvcnNlIGNhc2Ugc3RhY2sgYWxpZ25tZW50Ci0gICAg
OyByZXF1aXJlbWVudCBpcyAzMiBieXRlcy4gQmFzZWQgb24gdGhlc2UgZmFjdG9ycywgd2UgbmVl
ZCB0byBwYWQgdGhlIHN0YWNrCi0gICAgOyBhbiBhZGRpdGlvbmFsIDI4aCBieXRlcy4KLSAgICBz
dWIgcnNwLCAyOGgKLQotICAgIG1vdiByYnAsIHI5Ci0gICAgc3ViIHJicCwgNDAKLSAgICBtb3Yg
cXdvcmQgcHRyW3JicCArIDQwXSwgMAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMzJdLCByZHgK
LQotICAgIG1vdiByYXgsIHF3b3JkIHB0cltyZHhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAy
NF0sIHJheAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMTZdLCAxCi0gICAgbW92IHF3b3JkIHB0
cltyYnAgKyA4XSwgcjEwCi0gICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLSAgICBtb3YgcmF4
LCByYnAKLQotICAgIG1vdiBlYngsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIGFkZCByYngsIDYK
LSAgICBzYWwgcmJ4LCAzCi0gICAgc3ViIHJicCwgcmJ4Ci0gICAgbW92IHF3b3JkIHB0cltyYnBd
LCByYXgKLQotICAgIG1vdiByYXgsIDUKLQotY29weUhlYWRlckxvb3A6Ci0gICAgc3ViIHJheCwg
MQotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyOCArIHJheCAqIDhdCi0gICAgbW92IHF3b3JkIHB0
cltyYnAgKyByYXggKiA4ICsgMTZdLCByMTAKLSAgICB0ZXN0IHJheCwgcmF4Ci0gICAgam56IGNv
cHlIZWFkZXJMb29wCi0KLSAgICBtb3YgZWJ4LCBkd29yZCBwdHJbcjggKyAyNF0KLSAgICBzdWIg
cmJ4LCAxCi0gICAgbW92IHIxMGQsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIHN1YiByMTAsIDEK
LSAgICBjbXAgcmJ4LCByMTAKLSAgICBqZSBjb3B5QXJncwotICAgIG1vdiByYXgsIDBhaAotCi1m
aWxsRXh0cmFBcmdzTG9vcDoKLSAgICBzdWIgcjEwLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAg
KyByMTAgKiA4ICsgNTZdLCByYXgKLSAgICBjbXAgcmJ4LCByMTAKLSAgICBqbmUgZmlsbEV4dHJh
QXJnc0xvb3AKLQotY29weUFyZ3M6Ci0gICAgbW92IHJheCwgcXdvcmQgcHRyW3I4ICsgNDhdCi0K
LWNvcHlBcmdzTG9vcDoKLSAgICB0ZXN0IGVieCwgZWJ4Ci0gICAganogY29weUFyZ3NEb25lCi0g
ICAgc3ViIGVieCwgMQotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyYXggKyByYnggKiA4XQotICAg
IG1vdiBxd29yZCBwdHJbcmJwICsgcmJ4ICogOCArIDU2XSwgcjEwCi0gICAgam1wIGNvcHlBcmdz
TG9vcAotCi1jb3B5QXJnc0RvbmU6Ci0gICAgbW92IHF3b3JkIHB0cltyZHhdLCByYnAKLSAgICBt
b3YgcjE0LCAwRkZGRjAwMDAwMDAwMDAwMGgKLSAgICBtb3YgcjE1LCAwRkZGRjAwMDAwMDAwMDAw
MmgKLSAgICBjYWxsIHJjeAotICAgIGNtcCBxd29yZCBwdHJbcmJwICsgMTZdLCAxCi0gICAgamUg
Y2FsbGVlRnJhbWVQb3BwZWQKLSAgICBtb3YgcmJwLCBxd29yZCBwdHJbcmJwXQotCi1jYWxsZWVG
cmFtZVBvcHBlZDoKLSAgICBtb3YgcmJ4LCBxd29yZCBwdHJbcmJwICsgMzJdIDsgVk0udG9wQ2Fs
bEZyYW1lCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3JicCArIDI0XQotICAgIG1vdiBxd29yZCBw
dHJbcmJ4XSwgcjEwCi0gICAgYWRkIHJzcCwgMjhoCi0gICAgcG9wIHJkaQotICAgIHBvcCByc2kK
LSAgICBwb3AgcmJ4Ci0gICAgcG9wIHIxNQotICAgIHBvcCByMTQKLSAgICBwb3AgcjEzCi0gICAg
cG9wIHIxMgotICAgIHBvcCByYnAKLSAgICByZXQKLWNhbGxUb0phdmFTY3JpcHQgRU5EUAotCi1j
YWxsVG9OYXRpdmVGdW5jdGlvbiBQUk9DCi0gICAgOzsgVGhpcyBmdW5jdGlvbiBpcyBiZWxpZXZl
ZCB0byBiZSBhbiBhY2N1cmF0ZSBhZGFwdGF0aW9uIG9mIHRoZSBhc3NlbWJseSBjcmVhdGVkIGJ5
IHRoZSBsbGludCBzdHViIG9mIHRoZQotICAgIDs7IHNhbWUgbmFtZSB3aXRoIGNoYW5nZXMgZm9y
IGFyZ3VtZW50IHJlZ2lzdGVyIGRpZmZlcmVuY2VzLgotICAgIG1vdiByMTAsIHF3b3JkIHB0clty
c3BdCi0gICAgcHVzaCByYnAKLSAgICBtb3YgcmF4LCByYnAgOyBTYXZlIHByZXZpb3VzIGZyYW1l
IHBvaW50ZXIKLSAgICBtb3YgcmJwLCByc3AKLSAgICBwdXNoIHIxMgotICAgIHB1c2ggcjEzCi0g
ICAgcHVzaCByMTQKLSAgICBwdXNoIHIxNQotICAgIHB1c2ggcmJ4Ci0gICAgcHVzaCByc2kKLSAg
ICBwdXNoIHJkaQotCi0gICAgOyBKSVQgb3BlcmF0aW9ucyBjYW4gdXNlIHVwIHRvIDYgYXJncyAo
NCBpbiByZWdpc3RlcnMgYW5kIDIgb24gdGhlIHN0YWNrKS4KLSAgICA7IEluIGFkZGl0aW9uLCBY
ODZfNjQgQUJJIHNwZWNpZmllcyB0aGF0IHRoZSB3b3JzZSBjYXNlIHN0YWNrIGFsaWdubWVudAot
ICAgIDsgcmVxdWlyZW1lbnQgaXMgMzIgYnl0ZXMuIEJhc2VkIG9uIHRoZXNlIGZhY3RvcnMsIHdl
IG5lZWQgdG8gcGFkIHRoZSBzdGFjawotICAgIDsgYW4gYWRkaXRpb25hbCAyOGggYnl0ZXMuCi0g
ICAgc3ViIHJzcCwgMjhoCi0KLSAgICBtb3YgcmJwLCByOQotICAgIHN1YiByYnAsIDQwCi0gICAg
bW92IHF3b3JkIHB0cltyYnAgKyA0MF0sIDAKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDMyXSwg
cmR4Ci0KLSAgICBtb3YgcmF4LCBxd29yZCBwdHJbcmR4XQotICAgIG1vdiBxd29yZCBwdHJbcmJw
ICsgMjRdLCByYXgKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDE2XSwgMQotICAgIG1vdiBxd29y
ZCBwdHJbcmJwICsgOF0sIHIxMAotICAgIG1vdiBxd29yZCBwdHJbcmJwXSwgcmF4Ci0gICAgbW92
IHJheCwgcmJwCi0KLSAgICBtb3YgZWJ4LCBkd29yZCBwdHJbcjggKyA0MF0KLSAgICBhZGQgcmJ4
LCA2Ci0gICAgc2FsIHJieCwgMwotICAgIHN1YiByYnAsIHJieAotICAgIG1vdiBxd29yZCBwdHJb
cmJwXSwgcmF4Ci0KLSAgICBtb3YgcmF4LCA1Ci0KLWNvcHlIZWFkZXJMb29wOgotICAgIHN1YiBy
YXgsIDEKLSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcjggKyByYXggKiA4XQotICAgIG1vdiBxd29y
ZCBwdHJbcmJwICsgcmF4ICogOCArIDE2XSwgcjEwCi0gICAgdGVzdCByYXgsIHJheAotICAgIGpu
eiBjb3B5SGVhZGVyTG9vcAotCi0gICAgbW92IGVieCwgZHdvcmQgcHRyW3I4ICsgMjRdCi0gICAg
c3ViIHJieCwgMQotICAgIG1vdiByMTBkLCBkd29yZCBwdHJbcjggKyA0MF0KLSAgICBzdWIgcjEw
LCAxCi0gICAgY21wIHJieCwgcjEwCi0gICAgamUgY29weUFyZ3MKLSAgICBtb3YgcmF4LCAwYWgK
LQotZmlsbEV4dHJhQXJnc0xvb3A6Ci0gICAgc3ViIHIxMCwgMQotICAgIG1vdiBxd29yZCBwdHJb
cmJwICsgcjEwICogOCArIDU2XSwgcmF4Ci0gICAgY21wIHJieCwgcjEwCi0gICAgam5lIGZpbGxF
eHRyYUFyZ3NMb29wCi0KLWNvcHlBcmdzOgotICAgIG1vdiByYXgsIHF3b3JkIHB0cltyOCArIDQ4
XQotCi1jb3B5QXJnc0xvb3A6Ci0gICAgdGVzdCByYngsIHJieAotICAgIGp6IGNvcHlBcmdzRG9u
ZQotICAgIHN1YiByYngsIDEKLSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcmF4ICsgcmJ4ICogOF0K
LSAgICBtb3YgcXdvcmQgcHRyW3JicCArIHJieCAqIDggKyA1Nl0sIHIxMAotICAgIGptcCBjb3B5
QXJnc0xvb3AKLQotY29weUFyZ3NEb25lOgotICAgIG1vdiBxd29yZCBwdHJbcmR4XSwgcmJwCi0g
ICAgbW92IHIxNCwgMEZGRkYwMDAwMDAwMDAwMDBoCi0gICAgbW92IHIxNSwgMEZGRkYwMDAwMDAw
MDAwMDJoCi0KLSAgICBtb3YgcmF4LCByY3gKLSAgICBtb3YgcmN4LCByYnAKLSAgICBjYWxsIHJh
eAotCi0gICAgY21wIHF3b3JkIHB0cltyYnAgKyAxNl0sIDEKLSAgICBqZSBjYWxsZWVGcmFtZVBv
cHBlZAotICAgIG1vdiByYnAsIHF3b3JkIHB0cltyYnBdCi0KLWNhbGxlZUZyYW1lUG9wcGVkOgot
ICAgIG1vdiByYngsIHF3b3JkIHB0cltyYnAgKyAzMl0gOyBWTS50b3BDYWxsRnJhbWUKLSAgICBt
b3YgcjEwLCBxd29yZCBwdHJbcmJwICsgMjRdCi0gICAgbW92IHF3b3JkIHB0cltyYnhdLCByMTAK
LSAgICBhZGQgcnNwLCAyOGgKLSAgICBwb3AgcmRpCi0gICAgcG9wIHJzaQotICAgIHBvcCByYngK
LSAgICBwb3AgcjE1Ci0gICAgcG9wIHIxNAotICAgIHBvcCByMTMKLSAgICBwb3AgcjEyCi0gICAg
cG9wIHJicAotICAgIHJldAotY2FsbFRvTmF0aXZlRnVuY3Rpb24gRU5EUAotCi1yZXR1cm5Gcm9t
SmF2YVNjcmlwdCBQUk9DCi0gICAgYWRkIHJzcCwgMjhoCi0gICAgcG9wIHJkaQotICAgIHBvcCBy
c2kKLSAgICBwb3AgcmJ4Ci0gICAgcG9wIHIxNQotICAgIHBvcCByMTQKLSAgICBwb3AgcjEzCi0g
ICAgcG9wIHIxMgotICAgIHBvcCByYnAKLSAgICByZXQKLXJldHVybkZyb21KYXZhU2NyaXB0IEVO
RFAKLQkKLWdldEhvc3RDYWxsUmV0dXJuVmFsdWUgUFJPQwotICAgIG1vdiByYnAsIFtyYnBdIDsg
Q2FsbEZyYW1lCi0gICAgbW92IHJjeCwgcmJwIDsgcmN4IGlzIGZpcnN0IGFyZ3VtZW50IHJlZ2lz
dGVyIG9uIFdpbmRvd3MKLSAgICBqbXAgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3Rh
dGUKLWdldEhvc3RDYWxsUmV0dXJuVmFsdWUgRU5EUAotCi1fVEVYVCAgIEVORFMKLQotRU5ECklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic1g4Ni5oCShyZXZpc2lvbiAxNjI5
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIwMCwyMzAgKzIwMCw2IEBAIFNZTUJPTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJh
bXBvbGluZUVuZCkKIAogI2VuZGlmIC8vIENPTVBJTEVSKEdDQykKIAotI2lmIENPTVBJTEVSKE1T
VkMpCi0KLWV4dGVybiAiQyIgewotCi0gICAgLy8gRklYTUU6IFNpbmNlIFdpbmRvd3MgZG9lc24n
dCB1c2UgdGhlIExMSW50LCB3ZSBoYXZlIGlubGluZSBzdHVicyBoZXJlLgotICAgIC8vIFVudGls
IHRoZSBMTEludCBpcyBjaGFuZ2VkIHRvIHN1cHBvcnQgV2luZG93cywgdGhlc2Ugc3R1YiBuZWVk
cyB0byBiZSB1cGRhdGVkLgotICAgIF9fZGVjbHNwZWMobmFrZWQpIEVuY29kZWRKU1ZhbHVlIGNh
bGxUb0phdmFTY3JpcHQodm9pZCogY29kZSwgRXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwg
UmVnaXN0ZXIqKQotICAgIHsKLSAgICAgICAgX19hc20gewotICAgICAgICAgICAgbW92IGVkeCwg
W2VzcF0KLSAgICAgICAgICAgIHB1c2ggZWJwOwotICAgICAgICAgICAgbW92IGVheCwgZWJwOwot
ICAgICAgICAgICAgbW92IGVicCwgZXNwOwotICAgICAgICAgICAgcHVzaCBlc2k7Ci0gICAgICAg
ICAgICBwdXNoIGVkaTsKLSAgICAgICAgICAgIHB1c2ggZWJ4OwotICAgICAgICAgICAgc3ViIGVz
cCwgMHgxYzsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc3AgKyAweDM0XTsKLSAg
ICAgICAgICAgIG1vdiBlc2ksIGR3b3JkIHB0cltlc3AgKyAweDM4XTsKLSAgICAgICAgICAgIG1v
diBlYnAsIGR3b3JkIHB0cltlc3AgKyAweDNjXTsKLSAgICAgICAgICAgIHN1YiBlYnAsIDB4MjA7
Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MjRdLCAwOwotICAgICAgICAgICAg
bW92IGR3b3JkIHB0cltlYnAgKyAweDIwXSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJb
ZWJwICsgMHgxY10sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MThdLCBl
Y3g7Ci0gICAgICAgICAgICBtb3YgZWJ4LCBbZWN4XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBw
dHJbZWJwICsgMHgxNF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MTBd
LCBlYng7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4Y10sIDA7Ci0gICAgICAg
ICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4OF0sIDE7Ci0gICAgICAgICAgICBtb3YgZHdvcmQg
cHRyW2VicCArIDB4NF0sIGVkeDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwXSwgZWF4
OwotICAgICAgICAgICAgbW92IGVheCwgZWJwOwotCi0gICAgICAgICAgICBtb3YgZWR4LCBkd29y
ZCBwdHJbZXNpICsgMHgyOF07Ci0gICAgICAgICAgICBhZGQgZWR4LCA1OwotICAgICAgICAgICAg
c2FsIGVkeCwgMzsKLSAgICAgICAgICAgIHN1YiBlYnAsIGVkeDsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHJbZWJwXSwgZWF4OwotCi0gICAgICAgICAgICBtb3YgZWF4LCA1OwotCi0gICAgICAg
IGNvcHlIZWFkZXJMb29wOgotICAgICAgICAgICAgc3ViIGVheCwgMTsKLSAgICAgICAgICAgIG1v
diBlY3gsIGR3b3JkIHB0cltlc2kgKyBlYXggKiA4XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBw
dHIgOFtlYnAgKyBlYXggKiA4XSwgZWN4OwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRy
IDRbZXNpICsgZWF4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDEyW2VicCArIGVh
eCAqIDhdLCBlY3g7Ci0gICAgICAgICAgICB0ZXN0IGVheCwgZWF4OwotICAgICAgICAgICAgam56
IGNvcHlIZWFkZXJMb29wOwotCi0gICAgICAgICAgICBtb3YgZWR4LCBkd29yZCBwdHJbZXNpICsg
MHgxOF07Ci0gICAgICAgICAgICBzdWIgZWR4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdv
cmQgcHRyW2VzaSArIDB4MjhdOwotICAgICAgICAgICAgc3ViIGVjeCwgMTsKLQotICAgICAgICAg
ICAgY21wIGVkeCwgZWN4OwotICAgICAgICAgICAgamUgY29weUFyZ3M7Ci0KLSAgICAgICAgICAg
IHhvciBlYXgsIGVheDsKLSAgICAgICAgICAgIG1vdiBlYngsIC00OwotCi0gICAgICAgIGZpbGxF
eHRyYUFyZ3NMb29wOgotICAgICAgICAgICAgc3ViIGVjeCwgMTsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHIgMHgzMFtlYnAgKyBlY3ggKiA4XSwgZWF4OyAgICAgICAgICAgIAotICAgICAgICAg
ICAgbW92IGR3b3JkIHB0ciAweDM0W2VicCArIGVjeCAqIDhdLCBlYng7Ci0gICAgICAgICAgICBj
bXAgZWR4LCBlY3g7Ci0gICAgICAgICAgICBqbmUgZmlsbEV4dHJhQXJnc0xvb3A7Ci0KLSAgICAg
ICAgY29weUFyZ3M6Ci0gICAgICAgICAgICBtb3YgZWF4LCBkd29yZCBwdHJbZXNpICsgMHgyY107
Ci0KLSAgICAgICAgY29weUFyZ3NMb29wOgotICAgICAgICAgICAgdGVzdCBlZHgsIGVkeDsKLSAg
ICAgICAgICAgIGp6IGNvcHlBcmdzRG9uZTsKLSAgICAgICAgICAgIHN1YiBlZHgsIDE7Ci0gICAg
ICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHIgMFtlYXggKyBlZHggKiA4XTsKLSAgICAgICAgICAg
IG1vdiBlYngsIGR3b3JkIHB0ciA0W2VheCArIGVkeCAqIDhdOwotICAgICAgICAgICAgbW92IGR3
b3JkIHB0ciAweDMwW2VicCArIGVkeCAqIDhdLCBlY3g7Ci0gICAgICAgICAgICBtb3YgZHdvcmQg
cHRyIDB4MzRbZWJwICsgZWR4ICogOF0sIGVieDsKLSAgICAgICAgICAgIGptcCBjb3B5QXJnc0xv
b3A7Ci0KLSAgICAgICAgY29weUFyZ3NEb25lOgotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQg
cHRyW2VzcCArIDB4MzRdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlY3hdLCBlYnA7Ci0K
LSAgICAgICAgICAgIGNhbGwgZHdvcmQgcHRyW2VzcCArIDB4MzBdOwotCi0gICAgICAgICAgICBj
bXAgZHdvcmQgcHRyW2VicCArIDhdLCAxOwotICAgICAgICAgICAgamUgY2FsbGVlRnJhbWVQb3Bw
ZWQ7Ci0gICAgICAgICAgICBtb3YgZWJwLCBkd29yZCBwdHJbZWJwXTsKLQotICAgICAgICBjYWxs
ZWVGcmFtZVBvcHBlZDoKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlYnAgKyAweDE4
XTsKLSAgICAgICAgICAgIG1vdiBlYngsIGR3b3JkIHB0cltlYnAgKyAweDEwXTsKLSAgICAgICAg
ICAgIG1vdiBkd29yZCBwdHJbZWN4XSwgZWJ4OwotCi0gICAgICAgICAgICBhZGQgZXNwLCAweDFj
OwotICAgICAgICAgICAgcG9wIGVieDsKLSAgICAgICAgICAgIHBvcCBlZGk7Ci0gICAgICAgICAg
ICBwb3AgZXNpOwotICAgICAgICAgICAgcG9wIGVicDsKLSAgICAgICAgICAgIHJldDsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIF9fZGVjbHNwZWMobmFrZWQpIHZvaWQgcmV0dXJuRnJvbUphdmFT
Y3JpcHQoKQotICAgIHsKLSAgICAgICAgX19hc20gewotICAgICAgICAgICAgYWRkIGVzcCwgMHgx
YzsKLSAgICAgICAgICAgIHBvcCBlYng7Ci0gICAgICAgICAgICBwb3AgZWRpOwotICAgICAgICAg
ICAgcG9wIGVzaTsKLSAgICAgICAgICAgIHBvcCBlYnA7Ci0gICAgICAgICAgICByZXQ7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBfX2RlY2xzcGVjKG5ha2VkKSBFbmNvZGVkSlNWYWx1ZSBjYWxs
VG9OYXRpdmVGdW5jdGlvbih2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUq
LCBSZWdpc3RlciopCi0gICAgewotICAgICAgICBfX2FzbSB7Ci0gICAgICAgICAgICBtb3YgZWR4
LCBbZXNwXQotICAgICAgICAgICAgcHVzaCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWF4LCBlYnA7
Ci0gICAgICAgICAgICBtb3YgZWJwLCBlc3A7Ci0gICAgICAgICAgICBwdXNoIGVzaTsKLSAgICAg
ICAgICAgIHB1c2ggZWRpOwotICAgICAgICAgICAgcHVzaCBlYng7Ci0gICAgICAgICAgICBzdWIg
ZXNwLCAweDFjOwotICAgICAgICAgICAgbW92IGVjeCwgW2VzcCArIDB4MzRdOwotICAgICAgICAg
ICAgbW92IGVzaSwgW2VzcCArIDB4MzhdOwotICAgICAgICAgICAgbW92IGVicCwgW2VzcCArIDB4
M2NdOwotICAgICAgICAgICAgc3ViIGVicCwgMHgyMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBw
dHJbZWJwICsgMHgyNF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MjBd
LCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDFjXSwgMDsKLSAgICAgICAg
ICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxOF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBlYngs
IFtlY3hdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDE0XSwgMDsKLSAgICAg
ICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxMF0sIGVieDsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHJbZWJwICsgMHhjXSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsg
MHg4XSwgMTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHg0XSwgZWR4OwotICAg
ICAgICAgICAgbW92IGR3b3JkIHB0cltlYnBdLCBlYXg7Ci0gICAgICAgICAgICBtb3YgZWF4LCBl
YnA7Ci0KLSAgICAgICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltlc2kgKyAweDI4XTsKLSAgICAg
ICAgICAgIGFkZCBlZHgsIDU7Ci0gICAgICAgICAgICBzYWwgZWR4LCAzOwotICAgICAgICAgICAg
c3ViIGVicCwgZWR4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnBdLCBlYXg7Ci0KLSAg
ICAgICAgICAgIG1vdiBlYXgsIDU7Ci0KLSAgICAgICAgY29weUhlYWRlckxvb3A6Ci0gICAgICAg
ICAgICBzdWIgZWF4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzaSArIGVh
eCAqIDhdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciA4W2VicCArIGVheCAqIDhdLCBlY3g7
Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHIgNFtlc2kgKyBlYXggKiA4XTsKLSAgICAg
ICAgICAgIG1vdiBkd29yZCBwdHIgMTJbZWJwICsgZWF4ICogOF0sIGVjeDsKLSAgICAgICAgICAg
IHRlc3QgZWF4LCBlYXg7Ci0gICAgICAgICAgICBqbnogY29weUhlYWRlckxvb3A7Ci0KLSAgICAg
ICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltlc2kgKyAweDE4XTsKLSAgICAgICAgICAgIHN1YiBl
ZHgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNpICsgMHgyOF07Ci0gICAg
ICAgICAgICBzdWIgZWN4LCAxOwotCi0gICAgICAgICAgICBjbXAgZWR4LCBlY3g7Ci0gICAgICAg
ICAgICBqZSBjb3B5QXJnczsKLQotICAgICAgICAgICAgeG9yIGVheCwgZWF4OwotICAgICAgICAg
ICAgbW92IGVieCwgLTQ7Ci0KLSAgICAgICAgZmlsbEV4dHJhQXJnc0xvb3A6Ci0gICAgICAgICAg
ICBzdWIgZWN4LCAxOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDMwW2VicCArIGVjeCAq
IDhdLCBlYXg7ICAgICAgICAgICAgCi0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzRbZWJw
ICsgZWN4ICogOF0sIGVieDsKLSAgICAgICAgICAgIGNtcCBlZHgsIGVjeDsKLSAgICAgICAgICAg
IGpuZSBmaWxsRXh0cmFBcmdzTG9vcDsKLQotICAgICAgICBjb3B5QXJnczoKLSAgICAgICAgICAg
IG1vdiBlYXgsIGR3b3JkIHB0cltlc2kgKyAweDJjXTsKLQotICAgICAgICBjb3B5QXJnc0xvb3A6
Ci0gICAgICAgICAgICB0ZXN0IGVkeCwgZWR4OwotICAgICAgICAgICAganogY29weUFyZ3NEb25l
OwotICAgICAgICAgICAgc3ViIGVkeCwgMTsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0
ciAwW2VheCArIGVkeCAqIDhdOwotICAgICAgICAgICAgbW92IGVieCwgZHdvcmQgcHRyIDRbZWF4
ICsgZWR4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzBbZWJwICsgZWR4ICog
OF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzNFtlYnAgKyBlZHggKiA4XSwg
ZWJ4OwotICAgICAgICAgICAgam1wIGNvcHlBcmdzTG9vcDsKLQotICAgICAgICBjb3B5QXJnc0Rv
bmU6Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNwICsgMHgzNF07Ci0gICAgICAg
ICAgICBtb3YgZHdvcmQgcHRyW2VjeF0sIGVicDsKLQotICAgICAgICAgICAgbW92IGVkaSwgZHdv
cmQgcHRyW2VzcCArIDB4MzBdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlc3AgKyAweDMw
XSwgZWJwOwotICAgICAgICAgICAgbW92IGVjeCwgZWJwOwotICAgICAgICAgICAgY2FsbCBlZGk7
Ci0KLSAgICAgICAgICAgIGNtcCBkd29yZCBwdHJbZWJwICsgOF0sIDE7Ci0gICAgICAgICAgICBq
ZSBjYWxsZWVGcmFtZVBvcHBlZDsKLSAgICAgICAgICAgIG1vdiBlYnAsIGR3b3JkIHB0cltlYnBd
OwotCi0gICAgICAgIGNhbGxlZUZyYW1lUG9wcGVkOgotICAgICAgICAgICAgbW92IGVjeCwgZHdv
cmQgcHRyW2VicCArIDB4MThdOwotICAgICAgICAgICAgbW92IGVieCwgZHdvcmQgcHRyW2VicCAr
IDB4MTBdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlY3hdLCBlYng7Ci0KLSAgICAgICAg
ICAgIGFkZCBlc3AsIDB4MWM7Ci0gICAgICAgICAgICBwb3AgZWJ4OwotICAgICAgICAgICAgcG9w
IGVkaTsKLSAgICAgICAgICAgIHBvcCBlc2k7Ci0gICAgICAgICAgICBwb3AgZWJwOwotICAgICAg
ICAgICAgcmV0OwotICAgICAgICB9Ci0gICAgfQotfQotCi0jZW5kaWYgLy8gQ09NUElMRVIoTVNW
QykKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKSVRTdHVic1g4Nl9oCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUyLDYgKzUyLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3Rp
TmF0aQogI2VuZGlmCiAgICAgcmV0dXJuIGN0aVN0dWIodm0sIG5hdGl2ZUNhbGxHZW5lcmF0b3Ip
LmNvZGUoKTsKIH0KKwogTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZl
Q29uc3RydWN0KFZNKiB2bSkKIHsKICNpZiBFTkFCTEUoTExJTlQpCkBAIC02MSw2ICs2MiwxMiBA
QCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpCiAgICAgcmV0dXJuIGN0
aVN0dWIodm0sIG5hdGl2ZUNvbnN0cnVjdEdlbmVyYXRvcikuY29kZSgpOwogfQogCitNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVUYWlsQ2FsbChWTSogdm0pCit7Cisg
ICAgQVNTRVJUKHZtLT5jYW5Vc2VKSVQoKSk7CisgICAgcmV0dXJuIGN0aVN0dWIodm0sIG5hdGl2
ZVRhaWxDYWxsR2VuZXJhdG9yKS5jb2RlKCk7Cit9CisKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBK
SVRUaHVua3M6OmN0aVN0dWIoVk0qIHZtLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCiB7CiAg
ICAgTG9ja2VyIGxvY2tlcihtX2xvY2spOwpAQCAtODAsNyArODcsMTIgQEAgTmF0aXZlRXhlY3V0
YWJsZSogSklUVGh1bmtzOjpob3N0RnVuY3RpbwogICAgIGlmIChOYXRpdmVFeGVjdXRhYmxlKiBu
YXRpdmVFeGVjdXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5nZXQoc3RkOjptYWtlX3Bh
aXIoZnVuY3Rpb24sIGNvbnN0cnVjdG9yKSkpCiAgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRh
YmxlOwogCi0gICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4
ZWN1dGFibGU6OmNyZWF0ZSgqdm0sIEpJVDo6Y29tcGlsZUNUSU5hdGl2ZUNhbGwodm0sIGZ1bmN0
aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRD
b2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCh2bSkpLCBjb25zdHJ1Y3RvciwgTm9JbnRyaW5zaWMp
OworICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRh
YmxlOjpjcmVhdGUoCisgICAgICAgICp2bSwKKyAgICAgICAgYWRvcHRSZWYobmV3IE5hdGl2ZUpJ
VENvZGUoSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVuY3Rpb24pLCBKSVRDb2RlOjpI
b3N0Q2FsbFRodW5rKSksCisgICAgICAgIGZ1bmN0aW9uLAorICAgICAgICBhZG9wdFJlZihuZXcg
TmF0aXZlSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29k
ZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3Qodm0pKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpLAor
ICAgICAgICBjb25zdHJ1Y3RvciwgTm9JbnRyaW5zaWMpOwogICAgIHdlYWtBZGQoKm1faG9zdEZ1
bmN0aW9uU3R1Yk1hcCwgc3RkOjptYWtlX3BhaXIoZnVuY3Rpb24sIGNvbnN0cnVjdG9yKSwgV2Vh
azxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CiAgICAgcmV0dXJuIG5hdGl2
ZUV4ZWN1dGFibGU7CiB9CkBAIC05MiwxNiArMTA0LDE4IEBAIE5hdGl2ZUV4ZWN1dGFibGUqIEpJ
VFRodW5rczo6aG9zdEZ1bmN0aW8KICAgICBpZiAoTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhl
Y3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0KHN0ZDo6bWFrZV9wYWlyKGZ1bmN0
aW9uLCAmY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IpKSkKICAgICAgICAgcmV0dXJuIG5h
dGl2ZUV4ZWN1dGFibGU7CiAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY29kZTsKKyAgICBS
ZWZQdHI8SklUQ29kZT4gZm9yQ2FsbDsKICAgICBpZiAoZ2VuZXJhdG9yKSB7Ci0gICAgICAgIGlm
ICh2bS0+Y2FuVXNlSklUKCkpCi0gICAgICAgICAgICBjb2RlID0gZ2VuZXJhdG9yKHZtKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgY29kZSA9IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpOwor
ICAgICAgICBpZiAodm0tPmNhblVzZUpJVCgpKSB7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgZW50cnkgPSBnZW5lcmF0b3Iodm0pOworICAgICAgICAgICAgZm9yQ2FsbCA9IGFk
b3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKGVudHJ5LCBlbnRyeS5jb2RlKCksIEpJVENvZGU6Okhv
c3RDYWxsVGh1bmspKTsKKyAgICAgICAgfQogICAgIH0gZWxzZQotICAgICAgICBjb2RlID0gSklU
Ojpjb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVuY3Rpb24pOwotCi0gICAgTmF0aXZlRXhlY3V0
YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqdm0sIGNv
ZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29k
ZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3Qodm0pKSwgY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0
b3IsIGludHJpbnNpYyk7CisgICAgICAgIGZvckNhbGwgPSBhZG9wdFJlZihuZXcgTmF0aXZlSklU
Q29kZShKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5jdGlvbiksIEpJVENvZGU6Okhv
c3RDYWxsVGh1bmspKTsKKyAgICAKKyAgICBSZWZQdHI8SklUQ29kZT4gZm9yQ29uc3RydWN0ID0g
YWRvcHRSZWYobmV3IE5hdGl2ZUpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVT
ZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0aXZlQ29uc3RydWN0KHZtKSksIEpJVENvZGU6Okhvc3RD
YWxsVGh1bmspKTsKKyAgICAKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxl
ID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCp2bSwgZm9yQ2FsbCwgZnVuY3Rpb24sIGZvckNv
bnN0cnVjdCwgY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IsIGludHJpbnNpYyk7CiAgICAg
d2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHViTWFwLCBzdGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwg
JmNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9yKSwgV2VhazxOYXRpdmVFeGVjdXRhYmxlPihu
YXRpdmVFeGVjdXRhYmxlKSk7CiAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CiB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU0LDYgKzU0LDcgQEAgcHVibGljOgogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5h
dGl2ZUNhbGwoVk0qKTsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ29uc3Ry
dWN0KFZNKik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZVRhaWxDYWxsKFZN
Kik7ICAgIAogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIoVk0qLCBUaHVua0dl
bmVyYXRvcik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0
aW9uV3JhcHBlckdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMjMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRv
ci5oIgorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkFzc2VtYmx5SGVscGVycy5oIgor
I2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgorCitu
YW1lc3BhY2UgSlNDIHsKKworUmVnaXN0ZXJTZXQgcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpCit7Cisg
ICAgUmVnaXN0ZXJTZXQgY2FsbGVlU2F2ZXMgPSBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lz
dGVycygpOworICAgIAorICAgIC8vIE5vIG5lZWQgdG8gcHJlc2VydmUgRlAgc2luY2UgdGhhdCBh
bHdheXMgZ2V0cyBwcmVzZXJ2ZWQgYW55d2F5LgorICAgIGNhbGxlZVNhdmVzLmNsZWFyKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAKKyAgICByZXR1cm4gY2FsbGVlU2F2ZXM7Cit9
CisKK3B0cmRpZmZfdCByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpCit7CisgICAgdW5zaWdu
ZWQgbnVtYmVyT2ZDYWxsZWVTYXZlcyA9IHJlZ2lzdGVyc1RvUHJlc2VydmUoKS5udW1iZXJPZlNl
dFJlZ2lzdGVycygpOworICAgIAorICAgIC8vIE5lZWQgdG8gcHJlc2VydmUgdGhlIG9sZCByZXR1
cm4gUEMuCisgICAgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXNUb1NhdmUgPSBudW1iZXJPZkNhbGxl
ZVNhdmVzICsgMTsKKyAgICAKKyAgICAvLyBBbGlnbm1lbnQuIFByZXNlcnZlIHRoZSBzYW1lIGFs
aWdubWVudCBpbnZhcmlhbnRzIHRoYXQgdGhlIGNhbGxlciBpbXBvc2VkLgorICAgIHVuc2lnbmVk
IG51bWJlck9mTmV3U3RhY2tTbG90cyA9CisgICAgICAgIFdURjo6cm91bmRVcFRvTXVsdGlwbGVP
ZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBudW1iZXJPZlZhbHVlc1RvU2F2ZSk7CisgICAg
CisgICAgcmV0dXJuIHNpemVvZihSZWdpc3RlcikgKiBudW1iZXJPZk5ld1N0YWNrU2xvdHM7Cit9
CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZW5lcmF0ZVJlZ2lzdGVyUHJlc2VydmF0aW9uV3Jh
cHBlcihWTSYgdm0sIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgdGFyZ2V0KQoreworI2lmIEVOQUJMRShGVExfSklUKQorICAgIC8vIFdlIHNob3VsZG4n
dCBldmVyIGJlIGdlbmVyYXRpbmcgd3JhcHBlcnMgZm9yIG5hdGl2ZSBmdW5jdGlvbnMuCisgICAg
UmVnaXN0ZXJTZXQgdG9TYXZlID0gcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpOworICAgIHB0cmRpZmZf
dCBvZmZzZXQgPSByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpOworICAgIAorICAgIEFzc2Vt
Ymx5SGVscGVycyBqaXQoJnZtLCAwKTsKKyAgICAKKyAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRy
ZXNzQWZ0ZXJDYWxsKEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQubG9hZDMyKAorICAgICAgICBB
c3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQg
LSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5
bG9hZE9mZnNldCksCisgICAgICAgIEdQUkluZm86OnJlZ1QyKTsKKyAgICAKKyAgICAvLyBQbGFj
ZSB0aGUgc3RhY2sgcG9pbnRlciB3aGVyZSB3ZSB3YW50IGl0IHRvIGJlLgorICAgIGppdC5zdWJQ
dHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIob2Zmc2V0KSwgQXNzZW1ibHlIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCisgICAgLy8gQ29tcHV0ZSB0aGUgbnVtYmVy
IG9mIHRoaW5ncyB3ZSB3aWxsIGJlIGNvcHlpbmcuCisgICAgaml0LmFkZDMyKAorICAgICAgICBB
c3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigKKyAgICAgICAgICAgIEpTU3RhY2s6OkNhbGxG
cmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSksCisgICAgICAg
IEdQUkluZm86OnJlZ1QyKTsKKworICAgIEFTU0VSVCghdG9TYXZlLmdldChHUFJJbmZvOjpyZWdU
NCkpOworICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IEdQUkluZm86OnJlZ1Q0KTsKKyAgICAKKyAgICBBc3NlbWJseUhlbHBlcnM6OkxhYmVsIGxvb3Ag
PSBqaXQubGFiZWwoKTsKKyAgICBqaXQuc3ViMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoMSksIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6
QWRkcmVzcyhHUFJJbmZvOjpyZWdUNCwgb2Zmc2V0KSwgR1BSSW5mbzo6cmVnVDApOworICAgIGpp
dC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUNCk7CisgICAgaml0LmFkZFB0
cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5m
bzo6cmVnVDQpOworICAgIGppdC5icmFuY2hUZXN0MzIoQXNzZW1ibHlIZWxwZXJzOjpOb25aZXJv
LCBHUFJJbmZvOjpyZWdUMikubGlua1RvKGxvb3AsICZqaXQpOworCisgICAgLy8gQXQgdGhpcyBw
b2ludCByZWdUNCArIG9mZnNldCBwb2ludHMgdG8gd2hlcmUgd2Ugc2F2ZSB0aGluZ3MuCisgICAg
cHRyZGlmZl90IGN1cnJlbnRPZmZzZXQgPSAwOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpy
ZWdUMSwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Q0LCBjdXJyZW50T2Zm
c2V0KSk7CisgICAgCisgICAgZm9yIChHUFJSZWcgZ3ByID0gQXNzZW1ibHlIZWxwZXJzOjpmaXJz
dFJlZ2lzdGVyKCk7IGdwciA8PSBBc3NlbWJseUhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBncHIg
PSBzdGF0aWNfY2FzdDxHUFJSZWc+KGdwciArIDEpKSB7CisgICAgICAgIGlmICghdG9TYXZlLmdl
dChncHIpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0g
c2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICAgICAgaml0LnN0b3JlNjQoZ3ByLCBBc3NlbWJseUhlbHBl
cnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDQsIGN1cnJlbnRPZmZzZXQpKTsKKyAgICB9CisgICAg
CisgICAgLy8gQXNzdW1lIHRoYXQgdGhlcmUgYXJlbid0IGFueSBzYXZlZCBGUCByZWdpc3RlcnMu
CisgICAgCisgICAgLy8gUmVzdG9yZSB0aGUgdGFnIHJlZ2lzdGVycy4KKyAgICBqaXQubW92ZShB
c3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFn
VHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkNjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoVGFnTWFzayAtIFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVy
UmVnaXN0ZXIsIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CisgICAgCisgICAgaml0Lm1vdmUo
CisgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cigKKyAgICAgICAgICAgIHZt
LmdldENUSVN0dWIocmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9yKS5jb2RlKCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSksCisgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjApOworICAgIGpp
dC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpub25BcmdHUFIwKTsK
KyAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAganVtcCA9IGppdC5qdW1wKCk7CisgICAgCisgICAg
TGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgIGxp
bmtCdWZmZXIubGluayhqdW1wLCBDb2RlTG9jYXRpb25MYWJlbCh0YXJnZXQpKTsKKworICAgIGlm
IChPcHRpb25zOjp2ZXJib3NlRlRMVG9KU1RodW5rKCkpCisgICAgICAgIGRhdGFMb2coIk5lZWQg
YSB0aHVuayBmb3IgY2FsbHMgZnJvbSBGVEwgdG8gbm9uLUZUTCB2ZXJzaW9uIG9mICIsICpleGVj
dXRhYmxlLCAiXG4iKTsKKyAgICAKKyAgICByZXR1cm4gRklOQUxJWkVfREZHX0NPREUobGlua0J1
ZmZlciwgKCJSZWdpc3RlciBwcmVzZXJ2YXRpb24gd3JhcHBlciBmb3IgJXMvJXMsICVwIiwgdG9D
U3RyaW5nKGV4ZWN1dGFibGUtPmhhc2hGb3IoQ29kZUZvckNhbGwpKS5kYXRhKCksIHRvQ1N0cmlu
ZyhleGVjdXRhYmxlLT5oYXNoRm9yKENvZGVGb3JDb25zdHJ1Y3QpKS5kYXRhKCksIHRhcmdldC5l
eGVjdXRhYmxlQWRkcmVzcygpKSk7CisjZWxzZSAvLyBFTkFCTEUoRlRMX0pJVCkKKyAgICBVTlVT
RURfUEFSQU0odm0pOworICAgIFVOVVNFRF9QQVJBTShleGVjdXRhYmxlKTsKKyAgICBVTlVTRURf
UEFSQU0odGFyZ2V0KTsKKyAgICAvLyBXZSBkb24ndCBzdXBwb3J0IG5vbi1GVEwgYnVpbGRzIGZv
ciB0d28gcmVhc29uczoKKyAgICAvLyAtIEl0IGp1c3Qgc28gaGFwcGVucyB0aGF0IGN1cnJlbnRs
eSBvbmx5IHRoZSBGVEwgYm90dG9tcyBvdXQgaW4gdGhpcyBjb2RlLgorICAgIC8vIC0gVGhlIGNv
ZGUgYWJvdmUgdXNlcyA2NC1iaXQgaW5zdHJ1Y3Rpb25zLiBJdCBkb2Vzbid0IG5lY2Vzc2FyaWx5
IGhhdmUgdG87IGl0IHdvdWxkIGJlCisgICAgLy8gICBlYXN5IHRvIGNoYW5nZSBpdCBzbyB0aGF0
IGl0IGRvZXNuJ3QuIEJ1dCBvYnZpb3VzbHkgbWFraW5nIHRoYXQgY2hhbmdlIHdvdWxkIGJlIGEK
KyAgICAvLyAgIHByZXJlcXVpc2l0ZSB0byByZW1vdmluZyB0aGlzICNpZi4KKyAgICBVTlJFQUNI
QUJMRV9GT1JfUExBVEZPUk0oKTsKKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7
CisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCit9CisKK3N0YXRpYyB2b2lkIGdlbmVyYXRlUmVn
aXN0ZXJSZXN0b3JhdGlvbihBc3NlbWJseUhlbHBlcnMmIGppdCkKK3sKKyNpZiBFTkFCTEUoRlRM
X0pJVCkKKyAgICBSZWdpc3RlclNldCB0b1NhdmUgPSByZWdpc3RlcnNUb1ByZXNlcnZlKCk7Cisg
ICAgcHRyZGlmZl90IG9mZnNldCA9IHJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KCk7CisgICAg
CisgICAgQVNTRVJUKCF0b1NhdmUuZ2V0KEdQUkluZm86OnJlZ1Q0KSk7CisKKyAgICAvLyBXZSBu
ZWVkIHRvIHBsYWNlIHRoZSBzdGFjayBwb2ludGVyIGJhY2sgdG8gd2hlcmUgdGhlIGNhbGxlciB0
aG91Z2h0IHRoZXkgbGVmdCBpdC4KKyAgICAvLyBCdXQgYWxzbywgaW4gb3JkZXIgdG8gcmVjb3Zl
ciB0aGUgcmVnaXN0ZXJzLCB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IGJpZyB0aGUKKyAgICAv
LyBhcmd1bWVudHMgYXJlYSBpcy4KKyAgICAKKyAgICBqaXQubG9hZDMyKAorICAgICAgICBBc3Nl
bWJseUhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBK
U1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9h
ZE9mZnNldCksCisgICAgICAgIEdQUkluZm86OnJlZ1Q0KTsKKyAgICAKKyAgICBqaXQubW92ZShH
UFJJbmZvOjpyZWdUNCwgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5sc2hpZnQzMihBc3NlbWJs
eUhlbHBlcnM6OlRydXN0ZWRJbW0zMigzKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIAorICAgIGpp
dC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIob2Zmc2V0KSwgQXNzZW1ibHlI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihBc3NlbWJseUhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMik7CisgICAgCisgICAg
Ly8gV2Ugc2F2ZWQgdGhpbmdzIGF0OgorICAgIC8vCisgICAgLy8gICAgIGFkalNQICsgKEpTU3Rh
Y2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSAr
IE51bUFyZ3MpICogOAorICAgIC8vCisgICAgLy8gV2hlcmU6CisgICAgLy8KKyAgICAvLyAgICAg
YWRqU1AgPSBvcmlnU1AgLSBvZmZzZXQKKyAgICAvLworICAgIC8vIHJlZ1QyIG5vdyBwb2ludHMg
YXQ6CisgICAgLy8KKyAgICAvLyAgICAgb3JpZ1NQICsgTnVtQXJncyAqIDgKKyAgICAvLyAgID0g
YWRqU1AgKyBvZmZzZXQgKyBOdW1BcmdzICogOAorICAgIC8vIAorICAgIC8vIFNvIGlmIHdlIHN1
YnRyYWN0IG9mZnNldCBhbmQgdGhlbiBhZGQgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSBh
bmQgc3VidHJhY3QKKyAgICAvLyBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgd2UnbGwg
Z2V0IHRoZSB0aGluZyB3ZSB3YW50LgorICAgIHB0cmRpZmZfdCBjdXJyZW50T2Zmc2V0ID0gLW9m
ZnNldCArIHNpemVvZihSZWdpc3RlcikgKiAoCisgICAgICAgIEpTU3RhY2s6OkNhbGxGcmFtZUhl
YWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSk7CisgICAgaml0LmxvYWRQ
dHIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QyLCBjdXJyZW50T2Zmc2V0
KSwgR1BSSW5mbzo6cmVnVDEpOworICAgIAorICAgIGZvciAoR1BSUmVnIGdwciA9IEFzc2VtYmx5
SGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBncHIgPD0gQXNzZW1ibHlIZWxwZXJzOjpsYXN0UmVn
aXN0ZXIoKTsgZ3ByID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihncHIgKyAxKSkgeworICAgICAgICBp
ZiAoIXRvU2F2ZS5nZXQoZ3ByKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjdXJy
ZW50T2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CisgICAgICAgIGppdC5sb2FkNjQoQXNzZW1i
bHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QyLCBjdXJyZW50T2Zmc2V0KSwgZ3ByKTsK
KyAgICB9CisgICAgCisgICAgLy8gVGh1bmtzIGxpa2UgdGhpcyByZWx5IG9uIHRoZSBBcmd1bWVu
dENvdW50IGJlaW5nIGludGFjdC4gUGF5IGl0IGZvcndhcmQuCisgICAgaml0LnN0b3JlMzIoCisg
ICAgICAgIEdQUkluZm86OnJlZ1Q0LAorICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3Mo
CisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAorICAg
ICAgICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFu
ZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCkpOworICAgIAorICAg
IGlmICghQVNTRVJUX0RJU0FCTEVEKSB7CisgICAgICAgIEFzc2VtYmx5SGVscGVyczo6SnVtcCBv
ayA9IGppdC5icmFuY2hQdHIoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFib3ZlLCBH
UFJJbmZvOjpyZWdUMSwgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0YXRpY19jYXN0
PHNpemVfdD4oMHgxMDAwKSkpOworICAgICAgICBqaXQuYnJlYWtwb2ludCgpOworICAgICAgICBv
ay5saW5rKCZqaXQpOworICAgIH0KKyAgICAKKyAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMSk7
CisjZWxzZSAvLyBFTkFCTEUoRlRMX0pJVCkKKyAgICBVTlVTRURfUEFSQU0oaml0KTsKKyAgICBV
TlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKK30K
KworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRv
cihWTSogdm0pCit7CisgICAgQXNzZW1ibHlIZWxwZXJzIGppdCh2bSwgMCk7CisgICAgZ2VuZXJh
dGVSZWdpc3RlclJlc3RvcmF0aW9uKGppdCk7CisgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKCp2
bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09ERShsaW5r
QnVmZmVyLCAoIlJlZ2lzdGVyIHJlc3RvcmF0aW9uIHRodW5rIikpOworfQorCit9IC8vIG5hbWVz
cGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldy
YXBwZXJHZW5lcmF0b3IuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvcl9oCisj
ZGVmaW5lIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvcl9oCisKKyNpZiBFTkFC
TEUoSklUKQorCisjaW5jbHVkZSAiQXJpdHlDaGVja01vZGUuaCIKKyNpbmNsdWRlICJBc3NlbWJs
eUhlbHBlcnMuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKKyNpbmNsdWRl
ICJWTS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworUmVnaXN0ZXJTZXQgcmVnaXN0ZXJzVG9QcmVz
ZXJ2ZSgpOworCitwdHJkaWZmX3QgcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKTsKKworTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIGdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKFZN
JiwgRXhlY3V0YWJsZUJhc2UqLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgdGFyZ2V0KTsKKworTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcihWTSop
OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNlbmRp
ZiAvLyBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3JfaAorCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTUxLDExICs1MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogLy8gdGhhdCB3
b3VsZCBvcmRpbmFyaWx5IGhhdmUgd2VsbC1rbm93biB2YWx1ZXM6CiAvLyAtIHRhZ1R5cGVOdW1i
ZXJSZWdpc3RlcgogLy8gLSB0YWdNYXNrUmVnaXN0ZXIKLS8vIC0gY2FsbEZyYW1lUmVnaXN0ZXIg
KioKLS8vCi0vLyBXZSBjdXJyZW50bHkgb25seSB1c2UgdGhlIGNhbGxGcmFtZVJlZ2lzdGVyIGZv
ciBjbG9zdXJlIGNhbGwgcGF0Y2hpbmcsIGFuZCB3ZSdyZSBub3QgZ29pbmcgdG8KLS8vIGdpdmUg
dGhlIEZUTCBjbG9zdXJlIGNhbGwgcGF0Y2hpbmcgc3VwcG9ydCB1bnRpbCB3ZSBzd2l0Y2ggdG8g
dGhlIEMgc3RhY2sgLSBidXQgd2hlbiB3ZSBkbyB0aGF0LAotLy8gY2FsbEZyYW1lUmVnaXN0ZXIg
d2lsbCBkaXNhcHBlYXIuCiAKIHN0YXRpYyBGdW5jdGlvblB0ciByZWFkQ2FsbFRhcmdldChSZXBh
dGNoQnVmZmVyJiByZXBhdGNoQnVmZmVyLCBDb2RlTG9jYXRpb25DYWxsIGNhbGwpCiB7CkBAIC0y
OTgsMjMgKzI5MywyMyBAQCBzdGF0aWMgUHJvdG9DaGFpbkdlbmVyYXRpb25SZXN1bHQgZ2VuZXJh
CiAjZW5kaWYKICAgICAgICAgfQogICAgIH0KKwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIG9w
ZXJhdGlvbkNhbGw7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgaGFuZGxlckNhbGw7CiAgICAg
RnVuY3Rpb25QdHIgb3BlcmF0aW9uRnVuY3Rpb247CiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
c3VjY2VzcywgZmFpbDsKICAgICBpZiAoaXNBY2Nlc3NvcikgewotICAgICAgICBHUFJSZWcgY2Fs
bEZyYW1lUmVnaXN0ZXIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLmNhbGxG
cmFtZVJlZ2lzdGVyKTsKICAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVHZXR0ZXIoKSkgewot
ICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3Rlciwgc2Ny
YXRjaEdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKHNjcmF0Y2hHUFIsIHJlc3VsdEdQUik7CiAgICAgICAgICAgICBvcGVyYXRp
b25GdW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxHZXR0ZXI7CiAgICAgICAgIH0gZWxzZSB7CiAjaWYg
VVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIC8vIEVuY29kZWRKU1ZhbHVlICgqR2V0VmFsdWVG
dW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3Vt
ZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJv
dG9PYmplY3QpLCBzY3JhdGNoR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm9w
ZXJ0eU5hbWUuaW1wbCgpKSk7CisgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm90b09iamVjdCksIHNj
cmF0Y2hHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBs
KCkpKTsKICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0gRnVuY3Rpb25QdHIoc2xvdC5j
dXN0b21HZXR0ZXIoKSk7CiAjZWxzZQogICAgICAgICAgICAgc3R1YkppdC5tb3ZlKE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3RvT2JqZWN0KSwgc2NyYXRjaEdQUik7Ci0gICAgICAg
ICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBzY3JhdGNoR1BS
LAorICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoc2NyYXRj
aEdQUiwKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihGdW5j
dGlvblB0cihzbG90LmN1c3RvbUdldHRlcigpKS5leGVjdXRhYmxlQWRkcmVzcygpKSwKICAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1w
bCgpKSk7CiAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxDdXN0
b21HZXR0ZXI7CkBAIC0zNTAsOSArMzQ1LDEwIEBAIHN0YXRpYyBQcm90b0NoYWluR2VuZXJhdGlv
blJlc3VsdCBnZW5lcmEKICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhvcGVyYXRpb25DYWxsLCBv
cGVyYXRpb25GdW5jdGlvbik7CiAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoaGFuZGxlckNhbGws
IGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpOwogICAgIH0KLSAgICBzdHViUm91dGluZSA9IEZJTkFM
SVpFX0NPREVfRk9SX0RGR19TVFVCKAotICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgKCJE
RkcgcHJvdG90eXBlIGNoYWluIGFjY2VzcyBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwK
KyAgICAKKyAgICBzdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAg
IGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgKCJQcm90b3R5cGUgY2hh
aW4gYWNjZXNzIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgdG9D
U3RyaW5nKCpleGVjLT5jb2RlQmxvY2soKSkuZGF0YSgpLCBzdWNjZXNzTGFiZWwuZXhlY3V0YWJs
ZUFkZHJlc3MoKSkpOwogICAgIHJldHVybiBQcm90b0NoYWluR2VuZXJhdGlvblN1Y2NlZWRlZDsK
IH0KQEAgLTQxMiw5ICs0MDgsOSBAQCBzdGF0aWMgYm9vbCB0cnlDYWNoZUdldEJ5SUQoRXhlY1N0
YXRlKiBlCiAgICAgICAgIAogICAgICAgICBsaW5rUmVzdG9yZVNjcmF0Y2gocGF0Y2hCdWZmZXIs
IG5lZWRUb1Jlc3RvcmVTY3JhdGNoLCBzdHViSW5mbywgc3VjY2VzcywgZmFpbCwgZmFpbHVyZUNh
c2VzKTsKICAgICAgICAgCi0gICAgICAgIHN0dWJJbmZvLnN0dWJSb3V0aW5lID0gRklOQUxJWkVf
Q09ERV9GT1JfREZHX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgICAg
ICgiREZHIEdldEJ5SWQgYXJyYXkgbGVuZ3RoIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAi
LAorICAgICAgICBzdHViSW5mby5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIo
CisgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisgICAgICAgICAg
ICAoIkdldEJ5SWQgYXJyYXkgbGVuZ3RoIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAog
ICAgICAgICAgICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwgc3R1
YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoCiAgICAgICAgICAgICAgICAg
ICAgIHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkuZXhlY3V0YWJsZUFkZHJlc3MoKSkp
OwogICAgICAgICAKQEAgLTU3Miw3ICs1NjgsNiBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5
SURMaXN0KEV4ZWNTdGF0CiAgICAgICAgIAogICAgICAgICBzdHViSW5mby51LmdldEJ5SWRTZWxm
TGlzdC5saXN0U2l6ZSsrOwogICAgICAgICAKLSAgICAgICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lz
dGVyID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5jYWxsRnJhbWVSZWdpc3Rl
cik7CiAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5m
by5wYXRjaC5iYXNlR1BSKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBHUFJSZWcg
cmVzdWx0VGFnR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1ZVRh
Z0dQUik7CkBAIC01OTYsNiArNTkxLDEwIEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJRExp
c3QoRXhlY1N0YXQKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzczsKICAgICAg
ICAgCiAgICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlR2V0dGVyKCkgfHwgc2xvdC5pc0NhY2hl
YWJsZUN1c3RvbSgpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBjb2RlIHNob3VsZG4n
dCBiZSBhc3N1bWluZyB0aGF0IHRoZSB0b3Agb2Ygc3RhY2sgaXMgc2V0IHVwIGZvciBKU0MKKyAg
ICAgICAgICAgIC8vIEpJVC1zdHlsZSBDIGNhbGxzLCBzaW5jZSB3ZSBtYXkgYmUgY3VycmVudGx5
IG9uIHRvcCBvZiBhbiBGVEwgZnJhbWUuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NzExCisgICAgICAgICAgICAKICAgICAgICAgICAg
IGlmIChzbG90LmlzQ2FjaGVhYmxlR2V0dGVyKCkpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQo
c2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoYmFz
ZUdQUiAhPSBzY3JhdGNoR1BSKTsKQEAgLTYxMywxNiArNjEyLDE2IEBAIHN0YXRpYyBib29sIHRy
eUJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXQKICAgICAgICAgICAgICAgICAgICAgc3R1YkppdC5s
b2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc2NyYXRjaEdQUiwgb2Zmc2V0UmVsYXRpdmVU
b0Jhc2Uoc2xvdC5jYWNoZWRPZmZzZXQoKSkpLCBzY3JhdGNoR1BSKTsKICNlbmRpZgogICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxG
cmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBzdHVi
Sml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShiYXNlR1BSLCBzY3JhdGNoR1BSKTsKICAg
ICAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxHZXR0ZXI7CiAg
ICAgICAgICAgICB9IGVsc2UgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICAgICAg
Ly8gRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0g
ICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3Rlciwg
YmFzZUdQUiwgYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1w
bCgpKSk7CisgICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoYmFzZUdQUiwgYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoaWRlbnQu
aW1wbCgpKSk7CiAgICAgICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBGdW5jdGlvblB0
cihzbG90LmN1c3RvbUdldHRlcigpKTsKICNlbHNlCi0gICAgICAgICAgICAgICAgc3R1YkppdC5z
ZXR1cEFyZ3VtZW50cygKLSAgICAgICAgICAgICAgICAgICAgY2FsbEZyYW1lUmVnaXN0ZXIsIGJh
c2VHUFIsCisgICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoCisgICAgICAgICAgICAgICAgICAgIGJhc2VHUFIsCiAgICAgICAgICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEZ1bmN0aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVy
KCkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLAogICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKICAgICAgICAgICAgICAgICBvcGVy
YXRpb25GdW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxDdXN0b21HZXR0ZXI7CkBAIC02NDQsNyArNjQz
LDcgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdAogI2VuZGlmCiAg
ICAgICAgICAgICBzdWNjZXNzID0gc3R1YkppdC5lbWl0RXhjZXB0aW9uQ2hlY2soQ0NhbGxIZWxw
ZXJzOjpJbnZlcnRlZEV4Y2VwdGlvbkNoZWNrKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAg
c3R1YkppdC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOworICAgICAgICAgICAgc3R1YkppdC5z
ZXR1cEFyZ3VtZW50cyhDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodm0pLCBHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgICAgICBoYW5kbGVyQ2FsbCA9IHN0dWJKaXQuY2Fs
bCgpOwogICAgICAgICAgICAgc3R1YkppdC5qdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CiAgICAg
ICAgIH0gZWxzZSB7CkBAIC02ODQsOSArNjgzLDkgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRC
eUlETGlzdChFeGVjU3RhdAogICAgICAgICAKICAgICAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5l
PiBzdHViUm91dGluZSA9CiAgICAgICAgICAgICBjcmVhdGVKSVRTdHViUm91dGluZSgKLSAgICAg
ICAgICAgICAgICBGSU5BTElaRV9ERkdfQ09ERSgKLSAgICAgICAgICAgICAgICAgICAgcGF0Y2hC
dWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICgiREZHIEdldEJ5SWQgcG9seW1vcnBoaWMgbGlz
dCBhY2Nlc3MgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAorICAgICAgICAgICAgICAgIEZJTkFM
SVpFX0NPREVfRk9SKAorICAgICAgICAgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0
Y2hCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICgiR2V0QnlJZCBwb2x5bW9ycGhpYyBsaXN0
IGFjY2VzcyBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9jaygpKS5kYXRhKCksIHN0dWJJbmZvLmNhbGxSZXR1
cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpLAogICAg
ICAgICAgICAgICAgICp2bSwKQEAgLTc3NSw3ICs3NzQsNyBAQCBzdGF0aWMgVl9KSVRPcGVyYXRp
b25fRVNzaUpKSSBhcHByb3ByaWF0CiB9CiAKICNpZiBFTkFCTEUoR0dDKQotc3RhdGljIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIoQ0NhbGxIZWxwZXJzJiBq
aXQsIEdQUlJlZyBjZWxsLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwgR1BSUmVn
IGNhbGxGcmFtZVJlZ2lzdGVyLCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3ImIGFsbG9jYXRvcikK
K3N0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKEND
YWxsSGVscGVycyYgaml0LCBHUFJSZWcgY2VsbCwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2Ny
YXRjaDIsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciYgYWxsb2NhdG9yKQogewogICAgIEFTU0VS
VChzY3JhdGNoMSAhPSBzY3JhdGNoMik7CiAgICAgV3JpdGVCYXJyaWVyQnVmZmVyKiB3cml0ZUJh
cnJpZXJCdWZmZXIgPSAmaml0LnZtKCktPmhlYXAud3JpdGVCYXJyaWVyQnVmZmVyKCk7CkBAIC04
MDgsNyArODA3LDcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0ZQog
ICAgIGlmIChieXRlc1RvU3VidHJhY3QpCiAgICAgICAgIGppdC5zdWJQdHIoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMihieXRlc1RvU3VidHJhY3QpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOyAKIAotICAgIGppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdp
c3RlciwgY2VsbCk7CisgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShjZWxsKTsK
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gaml0LmNhbGwoKTsKIAogICAgIGlmIChi
eXRlc1RvU3VidHJhY3QpCkBAIC04MjAsMTMgKzgxOSwxMyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgc3RvcmVUb1dyaXRlCiAgICAgcmV0dXJuIGNhbGw7CiB9CiAKLXN0YXRpYyBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBv
d25lciwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIEdQUlJlZyBjYWxsRnJhbWVS
ZWdpc3RlciwgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBhbGxvY2F0b3IpCitzdGF0aWMgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcg
b3duZXIsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyLCBTY3JhdGNoUmVnaXN0ZXJB
bGxvY2F0b3ImIGFsbG9jYXRvcikKIHsKICAgICBBU1NFUlQob3duZXIgIT0gc2NyYXRjaDEpOwog
ICAgIEFTU0VSVChvd25lciAhPSBzY3JhdGNoMik7CiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBkZWZpbml0ZWx5Tm90TWFya2VkID0gREZHOjpTcGVjdWxhdGl2ZUpJVDo6Z2VuZXJpY1dyaXRl
QmFycmllcihqaXQsIG93bmVyLCBzY3JhdGNoMSwgc2NyYXRjaDIpOwotICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGwgPSBzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKGppdCwgb3duZXIsIHNj
cmF0Y2gxLCBzY3JhdGNoMiwgY2FsbEZyYW1lUmVnaXN0ZXIsIGFsbG9jYXRvcik7CisgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIoaml0LCBv
d25lciwgc2NyYXRjaDEsIHNjcmF0Y2gyLCBhbGxvY2F0b3IpOwogICAgIGRlZmluaXRlbHlOb3RN
YXJrZWQubGluaygmaml0KTsKICAgICByZXR1cm4gY2FsbDsKIH0KQEAgLTg0NCw5ICs4NDMsNiBA
QCBzdGF0aWMgdm9pZCBlbWl0UHV0UmVwbGFjZVN0dWIoCiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0
aW5lPiYgc3R1YlJvdXRpbmUpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0jaWYgRU5B
QkxFKEdHQykKLSAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBzdGF0aWNfY2FzdDxHUFJS
ZWc+KHN0dWJJbmZvLnBhdGNoLmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSNlbmRpZgogICAgIEdQUlJl
ZyBiYXNlR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5iYXNlR1BSKTsK
ICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHN0YXRpY19j
YXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2gudmFsdWVUYWdHUFIpOwpAQCAtODkzLDcgKzg4OSw3
IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRSZXBsYWNlU3R1YigKICNlbmRpZgogICAgIAogI2lmIEVO
QUJMRShHR0MpCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyT3BlcmF0aW9u
ID0gd3JpdGVCYXJyaWVyKHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0Y2hHUFIxLCBzY3JhdGNoR1BS
MiwgY2FsbEZyYW1lUmVnaXN0ZXIsIGFsbG9jYXRvcik7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgd3JpdGVCYXJyaWVyT3BlcmF0aW9uID0gd3JpdGVCYXJyaWVyKHN0dWJKaXQsIGJhc2VHUFIs
IHNjcmF0Y2hHUFIxLCBzY3JhdGNoR1BSMiwgYWxsb2NhdG9yKTsKICNlbmRpZgogICAgIAogICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIHN1Y2Nlc3M7CkBAIC05MTgsOSArOTE0LDkgQEAgc3RhdGlj
IHZvaWQgZW1pdFB1dFJlcGxhY2VTdHViKAogICAgIHBhdGNoQnVmZmVyLmxpbmsoc3VjY2Vzcywg
c3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoc3R1YkluZm8ucGF0Y2gu
ZGVsdGFDYWxsVG9Eb25lKSk7CiAgICAgcGF0Y2hCdWZmZXIubGluayhmYWlsdXJlLCBmYWlsdXJl
TGFiZWwpOwogICAgICAgICAgICAgCi0gICAgc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZP
Ul9ERkdfU1RVQigKLSAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICgiREZHIFB1dEJ5SWQg
cmVwbGFjZSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICBzdHViUm91dGluZSA9
IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRj
aEJ1ZmZlciwKKyAgICAgICAgKCJQdXRCeUlkIHJlcGxhY2Ugc3R1YiBmb3IgJXMsIHJldHVybiBw
b2ludCAlcCIsCiAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9jaygpKS5kYXRh
KCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KAogICAgICAgICAg
ICAgICAgIHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkuZXhlY3V0YWJsZUFkZHJlc3Mo
KSkpOwogfQpAQCAtOTQwLDcgKzkzNiw2IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRUcmFuc2l0aW9u
U3R1YigKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKIAotICAgIEdQUlJlZyBjYWxsRnJh
bWVSZWdpc3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guY2FsbEZyYW1l
UmVnaXN0ZXIpOwogICAgIEdQUlJlZyBiYXNlR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHVi
SW5mby5wYXRjaC5iYXNlR1BSKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIEdQUlJlZyB2
YWx1ZVRhZ0dQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2gudmFsdWVUYWdH
UFIpOwpAQCAtMTA2MCw3ICsxMDU1LDcgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFRyYW5zaXRpb25T
dHViKAogI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKEdHQykKLSAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCB3cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJpZXIoc3R1YkppdCwgYmFzZUdQ
Uiwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBjYWxsRnJhbWVSZWdpc3RlciwgYWxsb2NhdG9y
KTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0
ZUJhcnJpZXIoc3R1YkppdCwgYmFzZUdQUiwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBhbGxv
Y2F0b3IpOwogI2VuZGlmCiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzczsK
QEAgLTEwODYsOSArMTA4MSw5IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRUcmFuc2l0aW9uU3R1YigK
ICAgICAgICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVy
Rm9yU2l6ZShhbGxvY2F0b3IuZGVzaXJlZFNjcmF0Y2hCdWZmZXJTaXplKCkpOwogICAgICAgICBh
bGxvY2F0b3IucHJlc2VydmVVc2VkUmVnaXN0ZXJzVG9TY3JhdGNoQnVmZmVyKHN0dWJKaXQsIHNj
cmF0Y2hCdWZmZXIsIHNjcmF0Y2hHUFIxKTsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBz
dHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKHNsb3QuY2FjaGVkT2Zmc2V0KCkpLCB2YWx1ZUdQUik7CisgICAgICAgIHN0dWJKaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tUHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5j
YWNoZWRPZmZzZXQoKSksIHZhbHVlR1BSKTsKICNlbHNlCi0gICAgICAgIHN0dWJKaXQuc2V0dXBB
cmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tUHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5j
YWNoZWRPZmZzZXQoKSksIHZhbHVlR1BSLCB2YWx1ZVRhZ0dQUik7CisgICAgICAgIHN0dWJKaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tUHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5j
YWNoZWRPZmZzZXQoKSksIHZhbHVlR1BSLCB2YWx1ZVRhZ0dQUik7CiAjZW5kaWYKICAgICAgICAg
b3BlcmF0aW9uQ2FsbCA9IHN0dWJKaXQuY2FsbCgpOwogICAgICAgICBhbGxvY2F0b3IucmVzdG9y
ZVVzZWRSZWdpc3RlcnNGcm9tU2NyYXRjaEJ1ZmZlcihzdHViSml0LCBzY3JhdGNoQnVmZmVyLCBz
Y3JhdGNoR1BSMSk7CkBAIC0xMTExLDkgKzExMDYsOSBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0VHJh
bnNpdGlvblN0dWIoCiAgICAgCiAgICAgc3R1YlJvdXRpbmUgPQogICAgICAgICBjcmVhdGVKSVRT
dHViUm91dGluZSgKLSAgICAgICAgICAgIEZJTkFMSVpFX0RGR19DT0RFKAotICAgICAgICAgICAg
ICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAgICAgICAgICgiREZHIFB1dEJ5SWQgJXN0cmFuc2l0
aW9uIHN0dWIgKCVwIC0+ICVwKSBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCisgICAgICAgICAg
ICBGSU5BTElaRV9DT0RFX0ZPUigKKyAgICAgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwg
cGF0Y2hCdWZmZXIsCisgICAgICAgICAgICAgICAgKCJQdXRCeUlkICVzdHJhbnNpdGlvbiBzdHVi
ICglcCAtPiAlcCkgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3R1cmUtPm91dE9mTGluZUNhcGFjaXR5KCkgIT0gb2xkU3RydWN0dXJlLT5vdXRPZkxp
bmVDYXBhY2l0eSgpID8gInJlYWxsb2NhdGluZyAiIDogIiIsCiAgICAgICAgICAgICAgICAgICAg
IG9sZFN0cnVjdHVyZSwgc3RydWN0dXJlLAogICAgICAgICAgICAgICAgICAgICB0b0NTdHJpbmco
KmV4ZWMtPmNvZGVCbG9jaygpKS5kYXRhKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5s
YWJlbEF0T2Zmc2V0KApAQCAtMTM5NCw5ICsxMzg5LDkgQEAgc3RhdGljIGJvb2wgdHJ5UmVwYXRj
aEluKAogCiAgICAgICAgIGxpbmtSZXN0b3JlU2NyYXRjaChwYXRjaEJ1ZmZlciwgbmVlZFRvUmVz
dG9yZVNjcmF0Y2gsIHN1Y2Nlc3MsIGZhaWwsIGZhaWx1cmVDYXNlcywgc3VjY2Vzc0xhYmVsLCBz
bG93Q2FzZUxhYmVsKTsKICAgICAgICAgCi0gICAgICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVf
Q09ERV9GT1JfREZHX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgICAg
ICgiREZHIEluIChmb3VuZCA9ICVzKSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAg
ICAgICAgc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICAgICAg
ZXhlYy0+Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAgKCJJbiAoZm91bmQg
PSAlcykgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICAgICAgd2Fz
Rm91bmQgPyAieWVzIiA6ICJubyIsIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEo
KSwKICAgICAgICAgICAgICAgICBzdWNjZXNzTGFiZWwuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwog
ICAgIH0KQEAgLTE0MTksMTcgKzE0MTQsMTkgQEAgdm9pZCByZXBhdGNoSW4oCiAgICAgcmVwYXRj
aENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgb3Bl
cmF0aW9uSW4pOwogfQogCi1zdGF0aWMgdm9pZCBsaW5rU2xvd0ZvcihSZXBhdGNoQnVmZmVyJiBy
ZXBhdGNoQnVmZmVyLCBWTSogdm0sIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQpCitzdGF0aWMgdm9pZCBsaW5rU2xvd0ZvcigKKyAgICBSZXBh
dGNoQnVmZmVyJiByZXBhdGNoQnVmZmVyLCBWTSogdm0sIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJ
bmZvLAorICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Nb2RlIHJlZ2lzdGVycykKIHsKLSAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewotICAg
ICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9u
LCB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3Qp
OwotICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRp
b24sIHZtLT5nZXRDVElTdHViKHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgp
KTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGluaygKKyAgICAgICAgY2FsbExpbmtJbmZvLmNhbGxS
ZXR1cm5Mb2NhdGlvbiwKKyAgICAgICAgdm0tPmdldENUSVN0dWIodmlydHVhbFRodW5rR2VuZXJh
dG9yRm9yKGtpbmQsIHJlZ2lzdGVycykpLmNvZGUoKSk7CiB9CiAKLXZvaWQgbGlua0ZvcihFeGVj
U3RhdGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlQmxvY2sqIGNhbGxl
ZUNvZGVCbG9jaywgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29k
ZVB0ciwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQordm9pZCBsaW5rRm9yKAorICAgIEV4
ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2Fs
bGVlQ29kZUJsb2NrLAorICAgIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGNvZGVQdHIsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwKKyAgICBSZWdpc3RlclBy
ZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIEFTU0VSVCghY2FsbExpbmtJbmZvLnN0
dWIpOwogICAgIApAQCAtMTQ0NSwzMSArMTQ0MiwzOCBAQCB2b2lkIGxpbmtGb3IoRXhlY1N0YXRl
KiBleGVjLCBDYWxsTGlua0luCiAgICAgQVNTRVJUKCFjYWxsTGlua0luZm8uaXNMaW5rZWQoKSk7
CiAgICAgY2FsbExpbmtJbmZvLmNhbGxlZS5zZXQoZXhlYy0+Y2FsbGVyRnJhbWUoKS0+dm0oKSwg
Y2FsbExpbmtJbmZvLmhvdFBhdGhCZWdpbiwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFi
bGUoKSwgY2FsbGVlKTsKICAgICBjYWxsTGlua0luZm8ubGFzdFNlZW5DYWxsZWUuc2V0KGV4ZWMt
PmNhbGxlckZyYW1lKCktPnZtKCksIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCks
IGNhbGxlZSk7CisgICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihjYWxsZXJDb2RlQmxv
Y2spKQorICAgICAgICBkYXRhTG9nKCJMaW5raW5nIGNhbGwgaW4gIiwgKmNhbGxlckNvZGVCbG9j
aywgIiBhdCAiLCBjYWxsTGlua0luZm8uY29kZU9yaWdpbiwgIiB0byAiLCBwb2ludGVyRHVtcChj
YWxsZWVDb2RlQmxvY2spLCAiLCBlbnRyeXBvaW50IGF0ICIsIGNvZGVQdHIsICJcbiIpOwogICAg
IHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5ob3RQYXRoT3RoZXIsIGNvZGVQdHIp
OwogICAgIAogICAgIGlmIChjYWxsZWVDb2RlQmxvY2spCiAgICAgICAgIGNhbGxlZUNvZGVCbG9j
ay0+bGlua0luY29taW5nQ2FsbChleGVjLT5jYWxsZXJGcmFtZSgpLCAmY2FsbExpbmtJbmZvKTsK
ICAgICAKICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewotICAgICAgICByZXBhdGNoQnVm
ZmVyLnJlbGluayhjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1
YihsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICAgICAgcmVwYXRj
aEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENU
SVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3JGb3IocmVnaXN0ZXJzKSkuY29kZSgp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICBBU1NFUlQoa2luZCA9PSBDb2Rl
Rm9yQ29uc3RydWN0KTsKLSAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExp
bmtJbmZvLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVy
LCB2bSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ29uc3RydWN0LCByZWdpc3RlcnMpOwogfQogCi12
b2lkIGxpbmtTbG93Rm9yKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0lu
Zm8sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK3ZvaWQgbGlua1Nsb3dGb3IoCisgICAg
RXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kLAorICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMp
CiB7CiAgICAgQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2sgPSBleGVjLT5jYWxsZXJGcmFtZSgp
LT5jb2RlQmxvY2soKTsKICAgICBWTSogdm0gPSBjYWxsZXJDb2RlQmxvY2stPnZtKCk7CiAgICAg
CiAgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNhbGxlckNvZGVCbG9jayk7CiAgICAg
Ci0gICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywga2luZCk7
CisgICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywga2luZCwg
cmVnaXN0ZXJzKTsKIH0KIAotdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBD
YWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSwgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGNvZGVQdHIpCit2b2lkIGxpbmtDbG9zdXJlQ2FsbCgKKyAgICBFeGVjU3Rh
dGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlQmxvY2sqIGNhbGxlZUNv
ZGVCbG9jaywKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1
dGFibGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyLAorICAgIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgQVNTRVJUKCFjYWxsTGlua0luZm8uc3R1Yik7
CiAgICAgCkBAIC0xNDgyLDYgKzE0ODYsMTUgQEAgdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0
YXRlKiBleGVjLCBDYQogICAgIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7
CiAgICAgCisgICAgcHRyZGlmZl90IG9mZnNldFRvRnJhbWUgPSAtc2l6ZW9mKENhbGxlckZyYW1l
QW5kUEMpOworCisgICAgaWYgKCFBU1NFUlRfRElTQUJMRUQpIHsKKyAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIG9rQXJndW1lbnRDb3VudCA9IHN0dWJKaXQuYnJhbmNoMzIoCisgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkJlbG93LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVn
aXN0ZXIpICogSlNTdGFjazo6QXJndW1lbnRDb3VudCkgKyBvZmZzZXRUb0ZyYW1lICsgUGF5bG9h
ZE9mZnNldCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEwMDAwMDAwKSk7CisgICAgICAg
IHN0dWJKaXQuYnJlYWtwb2ludCgpOworICAgICAgICBva0FyZ3VtZW50Q291bnQubGluaygmc3R1
YkppdCk7CisgICAgfQorICAgICAgICAgICAgCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAvLyBX
ZSBjYW4gc2FmZWx5IGNsb2JiZXIgZXZlcnl0aGluZyBleGNlcHQgdGhlIGNhbGxlZUdQUi4gV2Ug
Y2FuJ3QgcmVseSBvbiB0YWdNYXNrUmVnaXN0ZXIKICAgICAvLyBiZWluZyBzZXQuIFNvIHdlIGRv
IHRoaXMgdGhlIGhhcmQgd2F5LgpAQCAtMTUwNywxOCArMTUyMCwxOCBAQCB2b2lkIGxpbmtDbG9z
dXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIENhCiAgICAgc3R1YkppdC5sb2FkUHRyKAogICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY2FsbGVlR1BSLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNj
b3BlQ2hhaW4oKSksCiAgICAgICAgIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKLQorICAgIAog
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3R1YkppdC5zdG9yZTY0KAogICAgICAgICBHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3Rl
cikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSkpOworICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSArIG9mZnNldFRv
RnJhbWUpKTsKICNlbHNlCiAgICAgc3R1YkppdC5zdG9yZVB0cigKICAgICAgICAgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIp
ICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVz
Y3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7CisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVz
cyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRp
ZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JKRUNUX09G
RlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSArIG9mZnNldFRv
RnJhbWUpKTsKICAgICBzdHViSml0LnN0b3JlMzIoCiAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6
ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JKRUNUX09GRlNFVE9GKEVu
Y29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSk7CisgICAgICAgIENDYWxsSGVscGVy
czo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19j
YXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsg
T0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpICsgb2Zm
c2V0VG9GcmFtZSkpOwogI2VuZGlmCiAgICAgCiAgICAgQXNzZW1ibHlIZWxwZXJzOjpDYWxsIGNh
bGwgPSBzdHViSml0Lm5lYXJDYWxsKCk7CkBAIC0xNTI5LDIwICsxNTQyLDI0IEBAIHZvaWQgbGlu
a0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2EKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQog
ICAgIHN0dWJKaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwgR1BSSW5mbzo6cmVnVDEpOwogI2VuZGlmCi0gICAgc3R1YkppdC5tb3ZlKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cihjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLmV4ZWN1
dGFibGVBZGRyZXNzKCkpLCBHUFJJbmZvOjpub25BcmdHUFIyKTsKLSAgICBzdHViSml0LnJlc3Rv
cmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86Om5vbkFyZ0dQUjIpOworICAgIHN0
dWJKaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoY2FsbExpbmtJbmZvLmNhbGxS
ZXR1cm5Mb2NhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSwgR1BSSW5mbzo6cmVnVDIpOworICAg
IAorICAgIHN0dWJKaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6
cmVnVDIpOwogICAgIEFzc2VtYmx5SGVscGVyczo6SnVtcCBzbG93ID0gc3R1YkppdC5qdW1wKCk7
CiAgICAgCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZzdHViSml0LCBjYWxsZXJD
b2RlQmxvY2spOwogICAgIAogICAgIHBhdGNoQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHIo
Y29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpKSk7Ci0gICAgcGF0Y2hCdWZmZXIubGluayhkb25l
LCBjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoMCkpOwotICAg
IHBhdGNoQnVmZmVyLmxpbmsoc2xvdywgQ29kZUxvY2F0aW9uTGFiZWwodm0tPmdldENUSVN0dWIo
dmlydHVhbENhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKSk7CisgICAgaWYgKEpJVENvZGU6Omlz
T3B0aW1pemluZ0pJVChjYWxsZXJDb2RlQmxvY2stPmppdFR5cGUoKSkpCisgICAgICAgIHBhdGNo
QnVmZmVyLmxpbmsoZG9uZSwgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0
T2Zmc2V0KDApKTsKKyAgICBlbHNlCisgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgY2Fs
bExpbmtJbmZvLmhvdFBhdGhPdGhlci5sYWJlbEF0T2Zmc2V0KDApKTsKKyAgICBwYXRjaEJ1ZmZl
ci5saW5rKHNsb3csIENvZGVMb2NhdGlvbkxhYmVsKHZtLT5nZXRDVElTdHViKHZpcnR1YWxUaHVu
a0dlbmVyYXRvckZvcihDb2RlRm9yQ2FsbCwgcmVnaXN0ZXJzKSkuY29kZSgpKSk7CiAgICAgCiAg
ICAgUmVmUHRyPENsb3N1cmVDYWxsU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lID0gYWRvcHRSZWYo
bmV3IENsb3N1cmVDYWxsU3R1YlJvdXRpbmUoCi0gICAgICAgIEZJTkFMSVpFX0RGR19DT0RFKAot
ICAgICAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICAgICAoIkRGRyBjbG9zdXJlIGNhbGwg
c3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCwgdGFyZ2V0ICVwICglcykiLAorICAgICAgICBG
SU5BTElaRV9DT0RFX0ZPUigKKyAgICAgICAgICAgIGNhbGxlckNvZGVCbG9jaywgcGF0Y2hCdWZm
ZXIsCisgICAgICAgICAgICAoIkNsb3N1cmUgY2FsbCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50
ICVwLCB0YXJnZXQgJXAgKCVzKSIsCiAgICAgICAgICAgICAgICAgdG9DU3RyaW5nKCpjYWxsZXJD
b2RlQmxvY2spLmRhdGEoKSwgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0
T2Zmc2V0KDApLmV4ZWN1dGFibGVBZGRyZXNzKCksCiAgICAgICAgICAgICAgICAgY29kZVB0ci5l
eGVjdXRhYmxlQWRkcmVzcygpLCB0b0NTdHJpbmcocG9pbnRlckR1bXAoY2FsbGVlQ29kZUJsb2Nr
KSkuZGF0YSgpKSksCiAgICAgICAgICp2bSwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFi
bGUoKSwgc3RydWN0dXJlLCBleGVjdXRhYmxlLCBjYWxsTGlua0luZm8uY29kZU9yaWdpbikpOwpA
QCAtMTU1Miw3ICsxNTY5LDcgQEAgdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVj
LCBDYQogICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKAogICAgICAgICBSZXBhdGNo
QnVmZmVyOjpzdGFydE9mQnJhbmNoUHRyV2l0aFBhdGNoT25SZWdpc3RlcihjYWxsTGlua0luZm8u
aG90UGF0aEJlZ2luKSwKICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwoc3R1YlJvdXRpbmUtPmNv
ZGUoKS5jb2RlKCkpKTsKLSAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExp
bmtJbmZvLCBDb2RlRm9yQ2FsbCk7CisgICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0s
IGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwsIHJlZ2lzdGVycyk7CiAgICAgCiAgICAgY2FsbExp
bmtJbmZvLnN0dWIgPSBzdHViUm91dGluZS5yZWxlYXNlKCk7CiAgICAgCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDkgKzQxLDkgQEAg
dm9pZCBidWlsZEdldEJ5SURQcm90b0xpc3QoRXhlY1N0YXRlKiwgSgogdm9pZCByZXBhdGNoUHV0
QnlJRChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHV0UHJv
cGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsKIHZvaWQgYnVpbGRQdXRC
eUlkTGlzdChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHV0
UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsKIHZvaWQgcmVwYXRj
aEluKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIGNvbnN0IElkZW50aWZpZXImLCBib29sIHdhc0ZvdW5k
LCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwotdm9pZCBsaW5rRm9y
KEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIEpTRnVuY3Rpb24qIGNhbGxl
ZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKLXZvaWQg
bGlua1Nsb3dGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZVNwZWNpYWxpemF0aW9u
S2luZCk7Ci12b2lkIGxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBD
b2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBFeGVjdXRhYmxlQmFzZSosIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cik7Cit2b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2Nr
KiwgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIsIENvZGVTcGVjaWFs
aXphdGlvbktpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSk7Cit2b2lkIGxpbmtTbG93Rm9y
KEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTW9kZSk7Cit2b2lkIGxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqLCBD
YWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBFeGVjdXRhYmxlQmFzZSosIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKTsKIHZvaWQgcmVz
ZXRHZXRCeUlEKFJlcGF0Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9pZCByZXNl
dFB1dEJ5SUQoUmVwYXRjaEJ1ZmZlciYsIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lkIHJlc2V0
SW4oUmVwYXRjaEJ1ZmZlciYsIFN0cnVjdHVyZVN0dWJJbmZvJik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaAkocmV2aXNpb24gMTYy
OTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IFNwZWNpYWxpemVkVGh1bmtKSVQoVk0qIHZtLCBpbnQgZXhwZWN0ZWRBcmdDb3VudCkKICAgICAg
ICAgICAgIDogSlNJbnRlcmZhY2VKSVQodm0pCiAgICAgICAgIHsKKyAgICAgICAgICAgIGVtaXRG
dW5jdGlvblByb2xvZ3VlKCk7CiAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHdlIGhhdmUgdGhl
IGV4cGVjdGVkIG51bWJlciBvZiBhcmd1bWVudHMKICAgICAgICAgICAgIG1fZmFpbHVyZXMuYXBw
ZW5kKGJyYW5jaDMyKE5vdEVxdWFsLCBwYXlsb2FkRm9yKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQp
LCBUcnVzdGVkSW1tMzIoZXhwZWN0ZWRBcmdDb3VudCArIDEpKSk7CiAgICAgICAgIH0KQEAgLTQ4
LDYgKzQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGV4cGxpY2l0IFNwZWNpYWxpemVk
VGh1bmtKSVQoVk0qIHZtKQogICAgICAgICAgICAgOiBKU0ludGVyZmFjZUpJVCh2bSkKICAgICAg
ICAgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICAgICAgfQogICAg
ICAgICAKICAgICAgICAgdm9pZCBsb2FkRG91YmxlQXJndW1lbnQoaW50IGFyZ3VtZW50LCBGUFJl
Z2lzdGVySUQgZHN0LCBSZWdpc3RlcklEIHNjcmF0Y2gpCkBAIC05Nyw3ICs5OSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoc3JjICE9IHJlZ1QwKQogICAg
ICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdUMCk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJl
c3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNh
bGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICByZXQoKTsKICAgICAgICAgfQogI2Vsc2UKQEAgLTEwNSw3ICsxMDcsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChwYXls
b2FkLCBwYXlsb2FkID09IHJlZ1QwKTsKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQodGFnLCB0
YWcgPT0gcmVnVDEpOwotICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lz
dGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7
CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgcmV0KCk7
CiAgICAgICAgIH0KICNlbmRpZgpAQCAtMTM2LDcgKzEzOCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgbG93Tm9uWmVyby5saW5rKHRoaXMpOwogICAgICAgICAgICAgaGlnaE5vblpl
cm8ubGluayh0aGlzKTsKICNlbmRpZgotICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxG
cmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpLCBjYWxsRnJhbWVS
ZWdpc3Rlcik7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAg
ICAgcmV0KCk7CiAgICAgICAgIH0KIApAQCAtMTQ1LDcgKzE0Nyw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAgICAgaWYgKHNyYyAhPSByZWdUMCkKICAgICAgICAgICAgICAgICBtb3ZlKHNy
YywgcmVnVDApOwogICAgICAgICAgICAgdGFnUmV0dXJuQXNJbnQzMigpOwotICAgICAgICAgICAg
bG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1l
T2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KIApAQCAtMTU0LDcgKzE1
Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgaWYgKHNyYyAhPSByZWdUMCkKICAg
ICAgICAgICAgICAgICBtb3ZlKHNyYywgcmVnVDApOwogICAgICAgICAgICAgdGFnUmV0dXJuQXNK
U0NlbGwoKTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3Rlciwg
Q2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAg
ICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIHJldCgpOwogICAg
ICAgICB9CiAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dl
bmVyYXRvcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIsIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUg
IkpTQXJyYXlJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTU3RhY2suaCIKKyNpbmNsdWRlICJNYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJTcGVjaWFsaXplZFRodW5rSklULmgiCiAjaW5jbHVkZSA8d3RmL0lubGluZUFTTS5o
PgpAQCAtNjYsMTAgKzY3LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHRocm93RXhjZXB0aW9u
RnJvbQogICAgIC8vIGV2ZW4gdGhvdWdoIHdlIHdvbid0IHVzZSBpdC4KICAgICBqaXQucHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQ
Uik7CiAKLSAgICAvLyBUaGUgQ2FsbEZyYW1lIHJlZ2lzdGVyIHBvaW50cyB0byB0aGUgKGZhaWxl
ZCkgY2FsbGVlIGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHBvcCBiYWNrIG9uZSBmcmFtZS4KLSAgICBq
aXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3Rlcik7Ci0KLSAgICBqaXQuc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKKyAg
ICBqaXQuc2V0dXBBcmd1bWVudHMoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZtKSwgR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpKSwg
R1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BS
SW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7CkBA
IC04MiwyOSArODAsMjggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHRocm93RXhjZXB0aW9uRnJv
bQogc3RhdGljIHZvaWQgc2xvd1BhdGhGb3IoCiAgICAgQ0NhbGxIZWxwZXJzJiBqaXQsIFZNKiB2
bSwgUF9KSVRPcGVyYXRpb25fRSBzbG93UGF0aEZ1bmN0aW9uKQogewotICAgIGppdC5wcmVzZXJ2
ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMik7Ci0gICAgZW1pdFBv
aW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMik7Ci0gICAgaml0LmVtaXRQ
dXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86Om5vbkFyZ0dQUjIpOworICAgIGpp
dC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgJnZtLT50b3BDYWxsRnJhbWUpOworICAgIGlmIChtYXhGcmFtZUV4dGVu
dEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBqaXQuc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsK
ICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYml0d2lzZV9jYXN0PHZv
aWQqPihzbG93UGF0aEZ1bmN0aW9uKSksIEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAgIGVtaXRQ
b2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAgIGppdC5jYWxs
KEdQUkluZm86Om5vbkFyZ0dQUjApOworICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCkKKyAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIpOwogICAgIAogICAgIC8vIFRoaXMgc2xvdyBjYWxsIHdpbGwgcmV0dXJuIHRoZSBhZGRy
ZXNzIG9mIG9uZSBvZiB0aGUgZm9sbG93aW5nOgogICAgIC8vIDEpIEV4Y2VwdGlvbiB0aHJvd2lu
ZyB0aHVuay4KICAgICAvLyAyKSBIb3N0IGNhbGwgcmV0dXJuIHZhbHVlIHJldHVybmVyIHRoaW5n
eS4KICAgICAvLyAzKSBUaGUgZnVuY3Rpb24gdG8gY2FsbC4KLSAgICBqaXQuZW1pdEdldFJldHVy
blBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5H
UFIpOwotICAgIGppdC5lbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIoMCkpOwotICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQ
UkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7Ci0gICAgaml0LnJlc3RvcmVSZXR1cm5B
ZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7CiAg
ICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwor
ICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIGppdC5qdW1wKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSKTsKIH0KIAogc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rRm9y
VGh1bmtHZW5lcmF0b3IoCi0gICAgVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQp
CisgICAgVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgLy8gVGhlIHJldHVybiBhZGRyZXNzIGlzIG9u
IHRoZSBzdGFjayBvciBpbiB0aGUgbGluayByZWdpc3Rlci4gV2Ugd2lsbCBoZW5jZQogICAgIC8v
IHNhdmUgdGhlIHJldHVybiBhZGRyZXNzIHRvIHRoZSBjYWxsIGZyYW1lIHdoaWxlIHdlIG1ha2Ug
YSBDKysgZnVuY3Rpb24gY2FsbApAQCAtMTE0LDM4ICsxMTEsNTkgQEAgc3RhdGljIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBsaW5rRm9yVGh1bgogICAgIAogICAgIENDYWxsSGVscGVycyBqaXQodm0p
OwogICAgIAotICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIGtpbmQgPT0gQ29kZUZvckNhbGwgPyBv
cGVyYXRpb25MaW5rQ2FsbCA6IG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3QpOworICAgIHNsb3dQYXRo
Rm9yKGppdCwgdm0sIG9wZXJhdGlvbkxpbmtGb3Ioa2luZCwgcmVnaXN0ZXJzKSk7CiAgICAgCiAg
ICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7CiAg
ICAgcmV0dXJuIEZJTkFMSVpFX0NPREUoCiAgICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAo
IkxpbmsgJXMgc2xvdyBwYXRoIHRodW5rIiwga2luZCA9PSBDb2RlRm9yQ2FsbCA/ICJjYWxsIiA6
ICJjb25zdHJ1Y3QiKSk7CisgICAgICAgICgiTGluayAlcyVzIHNsb3cgcGF0aCB0aHVuayIsIGtp
bmQgPT0gQ29kZUZvckNhbGwgPyAiY2FsbCIgOiAiY29uc3RydWN0IiwgcmVnaXN0ZXJzID09IE11
c3RQcmVzZXJ2ZVJlZ2lzdGVycyA/ICIgdGhhdCBwcmVzZXJ2ZXMgcmVnaXN0ZXJzIiA6ICIiKSk7
CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKFZNKiB2
bSkKIHsKLSAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCk7
CisgICAgcmV0dXJuIGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwsIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
bGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbGlua0Zv
clRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gbGlua0Zv
clRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkKTsKIH0KIAotLy8gRm9yIGNsb3N1cmUgb3B0aW1pemF0aW9ucywgd2Ugb25s
eSBpbmNsdWRlIGNhbGxzLCBzaW5jZSBpZiB5b3UncmUgdXNpbmcgY2xvc3VyZXMgZm9yCi0vLyBv
YmplY3QgY29uc3RydWN0aW9uIHRoZW4geW91J3JlIGdvaW5nIHRvIGxvc2UgYmlnIHRpbWUgYW55
d2F5LgotTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9y
KFZNKiB2bSkKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdz
VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0
b3Iodm0sIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0
b3IoVk0qIHZtKQoreworICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVG
b3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK3N0YXRpYyBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsRm9yVGh1bmtHZW5lcmF0b3IoCisgICAgVk0q
IHZtLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIENDYWxsSGVs
cGVycyBqaXQodm0pOwogICAgIAotICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIG9wZXJhdGlvbkxp
bmtDbG9zdXJlQ2FsbCk7CisgICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwgb3BlcmF0aW9uTGlua0Ns
b3N1cmVDYWxsRm9yKHJlZ2lzdGVycykpOwogICAgIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZm
ZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOwotICAgIHJldHVybiBGSU5BTElaRV9DT0RF
KHBhdGNoQnVmZmVyLCAoIkxpbmsgY2xvc3VyZSBjYWxsIHNsb3cgcGF0aCB0aHVuayIpKTsKKyAg
ICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgKCJMaW5rIGNsb3N1cmUgY2FsbCAl
cyBzbG93IHBhdGggdGh1bmsiLCByZWdpc3RlcnMgPT0gTXVzdFByZXNlcnZlUmVnaXN0ZXJzID8g
IiB0aGF0IHByZXNlcnZlcyByZWdpc3RlcnMiIDogIiIpKTsKK30KKworLy8gRm9yIGNsb3N1cmUg
b3B0aW1pemF0aW9ucywgd2Ugb25seSBpbmNsdWRlIGNhbGxzLCBzaW5jZSBpZiB5b3UncmUgdXNp
bmcgY2xvc3VyZXMgZm9yCisvLyBvYmplY3QgY29uc3RydWN0aW9uIHRoZW4geW91J3JlIGdvaW5n
IHRvIGxvc2UgYmlnIHRpbWUgYW55d2F5LgorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9z
dXJlQ2FsbFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0Nsb3N1cmVD
YWxsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQp
OworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsVGhhdFByZXNlcnZl
c1JlZ3NUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIGxpbmtDbG9zdXJlQ2Fs
bEZvclRodW5rR2VuZXJhdG9yKHZtLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOwogfQogCiBzdGF0
aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcigKLSAgICBW
TSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKKyAgICBWTSogdm0sIENvZGVTcGVj
aWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykK
IHsKICAgICAvLyBUaGUgY2FsbGVlIGlzIGluIHJlZ1QwIChmb3IgSlNWQUxVRTMyXzY0LCB0aGUg
dGFnIGlzIGluIHJlZ1QxKS4KICAgICAvLyBUaGUgcmV0dXJuIGFkZHJlc3MgaXMgb24gdGhlIHN0
YWNrLCBvciBpbiB0aGUgbGluayByZWdpc3Rlci4gV2Ugd2lsbCBoZW5jZQpAQCAtMTYwLDMzICsx
NzgsMzQgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsRm9yVAogICAgIC8v
IHRoZSBERkcga25vd3MgdGhhdCB0aGUgdmFsdWUgaXMgZGVmaW5pdGVseSBhIGNlbGwsIG9yIGRl
ZmluaXRlbHkgYSBmdW5jdGlvbi4KICAgICAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KFRhZ01hc2spLCBHUFJJbmZvOjpyZWdUMik7
CisgICAgCiAgICAgc2xvd0Nhc2UuYXBwZW5kKAogICAgICAgICBqaXQuYnJhbmNoVGVzdDY0KAot
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5m
bzo6dGFnTWFza1JlZ2lzdGVyKSk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vblplcm8s
IEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMikpOwogI2Vsc2UKICAgICBzbG93Q2FzZS5h
cHBlbmQoCiAgICAgICAgIGppdC5icmFuY2gzMigKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6
Tm90RXF1YWwsIEdQUkluZm86OnJlZ1QxLAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKICNlbmRpZgotICAgIGppdC5sb2FkUHRyKEND
YWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZz
ZXQoKSksIEdQUkluZm86Om5vbkFyZ0dQUjIpOworICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIEdQ
UkluZm86OnJlZ1QyKTsKICAgICBzbG93Q2FzZS5hcHBlbmQoCiAgICAgICAgIGppdC5icmFuY2hQ
dHIoCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLAotICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86Om5vbkFyZ0dQUjIsIFN0cnVjdHVyZTo6Y2xhc3NJ
bmZvT2Zmc2V0KCkpLAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OnJlZ1QyLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwKICAgICAgICAgICAgIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbVB0cihKU0Z1bmN0aW9uOjppbmZvKCkpKSk7CiAgICAgCiAgICAg
Ly8gTm93IHdlIGtub3cgd2UgaGF2ZSBhIEpTRnVuY3Rpb24uCiAgICAgCiAgICAgaml0LmxvYWRQ
dHIoCiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNGdW5j
dGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLAotICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIy
KTsKLSAgICBzbG93Q2FzZS5hcHBlbmQoCi0gICAgICAgIGppdC5icmFuY2gzMigKLSAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6TGVzc1RoYW4sCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MoCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BSMiwgRXhlY3V0YWJsZUJh
c2U6Om9mZnNldE9mTnVtUGFyYW1ldGVyc0ZvcihraW5kKSksCi0gICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMigwKSkpOworICAgICAgICBHUFJJbmZvOjpyZWdUMik7CisgICAg
aml0LmxvYWRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgICAg
IEdQUkluZm86OnJlZ1QyLCBFeGVjdXRhYmxlQmFzZTo6b2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5
Q2hlY2tGb3Ioa2luZCwgcmVnaXN0ZXJzKSksCisgICAgICAgIEdQUkluZm86OnJlZ1QyKTsKKyAg
ICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBH
UFJJbmZvOjpyZWdUMikpOwogICAgIAogICAgIC8vIE5vdyB3ZSBrbm93IHRoYXQgd2UgaGF2ZSBh
IENvZGVCbG9jaywgYW5kIHdlJ3JlIGNvbW1pdHRlZCB0byBtYWtpbmcgYSBmYXN0CiAgICAgLy8g
Y2FsbC4KQEAgLTE5NSw2MiArMjE0LDYwIEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
dmlydHVhbEZvclQKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Qw
LCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNjb3BlQ2hhaW4oKSksCiAgICAgICAgIEdQUkluZm86OnJl
Z1QxKTsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIGppdC5zdG9yZTY0KAotICAgICAgICBHUFJJ
bmZvOjpyZWdUMSwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKAotICAgICAgICAgICAg
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbikpOworICAgIGpp
dC5lbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZShHUFJJbmZvOjpyZWdUMSwg
SlNTdGFjazo6U2NvcGVDaGFpbik7CiAjZWxzZQotICAgIGppdC5zdG9yZVB0cigKLSAgICAgICAg
R1BSSW5mbzo6cmVnVDEsCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygKLSAgICAgICAg
ICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKwotICAg
ICAgICAgICAgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5w
YXlsb2FkKSkpOwotICAgIGppdC5zdG9yZTMyKAotICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KAotICAgICAgICAgICAgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICBz
dGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVD
aGFpbiArCi0gICAgICAgICAgICBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnRhZykpKTsKKyAgICBqaXQuZW1pdFB1dFBheWxvYWRUb0NhbGxGcmFtZUhlYWRl
ckJlZm9yZVByb2xvZ3VlKEdQUkluZm86OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKKyAg
ICBqaXQuZW1pdFB1dFRhZ1RvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCisgICAgICAgIEpTU3RhY2s6OlNj
b3BlQ2hhaW4pOwogI2VuZGlmCiAgICAgCi0gICAgaml0LmxvYWRQdHIoCi0gICAgICAgIENDYWxs
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpub25BcmdHUFIyLCBFeGVjdXRhYmxlQmFzZTo6b2Zm
c2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCkpLAotICAgICAgICBHUFJJbmZvOjpy
ZWdUMCk7Ci0gICAgCiAgICAgLy8gTWFrZSBhIHRhaWwgY2FsbC4gVGhpcyB3aWxsIHJldHVybiBi
YWNrIHRvIEpJVCBjb2RlLgotICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86
OnJlZ1QwKTsKLSAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMCk7CisgICAgZW1pdFBvaW50ZXJW
YWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5qdW1wKEdQUkluZm86OnJl
Z1QyKTsKIAogICAgIHNsb3dDYXNlLmxpbmsoJmppdCk7CiAgICAgCiAgICAgLy8gSGVyZSB3ZSBk
b24ndCBrbm93IGFueXRoaW5nLCBzbyByZXZlcnQgdG8gdGhlIGZ1bGwgc2xvdyBwYXRoLgogICAg
IAotICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIGtpbmQgPT0gQ29kZUZvckNhbGwgPyBvcGVyYXRp
b25WaXJ0dWFsQ2FsbCA6IG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3QpOworICAgIHNsb3dQYXRo
Rm9yKGppdCwgdm0sIG9wZXJhdGlvblZpcnR1YWxGb3Ioa2luZCwgcmVnaXN0ZXJzKSk7CiAgICAg
CiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7
CiAgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUoCiAgICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAg
ICAoIlZpcnR1YWwgJXMgc2xvdyBwYXRoIHRodW5rIiwga2luZCA9PSBDb2RlRm9yQ2FsbCA/ICJj
YWxsIiA6ICJjb25zdHJ1Y3QiKSk7CisgICAgICAgICgiVmlydHVhbCAlcyVzIHNsb3cgcGF0aCB0
aHVuayIsIGtpbmQgPT0gQ29kZUZvckNhbGwgPyAiY2FsbCIgOiAiY29uc3RydWN0IiwgcmVnaXN0
ZXJzID09IE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyA/ICIgdGhhdCBwcmVzZXJ2ZXMgcmVnaXN0ZXJz
IiA6ICIiKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ2FsbFRodW5rR2Vu
ZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKHZt
LCBDb2RlRm9yQ2FsbCk7CisgICAgcmV0dXJuIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcih2bSwg
Q29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQogCiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENvbnN0cnVjdFRodW5rR2VuZXJhdG9yKFZNKiB2bSkK
IHsKLSAgICByZXR1cm4gdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3Ry
dWN0KTsKKyAgICByZXR1cm4gdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29u
c3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAotc3RhdGljIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kIGtpbmQpCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENhbGxUaGF0
UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gdmlydHVh
bEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJz
KTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2Vy
dmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gdmlydHVhbEZvclRo
dW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0LCBNdXN0UHJlc2VydmVSZWdpc3RlcnMp
OworfQorCitlbnVtIFRodW5rRW50cnlUeXBlIHsgRW50ZXJWaWFDYWxsLCBFbnRlclZpYUp1bXAg
fTsKKworc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0q
IHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFRodW5rRW50cnlUeXBlIGVudHJ5VHlw
ZSA9IEVudGVyVmlhQ2FsbCkKIHsKICAgICBpbnQgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24g
PSBOYXRpdmVFeGVjdXRhYmxlOjpvZmZzZXRPZk5hdGl2ZUZ1bmN0aW9uRm9yKGtpbmQpOwogICAg
IAogICAgIEpTSW50ZXJmYWNlSklUIGppdCh2bSk7Ci0gICAgCisKKyAgICBpZiAoZW50cnlUeXBl
ID09IEVudGVyVmlhQ2FsbCkKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CisK
ICAgICBqaXQuZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKDAsIEpTU3RhY2s6OkNv
ZGVCbG9jayk7CiAgICAgaml0LnN0b3JlUHRyKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdp
c3RlciwgJnZtLT50b3BDYWxsRnJhbWUpOwogCkBAIC0yNjEsMjIgKzI3OCwxOCBAQCBzdGF0aWMg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgaml0LmVtaXRHZXRGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIEpTSW50ZXJmYWNlSklUOjpyZWdU
MSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQuZW1pdFB1dENlbGxUb0NhbGxGcmFt
ZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogCi0g
ICAgaml0LnBlZWsoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuZW1pdFB1dFJldHVy
blBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLQogICAgIC8vIENh
bGxpbmcgY29udmVudGlvbjogICAgICBmKGVjeCwgZWR4LCAuLi4pOwogICAgIC8vIEhvc3QgZnVu
Y3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNl
SklUOjpjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplY3gpOwogCi0gICAgaml0LnN1
YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZvaWQqKSksIEpT
SW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNrIGFmdGVy
IGNhbGwuCisgICAgaml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBK
U0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBhZnRl
ciBwcm9sb2d1ZS4KIAogICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgaml0LmVtaXRHZXRG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QxKTsKICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFj
ZUpJVDo6cmVnVDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50
ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIg
ZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgogICAgIGppdC5jYWxs
KEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgZXhlY3V0YWJs
ZU9mZnNldFRvRnVuY3Rpb24pKTsKIAotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRy
dXN0ZWRJbW0zMigxNiAtIHNpemVvZih2b2lkKikpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0z
Mig4KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAogI2VsaWYgQ1BV
KFg4Nl82NCkKICAgICAvLyBMb2FkIGNhbGxlciBmcmFtZSdzIHNjb3BlIGNoYWluIGludG8gdGhp
cyBjYWxsZnJhbWUgc28gdGhhdCB3aGF0ZXZlciB3ZSBjYWxsIGNhbgpAQCAtMjg0LDIzICsyOTcs
MTUgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogICAgIGppdC5l
bWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTSW50ZXJmYWNlSklUOjpy
ZWdUMCk7CiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNj
b3BlQ2hhaW4sIEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsK
ICAgICBqaXQuZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVn
VDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwotCi0gICAgaml0LnBlZWsoSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QxKTsKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QxKTsKLQogI2lmICFPUyhXSU5ET1dTKQogICAgIC8vIENhbGxpbmcgY29u
dmVudGlvbjogICAgICBmKGVkaSwgZXNpLCBlZHgsIGVjeCwgLi4uKTsKICAgICAvLyBIb3N0IGZ1
bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFj
ZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWRpKTsKIAotICAgIGppdC5z
dWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZihpbnQ2NF90KSks
IEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNrIGFm
dGVyIGNhbGwuCi0KICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFj
azo6Q2FsbGVlLCBYODZSZWdpc3RlcnM6OmVzaSk7CiAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplc2ksIEpTRnVuY3Rpb246Om9mZnNldE9mRXhl
Y3V0YWJsZSgpKSwgWDg2UmVnaXN0ZXJzOjpyOSk7Ci0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5
IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFj
ay4KICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5
LCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwogCi0gICAgaml0LmFkZFB0cihKU0ludGVy
ZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKGludDY0X3QpKSwgSlNJbnRlcmZhY2VK
SVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICNlbHNlCiAgICAgLy8gQ2FsbGluZyBjb252ZW50
aW9uOiAgICAgIGYoZWN4LCBlZHgsIHI4LCByOSwgLi4uKTsKICAgICAvLyBIb3N0IGZ1bmN0aW9u
IHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsKQEAgLTMxMSw3ICszMTYsNiBAQCBzdGF0aWMgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxs
RnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBYODZSZWdpc3RlcnM6OmVkeCk7CiAgICAg
aml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplZHgsIEpT
RnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgWDg2UmVnaXN0ZXJzOjpyOSk7Ci0gICAg
aml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1l
UmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2
b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRk
cmVzcyhYODZSZWdpc3RlcnM6OnI5LCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwogCiAg
ICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDQgKiBzaXplb2YoaW50
NjRfdCkgKyAxNiAtIHNpemVvZihpbnQ2NF90KSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CkBAIC0zMzAsMjggKzMzNCwxOCBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRy
KEpTU3RhY2s6OlNjb3BlQ2hhaW4sIEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgQVJNNjRSZWdpc3Rl
cnM6OngzKTsKICAgICBqaXQuZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFj
ZUpJVDo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogCi0gICAgaml0LnByZXNlcnZlUmV0
dXJuQWRkcmVzc0FmdGVyQ2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMpOyAvLyBDYWxsZWUgcHJl
c2VydmVkCi0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEFSTTY0UmVn
aXN0ZXJzOjpscik7Ci0KICAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3Rh
dGUqKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEFS
TTY0UmVnaXN0ZXJzOjp4MCk7CiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQ
dHIoSlNTdGFjazo6Q2FsbGVlLCBBUk02NFJlZ2lzdGVyczo6eDEpOwogICAgIGppdC5sb2FkUHRy
KEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4MSwgSlNGdW5jdGlvbjo6
b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBBUk02NFJlZ2lzdGVyczo6eDIpOwotICAgIGppdC5tb3Zl
KEFSTTY0UmVnaXN0ZXJzOjp4MywgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsg
Ly8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5n
IGZyb20gc3RhY2suCiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoQVJNNjRS
ZWdpc3RlcnM6OngyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwotCi0gICAgaml0LnJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7Ci0K
ICNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpIHx8IENQVShNSVBTKQogICAgIC8vIExvYWQgY2Fs
bGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFtZSBzbyB0aGF0IHdoYXRl
dmVyIHdlIGNhbGwgY2FuIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCiAgICAgaml0LmVtaXRHZXRD
YWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsK
ICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFp
biwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGpp
dC5lbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNT
dGFjazo6U2NvcGVDaGFpbik7CiAKLSAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJD
YWxsKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKLSAgICBqaXQu
ZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsK
LQogI2lmIENQVShNSVBTKQogICAgIC8vIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGZvciAodW51c2Vk
KSAxNiBieXRlcyAoOC1ieXRlIGFsaWduZWQpIGZvciA0IGFyZ3VtZW50cy4KICAgICBqaXQuc3Vi
UHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYpLCBKU0ludGVyZmFjZUpJVDo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMzYyLDcgKzM1Niw2IEBAIHN0YXRpYyBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjApOwogCiAgICAgaml0
LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwgSlNJbnRlcmZh
Y2VKSVQ6OmFyZ3VtZW50R1BSMSk7Ci0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qy
LCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUg
Y2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBq
aXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6YXJndW1l
bnRHUFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJmYWNlSklU
OjpyZWdUMik7CiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwogCkBAIC0zNzAsOCAr
MzYzLDYgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogICAgIC8v
IFJlc3RvcmUgc3RhY2sgc3BhY2UKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVz
dGVkSW1tMzIoMTYpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2Vu
ZGlmCi0KLSAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QzKTsKICNlbHNlCiAjZXJyb3IgIkpJVCBub3Qgc3VwcG9ydGVkIG9uIHRoaXMg
cGxhdGZvcm0uIgogICAgIFVOVVNFRF9QQVJBTShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbik7
CkBAIC0zODksMjUgKzM4MCwyMSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2
ZUZvckdlCiAgICAgICAgIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1w
dHlWYWx1ZVRhZykpOwogI2VuZGlmCiAKKyAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICAgICAvLyBSZXR1cm4uCiAgICAgaml0LnJldCgpOwogCiAgICAgLy8gSGFuZGxlIGFuIGV4Y2Vw
dGlvbgogICAgIGV4Y2VwdGlvbkhhbmRsZXIubGluaygmaml0KTsKIAotICAgIC8vIEdyYWIgdGhl
IHJldHVybiBhZGRyZXNzLgotICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwo
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICAKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJ
VDo6VHJ1c3RlZEltbVB0cigmdm0tPmV4Y2VwdGlvbkxvY2F0aW9uKSwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QyKTsKLSAgICBqaXQuc3RvcmVQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDIpOwotCiAgICAgaml0LnN0b3JlUHRyKEpTSW50ZXJmYWNlSklUOjpjYWxs
RnJhbWVSZWdpc3RlciwgJnZtLT50b3BDYWxsRnJhbWUpOwogCiAjaWYgQ1BVKFg4NikgJiYgVVNF
KEpTVkFMVUUzMl82NCkKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1t
MzIoLTEyKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICBqaXQu
cHVzaChKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGppdC5sb2FkUHRy
KEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rl
ciksIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CisgICAgaml0LnB1c2goSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QwKTsKICNlbHNlCi0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJl
Z2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKKyAgICBqaXQubG9hZFB0cihK
U0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIp
LCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKICNlbmRpZgogICAgIGppdC5tb3ZlKEpT
SW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tUHRyKEZ1bmN0aW9uUHRyKG9wZXJhdGlvblZNSGFuZGxl
RXhjZXB0aW9uKS52YWx1ZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuY2Fs
bChKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwpAQCAtNDE4LDcgKzQwNSw3IEBAIHN0YXRpYyBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKICAgICBqaXQuanVtcFRvRXhjZXB0aW9uSGFu
ZGxlcigpOwogCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIEdMT0JBTF9U
SFVOS19JRCk7Ci0gICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgibmF0aXZl
ICVzIHRyYW1wb2xpbmUiLCB0b0NTdHJpbmcoa2luZCkuZGF0YSgpKSk7CisgICAgcmV0dXJuIEZJ
TkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgibmF0aXZlICVzJXMgdHJhbXBvbGluZSIsIGVudHJ5
VHlwZSA9PSBFbnRlclZpYUp1bXAgPyAiVGFpbCAiIDogIiIsIHRvQ1N0cmluZyhraW5kKS5kYXRh
KCkpKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNhbGxHZW5lcmF0b3IoVk0q
IHZtKQpAQCAtNDI2LDYgKzQxMywxMSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlQ2Fs
bEdlbmVyYXRvCiAgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwp
OwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlVGFpbENhbGxHZW5lcmF0b3IoVk0q
IHZtKQoreworICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBF
bnRlclZpYUp1bXApOworfQorCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlQ29uc3RydWN0
R2VuZXJhdG9yKFZNKiB2bSkKIHsKICAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBD
b2RlRm9yQ29uc3RydWN0KTsKQEAgLTQzNSwxNCArNDI3LDE2IEBAIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKIHsKICAgICBKU0ludGVyZmFjZUpJVCBqaXQodm0pOwog
Ci0gICAgLy8gV2UgZW50ZXIgd2l0aCBmaXh1cCBjb3VudCBpbiByZWdUMAorICAgIC8vIFdlIGVu
dGVyIHdpdGggZml4dXAgY291bnQsIGluIGFsaWduZWQgc3RhY2sgdW5pdHMsIGluIHJlZ1QwIGFu
ZCB0aGUgcmV0dXJuIHRodW5rIGluCisgICAgLy8gcmVnVDUuIFdlIHVzZSBWTTo6Y3VycmVudFJl
dHVyblRodW5rUEMgaW5zdGVhZCBvZiByZWdUNSBvbiBYODYtMzIuCiAjaWYgVVNFKEpTVkFMVUU2
NCkKICMgIGlmIENQVShYODZfNjQpCiAgICAgaml0LnBvcChKU0ludGVyZmFjZUpJVDo6cmVnVDQp
OwogIyAgZW5kaWYKKyAgICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0z
Mihsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsK
ICAgICBqaXQubmVnNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubW92ZShKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7Ci0g
ICAgaml0LmxvYWQzMihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiA4KSwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QyKTsKKyAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50
ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHNp
emVvZihSZWdpc3RlcikpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5hZGQzMihK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUp
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogCiAgICAgLy8gTW92ZSBjdXJyZW50IGZyYW1lIGRv
d24gcmVnVDAgbnVtYmVyIG9mIHNsb3RzCkBAIC00NTIsMTcgKzQ0NiwyNyBAQCBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSogdm0pCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFj
ZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwogICAgIGppdC5i
cmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0
ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8oY29weUxvb3AsICZqaXQp
OwogCi0gICAgLy8gRmlsbCBpbiByZWdUMCBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5l
ZAorICAgIC8vIEZpbGwgaW4gcmVnVDAgLSAxIG1pc3NpbmcgYXJnIHNsb3RzIHdpdGggdW5kZWZp
bmVkCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDIpOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tNjQoVmFsdWVV
bmRlZmluZWQpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOworICAgIGppdC5hZGQzMihKU0ludGVy
ZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIEpT
SW50ZXJmYWNlSklUOjpMYWJlbCBmaWxsVW5kZWZpbmVkTG9vcChqaXQubGFiZWwoKSk7CiAgICAg
aml0LnN0b3JlNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVy
ZmFjZUpJVDo6VGltZXNFaWdodCkpOwogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRy
dXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuYnJhbmNoQWRk
MzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIo
MSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGZpbGxVbmRlZmluZWRMb29wLCAmaml0
KTsKLQotICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lzdGVyIHRvIGFjY291bnQgZm9yIG1p
c3NpbmcgYXJncwotICAgIGppdC5sc2hpZnQ2NChKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMy
KDMpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIAorICAg
IC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lzdGVyIGFuZCBzdGFjayBwb2ludGVyIHRvIGFjY291
bnQgZm9yIG1pc3NpbmcgYXJncworICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwg
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQubHNoaWZ0NjQoSlNJbnRlcmZhY2VKSVQ6
OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQuYWRkUHRy
KEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVy
KTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgIC8vIFNhdmUgdGhlIG9yaWdpbmFsIHJldHVy
biBQQy4KKyAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFj
ZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQ
UkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIE1hY3JvQXNz
ZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CisgICAgCisgICAgLy8gSW5zdGFs
bCB0aGUgbmV3IHJldHVybiBQQy4KKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDUsIEpT
SW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlciwg
Q2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CiAKICMgIGlmIENQVShYODZfNjQpCiAgICAg
aml0LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsKQEAgLTQ3Miw5ICs0NzYsMTAgQEAgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZtKQogIyAgaWYgQ1BVKFg4NikKICAg
ICBqaXQucG9wKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CiAjICBlbmRpZgorICAgIGppdC5sc2hp
ZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKGxvZ1N0YWNrQWxpZ25tZW50UmVnaXN0
ZXJzKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGppdC5uZWczMihKU0ludGVyZmFj
ZUpJVDo6cmVnVDApOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdp
c3RlciwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLSAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNl
SklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6
QXJndW1lbnRDb3VudCAqIDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOworICAgIGppdC5sb2Fk
MzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lz
dGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc2l6ZW9mKFJlZ2lzdGVyKSksIEpTSW50ZXJm
YWNlSklUOjpyZWdUMik7CiAgICAgaml0LmFkZDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1t
MzIoSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7
CiAKICAgICAvLyBNb3ZlIGN1cnJlbnQgZnJhbWUgZG93biByZWdUMCBudW1iZXIgb2Ygc2xvdHMK
QEAgLTQ4Niw4ICs0OTEsOSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSog
dm0pCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0lu
dGVyZmFjZUpJVDo6cmVnVDMpOwogICAgIGppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6
Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QyKS5saW5rVG8oY29weUxvb3AsICZqaXQpOwogCi0gICAgLy8gRmlsbCBpbiByZWdUMCBt
aXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAorICAgIC8vIEZpbGwgaW4gcmVnVDAgLSAx
IG1pc3NpbmcgYXJnIHNsb3RzIHdpdGggdW5kZWZpbmVkCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOworICAgIGppdC5hZGQzMihKU0lu
dGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAg
IEpTSW50ZXJmYWNlSklUOjpMYWJlbCBmaWxsVW5kZWZpbmVkTG9vcChqaXQubGFiZWwoKSk7CiAg
ICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigwKSwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QxKTsKICAgICBqaXQuc3RvcmUzMihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIE1hY3Jv
QXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CkBAIC00OTcsMTAgKzUwMywy
NSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSogdm0pCiAgICAgaml0LmFk
ZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDMpOwogICAgIGppdC5icmFuY2hBZGQzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRl
cmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8o
ZmlsbFVuZGVmaW5lZExvb3AsICZqaXQpOwogCi0gICAgLy8gQWRqdXN0IGNhbGwgZnJhbWUgcmVn
aXN0ZXIgdG8gYWNjb3VudCBmb3IgbWlzc2luZyBhcmdzCi0gICAgaml0LmxzaGlmdDMyKEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7Ci0gICAg
aml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJh
bWVSZWdpc3Rlcik7Ci0KKyAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciBhbmQgc3Rh
Y2sgcG9pbnRlciB0byBhY2NvdW50IGZvciBtaXNzaW5nIGFyZ3MKKyAgICBqaXQubW92ZShKU0lu
dGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CisgICAgaml0LmxzaGlm
dDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklUOjpyZWdU
MSk7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklU
OjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVn
VDEsIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAgICAvLyBTYXZl
IHRoZSBvcmlnaW5hbCByZXR1cm4gUEMuCisgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6
OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJl
dHVyblBDT2Zmc2V0KCkpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRyKEdQUklu
Zm86OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdU
MywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwor
ICAgIAorICAgIC8vIEluc3RhbGwgdGhlIG5ldyByZXR1cm4gUEMuCisgICAgLy8gRklYTUU6IEkg
ZG9uJ3QgdGhpbmsgY3VycmVudFJldHVyblRodW5rUEMgaXMgdXNlZCBhbmQgc2hvdWxkIGJlIGRl
bGV0ZWQuCisjICBpZiAwCisgICAgaml0LmxvYWRQdHIoJnZtLT5jdXJyZW50UmV0dXJuVGh1bmtQ
QywgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMiwgSlNJ
bnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBD
YWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKKyMgICBlbHNlCisgICAgaml0LnN0b3JlUHRy
KEdQUkluZm86OnJlZ1Q1LCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworIyAgIGVu
ZGlmCisgICAgCiAjICBpZiBDUFUoWDg2KQogICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklUOjpy
ZWdUNCk7CiAjICBlbmRpZgpAQCAtNTU0LDcgKzU3NSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBjaGFyQ29kZUF0VGh1bmtHZW4KICAgICBTcGVjaWFsaXplZFRodW5rSklUIGppdCh2bSwgMSk7
CiAgICAgc3RyaW5nQ2hhckxvYWQoaml0LCB2bSk7CiAgICAgaml0LnJldHVybkludDMyKFNwZWNp
YWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRT
dHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJjaGFyQ29kZUF0Iik7CisgICAgcmV0dXJuIGppdC5m
aW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImNoYXJDb2RlQXQi
KTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJhdG9yKFZNKiB2
bSkKQEAgLTU2Myw3ICs1ODQsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtH
ZW5lcmF0CiAgICAgc3RyaW5nQ2hhckxvYWQoaml0LCB2bSk7CiAgICAgY2hhclRvU3RyaW5nKGpp
dCwgdm0sIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpy
ZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDEpOwogICAgIGppdC5yZXR1cm5KU0NlbGwo
U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0t
PmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImNoYXJBdCIpOworICAgIHJldHVybiBqaXQu
ZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJjaGFyQXQiKTsK
IH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRodW5rR2VuZXJhdG9yKFZN
KiB2bSkKQEAgLTU3Myw3ICs1OTQsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZnJvbUNoYXJD
b2RlVGh1bmtHCiAgICAgaml0LmxvYWRJbnQzMkFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtK
SVQ6OnJlZ1QwKTsKICAgICBjaGFyVG9TdHJpbmcoaml0LCB2bSwgU3BlY2lhbGl6ZWRUaHVua0pJ
VDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklU
OjpyZWdUMSk7CiAgICAgaml0LnJldHVybkpTQ2VsbChTcGVjaWFsaXplZFRodW5rSklUOjpyZWdU
MCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwo
dm0pLCAiZnJvbUNoYXJDb2RlIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1
YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImZyb21DaGFyQ29kZSIpOwogfQogCiBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTU4NSw3ICs2MDYs
NyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9yCiAgICAgaml0Lmxv
YWREb3VibGVBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFs
aXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgaml0LnNxcnREb3VibGUoU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7CiAgICAgaml0LnJl
dHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKLSAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJzcXJ0Iik7CisgICAg
cmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwg
InNxcnQiKTsKIH0KIAogCkBAIC02MTEsNyArNjMyLDkgQEAgZG91YmxlIGpzUm91bmQoZG91Ymxl
IGQpCiAgICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uIyNUaHVuaykgIlxu
IiBcCiAgICAgICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uIyNUaHVuaykgIlxuIiBcCiAgICAgICAg
IFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAiOiIgIlxuIiBcCisgICAgICAgICJwdXNo
cSAlcmF4XG4iIFwKICAgICAgICAgImNhbGwgIiBHTE9CQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAi
XG4iIFwKKyAgICAgICAgInBvcHEgJXJjeFxuIiBcCiAgICAgICAgICJyZXRcbiIgXAogICAgICk7
XAogICAgIGV4dGVybiAiQyIgeyBcCkBAIC02MjYsMTIgKzY0OSwxMiBAQCBkb3VibGUganNSb3Vu
ZChkb3VibGUgZCkKICAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1Ro
dW5rKSAiXG4iIFwKICAgICAgICAgSElERV9TWU1CT0woZnVuY3Rpb24jI1RodW5rKSAiXG4iIFwK
ICAgICAgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMjVGh1bmspICI6IiAiXG4iIFwKLSAgICAg
ICAgInN1YmwgJDgsICVlc3BcbiIgXAorICAgICAgICAic3VibCAkMjAsICVlc3BcbiIgXAogICAg
ICAgICAibW92c2QgJXhtbTAsICglZXNwKSBcbiIgXAogICAgICAgICAiY2FsbCAiIEdMT0JBTF9S
RUZFUkVOQ0UoZnVuY3Rpb24pICJcbiIgXAogICAgICAgICAiZnN0cGwgKCVlc3ApIFxuIiBcCiAg
ICAgICAgICJtb3ZzZCAoJWVzcCksICV4bW0wIFxuIiBcCi0gICAgICAgICJhZGRsICQ4LCAlZXNw
XG4iIFwKKyAgICAgICAgImFkZGwgJDIwLCAlZXNwXG4iIFwKICAgICAgICAgInJldFxuIiBcCiAg
ICAgKTtcCiAgICAgZXh0ZXJuICJDIiB7IFwKQEAgLTczMyw3ICs3NTYsNyBAQCBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgZmxvb3JUaHVua0dlbmVyYXRvCiAgICAgZG91YmxlUmVzdWx0LmxpbmsoJmpp
dCk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsK
ICNlbmRpZiAvLyBDUFUoQVJNNjQpCi0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1
YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiZmxvb3IiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXpl
KHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiZmxvb3IiKTsKIH0KIAogTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC03NTYsNyAr
Nzc5LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxUaHVua0dlbmVyYXRvcgogICAgIGpp
dC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgZG91YmxlUmVz
dWx0LmxpbmsoJmppdCk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklU
OjpmcFJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0
aXZlQ2FsbCh2bSksICJjZWlsIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1
YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImNlaWwiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtNzkwLDcgKzgxMyw3IEBAIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiByb3VuZFRodW5rR2VuZXJhdG8KICAgICBqaXQucmV0dXJuSW50
MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGRvdWJsZVJlc3VsdC5saW5rKCZq
aXQpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7
Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0p
LCAicm91bmQiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0
aXZlVGFpbENhbGwodm0pLCAicm91bmQiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGV4
cFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTgwMyw3ICs4MjYsNyBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgZXhwVGh1bmtHZW5lcmF0b3IoCiAgICAgaml0LmxvYWREb3VibGVBcmd1bWVudCgw
LCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdU
MCk7CiAgICAgaml0LmNhbGxEb3VibGVUb0RvdWJsZVByZXNlcnZpbmdSZXR1cm4oVW5hcnlEb3Vi
bGVPcFdyYXBwZXIoZXhwKSk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5r
SklUOjpmcFJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3Rp
TmF0aXZlQ2FsbCh2bSksICJleHAiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRT
dHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiZXhwIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBsb2dUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC04MTYsNyArODM5LDcgQEAgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIGxvZ1RodW5rR2VuZXJhdG9yKAogICAgIGppdC5sb2FkRG91Ymxl
QXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDApOwogICAgIGppdC5jYWxsRG91YmxlVG9Eb3VibGVQcmVzZXJ2aW5nUmV0dXJu
KFVuYXJ5RG91YmxlT3BXcmFwcGVyKGxvZykpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lh
bGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0
U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAibG9nIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6
ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImxvZyIpOwogfQogCiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgYWJzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtODM2LDcgKzg1
OSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhYnNUaHVua0dlbmVyYXRvcigKICAgICBqaXQu
bG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNp
YWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuYWJzRG91YmxlKFNwZWNpYWxpemVkVGh1
bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwogICAgIGppdC5y
ZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSk7Ci0gICAgcmV0dXJuIGpp
dC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiYWJzIik7CisgICAg
cmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwg
ImFicyIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3IoVk0q
IHZtKQpAQCAtODg4LDcgKzkxMSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBwb3dUaHVua0dl
bmVyYXRvcigKICAgICB9IGVsc2UKICAgICAgICAgaml0LmFwcGVuZEZhaWx1cmUobm9uSW50RXhw
b25lbnQpOwogCi0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2
ZUNhbGwodm0pLCAicG93Iik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMt
PmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgInBvdyIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgaW11bFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTkyMSw3ICs5NDQsNyBAQCBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgaW11bFRodW5rR2VuZXJhdG9yCiAgICAgfSBlbHNlCiAgICAgICAgIGpp
dC5hcHBlbmRGYWlsdXJlKG5vbkludEFyZzFKdW1wKTsKIAotICAgIHJldHVybiBqaXQuZmluYWxp
emUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImltdWwiKTsKKyAgICByZXR1cm4g
aml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiaW11bCIp
OwogfQogCiBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFycmF5SXRlcmF0b3JOZXh0VGh1
bmtHZW5lcmF0b3IoVk0qIHZtLCBBcnJheUl0ZXJhdGlvbktpbmQga2luZCkKQEAgLTk2MSw3ICs5
ODQsNyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFycmF5SXRlcmF0CiAgICAgaWYg
KGtpbmQgPT0gQXJyYXlJdGVyYXRlS2V5KSB7CiAgICAgICAgIGppdC5hZGQzMihUcnVzdGVkSW1t
MzIoMSksIEFkZHJlc3MoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDQsIEpTQXJyYXlJdGVyYXRv
cjo6b2Zmc2V0T2ZOZXh0SW5kZXgoKSkpOwogICAgICAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lh
bGl6ZWRUaHVua0pJVDo6cmVnVDEpOwotICAgICAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5q
aXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJhcnJheS1pdGVyYXRvci1uZXh0LWtleSIpOwor
ICAgICAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENh
bGwodm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4dC1rZXkiKTsKICAgICAgICAgCiAgICAgfQogICAg
IEFTU0VSVChraW5kID09IEFycmF5SXRlcmF0ZVZhbHVlKTsKQEAgLTEwMTIsNyArMTAzNSw3IEBA
IHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJyYXlJdGVyYXQKICAgICBqaXQuYWRkMzIo
VHJ1c3RlZEltbTMyKDEpLCBBZGRyZXNzKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1Q0LCBKU0Fy
cmF5SXRlcmF0b3I6Om9mZnNldE9mTmV4dEluZGV4KCkpKTsKICAgICBqaXQucmV0dXJuRG91Ymxl
KFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwogICAgIAotICAgIHJldHVybiBqaXQuZmlu
YWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImFycmF5LWl0ZXJhdG9yLW5l
eHQtdmFsdWUiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0
aXZlVGFpbENhbGwodm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4dC12YWx1ZSIpOwogfQogCiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgYXJyYXlJdGVyYXRvck5leHRLZXlUaHVua0dlbmVyYXRvcihWTSog
dm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5l
cmF0b3JzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYgVGh1bmtH
ZW5lcmF0b3JzX2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0b3JzX2gKIAorI2luY2x1ZGUgIkNvZGVT
cGVjaWFsaXphdGlvbktpbmQuaCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUu
aCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvci5oIgogCiAjaWYgRU5BQkxFKEpJVCkKQEAgLTM1
LDE0ICszNyw4MiBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdGhyb3dFeGNlcHRpb25Gcm9tCiAK
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKFZNKik7CiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKFZNKik7CitNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9y
KFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNS
ZWdzVGh1bmtHZW5lcmF0b3IoVk0qKTsKKworaW5saW5lIFRodW5rR2VuZXJhdG9yIGxpbmtUaHVu
a0dlbmVyYXRvckZvcigKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAg
Y2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAg
Y2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJu
IGxpbmtDYWxsVGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0
ZXJzOgorICAgICAgICAgICAgcmV0dXJuIGxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dl
bmVyYXRvcjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIENvZGVGb3JDb25z
dHJ1Y3Q6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiBsaW5rQ29uc3Ry
dWN0VGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgor
ICAgICAgICAgICAgcmV0dXJuIGxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2Vu
ZXJhdG9yOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQogCiBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgbGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVy
Q29kZVJlZiBsaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZN
Kik7CisKK2lubGluZSBUaHVua0dlbmVyYXRvciBsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRv
ckZvcihSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAo
cmVnaXN0ZXJzKSB7CisgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgor
ICAgICAgICByZXR1cm4gbGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3I7CisgICAgY2FzZSBN
dXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgIHJldHVybiBsaW5rQ2xvc3VyZUNhbGxUaGF0
UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
dmlydHVhbENhbGxUaHVua0dlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZp
cnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IHZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSopOworTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2Vu
ZXJhdG9yKFZNKik7CisKK2lubGluZSBUaHVua0dlbmVyYXRvciB2aXJ0dWFsVGh1bmtHZW5lcmF0
b3JGb3IoCisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZh
dGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgQ29k
ZUZvckNhbGw6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVn
aXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiB2aXJ0dWFs
Q2FsbFRodW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoK
KyAgICAgICAgICAgIHJldHVybiB2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5l
cmF0b3I7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2RlRm9yQ29uc3Ry
dWN0OgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gdmlydHVhbENvbnN0
cnVjdFRodW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoK
KyAgICAgICAgICAgIHJldHVybiB2aXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVu
a0dlbmVyYXRvcjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KIAogTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIG5hdGl2ZUNhbGxHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBu
YXRpdmVUYWlsQ2FsbEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5
Rml4dXAoVk0qKTsKIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVy
YXRvcihWTSopOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3Au
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludENMb29w
LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50Q0xvb3AuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBM
TEludCB7CiAKIHZvaWQgQ0xvb3A6OmluaXRpYWxpemUoKQogewotICAgIGV4ZWN1dGUoMCwgZ2V0
T3Bjb2RlKGxsaW50X3VudXNlZCksIHRydWUpOworICAgIGV4ZWN1dGUobGxpbnRfdW51c2VkLCAw
LCAwLCAwLCB0cnVlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgTExJbnQKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludENMb29wLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuaAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkpTQ0pTVmFs
dWUuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKKyNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBMTEludCB7CkBAIC00MCw3ICs0MSw3IEBAIGNv
bnN0IE9wY29kZUlEIGxsaW50X3VudXNlZCA9IGxsaW50X2VuZDsKIGNsYXNzIENMb29wIHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7Ci0gICAgc3RhdGljIEpTVmFsdWUg
ZXhlY3V0ZShDYWxsRnJhbWUqLCBPcGNvZGUgZW50cnlPcGNvZGUsIGJvb2wgaXNJbml0aWFsaXph
dGlvblBhc3MgPSBmYWxzZSk7CisgICAgc3RhdGljIEpTVmFsdWUgZXhlY3V0ZShPcGNvZGVJRCBl
bnRyeU9wY29kZUlELCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgVk0qLCBQcm90b0NhbGxGcmFt
ZSosIGJvb2wgaXNJbml0aWFsaXphdGlvblBhc3MgPSBmYWxzZSk7CiB9OwogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6TExJbnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dERhdGEuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkluc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTY29wZS5oIgogI2luY2x1ZGUgIkxMSW50
Q0xvb3AuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2lu
Y2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCiAKQEAgLTg3LDYg
Kzg4LDcgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAgQVNTRVJU
KEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgPT0gQ2FsbEZyYW1lSGVhZGVyU2xvdHMpOwog
CiAgICAgQVNTRVJUKCFDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpOworICAgIEFTU0VS
VChKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSA9PSAoUHRyU2l6ZSAqIDIpIC8gU2xvdFNp
emUpOwogICAgIEFTU0VSVChDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkgPT0gQ2FsbEZyYW1l
OjpjYWxsZXJGcmFtZU9mZnNldCgpICsgUHRyU2l6ZSk7CiAgICAgQVNTRVJUKEpTU3RhY2s6OkNv
ZGVCbG9jayAqIHNpemVvZihSZWdpc3RlcikgPT0gQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgp
ICsgUHRyU2l6ZSk7CiAgICAgQVNTRVJUKEpTU3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXplb2YoUmVn
aXN0ZXIpID09IEpTU3RhY2s6OkNvZGVCbG9jayAqIHNpemVvZihSZWdpc3RlcikgKyBTbG90U2l6
ZSk7CkBAIC0xMjMsNiArMTI1LDEzIEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0m
IHZtKQogICAgIEFTU0VSVChWYWx1ZVVuZGVmaW5lZCA9PSAoVGFnQml0VHlwZU90aGVyIHwgVGFn
Qml0VW5kZWZpbmVkKSk7CiAgICAgQVNTRVJUKFZhbHVlTnVsbCA9PSBUYWdCaXRUeXBlT3RoZXIp
OwogI2VuZGlmCisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCBFTkFCTEUoTExJTlRf
Q19MT09QKQorICAgIEFTU0VSVChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9PSAwKTsK
KyNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpCisgICAgQVNTRVJUKG1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsID09IDI0KTsKKyNlbGlmIENQVShYODYpIHx8IENQVShNSVBTKQorICAgIEFT
U0VSVChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9PSA0MCk7CisjZW5kaWYKICAgICBB
U1NFUlQoU3RyaW5nVHlwZSA9PSA1KTsKICAgICBBU1NFUlQoT2JqZWN0VHlwZSA9PSAxNyk7CiAg
ICAgQVNTRVJUKEZpbmFsT2JqZWN0VHlwZSA9PSAxOCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1
ZGUgIkxMSW50VGh1bmtzLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgorI2lu
Y2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCisjaW5jbHVkZSAiU3RhY2tB
bGlnbm1lbnQuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IExMSW50IHsKQEAgLTQ1LDE0ICs0NywxMiBAQCBzdGF0aWMgdm9pZCBzZXRGdW5jdGlvbkVudHJ5
cG9pbnQoVk0mIHZtCiAgICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGlmIChraW5k
ID09IENvZGVGb3JDYWxsKSB7CiAgICAgICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0g
ICAgICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1Yihm
dW5jdGlvbkZvckNhbGxFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJU
aHVuaykpLAotICAgICAgICAgICAgICAgIHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsQXJp
dHlDaGVja1RodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgICAgICAgICAgICAgIGFkb3B0UmVm
KG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsRW50cnlUaHVu
a0dlbmVyYXRvciksIHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsQXJpdHlDaGVja1RodW5r
R2VuZXJhdG9yKS5jb2RlKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNv
bnN0cnVjdCk7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgICAgIGFk
b3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDb25zdHJ1
Y3RFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAg
ICAgICAgICAgdm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tUaHVu
a0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRD
b2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RFbnRyeVRodW5rR2VuZXJhdG9y
KSwgdm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tUaHVua0dlbmVy
YXRvcikuY29kZSgpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCkBAIC02MCwxNCArNjAsMTIgQEAgc3Rh
dGljIHZvaWQgc2V0RnVuY3Rpb25FbnRyeXBvaW50KFZNJiB2bQogICAgIFVOVVNFRF9QQVJBTSh2
bSk7CiAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpIHsKICAgICAgICAgY29kZUJsb2NrLT5z
ZXRKSVRDb2RlKAotICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoTWFjcm9B
c3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZnVuY3Rpb25fZm9yX2Nh
bGxfcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9mdW5jdGlvbl9m
b3JfY2FsbF9hcml0eV9jaGVjaykpOworICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJ
VENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZnVu
Y3Rpb25fZm9yX2NhbGxfcHJvbG9ndWUpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxM
SW50Q29kZVB0cihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjayksIEpJVENvZGU6
OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJU
KGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7CiAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAot
ICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6
OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3Vl
KSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2Fy
aXR5X2NoZWNrKSk7CisgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2Z1bmN0aW9uX2Zvcl9jb25z
dHJ1Y3RfcHJvbG9ndWUpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0
cihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNrKSwgSklUQ29kZTo6SW50
ZXJwcmV0ZXJUaHVuaykpKTsKIH0KIAogc3RhdGljIHZvaWQgc2V0RXZhbEVudHJ5cG9pbnQoVk0m
IHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKQEAgLTc1LDE2ICs3MywxNCBAQCBzdGF0aWMgdm9p
ZCBzZXRFdmFsRW50cnlwb2ludChWTSYgdm0sIENvCiAjaWYgRU5BQkxFKEpJVCkKICAgICBpZiAo
dm0uY2FuVXNlSklUKCkpIHsKICAgICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAg
ICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihldmFsRW50cnlU
aHVua0dlbmVyYXRvciksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJl
Y3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZXZhbEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCiAgICAgVU5VU0VEX1BBUkFN
KHZtKTsKICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5ldyBE
aXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxs
aW50X2V2YWxfcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJ
VENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZXZh
bF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRl
clRodW5rKSkpOwogfQogCiBzdGF0aWMgdm9pZCBzZXRQcm9ncmFtRW50cnlwb2ludChWTSYgdm0s
IENvZGVCbG9jayogY29kZUJsb2NrKQpAQCAtOTIsMTYgKzg4LDE0IEBAIHN0YXRpYyB2b2lkIHNl
dFByb2dyYW1FbnRyeXBvaW50KFZNJiB2bSwKICNpZiBFTkFCTEUoSklUKQogICAgIGlmICh2bS5j
YW5Vc2VKSVQoKSkgewogICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgICAg
ICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKHByb2dyYW1FbnRyeVRo
dW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVj
dEpJVENvZGUodm0uZ2V0Q1RJU3R1Yihwcm9ncmFtRW50cnlUaHVua0dlbmVyYXRvciksIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKICAgICBVTlVTRURfUEFS
QU0odm0pOwogICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRSZWYobmV3
IERpcmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYo
bGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICBhZG9wdFJlZihuZXcgRGly
ZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGlu
dF9wcm9ncmFtX3Byb2xvZ3VlKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCksIEpJVENvZGU6Oklu
dGVycHJldGVyVGh1bmspKSk7CiB9CiAKIHZvaWQgc2V0RW50cnlwb2ludChWTSYgdm0sIENvZGVC
bG9jayogY29kZUJsb2NrKQpAQCAtMTIzLDcgKzExNyw5IEBAIHZvaWQgc2V0RW50cnlwb2ludChW
TSYgdm0sIENvZGVCbG9jayogY28KIAogdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50Rm9yKENv
ZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBjb2RlQmxvY2stPm1fbnVtQ2FsbGVl
UmVnaXN0ZXJzOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29kZUJsb2NrLT5t
X251bUNhbGxlZVJlZ2lzdGVycykgPT0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxp
Z25tZW50UmVnaXN0ZXJzKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb2RlQmxvY2stPm1fbnVt
Q2FsbGVlUmVnaXN0ZXJzKSkpOworCisgICAgcmV0dXJuIHJvdW5kTG9jYWxSZWdpc3RlckNvdW50
Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMgKyBt
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJzKTsKIH0KIAogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkxMSW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRPZmZzZXRzRXh0cmFjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkFycmF5UHJvZmlsZS5o
IgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgog
I2luY2x1ZGUgIkRlYnVnZ2VyLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgogI2luY2x1ZGUg
IkhlYXAuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9wY29kZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9wY29kZS5o
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRP
cGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsMTggQEAKIAogI2Rl
ZmluZSBGT1JfRUFDSF9MTElOVF9OT0pJVF9OQVRJVkVfSEVMUEVSKG1hY3JvKSBcCiAgICAgbWFj
cm8oZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSwgMSkgXAotICAgIG1hY3JvKHJldHVybkZyb21KYXZh
U2NyaXB0LCAxKQorICAgIG1hY3JvKGxsaW50X3JldHVybl90b19ob3N0LCAxKSBcCisgICAgbWFj
cm8obGxpbnRfY2FsbF90b19qYXZhc2NyaXB0LCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2FsbF90
b19uYXRpdmVfZnVuY3Rpb24sIDEpIFwKKyAgICBtYWNybyhoYW5kbGVVbmNhdWdodEV4Y2VwdGlv
biwgMSkgXAorICAgIFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNf
MSwgMSkgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc18yLCAxKSBc
CisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzMsIDEpIFwKKyAgICBt
YWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfNCwgMSkgXAorICAgIG1hY3JvKGxs
aW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc181LCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2xv
b3BfZGlkX3JldHVybl9mcm9tX2pzXzYsIDEpIFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRf
cmV0dXJuX2Zyb21fanNfNywgMSkgXAogCiAjZWxzZSAvLyAhRU5BQkxFKExMSU5UX0NfTE9PUCkK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMu
Y3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xv
d1BhdGhzLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5oIgorI2luY2x1
ZGUgIkVycm9ySGFuZGxpbmdTY29wZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2lu
Y2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFsdWUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpA
QCAtNTEsNiArNTIsNyBAQAogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKICNpbmNs
dWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKyNpbmNs
dWRlICJQcm90b0NhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5l
cy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCkBAIC04Miw3ICs4NCw3
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgTExJbnQgewogICAgICAgICByZXR1cm4gZW5j
b2RlUmVzdWx0KGZpcnN0LCBzZWNvbmQpOyAgICAgICAgXAogICAgIH0gd2hpbGUgKGZhbHNlKQog
Ci0jZGVmaW5lIExMSU5UX0VORF9JTVBMKCkgTExJTlRfUkVUVVJOX1RXTyhwYywgZXhlYykKKyNk
ZWZpbmUgTExJTlRfRU5EX0lNUEwoKSBMTElOVF9SRVRVUk5fVFdPKHBjLCAwKQogCiAjZGVmaW5l
IExMSU5UX1RIUk9XKGV4Y2VwdGlvblRvVGhyb3cpIGRvIHsgICAgICAgICAgICAgICAgICAgICAg
ICBcCiAgICAgICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvblRvVGhyb3cpOyAg
ICAgICAgICAgICAgICBcCkBAIC0xMzcsMjIgKzEzOSwyOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIExMSW50IHsKICNkZWZpbmUgTExJTlRfQ0FMTF9USFJPVyhleGVjLCBleGNlcHRpb25U
b1Rocm93KSBkbyB7ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRXhlY1N0YXRlKiBfX2N0
X2V4ZWMgPSAoZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg
ICAgdm0udGhyb3dFeGNlcHRpb24oX19jdF9leGVjLCBleGNlcHRpb25Ub1Rocm93KTsgICAgICAg
ICAgICAgICAgIFwKLSAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1QTChfX2N0X2V4ZWMsIGNhbGxU
b1Rocm93KF9fY3RfZXhlYykpOyAgICAgICAgIFwKKyAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1Q
TCgwLCBjYWxsVG9UaHJvdyhfX2N0X2V4ZWMpKTsgICAgICAgICAgICAgICAgIFwKICAgICB9IHdo
aWxlIChmYWxzZSkKIAogI2RlZmluZSBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihleGVjKSBk
byB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBFeGVjU3RhdGUqIF9fY2Nl
X2V4ZWMgPSAoZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg
ICBpZiAoVU5MSUtFTFkodm0uZXhjZXB0aW9uKCkpKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1QTChfX2NjZV9leGVjLCBj
YWxsVG9UaHJvdyhfX2NjZV9leGVjKSk7ICAgXAorICAgICAgICAgICAgTExJTlRfQ0FMTF9FTkRf
SU1QTCgwLCBjYWxsVG9UaHJvdyhfX2NjZV9leGVjKSk7ICAgICAgICAgICAgXAogICAgIH0gd2hp
bGUgKGZhbHNlKQogCiAjZGVmaW5lIExMSU5UX0NBTExfUkVUVVJOKGV4ZWMsIGNhbGxUYXJnZXQp
IGRvIHsgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEV4ZWNTdGF0ZSogX19jcl9l
eGVjID0gKGV4ZWMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAg
IHZvaWQqIF9fY3JfY2FsbFRhcmdldCA9IChjYWxsVGFyZ2V0KTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgIExMSU5UX0NBTExfQ0hFQ0tfRVhDRVBUSU9OKF9fY3JfZXhlYy0+
Y2FsbGVyRnJhbWUoKSk7ICAgICAgICAgICBcCisgICAgICAgIExMSU5UX0NBTExfQ0hFQ0tfRVhD
RVBUSU9OKF9fY3JfZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIExM
SU5UX0NBTExfRU5EX0lNUEwoX19jcl9leGVjLCBfX2NyX2NhbGxUYXJnZXQpOyAgICAgICAgICAg
ICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKKyNkZWZpbmUgTExJTlRfUkVUVVJOX0NBTExF
RV9GUkFNRShleGVjQ2FsbGVlKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
RXhlY1N0YXRlKiBfX3JjZl9leGVjID0gKGV4ZWNDYWxsZWUpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgTExJTlRfUkVUVVJOX1RXTyhwYywgX19yY2ZfZXhlYyk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlIChmYWxzZSkKKyAgICAKKwog
ZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhY2Vfb3BlcmFuZChFeGVjU3Rh
dGUqIGV4ZWMsIEluc3RydWN0aW9uKiBwYywgaW50IGZyb21XaGVyZSwgaW50IG9wZXJhbmQpCiB7
CiAgICAgTExJTlRfQkVHSU4oKTsKQEAgLTI0Miw2ICsyNTAsMTAgQEAgTExJTlRfU0xPV19QQVRI
X0RFQ0wodHJhY2UpCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnRwdHJfdD4ocGMgLSBleGVj
LT5jb2RlQmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSksCiAgICAgICAgICAgICBvcGNv
ZGVOYW1lc1tleGVjLT52bSgpLmludGVycHJldGVyLT5nZXRPcGNvZGVJRChwY1swXS51Lm9wY29k
ZSldLAogICAgICAgICAgICAgZXhlYy0+c2NvcGUoKSwgcGMpOworICAgIGlmIChleGVjLT52bSgp
LmludGVycHJldGVyLT5nZXRPcGNvZGVJRChwY1swXS51Lm9wY29kZSkgPT0gb3BfZW50ZXIpIHsK
KyAgICAgICAgZGF0YUxvZ0YoIkZyYW1lIHdpbGwgZXZlbnR1YWxseSByZXR1cm4gdG8gJXBcbiIs
IGV4ZWMtPnJldHVyblBDKCkudmFsdWUoKSk7CisgICAgICAgICpiaXR3aXNlX2Nhc3Q8dm9sYXRp
bGUgY2hhcio+KGV4ZWMtPnJldHVyblBDKCkudmFsdWUoKSk7CisgICAgfQogICAgIGlmIChleGVj
LT52bSgpLmludGVycHJldGVyLT5nZXRPcGNvZGVJRChwY1swXS51Lm9wY29kZSkgPT0gb3BfcmV0
KSB7CiAgICAgICAgIGRhdGFMb2dGKCJXaWxsIGJlIHJldHVybmluZyB0byAlcFxuIiwgZXhlYy0+
cmV0dXJuUEMoKS52YWx1ZSgpKTsKICAgICAgICAgZGF0YUxvZ0YoIlRoZSBuZXcgY2ZyIHdpbGwg
YmUgJXBcbiIsIGV4ZWMtPmNhbGxlckZyYW1lKCkpOwpAQCAtMzI1LDE1ICszMzcsMTcgQEAgc3Rh
dGljIFNsb3dQYXRoUmV0dXJuVHlwZSBlbnRyeU9TUihFeGVjUwogICAgIAogICAgIGlmICghc2hv
dWxkSklUKGV4ZWMpKSB7CiAgICAgICAgIGNvZGVCbG9jay0+ZG9udEpJVEFueXRpbWVTb29uKCk7
Ci0gICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgZXhlYyk7CisgICAgICAgIExMSU5UX1JFVFVS
Tl9UV08oMCwgMCk7CiAgICAgfQogICAgIGlmICghaml0Q29tcGlsZUFuZFNldEhldXJpc3RpY3Mo
Y29kZUJsb2NrLCBleGVjKSkKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAg
ICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsKICAgICAKICAgICBpZiAoa2luZCA9PSBQcm9s
b2d1ZSkKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTyhjb2RlQmxvY2stPmppdENvZGUoKS0+ZXhl
Y3V0YWJsZUFkZHJlc3MoKSwgZXhlYyk7CisgICAgICAgIExMSU5UX1JFVFVSTl9UV08oY29kZUJs
b2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNzKCksIDApOwogICAgIEFTU0VSVChraW5k
ID09IEFyaXR5Q2hlY2spOwotICAgIExMSU5UX1JFVFVSTl9UV08oY29kZUJsb2NrLT5qaXRDb2Rl
V2l0aEFyaXR5Q2hlY2soKS5leGVjdXRhYmxlQWRkcmVzcygpLCBleGVjKTsKKyAgICBMTElOVF9S
RVRVUk5fVFdPKGNvZGVCbG9jay0+aml0Q29kZSgpLT5hZGRyZXNzRm9yQ2FsbCgKKyAgICAgICAg
KmNvZGVCbG9jay0+dm0oKSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgTXVzdENoZWNr
QXJpdHksCisgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpLmV4ZWN1dGFi
bGVBZGRyZXNzKCksIDApOwogfQogI2Vsc2UgLy8gRU5BQkxFKEpJVCkKIHN0YXRpYyBTbG93UGF0
aFJldHVyblR5cGUgZW50cnlPU1IoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiosIENvZGVC
bG9jayogY29kZUJsb2NrLCBjb25zdCBjaGFyKiwgRW50cnlLaW5kKQpAQCAtMzgxLDExICszOTUs
MTEgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0wobG9vcF9vc3IpCiAgICAgCiAgICAgaWYgKCFzaG91
bGRKSVQoZXhlYykpIHsKICAgICAgICAgY29kZUJsb2NrLT5kb250SklUQW55dGltZVNvb24oKTsK
LSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICAgICAgTExJTlRfUkVUVVJO
X1RXTygwLCAwKTsKICAgICB9CiAgICAgCiAgICAgaWYgKCFqaXRDb21waWxlQW5kU2V0SGV1cmlz
dGljcyhjb2RlQmxvY2ssIGV4ZWMpKQotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIGV4ZWMp
OworICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAgIAogICAgIEFTU0VSVChjb2Rl
QmxvY2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7CiAgICAgCkBAIC0zOTgs
MTAgKzQxMiwxMCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChsb29wX29zcikKICAgICB2b2lkKiBq
dW1wVGFyZ2V0ID0gY29kZUJsb2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZz
ZXQobWFwcGluZy0+bV9tYWNoaW5lQ29kZU9mZnNldCk7CiAgICAgQVNTRVJUKGp1bXBUYXJnZXQp
OwogICAgIAotICAgIExMSU5UX1JFVFVSTl9UV08oanVtcFRhcmdldCwgZXhlYyk7CisgICAgTExJ
TlRfUkVUVVJOX1RXTyhqdW1wVGFyZ2V0LCBleGVjLT50b3BPZkZyYW1lKCkpOwogI2Vsc2UgLy8g
RU5BQkxFKEpJVCkKICAgICBjb2RlQmxvY2stPmRvbnRKSVRBbnl0aW1lU29vbigpOwotICAgIExM
SU5UX1JFVFVSTl9UV08oMCwgZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsKICNl
bmRpZiAvLyBFTkFCTEUoSklUKQogfQogCkBAIC00MzcsMTMgKzQ1MSwzNCBAQCBMTElOVF9TTE9X
X1BBVEhfREVDTChzdGFja19jaGVjaykKICAgICBkYXRhTG9nRigiTnVtIHZhcnMgPSAldS5cbiIs
IGV4ZWMtPmNvZGVCbG9jaygpLT5tX251bVZhcnMpOwogICAgIGRhdGFMb2dGKCJDdXJyZW50IGVu
ZCBpcyBhdCAlcC5cbiIsIGV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5kKCkpOwog
I2VuZGlmCi0gICAgQVNTRVJUKCFleGVjLT52bSgpLmludGVycHJldGVyLT5zdGFjaygpLmNvbnRh
aW5zQWRkcmVzcygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZXhl
Yy0+Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKS5vZmZzZXQoKV0pKTsKLSAgICBp
ZiAoVU5MSUtFTFkoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJlZ2lzdGVy
cygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGV4ZWMtPmNvZGVCbG9jaygpLT5tX251bUNhbGxl
ZVJlZ2lzdGVycykub2Zmc2V0KCldKSkpIHsKLSAgICAgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZy
YW1lKCk7Ci0gICAgICAgIENvbW1vblNsb3dQYXRoczo6aW50ZXJwcmV0ZXJUaHJvd0luQ2FsbGVy
KGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7Ci0gICAgICAgIHBjID0gcmV0
dXJuVG9UaHJvd0ZvclRocm93bkV4Y2VwdGlvbihleGVjKTsKLSAgICB9Ci0gICAgTExJTlRfRU5E
X0lNUEwoKTsKKworICAgIC8vIFRoaXMgc3RhY2sgY2hlY2sgaXMgZG9uZSBpbiB0aGUgcHJvbG9n
dWUgZm9yIGEgZnVuY3Rpb24gY2FsbCwgYW5kIHRoZQorICAgIC8vIENhbGxGcmFtZSBpcyBub3Qg
Y29tcGxldGVseSBzZXQgdXAgeWV0LiBGb3IgZXhhbXBsZSwgaWYgdGhlIGZyYW1lIG5lZWRzCisg
ICAgLy8gYW4gYWN0aXZhdGlvbiBvYmplY3QsIHRoZSBhY3RpdmF0aW9uIG9iamVjdCB3aWxsIG9u
bHkgYmUgc2V0IHVwIGFmdGVyCisgICAgLy8gd2Ugc3RhcnQgZXhlY3V0aW5nIHRoZSBmdW5jdGlv
bi4gSWYgd2UgbmVlZCB0byB0aHJvdyBhIFN0YWNrT3ZlcmZsb3dFcnJvcgorICAgIC8vIGhlcmUs
IHRoZW4gd2UgbmVlZCB0byB0ZWxsIHRoZSBwcm9sb2d1ZSB0byBzdGFydCB0aGUgc3RhY2sgdW53
aW5kaW5nIGZyb20KKyAgICAvLyB0aGUgY2FsbGVyIGZyYW1lICh3aGljaCBpcyBmdWxseSBzZXQg
dXApIGluc3RlYWQuIFRvIGRvIHRoYXQsIHdlIHJldHVybgorICAgIC8vIHRoZSBjYWxsZXIncyBD
YWxsRnJhbWUgaW4gdGhlIHNlY29uZCByZXR1cm4gdmFsdWUuCisgICAgLy8KKyAgICAvLyBJZiB0
aGUgc3RhY2sgY2hlY2sgc3VjY2VlZHMgYW5kIHdlIGRvbid0IG5lZWQgdG8gdGhyb3cgdGhlIGVy
cm9yLCB0aGVuCisgICAgLy8gd2UnbGwgcmV0dXJuIDAgaW5zdGVhZC4gVGhlIHByb2xvZ3VlIHdp
bGwgY2hlY2sgZm9yIGEgbm9uLXplcm8gdmFsdWUKKyAgICAvLyB3aGVuIGRldGVybWluaW5nIHdo
ZXRoZXIgdG8gc2V0IHRoZSBjYWxsRnJhbWUgb3Igbm90LgorCisgICAgLy8gRm9yIEpJVCBlbmFi
bGVkIGJ1aWxkcyB3aGljaCB1c2VzIHRoZSBDIHN0YWNrLCB0aGUgc3RhY2sgaXMgbm90IGdyb3dh
YmxlLgorICAgIC8vIEhlbmNlLCBpZiB3ZSBnZXQgaGVyZSwgdGhlbiB3ZSBrbm93IGEgc3RhY2sg
b3ZlcmZsb3cgaXMgaW1taW5lbnQuIFNvLCBqdXN0CisgICAgLy8gdGhyb3cgdGhlIFN0YWNrT3Zl
cmZsb3dFcnJvciB1bmNvbmRpdGlvbmFsbHkuCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAg
ICBBU1NFUlQoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmNvbnRhaW5zQWRkcmVzcyhleGVjLT50
b3BPZkZyYW1lKCkpKTsKKyAgICBpZiAoTElLRUxZKHZtLmludGVycHJldGVyLT5zdGFjaygpLmVu
c3VyZUNhcGFjaXR5Rm9yKGV4ZWMtPnRvcE9mRnJhbWUoKSkpKQorICAgICAgICBMTElOVF9SRVRV
Uk5fVFdPKHBjLCAwKTsKKyNlbmRpZgorCisgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7
CisgICAgdm0udG9wQ2FsbEZyYW1lID0gZXhlYzsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJy
b3JTY29wZSh2bSk7CisgICAgQ29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5DYWxs
ZXIoZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKKyAgICBwYyA9IHJldHVy
blRvVGhyb3dGb3JUaHJvd25FeGNlcHRpb24oZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RXTyhw
YywgZXhlYyk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jcmVhdGVfYWN0
aXZhdGlvbikKQEAgLTEwNDUsNyArMTA4MCw3IEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUg
c2V0VXBDYWxsKEV4ZWMKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cjsKICAgICBD
b2RlQmxvY2sqIGNvZGVCbG9jayA9IDA7CiAgICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0
aW9uKCkpCi0gICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5ob3N0Q29kZUVudHJ5Rm9yKGtp
bmQpOworICAgICAgICBjb2RlUHRyID0gZXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcih2bSwga2lu
ZCwgTXVzdENoZWNrQXJpdHksIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogICAg
IGVsc2UgewogICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9
IHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpOwogICAgICAgICBK
U09iamVjdCogZXJyb3IgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPnByZXBhcmVGb3JFeGVjdXRpb24o
ZXhlY0NhbGxlZSwgY2FsbGVlLT5zY29wZSgpLCBraW5kKTsKQEAgLTEwNTMsMTIgKzEwODgsMTYg
QEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBzZXRVcENhbGwoRXhlYwogICAgICAgICAgICAg
TExJTlRfQ0FMTF9USFJPVyhleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLCBlcnJvcik7CiAgICAg
ICAgIGNvZGVCbG9jayA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Y29kZUJsb2NrRm9yKGtpbmQpOwog
ICAgICAgICBBU1NFUlQoY29kZUJsb2NrKTsKKyAgICAgICAgQXJpdHlDaGVja01vZGUgYXJpdHk7
CiAgICAgICAgIGlmIChleGVjQ2FsbGVlLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIDwg
c3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkpCi0gICAgICAg
ICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5qc0NvZGVXaXRoQXJpdHlDaGVja0Vu
dHJ5Rm9yKGtpbmQpOworICAgICAgICAgICAgYXJpdHkgPSBNdXN0Q2hlY2tBcml0eTsKICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+anNDb2Rl
RW50cnlGb3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9IEFyaXR5Q2hlY2tOb3RSZXF1aXJl
ZDsKKyAgICAgICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcih2
bSwga2luZCwgYXJpdHksIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogICAgIH0K
ICAgICAKKyAgICBBU1NFUlQoISFjb2RlUHRyKTsKKyAgICAKICAgICBpZiAoIUxMSU5UX0FMV0FZ
U19BQ0NFU1NfU0xPVyAmJiBjYWxsTGlua0luZm8pIHsKICAgICAgICAgRXhlY1N0YXRlKiBleGVj
Q2FsbGVyID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKICAgICAgICAgCkBAIC0xMTEwLDE5
ICsxMTQ5LDE5IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jb25zdHJ1Y3QKICAg
ICByZXR1cm4gZ2VuZXJpY0NhbGwoZXhlYywgcGMsIENvZGVGb3JDb25zdHJ1Y3QpOwogfQogCi1M
TElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVfZm9yX3Zh
cmFyZ3MpCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2l6ZV9mcmFtZV9mb3JfdmFy
YXJncykKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIC8vIFRoaXMgbmVlZHMgdG86CiAgICAg
Ly8gLSBTZXQgdXAgYSBjYWxsIGZyYW1lIHdoaWxlIHJlc3BlY3RpbmcgdGhlIHZhcmlhYmxlIGFy
Z3VtZW50cy4KICAgICAKLSAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUgPSBzaXplQW5kQWxsb2NG
cmFtZUZvclZhcmFyZ3MoZXhlYywgJnZtLmludGVycHJldGVyLT5zdGFjaygpLAorICAgIEV4ZWNT
dGF0ZSogZXhlY0NhbGxlZSA9IHNpemVGcmFtZUZvclZhcmFyZ3MoZXhlYywgJnZtLmludGVycHJl
dGVyLT5zdGFjaygpLAogICAgICAgICBMTElOVF9PUF9DKDQpLmpzVmFsdWUoKSwgcGNbNV0udS5v
cGVyYW5kKTsKICAgICBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihleGVjKTsKICAgICAKICAg
ICB2bS5uZXdDYWxsRnJhbWVSZXR1cm5WYWx1ZSA9IGV4ZWNDYWxsZWU7CiAKLSAgICBMTElOVF9F
TkQoKTsKKyAgICBMTElOVF9SRVRVUk5fQ0FMTEVFX0ZSQU1FKGV4ZWNDYWxsZWUpOwogfQogCiBM
TElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF92YXJhcmdzKQpAQCAtMTMxMiwxMyAr
MTM1MSw2IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wcm9maWxlX2QKICAgICBM
TElOVF9FTkQoKTsKIH0KIAotTExJTlRfU0xPV19QQVRIX0RFQ0wodGhyb3dfZnJvbV9uYXRpdmVf
Y2FsbCkKLXsKLSAgICBMTElOVF9CRUdJTigpOwotICAgIEFTU0VSVCh2bS5leGNlcHRpb24oKSk7
Ci0gICAgTExJTlRfRU5EKCk7Ci19Ci0KIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9o
YW5kbGVfZXhjZXB0aW9uKQogewogICAgIExMSU5UX0JFR0lOX05PX1NFVF9QQygpOwpAQCAtMTM4
OCw2ICsxNDIwLDIzIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfdG9fc2MK
ICAgICBMTElOVF9FTkQoKTsKIH0KIAorU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3Rocm93X3N0
YWNrX292ZXJmbG93X2Vycm9yKFZNKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvRnJhbWUpCit7
CisgICAgRXhlY1N0YXRlKiBleGVjID0gdm0tPnRvcENhbGxGcmFtZTsKKyAgICBpZiAoIWV4ZWMp
CisgICAgICAgIGV4ZWMgPSBwcm90b0ZyYW1lLT5zY29wZSgpLT5nbG9iYWxPYmplY3QoKS0+Z2xv
YmFsRXhlYygpOworICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpOworICAgIHJldHVy
biBlbmNvZGVSZXN1bHQoMCwgMCk7Cit9CisKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorU2xv
d1BhdGhSZXR1cm5UeXBlIGxsaW50X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5KFZNKiB2bSwgUmVn
aXN0ZXIqIG5ld1RvcE9mU3RhY2spCit7CisgICAgYm9vbCBzdWNjZXNzID0gdm0tPmludGVycHJl
dGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKG5ld1RvcE9mU3RhY2spOworICAgIHJldHVy
biBlbmNvZGVSZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3VjY2VzcyksIDApOworfQor
I2VuZGlmCisKIGV4dGVybiAiQyIgdm9pZCBsbGludF93cml0ZV9iYXJyaWVyX3Nsb3coRXhlY1N0
YXRlKiwgSlNDZWxsKiBjZWxsKQogewogICAgIEhlYXA6OndyaXRlQmFycmllcihjZWxsKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xh
c3MgRXhlY1N0YXRlOwogc3RydWN0IEluc3RydWN0aW9uOworc3RydWN0IFByb3RvQ2FsbEZyYW1l
OwogCiBuYW1lc3BhY2UgTExJbnQgewogCkBAIC0xMDEsNyArMTAyLDcgQEAgTExJTlRfU0xPV19Q
QVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZQogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNM
KHNsb3dfcGF0aF9uZXdfZnVuY19leHApOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY29u
c3RydWN0KTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfc2l6ZV9hbmRf
YWxsb2NfZnJhbWVfZm9yX3ZhcmFyZ3MpOworTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJhcmdzKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfY2FsbF92YXJhcmdzKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfY2FsbF9ldmFsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfdGVhcl9vZmZfYWN0aXZhdGlvbik7CkBAIC0xMTksMTEgKzEyMCwxNCBAQCBMTElOVF9T
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2hhCiBMTElOVF9TTE9XX1BBVEhfSElEREVO
X0RFQ0woc2xvd19wYXRoX2RlYnVnKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF9wcm9maWxlX2RpZF9jYWxsKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTCh0
aHJvd19mcm9tX25hdGl2ZV9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfaGFuZGxlX2V4Y2VwdGlvbik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xv
d19wYXRoX3Jlc29sdmVfc2NvcGUpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3df
cGF0aF9nZXRfZnJvbV9zY29wZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19w
YXRoX3B1dF90b19zY29wZSk7CitleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90
aHJvd19zdGFja19vdmVyZmxvd19lcnJvcihWTSosIFByb3RvQ2FsbEZyYW1lKik7CisjaWYgRU5B
QkxFKExMSU5UX0NfTE9PUCkKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3N0
YWNrX2NoZWNrX2F0X3ZtX2VudHJ5KFZNKiwgUmVnaXN0ZXIqKTsKKyNlbmRpZgogCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6TExJbnQKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50VGh1bmtzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRUaHVua3MuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NCw1OCArOTQs
MTYgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHByb2dyYW1FbnRyeVRodW5rRwogCiAvLyBOb24t
SklUIChpLmUuIEMgTG9vcCBMTElOVCkgY2FzZToKIAotdHlwZWRlZiBKU1ZhbHVlICgqRXhlY3V0
ZUNvZGUpIChDYWxsRnJhbWUqLCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcyk7Ci0KLXRlbXBsYXRl
PEV4ZWN1dGVDb2RlIGV4ZWN1dGU+Ci1FbmNvZGVkSlNWYWx1ZSBkb0NhbGxUb0phdmFTY3JpcHQo
dm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSkK
K0VuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogZXhlY3V0YWJsZUFkZHJlc3Ms
IFZNKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lKQogewotICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gcHJvdG9DYWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgIEpTU2NvcGUq
IHNjb3BlID0gcHJvdG9DYWxsRnJhbWUtPnNjb3BlKCk7Ci0gICAgSlNPYmplY3QqIGNhbGxlZSA9
IHByb3RvQ2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBpbnQgYXJnQ291bnRJbmNsdWRpbmdUaGlz
ID0gcHJvdG9DYWxsRnJhbWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCk7Ci0gICAgaW50
IGFyZ0NvdW50ID0gcHJvdG9DYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IHByb3RvQ2FsbEZyYW1lLT50aGlzVmFsdWUoKTsKLSAgICBKU1N0YWNrJiBz
dGFjayA9IHNjb3BlLT52bSgpLT5pbnRlcnByZXRlci0+c3RhY2soKTsKLQotICAgIENhbGxGcmFt
ZSogbmV3Q2FsbEZyYW1lID0gc3RhY2sucHVzaEZyYW1lKGNvZGVCbG9jaywgc2NvcGUsIGFyZ0Nv
dW50SW5jbHVkaW5nVGhpcywgY2FsbGVlKTsKLSAgICBpZiAoVU5MSUtFTFkoIW5ld0NhbGxGcmFt
ZSkpIHsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHNjb3BlLT5nbG9i
YWxPYmplY3QoKTsKLSAgICAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9i
YWxFeGVjKCk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dTdGFja092ZXJm
bG93RXJyb3IoZXhlYykpOwotICAgIH0KLQotICAgIC8vIFNldCB0aGUgYXJndW1lbnRzIGZvciB0
aGUgY2FsbGVlOgotICAgIG5ld0NhbGxGcmFtZS0+c2V0VGhpc1ZhbHVlKHRoaXNWYWx1ZSk7Ci0g
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdDb3VudDsgKytpKQotICAgICAgICBuZXdDYWxsRnJh
bWUtPnNldEFyZ3VtZW50KGksIHByb3RvQ2FsbEZyYW1lLT5hcmd1bWVudChpKSk7Ci0KLSAgICBK
U1ZhbHVlIHJlc3VsdCA9IGV4ZWN1dGUobmV3Q2FsbEZyYW1lLCBleGVjdXRhYmxlQWRkcmVzcyk7
Ci0KLSAgICBzdGFjay5wb3BGcmFtZShuZXdDYWxsRnJhbWUpOwotCisgICAgSlNWYWx1ZSByZXN1
bHQgPSBDTG9vcDo6ZXhlY3V0ZShsbGludF9jYWxsX3RvX2phdmFzY3JpcHQsIGV4ZWN1dGFibGVB
ZGRyZXNzLCB2bSwgcHJvdG9DYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGV4ZWN1dGVKUyhDYWxsRnJhbWUq
IG5ld0NhbGxGcmFtZSwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MpCi17Ci0gICAgT3Bjb2RlIGVu
dHJ5T3Bjb2RlID0gKnJlaW50ZXJwcmV0X2Nhc3Q8T3Bjb2RlKj4oJmV4ZWN1dGFibGVBZGRyZXNz
KTsKLSAgICByZXR1cm4gQ0xvb3A6OmV4ZWN1dGUobmV3Q2FsbEZyYW1lLCBlbnRyeU9wY29kZSk7
Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogZXhlY3V0YWJsZUFk
ZHJlc3MsIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUsIFJlZ2lz
dGVyKikKLXsKLSAgICByZXR1cm4gZG9DYWxsVG9KYXZhU2NyaXB0PGV4ZWN1dGVKUz4oZXhlY3V0
YWJsZUFkZHJlc3MsIHByb3RvQ2FsbEZyYW1lKTsKLX0KLQotc3RhdGljIGlubGluZSBKU1ZhbHVl
IGV4ZWN1dGVOYXRpdmUoQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUsIHZvaWQqIGV4ZWN1dGFibGVB
ZGRyZXNzKQorRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCogZXhlY3V0
YWJsZUFkZHJlc3MsIFZNKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lKQogewot
ICAgIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oZXhlY3V0YWJsZUFkZHJlc3MpOwotICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUoZnVu
Y3Rpb24obmV3Q2FsbEZyYW1lKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1
bmN0aW9uKHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJh
bWUqIHByb3RvQ2FsbEZyYW1lLCBSZWdpc3RlciopCi17Ci0gICAgcmV0dXJuIGRvQ2FsbFRvSmF2
YVNjcmlwdDxleGVjdXRlTmF0aXZlPihleGVjdXRhYmxlQWRkcmVzcywgcHJvdG9DYWxsRnJhbWUp
OworICAgIEpTVmFsdWUgcmVzdWx0ID0gQ0xvb3A6OmV4ZWN1dGUobGxpbnRfY2FsbF90b19uYXRp
dmVfZnVuY3Rpb24sIGV4ZWN1dGFibGVBZGRyZXNzLCB2bSwgcHJvdG9DYWxsRnJhbWUpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShK
SVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDE2ICszNCwxNCBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotY2xhc3MgRXhlY1N0YXRlOwotY2xhc3MgUmVnaXN0ZXI7CiBjbGFzcyBWTTsKIHN0cnVjdCBQ
cm90b0NhbGxGcmFtZTsKIAogZXh0ZXJuICJDIiB7Ci0gICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRv
SmF2YVNjcmlwdCh2b2lkKiwgRXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIq
KTsKLSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiwgRXhlY1N0
YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKKyAgICBFbmNvZGVkSlNWYWx1ZSBj
YWxsVG9KYXZhU2NyaXB0KHZvaWQqLCBWTSosIFByb3RvQ2FsbEZyYW1lKik7CisgICAgRW5jb2Rl
ZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCosIFZNKiwgUHJvdG9DYWxsRnJhbWUq
KTsKICNpZiBFTkFCTEUoSklUKQotICAgIHZvaWQgcmV0dXJuRnJvbUphdmFTY3JpcHQoKTsKKyAg
ICB2b2lkIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uKCk7CiAjZW5kaWYKIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20JKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQg
KzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xMDIsOSArMTAyLDExIEBAIG1hY3JvIGNDYWxsMihmdW5jdGlvbiwgYXJnMSwgYXJn
MikKICAgICAgICAgbW92ZSBhcmcyLCBhMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxz
aWYgWDg2Ci0gICAgICAgIHBva2UgYXJnMSwgMAotICAgICAgICBwb2tlIGFyZzIsIDEKKyAgICAg
ICAgc3VicCA4LCBzcAorICAgICAgICBwdXNoIGFyZzIKKyAgICAgICAgcHVzaCBhcmcxCiAgICAg
ICAgIGNhbGwgZnVuY3Rpb24KKyAgICAgICAgYWRkcCAxNiwgc3AKICAgICBlbHNpZiBTSDQKICAg
ICAgICAgc2V0YXJncyBhcmcxLCBhcmcyCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KQEAgLTEyNCwx
MSArMTI2LDEyIEBAIG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywKICAg
ICAgICAgbW92ZSBhcmc0LCBhMwogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYgWDg2
Ci0gICAgICAgIHBva2UgYXJnMSwgMAotICAgICAgICBwb2tlIGFyZzIsIDEKLSAgICAgICAgcG9r
ZSBhcmczLCAyCi0gICAgICAgIHBva2UgYXJnNCwgMworICAgICAgICBwdXNoIGFyZzQKKyAgICAg
ICAgcHVzaCBhcmczCisgICAgICAgIHB1c2ggYXJnMgorICAgICAgICBwdXNoIGFyZzEKICAgICAg
ICAgY2FsbCBmdW5jdGlvbgorICAgICAgICBhZGRwIDE2LCBzcAogICAgIGVsc2lmIFNINAogICAg
ICAgICBzZXRhcmdzIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQKICAgICAgICAgY2FsbCBmdW5jdGlv
bgpAQCAtMTQyLDg1ICsxNDUsNDIgQEAgZW5kCiBtYWNybyBjYWxsU2xvd1BhdGgoc2xvd1BhdGgp
CiAgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQogICAgIG1vdmUgdDAsIFBDCi0gICAgbW92
ZSB0MSwgY2ZyCi1lbmQKLQotbWFjcm8gZnVuY3Rpb25Qcm9sb2d1ZShleHRyYVN0YWNrU3BhY2Up
Ci0gICAgaWYgWDg2Ci0gICAgICAgIHB1c2ggY2ZyCi0gICAgICAgIG1vdmUgc3AsIGNmcgotICAg
IGVuZAotICAgIHB1c2hDYWxsZWVTYXZlcwotICAgIGlmIEFSTSBvciBBUk12NyBvciBBUk12N19U
UkFESVRJT05BTCBvciBNSVBTCi0gICAgICAgIHB1c2ggY2ZyCi0gICAgICAgIHB1c2ggbHIKLSAg
ICBlbmQKLSAgICBzdWJwIGV4dHJhU3RhY2tTcGFjZSwgc3AKIGVuZAogCi1tYWNybyBmdW5jdGlv
bkVwaWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBhZGRwIGV4dHJhU3RhY2tTcGFjZSwgc3AK
LSAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUwotICAgICAg
ICBwb3AgbHIKLSAgICAgICAgcG9wIGNmcgotICAgIGVuZAotICAgIHBvcENhbGxlZVNhdmVzCitt
YWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwpCiAgICAgaWYgWDg2Ci0gICAgICAgIHBv
cCBjZnIKLSAgICBlbmQKLWVuZAorICAgICAgICBjb25zdCBlbnRyeSA9IHQ0CisgICAgICAgIGNv
bnN0IHZtID0gdDMKKyAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSB0NQogCi1tYWNybyBk
b0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0dXJuKQotICAgIGlmIFg4NgotICAgICAg
ICBjb25zdCBlbnRyeSA9IHQ1Ci0gICAgICAgIGNvbnN0IHZtVG9wQ2FsbEZyYW1lID0gdDIKLSAg
ICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSB0NAotCi0gICAgICAgIGNvbnN0IGV4dHJhU3Rh
Y2tTcGFjZSA9IDI4CiAgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDAKICAgICAgICAgY29u
c3QgcHJldmlvdXNQQyA9IHQxCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDAgIyBTYW1lIGFzIHBy
ZXZpb3VzQ0ZSCiAgICAgICAgIGNvbnN0IHRlbXAyID0gdDEgIyBTYW1lIGFzIHByZXZpb3VzUEMK
LSAgICAgICAgY29uc3QgdGVtcDMgPSB0MiAjIHNhbWUgYXMgdm1Ub3BDYWxsRnJhbWUKLSAgICAg
ICAgY29uc3QgdGVtcDQgPSB0MwotICAgIGVsc2lmIEFSTSBvciBBUk12N19UUkFESVRJT05BTAot
ICAgICAgICBjb25zdCBlbnRyeSA9IGEwCi0gICAgICAgIGNvbnN0IHZtVG9wQ2FsbEZyYW1lID0g
YTEKLSAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSBhMgotICAgICAgICBjb25zdCB0b3BP
ZlN0YWNrID0gYTMKLQotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAxNgotICAgICAg
ICBjb25zdCBwcmV2aW91c0NGUiA9IHQzCi0gICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSBscgot
ICAgICAgICBjb25zdCB0ZW1wMSA9IHQzICMgU2FtZSBhcyBwcmV2aW91c0NGUgotICAgICAgICBj
b25zdCB0ZW1wMiA9IGEzICMgU2FtZSBhcyB0b3BPZlN0YWNrCi0gICAgICAgIGNvbnN0IHRlbXAz
ID0gdDQKLSAgICAgICAgY29uc3QgdGVtcDQgPSB0NQotICAgIGVsc2lmIEFSTXY3CisgICAgICAg
IGNvbnN0IHRlbXAzID0gdDIKKyAgICAgICAgY29uc3QgdGVtcDQgPSB0MyAjIHNhbWUgYXMgdm0K
KyAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgQ19MT09QCiAg
ICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm1Ub3BDYWxsRnJhbWUgPSBh
MQorICAgICAgICBjb25zdCB2bSA9IGExCiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0g
YTIKLSAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAgY29uc3QgZXh0cmFT
dGFja1NwYWNlID0gMjgKICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MwogICAgICAgICBj
b25zdCBwcmV2aW91c1BDID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MyAjIFNhbWUgYXMg
cHJldmlvdXNDRlIKLSAgICAgICAgY29uc3QgdGVtcDIgPSBhMyAjIFNhbWUgYXMgdG9wT2ZTdGFj
awotICAgICAgICBjb25zdCB0ZW1wMyA9IHQ0Ci0gICAgICAgIGNvbnN0IHRlbXA0ID0gdDUKKyAg
ICAgICAgY29uc3QgdGVtcDIgPSB0NAorICAgICAgICBjb25zdCB0ZW1wMyA9IHQ1CisgICAgICAg
IGNvbnN0IHRlbXA0ID0gdDQgIyBTYW1lIGFzIHRlbXAyCiAgICAgZWxzaWYgTUlQUwogICAgICAg
ICBjb25zdCBlbnRyeSA9IGEwCiAgICAgICAgIGNvbnN0IHZtVG9wQ2FsbEZyYW1lID0gYTEKICAg
ICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSBhMgogICAgICAgICBjb25zdCB0b3BPZlN0YWNr
ID0gYTMKIAotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAzNgogICAgICAgICBjb25z
dCBwcmV2aW91c0NGUiA9IHQyCiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSBscgogICAgICAg
ICBjb25zdCB0ZW1wMSA9IHQzCi0gICAgICAgIGNvbnN0IHRlbXAyID0gdDQKLSAgICAgICAgY29u
c3QgdGVtcDMgPSB0NQorICAgICAgICBjb25zdCB0ZW1wMiA9IHQ1CisgICAgICAgIGNvbnN0IHRl
bXAzID0gdDQKICAgICAgICAgY29uc3QgdGVtcDQgPSB0NgogICAgIGVsc2lmIFNINAogICAgICAg
ICBjb25zdCBlbnRyeSA9IGEwCkBAIC0yMjgsNyArMTg4LDYgQEAgbWFjcm8gZG9DYWxsVG9KYXZh
U2NyaXB0KG1ha2VDYWxsLCBkb1JldAogICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IGEy
CiAgICAgICAgIGNvbnN0IHRvcE9mU3RhY2sgPSBhMwogCi0gICAgICAgIGNvbnN0IGV4dHJhU3Rh
Y2tTcGFjZSA9IDIwCiAgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDMKICAgICAgICAgY29u
c3QgcHJldmlvdXNQQyA9IGxyCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDMgIyBTYW1lIGFzIHBy
ZXZpb3VzQ0ZSCkBAIC0yMzcsNDkgKzE5Niw3OCBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQo
bWFrZUNhbGwsIGRvUmV0CiAgICAgICAgIGNvbnN0IHRlbXA0ID0gdDkKICAgICBlbmQKIAorICAg
IGNhbGxUb0phdmFTY3JpcHRQcm9sb2d1ZSgpCisKICAgICBpZiBYODYKLSAgICAgICAgbG9hZHAg
W3NwXSwgcHJldmlvdXNQQwotICAgICAgICBtb3ZlIGNmciwgcHJldmlvdXNDRlIKLSAgICBlbmQK
LSAgICBmdW5jdGlvblByb2xvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBpZiBYODYKLSAgICAg
ICAgbG9hZHAgZXh0cmFTdGFja1NwYWNlKzIwW3NwXSwgZW50cnkKLSAgICAgICAgbG9hZHAgZXh0
cmFTdGFja1NwYWNlKzI0W3NwXSwgdm1Ub3BDYWxsRnJhbWUKLSAgICAgICAgbG9hZHAgZXh0cmFT
dGFja1NwYWNlKzI4W3NwXSwgcHJvdG9DYWxsRnJhbWUKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFj
a1NwYWNlKzMyW3NwXSwgY2ZyCisgICAgICAgIGxvYWRwIDM2W3NwXSwgdm0KKyAgICAgICAgbG9h
ZHAgMzJbc3BdLCBlbnRyeQogICAgIGVsc2UKICAgICAgICAgbW92ZSBjZnIsIHByZXZpb3VzQ0ZS
Ci0gICAgICAgIG1vdmUgdG9wT2ZTdGFjaywgY2ZyCiAgICAgZW5kCiAKLSAgICBzdWJwIChDYWxs
RnJhbWVIZWFkZXJTbG90cy0xKSo4LCBjZnIKLSAgICBzdG9yZXAgMCwgQXJndW1lbnRDb3VudCs0
W2Nmcl0KKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMiwgMHhiYWQwZGMwMSkK
KworICAgICMgVGhlIHN0YWNrIHJlc2VydmVkIHpvbmUgZW5zdXJlcyB0aGF0IHdlIGhhdmUgYWRl
cXVhdGUgc3BhY2UgZm9yIHRoZQorICAgICMgVk1FbnRyeVNlbnRpbmVsRnJhbWUuIFByb2NlZWQg
d2l0aCBhbGxvY2F0aW5nIGFuZCBpbml0aWFsaXppbmcgdGhlCisgICAgIyBzZW50aW5lbCBmcmFt
ZS4KKyAgICBtb3ZlIHNwLCBjZnIKKyAgICBzdWJwIENhbGxGcmFtZUhlYWRlclNsb3RzICogOCwg
Y2ZyCiAgICAgc3RvcmVwIDAsIEFyZ3VtZW50Q291bnRbY2ZyXQotICAgIHN0b3JlcCAwLCBDYWxs
ZWUrNFtjZnJdCi0gICAgc3RvcmVwIHZtVG9wQ2FsbEZyYW1lLCBDYWxsZWVbY2ZyXQotICAgIGxv
YWRwIFt2bVRvcENhbGxGcmFtZV0sIHRlbXA0Ci0gICAgc3RvcmVwIDAsIFNjb3BlQ2hhaW4rNFtj
ZnJdCi0gICAgc3RvcmVwIHRlbXA0LCBTY29wZUNoYWluW2Nmcl0KLSAgICBzdG9yZXAgMCwgQ29k
ZUJsb2NrKzRbY2ZyXQorICAgIHN0b3JlcCB2bSwgQ2FsbGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6
dG9wQ2FsbEZyYW1lW3ZtXSwgdGVtcDIKKyAgICBzdG9yZXAgdGVtcDIsIFNjb3BlQ2hhaW5bY2Zy
XQogICAgIHN0b3JlcCAxLCBDb2RlQmxvY2tbY2ZyXQorICAgIGlmIFg4NgorICAgICAgICBsb2Fk
cCAyOFtzcF0sIHByZXZpb3VzUEMKKyAgICAgICAgbG9hZHAgMjRbc3BdLCBwcmV2aW91c0NGUgor
ICAgIGVuZAogICAgIHN0b3JlcCBwcmV2aW91c1BDLCBSZXR1cm5QQ1tjZnJdCiAgICAgc3RvcmVw
IHByZXZpb3VzQ0ZSLCBDYWxsZXJGcmFtZVtjZnJdCi0gICAgbW92ZSBjZnIsIHRlbXAxCisKKyAg
ICBpZiBYODYKKyAgICAgICAgbG9hZHAgNDBbc3BdLCBwcm90b0NhbGxGcmFtZQorICAgIGVuZAog
CiAgICAgbG9hZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2FsbEZyYW1l
XSwgdGVtcDIKICAgICBhZGRwIENhbGxGcmFtZUhlYWRlclNsb3RzLCB0ZW1wMiwgdGVtcDIKICAg
ICBsc2hpZnRwIDMsIHRlbXAyCi0gICAgc3VicCB0ZW1wMiwgY2ZyCi0gICAgc3RvcmVwIHRlbXAx
LCBDYWxsZXJGcmFtZVtjZnJdCisgICAgc3VicCBjZnIsIHRlbXAyLCB0ZW1wMQorCisgICAgIyBF
bnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlvbmFsIHN0YWNrIGNhcGFjaXR5IGZvciB0
aGUgaW5jb21pbmcgYXJncywKKyAgICAjIGFuZCB0aGUgZnJhbWUgZm9yIHRoZSBKUyBjb2RlIHdl
J3JlIGV4ZWN1dGluZy4gV2UgbmVlZCB0byBkbyB0aGlzIGNoZWNrCisgICAgIyBiZWZvcmUgd2Ug
c3RhcnQgY29weWluZyB0aGUgYXJncyBmcm9tIHRoZSBwcm90b0NhbGxGcmFtZSBiZWxvdy4KKyAg
ICBicGFlcSB0ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0YWNrSGVpZ2h0T0sKKwor
ICAgIHN1YnAgY2ZyLCA4LCBzcAorCisgICAgaWYgQ19MT09QCisgICAgICAgIG1vdmUgZW50cnks
IHRlbXAyCisgICAgICAgIG1vdmUgdm0sIHRlbXAzCisgICAgICAgIGNsb29wQ2FsbFNsb3dQYXRo
IF9sbGludF9zdGFja19jaGVja19hdF92bV9lbnRyeSwgdm0sIHRlbXAxCisgICAgICAgIGJwZXEg
dDAsIDAsIC5zdGFja0NoZWNrRmFpbGVkCisgICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5CisgICAg
ICAgIG1vdmUgdGVtcDMsIHZtCisgICAgICAgIGptcCAuc3RhY2tIZWlnaHRPSworCisuc3RhY2tD
aGVja0ZhaWxlZDoKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAgICAgbW92ZSB0ZW1w
Mywgdm0KKyAgICBlbmQKKworICAgIGNDYWxsMihfbGxpbnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3df
ZXJyb3IsIHZtLCBwcm90b0NhbGxGcmFtZSkKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUo
KQorICAgIHJldAogCisuc3RhY2tIZWlnaHRPSzoKKyAgICBtb3ZlIHRlbXAxLCBzcAogICAgIG1v
dmUgNSwgdGVtcDEKIAogLmNvcHlIZWFkZXJMb29wOgogICAgIHN1YmkgMSwgdGVtcDEKLSAgICBs
b2FkcCBbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMs
IENvZGVCbG9ja1tjZnIsIHRlbXAxLCA4XQotICAgIGxvYWRwIDRbcHJvdG9DYWxsRnJhbWUsIHRl
bXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIENvZGVCbG9jays0W2NmciwgdGVtcDEs
IDhdCisgICAgbG9hZGkgVGFnT2Zmc2V0W3Byb3RvQ2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRlbXAz
CisgICAgc3RvcmVpIHRlbXAzLCBUYWdPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4XQor
ICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMK
KyAgICBzdG9yZWkgdGVtcDMsIFBheWxvYWRPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4
XQogICAgIGJ0aW56IHRlbXAxLCAuY29weUhlYWRlckxvb3AKIAogICAgIGxvYWRpIFByb3RvQ2Fs
bEZyYW1lOjphcmdDb3VudEFuZENvZGVPcmlnaW5WYWx1ZVtwcm90b0NhbGxGcmFtZV0sIHRlbXAy
CkBAIC0yODgsMTIgKzI3NiwxMCBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGws
IGRvUmV0CiAgICAgc3ViaSAxLCB0ZW1wMwogCiAgICAgYmllcSB0ZW1wMiwgdGVtcDMsIC5jb3B5
QXJncwotICAgIG1vdmUgMCwgdGVtcDEKLSAgICBtb3ZlIFVuZGVmaW5lZFRhZywgdGVtcDQKIC5m
aWxsRXh0cmFBcmdzTG9vcDoKICAgICBzdWJpIDEsIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAxLCBU
aGlzQXJndW1lbnRPZmZzZXQrOCtQYXlsb2FkT2Zmc2V0W2NmciwgdGVtcDMsIDhdCi0gICAgc3Rv
cmVwIHRlbXA0LCBUaGlzQXJndW1lbnRPZmZzZXQrOCtUYWdPZmZzZXRbY2ZyLCB0ZW1wMywgOF0K
KyAgICBzdG9yZWkgVW5kZWZpbmVkVGFnLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgVGFnT2Zm
c2V0W3NwLCB0ZW1wMywgOF0KKyAgICBzdG9yZWkgMCwgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCAr
IFBheWxvYWRPZmZzZXRbc3AsIHRlbXAzLCA4XQogICAgIGJpbmVxIHRlbXAyLCB0ZW1wMywgLmZp
bGxFeHRyYUFyZ3NMb29wCiAKIC5jb3B5QXJnczoKQEAgLTMwMiw1MiArMjg4LDg3IEBAIG1hY3Jv
IGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXQKIC5jb3B5QXJnc0xvb3A6CiAgICAg
YnRpeiB0ZW1wMiwgLmNvcHlBcmdzRG9uZQogICAgIHN1YmkgMSwgdGVtcDIKLSAgICBsb2FkcCBQ
YXlsb2FkT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCi0gICAgbG9hZHAgVGFnT2Zmc2V0
W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXA0Ci0gICAgc3RvcmVwIHRlbXAzLCBUaGlzQXJndW1lbnRP
ZmZzZXQrOCtQYXlsb2FkT2Zmc2V0W2NmciwgdGVtcDIsIDhdCi0gICAgc3RvcmVwIHRlbXA0LCBU
aGlzQXJndW1lbnRPZmZzZXQrOCtUYWdPZmZzZXRbY2ZyLCB0ZW1wMiwgOF0KKyAgICBsb2FkaSBU
YWdPZmZzZXRbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMKKyAgICBzdG9yZWkgdGVtcDMsIFRoaXNB
cmd1bWVudE9mZnNldCArIDggKyBUYWdPZmZzZXRbc3AsIHRlbXAyLCA4XQorICAgIGxvYWRpIFBh
eWxvYWRPZmZzZXRbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMKKyAgICBzdG9yZWkgdGVtcDMsIFRo
aXNBcmd1bWVudE9mZnNldCArIDggKyBQYXlsb2FkT2Zmc2V0W3NwLCB0ZW1wMiwgOF0KICAgICBq
bXAgLmNvcHlBcmdzTG9vcAogCiAuY29weUFyZ3NEb25lOgotICAgIGlmIFg4NgotICAgICAgICBs
b2FkcCBleHRyYVN0YWNrU3BhY2UrMjRbc3BdLCB2bVRvcENhbGxGcmFtZQotICAgIGVuZAotICAg
IHN0b3JlcCBjZnIsIFt2bVRvcENhbGxGcmFtZV0KKyAgICBzdG9yZXAgc3AsIFZNOjp0b3BDYWxs
RnJhbWVbdm1dCiAKLSAgICBtYWtlQ2FsbChlbnRyeSwgdGVtcDEpCisgICAgbWFrZUNhbGwoZW50
cnksIHRlbXAxLCB0ZW1wMikKIAogICAgIGJwZXEgQ29kZUJsb2NrW2Nmcl0sIDEsIC5jYWxsZWVG
cmFtZVBvcHBlZAogICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgogCiAuY2FsbGVlRnJh
bWVQb3BwZWQ6Ci0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAzICMgVk0udG9wQ2FsbEZyYW1l
Ci0gICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0ZW1wNAotICAgIHN0b3JlcCB0ZW1wNCwgW3Rl
bXAzXQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0ZW1wMyAjIFZNCisgICAgbG9hZHAgU2NvcGVD
aGFpbltjZnJdLCB0ZW1wNCAjIHByZXZpb3VzIHRvcENhbGxGcmFtZQorICAgIHN0b3JlcCB0ZW1w
NCwgVk06OnRvcENhbGxGcmFtZVt0ZW1wM10KIAotICAgIGRvUmV0dXJuKGV4dHJhU3RhY2tTcGFj
ZSkKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQorICAgIHJldAogZW5kCiAKLW1hY3Jv
IG1ha2VKYXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCkKLSAgICBjYWxsIGVudHJ5CittYWNybyBt
YWtlSmF2YVNjcmlwdENhbGwoZW50cnksIHRlbXAsIHVudXNlZCkKKyAgICBhZGRwIENhbGxlckZy
YW1lQW5kUENTaXplLCBzcAorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGJh
ZDBkYzAyKQorICAgIGlmIENfTE9PUAorICAgICAgICBjbG9vcENhbGxKU0Z1bmN0aW9uIGVudHJ5
CisgICAgZWxzZQorICAgICAgICBjYWxsIGVudHJ5CisgICAgZW5kCisgICAgY2hlY2tTdGFja1Bv
aW50ZXJBbGlnbm1lbnQodDIsIDB4YmFkMGRjMDMpCisgICAgc3VicCBDYWxsZXJGcmFtZUFuZFBD
U2l6ZSwgc3AKIGVuZAogCi1tYWNybyBtYWtlSG9zdEZ1bmN0aW9uQ2FsbChlbnRyeSwgdGVtcCkK
LSAgICBtb3ZlIGVudHJ5LCB0ZW1wCi0gICAgaWYgWDg2Ci0gICAgICAgICMgUHV0IGNmciBvbiBz
dGFjayBhcyBhcmcwLCBhbHNvIHB1dCBpdCBpbiBlY3ggZm9yICJmYXN0Y2FsbCIgdGFyZ2V0cwot
ICAgICAgICBwb2tlIGNmciwgMAotICAgICAgICBtb3ZlIGNmciwgdDIKK21hY3JvIG1ha2VIb3N0
RnVuY3Rpb25DYWxsKGVudHJ5LCB0ZW1wMSwgdGVtcDIpCisgICAgbW92ZSBlbnRyeSwgdGVtcDEK
KyAgICBpZiBDX0xPT1AKKyAgICAgICAgbW92ZSBzcCwgYTAKKyAgICAgICAgc3RvcmVwIGNmciwg
W3NwXQorICAgICAgICBzdG9yZXAgbHIsIFB0clNpemVbc3BdCisgICAgICAgIGNsb29wQ2FsbE5h
dGl2ZSB0ZW1wMQogICAgIGVsc2UKLSAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAgIGlmIFg4
NgorICAgICAgICAgICAgIyBQdXQgY2FsbGVlIGZyYW1lIHBvaW50ZXIgb24gc3RhY2sgYXMgYXJn
MCwgYWxzbyBwdXQgaXQgaW4gZWN4IGZvciAiZmFzdGNhbGwiIHRhcmdldHMKKyAgICAgICAgICAg
IG1vdmUgMCwgdGVtcDIKKyAgICAgICAgICAgIG1vdmUgdGVtcDIsIDRbc3BdICMgcHV0IDAgaW4g
UmV0dXJuUEMKKyAgICAgICAgICAgIG1vdmUgY2ZyLCBbc3BdICMgcHV0IGNhbGxlciBmcmFtZSBw
b2ludGVyIGludG8gY2FsbGVlIGZyYW1lIHNpbmNlIGNhbGxlZSBwcm9sb2d1ZSBjYW4ndAorICAg
ICAgICAgICAgbW92ZSBzcCwgdDIgIyB0MiBpcyBlY3gKKyAgICAgICAgICAgIHB1c2ggdGVtcDIg
IyBQdXNoIGR1bW15IGFyZzEKKyAgICAgICAgICAgIHB1c2ggdDIKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgbW92ZSBzcCwgYTAKKyAgICAgICAgICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1Np
emUsIHNwCisgICAgICAgIGVuZAorICAgICAgICBjYWxsIHRlbXAxCisgICAgICAgIGlmIFg4Ngor
ICAgICAgICAgICAgYWRkcCA4LCBzcAorICAgICAgICBlbHNlCisgICAgICAgICAgICBzdWJwIENh
bGxlckZyYW1lQW5kUENTaXplLCBzcAorICAgICAgICBlbmQKICAgICBlbmQKLSAgICBjYWxsIHRl
bXAKIGVuZAogCi1tYWNybyBkb1JldHVybkZyb21KYXZhU2NyaXB0KGV4dHJhU3RhY2tTcGFjZSkK
LV9yZXR1cm5Gcm9tSmF2YVNjcmlwdDoKLSAgICBmdW5jdGlvbkVwaWxvZ3VlKGV4dHJhU3RhY2tT
cGFjZSkKK19oYW5kbGVVbmNhdWdodEV4Y2VwdGlvbjoKKyAgICBsb2FkcCBTY29wZUNoYWluICsg
UGF5bG9hZE9mZnNldFtjZnJdLCB0MworICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MworICAg
IGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKKyAg
ICBsb2FkcCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKworICAgICMgU28gZmFyLCB3
ZSd2ZSB1bndvdW5kIHRoZSBzdGFjayB0byB0aGUgZnJhbWUganVzdCBiZWxvdyB0aGUgc2VudGlu
ZWwgZnJhbWUuCisgICAgIyBXZSBuZWVkIHRvIHBvcCB0byB0aGUgc2VudGluZWwgZnJhbWUgYW5k
IGRvIHRoZSBuZWNlc3NhcnkgY2xlYW4gdXAgZm9yCisgICAgIyByZXR1cm5pbmcgdG8gdGhlIGNh
bGxlciBDIGZyYW1lLgorICAgIGxvYWRwIENhbGxlckZyYW1lICsgUGF5bG9hZE9mZnNldFtjZnJd
LCBjZnIKKworICAgIGxvYWRwIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDMgIyBWTQor
ICAgIGxvYWRwIFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQ1ICMgcHJldmlvdXMg
dG9wQ2FsbEZyYW1lCisgICAgc3RvcmVwIHQ1LCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorCisgICAg
Y2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKICAgICByZXQKLWVuZAogCiBtYWNybyBkb1JldHVy
bkZyb21Ib3N0RnVuY3Rpb24oZXh0cmFTdGFja1NwYWNlKQogICAgIGZ1bmN0aW9uRXBpbG9ndWUo
ZXh0cmFTdGFja1NwYWNlKQpAQCAtMzc3LDE0ICszOTgsMTIgQEAgZW5kCiBtYWNybyBjYWxsQ2Fs
bFNsb3dQYXRoKHNsb3dQYXRoLCBhY3Rpb24pCiAgICAgc3RvcmVwIFBDLCBBcmd1bWVudENvdW50
ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCi0gICAgbW92
ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQwKQogZW5kCiAKIG1hY3JvIGNhbGxXYXRjaGRvZ1RpbWVy
SGFuZGxlcih0aHJvd0hhbmRsZXIpCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFn
T2Zmc2V0W2Nmcl0KICAgICBjQ2FsbDIoX2xsaW50X3Nsb3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2df
dGltZXIsIGNmciwgUEMpCi0gICAgbW92ZSB0MSwgY2ZyCiAgICAgYnRwbnogdDAsIHRocm93SGFu
ZGxlcgogICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKIGVuZApA
QCAtMzk1LDggKzQxNCw4IEBAIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKICAgICAg
ICAgbWFjcm8gKCkKICAgICAgICAgICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09m
ZnNldFtjZnJdCiAgICAgICAgICAgICBjQ2FsbDIoX2xsaW50X2xvb3Bfb3NyLCBjZnIsIFBDKQot
ICAgICAgICAgICAgbW92ZSB0MSwgY2ZyCiAgICAgICAgICAgICBidHB6IHQwLCAucmVjb3Zlcgor
ICAgICAgICAgICAgbW92ZSB0MSwgc3AKICAgICAgICAgICAgIGptcCB0MAogICAgICAgICAucmVj
b3ZlcjoKICAgICAgICAgICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwg
UEMKQEAgLTU1MywxOCArNTcyLDM0IEBAIGVuZAogIyBFbnRyeXBvaW50cyBpbnRvIHRoZSBpbnRl
cnByZXRlcgogCiAjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdo
YXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgotbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRv
bmVMYWJlbCwgc2xvd19wYXRoKQorbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwg
c2xvd1BhdGgpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwg
dDAKICAgICBiaWFlcSB0MCwgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCBkb25lTGFi
ZWwKLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKSAgICMgVGhpcyBzbG93X3BhdGggaGFz
IGEgc2ltcGxlIHByb3RvY29sOiB0MCA9IDAgPT4gbm8gZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IK
LSAgICBidGl6IHQwLCAuaXNBcml0eUZpeHVwTmVlZGVkCisgICAgY0NhbGwyKHNsb3dQYXRoLCBj
ZnIsIFBDKSAgICMgVGhpcyBzbG93UGF0aCBoYXMgYSBzaW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9
PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgorICAgIGJ0aXogdDAsIC5ub0Vycm9yCiAgICAg
bW92ZSB0MSwgY2ZyICAgIyB0MSBjb250YWlucyBjYWxsZXIgZnJhbWUKICAgICBqbXAgX2xsaW50
X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIAotLmlzQXJpdHlGaXh1cE5lZWRlZDoK
Ky5ub0Vycm9yOgorICAgICMgdDEgcG9pbnRzIHRvIEFyaXR5Q2hlY2tEYXRhLgorICAgIGxvYWRw
IENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnRodW5rVG9DYWxsW3QxXSwgdDIKKyAg
ICBidHB6IHQyLCAucHJvY2VlZElubGluZQorICAgIAorICAgIGxvYWRwIENvbW1vblNsb3dQYXRo
czo6QXJpdHlDaGVja0RhdGE6OnJldHVyblBDW3QxXSwgdDUKKyAgICBsb2FkcCBDb21tb25TbG93
UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3QxXSwgdDAKKyAgICBjYWxs
IHQyCisgICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwg
dDAKKyAgICAgICAgbG9hZHAgW3QwXSwgdDAKKyAgICBlbmQKKyAgICBqbXAgLmNvbnRpbnVlCisK
Ky5wcm9jZWVkSW5saW5lOgorICAgIGxvYWRpIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0Rh
dGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MQogICAgIGJ0aXogdDEsIC5jb250aW51ZQogCi0g
ICAgLy8gTW92ZSBmcmFtZSB1cCAidDEiIHNsb3RzCisgICAgLy8gTW92ZSBmcmFtZSB1cCAidDEg
KiAyIiBzbG90cworICAgIGxzaGlmdHAgMSwgdDEKICAgICBuZWdpIHQxCiAgICAgbW92ZSBjZnIs
IHQzCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDIKQEAg
LTU4OSw2ICs2MjQsNyBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93
CiAKICAgICBsc2hpZnRwIDMsIHQxCiAgICAgYWRkcCB0MSwgY2ZyCisgICAgYWRkcCB0MSwgc3AK
IC5jb250aW51ZToKICAgICAjIFJlbG9hZCBDb2RlQmxvY2sgYW5kIFBDLCBzaW5jZSB0aGUgc2xv
d19wYXRoIGNsb2JiZXJlZCBpdC4KICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKQEAgLTU5
Niw3ICs2MzIsNiBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAg
ICAgam1wIGRvbmVMYWJlbAogZW5kCiAKLQogbWFjcm8gYnJhbmNoSWZFeGNlcHRpb24obGFiZWwp
CiAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwogICAgIGFuZHAgTWFya2VkQmxvY2tNYXNr
LCB0MwpAQCAtNjExLDYgKzY0Niw3IEBAIGVuZAogCiBfbGxpbnRfb3BfZW50ZXI6CiAgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGRlYWQw
MGUxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MiAgICAgICAgICAgICAgICAvLyB0MjxD
b2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jawogICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1WYXJz
W3QyXSwgdDIgICAgICAvLyB0MjxzaXplX3Q+ID0gdDI8Q29kZUJsb2NrPi5tX251bVZhcnMKICAg
ICBidGl6IHQyLCAub3BFbnRlckRvbmUKQEAgLTE5MjAsMTIgKzE5NTYsMTEgQEAgbWFjcm8gZG9D
YWxsKHNsb3dQYXRoKQogICAgIHN0b3JlaSB0MCwgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRb
dDNdCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCAr
IFRhZ09mZnNldFtjZnJdCi0gICAgc3RvcmVwIGNmciwgQ2FsbGVyRnJhbWVbdDNdCiAgICAgc3Rv
cmVpIHQyLCBBcmd1bWVudENvdW50ICsgUGF5bG9hZE9mZnNldFt0M10KICAgICBzdG9yZWkgQ2Vs
bFRhZywgQ2FsbGVlICsgVGFnT2Zmc2V0W3QzXQogICAgIHN0b3JlaSBDZWxsVGFnLCBTY29wZUNo
YWluICsgVGFnT2Zmc2V0W3QzXQotICAgIG1vdmUgdDMsIGNmcgotICAgIGNhbGxUYXJnZXRGdW5j
dGlvbih0MSkKKyAgICBhZGRwIENhbGxlckZyYW1lQW5kUENTaXplLCB0MworICAgIGNhbGxUYXJn
ZXRGdW5jdGlvbih0MSwgdDMpCiAKIC5vcENhbGxTbG93OgogICAgIHNsb3dQYXRoRm9yQ2FsbChz
bG93UGF0aCkKQEAgLTIwMzksMTAgKzIwNzQsMTIgQEAgX2xsaW50X29wX2NhdGNoOgogICAgICMg
dGhlIGludGVycHJldGVyJ3MgdGhyb3cgdHJhbXBvbGluZSAoc2VlIF9sbGludF90aHJvd190cmFt
cG9saW5lKS4KICAgICAjIFRoZSB0aHJvd2luZyBjb2RlIG11c3QgaGF2ZSBrbm93biB0aGF0IHdl
IHdlcmUgdGhyb3dpbmcgdG8gdGhlIGludGVycHJldGVyLAogICAgICMgYW5kIGhhdmUgc2V0IFZN
Ojp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3cuCi0gICAgbG9hZHAgU2NvcGVDaGFpbltjZnJd
LCB0MworICAgIGxvYWRwIFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQzCiAgICAg
YW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1Nl
dCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwogICAgIGxvYWRwIFZNOjpjYWxsRnJhbWVGb3JUaHJv
d1t0M10sIGNmcgorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQorCiAgICAgbG9h
ZGkgVk06OnRhcmdldEludGVycHJldGVyUENGb3JUaHJvd1t0M10sIFBDCiAgICAgbG9hZGkgVk06
Om1fZXhjZXB0aW9uICsgUGF5bG9hZE9mZnNldFt0M10sIHQwCiAgICAgbG9hZGkgVk06Om1fZXhj
ZXB0aW9uICsgVGFnT2Zmc2V0W3QzXSwgdDEKQEAgLTIxMTYsNzQgKzIxNTMsNjIgQEAgX2xsaW50
X3Rocm93X2R1cmluZ19jYWxsX3RyYW1wb2xpbmU6CiAKIAogbWFjcm8gbmF0aXZlQ2FsbFRyYW1w
b2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCisKKyAgICBmdW5jdGlvblByb2xvZ3Vl
KCkKICAgICBzdG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0KICAgICBsb2FkcCBDYWxsZXJGcmFtZVtj
ZnJdLCB0MAogICAgIGxvYWRpIFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0W3QwXSwgdDEKICAg
ICBzdG9yZWkgQ2VsbFRhZywgU2NvcGVDaGFpbiArIFRhZ09mZnNldFtjZnJdCiAgICAgc3RvcmVp
IHQxLCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtjZnJdCiAgICAgaWYgWDg2Ci0gICAgICAg
IGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ss
IHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3Zt
W3QzXSwgdDMKKyAgICAgICAgc3VicCA4LCBzcCAjIGFsaWduIHN0YWNrIHBvaW50ZXIKKyAgICAg
ICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQxCisgICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjpt
X3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QxXSwgdDMKICAgICAgICAgc3RvcmVwIGNmciwgVk06
OnRvcENhbGxGcmFtZVt0M10KLSAgICAgICAgcGVlayAwLCB0MQotICAgICAgICBzdG9yZXAgdDEs
IFJldHVyblBDW2Nmcl0KICAgICAgICAgbW92ZSBjZnIsIHQyICAjIHQyID0gZWN4Ci0gICAgICAg
IHN1YnAgMTYgLSA0LCBzcAorICAgICAgICBzdG9yZXAgdDIsIFtzcF0KICAgICAgICAgbG9hZGkg
Q2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQogICAgICAgICBsb2FkcCBKU0Z1bmN0aW9u
OjptX2V4ZWN1dGFibGVbdDFdLCB0MQotICAgICAgICBtb3ZlIHQwLCBjZnIKKyAgICAgICAgY2hl
Y2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCiAgICAgICAgIGNhbGwgZXhl
Y3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0gICAgICAgIGFkZHAgMTYgLSA0LCBzcAotICAg
ICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFya2VkQmxvY2tN
YXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6
bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFM
IG9yIE1JUFMgb3IgU0g0CiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICAg
ICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjpt
X3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICAgICAgc3RvcmVwIGNmciwgVk06
OnRvcENhbGxGcmFtZVt0M10KLSAgICAgICAgbW92ZSB0MCwgdDIKLSAgICAgICAgcHJlc2VydmVS
ZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAgICBzdG9yZXAgdDMsIFJldHVyblBDW2Nm
cl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCi0gICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRP
ZmZzZXRbY2ZyXSwgdDEKLSAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Qx
XSwgdDEKLSAgICAgICAgbW92ZSB0MiwgY2ZyCisgICAgICAgIGFkZHAgOCwgc3AKKyAgICBlbHNp
ZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgQ19MT09QIG9yIE1JUFMgb3Ig
U0g0CisgICAgICAgIHN1YnAgOCwgc3AgIyBhbGlnbiBzdGFjayBwb2ludGVyCisgICAgICAgICMg
dDEgYWxyZWFkeSBjb250YWlucyB0aGUgU2NvcGVDaGFpbi4KKyAgICAgICAgYW5kcCBNYXJrZWRC
bG9ja01hc2ssIHQxCisgICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFr
U2V0OjptX3ZtW3QxXSwgdDEKKyAgICAgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0
MV0KICAgICAgICAgaWYgTUlQUyBvciBTSDQKLSAgICAgICAgICAgIG1vdmUgdDAsIGEwCisgICAg
ICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbW92ZSBjZnIs
IHQwCiAgICAgICAgIGVuZAotICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9u
W3QxXQotICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKLSAgICAg
ICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFz
aywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1f
dm1bdDNdLCB0MwotICAgIGVsc2lmIENfTE9PUAotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nm
cl0sIHQzCi0gICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBN
YXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgICAgIHN0
b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0gICAgICAgIG1vdmUgdDAsIHQyCi0gICAg
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKLSAgICAgICAgc3RvcmVwIHQz
LCBSZXR1cm5QQ1tjZnJdCi0gICAgICAgIG1vdmUgY2ZyLCB0MAogICAgICAgICBsb2FkaSBDYWxs
ZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1f
ZXhlY3V0YWJsZVt0MV0sIHQxCi0gICAgICAgIG1vdmUgdDIsIGNmcgotICAgICAgICBjbG9vcENh
bGxOYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0gICAgICAgIHJlc3RvcmVS
ZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQorICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFs
aWdubWVudCh0MywgMHhkZWFkMDAwMSkKKyAgICAgICAgaWYgQ19MT09QCisgICAgICAgICAgICBj
bG9vcENhbGxOYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAg
ICAgIGVuZAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAgICAgIGFuZHAg
TWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0
ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCisgICAgICAgIGFkZHAgOCwgc3AKICAgICBlbHNlCiAg
ICAgICAgIGVycm9yCiAgICAgZW5kCi0gICAgYmluZXEgVk06Om1fZXhjZXB0aW9uICsgVGFnT2Zm
c2V0W3QzXSwgRW1wdHlWYWx1ZVRhZywgLmV4Y2VwdGlvbgorICAgIAorICAgIGZ1bmN0aW9uRXBp
bG9ndWUoKQorICAgIGJpbmVxIFZNOjptX2V4Y2VwdGlvbiArIFRhZ09mZnNldFt0M10sIEVtcHR5
VmFsdWVUYWcsIC5oYW5kbGVFeGNlcHRpb24KICAgICByZXQKLS5leGNlcHRpb246Ci0gICAgcHJl
c2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQxKSAjIFRoaXMgaXMgcmVhbGx5IG9ubHkgbmVl
ZGVkIG9uIFg4NgotICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMK
LSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2NhbGwpCisKKy5oYW5k
bGVFeGNlcHRpb246CisgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KKyAgICBy
ZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21f
c2xvd19wYXRoX3RyYW1wb2xpbmUKIGVuZAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24gMTYy
OTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2
NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUyLDkgKzUyLDEwIEBAIG1hY3Jv
IGRpc3BhdGNoQWZ0ZXJDYWxsKCkKIGVuZAogCiBtYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEs
IGFyZzIpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDQsIDB4YmFkMGMwMDIpCiAg
ICAgaWYgWDg2XzY0Ci0gICAgICAgIG1vdmUgYXJnMSwgdDUKLSAgICAgICAgbW92ZSBhcmcyLCB0
NAorICAgICAgICBtb3ZlIGFyZzEsIHQ0CisgICAgICAgIG1vdmUgYXJnMiwgdDUKICAgICAgICAg
Y2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIEFSTTY0CiAgICAgICAgIG1vdmUgYXJnMSwgdDAKQEAg
LTY5LDkgKzcwLDEwIEBAIGVuZAogCiAjIFRoaXMgYmFyZWx5IHdvcmtzLiBhcmczIGFuZCBhcmc0
IHNob3VsZCBwcm9iYWJseSBiZSBpbW1lZGlhdGVzLgogbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBh
cmcxLCBhcmcyLCBhcmczLCBhcmc0KQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQ0
LCAweGJhZDBjMDA0KQogICAgIGlmIFg4Nl82NAotICAgICAgICBtb3ZlIGFyZzEsIHQ1Ci0gICAg
ICAgIG1vdmUgYXJnMiwgdDQKKyAgICAgICAgbW92ZSBhcmcxLCB0NAorICAgICAgICBtb3ZlIGFy
ZzIsIHQ1CiAgICAgICAgIG1vdmUgYXJnMywgdDEKICAgICAgICAgbW92ZSBhcmc0LCB0MgogICAg
ICAgICBjYWxsIGZ1bmN0aW9uCkBAIC04OCw2NiArOTAsNDkgQEAgbWFjcm8gY0NhbGw0KGZ1bmN0
aW9uLCBhcmcxLCBhcmcyLCBhcmczLAogICAgIGVuZAogZW5kCiAKLW1hY3JvIGZ1bmN0aW9uUHJv
bG9ndWUoZXh0cmFTdGFja1NwYWNlKQorbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxs
KQogICAgIGlmIFg4Nl82NAotICAgICAgICBwdXNoIGNmcgotICAgICAgICBtb3ZlIHNwLCBjZnIK
LSAgICBlbHNpZiBBUk02NAotICAgICAgICBwdXNoTFJBbmRGUAotICAgIGVuZAotICAgIHB1c2hD
YWxsZWVTYXZlcwotICAgIGlmIFg4Nl82NAotICAgICAgICBzdWJwIGV4dHJhU3RhY2tTcGFjZSwg
c3AKLSAgICBlbmQKLWVuZAotCi1tYWNybyBmdW5jdGlvbkVwaWxvZ3VlKGV4dHJhU3RhY2tTcGFj
ZSkKLSAgICBpZiBYODZfNjQKLSAgICAgICAgYWRkcCBleHRyYVN0YWNrU3BhY2UsIHNwCi0gICAg
ZW5kCi0gICAgcG9wQ2FsbGVlU2F2ZXMKLSAgICBpZiBYODZfNjQKLSAgICAgICAgcG9wIGNmcgot
ICAgIGVsc2lmIEFSTTY0Ci0gICAgICAgIHBvcExSQW5kRlAKLSAgICBlbmQKLWVuZAotCi1tYWNy
byBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0dXJuKQotICAgIGlmIFg4Nl82NAot
ICAgICAgICBjb25zdCBlbnRyeSA9IHQ1Ci0gICAgICAgIGNvbnN0IHZtVG9wQ2FsbEZyYW1lID0g
dDQKKyAgICAgICAgY29uc3QgZW50cnkgPSB0NAorICAgICAgICBjb25zdCB2bSA9IHQ1CiAgICAg
ICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gdDEKLSAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9
IHQyCiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gOAogICAgICAgICBjb25zdCBw
cmV2aW91c0NGUiA9IHQwCiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSB0NgogICAgICAgICBj
b25zdCB0ZW1wMSA9IHQwCiAgICAgICAgIGNvbnN0IHRlbXAyID0gdDMKICAgICAgICAgY29uc3Qg
dGVtcDMgPSB0NgotICAgIGVsc2lmIEFSTTY0CisgICAgZWxzaWYgQVJNNjQgb3IgQ19MT09QCiAg
ICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm1Ub3BDYWxsRnJhbWUgPSBh
MQorICAgICAgICBjb25zdCB2bSA9IGExCiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0g
YTIKLSAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAgY29uc3QgZXh0cmFT
dGFja1NwYWNlID0gMAotICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQ0CisgICAgICAgIGNv
bnN0IHByZXZpb3VzQ0ZSID0gdDUKICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IGxyCiAgICAg
ICAgIGNvbnN0IHRlbXAxID0gdDMKLSAgICAgICAgY29uc3QgdGVtcDIgPSB0NQorICAgICAgICBj
b25zdCB0ZW1wMiA9IHQ0CiAgICAgICAgIGNvbnN0IHRlbXAzID0gdDYKICAgICBlbmQKIAotICAg
IGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQorICAgIGNhbGxUb0phdmFTY3JpcHRQ
cm9sb2d1ZSgpCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAgbG9hZHAgNyo4W3NwXSwgcHJldmlv
dXNQQworICAgICAgICBtb3ZlIDYqOFtzcF0sIHByZXZpb3VzQ0ZSCisgICAgZWxzaWYgQVJNNjQK
KyAgICAgICAgbW92ZSBjZnIsIHByZXZpb3VzQ0ZSCisgICAgZW5kCisKKyAgICBjaGVja1N0YWNr
UG9pbnRlckFsaWdubWVudCh0ZW1wMiwgMHhiYWQwZGMwMSkKIAotICAgIG1vdmUgdG9wT2ZTdGFj
aywgY2ZyCi0gICAgc3VicCAoQ2FsbEZyYW1lSGVhZGVyU2xvdHMtMSkqOCwgY2ZyCisgICAgIyBU
aGUgc3RhY2sgcmVzZXJ2ZWQgem9uZSBlbnN1cmVzIHRoYXQgd2UgaGF2ZSBhZGVxdWF0ZSBzcGFj
ZSBmb3IgdGhlCisgICAgIyBWTUVudHJ5U2VudGluZWxGcmFtZS4gUHJvY2VlZCB3aXRoIGFsbG9j
YXRpbmcgYW5kIGluaXRpYWxpemluZyB0aGUKKyAgICAjIHNlbnRpbmVsIGZyYW1lLgorICAgIG1v
dmUgc3AsIGNmcgorICAgIHN1YnAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMgKiA4LCBjZnIKICAgICBz
dG9yZXAgMCwgQXJndW1lbnRDb3VudFtjZnJdCi0gICAgc3RvcmVwIHZtVG9wQ2FsbEZyYW1lLCBD
YWxsZWVbY2ZyXQotICAgIGxvYWRwIFt2bVRvcENhbGxGcmFtZV0sIHRlbXAxCi0gICAgc3RvcmVw
IHRlbXAxLCBTY29wZUNoYWluW2Nmcl0KKyAgICBzdG9yZXAgdm0sIENhbGxlZVtjZnJdCisgICAg
bG9hZHAgVk06OnRvcENhbGxGcmFtZVt2bV0sIHRlbXAyCisgICAgc3RvcmVwIHRlbXAyLCBTY29w
ZUNoYWluW2Nmcl0KICAgICBzdG9yZXAgMSwgQ29kZUJsb2NrW2Nmcl0KICAgICBpZiBYODZfNjQK
ICAgICAgICAgbG9hZHAgNyo4W3NwXSwgcHJldmlvdXNQQwpAQCAtMTU1LDIwICsxNDAsNDUgQEAg
bWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldAogICAgIGVuZAogICAgIHN0
b3JlcCBwcmV2aW91c1BDLCBSZXR1cm5QQ1tjZnJdCiAgICAgc3RvcmVwIHByZXZpb3VzQ0ZSLCBD
YWxsZXJGcmFtZVtjZnJdCi0gICAgbW92ZSBjZnIsIHRlbXAxCiAKICAgICBsb2FkaSBQcm90b0Nh
bGxGcmFtZTo6cGFkZGVkQXJnQ291bnRbcHJvdG9DYWxsRnJhbWVdLCB0ZW1wMgogICAgIGFkZHAg
Q2FsbEZyYW1lSGVhZGVyU2xvdHMsIHRlbXAyLCB0ZW1wMgogICAgIGxzaGlmdHAgMywgdGVtcDIK
LSAgICBzdWJwIHRlbXAyLCBjZnIKLSAgICBzdG9yZXAgdGVtcDEsIENhbGxlckZyYW1lW2Nmcl0K
KyAgICBzdWJwIGNmciwgdGVtcDIsIHRlbXAxCiAKKyAgICAjIEVuc3VyZSB0aGF0IHdlIGhhdmUg
ZW5vdWdoIGFkZGl0aW9uYWwgc3RhY2sgY2FwYWNpdHkgZm9yIHRoZSBpbmNvbWluZyBhcmdzLAor
ICAgICMgYW5kIHRoZSBmcmFtZSBmb3IgdGhlIEpTIGNvZGUgd2UncmUgZXhlY3V0aW5nLiBXZSBu
ZWVkIHRvIGRvIHRoaXMgY2hlY2sKKyAgICAjIGJlZm9yZSB3ZSBzdGFydCBjb3B5aW5nIHRoZSBh
cmdzIGZyb20gdGhlIHByb3RvQ2FsbEZyYW1lIGJlbG93LgorICAgIGJwYWVxIHRlbXAxLCBWTTo6
bV9qc1N0YWNrTGltaXRbdm1dLCAuc3RhY2tIZWlnaHRPSworCisgICAgbW92ZSBjZnIsIHNwCisK
KyAgICBpZiBDX0xPT1AKKyAgICAgICAgbW92ZSBlbnRyeSwgdGVtcDIKKyAgICAgICAgbW92ZSB2
bSwgdGVtcDMKKyAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGggX2xsaW50X3N0YWNrX2NoZWNrX2F0
X3ZtX2VudHJ5LCB2bSwgdGVtcDEKKyAgICAgICAgYnBlcSB0MCwgMCwgLnN0YWNrQ2hlY2tGYWls
ZWQKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAgICAgbW92ZSB0ZW1wMywgdm0KKyAg
ICAgICAgam1wIC5zdGFja0hlaWdodE9LCisKKy5zdGFja0NoZWNrRmFpbGVkOgorICAgICAgICBt
b3ZlIHRlbXAyLCBlbnRyeQorICAgICAgICBtb3ZlIHRlbXAzLCB2bQorICAgIGVuZAorCisgICAg
Y0NhbGwyKF9sbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvciwgdm0sIHByb3RvQ2FsbEZy
YW1lKQorICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisgICAgcmV0CisKKy5zdGFja0hl
aWdodE9LOgorICAgIG1vdmUgdGVtcDEsIHNwCiAgICAgbW92ZSA1LCB0ZW1wMQogCiAuY29weUhl
YWRlckxvb3A6CiAgICAgc3ViaSAxLCB0ZW1wMQotICAgIGxvYWRwIFtwcm90b0NhbGxGcmFtZSwg
dGVtcDEsIDhdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgQ29kZUJsb2NrW2NmciwgdGVtcDEs
IDhdCisgICAgbG9hZHEgW3Byb3RvQ2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRlbXAzCisgICAgc3Rv
cmVxIHRlbXAzLCBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4XQogICAgIGJ0aW56IHRlbXAxLCAuY29w
eUhlYWRlckxvb3AKIAogICAgIGxvYWRpIFByb3RvQ2FsbEZyYW1lOjphcmdDb3VudEFuZENvZGVP
cmlnaW5WYWx1ZVtwcm90b0NhbGxGcmFtZV0sIHRlbXAyCkBAIC0xODAsNyArMTkwLDcgQEAgbWFj
cm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldAogICAgIG1vdmUgVmFsdWVVbmRl
ZmluZWQsIHRlbXAxCiAuZmlsbEV4dHJhQXJnc0xvb3A6CiAgICAgc3ViaSAxLCB0ZW1wMwotICAg
IHN0b3JlcCB0ZW1wMSwgVGhpc0FyZ3VtZW50T2Zmc2V0KzhbY2ZyLCB0ZW1wMywgOF0KKyAgICBz
dG9yZXEgdGVtcDEsIFRoaXNBcmd1bWVudE9mZnNldCArIDhbc3AsIHRlbXAzLCA4XQogICAgIGJp
bmVxIHRlbXAyLCB0ZW1wMywgLmZpbGxFeHRyYUFyZ3NMb29wCiAKIC5jb3B5QXJnczoKQEAgLTE4
OSw1MyArMTk5LDk3IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXQK
IC5jb3B5QXJnc0xvb3A6CiAgICAgYnRpeiB0ZW1wMiwgLmNvcHlBcmdzRG9uZQogICAgIHN1Ymkg
MSwgdGVtcDIKLSAgICBsb2FkcCBbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAg
dGVtcDMsIFRoaXNBcmd1bWVudE9mZnNldCs4W2NmciwgdGVtcDIsIDhdCisgICAgbG9hZHEgW3Rl
bXAxLCB0ZW1wMiwgOF0sIHRlbXAzCisgICAgc3RvcmVxIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZz
ZXQgKyA4W3NwLCB0ZW1wMiwgOF0KICAgICBqbXAgLmNvcHlBcmdzTG9vcAogCiAuY29weUFyZ3NE
b25lOgotICAgIHN0b3JlcCBjZnIsIFt2bVRvcENhbGxGcmFtZV0KKyAgICBpZiBBUk02NAorICAg
ICAgICBtb3ZlIHNwLCB0ZW1wMgorICAgICAgICBzdG9yZXAgdGVtcDIsIFZNOjp0b3BDYWxsRnJh
bWVbdm1dCisgICAgZWxzZQorICAgICAgICBzdG9yZXAgc3AsIFZNOjp0b3BDYWxsRnJhbWVbdm1d
CisgICAgZW5kCiAKICAgICBtb3ZlIDB4ZmZmZjAwMDAwMDAwMDAwMCwgY3NyMQogICAgIGFkZHAg
MiwgY3NyMSwgY3NyMgogCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDMsIDB4
YmFkMGRjMDIpCisKICAgICBtYWtlQ2FsbChlbnRyeSwgdGVtcDEpCiAKKyAgICBjaGVja1N0YWNr
UG9pbnRlckFsaWdubWVudCh0ZW1wMywgMHhiYWQwZGMwMykKKwogICAgIGJwZXEgQ29kZUJsb2Nr
W2Nmcl0sIDEsIC5jYWxsZWVGcmFtZVBvcHBlZAogICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0s
IGNmcgogCiAuY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAy
ICMgVk0udG9wQ2FsbEZyYW1lCi0gICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0ZW1wMwotICAg
IHN0b3JlcCB0ZW1wMywgW3RlbXAyXQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0ZW1wMiAjIFZN
CisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0ZW1wMyAjIHByZXZpb3VzIHRvcENhbGxGcmFt
ZQorICAgIHN0b3JlcCB0ZW1wMywgVk06OnRvcENhbGxGcmFtZVt0ZW1wMl0KKworICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAzLCAweGJhZDBkYzA0KQogCi0gICAgZG9SZXR1cm4o
ZXh0cmFTdGFja1NwYWNlKQorICAgIGlmIFg4Nl82NAorICAgICAgICBwb3AgdDUKKyAgICBlbmQK
KyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQorCisgICAgcmV0CiBlbmQKIAorCiBtYWNy
byBtYWtlSmF2YVNjcmlwdENhbGwoZW50cnksIHRlbXApCi0gICAgY2FsbCBlbnRyeQorICAgIGFk
ZHAgMTYsIHNwCisgICAgaWYgQ19MT09QCisgICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rpb24gZW50
cnkKKyAgICBlbHNlCisgICAgICAgIGNhbGwgZW50cnkKKyAgICBlbmQKKyAgICBzdWJwIDE2LCBz
cAogZW5kCiAKKwogbWFjcm8gbWFrZUhvc3RGdW5jdGlvbkNhbGwoZW50cnksIHRlbXApCiAgICAg
bW92ZSBlbnRyeSwgdGVtcAogICAgIGlmIFg4Nl82NAotICAgICAgICBtb3ZlIGNmciwgdDUKKyAg
ICAgICAgbW92ZSBzcCwgdDQKICAgICBlbHNpZiBBUk02NCBvciBDX0xPT1AKLSAgICAgICAgbW92
ZSBjZnIsIGEwCisgICAgICAgIG1vdmUgc3AsIGEwCisgICAgZW5kCisgICAgaWYgQ19MT09QCisg
ICAgICAgIHN0b3JlcCBjZnIsIFtzcF0KKyAgICAgICAgc3RvcmVwIGxyLCA4W3NwXQorICAgICAg
ICBjbG9vcENhbGxOYXRpdmUgdGVtcAorICAgIGVsc2UKKyAgICAgICAgYWRkcCAxNiwgc3AgCisg
ICAgICAgIGNhbGwgdGVtcAorICAgICAgICBzdWJwIDE2LCBzcAogICAgIGVuZAotICAgIGNhbGwg
dGVtcAogZW5kCiAKLW1hY3JvIGRvUmV0dXJuRnJvbUphdmFTY3JpcHQoZXh0cmFTdGFja1NwYWNl
KQotX3JldHVybkZyb21KYXZhU2NyaXB0OgotICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFj
a1NwYWNlKQotICAgIHJldAotZW5kCiAKLW1hY3JvIGRvUmV0dXJuRnJvbUhvc3RGdW5jdGlvbihl
eHRyYVN0YWNrU3BhY2UpCi0gICAgZnVuY3Rpb25FcGlsb2d1ZShleHRyYVN0YWNrU3BhY2UpCitf
aGFuZGxlVW5jYXVnaHRFeGNlcHRpb246CisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0Mwor
ICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MworICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dl
YWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKKyAgICBsb2FkcCBWTTo6Y2FsbEZyYW1lRm9y
VGhyb3dbdDNdLCBjZnIKKworICAgICMgU28gZmFyLCB3ZSd2ZSB1bndvdW5kIHRoZSBzdGFjayB0
byB0aGUgZnJhbWUganVzdCBiZWxvdyB0aGUgc2VudGluZWwgZnJhbWUsIGV4Y2VwdAorICAgICMg
aW4gdGhlIGNhc2Ugb2Ygc3RhY2sgb3ZlcmZsb3cgaW4gdGhlIGZpcnN0IGZ1bmN0aW9uIGNhbGxl
ZCBmcm9tIGNhbGxUb0phdmFTY3JpcHQuCisgICAgIyBDaGVjayBpZiB3ZSBuZWVkIHRvIHBvcCB0
byB0aGUgc2VudGluZWwgZnJhbWUgYW5kIGRvIHRoZSBuZWNlc3NhcnkgY2xlYW4gdXAgZm9yCisg
ICAgIyByZXR1cm5pbmcgdG8gdGhlIGNhbGxlciBDIGZyYW1lLgorICAgIGJwZXEgQ29kZUJsb2Nr
W2Nmcl0sIDEsIC5oYW5kbGVVbmNhdWdodEV4Y2VwdGlvbkFscmVhZHlJc1NlbnRpbmVsCisgICAg
bG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2ZyCisuaGFuZGxlVW5jYXVnaHRFeGNlcHRpb25BbHJl
YWR5SXNTZW50aW5lbDoKKworICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MyAjIFZNCisgICAgbG9h
ZHAgU2NvcGVDaGFpbltjZnJdLCB0NSAjIHByZXZpb3VzIHRvcENhbGxGcmFtZQorICAgIHN0b3Jl
cCB0NSwgVk06OnRvcENhbGxGcmFtZVt0M10KKworICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1
ZSgpCiAgICAgcmV0Ci1lbmQKKwogCiBtYWNybyBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCiAgICAg
bGVhcCBbUEIsIFBDLCA4XSwgUEMKQEAgLTI0NCw3ICsyOTgsNiBAQCBlbmQKIAogbWFjcm8gcmVz
dG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCiAgICAgbW92ZSB0MCwgUEMKLSAgICBtb3ZlIHQxLCBjZnIK
ICAgICBtb3ZlIHQzLCBQQgogICAgIHN1YnAgUEIsIFBDCiAgICAgcnNoaWZ0cCAzLCBQQwpAQCAt
MjczLDcgKzMyNiw2IEBAIG1hY3JvIGNhbGxDYWxsU2xvd1BhdGgoc2xvd1BhdGgsIGFjdGlvbikK
ICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgIHByZXBh
cmVTdGF0ZUZvckNDYWxsKCkKICAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCi0gICAgbW92
ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQwKQogZW5kCiAKQEAgLTI4MSw3ICszMzMsNiBAQCBtYWNy
byBjYWxsV2F0Y2hkb2dUaW1lckhhbmRsZXIodGhyb3dIYW5kCiAgICAgc3RvcmVpIFBDLCBBcmd1
bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCiAg
ICAgY0NhbGwyKF9sbGludF9zbG93X3BhdGhfaGFuZGxlX3dhdGNoZG9nX3RpbWVyLCBjZnIsIFBD
KQotICAgIG1vdmUgdDEsIGNmcgogICAgIGJ0cG56IHQwLCB0aHJvd0hhbmRsZXIKICAgICBtb3Zl
IHQzLCBQQgogICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKQEAg
LTI5NCw4ICszNDUsOCBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCiAgICAgICAg
ICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgICAgICAg
ICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQogICAgICAgICAgICAgY0NhbGwyKF9sbGludF9sb29w
X29zciwgY2ZyLCBQQykKLSAgICAgICAgICAgIG1vdmUgdDEsIGNmcgogICAgICAgICAgICAgYnRw
eiB0MCwgLnJlY292ZXIKKyAgICAgICAgICAgIG1vdmUgdDEsIHNwCiAgICAgICAgICAgICBqbXAg
dDAKICAgICAgICAgLnJlY292ZXI6CiAgICAgICAgICAgICBtb3ZlIHQzLCBQQgpAQCAtMzg3LDE5
ICs0MzgsMzUgQEAgZW5kCiAjIEVudHJ5cG9pbnRzIGludG8gdGhlIGludGVycHJldGVyLgogCiAj
IEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdoYXQgcHJvbG9ndWUo
KSBsZWF2ZXMgYmVoaW5kLgotbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xv
d19wYXRoKQorbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd1BhdGgpCiAg
ICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDAKICAgICBiaWFl
cSB0MCwgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCBkb25lTGFiZWwKICAgICBwcmVw
YXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykgICAjIFRo
aXMgc2xvd19wYXRoIGhhcyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0
MCAhPSAwID0+IGVycm9yCi0gICAgYnRpeiB0MCwgLmlzQXJpdHlGaXh1cE5lZWRlZAorICAgIGND
YWxsMihzbG93UGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd1BhdGggaGFzIHRoZSBwcm90b2Nv
bDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCisgICAgYnRpeiB0MCwgLm5v
RXJyb3IKICAgICBtb3ZlIHQxLCBjZnIgICAjIHQxIGNvbnRhaW5zIGNhbGxlciBmcmFtZQogICAg
IGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogCi0uaXNBcml0eUZp
eHVwTmVlZGVkOgorLm5vRXJyb3I6CisgICAgIyB0MSBwb2ludHMgdG8gQXJpdHlDaGVja0RhdGEu
CisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6dGh1bmtUb0NhbGxb
dDFdLCB0MgorICAgIGJ0cHogdDIsIC5wcm9jZWVkSW5saW5lCisgICAgCisgICAgbG9hZHAgQ29t
bW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cmV0dXJuUENbdDFdLCB0NQorICAgIGxvYWRw
IENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0
MAorICAgIGNhbGwgdDIKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBsb2FkcCBSZXR1
cm5QQ1tjZnJdLCB0MAorICAgICAgICBsb2FkcCBbdDBdLCB0MAorICAgIGVuZAorICAgIGptcCAu
Y29udGludWUKKworLnByb2NlZWRJbmxpbmU6CisgICAgbG9hZGkgQ29tbW9uU2xvd1BhdGhzOjpB
cml0eUNoZWNrRGF0YTo6cGFkZGVkU3RhY2tTcGFjZVt0MV0sIHQxCiAgICAgYnRpeiB0MSwgLmNv
bnRpbnVlCiAKLSAgICAvLyBNb3ZlIGZyYW1lIHVwICJ0MSIgc2xvdHMKKyAgICAvLyBNb3ZlIGZy
YW1lIHVwICJ0MSAqIDIiIHNsb3RzCisgICAgbHNoaWZ0cCAxLCB0MQogICAgIG5lZ3EgdDEKICAg
ICBtb3ZlIGNmciwgdDMKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtj
ZnJdLCB0MgpAQCAtNDIwLDYgKzQ4Nyw3IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25l
TGFiZWwsIHNsb3cKIAogICAgIGxzaGlmdHAgMywgdDEKICAgICBhZGRwIHQxLCBjZnIKKyAgICBh
ZGRwIHQxLCBzcAogCiAuY29udGludWU6CiAgICAgIyBSZWxvYWQgQ29kZUJsb2NrIGFuZCByZXNl
dCBQQywgc2luY2UgdGhlIHNsb3dfcGF0aCBjbG9iYmVyZWQgdGhlbS4KQEAgLTQyOSw3ICs0OTcs
NiBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAgICAgam1wIGRv
bmVMYWJlbAogZW5kCiAKLQogbWFjcm8gYnJhbmNoSWZFeGNlcHRpb24obGFiZWwpCiAgICAgbG9h
ZHAgU2NvcGVDaGFpbltjZnJdLCB0MwogICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwpAQCAt
NDQ0LDYgKzUxMSw3IEBAIGVuZAogCiBfbGxpbnRfb3BfZW50ZXI6CiAgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGRlYWQwMGUxKQogICAg
IGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MiAgICAgICAgICAgICAgICAvLyB0MjxDb2RlQmxvY2s+
ID0gY2ZyLkNvZGVCbG9jawogICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1WYXJzW3QyXSwgdDIg
ICAgICAvLyB0MjxzaXplX3Q+ID0gdDI8Q29kZUJsb2NrPi5tX251bVZhcnMKICAgICBidGl6IHQy
LCAub3BFbnRlckRvbmUKQEAgLTE3MTcsMTAgKzE3ODUsOSBAQCBtYWNybyBkb0NhbGwoc2xvd1Bh
dGgpCiAgICAgc3RvcmVxIHQwLCBTY29wZUNoYWluW3QzXQogICAgIGxvYWRpc0Zyb21JbnN0cnVj
dGlvbigzLCB0MikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2Zy
XQotICAgIHN0b3JlcSBjZnIsIENhbGxlckZyYW1lW3QzXQogICAgIHN0b3JlaSB0MiwgQXJndW1l
bnRDb3VudCArIFBheWxvYWRPZmZzZXRbdDNdCi0gICAgbW92ZSB0MywgY2ZyCi0gICAgY2FsbFRh
cmdldEZ1bmN0aW9uKHQxKQorICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHQzCisgICAg
Y2FsbFRhcmdldEZ1bmN0aW9uKHQxLCB0MykKIAogLm9wQ2FsbFNsb3c6CiAgICAgc2xvd1BhdGhG
b3JDYWxsKHNsb3dQYXRoKQpAQCAtMTg0MCw2ICsxOTA3LDggQEAgX2xsaW50X29wX2NhdGNoOgog
ICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dl
YWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKICAgICBsb2FkcCBWTTo6Y2FsbEZyYW1lRm9y
VGhyb3dbdDNdLCBjZnIKKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKKwogICAg
IGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgogICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVj
dGlvbnNbUEJdLCBQQgogICAgIGxvYWRwIFZNOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3db
dDNdLCBQQwpAQCAtMTg3OSw2ICsxOTQ4LDggQEAgX2xsaW50X3Rocm93X2R1cmluZ19jYWxsX3Ry
YW1wb2xpbmU6CiAKIAogbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNl
dFRvRnVuY3Rpb24pCisKKyAgICBmdW5jdGlvblByb2xvZ3VlKCkKICAgICBzdG9yZXAgMCwgQ29k
ZUJsb2NrW2Nmcl0KICAgICBpZiBYODZfNjQKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJd
LCB0MApAQCAtMTg4OCwxOSArMTk1OSwxNSBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShl
eGVjdXRhYmxlT2ZmCiAgICAgICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIHQwCiAgICAgICAg
IGxvYWRxIFNjb3BlQ2hhaW5bdDBdLCB0MQogICAgICAgICBzdG9yZXEgdDEsIFNjb3BlQ2hhaW5b
Y2ZyXQotICAgICAgICBwZWVrIDAsIHQxCi0gICAgICAgIHN0b3JlcCB0MSwgUmV0dXJuUENbY2Zy
XQotICAgICAgICBtb3ZlIGNmciwgdDUgICMgdDUgPSByZGkKLSAgICAgICAgc3VicCAxNiAtIDgs
IHNwCi0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0NCAjIHQ0ID0gcnNpCi0gICAgICAgIGxv
YWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0NF0sIHQxCi0gICAgICAgIG1vdmUgdDAsIGNm
ciAjIFJlc3RvcmUgY2ZyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjaworICAgICAgICBtb3Zl
IGNmciwgdDQgICMgdDQgPSByZGkKKyAgICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQ1ICMgdDUg
PSByc2kKKyAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Q1XSwgdDEKKyAg
ICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCiAgICAgICAg
IGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0gICAgICAgIGFkZHAgMTYgLSA4
LCBzcAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAgICAgIGFuZHAgTWFy
a2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsg
V2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQVJNNjQKKyAgICBlbHNpZiBBUk02NCBv
ciBDX0xPT1AKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MAogICAgICAgICBhbmRw
IE1hcmtlZEJsb2NrTWFzaywgdDAKICAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1Nl
dCArIFdlYWtTZXQ6Om1fdm1bdDBdLCB0MApAQCAtMTkxNCwzMCArMTk4MSwxMSBAQCBtYWNybyBu
YXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2ZmCiAgICAgICAgIGxvYWRwIENhbGxlZVtj
ZnJdLCB0MQogICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQog
ICAgICAgICBtb3ZlIHQyLCBjZnIgIyBSZXN0b3JlIGNmciB0byBhdm9pZCBsb2FkaW5nIGZyb20g
c3RhY2sKLSAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAg
ICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCi0gICAgICAgIGxvYWRwIFNj
b3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAg
ICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMK
LSAgICBlbHNpZiBDX0xPT1AKLSAgICAgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgdDAKLSAg
ICAgICAgbG9hZHAgU2NvcGVDaGFpblt0MF0sIHQxCi0gICAgICAgIHN0b3JlcCB0MSwgU2NvcGVD
aGFpbltjZnJdCi0KLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBh
bmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vh
a1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9w
Q2FsbEZyYW1lW3QzXQotCi0gICAgICAgIG1vdmUgdDAsIHQyCi0gICAgICAgIHByZXNlcnZlUmV0
dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKLSAgICAgICAgc3RvcmVwIHQzLCBSZXR1cm5QQ1tjZnJd
Ci0gICAgICAgIG1vdmUgY2ZyLCB0MAotICAgICAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKLSAg
ICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKLSAgICAgICAgbW92
ZSB0MiwgY2ZyCi0gICAgICAgIGNsb29wQ2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5j
dGlvblt0MV0KLQorICAgICAgICBpZiBDX0xPT1AKKyAgICAgICAgICAgIGNsb29wQ2FsbE5hdGl2
ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAgICAgZW5kCiAgICAg
ICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQogICAgICAgICBsb2FkcCBT
Y29wZUNoYWluW2Nmcl0sIHQzCiAgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwpAQCAt
MTk0NiwxNiArMTk5NCwxNCBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxl
T2ZmCiAgICAgICAgIGVycm9yCiAgICAgZW5kCiAKLSAgICBidHFueiBWTTo6bV9leGNlcHRpb25b
dDNdLCAuZXhjZXB0aW9uCisgICAgZnVuY3Rpb25FcGlsb2d1ZSgpCisKKyAgICBidHFueiBWTTo6
bV9leGNlcHRpb25bdDNdLCAuaGFuZGxlRXhjZXB0aW9uCiAgICAgcmV0Ci0uZXhjZXB0aW9uOgot
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MSkgIyBUaGlzIGlzIHJlYWxseSBv
bmx5IG5lZWRlZCBvbiBYODZfNjQKLSAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0
W2Nmcl0sIFBDCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIFBCCi0gICAgbG9hZHAgQ29kZUJs
b2NrOjptX3ZtW1BCXSwgdDAKLSAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BC
XSwgUEIKLSAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QwXQotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfdGhyb3dfZnJvbV9uYXRpdmVfY2FsbCkKKworLmhhbmRsZUV4Y2VwdGlvbjoK
KyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgIHJlc3RvcmVTdGFja1Bv
aW50ZXJBZnRlckNhbGwoKQogICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJh
bXBvbGluZQogZW5kCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkod29ya2luZyBjb3B5
KQpAQCAtMzgsOSArMzgsMTIgQEAgY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2xvdHMgPSA2CiBlbHNl
CiBjb25zdCBQdHJTaXplID0gNAogY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2xvdHMgPSA1Citjb25z
dCBDYWxsRnJhbWVBbGlnblNsb3RzID0gMQogZW5kCiBjb25zdCBTbG90U2l6ZSA9IDgKIAorY29u
c3QgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgPSAyICogUHRyU2l6ZQorCiBjb25zdCBDYWxsZXJGcmFt
ZSA9IDAKIGNvbnN0IFJldHVyblBDID0gQ2FsbGVyRnJhbWUgKyBQdHJTaXplCiBjb25zdCBDb2Rl
QmxvY2sgPSBSZXR1cm5QQyArIFB0clNpemUKQEAgLTcxLDYgKzc0LDE2IEBAIGNvbnN0IERlbGV0
ZWRWYWx1ZVRhZyA9IC03CiBjb25zdCBMb3dlc3RUYWcgPSBEZWxldGVkVmFsdWVUYWcKIGVuZAog
CitpZiBYODZfNjQgb3IgQVJNNjQgb3IgQ19MT09QCitjb25zdCBtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCA9IDAKK2Vsc2lmIEFSTSBvciBBUk12N19UUkFESVRJT05BTCBvciBBUk12NyBv
ciBTSDQKK2NvbnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMjQKK2Vsc2lmIFg4
NgorY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA0MAorZWxzaWYgTUlQUwor
Y29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA0MAorZW5kCisKICMgV2F0Y2hw
b2ludCBzdGF0ZXMKIGNvbnN0IENsZWFyV2F0Y2hwb2ludCA9IDAKIGNvbnN0IElzV2F0Y2hlZCA9
IDEKQEAgLTg1LDcgKzk4LDcgQEAgaWYgSlNWQUxVRTY0CiAgICAgIyAgIHRvIEMgZnVuY3Rpb25z
LgogICAgICMgLSBDIGNhbGxzIGFyZSBzdGlsbCBnaXZlbiB0aGUgSW5zdHJ1Y3Rpb24qIHJhdGhl
ciB0aGFuIHRoZSBQQyBpbmRleC4KICAgICAjICAgVGhpcyByZXF1aXJlcyBhbiBhZGQgYmVmb3Jl
IHRoZSBjYWxsLCBhbmQgYSBzdWIgYWZ0ZXIuCi0gICAgY29uc3QgUEMgPSB0NAorICAgIGNvbnN0
IFBDID0gdDUKICAgICBjb25zdCBQQiA9IHQ2CiAgICAgY29uc3QgdGFnVHlwZU51bWJlciA9IGNz
cjEKICAgICBjb25zdCB0YWdNYXNrID0gY3NyMgpAQCAtMTAzLDcgKzExNiw3IEBAIGlmIEpTVkFM
VUU2NAogICAgIGVuZAogCiBlbHNlCi0gICAgY29uc3QgUEMgPSB0NAorICAgIGNvbnN0IFBDID0g
dDUKICAgICBtYWNybyBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24ob2Zmc2V0LCBkZXN0KQogICAgICAg
ICBsb2FkaXMgb2Zmc2V0ICogNFtQQ10sIGRlc3QKICAgICBlbmQKQEAgLTIxMCw2ICsyMjMsNTIg
QEAgbWFjcm8gYXNzZXJ0KGFzc2VydGlvbikKICAgICBlbmQKIGVuZAogCittYWNybyBjaGVja1N0
YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wUmVnLCBsb2NhdGlvbikKKyAgICBpZiBBUk02NCBvciBD
X0xPT1AKKyAgICAgICAgIyBBUk02NCB3aWxsIGNoZWNrIGZvciB1cyEKKyAgICAgICAgIyBDX0xP
T1AgZG9lcyBub3QgbmVlZCB0aGUgYWxpZ25tZW50LCBhbmQgY2FuIHVzZSBhIGxpdHRsZSBwZXJm
CisgICAgICAgICMgaW1wcm92ZW1lbnQgZnJvbSBhdm9pZGluZyB1c2VsZXNzIHdvcmsuCisgICAg
ZWxzZQorICAgICAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwKKyAgICAg
ICAgICAgICMgQVJNIGNhbid0IGRvIGxvZ2ljYWwgb3BzIHdpdGggdGhlIHNwIGFzIGEgc291cmNl
CisgICAgICAgICAgICBtb3ZlIHNwLCB0ZW1wUmVnCisgICAgICAgICAgICBhbmRwIDB4ZiwgdGVt
cFJlZworICAgICAgICBlbHNlCisgICAgICAgICAgICBhbmRwIHNwLCAweGYsIHRlbXBSZWcKKyAg
ICAgICAgZW5kCisgICAgICAgIGJ0cHogdGVtcFJlZywgLnN0YWNrUG9pbnRlck9rYXkKKyAgICAg
ICAgbW92ZSBsb2NhdGlvbiwgdGVtcFJlZworICAgICAgICBicmVhaworICAgIC5zdGFja1BvaW50
ZXJPa2F5OgorICAgIGVuZAorZW5kCisKK21hY3JvIHByZXNlcnZlQ2FsbGVyUENBbmRDRlIoKQor
ICAgIGlmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQ
UyBvciBTSDQKKyAgICAgICAgcHVzaCBscgorICAgICAgICBwdXNoIGNmcgorICAgIGVsc2lmIFg4
NiBvciBYODZfNjQKKyAgICAgICAgcHVzaCBjZnIKKyAgICBlbHNpZiBBUk02NAorICAgICAgICBw
dXNoTFJBbmRGUAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICBtb3ZlIHNw
LCBjZnIKK2VuZAorCittYWNybyByZXN0b3JlQ2FsbGVyUENBbmRDRlIoKQorICAgIG1vdmUgY2Zy
LCBzcAorICAgIGlmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwg
b3IgTUlQUyBvciBTSDQKKyAgICAgICAgcG9wIGNmcgorICAgICAgICBwb3AgbHIKKyAgICBlbHNp
ZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHBvcCBjZnIKKyAgICBlbHNpZiBBUk02NAorICAgICAg
ICBwb3BMUkFuZEZQCisgICAgZW5kCitlbmQKKwogbWFjcm8gcHJlc2VydmVSZXR1cm5BZGRyZXNz
QWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCiAgICAgaWYgQ19MT09QIG9yIEFSTSBvciBB
Uk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBBUk02NCBvciBNSVBTIG9yIFNINAogICAgICAg
ICAjIEluIENfTE9PUCBjYXNlLCB3ZSdyZSBvbmx5IHByZXNlcnZpbmcgdGhlIGJ5dGVjb2RlIHZQ
Qy4KQEAgLTIzMiwzMSArMjkxLDEyMiBAQCBtYWNybyByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9y
ZVJldHVybihzCiAgICAgZW5kCiBlbmQKIAorbWFjcm8gZnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAg
aWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwdXNoIGNmcgorICAgIGVsc2lmIEFSTTY0CisgICAg
ICAgIHB1c2hMUkFuZEZQCisgICAgZWxzaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12
N19UUkFESVRJT05BTCBvciBNSVBTCisgICAgICAgIHB1c2ggbHIKKyAgICAgICAgcHVzaCBjZnIK
KyAgICBlbmQKKyAgICBtb3ZlIHNwLCBjZnIKK2VuZAorCittYWNybyBmdW5jdGlvbkVwaWxvZ3Vl
KCkKKyAgICBpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHBvcCBjZnIKKyAgICBlbHNpZiBBUk02
NAorICAgICAgICBwb3BMUkFuZEZQCisgICAgZWxzaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBv
ciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTCisgICAgICAgIHBvcCBjZnIKKyAgICAgICAgcG9w
IGxyCisgICAgZW5kCitlbmQKKworbWFjcm8gY2FsbFRvSmF2YVNjcmlwdFByb2xvZ3VlKCkKKyAg
ICBpZiBYODZfNjQKKyAgICAgICAgcHVzaCBjZnIKKyAgICAgICAgcHVzaCB0MAorICAgIGVsc2lm
IFg4NgorICAgICAgICBwdXNoIGNmcgorICAgIGVsc2lmIEFSTTY0CisgICAgICAgIHB1c2hMUkFu
ZEZQCisgICAgZWxzaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05B
TCBvciBNSVBTCisgICAgICAgIHB1c2ggbHIKKyAgICAgICAgcHVzaCBjZnIKKyAgICBlbmQKKyAg
ICBwdXNoQ2FsbGVlU2F2ZXMKKyAgICBpZiBYODYKKyAgICAgICAgc3VicCAxMiwgc3AKKyAgICBl
bHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwKKyAgICAgICAgc3VicCA0LCBz
cAorICAgICAgICBtb3ZlIHNwLCB0NAorICAgICAgICBjbHJicCB0NCwgMHhmLCB0NQorICAgICAg
ICBtb3ZlIHQ1LCBzcAorICAgICAgICBzdG9yZXAgdDQsIFtzcF0KKyAgICBlbmQKK2VuZAorCitt
YWNybyBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQorICAgIGFkZHAgQ2FsbEZyYW1lSGVhZGVy
U2xvdHMgKiA4LCBjZnIsIHNwCisgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2ZyCisKKyAg
ICBpZiBYODYKKyAgICAgICAgYWRkcCAxMiwgc3AKKyAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3Ig
QVJNdjdfVFJBRElUSU9OQUwKKyAgICAgICAgcG9wIHQ0CisgICAgICAgIG1vdmUgdDQsIHNwCisg
ICAgICAgIGFkZHAgNCwgc3AKKyAgICBlbmQKKworICAgIHBvcENhbGxlZVNhdmVzCisgICAgaWYg
WDg2XzY0CisgICAgICAgIHBvcCB0MgorICAgICAgICBwb3AgY2ZyCisgICAgZWxzaWYgWDg2Cisg
ICAgICAgIHBvcCBjZnIKKyAgICBlbHNpZiBBUk02NAorICAgICAgICBwb3BMUkFuZEZQCisgICAg
ZWxzaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBT
CisgICAgICAgIHBvcCBjZnIKKyAgICAgICAgcG9wIGxyCisgICAgZW5kCitlbmQKKworbWFjcm8g
bW92ZVN0YWNrUG9pbnRlckZvckNvZGVCbG9jayhjb2RlQmxvY2ssIHNjcmF0Y2gpCisgICAgbG9h
ZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVyc1tjb2RlQmxvY2tdLCBzY3JhdGNoCisg
ICAgbHNoaWZ0cCAzLCBzY3JhdGNoCisgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCwgc2NyYXRjaAorICAgIHN1YnAgY2ZyLCBzY3JhdGNoLCBzcAorZW5kCisKK21hY3JvIHJl
c3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0
MgorICAgIG1vdmVTdGFja1BvaW50ZXJGb3JDb2RlQmxvY2sodDIsIHQ0KQorZW5kCisKIG1hY3Jv
IHRyYWNlRXhlY3V0aW9uKCkKICAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwogICAgICAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3RyYWNlKQogICAgIGVuZAogZW5kCiAKLW1hY3JvIGNhbGxUYXJnZXRG
dW5jdGlvbihjYWxsTGlua0luZm8pCittYWNybyBjYWxsVGFyZ2V0RnVuY3Rpb24oY2FsbExpbmtJ
bmZvLCBjYWxsZWVGcmFtZVB0cikKKyAgICBtb3ZlIGNhbGxlZUZyYW1lUHRyLCBzcAogICAgIGlm
IENfTE9PUAogICAgICAgICBjbG9vcENhbGxKU0Z1bmN0aW9uIExMSW50Q2FsbExpbmtJbmZvOjpt
YWNoaW5lQ29kZVRhcmdldFtjYWxsTGlua0luZm9dCiAgICAgZWxzZQogICAgICAgICBjYWxsIExM
SW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFtjYWxsTGlua0luZm9dCi0gICAgICAg
IGRpc3BhdGNoQWZ0ZXJDYWxsKCkKICAgICBlbmQKKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0
ZXJDYWxsKCkKKyAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiBlbmQKIAogbWFjcm8gc2xvd1BhdGhG
b3JDYWxsKHNsb3dQYXRoKQogICAgIGNhbGxDYWxsU2xvd1BhdGgoCiAgICAgICAgIHNsb3dQYXRo
LAogICAgICAgICBtYWNybyAoY2FsbGVlKQorICAgICAgICAgICAgYnRweiB0MSwgLmRvbnRVcGRh
dGVTUAorICAgICAgICAgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgdDEsIHNwCisgICAg
ICAgIC5kb250VXBkYXRlU1A6CiAgICAgICAgICAgICBpZiBDX0xPT1AKICAgICAgICAgICAgICAg
ICBjbG9vcENhbGxKU0Z1bmN0aW9uIGNhbGxlZQogICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgIGNhbGwgY2FsbGVlCi0gICAgICAgICAgICAgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQog
ICAgICAgICAgICAgZW5kCisgICAgICAgICAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxs
KCkKKyAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKICAgICAgICAgZW5kKQogZW5kCiAK
QEAgLTMyNSwyNiArNDc1LDQ4IEBAIGVuZAogIyBEbyB0aGUgYmFyZSBtaW5pbXVtIHJlcXVpcmVk
IHRvIGV4ZWN1dGUgY29kZS4gU2V0cyB1cCB0aGUgUEMsIGxlYXZlIHRoZSBDb2RlQmxvY2sqCiAj
IGluIHQxLiBNYXkgYWxzbyB0cmlnZ2VyIHByb2xvZ3VlIGVudHJ5IE9TUi4KIG1hY3JvIHByb2xv
Z3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBvc3JTbG93UGF0aCwgdHJhY2VT
bG93UGF0aCkKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDIpCi0gICAgCiAg
ICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdlIHNob3VsZCBPU1IuCi0g
ICAgc3RvcmVwIHQyLCBSZXR1cm5QQ1tjZnJdCisgICAgcHJlc2VydmVDYWxsZXJQQ0FuZENGUigp
CisKICAgICBpZiBFWEVDVVRJT05fVFJBQ0lORworICAgICAgICBzdWJwIG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsLCBzcAogICAgICAgICBjYWxsU2xvd1BhdGgodHJhY2VTbG93UGF0aCkK
KyAgICAgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgc3AKICAgICBlbmQK
ICAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCitpZiBDX0xPT1AKK2Vsc2UKICAgICBiYWRkaXMgNSwg
Q29kZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2Nv
dW50ZXJbdDFdLCAuY29udGludWUKLSAgICBjQ2FsbDIob3NyU2xvd1BhdGgsIGNmciwgUEMpCi0g
ICAgbW92ZSB0MSwgY2ZyCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAgIGNDYWxsMihvc3JTbG93
UGF0aCwgY2ZyLCBQQykKKyAgICBlbHNlCisgICAgICAgICMgV2UgYXJlIGFmdGVyIHRoZSBmdW5j
dGlvbiBwcm9sb2d1ZSwgYnV0IGJlZm9yZSB3ZSBoYXZlIHNldCB1cCBzcCBmcm9tIHRoZSBDb2Rl
QmxvY2suCisgICAgICAgICMgVGVtcG9yYXJpbHkgYWxpZ24gc3RhY2sgcG9pbnRlciBmb3IgdGhp
cyBjYWxsLgorICAgICAgICBzdWJwIDgsIHNwCisgICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCwg
Y2ZyLCBQQykKKyAgICAgICAgYWRkcCA4LCBzcAorICAgIGVuZAogICAgIGJ0cHogdDAsIC5yZWNv
dmVyCi0gICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIKLSAgICByZXN0b3JlUmV0dXJuQWRkcmVz
c0JlZm9yZVJldHVybih0MikKKyAgICBtb3ZlIGNmciwgc3AgIyByZXN0b3JlIHRoZSBwcmV2aW91
cyBzcAorICAgICMgcG9wIHRoZSBjYWxsZXJGcmFtZSBzaW5jZSB3ZSB3aWxsIGp1bXAgdG8gYSBm
dW5jdGlvbiB0aGF0IHdhbnRzIHRvIHNhdmUgaXQKKyAgICBpZiBBUk02NAorICAgICAgICBwb3BM
UkFuZEZQCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1J
UFMgb3IgU0g0CisgICAgICAgIHBvcCBjZnIKKyAgICAgICAgcG9wIGxyCisgICAgZWxzZQorICAg
ICAgICBwb3AgY2ZyCisgICAgZW5kCiAgICAgam1wIHQwCiAucmVjb3ZlcjoKICAgICBjb2RlQmxv
Y2tHZXR0ZXIodDEpCiAuY29udGludWU6CitlbmQKKwogICAgIGNvZGVCbG9ja1NldHRlcih0MSkK
ICAgICAKKyAgICBtb3ZlU3RhY2tQb2ludGVyRm9yQ29kZUJsb2NrKHQxLCB0MikKKwogICAgICMg
U2V0IHVwIHRoZSBQQy4KICAgICBpZiBKU1ZBTFVFNjQKICAgICAgICAgbG9hZHAgQ29kZUJsb2Nr
OjptX2luc3RydWN0aW9uc1t0MV0sIFBCCkBAIC0zODksMTQgKzU2MSwxNiBAQCBtYWNybyBmdW5j
dGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVBcmdTCiAgICAgICAgIAogICAgICMgQ2hlY2sgc3Rh
Y2sgaGVpZ2h0LgogICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFd
LCB0MAotICAgIGFkZGkgMSwgdDAgIyBBY2NvdW50IHRoYXQgbG9jYWwwIGdvZXMgYXQgc2xvdCAt
MQogICAgIGxvYWRwIENvZGVCbG9jazo6bV92bVt0MV0sIHQyCiAgICAgbHNoaWZ0cCAzLCB0MAor
ICAgIGFkZGkgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwsIHQwCiAgICAgc3VicCBjZnIs
IHQwLCB0MAogICAgIGJwYmVxIFZNOjptX2pzU3RhY2tMaW1pdFt0Ml0sIHQwLCAuc3RhY2tIZWln
aHRPSwogCiAgICAgIyBTdGFjayBoZWlnaHQgY2hlY2sgZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEg
c2xvd19wYXRoLgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc3RhY2tfY2hlY2spCisgICAgYnBl
cSB0MSwgMCwgLnN0YWNrSGVpZ2h0T0sKKyAgICBtb3ZlIHQxLCBjZnIKIC5zdGFja0hlaWdodE9L
OgogZW5kCiAKQEAgLTQyMywyNSArNTk3LDY5IEBAIG1hY3JvIGFsbG9jYXRlSlNPYmplY3QoYWxs
b2NhdG9yLCBzdHJ1Y3QKIGVuZAogCiBtYWNybyBkb1JldHVybigpCi0gICAgbG9hZHAgUmV0dXJu
UENbY2ZyXSwgdDIKLSAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIKLSAgICByZXN0b3Jl
UmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MikKKyAgICByZXN0b3JlQ2FsbGVyUENBbmRDRlIo
KQogICAgIHJldAogZW5kCiAKLWlmIENfTE9PUAotZWxzZQogIyBzdHViIHRvIGNhbGwgaW50byBK
YXZhU2NyaXB0IG9yIE5hdGl2ZSBmdW5jdGlvbnMKLSMgRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2
YVNjcmlwdCh2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3Rv
RnJhbWUsIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKQotIyBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRp
dmVGdW5jdGlvbih2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHBy
b3RvRnJhbWUsIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKQorIyBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9K
YXZhU2NyaXB0KHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtVG9wQ2FsbEZyYW1lLCBQcm90b0Nh
bGxGcmFtZSogcHJvdG9GcmFtZSkKKyMgRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rp
b24odm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm1Ub3BDYWxsRnJhbWUsIFByb3RvQ2FsbEZyYW1l
KiBwcm90b0ZyYW1lKQogIyBOb3RlLCBpZiB0aGVzZSBzdHVicyBvciBvbmUgb2YgdGhlaXIgcmVs
YXRlZCBtYWNyb3MgYXJlIGNoYW5nZWQsIG1ha2UgdGhlCiAjIGVxdWl2YWxlbnQgY2hhbmdlcyBp
biBqaXQvSklUU3R1YnNYODYuaCBhbmQvb3Igaml0L0pJVFN0dWJzTVNWQzY0LmFzbQorCitpZiBD
X0xPT1AKK19sbGludF9jYWxsX3RvX2phdmFzY3JpcHQ6CitlbHNlCiBfY2FsbFRvSmF2YVNjcmlw
dDoKLSAgICBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUphdmFTY3JpcHRDYWxsLCBkb1JldHVybkZy
b21KYXZhU2NyaXB0KQorZW5kCisgICAgZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VKYXZhU2NyaXB0
Q2FsbCkKKwogCitpZiBDX0xPT1AKK19sbGludF9jYWxsX3RvX25hdGl2ZV9mdW5jdGlvbjoKK2Vs
c2UKIF9jYWxsVG9OYXRpdmVGdW5jdGlvbjoKLSAgICBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUhv
c3RGdW5jdGlvbkNhbGwsIGRvUmV0dXJuRnJvbUhvc3RGdW5jdGlvbikKIGVuZAorICAgIGRvQ2Fs
bFRvSmF2YVNjcmlwdChtYWtlSG9zdEZ1bmN0aW9uQ2FsbCkKKworCitpZiBDX0xPT1AKK2Vsc2UK
KyMgdm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk1JbXBsKFZNKiB2bSkKK19zYW5pdGl6ZVN0YWNrRm9y
Vk1JbXBsOgorICAgIGlmIFg4Nl82NAorICAgICAgICBjb25zdCB2bSA9IHQ0CisgICAgICAgIGNv
bnN0IGFkZHJlc3MgPSB0MQorICAgICAgICBjb25zdCB6ZXJvVmFsdWUgPSB0MAorICAgIGVsc2lm
IFg4NgorICAgICAgICBjb25zdCB2bSA9IHQyCisgICAgICAgIGNvbnN0IGFkZHJlc3MgPSB0MQor
ICAgICAgICBjb25zdCB6ZXJvVmFsdWUgPSB0MAorICAgIGVsc2UKKyAgICAgICAgY29uc3Qgdm0g
PSBhMAorICAgICAgICBjb25zdCBhZGRyZXNzID0gdDEKKyAgICAgICAgY29uc3QgemVyb1ZhbHVl
ID0gdDIKKyAgICBlbmQKKworICAgIGlmIFg4NgorICAgICAgICBsb2FkcCA0W3NwXSwgdm0KKyAg
ICBlbmQKKworICAgIGxvYWRwIFZNOjptX2xhc3RTdGFja1RvcFt2bV0sIGFkZHJlc3MKKyAgICBi
cGJlcSBzcCwgYWRkcmVzcywgLnplcm9GaWxsRG9uZQorCisgICAgbW92ZSAwLCB6ZXJvVmFsdWUK
Ky56ZXJvRmlsbExvb3A6CisgICAgc3RvcmVwIHplcm9WYWx1ZSwgW2FkZHJlc3NdCisgICAgYWRk
cCBQdHJTaXplLCBhZGRyZXNzCisgICAgYnBhIHNwLCBhZGRyZXNzLCAuemVyb0ZpbGxMb29wCisK
Ky56ZXJvRmlsbERvbmU6CisgICAgbW92ZSBzcCwgYWRkcmVzcworICAgIHN0b3JlcCBhZGRyZXNz
LCBWTTo6bV9sYXN0U3RhY2tUb3Bbdm1dCisgICAgcmV0CitlbmQKKwogCiAjIEluZGljYXRlIHRo
ZSBiZWdpbm5pbmcgb2YgTExJbnQuCiBfbGxpbnRfYmVnaW46CkBAIC03MzEsOCArOTQ5LDE1IEBA
IF9sbGludF9vcF9jb25zdHJ1Y3Q6CiAKIF9sbGludF9vcF9jYWxsX3ZhcmFyZ3M6CiAgICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3NpemVfYW5k
X2FsbG9jX2ZyYW1lX2Zvcl92YXJhcmdzKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX3NpemVfZnJhbWVfZm9yX3ZhcmFyZ3MpCiAgICAgYnJhbmNoSWZFeGNlcHRpb24oX2xsaW50
X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUpCisgICAgIyBjYWxsZWVGcmFtZSBpbiB0
MQorICAgIGlmIEpTVkFMVUU2NAorICAgICAgICBtb3ZlIHQxLCBzcAorICAgIGVsc2UKKyAgICAg
ICAgIyBUaGUgY2FsbGVlRnJhbWUgaXMgbm90IHN0YWNrIGFsaWduZWQsIG1vdmUgZG93biBieSBD
YWxsZXJGcmFtZUFuZFBDU2l6ZSB0byBhbGlnbgorICAgICAgICBzdWJwIHQxLCBDYWxsZXJGcmFt
ZUFuZFBDU2l6ZSwgc3AKKyAgICBlbmQKICAgICBzbG93UGF0aEZvckNhbGwoX2xsaW50X3Nsb3df
cGF0aF9jYWxsX3ZhcmFyZ3MpCiAKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC05MCw2ICs5MCwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOjpMTEludDsKICNk
ZWZpbmUgT0ZGTElORV9BU01fQkVHSU4KICNkZWZpbmUgT0ZGTElORV9BU01fRU5ECiAKKyNpZiBF
TkFCTEUoT1BDT0RFX1RSQUNJTkcpCisjZGVmaW5lIFRSQUNFX09QQ09ERShvcGNvZGUpIGRhdGFM
b2dGKCIgICBvcCAlc1xuIiwgI29wY29kZSkKKyNlbHNlCisjZGVmaW5lIFRSQUNFX09QQ09ERShv
cGNvZGUpCisjZW5kaWYKKwogLy8gVG8ga2VlcCBjb21waWxlcnMgaGFwcHkgaW4gY2FzZSBvZiB1
bnVzZWQgbGFiZWxzLCBmb3JjZSB1c2FnZSBvZiB0aGUgbGFiZWw6CiAjZGVmaW5lIFVTRV9MQUJF
TChsYWJlbCkgXAogICAgIGRvIHsgXApAQCAtOTcsNyArMTAzLDcgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzo6TExJbnQ7CiAgICAgICAgICAgICBnb3RvIGxhYmVsOyBcCiAgICAgfSB3aGlsZSAoZmFs
c2UpCiAKLSNkZWZpbmUgT0ZGTElORV9BU01fT1BDT0RFX0xBQkVMKG9wY29kZSkgREVGSU5FX09Q
Q09ERShvcGNvZGUpIFVTRV9MQUJFTChvcGNvZGUpOworI2RlZmluZSBPRkZMSU5FX0FTTV9PUENP
REVfTEFCRUwob3Bjb2RlKSBERUZJTkVfT1BDT0RFKG9wY29kZSkgVVNFX0xBQkVMKG9wY29kZSk7
IFRSQUNFX09QQ09ERShvcGNvZGUpOwogCiAjaWYgRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RF
UykKICNkZWZpbmUgT0ZGTElORV9BU01fR0xVRV9MQUJFTChsYWJlbCkgIGxhYmVsOiBVU0VfTEFC
RUwobGFiZWwpOwpAQCAtMjEyLDEwICsyMTgsMTQgQEAgc3RydWN0IENMb29wUmVnaXN0ZXIgewog
I2VuZGlmIC8vICFDUFUoQklHX0VORElBTikKICNlbmRpZiAvLyAhVVNFKEpTVkFMVUU2NCkKIAor
ICAgICAgICBpbnRwdHJfdCogaXA7CiAgICAgICAgIGludDhfdCogaThwOwogICAgICAgICB2b2lk
KiB2cDsKKyAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CiAgICAgICAgIEV4ZWNTdGF0ZSog
ZXhlY1N0YXRlOwogICAgICAgICB2b2lkKiBpbnN0cnVjdGlvbjsKKyAgICAgICAgVk0qIHZtOwor
ICAgICAgICBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWU7CiAgICAgICAgIE5hdGl2ZUZ1
bmN0aW9uIG5hdGl2ZUZ1bmM7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaW50NjRfdCBp
NjQ7CkBAIC0yMjYsNiArMjM2LDEyIEBAIHN0cnVjdCBDTG9vcFJlZ2lzdGVyIHsKICAgICAgICAg
T3Bjb2RlIG9wY29kZTsKICAgICB9OwogCisgICAgb3BlcmF0b3IgRXhlY1N0YXRlKigpIHsgcmV0
dXJuIGV4ZWNTdGF0ZTsgfQorICAgIG9wZXJhdG9yIEluc3RydWN0aW9uKigpIHsgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8SW5zdHJ1Y3Rpb24qPihpbnN0cnVjdGlvbik7IH0KKyAgICBvcGVyYXRv
ciBWTSooKSB7IHJldHVybiB2bTsgfQorICAgIG9wZXJhdG9yIFByb3RvQ2FsbEZyYW1lKigpIHsg
cmV0dXJuIHByb3RvQ2FsbEZyYW1lOyB9CisgICAgb3BlcmF0b3IgUmVnaXN0ZXIqKCkgeyByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxSZWdpc3Rlcio+KHZwKTsgfQorCiAjaWYgVVNFKEpTVkFMVUU2
NCkKICAgICBpbmxpbmUgdm9pZCBjbGVhckhpZ2hXb3JkKCkgeyBpMzJwYWRkaW5nID0gMDsgfQog
I2Vsc2UKQEAgLTIzNyw3ICsyNTMsNyBAQCBzdHJ1Y3QgQ0xvb3BSZWdpc3RlciB7CiAvLyBUaGUg
bGxpbnQgQysrIGludGVycHJldGVyIGxvb3A6CiAvLwogCi1KU1ZhbHVlIENMb29wOjpleGVjdXRl
KENhbGxGcmFtZSogY2FsbEZyYW1lLCBPcGNvZGUgZW50cnlPcGNvZGUsIGJvb2wgaXNJbml0aWFs
aXphdGlvblBhc3MpCitKU1ZhbHVlIENMb29wOjpleGVjdXRlKE9wY29kZUlEIGVudHJ5T3Bjb2Rl
SUQsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90
b0NhbGxGcmFtZSwgYm9vbCBpc0luaXRpYWxpemF0aW9uUGFzcykKIHsKICAgICAjZGVmaW5lIENB
U1QgcmVpbnRlcnByZXRfY2FzdAogICAgICNkZWZpbmUgU0lHTl9CSVQzMih4KSAoKHgpICYgMHg4
MDAwMDAwMCkKQEAgLTI3Miw4ICsyODgsNiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENhbGxG
cmFtZSogY2FsbEZyCiAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgfQogCi0gICAgQVNT
RVJUKGNhbGxGcmFtZS0+dm0oKS50b3BDYWxsRnJhbWUgPT0gY2FsbEZyYW1lKTsKLQogICAgIC8v
IERlZmluZSB0aGUgcHNldWRvIHJlZ2lzdGVycyB1c2VkIGJ5IHRoZSBMTElOVCBDIExvb3AgYmFj
a2VuZDoKICAgICBBU1NFUlQoc2l6ZW9mKENMb29wUmVnaXN0ZXIpID09IHNpemVvZihpbnRwdHJf
dCkpOwogCkBAIC0zMDgsNTAgKzMyMiw0OCBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENhbGxG
cmFtZSogY2FsbEZyCiAgICAgLy8gMi4gMzIgYml0IHJlc3VsdCB2YWx1ZXMgd2lsbCBiZSBpbiB0
aGUgbG93IDMyLWJpdCBvZiB0MC4KICAgICAvLyAzLiA2NCBiaXQgcmVzdWx0IHZhbHVlcyB3aWxs
IGJlIGluIHQwLgogCi0gICAgQ0xvb3BSZWdpc3RlciB0MCwgdDEsIHQyLCB0MzsKKyAgICBDTG9v
cFJlZ2lzdGVyIHQwLCB0MSwgdDIsIHQzLCB0NSwgc3AsIGNmciwgbHIsIHBjOwogI2lmIFVTRShK
U1ZBTFVFNjQpCi0gICAgQ0xvb3BSZWdpc3RlciByQmFzZVBDLCB0YWdUeXBlTnVtYmVyLCB0YWdN
YXNrOworICAgIENMb29wUmVnaXN0ZXIgcGNCYXNlLCB0YWdUeXBlTnVtYmVyLCB0YWdNYXNrOwog
I2VuZGlmCi0gICAgQ0xvb3BSZWdpc3RlciByUmV0VlBDOwogICAgIENMb29wRG91YmxlUmVnaXN0
ZXIgZDAsIGQxOwogCi0gICAgLy8gS2VlcCB0aGUgY29tcGlsZXIgaGFwcHkuIFdlIGRvbid0IHJl
YWxseSBuZWVkIHRoaXMsIGJ1dCB0aGUgY29tcGlsZXIKLSAgICAvLyB3aWxsIGNvbXBsYWluLiBU
aGlzIG1ha2VzIHRoZSB3YXJuaW5nIGdvIGF3YXkuCi0gICAgdDAuaSA9IDA7Ci0gICAgdDEuaSA9
IDA7Ci0KLSAgICBWTSogdm0gPSAmY2FsbEZyYW1lLT52bSgpOwotCi0gICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgIEluc3RydWN0aW9uKiB2UEM7
Ci0KLSAgICAvLyByUEMgaXMgYW4gYWxpYXMgZm9yIHZQQy4gU2V0IHVwIHRoZSBhbGlhczoKLSAg
ICBDTG9vcFJlZ2lzdGVyJiByUEMgPSAqQ0FTVDxDTG9vcFJlZ2lzdGVyKj4oJnZQQyk7CisgICAg
bHIub3Bjb2RlID0gZ2V0T3Bjb2RlKGxsaW50X3JldHVybl90b19ob3N0KTsKKyAgICBzcC52cCA9
IHZtLT5pbnRlcnByZXRlci0+c3RhY2soKS50b3BPZlN0YWNrKCkgKyAxOworICAgIGNmci5jYWxs
RnJhbWUgPSB2bS0+dG9wQ2FsbEZyYW1lOworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkKiBzdGFy
dFNQID0gc3AudnA7CisgICAgQ2FsbEZyYW1lKiBzdGFydENGUiA9IGNmci5jYWxsRnJhbWU7Cisj
ZW5kaWYKIAotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgdlBDID0gY29kZUJsb2NrLT5pbnN0
cnVjdGlvbnMoKS5iZWdpbigpOwotI2Vsc2UgLy8gVVNFKEpTVkFMVUU2NCkKLSAgICB2UEMgPSAw
OwotICAgIHJCYXNlUEMudnAgPSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7Cisg
ICAgLy8gSW5pdGlhbGl6ZSB0aGUgaW5jb21pbmcgYXJncyBmb3IgZG9DYWxsVG9KYXZhU2NyaXB0
OgorICAgIHQwLnZwID0gZXhlY3V0YWJsZUFkZHJlc3M7CisgICAgdDEudm0gPSB2bTsKKyAgICB0
Mi5wcm90b0NhbGxGcmFtZSA9IHByb3RvQ2FsbEZyYW1lOwogCisjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAvLyBGb3IgdGhlIEFTTSBsbGludCwgSklUU3R1YnMgdGFrZXMgY2FyZSBvZiB0aGlzIGlu
aXRpYWxpemF0aW9uLiBXZSBkbwogICAgIC8vIGl0IGV4cGxpY2l0bHkgaGVyZSBmb3IgdGhlIEMg
bG9vcDoKICAgICB0YWdUeXBlTnVtYmVyLmkgPSAweEZGRkYwMDAwMDAwMDAwMDA7CiAgICAgdGFn
TWFzay5pID0gMHhGRkZGMDAwMDAwMDAwMDAyOwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAK
LSAgICAvLyBjZnIgaXMgYW4gYWxpYXMgZm9yIGNhbGxGcmFtZS4gU2V0IHVwIHRoaXMgYWxpYXM6
Ci0gICAgQ0xvb3BSZWdpc3RlciYgY2ZyID0gKkNBU1Q8Q0xvb3BSZWdpc3Rlcio+KCZjYWxsRnJh
bWUpOwotCi0gICAgLy8gU2ltdWxhdGUgYSBuYXRpdmUgcmV0dXJuIFBDIHdoaWNoIHNob3VsZCBu
ZXZlciBiZSB1c2VkOgotICAgIHJSZXRWUEMuaSA9IDB4YmJhZGJlZWY7Ci0KICAgICAvLyBJbnRl
cnByZXRlciB2YXJpYWJsZXMgZm9yIHZhbHVlIHBhc3NpbmcgYmV0d2VlbiBvcGNvZGVzIGFuZC9v
ciBoZWxwZXJzOgogICAgIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmMgPSAwOwogICAgIEpTVmFs
dWUgZnVuY3Rpb25SZXR1cm5WYWx1ZTsKLSAgICBPcGNvZGUgb3Bjb2RlOworICAgIE9wY29kZSBv
cGNvZGUgPSBnZXRPcGNvZGUoZW50cnlPcGNvZGVJRCk7CiAKLSAgICBvcGNvZGUgPSBlbnRyeU9w
Y29kZTsKKyAgICAjZGVmaW5lIFBVU0goY2xvb3BSZWcpIFwKKyAgICAgICAgZG8geyBcCisgICAg
ICAgICAgICBzcC5pcC0tOyBcCisgICAgICAgICAgICAqc3AuaXAgPSBjbG9vcFJlZy5pOyBcCisg
ICAgICAgIH0gd2hpbGUgKGZhbHNlKQorICAgIAorICAgICNkZWZpbmUgUE9QKGNsb29wUmVnKSBc
CisgICAgICAgIGRvIHsgXAorICAgICAgICAgICAgY2xvb3BSZWcuaSA9ICpzcC5pcDsgXAorICAg
ICAgICAgICAgc3AuaXArKzsgXAorICAgICAgICB9IHdoaWxlIChmYWxzZSkKIAogICAgICNpZiBF
TkFCTEUoT1BDT0RFX1NUQVRTKQogICAgICAgICAjZGVmaW5lIFJFQ09SRF9PUENPREVfU1RBVFMo
X19vcGNvZGUpIFwKQEAgLTM2MSw5ICszNzMsOSBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENh
bGxGcmFtZSogY2FsbEZyCiAgICAgI2VuZGlmCiAKICAgICAjaWYgVVNFKEpTVkFMVUUzMl82NCkK
LSAgICAgICAgI2RlZmluZSBGRVRDSF9PUENPREUoKSB2UEMtPnUub3Bjb2RlCisgICAgICAgICNk
ZWZpbmUgRkVUQ0hfT1BDT0RFKCkgcGMub3Bjb2RlCiAgICAgI2Vsc2UgLy8gVVNFKEpTVkFMVUU2
NCkKLSAgICAgICAgI2RlZmluZSBGRVRDSF9PUENPREUoKSAqYml0d2lzZV9jYXN0PE9wY29kZSo+
KHJCYXNlUEMuaThwICsgclBDLmkgKiA4KQorICAgICAgICAjZGVmaW5lIEZFVENIX09QQ09ERSgp
ICpiaXR3aXNlX2Nhc3Q8T3Bjb2RlKj4ocGNCYXNlLmk4cCArIHBjLmkgKiA4KQogICAgICNlbmRp
ZiAvLyBVU0UoSlNWQUxVRTY0KQogCiAgICAgI2RlZmluZSBORVhUX0lOU1RSVUNUSU9OKCkgXApA
QCAtNDEyLDE0ICs0MjQsMjIgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNh
bGxGcgogCiAgICAgICAgICNpbmNsdWRlICJMTEludEFzc2VtYmx5LmgiCiAKKyAgICAgICAgT0ZG
TElORV9BU01fR0xVRV9MQUJFTChsbGludF9yZXR1cm5fdG9faG9zdCkKKyAgICAgICAgeworICAg
ICAgICAgICAgQVNTRVJUKHN0YXJ0U1AgPT0gc3AudnApOworICAgICAgICAgICAgQVNTRVJUKHN0
YXJ0Q0ZSID09IGNmci5jYWxsRnJhbWUpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZSh0MS5pLCB0MC5pKTsgLy8gcmV0dXJuaW5nIEpTVmFsdWUodGFn
LCBwYXlsb2FkKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHQw
LmVuY29kZWRKU1ZhbHVlKTsKKyNlbmRpZgorICAgICAgICB9CisKICAgICAgICAgLy8gSW4gdGhl
IEFTTSBsbGludCwgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSgpIGlzIGEgcGllY2Ugb2YgZ2x1ZQot
ICAgICAgICAvLyBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGUgSklUIChzZWUgZGZnL0RGR09wZXJh
dGlvbnMuY3BwKS4KKyAgICAgICAgLy8gZnVuY3Rpb24gcHJvdmlkZWQgYnkgdGhlIEpJVCAoc2Vl
IGppdC9KSVRPcGVyYXRpb25zLmNwcCkuCiAgICAgICAgIC8vIFdlIHNpbXVsYXRlIGl0IGhlcmUg
d2l0aCBhIHBzZWR1by1vcGNvZGUgaGFuZGxlci4KICAgICAgICAgT0ZGTElORV9BU01fR0xVRV9M
QUJFTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKQogICAgICAgICB7Ci0gICAgICAgICAgICAvLyBU
aGUgQVNNIHBhcnQgcG9wcyB0aGUgZnJhbWU6Ci0gICAgICAgICAgICBjYWxsRnJhbWUgPSBjYWxs
RnJhbWUtPmNhbGxlckZyYW1lKCk7Ci0KICAgICAgICAgICAgIC8vIFRoZSBwYXJ0IGluIGdldEhv
c3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKCk6CiAgICAgICAgICAgICBKU1ZhbHVlIHJl
c3VsdCA9IHZtLT5ob3N0Q2FsbFJldHVyblZhbHVlOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBA
IC00MjgsMTIgKzQ0OCw4IEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxs
RnIKICNlbHNlCiAgICAgICAgICAgICB0MC5lbmNvZGVkSlNWYWx1ZSA9IEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpOwogI2VuZGlmCi0gICAgICAgICAgICBnb3RvIGRvUmV0dXJuSGVscGVyOwotICAg
ICAgICB9Ci0KLSAgICAgICAgT0ZGTElORV9BU01fR0xVRV9MQUJFTChyZXR1cm5Gcm9tSmF2YVNj
cmlwdCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHZtLT5leGNlcHRpb24oKTsKKyAg
ICAgICAgICAgIG9wY29kZSA9IGxyLm9wY29kZTsKKyAgICAgICAgICAgIERJU1BBVENIX09QQ09E
RSgpOwogICAgICAgICB9CiAKICNpZiAhRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKQEAg
LTQ0Myw1NSArNDU5LDYgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxG
cgogCiAgICAgfSAvLyBFTkQgYnl0ZWNvZGUgaGFuZGxlciBjYXNlcy4KIAotICAgIC8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0gICAgLy8gQnl0ZWNvZGUgaGVscGVyczoKLQotICAgIGRvUmV0dXJuSGVscGVy
OiB7Ci0gICAgICAgIEFTU0VSVCghIWNhbGxGcmFtZSk7Ci0gICAgICAgIGlmIChjYWxsRnJhbWUt
PmlzVk1FbnRyeVNlbnRpbmVsKCkpIHsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWUodDEuaSwgdDAuaSk7IC8vIHJldHVybmluZyBKU1ZhbHVlKHRhZywg
cGF5bG9hZCk7Ci0jZWxzZQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh0MC5l
bmNvZGVkSlNWYWx1ZSk7Ci0jZW5kaWYKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRoZSBub3Jt
YWwgQVNNIGxsaW50IGNhbGwgaW1wbGVtZW50YXRpb24gcmV0dXJucyB0byB0aGUgY2FsbGVyIGFz
Ci0gICAgICAgIC8vIHJlY29yZGVkIGluIHJSZXRWUEMsIGFuZCB0aGUgY2FsbGVyIHdvdWxkIGZl
dGNoIHRoZSByZXR1cm4gYWRkcmVzcwotICAgICAgICAvLyBmcm9tIEFyZ3VtZW50Q291bnQudGFn
KCkgKHNlZSB0aGUgZGlzcGF0Y2hBZnRlckNhbGwoKSBtYWNybyB1c2VkIGluCi0gICAgICAgIC8v
IHRoZSBjYWxsVGFyZ2V0RnVuY3Rpb24oKSBtYWNybyBpbiB0aGUgbGxpbnQgYXNtIGZpbGVzKS4K
LSAgICAgICAgLy8KLSAgICAgICAgLy8gRm9yIHRoZSBDIGxvb3AsIHdlIGRvbid0IGhhdmUgdGhl
IEpJVCBzdHViIHRvIGRvIHRoaXMgd29yayBmb3IgdXMuIFNvLAotICAgICAgICAvLyB3ZSBqdW1w
IHRvIGxsaW50X2dlbmVyaWNfcmV0dXJuX3BvaW50LgotCi0gICAgICAgIHZQQyA9IGNhbGxGcmFt
ZS0+Y3VycmVudFZQQygpOwotCi0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgLy8gQmFzZWQg
b24gTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSdzIGRpc3BhdGNoQWZ0ZXJDYWxsKCk6Ci0KLSAg
ICAgICAgLy8gV2hlbiByZXR1cm5pbmcgZnJvbSBhIG5hdGl2ZSB0cmFtcG9saW5lIGNhbGwsIHVu
bGlrZSB0aGUgYXNzZW1ibHkKLSAgICAgICAgLy8gTExJbnQsIHdlIGNhbid0IHNpbXBseSByZXR1
cm4gdG8gdGhlIGNhbGxlci4gSW4gb3VyIGNhc2UsIHdlIGdyYWIKLSAgICAgICAgLy8gdGhlIGNh
bGxlcidzIFZQQyBhbmQgcmVzdW1lIGV4ZWN1dGlvbiB0aGVyZS4gSG93ZXZlciwgdGhlIGNhbGxl
cidzCi0gICAgICAgIC8vIFZQQyByZXR1cm5lZCBieSBjYWxsRnJhbWUtPmN1cnJlbnRWUEMoKSBp
cyBpbiB0aGUgZm9ybSBvZiB0aGUgcmVhbAotICAgICAgICAvLyBhZGRyZXNzIG9mIHRoZSB0YXJn
ZXQgYnl0ZWNvZGUsIGJ1dCB0aGUgNjQtYml0IGxsaW50IGV4cGVjdHMgdGhlCi0gICAgICAgIC8v
IFZQQyB0byBiZSBhIGJ5dGVjb2RlIG9mZnNldC4gSGVuY2UsIHdlIG5lZWQgdG8gbWFwIGl0IGJh
Y2sgdG8gYQotICAgICAgICAvLyBieXRlY29kZSBvZmZzZXQgYmVmb3JlIHdlIGRpc3BhdGNoIHZp
YSB0aGUgdXN1YWwgZGlzcGF0Y2ggbWVjaGFuaXNtCi0gICAgICAgIC8vIGkuZS4gTkVYVF9JTlNU
UlVDVElPTigpOgotCi0gICAgICAgIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7
Ci0gICAgICAgIEFTU0VSVChjb2RlQmxvY2spOwotICAgICAgICByUEMudnAgPSBjYWxsRnJhbWUt
PmN1cnJlbnRWUEMoKTsKLSAgICAgICAgclBDLmkgPSByUEMuaThwIC0gcmVpbnRlcnByZXRfY2Fz
dDxpbnQ4X3QqPihjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkpOwotICAgICAgICBy
UEMuaSA+Pj0gMzsKLQotICAgICAgICByQmFzZVBDLnZwID0gY29kZUJsb2NrLT5pbnN0cnVjdGlv
bnMoKS5iZWdpbigpOwotI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCi0KLSAgICAgICAgZ290byBs
bGludF9nZW5lcmljX3JldHVybl9wb2ludDsKLQotICAgIH0gLy8gRU5EIGRvUmV0dXJuSGVscGVy
LgotCi0KICNpZiBFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQogICAgIC8vIEtlZXAgdGhl
IGNvbXBpbGVyIGhhcHB5IHNvIHRoYXQgaXQgZG9lc24ndCBjb21wbGFpbiBhYm91dCB1bnVzZWQK
ICAgICAvLyBsYWJlbHMgZm9yIHRoZSBMTEludCB0cmFtcG9saW5lIGdsdWUuIFRoZSBsYWJlbHMg
YXJlIGF1dG9tYXRpY2FsbHkKQEAgLTUyMywxMiArNDkwLDEyIEBAIEpTVmFsdWUgQ0xvb3A6OmV4
ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnIKIAogLy8gVGhlc2UgYXJlIGZvciBidWlsZGluZyBhbiBp
bnRlcnByZXRlciBmcm9tIGdlbmVyYXRlZCBhc3NlbWJseSBjb2RlOgogI2lmIENQVShYODZfNjQp
ICYmIENPTVBJTEVSKENMQU5HKQotI2RlZmluZSBPRkZMSU5FX0FTTV9CRUdJTiAgIGFzbSAoIFwK
KyNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4gICBhc20gKCAgICAgICAgICAgICAgICBcCiAgICAg
Ii5jZmlfc3RhcnRwcm9jXG4iCiAKLSNkZWZpbmUgT0ZGTElORV9BU01fRU5EICAgICBcCi0gICAg
Ii5jZmlfZW5kcHJvY1xuIiBcCi0pOworI2RlZmluZSBPRkZMSU5FX0FTTV9FTkQgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAiLmNmaV9lbmRwcm9jXG4iICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICNlbHNlCiAjZGVm
aW5lIE9GRkxJTkVfQVNNX0JFR0lOICAgYXNtICgKICNkZWZpbmUgT0ZGTElORV9BU01fRU5EICAg
ICApOwpAQCAtNTUxLDkgKzUxOCw5IEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZyYW1l
KiBjYWxsRnIKICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhsYWJlbCkgIlxuIiAgICAgICAg
IFwKICAgICBISURFX1NZTUJPTChsYWJlbCkgIlxuIiAgICAgICAgICAgICAgICAgICAgIFwKICAg
ICBTWU1CT0xfU1RSSU5HKGxhYmVsKSAiOlxuIiAgICAgICAgICAgICAgICAgIFwKLSAgICAiLmNm
aV9kZWZfY2ZhIHJicCwgMFxuIiAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAiLmNmaV9vZmZz
ZXQgMTYsIDhcbiIgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAiLmNmaV9vZmZzZXQgNiwg
MFxuIgorICAgICIuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2XG4iICAgICAgICAgICAgICAgICAgXAor
ICAgICIuY2ZpX29mZnNldCAlcmJwLCAtMTZcbiIgICAgICAgICAgICAgICAgICAgXAorICAgICIu
Y2ZpX2RlZl9jZmFfcmVnaXN0ZXIgcmJwXG4iCiAjZWxzZQogI2RlZmluZSBPRkZMSU5FX0FTTV9H
TE9CQUxfTEFCRUwobGFiZWwpICAgICAgICAgXAogICAgICIudGV4dFxuIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsdm0v
bGlicmFyeS9MTFZNRXhwb3J0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsdm0vbGlicmFyeS9MTFZNRXhwb3J0cy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbHZtL2xpYnJhcnkvTExWTUV4cG9ydHMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw2ICs0MiwxMCBAQCBleHRlcm4gIkMiIEpTQzo6TExWTUFQSSogaW5pdGlh
bGl6ZUFuZEdlCiAgICAgZ19sbHZtVHJhcENhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgCiAgICAg
TExWTUluc3RhbGxGYXRhbEVycm9ySGFuZGxlcihsbHZtQ3Jhc2gpOworCisgICAgaWYgKCFMTFZN
U3RhcnRNdWx0aXRocmVhZGVkKCkpCisgICAgICAgIGNhbGxiYWNrKCJDb3VsZCBub3Qgc3RhcnQg
TExWTSBtdWx0aXRocmVhZGluZyIpOworICAgIAogICAgIExMVk1MaW5rSW5NQ0pJVCgpOwogICAg
IExMVk1Jbml0aWFsaXplTmF0aXZlVGFyZ2V0KCk7CiAgICAgTExWTUluaXRpYWxpemVYODZBc21Q
cmludGVyKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5y
Ygo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5y
YgkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
YXJtNjQucmIJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE0ICs0MCwxNCBAQCByZXF1aXJlICJyaXNj
IgogIyAgeDEgID0+IHQxLCBhMSwgcjEKICMgIHgyICA9PiB0MiwgYTIKICMgIHgzICA9PiBhMwor
IyAgeDUgID0+IHQ1CisjICB4NiAgPT4gdDYKICMgIHg5ICA9PiAobm9uQXJnR1BSMSBpbiBiYXNl
bGluZSkKLSMgeDEwICA9PiB0NCAodW51c2VkIGluIGJhc2VsaW5lKQotIyB4MTEgID0+IHQ1ICh1
bnVzZWQgaW4gYmFzZWxpbmUpCi0jIHgxMiAgPT4gdDYgKHVudXNlZCBpbiBiYXNlbGluZSkKICMg
eDEzICA9PiBzY3JhdGNoICh1bnVzZWQgaW4gYmFzZWxpbmUpCiAjIHgxNiAgPT4gc2NyYXRjaAog
IyB4MTcgID0+IHNjcmF0Y2gKICMgeDIzICA9PiB0MworIyB4MjQgID0+IHQ0CiAjIHgyNyAgPT4g
Y3NyMSAodGFnVHlwZU51bWJlcikKICMgeDI4ICA9PiBjc3IyICh0YWdNYXNrKQogIyB4MjkgID0+
IGNmcgpAQCAtMTEzLDExICsxMTMsMTEgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICB3aGVu
ICd0MycKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDIzJywga2luZCkKICAgICAgICAgd2hl
biAndDQnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gxMCcsIGtpbmQpCisgICAgICAgICAg
ICBhcm02NEdQUk5hbWUoJ3gyNCcsIGtpbmQpCiAgICAgICAgIHdoZW4gJ3Q1JwotICAgICAgICAg
ICAgYXJtNjRHUFJOYW1lKCd4MTEnLCBraW5kKQorICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4
NScsIGtpbmQpCiAgICAgICAgIHdoZW4gJ3Q2JwotICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4
MTInLCBraW5kKQorICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4NicsIGtpbmQpCiAgICAgICAg
IHdoZW4gJ2NmcicKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDI5Jywga2luZCkKICAgICAg
ICAgd2hlbiAnY3NyMScKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Fy
bS5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0u
cmIJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L2FybS5yYgkod29ya2luZyBjb3B5KQpAQCAtNjAxLDYgKzYwMSw4IEBAIGNsYXNzIEluc3RydWN0
aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgInNtdWxsICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gIm1lbWZlbmNlIgogICAg
ICAgICAgICAgJGFzbS5wdXRzICJkbWIgc3kiCisgICAgICAgIHdoZW4gImNscmJwIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJiaWMgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5k
c1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgbG93ZXJEZWZhdWx0CiAgICAgICAgIGVuZApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Nsb29wLnJiCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02OCwzNCArNjgs
MjIgQEAgQ19MT09QX1NDUkFUQ0hfRlBSID0gU3BlY2lhbFJlZ2lzdGVyLm5ldwogY2xhc3MgUmVn
aXN0ZXJJRAogICAgIGRlZiBjbER1bXAKICAgICAgICAgY2FzZSBuYW1lCi0gICAgICAgIHdoZW4g
ImEwIgotICAgICAgICAgICAgImEwIgotICAgICAgICB3aGVuICJhMSIKLSAgICAgICAgICAgICJh
MSIKLSAgICAgICAgd2hlbiAiYTIiCi0gICAgICAgICAgICAiYTIiCi0gICAgICAgIHdoZW4gImEz
IgotICAgICAgICAgICAgImEzIgotICAgICAgICB3aGVuICJhNCIKLSAgICAgICAgICAgICJhNCIK
LSAgICAgICAgd2hlbiAiYTUiCi0gICAgICAgICAgICAiYTUiCi0gICAgICAgIHdoZW4gImE2Igot
ICAgICAgICAgICAgImE2IgotICAgICAgICB3aGVuICJhNiIKLSAgICAgICAgICAgICJhNiIKLSAg
ICAgICAgd2hlbiAidDAiCisgICAgICAgICMgVGhlIGNsb29wIGlzIG1vZGVsbGVkIG9uIHRoZSBB
Uk0gaW1wbGVtZW50YXRpb24uIEhlbmNlLCB0aGUgYTAtYTMKKyAgICAgICAgIyByZWdpc3RlcnMg
YXJlIGFsaWFzZXMgZm9yIHIwLXIzIGkuZS4gdDAtdDMgaW4gb3VyIGNhc2UuCisgICAgICAgIHdo
ZW4gInQwIiwgImEwIgogICAgICAgICAgICAgInQwIgotICAgICAgICB3aGVuICJ0MSIKKyAgICAg
ICAgd2hlbiAidDEiLCAiYTEiCiAgICAgICAgICAgICAidDEiCi0gICAgICAgIHdoZW4gInQyIgor
ICAgICAgICB3aGVuICJ0MiIsICJhMiIKICAgICAgICAgICAgICJ0MiIKLSAgICAgICAgd2hlbiAi
dDMiCisgICAgICAgIHdoZW4gInQzIiwgImEzIgogICAgICAgICAgICAgInQzIgogICAgICAgICB3
aGVuICJ0NCIKLSAgICAgICAgICAgICJyUEMiCisgICAgICAgICAgICAicGMiCisgICAgICAgIHdo
ZW4gInQ1IgorICAgICAgICAgICAgInQ1IgogICAgICAgICB3aGVuICJ0NiIKLSAgICAgICAgICAg
ICJyQmFzZVBDIgorICAgICAgICAgICAgInBjQmFzZSIKICAgICAgICAgd2hlbiAiY3NyMSIKICAg
ICAgICAgICAgICJ0YWdUeXBlTnVtYmVyIgogICAgICAgICB3aGVuICJjc3IyIgpAQCAtMTAzLDcg
KzkxLDcgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICB3aGVuICJjZnIiCiAgICAgICAgICAg
ICAiY2ZyIgogICAgICAgICB3aGVuICJsciIKLSAgICAgICAgICAgICJyUmV0VlBDIgorICAgICAg
ICAgICAgImxyIgogICAgICAgICB3aGVuICJzcCIKICAgICAgICAgICAgICJzcCIKICAgICAgICAg
ZWxzZQpAQCAtNTU1LDE0ICs1NDMsMTQgQEAgZW5kCiAjIG9wZXJhbmRzOiBjYWxsVGFyZ2V0LCBj
dXJyZW50RnJhbWUsIGN1cnJlbnRQQwogZGVmIGNsb29wRW1pdENhbGxTbG93UGF0aChvcGVyYW5k
cykKICAgICAkYXNtLnB1dGMgInsiCi0gICAgJGFzbS5wdXRjICIgICAgRXhlY1N0YXRlKiBleGVj
ID0gQ0FTVDxFeGVjU3RhdGUqPigje29wZXJhbmRzWzFdLmNsVmFsdWUoOnZvaWRQdHIpfSk7Igot
ICAgICRhc20ucHV0YyAiICAgIEluc3RydWN0aW9uKiBwYyA9IENBU1Q8SW5zdHJ1Y3Rpb24qPigj
e29wZXJhbmRzWzJdLmNsVmFsdWUoOnZvaWRQdHIpfSk7IgotICAgICRhc20ucHV0YyAiICAgIFNs
b3dQYXRoUmV0dXJuVHlwZSByZXN1bHQgPSAje29wZXJhbmRzWzBdLmNMYWJlbH0oZXhlYywgcGMp
OyIKLSAgICAkYXNtLnB1dGMgIiAgICBkZWNvZGVSZXN1bHQocmVzdWx0LCB0MC5pbnN0cnVjdGlv
biwgdDEudnApOyIKKyAgICAkYXNtLnB1dGMgIiAgICBTbG93UGF0aFJldHVyblR5cGUgcmVzdWx0
ID0gI3tvcGVyYW5kc1swXS5jTGFiZWx9KCN7b3BlcmFuZHNbMV0uY2xEdW1wfSwgI3tvcGVyYW5k
c1syXS5jbER1bXB9KTsiCisgICAgJGFzbS5wdXRjICIgICAgZGVjb2RlUmVzdWx0KHJlc3VsdCwg
dDAudnAsIHQxLnZwKTsiCiAgICAgJGFzbS5wdXRjICJ9IgogZW5kCiAKIGNsYXNzIEluc3RydWN0
aW9uCisgICAgQEBkaWRSZXR1cm5Gcm9tSlNMYWJlbENvdW50ZXIgPSAwCisKICAgICBkZWYgbG93
ZXJDX0xPT1AKICAgICAgICAgJGFzbS5jb2RlT3JpZ2luIGNvZGVPcmlnaW5TdHJpbmcgaWYgJGVu
YWJsZUNvZGVPcmlnaW5Db21tZW50cwogICAgICAgICAkYXNtLmFubm90YXRpb24gYW5ub3RhdGlv
biBpZiAkZW5hYmxlSW5zdHJBbm5vdGF0aW9ucyAmJiAob3Bjb2RlICE9ICJjbG9vcERvIikKQEAg
LTg3Niw3ICs4NjQsOCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICJicmVhayIK
ICAgICAgICAgICAgICRhc20ucHV0YyAiQ1JBU0goKTsgLy8gYnJlYWsgaW5zdHJ1Y3Rpb24gbm90
IGltcGxlbWVudGVkLiIKICAgICAgICAgd2hlbiAicmV0IgotICAgICAgICAgICAgJGFzbS5wdXRj
ICJnb3RvIGRvUmV0dXJuSGVscGVyOyIKKyAgICAgICAgICAgICRhc20ucHV0YyAib3Bjb2RlID0g
bHIub3Bjb2RlOyIKKyAgICAgICAgICAgICRhc20ucHV0YyAiRElTUEFUQ0hfT1BDT0RFKCk7Igog
CiAgICAgICAgIHdoZW4gImNiZXEiCiAgICAgICAgICAgICBjbG9vcEVtaXRDb21wYXJlQW5kU2V0
KG9wZXJhbmRzLCA6dWludDgsICI9PSIpCkBAIC0xMDk3LDYgKzEwODYsMTIgQEAgY2xhc3MgSW5z
dHJ1Y3Rpb24KICAgICAgICAgICAgIGNsb29wRW1pdE9wQW5kQnJhbmNoKG9wZXJhbmRzLCAifCIs
IDppbnQzMiwgIiE9IDAiKQogICAgICAgICAgICAgCiAgICAgICAgIHdoZW4gIm1lbWZlbmNlIgor
CisgICAgICAgIHdoZW4gInB1c2giCisgICAgICAgICAgICAkYXNtLnB1dGMgIlBVU0goI3tvcGVy
YW5kc1swXS5jbER1bXB9KTsiCisgICAgICAgIHdoZW4gInBvcCIKKyAgICAgICAgICAgICRhc20u
cHV0YyAiUE9QKCN7b3BlcmFuZHNbMF0uY2xEdW1wfSk7IgorCiAgICAgICAgIHdoZW4gInB1c2hD
YWxsZWVTYXZlcyIKICAgICAgICAgd2hlbiAicG9wQ2FsbGVlU2F2ZXMiCiAKQEAgLTExMTMsOCAr
MTEwOCwxMSBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAjIHVzZSBvZiB0aGUgY2FsbCBp
bnN0cnVjdGlvbi4gSW5zdGVhZCwgd2UganVzdCBpbXBsZW1lbnQgSlMgY2FsbHMKICAgICAgICAg
IyBhcyBhbiBvcGNvZGUgZGlzcGF0Y2guCiAgICAgICAgIHdoZW4gImNsb29wQ2FsbEpTRnVuY3Rp
b24iCisgICAgICAgICAgICBAQGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlciArPSAxCisgICAg
ICAgICAgICAkYXNtLnB1dGMgImxyLm9wY29kZSA9IGdldE9wY29kZShsbGludF9jbG9vcF9kaWRf
cmV0dXJuX2Zyb21fanNfI3tAQGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlcn0pOyIKICAgICAg
ICAgICAgICRhc20ucHV0YyAib3Bjb2RlID0gI3tvcGVyYW5kc1swXS5jbFZhbHVlKDpvcGNvZGUp
fTsiCiAgICAgICAgICAgICAkYXNtLnB1dGMgIkRJU1BBVENIX09QQ09ERSgpOyIKKyAgICAgICAg
ICAgICRhc20ucHV0c0xhYmVsKCJsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfI3tAQGRp
ZFJldHVybkZyb21KU0xhYmVsQ291bnRlcn0iKQogCiAgICAgICAgICMgV2UgY2FuJ3QgZG8gZ2Vu
ZXJpYyBmdW5jdGlvbiBjYWxscyB3aXRoIGFuIGFyYml0cmFyeSBzZXQgb2YgYXJncywgYnV0CiAg
ICAgICAgICMgZm9ydHVuYXRlbHkgd2UgZG9uJ3QgaGF2ZSB0byBoZXJlLiBBbGwgbmF0aXZlIGZ1
bmN0aW9uIGNhbGxzIGFsd2F5cwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vaW5zdHJ1Y3Rpb25zLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCSh3b3JraW5nIGNvcHkpCkBA
IC0yNTgsNiArMjU4LDExIEBAIFg4Nl9JTlNUUlVDVElPTlMgPQogICAgICAiaWRpdmkiCiAgICAg
XQogCitBUk1fSU5TVFJVQ1RJT05TID0KKyAgICBbCisgICAgICJjbHJicCIKKyAgICBdCisKIEFS
TTY0X0lOU1RSVUNUSU9OUyA9CiAgICAgWwogICAgICAicG9wTFJBbmRGUCIsICAgIyBBUk02NCBy
ZXF1aXJlcyByZWdpc3RlcnMgdG8gYmUgcHVzaGVkIGFuZCBwb3BwZWQgaW4gcGFpcnMsCkBAIC0z
MTMsNyArMzE4LDcgQEAgQ1hYX0lOU1RSVUNUSU9OUyA9CiAgICAgICJjbG9vcERvIiwgICAgICAg
ICAgICAgICMgbm8gb3BlcmFuZHMKICAgICBdCiAKLUlOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RS
VUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk02NF9JTlNUUlVDVElPTlMgKyBSSVNDX0lO
U1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsgU0g0X0lOU1RSVUNUSU9OUyArIENYWF9J
TlNUUlVDVElPTlMKK0lOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNU
UlVDVElPTlMgKyBBUk1fSU5TVFJVQ1RJT05TICsgQVJNNjRfSU5TVFJVQ1RJT05TICsgUklTQ19J
TlNUUlVDVElPTlMgKyBNSVBTX0lOU1RSVUNUSU9OUyArIFNINF9JTlNUUlVDVElPTlMgKyBDWFhf
SU5TVFJVQ1RJT05TCiAKIElOU1RSVUNUSU9OX1BBVFRFUk4gPSBSZWdleHAubmV3KCdcXEEoKCcg
KyBJTlNUUlVDVElPTlMuam9pbignKXwoJykgKyAnKSlcXFonKQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHdvcmtpbmcgY29weSkKQEAgLTE1MCwx
NSArMTUwLDE1IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgd2hlbiAidDQiCiAgICAgICAg
ICAgICBjYXNlIGtpbmQKICAgICAgICAgICAgIHdoZW4gOmJ5dGUKLSAgICAgICAgICAgICAgICAi
JXNpbCIKKyAgICAgICAgICAgICAgICAiJWRpbCIKICAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAg
ICAgICAgICAgICAgICAiJXNpIgorICAgICAgICAgICAgICAgICIlZGkiCiAgICAgICAgICAgICB3
aGVuIDppbnQKLSAgICAgICAgICAgICAgICAiJWVzaSIKKyAgICAgICAgICAgICAgICAiJWVkaSIK
ICAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVyc2kiIDog
IiVlc2kiCisgICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJkaSIgOiAiJWVkaSIKICAgICAgICAg
ICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcnNpIiA6IHJhaXNlCisg
ICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJkaSIgOiByYWlzZQogICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICBlbmQKQEAgLTIwNiwxNSArMjA2LDE1
IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgd2hlbiAidDUiCiAgICAgICAgICAgICBjYXNl
IGtpbmQKICAgICAgICAgICAgIHdoZW4gOmJ5dGUKLSAgICAgICAgICAgICAgICAiJWRpbCIKKyAg
ICAgICAgICAgICAgICAiJXNpbCIKICAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAg
ICAgICAiJWRpIgorICAgICAgICAgICAgICAgICIlc2kiCiAgICAgICAgICAgICB3aGVuIDppbnQK
LSAgICAgICAgICAgICAgICAiJWVkaSIKKyAgICAgICAgICAgICAgICAiJWVzaSIKICAgICAgICAg
ICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVyZGkiIDogIiVlZGkiCisg
ICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJzaSIgOiAiJWVzaSIKICAgICAgICAgICAgIHdoZW4g
OnF1YWQKLSAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcmRpIiA6IHJhaXNlCisgICAgICAgICAg
ICAgICAgaXNYNjQgPyAiJXJzaSIgOiByYWlzZQogICAgICAgICAgICAgZW5kCiAgICAgICAgIHdo
ZW4gInQ2IgogICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQg
WDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAkocmV2aXNpb24gMTYyOTE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFBhcnNlckVycm9yX2gKIAogI2luY2x1ZGUgIkVy
cm9yLmgiCisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIlBhcnNlclRva2Vucy5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgpAQCAtOTQsOCArOTUsMTAgQEAgc3RydWN0IFBhcnNlckVycm9yIHsK
ICAgICAgICAgICAgIHJldHVybiBhZGRFcnJvckluZm8oZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVj
KCksIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgbV9tZXNzYWdlKSwgbV9saW5lLCBz
b3VyY2UpOwogICAgICAgICBjYXNlIEV2YWxFcnJvcjoKICAgICAgICAgICAgIHJldHVybiBjcmVh
dGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsIG1fbWVzc2FnZSk7Ci0gICAgICAgIGNhc2UgU3Rh
Y2tPdmVyZmxvdzoKKyAgICAgICAgY2FzZSBTdGFja092ZXJmbG93OiB7CisgICAgICAgICAgICBF
cnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZShnbG9iYWxPYmplY3QtPnZtKCkpOwogICAgICAg
ICAgICAgcmV0dXJuIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihnbG9iYWxPYmplY3QpOworICAg
ICAgICB9CiAgICAgICAgIGNhc2UgT3V0T2ZNZW1vcnk6CiAgICAgICAgICAgICByZXR1cm4gY3Jl
YXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpOwogICAgICAgICB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRp
b24uY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY3
LDYgKzY3LDExIEBAIHZvaWQgQ29tcGlsYXRpb246OmFkZERlc2NyaXB0aW9uKGNvbnN0IEMKICAg
ICBtX2Rlc2NyaXB0aW9ucy5hcHBlbmQoY29tcGlsZWRCeXRlY29kZSk7CiB9CiAKK3ZvaWQgQ29t
cGlsYXRpb246OmFkZERlc2NyaXB0aW9uKGNvbnN0IE9yaWdpblN0YWNrJiBzdGFjaywgY29uc3Qg
Q1N0cmluZyYgZGVzY3JpcHRpb24pCit7CisgICAgYWRkRGVzY3JpcHRpb24oQ29tcGlsZWRCeXRl
Y29kZShzdGFjaywgZGVzY3JpcHRpb24pKTsKK30KKwogRXhlY3V0aW9uQ291bnRlciogQ29tcGls
YXRpb246OmV4ZWN1dGlvbkNvdW50ZXJGb3IoY29uc3QgT3JpZ2luU3RhY2smIG9yaWdpbikKIHsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXhlY3V0aW9uQ291bnRlcj4mIGNvdW50ZXIgPSBtX2NvdW50
ZXJzLmFkZChvcmlnaW4sIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uaAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyQ29tcGlsYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjMsNiArNjMsNyBA
QCBwdWJsaWM6CiAgICAgQ29tcGlsYXRpb25LaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tp
bmQ7IH0KICAgICAKICAgICB2b2lkIGFkZERlc2NyaXB0aW9uKGNvbnN0IENvbXBpbGVkQnl0ZWNv
ZGUmKTsKKyAgICB2b2lkIGFkZERlc2NyaXB0aW9uKGNvbnN0IE9yaWdpblN0YWNrJiwgY29uc3Qg
Q1N0cmluZyYgZGVzY3JpcHRpb24pOwogICAgIEV4ZWN1dGlvbkNvdW50ZXIqIGV4ZWN1dGlvbkNv
dW50ZXJGb3IoY29uc3QgT3JpZ2luU3RhY2smKTsKICAgICB2b2lkIGFkZE9TUkV4aXRTaXRlKGNv
bnN0IFZlY3Rvcjxjb25zdCB2b2lkKj4mIGNvZGVBZGRyZXNzZXMpOwogICAgIE9TUkV4aXQqIGFk
ZE9TUkV4aXQodW5zaWduZWQgaWQsIGNvbnN0IE9yaWdpblN0YWNrJiwgRXhpdEtpbmQsIGJvb2wg
aXNXYXRjaHBvaW50KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckNvbXBpbGF0aW9uS2luZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25L
aW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDIsNiArNDIsMTIgQEAgdm9pZCBwcmludEludGVybmFs
KFByaW50U3RyZWFtJiBvdXQsIEpTQwogICAgIGNhc2UgSlNDOjpQcm9maWxlcjo6REZHOgogICAg
ICAgICBvdXQucHJpbnQoIkRGRyIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlBy
b2ZpbGVyOjpGVEw6CisgICAgICAgIG91dC5wcmludCgiRlRMIik7CisgICAgICAgIHJldHVybjsK
KyAgICBjYXNlIEpTQzo6UHJvZmlsZXI6OkZUTEZvck9TUkVudHJ5OgorICAgICAgICBvdXQucHJp
bnQoIkZUTEZvck9TUkVudHJ5Iik7CisgICAgICAgIHJldHVybjsKICAgICBkZWZhdWx0OgogICAg
ICAgICBDUkFTSCgpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
Q29tcGlsYXRpb25LaW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDkgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiBlbnVtIENvbXBpbGF0aW9uS2luZCB7CiAgICAg
TExJbnQsCiAgICAgQmFzZWxpbmUsCi0gICAgREZHCisgICAgREZHLAorICAgIEZUTCwKKyAgICBG
VExGb3JPU1JFbnRyeQogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcml0eUNoZWNrTW9kZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyaXR5Q2hlY2tNb2RlLmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcml0eUNoZWNrTW9k
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBBcml0eUNoZWNrTW9kZV9oCisjZGVm
aW5lIEFyaXR5Q2hlY2tNb2RlX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gQXJpdHlDaGVj
a01vZGUgeworICAgIEFyaXR5Q2hlY2tOb3RSZXF1aXJlZCwKKyAgICBNdXN0Q2hlY2tBcml0eQor
fTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBBcml0eUNoZWNrTW9kZV9oCisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjksMTAgKzI5LDEyIEBACiAjaWYgRU5BQkxFKEpJVCkgfHwgRU5BQkxFKExMSU5UKQog
CiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5U
aHVua3MuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiQ2FsbEZy
YW1lLmgiCiAjaW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQ
YXRoc0V4Y2VwdGlvbnMuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5nU2NvcGUuaCIKICNpbmNs
dWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAj
aW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKQEAgLTE2MSwyOCArMTYzLDQ3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBDQUxMX0VORF9JTVBMKGNyRXhlYywgY3JDYWxsVGFyZ2V0KTsgICAgICAg
ICAgICAgICAgXAogICAgIH0gd2hpbGUgKGZhbHNlKQogCitzdGF0aWMgQ29tbW9uU2xvd1BhdGhz
OjpBcml0eUNoZWNrRGF0YSogc2V0dXBBcml0eUNoZWNrRGF0YShWTSYgdm0sIGludCBzbG90c1Rv
QWRkKQoreworICAgIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGEqIHJlc3VsdCA9IHZt
LmFyaXR5Q2hlY2tEYXRhLmdldCgpOworICAgIHJlc3VsdC0+cGFkZGVkU3RhY2tTcGFjZSA9IHNs
b3RzVG9BZGQ7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAodm0uY2FuVXNlSklUKCkpIHsKKyAg
ICAgICAgcmVzdWx0LT50aHVua1RvQ2FsbCA9IHZtLmdldENUSVN0dWIoYXJpdHlGaXh1cCkuY29k
ZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CisgICAgICAgIHJlc3VsdC0+cmV0dXJuUEMgPSB2bS5h
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENGb3Iodm0sIHNsb3RzVG9BZGQgKiBz
dGFja0FsaWdubWVudFJlZ2lzdGVycygpKS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgIH0gZWxz
ZQorI2VuZGlmCisgICAgeworICAgICAgICByZXN1bHQtPnRodW5rVG9DYWxsID0gMDsKKyAgICAg
ICAgcmVzdWx0LT5yZXR1cm5QQyA9IDA7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisK
IFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2spCiB7CiAgICAgQkVHSU4o
KTsKLSAgICBpbnQgU2xvdHNUb0FkZCA9IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0Zvcihl
eGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksIENvZGVGb3JDYWxsKTsKLSAgICBpZiAoU2xv
dHNUb0FkZCA8IDApIHsKKyAgICBpbnQgc2xvdHNUb0FkZCA9IENvbW1vblNsb3dQYXRoczo6YXJp
dHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksIENvZGVGb3JDYWxsKTsK
KyAgICBpZiAoc2xvdHNUb0FkZCA8IDApIHsKICAgICAgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZy
YW1lKCk7CisgICAgICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKGV4ZWMtPnZtKCkp
OwogICAgICAgICBDb21tb25TbG93UGF0aHM6OmludGVycHJldGVyVGhyb3dJbkNhbGxlcihleGVj
LCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOwogICAgICAgICBSRVRVUk5fVFdPKGJp
dHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigxKSksIGV4ZWMpOwogICAg
IH0KLSAgICBSRVRVUk5fVFdPKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8RXhlY1N0YXRlKj4oU2xvdHNU
b0FkZCkpOworICAgIFJFVFVSTl9UV08oMCwgc2V0dXBBcml0eUNoZWNrRGF0YSh2bSwgc2xvdHNU
b0FkZCkpOwogfQogCiBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY29uc3RydWN0X2FyaXR5Q2hl
Y2spCiB7CiAgICAgQkVHSU4oKTsKLSAgICBpbnQgU2xvdHNUb0FkZCA9IENvbW1vblNsb3dQYXRo
czo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksIENvZGVGb3JD
b25zdHJ1Y3QpOwotICAgIGlmIChTbG90c1RvQWRkIDwgMCkgeworICAgIGludCBzbG90c1RvQWRk
ID0gQ29tbW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4ZWMsICZ2bS5pbnRlcnByZXRlci0+
c3RhY2soKSwgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgaWYgKHNsb3RzVG9BZGQgPCAwKSB7CiAg
ICAgICAgIGV4ZWMgPSBleGVjLT5jYWxsZXJGcmFtZSgpOworICAgICAgICBFcnJvckhhbmRsaW5n
U2NvcGUgZXJyb3JTY29wZShleGVjLT52bSgpKTsKICAgICAgICAgQ29tbW9uU2xvd1BhdGhzOjpp
bnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4
ZWMpKTsKICAgICAgICAgUkVUVVJOX1RXTyhiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0
PHVpbnRwdHJfdD4oMSkpLCBleGVjKTsKICAgICB9Ci0gICAgUkVUVVJOX1RXTygwLCByZWludGVy
cHJldF9jYXN0PEV4ZWNTdGF0ZSo+KFNsb3RzVG9BZGQpKTsKKyAgICBSRVRVUk5fVFdPKDAsIHNl
dHVwQXJpdHlDaGVja0RhdGEodm0sIHNsb3RzVG9BZGQpKTsKIH0KIAogU0xPV19QQVRIX0RFQ0wo
c2xvd19wYXRoX3RvdWNoX2VudHJ5KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCSh3b3JraW5nIGNvcHkpCkBA
IC00OSw2ICs0OSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogbmFtZXNwYWNlIENvbW1vblNsb3dQ
YXRocyB7CiAKK3N0cnVjdCBBcml0eUNoZWNrRGF0YSB7CisgICAgdW5zaWduZWQgcGFkZGVkU3Rh
Y2tTcGFjZTsKKyAgICB2b2lkKiB0aHVua1RvQ2FsbDsKKyAgICB2b2lkKiByZXR1cm5QQzsKK307
CisKIEFMV0FZU19JTkxJTkUgaW50IGFyaXR5Q2hlY2tGb3IoRXhlY1N0YXRlKiBleGVjLCBKU1N0
YWNrKiBzdGFjaywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQogewogICAgIEpTRnVuY3Rp
b24qIGNhbGxlZSA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oZXhlYy0+Y2FsbGVlKCkpOwpAQCAtNTgs
MTggKzY0LDEyIEBAIEFMV0FZU19JTkxJTkUgaW50IGFyaXR5Q2hlY2tGb3IoRXhlY1N0YXQKICAg
ICAKICAgICBBU1NFUlQoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPCBuZXdDb2RlQmxvY2st
Pm51bVBhcmFtZXRlcnMoKSk7CiAgICAgaW50IG1pc3NpbmdBcmd1bWVudENvdW50ID0gbmV3Q29k
ZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgLSBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsKLSAg
ICBpbnQgcGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291bnQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxl
T2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbWlzc2luZ0FyZ3VtZW50Q291bnQpOworICAg
IGludCBuZWVkZWRTdGFja1NwYWNlID0gbWlzc2luZ0FyZ3VtZW50Q291bnQgKyAxOyAvLyBBbGxv
dyBzcGFjZSB0byBzYXZlIHRoZSBvcmlnaW5hbCByZXR1cm4gUEMuCisgICAgaW50IHBhZGRlZFN0
YWNrU3BhY2UgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKSwgbmVlZGVkU3RhY2tTcGFjZSk7CiAKLSNpZiBVU0UoU0VQQVJBVEVfQ19BTkRfSlNfU1RB
Q0spCi0gICAgaWYgKCFzdGFjay0+Z3JvdyhleGVjLT5yZWdpc3RlcnMoKSAtIHBhZGRlZE1pc3Np
bmdBcmd1bWVudENvdW50KSkKKyAgICBpZiAoIXN0YWNrLT5lbnN1cmVDYXBhY2l0eUZvcihleGVj
LT5yZWdpc3RlcnMoKSAtIHBhZGRlZFN0YWNrU3BhY2UpKQogICAgICAgICByZXR1cm4gLTE7Ci0j
ZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdGFjayk7Ci0gICAgaWYgKCFleGVjLT52bSgpLmlzU2Fm
ZVRvUmVjdXJzZShwYWRkZWRNaXNzaW5nQXJndW1lbnRDb3VudCAqIHNpemVvZihSZWdpc3Rlcikp
KQotICAgICAgICByZXR1cm4gLTE7Ci0jZW5kaWYgLy8gVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NU
QUNLKQotCi0gICAgcmV0dXJuIHBhZGRlZE1pc3NpbmdBcmd1bWVudENvdW50OworICAgIHJldHVy
biBwYWRkZWRTdGFja1NwYWNlIC8gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKTsKIH0KIAogaW5s
aW5lIGJvb2wgb3BJbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgcHJvcE5hbWUsIEpTVmFsdWUg
YmFzZVZhbCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxp
bmdTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JIYW5kbGluZ1Njb3BlLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCisK
KyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9wdGlvbnMuaCIKKyNpbmNsdWRl
ICJWTS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworRXJyb3JIYW5kbGluZ1Njb3BlOjpFcnJvckhh
bmRsaW5nU2NvcGUoVk0mIHZtKQorICAgIDogbV92bSh2bSkKK3sKKyAgICBpZiAoIW1fdm0uc3Rh
Y2tQb2ludGVyQXRWTUVudHJ5KQorICAgICAgICBtX3ZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9
IHRoaXM7CisgICAgc2l6ZV90IG5ld1Jlc2VydmVkWm9uZVNpemUgPSBPcHRpb25zOjplcnJvck1v
ZGVSZXNlcnZlZFpvbmVTaXplKCk7CisgICAgbV9zYXZlZFJlc2VydmVkWm9uZVNpemUgPSBtX3Zt
LnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShuZXdSZXNlcnZlZFpvbmVTaXpl
KTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIG1fdm0uaW50ZXJwcmV0ZXItPnN0YWNr
KCkuc2V0UmVzZXJ2ZWRab25lU2l6ZShuZXdSZXNlcnZlZFpvbmVTaXplKTsKKyNlbmRpZgorfQor
CitFcnJvckhhbmRsaW5nU2NvcGU6On5FcnJvckhhbmRsaW5nU2NvcGUoKQoreworICAgIGlmICht
X3ZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9PSB0aGlzKQorICAgICAgICBtX3ZtLnN0YWNrUG9p
bnRlckF0Vk1FbnRyeSA9IG51bGxwdHI7CisgICAgbV92bS51cGRhdGVTdGFja0xpbWl0V2l0aFJl
c2VydmVkWm9uZVNpemUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOworI2lmIEVOQUJMRShMTElO
VF9DX0xPT1ApCisgICAgbV92bS5pbnRlcnByZXRlci0+c3RhY2soKS5zZXRSZXNlcnZlZFpvbmVT
aXplKG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFj
ZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdT
Y29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
SGFuZGxpbmdTY29wZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IEVycm9ySGFuZGxpbmdTY29wZV9oCisjZGVmaW5lIEVycm9ySGFuZGxpbmdTY29wZV9oCisKK25h
bWVzcGFjZSBKU0MgeworCitjbGFzcyBWTTsKKworY2xhc3MgRXJyb3JIYW5kbGluZ1Njb3BlIHsK
K3B1YmxpYzoKKyAgICBKU19FWFBPUlRfUFJJVkFURSBFcnJvckhhbmRsaW5nU2NvcGUoVk0mKTsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSB+RXJyb3JIYW5kbGluZ1Njb3BlKCk7Citwcml2YXRlOgor
ICAgIFZNJiBtX3ZtOworICAgIHNpemVfdCBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRXJyb3JIYW5kbGluZ1Njb3BlX2gKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVs
cGVycy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKKyNpbmNs
dWRlICJFcnJvckhhbmRsaW5nU2NvcGUuaCIKICNpbmNsdWRlICJFcnJvckluc3RhbmNlLmgiCiAj
aW5jbHVkZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJKU09iamVjdC5o
IgpAQCAtMTYwLDE0ICsxNjEsMTYgQEAgSlNPYmplY3QqIHRocm93T3V0T2ZNZW1vcnlFcnJvcihF
eGVjU3RhdAogCiBKU09iamVjdCogdGhyb3dTdGFja092ZXJmbG93RXJyb3IoRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIEludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZSBtb2RlKGV4ZWMpOwot
ICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVN0YWNrT3Zl
cmZsb3dFcnJvcihleGVjKSk7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBFcnJvckhh
bmRsaW5nU2NvcGUgZXJyb3JTY29wZSh2bSk7CisgICAgcmV0dXJuIHZtLnRocm93RXhjZXB0aW9u
KGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CiB9CiAKIEpTT2JqZWN0KiB0
aHJvd1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjKQogewotICAg
IEludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZSBtb2RlKGV4ZWMpOwotICAgIHJldHVybiBl
eGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVRlcm1pbmF0ZWRFeGVjdXRpb25F
eGNlcHRpb24oJmV4ZWMtPnZtKCkpKTsKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIEVy
cm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKHZtKTsKKyAgICByZXR1cm4gdm0udGhyb3dFeGNl
cHRpb24oZXhlYywgY3JlYXRlVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbigmdm0pKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FeGVjdXRhYmxlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlICJMTEludEVudHJ5cG9pbnQuaCIKICNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCisjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAKQEAgLTExOCwxMiArMTE5LDE0IEBAIHZvaWQgU2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFs
bENvZGUoQ29kZUIKICAgICBzd2l0Y2ggKGtpbmQpIHsKICAgICBjYXNlIENvZGVGb3JDYWxsOgog
ICAgICAgICBtX2ppdENvZGVGb3JDYWxsID0gZ2VuZXJpY0NvZGVCbG9jay0+aml0Q29kZSgpOwot
ICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSBnZW5lcmljQ29kZUJsb2Nr
LT5qaXRDb2RlV2l0aEFyaXR5Q2hlY2soKTsKKyAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhB
cml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CisgICAgICAgIG1faml0Q29kZUZv
ckNhbGxXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncyA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0
cigpOwogICAgICAgICBtX251bVBhcmFtZXRlcnNGb3JDYWxsID0gZ2VuZXJpY0NvZGVCbG9jay0+
bnVtUGFyYW1ldGVycygpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvZGVGb3JDb25zdHJ1
Y3Q6CiAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IGdlbmVyaWNDb2RlQmxvY2stPmpp
dENvZGUoKTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBn
ZW5lcmljQ29kZUJsb2NrLT5qaXRDb2RlV2l0aEFyaXR5Q2hlY2soKTsKKyAgICAgICAgbV9qaXRD
b2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsK
KyAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJl
Z3MgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAgICAgICAgbV9udW1QYXJhbWV0ZXJzRm9y
Q29uc3RydWN0ID0gZ2VuZXJpY0NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpOwogICAgICAgICBi
cmVhazsKICAgICB9CkBAIC0xMzMsNyArMTM2LDYgQEAgdm9pZCBTY3JpcHRFeGVjdXRhYmxlOjpp
bnN0YWxsQ29kZShDb2RlQgogICAgICAgICBQcm9ncmFtRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9
IGpzQ2FzdDxQcm9ncmFtRXhlY3V0YWJsZSo+KHRoaXMpOwogICAgICAgICBQcm9ncmFtQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSBzdGF0aWNfY2FzdDxQcm9ncmFtQ29kZUJsb2NrKj4oZ2VuZXJpY0Nv
ZGVCbG9jayk7CiAgICAgICAgIAotICAgICAgICBBU1NFUlQoIWNvZGVCbG9jay0+aml0Q29kZVdp
dGhBcml0eUNoZWNrKCkpOwogICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ2FsbCk7CiAg
ICAgICAgIAogICAgICAgICBvbGRDb2RlQmxvY2sgPSBleGVjdXRhYmxlLT5tX3Byb2dyYW1Db2Rl
QmxvY2s7CkBAIC0xNDUsNyArMTQ3LDYgQEAgdm9pZCBTY3JpcHRFeGVjdXRhYmxlOjppbnN0YWxs
Q29kZShDb2RlQgogICAgICAgICBFdmFsRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGpzQ2FzdDxF
dmFsRXhlY3V0YWJsZSo+KHRoaXMpOwogICAgICAgICBFdmFsQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBzdGF0aWNfY2FzdDxFdmFsQ29kZUJsb2NrKj4oZ2VuZXJpY0NvZGVCbG9jayk7CiAgICAgICAg
IAotICAgICAgICBBU1NFUlQoIWNvZGVCbG9jay0+aml0Q29kZVdpdGhBcml0eUNoZWNrKCkpOwog
ICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ2FsbCk7CiAgICAgICAgIAogICAgICAgICBv
bGRDb2RlQmxvY2sgPSBleGVjdXRhYmxlLT5tX2V2YWxDb2RlQmxvY2s7CkBAIC02MTAsNiArNjEx
LDQ2IEBAIFN0cmluZyBGdW5jdGlvbkV4ZWN1dGFibGU6OnBhcmFtU3RyaW5nKCkKICAgICByZXR1
cm4gbV91bmxpbmtlZEV4ZWN1dGFibGUtPnBhcmFtU3RyaW5nKCk7CiB9CiAKK3ZvaWQgRXhlY3V0
YWJsZUJhc2U6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBFeGVjdXRhYmxl
QmFzZSogcmVhbFRoaXMgPSBjb25zdF9jYXN0PEV4ZWN1dGFibGVCYXNlKj4odGhpcyk7CisgICAg
CisgICAgaWYgKGNsYXNzSW5mbygpID09IE5hdGl2ZUV4ZWN1dGFibGU6OmluZm8oKSkgeworICAg
ICAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmUgPSBqc0Nhc3Q8TmF0aXZlRXhlY3V0YWJsZSo+
KHJlYWxUaGlzKTsKKyAgICAgICAgb3V0LnByaW50KCJOYXRpdmVFeGVjdXRhYmxlOiIsIFJhd1Bv
aW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihuYXRpdmUtPmZ1bmN0aW9uKCkpKSwgIi8iLCBSYXdQ
b2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4obmF0aXZlLT5jb25zdHJ1Y3RvcigpKSkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmIChjbGFzc0luZm8oKSA9PSBFdmFsRXhl
Y3V0YWJsZTo6aW5mbygpKSB7CisgICAgICAgIEV2YWxFeGVjdXRhYmxlKiBldmFsID0ganNDYXN0
PEV2YWxFeGVjdXRhYmxlKj4ocmVhbFRoaXMpOworICAgICAgICBpZiAoQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSBldmFsLT5jb2RlQmxvY2soKSkKKyAgICAgICAgICAgIG91dC5wcmludCgqY29kZUJs
b2NrKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0LnByaW50KCJFdmFsRXhlY3V0YWJs
ZSB3L28gQ29kZUJsb2NrIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYg
KGNsYXNzSW5mbygpID09IFByb2dyYW1FeGVjdXRhYmxlOjppbmZvKCkpIHsKKyAgICAgICAgUHJv
Z3JhbUV4ZWN1dGFibGUqIGV2YWwgPSBqc0Nhc3Q8UHJvZ3JhbUV4ZWN1dGFibGUqPihyZWFsVGhp
cyk7CisgICAgICAgIGlmIChDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV2YWwtPmNvZGVCbG9jaygp
KQorICAgICAgICAgICAgb3V0LnByaW50KCpjb2RlQmxvY2spOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBvdXQucHJpbnQoIlByb2dyYW1FeGVjdXRhYmxlIHcvbyBDb2RlQmxvY2siKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0
aW9uID0ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KHJlYWxUaGlzKTsKKyAgICBpZiAoIWZ1
bmN0aW9uLT5laXRoZXJDb2RlQmxvY2soKSkKKyAgICAgICAgb3V0LnByaW50KCJGdW5jdGlvbkV4
ZWN1dGFibGUgdy9vIENvZGVCbG9jayIpOworICAgIGVsc2UgeworICAgICAgICBDb21tYVByaW50
ZXIgY29tbWEoIi8iKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uLT5jb2RlQmxvY2tGb3JDYWxsKCkp
CisgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICpmdW5jdGlvbi0+Y29kZUJsb2NrRm9yQ2Fs
bCgpKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uLT5jb2RlQmxvY2tGb3JDb25zdHJ1Y3QoKSkKKyAg
ICAgICAgICAgIG91dC5wcmludChjb21tYSwgKmZ1bmN0aW9uLT5jb2RlQmxvY2tGb3JDb25zdHJ1
Y3QoKSk7CisgICAgfQorfQorCiBDb2RlQmxvY2tIYXNoIEV4ZWN1dGFibGVCYXNlOjpoYXNoRm9y
KENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkgY29uc3QKIHsKICAgICBpZiAodGhpcy0+Y2xh
c3NJbmZvKCkgPT0gTmF0aXZlRXhlY3V0YWJsZTo6aW5mbygpKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEV4ZWN1dGFibGVfaAogI2RlZmluZSBFeGVjdXRhYmxl
X2gKIAorI2luY2x1ZGUgIkFyaXR5Q2hlY2tNb2RlLmgiCiAjaW5jbHVkZSAiQ2FsbERhdGEuaCIK
ICNpbmNsdWRlICJDb2RlQmxvY2tIYXNoLmgiCiAjaW5jbHVkZSAiQ29kZVNwZWNpYWxpemF0aW9u
S2luZC5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5j
bHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAi
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCiAj
aW5jbHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlVubGlua2VkQ29kZUJsb2NrLmgiCkBA
IC0xNDQsMzcgKzE0Niw5NCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChraW5kID09IENvZGVG
b3JDb25zdHJ1Y3QpOwogICAgICAgICByZXR1cm4gZ2VuZXJhdGVkSklUQ29kZUZvckNvbnN0cnVj
dCgpOwogICAgIH0KLQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBnZW5lcmF0ZWRKSVRDb2Rl
Rm9yQ2FsbFdpdGhBcml0eUNoZWNrKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2ppdENvZGVG
b3JDYWxsKTsKLSAgICAgICAgQVNTRVJUKG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayk7
Ci0gICAgICAgIHJldHVybiBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2s7Ci0gICAgfQot
Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3RX
aXRoQXJpdHlDaGVjaygpCi0gICAgewotICAgICAgICBBU1NFUlQobV9qaXRDb2RlRm9yQ29uc3Ry
dWN0KTsKLSAgICAgICAgQVNTRVJUKG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNr
KTsKLSAgICAgICAgcmV0dXJuIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrOwot
ICAgIH0KLSAgICAgICAgCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGdlbmVyYXRlZEpJVENv
ZGVXaXRoQXJpdHlDaGVja0ZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAgewot
ICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKLSAgICAgICAgICAgIHJldHVybiBnZW5l
cmF0ZWRKSVRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrKCk7Ci0gICAgICAgIEFTU0VSVChraW5k
ID09IENvZGVGb3JDb25zdHJ1Y3QpOwotICAgICAgICByZXR1cm4gZ2VuZXJhdGVkSklUQ29kZUZv
ckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKCk7Ci0gICAgfQotICAgICAgICAKLSAgICBzdGF0aWMg
cHRyZGlmZl90IG9mZnNldE9mSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKENvZGVTcGVjaWFsaXph
dGlvbktpbmQga2luZCkKKyAgICAKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZW50cnlwb2lu
dEZvcigKKyAgICAgICAgVk0mIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIEFyaXR5
Q2hlY2tNb2RlIGFyaXR5LCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogICAg
IHsKLSAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCi0gICAgICAgICAgICByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5
Q2hlY2spOwotICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICAg
ICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwgbV9qaXRDb2RlRm9yQ29u
c3RydWN0V2l0aEFyaXR5Q2hlY2spOworICAgICAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGEgY2Fj
aGVkIHJlc3VsdC4gV2Ugb25seSBoYXZlIGl0IGZvciBhcml0eSBjaGVjayBiZWNhdXNlIHdlIHVz
ZSB0aGUKKyAgICAgICAgLy8gbm8tYXJpdHkgZW50cnlwb2ludCBpbiBub24tdmlydHVhbCBjYWxs
cywgd2hpY2ggd2lsbCAiY2FjaGUiIHRoaXMgdmFsdWUgZGlyZWN0bHkgaW4KKyAgICAgICAgLy8g
bWFjaGluZSBjb2RlLgorICAgICAgICBpZiAoYXJpdHkgPT0gTXVzdENoZWNrQXJpdHkpIHsKKyAg
ICAgICAgICAgIHN3aXRjaCAoa2luZCkgeworICAgICAgICAgICAgY2FzZSBDb2RlRm9yQ2FsbDoK
KyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgICAgIGNh
c2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgICAgICAgICAg
aWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2ppdENvZGVGb3JDYWxsV2l0aEFy
aXR5Q2hlY2spCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJl
Z2lzdGVyczoKKyAgICAgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBy
ZXN1bHQgPSBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MpCisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgICAgICAgICAgc3dpdGNoIChy
ZWdpc3RlcnMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90
UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgICAgIGlmIChNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
cmVzdWx0ID0gbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spCisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2ppdENvZGVGb3JD
b25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcmVzdWx0ID0KKyAgICAgICAgICAg
IGdlbmVyYXRlZEpJVENvZGVGb3Ioa2luZCktPmFkZHJlc3NGb3JDYWxsKHZtLCB0aGlzLCBhcml0
eSwgcmVnaXN0ZXJzKTsKKyAgICAgICAgaWYgKGFyaXR5ID09IE11c3RDaGVja0FyaXR5KSB7Cisg
ICAgICAgICAgICAvLyBDYWNoZSB0aGUgcmVzdWx0OyB0aGlzIGlzIG5lY2Vzc2FyeSBmb3IgdGhl
IEpJVCdzIHZpcnR1YWwgY2FsbCBvcHRpbWl6YXRpb25zLgorICAgICAgICAgICAgc3dpdGNoIChr
aW5kKSB7CisgICAgICAgICAgICBjYXNlIENvZGVGb3JDYWxsOgorICAgICAgICAgICAgICAgIHN3
aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZh
dGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0
aEFyaXR5Q2hlY2sgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgICAg
ICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSByZXN1bHQ7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAg
ICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgICAgIGNhc2UgUmVn
aXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgICAgICAgICAgbV9qaXRD
b2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgor
ICAgICAgICAgICAgICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0Fu
ZFByZXNlcnZlUmVncyA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgc3RhdGljIHB0cmRp
ZmZfdCBvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcigKKyAgICAgICAgQ29kZVNwZWNp
YWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQor
ICAgIHsKKyAgICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAgIGNhc2UgQ29kZUZvckNhbGw6
CisgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgY2FzZSBSZWdp
c3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAgIHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVj
ayk7CisgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAg
ICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENvZGVGb3JD
YWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MpOworICAgICAgICAgICAgfQorICAgICAg
ICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykg
eworICAgICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAg
ICAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0
Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKTsKKyAgICAgICAgICAgIGNhc2UgTXVzdFBy
ZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
RXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrQW5kUHJl
c2VydmVSZWdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgICAgIAor
ICAgIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOdW1QYXJhbWV0ZXJzRm9yKENvZGVT
cGVjaWFsaXphdGlvbktpbmQga2luZCkKICAgICB7CiAgICAgICAgIGlmIChraW5kID09IENvZGVG
b3JDYWxsKQpAQCAtMjEwLDIyICsyNjksOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4g
aW50cmluc2ljKCk7CiAgICAgICAgIHJldHVybiBOb0ludHJpbnNpYzsKICAgICB9CisgICAgCisg
ICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgICAgIAotICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBob3N0Q29kZUVudHJ5Rm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2lu
ZCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRy
ZXNzRm9yQ2FsbCgpOwotICAgIH0KLQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBqc0NvZGVF
bnRyeUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAgewotICAgICAgICByZXR1
cm4gZ2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS0+YWRkcmVzc0ZvckNhbGwoKTsKLSAgICB9Ci0K
LSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIganNDb2RlV2l0aEFyaXR5Q2hlY2tFbnRyeUZvcihD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAgewotICAgICAgICByZXR1cm4gZ2VuZXJh
dGVkSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQpOwotICAgIH0KLQogcHJvdGVjdGVkOgog
ICAgIEV4ZWN1dGFibGVCYXNlKiBtX3ByZXY7CiAgICAgRXhlY3V0YWJsZUJhc2UqIG1fbmV4dDsK
QEAgLTIzNCw2ICsyODAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0
Q29kZUZvckNvbnN0cnVjdDsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlRm9y
Q2FsbFdpdGhBcml0eUNoZWNrOwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVG
b3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjazsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9q
aXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzOworICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNl
cnZlUmVnczsKIH07CiAKIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGUgOiBwdWJsaWMgRXhlY3V0YWJs
ZUJhc2UgewpAQCAtMjQyLDE0ICsyOTAsMTEgQEAgY2xhc3MgTmF0aXZlRXhlY3V0YWJsZSA6IHB1
YmxpYyBFeGVjdXRhYgogcHVibGljOgogICAgIHR5cGVkZWYgRXhlY3V0YWJsZUJhc2UgQmFzZTsK
IAotICAgIHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUoVk0mIHZtLCBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGNvbnN0cnVjdFRodW5rLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3Rvciwg
SW50cmluc2ljIGludHJpbnNpYykKKyAgICBzdGF0aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRl
KFZNJiB2bSwgUGFzc1JlZlB0cjxKSVRDb2RlPiBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNvbnN0cnVjdFRodW5rLCBOYXRpdmVGdW5jdGlv
biBjb25zdHJ1Y3RvciwgSW50cmluc2ljIGludHJpbnNpYykKICAgICB7CiAgICAgICAgIE5hdGl2
ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGU7CiAgICAgICAgIGV4ZWN1dGFibGUgPSBuZXcgKE5vdE51
bGwsIGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPih2bS5oZWFwKSkgTmF0aXZlRXhlY3V0
YWJsZSh2bSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKLSAgICAgICAgaWYgKCFjYWxsVGh1bmsp
Ci0gICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbih2bSwgMCwgMCwgaW50cmlu
c2ljKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRp
b24odm0sIEpJVENvZGU6Omhvc3RGdW5jdGlvbihjYWxsVGh1bmspLCBKSVRDb2RlOjpob3N0RnVu
Y3Rpb24oY29uc3RydWN0VGh1bmspLCBpbnRyaW5zaWMpOworICAgICAgICBleGVjdXRhYmxlLT5m
aW5pc2hDcmVhdGlvbih2bSwgY2FsbFRodW5rLCBjb25zdHJ1Y3RUaHVuaywgaW50cmluc2ljKTsK
ICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgfQogCkBAIC0yODgsOCArMzMzLDYgQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBQYXNzUmVmUHRyPEpJ
VENvZGU+IGNhbGxUaHVuaywgUGFzc1JlZlB0cjxKSVRDb2RlPiBjb25zdHJ1Y3RUaHVuaywgSW50
cmluc2ljIGludHJpbnNpYykKICAgICB7CiAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0gY2FsbFRodW5rID8g
Y2FsbFRodW5rLT5hZGRyZXNzRm9yQ2FsbCgpIDogTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7Ci0g
ICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrID0gY29uc3RydWN0VGh1
bmsgPyBjb25zdHJ1Y3RUaHVuay0+YWRkcmVzc0ZvckNhbGwoKSA6IE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cigpOwogICAgICAgICBtX2ppdENvZGVGb3JDYWxsID0gY2FsbFRodW5rOwogICAgICAgICBt
X2ppdENvZGVGb3JDb25zdHJ1Y3QgPSBjb25zdHJ1Y3RUaHVuazsKICAgICAgICAgbV9pbnRyaW5z
aWMgPSBpbnRyaW5zaWM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NK
U1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NKU1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3LDYgKzk3LDkgQEAgdW5pb24g
RW5jb2RlZFZhbHVlRGVzY3JpcHRvciB7CiAjZW5kaWYKIH07CiAKKyNkZWZpbmUgVGFnT2Zmc2V0
IChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpCisj
ZGVmaW5lIFBheWxvYWRPZmZzZXQgKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlw
dG9yLCBhc0JpdHMucGF5bG9hZCkpCisKIGVudW0gV2hpY2hWYWx1ZVdvcmQgewogICAgIFRhZ1dv
cmQsCiAgICAgUGF5bG9hZFdvcmQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNMb2NrLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNMb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDYgKzI5MCwxMCBAQCBKU0xv
Y2s6OkRyb3BBbGxMb2Nrczo6RHJvcEFsbExvY2tzKEV4ZWNTCiAjaWYgUExBVEZPUk0oSU9TKQog
ICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2spOwogI2VuZGlmCisgICAgbV9zYXZl
ZFJlc2VydmVkWm9uZVNpemUgPSBtX3ZtLT5yZXNlcnZlZFpvbmVTaXplKCk7CisgICAgbV9zYXZl
ZFN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeTsKKyAg
ICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBudWxscHRyOworCiAgICAgaWYgKGFsd2F5
c0Ryb3BMb2NrcykKICAgICAgICAgbV9sb2NrQ291bnQgPSBtX3ZtLT5hcGlMb2NrKCkuZHJvcEFs
bExvY2tzVW5jb25kaXRpb25hbGx5KHNwaW5Mb2NrKTsKICAgICBlbHNlCkBAIC0zMDYsNiArMzEw
LDEwIEBAIEpTTG9jazo6RHJvcEFsbExvY2tzOjpEcm9wQWxsTG9ja3MoVk0qIHYKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZzcGluTG9jayk7CiAjZW5kaWYK
KyAgICBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fdm0tPnJlc2VydmVkWm9uZVNpemUoKTsK
KyAgICBtX3NhdmVkU3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbV92bS0+c3RhY2tQb2ludGVyQXRW
TUVudHJ5OworICAgIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG51bGxwdHI7CisKICAg
ICBpZiAoYWx3YXlzRHJvcExvY2tzKQogICAgICAgICBtX2xvY2tDb3VudCA9IG1fdm0tPmFwaUxv
Y2soKS5kcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoc3BpbkxvY2spOwogICAgIGVsc2UKQEAg
LTMyMSw2ICszMjksOSBAQCBKU0xvY2s6OkRyb3BBbGxMb2Nrczo6fkRyb3BBbGxMb2NrcygpCiAg
ICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZzcGluTG9jayk7CiAjZW5kaWYKICAgICBtX3ZtLT5h
cGlMb2NrKCkuZ3JhYkFsbExvY2tzKG1fbG9ja0NvdW50LCBzcGluTG9jayk7CisKKyAgICBtX3Zt
LT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBtX3NhdmVkU3RhY2tQb2ludGVyQXRWTUVudHJ5Owor
ICAgIG1fdm0tPnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShtX3NhdmVkUmVz
ZXJ2ZWRab25lU2l6ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSwxMCAr
OTUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBib29s
IGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCk7CiAKLSAgICAgICAgdW5zaWduZWQgZHJvcEFs
bExvY2tzKFNwaW5Mb2NrJik7Ci0gICAgICAgIHVuc2lnbmVkIGRyb3BBbGxMb2Nrc1VuY29uZGl0
aW9uYWxseShTcGluTG9jayYpOwotICAgICAgICB2b2lkIGdyYWJBbGxMb2Nrcyh1bnNpZ25lZCBs
b2NrQ291bnQsIFNwaW5Mb2NrJik7Ci0KICAgICAgICAgdm9pZCB3aWxsRGVzdHJveVZNKFZNKik7
CiAKICAgICAgICAgY2xhc3MgRHJvcEFsbExvY2tzIHsKQEAgLTExNCw5ICsxMTAsMTUgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHByaXZhdGU6CiAgICAgICAgICAgICBpbnRwdHJfdCBtX2xv
Y2tDb3VudDsKICAgICAgICAgICAgIFJlZlB0cjxWTT4gbV92bTsKKyAgICAgICAgICAgIHNpemVf
dCBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZTsKKyAgICAgICAgICAgIHZvaWQqIG1fc2F2ZWRTdGFj
a1BvaW50ZXJBdFZNRW50cnk7CiAgICAgICAgIH07CiAKICAgICBwcml2YXRlOgorICAgICAgICB1
bnNpZ25lZCBkcm9wQWxsTG9ja3MoU3BpbkxvY2smKTsKKyAgICAgICAgdW5zaWduZWQgZHJvcEFs
bExvY2tzVW5jb25kaXRpb25hbGx5KFNwaW5Mb2NrJik7CisgICAgICAgIHZvaWQgZ3JhYkFsbExv
Y2tzKHVuc2lnbmVkIGxvY2tDb3VudCwgU3BpbkxvY2smKTsKKwogICAgICAgICBTcGluTG9jayBt
X3NwaW5Mb2NrOwogICAgICAgICBNdXRleCBtX2xvY2s7CiAgICAgICAgIFRocmVhZElkZW50aWZp
ZXIgbV9vd25lclRocmVhZDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjU0LDcgKzY1NCw3
IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHUKICAgICAgICAgICAg
ICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKICAgICAgICAgICAgICAgICBBU1NFUlQo
aXNKU0FycmF5KGFzT2JqZWN0KGluVmFsdWUpKSB8fCBhc09iamVjdChpblZhbHVlKS0+aW5oZXJp
dHMoSlNBcnJheTo6aW5mbygpKSk7CiAgICAgICAgICAgICAgICAgaWYgKG9iamVjdFN0YWNrLnNp
emUoKSArIGFycmF5U3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihtX2V4ZWMs
IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpKTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYyk7CiAKICAgICAgICAgICAgICAg
ICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkoaW5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgYXJy
YXlTdGFjay5wdXNoKGFycmF5KTsKQEAgLTcwNSw3ICs3MDUsNyBAQCBORVZFUl9JTkxJTkUgSlNW
YWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgICAgICAgICAgQVNTRVJUKGluVmFsdWUu
aXNPYmplY3QoKSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFpc0pTQXJyYXkoYXNPYmplY3Qo
aW5WYWx1ZSkpICYmICFhc09iamVjdChpblZhbHVlKS0+aW5oZXJpdHMoSlNBcnJheTo6aW5mbygp
KSk7CiAgICAgICAgICAgICAgICAgaWYgKG9iamVjdFN0YWNrLnNpemUoKSArIGFycmF5U3RhY2su
c2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG1fZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihtX2V4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZs
b3dFcnJvcihtX2V4ZWMpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93U3RhY2tP
dmVyZmxvd0Vycm9yKG1fZXhlYyk7CiAKICAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0
ID0gYXNPYmplY3QoaW5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgb2JqZWN0U3RhY2sucHVzaChv
YmplY3QpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8bGltaXRz
PgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHd0
Zi9EYXRhTG9nLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3
dGYvUGFnZUJsb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtMTc1LDYg
KzE3Niw0NSBAQCBjb25zdCBPcHRpb25zOjpFbnRyeUluZm8gT3B0aW9uczo6c19vcHRpCiAjdW5k
ZWYgRk9SX0VBQ0hfT1BUSU9OCiB9OwogCitzdGF0aWMgdm9pZCByZWNvbXB1dGVEZXBlbmRlbnRP
cHRpb25zKCkKK3sKKyNpZiAhRU5BQkxFKEpJVCkKKyAgICBPcHRpb25zOjp1c2VKSVQoKSA9IGZh
bHNlOworICAgIE9wdGlvbnM6OnVzZURGR0pJVCgpID0gZmFsc2U7CisjZW5kaWYKKyNpZiAhRU5B
QkxFKFlBUlJfSklUKQorICAgIE9wdGlvbnM6OnVzZVJlZ0V4cEpJVCgpID0gZmFsc2U7CisjZW5k
aWYKKyAgICAKKyAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5KCkKKyAgICAgICAgfHwg
T3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkKKyAgICAgICAgfHwgT3B0aW9uczo6ZHVtcEJ5
dGVjb2RlQXRERkdUaW1lKCkKKyAgICAgICAgfHwgT3B0aW9uczo6ZHVtcEdyYXBoQXRFYWNoUGhh
c2UoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKQorICAgICAgICB8
fCBPcHRpb25zOjpsb2dDb21waWxhdGlvbkNoYW5nZXMoKQorICAgICAgICB8fCBPcHRpb25zOjp2
YWxpZGF0ZUdyYXBoKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRhdGVHcmFwaEF0RWFjaFBo
YXNlKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpCisgICAgICAgIHx8IE9wdGlv
bnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkKKyAgICAgICAgfHwgT3B0aW9uczo6cmVwb3J0
Q29tcGlsZVRpbWVzKCkKKyAgICAgICAgfHwgT3B0aW9uczo6cmVwb3J0RlRMQ29tcGlsZVRpbWVz
KCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNGQSgpCisgICAgICAgIHx8IE9wdGlvbnM6
OnZlcmJvc2VGVExGYWlsdXJlKCkpCisgICAgICAgIE9wdGlvbnM6OmFsd2F5c0NvbXB1dGVIYXNo
KCkgPSB0cnVlOworICAgIAorICAgIC8vIENvbXB1dGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdGhl
IHJlb3B0aW1pemF0aW9uIHJldHJ5IGNvdW50ZXIuIFRoaXMgaXMgc2ltcGx5CisgICAgLy8gdGhl
IGxhcmdlc3QgdmFsdWUgYXQgd2hpY2ggd2UgZG9uJ3Qgb3ZlcmZsb3cgdGhlIGV4ZWN1dGUgY291
bnRlciwgd2hlbiB1c2luZyBpdAorICAgIC8vIHRvIGxlZnQtc2hpZnQgdGhlIGV4ZWN1dGlvbiBj
b3VudGVyIGJ5IHRoaXMgYW1vdW50LiBDdXJyZW50bHkgdGhlIHZhbHVlIGVuZHMKKyAgICAvLyB1
cCBiZWluZyAxOCwgc28gdGhpcyBsb29wIGlzIG5vdCBzbyB0ZXJyaWJsZTsgaXQgcHJvYmFibHkg
dGFrZXMgdXAgfjEwMCBjeWNsZXMKKyAgICAvLyB0b3RhbCBvbiBhIDMyLWJpdCBwcm9jZXNzb3Iu
CisgICAgT3B0aW9uczo6cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSA9IDA7CisgICAg
d2hpbGUgKChzdGF0aWNfY2FzdDxpbnQ2NF90PihPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6
ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCAoT3B0aW9uczo6cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50
ZXJNYXgoKSArIDEpKSA8PSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRz
PGludDMyX3Q+OjptYXgoKSkpCisgICAgICAgIE9wdGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlD
b3VudGVyTWF4KCkrKzsKKworICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8aW50NjRfdD4oT3B0aW9u
czo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgT3B0aW9uczo6cmVv
cHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSkgPiAwKTsKKyAgICBBU1NFUlQoKHN0YXRpY19j
YXN0PGludDY0X3Q+KE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVw
KCkpIDw8IE9wdGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkpIDw9IHN0YXRp
Y19jYXN0PGludDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSk7Cit9
CisKIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgLy8gSW5pdGlhbGl6ZSBlYWNo
IG9mIHRoZSBvcHRpb25zIHdpdGggdGhlaXIgZGVmYXVsdCB2YWx1ZXM6CkBAIC0yMDQsMzAgKzI0
NCwxMiBAQCB2b2lkIE9wdGlvbnM6OmluaXRpYWxpemUoKQogICAgIDsgLy8gRGVjb25mdXNlIGVk
aXRvcnMgdGhhdCBkbyBhdXRvIGluZGVudGF0aW9uCiAjZW5kaWYKICAgICAKLSNpZiAhRU5BQkxF
KEpJVCkKLSAgICB1c2VKSVQoKSA9IGZhbHNlOwotICAgIHVzZURGR0pJVCgpID0gZmFsc2U7Ci0j
ZW5kaWYKLSNpZiAhRU5BQkxFKFlBUlJfSklUKQotICAgIHVzZVJlZ0V4cEpJVCgpID0gZmFsc2U7
Ci0jZW5kaWYKKyAgICByZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKCk7CiAKICAgICAvLyBEbyBy
YW5nZSBjaGVja3Mgd2hlcmUgbmVlZGVkIGFuZCBtYWtlIGNvcnJlY3Rpb25zIHRvIHRoZSBvcHRp
b25zOgotICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpID49
IHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSk7Ci0gICAgQVNTRVJUKHRocmVzaG9s
ZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSA+PSB0aHJlc2hvbGRGb3JPcHRpbWl6ZVNvb24oKSk7
Ci0gICAgQVNTRVJUKHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSA+PSAwKTsKLQot
ICAgIC8vIENvbXB1dGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdGhlIHJlb3B0aW1pemF0aW9uIHJl
dHJ5IGNvdW50ZXIuIFRoaXMgaXMgc2ltcGx5Ci0gICAgLy8gdGhlIGxhcmdlc3QgdmFsdWUgYXQg
d2hpY2ggd2UgZG9uJ3Qgb3ZlcmZsb3cgdGhlIGV4ZWN1dGUgY291bnRlciwgd2hlbiB1c2luZyBp
dAotICAgIC8vIHRvIGxlZnQtc2hpZnQgdGhlIGV4ZWN1dGlvbiBjb3VudGVyIGJ5IHRoaXMgYW1v
dW50LiBDdXJyZW50bHkgdGhlIHZhbHVlIGVuZHMKLSAgICAvLyB1cCBiZWluZyAxOCwgc28gdGhp
cyBsb29wIGlzIG5vdCBzbyB0ZXJyaWJsZTsgaXQgcHJvYmFibHkgdGFrZXMgdXAgfjEwMCBjeWNs
ZXMKLSAgICAvLyB0b3RhbCBvbiBhIDMyLWJpdCBwcm9jZXNzb3IuCi0gICAgcmVvcHRpbWl6YXRp
b25SZXRyeUNvdW50ZXJNYXgoKSA9IDA7Ci0gICAgd2hpbGUgKChzdGF0aWNfY2FzdDxpbnQ2NF90
Pih0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCAocmVvcHRpbWl6YXRp
b25SZXRyeUNvdW50ZXJNYXgoKSArIDEpKSA8PSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyPjo6bWF4KCkpKQotICAgICAgICByZW9wdGltaXphdGlvblJldHJ5
Q291bnRlck1heCgpKys7Ci0KLSAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGludDY0X3Q+KHRocmVz
aG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IHJlb3B0aW1pemF0aW9uUmV0cnlD
b3VudGVyTWF4KCkpID4gMCk7Ci0gICAgQVNTRVJUKChzdGF0aWNfY2FzdDxpbnQ2NF90Pih0aHJl
c2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCByZW9wdGltaXphdGlvblJldHJ5
Q291bnRlck1heCgpKSA8PSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRz
PGludDMyPjo6bWF4KCkpKTsKKyAgICBBU1NFUlQoT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1p
emVBZnRlckxvbmdXYXJtVXAoKSA+PSBPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVy
V2FybVVwKCkpOworICAgIEFTU0VSVChPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVy
V2FybVVwKCkgPj0gT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVTb29uKCkpOworICAgIEFT
U0VSVChPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkgPj0gMCk7CiB9
CiAKIC8vIFBhcnNlcyBhIHNpbmdsZSBjb21tYW5kIGxpbmUgb3B0aW9uIGluIHRoZSBmb3JtYXQg
IjxvcHRpb25OYW1lPj08dmFsdWU+IgpAQCAtMjUxLDYgKzI3Myw3IEBAIGJvb2wgT3B0aW9uczo6
c2V0T3B0aW9uKGNvbnN0IGNoYXIqIGFyZykKICAgICAgICAgYm9vbCBzdWNjZXNzID0gcGFyc2Uo
dmFsdWVTdHIsIHZhbHVlKTsgICAgICAgICAgXAogICAgICAgICBpZiAoc3VjY2VzcykgeyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBuYW1lXygpID0gdmFs
dWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJlY29tcHV0ZURl
cGVuZGVudE9wdGlvbnMoKTsgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIH0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgcmV0dXJuIGZh
bHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMjU5LDcgKzI4Miw3
IEBAIGJvb2wgT3B0aW9uczo6c2V0T3B0aW9uKGNvbnN0IGNoYXIqIGFyZykKICAgICBKU0NfT1BU
SU9OUyhGT1JfRUFDSF9PUFRJT04pCiAjdW5kZWYgRk9SX0VBQ0hfT1BUSU9OCiAKLSAgICAgICAg
cmV0dXJuIGZhbHNlOyAvLyBObyBvcHRpb24gbWF0Y2hlZC4KKyAgICByZXR1cm4gZmFsc2U7IC8v
IE5vIG9wdGlvbiBtYXRjaGVkLgogfQogCiB2b2lkIE9wdGlvbnM6OmR1bXBBbGxPcHRpb25zKEZJ
TEUqIHN0cmVhbSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5j
bHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewogCkBAIC05NCw2ICs5NSwxMCBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJh
bmdlOwogICAgIHYoYm9vbCwgdXNlREZHSklULCB0cnVlKSBcCiAgICAgdihib29sLCB1c2VSZWdF
eHBKSVQsIHRydWUpIFwKICAgICBcCisgICAgdih1bnNpZ25lZCwgbWF4UGVyVGhyZWFkU3RhY2tV
c2FnZSwgNCAqIE1CKSBcCisgICAgdih1bnNpZ25lZCwgcmVzZXJ2ZWRab25lU2l6ZSwgMTI4ICog
S0IpIFwKKyAgICB2KHVuc2lnbmVkLCBlcnJvck1vZGVSZXNlcnZlZFpvbmVTaXplLCA2NCAqIEtC
KSBcCisgICAgXAogICAgIHYoYm9vbCwgY3Jhc2hJZkNhbnRBbGxvY2F0ZUpJVE1lbW9yeSwgZmFs
c2UpIFwKICAgICBcCiAgICAgdihib29sLCBmb3JjZURGR0NvZGVCbG9ja0xpdmVuZXNzLCBmYWxz
ZSkgXApAQCAtMTE4LDExICsxMjMsMTkgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5n
ZTsKICAgICB2KGJvb2wsIHZlcmJvc2VDYWxsTGluaywgZmFsc2UpIFwKICAgICB2KGJvb2wsIHZl
cmJvc2VDb21waWxhdGlvblF1ZXVlLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgcmVwb3J0Q29tcGls
ZVRpbWVzLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgcmVwb3J0RlRMQ29tcGlsZVRpbWVzLCBmYWxz
ZSkgXAogICAgIHYoYm9vbCwgdmVyYm9zZUNGQSwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIHZlcmJv
c2VGVExUb0pTVGh1bmssIGZhbHNlKSBcCisgICAgdihib29sLCB2ZXJib3NlRlRMRmFpbHVyZSwg
ZmFsc2UpIFwKKyAgICB2KGJvb2wsIGFsd2F5c0NvbXB1dGVIYXNoLCBmYWxzZSkgXAorICAgIHYo
Ym9vbCwgdGVzdFRoZUZUTCwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIHZlcmJvc2VTYW5pdGl6ZVN0
YWNrLCBmYWxzZSkgXAogICAgIFwKLSAgICB2KGJvb2wsIGVuYWJsZU9TUkVudHJ5SW5Mb29wcywg
dHJ1ZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlT1NSRW50cnlUb0RGRywgdHJ1ZSkgXAorICAgIHYo
Ym9vbCwgZW5hYmxlT1NSRW50cnlUb0ZUTCwgdHJ1ZSkgXAogICAgIFwKICAgICB2KGJvb2wsIHVz
ZUV4cGVyaW1lbnRhbEZUTCwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIGVuYWJsZUV4cGVyaW1lbnRh
bEZUTENvdmVyYWdlLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgdXNlRlRMVEJBQSwgdHJ1ZSkgXAog
ICAgIHYoYm9vbCwgZW5hYmxlTExWTUZhc3RJU2VsLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgdXNl
TExWTVNtYWxsQ29kZU1vZGVsLCBmYWxzZSkgXApAQCAtMTM0LDEwICsxNDcsMTIgQEAgdHlwZWRl
ZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KHVuc2lnbmVkLCBsbHZtQmFja2VuZE9w
dGltaXphdGlvbkxldmVsLCAyKSBcCiAgICAgdih1bnNpZ25lZCwgbGx2bU9wdGltaXphdGlvbkxl
dmVsLCAyKSBcCiAgICAgdih1bnNpZ25lZCwgbGx2bVNpemVMZXZlbCwgMCkgXAorICAgIHYoYm9v
bCwgbGx2bURpc2FsbG93QVZYLCB0cnVlKSBcCiAgICAgdihib29sLCBmdGxDcmFzaGVzLCBmYWxz
ZSkgLyogZm9vbC1wcm9vZiB3YXkgb2YgY2hlY2tpbmcgdGhhdCB5b3UgZW5kZWQgdXAgaW4gdGhl
IEZUTC4gOy0pICovXAogICAgIFwKICAgICB2KGJvb2wsIGVuYWJsZUNvbmN1cnJlbnRKSVQsIHRy
dWUpIFwKLSAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkNvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51
bWJlck9mV29ya2VyVGhyZWFkcygyKSAtIDEpIFwKKyAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkRG
R0NvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcygyKSAtIDEpIFwK
KyAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51bWJl
ck9mV29ya2VyVGhyZWFkcyg4KSAtIDEpIFwKICAgICBcCiAgICAgdihib29sLCBlbmFibGVQcm9m
aWxlciwgZmFsc2UpIFwKICAgICBcCkBAIC0xNDYsNiArMTYxLDggQEAgdHlwZWRlZiBPcHRpb25S
YW5nZSBvcHRpb25SYW5nZTsKICAgICBcCiAgICAgdihib29sLCBlbmFibGVBcmNoaXRlY3R1cmVT
cGVjaWZpY09wdGltaXphdGlvbnMsIHRydWUpIFwKICAgICBcCisgICAgdihib29sLCBicmVha09u
VGhyb3csIGZhbHNlKSBcCisgICAgXAogICAgIHYodW5zaWduZWQsIG1heGltdW1PcHRpbWl6YXRp
b25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxMDAwMCkgXAogICAgIFwKICAgICB2KHVuc2ln
bmVkLCBtYXhpbXVtRnVuY3Rpb25Gb3JDYWxsSW5saW5lQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3Vu
dCwgMTgwKSBcCkBAIC0xNTQsNiArMTcxLDEyIEBAIHR5cGVkZWYgT3B0aW9uUmFuZ2Ugb3B0aW9u
UmFuZ2U7CiAgICAgXAogICAgIC8qIERlcHRoIG9mIGlubGluZSBzdGFjaywgc28gMSA9IG5vIGlu
bGluaW5nLCAyID0gb25lIGxldmVsLCBldGMuICovIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVt
SW5saW5pbmdEZXB0aCwgNSkgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1JbmxpbmluZ1JlY3Vy
c2lvbiwgMikgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1JbmxpbmluZ0RlcHRoRm9yTXVzdElu
bGluZSwgNykgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1JbmxpbmluZ1JlY3Vyc2lvbkZvck11
c3RJbmxpbmUsIDMpIFwKKyAgICBcCisgICAgdihib29sLCBlbmFibGVQb2x5dmFyaWFudENhbGxJ
bmxpbmluZywgdHJ1ZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlUG9seXZhcmlhbnRCeUlkSW5saW5p
bmcsIHRydWUpIFwKICAgICBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUJpbmFyeVN0cmluZ1N3
aXRjaENhc2VMZW5ndGgsIDUwKSBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUJpbmFyeVN0cmlu
Z1N3aXRjaFRvdGFsTGVuZ3RoLCAyMDAwKSBcCkBAIC0yMTAsNiArMjMzLDcgQEAgdHlwZWRlZiBP
cHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KGJvb2wsIHNob3dPYmplY3RTdGF0aXN0aWNz
LCBmYWxzZSkgXAogICAgIFwKICAgICB2KGJvb2wsIGxvZ0dDLCBmYWxzZSkgXAorICAgIHYoYm9v
bCwgZGlzYWJsZUdDLCBmYWxzZSkgXAogICAgIHYodW5zaWduZWQsIGdjTWF4SGVhcFNpemUsIDAp
IFwKICAgICB2KGJvb2wsIHJlY29yZEdDUGF1c2VUaW1lcywgZmFsc2UpIFwKICAgICB2KGJvb2ws
IGxvZ0hlYXBTdGF0aXN0aWNzQXRFeGl0LCBmYWxzZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Nb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTW9kZV9oCisjZGVmaW5lIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZV9oCisKK25h
bWVzcGFjZSBKU0MgeworCitlbnVtIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSB7CisgICAgUmVn
aXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCwKKyAgICBNdXN0UHJlc2VydmVSZWdpc3RlcnMK
K307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Nb2RlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tBbGln
bm1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFj
a0FsaWdubWVudC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdGFja0FsaWdubWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw4IEBA
CiAjZGVmaW5lIFN0YWNrQWxpZ25tZW50X2gKIAogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKKyNp
bmNsdWRlICJKU1N0YWNrLmgiCisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CiAKQEAgLTM4LDYgKzQwLDI1IEBAIGlubGluZSB1bnNpZ25lZCBzdGFja0FsaWdu
bWVudFJlZ2lzdGVycygKICAgICByZXR1cm4gc3RhY2tBbGlnbm1lbnRCeXRlcygpIC8gc2l6ZW9m
KEVuY29kZWRKU1ZhbHVlKTsKIH0KIAorLy8gQWxpZ24gYXJndW1lbnQgY291bnQgdGFraW5nIGlu
dG8gYWNjb3VudCB0aGUgQ2FsbEZyYW1lSGVhZGVyU2l6ZSBtYXkgYmUKKy8vIGFuICJ1bmFsaWdu
ZWQiIGNvdW50IG9mIHJlZ2lzdGVycy4KK2lubGluZSB1bnNpZ25lZCByb3VuZEFyZ3VtZW50Q291
bnRUb0FsaWduRnJhbWUodW5zaWduZWQgYXJndW1lbnRDb3VudCkKK3sKKyAgICByZXR1cm4gV1RG
Ojpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIGFyZ3VtZW50
Q291bnQgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSAtIEpTU3RhY2s6OkNhbGxGcmFt
ZUhlYWRlclNpemU7Cit9CisKKy8vIEFsaWduIGxvY2FsIHJlZ2lzdGVyIGNvdW50IHRvIG1ha2Ug
dGhlIGxhc3QgbG9jYWwgZW5kIG9uIGEgc3RhY2sgYWxpZ25lZCBhZGRyZXNzIGdpdmVuIHRoZQor
Ly8gQ2FsbEZyYW1lIGlzIGF0IGFuIGFkZHJlc3MgdGhhdCBpcyBzdGFjayBhbGlnbmVkIG1pbnVz
IEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplCitpbmxpbmUgdW5zaWduZWQgcm91bmRMb2Nh
bFJlZ2lzdGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZzZXQodW5zaWduZWQgbG9jYWxSZWdpc3Rl
ckNvdW50KQoreworICAgIHJldHVybiBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGln
bm1lbnRSZWdpc3RlcnMoKSwgbG9jYWxSZWdpc3RlckNvdW50ICsgSlNTdGFjazo6Q2FsbGVyRnJh
bWVBbmRQQ1NpemUpIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemU7Cit9CisKK2lubGlu
ZSB1bnNpZ25lZCBsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVycygpCit7CisgICAgcmV0dXJuIFdU
Rjo6ZmFzdExvZzIoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIEpTQwogCiAjZW5kaWYgLy8gU3RhY2tBbGlnbm1lbnRfaApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5j
cHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiBKU1ZhbHVlIFN0cmluZ1JlY3Vyc2lvbkNoZWNrZXI6OnRocm93
U3RhY2tPdmVyZmxvd0Vycm9yKCkKIHsKLSAgICByZXR1cm4gbV9leGVjLT52bSgpLnRocm93RXhj
ZXB0aW9uKG1fZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYykpOworICAgIHJl
dHVybiBKU0M6OnRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYyk7CiB9CiAKIEpTVmFsdWUg
U3RyaW5nUmVjdXJzaW9uQ2hlY2tlcjo6ZW1wdHlTdHJpbmcoKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDQ4LDggKzEwNDgsMTMgQEAgdm9pZCBTdHJ1Y3R1cmU6OmR1bXAoUHJpbnRTdHJlYW0m
IG91dCkgYwogICAgIGlmICh0YWJsZSkgewogICAgICAgICBQcm9wZXJ0eVRhYmxlOjppdGVyYXRv
ciBpdGVyID0gdGFibGUtPmJlZ2luKCk7CiAgICAgICAgIFByb3BlcnR5VGFibGU6Oml0ZXJhdG9y
IGVuZCA9IHRhYmxlLT5lbmQoKTsKLSAgICAgICAgZm9yICg7IGl0ZXIgIT0gZW5kOyArK2l0ZXIp
CisgICAgICAgIGZvciAoOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7CiAgICAgICAgICAgICBvdXQu
cHJpbnQoY29tbWEsIGl0ZXItPmtleSwgIjoiLCBzdGF0aWNfY2FzdDxpbnQ+KGl0ZXItPm9mZnNl
dCkpOworICAgICAgICAgICAgaWYgKGl0ZXItPnNwZWNpZmljVmFsdWUpIHsKKyAgICAgICAgICAg
ICAgICBEdW1wQ29udGV4dCBkdW1teUNvbnRleHQ7CisgICAgICAgICAgICAgICAgb3V0LnByaW50
KCI9PiIsIFJhd1BvaW50ZXIoaXRlci0+c3BlY2lmaWNWYWx1ZS5nZXQoKSkpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdHJ1Y3R1cmUtPm1fbG9jay51bmxv
Y2soKTsKICAgICB9CkBAIC0xMDU5LDYgKzEwNjQsMTAgQEAgdm9pZCBTdHJ1Y3R1cmU6OmR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgYwogICAgICAgICBpZiAoIXN0cnVjdHVyZS0+bV9uYW1lSW5QcmV2
aW91cykKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN0
cnVjdHVyZS0+bV9uYW1lSW5QcmV2aW91cy5nZXQoKSwgIjoiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0
cnVjdHVyZS0+bV9vZmZzZXQpKTsKKyAgICAgICAgaWYgKHN0cnVjdHVyZS0+bV9zcGVjaWZpY1Zh
bHVlSW5QcmV2aW91cykgeworICAgICAgICAgICAgRHVtcENvbnRleHQgZHVtbXlDb250ZXh0Owor
ICAgICAgICAgICAgb3V0LnByaW50KCI9PiIsIFJhd1BvaW50ZXIoc3RydWN0dXJlLT5tX3NwZWNp
ZmljVmFsdWVJblByZXZpb3VzLmdldCgpKSk7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAg
b3V0LnByaW50KCJ9LCAiLCBJbmRleGluZ1R5cGVEdW1wKGluZGV4aW5nVHlwZSgpKSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDExLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSwgMjAx
MywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDExICszMCwxMyBAQAogI2luY2x1ZGUgIlZNLmgiCiAKICNp
bmNsdWRlICJBcmdMaXN0LmgiCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
aCIKICNpbmNsdWRlICJBcnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuaCIKICNpbmNsdWRl
ICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAi
Q29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmllcnMuaCIKKyNpbmNsdWRlICJD
b21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJERkdMb25nTGl2ZWRTdGF0ZS5oIgogI2luY2x1
ZGUgIkRGR1dvcmtsaXN0LmgiCiAjaW5jbHVkZSAiRGVidWdnZXJBY3RpdmF0aW9uLmgiCkBAIC00
OSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkluY3JlbWVu
dGFsU3dlZXBlci5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiSklUQ29k
ZS5oIgogI2luY2x1ZGUgIkpTQVBJVmFsdWVXcmFwcGVyLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0
aW9uLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgpAQCAtMTY2LDYgKzE2OSw3IEBAIFZNOjpWTShW
TVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIHZtVHlwZSh2bVR5cGUpCiAg
ICAgLCBjbGllbnREYXRhKDApCiAgICAgLCB0b3BDYWxsRnJhbWUoQ2FsbEZyYW1lOjpub0NhbGxl
cigpKQorICAgICwgc3RhY2tQb2ludGVyQXRWTUVudHJ5KDApCiAgICAgLCBhcnJheUNvbnN0cnVj
dG9yVGFibGUoYWRvcHRQdHIobmV3IEhhc2hUYWJsZShKU0M6OmFycmF5Q29uc3RydWN0b3JUYWJs
ZSkpKQogICAgICwgYXJyYXlQcm90b3R5cGVUYWJsZShhZG9wdFB0cihuZXcgSGFzaFRhYmxlKEpT
Qzo6YXJyYXlQcm90b3R5cGVUYWJsZSkpKQogICAgICwgYm9vbGVhblByb3RvdHlwZVRhYmxlKGFk
b3B0UHRyKG5ldyBIYXNoVGFibGUoSlNDOjpib29sZWFuUHJvdG90eXBlVGFibGUpKSkKQEAgLTIx
Nyw3ICsyMjEsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAg
ICAgLCBtX2luaXRpYWxpemluZ09iamVjdENsYXNzKDApCiAjZW5kaWYKICAgICAsIG1fc3RhY2tM
aW1pdCgwKQotI2lmIFVTRShTRVBBUkFURV9DX0FORF9KU19TVEFDSykKKyNpZiBFTkFCTEUoTExJ
TlRfQ19MT09QKQogICAgICwgbV9qc1N0YWNrTGltaXQoMCkKICNlbmRpZgogICAgICwgbV9pbkRl
ZmluZU93blByb3BlcnR5KGZhbHNlKQpAQCAtMjI1LDcgKzIyOSwxMSBAQCBWTTo6Vk0oVk1UeXBl
IHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiB7CiAgICAgaW50ZXJwcmV0ZXIgPSBuZXcgSW50
ZXJwcmV0ZXIoKnRoaXMpOwogICAgIFN0YWNrQm91bmRzIHN0YWNrID0gd3RmVGhyZWFkRGF0YSgp
LnN0YWNrKCk7Ci0gICAgc2V0U3RhY2tMaW1pdChzdGFjay5yZWN1cnNpb25MaW1pdCgpKTsKKyAg
ICB1cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUoT3B0aW9uczo6cmVzZXJ2ZWRa
b25lU2l6ZSgpKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIGludGVycHJldGVyLT5z
dGFjaygpLnNldFJlc2VydmVkWm9uZVNpemUoT3B0aW9uczo6cmVzZXJ2ZWRab25lU2l6ZSgpKTsK
KyNlbmRpZgorICAgIHNldExhc3RTdGFja1RvcChzdGFjay5vcmlnaW4oKSk7CiAKICAgICAvLyBO
ZWVkIHRvIGJlIGNhcmVmdWwgdG8ga2VlcCBldmVyeXRoaW5nIGNvbnNpc3RlbnQgaGVyZQogICAg
IEpTTG9ja0hvbGRlciBsb2NrKHRoaXMpOwpAQCAtMjY3LDcgKzI3NSw5IEBAIFZNOjpWTShWTVR5
cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKIAogI2lmIEVOQUJMRShKSVQpCiAgICAgaml0
U3R1YnMgPSBhZG9wdFB0cihuZXcgSklUVGh1bmtzKCkpOworICAgIGFyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzID0gc3RkOjptYWtlX3VuaXF1ZTxBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcz4o
KTsKICNlbmRpZgorICAgIGFyaXR5Q2hlY2tEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxDb21tb25T
bG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhPigpOwogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAgICAg
ZnRsVGh1bmtzID0gc3RkOjptYWtlX3VuaXF1ZTxGVEw6OlRodW5rcz4oKTsKQEAgLTI4MCw3ICsy
OTAsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAjZW5kaWYK
IAogICAgIGhlYXAubm90aWZ5SXNTYWZlVG9Db2xsZWN0KCk7Ci0KKyAgICAKICAgICBMTEludDo6
RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoKnRoaXMpOwogICAgIAogICAgIGlmIChPcHRpb25zOjpl
bmFibGVQcm9maWxlcigpKSB7CkBAIC0zMDYsNiArMzE2LDE2IEBAIFZNOjpWTShWTVR5cGUgdm1U
eXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICBtX3R5cGVkQXJyYXlDb250cm9sbGVyID0gYWRv
cHRSZWYobmV3IFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKCkpOwogfQogCisjaWYgRU5BQkxF
KERGR19KSVQpCitzdGF0aWMgdm9pZCBjbGVhbldvcmtsaXN0KFZNJiB2bSwgREZHOjpXb3JrbGlz
dCogd29ya2xpc3QpCit7CisgICAgaWYgKCF3b3JrbGlzdCkKKyAgICAgICAgcmV0dXJuOworICAg
IHdvcmtsaXN0LT53YWl0VW50aWxBbGxQbGFuc0ZvclZNQXJlUmVhZHkodm0pOworICAgIHdvcmts
aXN0LT5yZW1vdmVBbGxSZWFkeVBsYW5zRm9yVk0odm0pOworfQorI2VuZGlmIC8vIEVOQUJMRShE
RkdfSklUKQorCiBWTTo6flZNKCkKIHsKICAgICAvLyBOZXZlciBHQywgZXZlciBhZ2Fpbi4KQEAg
LTMxNCwxMCArMzM0LDggQEAgVk06On5WTSgpCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgLy8g
TWFrZSBzdXJlIGNvbmN1cnJlbnQgY29tcGlsYXRpb25zIGFyZSBkb25lLCBidXQgZG9uJ3QgaW5z
dGFsbCB0aGVtLCBzaW5jZSB0aGVyZSBpcwogICAgIC8vIG5vIHBvaW50IHRvIGRvaW5nIHNvLgot
ICAgIGlmICh3b3JrbGlzdCkgewotICAgICAgICB3b3JrbGlzdC0+d2FpdFVudGlsQWxsUGxhbnNG
b3JWTUFyZVJlYWR5KCp0aGlzKTsKLSAgICAgICAgd29ya2xpc3QtPnJlbW92ZUFsbFJlYWR5UGxh
bnNGb3JWTSgqdGhpcyk7Ci0gICAgfQorICAgIGNsZWFuV29ya2xpc3QoKnRoaXMsIERGRzo6ZXhp
c3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpKTsKKyAgICBjbGVhbldvcmtsaXN0KCp0aGlz
LCBERkc6OmV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKSk7CiAjZW5kaWYgLy8gRU5B
QkxFKERGR19KSVQpCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhpcyBmaXJzdCB0byBlbnN1cmUgdGhh
dCBub2JvZHkgdHJpZXMgdG8gcmVtb3ZlIHRoZW1zZWx2ZXMgZnJvbSBpdC4KQEAgLTQ2MSw4ICs0
NzksOCBAQCBOYXRpdmVFeGVjdXRhYmxlKiBWTTo6Z2V0SG9zdEZ1bmN0aW9uKE5hCiBOYXRpdmVF
eGVjdXRhYmxlKiBWTTo6Z2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBO
YXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKIHsKICAgICByZXR1cm4gTmF0aXZlRXhlY3V0YWJs
ZTo6Y3JlYXRlKCp0aGlzLAotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxM
SW50Q29kZVJlZihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKSwgZnVuY3Rpb24sCi0gICAg
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X25hdGl2
ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZSksIGNvbnN0cnVjdG9yLAorICAgICAgICBhZG9wdFJlZihu
ZXcgTmF0aXZlSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJl
ZihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykp
LCBmdW5jdGlvbiwKKyAgICAgICAgYWRvcHRSZWYobmV3IE5hdGl2ZUpJVENvZGUoTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90
cmFtcG9saW5lKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpLCBjb25zdHJ1Y3RvciwKICAgICAg
ICAgTm9JbnRyaW5zaWMpOwogfQogCkBAIC00OTAsMTQgKzUwOCwyMSBAQCB2b2lkIFZNOjpzdG9w
U2FtcGxpbmcoKQogICAgIGludGVycHJldGVyLT5zdG9wU2FtcGxpbmcoKTsKIH0KIAotdm9pZCBW
TTo6cHJlcGFyZVRvRGlzY2FyZENvZGUoKQotewogI2lmIEVOQUJMRShERkdfSklUKQorc3RhdGlj
IHZvaWQgcHJlcGFyZVRvRGlzY2FyZENvZGVGb3IoVk0mIHZtLCBERkc6OldvcmtsaXN0KiB3b3Jr
bGlzdCkKK3sKICAgICBpZiAoIXdvcmtsaXN0KQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAg
d29ya2xpc3QtPmNvbXBsZXRlQWxsUGxhbnNGb3JWTSgqdGhpcyk7Ci0jZW5kaWYKKyAgICB3b3Jr
bGlzdC0+Y29tcGxldGVBbGxQbGFuc0ZvclZNKHZtKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoREZH
X0pJVCkKKwordm9pZCBWTTo6cHJlcGFyZVRvRGlzY2FyZENvZGUoKQoreworI2lmIEVOQUJMRShE
RkdfSklUKQorICAgIHByZXBhcmVUb0Rpc2NhcmRDb2RlRm9yKCp0aGlzLCBERkc6OmV4aXN0aW5n
R2xvYmFsREZHV29ya2xpc3RPck51bGwoKSk7CisgICAgcHJlcGFyZVRvRGlzY2FyZENvZGVGb3Io
KnRoaXMsIERGRzo6ZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVsbCgpKTsKKyNlbmRpZiAv
LyBFTkFCTEUoREZHX0pJVCkKIH0KIAogdm9pZCBWTTo6ZGlzY2FyZEFsbENvZGUoKQpAQCAtNjMy
LDYgKzY1NywxMSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTb3VyY2VUb0Vycm9yKENhbGxGcmFtCiAg
ICAgCiBKU1ZhbHVlIFZNOjp0aHJvd0V4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
ZXJyb3IpCiB7CisgICAgaWYgKE9wdGlvbnM6OmJyZWFrT25UaHJvdygpKSB7CisgICAgICAgIGRh
dGFMb2coIkluIGNhbGwgZnJhbWUgIiwgUmF3UG9pbnRlcihleGVjKSwgIiBmb3IgY29kZSBibG9j
ayAiLCAqZXhlYy0+Y29kZUJsb2NrKCksICJcbiIpOworICAgICAgICBDUkFTSCgpOworICAgIH0K
KyAgICAKICAgICBBU1NFUlQoZXhlYyA9PSB0b3BDYWxsRnJhbWUgfHwgZXhlYyA9PSBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSB8fCBleGVjID09IGV4ZWMtPnZtRW50
cnlHbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpKTsKICAgICAKICAgICBWZWN0b3I8U3RhY2tG
cmFtZT4gc3RhY2tUcmFjZTsKQEAgLTcwNiw2ICs3MzYsMjQgQEAgdm9pZCBWTTo6IGNsZWFyRXhj
ZXB0aW9uU3RhY2soKQogICAgIG1fZXhjZXB0aW9uU3RhY2sgPSBSZWZDb3VudGVkQXJyYXk8U3Rh
Y2tGcmFtZT4oKTsKIH0KIAorc2l6ZV90IFZNOjp1cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVk
Wm9uZVNpemUoc2l6ZV90IHJlc2VydmVkWm9uZVNpemUpCit7CisgICAgc2l6ZV90IG9sZFJlc2Vy
dmVkWm9uZVNpemUgPSBtX3Jlc2VydmVkWm9uZVNpemU7CisgICAgbV9yZXNlcnZlZFpvbmVTaXpl
ID0gcmVzZXJ2ZWRab25lU2l6ZTsKKworICAgIHZvaWQqIHN0YWNrTGltaXQ7CisgICAgaWYgKHN0
YWNrUG9pbnRlckF0Vk1FbnRyeSkgeworICAgICAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0
YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CisgICAgICAgIGNoYXIqIHN0YXJ0T2ZTdGFjayA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHN0YWNrUG9pbnRlckF0Vk1FbnRyeSk7CisgICAgICAg
IGNoYXIqIGRlc2lyZWRTdGFja0xpbWl0ID0gc3RhcnRPZlN0YWNrIC0gT3B0aW9uczo6bWF4UGVy
VGhyZWFkU3RhY2tVc2FnZSgpICsgcmVzZXJ2ZWRab25lU2l6ZTsKKyAgICAgICAgc3RhY2tMaW1p
dCA9IHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLnJlY3Vyc2lvbkxpbWl0KHJlc2VydmVkWm9uZVNp
emUsIGRlc2lyZWRTdGFja0xpbWl0KTsKKyAgICB9IGVsc2UKKyAgICAgICAgc3RhY2tMaW1pdCA9
IHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLnJlY3Vyc2lvbkxpbWl0KHJlc2VydmVkWm9uZVNpemUp
OworCisgICAgc2V0U3RhY2tMaW1pdChzdGFja0xpbWl0KTsKKyAgICByZXR1cm4gb2xkUmVzZXJ2
ZWRab25lU2l6ZTsKK30KKwogdm9pZCByZWxlYXNlRXhlY3V0YWJsZU1lbW9yeShWTSYgdm0pCiB7
CiAgICAgdm0ucmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoKTsKQEAgLTcyMiwxNiArNzcwLDE5IEBA
IHZvaWQgVk06OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnYKICAgICAgICAgfQogICAg
IH0KIH0KKyNlbmRpZgogCi1ERkc6OldvcmtsaXN0KiBWTTo6ZW5zdXJlV29ya2xpc3QoKQordm9p
ZCBsb2dTYW5pdGl6ZVN0YWNrKFZNKiB2bSkKIHsKLSAgICBpZiAoIURGRzo6ZW5hYmxlQ29uY3Vy
cmVudEpJVCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoIXdvcmtsaXN0KQotICAgICAg
ICB3b3JrbGlzdCA9IERGRzo6Z2xvYmFsV29ya2xpc3QoKTsKLSAgICByZXR1cm4gd29ya2xpc3Qu
Z2V0KCk7CisgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VTYW5pdGl6ZVN0YWNrKCkgJiYgdm0tPnRv
cENhbGxGcmFtZSkgeworICAgICAgICBpbnQgZHVtbXk7CisgICAgICAgIGRhdGFMb2coCisgICAg
ICAgICAgICAiU2FuaXRpemluZyBzdGFjayB3aXRoIHRvcCBjYWxsIGZyYW1lIGF0ICIsIFJhd1Bv
aW50ZXIodm0tPnRvcENhbGxGcmFtZSksCisgICAgICAgICAgICAiLCBjdXJyZW50IHN0YWNrIHBv
aW50ZXIgYXQgIiwgUmF3UG9pbnRlcigmZHVtbXkpLCAiLCBpbiAiLAorICAgICAgICAgICAgcG9p
bnRlckR1bXAodm0tPnRvcENhbGxGcmFtZS0+Y29kZUJsb2NrKCkpLCAiIGFuZCBsYXN0IGNvZGUg
b3JpZ2luID0gIiwKKyAgICAgICAgICAgIHZtLT50b3BDYWxsRnJhbWUtPmNvZGVPcmlnaW4oKSwg
IlxuIik7CisgICAgfQogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCiB2
b2lkIFZNOjphZGRSZWdFeHBUb1RyYWNlKFJlZ0V4cCogcmVnRXhwKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw3IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCisgICAgY2xhc3MgQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M7CiAg
ICAgY2xhc3MgQ29kZUJsb2NrOwogICAgIGNsYXNzIENvZGVDYWNoZTsKICAgICBjbGFzcyBDb21t
b25JZGVudGlmaWVyczsKQEAgLTEwMyw3ICsxMDQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICNpZiBF
TkFCTEUoREZHX0pJVCkKICAgICBuYW1lc3BhY2UgREZHIHsKICAgICBjbGFzcyBMb25nTGl2ZWRT
dGF0ZTsKLSAgICBjbGFzcyBXb3JrbGlzdDsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKERGR19K
SVQpCiAjaWYgRU5BQkxFKEZUTF9KSVQpCkBAIC0xMTEsNiArMTExLDkgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgY2xhc3MgVGh1bmtzOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkK
KyAgICBuYW1lc3BhY2UgQ29tbW9uU2xvd1BhdGhzIHsKKyAgICBzdHJ1Y3QgQXJpdHlDaGVja0Rh
dGE7CisgICAgfQogCiAgICAgc3RydWN0IEhhc2hUYWJsZTsKICAgICBzdHJ1Y3QgSW5zdHJ1Y3Rp
b247CkBAIC0yMDQsMTAgKzIwNyw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQg
bWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKSB7IGhlYXAubWFjaGluZVRocmVhZHMoKS5t
YWtlVXNhYmxlRnJvbU11bHRpcGxlVGhyZWFkcygpOyB9CiAgICAgICAgIAotI2lmIEVOQUJMRShE
RkdfSklUKQotICAgICAgICBERkc6OldvcmtsaXN0KiBlbnN1cmVXb3JrbGlzdCgpOwotI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRyPEpTTG9j
az4gbV9hcGlMb2NrOwogCkBAIC0yMjQsMTIgKzIyMywxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgICAgIE93blB0cjxERkc6OkxvbmdMaXZl
ZFN0YXRlPiBkZmdTdGF0ZTsKLSAgICAgICAgUmVmUHRyPERGRzo6V29ya2xpc3Q+IHdvcmtsaXN0
OwogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogCiAgICAgICAgIFZNVHlwZSB2bVR5cGU7CiAg
ICAgICAgIENsaWVudERhdGEqIGNsaWVudERhdGE7CiAgICAgICAgIEV4ZWNTdGF0ZSogdG9wQ2Fs
bEZyYW1lOworICAgICAgICB2b2lkKiBzdGFja1BvaW50ZXJBdFZNRW50cnk7CiAgICAgICAgIFdh
dGNoZG9nIHdhdGNoZG9nOwogCiAgICAgICAgIGNvbnN0IE93blB0cjxjb25zdCBIYXNoVGFibGU+
IGFycmF5Q29uc3RydWN0b3JUYWJsZTsKQEAgLTM0MSw3ICszNDAsMTMgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICByZXR1cm4gaml0U3R1YnMtPmN0aVN0dWIodGhpcywgZ2VuZXJhdG9y
KTsKICAgICAgICAgfQogICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBnZXRIb3N0RnVuY3Rpb24o
TmF0aXZlRnVuY3Rpb24sIEludHJpbnNpYyk7Ci0jZW5kaWYKKyAgICAgICAgCisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcz4gYXJpdHlDaGVja0ZhaWxS
ZXR1cm5UaHVua3M7CisjaWYgQ1BVKFg4NikKKyAgICAgICAgdm9pZCogY3VycmVudFJldHVyblRo
dW5rUEM7CisjZW5kaWYgLy8gQ1BVKFg4NikKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YT4gYXJpdHlD
aGVja0RhdGE7CiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxG
VEw6OlRodW5rcz4gZnRsVGh1bmtzOwogI2VuZGlmCkBAIC0zNzMsMTIgKzM3OCwxNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSB0aHJvd0V4Y2Vw
dGlvbihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNP
YmplY3QqIHRocm93RXhjZXB0aW9uKEV4ZWNTdGF0ZSosIEpTT2JqZWN0Kik7CiAgICAgICAgIAor
ICAgICAgICBzaXplX3QgcmVzZXJ2ZWRab25lU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzZXJ2
ZWRab25lU2l6ZTsgfQorICAgICAgICBzaXplX3QgdXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZl
ZFpvbmVTaXplKHNpemVfdCByZXNlcnZlZFpvbmVTaXplKTsKKwogICAgICAgICB2b2lkKiogYWRk
cmVzc09mSlNTdGFja0xpbWl0KCkgeyByZXR1cm4gJm1fanNTdGFja0xpbWl0OyB9CisjaWYgRU5B
QkxFKExMSU5UX0NfTE9PUCkKICAgICAgICAgdm9pZCoganNTdGFja0xpbWl0KCkgeyByZXR1cm4g
bV9qc1N0YWNrTGltaXQ7IH0KICAgICAgICAgdm9pZCBzZXRKU1N0YWNrTGltaXQodm9pZCogbGlt
aXQpIHsgbV9qc1N0YWNrTGltaXQgPSBsaW1pdDsgfQotCisjZW5kaWYKICAgICAgICAgdm9pZCog
c3RhY2tMaW1pdCgpIHsgcmV0dXJuIG1fc3RhY2tMaW1pdDsgfQotICAgICAgICB2b2lkIHNldFN0
YWNrTGltaXQodm9pZCogbGltaXQpIHsgbV9zdGFja0xpbWl0ID0gbGltaXQ7IH0KKwogICAgICAg
ICBib29sIGlzU2FmZVRvUmVjdXJzZShzaXplX3QgbmVlZGVkU3RhY2tJbkJ5dGVzID0gMCkgY29u
c3QKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygp
LmlzR3Jvd2luZ0Rvd253YXJkKCkpOwpAQCAtMzg3LDEwICszOTYsMTIgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICByZXR1cm4gY3VyciA+PSBsaW1pdCAmJiBzdGF0aWNfY2FzdDxzaXpl
X3Q+KGN1cnIgLSBsaW1pdCkgPj0gbmVlZGVkU3RhY2tJbkJ5dGVzOwogICAgICAgICB9CiAKKyAg
ICAgICAgdm9pZCogbGFzdFN0YWNrVG9wKCkgeyByZXR1cm4gbV9sYXN0U3RhY2tUb3A7IH0KKyAg
ICAgICAgdm9pZCBzZXRMYXN0U3RhY2tUb3Aodm9pZCogbGFzdFN0YWNrVG9wKSB7IG1fbGFzdFN0
YWNrVG9wID0gbGFzdFN0YWNrVG9wOyB9CisKICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjb25z
dCBqc0FycmF5Q2xhc3NJbmZvOwogICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNvbnN0IGpzRmlu
YWxPYmplY3RDbGFzc0luZm87CiAKLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciBleGNlcHRpb25M
b2NhdGlvbjsKICAgICAgICAgSlNWYWx1ZSBob3N0Q2FsbFJldHVyblZhbHVlOwogICAgICAgICBF
eGVjU3RhdGUqIG5ld0NhbGxGcmFtZVJldHVyblZhbHVlOwogICAgICAgICBFeGVjU3RhdGUqIGNh
bGxGcmFtZUZvclRocm93OwpAQCAtNDEzLDcgKzQyNCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgICAgIC8vIG1heChzY3JhdGNoIGJ1ZmZlciBzaXplKSAqIDQuCiAgICAgICAgICAg
ICAgICAgc2l6ZU9mTGFzdFNjcmF0Y2hCdWZmZXIgPSBzaXplICogMjsKIAotICAgICAgICAgICAg
ICAgIHNjcmF0Y2hCdWZmZXJzLmFwcGVuZChTY3JhdGNoQnVmZmVyOjpjcmVhdGUoc2l6ZU9mTGFz
dFNjcmF0Y2hCdWZmZXIpKTsKKyAgICAgICAgICAgICAgICBTY3JhdGNoQnVmZmVyKiBuZXdCdWZm
ZXIgPSBTY3JhdGNoQnVmZmVyOjpjcmVhdGUoc2l6ZU9mTGFzdFNjcmF0Y2hCdWZmZXIpOworICAg
ICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG5ld0J1ZmZlcik7CisgICAgICAgICAgICAgICAg
c2NyYXRjaEJ1ZmZlcnMuYXBwZW5kKG5ld0J1ZmZlcik7CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIFNjcmF0Y2hCdWZmZXIqIHJlc3VsdCA9IHNjcmF0Y2hCdWZmZXJzLmxhc3QoKTsKQEAg
LTQ5NSw2ICs1MDgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVk0oVk1UeXBlLCBIZWFw
VHlwZSk7CiAgICAgICAgIHN0YXRpYyBWTSomIHNoYXJlZEluc3RhbmNlSW50ZXJuYWwoKTsKICAg
ICAgICAgdm9pZCBjcmVhdGVOYXRpdmVUaHVuaygpOworCisgICAgICAgIHZvaWQgc2V0U3RhY2tM
aW1pdCh2b2lkKiBsaW1pdCkgeyBtX3N0YWNrTGltaXQgPSBsaW1pdDsgfQorCiAjaWYgRU5BQkxF
KEFTU0VNQkxFUikKICAgICAgICAgYm9vbCBtX2NhblVzZUFzc2VtYmxlcjsKICNlbmRpZgpAQCAt
NTA3LDggKzUyMyw4IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShHQ19WQUxJREFUSU9O
KQogICAgICAgICBjb25zdCBDbGFzc0luZm8qIG1faW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3M7CiAj
ZW5kaWYKLQotI2lmIFVTRShTRVBBUkFURV9DX0FORF9KU19TVEFDSykKKyAgICAgICAgc2l6ZV90
IG1fcmVzZXJ2ZWRab25lU2l6ZTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICAgICBz
dHJ1Y3QgewogICAgICAgICAgICAgdm9pZCogbV9zdGFja0xpbWl0OwogICAgICAgICAgICAgdm9p
ZCogbV9qc1N0YWNrTGltaXQ7CkBAIC01MTksNiArNTM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICAgICB2b2lkKiBtX2pzU3RhY2tMaW1pdDsKICAgICAgICAgfTsKICNlbmRpZgorICAg
ICAgICB2b2lkKiBtX2xhc3RTdGFja1RvcDsKICAgICAgICAgSlNWYWx1ZSBtX2V4Y2VwdGlvbjsK
ICAgICAgICAgYm9vbCBtX2luRGVmaW5lT3duUHJvcGVydHk7CiAgICAgICAgIE93blB0cjxDb2Rl
Q2FjaGU+IG1fY29kZUNhY2hlOwpAQCAtNTQ0LDYgKzU2MSwyMiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgcmV0dXJuICZtX3ZtLT5oZWFwOwogICAgIH0KIAorI2lmICFFTkFCTEUoTExJTlRf
Q19MT09QKQorICAgIGV4dGVybiAiQyIgdm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk1JbXBsKFZNKik7
CisjZW5kaWYKKworICAgIHZvaWQgbG9nU2FuaXRpemVTdGFjayhWTSopOworCisgICAgQUxXQVlT
X0lOTElORSB2b2lkIHNhbml0aXplU3RhY2tGb3JWTShWTSogdm0pCisgICAgeworICAgICAgICBs
b2dTYW5pdGl6ZVN0YWNrKHZtKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgICAgICB2
bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuc2FuaXRpemVTdGFjaygpOworI2Vsc2UKKyAgICAgICAg
c2FuaXRpemVTdGFja0ZvclZNSW1wbCh2bSk7CisjZW5kaWYKKyAgICB9CisKIH0gLy8gbmFtZXNw
YWNlIEpTQwogCiAjZW5kaWYgLy8gVk1faApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiVk1FbnRyeVNjb3BlLmgiCiAKICNpbmNsdWRlICJEZWJ1
Z2dlci5oIgorI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJWTS5oIgogI2luY2x1ZGUg
PHd0Zi9TdGFja0JvdW5kcy5oPgogCkBAIC0zNCwxMiArMzUsMTAgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKIFZNRW50cnlTY29wZTo6Vk1FbnRyeVNjb3BlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKICAgICA6IG1fdm0odm0pCi0gICAgLCBtX3N0YWNrKHd0ZlRocmVhZERhdGEo
KS5zdGFjaygpKQogICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQotICAgICwgbV9w
cmV2KHZtLmVudHJ5U2NvcGUpCi0gICAgLCBtX3ByZXZTdGFja0xpbWl0KHZtLnN0YWNrTGltaXQo
KSkKICAgICAsIG1fcmVjb21waWxhdGlvbk5lZWRlZChmYWxzZSkKIHsKKyAgICBBU1NFUlQod3Rm
VGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CiAgICAgaWYgKCF2bS5l
bnRyeVNjb3BlKSB7CiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKICAgICAgICAgaWYgKEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OnVuZGVyTWVtb3J5UHJlc3N1cmUoKSkKQEAgLTUxLDE3ICs1MCwyNCBAQCBW
TUVudHJ5U2NvcGU6OlZNRW50cnlTY29wZShWTSYgdm0sIEpTR2xvCiAgICAgICAgIC8vIG9ic2Vy
dmUgdGltZSB4b25lIGNoYW5nZXMuCiAgICAgICAgIHZtLnJlc2V0RGF0ZUNhY2hlKCk7CiAgICAg
fQotICAgIC8vIENsZWFyIHRoZSBleGNlcHRpb24gc3RhY2sgYmV0d2VlbiBlbnRyaWVzCi0gICAg
dm0uY2xlYXJFeGNlcHRpb25TdGFjaygpOwogCi0gICAgdm9pZCogbGltaXQgPSBtX3N0YWNrLnJl
Y3Vyc2lvbkxpbWl0KHJlcXVpcmVkQ2FwYWNpdHkoKSk7Ci0gICAgdm0uc2V0U3RhY2tMaW1pdChs
aW1pdCk7CisgICAgaWYgKCF2bS5zdGFja1BvaW50ZXJBdFZNRW50cnkpIHsKKyAgICAgICAgdm0u
c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gdGhpczsKKyAgICAgICAgbV9zYXZlZFJlc2VydmVkWm9u
ZVNpemUgPSB2bS51cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUoT3B0aW9uczo6
cmVzZXJ2ZWRab25lU2l6ZSgpKTsKKyAgICB9CisKKyAgICAvLyBDbGVhciB0aGUgY2FwdHVyZWQg
ZXhjZXB0aW9uIHN0YWNrIGJldHdlZW4gZW50cmllcworICAgIHZtLmNsZWFyRXhjZXB0aW9uU3Rh
Y2soKTsKIH0KIAogVk1FbnRyeVNjb3BlOjp+Vk1FbnRyeVNjb3BlKCkKIHsKLSAgICBtX3ZtLmVu
dHJ5U2NvcGUgPSBtX3ByZXY7Ci0gICAgbV92bS5zZXRTdGFja0xpbWl0KG1fcHJldlN0YWNrTGlt
aXQpOworICAgIGlmIChtX3ZtLmVudHJ5U2NvcGUgPT0gdGhpcykKKyAgICAgICAgbV92bS5lbnRy
eVNjb3BlID0gbnVsbHB0cjsKKyAgICBpZiAobV92bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPT0g
dGhpcykgeworICAgICAgICBtX3ZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG51bGxwdHI7Cisg
ICAgICAgIG1fdm0udXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKG1fc2F2ZWRS
ZXNlcnZlZFpvbmVTaXplKTsKKyAgICB9CiAKICAgICBpZiAobV9yZWNvbXBpbGF0aW9uTmVlZGVk
KSB7CiAgICAgICAgIGlmIChtX3ZtLmVudHJ5U2NvcGUpCkBAIC03MywyMyArNzksNCBAQCBWTUVu
dHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUoKQogICAgIH0KIH0KIAotc2l6ZV90IFZNRW50cnlTY29w
ZTo6cmVxdWlyZWRDYXBhY2l0eSgpIGNvbnN0Ci17Ci0gICAgSW50ZXJwcmV0ZXIqIGludGVycHJl
dGVyID0gbV92bS5pbnRlcnByZXRlcjsKLQotICAgIC8vIFdlIHJlcXVpcmUgYSBzbWFsbGVyIHN0
YWNrIGJ1ZGdldCBmb3IgdGhlIGVycm9yIHN0YWNrLiBUaGlzIGlzIHRvIGFsbG93Ci0gICAgLy8g
c29tZSBtaW5pbWFsIEpTIGV4ZWN1dGlvbiB0byBwcm9jZWVkIGFuZCBkbyB0aGUgd29yayBvZiB0
aHJvd2luZyBhIHN0YWNrCi0gICAgLy8gb3ZlcmZsb3cgZXJyb3IgaWYgbmVlZGVkLiBJbiBjb250
cmFzdCwgYXJiaXRyYXJ5IEpTIGNvZGUgd2lsbCByZXF1aXJlIHRoZQotICAgIC8vIG1vcmUgZ2Vu
ZXJvdXMgc3RhY2sgYnVkZ2V0IGluIG9yZGVyIHRvIHByb2NlZWQuCi0gICAgLy8KLSAgICAvLyBU
aGVzZSBzaXplcyB3ZXJlIGRlcml2ZWQgZnJvbSB0aGUgc3RhY2sgdXNhZ2Ugb2YgYSBudW1iZXIg
b2Ygc2l0ZXMgd2hlbgotICAgIC8vIGxheW91dCBvY2N1cnMgd2hlbiB3ZSd2ZSBhbHJlYWR5IGNv
bnN1bWVkIG1vc3Qgb2YgdGhlIEMgc3RhY2suCi0gICAgY29uc3Qgc2l6ZV90IHJlcXVpcmVkU3Rh
Y2sgPSAxMjggKiBLQjsKLSAgICBjb25zdCBzaXplX3QgZXJyb3JNb2RlUmVxdWlyZWRTdGFjayA9
IDY0ICogS0I7Ci0KLSAgICBzaXplX3QgcmVxdWlyZWRDYXBhY2l0eSA9IGludGVycHJldGVyLT5p
c0luRXJyb3JIYW5kbGluZ01vZGUoKSA/IGVycm9yTW9kZVJlcXVpcmVkU3RhY2sgOiByZXF1aXJl
ZFN0YWNrOwotICAgIFJFTEVBU0VfQVNTRVJUKG1fc3RhY2suc2l6ZSgpID49IHJlcXVpcmVkQ2Fw
YWNpdHkpOwotICAgIHJldHVybiByZXF1aXJlZENhcGFjaXR5OwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29w
ZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TUVudHJ5U2NvcGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsMTYgKzQ1LDEwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFJlY29tcGlsYXRpb25OZWVkZWQoYm9vbCByZWNvbXBpbGVOZWVkZWQpIHsgbV9y
ZWNvbXBpbGF0aW9uTmVlZGVkID0gcmVjb21waWxlTmVlZGVkOyB9CiAKIHByaXZhdGU6Ci0gICAg
c2l6ZV90IHJlcXVpcmVkQ2FwYWNpdHkoKSBjb25zdDsKLQogICAgIFZNJiBtX3ZtOwogICAgIFN0
YWNrU3RhdHM6OkNoZWNrUG9pbnQgbV9zdGFja0NoZWNrUG9pbnQ7Ci0gICAgU3RhY2tCb3VuZHMg
bV9zdGFjazsKICAgICBKU0dsb2JhbE9iamVjdCogbV9nbG9iYWxPYmplY3Q7Ci0KLSAgICAvLyBt
X3ByZXYgYW5kIG1fcHJldlN0YWNrTGltaXQgbWF5IGJlbG9uZyB0byBhIGRpZmZlcmVudCB0aHJl
YWQncyBzdGFjay4KLSAgICBWTUVudHJ5U2NvcGUqIG1fcHJldjsKLSAgICB2b2lkKiBtX3ByZXZT
dGFja0xpbWl0OworICAgIHNpemVfdCBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZTsKICAgICBib29s
IG1fcmVjb21waWxhdGlvbk5lZWRlZDsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvYWRkLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWNvbnN0YW50LW92
ZXJmbG93LXJlY292ZXJ5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9hZGQtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKGEpIHsKKyAgICByZXR1cm4gYS5m
ICsgMjAwMDAwMDAwMDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MX0pOworICAgIGlmIChy
ZXN1bHQgIT0gMjAwMDAwMDAwMSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKHtmOjIwMDAwMDAwMDB9KTsKK2lmIChy
ZXN1bHQgIT0gNDAwMDAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1
Mi1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1jb25zdGFudC1vdmVyZmxvdy1yZWNv
dmVyeS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvYWRkLWludDUyLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgcmV0dXJuIGEgKiAyMDk3
MTQ0ICsgMTA3Mzc0NTkyMDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oMTA3MzczNjM4Myk7Cisg
ICAgaWYgKHJlc3VsdCAhPSAyMjUxNzgwODg2OTM2MDcyKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oMTA3Mzc0NTkx
OSk7CitpZiAocmVzdWx0ICE9IDIyNTE4MDA4ODUzMDEyNTYpCisgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9hZGQtaW50NTItbGFyZ2UtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTIt
bGFyZ2UtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1sYXJnZS1jb25zdGFudC1v
dmVyZmxvdy1yZWNvdmVyeS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5j
dGlvbiBmb28oYSkgeworICAgIHJldHVybiBhICogMjA5NzE0NCArIDEwMDAwMDAwMDAwOworfQor
Citub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7Cisg
ICAgdmFyIHJlc3VsdCA9IGZvbygxMDczNzQxMTUxKTsKKyAgICBpZiAocmVzdWx0ICE9IDIyNTE3
OTk4MTIzNzI3NDQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKK30KKwordmFyIHJlc3VsdCA9IGZvbygxMDczNzQxMTUyKTsKK2lmIChyZXN1bHQgIT0gMjI1
MTc5OTgxNDQ2OTg4OCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1vdmVyZmxvdy1y
ZWNvdmVyeS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2FkZC1vdmVyZmxvdy1yZWNvdmVyeS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLW92ZXJmbG93LXJlY292ZXJ5LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgcmV0dXJu
IGEuZiArIGIuZjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MX0sIHtmOjJ9KTsKKyAgICBp
ZiAocmVzdWx0ICE9IDMpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAwMDAwMDAw
MH0pOworaWYgKHJlc3VsdCAhPSA0MDAwMDAwMDAwKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJl
c3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvYWRkLXNtYWxsLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLXNtYWxsLWNvbnN0YW50LW92
ZXJmbG93LXJlY292ZXJ5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9hZGQtc21hbGwtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKGEpIHsKKyAgICByZXR1
cm4gYS5mICsgMTAwMDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MX0pOworICAgIGlmIChy
ZXN1bHQgIT0gMTAwMSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVz
dWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKHtmOjIxNDc0ODMxNDh9KTsKK2lmIChyZXN1bHQg
IT0gMjE0NzQ4NDE0OCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FycmF5LXB1c2guanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJheS1w
dXNoLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9hcnJheS1wdXNoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9u
IGZvbygpIHsKKyAgICB2YXIgYXJyYXkgPSBbXTsKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCA0MjsgKytpKQorICAgICAgICByZXN1bHQucHVzaChhcnJheS5w
dXNoKDcgLSBpKSk7CisgICAgcmV0dXJuIFthcnJheSwgcmVzdWx0XTsKK30KKworbm9JbmxpbmUo
Zm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1
bHQgPSBmb28oKTsKKyAgICBpZiAocmVzdWx0WzBdLnRvU3RyaW5nKCkgIT0gIjcsNiw1LDQsMywy
LDEsMCwtMSwtMiwtMywtNCwtNSwtNiwtNywtOCwtOSwtMTAsLTExLC0xMiwtMTMsLTE0LC0xNSwt
MTYsLTE3LC0xOCwtMTksLTIwLC0yMSwtMjIsLTIzLC0yNCwtMjUsLTI2LC0yNywtMjgsLTI5LC0z
MCwtMzEsLTMyLC0zMywtMzQiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBhcnJheTogIiAr
IHJlc3VsdFswXTsKKyAgICBpZiAocmVzdWx0WzFdLnRvU3RyaW5nKCkgIT0gIjEsMiwzLDQsNSw2
LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2
LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyIikKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgYXJyYXk6ICIgKyByZXN1bHRbMV07Cit9CisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZW1wdHktZnVuY3Rpb24uanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9lbXB0eS1mdW5jdGlv
bi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZW1wdHktZnVuY3Rpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rp
b24gZm9vKCkgeyB9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKCk7CisgICAgaWYgKHJlc3VsdCAhPT0g
dm9pZCAwKQorICAgICAgICB0aHJvdyAiWW91IGJyb2tlIEpTQyBzbyBoYXJkIHRoYXQgZXZlbiB0
aGUgZW1wdHkgZnVuY3Rpb24gZG9lc24ndCB3b3JrOiAiICsgcmVzdWx0OworfQorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50MzItdG8tZG91
YmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZXhpdC1hZnRlci1pbnQzMi10by1kb3VibGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50MzItdG8tZG91YmxlLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyh4LCBvKSB7CisgICAg
cmV0dXJuIG8uZiArIHg7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDQyLjUsIHtmOjV9KTsKKyAg
ICBpZiAocmVzdWx0ICE9IDQ3LjUpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbygiNDIiLCB7Zjo1fSk7CitpZiAocmVz
dWx0ICE9ICI1NDIiKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQ1
Mi10by1kb3VibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLWRvdWJsZS5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQ1Mi10by1kb3Vi
bGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gZm9vKGEsIGIs
IGMpIHsKKyAgICByZXR1cm4gYS5mICsgYi5mICsgYy5mOworfQorCitub0lubGluZShmb28pOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZv
byh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAwMDAwMDAwMH0sIHtmOjAuNX0pOworICAgIGlmIChyZXN1
bHQgIT0gNDAwMDAwMDAwMC41KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oe2Y6MjAwMDAwMDAwMH0sIHtmOjIwMDAw
MDAwMDB9LCB7ZjoiNDIifSk7CitpZiAocmVzdWx0ICE9ICI0MDAwMDAwMDAwNDIiKQorICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1p
bnQ1Mi10by12YWx1ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQ1Mi10by12YWx1ZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiBmb28oYSwgYiwgYykgeworICAgIGMuZi5mID0gYS5m
ICsgYi5mOworfQorCitub0lubGluZShmb28pOworCit2YXIgY291bnRlciA9IDA7CitmdW5jdGlv
biBtYWtlV2VpcmRPYmplY3QoKSB7CisgICAgdmFyIHJlc3VsdCA9IHt9OworICAgIHJlc3VsdFsi
YmxhaCIgKyAoY291bnRlcisrKV0gPSA0MjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIG8gPSBtYWtlV2VpcmRPYmpl
Y3QoKTsKKyAgICBmb28oe2Y6MjAwMDAwMDAwMH0sIHtmOjIwMDAwMDAwMDB9LCB7ZjpvfSk7Cisg
ICAgaWYgKG8uZiAhPSA0MDAwMDAwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciB0aGluZ3k7CitOdW1iZXIucHJvdG90eXBlLl9fZGVm
aW5lU2V0dGVyX18oImYiLCBmdW5jdGlvbih2YWx1ZSkgeyB0aGluZ3kgPSB2YWx1ZTsgfSk7Citm
b28oe2Y6MjAwMDAwMDAwMH0sIHtmOjIwMDAwMDAwMDB9LCB7Zjo0Mn0pOworaWYgKHRoaW5neSAh
PSA0MDAwMDAwMDAwKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHRoaW5neTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1sbHZt
LWZvbGRzLWxhcmdlLWludC1jb25zdGFudC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItbGx2bS1mb2xkcy1sYXJnZS1pbnQtY29u
c3RhbnQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2V4aXQtYWZ0ZXItbGx2bS1mb2xkcy1sYXJnZS1pbnQtY29uc3RhbnQuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rpb24gZm9vKG8sIGlvKSB7CisgICAgdmFyIGkg
PSBpby5mOworICAgIGlmIChpICE9IDkyMTYwKQorICAgICAgICBvLmcgPSA0MjsKKyAgICByZXR1
cm4gby5mLmYgKyBpOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7Zjp7Zjo0Mn19LCB7Zjo5MjE2
MH0pOworICAgIGlmIChyZXN1bHQgIT0gOTIyMDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyh7Zjp7ZzoyMCwgZjoy
MX19LCB7Zjo5MjE2MH0pOworaWYgKHJlc3VsdCAhPSA5MjE4MSkKKyAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2V4aXQtZnJvbS1mdGwtd2l0aC1hcml0eS1jaGVjay1mYWlsLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1mcm9tLWZ0bC13
aXRoLWFyaXR5LWNoZWNrLWZhaWwuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtZnJvbS1mdGwtd2l0aC1hcml0eS1jaGVjay1mYWlsLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIGZvbyhvLCBhLCBiLCBj
LCBkLCBlLCBmLCBnLCBoLCBpLCBqKSB7CisgICAgcmV0dXJuIG8uZjsKK30KKworZnVuY3Rpb24g
YmFyKG8pIHsKKyAgICByZXR1cm4gZm9vKG8pOworfQorCitub0lubGluZShmb28pOworbm9Jbmxp
bmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICBiYXIoe2Y6
NDJ9KTsKKwordmFyIHJlc3VsdCA9IGJhcih7ZzoyNCwgZjo0M30pOworaWYgKHJlc3VsdCAhPSA0
MykKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoY29zLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoY29zLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwt
YXJpdGhjb3MuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gZm9v
KHgpIHsKKyAgICByZXR1cm4gTWF0aC5jb3MoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3Zh
ciBqID0gMDsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgaiA9IGZvbyhp
KTsKKworaWYgKC0wLjUwOTg3NTM3MjQxNzkwMDkgIT0gail7CisgICAgdGhyb3cgIkVycm9yIgor
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhzaW4u
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwt
YXJpdGhzaW4uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2Z0bC1hcml0aHNpbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitm
dW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBNYXRoLnNpbih4KTsKK30KKworbm9JbmxpbmUo
Zm9vKTsKKwordmFyIGogPSAwOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAg
ICBqID0gZm9vKGkpOworCitpZiAoMC44NjAyNDgyODA3ODk3NDIgIT0gail7CisgICAgdGhyb3cg
IkVycm9yIgorfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwt
YXJpdGhzcXJ0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvZnRsLWFyaXRoc3FydC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc3FydC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEzIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBNYXRoLnNxcnQoeCk7Cit9
CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciBqID0gMDsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpCisgICAgaiA9IGZvbyhpKTsKKworaWYgKCAzMTYuMjI2MTg0ODc0MDU1ICE9IGop
eworICAgIHRocm93ICJFcnJvciIKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZnRsLXB1dGJ5aWQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWQuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMyBAQAorCitPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lU2V0dGVyX18oInIi
LCBmdW5jdGlvbih2YWwpeyBvID0gdmFsIH0pCisKK2Z1bmN0aW9uIGZvbyh4KXsKKyAgICB2YXIg
biA9IHsgfQorICAgIG4uciA9IHg7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgZm9vKGkpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlkZGlyZWN0LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWRkaXJlY3QuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1w
dXRieWlkZGlyZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9u
IGZvbyh4KXsKKyAgICByZXR1cm4geyAwIDogMSAsIGEgOiB4IH0KK30KKworbm9JbmxpbmUoZm9v
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICBvID0gZm9vKGkpOwor
CitpZiAoby5hICE9IDk5OTk5IHx8IG9bMF0gIT0gMSkKKyAgICB0aHJvdyAiRXJyb3IiCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZy
b20tZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS1nZXR0ZXIt
dGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tZ2V0dGVyLXRocm91Z2gt
b3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorZnVuY3Rp
b24gZm9vKG8pIHsKKyAgICByZXR1cm4gby5mICsgMTsKK30KKworbm9JbmxpbmUoZm9vKTsKKwor
dmFyIHNob3VsZFRocm93ID0gZmFsc2U7CisKK2Z1bmN0aW9uIG1ha2VXaXRoR2V0dGVyKCkgewor
ICAgIHZhciBvID0ge307CisgICAgby5fX2RlZmluZUdldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7
CisgICAgICAgIGlmIChzaG91bGRUaHJvdykKKyAgICAgICAgICAgIHRocm93ICJoZWxsbyI7Cisg
ICAgICAgIHJldHVybiA0MjsKKyAgICB9KTsKKyAgICByZXR1cm4gbzsKK30KKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MjN9KTsK
KyAgICBpZiAocmVzdWx0ICE9IDI0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gZm9vKG1ha2VXaXRoR2V0dGVyKCkpOworICAgIGlm
IChyZXN1bHQgIT0gNDMpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKK30KKwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBzaG91bGRUaHJvdyA9IHRydWU7
CisgICAgZm9vKG1ha2VXaXRoR2V0dGVyKCkpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93
ID0gZTsKK30KKworaWYgKGRpZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBk
aWRuJ3QgdGhyb3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9t
LXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUtdGhhdC1kb2VzLW5vdC1l
eGl0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
Z2V0LWJ5LWlkLXRocm93LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQt
Y29kZS10aGF0LWRvZXMtbm90LWV4aXQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0
dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUtdGhhdC1kb2VzLW5vdC1leGl0LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIG8u
ZjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gbWFrZVdpdGhHZXR0ZXIoKSB7Cisg
ICAgdmFyIG8gPSB7fTsKKyAgICBvLl9fZGVmaW5lR2V0dGVyX18oImYiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgdGhyb3cgImhlbGxvIjsKKyAgICB9KTsKKyAgICByZXR1cm4gbzsKK30KKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6
MjN9KTsKKyAgICBpZiAocmVzdWx0ICE9IDIzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gZm9vKHtnOjEyLCBmOjEzfSk7CisgICAg
aWYgKHJlc3VsdCAhPSAxMykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7ZzoxMiwgaDoxMywgZjoxNH0pOworICAgIGlmIChy
ZXN1bHQgIT0gMTQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKK30KKwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBmb28obWFrZVdpdGhHZXR0ZXIoKSk7
Cit9IGNhdGNoIChlKSB7CisgICAgZGlkVGhyb3cgPSBlOworfQorCitpZiAoZGlkVGhyb3cgIT0g
ImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBl
eGNlcHRpb246ICIgKyBkaWRUaHJvdzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1v
cHRpbWl6ZWQtY29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gt
b3B0aW1pemVkLWNvZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91
Z2gtb3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorZnVu
Y3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gby5mICsgMTsKK30KKworbm9JbmxpbmUoZm9vKTsK
KworZnVuY3Rpb24gbWFrZVdpdGhHZXR0ZXIoKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBvLl9f
ZGVmaW5lR2V0dGVyX18oImYiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhyb3cgImhlbGxvIjsK
KyAgICB9KTsKKyAgICByZXR1cm4gbzsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7
ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MjN9KTsKKyAgICBpZiAocmVzdWx0ICE9
IDI0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAg
cmVzdWx0ID0gZm9vKHtnOjEyLCBmOjEzfSk7CisgICAgaWYgKHJlc3VsdCAhPSAxNCkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZv
byh7ZzoxMiwgaDoxMywgZjoxNH0pOworICAgIGlmIChyZXN1bHQgIT0gMTUpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIGRpZFRocm93Owor
dHJ5IHsKKyAgICBmb28obWFrZVdpdGhHZXR0ZXIoKSk7Cit9IGNhdGNoIChlKSB7CisgICAgZGlk
VGhyb3cgPSBlOworfQorCitpZiAoZGlkVGhyb3cgIT0gImhlbGxvIikKKyAgICB0aHJvdyAiRXJy
b3I6IGRpZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaWMtdGhyb3ctdGhyb3Vn
aC1vcHRpbWl6ZWQtY29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2ljLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ljLXRocm93LXRocm91
Z2gtb3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOSBAQAorZnVu
Y3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gby5mICsgMTsKK30KKworTnVtYmVyLnByb3RvdHlw
ZS5mID0gNDI7CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDIzKTsKKyAgICBpZiAocmVzdWx0ICE9IDQz
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVz
dWx0ID0gZm9vKHtmOjI1fSk7CisgICAgaWYgKHJlc3VsdCAhPSAyNikKKyAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7ZzoxMiwg
ZjoxM30pOworICAgIGlmIChyZXN1bHQgIT0gMTQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBmb28o
dm9pZCAwKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmICghZGlk
VGhyb3cgfHwgZGlkVGhyb3cudG9TdHJpbmcoKS5pbmRleE9mKCJUeXBlRXJyb3I6IikgIT0gMCkK
KyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246
ICIgKyBkaWRUaHJvdzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
aW5saW5lLWNhbGwtdmFyYXJncy1hbmQtY2FsbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3MtYW5kLWNhbGwuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGlu
ZS1jYWxsLXZhcmFyZ3MtYW5kLWNhbGwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNSBA
QAorZnVuY3Rpb24gZm9vKGEsIGIpIHsKKyAgICByZXR1cm4gYmFyKGEsIGIpOworfQorCitmdW5j
dGlvbiBiYXIoYSwgYikgeworICAgIHZhciB4ID0gYmF6LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7
CisgICAgdmFyIHkgPSBiYXooYSwgYikKKyAgICByZXR1cm4geCArIHkgKiAzOworfQorCitmdW5j
dGlvbiBiYXooYSwgYikgeworICAgIHJldHVybiBhICsgYiAqIDI7Cit9CisKK25vSW5saW5lKGZv
byk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0
ID0gZm9vKDcsIDExKTsKKyAgICBpZiAocmVzdWx0ICE9IDExNikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKDUsIDIx
NDc0ODM2NDYpOworaWYgKHJlc3VsdCAhPSAxNzE3OTg2OTE4OCkKKyAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12
YXJhcmdzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKK2Z1bmN0aW9uIGZvbyhh
LCBiKSB7CisgICAgcmV0dXJuIGJhcihhLCBiKTsKK30KKworZnVuY3Rpb24gYmFyKGEsIGIpIHsK
KyAgICByZXR1cm4gYmF6LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7Cit9CisKK2Z1bmN0aW9uIGJh
eihhLCBiKSB7CisgICAgcmV0dXJuIGEgKyBiICogMjsKK30KKworbm9JbmxpbmUoZm9vKTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28o
NywgMTEpOworICAgIGlmIChyZXN1bHQgIT0gMjkpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyg1LCAyMTQ3NDgzNjQ2
KTsKK2lmIChyZXN1bHQgIT0gNDI5NDk2NzI5NykKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2lubGluZS1jbG9zdXJlLWNhbGwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAg
cmV0dXJuIGZ1bmN0aW9uKHkpIHsgcmV0dXJuIHggKyB5OyB9Cit9CisKK2Z1bmN0aW9uIGJhcihh
LCBiKSB7CisgICAgcmV0dXJuIGZvbyhhKShiKTsKK30KKworbm9JbmxpbmUoZm9vKTsKK25vSW5s
aW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIg
cmVzdWx0ID0gYmFyKGksIGkgKyAxKTsKKyAgICBpZiAocmVzdWx0ICE9IGkgKiAyICsgMSkKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGZvciAiICsgaSArICI6ICIgKyByZXN1bHQ7
Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1i
eS12YWwtaW4tYW5kLW91dC1vZi1ib3VuZHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWFuZC1vdXQtb2YtYm91
bmRzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9pbnQxNi1wdXQtYnktdmFsLWluLWFuZC1vdXQtb2YtYm91bmRzLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgYVs0Ml0gPSA5NTAxMDsK
K30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChsZW5ndGgsIGV4cGVjdGVkKSB7
CisgICAgdmFyIGEgPSBuZXcgSW50MTZBcnJheShsZW5ndGgpOworICAgIGZvbyhhKTsKKyAgICB2
YXIgcmVzdWx0ID0gYVs0Ml07CisgICAgaWYgKHJlc3VsdCAhPSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgdmFsdWUgYXQgYVs0Ml06ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDEwLCB2b2lkIDApOworICAg
IHRlc3QoMTAwLCAyOTQ3NCk7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2ludDE2LXB1dC1ieS12YWwtaW4tYm91bmRzLXRoZW4tZXhpdC1vdXQtb2YtYm91bmRz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50
MTYtcHV0LWJ5LXZhbC1pbi1ib3VuZHMtdGhlbi1leGl0LW91dC1vZi1ib3VuZHMuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1i
eS12YWwtaW4tYm91bmRzLXRoZW4tZXhpdC1vdXQtb2YtYm91bmRzLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgYVs0Ml0gPSA5NTAxMDsK
K30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChsZW5ndGgsIGV4cGVjdGVkKSB7
CisgICAgdmFyIGEgPSBuZXcgSW50MTZBcnJheShsZW5ndGgpOworICAgIGZvbyhhKTsKKyAgICB2
YXIgcmVzdWx0ID0gYVs0Ml07CisgICAgaWYgKHJlc3VsdCAhPSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgdmFsdWUgYXQgYVs0Ml06ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgdGVzdCgxMDAsIDI5NDc0KTsKKwordGVz
dCgxMCwgdm9pZCAwKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9pbnQxNi1wdXQtYnktdmFsLW91dC1vZi1ib3VuZHMtYm91bmRzLXRoZW4tZG8taW4tYm91bmRz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50
MTYtcHV0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWJvdW5kcy10aGVuLWRvLWluLWJvdW5kcy5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYt
cHV0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWJvdW5kcy10aGVuLWRvLWluLWJvdW5kcy5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBmb28oYSkgeworICAgIGFbNDJd
ID0gOTUwMTA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3QobGVuZ3RoLCBl
eHBlY3RlZCkgeworICAgIHZhciBhID0gbmV3IEludDE2QXJyYXkobGVuZ3RoKTsKKyAgICBmb28o
YSk7CisgICAgdmFyIHJlc3VsdCA9IGFbNDJdOworICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWQp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHZhbHVlIGF0IGFbNDJdOiAiICsgcmVzdWx0Owor
fQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIHRlc3QoMTAsIHZvaWQg
MCk7CisKK3Rlc3QoMTAwLCAyOTQ3NCk7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvaW52YWxpZGF0aW9uLXBvaW50LmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW52YWxpZGF0aW9uLXBvaW50LmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnZhbGlkYXRpb24t
cG9pbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNCBAQAorZnVuY3Rpb24gZm9vKG8s
IHApIHsKKyAgICBwb3NzaWJseURvQmFkVGhpbmdzKHApOworICAgIHJldHVybiBvLmYoKTsKK30K
K25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIFRoaW5neSgpIHsgfQorVGhpbmd5LnByb3RvdHlw
ZS5mID0gZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfQorCitmdW5jdGlvbiBwb3NzaWJseURvQmFk
VGhpbmdzKHApIHsKKyAgICBpZiAocCkKKyAgICAgICAgVGhpbmd5LnByb3RvdHlwZS5mID0gZnVu
Y3Rpb24oKSB7IHJldHVybiAyNDsgfQorfQorbm9JbmxpbmUocG9zc2libHlEb0JhZFRoaW5ncyk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0g
Zm9vKG5ldyBUaGluZ3koKSwgZmFsc2UpOworICAgIGlmIChyZXN1bHQgIT0gNDIpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9
IGZvbyhuZXcgVGhpbmd5KCksIHRydWUpOworaWYgKHJlc3VsdCAhPSAyNCkKKyAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTIuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0yLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuICJo
ZWxsbyIgKyB4OworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygiIHdvcmxkIik7CisgICAgaWYgKHR5
cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IHR5cGU6ICIgKyByZXN1bHQ7CisgICAgfQor
ICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIHdvcmxkIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL21ha2Utcm9wZS0zLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTMuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0zLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuICJoZWxs
byIgKyB4ICsgIiEhIjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oIiB3b3JsZCIpOworICAgIGlm
ICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0OworICAg
IH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyB3b3JsZCEhIikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS1zdG9yYWdlLWFycmF5LXdpdGgtc2l6ZS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJh
eS1zdG9yYWdlLWFycmF5LXdpdGgtc2l6ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXN0b3JhZ2UtYXJyYXktd2l0aC1zaXpl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7Cisg
ICAgcmV0dXJuIG5ldyBBcnJheSh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24g
dGVzdChzaXplKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVzdWx0
Lmxlbmd0aCAhPSBzaXplKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7CisgICAgdmFyIHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVz
dWx0KQorICAgICAgICBzYXdUaGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9ICI0Mi41IjsKKyAgICBpZiAocmVzdWx0WzBdICE9ICI0Mi41IikKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKK30K
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMTAwMDAwMCk7
Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS13
aXRoLXNpemUtd2l0aC1iYWQtdGltZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS13aXRoLXNpemUtd2l0aC1iYWQtdGltZS5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFy
cmF5LXdpdGgtc2l6ZS13aXRoLWJhZC10aW1lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MzQgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIG5ldyBBcnJheSh4KTsKK30KKwor
bm9JbmxpbmUoZm9vKTsKKwordmFyIHBva2U7CitBcnJheS5wcm90b3R5cGUuX19kZWZpbmVTZXR0
ZXJfXygiMSIsIGZ1bmN0aW9uKCkgeworICAgIHBva2UgPSAicG9rZSI7Cit9KTsKKworZnVuY3Rp
b24gdGVzdChzaXplKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVz
dWx0Lmxlbmd0aCAhPSBzaXplKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7CisgICAgdmFyIHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4g
cmVzdWx0KSB7CisgICAgICAgIGlmIChzICE9ICIxIikKKyAgICAgICAgICAgIHNhd1RoaW5ncyA9
IHRydWU7CisgICAgfQorICAgIGlmIChzYXdUaGluZ3MpCisgICAgICAgIHRocm93ICJFcnJvcjog
YXJyYXkgaXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIHJlc3VsdFswXSA9ICI0Mi41
IjsKKyAgICBpZiAocmVzdWx0WzBdICE9ICI0Mi41IikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBh
cnJheSBpcyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICBwb2tlID0gbnVsbDsKKyAg
ICByZXN1bHRbMV0gPSA0MjsKKyAgICBpZiAocG9rZSAhPSAicG9rZSIpCisgICAgICAgIHRocm93
ICJFcnJvcjogc2V0dGVyIG5vdCBjYWxsZWQuIjsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7ICsraSkgeworICAgIHRlc3QoNDIpOworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9uZXctY29udGlndW91cy1hcnJheS13aXRoLXNpemUuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctY29udGlndW91
cy1hcnJheS13aXRoLXNpemUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL25ldy1jb250aWd1b3VzLWFycmF5LXdpdGgtc2l6ZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDMxIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBu
ZXcgQXJyYXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkg
eworICAgIHZhciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0g
c2l6ZSkgeworICAgICAgICBwcmludCgiR290IGEgd2VpcmQgbGVuZ3RoOiAiICsgcmVzdWx0Lmxl
bmd0aCk7CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAg
ICB9CisgICAgdmFyIHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0
KQorICAgICAgICBzYXdUaGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpIHsKKyAgICAg
ICAgcHJpbnQoIlNhdyB0aGluZ3MhIik7CisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMg
aW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIH0KKyAgICByZXN1bHRbMF0gPSAiNDIuNSI7
CisgICAgaWYgKHJlc3VsdFswXSAhPSAiNDIuNSIpIHsKKyAgICAgICAgcHJpbnQoIkRpZG4ndCBz
dG9yZSB3aGF0IEkgdGhvdWdodCBJIHN0b3JlZC4iKTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiBh
cnJheSBpcyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICB9Cit9CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3QoMSk7Cisg
ICAgdGVzdCg0Mik7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L25ldy1kb3VibGUtYXJyYXktd2l0aC1zaXplLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWRvdWJsZS1hcnJheS13aXRoLXNpemUuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1kb3Vi
bGUtYXJyYXktd2l0aC1zaXplLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUgQEAKK2Z1
bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIG5ldyBBcnJheSh4KTsKK30KKworbm9JbmxpbmUo
Zm9vKTsKKworZnVuY3Rpb24gdGVzdChzaXplKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhzaXpl
KTsKKyAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSBzaXplKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgdmFyIHNhd1RoaW5ncyA9IGZhbHNlOworICAg
IGZvciAodmFyIHMgaW4gcmVzdWx0KQorICAgICAgICBzYXdUaGluZ3MgPSB0cnVlOworICAgIGlm
IChzYXdUaGluZ3MpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gYmFkIHN0YXRl
OiAiICsgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDQyLjU7CisgICAgaWYgKHJlc3VsdFswXSAh
PSA0Mi41KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIHdpZXJkIHN0YXRlOiAi
ICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAg
dGVzdCgwKTsKKyAgICB0ZXN0KDEpOworICAgIHRlc3QoNDIpOworfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctaW50MzItYXJyYXktd2l0aC1zaXplLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWludDMy
LWFycmF5LXdpdGgtc2l6ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvbmV3LWludDMyLWFycmF5LXdpdGgtc2l6ZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJy
YXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAg
IHZhciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBz
YXdUaGluZ3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3
VGhpbmdzID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSA0MjsK
KyAgICBpZiAocmVzdWx0WzBdICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlz
IGluIHdpZXJkIHN0YXRlOiAiICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKSB7CisgICAgdGVzdCgwKTsKKyAgICB0ZXN0KDEpOworICAgIHRlc3QoNDIpOwor
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdW5kZWNpZGVk
LWFycmF5LXdpdGgtc2l6ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL25ldy11bmRlY2lkZWQtYXJyYXktd2l0aC1zaXplLmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdW5kZWNpZGVkLWFy
cmF5LXdpdGgtc2l6ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACitmdW5jdGlv
biBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJyYXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7
CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAgIHZhciByZXN1bHQgPSBmb28oc2l6ZSk7Cisg
ICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBzYXdUaGluZ3MgPSBmYWxzZTsKKyAgICBmb3Ig
KHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3VGhpbmdzID0gdHJ1ZTsKKyAgICBpZiAoc2F3
VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiAr
IHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRl
c3QoMCk7CisgICAgdGVzdCgxKTsKKyAgICB0ZXN0KDQyKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLXRocm93LXRocm91Z2gtb3B0aW1pemVk
LWNvZGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9wdXQtYnktaWQtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLXRocm93LXRo
cm91Z2gtb3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMyBAQAor
ZnVuY3Rpb24gZm9vKG8pIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgby5mID0gNDI7Cit9CisK
K25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAg
ICB2YXIgbyA9IHt9OworICAgIGZvbyhvKTsKKyAgICBpZiAoby5mICE9IDQyKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBvLmY7CisgICAgbyA9IHtmOjIzfTsKKyAgICBm
b28obyk7CisgICAgaWYgKG8uZiAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0OiAiICsgby5mOworICAgIG8gPSB7ZzoxMn07CisgICAgZm9vKG8pOworICAgIGlmIChvLmYg
IT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIG8uZjsKK30KKwor
dmFyIGRpZFRocm93OwordHJ5IHsKKyAgICB2YXIgbyA9IHt9OworICAgIE9iamVjdC5mcmVlemUo
byk7CisgICAgZm9vKG8pOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30KKwor
aWYgKCFkaWRUaHJvdyB8fCBkaWRUaHJvdy50b1N0cmluZygpLmluZGV4T2YoIlR5cGVFcnJvcjoi
KSAhPSAwKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4
Y2VwdGlvbjogIiArIGRpZFRocm93OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9yZWN1cnNlLWluZmluaXRlbHktb24tZ2V0dGVyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVjdXJzZS1pbmZpbml0ZWx5LW9uLWdl
dHRlci5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvcmVjdXJzZS1pbmZpbml0ZWx5LW9uLWdldHRlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDE5IEBACitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKSB7CisgICAgdmFyIG8gPSB7
fTsKKyAgICBvLl9fZGVmaW5lR2V0dGVyX18oImYiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0
dXJuIG8uZjsKKyAgICB9KTsKKyAgICB2YXIgZGlkVGhyb3c7CisgICAgdmFyIHJlc3VsdDsKKyAg
ICByZXN1bHQgPSAibm90IHNldCI7CisgICAgdHJ5IHsKKyAgICAgICAgcmVzdWx0ID0gby5mOwor
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZGlkVGhyb3cgPSBlOworICAgIH0KKyAgICBpZiAo
cmVzdWx0ICE9ICJub3Qgc2V0IikKKyAgICAgICAgdGhyb3cgIkRpZCBzZXQgcmVzdWx0OiAiICsg
cmVzdWx0OworICAgIGlmICghZGlkVGhyb3cgfHwgZGlkVGhyb3cudG9TdHJpbmcoKS5pbmRleE9m
KCJSYW5nZUVycm9yIikgIT0gMCkKKyAgICAgICAgdGhyb3cgIkJhZCBleGNlcHRpb246ICIgKyBk
aWRUaHJvdzsKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9y
ZXBlYXRlZC1hcml0eS1jaGVjay1mYWlsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVwZWF0ZWQtYXJpdHktY2hlY2stZmFpbC5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVwZWF0ZWQtYXJp
dHktY2hlY2stZmFpbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9u
IGJhcihhLGIsYyxkLGUsZixnLGgsaSxqLGspIHsKK30KKworbm9JbmxpbmUoYmFyKTsKKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgKytpKQorICAgIGJhcigpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3J1bnRpbWUtdGhyb3ctdGhyb3VnaC1vcHRp
bWl6ZWQtY29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3J1bnRpbWUtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcnVudGltZS10aHJvdy10
aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAK
K2Z1bmN0aW9uIGZvbyhhLCBzKSB7CisgICAgcmV0dXJuIGFbc10gKyAxOworfQorCit2YXIgc2hv
dWxkVGhyb3cgPSBmYWxzZTsKK2Z1bmN0aW9uIGJhcigpIHsKKyAgICBpZiAoc2hvdWxkVGhyb3cp
CisgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgcmV0dXJuIDQyOworfQorCit2YXIgYSA9IHt9
OworYS5fX2RlZmluZUdldHRlcl9fKCJiYXIiLCBiYXIpOworCitub0lubGluZShmb28pOworbm9J
bmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZh
ciByZXN1bHQgPSBmb28oYSwgImJhciIpOworICAgIGlmIChyZXN1bHQgIT0gNDMpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIGRpZFRocm93
OwordHJ5IHsKKyAgICBzaG91bGRUaHJvdyA9IHRydWU7CisgICAgZm9vKGEsICJiYXIiKTsKK30g
Y2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAhPSAiaGVs
bG8iKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4Y2Vw
dGlvbjogIiArIGRpZFRocm93OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJp
YW50LWNhbGwtaW5saW5pbmctZXhhbXBsZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWNhbGwtaW5saW5pbmct
ZXhhbXBsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACitmdW5jdGlvbiBmb28o
YmF6KSB7CisgICAgcmV0dXJuIGJhcihiYXopOworfQorCitmdW5jdGlvbiBmdXp6KGJheikgewor
ICAgIHJldHVybiBiYXIoYmF6KTsKK30KKworZnVuY3Rpb24gYmFyKGJheikgeworICAgIHJldHVy
biBiYXooKTsKK30KKworZnVuY3Rpb24gYmF6MSgpIHsKKyAgICByZXR1cm4gNDI7Cit9CisKK2Z1
bmN0aW9uIGJhejIoKSB7CisgICAgcmV0dXJuIDI0OworfQorCitub0lubGluZShmb28pOworbm9J
bmxpbmUoZnV6eik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2
YXIgcmVzdWx0ID0gZm9vKGJhejEpOworICAgIGlmIChyZXN1bHQgIT0gNDIpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgcmVzdWx0ID0gZnV6
eihiYXoyKTsKKyAgICBpZiAocmVzdWx0ICE9IDI0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWdldC1ieS1pZC1pbmxpbmluZy1leGFtcGxl
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2lt
cGxlLXBvbHl2YXJpYW50LWdldC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlh
bnQtZ2V0LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwyNCBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gYmFyKG8pOworfQorCitmdW5j
dGlvbiBmdXp6KG8pIHsKKyAgICByZXR1cm4gYmFyKG8pOworfQorCitmdW5jdGlvbiBiYXIobykg
eworICAgIHJldHVybiBvLmY7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShmdXp6KTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBm
b28oe2Y6NDJ9KTsKKyAgICBpZiAocmVzdWx0ICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgdmFyIHJlc3VsdCA9IGZ1enooe2c6MjMsIGY6
MjR9KTsKKyAgICBpZiAocmVzdWx0ICE9IDI0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LXB1dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxl
LXBvbHl2YXJpYW50LXB1dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQt
cHV0LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
NiBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICBiYXIobyk7Cit9CisKK2Z1bmN0aW9uIGZ1enoo
bykgeworICAgIGJhcihvKTsKK30KKworZnVuY3Rpb24gYmFyKG8pIHsKKyAgICBvLmYgPSA0MjsK
K30KKworbm9JbmxpbmUoZm9vKTsKK25vSW5saW5lKGZ1enopOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBmb28obyk7CisgICAgaWYg
KG8uZiAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOwor
ICAgIG8gPSB7ZjoyM307CisgICAgdmFyIHJlc3VsdCA9IGZ1enoobyk7CisgICAgaWYgKG8uZiAh
PSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOworfQorCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0
aW1pemVkLWNvZGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy90aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90aHJvdy10aHJvdWdoLW9wdGltaXpl
ZC1jb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzAgQEAKK2Z1bmN0aW9uIGZvbyhm
KSB7CisgICAgcmV0dXJuIGYoMSkgKyAxOworfQorCit2YXIgc2hvdWxkVGhyb3cgPSBmYWxzZTsK
K2Z1bmN0aW9uIGJhcih4KSB7CisgICAgaWYgKHNob3VsZFRocm93KQorICAgICAgICB0aHJvdyAi
aGVsbG8iOworICAgIHJldHVybiA0MiAtIHg7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGlu
ZShiYXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJl
c3VsdCA9IGZvbyhiYXIpOworICAgIGlmIChyZXN1bHQgIT0gNDIpCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIGRpZFRocm93OwordHJ5IHsK
KyAgICBzaG91bGRUaHJvdyA9IHRydWU7CisgICAgZm9vKGJhcik7Cit9IGNhdGNoIChlKSB7Cisg
ICAgZGlkVGhyb3cgPSBlOworfQorCitpZiAoZGlkVGhyb3cgIT0gImhlbGxvIikKKyAgICB0aHJv
dyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRU
aHJvdzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5n
LW9uLW9iamVjdC1vci1zdHJpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LW9yLXN0cmluZy5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9u
LW9iamVjdC1vci1zdHJpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorZnVu
Y3Rpb24gRm9vKCkgeyB9CisKK0Zvby5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsg
cmV0dXJuICJoZWxsbyIgfTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gU3RyaW5n
KG8pOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgRm9vKCkpOworICAgIGlmICh0eXBlb2Yg
cmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAg
IHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJl
c3VsdCAhPSAiaGVsbG8iKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7CisgICAgCisgICAgcmVzdWx0ID0gZm9vKCJ3b3JsZCIpOworICAgIGlmICh0eXBlb2Yg
cmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAg
IHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJl
c3VsdCAhPSAid29ybGQiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0
cmluZy1vbi1vYmplY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIEZvbygpIHsgfQorCitGb28ucHJv
dG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHJldHVybiAiaGVsbG8iIH07CisKK2Z1bmN0
aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBm
b28obmV3IEZvbygpKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAg
ICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24n
dCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9iamVjdC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmlu
Zy1vbi1zdHJpbmctb2JqZWN0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9iamVjdC5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBTdHJp
bmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBTdHJpbmcoImhlbGxvIikpOworICAg
IGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3Vs
dCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9
CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8iKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC10aGVuLW9iamVjdC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0
cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC10aGVuLW9iamVjdC5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0
cmluZy1vci1zdHJpbmctb2JqZWN0LXRoZW4tb2JqZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMzUgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIFN0cmluZyhvKTsKK30K
Kworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgewor
ICAgIHZhciByZXN1bHQgPSBmb28obmV3IFN0cmluZygiaGVsbG8iKSk7CisgICAgaWYgKHR5cGVv
ZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAo
cmVzdWx0ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKKyAgICAKKyAgICByZXN1bHQgPSBmb28oIndvcmxkIik7CisgICAgaWYgKHR5cGVv
ZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAo
cmVzdWx0ICE9ICJ3b3JsZCIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKK30KKworZnVuY3Rpb24gRm9vKCkgeyB9CisKK0Zvby5wcm90b3R5cGUudG9TdHJp
bmcgPSBmdW5jdGlvbigpIHsgcmV0dXJuICJoZWxsbyIgfTsKKwordmFyIHJlc3VsdCA9IGZvbyhu
ZXcgRm9vKCkpOworaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICBkZXNjcmli
ZShyZXN1bHQpOworICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKK30K
K2lmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0
cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5n
LW9iamVjdC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjMgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIFN0cmlu
ZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7
ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28obmV3IFN0cmluZygiaGVsbG8iKSk7CisgICAg
aWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0
KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0K
KyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJl
c3VsdDogIiArIHJlc3VsdDsKKyAgICAKKyAgICByZXN1bHQgPSBmb28oIndvcmxkIik7CisgICAg
aWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0
KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0K
KyAgICBpZiAocmVzdWx0ICE9ICJ3b3JsZCIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJl
c3VsdDogIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLW9yLXN0cmluZy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS1vci1zdHJp
bmcuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3RvLXN0cmluZy1vbi12YWx1ZS1vci1zdHJpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwyMyBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gU3RyaW5nKG8pOworfQorCitu
b0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAg
dmFyIHJlc3VsdCA9IGZvbyg0Mik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIp
IHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1
bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICI0MiIpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICAKKyAgICByZXN1
bHQgPSBmb28oIndvcmxkIik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsK
KyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQg
aXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJ3b3JsZCIpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9u
LXZhbHVlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy90by1zdHJpbmctb24tdmFsdWUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBA
QAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGlu
ZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJl
c3VsdCA9IGZvbyg0Mik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAg
ICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNu
J3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICI0MiIpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9XVEYv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE2IEBACisyMDE0LTAxLTI3ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5jaAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzYzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvQmFnVG9IYXNoTWFwLmg6Cisg
ICAgICAgIChXVEY6OnRvSGFzaE1hcCk6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAg
ICAgICogd3RmL1N0YWNrQm91bmRzLmg6CisgICAgICAgIChXVEY6OlN0YWNrQm91bmRzOjpyZWN1
cnNpb25MaW1pdCk6CisKIDIwMTQtMDEtMjcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWJDb3JlOiBFbmFibGUgLVdpbXBsaWNpdC1mYWxsdGhyb3Vn
aCBhbmQgYWRkIEZBTExUSFJPVUdIIGFubm90YXRpb24gd2hlcmUgbmVlZGVkCkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9CYWdUb0hhc2hNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9C
YWdUb0hhc2hNYXAuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL1dURi93dGYvQmFnVG9I
YXNoTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIFdURiB7
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEVsZW1lbnRUeXBlLCB0eXBlbmFtZSBLZXlUeXBlLCB0eXBl
bmFtZSBLZXlHZXR0ZXJGdW5jdG9yPgotdm9pZCB0b0hhc2hNYXAoQmFnPEVsZW1lbnRUeXBlPiYg
YmFnLCBLZXlHZXR0ZXJGdW5jdG9yJiBnZXRLZXksIEhhc2hNYXA8S2V5VHlwZSwgRWxlbWVudFR5
cGUqPiYgcmVzdWx0KQordGVtcGxhdGU8dHlwZW5hbWUgRWxlbWVudFR5cGUsIHR5cGVuYW1lIEtl
eVR5cGUsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleUdldHRlckZ1bmN0b3I+Cit2b2lk
IHRvSGFzaE1hcChCYWc8RWxlbWVudFR5cGU+JiBiYWcsIEtleUdldHRlckZ1bmN0b3ImIGdldEtl
eSwgSGFzaE1hcDxLZXlUeXBlLCBFbGVtZW50VHlwZSosIEhhc2hBcmc+JiByZXN1bHQpCiB7CiAg
ICAgZm9yICh0eXBlbmFtZSBCYWc8RWxlbWVudFR5cGU+OjppdGVyYXRvciBpdGVyID0gYmFnLmJl
Z2luKCk7ICEhaXRlcjsgKytpdGVyKSB7CiAgICAgICAgIEVsZW1lbnRUeXBlKiBlbGVtZW50ID0g
Kml0ZXI7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2MCwxMiArNjYwLDEyIEBACiAjZGVm
aW5lIEVOQUJMRV9KSVQgMAogI2VuZGlmCiAKLS8qIFRoZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZh
dWx0IG9uIGFsbCB4ODYsIHg4Ni02NCwgQVJNICYgTUlQUyBwbGF0Zm9ybXMgZXhjZXB0IFdpbjY0
LiAqLworLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4NiwgeDg2LTY0
LCBBUk0gJiBNSVBTIHBsYXRmb3JtcyBleGNlcHQgV2luZG93cy4gKi8KICNpZiAhZGVmaW5lZChF
TkFCTEVfSklUKSBcCiAgICAgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk0p
IHx8IENQVShBUk02NCkgfHwgQ1BVKE1JUFMpKSBcCiAgICAgJiYgKE9TKERBUldJTikgfHwgIUNP
TVBJTEVSKEdDQykgfHwgR0NDX1ZFUlNJT05fQVRfTEVBU1QoNCwgMSwgMCkpIFwKICAgICAmJiAh
T1MoV0lOQ0UpIFwKLSAgICAmJiAhKE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQpKQorICAgICYm
ICFPUyhXSU5ET1dTKQogI2RlZmluZSBFTkFCTEVfSklUIDEKICNlbmRpZgogCkBAIC04MzUsMTQg
KzgzNSw2IEBACiAjZW5kaWYKICNlbmRpZgogCi0vKiBGSVhNRTogV2UgY3VycmVudGx5IHVuY29u
ZGl0aW9uYWxseSB1c2Ugc3BlYXJhdGUgc3RhY2tzLiBXaGVuIHdlIHN3aXRjaCB0byB1c2luZyB0
aGUKLSAgIEMgc3RhY2sgZm9yIEpTIGZyYW1lcywgd2UnbGwgbmVlZCB0byBtYWtlIHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9uYWwgb24gRU5BQkxFKExMSU5UX0NMT09QKQotICAgb25seS4KLSovCi0j
aWYgRU5BQkxFKExMSU5UX0NMT09QKSB8fCAxCi0jZGVmaW5lIFdURl9VU0VfU0VQQVJBVEVfQ19B
TkRfSlNfU1RBQ0sgMQotI2VuZGlmCi0KIC8qIFBpY2sgd2hpY2ggYWxsb2NhdG9yIHRvIHVzZTsg
d2Ugb25seSBuZWVkIGFuIGV4ZWN1dGFibGUgYWxsb2NhdG9yIGlmIHRoZSBhc3NlbWJsZXIgaXMg
Y29tcGlsZWQgaW4uCiAgICBPbiB4ODYtNjQgd2UgdXNlIGEgc2luZ2xlIGZpeGVkIG1tYXAsIG9u
IG90aGVyIHBsYXRmb3JtcyB3ZSBtbWFwIG9uIGRlbWFuZC4gKi8KICNpZiBFTkFCTEUoQVNTRU1C
TEVSKQpJbmRleDogU291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
V1RGL3d0Zi9TdGFja0JvdW5kcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw4IEBACiAj
aWZuZGVmIFN0YWNrQm91bmRzX2gKICNkZWZpbmUgU3RhY2tCb3VuZHNfaAogCisjaW5jbHVkZSA8
YWxnb3JpdGhtPgorCiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgU3RhY2tCb3VuZHMgewpAQCAt
NjcsNiArNjksMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y2hhcio+
KG1fYm91bmQpIC0gbWluQXZhaWxhYmxlRGVsdGE7CiAgICAgfQogCisgICAgdm9pZCogcmVjdXJz
aW9uTGltaXQoc2l6ZV90IGhvc3Rab25lU2l6ZSwgdm9pZCogZGVzaXJlZExpbWl0KSBjb25zdAor
ICAgIHsKKyAgICAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOworICAgICAgICBpZiAoaXNHcm93aW5n
RG93bndhcmQoKSkgeworICAgICAgICAgICAgY2hhciogZW5kT2ZTdGFja1dpdGhIb3N0Wm9uZSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fYm91bmQpICsgaG9zdFpvbmVTaXplOworICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bWF4KGRlc2lyZWRMaW1pdCwgcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oZW5kT2ZTdGFja1dpdGhIb3N0Wm9uZSkpOworICAgICAgICB9CisgICAgICAgIGNoYXIqIGVu
ZE9mU3RhY2tXaXRoSG9zdFpvbmUgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2JvdW5kKSAt
IGhvc3Rab25lU2l6ZTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWluKGRlc2lyZWRMaW1pdCwgcmVp
bnRlcnByZXRfY2FzdDx2b2lkKj4oZW5kT2ZTdGFja1dpdGhIb3N0Wm9uZSkpOworICAgIH0KKwog
ICAgIGJvb2wgaXNHcm93aW5nRG93bndhcmQoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJU
KG1fb3JpZ2luICYmIG1fYm91bmQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTQtMDEtMjcgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4K
KworICAgICAgICBNZXJnZSB0aGUganNDU3RhY2sgYnJhbmNoCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3NjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAg
ICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVz
Lmg6CisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9p
bnQuaDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvU2NyaXB0RGVidWdM
aXN0ZW5lci5oOgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvRXJyb3JIYW5k
bGluZ1Njb3BlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3lhcnIvUmVn
dWxhckV4cHJlc3Npb24uaDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cmVwb3J0RXhjZXB0aW9uKToKKwogMjAxNC0wMS0yNyAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgaU9TIGJ1aWxkIGZpeC4gRkFM
TFRIUk9VR0hzIGZvciBpT1MuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0
aWVzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFk
ZXJzL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIsMyArMiw3IEBACiAjZGVmaW5lIFdlYkNvcmVfRldEX0NvbnRlbnRTZWFyY2hVdGlsaXRpZXNf
aAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuaD4KICNl
bmRpZgorI2lmbmRlZiBXZWJDb3JlX0ZXRF9Db250ZW50U2VhcmNoVXRpbGl0aWVzX2gKKyNkZWZp
bmUgV2ViQ29yZV9GV0RfQ29udGVudFNlYXJjaFV0aWxpdGllc19oCisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvQ29udGVudFNlYXJjaFV0aWxpdGllcy5oPgorI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvU2NyaXB0QnJlYWtwb2ludC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9T
Y3JpcHRCcmVha3BvaW50LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHRCcmVha3BvaW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIsMyArMiw3IEBACiAjZGVmaW5lIFdlYkNvcmVfRldEX1NjcmlwdEJyZWFrcG9pbnRf
aAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEJyZWFrcG9pbnQuaD4KICNlbmRpZgor
I2lmbmRlZiBXZWJDb3JlX0ZXRF9TY3JpcHRCcmVha3BvaW50X2gKKyNkZWZpbmUgV2ViQ29yZV9G
V0RfU2NyaXB0QnJlYWtwb2ludF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0QnJl
YWtwb2ludC5oPgorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9pbnNwZWN0b3IvU2NyaXB0RGVidWdMaXN0ZW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmgJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2lu
c3BlY3Rvci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsMyArMiw3
IEBACiAjZGVmaW5lIFdlYkNvcmVfRldEX1NjcmlwdERlYnVnTGlzdGVuZXJfaAogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1NjcmlwdERlYnVnTGlzdGVuZXIuaD4KICNlbmRpZgorI2lmbmRlZiBX
ZWJDb3JlX0ZXRF9TY3JpcHREZWJ1Z0xpc3RlbmVyX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfU2Ny
aXB0RGVidWdMaXN0ZW5lcl9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0RGVidWdM
aXN0ZW5lci5oPgorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0Vycm9y
SGFuZGxpbmdTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBX
ZWJDb3JlX0ZXRF9FcnJvckhhbmRsaW5nU2NvcGVfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9FcnJv
ckhhbmRsaW5nU2NvcGVfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Vycm9ySGFuZGxpbmdT
Y29wZS5oPgorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy95
YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5oCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy95YXJyL1JlZ3VsYXJFeHByZXNz
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsMyArMiw3IEBACiAjZGVmaW5lIFdlYkNvcmVfRldE
X1JlZ3VsYXJFeHByZXNzaW9uX2gKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZWd1bGFyRXhw
cmVzc2lvbi5oPgogI2VuZGlmCisjaWZuZGVmIFdlYkNvcmVfRldEX1JlZ3VsYXJFeHByZXNzaW9u
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfUmVndWxhckV4cHJlc3Npb25faAorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1JlZ3VsYXJFeHByZXNzaW9uLmg+CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkocmV2aXNpb24gMTYy
OTE0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMTg1MDIsNiArMTg1MDIsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxDb25zdHJ1Y3REYXRhLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXERhdGVJ
bnN0YW5jZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZVxFcnJvci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2Fy
ZGluZ0hlYWRlcnNccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcRXJyb3JQcm90b3R5cGUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRp
bWVcRXhjZXB0aW9uSGVscGVycy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZVxFeGVjdXRhYmxlLmgiIC8+CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJz
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTEyNDkyLDYgKzEyNDkyLDkg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVc
RXJyb3IuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiPgorICAgICAgPEZpbHRlcj5G
b3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9yUHJv
dG90eXBlLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcg
QEAKICNpbmNsdWRlIDxpbnRlcnByZXRlci9JbnRlcnByZXRlci5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvRGF0ZUluc3RhbmNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUg
PHJ1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FeGNlcHRp
b25IZWxwZXJzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KQEAgLTE1NCw3ICsxNTUsNyBAQCB2b2lkIHJlcG9ydEV4Y2VwdGlv
bihFeGVjU3RhdGUqIGV4ZWMsIEpTCiAgICAgaWYgKGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2Vw
dGlvbihleGNlcHRpb24pKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRlcnByZXRlcjo6RXJy
b3JIYW5kbGluZ01vZGUgbW9kZShleGVjKTsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JT
Y29wZShleGVjLT52bSgpKTsKIAogICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
ayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbiwgU2Ny
aXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKSk7CiAgICAgZXhlYy0+Y2xl
YXJFeGNlcHRpb24oKTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MjkxNCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE0LTAxLTI3ICBNYXJrIEhhaG5lbmJlcmcgIDxt
aGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5j
aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzYz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL2Rpc3BsYXktcHJvZmlsZXItb3V0cHV0OgorICAgICAgICAqIFNjcmlwdHMvcnVuLWpzYy1z
dHJlc3MtdGVzdHM6CisKIDIwMTQtMDEtMjcgIERhdmlkIEZhcmxlciAgPGRmYXJsZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIGlPUyBEdW1wUmVuZGVyVHJlZS5hcHAgZGllcyBsb2FkaW5nIGZvbnRz
CkluZGV4OiBUb29scy9TY3JpcHRzL2Rpc3BsYXktcHJvZmlsZXItb3V0cHV0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxlci1vdXRwdXQJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFRvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxlci1vdXRwdXQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBydWJ5CiAKLSMgQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMK
ICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDM3LDcgKzQzNywxMSBAQCAkY29tcGlsYXRp
b25zID0gJGpzb25bImNvbXBpbGF0aW9ucyJdLm1hCiAgICAgfCBzdWJKc29uIHwKICAgICBDb21w
aWxhdGlvbi5uZXcoc3ViSnNvbikKIH0KLSRlbmdpbmVzID0gWyJCYXNlbGluZSIsICJERkciXQor
JGVuZ2luZXMgPSBbIkJhc2VsaW5lIiwgIkRGRyIsICJGVEwiLCAiRlRMRm9yT1NSRW50cnkiXQor
CitkZWYgaXNPcHRpbWl6aW5nKGVuZ2luZSkKKyAgICBlbmdpbmUgPT0gIkRGRyIgb3IgZW5naW5l
ID09ICJGVEwiIG9yIGVuZ2luZSA9PSAiRlRMRm9yT1NSRW50cnkiCitlbmQKIAogJHNob3dDb3Vu
dHMgPSB0cnVlCiAkc29ydE1vZGUgPSA6dGltZQpAQCAtNTcyLDkgKzU3Niw5IEBAIGRlZiBzdW1t
YXJ5KG1vZGUpCiAgICAgaWYgbW9kZSA9PSA6ZnVsbAogICAgICAgICBwcmludCgiICIgKyAoIiAi
ICogaW5zdHJ1Y3Rpb25Db3VudENvbHMpKQogICAgIGVuZAotICAgIHByaW50KCIgIiArIGNlbnRl
cigiQmFzZS9ERkciLCBjb3VudENvbHMpKQorICAgIHByaW50KCIgIiArIGNlbnRlcigiQmFzZS9E
RkcvRlRML0ZUTE9TUiIsIGNvdW50Q29scykpCiAgICAgaWYgbW9kZSA9PSA6ZnVsbAotICAgICAg
ICBwcmludCgiICIgKyBjZW50ZXIoIkJhc2UvREZHIiwgbWFjaGluZUNvdW50Q29scykpCisgICAg
ICAgIHByaW50KCIgIiArIGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIG1hY2hpbmVDb3Vu
dENvbHMpKQogICAgICAgICBwcmludCgiICIgKyAoIiAiICogY29tcGlsYXRpb25zQ29scykpCiAg
ICAgICAgIHByaW50KCIgIiArIGNlbnRlcigiU3JjL1RvdGFsIiwgaW5saW5lc0NvbHMpKQogICAg
ICAgICBwcmludCgiICIgKyAoIiAiICogZXhpdENvdW50Q29scykpCkBAIC02NzQsNyArNjc4LDcg
QEAgZGVmIGV4ZWN1dGVDb21tYW5kKCpjb21tYW5kQXJyYXkpCiAgICAgICAgICAgICBpZiAkc2hv
d0NvdW50cwogICAgICAgICAgICAgICAgIHB1dHMoY2VudGVyKCJTb3VyY2UgQ291bnRzIiwgY291
bnRDb2xzKSArICIgIiArIGNlbnRlcigiTWFjaGluZSBDb3VudHMiLCBtYWNoaW5lQ29scykgKwog
ICAgICAgICAgICAgICAgICAgICAgKCIgIiAqIHBhZCkgKyBjZW50ZXIoIkJ5dGVjb2RlIGZvciAj
e2J5dGVjb2Rlc30iLCBzY3JlZW5XaWR0aCAtIHBhZCAtIGNvdW50Q29scyAtIDEgLSBtYWNoaW5l
Q29scykpCi0gICAgICAgICAgICAgICAgcHV0cyhjZW50ZXIoIkJhc2UvREZHIiwgY291bnRDb2xz
KSArICIgIiArIGNlbnRlcigiQmFzZS9ERkciLCBjb3VudENvbHMpKQorICAgICAgICAgICAgICAg
IHB1dHMoY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgY291bnRDb2xzKSArICIgIiArIGNl
bnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIGNvdW50Q29scykpCiAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgcHV0cygiQnl0ZWNvZGUgZm9yICN7Ynl0ZWNvZGVzfToiKQogICAg
ICAgICAgICAgZW5kCkBAIC04OTQsNyArODk4LDcgQEAgZGVmIGV4ZWN1dGVDb21tYW5kKCpjb21t
YW5kQXJyYXkpCiAgICAgICAgICAgICBwdXRzKCJDb21waWxhdGlvbiAje2NvbXBpbGF0aW9ufToi
KQogICAgICAgICAgICAgaWYgJHNob3dDb3VudHMKICAgICAgICAgICAgICAgICBwdXRzKGNlbnRl
cigiQWN0dWFsIENvdW50cyIsIGFjdHVhbENvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIlNvdXJj
ZSBDb3VudHMiLCBzb3VyY2VDb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJEaXNhc3NlbWJseSBp
biAje2NvbXBpbGF0aW9uLmVuZ2luZX0iLCBzY3JlZW5XaWR0aCAtIDEgLSBzb3VyY2VDb3VudENv
bHMgLSAxIC0gYWN0dWFsQ291bnRDb2xzKSkKLSAgICAgICAgICAgICAgICBwdXRzKCgiICIgKiBh
Y3R1YWxDb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RGRyIsIHNvdXJjZUNvdW50Q29s
cykpCisgICAgICAgICAgICAgICAgcHV0cygoIiAiICogYWN0dWFsQ291bnRDb2xzKSArICIgIiAr
IGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIHNvdXJjZUNvdW50Q29scykpCiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcHV0cygiRGlzYXNzZW1ibHkgaW4gI3tjb21waWxh
dGlvbi5lbmdpbmV9IikKICAgICAgICAgICAgIGVuZApAQCAtOTA1LDExICs5MDksMTUgQEAgZGVm
IGV4ZWN1dGVDb21tYW5kKCpjb21tYW5kQXJyYXkpCiAgICAgICAgICAgICAgICAgfCBkZXNjcmlw
dGlvbiB8CiAgICAgICAgICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgYSBiZXR0ZXIg
d2F5IG9mIGRldGVjdGluZyB0aGluZ3MgbGlrZSBDb3VudEV4ZWN1dGlvbiBub2RlcwogICAgICAg
ICAgICAgICAgICMgYW5kIHNsb3cgcGF0aCBlbnRyaWVzIGluIHRoZSBiYXNlbGluZSBKSVQuCi0g
ICAgICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24uZGVzY3JpcHRpb24gPX4gL0NvdW50RXhlY3V0
aW9uXCgvIGFuZCBjb21waWxhdGlvbi5lbmdpbmUgPT0gIkRGRyIKKyAgICAgICAgICAgICAgICBp
ZiBkZXNjcmlwdGlvbi5kZXNjcmlwdGlvbiA9fiAvQ291bnRFeGVjdXRpb25cKC8gYW5kIGlzT3B0
aW1pemluZyhjb21waWxhdGlvbi5lbmdpbmUpCiAgICAgICAgICAgICAgICAgICAgIHNob3VsZFNo
b3cgPSBmYWxzZQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgc2hv
dWxkU2hvdyA9IHRydWUKICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBpZiBu
b3QgZGVzY3JpcHRpb24ub3JpZ2luLmVtcHR5PyBhbmQgbm90IGRlc2NyaXB0aW9uLm9yaWdpblst
MV0KKyAgICAgICAgICAgICAgICAgICAgcCBkZXNjcmlwdGlvbi5vcmlnaW4KKyAgICAgICAgICAg
ICAgICAgICAgcCBkZXNjcmlwdGlvbi5kZXNjcmlwdGlvbgorICAgICAgICAgICAgICAgIGVuZAog
ICAgICAgICAgICAgICAgIGlmIGRlc2NyaXB0aW9uLm9yaWdpbi5lbXB0eT8gb3Igbm90IGRlc2Ny
aXB0aW9uLm9yaWdpblstMV0uc2hvdWxkSGF2ZUNvdW50cz8gb3IgKGNvbXBpbGF0aW9uLmVuZ2lu
ZSA9PSAiQmFzZWxpbmUiIGFuZCBkZXNjcmlwdGlvbi5kZXNjcmlwdGlvbiA9fiAvXlxzKlwoU1wp
LykKICAgICAgICAgICAgICAgICAgICAgYWN0dWFsQ291bnRzU3RyaW5nID0gIiIKICAgICAgICAg
ICAgICAgICAgICAgc291cmNlQ291bnRzU3RyaW5nID0gIiIKSW5kZXg6IFRvb2xzL1NjcmlwdHMv
cnVuLWpzYy1zdHJlc3MtdGVzdHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9ydW4tanNj
LXN0cmVzcy10ZXN0cwkocmV2aXNpb24gMTYyOTE0KQorKysgVG9vbHMvU2NyaXB0cy9ydW4tanNj
LXN0cmVzcy10ZXN0cwkod29ya2luZyBjb3B5KQpAQCAtMTgwLDYgKzE4MCw4IEBAICRudW1GYWls
dXJlcyA9IDAKIAogRUFHRVJfT1BUSU9OUyA9IFsiLS10aHJlc2hvbGRGb3JKSVRBZnRlcldhcm1V
cD0xMCIsICItLXRocmVzaG9sZEZvckpJVFNvb249MTAiLCAiLS10aHJlc2hvbGRGb3JPcHRpbWl6
ZUFmdGVyV2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXA9
MjAiLCAiLS10aHJlc2hvbGRGb3JPcHRpbWl6ZVNvb249MjAiLCAiLS10aHJlc2hvbGRGb3JGVExP
cHRpbWl6ZUFmdGVyV2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9yRlRMT3B0aW1pemVTb29uPTIw
Il0KIAorRlRMX09QVElPTlMgPSBbIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiLCAiLS1lbmFi
bGVFeHBlcmltZW50YWxGVExDb3ZlcmFnZT10cnVlIl0KKwogJHJ1bmxpc3QgPSBbXQogCiBkZWYg
ZnJhbWV3b3JrRnJvbUpTQ1BhdGgoanNjUGF0aCkKQEAgLTUzMiwxOSArNTM0LDE5IEBAIGRlZiBy
dW5Ob0NKSVRWYWxpZGF0ZVBoYXNlcwogZW5kCiAKIGRlZiBydW5EZWZhdWx0RlRMCi0gICAgcnVu
KCJkZWZhdWx0LWZ0bCIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIikKKyAgICBydW4oImRl
ZmF1bHQtZnRsIiwgKkZUTF9PUFRJT05TKQogZW5kCiAKIGRlZiBydW5GVExOb0NKSVQKLSAgICBy
dW4oImZ0bC1uby1jaml0IiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXVzZUV4
cGVyaW1lbnRhbEZUTD10cnVlIikKKyAgICBydW4oImZ0bC1uby1jaml0IiwgIi0tZW5hYmxlQ29u
Y3VycmVudEpJVD1mYWxzZSIsICpGVExfT1BUSU9OUykKIGVuZAogCiBkZWYgcnVuRlRMTm9DSklU
VmFsaWRhdGUKLSAgICBydW4oImZ0bC1uby1jaml0LXZhbGlkYXRlIiwgIi0tZW5hYmxlQ29uY3Vy
cmVudEpJVD1mYWxzZSIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwgIi0tdmFsaWRhdGVH
cmFwaD10cnVlIikKKyAgICBydW4oImZ0bC1uby1jaml0LXZhbGlkYXRlIiwgIi0tZW5hYmxlQ29u
Y3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICpGVExfT1BUSU9OUykK
IGVuZAogCiBkZWYgcnVuRlRMTm9DSklUT1NSVmFsaWRhdGlvbgotICAgIHJ1bigiZnRsLW5vLWNq
aXQtb3NyLXZhbGlkYXRpb24iLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdXNl
RXhwZXJpbWVudGFsRlRMPXRydWUiLCAiLS12YWxpZGF0ZUZUTE9TUkV4aXRMaXZlbmVzcz10cnVl
IikKKyAgICBydW4oImZ0bC1uby1jaml0LW9zci12YWxpZGF0aW9uIiwgIi0tZW5hYmxlQ29uY3Vy
cmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlRlRMT1NSRXhpdExpdmVuZXNzPXRydWUiLCAqRlRM
X09QVElPTlMpCiBlbmQKIAogZGVmIHJ1bkRGR0VhZ2VyCkBAIC01NTYsMTUgKzU1OCwxNSBAQCBk
ZWYgcnVuREZHRWFnZXJOb0NKSVRWYWxpZGF0ZQogZW5kCiAKIGRlZiBydW5GVExFYWdlcgotICAg
IHJ1bigiZnRsLWVhZ2VyIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiLCAqRUFHRVJfT1BU
SU9OUykKKyAgICBydW4oImZ0bC1lYWdlciIsICooRlRMX09QVElPTlMgKyBFQUdFUl9PUFRJT05T
KSkKIGVuZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRWYWxpZGF0ZQotICAgIHJ1bigiZnRsLWVh
Z2VyLW5vLWNqaXQiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIsICItLWVuYWJsZUNvbmN1
cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUdyYXBoPXRydWUiLCAqRUFHRVJfT1BUSU9OUykK
KyAgICBydW4oImZ0bC1lYWdlci1uby1jaml0IiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxz
ZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBFQUdFUl9PUFRJT05T
KSkKIGVuZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRPU1JWYWxpZGF0aW9uCi0gICAgcnVuKCJm
dGwtZWFnZXItbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10
cnVlIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlRlRMT1NSRXhp
dExpdmVuZXNzPXRydWUiLCAqRUFHRVJfT1BUSU9OUykKKyAgICBydW4oImZ0bC1lYWdlci1uby1j
aml0LW9zci12YWxpZGF0aW9uIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZh
bGlkYXRlRlRMT1NSRXhpdExpdmVuZXNzPXRydWUiLCAqKEZUTF9PUFRJT05TICsgRUFHRVJfT1BU
SU9OUykpCiBlbmQKIAogZGVmIHJ1bkFsd2F5c1RyaWdnZXJDb3B5UGhhc2UKQEAgLTY0NiwxMyAr
NjQ4LDM0IEBAIGRlZiBydW5MYXlvdXRUZXN0REZHRWFnZXJOb0NKSVQKICAgICBydW5MYXlvdXRU
ZXN0KCJkZmctZWFnZXItbm8tY2ppdCIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAq
RUFHRVJfT1BUSU9OUykKIGVuZAogCi1kZWYgZGVmYXVsdFJ1bkxheW91dFRlc3QKK2RlZiBydW5M
YXlvdXRUZXN0RGVmYXVsdEZUTAorICAgIHJ1bkxheW91dFRlc3QoImZ0bCIsICItLXRlc3RUaGVG
VEw9dHJ1ZSIsICpGVExfT1BUSU9OUykKK2VuZAorCitkZWYgcnVuTGF5b3V0VGVzdEZUTE5vQ0pJ
VAorICAgIHJ1bkxheW91dFRlc3QoImZ0bC1uby1jaml0IiwgIi0tdGVzdFRoZUZUTD10cnVlIiwg
Ii0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICpGVExfT1BUSU9OUykKK2VuZAorCitkZWYg
cnVuTGF5b3V0VGVzdEZUTEVhZ2VyTm9DSklUCisgICAgcnVuTGF5b3V0VGVzdCgiZnRsLWVhZ2Vy
LW5vLWNqaXQiLCAiLS10ZXN0VGhlRlRMPXRydWUiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZh
bHNlIiwgKihGVExfT1BUSU9OUyArIEVBR0VSX09QVElPTlMpKQorZW5kCisKK2RlZiBub0ZUTFJ1
bkxheW91dFRlc3QKICAgICBydW5MYXlvdXRUZXN0RGVmYXVsdAogICAgIHJ1bkxheW91dFRlc3RO
b0xMSW50CiAgICAgcnVuTGF5b3V0VGVzdE5vQ0pJVAogICAgIHJ1bkxheW91dFRlc3RERkdFYWdl
ck5vQ0pJVAogZW5kCiAKK2RlZiBkZWZhdWx0UnVuTGF5b3V0VGVzdAorICAgIG5vRlRMUnVuTGF5
b3V0VGVzdAorICAgIGlmICRlbmFibGVGVEwKKyAgICAgICAgcnVuTGF5b3V0VGVzdERlZmF1bHRG
VEwKKyAgICAgICAgcnVuTGF5b3V0VGVzdEZUTE5vQ0pJVAorICAgICAgICBydW5MYXlvdXRUZXN0
RlRMRWFnZXJOb0NKSVQKKyAgICBlbmQKK2VuZAorCiBkZWYgcHJlcGFyZUV4dHJhUmVsYXRpdmVG
aWxlcyhleHRyYUZpbGVzLCBkZXN0aW5hdGlvbikKICAgICBEaXIuY2hkaXIoJG91dHB1dERpcikg
ewogICAgICAgICBleHRyYUZpbGVzLmVhY2ggewpAQCAtNzA2LDYgKzcyOSwxMCBAQCBkZWYgcnVu
TW96aWxsYVRlc3REZWZhdWx0KG1vZGUsICpleHRyYUZpCiAgICAgcnVuTW96aWxsYVRlc3Qobmls
LCBtb2RlLCBleHRyYUZpbGVzKQogZW5kCiAKK2RlZiBydW5Nb3ppbGxhVGVzdERlZmF1bHRGVEwo
bW9kZSwgKmV4dHJhRmlsZXMpCisgICAgcnVuTW96aWxsYVRlc3QoImZ0bCIsIG1vZGUsIGV4dHJh
RmlsZXMsICpGVExfT1BUSU9OUykKK2VuZAorCiBkZWYgcnVuTW96aWxsYVRlc3RMTEludChtb2Rl
LCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVzdCgibGxpbnQiLCBtb2RlLCBleHRyYUZp
bGVzLCAiLS11c2VKSVQ9ZmFsc2UiKQogZW5kCkBAIC03MTgsMTEgKzc0NSwxOSBAQCBkZWYgcnVu
TW96aWxsYVRlc3RERkdFYWdlck5vQ0pJVFZhbGlkYXRlCiAgICAgcnVuTW96aWxsYVRlc3QoImRm
Zy1lYWdlci1uby1jaml0LXZhbGlkYXRlLXBoYXNlcyIsIG1vZGUsIGV4dHJhRmlsZXMsICItLWVu
YWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUJ5dGVjb2RlPXRydWUiLCAiLS12
YWxpZGF0ZUdyYXBoQXRFYWNoUGhhc2U9dHJ1ZSIsICpFQUdFUl9PUFRJT05TKQogZW5kCiAKK2Rl
ZiBydW5Nb3ppbGxhVGVzdEZUTEVhZ2VyTm9DSklUVmFsaWRhdGVQaGFzZXMobW9kZSwgKmV4dHJh
RmlsZXMpCisgICAgcnVuTW96aWxsYVRlc3QoImZ0bC1lYWdlci1uby1jaml0LXZhbGlkYXRlLXBo
YXNlcyIsIG1vZGUsIGV4dHJhRmlsZXMsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAi
LS12YWxpZGF0ZUJ5dGVjb2RlPXRydWUiLCAiLS12YWxpZGF0ZUdyYXBoQXRFYWNoUGhhc2U9dHJ1
ZSIsICooRlRMX09QVElPTlMgKyBFQUdFUl9PUFRJT05TKSkKK2VuZAorCiBkZWYgZGVmYXVsdFJ1
bk1vemlsbGFUZXN0KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0RGVmYXVs
dChtb2RlLCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVzdExMSW50KG1vZGUsICpleHRy
YUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0QmFzZWxpbmVKSVQobW9kZSwgKmV4dHJhRmlsZXMp
CiAgICAgcnVuTW96aWxsYVRlc3RERkdFYWdlck5vQ0pJVFZhbGlkYXRlUGhhc2VzKG1vZGUsICpl
eHRyYUZpbGVzKQorICAgIGlmICRlbmFibGVGVEwKKyAgICAgICAgcnVuTW96aWxsYVRlc3REZWZh
dWx0RlRMKG1vZGUsICpleHRyYUZpbGVzKQorICAgICAgICBydW5Nb3ppbGxhVGVzdEZUTEVhZ2Vy
Tm9DSklUVmFsaWRhdGVQaGFzZXMobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgZW5kCiBlbmQKIAog
ZGVmIHNraXAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MjkxNCkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE0LTAxLTI3ICBNYXJrIEhh
aG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgdGhlIGpz
Q1N0YWNrIGJyYW5jaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI3NzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBqcy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvc3RlcGFub3ZfY29udGFpbmVyLmpzOgorICAgICAgICAqIGpz
L3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci5odG1sOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0
cy9kZmctYWRkLW5vdC1udW1iZXIuanM6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2xhcmdl
LWV4cHJlc3Npb25zLmpzOgorCiAyMDE0LTAxLTI3ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGNsZWFuIHVwIGluaXRpYWxpemF0aW9uIG9m
IG1hbmFnZXJzIGFuZCBvYnNlcnZlcnMgaW4gSW5zcGVjdG9yVGVzdApJbmRleDogTGF5b3V0VGVz
dHMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTYyOTE0
KQorKysgTGF5b3V0VGVzdHMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC01LDcgKzUsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBCiAKIFBBU1MgZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIs
IDEwMCkpIGlzIHJlcGVhdGVkU3RyaW5nKCJhIiwgMTAwKQogUEFTUyBldmFsKHJlcGVhdGVkRXhw
cmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMCkpIGlzIHJlcGVhdGVkU3RyaW5nKCJhIiwgMTAw
MCkKLVBBU1MgZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMDAwKSkg
aXMgcmVwZWF0ZWRTdHJpbmcoImEiLCAxMDAwMCkKK1BBU1MgZXZhbChyZXBlYXRlZEV4cHJlc3Np
b24oImxldHRlckEiLCAiKyIsIDEwMDAwKSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBPdXQgb2Yg
bWVtb3J5LgogUEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAw
MDAwKSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBPdXQgb2YgbWVtb3J5LgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBh
bm92X2NvbnRhaW5lci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zdGVwYW5vdl9jb250YWluZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjI5MTQp
CisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL3N0ZXBhbm92X2Nv
bnRhaW5lcgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRp
b24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdGVwYW5vdl9jb250YWluZXIuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5l
ci5odG1sCShyZXZpc2lvbiAxNjI5MTQpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBh
bm92X2NvbnRhaW5lci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAgQEAKLTwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RlcGFub3ZfY29udGFpbmVyLmpzCShyZXZpc2lv
biAxNjI5MTQpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdGVwYW5v
dl9jb250YWluZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNjQwNCArMCwwIEBACi0vL0Agc2xv
dyEKLS8vQCBydW5EZWZhdWx0Ci0vL0AgcnVuRGVmYXVsdEZUTCBpZiAkZW5hYmxlRlRMCi0KLS8v
IE5vdGU6IEZvciBtYXhpbXVtLXNwZWVkIGNvZGUsIHNlZSAiT3B0aW1pemluZyBDb2RlIiBvbiB0
aGUgRW1zY3JpcHRlbiB3aWtpLCBodHRwczovL2dpdGh1Yi5jb20va3JpcGtlbi9lbXNjcmlwdGVu
L3dpa2kvT3B0aW1pemluZy1Db2RlCi0vLyBOb3RlOiBTb21lIEVtc2NyaXB0ZW4gc2V0dGluZ3Mg
bWF5IGxpbWl0IHRoZSBzcGVlZCBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUuCi0vLyBUaGUgTW9kdWxl
IG9iamVjdDogT3VyIGludGVyZmFjZSB0byB0aGUgb3V0c2lkZSB3b3JsZC4gV2UgaW1wb3J0Ci0v
LyBhbmQgZXhwb3J0IHZhbHVlcyBvbiBpdCwgYW5kIGRvIHRoZSB3b3JrIHRvIGdldCB0aGF0IHRo
cm91Z2gKLS8vIGNsb3N1cmUgY29tcGlsZXIgaWYgbmVjZXNzYXJ5LiBUaGVyZSBhcmUgdmFyaW91
cyB3YXlzIE1vZHVsZSBjYW4gYmUgdXNlZDoKLS8vIDEuIE5vdCBkZWZpbmVkLiBXZSBjcmVhdGUg
aXQgaGVyZQotLy8gMi4gQSBmdW5jdGlvbiBwYXJhbWV0ZXIsIGZ1bmN0aW9uKE1vZHVsZSkgeyAu
LmdlbmVyYXRlZCBjb2RlLi4gfQotLy8gMy4gcHJlLXJ1biBhcHBlbmRlZCBpdCwgdmFyIE1vZHVs
ZSA9IHt9OyAuLmdlbmVyYXRlZCBjb2RlLi4KLS8vIDQuIEV4dGVybmFsIHNjcmlwdCB0YWcgZGVm
aW5lcyB2YXIgTW9kdWxlLgotLy8gV2UgbmVlZCB0byBkbyBhbiBldmFsIGluIG9yZGVyIHRvIGhh
bmRsZSB0aGUgY2xvc3VyZSBjb21waWxlcgotLy8gY2FzZSwgd2hlcmUgdGhpcyBjb2RlIGhlcmUg
aXMgbWluaWZpZWQgYnV0IE1vZHVsZSB3YXMgZGVmaW5lZAotLy8gZWxzZXdoZXJlIChlLmcuIGNh
c2UgNCBhYm92ZSkuIFdlIGFsc28gbmVlZCB0byBjaGVjayBpZiBNb2R1bGUKLS8vIGFscmVhZHkg
ZXhpc3RzIChlLmcuIGNhc2UgMyBhYm92ZSkuCi0vLyBOb3RlIHRoYXQgaWYgeW91IHdhbnQgdG8g
cnVuIGNsb3N1cmUsIGFuZCBhbHNvIHRvIHVzZSBNb2R1bGUKLS8vIGFmdGVyIHRoZSBnZW5lcmF0
ZWQgY29kZSwgeW91IHdpbGwgbmVlZCB0byBkZWZpbmUgICB2YXIgTW9kdWxlID0ge307Ci0vLyBi
ZWZvcmUgdGhlIGNvZGUuIFRoZW4gdGhhdCBvYmplY3Qgd2lsbCBiZSB1c2VkIGluIHRoZSBjb2Rl
LCBhbmQgeW91Ci0vLyBjYW4gY29udGludWUgdG8gdXNlIE1vZHVsZSBhZnRlcndhcmRzIGFzIHdl
bGwuCi12YXIgTW9kdWxlOwotaWYgKCFNb2R1bGUpIE1vZHVsZSA9IGV2YWwoJyhmdW5jdGlvbigp
IHsgdHJ5IHsgcmV0dXJuIE1vZHVsZSB8fCB7fSB9IGNhdGNoKGUpIHsgcmV0dXJuIHt9IH0gfSko
KScpOwotLy8gU29tZXRpbWVzIGFuIGV4aXN0aW5nIE1vZHVsZSBvYmplY3QgZXhpc3RzIHdpdGgg
cHJvcGVydGllcwotLy8gbWVhbnQgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IG1vZHVsZSBmdW5j
dGlvbmFsaXR5LiBIZXJlCi0vLyB3ZSBjb2xsZWN0IHRob3NlIHByb3BlcnRpZXMgYW5kIHJlYXBw
bHkgX2FmdGVyXyB3ZSBjb25maWd1cmUKLS8vIHRoZSBjdXJyZW50IGVudmlyb25tZW50J3MgZGVm
YXVsdHMgdG8gYXZvaWQgaGF2aW5nIHRvIGJlIHNvCi0vLyBkZWZlbnNpdmUgZHVyaW5nIGluaXRp
YWxpemF0aW9uLgotdmFyIG1vZHVsZU92ZXJyaWRlcyA9IHt9OwotZm9yICh2YXIga2V5IGluIE1v
ZHVsZSkgewotICBpZiAoTW9kdWxlLmhhc093blByb3BlcnR5KGtleSkpIHsKLSAgICBtb2R1bGVP
dmVycmlkZXNba2V5XSA9IE1vZHVsZVtrZXldOwotICB9Ci19Ci0vLyBUaGUgZW52aXJvbm1lbnQg
c2V0dXAgY29kZSBiZWxvdyBpcyBjdXN0b21pemVkIHRvIHVzZSBNb2R1bGUuCi0vLyAqKiogRW52
aXJvbm1lbnQgc2V0dXAgY29kZSAqKioKLXZhciBFTlZJUk9OTUVOVF9JU19OT0RFID0gdHlwZW9m
IHByb2Nlc3MgPT09ICdvYmplY3QnICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nOwot
dmFyIEVOVklST05NRU5UX0lTX1dFQiA9IHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnOwotdmFy
IEVOVklST05NRU5UX0lTX1dPUktFUiA9IHR5cGVvZiBpbXBvcnRTY3JpcHRzID09PSAnZnVuY3Rp
b24nOwotdmFyIEVOVklST05NRU5UX0lTX1NIRUxMID0gIUVOVklST05NRU5UX0lTX1dFQiAmJiAh
RU5WSVJPTk1FTlRfSVNfTk9ERSAmJiAhRU5WSVJPTk1FTlRfSVNfV09SS0VSOwotaWYgKEVOVklS
T05NRU5UX0lTX05PREUpIHsKLSAgLy8gRXhwb3NlIGZ1bmN0aW9uYWxpdHkgaW4gdGhlIHNhbWUg
c2ltcGxlIHdheSB0aGF0IHRoZSBzaGVsbHMgd29yawotICAvLyBOb3RlIHRoYXQgd2UgcG9sbHV0
ZSB0aGUgZ2xvYmFsIG5hbWVzcGFjZSBoZXJlLCBvdGhlcndpc2Ugd2UgYnJlYWsgaW4gbm9kZQot
ICBNb2R1bGVbJ3ByaW50J10gPSBmdW5jdGlvbih4KSB7Ci0gICAgcHJvY2Vzc1snc3Rkb3V0J10u
d3JpdGUoeCArICdcbicpOwotICB9OwotICBNb2R1bGVbJ3ByaW50RXJyJ10gPSBmdW5jdGlvbih4
KSB7Ci0gICAgcHJvY2Vzc1snc3RkZXJyJ10ud3JpdGUoeCArICdcbicpOwotICB9OwotICB2YXIg
bm9kZUZTID0gcmVxdWlyZSgnZnMnKTsKLSAgdmFyIG5vZGVQYXRoID0gcmVxdWlyZSgncGF0aCcp
OwotICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKGZpbGVuYW1lLCBiaW5hcnkpIHsKLSAgICBm
aWxlbmFtZSA9IG5vZGVQYXRoWydub3JtYWxpemUnXShmaWxlbmFtZSk7Ci0gICAgdmFyIHJldCA9
IG5vZGVGU1sncmVhZEZpbGVTeW5jJ10oZmlsZW5hbWUpOwotICAgIC8vIFRoZSBwYXRoIGlzIGFi
c29sdXRlIGlmIHRoZSBub3JtYWxpemVkIHZlcnNpb24gaXMgdGhlIHNhbWUgYXMgdGhlIHJlc29s
dmVkLgotICAgIGlmICghcmV0ICYmIGZpbGVuYW1lICE9IG5vZGVQYXRoWydyZXNvbHZlJ10oZmls
ZW5hbWUpKSB7Ci0gICAgICBmaWxlbmFtZSA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICdz
cmMnLCBmaWxlbmFtZSk7Ci0gICAgICByZXQgPSBub2RlRlNbJ3JlYWRGaWxlU3luYyddKGZpbGVu
YW1lKTsKLSAgICB9Ci0gICAgaWYgKHJldCAmJiAhYmluYXJ5KSByZXQgPSByZXQudG9TdHJpbmco
KTsKLSAgICByZXR1cm4gcmV0OwotICB9OwotICBNb2R1bGVbJ3JlYWRCaW5hcnknXSA9IGZ1bmN0
aW9uKGZpbGVuYW1lKSB7IHJldHVybiBNb2R1bGVbJ3JlYWQnXShmaWxlbmFtZSwgdHJ1ZSkgfTsK
LSAgTW9kdWxlWydsb2FkJ10gPSBmdW5jdGlvbihmKSB7Ci0gICAgZ2xvYmFsRXZhbChyZWFkKGYp
KTsKLSAgfTsKLSAgTW9kdWxlWydhcmd1bWVudHMnXSA9IHByb2Nlc3NbJ2FyZ3YnXS5zbGljZSgy
KTsKLSAgbW9kdWxlLmV4cG9ydHMgPSBNb2R1bGU7Ci19Ci1lbHNlIGlmIChFTlZJUk9OTUVOVF9J
U19TSEVMTCkgewotICBNb2R1bGVbJ3ByaW50J10gPSBwcmludDsKLSAgaWYgKHR5cGVvZiBwcmlu
dEVyciAhPSAndW5kZWZpbmVkJykgTW9kdWxlWydwcmludEVyciddID0gcHJpbnRFcnI7IC8vIG5v
dCBwcmVzZW50IGluIHY4IG9yIG9sZGVyIHNtCi0gIGlmICh0eXBlb2YgcmVhZCAhPSAndW5kZWZp
bmVkJykgewotICAgIE1vZHVsZVsncmVhZCddID0gcmVhZDsKLSAgfSBlbHNlIHsKLSAgICBNb2R1
bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKCkgeyB0aHJvdyAnbm8gcmVhZCgpIGF2YWlsYWJsZSAoanNj
PyknIH07Ci0gIH0KLSAgTW9kdWxlWydyZWFkQmluYXJ5J10gPSBmdW5jdGlvbihmKSB7Ci0gICAg
cmV0dXJuIHJlYWQoZiwgJ2JpbmFyeScpOwotICB9OwotICBpZiAodHlwZW9mIHNjcmlwdEFyZ3Mg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gc2NyaXB0QXJnczsK
LSAgfSBlbHNlIGlmICh0eXBlb2YgYXJndW1lbnRzICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgTW9k
dWxlWydhcmd1bWVudHMnXSA9IGFyZ3VtZW50czsKLSAgfQotICB0aGlzWydNb2R1bGUnXSA9IE1v
ZHVsZTsKLX0KLWVsc2UgaWYgKEVOVklST05NRU5UX0lTX1dFQiB8fCBFTlZJUk9OTUVOVF9JU19X
T1JLRVIpIHsKLSAgTW9kdWxlWydyZWFkJ10gPSBmdW5jdGlvbih1cmwpIHsKLSAgICB2YXIgeGhy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2Up
OwotICAgIHhoci5zZW5kKG51bGwpOwotICAgIHJldHVybiB4aHIucmVzcG9uc2VUZXh0OwotICB9
OwotICBpZiAodHlwZW9mIGFyZ3VtZW50cyAhPSAndW5kZWZpbmVkJykgewotICAgIE1vZHVsZVsn
YXJndW1lbnRzJ10gPSBhcmd1bWVudHM7Ci0gIH0KLSAgaWYgKEVOVklST05NRU5UX0lTX1dFQikg
ewotICAgIE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9uKHgpIHsKLSAgICAgIGNvbnNvbGUubG9n
KHgpOwotICAgIH07Ci0gICAgTW9kdWxlWydwcmludEVyciddID0gZnVuY3Rpb24oeCkgewotICAg
ICAgY29uc29sZS5sb2coeCk7Ci0gICAgfTsKLSAgICB0aGlzWydNb2R1bGUnXSA9IE1vZHVsZTsK
LSAgfSBlbHNlIGlmIChFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHsKLSAgICAvLyBXZSBjYW4gZG8g
dmVyeSBsaXR0bGUgaGVyZS4uLgotICAgIHZhciBUUllfVVNFX0RVTVAgPSBmYWxzZTsKLSAgICBN
b2R1bGVbJ3ByaW50J10gPSAoVFJZX1VTRV9EVU1QICYmICh0eXBlb2YoZHVtcCkgIT09ICJ1bmRl
ZmluZWQiKSA/IChmdW5jdGlvbih4KSB7Ci0gICAgICBkdW1wKHgpOwotICAgIH0pIDogKGZ1bmN0
aW9uKHgpIHsKLSAgICAgIC8vIHNlbGYucG9zdE1lc3NhZ2UoeCk7IC8vIGVuYWJsZSB0aGlzIGlm
IHlvdSB3YW50IHN0ZG91dCB0byBiZSBzZW50IGFzIG1lc3NhZ2VzCi0gICAgfSkpOwotICAgIE1v
ZHVsZVsnbG9hZCddID0gaW1wb3J0U2NyaXB0czsKLSAgfQotfQotZWxzZSB7Ci0gIC8vIFVucmVh
Y2hhYmxlIGJlY2F1c2UgU0hFTEwgaXMgZGVwZW5kYW50IG9uIHRoZSBvdGhlcnMKLSAgdGhyb3cg
J1Vua25vd24gcnVudGltZSBlbnZpcm9ubWVudC4gV2hlcmUgYXJlIHdlPyc7Ci19Ci1mdW5jdGlv
biBnbG9iYWxFdmFsKHgpIHsKLSAgZXZhbC5jYWxsKG51bGwsIHgpOwotfQotaWYgKCFNb2R1bGVb
J2xvYWQnXSA9PSAndW5kZWZpbmVkJyAmJiBNb2R1bGVbJ3JlYWQnXSkgewotICBNb2R1bGVbJ2xv
YWQnXSA9IGZ1bmN0aW9uKGYpIHsKLSAgICBnbG9iYWxFdmFsKE1vZHVsZVsncmVhZCddKGYpKTsK
LSAgfTsKLX0KLWlmICghTW9kdWxlWydwcmludCddKSB7Ci0gIE1vZHVsZVsncHJpbnQnXSA9IGZ1
bmN0aW9uKCl7fTsKLX0KLWlmICghTW9kdWxlWydwcmludEVyciddKSB7Ci0gIE1vZHVsZVsncHJp
bnRFcnInXSA9IE1vZHVsZVsncHJpbnQnXTsKLX0KLWlmICghTW9kdWxlWydhcmd1bWVudHMnXSkg
ewotICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gW107Ci19Ci0vLyAqKiogRW52aXJvbm1lbnQgc2V0
dXAgY29kZSAqKioKLS8vIENsb3N1cmUgaGVscGVycwotTW9kdWxlLnByaW50ID0gTW9kdWxlWydw
cmludCddOwotTW9kdWxlLnByaW50RXJyID0gTW9kdWxlWydwcmludEVyciddOwotLy8gQ2FsbGJh
Y2tzCi1Nb2R1bGVbJ3ByZVJ1biddID0gW107Ci1Nb2R1bGVbJ3Bvc3RSdW4nXSA9IFtdOwotLy8g
TWVyZ2UgYmFjayBpbiB0aGUgb3ZlcnJpZGVzCi1mb3IgKHZhciBrZXkgaW4gbW9kdWxlT3ZlcnJp
ZGVzKSB7Ci0gIGlmIChtb2R1bGVPdmVycmlkZXMuaGFzT3duUHJvcGVydHkoa2V5KSkgewotICAg
IE1vZHVsZVtrZXldID0gbW9kdWxlT3ZlcnJpZGVzW2tleV07Ci0gIH0KLX0KLS8vID09PSBBdXRv
LWdlbmVyYXRlZCBwcmVhbWJsZSBsaWJyYXJ5IHN0dWZmID09PQotLy89PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyBSdW50aW1lIGNvZGUgc2hhcmVkIHdpdGggY29t
cGlsZXIKLS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotdmFyIFJ1
bnRpbWUgPSB7Ci0gIHN0YWNrU2F2ZTogZnVuY3Rpb24gKCkgewotICAgIHJldHVybiBTVEFDS1RP
UDsKLSAgfSwKLSAgc3RhY2tSZXN0b3JlOiBmdW5jdGlvbiAoc3RhY2tUb3ApIHsKLSAgICBTVEFD
S1RPUCA9IHN0YWNrVG9wOwotICB9LAotICBmb3JjZUFsaWduOiBmdW5jdGlvbiAodGFyZ2V0LCBx
dWFudHVtKSB7Ci0gICAgcXVhbnR1bSA9IHF1YW50dW0gfHwgNDsKLSAgICBpZiAocXVhbnR1bSA9
PSAxKSByZXR1cm4gdGFyZ2V0OwotICAgIGlmIChpc051bWJlcih0YXJnZXQpICYmIGlzTnVtYmVy
KHF1YW50dW0pKSB7Ci0gICAgICByZXR1cm4gTWF0aC5jZWlsKHRhcmdldC9xdWFudHVtKSpxdWFu
dHVtOwotICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIocXVhbnR1bSkgJiYgaXNQb3dlck9mVHdvKHF1
YW50dW0pKSB7Ci0gICAgICB2YXIgbG9nZyA9IGxvZzIocXVhbnR1bSk7Ci0gICAgICByZXR1cm4g
JygoKCgnICt0YXJnZXQgKyAnKSsnICsgKHF1YW50dW0tMSkgKyAnKT4+JyArIGxvZ2cgKyAnKTw8
JyArIGxvZ2cgKyAnKSc7Ci0gICAgfQotICAgIHJldHVybiAnTWF0aC5jZWlsKCgnICsgdGFyZ2V0
ICsgJykvJyArIHF1YW50dW0gKyAnKSonICsgcXVhbnR1bTsKLSAgfSwKLSAgaXNOdW1iZXJUeXBl
OiBmdW5jdGlvbiAodHlwZSkgewotICAgIHJldHVybiB0eXBlIGluIFJ1bnRpbWUuSU5UX1RZUEVT
IHx8IHR5cGUgaW4gUnVudGltZS5GTE9BVF9UWVBFUzsKLSAgfSwKLSAgaXNQb2ludGVyVHlwZTog
ZnVuY3Rpb24gaXNQb2ludGVyVHlwZSh0eXBlKSB7Ci0gIHJldHVybiB0eXBlW3R5cGUubGVuZ3Ro
LTFdID09ICcqJzsKLX0sCi0gIGlzU3RydWN0VHlwZTogZnVuY3Rpb24gaXNTdHJ1Y3RUeXBlKHR5
cGUpIHsKLSAgaWYgKGlzUG9pbnRlclR5cGUodHlwZSkpIHJldHVybiBmYWxzZTsKLSAgaWYgKGlz
QXJyYXlUeXBlKHR5cGUpKSByZXR1cm4gdHJ1ZTsKLSAgaWYgKC88P3sgP1tefV0qID99Pj8vLnRl
c3QodHlwZSkpIHJldHVybiB0cnVlOyAvLyB7IGkzMiwgaTggfSBldGMuIC0gYW5vbnltb3VzIHN0
cnVjdCB0eXBlcwotICAvLyBTZWUgY29tbWVudCBpbiBpc1N0cnVjdFBvaW50ZXJUeXBlKCkKLSAg
cmV0dXJuIHR5cGVbMF0gPT0gJyUnOwotfSwKLSAgSU5UX1RZUEVTOiB7ImkxIjowLCJpOCI6MCwi
aTE2IjowLCJpMzIiOjAsImk2NCI6MH0sCi0gIEZMT0FUX1RZUEVTOiB7ImZsb2F0IjowLCJkb3Vi
bGUiOjB9LAotICBvcjY0OiBmdW5jdGlvbiAoeCwgeSkgewotICAgIHZhciBsID0gKHggfCAwKSB8
ICh5IHwgMCk7Ci0gICAgdmFyIGggPSAoTWF0aC5yb3VuZCh4IC8gNDI5NDk2NzI5NikgfCBNYXRo
LnJvdW5kKHkgLyA0Mjk0OTY3Mjk2KSkgKiA0Mjk0OTY3Mjk2OwotICAgIHJldHVybiBsICsgaDsK
LSAgfSwKLSAgYW5kNjQ6IGZ1bmN0aW9uICh4LCB5KSB7Ci0gICAgdmFyIGwgPSAoeCB8IDApICYg
KHkgfCAwKTsKLSAgICB2YXIgaCA9IChNYXRoLnJvdW5kKHggLyA0Mjk0OTY3Mjk2KSAmIE1hdGgu
cm91bmQoeSAvIDQyOTQ5NjcyOTYpKSAqIDQyOTQ5NjcyOTY7Ci0gICAgcmV0dXJuIGwgKyBoOwot
ICB9LAotICB4b3I2NDogZnVuY3Rpb24gKHgsIHkpIHsKLSAgICB2YXIgbCA9ICh4IHwgMCkgXiAo
eSB8IDApOwotICAgIHZhciBoID0gKE1hdGgucm91bmQoeCAvIDQyOTQ5NjcyOTYpIF4gTWF0aC5y
b3VuZCh5IC8gNDI5NDk2NzI5NikpICogNDI5NDk2NzI5NjsKLSAgICByZXR1cm4gbCArIGg7Ci0g
IH0sCi0gIGdldE5hdGl2ZVR5cGVTaXplOiBmdW5jdGlvbiAodHlwZSwgcXVhbnR1bVNpemUpIHsK
LSAgICBpZiAoUnVudGltZS5RVUFOVFVNX1NJWkUgPT0gMSkgcmV0dXJuIDE7Ci0gICAgdmFyIHNp
emUgPSB7Ci0gICAgICAnJWkxJzogMSwKLSAgICAgICclaTgnOiAxLAotICAgICAgJyVpMTYnOiAy
LAotICAgICAgJyVpMzInOiA0LAotICAgICAgJyVpNjQnOiA4LAotICAgICAgIiVmbG9hdCI6IDQs
Ci0gICAgICAiJWRvdWJsZSI6IDgKLSAgICB9WyclJyt0eXBlXTsgLy8gYWRkICclJyBzaW5jZSBm
bG9hdCBhbmQgZG91YmxlIGNvbmZ1c2UgQ2xvc3VyZSBjb21waWxlciBhcyBrZXlzLCBhbmQgYWxz
byBzcGlkZXJtb25rZXkgYXMgYSBjb21waWxlciB3aWxsIHJlbW92ZSAncyBmcm9tICdfaTgnIGV0
YwotICAgIGlmICghc2l6ZSkgewotICAgICAgaWYgKHR5cGUuY2hhckF0KHR5cGUubGVuZ3RoLTEp
ID09ICcqJykgewotICAgICAgICBzaXplID0gUnVudGltZS5RVUFOVFVNX1NJWkU7IC8vIEEgcG9p
bnRlcgotICAgICAgfSBlbHNlIGlmICh0eXBlWzBdID09ICdpJykgewotICAgICAgICB2YXIgYml0
cyA9IHBhcnNlSW50KHR5cGUuc3Vic3RyKDEpKTsKLSAgICAgICAgYXNzZXJ0KGJpdHMgJSA4ID09
IDApOwotICAgICAgICBzaXplID0gYml0cy84OwotICAgICAgfQotICAgIH0KLSAgICByZXR1cm4g
c2l6ZTsKLSAgfSwKLSAgZ2V0TmF0aXZlRmllbGRTaXplOiBmdW5jdGlvbiAodHlwZSkgewotICAg
IHJldHVybiBNYXRoLm1heChSdW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKHR5cGUpLCBSdW50aW1l
LlFVQU5UVU1fU0laRSk7Ci0gIH0sCi0gIGRlZHVwOiBmdW5jdGlvbiBkZWR1cChpdGVtcywgaWRl
bnQpIHsKLSAgdmFyIHNlZW4gPSB7fTsKLSAgaWYgKGlkZW50KSB7Ci0gICAgcmV0dXJuIGl0ZW1z
LmZpbHRlcihmdW5jdGlvbihpdGVtKSB7Ci0gICAgICBpZiAoc2VlbltpdGVtW2lkZW50XV0pIHJl
dHVybiBmYWxzZTsKLSAgICAgIHNlZW5baXRlbVtpZGVudF1dID0gdHJ1ZTsKLSAgICAgIHJldHVy
biB0cnVlOwotICAgIH0pOwotICB9IGVsc2UgewotICAgIHJldHVybiBpdGVtcy5maWx0ZXIoZnVu
Y3Rpb24oaXRlbSkgewotICAgICAgaWYgKHNlZW5baXRlbV0pIHJldHVybiBmYWxzZTsKLSAgICAg
IHNlZW5baXRlbV0gPSB0cnVlOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSk7Ci0gIH0KLX0s
Ci0gIHNldDogZnVuY3Rpb24gc2V0KCkgewotICB2YXIgYXJncyA9IHR5cGVvZiBhcmd1bWVudHNb
MF0gPT09ICdvYmplY3QnID8gYXJndW1lbnRzWzBdIDogYXJndW1lbnRzOwotICB2YXIgcmV0ID0g
e307Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykgewotICAgIHJldFth
cmdzW2ldXSA9IDA7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0sCi0gIFNUQUNLX0FMSUdOOiA4LAot
ICBnZXRBbGlnblNpemU6IGZ1bmN0aW9uICh0eXBlLCBzaXplLCB2YXJhcmcpIHsKLSAgICAvLyB3
ZSBhbGlnbiBpNjRzIGFuZCBkb3VibGVzIG9uIDY0LWJpdCBib3VuZGFyaWVzLCB1bmxpa2UgeDg2
Ci0gICAgaWYgKHR5cGUgPT0gJ2k2NCcgfHwgdHlwZSA9PSAnZG91YmxlJyB8fCB2YXJhcmcpIHJl
dHVybiA4OwotICAgIGlmICghdHlwZSkgcmV0dXJuIE1hdGgubWluKHNpemUsIDgpOyAvLyBhbGln
biBzdHJ1Y3R1cmVzIGludGVybmFsbHkgdG8gNjQgYml0cwotICAgIHJldHVybiBNYXRoLm1pbihz
aXplIHx8ICh0eXBlID8gUnVudGltZS5nZXROYXRpdmVGaWVsZFNpemUodHlwZSkgOiAwKSwgUnVu
dGltZS5RVUFOVFVNX1NJWkUpOwotICB9LAotICBjYWxjdWxhdGVTdHJ1Y3RBbGlnbm1lbnQ6IGZ1
bmN0aW9uIGNhbGN1bGF0ZVN0cnVjdEFsaWdubWVudCh0eXBlKSB7Ci0gICAgdHlwZS5mbGF0U2l6
ZSA9IDA7Ci0gICAgdHlwZS5hbGlnblNpemUgPSAwOwotICAgIHZhciBkaWZmcyA9IFtdOwotICAg
IHZhciBwcmV2ID0gLTE7Ci0gICAgdmFyIGluZGV4ID0gMDsKLSAgICB0eXBlLmZsYXRJbmRleGVz
ID0gdHlwZS5maWVsZHMubWFwKGZ1bmN0aW9uKGZpZWxkKSB7Ci0gICAgICBpbmRleCsrOwotICAg
ICAgdmFyIHNpemUsIGFsaWduU2l6ZTsKLSAgICAgIGlmIChSdW50aW1lLmlzTnVtYmVyVHlwZShm
aWVsZCkgfHwgUnVudGltZS5pc1BvaW50ZXJUeXBlKGZpZWxkKSkgewotICAgICAgICBzaXplID0g
UnVudGltZS5nZXROYXRpdmVUeXBlU2l6ZShmaWVsZCk7IC8vIHBhY2sgY2hhcjsgY2hhcjsgaW4g
c3RydWN0cywgYWxzbyBjaGFyW1hdcy4KLSAgICAgICAgYWxpZ25TaXplID0gUnVudGltZS5nZXRB
bGlnblNpemUoZmllbGQsIHNpemUpOwotICAgICAgfSBlbHNlIGlmIChSdW50aW1lLmlzU3RydWN0
VHlwZShmaWVsZCkpIHsKLSAgICAgICAgaWYgKGZpZWxkWzFdID09PSAnMCcpIHsKLSAgICAgICAg
ICAvLyB0aGlzIGlzIFswIHggc29tZXRoaW5nXS4gV2hlbiBpbnNpZGUgYW5vdGhlciBzdHJ1Y3R1
cmUgbGlrZSBoZXJlLCBpdCBtdXN0IGJlIGF0IHRoZSBlbmQsCi0gICAgICAgICAgLy8gYW5kIGl0
IGFkZHMgbm8gc2l6ZQotICAgICAgICAgIC8vIFhYWCB0aGlzIGhhcHBlbnMgaW4gamF2YS1uYm9k
eSBmb3IgZXhhbXBsZS4uLiBhc3NlcnQoaW5kZXggPT09IHR5cGUuZmllbGRzLmxlbmd0aCwgJ3pl
cm8tbGVuZ3RoIGluIHRoZSBtaWRkbGUhJyk7Ci0gICAgICAgICAgc2l6ZSA9IDA7Ci0gICAgICAg
ICAgYWxpZ25TaXplID0gdHlwZS5hbGlnblNpemUgfHwgUVVBTlRVTV9TSVpFOwotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgIHNpemUgPSBUeXBlcy50eXBlc1tmaWVsZF0uZmxhdFNpemU7Ci0g
ICAgICAgICAgYWxpZ25TaXplID0gUnVudGltZS5nZXRBbGlnblNpemUobnVsbCwgVHlwZXMudHlw
ZXNbZmllbGRdLmFsaWduU2l6ZSk7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoZmllbGRb
MF0gPT0gJ2InKSB7Ci0gICAgICAgIC8vIGJOLCBsYXJnZSBudW1iZXIgZmllbGQsIGxpa2UgYSBb
TiB4IGk4XQotICAgICAgICBzaXplID0gZmllbGQuc3Vic3RyKDEpfDA7Ci0gICAgICAgIGFsaWdu
U2l6ZSA9IDE7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aHJvdyAnVW5jbGVhciB0eXBlIGlu
IHN0cnVjdDogJyArIGZpZWxkICsgJywgaW4gJyArIHR5cGUubmFtZV8gKyAnIDo6ICcgKyBkdW1w
KFR5cGVzLnR5cGVzW3R5cGUubmFtZV9dKTsKLSAgICAgIH0KLSAgICAgIGlmICh0eXBlLnBhY2tl
ZCkgYWxpZ25TaXplID0gMTsKLSAgICAgIHR5cGUuYWxpZ25TaXplID0gTWF0aC5tYXgodHlwZS5h
bGlnblNpemUsIGFsaWduU2l6ZSk7Ci0gICAgICB2YXIgY3VyciA9IFJ1bnRpbWUuYWxpZ25NZW1v
cnkodHlwZS5mbGF0U2l6ZSwgYWxpZ25TaXplKTsgLy8gaWYgbmVjZXNzYXJ5LCBwbGFjZSB0aGlz
IG9uIGFsaWduZWQgbWVtb3J5Ci0gICAgICB0eXBlLmZsYXRTaXplID0gY3VyciArIHNpemU7Ci0g
ICAgICBpZiAocHJldiA+PSAwKSB7Ci0gICAgICAgIGRpZmZzLnB1c2goY3Vyci1wcmV2KTsKLSAg
ICAgIH0KLSAgICAgIHByZXYgPSBjdXJyOwotICAgICAgcmV0dXJuIGN1cnI7Ci0gICAgfSk7Ci0g
ICAgdHlwZS5mbGF0U2l6ZSA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkodHlwZS5mbGF0U2l6ZSwgdHlw
ZS5hbGlnblNpemUpOwotICAgIGlmIChkaWZmcy5sZW5ndGggPT0gMCkgewotICAgICAgdHlwZS5m
bGF0RmFjdG9yID0gdHlwZS5mbGF0U2l6ZTsKLSAgICB9IGVsc2UgaWYgKFJ1bnRpbWUuZGVkdXAo
ZGlmZnMpLmxlbmd0aCA9PSAxKSB7Ci0gICAgICB0eXBlLmZsYXRGYWN0b3IgPSBkaWZmc1swXTsK
LSAgICB9Ci0gICAgdHlwZS5uZWVkc0ZsYXR0ZW5pbmcgPSAodHlwZS5mbGF0RmFjdG9yICE9IDEp
OwotICAgIHJldHVybiB0eXBlLmZsYXRJbmRleGVzOwotICB9LAotICBnZW5lcmF0ZVN0cnVjdElu
Zm86IGZ1bmN0aW9uIChzdHJ1Y3QsIHR5cGVOYW1lLCBvZmZzZXQpIHsKLSAgICB2YXIgdHlwZSwg
YWxpZ25tZW50OwotICAgIGlmICh0eXBlTmFtZSkgewotICAgICAgb2Zmc2V0ID0gb2Zmc2V0IHx8
IDA7Ci0gICAgICB0eXBlID0gKHR5cGVvZiBUeXBlcyA9PT0gJ3VuZGVmaW5lZCcgPyBSdW50aW1l
LnR5cGVJbmZvIDogVHlwZXMudHlwZXMpW3R5cGVOYW1lXTsKLSAgICAgIGlmICghdHlwZSkgcmV0
dXJuIG51bGw7Ci0gICAgICBpZiAodHlwZS5maWVsZHMubGVuZ3RoICE9IHN0cnVjdC5sZW5ndGgp
IHsKLSAgICAgICAgcHJpbnRFcnIoJ051bWJlciBvZiBuYW1lZCBmaWVsZHMgbXVzdCBtYXRjaCB0
aGUgdHlwZSBmb3IgJyArIHR5cGVOYW1lICsgJzogcG9zc2libHkgZHVwbGljYXRlIHN0cnVjdCBu
YW1lcy4gQ2Fubm90IHJldHVybiBzdHJ1Y3RJbmZvJyk7Ci0gICAgICAgIHJldHVybiBudWxsOwot
ICAgICAgfQotICAgICAgYWxpZ25tZW50ID0gdHlwZS5mbGF0SW5kZXhlczsKLSAgICB9IGVsc2Ug
ewotICAgICAgdmFyIHR5cGUgPSB7IGZpZWxkczogc3RydWN0Lm1hcChmdW5jdGlvbihpdGVtKSB7
IHJldHVybiBpdGVtWzBdIH0pIH07Ci0gICAgICBhbGlnbm1lbnQgPSBSdW50aW1lLmNhbGN1bGF0
ZVN0cnVjdEFsaWdubWVudCh0eXBlKTsKLSAgICB9Ci0gICAgdmFyIHJldCA9IHsKLSAgICAgIF9f
c2l6ZV9fOiB0eXBlLmZsYXRTaXplCi0gICAgfTsKLSAgICBpZiAodHlwZU5hbWUpIHsKLSAgICAg
IHN0cnVjdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGkpIHsKLSAgICAgICAgaWYgKHR5cGVvZiBp
dGVtID09PSAnc3RyaW5nJykgewotICAgICAgICAgIHJldFtpdGVtXSA9IGFsaWdubWVudFtpXSAr
IG9mZnNldDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAvLyBlbWJlZGRlZCBzdHJ1Y3QK
LSAgICAgICAgICB2YXIga2V5OwotICAgICAgICAgIGZvciAodmFyIGsgaW4gaXRlbSkga2V5ID0g
azsKLSAgICAgICAgICByZXRba2V5XSA9IFJ1bnRpbWUuZ2VuZXJhdGVTdHJ1Y3RJbmZvKGl0ZW1b
a2V5XSwgdHlwZS5maWVsZHNbaV0sIGFsaWdubWVudFtpXSk7Ci0gICAgICAgIH0KLSAgICAgIH0p
OwotICAgIH0gZWxzZSB7Ci0gICAgICBzdHJ1Y3QuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpKSB7
Ci0gICAgICAgIHJldFtpdGVtWzFdXSA9IGFsaWdubWVudFtpXTsKLSAgICAgIH0pOwotICAgIH0K
LSAgICByZXR1cm4gcmV0OwotICB9LAotICBkeW5DYWxsOiBmdW5jdGlvbiAoc2lnLCBwdHIsIGFy
Z3MpIHsKLSAgICBpZiAoYXJncyAmJiBhcmdzLmxlbmd0aCkgewotICAgICAgaWYgKCFhcmdzLnNw
bGljZSkgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpOwotICAgICAgYXJn
cy5zcGxpY2UoMCwgMCwgcHRyKTsKLSAgICAgIHJldHVybiBNb2R1bGVbJ2R5bkNhbGxfJyArIHNp
Z10uYXBwbHkobnVsbCwgYXJncyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBNb2R1bGVb
J2R5bkNhbGxfJyArIHNpZ10uY2FsbChudWxsLCBwdHIpOwotICAgIH0KLSAgfSwKLSAgZnVuY3Rp
b25Qb2ludGVyczogW10sCi0gIGFkZEZ1bmN0aW9uOiBmdW5jdGlvbiAoZnVuYykgewotICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgUnVudGltZS5mdW5jdGlvblBvaW50ZXJzLmxlbmd0aDsgaSsrKSB7
Ci0gICAgICBpZiAoIVJ1bnRpbWUuZnVuY3Rpb25Qb2ludGVyc1tpXSkgewotICAgICAgICBSdW50
aW1lLmZ1bmN0aW9uUG9pbnRlcnNbaV0gPSBmdW5jOwotICAgICAgICByZXR1cm4gMiArIDIqaTsK
LSAgICAgIH0KLSAgICB9Ci0gICAgdGhyb3cgJ0ZpbmlzaGVkIHVwIGFsbCByZXNlcnZlZCBmdW5j
dGlvbiBwb2ludGVycy4gVXNlIGEgaGlnaGVyIHZhbHVlIGZvciBSRVNFUlZFRF9GVU5DVElPTl9Q
T0lOVEVSUy4nOwotICB9LAotICByZW1vdmVGdW5jdGlvbjogZnVuY3Rpb24gKGluZGV4KSB7Ci0g
ICAgUnVudGltZS5mdW5jdGlvblBvaW50ZXJzWyhpbmRleC0yKS8yXSA9IG51bGw7Ci0gIH0sCi0g
IHdhcm5PbmNlOiBmdW5jdGlvbiAodGV4dCkgewotICAgIGlmICghUnVudGltZS53YXJuT25jZS5z
aG93bikgUnVudGltZS53YXJuT25jZS5zaG93biA9IHt9OwotICAgIGlmICghUnVudGltZS53YXJu
T25jZS5zaG93blt0ZXh0XSkgewotICAgICAgUnVudGltZS53YXJuT25jZS5zaG93blt0ZXh0XSA9
IDE7Ci0gICAgICBNb2R1bGUucHJpbnRFcnIodGV4dCk7Ci0gICAgfQotICB9LAotICBmdW5jV3Jh
cHBlcnM6IHt9LAotICBnZXRGdW5jV3JhcHBlcjogZnVuY3Rpb24gKGZ1bmMsIHNpZykgewotICAg
IGFzc2VydChzaWcpOwotICAgIGlmICghUnVudGltZS5mdW5jV3JhcHBlcnNbZnVuY10pIHsKLSAg
ICAgIFJ1bnRpbWUuZnVuY1dyYXBwZXJzW2Z1bmNdID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJl
dHVybiBSdW50aW1lLmR5bkNhbGwoc2lnLCBmdW5jLCBhcmd1bWVudHMpOwotICAgICAgfTsKLSAg
ICB9Ci0gICAgcmV0dXJuIFJ1bnRpbWUuZnVuY1dyYXBwZXJzW2Z1bmNdOwotICB9LAotICBVVEY4
UHJvY2Vzc29yOiBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGJ1ZmZlciA9IFtdOwotICAgIHZhciBu
ZWVkZWQgPSAwOwotICAgIHRoaXMucHJvY2Vzc0NDaGFyID0gZnVuY3Rpb24gKGNvZGUpIHsKLSAg
ICAgIGNvZGUgPSBjb2RlICYgMHhGRjsKLSAgICAgIGlmIChidWZmZXIubGVuZ3RoID09IDApIHsK
LSAgICAgICAgaWYgKChjb2RlICYgMHg4MCkgPT0gMHgwMCkgeyAgICAgICAgLy8gMHh4eHh4eHgK
LSAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTsKLSAgICAgICAgfQot
ICAgICAgICBidWZmZXIucHVzaChjb2RlKTsKLSAgICAgICAgaWYgKChjb2RlICYgMHhFMCkgPT0g
MHhDMCkgeyAgICAgICAgLy8gMTEweHh4eHgKLSAgICAgICAgICBuZWVkZWQgPSAxOwotICAgICAg
ICB9IGVsc2UgaWYgKChjb2RlICYgMHhGMCkgPT0gMHhFMCkgeyAvLyAxMTEweHh4eAotICAgICAg
ICAgIG5lZWRlZCA9IDI7Ci0gICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIDExMTEweHh4Ci0gICAgICAgICAgbmVlZGVkID0gMzsKLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gJyc7Ci0gICAgICB9Ci0gICAgICBpZiAobmVlZGVkKSB7Ci0gICAgICAgIGJ1ZmZl
ci5wdXNoKGNvZGUpOwotICAgICAgICBuZWVkZWQtLTsKLSAgICAgICAgaWYgKG5lZWRlZCA+IDAp
IHJldHVybiAnJzsKLSAgICAgIH0KLSAgICAgIHZhciBjMSA9IGJ1ZmZlclswXTsKLSAgICAgIHZh
ciBjMiA9IGJ1ZmZlclsxXTsKLSAgICAgIHZhciBjMyA9IGJ1ZmZlclsyXTsKLSAgICAgIHZhciBj
NCA9IGJ1ZmZlclszXTsKLSAgICAgIHZhciByZXQ7Ci0gICAgICBpZiAoYnVmZmVyLmxlbmd0aCA9
PSAyKSB7Ci0gICAgICAgIHJldCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjMSAmIDB4MUYpIDw8
IDYpICB8IChjMiAmIDB4M0YpKTsKLSAgICAgIH0gZWxzZSBpZiAoYnVmZmVyLmxlbmd0aCA9PSAz
KSB7Ci0gICAgICAgIHJldCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjMSAmIDB4MEYpIDw8IDEy
KSB8ICgoYzIgJiAweDNGKSA8PCA2KSAgfCAoYzMgJiAweDNGKSk7Ci0gICAgICB9IGVsc2Ugewot
ICAgICAgICAvLyBodHRwOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LWVuY29k
aW5nI3N1cnJvZ2F0ZS1mb3JtdWxhZQotICAgICAgICB2YXIgY29kZVBvaW50ID0gKChjMSAmIDB4
MDcpIDw8IDE4KSB8ICgoYzIgJiAweDNGKSA8PCAxMikgfAotICAgICAgICAgICAgICAgICAgICAg
ICAgKChjMyAmIDB4M0YpIDw8IDYpICB8IChjNCAmIDB4M0YpOwotICAgICAgICByZXQgPSBTdHJp
bmcuZnJvbUNoYXJDb2RlKAotICAgICAgICAgIE1hdGguZmxvb3IoKGNvZGVQb2ludCAtIDB4MTAw
MDApIC8gMHg0MDApICsgMHhEODAwLAotICAgICAgICAgIChjb2RlUG9pbnQgLSAweDEwMDAwKSAl
IDB4NDAwICsgMHhEQzAwKTsKLSAgICAgIH0KLSAgICAgIGJ1ZmZlci5sZW5ndGggPSAwOwotICAg
ICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gICAgdGhpcy5wcm9jZXNzSlNTdHJpbmcgPSBmdW5jdGlv
bihzdHJpbmcpIHsKLSAgICAgIHN0cmluZyA9IHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChz
dHJpbmcpKTsKLSAgICAgIHZhciByZXQgPSBbXTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
c3RyaW5nLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHJldC5wdXNoKHN0cmluZy5jaGFyQ29kZUF0
KGkpKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotICB9LAotICBzdGFja0Fs
bG9jOiBmdW5jdGlvbiAoc2l6ZSkgeyB2YXIgcmV0ID0gU1RBQ0tUT1A7U1RBQ0tUT1AgPSAoU1RB
Q0tUT1AgKyBzaXplKXwwO1NUQUNLVE9QID0gKCgoKFNUQUNLVE9QKSs3KT4+Myk8PDMpOyByZXR1
cm4gcmV0OyB9LAotICBzdGF0aWNBbGxvYzogZnVuY3Rpb24gKHNpemUpIHsgdmFyIHJldCA9IFNU
QVRJQ1RPUDtTVEFUSUNUT1AgPSAoU1RBVElDVE9QICsgc2l6ZSl8MDtTVEFUSUNUT1AgPSAoKCgo
U1RBVElDVE9QKSs3KT4+Myk8PDMpOyByZXR1cm4gcmV0OyB9LAotICBkeW5hbWljQWxsb2M6IGZ1
bmN0aW9uIChzaXplKSB7IHZhciByZXQgPSBEWU5BTUlDVE9QO0RZTkFNSUNUT1AgPSAoRFlOQU1J
Q1RPUCArIHNpemUpfDA7RFlOQU1JQ1RPUCA9ICgoKChEWU5BTUlDVE9QKSs3KT4+Myk8PDMpOyBp
ZiAoRFlOQU1JQ1RPUCA+PSBUT1RBTF9NRU1PUlkpIGVubGFyZ2VNZW1vcnkoKTs7IHJldHVybiBy
ZXQ7IH0sCi0gIGFsaWduTWVtb3J5OiBmdW5jdGlvbiAoc2l6ZSxxdWFudHVtKSB7IHZhciByZXQg
PSBzaXplID0gTWF0aC5jZWlsKChzaXplKS8ocXVhbnR1bSA/IHF1YW50dW0gOiA4KSkqKHF1YW50
dW0gPyBxdWFudHVtIDogOCk7IHJldHVybiByZXQ7IH0sCi0gIG1ha2VCaWdJbnQ6IGZ1bmN0aW9u
IChsb3csaGlnaCx1bnNpZ25lZCkgeyB2YXIgcmV0ID0gKHVuc2lnbmVkID8gKCgrKCgobG93KT4+
PigwKSkpKSsoKCsoKChoaWdoKT4+PigwKSkpKSooKyg0Mjk0OTY3Mjk2KSkpKSA6ICgoKygoKGxv
dyk+Pj4oMCkpKSkrKCgrKCgoaGlnaCl8KDApKSkpKigrKDQyOTQ5NjcyOTYpKSkpKTsgcmV0dXJu
IHJldDsgfSwKLSAgR0xPQkFMX0JBU0U6IDgsCi0gIFFVQU5UVU1fU0laRTogNCwKLSAgX19kdW1t
eV9fOiAwCi19Ci0vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8v
IFJ1bnRpbWUgZXNzZW50aWFscwotLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci12YXIgX19USFJFV19fID0gMDsgLy8gVXNlZCBpbiBjaGVja2luZyBmb3IgdGhyb3du
IGV4Y2VwdGlvbnMuCi12YXIgQUJPUlQgPSBmYWxzZTsgLy8gd2hldGhlciB3ZSBhcmUgcXVpdHRp
bmcgdGhlIGFwcGxpY2F0aW9uLiBubyBjb2RlIHNob3VsZCBydW4gYWZ0ZXIgdGhpcy4gc2V0IGlu
IGV4aXQoKSBhbmQgYWJvcnQoKQotdmFyIEVYSVRTVEFUVVMgPSAwOwotdmFyIHVuZGVmID0gMDsK
LS8vIHRlbXBJbnQgaXMgdXNlZCBmb3IgMzItYml0IHNpZ25lZCB2YWx1ZXMgb3Igc21hbGxlci4g
dGVtcEJpZ0ludCBpcyB1c2VkCi0vLyBmb3IgMzItYml0IHVuc2lnbmVkIHZhbHVlcyBvciBtb3Jl
IHRoYW4gMzIgYml0cy4gVE9ETzogYXVkaXQgYWxsIHVzZXMgb2YgdGVtcEludAotdmFyIHRlbXBW
YWx1ZSwgdGVtcEludCwgdGVtcEJpZ0ludCwgdGVtcEludDIsIHRlbXBCaWdJbnQyLCB0ZW1wUGFp
ciwgdGVtcEJpZ0ludEksIHRlbXBCaWdJbnRSLCB0ZW1wQmlnSW50UywgdGVtcEJpZ0ludFAsIHRl
bXBCaWdJbnREOwotdmFyIHRlbXBJNjQsIHRlbXBJNjRiOwotdmFyIHRlbXBSZXQwLCB0ZW1wUmV0
MSwgdGVtcFJldDIsIHRlbXBSZXQzLCB0ZW1wUmV0NCwgdGVtcFJldDUsIHRlbXBSZXQ2LCB0ZW1w
UmV0NywgdGVtcFJldDgsIHRlbXBSZXQ5OwotZnVuY3Rpb24gYXNzZXJ0KGNvbmRpdGlvbiwgdGV4
dCkgewotICBpZiAoIWNvbmRpdGlvbikgewotICAgIGFib3J0KCdBc3NlcnRpb24gZmFpbGVkOiAn
ICsgdGV4dCk7Ci0gIH0KLX0KLXZhciBnbG9iYWxTY29wZSA9IHRoaXM7Ci0vLyBDIGNhbGxpbmcg
aW50ZXJmYWNlLiBBIGNvbnZlbmllbnQgd2F5IHRvIGNhbGwgQyBmdW5jdGlvbnMgKGluIEMgZmls
ZXMsIG9yCi0vLyBkZWZpbmVkIHdpdGggZXh0ZXJuICJDIikuCi0vLwotLy8gTm90ZTogTExWTSBv
cHRpbWl6YXRpb25zIGNhbiBpbmxpbmUgYW5kIHJlbW92ZSBmdW5jdGlvbnMsIGFmdGVyIHdoaWNo
IHlvdSB3aWxsIG5vdCBiZQotLy8gICAgICAgYWJsZSB0byBjYWxsIHRoZW0uIENsb3N1cmUgY2Fu
IGFsc28gZG8gc28uIFRvIGF2b2lkIHRoYXQsIGFkZCB5b3VyIGZ1bmN0aW9uIHRvCi0vLyAgICAg
ICB0aGUgZXhwb3J0cyB1c2luZyBzb21ldGhpbmcgbGlrZQotLy8KLS8vICAgICAgICAgLXMgRVhQ
T1JURURfRlVOQ1RJT05TPSdbIl9tYWluIiwgIl9teWZ1bmMiXScKLS8vCi0vLyBAcGFyYW0gaWRl
bnQgICAgICBUaGUgbmFtZSBvZiB0aGUgQyBmdW5jdGlvbiAobm90ZSB0aGF0IEMrKyBmdW5jdGlv
bnMgd2lsbCBiZSBuYW1lLW1hbmdsZWQgLSB1c2UgZXh0ZXJuICJDIikKLS8vIEBwYXJhbSByZXR1
cm5UeXBlIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgZnVuY3Rpb24sIG9uZSBvZiB0aGUgSlMgdHlw
ZXMgJ251bWJlcicsICdzdHJpbmcnIG9yICdhcnJheScgKHVzZSAnbnVtYmVyJyBmb3IgYW55IEMg
cG9pbnRlciwgYW5kCi0vLyAgICAgICAgICAgICAgICAgICAnYXJyYXknIGZvciBKYXZhU2NyaXB0
IGFycmF5cyBhbmQgdHlwZWQgYXJyYXlzOyBub3RlIHRoYXQgYXJyYXlzIGFyZSA4LWJpdCkuCi0v
LyBAcGFyYW0gYXJnVHlwZXMgICBBbiBhcnJheSBvZiB0aGUgdHlwZXMgb2YgYXJndW1lbnRzIGZv
ciB0aGUgZnVuY3Rpb24gKGlmIHRoZXJlIGFyZSBubyBhcmd1bWVudHMsIHRoaXMgY2FuIGJlIG9t
bWl0dGVkKS4gVHlwZXMgYXJlIGFzIGluIHJldHVyblR5cGUsCi0vLyAgICAgICAgICAgICAgICAg
ICBleGNlcHQgdGhhdCAnYXJyYXknIGlzIG5vdCBwb3NzaWJsZSAodGhlcmUgaXMgbm8gd2F5IGZv
ciB1cyB0byBrbm93IHRoZSBsZW5ndGggb2YgdGhlIGFycmF5KQotLy8gQHBhcmFtIGFyZ3MgICAg
ICAgQW4gYXJyYXkgb2YgdGhlIGFyZ3VtZW50cyB0byB0aGUgZnVuY3Rpb24sIGFzIG5hdGl2ZSBK
UyB2YWx1ZXMgKGFzIGluIHJldHVyblR5cGUpCi0vLyAgICAgICAgICAgICAgICAgICBOb3RlIHRo
YXQgc3RyaW5nIGFyZ3VtZW50cyB3aWxsIGJlIHN0b3JlZCBvbiB0aGUgc3RhY2sgKHRoZSBKUyBz
dHJpbmcgd2lsbCBiZWNvbWUgYSBDIHN0cmluZyBvbiB0aGUgc3RhY2spLgotLy8gQHJldHVybiAg
ICAgICAgICAgVGhlIHJldHVybiB2YWx1ZSwgYXMgYSBuYXRpdmUgSlMgdmFsdWUgKGFzIGluIHJl
dHVyblR5cGUpCi1mdW5jdGlvbiBjY2FsbChpZGVudCwgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFy
Z3MpIHsKLSAgcmV0dXJuIGNjYWxsRnVuYyhnZXRDRnVuYyhpZGVudCksIHJldHVyblR5cGUsIGFy
Z1R5cGVzLCBhcmdzKTsKLX0KLU1vZHVsZVsiY2NhbGwiXSA9IGNjYWxsOwotLy8gUmV0dXJucyB0
aGUgQyBmdW5jdGlvbiB3aXRoIGEgc3BlY2lmaWVkIGlkZW50aWZpZXIgKGZvciBDKyssIHlvdSBu
ZWVkIHRvIGRvIG1hbnVhbCBuYW1lIG1hbmdsaW5nKQotZnVuY3Rpb24gZ2V0Q0Z1bmMoaWRlbnQp
IHsKLSAgdHJ5IHsKLSAgICB2YXIgZnVuYyA9IE1vZHVsZVsnXycgKyBpZGVudF07IC8vIGNsb3N1
cmUgZXhwb3J0ZWQgZnVuY3Rpb24KLSAgICBpZiAoIWZ1bmMpIGZ1bmMgPSBldmFsKCdfJyArIGlk
ZW50KTsgLy8gZXhwbGljaXQgbG9va3VwCi0gIH0gY2F0Y2goZSkgewotICB9Ci0gIGFzc2VydChm
dW5jLCAnQ2Fubm90IGNhbGwgdW5rbm93biBmdW5jdGlvbiAnICsgaWRlbnQgKyAnIChwZXJoYXBz
IExMVk0gb3B0aW1pemF0aW9ucyBvciBjbG9zdXJlIHJlbW92ZWQgaXQ/KScpOwotICByZXR1cm4g
ZnVuYzsKLX0KLS8vIEludGVybmFsIGZ1bmN0aW9uIHRoYXQgZG9lcyBhIEMgY2FsbCB1c2luZyBh
IGZ1bmN0aW9uLCBub3QgYW4gaWRlbnRpZmllcgotZnVuY3Rpb24gY2NhbGxGdW5jKGZ1bmMsIHJl
dHVyblR5cGUsIGFyZ1R5cGVzLCBhcmdzKSB7Ci0gIHZhciBzdGFjayA9IDA7Ci0gIGZ1bmN0aW9u
IHRvQyh2YWx1ZSwgdHlwZSkgewotICAgIGlmICh0eXBlID09ICdzdHJpbmcnKSB7Ci0gICAgICBp
ZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gMCkg
cmV0dXJuIDA7IC8vIG51bGwgc3RyaW5nCi0gICAgICBpZiAoIXN0YWNrKSBzdGFjayA9IFJ1bnRp
bWUuc3RhY2tTYXZlKCk7Ci0gICAgICB2YXIgcmV0ID0gUnVudGltZS5zdGFja0FsbG9jKHZhbHVl
Lmxlbmd0aCsxKTsKLSAgICAgIHdyaXRlU3RyaW5nVG9NZW1vcnkodmFsdWUsIHJldCk7Ci0gICAg
ICByZXR1cm4gcmV0OwotICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnYXJyYXknKSB7Ci0gICAgICBp
ZiAoIXN0YWNrKSBzdGFjayA9IFJ1bnRpbWUuc3RhY2tTYXZlKCk7Ci0gICAgICB2YXIgcmV0ID0g
UnVudGltZS5zdGFja0FsbG9jKHZhbHVlLmxlbmd0aCk7Ci0gICAgICB3cml0ZUFycmF5VG9NZW1v
cnkodmFsdWUsIHJldCk7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgICByZXR1cm4gdmFs
dWU7Ci0gIH0KLSAgZnVuY3Rpb24gZnJvbUModmFsdWUsIHR5cGUpIHsKLSAgICBpZiAodHlwZSA9
PSAnc3RyaW5nJykgewotICAgICAgcmV0dXJuIFBvaW50ZXJfc3RyaW5naWZ5KHZhbHVlKTsKLSAg
ICB9Ci0gICAgYXNzZXJ0KHR5cGUgIT0gJ2FycmF5Jyk7Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9
Ci0gIHZhciBpID0gMDsKLSAgdmFyIGNBcmdzID0gYXJncyA/IGFyZ3MubWFwKGZ1bmN0aW9uKGFy
ZykgewotICAgIHJldHVybiB0b0MoYXJnLCBhcmdUeXBlc1tpKytdKTsKLSAgfSkgOiBbXTsKLSAg
dmFyIHJldCA9IGZyb21DKGZ1bmMuYXBwbHkobnVsbCwgY0FyZ3MpLCByZXR1cm5UeXBlKTsKLSAg
aWYgKHN0YWNrKSBSdW50aW1lLnN0YWNrUmVzdG9yZShzdGFjayk7Ci0gIHJldHVybiByZXQ7Ci19
Ci0vLyBSZXR1cm5zIGEgbmF0aXZlIEpTIHdyYXBwZXIgZm9yIGEgQyBmdW5jdGlvbi4gVGhpcyBp
cyBzaW1pbGFyIHRvIGNjYWxsLCBidXQKLS8vIHJldHVybnMgYSBmdW5jdGlvbiB5b3UgY2FuIGNh
bGwgcmVwZWF0ZWRseSBpbiBhIG5vcm1hbCB3YXkuIEZvciBleGFtcGxlOgotLy8KLS8vICAgdmFy
IG15X2Z1bmN0aW9uID0gY3dyYXAoJ215X2NfZnVuY3Rpb24nLCAnbnVtYmVyJywgWydudW1iZXIn
LCAnbnVtYmVyJ10pOwotLy8gICBhbGVydChteV9mdW5jdGlvbig1LCAyMikpOwotLy8gICBhbGVy
dChteV9mdW5jdGlvbig5OSwgMTIpKTsKLS8vCi1mdW5jdGlvbiBjd3JhcChpZGVudCwgcmV0dXJu
VHlwZSwgYXJnVHlwZXMpIHsKLSAgdmFyIGZ1bmMgPSBnZXRDRnVuYyhpZGVudCk7Ci0gIHJldHVy
biBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gY2NhbGxGdW5jKGZ1bmMsIHJldHVyblR5cGUsIGFy
Z1R5cGVzLCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTsKLSAgfQotfQot
TW9kdWxlWyJjd3JhcCJdID0gY3dyYXA7Ci0vLyBTZXRzIGEgdmFsdWUgaW4gbWVtb3J5IGluIGEg
ZHluYW1pYyB3YXkgYXQgcnVuLXRpbWUuIFVzZXMgdGhlCi0vLyB0eXBlIGRhdGEuIFRoaXMgaXMg
dGhlIHNhbWUgYXMgbWFrZVNldFZhbHVlLCBleGNlcHQgdGhhdAotLy8gbWFrZVNldFZhbHVlIGlz
IGRvbmUgYXQgY29tcGlsZS10aW1lIGFuZCBnZW5lcmF0ZXMgdGhlIG5lZWRlZAotLy8gY29kZSB0
aGVuLCB3aGVyZWFzIHRoaXMgZnVuY3Rpb24gcGlja3MgdGhlIHJpZ2h0IGNvZGUgYXQKLS8vIHJ1
bi10aW1lLgotLy8gTm90ZSB0aGF0IHNldFZhbHVlIGFuZCBnZXRWYWx1ZSBvbmx5IGRvICphbGln
bmVkKiB3cml0ZXMgYW5kIHJlYWRzIQotLy8gTm90ZSB0aGF0IGNjYWxsIHVzZXMgSlMgdHlwZXMg
YXMgZm9yIGRlZmluaW5nIHR5cGVzLCB3aGlsZSBzZXRWYWx1ZSBhbmQKLS8vIGdldFZhbHVlIG5l
ZWQgTExWTSB0eXBlcyAoJ2k4JywgJ2kzMicpIC0gdGhpcyBpcyBhIGxvd2VyLWxldmVsIG9wZXJh
dGlvbgotZnVuY3Rpb24gc2V0VmFsdWUocHRyLCB2YWx1ZSwgdHlwZSwgbm9TYWZlKSB7Ci0gIHR5
cGUgPSB0eXBlIHx8ICdpOCc7Ci0gIGlmICh0eXBlLmNoYXJBdCh0eXBlLmxlbmd0aC0xKSA9PT0g
JyonKSB0eXBlID0gJ2kzMic7IC8vIHBvaW50ZXJzIGFyZSAzMi1iaXQKLSAgICBzd2l0Y2godHlw
ZSkgewotICAgICAgY2FzZSAnaTEnOiBIRUFQOFsocHRyKV09dmFsdWU7IGJyZWFrOwotICAgICAg
Y2FzZSAnaTgnOiBIRUFQOFsocHRyKV09dmFsdWU7IGJyZWFrOwotICAgICAgY2FzZSAnaTE2Jzog
SEVBUDE2WygocHRyKT4+MSldPXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2UgJ2kzMic6IEhFQVAz
MlsoKHB0cik+PjIpXT12YWx1ZTsgYnJlYWs7Ci0gICAgICBjYXNlICdpNjQnOiAodGVtcEk2NCA9
IFt2YWx1ZT4+PjAsKHRlbXBEb3VibGU9dmFsdWUsKCsoTWF0aC5hYnModGVtcERvdWJsZSkpKSA+
PSAoKygxKSkgPyAodGVtcERvdWJsZSA+ICgrKDApKSA/ICgoTWF0aC5taW4oKCsoTWF0aC5mbG9v
cigodGVtcERvdWJsZSkvKCsoNDI5NDk2NzI5NikpKSkpLCAoKyg0Mjk0OTY3Mjk1KSkpKXwwKT4+
PjAgOiAofn4oKCsoTWF0aC5jZWlsKCh0ZW1wRG91YmxlIC0gKygoKH5+KHRlbXBEb3VibGUpKSk+
Pj4wKSkvKCsoNDI5NDk2NzI5NikpKSkpKSk+Pj4wKSA6IDApXSxIRUFQMzJbKChwdHIpPj4yKV09
dGVtcEk2NFswXSxIRUFQMzJbKCgocHRyKSsoNCkpPj4yKV09dGVtcEk2NFsxXSk7IGJyZWFrOwot
ICAgICAgY2FzZSAnZmxvYXQnOiBIRUFQRjMyWygocHRyKT4+MildPXZhbHVlOyBicmVhazsKLSAg
ICAgIGNhc2UgJ2RvdWJsZSc6IEhFQVBGNjRbKChwdHIpPj4zKV09dmFsdWU7IGJyZWFrOwotICAg
ICAgZGVmYXVsdDogYWJvcnQoJ2ludmFsaWQgdHlwZSBmb3Igc2V0VmFsdWU6ICcgKyB0eXBlKTsK
LSAgICB9Ci19Ci1Nb2R1bGVbJ3NldFZhbHVlJ10gPSBzZXRWYWx1ZTsKLS8vIFBhcmFsbGVsIHRv
IHNldFZhbHVlLgotZnVuY3Rpb24gZ2V0VmFsdWUocHRyLCB0eXBlLCBub1NhZmUpIHsKLSAgdHlw
ZSA9IHR5cGUgfHwgJ2k4JzsKLSAgaWYgKHR5cGUuY2hhckF0KHR5cGUubGVuZ3RoLTEpID09PSAn
KicpIHR5cGUgPSAnaTMyJzsgLy8gcG9pbnRlcnMgYXJlIDMyLWJpdAotICAgIHN3aXRjaCh0eXBl
KSB7Ci0gICAgICBjYXNlICdpMSc6IHJldHVybiBIRUFQOFsocHRyKV07Ci0gICAgICBjYXNlICdp
OCc6IHJldHVybiBIRUFQOFsocHRyKV07Ci0gICAgICBjYXNlICdpMTYnOiByZXR1cm4gSEVBUDE2
WygocHRyKT4+MSldOwotICAgICAgY2FzZSAnaTMyJzogcmV0dXJuIEhFQVAzMlsoKHB0cik+PjIp
XTsKLSAgICAgIGNhc2UgJ2k2NCc6IHJldHVybiBIRUFQMzJbKChwdHIpPj4yKV07Ci0gICAgICBj
YXNlICdmbG9hdCc6IHJldHVybiBIRUFQRjMyWygocHRyKT4+MildOwotICAgICAgY2FzZSAnZG91
YmxlJzogcmV0dXJuIEhFQVBGNjRbKChwdHIpPj4zKV07Ci0gICAgICBkZWZhdWx0OiBhYm9ydCgn
aW52YWxpZCB0eXBlIGZvciBzZXRWYWx1ZTogJyArIHR5cGUpOwotICAgIH0KLSAgcmV0dXJuIG51
bGw7Ci19Ci1Nb2R1bGVbJ2dldFZhbHVlJ10gPSBnZXRWYWx1ZTsKLXZhciBBTExPQ19OT1JNQUwg
PSAwOyAvLyBUcmllcyB0byB1c2UgX21hbGxvYygpCi12YXIgQUxMT0NfU1RBQ0sgPSAxOyAvLyBM
aXZlcyBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGNhbGwKLXZhciBB
TExPQ19TVEFUSUMgPSAyOyAvLyBDYW5ub3QgYmUgZnJlZWQKLXZhciBBTExPQ19EWU5BTUlDID0g
MzsgLy8gQ2Fubm90IGJlIGZyZWVkIGV4Y2VwdCB0aHJvdWdoIHNicmsKLXZhciBBTExPQ19OT05F
ID0gNDsgLy8gRG8gbm90IGFsbG9jYXRlCi1Nb2R1bGVbJ0FMTE9DX05PUk1BTCddID0gQUxMT0Nf
Tk9STUFMOwotTW9kdWxlWydBTExPQ19TVEFDSyddID0gQUxMT0NfU1RBQ0s7Ci1Nb2R1bGVbJ0FM
TE9DX1NUQVRJQyddID0gQUxMT0NfU1RBVElDOwotTW9kdWxlWydBTExPQ19EWU5BTUlDJ10gPSBB
TExPQ19EWU5BTUlDOwotTW9kdWxlWydBTExPQ19OT05FJ10gPSBBTExPQ19OT05FOwotLy8gYWxs
b2NhdGUoKTogVGhpcyBpcyBmb3IgaW50ZXJuYWwgdXNlLiBZb3UgY2FuIHVzZSBpdCB5b3Vyc2Vs
ZiBhcyB3ZWxsLCBidXQgdGhlIGludGVyZmFjZQotLy8gICAgICAgICAgICAgaXMgYSBsaXR0bGUg
dHJpY2t5IChzZWUgZG9jcyByaWdodCBiZWxvdykuIFRoZSByZWFzb24gaXMgdGhhdCBpdCBpcyBv
cHRpbWl6ZWQKLS8vICAgICAgICAgICAgIGZvciBtdWx0aXBsZSBzeW50YXhlcyB0byBzYXZlIHNw
YWNlIGluIGdlbmVyYXRlZCBjb2RlLiBTbyB5b3Ugc2hvdWxkCi0vLyAgICAgICAgICAgICBub3Jt
YWxseSBub3QgdXNlIGFsbG9jYXRlKCksIGFuZCBpbnN0ZWFkIGFsbG9jYXRlIG1lbW9yeSB1c2lu
ZyBfbWFsbG9jKCksCi0vLyAgICAgICAgICAgICBpbml0aWFsaXplIGl0IHdpdGggc2V0VmFsdWUo
KSwgYW5kIHNvIGZvcnRoLgotLy8gQHNsYWI6IEFuIGFycmF5IG9mIGRhdGEsIG9yIGEgbnVtYmVy
LiBJZiBhIG51bWJlciwgdGhlbiB0aGUgc2l6ZSBvZiB0aGUgYmxvY2sgdG8gYWxsb2NhdGUsCi0v
LyAgICAgICAgaW4gKmJ5dGVzKiAobm90ZSB0aGF0IHRoaXMgaXMgc29tZXRpbWVzIGNvbmZ1c2lu
ZzogdGhlIG5leHQgcGFyYW1ldGVyIGRvZXMgbm90Ci0vLyAgICAgICAgYWZmZWN0IHRoaXMhKQot
Ly8gQHR5cGVzOiBFaXRoZXIgYW4gYXJyYXkgb2YgdHlwZXMsIG9uZSBmb3IgZWFjaCBieXRlIChv
ciAwIGlmIG5vIHR5cGUgYXQgdGhhdCBwb3NpdGlvbiksCi0vLyAgICAgICAgIG9yIGEgc2luZ2xl
IHR5cGUgd2hpY2ggaXMgdXNlZCBmb3IgdGhlIGVudGlyZSBibG9jay4gVGhpcyBvbmx5IG1hdHRl
cnMgaWYgdGhlcmUKLS8vICAgICAgICAgaXMgaW5pdGlhbCBkYXRhIC0gaWYgQHNsYWIgaXMgYSBu
dW1iZXIsIHRoZW4gdGhpcyBkb2VzIG5vdCBtYXR0ZXIgYXQgYWxsIGFuZCBpcwotLy8gICAgICAg
ICBpZ25vcmVkLgotLy8gQGFsbG9jYXRvcjogSG93IHRvIGFsbG9jYXRlIG1lbW9yeSwgc2VlIEFM
TE9DXyoKLWZ1bmN0aW9uIGFsbG9jYXRlKHNsYWIsIHR5cGVzLCBhbGxvY2F0b3IsIHB0cikgewot
ICB2YXIgemVyb2luaXQsIHNpemU7Ci0gIGlmICh0eXBlb2Ygc2xhYiA9PT0gJ251bWJlcicpIHsK
LSAgICB6ZXJvaW5pdCA9IHRydWU7Ci0gICAgc2l6ZSA9IHNsYWI7Ci0gIH0gZWxzZSB7Ci0gICAg
emVyb2luaXQgPSBmYWxzZTsKLSAgICBzaXplID0gc2xhYi5sZW5ndGg7Ci0gIH0KLSAgdmFyIHNp
bmdsZVR5cGUgPSB0eXBlb2YgdHlwZXMgPT09ICdzdHJpbmcnID8gdHlwZXMgOiBudWxsOwotICB2
YXIgcmV0OwotICBpZiAoYWxsb2NhdG9yID09IEFMTE9DX05PTkUpIHsKLSAgICByZXQgPSBwdHI7
Ci0gIH0gZWxzZSB7Ci0gICAgcmV0ID0gW19tYWxsb2MsIFJ1bnRpbWUuc3RhY2tBbGxvYywgUnVu
dGltZS5zdGF0aWNBbGxvYywgUnVudGltZS5keW5hbWljQWxsb2NdW2FsbG9jYXRvciA9PT0gdW5k
ZWZpbmVkID8gQUxMT0NfU1RBVElDIDogYWxsb2NhdG9yXShNYXRoLm1heChzaXplLCBzaW5nbGVU
eXBlID8gMSA6IHR5cGVzLmxlbmd0aCkpOwotICB9Ci0gIGlmICh6ZXJvaW5pdCkgewotICAgIHZh
ciBwdHIgPSByZXQsIHN0b3A7Ci0gICAgYXNzZXJ0KChyZXQgJiAzKSA9PSAwKTsKLSAgICBzdG9w
ID0gcmV0ICsgKHNpemUgJiB+Myk7Ci0gICAgZm9yICg7IHB0ciA8IHN0b3A7IHB0ciArPSA0KSB7
Ci0gICAgICBIRUFQMzJbKChwdHIpPj4yKV09MDsKLSAgICB9Ci0gICAgc3RvcCA9IHJldCArIHNp
emU7Ci0gICAgd2hpbGUgKHB0ciA8IHN0b3ApIHsKLSAgICAgIEhFQVA4WygocHRyKyspfDApXT0w
OwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotICB9Ci0gIGlmIChzaW5nbGVUeXBlID09PSAnaTgn
KSB7Ci0gICAgaWYgKHNsYWIuc3ViYXJyYXkgfHwgc2xhYi5zbGljZSkgewotICAgICAgSEVBUFU4
LnNldChzbGFiLCByZXQpOwotICAgIH0gZWxzZSB7Ci0gICAgICBIRUFQVTguc2V0KG5ldyBVaW50
OEFycmF5KHNsYWIpLCByZXQpOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotICB9Ci0gIHZhciBp
ID0gMCwgdHlwZSwgdHlwZVNpemUsIHByZXZpb3VzVHlwZTsKLSAgd2hpbGUgKGkgPCBzaXplKSB7
Ci0gICAgdmFyIGN1cnIgPSBzbGFiW2ldOwotICAgIGlmICh0eXBlb2YgY3VyciA9PT0gJ2Z1bmN0
aW9uJykgewotICAgICAgY3VyciA9IFJ1bnRpbWUuZ2V0RnVuY3Rpb25JbmRleChjdXJyKTsKLSAg
ICB9Ci0gICAgdHlwZSA9IHNpbmdsZVR5cGUgfHwgdHlwZXNbaV07Ci0gICAgaWYgKHR5cGUgPT09
IDApIHsKLSAgICAgIGkrKzsKLSAgICAgIGNvbnRpbnVlOwotICAgIH0KLSAgICBpZiAodHlwZSA9
PSAnaTY0JykgdHlwZSA9ICdpMzInOyAvLyBzcGVjaWFsIGNhc2U6IHdlIGhhdmUgb25lIGkzMiBo
ZXJlLCBhbmQgb25lIGkzMiBsYXRlcgotICAgIHNldFZhbHVlKHJldCtpLCBjdXJyLCB0eXBlKTsK
LSAgICAvLyBubyBuZWVkIHRvIGxvb2sgdXAgc2l6ZSB1bmxlc3MgdHlwZSBjaGFuZ2VzLCBzbyBj
YWNoZSBpdAotICAgIGlmIChwcmV2aW91c1R5cGUgIT09IHR5cGUpIHsKLSAgICAgIHR5cGVTaXpl
ID0gUnVudGltZS5nZXROYXRpdmVUeXBlU2l6ZSh0eXBlKTsKLSAgICAgIHByZXZpb3VzVHlwZSA9
IHR5cGU7Ci0gICAgfQotICAgIGkgKz0gdHlwZVNpemU7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0K
LU1vZHVsZVsnYWxsb2NhdGUnXSA9IGFsbG9jYXRlOwotZnVuY3Rpb24gUG9pbnRlcl9zdHJpbmdp
ZnkocHRyLCAvKiBvcHRpb25hbCAqLyBsZW5ndGgpIHsKLSAgLy8gVE9ETzogdXNlIFRleHREZWNv
ZGVyCi0gIC8vIEZpbmQgdGhlIGxlbmd0aCwgYW5kIGNoZWNrIGZvciBVVEYgd2hpbGUgZG9pbmcg
c28KLSAgdmFyIGhhc1V0ZiA9IGZhbHNlOwotICB2YXIgdDsKLSAgdmFyIGkgPSAwOwotICB3aGls
ZSAoMSkgewotICAgIHQgPSBIRUFQVThbKCgocHRyKSsoaSkpfDApXTsKLSAgICBpZiAodCA+PSAx
MjgpIGhhc1V0ZiA9IHRydWU7Ci0gICAgZWxzZSBpZiAodCA9PSAwICYmICFsZW5ndGgpIGJyZWFr
OwotICAgIGkrKzsKLSAgICBpZiAobGVuZ3RoICYmIGkgPT0gbGVuZ3RoKSBicmVhazsKLSAgfQot
ICBpZiAoIWxlbmd0aCkgbGVuZ3RoID0gaTsKLSAgdmFyIHJldCA9ICcnOwotICBpZiAoIWhhc1V0
ZikgewotICAgIHZhciBNQVhfQ0hVTksgPSAxMDI0OyAvLyBzcGxpdCB1cCBpbnRvIGNodW5rcywg
YmVjYXVzZSAuYXBwbHkgb24gYSBodWdlIHN0cmluZyBjYW4gb3ZlcmZsb3cgdGhlIHN0YWNrCi0g
ICAgdmFyIGN1cnI7Ci0gICAgd2hpbGUgKGxlbmd0aCA+IDApIHsKLSAgICAgIGN1cnIgPSBTdHJp
bmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywgSEVBUFU4LnN1YmFycmF5KHB0ciwgcHRyICsg
TWF0aC5taW4obGVuZ3RoLCBNQVhfQ0hVTkspKSk7Ci0gICAgICByZXQgPSByZXQgPyByZXQgKyBj
dXJyIDogY3VycjsKLSAgICAgIHB0ciArPSBNQVhfQ0hVTks7Ci0gICAgICBsZW5ndGggLT0gTUFY
X0NIVU5LOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotICB9Ci0gIHZhciB1dGY4ID0gbmV3IFJ1
bnRpbWUuVVRGOFByb2Nlc3NvcigpOwotICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsK
LSAgICB0ID0gSEVBUFU4WygoKHB0cikrKGkpKXwwKV07Ci0gICAgcmV0ICs9IHV0ZjgucHJvY2Vz
c0NDaGFyKHQpOwotICB9Ci0gIHJldHVybiByZXQ7Ci19Ci1Nb2R1bGVbJ1BvaW50ZXJfc3RyaW5n
aWZ5J10gPSBQb2ludGVyX3N0cmluZ2lmeTsKLS8vIE1lbW9yeSBtYW5hZ2VtZW50Ci12YXIgUEFH
RV9TSVpFID0gNDA5NjsKLWZ1bmN0aW9uIGFsaWduTWVtb3J5UGFnZSh4KSB7Ci0gIHJldHVybiAo
KHgrNDA5NSk+PjEyKTw8MTI7Ci19Ci12YXIgSEVBUDsKLXZhciBIRUFQOCwgSEVBUFU4LCBIRUFQ
MTYsIEhFQVBVMTYsIEhFQVAzMiwgSEVBUFUzMiwgSEVBUEYzMiwgSEVBUEY2NDsKLXZhciBTVEFU
SUNfQkFTRSA9IDAsIFNUQVRJQ1RPUCA9IDAsIHN0YXRpY1NlYWxlZCA9IGZhbHNlOyAvLyBzdGF0
aWMgYXJlYQotdmFyIFNUQUNLX0JBU0UgPSAwLCBTVEFDS1RPUCA9IDAsIFNUQUNLX01BWCA9IDA7
IC8vIHN0YWNrIGFyZWEKLXZhciBEWU5BTUlDX0JBU0UgPSAwLCBEWU5BTUlDVE9QID0gMDsgLy8g
ZHluYW1pYyBhcmVhIGhhbmRsZWQgYnkgc2JyawotZnVuY3Rpb24gZW5sYXJnZU1lbW9yeSgpIHsK
LSAgYWJvcnQoJ0Nhbm5vdCBlbmxhcmdlIG1lbW9yeSBhcnJheXMgaW4gYXNtLmpzLiBFaXRoZXIg
KDEpIGNvbXBpbGUgd2l0aCAtcyBUT1RBTF9NRU1PUlk9WCB3aXRoIFggaGlnaGVyIHRoYW4gdGhl
IGN1cnJlbnQgdmFsdWUsIG9yICgyKSBzZXQgTW9kdWxlLlRPVEFMX01FTU9SWSBiZWZvcmUgdGhl
IHByb2dyYW0gcnVucy4nKTsKLX0KLXZhciBUT1RBTF9TVEFDSyA9IE1vZHVsZVsnVE9UQUxfU1RB
Q0snXSB8fCA1MjQyODgwOwotdmFyIFRPVEFMX01FTU9SWSA9IE1vZHVsZVsnVE9UQUxfTUVNT1JZ
J10gfHwgMTY3NzcyMTY7Ci12YXIgRkFTVF9NRU1PUlkgPSBNb2R1bGVbJ0ZBU1RfTUVNT1JZJ10g
fHwgMjA5NzE1MjsKLS8vIEluaXRpYWxpemUgdGhlIHJ1bnRpbWUncyBtZW1vcnkKLS8vIGNoZWNr
IGZvciBmdWxsIGVuZ2luZSBzdXBwb3J0ICh1c2Ugc3RyaW5nICdzdWJhcnJheScgdG8gYXZvaWQg
Y2xvc3VyZSBjb21waWxlciBjb25mdXNpb24pCi1hc3NlcnQoISFJbnQzMkFycmF5ICYmICEhRmxv
YXQ2NEFycmF5ICYmICEhKG5ldyBJbnQzMkFycmF5KDEpWydzdWJhcnJheSddKSAmJiAhIShuZXcg
SW50MzJBcnJheSgxKVsnc2V0J10pLAotICAgICAgICdDYW5ub3QgZmFsbGJhY2sgdG8gbm9uLXR5
cGVkIGFycmF5IGNhc2U6IENvZGUgaXMgdG9vIHNwZWNpYWxpemVkJyk7Ci12YXIgYnVmZmVyID0g
bmV3IEFycmF5QnVmZmVyKFRPVEFMX01FTU9SWSk7Ci1IRUFQOCA9IG5ldyBJbnQ4QXJyYXkoYnVm
ZmVyKTsKLUhFQVAxNiA9IG5ldyBJbnQxNkFycmF5KGJ1ZmZlcik7Ci1IRUFQMzIgPSBuZXcgSW50
MzJBcnJheShidWZmZXIpOwotSEVBUFU4ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKLUhFQVBV
MTYgPSBuZXcgVWludDE2QXJyYXkoYnVmZmVyKTsKLUhFQVBVMzIgPSBuZXcgVWludDMyQXJyYXko
YnVmZmVyKTsKLUhFQVBGMzIgPSBuZXcgRmxvYXQzMkFycmF5KGJ1ZmZlcik7Ci1IRUFQRjY0ID0g
bmV3IEZsb2F0NjRBcnJheShidWZmZXIpOwotLy8gRW5kaWFubmVzcyBjaGVjayAobm90ZTogYXNz
dW1lcyBjb21waWxlciBhcmNoIHdhcyBsaXR0bGUtZW5kaWFuKQotSEVBUDMyWzBdID0gMjU1Owot
YXNzZXJ0KEhFQVBVOFswXSA9PT0gMjU1ICYmIEhFQVBVOFszXSA9PT0gMCwgJ1R5cGVkIGFycmF5
cyAyIG11c3QgYmUgcnVuIG9uIGEgbGl0dGxlLWVuZGlhbiBzeXN0ZW0nKTsKLU1vZHVsZVsnSEVB
UCddID0gSEVBUDsKLU1vZHVsZVsnSEVBUDgnXSA9IEhFQVA4OwotTW9kdWxlWydIRUFQMTYnXSA9
IEhFQVAxNjsKLU1vZHVsZVsnSEVBUDMyJ10gPSBIRUFQMzI7Ci1Nb2R1bGVbJ0hFQVBVOCddID0g
SEVBUFU4OwotTW9kdWxlWydIRUFQVTE2J10gPSBIRUFQVTE2OwotTW9kdWxlWydIRUFQVTMyJ10g
PSBIRUFQVTMyOwotTW9kdWxlWydIRUFQRjMyJ10gPSBIRUFQRjMyOwotTW9kdWxlWydIRUFQRjY0
J10gPSBIRUFQRjY0OwotZnVuY3Rpb24gY2FsbFJ1bnRpbWVDYWxsYmFja3MoY2FsbGJhY2tzKSB7
Ci0gIHdoaWxlKGNhbGxiYWNrcy5sZW5ndGggPiAwKSB7Ci0gICAgdmFyIGNhbGxiYWNrID0gY2Fs
bGJhY2tzLnNoaWZ0KCk7Ci0gICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7
Ci0gICAgICBjYWxsYmFjaygpOwotICAgICAgY29udGludWU7Ci0gICAgfQotICAgIHZhciBmdW5j
ID0gY2FsbGJhY2suZnVuYzsKLSAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdudW1iZXInKSB7Ci0g
ICAgICBpZiAoY2FsbGJhY2suYXJnID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgUnVudGltZS5k
eW5DYWxsKCd2JywgZnVuYyk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBSdW50aW1lLmR5bkNh
bGwoJ3ZpJywgZnVuYywgW2NhbGxiYWNrLmFyZ10pOwotICAgICAgfQotICAgIH0gZWxzZSB7Ci0g
ICAgICBmdW5jKGNhbGxiYWNrLmFyZyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNhbGxiYWNrLmFy
Zyk7Ci0gICAgfQotICB9Ci19Ci12YXIgX19BVFBSRVJVTl9fICA9IFtdOyAvLyBmdW5jdGlvbnMg
Y2FsbGVkIGJlZm9yZSB0aGUgcnVudGltZSBpcyBpbml0aWFsaXplZAotdmFyIF9fQVRJTklUX18g
ICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCBkdXJpbmcgc3RhcnR1cAotdmFyIF9fQVRNQUlO
X18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCB3aGVuIG1haW4oKSBpcyB0byBiZSBydW4K
LXZhciBfX0FURVhJVF9fICAgID0gW107IC8vIGZ1bmN0aW9ucyBjYWxsZWQgZHVyaW5nIHNodXRk
b3duCi12YXIgX19BVFBPU1RSVU5fXyA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIGFmdGVyIHRo
ZSBydW50aW1lIGhhcyBleGl0ZWQKLXZhciBydW50aW1lSW5pdGlhbGl6ZWQgPSBmYWxzZTsKLWZ1
bmN0aW9uIHByZVJ1bigpIHsKLSAgLy8gY29tcGF0aWJpbGl0eSAtIG1lcmdlIGluIGFueXRoaW5n
IGZyb20gTW9kdWxlWydwcmVSdW4nXSBhdCB0aGlzIHRpbWUKLSAgaWYgKE1vZHVsZVsncHJlUnVu
J10pIHsKLSAgICBpZiAodHlwZW9mIE1vZHVsZVsncHJlUnVuJ10gPT0gJ2Z1bmN0aW9uJykgTW9k
dWxlWydwcmVSdW4nXSA9IFtNb2R1bGVbJ3ByZVJ1biddXTsKLSAgICB3aGlsZSAoTW9kdWxlWydw
cmVSdW4nXS5sZW5ndGgpIHsKLSAgICAgIGFkZE9uUHJlUnVuKE1vZHVsZVsncHJlUnVuJ10uc2hp
ZnQoKSk7Ci0gICAgfQotICB9Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRQUkVSVU5fXyk7
Ci19Ci1mdW5jdGlvbiBlbnN1cmVJbml0UnVudGltZSgpIHsKLSAgaWYgKHJ1bnRpbWVJbml0aWFs
aXplZCkgcmV0dXJuOwotICBydW50aW1lSW5pdGlhbGl6ZWQgPSB0cnVlOwotICBjYWxsUnVudGlt
ZUNhbGxiYWNrcyhfX0FUSU5JVF9fKTsKLX0KLWZ1bmN0aW9uIHByZU1haW4oKSB7Ci0gIGNhbGxS
dW50aW1lQ2FsbGJhY2tzKF9fQVRNQUlOX18pOwotfQotZnVuY3Rpb24gZXhpdFJ1bnRpbWUoKSB7
Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRFWElUX18pOwotfQotZnVuY3Rpb24gcG9zdFJ1
bigpIHsKLSAgLy8gY29tcGF0aWJpbGl0eSAtIG1lcmdlIGluIGFueXRoaW5nIGZyb20gTW9kdWxl
Wydwb3N0UnVuJ10gYXQgdGhpcyB0aW1lCi0gIGlmIChNb2R1bGVbJ3Bvc3RSdW4nXSkgewotICAg
IGlmICh0eXBlb2YgTW9kdWxlWydwb3N0UnVuJ10gPT0gJ2Z1bmN0aW9uJykgTW9kdWxlWydwb3N0
UnVuJ10gPSBbTW9kdWxlWydwb3N0UnVuJ11dOwotICAgIHdoaWxlIChNb2R1bGVbJ3Bvc3RSdW4n
XS5sZW5ndGgpIHsKLSAgICAgIGFkZE9uUG9zdFJ1bihNb2R1bGVbJ3Bvc3RSdW4nXS5zaGlmdCgp
KTsKLSAgICB9Ci0gIH0KLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVFBPU1RSVU5fXyk7Ci19
Ci1mdW5jdGlvbiBhZGRPblByZVJ1bihjYikgewotICBfX0FUUFJFUlVOX18udW5zaGlmdChjYik7
Ci19Ci1Nb2R1bGVbJ2FkZE9uUHJlUnVuJ10gPSBNb2R1bGUuYWRkT25QcmVSdW4gPSBhZGRPblBy
ZVJ1bjsKLWZ1bmN0aW9uIGFkZE9uSW5pdChjYikgewotICBfX0FUSU5JVF9fLnVuc2hpZnQoY2Ip
OwotfQotTW9kdWxlWydhZGRPbkluaXQnXSA9IE1vZHVsZS5hZGRPbkluaXQgPSBhZGRPbkluaXQ7
Ci1mdW5jdGlvbiBhZGRPblByZU1haW4oY2IpIHsKLSAgX19BVE1BSU5fXy51bnNoaWZ0KGNiKTsK
LX0KLU1vZHVsZVsnYWRkT25QcmVNYWluJ10gPSBNb2R1bGUuYWRkT25QcmVNYWluID0gYWRkT25Q
cmVNYWluOwotZnVuY3Rpb24gYWRkT25FeGl0KGNiKSB7Ci0gIF9fQVRFWElUX18udW5zaGlmdChj
Yik7Ci19Ci1Nb2R1bGVbJ2FkZE9uRXhpdCddID0gTW9kdWxlLmFkZE9uRXhpdCA9IGFkZE9uRXhp
dDsKLWZ1bmN0aW9uIGFkZE9uUG9zdFJ1bihjYikgewotICBfX0FUUE9TVFJVTl9fLnVuc2hpZnQo
Y2IpOwotfQotTW9kdWxlWydhZGRPblBvc3RSdW4nXSA9IE1vZHVsZS5hZGRPblBvc3RSdW4gPSBh
ZGRPblBvc3RSdW47Ci0vLyBUb29scwotLy8gVGhpcyBwcm9jZXNzZXMgYSBKUyBzdHJpbmcgaW50
byBhIEMtbGluZSBhcnJheSBvZiBudW1iZXJzLCAwLXRlcm1pbmF0ZWQuCi0vLyBGb3IgTExWTS1v
cmlnaW5hdGluZyBzdHJpbmdzLCBzZWUgcGFyc2VyLmpzOnBhcnNlTExWTVN0cmluZyBmdW5jdGlv
bgotZnVuY3Rpb24gaW50QXJyYXlGcm9tU3RyaW5nKHN0cmluZ3ksIGRvbnRBZGROdWxsLCBsZW5n
dGggLyogb3B0aW9uYWwgKi8pIHsKLSAgdmFyIHJldCA9IChuZXcgUnVudGltZS5VVEY4UHJvY2Vz
c29yKCkpLnByb2Nlc3NKU1N0cmluZyhzdHJpbmd5KTsKLSAgaWYgKGxlbmd0aCkgewotICAgIHJl
dC5sZW5ndGggPSBsZW5ndGg7Ci0gIH0KLSAgaWYgKCFkb250QWRkTnVsbCkgewotICAgIHJldC5w
dXNoKDApOwotICB9Ci0gIHJldHVybiByZXQ7Ci19Ci1Nb2R1bGVbJ2ludEFycmF5RnJvbVN0cmlu
ZyddID0gaW50QXJyYXlGcm9tU3RyaW5nOwotZnVuY3Rpb24gaW50QXJyYXlUb1N0cmluZyhhcnJh
eSkgewotICB2YXIgcmV0ID0gW107Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3Ro
OyBpKyspIHsKLSAgICB2YXIgY2hyID0gYXJyYXlbaV07Ci0gICAgaWYgKGNociA+IDB4RkYpIHsK
LSAgICAgIGNociAmPSAweEZGOwotICAgIH0KLSAgICByZXQucHVzaChTdHJpbmcuZnJvbUNoYXJD
b2RlKGNocikpOwotICB9Ci0gIHJldHVybiByZXQuam9pbignJyk7Ci19Ci1Nb2R1bGVbJ2ludEFy
cmF5VG9TdHJpbmcnXSA9IGludEFycmF5VG9TdHJpbmc7Ci0vLyBXcml0ZSBhIEphdmFzY3JpcHQg
YXJyYXkgdG8gc29tZXdoZXJlIGluIHRoZSBoZWFwCi1mdW5jdGlvbiB3cml0ZVN0cmluZ1RvTWVt
b3J5KHN0cmluZywgYnVmZmVyLCBkb250QWRkTnVsbCkgewotICB2YXIgYXJyYXkgPSBpbnRBcnJh
eUZyb21TdHJpbmcoc3RyaW5nLCBkb250QWRkTnVsbCk7Ci0gIHZhciBpID0gMDsKLSAgd2hpbGUg
KGkgPCBhcnJheS5sZW5ndGgpIHsKLSAgICB2YXIgY2hyID0gYXJyYXlbaV07Ci0gICAgSEVBUDhb
KCgoYnVmZmVyKSsoaSkpfDApXT1jaHIKLSAgICBpID0gaSArIDE7Ci0gIH0KLX0KLU1vZHVsZVsn
d3JpdGVTdHJpbmdUb01lbW9yeSddID0gd3JpdGVTdHJpbmdUb01lbW9yeTsKLWZ1bmN0aW9uIHdy
aXRlQXJyYXlUb01lbW9yeShhcnJheSwgYnVmZmVyKSB7Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwg
YXJyYXkubGVuZ3RoOyBpKyspIHsKLSAgICBIRUFQOFsoKChidWZmZXIpKyhpKSl8MCldPWFycmF5
W2ldOwotICB9Ci19Ci1Nb2R1bGVbJ3dyaXRlQXJyYXlUb01lbW9yeSddID0gd3JpdGVBcnJheVRv
TWVtb3J5OwotZnVuY3Rpb24gdW5TaWduKHZhbHVlLCBiaXRzLCBpZ25vcmUsIHNpZykgewotICBp
ZiAodmFsdWUgPj0gMCkgewotICAgIHJldHVybiB2YWx1ZTsKLSAgfQotICByZXR1cm4gYml0cyA8
PSAzMiA/IDIqTWF0aC5hYnMoMSA8PCAoYml0cy0xKSkgKyB2YWx1ZSAvLyBOZWVkIHNvbWUgdHJp
Y2tlcnksIHNpbmNlIGlmIGJpdHMgPT0gMzIsIHdlIGFyZSByaWdodCBhdCB0aGUgbGltaXQgb2Yg
dGhlIGJpdHMgSlMgdXNlcyBpbiBiaXRzaGlmdHMKLSAgICAgICAgICAgICAgICAgICAgOiBNYXRo
LnBvdygyLCBiaXRzKSAgICAgICAgICsgdmFsdWU7Ci19Ci1mdW5jdGlvbiByZVNpZ24odmFsdWUs
IGJpdHMsIGlnbm9yZSwgc2lnKSB7Ci0gIGlmICh2YWx1ZSA8PSAwKSB7Ci0gICAgcmV0dXJuIHZh
bHVlOwotICB9Ci0gIHZhciBoYWxmID0gYml0cyA8PSAzMiA/IE1hdGguYWJzKDEgPDwgKGJpdHMt
MSkpIC8vIGFicyBpcyBuZWVkZWQgaWYgYml0cyA9PSAzMgotICAgICAgICAgICAgICAgICAgICAg
ICAgOiBNYXRoLnBvdygyLCBiaXRzLTEpOwotICBpZiAodmFsdWUgPj0gaGFsZiAmJiAoYml0cyA8
PSAzMiB8fCB2YWx1ZSA+IGhhbGYpKSB7IC8vIGZvciBodWdlIHZhbHVlcywgd2UgY2FuIGhpdCB0
aGUgcHJlY2lzaW9uIGxpbWl0IGFuZCBhbHdheXMgZ2V0IHRydWUgaGVyZS4gc28gZG9uJ3QgZG8g
dGhhdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIGJ1dCwgaW4gZ2VuZXJhbCB0aGVyZSBpcyBubyBwZXJmZWN0IHNvbHV0aW9uIGhlcmUu
IFdpdGggNjQtYml0IGludHMsIHdlIGdldCByb3VuZGluZyBhbmQgZXJyb3JzCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogSW4g
aTY0IG1vZGUgMSwgcmVzaWduIHRoZSB0d28gcGFydHMgc2VwYXJhdGVseSBhbmQgc2FmZWx5Ci0g
ICAgdmFsdWUgPSAtMipoYWxmICsgdmFsdWU7IC8vIENhbm5vdCBiaXRzaGlmdCBoYWxmLCBhcyBp
dCBtYXkgYmUgYXQgdGhlIGxpbWl0IG9mIHRoZSBiaXRzIEpTIHVzZXMgaW4gYml0c2hpZnRzCi0g
IH0KLSAgcmV0dXJuIHZhbHVlOwotfQotaWYgKCFNYXRoWydpbXVsJ10pIE1hdGhbJ2ltdWwnXSA9
IGZ1bmN0aW9uKGEsIGIpIHsKLSAgdmFyIGFoICA9IGEgPj4+IDE2OwotICB2YXIgYWwgPSBhICYg
MHhmZmZmOwotICB2YXIgYmggID0gYiA+Pj4gMTY7Ci0gIHZhciBibCA9IGIgJiAweGZmZmY7Ci0g
IHJldHVybiAoYWwqYmwgKyAoKGFoKmJsICsgYWwqYmgpIDw8IDE2KSl8MDsKLX07Ci1NYXRoLmlt
dWwgPSBNYXRoWydpbXVsJ107Ci0vLyBBIGNvdW50ZXIgb2YgZGVwZW5kZW5jaWVzIGZvciBjYWxs
aW5nIHJ1bigpLiBJZiB3ZSBuZWVkIHRvCi0vLyBkbyBhc3luY2hyb25vdXMgd29yayBiZWZvcmUg
cnVubmluZywgaW5jcmVtZW50IHRoaXMgYW5kCi0vLyBkZWNyZW1lbnQgaXQuIEluY3JlbWVudGlu
ZyBtdXN0IGhhcHBlbiBpbiBhIHBsYWNlIGxpa2UKLS8vIFBSRV9SVU5fQURESVRJT05TICh1c2Vk
IGJ5IGVtY2MgdG8gYWRkIGZpbGUgcHJlbG9hZGluZykuCi0vLyBOb3RlIHRoYXQgeW91IGNhbiBh
ZGQgZGVwZW5kZW5jaWVzIGluIHByZVJ1biwgZXZlbiB0aG91Z2gKLS8vIGl0IGhhcHBlbnMgcmln
aHQgYmVmb3JlIHJ1biAtIHJ1biB3aWxsIGJlIHBvc3Rwb25lZCB1bnRpbAotLy8gdGhlIGRlcGVu
ZGVuY2llcyBhcmUgbWV0LgotdmFyIHJ1bkRlcGVuZGVuY2llcyA9IDA7Ci12YXIgcnVuRGVwZW5k
ZW5jeVRyYWNraW5nID0ge307Ci12YXIgY2FsbGVkSW5pdCA9IGZhbHNlLCBjYWxsZWRSdW4gPSBm
YWxzZTsKLXZhciBydW5EZXBlbmRlbmN5V2F0Y2hlciA9IG51bGw7Ci1mdW5jdGlvbiBhZGRSdW5E
ZXBlbmRlbmN5KGlkKSB7Ci0gIHJ1bkRlcGVuZGVuY2llcysrOwotICBpZiAoTW9kdWxlWydtb25p
dG9yUnVuRGVwZW5kZW5jaWVzJ10pIHsKLSAgICBNb2R1bGVbJ21vbml0b3JSdW5EZXBlbmRlbmNp
ZXMnXShydW5EZXBlbmRlbmNpZXMpOwotICB9Ci0gIGlmIChpZCkgewotICAgIGFzc2VydCghcnVu
RGVwZW5kZW5jeVRyYWNraW5nW2lkXSk7Ci0gICAgcnVuRGVwZW5kZW5jeVRyYWNraW5nW2lkXSA9
IDE7Ci0gIH0gZWxzZSB7Ci0gICAgTW9kdWxlLnByaW50RXJyKCd3YXJuaW5nOiBydW4gZGVwZW5k
ZW5jeSBhZGRlZCB3aXRob3V0IElEJyk7Ci0gIH0KLX0KLU1vZHVsZVsnYWRkUnVuRGVwZW5kZW5j
eSddID0gYWRkUnVuRGVwZW5kZW5jeTsKLWZ1bmN0aW9uIHJlbW92ZVJ1bkRlcGVuZGVuY3koaWQp
IHsKLSAgcnVuRGVwZW5kZW5jaWVzLS07Ci0gIGlmIChNb2R1bGVbJ21vbml0b3JSdW5EZXBlbmRl
bmNpZXMnXSkgewotICAgIE1vZHVsZVsnbW9uaXRvclJ1bkRlcGVuZGVuY2llcyddKHJ1bkRlcGVu
ZGVuY2llcyk7Ci0gIH0KLSAgaWYgKGlkKSB7Ci0gICAgYXNzZXJ0KHJ1bkRlcGVuZGVuY3lUcmFj
a2luZ1tpZF0pOwotICAgIGRlbGV0ZSBydW5EZXBlbmRlbmN5VHJhY2tpbmdbaWRdOwotICB9IGVs
c2UgewotICAgIE1vZHVsZS5wcmludEVycignd2FybmluZzogcnVuIGRlcGVuZGVuY3kgcmVtb3Zl
ZCB3aXRob3V0IElEJyk7Ci0gIH0KLSAgaWYgKHJ1bkRlcGVuZGVuY2llcyA9PSAwKSB7Ci0gICAg
aWYgKHJ1bkRlcGVuZGVuY3lXYXRjaGVyICE9PSBudWxsKSB7Ci0gICAgICBjbGVhckludGVydmFs
KHJ1bkRlcGVuZGVuY3lXYXRjaGVyKTsKLSAgICAgIHJ1bkRlcGVuZGVuY3lXYXRjaGVyID0gbnVs
bDsKLSAgICB9IAotICAgIC8vIElmIHJ1biBoYXMgbmV2ZXIgYmVlbiBjYWxsZWQsIGFuZCB3ZSBz
aG91bGQgY2FsbCBydW4gKElOVk9LRV9SVU4gaXMgdHJ1ZSwgYW5kIE1vZHVsZS5ub0luaXRpYWxS
dW4gaXMgbm90IGZhbHNlKQotICAgIGlmICghY2FsbGVkUnVuICYmIHNob3VsZFJ1bk5vdykgcnVu
KCk7Ci0gIH0KLX0KLU1vZHVsZVsncmVtb3ZlUnVuRGVwZW5kZW5jeSddID0gcmVtb3ZlUnVuRGVw
ZW5kZW5jeTsKLU1vZHVsZVsicHJlbG9hZGVkSW1hZ2VzIl0gPSB7fTsgLy8gbWFwcyB1cmwgdG8g
aW1hZ2UgZGF0YQotTW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXSA9IHt9OyAvLyBtYXBzIHVybCB0
byBhdWRpbyBkYXRhCi1mdW5jdGlvbiBsb2FkTWVtb3J5SW5pdGlhbGl6ZXIoZmlsZW5hbWUpIHsK
LSAgZnVuY3Rpb24gYXBwbHlEYXRhKGRhdGEpIHsKLSAgICBIRUFQVTguc2V0KGRhdGEsIFNUQVRJ
Q19CQVNFKTsKLSAgfQotICAvLyBhbHdheXMgZG8gdGhpcyBhc3luY2hyb25vdXNseSwgdG8ga2Vl
cCBzaGVsbCBhbmQgd2ViIGFzIHNpbWlsYXIgYXMgcG9zc2libGUKLSAgYWRkT25QcmVSdW4oZnVu
Y3Rpb24oKSB7Ci0gICAgaWYgKEVOVklST05NRU5UX0lTX05PREUgfHwgRU5WSVJPTk1FTlRfSVNf
U0hFTEwpIHsKLSAgICAgIGFwcGx5RGF0YShNb2R1bGVbJ3JlYWRCaW5hcnknXShmaWxlbmFtZSkp
OwotICAgIH0gZWxzZSB7Ci0gICAgICBCcm93c2VyLmFzeW5jTG9hZChmaWxlbmFtZSwgZnVuY3Rp
b24oZGF0YSkgewotICAgICAgICBhcHBseURhdGEoZGF0YSk7Ci0gICAgICB9LCBmdW5jdGlvbihk
YXRhKSB7Ci0gICAgICAgIHRocm93ICdjb3VsZCBub3QgbG9hZCBtZW1vcnkgaW5pdGlhbGl6ZXIg
JyArIGZpbGVuYW1lOwotICAgICAgfSk7Ci0gICAgfQotICB9KTsKLX0KLS8vID09PSBCb2R5ID09
PQotU1RBVElDX0JBU0UgPSA4OwotU1RBVElDVE9QID0gU1RBVElDX0JBU0UgKyAxNjM5MjsKLXZh
ciBfc3Rkb3V0OwotdmFyIF9zdGRpbjsKLXZhciBfc3RkZXJyOwotLyogZ2xvYmFsIGluaXRpYWxp
emVycyAqLyBfX0FUSU5JVF9fLnB1c2goeyBmdW5jOiBmdW5jdGlvbigpIHsgcnVuUG9zdFNldHMo
KSB9IH0seyBmdW5jOiBmdW5jdGlvbigpIHsgX19HTE9CQUxfX0lfYSgpIH0gfSx7IGZ1bmM6IGZ1
bmN0aW9uKCkgeyBfX0dMT0JBTF9fSV9hOCgpIH0gfSk7Ci12YXIgX19fZnNtdTg7Ci12YXIgX19f
ZHNvX2hhbmRsZTsKLXZhciBfX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZv
RTsKLXZhciBfX1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRTsKLXZhciBfX1pO
U3QzX18xMTJfX3JzX2RlZmF1bHREMUV2OwotdmFyIF9fWk5TdDEzcnVudGltZV9lcnJvckMxRVBL
YzsKLXZhciBfX1pOU3QxM3J1bnRpbWVfZXJyb3JEMUV2OwotdmFyIF9fWk5TdDEybGVuZ3RoX2Vy
cm9yRDFFdjsKLXZhciBfX1pOU3QzX18xNmxvY2FsZUMxRXY7Ci12YXIgX19aTlN0M19fMTZsb2Nh
bGVDMUVSS1MwXzsKLXZhciBfX1pOU3QzX18xNmxvY2FsZUQxRXY7Ci12YXIgX19aTlN0OGJhZF9j
YXN0QzFFdjsKLXZhciBfX1pOU3Q4YmFkX2Nhc3REMUV2OwotdmFyIF9zdGRvdXQgPSBfc3Rkb3V0
PWFsbG9jYXRlKFswLDAsMCwwLDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOwotdmFyIF9z
dGRpbiA9IF9zdGRpbj1hbGxvY2F0ZShbMCwwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RB
VElDKTsKLXZhciBfc3RkZXJyID0gX3N0ZGVycj1hbGxvY2F0ZShbMCwwLDAsMCwwLDAsMCwwXSwg
Imk4IiwgQUxMT0NfU1RBVElDKTsKLV9fWlRWTjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBl
X2luZm9FPWFsbG9jYXRlKFswLDAsMCwwLDIwMCwzNywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci1fX1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlw
ZV9pbmZvRT1hbGxvY2F0ZShbMCwwLDAsMCwyMTYsMzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOwotLyogbWVtb3J5IGluaXRpYWxpemVyICovIGFsbG9j
YXRlKFswLDAsMCwwLDAsMCwzNiw2NCwwLDAsMCwwLDAsMCw4OSw2NCwwLDAsMCwwLDAsMTM2LDE5
NSw2NCwwLDAsMCwwLDEzMiwyMTUsMTUxLDY1LDAsMTI4LDIyNCw1NSwxMjEsMTk1LDY1LDY3LDIz
LDExMCw1LDE4MSwxODEsMTg0LDE0Nyw3MCwyNDUsMjQ5LDYzLDIzMywzLDc5LDU2LDc3LDUwLDI5
LDQ4LDI0OSw3MiwxMTksMTMwLDkwLDYwLDE5MSwxMTUsMTI3LDIyMSw3OSwyMSwxMTcsNzQsMTE3
LDEwOCwwLDAsMCwwLDAsNzQsMTE3LDExMCwwLDAsMCwwLDAsNjUsMTEyLDExNCwwLDAsMCwwLDAs
NzcsOTcsMTE0LDAsMCwwLDAsMCw3MCwxMDEsOTgsMCwwLDAsMCwwLDc0LDk3LDExMCwwLDAsMCww
LDAsNjgsMTAxLDk5LDEwMSwxMDksOTgsMTAxLDExNCwwLDAsMCwwLDAsMCwwLDAsNzgsMTExLDEx
OCwxMDEsMTA5LDk4LDEwMSwxMTQsMCwwLDAsMCwwLDAsMCwwLDc5LDk5LDExNiwxMTEsOTgsMTAx
LDExNCwwLDgzLDEwMSwxMTIsMTE2LDEwMSwxMDksOTgsMTAxLDExNCwwLDAsMCwwLDAsMCwwLDEx
NywxMTAsMTE1LDExNywxMTIsMTEyLDExMSwxMTQsMTE2LDEwMSwxMDAsMzIsMTA4LDExMSw5OSw5
NywxMDgsMTAxLDMyLDEwMiwxMTEsMTE0LDMyLDExNSwxMTYsOTcsMTEwLDEwMCw5NywxMTQsMTAw
LDMyLDEwNSwxMTAsMTEyLDExNywxMTYsMCwwLDAsNjUsMTE3LDEwMywxMTcsMTE1LDExNiwwLDAs
NzQsMTE3LDEwOCwxMjEsMCwwLDAsMCw3NCwxMTcsMTEwLDEwMSwwLDAsMCwwLDc3LDk3LDEyMSww
LDAsMCwwLDAsNjUsMTEyLDExNCwxMDUsMTA4LDAsMCwwLDc3LDk3LDExNCw5OSwxMDQsMCwwLDAs
NzAsMTAxLDk4LDExNCwxMTcsOTcsMTE0LDEyMSwwLDAsMCwwLDAsMCwwLDAsNzQsOTcsMTEwLDEx
Nyw5NywxMTQsMTIxLDAsNjgsMCwwLDAsMTAxLDAsMCwwLDk5LDAsMCwwLDAsMCwwLDAsNzgsMCww
LDAsMTExLDAsMCwwLDExOCwwLDAsMCwwLDAsMCwwLDc5LDAsMCwwLDk5LDAsMCwwLDExNiwwLDAs
MCwwLDAsMCwwLDgzLDAsMCwwLDEwMSwwLDAsMCwxMTIsMCwwLDAsMCwwLDAsMCw5OCw5NywxMTUs
MTA1LDk5LDk1LDExNSwxMTYsMTE0LDEwNSwxMTAsMTAzLDAsMCwwLDAsNjUsMCwwLDAsMTE3LDAs
MCwwLDEwMywwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNywwLDAsMCwxMDgsMCwwLDAsMCwwLDAs
MCw3NCwwLDAsMCwxMTcsMCwwLDAsMTEwLDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsOTcsMCwwLDAs
MTIxLDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAsMTEyLDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDc3
LDAsMCwwLDk3LDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDcwLDAsMCwwLDEwMSwwLDAsMCw5OCww
LDAsMCwwLDAsMCwwLDc0LDAsMCwwLDk3LDAsMCwwLDExMCwwLDAsMCwwLDAsMCwwLDY4LDAsMCww
LDEwMSwwLDAsMCw5OSwwLDAsMCwxMDEsMCwwLDAsMTA5LDAsMCwwLDk4LDAsMCwwLDEwMSwwLDAs
MCwxMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc4LDAsMCwwLDExMSwwLDAsMCwxMTgsMCwwLDAs
MTAxLDAsMCwwLDEwOSwwLDAsMCw5OCwwLDAsMCwxMDEsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCw3OSwwLDAsMCw5OSwwLDAsMCwxMTYsMCwwLDAsMTExLDAsMCwwLDk4LDAsMCwwLDEw
MSwwLDAsMCwxMTQsMCwwLDAsMCwwLDAsMCw4MywwLDAsMCwxMDEsMCwwLDAsMTEyLDAsMCwwLDEx
NiwwLDAsMCwxMDEsMCwwLDAsMTA5LDAsMCwwLDk4LDAsMCwwLDEwMSwwLDAsMCwxMTQsMCwwLDAs
MCwwLDAsMCw2NSwwLDAsMCwxMTcsMCwwLDAsMTAzLDAsMCwwLDExNywwLDAsMCwxMTUsMCwwLDAs
MTE2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCwxMTcsMCwwLDAsMTA4LDAsMCwwLDEy
MSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsMTE3LDAsMCwwLDExMCwwLDAsMCwxMDEs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY1LDAsMCwwLDExMiwwLDAsMCwxMTQsMCwwLDAsMTA1LDAs
MCwwLDEwOCwwLDAsMCwwLDAsMCwwLDc3LDAsMCwwLDk3LDAsMCwwLDExNCwwLDAsMCw5OSwwLDAs
MCwxMDQsMCwwLDAsMCwwLDAsMCw3MCwwLDAsMCwxMDEsMCwwLDAsOTgsMCwwLDAsMTE0LDAsMCww
LDExNywwLDAsMCw5NywwLDAsMCwxMTQsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3
NCwwLDAsMCw5NywwLDAsMCwxMTAsMCwwLDAsMTE3LDAsMCwwLDk3LDAsMCwwLDExNCwwLDAsMCwx
MjEsMCwwLDAsMCwwLDAsMCw4MCw3NywwLDAsMCwwLDAsMCw2NSw3NywwLDAsMCwwLDAsMCw4MCww
LDAsMCw3NywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAsNzcsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDEwOCwxMTEsOTksOTcsMTA4LDEwMSwzMiwxMTAsMTExLDExNiwzMiwxMTUsMTE3LDEx
MiwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCwwLDAsMCwwLDM3LDAsMCwwLDczLDAsMCwwLDU4LDAs
MCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDMyLDAsMCww
LDM3LDAsMCwwLDExMiwwLDAsMCwwLDAsMCwwLDM3LDczLDU4LDM3LDc3LDU4LDM3LDgzLDMyLDM3
LDExMiwwLDAsMCwwLDAsMzcsMCwwLDAsOTcsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsOTgsMCww
LDAsMzIsMCwwLDAsMzcsMCwwLDAsMTAwLDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCww
LDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDMy
LDAsMCwwLDM3LDAsMCwwLDg5LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNyw5NywzMiwzNyw5OCwz
MiwzNywxMDAsMzIsMzcsNzIsNTgsMzcsNzcsNTgsMzcsODMsMzIsMzcsODksMCwwLDAsMCwzNyww
LDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAsMCwzNywwLDAs
MCw4MywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzcsNzIsNTgsMzcsNzcsNTgsMzcsODMsMCwwLDAs
MCwwLDAsMCwwLDExNSwxMTYsMTAwLDU4LDU4LDk4LDk3LDEwMCw5NSw5NywxMDgsMTA4LDExMSw5
OSwwLDAsMzcsMCwwLDAsMTA5LDAsMCwwLDQ3LDAsMCwwLDM3LDAsMCwwLDEwMCwwLDAsMCw0Nyww
LDAsMCwzNywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM3LDEwOSw0NywzNywxMDAs
NDcsMzcsMTIxLDAsMCwwLDAsMCwwLDAsMCwxMDIsMCwwLDAsOTcsMCwwLDAsMTA4LDAsMCwwLDEx
NSwwLDAsMCwxMDEsMCwwLDAsMCwwLDAsMCwxMDIsOTcsMTA4LDExNSwxMDEsMCwwLDAsMTE2LDAs
MCwwLDExNCwwLDAsMCwxMTcsMCwwLDAsMTAxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMTYsMTE0
LDExNywxMDEsMCwwLDAsMCw1OCwzMiwwLDAsMCwwLDAsMCwxMDUsMTExLDExNSw5NSw5OCw5Nywx
MTUsMTAxLDU4LDU4LDk5LDEwOCwxMDEsOTcsMTE0LDAsMzcsMTEyLDAsMCwwLDAsMCwwLDExNSwx
MTYsMTAwLDU4LDU4LDk4LDk3LDEwMCw5NSw5OSw5NywxMTUsMTE2LDAsMCwwLDY3LDAsMCwwLDAs
MCwwLDAsMTE4LDEwMSw5OSwxMTYsMTExLDExNCwwLDAsMzcsNDYsNDgsNzYsMTAyLDAsMCwwLDEw
OSwxMTEsMTEwLDEwMSwxMjEsOTUsMTAzLDEwMSwxMTYsMzIsMTAxLDExNCwxMTQsMTExLDExNCww
LDgzLDk3LDExNiwwLDAsMCwwLDAsNzAsMTE0LDEwNSwwLDAsMCwwLDAsODQsMTA0LDExNywwLDAs
MCwwLDAsMzcsNzYsMTAyLDAsMCwwLDAsMCwxMDUsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDks
MCwwLDAsMCwwLDAsMCwwLDg3LDEwMSwxMDAsMCwwLDAsMCwwLDg0LDExNywxMDEsMCwwLDAsMCww
LDc3LDExMSwxMTAsMCwwLDAsMCwwLDgzLDExNywxMTAsMCwwLDAsMCwwLDgzLDk3LDExNiwxMTcs
MTE0LDEwMCw5NywxMjEsMCwwLDAsMCwwLDAsMCwwLDcwLDExNCwxMDUsMTAwLDk3LDEyMSwwLDAs
ODQsMTA0LDExNywxMTQsMTE1LDEwMCw5NywxMjEsMCwwLDAsMCwwLDAsMCwwLDg3LDEwMSwxMDAs
MTEwLDEwMSwxMTUsMTAwLDk3LDEyMSwwLDAsMCwwLDAsMCwwLDg0LDExNywxMDEsMTE1LDEwMCw5
NywxMjEsMCw3NywxMTEsMTEwLDEwMCw5NywxMjEsMCwwLDgzLDExNywxMTAsMTAwLDk3LDEyMSww
LDAsODMsMCwwLDAsOTcsMCwwLDAsMTE2LDAsMCwwLDAsMCwwLDAsNzAsMCwwLDAsMTE0LDAsMCww
LDEwNSwwLDAsMCwwLDAsMCwwLDg0LDAsMCwwLDEwNCwwLDAsMCwxMTcsMCwwLDAsMCwwLDAsMCw4
NywwLDAsMCwxMDEsMCwwLDAsMTAwLDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTE3LDAsMCwwLDEw
MSwwLDAsMCwwLDAsMCwwLDc3LDAsMCwwLDExMSwwLDAsMCwxMTAsMCwwLDAsMCwwLDAsMCwxMTcs
MTEwLDExNSwxMTIsMTAxLDk5LDEwNSwxMDIsMTA1LDEwMSwxMDAsMzIsMTA1LDExMSwxMTUsMTE2
LDExNCwxMDEsOTcsMTA5LDk1LDk5LDk3LDExNiwxMDEsMTAzLDExMSwxMTQsMTIxLDMyLDEwMSwx
MTQsMTE0LDExMSwxMTQsMCwwLDAsMCwwLDgzLDAsMCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMCww
LDAsMCw4MywwLDAsMCw5NywwLDAsMCwxMTYsMCwwLDAsMTE3LDAsMCwwLDExNCwwLDAsMCwxMDAs
MCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3MCwwLDAsMCwxMTQsMCww
LDAsMTA1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDg0LDAsMCwwLDEwNCwwLDAsMCwxMTcsMCwwLDAsMTE0LDAsMCwwLDExNSwwLDAsMCwxMDAsMCww
LDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4NywwLDAsMCwxMDEsMCwwLDAs
MTAwLDAsMCwwLDExMCwwLDAsMCwxMDEsMCwwLDAsMTE1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAs
MCwxMjEsMCwwLDAsMCwwLDAsMCw4NCwwLDAsMCwxMTcsMCwwLDAsMTAxLDAsMCwwLDExNSwwLDAs
MCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsMTExLDAsMCww
LDExMCwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4
MywwLDAsMCwxMTcsMCwwLDAsMTEwLDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDY4LDEwMSw5OSwwLDAsMCwwLDAsNzgsMTExLDExOCwwLDAsMCwwLDAs
NzksOTksMTE2LDAsMCwwLDAsMCw4MywxMDEsMTEyLDAsMCwwLDAsMCw2NSwxMTcsMTAzLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDAsMCwwLDAsMCwwLDQ4LDQ5LDUwLDUxLDUy
LDUzLDU0LDU1LDU2LDU3LDAsMCwwLDAsMCwwLDM3LDAsMCwwLDg5LDAsMCwwLDQ1LDAsMCwwLDM3
LDAsMCwwLDEwOSwwLDAsMCw0NSwwLDAsMCwzNywwLDAsMCwxMDAsMCwwLDAsMzcsMCwwLDAsNzIs
MCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsODMsMCww
LDAsMzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsMCwwLDAsMCwz
NywwLDAsMCw3MywwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAsMCwzNyww
LDAsMCw4MywwLDAsMCwzMiwwLDAsMCwzNywwLDAsMCwxMTIsMCwwLDAsMCwwLDAsMCwzNywwLDAs
MCwxMDksMCwwLDAsNDcsMCwwLDAsMzcsMCwwLDAsMTAwLDAsMCwwLDQ3LDAsMCwwLDM3LDAsMCww
LDEyMSwwLDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1
OCwwLDAsMCwzNywwLDAsMCw4MywwLDAsMCwzNyw3Miw1OCwzNyw3Nyw1OCwzNyw4MywzNyw3Miw1
OCwzNyw3NywwLDAsMCwzNyw3Myw1OCwzNyw3Nyw1OCwzNyw4MywzMiwzNywxMTIsMCwwLDAsMCww
LDM3LDg5LDQ1LDM3LDEwOSw0NSwzNywxMDAsMzcsMTA5LDQ3LDM3LDEwMCw0NywzNywxMjEsMzcs
NzIsNTgsMzcsNzcsNTgsMzcsODMsMzcsMCwwLDAsMCwwLDAsMCwzNywxMTIsMCwwLDAsMCwwLDAs
MCwwLDAsMCwyMjQsMzEsMCwwLDMwLDAsMCwwLDExNiwwLDAsMCw5OCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0MCwzMSwwLDAsMTk2LDAsMCwwLDE2NCwwLDAsMCwzNiww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzIsMCwwLDcwLDAsMCwwLDYs
MSwwLDAsMzgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNiwzMiwwLDAs
OTQsMCwwLDAsOCwwLDAsMCwxMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwzMiwzMiwwLDAsOTQsMCwwLDAsMjAsMCwwLDAsMTEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsNTYsMzIsMCwwLDE2OCwwLDAsMCw4NCwwLDAsMCw0OCwwLDAsMCwyLDAs
MCwwLDgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4OCwzMiwwLDAsMjMw
LDAsMCwwLDE4NiwwLDAsMCw0OCwwLDAsMCw0LDAsMCwwLDE0LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMTIwLDMyLDAsMCwxNjIsMCwwLDAsMTg4LDAsMCwwLDQ4LDAsMCww
LDgsMCwwLDAsMTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzIs
MCwwLDI1NCwwLDAsMCwxNDAsMCwwLDAsNDgsMCwwLDAsNiwwLDAsMCwxMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDU2LDMzLDAsMCwyNTIsMCwwLDAsMTYsMCwwLDAsNDgs
MCwwLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4OCwzMywwLDAsMTYwLDAsMCww
LDEwOCwwLDAsMCw0OCwwLDAsMCw0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyMCwz
MywwLDAsMzgsMCwwLDAsMTEwLDAsMCwwLDQ4LDAsMCwwLDEyMCwwLDAsMCw0LDAsMCwwLDMyLDAs
MCwwLDYsMCwwLDAsMjAsMCwwLDAsNTYsMCwwLDAsMiwwLDAsMCwyNDgsMjU1LDI1NSwyNTUsMTIw
LDMzLDAsMCwyMiwwLDAsMCw4LDAsMCwwLDMyLDAsMCwwLDEyLDAsMCwwLDIsMCwwLDAsMzAsMCww
LDAsMTI0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYwLDMzLDAsMCwy
NDIsMCwwLDAsMjIyLDAsMCwwLDQ4LDAsMCwwLDIwLDAsMCwwLDE2LDAsMCwwLDYwLDAsMCwwLDI2
LDAsMCwwLDE4LDAsMCwwLDIsMCwwLDAsNCwwLDAsMCwyNDgsMjU1LDI1NSwyNTUsMTYwLDMzLDAs
MCw3MCwwLDAsMCwxMDQsMCwwLDAsMTE2LDAsMCwwLDEyMiwwLDAsMCw2NCwwLDAsMCw0NCwwLDAs
MCw1NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIwMCwzMywwLDAsNzgs
MCwwLDAsMTkwLDAsMCwwLDQ4LDAsMCwwLDQ4LDAsMCwwLDQwLDAsMCwwLDgsMCwwLDAsMzgsMCww
LDAsNDgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjE2LDMzLDAsMCw1OCwwLDAsMCw2
NCwwLDAsMCw0OCwwLDAsMCw0MiwwLDAsMCw4NCwwLDAsMCwxMiwwLDAsMCw1NCwwLDAsMCwyLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIzMiwzMywwLDAsMjQ2LDAsMCwwLDIsMCwwLDAs
NDgsMCwwLDAsMjQsMCwwLDAsMzAsMCwwLDAsNjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsOCwzNCwwLDAsNDYsMCwwLDAsMjA4LDAsMCwwLDQ4LDAsMCwwLDM2LDAsMCwwLDE0LDAsMCww
LDE0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQwLDM0LDAsMCwyMTAsMCwwLDAsMTEy
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQ4LDM0LDAsMCwyOCwwLDAsMCwxMzgsMCww
LDAsMzgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwzNCwwLDAsNiww
LDAsMCwxNzQsMCwwLDAsNDgsMCwwLDAsOCwwLDAsMCw2LDAsMCwwLDEyLDAsMCwwLDQsMCwwLDAs
MTAsMCwwLDAsNCwwLDAsMCwyLDAsMCwwLDEyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsOTYsMzQsMCwwLDk4LDAsMCwwLDE4LDAsMCwwLDQ4LDAsMCwwLDIwLDAsMCwwLDI0
LDAsMCwwLDM0LDAsMCwwLDIyLDAsMCwwLDIyLDAsMCwwLDgsMCwwLDAsNiwwLDAsMCwxOCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyOCwzNCwwLDAsNDAsMCwwLDAsMjQs
MCwwLDAsNDgsMCwwLDAsNDgsMCwwLDAsNDYsMCwwLDAsMzgsMCwwLDAsNDAsMCwwLDAsMzAsMCww
LDAsNDQsMCwwLDAsMzYsMCwwLDAsNTQsMCwwLDAsNTIsMCwwLDAsNTAsMCwwLDAsMjQsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYwLDM0LDAsMCw1MiwwLDAsMCw0LDAsMCwwLDQ4LDAs
MCwwLDc2LDAsMCwwLDcwLDAsMCwwLDY0LDAsMCwwLDY2LDAsMCwwLDU4LDAsMCwwLDY4LDAsMCww
LDYyLDAsMCwwLDI4LDAsMCwwLDc0LDAsMCwwLDcyLDAsMCwwLDQyLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDE5MiwzNCwwLDAsNzQsMCwwLDAsOTIsMCwwLDAsNDgsMCwwLDAsMTYsMCww
LDAsMTIsMCwwLDAsMTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjA4LDM0LDAsMCwy
NiwwLDAsMCwxNzYsMCwwLDAsNDgsMCwwLDAsMjIsMCwwLDAsMTQsMCwwLDAsMiwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwyMjQsMzQsMCwwLDIyOCwwLDAsMCwxMzAsMCwwLDAsNDgsMCww
LDAsMTQsMCwwLDAsNCwwLDAsMCwyMCwwLDAsMCwxNiwwLDAsMCw2MiwwLDAsMCw0LDAsMCwwLDc2
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzUsMCwwLDE4MCwwLDAsMCw2MCwwLDAs
MCw0OCwwLDAsMCwyLDAsMCwwLDgsMCwwLDAsOCwwLDAsMCwxMDYsMCwwLDAsOTYsMCwwLDAsMTgs
MCwwLDAsOTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzIsMzUsMCwwLDE4MCwwLDAs
MCwxMzIsMCwwLDAsNDgsMCwwLDAsMTYsMCwwLDAsNiwwLDAsMCwyLDAsMCwwLDEyNiwwLDAsMCw0
NiwwLDAsMCwxMiwwLDAsMCwxOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwzNSww
LDAsMTgwLDAsMCwwLDE1MiwwLDAsMCw0OCwwLDAsMCwxMCwwLDAsMCwxMiwwLDAsMCwyNCwwLDAs
MCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDk2LDM1LDAsMCwxODAsMCwwLDAsMzQsMCwwLDAsNDgsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwxMTIsMzUsMCwwLDU2LDAsMCwwLDE1NiwwLDAsMCw0OCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyOCwzNSwwLDAsMTgwLDAsMCwwLDgwLDAs
MCwwLDQ4LDAsMCwwLDIwLDAsMCwwLDIsMCwwLDAsNCwwLDAsMCwxMCwwLDAsMCwxNiwwLDAsMCwy
OCwwLDAsMCwyMiwwLDAsMCw2LDAsMCwwLDYsMCwwLDAsOCwwLDAsMCwxMCwwLDAsMCwxMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2MCwzNSwwLDAsNCwxLDAsMCwzNiww
LDAsMCw0OCwwLDAsMCwyLDAsMCwwLDQsMCwwLDAsMTgsMCwwLDAsMzQsMCwwLDAsOCwwLDAsMCw2
LDAsMCwwLDI2LDAsMCwwLDE0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MjA4LDM1LDAsMCw2NiwwLDAsMCwyMTgsMCwwLDAsNzgsMCwwLDAsMiwwLDAsMCwxNCwwLDAsMCwz
MiwwLDAsMCw0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjI0LDM1LDAs
MCwxODAsMCwwLDAsODYsMCwwLDAsNDgsMCwwLDAsMTAsMCwwLDAsMTIsMCwwLDAsMjQsMCwwLDAs
MzQsMCwwLDAsNzQsMCwwLDAsNiwwLDAsMCw2NiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwyNDAsMzUsMCwwLDE4MCwwLDAsMCwyMzgsMCwwLDAsNDgsMCwwLDAsMTAsMCwwLDAsMTIsMCww
LDAsMjQsMCwwLDAsMzQsMCwwLDAsNzQsMCwwLDAsNiwwLDAsMCw2NiwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDM2LDAsMCwxMjYsMCwwLDAsMjM0LDAsMCwwLDE2LDAsMCwwLDIyLDAs
MCwwLDE2LDAsMCwwLDEwLDAsMCwwLDg4LDAsMCwwLDEwMCwwLDAsMCwzMCwwLDAsMCwyOCwwLDAs
MCwyNiwwLDAsMCwyOCwwLDAsMCw0MCwwLDAsMCwyMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCw4LDM2LDAsMCwxMCwwLDAsMCwxMTgsMCwwLDAsNTgsMCwwLDAsMzgsMCwwLDAsMjgsMCww
LDAsNiwwLDAsMCw1MCwwLDAsMCw4NiwwLDAsMCwxOCwwLDAsMCw2LDAsMCwwLDEwLDAsMCwwLDI0
LDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2LDM2LDAs
MCwxMDAsMCwwLDAsMTk0LDAsMCwwLDIsMCwwLDAsMiwwLDAsMCwxNCwwLDAsMCwzMiwwLDAsMCwy
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQsMCwwLDAsMCwwLDAsMCw1NiwzNiwwLDAs
NDQsMCwwLDAsMjA2LDAsMCwwLDI1MiwyNTUsMjU1LDI1NSwyNTIsMjU1LDI1NSwyNTUsNTYsMzYs
MCwwLDE0NiwwLDAsMCwxMjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQsMCwwLDAsMCwwLDAsMCw4
MCwzNiwwLDAsMjEyLDAsMCwwLDIzNiwwLDAsMCwyNTIsMjU1LDI1NSwyNTUsMjUyLDI1NSwyNTUs
MjU1LDgwLDM2LDAsMCwxMDYsMCwwLDAsMjAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4LDAsMCww
LDAsMCwwLDAsMTA0LDM2LDAsMCw4OCwwLDAsMCw4LDEsMCwwLDI0OCwyNTUsMjU1LDI1NSwyNDgs
MjU1LDI1NSwyNTUsMTA0LDM2LDAsMCwxODIsMCwwLDAsMjMyLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCw4LDAsMCwwLDAsMCwwLDAsMTI4LDM2LDAsMCwxMDQsMCwwLDAsMjA0LDAsMCwwLDI0OCwyNTUs
MjU1LDI1NSwyNDgsMjU1LDI1NSwyNTUsMTI4LDM2LDAsMCwxMzYsMCwwLDAsNTAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDM2LDAsMCwyMDIsMCwwLDAsMTg0LDAsMCwwLDM4LDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTkyLDM2LDAsMCwyNDgsMCwwLDAs
MjI2LDAsMCwwLDQsMCwwLDAsMjIsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsNTgsMCwwLDAsMTAw
LDAsMCwwLDMwLDAsMCwwLDI4LDAsMCwwLDI2LDAsMCwwLDI4LDAsMCwwLDQwLDAsMCwwLDI2LDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIwOCwzNiwwLDAsMTU0LDAsMCwwLDE3OCwwLDAs
MCwzNCwwLDAsMCwzOCwwLDAsMCwyOCwwLDAsMCw2LDAsMCwwLDkwLDAsMCwwLDg2LDAsMCwwLDE4
LDAsMCwwLDYsMCwwLDAsMTAsMCwwLDAsMjQsMCwwLDAsMTYsMCwwLDAsMTQsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwzNywwLDAsMjIwLDAsMCwwLDE0NCwwLDAsMCw0OCwwLDAsMCw2
OCwwLDAsMCwxMTgsMCwwLDAsNDAsMCwwLDAsODAsMCwwLDAsNiwwLDAsMCwyOCwwLDAsMCw1Miww
LDAsMCwyMCwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzMiwzNywwLDAs
MTAyLDAsMCwwLDU0LDAsMCwwLDQ4LDAsMCwwLDExMiwwLDAsMCw0LDAsMCwwLDY2LDAsMCwwLDc0
LDAsMCwwLDc2LDAsMCwwLDIyLDAsMCwwLDExNCwwLDAsMCw1MCwwLDAsMCwxMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwzNywwLDAsMjI0LDAsMCwwLDExNCwwLDAsMCw0OCwwLDAs
MCwxNCwwLDAsMCw2MCwwLDAsMCw0NiwwLDAsMCw0MiwwLDAsMCw3OCwwLDAsMCw1MiwwLDAsMCw5
MiwwLDAsMCw1NiwwLDAsMCwzMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw5NiwzNyww
LDAsNzYsMCwwLDAsMTcyLDAsMCwwLDQ4LDAsMCwwLDEwMiwwLDAsMCwxMDgsMCwwLDAsMjYsMCww
LDAsNzIsMCwwLDAsMjQsMCwwLDAsMTgsMCwwLDAsODAsMCwwLDAsNzAsMCwwLDAsNjgsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDM3LDAsMCw5MCwwLDAsMCw2OCwwLDAsMCw2Miww
LDAsMCwyMiwwLDAsMCwxNiwwLDAsMCwxMCwwLDAsMCw4OCwwLDAsMCwxMDAsMCwwLDAsMzAsMCww
LDAsNzIsMCwwLDAsODIsMCwwLDAsMTIsMCwwLDAsNDAsMCwwLDAsMjAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMTY4LDM3LDAsMCwxNCwwLDAsMCwyMTQsMCwwLDAsNjAsMCwwLDAsMzgs
MCwwLDAsMjgsMCwwLDAsNiwwLDAsMCw1MCwwLDAsMCw4NiwwLDAsMCwxOCwwLDAsMCw1NiwwLDAs
MCwyNCwwLDAsMCw0LDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDE4NCwzNywwLDAsMjUwLDAsMCwwLDE5OCwwLDAsMCw2MiwwLDAsMCwxNTAsMCwwLDAsOCww
LDAsMCwyLDAsMCwwLDYsMCwwLDAsNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODMsMTE2LDU3LDEx
NiwxMjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEsMCwwLDAsMCw4MywxMTYsNTcsMTAxLDEy
MCw5OSwxMDEsMTEyLDExNiwxMDUsMTExLDExMCwwLDAsMCwwLDgzLDExNiw1Nyw5OCw5NywxMDAs
OTUsOTcsMTA4LDEwOCwxMTEsOTksMCwwLDAsMCw4MywxMTYsNTYsOTgsOTcsMTAwLDk1LDk5LDk3
LDExNSwxMTYsMCwwLDAsMCwwLDgzLDExNiw0OSw1MSwxMTQsMTE3LDExMCwxMTYsMTA1LDEwOSwx
MDEsOTUsMTAxLDExNCwxMTQsMTExLDExNCwwLDAsMCwwLDAsMCwwLDgzLDExNiw0OSw1MCwxMDgs
MTAxLDExMCwxMDMsMTE2LDEwNCw5NSwxMDEsMTE0LDExNCwxMTEsMTE0LDAsMCwwLDAsMCwwLDAs
MCw4MywxMTYsNDksNDksMTA4LDExMSwxMDMsMTA1LDk5LDk1LDEwMSwxMTQsMTE0LDExMSwxMTQs
MCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsMTE2LDEwNSwxMDksMTAxLDk1LDk4LDk3LDExNSwx
MDEsNjksMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDEwOSwxMTEsMTEwLDEw
MSwxMjEsOTUsMTEyLDExNywxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDEx
NCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0
LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDEx
NiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw1NywxMDksMTExLDExMCwxMDEsMTIxLDk1LDExMiwxMTcsMTE2LDczLDk5LDc4LDgzLDk1LDQ5
LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEs
MTE0LDk3LDExNiwxMTEsMTE0LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUs
MTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNTcsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiw3
MywxMTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEw
Miw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5
LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjks
NjksNjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDEwOSwxMTEsMTEwLDEwMSwx
MjEsOTUsMTAzLDEwMSwxMTYsNzMsOTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYsMTE0LDEw
MSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMs
OTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1
LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5
OCw5NywxMTUsMTA1LDk5LDk1LDEwNSwxMTEsMTE1LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwx
MDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDAs
MCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDk4LDk3LDExNSwxMDUsOTksOTUs
MTA1LDExMSwxMTUsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0
LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2
LDUxLDk1LDk1LDQ5LDU3LDk1LDk1LDExMCwxMTcsMTA5LDk1LDExMiwxMTcsMTE2LDczLDExOSw2
OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUs
MTEyLDExNywxMTYsNzMsOTksNjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDk1
LDk1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2LDczLDExOSw2OSw2OSwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsNzMsOTks
NjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDExNiwxMDUsMTA5LDEwMSw5NSwx
MTIsMTE3LDExNiw3MywxMTksNzgsODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5Nywx
MDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4
LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Mywx
MTksNjksNjksNjksNjksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2
LDEwNSwxMDksMTAxLDk1LDExMiwxMTcsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDExMSwxMTUs
MTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwx
MTEsMTE0LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5Nywx
MDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5
NSw5NSw0OSw1NiwxMTYsMTA1LDEwOSwxMDEsOTUsMTAzLDEwMSwxMTYsNzMsMTE5LDc4LDgzLDk1
LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwx
MDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0
LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCww
LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDEx
Niw3Myw5OSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcs
MTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0
OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjks
NjksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTEwLDExNywxMDksMTEy
LDExNywxMTAsOTksMTE2LDczLDExOSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw1NiwxMTAsMTE3LDEwOSwxMTIsMTE3LDExMCw5OSwxMTYsNzMsOTksNjksNjksMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywxMDEsMTE1LDcz
LDExOSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMDksMTAxLDExNSwx
MTUsOTcsMTAzLDEwMSwxMTUsNzMsOTksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUs
NDksNTYsMTA1LDExMSwxMTUsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgz
LDExNiw1MSw5NSw5NSw0OSw1NiwxMDUsMTExLDExNSw5NSw5OCw5NywxMTUsMTAxLDU1LDEwMiw5
NywxMDUsMTA4LDExNywxMTQsMTAxLDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDU1LDExMCwxMTcsMTA5LDk1LDExMiwxMTcsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1Nywx
MTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5
NywxMTYsMTExLDExNCw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYs
MTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDExMCwxMTcsMTA5LDk1LDExMiwxMTcsMTE2LDczLDk5LDc4
LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1
LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5
NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSww
LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEs
MTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwx
MTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3MywxMTksNzgsODMsOTUs
NDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2
OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDExMCwxMTcs
MTA5LDk1LDEwMywxMDEsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwx
MDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDcz
LDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDEx
NSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDU1LDk5LDExMSwxMDgsMTA4LDk3LDExNiwxMDEsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwOCwxMDgsOTcsMTE2LDEwMSw3Myw5OSw2OSw2
OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDk5LDExMSwxMDAsMTAxLDk5LDEx
OCwxMTYsNzMsMTE5LDk5LDQ5LDQ4LDk1LDEwOSw5OCwxMTUsMTE2LDk3LDExNiwxMDEsOTUsMTE2
LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEw
MCwxMDEsOTksMTE4LDExNiw3Myw5OSw5OSw0OSw0OCw5NSwxMDksOTgsMTE1LDExNiw5NywxMTYs
MTAxLDk1LDExNiw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1
LDk5LDExMSwxMDAsMTAxLDk5LDExOCwxMTYsNzMsNjgsMTE1LDk5LDQ5LDQ4LDk1LDEwOSw5OCwx
MTUsMTE2LDk3LDExNiwxMDEsOTUsMTE2LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUx
LDk1LDk1LDQ5LDU1LDk5LDExMSwxMDAsMTAxLDk5LDExOCwxMTYsNzMsNjgsMTA1LDk5LDQ5LDQ4
LDk1LDEwOSw5OCwxMTUsMTE2LDk3LDExNiwxMDEsOTUsMTE2LDY5LDY5LDAsMCwwLDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU0LDEwOCwxMTEsOTksOTcsMTA4LDEwMSw1MywxMDIsOTcs
OTksMTAxLDExNiw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTQsMTA4LDExMSw5OSw5
NywxMDgsMTAxLDUzLDk1LDk1LDEwNSwxMDksMTEyLDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5
NSw0OSw1Myw5OSwxMTYsMTIxLDExMiwxMDEsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDUzLDk5LDExNiwxMjEsMTEyLDEwMSw3Myw5OSw2OSw2OSwwLDAs
MCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1MCw0OCw5NSw5NSwxMTYsMTA1LDEwOSwx
MDEsOTUsMTAzLDEwMSwxMTYsOTUsOTksOTUsMTE1LDExNiwxMTEsMTE0LDk3LDEwMywxMDEsNzMs
MTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDUwLDQ4LDk1LDk1
LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDExNiw5NSw5OSw5NSwxMTUsMTE2LDExMSwxMTQs
OTcsMTAzLDEwMSw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw0OSw1Nyw5NSw5NSwxMDUsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTUsOTksOTcsMTE2
LDEwMSwxMDMsMTExLDExNCwxMjEsNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDU1
LDk1LDk1LDExOSwxMDUsMTAwLDEwMSwxMTAsOTUsMTAyLDExNCwxMTEsMTA5LDk1LDExNywxMTYs
MTAyLDU2LDczLDc2LDEwNiw1MSw1MCw2OSw2OSw2OSwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNDksNTQsOTUsOTUsMTEwLDk3LDExNCwxMTQsMTExLDExOSw5NSwxMTYsMTExLDk1
LDExNywxMTYsMTAyLDU2LDczLDc2LDEwNiw1MSw1MCw2OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Myw5OCw5NywxMTUsMTA1LDk5LDk1LDExNSwxMTYsMTE0
LDEwMSw5NywxMDksOTgsMTE3LDEwMiw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDEx
NCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAs
MCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUzLDk4LDk3LDExNSwxMDUsOTksOTUsMTE1
LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEw
NCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSwwLDAs
MCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUyLDEwMSwxMTQsMTE0LDExMSwx
MTQsOTUsOTksOTcsMTE2LDEwMSwxMDMsMTExLDExNCwxMjEsNjksMCwwLDAsMCwwLDAsMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Miw5NSw5NSwxMTUsMTA0LDk3LDExNCwxMDEsMTAwLDk1
LDk5LDExMSwxMTcsMTEwLDExNiw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDQ5LDUyLDk1LDk1LDExMCwxMTcsMTA5LDk1LDExMiwxMTcsMTE2LDk1LDk4LDk3LDExNSwx
MDEsNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Miw5NSw5NSwx
MTAsMTE3LDEwOSw5NSwxMDMsMTAxLDExNiw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCwwLDAsMCww
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTEsMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywx
MDEsMTE1LDk1LDk4LDk3LDExNSwxMDEsNjksMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTEs
OTgsOTcsMTE1LDEwNSw5OSw5NSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3MywxMTksNzgs
ODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDEx
OSw2OSw2OSw2OSw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUxLDk4LDk3LDExNSwx
MDUsOTksOTUsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksNzMsOTksNzgsODMsOTUsNDksNDks
OTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTEsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMDUs
MTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDEx
NCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDQ5LDUxLDk4LDk3LDExNSwxMDUsOTksOTUsMTA1LDExNSwxMTYsMTE0
LDEwMSw5NywxMDksNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0
LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUs
NDksNDksNTAsMTE1LDEyMSwxMTUsMTE2LDEwMSwxMDksOTUsMTAxLDExNCwxMTQsMTExLDExNCw2
OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUwLDk5LDExMSwxMDAsMTAxLDk5LDExOCwx
MTYsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUwLDk1
LDk1LDEwMCwxMTEsOTUsMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywxMDEsNjksMCwwLDc4LDgzLDEx
Niw1MSw5NSw5NSw0OSw0OSw0OSw5NSw5NSwxMTUsMTE2LDEwMCwxMTEsMTE3LDExNiw5OCwxMTcs
MTAyLDczLDExOSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5
LDQ5LDk1LDk1LDExNSwxMTYsMTAwLDExMSwxMTcsMTE2LDk4LDExNywxMDIsNzMsOTksNjksNjks
MCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OSw5NSw5NSwxMDksMTEx
LDExMCwxMDEsMTIxLDk1LDExMiwxMTcsMTE2LDczLDExOSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUs
MTEyLDExNywxMTYsNzMsOTksNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5
NSw0OSw0OSw0OSw5NSw5NSwxMDksMTExLDExMCwxMDEsMTIxLDk1LDEwMywxMDEsMTE2LDczLDEx
OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1
LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTAzLDEwMSwxMTYsNzMsOTksNjksNjksMCwwLDAsMCww
LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCwxMDksMTExLDExMCwxMDEsMTIxLDEx
MiwxMTcsMTEwLDk5LDExNiw3MywxMTksNzYsOTgsNDksNjksNjksNjksMCwwLDAsMCwwLDc4LDgz
LDExNiw1MSw5NSw5NSw0OSw0OSw0OCwxMDksMTExLDExMCwxMDEsMTIxLDExMiwxMTcsMTEwLDk5
LDExNiw3MywxMTksNzYsOTgsNDgsNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5
NSw0OSw0OSw0OCwxMDksMTExLDExMCwxMDEsMTIxLDExMiwxMTcsMTEwLDk5LDExNiw3Myw5OSw3
Niw5OCw0OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEw
OSwxMTEsMTEwLDEwMSwxMjEsMTEyLDExNywxMTAsOTksMTE2LDczLDk5LDc2LDk4LDQ4LDY5LDY5
LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsMTA5LDExMSwxMTAsMTAx
LDEyMSw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5
LDQ4LDk5LDExNiwxMjEsMTEyLDEwMSw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDk1LDk1LDExNiwxMDUsMTA5LDEwMSw5NSwxMTIsMTE3LDEx
Niw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCw5NSw5NSwxMTUsMTE2LDEw
MCwxMDUsMTEwLDk4LDExNywxMDIsNzMsMTE5LDY5LDY5LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDQ5LDQ4LDk1LDk1LDExNSwxMTYsMTAwLDEwNSwxMTAsOTgsMTE3LDEwMiw3Myw5OSw2OSw2OSww
LDc4LDQ5LDQ4LDk1LDk1LDk5LDEyMCwxMjAsOTcsOTgsMTA1LDExOCw0OSw1MCw0OSw5NSw5NSwx
MTgsMTA5LDEwNSw5NSw5OSwxMDgsOTcsMTE1LDExNSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1
LDExMCwxMDIsMTExLDY5LDAsMCwwLDc4LDQ5LDQ4LDk1LDk1LDk5LDEyMCwxMjAsOTcsOTgsMTA1
LDExOCw0OSw1MCw0OCw5NSw5NSwxMTUsMTA1LDk1LDk5LDEwOCw5NywxMTUsMTE1LDk1LDExNiwx
MjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEsNjksMCwwLDAsMCw3OCw0OSw0OCw5NSw5NSw5
OSwxMjAsMTIwLDk3LDk4LDEwNSwxMTgsNDksNDksNTUsOTUsOTUsOTksMTA4LDk3LDExNSwxMTUs
OTUsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSw2OSwwLDAsMCwwLDAsMCwwLDc4
LDQ5LDQ4LDk1LDk1LDk5LDEyMCwxMjAsOTcsOTgsMTA1LDExOCw0OSw0OSw1NCw5NSw5NSwxMTUs
MTA0LDEwNSwxMDksOTUsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSw2OSwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCw0MCwyMCwwLDAsMCwwLDAsMCw1NiwyMCwwLDAsMCwwLDAsMCw3
MiwyMCwwLDAsMjE2LDMxLDAsMCwwLDAsMCwwLDAsMCwwLDAsODgsMjAsMCwwLDIxNiwzMSwwLDAs
MCwwLDAsMCwwLDAsMCwwLDEwNCwyMCwwLDAsMjE2LDMxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4
LDIwLDAsMCwzMiwzMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDE1MiwyMCwwLDAsMjE2LDMxLDAsMCww
LDAsMCwwLDAsMCwwLDAsMTY4LDIwLDAsMCwwLDIwLDAsMCwxOTIsMjAsMCwwLDAsMCwwLDAsMiww
LDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwyMjQsMzYsMCwwLDAsMCwwLDAsMCwyMCwwLDAsOCwyMSww
LDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDIzMiwzNiwwLDAsMCwwLDAsMCww
LDIwLDAsMCw4MCwyMSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDI0MCwz
NiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxNTIsMjEsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSww
LDAsMiwwLDAsMCwyNDgsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMjQsMjEsMCwwLDQwLDM0LDAs
MCwwLDAsMCwwLDAsMCwwLDAsMTYsMjIsMCwwLDQwLDM0LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDY0
LDIyLDAsMCwwLDAsMCwwLDEsMCwwLDAsMzIsMzYsMCwwLDAsMCwwLDAsMCwyMCwwLDAsODgsMjIs
MCwwLDAsMCwwLDAsMSwwLDAsMCwzMiwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxMTIsMjIsMCww
LDAsMCwwLDAsMSwwLDAsMCw0MCwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxMzYsMjIsMCwwLDAs
MCwwLDAsMSwwLDAsMCw0MCwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxNjAsMjIsMCwwLDAsMCww
LDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNDQsMzcsMCwwLDAsOCwwLDAsMCwyMCwwLDAs
MjMyLDIyLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTQ0LDM3LDAsMCww
LDgsMCwwLDAsMjAsMCwwLDQ4LDIzLDAsMCwwLDAsMCwwLDMsMCwwLDAsOTYsMzUsMCwwLDIsMCww
LDAsNDgsMzIsMCwwLDIsMCwwLDAsMTkyLDM1LDAsMCwwLDgsMCwwLDAsMjAsMCwwLDEyMCwyMyww
LDAsMCwwLDAsMCwzLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDQ4LDMyLDAsMCwyLDAsMCwwLDIw
MCwzNSwwLDAsMCw4LDAsMCwwLDAsMCwwLDE5MiwyMywwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCww
LDAsMCwyMTYsMjMsMCwwLDk2LDM1LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDI0MCwyMywwLDAsMCww
LDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDQ4LDM2LDAsMCwyLDAsMCwwLDAsMjAsMCww
LDgsMjQsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCw0OCwzNiwwLDAsMiww
LDAsMCwwLDAsMCwwLDMyLDI0LDAsMCwwLDAsMCwwLDU2LDI0LDAsMCwxNTIsMzYsMCwwLDAsMCww
LDAsMCwyMCwwLDAsODgsMjQsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwy
MTYsMzIsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTYwLDI0LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYs
MzUsMCwwLDIsMCwwLDAsMjQwLDMyLDAsMCwwLDAsMCwwLDAsMjAsMCwwLDIzMiwyNCwwLDAsMCww
LDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDgsMzMsMCwwLDAsMCwwLDAsMCwyMCwwLDAs
NDgsMjUsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwzMiwzMywwLDAsMCww
LDAsMCwwLDAsMCwwLDEyMCwyNSwwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNDQsMjUs
MCwwLDk2LDM1LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDE2OCwyNSwwLDAsMCwwLDAsMCwyLDAsMCww
LDk2LDM1LDAsMCwyLDAsMCwwLDE2OCwzNiwwLDAsMiwwLDAsMCwwLDIwLDAsMCwyMDgsMjUsMCww
LDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwy
MCwwLDAsMjQ4LDI1LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTY4LDM2
LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDMyLDI2LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCww
LDIsMCwwLDAsMTY4LDM2LDAsMCwyLDAsMCwwLDAsMCwwLDAsNzIsMjYsMCwwLDI0LDM2LDAsMCww
LDAsMCwwLDAsMCwwLDAsOTYsMjYsMCwwLDk2LDM1LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDEyMCwy
NiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDEzNiwzNywwLDAsMiwwLDAs
MCwwLDIwLDAsMCwxNDQsMjYsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwx
MzYsMzcsMCwwLDIsMCwwLDAsMCwwLDAsMCwxNjgsMjYsMCwwLDAsMCwwLDAsMjA4LDI2LDAsMCww
LDAsMCwwLDI0OCwyNiwwLDAsMTc2LDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQsMjcsMCwwLDY0
LDM1LDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMjcsMCwwLDY0LDM1LDAsMCwwLDAsMCwwLDAsMCww
LDAsMTA0LDI3LDAsMCwwLDAsMCwwLDE2MCwyNywwLDAsMCwwLDAsMCwyMTYsMjcsMCwwLDAsMCww
LDAsMjQ4LDI3LDAsMCwwLDAsMCwwLDI0LDI4LDAsMCwwLDAsMCwwLDU2LDI4LDAsMCwwLDAsMCww
LDg4LDI4LDAsMCwwLDIwLDAsMCwxMTIsMjgsMCwwLDAsMCwwLDAsMSwwLDAsMCwxODQsMzIsMCww
LDMsMjQ0LDI1NSwyNTUsMCwyMCwwLDAsMTYwLDI4LDAsMCwwLDAsMCwwLDEsMCwwLDAsMjAwLDMy
LDAsMCwzLDI0NCwyNTUsMjU1LDAsMjAsMCwwLDIwOCwyOCwwLDAsMCwwLDAsMCwxLDAsMCwwLDE4
NCwzMiwwLDAsMywyNDQsMjU1LDI1NSwwLDIwLDAsMCwwLDI5LDAsMCwwLDAsMCwwLDEsMCwwLDAs
MjAwLDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMCwwLDAsNDgsMjksMCwwLDAsMzIsMCwwLDAsMCww
LDAsMCwwLDAsMCw3MiwyOSwwLDAsMCwwLDAsMCw5NiwyOSwwLDAsMTYsMzYsMCwwLDAsMCwwLDAs
MCwwLDAsMCwxMjAsMjksMCwwLDAsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMjksMCwwLDgs
MzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwxODQsMjksMCwwLDAsMCwwLDAsMjE2LDI5LDAsMCwwLDAs
MCwwLDI0OCwyOSwwLDAsMCwwLDAsMCwyNCwzMCwwLDAsMCwyMCwwLDAsNTYsMzAsMCwwLDAsMCww
LDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxMjgsMzcsMCwwLDIsMCwwLDAsMCwyMCwwLDAs
ODgsMzAsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxMjgsMzcsMCwwLDIs
MCwwLDAsMCwyMCwwLDAsMTIwLDMwLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCww
LDAsMTI4LDM3LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDE1MiwzMCwwLDAsMCwwLDAsMCwyLDAsMCww
LDk2LDM1LDAsMCwyLDAsMCwwLDEyOCwzNywwLDAsMiwwLDAsMCwwLDAsMCwwLDE4NCwzMCwwLDAs
MCwwLDAsMCwyMDgsMzAsMCwwLDAsMCwwLDAsMjMyLDMwLDAsMCwwLDAsMCwwLDAsMzEsMCwwLDAs
MzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwzMSwwLDAsOCwzNiwwLDAsMCwwLDAsMCwwLDAsMCww
LDQ4LDMxLDAsMCwyMTYsMzcsMCwwLDAsMCwwLDAsMCwwLDAsMCw4OCwzMSwwLDAsMjE2LDM3LDAs
MCwwLDAsMCwwLDAsMCwwLDAsMTI4LDMxLDAsMCwyMzIsMzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwx
NjgsMzEsMCwwLDIwOCwzMSwwLDAsMCwwLDAsMCwyNTUsMjU1LDI1NSwyNTUsMCwwLDAsMCwyNTUs
MjU1LDI1NSwyNTUsMCwwLDAsMCwyNTUsMjU1LDI1NSwyNTUsMCwwLDAsMCw0OCw0OSw1MCw1MSw1
Miw1Myw1NCw1NSw1Niw1Nyw5Nyw5OCw5OSwxMDAsMTAxLDEwMiw2NSw2Niw2Nyw2OCw2OSw3MCwx
MjAsODgsNDMsNDUsMTEyLDgwLDEwNSw3MywxMTAsNzgsMCwwLDAsMCwwLDAsMCwwXSwgImk4Iiwg
QUxMT0NfTk9ORSwgUnVudGltZS5HTE9CQUxfQkFTRSkKLXZhciB0ZW1wRG91YmxlUHRyID0gUnVu
dGltZS5hbGlnbk1lbW9yeShhbGxvY2F0ZSgxMiwgImk4IiwgQUxMT0NfU1RBVElDKSwgOCk7Ci1h
c3NlcnQodGVtcERvdWJsZVB0ciAlIDggPT0gMCk7Ci1mdW5jdGlvbiBjb3B5VGVtcEZsb2F0KHB0
cikgeyAvLyBmdW5jdGlvbnMsIGJlY2F1c2UgaW5saW5pbmcgdGhpcyBjb2RlIGluY3JlYXNlcyBj
b2RlIHNpemUgdG9vIG11Y2gKLSAgSEVBUDhbdGVtcERvdWJsZVB0cl0gPSBIRUFQOFtwdHJdOwot
ICBIRUFQOFt0ZW1wRG91YmxlUHRyKzFdID0gSEVBUDhbcHRyKzFdOwotICBIRUFQOFt0ZW1wRG91
YmxlUHRyKzJdID0gSEVBUDhbcHRyKzJdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzNdID0gSEVB
UDhbcHRyKzNdOwotfQotZnVuY3Rpb24gY29weVRlbXBEb3VibGUocHRyKSB7Ci0gIEhFQVA4W3Rl
bXBEb3VibGVQdHJdID0gSEVBUDhbcHRyXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cisxXSA9IEhF
QVA4W3B0cisxXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cisyXSA9IEhFQVA4W3B0cisyXTsKLSAg
SEVBUDhbdGVtcERvdWJsZVB0ciszXSA9IEhFQVA4W3B0ciszXTsKLSAgSEVBUDhbdGVtcERvdWJs
ZVB0cis0XSA9IEhFQVA4W3B0cis0XTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cis1XSA9IEhFQVA4
W3B0cis1XTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cis2XSA9IEhFQVA4W3B0cis2XTsKLSAgSEVB
UDhbdGVtcERvdWJsZVB0cis3XSA9IEhFQVA4W3B0cis3XTsKLX0KLSAgZnVuY3Rpb24gX2F0ZXhp
dChmdW5jLCBhcmcpIHsKLSAgICAgIF9fQVRFWElUX18udW5zaGlmdCh7IGZ1bmM6IGZ1bmMsIGFy
ZzogYXJnIH0pOwotICAgIH12YXIgX19fY3hhX2F0ZXhpdD1fYXRleGl0OwotICBmdW5jdGlvbiBf
bGx2bV91bXVsX3dpdGhfb3ZlcmZsb3dfaTMyKHgsIHkpIHsKLSAgICAgIHggPSB4Pj4+MDsKLSAg
ICAgIHkgPSB5Pj4+MDsKLSAgICAgIHJldHVybiAoKGFzbVsic2V0VGVtcFJldDAiXSh4KnkgPiA0
Mjk0OTY3Mjk1KSwoeCp5KT4+PjApfDApOwotICAgIH0KLSAgZnVuY3Rpb24gX19fZ3h4X3BlcnNv
bmFsaXR5X3YwKCkgewotICAgIH0KLSAgZnVuY3Rpb24gX19leGl0KHN0YXR1cykgewotICAgICAg
Ly8gdm9pZCBfZXhpdChpbnQgc3RhdHVzKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91
cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL2V4aXQuaHRtbAotICAgICAgTW9k
dWxlLnByaW50KCdleGl0KCcgKyBzdGF0dXMgKyAnKSBjYWxsZWQnKTsKLSAgICAgIE1vZHVsZVsn
ZXhpdCddKHN0YXR1cyk7Ci0gICAgfWZ1bmN0aW9uIF9leGl0KHN0YXR1cykgewotICAgICAgX19l
eGl0KHN0YXR1cyk7Ci0gICAgfWZ1bmN0aW9uIF9fWlN0OXRlcm1pbmF0ZXYoKSB7Ci0gICAgICBf
ZXhpdCgtMTIzNCk7Ci0gICAgfQotICBNb2R1bGVbIl9tZW1jcHkiXSA9IF9tZW1jcHk7dmFyIF9s
bHZtX21lbWNweV9wMGk4X3AwaThfaTMyPV9tZW1jcHk7Ci0gIHZhciBfbG9nPU1hdGgubG9nOwot
ICB2YXIgX2Zsb29yPU1hdGguZmxvb3I7Ci0gIHZhciBjdGx6X2k4ID0gYWxsb2NhdGUoWzgsNyw2
LDYsNSw1LDUsNSw0LDQsNCw0LDQsNCw0LDQsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMs
MywyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwy
LDIsMiwyLDIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdLCAiaTgi
LCBBTExPQ19TVEFUSUMpOyAKLSAgTW9kdWxlWyJfbGx2bV9jdGx6X2kzMiJdID0gX2xsdm1fY3Rs
el9pMzI7Ci0gIGZ1bmN0aW9uIF9fWlN0MTh1bmNhdWdodF9leGNlcHRpb252KCkgeyAvLyBzdGQ6
OnVuY2F1Z2h0X2V4Y2VwdGlvbigpCi0gICAgICByZXR1cm4gISFfX1pTdDE4dW5jYXVnaHRfZXhj
ZXB0aW9udi51bmNhdWdodF9leGNlcHRpb247Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV9iZWdpbl9j
YXRjaChwdHIpIHsKLSAgICAgIF9fWlN0MTh1bmNhdWdodF9leGNlcHRpb252LnVuY2F1Z2h0X2V4
Y2VwdGlvbi0tOwotICAgICAgcmV0dXJuIHB0cjsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9sbHZtX2Vo
X2V4Y2VwdGlvbigpIHsKLSAgICAgIHJldHVybiBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24u
YnVmKT4+MildOwotICAgIH0KLSAgZnVuY3Rpb24gX19fY3hhX2ZyZWVfZXhjZXB0aW9uKHB0cikg
ewotICAgICAgdHJ5IHsKLSAgICAgICAgcmV0dXJuIF9mcmVlKHB0cik7Ci0gICAgICB9IGNhdGNo
KGUpIHsgLy8gWFhYIEZJWE1FCi0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV9lbmRfY2F0
Y2goKSB7Ci0gICAgICBpZiAoX19fY3hhX2VuZF9jYXRjaC5yZXRocm93bikgewotICAgICAgICBf
X19jeGFfZW5kX2NhdGNoLnJldGhyb3duID0gZmFsc2U7Ci0gICAgICAgIHJldHVybjsKLSAgICAg
IH0KLSAgICAgIC8vIENsZWFyIHN0YXRlIGZsYWcuCi0gICAgICBhc21bJ3NldFRocmV3J10oMCk7
Ci0gICAgICAvLyBDbGVhciB0eXBlLgotICAgICAgSEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlv
bi5idWYpKyg0KSk+PjIpXT0wCi0gICAgICAvLyBDYWxsIGRlc3RydWN0b3IgaWYgb25lIGlzIHJl
Z2lzdGVyZWQgdGhlbiBjbGVhciBpdC4KLSAgICAgIHZhciBwdHIgPSBIRUFQMzJbKChfbGx2bV9l
aF9leGNlcHRpb24uYnVmKT4+MildOwotICAgICAgdmFyIGRlc3RydWN0b3IgPSBIRUFQMzJbKCgo
X2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDgpKT4+MildOwotICAgICAgaWYgKGRlc3RydWN0b3Ip
IHsKLSAgICAgICAgUnVudGltZS5keW5DYWxsKCd2aScsIGRlc3RydWN0b3IsIFtwdHJdKTsKLSAg
ICAgICAgSEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg4KSk+PjIpXT0wCi0gICAg
ICB9Ci0gICAgICAvLyBGcmVlIHB0ciBpZiBpdCBpc24ndCBudWxsLgotICAgICAgaWYgKHB0cikg
ewotICAgICAgICBfX19jeGFfZnJlZV9leGNlcHRpb24ocHRyKTsKLSAgICAgICAgSEVBUDMyWygo
X2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXT0wCi0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF9f
X2N4YV9yZXRocm93KCkgewotICAgICAgX19fY3hhX2VuZF9jYXRjaC5yZXRocm93biA9IHRydWU7
Ci0gICAgICB0aHJvdyBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildICsgIiAt
IEV4Y2VwdGlvbiBjYXRjaGluZyBpcyBkaXNhYmxlZCwgdGhpcyBleGNlcHRpb24gY2Fubm90IGJl
IGNhdWdodC4gQ29tcGlsZSB3aXRoIC1zIERJU0FCTEVfRVhDRVBUSU9OX0NBVENISU5HPTAgb3Ig
RElTQUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MiB0byBjYXRjaC4iOzsKLSAgICB9Ci0gIE1vZHVs
ZVsiX21lbW1vdmUiXSA9IF9tZW1tb3ZlO3ZhciBfbGx2bV9tZW1tb3ZlX3AwaThfcDBpOF9pMzI9
X21lbW1vdmU7Ci0gIE1vZHVsZVsiX21lbXNldCJdID0gX21lbXNldDt2YXIgX2xsdm1fbWVtc2V0
X3AwaThfaTY0PV9tZW1zZXQ7Ci0gIGZ1bmN0aW9uIF9sbHZtX2xpZmV0aW1lX3N0YXJ0KCkge30K
LSAgZnVuY3Rpb24gX2xsdm1fbGlmZXRpbWVfZW5kKCkge30KLSAgZnVuY3Rpb24gX3B0aHJlYWRf
bXV0ZXhfbG9jaygpIHt9Ci0gIGZ1bmN0aW9uIF9wdGhyZWFkX211dGV4X3VubG9jaygpIHt9Ci0g
IGZ1bmN0aW9uIF9fX2N4YV9ndWFyZF9hY3F1aXJlKHZhcmlhYmxlKSB7Ci0gICAgICBpZiAoIUhF
QVA4Wyh2YXJpYWJsZSldKSB7IC8vIGlnbm9yZSBTQUZFX0hFQVAgc3R1ZmYgYmVjYXVzZSBsbHZt
IG1peGVzIGk2NCBhbmQgaTggaGVyZQotICAgICAgICBIRUFQOFsodmFyaWFibGUpXT0xOwotICAg
ICAgICByZXR1cm4gMTsKLSAgICAgIH0KLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAgZnVuY3Rp
b24gX19fY3hhX2d1YXJkX3JlbGVhc2UoKSB7fQotICBmdW5jdGlvbiBfcHRocmVhZF9jb25kX2Jy
b2FkY2FzdCgpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAgZnVuY3Rpb24gX3B0aHJlYWRf
Y29uZF93YWl0KCkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFf
YWxsb2NhdGVfZXhjZXB0aW9uKHNpemUpIHsKLSAgICAgIHJldHVybiBfbWFsbG9jKHNpemUpOwot
ICAgIH0KLSAgZnVuY3Rpb24gX19fY3hhX2lzX251bWJlcl90eXBlKHR5cGUpIHsKLSAgICAgIHZh
ciBpc051bWJlciA9IGZhbHNlOwotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVElpKSBpc051
bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWop
IGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9f
WlRJbCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUg
PT0gX19aVEltKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAo
dHlwZSA9PSBfX1pUSXgpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7
IGlmICh0eXBlID09IF9fWlRJeSkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAg
dHJ5IHsgaWYgKHR5cGUgPT0gX19aVElmKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0g
ICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWQpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUp
e30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJZSkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0
Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEljKSBpc051bWJlciA9IHRydWUg
fSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWEpIGlzTnVtYmVyID0g
dHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJaCkgaXNOdW1i
ZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVElzKSBp
c051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pU
SXQpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHJldHVybiBpc051bWJlcjsK
LSAgICB9ZnVuY3Rpb24gX19fY3hhX2RvZXNfaW5oZXJpdChkZWZpbml0ZVR5cGUsIHBvc3NpYmls
aXR5VHlwZSwgcG9zc2liaWxpdHkpIHsKLSAgICAgIGlmIChwb3NzaWJpbGl0eSA9PSAwKSByZXR1
cm4gZmFsc2U7Ci0gICAgICBpZiAocG9zc2liaWxpdHlUeXBlID09IDAgfHwgcG9zc2liaWxpdHlU
eXBlID09IGRlZmluaXRlVHlwZSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICB2YXIgcG9z
c2liaWxpdHlfdHlwZV9pbmZvOwotICAgICAgaWYgKF9fX2N4YV9pc19udW1iZXJfdHlwZShwb3Nz
aWJpbGl0eVR5cGUpKSB7Ci0gICAgICAgIHBvc3NpYmlsaXR5X3R5cGVfaW5mbyA9IHBvc3NpYmls
aXR5VHlwZTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBwb3NzaWJpbGl0eV90eXBlX2lu
Zm9BZGRyID0gSEVBUDMyWygocG9zc2liaWxpdHlUeXBlKT4+MildIC0gODsKLSAgICAgICAgcG9z
c2liaWxpdHlfdHlwZV9pbmZvID0gSEVBUDMyWygocG9zc2liaWxpdHlfdHlwZV9pbmZvQWRkcik+
PjIpXTsKLSAgICAgIH0KLSAgICAgIHN3aXRjaCAocG9zc2liaWxpdHlfdHlwZV9pbmZvKSB7Ci0g
ICAgICBjYXNlIDA6IC8vIHBvc3NpYmlsaXR5IGlzIGEgcG9pbnRlcgotICAgICAgICAvLyBTZWUg
aWYgZGVmaW5pdGUgdHlwZSBpcyBhIHBvaW50ZXIKLSAgICAgICAgdmFyIGRlZmluaXRlX3R5cGVf
aW5mb0FkZHIgPSBIRUFQMzJbKChkZWZpbml0ZVR5cGUpPj4yKV0gLSA4OwotICAgICAgICB2YXIg
ZGVmaW5pdGVfdHlwZV9pbmZvID0gSEVBUDMyWygoZGVmaW5pdGVfdHlwZV9pbmZvQWRkcik+PjIp
XTsKLSAgICAgICAgaWYgKGRlZmluaXRlX3R5cGVfaW5mbyA9PSAwKSB7Ci0gICAgICAgICAgLy8g
QWxzbyBhIHBvaW50ZXI7IGNvbXBhcmUgYmFzZSB0eXBlcyBvZiBwb2ludGVycwotICAgICAgICAg
IHZhciBkZWZQb2ludGVyQmFzZUFkZHIgPSBkZWZpbml0ZVR5cGUrODsKLSAgICAgICAgICB2YXIg
ZGVmUG9pbnRlckJhc2VUeXBlID0gSEVBUDMyWygoZGVmUG9pbnRlckJhc2VBZGRyKT4+MildOwot
ICAgICAgICAgIHZhciBwb3NzUG9pbnRlckJhc2VBZGRyID0gcG9zc2liaWxpdHlUeXBlKzg7Ci0g
ICAgICAgICAgdmFyIHBvc3NQb2ludGVyQmFzZVR5cGUgPSBIRUFQMzJbKChwb3NzUG9pbnRlckJh
c2VBZGRyKT4+MildOwotICAgICAgICAgIHJldHVybiBfX19jeGFfZG9lc19pbmhlcml0KGRlZlBv
aW50ZXJCYXNlVHlwZSwgcG9zc1BvaW50ZXJCYXNlVHlwZSwgcG9zc2liaWxpdHkpOwotICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIG9uZSBwb2ludGVyIGFuZCBvbmUg
bm9uLXBvaW50ZXIKLSAgICAgIGNhc2UgMTogLy8gY2xhc3Mgd2l0aCBubyBiYXNlIGNsYXNzCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIGNhc2UgMjogLy8gY2xhc3Mgd2l0aCBiYXNlIGNs
YXNzCi0gICAgICAgIHZhciBwYXJlbnRUeXBlQWRkciA9IHBvc3NpYmlsaXR5VHlwZSArIDg7Ci0g
ICAgICAgIHZhciBwYXJlbnRUeXBlID0gSEVBUDMyWygocGFyZW50VHlwZUFkZHIpPj4yKV07Ci0g
ICAgICAgIHJldHVybiBfX19jeGFfZG9lc19pbmhlcml0KGRlZmluaXRlVHlwZSwgcGFyZW50VHlw
ZSwgcG9zc2liaWxpdHkpOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAv
LyBzb21lIHVuZW5jb3VudGVyZWQgdHlwZQotICAgICAgfQotICAgIH0KLSAgZnVuY3Rpb24gX19f
cmVzdW1lRXhjZXB0aW9uKHB0cikgewotICAgICAgaWYgKEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2Vw
dGlvbi5idWYpPj4yKV0gPT0gMCkgSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIp
XT1wdHI7Ci0gICAgICB0aHJvdyBwdHIgKyAiIC0gRXhjZXB0aW9uIGNhdGNoaW5nIGlzIGRpc2Fi
bGVkLCB0aGlzIGV4Y2VwdGlvbiBjYW5ub3QgYmUgY2F1Z2h0LiBDb21waWxlIHdpdGggLXMgRElT
QUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MCBvciBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0y
IHRvIGNhdGNoLiI7OwotICAgIH1mdW5jdGlvbiBfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaCh0
aHJvd24sIHRocm93bnR5cGUpIHsKLSAgICAgIGlmICh0aHJvd24gPT0gLTEpIHRocm93biA9IEhF
QVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV07Ci0gICAgICBpZiAodGhyb3dudHlw
ZSA9PSAtMSkgdGhyb3dudHlwZSA9IEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSso
NCkpPj4yKV07Ci0gICAgICB2YXIgdHlwZUFycmF5ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNh
bGwoYXJndW1lbnRzLCAyKTsKLSAgICAgIC8vIElmIHRocm93bnR5cGUgaXMgYSBwb2ludGVyLCB0
aGlzIG1lYW5zIGEgcG9pbnRlciBoYXMgYmVlbgotICAgICAgLy8gdGhyb3duLiBXaGVuIGEgcG9p
bnRlciBpcyB0aHJvd24sIGFjdHVhbGx5IHdoYXQncyB0aHJvd24KLSAgICAgIC8vIGlzIGEgcG9p
bnRlciB0byB0aGUgcG9pbnRlci4gV2UnbGwgZGVyZWZlcmVuY2UgaXQuCi0gICAgICBpZiAodGhy
b3dudHlwZSAhPSAwICYmICFfX19jeGFfaXNfbnVtYmVyX3R5cGUodGhyb3dudHlwZSkpIHsKLSAg
ICAgICAgdmFyIHRocm93bnR5cGVJbmZvQWRkcj0gSEVBUDMyWygodGhyb3dudHlwZSk+PjIpXSAt
IDg7Ci0gICAgICAgIHZhciB0aHJvd250eXBlSW5mbz0gSEVBUDMyWygodGhyb3dudHlwZUluZm9B
ZGRyKT4+MildOwotICAgICAgICBpZiAodGhyb3dudHlwZUluZm8gPT0gMCkKLSAgICAgICAgICB0
aHJvd24gPSBIRUFQMzJbKCh0aHJvd24pPj4yKV07Ci0gICAgICB9Ci0gICAgICAvLyBUaGUgZGlm
ZmVyZW50IGNhdGNoIGJsb2NrcyBhcmUgZGVub3RlZCBieSBkaWZmZXJlbnQgdHlwZXMuCi0gICAg
ICAvLyBEdWUgdG8gaW5oZXJpdGFuY2UsIHRob3NlIHR5cGVzIG1heSBub3QgcHJlY2lzZWx5IG1h
dGNoIHRoZQotICAgICAgLy8gdHlwZSBvZiB0aGUgdGhyb3duIG9iamVjdC4gRmluZCBvbmUgd2hp
Y2ggbWF0Y2hlcywgYW5kCi0gICAgICAvLyByZXR1cm4gdGhlIHR5cGUgb2YgdGhlIGNhdGNoIGJs
b2NrIHdoaWNoIHNob3VsZCBiZSBjYWxsZWQuCi0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5
cGVBcnJheS5sZW5ndGg7IGkrKykgewotICAgICAgICBpZiAoX19fY3hhX2RvZXNfaW5oZXJpdCh0
eXBlQXJyYXlbaV0sIHRocm93bnR5cGUsIHRocm93bikpCi0gICAgICAgICAgcmV0dXJuICgoYXNt
WyJzZXRUZW1wUmV0MCJdKHR5cGVBcnJheVtpXSksdGhyb3duKXwwKTsKLSAgICAgIH0KLSAgICAg
IC8vIFNob3VsZG4ndCBoYXBwZW4gdW5sZXNzIHdlIGhhdmUgYm9ndXMgZGF0YSBpbiB0eXBlQXJy
YXkKLSAgICAgIC8vIG9yIGVuY291bnRlciBhIHR5cGUgZm9yIHdoaWNoIGVtc2NyaXB0ZW4gZG9l
c24ndCBoYXZlIHN1aXRhYmxlCi0gICAgICAvLyB0eXBlaW5mbyBkZWZpbmVkLiBCZXN0LWVmZm9y
dHMgbWF0Y2gganVzdCBpbiBjYXNlLgotICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJd
KHRocm93bnR5cGUpLHRocm93bil8MCk7Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV90aHJvdyhwdHIs
IHR5cGUsIGRlc3RydWN0b3IpIHsKLSAgICAgIGlmICghX19fY3hhX3Rocm93LmluaXRpYWxpemVk
KSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgSEVBUDMyWygoX19aVFZOMTBfX2N4eGFiaXYx
MTlfX3BvaW50ZXJfdHlwZV9pbmZvRSk+PjIpXT0wOyAvLyBXb3JrYXJvdW5kIGZvciBsaWJjeHhh
YmkgaW50ZWdyYXRpb24gYnVnCi0gICAgICAgIH0gY2F0Y2goZSl7fQotICAgICAgICB0cnkgewot
ICAgICAgICAgIEhFQVAzMlsoKF9fWlRWTjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9F
KT4+MildPTE7IC8vIFdvcmthcm91bmQgZm9yIGxpYmN4eGFiaSBpbnRlZ3JhdGlvbiBidWcKLSAg
ICAgICAgfSBjYXRjaChlKXt9Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgSEVBUDMyWygoX19a
VFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UpPj4yKV09MjsgLy8gV29ya2Fy
b3VuZCBmb3IgbGliY3h4YWJpIGludGVncmF0aW9uIGJ1ZwotICAgICAgICB9IGNhdGNoKGUpe30K
LSAgICAgICAgX19fY3hhX3Rocm93LmluaXRpYWxpemVkID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAg
IEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV09cHRyCi0gICAgICBIRUFQMzJb
KCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDQpKT4+MildPXR5cGUKLSAgICAgIEhFQVAzMlso
KChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoOCkpPj4yKV09ZGVzdHJ1Y3RvcgotICAgICAgaWYg
KCEoInVuY2F1Z2h0X2V4Y2VwdGlvbiIgaW4gX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYpKSB7
Ci0gICAgICAgIF9fWlN0MTh1bmNhdWdodF9leGNlcHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbiA9
IDE7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udi51
bmNhdWdodF9leGNlcHRpb24rKzsKLSAgICAgIH0KLSAgICAgIHRocm93IHB0ciArICIgLSBFeGNl
cHRpb24gY2F0Y2hpbmcgaXMgZGlzYWJsZWQsIHRoaXMgZXhjZXB0aW9uIGNhbm5vdCBiZSBjYXVn
aHQuIENvbXBpbGUgd2l0aCAtcyBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0wIG9yIERJU0FC
TEVfRVhDRVBUSU9OX0NBVENISU5HPTIgdG8gY2F0Y2guIjs7Ci0gICAgfQotICB2YXIgRVJSTk9f
Q09ERVM9e0VQRVJNOjEsRU5PRU5UOjIsRVNSQ0g6MyxFSU5UUjo0LEVJTzo1LEVOWElPOjYsRTJC
SUc6NyxFTk9FWEVDOjgsRUJBREY6OSxFQ0hJTEQ6MTAsRUFHQUlOOjExLEVXT1VMREJMT0NLOjEx
LEVOT01FTToxMixFQUNDRVM6MTMsRUZBVUxUOjE0LEVOT1RCTEs6MTUsRUJVU1k6MTYsRUVYSVNU
OjE3LEVYREVWOjE4LEVOT0RFVjoxOSxFTk9URElSOjIwLEVJU0RJUjoyMSxFSU5WQUw6MjIsRU5G
SUxFOjIzLEVNRklMRToyNCxFTk9UVFk6MjUsRVRYVEJTWToyNixFRkJJRzoyNyxFTk9TUEM6Mjgs
RVNQSVBFOjI5LEVST0ZTOjMwLEVNTElOSzozMSxFUElQRTozMixFRE9NOjMzLEVSQU5HRTozNCxF
Tk9NU0c6MzUsRUlEUk06MzYsRUNIUk5HOjM3LEVMMk5TWU5DOjM4LEVMM0hMVDozOSxFTDNSU1Q6
NDAsRUxOUk5HOjQxLEVVTkFUQ0g6NDIsRU5PQ1NJOjQzLEVMMkhMVDo0NCxFREVBRExLOjQ1LEVO
T0xDSzo0NixFQkFERTo1MCxFQkFEUjo1MSxFWEZVTEw6NTIsRU5PQU5POjUzLEVCQURSUUM6NTQs
RUJBRFNMVDo1NSxFREVBRExPQ0s6NTYsRUJGT05UOjU3LEVOT1NUUjo2MCxFTk9EQVRBOjYxLEVU
SU1FOjYyLEVOT1NSOjYzLEVOT05FVDo2NCxFTk9QS0c6NjUsRVJFTU9URTo2NixFTk9MSU5LOjY3
LEVBRFY6NjgsRVNSTU5UOjY5LEVDT01NOjcwLEVQUk9UTzo3MSxFTVVMVElIT1A6NzQsRURPVERP
VDo3NixFQkFETVNHOjc3LEVOT1RVTklROjgwLEVCQURGRDo4MSxFUkVNQ0hHOjgyLEVMSUJBQ0M6
ODMsRUxJQkJBRDo4NCxFTElCU0NOOjg1LEVMSUJNQVg6ODYsRUxJQkVYRUM6ODcsRU5PU1lTOjg4
LEVOT1RFTVBUWTo5MCxFTkFNRVRPT0xPTkc6OTEsRUxPT1A6OTIsRU9QTk9UU1VQUDo5NSxFUEZO
T1NVUFBPUlQ6OTYsRUNPTk5SRVNFVDoxMDQsRU5PQlVGUzoxMDUsRUFGTk9TVVBQT1JUOjEwNixF
UFJPVE9UWVBFOjEwNyxFTk9UU09DSzoxMDgsRU5PUFJPVE9PUFQ6MTA5LEVTSFVURE9XTjoxMTAs
RUNPTk5SRUZVU0VEOjExMSxFQUREUklOVVNFOjExMixFQ09OTkFCT1JURUQ6MTEzLEVORVRVTlJF
QUNIOjExNCxFTkVURE9XTjoxMTUsRVRJTUVET1VUOjExNixFSE9TVERPV046MTE3LEVIT1NUVU5S
RUFDSDoxMTgsRUlOUFJPR1JFU1M6MTE5LEVBTFJFQURZOjEyMCxFREVTVEFERFJSRVE6MTIxLEVN
U0dTSVpFOjEyMixFUFJPVE9OT1NVUFBPUlQ6MTIzLEVTT0NLVE5PU1VQUE9SVDoxMjQsRUFERFJO
T1RBVkFJTDoxMjUsRU5FVFJFU0VUOjEyNixFSVNDT05OOjEyNyxFTk9UQ09OTjoxMjgsRVRPT01B
TllSRUZTOjEyOSxFVVNFUlM6MTMxLEVEUVVPVDoxMzIsRVNUQUxFOjEzMyxFTk9UU1VQOjEzNCxF
Tk9NRURJVU06MTM1LEVJTFNFUToxMzgsRU9WRVJGTE9XOjEzOSxFQ0FOQ0VMRUQ6MTQwLEVOT1RS
RUNPVkVSQUJMRToxNDEsRU9XTkVSREVBRDoxNDIsRVNUUlBJUEU6MTQzfTsKLSAgdmFyIEVSUk5P
X01FU1NBR0VTPXswOiJTdWNjZXNzIiwxOiJOb3Qgc3VwZXItdXNlciIsMjoiTm8gc3VjaCBmaWxl
IG9yIGRpcmVjdG9yeSIsMzoiTm8gc3VjaCBwcm9jZXNzIiw0OiJJbnRlcnJ1cHRlZCBzeXN0ZW0g
Y2FsbCIsNToiSS9PIGVycm9yIiw2OiJObyBzdWNoIGRldmljZSBvciBhZGRyZXNzIiw3OiJBcmcg
bGlzdCB0b28gbG9uZyIsODoiRXhlYyBmb3JtYXQgZXJyb3IiLDk6IkJhZCBmaWxlIG51bWJlciIs
MTA6Ik5vIGNoaWxkcmVuIiwxMToiTm8gbW9yZSBwcm9jZXNzZXMiLDEyOiJOb3QgZW5vdWdoIGNv
cmUiLDEzOiJQZXJtaXNzaW9uIGRlbmllZCIsMTQ6IkJhZCBhZGRyZXNzIiwxNToiQmxvY2sgZGV2
aWNlIHJlcXVpcmVkIiwxNjoiTW91bnQgZGV2aWNlIGJ1c3kiLDE3OiJGaWxlIGV4aXN0cyIsMTg6
IkNyb3NzLWRldmljZSBsaW5rIiwxOToiTm8gc3VjaCBkZXZpY2UiLDIwOiJOb3QgYSBkaXJlY3Rv
cnkiLDIxOiJJcyBhIGRpcmVjdG9yeSIsMjI6IkludmFsaWQgYXJndW1lbnQiLDIzOiJUb28gbWFu
eSBvcGVuIGZpbGVzIGluIHN5c3RlbSIsMjQ6IlRvbyBtYW55IG9wZW4gZmlsZXMiLDI1OiJOb3Qg
YSB0eXBld3JpdGVyIiwyNjoiVGV4dCBmaWxlIGJ1c3kiLDI3OiJGaWxlIHRvbyBsYXJnZSIsMjg6
Ik5vIHNwYWNlIGxlZnQgb24gZGV2aWNlIiwyOToiSWxsZWdhbCBzZWVrIiwzMDoiUmVhZCBvbmx5
IGZpbGUgc3lzdGVtIiwzMToiVG9vIG1hbnkgbGlua3MiLDMyOiJCcm9rZW4gcGlwZSIsMzM6Ik1h
dGggYXJnIG91dCBvZiBkb21haW4gb2YgZnVuYyIsMzQ6Ik1hdGggcmVzdWx0IG5vdCByZXByZXNl
bnRhYmxlIiwzNToiTm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUiLDM2OiJJZGVudGlmaWVyIHJl
bW92ZWQiLDM3OiJDaGFubmVsIG51bWJlciBvdXQgb2YgcmFuZ2UiLDM4OiJMZXZlbCAyIG5vdCBz
eW5jaHJvbml6ZWQiLDM5OiJMZXZlbCAzIGhhbHRlZCIsNDA6IkxldmVsIDMgcmVzZXQiLDQxOiJM
aW5rIG51bWJlciBvdXQgb2YgcmFuZ2UiLDQyOiJQcm90b2NvbCBkcml2ZXIgbm90IGF0dGFjaGVk
Iiw0MzoiTm8gQ1NJIHN0cnVjdHVyZSBhdmFpbGFibGUiLDQ0OiJMZXZlbCAyIGhhbHRlZCIsNDU6
IkRlYWRsb2NrIGNvbmRpdGlvbiIsNDY6Ik5vIHJlY29yZCBsb2NrcyBhdmFpbGFibGUiLDUwOiJJ
bnZhbGlkIGV4Y2hhbmdlIiw1MToiSW52YWxpZCByZXF1ZXN0IGRlc2NyaXB0b3IiLDUyOiJFeGNo
YW5nZSBmdWxsIiw1MzoiTm8gYW5vZGUiLDU0OiJJbnZhbGlkIHJlcXVlc3QgY29kZSIsNTU6Iklu
dmFsaWQgc2xvdCIsNTY6IkZpbGUgbG9ja2luZyBkZWFkbG9jayBlcnJvciIsNTc6IkJhZCBmb250
IGZpbGUgZm10Iiw2MDoiRGV2aWNlIG5vdCBhIHN0cmVhbSIsNjE6Ik5vIGRhdGEgKGZvciBubyBk
ZWxheSBpbykiLDYyOiJUaW1lciBleHBpcmVkIiw2MzoiT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2Vz
Iiw2NDoiTWFjaGluZSBpcyBub3Qgb24gdGhlIG5ldHdvcmsiLDY1OiJQYWNrYWdlIG5vdCBpbnN0
YWxsZWQiLDY2OiJUaGUgb2JqZWN0IGlzIHJlbW90ZSIsNjc6IlRoZSBsaW5rIGhhcyBiZWVuIHNl
dmVyZWQiLDY4OiJBZHZlcnRpc2UgZXJyb3IiLDY5OiJTcm1vdW50IGVycm9yIiw3MDoiQ29tbXVu
aWNhdGlvbiBlcnJvciBvbiBzZW5kIiw3MToiUHJvdG9jb2wgZXJyb3IiLDc0OiJNdWx0aWhvcCBh
dHRlbXB0ZWQiLDc2OiJDcm9zcyBtb3VudCBwb2ludCAobm90IHJlYWxseSBlcnJvcikiLDc3OiJU
cnlpbmcgdG8gcmVhZCB1bnJlYWRhYmxlIG1lc3NhZ2UiLDgwOiJHaXZlbiBsb2cuIG5hbWUgbm90
IHVuaXF1ZSIsODE6ImYuZC4gaW52YWxpZCBmb3IgdGhpcyBvcGVyYXRpb24iLDgyOiJSZW1vdGUg
YWRkcmVzcyBjaGFuZ2VkIiw4MzoiQ2FuICAgYWNjZXNzIGEgbmVlZGVkIHNoYXJlZCBsaWIiLDg0
OiJBY2Nlc3NpbmcgYSBjb3JydXB0ZWQgc2hhcmVkIGxpYiIsODU6Ii5saWIgc2VjdGlvbiBpbiBh
Lm91dCBjb3JydXB0ZWQiLDg2OiJBdHRlbXB0aW5nIHRvIGxpbmsgaW4gdG9vIG1hbnkgbGlicyIs
ODc6IkF0dGVtcHRpbmcgdG8gZXhlYyBhIHNoYXJlZCBsaWJyYXJ5Iiw4ODoiRnVuY3Rpb24gbm90
IGltcGxlbWVudGVkIiw5MDoiRGlyZWN0b3J5IG5vdCBlbXB0eSIsOTE6IkZpbGUgb3IgcGF0aCBu
YW1lIHRvbyBsb25nIiw5MjoiVG9vIG1hbnkgc3ltYm9saWMgbGlua3MiLDk1OiJPcGVyYXRpb24g
bm90IHN1cHBvcnRlZCBvbiB0cmFuc3BvcnQgZW5kcG9pbnQiLDk2OiJQcm90b2NvbCBmYW1pbHkg
bm90IHN1cHBvcnRlZCIsMTA0OiJDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIiLDEwNToiTm8gYnVm
ZmVyIHNwYWNlIGF2YWlsYWJsZSIsMTA2OiJBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5
IHByb3RvY29sIGZhbWlseSIsMTA3OiJQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQiLDEw
ODoiU29ja2V0IG9wZXJhdGlvbiBvbiBub24tc29ja2V0IiwxMDk6IlByb3RvY29sIG5vdCBhdmFp
bGFibGUiLDExMDoiQ2FuJ3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24iLDExMToiQ29ubmVj
dGlvbiByZWZ1c2VkIiwxMTI6IkFkZHJlc3MgYWxyZWFkeSBpbiB1c2UiLDExMzoiQ29ubmVjdGlv
biBhYm9ydGVkIiwxMTQ6Ik5ldHdvcmsgaXMgdW5yZWFjaGFibGUiLDExNToiTmV0d29yayBpbnRl
cmZhY2UgaXMgbm90IGNvbmZpZ3VyZWQiLDExNjoiQ29ubmVjdGlvbiB0aW1lZCBvdXQiLDExNzoi
SG9zdCBpcyBkb3duIiwxMTg6Ikhvc3QgaXMgdW5yZWFjaGFibGUiLDExOToiQ29ubmVjdGlvbiBh
bHJlYWR5IGluIHByb2dyZXNzIiwxMjA6IlNvY2tldCBhbHJlYWR5IGNvbm5lY3RlZCIsMTIxOiJE
ZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkIiwxMjI6Ik1lc3NhZ2UgdG9vIGxvbmciLDEyMzoi
VW5rbm93biBwcm90b2NvbCIsMTI0OiJTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkIiwxMjU6IkFk
ZHJlc3Mgbm90IGF2YWlsYWJsZSIsMTI2OiJDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsiLDEy
NzoiU29ja2V0IGlzIGFscmVhZHkgY29ubmVjdGVkIiwxMjg6IlNvY2tldCBpcyBub3QgY29ubmVj
dGVkIiwxMjk6IlRvbyBtYW55IHJlZmVyZW5jZXMiLDEzMToiVG9vIG1hbnkgdXNlcnMiLDEzMjoi
UXVvdGEgZXhjZWVkZWQiLDEzMzoiU3RhbGUgZmlsZSBoYW5kbGUiLDEzNDoiTm90IHN1cHBvcnRl
ZCIsMTM1OiJObyBtZWRpdW0gKGluIHRhcGUgZHJpdmUpIiwxMzg6IklsbGVnYWwgYnl0ZSBzZXF1
ZW5jZSIsMTM5OiJWYWx1ZSB0b28gbGFyZ2UgZm9yIGRlZmluZWQgZGF0YSB0eXBlIiwxNDA6Ik9w
ZXJhdGlvbiBjYW5jZWxlZCIsMTQxOiJTdGF0ZSBub3QgcmVjb3ZlcmFibGUiLDE0MjoiUHJldmlv
dXMgb3duZXIgZGllZCIsMTQzOiJTdHJlYW1zIHBpcGUgZXJyb3IifTsKLSAgdmFyIF9fX2Vycm5v
X3N0YXRlPTA7ZnVuY3Rpb24gX19fc2V0RXJyTm8odmFsdWUpIHsKLSAgICAgIC8vIEZvciBjb252
ZW5pZW50IHNldHRpbmcgYW5kIHJldHVybmluZyBvZiBlcnJuby4KLSAgICAgIEhFQVAzMlsoKF9f
X2Vycm5vX3N0YXRlKT4+MildPXZhbHVlCi0gICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfQotICB2
YXIgVkZTPXVuZGVmaW5lZDsKLSAgdmFyIFBBVEg9e3NwbGl0UGF0aDpmdW5jdGlvbiAoZmlsZW5h
bWUpIHsKLSAgICAgICAgdmFyIHNwbGl0UGF0aFJlID0gL14oXC8/fCkoW1xzXFNdKj8pKCg/Olwu
ezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwpKSg/OltcL10qKSQvOwotICAgICAgICByZXR1cm4g
c3BsaXRQYXRoUmUuZXhlYyhmaWxlbmFtZSkuc2xpY2UoMSk7Ci0gICAgICB9LG5vcm1hbGl6ZUFy
cmF5OmZ1bmN0aW9uIChwYXJ0cywgYWxsb3dBYm92ZVJvb3QpIHsKLSAgICAgICAgLy8gaWYgdGhl
IHBhdGggdHJpZXMgdG8gZ28gYWJvdmUgdGhlIHJvb3QsIGB1cGAgZW5kcyB1cCA+IDAKLSAgICAg
ICAgdmFyIHVwID0gMDsKLSAgICAgICAgZm9yICh2YXIgaSA9IHBhcnRzLmxlbmd0aCAtIDE7IGkg
Pj0gMDsgaS0tKSB7Ci0gICAgICAgICAgdmFyIGxhc3QgPSBwYXJ0c1tpXTsKLSAgICAgICAgICBp
ZiAobGFzdCA9PT0gJy4nKSB7Ci0gICAgICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMSk7Ci0gICAg
ICAgICAgfSBlbHNlIGlmIChsYXN0ID09PSAnLi4nKSB7Ci0gICAgICAgICAgICBwYXJ0cy5zcGxp
Y2UoaSwgMSk7Ci0gICAgICAgICAgICB1cCsrOwotICAgICAgICAgIH0gZWxzZSBpZiAodXApIHsK
LSAgICAgICAgICAgIHBhcnRzLnNwbGljZShpLCAxKTsKLSAgICAgICAgICAgIHVwLS07Ci0gICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIC8vIGlmIHRoZSBwYXRoIGlzIGFsbG93ZWQgdG8g
Z28gYWJvdmUgdGhlIHJvb3QsIHJlc3RvcmUgbGVhZGluZyAuLnMKLSAgICAgICAgaWYgKGFsbG93
QWJvdmVSb290KSB7Ci0gICAgICAgICAgZm9yICg7IHVwLS07IHVwKSB7Ci0gICAgICAgICAgICBw
YXJ0cy51bnNoaWZ0KCcuLicpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gcGFydHM7Ci0gICAgICB9LG5vcm1hbGl6ZTpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICB2
YXIgaXNBYnNvbHV0ZSA9IHBhdGguY2hhckF0KDApID09PSAnLycsCi0gICAgICAgICAgICB0cmFp
bGluZ1NsYXNoID0gcGF0aC5zdWJzdHIoLTEpID09PSAnLyc7Ci0gICAgICAgIC8vIE5vcm1hbGl6
ZSB0aGUgcGF0aAotICAgICAgICBwYXRoID0gUEFUSC5ub3JtYWxpemVBcnJheShwYXRoLnNwbGl0
KCcvJykuZmlsdGVyKGZ1bmN0aW9uKHApIHsKLSAgICAgICAgICByZXR1cm4gISFwOwotICAgICAg
ICB9KSwgIWlzQWJzb2x1dGUpLmpvaW4oJy8nKTsKLSAgICAgICAgaWYgKCFwYXRoICYmICFpc0Fi
c29sdXRlKSB7Ci0gICAgICAgICAgcGF0aCA9ICcuJzsKLSAgICAgICAgfQotICAgICAgICBpZiAo
cGF0aCAmJiB0cmFpbGluZ1NsYXNoKSB7Ci0gICAgICAgICAgcGF0aCArPSAnLyc7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIChpc0Fic29sdXRlID8gJy8nIDogJycpICsgcGF0aDsKLSAgICAg
IH0sZGlybmFtZTpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICB2YXIgcmVzdWx0ID0gUEFUSC5z
cGxpdFBhdGgocGF0aCksCi0gICAgICAgICAgICByb290ID0gcmVzdWx0WzBdLAotICAgICAgICAg
ICAgZGlyID0gcmVzdWx0WzFdOwotICAgICAgICBpZiAoIXJvb3QgJiYgIWRpcikgewotICAgICAg
ICAgIC8vIE5vIGRpcm5hbWUgd2hhdHNvZXZlcgotICAgICAgICAgIHJldHVybiAnLic7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKGRpcikgewotICAgICAgICAgIC8vIEl0IGhhcyBhIGRpcm5hbWUs
IHN0cmlwIHRyYWlsaW5nIHNsYXNoCi0gICAgICAgICAgZGlyID0gZGlyLnN1YnN0cigwLCBkaXIu
bGVuZ3RoIC0gMSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJvb3QgKyBkaXI7Ci0gICAg
ICB9LGJhc2VuYW1lOmZ1bmN0aW9uIChwYXRoLCBleHQpIHsKLSAgICAgICAgLy8gRU1TQ1JJUFRF
TiByZXR1cm4gJy8nJyBmb3IgJy8nLCBub3QgYW4gZW1wdHkgc3RyaW5nCi0gICAgICAgIGlmIChw
YXRoID09PSAnLycpIHJldHVybiAnLyc7Ci0gICAgICAgIHZhciBmID0gUEFUSC5zcGxpdFBhdGgo
cGF0aClbMl07Ci0gICAgICAgIGlmIChleHQgJiYgZi5zdWJzdHIoLTEgKiBleHQubGVuZ3RoKSA9
PT0gZXh0KSB7Ci0gICAgICAgICAgZiA9IGYuc3Vic3RyKDAsIGYubGVuZ3RoIC0gZXh0Lmxlbmd0
aCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGY7Ci0gICAgICB9LGpvaW46ZnVuY3Rpb24g
KCkgewotICAgICAgICB2YXIgcGF0aHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1
bWVudHMsIDApOwotICAgICAgICByZXR1cm4gUEFUSC5ub3JtYWxpemUocGF0aHMuZmlsdGVyKGZ1
bmN0aW9uKHAsIGluZGV4KSB7Ci0gICAgICAgICAgaWYgKHR5cGVvZiBwICE9PSAnc3RyaW5nJykg
ewotICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIHRvIHBhdGguam9p
biBtdXN0IGJlIHN0cmluZ3MnKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIHA7Ci0g
ICAgICAgIH0pLmpvaW4oJy8nKSk7Ci0gICAgICB9LHJlc29sdmU6ZnVuY3Rpb24gKCkgewotICAg
ICAgICB2YXIgcmVzb2x2ZWRQYXRoID0gJycsCi0gICAgICAgICAgcmVzb2x2ZWRBYnNvbHV0ZSA9
IGZhbHNlOwotICAgICAgICBmb3IgKHZhciBpID0gYXJndW1lbnRzLmxlbmd0aCAtIDE7IGkgPj0g
LTEgJiYgIXJlc29sdmVkQWJzb2x1dGU7IGktLSkgewotICAgICAgICAgIHZhciBwYXRoID0gKGkg
Pj0gMCkgPyBhcmd1bWVudHNbaV0gOiBGUy5jd2QoKTsKLSAgICAgICAgICAvLyBTa2lwIGVtcHR5
IGFuZCBpbnZhbGlkIGVudHJpZXMKLSAgICAgICAgICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJp
bmcnKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudHMgdG8gcGF0
aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5ncycpOwotICAgICAgICAgIH0gZWxzZSBpZiAoIXBhdGgp
IHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXNvbHZl
ZFBhdGggPSBwYXRoICsgJy8nICsgcmVzb2x2ZWRQYXRoOwotICAgICAgICAgIHJlc29sdmVkQWJz
b2x1dGUgPSBwYXRoLmNoYXJBdCgwKSA9PT0gJy8nOwotICAgICAgICB9Ci0gICAgICAgIC8vIEF0
IHRoaXMgcG9pbnQgdGhlIHBhdGggc2hvdWxkIGJlIHJlc29sdmVkIHRvIGEgZnVsbCBhYnNvbHV0
ZSBwYXRoLCBidXQKLSAgICAgICAgLy8gaGFuZGxlIHJlbGF0aXZlIHBhdGhzIHRvIGJlIHNhZmUg
KG1pZ2h0IGhhcHBlbiB3aGVuIHByb2Nlc3MuY3dkKCkgZmFpbHMpCi0gICAgICAgIHJlc29sdmVk
UGF0aCA9IFBBVEgubm9ybWFsaXplQXJyYXkocmVzb2x2ZWRQYXRoLnNwbGl0KCcvJykuZmlsdGVy
KGZ1bmN0aW9uKHApIHsKLSAgICAgICAgICByZXR1cm4gISFwOwotICAgICAgICB9KSwgIXJlc29s
dmVkQWJzb2x1dGUpLmpvaW4oJy8nKTsKLSAgICAgICAgcmV0dXJuICgocmVzb2x2ZWRBYnNvbHV0
ZSA/ICcvJyA6ICcnKSArIHJlc29sdmVkUGF0aCkgfHwgJy4nOwotICAgICAgfSxyZWxhdGl2ZTpm
dW5jdGlvbiAoZnJvbSwgdG8pIHsKLSAgICAgICAgZnJvbSA9IFBBVEgucmVzb2x2ZShmcm9tKS5z
dWJzdHIoMSk7Ci0gICAgICAgIHRvID0gUEFUSC5yZXNvbHZlKHRvKS5zdWJzdHIoMSk7Ci0gICAg
ICAgIGZ1bmN0aW9uIHRyaW0oYXJyKSB7Ci0gICAgICAgICAgdmFyIHN0YXJ0ID0gMDsKLSAgICAg
ICAgICBmb3IgKDsgc3RhcnQgPCBhcnIubGVuZ3RoOyBzdGFydCsrKSB7Ci0gICAgICAgICAgICBp
ZiAoYXJyW3N0YXJ0XSAhPT0gJycpIGJyZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIg
ZW5kID0gYXJyLmxlbmd0aCAtIDE7Ci0gICAgICAgICAgZm9yICg7IGVuZCA+PSAwOyBlbmQtLSkg
ewotICAgICAgICAgICAgaWYgKGFycltlbmRdICE9PSAnJykgYnJlYWs7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIGlmIChzdGFydCA+IGVuZCkgcmV0dXJuIFtdOwotICAgICAgICAgIHJldHVybiBh
cnIuc2xpY2Uoc3RhcnQsIGVuZCAtIHN0YXJ0ICsgMSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFy
IGZyb21QYXJ0cyA9IHRyaW0oZnJvbS5zcGxpdCgnLycpKTsKLSAgICAgICAgdmFyIHRvUGFydHMg
PSB0cmltKHRvLnNwbGl0KCcvJykpOwotICAgICAgICB2YXIgbGVuZ3RoID0gTWF0aC5taW4oZnJv
bVBhcnRzLmxlbmd0aCwgdG9QYXJ0cy5sZW5ndGgpOwotICAgICAgICB2YXIgc2FtZVBhcnRzTGVu
Z3RoID0gbGVuZ3RoOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7
Ci0gICAgICAgICAgaWYgKGZyb21QYXJ0c1tpXSAhPT0gdG9QYXJ0c1tpXSkgewotICAgICAgICAg
ICAgc2FtZVBhcnRzTGVuZ3RoID0gaTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgICAgICB2YXIgb3V0cHV0UGFydHMgPSBbXTsKLSAgICAgICAgZm9yICh2
YXIgaSA9IHNhbWVQYXJ0c0xlbmd0aDsgaSA8IGZyb21QYXJ0cy5sZW5ndGg7IGkrKykgewotICAg
ICAgICAgIG91dHB1dFBhcnRzLnB1c2goJy4uJyk7Ci0gICAgICAgIH0KLSAgICAgICAgb3V0cHV0
UGFydHMgPSBvdXRwdXRQYXJ0cy5jb25jYXQodG9QYXJ0cy5zbGljZShzYW1lUGFydHNMZW5ndGgp
KTsKLSAgICAgICAgcmV0dXJuIG91dHB1dFBhcnRzLmpvaW4oJy8nKTsKLSAgICAgIH19OwotICB2
YXIgVFRZPXt0dHlzOltdLHJlZ2lzdGVyOmZ1bmN0aW9uIChkZXYsIG9wcykgewotICAgICAgICBU
VFkudHR5c1tkZXZdID0geyBpbnB1dDogW10sIG91dHB1dDogW10sIG9wczogb3BzIH07Ci0gICAg
ICAgIEZTLnJlZ2lzdGVyRGV2aWNlKGRldiwgVFRZLnN0cmVhbV9vcHMpOwotICAgICAgfSxzdHJl
YW1fb3BzOntvcGVuOmZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICAgICAgICAvLyB0aGlzIHdvdWxk
bid0IGJlIHJlcXVpcmVkIGlmIHRoZSBsaWJyYXJ5IHdhc24ndCBldmFsJ2QgYXQgZmlyc3QuLi4K
LSAgICAgICAgICBpZiAoIVRUWS51dGY4KSB7Ci0gICAgICAgICAgICBUVFkudXRmOCA9IG5ldyBS
dW50aW1lLlVURjhQcm9jZXNzb3IoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIHR0eSA9
IFRUWS50dHlzW3N0cmVhbS5ub2RlLnJkZXZdOwotICAgICAgICAgIGlmICghdHR5KSB7Ci0gICAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9ERVYpOwotICAg
ICAgICAgIH0KLSAgICAgICAgICBzdHJlYW0udHR5ID0gdHR5OwotICAgICAgICAgIHN0cmVhbS5z
ZWVrYWJsZSA9IGZhbHNlOwotICAgICAgICB9LGNsb3NlOmZ1bmN0aW9uIChzdHJlYW0pIHsKLSAg
ICAgICAgICAvLyBmbHVzaCBhbnkgcGVuZGluZyBsaW5lIGRhdGEKLSAgICAgICAgICBpZiAoc3Ry
ZWFtLnR0eS5vdXRwdXQubGVuZ3RoKSB7Ci0gICAgICAgICAgICBzdHJlYW0udHR5Lm9wcy5wdXRf
Y2hhcihzdHJlYW0udHR5LCAxMCk7Ci0gICAgICAgICAgfQotICAgICAgICB9LHJlYWQ6ZnVuY3Rp
b24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zIC8qIGlnbm9yZWQgKi8pIHsK
LSAgICAgICAgICBpZiAoIXN0cmVhbS50dHkgfHwgIXN0cmVhbS50dHkub3BzLmdldF9jaGFyKSB7
Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTlhJTyk7
Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBieXRlc1JlYWQgPSAwOwotICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHZhciByZXN1bHQ7
Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICByZXN1bHQgPSBzdHJlYW0udHR5Lm9w
cy5nZXRfY2hhcihzdHJlYW0udHR5KTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCAmJiBieXRlc1Jl
YWQgPT09IDApIHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUFHQUlOKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXN1bHQgPT09
IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQpIGJyZWFrOwotICAgICAgICAgICAgYnl0ZXNS
ZWFkKys7Ci0gICAgICAgICAgICBidWZmZXJbb2Zmc2V0K2ldID0gcmVzdWx0OwotICAgICAgICAg
IH0KLSAgICAgICAgICBpZiAoYnl0ZXNSZWFkKSB7Ci0gICAgICAgICAgICBzdHJlYW0ubm9kZS50
aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gYnl0
ZXNSZWFkOwotICAgICAgICB9LHdyaXRlOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0
LCBsZW5ndGgsIHBvcykgewotICAgICAgICAgIGlmICghc3RyZWFtLnR0eSB8fCAhc3RyZWFtLnR0
eS5vcHMucHV0X2NoYXIpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVOWElPKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgc3Ry
ZWFtLnR0eS5vcHMucHV0X2NoYXIoc3RyZWFtLnR0eSwgYnVmZmVyW29mZnNldCtpXSk7Ci0gICAg
ICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAg
ICAgIGlmIChsZW5ndGgpIHsKLSAgICAgICAgICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERh
dGUubm93KCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBpOwotICAgICAgICB9fSxk
ZWZhdWx0X3R0eV9vcHM6e2dldF9jaGFyOmZ1bmN0aW9uICh0dHkpIHsKLSAgICAgICAgICBpZiAo
IXR0eS5pbnB1dC5sZW5ndGgpIHsKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBudWxsOwotICAg
ICAgICAgICAgaWYgKEVOVklST05NRU5UX0lTX05PREUpIHsKLSAgICAgICAgICAgICAgaWYgKHBy
b2Nlc3Muc3RkaW4uZGVzdHJveWVkKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5l
ZDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICByZXN1bHQgPSBwcm9jZXNzLnN0ZGlu
LnJlYWQoKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHdpbmRvdyAhPSAndW5kZWZp
bmVkJyAmJgotICAgICAgICAgICAgICB0eXBlb2Ygd2luZG93LnByb21wdCA9PSAnZnVuY3Rpb24n
KSB7Ci0gICAgICAgICAgICAgIC8vIEJyb3dzZXIuCi0gICAgICAgICAgICAgIHJlc3VsdCA9IHdp
bmRvdy5wcm9tcHQoJ0lucHV0OiAnKTsgIC8vIHJldHVybnMgbnVsbCBvbiBjYW5jZWwKLSAgICAg
ICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJlc3VsdCAr
PSAnXG4nOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBy
ZWFkbGluZSA9PSAnZnVuY3Rpb24nKSB7Ci0gICAgICAgICAgICAgIC8vIENvbW1hbmQgbGluZS4K
LSAgICAgICAgICAgICAgcmVzdWx0ID0gcmVhZGxpbmUoKTsKLSAgICAgICAgICAgICAgaWYgKHJl
c3VsdCAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnXG4nOwotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdCkgewotICAg
ICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHR0eS5p
bnB1dCA9IGludEFycmF5RnJvbVN0cmluZyhyZXN1bHQsIHRydWUpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICByZXR1cm4gdHR5LmlucHV0LnNoaWZ0KCk7Ci0gICAgICAgIH0scHV0X2NoYXI6ZnVu
Y3Rpb24gKHR0eSwgdmFsKSB7Ci0gICAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09
IDEwKSB7Ci0gICAgICAgICAgICBNb2R1bGVbJ3ByaW50J10odHR5Lm91dHB1dC5qb2luKCcnKSk7
Ci0gICAgICAgICAgICB0dHkub3V0cHV0ID0gW107Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIHR0eS5vdXRwdXQucHVzaChUVFkudXRmOC5wcm9jZXNzQ0NoYXIodmFsKSk7Ci0gICAg
ICAgICAgfQotICAgICAgICB9fSxkZWZhdWx0X3R0eTFfb3BzOntwdXRfY2hhcjpmdW5jdGlvbiAo
dHR5LCB2YWwpIHsKLSAgICAgICAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gMTApIHsK
LSAgICAgICAgICAgIE1vZHVsZVsncHJpbnRFcnInXSh0dHkub3V0cHV0LmpvaW4oJycpKTsKLSAg
ICAgICAgICAgIHR0eS5vdXRwdXQgPSBbXTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgdHR5Lm91dHB1dC5wdXNoKFRUWS51dGY4LnByb2Nlc3NDQ2hhcih2YWwpKTsKLSAgICAgICAg
ICB9Ci0gICAgICAgIH19fTsKLSAgdmFyIE1FTUZTPXttb3VudDpmdW5jdGlvbiAobW91bnQpIHsK
LSAgICAgICAgcmV0dXJuIE1FTUZTLmNyZWF0ZV9ub2RlKG51bGwsICcvJywgMDA0MDAwMCB8IDA3
NzcsIDApOwotICAgICAgfSxjcmVhdGVfbm9kZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBtb2Rl
LCBkZXYpIHsKLSAgICAgICAgaWYgKEZTLmlzQmxrZGV2KG1vZGUpIHx8IEZTLmlzRklGTyhtb2Rl
KSkgewotICAgICAgICAgIC8vIG5vIHN1cHBvcnRlZAotICAgICAgICAgIHRocm93IG5ldyBGUy5F
cnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgbm9k
ZSA9IEZTLmNyZWF0ZU5vZGUocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpOwotICAgICAgICBpZiAo
RlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAg
ICAgICAgICBnZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0
YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0YXR0ciwKLSAgICAgICAgICAgIGxvb2t1cDogTUVNRlMu
bm9kZV9vcHMubG9va3VwLAotICAgICAgICAgICAgbWtub2Q6IE1FTUZTLm5vZGVfb3BzLm1rbm9k
LAotICAgICAgICAgICAgbWtub2Q6IE1FTUZTLm5vZGVfb3BzLm1rbm9kLAotICAgICAgICAgICAg
cmVuYW1lOiBNRU1GUy5ub2RlX29wcy5yZW5hbWUsCi0gICAgICAgICAgICB1bmxpbms6IE1FTUZT
Lm5vZGVfb3BzLnVubGluaywKLSAgICAgICAgICAgIHJtZGlyOiBNRU1GUy5ub2RlX29wcy5ybWRp
ciwKLSAgICAgICAgICAgIHJlYWRkaXI6IE1FTUZTLm5vZGVfb3BzLnJlYWRkaXIsCi0gICAgICAg
ICAgICBzeW1saW5rOiBNRU1GUy5ub2RlX29wcy5zeW1saW5rCi0gICAgICAgICAgfTsKLSAgICAg
ICAgICBub2RlLnN0cmVhbV9vcHMgPSB7Ci0gICAgICAgICAgICBsbHNlZWs6IE1FTUZTLnN0cmVh
bV9vcHMubGxzZWVrCi0gICAgICAgICAgfTsKLSAgICAgICAgICBub2RlLmNvbnRlbnRzID0ge307
Ci0gICAgICAgIH0gZWxzZSBpZiAoRlMuaXNGaWxlKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBu
b2RlLm5vZGVfb3BzID0gewotICAgICAgICAgICAgZ2V0YXR0cjogTUVNRlMubm9kZV9vcHMuZ2V0
YXR0ciwKLSAgICAgICAgICAgIHNldGF0dHI6IE1FTUZTLm5vZGVfb3BzLnNldGF0dHIKLSAgICAg
ICAgICB9OwotICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IHsKLSAgICAgICAgICAgIGxsc2Vl
azogTUVNRlMuc3RyZWFtX29wcy5sbHNlZWssCi0gICAgICAgICAgICByZWFkOiBNRU1GUy5zdHJl
YW1fb3BzLnJlYWQsCi0gICAgICAgICAgICB3cml0ZTogTUVNRlMuc3RyZWFtX29wcy53cml0ZSwK
LSAgICAgICAgICAgIGFsbG9jYXRlOiBNRU1GUy5zdHJlYW1fb3BzLmFsbG9jYXRlLAotICAgICAg
ICAgICAgbW1hcDogTUVNRlMuc3RyZWFtX29wcy5tbWFwCi0gICAgICAgICAgfTsKLSAgICAgICAg
ICBub2RlLmNvbnRlbnRzID0gW107Ci0gICAgICAgIH0gZWxzZSBpZiAoRlMuaXNMaW5rKG5vZGUu
bW9kZSkpIHsKLSAgICAgICAgICBub2RlLm5vZGVfb3BzID0gewotICAgICAgICAgICAgZ2V0YXR0
cjogTUVNRlMubm9kZV9vcHMuZ2V0YXR0ciwKLSAgICAgICAgICAgIHNldGF0dHI6IE1FTUZTLm5v
ZGVfb3BzLnNldGF0dHIsCi0gICAgICAgICAgICByZWFkbGluazogTUVNRlMubm9kZV9vcHMucmVh
ZGxpbmsKLSAgICAgICAgICB9OwotICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IHt9OwotICAg
ICAgICB9IGVsc2UgaWYgKEZTLmlzQ2hyZGV2KG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBub2Rl
Lm5vZGVfb3BzID0gewotICAgICAgICAgICAgZ2V0YXR0cjogTUVNRlMubm9kZV9vcHMuZ2V0YXR0
ciwKLSAgICAgICAgICAgIHNldGF0dHI6IE1FTUZTLm5vZGVfb3BzLnNldGF0dHIKLSAgICAgICAg
ICB9OwotICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IEZTLmNocmRldl9zdHJlYW1fb3BzOwot
ICAgICAgICB9Ci0gICAgICAgIG5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAg
Ly8gYWRkIHRoZSBuZXcgbm9kZSB0byB0aGUgcGFyZW50Ci0gICAgICAgIGlmIChwYXJlbnQpIHsK
LSAgICAgICAgICBwYXJlbnQuY29udGVudHNbbmFtZV0gPSBub2RlOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBub2RlOwotICAgICAgfSxub2RlX29wczp7Z2V0YXR0cjpmdW5jdGlvbiAobm9k
ZSkgewotICAgICAgICAgIHZhciBhdHRyID0ge307Ci0gICAgICAgICAgLy8gZGV2aWNlIG51bWJl
cnMgcmV1c2UgaW5vZGUgbnVtYmVycy4KLSAgICAgICAgICBhdHRyLmRldiA9IEZTLmlzQ2hyZGV2
KG5vZGUubW9kZSkgPyBub2RlLmlkIDogMTsKLSAgICAgICAgICBhdHRyLmlubyA9IG5vZGUuaWQ7
Ci0gICAgICAgICAgYXR0ci5tb2RlID0gbm9kZS5tb2RlOwotICAgICAgICAgIGF0dHIubmxpbmsg
PSAxOwotICAgICAgICAgIGF0dHIudWlkID0gMDsKLSAgICAgICAgICBhdHRyLmdpZCA9IDA7Ci0g
ICAgICAgICAgYXR0ci5yZGV2ID0gbm9kZS5yZGV2OwotICAgICAgICAgIGlmIChGUy5pc0Rpcihu
b2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICBhdHRyLnNpemUgPSA0MDk2OwotICAgICAgICAgIH0g
ZWxzZSBpZiAoRlMuaXNGaWxlKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIGF0dHIuc2l6ZSA9
IG5vZGUuY29udGVudHMubGVuZ3RoOwotICAgICAgICAgIH0gZWxzZSBpZiAoRlMuaXNMaW5rKG5v
ZGUubW9kZSkpIHsKLSAgICAgICAgICAgIGF0dHIuc2l6ZSA9IG5vZGUubGluay5sZW5ndGg7Ci0g
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF0dHIuc2l6ZSA9IDA7Ci0gICAgICAgICAg
fQotICAgICAgICAgIGF0dHIuYXRpbWUgPSBuZXcgRGF0ZShub2RlLnRpbWVzdGFtcCk7Ci0gICAg
ICAgICAgYXR0ci5tdGltZSA9IG5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTsKLSAgICAgICAgICBh
dHRyLmN0aW1lID0gbmV3IERhdGUobm9kZS50aW1lc3RhbXApOwotICAgICAgICAgIC8vIE5PVEU6
IEluIG91ciBpbXBsZW1lbnRhdGlvbiwgc3RfYmxvY2tzID0gTWF0aC5jZWlsKHN0X3NpemUvc3Rf
Ymxrc2l6ZSksCi0gICAgICAgICAgLy8gICAgICAgYnV0IHRoaXMgaXMgbm90IHJlcXVpcmVkIGJ5
IHRoZSBzdGFuZGFyZC4KLSAgICAgICAgICBhdHRyLmJsa3NpemUgPSA0MDk2OwotICAgICAgICAg
IGF0dHIuYmxvY2tzID0gTWF0aC5jZWlsKGF0dHIuc2l6ZSAvIGF0dHIuYmxrc2l6ZSk7Ci0gICAg
ICAgICAgcmV0dXJuIGF0dHI7Ci0gICAgICAgIH0sc2V0YXR0cjpmdW5jdGlvbiAobm9kZSwgYXR0
cikgewotICAgICAgICAgIGlmIChhdHRyLm1vZGUgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAg
ICAgbm9kZS5tb2RlID0gYXR0ci5tb2RlOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoYXR0
ci50aW1lc3RhbXAgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgbm9kZS50aW1lc3RhbXAg
PSBhdHRyLnRpbWVzdGFtcDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGF0dHIuc2l6ZSAh
PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICB2YXIgY29udGVudHMgPSBub2RlLmNvbnRlbnRz
OwotICAgICAgICAgICAgaWYgKGF0dHIuc2l6ZSA8IGNvbnRlbnRzLmxlbmd0aCkgY29udGVudHMu
bGVuZ3RoID0gYXR0ci5zaXplOwotICAgICAgICAgICAgZWxzZSB3aGlsZSAoYXR0ci5zaXplID4g
Y29udGVudHMubGVuZ3RoKSBjb250ZW50cy5wdXNoKDApOwotICAgICAgICAgIH0KLSAgICAgICAg
fSxsb29rdXA6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSkgewotICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VOVCk7Ci0gICAgICAgIH0sbWtub2Q6ZnVuY3Rp
b24gKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KSB7Ci0gICAgICAgICAgcmV0dXJuIE1FTUZTLmNy
ZWF0ZV9ub2RlKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KTsKLSAgICAgICAgfSxyZW5hbWU6ZnVu
Y3Rpb24gKG9sZF9ub2RlLCBuZXdfZGlyLCBuZXdfbmFtZSkgewotICAgICAgICAgIC8vIGlmIHdl
J3JlIG92ZXJ3cml0aW5nIGEgZGlyZWN0b3J5IGF0IG5ld19uYW1lLCBtYWtlIHN1cmUgaXQncyBl
bXB0eS4KLSAgICAgICAgICBpZiAoRlMuaXNEaXIob2xkX25vZGUubW9kZSkpIHsKLSAgICAgICAg
ICAgIHZhciBuZXdfbm9kZTsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIG5ld19u
b2RlID0gRlMubG9va3VwTm9kZShuZXdfZGlyLCBuZXdfbmFtZSk7Ci0gICAgICAgICAgICB9IGNh
dGNoIChlKSB7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobmV3X25vZGUpIHsKLSAg
ICAgICAgICAgICAgZm9yICh2YXIgaSBpbiBuZXdfbm9kZS5jb250ZW50cykgewotICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RFTVBUWSk7Ci0g
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8g
ZG8gdGhlIGludGVybmFsIHJld2lyaW5nCi0gICAgICAgICAgZGVsZXRlIG9sZF9ub2RlLnBhcmVu
dC5jb250ZW50c1tvbGRfbm9kZS5uYW1lXTsKLSAgICAgICAgICBvbGRfbm9kZS5uYW1lID0gbmV3
X25hbWU7Ci0gICAgICAgICAgbmV3X2Rpci5jb250ZW50c1tuZXdfbmFtZV0gPSBvbGRfbm9kZTsK
LSAgICAgICAgfSx1bmxpbms6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSkgewotICAgICAgICAgIGRl
bGV0ZSBwYXJlbnQuY29udGVudHNbbmFtZV07Ci0gICAgICAgIH0scm1kaXI6ZnVuY3Rpb24gKHBh
cmVudCwgbmFtZSkgewotICAgICAgICAgIHZhciBub2RlID0gRlMubG9va3VwTm9kZShwYXJlbnQs
IG5hbWUpOwotICAgICAgICAgIGZvciAodmFyIGkgaW4gbm9kZS5jb250ZW50cykgewotICAgICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PVEVNUFRZKTsKLSAg
ICAgICAgICB9Ci0gICAgICAgICAgZGVsZXRlIHBhcmVudC5jb250ZW50c1tuYW1lXTsKLSAgICAg
ICAgfSxyZWFkZGlyOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgICAgdmFyIGVudHJpZXMgPSBb
Jy4nLCAnLi4nXQotICAgICAgICAgIGZvciAodmFyIGtleSBpbiBub2RlLmNvbnRlbnRzKSB7Ci0g
ICAgICAgICAgICBpZiAoIW5vZGUuY29udGVudHMuaGFzT3duUHJvcGVydHkoa2V5KSkgewotICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVudHJpZXMu
cHVzaChrZXkpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gZW50cmllczsKLSAgICAg
ICAgfSxzeW1saW5rOmZ1bmN0aW9uIChwYXJlbnQsIG5ld25hbWUsIG9sZHBhdGgpIHsKLSAgICAg
ICAgICB2YXIgbm9kZSA9IE1FTUZTLmNyZWF0ZV9ub2RlKHBhcmVudCwgbmV3bmFtZSwgMDc3NyB8
IDAxMjAwMDAsIDApOwotICAgICAgICAgIG5vZGUubGluayA9IG9sZHBhdGg7Ci0gICAgICAgICAg
cmV0dXJuIG5vZGU7Ci0gICAgICAgIH0scmVhZGxpbms6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAg
ICAgICBpZiAoIUZTLmlzTGluayhub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICAgIH0KLSAgICAgICAg
ICByZXR1cm4gbm9kZS5saW5rOwotICAgICAgICB9fSxzdHJlYW1fb3BzOntyZWFkOmZ1bmN0aW9u
IChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgICAg
dmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7Ci0gICAgICAgICAgdmFyIHNpemUg
PSBNYXRoLm1pbihjb250ZW50cy5sZW5ndGggLSBwb3NpdGlvbiwgbGVuZ3RoKTsKLSAgICAgICAg
ICBpZiAoY29udGVudHMuc3ViYXJyYXkpIHsgLy8gdHlwZWQgYXJyYXkKLSAgICAgICAgICAgIGJ1
ZmZlci5zZXQoY29udGVudHMuc3ViYXJyYXkocG9zaXRpb24sIHBvc2l0aW9uICsgc2l6ZSksIG9m
ZnNldCk7Ci0gICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgewotICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCAr
IGldID0gY29udGVudHNbcG9zaXRpb24gKyBpXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9
Ci0gICAgICAgICAgcmV0dXJuIHNpemU7Ci0gICAgICAgIH0sd3JpdGU6ZnVuY3Rpb24gKHN0cmVh
bSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKLSAgICAgICAgICB2YXIgY29u
dGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAgICAgICB3aGlsZSAoY29udGVudHMu
bGVuZ3RoIDwgcG9zaXRpb24pIGNvbnRlbnRzLnB1c2goMCk7Ci0gICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICAgICAgY29udGVudHNbcG9zaXRpb24g
KyBpXSA9IGJ1ZmZlcltvZmZzZXQgKyBpXTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgc3RyZWFt
Lm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAgICByZXR1cm4gbGVuZ3RoOwot
ICAgICAgICB9LGxsc2VlazpmdW5jdGlvbiAoc3RyZWFtLCBvZmZzZXQsIHdoZW5jZSkgewotICAg
ICAgICAgIHZhciBwb3NpdGlvbiA9IG9mZnNldDsKLSAgICAgICAgICBpZiAod2hlbmNlID09PSAx
KSB7ICAvLyBTRUVLX0NVUi4KLSAgICAgICAgICAgIHBvc2l0aW9uICs9IHN0cmVhbS5wb3NpdGlv
bjsKLSAgICAgICAgICB9IGVsc2UgaWYgKHdoZW5jZSA9PT0gMikgeyAgLy8gU0VFS19FTkQuCi0g
ICAgICAgICAgICBpZiAoRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpKSB7Ci0gICAgICAgICAg
ICAgIHBvc2l0aW9uICs9IHN0cmVhbS5ub2RlLmNvbnRlbnRzLmxlbmd0aDsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHBvc2l0aW9uIDwgMCkgewotICAgICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgc3RyZWFtLnVuZ290dGVuID0gW107Ci0gICAgICAgICAgc3RyZWFtLnBv
c2l0aW9uID0gcG9zaXRpb247Ci0gICAgICAgICAgcmV0dXJuIHBvc2l0aW9uOwotICAgICAgICB9
LGFsbG9jYXRlOmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNldCwgbGVuZ3RoKSB7Ci0gICAgICAgICAg
dmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7Ci0gICAgICAgICAgdmFyIGxpbWl0
ID0gb2Zmc2V0ICsgbGVuZ3RoOwotICAgICAgICAgIHdoaWxlIChsaW1pdCA+IGNvbnRlbnRzLmxl
bmd0aCkgY29udGVudHMucHVzaCgwKTsKLSAgICAgICAgfSxtbWFwOmZ1bmN0aW9uIChzdHJlYW0s
IGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uLCBwcm90LCBmbGFncykgewotICAgICAg
ICAgIGlmICghRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9ERVYpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICB2YXIgcHRyOwotICAgICAgICAgIHZhciBhbGxvY2F0ZWQ7Ci0gICAgICAgICAgdmFy
IGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7Ci0gICAgICAgICAgLy8gT25seSBtYWtl
IGEgbmV3IGNvcHkgd2hlbiBNQVBfUFJJVkFURSBpcyBzcGVjaWZpZWQuCi0gICAgICAgICAgaWYg
KCEoZmxhZ3MgJiAweDAyKSkgewotICAgICAgICAgICAgLy8gV2UgY2FuJ3QgZW11bGF0ZSBNQVBf
U0hBUkVEIHdoZW4gdGhlIGZpbGUgaXMgbm90IGJhY2tlZCBieSB0aGUgYnVmZmVyCi0gICAgICAg
ICAgICAvLyB3ZSdyZSBtYXBwaW5nIHRvIChlLmcuIHRoZSBIRUFQIGJ1ZmZlcikuCi0gICAgICAg
ICAgICBhc3NlcnQoY29udGVudHMuYnVmZmVyID09PSBidWZmZXIgfHwgY29udGVudHMuYnVmZmVy
ID09PSBidWZmZXIuYnVmZmVyKTsKLSAgICAgICAgICAgIGFsbG9jYXRlZCA9IGZhbHNlOwotICAg
ICAgICAgICAgcHRyID0gY29udGVudHMuYnl0ZU9mZnNldDsKLSAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgLy8gVHJ5IHRvIGF2b2lkIHVubmVjZXNzYXJ5IHNsaWNlcy4KLSAgICAgICAg
ICAgIGlmIChwb3NpdGlvbiA+IDAgfHwgcG9zaXRpb24gKyBsZW5ndGggPCBjb250ZW50cy5sZW5n
dGgpIHsKLSAgICAgICAgICAgICAgaWYgKGNvbnRlbnRzLnN1YmFycmF5KSB7Ci0gICAgICAgICAg
ICAgICAgY29udGVudHMgPSBjb250ZW50cy5zdWJhcnJheShwb3NpdGlvbiwgcG9zaXRpb24gKyBs
ZW5ndGgpOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGNvbnRlbnRz
ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoY29udGVudHMsIHBvc2l0aW9uLCBwb3NpdGlv
biArIGxlbmd0aCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGFsbG9jYXRlZCA9IHRydWU7Ci0gICAgICAgICAgICBwdHIgPSBfbWFsbG9jKGxlbmd0aCk7Ci0g
ICAgICAgICAgICBpZiAoIXB0cikgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FTk9NRU0pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnVm
ZmVyLnNldChjb250ZW50cywgcHRyKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIHsg
cHRyOiBwdHIsIGFsbG9jYXRlZDogYWxsb2NhdGVkIH07Ci0gICAgICAgIH19fTsKLSAgdmFyIF9z
dGRpbj1hbGxvY2F0ZSgxLCAiaTMyKiIsIEFMTE9DX1NUQVRJQyk7Ci0gIHZhciBfc3Rkb3V0PWFs
bG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElDKTsKLSAgdmFyIF9zdGRlcnI9YWxsb2NhdGUo
MSwgImkzMioiLCBBTExPQ19TVEFUSUMpOwotICBmdW5jdGlvbiBfZmZsdXNoKHN0cmVhbSkgewot
ICAgICAgLy8gaW50IGZmbHVzaChGSUxFICpzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMu
b3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZmZsdXNoLmh0bWwK
LSAgICAgIC8vIHdlIGRvbid0IGN1cnJlbnRseSBwZXJmb3JtIGFueSB1c2VyLXNwYWNlIGJ1ZmZl
cmluZyBvZiBkYXRhCi0gICAgfXZhciBGUz17cm9vdDpudWxsLG5vZGVzOltudWxsXSxkZXZpY2Vz
OltudWxsXSxzdHJlYW1zOltudWxsXSxuZXh0SW5vZGU6MSxuYW1lX3RhYmxlOm51bGwsY3VycmVu
dFBhdGg6Ii8iLGluaXRpYWxpemVkOmZhbHNlLGlnbm9yZVBlcm1pc3Npb25zOnRydWUsRXJybm9F
cnJvcjpmdW5jdGlvbiBFcnJub0Vycm9yKGVycm5vKSB7Ci0gICAgICAgICAgdGhpcy5lcnJubyA9
IGVycm5vOwotICAgICAgICAgIGZvciAodmFyIGtleSBpbiBFUlJOT19DT0RFUykgewotICAgICAg
ICAgICAgaWYgKEVSUk5PX0NPREVTW2tleV0gPT09IGVycm5vKSB7Ci0gICAgICAgICAgICAgIHRo
aXMuY29kZSA9IGtleTsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgfQotICAgICAgICAgIHRoaXMubWVzc2FnZSA9IEVSUk5PX01FU1NBR0VTW2Vycm5vXTsK
LSAgICAgICAgfSxoYW5kbGVGU0Vycm9yOmZ1bmN0aW9uIChlKSB7Ci0gICAgICAgIGlmICghKGUg
aW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgdGhyb3cgZSArICcgOiAnICsgbmV3IEVycm9yKCku
c3RhY2s7Ci0gICAgICAgIHJldHVybiBfX19zZXRFcnJObyhlLmVycm5vKTsKLSAgICAgIH0saGFz
aE5hbWU6ZnVuY3Rpb24gKHBhcmVudGlkLCBuYW1lKSB7Ci0gICAgICAgIHZhciBoYXNoID0gMDsK
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAg
ICAgaGFzaCA9ICgoaGFzaCA8PCA1KSAtIGhhc2ggKyBuYW1lLmNoYXJDb2RlQXQoaSkpIHwgMDsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gKChwYXJlbnRpZCArIGhhc2gpID4+PiAwKSAlIEZT
Lm5hbWVfdGFibGUubGVuZ3RoOwotICAgICAgfSxoYXNoQWRkTm9kZTpmdW5jdGlvbiAobm9kZSkg
ewotICAgICAgICB2YXIgaGFzaCA9IEZTLmhhc2hOYW1lKG5vZGUucGFyZW50LmlkLCBub2RlLm5h
bWUpOwotICAgICAgICBub2RlLm5hbWVfbmV4dCA9IEZTLm5hbWVfdGFibGVbaGFzaF07Ci0gICAg
ICAgIEZTLm5hbWVfdGFibGVbaGFzaF0gPSBub2RlOwotICAgICAgfSxoYXNoUmVtb3ZlTm9kZTpm
dW5jdGlvbiAobm9kZSkgewotICAgICAgICB2YXIgaGFzaCA9IEZTLmhhc2hOYW1lKG5vZGUucGFy
ZW50LmlkLCBub2RlLm5hbWUpOwotICAgICAgICBpZiAoRlMubmFtZV90YWJsZVtoYXNoXSA9PT0g
bm9kZSkgewotICAgICAgICAgIEZTLm5hbWVfdGFibGVbaGFzaF0gPSBub2RlLm5hbWVfbmV4dDsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgY3VycmVudCA9IEZTLm5hbWVfdGFibGVb
aGFzaF07Ci0gICAgICAgICAgd2hpbGUgKGN1cnJlbnQpIHsKLSAgICAgICAgICAgIGlmIChjdXJy
ZW50Lm5hbWVfbmV4dCA9PT0gbm9kZSkgewotICAgICAgICAgICAgICBjdXJyZW50Lm5hbWVfbmV4
dCA9IG5vZGUubmFtZV9uZXh0OwotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5hbWVfbmV4dDsKLSAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgIH0sbG9va3VwTm9kZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0g
ICAgICAgIHZhciBlcnIgPSBGUy5tYXlMb29rdXAocGFyZW50KTsKLSAgICAgICAgaWYgKGVycikg
ewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAg
ICAgICAgdmFyIGhhc2ggPSBGUy5oYXNoTmFtZShwYXJlbnQuaWQsIG5hbWUpOwotICAgICAgICBm
b3IgKHZhciBub2RlID0gRlMubmFtZV90YWJsZVtoYXNoXTsgbm9kZTsgbm9kZSA9IG5vZGUubmFt
ZV9uZXh0KSB7Ci0gICAgICAgICAgaWYgKG5vZGUucGFyZW50LmlkID09PSBwYXJlbnQuaWQgJiYg
bm9kZS5uYW1lID09PSBuYW1lKSB7Ci0gICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gaWYgd2UgZmFpbGVkIHRvIGZpbmQgaXQgaW4gdGhl
IGNhY2hlLCBjYWxsIGludG8gdGhlIFZGUwotICAgICAgICByZXR1cm4gRlMubG9va3VwKHBhcmVu
dCwgbmFtZSk7Ci0gICAgICB9LGNyZWF0ZU5vZGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgbW9k
ZSwgcmRldikgewotICAgICAgICB2YXIgbm9kZSA9IHsKLSAgICAgICAgICBpZDogRlMubmV4dElu
b2RlKyssCi0gICAgICAgICAgbmFtZTogbmFtZSwKLSAgICAgICAgICBtb2RlOiBtb2RlLAotICAg
ICAgICAgIG5vZGVfb3BzOiB7fSwKLSAgICAgICAgICBzdHJlYW1fb3BzOiB7fSwKLSAgICAgICAg
ICByZGV2OiByZGV2LAotICAgICAgICAgIHBhcmVudDogbnVsbCwKLSAgICAgICAgICBtb3VudDog
bnVsbAotICAgICAgICB9OwotICAgICAgICBpZiAoIXBhcmVudCkgewotICAgICAgICAgIHBhcmVu
dCA9IG5vZGU7ICAvLyByb290IG5vZGUgc2V0cyBwYXJlbnQgdG8gaXRzZWxmCi0gICAgICAgIH0K
LSAgICAgICAgbm9kZS5wYXJlbnQgPSBwYXJlbnQ7Ci0gICAgICAgIG5vZGUubW91bnQgPSBwYXJl
bnQubW91bnQ7Ci0gICAgICAgIC8vIGNvbXBhdGliaWxpdHkKLSAgICAgICAgdmFyIHJlYWRNb2Rl
ID0gMjkyIHwgNzM7Ci0gICAgICAgIHZhciB3cml0ZU1vZGUgPSAxNDY7Ci0gICAgICAgIC8vIE5P
VEUgd2UgbXVzdCB1c2UgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgaW5zdGVhZCBvZiBpbmRpdmlk
dWFsIGNhbGxzIHRvCi0gICAgICAgIC8vIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBpbiBvcmRlciB0
byBtYWtlIGNsb3N1cmUgY29tcGlsZXIgaGFwcHkKLSAgICAgICAgT2JqZWN0LmRlZmluZVByb3Bl
cnRpZXMobm9kZSwgewotICAgICAgICAgIHJlYWQ6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rp
b24oKSB7IHJldHVybiAobm9kZS5tb2RlICYgcmVhZE1vZGUpID09PSByZWFkTW9kZTsgfSwKLSAg
ICAgICAgICAgIHNldDogZnVuY3Rpb24odmFsKSB7IHZhbCA/IG5vZGUubW9kZSB8PSByZWFkTW9k
ZSA6IG5vZGUubW9kZSAmPSB+cmVhZE1vZGU7IH0KLSAgICAgICAgICB9LAotICAgICAgICAgIHdy
aXRlOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gKG5vZGUubW9kZSAm
IHdyaXRlTW9kZSkgPT09IHdyaXRlTW9kZTsgfSwKLSAgICAgICAgICAgIHNldDogZnVuY3Rpb24o
dmFsKSB7IHZhbCA/IG5vZGUubW9kZSB8PSB3cml0ZU1vZGUgOiBub2RlLm1vZGUgJj0gfndyaXRl
TW9kZTsgfQotICAgICAgICAgIH0sCi0gICAgICAgICAgaXNGb2xkZXI6IHsKLSAgICAgICAgICAg
IGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBGUy5pc0Rpcihub2RlLm1vZGUpOyB9LAotICAgICAg
ICAgIH0sCi0gICAgICAgICAgaXNEZXZpY2U6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24o
KSB7IHJldHVybiBGUy5pc0NocmRldihub2RlLm1vZGUpOyB9LAotICAgICAgICAgIH0sCi0gICAg
ICAgIH0pOwotICAgICAgICBGUy5oYXNoQWRkTm9kZShub2RlKTsKLSAgICAgICAgcmV0dXJuIG5v
ZGU7Ci0gICAgICB9LGRlc3Ryb3lOb2RlOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIEZTLmhh
c2hSZW1vdmVOb2RlKG5vZGUpOwotICAgICAgfSxpc1Jvb3Q6ZnVuY3Rpb24gKG5vZGUpIHsKLSAg
ICAgICAgcmV0dXJuIG5vZGUgPT09IG5vZGUucGFyZW50OwotICAgICAgfSxpc01vdW50cG9pbnQ6
ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgcmV0dXJuIG5vZGUubW91bnRlZDsKLSAgICAgIH0s
aXNGaWxlOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDAp
ID09PSAwMTAwMDAwOwotICAgICAgfSxpc0RpcjpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICBy
ZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDA0MDAwMDsKLSAgICAgIH0saXNMaW5rOmZ1bmN0
aW9uIChtb2RlKSB7Ci0gICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMTIwMDAw
OwotICAgICAgfSxpc0NocmRldjpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICByZXR1cm4gKG1v
ZGUgJiAwMTcwMDAwKSA9PT0gMDAyMDAwMDsKLSAgICAgIH0saXNCbGtkZXY6ZnVuY3Rpb24gKG1v
ZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAwNjAwMDA7Ci0gICAg
ICB9LGlzRklGTzpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcw
MDAwKSA9PT0gMDAxMDAwMDsKLSAgICAgIH0sY3dkOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0
dXJuIEZTLmN1cnJlbnRQYXRoOwotICAgICAgfSxsb29rdXBQYXRoOmZ1bmN0aW9uIChwYXRoLCBv
cHRzKSB7Ci0gICAgICAgIHBhdGggPSBQQVRILnJlc29sdmUoRlMuY3VycmVudFBhdGgsIHBhdGgp
OwotICAgICAgICBvcHRzID0gb3B0cyB8fCB7IHJlY3Vyc2VfY291bnQ6IDAgfTsKLSAgICAgICAg
aWYgKG9wdHMucmVjdXJzZV9jb3VudCA+IDgpIHsgIC8vIG1heCByZWN1cnNpdmUgbG9va3VwIG9m
IDgKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTE9PUCk7
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gc3BsaXQgdGhlIHBhdGgKLSAgICAgICAgdmFyIHBhcnRz
ID0gUEFUSC5ub3JtYWxpemVBcnJheShwYXRoLnNwbGl0KCcvJykuZmlsdGVyKGZ1bmN0aW9uKHAp
IHsKLSAgICAgICAgICByZXR1cm4gISFwOwotICAgICAgICB9KSwgZmFsc2UpOwotICAgICAgICAv
LyBzdGFydCBhdCB0aGUgcm9vdAotICAgICAgICB2YXIgY3VycmVudCA9IEZTLnJvb3Q7Ci0gICAg
ICAgIHZhciBjdXJyZW50X3BhdGggPSAnLyc7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cGFydHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgaXNsYXN0ID0gKGkgPT09IHBhcnRz
Lmxlbmd0aC0xKTsKLSAgICAgICAgICBpZiAoaXNsYXN0ICYmIG9wdHMucGFyZW50KSB7Ci0gICAg
ICAgICAgICAvLyBzdG9wIHJlc29sdmluZwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
fQotICAgICAgICAgIGN1cnJlbnQgPSBGUy5sb29rdXBOb2RlKGN1cnJlbnQsIHBhcnRzW2ldKTsK
LSAgICAgICAgICBjdXJyZW50X3BhdGggPSBQQVRILmpvaW4oY3VycmVudF9wYXRoLCBwYXJ0c1tp
XSk7Ci0gICAgICAgICAgLy8ganVtcCB0byB0aGUgbW91bnQncyByb290IG5vZGUgaWYgdGhpcyBp
cyBhIG1vdW50cG9pbnQKLSAgICAgICAgICBpZiAoRlMuaXNNb3VudHBvaW50KGN1cnJlbnQpKSB7
Ci0gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5tb3VudC5yb290OwotICAgICAgICAgIH0K
LSAgICAgICAgICAvLyBmb2xsb3cgc3ltbGlua3MKLSAgICAgICAgICAvLyBieSBkZWZhdWx0LCBs
b29rdXBQYXRoIHdpbGwgbm90IGZvbGxvdyBhIHN5bWxpbmsgaWYgaXQgaXMgdGhlIGZpbmFsIHBh
dGggY29tcG9uZW50LgotICAgICAgICAgIC8vIHNldHRpbmcgb3B0cy5mb2xsb3cgPSB0cnVlIHdp
bGwgb3ZlcnJpZGUgdGhpcyBiZWhhdmlvci4KLSAgICAgICAgICBpZiAoIWlzbGFzdCB8fCBvcHRz
LmZvbGxvdykgewotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgICAgIHdoaWxl
IChGUy5pc0xpbmsoY3VycmVudC5tb2RlKSkgewotICAgICAgICAgICAgICB2YXIgbGluayA9IEZT
LnJlYWRsaW5rKGN1cnJlbnRfcGF0aCk7Ci0gICAgICAgICAgICAgIGN1cnJlbnRfcGF0aCA9IFBB
VEgucmVzb2x2ZShQQVRILmRpcm5hbWUoY3VycmVudF9wYXRoKSwgbGluayk7Ci0gICAgICAgICAg
ICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKGN1cnJlbnRfcGF0aCwgeyByZWN1cnNlX2Nv
dW50OiBvcHRzLnJlY3Vyc2VfY291bnQgfSk7Ci0gICAgICAgICAgICAgIGN1cnJlbnQgPSBsb29r
dXAubm9kZTsKLSAgICAgICAgICAgICAgaWYgKGNvdW50KysgPiA0MCkgeyAgLy8gbGltaXQgbWF4
IGNvbnNlY3V0aXZlIHN5bWxpbmtzIHRvIDQwIChTWU1MT09QX01BWCkuCi0gICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUxPT1ApOwotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiB7IHBhdGg6IGN1cnJlbnRfcGF0aCwgbm9kZTogY3VycmVudCB9OwotICAgICAgfSxnZXRQ
YXRoOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHZhciBwYXRoOwotICAgICAgICB3aGlsZSAo
dHJ1ZSkgewotICAgICAgICAgIGlmIChGUy5pc1Jvb3Qobm9kZSkpIHsKLSAgICAgICAgICAgIHJl
dHVybiBwYXRoID8gUEFUSC5qb2luKG5vZGUubW91bnQubW91bnRwb2ludCwgcGF0aCkgOiBub2Rl
Lm1vdW50Lm1vdW50cG9pbnQ7Ci0gICAgICAgICAgfQotICAgICAgICAgIHBhdGggPSBwYXRoID8g
UEFUSC5qb2luKG5vZGUubmFtZSwgcGF0aCkgOiBub2RlLm5hbWU7Ci0gICAgICAgICAgbm9kZSA9
IG5vZGUucGFyZW50OwotICAgICAgICB9Ci0gICAgICB9LGZsYWdNb2Rlczp7InIiOjAsInJzIjo4
MTkyLCJyKyI6MiwidyI6MTUzNywid3giOjM1ODUsInh3IjozNTg1LCJ3KyI6MTUzOCwid3grIjoz
NTg2LCJ4dysiOjM1ODYsImEiOjUyMSwiYXgiOjI1NjksInhhIjoyNTY5LCJhKyI6NTIyLCJheCsi
OjI1NzAsInhhKyI6MjU3MH0sbW9kZVN0cmluZ1RvRmxhZ3M6ZnVuY3Rpb24gKHN0cikgewotICAg
ICAgICB2YXIgZmxhZ3MgPSBGUy5mbGFnTW9kZXNbc3RyXTsKLSAgICAgICAgaWYgKHR5cGVvZiBm
bGFncyA9PT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25v
d24gZmlsZSBvcGVuIG1vZGU6ICcgKyBzdHIpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBm
bGFnczsKLSAgICAgIH0sZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmc6ZnVuY3Rpb24gKGZsYWcpIHsK
LSAgICAgICAgdmFyIGFjY21vZGUgPSBmbGFnICYgMzsKLSAgICAgICAgdmFyIHBlcm1zID0gWydy
JywgJ3cnLCAncncnXVthY2Ntb2RlXTsKLSAgICAgICAgaWYgKChmbGFnICYgMTAyNCkpIHsKLSAg
ICAgICAgICBwZXJtcyArPSAndyc7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBlcm1zOwot
ICAgICAgfSxub2RlUGVybWlzc2lvbnM6ZnVuY3Rpb24gKG5vZGUsIHBlcm1zKSB7Ci0gICAgICAg
IGlmIChGUy5pZ25vcmVQZXJtaXNzaW9ucykgewotICAgICAgICAgIHJldHVybiAwOwotICAgICAg
ICB9Ci0gICAgICAgIC8vIHJldHVybiAwIGlmIGFueSB1c2VyLCBncm91cCBvciBvd25lciBiaXRz
IGFyZSBzZXQuCi0gICAgICAgIGlmIChwZXJtcy5pbmRleE9mKCdyJykgIT09IC0xICYmICEobm9k
ZS5tb2RlICYgMjkyKSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FQUNDRVM7Ci0g
ICAgICAgIH0gZWxzZSBpZiAocGVybXMuaW5kZXhPZigndycpICE9PSAtMSAmJiAhKG5vZGUubW9k
ZSAmIDE0NikpIHsKLSAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUFDQ0VTOwotICAgICAg
ICB9IGVsc2UgaWYgKHBlcm1zLmluZGV4T2YoJ3gnKSAhPT0gLTEgJiYgIShub2RlLm1vZGUgJiA3
MykpIHsKLSAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUFDQ0VTOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiAwOwotICAgICAgfSxtYXlMb29rdXA6ZnVuY3Rpb24gKGRpcikgewotICAg
ICAgICByZXR1cm4gRlMubm9kZVBlcm1pc3Npb25zKGRpciwgJ3gnKTsKLSAgICAgIH0sbWF5TWtu
b2Q6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgc3dpdGNoIChtb2RlICYgMDE3MDAwMCkgewot
ICAgICAgICAgIGNhc2UgMDEwMDAwMDoKLSAgICAgICAgICBjYXNlIDAwMjAwMDA6Ci0gICAgICAg
ICAgY2FzZSAwMDYwMDAwOgotICAgICAgICAgIGNhc2UgMDAxMDAwMDoKLSAgICAgICAgICBjYXNl
IDAxNDAwMDA6Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVJTlZBTDsKLSAgICAgICAgfQotICAgICAgfSxt
YXlDcmVhdGU6ZnVuY3Rpb24gKGRpciwgbmFtZSkgewotICAgICAgICB0cnkgewotICAgICAgICAg
IHZhciBub2RlID0gRlMubG9va3VwTm9kZShkaXIsIG5hbWUpOwotICAgICAgICAgIHJldHVybiBF
UlJOT19DT0RFUy5FRVhJU1Q7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gRlMubm9kZVBlcm1pc3Npb25zKGRpciwgJ3d4Jyk7Ci0gICAgICB9LG1heURl
bGV0ZTpmdW5jdGlvbiAoZGlyLCBuYW1lLCBpc2RpcikgewotICAgICAgICB2YXIgbm9kZTsKLSAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICBub2RlID0gRlMubG9va3VwTm9kZShkaXIsIG5hbWUpOwot
ICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgcmV0dXJuIGUuZXJybm87Ci0gICAgICAg
IH0KLSAgICAgICAgdmFyIGVyciA9IEZTLm5vZGVQZXJtaXNzaW9ucyhkaXIsICd3eCcpOwotICAg
ICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotICAgICAg
ICBpZiAoaXNkaXIpIHsKLSAgICAgICAgICBpZiAoIUZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAg
ICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FTk9URElSOwotICAgICAgICAgIH0KLSAgICAg
ICAgICBpZiAoRlMuaXNSb290KG5vZGUpIHx8IEZTLmdldFBhdGgobm9kZSkgPT09IEZTLmN1cnJl
bnRQYXRoKSB7Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUJVU1k7Ci0gICAgICAg
ICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUp
KSB7Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUlTRElSOwotICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICAgIH0sbWF5T3BlbjpmdW5jdGlvbiAo
bm9kZSwgZmxhZ3MpIHsKLSAgICAgICAgaWYgKCFub2RlKSB7Ci0gICAgICAgICAgcmV0dXJuIEVS
Uk5PX0NPREVTLkVOT0VOVDsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNMaW5rKG5vZGUu
bW9kZSkpIHsKLSAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUxPT1A7Ci0gICAgICAgIH0g
ZWxzZSBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAgICAgIGlmICgoZmxhZ3MgJiAz
KSAhPT0gMCB8fCAgLy8gb3BlbmluZyBmb3Igd3JpdGUKLSAgICAgICAgICAgICAgKGZsYWdzICYg
MTAyNCkpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FSVNESVI7Ci0gICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMobm9kZSwg
RlMuZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoZmxhZ3MpKTsKLSAgICAgIH0sY2hyZGV2X3N0cmVh
bV9vcHM6e29wZW46ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAgICAgIHZhciBkZXZpY2UgPSBG
Uy5nZXREZXZpY2Uoc3RyZWFtLm5vZGUucmRldik7Ci0gICAgICAgICAgLy8gb3ZlcnJpZGUgbm9k
ZSdzIHN0cmVhbSBvcHMgd2l0aCB0aGUgZGV2aWNlJ3MKLSAgICAgICAgICBzdHJlYW0uc3RyZWFt
X29wcyA9IGRldmljZS5zdHJlYW1fb3BzOwotICAgICAgICAgIC8vIGZvcndhcmQgdGhlIG9wZW4g
Y2FsbAotICAgICAgICAgIGlmIChzdHJlYW0uc3RyZWFtX29wcy5vcGVuKSB7Ci0gICAgICAgICAg
ICBzdHJlYW0uc3RyZWFtX29wcy5vcGVuKHN0cmVhbSk7Ci0gICAgICAgICAgfQotICAgICAgICB9
LGxsc2VlazpmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
RVJSTk9fQ09ERVMuRVNQSVBFKTsKLSAgICAgICAgfX0sbWFqb3I6ZnVuY3Rpb24gKGRldikgewot
ICAgICAgICByZXR1cm4gKChkZXYpID4+IDgpOwotICAgICAgfSxtaW5vcjpmdW5jdGlvbiAoZGV2
KSB7Ci0gICAgICAgIHJldHVybiAoKGRldikgJiAweGZmKTsKLSAgICAgIH0sbWFrZWRldjpmdW5j
dGlvbiAobWEsIG1pKSB7Ci0gICAgICAgIHJldHVybiAoKG1hKSA8PCA4IHwgKG1pKSk7Ci0gICAg
ICB9LHJlZ2lzdGVyRGV2aWNlOmZ1bmN0aW9uIChkZXYsIG9wcykgewotICAgICAgICBGUy5kZXZp
Y2VzW2Rldl0gPSB7IHN0cmVhbV9vcHM6IG9wcyB9OwotICAgICAgfSxnZXREZXZpY2U6ZnVuY3Rp
b24gKGRldikgewotICAgICAgICByZXR1cm4gRlMuZGV2aWNlc1tkZXZdOwotICAgICAgfSxNQVhf
T1BFTl9GRFM6NDA5NixuZXh0ZmQ6ZnVuY3Rpb24gKGZkX3N0YXJ0LCBmZF9lbmQpIHsKLSAgICAg
ICAgZmRfc3RhcnQgPSBmZF9zdGFydCB8fCAxOwotICAgICAgICBmZF9lbmQgPSBmZF9lbmQgfHwg
RlMuTUFYX09QRU5fRkRTOwotICAgICAgICBmb3IgKHZhciBmZCA9IGZkX3N0YXJ0OyBmZCA8PSBm
ZF9lbmQ7IGZkKyspIHsKLSAgICAgICAgICBpZiAoIUZTLnN0cmVhbXNbZmRdKSB7Ci0gICAgICAg
ICAgICByZXR1cm4gZmQ7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHRocm93IG5l
dyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVNRklMRSk7Ci0gICAgICB9LGdldFN0cmVhbTpm
dW5jdGlvbiAoZmQpIHsKLSAgICAgICAgcmV0dXJuIEZTLnN0cmVhbXNbZmRdOwotICAgICAgfSxj
cmVhdGVTdHJlYW06ZnVuY3Rpb24gKHN0cmVhbSwgZmRfc3RhcnQsIGZkX2VuZCkgewotICAgICAg
ICB2YXIgZmQgPSBGUy5uZXh0ZmQoZmRfc3RhcnQsIGZkX2VuZCk7Ci0gICAgICAgIHN0cmVhbS5m
ZCA9IGZkOwotICAgICAgICAvLyBjb21wYXRpYmlsaXR5Ci0gICAgICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0aWVzKHN0cmVhbSwgewotICAgICAgICAgIG9iamVjdDogewotICAgICAgICAgICAgZ2V0
OiBmdW5jdGlvbigpIHsgcmV0dXJuIHN0cmVhbS5ub2RlOyB9LAotICAgICAgICAgICAgc2V0OiBm
dW5jdGlvbih2YWwpIHsgc3RyZWFtLm5vZGUgPSB2YWw7IH0KLSAgICAgICAgICB9LAotICAgICAg
ICAgIGlzUmVhZDogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChzdHJl
YW0uZmxhZ3MgJiAzKSAhPT0gMTsgfQotICAgICAgICAgIH0sCi0gICAgICAgICAgaXNXcml0ZTog
ewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChzdHJlYW0uZmxhZ3MgJiAz
KSAhPT0gMDsgfQotICAgICAgICAgIH0sCi0gICAgICAgICAgaXNBcHBlbmQ6IHsKLSAgICAgICAg
ICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiAoc3RyZWFtLmZsYWdzICYgOCk7IH0KLSAgICAg
ICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgICBGUy5zdHJlYW1zW2ZkXSA9IHN0cmVhbTsKLSAg
ICAgICAgcmV0dXJuIHN0cmVhbTsKLSAgICAgIH0sY2xvc2VTdHJlYW06ZnVuY3Rpb24gKGZkKSB7
Ci0gICAgICAgIEZTLnN0cmVhbXNbZmRdID0gbnVsbDsKLSAgICAgIH0sZ2V0TW9kZTpmdW5jdGlv
biAoY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgdmFyIG1vZGUgPSAwOwotICAgICAgICBp
ZiAoY2FuUmVhZCkgbW9kZSB8PSAyOTIgfCA3MzsKLSAgICAgICAgaWYgKGNhbldyaXRlKSBtb2Rl
IHw9IDE0NjsKLSAgICAgICAgcmV0dXJuIG1vZGU7Ci0gICAgICB9LGpvaW5QYXRoOmZ1bmN0aW9u
IChwYXJ0cywgZm9yY2VSZWxhdGl2ZSkgewotICAgICAgICB2YXIgcGF0aCA9IFBBVEguam9pbi5h
cHBseShudWxsLCBwYXJ0cyk7Ci0gICAgICAgIGlmIChmb3JjZVJlbGF0aXZlICYmIHBhdGhbMF0g
PT0gJy8nKSBwYXRoID0gcGF0aC5zdWJzdHIoMSk7Ci0gICAgICAgIHJldHVybiBwYXRoOwotICAg
ICAgfSxhYnNvbHV0ZVBhdGg6ZnVuY3Rpb24gKHJlbGF0aXZlLCBiYXNlKSB7Ci0gICAgICAgIHJl
dHVybiBQQVRILnJlc29sdmUoYmFzZSwgcmVsYXRpdmUpOwotICAgICAgfSxzdGFuZGFyZGl6ZVBh
dGg6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgcmV0dXJuIFBBVEgubm9ybWFsaXplKHBhdGgp
OwotICAgICAgfSxmaW5kT2JqZWN0OmZ1bmN0aW9uIChwYXRoLCBkb250UmVzb2x2ZUxhc3RMaW5r
KSB7Ci0gICAgICAgIHZhciByZXQgPSBGUy5hbmFseXplUGF0aChwYXRoLCBkb250UmVzb2x2ZUxh
c3RMaW5rKTsKLSAgICAgICAgaWYgKHJldC5leGlzdHMpIHsKLSAgICAgICAgICByZXR1cm4gcmV0
Lm9iamVjdDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBfX19zZXRFcnJObyhyZXQuZXJy
b3IpOwotICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0gICAgICB9LGFuYWx5emVQ
YXRoOmZ1bmN0aW9uIChwYXRoLCBkb250UmVzb2x2ZUxhc3RMaW5rKSB7Ci0gICAgICAgIC8vIG9w
ZXJhdGUgZnJvbSB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhlIHN5bWxpbmsncyB0YXJnZXQKLSAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7
IGZvbGxvdzogIWRvbnRSZXNvbHZlTGFzdExpbmsgfSk7Ci0gICAgICAgICAgcGF0aCA9IGxvb2t1
cC5wYXRoOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHJl
dCA9IHsKLSAgICAgICAgICBpc1Jvb3Q6IGZhbHNlLCBleGlzdHM6IGZhbHNlLCBlcnJvcjogMCwg
bmFtZTogbnVsbCwgcGF0aDogbnVsbCwgb2JqZWN0OiBudWxsLAotICAgICAgICAgIHBhcmVudEV4
aXN0czogZmFsc2UsIHBhcmVudFBhdGg6IG51bGwsIHBhcmVudE9iamVjdDogbnVsbAotICAgICAg
ICB9OwotICAgICAgICB0cnkgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRo
KHBhdGgsIHsgcGFyZW50OiB0cnVlIH0pOwotICAgICAgICAgIHJldC5wYXJlbnRFeGlzdHMgPSB0
cnVlOwotICAgICAgICAgIHJldC5wYXJlbnRQYXRoID0gbG9va3VwLnBhdGg7Ci0gICAgICAgICAg
cmV0LnBhcmVudE9iamVjdCA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgIHJldC5uYW1lID0gUEFU
SC5iYXNlbmFtZShwYXRoKTsKLSAgICAgICAgICBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgs
IHsgZm9sbG93OiAhZG9udFJlc29sdmVMYXN0TGluayB9KTsKLSAgICAgICAgICByZXQuZXhpc3Rz
ID0gdHJ1ZTsKLSAgICAgICAgICByZXQucGF0aCA9IGxvb2t1cC5wYXRoOwotICAgICAgICAgIHJl
dC5vYmplY3QgPSBsb29rdXAubm9kZTsKLSAgICAgICAgICByZXQubmFtZSA9IGxvb2t1cC5ub2Rl
Lm5hbWU7Ci0gICAgICAgICAgcmV0LmlzUm9vdCA9IGxvb2t1cC5wYXRoID09PSAnLyc7Ci0gICAg
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICByZXQuZXJyb3IgPSBlLmVycm5vOwotICAgICAg
ICB9OwotICAgICAgICByZXR1cm4gcmV0OwotICAgICAgfSxjcmVhdGVGb2xkZXI6ZnVuY3Rpb24g
KHBhcmVudCwgbmFtZSwgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgdmFyIHBhdGggPSBQ
QVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBGUy5nZXRQYXRo
KHBhcmVudCksIG5hbWUpOwotICAgICAgICB2YXIgbW9kZSA9IEZTLmdldE1vZGUoY2FuUmVhZCwg
Y2FuV3JpdGUpOwotICAgICAgICByZXR1cm4gRlMubWtkaXIocGF0aCwgbW9kZSk7Ci0gICAgICB9
LGNyZWF0ZVBhdGg6ZnVuY3Rpb24gKHBhcmVudCwgcGF0aCwgY2FuUmVhZCwgY2FuV3JpdGUpIHsK
LSAgICAgICAgcGFyZW50ID0gdHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBG
Uy5nZXRQYXRoKHBhcmVudCk7Ci0gICAgICAgIHZhciBwYXJ0cyA9IHBhdGguc3BsaXQoJy8nKS5y
ZXZlcnNlKCk7Ci0gICAgICAgIHdoaWxlIChwYXJ0cy5sZW5ndGgpIHsKLSAgICAgICAgICB2YXIg
cGFydCA9IHBhcnRzLnBvcCgpOwotICAgICAgICAgIGlmICghcGFydCkgY29udGludWU7Ci0gICAg
ICAgICAgdmFyIGN1cnJlbnQgPSBQQVRILmpvaW4ocGFyZW50LCBwYXJ0KTsKLSAgICAgICAgICB0
cnkgewotICAgICAgICAgICAgRlMubWtkaXIoY3VycmVudCwgMDc3Nyk7Ci0gICAgICAgICAgfSBj
YXRjaCAoZSkgewotICAgICAgICAgICAgLy8gaWdub3JlIEVFWElTVAotICAgICAgICAgIH0KLSAg
ICAgICAgICBwYXJlbnQgPSBjdXJyZW50OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjdXJy
ZW50OwotICAgICAgfSxjcmVhdGVGaWxlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIHByb3BlcnRp
ZXMsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luKHR5
cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBu
YW1lKTsKLSAgICAgICAgdmFyIG1vZGUgPSBGUy5nZXRNb2RlKGNhblJlYWQsIGNhbldyaXRlKTsK
LSAgICAgICAgcmV0dXJuIEZTLmNyZWF0ZShwYXRoLCBtb2RlKTsKLSAgICAgIH0sY3JlYXRlRGF0
YUZpbGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgZGF0YSwgY2FuUmVhZCwgY2FuV3JpdGUpIHsK
LSAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycg
PyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICB2YXIgbW9kZSA9
IEZTLmdldE1vZGUoY2FuUmVhZCwgY2FuV3JpdGUpOwotICAgICAgICB2YXIgbm9kZSA9IEZTLmNy
ZWF0ZShwYXRoLCBtb2RlKTsKLSAgICAgICAgaWYgKGRhdGEpIHsKLSAgICAgICAgICBpZiAodHlw
ZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgICB2YXIgYXJyID0gbmV3IEFycmF5
KGRhdGEubGVuZ3RoKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBkYXRhLmxl
bmd0aDsgaSA8IGxlbjsgKytpKSBhcnJbaV0gPSBkYXRhLmNoYXJDb2RlQXQoaSk7Ci0gICAgICAg
ICAgICBkYXRhID0gYXJyOwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBtYWtlIHN1cmUgd2Ug
Y2FuIHdyaXRlIHRvIHRoZSBmaWxlCi0gICAgICAgICAgRlMuY2htb2QocGF0aCwgbW9kZSB8IDE0
Nik7Ci0gICAgICAgICAgdmFyIHN0cmVhbSA9IEZTLm9wZW4ocGF0aCwgJ3cnKTsKLSAgICAgICAg
ICBGUy53cml0ZShzdHJlYW0sIGRhdGEsIDAsIGRhdGEubGVuZ3RoLCAwKTsKLSAgICAgICAgICBG
Uy5jbG9zZShzdHJlYW0pOwotICAgICAgICAgIEZTLmNobW9kKHBhdGgsIG1vZGUpOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgICAgfSxjcmVhdGVEZXZpY2U6ZnVuY3Rpb24g
KHBhcmVudCwgbmFtZSwgaW5wdXQsIG91dHB1dCkgewotICAgICAgICB2YXIgcGF0aCA9IFBBVEgu
am9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFy
ZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2RlID0gaW5wdXQgJiYgb3V0cHV0ID8gMDc3NyA6
IChpbnB1dCA/IDAzMzMgOiAwNTU1KTsKLSAgICAgICAgaWYgKCFGUy5jcmVhdGVEZXZpY2UubWFq
b3IpIEZTLmNyZWF0ZURldmljZS5tYWpvciA9IDY0OwotICAgICAgICB2YXIgZGV2ID0gRlMubWFr
ZWRldihGUy5jcmVhdGVEZXZpY2UubWFqb3IrKywgMCk7Ci0gICAgICAgIC8vIENyZWF0ZSBhIGZh
a2UgZGV2aWNlIHRoYXQgYSBzZXQgb2Ygc3RyZWFtIG9wcyB0byBlbXVsYXRlCi0gICAgICAgIC8v
IHRoZSBvbGQgYmVoYXZpb3IuCi0gICAgICAgIEZTLnJlZ2lzdGVyRGV2aWNlKGRldiwgewotICAg
ICAgICAgIG9wZW46IGZ1bmN0aW9uKHN0cmVhbSkgewotICAgICAgICAgICAgc3RyZWFtLnNlZWth
YmxlID0gZmFsc2U7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBjbG9zZTogZnVuY3Rpb24oc3Ry
ZWFtKSB7Ci0gICAgICAgICAgICAvLyBmbHVzaCBhbnkgcGVuZGluZyBsaW5lIGRhdGEKLSAgICAg
ICAgICAgIGlmIChvdXRwdXQgJiYgb3V0cHV0LmJ1ZmZlciAmJiBvdXRwdXQuYnVmZmVyLmxlbmd0
aCkgewotICAgICAgICAgICAgICBvdXRwdXQoMTApOwotICAgICAgICAgICAgfQotICAgICAgICAg
IH0sCi0gICAgICAgICAgcmVhZDogZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVu
Z3RoLCBwb3MgLyogaWdub3JlZCAqLykgewotICAgICAgICAgICAgdmFyIGJ5dGVzUmVhZCA9IDA7
Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAg
ICAgICAgIHZhciByZXN1bHQ7Ci0gICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAg
cmVzdWx0ID0gaW5wdXQoKTsKLSAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkICYmIGJ5dGVz
UmVhZCA9PT0gMCkgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVBR0FJTik7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKHJl
c3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZCkgYnJlYWs7Ci0gICAgICAgICAg
ICAgIGJ5dGVzUmVhZCsrOwotICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0K2ldID0gcmVzdWx0
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGJ5dGVzUmVhZCkgewotICAgICAgICAg
ICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcmV0dXJuIGJ5dGVzUmVhZDsKLSAgICAgICAgICB9LAotICAgICAgICAgIHdy
aXRlOiBmdW5jdGlvbihzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvcykgewotICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICAgICAg
ICB0cnkgewotICAgICAgICAgICAgICAgIG91dHB1dChidWZmZXJbb2Zmc2V0K2ldKTsKLSAgICAg
ICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGlmIChsZW5ndGgpIHsKLSAgICAgICAgICAgICAgc3RyZWFtLm5vZGUudGlt
ZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBp
OwotICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBGUy5ta2RldihwYXRo
LCBtb2RlLCBkZXYpOwotICAgICAgfSxjcmVhdGVMaW5rOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUs
IHRhcmdldCwgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgdmFyIHBhdGggPSBQQVRILmpv
aW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVu
dCksIG5hbWUpOwotICAgICAgICByZXR1cm4gRlMuc3ltbGluayh0YXJnZXQsIHBhdGgpOwotICAg
ICAgfSxmb3JjZUxvYWRGaWxlOmZ1bmN0aW9uIChvYmopIHsKLSAgICAgICAgaWYgKG9iai5pc0Rl
dmljZSB8fCBvYmouaXNGb2xkZXIgfHwgb2JqLmxpbmsgfHwgb2JqLmNvbnRlbnRzKSByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgdmFyIHN1Y2Nlc3MgPSB0cnVlOwotICAgICAgICBpZiAodHlwZW9mIFhN
TEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiTGF6eSBsb2FkaW5nIHNob3VsZCBoYXZlIGJlZW4gcGVyZm9ybWVkIChjb250ZW50cyBzZXQp
IGluIGNyZWF0ZUxhenlGaWxlLCBidXQgaXQgd2FzIG5vdC4gTGF6eSBsb2FkaW5nIG9ubHkgd29y
a3MgaW4gd2ViIHdvcmtlcnMuIFVzZSAtLWVtYmVkLWZpbGUgb3IgLS1wcmVsb2FkLWZpbGUgaW4g
ZW1jYyBvbiB0aGUgbWFpbiB0aHJlYWQuIik7Ci0gICAgICAgIH0gZWxzZSBpZiAoTW9kdWxlWydy
ZWFkJ10pIHsKLSAgICAgICAgICAvLyBDb21tYW5kLWxpbmUuCi0gICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgIC8vIFdBUk5JTkc6IENhbid0IHJlYWQgYmluYXJ5IGZpbGVzIGluIFY4J3MgZDgg
b3IgdHJhY2Vtb25rZXkncyBqcywgYXMKLSAgICAgICAgICAgIC8vICAgICAgICAgIHJlYWQoKSB3
aWxsIHRyeSB0byBwYXJzZSBVVEY4LgotICAgICAgICAgICAgb2JqLmNvbnRlbnRzID0gaW50QXJy
YXlGcm9tU3RyaW5nKE1vZHVsZVsncmVhZCddKG9iai51cmwpLCB0cnVlKTsKLSAgICAgICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7Ci0gICAgICAgICAgfQot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGxvYWQg
d2l0aG91dCByZWFkKCkgb3IgWE1MSHR0cFJlcXVlc3QuJyk7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKCFzdWNjZXNzKSBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FSU8pOwotICAgICAgICByZXR1
cm4gc3VjY2VzczsKLSAgICAgIH0sY3JlYXRlTGF6eUZpbGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFt
ZSwgdXJsLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICBpZiAodHlwZW9mIFhNTEh0dHBS
ZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIGlmICghRU5WSVJPTk1FTlRfSVNf
V09SS0VSKSB0aHJvdyAnQ2Fubm90IGRvIHN5bmNocm9ub3VzIGJpbmFyeSBYSFJzIG91dHNpZGUg
d2Vid29ya2VycyBpbiBtb2Rlcm4gYnJvd3NlcnMuIFVzZSAtLWVtYmVkLWZpbGUgb3IgLS1wcmVs
b2FkLWZpbGUgaW4gZW1jYyc7Ci0gICAgICAgICAgLy8gTGF6eSBjaHVua2VkIFVpbnQ4QXJyYXkg
KGltcGxlbWVudHMgZ2V0IGFuZCBsZW5ndGggZnJvbSBVaW50OEFycmF5KS4gQWN0dWFsIGdldHRp
bmcgaXMgYWJzdHJhY3RlZCBhd2F5IGZvciBldmVudHVhbCByZXVzZS4KLSAgICAgICAgICB2YXIg
TGF6eVVpbnQ4QXJyYXkgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRoaXMubGVuZ3RoS25v
d24gPSBmYWxzZTsKLSAgICAgICAgICAgIHRoaXMuY2h1bmtzID0gW107IC8vIExvYWRlZCBjaHVu
a3MuIEluZGV4IGlzIHRoZSBjaHVuayBudW1iZXIKLSAgICAgICAgICB9Ci0gICAgICAgICAgTGF6
eVVpbnQ4QXJyYXkucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKGlkeCkgewotICAgICAgICAgICAg
aWYgKGlkeCA+IHRoaXMubGVuZ3RoLTEgfHwgaWR4IDwgMCkgewotICAgICAgICAgICAgICByZXR1
cm4gdW5kZWZpbmVkOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIGNodW5rT2Zmc2V0
ID0gaWR4ICUgdGhpcy5jaHVua1NpemU7Ci0gICAgICAgICAgICB2YXIgY2h1bmtOdW0gPSBNYXRo
LmZsb29yKGlkeCAvIHRoaXMuY2h1bmtTaXplKTsKLSAgICAgICAgICAgIHJldHVybiB0aGlzLmdl
dHRlcihjaHVua051bSlbY2h1bmtPZmZzZXRdOwotICAgICAgICAgIH0KLSAgICAgICAgICBMYXp5
VWludDhBcnJheS5wcm90b3R5cGUuc2V0RGF0YUdldHRlciA9IGZ1bmN0aW9uKGdldHRlcikgewot
ICAgICAgICAgICAgdGhpcy5nZXR0ZXIgPSBnZXR0ZXI7Ci0gICAgICAgICAgfQotICAgICAgICAg
IExhenlVaW50OEFycmF5LnByb3RvdHlwZS5jYWNoZUxlbmd0aCA9IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICAvLyBGaW5kIGxlbmd0aAotICAgICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7Ci0gICAgICAgICAgICAgIHhoci5vcGVuKCdIRUFEJywgdXJsLCBmYWxz
ZSk7Ci0gICAgICAgICAgICAgIHhoci5zZW5kKG51bGwpOwotICAgICAgICAgICAgICBpZiAoISh4
aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwIHx8IHhoci5zdGF0dXMgPT09IDMw
NCkpIHRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgbG9hZCAiICsgdXJsICsgIi4gU3RhdHVzOiAi
ICsgeGhyLnN0YXR1cyk7Ci0gICAgICAgICAgICAgIHZhciBkYXRhbGVuZ3RoID0gTnVtYmVyKHho
ci5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1sZW5ndGgiKSk7Ci0gICAgICAgICAgICAgIHZh
ciBoZWFkZXI7Ci0gICAgICAgICAgICAgIHZhciBoYXNCeXRlU2VydmluZyA9IChoZWFkZXIgPSB4
aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIkFjY2VwdC1SYW5nZXMiKSkgJiYgaGVhZGVyID09PSAiYnl0
ZXMiOwotICAgICAgICAgICAgICB2YXIgY2h1bmtTaXplID0gMTAyNCoxMDI0OyAvLyBDaHVuayBz
aXplIGluIGJ5dGVzCi0gICAgICAgICAgICAgIGlmICghaGFzQnl0ZVNlcnZpbmcpIGNodW5rU2l6
ZSA9IGRhdGFsZW5ndGg7Ci0gICAgICAgICAgICAgIC8vIEZ1bmN0aW9uIHRvIGdldCBhIHJhbmdl
IGZyb20gdGhlIHJlbW90ZSBVUkwuCi0gICAgICAgICAgICAgIHZhciBkb1hIUiA9IChmdW5jdGlv
bihmcm9tLCB0bykgewotICAgICAgICAgICAgICAgIGlmIChmcm9tID4gdG8pIHRocm93IG5ldyBF
cnJvcigiaW52YWxpZCByYW5nZSAoIiArIGZyb20gKyAiLCAiICsgdG8gKyAiKSBvciBubyBieXRl
cyByZXF1ZXN0ZWQhIik7Ci0gICAgICAgICAgICAgICAgaWYgKHRvID4gZGF0YWxlbmd0aC0xKSB0
aHJvdyBuZXcgRXJyb3IoIm9ubHkgIiArIGRhdGFsZW5ndGggKyAiIGJ5dGVzIGF2YWlsYWJsZSEg
cHJvZ3JhbW1lciBlcnJvciEiKTsKLSAgICAgICAgICAgICAgICAvLyBUT0RPOiBVc2UgbW96UmVz
cG9uc2VBcnJheUJ1ZmZlciwgcmVzcG9uc2VTdHJlYW0sIGV0Yy4gaWYgYXZhaWxhYmxlLgotICAg
ICAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgICAg
ICAgICB4aHIub3BlbignR0VUJywgdXJsLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGRh
dGFsZW5ndGggIT09IGNodW5rU2l6ZSkgeGhyLnNldFJlcXVlc3RIZWFkZXIoIlJhbmdlIiwgImJ5
dGVzPSIgKyBmcm9tICsgIi0iICsgdG8pOwotICAgICAgICAgICAgICAgIC8vIFNvbWUgaGludHMg
dG8gdGhlIGJyb3dzZXIgdGhhdCB3ZSB3YW50IGJpbmFyeSBkYXRhLgotICAgICAgICAgICAgICAg
IGlmICh0eXBlb2YgVWludDhBcnJheSAhPSAndW5kZWZpbmVkJykgeGhyLnJlc3BvbnNlVHlwZSA9
ICdhcnJheWJ1ZmZlcic7Ci0gICAgICAgICAgICAgICAgaWYgKHhoci5vdmVycmlkZU1pbWVUeXBl
KSB7Ci0gICAgICAgICAgICAgICAgICB4aHIub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC9wbGFpbjsg
Y2hhcnNldD14LXVzZXItZGVmaW5lZCcpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICB4aHIuc2VuZChudWxsKTsKLSAgICAgICAgICAgICAgICBpZiAoISh4aHIuc3RhdHVzID49
IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwIHx8IHhoci5zdGF0dXMgPT09IDMwNCkpIHRocm93IG5l
dyBFcnJvcigiQ291bGRuJ3QgbG9hZCAiICsgdXJsICsgIi4gU3RhdHVzOiAiICsgeGhyLnN0YXR1
cyk7Ci0gICAgICAgICAgICAgICAgaWYgKHhoci5yZXNwb25zZSAhPT0gdW5kZWZpbmVkKSB7Ci0g
ICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoeGhyLnJlc3BvbnNlIHx8IFtd
KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcmV0dXJuIGlu
dEFycmF5RnJvbVN0cmluZyh4aHIucmVzcG9uc2VUZXh0IHx8ICcnLCB0cnVlKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICB2YXIgbGF6eUFycmF5
ID0gdGhpczsKLSAgICAgICAgICAgICAgbGF6eUFycmF5LnNldERhdGFHZXR0ZXIoZnVuY3Rpb24o
Y2h1bmtOdW0pIHsKLSAgICAgICAgICAgICAgICB2YXIgc3RhcnQgPSBjaHVua051bSAqIGNodW5r
U2l6ZTsKLSAgICAgICAgICAgICAgICB2YXIgZW5kID0gKGNodW5rTnVtKzEpICogY2h1bmtTaXpl
IC0gMTsgLy8gaW5jbHVkaW5nIHRoaXMgYnl0ZQotICAgICAgICAgICAgICAgIGVuZCA9IE1hdGgu
bWluKGVuZCwgZGF0YWxlbmd0aC0xKTsgLy8gaWYgZGF0YWxlbmd0aC0xIGlzIHNlbGVjdGVkLCB0
aGlzIGlzIHRoZSBsYXN0IGJsb2NrCi0gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihsYXp5QXJy
YXkuY2h1bmtzW2NodW5rTnVtXSkgPT09ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgICAgICAgICAg
ICBsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXSA9IGRvWEhSKHN0YXJ0LCBlbmQpOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAodHlwZW9mKGxhenlBcnJheS5jaHVua3Nb
Y2h1bmtOdW1dKSA9PT0gInVuZGVmaW5lZCIpIHRocm93IG5ldyBFcnJvcigiZG9YSFIgZmFpbGVk
ISIpOwotICAgICAgICAgICAgICAgIHJldHVybiBsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXTsK
LSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgIHRoaXMuX2xlbmd0aCA9IGRhdGFsZW5n
dGg7Ci0gICAgICAgICAgICAgIHRoaXMuX2NodW5rU2l6ZSA9IGNodW5rU2l6ZTsKLSAgICAgICAg
ICAgICAgdGhpcy5sZW5ndGhLbm93biA9IHRydWU7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZh
ciBsYXp5QXJyYXkgPSBuZXcgTGF6eVVpbnQ4QXJyYXkoKTsKLSAgICAgICAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkobGF6eUFycmF5LCAibGVuZ3RoIiwgewotICAgICAgICAgICAgICBnZXQ6IGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgaWYoIXRoaXMubGVuZ3RoS25vd24pIHsKLSAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLmNhY2hlTGVuZ3RoKCk7Ci0gICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbGVuZ3RoOwotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlB
cnJheSwgImNodW5rU2l6ZSIsIHsKLSAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICAgIGlmKCF0aGlzLmxlbmd0aEtub3duKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5jYWNoZUxlbmd0aCgpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2NodW5rU2l6ZTsKLSAgICAgICAgICAgICAgfQotICAgICAg
ICAgIH0pOwotICAgICAgICAgIHZhciBwcm9wZXJ0aWVzID0geyBpc0RldmljZTogZmFsc2UsIGNv
bnRlbnRzOiBsYXp5QXJyYXkgfTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgcHJv
cGVydGllcyA9IHsgaXNEZXZpY2U6IGZhbHNlLCB1cmw6IHVybCB9OwotICAgICAgICB9Ci0gICAg
ICAgIHZhciBub2RlID0gRlMuY3JlYXRlRmlsZShwYXJlbnQsIG5hbWUsIHByb3BlcnRpZXMsIGNh
blJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgLy8gVGhpcyBpcyBhIHRvdGFsIGhhY2ssIGJ1dCBJ
IHdhbnQgdG8gZ2V0IHRoaXMgbGF6eSBmaWxlIGNvZGUgb3V0IG9mIHRoZQotICAgICAgICAvLyBj
b3JlIG9mIE1FTUZTLiBJZiB3ZSB3YW50IHRvIGtlZXAgdGhpcyBsYXp5IGZpbGUgY29uY2VwdCBJ
IGZlZWwgaXQgc2hvdWxkCi0gICAgICAgIC8vIGJlIGl0cyBvd24gdGhpbiBMQVpZRlMgcHJveHlp
bmcgY2FsbHMgdG8gTUVNRlMuCi0gICAgICAgIGlmIChwcm9wZXJ0aWVzLmNvbnRlbnRzKSB7Ci0g
ICAgICAgICAgbm9kZS5jb250ZW50cyA9IHByb3BlcnRpZXMuY29udGVudHM7Ci0gICAgICAgIH0g
ZWxzZSBpZiAocHJvcGVydGllcy51cmwpIHsKLSAgICAgICAgICBub2RlLmNvbnRlbnRzID0gbnVs
bDsKLSAgICAgICAgICBub2RlLnVybCA9IHByb3BlcnRpZXMudXJsOwotICAgICAgICB9Ci0gICAg
ICAgIC8vIG92ZXJyaWRlIGVhY2ggc3RyZWFtIG9wIHdpdGggb25lIHRoYXQgdHJpZXMgdG8gZm9y
Y2UgbG9hZCB0aGUgbGF6eSBmaWxlIGZpcnN0Ci0gICAgICAgIHZhciBzdHJlYW1fb3BzID0ge307
Ci0gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMobm9kZS5zdHJlYW1fb3BzKTsKLSAgICAg
ICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkgewotICAgICAgICAgIHZhciBmbiA9IG5vZGUu
c3RyZWFtX29wc1trZXldOwotICAgICAgICAgIHN0cmVhbV9vcHNba2V5XSA9IGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgaWYgKCFGUy5mb3JjZUxvYWRGaWxlKG5vZGUpKSB7Ci0gICAgICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKLSAgICAg
ICAgICB9OwotICAgICAgICB9KTsKLSAgICAgICAgLy8gdXNlIGEgY3VzdG9tIHJlYWQgZnVuY3Rp
b24KLSAgICAgICAgc3RyZWFtX29wcy5yZWFkID0gZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9m
ZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewotICAgICAgICAgIGlmICghRlMuZm9yY2VMb2FkRmls
ZShub2RlKSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRUlPKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5v
ZGUuY29udGVudHM7Ci0gICAgICAgICAgdmFyIHNpemUgPSBNYXRoLm1pbihjb250ZW50cy5sZW5n
dGggLSBwb3NpdGlvbiwgbGVuZ3RoKTsKLSAgICAgICAgICBpZiAoY29udGVudHMuc2xpY2UpIHsg
Ly8gbm9ybWFsIGFycmF5Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkr
KykgewotICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgaV0gPSBjb250ZW50c1twb3NpdGlv
biArIGldOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykgeyAvLyBMYXp5VWludDhBcnJheSBmcm9tIHN5
bmMgYmluYXJ5IFhIUgotICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgaV0gPSBjb250ZW50
cy5nZXQocG9zaXRpb24gKyBpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAg
ICAgcmV0dXJuIHNpemU7Ci0gICAgICAgIH07Ci0gICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IHN0
cmVhbV9vcHM7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgICAgfSxjcmVhdGVQcmVsb2FkZWRG
aWxlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIHVybCwgY2FuUmVhZCwgY2FuV3JpdGUsIG9ubG9h
ZCwgb25lcnJvciwgZG9udENyZWF0ZUZpbGUpIHsKLSAgICAgICAgQnJvd3Nlci5pbml0KCk7Ci0g
ICAgICAgIC8vIFRPRE8gd2Ugc2hvdWxkIGFsbG93IHBlb3BsZSB0byBqdXN0IHBhc3MgaW4gYSBj
b21wbGV0ZSBmaWxlbmFtZSBpbnN0ZWFkCi0gICAgICAgIC8vIG9mIHBhcmVudCBhbmQgbmFtZSBi
ZWluZyB0aGF0IHdlIGp1c3Qgam9pbiB0aGVtIGFueXdheXMKLSAgICAgICAgdmFyIGZ1bGxuYW1l
ID0gUEFUSC5yZXNvbHZlKFBBVEguam9pbihwYXJlbnQsIG5hbWUpKTsKLSAgICAgICAgZnVuY3Rp
b24gcHJvY2Vzc0RhdGEoYnl0ZUFycmF5KSB7Ci0gICAgICAgICAgZnVuY3Rpb24gZmluaXNoKGJ5
dGVBcnJheSkgewotICAgICAgICAgICAgaWYgKCFkb250Q3JlYXRlRmlsZSkgewotICAgICAgICAg
ICAgICBGUy5jcmVhdGVEYXRhRmlsZShwYXJlbnQsIG5hbWUsIGJ5dGVBcnJheSwgY2FuUmVhZCwg
Y2FuV3JpdGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2Fk
KCk7Ci0gICAgICAgICAgICByZW1vdmVSdW5EZXBlbmRlbmN5KCdjcCAnICsgZnVsbG5hbWUpOwot
ICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgaGFuZGxlZCA9IGZhbHNlOwotICAgICAgICAgIE1v
ZHVsZVsncHJlbG9hZFBsdWdpbnMnXS5mb3JFYWNoKGZ1bmN0aW9uKHBsdWdpbikgewotICAgICAg
ICAgICAgaWYgKGhhbmRsZWQpIHJldHVybjsKLSAgICAgICAgICAgIGlmIChwbHVnaW5bJ2Nhbkhh
bmRsZSddKGZ1bGxuYW1lKSkgewotICAgICAgICAgICAgICBwbHVnaW5bJ2hhbmRsZSddKGJ5dGVB
cnJheSwgZnVsbG5hbWUsIGZpbmlzaCwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KG9uZXJyb3IpIG9uZXJyb3IoKTsKLSAgICAgICAgICAgICAgICByZW1vdmVSdW5EZXBlbmRlbmN5
KCdjcCAnICsgZnVsbG5hbWUpOwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgaGFu
ZGxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAgaWYg
KCFoYW5kbGVkKSBmaW5pc2goYnl0ZUFycmF5KTsKLSAgICAgICAgfQotICAgICAgICBhZGRSdW5E
ZXBlbmRlbmN5KCdjcCAnICsgZnVsbG5hbWUpOwotICAgICAgICBpZiAodHlwZW9mIHVybCA9PSAn
c3RyaW5nJykgewotICAgICAgICAgIEJyb3dzZXIuYXN5bmNMb2FkKHVybCwgZnVuY3Rpb24oYnl0
ZUFycmF5KSB7Ci0gICAgICAgICAgICBwcm9jZXNzRGF0YShieXRlQXJyYXkpOwotICAgICAgICAg
IH0sIG9uZXJyb3IpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHByb2Nlc3NEYXRhKHVy
bCk7Ci0gICAgICAgIH0KLSAgICAgIH0sY3JlYXRlRGVmYXVsdERpcmVjdG9yaWVzOmZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgRlMubWtkaXIoJy90bXAnLCAwNzc3KTsKLSAgICAgIH0sY3JlYXRlRGVm
YXVsdERldmljZXM6ZnVuY3Rpb24gKCkgewotICAgICAgICAvLyBjcmVhdGUgL2RldgotICAgICAg
ICBGUy5ta2RpcignL2RldicsIDA3NzcpOwotICAgICAgICAvLyBzZXR1cCAvZGV2L251bGwKLSAg
ICAgICAgRlMucmVnaXN0ZXJEZXZpY2UoRlMubWFrZWRldigxLCAzKSwgewotICAgICAgICAgIHJl
YWQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfSwKLSAgICAgICAgICB3cml0ZTogZnVuY3Rpb24o
KSB7IHJldHVybiAwOyB9Ci0gICAgICAgIH0pOwotICAgICAgICBGUy5ta2RldignL2Rldi9udWxs
JywgMDY2NiwgRlMubWFrZWRldigxLCAzKSk7Ci0gICAgICAgIC8vIHNldHVwIC9kZXYvdHR5IGFu
ZCAvZGV2L3R0eTEKLSAgICAgICAgLy8gc3RkZXJyIG5lZWRzIHRvIHByaW50IG91dHB1dCB1c2lu
ZyBNb2R1bGVbJ3ByaW50RXJyJ10KLSAgICAgICAgLy8gc28gd2UgcmVnaXN0ZXIgYSBzZWNvbmQg
dHR5IGp1c3QgZm9yIGl0LgotICAgICAgICBUVFkucmVnaXN0ZXIoRlMubWFrZWRldig1LCAwKSwg
VFRZLmRlZmF1bHRfdHR5X29wcyk7Ci0gICAgICAgIFRUWS5yZWdpc3RlcihGUy5tYWtlZGV2KDYs
IDApLCBUVFkuZGVmYXVsdF90dHkxX29wcyk7Ci0gICAgICAgIEZTLm1rZGV2KCcvZGV2L3R0eScs
IDA2NjYsIEZTLm1ha2VkZXYoNSwgMCkpOwotICAgICAgICBGUy5ta2RldignL2Rldi90dHkxJywg
MDY2NiwgRlMubWFrZWRldig2LCAwKSk7Ci0gICAgICAgIC8vIHdlJ3JlIG5vdCBnb2luZyB0byBl
bXVsYXRlIHRoZSBhY3R1YWwgc2htIGRldmljZSwKLSAgICAgICAgLy8ganVzdCBjcmVhdGUgdGhl
IHRtcCBkaXJzIHRoYXQgcmVzaWRlIGluIGl0IGNvbW1vbmx5Ci0gICAgICAgIEZTLm1rZGlyKCcv
ZGV2L3NobScsIDA3NzcpOwotICAgICAgICBGUy5ta2RpcignL2Rldi9zaG0vdG1wJywgMDc3Nyk7
Ci0gICAgICB9LGNyZWF0ZVN0YW5kYXJkU3RyZWFtczpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIC8v
IFRPRE8gZGVwcmVjYXRlIHRoZSBvbGQgZnVuY3Rpb25hbGl0eSBvZiBhIHNpbmdsZQotICAgICAg
ICAvLyBpbnB1dCAvIG91dHB1dCBjYWxsYmFjayBhbmQgdGhhdCB1dGlsaXplcyBGUy5jcmVhdGVE
ZXZpY2UKLSAgICAgICAgLy8gYW5kIGluc3RlYWQgcmVxdWlyZSBhIHVuaXF1ZSBzZXQgb2Ygc3Ry
ZWFtIG9wcwotICAgICAgICAvLyBieSBkZWZhdWx0LCB3ZSBzeW1saW5rIHRoZSBzdGFuZGFyZCBz
dHJlYW1zIHRvIHRoZQotICAgICAgICAvLyBkZWZhdWx0IHR0eSBkZXZpY2VzLiBob3dldmVyLCBp
ZiB0aGUgc3RhbmRhcmQgc3RyZWFtcwotICAgICAgICAvLyBoYXZlIGJlZW4gb3ZlcndyaXR0ZW4g
d2UgY3JlYXRlIGEgdW5pcXVlIGRldmljZSBmb3IKLSAgICAgICAgLy8gdGhlbSBpbnN0ZWFkLgot
ICAgICAgICBpZiAoTW9kdWxlWydzdGRpbiddKSB7Ci0gICAgICAgICAgRlMuY3JlYXRlRGV2aWNl
KCcvZGV2JywgJ3N0ZGluJywgTW9kdWxlWydzdGRpbiddKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICBGUy5zeW1saW5rKCcvZGV2L3R0eScsICcvZGV2L3N0ZGluJyk7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKE1vZHVsZVsnc3Rkb3V0J10pIHsKLSAgICAgICAgICBGUy5jcmVhdGVEZXZp
Y2UoJy9kZXYnLCAnc3Rkb3V0JywgbnVsbCwgTW9kdWxlWydzdGRvdXQnXSk7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgRlMuc3ltbGluaygnL2Rldi90dHknLCAnL2Rldi9zdGRvdXQnKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoTW9kdWxlWydzdGRlcnInXSkgewotICAgICAgICAgIEZT
LmNyZWF0ZURldmljZSgnL2RldicsICdzdGRlcnInLCBudWxsLCBNb2R1bGVbJ3N0ZGVyciddKTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBGUy5zeW1saW5rKCcvZGV2L3R0eTEnLCAnL2Rl
di9zdGRlcnInKTsKLSAgICAgICAgfQotICAgICAgICAvLyBvcGVuIGRlZmF1bHQgc3RyZWFtcyBm
b3IgdGhlIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyciBkZXZpY2VzCi0gICAgICAgIHZhciBzdGRp
biA9IEZTLm9wZW4oJy9kZXYvc3RkaW4nLCAncicpOwotICAgICAgICBIRUFQMzJbKChfc3RkaW4p
Pj4yKV09c3RkaW4uZmQ7Ci0gICAgICAgIGFzc2VydChzdGRpbi5mZCA9PT0gMSwgJ2ludmFsaWQg
aGFuZGxlIGZvciBzdGRpbiAoJyArIHN0ZGluLmZkICsgJyknKTsKLSAgICAgICAgdmFyIHN0ZG91
dCA9IEZTLm9wZW4oJy9kZXYvc3Rkb3V0JywgJ3cnKTsKLSAgICAgICAgSEVBUDMyWygoX3N0ZG91
dCk+PjIpXT1zdGRvdXQuZmQ7Ci0gICAgICAgIGFzc2VydChzdGRvdXQuZmQgPT09IDIsICdpbnZh
bGlkIGhhbmRsZSBmb3Igc3Rkb3V0ICgnICsgc3Rkb3V0LmZkICsgJyknKTsKLSAgICAgICAgdmFy
IHN0ZGVyciA9IEZTLm9wZW4oJy9kZXYvc3RkZXJyJywgJ3cnKTsKLSAgICAgICAgSEVBUDMyWygo
X3N0ZGVycik+PjIpXT1zdGRlcnIuZmQ7Ci0gICAgICAgIGFzc2VydChzdGRlcnIuZmQgPT09IDMs
ICdpbnZhbGlkIGhhbmRsZSBmb3Igc3RkZXJyICgnICsgc3RkZXJyLmZkICsgJyknKTsKLSAgICAg
IH0sc3RhdGljSW5pdDpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIEZTLm5hbWVfdGFibGUgPSBuZXcg
QXJyYXkoNDA5Nik7Ci0gICAgICAgIEZTLnJvb3QgPSBGUy5jcmVhdGVOb2RlKG51bGwsICcvJywg
MDA0MDAwMCB8IDA3NzcsIDApOwotICAgICAgICBGUy5tb3VudChNRU1GUywge30sICcvJyk7Ci0g
ICAgICAgIEZTLmNyZWF0ZURlZmF1bHREaXJlY3RvcmllcygpOwotICAgICAgICBGUy5jcmVhdGVE
ZWZhdWx0RGV2aWNlcygpOwotICAgICAgfSxpbml0OmZ1bmN0aW9uIChpbnB1dCwgb3V0cHV0LCBl
cnJvcikgewotICAgICAgICBhc3NlcnQoIUZTLmluaXQuaW5pdGlhbGl6ZWQsICdGUy5pbml0IHdh
cyBwcmV2aW91c2x5IGNhbGxlZC4gSWYgeW91IHdhbnQgdG8gaW5pdGlhbGl6ZSBsYXRlciB3aXRo
IGN1c3RvbSBwYXJhbWV0ZXJzLCByZW1vdmUgYW55IGVhcmxpZXIgY2FsbHMgKG5vdGUgdGhhdCBv
bmUgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIGNvZGUpJyk7Ci0gICAg
ICAgIEZTLmluaXQuaW5pdGlhbGl6ZWQgPSB0cnVlOwotICAgICAgICAvLyBBbGxvdyBNb2R1bGUu
c3RkaW4gZXRjLiB0byBwcm92aWRlIGRlZmF1bHRzLCBpZiBub25lIGV4cGxpY2l0bHkgcGFzc2Vk
IHRvIHVzIGhlcmUKLSAgICAgICAgTW9kdWxlWydzdGRpbiddID0gaW5wdXQgfHwgTW9kdWxlWydz
dGRpbiddOwotICAgICAgICBNb2R1bGVbJ3N0ZG91dCddID0gb3V0cHV0IHx8IE1vZHVsZVsnc3Rk
b3V0J107Ci0gICAgICAgIE1vZHVsZVsnc3RkZXJyJ10gPSBlcnJvciB8fCBNb2R1bGVbJ3N0ZGVy
ciddOwotICAgICAgICBGUy5jcmVhdGVTdGFuZGFyZFN0cmVhbXMoKTsKLSAgICAgIH0scXVpdDpm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIEZTLmluaXQuaW5pdGlhbGl6ZWQgPSBmYWxzZTsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBGUy5zdHJlYW1zLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAg
ICAgdmFyIHN0cmVhbSA9IEZTLnN0cmVhbXNbaV07Ci0gICAgICAgICAgaWYgKCFzdHJlYW0pIHsK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIH0KLSAgICAgICAgICBGUy5jbG9zZShz
dHJlYW0pOwotICAgICAgICB9Ci0gICAgICB9LG1vdW50OmZ1bmN0aW9uICh0eXBlLCBvcHRzLCBt
b3VudHBvaW50KSB7Ci0gICAgICAgIHZhciBtb3VudCA9IHsKLSAgICAgICAgICB0eXBlOiB0eXBl
LAotICAgICAgICAgIG9wdHM6IG9wdHMsCi0gICAgICAgICAgbW91bnRwb2ludDogbW91bnRwb2lu
dCwKLSAgICAgICAgICByb290OiBudWxsCi0gICAgICAgIH07Ci0gICAgICAgIHZhciBsb29rdXA7
Ci0gICAgICAgIGlmIChtb3VudHBvaW50KSB7Ci0gICAgICAgICAgbG9va3VwID0gRlMubG9va3Vw
UGF0aChtb3VudHBvaW50LCB7IGZvbGxvdzogZmFsc2UgfSk7Ci0gICAgICAgIH0KLSAgICAgICAg
Ly8gY3JlYXRlIGEgcm9vdCBub2RlIGZvciB0aGUgZnMKLSAgICAgICAgdmFyIHJvb3QgPSB0eXBl
Lm1vdW50KG1vdW50KTsKLSAgICAgICAgcm9vdC5tb3VudCA9IG1vdW50OwotICAgICAgICBtb3Vu
dC5yb290ID0gcm9vdDsKLSAgICAgICAgLy8gYXNzaWduIHRoZSBtb3VudCBpbmZvIHRvIHRoZSBt
b3VudHBvaW50J3Mgbm9kZQotICAgICAgICBpZiAobG9va3VwKSB7Ci0gICAgICAgICAgbG9va3Vw
Lm5vZGUubW91bnQgPSBtb3VudDsKLSAgICAgICAgICBsb29rdXAubm9kZS5tb3VudGVkID0gdHJ1
ZTsKLSAgICAgICAgICAvLyBjb21wYXRpYmlsaXR5IHVwZGF0ZSBGUy5yb290IGlmIHdlIG1vdW50
IHRvIC8KLSAgICAgICAgICBpZiAobW91bnRwb2ludCA9PT0gJy8nKSB7Ci0gICAgICAgICAgICBG
Uy5yb290ID0gbW91bnQucm9vdDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHJvb3Q7Ci0gICAgICB9LGxvb2t1cDpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAg
ICAgIHJldHVybiBwYXJlbnQubm9kZV9vcHMubG9va3VwKHBhcmVudCwgbmFtZSk7Ci0gICAgICB9
LG1rbm9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlLCBkZXYpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9
IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgIHZhciBwYXJl
bnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUgPSBQQVRILmJhc2VuYW1lKHBhdGgp
OwotICAgICAgICB2YXIgZXJyID0gRlMubWF5Q3JlYXRlKHBhcmVudCwgbmFtZSk7Ci0gICAgICAg
IGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAg
ICAgICB9Ci0gICAgICAgIGlmICghcGFyZW50Lm5vZGVfb3BzLm1rbm9kKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBwYXJlbnQubm9kZV9vcHMubWtub2QocGFyZW50LCBuYW1lLCBtb2RlLCBk
ZXYpOwotICAgICAgfSxjcmVhdGU6ZnVuY3Rpb24gKHBhdGgsIG1vZGUpIHsKLSAgICAgICAgbW9k
ZSAmPSA0MDk1OwotICAgICAgICBtb2RlIHw9IDAxMDAwMDA7Ci0gICAgICAgIHJldHVybiBGUy5t
a25vZChwYXRoLCBtb2RlLCAwKTsKLSAgICAgIH0sbWtkaXI6ZnVuY3Rpb24gKHBhdGgsIG1vZGUp
IHsKLSAgICAgICAgbW9kZSAmPSA1MTEgfCAwMDAxMDAwOwotICAgICAgICBtb2RlIHw9IDAwNDAw
MDA7Ci0gICAgICAgIHJldHVybiBGUy5ta25vZChwYXRoLCBtb2RlLCAwKTsKLSAgICAgIH0sbWtk
ZXY6ZnVuY3Rpb24gKHBhdGgsIG1vZGUsIGRldikgewotICAgICAgICBtb2RlIHw9IDAwMjAwMDA7
Ci0gICAgICAgIHJldHVybiBGUy5ta25vZChwYXRoLCBtb2RlLCBkZXYpOwotICAgICAgfSxzeW1s
aW5rOmZ1bmN0aW9uIChvbGRwYXRoLCBuZXdwYXRoKSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBG
Uy5sb29rdXBQYXRoKG5ld3BhdGgsIHsgcGFyZW50OiB0cnVlIH0pOwotICAgICAgICB2YXIgcGFy
ZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIHZhciBuZXduYW1lID0gUEFUSC5iYXNlbmFtZShu
ZXdwYXRoKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heUNyZWF0ZShwYXJlbnQsIG5ld25hbWUp
OwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
ZXJyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBhcmVudC5ub2RlX29wcy5zeW1saW5rKSB7
Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiBwYXJlbnQubm9kZV9vcHMuc3ltbGluayhwYXJlbnQs
IG5ld25hbWUsIG9sZHBhdGgpOwotICAgICAgfSxyZW5hbWU6ZnVuY3Rpb24gKG9sZF9wYXRoLCBu
ZXdfcGF0aCkgewotICAgICAgICB2YXIgb2xkX2Rpcm5hbWUgPSBQQVRILmRpcm5hbWUob2xkX3Bh
dGgpOwotICAgICAgICB2YXIgbmV3X2Rpcm5hbWUgPSBQQVRILmRpcm5hbWUobmV3X3BhdGgpOwot
ICAgICAgICB2YXIgb2xkX25hbWUgPSBQQVRILmJhc2VuYW1lKG9sZF9wYXRoKTsKLSAgICAgICAg
dmFyIG5ld19uYW1lID0gUEFUSC5iYXNlbmFtZShuZXdfcGF0aCk7Ci0gICAgICAgIC8vIHBhcmVu
dHMgbXVzdCBleGlzdAotICAgICAgICB2YXIgbG9va3VwLCBvbGRfZGlyLCBuZXdfZGlyOwotICAg
ICAgICB0cnkgewotICAgICAgICAgIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgob2xkX3BhdGgsIHsg
cGFyZW50OiB0cnVlIH0pOwotICAgICAgICAgIG9sZF9kaXIgPSBsb29rdXAubm9kZTsKLSAgICAg
ICAgICBsb29rdXAgPSBGUy5sb29rdXBQYXRoKG5ld19wYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsK
LSAgICAgICAgICBuZXdfZGlyID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgLy8gbmVlZCB0byBiZSBwYXJ0IG9mIHRoZSBzYW1lIG1vdW50Ci0g
ICAgICAgIGlmIChvbGRfZGlyLm1vdW50ICE9PSBuZXdfZGlyLm1vdW50KSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVhERVYpOwotICAgICAgICB9Ci0g
ICAgICAgIC8vIHNvdXJjZSBtdXN0IGV4aXN0Ci0gICAgICAgIHZhciBvbGRfbm9kZSA9IEZTLmxv
b2t1cE5vZGUob2xkX2Rpciwgb2xkX25hbWUpOwotICAgICAgICAvLyBvbGQgcGF0aCBzaG91bGQg
bm90IGJlIGFuIGFuY2VzdG9yIG9mIHRoZSBuZXcgcGF0aAotICAgICAgICB2YXIgcmVsYXRpdmUg
PSBQQVRILnJlbGF0aXZlKG9sZF9wYXRoLCBuZXdfZGlybmFtZSk7Ci0gICAgICAgIGlmIChyZWxh
dGl2ZS5jaGFyQXQoMCkgIT09ICcuJykgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gbmV3IHBhdGgg
c2hvdWxkIG5vdCBiZSBhbiBhbmNlc3RvciBvZiB0aGUgb2xkIHBhdGgKLSAgICAgICAgcmVsYXRp
dmUgPSBQQVRILnJlbGF0aXZlKG5ld19wYXRoLCBvbGRfZGlybmFtZSk7Ci0gICAgICAgIGlmIChy
ZWxhdGl2ZS5jaGFyQXQoMCkgIT09ICcuJykgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVOT1RFTVBUWSk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gc2Vl
IGlmIHRoZSBuZXcgcGF0aCBhbHJlYWR5IGV4aXN0cwotICAgICAgICB2YXIgbmV3X25vZGU7Ci0g
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgbmV3X25vZGUgPSBGUy5sb29rdXBOb2RlKG5ld19kaXIs
IG5ld19uYW1lKTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIC8vIG5vdCBmYXRh
bAotICAgICAgICB9Ci0gICAgICAgIC8vIGVhcmx5IG91dCBpZiBub3RoaW5nIG5lZWRzIHRvIGNo
YW5nZQotICAgICAgICBpZiAob2xkX25vZGUgPT09IG5ld19ub2RlKSB7Ci0gICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgICAgIC8vIHdlJ2xsIG5lZWQgdG8gZGVsZXRlIHRoZSBvbGQg
ZW50cnkKLSAgICAgICAgdmFyIGlzZGlyID0gRlMuaXNEaXIob2xkX25vZGUubW9kZSk7Ci0gICAg
ICAgIHZhciBlcnIgPSBGUy5tYXlEZWxldGUob2xkX2Rpciwgb2xkX25hbWUsIGlzZGlyKTsKLSAg
ICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gbmVlZCBkZWxldGUgcGVybWlzc2lvbnMgaWYgd2UnbGwg
YmUgb3ZlcndyaXRpbmcuCi0gICAgICAgIC8vIG5lZWQgY3JlYXRlIHBlcm1pc3Npb25zIGlmIG5l
dyBkb2Vzbid0IGFscmVhZHkgZXhpc3QuCi0gICAgICAgIGVyciA9IG5ld19ub2RlID8KLSAgICAg
ICAgICBGUy5tYXlEZWxldGUobmV3X2RpciwgbmV3X25hbWUsIGlzZGlyKSA6Ci0gICAgICAgICAg
RlMubWF5Q3JlYXRlKG5ld19kaXIsIG5ld19uYW1lKTsKLSAgICAgICAgaWYgKGVycikgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKCFvbGRfZGlyLm5vZGVfb3BzLnJlbmFtZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5F
cnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMu
aXNNb3VudHBvaW50KG9sZF9ub2RlKSB8fCAobmV3X25vZGUgJiYgRlMuaXNNb3VudHBvaW50KG5l
d19ub2RlKSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FQlVTWSk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gaWYgd2UgYXJlIGdvaW5nIHRvIGNoYW5n
ZSB0aGUgcGFyZW50LCBjaGVjayB3cml0ZSBwZXJtaXNzaW9ucwotICAgICAgICBpZiAobmV3X2Rp
ciAhPT0gb2xkX2RpcikgewotICAgICAgICAgIGVyciA9IEZTLm5vZGVQZXJtaXNzaW9ucyhvbGRf
ZGlyLCAndycpOwotICAgICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIC8vIHJl
bW92ZSB0aGUgbm9kZSBmcm9tIHRoZSBsb29rdXAgaGFzaAotICAgICAgICBGUy5oYXNoUmVtb3Zl
Tm9kZShvbGRfbm9kZSk7Ci0gICAgICAgIC8vIGRvIHRoZSB1bmRlcmx5aW5nIGZzIHJlbmFtZQot
ICAgICAgICB0cnkgewotICAgICAgICAgIG9sZF9kaXIubm9kZV9vcHMucmVuYW1lKG9sZF9ub2Rl
LCBuZXdfZGlyLCBuZXdfbmFtZSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICB0
aHJvdyBlOwotICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgIC8vIGFkZCB0aGUgbm9kZSBi
YWNrIHRvIHRoZSBoYXNoIChpbiBjYXNlIG5vZGVfb3BzLnJlbmFtZQotICAgICAgICAgIC8vIGNo
YW5nZWQgaXRzIG5hbWUpCi0gICAgICAgICAgRlMuaGFzaEFkZE5vZGUob2xkX25vZGUpOwotICAg
ICAgICB9Ci0gICAgICB9LHJtZGlyOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHZhciBsb29r
dXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgcGFyZW50OiB0cnVlIH0pOwotICAgICAgICB2YXIg
cGFyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIHZhciBuYW1lID0gUEFUSC5iYXNlbmFtZShw
YXRoKTsKLSAgICAgICAgdmFyIG5vZGUgPSBGUy5sb29rdXBOb2RlKHBhcmVudCwgbmFtZSk7Ci0g
ICAgICAgIHZhciBlcnIgPSBGUy5tYXlEZWxldGUocGFyZW50LCBuYW1lLCB0cnVlKTsKLSAgICAg
ICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKCFwYXJlbnQubm9kZV9vcHMucm1kaXIpIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKEZTLmlzTW91bnRwb2ludChub2RlKSkgewotICAgICAgICAgIHRocm93IG5l
dyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICBw
YXJlbnQubm9kZV9vcHMucm1kaXIocGFyZW50LCBuYW1lKTsKLSAgICAgICAgRlMuZGVzdHJveU5v
ZGUobm9kZSk7Ci0gICAgICB9LHJlYWRkaXI6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgdmFy
IGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6IHRydWUgfSk7Ci0gICAgICAg
IHZhciBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5yZWFk
ZGlyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5P
VERJUik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGUubm9kZV9vcHMucmVhZGRpcihu
b2RlKTsKLSAgICAgIH0sdW5saW5rOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHZhciBsb29r
dXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgcGFyZW50OiB0cnVlIH0pOwotICAgICAgICB2YXIg
cGFyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIHZhciBuYW1lID0gUEFUSC5iYXNlbmFtZShw
YXRoKTsKLSAgICAgICAgdmFyIG5vZGUgPSBGUy5sb29rdXBOb2RlKHBhcmVudCwgbmFtZSk7Ci0g
ICAgICAgIHZhciBlcnIgPSBGUy5tYXlEZWxldGUocGFyZW50LCBuYW1lLCBmYWxzZSk7Ci0gICAg
ICAgIGlmIChlcnIpIHsKLSAgICAgICAgICAvLyBQT1NJWCBzYXlzIHVubGluayBzaG91bGQgc2V0
IEVQRVJNLCBub3QgRUlTRElSCi0gICAgICAgICAgaWYgKGVyciA9PT0gRVJSTk9fQ09ERVMuRUlT
RElSKSBlcnIgPSBFUlJOT19DT0RFUy5FUEVSTTsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghcGFyZW50Lm5vZGVfb3BzLnVu
bGluaykgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQ
RVJNKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNNb3VudHBvaW50KG5vZGUpKSB7Ci0g
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpOwotICAg
ICAgICB9Ci0gICAgICAgIHBhcmVudC5ub2RlX29wcy51bmxpbmsocGFyZW50LCBuYW1lKTsKLSAg
ICAgICAgRlMuZGVzdHJveU5vZGUobm9kZSk7Ci0gICAgICB9LHJlYWRsaW5rOmZ1bmN0aW9uIChw
YXRoKSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93
OiBmYWxzZSB9KTsKLSAgICAgICAgdmFyIGxpbmsgPSBsb29rdXAubm9kZTsKLSAgICAgICAgaWYg
KCFsaW5rLm5vZGVfb3BzLnJlYWRsaW5rKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5v
RXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbGlu
ay5ub2RlX29wcy5yZWFkbGluayhsaW5rKTsKLSAgICAgIH0sc3RhdDpmdW5jdGlvbiAocGF0aCwg
ZG9udEZvbGxvdykgewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7
IGZvbGxvdzogIWRvbnRGb2xsb3cgfSk7Ci0gICAgICAgIHZhciBub2RlID0gbG9va3VwLm5vZGU7
Ci0gICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5nZXRhdHRyKSB7Ci0gICAgICAgICAgdGhyb3cg
bmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBub2RlLm5vZGVfb3BzLmdldGF0dHIobm9kZSk7Ci0gICAgICB9LGxzdGF0OmZ1bmN0
aW9uIChwYXRoKSB7Ci0gICAgICAgIHJldHVybiBGUy5zdGF0KHBhdGgsIHRydWUpOwotICAgICAg
fSxjaG1vZDpmdW5jdGlvbiAocGF0aCwgbW9kZSwgZG9udEZvbGxvdykgewotICAgICAgICB2YXIg
bm9kZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykgewotICAgICAgICAg
IHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udEZvbGxvdyB9
KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgbm9kZSA9IHBhdGg7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFub2RlLm5vZGVfb3Bz
LnNldGF0dHIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUs
IHsKLSAgICAgICAgICBtb2RlOiAobW9kZSAmIDQwOTUpIHwgKG5vZGUubW9kZSAmIH40MDk1KSwK
LSAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCkKLSAgICAgICAgfSk7Ci0gICAgICB9LGxj
aG1vZDpmdW5jdGlvbiAocGF0aCwgbW9kZSkgewotICAgICAgICBGUy5jaG1vZChwYXRoLCBtb2Rl
LCB0cnVlKTsKLSAgICAgIH0sZmNobW9kOmZ1bmN0aW9uIChmZCwgbW9kZSkgewotICAgICAgICB2
YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAgICAgaWYgKCFzdHJlYW0pIHsKLSAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAg
ICAgIH0KLSAgICAgICAgRlMuY2htb2Qoc3RyZWFtLm5vZGUsIG1vZGUpOwotICAgICAgfSxjaG93
bjpmdW5jdGlvbiAocGF0aCwgdWlkLCBnaWQsIGRvbnRGb2xsb3cpIHsKLSAgICAgICAgdmFyIG5v
ZGU7Ci0gICAgICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICB2
YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogIWRvbnRGb2xsb3cgfSk7
Ci0gICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgIG5vZGUgPSBwYXRoOwotICAgICAgICB9Ci0gICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5z
ZXRhdHRyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUubm9kZV9vcHMuc2V0YXR0cihub2RlLCB7
Ci0gICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpCi0gICAgICAgICAgLy8gd2UgaWdub3Jl
IHRoZSB1aWQgLyBnaWQgZm9yIG5vdwotICAgICAgICB9KTsKLSAgICAgIH0sbGNob3duOmZ1bmN0
aW9uIChwYXRoLCB1aWQsIGdpZCkgewotICAgICAgICBGUy5jaG93bihwYXRoLCB1aWQsIGdpZCwg
dHJ1ZSk7Ci0gICAgICB9LGZjaG93bjpmdW5jdGlvbiAoZmQsIHVpZCwgZ2lkKSB7Ci0gICAgICAg
IHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwotICAgICAgICBpZiAoIXN0cmVhbSkgewot
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsKLSAg
ICAgICAgfQotICAgICAgICBGUy5jaG93bihzdHJlYW0ubm9kZSwgdWlkLCBnaWQpOwotICAgICAg
fSx0cnVuY2F0ZTpmdW5jdGlvbiAocGF0aCwgbGVuKSB7Ci0gICAgICAgIGlmIChsZW4gPCAwKSB7
Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsK
LSAgICAgICAgfQotICAgICAgICB2YXIgbm9kZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09
PSAnc3RyaW5nJykgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgs
IHsgZm9sbG93OiB0cnVlIH0pOwotICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICBub2RlID0gcGF0aDsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoIW5vZGUubm9kZV9vcHMuc2V0YXR0cikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNE
aXIobm9kZS5tb2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVJU0RJUik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFGUy5pc0ZpbGUobm9kZS5t
b2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJ
TlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGVyciA9IEZTLm5vZGVQZXJtaXNzaW9ucyhu
b2RlLCAndycpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBub2RlLm5vZGVfb3BzLnNldGF0dHIo
bm9kZSwgewotICAgICAgICAgIHNpemU6IGxlbiwKLSAgICAgICAgICB0aW1lc3RhbXA6IERhdGUu
bm93KCkKLSAgICAgICAgfSk7Ci0gICAgICB9LGZ0cnVuY2F0ZTpmdW5jdGlvbiAoZmQsIGxlbikg
ewotICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAgICAgaWYgKCFz
dHJlYW0pIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
QkFERik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0gMCkg
ewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7
Ci0gICAgICAgIH0KLSAgICAgICAgRlMudHJ1bmNhdGUoc3RyZWFtLm5vZGUsIGxlbik7Ci0gICAg
ICB9LHV0aW1lOmZ1bmN0aW9uIChwYXRoLCBhdGltZSwgbXRpbWUpIHsKLSAgICAgICAgdmFyIGxv
b2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6IHRydWUgfSk7Ci0gICAgICAgIHZh
ciBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIG5vZGUubm9kZV9vcHMuc2V0YXR0cihub2Rl
LCB7Ci0gICAgICAgICAgdGltZXN0YW1wOiBNYXRoLm1heChhdGltZSwgbXRpbWUpCi0gICAgICAg
IH0pOwotICAgICAgfSxvcGVuOmZ1bmN0aW9uIChwYXRoLCBmbGFncywgbW9kZSwgZmRfc3RhcnQs
IGZkX2VuZCkgewotICAgICAgICBwYXRoID0gUEFUSC5ub3JtYWxpemUocGF0aCk7Ci0gICAgICAg
IGZsYWdzID0gdHlwZW9mIGZsYWdzID09PSAnc3RyaW5nJyA/IEZTLm1vZGVTdHJpbmdUb0ZsYWdz
KGZsYWdzKSA6IGZsYWdzOwotICAgICAgICBtb2RlID0gdHlwZW9mIG1vZGUgPT09ICd1bmRlZmlu
ZWQnID8gMDY2NiA6IG1vZGU7Ci0gICAgICAgIGlmICgoZmxhZ3MgJiA1MTIpKSB7Ci0gICAgICAg
ICAgbW9kZSA9IChtb2RlICYgNDA5NSkgfCAwMTAwMDAwOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgIG1vZGUgPSAwOwotICAgICAgICB9Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICB0
cnkgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsKLSAgICAg
ICAgICAgIGZvbGxvdzogIShmbGFncyAmIDAyMDAwMDApCi0gICAgICAgICAgfSk7Ci0gICAgICAg
ICAgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgIHBhdGggPSBsb29rdXAucGF0aDsKLSAg
ICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIC8vIGlnbm9yZQotICAgICAgICB9Ci0gICAg
ICAgIC8vIHBlcmhhcHMgd2UgbmVlZCB0byBjcmVhdGUgdGhlIG5vZGUKLSAgICAgICAgaWYgKChm
bGFncyAmIDUxMikpIHsKLSAgICAgICAgICBpZiAobm9kZSkgewotICAgICAgICAgICAgLy8gaWYg
T19DUkVBVCBhbmQgT19FWENMIGFyZSBzZXQsIGVycm9yIG91dCBpZiB0aGUgbm9kZSBhbHJlYWR5
IGV4aXN0cwotICAgICAgICAgICAgaWYgKChmbGFncyAmIDIwNDgpKSB7Ci0gICAgICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVFWElTVCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIG5vZGUgZG9lc24ndCBleGlz
dCwgdHJ5IHRvIGNyZWF0ZSBpdAotICAgICAgICAgICAgbm9kZSA9IEZTLm1rbm9kKHBhdGgsIG1v
ZGUsIDApOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoIW5vZGUpIHsKLSAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9FTlQpOwotICAg
ICAgICB9Ci0gICAgICAgIC8vIGNhbid0IHRydW5jYXRlIGEgZGV2aWNlCi0gICAgICAgIGlmIChG
Uy5pc0NocmRldihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgZmxhZ3MgJj0gfjEwMjQ7Ci0gICAg
ICAgIH0KLSAgICAgICAgLy8gY2hlY2sgcGVybWlzc2lvbnMKLSAgICAgICAgdmFyIGVyciA9IEZT
Lm1heU9wZW4obm9kZSwgZmxhZ3MpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICAvLyBkbyB0cnVu
Y2F0aW9uIGlmIG5lY2Vzc2FyeQotICAgICAgICBpZiAoKGZsYWdzICYgMTAyNCkpIHsKLSAgICAg
ICAgICBGUy50cnVuY2F0ZShub2RlLCAwKTsKLSAgICAgICAgfQotICAgICAgICAvLyByZWdpc3Rl
ciB0aGUgc3RyZWFtIHdpdGggdGhlIGZpbGVzeXN0ZW0KLSAgICAgICAgdmFyIHN0cmVhbSA9IEZT
LmNyZWF0ZVN0cmVhbSh7Ci0gICAgICAgICAgcGF0aDogcGF0aCwKLSAgICAgICAgICBub2RlOiBu
b2RlLAotICAgICAgICAgIGZsYWdzOiBmbGFncywKLSAgICAgICAgICBzZWVrYWJsZTogdHJ1ZSwK
LSAgICAgICAgICBwb3NpdGlvbjogMCwKLSAgICAgICAgICBzdHJlYW1fb3BzOiBub2RlLnN0cmVh
bV9vcHMsCi0gICAgICAgICAgLy8gdXNlZCBieSB0aGUgZmlsZSBmYW1pbHkgbGliYyBjYWxscyAo
Zm9wZW4sIGZ3cml0ZSwgZmVycm9yLCBldGMuKQotICAgICAgICAgIHVuZ290dGVuOiBbXSwKLSAg
ICAgICAgICBlcnJvcjogZmFsc2UKLSAgICAgICAgfSwgZmRfc3RhcnQsIGZkX2VuZCk7Ci0gICAg
ICAgIC8vIGNhbGwgdGhlIG5ldyBzdHJlYW0ncyBvcGVuIGZ1bmN0aW9uCi0gICAgICAgIGlmIChz
dHJlYW0uc3RyZWFtX29wcy5vcGVuKSB7Ci0gICAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMub3Bl
bihzdHJlYW0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBzdHJlYW07Ci0gICAgICB9LGNs
b3NlOmZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBpZiAoc3Ry
ZWFtLnN0cmVhbV9vcHMuY2xvc2UpIHsKLSAgICAgICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLmNs
b3NlKHN0cmVhbSk7Ci0gICAgICAgICAgfQotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
ICAgdGhyb3cgZTsKLSAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgICBGUy5jbG9zZVN0cmVh
bShzdHJlYW0uZmQpOwotICAgICAgICB9Ci0gICAgICB9LGxsc2VlazpmdW5jdGlvbiAoc3RyZWFt
LCBvZmZzZXQsIHdoZW5jZSkgewotICAgICAgICBpZiAoIXN0cmVhbS5zZWVrYWJsZSB8fCAhc3Ry
ZWFtLnN0cmVhbV9vcHMubGxzZWVrKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRVNQSVBFKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gc3RyZWFt
LnN0cmVhbV9vcHMubGxzZWVrKHN0cmVhbSwgb2Zmc2V0LCB3aGVuY2UpOwotICAgICAgfSxyZWFk
OmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0g
ICAgICAgIGlmIChsZW5ndGggPCAwIHx8IHBvc2l0aW9uIDwgMCkgewotICAgICAgICAgIHRocm93
IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0gMSkgewotICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
RlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghc3Ry
ZWFtLnN0cmVhbV9vcHMucmVhZCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9y
KEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHNlZWtpbmcgPSB0
cnVlOwotICAgICAgICBpZiAodHlwZW9mIHBvc2l0aW9uID09PSAndW5kZWZpbmVkJykgewotICAg
ICAgICAgIHBvc2l0aW9uID0gc3RyZWFtLnBvc2l0aW9uOwotICAgICAgICAgIHNlZWtpbmcgPSBm
YWxzZTsKLSAgICAgICAgfSBlbHNlIGlmICghc3RyZWFtLnNlZWthYmxlKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVNQSVBFKTsKLSAgICAgICAgfQot
ICAgICAgICB2YXIgYnl0ZXNSZWFkID0gc3RyZWFtLnN0cmVhbV9vcHMucmVhZChzdHJlYW0sIGJ1
ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKTsKLSAgICAgICAgaWYgKCFzZWVraW5nKSBz
dHJlYW0ucG9zaXRpb24gKz0gYnl0ZXNSZWFkOwotICAgICAgICByZXR1cm4gYnl0ZXNSZWFkOwot
ICAgICAgfSx3cml0ZTpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBw
b3NpdGlvbikgewotICAgICAgICBpZiAobGVuZ3RoIDwgMCB8fCBwb3NpdGlvbiA8IDApIHsKLSAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAg
ICAgICB9Ci0gICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDApIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKEZTLmlzRGlyKHN0cmVhbS5ub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlTRElSKTsKLSAgICAgICAgfQotICAg
ICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLndyaXRlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICB2
YXIgc2Vla2luZyA9IHRydWU7Ci0gICAgICAgIGlmICh0eXBlb2YgcG9zaXRpb24gPT09ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgICAgcG9zaXRpb24gPSBzdHJlYW0ucG9zaXRpb247Ci0gICAgICAg
ICAgc2Vla2luZyA9IGZhbHNlOwotICAgICAgICB9IGVsc2UgaWYgKCFzdHJlYW0uc2Vla2FibGUp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUp
OwotICAgICAgICB9Ci0gICAgICAgIGlmIChzdHJlYW0uZmxhZ3MgJiA4KSB7Ci0gICAgICAgICAg
Ly8gc2VlayB0byB0aGUgZW5kIGJlZm9yZSB3cml0aW5nIGluIGFwcGVuZCBtb2RlCi0gICAgICAg
ICAgRlMubGxzZWVrKHN0cmVhbSwgMCwgMik7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGJ5dGVz
V3JpdHRlbiA9IHN0cmVhbS5zdHJlYW1fb3BzLndyaXRlKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQs
IGxlbmd0aCwgcG9zaXRpb24pOwotICAgICAgICBpZiAoIXNlZWtpbmcpIHN0cmVhbS5wb3NpdGlv
biArPSBieXRlc1dyaXR0ZW47Ci0gICAgICAgIHJldHVybiBieXRlc1dyaXR0ZW47Ci0gICAgICB9
LGFsbG9jYXRlOmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNldCwgbGVuZ3RoKSB7Ci0gICAgICAgIGlm
IChvZmZzZXQgPCAwIHx8IGxlbmd0aCA8PSAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKHN0
cmVhbS5mbGFncyAmIDMpID09PSAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghRlMuaXNGaWxl
KHN0cmVhbS5ub2RlLm1vZGUpICYmICFGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PREVWKTsKLSAgICAgICAgfQot
ICAgICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLmFsbG9jYXRlKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU9QTk9UU1VQUCk7Ci0gICAgICAgIH0K
LSAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMuYWxsb2NhdGUoc3RyZWFtLCBvZmZzZXQsIGxlbmd0
aCk7Ci0gICAgICB9LG1tYXA6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0
aCwgcG9zaXRpb24sIHByb3QsIGZsYWdzKSB7Ci0gICAgICAgIC8vIFRPRE8gaWYgUFJPVCBpcyBQ
Uk9UX1dSSVRFLCBtYWtlIHN1cmUgd2UgaGF2ZSB3cml0ZSBhY2Nlc3MKLSAgICAgICAgaWYgKChz
dHJlYW0uZmxhZ3MgJiAzKSA9PT0gMSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVBQ0NFUyk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFzdHJlYW0u
c3RyZWFtX29wcy5tbWFwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLmVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRU5PREVWKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gc3RyZWFtLnN0cmVh
bV9vcHMubW1hcChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uLCBwcm90
LCBmbGFncyk7Ci0gICAgICB9fTsKLSAgZnVuY3Rpb24gX3NlbmQoZmQsIGJ1ZiwgbGVuLCBmbGFn
cykgewotICAgICAgdmFyIGluZm8gPSBGUy5nZXRTdHJlYW0oZmQpOwotICAgICAgaWYgKCFpbmZv
KSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0
dXJuIC0xOwotICAgICAgfQotICAgICAgaWYgKGluZm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdl
YlNvY2tldC5DTE9TSU5HIHx8IGluZm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5D
TE9TRUQpIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRU5PVENPTk4pOwotICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgICB9IGVsc2UgaWYgKGluZm8uc29ja2V0LnJlYWR5U3RhdGUg
PT09IFdlYlNvY2tldC5DT05ORUNUSU5HKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NP
REVTLkVBR0FJTik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIGluZm8uc2Vu
ZGVyKEhFQVBVOC5zdWJhcnJheShidWYsIGJ1ZitsZW4pKTsKLSAgICAgIHJldHVybiBsZW47Ci0g
ICAgfQotICBmdW5jdGlvbiBfcHdyaXRlKGZpbGRlcywgYnVmLCBuYnl0ZSwgb2Zmc2V0KSB7Ci0g
ICAgICAvLyBzc2l6ZV90IHB3cml0ZShpbnQgZmlsZGVzLCBjb25zdCB2b2lkICpidWYsIHNpemVf
dCBuYnl0ZSwgb2ZmX3Qgb2Zmc2V0KTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5v
cmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3dyaXRlLmh0bWwKLSAgICAgIHZhciBz
dHJlYW0gPSBGUy5nZXRTdHJlYW0oZmlsZGVzKTsKLSAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAg
ICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0dXJuIC0xOwot
ICAgICAgfQotICAgICAgdHJ5IHsKLSAgICAgICAgdmFyIHNsYWIgPSBIRUFQODsKLSAgICAgICAg
cmV0dXJuIEZTLndyaXRlKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0ZSwgb2Zmc2V0KTsKLSAgICAg
IH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgRlMuaGFuZGxlRlNFcnJvcihlKTsKLSAgICAgICAgcmV0
dXJuIC0xOwotICAgICAgfQotICAgIH1mdW5jdGlvbiBfd3JpdGUoZmlsZGVzLCBidWYsIG5ieXRl
KSB7Ci0gICAgICAvLyBzc2l6ZV90IHdyaXRlKGludCBmaWxkZXMsIGNvbnN0IHZvaWQgKmJ1Ziwg
c2l6ZV90IG5ieXRlKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5l
cHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3dyaXRlLmh0bWwKLSAgICAgIHZhciBzdHJlYW0gPSBG
Uy5nZXRTdHJlYW0oZmlsZGVzKTsKLSAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgIF9fX3Nl
dEVyck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQot
ICAgICAgaWYgKHN0cmVhbSAmJiAoJ3NvY2tldCcgaW4gc3RyZWFtKSkgewotICAgICAgICByZXR1
cm4gX3NlbmQoZmlsZGVzLCBidWYsIG5ieXRlLCAwKTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0g
ICAgICAgIHZhciBzbGFiID0gSEVBUDg7Ci0gICAgICAgIHJldHVybiBGUy53cml0ZShzdHJlYW0s
IHNsYWIsIGJ1ZiwgbmJ5dGUpOwotICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBGUy5oYW5k
bGVGU0Vycm9yKGUpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9u
IF9md3JpdGUocHRyLCBzaXplLCBuaXRlbXMsIHN0cmVhbSkgewotICAgICAgLy8gc2l6ZV90IGZ3
cml0ZShjb25zdCB2b2lkICpyZXN0cmljdCBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbml0ZW1z
LCBGSUxFICpyZXN0cmljdCBzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3Vw
Lm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZndyaXRlLmh0bWwKLSAgICAgIHZh
ciBieXRlc1RvV3JpdGUgPSBuaXRlbXMgKiBzaXplOwotICAgICAgaWYgKGJ5dGVzVG9Xcml0ZSA9
PSAwKSByZXR1cm4gMDsKLSAgICAgIHZhciBieXRlc1dyaXR0ZW4gPSBfd3JpdGUoc3RyZWFtLCBw
dHIsIGJ5dGVzVG9Xcml0ZSk7Ci0gICAgICBpZiAoYnl0ZXNXcml0dGVuID09IC0xKSB7Ci0gICAg
ICAgIHZhciBzdHJlYW1PYmogPSBGUy5nZXRTdHJlYW0oc3RyZWFtKTsKLSAgICAgICAgaWYgKHN0
cmVhbU9iaikgc3RyZWFtT2JqLmVycm9yID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAg
ICB9IGVsc2UgewotICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihieXRlc1dyaXR0ZW4gLyBzaXpl
KTsKLSAgICAgIH0KLSAgICB9Ci0gIGZ1bmN0aW9uIF91bmdldGMoYywgc3RyZWFtKSB7Ci0gICAg
ICAvLyBpbnQgdW5nZXRjKGludCBjLCBGSUxFICpzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1
YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvdW5nZXRjLmh0
bWwKLSAgICAgIHN0cmVhbSA9IEZTLmdldFN0cmVhbShzdHJlYW0pOwotICAgICAgaWYgKCFzdHJl
YW0pIHsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgICAgaWYgKGMgPT09IC0xKSB7
Ci0gICAgICAgIC8vIGRvIG5vdGhpbmcgZm9yIEVPRiBjaGFyYWN0ZXIKLSAgICAgICAgcmV0dXJu
IGM7Ci0gICAgICB9Ci0gICAgICBjID0gdW5TaWduKGMgJiAweEZGKTsKLSAgICAgIHN0cmVhbS51
bmdvdHRlbi5wdXNoKGMpOwotICAgICAgc3RyZWFtLmVvZiA9IGZhbHNlOwotICAgICAgcmV0dXJu
IGM7Ci0gICAgfQotICBmdW5jdGlvbiBfcmVjdihmZCwgYnVmLCBsZW4sIGZsYWdzKSB7Ci0gICAg
ICB2YXIgaW5mbyA9IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICBpZiAoIWluZm8pIHsKLSAgICAg
ICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICByZXR1cm4gLTE7Ci0g
ICAgICB9Ci0gICAgICBpZiAoIWluZm8uaGFzRGF0YSgpKSB7Ci0gICAgICAgIGlmIChpbmZvLnNv
Y2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ0xPU0lORyB8fCBpbmZvLnNvY2tldC5yZWFk
eVN0YXRlID09PSBXZWJTb2NrZXQuQ0xPU0VEKSB7Ci0gICAgICAgICAgLy8gc29ja2V0IGhhcyBj
bG9zZWQKLSAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAv
LyBlbHNlLCBvdXIgc29ja2V0IGlzIGluIGEgdmFsaWQgc3RhdGUgYnV0IHRydWx5IGhhcyBub3Ro
aW5nIGF2YWlsYWJsZQotICAgICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVBR0FJTik7
Ci0gICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICB2YXIgYnVm
ZmVyID0gaW5mby5pblF1ZXVlLnNoaWZ0KCk7Ci0gICAgICBpZiAobGVuIDwgYnVmZmVyLmxlbmd0
aCkgewotICAgICAgICBpZiAoaW5mby5zdHJlYW0pIHsKLSAgICAgICAgICAvLyBUaGlzIGlzIHRj
cCAocmVsaWFibGUpLCBzbyBpZiBub3QgYWxsIHdhcyByZWFkLCBrZWVwIGl0Ci0gICAgICAgICAg
aW5mby5pblF1ZXVlLnVuc2hpZnQoYnVmZmVyLnN1YmFycmF5KGxlbikpOwotICAgICAgICB9Ci0g
ICAgICAgIGJ1ZmZlciA9IGJ1ZmZlci5zdWJhcnJheSgwLCBsZW4pOwotICAgICAgfQotICAgICAg
SEVBUFU4LnNldChidWZmZXIsIGJ1Zik7Ci0gICAgICByZXR1cm4gYnVmZmVyLmxlbmd0aDsKLSAg
ICB9Ci0gIGZ1bmN0aW9uIF9wcmVhZChmaWxkZXMsIGJ1ZiwgbmJ5dGUsIG9mZnNldCkgewotICAg
ICAgLy8gc3NpemVfdCBwcmVhZChpbnQgZmlsZGVzLCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSwg
b2ZmX3Qgb2Zmc2V0KTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5l
cHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3JlYWQuaHRtbAotICAgICAgdmFyIHN0cmVhbSA9IEZT
LmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgX19fc2V0
RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0g
ICAgICB0cnkgewotICAgICAgICB2YXIgc2xhYiA9IEhFQVA4OwotICAgICAgICByZXR1cm4gRlMu
cmVhZChzdHJlYW0sIHNsYWIsIGJ1ZiwgbmJ5dGUsIG9mZnNldCk7Ci0gICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgIEZTLmhhbmRsZUZTRXJyb3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAg
ICAgIH0KLSAgICB9ZnVuY3Rpb24gX3JlYWQoZmlsZGVzLCBidWYsIG5ieXRlKSB7Ci0gICAgICAv
LyBzc2l6ZV90IHJlYWQoaW50IGZpbGRlcywgdm9pZCAqYnVmLCBzaXplX3QgbmJ5dGUpOwotICAg
ICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5j
dGlvbnMvcmVhZC5odG1sCi0gICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7
Ci0gICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5F
QkFERik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIGlmIChzdHJlYW0gJiYg
KCdzb2NrZXQnIGluIHN0cmVhbSkpIHsKLSAgICAgICAgcmV0dXJuIF9yZWN2KGZpbGRlcywgYnVm
LCBuYnl0ZSwgMCk7Ci0gICAgICB9Ci0gICAgICB0cnkgewotICAgICAgICB2YXIgc2xhYiA9IEhF
QVA4OwotICAgICAgICByZXR1cm4gRlMucmVhZChzdHJlYW0sIHNsYWIsIGJ1ZiwgbmJ5dGUpOwot
ICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBGUy5oYW5kbGVGU0Vycm9yKGUpOwotICAgICAg
ICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF9mcmVhZChwdHIsIHNpemUsIG5p
dGVtcywgc3RyZWFtKSB7Ci0gICAgICAvLyBzaXplX3QgZnJlYWQodm9pZCAqcmVzdHJpY3QgcHRy
LCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5pdGVtcywgRklMRSAqcmVzdHJpY3Qgc3RyZWFtKTsKLSAg
ICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVu
Y3Rpb25zL2ZyZWFkLmh0bWwKLSAgICAgIHZhciBieXRlc1RvUmVhZCA9IG5pdGVtcyAqIHNpemU7
Ci0gICAgICBpZiAoYnl0ZXNUb1JlYWQgPT0gMCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICAg
IH0KLSAgICAgIHZhciBieXRlc1JlYWQgPSAwOwotICAgICAgdmFyIHN0cmVhbU9iaiA9IEZTLmdl
dFN0cmVhbShzdHJlYW0pOwotICAgICAgd2hpbGUgKHN0cmVhbU9iai51bmdvdHRlbi5sZW5ndGgg
JiYgYnl0ZXNUb1JlYWQgPiAwKSB7Ci0gICAgICAgIEhFQVA4WygocHRyKyspfDApXT1zdHJlYW1P
YmoudW5nb3R0ZW4ucG9wKCkKLSAgICAgICAgYnl0ZXNUb1JlYWQtLTsKLSAgICAgICAgYnl0ZXNS
ZWFkKys7Ci0gICAgICB9Ci0gICAgICB2YXIgZXJyID0gX3JlYWQoc3RyZWFtLCBwdHIsIGJ5dGVz
VG9SZWFkKTsKLSAgICAgIGlmIChlcnIgPT0gLTEpIHsKLSAgICAgICAgaWYgKHN0cmVhbU9iaikg
c3RyZWFtT2JqLmVycm9yID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9Ci0gICAg
ICBieXRlc1JlYWQgKz0gZXJyOwotICAgICAgaWYgKGJ5dGVzUmVhZCA8IGJ5dGVzVG9SZWFkKSBz
dHJlYW1PYmouZW9mID0gdHJ1ZTsKLSAgICAgIHJldHVybiBNYXRoLmZsb29yKGJ5dGVzUmVhZCAv
IHNpemUpOwotICAgIH1mdW5jdGlvbiBfZmdldGMoc3RyZWFtKSB7Ci0gICAgICAvLyBpbnQgZmdl
dGMoRklMRSAqc3RyZWFtKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25s
aW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL2ZnZXRjLmh0bWwKLSAgICAgIHZhciBzdHJlYW1P
YmogPSBGUy5nZXRTdHJlYW0oc3RyZWFtKTsKLSAgICAgIGlmICghc3RyZWFtT2JqKSByZXR1cm4g
LTE7Ci0gICAgICBpZiAoc3RyZWFtT2JqLmVvZiB8fCBzdHJlYW1PYmouZXJyb3IpIHJldHVybiAt
MTsKLSAgICAgIHZhciByZXQgPSBfZnJlYWQoX2ZnZXRjLnJldCwgMSwgMSwgc3RyZWFtKTsKLSAg
ICAgIGlmIChyZXQgPT0gMCkgewotICAgICAgICBzdHJlYW1PYmouZW9mID0gdHJ1ZTsKLSAgICAg
ICAgcmV0dXJuIC0xOwotICAgICAgfSBlbHNlIGlmIChyZXQgPT0gLTEpIHsKLSAgICAgICAgc3Ry
ZWFtT2JqLmVycm9yID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfSBlbHNlIHsK
LSAgICAgICAgcmV0dXJuIEhFQVBVOFsoKF9mZ2V0Yy5yZXQpfDApXTsKLSAgICAgIH0KLSAgICB9
dmFyIF9nZXRjPV9mZ2V0YzsKLSAgZnVuY3Rpb24gX19fY3hhX3B1cmVfdmlydHVhbCgpIHsKLSAg
ICAgIEFCT1JUID0gdHJ1ZTsKLSAgICAgIHRocm93ICdQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2Fs
bGVkISc7Ci0gICAgfQotICBmdW5jdGlvbiBfX19lcnJub19sb2NhdGlvbigpIHsKLSAgICAgIHJl
dHVybiBfX19lcnJub19zdGF0ZTsKLSAgICB9dmFyIF9fX2Vycm5vPV9fX2Vycm5vX2xvY2F0aW9u
OwotICB2YXIgX2xsdm1fbWVtc2V0X3AwaThfaTMyPV9tZW1zZXQ7Ci0gIE1vZHVsZVsiX3N0cmxl
biJdID0gX3N0cmxlbjsKLSAgZnVuY3Rpb24gX3N0cmVycm9yX3IoZXJybnVtLCBzdHJlcnJidWYs
IGJ1ZmxlbikgewotICAgICAgaWYgKGVycm51bSBpbiBFUlJOT19NRVNTQUdFUykgewotICAgICAg
ICBpZiAoRVJSTk9fTUVTU0FHRVNbZXJybnVtXS5sZW5ndGggPiBidWZsZW4gLSAxKSB7Ci0gICAg
ICAgICAgcmV0dXJuIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVSQU5HRSk7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgdmFyIG1zZyA9IEVSUk5PX01FU1NBR0VTW2Vycm51bV07Ci0gICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtc2cubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAg
IEhFQVA4WygoKHN0cmVycmJ1ZikrKGkpKXwwKV09bXNnLmNoYXJDb2RlQXQoaSkKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgSEVBUDhbKCgoc3RyZXJyYnVmKSsoaSkpfDApXT0wCi0gICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBfX19z
ZXRFcnJObyhFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgfQotICAgIH1mdW5jdGlvbiBfc3Ry
ZXJyb3IoZXJybnVtKSB7Ci0gICAgICBpZiAoIV9zdHJlcnJvci5idWZmZXIpIF9zdHJlcnJvci5i
dWZmZXIgPSBfbWFsbG9jKDI1Nik7Ci0gICAgICBfc3RyZXJyb3JfcihlcnJudW0sIF9zdHJlcnJv
ci5idWZmZXIsIDI1Nik7Ci0gICAgICByZXR1cm4gX3N0cmVycm9yLmJ1ZmZlcjsKLSAgICB9Ci0g
IGZ1bmN0aW9uIF9hYm9ydCgpIHsKLSAgICAgIE1vZHVsZVsnYWJvcnQnXSgpOwotICAgIH0KLSAg
ZnVuY3Rpb24gX19yZWFsbHlOZWdhdGl2ZSh4KSB7Ci0gICAgICByZXR1cm4geCA8IDAgfHwgKHgg
PT09IDAgJiYgKDEveCkgPT09IC1JbmZpbml0eSk7Ci0gICAgfWZ1bmN0aW9uIF9fZm9ybWF0U3Ry
aW5nKGZvcm1hdCwgdmFyYXJncykgewotICAgICAgdmFyIHRleHRJbmRleCA9IGZvcm1hdDsKLSAg
ICAgIHZhciBhcmdJbmRleCA9IDA7Ci0gICAgICBmdW5jdGlvbiBnZXROZXh0QXJnKHR5cGUpIHsK
LSAgICAgICAgLy8gTk9URTogRXhwbGljaXRseSBpZ25vcmluZyB0eXBlIHNhZmV0eS4gT3RoZXJ3
aXNlIHRoaXMgZmFpbHM6Ci0gICAgICAgIC8vICAgICAgIGludCB4ID0gNDsgcHJpbnRmKCIlY1xu
IiwgKGNoYXIpeCk7Ci0gICAgICAgIHZhciByZXQ7Ci0gICAgICAgIGlmICh0eXBlID09PSAnZG91
YmxlJykgewotICAgICAgICAgIHJldCA9IEhFQVBGNjRbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+
PjMpXTsKLSAgICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdpNjQnKSB7Ci0gICAgICAgICAgcmV0
ID0gW0hFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+MildLAotICAgICAgICAgICAgICAg
ICBIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KzgpKT4+MildXTsKLSAgICAgICAgICBhcmdJ
bmRleCArPSA4OyAvLyBlYWNoIDMyLWJpdCBjaHVuayBpcyBpbiBhIDY0LWJpdCBibG9jawotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgIHR5cGUgPSAnaTMyJzsgLy8gdmFyYXJncyBhcmUgYWx3
YXlzIGkzMiwgaTY0LCBvciBkb3VibGUKLSAgICAgICAgICByZXQgPSBIRUFQMzJbKCgodmFyYXJn
cykrKGFyZ0luZGV4KSk+PjIpXTsKLSAgICAgICAgfQotICAgICAgICBhcmdJbmRleCArPSBNYXRo
Lm1heChSdW50aW1lLmdldE5hdGl2ZUZpZWxkU2l6ZSh0eXBlKSwgUnVudGltZS5nZXRBbGlnblNp
emUodHlwZSwgbnVsbCwgdHJ1ZSkpOwotICAgICAgICByZXR1cm4gcmV0OwotICAgICAgfQotICAg
ICAgdmFyIHJldCA9IFtdOwotICAgICAgdmFyIGN1cnIsIG5leHQsIGN1cnJBcmc7Ci0gICAgICB3
aGlsZSgxKSB7Ci0gICAgICAgIHZhciBzdGFydFRleHRJbmRleCA9IHRleHRJbmRleDsKLSAgICAg
ICAgY3VyciA9IEhFQVA4Wyh0ZXh0SW5kZXgpXTsKLSAgICAgICAgaWYgKGN1cnIgPT09IDApIGJy
ZWFrOwotICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICBp
ZiAoY3VyciA9PSAzNykgewotICAgICAgICAgIC8vIEhhbmRsZSBmbGFncy4KLSAgICAgICAgICB2
YXIgZmxhZ0Fsd2F5c1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAgIHZhciBmbGFnTGVmdEFsaWdu
ID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGZsYWdBbHRlcm5hdGl2ZSA9IGZhbHNlOwotICAgICAg
ICAgIHZhciBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAgICAgIGZsYWdzTG9vcDogd2hpbGUg
KDEpIHsKLSAgICAgICAgICAgIHN3aXRjaCAobmV4dCkgewotICAgICAgICAgICAgICBjYXNlIDQz
OgotICAgICAgICAgICAgICAgIGZsYWdBbHdheXNTaWduZWQgPSB0cnVlOwotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICBjYXNlIDQ1OgotICAgICAgICAgICAgICAgIGZsYWdM
ZWZ0QWxpZ24gPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICBj
YXNlIDM1OgotICAgICAgICAgICAgICAgIGZsYWdBbHRlcm5hdGl2ZSA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIGNhc2UgNDg6Ci0gICAgICAgICAgICAgICAg
aWYgKGZsYWdaZXJvUGFkKSB7Ci0gICAgICAgICAgICAgICAgICBicmVhayBmbGFnc0xvb3A7Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGZsYWdaZXJvUGFkID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBicmVhayBmbGFnc0xvb3A7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgIG5leHQgPSBI
RUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIEhhbmRs
ZSB3aWR0aC4KLSAgICAgICAgICB2YXIgd2lkdGggPSAwOwotICAgICAgICAgIGlmIChuZXh0ID09
IDQyKSB7Ci0gICAgICAgICAgICB3aWR0aCA9IGdldE5leHRBcmcoJ2kzMicpOwotICAgICAgICAg
ICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8
MCldOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB3aGlsZSAobmV4dCA+PSA0OCAm
JiBuZXh0IDw9IDU3KSB7Ci0gICAgICAgICAgICAgIHdpZHRoID0gd2lkdGggKiAxMCArIChuZXh0
IC0gNDgpOwotICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgbmV4dCA9
IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0g
ICAgICAgICAgLy8gSGFuZGxlIHByZWNpc2lvbi4KLSAgICAgICAgICB2YXIgcHJlY2lzaW9uU2V0
ID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKG5leHQgPT0gNDYpIHsKLSAgICAgICAgICAgIHZhciBw
cmVjaXNpb24gPSAwOwotICAgICAgICAgICAgcHJlY2lzaW9uU2V0ID0gdHJ1ZTsKLSAgICAgICAg
ICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEp
fDApXTsKLSAgICAgICAgICAgIGlmIChuZXh0ID09IDQyKSB7Ci0gICAgICAgICAgICAgIHByZWNp
c2lvbiA9IGdldE5leHRBcmcoJ2kzMicpOwotICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHdoaWxlKDEpIHsKLSAgICAgICAgICAg
ICAgICB2YXIgcHJlY2lzaW9uQ2hyID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAg
ICAgICAgICAgIGlmIChwcmVjaXNpb25DaHIgPCA0OCB8fAotICAgICAgICAgICAgICAgICAgICBw
cmVjaXNpb25DaHIgPiA1NykgYnJlYWs7Ci0gICAgICAgICAgICAgICAgcHJlY2lzaW9uID0gcHJl
Y2lzaW9uICogMTAgKyAocHJlY2lzaW9uQ2hyIC0gNDgpOwotICAgICAgICAgICAgICAgIHRleHRJ
bmRleCsrOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBuZXh0
ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICB2YXIgcHJlY2lzaW9uID0gNjsgLy8gU3RhbmRhcmQgZGVmYXVsdC4KLSAgICAgICAgICB9
Ci0gICAgICAgICAgLy8gSGFuZGxlIGludGVnZXIgc2l6ZXMuIFdBUk5JTkc6IFRoZXNlIGFzc3Vt
ZSBhIDMyLWJpdCBhcmNoaXRlY3R1cmUhCi0gICAgICAgICAgdmFyIGFyZ1NpemU7Ci0gICAgICAg
ICAgc3dpdGNoIChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKSB7Ci0gICAgICAgICAgICBjYXNl
ICdoJzoKLSAgICAgICAgICAgICAgdmFyIG5leHROZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMil8
MCldOwotICAgICAgICAgICAgICBpZiAobmV4dE5leHQgPT0gMTA0KSB7Ci0gICAgICAgICAgICAg
ICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICAgICAgYXJnU2l6ZSA9IDE7IC8vIGNoYXIgKGFj
dHVhbGx5IGkzMiBpbiB2YXJhcmdzKQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIGFyZ1NpemUgPSAyOyAvLyBzaG9ydCAoYWN0dWFsbHkgaTMyIGluIHZhcmFyZ3MpCi0g
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICds
JzoKLSAgICAgICAgICAgICAgdmFyIG5leHROZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMil8MCld
OwotICAgICAgICAgICAgICBpZiAobmV4dE5leHQgPT0gMTA4KSB7Ci0gICAgICAgICAgICAgICAg
dGV4dEluZGV4Kys7Ci0gICAgICAgICAgICAgICAgYXJnU2l6ZSA9IDg7IC8vIGxvbmcgbG9uZwot
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFyZ1NpemUgPSA0OyAvLyBs
b25nCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBj
YXNlICdMJzogLy8gbG9uZyBsb25nCi0gICAgICAgICAgICBjYXNlICdxJzogLy8gaW50NjRfdAot
ICAgICAgICAgICAgY2FzZSAnaic6IC8vIGludG1heF90Ci0gICAgICAgICAgICAgIGFyZ1NpemUg
PSA4OwotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ3onOiAvLyBzaXpl
X3QKLSAgICAgICAgICAgIGNhc2UgJ3QnOiAvLyBwdHJkaWZmX3QKLSAgICAgICAgICAgIGNhc2Ug
J0knOiAvLyBzaWduZWQgcHRyZGlmZl90IG9yIHVuc2lnbmVkIHNpemVfdAotICAgICAgICAgICAg
ICBhcmdTaXplID0gNDsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgICBhcmdTaXplID0gbnVsbDsKLSAgICAgICAgICB9Ci0gICAgICAgICAg
aWYgKGFyZ1NpemUpIHRleHRJbmRleCsrOwotICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJ
bmRleCsxKXwwKV07Ci0gICAgICAgICAgLy8gSGFuZGxlIHR5cGUgc3BlY2lmaWVyLgotICAgICAg
ICAgIHN3aXRjaCAoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSkgewotICAgICAgICAgICAgY2Fz
ZSAnZCc6IGNhc2UgJ2knOiBjYXNlICd1JzogY2FzZSAnbyc6IGNhc2UgJ3gnOiBjYXNlICdYJzog
Y2FzZSAncCc6IHsKLSAgICAgICAgICAgICAgLy8gSW50ZWdlci4KLSAgICAgICAgICAgICAgdmFy
IHNpZ25lZCA9IG5leHQgPT0gMTAwIHx8IG5leHQgPT0gMTA1OwotICAgICAgICAgICAgICBhcmdT
aXplID0gYXJnU2l6ZSB8fCA0OwotICAgICAgICAgICAgICB2YXIgY3VyckFyZyA9IGdldE5leHRB
cmcoJ2knICsgKGFyZ1NpemUgKiA4KSk7Ci0gICAgICAgICAgICAgIHZhciBvcmlnQXJnID0gY3Vy
ckFyZzsKLSAgICAgICAgICAgICAgdmFyIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgIC8vIEZsYXR0
ZW4gaTY0LTEgW2xvdywgaGlnaF0gaW50byBhIChzbGlnaHRseSByb3VuZGVkKSBkb3VibGUKLSAg
ICAgICAgICAgICAgaWYgKGFyZ1NpemUgPT0gOCkgewotICAgICAgICAgICAgICAgIGN1cnJBcmcg
PSBSdW50aW1lLm1ha2VCaWdJbnQoY3VyckFyZ1swXSwgY3VyckFyZ1sxXSwgbmV4dCA9PSAxMTcp
OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIC8vIFRydW5jYXRlIHRvIHJlcXVlc3Rl
ZCBzaXplLgotICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA8PSA0KSB7Ci0gICAgICAgICAgICAg
ICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMjU2LCBhcmdTaXplKSAtIDE7Ci0gICAgICAgICAgICAg
ICAgY3VyckFyZyA9IChzaWduZWQgPyByZVNpZ24gOiB1blNpZ24pKGN1cnJBcmcgJiBsaW1pdCwg
YXJnU2l6ZSAqIDgpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIC8vIEZvcm1hdCB0
aGUgbnVtYmVyLgotICAgICAgICAgICAgICB2YXIgY3VyckFic0FyZyA9IE1hdGguYWJzKGN1cnJB
cmcpOwotICAgICAgICAgICAgICB2YXIgcHJlZml4ID0gJyc7Ci0gICAgICAgICAgICAgIGlmIChu
ZXh0ID09IDEwMCB8fCBuZXh0ID09IDEwNSkgewotICAgICAgICAgICAgICAgIGlmIChhcmdTaXpl
ID09IDggJiYgaTY0TWF0aCkgYXJnVGV4dCA9IGk2NE1hdGguc3RyaW5naWZ5KG9yaWdBcmdbMF0s
IG9yaWdBcmdbMV0sIG51bGwpOyBlbHNlCi0gICAgICAgICAgICAgICAgYXJnVGV4dCA9IHJlU2ln
bihjdXJyQXJnLCA4ICogYXJnU2l6ZSwgMSkudG9TdHJpbmcoMTApOwotICAgICAgICAgICAgICB9
IGVsc2UgaWYgKG5leHQgPT0gMTE3KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGFyZ1NpemUgPT0g
OCAmJiBpNjRNYXRoKSBhcmdUZXh0ID0gaTY0TWF0aC5zdHJpbmdpZnkob3JpZ0FyZ1swXSwgb3Jp
Z0FyZ1sxXSwgdHJ1ZSk7IGVsc2UKLSAgICAgICAgICAgICAgICBhcmdUZXh0ID0gdW5TaWduKGN1
cnJBcmcsIDggKiBhcmdTaXplLCAxKS50b1N0cmluZygxMCk7Ci0gICAgICAgICAgICAgICAgY3Vy
ckFyZyA9IE1hdGguYWJzKGN1cnJBcmcpOwotICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQg
PT0gMTExKSB7Ci0gICAgICAgICAgICAgICAgYXJnVGV4dCA9IChmbGFnQWx0ZXJuYXRpdmUgPyAn
MCcgOiAnJykgKyBjdXJyQWJzQXJnLnRvU3RyaW5nKDgpOwotICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKG5leHQgPT0gMTIwIHx8IG5leHQgPT0gODgpIHsKLSAgICAgICAgICAgICAgICBwcmVmaXgg
PSAoZmxhZ0FsdGVybmF0aXZlICYmIGN1cnJBcmcgIT0gMCkgPyAnMHgnIDogJyc7Ci0gICAgICAg
ICAgICAgICAgaWYgKGFyZ1NpemUgPT0gOCAmJiBpNjRNYXRoKSB7Ci0gICAgICAgICAgICAgICAg
ICBpZiAob3JpZ0FyZ1sxXSkgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKG9yaWdB
cmdbMV0+Pj4wKS50b1N0cmluZygxNik7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBsb3dlciA9
IChvcmlnQXJnWzBdPj4+MCkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAgICAgICAgICB3aGls
ZSAobG93ZXIubGVuZ3RoIDwgOCkgbG93ZXIgPSAnMCcgKyBsb3dlcjsKLSAgICAgICAgICAgICAg
ICAgICAgYXJnVGV4dCArPSBsb3dlcjsKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAob3JpZ0FyZ1swXT4+PjApLnRvU3RyaW5nKDE2KTsK
LSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
ICAgICBpZiAoY3VyckFyZyA8IDApIHsKLSAgICAgICAgICAgICAgICAgIC8vIFJlcHJlc2VudCBu
ZWdhdGl2ZSBudW1iZXJzIGluIGhleCBhcyAyJ3MgY29tcGxlbWVudC4KLSAgICAgICAgICAgICAg
ICAgIGN1cnJBcmcgPSAtY3VyckFyZzsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAoY3Vy
ckFic0FyZyAtIDEpLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAgICAgICAgIHZhciBidWZmZXIg
PSBbXTsKLSAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJnVGV4dC5sZW5n
dGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICBidWZmZXIucHVzaCgoMHhGIC0gcGFyc2VJ
bnQoYXJnVGV4dFtpXSwgMTYpKS50b1N0cmluZygxNikpOwotICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGJ1ZmZlci5qb2luKCcnKTsKLSAgICAgICAgICAg
ICAgICAgIHdoaWxlIChhcmdUZXh0Lmxlbmd0aCA8IGFyZ1NpemUgKiAyKSBhcmdUZXh0ID0gJ2Yn
ICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
YXJnVGV4dCA9IGN1cnJBYnNBcmcudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBpZiAobmV4dCA9PSA4OCkgewotICAgICAgICAgICAgICAgICAgcHJlZml4
ID0gcHJlZml4LnRvVXBwZXJDYXNlKCk7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gYXJn
VGV4dC50b1VwcGVyQ2FzZSgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBl
bHNlIGlmIChuZXh0ID09IDExMikgewotICAgICAgICAgICAgICAgIGlmIChjdXJyQWJzQXJnID09
PSAwKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJyhuaWwpJzsKLSAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHJlZml4ID0gJzB4JzsKLSAgICAgICAg
ICAgICAgICAgIGFyZ1RleHQgPSBjdXJyQWJzQXJnLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKHByZWNpc2lvblNldCkg
ewotICAgICAgICAgICAgICAgIHdoaWxlIChhcmdUZXh0Lmxlbmd0aCA8IHByZWNpc2lvbikgewot
ICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICcwJyArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIC8vIEFkZCBzaWduIGlmIG5lZWRl
ZAotICAgICAgICAgICAgICBpZiAoZmxhZ0Fsd2F5c1NpZ25lZCkgewotICAgICAgICAgICAgICAg
IGlmIChjdXJyQXJnIDwgMCkgewotICAgICAgICAgICAgICAgICAgcHJlZml4ID0gJy0nICsgcHJl
Zml4OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwcmVmaXgg
PSAnKycgKyBwcmVmaXg7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIC8vIEFkZCBwYWRkaW5nLgotICAgICAgICAgICAgICB3aGlsZSAocHJlZml4Lmxl
bmd0aCArIGFyZ1RleHQubGVuZ3RoIDwgd2lkdGgpIHsKLSAgICAgICAgICAgICAgICBpZiAoZmxh
Z0xlZnRBbGlnbikgewotICAgICAgICAgICAgICAgICAgYXJnVGV4dCArPSAnICc7Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIChmbGFnWmVyb1BhZCkgewot
ICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJzAnICsgYXJnVGV4dDsKLSAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHByZWZpeCA9ICcgJyArIHByZWZp
eDsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgLy8gSW5zZXJ0IHRoZSByZXN1bHQgaW50byB0aGUgYnVmZmVyLgot
ICAgICAgICAgICAgICBhcmdUZXh0ID0gcHJlZml4ICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAg
YXJnVGV4dC5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbihjaHIpIHsKLSAgICAgICAgICAgICAg
ICByZXQucHVzaChjaHIuY2hhckNvZGVBdCgwKSk7Ci0gICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJ2YnOiBjYXNl
ICdGJzogY2FzZSAnZSc6IGNhc2UgJ0UnOiBjYXNlICdnJzogY2FzZSAnRyc6IHsKLSAgICAgICAg
ICAgICAgLy8gRmxvYXQuCi0gICAgICAgICAgICAgIHZhciBjdXJyQXJnID0gZ2V0TmV4dEFyZygn
ZG91YmxlJyk7Ci0gICAgICAgICAgICAgIHZhciBhcmdUZXh0OwotICAgICAgICAgICAgICBpZiAo
aXNOYU4oY3VyckFyZykpIHsKLSAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJ25hbic7Ci0gICAg
ICAgICAgICAgICAgZmxhZ1plcm9QYWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgfSBlbHNlIGlm
ICghaXNGaW5pdGUoY3VyckFyZykpIHsKLSAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKGN1cnJB
cmcgPCAwID8gJy0nIDogJycpICsgJ2luZic7Ci0gICAgICAgICAgICAgICAgZmxhZ1plcm9QYWQg
PSBmYWxzZTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB2YXIgaXNH
ZW5lcmFsID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdmFyIGVmZmVjdGl2ZVByZWNpc2lvbiA9
IE1hdGgubWluKHByZWNpc2lvbiwgMjApOwotICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgZy9H
IHRvIGYvRiBvciBlL0UsIGFzIHBlcjoKLSAgICAgICAgICAgICAgICAvLyBodHRwOi8vcHVicy5v
cGVuZ3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS9mdW5jdGlvbnMvcHJpbnRmLmh0bWwK
LSAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSAxMDMgfHwgbmV4dCA9PSA3MSkgewotICAgICAg
ICAgICAgICAgICAgaXNHZW5lcmFsID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgIHByZWNpc2lv
biA9IHByZWNpc2lvbiB8fCAxOwotICAgICAgICAgICAgICAgICAgdmFyIGV4cG9uZW50ID0gcGFy
c2VJbnQoY3VyckFyZy50b0V4cG9uZW50aWFsKGVmZmVjdGl2ZVByZWNpc2lvbikuc3BsaXQoJ2Un
KVsxXSwgMTApOwotICAgICAgICAgICAgICAgICAgaWYgKHByZWNpc2lvbiA+IGV4cG9uZW50ICYm
IGV4cG9uZW50ID49IC00KSB7Ci0gICAgICAgICAgICAgICAgICAgIG5leHQgPSAoKG5leHQgPT0g
MTAzKSA/ICdmJyA6ICdGJykuY2hhckNvZGVBdCgwKTsKLSAgICAgICAgICAgICAgICAgICAgcHJl
Y2lzaW9uIC09IGV4cG9uZW50ICsgMTsKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgIG5leHQgPSAoKG5leHQgPT0gMTAzKSA/ICdlJyA6ICdFJykuY2hhckNv
ZGVBdCgwKTsKLSAgICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uLS07Ci0gICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICBlZmZlY3RpdmVQcmVjaXNpb24gPSBNYXRoLm1pbihw
cmVjaXNpb24sIDIwKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG5l
eHQgPT0gMTAxIHx8IG5leHQgPT0gNjkpIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBj
dXJyQXJnLnRvRXhwb25lbnRpYWwoZWZmZWN0aXZlUHJlY2lzaW9uKTsKLSAgICAgICAgICAgICAg
ICAgIC8vIE1ha2Ugc3VyZSB0aGUgZXhwb25lbnQgaGFzIGF0IGxlYXN0IDIgZGlnaXRzLgotICAg
ICAgICAgICAgICAgICAgaWYgKC9bZUVdWy0rXVxkJC8udGVzdChhcmdUZXh0KSkgewotICAgICAg
ICAgICAgICAgICAgICBhcmdUZXh0ID0gYXJnVGV4dC5zbGljZSgwLCAtMSkgKyAnMCcgKyBhcmdU
ZXh0LnNsaWNlKC0xKTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVs
c2UgaWYgKG5leHQgPT0gMTAyIHx8IG5leHQgPT0gNzApIHsKLSAgICAgICAgICAgICAgICAgIGFy
Z1RleHQgPSBjdXJyQXJnLnRvRml4ZWQoZWZmZWN0aXZlUHJlY2lzaW9uKTsKLSAgICAgICAgICAg
ICAgICAgIGlmIChjdXJyQXJnID09PSAwICYmIF9fcmVhbGx5TmVnYXRpdmUoY3VyckFyZykpIHsK
LSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICctJyArIGFyZ1RleHQ7Ci0gICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZhciBwYXJ0cyA9
IGFyZ1RleHQuc3BsaXQoJ2UnKTsKLSAgICAgICAgICAgICAgICBpZiAoaXNHZW5lcmFsICYmICFm
bGFnQWx0ZXJuYXRpdmUpIHsKLSAgICAgICAgICAgICAgICAgIC8vIERpc2NhcmQgdHJhaWxpbmcg
emVyb3MgYW5kIHBlcmlvZHMuCi0gICAgICAgICAgICAgICAgICB3aGlsZSAocGFydHNbMF0ubGVu
Z3RoID4gMSAmJiBwYXJ0c1swXS5pbmRleE9mKCcuJykgIT0gLTEgJiYKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAocGFydHNbMF0uc2xpY2UoLTEpID09ICcwJyB8fCBwYXJ0c1swXS5zbGljZSgt
MSkgPT0gJy4nKSkgewotICAgICAgICAgICAgICAgICAgICBwYXJ0c1swXSA9IHBhcnRzWzBdLnNs
aWNlKDAsIC0xKTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGhhdmUgYSBwZXJpb2QgaW4gYWx0
ZXJuYXRpdmUgbW9kZS4KLSAgICAgICAgICAgICAgICAgIGlmIChmbGFnQWx0ZXJuYXRpdmUgJiYg
YXJnVGV4dC5pbmRleE9mKCcuJykgPT0gLTEpIHBhcnRzWzBdICs9ICcuJzsKLSAgICAgICAgICAg
ICAgICAgIC8vIFplcm8gcGFkIHVudGlsIHJlcXVpcmVkIHByZWNpc2lvbi4KLSAgICAgICAgICAg
ICAgICAgIHdoaWxlIChwcmVjaXNpb24gPiBlZmZlY3RpdmVQcmVjaXNpb24rKykgcGFydHNbMF0g
Kz0gJzAnOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhcmdUZXh0ID0gcGFy
dHNbMF0gKyAocGFydHMubGVuZ3RoID4gMSA/ICdlJyArIHBhcnRzWzFdIDogJycpOwotICAgICAg
ICAgICAgICAgIC8vIENhcGl0YWxpemUgJ0UnIGlmIG5lZWRlZC4KLSAgICAgICAgICAgICAgICBp
ZiAobmV4dCA9PSA2OSkgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBlckNhc2UoKTsKLSAgICAgICAg
ICAgICAgICAvLyBBZGQgc2lnbi4KLSAgICAgICAgICAgICAgICBpZiAoZmxhZ0Fsd2F5c1NpZ25l
ZCAmJiBjdXJyQXJnID49IDApIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnKycgKyBh
cmdUZXh0OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAvLyBBZGQgcGFkZGluZy4KLSAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwg
d2lkdGgpIHsKLSAgICAgICAgICAgICAgICBpZiAoZmxhZ0xlZnRBbGlnbikgewotICAgICAgICAg
ICAgICAgICAgYXJnVGV4dCArPSAnICc7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgIGlmIChmbGFnWmVyb1BhZCAmJiAoYXJnVGV4dFswXSA9PSAnLScgfHwgYXJn
VGV4dFswXSA9PSAnKycpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBhcmdUZXh0
WzBdICsgJzAnICsgYXJnVGV4dC5zbGljZSgxKTsKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAoZmxhZ1plcm9QYWQgPyAnMCcgOiAnICcp
ICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gQWRqdXN0IGNhc2UuCi0gICAgICAgICAgICAg
IGlmIChuZXh0IDwgOTcpIGFyZ1RleHQgPSBhcmdUZXh0LnRvVXBwZXJDYXNlKCk7Ci0gICAgICAg
ICAgICAgIC8vIEluc2VydCB0aGUgcmVzdWx0IGludG8gdGhlIGJ1ZmZlci4KLSAgICAgICAgICAg
ICAgYXJnVGV4dC5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbihjaHIpIHsKLSAgICAgICAgICAg
ICAgICByZXQucHVzaChjaHIuY2hhckNvZGVBdCgwKSk7Ci0gICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJ3MnOiB7
Ci0gICAgICAgICAgICAgIC8vIFN0cmluZy4KLSAgICAgICAgICAgICAgdmFyIGFyZyA9IGdldE5l
eHRBcmcoJ2k4KicpOwotICAgICAgICAgICAgICB2YXIgYXJnTGVuZ3RoID0gYXJnID8gX3N0cmxl
bihhcmcpIDogJyhudWxsKScubGVuZ3RoOwotICAgICAgICAgICAgICBpZiAocHJlY2lzaW9uU2V0
KSBhcmdMZW5ndGggPSBNYXRoLm1pbihhcmdMZW5ndGgsIHByZWNpc2lvbik7Ci0gICAgICAgICAg
ICAgIGlmICghZmxhZ0xlZnRBbGlnbikgewotICAgICAgICAgICAgICAgIHdoaWxlIChhcmdMZW5n
dGggPCB3aWR0aC0tKSB7Ci0gICAgICAgICAgICAgICAgICByZXQucHVzaCgzMik7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIChhcmcpIHsKLSAg
ICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ0xlbmd0aDsgaSsrKSB7Ci0gICAg
ICAgICAgICAgICAgICByZXQucHVzaChIRUFQVThbKChhcmcrKyl8MCldKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gcmV0
LmNvbmNhdChpbnRBcnJheUZyb21TdHJpbmcoJyhudWxsKScuc3Vic3RyKDAsIGFyZ0xlbmd0aCks
IHRydWUpKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAoZmxhZ0xlZnRBbGln
bikgewotICAgICAgICAgICAgICAgIHdoaWxlIChhcmdMZW5ndGggPCB3aWR0aC0tKSB7Ci0gICAg
ICAgICAgICAgICAgICByZXQucHVzaCgzMik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Y2FzZSAnYyc6IHsKLSAgICAgICAgICAgICAgLy8gQ2hhcmFjdGVyLgotICAgICAgICAgICAgICBp
ZiAoZmxhZ0xlZnRBbGlnbikgcmV0LnB1c2goZ2V0TmV4dEFyZygnaTgnKSk7Ci0gICAgICAgICAg
ICAgIHdoaWxlICgtLXdpZHRoID4gMCkgewotICAgICAgICAgICAgICAgIHJldC5wdXNoKDMyKTsK
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAoIWZsYWdMZWZ0QWxpZ24pIHJldC5w
dXNoKGdldE5leHRBcmcoJ2k4JykpOwotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGNhc2UgJ24nOiB7Ci0gICAgICAgICAgICAgIC8vIFdyaXRlIHRoZSBs
ZW5ndGggd3JpdHRlbiBzbyBmYXIgdG8gdGhlIG5leHQgcGFyYW1ldGVyLgotICAgICAgICAgICAg
ICB2YXIgcHRyID0gZ2V0TmV4dEFyZygnaTMyKicpOwotICAgICAgICAgICAgICBIRUFQMzJbKChw
dHIpPj4yKV09cmV0Lmxlbmd0aAotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGNhc2UgJyUnOiB7Ci0gICAgICAgICAgICAgIC8vIExpdGVyYWwgcGVyY2Vu
dCBzaWduLgotICAgICAgICAgICAgICByZXQucHVzaChjdXJyKTsKLSAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkZWZhdWx0OiB7Ci0gICAgICAgICAgICAg
IC8vIFVua25vd24gc3BlY2lmaWVycyByZW1haW4gdW50b3VjaGVkLgotICAgICAgICAgICAgICBm
b3IgKHZhciBpID0gc3RhcnRUZXh0SW5kZXg7IGkgPCB0ZXh0SW5kZXggKyAyOyBpKyspIHsKLSAg
ICAgICAgICAgICAgICByZXQucHVzaChIRUFQOFsoaSldKTsKLSAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICB0ZXh0SW5kZXggKz0gMjsKLSAgICAg
ICAgICAvLyBUT0RPOiBTdXBwb3J0IGEvQSAoaGV4IGZsb2F0KSBhbmQgbSAobGFzdCBlcnJvcikg
c3BlY2lmaWVycy4KLSAgICAgICAgICAvLyBUT0RPOiBTdXBwb3J0ICUxJHtzcGVjaWZpZXJ9IGZv
ciBhcmcgc2VsZWN0aW9uLgotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJldC5wdXNoKGN1
cnIpOwotICAgICAgICAgIHRleHRJbmRleCArPSAxOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAg
ICByZXR1cm4gcmV0OwotICAgIH1mdW5jdGlvbiBfc25wcmludGYocywgbiwgZm9ybWF0LCB2YXJh
cmdzKSB7Ci0gICAgICAvLyBpbnQgc25wcmludGYoY2hhciAqcmVzdHJpY3Qgcywgc2l6ZV90IG4s
IGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgLi4uKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJz
Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3ByaW50Zi5odG1s
Ci0gICAgICB2YXIgcmVzdWx0ID0gX19mb3JtYXRTdHJpbmcoZm9ybWF0LCB2YXJhcmdzKTsKLSAg
ICAgIHZhciBsaW1pdCA9IChuID09PSB1bmRlZmluZWQpID8gcmVzdWx0Lmxlbmd0aAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBNYXRoLm1pbihyZXN1bHQubGVuZ3RoLCBN
YXRoLm1heChuIC0gMSwgMCkpOwotICAgICAgaWYgKHMgPCAwKSB7Ci0gICAgICAgIHMgPSAtczsK
LSAgICAgICAgdmFyIGJ1ZiA9IF9tYWxsb2MobGltaXQrMSk7Ci0gICAgICAgIEhFQVAzMlsoKHMp
Pj4yKV09YnVmOwotICAgICAgICBzID0gYnVmOwotICAgICAgfQotICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBsaW1pdDsgaSsrKSB7Ci0gICAgICAgIEhFQVA4WygoKHMpKyhpKSl8MCldPXJlc3Vs
dFtpXTsKLSAgICAgIH0KLSAgICAgIGlmIChsaW1pdCA8IG4gfHwgKG4gPT09IHVuZGVmaW5lZCkp
IEhFQVA4WygoKHMpKyhpKSl8MCldPTA7Ci0gICAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aDsKLSAg
ICB9Ci0gIGZ1bmN0aW9uIF9zeXNjb25mKG5hbWUpIHsKLSAgICAgIC8vIGxvbmcgc3lzY29uZihp
bnQgbmFtZSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMv
MDA5Njk1Mzk5L2Z1bmN0aW9ucy9zeXNjb25mLmh0bWwKLSAgICAgIHN3aXRjaChuYW1lKSB7Ci0g
ICAgICAgIGNhc2UgODogcmV0dXJuIFBBR0VfU0laRTsKLSAgICAgICAgY2FzZSA1NDoKLSAgICAg
ICAgY2FzZSA1NjoKLSAgICAgICAgY2FzZSAyMToKLSAgICAgICAgY2FzZSA2MToKLSAgICAgICAg
Y2FzZSA2MzoKLSAgICAgICAgY2FzZSAyMjoKLSAgICAgICAgY2FzZSA2NzoKLSAgICAgICAgY2Fz
ZSAyMzoKLSAgICAgICAgY2FzZSAyNDoKLSAgICAgICAgY2FzZSAyNToKLSAgICAgICAgY2FzZSAy
NjoKLSAgICAgICAgY2FzZSAyNzoKLSAgICAgICAgY2FzZSA2OToKLSAgICAgICAgY2FzZSAyODoK
LSAgICAgICAgY2FzZSAxMDE6Ci0gICAgICAgIGNhc2UgNzA6Ci0gICAgICAgIGNhc2UgNzE6Ci0g
ICAgICAgIGNhc2UgMjk6Ci0gICAgICAgIGNhc2UgMzA6Ci0gICAgICAgIGNhc2UgMTk5OgotICAg
ICAgICBjYXNlIDc1OgotICAgICAgICBjYXNlIDc2OgotICAgICAgICBjYXNlIDMyOgotICAgICAg
ICBjYXNlIDQzOgotICAgICAgICBjYXNlIDQ0OgotICAgICAgICBjYXNlIDgwOgotICAgICAgICBj
YXNlIDQ2OgotICAgICAgICBjYXNlIDQ3OgotICAgICAgICBjYXNlIDQ1OgotICAgICAgICBjYXNl
IDQ4OgotICAgICAgICBjYXNlIDQ5OgotICAgICAgICBjYXNlIDQyOgotICAgICAgICBjYXNlIDgy
OgotICAgICAgICBjYXNlIDMzOgotICAgICAgICBjYXNlIDc6Ci0gICAgICAgIGNhc2UgMTA4Ogot
ICAgICAgICBjYXNlIDEwOToKLSAgICAgICAgY2FzZSAxMDc6Ci0gICAgICAgIGNhc2UgMTEyOgot
ICAgICAgICBjYXNlIDExOToKLSAgICAgICAgY2FzZSAxMjE6Ci0gICAgICAgICAgcmV0dXJuIDIw
MDgwOTsKLSAgICAgICAgY2FzZSAxMzoKLSAgICAgICAgY2FzZSAxMDQ6Ci0gICAgICAgIGNhc2Ug
OTQ6Ci0gICAgICAgIGNhc2UgOTU6Ci0gICAgICAgIGNhc2UgMzQ6Ci0gICAgICAgIGNhc2UgMzU6
Ci0gICAgICAgIGNhc2UgNzc6Ci0gICAgICAgIGNhc2UgODE6Ci0gICAgICAgIGNhc2UgODM6Ci0g
ICAgICAgIGNhc2UgODQ6Ci0gICAgICAgIGNhc2UgODU6Ci0gICAgICAgIGNhc2UgODY6Ci0gICAg
ICAgIGNhc2UgODc6Ci0gICAgICAgIGNhc2UgODg6Ci0gICAgICAgIGNhc2UgODk6Ci0gICAgICAg
IGNhc2UgOTA6Ci0gICAgICAgIGNhc2UgOTE6Ci0gICAgICAgIGNhc2UgOTQ6Ci0gICAgICAgIGNh
c2UgOTU6Ci0gICAgICAgIGNhc2UgMTEwOgotICAgICAgICBjYXNlIDExMToKLSAgICAgICAgY2Fz
ZSAxMTM6Ci0gICAgICAgIGNhc2UgMTE0OgotICAgICAgICBjYXNlIDExNToKLSAgICAgICAgY2Fz
ZSAxMTY6Ci0gICAgICAgIGNhc2UgMTE3OgotICAgICAgICBjYXNlIDExODoKLSAgICAgICAgY2Fz
ZSAxMjA6Ci0gICAgICAgIGNhc2UgNDA6Ci0gICAgICAgIGNhc2UgMTY6Ci0gICAgICAgIGNhc2Ug
Nzk6Ci0gICAgICAgIGNhc2UgMTk6Ci0gICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICBjYXNl
IDkyOgotICAgICAgICBjYXNlIDkzOgotICAgICAgICBjYXNlIDU6Ci0gICAgICAgIGNhc2UgNzI6
Ci0gICAgICAgIGNhc2UgNjoKLSAgICAgICAgY2FzZSA3NDoKLSAgICAgICAgY2FzZSA5MjoKLSAg
ICAgICAgY2FzZSA5MzoKLSAgICAgICAgY2FzZSA5NjoKLSAgICAgICAgY2FzZSA5NzoKLSAgICAg
ICAgY2FzZSA5ODoKLSAgICAgICAgY2FzZSA5OToKLSAgICAgICAgY2FzZSAxMDI6Ci0gICAgICAg
IGNhc2UgMTAzOgotICAgICAgICBjYXNlIDEwNToKLSAgICAgICAgICByZXR1cm4gMTsKLSAgICAg
ICAgY2FzZSAzODoKLSAgICAgICAgY2FzZSA2NjoKLSAgICAgICAgY2FzZSA1MDoKLSAgICAgICAg
Y2FzZSA1MToKLSAgICAgICAgY2FzZSA0OgotICAgICAgICAgIHJldHVybiAxMDI0OwotICAgICAg
ICBjYXNlIDE1OgotICAgICAgICBjYXNlIDY0OgotICAgICAgICBjYXNlIDQxOgotICAgICAgICAg
IHJldHVybiAzMjsKLSAgICAgICAgY2FzZSA1NToKLSAgICAgICAgY2FzZSAzNzoKLSAgICAgICAg
Y2FzZSAxNzoKLSAgICAgICAgICByZXR1cm4gMjE0NzQ4MzY0NzsKLSAgICAgICAgY2FzZSAxODoK
LSAgICAgICAgY2FzZSAxOgotICAgICAgICAgIHJldHVybiA0NzgzOTsKLSAgICAgICAgY2FzZSA1
OToKLSAgICAgICAgY2FzZSA1NzoKLSAgICAgICAgICByZXR1cm4gOTk7Ci0gICAgICAgIGNhc2Ug
Njg6Ci0gICAgICAgIGNhc2UgNTg6Ci0gICAgICAgICAgcmV0dXJuIDIwNDg7Ci0gICAgICAgIGNh
c2UgMDogcmV0dXJuIDIwOTcxNTI7Ci0gICAgICAgIGNhc2UgMzogcmV0dXJuIDY1NTM2OwotICAg
ICAgICBjYXNlIDE0OiByZXR1cm4gMzI3Njg7Ci0gICAgICAgIGNhc2UgNzM6IHJldHVybiAzMjc2
NzsKLSAgICAgICAgY2FzZSAzOTogcmV0dXJuIDE2Mzg0OwotICAgICAgICBjYXNlIDYwOiByZXR1
cm4gMTAwMDsKLSAgICAgICAgY2FzZSAxMDY6IHJldHVybiA3MDA7Ci0gICAgICAgIGNhc2UgNTI6
IHJldHVybiAyNTY7Ci0gICAgICAgIGNhc2UgNjI6IHJldHVybiAyNTU7Ci0gICAgICAgIGNhc2Ug
MjogcmV0dXJuIDEwMDsKLSAgICAgICAgY2FzZSA2NTogcmV0dXJuIDY0OwotICAgICAgICBjYXNl
IDM2OiByZXR1cm4gMjA7Ci0gICAgICAgIGNhc2UgMTAwOiByZXR1cm4gMTY7Ci0gICAgICAgIGNh
c2UgMjA6IHJldHVybiA2OwotICAgICAgICBjYXNlIDUzOiByZXR1cm4gNDsKLSAgICAgICAgY2Fz
ZSAxMDogcmV0dXJuIDE7Ci0gICAgICB9Ci0gICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5F
SU5WQUwpOwotICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgZnVuY3Rpb24gX19fY3hhX2d1YXJk
X2Fib3J0KCkge30KLSAgZnVuY3Rpb24gX2lzeGRpZ2l0KGNocikgewotICAgICAgcmV0dXJuIChj
aHIgPj0gNDggJiYgY2hyIDw9IDU3KSB8fAotICAgICAgICAgICAgIChjaHIgPj0gOTcgJiYgY2hy
IDw9IDEwMikgfHwKLSAgICAgICAgICAgICAoY2hyID49IDY1ICYmIGNociA8PSA3MCk7Ci0gICAg
fXZhciBfaXN4ZGlnaXRfbD1faXN4ZGlnaXQ7Ci0gIGZ1bmN0aW9uIF9pc2RpZ2l0KGNocikgewot
ICAgICAgcmV0dXJuIGNociA+PSA0OCAmJiBjaHIgPD0gNTc7Ci0gICAgfXZhciBfaXNkaWdpdF9s
PV9pc2RpZ2l0OwotICBmdW5jdGlvbiBfX2lzRmxvYXQodGV4dCkgewotICAgICAgcmV0dXJuICEh
KC9eWystXT9bMC05XSpcLj9bMC05XSsoW2VFXVsrLV0/WzAtOV0rKT8kLy5leGVjKHRleHQpKTsK
LSAgICB9ZnVuY3Rpb24gX19zY2FuU3RyaW5nKGZvcm1hdCwgZ2V0LCB1bmdldCwgdmFyYXJncykg
ewotICAgICAgaWYgKCFfX3NjYW5TdHJpbmcud2hpdGVTcGFjZSkgewotICAgICAgICBfX3NjYW5T
dHJpbmcud2hpdGVTcGFjZSA9IHt9OwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsz
Ml0gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVs5XSA9IDE7Ci0gICAgICAg
IF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWzEwXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53
aGl0ZVNwYWNlWzExXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWzEyXSA9
IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWzEzXSA9IDE7Ci0gICAgICAgIF9f
c2NhblN0cmluZy53aGl0ZVNwYWNlWycgJ10gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hp
dGVTcGFjZVsnXHQnXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcbidd
ID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJ1x2J10gPSAxOwotICAgICAg
ICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsnXGYnXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmlu
Zy53aGl0ZVNwYWNlWydcciddID0gMTsKLSAgICAgIH0KLSAgICAgIC8vIFN1cHBvcnRzICV4LCAl
NHgsICVkLiVkLCAlbGxkLCAlcywgJWYsICVsZi4KLSAgICAgIC8vIFRPRE86IFN1cHBvcnQgYWxs
IGZvcm1hdCBzcGVjaWZpZXJzLgotICAgICAgZm9ybWF0ID0gUG9pbnRlcl9zdHJpbmdpZnkoZm9y
bWF0KTsKLSAgICAgIHZhciBzb0ZhciA9IDA7Ci0gICAgICBpZiAoZm9ybWF0LmluZGV4T2YoJyVu
JykgPj0gMCkgewotICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHNvRmFyCi0gICAgICAgIHZhciBf
Z2V0ID0gZ2V0OwotICAgICAgICBnZXQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICBzb0Zhcisr
OwotICAgICAgICAgIHJldHVybiBfZ2V0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIF91bmdl
dCA9IHVuZ2V0OwotICAgICAgICB1bmdldCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgIHNvRmFy
LS07Ci0gICAgICAgICAgcmV0dXJuIF91bmdldCgpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAg
ICB2YXIgZm9ybWF0SW5kZXggPSAwOwotICAgICAgdmFyIGFyZ3NpID0gMDsKLSAgICAgIHZhciBm
aWVsZHMgPSAwOwotICAgICAgdmFyIGFyZ0luZGV4ID0gMDsKLSAgICAgIHZhciBuZXh0OwotICAg
ICAgbWFpbkxvb3A6Ci0gICAgICBmb3IgKHZhciBmb3JtYXRJbmRleCA9IDA7IGZvcm1hdEluZGV4
IDwgZm9ybWF0Lmxlbmd0aDspIHsKLSAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT09
ICclJyAmJiBmb3JtYXRbZm9ybWF0SW5kZXgrMV0gPT0gJ24nKSB7Ci0gICAgICAgICAgdmFyIGFy
Z1B0ciA9IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+MildOwotICAgICAgICAgIGFy
Z0luZGV4ICs9IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKCd2b2lkKicsIG51bGwsIHRydWUpOwotICAg
ICAgICAgIEhFQVAzMlsoKGFyZ1B0cik+PjIpXT1zb0ZhcjsKLSAgICAgICAgICBmb3JtYXRJbmRl
eCArPSAyOwotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChmb3Jt
YXRbZm9ybWF0SW5kZXhdID09PSAnJScpIHsKLSAgICAgICAgICB2YXIgbmV4dEMgPSBmb3JtYXQu
aW5kZXhPZignYycsIGZvcm1hdEluZGV4KzEpOwotICAgICAgICAgIGlmIChuZXh0QyA+IDApIHsK
LSAgICAgICAgICAgIHZhciBtYXh4ID0gMTsKLSAgICAgICAgICAgIGlmIChuZXh0QyA+IGZvcm1h
dEluZGV4KzEpIHsKLSAgICAgICAgICAgICAgdmFyIHN1YiA9IGZvcm1hdC5zdWJzdHJpbmcoZm9y
bWF0SW5kZXgrMSwgbmV4dEMpCi0gICAgICAgICAgICAgIG1heHggPSBwYXJzZUludChzdWIpOwot
ICAgICAgICAgICAgICBpZiAobWF4eCAhPSBzdWIpIG1heHggPSAwOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKG1heHgpIHsKLSAgICAgICAgICAgICAgdmFyIGFyZ1B0ciA9IEhFQVAz
MlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+MildOwotICAgICAgICAgICAgICBhcmdJbmRleCAr
PSBSdW50aW1lLmdldEFsaWduU2l6ZSgndm9pZConLCBudWxsLCB0cnVlKTsKLSAgICAgICAgICAg
ICAgZmllbGRzKys7Ci0gICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF4eDsgaSsr
KSB7Ci0gICAgICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgICAgICAgIEhFQVA4
WygoYXJnUHRyKyspfDApXT1uZXh0OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGZv
cm1hdEluZGV4ICs9IG5leHRDIC0gZm9ybWF0SW5kZXggKyAxOwotICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8g
cmVtb3ZlIHdoaXRlc3BhY2UKLSAgICAgICAgd2hpbGUgKDEpIHsKLSAgICAgICAgICBuZXh0ID0g
Z2V0KCk7Ci0gICAgICAgICAgaWYgKG5leHQgPT0gMCkgcmV0dXJuIGZpZWxkczsKLSAgICAgICAg
ICBpZiAoIShuZXh0IGluIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlKSkgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgdW5nZXQoKTsKLSAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT09
ICclJykgewotICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgdmFyIHN1cHByZXNz
QXNzaWdubWVudCA9IGZhbHNlOwotICAgICAgICAgIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdID09
ICcqJykgewotICAgICAgICAgICAgc3VwcHJlc3NBc3NpZ25tZW50ID0gdHJ1ZTsKLSAgICAgICAg
ICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBtYXhTcGVjaWZp
ZXJTdGFydCA9IGZvcm1hdEluZGV4OwotICAgICAgICAgIHdoaWxlIChmb3JtYXRbZm9ybWF0SW5k
ZXhdLmNoYXJDb2RlQXQoMCkgPj0gNDggJiYKLSAgICAgICAgICAgICAgICAgZm9ybWF0W2Zvcm1h
dEluZGV4XS5jaGFyQ29kZUF0KDApIDw9IDU3KSB7Ci0gICAgICAgICAgICBmb3JtYXRJbmRleCsr
OwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgbWF4XzsKLSAgICAgICAgICBpZiAoZm9ybWF0
SW5kZXggIT0gbWF4U3BlY2lmaWVyU3RhcnQpIHsKLSAgICAgICAgICAgIG1heF8gPSBwYXJzZUlu
dChmb3JtYXQuc2xpY2UobWF4U3BlY2lmaWVyU3RhcnQsIGZvcm1hdEluZGV4KSwgMTApOwotICAg
ICAgICAgIH0KLSAgICAgICAgICB2YXIgbG9uZ18gPSBmYWxzZTsKLSAgICAgICAgICB2YXIgaGFs
ZiA9IGZhbHNlOwotICAgICAgICAgIHZhciBsb25nTG9uZyA9IGZhbHNlOwotICAgICAgICAgIGlm
IChmb3JtYXRbZm9ybWF0SW5kZXhdID09ICdsJykgewotICAgICAgICAgICAgbG9uZ18gPSB0cnVl
OwotICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICAgIGlmIChmb3JtYXRbZm9y
bWF0SW5kZXhdID09ICdsJykgewotICAgICAgICAgICAgICBsb25nTG9uZyA9IHRydWU7Ci0gICAg
ICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNl
IGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdID09ICdoJykgewotICAgICAgICAgICAgaGFsZiA9IHRy
dWU7Ci0gICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgIH0KLSAgICAgICAgICB2
YXIgdHlwZSA9IGZvcm1hdFtmb3JtYXRJbmRleF07Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsK
LSAgICAgICAgICB2YXIgY3VyciA9IDA7Ci0gICAgICAgICAgdmFyIGJ1ZmZlciA9IFtdOwotICAg
ICAgICAgIC8vIFJlYWQgY2hhcmFjdGVycyBhY2NvcmRpbmcgdG8gdGhlIGZvcm1hdC4gZmxvYXRz
IGFyZSB0cmlja2llciwgdGhleSBtYXkgYmUgaW4gYW4gdW5mbG9hdCBzdGF0ZSBpbiB0aGUgbWlk
ZGxlLCB0aGVuIGJlIGEgdmFsaWQgZmxvYXQgbGF0ZXIKLSAgICAgICAgICBpZiAodHlwZSA9PSAn
ZicgfHwgdHlwZSA9PSAnZScgfHwgdHlwZSA9PSAnZycgfHwKLSAgICAgICAgICAgICAgdHlwZSA9
PSAnRicgfHwgdHlwZSA9PSAnRScgfHwgdHlwZSA9PSAnRycpIHsKLSAgICAgICAgICAgIHZhciBs
YXN0ID0gMDsKLSAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICAgIHdoaWxlIChu
ZXh0ID4gMCkgewotICAgICAgICAgICAgICBidWZmZXIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2Rl
KG5leHQpKTsKLSAgICAgICAgICAgICAgaWYgKF9faXNGbG9hdChidWZmZXIuam9pbignJykpKSB7
Ci0gICAgICAgICAgICAgICAgbGFzdCA9IGJ1ZmZlci5sZW5ndGg7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBidWZmZXIubGVuZ3RoIC0gbGFzdCArIDE7IGkrKykgewotICAg
ICAgICAgICAgICB1bmdldCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnVmZmVyLmxl
bmd0aCA9IGxhc3Q7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG5leHQgPSBnZXQo
KTsKLSAgICAgICAgICAgIHZhciBmaXJzdCA9IHRydWU7Ci0gICAgICAgICAgICB3aGlsZSAoKGN1
cnIgPCBtYXhfIHx8IGlzTmFOKG1heF8pKSAmJiBuZXh0ID4gMCkgewotICAgICAgICAgICAgICBp
ZiAoIShuZXh0IGluIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlKSAmJiAvLyBzdG9wIG9uIHdoaXRl
c3BhY2UKLSAgICAgICAgICAgICAgICAgICh0eXBlID09ICdzJyB8fAotICAgICAgICAgICAgICAg
ICAgICgodHlwZSA9PT0gJ2QnIHx8IHR5cGUgPT0gJ3UnIHx8IHR5cGUgPT0gJ2knKSAmJiAoKG5l
eHQgPj0gNDggJiYgbmV4dCA8PSA1NykgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaXJzdCAmJiBuZXh0ID09
IDQ1KSkpIHx8Ci0gICAgICAgICAgICAgICAgICAgKCh0eXBlID09PSAneCcgfHwgdHlwZSA9PT0g
J1gnKSAmJiAobmV4dCA+PSA0OCAmJiBuZXh0IDw9IDU3IHx8Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmV4dCA+PSA5NyAmJiBuZXh0IDw9IDEwMiB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPj0gNjUgJiYgbmV4dCA8PSA3MCkpKSAm
JgotICAgICAgICAgICAgICAgICAgKGZvcm1hdEluZGV4ID49IGZvcm1hdC5sZW5ndGggfHwgbmV4
dCAhPT0gZm9ybWF0W2Zvcm1hdEluZGV4XS5jaGFyQ29kZUF0KDApKSkgeyAvLyBTdG9wIHdoZW4g
d2UgcmVhZCBzb21ldGhpbmcgdGhhdCBpcyBjb21pbmcgdXAKLSAgICAgICAgICAgICAgICBidWZm
ZXIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKTsKLSAgICAgICAgICAgICAgICBuZXh0
ID0gZ2V0KCk7Ci0gICAgICAgICAgICAgICAgY3VycisrOwotICAgICAgICAgICAgICAgIGZpcnN0
ID0gZmFsc2U7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVuZ2V0KCk7Ci0g
ICAgICAgICAgfQotICAgICAgICAgIGlmIChidWZmZXIubGVuZ3RoID09PSAwKSByZXR1cm4gMDsg
IC8vIEZhaWx1cmUuCi0gICAgICAgICAgaWYgKHN1cHByZXNzQXNzaWdubWVudCkgY29udGludWU7
Ci0gICAgICAgICAgdmFyIHRleHQgPSBidWZmZXIuam9pbignJyk7Ci0gICAgICAgICAgdmFyIGFy
Z1B0ciA9IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+MildOwotICAgICAgICAgIGFy
Z0luZGV4ICs9IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKCd2b2lkKicsIG51bGwsIHRydWUpOwotICAg
ICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICAgICAgY2FzZSAnZCc6IGNhc2UgJ3UnOiBj
YXNlICdpJzoKLSAgICAgICAgICAgICAgaWYgKGhhbGYpIHsKLSAgICAgICAgICAgICAgICBIRUFQ
MTZbKChhcmdQdHIpPj4xKV09cGFyc2VJbnQodGV4dCwgMTApOwotICAgICAgICAgICAgICB9IGVs
c2UgaWYgKGxvbmdMb25nKSB7Ci0gICAgICAgICAgICAgICAgKHRlbXBJNjQgPSBbcGFyc2VJbnQo
dGV4dCwgMTApPj4+MCwodGVtcERvdWJsZT1wYXJzZUludCh0ZXh0LCAxMCksKCsoTWF0aC5hYnMo
dGVtcERvdWJsZSkpKSA+PSAoKygxKSkgPyAodGVtcERvdWJsZSA+ICgrKDApKSA/ICgoTWF0aC5t
aW4oKCsoTWF0aC5mbG9vcigodGVtcERvdWJsZSkvKCsoNDI5NDk2NzI5NikpKSkpLCAoKyg0Mjk0
OTY3Mjk1KSkpKXwwKT4+PjAgOiAofn4oKCsoTWF0aC5jZWlsKCh0ZW1wRG91YmxlIC0gKygoKH5+
KHRlbXBEb3VibGUpKSk+Pj4wKSkvKCsoNDI5NDk2NzI5NikpKSkpKSk+Pj4wKSA6IDApXSxIRUFQ
MzJbKChhcmdQdHIpPj4yKV09dGVtcEk2NFswXSxIRUFQMzJbKCgoYXJnUHRyKSsoNCkpPj4yKV09
dGVtcEk2NFsxXSk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgSEVB
UDMyWygoYXJnUHRyKT4+MildPXBhcnNlSW50KHRleHQsIDEwKTsKLSAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ1gnOgotICAgICAgICAgICAg
Y2FzZSAneCc6Ci0gICAgICAgICAgICAgIEhFQVAzMlsoKGFyZ1B0cik+PjIpXT1wYXJzZUludCh0
ZXh0LCAxNikKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdGJzoKLSAg
ICAgICAgICAgIGNhc2UgJ2YnOgotICAgICAgICAgICAgY2FzZSAnRSc6Ci0gICAgICAgICAgICBj
YXNlICdlJzoKLSAgICAgICAgICAgIGNhc2UgJ0cnOgotICAgICAgICAgICAgY2FzZSAnZyc6Ci0g
ICAgICAgICAgICBjYXNlICdFJzoKLSAgICAgICAgICAgICAgLy8gZmFsbHRocm91Z2ggaW50ZW5k
ZWQKLSAgICAgICAgICAgICAgaWYgKGxvbmdfKSB7Ci0gICAgICAgICAgICAgICAgSEVBUEY2NFso
KGFyZ1B0cik+PjMpXT1wYXJzZUZsb2F0KHRleHQpCi0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgSEVBUEYzMlsoKGFyZ1B0cik+PjIpXT1wYXJzZUZsb2F0KHRleHQpCi0g
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdz
JzoKLSAgICAgICAgICAgICAgdmFyIGFycmF5ID0gaW50QXJyYXlGcm9tU3RyaW5nKHRleHQpOwot
ICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFycmF5Lmxlbmd0aDsgaisrKSB7Ci0g
ICAgICAgICAgICAgICAgSEVBUDhbKCgoYXJnUHRyKSsoaikpfDApXT1hcnJheVtqXQotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgICBm
aWVsZHMrKzsKLSAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdIGluIF9fc2Nh
blN0cmluZy53aGl0ZVNwYWNlKSB7Ci0gICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAg
IHdoaWxlIChuZXh0IGluIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlKSB7Ci0gICAgICAgICAgICBp
ZiAobmV4dCA8PSAwKSBicmVhayBtYWluTG9vcDsgIC8vIEVuZCBvZiBpbnB1dC4KLSAgICAgICAg
ICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdW5nZXQobmV4dCk7Ci0g
ICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAvLyBO
b3QgYSBzcGVjaWZpZXIuCi0gICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgIGlmIChm
b3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkgIT09IG5leHQpIHsKLSAgICAgICAgICAg
IHVuZ2V0KG5leHQpOwotICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVy
biBmaWVsZHM7Ci0gICAgfWZ1bmN0aW9uIF9zc2NhbmYocywgZm9ybWF0LCB2YXJhcmdzKSB7Ci0g
ICAgICAvLyBpbnQgc3NjYW5mKGNvbnN0IGNoYXIgKnJlc3RyaWN0IHMsIGNvbnN0IGNoYXIgKnJl
c3RyaWN0IGZvcm1hdCwgLi4uICk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3Jn
L29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9zY2FuZi5odG1sCi0gICAgICB2YXIgaW5k
ZXggPSAwOwotICAgICAgdmFyIGdldCA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gSEVBUDhbKCgocykr
KGluZGV4KyspKXwwKV07IH07Ci0gICAgICB2YXIgdW5nZXQgPSBmdW5jdGlvbigpIHsgaW5kZXgt
LTsgfTsKLSAgICAgIHJldHVybiBfX3NjYW5TdHJpbmcoZm9ybWF0LCBnZXQsIHVuZ2V0LCB2YXJh
cmdzKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fWjdjYXRvcGVuUEtjaSgpIHsgdGhyb3cgJ2NhdG9w
ZW4gbm90IGltcGxlbWVudGVkJyB9Ci0gIGZ1bmN0aW9uIF9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlp
UEtjKCkgeyB0aHJvdyAnY2F0Z2V0cyBub3QgaW1wbGVtZW50ZWQnIH0KLSAgZnVuY3Rpb24gX19a
OGNhdGNsb3NlUDhfbmxfY2F0ZCgpIHsgdGhyb3cgJ2NhdGNsb3NlIG5vdCBpbXBsZW1lbnRlZCcg
fQotICBmdW5jdGlvbiBfbmV3bG9jYWxlKG1hc2ssIGxvY2FsZSwgYmFzZSkgewotICAgICAgcmV0
dXJuIDA7Ci0gICAgfQotICBmdW5jdGlvbiBfZnJlZWxvY2FsZShsb2NhbGUpIHt9Ci0gIGZ1bmN0
aW9uIF9fX2N0eXBlX2JfbG9jKCkgewotICAgICAgLy8gaHR0cDovL3JlZnNwZWNzLmZyZWVzdGFu
ZGFyZHMub3JnL0xTQl8zLjAuMC9MU0ItQ29yZS1nZW5lcmljL0xTQi1Db3JlLWdlbmVyaWMvYmFz
ZWxpYi0tLWN0eXBlLWItbG9jLmh0bWwKLSAgICAgIHZhciBtZSA9IF9fX2N0eXBlX2JfbG9jOwot
ICAgICAgaWYgKCFtZS5yZXQpIHsKLSAgICAgICAgdmFyIHZhbHVlcyA9IFsKLSAgICAgICAgICAw
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsCi0gICAgICAgICAgMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLAotICAgICAgICAgIDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwyLDIs
MiwyLDIsMiwyLDIsODE5NSw4MTk0LDgxOTQsODE5NCw4MTk0LDIsMiwyLDIsMiwyLDIsMiwyLDIs
MiwyLDIsMiwyLDIsMiwyLDI0NTc3LDQ5MTU2LDQ5MTU2LDQ5MTU2LAotICAgICAgICAgIDQ5MTU2
LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5
MTU2LDQ5MTU2LDU1MzA0LDU1MzA0LDU1MzA0LDU1MzA0LDU1MzA0LDU1MzA0LDU1MzA0LDU1MzA0
LAotICAgICAgICAgIDU1MzA0LDU1MzA0LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5
MTU2LDQ5MTU2LDU0NTM2LDU0NTM2LDU0NTM2LDU0NTM2LDU0NTM2LDU0NTM2LDUwNDQwLDUwNDQw
LDUwNDQwLDUwNDQwLDUwNDQwLAotICAgICAgICAgIDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUw
NDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQw
LDUwNDQwLDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LAotICAgICAgICAgIDQ5MTU2LDU0
NzkyLDU0NzkyLDU0NzkyLDU0NzkyLDU0NzkyLDU0NzkyLDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2
LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LAot
ICAgICAgICAgIDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDQ5MTU2
LDQ5MTU2LDQ5MTU2LDQ5MTU2LDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwKLSAgICAgICAgICAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsCi0gICAgICAgICAgMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwCi0gICAgICAgIF07Ci0gICAgICAgIHZhciBpMTZzaXplID0gMjsKLSAg
ICAgICAgdmFyIGFyciA9IF9tYWxsb2ModmFsdWVzLmxlbmd0aCAqIGkxNnNpemUpOwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIEhF
QVAxNlsoKChhcnIpKyhpICogaTE2c2l6ZSkpPj4xKV09dmFsdWVzW2ldCi0gICAgICAgIH0KLSAg
ICAgICAgbWUucmV0ID0gYWxsb2NhdGUoW2FyciArIDEyOCAqIGkxNnNpemVdLCAnaTE2KicsIEFM
TE9DX05PUk1BTCk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbWUucmV0OwotICAgIH0KLSAgZnVu
Y3Rpb24gX19fY3R5cGVfdG9sb3dlcl9sb2MoKSB7Ci0gICAgICAvLyBodHRwOi8vcmVmc3BlY3Mu
ZnJlZXN0YW5kYXJkcy5vcmcvTFNCXzMuMS4xL0xTQi1Db3JlLWdlbmVyaWMvTFNCLUNvcmUtZ2Vu
ZXJpYy9saWJ1dGlsLS0tY3R5cGUtdG9sb3dlci1sb2MuaHRtbAotICAgICAgdmFyIG1lID0gX19f
Y3R5cGVfdG9sb3dlcl9sb2M7Ci0gICAgICBpZiAoIW1lLnJldCkgewotICAgICAgICB2YXIgdmFs
dWVzID0gWwotICAgICAgICAgIDEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEz
NywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUx
LDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LAotICAgICAgICAgIDE1OCwxNTksMTYwLDE2MSwxNjIs
MTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3Niwx
NzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LAotICAgICAgICAgIDE4
OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAy
LDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYs
MjE3LAotICAgICAgICAgIDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywy
MjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0
MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LAotICAgICAgICAgIDI0OCwyNDksMjUwLDI1MSwyNTIsMjUz
LDI1NCwtMSwwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5
LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLAotICAgICAgICAgIDMzLDM0
LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUz
LDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEw
MywKLSAgICAgICAgICAxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0
LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsOTEsOTIsOTMsOTQsOTUsOTYsOTcsOTgs
OTksMTAwLDEwMSwxMDIsMTAzLAotICAgICAgICAgIDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDEx
MCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiwxMjMsMTI0
LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLAotICAgICAgICAgIDEzNCwxMzUs
MTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwx
NTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLAot
ICAgICAgICAgIDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1
LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODks
MTkwLDE5MSwxOTIsMTkzLAotICAgICAgICAgIDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwy
MDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIx
NSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLAotICAgICAgICAgIDIyNCwyMjUsMjI2
LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAs
MjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLAotICAg
ICAgICAgIDI1NCwyNTUKLSAgICAgICAgXTsKLSAgICAgICAgdmFyIGkzMnNpemUgPSA0OwotICAg
ICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICogaTMyc2l6ZSk7Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgSEVB
UDMyWygoKGFycikrKGkgKiBpMzJzaXplKSk+PjIpXT12YWx1ZXNbaV0KLSAgICAgICAgfQotICAg
ICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTMyc2l6ZV0sICdpMzIqJywgQUxM
T0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5yZXQ7Ci0gICAgfQotICBmdW5j
dGlvbiBfX19jdHlwZV90b3VwcGVyX2xvYygpIHsKLSAgICAgIC8vIGh0dHA6Ly9yZWZzcGVjcy5m
cmVlc3RhbmRhcmRzLm9yZy9MU0JfMy4xLjEvTFNCLUNvcmUtZ2VuZXJpYy9MU0ItQ29yZS1nZW5l
cmljL2xpYnV0aWwtLS1jdHlwZS10b3VwcGVyLWxvYy5odG1sCi0gICAgICB2YXIgbWUgPSBfX19j
dHlwZV90b3VwcGVyX2xvYzsKLSAgICAgIGlmICghbWUucmV0KSB7Ci0gICAgICAgIHZhciB2YWx1
ZXMgPSBbCi0gICAgICAgICAgMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3
LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEs
MTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsCi0gICAgICAgICAgMTU4LDE1OSwxNjAsMTYxLDE2Miwx
NjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3
NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsCi0gICAgICAgICAgMTg4
LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIs
MjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwy
MTcsCi0gICAgICAgICAgMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIy
OCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQy
LDI0MywyNDQsMjQ1LDI0NiwyNDcsCi0gICAgICAgICAgMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMs
MjU0LC0xLDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTks
MjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsCi0gICAgICAgICAgMzMsMzQs
MzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMs
NTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIs
Ci0gICAgICAgICAgNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsODEsODIsODMsODQsODUsODYsODcs
ODgsODksOTAsOTEsOTIsOTMsOTQsOTUsOTYsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIsNzMsNzQs
NzUsNzYsNzcsNzgsNzksODAsCi0gICAgICAgICAgODEsODIsODMsODQsODUsODYsODcsODgsODks
OTAsMTIzLDEyNCwxMjUsMTI2LDEyNywxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEz
NiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LAotICAgICAgICAgIDE0NSwxNDYsMTQ3
LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwxNjEs
MTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzMsMTc0LAotICAg
ICAgICAgIDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4
NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAx
LDIwMiwyMDMsMjA0LAotICAgICAgICAgIDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIs
MjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwy
MjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LAotICAgICAgICAgIDIzNSwyMzYsMjM3LDIz
OCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUy
LDI1MywyNTQsMjU1Ci0gICAgICAgIF07Ci0gICAgICAgIHZhciBpMzJzaXplID0gNDsKLSAgICAg
ICAgdmFyIGFyciA9IF9tYWxsb2ModmFsdWVzLmxlbmd0aCAqIGkzMnNpemUpOwotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIEhFQVAz
MlsoKChhcnIpKyhpICogaTMyc2l6ZSkpPj4yKV09dmFsdWVzW2ldCi0gICAgICAgIH0KLSAgICAg
ICAgbWUucmV0ID0gYWxsb2NhdGUoW2FyciArIDEyOCAqIGkzMnNpemVdLCAnaTMyKicsIEFMTE9D
X05PUk1BTCk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbWUucmV0OwotICAgIH0KLSAgdmFyIF9f
X3RtX3N0cnVjdF9sYXlvdXQ9e19fc2l6ZV9fOjQ0LHRtX3NlYzowLHRtX21pbjo0LHRtX2hvdXI6
OCx0bV9tZGF5OjEyLHRtX21vbjoxNix0bV95ZWFyOjIwLHRtX3dkYXk6MjQsdG1feWRheToyOCx0
bV9pc2RzdDozMix0bV9nbXRvZmY6MzYsdG1fem9uZTo0MH07Ci0gIGZ1bmN0aW9uIF9faXNMZWFw
WWVhcih5ZWFyKSB7Ci0gICAgICAgIHJldHVybiB5ZWFyJTQgPT09IDAgJiYgKHllYXIlMTAwICE9
PSAwIHx8IHllYXIlNDAwID09PSAwKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fYXJyYXlTdW0oYXJy
YXksIGluZGV4KSB7Ci0gICAgICB2YXIgc3VtID0gMDsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDw9IGluZGV4OyBzdW0gKz0gYXJyYXlbaSsrXSk7Ci0gICAgICByZXR1cm4gc3VtOwotICAgIH0K
LSAgdmFyIF9fTU9OVEhfREFZU19MRUFQPVszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwz
MCwzMV07Ci0gIHZhciBfX01PTlRIX0RBWVNfUkVHVUxBUj1bMzEsMjgsMzEsMzAsMzEsMzAsMzEs
MzEsMzAsMzEsMzAsMzFdO2Z1bmN0aW9uIF9fYWRkRGF5cyhkYXRlLCBkYXlzKSB7Ci0gICAgICB2
YXIgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTsKLSAgICAgIHdoaWxlKGRheXMg
PiAwKSB7Ci0gICAgICAgIHZhciBsZWFwID0gX19pc0xlYXBZZWFyKG5ld0RhdGUuZ2V0RnVsbFll
YXIoKSk7Ci0gICAgICAgIHZhciBjdXJyZW50TW9udGggPSBuZXdEYXRlLmdldE1vbnRoKCk7Ci0g
ICAgICAgIHZhciBkYXlzSW5DdXJyZW50TW9udGggPSAobGVhcCA/IF9fTU9OVEhfREFZU19MRUFQ
IDogX19NT05USF9EQVlTX1JFR1VMQVIpW2N1cnJlbnRNb250aF07Ci0gICAgICAgIGlmIChkYXlz
ID4gZGF5c0luQ3VycmVudE1vbnRoLW5ld0RhdGUuZ2V0RGF0ZSgpKSB7Ci0gICAgICAgICAgLy8g
d2Ugc3BpbGwgb3ZlciB0byBuZXh0IG1vbnRoCi0gICAgICAgICAgZGF5cyAtPSAoZGF5c0luQ3Vy
cmVudE1vbnRoLW5ld0RhdGUuZ2V0RGF0ZSgpKzEpOwotICAgICAgICAgIG5ld0RhdGUuc2V0RGF0
ZSgxKTsKLSAgICAgICAgICBpZiAoY3VycmVudE1vbnRoIDwgMTEpIHsKLSAgICAgICAgICAgIG5l
d0RhdGUuc2V0TW9udGgoY3VycmVudE1vbnRoKzEpCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIG5ld0RhdGUuc2V0TW9udGgoMCk7Ci0gICAgICAgICAgICBuZXdEYXRlLnNldEZ1bGxZ
ZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSsxKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgLy8gd2Ugc3RheSBpbiBjdXJyZW50IG1vbnRoIAotICAgICAgICAgIG5l
d0RhdGUuc2V0RGF0ZShuZXdEYXRlLmdldERhdGUoKStkYXlzKTsKLSAgICAgICAgICByZXR1cm4g
bmV3RGF0ZTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuIG5ld0RhdGU7Ci0gICAg
fWZ1bmN0aW9uIF9zdHJmdGltZShzLCBtYXhzaXplLCBmb3JtYXQsIHRtKSB7Ci0gICAgICAvLyBz
aXplX3Qgc3RyZnRpbWUoY2hhciAqcmVzdHJpY3Qgcywgc2l6ZV90IG1heHNpemUsIGNvbnN0IGNo
YXIgKnJlc3RyaWN0IGZvcm1hdCwgY29uc3Qgc3RydWN0IHRtICpyZXN0cmljdCB0aW1lcHRyKTsK
LSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkv
ZnVuY3Rpb25zL3N0cmZ0aW1lLmh0bWwKLSAgICAgIHZhciBkYXRlID0gewotICAgICAgICB0bV9z
ZWM6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1fc2VjKSk+PjIpXSwKLSAg
ICAgICAgdG1fbWluOiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX21pbikp
Pj4yKV0sCi0gICAgICAgIHRtX2hvdXI6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlv
dXQudG1faG91cikpPj4yKV0sCi0gICAgICAgIHRtX21kYXk6IEhFQVAzMlsoKCh0bSkrKF9fX3Rt
X3N0cnVjdF9sYXlvdXQudG1fbWRheSkpPj4yKV0sCi0gICAgICAgIHRtX21vbjogSEVBUDMyWygo
KHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV9tb24pKT4+MildLAotICAgICAgICB0bV95ZWFy
OiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX3llYXIpKT4+MildLAotICAg
ICAgICB0bV93ZGF5OiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX3dkYXkp
KT4+MildLAotICAgICAgICB0bV95ZGF5OiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5
b3V0LnRtX3lkYXkpKT4+MildLAotICAgICAgICB0bV9pc2RzdDogSEVBUDMyWygoKHRtKSsoX19f
dG1fc3RydWN0X2xheW91dC50bV9pc2RzdCkpPj4yKV0KLSAgICAgIH07Ci0gICAgICB2YXIgcGF0
dGVybiA9IFBvaW50ZXJfc3RyaW5naWZ5KGZvcm1hdCk7Ci0gICAgICAvLyBleHBhbmQgZm9ybWF0
Ci0gICAgICB2YXIgRVhQQU5TSU9OX1JVTEVTXzEgPSB7Ci0gICAgICAgICclYyc6ICclYSAlYiAl
ZCAlSDolTTolUyAlWScsICAgICAvLyBSZXBsYWNlZCBieSB0aGUgbG9jYWxlJ3MgYXBwcm9wcmlh
dGUgZGF0ZSBhbmQgdGltZSByZXByZXNlbnRhdGlvbiAtIGUuZy4sIE1vbiBBdWcgIDMgMTQ6MDI6
MDEgMjAxMwotICAgICAgICAnJUQnOiAnJW0vJWQvJXknLCAgICAgICAgICAgICAgICAgLy8gRXF1
aXZhbGVudCB0byAlbSAvICVkIC8gJXkKLSAgICAgICAgJyVGJzogJyVZLSVtLSVkJywgICAgICAg
ICAgICAgICAgIC8vIEVxdWl2YWxlbnQgdG8gJVkgLSAlbSAtICVkCi0gICAgICAgICclaCc6ICcl
YicsICAgICAgICAgICAgICAgICAgICAgICAvLyBFcXVpdmFsZW50IHRvICViCi0gICAgICAgICcl
cic6ICclSTolTTolUyAlcCcsICAgICAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgdGltZSBp
biBhLm0uIGFuZCBwLm0uIG5vdGF0aW9uCi0gICAgICAgICclUic6ICclSDolTScsICAgICAgICAg
ICAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgdGltZSBpbiAyNC1ob3VyIG5vdGF0aW9uCi0g
ICAgICAgICclVCc6ICclSDolTTolUycsICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0
aGUgdGltZQotICAgICAgICAnJXgnOiAnJW0vJWQvJXknLCAgICAgICAgICAgICAgICAgLy8gUmVw
bGFjZWQgYnkgdGhlIGxvY2FsZSdzIGFwcHJvcHJpYXRlIGRhdGUgcmVwcmVzZW50YXRpb24KLSAg
ICAgICAgJyVYJzogJyVIOiVNOiVTJywgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRo
ZSBsb2NhbGUncyBhcHByb3ByaWF0ZSBkYXRlIHJlcHJlc2VudGF0aW9uCi0gICAgICB9OwotICAg
ICAgZm9yICh2YXIgcnVsZSBpbiBFWFBBTlNJT05fUlVMRVNfMSkgewotICAgICAgICBwYXR0ZXJu
ID0gcGF0dGVybi5yZXBsYWNlKG5ldyBSZWdFeHAocnVsZSwgJ2cnKSwgRVhQQU5TSU9OX1JVTEVT
XzFbcnVsZV0pOwotICAgICAgfQotICAgICAgdmFyIFdFRUtEQVlTID0gWydTdW5kYXknLCAnTW9u
ZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1
cmRheSddOwotICAgICAgdmFyIE1PTlRIUyA9IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJj
aCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXIn
LCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddOwotICAgICAgdmFyIGxlYWRpbmdT
b21ldGhpbmcgPSBmdW5jdGlvbih2YWx1ZSwgZGlnaXRzLCBjaGFyYWN0ZXIpIHsKLSAgICAgICAg
dmFyIHN0ciA9IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZS50b1N0cmluZygpIDog
KHZhbHVlIHx8ICcnKTsKLSAgICAgICAgd2hpbGUgKHN0ci5sZW5ndGggPCBkaWdpdHMpIHsKLSAg
ICAgICAgICBzdHIgPSBjaGFyYWN0ZXJbMF0rc3RyOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBzdHI7Ci0gICAgICB9OwotICAgICAgdmFyIGxlYWRpbmdOdWxscyA9IGZ1bmN0aW9uKHZhbHVl
LCBkaWdpdHMpIHsKLSAgICAgICAgcmV0dXJuIGxlYWRpbmdTb21ldGhpbmcodmFsdWUsIGRpZ2l0
cywgJzAnKTsKLSAgICAgIH07Ci0gICAgICB2YXIgY29tcGFyZUJ5RGF5ID0gZnVuY3Rpb24oZGF0
ZTEsIGRhdGUyKSB7Ci0gICAgICAgIHZhciBzZ24gPSBmdW5jdGlvbih2YWx1ZSkgewotICAgICAg
ICAgIHJldHVybiB2YWx1ZSA8IDAgPyAtMSA6ICh2YWx1ZSA+IDAgPyAxIDogMCk7Ci0gICAgICAg
IH07Ci0gICAgICAgIHZhciBjb21wYXJlOwotICAgICAgICBpZiAoKGNvbXBhcmUgPSBzZ24oZGF0
ZTEuZ2V0RnVsbFllYXIoKS1kYXRlMi5nZXRGdWxsWWVhcigpKSkgPT09IDApIHsKLSAgICAgICAg
ICBpZiAoKGNvbXBhcmUgPSBzZ24oZGF0ZTEuZ2V0TW9udGgoKS1kYXRlMi5nZXRNb250aCgpKSkg
PT09IDApIHsKLSAgICAgICAgICAgIGNvbXBhcmUgPSBzZ24oZGF0ZTEuZ2V0RGF0ZSgpLWRhdGUy
LmdldERhdGUoKSk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjb21w
YXJlOwotICAgICAgfTsKLSAgICAgIHZhciBnZXRGaXJzdFdlZWtTdGFydERhdGUgPSBmdW5jdGlv
bihqYW5Gb3VydGgpIHsKLSAgICAgICAgICBzd2l0Y2ggKGphbkZvdXJ0aC5nZXREYXkoKSkgewot
ICAgICAgICAgICAgY2FzZSAwOiAvLyBTdW5kYXkKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBE
YXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEsIDExLCAyOSk7Ci0gICAgICAgICAgICBjYXNl
IDE6IC8vIE1vbmRheQotICAgICAgICAgICAgICByZXR1cm4gamFuRm91cnRoOwotICAgICAgICAg
ICAgY2FzZSAyOiAvLyBUdWVzZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5G
b3VydGguZ2V0RnVsbFllYXIoKSwgMCwgMyk7Ci0gICAgICAgICAgICBjYXNlIDM6IC8vIFdlZG5l
c2RheQotICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFy
KCksIDAsIDIpOwotICAgICAgICAgICAgY2FzZSA0OiAvLyBUaHVyc2RheQotICAgICAgICAgICAg
ICByZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCksIDAsIDEpOwotICAgICAg
ICAgICAgY2FzZSA1OiAvLyBGcmlkYXkKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGph
bkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEsIDExLCAzMSk7Ci0gICAgICAgICAgICBjYXNlIDY6IC8v
IFNhdHVyZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVs
bFllYXIoKS0xLCAxMSwgMzApOwotICAgICAgICAgIH0KLSAgICAgIH07Ci0gICAgICB2YXIgZ2V0
V2Vla0Jhc2VkWWVhciA9IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICB2YXIgdGhpc0RhdGUg
PSBfX2FkZERheXMobmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIDAsIDEpLCBkYXRlLnRtX3lk
YXkpOwotICAgICAgICAgIHZhciBqYW5Gb3VydGhUaGlzWWVhciA9IG5ldyBEYXRlKHRoaXNEYXRl
LmdldEZ1bGxZZWFyKCksIDAsIDQpOwotICAgICAgICAgIHZhciBqYW5Gb3VydGhOZXh0WWVhciA9
IG5ldyBEYXRlKHRoaXNEYXRlLmdldEZ1bGxZZWFyKCkrMSwgMCwgNCk7Ci0gICAgICAgICAgdmFy
IGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRo
VGhpc1llYXIpOwotICAgICAgICAgIHZhciBmaXJzdFdlZWtTdGFydE5leHRZZWFyID0gZ2V0Rmly
c3RXZWVrU3RhcnREYXRlKGphbkZvdXJ0aE5leHRZZWFyKTsKLSAgICAgICAgICBpZiAoY29tcGFy
ZUJ5RGF5KGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIsIHRoaXNEYXRlKSA8PSAwKSB7Ci0gICAgICAg
ICAgICAvLyB0aGlzIGRhdGUgaXMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBmaXJzdCB3ZWVrIG9m
IHRoaXMgeWVhcgotICAgICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdFdlZWtTdGFydE5l
eHRZZWFyLCB0aGlzRGF0ZSkgPD0gMCkgewotICAgICAgICAgICAgICByZXR1cm4gdGhpc0RhdGUu
Z2V0RnVsbFllYXIoKSsxOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmV0
dXJuIHRoaXNEYXRlLmdldEZ1bGxZZWFyKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBl
bHNlIHsgCi0gICAgICAgICAgICByZXR1cm4gdGhpc0RhdGUuZ2V0RnVsbFllYXIoKS0xOwotICAg
ICAgICAgIH0KLSAgICAgIH07Ci0gICAgICB2YXIgRVhQQU5TSU9OX1JVTEVTXzIgPSB7Ci0gICAg
ICAgICclYSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gV0VFS0RBWVNbZGF0
ZS50bV93ZGF5XS5zdWJzdHJpbmcoMCwzKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVBJzogZnVu
Y3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBXRUVLREFZU1tkYXRlLnRtX3dkYXldOwot
ICAgICAgICB9LAotICAgICAgICAnJWInOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0
dXJuIE1PTlRIU1tkYXRlLnRtX21vbl0uc3Vic3RyaW5nKDAsMyk7Ci0gICAgICAgIH0sCi0gICAg
ICAgICclQic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gTU9OVEhTW2RhdGUu
dG1fbW9uXTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVDJzogZnVuY3Rpb24oZGF0ZSkgewotICAg
ICAgICAgIHZhciB5ZWFyID0gZGF0ZS50bV95ZWFyKzE5MDA7Ci0gICAgICAgICAgcmV0dXJuIGxl
YWRpbmdOdWxscyhNYXRoLmZsb29yKHllYXIvMTAwKSwyKTsKLSAgICAgICAgfSwKLSAgICAgICAg
JyVkJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0
ZS50bV9tZGF5LCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVlJzogZnVuY3Rpb24oZGF0ZSkg
ewotICAgICAgICAgIHJldHVybiBsZWFkaW5nU29tZXRoaW5nKGRhdGUudG1fbWRheSwgMiwgJyAn
KTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVnJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAg
IC8vICVnLCAlRywgYW5kICVWIGdpdmUgdmFsdWVzIGFjY29yZGluZyB0byB0aGUgSVNPIDg2MDE6
MjAwMCBzdGFuZGFyZCB3ZWVrLWJhc2VkIHllYXIuIAotICAgICAgICAgIC8vIEluIHRoaXMgc3lz
dGVtLCB3ZWVrcyBiZWdpbiBvbiBhIE1vbmRheSBhbmQgd2VlayAxIG9mIHRoZSB5ZWFyIGlzIHRo
ZSB3ZWVrIHRoYXQgaW5jbHVkZXMgCi0gICAgICAgICAgLy8gSmFudWFyeSA0dGgsIHdoaWNoIGlz
IGFsc28gdGhlIHdlZWsgdGhhdCBpbmNsdWRlcyB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgdGhlIHll
YXIsIGFuZCAKLSAgICAgICAgICAvLyBpcyBhbHNvIHRoZSBmaXJzdCB3ZWVrIHRoYXQgY29udGFp
bnMgYXQgbGVhc3QgZm91ciBkYXlzIGluIHRoZSB5ZWFyLiAKLSAgICAgICAgICAvLyBJZiB0aGUg
Zmlyc3QgTW9uZGF5IG9mIEphbnVhcnkgaXMgdGhlIDJuZCwgM3JkLCBvciA0dGgsIHRoZSBwcmVj
ZWRpbmcgZGF5cyBhcmUgcGFydCBvZiAKLSAgICAgICAgICAvLyB0aGUgbGFzdCB3ZWVrIG9mIHRo
ZSBwcmVjZWRpbmcgeWVhcjsgdGh1cywgZm9yIFNhdHVyZGF5IDJuZCBKYW51YXJ5IDE5OTksIAot
ICAgICAgICAgIC8vICVHIGlzIHJlcGxhY2VkIGJ5IDE5OTggYW5kICVWIGlzIHJlcGxhY2VkIGJ5
IDUzLiBJZiBEZWNlbWJlciAyOXRoLCAzMHRoLCAKLSAgICAgICAgICAvLyBvciAzMXN0IGlzIGEg
TW9uZGF5LCBpdCBhbmQgYW55IGZvbGxvd2luZyBkYXlzIGFyZSBwYXJ0IG9mIHdlZWsgMSBvZiB0
aGUgZm9sbG93aW5nIHllYXIuIAotICAgICAgICAgIC8vIFRodXMsIGZvciBUdWVzZGF5IDMwdGgg
RGVjZW1iZXIgMTk5NywgJUcgaXMgcmVwbGFjZWQgYnkgMTk5OCBhbmQgJVYgaXMgcmVwbGFjZWQg
YnkgMDEuCi0gICAgICAgICAgcmV0dXJuIGdldFdlZWtCYXNlZFllYXIoZGF0ZSkudG9TdHJpbmco
KS5zdWJzdHJpbmcoMik7Ci0gICAgICAgIH0sCi0gICAgICAgICclRyc6IGZ1bmN0aW9uKGRhdGUp
IHsKLSAgICAgICAgICByZXR1cm4gZ2V0V2Vla0Jhc2VkWWVhcihkYXRlKTsKLSAgICAgICAgfSwK
LSAgICAgICAgJyVIJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5n
TnVsbHMoZGF0ZS50bV9ob3VyLCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVJJzogZnVuY3Rp
b24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0ZS50bV9ob3VyIDwg
MTMgPyBkYXRlLnRtX2hvdXIgOiBkYXRlLnRtX2hvdXItMTIsIDIpOwotICAgICAgICB9LAotICAg
ICAgICAnJWonOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gRGF5IG9mIHRoZSB5ZWFy
ICgwMDEtMzY2KQotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0ZS50bV9tZGF5K19f
YXJyYXlTdW0oX19pc0xlYXBZZWFyKGRhdGUudG1feWVhcisxOTAwKSA/IF9fTU9OVEhfREFZU19M
RUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIsIGRhdGUudG1fbW9uLTEpLCAzKTsKLSAgICAgICAg
fSwKLSAgICAgICAgJyVtJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFk
aW5nTnVsbHMoZGF0ZS50bV9tb24rMSwgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICclTSc6IGZ1
bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKGRhdGUudG1fbWlu
LCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVuJzogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
cmV0dXJuICdcbic7Ci0gICAgICAgIH0sCi0gICAgICAgICclcCc6IGZ1bmN0aW9uKGRhdGUpIHsK
LSAgICAgICAgICBpZiAoZGF0ZS50bV9ob3VyID4gMCAmJiBkYXRlLnRtX2hvdXIgPCAxMykgewot
ICAgICAgICAgICAgcmV0dXJuICdBTSc7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IHJldHVybiAnUE0nOwotICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICAgICAgJyVTJzogZnVu
Y3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0ZS50bV9zZWMs
IDIpOwotICAgICAgICB9LAotICAgICAgICAnJXQnOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICBy
ZXR1cm4gJ1x0JzsKLSAgICAgICAgfSwKLSAgICAgICAgJyV1JzogZnVuY3Rpb24oZGF0ZSkgewot
ICAgICAgICAgIHZhciBkYXkgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgZGF0ZS50bV9t
b24rMSwgZGF0ZS50bV9tZGF5LCAwLCAwLCAwLCAwKTsKLSAgICAgICAgICByZXR1cm4gZGF5Lmdl
dERheSgpIHx8IDc7Ci0gICAgICAgIH0sCi0gICAgICAgICclVSc6IGZ1bmN0aW9uKGRhdGUpIHsK
LSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgd2VlayBudW1iZXIgb2YgdGhlIHllYXIgYXMg
YSBkZWNpbWFsIG51bWJlciBbMDAsNTNdLiAKLSAgICAgICAgICAvLyBUaGUgZmlyc3QgU3VuZGF5
IG9mIEphbnVhcnkgaXMgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIDE7IAotICAgICAgICAgIC8vIGRh
eXMgaW4gdGhlIG5ldyB5ZWFyIGJlZm9yZSB0aGlzIGFyZSBpbiB3ZWVrIDAuIFsgdG1feWVhciwg
dG1fd2RheSwgdG1feWRheV0KLSAgICAgICAgICB2YXIgamFuRmlyc3QgPSBuZXcgRGF0ZShkYXRl
LnRtX3llYXIrMTkwMCwgMCwgMSk7Ci0gICAgICAgICAgdmFyIGZpcnN0U3VuZGF5ID0gamFuRmly
c3QuZ2V0RGF5KCkgPT09IDAgPyBqYW5GaXJzdCA6IF9fYWRkRGF5cyhqYW5GaXJzdCwgNy1qYW5G
aXJzdC5nZXREYXkoKSk7Ci0gICAgICAgICAgdmFyIGVuZERhdGUgPSBuZXcgRGF0ZShkYXRlLnRt
X3llYXIrMTkwMCwgZGF0ZS50bV9tb24sIGRhdGUudG1fbWRheSk7Ci0gICAgICAgICAgLy8gaXMg
dGFyZ2V0IGRhdGUgYWZ0ZXIgdGhlIGZpcnN0IFN1bmRheT8KLSAgICAgICAgICBpZiAoY29tcGFy
ZUJ5RGF5KGZpcnN0U3VuZGF5LCBlbmREYXRlKSA8IDApIHsKLSAgICAgICAgICAgIC8vIGNhbGN1
bGF0ZSBkaWZmZXJlbmNlIGluIGRheXMgYmV0d2VlbiBmaXJzdCBTdW5kYXkgYW5kIGVuZERhdGUK
LSAgICAgICAgICAgIHZhciBmZWJydWFyeUZpcnN0VW50aWxFbmRNb250aCA9IF9fYXJyYXlTdW0o
X19pc0xlYXBZZWFyKGVuZERhdGUuZ2V0RnVsbFllYXIoKSkgPyBfX01PTlRIX0RBWVNfTEVBUCA6
IF9fTU9OVEhfREFZU19SRUdVTEFSLCBlbmREYXRlLmdldE1vbnRoKCktMSktMzE7Ci0gICAgICAg
ICAgICB2YXIgZmlyc3RTdW5kYXlVbnRpbEVuZEphbnVhcnkgPSAzMS1maXJzdFN1bmRheS5nZXRE
YXRlKCk7Ci0gICAgICAgICAgICB2YXIgZGF5cyA9IGZpcnN0U3VuZGF5VW50aWxFbmRKYW51YXJ5
K2ZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRoK2VuZERhdGUuZ2V0RGF0ZSgpOwotICAgICAgICAg
ICAgcmV0dXJuIGxlYWRpbmdOdWxscyhNYXRoLmNlaWwoZGF5cy83KSwgMik7Ci0gICAgICAgICAg
fQotICAgICAgICAgIHJldHVybiBjb21wYXJlQnlEYXkoZmlyc3RTdW5kYXksIGphbkZpcnN0KSA9
PT0gMCA/ICcwMSc6ICcwMCc7Ci0gICAgICAgIH0sCi0gICAgICAgICclVic6IGZ1bmN0aW9uKGRh
dGUpIHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgd2VlayBudW1iZXIgb2YgdGhlIHll
YXIgKE1vbmRheSBhcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrKSAKLSAgICAgICAgICAvLyBh
cyBhIGRlY2ltYWwgbnVtYmVyIFswMSw1M10uIElmIHRoZSB3ZWVrIGNvbnRhaW5pbmcgMSBKYW51
YXJ5IGhhcyBmb3VyIAotICAgICAgICAgIC8vIG9yIG1vcmUgZGF5cyBpbiB0aGUgbmV3IHllYXIs
IHRoZW4gaXQgaXMgY29uc2lkZXJlZCB3ZWVrIDEuIAotICAgICAgICAgIC8vIE90aGVyd2lzZSwg
aXQgaXMgdGhlIGxhc3Qgd2VlayBvZiB0aGUgcHJldmlvdXMgeWVhciwgYW5kIHRoZSBuZXh0IHdl
ZWsgaXMgd2VlayAxLiAKLSAgICAgICAgICAvLyBCb3RoIEphbnVhcnkgNHRoIGFuZCB0aGUgZmly
c3QgVGh1cnNkYXkgb2YgSmFudWFyeSBhcmUgYWx3YXlzIGluIHdlZWsgMS4gWyB0bV95ZWFyLCB0
bV93ZGF5LCB0bV95ZGF5XQotICAgICAgICAgIHZhciBqYW5Gb3VydGhUaGlzWWVhciA9IG5ldyBE
YXRlKGRhdGUudG1feWVhcisxOTAwLCAwLCA0KTsKLSAgICAgICAgICB2YXIgamFuRm91cnRoTmV4
dFllYXIgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMSwgMCwgNCk7Ci0gICAgICAgICAgdmFy
IGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRo
VGhpc1llYXIpOwotICAgICAgICAgIHZhciBmaXJzdFdlZWtTdGFydE5leHRZZWFyID0gZ2V0Rmly
c3RXZWVrU3RhcnREYXRlKGphbkZvdXJ0aE5leHRZZWFyKTsKLSAgICAgICAgICB2YXIgZW5kRGF0
ZSA9IF9fYWRkRGF5cyhuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgMCwgMSksIGRhdGUudG1f
eWRheSk7Ci0gICAgICAgICAgaWYgKGNvbXBhcmVCeURheShlbmREYXRlLCBmaXJzdFdlZWtTdGFy
dFRoaXNZZWFyKSA8IDApIHsKLSAgICAgICAgICAgIC8vIGlmIGdpdmVuIGRhdGUgaXMgYmVmb3Jl
IHRoaXMgeWVhcnMgZmlyc3Qgd2VlaywgdGhlbiBpdCBiZWxvbmdzIHRvIHRoZSA1M3JkIHdlZWsg
b2YgbGFzdCB5ZWFyCi0gICAgICAgICAgICByZXR1cm4gJzUzJzsKLSAgICAgICAgICB9IAotICAg
ICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RXZWVrU3RhcnROZXh0WWVhciwgZW5kRGF0ZSkg
PD0gMCkgewotICAgICAgICAgICAgLy8gaWYgZ2l2ZW4gZGF0ZSBpcyBhZnRlciBuZXh0IHllYXJz
IGZpcnN0IHdlZWssIHRoZW4gaXQgYmVsb25ncyB0byB0aGUgMDF0aCB3ZWVrIG9mIG5leHQgeWVh
cgotICAgICAgICAgICAgcmV0dXJuICcwMSc7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIGdp
dmVuIGRhdGUgaXMgaW4gYmV0d2VlbiBDVyAwMS4uNTMgb2YgdGhpcyBjYWxlbmRhciB5ZWFyCi0g
ICAgICAgICAgdmFyIGRheXNEaWZmZXJlbmNlOwotICAgICAgICAgIGlmIChmaXJzdFdlZWtTdGFy
dFRoaXNZZWFyLmdldEZ1bGxZZWFyKCkgPCBkYXRlLnRtX3llYXIrMTkwMCkgewotICAgICAgICAg
ICAgLy8gZmlyc3QgQ1cgb2YgdGhpcyB5ZWFyIHN0YXJ0cyBsYXN0IHllYXIKLSAgICAgICAgICAg
IGRheXNEaWZmZXJlbmNlID0gZGF0ZS50bV95ZGF5KzMyLWZpcnN0V2Vla1N0YXJ0VGhpc1llYXIu
Z2V0RGF0ZSgpCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIGZpcnN0IENXIG9m
IHRoaXMgeWVhciBzdGFydHMgdGhpcyB5ZWFyCi0gICAgICAgICAgICBkYXlzRGlmZmVyZW5jZSA9
IGRhdGUudG1feWRheSsxLWZpcnN0V2Vla1N0YXJ0VGhpc1llYXIuZ2V0RGF0ZSgpOwotICAgICAg
ICAgIH0KLSAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguY2VpbChkYXlzRGlmZmVy
ZW5jZS83KSwgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICcldyc6IGZ1bmN0aW9uKGRhdGUpIHsK
LSAgICAgICAgICB2YXIgZGF5ID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIGRhdGUudG1f
bW9uKzEsIGRhdGUudG1fbWRheSwgMCwgMCwgMCwgMCk7Ci0gICAgICAgICAgcmV0dXJuIGRheS5n
ZXREYXkoKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVXJzogZnVuY3Rpb24oZGF0ZSkgewotICAg
ICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVrIG51bWJlciBvZiB0aGUgeWVhciBhcyBhIGRl
Y2ltYWwgbnVtYmVyIFswMCw1M10uIAotICAgICAgICAgIC8vIFRoZSBmaXJzdCBNb25kYXkgb2Yg
SmFudWFyeSBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgMTsgCi0gICAgICAgICAgLy8gZGF5cyBp
biB0aGUgbmV3IHllYXIgYmVmb3JlIHRoaXMgYXJlIGluIHdlZWsgMC4gWyB0bV95ZWFyLCB0bV93
ZGF5LCB0bV95ZGF5XQotICAgICAgICAgIHZhciBqYW5GaXJzdCA9IG5ldyBEYXRlKGRhdGUudG1f
eWVhciwgMCwgMSk7Ci0gICAgICAgICAgdmFyIGZpcnN0TW9uZGF5ID0gamFuRmlyc3QuZ2V0RGF5
KCkgPT09IDEgPyBqYW5GaXJzdCA6IF9fYWRkRGF5cyhqYW5GaXJzdCwgamFuRmlyc3QuZ2V0RGF5
KCkgPT09IDAgPyAxIDogNy1qYW5GaXJzdC5nZXREYXkoKSsxKTsKLSAgICAgICAgICB2YXIgZW5k
RGF0ZSA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCBkYXRlLnRtX21vbiwgZGF0ZS50bV9t
ZGF5KTsKLSAgICAgICAgICAvLyBpcyB0YXJnZXQgZGF0ZSBhZnRlciB0aGUgZmlyc3QgTW9uZGF5
PwotICAgICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RNb25kYXksIGVuZERhdGUpIDwgMCkg
ewotICAgICAgICAgICAgdmFyIGZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRoID0gX19hcnJheVN1
bShfX2lzTGVhcFllYXIoZW5kRGF0ZS5nZXRGdWxsWWVhcigpKSA/IF9fTU9OVEhfREFZU19MRUFQ
IDogX19NT05USF9EQVlTX1JFR1VMQVIsIGVuZERhdGUuZ2V0TW9udGgoKS0xKS0zMTsKLSAgICAg
ICAgICAgIHZhciBmaXJzdE1vbmRheVVudGlsRW5kSmFudWFyeSA9IDMxLWZpcnN0TW9uZGF5Lmdl
dERhdGUoKTsKLSAgICAgICAgICAgIHZhciBkYXlzID0gZmlyc3RNb25kYXlVbnRpbEVuZEphbnVh
cnkrZmVicnVhcnlGaXJzdFVudGlsRW5kTW9udGgrZW5kRGF0ZS5nZXREYXRlKCk7Ci0gICAgICAg
ICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguY2VpbChkYXlzLzcpLCAyKTsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgcmV0dXJuIGNvbXBhcmVCeURheShmaXJzdE1vbmRheSwgamFuRmlyc3Qp
ID09PSAwID8gJzAxJzogJzAwJzsKLSAgICAgICAgfSwKLSAgICAgICAgJyV5JzogZnVuY3Rpb24o
ZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBsYXN0IHR3byBkaWdpdHMgb2Yg
dGhlIHllYXIgYXMgYSBkZWNpbWFsIG51bWJlciBbMDAsOTldLiBbIHRtX3llYXJdCi0gICAgICAg
ICAgcmV0dXJuIChkYXRlLnRtX3llYXIrMTkwMCkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMik7Ci0g
ICAgICAgIH0sCi0gICAgICAgICclWSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBS
ZXBsYWNlZCBieSB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIChmb3IgZXhhbXBsZSwgMTk5
NykuIFsgdG1feWVhcl0KLSAgICAgICAgICByZXR1cm4gZGF0ZS50bV95ZWFyKzE5MDA7Ci0gICAg
ICAgIH0sCi0gICAgICAgICcleic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBSZXBs
YWNlZCBieSB0aGUgb2Zmc2V0IGZyb20gVVRDIGluIHRoZSBJU08gODYwMToyMDAwIHN0YW5kYXJk
IGZvcm1hdCAoICtoaG1tIG9yIC1oaG1tICksCi0gICAgICAgICAgLy8gb3IgYnkgbm8gY2hhcmFj
dGVycyBpZiBubyB0aW1lem9uZSBpcyBkZXRlcm1pbmFibGUuIAotICAgICAgICAgIC8vIEZvciBl
eGFtcGxlLCAiLTA0MzAiIG1lYW5zIDQgaG91cnMgMzAgbWludXRlcyBiZWhpbmQgVVRDICh3ZXN0
IG9mIEdyZWVud2ljaCkuIAotICAgICAgICAgIC8vIElmIHRtX2lzZHN0IGlzIHplcm8sIHRoZSBz
dGFuZGFyZCB0aW1lIG9mZnNldCBpcyB1c2VkLiAKLSAgICAgICAgICAvLyBJZiB0bV9pc2RzdCBp
cyBncmVhdGVyIHRoYW4gemVybywgdGhlIGRheWxpZ2h0IHNhdmluZ3MgdGltZSBvZmZzZXQgaXMg
dXNlZC4gCi0gICAgICAgICAgLy8gSWYgdG1faXNkc3QgaXMgbmVnYXRpdmUsIG5vIGNoYXJhY3Rl
cnMgYXJlIHJldHVybmVkLiAKLSAgICAgICAgICAvLyBGSVhNRTogd2UgY2Fubm90IGRldGVybWlu
ZSB0aW1lIHpvbmUgKG9yIGNhbiB3ZT8pCi0gICAgICAgICAgcmV0dXJuICcnOwotICAgICAgICB9
LAotICAgICAgICAnJVonOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQg
YnkgdGhlIHRpbWV6b25lIG5hbWUgb3IgYWJicmV2aWF0aW9uLCBvciBieSBubyBieXRlcyBpZiBu
byB0aW1lem9uZSBpbmZvcm1hdGlvbiBleGlzdHMuIFsgdG1faXNkc3RdCi0gICAgICAgICAgLy8g
RklYTUU6IHdlIGNhbm5vdCBkZXRlcm1pbmUgdGltZSB6b25lIChvciBjYW4gd2U/KQotICAgICAg
ICAgIHJldHVybiAnJzsKLSAgICAgICAgfSwKLSAgICAgICAgJyUlJzogZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgcmV0dXJuICclJzsKLSAgICAgICAgfQotICAgICAgfTsKLSAgICAgIGZvciAodmFy
IHJ1bGUgaW4gRVhQQU5TSU9OX1JVTEVTXzIpIHsKLSAgICAgICAgaWYgKHBhdHRlcm4uaW5kZXhP
ZihydWxlKSA+PSAwKSB7Ci0gICAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZShuZXcg
UmVnRXhwKHJ1bGUsICdnJyksIEVYUEFOU0lPTl9SVUxFU18yW3J1bGVdKGRhdGUpKTsKLSAgICAg
ICAgfQotICAgICAgfQotICAgICAgdmFyIGJ5dGVzID0gaW50QXJyYXlGcm9tU3RyaW5nKHBhdHRl
cm4sIGZhbHNlKTsKLSAgICAgIGlmIChieXRlcy5sZW5ndGggPiBtYXhzaXplKSB7Ci0gICAgICAg
IHJldHVybiAwOwotICAgICAgfSAKLSAgICAgIHdyaXRlQXJyYXlUb01lbW9yeShieXRlcywgcyk7
Ci0gICAgICByZXR1cm4gYnl0ZXMubGVuZ3RoLTE7Ci0gICAgfXZhciBfc3RyZnRpbWVfbD1fc3Ry
ZnRpbWU7Ci0gIGZ1bmN0aW9uIF9pc3NwYWNlKGNocikgewotICAgICAgcmV0dXJuIChjaHIgPT0g
MzIpIHx8IChjaHIgPj0gOSAmJiBjaHIgPD0gMTMpOwotICAgIH0KLSAgZnVuY3Rpb24gX19wYXJz
ZUludDY0KHN0ciwgZW5kcHRyLCBiYXNlLCBtaW4sIG1heCwgdW5zaWduKSB7Ci0gICAgICB2YXIg
aXNOZWdhdGl2ZSA9IGZhbHNlOwotICAgICAgLy8gU2tpcCBzcGFjZS4KLSAgICAgIHdoaWxlIChf
aXNzcGFjZShIRUFQOFsoc3RyKV0pKSBzdHIrKzsKLSAgICAgIC8vIENoZWNrIGZvciBhIHBsdXMv
bWludXMgc2lnbi4KLSAgICAgIGlmIChIRUFQOFsoc3RyKV0gPT0gNDUpIHsKLSAgICAgICAgc3Ry
Kys7Ci0gICAgICAgIGlzTmVnYXRpdmUgPSB0cnVlOwotICAgICAgfSBlbHNlIGlmIChIRUFQOFso
c3RyKV0gPT0gNDMpIHsKLSAgICAgICAgc3RyKys7Ci0gICAgICB9Ci0gICAgICAvLyBGaW5kIGJh
c2UuCi0gICAgICB2YXIgb2sgPSBmYWxzZTsKLSAgICAgIHZhciBmaW5hbEJhc2UgPSBiYXNlOwot
ICAgICAgaWYgKCFmaW5hbEJhc2UpIHsKLSAgICAgICAgaWYgKEhFQVA4WyhzdHIpXSA9PSA0OCkg
ewotICAgICAgICAgIGlmIChIRUFQOFsoKHN0cisxKXwwKV0gPT0gMTIwIHx8Ci0gICAgICAgICAg
ICAgIEhFQVA4Wygoc3RyKzEpfDApXSA9PSA4OCkgewotICAgICAgICAgICAgZmluYWxCYXNlID0g
MTY7Ci0gICAgICAgICAgICBzdHIgKz0gMjsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgZmluYWxCYXNlID0gODsKLSAgICAgICAgICAgIG9rID0gdHJ1ZTsgLy8gd2Ugc2F3IGFuIGlu
aXRpYWwgemVybywgcGVyaGFwcyB0aGUgZW50aXJlIHRoaW5nIGlzIGp1c3QgIjAiCi0gICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICB9IGVsc2UgaWYgKGZpbmFsQmFzZT09MTYpIHsKLSAgICAg
ICAgaWYgKEhFQVA4WyhzdHIpXSA9PSA0OCkgewotICAgICAgICAgIGlmIChIRUFQOFsoKHN0cisx
KXwwKV0gPT0gMTIwIHx8Ci0gICAgICAgICAgICAgIEhFQVA4Wygoc3RyKzEpfDApXSA9PSA4OCkg
ewotICAgICAgICAgICAgc3RyICs9IDI7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9
Ci0gICAgICBpZiAoIWZpbmFsQmFzZSkgZmluYWxCYXNlID0gMTA7Ci0gICAgICBzdGFydCA9IHN0
cjsKLSAgICAgIC8vIEdldCBkaWdpdHMuCi0gICAgICB2YXIgY2hyOwotICAgICAgd2hpbGUgKChj
aHIgPSBIRUFQOFsoc3RyKV0pICE9IDApIHsKLSAgICAgICAgdmFyIGRpZ2l0ID0gcGFyc2VJbnQo
U3RyaW5nLmZyb21DaGFyQ29kZShjaHIpLCBmaW5hbEJhc2UpOwotICAgICAgICBpZiAoaXNOYU4o
ZGlnaXQpKSB7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
c3RyKys7Ci0gICAgICAgICAgb2sgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBp
ZiAoIW9rKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAg
ICAgIHJldHVybiAoKGFzbVsic2V0VGVtcFJldDAiXSgwKSwwKXwwKTsKLSAgICAgIH0KLSAgICAg
IC8vIFNldCBlbmQgcG9pbnRlci4KLSAgICAgIGlmIChlbmRwdHIpIHsKLSAgICAgICAgSEVBUDMy
WygoZW5kcHRyKT4+MildPXN0cgotICAgICAgfQotICAgICAgdHJ5IHsKLSAgICAgICAgdmFyIG51
bWJlclN0cmluZyA9IGlzTmVnYXRpdmUgPyAnLScrUG9pbnRlcl9zdHJpbmdpZnkoc3RhcnQsIHN0
ciAtIHN0YXJ0KSA6IFBvaW50ZXJfc3RyaW5naWZ5KHN0YXJ0LCBzdHIgLSBzdGFydCk7Ci0gICAg
ICAgIGk2NE1hdGguZnJvbVN0cmluZyhudW1iZXJTdHJpbmcsIGZpbmFsQmFzZSwgbWluLCBtYXgs
IHVuc2lnbik7Ci0gICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9f
Q09ERVMuRVJBTkdFKTsgLy8gbm90IHF1aXRlIGNvcnJlY3QKLSAgICAgIH0KLSAgICAgIHJldHVy
biAoKGFzbVsic2V0VGVtcFJldDAiXSgoKEhFQVAzMlsoKCh0ZW1wRG91YmxlUHRyKSsoNCkpPj4y
KV0pfDApKSwoKEhFQVAzMlsoKHRlbXBEb3VibGVQdHIpPj4yKV0pfDApKXwwKTsKLSAgICB9ZnVu
Y3Rpb24gX3N0cnRvdWxsKHN0ciwgZW5kcHRyLCBiYXNlKSB7Ci0gICAgICByZXR1cm4gX19wYXJz
ZUludDY0KHN0ciwgZW5kcHRyLCBiYXNlLCAwLCAnMTg0NDY3NDQwNzM3MDk1NTE2MTUnLCB0cnVl
KTsgIC8vIFVMT05HX01BWC4KLSAgICB9dmFyIF9zdHJ0b3VsbF9sPV9zdHJ0b3VsbDsKLSAgZnVu
Y3Rpb24gX3N0cnRvbGwoc3RyLCBlbmRwdHIsIGJhc2UpIHsKLSAgICAgIHJldHVybiBfX3BhcnNl
SW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsICctOTIyMzM3MjAzNjg1NDc3NTgwOCcsICc5MjIzMzcy
MDM2ODU0Nzc1ODA3Jyk7ICAvLyBMTE9OR19NSU4sIExMT05HX01BWC4KLSAgICB9dmFyIF9zdHJ0
b2xsX2w9X3N0cnRvbGw7Ci0gIGZ1bmN0aW9uIF91c2Vsb2NhbGUobG9jYWxlKSB7Ci0gICAgICBy
ZXR1cm4gMDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2xvY2FsZV9tYl9jdXJfbWF4KCkgeyB0aHJv
dyAnX19sb2NhbGVfbWJfY3VyX21heCBub3QgaW1wbGVtZW50ZWQnIH0KLSAgdmFyIF9sbHZtX3Zh
X3N0YXJ0PXVuZGVmaW5lZDsKLSAgZnVuY3Rpb24gX3NwcmludGYocywgZm9ybWF0LCB2YXJhcmdz
KSB7Ci0gICAgICAvLyBpbnQgc3ByaW50ZihjaGFyICpyZXN0cmljdCBzLCBjb25zdCBjaGFyICpy
ZXN0cmljdCBmb3JtYXQsIC4uLik7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3Jn
L29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9wcmludGYuaHRtbAotICAgICAgcmV0dXJu
IF9zbnByaW50ZihzLCB1bmRlZmluZWQsIGZvcm1hdCwgdmFyYXJncyk7Ci0gICAgfWZ1bmN0aW9u
IF9hc3ByaW50ZihzLCBmb3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAgIHJldHVybiBfc3ByaW50Zigt
cywgZm9ybWF0LCB2YXJhcmdzKTsKLSAgICB9ZnVuY3Rpb24gX3Zhc3ByaW50ZihzLCBmb3JtYXQs
IHZhX2FyZykgewotICAgICAgcmV0dXJuIF9hc3ByaW50ZihzLCBmb3JtYXQsIEhFQVAzMlsoKHZh
X2FyZyk+PjIpXSk7Ci0gICAgfQotICBmdW5jdGlvbiBfbGx2bV92YV9lbmQoKSB7fQotICBmdW5j
dGlvbiBfdnNucHJpbnRmKHMsIG4sIGZvcm1hdCwgdmFfYXJnKSB7Ci0gICAgICByZXR1cm4gX3Nu
cHJpbnRmKHMsIG4sIGZvcm1hdCwgSEVBUDMyWygodmFfYXJnKT4+MildKTsKLSAgICB9Ci0gIGZ1
bmN0aW9uIF92c3NjYW5mKHMsIGZvcm1hdCwgdmFfYXJnKSB7Ci0gICAgICByZXR1cm4gX3NzY2Fu
ZihzLCBmb3JtYXQsIEhFQVAzMlsoKHZhX2FyZyk+PjIpXSk7Ci0gICAgfQotICBmdW5jdGlvbiBf
c2JyayhieXRlcykgewotICAgICAgLy8gSW1wbGVtZW50IGEgTGludXgtbGlrZSAnbWVtb3J5IGFy
ZWEnIGZvciBvdXIgJ3Byb2Nlc3MnLgotICAgICAgLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiB0aGUg
bWVtb3J5IGFyZWEgYnkgfGJ5dGVzfDsgcmV0dXJucyB0aGUKLSAgICAgIC8vIGFkZHJlc3Mgb2Yg
dGhlIHByZXZpb3VzIHRvcCAoJ2JyZWFrJykgb2YgdGhlIG1lbW9yeSBhcmVhCi0gICAgICAvLyBX
ZSBjb250cm9sIHRoZSAiZHluYW1pYyIgbWVtb3J5IC0gRFlOQU1JQ19CQVNFIHRvIERZTkFNSUNU
T1AKLSAgICAgIHZhciBzZWxmID0gX3Nicms7Ci0gICAgICBpZiAoIXNlbGYuY2FsbGVkKSB7Ci0g
ICAgICAgIERZTkFNSUNUT1AgPSBhbGlnbk1lbW9yeVBhZ2UoRFlOQU1JQ1RPUCk7IC8vIG1ha2Ug
c3VyZSB3ZSBzdGFydCBvdXQgYWxpZ25lZAotICAgICAgICBzZWxmLmNhbGxlZCA9IHRydWU7Ci0g
ICAgICAgIGFzc2VydChSdW50aW1lLmR5bmFtaWNBbGxvYyk7Ci0gICAgICAgIHNlbGYuYWxsb2Mg
PSBSdW50aW1lLmR5bmFtaWNBbGxvYzsKLSAgICAgICAgUnVudGltZS5keW5hbWljQWxsb2MgPSBm
dW5jdGlvbigpIHsgYWJvcnQoJ2Nhbm5vdCBkeW5hbWljYWxseSBhbGxvY2F0ZSwgc2JyayBub3cg
aGFzIGNvbnRyb2wnKSB9OwotICAgICAgfQotICAgICAgdmFyIHJldCA9IERZTkFNSUNUT1A7Ci0g
ICAgICBpZiAoYnl0ZXMgIT0gMCkgc2VsZi5hbGxvYyhieXRlcyk7Ci0gICAgICByZXR1cm4gcmV0
OyAgLy8gUHJldmlvdXMgYnJlYWsgbG9jYXRpb24uCi0gICAgfQotICBmdW5jdGlvbiBfdGltZShw
dHIpIHsKLSAgICAgIHZhciByZXQgPSBNYXRoLmZsb29yKERhdGUubm93KCkvMTAwMCk7Ci0gICAg
ICBpZiAocHRyKSB7Ci0gICAgICAgIEhFQVAzMlsoKHB0cik+PjIpXT1yZXQKLSAgICAgIH0KLSAg
ICAgIHJldHVybiByZXQ7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfY2FsbF91bmV4cGVjdGVk
KGV4Y2VwdGlvbikgewotICAgICAgTW9kdWxlLnByaW50RXJyKCdVbmV4cGVjdGVkIGV4Y2VwdGlv
biB0aHJvd24sIHRoaXMgaXMgbm90IHByb3Blcmx5IHN1cHBvcnRlZCAtIGFib3J0aW5nJyk7Ci0g
ICAgICBBQk9SVCA9IHRydWU7Ci0gICAgICB0aHJvdyBleGNlcHRpb247Ci0gICAgfQotICB2YXIg
QnJvd3Nlcj17bWFpbkxvb3A6e3NjaGVkdWxlcjpudWxsLHNob3VsZFBhdXNlOmZhbHNlLHBhdXNl
ZDpmYWxzZSxxdWV1ZTpbXSxwYXVzZTpmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgQnJvd3Nlci5t
YWluTG9vcC5zaG91bGRQYXVzZSA9IHRydWU7Ci0gICAgICAgIH0scmVzdW1lOmZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICBpZiAoQnJvd3Nlci5tYWluTG9vcC5wYXVzZWQpIHsKLSAgICAgICAgICAg
IEJyb3dzZXIubWFpbkxvb3AucGF1c2VkID0gZmFsc2U7Ci0gICAgICAgICAgICBCcm93c2VyLm1h
aW5Mb29wLnNjaGVkdWxlcigpOwotICAgICAgICAgIH0KLSAgICAgICAgICBCcm93c2VyLm1haW5M
b29wLnNob3VsZFBhdXNlID0gZmFsc2U7Ci0gICAgICAgIH0sdXBkYXRlU3RhdHVzOmZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICBpZiAoTW9kdWxlWydzZXRTdGF0dXMnXSkgewotICAgICAgICAgICAg
dmFyIG1lc3NhZ2UgPSBNb2R1bGVbJ3N0YXR1c01lc3NhZ2UnXSB8fCAnUGxlYXNlIHdhaXQuLi4n
OwotICAgICAgICAgICAgdmFyIHJlbWFpbmluZyA9IEJyb3dzZXIubWFpbkxvb3AucmVtYWluaW5n
QmxvY2tlcnM7Ci0gICAgICAgICAgICB2YXIgZXhwZWN0ZWQgPSBCcm93c2VyLm1haW5Mb29wLmV4
cGVjdGVkQmxvY2tlcnM7Ci0gICAgICAgICAgICBpZiAocmVtYWluaW5nKSB7Ci0gICAgICAgICAg
ICAgIGlmIChyZW1haW5pbmcgPCBleHBlY3RlZCkgewotICAgICAgICAgICAgICAgIE1vZHVsZVsn
c2V0U3RhdHVzJ10obWVzc2FnZSArICcgKCcgKyAoZXhwZWN0ZWQgLSByZW1haW5pbmcpICsgJy8n
ICsgZXhwZWN0ZWQgKyAnKScpOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10obWVzc2FnZSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10oJycpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfX0saXNGdWxsU2NyZWVuOmZhbHNl
LHBvaW50ZXJMb2NrOmZhbHNlLG1vZHVsZUNvbnRleHRDcmVhdGVkQ2FsbGJhY2tzOltdLHdvcmtl
cnM6W10saW5pdDpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGlmICghTW9kdWxlWyJwcmVsb2FkUGx1
Z2lucyJdKSBNb2R1bGVbInByZWxvYWRQbHVnaW5zIl0gPSBbXTsgLy8gbmVlZHMgdG8gZXhpc3Qg
ZXZlbiBpbiB3b3JrZXJzCi0gICAgICAgIGlmIChCcm93c2VyLmluaXR0ZWQgfHwgRU5WSVJPTk1F
TlRfSVNfV09SS0VSKSByZXR1cm47Ci0gICAgICAgIEJyb3dzZXIuaW5pdHRlZCA9IHRydWU7Ci0g
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgbmV3IEJsb2IoKTsKLSAgICAgICAgICBCcm93c2VyLmhh
c0Jsb2JDb25zdHJ1Y3RvciA9IHRydWU7Ci0gICAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICAg
IEJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yID0gZmFsc2U7Ci0gICAgICAgICAgY29uc29sZS5s
b2coIndhcm5pbmc6IG5vIGJsb2IgY29uc3RydWN0b3IsIGNhbm5vdCBjcmVhdGUgYmxvYnMgd2l0
aCBtaW1ldHlwZXMiKTsKLSAgICAgICAgfQotICAgICAgICBCcm93c2VyLkJsb2JCdWlsZGVyID0g
dHlwZW9mIE1vekJsb2JCdWlsZGVyICE9ICJ1bmRlZmluZWQiID8gTW96QmxvYkJ1aWxkZXIgOiAo
dHlwZW9mIFdlYktpdEJsb2JCdWlsZGVyICE9ICJ1bmRlZmluZWQiID8gV2ViS2l0QmxvYkJ1aWxk
ZXIgOiAoIUJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yID8gY29uc29sZS5sb2coIndhcm5pbmc6
IG5vIEJsb2JCdWlsZGVyIikgOiBudWxsKSk7Ci0gICAgICAgIEJyb3dzZXIuVVJMT2JqZWN0ID0g
dHlwZW9mIHdpbmRvdyAhPSAidW5kZWZpbmVkIiA/ICh3aW5kb3cuVVJMID8gd2luZG93LlVSTCA6
IHdpbmRvdy53ZWJraXRVUkwpIDogdW5kZWZpbmVkOwotICAgICAgICBpZiAoIU1vZHVsZS5ub0lt
YWdlRGVjb2RpbmcgJiYgdHlwZW9mIEJyb3dzZXIuVVJMT2JqZWN0ID09PSAndW5kZWZpbmVkJykg
ewotICAgICAgICAgIGNvbnNvbGUubG9nKCJ3YXJuaW5nOiBCcm93c2VyIGRvZXMgbm90IHN1cHBv
cnQgY3JlYXRpbmcgb2JqZWN0IFVSTHMuIEJ1aWx0LWluIGJyb3dzZXIgaW1hZ2UgZGVjb2Rpbmcg
d2lsbCBub3QgYmUgYXZhaWxhYmxlLiIpOwotICAgICAgICAgIE1vZHVsZS5ub0ltYWdlRGVjb2Rp
bmcgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIC8vIFN1cHBvcnQgZm9yIHBsdWdpbnMgdGhh
dCBjYW4gcHJvY2VzcyBwcmVsb2FkZWQgZmlsZXMuIFlvdSBjYW4gYWRkIG1vcmUgb2YgdGhlc2Ug
dG8KLSAgICAgICAgLy8geW91ciBhcHAgYnkgY3JlYXRpbmcgYW5kIGFwcGVuZGluZyB0byBNb2R1
bGUucHJlbG9hZFBsdWdpbnMuCi0gICAgICAgIC8vCi0gICAgICAgIC8vIEVhY2ggcGx1Z2luIGlz
IGFza2VkIGlmIGl0IGNhbiBoYW5kbGUgYSBmaWxlIGJhc2VkIG9uIHRoZSBmaWxlJ3MgbmFtZS4g
SWYgaXQgY2FuLAotICAgICAgICAvLyBpdCBpcyBnaXZlbiB0aGUgZmlsZSdzIHJhdyBkYXRhLiBX
aGVuIGl0IGlzIGRvbmUsIGl0IGNhbGxzIGEgY2FsbGJhY2sgd2l0aCB0aGUgZmlsZSdzCi0gICAg
ICAgIC8vIChwb3NzaWJseSBtb2RpZmllZCkgZGF0YS4gRm9yIGV4YW1wbGUsIGEgcGx1Z2luIG1p
Z2h0IGRlY29tcHJlc3MgYSBmaWxlLCBvciBpdAotICAgICAgICAvLyBtaWdodCBjcmVhdGUgc29t
ZSBzaWRlIGRhdGEgc3RydWN0dXJlIGZvciB1c2UgbGF0ZXIgKGxpa2UgYW4gSW1hZ2UgZWxlbWVu
dCwgZXRjLikuCi0gICAgICAgIHZhciBpbWFnZVBsdWdpbiA9IHt9OwotICAgICAgICBpbWFnZVBs
dWdpblsnY2FuSGFuZGxlJ10gPSBmdW5jdGlvbihuYW1lKSB7Ci0gICAgICAgICAgcmV0dXJuICFN
b2R1bGUubm9JbWFnZURlY29kaW5nICYmIC9cLihqcGd8anBlZ3xwbmd8Ym1wKSQvaS50ZXN0KG5h
bWUpOwotICAgICAgICB9OwotICAgICAgICBpbWFnZVBsdWdpblsnaGFuZGxlJ10gPSBmdW5jdGlv
bihieXRlQXJyYXksIG5hbWUsIG9ubG9hZCwgb25lcnJvcikgewotICAgICAgICAgIHZhciBiID0g
bnVsbDsKLSAgICAgICAgICBpZiAoQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IpIHsKLSAgICAg
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIGIgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0
eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpIH0pOwotICAgICAgICAgICAgICBpZiAoYi5z
aXplICE9PSBieXRlQXJyYXkubGVuZ3RoKSB7IC8vIFNhZmFyaSBidWcgIzExODYzMAotICAgICAg
ICAgICAgICAgIC8vIFNhZmFyaSdzIEJsb2IgY2FuIG9ubHkgdGFrZSBhbiBBcnJheUJ1ZmZlcgot
ICAgICAgICAgICAgICAgIGIgPSBuZXcgQmxvYihbKG5ldyBVaW50OEFycmF5KGJ5dGVBcnJheSkp
LmJ1ZmZlcl0sIHsgdHlwZTogQnJvd3Nlci5nZXRNaW1ldHlwZShuYW1lKSB9KTsKLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgICAgIFJ1bnRpbWUu
d2Fybk9uY2UoJ0Jsb2IgY29uc3RydWN0b3IgcHJlc2VudCBidXQgZmFpbHM6ICcgKyBlICsgJzsg
ZmFsbGluZyBiYWNrIHRvIGJsb2IgYnVpbGRlcicpOwotICAgICAgICAgICAgfQotICAgICAgICAg
IH0KLSAgICAgICAgICBpZiAoIWIpIHsKLSAgICAgICAgICAgIHZhciBiYiA9IG5ldyBCcm93c2Vy
LkJsb2JCdWlsZGVyKCk7Ci0gICAgICAgICAgICBiYi5hcHBlbmQoKG5ldyBVaW50OEFycmF5KGJ5
dGVBcnJheSkpLmJ1ZmZlcik7IC8vIHdlIG5lZWQgdG8gcGFzcyBhIGJ1ZmZlciwgYW5kIG11c3Qg
Y29weSB0aGUgYXJyYXkgdG8gZ2V0IHRoZSByaWdodCBkYXRhIHJhbmdlCi0gICAgICAgICAgICBi
ID0gYmIuZ2V0QmxvYigpOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgdXJsID0gQnJvd3Nl
ci5VUkxPYmplY3QuY3JlYXRlT2JqZWN0VVJMKGIpOwotICAgICAgICAgIHZhciBpbWcgPSBuZXcg
SW1hZ2UoKTsKLSAgICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICBhc3NlcnQoaW1nLmNvbXBsZXRlLCAnSW1hZ2UgJyArIG5hbWUgKyAnIGNvdWxkIG5vdCBiZSBk
ZWNvZGVkJyk7Ci0gICAgICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnY2FudmFzJyk7Ci0gICAgICAgICAgICBjYW52YXMud2lkdGggPSBpbWcud2lkdGg7Ci0gICAg
ICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaW1nLmhlaWdodDsKLSAgICAgICAgICAgIHZhciBjdHgg
PSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1n
LCAwLCAwKTsKLSAgICAgICAgICAgIE1vZHVsZVsicHJlbG9hZGVkSW1hZ2VzIl1bbmFtZV0gPSBj
YW52YXM7Ci0gICAgICAgICAgICBCcm93c2VyLlVSTE9iamVjdC5yZXZva2VPYmplY3RVUkwodXJs
KTsKLSAgICAgICAgICAgIGlmIChvbmxvYWQpIG9ubG9hZChieXRlQXJyYXkpOwotICAgICAgICAg
IH07Ci0gICAgICAgICAgaW1nLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICAg
ICAgY29uc29sZS5sb2coJ0ltYWdlICcgKyB1cmwgKyAnIGNvdWxkIG5vdCBiZSBkZWNvZGVkJyk7
Ci0gICAgICAgICAgICBpZiAob25lcnJvcikgb25lcnJvcigpOwotICAgICAgICAgIH07Ci0gICAg
ICAgICAgaW1nLnNyYyA9IHVybDsKLSAgICAgICAgfTsKLSAgICAgICAgTW9kdWxlWydwcmVsb2Fk
UGx1Z2lucyddLnB1c2goaW1hZ2VQbHVnaW4pOwotICAgICAgICB2YXIgYXVkaW9QbHVnaW4gPSB7
fTsKLSAgICAgICAgYXVkaW9QbHVnaW5bJ2NhbkhhbmRsZSddID0gZnVuY3Rpb24obmFtZSkgewot
ICAgICAgICAgIHJldHVybiAhTW9kdWxlLm5vQXVkaW9EZWNvZGluZyAmJiBuYW1lLnN1YnN0cigt
NCkgaW4geyAnLm9nZyc6IDEsICcud2F2JzogMSwgJy5tcDMnOiAxIH07Ci0gICAgICAgIH07Ci0g
ICAgICAgIGF1ZGlvUGx1Z2luWydoYW5kbGUnXSA9IGZ1bmN0aW9uKGJ5dGVBcnJheSwgbmFtZSwg
b25sb2FkLCBvbmVycm9yKSB7Ci0gICAgICAgICAgdmFyIGRvbmUgPSBmYWxzZTsKLSAgICAgICAg
ICBmdW5jdGlvbiBmaW5pc2goYXVkaW8pIHsKLSAgICAgICAgICAgIGlmIChkb25lKSByZXR1cm47
Ci0gICAgICAgICAgICBkb25lID0gdHJ1ZTsKLSAgICAgICAgICAgIE1vZHVsZVsicHJlbG9hZGVk
QXVkaW9zIl1bbmFtZV0gPSBhdWRpbzsKLSAgICAgICAgICAgIGlmIChvbmxvYWQpIG9ubG9hZChi
eXRlQXJyYXkpOwotICAgICAgICAgIH0KLSAgICAgICAgICBmdW5jdGlvbiBmYWlsKCkgewotICAg
ICAgICAgICAgaWYgKGRvbmUpIHJldHVybjsKLSAgICAgICAgICAgIGRvbmUgPSB0cnVlOwotICAg
ICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXVtuYW1lXSA9IG5ldyBBdWRpbygpOyAv
LyBlbXB0eSBzaGltCi0gICAgICAgICAgICBpZiAob25lcnJvcikgb25lcnJvcigpOwotICAgICAg
ICAgIH0KLSAgICAgICAgICBpZiAoQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IpIHsKLSAgICAg
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIHZhciBiID0gbmV3IEJsb2IoW2J5dGVBcnJheV0s
IHsgdHlwZTogQnJvd3Nlci5nZXRNaW1ldHlwZShuYW1lKSB9KTsKLSAgICAgICAgICAgIH0gY2F0
Y2goZSkgewotICAgICAgICAgICAgICByZXR1cm4gZmFpbCgpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgdmFyIHVybCA9IEJyb3dzZXIuVVJMT2JqZWN0LmNyZWF0ZU9iamVjdFVSTChiKTsg
Ly8gWFhYIHdlIG5ldmVyIHJldm9rZSB0aGlzIQotICAgICAgICAgICAgdmFyIGF1ZGlvID0gbmV3
IEF1ZGlvKCk7Ci0gICAgICAgICAgICBhdWRpby5hZGRFdmVudExpc3RlbmVyKCdjYW5wbGF5dGhy
b3VnaCcsIGZ1bmN0aW9uKCkgeyBmaW5pc2goYXVkaW8pIH0sIGZhbHNlKTsgLy8gdXNlIGFkZEV2
ZW50TGlzdGVuZXIgZHVlIHRvIGNocm9taXVtIGJ1ZyAxMjQ5MjYKLSAgICAgICAgICAgIGF1ZGlv
Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgICBpZiAoZG9uZSkgcmV0
dXJuOwotICAgICAgICAgICAgICBjb25zb2xlLmxvZygnd2FybmluZzogYnJvd3NlciBjb3VsZCBu
b3QgZnVsbHkgZGVjb2RlIGF1ZGlvICcgKyBuYW1lICsgJywgdHJ5aW5nIHNsb3dlciBiYXNlNjQg
YXBwcm9hY2gnKTsKLSAgICAgICAgICAgICAgZnVuY3Rpb24gZW5jb2RlNjQoZGF0YSkgewotICAg
ICAgICAgICAgICAgIHZhciBCQVNFID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nOwotICAgICAgICAgICAgICAgIHZhciBQ
QUQgPSAnPSc7Ci0gICAgICAgICAgICAgICAgdmFyIHJldCA9ICcnOwotICAgICAgICAgICAgICAg
IHZhciBsZWZ0Y2hhciA9IDA7Ci0gICAgICAgICAgICAgICAgdmFyIGxlZnRiaXRzID0gMDsKLSAg
ICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHsKLSAg
ICAgICAgICAgICAgICAgIGxlZnRjaGFyID0gKGxlZnRjaGFyIDw8IDgpIHwgZGF0YVtpXTsKLSAg
ICAgICAgICAgICAgICAgIGxlZnRiaXRzICs9IDg7Ci0gICAgICAgICAgICAgICAgICB3aGlsZSAo
bGVmdGJpdHMgPj0gNikgewotICAgICAgICAgICAgICAgICAgICB2YXIgY3VyciA9IChsZWZ0Y2hh
ciA+PiAobGVmdGJpdHMtNikpICYgMHgzZjsKLSAgICAgICAgICAgICAgICAgICAgbGVmdGJpdHMg
LT0gNjsKLSAgICAgICAgICAgICAgICAgICAgcmV0ICs9IEJBU0VbY3Vycl07Ci0gICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChsZWZ0Yml0
cyA9PSAyKSB7Ci0gICAgICAgICAgICAgICAgICByZXQgKz0gQkFTRVsobGVmdGNoYXImMykgPDwg
NF07Ci0gICAgICAgICAgICAgICAgICByZXQgKz0gUEFEICsgUEFEOwotICAgICAgICAgICAgICAg
IH0gZWxzZSBpZiAobGVmdGJpdHMgPT0gNCkgewotICAgICAgICAgICAgICAgICAgcmV0ICs9IEJB
U0VbKGxlZnRjaGFyJjB4ZikgPDwgMl07Ci0gICAgICAgICAgICAgICAgICByZXQgKz0gUEFEOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIGF1ZGlvLnNyYyA9ICdkYXRhOmF1ZGlvL3gtJyArIG5hbWUu
c3Vic3RyKC0zKSArICc7YmFzZTY0LCcgKyBlbmNvZGU2NChieXRlQXJyYXkpOwotICAgICAgICAg
ICAgICBmaW5pc2goYXVkaW8pOyAvLyB3ZSBkb24ndCB3YWl0IGZvciBjb25maXJtYXRpb24gdGhp
cyB3b3JrZWQgLSBidXQgaXQncyB3b3J0aCB0cnlpbmcKLSAgICAgICAgICAgIH07Ci0gICAgICAg
ICAgICBhdWRpby5zcmMgPSB1cmw7Ci0gICAgICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciBjaHJv
bWUgYnVnIDEyNDkyNiAtIHdlIGRvIG5vdCBhbHdheXMgZ2V0IG9uY2FucGxheXRocm91Z2ggb3Ig
b25lcnJvcgotICAgICAgICAgICAgQnJvd3Nlci5zYWZlU2V0VGltZW91dChmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgZmluaXNoKGF1ZGlvKTsgLy8gdHJ5IHRvIHVzZSBpdCBldmVuIHRob3Vn
aCBpdCBpcyBub3QgbmVjZXNzYXJpbHkgcmVhZHkgdG8gcGxheQotICAgICAgICAgICAgfSwgMTAw
MDApOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFpbCgpOwotICAg
ICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAgTW9kdWxlWydwcmVsb2FkUGx1Z2lucyddLnB1
c2goYXVkaW9QbHVnaW4pOwotICAgICAgICAvLyBDYW52YXMgZXZlbnQgc2V0dXAKLSAgICAgICAg
dmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIGNhbnZhcy5yZXF1ZXN0UG9p
bnRlckxvY2sgPSBjYW52YXNbJ3JlcXVlc3RQb2ludGVyTG9jayddIHx8Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjYW52YXNbJ21velJlcXVlc3RQb2ludGVyTG9jayddIHx8
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXNbJ3dlYmtpdFJlcXVl
c3RQb2ludGVyTG9jayddOwotICAgICAgICBjYW52YXMuZXhpdFBvaW50ZXJMb2NrID0gZG9jdW1l
bnRbJ2V4aXRQb2ludGVyTG9jayddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudFsnbW96RXhpdFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50Wyd3ZWJraXRFeGl0UG9pbnRlckxvY2snXSB8fAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKXt9OyAvLyBuby1vcCBpZiBmdW5j
dGlvbiBkb2VzIG5vdCBleGlzdAotICAgICAgICBjYW52YXMuZXhpdFBvaW50ZXJMb2NrID0gY2Fu
dmFzLmV4aXRQb2ludGVyTG9jay5iaW5kKGRvY3VtZW50KTsKLSAgICAgICAgZnVuY3Rpb24gcG9p
bnRlckxvY2tDaGFuZ2UoKSB7Ci0gICAgICAgICAgQnJvd3Nlci5wb2ludGVyTG9jayA9IGRvY3Vt
ZW50Wydwb2ludGVyTG9ja0VsZW1lbnQnXSA9PT0gY2FudmFzIHx8Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pQb2ludGVyTG9ja0VsZW1lbnQnXSA9PT0gY2Fu
dmFzIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wyd3ZWJraXRQ
b2ludGVyTG9ja0VsZW1lbnQnXSA9PT0gY2FudmFzOwotICAgICAgICB9Ci0gICAgICAgIGRvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJsb2NrY2hhbmdlJywgcG9pbnRlckxvY2tDaGFu
Z2UsIGZhbHNlKTsKLSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW96cG9pbnRl
cmxvY2tjaGFuZ2UnLCBwb2ludGVyTG9ja0NoYW5nZSwgZmFsc2UpOwotICAgICAgICBkb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRwb2ludGVybG9ja2NoYW5nZScsIHBvaW50ZXJMb2Nr
Q2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgIGlmIChNb2R1bGVbJ2VsZW1lbnRQb2ludGVyTG9jaydd
KSB7Ci0gICAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24o
ZXYpIHsKLSAgICAgICAgICAgIGlmICghQnJvd3Nlci5wb2ludGVyTG9jayAmJiBjYW52YXMucmVx
dWVzdFBvaW50ZXJMb2NrKSB7Ci0gICAgICAgICAgICAgIGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxv
Y2soKTsKLSAgICAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9LCBmYWxzZSk7Ci0gICAgICAgIH0KLSAgICAgIH0sY3JlYXRlQ29udGV4dDpm
dW5jdGlvbiAoY2FudmFzLCB1c2VXZWJHTCwgc2V0SW5Nb2R1bGUpIHsKLSAgICAgICAgdmFyIGN0
eDsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBpZiAodXNlV2ViR0wpIHsKLSAgICAgICAgICAg
IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCdleHBlcmltZW50YWwtd2ViZ2wnLCB7Ci0gICAgICAg
ICAgICAgIGFscGhhOiBmYWxzZQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwotICAgICAgICAgIH0K
LSAgICAgICAgICBpZiAoIWN0eCkgdGhyb3cgJzooJzsKLSAgICAgICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICAgIE1vZHVsZS5wcmludCgnQ291bGQgbm90IGNyZWF0ZSBjYW52YXMgLSAnICsgZSk7
Ci0gICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHVzZVdlYkdM
KSB7Ci0gICAgICAgICAgLy8gU2V0IHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBXZWJHTCBjYW52YXMg
dG8gYmxhY2sKLSAgICAgICAgICBjYW52YXMuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gImJsYWNr
IjsKLSAgICAgICAgICAvLyBXYXJuIG9uIGNvbnRleHQgbG9zcwotICAgICAgICAgIGNhbnZhcy5h
ZGRFdmVudExpc3RlbmVyKCd3ZWJnbGNvbnRleHRsb3N0JywgZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICAgIGFsZXJ0KCdXZWJHTCBjb250ZXh0IGxvc3QuIFlvdSB3aWxsIG5lZWQgdG8gcmVs
b2FkIHRoZSBwYWdlLicpOwotICAgICAgICAgIH0sIGZhbHNlKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAoc2V0SW5Nb2R1bGUpIHsKLSAgICAgICAgICBNb2R1bGUuY3R4ID0gY3R4OwotICAgICAg
ICAgIE1vZHVsZS51c2VXZWJHTCA9IHVzZVdlYkdMOwotICAgICAgICAgIEJyb3dzZXIubW9kdWxl
Q29udGV4dENyZWF0ZWRDYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbihjYWxsYmFjaykgeyBjYWxs
YmFjaygpIH0pOwotICAgICAgICAgIEJyb3dzZXIuaW5pdCgpOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBjdHg7Ci0gICAgICB9LGRlc3Ryb3lDb250ZXh0OmZ1bmN0aW9uIChjYW52YXMsIHVz
ZVdlYkdMLCBzZXRJbk1vZHVsZSkge30sZnVsbFNjcmVlbkhhbmRsZXJzSW5zdGFsbGVkOmZhbHNl
LGxvY2tQb2ludGVyOnVuZGVmaW5lZCxyZXNpemVDYW52YXM6dW5kZWZpbmVkLHJlcXVlc3RGdWxs
U2NyZWVuOmZ1bmN0aW9uIChsb2NrUG9pbnRlciwgcmVzaXplQ2FudmFzKSB7Ci0gICAgICAgIEJy
b3dzZXIubG9ja1BvaW50ZXIgPSBsb2NrUG9pbnRlcjsKLSAgICAgICAgQnJvd3Nlci5yZXNpemVD
YW52YXMgPSByZXNpemVDYW52YXM7Ci0gICAgICAgIGlmICh0eXBlb2YgQnJvd3Nlci5sb2NrUG9p
bnRlciA9PT0gJ3VuZGVmaW5lZCcpIEJyb3dzZXIubG9ja1BvaW50ZXIgPSB0cnVlOwotICAgICAg
ICBpZiAodHlwZW9mIEJyb3dzZXIucmVzaXplQ2FudmFzID09PSAndW5kZWZpbmVkJykgQnJvd3Nl
ci5yZXNpemVDYW52YXMgPSBmYWxzZTsKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2Fu
dmFzJ107Ci0gICAgICAgIGZ1bmN0aW9uIGZ1bGxTY3JlZW5DaGFuZ2UoKSB7Ci0gICAgICAgICAg
QnJvd3Nlci5pc0Z1bGxTY3JlZW4gPSBmYWxzZTsKLSAgICAgICAgICBpZiAoKGRvY3VtZW50Wyd3
ZWJraXRGdWxsU2NyZWVuRWxlbWVudCddIHx8IGRvY3VtZW50Wyd3ZWJraXRGdWxsc2NyZWVuRWxl
bWVudCddIHx8Ci0gICAgICAgICAgICAgICBkb2N1bWVudFsnbW96RnVsbFNjcmVlbkVsZW1lbnQn
XSB8fCBkb2N1bWVudFsnbW96RnVsbHNjcmVlbkVsZW1lbnQnXSB8fAotICAgICAgICAgICAgICAg
ZG9jdW1lbnRbJ2Z1bGxTY3JlZW5FbGVtZW50J10gfHwgZG9jdW1lbnRbJ2Z1bGxzY3JlZW5FbGVt
ZW50J10pID09PSBjYW52YXMpIHsKLSAgICAgICAgICAgIGNhbnZhcy5jYW5jZWxGdWxsU2NyZWVu
ID0gZG9jdW1lbnRbJ2NhbmNlbEZ1bGxTY3JlZW4nXSB8fAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkb2N1bWVudFsnbW96Q2FuY2VsRnVsbFNjcmVlbiddIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wyd3ZWJraXRDYW5jZWxG
dWxsU2NyZWVuJ107Ci0gICAgICAgICAgICBjYW52YXMuY2FuY2VsRnVsbFNjcmVlbiA9IGNhbnZh
cy5jYW5jZWxGdWxsU2NyZWVuLmJpbmQoZG9jdW1lbnQpOwotICAgICAgICAgICAgaWYgKEJyb3dz
ZXIubG9ja1BvaW50ZXIpIGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxvY2soKTsKLSAgICAgICAgICAg
IEJyb3dzZXIuaXNGdWxsU2NyZWVuID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChCcm93c2VyLnJl
c2l6ZUNhbnZhcykgQnJvd3Nlci5zZXRGdWxsU2NyZWVuQ2FudmFzU2l6ZSgpOwotICAgICAgICAg
IH0gZWxzZSBpZiAoQnJvd3Nlci5yZXNpemVDYW52YXMpewotICAgICAgICAgICAgQnJvd3Nlci5z
ZXRXaW5kb3dlZENhbnZhc1NpemUoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKE1vZHVs
ZVsnb25GdWxsU2NyZWVuJ10pIE1vZHVsZVsnb25GdWxsU2NyZWVuJ10oQnJvd3Nlci5pc0Z1bGxT
Y3JlZW4pOwotICAgICAgICB9Ci0gICAgICAgIGlmICghQnJvd3Nlci5mdWxsU2NyZWVuSGFuZGxl
cnNJbnN0YWxsZWQpIHsKLSAgICAgICAgICBCcm93c2VyLmZ1bGxTY3JlZW5IYW5kbGVyc0luc3Rh
bGxlZCA9IHRydWU7Ci0gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZnVsbHNj
cmVlbmNoYW5nZScsIGZ1bGxTY3JlZW5DaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgICBkb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCdtb3pmdWxsc2NyZWVuY2hhbmdlJywgZnVsbFNjcmVlbkNoYW5n
ZSwgZmFsc2UpOwotICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGZ1
bGxzY3JlZW5jaGFuZ2UnLCBmdWxsU2NyZWVuQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgY2FudmFzLnJlcXVlc3RGdWxsU2NyZWVuID0gY2FudmFzWydyZXF1ZXN0RnVsbFNjcmVl
biddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc1snbW96UmVx
dWVzdEZ1bGxTY3JlZW4nXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
Y2FudmFzWyd3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiddID8gZnVuY3Rpb24oKSB7IGNhbnZhc1sn
d2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4nXShFbGVtZW50WydBTExPV19LRVlCT0FSRF9JTlBVVCdd
KSB9IDogbnVsbCk7Ci0gICAgICAgIGNhbnZhcy5yZXF1ZXN0RnVsbFNjcmVlbigpOwotICAgICAg
fSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWU6ZnVuY3Rpb24gKGZ1bmMpIHsKLSAgICAgICAgaWYgKCF3
aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKSB7Ci0gICAgICAgICAgd2luZG93LnJlcXVlc3RB
bmltYXRpb25GcmFtZSA9IHdpbmRvd1sncmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Wydtb3pSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3aW5kb3dbJ3dlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1snbXNSZXF1ZXN0QW5pbWF0aW9uRnJh
bWUnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3db
J29SZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aW5kb3dbJ3NldFRpbWVvdXQnXTsKLSAgICAgICAgfQotICAgICAgICB3
aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmMpOwotICAgICAgfSxzYWZlQ2FsbGJhY2s6
ZnVuY3Rpb24gKGZ1bmMpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAg
IGlmICghQUJPUlQpIHJldHVybiBmdW5jLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7Ci0gICAgICAg
IH07Ci0gICAgICB9LHNhZmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWU6ZnVuY3Rpb24gKGZ1bmMpIHsK
LSAgICAgICAgcmV0dXJuIEJyb3dzZXIucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgIGlmICghQUJPUlQpIGZ1bmMoKTsKLSAgICAgICAgfSk7Ci0gICAgICB9LHNh
ZmVTZXRUaW1lb3V0OmZ1bmN0aW9uIChmdW5jLCB0aW1lb3V0KSB7Ci0gICAgICAgIHJldHVybiBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlmICghQUJPUlQpIGZ1bmMoKTsKLSAg
ICAgICAgfSwgdGltZW91dCk7Ci0gICAgICB9LHNhZmVTZXRJbnRlcnZhbDpmdW5jdGlvbiAoZnVu
YywgdGltZW91dCkgewotICAgICAgICByZXR1cm4gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOwotICAgICAgICB9LCB0aW1lb3V0KTsKLSAgICAg
IH0sZ2V0TWltZXR5cGU6ZnVuY3Rpb24gKG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAg
ICAgICAnanBnJzogJ2ltYWdlL2pwZWcnLAotICAgICAgICAgICdqcGVnJzogJ2ltYWdlL2pwZWcn
LAotICAgICAgICAgICdwbmcnOiAnaW1hZ2UvcG5nJywKLSAgICAgICAgICAnYm1wJzogJ2ltYWdl
L2JtcCcsCi0gICAgICAgICAgJ29nZyc6ICdhdWRpby9vZ2cnLAotICAgICAgICAgICd3YXYnOiAn
YXVkaW8vd2F2JywKLSAgICAgICAgICAnbXAzJzogJ2F1ZGlvL21wZWcnCi0gICAgICAgIH1bbmFt
ZS5zdWJzdHIobmFtZS5sYXN0SW5kZXhPZignLicpKzEpXTsKLSAgICAgIH0sZ2V0VXNlck1lZGlh
OmZ1bmN0aW9uIChmdW5jKSB7Ci0gICAgICAgIGlmKCF3aW5kb3cuZ2V0VXNlck1lZGlhKSB7Ci0g
ICAgICAgICAgd2luZG93LmdldFVzZXJNZWRpYSA9IG5hdmlnYXRvclsnZ2V0VXNlck1lZGlhJ10g
fHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yWydtb3pHZXRVc2Vy
TWVkaWEnXTsKLSAgICAgICAgfQotICAgICAgICB3aW5kb3cuZ2V0VXNlck1lZGlhKGZ1bmMpOwot
ICAgICAgfSxnZXRNb3ZlbWVudFg6ZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIHJldHVybiBl
dmVudFsnbW92ZW1lbnRYJ10gfHwKLSAgICAgICAgICAgICAgIGV2ZW50Wydtb3pNb3ZlbWVudFgn
XSB8fAotICAgICAgICAgICAgICAgZXZlbnRbJ3dlYmtpdE1vdmVtZW50WCddIHx8Ci0gICAgICAg
ICAgICAgICAwOwotICAgICAgfSxnZXRNb3ZlbWVudFk6ZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAg
ICAgIHJldHVybiBldmVudFsnbW92ZW1lbnRZJ10gfHwKLSAgICAgICAgICAgICAgIGV2ZW50Wydt
b3pNb3ZlbWVudFknXSB8fAotICAgICAgICAgICAgICAgZXZlbnRbJ3dlYmtpdE1vdmVtZW50WSdd
IHx8Ci0gICAgICAgICAgICAgICAwOwotICAgICAgfSxtb3VzZVg6MCxtb3VzZVk6MCxtb3VzZU1v
dmVtZW50WDowLG1vdXNlTW92ZW1lbnRZOjAsY2FsY3VsYXRlTW91c2VFdmVudDpmdW5jdGlvbiAo
ZXZlbnQpIHsgLy8gZXZlbnQgc2hvdWxkIGJlIG1vdXNlbW92ZSwgbW91c2Vkb3duIG9yIG1vdXNl
dXAKLSAgICAgICAgaWYgKEJyb3dzZXIucG9pbnRlckxvY2spIHsKLSAgICAgICAgICAvLyBXaGVu
IHRoZSBwb2ludGVyIGlzIGxvY2tlZCwgY2FsY3VsYXRlIHRoZSBjb29yZGluYXRlcwotICAgICAg
ICAgIC8vIGJhc2VkIG9uIHRoZSBtb3ZlbWVudCBvZiB0aGUgbW91c2UuCi0gICAgICAgICAgLy8g
V29ya2Fyb3VuZCBmb3IgRmlyZWZveCBidWcgNzY0NDk4Ci0gICAgICAgICAgaWYgKGV2ZW50LnR5
cGUgIT0gJ21vdXNlbW92ZScgJiYKLSAgICAgICAgICAgICAgKCdtb3pNb3ZlbWVudFgnIGluIGV2
ZW50KSkgewotICAgICAgICAgICAgQnJvd3Nlci5tb3VzZU1vdmVtZW50WCA9IEJyb3dzZXIubW91
c2VNb3ZlbWVudFkgPSAwOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBCcm93c2Vy
Lm1vdXNlTW92ZW1lbnRYID0gQnJvd3Nlci5nZXRNb3ZlbWVudFgoZXZlbnQpOwotICAgICAgICAg
ICAgQnJvd3Nlci5tb3VzZU1vdmVtZW50WSA9IEJyb3dzZXIuZ2V0TW92ZW1lbnRZKGV2ZW50KTsK
LSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gY2hlY2sgaWYgU0RMIGlzIGF2YWlsYWJsZQotICAg
ICAgICAgIGlmICh0eXBlb2YgU0RMICE9ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgICAgCUJyb3dz
ZXIubW91c2VYID0gU0RMLm1vdXNlWCArIEJyb3dzZXIubW91c2VNb3ZlbWVudFg7Ci0gICAgICAg
ICAgCUJyb3dzZXIubW91c2VZID0gU0RMLm1vdXNlWSArIEJyb3dzZXIubW91c2VNb3ZlbWVudFk7
Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAJLy8ganVzdCBhZGQgdGhlIG1vdXNlIGRl
bHRhIHRvIHRoZSBjdXJyZW50IGFic29sdXQgbW91c2UgcG9zaXRpb24KLSAgICAgICAgICAJLy8g
RklYTUU6IGlkZWFsbHkgdGhpcyBzaG91bGQgYmUgY2xhbXBlZCBhZ2FpbnN0IHRoZSBjYW52YXMg
c2l6ZSBhbmQgemVybwotICAgICAgICAgIAlCcm93c2VyLm1vdXNlWCArPSBCcm93c2VyLm1vdXNl
TW92ZW1lbnRYOwotICAgICAgICAgIAlCcm93c2VyLm1vdXNlWSArPSBCcm93c2VyLm1vdXNlTW92
ZW1lbnRZOwotICAgICAgICAgIH0gICAgICAgIAotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
IC8vIE90aGVyd2lzZSwgY2FsY3VsYXRlIHRoZSBtb3ZlbWVudCBiYXNlZCBvbiB0aGUgY2hhbmdl
cwotICAgICAgICAgIC8vIGluIHRoZSBjb29yZGluYXRlcy4KLSAgICAgICAgICB2YXIgcmVjdCA9
IE1vZHVsZVsiY2FudmFzIl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgdmFy
IHgsIHk7Ci0gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT0gJ3RvdWNoc3RhcnQnIHx8Ci0gICAg
ICAgICAgICAgIGV2ZW50LnR5cGUgPT0gJ3RvdWNoZW5kJyB8fAotICAgICAgICAgICAgICBldmVu
dC50eXBlID09ICd0b3VjaG1vdmUnKSB7Ci0gICAgICAgICAgICB2YXIgdCA9IGV2ZW50LnRvdWNo
ZXMuaXRlbSgwKTsKLSAgICAgICAgICAgIGlmICh0KSB7Ci0gICAgICAgICAgICAgIHggPSB0LnBh
Z2VYIC0gKHdpbmRvdy5zY3JvbGxYICsgcmVjdC5sZWZ0KTsKLSAgICAgICAgICAgICAgeSA9IHQu
cGFnZVkgLSAod2luZG93LnNjcm9sbFkgKyByZWN0LnRvcCk7Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHggPSBldmVudC5wYWdlWCAtICh3aW5kb3cuc2Nyb2xsWCArIHJlY3Qu
bGVmdCk7Ci0gICAgICAgICAgICB5ID0gZXZlbnQucGFnZVkgLSAod2luZG93LnNjcm9sbFkgKyBy
ZWN0LnRvcCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIHRoZSBjYW52YXMgbWlnaHQgYmUg
Q1NTLXNjYWxlZCBjb21wYXJlZCB0byBpdHMgYmFja2J1ZmZlcjsKLSAgICAgICAgICAvLyBTREwt
dXNpbmcgY29udGVudCB3aWxsIHdhbnQgbW91c2UgY29vcmRpbmF0ZXMgaW4gdGVybXMKLSAgICAg
ICAgICAvLyBvZiBiYWNrYnVmZmVyIHVuaXRzLgotICAgICAgICAgIHZhciBjdyA9IE1vZHVsZVsi
Y2FudmFzIl0ud2lkdGg7Ci0gICAgICAgICAgdmFyIGNoID0gTW9kdWxlWyJjYW52YXMiXS5oZWln
aHQ7Ci0gICAgICAgICAgeCA9IHggKiAoY3cgLyByZWN0LndpZHRoKTsKLSAgICAgICAgICB5ID0g
eSAqIChjaCAvIHJlY3QuaGVpZ2h0KTsKLSAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1lbnRY
ID0geCAtIEJyb3dzZXIubW91c2VYOwotICAgICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFkg
PSB5IC0gQnJvd3Nlci5tb3VzZVk7Ci0gICAgICAgICAgQnJvd3Nlci5tb3VzZVggPSB4OwotICAg
ICAgICAgIEJyb3dzZXIubW91c2VZID0geTsKLSAgICAgICAgfQotICAgICAgfSx4aHJMb2FkOmZ1
bmN0aW9uICh1cmwsIG9ubG9hZCwgb25lcnJvcikgewotICAgICAgICB2YXIgeGhyID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7Ci0gICAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIHRydWUpOwotICAg
ICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKLSAgICAgICAgeGhyLm9ubG9h
ZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09IDIwMCB8fCAoeGhy
LnN0YXR1cyA9PSAwICYmIHhoci5yZXNwb25zZSkpIHsgLy8gZmlsZSBVUkxzIGNhbiByZXR1cm4g
MAotICAgICAgICAgICAgb25sb2FkKHhoci5yZXNwb25zZSk7Ci0gICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIG9uZXJyb3IoKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAg
IHhoci5vbmVycm9yID0gb25lcnJvcjsKLSAgICAgICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgICB9
LGFzeW5jTG9hZDpmdW5jdGlvbiAodXJsLCBvbmxvYWQsIG9uZXJyb3IsIG5vUnVuRGVwKSB7Ci0g
ICAgICAgIEJyb3dzZXIueGhyTG9hZCh1cmwsIGZ1bmN0aW9uKGFycmF5QnVmZmVyKSB7Ci0gICAg
ICAgICAgYXNzZXJ0KGFycmF5QnVmZmVyLCAnTG9hZGluZyBkYXRhIGZpbGUgIicgKyB1cmwgKyAn
IiBmYWlsZWQgKG5vIGFycmF5QnVmZmVyKS4nKTsKLSAgICAgICAgICBvbmxvYWQobmV3IFVpbnQ4
QXJyYXkoYXJyYXlCdWZmZXIpKTsKLSAgICAgICAgICBpZiAoIW5vUnVuRGVwKSByZW1vdmVSdW5E
ZXBlbmRlbmN5KCdhbCAnICsgdXJsKTsKLSAgICAgICAgfSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICBpZiAob25lcnJvcikgewotICAgICAgICAgICAgb25lcnJvcigpOwotICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICB0aHJvdyAnTG9hZGluZyBkYXRhIGZpbGUgIicgKyB1cmwg
KyAnIiBmYWlsZWQuJzsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgICBpZiAoIW5v
UnVuRGVwKSBhZGRSdW5EZXBlbmRlbmN5KCdhbCAnICsgdXJsKTsKLSAgICAgIH0scmVzaXplTGlz
dGVuZXJzOltdLHVwZGF0ZVJlc2l6ZUxpc3RlbmVyczpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZh
ciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBCcm93c2VyLnJlc2l6ZUxpc3Rl
bmVycy5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVyKSB7Ci0gICAgICAgICAgbGlzdGVuZXIoY2Fu
dmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKLSAgICAgICAgfSk7Ci0gICAgICB9LHNldENhbnZh
c1NpemU6ZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQsIG5vVXBkYXRlcykgewotICAgICAgICB2YXIg
Y2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgY2FudmFzLndpZHRoID0gd2lkdGg7
Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7Ci0gICAgICAgIGlmICghbm9VcGRhdGVz
KSBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVycygpOwotICAgICAgfSx3aW5kb3dlZFdpZHRo
OjAsd2luZG93ZWRIZWlnaHQ6MCxzZXRGdWxsU2NyZWVuQ2FudmFzU2l6ZTpmdW5jdGlvbiAoKSB7
Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICB0aGlzLndp
bmRvd2VkV2lkdGggPSBjYW52YXMud2lkdGg7Ci0gICAgICAgIHRoaXMud2luZG93ZWRIZWlnaHQg
PSBjYW52YXMuaGVpZ2h0OwotICAgICAgICBjYW52YXMud2lkdGggPSBzY3JlZW4ud2lkdGg7Ci0g
ICAgICAgIGNhbnZhcy5oZWlnaHQgPSBzY3JlZW4uaGVpZ2h0OwotICAgICAgICAvLyBjaGVjayBp
ZiBTREwgaXMgYXZhaWxhYmxlICAgCi0gICAgICAgIGlmICh0eXBlb2YgU0RMICE9ICJ1bmRlZmlu
ZWQiKSB7Ci0gICAgICAgIAl2YXIgZmxhZ3MgPSBIRUFQVTMyWygoU0RMLnNjcmVlbitSdW50aW1l
LlFVQU5UVU1fU0laRSowKT4+MildOwotICAgICAgICAJZmxhZ3MgPSBmbGFncyB8IDB4MDA4MDAw
MDA7IC8vIHNldCBTRExfRlVMTFNDUkVFTiBmbGFnCi0gICAgICAgIAlIRUFQMzJbKChTREwuc2Ny
ZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV09ZmxhZ3MKLSAgICAgICAgfQotICAgICAg
ICBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVycygpOwotICAgICAgfSxzZXRXaW5kb3dlZENh
bnZhc1NpemU6ZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52
YXMnXTsKLSAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy53aW5kb3dlZFdpZHRoOwotICAgICAg
ICBjYW52YXMuaGVpZ2h0ID0gdGhpcy53aW5kb3dlZEhlaWdodDsKLSAgICAgICAgLy8gY2hlY2sg
aWYgU0RMIGlzIGF2YWlsYWJsZSAgICAgICAKLSAgICAgICAgaWYgKHR5cGVvZiBTREwgIT0gInVu
ZGVmaW5lZCIpIHsKLSAgICAgICAgCXZhciBmbGFncyA9IEhFQVBVMzJbKChTREwuc2NyZWVuK1J1
bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV07Ci0gICAgICAgIAlmbGFncyA9IGZsYWdzICYgfjB4
MDA4MDAwMDA7IC8vIGNsZWFyIFNETF9GVUxMU0NSRUVOIGZsYWcKLSAgICAgICAgCUhFQVAzMlso
KFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXT1mbGFncwotICAgICAgICB9
Ci0gICAgICAgIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7Ci0gICAgICB9fTsKLV9s
bHZtX2VoX2V4Y2VwdGlvbi5idWYgPSBhbGxvY2F0ZSgxMiwgInZvaWQqIiwgQUxMT0NfU1RBVElD
KTsKLUZTLnN0YXRpY0luaXQoKTtfX0FUSU5JVF9fLnVuc2hpZnQoeyBmdW5jOiBmdW5jdGlvbigp
IHsgaWYgKCFNb2R1bGVbIm5vRlNJbml0Il0gJiYgIUZTLmluaXQuaW5pdGlhbGl6ZWQpIEZTLmlu
aXQoKSB9IH0pO19fQVRNQUlOX18ucHVzaCh7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBGUy5pZ25vcmVQ
ZXJtaXNzaW9ucyA9IGZhbHNlIH0gfSk7X19BVEVYSVRfXy5wdXNoKHsgZnVuYzogZnVuY3Rpb24o
KSB7IEZTLnF1aXQoKSB9IH0pO01vZHVsZVsiRlNfY3JlYXRlRm9sZGVyIl0gPSBGUy5jcmVhdGVG
b2xkZXI7TW9kdWxlWyJGU19jcmVhdGVQYXRoIl0gPSBGUy5jcmVhdGVQYXRoO01vZHVsZVsiRlNf
Y3JlYXRlRGF0YUZpbGUiXSA9IEZTLmNyZWF0ZURhdGFGaWxlO01vZHVsZVsiRlNfY3JlYXRlUHJl
bG9hZGVkRmlsZSJdID0gRlMuY3JlYXRlUHJlbG9hZGVkRmlsZTtNb2R1bGVbIkZTX2NyZWF0ZUxh
enlGaWxlIl0gPSBGUy5jcmVhdGVMYXp5RmlsZTtNb2R1bGVbIkZTX2NyZWF0ZUxpbmsiXSA9IEZT
LmNyZWF0ZUxpbms7TW9kdWxlWyJGU19jcmVhdGVEZXZpY2UiXSA9IEZTLmNyZWF0ZURldmljZTsK
LV9fX2Vycm5vX3N0YXRlID0gUnVudGltZS5zdGF0aWNBbGxvYyg0KTsgSEVBUDMyWygoX19fZXJy
bm9fc3RhdGUpPj4yKV09MDsKLV9mZ2V0Yy5yZXQgPSBhbGxvY2F0ZShbMF0sICJpOCIsIEFMTE9D
X1NUQVRJQyk7Ci1Nb2R1bGVbInJlcXVlc3RGdWxsU2NyZWVuIl0gPSBmdW5jdGlvbihsb2NrUG9p
bnRlciwgcmVzaXplQ2FudmFzKSB7IEJyb3dzZXIucmVxdWVzdEZ1bGxTY3JlZW4obG9ja1BvaW50
ZXIsIHJlc2l6ZUNhbnZhcykgfTsKLSAgTW9kdWxlWyJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXSA9
IGZ1bmN0aW9uKGZ1bmMpIHsgQnJvd3Nlci5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuYykgfTsK
LSAgTW9kdWxlWyJzZXRDYW52YXNTaXplIl0gPSBmdW5jdGlvbih3aWR0aCwgaGVpZ2h0LCBub1Vw
ZGF0ZXMpIHsgQnJvd3Nlci5zZXRDYW52YXNTaXplKHdpZHRoLCBoZWlnaHQsIG5vVXBkYXRlcykg
fTsKLSAgTW9kdWxlWyJwYXVzZU1haW5Mb29wIl0gPSBmdW5jdGlvbigpIHsgQnJvd3Nlci5tYWlu
TG9vcC5wYXVzZSgpIH07Ci0gIE1vZHVsZVsicmVzdW1lTWFpbkxvb3AiXSA9IGZ1bmN0aW9uKCkg
eyBCcm93c2VyLm1haW5Mb29wLnJlc3VtZSgpIH07Ci0gIE1vZHVsZVsiZ2V0VXNlck1lZGlhIl0g
PSBmdW5jdGlvbigpIHsgQnJvd3Nlci5nZXRVc2VyTWVkaWEoKSB9Ci1TVEFDS19CQVNFID0gU1RB
Q0tUT1AgPSBSdW50aW1lLmFsaWduTWVtb3J5KFNUQVRJQ1RPUCk7Ci1zdGF0aWNTZWFsZWQgPSB0
cnVlOyAvLyBzZWFsIHRoZSBzdGF0aWMgcG9ydGlvbiBvZiBtZW1vcnkKLVNUQUNLX01BWCA9IFNU
QUNLX0JBU0UgKyA1MjQyODgwOwotRFlOQU1JQ19CQVNFID0gRFlOQU1JQ1RPUCA9IFJ1bnRpbWUu
YWxpZ25NZW1vcnkoU1RBQ0tfTUFYKTsKLWFzc2VydChEWU5BTUlDX0JBU0UgPCBUT1RBTF9NRU1P
UlkpOyAvLyBTdGFjayBtdXN0IGZpdCBpbiBUT1RBTF9NRU1PUlk7IGFsbG9jYXRpb25zIGZyb20g
aGVyZSBvbiBtYXkgZW5sYXJnZSBUT1RBTF9NRU1PUlkKLSB2YXIgY3R0el9pOCA9IGFsbG9jYXRl
KFs4LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSww
LDIsMCwxLDAsNSwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAs
MywwLDEsMCwyLDAsMSwwLDYsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwy
LDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQs
MCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNywwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiww
LDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwzLDAs
MSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw2LDAsMSwwLDIsMCwx
LDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEs
MCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSww
XSwgImk4IiwgQUxMT0NfRFlOQU1JQyk7Ci12YXIgTWF0aF9taW4gPSBNYXRoLm1pbjsKLWZ1bmN0
aW9uIGludm9rZV92aWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUpIHsKLSAgdHJ5IHsKLSAgICBN
b2R1bGVbImR5bkNhbGxfdmlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUpOwotICB9IGNhdGNo
KGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykg
dGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGlu
dm9rZV92aWlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNykgewotICB0cnkgewotICAg
IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaSJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3KTsK
LSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAn
bG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1m
dW5jdGlvbiBpbnZva2VfdmkoaW5kZXgsYTEpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNh
bGxfdmkiXShpbmRleCxhMSk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0g
J251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXci
XSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaShpbmRleCxhMSxhMikgewotICB0
cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWkiXShpbmRleCxhMSxhMik7Ci0gIH0gY2F0Y2go
ZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0
aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52
b2tlX2lpaShpbmRleCxhMSxhMikgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNh
bGxfaWlpIl0oaW5kZXgsYTEsYTIpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUg
IT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRo
cmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9paWlpaWkoaW5kZXgsYTEsYTIs
YTMsYTQsYTUpIHsKLSAgdHJ5IHsKLSAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaSJd
KGluZGV4LGExLGEyLGEzLGE0LGE1KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBl
ICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRU
aHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfaWkoaW5kZXgsYTEpIHsKLSAg
dHJ5IHsKLSAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpIl0oaW5kZXgsYTEpOwotICB9IGNh
dGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1w
JykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9u
IGludm9rZV9paWlpKGluZGV4LGExLGEyLGEzKSB7Ci0gIHRyeSB7Ci0gICAgcmV0dXJuIE1vZHVs
ZVsiZHluQ2FsbF9paWlpIl0oaW5kZXgsYTEsYTIsYTMpOwotICB9IGNhdGNoKGUpIHsKLSAgICBp
ZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAg
ICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlm
KGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxs
X3ZpaWlpaWYiXShpbmRleCxhMSxhMixhMyxhNCxhNSxhNik7Ci0gIH0gY2F0Y2goZSkgewotICAg
IGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwot
ICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWko
aW5kZXgsYTEsYTIsYTMpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmlpaSJdKGlu
ZGV4LGExLGEyLGEzKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVt
YmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEs
IDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlpKGluZGV4LGExLGEyLGEzLGE0
LGE1LGE2LGE3LGE4KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaSJd
KGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYg
KHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAg
YXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdihpbmRleCkg
ewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92Il0oaW5kZXgpOwotICB9IGNhdGNoKGUp
IHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhy
b3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9r
ZV9paWlpaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpIHsKLSAgdHJ5IHsKLSAg
ICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWlpaSJdKGluZGV4LGExLGEyLGEzLGE0LGE1
LGE2LGE3LGE4KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVy
JyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDAp
OwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxh
NSxhNixhNyxhOCxhOSkgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWlp
Il0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgsYTkpOwotICB9IGNhdGNoKGUpIHsKLSAg
ICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsK
LSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlp
aWlpZihpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNykgewotICB0cnkgewotICAgIE1vZHVsZVsi
ZHluQ2FsbF92aWlpaWlpZiJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3KTsKLSAgfSBjYXRj
aChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcp
IHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBp
bnZva2VfdmlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNikgewotICB0cnkgewotICAgIE1v
ZHVsZVsiZHluQ2FsbF92aWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYpOwotICB9IGNh
dGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1w
JykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9u
IGludm9rZV9paWlpaShpbmRleCxhMSxhMixhMyxhNCkgewotICB0cnkgewotICAgIHJldHVybiBN
b2R1bGVbImR5bkNhbGxfaWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCk7Ci0gIH0gY2F0Y2goZSkg
ewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJv
dyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tl
X3ZpaWlpKGluZGV4LGExLGEyLGEzLGE0KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxs
X3ZpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlw
ZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21b
InNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGFzbVByaW50SW50KHgsIHkpIHsK
LSAgTW9kdWxlLnByaW50KCdpbnQgJyArIHggKyAnLCcgKyB5KTsvLyArICcgJyArIG5ldyBFcnJv
cigpLnN0YWNrKTsKLX0KLWZ1bmN0aW9uIGFzbVByaW50RmxvYXQoeCwgeSkgewotICBNb2R1bGUu
cHJpbnQoJ2Zsb2F0ICcgKyB4ICsgJywnICsgeSk7Ly8gKyAnICcgKyBuZXcgRXJyb3IoKS5zdGFj
ayk7Ci19Ci0vLyBFTVNDUklQVEVOX1NUQVJUX0FTTQotdmFyIGFzbT0oZnVuY3Rpb24oZ2xvYmFs
LGVudixidWZmZXIpeyJ1c2UgYXNtIjt2YXIgYT1uZXcgZ2xvYmFsLkludDhBcnJheShidWZmZXIp
O3ZhciBiPW5ldyBnbG9iYWwuSW50MTZBcnJheShidWZmZXIpO3ZhciBjPW5ldyBnbG9iYWwuSW50
MzJBcnJheShidWZmZXIpO3ZhciBkPW5ldyBnbG9iYWwuVWludDhBcnJheShidWZmZXIpO3ZhciBl
PW5ldyBnbG9iYWwuVWludDE2QXJyYXkoYnVmZmVyKTt2YXIgZj1uZXcgZ2xvYmFsLlVpbnQzMkFy
cmF5KGJ1ZmZlcik7dmFyIGc9bmV3IGdsb2JhbC5GbG9hdDMyQXJyYXkoYnVmZmVyKTt2YXIgaD1u
ZXcgZ2xvYmFsLkZsb2F0NjRBcnJheShidWZmZXIpO3ZhciBpPWVudi5TVEFDS1RPUHwwO3ZhciBq
PWVudi5TVEFDS19NQVh8MDt2YXIgaz1lbnYudGVtcERvdWJsZVB0cnwwO3ZhciBsPWVudi5BQk9S
VHwwO3ZhciBtPWVudi5jdHR6X2k4fDA7dmFyIG49ZW52LmN0bHpfaTh8MDt2YXIgbz1lbnYuX3N0
ZGlufDA7dmFyIHA9ZW52Ll9fWlRWTjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FfDA7
dmFyIHE9ZW52Ll9fWlRWTjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FfDA7dmFy
IHI9ZW52Ll9zdGRlcnJ8MDt2YXIgcz1lbnYuX19fZnNtdTh8MDt2YXIgdD1lbnYuX3N0ZG91dHww
O3ZhciB1PWVudi5fX19kc29faGFuZGxlfDA7dmFyIHY9K2Vudi5OYU47dmFyIHc9K2Vudi5JbmZp
bml0eTt2YXIgeD0wO3ZhciB5PTA7dmFyIHo9MDt2YXIgQT0wO3ZhciBCPTAsQz0wLEQ9MCxFPTAs
Rj0wLjAsRz0wLEg9MCxJPTAsSj0wLjA7dmFyIEs9MDt2YXIgTD0wO3ZhciBNPTA7dmFyIE49MDt2
YXIgTz0wO3ZhciBQPTA7dmFyIFE9MDt2YXIgUj0wO3ZhciBTPTA7dmFyIFQ9MDt2YXIgVT1nbG9i
YWwuTWF0aC5mbG9vcjt2YXIgVj1nbG9iYWwuTWF0aC5hYnM7dmFyIFc9Z2xvYmFsLk1hdGguc3Fy
dDt2YXIgWD1nbG9iYWwuTWF0aC5wb3c7dmFyIFk9Z2xvYmFsLk1hdGguY29zO3ZhciBaPWdsb2Jh
bC5NYXRoLnNpbjt2YXIgXz1nbG9iYWwuTWF0aC50YW47dmFyICQ9Z2xvYmFsLk1hdGguYWNvczt2
YXIgYWE9Z2xvYmFsLk1hdGguYXNpbjt2YXIgYWI9Z2xvYmFsLk1hdGguYXRhbjt2YXIgYWM9Z2xv
YmFsLk1hdGguYXRhbjI7dmFyIGFkPWdsb2JhbC5NYXRoLmV4cDt2YXIgYWU9Z2xvYmFsLk1hdGgu
bG9nO3ZhciBhZj1nbG9iYWwuTWF0aC5jZWlsO3ZhciBhZz1nbG9iYWwuTWF0aC5pbXVsO3ZhciBh
aD1lbnYuYWJvcnQ7dmFyIGFpPWVudi5hc3NlcnQ7dmFyIGFqPWVudi5hc21QcmludEludDt2YXIg
YWs9ZW52LmFzbVByaW50RmxvYXQ7dmFyIGFsPWVudi5taW47dmFyIGFtPWVudi5pbnZva2Vfdmlp
aWlpO3ZhciBhbj1lbnYuaW52b2tlX3ZpaWlpaWlpO3ZhciBhbz1lbnYuaW52b2tlX3ZpO3ZhciBh
cD1lbnYuaW52b2tlX3ZpaTt2YXIgYXE9ZW52Lmludm9rZV9paWk7dmFyIGFyPWVudi5pbnZva2Vf
aWlpaWlpO3ZhciBhcz1lbnYuaW52b2tlX2lpO3ZhciBhdD1lbnYuaW52b2tlX2lpaWk7dmFyIGF1
PWVudi5pbnZva2VfdmlpaWlpZjt2YXIgYXY9ZW52Lmludm9rZV92aWlpO3ZhciBhdz1lbnYuaW52
b2tlX3ZpaWlpaWlpaTt2YXIgYXg9ZW52Lmludm9rZV92O3ZhciBheT1lbnYuaW52b2tlX2lpaWlp
aWlpaTt2YXIgYXo9ZW52Lmludm9rZV92aWlpaWlpaWlpO3ZhciBhQT1lbnYuaW52b2tlX3ZpaWlp
aWlmO3ZhciBhQj1lbnYuaW52b2tlX3ZpaWlpaWk7dmFyIGFDPWVudi5pbnZva2VfaWlpaWk7dmFy
IGFEPWVudi5pbnZva2VfdmlpaWk7dmFyIGFFPWVudi5fbGx2bV9saWZldGltZV9lbmQ7dmFyIGFG
PWVudi5fX3NjYW5TdHJpbmc7dmFyIGFHPWVudi5fcHRocmVhZF9tdXRleF9sb2NrO3ZhciBhSD1l
bnYuX19fY3hhX2VuZF9jYXRjaDt2YXIgYUk9ZW52Ll9zdHJ0b3VsbDt2YXIgYUo9ZW52Ll9faXNG
bG9hdDt2YXIgYUs9ZW52Ll9mZmx1c2g7dmFyIGFMPWVudi5fX2lzTGVhcFllYXI7dmFyIGFNPWVu
di5fZndyaXRlO3ZhciBhTj1lbnYuX3NlbmQ7dmFyIGFPPWVudi5fbGx2bV91bXVsX3dpdGhfb3Zl
cmZsb3dfaTMyO3ZhciBhUD1lbnYuX2lzc3BhY2U7dmFyIGFRPWVudi5fcmVhZDt2YXIgYVI9ZW52
Ll9fX2N4YV9ndWFyZF9hYm9ydDt2YXIgYVM9ZW52Ll9uZXdsb2NhbGU7dmFyIGFUPWVudi5fX19n
eHhfcGVyc29uYWxpdHlfdjA7dmFyIGFVPWVudi5fcHRocmVhZF9jb25kX3dhaXQ7dmFyIGFWPWVu
di5fX19jeGFfcmV0aHJvdzt2YXIgYVc9ZW52Ll9fX3Jlc3VtZUV4Y2VwdGlvbjt2YXIgYVg9ZW52
Ll9sbHZtX3ZhX2VuZDt2YXIgYVk9ZW52Ll92c3NjYW5mO3ZhciBhWj1lbnYuX3NucHJpbnRmO3Zh
ciBhXz1lbnYuX2ZnZXRjO3ZhciBhJD1lbnYuX2F0ZXhpdDt2YXIgYTA9ZW52Ll9fX2N4YV9mcmVl
X2V4Y2VwdGlvbjt2YXIgYTE9ZW52Ll9fWjhjYXRjbG9zZVA4X25sX2NhdGQ7dmFyIGEyPWVudi5f
X19zZXRFcnJObzt2YXIgYTM9ZW52Ll9pc3hkaWdpdDt2YXIgYTQ9ZW52Ll9leGl0O3ZhciBhNT1l
bnYuX3NwcmludGY7dmFyIGE2PWVudi5fX19jdHlwZV9iX2xvYzt2YXIgYTc9ZW52Ll9mcmVlbG9j
YWxlO3ZhciBhOD1lbnYuX19aN2NhdG9wZW5QS2NpO3ZhciBhOT1lbnYuX2FzcHJpbnRmO3ZhciBi
YT1lbnYuX19fY3hhX2lzX251bWJlcl90eXBlO3ZhciBiYj1lbnYuX19fY3hhX2RvZXNfaW5oZXJp
dDt2YXIgYmM9ZW52Ll9fX2N4YV9ndWFyZF9hY3F1aXJlO3ZhciBiZD1lbnYuX19fbG9jYWxlX21i
X2N1cl9tYXg7dmFyIGJlPWVudi5fX19jeGFfYmVnaW5fY2F0Y2g7dmFyIGJmPWVudi5fcmVjdjt2
YXIgYmc9ZW52Ll9fcGFyc2VJbnQ2NDt2YXIgYmg9ZW52Ll9fWlN0MTh1bmNhdWdodF9leGNlcHRp
b252O3ZhciBiaT1lbnYuX19fY3hhX2NhbGxfdW5leHBlY3RlZDt2YXIgYmo9ZW52Ll9fZXhpdDt2
YXIgYms9ZW52Ll9zdHJmdGltZTt2YXIgYmw9ZW52Ll9fX2N4YV90aHJvdzt2YXIgYm09ZW52Ll9s
bHZtX2VoX2V4Y2VwdGlvbjt2YXIgYm49ZW52Ll9wcmVhZDt2YXIgYm89ZW52Ll9fYXJyYXlTdW07
dmFyIGJwPWVudi5fbG9nO3ZhciBicT1lbnYuX19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2g7dmFy
IGJyPWVudi5fX2Zvcm1hdFN0cmluZzt2YXIgYnM9ZW52Ll9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0
O3ZhciBidD1lbnYuX19aU3Q5dGVybWluYXRldjt2YXIgYnU9ZW52Ll9wdGhyZWFkX211dGV4X3Vu
bG9jazt2YXIgYnY9ZW52Ll9zYnJrO3ZhciBidz1lbnYuX19fZXJybm9fbG9jYXRpb247dmFyIGJ4
PWVudi5fc3RyZXJyb3I7dmFyIGJ5PWVudi5fbGx2bV9saWZldGltZV9zdGFydDt2YXIgYno9ZW52
Ll9fX2N4YV9ndWFyZF9yZWxlYXNlO3ZhciBiQT1lbnYuX3VuZ2V0Yzt2YXIgYkI9ZW52Ll91c2Vs
b2NhbGU7dmFyIGJDPWVudi5fdnNucHJpbnRmO3ZhciBiRD1lbnYuX3NzY2FuZjt2YXIgYkU9ZW52
Ll9zeXNjb25mO3ZhciBiRj1lbnYuX2ZyZWFkO3ZhciBiRz1lbnYuX2Fib3J0O3ZhciBiSD1lbnYu
X2lzZGlnaXQ7dmFyIGJJPWVudi5fc3RydG9sbDt2YXIgYko9ZW52Ll9fYWRkRGF5czt2YXIgYks9
ZW52Ll9mbG9vcjt2YXIgYkw9ZW52Ll9fcmVhbGx5TmVnYXRpdmU7dmFyIGJNPWVudi5fX1o3Y2F0
Z2V0c1A4X25sX2NhdGRpaVBLYzt2YXIgYk49ZW52Ll93cml0ZTt2YXIgYk89ZW52Ll9fX2N4YV9h
bGxvY2F0ZV9leGNlcHRpb247dmFyIGJQPWVudi5fX19jeGFfcHVyZV92aXJ0dWFsO3ZhciBiUT1l
bnYuX3Zhc3ByaW50Zjt2YXIgYlI9ZW52Ll9fX2N0eXBlX3RvdXBwZXJfbG9jO3ZhciBiUz1lbnYu
X19fY3R5cGVfdG9sb3dlcl9sb2M7dmFyIGJUPWVudi5fcHdyaXRlO3ZhciBiVT1lbnYuX3N0cmVy
cm9yX3I7dmFyIGJWPWVudi5fdGltZTsKLS8vIEVNU0NSSVBURU5fU1RBUlRfRlVOQ1MKLWZ1bmN0
aW9uIGNjKGEpe2E9YXwwO3ZhciBiPTA7Yj1pO2k9aSthfDA7aT1pKzc+PjM8PDM7cmV0dXJuIGJ8
MH1mdW5jdGlvbiBjZCgpe3JldHVybiBpfDB9ZnVuY3Rpb24gY2UoYSl7YT1hfDA7aT1hfWZ1bmN0
aW9uIGNmKGEsYil7YT1hfDA7Yj1ifDA7aWYoKHh8MCk9PTApe3g9YTt5PWJ9fWZ1bmN0aW9uIGNn
KGIpe2I9YnwwO2Fba109YVtiXTthW2srMXwwXT1hW2IrMXwwXTthW2srMnwwXT1hW2IrMnwwXTth
W2srM3wwXT1hW2IrM3wwXX1mdW5jdGlvbiBjaChiKXtiPWJ8MDthW2tdPWFbYl07YVtrKzF8MF09
YVtiKzF8MF07YVtrKzJ8MF09YVtiKzJ8MF07YVtrKzN8MF09YVtiKzN8MF07YVtrKzR8MF09YVti
KzR8MF07YVtrKzV8MF09YVtiKzV8MF07YVtrKzZ8MF09YVtiKzZ8MF07YVtrKzd8MF09YVtiKzd8
MF19ZnVuY3Rpb24gY2koYSl7YT1hfDA7Sz1hfWZ1bmN0aW9uIGNqKGEpe2E9YXwwO0w9YX1mdW5j
dGlvbiBjayhhKXthPWF8MDtNPWF9ZnVuY3Rpb24gY2woYSl7YT1hfDA7Tj1hfWZ1bmN0aW9uIGNt
KGEpe2E9YXwwO089YX1mdW5jdGlvbiBjbihhKXthPWF8MDtQPWF9ZnVuY3Rpb24gY28oYSl7YT1h
fDA7UT1hfWZ1bmN0aW9uIGNwKGEpe2E9YXwwO1I9YX1mdW5jdGlvbiBjcShhKXthPWF8MDtTPWF9
ZnVuY3Rpb24gY3IoYSl7YT1hfDA7VD1hfWZ1bmN0aW9uIGNzKCl7Y1txKzg+PjJdPTI1MDtjW3Er
MTI+PjJdPTEyODtjW3ErMTY+PjJdPTYyO2NbcSsyMD4+Ml09MTUwO2NbcSsyND4+Ml09ODtjW3Er
Mjg+PjJdPTEwO2NbcSszMj4+Ml09MjtjW3ErMzY+PjJdPTI7Y1twKzg+PjJdPTI1MDtjW3ArMTI+
PjJdPTI0NDtjW3ArMTY+PjJdPTYyO2NbcCsyMD4+Ml09MTUwO2NbcCsyND4+Ml09ODtjW3ArMjg+
PjJdPTI2O2NbcCszMj4+Ml09NDtjW3ArMzY+PjJdPTg7Y1syMDM2XT1wKzg7Y1syMDM4XT1wKzg7
Y1syMDQwXT1xKzg7Y1syMDQ0XT1xKzg7Y1syMDQ4XT1xKzg7Y1syMDUyXT1xKzg7Y1syMDU2XT1x
Kzg7Y1syMDYwXT1wKzg7Y1syMDk0XT1xKzg7Y1syMDk4XT1xKzg7Y1syMTYyXT1xKzg7Y1syMTY2
XT1xKzg7Y1syMTg2XT1wKzg7Y1syMTg4XT1xKzg7Y1syMjI0XT1xKzg7Y1syMjI4XT1xKzg7Y1sy
MjY0XT1xKzg7Y1syMjY4XT1xKzg7Y1syMjg4XT1wKzg7Y1syMjkwXT1wKzg7Y1syMjkyXT1xKzg7
Y1syMjk2XT1xKzg7Y1syMzAwXT1xKzg7Y1syMzA0XT1wKzg7Y1syMzA2XT1wKzg7Y1syMzA4XT1w
Kzg7Y1syMzEwXT1wKzg7Y1syMzEyXT1wKzg7Y1syMzE0XT1wKzg7Y1syMzE2XT1wKzg7Y1syMzQy
XT1xKzg7Y1syMzQ2XT1wKzg7Y1syMzQ4XT1xKzg7Y1syMzUyXT1xKzg7Y1syMzU2XT1xKzg7Y1sy
MzYwXT1wKzg7Y1syMzYyXT1wKzg7Y1syMzY0XT1wKzg7Y1syMzY2XT1wKzg7Y1syNDAwXT1wKzg7
Y1syNDAyXT1wKzg7Y1syNDA0XT1wKzg7Y1syNDA2XT1xKzg7Y1syNDEwXT1xKzg7Y1syNDE0XT1x
Kzg7Y1syNDE4XT1xKzg7Y1syNDIyXT1xKzg7Y1syNDI2XT1xKzh9ZnVuY3Rpb24gY3QoYSl7YT1h
fDA7dmFyIGI9MCxkPTA7Yj1jW2E+PjJdfDA7aWYoKGJ8MCk9PTApe3JldHVybn1kPWErNHwwO2E9
Y1tkPj4yXXwwO2lmKChifDApIT0oYXwwKSl7Y1tkPj4yXT1hKyh+KChhLTgrKC1ifDApfDApPj4+
Myk8PDMpfWtTKGIpO3JldHVybn1mdW5jdGlvbiBjdShhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7
dmFyIGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MC4wLHc9MCx4PTAseT0wLjAsej0wLjA7ZD1pO2k9aSsyNHwwO2U9ZHwwO2Y9ZCs4
fDA7Zz1mfDA7Y1tnPj4yXT0wO2o9Zis0fDA7Y1tqPj4yXT0wO2s9Zis4fDA7Y1trPj4yXT0wO2w9
Yi1hfDA7bT1sPj4zO2Rve2lmKChtfDApPT0wKXtuPTA7bz0wfWVsc2V7aWYobT4+PjA+NTM2ODcw
OTExKXtpcihmKX1wPWtPKGwpfDA7Y1tqPj4yXT1wO2NbZz4+Ml09cDtjW2s+PjJdPXArKG08PDMp
O2lmKChhfDApPT0oYnwwKSl7bj1wO289cDticmVha31lbHNle3E9YTtyPXB9ZG97aWYoKHJ8MCk9
PTApe3M9MH1lbHNle2hbcj4+M109K2hbcT4+M107cz1jW2o+PjJdfDB9cj1zKzh8MDtjW2o+PjJd
PXI7cT1xKzh8MDt9d2hpbGUoKHF8MCkhPShifDApKTtuPWNbZz4+Ml18MDtvPXJ9fXdoaWxlKDAp
O2NVKG4sbyxlKTtlPWNbZz4+Ml18MDtvPWNbaj4+Ml18MDtMMjM6ZG97aWYoKGV8MCk9PShvfDAp
KXt0PWV9ZWxzZXtuPWU7d2hpbGUoMSl7dT1uKzh8MDtpZigodXwwKT09KG98MCkpe3Q9ZTticmVh
ayBMMjN9dj0raFtuPj4zXTtpZih2PT0raFt1Pj4zXSl7YnJlYWt9ZWxzZXtuPXV9fWlmKChufDAp
PT0ob3wwKSl7dD1lO2JyZWFrfWVsc2V7dz11O3g9bjt5PXZ9TDI4OndoaWxlKDEpe3I9dztkb3ty
PXIrOHwwO2lmKChyfDApPT0ob3wwKSl7YnJlYWsgTDI4fXo9K2hbcj4+M107fXdoaWxlKHk9PXop
O2I9eCs4fDA7aFtiPj4zXT16O3c9cjt4PWI7eT16fXQ9Y1tnPj4yXXwwfX13aGlsZSgwKTtpZigo
dHwwKT09MCl7aT1kO3JldHVybn1nPWNbaj4+Ml18MDtpZigodHwwKSE9KGd8MCkpe2Nbaj4+Ml09
ZysofigoZy04KygtdHwwKXwwKT4+PjMpPDwzKX1rUyh0KTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGN2
KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MC4wLHg9MC4wLHk9MCx6PTAu
MDtkPWk7aT1pKzI0fDA7ZT1kfDA7Zj1kKzh8MDtnPWZ8MDtjW2c+PjJdPTA7aj1mKzR8MDtjW2o+
PjJdPTA7az1mKzh8MDtjW2s+PjJdPTA7bD1iLWF8MDttPWw+PjM7ZG97aWYoKG18MCk9PTApe249
MDtvPTB9ZWxzZXtpZihtPj4+MD41MzY4NzA5MTEpe2lyKGYpfXA9a08obCl8MDtjW2o+PjJdPXA7
Y1tnPj4yXT1wO2Nbaz4+Ml09cCsobTw8Myk7aWYoKGF8MCk9PShifDApKXtuPXA7bz1wO2JyZWFr
fWVsc2V7cT1hO3I9cH1kb3tpZigocnwwKT09MCl7cz0wfWVsc2V7aFtyPj4zXT0raFtxPj4zXTtz
PWNbaj4+Ml18MH1yPXMrOHwwO2Nbaj4+Ml09cjtxPXErOHwwO313aGlsZSgocXwwKSE9KGJ8MCkp
O249Y1tnPj4yXXwwO289cn19d2hpbGUoMCk7Y1UobixvLGUpO2U9Y1tnPj4yXXwwO289Y1tqPj4y
XXwwO0w1ODpkb3tpZigoZXwwKT09KG98MCkpe3Q9ZTt1PTYyfWVsc2V7bj1lO3doaWxlKDEpe3I9
bis4fDA7aWYoKHJ8MCk9PShvfDApKXt2PWU7YnJlYWsgTDU4fWlmKCtoW24+PjNdPT0raFtyPj4z
XSl7dD1uO3U9NjI7YnJlYWt9ZWxzZXtuPXJ9fX19d2hpbGUoMCk7ZG97aWYoKHV8MCk9PTYyKXtp
ZigodHwwKT09KG98MCkpe3Y9ZTticmVha31uPXQrMTZ8MDtpZigobnwwKT09KG98MCkpe3Y9ZTti
cmVha31yPW47bj10O3c9K2hbdD4+M107d2hpbGUoMSl7eD0raFtyPj4zXTtpZih3PT14KXt5PW47
ej13fWVsc2V7Yj1uKzh8MDtoW2I+PjNdPXg7eT1iO3o9eH1iPXIrOHwwO2lmKChifDApPT0ob3ww
KSl7YnJlYWt9ZWxzZXtyPWI7bj15O3c9en19dj1jW2c+PjJdfDB9fXdoaWxlKDApO2lmKCh2fDAp
PT0wKXtpPWQ7cmV0dXJufWc9Y1tqPj4yXXwwO2lmKCh2fDApIT0oZ3wwKSl7Y1tqPj4yXT1nKyh+
KChnLTgrKC12fDApfDApPj4+Myk8PDMpfWtTKHYpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gY3coYSxi
LGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTA7
ZD1pO2k9aSs4fDA7ZT1kfDA7Zj1lO2c9aTtpPWkrOHwwO2o9ZztrPWk7aT1pKzF8MDtpPWkrNz4+
Mzw8MztsPWk7aT1pKzh8MDttPWk7aT1pKzh8MDtuPWk7aT1pKzF8MDtpPWkrNz4+Mzw8MztvPWk7
aT1pKzI0fDA7cD1pO2k9aSs4fDA7cT1pO2k9aSs4fDA7cj1iO3M9ci1hPj4zO2hbcD4+M109MC4w
O3Q9b3wwO3U9bys0fDA7dj1vKzh8MDtrJChvfDAsMCwyNCk7ZG97aWYoKHN8MCk9PTApe3c9MDt4
PW8rMTZ8MDt5PTA7ej0wO0E9MDtCPTB9ZWxzZXtjTyhvLHMscCk7Qz1jW3U+PjJdfDA7RD1vKzE2
fDA7RT1jW0Q+PjJdfDA7Rj1jW3Y+PjJdfDA7Rz1DKyhFPj4+OTw8Mil8MDtpZigoRnwwKT09KEN8
MCkpe3c9MDt4PUQ7eT1GO3o9RTtBPUM7Qj1HO2JyZWFrfXc9KGNbRz4+Ml18MCkrKChFJjUxMSk8
PDMpfDA7eD1EO3k9Rjt6PUU7QT1DO0I9R319d2hpbGUoMCk7aWYoKGF8MCk9PShifDApKXtIPUE7
ST16O0o9eX1lbHNle3k9YTthPXc7dz1CO3doaWxlKDEpe0I9YTt6PShjW3c+PjJdfDApKzQwOTYt
Qj4+MztBPXk7cD1yLUE+PjM7aWYoKHB8MCk+KHp8MCkpe0s9eSsoejw8Myl8MDtMPXp9ZWxzZXtL
PWI7TD1wfWtfKGF8MCx5fDAsSy1BfDApO2Rve2lmKChMfDApPT0wKXtNPWE7Tj13fWVsc2V7QT0o
Qi0oY1t3Pj4yXXwwKT4+MykrTHwwO2lmKChBfDApPjApe3A9dysoKChBfDApLzUxMnwwKTw8Mil8
MDtNPShjW3A+PjJdfDApKygoKEF8MCklNTEyfDApPDwzKXwwO049cDticmVha31lbHNle3A9NTEx
LUF8MDtBPXcrKCgocHwwKS8tNTEyfDApPDwyKXwwO009KGNbQT4+Ml18MCkrKDUxMS0oKHB8MCkl
NTEyfDApPDwzKXwwO049QTticmVha319fXdoaWxlKDApO2lmKChLfDApPT0oYnwwKSl7YnJlYWt9
ZWxzZXt5PUs7YT1NO3c9Tn19SD1jW3U+PjJdfDA7ST1jW3g+PjJdfDA7Sj1jW3Y+PjJdfDB9Tj1I
KyhJPj4+OTw8Mil8MDtpZigoSnwwKT09KEh8MCkpe0o9bysyMHwwO089MDtQPTA7UT0wO1I9MDtT
PUo7VD1IKygoSSsoY1tKPj4yXXwwKXwwKT4+Pjk8PDIpfDB9ZWxzZXtKPW8rMjB8MDtvPUkrKGNb
Sj4+Ml18MCl8MDt3PUgrKG8+Pj45PDwyKXwwO089KGNbdz4+Ml18MCkrKChvJjUxMSk8PDMpfDA7
UD0wO1E9KGNbTj4+Ml18MCkrKChJJjUxMSk8PDMpfDA7Uj0wO1M9SjtUPXd9Y1tsPj4yXT1SfE47
Y1tsKzQ+PjJdPVE7Y1ttPj4yXT1QfFQ7Y1ttKzQ+PjJdPU87Y0sobCxtLG4pO249Y1t1Pj4yXXww
O209Y1t4Pj4yXXwwO2w9bisobT4+Pjk8PDIpfDA7aWYoKGNbdj4+Ml18MCk9PShufDApKXtVPTA7
Vj0wO1c9MDtYPTA7WT1uKygobSsoY1tTPj4yXXwwKXwwKT4+Pjk8PDIpfDB9ZWxzZXtPPW0rKGNb
Uz4+Ml18MCl8MDtUPW4rKE8+Pj45PDwyKXwwO1U9KGNbVD4+Ml18MCkrKChPJjUxMSk8PDMpfDA7
Vj0wO1c9KGNbbD4+Ml18MCkrKChtJjUxMSk8PDMpfDA7WD0wO1k9VH1jW2U+PjJdPVh8bDtjW2Ur
ND4+Ml09VztjW2c+PjJdPVZ8WTtjW2crND4+Ml09VTtjSShxLGYsaixrKTtrPWNbdT4+Ml18MDtq
PWNbeD4+Ml18MDtmPWsrKGo+Pj45PDwyKXwwO3E9Y1t2Pj4yXXwwO2lmKChxfDApPT0oa3wwKSl7
Wj0wO189MH1lbHNle1U9KGNbUz4+Ml18MCkranwwO1o9KGNbaysoVT4+Pjk8PDIpPj4yXXwwKSso
KFUmNTExKTw8Myl8MDtfPShjW2Y+PjJdfDApKygoaiY1MTEpPDwzKXwwfWo9ZjtmPV87TDExMjp3
aGlsZSgxKXtfPWY7ZG97aWYoKF98MCk9PShafDApKXticmVhayBMMTEyfV89Xys4fDA7fXdoaWxl
KChfLShjW2o+PjJdfDApfDApIT00MDk2KTtfPWorNHwwO2o9XztmPWNbXz4+Ml18MH1jW1M+PjJd
PTA7Uz1xLWs+PjI7aWYoUz4+PjA+Mil7Zj1rO3doaWxlKDEpe2tTKGNbZj4+Ml18MCk7aj0oY1t1
Pj4yXXwwKSs0fDA7Y1t1Pj4yXT1qO1o9Y1t2Pj4yXXwwO189Wi1qPj4yO2lmKF8+Pj4wPjIpe2Y9
an1lbHNleyQ9XzthYT1qO2FiPVo7YnJlYWt9fX1lbHNleyQ9UzthYT1rO2FiPXF9c3dpdGNoKCR8
MCl7Y2FzZSAxOntjW3g+PjJdPTI1NjticmVha307Y2FzZSAyOntjW3g+PjJdPTUxMjticmVha307
ZGVmYXVsdDp7fX1kb3tpZigoYWF8MCkhPShhYnwwKSl7eD1hYTtkb3trUyhjW3g+PjJdfDApO3g9
eCs0fDA7fXdoaWxlKCh4fDApIT0oYWJ8MCkpO3g9Y1t1Pj4yXXwwOyQ9Y1t2Pj4yXXwwO2lmKCh4
fDApPT0oJHwwKSl7YnJlYWt9Y1t2Pj4yXT0kKyh+KCgkLTQrKC14fDApfDApPj4+Mik8PDIpfX13
aGlsZSgwKTt2PWNbdD4+Ml18MDtpZigodnwwKT09MCl7aT1kO3JldHVybn1rUyh2KTtpPWQ7cmV0
dXJufWZ1bmN0aW9uIGN4KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAs
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAuMCx5PTAsej0wO2Q9aTtpPWkrNDh8MDtlPWR8MDtmPWQrOHwwO2c9ZCsxNnwwO2o9ZCsyNHww
O2s9ZCszMnwwO2w9a3wwO209aztjW2w+PjJdPW07bj1rKzR8MDtjW24+PjJdPW07bz1rKzh8MDtj
W28+PjJdPTA7aWYoKGF8MCk9PShifDApKXtwPW07cT0wfWVsc2V7az1hO2E9bTtyPTA7d2hpbGUo
MSl7cz1rTygxNil8MDt0PXM7dT1zKzh8MDtpZigodXwwKSE9MCl7aFt1Pj4zXT0raFtrPj4zXX1j
W2ErND4+Ml09dDtjW3M+PjJdPWNbbD4+Ml07Y1tsPj4yXT10O2Nbcys0Pj4yXT1tO3Y9KGNbbz4+
Ml18MCkrMXwwO2Nbbz4+Ml09djtzPWsrOHwwO2lmKChzfDApPT0oYnwwKSl7YnJlYWt9ZWxzZXtr
PXM7YT10O3I9dn19cD1jW24+PjJdfDA7cT12fWNbZT4+Ml09cDtjW2Y+PjJdPW07Y0ooZyxlLGYs
cSxqKTtqPWNbbj4+Ml18MDtpZigoanwwKSE9KG18MCkpe3E9ajt3aGlsZSgxKXtqPWNbcSs0Pj4y
XXwwO0wxNTA6ZG97aWYoKGp8MCk9PShtfDApKXt3PW19ZWxzZXt4PStoW3ErOD4+M107Zj1qO3do
aWxlKDEpe2lmKHghPStoW2YrOD4+M10pe3c9ZjticmVhayBMMTUwfWU9Y1tmKzQ+PjJdfDA7aWYo
KGV8MCk9PShtfDApKXt3PW07YnJlYWt9ZWxzZXtmPWV9fX19d2hpbGUoMCk7aWYoKGp8MCk9PSh3
fDApKXt5PWp9ZWxzZXtmPShjW3c+PjJdfDApKzR8MDtlPWp8MDtjWyhjW2U+PjJdfDApKzQ+PjJd
PWNbZj4+Ml07Y1tjW2Y+PjJdPj4yXT1jW2U+PjJdO2U9ajt3aGlsZSgxKXtmPWNbZSs0Pj4yXXww
O2Nbbz4+Ml09KGNbbz4+Ml18MCktMTtrUyhlKTtpZigoZnwwKT09KHd8MCkpe3k9dzticmVha31l
bHNle2U9Zn19fWlmKCh5fDApPT0obXwwKSl7YnJlYWt9ZWxzZXtxPXl9fX1pZigoY1tvPj4yXXww
KT09MCl7aT1kO3JldHVybn15PWNbbj4+Ml18MDtuPShjW2w+PjJdfDApKzR8MDtsPXl8MDtjWyhj
W2w+PjJdfDApKzQ+PjJdPWNbbj4+Ml07Y1tjW24+PjJdPj4yXT1jW2w+PjJdO2Nbbz4+Ml09MDtp
ZigoeXwwKT09KG18MCkpe2k9ZDtyZXR1cm59ZWxzZXt6PXl9d2hpbGUoMSl7eT1jW3orND4+Ml18
MDtrUyh6KTtpZigoeXwwKT09KG18MCkpe2JyZWFrfWVsc2V7ej15fX1pPWQ7cmV0dXJufWZ1bmN0
aW9uIGN5KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MDtkPWk7aT1pKzMyfDA7ZT1kfDA7Zj1k
Kzh8MDtnPWQrMTZ8MDtqPWd8MDtrPWcrNHwwO2Nbaz4+Ml09MDtsPWcrOHwwO2NbbD4+Ml09MDtt
PWs7az1nfDA7Y1trPj4yXT1tO2lmKChhfDApPT0oYnwwKSl7bj0wO2NFKGosbik7aT1kO3JldHVy
bn1vPWZ8MDtwPWcrNHwwO2c9YTtkb3tjW28+PjJdPW07YT1jSChqLGYsZSxnKXwwO2lmKChjW2E+
PjJdfDApPT0wKXtxPWtPKDI0KXwwO3I9cSsxNnwwO2lmKChyfDApIT0wKXtoW3I+PjNdPStoW2c+
PjNdfXI9Y1tlPj4yXXwwO3M9cTtjW3E+PjJdPTA7Y1txKzQ+PjJdPTA7Y1txKzg+PjJdPXI7Y1th
Pj4yXT1zO3I9Y1tjW2s+PjJdPj4yXXwwO2lmKChyfDApPT0wKXt0PXN9ZWxzZXtjW2s+PjJdPXI7
dD1jW2E+PjJdfDB9Y0coY1twPj4yXXwwLHQpO2NbbD4+Ml09KGNbbD4+Ml18MCkrMX1nPWcrOHww
O313aGlsZSgoZ3wwKSE9KGJ8MCkpO249Y1twPj4yXXwwO2NFKGosbik7aT1kO3JldHVybn1mdW5j
dGlvbiBjeihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wO2Q9aTtpPWkrMzJ8MDtlPWR8MDtmPWQrOHww
O2c9ZCsxNnwwO2o9Z3wwO2s9Zys0fDA7Y1trPj4yXT0wO2w9Zys4fDA7Y1tsPj4yXT0wO209aztu
PWd8MDtjW24+PjJdPW07ZG97aWYoKGF8MCkhPShifDApKXtvPWZ8MDtwPWcrNHwwO3E9YTtkb3tj
W28+PjJdPW07cj1jQyhqLGYsZSxxKXwwO3M9a08oMjQpfDA7dD1zKzE2fDA7aWYoKHR8MCkhPTAp
e2hbdD4+M109K2hbcT4+M119dD1jW2U+PjJdfDA7dT1zO2Nbcz4+Ml09MDtjW3MrND4+Ml09MDtj
W3MrOD4+Ml09dDtjW3I+PjJdPXU7dD1jW2Nbbj4+Ml0+PjJdfDA7aWYoKHR8MCk9PTApe3Y9dX1l
bHNle2Nbbj4+Ml09dDt2PWNbcj4+Ml18MH1jRyhjW3A+PjJdfDAsdik7Y1tsPj4yXT0oY1tsPj4y
XXwwKSsxO3E9cSs4fDA7fXdoaWxlKChxfDApIT0oYnwwKSk7cT1jW24+PjJdfDA7aWYoKHF8MCk9
PShtfDApKXticmVha31wPWs7bz1nKzR8MDtyPXE7TDIwMjp3aGlsZSgxKXtxPXJ8MDt0PXIrNHww
O3U9cisxNnwwO3doaWxlKDEpe3c9Y1t0Pj4yXXwwO2lmKCh3fDApPT0wKXtzPXE7d2hpbGUoMSl7
eD1jW3MrOD4+Ml18MDtpZigoc3wwKT09KGNbeD4+Ml18MCkpe3k9eDticmVha31lbHNle3M9eH19
fWVsc2V7cz13O3doaWxlKDEpe3g9Y1tzPj4yXXwwO2lmKCh4fDApPT0wKXt5PXM7YnJlYWt9ZWxz
ZXtzPXh9fX1zPXk7aWYoKHl8MCk9PShwfDApKXt6PW87QT0yMTM7YnJlYWsgTDIwMn1pZigraFt1
Pj4zXSE9K2hbeSsxNj4+M10pe2JyZWFrfXg9Y1t5KzQ+PjJdfDA7aWYoKHh8MCk9PTApe0I9eTt3
aGlsZSgxKXtDPWNbQis4Pj4yXXwwO2lmKChCfDApPT0oY1tDPj4yXXwwKSl7RD1DO2JyZWFrfWVs
c2V7Qj1DfX19ZWxzZXtCPXg7d2hpbGUoMSl7Qz1jW0I+PjJdfDA7aWYoKEN8MCk9PTApe0Q9Qjti
cmVha31lbHNle0I9Q319fWlmKChjW24+PjJdfDApPT0oc3wwKSl7Y1tuPj4yXT1EfWNbbD4+Ml09
KGNbbD4+Ml18MCktMTtjQihjW28+PjJdfDAseSk7a1MoeSl9aWYoKHd8MCk9PTApe3U9cTt3aGls
ZSgxKXt0PWNbdSs4Pj4yXXwwO2lmKCh1fDApPT0oY1t0Pj4yXXwwKSl7RT10O2JyZWFrfWVsc2V7
dT10fX19ZWxzZXt1PXc7d2hpbGUoMSl7cT1jW3U+PjJdfDA7aWYoKHF8MCk9PTApe0U9dTticmVh
a31lbHNle3U9cX19fWlmKChFfDApPT0ocHwwKSl7ej1vO0E9MjE0O2JyZWFrfWVsc2V7cj1FfX1p
ZigoQXwwKT09MjE0KXtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtpPWQ7cmV0dXJufWVsc2UgaWYo
KEF8MCk9PTIxMyl7Rj1jW3o+PjJdfDA7Rz1GO2NFKGosRyk7aT1kO3JldHVybn19fXdoaWxlKDAp
O3o9Zys0fDA7Rj1jW3o+PjJdfDA7Rz1GO2NFKGosRyk7aT1kO3JldHVybn1mdW5jdGlvbiBjQShh
KXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLjAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAuMCx4PTAseT0wLHo9MC4wLEE9MCxCPTAu
MCxDPTAsRD0wLEU9MCxGPTAuMCxHPTAsSD0wLEk9MC4wLEo9MC4wLEw9MCxNPTAsTj0wLE89MCxQ
PTA7Yj1pO2k9aSsyNHwwO2Q9YnwwO2U9Yis4fDA7Zj0rKGF8MCk7Zz1+fitVKCsoMTk5MzE1Njgu
NTY5MzI0MTczLyhmKigrYWUoK2YpLy42OTMxNDcxODA1NTk5NDUzKSkpKTtqPWE8PDE7az1jWzI0
NDZdfDA7bD1jWzI0NDddfDA7aWYoKGt8MCkhPShsfDApKXtjWzI0NDddPWwrKH4oKGwtOCsoLWt8
MCl8MCk+Pj4zKTw8Myl9az1lfDA7Y1trPj4yXT0wO2w9ZSs0fDA7Y1tsPj4yXT0wO209ZSs4fDA7
Y1ttPj4yXT0wO2lmKChqfDApPT0wKXtuPTB9ZWxzZXtpZihqPj4+MD41MzY4NzA5MTEpe2lyKGUp
fWU9a08oYTw8NCl8MDtjW2w+PjJdPWU7Y1trPj4yXT1lO2NbbT4+Ml09ZSsoajw8Myk7bT1qO289
ZTtkb3tpZigob3wwKT09MCl7cD0wfWVsc2V7aFtvPj4zXT0wLjA7cD1jW2w+PjJdfDB9bz1wKzh8
MDtjW2w+PjJdPW87bT1tLTF8MDt9d2hpbGUoKG18MCkhPTApO249Y1trPj4yXXwwfW09bisoajw8
Myl8MDtvPW4rKGE8PDMpfDA7aWYoKGF8MCkhPTApe3A9bjtmPTAuMDt3aGlsZSgxKXtlPXArOHww
O2hbcD4+M109ZjtpZigoZXwwKT09KG98MCkpe2JyZWFrfWVsc2V7cD1lO2Y9ZisxLjB9fX1pZigo
anwwKSE9KGF8MCkpe2o9bztmPTAuMDt3aGlsZSgxKXtvPWorOHwwO2hbaj4+M109ZjtpZigob3ww
KT09KG18MCkpe2JyZWFrfWVsc2V7aj1vO2Y9ZisxLjB9fX1jRihuLG0pO2lmKChnfDApPjApe2o9
YTw8NDthPWo+PjM7bz1hTyhhfDAsOCl8MDtwPW47aWYoSyl7ZT1nO3doaWxlKDEpe3E9ZS0xfDA7
cj1rUCgtMSl8MDtzPXI7a1kocnwwLHB8MCxqKXwwO3Q9cysoYTw8Myl8MDtjVShzLHQsZCk7TDI2
ODpkb3tpZigoc3wwKSE9KHR8MCkpe3U9czt3aGlsZSgxKXt2PXUrOHwwO2lmKCh2fDApPT0odHww
KSl7YnJlYWsgTDI2OH13PStoW3U+PjNdO2lmKHc9PStoW3Y+PjNdKXticmVha31lbHNle3U9dn19
aWYoKHV8MCk9PSh0fDApKXticmVha31lbHNle3g9djt5PXU7ej13fXdoaWxlKDEpe0E9eDtkb3tB
PUErOHwwO2lmKChBfDApPT0odHwwKSl7YnJlYWsgTDI2OH1CPStoW0E+PjNdO313aGlsZSh6PT1C
KTtDPXkrOHwwO2hbQz4+M109Qjt4PUE7eT1DO3o9Qn19fXdoaWxlKDApO2lmKChyfDApIT0wKXtr
VChyKX1pZigocXwwKT4wKXtlPXF9ZWxzZXtEPWc7YnJlYWt9fX1lbHNle2U9Zzt3aGlsZSgxKXt5
PWUtMXwwO3g9a1Aobyl8MDt2PXg7a1koeHwwLHB8MCxqKXwwO3Q9disoYTw8Myl8MDtjVSh2LHQs
ZCk7TDI4Nzpkb3tpZigodnwwKSE9KHR8MCkpe3M9djt3aGlsZSgxKXtFPXMrOHwwO2lmKChFfDAp
PT0odHwwKSl7YnJlYWsgTDI4N31GPStoW3M+PjNdO2lmKEY9PStoW0U+PjNdKXticmVha31lbHNl
e3M9RX19aWYoKHN8MCk9PSh0fDApKXticmVha31lbHNle0c9RTtIPXM7ST1GfXdoaWxlKDEpe3U9
Rztkb3t1PXUrOHwwO2lmKCh1fDApPT0odHwwKSl7YnJlYWsgTDI4N31KPStoW3U+PjNdO313aGls
ZShJPT1KKTtBPUgrOHwwO2hbQT4+M109SjtHPXU7SD1BO0k9Sn19fXdoaWxlKDApO2lmKCh4fDAp
IT0wKXtrVCh4KX1pZigoeXwwKT4wKXtlPXl9ZWxzZXtEPWc7YnJlYWt9fX13aGlsZSgxKXtlPUQt
MXwwO2N1KG4sbSxlKTtpZigoZXwwKT4wKXtEPWV9ZWxzZXtMPWc7YnJlYWt9fXdoaWxlKDEpe0Q9
TC0xfDA7Y3YobixtLEQpO2lmKChEfDApPjApe0w9RH1lbHNle009ZzticmVha319d2hpbGUoMSl7
TD1NLTF8MDtjdyhuLG0sTCk7aWYoKEx8MCk+MCl7TT1MfWVsc2V7Tj1nO2JyZWFrfX13aGlsZSgx
KXtNPU4tMXwwO2N4KG4sbSxNKTtpZigoTXwwKT4wKXtOPU19ZWxzZXtPPWc7YnJlYWt9fXdoaWxl
KDEpe049Ty0xfDA7Y3kobixtLE4pO2lmKChOfDApPjApe089Tn1lbHNle1A9ZzticmVha319ZG97
UD1QLTF8MDtjeihuLG0sUCk7fXdoaWxlKChQfDApPjApfVA9Y1trPj4yXXwwO2lmKChQfDApPT0w
KXtpPWI7cmV0dXJufWs9Y1tsPj4yXXwwO2lmKChQfDApIT0oa3wwKSl7Y1tsPj4yXT1rKyh+KChr
LTgrKC1QfDApfDApPj4+Myk8PDMpfWtTKFApO2k9YjtyZXR1cm59ZnVuY3Rpb24gY0IoYixkKXti
PWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0w
LEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtlPWR8MDtmPWNbZT4+Ml18MDtkb3tpZigoZnww
KT09MCl7Zz1kO2g9MzAxfWVsc2V7aT1jW2QrND4+Ml18MDtpZigoaXwwKT09MCl7aj1mO2s9ZDts
PWR8MDtoPTMwMzticmVha31lbHNle209aTt3aGlsZSgxKXtpPWNbbT4+Ml18MDtpZigoaXwwKT09
MCl7Zz1tO2g9MzAxO2JyZWFrfWVsc2V7bT1pfX19fX13aGlsZSgwKTtkb3tpZigoaHwwKT09MzAx
KXtmPWd8MDttPWNbZys0Pj4yXXwwO2lmKChtfDApIT0wKXtqPW07az1nO2w9ZjtoPTMwMzticmVh
a31uPTA7bz0wO3A9Zys4fDA7cT1nO3I9Zn19d2hpbGUoMCk7aWYoKGh8MCk9PTMwMyl7Zz1rKzh8
MDtjW2orOD4+Ml09Y1tnPj4yXTtuPWo7bz0xO3A9ZztxPWs7cj1sfWw9Y1twPj4yXXwwO2s9bHww
O2Rve2lmKChxfDApPT0oY1trPj4yXXwwKSl7Y1trPj4yXT1uO2lmKChxfDApPT0oYnwwKSl7cz1u
O3Q9MDticmVha31zPWI7dD1jWyhjW3A+PjJdfDApKzQ+PjJdfDB9ZWxzZXtjW2wrND4+Ml09bjtz
PWI7dD1jW2NbcD4+Ml0+PjJdfDB9fXdoaWxlKDApO2I9cSsxMnwwO2w9KGFbYl0mMSk9PTA7aWYo
KHF8MCk9PShkfDApKXt1PXN9ZWxzZXtrPWQrOHwwO2c9Y1trPj4yXXwwO2NbcD4+Ml09ZztpZigo
Y1tjW2s+PjJdPj4yXXwwKT09KGR8MCkpe2NbZz4+Ml09cX1lbHNle2NbZys0Pj4yXT1xfWc9Y1tl
Pj4yXXwwO2Nbcj4+Ml09ZztjW2crOD4+Ml09cTtnPWNbZCs0Pj4yXXwwO2NbcSs0Pj4yXT1nO2lm
KChnfDApIT0wKXtjW2crOD4+Ml09cX1hW2JdPWFbZCsxMnwwXSYxO3U9KHN8MCk9PShkfDApP3E6
c31pZihsfCh1fDApPT0wKXtyZXR1cm59aWYobyl7YVtuKzEyfDBdPTE7cmV0dXJufWVsc2V7dj11
O3c9dH13aGlsZSgxKXt0PXcrOHwwO3U9Y1t0Pj4yXXwwO249dysxMnwwO289KGFbbl0mMSkhPTA7
aWYoKHd8MCk9PShjW3U+PjJdfDApKXtpZihvKXt4PXY7eT13fWVsc2V7YVtuXT0xO2FbdSsxMnww
XT0wO2w9Y1t0Pj4yXXwwO3M9bHwwO3E9Y1tzPj4yXXwwO2Q9cSs0fDA7Yj1jW2Q+PjJdfDA7Y1tz
Pj4yXT1iO2lmKChifDApIT0wKXtjW2IrOD4+Ml09bH1iPWwrOHwwO2NbcSs4Pj4yXT1jW2I+PjJd
O3M9Y1tiPj4yXXwwO2c9c3wwO2lmKChjW2c+PjJdfDApPT0obHwwKSl7Y1tnPj4yXT1xfWVsc2V7
Y1tzKzQ+PjJdPXF9Y1tkPj4yXT1sO2NbYj4+Ml09cTtxPWNbdys0Pj4yXXwwO3g9KHZ8MCk9PShx
fDApP3c6djt5PWNbcT4+Ml18MH16PWNbeT4+Ml18MDtBPSh6fDApPT0wO2lmKCFBKXtpZigoYVt6
KzEyfDBdJjEpPT0wKXtoPTM2NTticmVha319cT1jW3krND4+Ml18MDtpZigocXwwKSE9MCl7aWYo
KGFbcSsxMnwwXSYxKT09MCl7aD0zNjQ7YnJlYWt9fWFbeSsxMnwwXT0wO3E9Y1t5Kzg+PjJdfDA7
Qj1xKzEyfDA7aWYoKGFbQl0mMSk9PTB8KHF8MCk9PSh4fDApKXtoPTM2MTticmVha31iPWNbcSs4
Pj4yXXwwO2w9Y1tiPj4yXXwwO2lmKChxfDApIT0obHwwKSl7dj14O3c9bDtjb250aW51ZX12PXg7
dz1jW2IrND4+Ml18MDtjb250aW51ZX1pZihvKXtDPXY7RD13fWVsc2V7YVtuXT0xO2FbdSsxMnww
XT0wO3U9Y1t0Pj4yXXwwO3Q9dSs0fDA7bj1jW3Q+PjJdfDA7bz1ufDA7Yj1jW28+PjJdfDA7Y1t0
Pj4yXT1iO2lmKChifDApIT0wKXtjW2IrOD4+Ml09dX1iPXUrOHwwO2Nbbis4Pj4yXT1jW2I+PjJd
O3Q9Y1tiPj4yXXwwO2w9dHwwO2lmKChjW2w+PjJdfDApPT0odXwwKSl7Y1tsPj4yXT1ufWVsc2V7
Y1t0KzQ+PjJdPW59Y1tvPj4yXT11O2NbYj4+Ml09bjtuPWNbdz4+Ml18MDtDPSh2fDApPT0obnww
KT93OnY7RD1jW24rND4+Ml18MH1FPUR8MDtGPWNbRT4+Ml18MDtpZigoRnwwKSE9MCl7aWYoKGFb
RisxMnwwXSYxKT09MCl7aD0zMzU7YnJlYWt9fW49Y1tEKzQ+PjJdfDA7aWYoKG58MCkhPTApe2lm
KChhW24rMTJ8MF0mMSk9PTApe0c9bjtoPTMzNjticmVha319YVtEKzEyfDBdPTA7bj1jW0QrOD4+
Ml18MDtpZigobnwwKT09KEN8MCkpe0g9QztoPTMzMjticmVha31pZigoYVtuKzEyfDBdJjEpPT0w
KXtIPW47aD0zMzI7YnJlYWt9Yj1jW24rOD4+Ml18MDt1PWNbYj4+Ml18MDtpZigobnwwKSE9KHV8
MCkpe3Y9Qzt3PXU7Y29udGludWV9dj1DO3c9Y1tiKzQ+PjJdfDB9aWYoKGh8MCk9PTMzMil7YVtI
KzEyfDBdPTE7cmV0dXJufWVsc2UgaWYoKGh8MCk9PTMzNSl7SD1jW0QrND4+Ml18MDtpZigoSHww
KT09MCl7aD0zMzd9ZWxzZXtHPUg7aD0zMzZ9fWVsc2UgaWYoKGh8MCk9PTM2MSl7YVtCXT0xO3Jl
dHVybn1lbHNlIGlmKChofDApPT0zNjQpe2lmKEEpe2g9MzY2fWVsc2V7aD0zNjV9fWlmKChofDAp
PT0zMzYpe2lmKChhW0crMTJ8MF0mMSk9PTApe0k9RDtoPTM0M31lbHNle2g9MzM3fX1lbHNlIGlm
KChofDApPT0zNjUpe2lmKChhW3orMTJ8MF0mMSk9PTApe0o9eTtoPTM3Mn1lbHNle2g9MzY2fX1p
ZigoaHwwKT09MzM3KXthW0YrMTJ8MF09MTthW0QrMTJ8MF09MDtGPWNbRT4+Ml18MDt6PUYrNHww
O0c9Y1t6Pj4yXXwwO2NbRT4+Ml09RztpZigoR3wwKSE9MCl7Y1tHKzg+PjJdPUR9Rz1EKzh8MDtj
W0YrOD4+Ml09Y1tHPj4yXTtFPWNbRz4+Ml18MDtBPUV8MDtpZigoY1tBPj4yXXwwKT09KER8MCkp
e2NbQT4+Ml09Rn1lbHNle2NbRSs0Pj4yXT1GfWNbej4+Ml09RDtjW0c+PjJdPUY7ST1GO2g9MzQz
fWVsc2UgaWYoKGh8MCk9PTM2Nil7Rj15KzR8MDthWyhjW0Y+PjJdfDApKzEyfDBdPTE7YVt5KzEy
fDBdPTA7Rz1jW0Y+PjJdfDA7RD1HfDA7ej1jW0Q+PjJdfDA7Y1tGPj4yXT16O2lmKCh6fDApIT0w
KXtjW3orOD4+Ml09eX16PXkrOHwwO2NbRys4Pj4yXT1jW3o+PjJdO0Y9Y1t6Pj4yXXwwO0U9Rnww
O2lmKChjW0U+PjJdfDApPT0oeXwwKSl7Y1tFPj4yXT1HfWVsc2V7Y1tGKzQ+PjJdPUd9Y1tEPj4y
XT15O2Nbej4+Ml09RztKPUc7aD0zNzJ9aWYoKGh8MCk9PTM0Myl7Rz1JKzh8MDt6PShjW0c+PjJd
fDApKzEyfDA7YVtJKzEyfDBdPWFbel0mMTthW3pdPTE7YVsoY1tJKzQ+PjJdfDApKzEyfDBdPTE7
ST1jW0c+PjJdfDA7Rz1JKzR8MDt6PWNbRz4+Ml18MDt5PXp8MDtEPWNbeT4+Ml18MDtjW0c+PjJd
PUQ7aWYoKER8MCkhPTApe2NbRCs4Pj4yXT1JfUQ9SSs4fDA7Y1t6Kzg+PjJdPWNbRD4+Ml07Rz1j
W0Q+PjJdfDA7Rj1HfDA7aWYoKGNbRj4+Ml18MCk9PShJfDApKXtjW0Y+PjJdPXp9ZWxzZXtjW0cr
ND4+Ml09en1jW3k+PjJdPUk7Y1tEPj4yXT16O3JldHVybn1lbHNlIGlmKChofDApPT0zNzIpe2g9
Sis4fDA7ej0oY1toPj4yXXwwKSsxMnwwO2FbSisxMnwwXT1hW3pdJjE7YVt6XT0xO2FbKGNbSj4+
Ml18MCkrMTJ8MF09MTtKPWNbaD4+Ml18MDtoPUp8MDt6PWNbaD4+Ml18MDtEPXorNHwwO0k9Y1tE
Pj4yXXwwO2NbaD4+Ml09STtpZigoSXwwKSE9MCl7Y1tJKzg+PjJdPUp9ST1KKzh8MDtjW3orOD4+
Ml09Y1tJPj4yXTtoPWNbST4+Ml18MDt5PWh8MDtpZigoY1t5Pj4yXXwwKT09KEp8MCkpe2NbeT4+
Ml09en1lbHNle2NbaCs0Pj4yXT16fWNbRD4+Ml09SjtjW0k+PjJdPXo7cmV0dXJufX1mdW5jdGlv
biBjQyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxqPTAsaz0w
LjAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MDtmPWk7Zz1iO2I9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbYj4+Ml09Y1tnPj4yXTtnPWErNHwwO2o9Y1tiPj4yXXww
O2Rve2lmKChqfDApIT0oZ3wwKSl7az0raFtlPj4zXTtpZigraFtqKzE2Pj4zXT49ayl7YnJlYWt9
Yj1nfDA7bD1jW2I+PjJdfDA7aWYoKGx8MCk9PTApe2NbZD4+Ml09ZzttPWI7aT1mO3JldHVybiBt
fDB9ZWxzZXtuPWx9d2hpbGUoMSl7aWYoK2hbbisxNj4+M108ayl7bz1uKzR8MDtsPWNbbz4+Ml18
MDtpZigobHwwKT09MCl7cD00MDY7YnJlYWt9ZWxzZXtuPWw7Y29udGludWV9fWVsc2V7cT1ufDA7
bD1jW3E+PjJdfDA7aWYoKGx8MCk9PTApe3A9NDA4O2JyZWFrfWVsc2V7bj1sO2NvbnRpbnVlfX19
aWYoKHB8MCk9PTQwOCl7Y1tkPj4yXT1uO209cTtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKChwfDAp
PT00MDYpe2NbZD4+Ml09bjttPW87aT1mO3JldHVybiBtfDB9fX13aGlsZSgwKTtvPWNbaj4+Ml18
MDtkb3tpZigoanwwKT09KGNbYT4+Ml18MCkpe3I9an1lbHNle2lmKChvfDApPT0wKXtuPWp8MDt3
aGlsZSgxKXtxPWNbbis4Pj4yXXwwO2lmKChufDApPT0oY1txPj4yXXwwKSl7bj1xfWVsc2V7cz1x
O2JyZWFrfX19ZWxzZXtuPW87d2hpbGUoMSl7cT1jW24rND4+Ml18MDtpZigocXwwKT09MCl7cz1u
O2JyZWFrfWVsc2V7bj1xfX19az0raFtlPj4zXTtpZihrPj0raFtzKzE2Pj4zXSl7cj1zO2JyZWFr
fW49Z3wwO3E9Y1tuPj4yXXwwO2lmKChxfDApPT0wKXtjW2Q+PjJdPWc7bT1uO2k9ZjtyZXR1cm4g
bXwwfWVsc2V7dD1xfXdoaWxlKDEpe2lmKGs8K2hbdCsxNj4+M10pe3U9dHwwO3E9Y1t1Pj4yXXww
O2lmKChxfDApPT0wKXtwPTM5OTticmVha31lbHNle3Q9cTtjb250aW51ZX19ZWxzZXt2PXQrNHww
O3E9Y1t2Pj4yXXwwO2lmKChxfDApPT0wKXtwPTQwMTticmVha31lbHNle3Q9cTtjb250aW51ZX19
fWlmKChwfDApPT0zOTkpe2NbZD4+Ml09dDttPXU7aT1mO3JldHVybiBtfDB9ZWxzZSBpZigocHww
KT09NDAxKXtjW2Q+PjJdPXQ7bT12O2k9ZjtyZXR1cm4gbXwwfX19d2hpbGUoMCk7aWYoKG98MCk9
PTApe2NbZD4+Ml09ajttPWp8MDtpPWY7cmV0dXJuIG18MH1lbHNle2NbZD4+Ml09cjttPXIrNHww
O2k9ZjtyZXR1cm4gbXwwfXJldHVybiAwfWZ1bmN0aW9uIGNEKCl7Y0EoMWU1KTtyZXR1cm4gMH1m
dW5jdGlvbiBjRShhLGIpe2E9YXwwO2I9YnwwO2lmKChifDApPT0wKXtyZXR1cm59ZWxzZXtjRShh
LGNbYj4+Ml18MCk7Y0UoYSxjW2IrND4+Ml18MCk7a1MoYik7cmV0dXJufX1mdW5jdGlvbiBjRihh
LGIpe2E9YXwwO2I9YnwwO3ZhciBjPTAsZD0wLGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MC4w
O2M9aTtpPWkrOHwwO2Q9Y3wwO2U9Yi1hfDA7aWYoKGV8MCk8PTgpe2k9YztyZXR1cm59Y1koZCk7
Zj1iLTh8MDtpZihmPj4+MD5hPj4+MCl7Yj1hO2E9ZT4+Mzt3aGlsZSgxKXtlPWEtMXwwO2Rve2lm
KChlfDApIT0wKXtpZigoYXwwKT09MCl7Zz1jWChkKXwwfWVsc2V7aj0zMi0oa1ooYXwwKXwwKXww
O2s9KCgoLTE+Pj4oKDMzLWp8MCk+Pj4wKSZhfDApPT0wKTw8MzE+PjMxKStqfDA7aj0oaz4+PjAp
LygoKChrJjMxfDApIT0wKSsoaz4+PjUpfDApPj4+MCl8MDtpZigoanwwKT09MCl7bD0wfWVsc2V7
bD0tMT4+PigoMzItanwwKT4+PjApfXdoaWxlKDEpe2o9KGNYKGQpfDApJmw7aWYoaj4+PjA8YT4+
PjApe2c9ajticmVha319fWlmKChnfDApPT0wKXticmVha31qPWIrKGc8PDMpfDA7bT0raFtiPj4z
XTtoW2I+PjNdPStoW2o+PjNdO2hbaj4+M109bX19d2hpbGUoMCk7aj1iKzh8MDtpZihqPj4+MDxm
Pj4+MCl7Yj1qO2E9ZX1lbHNle2JyZWFrfX19Y1coZCk7aT1jO3JldHVybn1mdW5jdGlvbiBjRyhi
LGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MDtlPShkfDApPT0oYnwwKTthW2QrMTJ8MF09ZSYxO2lmKGUp
e3JldHVybn1lbHNle2Y9ZH13aGlsZSgxKXtnPWYrOHwwO2g9Y1tnPj4yXXwwO2Q9aCsxMnwwO2lm
KChhW2RdJjEpIT0wKXtpPTQ4NzticmVha31qPWgrOHwwO2s9Y1tqPj4yXXwwO2U9Y1trPj4yXXww
O2lmKChofDApPT0oZXwwKSl7bD1jW2srND4+Ml18MDtpZigobHwwKT09MCl7aT00NTI7YnJlYWt9
bT1sKzEyfDA7aWYoKGFbbV0mMSkhPTApe2k9NDUyO2JyZWFrfWFbZF09MTthW2srMTJ8MF09KGt8
MCk9PShifDApfDA7YVttXT0xfWVsc2V7aWYoKGV8MCk9PTApe2k9NDY5O2JyZWFrfW09ZSsxMnww
O2lmKChhW21dJjEpIT0wKXtpPTQ2OTticmVha31hW2RdPTE7YVtrKzEyfDBdPShrfDApPT0oYnww
KXwwO2FbbV09MX1pZigoa3wwKT09KGJ8MCkpe2k9NDg0O2JyZWFrfWVsc2V7Zj1rfX1pZigoaXww
KT09NDY5KXtiPWh8MDtpZigoZnwwKT09KGNbYj4+Ml18MCkpe209Zis0fDA7ZD1jW20+PjJdfDA7
Y1tiPj4yXT1kO2lmKChkfDApPT0wKXtuPWt9ZWxzZXtjW2QrOD4+Ml09aDtuPWNbaj4+Ml18MH1j
W2c+PjJdPW47bj1jW2o+PjJdfDA7ZD1ufDA7aWYoKGNbZD4+Ml18MCk9PShofDApKXtjW2Q+PjJd
PWZ9ZWxzZXtjW24rND4+Ml09Zn1jW20+PjJdPWg7Y1tqPj4yXT1mO289ZjtwPWNbZz4+Ml18MH1l
bHNle289aDtwPWt9YVtvKzEyfDBdPTE7YVtwKzEyfDBdPTA7bz1wKzR8MDtnPWNbbz4+Ml18MDtt
PWd8MDtuPWNbbT4+Ml18MDtjW28+PjJdPW47aWYoKG58MCkhPTApe2Nbbis4Pj4yXT1wfW49cCs4
fDA7Y1tnKzg+PjJdPWNbbj4+Ml07bz1jW24+PjJdfDA7ZD1vfDA7aWYoKGNbZD4+Ml18MCk9PShw
fDApKXtjW2Q+PjJdPWd9ZWxzZXtjW28rND4+Ml09Z31jW20+PjJdPXA7Y1tuPj4yXT1nO3JldHVy
bn1lbHNlIGlmKChpfDApPT00ODQpe3JldHVybn1lbHNlIGlmKChpfDApPT00ODcpe3JldHVybn1l
bHNlIGlmKChpfDApPT00NTIpe2lmKChmfDApPT0oY1toPj4yXXwwKSl7cT1oO3I9a31lbHNle2Y9
aCs0fDA7aT1jW2Y+PjJdfDA7Zz1pfDA7bj1jW2c+PjJdfDA7Y1tmPj4yXT1uO2lmKChufDApPT0w
KXtzPWt9ZWxzZXtjW24rOD4+Ml09aDtzPWNbaj4+Ml18MH1uPWkrOHwwO2Nbbj4+Ml09cztzPWNb
aj4+Ml18MDtrPXN8MDtpZigoY1trPj4yXXwwKT09KGh8MCkpe2Nbaz4+Ml09aX1lbHNle2Nbcys0
Pj4yXT1pfWNbZz4+Ml09aDtjW2o+PjJdPWk7cT1pO3I9Y1tuPj4yXXwwfWFbcSsxMnwwXT0xO2Fb
cisxMnwwXT0wO3E9cnwwO249Y1txPj4yXXwwO2k9bis0fDA7aj1jW2k+PjJdfDA7Y1txPj4yXT1q
O2lmKChqfDApIT0wKXtjW2orOD4+Ml09cn1qPXIrOHwwO2Nbbis4Pj4yXT1jW2o+PjJdO3E9Y1tq
Pj4yXXwwO2g9cXwwO2lmKChjW2g+PjJdfDApPT0ocnwwKSl7Y1toPj4yXT1ufWVsc2V7Y1txKzQ+
PjJdPW59Y1tpPj4yXT1yO2Nbaj4+Ml09bjtyZXR1cm59fWZ1bmN0aW9uIGNIKGEsYixkLGUpe2E9
YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGo9MCxrPTAuMCxsPTAuMCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtmPWk7
Zz1iO2I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbYj4+Ml09Y1tnPj4yXTtnPWErNHwwO2o9Y1ti
Pj4yXXwwO2Rve2lmKChqfDApIT0oZ3wwKSl7az0raFtlPj4zXTtsPStoW2orMTY+PjNdO2lmKGs8
bCl7YnJlYWt9aWYobD49ayl7Y1tkPj4yXT1qO209ZDtpPWY7cmV0dXJuIG18MH1iPWorNHwwO249
Y1tiPj4yXXwwO289KG58MCk9PTA7aWYobyl7cD1qfDA7d2hpbGUoMSl7cT1jW3ArOD4+Ml18MDtp
ZigocHwwKT09KGNbcT4+Ml18MCkpe3I9cTticmVha31lbHNle3A9cX19fWVsc2V7cD1uO3doaWxl
KDEpe3E9Y1twPj4yXXwwO2lmKChxfDApPT0wKXtyPXA7YnJlYWt9ZWxzZXtwPXF9fX1wPWc7ZG97
aWYoKHJ8MCkhPShwfDApKXtpZihrPCtoW3IrMTY+PjNdKXticmVha31uPWd8MDtxPWNbbj4+Ml18
MDtpZigocXwwKT09MCl7Y1tkPj4yXT1wO209bjtpPWY7cmV0dXJuIG18MH1lbHNle3M9cX13aGls
ZSgxKXtsPStoW3MrMTY+PjNdO2lmKGs8bCl7dD1zfDA7cT1jW3Q+PjJdfDA7aWYoKHF8MCk9PTAp
e3U9NTIxO2JyZWFrfWVsc2V7cz1xO2NvbnRpbnVlfX1pZihsPj1rKXt1PTUyNTticmVha312PXMr
NHwwO3E9Y1t2Pj4yXXwwO2lmKChxfDApPT0wKXt1PTUyNDticmVha31lbHNle3M9cX19aWYoKHV8
MCk9PTUyMSl7Y1tkPj4yXT1zO209dDtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1fDApPT01MjQp
e2NbZD4+Ml09czttPXY7aT1mO3JldHVybiBtfDB9ZWxzZSBpZigodXwwKT09NTI1KXtjW2Q+PjJd
PXM7bT1kO2k9ZjtyZXR1cm4gbXwwfX19d2hpbGUoMCk7aWYobyl7Y1tkPj4yXT1qO209YjtpPWY7
cmV0dXJuIG18MH1lbHNle2NbZD4+Ml09cjttPXJ8MDtpPWY7cmV0dXJuIG18MH19fXdoaWxlKDAp
O3I9Y1tqPj4yXXwwO2Rve2lmKChqfDApPT0oY1thPj4yXXwwKSl7dz1qfWVsc2V7aWYoKHJ8MCk9
PTApe3M9anwwO3doaWxlKDEpe3Y9Y1tzKzg+PjJdfDA7aWYoKHN8MCk9PShjW3Y+PjJdfDApKXtz
PXZ9ZWxzZXt4PXY7YnJlYWt9fX1lbHNle3M9cjt3aGlsZSgxKXtiPWNbcys0Pj4yXXwwO2lmKChi
fDApPT0wKXt4PXM7YnJlYWt9ZWxzZXtzPWJ9fX1rPStoW2U+PjNdO2lmKCtoW3grMTY+PjNdPGsp
e3c9eDticmVha31zPWd8MDtiPWNbcz4+Ml18MDtpZigoYnwwKT09MCl7Y1tkPj4yXT1nO209cztp
PWY7cmV0dXJuIG18MH1lbHNle3k9Yn13aGlsZSgxKXtsPStoW3krMTY+PjNdO2lmKGs8bCl7ej15
fDA7Yj1jW3o+PjJdfDA7aWYoKGJ8MCk9PTApe3U9NTAyO2JyZWFrfWVsc2V7eT1iO2NvbnRpbnVl
fX1pZihsPj1rKXt1PTUwNjticmVha31BPXkrNHwwO2I9Y1tBPj4yXXwwO2lmKChifDApPT0wKXt1
PTUwNTticmVha31lbHNle3k9Yn19aWYoKHV8MCk9PTUwNSl7Y1tkPj4yXT15O209QTtpPWY7cmV0
dXJuIG18MH1lbHNlIGlmKCh1fDApPT01MDYpe2NbZD4+Ml09eTttPWQ7aT1mO3JldHVybiBtfDB9
ZWxzZSBpZigodXwwKT09NTAyKXtjW2Q+PjJdPXk7bT16O2k9ZjtyZXR1cm4gbXwwfX19d2hpbGUo
MCk7aWYoKHJ8MCk9PTApe2NbZD4+Ml09ajttPWp8MDtpPWY7cmV0dXJuIG18MH1lbHNle2NbZD4+
Ml09dzttPXcrNHwwO2k9ZjtyZXR1cm4gbXwwfXJldHVybiAwfWZ1bmN0aW9uIGNJKGIsZCxlLGYp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxE
PTAsRT0wLEY9MCxHPTAuMCxIPTAsST0wO2c9aTtqPWQ7ZD1pO2k9aSs4fDA7Y1tkPj4yXT1jW2o+
PjJdO2NbZCs0Pj4yXT1jW2orND4+Ml07aj1lO2U9aTtpPWkrOHwwO2NbZT4+Ml09Y1tqPj4yXTtj
W2UrND4+Ml09Y1tqKzQ+PjJdO2o9ZjtmPWk7aT1pKzF8MDtpPWkrNz4+Mzw8MzthW2ZdPWFbal18
MDtqPWR8MDtmPWQrNHwwO2s9Y1tmPj4yXXwwO2w9Y1tlPj4yXXwwO209Y1tlKzQ+PjJdfDA7TDY1
NTpkb3tpZigoa3wwKT09KG18MCkpe249aztvPWw7cD01NDl9ZWxzZXtlPWNbaj4+Ml18MDtxPWU7
cj1rO3M9Y1tlPj4yXXwwO3doaWxlKDEpe2U9cis4fDA7aWYoKGUtc3wwKT09NDA5Nil7dD1xKzR8
MDt1PWNbdD4+Ml18MDt2PXQ7dz11O3g9dX1lbHNle3Y9cTt3PWU7eD1zfWlmKCh3fDApPT0obXww
KSl7YnJlYWt9aWYoK2hbcj4+M109PStoW3c+PjNdKXtuPXI7bz1xO3A9NTQ5O2JyZWFrIEw2NTV9
ZWxzZXtxPXY7cj13O3M9eH19Y1tqPj4yXT1sO2NbZj4+Ml09bX19d2hpbGUoMCk7ZG97aWYoKHB8
MCk9PTU0OSl7Y1tqPj4yXT1vO2NbZj4+Ml09bjtpZigobnwwKT09KG18MCkpe2JyZWFrfWw9bis4
fDA7eD1jW28+PjJdfDA7aWYoKGwteHwwKT09NDA5Nil7dz1vKzR8MDt2PWNbdz4+Ml18MDt5PXc7
ej12O0E9djtCPW47Qz1vfWVsc2V7eT1vO3o9bDtBPXg7Qj1uO0M9b313aGlsZSgxKXt4PXorOHww
O2lmKCh4LUF8MCk9PTQwOTYpe2w9eSs0fDA7dj1jW2w+PjJdfDA7RD1sO0U9djtGPXZ9ZWxzZXtE
PXk7RT14O0Y9QX1pZigoRXwwKT09KG18MCkpe2JyZWFrfUc9K2hbRT4+M107aWYoK2hbQj4+M109
PUcpe3k9RDt6PUU7QT1GO0I9QjtDPUM7Y29udGludWV9eD1CKzh8MDtjW2Y+PjJdPXg7aWYoKHgt
KGNbQz4+Ml18MCl8MCk9PTQwOTYpe3Y9Qys0fDA7Y1tqPj4yXT12O2w9Y1t2Pj4yXXwwO2NbZj4+
Ml09bDtIPXY7ST1sfWVsc2V7SD1DO0k9eH1oW0k+PjNdPUc7eT1EO3o9RTtBPWNbRD4+Ml18MDtC
PUk7Qz1IfXg9Qis4fDA7Y1tmPj4yXT14O2lmKCh4LShjW0M+PjJdfDApfDApIT00MDk2KXticmVh
a314PUMrNHwwO2Nbaj4+Ml09eDtjW2Y+PjJdPWNbeD4+Ml19fXdoaWxlKDApO2Y9ZDtkPWI7Yj1j
W2YrND4+Ml18MDtjW2Q+PjJdPWNbZj4+Ml07Y1tkKzQ+PjJdPWI7aT1nO3JldHVybn1mdW5jdGlv
biBjSihhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MC4wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLjAsRD0wO2c9aTtpPWkrNDh8MDtqPWI7Yj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2o+PjJdO2o9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2Q+PjJdPWNbaj4+Ml07aj1nfDA7az1nKzh8MDtsPWcrMTZ8MDttPWcrMjR8MDtuPWcrMzJ8MDtv
PWcrNDB8MDtzd2l0Y2goZXwwKXtjYXNlIDI6e3A9ZHwwO3E9Y1tjW3A+PjJdPj4yXXwwO2NbcD4+
Ml09cTtwPWNbYj4+Ml18MDtpZigraFtxKzg+PjNdPCtoW3ArOD4+M10pe3I9cSs0fDA7cz1xfDA7
Y1soY1tzPj4yXXwwKSs0Pj4yXT1jW3I+PjJdO2NbY1tyPj4yXT4+Ml09Y1tzPj4yXTt0PXB8MDtj
WyhjW3Q+PjJdfDApKzQ+PjJdPXE7Y1tzPj4yXT1jW3Q+PjJdO2NbdD4+Ml09cTtjW3I+PjJdPXA7
Y1thPj4yXT1xO2k9ZztyZXR1cm59ZWxzZXtjW2E+PjJdPXA7aT1nO3JldHVybn1icmVha307Y2Fz
ZSAwOmNhc2UgMTp7Y1thPj4yXT1jW2I+PjJdO2k9ZztyZXR1cm59O2RlZmF1bHQ6e3A9ZT4+PjE7
cT1ifDA7Yj1jW3E+PjJdfDA7aWYoKHB8MCk9PTApe3U9Yn1lbHNle3I9cDt0PWI7d2hpbGUoMSl7
cz1yLTF8MDt2PWNbdCs0Pj4yXXwwO2lmKChzfDApPjApe3I9czt0PXZ9ZWxzZXt1PXY7YnJlYWt9
fX1jW2s+PjJdPWI7Y1tsPj4yXT11O2NKKGosayxsLHAsZik7bD1jW2o+PjJdfDA7Y1txPj4yXT1s
O2Nbbj4+Ml09dTt1PWR8MDtkPWNbdT4+Ml18MDtjW28+PjJdPWQ7Y0oobSxuLG8sZS1wfDAsZik7
Zj1jW20+PjJdfDA7dz0raFtsKzg+PjNdO2lmKCtoW2YrOD4+M108dyl7bT1jW2YrND4+Ml18MDtM
Njk3OmRve2lmKChtfDApPT0oZHwwKSl7eD1kfWVsc2V7cD1tO3doaWxlKDEpe2lmKCtoW3ArOD4+
M10+PXcpe3g9cDticmVhayBMNjk3fWU9Y1twKzQ+PjJdfDA7aWYoKGV8MCk9PShkfDApKXt4PWQ7
YnJlYWt9ZWxzZXtwPWV9fX19d2hpbGUoMCk7bT1jW3g+PjJdfDA7cD1tKzR8MDtlPWZ8MDtjWyhj
W2U+PjJdfDApKzQ+PjJdPWNbcD4+Ml07Y1tjW3A+PjJdPj4yXT1jW2U+PjJdO289Y1tsKzQ+PjJd
fDA7bj1sfDA7Y1soY1tuPj4yXXwwKSs0Pj4yXT1mO2NbZT4+Ml09Y1tuPj4yXTtjW24+PjJdPW07
Y1twPj4yXT1sO3k9Zjt6PXg7QT1vfWVsc2V7eT1sO3o9ZjtBPWNbbCs0Pj4yXXwwfWNbcT4+Ml09
QTtMNzA0OmRve2lmKChBfDApIT0oenwwKSl7bD16O2Y9ejtvPUE7eD1kO3doaWxlKDEpe3A9bCs4
fDA7aWYoKGx8MCk9PSh4fDApKXticmVhayBMNzA0fWVsc2V7Qj1vfXdoaWxlKDEpe0M9K2hbQis4
Pj4zXTtpZigraFtwPj4zXTxDKXticmVha31tPWNbQis0Pj4yXXwwO2NbcT4+Ml09bTtpZigobXww
KT09KGZ8MCkpe2JyZWFrIEw3MDR9ZWxzZXtCPW19fXA9Y1tsKzQ+PjJdfDA7TDcxMTpkb3tpZigo
cHwwKT09KHh8MCkpe0Q9eH1lbHNle209cDt3aGlsZSgxKXtpZigraFttKzg+PjNdPj1DKXtEPW07
YnJlYWsgTDcxMX1uPWNbbSs0Pj4yXXwwO2lmKChufDApPT0oeHwwKSl7RD14O2JyZWFrfWVsc2V7
bT1ufX19fXdoaWxlKDApO3A9Y1tEPj4yXXwwO209cCs0fDA7bj1sfDA7Y1soY1tuPj4yXXwwKSs0
Pj4yXT1jW20+PjJdO2NbY1ttPj4yXT4+Ml09Y1tuPj4yXTtlPWNbQis0Pj4yXXwwO2o9KGZ8MCk9
PShsfDApP0Q6ZjtrPUJ8MDtjWyhjW2s+PjJdfDApKzQ+PjJdPWw7Y1tuPj4yXT1jW2s+PjJdO2Nb
az4+Ml09cDtjW20+PjJdPUI7Y1txPj4yXT1lO2lmKChlfDApPT0oanwwKSl7YnJlYWsgTDcwNH1s
PUQ7Zj1qO289ZTt4PWNbdT4+Ml18MH19fXdoaWxlKDApO2NbYT4+Ml09eTtpPWc7cmV0dXJufX19
ZnVuY3Rpb24gY0soYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09
MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0w
LCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFr
PTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxhdj0w
LGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0wLGFDPTAsYUQ9MCxhRT0wLGFGPTAsYUc9MC4w
LGFIPTAuMCxhST0wLjAsYUo9MC4wLGFLPTAuMCxhTD0wLGFNPTAsYU49MCxhTz0wLGFQPTAsYVE9
MCxhUj0wLGFTPTAuMCxhVD0wLGFVPTAsYVY9MCxhVz0wLGFYPTAsYVk9MCxhWj0wLGFfPTAsYSQ9
MCxhMD0wLjAsYTE9MCxhMj0wLGEzPTAsYTQ9MCxhNT0wLGE2PTAsYTc9MCxhOD0wLjAsYTk9MCxi
YT0wLGJiPTAsYmM9MCxiZD0wLjAsYmU9MCxiZj0wLGJnPTAsYmg9MCxiaT0wLGJqPTAsYms9MCxi
bD0wLGJtPTAsYm49MCxibz0wLGJwPTAsYnE9MCxicj0wLGJzPTAsYnQ9MCxidT0wLjAsYnY9MCxi
dz0wLGJ4PTAsYnk9MCxiej0wLjAsYkE9MCxiQj0wLGJDPTAsYkQ9MCxiRT0wLGJGPTAsYkc9MCxi
SD0wLGJJPTAsYko9MCxiSz0wLGJMPTAsYk09MCxiTj0wLGJPPTAsYlA9MCxiUT0wLjAsYlI9MCxi
Uz0wLGJUPTA7ZT1pO2k9aSs4fDA7Zj1hO2E9aTtpPWkrOHwwO2NbYT4+Ml09Y1tmPj4yXTtjW2Er
ND4+Ml09Y1tmKzQ+PjJdO2Y9YjtiPWk7aT1pKzh8MDtjW2I+PjJdPWNbZj4+Ml07Y1tiKzQ+PjJd
PWNbZis0Pj4yXTtmPWV8MDtnPWY7aj1pO2k9aSs4fDA7az1qO2w9aTtpPWkrOHwwO209bDtuPWk7
aT1pKzh8MDtvPW47cD1pO2k9aSs4fDA7cT1wO3I9aTtpPWkrOHwwO3M9cjt0PWk7aT1pKzh8MDt1
PXQ7dj1pO2k9aSs4fDA7dz12O3g9aTtpPWkrOHwwO3k9eDt6PWk7aT1pKzh8MDtBPWk7aT1pKzh8
MDtCPWk7aT1pKzh8MDtDPWk7aT1pKzh8MDtEPUM7RT1pO2k9aSs4fDA7Rj1pO2k9aSs4fDA7Rz1p
O2k9aSs4fDA7SD1HO0k9aTtpPWkrOHwwO0o9STtLPWk7aT1pKzh8MDtMPWk7aT1pKzh8MDtNPWk7
aT1pKzh8MDtOPU07Tz1iKzR8MDtQPWNbTz4+Ml18MDtRPWErNHwwO1I9Y1tRPj4yXXwwO2lmKChQ
fDApPT0oUnwwKSl7aT1lO3JldHVybn1TPWJ8MDtUPWF8MDtVPWE7YT15KzR8MDtWPXg7Vz16fDA7
WD16KzR8MDtZPUF8MDtaPUErNHwwO189QnwwOyQ9Qis0fDA7YWE9RXwwO2FiPUUrNHwwO2FjPUZ8
MDthZD1GKzR8MDthZT1iO2I9S3wwO2FmPUsrNHwwO2FnPUx8MDthaD1MKzR8MDthaT1QO1A9UjtM
NzI1OndoaWxlKDEpe2FqPWNbUz4+Ml18MDtSPWNbVD4+Ml18MDthaz1jW2FqPj4yXXwwO2FsPWNb
Uj4+Ml18MDthbT1QLWFsPj4zO2FuPShhaS1haz4+MykrKGFqLVI8PDcpLWFtfDA7c3dpdGNoKGFu
fDApe2Nhc2UgNTp7YW89NjMwO2JyZWFrIEw3MjU7YnJlYWt9O2Nhc2UgNDp7YW89NjEwO2JyZWFr
IEw3MjU7YnJlYWt9O2Nhc2UgMjp7YW89NTkzO2JyZWFrIEw3MjU7YnJlYWt9O2Nhc2UgMzp7YW89
NTk3O2JyZWFrIEw3MjU7YnJlYWt9O2Nhc2UgMDpjYXNlIDE6e2FvPTc2MDticmVhayBMNzI1O2Jy
ZWFrfTtkZWZhdWx0Ont9fWlmKChhbnwwKTwzMSl7YW89NjQzO2JyZWFrfWlmKChhaXwwKT09KGFr
fDApKXthcD1hai00fDA7YXE9YXA7YXI9KGNbYXA+PjJdfDApKzQwOTZ8MH1lbHNle2FxPWFqO2Fy
PWFpfWFwPWFyLTh8MDthcz0oYW58MCkvMnwwO2F0PShhbisxfDApPj4+MD4yO2Rve2lmKChhbnww
KT45OTkpe2Rve2lmKGF0KXthdT1hbSthc3wwO2lmKChhdXwwKT4wKXthdj1SKygoKGF1fDApLzUx
MnwwKTw8Mil8MDthdz1jW2F2Pj4yXXwwO2F4PWF3KygoKGF1fDApJTUxMnwwKTw8Myl8MDtheT1h
djthej1hdzticmVha31lbHNle2F3PTUxMS1hdXwwO2F1PVIrKCgoYXd8MCkvLTUxMnwwKTw8Mil8
MDthdj1jW2F1Pj4yXXwwO2F4PWF2Kyg1MTEtKChhd3wwKSU1MTJ8MCk8PDMpfDA7YXk9YXU7YXo9
YXY7YnJlYWt9fWVsc2V7YXg9UDtheT1SO2F6PWFsfX13aGlsZSgwKTthdj0oYW58MCkvNHwwO2F1
PWNbVT4+Ml18MDthdz1jW1UrND4+Ml18MDtjW3Y+PjJdPWF1O2Nbdis0Pj4yXT1hdztjW3g+PjJd
PWF1O2NbeCs0Pj4yXT1hdzthQT0oYW4rM3wwKT4+PjA+NjthQj1hdTtkb3tpZihhQSl7YXU9KGF3
LShjW2FCPj4yXXwwKT4+MykrYXZ8MDtpZigoYXV8MCk+MCl7YUM9YUIrKCgoYXV8MCkvNTEyfDAp
PDwyKXwwO2NbVj4+Ml09YUM7Y1thPj4yXT0oY1thQz4+Ml18MCkrKCgoYXV8MCklNTEyfDApPDwz
KTtjW1c+PjJdPWF5O2NbWD4+Ml09YXg7Y1tZPj4yXT1heTtjW1o+PjJdPWF4O2lmKCFhQSl7YnJl
YWt9fWVsc2V7YUM9NTExLWF1fDA7YXU9YUIrKCgoYUN8MCkvLTUxMnwwKTw8Mil8MDtjW1Y+PjJd
PWF1O2NbYT4+Ml09KGNbYXU+PjJdfDApKyg1MTEtKChhQ3wwKSU1MTJ8MCk8PDMpO2NbVz4+Ml09
YXk7Y1tYPj4yXT1heDtjW1k+PjJdPWF5O2NbWj4+Ml09YXh9YUM9KGF4LWF6Pj4zKSthdnwwO2lm
KChhQ3wwKT4wKXthdT1heSsoKChhQ3wwKS81MTJ8MCk8PDIpfDA7Y1tZPj4yXT1hdTtjW1o+PjJd
PShjW2F1Pj4yXXwwKSsoKChhQ3wwKSU1MTJ8MCk8PDMpO2JyZWFrfWVsc2V7YXU9NTExLWFDfDA7
YUM9YXkrKCgoYXV8MCkvLTUxMnwwKTw8Mil8MDtjW1k+PjJdPWFDO2NbWj4+Ml09KGNbYUM+PjJd
fDApKyg1MTEtKChhdXwwKSU1MTJ8MCk8PDMpO2JyZWFrfX1lbHNle2NbVz4+Ml09YXk7Y1tYPj4y
XT1heDtjW1k+PjJdPWF5O2NbWj4+Ml09YXh9fXdoaWxlKDApO2NbXz4+Ml09YXE7Y1skPj4yXT1h
cDthRD1jTCh3LHkseixBLEIsMCl8MDthRT1heH1lbHNle2Rve2lmKGF0KXthdj1hbSthc3wwO2lm
KChhdnwwKT4wKXthRj0oY1tSKygoKGF2fDApLzUxMnwwKTw8Mik+PjJdfDApKygoKGF2fDApJTUx
MnwwKTw8Myl8MDticmVha31lbHNle2FCPTUxMS1hdnwwO2FGPShjW1IrKCgoYUJ8MCkvLTUxMnww
KTw8Mik+PjJdfDApKyg1MTEtKChhQnwwKSU1MTJ8MCk8PDMpfDA7YnJlYWt9fWVsc2V7YUY9UH19
d2hpbGUoMCk7YUI9Y1tVKzQ+PjJdfDA7YUc9K2hbYUY+PjNdO2FIPStoW2FCPj4zXTthST0raFth
cD4+M107YXY9YUk8YUc7aWYoYUc+PWFIKXtpZighYXYpe2FEPTA7YUU9YUY7YnJlYWt9aFthRj4+
M109YUk7aFthcD4+M109YUc7YUo9K2hbYUY+PjNdO2FLPStoW2FCPj4zXTtpZihhSj49YUspe2FE
PTE7YUU9YUY7YnJlYWt9aFthQj4+M109YUo7aFthRj4+M109YUs7YUQ9MjthRT1hRjticmVha31p
Zihhdil7aFthQj4+M109YUk7aFthcD4+M109YUg7YUQ9MTthRT1hRjticmVha31oW2FCPj4zXT1h
RztoW2FGPj4zXT1hSDthRz0raFthcD4+M107aWYoYUc+PWFIKXthRD0xO2FFPWFGO2JyZWFrfWhb
YUY+PjNdPWFHO2hbYXA+PjNdPWFIO2FEPTI7YUU9YUZ9fXdoaWxlKDApO1I9Y1tUPj4yXXwwO2Fz
PWNbUT4+Ml18MDthSD0raFthcz4+M107YUc9K2hbYUU+PjNdO2Rve2lmKGFIPGFHKXthTD1hRDth
TT1hcTthTj1hcDthbz03MDd9ZWxzZXthbT1hcTthdD1hcDthbj1jW2FxPj4yXXwwO3doaWxlKDEp
e2lmKChhdHwwKT09KGFufDApKXthbD1hbS00fDA7YUI9Y1thbD4+Ml18MDthTz1hbDthUD1hQis0
MDk2fDA7YVE9YUJ9ZWxzZXthTz1hbTthUD1hdDthUT1hbn1hUj1hUC04fDA7aWYoKGFzfDApPT0o
YVJ8MCkpe2JyZWFrfWFTPStoW2FSPj4zXTtpZihhUzxhRyl7YW89NzA2O2JyZWFrfWVsc2V7YW09
YU87YXQ9YVI7YW49YVF9fWlmKChhb3wwKT09NzA2KXthbz0wO2hbYXM+PjNdPWFTO2hbYVI+PjNd
PWFIO2FMPWFEKzF8MDthTT1hTzthTj1hUjthbz03MDc7YnJlYWt9YW49YXMrOHwwO2F0PWNbUj4+
Ml18MDtpZigoYW4tYXR8MCk9PTQwOTYpe2FtPVIrNHwwO2FCPWNbYW0+PjJdfDA7YVQ9YUI7YVU9
YW07YVY9YUJ9ZWxzZXthVD1hbjthVT1SO2FWPWF0fWF0PWNbUz4+Ml18MDthbj1jW08+PjJdfDA7
aWYoKGFufDApPT0oY1thdD4+Ml18MCkpe2FCPWF0LTR8MDthVz1hQjthWD0oY1thQj4+Ml18MCkr
NDA5NnwwfWVsc2V7YVc9YXQ7YVg9YW59YW49YVgtOHwwO2FJPStoW2FuPj4zXTtkb3tpZihhSDxh
SSl7YVk9YVQ7YVo9YVU7YV89YVZ9ZWxzZXthdD1hVDthQj1hVTthbT1hVjtMNzg2OndoaWxlKDEp
e2EkPWF0O3doaWxlKDEpe2lmKChhJHwwKT09KGFufDApKXthbz03Njc7YnJlYWsgTDcyNX1hMD0r
aFthJD4+M107aWYoYUg8YTApe2JyZWFrIEw3ODZ9YWw9YSQrOHwwO2lmKChhbC1hbXwwKT09NDA5
Nil7YnJlYWt9ZWxzZXthJD1hbH19YWw9YUIrNHwwO2F2PWNbYWw+PjJdfDA7YXQ9YXY7YUI9YWw7
YW09YXZ9aFthJD4+M109YUk7aFthbj4+M109YTA7YW09YSQrOHwwO2F0PWNbYUI+PjJdfDA7aWYo
KGFtLWF0fDApIT00MDk2KXthWT1hbTthWj1hQjthXz1hdDticmVha31hdD1hQis0fDA7YW09Y1th
dD4+Ml18MDthWT1hbTthWj1hdDthXz1hbX19d2hpbGUoMCk7aWYoKGFZfDApPT0oYW58MCkpe2Fv
PTc2ODticmVhayBMNzI1fWVsc2V7YTE9YVk7YTI9YVo7YTM9YVc7YTQ9YW47YTU9YV99d2hpbGUo
MSl7YUk9K2hbY1tRPj4yXT4+M107YW09YTE7YTY9YTI7YXQ9YTU7TDc5ODp3aGlsZSgxKXthNz1h
bTt3aGlsZSgxKXthOD0raFthNz4+M107aWYoYUk8YTgpe2JyZWFrIEw3OTh9YXY9YTcrOHwwO2lm
KChhdi1hdHwwKT09NDA5Nil7YnJlYWt9ZWxzZXthNz1hdn19YXY9YTYrNHwwO2FsPWNbYXY+PjJd
fDA7YW09YWw7YTY9YXY7YXQ9YWx9YXQ9YTM7YW09YTQ7YUI9Y1thMz4+Ml18MDt3aGlsZSgxKXtp
ZigoYW18MCk9PShhQnwwKSl7YWw9YXQtNHwwO2F2PWNbYWw+PjJdfDA7YTk9YWw7YmE9YXYrNDA5
NnwwO2JiPWF2fWVsc2V7YTk9YXQ7YmE9YW07YmI9YUJ9YmM9YmEtOHwwO2JkPStoW2JjPj4zXTtp
ZihhSTxiZCl7YXQ9YTk7YW09YmM7YUI9YmJ9ZWxzZXticmVha319aWYoYTY+Pj4wPj1hOT4+PjAp
e2lmKGE3Pj4+MD49YmM+Pj4wfChhNnwwKSE9KGE5fDApKXticmVha319aFthNz4+M109YmQ7aFti
Yz4+M109YTg7YUI9YTcrOHwwO2FtPWNbYTY+PjJdfDA7aWYoKGFCLWFtfDApIT00MDk2KXthMT1h
QjthMj1hNjthMz1hOTthND1iYzthNT1hbTtjb250aW51ZX1hbT1hNis0fDA7YUI9Y1thbT4+Ml18
MDthMT1hQjthMj1hbTthMz1hOTthND1iYzthNT1hQn1jW1Q+PjJdPWE2O2NbUT4+Ml09YTc7YmU9
YTd9fXdoaWxlKDApO0w4MTY6ZG97aWYoKGFvfDApPT03MDcpe2FvPTA7YXA9YXMrOHwwO2FuPWNb
Uj4+Ml18MDtpZigoYXAtYW58MCk9PTQwOTYpe2FCPVIrNHwwO2FtPWNbYUI+PjJdfDA7YmY9YW07
Ymc9YUI7Ymg9YW19ZWxzZXtiZj1hcDtiZz1SO2JoPWFufWlmKGJnPj4+MDxhTT4+PjApe2JpPWFM
O2JqPWJmO2JrPWJnO2JsPWFFO2JtPWFNO2JuPWFOO2JvPWJoO2FvPTcxMX1lbHNle2lmKChiZ3ww
KT09KGFNfDApJmJmPj4+MDxhTj4+PjApe2JpPWFMO2JqPWJmO2JrPWJnO2JsPWFFO2JtPWFNO2Ju
PWFOO2JvPWJoO2FvPTcxMX1lbHNle2JwPWFMO2JxPWJmO2JyPWJnO2JzPWFFfX1MODIzOmRve2lm
KChhb3wwKT09NzExKXt3aGlsZSgxKXthbz0wO2FIPStoW2JsPj4zXTthbj1iajthcD1iazthbT1i
bztMODI2OndoaWxlKDEpe2J0PWFuO3doaWxlKDEpe2J1PStoW2J0Pj4zXTtpZihidT49YUgpe2Jy
ZWFrIEw4MjZ9YUI9YnQrOHwwO2lmKChhQi1hbXwwKT09NDA5Nil7YnJlYWt9ZWxzZXtidD1hQn19
YUI9YXArNHwwO2F0PWNbYUI+PjJdfDA7YW49YXQ7YXA9YUI7YW09YXR9YW09Ym07YW49Ym47YXQ9
Y1tibT4+Ml18MDt3aGlsZSgxKXtpZigoYW58MCk9PShhdHwwKSl7YUI9YW0tNHwwO2F2PWNbYUI+
PjJdfDA7YnY9YUI7Ync9YXYrNDA5NnwwO2J4PWF2fWVsc2V7YnY9YW07Ync9YW47Yng9YXR9Ynk9
YnctOHwwO2J6PStoW2J5Pj4zXTtpZihiej49YUgpe2FtPWJ2O2FuPWJ5O2F0PWJ4fWVsc2V7YnJl
YWt9fWlmKGJ2Pj4+MDxhcD4+PjApe2JwPWJpO2JxPWJ0O2JyPWFwO2JzPWJsO2JyZWFrIEw4MjN9
aWYoKGJ2fDApPT0oYXB8MCkmYnk+Pj4wPGJ0Pj4+MCl7YnA9Ymk7YnE9YnQ7YnI9YXA7YnM9Ymw7
YnJlYWsgTDgyM31oW2J0Pj4zXT1iejtoW2J5Pj4zXT1idTthdD1iaSsxfDA7YW49KGJsfDApPT0o
YnR8MCk/Ynk6Ymw7YW09YnQrOHwwO2F2PWNbYXA+PjJdfDA7aWYoKGFtLWF2fDApIT00MDk2KXti
aT1hdDtiaj1hbTtiaz1hcDtibD1hbjtibT1idjtibj1ieTtibz1hdjthbz03MTE7Y29udGludWV9
YXY9YXArNHwwO2FtPWNbYXY+PjJdfDA7Ymk9YXQ7Ymo9YW07Yms9YXY7Ymw9YW47Ym09YnY7Ym49
Ynk7Ym89YW07YW89NzExfX19d2hpbGUoMCk7ZG97aWYoKGJxfDApPT0oYnN8MCkpe2JBPWJwfWVs
c2V7YUg9K2hbYnM+PjNdO2FHPStoW2JxPj4zXTtpZihhSD49YUcpe2JBPWJwO2JyZWFrfWhbYnE+
PjNdPWFIO2hbYnM+PjNdPWFHO2JBPWJwKzF8MH19d2hpbGUoMCk7ZG97aWYoKGJBfDApPT0wKXth
bT1jW1UrND4+Ml18MDtjW0M+PjJdPWNbVT4+Ml07Y1tDKzQ+PjJdPWFtO2NbYWE+PjJdPWJyO2Nb
YWI+PjJdPWJxO2FtPWNOKEQsRSwwKXwwO2NbYWM+PjJdPWJyO2NbYWQ+PjJdPWJxO2FuPWJxLShj
W2JyPj4yXXwwKT4+Mzthdj1hbisxfDA7aWYoKGF2fDApPjApe2F0PWJyKygoKGF2fDApLzUxMnww
KTw8Mil8MDtjW2FjPj4yXT1hdDtiQj0oY1thdD4+Ml18MCkrKCgoYXZ8MCklNTEyfDApPDwzKXww
fWVsc2V7YXY9NTEwLWFufDA7YW49YnIrKCgoYXZ8MCkvLTUxMnwwKTw8Mil8MDtjW2FjPj4yXT1h
bjtiQj0oY1thbj4+Ml18MCkrKDUxMS0oKGF2fDApJTUxMnwwKTw8Myl8MH1jW2FkPj4yXT1iQjth
dj1jW2FlKzQ+PjJdfDA7Y1tHPj4yXT1jW2FlPj4yXTtjW0crND4+Ml09YXY7aWYoY04oRixILDAp
fDApe2lmKGFtKXthbz03NzA7YnJlYWsgTDcyNX1jW1M+PjJdPWJyO2NbTz4+Ml09YnE7YmU9Y1tR
Pj4yXXwwO2JyZWFrIEw4MTZ9aWYoIWFtKXticmVha31hbT1icSs4fDA7aWYoKGFtLShjW2JyPj4y
XXwwKXwwKT09NDA5Nil7YXY9YnIrNHwwO2JDPWNbYXY+PjJdfDA7YkQ9YXZ9ZWxzZXtiQz1hbTti
RD1icn1jW1Q+PjJdPWJEO2NbUT4+Ml09YkM7YmU9YkM7YnJlYWsgTDgxNn19d2hpbGUoMCk7YW09
Y1tRPj4yXXwwO2lmKChicXwwKT09KGFtfDApKXtiRT0wfWVsc2V7YXY9Y1tUPj4yXXwwO2JFPShi
cS0oY1ticj4+Ml18MCk+PjMpKyhici1hdjw8NyktKGFtLShjW2F2Pj4yXXwwKT4+Myl8MH1hdj1j
W08+PjJdfDA7aWYoKGF2fDApPT0oYnF8MCkpe2JGPTB9ZWxzZXthbj1jW1M+PjJdfDA7YkY9KGF2
LShjW2FuPj4yXXwwKT4+MykrKGFuLWJyPDw3KS0oYnEtKGNbYnI+PjJdfDApPj4zKXwwfWlmKChi
RXwwKTwoYkZ8MCkpe2FuPWNbVSs0Pj4yXXwwO2NbST4+Ml09Y1tVPj4yXTtjW0krND4+Ml09YW47
Y1tiPj4yXT1icjtjW2FmPj4yXT1icTtjSyhKLEssZCk7YW49YnErOHwwO2lmKChhbi0oY1ticj4+
Ml18MCl8MCk9PTQwOTYpe2F2PWJyKzR8MDtiRz1jW2F2Pj4yXXwwO2JIPWF2fWVsc2V7Ykc9YW47
Ykg9YnJ9Y1tUPj4yXT1iSDtjW1E+PjJdPWJHO2JlPWJHO2JyZWFrfWNbYWc+PjJdPWJyO2NbYWg+
PjJdPWJxO2FuPWJxLShjW2JyPj4yXXwwKT4+Mzthdj1hbisxfDA7aWYoKGF2fDApPjApe2F0PWJy
KygoKGF2fDApLzUxMnwwKTw8Mil8MDtjW2FnPj4yXT1hdDtiST0oY1thdD4+Ml18MCkrKCgoYXZ8
MCklNTEyfDApPDwzKXwwfWVsc2V7YXY9NTEwLWFufDA7YW49YnIrKCgoYXZ8MCkvLTUxMnwwKTw8
Mil8MDtjW2FnPj4yXT1hbjtiST0oY1thbj4+Ml18MCkrKDUxMS0oKGF2fDApJTUxMnwwKTw8Myl8
MH1jW2FoPj4yXT1iSTthdj1jW2FlKzQ+PjJdfDA7Y1tNPj4yXT1jW2FlPj4yXTtjW00rND4+Ml09
YXY7Y0soTCxOLGQpO2NbUz4+Ml09YnI7Y1tPPj4yXT1icTtiZT1hbX19d2hpbGUoMCk7Uj1jW08+
PjJdfDA7aWYoKFJ8MCk9PShiZXwwKSl7YW89NzY5O2JyZWFrfWVsc2V7YWk9UjtQPWJlfX1pZigo
YW98MCk9PTYzMCl7YmU9Y1tVPj4yXXwwO2JxPWNbVSs0Pj4yXXwwO2NbZj4+Ml09YmU7Y1tmKzQ+
PjJdPWJxO2Nbaj4+Ml09YmU7Y1tqKzQ+PjJdPWJxO2Y9YnE7YnI9ajtqPWJlO2Q9Zi0oY1tqPj4y
XXwwKT4+MztOPWQrMXwwO2lmKChOfDApPjApe0w9aisoKChOfDApLzUxMnwwKTw8Mil8MDtjW2Jy
Pj4yXT1MO2JKPShjW0w+PjJdfDApKygoKE58MCklNTEyfDApPDwzKXwwfWVsc2V7Tj01MTAtZHww
O2Q9aisoKChOfDApLy01MTJ8MCk8PDIpfDA7Y1ticj4+Ml09ZDtiSj0oY1tkPj4yXXwwKSsoNTEx
LSgoTnwwKSU1MTJ8MCk8PDMpfDB9Y1trKzQ+PjJdPWJKO2NbbD4+Ml09YmU7Y1tsKzQ+PjJdPWJx
O2JKPWw7bD1mLShjW2o+PjJdfDApPj4zO049bCsyfDA7aWYoKE58MCk+MCl7ZD1qKygoKE58MCkv
NTEyfDApPDwyKXwwO2NbYko+PjJdPWQ7Yks9KGNbZD4+Ml18MCkrKCgoTnwwKSU1MTJ8MCk8PDMp
fDB9ZWxzZXtOPTUwOS1sfDA7bD1qKygoKE58MCkvLTUxMnwwKTw8Mil8MDtjW2JKPj4yXT1sO2JL
PShjW2w+PjJdfDApKyg1MTEtKChOfDApJTUxMnwwKTw8Myl8MH1jW20rND4+Ml09Yks7Y1tuPj4y
XT1iZTtjW24rND4+Ml09YnE7YnE9bjtuPWYtKGNbaj4+Ml18MCk+PjM7Zj1uKzN8MDtpZigoZnww
KT4wKXtiZT1qKygoKGZ8MCkvNTEyfDApPDwyKXwwO2NbYnE+PjJdPWJlO2JMPShjW2JlPj4yXXww
KSsoKChmfDApJTUxMnwwKTw8Myl8MH1lbHNle2Y9NTA4LW58MDtuPWorKCgoZnwwKS8tNTEyfDAp
PDwyKXwwO2NbYnE+PjJdPW47Ykw9KGNbbj4+Ml18MCkrKDUxMS0oKGZ8MCklNTEyfDApPDwzKXww
fWNbbys0Pj4yXT1iTDtpZigoYWl8MCk9PShha3wwKSl7Ykw9YWotNHwwO2NbUz4+Ml09Ykw7Zj0o
Y1tiTD4+Ml18MCkrNDA5NnwwO2NbTz4+Ml09ZjtiTT1mfWVsc2V7Yk09YWl9Y1tPPj4yXT1iTS04
O2JNPWNbYWUrND4+Ml18MDtjW3A+PjJdPWNbYWU+PjJdO2NbcCs0Pj4yXT1iTTtjTChnLGssbSxv
LHEsMCl8MDtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT02MTApe3E9Y1tVPj4yXXwwO289Y1tV
KzQ+PjJdfDA7bT1vO2s9by0oY1txPj4yXXwwKT4+MztvPWsrMXwwO2lmKChvfDApPjApe2JOPShj
W3ErKCgob3wwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChvfDApJTUxMnwwKTw8Myl8MH1lbHNle289
NTEwLWt8MDtiTj0oY1txKygoKG98MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChvfDApJTUx
MnwwKTw8Myl8MH1vPWsrMnwwO2lmKChvfDApPjApe2JPPShjW3ErKCgob3wwKS81MTJ8MCk8PDIp
Pj4yXXwwKSsoKChvfDApJTUxMnwwKTw8Myl8MH1lbHNle289NTA5LWt8MDtiTz0oY1txKygoKG98
MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChvfDApJTUxMnwwKTw8Myl8MH1pZigoYWl8MCk9
PShha3wwKSl7bz1hai00fDA7Y1tTPj4yXT1vO3E9KGNbbz4+Ml18MCkrNDA5NnwwO2NbTz4+Ml09
cTtiUD1xfWVsc2V7YlA9YWl9Y1tPPj4yXT1iUC04O2JQPWNbYWUrND4+Ml18MDtidT0raFtiTj4+
M107Yno9K2hbbT4+M107YTg9K2hbYk8+PjNdO3E9YTg8YnU7ZG97aWYoYnU8Ynope2lmKHEpe2hb
bT4+M109YTg7aFtiTz4+M109Yno7YlE9Yno7YnJlYWt9aFttPj4zXT1idTtoW2JOPj4zXT1iejti
ZD0raFtiTz4+M107aWYoYmQ+PWJ6KXtiUT1iZDticmVha31oW2JOPj4zXT1iZDtoW2JPPj4zXT1i
ejtiUT1ien1lbHNle2lmKCFxKXtiUT1hODticmVha31oW2JOPj4zXT1hODtoW2JPPj4zXT1idTti
ZD0raFtiTj4+M107YTA9K2hbbT4+M107aWYoYmQ+PWEwKXtiUT1idTticmVha31oW20+PjNdPWJk
O2hbYk4+PjNdPWEwO2JRPStoW2JPPj4zXX19d2hpbGUoMCk7YnU9K2hbYlA+PjNdO2lmKGJ1Pj1i
USl7aT1lO3JldHVybn1oW2JPPj4zXT1idTtoW2JQPj4zXT1iUTtiUT0raFtiTz4+M107YnU9K2hb
Yk4+PjNdO2lmKGJRPj1idSl7aT1lO3JldHVybn1oW2JOPj4zXT1iUTtoW2JPPj4zXT1idTtidT0r
aFtiTj4+M107YlE9K2hbbT4+M107aWYoYnU+PWJRKXtpPWU7cmV0dXJufWhbbT4+M109YnU7aFti
Tj4+M109YlE7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NjQzKXtiTj1jW1UrND4+Ml18MDtj
W3I+PjJdPWNbVT4+Ml07Y1tyKzQ+PjJdPWJOO2JOPWNbYWUrND4+Ml18MDtjW3Q+PjJdPWNbYWU+
PjJdO2NbdCs0Pj4yXT1iTjtjTShzLHUsMCk7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NTkz
KXtpZigoYWl8MCk9PShha3wwKSl7dT1hai00fDA7Y1tTPj4yXT11O3M9KGNbdT4+Ml18MCkrNDA5
NnwwO2NbTz4+Ml09cztiUj1zfWVsc2V7YlI9YWl9cz1iUi04fDA7Y1tPPj4yXT1zO2JRPStoW3M+
PjNdO2J1PStoW1A+PjNdO2lmKGJRPj1idSl7aT1lO3JldHVybn1oW1A+PjNdPWJRO2hbcz4+M109
YnU7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NTk3KXtzPWNbVT4+Ml18MDtQPWNbVSs0Pj4y
XXwwO1U9UDtiUj1QLShjW3M+PjJdfDApPj4zO1A9YlIrMXwwO2lmKChQfDApPjApe2JTPShjW3Mr
KCgoUHwwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChQfDApJTUxMnwwKTw8Myl8MH1lbHNle1A9NTEw
LWJSfDA7YlM9KGNbcysoKChQfDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgoUHwwKSU1MTJ8
MCk8PDMpfDB9aWYoKGFpfDApPT0oYWt8MCkpe2FrPWFqLTR8MDtjW1M+PjJdPWFrO1M9KGNbYWs+
PjJdfDApKzQwOTZ8MDtjW08+PjJdPVM7YlQ9U31lbHNle2JUPWFpfWNbTz4+Ml09YlQtODtiVD1j
W2FlKzQ+PjJdfDA7YnU9K2hbYlM+PjNdO2JRPStoW1U+PjNdO2E4PStoW2JUPj4zXTthZT1hODxi
dTtpZihidT49YlEpe2lmKCFhZSl7aT1lO3JldHVybn1oW2JTPj4zXT1hODtoW2JUPj4zXT1idTti
ej0raFtiUz4+M107YTA9K2hbVT4+M107aWYoYno+PWEwKXtpPWU7cmV0dXJufWhbVT4+M109Yno7
aFtiUz4+M109YTA7aT1lO3JldHVybn1pZihhZSl7aFtVPj4zXT1hODtoW2JUPj4zXT1iUTtpPWU7
cmV0dXJufWhbVT4+M109YnU7aFtiUz4+M109YlE7YnU9K2hbYlQ+PjNdO2lmKGJ1Pj1iUSl7aT1l
O3JldHVybn1oW2JTPj4zXT1idTtoW2JUPj4zXT1iUTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDAp
PT03NjApe2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTc2Nyl7aT1lO3JldHVybn1lbHNlIGlm
KChhb3wwKT09NzY4KXtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT03Njkpe2k9ZTtyZXR1cm59
ZWxzZSBpZigoYW98MCk9PTc3MCl7aT1lO3JldHVybn19ZnVuY3Rpb24gY0woYSxiLGQsZSxmLGcp
e2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBqPTAsaz0wLGw9MCxtPTAs
bj0wLjAsbz0wLjAscD0wLjAscT0wLHI9MCxzPTAuMCx0PTAuMCx1PTAuMCx2PTAsdz0wO2c9aTtq
PWE7YT1pO2k9aSs4fDA7Y1thPj4yXT1jW2o+PjJdO2NbYSs0Pj4yXT1jW2orND4+Ml07aj1iO2I9
aTtpPWkrOHwwO2NbYj4+Ml09Y1tqPj4yXTtjW2IrND4+Ml09Y1tqKzQ+PjJdO2o9ZDtkPWk7aT1p
Kzh8MDtjW2Q+PjJdPWNbaj4+Ml07Y1tkKzQ+PjJdPWNbais0Pj4yXTtqPWU7ZT1pO2k9aSs4fDA7
Y1tlPj4yXT1jW2o+PjJdO2NbZSs0Pj4yXT1jW2orND4+Ml07aj1mO2Y9aTtpPWkrOHwwO2NbZj4+
Ml09Y1tqPj4yXTtjW2YrND4+Ml09Y1tqKzQ+PjJdO2o9Y1thKzQ+PjJdfDA7az1jW2IrND4+Ml18
MDtsPWNbZCs0Pj4yXXwwO209Y1tlKzQ+PjJdfDA7bj0raFtrPj4zXTtvPStoW2o+PjNdO3A9K2hb
bD4+M107cT1wPG47ZG97aWYobjxvKXtpZihxKXtoW2o+PjNdPXA7aFtsPj4zXT1vO3I9MTtzPW87
YnJlYWt9aFtqPj4zXT1uO2hbaz4+M109bzt0PStoW2w+PjNdO2lmKHQ+PW8pe3I9MTtzPXQ7YnJl
YWt9aFtrPj4zXT10O2hbbD4+M109bztyPTI7cz1vfWVsc2V7aWYoIXEpe3I9MDtzPXA7YnJlYWt9
aFtrPj4zXT1wO2hbbD4+M109bjt0PStoW2s+PjNdO3U9K2hbaj4+M107aWYodD49dSl7cj0xO3M9
bjticmVha31oW2o+PjNdPXQ7aFtrPj4zXT11O3I9MjtzPStoW2w+PjNdfX13aGlsZSgwKTtuPSto
W20+PjNdO2Rve2lmKG48cyl7aFtsPj4zXT1uO2hbbT4+M109cztwPStoW2w+PjNdO289K2hbaz4+
M107aWYocD49byl7dj1yKzF8MDticmVha31oW2s+PjNdPXA7aFtsPj4zXT1vO289K2hbaz4+M107
cD0raFtqPj4zXTtpZihvPj1wKXt2PXIrMnwwO2JyZWFrfWhbaj4+M109bztoW2s+PjNdPXA7dj1y
KzN8MH1lbHNle3Y9cn19d2hpbGUoMCk7cj1jW2YrND4+Ml18MDtmPWNbZSs0Pj4yXXwwO3M9K2hb
cj4+M107bj0raFtmPj4zXTtpZihzPj1uKXt3PXY7aT1nO3JldHVybiB3fDB9aFtmPj4zXT1zO2hb
cj4+M109bjtyPWNbZCs0Pj4yXXwwO249K2hbZj4+M107cz0raFtyPj4zXTtpZihuPj1zKXt3PXYr
MXwwO2k9ZztyZXR1cm4gd3wwfWhbcj4+M109bjtoW2Y+PjNdPXM7Zj1jW2IrND4+Ml18MDtzPSto
W3I+PjNdO249K2hbZj4+M107aWYocz49bil7dz12KzJ8MDtpPWc7cmV0dXJuIHd8MH1oW2Y+PjNd
PXM7aFtyPj4zXT1uO3I9Y1thKzQ+PjJdfDA7bj0raFtmPj4zXTtzPStoW3I+PjNdO2lmKG4+PXMp
e3c9diszfDA7aT1nO3JldHVybiB3fDB9aFtyPj4zXT1uO2hbZj4+M109czt3PXYrNHwwO2k9Zzty
ZXR1cm4gd3wwfWZ1bmN0aW9uIGNNKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9
MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAuMCxwPTAuMCxxPTAuMCxyPTAuMCxzPTAuMCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2Q9aTtlPWE7YT1pO2k9aSs4fDA7Y1thPj4y
XT1jW2U+PjJdO2NbYSs0Pj4yXT1jW2UrND4+Ml07ZT1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tl
Pj4yXTtjW2IrND4+Ml09Y1tlKzQ+PjJdO2U9Y1thPj4yXXwwO2Y9YSs0fDA7Zz0oY1tmPj4yXXww
KS0oY1tlPj4yXXwwKT4+MztqPWcrMnwwO2lmKChqfDApPjApe2s9ZSsoKChqfDApLzUxMnwwKTw8
Mil8MDtsPShjW2s+PjJdfDApKygoKGp8MCklNTEyfDApPDwzKXwwO209a31lbHNle2s9NTA5LWd8
MDtnPWUrKCgoa3wwKS8tNTEyfDApPDwyKXwwO2w9KGNbZz4+Ml18MCkrKDUxMS0oKGt8MCklNTEy
fDApPDwzKXwwO209Z31nPWE7YT1jW2c+PjJdfDA7az1jW2crND4+Ml18MDtnPWs7ZT1rLShjW2E+
PjJdfDApPj4zO2s9ZSsxfDA7aWYoKGt8MCk+MCl7bj0oY1thKygoKGt8MCkvNTEyfDApPDwyKT4+
Ml18MCkrKCgoa3wwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtrPTUxMC1lfDA7bj0oY1thKygoKGt8MCkv
LTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChrfDApJTUxMnwwKTw8Myl8MH1vPStoW24+PjNdO3A9
K2hbZz4+M107cT0raFtsPj4zXTtrPXE8bztkb3tpZihvPHApe2lmKGspe2hbZz4+M109cTtoW2w+
PjNdPXA7YnJlYWt9aFtnPj4zXT1vO2hbbj4+M109cDtyPStoW2w+PjNdO2lmKHI+PXApe2JyZWFr
fWhbbj4+M109cjtoW2w+PjNdPXB9ZWxzZXtpZighayl7YnJlYWt9aFtuPj4zXT1xO2hbbD4+M109
bztyPStoW24+PjNdO3M9K2hbZz4+M107aWYocj49cyl7YnJlYWt9aFtnPj4zXT1yO2hbbj4+M109
c319d2hpbGUoMCk7bj1sLShjW20+PjJdfDApPj4zO2c9bisxfDA7aWYoKGd8MCk+MCl7az1tKygo
KGd8MCkvNTEyfDApPDwyKXwwO2E9Y1trPj4yXXwwO3Q9azt1PWErKCgoZ3wwKSU1MTJ8MCk8PDMp
fDA7dj1hfWVsc2V7YT01MTAtbnwwO249bSsoKChhfDApLy01MTJ8MCk8PDIpfDA7Zz1jW24+PjJd
fDA7dD1uO3U9ZysoNTExLSgoYXwwKSU1MTJ8MCk8PDMpfDA7dj1nfWc9Yis0fDA7Yj1sO2w9dDt0
PXU7dT1tO209djtMMTAyMjp3aGlsZSgxKXt2PWI7YT10O249dTtrPW07d2hpbGUoMSl7aWYoKGF8
MCk9PShjW2c+PjJdfDApKXticmVhayBMMTAyMn1vPStoW2E+PjNdO3E9K2hbdj4+M107aWYobzxx
KXtlPW47aj12O3c9YTtwPXE7d2hpbGUoMSl7aFt3Pj4zXT1wO2lmKChqfDApPT0oY1tmPj4yXXww
KSl7YnJlYWt9aWYoKGp8MCk9PShjW2U+PjJdfDApKXt4PWUtNHwwO3k9eDt6PShjW3g+PjJdfDAp
KzQwOTZ8MH1lbHNle3k9ZTt6PWp9eD16LTh8MDtxPStoW3g+PjNdO2lmKG88cSl7ZT15O3c9ajtq
PXg7cD1xfWVsc2V7YnJlYWt9fWhbaj4+M109bztBPWNbbD4+Ml18MH1lbHNle0E9a313PWErOHww
O2lmKCh3LUF8MCk9PTQwOTYpe2JyZWFrfWVsc2V7dj1hO2E9dztuPWw7az1BfX1rPWwrNHwwO249
Y1trPj4yXXwwO2I9YTt1PWw7bD1rO3Q9bjttPW59aT1kO3JldHVybn1mdW5jdGlvbiBjTihhLGIs
ZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLjAsRT0wLjAsRj0wLEc9MCxIPTAuMCxJPTAuMCxKPTAuMCxLPTAsTD0wLE09MCxOPTAu
MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0w
LGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wO2Q9aTtpPWkrOHwwO2U9YTthPWk7aT1pKzh8
MDtjW2E+PjJdPWNbZT4+Ml07Y1thKzQ+PjJdPWNbZSs0Pj4yXTtlPWI7Yj1pO2k9aSs4fDA7Y1ti
Pj4yXT1jW2U+PjJdO2NbYis0Pj4yXT1jW2UrND4+Ml07ZT1kfDA7Zj1lO2c9aTtpPWkrOHwwO2o9
ZztrPWk7aT1pKzh8MDtsPWs7bT1pO2k9aSs4fDA7bj1tO289aTtpPWkrOHwwO3A9bztxPWIrNHww
O3I9Y1txPj4yXXwwO3M9YSs0fDA7dD1jW3M+PjJdfDA7aWYoKHJ8MCk9PSh0fDApKXt1PTE7aT1k
O3JldHVybiB1fDB9dj1ifDA7dz1jW3Y+PjJdfDA7eD1jW2E+PjJdfDA7eT1jW3c+PjJdfDA7ej10
LShjW3g+PjJdfDApPj4zO3N3aXRjaCgoci15Pj4zKSsody14PDw3KS16fDApe2Nhc2UgMjp7aWYo
KHJ8MCk9PSh5fDApKXtBPXctNHwwO2Nbdj4+Ml09QTtCPShjW0E+PjJdfDApKzQwOTZ8MDtjW3E+
PjJdPUI7Qz1CfWVsc2V7Qz1yfUI9Qy04fDA7Y1txPj4yXT1CO0Q9K2hbQj4+M107RT0raFt0Pj4z
XTtpZihEPj1FKXt1PTE7aT1kO3JldHVybiB1fDB9aFt0Pj4zXT1EO2hbQj4+M109RTt1PTE7aT1k
O3JldHVybiB1fDB9O2Nhc2UgMDpjYXNlIDE6e3U9MTtpPWQ7cmV0dXJuIHV8MH07Y2FzZSAzOntC
PWE7dD1jW0I+PjJdfDA7Qz1jW0IrND4+Ml18MDtCPUM7QT1DLShjW3Q+PjJdfDApPj4zO0M9QSsx
fDA7aWYoKEN8MCk+MCl7Rj0oY1t0KygoKEN8MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgoQ3wwKSU1
MTJ8MCk8PDMpfDB9ZWxzZXtDPTUxMC1BfDA7Rj0oY1t0KygoKEN8MCkvLTUxMnwwKTw8Mik+PjJd
fDApKyg1MTEtKChDfDApJTUxMnwwKTw8Myl8MH1pZigocnwwKT09KHl8MCkpe0M9dy00fDA7Y1t2
Pj4yXT1DO3Q9KGNbQz4+Ml18MCkrNDA5NnwwO2NbcT4+Ml09dDtHPXR9ZWxzZXtHPXJ9Y1txPj4y
XT1HLTg7Rz1jW2IrND4+Ml18MDtFPStoW0Y+PjNdO0Q9K2hbQj4+M107SD0raFtHPj4zXTt0PUg8
RTtpZihFPj1EKXtpZighdCl7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbRj4+M109SDtoW0c+PjNdPUU7
ST0raFtGPj4zXTtKPStoW0I+PjNdO2lmKEk+PUope3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0I+PjNd
PUk7aFtGPj4zXT1KO3U9MTtpPWQ7cmV0dXJuIHV8MH1pZih0KXtoW0I+PjNdPUg7aFtHPj4zXT1E
O3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0I+PjNdPUU7aFtGPj4zXT1EO0U9K2hbRz4+M107aWYoRT49
RCl7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbRj4+M109RTtoW0c+PjNdPUQ7dT0xO2k9ZDtyZXR1cm4g
dXwwfTtjYXNlIDQ6e0c9YTtGPWNbRz4+Ml18MDtCPWNbRys0Pj4yXXwwO0c9Qjt0PUItKGNbRj4+
Ml18MCk+PjM7Qj10KzF8MDtpZigoQnwwKT4wKXtLPShjW0YrKCgoQnwwKS81MTJ8MCk8PDIpPj4y
XXwwKSsoKChCfDApJTUxMnwwKTw8Myl8MH1lbHNle0I9NTEwLXR8MDtLPShjW0YrKCgoQnwwKS8t
NTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKEJ8MCklNTEyfDApPDwzKXwwfUI9dCsyfDA7aWYoKEJ8
MCk+MCl7TD0oY1tGKygoKEJ8MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgoQnwwKSU1MTJ8MCk8PDMp
fDB9ZWxzZXtCPTUwOS10fDA7TD0oY1tGKygoKEJ8MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEt
KChCfDApJTUxMnwwKTw8Myl8MH1pZigocnwwKT09KHl8MCkpe0I9dy00fDA7Y1t2Pj4yXT1CO0Y9
KGNbQj4+Ml18MCkrNDA5NnwwO2NbcT4+Ml09RjtNPUZ9ZWxzZXtNPXJ9Y1txPj4yXT1NLTg7TT1j
W2IrND4+Ml18MDtEPStoW0s+PjNdO0U9K2hbRz4+M107SD0raFtMPj4zXTtGPUg8RDtkb3tpZihE
PEUpe2lmKEYpe2hbRz4+M109SDtoW0w+PjNdPUU7Tj1FO2JyZWFrfWhbRz4+M109RDtoW0s+PjNd
PUU7Sj0raFtMPj4zXTtpZihKPj1FKXtOPUo7YnJlYWt9aFtLPj4zXT1KO2hbTD4+M109RTtOPUV9
ZWxzZXtpZighRil7Tj1IO2JyZWFrfWhbSz4+M109SDtoW0w+PjNdPUQ7Sj0raFtLPj4zXTtJPSto
W0c+PjNdO2lmKEo+PUkpe049RDticmVha31oW0c+PjNdPUo7aFtLPj4zXT1JO049K2hbTD4+M119
fXdoaWxlKDApO0Q9K2hbTT4+M107aWYoRD49Til7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbTD4+M109
RDtoW00+PjNdPU47Tj0raFtMPj4zXTtEPStoW0s+PjNdO2lmKE4+PUQpe3U9MTtpPWQ7cmV0dXJu
IHV8MH1oW0s+PjNdPU47aFtMPj4zXT1EO0Q9K2hbSz4+M107Tj0raFtHPj4zXTtpZihEPj1OKXt1
PTE7aT1kO3JldHVybiB1fDB9aFtHPj4zXT1EO2hbSz4+M109Tjt1PTE7aT1kO3JldHVybiB1fDB9
O2Nhc2UgNTp7Sz1hO0c9Y1tLPj4yXXwwO0w9Y1tLKzQ+PjJdfDA7Y1tlPj4yXT1HO2NbZSs0Pj4y
XT1MO2NbZz4+Ml09RztjW2crND4+Ml09TDtlPUw7Sz1nO2c9RztNPWUtKGNbZz4+Ml18MCk+PjM7
Rj1NKzF8MDtpZigoRnwwKT4wKXtCPWcrKCgoRnwwKS81MTJ8MCk8PDIpfDA7Y1tLPj4yXT1CO089
KGNbQj4+Ml18MCkrKCgoRnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtGPTUxMC1NfDA7TT1nKygoKEZ8
MCkvLTUxMnwwKTw8Mil8MDtjW0s+PjJdPU07Tz0oY1tNPj4yXXwwKSsoNTExLSgoRnwwKSU1MTJ8
MCk8PDMpfDB9Y1tqKzQ+PjJdPU87Y1trPj4yXT1HO2Nbays0Pj4yXT1MO089aztrPWUtKGNbZz4+
Ml18MCk+PjM7Rj1rKzJ8MDtpZigoRnwwKT4wKXtNPWcrKCgoRnwwKS81MTJ8MCk8PDIpfDA7Y1tP
Pj4yXT1NO1A9KGNbTT4+Ml18MCkrKCgoRnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtGPTUwOS1rfDA7
az1nKygoKEZ8MCkvLTUxMnwwKTw8Mil8MDtjW08+PjJdPWs7UD0oY1trPj4yXXwwKSsoNTExLSgo
RnwwKSU1MTJ8MCk8PDMpfDB9Y1tsKzQ+PjJdPVA7Y1ttPj4yXT1HO2NbbSs0Pj4yXT1MO0w9bTtt
PWUtKGNbZz4+Ml18MCk+PjM7ZT1tKzN8MDtpZigoZXwwKT4wKXtHPWcrKCgoZXwwKS81MTJ8MCk8
PDIpfDA7Y1tMPj4yXT1HO1E9KGNbRz4+Ml18MCkrKCgoZXwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtl
PTUwOC1tfDA7bT1nKygoKGV8MCkvLTUxMnwwKTw8Mil8MDtjW0w+PjJdPW07UT0oY1ttPj4yXXww
KSsoNTExLSgoZXwwKSU1MTJ8MCk8PDMpfDB9Y1tuKzQ+PjJdPVE7aWYoKHJ8MCk9PSh5fDApKXt5
PXctNHwwO2Nbdj4+Ml09eTt2PShjW3k+PjJdfDApKzQwOTZ8MDtjW3E+PjJdPXY7Uj12fWVsc2V7
Uj1yfWNbcT4+Ml09Ui04O1I9YjtiPWNbUis0Pj4yXXwwO2Nbbz4+Ml09Y1tSPj4yXTtjW28rND4+
Ml09YjtjTChmLGosbCxuLHAsMCl8MDt1PTE7aT1kO3JldHVybiB1fDB9O2RlZmF1bHQ6e3A9eisy
fDA7aWYoKHB8MCk+MCl7bj14KygoKHB8MCkvNTEyfDApPDwyKXwwO1M9bjtUPShjW24+PjJdfDAp
KygoKHB8MCklNTEyfDApPDwzKXwwfWVsc2V7cD01MDktenwwO3o9eCsoKChwfDApLy01MTJ8MCk8
PDIpfDA7Uz16O1Q9KGNbej4+Ml18MCkrKDUxMS0oKHB8MCklNTEyfDApPDwzKXwwfXA9YTthPWNb
cD4+Ml18MDt6PWNbcCs0Pj4yXXwwO3A9ejt4PXotKGNbYT4+Ml18MCk+PjM7ej14KzF8MDtpZigo
enwwKT4wKXtVPShjW2ErKCgoenwwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKCh6fDApJTUxMnwwKTw8
Myl8MH1lbHNle3o9NTEwLXh8MDtVPShjW2ErKCgoenwwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUx
MS0oKHp8MCklNTEyfDApPDwzKXwwfU49K2hbVT4+M107RD0raFtwPj4zXTtIPStoW1Q+PjNdO3o9
SDxOO2Rve2lmKE48RCl7aWYoeil7aFtwPj4zXT1IO2hbVD4+M109RDticmVha31oW3A+PjNdPU47
aFtVPj4zXT1EO0U9K2hbVD4+M107aWYoRT49RCl7YnJlYWt9aFtVPj4zXT1FO2hbVD4+M109RH1l
bHNle2lmKCF6KXticmVha31oW1U+PjNdPUg7aFtUPj4zXT1OO0U9K2hbVT4+M107ST0raFtwPj4z
XTtpZihFPj1JKXticmVha31oW3A+PjNdPUU7aFtVPj4zXT1JfX13aGlsZSgwKTtVPVQtKGNbUz4+
Ml18MCk+PjM7cD1VKzF8MDtpZigocHwwKT4wKXt6PVMrKCgocHwwKS81MTJ8MCk8PDIpfDA7YT1j
W3o+PjJdfDA7Vj0wO1c9YSsoKChwfDApJTUxMnwwKTw8Myl8MDtYPXo7WT1TO1o9VDtfPWF9ZWxz
ZXthPTUxMC1VfDA7VT1TKygoKGF8MCkvLTUxMnwwKTw8Mil8MDt6PWNbVT4+Ml18MDtWPTA7Vz16
Kyg1MTEtKChhfDApJTUxMnwwKTw8Myl8MDtYPVU7WT1TO1o9VDtfPXp9TDEwNjU6d2hpbGUoMSl7
ej1WOyQ9VztUPVk7Uz1aO1U9Xzt3aGlsZSgxKXtpZigoJHwwKT09KGNbcT4+Ml18MCkpe3U9MTth
YT05MDY7YnJlYWsgTDEwNjV9Tj0raFskPj4zXTtIPStoW1M+PjNdO2lmKE48SCl7YT1UO3A9Uzt4
PSQ7RD1IO3doaWxlKDEpe2hbeD4+M109RDtpZigocHwwKT09KGNbcz4+Ml18MCkpe2JyZWFrfWlm
KChwfDApPT0oY1thPj4yXXwwKSl7bj1hLTR8MDthYj1uO2FjPShjW24+PjJdfDApKzQwOTZ8MH1l
bHNle2FiPWE7YWM9cH1uPWFjLTh8MDtIPStoW24+PjNdO2lmKE48SCl7YT1hYjt4PXA7cD1uO0Q9
SH1lbHNle2JyZWFrfX1oW3A+PjNdPU47eD16KzF8MDtpZigoeHwwKT09OCl7YnJlYWsgTDEwNjV9
YWQ9eDthZT1jW1g+PjJdfDB9ZWxzZXthZD16O2FlPVV9eD0kKzh8MDtpZigoeC1hZXwwKT09NDA5
Nil7YnJlYWt9ZWxzZXt6PWFkO1M9JDskPXg7VD1YO1U9YWV9fVU9WCs0fDA7VD1jW1U+PjJdfDA7
Vj1hZDtXPVQ7WT1YO1g9VTtaPSQ7Xz1UfWlmKChhYXwwKT09OTA2KXtpPWQ7cmV0dXJuIHV8MH1h
YT0kKzh8MDtpZigoYWEtKGNbWD4+Ml18MCl8MCk9PTQwOTYpe2FmPWNbWCs0Pj4yXXwwfWVsc2V7
YWY9YWF9dT0oYWZ8MCk9PShjW3E+PjJdfDApO2k9ZDtyZXR1cm4gdXwwfX1yZXR1cm4gMH1mdW5j
dGlvbiBjTyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGk9MCxqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTA7ZT1hKzh8MDtmPWNbZT4+Ml18MDtnPWErNHwwO2k9Y1tnPj4yXXwwO2lmKChmfDApPT0oaXww
KSl7aj0wfWVsc2V7aj0oZi1pPDw3KS0xfDB9az1hKzE2fDA7bD1jW2s+PjJdfDA7bT1hKzIwfDA7
bj1jW20+PjJdfDA7bz1qLWwtbnwwO2lmKG8+Pj4wPGI+Pj4wKXtjUShhLGItb3wwKTtwPWNbbT4+
Ml18MDtxPWNbaz4+Ml18MDtyPWNbZz4+Ml18MDtzPWNbZT4+Ml18MH1lbHNle3A9bjtxPWw7cj1p
O3M9Zn1mPXErcHwwO3A9cisoZj4+Pjk8PDIpfDA7aWYoKHN8MCk9PShyfDApKXt0PTB9ZWxzZXt0
PShjW3A+PjJdfDApKygoZiY1MTEpPDwzKXwwfWlmKChifDApPT0wKXtyZXR1cm59ZWxzZXt1PXQ7
dj1wO3c9Yn13aGlsZSgxKXtpZigodXwwKSE9MCl7aFt1Pj4zXT0raFtkPj4zXX1iPXctMXwwO3A9
dSs4fDA7aWYoKHAtKGNbdj4+Ml18MCl8MCk9PTQwOTYpe3Q9dis0fDA7eD10O3k9Y1t0Pj4yXXww
fWVsc2V7eD12O3k9cH1jW20+PjJdPShjW20+PjJdfDApKzE7aWYoKGJ8MCk9PTApe2JyZWFrfWVs
c2V7dT15O3Y9eDt3PWJ9fXJldHVybn1mdW5jdGlvbiBjUChhLGIpe2E9YXwwO2I9YnwwO3ZhciBk
PTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wO2Q9YSs0fDA7ZT1jW2Q+PjJdfDA7Zj1hfDA7ZG97aWYoKGV8MCk9PShjW2Y+PjJd
fDApKXtnPWErOHwwO2g9Y1tnPj4yXXwwO2k9YSsxMnwwO2o9Y1tpPj4yXXwwO2s9ajtpZihoPj4+
MDxqPj4+MCl7aj1oO2w9KChrLWo+PjIpKzF8MCkvMnwwO209ai1lfDA7aj1oKyhsLShtPj4yKTw8
Mil8MDtrXyhqfDAsZXwwLG18MCk7Y1tkPj4yXT1qO2NbZz4+Ml09KGNbZz4+Ml18MCkrKGw8PDIp
O249ajticmVha31qPWstZT4+MTtrPShqfDApPT0wPzE6ajtqPWtPKGs8PDIpfDA7bD1qKygoaysz
fDApPj4+Mjw8Mil8MDttPWorKGs8PDIpfDA7aWYoKGV8MCk9PShofDApKXtvPWw7cD1lfWVsc2V7
az1lO3E9bDtkb3tpZigocXwwKT09MCl7cj0wfWVsc2V7Y1txPj4yXT1jW2s+PjJdO3I9cX1xPXIr
NHwwO2s9ays0fDA7fXdoaWxlKChrfDApIT0oaHwwKSk7bz1xO3A9Y1tmPj4yXXwwfWNbZj4+Ml09
ajtjW2Q+PjJdPWw7Y1tnPj4yXT1vO2NbaT4+Ml09bTtpZigocHwwKT09MCl7bj1sO2JyZWFrfWtT
KHApO249Y1tkPj4yXXwwfWVsc2V7bj1lfX13aGlsZSgwKTtlPW4tNHwwO2lmKChlfDApPT0wKXtz
PW47dD1zLTR8MDtjW2Q+PjJdPXQ7cmV0dXJufWNbZT4+Ml09Y1tiPj4yXTtzPWNbZD4+Ml18MDt0
PXMtNHwwO2NbZD4+Ml09dDtyZXR1cm59ZnVuY3Rpb24gY1EoYSxiKXthPWF8MDtiPWJ8MDt2YXIg
ZD0wLGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9
MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0w
LFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9
MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTA7ZD1pO2k9aSszMnwwO2U9ZHwwO2Y9ZCs4fDA7Zz1h
fDA7aD1hKzh8MDtqPWNbaD4+Ml18MDtrPWErNHwwO2w9Y1trPj4yXXwwO209KChqfDApPT0obHww
KSkrYnwwO2I9KChtJjUxMXwwKSE9MCkrKG0+Pj45KXwwO209YSsxNnwwO249Y1ttPj4yXXwwO289
bj4+Pjk7cD1iPj4+MDxvPj4+MD9iOm87cT1iLXB8MDtpZigoYnwwKT09KHB8MCkpe2NbbT4+Ml09
bi0oYjw8OSk7aWYoKGJ8MCk9PTApe2k9ZDtyZXR1cm59bj1hKzEyfDA7cj1hfDA7cz1iO3Q9ajt1
PWw7d2hpbGUoMSl7dj1jW3U+PjJdfDA7dz11KzR8MDtjW2s+PjJdPXc7ZG97aWYoKHR8MCk9PShj
W24+PjJdfDApKXt4PWNbcj4+Ml18MDtpZih3Pj4+MD54Pj4+MCl7eT13O3o9KCh5LXg+PjIpKzF8
MCkvLTJ8MDtBPXorMXwwO0I9dC15fDA7a18odSsoQTw8Mil8MCx3fDAsQnwwKTt5PXUrKEErKEI+
PjIpPDwyKXwwO2NbaD4+Ml09eTtjW2s+PjJdPShjW2s+PjJdfDApKyh6PDwyKTtDPXk7YnJlYWt9
eT10LXg+PjE7ej0oeXwwKT09MD8xOnk7eT1rTyh6PDwyKXwwO0I9eSsoej4+PjI8PDIpfDA7QT15
Kyh6PDwyKXwwO2lmKCh3fDApPT0odHwwKSl7RD1CO0U9eH1lbHNle3g9dzt6PUI7ZG97aWYoKHp8
MCk9PTApe0Y9MH1lbHNle2Nbej4+Ml09Y1t4Pj4yXTtGPXp9ej1GKzR8MDt4PXgrNHwwO313aGls
ZSgoeHwwKSE9KHR8MCkpO0Q9ejtFPWNbcj4+Ml18MH1jW3I+PjJdPXk7Y1trPj4yXT1CO2NbaD4+
Ml09RDtjW24+PjJdPUE7aWYoKEV8MCk9PTApe0M9RDticmVha31rUyhFKTtDPWNbaD4+Ml18MH1l
bHNle0M9dH19d2hpbGUoMCk7aWYoKEN8MCk9PTApe0c9MH1lbHNle2NbQz4+Ml09djtHPWNbaD4+
Ml18MH13PUcrNHwwO2NbaD4+Ml09dzt4PXMtMXwwO2lmKCh4fDApPT0wKXticmVha31zPXg7dD13
O3U9Y1trPj4yXXwwfWk9ZDtyZXR1cm59dT1hKzEyfDA7dD11fDA7cz1jW3Q+PjJdfDA7Rz1hfDA7
YT1zLShjW0c+PjJdfDApfDA7Qz1qLWw+PjI7aWYocT4+PjA8PSgoYT4+MiktQ3wwKT4+PjApe2w9
cTtFPWo7aj1zO3doaWxlKDEpe2lmKChqfDApPT0oRXwwKSl7SD05NzE7YnJlYWt9cz1rTyg0MDk2
KXwwO2lmKChFfDApPT0wKXtJPTB9ZWxzZXtjW0U+PjJdPXM7ST1jW2g+PjJdfDB9cz1JKzR8MDtj
W2g+PjJdPXM7RD1sLTF8MDtpZigoRHwwKT09MCl7Sj1zO0g9OTcyO2JyZWFrfWw9RDtFPXM7aj1j
W3Q+PjJdfDB9ZG97aWYoKEh8MCk9PTk3MSl7aWYoKGx8MCk9PTApe0o9ajtIPTk3MjticmVha31F
PX5vO0k9fmI7cz1FPj4+MD5JPj4+MD9FOkk7ST1sO2Rve2NbZT4+Ml09a08oNDA5Nil8MDtjUChn
LGUpO0k9SS0xfDA7Sz1jW2g+PjJdfDA7TD0oY1ttPj4yXXwwKSs1MTItKChLLShjW2s+PjJdfDAp
fDApPT00KXwwO2NbbT4+Ml09TDt9d2hpbGUoKEl8MCkhPTApO009bC0xLXN8MDtOPUs7Tz1MfX13
aGlsZSgwKTtpZigoSHwwKT09OTcyKXtNPXA7Tj1KO089Y1ttPj4yXXwwfWNbbT4+Ml09Ty0oTTw8
OSk7aWYoKE18MCk9PTApe2k9ZDtyZXR1cm59ZWxzZXtQPU07UT1OfWRve049Y1trPj4yXXwwO009
Y1tOPj4yXXwwO089Tis0fDA7Y1trPj4yXT1PO2Rve2lmKChRfDApPT0oY1t0Pj4yXXwwKSl7Sj1j
W0c+PjJdfDA7aWYoTz4+PjA+Sj4+PjApe0g9TztMPSgoSC1KPj4yKSsxfDApLy0yfDA7Sz1MKzF8
MDtsPVEtSHwwO2tfKE4rKEs8PDIpfDAsT3wwLGx8MCk7SD1OKyhLKyhsPj4yKTw8Mil8MDtjW2g+
PjJdPUg7Y1trPj4yXT0oY1trPj4yXXwwKSsoTDw8Mik7Uj1IO2JyZWFrfUg9US1KPj4xO0w9KEh8
MCk9PTA/MTpIO0g9a08oTDw8Mil8MDtsPUgrKEw+Pj4yPDwyKXwwO0s9SCsoTDw8Mil8MDtpZigo
T3wwKT09KFF8MCkpe1M9bDtUPUp9ZWxzZXtKPU87TD1sO2Rve2lmKChMfDApPT0wKXtVPTB9ZWxz
ZXtjW0w+PjJdPWNbSj4+Ml07VT1MfUw9VSs0fDA7Sj1KKzR8MDt9d2hpbGUoKEp8MCkhPShRfDAp
KTtTPUw7VD1jW0c+PjJdfDB9Y1tHPj4yXT1IO2Nbaz4+Ml09bDtjW2g+PjJdPVM7Y1t0Pj4yXT1L
O2lmKChUfDApPT0wKXtSPVM7YnJlYWt9a1MoVCk7Uj1jW2g+PjJdfDB9ZWxzZXtSPVF9fXdoaWxl
KDApO2lmKChSfDApPT0wKXtWPTB9ZWxzZXtjW1I+PjJdPU07Vj1jW2g+PjJdfDB9UT1WKzR8MDtj
W2g+PjJdPVE7UD1QLTF8MDt9d2hpbGUoKFB8MCkhPTApO2k9ZDtyZXR1cm59UD1wPDw5O1E9YT4+
MTthPXErQ3wwO1Y9UT4+PjA8YT4+PjA/YTpRO1E9ZisxMnwwO2NbUT4+Ml09MDtjW2YrMTY+PjJd
PXU7aWYoKFZ8MCk9PTApe1c9MH1lbHNle1c9a08oVjw8Mil8MH11PWZ8MDtjW3U+PjJdPVc7YT1X
KyhDLXA8PDIpfDA7Qz1mKzh8MDtjW0M+PjJdPWE7Uj1mKzR8MDtjW1I+PjJdPWE7VD1XKyhWPDwy
KXwwO2NbUT4+Ml09VDtWPXE7cT1XO1c9YTtTPVQ7VD1hO3doaWxlKDEpe2E9a08oNDA5Nil8MDtk
b3tpZigoV3wwKT09KFN8MCkpe2lmKFQ+Pj4wPnE+Pj4wKXtVPVQ7Tz0oKFUtcT4+MikrMXwwKS8t
MnwwO049Uy1VfDA7a18oVCsoTzw8Mil8MCxUfDAsTnwwKTtVPVQrKE8rKE4+PjIpPDwyKXwwO2Nb
Qz4+Ml09VTtOPShjW1I+PjJdfDApKyhPPDwyKXwwO2NbUj4+Ml09TjtYPVU7WT1TO1o9cTtfPU47
YnJlYWt9Tj1TLXE+PjE7VT0oTnwwKT09MD8xOk47Tj1rTyhVPDwyKXwwO089TisoVT4+PjI8PDIp
fDA7cz1OKyhVPDwyKXwwO2lmKChUfDApPT0oU3wwKSl7JD1PO2FhPXF9ZWxzZXtVPVQ7Sj1PO2Rv
e2lmKChKfDApPT0wKXthYj0wfWVsc2V7Y1tKPj4yXT1jW1U+PjJdO2FiPUp9Sj1hYis0fDA7VT1V
KzR8MDt9d2hpbGUoKFV8MCkhPShTfDApKTskPUo7YWE9Y1t1Pj4yXXwwfWNbdT4+Ml09TjtjW1I+
PjJdPU87Y1tDPj4yXT0kO2NbUT4+Ml09cztpZigoYWF8MCk9PTApe1g9JDtZPXM7Wj1OO189Tzti
cmVha31rUyhhYSk7WD0kO1k9cztaPU47Xz1PfWVsc2V7WD1XO1k9UztaPXE7Xz1UfX13aGlsZSgw
KTtpZigoWHwwKT09MCl7YWM9MH1lbHNle2NbWD4+Ml09YTthYz1jW0M+PjJdfDB9YWQ9YWMrNHww
O2NbQz4+Ml09YWQ7TT1WLTF8MDtpZigoTXwwKT09MCl7YnJlYWt9ZWxzZXtWPU07cT1aO1c9YWQ7
Uz1ZO1Q9X319aWYoKHB8MCkhPTApe189cDtwPWNbaz4+Ml18MDtUPWFkO2FkPVk7WT1aO3doaWxl
KDEpe2Rve2lmKChUfDApPT0oYWR8MCkpe1o9Y1tSPj4yXXwwO2lmKFo+Pj4wPlk+Pj4wKXtTPVo7
Vz0oKFMtWT4+MikrMXwwKS8tMnwwO3E9WisoVzw8Mil8MDtWPWFkLVN8MDtrXyhxfDAsWnwwLFZ8
MCk7Uz1aKyhXKyhWPj4yKTw8Mil8MDtjW0M+PjJdPVM7Y1tSPj4yXT1xO2FlPVM7YWY9YWQ7YWc9
WTticmVha31TPWFkLVk+PjE7cT0oU3wwKT09MD8xOlM7Uz1rTyhxPDwyKXwwO1Y9UysocT4+PjI8
PDIpfDA7Vz1TKyhxPDwyKXwwO2lmKChafDApPT0oYWR8MCkpe2FoPVY7YWk9WX1lbHNle3E9Wjta
PVY7ZG97aWYoKFp8MCk9PTApe2FqPTB9ZWxzZXtjW1o+PjJdPWNbcT4+Ml07YWo9Wn1aPWFqKzR8
MDtxPXErNHwwO313aGlsZSgocXwwKSE9KGFkfDApKTthaD1aO2FpPWNbdT4+Ml18MH1jW3U+PjJd
PVM7Y1tSPj4yXT1WO2NbQz4+Ml09YWg7Y1tRPj4yXT1XO2lmKChhaXwwKT09MCl7YWU9YWg7YWY9
VzthZz1TO2JyZWFrfWtTKGFpKTthZT1haDthZj1XO2FnPVN9ZWxzZXthZT1UO2FmPWFkO2FnPVl9
fXdoaWxlKDApO2lmKChhZXwwKT09MCl7YWs9MH1lbHNle2NbYWU+PjJdPWNbcD4+Ml07YWs9Y1tD
Pj4yXXwwfWE9YWsrNHwwO2NbQz4+Ml09YTtxPShjW2s+PjJdfDApKzR8MDtjW2s+PjJdPXE7Tz1f
LTF8MDtpZigoT3wwKT09MCl7YnJlYWt9ZWxzZXtfPU87cD1xO1Q9YTthZD1hZjtZPWFnfX19YWc9
Y1toPj4yXXwwO3doaWxlKDEpe2lmKChhZ3wwKT09KGNbaz4+Ml18MCkpe2JyZWFrfVk9YWctNHww
O2NTKGYsWSk7YWc9WX1mPWNbRz4+Ml18MDtjW0c+PjJdPWNbdT4+Ml07Y1t1Pj4yXT1mO2Nbaz4+
Ml09Y1tSPj4yXTtjW1I+PjJdPWFnO1I9Y1toPj4yXXwwO2NbaD4+Ml09Y1tDPj4yXTtjW0M+PjJd
PVI7aD1jW3Q+PjJdfDA7Y1t0Pj4yXT1jW1E+PjJdO2NbUT4+Ml09aDtjW20+PjJdPShjW20+PjJd
fDApLVA7aWYoKGFnfDApIT0oUnwwKSl7Y1tDPj4yXT1SKyh+KChSLTQrKC1hZ3wwKXwwKT4+PjIp
PDwyKX1pZigoZnwwKT09MCl7aT1kO3JldHVybn1rUyhmKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGNS
KGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0w
LjAsaT0wLjAsaj0wLjAsaz0wLGw9MC4wLG09MC4wLG49MC4wLG89MCxwPTA7Zz0raFtiPj4zXTtp
PStoW2E+PjNdO2o9K2hbYz4+M107Zj1qPGc7ZG97aWYoZzxpKXtpZihmKXtoW2E+PjNdPWo7aFtj
Pj4zXT1pO2s9MTtsPWk7YnJlYWt9aFthPj4zXT1nO2hbYj4+M109aTttPStoW2M+PjNdO2lmKG0+
PWkpe2s9MTtsPW07YnJlYWt9aFtiPj4zXT1tO2hbYz4+M109aTtrPTI7bD1pfWVsc2V7aWYoIWYp
e2s9MDtsPWo7YnJlYWt9aFtiPj4zXT1qO2hbYz4+M109ZzttPStoW2I+PjNdO249K2hbYT4+M107
aWYobT49bil7az0xO2w9ZzticmVha31oW2E+PjNdPW07aFtiPj4zXT1uO2s9MjtsPStoW2M+PjNd
fX13aGlsZSgwKTtnPStoW2Q+PjNdO2Rve2lmKGc8bCl7aFtjPj4zXT1nO2hbZD4+M109bDtqPSto
W2M+PjNdO2k9K2hbYj4+M107aWYoaj49aSl7bz1rKzF8MDticmVha31oW2I+PjNdPWo7aFtjPj4z
XT1pO2k9K2hbYj4+M107aj0raFthPj4zXTtpZihpPGope2hbYT4+M109aTtoW2I+PjNdPWo7bz1r
KzN8MDticmVha31lbHNle289aysyfDA7YnJlYWt9fWVsc2V7bz1rfX13aGlsZSgwKTtsPStoW2U+
PjNdO2c9K2hbZD4+M107aWYobD49Zyl7cD1vO3JldHVybiBwfDB9aFtkPj4zXT1sO2hbZT4+M109
ZztnPStoW2Q+PjNdO2w9K2hbYz4+M107aWYoZz49bCl7cD1vKzF8MDtyZXR1cm4gcHwwfWhbYz4+
M109ZztoW2Q+PjNdPWw7bD0raFtjPj4zXTtnPStoW2I+PjNdO2lmKGw+PWcpe3A9bysyfDA7cmV0
dXJuIHB8MH1oW2I+PjNdPWw7aFtjPj4zXT1nO2c9K2hbYj4+M107bD0raFthPj4zXTtpZihnPj1s
KXtwPW8rM3wwO3JldHVybiBwfDB9aFthPj4zXT1nO2hbYj4+M109bDtwPW8rNHwwO3JldHVybiBw
fDB9ZnVuY3Rpb24gY1MoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxp
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MDtkPWErNHwwO2U9
Y1tkPj4yXXwwO2Y9YXwwO2Rve2lmKChlfDApPT0oY1tmPj4yXXwwKSl7Zz1hKzh8MDtoPWNbZz4+
Ml18MDtpPWErMTJ8MDtqPWNbaT4+Ml18MDtrPWo7aWYoaD4+PjA8aj4+PjApe2o9aDtsPSgoay1q
Pj4yKSsxfDApLzJ8MDttPWotZXwwO2o9aCsobC0obT4+Mik8PDIpfDA7a18oanwwLGV8MCxtfDAp
O2NbZD4+Ml09ajtjW2c+PjJdPShjW2c+PjJdfDApKyhsPDwyKTtuPWo7YnJlYWt9aj1rLWU+PjE7
az0oanwwKT09MD8xOmo7aj1rTyhrPDwyKXwwO2w9aisoKGsrM3wwKT4+PjI8PDIpfDA7bT1qKyhr
PDwyKXwwO2lmKChlfDApPT0oaHwwKSl7bz1sO3A9ZX1lbHNle2s9ZTtxPWw7ZG97aWYoKHF8MCk9
PTApe3I9MH1lbHNle2NbcT4+Ml09Y1trPj4yXTtyPXF9cT1yKzR8MDtrPWsrNHwwO313aGlsZSgo
a3wwKSE9KGh8MCkpO289cTtwPWNbZj4+Ml18MH1jW2Y+PjJdPWo7Y1tkPj4yXT1sO2NbZz4+Ml09
bztjW2k+PjJdPW07aWYoKHB8MCk9PTApe249bDticmVha31rUyhwKTtuPWNbZD4+Ml18MH1lbHNl
e249ZX19d2hpbGUoMCk7ZT1uLTR8MDtpZigoZXwwKT09MCl7cz1uO3Q9cy00fDA7Y1tkPj4yXT10
O3JldHVybn1jW2U+PjJdPWNbYj4+Ml07cz1jW2Q+PjJdfDA7dD1zLTR8MDtjW2Q+PjJdPXQ7cmV0
dXJufWZ1bmN0aW9uIGNUKCl7Y1syNDQ2XT0wO2NbMjQ0N109MDtjWzI0NDhdPTA7YSQoNzIsOTc4
NCx1fDApfDA7cmV0dXJufWZ1bmN0aW9uIGNVKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDt2YXIg
ZD0wLGU9MCxmPTAsZz0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAuMCxxPTAuMCxy
PTAuMCxzPTAuMCx0PTAuMCx1PTAsdj0wLHc9MCx4PTAuMCx5PTAsej0wLjAsQT0wLEI9MCxDPTAs
RD0wLjAsRT0wLEY9MCxHPTAuMCxIPTAsST0wLEo9MCxLPTAuMCxMPTAsTT0wLE49MC4wLE89MCxQ
PTAsUT0wLFI9MCxTPTAsVD0wLjAsVT0wLFY9MCxXPTAuMCxYPTAsWT0wLjA7ZD1hO2E9YjtMMTM5
Nzp3aGlsZSgxKXtiPWE7ZT1hLTh8MDtmPWQ7TDEzOTk6d2hpbGUoMSl7Zz1mO2k9Yi1nfDA7aj1p
Pj4zO3N3aXRjaChqfDApe2Nhc2UgMzp7az0xMTAyO2JyZWFrIEwxMzk3O2JyZWFrfTtjYXNlIDU6
e2s9MTEyMjticmVhayBMMTM5NzticmVha307Y2FzZSAyOntrPTExMDA7YnJlYWsgTDEzOTc7YnJl
YWt9O2Nhc2UgMDpjYXNlIDE6e2s9MTE4NTticmVhayBMMTM5NzticmVha307Y2FzZSA0OntrPTEx
MTA7YnJlYWsgTDEzOTc7YnJlYWt9O2RlZmF1bHQ6e319aWYoKGl8MCk8MjQ4KXtrPTExMjQ7YnJl
YWsgTDEzOTd9bD0oanwwKS8yfDA7bT1mKyhsPDwzKXwwO2Rve2lmKChpfDApPjc5OTIpe249KGp8
MCkvNHwwO289Y1IoZixmKyhuPDwzKXwwLG0sZisobitsPDwzKXwwLGUsMCl8MH1lbHNle3A9K2hb
bT4+M107cT0raFtmPj4zXTtyPStoW2U+PjNdO249cjxwO2lmKHA+PXEpe2lmKCFuKXtvPTA7YnJl
YWt9aFttPj4zXT1yO2hbZT4+M109cDtzPStoW20+PjNdO3Q9K2hbZj4+M107aWYocz49dCl7bz0x
O2JyZWFrfWhbZj4+M109cztoW20+PjNdPXQ7bz0yO2JyZWFrfWlmKG4pe2hbZj4+M109cjtoW2U+
PjNdPXE7bz0xO2JyZWFrfWhbZj4+M109cDtoW20+PjNdPXE7cD0raFtlPj4zXTtpZihwPj1xKXtv
PTE7YnJlYWt9aFttPj4zXT1wO2hbZT4+M109cTtvPTJ9fXdoaWxlKDApO3E9K2hbZj4+M107cD0r
aFttPj4zXTtkb3tpZihxPHApe3U9ZTt2PW99ZWxzZXtsPWU7d2hpbGUoMSl7dz1sLTh8MDtpZigo
ZnwwKT09KHd8MCkpe2JyZWFrfXg9K2hbdz4+M107aWYoeDxwKXtrPTExNjI7YnJlYWt9ZWxzZXts
PXd9fWlmKChrfDApPT0xMTYyKXtrPTA7aFtmPj4zXT14O2hbdz4+M109cTt1PXc7dj1vKzF8MDti
cmVha31sPWYrOHwwO3I9K2hbZT4+M107aWYocTxyKXt5PWx9ZWxzZXtqPWw7d2hpbGUoMSl7aWYo
KGp8MCk9PShlfDApKXtrPTExOTc7YnJlYWsgTDEzOTd9ej0raFtqPj4zXTtBPWorOHwwO2lmKHE8
eil7YnJlYWt9ZWxzZXtqPUF9fWhbaj4+M109cjtoW2U+PjNdPXo7eT1BfWlmKCh5fDApPT0oZXww
KSl7az0xMTkyO2JyZWFrIEwxMzk3fWVsc2V7Qj1lO0M9eX13aGlsZSgxKXt0PStoW2Y+PjNdO2w9
Qzt3aGlsZSgxKXtEPStoW2w+PjNdO0U9bCs4fDA7aWYodD49RCl7bD1FfWVsc2V7Rj1CO2JyZWFr
fX1kb3tGPUYtOHwwO0c9K2hbRj4+M107fXdoaWxlKHQ8Ryk7aWYobD4+PjA+PUY+Pj4wKXtmPWw7
Y29udGludWUgTDEzOTl9aFtsPj4zXT1HO2hbRj4+M109RDtCPUY7Qz1FfX19d2hpbGUoMCk7aj1m
Kzh8MDtMMTQzODpkb3tpZihqPj4+MDx1Pj4+MCl7aT11O249ajtIPXY7ST1tO3doaWxlKDEpe3E9
K2hbST4+M107Sj1uO3doaWxlKDEpe0s9K2hbSj4+M107TD1KKzh8MDtpZihLPHEpe0o9TH1lbHNl
e009aTticmVha319ZG97TT1NLTh8MDtOPStoW00+PjNdO313aGlsZShOPj1xKTtpZihKPj4+MD5N
Pj4+MCl7Tz1KO1A9SDtRPUk7YnJlYWsgTDE0Mzh9aFtKPj4zXT1OO2hbTT4+M109SztpPU07bj1M
O0g9SCsxfDA7ST0oSXwwKT09KEp8MCk/TTpJfX1lbHNle089ajtQPXY7UT1tfX13aGlsZSgwKTtk
b3tpZigoT3wwKT09KFF8MCkpe1I9UH1lbHNle3E9K2hbUT4+M107cD0raFtPPj4zXTtpZihxPj1w
KXtSPVA7YnJlYWt9aFtPPj4zXT1xO2hbUT4+M109cDtSPVArMXwwfX13aGlsZSgwKTtpZigoUnww
KT09MCl7Uz1jVihmLE8sMCl8MDttPU8rOHwwO2lmKGNWKG0sYSwwKXwwKXtrPTExNzQ7YnJlYWt9
aWYoUyl7Zj1tO2NvbnRpbnVlfX1tPU87aWYoKG0tZ3wwKT49KGItbXwwKSl7az0xMTc4O2JyZWFr
fWNVKGYsTyxjKTtmPU8rOHwwfWlmKChrfDApPT0xMTc0KXtrPTA7aWYoUyl7az0xMTg2O2JyZWFr
fWVsc2V7ZD1mO2E9Tztjb250aW51ZX19ZWxzZSBpZigoa3wwKT09MTE3OCl7az0wO2NVKE8rOHww
LGEsYyk7ZD1mO2E9Tztjb250aW51ZX19aWYoKGt8MCk9PTExMDIpe089Zis4fDA7Sz0raFtPPj4z
XTtOPStoW2Y+PjNdO0Q9K2hbZT4+M107ZD1EPEs7aWYoSz49Til7aWYoIWQpe3JldHVybn1oW08+
PjNdPUQ7aFtlPj4zXT1LO0c9K2hbTz4+M107ej0raFtmPj4zXTtpZihHPj16KXtyZXR1cm59aFtm
Pj4zXT1HO2hbTz4+M109ejtyZXR1cm59aWYoZCl7aFtmPj4zXT1EO2hbZT4+M109TjtyZXR1cm59
aFtmPj4zXT1LO2hbTz4+M109TjtLPStoW2U+PjNdO2lmKEs+PU4pe3JldHVybn1oW08+PjNdPUs7
aFtlPj4zXT1OO3JldHVybn1lbHNlIGlmKChrfDApPT0xMTIyKXtjUihmLGYrOHwwLGYrMTZ8MCxm
KzI0fDAsZSwwKXwwO3JldHVybn1lbHNlIGlmKChrfDApPT0xMTI0KXtPPWYrMTZ8MDtkPWYrOHww
O049K2hbZD4+M107Sz0raFtmPj4zXTtEPStoW08+PjNdO2M9RDxOO2Rve2lmKE48Syl7aWYoYyl7
aFtmPj4zXT1EO2hbTz4+M109SztUPUs7YnJlYWt9aFtmPj4zXT1OO2hbZD4+M109SztpZihEPj1L
KXtUPUQ7YnJlYWt9aFtkPj4zXT1EO2hbTz4+M109SztUPUt9ZWxzZXtpZighYyl7VD1EO2JyZWFr
fWhbZD4+M109RDtoW08+PjNdPU47aWYoRD49Syl7VD1OO2JyZWFrfWhbZj4+M109RDtoW2Q+PjNd
PUs7VD1OfX13aGlsZSgwKTtkPWYrMjR8MDtpZigoZHwwKT09KGF8MCkpe3JldHVybn1lbHNle1U9
TztWPWQ7Vz1UfXdoaWxlKDEpe1Q9K2hbVj4+M107aWYoVDxXKXtkPVU7Tz1WO049Vzt3aGlsZSgx
KXtoW08+PjNdPU47aWYoKGR8MCk9PShmfDApKXtYPWY7YnJlYWt9Yz1kLTh8MDtLPStoW2M+PjNd
O2lmKFQ8Syl7Tz1kO2Q9YztOPUt9ZWxzZXtYPWQ7YnJlYWt9fWhbWD4+M109VH1kPVYrOHwwO2lm
KChkfDApPT0oYXwwKSl7YnJlYWt9Tj0raFtWPj4zXTtVPVY7Vj1kO1c9Tn1yZXR1cm59ZWxzZSBp
Zigoa3wwKT09MTE5Nyl7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMDApe1c9K2hbZT4+M107Tj0r
aFtmPj4zXTtpZihXPj1OKXtyZXR1cm59aFtmPj4zXT1XO2hbZT4+M109TjtyZXR1cm59ZWxzZSBp
Zigoa3wwKT09MTE4NSl7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExODYpe3JldHVybn1lbHNlIGlm
KChrfDApPT0xMTkyKXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTExMCl7az1mKzh8MDtWPWYrMTZ8
MDtOPStoW2s+PjNdO1c9K2hbZj4+M107Sz0raFtWPj4zXTtVPUs8Tjtkb3tpZihOPFcpe2lmKFUp
e2hbZj4+M109SztoW1Y+PjNdPVc7WT1XO2JyZWFrfWhbZj4+M109TjtoW2s+PjNdPVc7aWYoSz49
Vyl7WT1LO2JyZWFrfWhbaz4+M109SztoW1Y+PjNdPVc7WT1XfWVsc2V7aWYoIVUpe1k9SzticmVh
a31oW2s+PjNdPUs7aFtWPj4zXT1OO2lmKEs+PVcpe1k9TjticmVha31oW2Y+PjNdPUs7aFtrPj4z
XT1XO1k9Tn19d2hpbGUoMCk7Tj0raFtlPj4zXTtpZihOPj1ZKXtyZXR1cm59aFtWPj4zXT1OO2hb
ZT4+M109WTtZPStoW1Y+PjNdO049K2hbaz4+M107aWYoWT49Til7cmV0dXJufWhbaz4+M109WTto
W1Y+PjNdPU47Tj0raFtmPj4zXTtpZihZPj1OKXtyZXR1cm59aFtmPj4zXT1ZO2hbaz4+M109Tjty
ZXR1cm59fWZ1bmN0aW9uIGNWKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDt2YXIgZD0wLGU9MCxm
PTAuMCxnPTAuMCxpPTAuMCxqPTAsaz0wLjAsbD0wLjAsbT0wLG49MC4wLG89MC4wLHA9MCxxPTAs
cj0wLHM9MC4wLHQ9MCx1PTAsdj0wO3N3aXRjaChiLWE+PjN8MCl7Y2FzZSAwOmNhc2UgMTp7ZD0x
O3JldHVybiBkfDB9O2Nhc2UgMzp7Yz1hKzh8MDtlPWItOHwwO2Y9K2hbYz4+M107Zz0raFthPj4z
XTtpPStoW2U+PjNdO2o9aTxmO2lmKGY+PWcpe2lmKCFqKXtkPTE7cmV0dXJuIGR8MH1oW2M+PjNd
PWk7aFtlPj4zXT1mO2s9K2hbYz4+M107bD0raFthPj4zXTtpZihrPj1sKXtkPTE7cmV0dXJuIGR8
MH1oW2E+PjNdPWs7aFtjPj4zXT1sO2Q9MTtyZXR1cm4gZHwwfWlmKGope2hbYT4+M109aTtoW2U+
PjNdPWc7ZD0xO3JldHVybiBkfDB9aFthPj4zXT1mO2hbYz4+M109ZztmPStoW2U+PjNdO2lmKGY+
PWcpe2Q9MTtyZXR1cm4gZHwwfWhbYz4+M109ZjtoW2U+PjNdPWc7ZD0xO3JldHVybiBkfDB9O2Nh
c2UgMjp7ZT1iLTh8MDtnPStoW2U+PjNdO2Y9K2hbYT4+M107aWYoZz49Zil7ZD0xO3JldHVybiBk
fDB9aFthPj4zXT1nO2hbZT4+M109ZjtkPTE7cmV0dXJuIGR8MH07Y2FzZSA0OntlPWErOHwwO2M9
YSsxNnwwO2o9Yi04fDA7Zj0raFtlPj4zXTtnPStoW2E+PjNdO2k9K2hbYz4+M107bT1pPGY7ZG97
aWYoZjxnKXtpZihtKXtoW2E+PjNdPWk7aFtjPj4zXT1nO249ZzticmVha31oW2E+PjNdPWY7aFtl
Pj4zXT1nO2lmKGk+PWcpe249aTticmVha31oW2U+PjNdPWk7aFtjPj4zXT1nO249Z31lbHNle2lm
KCFtKXtuPWk7YnJlYWt9aFtlPj4zXT1pO2hbYz4+M109ZjtpZihpPj1nKXtuPWY7YnJlYWt9aFth
Pj4zXT1pO2hbZT4+M109ZztuPWZ9fXdoaWxlKDApO2Y9K2hbaj4+M107aWYoZj49bil7ZD0xO3Jl
dHVybiBkfDB9aFtjPj4zXT1mO2hbaj4+M109bjtuPStoW2M+PjNdO2Y9K2hbZT4+M107aWYobj49
Zil7ZD0xO3JldHVybiBkfDB9aFtlPj4zXT1uO2hbYz4+M109ZjtmPStoW2E+PjNdO2lmKG4+PWYp
e2Q9MTtyZXR1cm4gZHwwfWhbYT4+M109bjtoW2U+PjNdPWY7ZD0xO3JldHVybiBkfDB9O2Nhc2Ug
NTp7Y1IoYSxhKzh8MCxhKzE2fDAsYSsyNHwwLGItOHwwLDApfDA7ZD0xO3JldHVybiBkfDB9O2Rl
ZmF1bHQ6e2U9YSsxNnwwO2M9YSs4fDA7Zj0raFtjPj4zXTtuPStoW2E+PjNdO2c9K2hbZT4+M107
aj1nPGY7ZG97aWYoZjxuKXtpZihqKXtoW2E+PjNdPWc7aFtlPj4zXT1uO289bjticmVha31oW2E+
PjNdPWY7aFtjPj4zXT1uO2lmKGc+PW4pe289ZzticmVha31oW2M+PjNdPWc7aFtlPj4zXT1uO289
bn1lbHNle2lmKCFqKXtvPWc7YnJlYWt9aFtjPj4zXT1nO2hbZT4+M109ZjtpZihnPj1uKXtvPWY7
YnJlYWt9aFthPj4zXT1nO2hbYz4+M109bjtvPWZ9fXdoaWxlKDApO2M9YSsyNHwwO2lmKChjfDAp
PT0oYnwwKSl7ZD0xO3JldHVybiBkfDB9ZWxzZXtwPWU7cT0wO3I9YztzPW99d2hpbGUoMSl7bz0r
aFtyPj4zXTtpZihvPHMpe2M9cDtlPXI7Zj1zO3doaWxlKDEpe2hbZT4+M109ZjtpZigoY3wwKT09
KGF8MCkpe3Q9YTticmVha31qPWMtOHwwO249K2hbaj4+M107aWYobzxuKXtlPWM7Yz1qO2Y9bn1l
bHNle3Q9YzticmVha319aFt0Pj4zXT1vO2M9cSsxfDA7aWYoKGN8MCk9PTgpe2JyZWFrfWVsc2V7
dT1jfX1lbHNle3U9cX1jPXIrOHwwO2lmKChjfDApPT0oYnwwKSl7ZD0xO3Y9MTI1NjticmVha31m
PStoW3I+PjNdO3A9cjtxPXU7cj1jO3M9Zn1pZigodnwwKT09MTI1Nil7cmV0dXJuIGR8MH1kPShy
Kzh8MCk9PShifDApO3JldHVybiBkfDB9fXJldHVybiAwfWZ1bmN0aW9uIGNXKGEpe2E9YXwwO3Zh
ciBiPTA7YT0oY1s0MDM4XXwwKS0xfDA7Y1s0MDM4XT1hO2lmKChhfDApIT0wKXtyZXR1cm59Yjty
ZXR1cm59ZnVuY3Rpb24gY1goYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wO2Rve2lmKChhWzE2Mjgw
XXwwKT09MCl7aWYoKGJjKDE2MjgwKXwwKT09MCl7YnJlYWt9Y1syOTYyXT01NDg5O2I9MTtkPTU0
ODk7ZG97ZD0oYWcoZD4+PjMwXmQsMTgxMjQzMzI1Myl8MCkrYnwwO2NbMTE4NDgrKGI8PDIpPj4y
XT1kO2I9YisxfDA7fXdoaWxlKGI+Pj4wPDYyNCk7Y1szNTg2XT0wfX13aGlsZSgwKTtiPWNbMzU4
Nl18MDtkPSgoYisxfDApPj4+MCklNjI0fDA7ZT0xMTg0OCsoYjw8Mil8MDtmPWNbMTE4NDgrKGQ8
PDIpPj4yXXwwO2NbZT4+Ml09LShmJjEpJi0xNzI3NDgzNjgxXmNbMTE4NDgrKCgoKGIrMzk3fDAp
Pj4+MCklNjI0fDApPDwyKT4+Ml1eKGYmMjE0NzQ4MzY0NnxjW2U+PjJdJi0yMTQ3NDgzNjQ4KT4+
PjE7ZT1jWzExODQ4KyhjWzM1ODZdPDwyKT4+Ml18MDtmPWU+Pj4xMV5lO2NbMzU4Nl09ZDtkPWY8
PDcmLTE2NTgwMzg2NTZeZjtmPWQ8PDE1Ji0yNzIyMzY1NDReZDtyZXR1cm4gZj4+PjE4XmZ8MH1m
dW5jdGlvbiBjWShhKXthPWF8MDt2YXIgYj0wO2I7Y1s0MDM4XT0xO3JldHVybn1mdW5jdGlvbiBj
WihiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MDtiPWk7aT1pKzMy
fDA7ZD1ifDA7ZT1iKzh8MDtmPWIrMTZ8MDtnPWIrMjR8MDtkcSgxNTEzNixjW28+PjJdfDAsMTUx
OTIpO2NbNDAxNF09NDUwMDtjWzQwMTZdPTQ1MjA7Y1s0MDE1XT0wO2g9Y1sxMTIyXXwwO2VrKDE2
MDU2K2h8MCwxNTEzNik7Y1toKzE2MTI4Pj4yXT0wO2NbaCsxNjEzMj4+Ml09LTE7aD1jW3Q+PjJd
fDA7ZXAoMTUwNDApO2NbMzc2MF09NDY0ODtjWzM3NjhdPWg7aU4oZywxNTA0NCk7aD1pWChnLDE1
MzkyKXwwO2o9aDtpTyhnKTtjWzM3NjldPWo7Y1szNzcwXT0xNTIwMDthWzE1MDg0XT0oYjBbY1so
Y1toPj4yXXwwKSsyOD4+Ml0mMTI3XShqKXwwKSYxO2NbMzk0OF09NDQwNDtjWzM5NDldPTQ0MjQ7
aj1jWzEwOThdfDA7ZWsoMTU3OTIranwwLDE1MDQwKTtoPWorNzJ8MDtjWzE1NzkyK2g+PjJdPTA7
Zz1qKzc2fDA7Y1sxNTc5MitnPj4yXT0tMTtrPWNbcj4+Ml18MDtlcCgxNTA4OCk7Y1szNzcyXT00
NjQ4O2NbMzc4MF09aztpTihmLDE1MDkyKTtrPWlYKGYsMTUzOTIpfDA7bD1rO2lPKGYpO2NbMzc4
MV09bDtjWzM3ODJdPTE1MjA4O2FbMTUxMzJdPShiMFtjWyhjW2s+PjJdfDApKzI4Pj4yXSYxMjdd
KGwpfDApJjE7Y1szOTkyXT00NDA0O2NbMzk5M109NDQyNDtlaygxNTk2OCtqfDAsMTUwODgpO2Nb
MTU5NjgraD4+Ml09MDtjWzE1OTY4K2c+PjJdPS0xO2w9Y1soY1soY1szOTkyXXwwKS0xMj4+Ml18
MCkrMTU5OTI+PjJdfDA7Y1szOTcwXT00NDA0O2NbMzk3MV09NDQyNDtlaygxNTg4MCtqfDAsbCk7
Y1sxNTg4MCtoPj4yXT0wO2NbMTU4ODArZz4+Ml09LTE7Y1soY1soY1s0MDE0XXwwKS0xMj4+Ml18
MCkrMTYxMjg+PjJdPTE1NzkyO2c9KGNbKGNbMzk5Ml18MCktMTI+PjJdfDApKzE1OTcyfDA7Y1tn
Pj4yXT1jW2c+PjJdfDgxOTI7Y1soY1soY1szOTkyXXwwKS0xMj4+Ml18MCkrMTYwNDA+PjJdPTE1
NzkyO2MzKDE0OTg0LGNbbz4+Ml18MCwxNTIxNik7Y1szOTI2XT00NDUyO2NbMzkyOF09NDQ3Mjtj
WzM5MjddPTA7Zz1jWzExMTBdfDA7ZWsoMTU3MDQrZ3wwLDE0OTg0KTtjW2crMTU3NzY+PjJdPTA7
Y1tnKzE1NzgwPj4yXT0tMTtnPWNbdD4+Ml18MDtldygxNDg4OCk7Y1szNzIyXT00NTc2O2NbMzcz
MF09ZztpTihlLDE0ODkyKTtnPWlYKGUsMTUzODQpfDA7aD1nO2lPKGUpO2NbMzczMV09aDtjWzM3
MzJdPTE1MjI0O2FbMTQ5MzJdPShiMFtjWyhjW2c+PjJdfDApKzI4Pj4yXSYxMjddKGgpfDApJjE7
Y1szODU2XT00MzU2O2NbMzg1N109NDM3NjtoPWNbMTA4Nl18MDtlaygxNTQyNCtofDAsMTQ4ODgp
O2c9aCs3MnwwO2NbMTU0MjQrZz4+Ml09MDtlPWgrNzZ8MDtjWzE1NDI0K2U+PjJdPS0xO2w9Y1ty
Pj4yXXwwO2V3KDE0OTM2KTtjWzM3MzRdPTQ1NzY7Y1szNzQyXT1sO2lOKGQsMTQ5NDApO2w9aVgo
ZCwxNTM4NCl8MDtqPWw7aU8oZCk7Y1szNzQzXT1qO2NbMzc0NF09MTUyMzI7YVsxNDk4MF09KGIw
W2NbKGNbbD4+Ml18MCkrMjg+PjJdJjEyN10oail8MCkmMTtjWzM5MDBdPTQzNTY7Y1szOTAxXT00
Mzc2O2VrKDE1NjAwK2h8MCwxNDkzNik7Y1sxNTYwMCtnPj4yXT0wO2NbMTU2MDArZT4+Ml09LTE7
aj1jWyhjWyhjWzM5MDBdfDApLTEyPj4yXXwwKSsxNTYyND4+Ml18MDtjWzM4NzhdPTQzNTY7Y1sz
ODc5XT00Mzc2O2VrKDE1NTEyK2h8MCxqKTtjWzE1NTEyK2c+PjJdPTA7Y1sxNTUxMitlPj4yXT0t
MTtjWyhjWyhjWzM5MjZdfDApLTEyPj4yXXwwKSsxNTc3Nj4+Ml09MTU0MjQ7ZT0oY1soY1szOTAw
XXwwKS0xMj4+Ml18MCkrMTU2MDR8MDtjW2U+PjJdPWNbZT4+Ml18ODE5MjtjWyhjWyhjWzM5MDBd
fDApLTEyPj4yXXwwKSsxNTY3Mj4+Ml09MTU0MjQ7aT1iO3JldHVybn1mdW5jdGlvbiBjXyhhKXth
PWF8MDtldihhfDApO3JldHVybn1mdW5jdGlvbiBjJChhKXthPWF8MDtldihhfDApO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBjMChiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTA7YjBbY1soY1tiPj4yXXww
KSsyND4+Ml0mMTI3XShiKXwwO2U9aVgoZCwxNTM4NCl8MDtkPWU7Y1tiKzM2Pj4yXT1kO2FbYis0
NHwwXT0oYjBbY1soY1tlPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO3JldHVybn1mdW5jdGlv
biBjMShhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0w
LG49MDtiPWk7aT1pKzE2fDA7ZD1ifDA7ZT1iKzh8MDtmPWErMzZ8MDtnPWErNDB8MDtoPWR8MDtq
PWQrOHwwO2s9ZDtkPWErMzJ8MDtMMTY0Mjp3aGlsZSgxKXthPWNbZj4+Ml18MDtsPWIkW2NbKGNb
YT4+Ml18MCkrMjA+PjJdJjMxXShhLGNbZz4+Ml18MCxoLGosZSl8MDthPShjW2U+PjJdfDApLWt8
MDtpZigoYU0oaHwwLDEsYXwwLGNbZD4+Ml18MCl8MCkhPShhfDApKXttPS0xO249MTMwNDticmVh
a31zd2l0Y2gobHwwKXtjYXNlIDI6e209LTE7bj0xMzA1O2JyZWFrIEwxNjQyO2JyZWFrfTtjYXNl
IDE6e2JyZWFrfTtkZWZhdWx0OntuPTEzMDE7YnJlYWsgTDE2NDJ9fX1pZigobnwwKT09MTMwNCl7
aT1iO3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTMwNSl7aT1iO3JldHVybiBtfDB9ZWxzZSBp
ZigobnwwKT09MTMwMSl7bT0oKGFLKGNbZD4+Ml18MCl8MCkhPTApPDwzMT4+MzE7aT1iO3JldHVy
biBtfDB9cmV0dXJuIDB9ZnVuY3Rpb24gYzIoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxn
PTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1lKzI0fDA7az0oZHww
KT09LTE7TDE2NTE6ZG97aWYoIWspe2NbZz4+Ml09ZDtpZigoYVtiKzQ0fDBdJjEpIT0wKXtpZigo
YU0oZ3wwLDQsMSxjW2IrMzI+PjJdfDApfDApPT0xKXticmVha31lbHNle2w9LTF9aT1lO3JldHVy
biBsfDB9bT1mfDA7Y1toPj4yXT1tO249Zys0fDA7bz1iKzM2fDA7cD1iKzQwfDA7cT1mKzh8MDty
PWY7cz1iKzMyfDA7dD1nO3doaWxlKDEpe3U9Y1tvPj4yXXwwO3Y9YjZbY1soY1t1Pj4yXXwwKSsx
Mj4+Ml0mMzFdKHUsY1twPj4yXXwwLHQsbixqLG0scSxoKXwwO2lmKChjW2o+PjJdfDApPT0odHww
KSl7bD0tMTt3PTEzMjA7YnJlYWt9aWYoKHZ8MCk9PTMpe3c9MTMxMjticmVha311PSh2fDApPT0x
O2lmKHY+Pj4wPj0yKXtsPS0xO3c9MTMyMjticmVha312PShjW2g+PjJdfDApLXJ8MDtpZigoYU0o
bXwwLDEsdnwwLGNbcz4+Ml18MCl8MCkhPSh2fDApKXtsPS0xO3c9MTMyMTticmVha31pZih1KXt0
PXU/Y1tqPj4yXXwwOnR9ZWxzZXticmVhayBMMTY1MX19aWYoKHd8MCk9PTEzMjEpe2k9ZTtyZXR1
cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTEzMjIpe2k9ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9
PTEzMTIpe2lmKChhTSh0fDAsMSwxLGNbcz4+Ml18MCl8MCk9PTEpe2JyZWFrfWVsc2V7bD0tMX1p
PWU7cmV0dXJuIGx8MH1lbHNlIGlmKCh3fDApPT0xMzIwKXtpPWU7cmV0dXJuIGx8MH19fXdoaWxl
KDApO2w9az8wOmQ7aT1lO3JldHVybiBsfDB9ZnVuY3Rpb24gYzMoYixkLGUpe2I9YnwwO2Q9ZHww
O2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxqPTA7Zj1pO2k9aSs4fDA7Zz1mfDA7ZXcoYnwwKTtjW2I+
PjJdPTQ5NzY7Y1tiKzMyPj4yXT1kO2NbYis0MD4+Ml09ZTtjW2IrNDg+PjJdPS0xO2FbYis1Mnww
XT0wO2lOKGcsYis0fDApO2U9aVgoZywxNTM4NCl8MDtkPWU7aD1iKzM2fDA7Y1toPj4yXT1kO2o9
Yis0NHwwO2Nbaj4+Ml09YjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShkKXwwO2Q9Y1toPj4y
XXwwO2FbYis1M3wwXT0oYjBbY1soY1tkPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO2lmKChj
W2o+PjJdfDApPD04KXtpTyhnKTtpPWY7cmV0dXJufWhWKDE4NCk7aU8oZyk7aT1mO3JldHVybn1m
dW5jdGlvbiBjNChhKXthPWF8MDtldihhfDApO3JldHVybn1mdW5jdGlvbiBjNShhKXthPWF8MDtl
dihhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBjNihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MDtlPWlYKGQsMTUzODQpfDA7ZD1lO2Y9YiszNnwwO2NbZj4+Ml09ZDtnPWIrNDR8MDtj
W2c+PjJdPWIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZCl8MDtkPWNbZj4+Ml18MDthW2Ir
NTN8MF09KGIwW2NbKGNbZD4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtpZigoY1tnPj4yXXww
KTw9OCl7cmV0dXJufWhWKDE4NCk7cmV0dXJufWZ1bmN0aW9uIGM3KGEpe2E9YXwwO3JldHVybiBk
YShhLDApfDB9ZnVuY3Rpb24gYzgoYSl7YT1hfDA7cmV0dXJuIGRhKGEsMSl8MH1mdW5jdGlvbiBj
OShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1l
KzI0fDA7az1iKzUyfDA7bD0oYVtrXSYxKSE9MDtpZigoZHwwKT09LTEpe2lmKGwpe209LTE7aT1l
O3JldHVybiBtfDB9bj1jW2IrNDg+PjJdfDA7YVtrXT0obnwwKSE9LTF8MDttPW47aT1lO3JldHVy
biBtfDB9bj1iKzQ4fDA7TDE2OTQ6ZG97aWYobCl7Y1toPj4yXT1jW24+PjJdO289Y1tiKzM2Pj4y
XXwwO3A9ZnwwO3N3aXRjaChiNltjWyhjW28+PjJdfDApKzEyPj4yXSYzMV0obyxjW2IrNDA+PjJd
fDAsaCxoKzR8MCxqLHAsZis4fDAsZyl8MCl7Y2FzZSAyOmNhc2UgMTp7bT0tMTtpPWU7cmV0dXJu
IG18MH07Y2FzZSAzOnthW3BdPWNbbj4+Ml0mMjU1O2NbZz4+Ml09ZisxO2JyZWFrfTtkZWZhdWx0
Ont9fW89YiszMnwwO3doaWxlKDEpe3E9Y1tnPj4yXXwwO2lmKHE+Pj4wPD1wPj4+MCl7YnJlYWsg
TDE2OTR9cj1xLTF8MDtjW2c+PjJdPXI7aWYoKGJBKGFbcl18MCxjW28+PjJdfDApfDApPT0tMSl7
bT0tMTticmVha319aT1lO3JldHVybiBtfDB9fXdoaWxlKDApO2Nbbj4+Ml09ZDthW2tdPTE7bT1k
O2k9ZTtyZXR1cm4gbXwwfWZ1bmN0aW9uIGRhKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAs
Zz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1lKzI0
fDA7az1iKzUyfDA7aWYoKGFba10mMSkhPTApe2w9Yis0OHwwO209Y1tsPj4yXXwwO2lmKCFkKXtu
PW07aT1lO3JldHVybiBufDB9Y1tsPj4yXT0tMTthW2tdPTA7bj1tO2k9ZTtyZXR1cm4gbnwwfW09
Y1tiKzQ0Pj4yXXwwO2s9KG18MCk+MT9tOjE7TDE3MTQ6ZG97aWYoKGt8MCk+MCl7bT1iKzMyfDA7
bD0wO3doaWxlKDEpe289YV8oY1ttPj4yXXwwKXwwO2lmKChvfDApPT0tMSl7bj0tMTticmVha31h
W2YrbHwwXT1vJjI1NTtsPWwrMXwwO2lmKChsfDApPj0oa3wwKSl7YnJlYWsgTDE3MTR9fWk9ZTty
ZXR1cm4gbnwwfX13aGlsZSgwKTtMMTcyMTpkb3tpZigoYVtiKzUzfDBdJjEpPT0wKXtsPWIrNDB8
MDttPWIrMzZ8MDtvPWZ8MDtwPWcrNHwwO3E9YiszMnwwO3I9aztMMTcyMzp3aGlsZSgxKXtzPWNb
bD4+Ml18MDt0PXM7dT1jW3Q+PjJdfDA7dj1jW3QrND4+Ml18MDt0PWNbbT4+Ml18MDt3PWYrcnww
O3N3aXRjaChiNltjWyhjW3Q+PjJdfDApKzE2Pj4yXSYzMV0odCxzLG8sdyxoLGcscCxqKXwwKXtj
YXNlIDE6e2JyZWFrfTtjYXNlIDI6e249LTE7eD0xMzgwO2JyZWFrIEwxNzIzO2JyZWFrfTtjYXNl
IDM6e3g9MTM2OTticmVhayBMMTcyMzticmVha307ZGVmYXVsdDp7eT1yO2JyZWFrIEwxNzIxfX1z
PWNbbD4+Ml18MDtjW3M+PjJdPXU7Y1tzKzQ+PjJdPXY7aWYoKHJ8MCk9PTgpe249LTE7eD0xMzc5
O2JyZWFrfXY9YV8oY1txPj4yXXwwKXwwO2lmKCh2fDApPT0tMSl7bj0tMTt4PTEzODU7YnJlYWt9
YVt3XT12JjI1NTtyPXIrMXwwfWlmKCh4fDApPT0xMzc5KXtpPWU7cmV0dXJuIG58MH1lbHNlIGlm
KCh4fDApPT0xMzgwKXtpPWU7cmV0dXJuIG58MH1lbHNlIGlmKCh4fDApPT0xMzg1KXtpPWU7cmV0
dXJuIG58MH1lbHNlIGlmKCh4fDApPT0xMzY5KXtjW2c+PjJdPWFbb118MDt5PXI7YnJlYWt9fWVs
c2V7Y1tnPj4yXT1hW2Z8MF18MDt5PWt9fXdoaWxlKDApO2lmKGQpe2Q9Y1tnPj4yXXwwO2NbYis0
OD4+Ml09ZDtuPWQ7aT1lO3JldHVybiBufDB9ZD1iKzMyfDA7Yj15O3doaWxlKDEpe2lmKChifDAp
PD0wKXticmVha315PWItMXwwO2lmKChiQShhW2YreXwwXXwwLGNbZD4+Ml18MCl8MCk9PS0xKXtu
PS0xO3g9MTM4MjticmVha31lbHNle2I9eX19aWYoKHh8MCk9PTEzODIpe2k9ZTtyZXR1cm4gbnww
fW49Y1tnPj4yXXwwO2k9ZTtyZXR1cm4gbnwwfWZ1bmN0aW9uIGRiKGEpe2E9YXwwO2VvKGF8MCk7
cmV0dXJufWZ1bmN0aW9uIGRjKGEpe2E9YXwwO2VvKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGRkKGEpe2E9YXwwO2ZnKDE1NzkyKXwwO2ZnKDE1ODgwKXwwO2ZoKDE1NDI0KXwwO2ZoKDE1NTEy
KXwwO3JldHVybn1mdW5jdGlvbiBkZShhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24gZGYoYSl7YT1h
fDA7cmV0dXJufWZ1bmN0aW9uIGRnKGEpe2E9YXwwO3ZhciBiPTA7Yj1hKzR8MDtJPWNbYj4+Ml18
MCxjW2I+PjJdPUkrMSxJO3JldHVybn1mdW5jdGlvbiBkaChhKXthPWF8MDtyZXR1cm4gY1thKzQ+
PjJdfDB9ZnVuY3Rpb24gZGkoYSl7YT1hfDA7cmV0dXJuIGNbYSs0Pj4yXXwwfWZ1bmN0aW9uIGRq
KGEpe2E9YXwwO2NbYT4+Ml09NDMwNDtyZXR1cm59ZnVuY3Rpb24gZGsoYSxiLGQpe2E9YXwwO2I9
YnwwO2Q9ZHwwO2NbYT4+Ml09ZDtjW2ErND4+Ml09YjtyZXR1cm59ZnVuY3Rpb24gZGwoYSxiLGQp
e2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTA7aWYoKGNbYis0Pj4yXXwwKSE9KGF8MCkpe2U9MDty
ZXR1cm4gZXwwfWU9KGNbYj4+Ml18MCk9PShkfDApO3JldHVybiBlfDB9ZnVuY3Rpb24gZG0oYixk
KXtiPWJ8MDtkPWR8MDt2YXIgZT0wO2IwW2NbKGNbYj4+Ml18MCkrMjQ+PjJdJjEyN10oYil8MDtl
PWlYKGQsMTUzOTIpfDA7ZD1lO2NbYiszNj4+Ml09ZDthW2IrNDR8MF09KGIwW2NbKGNbZT4+Ml18
MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtyZXR1cm59ZnVuY3Rpb24gZG4oYSl7YT1hfDA7dmFyIGI9
MCxkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTA7Yj1pO2k9aSsxNnwwO2Q9
YnwwO2U9Yis4fDA7Zj1hKzM2fDA7Zz1hKzQwfDA7aD1kfDA7aj1kKzh8MDtrPWQ7ZD1hKzMyfDA7
TDE3Njc6d2hpbGUoMSl7YT1jW2Y+PjJdfDA7bD1iJFtjWyhjW2E+PjJdfDApKzIwPj4yXSYzMV0o
YSxjW2c+PjJdfDAsaCxqLGUpfDA7YT0oY1tlPj4yXXwwKS1rfDA7aWYoKGFNKGh8MCwxLGF8MCxj
W2Q+PjJdfDApfDApIT0oYXwwKSl7bT0tMTtuPTE0MTQ7YnJlYWt9c3dpdGNoKGx8MCl7Y2FzZSAy
OnttPS0xO249MTQxNTticmVhayBMMTc2NzticmVha307Y2FzZSAxOnticmVha307ZGVmYXVsdDp7
bj0xNDExO2JyZWFrIEwxNzY3fX19aWYoKG58MCk9PTE0MTUpe2k9YjtyZXR1cm4gbXwwfWVsc2Ug
aWYoKG58MCk9PTE0MTEpe209KChhSyhjW2Q+PjJdfDApfDApIT0wKTw8MzE+PjMxO2k9YjtyZXR1
cm4gbXwwfWVsc2UgaWYoKG58MCk9PTE0MTQpe2k9YjtyZXR1cm4gbXwwfXJldHVybiAwfWZ1bmN0
aW9uIGRwKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wO2U9aTtpPWkrMzJ8MDtm
PWV8MDtnPWUrOHwwO2g9ZSsxNnwwO2o9ZSsyNHwwO2s9KGR8MCk9PS0xO0wxNzc2OmRve2lmKCFr
KXthW2ddPWQmMjU1O2lmKChhW2IrNDR8MF0mMSkhPTApe2lmKChhTShnfDAsMSwxLGNbYiszMj4+
Ml18MCl8MCk9PTEpe2JyZWFrfWVsc2V7bD0tMX1pPWU7cmV0dXJuIGx8MH1tPWZ8MDtjW2g+PjJd
PW07bj1nKzF8MDtvPWIrMzZ8MDtwPWIrNDB8MDtxPWYrOHwwO3I9ZjtzPWIrMzJ8MDt0PWc7d2hp
bGUoMSl7dT1jW28+PjJdfDA7dj1iNltjWyhjW3U+PjJdfDApKzEyPj4yXSYzMV0odSxjW3A+PjJd
fDAsdCxuLGosbSxxLGgpfDA7aWYoKGNbaj4+Ml18MCk9PSh0fDApKXtsPS0xO3c9MTQzMzticmVh
a31pZigodnwwKT09Myl7dz0xNDIyO2JyZWFrfXU9KHZ8MCk9PTE7aWYodj4+PjA+PTIpe2w9LTE7
dz0xNDMyO2JyZWFrfXY9KGNbaD4+Ml18MCktcnwwO2lmKChhTShtfDAsMSx2fDAsY1tzPj4yXXww
KXwwKSE9KHZ8MCkpe2w9LTE7dz0xNDMwO2JyZWFrfWlmKHUpe3Q9dT9jW2o+PjJdfDA6dH1lbHNl
e2JyZWFrIEwxNzc2fX1pZigod3wwKT09MTQzMCl7aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3ww
KT09MTQyMil7aWYoKGFNKHR8MCwxLDEsY1tzPj4yXXwwKXwwKT09MSl7YnJlYWt9ZWxzZXtsPS0x
fWk9ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTE0MzIpe2k9ZTtyZXR1cm4gbHwwfWVsc2Ug
aWYoKHd8MCk9PTE0MzMpe2k9ZTtyZXR1cm4gbHwwfX19d2hpbGUoMCk7bD1rPzA6ZDtpPWU7cmV0
dXJuIGx8MH1mdW5jdGlvbiBkcShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAs
aD0wLGo9MDtmPWk7aT1pKzh8MDtnPWZ8MDtlcChifDApO2NbYj4+Ml09NTA0ODtjW2IrMzI+PjJd
PWQ7Y1tiKzQwPj4yXT1lO2NbYis0OD4+Ml09LTE7YVtiKzUyfDBdPTA7aU4oZyxiKzR8MCk7ZT1p
WChnLDE1MzkyKXwwO2Q9ZTtoPWIrMzZ8MDtjW2g+PjJdPWQ7aj1iKzQ0fDA7Y1tqPj4yXT1iMFtj
WyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGQpfDA7ZD1jW2g+PjJdfDA7YVtiKzUzfDBdPShiMFtj
WyhjW2Q+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7aWYoKGNbaj4+Ml18MCk8PTgpe2lPKGcp
O2k9ZjtyZXR1cm59aFYoMTg0KTtpTyhnKTtpPWY7cmV0dXJufWZ1bmN0aW9uIGRyKGEpe2E9YXww
O2VvKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGRzKGEpe2E9YXwwO2VvKGF8MCk7a1MoYSk7cmV0dXJu
fWZ1bmN0aW9uIGR0KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2U9aVgoZCwxNTM5
Mil8MDtkPWU7Zj1iKzM2fDA7Y1tmPj4yXT1kO2c9Yis0NHwwO2NbZz4+Ml09YjBbY1soY1tlPj4y
XXwwKSsyND4+Ml0mMTI3XShkKXwwO2Q9Y1tmPj4yXXwwO2FbYis1M3wwXT0oYjBbY1soY1tkPj4y
XXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO2lmKChjW2c+PjJdfDApPD04KXtyZXR1cm59aFYoMTg0
KTtyZXR1cm59ZnVuY3Rpb24gZHUoYSl7YT1hfDA7cmV0dXJuIGR4KGEsMCl8MH1mdW5jdGlvbiBk
dihhKXthPWF8MDtyZXR1cm4gZHgoYSwxKXwwfWZ1bmN0aW9uIGR3KGIsZCl7Yj1ifDA7ZD1kfDA7
dmFyIGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtl
PWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUrMTZ8MDtqPWUrMjR8MDtrPWIrNTJ8MDtsPShh
W2tdJjEpIT0wO2lmKChkfDApPT0tMSl7aWYobCl7bT0tMTtpPWU7cmV0dXJuIG18MH1uPWNbYis0
OD4+Ml18MDthW2tdPShufDApIT0tMXwwO209bjtpPWU7cmV0dXJuIG18MH1uPWIrNDh8MDtMMTgx
OTpkb3tpZihsKXthW2hdPWNbbj4+Ml0mMjU1O289Y1tiKzM2Pj4yXXwwO3A9ZnwwO3N3aXRjaChi
NltjWyhjW28+PjJdfDApKzEyPj4yXSYzMV0obyxjW2IrNDA+PjJdfDAsaCxoKzF8MCxqLHAsZis4
fDAsZyl8MCl7Y2FzZSAzOnthW3BdPWNbbj4+Ml0mMjU1O2NbZz4+Ml09ZisxO2JyZWFrfTtjYXNl
IDI6Y2FzZSAxOnttPS0xO2k9ZTtyZXR1cm4gbXwwfTtkZWZhdWx0Ont9fW89YiszMnwwO3doaWxl
KDEpe3E9Y1tnPj4yXXwwO2lmKHE+Pj4wPD1wPj4+MCl7YnJlYWsgTDE4MTl9cj1xLTF8MDtjW2c+
PjJdPXI7aWYoKGJBKGFbcl18MCxjW28+PjJdfDApfDApPT0tMSl7bT0tMTticmVha319aT1lO3Jl
dHVybiBtfDB9fXdoaWxlKDApO2Nbbj4+Ml09ZDthW2tdPTE7bT1kO2k9ZTtyZXR1cm4gbXwwfWZ1
bmN0aW9uIGR4KGIsZSl7Yj1ifDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
O2Y9aTtpPWkrMzJ8MDtnPWZ8MDtoPWYrOHwwO2o9ZisxNnwwO2s9ZisyNHwwO2w9Yis1MnwwO2lm
KChhW2xdJjEpIT0wKXttPWIrNDh8MDtuPWNbbT4+Ml18MDtpZighZSl7bz1uO2k9ZjtyZXR1cm4g
b3wwfWNbbT4+Ml09LTE7YVtsXT0wO289bjtpPWY7cmV0dXJuIG98MH1uPWNbYis0ND4+Ml18MDts
PShufDApPjE/bjoxO0wxODM5OmRve2lmKChsfDApPjApe249YiszMnwwO209MDt3aGlsZSgxKXtw
PWFfKGNbbj4+Ml18MCl8MDtpZigocHwwKT09LTEpe289LTE7YnJlYWt9YVtnK218MF09cCYyNTU7
bT1tKzF8MDtpZigobXwwKT49KGx8MCkpe2JyZWFrIEwxODM5fX1pPWY7cmV0dXJuIG98MH19d2hp
bGUoMCk7TDE4NDY6ZG97aWYoKGFbYis1M3wwXSYxKT09MCl7bT1iKzQwfDA7bj1iKzM2fDA7cD1n
fDA7cT1oKzF8MDtyPWIrMzJ8MDtzPWw7TDE4NDg6d2hpbGUoMSl7dD1jW20+PjJdfDA7dT10O3Y9
Y1t1Pj4yXXwwO3c9Y1t1KzQ+PjJdfDA7dT1jW24+PjJdfDA7eD1nK3N8MDtzd2l0Y2goYjZbY1so
Y1t1Pj4yXXwwKSsxNj4+Ml0mMzFdKHUsdCxwLHgsaixoLHEsayl8MCl7Y2FzZSAxOnticmVha307
Y2FzZSAyOntvPS0xO3k9MTQ5MDticmVhayBMMTg0ODticmVha307Y2FzZSAzOnt5PTE0Nzk7YnJl
YWsgTDE4NDg7YnJlYWt9O2RlZmF1bHQ6e3o9czticmVhayBMMTg0Nn19dD1jW20+PjJdfDA7Y1t0
Pj4yXT12O2NbdCs0Pj4yXT13O2lmKChzfDApPT04KXtvPS0xO3k9MTQ5MTticmVha313PWFfKGNb
cj4+Ml18MCl8MDtpZigod3wwKT09LTEpe289LTE7eT0xNDk1O2JyZWFrfWFbeF09dyYyNTU7cz1z
KzF8MH1pZigoeXwwKT09MTQ5MCl7aT1mO3JldHVybiBvfDB9ZWxzZSBpZigoeXwwKT09MTQ5NSl7
aT1mO3JldHVybiBvfDB9ZWxzZSBpZigoeXwwKT09MTQ3OSl7YVtoXT1hW3BdfDA7ej1zO2JyZWFr
fWVsc2UgaWYoKHl8MCk9PTE0OTEpe2k9ZjtyZXR1cm4gb3wwfX1lbHNle2FbaF09YVtnfDBdfDA7
ej1sfX13aGlsZSgwKTtkb3tpZihlKXtsPWFbaF18MDtjW2IrNDg+PjJdPWwmMjU1O0E9bH1lbHNl
e2w9YiszMnwwO2s9ejt3aGlsZSgxKXtpZigoa3wwKTw9MCl7eT0xNDg2O2JyZWFrfWo9ay0xfDA7
aWYoKGJBKGRbZytqfDBdfDB8MCxjW2w+PjJdfDApfDApPT0tMSl7bz0tMTt5PTE0OTQ7YnJlYWt9
ZWxzZXtrPWp9fWlmKCh5fDApPT0xNDg2KXtBPWFbaF18MDticmVha31lbHNlIGlmKCh5fDApPT0x
NDk0KXtpPWY7cmV0dXJuIG98MH19fXdoaWxlKDApO289QSYyNTU7aT1mO3JldHVybiBvfDB9ZnVu
Y3Rpb24gZHkoKXtjWigwKTthJCgxNDIsMTYxNDR8MCx1fDApfDA7cmV0dXJufWZ1bmN0aW9uIGR6
KGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9YSs0fDA7aWYoKChJPWNbYj4+Ml18MCxjW2I+PjJdPUkr
IC0xLEkpfDApIT0wKXtkPTA7cmV0dXJuIGR8MH1iWVtjWyhjW2E+PjJdfDApKzg+PjJdJjUxMV0o
YSk7ZD0xO3JldHVybiBkfDB9ZnVuY3Rpb24gZEEoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9
MCxmPTA7Y1thPj4yXT0yNTM2O2Q9YSs0fDA7aWYoKGR8MCk9PTApe3JldHVybn1hPWswKGJ8MCl8
MDtlPWErMXwwO2Y9a1AoYSsxM3wwKXwwO2NbZis0Pj4yXT1hO2NbZj4+Ml09YTthPWYrMTJ8MDtj
W2Q+PjJdPWE7Y1tmKzg+PjJdPTA7a1koYXwwLGJ8MCxlKXwwO3JldHVybn1mdW5jdGlvbiBkQihh
KXthPWF8MDt2YXIgYj0wLGQ9MCxlPTA7Y1thPj4yXT0yNTM2O2I9YSs0fDA7ZD0oY1tiPj4yXXww
KS00fDA7aWYoKChJPWNbZD4+Ml18MCxjW2Q+PjJdPUkrIC0xLEkpLTF8MCk+PTApe2U9YTtrUyhl
KTtyZXR1cm59ZD0oY1tiPj4yXXwwKS0xMnwwO2lmKChkfDApPT0wKXtlPWE7a1MoZSk7cmV0dXJu
fWtUKGQpO2U9YTtrUyhlKTtyZXR1cm59ZnVuY3Rpb24gZEMoYSl7YT1hfDA7dmFyIGI9MDtjW2E+
PjJdPTI1MzY7Yj1hKzR8MDthPShjW2I+PjJdfDApLTR8MDtpZigoKEk9Y1thPj4yXXwwLGNbYT4+
Ml09SSsgLTEsSSktMXwwKT49MCl7cmV0dXJufWE9KGNbYj4+Ml18MCktMTJ8MDtpZigoYXwwKT09
MCl7cmV0dXJufWtUKGEpO3JldHVybn1mdW5jdGlvbiBkRChiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MDtjW2I+PjJdPTI0NzI7ZT1iKzR8MDtpZigoZXwwKT09MCl7cmV0dXJufWlmKChh
W2RdJjEpPT0wKXtmPWQrMXwwfWVsc2V7Zj1jW2QrOD4+Ml18MH1kPWswKGZ8MCl8MDtiPWQrMXww
O2c9a1AoZCsxM3wwKXwwO2NbZys0Pj4yXT1kO2NbZz4+Ml09ZDtkPWcrMTJ8MDtjW2U+PjJdPWQ7
Y1tnKzg+PjJdPTA7a1koZHwwLGZ8MCxiKXwwO3JldHVybn1mdW5jdGlvbiBkRShhLGIpe2E9YXww
O2I9YnwwO3ZhciBkPTAsZT0wLGY9MDtjW2E+PjJdPTI0NzI7ZD1hKzR8MDtpZigoZHwwKT09MCl7
cmV0dXJufWE9azAoYnwwKXwwO2U9YSsxfDA7Zj1rUChhKzEzfDApfDA7Y1tmKzQ+PjJdPWE7Y1tm
Pj4yXT1hO2E9ZisxMnwwO2NbZD4+Ml09YTtjW2YrOD4+Ml09MDtrWShhfDAsYnwwLGUpfDA7cmV0
dXJufWZ1bmN0aW9uIGRGKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtjW2E+PjJdPTI0NzI7Yj1h
KzR8MDtkPShjW2I+PjJdfDApLTR8MDtpZigoKEk9Y1tkPj4yXXwwLGNbZD4+Ml09SSsgLTEsSSkt
MXwwKT49MCl7ZT1hO2tTKGUpO3JldHVybn1kPShjW2I+PjJdfDApLTEyfDA7aWYoKGR8MCk9PTAp
e2U9YTtrUyhlKTtyZXR1cm59a1QoZCk7ZT1hO2tTKGUpO3JldHVybn1mdW5jdGlvbiBkRyhhKXth
PWF8MDt2YXIgYj0wO2NbYT4+Ml09MjQ3MjtiPWErNHwwO2E9KGNbYj4+Ml18MCktNHwwO2lmKCgo
ST1jW2E+PjJdfDAsY1thPj4yXT1JKyAtMSxJKS0xfDApPj0wKXtyZXR1cm59YT0oY1tiPj4yXXww
KS0xMnwwO2lmKChhfDApPT0wKXtyZXR1cm59a1QoYSk7cmV0dXJufWZ1bmN0aW9uIGRIKGEpe2E9
YXwwO3ZhciBiPTAsZD0wLGU9MDtjW2E+PjJdPTI1MzY7Yj1hKzR8MDtkPShjW2I+PjJdfDApLTR8
MDtpZigoKEk9Y1tkPj4yXXwwLGNbZD4+Ml09SSsgLTEsSSktMXwwKT49MCl7ZT1hO2tTKGUpO3Jl
dHVybn1kPShjW2I+PjJdfDApLTEyfDA7aWYoKGR8MCk9PTApe2U9YTtrUyhlKTtyZXR1cm59a1Qo
ZCk7ZT1hO2tTKGUpO3JldHVybn1mdW5jdGlvbiBkSShhKXthPWF8MDtrUyhhKTtyZXR1cm59ZnVu
Y3Rpb24gZEooYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtlPWk7aT1p
Kzh8MDtmPWV8MDtiM1tjWyhjW2E+PjJdfDApKzEyPj4yXSY3XShmLGEsYik7aWYoKGNbZis0Pj4y
XXwwKSE9KGNbZCs0Pj4yXXwwKSl7Zz0wO2k9ZTtyZXR1cm4gZ3wwfWc9KGNbZj4+Ml18MCk9PShj
W2Q+PjJdfDApO2k9ZTtyZXR1cm4gZ3wwfWZ1bmN0aW9uIGRLKGEsYixjKXthPWF8MDtiPWJ8MDtj
PWN8MDtiPWJ4KGN8MCl8MDtkWihhLGIsazAoYnwwKXwwKTtyZXR1cm59ZnVuY3Rpb24gZEwoYixl
LGYpe2I9YnwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wO2c9aTtoPWY7aj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO2s9ZXwwO2w9Y1tr
Pj4yXXwwO2lmKChsfDApPT0wKXttPWI7Y1ttPj4yXT1jW2g+PjJdO2NbbSs0Pj4yXT1jW2grND4+
Ml07Y1ttKzg+PjJdPWNbaCs4Pj4yXTtrJChofDAsMCwxMik7aT1nO3JldHVybn1uPWRbaF18MDtp
ZigobiYxfDApPT0wKXtvPW4+Pj4xfWVsc2V7bz1jW2YrND4+Ml18MH1pZigob3wwKT09MCl7cD1s
fWVsc2V7ZFQoZiwxMjk2KXwwO3A9Y1trPj4yXXwwfWs9Y1tlKzQ+PjJdfDA7YjNbY1soY1trPj4y
XXwwKSsyND4+Ml0mN10oaixrLHApO3A9YVtqXXwwO2lmKChwJjEpPT0wKXtxPWorMXwwfWVsc2V7
cT1jW2orOD4+Ml18MH1rPXAmMjU1O2lmKChrJjF8MCk9PTApe3I9az4+PjF9ZWxzZXtyPWNbais0
Pj4yXXwwfWRWKGYscSxyKXwwO2RQKGopO209YjtjW20+PjJdPWNbaD4+Ml07Y1ttKzQ+PjJdPWNb
aCs0Pj4yXTtjW20rOD4+Ml09Y1toKzg+PjJdO2skKGh8MCwwLDEyKTtpPWc7cmV0dXJufWZ1bmN0
aW9uIGRNKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7ZT1pO2k9aSsz
MnwwO2Y9YjtiPWk7aT1pKzh8MDtjW2I+PjJdPWNbZj4+Ml07Y1tiKzQ+PjJdPWNbZis0Pj4yXTtm
PWV8MDtnPWUrMTZ8MDtkWihnLGQsazAoZHwwKXwwKTtkTChmLGIsZyk7ZEQoYXwwLGYpO2RQKGYp
O2RQKGcpO2NbYT4+Ml09NDU0NDtnPWI7Yj1hKzh8MDthPWNbZys0Pj4yXXwwO2NbYj4+Ml09Y1tn
Pj4yXTtjW2IrND4+Ml09YTtpPWU7cmV0dXJufWZ1bmN0aW9uIGROKGEpe2E9YXwwO2RHKGF8MCk7
a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGRPKGEpe2E9YXwwO2RHKGF8MCk7cmV0dXJufWZ1bmN0aW9u
IGRQKGIpe2I9YnwwO2lmKChhW2JdJjEpPT0wKXtyZXR1cm59a1MoY1tiKzg+PjJdfDApO3JldHVy
bn1mdW5jdGlvbiBkUShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9
MCxrPTAsbD0wO2U9azAoZHwwKXwwO2Y9YjtnPWI7aD1hW2ddfDA7aWYoKGgmMSk9PTApe2k9MTA7
aj1ofWVsc2V7aD1jW2I+PjJdfDA7aT0oaCYtMiktMXwwO2o9aCYyNTV9aWYoaT4+PjA8ZT4+PjAp
e2g9aiYyNTU7aWYoKGgmMXwwKT09MCl7az1oPj4+MX1lbHNle2s9Y1tiKzQ+PjJdfDB9ZDAoYixp
LGUtaXwwLGssMCxrLGUsZCk7cmV0dXJuIGJ8MH1pZigoaiYxKT09MCl7bD1mKzF8MH1lbHNle2w9
Y1tiKzg+PjJdfDB9a18obHwwLGR8MCxlfDApO2FbbCtlfDBdPTA7aWYoKGFbZ10mMSk9PTApe2Fb
Z109ZTw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1lO3JldHVybiBifDB9cmV0dXJu
IDB9ZnVuY3Rpb24gZFIoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxp
PTA7Zj1iO2c9YVtmXXwwO2g9ZyYyNTU7aWYoKGgmMXwwKT09MCl7aT1oPj4+MX1lbHNle2k9Y1ti
KzQ+PjJdfDB9aWYoaT4+PjA8ZD4+PjApe2g9ZC1pfDA7ZFMoYixoLGUpfDA7cmV0dXJufWlmKChn
JjEpPT0wKXthW2IrMStkfDBdPTA7YVtmXT1kPDwxJjI1NTtyZXR1cm59ZWxzZXthWyhjW2IrOD4+
Ml18MCkrZHwwXT0wO2NbYis0Pj4yXT1kO3JldHVybn19ZnVuY3Rpb24gZFMoYixkLGUpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7aWYoKGR8MCk9PTAp
e3JldHVybiBifDB9Zj1iO2c9YVtmXXwwO2lmKChnJjEpPT0wKXtoPTEwO2k9Z31lbHNle2c9Y1ti
Pj4yXXwwO2g9KGcmLTIpLTF8MDtpPWcmMjU1fWc9aSYyNTU7aWYoKGcmMXwwKT09MCl7aj1nPj4+
MX1lbHNle2o9Y1tiKzQ+PjJdfDB9aWYoKGgtanwwKT4+PjA8ZD4+PjApe2QxKGIsaCxkLWgranww
LGosaiwwLDApO2s9YVtmXXwwfWVsc2V7az1pfWlmKChrJjEpPT0wKXtsPWIrMXwwfWVsc2V7bD1j
W2IrOD4+Ml18MH1rJChsK2p8MCxlfDAsZHwwKTtlPWorZHwwO2lmKChhW2ZdJjEpPT0wKXthW2Zd
PWU8PDEmMjU1fWVsc2V7Y1tiKzQ+PjJdPWV9YVtsK2V8MF09MDtyZXR1cm4gYnwwfWZ1bmN0aW9u
IGRUKGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJuIGRWKGEsYixrMChifDApfDApfDB9ZnVuY3Rpb24g
ZFUoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxt
PTA7ZT1iO2Y9YVtlXXwwO2lmKChmJjEpPT0wKXtnPShmJjI1NSk+Pj4xO2g9MTB9ZWxzZXtnPWNb
Yis0Pj4yXXwwO2g9KGNbYj4+Ml0mLTIpLTF8MH1pZigoZ3wwKT09KGh8MCkpe2QxKGIsaCwxLGgs
aCwwLDApO2k9YVtlXXwwfWVsc2V7aT1mfWlmKChpJjEpPT0wKXthW2VdPShnPDwxKSsyJjI1NTtq
PWIrMXwwO2s9ZysxfDA7bD1qK2d8MDthW2xdPWQ7bT1qK2t8MDthW21dPTA7cmV0dXJufWVsc2V7
ZT1jW2IrOD4+Ml18MDtpPWcrMXwwO2NbYis0Pj4yXT1pO2o9ZTtrPWk7bD1qK2d8MDthW2xdPWQ7
bT1qK2t8MDthW21dPTA7cmV0dXJufX1mdW5jdGlvbiBkVihiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1l
fDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wO2Y9YjtnPWFbZl18MDtpZigoZyYxKT09MCl7
aD0xMDtpPWd9ZWxzZXtnPWNbYj4+Ml18MDtoPShnJi0yKS0xfDA7aT1nJjI1NX1nPWkmMjU1O2lm
KChnJjF8MCk9PTApe2o9Zz4+PjF9ZWxzZXtqPWNbYis0Pj4yXXwwfWlmKChoLWp8MCk+Pj4wPGU+
Pj4wKXtkMChiLGgsZS1oK2p8MCxqLGosMCxlLGQpO3JldHVybiBifDB9aWYoKGV8MCk9PTApe3Jl
dHVybiBifDB9aWYoKGkmMSk9PTApe2s9YisxfDB9ZWxzZXtrPWNbYis4Pj4yXXwwfWk9aytqfDA7
a1koaXwwLGR8MCxlKXwwO2Q9aitlfDA7aWYoKGFbZl0mMSk9PTApe2FbZl09ZDw8MSYyNTV9ZWxz
ZXtjW2IrND4+Ml09ZH1hW2srZHwwXT0wO3JldHVybiBifDB9ZnVuY3Rpb24gZFcoYSxiLGQpe2E9
YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wO2U7aWYoKGNbYT4+Ml18MCk9
PTEpe2Rve2FVKDk3MzYsOTcyOCl8MDt9d2hpbGUoKGNbYT4+Ml18MCk9PTEpfWlmKChjW2E+PjJd
fDApIT0wKXtmO3JldHVybn1jW2E+PjJdPTE7ZztiWVtkJjUxMV0oYik7aDtjW2E+PjJdPS0xO2k7
YnMoOTczNil8MDtyZXR1cm59ZnVuY3Rpb24gZFgoYSl7YT1hfDA7YT1iTyg4KXwwO2RBKGEsMzYw
KTtjW2E+PjJdPTI1MDQ7YmwoYXwwLDgyMDgsMzIpfWZ1bmN0aW9uIGRZKGIsZCl7Yj1ifDA7ZD1k
fDA7dmFyIGU9MCxmPTAsZz0wLGg9MDtlPWQ7aWYoKGFbZV0mMSk9PTApe2Y9YjtjW2Y+PjJdPWNb
ZT4+Ml07Y1tmKzQ+PjJdPWNbZSs0Pj4yXTtjW2YrOD4+Ml09Y1tlKzg+PjJdO3JldHVybn1lPWNb
ZCs4Pj4yXXwwO2Y9Y1tkKzQ+PjJdfDA7aWYoKGZ8MCk9PS0xKXtkWCgwKX1pZihmPj4+MDwxMSl7
YVtiXT1mPDwxJjI1NTtnPWIrMXwwfWVsc2V7ZD1mKzE2Ji0xNjtoPWtPKGQpfDA7Y1tiKzg+PjJd
PWg7Y1tiPj4yXT1kfDE7Y1tiKzQ+PjJdPWY7Zz1ofWtZKGd8MCxlfDAsZil8MDthW2crZnwwXT0w
O3JldHVybn1mdW5jdGlvbiBkWihiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAs
aD0wLGk9MDtpZigoZXwwKT09LTEpe2RYKDApfWlmKGU+Pj4wPDExKXthW2JdPWU8PDEmMjU1O2Y9
YisxfDA7a1koZnwwLGR8MCxlKXwwO2c9ZitlfDA7YVtnXT0wO3JldHVybn1lbHNle2g9ZSsxNiYt
MTY7aT1rTyhoKXwwO2NbYis4Pj4yXT1pO2NbYj4+Ml09aHwxO2NbYis0Pj4yXT1lO2Y9aTtrWShm
fDAsZHwwLGUpfDA7Zz1mK2V8MDthW2ddPTA7cmV0dXJufX1mdW5jdGlvbiBkXyhiLGQsZSl7Yj1i
fDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2lmKChkfDApPT0tMSl7ZFgoMCl9aWYoZD4+
PjA8MTEpe2FbYl09ZDw8MSYyNTU7Zj1iKzF8MH1lbHNle2c9ZCsxNiYtMTY7aD1rTyhnKXwwO2Nb
Yis4Pj4yXT1oO2NbYj4+Ml09Z3wxO2NbYis0Pj4yXT1kO2Y9aH1rJChmfDAsZXwwLGR8MCk7YVtm
K2R8MF09MDtyZXR1cm59ZnVuY3Rpb24gZCQoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxn
PTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtpZigoZHwwKT09
LTEpe2RYKDApfWU9YjtmPWI7Zz1hW2ZdfDA7aWYoKGcmMSk9PTApe2g9MTA7aT1nfWVsc2V7Zz1j
W2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9ZyYyNTV9Zz1pJjI1NTtpZigoZyYxfDApPT0wKXtqPWc+
Pj4xfWVsc2V7aj1jW2IrND4+Ml18MH1nPWo+Pj4wPmQ+Pj4wP2o6ZDtpZihnPj4+MDwxMSl7az0x
MX1lbHNle2s9ZysxNiYtMTZ9Zz1rLTF8MDtpZigoZ3wwKT09KGh8MCkpe3JldHVybn1pZigoZ3ww
KT09MTApe2w9ZSsxfDA7bT1jW2IrOD4+Ml18MDtuPTE7bz0wfWVsc2V7aWYoZz4+PjA+aD4+PjAp
e3A9a08oayl8MH1lbHNle3A9a08oayl8MH1oPWkmMTtpZihoPDwyND4+MjQ9PTApe3E9ZSsxfDB9
ZWxzZXtxPWNbYis4Pj4yXXwwfWw9cDttPXE7bj1oPDwyND4+MjQhPTA7bz0xfWg9aSYyNTU7aWYo
KGgmMXwwKT09MCl7cj1oPj4+MX1lbHNle3I9Y1tiKzQ+PjJdfDB9aD1yKzF8MDtrWShsfDAsbXww
LGgpfDA7aWYobil7a1MobSl9aWYobyl7Y1tiPj4yXT1rfDE7Y1tiKzQ+PjJdPWo7Y1tiKzg+PjJd
PWw7cmV0dXJufWVsc2V7YVtmXT1qPDwxJjI1NTtyZXR1cm59fWZ1bmN0aW9uIGQwKGIsZCxlLGYs
ZyxoLGksail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7
dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7aWYoKC0zLWR8
MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09MCl7az1iKzF8MH1lbHNle2s9Y1tiKzg+
PjJdfDB9ZG97aWYoZD4+PjA8MjE0NzQ4MzYzMSl7bD1lK2R8MDttPWQ8PDE7bj1sPj4+MDxtPj4+
MD9tOmw7aWYobj4+PjA8MTEpe289MTE7YnJlYWt9bz1uKzE2Ji0xNn1lbHNle289LTJ9fXdoaWxl
KDApO2U9a08obyl8MDtpZigoZ3wwKSE9MCl7a1koZXwwLGt8MCxnKXwwfWlmKChpfDApIT0wKXtu
PWUrZ3wwO2tZKG58MCxqfDAsaSl8MH1qPWYtaHwwO2lmKChqfDApIT0oZ3wwKSl7Zj1qLWd8MDtu
PWUrKGkrZyl8MDtsPWsrKGgrZyl8MDtrWShufDAsbHwwLGYpfDB9aWYoKGR8MCk9PTEwKXtwPWIr
OHwwO2NbcD4+Ml09ZTtxPW98MTtyPWJ8MDtjW3I+PjJdPXE7cz1qK2l8MDt0PWIrNHwwO2NbdD4+
Ml09czt1PWUrc3wwO2FbdV09MDtyZXR1cm59a1Moayk7cD1iKzh8MDtjW3A+PjJdPWU7cT1vfDE7
cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1iKzR8MDtjW3Q+PjJdPXM7dT1lK3N8MDthW3VdPTA7
cmV0dXJufWZ1bmN0aW9uIGQxKGIsZCxlLGYsZyxoLGkpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2k9aXwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wO2lm
KCgtMy1kfDApPj4+MDxlPj4+MCl7ZFgoMCl9aWYoKGFbYl0mMSk9PTApe2o9YisxfDB9ZWxzZXtq
PWNbYis4Pj4yXXwwfWRve2lmKGQ+Pj4wPDIxNDc0ODM2MzEpe2s9ZStkfDA7bD1kPDwxO209az4+
PjA8bD4+PjA/bDprO2lmKG0+Pj4wPDExKXtuPTExO2JyZWFrfW49bSsxNiYtMTZ9ZWxzZXtuPS0y
fX13aGlsZSgwKTtlPWtPKG4pfDA7aWYoKGd8MCkhPTApe2tZKGV8MCxqfDAsZyl8MH1tPWYtaHww
O2lmKChtfDApIT0oZ3wwKSl7Zj1tLWd8MDttPWUrKGkrZyl8MDtpPWorKGgrZyl8MDtrWShtfDAs
aXwwLGYpfDB9aWYoKGR8MCk9PTEwKXtvPWIrOHwwO2Nbbz4+Ml09ZTtwPW58MTtxPWJ8MDtjW3E+
PjJdPXA7cmV0dXJufWtTKGopO289Yis4fDA7Y1tvPj4yXT1lO3A9bnwxO3E9YnwwO2NbcT4+Ml09
cDtyZXR1cm59ZnVuY3Rpb24gZDIoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm59ZnVuY3Rpb24gZDMo
YSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO3JldHVybiBhfDB9ZnVuY3Rpb24gZDQoYSl7YT1hfDA7
cmV0dXJuIDB9ZnVuY3Rpb24gZDUoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZDYoYSl7YT1h
fDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBkNyhhLGIpe2E9YXwwO2I9YnwwO3JldHVybi0xfDB9ZnVu
Y3Rpb24gZDgoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGQ5KGEsYil7YT1h
fDA7Yj1ifDA7cmV0dXJufWZ1bmN0aW9uIGVhKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDtyZXR1
cm4gYXwwfWZ1bmN0aW9uIGViKGEsYixkLGUsZixnKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtnPWE7Y1tnPj4yXT0wO2NbZys0Pj4yXT0wO2c9YSs4fDA7Y1tnPj4yXT0tMTtj
W2crND4+Ml09LTE7cmV0dXJufWZ1bmN0aW9uIGVjKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHww
O2U9ZXwwO2U9aTtiPWQ7ZD1pO2k9aSsxNnwwO2NbZD4+Ml09Y1tiPj4yXTtjW2QrND4+Ml09Y1ti
KzQ+PjJdO2NbZCs4Pj4yXT1jW2IrOD4+Ml07Y1tkKzEyPj4yXT1jW2IrMTI+PjJdO2I9YTtjW2I+
PjJdPTA7Y1tiKzQ+PjJdPTA7Yj1hKzh8MDtjW2I+PjJdPS0xO2NbYis0Pj4yXT0tMTtpPWU7cmV0
dXJufWZ1bmN0aW9uIGVkKGEsYixkLGUsZixnKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtnPWE7Y1tnPj4yXT0wO2NbZys0Pj4yXT0wO2c9YSs4fDA7Y1tnPj4yXT0tMTtjW2cr
ND4+Ml09LTE7cmV0dXJufWZ1bmN0aW9uIGVlKGIpe2I9YnwwO2lmKChhW2JdJjEpPT0wKXtyZXR1
cm59a1MoY1tiKzg+PjJdfDApO3JldHVybn1mdW5jdGlvbiBlZihhLGIpe2E9YXwwO2I9YnwwO3Jl
dHVybiBlZyhhLGIsa20oYil8MCl8MH1mdW5jdGlvbiBlZyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1l
fDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wO2Y9YjtnPWFbZl18MDtpZigoZyYxKT09MCl7
aD0xO2k9Z31lbHNle2c9Y1tiPj4yXXwwO2g9KGcmLTIpLTF8MDtpPWcmMjU1fWlmKGg+Pj4wPGU+
Pj4wKXtnPWkmMjU1O2lmKChnJjF8MCk9PTApe2o9Zz4+PjF9ZWxzZXtqPWNbYis0Pj4yXXwwfWVB
KGIsaCxlLWh8MCxqLDAsaixlLGQpO3JldHVybiBifDB9aWYoKGkmMSk9PTApe2s9Yis0fDB9ZWxz
ZXtrPWNbYis4Pj4yXXwwfWtvKGssZCxlKXwwO2NbaysoZTw8Mik+PjJdPTA7aWYoKGFbZl0mMSk9
PTApe2FbZl09ZTw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1lO3JldHVybiBifDB9
cmV0dXJuIDB9ZnVuY3Rpb24gZWgoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0w
LGk9MCxqPTAsaz0wLGw9MCxtPTA7ZT1iO2Y9YVtlXXwwO2lmKChmJjEpPT0wKXtnPShmJjI1NSk+
Pj4xO2g9MX1lbHNle2c9Y1tiKzQ+PjJdfDA7aD0oY1tiPj4yXSYtMiktMXwwfWlmKChnfDApPT0o
aHwwKSl7ZUIoYixoLDEsaCxoLDAsMCk7aT1hW2VdfDB9ZWxzZXtpPWZ9aWYoKGkmMSk9PTApe2Fb
ZV09KGc8PDEpKzImMjU1O2o9Yis0fDA7az1nKzF8MDtsPWorKGc8PDIpfDA7Y1tsPj4yXT1kO209
aisoazw8Mil8MDtjW20+PjJdPTA7cmV0dXJufWVsc2V7ZT1jW2IrOD4+Ml18MDtpPWcrMXwwO2Nb
Yis0Pj4yXT1pO2o9ZTtrPWk7bD1qKyhnPDwyKXwwO2NbbD4+Ml09ZDttPWorKGs8PDIpfDA7Y1tt
Pj4yXT0wO3JldHVybn19ZnVuY3Rpb24gZWkoYSl7YT1hfDA7ZUQoYXwwKTtyZXR1cm59ZnVuY3Rp
b24gZWooYSxiKXthPWF8MDtiPWJ8MDtpTihhLGIrMjh8MCk7cmV0dXJufWZ1bmN0aW9uIGVrKGEs
Yil7YT1hfDA7Yj1ifDA7Y1thKzI0Pj4yXT1iO2NbYSsxNj4+Ml09KGJ8MCk9PTA7Y1thKzIwPj4y
XT0wO2NbYSs0Pj4yXT00MDk4O2NbYSsxMj4+Ml09MDtjW2ErOD4+Ml09NjtiPWErMjh8MDtrJChh
KzMyfDAsMCw0MCk7aWYoKGJ8MCk9PTApe3JldHVybn1pVyhiKTtyZXR1cm59ZnVuY3Rpb24gZWwo
YSl7YT1hfDA7ZUQoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZW0oYSl7YT1hfDA7Y1thPj4yXT00MjMy
O2lPKGErNHwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZW4oYSl7YT1hfDA7Y1thPj4yXT00MjMy
O2lPKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZW8oYSl7YT1hfDA7Y1thPj4yXT00MjMyO2lPKGEr
NHwwKTtyZXR1cm59ZnVuY3Rpb24gZXAoYSl7YT1hfDA7Y1thPj4yXT00MjMyO2lXKGErNHwwKTtr
JChhKzh8MCwwLDI0KTtyZXR1cm59ZnVuY3Rpb24gZXEoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXww
O3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wO2Y9YjtpZigoZXwwKTw9MCl7Zz0w
O3JldHVybiBnfDB9aD1iKzEyfDA7aT1iKzE2fDA7aj1kO2Q9MDt3aGlsZSgxKXtrPWNbaD4+Ml18
MDtpZihrPj4+MDwoY1tpPj4yXXwwKT4+PjApe2NbaD4+Ml09aysxO2w9YVtrXXwwfWVsc2V7az1i
MFtjWyhjW2Y+PjJdfDApKzQwPj4yXSYxMjddKGIpfDA7aWYoKGt8MCk9PS0xKXtnPWQ7bT0xODU0
O2JyZWFrfWw9ayYyNTV9YVtqXT1sO2s9ZCsxfDA7aWYoKGt8MCk8KGV8MCkpe2o9aisxfDA7ZD1r
fWVsc2V7Zz1rO209MTg1NjticmVha319aWYoKG18MCk9PTE4NTQpe3JldHVybiBnfDB9ZWxzZSBp
ZigobXwwKT09MTg1Nil7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBlcihhKXthPWF8MDt2
YXIgYj0wLGU9MDtpZigoYjBbY1soY1thPj4yXXwwKSszNj4+Ml0mMTI3XShhKXwwKT09LTEpe2I9
LTE7cmV0dXJuIGJ8MH1lPWErMTJ8MDthPWNbZT4+Ml18MDtjW2U+PjJdPWErMTtiPWRbYV18MDty
ZXR1cm4gYnwwfWZ1bmN0aW9uIGVzKGIsZSxmKXtiPWJ8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9
MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtnPWI7aWYoKGZ8MCk8PTApe2g9MDtyZXR1cm4gaHww
fWk9YisyNHwwO2o9YisyOHwwO2s9MDtsPWU7d2hpbGUoMSl7ZT1jW2k+PjJdfDA7aWYoZT4+PjA8
KGNbaj4+Ml18MCk+Pj4wKXttPWFbbF18MDtjW2k+PjJdPWUrMTthW2VdPW19ZWxzZXtpZigoYl9b
Y1soY1tnPj4yXXwwKSs1Mj4+Ml0mMzFdKGIsZFtsXXwwKXwwKT09LTEpe2g9aztuPTE4Njk7YnJl
YWt9fW09aysxfDA7aWYoKG18MCk8KGZ8MCkpe2s9bTtsPWwrMXwwfWVsc2V7aD1tO249MTg3MTti
cmVha319aWYoKG58MCk9PTE4Njkpe3JldHVybiBofDB9ZWxzZSBpZigobnwwKT09MTg3MSl7cmV0
dXJuIGh8MH1yZXR1cm4gMH1mdW5jdGlvbiBldChhKXthPWF8MDtjW2E+PjJdPTQxNjA7aU8oYSs0
fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBldShhKXthPWF8MDtjW2E+PjJdPTQxNjA7aU8oYSs0
fDApO3JldHVybn1mdW5jdGlvbiBldihhKXthPWF8MDtjW2E+PjJdPTQxNjA7aU8oYSs0fDApO3Jl
dHVybn1mdW5jdGlvbiBldyhhKXthPWF8MDtjW2E+PjJdPTQxNjA7aVcoYSs0fDApO2skKGErOHww
LDAsMjQpO3JldHVybn1mdW5jdGlvbiBleChiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9
MCxnPTAsaD0wLGk9MCxqPTA7aWYoZT4+PjA+MTA3Mzc0MTgyMil7ZFgoMCl9aWYoZT4+PjA8Mil7
YVtiXT1lPDwxJjI1NTtmPWIrNHwwO2c9a24oZixkLGUpfDA7aD1mKyhlPDwyKXwwO2NbaD4+Ml09
MDtyZXR1cm59ZWxzZXtpPWUrNCYtNDtqPWtPKGk8PDIpfDA7Y1tiKzg+PjJdPWo7Y1tiPj4yXT1p
fDE7Y1tiKzQ+PjJdPWU7Zj1qO2c9a24oZixkLGUpfDA7aD1mKyhlPDwyKXwwO2NbaD4+Ml09MDty
ZXR1cm59fWZ1bmN0aW9uIGV5KGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxo
PTAsaT0wLGo9MDtpZihkPj4+MD4xMDczNzQxODIyKXtkWCgwKX1pZihkPj4+MDwyKXthW2JdPWQ8
PDEmMjU1O2Y9Yis0fDA7Zz1rcChmLGUsZCl8MDtoPWYrKGQ8PDIpfDA7Y1toPj4yXT0wO3JldHVy
bn1lbHNle2k9ZCs0Ji00O2o9a08oaTw8Mil8MDtjW2IrOD4+Ml09ajtjW2I+PjJdPWl8MTtjW2Ir
ND4+Ml09ZDtmPWo7Zz1rcChmLGUsZCl8MDtoPWYrKGQ8PDIpfDA7Y1toPj4yXT0wO3JldHVybn19
ZnVuY3Rpb24gZXooYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wO2lmKGQ+Pj4wPjEwNzM3NDE4MjIpe2RYKDApfWU9
YjtmPWFbZV18MDtpZigoZiYxKT09MCl7Zz0xO2g9Zn1lbHNle2Y9Y1tiPj4yXXwwO2c9KGYmLTIp
LTF8MDtoPWYmMjU1fWY9aCYyNTU7aWYoKGYmMXwwKT09MCl7aT1mPj4+MX1lbHNle2k9Y1tiKzQ+
PjJdfDB9Zj1pPj4+MD5kPj4+MD9pOmQ7aWYoZj4+PjA8Mil7aj0yfWVsc2V7aj1mKzQmLTR9Zj1q
LTF8MDtpZigoZnwwKT09KGd8MCkpe3JldHVybn1pZigoZnwwKT09MSl7az1iKzR8MDtsPWNbYis4
Pj4yXXwwO209MTtuPTB9ZWxzZXtkPWo8PDI7aWYoZj4+PjA+Zz4+PjApe289a08oZCl8MH1lbHNl
e289a08oZCl8MH1kPWgmMTtpZihkPDwyND4+MjQ9PTApe3A9Yis0fDB9ZWxzZXtwPWNbYis4Pj4y
XXwwfWs9bztsPXA7bT1kPDwyND4+MjQhPTA7bj0xfWQ9aztrPWgmMjU1O2lmKChrJjF8MCk9PTAp
e3E9az4+PjF9ZWxzZXtxPWNbYis0Pj4yXXwwfWtuKGQsbCxxKzF8MCl8MDtpZihtKXtrUyhsKX1p
ZihuKXtjW2I+PjJdPWp8MTtjW2IrND4+Ml09aTtjW2IrOD4+Ml09ZDtyZXR1cm59ZWxzZXthW2Vd
PWk8PDEmMjU1O3JldHVybn19ZnVuY3Rpb24gZUEoYixkLGUsZixnLGgsaSxqKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtpZigoMTA3Mzc0MTgyMS1kfDApPj4+MDxlPj4+
MCl7ZFgoMCl9aWYoKGFbYl0mMSk9PTApe2s9Yis0fDB9ZWxzZXtrPWNbYis4Pj4yXXwwfWRve2lm
KGQ+Pj4wPDUzNjg3MDg5NSl7bD1lK2R8MDttPWQ8PDE7bj1sPj4+MDxtPj4+MD9tOmw7aWYobj4+
PjA8Mil7bz0yO2JyZWFrfW89bis0Ji00fWVsc2V7bz0xMDczNzQxODIyfX13aGlsZSgwKTtlPWtP
KG88PDIpfDA7aWYoKGd8MCkhPTApe2tuKGUsayxnKXwwfWlmKChpfDApIT0wKXtuPWUrKGc8PDIp
fDA7a24obixqLGkpfDB9aj1mLWh8MDtpZigoanwwKSE9KGd8MCkpe2Y9ai1nfDA7bj1lKyhpK2c8
PDIpfDA7bD1rKyhoK2c8PDIpfDA7a24obixsLGYpfDB9aWYoKGR8MCk9PTEpe3A9Yis4fDA7Y1tw
Pj4yXT1lO3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtzPWoraXwwO3Q9Yis0fDA7Y1t0Pj4yXT1zO3U9
ZSsoczw8Mil8MDtjW3U+PjJdPTA7cmV0dXJufWtTKGspO3A9Yis4fDA7Y1twPj4yXT1lO3E9b3wx
O3I9YnwwO2Nbcj4+Ml09cTtzPWoraXwwO3Q9Yis0fDA7Y1t0Pj4yXT1zO3U9ZSsoczw8Mil8MDtj
W3U+PjJdPTA7cmV0dXJufWZ1bmN0aW9uIGVCKGIsZCxlLGYsZyxoLGkpe2I9YnwwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wO2lmKCgxMDczNzQxODIxLWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09
MCl7aj1iKzR8MH1lbHNle2o9Y1tiKzg+PjJdfDB9ZG97aWYoZD4+PjA8NTM2ODcwODk1KXtrPWUr
ZHwwO2w9ZDw8MTttPWs+Pj4wPGw+Pj4wP2w6aztpZihtPj4+MDwyKXtuPTI7YnJlYWt9bj1tKzQm
LTR9ZWxzZXtuPTEwNzM3NDE4MjJ9fXdoaWxlKDApO2U9a08objw8Mil8MDtpZigoZ3wwKSE9MCl7
a24oZSxqLGcpfDB9bT1mLWh8MDtpZigobXwwKSE9KGd8MCkpe2Y9bS1nfDA7bT1lKyhpK2c8PDIp
fDA7aT1qKyhoK2c8PDIpfDA7a24obSxpLGYpfDB9aWYoKGR8MCk9PTEpe289Yis4fDA7Y1tvPj4y
XT1lO3A9bnwxO3E9YnwwO2NbcT4+Ml09cDtyZXR1cm59a1Moaik7bz1iKzh8MDtjW28+PjJdPWU7
cD1ufDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1mdW5jdGlvbiBlQyhiLGQpe2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MDtlPWk7aT1pKzh8MDtmPWV8MDtnPShjW2IrMjQ+PjJdfDApPT0wO2lm
KGcpe2NbYisxNj4+Ml09ZHwxfWVsc2V7Y1tiKzE2Pj4yXT1kfWlmKCgoZyYxfGQpJmNbYisyMD4+
Ml18MCk9PTApe2k9ZTtyZXR1cm59ZT1iTygxNil8MDtkb3tpZigoYVsxNjI3Ml18MCk9PTApe2lm
KChiYygxNjI3Mil8MCk9PTApe2JyZWFrfWRqKDExODQwKTtjWzI5NjBdPTRlMzthJCg2NiwxMTg0
MCx1fDApfDB9fXdoaWxlKDApO2I9azMoMTE4NDAsMCwzMil8MDtkPUs7Y1tmPj4yXT1iJjB8MTtj
W2YrND4+Ml09ZHwwO2RNKGUsZiwxMzA0KTtjW2U+PjJdPTMxODQ7YmwoZXwwLDg3NTIsMjgpfWZ1
bmN0aW9uIGVEKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTA7Y1thPj4yXT0zMTYwO2I9Y1th
KzQwPj4yXXwwO2Q9YSszMnwwO2U9YSszNnwwO2lmKChifDApIT0wKXtmPWI7ZG97Zj1mLTF8MDti
M1tjWyhjW2Q+PjJdfDApKyhmPDwyKT4+Ml0mN10oMCxhLGNbKGNbZT4+Ml18MCkrKGY8PDIpPj4y
XXwwKTt9d2hpbGUoKGZ8MCkhPTApfWlPKGErMjh8MCk7a0soY1tkPj4yXXwwKTtrSyhjW2U+PjJd
fDApO2tLKGNbYSs0OD4+Ml18MCk7a0soY1thKzYwPj4yXXwwKTtyZXR1cm59ZnVuY3Rpb24gZUUo
YSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZUYoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24g
ZUcoYSl7YT1hfDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBlSChhLGIpe2E9YXwwO2I9YnwwO3JldHVy
bi0xfDB9ZnVuY3Rpb24gZUkoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGVK
KGEpe2E9YXwwO3JldHVybiAxNDE2fDB9ZnVuY3Rpb24gZUsoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7
ZD1kfDA7ZT1lfDA7ZT1pO2I9ZDtkPWk7aT1pKzE2fDA7Y1tkPj4yXT1jW2I+PjJdO2NbZCs0Pj4y
XT1jW2IrND4+Ml07Y1tkKzg+PjJdPWNbYis4Pj4yXTtjW2QrMTI+PjJdPWNbYisxMj4+Ml07Yj1h
O2NbYj4+Ml09MDtjW2IrND4+Ml09MDtiPWErOHwwO2NbYj4+Ml09LTE7Y1tiKzQ+PjJdPS0xO2k9
ZTtyZXR1cm59ZnVuY3Rpb24gZUwoYixjLGQsZSxmKXtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtm
PWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7TDI0Mzc6ZG97aWYoKGV8MCk9PShmfDAp
KXtnPWN9ZWxzZXtiPWM7aD1lO3doaWxlKDEpe2lmKChifDApPT0oZHwwKSl7aT0tMTtqPTE5OTA7
YnJlYWt9az1hW2JdfDA7bD1hW2hdfDA7aWYoazw8MjQ+PjI0PGw8PDI0Pj4yNCl7aT0tMTtqPTE5
OTM7YnJlYWt9aWYobDw8MjQ+PjI0PGs8PDI0Pj4yNCl7aT0xO2o9MTk5MjticmVha31rPWIrMXww
O2w9aCsxfDA7aWYoKGx8MCk9PShmfDApKXtnPWs7YnJlYWsgTDI0Mzd9ZWxzZXtiPWs7aD1sfX1p
ZigoanwwKT09MTk5Myl7cmV0dXJuIGl8MH1lbHNlIGlmKChqfDApPT0xOTkyKXtyZXR1cm4gaXww
fWVsc2UgaWYoKGp8MCk9PTE5OTApe3JldHVybiBpfDB9fX13aGlsZSgwKTtpPShnfDApIT0oZHww
KXwwO3JldHVybiBpfDB9ZnVuY3Rpb24gZU0oYixjLGQpe2I9YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MCxoPTA7aWYoKGN8MCk9PShkfDApKXtlPTA7cmV0dXJuIGV8MH1lbHNle2Y9Yztn
PTB9d2hpbGUoMSl7Yz0oYVtmXXwwKSsoZzw8NCl8MDtiPWMmLTI2ODQzNTQ1NjtoPShiPj4+MjR8
YileYztjPWYrMXwwO2lmKChjfDApPT0oZHwwKSl7ZT1oO2JyZWFrfWVsc2V7Zj1jO2c9aH19cmV0
dXJuIGV8MH1mdW5jdGlvbiBlTihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAs
Zz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1hO2lmKChkfDApPD0wKXtmPTA7cmV0dXJuIGZ8MH1n
PWErMTJ8MDtoPWErMTZ8MDtpPWI7Yj0wO3doaWxlKDEpe2o9Y1tnPj4yXXwwO2lmKGo+Pj4wPChj
W2g+PjJdfDApPj4+MCl7Y1tnPj4yXT1qKzQ7az1jW2o+PjJdfDB9ZWxzZXtqPWIwW2NbKGNbZT4+
Ml18MCkrNDA+PjJdJjEyN10oYSl8MDtpZigoanwwKT09LTEpe2Y9YjtsPTIwMDc7YnJlYWt9ZWxz
ZXtrPWp9fWNbaT4+Ml09aztqPWIrMXwwO2lmKChqfDApPChkfDApKXtpPWkrNHwwO2I9an1lbHNl
e2Y9ajtsPTIwMDg7YnJlYWt9fWlmKChsfDApPT0yMDA4KXtyZXR1cm4gZnwwfWVsc2UgaWYoKGx8
MCk9PTIwMDcpe3JldHVybiBmfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZU8oYSl7YT1hfDA7dmFyIGI9
MCxkPTA7aWYoKGIwW2NbKGNbYT4+Ml18MCkrMzY+PjJdJjEyN10oYSl8MCk9PS0xKXtiPS0xO3Jl
dHVybiBifDB9ZD1hKzEyfDA7YT1jW2Q+PjJdfDA7Y1tkPj4yXT1hKzQ7Yj1jW2E+PjJdfDA7cmV0
dXJuIGJ8MH1mdW5jdGlvbiBlUChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAs
Zz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1hO2lmKChkfDApPD0wKXtmPTA7cmV0dXJuIGZ8MH1n
PWErMjR8MDtoPWErMjh8MDtpPTA7aj1iO3doaWxlKDEpe2I9Y1tnPj4yXXwwO2lmKGI+Pj4wPChj
W2g+PjJdfDApPj4+MCl7az1jW2o+PjJdfDA7Y1tnPj4yXT1iKzQ7Y1tiPj4yXT1rfWVsc2V7aWYo
KGJfW2NbKGNbZT4+Ml18MCkrNTI+PjJdJjMxXShhLGNbaj4+Ml18MCl8MCk9PS0xKXtmPWk7bD0y
MDIzO2JyZWFrfX1rPWkrMXwwO2lmKChrfDApPChkfDApKXtpPWs7aj1qKzR8MH1lbHNle2Y9azts
PTIwMjI7YnJlYWt9fWlmKChsfDApPT0yMDIzKXtyZXR1cm4gZnwwfWVsc2UgaWYoKGx8MCk9PTIw
MjIpe3JldHVybiBmfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZVEoYSl7YT1hfDA7ZUQoYSs4fDApO2tT
KGEpO3JldHVybn1mdW5jdGlvbiBlUihhKXthPWF8MDtlRChhKzh8MCk7cmV0dXJufWZ1bmN0aW9u
IGVTKGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9YTtkPWNbKGNbYT4+Ml18MCktMTI+PjJdfDA7ZUQo
YisoZCs4KXwwKTtrUyhiK2R8MCk7cmV0dXJufWZ1bmN0aW9uIGVUKGEpe2E9YXwwO2VEKGErKChj
WyhjW2E+PjJdfDApLTEyPj4yXXwwKSs4KXwwKTtyZXR1cm59ZnVuY3Rpb24gZVUoYSl7YT1hfDA7
ZUQoYSs4fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlVihhKXthPWF8MDtlRChhKzh8MCk7cmV0
dXJufWZ1bmN0aW9uIGVXKGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9YTtkPWNbKGNbYT4+Ml18MCkt
MTI+PjJdfDA7ZUQoYisoZCs4KXwwKTtrUyhiK2R8MCk7cmV0dXJufWZ1bmN0aW9uIGVYKGEpe2E9
YXwwO2VEKGErKChjWyhjW2E+PjJdfDApLTEyPj4yXXwwKSs4KXwwKTtyZXR1cm59ZnVuY3Rpb24g
ZVkoYSl7YT1hfDA7ZUQoYSs0fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlWihhKXthPWF8MDtl
RChhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGVfKGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9YTtkPWNb
KGNbYT4+Ml18MCktMTI+PjJdfDA7ZUQoYisoZCs0KXwwKTtrUyhiK2R8MCk7cmV0dXJufWZ1bmN0
aW9uIGUkKGEpe2E9YXwwO2VEKGErKChjWyhjW2E+PjJdfDApLTEyPj4yXXwwKSs0KXwwKTtyZXR1
cm59ZnVuY3Rpb24gZTAoYSl7YT1hfDA7ZUQoYSs0fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBl
MShhKXthPWF8MDtlRChhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGUyKGEpe2E9YXwwO3ZhciBiPTAs
ZD0wO2I9YTtkPWNbKGNbYT4+Ml18MCktMTI+PjJdfDA7ZUQoYisoZCs0KXwwKTtrUyhiK2R8MCk7
cmV0dXJufWZ1bmN0aW9uIGUzKGEpe2E9YXwwO2VEKGErKChjWyhjW2E+PjJdfDApLTEyPj4yXXww
KSs0KXwwKTtyZXR1cm59ZnVuY3Rpb24gZTQoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2lmKChj
fDApPT0xKXtkWihhLDE2NDAsMzUpO3JldHVybn1lbHNle2RLKGEsYnwwLGMpO3JldHVybn19ZnVu
Y3Rpb24gZTUoYSl7YT1hfDA7ZGYoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZTYoYSl7YT1hfDA7ZE8o
YXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZTcoYSl7YT1hfDA7ZE8oYXwwKTtyZXR1cm59ZnVu
Y3Rpb24gZTgoYSl7YT1hfDA7ZUQoYSk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGU5KGEpe2E9YXww
O2RmKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGZhKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7
cmV0dXJufWZ1bmN0aW9uIGZiKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZjKGEp
e2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZkKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wO2Q9ZTtnPWYtZHwwO2Rve2lmKChnfDAp
PT0tMSl7ZFgoYik7aD0yMDU4fWVsc2V7aWYoZz4+PjA+PTExKXtoPTIwNTg7YnJlYWt9YVtiXT1n
PDwxJjI1NTtpPWIrMXwwfX13aGlsZSgwKTtpZigoaHwwKT09MjA1OCl7aD1nKzE2Ji0xNjtqPWtP
KGgpfDA7Y1tiKzg+PjJdPWo7Y1tiPj4yXT1ofDE7Y1tiKzQ+PjJdPWc7aT1qfWlmKChlfDApPT0o
ZnwwKSl7az1pO2Fba109MDtyZXR1cm59aj1mKygtZHwwKXwwO2Q9aTtnPWU7d2hpbGUoMSl7YVtk
XT1hW2ddfDA7ZT1nKzF8MDtpZigoZXwwKT09KGZ8MCkpe2JyZWFrfWVsc2V7ZD1kKzF8MDtnPWV9
fWs9aStqfDA7YVtrXT0wO3JldHVybn1mdW5jdGlvbiBmZShhKXthPWF8MDtkZShhfDApO2tTKGEp
O3JldHVybn1mdW5jdGlvbiBmZihhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBmZyhi
KXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wO2Q9aTtpPWkrOHwwO2U9ZHww
O2Y9YjtnPWNbKGNbZj4+Ml18MCktMTI+PjJdfDA7aD1iO2lmKChjW2grKGcrMjQpPj4yXXwwKT09
MCl7aT1kO3JldHVybiBifDB9aj1lfDA7YVtqXT0wO2NbZSs0Pj4yXT1iO2Rve2lmKChjW2grKGcr
MTYpPj4yXXwwKT09MCl7az1jW2grKGcrNzIpPj4yXXwwO2lmKChrfDApIT0wKXtmZyhrKXwwfWFb
al09MTtrPWNbaCsoKGNbKGNbZj4+Ml18MCktMTI+PjJdfDApKzI0KT4+Ml18MDtpZigoYjBbY1so
Y1trPj4yXXwwKSsyND4+Ml0mMTI3XShrKXwwKSE9LTEpe2JyZWFrfWs9Y1soY1tmPj4yXXwwKS0x
Mj4+Ml18MDtlQyhoK2t8MCxjW2grKGsrMTYpPj4yXXwxKX19d2hpbGUoMCk7ZmkoZSk7aT1kO3Jl
dHVybiBifDB9ZnVuY3Rpb24gZmgoYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0w
LGs9MDtkPWk7aT1pKzh8MDtlPWR8MDtmPWI7Zz1jWyhjW2Y+PjJdfDApLTEyPj4yXXwwO2g9Yjtp
ZigoY1toKyhnKzI0KT4+Ml18MCk9PTApe2k9ZDtyZXR1cm4gYnwwfWo9ZXwwO2Fbal09MDtjW2Ur
ND4+Ml09Yjtkb3tpZigoY1toKyhnKzE2KT4+Ml18MCk9PTApe2s9Y1toKyhnKzcyKT4+Ml18MDtp
Zigoa3wwKSE9MCl7Zmgoayl8MH1hW2pdPTE7az1jW2grKChjWyhjW2Y+PjJdfDApLTEyPj4yXXww
KSsyNCk+PjJdfDA7aWYoKGIwW2NbKGNbaz4+Ml18MCkrMjQ+PjJdJjEyN10oayl8MCkhPS0xKXti
cmVha31rPWNbKGNbZj4+Ml18MCktMTI+PjJdfDA7ZUMoaCtrfDAsY1toKyhrKzE2KT4+Ml18MSl9
fXdoaWxlKDApO2ZqKGUpO2k9ZDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGZpKGEpe2E9YXwwO3ZhciBi
PTAsZD0wLGU9MDtiPWErNHwwO2E9Y1tiPj4yXXwwO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtl
PWE7aWYoKGNbZSsoZCsyNCk+PjJdfDApPT0wKXtyZXR1cm59aWYoKGNbZSsoZCsxNik+PjJdfDAp
IT0wKXtyZXR1cm59aWYoKGNbZSsoZCs0KT4+Ml0mODE5MnwwKT09MCl7cmV0dXJufWlmKGJoKCl8
MCl7cmV0dXJufWQ9Y1tiPj4yXXwwO2U9Y1tkKygoY1soY1tkPj4yXXwwKS0xMj4+Ml18MCkrMjQp
Pj4yXXwwO2lmKChiMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGUpfDApIT0tMSl7cmV0dXJu
fWU9Y1tiPj4yXXwwO2I9Y1soY1tlPj4yXXwwKS0xMj4+Ml18MDtkPWU7ZUMoZCtifDAsY1tkKyhi
KzE2KT4+Ml18MSk7cmV0dXJufWZ1bmN0aW9uIGZqKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDti
PWErNHwwO2E9Y1tiPj4yXXwwO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlPWE7aWYoKGNbZSso
ZCsyNCk+PjJdfDApPT0wKXtyZXR1cm59aWYoKGNbZSsoZCsxNik+PjJdfDApIT0wKXtyZXR1cm59
aWYoKGNbZSsoZCs0KT4+Ml0mODE5MnwwKT09MCl7cmV0dXJufWlmKGJoKCl8MCl7cmV0dXJufWQ9
Y1tiPj4yXXwwO2U9Y1tkKygoY1soY1tkPj4yXXwwKS0xMj4+Ml18MCkrMjQpPj4yXXwwO2lmKChi
MFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGUpfDApIT0tMSl7cmV0dXJufWU9Y1tiPj4yXXww
O2I9Y1soY1tlPj4yXXwwKS0xMj4+Ml18MDtkPWU7ZUMoZCtifDAsY1tkKyhiKzE2KT4+Ml18MSk7
cmV0dXJufWZ1bmN0aW9uIGZrKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO0wyNTk2OmRve2lmKChlfDApPT0oZnwwKSl7
Zz1ifWVsc2V7YT1iO2g9ZTt3aGlsZSgxKXtpZigoYXwwKT09KGR8MCkpe2k9LTE7aj0yMTQ3O2Jy
ZWFrfWs9Y1thPj4yXXwwO2w9Y1toPj4yXXwwO2lmKChrfDApPChsfDApKXtpPS0xO2o9MjE1MDti
cmVha31pZigobHwwKTwoa3wwKSl7aT0xO2o9MjE0ODticmVha31rPWErNHwwO2w9aCs0fDA7aWYo
KGx8MCk9PShmfDApKXtnPWs7YnJlYWsgTDI1OTZ9ZWxzZXthPWs7aD1sfX1pZigoanwwKT09MjE0
OCl7cmV0dXJuIGl8MH1lbHNlIGlmKChqfDApPT0yMTQ3KXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8
MCk9PTIxNTApe3JldHVybiBpfDB9fX13aGlsZSgwKTtpPShnfDApIT0oZHwwKXwwO3JldHVybiBp
fDB9ZnVuY3Rpb24gZmwoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxo
PTA7aWYoKGJ8MCk9PShkfDApKXtlPTA7cmV0dXJuIGV8MH1lbHNle2Y9YjtnPTB9d2hpbGUoMSl7
Yj0oY1tmPj4yXXwwKSsoZzw8NCl8MDthPWImLTI2ODQzNTQ1NjtoPShhPj4+MjR8YSleYjtiPWYr
NHwwO2lmKChifDApPT0oZHwwKSl7ZT1oO2JyZWFrfWVsc2V7Zj1iO2c9aH19cmV0dXJuIGV8MH1m
dW5jdGlvbiBmbShiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxp
PTAsaj0wLGs9MDtkPWU7Zz1mLWR8MDtoPWc+PjI7aWYoaD4+PjA+MTA3Mzc0MTgyMil7ZFgoYil9
aWYoaD4+PjA8Mil7YVtiXT1nPj4+MSYyNTU7aT1iKzR8MH1lbHNle2c9aCs0Ji00O2o9a08oZzw8
Mil8MDtjW2IrOD4+Ml09ajtjW2I+PjJdPWd8MTtjW2IrND4+Ml09aDtpPWp9aWYoKGV8MCk9PShm
fDApKXtrPWk7Y1trPj4yXT0wO3JldHVybn1qPShmLTQrKC1kfDApfDApPj4+MjtkPWk7aD1lO3do
aWxlKDEpe2NbZD4+Ml09Y1toPj4yXTtlPWgrNHwwO2lmKChlfDApPT0oZnwwKSl7YnJlYWt9ZWxz
ZXtkPWQrNHwwO2g9ZX19az1pKyhqKzE8PDIpfDA7Y1trPj4yXT0wO3JldHVybn1mdW5jdGlvbiBm
bihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBmbyhhKXthPWF8MDtkZShh
fDApO3JldHVybn1mdW5jdGlvbiBmcChiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtrPWk7aT1pKzExMnwwO2w9ZTtl
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWt8MDttPWsrMTZ8MDtuPWsrMzJ8MDtvPWsrNDB8
MDtwPWsrNDh8MDtxPWsrNTZ8MDtyPWsrNjR8MDtzPWsrNzJ8MDt0PWsrODB8MDt1PWsrMTA0fDA7
aWYoKGNbZys0Pj4yXSYxfDApPT0wKXtjW24+PjJdPS0xO3Y9Y1soY1tkPj4yXXwwKSsxNj4+Ml18
MDt3PWV8MDtjW3A+PjJdPWNbdz4+Ml07Y1txPj4yXT1jW2Y+PjJdO2JYW3YmMTI3XShvLGQscCxx
LGcsaCxuKTtxPWNbbz4+Ml18MDtjW3c+PjJdPXE7c3dpdGNoKGNbbj4+Ml18MCl7Y2FzZSAxOnth
W2pdPTE7YnJlYWt9O2Nhc2UgMDp7YVtqXT0wO2JyZWFrfTtkZWZhdWx0OnthW2pdPTE7Y1toPj4y
XT00fX1jW2I+PjJdPXE7aT1rO3JldHVybn1laihyLGcpO3E9cnwwO3I9Y1txPj4yXXwwO2lmKChj
WzM5MjRdfDApIT0tMSl7Y1ttPj4yXT0xNTY5NjtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFco
MTU2OTYsbSw5Nil9bT0oY1szOTI1XXwwKS0xfDA7bj1jW3IrOD4+Ml18MDtkb3tpZigoY1tyKzEy
Pj4yXXwwKS1uPj4yPj4+MD5tPj4+MCl7dz1jW24rKG08PDIpPj4yXXwwO2lmKCh3fDApPT0wKXti
cmVha31vPXc7dz1jW3E+PjJdfDA7ZHoodyl8MDtlaihzLGcpO3c9c3wwO3A9Y1t3Pj4yXXwwO2lm
KChjWzM4MjhdfDApIT0tMSl7Y1tsPj4yXT0xNTMxMjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7
ZFcoMTUzMTIsbCw5Nil9ZD0oY1szODI5XXwwKS0xfDA7dj1jW3ArOD4+Ml18MDtkb3tpZigoY1tw
KzEyPj4yXXwwKS12Pj4yPj4+MD5kPj4+MCl7eD1jW3YrKGQ8PDIpPj4yXXwwO2lmKCh4fDApPT0w
KXticmVha315PXg7ej1jW3c+PjJdfDA7ZHooeil8MDt6PXR8MDtBPXg7YlpbY1soY1tBPj4yXXww
KSsyND4+Ml0mMTI3XSh6LHkpO2JaW2NbKGNbQT4+Ml18MCkrMjg+PjJdJjEyN10odCsxMnwwLHkp
O2NbdT4+Ml09Y1tmPj4yXTthW2pdPShmcShlLHUseix0KzI0fDAsbyxoLDEpfDApPT0oenwwKXww
O2NbYj4+Ml09Y1tlPj4yXTtkUCh0KzEyfDApO2RQKHR8MCk7aT1rO3JldHVybn19d2hpbGUoMCk7
bz1iTyg0KXwwO2txKG8pO2JsKG98MCw4MTc2LDEzNCl9fXdoaWxlKDApO2s9Yk8oNCl8MDtrcShr
KTtibChrfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZxKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MDtsPWk7aT1pKzEwNHwwO209
ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07bT0oZy1mfDApLzEyfDA7
bj1sfDA7ZG97aWYobT4+PjA+MTAwKXtvPWtKKG0pfDA7aWYoKG98MCkhPTApe3A9bztxPW87YnJl
YWt9a1goKTtwPTA7cT0wfWVsc2V7cD1uO3E9MH19d2hpbGUoMCk7bj0oZnwwKT09KGd8MCk7aWYo
bil7cj1tO3M9MH1lbHNle289bTttPTA7dD1wO3U9Zjt3aGlsZSgxKXt2PWRbdV18MDtpZigodiYx
fDApPT0wKXt3PXY+Pj4xfWVsc2V7dz1jW3UrND4+Ml18MH1pZigod3wwKT09MCl7YVt0XT0yO3g9
bSsxfDA7eT1vLTF8MH1lbHNle2FbdF09MTt4PW07eT1vfXY9dSsxMnwwO2lmKCh2fDApPT0oZ3ww
KSl7cj15O3M9eDticmVha31lbHNle289eTttPXg7dD10KzF8MDt1PXZ9fX11PWJ8MDtiPWV8MDtl
PWg7dD0wO3g9cztzPXI7d2hpbGUoMSl7cj1jW3U+PjJdfDA7ZG97aWYoKHJ8MCk9PTApe3o9MH1l
bHNle2lmKChjW3IrMTI+PjJdfDApIT0oY1tyKzE2Pj4yXXwwKSl7ej1yO2JyZWFrfWlmKChiMFtj
WyhjW3I+PjJdfDApKzM2Pj4yXSYxMjddKHIpfDApPT0tMSl7Y1t1Pj4yXT0wO3o9MDticmVha31l
bHNle3o9Y1t1Pj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7cj0oenwwKT09MDttPWNbYj4+Ml18MDtp
ZigobXwwKT09MCl7QT16O0I9MH1lbHNle2Rve2lmKChjW20rMTI+PjJdfDApPT0oY1ttKzE2Pj4y
XXwwKSl7aWYoKGIwW2NbKGNbbT4+Ml18MCkrMzY+PjJdJjEyN10obSl8MCkhPS0xKXtDPW07YnJl
YWt9Y1tiPj4yXT0wO0M9MH1lbHNle0M9bX19d2hpbGUoMCk7QT1jW3U+PjJdfDA7Qj1DfUQ9KEJ8
MCk9PTA7aWYoISgocl5EKSYoc3wwKSE9MCkpe2JyZWFrfW09Y1tBKzEyPj4yXXwwO2lmKChtfDAp
PT0oY1tBKzE2Pj4yXXwwKSl7RT0oYjBbY1soY1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKSYy
NTV9ZWxzZXtFPWFbbV18MH1pZihrKXtGPUV9ZWxzZXtGPWJfW2NbKGNbZT4+Ml18MCkrMTI+PjJd
JjMxXShoLEUpfDB9ZG97aWYobil7Rz14O0g9c31lbHNle209dCsxfDA7TDI3MDc6ZG97aWYoayl7
eT1zO289eDt3PXA7dj0wO0k9Zjt3aGlsZSgxKXtkb3tpZigoYVt3XXwwKT09MSl7Sj1JO2lmKChh
W0pdJjEpPT0wKXtLPUkrMXwwfWVsc2V7Sz1jW0krOD4+Ml18MH1pZihGPDwyND4+MjQhPShhW0sr
dHwwXXwwKSl7YVt3XT0wO0w9djtNPW87Tj15LTF8MDticmVha31PPWRbSl18MDtpZigoTyYxfDAp
PT0wKXtQPU8+Pj4xfWVsc2V7UD1jW0krND4+Ml18MH1pZigoUHwwKSE9KG18MCkpe0w9MTtNPW87
Tj15O2JyZWFrfWFbd109MjtMPTE7TT1vKzF8MDtOPXktMXwwfWVsc2V7TD12O009bztOPXl9fXdo
aWxlKDApO089SSsxMnwwO2lmKChPfDApPT0oZ3wwKSl7UT1OO1I9TTtTPUw7YnJlYWsgTDI3MDd9
eT1OO289TTt3PXcrMXwwO3Y9TDtJPU99fWVsc2V7ST1zO3Y9eDt3PXA7bz0wO3k9Zjt3aGlsZSgx
KXtkb3tpZigoYVt3XXwwKT09MSl7Tz15O2lmKChhW09dJjEpPT0wKXtUPXkrMXwwfWVsc2V7VD1j
W3krOD4+Ml18MH1pZihGPDwyND4+MjQhPShiX1tjWyhjW2U+PjJdfDApKzEyPj4yXSYzMV0oaCxh
W1QrdHwwXXwwKXwwKTw8MjQ+PjI0KXthW3ddPTA7VT1vO1Y9djtXPUktMXwwO2JyZWFrfUo9ZFtP
XXwwO2lmKChKJjF8MCk9PTApe1g9Sj4+PjF9ZWxzZXtYPWNbeSs0Pj4yXXwwfWlmKChYfDApIT0o
bXwwKSl7VT0xO1Y9djtXPUk7YnJlYWt9YVt3XT0yO1U9MTtWPXYrMXwwO1c9SS0xfDB9ZWxzZXtV
PW87Vj12O1c9SX19d2hpbGUoMCk7Sj15KzEyfDA7aWYoKEp8MCk9PShnfDApKXtRPVc7Uj1WO1M9
VTticmVhayBMMjcwN31JPVc7dj1WO3c9dysxfDA7bz1VO3k9Sn19fXdoaWxlKDApO2lmKCFTKXtH
PVI7SD1RO2JyZWFrfW09Y1t1Pj4yXXwwO3k9bSsxMnwwO289Y1t5Pj4yXXwwO2lmKChvfDApPT0o
Y1ttKzE2Pj4yXXwwKSl7dz1jWyhjW20+PjJdfDApKzQwPj4yXXwwO2IwW3cmMTI3XShtKXwwfWVs
c2V7Y1t5Pj4yXT1vKzF9aWYoKFIrUXwwKT4+PjA8MnxuKXtHPVI7SD1RO2JyZWFrfW89dCsxfDA7
eT1SO209cDt3PWY7d2hpbGUoMSl7ZG97aWYoKGFbbV18MCk9PTIpe3Y9ZFt3XXwwO2lmKCh2JjF8
MCk9PTApe1k9dj4+PjF9ZWxzZXtZPWNbdys0Pj4yXXwwfWlmKChZfDApPT0ob3wwKSl7Wj15O2Jy
ZWFrfWFbbV09MDtaPXktMXwwfWVsc2V7Wj15fX13aGlsZSgwKTt2PXcrMTJ8MDtpZigodnwwKT09
KGd8MCkpe0c9WjtIPVE7YnJlYWt9ZWxzZXt5PVo7bT1tKzF8MDt3PXZ9fX19d2hpbGUoMCk7dD10
KzF8MDt4PUc7cz1IfWRve2lmKChBfDApPT0wKXtfPTB9ZWxzZXtpZigoY1tBKzEyPj4yXXwwKSE9
KGNbQSsxNj4+Ml18MCkpe189QTticmVha31pZigoYjBbY1soY1tBPj4yXXwwKSszNj4+Ml0mMTI3
XShBKXwwKT09LTEpe2NbdT4+Ml09MDtfPTA7YnJlYWt9ZWxzZXtfPWNbdT4+Ml18MDticmVha319
fXdoaWxlKDApO3U9KF98MCk9PTA7ZG97aWYoRCl7JD0yMjkzfWVsc2V7aWYoKGNbQisxMj4+Ml18
MCkhPShjW0IrMTY+PjJdfDApKXtpZih1KXticmVha31lbHNleyQ9MjI5NTticmVha319aWYoKGIw
W2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCk9PS0xKXtjW2I+PjJdPTA7JD0yMjkzO2Jy
ZWFrfWVsc2V7aWYodV4oQnwwKT09MCl7YnJlYWt9ZWxzZXskPTIyOTU7YnJlYWt9fX19d2hpbGUo
MCk7aWYoKCR8MCk9PTIyOTMpe2lmKHUpeyQ9MjI5NX19aWYoKCR8MCk9PTIyOTUpe2Nbaj4+Ml09
Y1tqPj4yXXwyfUwyNzg2OmRve2lmKG4peyQ9MjMwMH1lbHNle3U9ZjtCPXA7d2hpbGUoMSl7aWYo
KGFbQl18MCk9PTIpe2FhPXU7YnJlYWsgTDI3ODZ9Yj11KzEyfDA7aWYoKGJ8MCk9PShnfDApKXsk
PTIzMDA7YnJlYWsgTDI3ODZ9dT1iO0I9QisxfDB9fX13aGlsZSgwKTtpZigoJHwwKT09MjMwMCl7
Y1tqPj4yXT1jW2o+PjJdfDQ7YWE9Z31pZigocXwwKT09MCl7aT1sO3JldHVybiBhYXwwfWtLKHEp
O2k9bDtyZXR1cm4gYWF8MH1mdW5jdGlvbiBmcihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9
MCxVPTA7ZT1pO2k9aSs3MnwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNb
bD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMzJ8
MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsx
NjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0
Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgNjQ6e3Q9ODticmVha307Y2FzZSA4Ont0PTE2O2JyZWFr
fTtjYXNlIDA6e3Q9MDticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZngobSxoLHUsbCk7ayQo
b3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7
eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9
cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWFbbF18
MDtsPXc7dz1jW2g+PjJdfDA7TDI4MDk6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNl
e2lmKChjW3crMTI+PjJdfDApIT0oY1t3KzE2Pj4yXXwwKSl7Qj13O2JyZWFrfWlmKChiMFtjWyhj
W3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9
fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1jW2Y+PjJdfDA7ZG97aWYoKER8MCk9PTApe0U9MjMyN31l
bHNle2lmKChjW0QrMTI+PjJdfDApIT0oY1tEKzE2Pj4yXXwwKSl7aWYoQyl7Rj1EO0c9MDticmVh
a31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFrIEwyODA5fX1pZigoYjBbY1soY1tEPj4yXXwwKSszNj4+
Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+Ml09MDtFPTIzMjc7YnJlYWt9ZWxzZXtLPShEfDApPT0w
O2lmKENeSyl7Rj1EO0c9SzticmVha31lbHNle0g9bDtJPUQ7Sj1LO2JyZWFrIEwyODA5fX19fXdo
aWxlKDApO2lmKChFfDApPT0yMzI3KXtFPTA7aWYoQyl7SD1sO0k9MDtKPTE7YnJlYWt9ZWxzZXtG
PTA7Rz0xfX1EPWRbb118MDtLPShEJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoSz9E
Pj4+MTpjW3o+PjJdfDApfDApKXtpZihLKXtMPUQ+Pj4xO009RD4+PjF9ZWxzZXtEPWNbej4+Ml18
MDtMPUQ7TT1EfWRSKG4sTDw8MSwwKTtpZigoYVtvXSYxKT09MCl7Tj0xMH1lbHNle049KGNbZz4+
Ml0mLTIpLTF8MH1kUihuLE4sMCk7aWYoKGFbb10mMSk9PTApe089eH1lbHNle089Y1t5Pj4yXXww
fWNbcD4+Ml09TytNO1A9T31lbHNle1A9bH1EPUIrMTJ8MDtLPWNbRD4+Ml18MDtRPUIrMTZ8MDtp
ZigoS3wwKT09KGNbUT4+Ml18MCkpe1I9KGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MCkmMjU1fWVsc2V7Uj1hW0tdfDB9aWYoKGZzKFIsdCxQLHAscyxBLG0sdixyLHUpfDApIT0wKXtI
PVA7ST1GO0o9RzticmVha31LPWNbRD4+Ml18MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1E9Y1so
Y1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtRJjEyN10oQil8MDtsPVA7dz1CO2NvbnRpbnVlfWVsc2V7
Y1tEPj4yXT1LKzE7bD1QO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Uz13
Pj4+MX1lbHNle1M9Y1ttKzQ+PjJdfDB9ZG97aWYoKFN8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3
LXF8MCk+PTE2MCl7YnJlYWt9UD1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1QfX13aGls
ZSgwKTtjW2s+PjJdPWZ1KEgsY1twPj4yXXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rv
e2lmKEMpe1Q9MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VD1CO2Jy
ZWFrfWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VD1CO2JyZWFr
fWNbaD4+Ml09MDtUPTB9fXdoaWxlKDApO2g9KFR8MCk9PTA7TDI4Njk6ZG97aWYoSil7RT0yMzY4
fWVsc2V7ZG97aWYoKGNbSSsxMj4+Ml18MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJ
Pj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTIzNjg7YnJl
YWsgTDI4Njl9fXdoaWxlKDApO2lmKCEoaF4oSXwwKT09MCkpe2JyZWFrfVU9YnwwO2NbVT4+Ml09
VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRXwwKT09MjM2OCl7aWYo
aCl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Nbaj4+Ml09Y1tqPj4yXXwyO1U9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJu
fWZ1bmN0aW9uIGZzKGIsZSxmLGcsaCxpLGosayxsLG0pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MDtuPWNbZz4+Ml18MDtvPShufDApPT0oZnwwKTtkb3tpZihvKXtwPShhW20rMjR8MF18
MCk9PWI8PDI0Pj4yNDtpZighcCl7aWYoKGFbbSsyNXwwXXwwKSE9Yjw8MjQ+PjI0KXticmVha319
Y1tnPj4yXT1mKzE7YVtmXT1wPzQzOjQ1O2NbaD4+Ml09MDtxPTA7cmV0dXJuIHF8MH19d2hpbGUo
MCk7cD1kW2pdfDA7aWYoKHAmMXwwKT09MCl7cj1wPj4+MX1lbHNle3I9Y1tqKzQ+PjJdfDB9aWYo
KHJ8MCkhPTAmYjw8MjQ+PjI0PT1pPDwyND4+MjQpe2k9Y1tsPj4yXXwwO2lmKChpLWt8MCk+PTE2
MCl7cT0wO3JldHVybiBxfDB9az1jW2g+PjJdfDA7Y1tsPj4yXT1pKzQ7Y1tpPj4yXT1rO2NbaD4+
Ml09MDtxPTA7cmV0dXJuIHF8MH1rPW0rMjZ8MDtpPW07d2hpbGUoMSl7aWYoKGl8MCk9PShrfDAp
KXtzPWs7YnJlYWt9aWYoKGFbaV18MCk9PWI8PDI0Pj4yNCl7cz1pO2JyZWFrfWVsc2V7aT1pKzF8
MH19aT1zLW18MDtpZigoaXwwKT4yMyl7cT0tMTtyZXR1cm4gcXwwfUwyOTA4OmRve3N3aXRjaChl
fDApe2Nhc2UgODpjYXNlIDEwOntpZigoaXwwKTwoZXwwKSl7YnJlYWsgTDI5MDh9ZWxzZXtxPS0x
fXJldHVybiBxfDB9O2Nhc2UgMTY6e2lmKChpfDApPDIyKXticmVhayBMMjkwOH1pZihvKXtxPS0x
O3JldHVybiBxfDB9aWYoKG4tZnwwKT49Myl7cT0tMTtyZXR1cm4gcXwwfWlmKChhW24tMXwwXXww
KSE9NDgpe3E9LTE7cmV0dXJuIHF8MH1jW2g+PjJdPTA7bT1hWzk3NDQraXwwXXwwO3M9Y1tnPj4y
XXwwO2NbZz4+Ml09cysxO2Fbc109bTtxPTA7cmV0dXJuIHF8MH07ZGVmYXVsdDp7fX19d2hpbGUo
MCk7Zj1hWzk3NDQraXwwXXwwO2NbZz4+Ml09bisxO2Fbbl09ZjtjW2g+PjJdPShjW2g+PjJdfDAp
KzE7cT0wO3JldHVybiBxfDB9ZnVuY3Rpb24gZnQoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wO2c9YjtoPWI7aT1hW2hdfDA7aj1pJjI1NTtpZigoaiYxfDApPT0wKXtrPWo+
Pj4xfWVsc2V7az1jW2IrND4+Ml18MH1pZigoa3wwKT09MCl7cmV0dXJufWRve2lmKChkfDApPT0o
ZXwwKSl7bD1pfWVsc2V7az1lLTR8MDtpZihrPj4+MD5kPj4+MCl7bT1kO249a31lbHNle2w9aTti
cmVha31kb3trPWNbbT4+Ml18MDtjW20+PjJdPWNbbj4+Ml07Y1tuPj4yXT1rO209bSs0fDA7bj1u
LTR8MDt9d2hpbGUobT4+PjA8bj4+PjApO2w9YVtoXXwwfX13aGlsZSgwKTtpZigobCYxKT09MCl7
bz1nKzF8MH1lbHNle289Y1tiKzg+PjJdfDB9Zz1sJjI1NTtpZigoZyYxfDApPT0wKXtwPWc+Pj4x
fWVsc2V7cD1jW2IrND4+Ml18MH1iPWUtNHwwO2U9YVtvXXwwO2c9ZTw8MjQ+PjI0O2w9ZTw8MjQ+
PjI0PDF8ZTw8MjQ+PjI0PT0xMjc7TDI5NDc6ZG97aWYoYj4+PjA+ZD4+PjApe2U9bytwfDA7aD1v
O249ZDttPWc7aT1sO3doaWxlKDEpe2lmKCFpKXtpZigobXwwKSE9KGNbbj4+Ml18MCkpe2JyZWFr
fX1rPShlLWh8MCk+MT9oKzF8MDpoO2o9bis0fDA7cT1hW2tdfDA7cj1xPDwyND4+MjQ7cz1xPDwy
ND4+MjQ8MXxxPDwyND4+MjQ9PTEyNztpZihqPj4+MDxiPj4+MCl7aD1rO249ajttPXI7aT1zfWVs
c2V7dD1yO3U9czticmVhayBMMjk0N319Y1tmPj4yXT00O3JldHVybn1lbHNle3Q9Zzt1PWx9fXdo
aWxlKDApO2lmKHUpe3JldHVybn11PWNbYj4+Ml18MDtpZighKHQ+Pj4wPHU+Pj4wfCh1fDApPT0w
KSl7cmV0dXJufWNbZj4+Ml09NDtyZXR1cm59ZnVuY3Rpb24gZnUoYixkLGUsZil7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTA7Zz1pO2k9aSs4fDA7aD1nfDA7
aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWs9Y1soYncoKXww
KT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1iSShi
fDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09
MCl7Y1soYncoKXwwKT4+Ml09a31pZigoY1toPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtqPTA7
aT1nO3JldHVybiBqfDB9ZD0tMTtoPTA7aWYoKGJ8MCk9PTM0fCgoZnwwKTwoZHwwKXwoZnwwKT09
KGR8MCkmbD4+PjA8LTIxNDc0ODM2NDg+Pj4wKXwoKGZ8MCk+KGh8MCl8KGZ8MCk9PShofDApJmw+
Pj4wPjIxNDc0ODM2NDc+Pj4wKSl7Y1tlPj4yXT00O2U9MDtqPShmfDApPihlfDApfChmfDApPT0o
ZXwwKSZsPj4+MD4wPj4+MD8yMTQ3NDgzNjQ3Oi0yMTQ3NDgzNjQ4O2k9ZztyZXR1cm4ganwwfWVs
c2V7aj1sO2k9ZztyZXR1cm4ganwwfXJldHVybiAwfWZ1bmN0aW9uIGZ2KGIsZSxmLGcsaCxqLGsp
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAs
Uj0wLFM9MCxUPTAsVT0wLFY9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1j
W2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNl
IDY0Ont0PTg7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtm
eChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9
aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9
dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6
PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMjk5Nzp3aGlsZSgxKXtkb3tpZigod3ww
KT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3crMTY+PjJdfDApKXtCPXc7YnJl
YWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MCkhPS0xKXtCPXc7YnJlYWt9
Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNbZj4+Ml18MDtkb3tpZigoRHww
KT09MCl7RT0yNDc2fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShjW0QrMTY+PjJdfDApKXtpZihD
KXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsgTDI5OTd9fWlmKChiMFtjWyhj
W0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4yXT0wO0U9MjQ3NjticmVha31l
bHNle0w9KER8MCk9PTA7aWYoQ15MKXtGPUQ7Rz1MO2JyZWFrfWVsc2V7SD1sO0k9RDtKPUw7YnJl
YWsgTDI5OTd9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTI0NzYpe0U9MDtpZihDKXtIPWw7ST0wO0o9
MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0w9KEQmMXwwKT09MDtpZigoKGNbcD4+Ml18
MCktbHwwKT09KChMP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEwpe009RD4+PjE7Tj1EPj4+MX1l
bHNle0Q9Y1t6Pj4yXXwwO009RDtOPUR9ZFIobixNPDwxLDApO2lmKChhW29dJjEpPT0wKXtPPTEw
fWVsc2V7Tz0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTywwKTtpZigoYVtvXSYxKT09MCl7UD14fWVs
c2V7UD1jW3k+PjJdfDB9Y1twPj4yXT1QK047UT1QfWVsc2V7UT1sfUQ9QisxMnwwO0w9Y1tEPj4y
XXwwO1I9QisxNnwwO2lmKChMfDApPT0oY1tSPj4yXXwwKSl7Uz0oYjBbY1soY1tCPj4yXXwwKSsz
Nj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtTPWFbTF18MH1pZigoZnMoUyx0LFEscCxzLEEsbSx2
LHIsdSl8MCkhPTApe0g9UTtJPUY7Sj1HO2JyZWFrfUw9Y1tEPj4yXXwwO2lmKChMfDApPT0oY1tS
Pj4yXXwwKSl7Uj1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1ImMTI3XShCKXwwO2w9UTt3PUI7
Y29udGludWV9ZWxzZXtjW0Q+PjJdPUwrMTtsPVE7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigo
dyYxfDApPT0wKXtUPXc+Pj4xfWVsc2V7VD1jW20rND4+Ml18MH1kb3tpZigoVHwwKSE9MCl7dz1j
W3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31RPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtj
W3c+PjJdPVF9fXdoaWxlKDApO3M9ZncoSCxjW3A+PjJdfDAsaix0KXwwO2Nbaz4+Ml09cztjW2sr
ND4+Ml09SztmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEMpe1U9MH1lbHNle2lmKChjW0IrMTI+
PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VT1CO2JyZWFrfWlmKChiMFtjWyhjW0I+PjJdfDApKzM2
Pj4yXSYxMjddKEIpfDApIT0tMSl7VT1CO2JyZWFrfWNbaD4+Ml09MDtVPTB9fXdoaWxlKDApO2g9
KFV8MCk9PTA7TDMwNTc6ZG97aWYoSil7RT0yNTE3fWVsc2V7ZG97aWYoKGNbSSsxMj4+Ml18MCk9
PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwKSE9
LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI1MTc7YnJlYWsgTDMwNTd9fXdoaWxlKDApO2lmKCEoaF4o
SXwwKT09MCkpe2JyZWFrfVY9YnwwO2NbVj4+Ml09VTtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtkb3tpZigoRXwwKT09MjUxNyl7aWYoaCl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQ
KG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1Y9YnwwO2Nb
Vj4+Ml09VTtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZ3KGIsZCxlLGYpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MDtnPWk7aT1pKzh8
MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7az0wO2k9ZztyZXR1cm4oSz1q
LGspfDB9bD1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRd
fDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXww
fX13aGlsZSgwKTttPWJJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDAp
Pj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1sfWlmKChjW2g+PjJdfDApIT0oZHww
KSl7Y1tlPj4yXT00O2o9MDtrPTA7aT1nO3JldHVybihLPWosayl8MH1pZigoYnwwKSE9MzQpe2o9
ZjtrPW07aT1nO3JldHVybihLPWosayl8MH1jW2U+PjJdPTQ7ZT0wO2I9KGZ8MCk+KGV8MCl8KGZ8
MCk9PShlfDApJm0+Pj4wPjA+Pj4wO2o9Yj8yMTQ3NDgzNjQ3Oi0yMTQ3NDgzNjQ4O2s9Yj8tMTow
O2k9ZztyZXR1cm4oSz1qLGspfDB9ZnVuY3Rpb24gZngoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MDtnPWk7
aT1pKzQwfDA7aD1nfDA7aj1nKzE2fDA7az1nKzMyfDA7ZWooayxkKTtkPWt8MDtrPWNbZD4+Ml18
MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbaj4+Ml09MTU2OTY7Y1tqKzQ+PjJdPTEyO2Nbais4Pj4y
XT0wO2RXKDE1Njk2LGosOTYpfWo9KGNbMzkyNV18MCktMXwwO2w9Y1trKzg+PjJdfDA7ZG97aWYo
KGNbaysxMj4+Ml18MCktbD4+Mj4+PjA+aj4+PjApe209Y1tsKyhqPDwyKT4+Ml18MDtpZigobXww
KT09MCl7YnJlYWt9bj1tO289Y1soY1ttPj4yXXwwKSszMj4+Ml18MDtjYVtvJjE1XShuLDk3NDQs
OTc3MCxlKXwwO249Y1tkPj4yXXwwO2lmKChjWzM4MjhdfDApIT0tMSl7Y1toPj4yXT0xNTMxMjtj
W2grND4+Ml09MTI7Y1toKzg+PjJdPTA7ZFcoMTUzMTIsaCw5Nil9bz0oY1szODI5XXwwKS0xfDA7
bT1jW24rOD4+Ml18MDtkb3tpZigoY1tuKzEyPj4yXXwwKS1tPj4yPj4+MD5vPj4+MCl7cD1jW20r
KG88PDIpPj4yXXwwO2lmKChwfDApPT0wKXticmVha31xPXA7YVtmXT1iMFtjWyhjW3A+PjJdfDAp
KzE2Pj4yXSYxMjddKHEpfDA7YlpbY1soY1twPj4yXXwwKSsyMD4+Ml0mMTI3XShiLHEpO3E9Y1tk
Pj4yXXwwO2R6KHEpfDA7aT1nO3JldHVybn19d2hpbGUoMCk7bz1iTyg0KXwwO2txKG8pO2JsKG98
MCw4MTc2LDEzNCl9fXdoaWxlKDApO2c9Yk8oNCl8MDtrcShnKTtibChnfDAsODE3NiwxMzQpfWZ1
bmN0aW9uIGZ5KGUsZixnLGgsaixrLGwpe2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9
a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAs
TD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MDtmPWk7aT1pKzcyfDA7
bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1ttPj4yXTttPWg7aD1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1toPj4yXT1jW20+PjJdO209ZiszMnwwO249Zis0MHwwO289Zis1Nnww
O3A9bztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztyPWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2orND4+Ml0mNzR8MCl7
Y2FzZSAwOnt1PTA7YnJlYWt9O2Nhc2UgODp7dT0xNjticmVha307Y2FzZSA2NDp7dT04O2JyZWFr
fTtkZWZhdWx0Ont1PTEwfX12PWZ8MDtmeChuLGosdixtKTtrJChwfDAsMCwxMik7aj1vO2RSKG8s
MTAsMCk7aWYoKGFbcF0mMSk9PTApe3c9aisxfDA7eD13O3k9dzt6PW8rOHwwfWVsc2V7dz1vKzh8
MDt4PWNbdz4+Ml18MDt5PWorMXwwO3o9d31jW3E+PjJdPXg7dz1yfDA7Y1tzPj4yXT13O2NbdD4+
Ml09MDtqPWd8MDtnPWh8MDtoPW98MDtBPW8rNHwwO0I9YVttXXwwO209eDt4PWNbaj4+Ml18MDtM
MzEyMjp3aGlsZSgxKXtkb3tpZigoeHwwKT09MCl7Qz0wfWVsc2V7aWYoKGNbeCsxMj4+Ml18MCkh
PShjW3grMTY+PjJdfDApKXtDPXg7YnJlYWt9aWYoKGIwW2NbKGNbeD4+Ml18MCkrMzY+PjJdJjEy
N10oeCl8MCkhPS0xKXtDPXg7YnJlYWt9Y1tqPj4yXT0wO0M9MH19d2hpbGUoMCk7RD0oQ3wwKT09
MDtFPWNbZz4+Ml18MDtkb3tpZigoRXwwKT09MCl7Rj0yNTc5fWVsc2V7aWYoKGNbRSsxMj4+Ml18
MCkhPShjW0UrMTY+PjJdfDApKXtpZihEKXtHPUU7SD0wO2JyZWFrfWVsc2V7ST1tO0o9RTtLPTA7
YnJlYWsgTDMxMjJ9fWlmKChiMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDApPT0tMSl7
Y1tnPj4yXT0wO0Y9MjU3OTticmVha31lbHNle0w9KEV8MCk9PTA7aWYoRF5MKXtHPUU7SD1MO2Jy
ZWFrfWVsc2V7ST1tO0o9RTtLPUw7YnJlYWsgTDMxMjJ9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTI1
Nzkpe0Y9MDtpZihEKXtJPW07Sj0wO0s9MTticmVha31lbHNle0c9MDtIPTF9fUU9ZFtwXXwwO0w9
KEUmMXwwKT09MDtpZigoKGNbcT4+Ml18MCktbXwwKT09KChMP0U+Pj4xOmNbQT4+Ml18MCl8MCkp
e2lmKEwpe009RT4+PjE7Tj1FPj4+MX1lbHNle0U9Y1tBPj4yXXwwO009RTtOPUV9ZFIobyxNPDwx
LDApO2lmKChhW3BdJjEpPT0wKXtPPTEwfWVsc2V7Tz0oY1toPj4yXSYtMiktMXwwfWRSKG8sTyww
KTtpZigoYVtwXSYxKT09MCl7UD15fWVsc2V7UD1jW3o+PjJdfDB9Y1txPj4yXT1QK047UT1QfWVs
c2V7UT1tfUU9QysxMnwwO0w9Y1tFPj4yXXwwO1I9QysxNnwwO2lmKChMfDApPT0oY1tSPj4yXXww
KSl7Uz0oYjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwKSYyNTV9ZWxzZXtTPWFbTF18
MH1pZigoZnMoUyx1LFEscSx0LEIsbix3LHMsdil8MCkhPTApe0k9UTtKPUc7Sz1IO2JyZWFrfUw9
Y1tFPj4yXXwwO2lmKChMfDApPT0oY1tSPj4yXXwwKSl7Uj1jWyhjW0M+PjJdfDApKzQwPj4yXXww
O2IwW1ImMTI3XShDKXwwO209UTt4PUM7Y29udGludWV9ZWxzZXtjW0U+PjJdPUwrMTttPVE7eD1D
O2NvbnRpbnVlfX14PWRbbl18MDtpZigoeCYxfDApPT0wKXtUPXg+Pj4xfWVsc2V7VD1jW24rND4+
Ml18MH1kb3tpZigoVHwwKSE9MCl7eD1jW3M+PjJdfDA7aWYoKHgtcnwwKT49MTYwKXticmVha31R
PWNbdD4+Ml18MDtjW3M+PjJdPXgrNDtjW3g+PjJdPVF9fXdoaWxlKDApO2JbbD4+MV09ZnooSSxj
W3E+PjJdfDAsayx1KXwwO2Z0KG4sdyxjW3M+PjJdfDAsayk7ZG97aWYoRCl7VT0wfWVsc2V7aWYo
KGNbQysxMj4+Ml18MCkhPShjW0MrMTY+PjJdfDApKXtVPUM7YnJlYWt9aWYoKGIwW2NbKGNbQz4+
Ml18MCkrMzY+PjJdJjEyN10oQyl8MCkhPS0xKXtVPUM7YnJlYWt9Y1tqPj4yXT0wO1U9MH19d2hp
bGUoMCk7aj0oVXwwKT09MDtMMzE4Mjpkb3tpZihLKXtGPTI2MjB9ZWxzZXtkb3tpZigoY1tKKzEy
Pj4yXXwwKT09KGNbSisxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYxMjdd
KEopfDApIT0tMSl7YnJlYWt9Y1tnPj4yXT0wO0Y9MjYyMDticmVhayBMMzE4Mn19d2hpbGUoMCk7
aWYoIShqXihKfDApPT0wKSl7YnJlYWt9Vj1lfDA7Y1tWPj4yXT1VO2RQKG8pO2RQKG4pO2k9Zjty
ZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT0yNjIwKXtpZihqKXticmVha31WPWV8MDtjW1Y+
PjJdPVU7ZFAobyk7ZFAobik7aT1mO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7
Vj1lfDA7Y1tWPj4yXT1VO2RQKG8pO2RQKG4pO2k9ZjtyZXR1cm59ZnVuY3Rpb24gZnooYixkLGUs
Zil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTA7Zz1pO2k9
aSs4fDA7aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganww
fWlmKChhW2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1rPWNbKGJ3KCl8
MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygx
NjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9YUko
YnwwLGh8MCxmfDAsY1syOTU4XXwwKXwwO2Y9SztiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9
PTApe2NbKGJ3KCl8MCk+PjJdPWt9aWYoKGNbaD4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0w
O2k9ZztyZXR1cm4ganwwfWQ9MDtpZigoYnwwKT09MzR8KGY+Pj4wPmQ+Pj4wfGY+Pj4wPT1kPj4+
MCZsPj4+MD42NTUzNT4+PjApKXtjW2U+PjJdPTQ7aj0tMTtpPWc7cmV0dXJuIGp8MH1lbHNle2o9
bCY2NTUzNTtpPWc7cmV0dXJuIGp8MH1yZXR1cm4gMH1mdW5jdGlvbiBmQShiLGUsZixnLGgsaixr
KXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0w
LFE9MCxSPTAsUz0wLFQ9MCxVPTA7ZT1pO2k9aSs3MnwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09
Y1tsPj4yXTtsPWUrMzJ8MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgNjQ6e3Q9ODticmVha307Y2Fz
ZSAwOnt0PTA7YnJlYWt9O2Nhc2UgODp7dD0xNjticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7
ZngobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2
PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5
PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7
ej1uKzR8MDtBPWFbbF18MDtsPXc7dz1jW2g+PjJdfDA7TDMyMzI6d2hpbGUoMSl7ZG97aWYoKHd8
MCk9PTApe0I9MH1lbHNle2lmKChjW3crMTI+PjJdfDApIT0oY1t3KzE2Pj4yXXwwKSl7Qj13O2Jy
ZWFrfWlmKChiMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDApIT0tMSl7Qj13O2JyZWFr
fWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1jW2Y+PjJdfDA7ZG97aWYoKER8
MCk9PTApe0U9MjY2OX1lbHNle2lmKChjW0QrMTI+PjJdfDApIT0oY1tEKzE2Pj4yXXwwKSl7aWYo
Qyl7Rj1EO0c9MDticmVha31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFrIEwzMjMyfX1pZigoYjBbY1so
Y1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+Ml09MDtFPTI2Njk7YnJlYWt9
ZWxzZXtLPShEfDApPT0wO2lmKENeSyl7Rj1EO0c9SzticmVha31lbHNle0g9bDtJPUQ7Sj1LO2Jy
ZWFrIEwzMjMyfX19fXdoaWxlKDApO2lmKChFfDApPT0yNjY5KXtFPTA7aWYoQyl7SD1sO0k9MDtK
PTE7YnJlYWt9ZWxzZXtGPTA7Rz0xfX1EPWRbb118MDtLPShEJjF8MCk9PTA7aWYoKChjW3A+PjJd
fDApLWx8MCk9PSgoSz9EPj4+MTpjW3o+PjJdfDApfDApKXtpZihLKXtMPUQ+Pj4xO009RD4+PjF9
ZWxzZXtEPWNbej4+Ml18MDtMPUQ7TT1EfWRSKG4sTDw8MSwwKTtpZigoYVtvXSYxKT09MCl7Tj0x
MH1lbHNle049KGNbZz4+Ml0mLTIpLTF8MH1kUihuLE4sMCk7aWYoKGFbb10mMSk9PTApe089eH1l
bHNle089Y1t5Pj4yXXwwfWNbcD4+Ml09TytNO1A9T31lbHNle1A9bH1EPUIrMTJ8MDtLPWNbRD4+
Ml18MDtRPUIrMTZ8MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1I9KGIwW2NbKGNbQj4+Ml18MCkr
MzY+PjJdJjEyN10oQil8MCkmMjU1fWVsc2V7Uj1hW0tdfDB9aWYoKGZzKFIsdCxQLHAscyxBLG0s
dixyLHUpfDApIT0wKXtIPVA7ST1GO0o9RzticmVha31LPWNbRD4+Ml18MDtpZigoS3wwKT09KGNb
UT4+Ml18MCkpe1E9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtRJjEyN10oQil8MDtsPVA7dz1C
O2NvbnRpbnVlfWVsc2V7Y1tEPj4yXT1LKzE7bD1QO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYo
KHcmMXwwKT09MCl7Uz13Pj4+MX1lbHNle1M9Y1ttKzQ+PjJdfDB9ZG97aWYoKFN8MCkhPTApe3c9
Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9UD1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7
Y1t3Pj4yXT1QfX13aGlsZSgwKTtjW2s+PjJdPWZCKEgsY1twPj4yXXwwLGosdCl8MDtmdChtLHYs
Y1tyPj4yXXwwLGopO2Rve2lmKEMpe1Q9MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2
Pj4yXXwwKSl7VD1CO2JyZWFrfWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDAp
IT0tMSl7VD1CO2JyZWFrfWNbaD4+Ml09MDtUPTB9fXdoaWxlKDApO2g9KFR8MCk9PTA7TDMyOTI6
ZG97aWYoSil7RT0yNzEwfWVsc2V7ZG97aWYoKGNbSSsxMj4+Ml18MCk9PShjW0krMTY+PjJdfDAp
KXtpZigoYjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+
Ml09MDtFPTI3MTA7YnJlYWsgTDMyOTJ9fXdoaWxlKDApO2lmKCEoaF4oSXwwKT09MCkpe2JyZWFr
fVU9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigo
RXwwKT09MjcxMCl7aWYoaCl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTty
ZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1U9YnwwO2NbVT4+Ml09VDtkUChuKTtk
UChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZCKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wO2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0o
ZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1pZigoYVtiXXwwKT09NDUpe2NbZT4+
Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9az1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJd
PTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5
NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8
MDtmPUs7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlm
KChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1kPTA7aWYo
KGJ8MCk9PTM0fChmPj4+MD5kPj4+MHxmPj4+MD09ZD4+PjAmbD4+PjA+LTE+Pj4wKSl7Y1tlPj4y
XT00O2o9LTE7aT1nO3JldHVybiBqfDB9ZWxzZXtqPWw7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9
ZnVuY3Rpb24gZkMoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9
MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wO2U9aTtpPWkrNzJ8
MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2
fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHww
KXtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJl
YWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIo
biwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4r
OHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tz
Pj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXww
O0wzMzQyOndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXww
KSE9KGNbdysxNj4+Ml18MCkpe0I9dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0m
MTI3XSh3KXwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDAp
PT0wO0Q9Y1tmPj4yXXwwO2Rve2lmKChEfDApPT0wKXtFPTI3NTl9ZWxzZXtpZigoY1tEKzEyPj4y
XXwwKSE9KGNbRCsxNj4+Ml18MCkpe2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9
MDticmVhayBMMzM0Mn19aWYoKGIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0x
KXtjW2Y+PjJdPTA7RT0yNzU5O2JyZWFrfWVsc2V7Sz0oRHwwKT09MDtpZihDXkspe0Y9RDtHPUs7
YnJlYWt9ZWxzZXtIPWw7ST1EO0o9SzticmVhayBMMzM0Mn19fX13aGlsZSgwKTtpZigoRXwwKT09
Mjc1OSl7RT0wO2lmKEMpe0g9bDtJPTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7
Sz0oRCYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEs/RD4+PjE6Y1t6Pj4yXXwwKXww
KSl7aWYoSyl7TD1EPj4+MTtNPUQ+Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TD1EO009RH1kUihuLEw8
PDEsMCk7aWYoKGFbb10mMSk9PTApe049MTB9ZWxzZXtOPShjW2c+PjJdJi0yKS0xfDB9ZFIobixO
LDApO2lmKChhW29dJjEpPT0wKXtPPXh9ZWxzZXtPPWNbeT4+Ml18MH1jW3A+PjJdPU8rTTtQPU99
ZWxzZXtQPWx9RD1CKzEyfDA7Sz1jW0Q+PjJdfDA7UT1CKzE2fDA7aWYoKEt8MCk9PShjW1E+PjJd
fDApKXtSPShiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1I9YVtL
XXwwfWlmKChmcyhSLHQsUCxwLHMsQSxtLHYscix1KXwwKSE9MCl7SD1QO0k9RjtKPUc7YnJlYWt9
Sz1jW0Q+PjJdfDA7aWYoKEt8MCk9PShjW1E+PjJdfDApKXtRPWNbKGNbQj4+Ml18MCkrNDA+PjJd
fDA7YjBbUSYxMjddKEIpfDA7bD1QO3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09SysxO2w9UDt3
PUI7Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1M9dz4+PjF9ZWxzZXtTPWNbbSs0
Pj4yXXwwfWRve2lmKChTfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFr
fVA9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09UH19d2hpbGUoMCk7Y1trPj4yXT1mRChI
LGNbcD4+Ml18MCxqLHQpfDA7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihDKXtUPTB9ZWxzZXtp
ZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe1Q9QjticmVha31pZigoYjBbY1soY1tC
Pj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSE9LTEpe1Q9QjticmVha31jW2g+PjJdPTA7VD0wfX13
aGlsZSgwKTtoPShUfDApPT0wO0wzNDAyOmRve2lmKEope0U9MjgwMH1lbHNle2Rve2lmKChjW0kr
MTI+PjJdfDApPT0oY1tJKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbST4+Ml18MCkrMzY+PjJdJjEy
N10oSSl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7RT0yODAwO2JyZWFrIEwzNDAyfX13aGlsZSgw
KTtpZighKGheKEl8MCk9PTApKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1l
O3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEV8MCk9PTI4MDApe2lmKGgpe2JyZWFrfVU9YnwwO2Nb
VT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18
MjtVPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmRChiLGQs
ZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MDtnPWk7
aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBq
fDB9aWYoKGFbYl18MCk9PTQ1KXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWs9Y1soYnco
KXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJj
KDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1h
SShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnww
KT09MCl7Y1soYncoKXwwKT4+Ml09a31pZigoY1toPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtq
PTA7aT1nO3JldHVybiBqfDB9ZD0wO2lmKChifDApPT0zNHwoZj4+PjA+ZD4+PjB8Zj4+PjA9PWQ+
Pj4wJmw+Pj4wPi0xPj4+MCkpe2NbZT4+Ml09NDtqPS0xO2k9ZztyZXR1cm4ganwwfWVsc2V7aj1s
O2k9ZztyZXR1cm4ganwwfXJldHVybiAwfWZ1bmN0aW9uIGZFKGIsZSxmLGcsaCxqLGspe2I9Ynww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxE
PTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9
MCxUPTAsVT0wLFY9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJd
O2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztx
PWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9
MDticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmeChtLGgs
dSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7
dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+
PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHww
O0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMzQ1Mjp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7
Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3crMTY+PjJdfDApKXtCPXc7YnJlYWt9aWYo
KGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4y
XT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNbZj4+Ml18MDtkb3tpZigoRHwwKT09MCl7
RT0yODQ5fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShjW0QrMTY+PjJdfDApKXtpZihDKXtGPUQ7
Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsgTDM0NTJ9fWlmKChiMFtjWyhjW0Q+PjJd
fDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4yXT0wO0U9Mjg0OTticmVha31lbHNle0w9
KER8MCk9PTA7aWYoQ15MKXtGPUQ7Rz1MO2JyZWFrfWVsc2V7SD1sO0k9RDtKPUw7YnJlYWsgTDM0
NTJ9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTI4NDkpe0U9MDtpZihDKXtIPWw7ST0wO0o9MTticmVh
a31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0w9KEQmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHww
KT09KChMP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEwpe009RD4+PjE7Tj1EPj4+MX1lbHNle0Q9
Y1t6Pj4yXXwwO009RDtOPUR9ZFIobixNPDwxLDApO2lmKChhW29dJjEpPT0wKXtPPTEwfWVsc2V7
Tz0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTywwKTtpZigoYVtvXSYxKT09MCl7UD14fWVsc2V7UD1j
W3k+PjJdfDB9Y1twPj4yXT1QK047UT1QfWVsc2V7UT1sfUQ9QisxMnwwO0w9Y1tEPj4yXXwwO1I9
QisxNnwwO2lmKChMfDApPT0oY1tSPj4yXXwwKSl7Uz0oYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0m
MTI3XShCKXwwKSYyNTV9ZWxzZXtTPWFbTF18MH1pZigoZnMoUyx0LFEscCxzLEEsbSx2LHIsdSl8
MCkhPTApe0g9UTtJPUY7Sj1HO2JyZWFrfUw9Y1tEPj4yXXwwO2lmKChMfDApPT0oY1tSPj4yXXww
KSl7Uj1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1ImMTI3XShCKXwwO2w9UTt3PUI7Y29udGlu
dWV9ZWxzZXtjW0Q+PjJdPUwrMTtsPVE7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDAp
PT0wKXtUPXc+Pj4xfWVsc2V7VD1jW20rND4+Ml18MH1kb3tpZigoVHwwKSE9MCl7dz1jW3I+PjJd
fDA7aWYoKHctcXwwKT49MTYwKXticmVha31RPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJd
PVF9fXdoaWxlKDApO3M9ZkYoSCxjW3A+PjJdfDAsaix0KXwwO2Nbaz4+Ml09cztjW2srND4+Ml09
SztmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEMpe1U9MH1lbHNle2lmKChjW0IrMTI+PjJdfDAp
IT0oY1tCKzE2Pj4yXXwwKSl7VT1CO2JyZWFrfWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYx
MjddKEIpfDApIT0tMSl7VT1CO2JyZWFrfWNbaD4+Ml09MDtVPTB9fXdoaWxlKDApO2g9KFV8MCk9
PTA7TDM1MTI6ZG97aWYoSil7RT0yODkwfWVsc2V7ZG97aWYoKGNbSSsxMj4+Ml18MCk9PShjW0kr
MTY+PjJdfDApKXtpZigoYjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwKSE9LTEpe2Jy
ZWFrfWNbZj4+Ml09MDtFPTI4OTA7YnJlYWsgTDM1MTJ9fXdoaWxlKDApO2lmKCEoaF4oSXwwKT09
MCkpe2JyZWFrfVY9YnwwO2NbVj4+Ml09VTtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgw
KTtkb3tpZigoRXwwKT09Mjg5MCl7aWYoaCl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQ
KG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1Y9YnwwO2NbVj4+Ml09
VTtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZGKGIsZCxlLGYpe2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wO2c9aTtpPWkr
OHwwO2g9Z3wwO2Rve2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtrPTB9ZWxzZXtpZigo
YVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7az0wO2JyZWFrfWw9Y1soYncoKXwwKT4+Ml18MDtj
WyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09
MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bT1hSShifDAsaHwwLGZ8
MCxjWzI5NThdfDApfDA7bj1LO289Y1soYncoKXwwKT4+Ml18MDtpZigob3wwKT09MCl7Y1soYnco
KXwwKT4+Ml09bH1pZigoY1toPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtqPTA7az0wO2JyZWFr
fWlmKChvfDApIT0zNCl7aj1uO2s9bTticmVha31jW2U+PjJdPTQ7aj0tMTtrPS0xfX13aGlsZSgw
KTtpPWc7cmV0dXJuKEs9aixrKXwwfWZ1bmN0aW9uIGZHKGIsZSxmLGcsaCxpLGosayxsLG0sbixv
KXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDtt
PW18MDtuPW58MDtvPW98MDt2YXIgcD0wLHE9MCxyPTAscz0wLHQ9MDtpZihiPDwyND4+MjQ9PWk8
PDI0Pj4yNCl7aWYoKGFbZV0mMSk9PTApe3A9LTE7cmV0dXJuIHB8MH1hW2VdPTA7aT1jW2g+PjJd
fDA7Y1toPj4yXT1pKzE7YVtpXT00NjtpPWRba118MDtpZigoaSYxfDApPT0wKXtxPWk+Pj4xfWVs
c2V7cT1jW2srND4+Ml18MH1pZigocXwwKT09MCl7cD0wO3JldHVybiBwfDB9cT1jW20+PjJdfDA7
aWYoKHEtbHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8MH1pPWNbbj4+Ml18MDtjW20+PjJdPXErNDtj
W3E+PjJdPWk7cD0wO3JldHVybiBwfDB9ZG97aWYoYjw8MjQ+PjI0PT1qPDwyND4+MjQpe2k9ZFtr
XXwwO2lmKChpJjF8MCk9PTApe3I9aT4+PjF9ZWxzZXtyPWNbays0Pj4yXXwwfWlmKChyfDApPT0w
KXticmVha31pZigoYVtlXSYxKT09MCl7cD0tMTtyZXR1cm4gcHwwfWk9Y1ttPj4yXXwwO2lmKChp
LWx8MCk+PTE2MCl7cD0wO3JldHVybiBwfDB9cT1jW24+PjJdfDA7Y1ttPj4yXT1pKzQ7Y1tpPj4y
XT1xO2Nbbj4+Ml09MDtwPTA7cmV0dXJuIHB8MH19d2hpbGUoMCk7cj1vKzMyfDA7aj1vO3doaWxl
KDEpe2lmKChqfDApPT0ocnwwKSl7cz1yO2JyZWFrfWlmKChhW2pdfDApPT1iPDwyND4+MjQpe3M9
ajticmVha31lbHNle2o9aisxfDB9fWo9cy1vfDA7aWYoKGp8MCk+MzEpe3A9LTE7cmV0dXJuIHB8
MH1vPWFbOTc0NCtqfDBdfDA7c3dpdGNoKGp8MCl7Y2FzZSAyNTpjYXNlIDI0OntzPWNbaD4+Ml18
MDtkb3tpZigoc3wwKSE9KGd8MCkpe2lmKChhW3MtMXwwXSY5NXwwKT09KGFbZl0mMTI3fDApKXti
cmVha31lbHNle3A9LTF9cmV0dXJuIHB8MH19d2hpbGUoMCk7Y1toPj4yXT1zKzE7YVtzXT1vO3A9
MDtyZXR1cm4gcHwwfTtjYXNlIDIyOmNhc2UgMjM6e2FbZl09ODA7cz1jW2g+PjJdfDA7Y1toPj4y
XT1zKzE7YVtzXT1vO3A9MDtyZXR1cm4gcHwwfTtkZWZhdWx0OntzPWFbZl18MDtkb3tpZigobyY5
NXwwKT09KHM8PDI0Pj4yNHwwKSl7YVtmXT1zfC0xMjg7aWYoKGFbZV0mMSk9PTApe2JyZWFrfWFb
ZV09MDtnPWRba118MDtpZigoZyYxfDApPT0wKXt0PWc+Pj4xfWVsc2V7dD1jW2srND4+Ml18MH1p
ZigodHwwKT09MCl7YnJlYWt9Zz1jW20+PjJdfDA7aWYoKGctbHwwKT49MTYwKXticmVha31iPWNb
bj4+Ml18MDtjW20+PjJdPWcrNDtjW2c+PjJdPWJ9fXdoaWxlKDApO209Y1toPj4yXXwwO2NbaD4+
Ml09bSsxO2FbbV09bztpZigoanwwKT4yMSl7cD0wO3JldHVybiBwfDB9Y1tuPj4yXT0oY1tuPj4y
XXwwKSsxO3A9MDtyZXR1cm4gcHwwfX1yZXR1cm4gMH1mdW5jdGlvbiBmSChiLGUsZixoLGosayxs
KXtiPWJ8MDtlPWV8MDtmPWZ8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0w
LFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MDtlPWk7aT1pKzgwfDA7bT1mO2Y9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWg7aD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1toPj4yXT1jW20+PjJdO209ZSszMnwwO249ZSs0MHwwO289ZSs0OHwwO3A9ZSs2NHwwO3E9cDty
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtp
PWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2ZKKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtk
UihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9
cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtj
W3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1ofDA7aD1wfDA7Qz1wKzR8MDtEPWFbbV18
MDttPWFbbl18MDtuPXo7ej1jW2o+PjJdfDA7TDM2MTU6d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTAp
e0U9MH1lbHNle2lmKChjW3orMTI+PjJdfDApIT0oY1t6KzE2Pj4yXXwwKSl7RT16O2JyZWFrfWlm
KChiMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDApIT0tMSl7RT16O2JyZWFrfWNbaj4+
Ml09MDtFPTB9fXdoaWxlKDApO0Y9KEV8MCk9PTA7Rz1jW2Y+PjJdfDA7ZG97aWYoKEd8MCk9PTAp
e0g9Mjk3OH1lbHNle2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4yXXwwKSl7aWYoRil7ST1H
O0o9MDticmVha31lbHNle0s9bjtMPUc7TT0wO2JyZWFrIEwzNjE1fX1pZigoYjBbY1soY1tHPj4y
XXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2NbZj4+Ml09MDtIPTI5Nzg7YnJlYWt9ZWxzZXtO
PShHfDApPT0wO2lmKEZeTil7ST1HO0o9TjticmVha31lbHNle0s9bjtMPUc7TT1OO2JyZWFrIEwz
NjE1fX19fXdoaWxlKDApO2lmKChIfDApPT0yOTc4KXtIPTA7aWYoRil7Sz1uO0w9MDtNPTE7YnJl
YWt9ZWxzZXtJPTA7Sj0xfX1HPWRbcV18MDtOPShHJjF8MCk9PTA7aWYoKChjW3I+PjJdfDApLW58
MCk9PSgoTj9HPj4+MTpjW0M+PjJdfDApfDApKXtpZihOKXtPPUc+Pj4xO1A9Rz4+PjF9ZWxzZXtH
PWNbQz4+Ml18MDtPPUc7UD1HfWRSKHAsTzw8MSwwKTtpZigoYVtxXSYxKT09MCl7UT0xMH1lbHNl
e1E9KGNbaD4+Ml0mLTIpLTF8MH1kUihwLFEsMCk7aWYoKGFbcV0mMSk9PTApe1I9QX1lbHNle1I9
Y1tCPj4yXXwwfWNbcj4+Ml09UitQO1M9Un1lbHNle1M9bn1HPUUrMTJ8MDtOPWNbRz4+Ml18MDtU
PUUrMTZ8MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1U9KGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJd
JjEyN10oRSl8MCkmMjU1fWVsc2V7VT1hW05dfDB9aWYoKGZHKFUsdix3LFMscixELG0sbyx5LHQs
dSx4KXwwKSE9MCl7Sz1TO0w9STtNPUo7YnJlYWt9Tj1jW0c+PjJdfDA7aWYoKE58MCk9PShjW1Q+
PjJdfDApKXtUPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbVCYxMjddKEUpfDA7bj1TO3o9RTtj
b250aW51ZX1lbHNle2NbRz4+Ml09TisxO249Uzt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6
JjF8MCk9PTApe1Y9ej4+PjF9ZWxzZXtWPWNbbys0Pj4yXXwwfWRve2lmKChWfDApIT0wKXtpZigo
YVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVha31TPWNb
dT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVN9fXdoaWxlKDApO2dbbD4+Ml09K2ZJKEssY1ty
Pj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoRil7Vz0wfWVsc2V7aWYoKGNbRSsx
Mj4+Ml18MCkhPShjW0UrMTY+PjJdfDApKXtXPUU7YnJlYWt9aWYoKGIwW2NbKGNbRT4+Ml18MCkr
MzY+PjJdJjEyN10oRSl8MCkhPS0xKXtXPUU7YnJlYWt9Y1tqPj4yXT0wO1c9MH19d2hpbGUoMCk7
aj0oV3wwKT09MDtMMzY3Njpkb3tpZihNKXtIPTMwMjB9ZWxzZXtkb3tpZigoY1tMKzEyPj4yXXww
KT09KGNbTCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYxMjddKEwpfDAp
IT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0g9MzAyMDticmVhayBMMzY3Nn19d2hpbGUoMCk7aWYoIShq
XihMfDApPT0wKSl7YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59
fXdoaWxlKDApO2Rve2lmKChIfDApPT0zMDIwKXtpZihqKXticmVha31YPWJ8MDtjW1g+PjJdPVc7
ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7WD1ifDA7
Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkkoYixkLGUpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MC4wLGo9MCxrPTAuMDtmPWk7aT1pKzh8MDtnPWZ8
MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7cmV0dXJuK2h9aj1jWyhidygp
fDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMo
MTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtrPStr
VyhiLGcsY1syOTU4XXwwKTtiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8
MCk+PjJdPWp9aWYoKGNbZz4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVy
bitofWlmKChifDApPT0zNCl7Y1tlPj4yXT00fWg9aztpPWY7cmV0dXJuK2h9ZnVuY3Rpb24gZkoo
YixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDtoPWk7aT1pKzQwfDA7aj1ofDA7az1oKzE2
fDA7bD1oKzMyfDA7ZWoobCxkKTtkPWx8MDtsPWNbZD4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEp
e2Nbaz4+Ml09MTU2OTY7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1Njk2LGssOTYpfWs9
KGNbMzkyNV18MCktMXwwO209Y1tsKzg+PjJdfDA7ZG97aWYoKGNbbCsxMj4+Ml18MCktbT4+Mj4+
PjA+az4+PjApe249Y1ttKyhrPDwyKT4+Ml18MDtpZigobnwwKT09MCl7YnJlYWt9bz1uO3A9Y1so
Y1tuPj4yXXwwKSszMj4+Ml18MDtjYVtwJjE1XShvLDk3NDQsOTc3NixlKXwwO289Y1tkPj4yXXww
O2lmKChjWzM4MjhdfDApIT0tMSl7Y1tqPj4yXT0xNTMxMjtjW2orND4+Ml09MTI7Y1tqKzg+PjJd
PTA7ZFcoMTUzMTIsaiw5Nil9cD0oY1szODI5XXwwKS0xfDA7bj1jW28rOD4+Ml18MDtkb3tpZigo
Y1tvKzEyPj4yXXwwKS1uPj4yPj4+MD5wPj4+MCl7cT1jW24rKHA8PDIpPj4yXXwwO2lmKChxfDAp
PT0wKXticmVha31yPXE7cz1xO2FbZl09YjBbY1soY1tzPj4yXXwwKSsxMj4+Ml0mMTI3XShyKXww
O2FbZ109YjBbY1soY1tzPj4yXXwwKSsxNj4+Ml0mMTI3XShyKXwwO2JaW2NbKGNbcT4+Ml18MCkr
MjA+PjJdJjEyN10oYixyKTtyPWNbZD4+Ml18MDtkeihyKXwwO2k9aDtyZXR1cm59fXdoaWxlKDAp
O3A9Yk8oNCl8MDtrcShwKTtibChwfDAsODE3NiwxMzQpfX13aGlsZSgwKTtoPWJPKDQpfDA7a3Eo
aCk7YmwoaHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmSyhiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9
MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0w
LFU9MCxWPTAsVz0wLFg9MDtlPWk7aT1pKzgwfDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZj4+Ml09Y1ttPj4yXTttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+
PjJdO209ZSszMnwwO249ZSs0MHwwO289ZSs0OHwwO3A9ZSs2NHwwO3E9cDtyPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3
Pj4zPDwzO3g9ZXwwO2ZKKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lm
KChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+
PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2
XT0xO2Fbd109Njk7aj1mfDA7Zj1nfDA7Zz1wfDA7Qz1wKzR8MDtEPWFbbV18MDttPWFbbl18MDtu
PXo7ej1jW2o+PjJdfDA7TDM3Mzc6d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle2lm
KChjW3orMTI+PjJdfDApIT0oY1t6KzE2Pj4yXXwwKSl7RT16O2JyZWFrfWlmKChiMFtjWyhjW3o+
PjJdfDApKzM2Pj4yXSYxMjddKHopfDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdo
aWxlKDApO0Y9KEV8MCk9PTA7Rz1jW2Y+PjJdfDA7ZG97aWYoKEd8MCk9PTApe0g9MzA3OX1lbHNl
e2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4yXXwwKSl7aWYoRil7ST1HO0o9MDticmVha31l
bHNle0s9bjtMPUc7TT0wO2JyZWFrIEwzNzM3fX1pZigoYjBbY1soY1tHPj4yXXwwKSszNj4+Ml0m
MTI3XShHKXwwKT09LTEpe2NbZj4+Ml09MDtIPTMwNzk7YnJlYWt9ZWxzZXtOPShHfDApPT0wO2lm
KEZeTil7ST1HO0o9TjticmVha31lbHNle0s9bjtMPUc7TT1OO2JyZWFrIEwzNzM3fX19fXdoaWxl
KDApO2lmKChIfDApPT0zMDc5KXtIPTA7aWYoRil7Sz1uO0w9MDtNPTE7YnJlYWt9ZWxzZXtJPTA7
Sj0xfX1HPWRbcV18MDtOPShHJjF8MCk9PTA7aWYoKChjW3I+PjJdfDApLW58MCk9PSgoTj9HPj4+
MTpjW0M+PjJdfDApfDApKXtpZihOKXtPPUc+Pj4xO1A9Rz4+PjF9ZWxzZXtHPWNbQz4+Ml18MDtP
PUc7UD1HfWRSKHAsTzw8MSwwKTtpZigoYVtxXSYxKT09MCl7UT0xMH1lbHNle1E9KGNbZz4+Ml0m
LTIpLTF8MH1kUihwLFEsMCk7aWYoKGFbcV0mMSk9PTApe1I9QX1lbHNle1I9Y1tCPj4yXXwwfWNb
cj4+Ml09UitQO1M9Un1lbHNle1M9bn1HPUUrMTJ8MDtOPWNbRz4+Ml18MDtUPUUrMTZ8MDtpZigo
TnwwKT09KGNbVD4+Ml18MCkpe1U9KGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkm
MjU1fWVsc2V7VT1hW05dfDB9aWYoKGZHKFUsdix3LFMscixELG0sbyx5LHQsdSx4KXwwKSE9MCl7
Sz1TO0w9STtNPUo7YnJlYWt9Tj1jW0c+PjJdfDA7aWYoKE58MCk9PShjW1Q+PjJdfDApKXtUPWNb
KGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbVCYxMjddKEUpfDA7bj1TO3o9RTtjb250aW51ZX1lbHNl
e2NbRz4+Ml09TisxO249Uzt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6JjF8MCk9PTApe1Y9
ej4+PjF9ZWxzZXtWPWNbbys0Pj4yXXwwfWRve2lmKChWfDApIT0wKXtpZigoYVt2XSYxKT09MCl7
YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVha31TPWNbdT4+Ml18MDtjW3Q+
PjJdPXorNDtjW3o+PjJdPVN9fXdoaWxlKDApO2hbbD4+M109K2ZMKEssY1tyPj4yXXwwLGspO2Z0
KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoRil7Vz0wfWVsc2V7aWYoKGNbRSsxMj4+Ml18MCkhPShj
W0UrMTY+PjJdfDApKXtXPUU7YnJlYWt9aWYoKGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10o
RSl8MCkhPS0xKXtXPUU7YnJlYWt9Y1tqPj4yXT0wO1c9MH19d2hpbGUoMCk7aj0oV3wwKT09MDtM
Mzc5ODpkb3tpZihNKXtIPTMxMjF9ZWxzZXtkb3tpZigoY1tMKzEyPj4yXXwwKT09KGNbTCsxNj4+
Ml18MCkpe2lmKChiMFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYxMjddKEwpfDApIT0tMSl7YnJlYWt9
Y1tmPj4yXT0wO0g9MzEyMTticmVhayBMMzc5OH19d2hpbGUoMCk7aWYoIShqXihMfDApPT0wKSl7
YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rv
e2lmKChIfDApPT0zMTIxKXtpZihqKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7
aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7WD1ifDA7Y1tYPj4yXT1XO2RQ
KHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkwoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXww
O3ZhciBmPTAsZz0wLGg9MC4wLGo9MCxrPTAuMDtmPWk7aT1pKzh8MDtnPWZ8MDtpZigoYnwwKT09
KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7cmV0dXJuK2h9aj1jWyhidygpfDApPj4yXXwwO2Nb
KGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0w
KXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtrPStrVyhiLGcsY1syOTU4
XXwwKTtiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWp9aWYo
KGNbZz4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVybitofWlmKChifDAp
IT0zNCl7aD1rO2k9ZjtyZXR1cm4raH1jW2U+PjJdPTQ7aD1rO2k9ZjtyZXR1cm4raH1mdW5jdGlv
biBmTShiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDts
PWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxN
PTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MDtlPWk7aT1pKzgw
fDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWc7Zz1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+PjJdO209ZSszMnwwO249ZSs0MHwwO289ZSs0
OHwwO3A9ZSs2NHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXww
O2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2ZKKG8saix4LG0sbik7
ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtB
PXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16
O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1nfDA7Zz1w
fDA7Qz1wKzR8MDtEPWFbbV18MDttPWFbbl18MDtuPXo7ej1jW2o+PjJdfDA7TDY6d2hpbGUoMSl7
ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle2lmKChjW3orMTI+PjJdfDApIT0oY1t6KzE2Pj4yXXww
KSl7RT16O2JyZWFrfWlmKChiMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDApIT0tMSl7
RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0Y9KEV8MCk9PTA7Rz1jW2Y+PjJdfDA7
ZG97aWYoKEd8MCk9PTApe0g9MTd9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18
MCkpe2lmKEYpe0k9RztKPTA7YnJlYWt9ZWxzZXtLPW47TD1HO009MDticmVhayBMNn19aWYoKGIw
W2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCk9PS0xKXtjW2Y+PjJdPTA7SD0xNzticmVh
a31lbHNle049KEd8MCk9PTA7aWYoRl5OKXtJPUc7Sj1OO2JyZWFrfWVsc2V7Sz1uO0w9RztNPU47
YnJlYWsgTDZ9fX19d2hpbGUoMCk7aWYoKEh8MCk9PTE3KXtIPTA7aWYoRil7Sz1uO0w9MDtNPTE7
YnJlYWt9ZWxzZXtJPTA7Sj0xfX1HPWRbcV18MDtOPShHJjF8MCk9PTA7aWYoKChjW3I+PjJdfDAp
LW58MCk9PSgoTj9HPj4+MTpjW0M+PjJdfDApfDApKXtpZihOKXtPPUc+Pj4xO1A9Rz4+PjF9ZWxz
ZXtHPWNbQz4+Ml18MDtPPUc7UD1HfWRSKHAsTzw8MSwwKTtpZigoYVtxXSYxKT09MCl7UT0xMH1l
bHNle1E9KGNbZz4+Ml0mLTIpLTF8MH1kUihwLFEsMCk7aWYoKGFbcV0mMSk9PTApe1I9QX1lbHNl
e1I9Y1tCPj4yXXwwfWNbcj4+Ml09UitQO1M9Un1lbHNle1M9bn1HPUUrMTJ8MDtOPWNbRz4+Ml18
MDtUPUUrMTZ8MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1U9KGIwW2NbKGNbRT4+Ml18MCkrMzY+
PjJdJjEyN10oRSl8MCkmMjU1fWVsc2V7VT1hW05dfDB9aWYoKGZHKFUsdix3LFMscixELG0sbyx5
LHQsdSx4KXwwKSE9MCl7Sz1TO0w9STtNPUo7YnJlYWt9Tj1jW0c+PjJdfDA7aWYoKE58MCk9PShj
W1Q+PjJdfDApKXtUPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbVCYxMjddKEUpfDA7bj1TO3o9
RTtjb250aW51ZX1lbHNle2NbRz4+Ml09TisxO249Uzt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lm
KCh6JjF8MCk9PTApe1Y9ej4+PjF9ZWxzZXtWPWNbbys0Pj4yXXwwfWRve2lmKChWfDApIT0wKXtp
ZigoYVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVha31T
PWNbdT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVN9fXdoaWxlKDApO2hbbD4+M109K2ZOKEss
Y1tyPj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoRil7Vz0wfWVsc2V7aWYoKGNb
RSsxMj4+Ml18MCkhPShjW0UrMTY+PjJdfDApKXtXPUU7YnJlYWt9aWYoKGIwW2NbKGNbRT4+Ml18
MCkrMzY+PjJdJjEyN10oRSl8MCkhPS0xKXtXPUU7YnJlYWt9Y1tqPj4yXT0wO1c9MH19d2hpbGUo
MCk7aj0oV3wwKT09MDtMNjc6ZG97aWYoTSl7SD01OX1lbHNle2Rve2lmKChjW0wrMTI+PjJdfDAp
PT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MCkh
PS0xKXticmVha31jW2Y+PjJdPTA7SD01OTticmVhayBMNjd9fXdoaWxlKDApO2lmKCEoal4oTHww
KT09MCkpe2JyZWFrfVg9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGls
ZSgwKTtkb3tpZigoSHwwKT09NTkpe2lmKGope2JyZWFrfVg9YnwwO2NbWD4+Ml09VztkUChwKTtk
UChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjtYPWJ8MDtjW1g+PjJd
PVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmTihiLGQsZSl7Yj1ifDA7ZD1kfDA7
ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4wO2Y9aTtpPWkrOHwwO2c9ZnwwO2lmKChi
fDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9ZjtyZXR1cm4raH1qPWNbKGJ3KCl8MCk+PjJd
fDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2s9K2tXKGIsZyxj
WzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09
an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7cmV0dXJuK2h9aWYo
KGJ8MCkhPTM0KXtoPWs7aT1mO3JldHVybitofWNbZT4+Ml09NDtoPWs7aT1mO3JldHVybitofWZ1
bmN0aW9uIGZPKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGZQKGEpe2E9
YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZRKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTA7ZT1pO2k9aSs2NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+
PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTts
PWV8MDttPWUrMTZ8MDtuPWUrNDh8MDtvPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztwPWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cj1pO2k9aSsxNjB8MDtzPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8Mzt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztrJChufDAsMCwxMik7
dT1wO2VqKG8saCk7aD1vfDA7bz1jW2g+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJd
PTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVd
fDApLTF8MDt2PWNbbys4Pj4yXXwwO2Rve2lmKChjW28rMTI+PjJdfDApLXY+PjI+Pj4wPmw+Pj4w
KXt3PWNbdisobDw8Mik+PjJdfDA7aWYoKHd8MCk9PTApe2JyZWFrfXg9dzt5PW18MDt6PWNbKGNb
dz4+Ml18MCkrMzI+PjJdfDA7Y2FbeiYxNV0oeCw5NzQ0LDk3NzAseSl8MDt4PWNbaD4+Ml18MDtk
eih4KXwwO2skKHV8MCwwLDEyKTt4PXA7ZFIocCwxMCwwKTtpZigoYVt1XSYxKT09MCl7ej14KzF8
MDtBPXo7Qj16O0M9cCs4fDB9ZWxzZXt6PXArOHwwO0E9Y1t6Pj4yXXwwO0I9eCsxfDA7Qz16fWNb
cT4+Ml09QTt6PXJ8MDtjW3M+PjJdPXo7Y1t0Pj4yXT0wO3g9ZnwwO3c9Z3wwO0Q9cHwwO0U9cCs0
fDA7Rj1BO0c9Y1t4Pj4yXXwwO0wxMTc6d2hpbGUoMSl7ZG97aWYoKEd8MCk9PTApe0g9MH1lbHNl
e2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4yXXwwKSl7SD1HO2JyZWFrfWlmKChiMFtjWyhj
W0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApIT0tMSl7SD1HO2JyZWFrfWNbeD4+Ml09MDtIPTB9
fXdoaWxlKDApO0k9KEh8MCk9PTA7Sj1jW3c+PjJdfDA7ZG97aWYoKEp8MCk9PTApe0s9MTEwfWVs
c2V7aWYoKGNbSisxMj4+Ml18MCkhPShjW0orMTY+PjJdfDApKXtpZihJKXticmVha31lbHNle0w9
RjticmVhayBMMTE3fX1pZigoYjBbY1soY1tKPj4yXXwwKSszNj4+Ml0mMTI3XShKKXwwKT09LTEp
e2Nbdz4+Ml09MDtLPTExMDticmVha31lbHNle2lmKEleKEp8MCk9PTApe2JyZWFrfWVsc2V7TD1G
O2JyZWFrIEwxMTd9fX19d2hpbGUoMCk7aWYoKEt8MCk9PTExMCl7Sz0wO2lmKEkpe0w9RjticmVh
a319Sj1kW3VdfDA7TT0oSiYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1GfDApPT0oKE0/Sj4+PjE6
Y1tFPj4yXXwwKXwwKSl7aWYoTSl7Tj1KPj4+MTtPPUo+Pj4xfWVsc2V7Sj1jW0U+PjJdfDA7Tj1K
O089Sn1kUihwLE48PDEsMCk7aWYoKGFbdV0mMSk9PTApe1A9MTB9ZWxzZXtQPShjW0Q+PjJdJi0y
KS0xfDB9ZFIocCxQLDApO2lmKChhW3VdJjEpPT0wKXtRPUJ9ZWxzZXtRPWNbQz4+Ml18MH1jW3E+
PjJdPVErTztSPVF9ZWxzZXtSPUZ9Sj1IKzEyfDA7TT1jW0o+PjJdfDA7Uz1IKzE2fDA7aWYoKE18
MCk9PShjW1M+PjJdfDApKXtUPShiMFtjWyhjW0g+PjJdfDApKzM2Pj4yXSYxMjddKEgpfDApJjI1
NX1lbHNle1Q9YVtNXXwwfWlmKChmcyhULDE2LFIscSx0LDAsbix6LHMseSl8MCkhPTApe0w9Ujti
cmVha31NPWNbSj4+Ml18MDtpZigoTXwwKT09KGNbUz4+Ml18MCkpe1M9Y1soY1tIPj4yXXwwKSs0
MD4+Ml18MDtiMFtTJjEyN10oSCl8MDtGPVI7Rz1IO2NvbnRpbnVlfWVsc2V7Y1tKPj4yXT1NKzE7
Rj1SO0c9SDtjb250aW51ZX19YVtMKzN8MF09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChi
YygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO0c9
ZlIoTCxjWzI5NThdfDAsMTMyMCwoRj1pLGk9aSs4fDAsY1tGPj4yXT1rLEYpfDApfDA7aT1GO2lm
KChHfDApIT0xKXtjW2o+PjJdPTR9Rz1jW3g+PjJdfDA7ZG97aWYoKEd8MCk9PTApe1U9MH1lbHNl
e2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4yXXwwKSl7VT1HO2JyZWFrfWlmKChiMFtjWyhj
W0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApIT0tMSl7VT1HO2JyZWFrfWNbeD4+Ml09MDtVPTB9
fXdoaWxlKDApO3g9KFV8MCk9PTA7Rz1jW3c+PjJdfDA7ZG97aWYoKEd8MCk9PTApe0s9MTU1fWVs
c2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtpZigheCl7YnJlYWt9Vj1ifDA7
Y1tWPj4yXT1VO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+
PjJdJjEyN10oRyl8MCk9PS0xKXtjW3c+PjJdPTA7Sz0xNTU7YnJlYWt9aWYoISh4XihHfDApPT0w
KSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Rve2lmKChLfDApPT0xNTUpe2lmKHgpe2JyZWFrfVY9YnwwO2NbVj4+Ml09VTtkUChwKTtkUChu
KTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtWPWJ8MDtjW1Y+PjJdPVU7
ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2JsKGV8MCw4
MTc2LDEzNCl9ZnVuY3Rpb24gZlIoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFy
IGY9MCxnPTAsaD0wO2Y9aTtpPWkrMTZ8MDtnPWZ8MDtoPWc7Y1toPj4yXT1lO2NbaCs0Pj4yXT0w
O2g9YkIoYnwwKXwwO2I9YVkoYXwwLGR8MCxnfDApfDA7aWYoKGh8MCk9PTApe2k9ZjtyZXR1cm4g
YnwwfWJCKGh8MCl8MDtpPWY7cmV0dXJuIGJ8MH1mdW5jdGlvbiBmUyhiLGUsZixnLGgsaixrKXti
PWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9
MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxh
Yz0wLGFkPTA7bD1pO2k9aSsxMDR8MDttPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW20+PjJdO209KGctZnwwKS8xMnwwO249bHwwO2Rve2lmKG0+Pj4wPjEwMCl7bz1rSihtKXww
O2lmKChvfDApIT0wKXtwPW87cT1vO2JyZWFrfWtYKCk7cD0wO3E9MH1lbHNle3A9bjtxPTB9fXdo
aWxlKDApO249KGZ8MCk9PShnfDApO2lmKG4pe3I9bTtzPTB9ZWxzZXtvPW07bT0wO3Q9cDt1PWY7
d2hpbGUoMSl7dj1kW3VdfDA7aWYoKHYmMXwwKT09MCl7dz12Pj4+MX1lbHNle3c9Y1t1KzQ+PjJd
fDB9aWYoKHd8MCk9PTApe2FbdF09Mjt4PW0rMXwwO3k9by0xfDB9ZWxzZXthW3RdPTE7eD1tO3k9
b312PXUrMTJ8MDtpZigodnwwKT09KGd8MCkpe3I9eTtzPXg7YnJlYWt9ZWxzZXtvPXk7bT14O3Q9
dCsxfDA7dT12fX19dT1ifDA7Yj1lfDA7ZT1oO3Q9MDt4PXM7cz1yO3doaWxlKDEpe3I9Y1t1Pj4y
XXwwO2Rve2lmKChyfDApPT0wKXt6PTB9ZWxzZXttPWNbcisxMj4+Ml18MDtpZigobXwwKT09KGNb
cisxNj4+Ml18MCkpe0E9YjBbY1soY1tyPj4yXXwwKSszNj4+Ml0mMTI3XShyKXwwfWVsc2V7QT1j
W20+PjJdfDB9aWYoKEF8MCk9PS0xKXtjW3U+PjJdPTA7ej0wO2JyZWFrfWVsc2V7ej1jW3U+PjJd
fDA7YnJlYWt9fX13aGlsZSgwKTtyPSh6fDApPT0wO209Y1tiPj4yXXwwO2lmKChtfDApPT0wKXtC
PXo7Qz0wfWVsc2V7eT1jW20rMTI+PjJdfDA7aWYoKHl8MCk9PShjW20rMTY+PjJdfDApKXtEPWIw
W2NbKGNbbT4+Ml18MCkrMzY+PjJdJjEyN10obSl8MH1lbHNle0Q9Y1t5Pj4yXXwwfWlmKChEfDAp
PT0tMSl7Y1tiPj4yXT0wO0U9MH1lbHNle0U9bX1CPWNbdT4+Ml18MDtDPUV9Rj0oQ3wwKT09MDtp
ZighKChyXkYpJihzfDApIT0wKSl7YnJlYWt9cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0Ir
MTY+PjJdfDApKXtHPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle0c9Y1ty
Pj4yXXwwfWlmKGspe0g9R31lbHNle0g9Yl9bY1soY1tlPj4yXXwwKSsyOD4+Ml0mMzFdKGgsRyl8
MH1kb3tpZihuKXtJPXg7Sj1zfWVsc2V7cj10KzF8MDtMMjQ5OmRve2lmKGspe209czt5PXg7bz1w
O3c9MDt2PWY7d2hpbGUoMSl7ZG97aWYoKGFbb118MCk9PTEpe0s9djtpZigoYVtLXSYxKT09MCl7
TD12KzR8MH1lbHNle0w9Y1t2Kzg+PjJdfDB9aWYoKEh8MCkhPShjW0wrKHQ8PDIpPj4yXXwwKSl7
YVtvXT0wO009dztOPXk7Tz1tLTF8MDticmVha31QPWRbS118MDtpZigoUCYxfDApPT0wKXtRPVA+
Pj4xfWVsc2V7UT1jW3YrND4+Ml18MH1pZigoUXwwKSE9KHJ8MCkpe009MTtOPXk7Tz1tO2JyZWFr
fWFbb109MjtNPTE7Tj15KzF8MDtPPW0tMXwwfWVsc2V7TT13O049eTtPPW19fXdoaWxlKDApO1A9
disxMnwwO2lmKChQfDApPT0oZ3wwKSl7Uj1PO1M9TjtUPU07YnJlYWsgTDI0OX1tPU87eT1OO289
bysxfDA7dz1NO3Y9UH19ZWxzZXt2PXM7dz14O289cDt5PTA7bT1mO3doaWxlKDEpe2Rve2lmKChh
W29dfDApPT0xKXtQPW07aWYoKGFbUF0mMSk9PTApe1U9bSs0fDB9ZWxzZXtVPWNbbSs4Pj4yXXww
fWlmKChIfDApIT0oYl9bY1soY1tlPj4yXXwwKSsyOD4+Ml0mMzFdKGgsY1tVKyh0PDwyKT4+Ml18
MCl8MCkpe2Fbb109MDtWPXk7Vz13O1g9di0xfDA7YnJlYWt9Sz1kW1BdfDA7aWYoKEsmMXwwKT09
MCl7WT1LPj4+MX1lbHNle1k9Y1ttKzQ+PjJdfDB9aWYoKFl8MCkhPShyfDApKXtWPTE7Vz13O1g9
djticmVha31hW29dPTI7Vj0xO1c9dysxfDA7WD12LTF8MH1lbHNle1Y9eTtXPXc7WD12fX13aGls
ZSgwKTtLPW0rMTJ8MDtpZigoS3wwKT09KGd8MCkpe1I9WDtTPVc7VD1WO2JyZWFrIEwyNDl9dj1Y
O3c9VztvPW8rMXwwO3k9VjttPUt9fX13aGlsZSgwKTtpZighVCl7ST1TO0o9UjticmVha31yPWNb
dT4+Ml18MDttPXIrMTJ8MDt5PWNbbT4+Ml18MDtpZigoeXwwKT09KGNbcisxNj4+Ml18MCkpe289
Y1soY1tyPj4yXXwwKSs0MD4+Ml18MDtiMFtvJjEyN10ocil8MH1lbHNle2NbbT4+Ml09eSs0fWlm
KChTK1J8MCk+Pj4wPDJ8bil7ST1TO0o9UjticmVha315PXQrMXwwO209UztyPXA7bz1mO3doaWxl
KDEpe2Rve2lmKChhW3JdfDApPT0yKXt3PWRbb118MDtpZigodyYxfDApPT0wKXtaPXc+Pj4xfWVs
c2V7Wj1jW28rND4+Ml18MH1pZigoWnwwKT09KHl8MCkpe189bTticmVha31hW3JdPTA7Xz1tLTF8
MH1lbHNle189bX19d2hpbGUoMCk7dz1vKzEyfDA7aWYoKHd8MCk9PShnfDApKXtJPV87Sj1SO2Jy
ZWFrfWVsc2V7bT1fO3I9cisxfDA7bz13fX19fXdoaWxlKDApO3Q9dCsxfDA7eD1JO3M9Sn1kb3tp
ZigoQnwwKT09MCl7JD0xfWVsc2V7Sj1jW0IrMTI+PjJdfDA7aWYoKEp8MCk9PShjW0IrMTY+PjJd
fDApKXthYT1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXthYT1jW0o+PjJd
fDB9aWYoKGFhfDApPT0tMSl7Y1t1Pj4yXT0wOyQ9MTticmVha31lbHNleyQ9KGNbdT4+Ml18MCk9
PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZihGKXthYj0yNjR9ZWxzZXt1PWNbQysxMj4+Ml18MDtp
ZigodXwwKT09KGNbQysxNj4+Ml18MCkpe2FjPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10o
Qyl8MH1lbHNle2FjPWNbdT4+Ml18MH1pZigoYWN8MCk9PS0xKXtjW2I+PjJdPTA7YWI9MjY0O2Jy
ZWFrfWVsc2V7aWYoJF4oQ3wwKT09MCl7YnJlYWt9ZWxzZXthYj0yNjY7YnJlYWt9fX19d2hpbGUo
MCk7aWYoKGFifDApPT0yNjQpe2lmKCQpe2FiPTI2Nn19aWYoKGFifDApPT0yNjYpe2Nbaj4+Ml09
Y1tqPj4yXXwyfUwzMzA6ZG97aWYobil7YWI9MjcxfWVsc2V7JD1mO0M9cDt3aGlsZSgxKXtpZigo
YVtDXXwwKT09Mil7YWQ9JDticmVhayBMMzMwfWI9JCsxMnwwO2lmKChifDApPT0oZ3wwKSl7YWI9
MjcxO2JyZWFrIEwzMzB9JD1iO0M9QysxfDB9fX13aGlsZSgwKTtpZigoYWJ8MCk9PTI3MSl7Y1tq
Pj4yXT1jW2o+PjJdfDQ7YWQ9Z31pZigocXwwKT09MCl7aT1sO3JldHVybiBhZHwwfWtLKHEpO2k9
bDtyZXR1cm4gYWR8MH1mdW5jdGlvbiBmVChiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtrPWk7aT1pKzExMnwwO2w9
ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWt8MDttPWsrMTZ8MDtuPWsrMzJ8MDtvPWsr
NDB8MDtwPWsrNDh8MDtxPWsrNTZ8MDtyPWsrNjR8MDtzPWsrNzJ8MDt0PWsrODB8MDt1PWsrMTA0
fDA7aWYoKGNbZys0Pj4yXSYxfDApPT0wKXtjW24+PjJdPS0xO3Y9Y1soY1tkPj4yXXwwKSsxNj4+
Ml18MDt3PWV8MDtjW3A+PjJdPWNbdz4+Ml07Y1txPj4yXT1jW2Y+PjJdO2JYW3YmMTI3XShvLGQs
cCxxLGcsaCxuKTtxPWNbbz4+Ml18MDtjW3c+PjJdPXE7c3dpdGNoKGNbbj4+Ml18MCl7Y2FzZSAx
OnthW2pdPTE7YnJlYWt9O2Nhc2UgMDp7YVtqXT0wO2JyZWFrfTtkZWZhdWx0OnthW2pdPTE7Y1to
Pj4yXT00fX1jW2I+PjJdPXE7aT1rO3JldHVybn1laihyLGcpO3E9cnwwO3I9Y1txPj4yXXwwO2lm
KChjWzM5MjJdfDApIT0tMSl7Y1ttPj4yXT0xNTY4ODtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7
ZFcoMTU2ODgsbSw5Nil9bT0oY1szOTIzXXwwKS0xfDA7bj1jW3IrOD4+Ml18MDtkb3tpZigoY1ty
KzEyPj4yXXwwKS1uPj4yPj4+MD5tPj4+MCl7dz1jW24rKG08PDIpPj4yXXwwO2lmKCh3fDApPT0w
KXticmVha31vPXc7dz1jW3E+PjJdfDA7ZHoodyl8MDtlaihzLGcpO3c9c3wwO3A9Y1t3Pj4yXXww
O2lmKChjWzM4MjZdfDApIT0tMSl7Y1tsPj4yXT0xNTMwNDtjW2wrND4+Ml09MTI7Y1tsKzg+PjJd
PTA7ZFcoMTUzMDQsbCw5Nil9ZD0oY1szODI3XXwwKS0xfDA7dj1jW3ArOD4+Ml18MDtkb3tpZigo
Y1twKzEyPj4yXXwwKS12Pj4yPj4+MD5kPj4+MCl7eD1jW3YrKGQ8PDIpPj4yXXwwO2lmKCh4fDAp
PT0wKXticmVha315PXg7ej1jW3c+PjJdfDA7ZHooeil8MDt6PXR8MDtBPXg7YlpbY1soY1tBPj4y
XXwwKSsyND4+Ml0mMTI3XSh6LHkpO2JaW2NbKGNbQT4+Ml18MCkrMjg+PjJdJjEyN10odCsxMnww
LHkpO2NbdT4+Ml09Y1tmPj4yXTthW2pdPShmUyhlLHUseix0KzI0fDAsbyxoLDEpfDApPT0oenww
KXwwO2NbYj4+Ml09Y1tlPj4yXTtlZSh0KzEyfDApO2VlKHR8MCk7aT1rO3JldHVybn19d2hpbGUo
MCk7bz1iTyg0KXwwO2txKG8pO2JsKG98MCw4MTc2LDEzNCl9fXdoaWxlKDApO2s9Yk8oNCl8MDtr
cShrKTtibChrfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZVKGIsZSxmLGcsaCxpLGosayxsLG0pe2I9
YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO209bXww
O3ZhciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDtuPWNbZz4+Ml18MDtvPShufDApPT0oZnwwKTtk
b3tpZihvKXtwPShjW20rOTY+PjJdfDApPT0oYnwwKTtpZighcCl7aWYoKGNbbSsxMDA+PjJdfDAp
IT0oYnwwKSl7YnJlYWt9fWNbZz4+Ml09ZisxO2FbZl09cD80Mzo0NTtjW2g+PjJdPTA7cT0wO3Jl
dHVybiBxfDB9fXdoaWxlKDApO3A9ZFtqXXwwO2lmKChwJjF8MCk9PTApe3I9cD4+PjF9ZWxzZXty
PWNbais0Pj4yXXwwfWlmKChyfDApIT0wJihifDApPT0oaXwwKSl7aT1jW2w+PjJdfDA7aWYoKGkt
a3wwKT49MTYwKXtxPTA7cmV0dXJuIHF8MH1rPWNbaD4+Ml18MDtjW2w+PjJdPWkrNDtjW2k+PjJd
PWs7Y1toPj4yXT0wO3E9MDtyZXR1cm4gcXwwfWs9bSsxMDR8MDtpPW07d2hpbGUoMSl7aWYoKGl8
MCk9PShrfDApKXtzPWs7YnJlYWt9aWYoKGNbaT4+Ml18MCk9PShifDApKXtzPWk7YnJlYWt9ZWxz
ZXtpPWkrNHwwfX1pPXMtbXwwO209aT4+MjtpZigoaXwwKT45Mil7cT0tMTtyZXR1cm4gcXwwfUwz
OTg6ZG97c3dpdGNoKGV8MCl7Y2FzZSA4OmNhc2UgMTA6e2lmKChtfDApPChlfDApKXticmVhayBM
Mzk4fWVsc2V7cT0tMX1yZXR1cm4gcXwwfTtjYXNlIDE2OntpZigoaXwwKTw4OCl7YnJlYWsgTDM5
OH1pZihvKXtxPS0xO3JldHVybiBxfDB9aWYoKG4tZnwwKT49Myl7cT0tMTtyZXR1cm4gcXwwfWlm
KChhW24tMXwwXXwwKSE9NDgpe3E9LTE7cmV0dXJuIHF8MH1jW2g+PjJdPTA7cz1hWzk3NDQrbXww
XXwwO2I9Y1tnPj4yXXwwO2NbZz4+Ml09YisxO2FbYl09cztxPTA7cmV0dXJuIHF8MH07ZGVmYXVs
dDp7fX19d2hpbGUoMCk7Zj1hWzk3NDQrbXwwXXwwO2NbZz4+Ml09bisxO2Fbbl09ZjtjW2g+PjJd
PShjW2g+PjJdfDApKzE7cT0wO3JldHVybiBxfDB9ZnVuY3Rpb24gZlYoYixlLGYsZyxoLGosayl7
Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MDtlPWk7aT1pKzE0NHwwO2w9ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzExMnwwO249ZSsxMjh8MDtvPW47
cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2Ug
ODp7dD0xNjticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307ZGVm
YXVsdDp7dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDAp
O2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1j
W3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7
aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1jW2g+PjJdfDA7TDQy
Njp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+PjJdfDA7aWYoKEN8
MCk9PShjW3crMTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MH1l
bHNle0Q9Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdo
aWxlKDApO0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTApe0Y9MzYzfWVsc2V7
Rz1jW0MrMTI+PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDApKXtIPWIwW2NbKGNbQz4+Ml18
MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlmKChIfDApPT0tMSl7Y1tmPj4y
XT0wO0Y9MzYzO2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztKPUc7YnJlYWt9ZWxz
ZXtLPWw7TD1DO009RzticmVhayBMNDI2fX19fXdoaWxlKDApO2lmKChGfDApPT0zNjMpe0Y9MDtp
ZihFKXtLPWw7TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUM9ZFtvXXwwO0c9KEMmMXwwKT09
MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEcpe049
Qz4+PjE7Tz1DPj4+MX1lbHNle0M9Y1t6Pj4yXXwwO049QztPPUN9ZFIobixOPDwxLDApO2lmKChh
W29dJjEpPT0wKXtQPTEwfWVsc2V7UD0oY1tnPj4yXSYtMiktMXwwfWRSKG4sUCwwKTtpZigoYVtv
XSYxKT09MCl7UT14fWVsc2V7UT1jW3k+PjJdfDB9Y1twPj4yXT1RK087Uj1RfWVsc2V7Uj1sfUM9
QisxMnwwO0c9Y1tDPj4yXXwwO1M9QisxNnwwO2lmKChHfDApPT0oY1tTPj4yXXwwKSl7VD1iMFtj
WyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtUPWNbRz4+Ml18MH1pZigoZlUoVCx0
LFIscCxzLEEsbSx2LHIsdSl8MCkhPTApe0s9UjtMPUk7TT1KO2JyZWFrfUc9Y1tDPj4yXXwwO2lm
KChHfDApPT0oY1tTPj4yXXwwKSl7Uz1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShC
KXwwO2w9Ujt3PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDtsPVI7dz1CO2NvbnRpbnVlfX13
PWRbbV18MDtpZigodyYxfDApPT0wKXtVPXc+Pj4xfWVsc2V7VT1jW20rND4+Ml18MH1kb3tpZigo
VXwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31SPWNbcz4+Ml18MDtj
W3I+PjJdPXcrNDtjW3c+PjJdPVJ9fXdoaWxlKDApO2Nbaz4+Ml09ZnUoSyxjW3A+PjJdfDAsaix0
KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7Vj0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7
aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtXPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10o
Qil8MH1lbHNle1c9Y1tyPj4yXXwwfWlmKChXfDApIT0tMSl7Vj1CO2JyZWFrfWNbaD4+Ml09MDtW
PTB9fXdoaWxlKDApO2g9KFZ8MCk9PTA7ZG97aWYoTSl7Rj00MDV9ZWxzZXtCPWNbTCsxMj4+Ml18
MDtpZigoQnwwKT09KGNbTCsxNj4+Ml18MCkpe1g9YjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3
XShMKXwwfWVsc2V7WD1jW0I+PjJdfDB9aWYoKFh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj00MDU7YnJl
YWt9aWYoIShoXihMfDApPT0wKSl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT00MDUpe2lmKGgpe2JyZWFrfVk9YnwwO2Nb
WT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18
MjtZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmVyhhLGIs
ZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAs
bT0wLG49MCxvPTAscD0wO2Y9aTtpPWkrNDB8MDtnPWZ8MDtoPWYrMTZ8MDtqPWYrMzJ8MDtlaihq
LGIpO2I9anwwO2o9Y1tiPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1toPj4yXT0xNTY4ODtj
W2grND4+Ml09MTI7Y1toKzg+PjJdPTA7ZFcoMTU2ODgsaCw5Nil9aD0oY1szOTIzXXwwKS0xfDA7
az1jW2orOD4+Ml18MDtkb3tpZigoY1tqKzEyPj4yXXwwKS1rPj4yPj4+MD5oPj4+MCl7bD1jW2sr
KGg8PDIpPj4yXXwwO2lmKChsfDApPT0wKXticmVha31tPWw7bj1jWyhjW2w+PjJdfDApKzQ4Pj4y
XXwwO2NhW24mMTVdKG0sOTc0NCw5NzcwLGQpfDA7bT1jW2I+PjJdfDA7aWYoKGNbMzgyNl18MCkh
PS0xKXtjW2c+PjJdPTE1MzA0O2NbZys0Pj4yXT0xMjtjW2crOD4+Ml09MDtkVygxNTMwNCxnLDk2
KX1uPShjWzM4MjddfDApLTF8MDtsPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLWw+
PjI+Pj4wPm4+Pj4wKXtvPWNbbCsobjw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztj
W2U+PjJdPWIwW2NbKGNbbz4+Ml18MCkrMTY+PjJdJjEyN10ocCl8MDtiWltjWyhjW28+PjJdfDAp
KzIwPj4yXSYxMjddKGEscCk7cD1jW2I+PjJdfDA7ZHoocCl8MDtpPWY7cmV0dXJufX13aGlsZSgw
KTtuPWJPKDQpfDA7a3Eobik7YmwobnwwLDgxNzYsMTM0KX19d2hpbGUoMCk7Zj1iTyg0KXwwO2tx
KGYpO2JsKGZ8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZlgoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxF
PTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9
MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MDtlPWk7aT1pKzE0NHwwO2w9ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzExMnwwO249ZSsxMjh8MDtvPW47cD1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0xNjti
cmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0x
MH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29d
JjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7
eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1n
fDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1jW2g+PjJdfDA7TDUzNTp3aGlsZSgx
KXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+PjJdfDA7aWYoKEN8MCk9PShjW3cr
MTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MH1lbHNle0Q9Y1tD
Pj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0U9
KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTApe0Y9NDUwfWVsc2V7Rz1jW0MrMTI+
PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDApKXtIPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJd
JjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlmKChIfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NDUw
O2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztKPUc7YnJlYWt9ZWxzZXtMPWw7TT1D
O049RzticmVhayBMNTM1fX19fXdoaWxlKDApO2lmKChGfDApPT00NTApe0Y9MDtpZihFKXtMPWw7
TT0wO049MTticmVha31lbHNle0k9MDtKPTF9fUM9ZFtvXXwwO0c9KEMmMXwwKT09MDtpZigoKGNb
cD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEcpe089Qz4+PjE7UD1D
Pj4+MX1lbHNle0M9Y1t6Pj4yXXwwO089QztQPUN9ZFIobixPPDwxLDApO2lmKChhW29dJjEpPT0w
KXtRPTEwfWVsc2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKG4sUSwwKTtpZigoYVtvXSYxKT09MCl7
Uj14fWVsc2V7Uj1jW3k+PjJdfDB9Y1twPj4yXT1SK1A7Uz1SfWVsc2V7Uz1sfUM9QisxMnwwO0c9
Y1tDPj4yXXwwO1Q9QisxNnwwO2lmKChHfDApPT0oY1tUPj4yXXwwKSl7VT1iMFtjWyhjW0I+PjJd
fDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtVPWNbRz4+Ml18MH1pZigoZlUoVSx0LFMscCxzLEEs
bSx2LHIsdSl8MCkhPTApe0w9UztNPUk7Tj1KO2JyZWFrfUc9Y1tDPj4yXXwwO2lmKChHfDApPT0o
Y1tUPj4yXXwwKSl7VD1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1QmMTI3XShCKXwwO2w9Uzt3
PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDtsPVM7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtp
ZigodyYxfDApPT0wKXtWPXc+Pj4xfWVsc2V7Vj1jW20rND4+Ml18MH1kb3tpZigoVnwwKSE9MCl7
dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31TPWNbcz4+Ml18MDtjW3I+PjJdPXcr
NDtjW3c+PjJdPVN9fXdoaWxlKDApO3M9ZncoTCxjW3A+PjJdfDAsaix0KXwwO2Nbaz4+Ml09cztj
W2srND4+Ml09SztmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEUpe1c9MH1lbHNle3I9Y1tCKzEy
Pj4yXXwwO2lmKChyfDApPT0oY1tCKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0I+PjJdfDApKzM2Pj4y
XSYxMjddKEIpfDB9ZWxzZXtYPWNbcj4+Ml18MH1pZigoWHwwKSE9LTEpe1c9QjticmVha31jW2g+
PjJdPTA7Vz0wfX13aGlsZSgwKTtoPShXfDApPT0wO2Rve2lmKE4pe0Y9NDkyfWVsc2V7Qj1jW00r
MTI+PjJdfDA7aWYoKEJ8MCk9PShjW00rMTY+PjJdfDApKXtZPWIwW2NbKGNbTT4+Ml18MCkrMzY+
PjJdJjEyN10oTSl8MH1lbHNle1k9Y1tCPj4yXXwwfWlmKChZfDApPT0tMSl7Y1tmPj4yXT0wO0Y9
NDkyO2JyZWFrfWlmKCEoaF4oTXwwKT09MCkpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChuKTtk
UChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRnwwKT09NDkyKXtpZihoKXticmVha31a
PWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1j
W2o+PjJdfDI7Wj1ifDA7Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24g
ZlkoZSxmLGcsaCxqLGssbCl7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1s
fDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MDtmPWk7
aT1pKzE0NHwwO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1o
O2g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbaD4+Ml09Y1ttPj4yXTttPWYrMTA0fDA7bj1mKzEx
MnwwO289ZisxMjh8MDtwPW87cT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cj1pO2k9aSsxNjB8MDtz
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1tq
KzQ+PjJdJjc0fDApe2Nhc2UgODp7dT0xNjticmVha307Y2FzZSA2NDp7dT04O2JyZWFrfTtjYXNl
IDA6e3U9MDticmVha307ZGVmYXVsdDp7dT0xMH19dj1mfDA7ZlcobixqLHYsbSk7ayQocHwwLDAs
MTIpO2o9bztkUihvLDEwLDApO2lmKChhW3BdJjEpPT0wKXt3PWorMXwwO3g9dzt5PXc7ej1vKzh8
MH1lbHNle3c9bys4fDA7eD1jW3c+PjJdfDA7eT1qKzF8MDt6PXd9Y1txPj4yXT14O3c9cnwwO2Nb
cz4+Ml09dztjW3Q+PjJdPTA7aj1nfDA7Zz1ofDA7aD1vfDA7QT1vKzR8MDtCPWNbbT4+Ml18MDtt
PXg7eD1jW2o+PjJdfDA7TDYyNDp3aGlsZSgxKXtkb3tpZigoeHwwKT09MCl7Qz0wfWVsc2V7RD1j
W3grMTI+PjJdfDA7aWYoKER8MCk9PShjW3grMTY+PjJdfDApKXtFPWIwW2NbKGNbeD4+Ml18MCkr
MzY+PjJdJjEyN10oeCl8MH1lbHNle0U9Y1tEPj4yXXwwfWlmKChFfDApIT0tMSl7Qz14O2JyZWFr
fWNbaj4+Ml09MDtDPTB9fXdoaWxlKDApO0Y9KEN8MCk9PTA7RD1jW2c+PjJdfDA7ZG97aWYoKER8
MCk9PTApe0c9NTIwfWVsc2V7SD1jW0QrMTI+PjJdfDA7aWYoKEh8MCk9PShjW0QrMTY+PjJdfDAp
KXtJPWIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MH1lbHNle0k9Y1tIPj4yXXwwfWlm
KChJfDApPT0tMSl7Y1tnPj4yXT0wO0c9NTIwO2JyZWFrfWVsc2V7SD0oRHwwKT09MDtpZihGXkgp
e0o9RDtLPUg7YnJlYWt9ZWxzZXtMPW07TT1EO049SDticmVhayBMNjI0fX19fXdoaWxlKDApO2lm
KChHfDApPT01MjApe0c9MDtpZihGKXtMPW07TT0wO049MTticmVha31lbHNle0o9MDtLPTF9fUQ9
ZFtwXXwwO0g9KEQmMXwwKT09MDtpZigoKGNbcT4+Ml18MCktbXwwKT09KChIP0Q+Pj4xOmNbQT4+
Ml18MCl8MCkpe2lmKEgpe089RD4+PjE7UD1EPj4+MX1lbHNle0Q9Y1tBPj4yXXwwO089RDtQPUR9
ZFIobyxPPDwxLDApO2lmKChhW3BdJjEpPT0wKXtRPTEwfWVsc2V7UT0oY1toPj4yXSYtMiktMXww
fWRSKG8sUSwwKTtpZigoYVtwXSYxKT09MCl7Uj15fWVsc2V7Uj1jW3o+PjJdfDB9Y1txPj4yXT1S
K1A7Uz1SfWVsc2V7Uz1tfUQ9QysxMnwwO0g9Y1tEPj4yXXwwO1Q9QysxNnwwO2lmKChIfDApPT0o
Y1tUPj4yXXwwKSl7VT1iMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtVPWNb
SD4+Ml18MH1pZigoZlUoVSx1LFMscSx0LEIsbix3LHMsdil8MCkhPTApe0w9UztNPUo7Tj1LO2Jy
ZWFrfUg9Y1tEPj4yXXwwO2lmKChIfDApPT0oY1tUPj4yXXwwKSl7VD1jWyhjW0M+PjJdfDApKzQw
Pj4yXXwwO2IwW1QmMTI3XShDKXwwO209Uzt4PUM7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUgrNDtt
PVM7eD1DO2NvbnRpbnVlfX14PWRbbl18MDtpZigoeCYxfDApPT0wKXtWPXg+Pj4xfWVsc2V7Vj1j
W24rND4+Ml18MH1kb3tpZigoVnwwKSE9MCl7eD1jW3M+PjJdfDA7aWYoKHgtcnwwKT49MTYwKXti
cmVha31TPWNbdD4+Ml18MDtjW3M+PjJdPXgrNDtjW3g+PjJdPVN9fXdoaWxlKDApO2JbbD4+MV09
ZnooTCxjW3E+PjJdfDAsayx1KXwwO2Z0KG4sdyxjW3M+PjJdfDAsayk7ZG97aWYoRil7Vz0wfWVs
c2V7cz1jW0MrMTI+PjJdfDA7aWYoKHN8MCk9PShjW0MrMTY+PjJdfDApKXtYPWIwW2NbKGNbQz4+
Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle1g9Y1tzPj4yXXwwfWlmKChYfDApIT0tMSl7Vz1D
O2JyZWFrfWNbaj4+Ml09MDtXPTB9fXdoaWxlKDApO2o9KFd8MCk9PTA7ZG97aWYoTil7Rz01NjJ9
ZWxzZXtDPWNbTSsxMj4+Ml18MDtpZigoQ3wwKT09KGNbTSsxNj4+Ml18MCkpe1k9YjBbY1soY1tN
Pj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0M+PjJdfDB9aWYoKFl8MCk9PS0xKXtj
W2c+PjJdPTA7Rz01NjI7YnJlYWt9aWYoIShqXihNfDApPT0wKSl7YnJlYWt9Wj1lfDA7Y1taPj4y
XT1XO2RQKG8pO2RQKG4pO2k9ZjtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChHfDApPT01NjIpe2lm
KGope2JyZWFrfVo9ZXwwO2NbWj4+Ml09VztkUChvKTtkUChuKTtpPWY7cmV0dXJufX13aGlsZSgw
KTtjW2s+PjJdPWNbaz4+Ml18MjtaPWV8MDtjW1o+PjJdPVc7ZFAobyk7ZFAobik7aT1mO3JldHVy
bn1mdW5jdGlvbiBmWihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0w
LHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAs
Sj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxY
PTAsWT0wO2U9aTtpPWkrMTQ0fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09
Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsx
MDR8MDttPWUrMTEyfDA7bj1lKzEyOHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7
aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDti
cmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxs
KTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12
O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJd
PXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9
Y1tsPj4yXXwwO2w9dzt3PWNbaD4+Ml18MDtMNzEzOndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtC
PTB9ZWxzZXtDPWNbdysxMj4+Ml18MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1so
Y1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0x
KXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18
MDtkb3tpZigoQ3wwKT09MCl7Rj01OTB9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNb
QysxNj4+Ml18MCkpe0g9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1j
W0c+PjJdfDB9aWYoKEh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj01OTA7YnJlYWt9ZWxzZXtHPShDfDAp
PT0wO2lmKEVeRyl7ST1DO0o9RzticmVha31lbHNle0s9bDtMPUM7TT1HO2JyZWFrIEw3MTN9fX19
d2hpbGUoMCk7aWYoKEZ8MCk9PTU5MCl7Rj0wO2lmKEUpe0s9bDtMPTA7TT0xO2JyZWFrfWVsc2V7
ST0wO0o9MX19Qz1kW29dfDA7Rz0oQyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/
Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoRyl7Tj1DPj4+MTtPPUM+Pj4xfWVsc2V7Qz1jW3o+PjJd
fDA7Tj1DO089Q31kUihuLE48PDEsMCk7aWYoKGFbb10mMSk9PTApe1A9MTB9ZWxzZXtQPShjW2c+
PjJdJi0yKS0xfDB9ZFIobixQLDApO2lmKChhW29dJjEpPT0wKXtRPXh9ZWxzZXtRPWNbeT4+Ml18
MH1jW3A+PjJdPVErTztSPVF9ZWxzZXtSPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7Uz1CKzE2fDA7
aWYoKEd8MCk9PShjW1M+PjJdfDApKXtUPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MH1lbHNle1Q9Y1tHPj4yXXwwfWlmKChmVShULHQsUixwLHMsQSxtLHYscix1KXwwKSE9MCl7Sz1S
O0w9STtNPUo7YnJlYWt9Rz1jW0M+PjJdfDA7aWYoKEd8MCk9PShjW1M+PjJdfDApKXtTPWNbKGNb
Qj4+Ml18MCkrNDA+PjJdfDA7YjBbUyYxMjddKEIpfDA7bD1SO3c9Qjtjb250aW51ZX1lbHNle2Nb
Qz4+Ml09Rys0O2w9Ujt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1U9dz4+
PjF9ZWxzZXtVPWNbbSs0Pj4yXXwwfWRve2lmKChVfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1x
fDApPj0xNjApe2JyZWFrfVI9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09Un19d2hpbGUo
MCk7Y1trPj4yXT1mQihLLGNbcD4+Ml18MCxqLHQpfDA7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tp
ZihFKXtWPTB9ZWxzZXtyPWNbQisxMj4+Ml18MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1c9
YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7Vz1jW3I+PjJdfDB9aWYoKFd8
MCkhPS0xKXtWPUI7YnJlYWt9Y1toPj4yXT0wO1Y9MH19d2hpbGUoMCk7aD0oVnwwKT09MDtkb3tp
ZihNKXtGPTYzMn1lbHNle0I9Y1tMKzEyPj4yXXwwO2lmKChCfDApPT0oY1tMKzE2Pj4yXXwwKSl7
WD1iMFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYxMjddKEwpfDB9ZWxzZXtYPWNbQj4+Ml18MH1pZigo
WHwwKT09LTEpe2NbZj4+Ml09MDtGPTYzMjticmVha31pZighKGheKEx8MCk9PTApKXticmVha31Z
PWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8
MCk9PTYzMil7aWYoaCl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1
cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1k9YnwwO2NbWT4+Ml09VjtkUChuKTtkUCht
KTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZfKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9
MCxWPTAsVz0wLFg9MCxZPTA7ZT1pO2k9aSsxNDR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNb
bD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtuPWUrMTI4fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Nh
c2UgNjQ6e3Q9ODticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXww
O2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09MCl7
dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7
eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnww
O3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9Y1toPj4yXXwwO0w4MDI6d2hpbGUoMSl7ZG97aWYo
KHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEyPj4yXXwwO2lmKChDfDApPT0oY1t3KzE2Pj4yXXww
KSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDB9ZWxzZXtEPWNbQz4+Ml18MH1p
ZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtFPShCfDApPT0w
O0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0wKXtGPTY2MH1lbHNle0c9Y1tDKzEyPj4yXXwwO2lm
KChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1iMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMp
fDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHwwKT09LTEpe2NbZj4+Ml09MDtGPTY2MDticmVha31l
bHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7Sj1HO2JyZWFrfWVsc2V7Sz1sO0w9QztNPUc7YnJl
YWsgTDgwMn19fX13aGlsZSgwKTtpZigoRnwwKT09NjYwKXtGPTA7aWYoRSl7Sz1sO0w9MDtNPTE7
YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118MDtHPShDJjF8MCk9PTA7aWYoKChjW3A+PjJdfDAp
LWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDApfDApKXtpZihHKXtOPUM+Pj4xO089Qz4+PjF9ZWxz
ZXtDPWNbej4+Ml18MDtOPUM7Tz1DfWRSKG4sTjw8MSwwKTtpZigoYVtvXSYxKT09MCl7UD0xMH1l
bHNle1A9KGNbZz4+Ml0mLTIpLTF8MH1kUihuLFAsMCk7aWYoKGFbb10mMSk9PTApe1E9eH1lbHNl
e1E9Y1t5Pj4yXXwwfWNbcD4+Ml09UStPO1I9UX1lbHNle1I9bH1DPUIrMTJ8MDtHPWNbQz4+Ml18
MDtTPUIrMTZ8MDtpZigoR3wwKT09KGNbUz4+Ml18MCkpe1Q9YjBbY1soY1tCPj4yXXwwKSszNj4+
Ml0mMTI3XShCKXwwfWVsc2V7VD1jW0c+PjJdfDB9aWYoKGZVKFQsdCxSLHAscyxBLG0sdixyLHUp
fDApIT0wKXtLPVI7TD1JO009SjticmVha31HPWNbQz4+Ml18MDtpZigoR3wwKT09KGNbUz4+Ml18
MCkpe1M9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtTJjEyN10oQil8MDtsPVI7dz1CO2NvbnRp
bnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1SO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcmMXww
KT09MCl7VT13Pj4+MX1lbHNle1U9Y1ttKzQ+PjJdfDB9ZG97aWYoKFV8MCkhPTApe3c9Y1tyPj4y
XXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9Uj1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4y
XT1SfX13aGlsZSgwKTtjW2s+PjJdPWZEKEssY1twPj4yXXwwLGosdCl8MDtmdChtLHYsY1tyPj4y
XXwwLGopO2Rve2lmKEUpe1Y9MH1lbHNle3I9Y1tCKzEyPj4yXXwwO2lmKChyfDApPT0oY1tCKzE2
Pj4yXXwwKSl7Vz1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtXPWNbcj4+
Ml18MH1pZigoV3wwKSE9LTEpe1Y9QjticmVha31jW2g+PjJdPTA7Vj0wfX13aGlsZSgwKTtoPShW
fDApPT0wO2Rve2lmKE0pe0Y9NzAyfWVsc2V7Qj1jW0wrMTI+PjJdfDA7aWYoKEJ8MCk9PShjW0wr
MTY+PjJdfDApKXtYPWIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MH1lbHNle1g9Y1tC
Pj4yXXwwfWlmKChYfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NzAyO2JyZWFrfWlmKCEoaF4oTHwwKT09
MCkpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgw
KTtkb3tpZigoRnwwKT09NzAyKXtpZihoKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAo
bSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7WT1ifDA7Y1tZPj4yXT1W
O2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZiQoYixlLGYsZyxoLGosayl7Yj1ifDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9
MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0w
LFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MDtlPWk7aT1pKzE0NHwwO2w9ZjtmPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzExMnwwO249ZSsxMjh8MDtvPW47cD1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztz
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0x
NjticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7
dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChh
W29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJd
fDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7
Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1jW2g+PjJdfDA7TDg5MTp3aGls
ZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+PjJdfDA7aWYoKEN8MCk9PShj
W3crMTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MH1lbHNle0Q9
Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDAp
O0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTApe0Y9NzMwfWVsc2V7Rz1jW0Mr
MTI+PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDApKXtIPWIwW2NbKGNbQz4+Ml18MCkrMzY+
PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlmKChIfDApPT0tMSl7Y1tmPj4yXT0wO0Y9
NzMwO2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztKPUc7YnJlYWt9ZWxzZXtMPWw7
TT1DO049RzticmVhayBMODkxfX19fXdoaWxlKDApO2lmKChGfDApPT03MzApe0Y9MDtpZihFKXtM
PWw7TT0wO049MTticmVha31lbHNle0k9MDtKPTF9fUM9ZFtvXXwwO0c9KEMmMXwwKT09MDtpZigo
KGNbcD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEcpe089Qz4+PjE7
UD1DPj4+MX1lbHNle0M9Y1t6Pj4yXXwwO089QztQPUN9ZFIobixPPDwxLDApO2lmKChhW29dJjEp
PT0wKXtRPTEwfWVsc2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKG4sUSwwKTtpZigoYVtvXSYxKT09
MCl7Uj14fWVsc2V7Uj1jW3k+PjJdfDB9Y1twPj4yXT1SK1A7Uz1SfWVsc2V7Uz1sfUM9QisxMnww
O0c9Y1tDPj4yXXwwO1Q9QisxNnwwO2lmKChHfDApPT0oY1tUPj4yXXwwKSl7VT1iMFtjWyhjW0I+
PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtVPWNbRz4+Ml18MH1pZigoZlUoVSx0LFMscCxz
LEEsbSx2LHIsdSl8MCkhPTApe0w9UztNPUk7Tj1KO2JyZWFrfUc9Y1tDPj4yXXwwO2lmKChHfDAp
PT0oY1tUPj4yXXwwKSl7VD1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1QmMTI3XShCKXwwO2w9
Uzt3PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDtsPVM7dz1CO2NvbnRpbnVlfX13PWRbbV18
MDtpZigodyYxfDApPT0wKXtWPXc+Pj4xfWVsc2V7Vj1jW20rND4+Ml18MH1kb3tpZigoVnwwKSE9
MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31TPWNbcz4+Ml18MDtjW3I+PjJd
PXcrNDtjW3c+PjJdPVN9fXdoaWxlKDApO3M9ZkYoTCxjW3A+PjJdfDAsaix0KXwwO2Nbaz4+Ml09
cztjW2srND4+Ml09SztmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEUpe1c9MH1lbHNle3I9Y1tC
KzEyPj4yXXwwO2lmKChyfDApPT0oY1tCKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0I+PjJdfDApKzM2
Pj4yXSYxMjddKEIpfDB9ZWxzZXtYPWNbcj4+Ml18MH1pZigoWHwwKSE9LTEpe1c9QjticmVha31j
W2g+PjJdPTA7Vz0wfX13aGlsZSgwKTtoPShXfDApPT0wO2Rve2lmKE4pe0Y9NzcyfWVsc2V7Qj1j
W00rMTI+PjJdfDA7aWYoKEJ8MCk9PShjW00rMTY+PjJdfDApKXtZPWIwW2NbKGNbTT4+Ml18MCkr
MzY+PjJdJjEyN10oTSl8MH1lbHNle1k9Y1tCPj4yXXwwfWlmKChZfDApPT0tMSl7Y1tmPj4yXT0w
O0Y9NzcyO2JyZWFrfWlmKCEoaF4oTXwwKT09MCkpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChu
KTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRnwwKT09NzcyKXtpZihoKXticmVh
a31aPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4y
XT1jW2o+PjJdfDI7Wj1ifDA7Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rp
b24gZjAoYixlLGYsaCxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7aD1ofDA7aj1qfDA7az1rfDA7
bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxf
PTAsJD0wO2U9aTtpPWkrMTc2fDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09
Y1ttPj4yXTttPWg7aD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1toPj4yXT1jW20+PjJdO209ZSsx
Mjh8MDtuPWUrMTM2fDA7bz1lKzE0NHwwO3A9ZSsxNjB8MDtxPXA7cj1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7cz1pO2k9aSsxNjB8MDt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt1PWk7aT1pKzR8MDtp
PWkrNz4+Mzw8Mzt2PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt3PWk7aT1pKzF8MDtpPWkrNz4+Mzw8
Mzt4PWV8MDtmMShvLGoseCxtLG4pO2skKHF8MCwwLDEyKTtqPXA7ZFIocCwxMCwwKTtpZigoYVtx
XSYxKT09MCl7eT1qKzF8MDt6PXk7QT15O0I9cCs4fDB9ZWxzZXt5PXArOHwwO3o9Y1t5Pj4yXXww
O0E9aisxfDA7Qj15fWNbcj4+Ml09ejt5PXN8MDtjW3Q+PjJdPXk7Y1t1Pj4yXT0wO2Fbdl09MTth
W3ddPTY5O2o9ZnwwO2Y9aHwwO2g9cHwwO0M9cCs0fDA7RD1jW20+PjJdfDA7bT1jW24+PjJdfDA7
bj16O3o9Y1tqPj4yXXwwO0w5NzU6d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle0Y9
Y1t6KzEyPj4yXXwwO2lmKChGfDApPT0oY1t6KzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW3o+PjJdfDAp
KzM2Pj4yXSYxMjddKHopfDB9ZWxzZXtHPWNbRj4+Ml18MH1pZigoR3wwKSE9LTEpe0U9ejticmVh
a31jW2o+PjJdPTA7RT0wfX13aGlsZSgwKTtIPShFfDApPT0wO0Y9Y1tmPj4yXXwwO2Rve2lmKChG
fDApPT0wKXtJPTc5Nn1lbHNle0o9Y1tGKzEyPj4yXXwwO2lmKChKfDApPT0oY1tGKzE2Pj4yXXww
KSl7Sz1iMFtjWyhjW0Y+PjJdfDApKzM2Pj4yXSYxMjddKEYpfDB9ZWxzZXtLPWNbSj4+Ml18MH1p
ZigoS3wwKT09LTEpe2NbZj4+Ml09MDtJPTc5NjticmVha31lbHNle0o9KEZ8MCk9PTA7aWYoSF5K
KXtMPUY7TT1KO2JyZWFrfWVsc2V7Tj1uO089RjtQPUo7YnJlYWsgTDk3NX19fX13aGlsZSgwKTtp
ZigoSXwwKT09Nzk2KXtJPTA7aWYoSCl7Tj1uO089MDtQPTE7YnJlYWt9ZWxzZXtMPTA7TT0xfX1G
PWRbcV18MDtKPShGJjF8MCk9PTA7aWYoKChjW3I+PjJdfDApLW58MCk9PSgoSj9GPj4+MTpjW0M+
PjJdfDApfDApKXtpZihKKXtRPUY+Pj4xO1I9Rj4+PjF9ZWxzZXtGPWNbQz4+Ml18MDtRPUY7Uj1G
fWRSKHAsUTw8MSwwKTtpZigoYVtxXSYxKT09MCl7Uz0xMH1lbHNle1M9KGNbaD4+Ml0mLTIpLTF8
MH1kUihwLFMsMCk7aWYoKGFbcV0mMSk9PTApe1Q9QX1lbHNle1Q9Y1tCPj4yXXwwfWNbcj4+Ml09
VCtSO1U9VH1lbHNle1U9bn1GPUUrMTJ8MDtKPWNbRj4+Ml18MDtWPUUrMTZ8MDtpZigoSnwwKT09
KGNbVj4+Ml18MCkpe1c9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwfWVsc2V7Vz1j
W0o+PjJdfDB9aWYoKGYyKFcsdix3LFUscixELG0sbyx5LHQsdSx4KXwwKSE9MCl7Tj1VO089TDtQ
PU07YnJlYWt9Sj1jW0Y+PjJdfDA7aWYoKEp8MCk9PShjW1Y+PjJdfDApKXtWPWNbKGNbRT4+Ml18
MCkrNDA+PjJdfDA7YjBbViYxMjddKEUpfDA7bj1VO3o9RTtjb250aW51ZX1lbHNle2NbRj4+Ml09
Sis0O249VTt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6JjF8MCk9PTApe1g9ej4+PjF9ZWxz
ZXtYPWNbbys0Pj4yXXwwfWRve2lmKChYfDApIT0wKXtpZigoYVt2XSYxKT09MCl7YnJlYWt9ej1j
W3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVha31VPWNbdT4+Ml18MDtjW3Q+PjJdPXorNDtj
W3o+PjJdPVV9fXdoaWxlKDApO2dbbD4+Ml09K2ZJKE4sY1tyPj4yXXwwLGspO2Z0KG8seSxjW3Q+
PjJdfDAsayk7ZG97aWYoSCl7WT0wfWVsc2V7dD1jW0UrMTI+PjJdfDA7aWYoKHR8MCk9PShjW0Ur
MTY+PjJdfDApKXtaPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1lbHNle1o9Y1t0
Pj4yXXwwfWlmKChafDApIT0tMSl7WT1FO2JyZWFrfWNbaj4+Ml09MDtZPTB9fXdoaWxlKDApO2o9
KFl8MCk9PTA7ZG97aWYoUCl7ST04Mzl9ZWxzZXtFPWNbTysxMj4+Ml18MDtpZigoRXwwKT09KGNb
TysxNj4+Ml18MCkpe189YjBbY1soY1tPPj4yXXwwKSszNj4+Ml0mMTI3XShPKXwwfWVsc2V7Xz1j
W0U+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2Y+PjJdPTA7ST04Mzk7YnJlYWt9aWYoIShqXihPfDAp
PT0wKSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxl
KDApO2Rve2lmKChJfDApPT04Mzkpe2lmKGope2JyZWFrfSQ9YnwwO2NbJD4+Ml09WTtkUChwKTtk
UChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjskPWJ8MDtjWyQ+PjJd
PVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmMShhLGIsZCxlLGYpe2E9YXwwO2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wO2c9aTtpPWkrNDB8MDtoPWd8MDtqPWcrMTZ8MDtrPWcrMzJ8MDtlaihrLGIp
O2I9a3wwO2s9Y1tiPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tqPj4yXT0xNTY4ODtjW2or
ND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTU2ODgsaiw5Nil9aj0oY1szOTIzXXwwKS0xfDA7bD1j
W2srOD4+Ml18MDtkb3tpZigoY1trKzEyPj4yXXwwKS1sPj4yPj4+MD5qPj4+MCl7bT1jW2wrKGo8
PDIpPj4yXXwwO2lmKChtfDApPT0wKXticmVha31uPW07bz1jWyhjW20+PjJdfDApKzQ4Pj4yXXww
O2NhW28mMTVdKG4sOTc0NCw5Nzc2LGQpfDA7bj1jW2I+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0x
KXtjW2g+PjJdPTE1MzA0O2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTMwNCxoLDk2KX1v
PShjWzM4MjddfDApLTF8MDttPWNbbis4Pj4yXXwwO2Rve2lmKChjW24rMTI+PjJdfDApLW0+PjI+
Pj4wPm8+Pj4wKXtwPWNbbSsobzw8Mik+PjJdfDA7aWYoKHB8MCk9PTApe2JyZWFrfXE9cDtyPXA7
Y1tlPj4yXT1iMFtjWyhjW3I+PjJdfDApKzEyPj4yXSYxMjddKHEpfDA7Y1tmPj4yXT1iMFtjWyhj
W3I+PjJdfDApKzE2Pj4yXSYxMjddKHEpfDA7YlpbY1soY1twPj4yXXwwKSsyMD4+Ml0mMTI3XShh
LHEpO3E9Y1tiPj4yXXwwO2R6KHEpfDA7aT1nO3JldHVybn19d2hpbGUoMCk7bz1iTyg0KXwwO2tx
KG8pO2JsKG98MCw4MTc2LDEzNCl9fXdoaWxlKDApO2c9Yk8oNCl8MDtrcShnKTtibChnfDAsODE3
NiwxMzQpfWZ1bmN0aW9uIGYyKGIsZSxmLGcsaCxpLGosayxsLG0sbixvKXtiPWJ8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDtuPW58MDtvPW98
MDt2YXIgcD0wLHE9MCxyPTAscz0wLHQ9MDtpZigoYnwwKT09KGl8MCkpe2lmKChhW2VdJjEpPT0w
KXtwPS0xO3JldHVybiBwfDB9YVtlXT0wO2k9Y1toPj4yXXwwO2NbaD4+Ml09aSsxO2FbaV09NDY7
aT1kW2tdfDA7aWYoKGkmMXwwKT09MCl7cT1pPj4+MX1lbHNle3E9Y1trKzQ+PjJdfDB9aWYoKHF8
MCk9PTApe3A9MDtyZXR1cm4gcHwwfXE9Y1ttPj4yXXwwO2lmKChxLWx8MCk+PTE2MCl7cD0wO3Jl
dHVybiBwfDB9aT1jW24+PjJdfDA7Y1ttPj4yXT1xKzQ7Y1txPj4yXT1pO3A9MDtyZXR1cm4gcHww
fWRve2lmKChifDApPT0oanwwKSl7aT1kW2tdfDA7aWYoKGkmMXwwKT09MCl7cj1pPj4+MX1lbHNl
e3I9Y1trKzQ+PjJdfDB9aWYoKHJ8MCk9PTApe2JyZWFrfWlmKChhW2VdJjEpPT0wKXtwPS0xO3Jl
dHVybiBwfDB9aT1jW20+PjJdfDA7aWYoKGktbHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8MH1xPWNb
bj4+Ml18MDtjW20+PjJdPWkrNDtjW2k+PjJdPXE7Y1tuPj4yXT0wO3A9MDtyZXR1cm4gcHwwfX13
aGlsZSgwKTtyPW8rMTI4fDA7aj1vO3doaWxlKDEpe2lmKChqfDApPT0ocnwwKSl7cz1yO2JyZWFr
fWlmKChjW2o+PjJdfDApPT0oYnwwKSl7cz1qO2JyZWFrfWVsc2V7aj1qKzR8MH19aj1zLW98MDtv
PWo+PjI7aWYoKGp8MCk+MTI0KXtwPS0xO3JldHVybiBwfDB9cz1hWzk3NDQrb3wwXXwwO0wxMTE1
OmRve3N3aXRjaChvfDApe2Nhc2UgMjU6Y2FzZSAyNDp7Yj1jW2g+PjJdfDA7ZG97aWYoKGJ8MCkh
PShnfDApKXtpZigoYVtiLTF8MF0mOTV8MCk9PShhW2ZdJjEyN3wwKSl7YnJlYWt9ZWxzZXtwPS0x
fXJldHVybiBwfDB9fXdoaWxlKDApO2NbaD4+Ml09YisxO2FbYl09cztwPTA7cmV0dXJuIHB8MH07
Y2FzZSAyMjpjYXNlIDIzOnthW2ZdPTgwO2JyZWFrfTtkZWZhdWx0OntyPWFbZl18MDtpZigocyY5
NXwwKSE9KHI8PDI0Pj4yNHwwKSl7YnJlYWsgTDExMTV9YVtmXT1yfC0xMjg7aWYoKGFbZV0mMSk9
PTApe2JyZWFrIEwxMTE1fWFbZV09MDtyPWRba118MDtpZigociYxfDApPT0wKXt0PXI+Pj4xfWVs
c2V7dD1jW2srND4+Ml18MH1pZigodHwwKT09MCl7YnJlYWsgTDExMTV9cj1jW20+PjJdfDA7aWYo
KHItbHwwKT49MTYwKXticmVhayBMMTExNX1xPWNbbj4+Ml18MDtjW20+PjJdPXIrNDtjW3I+PjJd
PXF9fX13aGlsZSgwKTttPWNbaD4+Ml18MDtjW2g+PjJdPW0rMTthW21dPXM7aWYoKGp8MCk+ODQp
e3A9MDtyZXR1cm4gcHwwfWNbbj4+Ml09KGNbbj4+Ml18MCkrMTtwPTA7cmV0dXJuIHB8MH1mdW5j
dGlvbiBmMyhiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8
MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0w
LF89MCwkPTA7ZT1pO2k9aSsxNzZ8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4y
XT1jW20+PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1l
KzEyOHwwO249ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1lKzE2MHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4z
PDwzO3g9ZXwwO2YxKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChh
W3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJd
fDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0x
O2Fbd109Njk7aj1mfDA7Zj1nfDA7Zz1wfDA7Qz1wKzR8MDtEPWNbbT4+Ml18MDttPWNbbj4+Ml18
MDtuPXo7ej1jW2o+PjJdfDA7TDExNDM6d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNl
e0Y9Y1t6KzEyPj4yXXwwO2lmKChGfDApPT0oY1t6KzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW3o+PjJd
fDApKzM2Pj4yXSYxMjddKHopfDB9ZWxzZXtHPWNbRj4+Ml18MH1pZigoR3wwKSE9LTEpe0U9ejti
cmVha31jW2o+PjJdPTA7RT0wfX13aGlsZSgwKTtIPShFfDApPT0wO0Y9Y1tmPj4yXXwwO2Rve2lm
KChGfDApPT0wKXtJPTkyOX1lbHNle0o9Y1tGKzEyPj4yXXwwO2lmKChKfDApPT0oY1tGKzE2Pj4y
XXwwKSl7Sz1iMFtjWyhjW0Y+PjJdfDApKzM2Pj4yXSYxMjddKEYpfDB9ZWxzZXtLPWNbSj4+Ml18
MH1pZigoS3wwKT09LTEpe2NbZj4+Ml09MDtJPTkyOTticmVha31lbHNle0o9KEZ8MCk9PTA7aWYo
SF5KKXtMPUY7TT1KO2JyZWFrfWVsc2V7Tj1uO089RjtQPUo7YnJlYWsgTDExNDN9fX19d2hpbGUo
MCk7aWYoKEl8MCk9PTkyOSl7ST0wO2lmKEgpe049bjtPPTA7UD0xO2JyZWFrfWVsc2V7TD0wO009
MX19Rj1kW3FdfDA7Sj0oRiYxfDApPT0wO2lmKCgoY1tyPj4yXXwwKS1ufDApPT0oKEo/Rj4+PjE6
Y1tDPj4yXXwwKXwwKSl7aWYoSil7UT1GPj4+MTtSPUY+Pj4xfWVsc2V7Rj1jW0M+PjJdfDA7UT1G
O1I9Rn1kUihwLFE8PDEsMCk7aWYoKGFbcV0mMSk9PTApe1M9MTB9ZWxzZXtTPShjW2c+PjJdJi0y
KS0xfDB9ZFIocCxTLDApO2lmKChhW3FdJjEpPT0wKXtUPUF9ZWxzZXtUPWNbQj4+Ml18MH1jW3I+
PjJdPVQrUjtVPVR9ZWxzZXtVPW59Rj1FKzEyfDA7Sj1jW0Y+PjJdfDA7Vj1FKzE2fDA7aWYoKEp8
MCk9PShjW1Y+PjJdfDApKXtXPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1lbHNl
e1c9Y1tKPj4yXXwwfWlmKChmMihXLHYsdyxVLHIsRCxtLG8seSx0LHUseCl8MCkhPTApe049VTtP
PUw7UD1NO2JyZWFrfUo9Y1tGPj4yXXwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vj1jWyhjW0U+
PjJdfDApKzQwPj4yXXwwO2IwW1YmMTI3XShFKXwwO249VTt6PUU7Y29udGludWV9ZWxzZXtjW0Y+
PjJdPUorNDtuPVU7ej1FO2NvbnRpbnVlfX16PWRbb118MDtpZigoeiYxfDApPT0wKXtYPXo+Pj4x
fWVsc2V7WD1jW28rND4+Ml18MH1kb3tpZigoWHwwKSE9MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFr
fXo9Y1t0Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7YnJlYWt9VT1jW3U+PjJdfDA7Y1t0Pj4yXT16
KzQ7Y1t6Pj4yXT1VfX13aGlsZSgwKTtoW2w+PjNdPStmTChOLGNbcj4+Ml18MCxrKTtmdChvLHks
Y1t0Pj4yXXwwLGspO2Rve2lmKEgpe1k9MH1lbHNle3Q9Y1tFKzEyPj4yXXwwO2lmKCh0fDApPT0o
Y1tFKzE2Pj4yXXwwKSl7Wj1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDB9ZWxzZXta
PWNbdD4+Ml18MH1pZigoWnwwKSE9LTEpe1k9RTticmVha31jW2o+PjJdPTA7WT0wfX13aGlsZSgw
KTtqPShZfDApPT0wO2Rve2lmKFApe0k9OTcyfWVsc2V7RT1jW08rMTI+PjJdfDA7aWYoKEV8MCk9
PShjW08rMTY+PjJdfDApKXtfPWIwW2NbKGNbTz4+Ml18MCkrMzY+PjJdJjEyN10oTyl8MH1lbHNl
e189Y1tFPj4yXXwwfWlmKChffDApPT0tMSl7Y1tmPj4yXT0wO0k9OTcyO2JyZWFrfWlmKCEoal4o
T3wwKT09MCkpe2JyZWFrfSQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtkb3tpZigoSXwwKT09OTcyKXtpZihqKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAo
cCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7JD1ifDA7Y1sk
Pj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZjQoYixlLGYsZyxqLGssbCl7
Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxS
PTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wO2U9aTtpPWkrMTc2fDA7
bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWc7Zz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+PjJdO209ZSsxMjh8MDtuPWUrMTM2fDA7bz1lKzE0
NHwwO3A9ZSsxNjB8MDtxPXA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSsxNjB8MDt0
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PWk7aT1pKzF8
MDtpPWkrNz4+Mzw8Mzt3PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt4PWV8MDtmMShvLGoseCxtLG4p
O2skKHF8MCwwLDEyKTtqPXA7ZFIocCwxMCwwKTtpZigoYVtxXSYxKT09MCl7eT1qKzF8MDt6PXk7
QT15O0I9cCs4fDB9ZWxzZXt5PXArOHwwO3o9Y1t5Pj4yXXwwO0E9aisxfDA7Qj15fWNbcj4+Ml09
ejt5PXN8MDtjW3Q+PjJdPXk7Y1t1Pj4yXT0wO2Fbdl09MTthW3ddPTY5O2o9ZnwwO2Y9Z3wwO2c9
cHwwO0M9cCs0fDA7RD1jW20+PjJdfDA7bT1jW24+PjJdfDA7bj16O3o9Y1tqPj4yXXwwO0wxMjI4
OndoaWxlKDEpe2Rve2lmKCh6fDApPT0wKXtFPTB9ZWxzZXtGPWNbeisxMj4+Ml18MDtpZigoRnww
KT09KGNbeisxNj4+Ml18MCkpe0c9YjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVs
c2V7Rz1jW0Y+PjJdfDB9aWYoKEd8MCkhPS0xKXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hp
bGUoMCk7SD0oRXwwKT09MDtGPWNbZj4+Ml18MDtkb3tpZigoRnwwKT09MCl7ST05OTZ9ZWxzZXtK
PWNbRisxMj4+Ml18MDtpZigoSnwwKT09KGNbRisxNj4+Ml18MCkpe0s9YjBbY1soY1tGPj4yXXww
KSszNj4+Ml0mMTI3XShGKXwwfWVsc2V7Sz1jW0o+PjJdfDB9aWYoKEt8MCk9PS0xKXtjW2Y+PjJd
PTA7ST05OTY7YnJlYWt9ZWxzZXtKPShGfDApPT0wO2lmKEheSil7TD1GO009SjticmVha31lbHNl
e049bjtPPUY7UD1KO2JyZWFrIEwxMjI4fX19fXdoaWxlKDApO2lmKChJfDApPT05OTYpe0k9MDtp
ZihIKXtOPW47Tz0wO1A9MTticmVha31lbHNle0w9MDtNPTF9fUY9ZFtxXXwwO0o9KEYmMXwwKT09
MDtpZigoKGNbcj4+Ml18MCktbnwwKT09KChKP0Y+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKEope1E9
Rj4+PjE7Uj1GPj4+MX1lbHNle0Y9Y1tDPj4yXXwwO1E9RjtSPUZ9ZFIocCxRPDwxLDApO2lmKChh
W3FdJjEpPT0wKXtTPTEwfWVsc2V7Uz0oY1tnPj4yXSYtMiktMXwwfWRSKHAsUywwKTtpZigoYVtx
XSYxKT09MCl7VD1BfWVsc2V7VD1jW0I+PjJdfDB9Y1tyPj4yXT1UK1I7VT1UfWVsc2V7VT1ufUY9
RSsxMnwwO0o9Y1tGPj4yXXwwO1Y9RSsxNnwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vz1iMFtj
WyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDB9ZWxzZXtXPWNbSj4+Ml18MH1pZigoZjIoVyx2
LHcsVSxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtOPVU7Tz1MO1A9TTticmVha31KPWNbRj4+Ml18
MDtpZigoSnwwKT09KGNbVj4+Ml18MCkpe1Y9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtWJjEy
N10oRSl8MDtuPVU7ej1FO2NvbnRpbnVlfWVsc2V7Y1tGPj4yXT1KKzQ7bj1VO3o9RTtjb250aW51
ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7WD16Pj4+MX1lbHNle1g9Y1tvKzQ+PjJdfDB9ZG97
aWYoKFh8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDAp
Pj0xNjApe2JyZWFrfVU9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09VX19d2hpbGUoMCk7
aFtsPj4zXT0rZk4oTixjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihIKXtZ
PTB9ZWxzZXt0PWNbRSsxMj4+Ml18MDtpZigodHwwKT09KGNbRSsxNj4+Ml18MCkpe1o9YjBbY1so
Y1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwfWVsc2V7Wj1jW3Q+PjJdfDB9aWYoKFp8MCkhPS0x
KXtZPUU7YnJlYWt9Y1tqPj4yXT0wO1k9MH19d2hpbGUoMCk7aj0oWXwwKT09MDtkb3tpZihQKXtJ
PTEwMzl9ZWxzZXtFPWNbTysxMj4+Ml18MDtpZigoRXwwKT09KGNbTysxNj4+Ml18MCkpe189YjBb
Y1soY1tPPj4yXXwwKSszNj4+Ml0mMTI3XShPKXwwfWVsc2V7Xz1jW0U+PjJdfDB9aWYoKF98MCk9
PS0xKXtjW2Y+PjJdPTA7ST0xMDM5O2JyZWFrfWlmKCEoal4oT3wwKT09MCkpe2JyZWFrfSQ9Ynww
O2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoSXwwKT09
MTAzOSl7aWYoail7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59
fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwyOyQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtp
PWU7cmV0dXJufWZ1bmN0aW9uIGY1KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0
aW9uIGY2KGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGY3KGIsZSxmLGcsaCxqLGsp
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAs
UT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2U9aTtpPWkrMTM2fDA7bD1m
O2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZXwwO209ZSsxNnwwO249ZSsxMjB8MDtvPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztwPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7cT1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7cj1pO2k9aSsxNjB8MDtzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt0PWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztrJChufDAsMCwxMik7dT1wO2VqKG8saCk7aD1vfDA7bz1jW2g+PjJd
fDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+
Ml09MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8MDt2PWNbbys4Pj4yXXwwO2Rve2lm
KChjW28rMTI+PjJdfDApLXY+PjI+Pj4wPmw+Pj4wKXt3PWNbdisobDw8Mik+PjJdfDA7aWYoKHd8
MCk9PTApe2JyZWFrfXg9dzt5PW18MDt6PWNbKGNbdz4+Ml18MCkrNDg+PjJdfDA7Y2FbeiYxNV0o
eCw5NzQ0LDk3NzAseSl8MDt4PWNbaD4+Ml18MDtkeih4KXwwO2skKHV8MCwwLDEyKTt4PXA7ZFIo
cCwxMCwwKTtpZigoYVt1XSYxKT09MCl7ej14KzF8MDtBPXo7Qj16O0M9cCs4fDB9ZWxzZXt6PXAr
OHwwO0E9Y1t6Pj4yXXwwO0I9eCsxfDA7Qz16fWNbcT4+Ml09QTt6PXJ8MDtjW3M+PjJdPXo7Y1t0
Pj4yXT0wO3g9ZnwwO3c9Z3wwO0Q9cHwwO0U9cCs0fDA7Rj1BO0c9Y1t4Pj4yXXwwO0wxMzIzOndo
aWxlKDEpe2Rve2lmKChHfDApPT0wKXtIPTB9ZWxzZXtJPWNbRysxMj4+Ml18MDtpZigoSXwwKT09
KGNbRysxNj4+Ml18MCkpe0o9YjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwfWVsc2V7
Sj1jW0k+PjJdfDB9aWYoKEp8MCkhPS0xKXtIPUc7YnJlYWt9Y1t4Pj4yXT0wO0g9MH19d2hpbGUo
MCk7ST0oSHwwKT09MDtLPWNbdz4+Ml18MDtkb3tpZigoS3wwKT09MCl7TD0xMDczfWVsc2V7TT1j
W0srMTI+PjJdfDA7aWYoKE18MCk9PShjW0srMTY+PjJdfDApKXtOPWIwW2NbKGNbSz4+Ml18MCkr
MzY+PjJdJjEyN10oSyl8MH1lbHNle049Y1tNPj4yXXwwfWlmKChOfDApPT0tMSl7Y1t3Pj4yXT0w
O0w9MTA3MzticmVha31lbHNle2lmKEleKEt8MCk9PTApe2JyZWFrfWVsc2V7Tz1GO2JyZWFrIEwx
MzIzfX19fXdoaWxlKDApO2lmKChMfDApPT0xMDczKXtMPTA7aWYoSSl7Tz1GO2JyZWFrfX1LPWRb
dV18MDtNPShLJjF8MCk9PTA7aWYoKChjW3E+PjJdfDApLUZ8MCk9PSgoTT9LPj4+MTpjW0U+PjJd
fDApfDApKXtpZihNKXtQPUs+Pj4xO1E9Sz4+PjF9ZWxzZXtLPWNbRT4+Ml18MDtQPUs7UT1LfWRS
KHAsUDw8MSwwKTtpZigoYVt1XSYxKT09MCl7Uj0xMH1lbHNle1I9KGNbRD4+Ml0mLTIpLTF8MH1k
UihwLFIsMCk7aWYoKGFbdV0mMSk9PTApe1M9Qn1lbHNle1M9Y1tDPj4yXXwwfWNbcT4+Ml09UytR
O1Q9U31lbHNle1Q9Rn1LPUgrMTJ8MDtNPWNbSz4+Ml18MDtVPUgrMTZ8MDtpZigoTXwwKT09KGNb
VT4+Ml18MCkpe1Y9YjBbY1soY1tIPj4yXXwwKSszNj4+Ml0mMTI3XShIKXwwfWVsc2V7Vj1jW00+
PjJdfDB9aWYoKGZVKFYsMTYsVCxxLHQsMCxuLHoscyx5KXwwKSE9MCl7Tz1UO2JyZWFrfU09Y1tL
Pj4yXXwwO2lmKChNfDApPT0oY1tVPj4yXXwwKSl7VT1jWyhjW0g+PjJdfDApKzQwPj4yXXwwO2Iw
W1UmMTI3XShIKXwwO0Y9VDtHPUg7Y29udGludWV9ZWxzZXtjW0s+PjJdPU0rNDtGPVQ7Rz1IO2Nv
bnRpbnVlfX1hW08rM3wwXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXww
KT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Rz1mUihPLGNbMjk1
OF18MCwxMzIwLChGPWksaT1pKzh8MCxjW0Y+PjJdPWssRil8MCl8MDtpPUY7aWYoKEd8MCkhPTEp
e2Nbaj4+Ml09NH1HPWNbeD4+Ml18MDtkb3tpZigoR3wwKT09MCl7Vz0wfWVsc2V7Rj1jW0crMTI+
PjJdfDA7aWYoKEZ8MCk9PShjW0crMTY+PjJdfDApKXtYPWIwW2NbKGNbRz4+Ml18MCkrMzY+PjJd
JjEyN10oRyl8MH1lbHNle1g9Y1tGPj4yXXwwfWlmKChYfDApIT0tMSl7Vz1HO2JyZWFrfWNbeD4+
Ml09MDtXPTB9fXdoaWxlKDApO3g9KFd8MCk9PTA7Rz1jW3c+PjJdfDA7ZG97aWYoKEd8MCk9PTAp
e0w9MTExOH1lbHNle0Y9Y1tHKzEyPj4yXXwwO2lmKChGfDApPT0oY1tHKzE2Pj4yXXwwKSl7WT1i
MFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDB9ZWxzZXtZPWNbRj4+Ml18MH1pZigoWXww
KT09LTEpe2Nbdz4+Ml09MDtMPTExMTg7YnJlYWt9aWYoISh4XihHfDApPT0wKSl7YnJlYWt9Wj1i
fDA7Y1taPj4yXT1XO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChMfDAp
PT0xMTE4KXtpZih4KXticmVha31aPWJ8MDtjW1o+PjJdPVc7ZFAocCk7ZFAobik7aT1lO3JldHVy
bn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7Wj1ifDA7Y1taPj4yXT1XO2RQKHApO2RQKG4p
O2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1
bmN0aW9uIGY4KGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MCx4PTA7ZD1pO2k9aSs4MHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8
MDtwPWQrNzJ8MDtxPWp8MDthW3FdPWFbMjM4NF18MDthW3ErMXwwXT1hWzIzODV8MF18MDthW3Er
MnwwXT1hWzIzODZ8MF18MDthW3ErM3wwXT1hWzIzODd8MF18MDthW3ErNHwwXT1hWzIzODh8MF18
MDthW3ErNXwwXT1hWzIzODl8MF18MDtyPWorMXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQm
MjA0OHwwKT09MCl7dT1yfWVsc2V7YVtyXT00Mzt1PWorMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11
fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4O3U9disxfDA7TDE0MTA6ZG97c3dpdGNoKHQm
NzR8MCl7Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9O2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTAp
e2FbdV09MTIwO2JyZWFrIEwxNDEwfWVsc2V7YVt1XT04ODticmVhayBMMTQxMH1icmVha307ZGVm
YXVsdDp7YVt1XT0xMDB9fX13aGlsZSgwKTt1PWt8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O3Q9Z2IodSwxMixjWzI5NThdfDAscSwocT1pLGk9aSs4fDAsY1txPj4yXT1oLHEpfDApfDA7aT1x
O3E9ayt0fDA7TDE0MjM6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMzI6e3c9cTticmVh
a307Y2FzZSAxNjp7aD1hW3VdfDA7c3dpdGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3
PWsrMXwwO2JyZWFrIEwxNDIzO2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZoPDwyND4+
MjQ9PTQ4KSl7eD0xMTQ3O2JyZWFrIEwxNDIzfXN3aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpj
YXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xMTQ3O2JyZWFrIEwxNDIzfX13PWsrMnwwO2JyZWFr
fTtkZWZhdWx0Ont4PTExNDd9fX13aGlsZSgwKTtpZigoeHwwKT09MTE0Nyl7dz11fXg9bHwwO2Vq
KG8sZik7Z2ModSx3LHEseCxtLG4sbyk7ZHooY1tvPj4yXXwwKXwwO2NbcD4+Ml09Y1tlPj4yXTtm
OShiLHAseCxjW20+PjJdfDAsY1tuPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlvbiBmOShi
LGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2
YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7aT1pKzE2fDA7bD1kO2Q9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tsPj4yXTtsPWt8MDttPWR8MDtkPWNbbT4+Ml18
MDtpZigoZHwwKT09MCl7Y1tiPj4yXT0wO2k9aztyZXR1cm59bj1nO2c9ZTtvPW4tZ3wwO3A9aCsx
MnwwO2g9Y1twPj4yXXwwO3E9KGh8MCk+KG98MCk/aC1vfDA6MDtvPWY7aD1vLWd8MDtkb3tpZigo
aHwwKT4wKXtpZigoYjFbY1soY1tkPj4yXXwwKSs0OD4+Ml0mNjNdKGQsZSxoKXwwKT09KGh8MCkp
e2JyZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7aT1rO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKHF8
MCk+MCl7ZF8obCxxLGopO2lmKChhW2xdJjEpPT0wKXtyPWwrMXwwfWVsc2V7cj1jW2wrOD4+Ml18
MH1pZigoYjFbY1soY1tkPj4yXXwwKSs0OD4+Ml0mNjNdKGQscixxKXwwKT09KHF8MCkpe2RQKGwp
O2JyZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7ZFAobCk7aT1rO3JldHVybn19d2hpbGUoMCk7bD1u
LW98MDtkb3tpZigobHwwKT4wKXtpZigoYjFbY1soY1tkPj4yXXwwKSs0OD4+Ml0mNjNdKGQsZixs
KXwwKT09KGx8MCkpe2JyZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7aT1rO3JldHVybn19d2hpbGUo
MCk7Y1twPj4yXT0wO2NbYj4+Ml09ZDtpPWs7cmV0dXJufWZ1bmN0aW9uIGdhKGIsZCxlLGYsZyxo
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wO2o9aTtpPWkr
NDh8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9
aisxNnwwO209aisyNHwwO249aiszMnwwO2lmKChjW2YrND4+Ml0mMXwwKT09MCl7bz1jWyhjW2Q+
PjJdfDApKzI0Pj4yXXwwO2NbbD4+Ml09Y1tlPj4yXTtiOVtvJjMxXShiLGQsbCxmLGcsaCYxKTtp
PWo7cmV0dXJufWVqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtj
W2s+PjJdPTE1MzEyO2Nbays0Pj4yXT0xMjtjW2srOD4+Ml09MDtkVygxNTMxMixrLDk2KX1rPShj
WzM4MjldfDApLTF8MDtnPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLWc+PjI+Pj4w
Pms+Pj4wKXtsPWNbZysoazw8Mik+PjJdfDA7aWYoKGx8MCk9PTApe2JyZWFrfWQ9bDtvPWNbZj4+
Ml18MDtkeihvKXwwO289Y1tsPj4yXXwwO2lmKGgpe2JaW2NbbysyND4+Ml0mMTI3XShuLGQpfWVs
c2V7YlpbY1tvKzI4Pj4yXSYxMjddKG4sZCl9ZD1uO289bjtsPWFbb118MDtpZigobCYxKT09MCl7
cD1kKzF8MDtxPXA7cj1wO3M9bis4fDB9ZWxzZXtwPW4rOHwwO3E9Y1twPj4yXXwwO3I9ZCsxfDA7
cz1wfXA9ZXwwO2Q9bis0fDA7dD1xO3U9bDt3aGlsZSgxKXtpZigodSYxKT09MCl7dj1yfWVsc2V7
dj1jW3M+PjJdfDB9bD11JjI1NTtpZigodHwwKT09KHYrKChsJjF8MCk9PTA/bD4+PjE6Y1tkPj4y
XXwwKXwwKSl7YnJlYWt9bD1hW3RdfDA7dz1jW3A+PjJdfDA7ZG97aWYoKHd8MCkhPTApe3g9dysy
NHwwO3k9Y1t4Pj4yXXwwO2lmKCh5fDApIT0oY1t3KzI4Pj4yXXwwKSl7Y1t4Pj4yXT15KzE7YVt5
XT1sO2JyZWFrfWlmKChiX1tjWyhjW3c+PjJdfDApKzUyPj4yXSYzMV0odyxsJjI1NSl8MCkhPS0x
KXticmVha31jW3A+PjJdPTB9fXdoaWxlKDApO3Q9dCsxfDA7dT1hW29dfDB9Y1tiPj4yXT1jW3A+
PjJdO2RQKG4pO2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8oNCl8MDtrcShqKTtibChqfDAsODE3
NiwxMzQpfWZ1bmN0aW9uIGdiKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7dmFyIGc9MCxoPTAsaj0wO2c9aTtpPWkrMTZ8MDtoPWd8MDtqPWg7Y1tqPj4yXT1mO2Nbais0
Pj4yXT0wO2o9YkIoZHwwKXwwO2Q9YkMoYXwwLGJ8MCxlfDAsaHwwKXwwO2lmKChqfDApPT0wKXtp
PWc7cmV0dXJuIGR8MH1iQihqfDApfDA7aT1nO3JldHVybiBkfDB9ZnVuY3Rpb24gZ2MoYixlLGYs
ZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0w
LEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wO2w9aTtpPWkr
NDh8MDttPWx8MDtuPWwrMTZ8MDtvPWwrMzJ8MDtwPWt8MDtrPWNbcD4+Ml18MDtpZigoY1szOTI0
XXwwKSE9LTEpe2Nbbj4+Ml09MTU2OTY7Y1tuKzQ+PjJdPTEyO2Nbbis4Pj4yXT0wO2RXKDE1Njk2
LG4sOTYpfW49KGNbMzkyNV18MCktMXwwO3E9Y1trKzg+PjJdfDA7aWYoKGNbaysxMj4+Ml18MCkt
cT4+Mj4+PjA8PW4+Pj4wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9az1j
W3ErKG48PDIpPj4yXXwwO2lmKChrfDApPT0wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4
MTc2LDEzNCl9cj1rO3M9Y1twPj4yXXwwO2lmKChjWzM4MjhdfDApIT0tMSl7Y1ttPj4yXT0xNTMx
MjtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTUzMTIsbSw5Nil9bT0oY1szODI5XXwwKS0x
fDA7cD1jW3MrOD4+Ml18MDtpZigoY1tzKzEyPj4yXXwwKS1wPj4yPj4+MDw9bT4+PjApe3Q9Yk8o
NCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX1zPWNbcCsobTw8Mik+PjJdfDA7aWYoKHN8
MCk9PTApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX10PXM7YlpbY1soY1tz
Pj4yXXwwKSsyMD4+Ml0mMTI3XShvLHQpO3U9bzttPW87cD1kW21dfDA7aWYoKHAmMXwwKT09MCl7
dj1wPj4+MX1lbHNle3Y9Y1tvKzQ+PjJdfDB9ZG97aWYoKHZ8MCk9PTApe3A9Y1soY1trPj4yXXww
KSszMj4+Ml18MDtjYVtwJjE1XShyLGIsZixnKXwwO2Nbaj4+Ml09ZysoZi1iKX1lbHNle2Nbaj4+
Ml09ZztwPWFbYl18MDtzd2l0Y2gocDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e249Yl9bY1so
Y1trPj4yXXwwKSsyOD4+Ml0mMzFdKHIscCl8MDtwPWNbaj4+Ml18MDtjW2o+PjJdPXArMTthW3Bd
PW47dz1iKzF8MDticmVha307ZGVmYXVsdDp7dz1ifX1MMTUzMzpkb3tpZigoZi13fDApPjEpe2lm
KChhW3ddfDApIT00OCl7eD13O2JyZWFrfW49dysxfDA7c3dpdGNoKGFbbl18MCl7Y2FzZSAxMjA6
Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9dzticmVhayBMMTUzM319cD1rO3E9Yl9bY1soY1tw
Pj4yXXwwKSsyOD4+Ml0mMzFdKHIsNDgpfDA7eT1jW2o+PjJdfDA7Y1tqPj4yXT15KzE7YVt5XT1x
O3E9Yl9bY1soY1twPj4yXXwwKSsyOD4+Ml0mMzFdKHIsYVtuXXwwKXwwO249Y1tqPj4yXXwwO2Nb
aj4+Ml09bisxO2Fbbl09cTt4PXcrMnwwfWVsc2V7eD13fX13aGlsZSgwKTtkb3tpZigoeHwwKSE9
KGZ8MCkpe3E9Zi0xfDA7aWYoeD4+PjA8cT4+PjApe3o9eDtBPXF9ZWxzZXticmVha31kb3txPWFb
el18MDthW3pdPWFbQV18MDthW0FdPXE7ej16KzF8MDtBPUEtMXwwO313aGlsZSh6Pj4+MDxBPj4+
MCl9fXdoaWxlKDApO3E9YjBbY1soY1tzPj4yXXwwKSsxNj4+Ml0mMTI3XSh0KXwwO2lmKHg+Pj4w
PGY+Pj4wKXtuPXUrMXwwO3A9azt5PW8rNHwwO0I9bys4fDA7Qz0wO0Q9MDtFPXg7d2hpbGUoMSl7
Rj0oYVttXSYxKT09MDtkb3tpZigoYVsoRj9uOmNbQj4+Ml18MCkrRHwwXXwwKT09MCl7Rz1EO0g9
Q31lbHNle2lmKChDfDApIT0oYVsoRj9uOmNbQj4+Ml18MCkrRHwwXXwwKSl7Rz1EO0g9QzticmVh
a31JPWNbaj4+Ml18MDtjW2o+PjJdPUkrMTthW0ldPXE7ST1kW21dfDA7Rz0oRD4+PjA8KCgoSSYx
fDApPT0wP0k+Pj4xOmNbeT4+Ml18MCktMXwwKT4+PjApK0R8MDtIPTB9fXdoaWxlKDApO0Y9Yl9b
Y1soY1twPj4yXXwwKSsyOD4+Ml0mMzFdKHIsYVtFXXwwKXwwO0k9Y1tqPj4yXXwwO2Nbaj4+Ml09
SSsxO2FbSV09RjtGPUUrMXwwO2lmKEY+Pj4wPGY+Pj4wKXtDPUgrMXwwO0Q9RztFPUZ9ZWxzZXti
cmVha319fUU9ZysoeC1iKXwwO0Q9Y1tqPj4yXXwwO2lmKChFfDApPT0oRHwwKSl7YnJlYWt9Qz1E
LTF8MDtpZihFPj4+MDxDPj4+MCl7Sj1FO0s9Q31lbHNle2JyZWFrfWRve0M9YVtKXXwwO2FbSl09
YVtLXXwwO2FbS109QztKPUorMXwwO0s9Sy0xfDA7fXdoaWxlKEo+Pj4wPEs+Pj4wKX19d2hpbGUo
MCk7aWYoKGV8MCk9PShmfDApKXtMPWNbaj4+Ml18MDtjW2g+PjJdPUw7ZFAobyk7aT1sO3JldHVy
bn1lbHNle0w9ZysoZS1iKXwwO2NbaD4+Ml09TDtkUChvKTtpPWw7cmV0dXJufX1mdW5jdGlvbiBn
ZChiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8
MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MDtkPWk7aT1pKzExMnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNb
az4+Ml07az1kfDA7bD1kKzh8MDttPWQrMzJ8MDtuPWQrODB8MDtvPWQrODh8MDtwPWQrOTZ8MDtx
PWQrMTA0fDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDtyPWs7az1yKzF8MDtzPWYrNHwwO3Q9Y1tz
Pj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9a31lbHNle2Fba109NDM7dT1yKzJ8MH1pZigodCY1
MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODthW3YrMXwwXT0xMDg7
dT12KzJ8MDtMMTU3NDpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDY0OnthW3VdPTExMTticmVha307
Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDE1NzR9ZWxzZXthW3Vd
PTg4O2JyZWFrIEwxNTc0fWJyZWFrfTtkZWZhdWx0OnthW3VdPTEwMH19fXdoaWxlKDApO3U9bHww
O2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDIyLGNbMjk1OF18MCxyLChyPWksaT1p
KzE2fDAsY1tyPj4yXT1oLGNbcis4Pj4yXT1qLHIpfDApfDA7aT1yO3I9bCt0fDA7TDE1ODc6ZG97
c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMTY6e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQp
e2Nhc2UgNDU6Y2FzZSA0Mzp7dz1sKzF8MDticmVhayBMMTU4NzticmVha307ZGVmYXVsdDp7fX1p
ZighKCh0fDApPjEmajw8MjQ+PjI0PT00OCkpe3g9MTI4NjticmVhayBMMTU4N31zd2l0Y2goYVts
KzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTI4NjticmVhayBM
MTU4N319dz1sKzJ8MDticmVha307Y2FzZSAzMjp7dz1yO2JyZWFrfTtkZWZhdWx0Ont4PTEyODZ9
fX13aGlsZSgwKTtpZigoeHwwKT09MTI4Nil7dz11fXg9bXwwO2VqKHAsZik7Z2ModSx3LHIseCxu
LG8scCk7ZHooY1twPj4yXXwwKXwwO2NbcT4+Ml09Y1tlPj4yXTtmOShiLHEseCxjW24+PjJdfDAs
Y1tvPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlvbiBnZShiLGQsZSxmLGcsaCl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrODB8MDtqPWU7ZT1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9ZHwwO2s9ZCs4fDA7bD1kKzI0
fDA7bT1kKzQ4fDA7bj1kKzU2fDA7bz1kKzY0fDA7cD1kKzcyfDA7cT1qfDA7YVtxXT1hWzIzODRd
fDA7YVtxKzF8MF09YVsyMzg1fDBdfDA7YVtxKzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsy
Mzg3fDBdfDA7YVtxKzR8MF09YVsyMzg4fDBdfDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8
MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7
dT1qKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEw
ODt1PXYrMXwwO0wxNjA1OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFr
fTtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBMMTYwNX1lbHNle2Fb
dV09ODg7YnJlYWsgTDE2MDV9YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTE3fX19d2hpbGUoMCk7dT1r
fDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5
NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxp
PWkrOHwwLGNbcT4+Ml09aCxxKXwwKXwwO2k9cTtxPWsrdHwwO0wxNjE4OmRve3N3aXRjaChjW3M+
PjJdJjE3NnwwKXtjYXNlIDMyOnt3PXE7YnJlYWt9O2Nhc2UgMTY6e2g9YVt1XXwwO3N3aXRjaCho
PDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7dz1rKzF8MDticmVhayBMMTYxODticmVha307ZGVm
YXVsdDp7fX1pZighKCh0fDApPjEmaDw8MjQ+PjI0PT00OCkpe3g9MTMxMTticmVhayBMMTYxOH1z
d2l0Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTMx
MTticmVhayBMMTYxOH19dz1rKzJ8MDticmVha307ZGVmYXVsdDp7eD0xMzExfX19d2hpbGUoMCk7
aWYoKHh8MCk9PTEzMTEpe3c9dX14PWx8MDtlaihvLGYpO2djKHUsdyxxLHgsbSxuLG8pO2R6KGNb
bz4+Ml18MCl8MDtjW3A+PjJdPWNbZT4+Ml07ZjkoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxm
LGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2YoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsxMTJ8MDtrPWU7ZT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7bj1k
KzgwfDA7bz1kKzg4fDA7cD1kKzk2fDA7cT1kKzEwNHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7
cj1rO2s9cisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PWt9ZWxz
ZXthW2tdPTQzO3U9cisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsx
fDB9YVt2XT0xMDg7YVt2KzF8MF09MTA4O3U9disyfDA7TDE2MzY6ZG97c3dpdGNoKHQmNzR8MCl7
Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDE2MzZ9ZWxzZXthW3Vd
PTg4O2JyZWFrIEwxNjM2fWJyZWFrfTtjYXNlIDY0OnthW3VdPTExMTticmVha307ZGVmYXVsdDp7
YVt1XT0xMTd9fX13aGlsZSgwKTt1PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygx
NjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2Io
dSwyMyxjWzI5NThdfDAsciwocj1pLGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09aixyKXww
KXwwO2k9cjtyPWwrdHwwO0wxNjQ5OmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2Ontq
PWFbdV18MDtzd2l0Y2goajw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9bCsxfDA7YnJlYWsg
TDE2NDk7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmo8PDI0Pj4yND09NDgpKXt4PTEz
MzY7YnJlYWsgTDE2NDl9c3dpdGNoKGFbbCsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFr
fTtkZWZhdWx0Ont4PTEzMzY7YnJlYWsgTDE2NDl9fXc9bCsyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9
cjticmVha307ZGVmYXVsdDp7eD0xMzM2fX19d2hpbGUoMCk7aWYoKHh8MCk9PTEzMzYpe3c9dX14
PW18MDtlaihwLGYpO2djKHUsdyxyLHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+PjJdPWNb
ZT4+Ml07ZjkoYixxLHgsY1tuPj4yXXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rp
b24gZ2coYixkLGUsZixnLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9K2o7dmFy
IGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZD1pO2k9aSsx
NTJ8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9
ZCs4fDA7bT1kKzQwfDA7bj1kKzQ4fDA7bz1kKzExMnwwO3A9ZCsxMjB8MDtxPWQrMTI4fDA7cj1k
KzEzNnwwO3M9ZCsxNDR8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3Q9aztrPXQrMXwwO3U9Zis0
fDA7dj1jW3U+PjJdfDA7aWYoKHYmMjA0OHwwKT09MCl7dz1rfWVsc2V7YVtrXT00Mzt3PXQrMnww
fWlmKCh2JjEwMjR8MCk9PTApe3g9d31lbHNle2Fbd109MzU7eD13KzF8MH13PXYmMjYwO2s9dj4+
PjE0O0wxNjY3OmRve2lmKCh3fDApPT0yNjApe2lmKChrJjF8MCk9PTApe2FbeF09OTc7eT0wO2Jy
ZWFrfWVsc2V7YVt4XT02NTt5PTA7YnJlYWt9fWVsc2V7YVt4XT00Njt2PXgrMnwwO2FbeCsxfDBd
PTQyO3N3aXRjaCh3fDApe2Nhc2UgNDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDI7eT0xO2JyZWFr
IEwxNjY3fWVsc2V7YVt2XT03MDt5PTE7YnJlYWsgTDE2Njd9YnJlYWt9O2Nhc2UgMjU2OntpZigo
ayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDE2Njd9ZWxzZXthW3ZdPTY5O3k9MTticmVh
ayBMMTY2N31icmVha307ZGVmYXVsdDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFr
IEwxNjY3fWVsc2V7YVt2XT03MTt5PTE7YnJlYWsgTDE2Njd9fX19fXdoaWxlKDApO2s9bHwwO2Nb
bT4+Ml09aztkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFr
fWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2Io
aywzMCxsLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXww
KXwwO2k9ejtBPXd9ZWxzZXt3PWdiKGssMzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8
MCl8MDtpPXo7QT13fWRve2lmKChBfDApPjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tp
Zih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13
aGlsZSgwKTtsPWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4y
XSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1sy
OTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXww
KXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTApe0M9QjtEPXc7RT13O2JyZWFrfWtY
KCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7RD0wO0U9Y1ttPj4yXXwwfX13aGls
ZSgwKTtBPUUrQ3wwO0wxNzE2OmRve3N3aXRjaChjW3U+PjJdJjE3NnwwKXtjYXNlIDE2OntCPWFb
RV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e0Y9RSsxfDA7YnJlYWsgTDE3
MTY7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgoQ3wwKT4xJkI8PDI0Pj4yND09NDgpKXtHPTEzOTI7
YnJlYWsgTDE3MTZ9c3dpdGNoKGFbRSsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtk
ZWZhdWx0OntHPTEzOTI7YnJlYWsgTDE3MTZ9fUY9RSsyfDA7YnJlYWt9O2Nhc2UgMzI6e0Y9QTti
cmVha307ZGVmYXVsdDp7Rz0xMzkyfX19d2hpbGUoMCk7aWYoKEd8MCk9PTEzOTIpe0Y9RX1kb3tp
ZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtHPWtKKEM8PDEpfDA7aWYoKEd8MCkh
PTApe0g9RztJPUc7Sj1FO2JyZWFrfWtYKCk7SD0wO0k9MDtKPWNbbT4+Ml18MH19d2hpbGUoMCk7
ZWoocSxmKTtnaihKLEYsQSxILG8scCxxKTtkeihjW3E+PjJdfDApfDA7cT1lfDA7Y1tzPj4yXT1j
W3E+PjJdO2Y5KHIscyxILGNbbz4+Ml18MCxjW3A+PjJdfDAsZixnKTtnPWNbcj4+Ml18MDtjW3E+
PjJdPWc7Y1tiPj4yXT1nO2lmKChJfDApIT0wKXtrSyhJKX1pZigoRHwwKT09MCl7aT1kO3JldHVy
bn1rSyhEKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdoKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHww
O2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtmPWk7aT1pKzE2fDA7Zz1mfDA7aD1nO2NbaD4+Ml09ZTtj
W2grND4+Ml09MDtoPWJCKGJ8MCl8MDtiPWJRKGF8MCxkfDAsZ3wwKXwwO2lmKChofDApPT0wKXtp
PWY7cmV0dXJuIGJ8MH1iQihofDApfDA7aT1mO3JldHVybiBifDB9ZnVuY3Rpb24gZ2koYixkLGUs
ZixnLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9K2o7dmFyIGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAs
Qj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZD1pO2k9aSsxNTJ8MDtrPWU7ZT1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzQw
fDA7bj1kKzQ4fDA7bz1kKzExMnwwO3A9ZCsxMjB8MDtxPWQrMTI4fDA7cj1kKzEzNnwwO3M9ZCsx
NDR8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3Q9aztrPXQrMXwwO3U9Zis0fDA7dj1jW3U+PjJd
fDA7aWYoKHYmMjA0OHwwKT09MCl7dz1rfWVsc2V7YVtrXT00Mzt3PXQrMnwwfWlmKCh2JjEwMjR8
MCk9PTApe3g9d31lbHNle2Fbd109MzU7eD13KzF8MH13PXYmMjYwO2s9dj4+PjE0O0wxNzU0OmRv
e2lmKCh3fDApPT0yNjApe2FbeF09NzY7dj14KzF8MDtpZigoayYxfDApPT0wKXthW3ZdPTk3O3k9
MDticmVha31lbHNle2Fbdl09NjU7eT0wO2JyZWFrfX1lbHNle2FbeF09NDY7YVt4KzF8MF09NDI7
YVt4KzJ8MF09NzY7dj14KzN8MDtzd2l0Y2god3wwKXtjYXNlIDQ6e2lmKChrJjF8MCk9PTApe2Fb
dl09MTAyO3k9MTticmVhayBMMTc1NH1lbHNle2Fbdl09NzA7eT0xO2JyZWFrIEwxNzU0fWJyZWFr
fTtjYXNlIDI1Njp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDE7eT0xO2JyZWFrIEwxNzU0fWVsc2V7
YVt2XT02OTt5PTE7YnJlYWsgTDE3NTR9YnJlYWt9O2RlZmF1bHQ6e2lmKChrJjF8MCk9PTApe2Fb
dl09MTAzO3k9MTticmVhayBMMTc1NH1lbHNle2Fbdl09NzE7eT0xO2JyZWFrIEwxNzU0fX19fX13
aGlsZSgwKTtrPWx8MDtjW20+PjJdPWs7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYy
NjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWNbMjk1
OF18MDtpZih5KXt3PWdiKGssMzAsbCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0s
aFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7QT13fWVsc2V7dz1nYihrLDMwLGwsdCwoej1pLGk9aSs4
fDAsaFt6Pj4zXT1qLHopfDApfDA7aT16O0E9d31kb3tpZigoQXwwKT4yOSl7dz0oYVsxNjI2NF18
MCk9PTA7aWYoeSl7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1h
UygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1naChtLGNbMjk1OF18MCx0LCh6PWksaT1pKzE2fDAs
Y1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7Qj1sfWVsc2V7ZG97aWYo
dyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hp
bGUoMCk7dz1naChtLGNbMjk1OF18MCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtp
PXo7Qj13fXc9Y1ttPj4yXXwwO2lmKCh3fDApIT0wKXtDPUI7RD13O0U9dzticmVha31rWCgpO3c9
Y1ttPj4yXXwwO0M9QjtEPXc7RT13fWVsc2V7Qz1BO0Q9MDtFPWNbbT4+Ml18MH19d2hpbGUoMCk7
QT1FK0N8MDtMMTgwMzpkb3tzd2l0Y2goY1t1Pj4yXSYxNzZ8MCl7Y2FzZSAzMjp7Rj1BO2JyZWFr
fTtjYXNlIDE2OntCPWFbRV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e0Y9
RSsxfDA7YnJlYWsgTDE4MDM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgoQ3wwKT4xJkI8PDI0Pj4y
ND09NDgpKXtHPTE0Nzc7YnJlYWsgTDE4MDN9c3dpdGNoKGFbRSsxfDBdfDApe2Nhc2UgMTIwOmNh
c2UgODg6e2JyZWFrfTtkZWZhdWx0OntHPTE0Nzc7YnJlYWsgTDE4MDN9fUY9RSsyfDA7YnJlYWt9
O2RlZmF1bHQ6e0c9MTQ3N319fXdoaWxlKDApO2lmKChHfDApPT0xNDc3KXtGPUV9ZG97aWYoKEV8
MCk9PShrfDApKXtIPW58MDtJPTA7Sj1rfWVsc2V7Rz1rSihDPDwxKXwwO2lmKChHfDApIT0wKXtI
PUc7ST1HO0o9RTticmVha31rWCgpO0g9MDtJPTA7Sj1jW20+PjJdfDB9fXdoaWxlKDApO2VqKHEs
Zik7Z2ooSixGLEEsSCxvLHAscSk7ZHooY1txPj4yXXwwKXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4y
XTtmOShyLHMsSCxjW28+PjJdfDAsY1twPj4yXXwwLGYsZyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1n
O2NbYj4+Ml09ZztpZigoSXwwKSE9MCl7a0soSSl9aWYoKER8MCk9PTApe2k9ZDtyZXR1cm59a0so
RCk7aT1kO3JldHVybn1mdW5jdGlvbiBnaihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAs
Rz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MDtsPWk7aT1pKzQ4fDA7bT1sfDA7bj1sKzE2
fDA7bz1sKzMyfDA7cD1rfDA7az1jW3A+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW24+PjJd
PTE1Njk2O2Nbbis0Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTY5NixuLDk2KX1uPShjWzM5MjVd
fDApLTF8MDtxPWNbays4Pj4yXXwwO2lmKChjW2srMTI+PjJdfDApLXE+PjI+Pj4wPD1uPj4+MCl7
cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+Ml18MDtp
Zigoa3wwKT09MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfXI9aztzPWNb
cD4+Ml18MDtpZigoY1szODI4XXwwKSE9LTEpe2NbbT4+Ml09MTUzMTI7Y1ttKzQ+PjJdPTEyO2Nb
bSs4Pj4yXT0wO2RXKDE1MzEyLG0sOTYpfW09KGNbMzgyOV18MCktMXwwO3A9Y1tzKzg+PjJdfDA7
aWYoKGNbcysxMj4+Ml18MCktcD4+Mj4+PjA8PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2txKHUpO2Js
KHR8MCw4MTc2LDEzNCl9cz1jW3ArKG08PDIpPj4yXXwwO2lmKChzfDApPT0wKXt0PWJPKDQpfDA7
dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+PjJdJjEy
N10obyx0KTtjW2o+PjJdPWc7dT1hW2JdfDA7c3dpdGNoKHU8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNl
IDQzOnttPWJfW2NbKGNbaz4+Ml18MCkrMjg+PjJdJjMxXShyLHUpfDA7dT1jW2o+PjJdfDA7Y1tq
Pj4yXT11KzE7YVt1XT1tO3Y9YisxfDA7YnJlYWt9O2RlZmF1bHQ6e3Y9Yn19bT1mO0wxODUxOmRv
e2lmKChtLXZ8MCk+MSl7aWYoKGFbdl18MCkhPTQ4KXt3PXY7eD0xNTMyO2JyZWFrfXU9disxfDA7
c3dpdGNoKGFbdV18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3c9djt4PTE1
MzI7YnJlYWsgTDE4NTF9fXA9aztuPWJfW2NbKGNbcD4+Ml18MCkrMjg+PjJdJjMxXShyLDQ4KXww
O3E9Y1tqPj4yXXwwO2Nbaj4+Ml09cSsxO2FbcV09bjtuPXYrMnwwO3E9Yl9bY1soY1twPj4yXXww
KSsyOD4+Ml0mMzFdKHIsYVt1XXwwKXwwO3U9Y1tqPj4yXXwwO2Nbaj4+Ml09dSsxO2FbdV09cTtx
PW47d2hpbGUoMSl7aWYocT4+PjA+PWY+Pj4wKXt5PXE7ej1uO2JyZWFrIEwxODUxfXU9YVtxXXww
O2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGEzKHU8PDI0Pj4yNHwwLGNbMjk1OF18MCl8
MCk9PTApe3k9cTt6PW47YnJlYWt9ZWxzZXtxPXErMXwwfX19ZWxzZXt3PXY7eD0xNTMyfX13aGls
ZSgwKTtMMTg2Njpkb3tpZigoeHwwKT09MTUzMil7d2hpbGUoMSl7eD0wO2lmKHc+Pj4wPj1mPj4+
MCl7eT13O3o9djticmVhayBMMTg2Nn1xPWFbd118MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O2lmKChiSChxPDwyND4+MjR8MCxjWzI5NThdfDApfDApPT0wKXt5PXc7ej12O2JyZWFrfWVsc2V7
dz13KzF8MDt4PTE1MzJ9fX19d2hpbGUoMCk7eD1vO3c9bzt2PWRbd118MDtpZigodiYxfDApPT0w
KXtBPXY+Pj4xfWVsc2V7QT1jW28rND4+Ml18MH1kb3tpZigoQXwwKT09MCl7dj1jW2o+PjJdfDA7
dT1jWyhjW2s+PjJdfDApKzMyPj4yXXwwO2NhW3UmMTVdKHIseix5LHYpfDA7Y1tqPj4yXT0oY1tq
Pj4yXXwwKSsoeS16KX1lbHNle2Rve2lmKCh6fDApIT0oeXwwKSl7dj15LTF8MDtpZih6Pj4+MDx2
Pj4+MCl7Qj16O0M9dn1lbHNle2JyZWFrfWRve3Y9YVtCXXwwO2FbQl09YVtDXXwwO2FbQ109djtC
PUIrMXwwO0M9Qy0xfDA7fXdoaWxlKEI+Pj4wPEM+Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhjW3M+
PjJdfDApKzE2Pj4yXSYxMjddKHQpfDA7aWYoej4+PjA8eT4+PjApe3Y9eCsxfDA7dT1vKzR8MDtu
PW8rOHwwO3A9aztEPTA7RT0wO0Y9ejt3aGlsZSgxKXtHPShhW3ddJjEpPT0wO2Rve2lmKChhWyhH
P3Y6Y1tuPj4yXXwwKStFfDBdfDApPjApe2lmKChEfDApIT0oYVsoRz92OmNbbj4+Ml18MCkrRXww
XXwwKSl7SD1FO0k9RDticmVha31KPWNbaj4+Ml18MDtjW2o+PjJdPUorMTthW0pdPXE7Sj1kW3dd
fDA7SD0oRT4+PjA8KCgoSiYxfDApPT0wP0o+Pj4xOmNbdT4+Ml18MCktMXwwKT4+PjApK0V8MDtJ
PTB9ZWxzZXtIPUU7ST1EfX13aGlsZSgwKTtHPWJfW2NbKGNbcD4+Ml18MCkrMjg+PjJdJjMxXShy
LGFbRl18MCl8MDtKPWNbaj4+Ml18MDtjW2o+PjJdPUorMTthW0pdPUc7Rz1GKzF8MDtpZihHPj4+
MDx5Pj4+MCl7RD1JKzF8MDtFPUg7Rj1HfWVsc2V7YnJlYWt9fX1GPWcrKHotYil8MDtFPWNbaj4+
Ml18MDtpZigoRnwwKT09KEV8MCkpe2JyZWFrfUQ9RS0xfDA7aWYoRj4+PjA8RD4+PjApe0s9RjtM
PUR9ZWxzZXticmVha31kb3tEPWFbS118MDthW0tdPWFbTF18MDthW0xdPUQ7Sz1LKzF8MDtMPUwt
MXwwO313aGlsZShLPj4+MDxMPj4+MCl9fXdoaWxlKDApO0wxOTA1OmRve2lmKHk+Pj4wPGY+Pj4w
KXtMPWs7Sz15O3doaWxlKDEpe3o9YVtLXXwwO2lmKHo8PDI0Pj4yND09NDYpe2JyZWFrfUg9Yl9b
Y1soY1tMPj4yXXwwKSsyOD4+Ml0mMzFdKHIseil8MDt6PWNbaj4+Ml18MDtjW2o+PjJdPXorMTth
W3pdPUg7SD1LKzF8MDtpZihIPj4+MDxmPj4+MCl7Sz1IfWVsc2V7TT1IO2JyZWFrIEwxOTA1fX1M
PWIwW2NbKGNbcz4+Ml18MCkrMTI+PjJdJjEyN10odCl8MDtIPWNbaj4+Ml18MDtjW2o+PjJdPUgr
MTthW0hdPUw7TT1LKzF8MH1lbHNle009eX19d2hpbGUoMCk7Y2FbY1soY1trPj4yXXwwKSszMj4+
Ml0mMTVdKHIsTSxmLGNbaj4+Ml18MCl8MDtyPShjW2o+PjJdfDApKyhtLU0pfDA7Y1tqPj4yXT1y
O2lmKChlfDApPT0oZnwwKSl7Tj1yO2NbaD4+Ml09TjtkUChvKTtpPWw7cmV0dXJufU49ZysoZS1i
KXwwO2NbaD4+Ml09TjtkUChvKTtpPWw7cmV0dXJufWZ1bmN0aW9uIGdrKGEpe2E9YXwwO2RlKGF8
MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdsKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0
aW9uIGdtKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2
YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTA7ZD1pO2k9aSsxNDR8MDtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1j
W2o+PjJdO2o9ZHwwO2s9ZCs4fDA7bD1kKzI0fDA7bT1kKzExMnwwO249ZCsxMjB8MDtvPWQrMTI4
fDA7cD1kKzEzNnwwO3E9anwwO2FbcV09YVsyMzg0XXwwO2FbcSsxfDBdPWFbMjM4NXwwXXwwO2Fb
cSsyfDBdPWFbMjM4NnwwXXwwO2FbcSszfDBdPWFbMjM4N3wwXXwwO2FbcSs0fDBdPWFbMjM4OHww
XXwwO2FbcSs1fDBdPWFbMjM4OXwwXXwwO3I9aisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigo
dCYyMDQ4fDApPT0wKXt1PXJ9ZWxzZXthW3JdPTQzO3U9aisyfDB9aWYoKHQmNTEyfDApPT0wKXt2
PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7dT12KzF8MDtMMTkyODpkb3tzd2l0Y2go
dCY3NHwwKXtjYXNlIDY0OnthW3VdPTExMTticmVha307Y2FzZSA4OntpZigodCYxNjM4NHwwKT09
MCl7YVt1XT0xMjA7YnJlYWsgTDE5Mjh9ZWxzZXthW3VdPTg4O2JyZWFrIEwxOTI4fWJyZWFrfTtk
ZWZhdWx0OnthW3VdPTEwMH19fXdoaWxlKDApO3U9a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7
aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUo
MCk7dD1nYih1LDEyLGNbMjk1OF18MCxxLChxPWksaT1pKzh8MCxjW3E+PjJdPWgscSl8MCl8MDtp
PXE7cT1rK3R8MDtMMTk0MTpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAzMjp7dz1xO2Jy
ZWFrfTtjYXNlIDE2OntoPWFbdV18MDtzd2l0Y2goaDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6
e3c9aysxfDA7YnJlYWsgTDE5NDE7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmg8PDI0
Pj4yND09NDgpKXt4PTE2MDA7YnJlYWsgTDE5NDF9c3dpdGNoKGFbaysxfDBdfDApe2Nhc2UgMTIw
OmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE2MDA7YnJlYWsgTDE5NDF9fXc9aysyfDA7YnJl
YWt9O2RlZmF1bHQ6e3g9MTYwMH19fXdoaWxlKDApO2lmKCh4fDApPT0xNjAwKXt3PXV9eD1sfDA7
ZWoobyxmKTtncCh1LHcscSx4LG0sbixvKTtkeihjW28+PjJdfDApfDA7Y1twPj4yXT1jW2U+PjJd
O2dxKGIscCx4LGNbbT4+Ml18MCxjW24+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdu
KGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTA7ZD1pO2k9aSsxMDR8MDtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tl
Pj4yXT1jW2o+PjJdO2o9ZHwwO2s9ZCsyNHwwO2w9ZCs0OHwwO209ZCs4OHwwO249ZCs5NnwwO289
ZCsxNnwwO2Fbb109YVsyMzkyXXwwO2FbbysxfDBdPWFbMjM5M3wwXXwwO2FbbysyfDBdPWFbMjM5
NHwwXXwwO2FbbyszfDBdPWFbMjM5NXwwXXwwO2Fbbys0fDBdPWFbMjM5NnwwXXwwO2Fbbys1fDBd
PWFbMjM5N3wwXXwwO3A9a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXww
KT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7cT1nYihwLDIwLGNb
Mjk1OF18MCxvLChvPWksaT1pKzh8MCxjW28+PjJdPWgsbyl8MCl8MDtpPW87bz1rK3F8MDtMMTk1
ODpkb3tzd2l0Y2goY1tmKzQ+PjJdJjE3NnwwKXtjYXNlIDE2OntoPWFbcF18MDtzd2l0Y2goaDw8
MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3I9aysxfDA7YnJlYWsgTDE5NTg7YnJlYWt9O2RlZmF1
bHQ6e319aWYoISgocXwwKT4xJmg8PDI0Pj4yND09NDgpKXtzPTE2MTU7YnJlYWsgTDE5NTh9c3dp
dGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntzPTE2MTU7
YnJlYWsgTDE5NTh9fXI9aysyfDA7YnJlYWt9O2Nhc2UgMzI6e3I9bzticmVha307ZGVmYXVsdDp7
cz0xNjE1fX19d2hpbGUoMCk7aWYoKHN8MCk9PTE2MTUpe3I9cH1laihtLGYpO3M9bXwwO209Y1tz
Pj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tqPj4yXT0xNTY5NjtjW2orND4+Ml09MTI7Y1tq
Kzg+PjJdPTA7ZFcoMTU2OTYsaiw5Nil9aj0oY1szOTI1XXwwKS0xfDA7aD1jW20rOD4+Ml18MDtk
b3tpZigoY1ttKzEyPj4yXXwwKS1oPj4yPj4+MD5qPj4+MCl7dD1jW2grKGo8PDIpPj4yXXwwO2lm
KCh0fDApPT0wKXticmVha311PXQ7dj1jW3M+PjJdfDA7ZHoodil8MDt2PWx8MDt3PWNbKGNbdD4+
Ml18MCkrMzI+PjJdfDA7Y2FbdyYxNV0odSxwLG8sdil8MDt1PWwrcXwwO2lmKChyfDApPT0ob3ww
KSl7eD11O3k9ZXwwO3o9Y1t5Pj4yXXwwO0E9bnwwO2NbQT4+Ml09ejtmOShiLG4sdix4LHUsZixn
KTtpPWQ7cmV0dXJufXg9bCsoci1rKXwwO3k9ZXwwO3o9Y1t5Pj4yXXwwO0E9bnwwO2NbQT4+Ml09
ejtmOShiLG4sdix4LHUsZixnKTtpPWQ7cmV0dXJufX13aGlsZSgwKTtkPWJPKDQpfDA7a3EoZCk7
YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnbyhiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTA7aj1pO2k9aSs0OHwwO2s9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7bD1qKzE2fDA7bT1qKzI0
fDA7bj1qKzMyfDA7aWYoKGNbZis0Pj4yXSYxfDApPT0wKXtvPWNbKGNbZD4+Ml18MCkrMjQ+PjJd
fDA7Y1tsPj4yXT1jW2U+PjJdO2I5W28mMzFdKGIsZCxsLGYsZyxoJjEpO2k9ajtyZXR1cm59ZWoo
bSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1szODI2XXwwKSE9LTEpe2Nbaz4+Ml09MTUzMDQ7
Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1MzA0LGssOTYpfWs9KGNbMzgyN118MCktMXww
O2c9Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktZz4+Mj4+PjA+az4+PjApe2w9Y1tn
KyhrPDwyKT4+Ml18MDtpZigobHwwKT09MCl7YnJlYWt9ZD1sO289Y1tmPj4yXXwwO2R6KG8pfDA7
bz1jW2w+PjJdfDA7aWYoaCl7YlpbY1tvKzI0Pj4yXSYxMjddKG4sZCl9ZWxzZXtiWltjW28rMjg+
PjJdJjEyN10obixkKX1kPW47bz1hW2RdfDA7aWYoKG8mMSk9PTApe2w9bis0fDA7cD1sO3E9bDty
PW4rOHwwfWVsc2V7bD1uKzh8MDtwPWNbbD4+Ml18MDtxPW4rNHwwO3I9bH1sPWV8MDtzPXA7dD1v
O3doaWxlKDEpe2lmKCh0JjEpPT0wKXt1PXF9ZWxzZXt1PWNbcj4+Ml18MH1vPXQmMjU1O2lmKChv
JjF8MCk9PTApe3Y9bz4+PjF9ZWxzZXt2PWNbcT4+Ml18MH1pZigoc3wwKT09KHUrKHY8PDIpfDAp
KXticmVha31vPWNbcz4+Ml18MDt3PWNbbD4+Ml18MDtkb3tpZigod3wwKSE9MCl7eD13KzI0fDA7
eT1jW3g+PjJdfDA7aWYoKHl8MCk9PShjW3crMjg+PjJdfDApKXt6PWJfW2NbKGNbdz4+Ml18MCkr
NTI+PjJdJjMxXSh3LG8pfDB9ZWxzZXtjW3g+PjJdPXkrNDtjW3k+PjJdPW87ej1vfWlmKCh6fDAp
IT0tMSl7YnJlYWt9Y1tsPj4yXT0wfX13aGlsZSgwKTtzPXMrNHwwO3Q9YVtkXXwwfWNbYj4+Ml09
Y1tsPj4yXTtlZShuKTtpPWo7cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7Ymwoanww
LDgxNzYsMTM0KX1mdW5jdGlvbiBncChiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEs9MCxMPTA7bD1pO2k9aSs0OHwwO209bHwwO249bCsxNnwwO289bCszMnww
O3A9a3wwO2s9Y1twPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tuPj4yXT0xNTY4ODtjW24r
ND4+Ml09MTI7Y1tuKzg+PjJdPTA7ZFcoMTU2ODgsbiw5Nil9bj0oY1szOTIzXXwwKS0xfDA7cT1j
W2srOD4+Ml18MDtpZigoY1trKzEyPj4yXXwwKS1xPj4yPj4+MDw9bj4+PjApe3I9Yk8oNCl8MDtz
PXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1rPWNbcSsobjw8Mik+PjJdfDA7aWYoKGt8MCk9PTAp
e3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1yPWs7cz1jW3A+PjJdfDA7aWYo
KGNbMzgyNl18MCkhPS0xKXtjW20+PjJdPTE1MzA0O2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtk
VygxNTMwNCxtLDk2KX1tPShjWzM4MjddfDApLTF8MDtwPWNbcys4Pj4yXXwwO2lmKChjW3MrMTI+
PjJdfDApLXA+PjI+Pj4wPD1tPj4+MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3Niwx
MzQpfXM9Y1twKyhtPDwyKT4+Ml18MDtpZigoc3wwKT09MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTti
bCh0fDAsODE3NiwxMzQpfXQ9cztiWltjWyhjW3M+PjJdfDApKzIwPj4yXSYxMjddKG8sdCk7dT1v
O209bztwPWRbbV18MDtpZigocCYxfDApPT0wKXt2PXA+Pj4xfWVsc2V7dj1jW28rND4+Ml18MH1k
b3tpZigodnwwKT09MCl7cD1jWyhjW2s+PjJdfDApKzQ4Pj4yXXwwO2NhW3AmMTVdKHIsYixmLGcp
fDA7Y1tqPj4yXT1nKyhmLWI8PDIpfWVsc2V7Y1tqPj4yXT1nO3A9YVtiXXwwO3N3aXRjaChwPDwy
ND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7bj1iX1tjWyhjW2s+PjJdfDApKzQ0Pj4yXSYzMV0ocixw
KXwwO3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCs0O2NbcD4+Ml09bjt3PWIrMXwwO2JyZWFrfTtkZWZh
dWx0Ont3PWJ9fUwyMDUwOmRve2lmKChmLXd8MCk+MSl7aWYoKGFbd118MCkhPTQ4KXt4PXc7YnJl
YWt9bj13KzF8MDtzd2l0Y2goYVtuXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVs
dDp7eD13O2JyZWFrIEwyMDUwfX1wPWs7cT1iX1tjWyhjW3A+PjJdfDApKzQ0Pj4yXSYzMV0ociw0
OCl8MDt5PWNbaj4+Ml18MDtjW2o+PjJdPXkrNDtjW3k+PjJdPXE7cT1iX1tjWyhjW3A+PjJdfDAp
KzQ0Pj4yXSYzMV0ocixhW25dfDApfDA7bj1jW2o+PjJdfDA7Y1tqPj4yXT1uKzQ7Y1tuPj4yXT1x
O3g9dysyfDB9ZWxzZXt4PXd9fXdoaWxlKDApO2Rve2lmKCh4fDApIT0oZnwwKSl7cT1mLTF8MDtp
Zih4Pj4+MDxxPj4+MCl7ej14O0E9cX1lbHNle2JyZWFrfWRve3E9YVt6XXwwO2Fbel09YVtBXXww
O2FbQV09cTt6PXorMXwwO0E9QS0xfDA7fXdoaWxlKHo+Pj4wPEE+Pj4wKX19d2hpbGUoMCk7cT1i
MFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjddKHQpfDA7aWYoeD4+PjA8Zj4+PjApe249dSsxfDA7
cD1rO3k9bys0fDA7Qj1vKzh8MDtDPTA7RD0wO0U9eDt3aGlsZSgxKXtGPShhW21dJjEpPT0wO2Rv
e2lmKChhWyhGP246Y1tCPj4yXXwwKStEfDBdfDApPT0wKXtHPUQ7SD1DfWVsc2V7aWYoKEN8MCkh
PShhWyhGP246Y1tCPj4yXXwwKStEfDBdfDApKXtHPUQ7SD1DO2JyZWFrfUk9Y1tqPj4yXXwwO2Nb
aj4+Ml09SSs0O2NbST4+Ml09cTtJPWRbbV18MDtHPShEPj4+MDwoKChJJjF8MCk9PTA/ST4+PjE6
Y1t5Pj4yXXwwKS0xfDApPj4+MCkrRHwwO0g9MH19d2hpbGUoMCk7Rj1iX1tjWyhjW3A+PjJdfDAp
KzQ0Pj4yXSYzMV0ocixhW0VdfDApfDA7ST1jW2o+PjJdfDA7Y1tqPj4yXT1JKzQ7Y1tJPj4yXT1G
O0Y9RSsxfDA7aWYoRj4+PjA8Zj4+PjApe0M9SCsxfDA7RD1HO0U9Rn1lbHNle2JyZWFrfX19RT1n
Kyh4LWI8PDIpfDA7RD1jW2o+PjJdfDA7aWYoKEV8MCk9PShEfDApKXticmVha31DPUQtNHwwO2lm
KEU+Pj4wPEM+Pj4wKXtKPUU7Sz1DfWVsc2V7YnJlYWt9ZG97Qz1jW0o+PjJdfDA7Y1tKPj4yXT1j
W0s+PjJdO2NbSz4+Ml09QztKPUorNHwwO0s9Sy00fDA7fXdoaWxlKEo+Pj4wPEs+Pj4wKX19d2hp
bGUoMCk7aWYoKGV8MCk9PShmfDApKXtMPWNbaj4+Ml18MDtjW2g+PjJdPUw7ZFAobyk7aT1sO3Jl
dHVybn1lbHNle0w9ZysoZS1iPDwyKXwwO2NbaD4+Ml09TDtkUChvKTtpPWw7cmV0dXJufX1mdW5j
dGlvbiBncShiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7aT1pKzE2fDA7
bD1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tsPj4yXTtsPWt8MDttPWR8MDtk
PWNbbT4+Ml18MDtpZigoZHwwKT09MCl7Y1tiPj4yXT0wO2k9aztyZXR1cm59bj1nO2c9ZTtvPW4t
Zz4+MjtwPWgrMTJ8MDtoPWNbcD4+Ml18MDtxPShofDApPihvfDApP2gtb3wwOjA7bz1mO2g9by1n
fDA7Zz1oPj4yO2Rve2lmKChofDApPjApe2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10o
ZCxlLGcpfDApPT0oZ3wwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13
aGlsZSgwKTtkb3tpZigocXwwKT4wKXtleShsLHEsaik7aWYoKGFbbF0mMSk9PTApe3I9bCs0fDB9
ZWxzZXtyPWNbbCs4Pj4yXXwwfWlmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxyLHEp
fDApPT0ocXwwKSl7ZWUobCk7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtlZShsKTtpPWs7cmV0
dXJufX13aGlsZSgwKTtsPW4tb3wwO289bD4+Mjtkb3tpZigobHwwKT4wKXtpZigoYjFbY1soY1tk
Pj4yXXwwKSs0OD4+Ml0mNjNdKGQsZixvKXwwKT09KG98MCkpe2JyZWFrfWNbbT4+Ml09MDtjW2I+
PjJdPTA7aT1rO3JldHVybn19d2hpbGUoMCk7Y1twPj4yXT0wO2NbYj4+Ml09ZDtpPWs7cmV0dXJu
fWZ1bmN0aW9uIGdyKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrMjMyfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCszMnwwO249ZCsyMDB8MDtvPWQrMjA4
fDA7cD1kKzIxNnwwO3E9ZCsyMjR8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3I9aztrPXIrMXww
O3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1rfWVsc2V7YVtrXT00Mzt1
PXIrMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4
O2FbdisxfDBdPTEwODt1PXYrMnwwO0wyMTE5OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgODp7aWYo
KHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwyMTE5fWVsc2V7YVt1XT04ODticmVhayBM
MjExOX1icmVha307Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAwfX19
d2hpbGUoMCk7dT1sfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0w
KXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMjIsY1syOTU4
XXwwLHIsKHI9aSxpPWkrMTZ8MCxjW3I+PjJdPWgsY1tyKzg+PjJdPWoscil8MCl8MDtpPXI7cj1s
K3R8MDtMMjEzMjpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAzMjp7dz1yO2JyZWFrfTtj
YXNlIDE2OntqPWFbdV18MDtzd2l0Y2goajw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9bCsx
fDA7YnJlYWsgTDIxMzI7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmo8PDI0Pj4yND09
NDgpKXt4PTE3NjA7YnJlYWsgTDIxMzJ9c3dpdGNoKGFbbCsxfDBdfDApe2Nhc2UgMTIwOmNhc2Ug
ODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE3NjA7YnJlYWsgTDIxMzJ9fXc9bCsyfDA7YnJlYWt9O2Rl
ZmF1bHQ6e3g9MTc2MH19fXdoaWxlKDApO2lmKCh4fDApPT0xNzYwKXt3PXV9eD1tfDA7ZWoocCxm
KTtncCh1LHcscix4LG4sbyxwKTtkeihjW3A+PjJdfDApfDA7Y1txPj4yXT1jW2U+PjJdO2dxKGIs
cSx4LGNbbj4+Ml18MCxjW28+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdzKGIsZCxl
LGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9
aSsxNDR8MDtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9ZHww
O2s9ZCs4fDA7bD1kKzI0fDA7bT1kKzExMnwwO249ZCsxMjB8MDtvPWQrMTI4fDA7cD1kKzEzNnww
O3E9anwwO2FbcV09YVsyMzg0XXwwO2FbcSsxfDBdPWFbMjM4NXwwXXwwO2FbcSsyfDBdPWFbMjM4
NnwwXXwwO2FbcSszfDBdPWFbMjM4N3wwXXwwO2FbcSs0fDBdPWFbMjM4OHwwXXwwO2FbcSs1fDBd
PWFbMjM4OXwwXXwwO3I9aisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0w
KXt1PXJ9ZWxzZXthW3JdPTQzO3U9aisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3Vd
PTM1O3Y9dSsxfDB9YVt2XT0xMDg7dT12KzF8MDtMMjE1MDpkb3tzd2l0Y2godCY3NHwwKXtjYXNl
IDY0OnthW3VdPTExMTticmVha307Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7
YnJlYWsgTDIxNTB9ZWxzZXthW3VdPTg4O2JyZWFrIEwyMTUwfWJyZWFrfTtkZWZhdWx0OnthW3Vd
PTExN319fXdoaWxlKDApO3U9a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0
KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDEy
LGNbMjk1OF18MCxxLChxPWksaT1pKzh8MCxjW3E+PjJdPWgscSl8MCl8MDtpPXE7cT1rK3R8MDtM
MjE2Mzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aD1hW3VdfDA7c3dpdGNoKGg8
PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWsrMXwwO2JyZWFrIEwyMTYzO2JyZWFrfTtkZWZh
dWx0Ont9fWlmKCEoKHR8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7eD0xNzg1O2JyZWFrIEwyMTYzfXN3
aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xNzg1
O2JyZWFrIEwyMTYzfX13PWsrMnwwO2JyZWFrfTtjYXNlIDMyOnt3PXE7YnJlYWt9O2RlZmF1bHQ6
e3g9MTc4NX19fXdoaWxlKDApO2lmKCh4fDApPT0xNzg1KXt3PXV9eD1sfDA7ZWoobyxmKTtncCh1
LHcscSx4LG0sbixvKTtkeihjW28+PjJdfDApfDA7Y1twPj4yXT1jW2U+PjJdO2dxKGIscCx4LGNb
bT4+Ml18MCxjW24+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGd0KGIsZCxlLGYsZyxo
LGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkr
MjQwfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDts
PWQrOHwwO209ZCszMnwwO249ZCsyMDh8MDtvPWQrMjE2fDA7cD1kKzIyNHwwO3E9ZCsyMzJ8MDtj
W2s+PjJdPTM3O2Nbays0Pj4yXT0wO3I9aztrPXIrMXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYo
KHQmMjA0OHwwKT09MCl7dT1rfWVsc2V7YVtrXT00Mzt1PXIrMnwwfWlmKCh0JjUxMnwwKT09MCl7
dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4O2FbdisxfDBdPTEwODt1PXYrMnwwO0wy
MTgxOmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIw
O2JyZWFrIEwyMTgxfWVsc2V7YVt1XT04ODticmVhayBMMjE4MX1icmVha307Y2FzZSA2NDp7YVt1
XT0xMTE7YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTE3fX19d2hpbGUoMCk7dT1sfDA7ZG97aWYoKGFb
MTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0
NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMjMsY1syOTU4XXwwLHIsKHI9aSxpPWkrMTZ8MCxjW3I+
PjJdPWgsY1tyKzg+PjJdPWoscil8MCl8MDtpPXI7cj1sK3R8MDtMMjE5NDpkb3tzd2l0Y2goY1tz
Pj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aj1hW3VdfDA7c3dpdGNoKGo8PDI0Pj4yNCl7Y2FzZSA0NTpj
YXNlIDQzOnt3PWwrMXwwO2JyZWFrIEwyMTk0O2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+
MSZqPDwyND4+MjQ9PTQ4KSl7eD0xODEwO2JyZWFrIEwyMTk0fXN3aXRjaChhW2wrMXwwXXwwKXtj
YXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xODEwO2JyZWFrIEwyMTk0fX13PWwr
MnwwO2JyZWFrfTtjYXNlIDMyOnt3PXI7YnJlYWt9O2RlZmF1bHQ6e3g9MTgxMH19fXdoaWxlKDAp
O2lmKCh4fDApPT0xODEwKXt3PXV9eD1tfDA7ZWoocCxmKTtncCh1LHcscix4LG4sbyxwKTtkeihj
W3A+PjJdfDApfDA7Y1txPj4yXT1jW2U+PjJdO2dxKGIscSx4LGNbbj4+Ml18MCxjW28+PjJdfDAs
ZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGd1KGIsZCxlLGYsZyxqKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtqPStqO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wO2Q9aTtpPWkrMzIwfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
ZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCs0MHwwO249ZCs0OHwwO289ZCsyODB8MDtw
PWQrMjg4fDA7cT1kKzI5NnwwO3I9ZCszMDR8MDtzPWQrMzEyfDA7Y1trPj4yXT0zNztjW2srND4+
Ml09MDt0PWs7az10KzF8MDt1PWYrNHwwO3Y9Y1t1Pj4yXXwwO2lmKCh2JjIwNDh8MCk9PTApe3c9
a31lbHNle2Fba109NDM7dz10KzJ8MH1pZigodiYxMDI0fDApPT0wKXt4PXd9ZWxzZXthW3ddPTM1
O3g9dysxfDB9dz12JjI2MDtrPXY+Pj4xNDtMMjIxMjpkb3tpZigod3wwKT09MjYwKXtpZigoayYx
fDApPT0wKXthW3hdPTk3O3k9MDticmVha31lbHNle2FbeF09NjU7eT0wO2JyZWFrfX1lbHNle2Fb
eF09NDY7dj14KzJ8MDthW3grMXwwXT00Mjtzd2l0Y2god3wwKXtjYXNlIDI1Njp7aWYoKGsmMXww
KT09MCl7YVt2XT0xMDE7eT0xO2JyZWFrIEwyMjEyfWVsc2V7YVt2XT02OTt5PTE7YnJlYWsgTDIy
MTJ9YnJlYWt9O2Nhc2UgNDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDI7eT0xO2JyZWFrIEwyMjEy
fWVsc2V7YVt2XT03MDt5PTE7YnJlYWsgTDIyMTJ9YnJlYWt9O2RlZmF1bHQ6e2lmKChrJjF8MCk9
PTApe2Fbdl09MTAzO3k9MTticmVhayBMMjIxMn1lbHNle2Fbdl09NzE7eT0xO2JyZWFrIEwyMjEy
fX19fX13aGlsZSgwKTtrPWx8MDtjW20+PjJdPWs7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigo
YmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTts
PWNbMjk1OF18MDtpZih5KXt3PWdiKGssMzAsbCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2Yr
OD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7QT13fWVsc2V7dz1nYihrLDMwLGwsdCwoej1p
LGk9aSs4fDAsaFt6Pj4zXT1qLHopfDApfDA7aT16O0E9d31kb3tpZigoQXwwKT4yOSl7dz0oYVsx
NjI2NF18MCk9PTA7aWYoeSl7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1sy
OTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1naChtLGNbMjk1OF18MCx0LCh6PWksaT1p
KzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7Qj1sfWVsc2V7
ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7dz1naChtLGNbMjk1OF18MCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2Yr
OD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7Qj13fXc9Y1ttPj4yXXwwO2lmKCh3fDApIT0w
KXtDPUI7RD13O0U9dzticmVha31rWCgpO3c9Y1ttPj4yXXwwO0M9QjtEPXc7RT13fWVsc2V7Qz1B
O0Q9MDtFPWNbbT4+Ml18MH19d2hpbGUoMCk7QT1FK0N8MDtMMjI2MTpkb3tzd2l0Y2goY1t1Pj4y
XSYxNzZ8MCl7Y2FzZSAzMjp7Rj1BO2JyZWFrfTtjYXNlIDE2OntCPWFbRV18MDtzd2l0Y2goQjw8
MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e0Y9RSsxfDA7YnJlYWsgTDIyNjE7YnJlYWt9O2RlZmF1
bHQ6e319aWYoISgoQ3wwKT4xJkI8PDI0Pj4yND09NDgpKXtHPTE4NjY7YnJlYWsgTDIyNjF9c3dp
dGNoKGFbRSsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntHPTE4NjY7
YnJlYWsgTDIyNjF9fUY9RSsyfDA7YnJlYWt9O2RlZmF1bHQ6e0c9MTg2Nn19fXdoaWxlKDApO2lm
KChHfDApPT0xODY2KXtGPUV9ZG97aWYoKEV8MCk9PShrfDApKXtIPW58MDtJPTA7Sj1rfWVsc2V7
Rz1rSihDPDwzKXwwO3U9RztpZigoR3wwKSE9MCl7SD11O0k9dTtKPUU7YnJlYWt9a1goKTtIPXU7
ST11O0o9Y1ttPj4yXXwwfX13aGlsZSgwKTtlaihxLGYpO2d2KEosRixBLEgsbyxwLHEpO2R6KGNb
cT4+Ml18MCl8MDtxPWV8MDtjW3M+PjJdPWNbcT4+Ml07Z3EocixzLEgsY1tvPj4yXXwwLGNbcD4+
Ml18MCxmLGcpO2c9Y1tyPj4yXXwwO2NbcT4+Ml09ZztjW2I+PjJdPWc7aWYoKEl8MCkhPTApe2tL
KEkpfWlmKChEfDApPT0wKXtpPWQ7cmV0dXJufWtLKEQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ3Yo
YixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7
dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09
MCxOPTA7bD1pO2k9aSs0OHwwO209bHwwO249bCsxNnwwO289bCszMnwwO3A9a3wwO2s9Y1twPj4y
XXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tuPj4yXT0xNTY4ODtjW24rND4+Ml09MTI7Y1tuKzg+
PjJdPTA7ZFcoMTU2ODgsbiw5Nil9bj0oY1szOTIzXXwwKS0xfDA7cT1jW2srOD4+Ml18MDtpZigo
Y1trKzEyPj4yXXwwKS1xPj4yPj4+MDw9bj4+PjApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7Ymwocnww
LDgxNzYsMTM0KX1rPWNbcSsobjw8Mik+PjJdfDA7aWYoKGt8MCk9PTApe3I9Yk8oNCl8MDtzPXI7
a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1yPWs7cz1jW3A+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0x
KXtjW20+PjJdPTE1MzA0O2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTMwNCxtLDk2KX1t
PShjWzM4MjddfDApLTF8MDtwPWNbcys4Pj4yXXwwO2lmKChjW3MrMTI+PjJdfDApLXA+PjI+Pj4w
PD1tPj4+MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXM9Y1twKyhtPDwy
KT4+Ml18MDtpZigoc3wwKT09MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQp
fXQ9cztiWltjWyhjW3M+PjJdfDApKzIwPj4yXSYxMjddKG8sdCk7Y1tqPj4yXT1nO3U9YVtiXXww
O3N3aXRjaCh1PDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7bT1iX1tjWyhjW2s+PjJdfDApKzQ0
Pj4yXSYzMV0ocix1KXwwO3U9Y1tqPj4yXXwwO2Nbaj4+Ml09dSs0O2NbdT4+Ml09bTt2PWIrMXww
O2JyZWFrfTtkZWZhdWx0Ont2PWJ9fW09ZjtMMjMwOTpkb3tpZigobS12fDApPjEpe2lmKChhW3Zd
fDApIT00OCl7dz12O3g9MTkyMTticmVha311PXYrMXwwO3N3aXRjaChhW3VdfDApe2Nhc2UgMTIw
OmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont3PXY7eD0xOTIxO2JyZWFrIEwyMzA5fX1wPWs7bj1i
X1tjWyhjW3A+PjJdfDApKzQ0Pj4yXSYzMV0ociw0OCl8MDtxPWNbaj4+Ml18MDtjW2o+PjJdPXEr
NDtjW3E+PjJdPW47bj12KzJ8MDtxPWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLGFbdV18
MCl8MDt1PWNbaj4+Ml18MDtjW2o+PjJdPXUrNDtjW3U+PjJdPXE7cT1uO3doaWxlKDEpe2lmKHE+
Pj4wPj1mPj4+MCl7eT1xO3o9bjticmVhayBMMjMwOX11PWFbcV18MDtkb3tpZigoYVsxNjI2NF18
MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9
fXdoaWxlKDApO2lmKChhMyh1PDwyND4+MjR8MCxjWzI5NThdfDApfDApPT0wKXt5PXE7ej1uO2Jy
ZWFrfWVsc2V7cT1xKzF8MH19fWVsc2V7dz12O3g9MTkyMX19d2hpbGUoMCk7TDIzMjQ6ZG97aWYo
KHh8MCk9PTE5MjEpe3doaWxlKDEpe3g9MDtpZih3Pj4+MD49Zj4+PjApe3k9dzt6PXY7YnJlYWsg
TDIzMjR9cT1hW3ddfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0w
KXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoYkgocTw8MjQ+PjI0
fDAsY1syOTU4XXwwKXwwKT09MCl7eT13O3o9djticmVha31lbHNle3c9dysxfDA7eD0xOTIxfX19
fXdoaWxlKDApO3g9bzt3PW87dj1kW3ddfDA7aWYoKHYmMXwwKT09MCl7QT12Pj4+MX1lbHNle0E9
Y1tvKzQ+PjJdfDB9ZG97aWYoKEF8MCk9PTApe3Y9Y1tqPj4yXXwwO3U9Y1soY1trPj4yXXwwKSs0
OD4+Ml18MDtjYVt1JjE1XShyLHoseSx2KXwwO2Nbaj4+Ml09KGNbaj4+Ml18MCkrKHktejw8Mil9
ZWxzZXtkb3tpZigoenwwKSE9KHl8MCkpe3Y9eS0xfDA7aWYoej4+PjA8dj4+PjApe0I9ejtDPXZ9
ZWxzZXticmVha31kb3t2PWFbQl18MDthW0JdPWFbQ118MDthW0NdPXY7Qj1CKzF8MDtDPUMtMXww
O313aGlsZShCPj4+MDxDPj4+MCl9fXdoaWxlKDApO3E9YjBbY1soY1tzPj4yXXwwKSsxNj4+Ml0m
MTI3XSh0KXwwO2lmKHo+Pj4wPHk+Pj4wKXt2PXgrMXwwO3U9bys0fDA7bj1vKzh8MDtwPWs7RD0w
O0U9MDtGPXo7d2hpbGUoMSl7Rz0oYVt3XSYxKT09MDtkb3tpZigoYVsoRz92OmNbbj4+Ml18MCkr
RXwwXXwwKT4wKXtpZigoRHwwKSE9KGFbKEc/djpjW24+PjJdfDApK0V8MF18MCkpe0g9RTtJPUQ7
YnJlYWt9Sj1jW2o+PjJdfDA7Y1tqPj4yXT1KKzQ7Y1tKPj4yXT1xO0o9ZFt3XXwwO0g9KEU+Pj4w
PCgoKEomMXwwKT09MD9KPj4+MTpjW3U+PjJdfDApLTF8MCk+Pj4wKStFfDA7ST0wfWVsc2V7SD1F
O0k9RH19d2hpbGUoMCk7Rz1iX1tjWyhjW3A+PjJdfDApKzQ0Pj4yXSYzMV0ocixhW0ZdfDApfDA7
Sj1jW2o+PjJdfDA7Y1tqPj4yXT1KKzQ7Y1tKPj4yXT1HO0c9RisxfDA7aWYoRz4+PjA8eT4+PjAp
e0Q9SSsxfDA7RT1IO0Y9R31lbHNle2JyZWFrfX19Rj1nKyh6LWI8PDIpfDA7RT1jW2o+PjJdfDA7
aWYoKEZ8MCk9PShFfDApKXticmVha31EPUUtNHwwO2lmKEY+Pj4wPEQ+Pj4wKXtLPUY7TD1EfWVs
c2V7YnJlYWt9ZG97RD1jW0s+PjJdfDA7Y1tLPj4yXT1jW0w+PjJdO2NbTD4+Ml09RDtLPUsrNHww
O0w9TC00fDA7fXdoaWxlKEs+Pj4wPEw+Pj4wKX19d2hpbGUoMCk7TDIzNjM6ZG97aWYoeT4+PjA8
Zj4+PjApe0w9aztLPXk7d2hpbGUoMSl7ej1hW0tdfDA7aWYoejw8MjQ+PjI0PT00Nil7YnJlYWt9
SD1iX1tjWyhjW0w+PjJdfDApKzQ0Pj4yXSYzMV0ocix6KXwwO3o9Y1tqPj4yXXwwO2Nbaj4+Ml09
eis0O2Nbej4+Ml09SDtIPUsrMXwwO2lmKEg+Pj4wPGY+Pj4wKXtLPUh9ZWxzZXtNPUg7YnJlYWsg
TDIzNjN9fUw9YjBbY1soY1tzPj4yXXwwKSsxMj4+Ml0mMTI3XSh0KXwwO0g9Y1tqPj4yXXwwO2Nb
aj4+Ml09SCs0O2NbSD4+Ml09TDtNPUsrMXwwfWVsc2V7TT15fX13aGlsZSgwKTtjYVtjWyhjW2s+
PjJdfDApKzQ4Pj4yXSYxNV0ocixNLGYsY1tqPj4yXXwwKXwwO3I9KGNbaj4+Ml18MCkrKG0tTTw8
Mil8MDtjW2o+PjJdPXI7aWYoKGV8MCk9PShmfDApKXtOPXI7Y1toPj4yXT1OO2RQKG8pO2k9bDty
ZXR1cm59Tj1nKyhlLWI8PDIpfDA7Y1toPj4yXT1OO2RQKG8pO2k9bDtyZXR1cm59ZnVuY3Rpb24g
Z3coYixkLGUsZixnLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9K2o7dmFyIGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZD1pO2k9aSszMjB8
MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4
fDA7bT1kKzQwfDA7bj1kKzQ4fDA7bz1kKzI4MHwwO3A9ZCsyODh8MDtxPWQrMjk2fDA7cj1kKzMw
NHwwO3M9ZCszMTJ8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3Q9aztrPXQrMXwwO3U9Zis0fDA7
dj1jW3U+PjJdfDA7aWYoKHYmMjA0OHwwKT09MCl7dz1rfWVsc2V7YVtrXT00Mzt3PXQrMnwwfWlm
KCh2JjEwMjR8MCk9PTApe3g9d31lbHNle2Fbd109MzU7eD13KzF8MH13PXYmMjYwO2s9dj4+PjE0
O0wyMzg0OmRve2lmKCh3fDApPT0yNjApe2FbeF09NzY7dj14KzF8MDtpZigoayYxfDApPT0wKXth
W3ZdPTk3O3k9MDticmVha31lbHNle2Fbdl09NjU7eT0wO2JyZWFrfX1lbHNle2FbeF09NDY7YVt4
KzF8MF09NDI7YVt4KzJ8MF09NzY7dj14KzN8MDtzd2l0Y2god3wwKXtjYXNlIDI1Njp7aWYoKGsm
MXwwKT09MCl7YVt2XT0xMDE7eT0xO2JyZWFrIEwyMzg0fWVsc2V7YVt2XT02OTt5PTE7YnJlYWsg
TDIzODR9YnJlYWt9O2Nhc2UgNDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDI7eT0xO2JyZWFrIEwy
Mzg0fWVsc2V7YVt2XT03MDt5PTE7YnJlYWsgTDIzODR9YnJlYWt9O2RlZmF1bHQ6e2lmKChrJjF8
MCk9PTApe2Fbdl09MTAzO3k9MTticmVhayBMMjM4NH1lbHNle2Fbdl09NzE7eT0xO2JyZWFrIEwy
Mzg0fX19fX13aGlsZSgwKTtrPWx8MDtjW20+PjJdPWs7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTtsPWNbMjk1OF18MDtpZih5KXt3PWdiKGssMzAsbCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1j
W2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7QT13fWVsc2V7dz1nYihrLDMwLGwsdCwo
ej1pLGk9aSs4fDAsaFt6Pj4zXT1qLHopfDApfDA7aT16O0E9d31kb3tpZigoQXwwKT4yOSl7dz0o
YVsxNjI2NF18MCk9PTA7aWYoeSl7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9
Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1naChtLGNbMjk1OF18MCx0LCh6PWks
aT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7Qj1sfWVs
c2V7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7dz1naChtLGNbMjk1OF18MCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWos
eil8MCl8MDtpPXo7Qj13fXc9Y1ttPj4yXXwwO2lmKCh3fDApIT0wKXtDPUI7RD13O0U9dzticmVh
a31rWCgpO3c9Y1ttPj4yXXwwO0M9QjtEPXc7RT13fWVsc2V7Qz1BO0Q9MDtFPWNbbT4+Ml18MH19
d2hpbGUoMCk7QT1FK0N8MDtMMjQzMzpkb3tzd2l0Y2goY1t1Pj4yXSYxNzZ8MCl7Y2FzZSAxNjp7
Qj1hW0VdfDA7c3dpdGNoKEI8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntGPUUrMXwwO2JyZWFr
IEwyNDMzO2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKEN8MCk+MSZCPDwyND4+MjQ9PTQ4KSl7Rz0y
MDE4O2JyZWFrIEwyNDMzfXN3aXRjaChhW0UrMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVh
a307ZGVmYXVsdDp7Rz0yMDE4O2JyZWFrIEwyNDMzfX1GPUUrMnwwO2JyZWFrfTtjYXNlIDMyOntG
PUE7YnJlYWt9O2RlZmF1bHQ6e0c9MjAxOH19fXdoaWxlKDApO2lmKChHfDApPT0yMDE4KXtGPUV9
ZG97aWYoKEV8MCk9PShrfDApKXtIPW58MDtJPTA7Sj1rfWVsc2V7Rz1rSihDPDwzKXwwO3U9Rztp
ZigoR3wwKSE9MCl7SD11O0k9dTtKPUU7YnJlYWt9a1goKTtIPXU7ST11O0o9Y1ttPj4yXXwwfX13
aGlsZSgwKTtlaihxLGYpO2d2KEosRixBLEgsbyxwLHEpO2R6KGNbcT4+Ml18MCl8MDtxPWV8MDtj
W3M+PjJdPWNbcT4+Ml07Z3EocixzLEgsY1tvPj4yXXwwLGNbcD4+Ml18MCxmLGcpO2c9Y1tyPj4y
XXwwO2NbcT4+Ml09ZztjW2I+PjJdPWc7aWYoKEl8MCkhPTApe2tLKEkpfWlmKChEfDApPT0wKXtp
PWQ7cmV0dXJufWtLKEQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ3goYixkLGUsZixnLGgpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtkPWk7aT1p
KzIxNnwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7
az1kKzI0fDA7bD1kKzQ4fDA7bT1kKzIwMHwwO249ZCsyMDh8MDtvPWQrMTZ8MDthW29dPWFbMjM5
Ml18MDthW28rMXwwXT1hWzIzOTN8MF18MDthW28rMnwwXT1hWzIzOTR8MF18MDthW28rM3wwXT1h
WzIzOTV8MF18MDthW28rNHwwXT1hWzIzOTZ8MF18MDthW28rNXwwXT1hWzIzOTd8MF18MDtwPWt8
MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1
OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3E9Z2IocCwyMCxjWzI5NThdfDAsbywobz1pLGk9
aSs4fDAsY1tvPj4yXT1oLG8pfDApfDA7aT1vO289aytxfDA7TDI0NjQ6ZG97c3dpdGNoKGNbZis0
Pj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aD1hW3BdfDA7c3dpdGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpj
YXNlIDQzOntyPWsrMXwwO2JyZWFrIEwyNDY0O2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHF8MCk+
MSZoPDwyND4+MjQ9PTQ4KSl7cz0yMDUxO2JyZWFrIEwyNDY0fXN3aXRjaChhW2srMXwwXXwwKXtj
YXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7cz0yMDUxO2JyZWFrIEwyNDY0fX1yPWsr
MnwwO2JyZWFrfTtjYXNlIDMyOntyPW87YnJlYWt9O2RlZmF1bHQ6e3M9MjA1MX19fXdoaWxlKDAp
O2lmKChzfDApPT0yMDUxKXtyPXB9ZWoobSxmKTtzPW18MDttPWNbcz4+Ml18MDtpZigoY1szOTIy
XXwwKSE9LTEpe2Nbaj4+Ml09MTU2ODg7Y1tqKzQ+PjJdPTEyO2Nbais4Pj4yXT0wO2RXKDE1Njg4
LGosOTYpfWo9KGNbMzkyM118MCktMXwwO2g9Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18
MCktaD4+Mj4+PjA+aj4+PjApe3Q9Y1toKyhqPDwyKT4+Ml18MDtpZigodHwwKT09MCl7YnJlYWt9
dT10O3Y9Y1tzPj4yXXwwO2R6KHYpfDA7dj1sfDA7dz1jWyhjW3Q+PjJdfDApKzQ4Pj4yXXwwO2Nh
W3cmMTVdKHUscCxvLHYpfDA7dT1sKyhxPDwyKXwwO2lmKChyfDApPT0ob3wwKSl7eD11O3k9ZXww
O3o9Y1t5Pj4yXXwwO0E9bnwwO2NbQT4+Ml09ejtncShiLG4sdix4LHUsZixnKTtpPWQ7cmV0dXJu
fXg9bCsoci1rPDwyKXwwO3k9ZXwwO3o9Y1t5Pj4yXXwwO0E9bnwwO2NbQT4+Ml09ejtncShiLG4s
dix4LHUsZixnKTtpPWQ7cmV0dXJufX13aGlsZSgwKTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgx
NzYsMTM0KX1mdW5jdGlvbiBneShhKXthPWF8MDtyZXR1cm4gMn1mdW5jdGlvbiBneihhKXthPWF8
MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBnQShhKXthPWF8MDtkZShhfDApO3JldHVy
bn1mdW5jdGlvbiBnQihhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTA7aj1pO2k9aSsxNnwwO2s9ZDtkPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHwwO2Nbaz4+Ml09Y1tkPj4yXTtjW2w+PjJdPWNb
ZT4+Ml07Z0QoYSxiLGssbCxmLGcsaCwyMzc2LDIzODQpO2k9ajtyZXR1cm59ZnVuY3Rpb24gZ0Mo
YixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7
dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7az1pO2k9aSsxNnwwO2w9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWt8MDttPWsrOHwwO249ZCs4fDA7bz1iMFtjWyhjW24+
PjJdfDApKzIwPj4yXSYxMjddKG4pfDA7Y1tsPj4yXT1jW2U+PjJdO2NbbT4+Ml09Y1tmPj4yXTtm
PW87ZT1hW29dfDA7aWYoKGUmMSk9PTApe3A9ZisxfDA7cT1mKzF8MH1lbHNle2Y9Y1tvKzg+PjJd
fDA7cD1mO3E9Zn1mPWUmMjU1O2lmKChmJjF8MCk9PTApe3I9Zj4+PjF9ZWxzZXtyPWNbbys0Pj4y
XXwwfWdEKGIsZCxsLG0sZyxoLGoscSxwK3J8MCk7aT1rO3JldHVybn1mdW5jdGlvbiBnRChkLGUs
ZixnLGgsaixrLGwsbSl7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7
bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0w
LF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MDtuPWk7aT1pKzQ4fDA7bz1mO2Y9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tvPj4yXTtvPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tnPj4yXT1jW28+PjJdO289bnwwO3A9bisxNnwwO3E9bisyNHwwO3I9biszMnwwO3M9bis0MHww
O2VqKHAsaCk7dD1wfDA7cD1jW3Q+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW28+PjJdPTE1
Njk2O2Nbbys0Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNTY5NixvLDk2KX1vPShjWzM5MjVdfDAp
LTF8MDt1PWNbcCs4Pj4yXXwwO2Rve2lmKChjW3ArMTI+PjJdfDApLXU+PjI+Pj4wPm8+Pj4wKXt2
PWNbdSsobzw8Mik+PjJdfDA7aWYoKHZ8MCk9PTApe2JyZWFrfXc9djt4PWNbdD4+Ml18MDtkeih4
KXwwO2Nbaj4+Ml09MDt4PWZ8MDtMMjUwNjpkb3tpZigobHwwKT09KG18MCkpe3k9MjE0MX1lbHNl
e3o9Z3wwO0E9djtCPXYrOHwwO0M9djtEPWU7RT1yfDA7Rj1zfDA7Rz1xfDA7SD1sO0k9MDtMMjUw
ODp3aGlsZSgxKXtKPUk7d2hpbGUoMSl7aWYoKEp8MCkhPTApe3k9MjE0MTticmVhayBMMjUwNn1L
PWNbeD4+Ml18MDtkb3tpZigoS3wwKT09MCl7TD0wfWVsc2V7aWYoKGNbSysxMj4+Ml18MCkhPShj
W0srMTY+PjJdfDApKXtMPUs7YnJlYWt9aWYoKGIwW2NbKGNbSz4+Ml18MCkrMzY+PjJdJjEyN10o
Syl8MCkhPS0xKXtMPUs7YnJlYWt9Y1t4Pj4yXT0wO0w9MH19d2hpbGUoMCk7Sz0oTHwwKT09MDtN
PWNbej4+Ml18MDtMMjUxODpkb3tpZigoTXwwKT09MCl7eT0yMDk0fWVsc2V7ZG97aWYoKGNbTSsx
Mj4+Ml18MCk9PShjW00rMTY+PjJdfDApKXtpZigoYjBbY1soY1tNPj4yXXwwKSszNj4+Ml0mMTI3
XShNKXwwKSE9LTEpe2JyZWFrfWNbej4+Ml09MDt5PTIwOTQ7YnJlYWsgTDI1MTh9fXdoaWxlKDAp
O2lmKEspe049TX1lbHNle3k9MjA5NTticmVhayBMMjUwOH19fXdoaWxlKDApO2lmKCh5fDApPT0y
MDk0KXt5PTA7aWYoSyl7eT0yMDk1O2JyZWFrIEwyNTA4fWVsc2V7Tj0wfX1pZigoYjFbY1soY1tB
Pj4yXXwwKSszNj4+Ml0mNjNdKHcsYVtIXXwwLDApfDApPDwyND4+MjQ9PTM3KXt5PTIwOTg7YnJl
YWt9TT1hW0hdfDA7aWYoTTw8MjQ+PjI0Pi0xKXtPPWNbQj4+Ml18MDtpZigoYltPKyhNPDwyND4+
MjQ8PDEpPj4xXSY4MTkyKSE9MCl7UD1IO3k9MjEwOTticmVha319UT1MKzEyfDA7TT1jW1E+PjJd
fDA7Uj1MKzE2fDA7aWYoKE18MCk9PShjW1I+PjJdfDApKXtTPShiMFtjWyhjW0w+PjJdfDApKzM2
Pj4yXSYxMjddKEwpfDApJjI1NX1lbHNle1M9YVtNXXwwfU09Yl9bY1soY1tDPj4yXXwwKSsxMj4+
Ml0mMzFdKHcsUyl8MDtpZihNPDwyND4+MjQ9PShiX1tjWyhjW0M+PjJdfDApKzEyPj4yXSYzMV0o
dyxhW0hdfDApfDApPDwyND4+MjQpe3k9MjEzNjticmVha31jW2o+PjJdPTQ7Sj00fUwyNTM2OmRv
e2lmKCh5fDApPT0yMTM2KXt5PTA7Sj1jW1E+PjJdfDA7aWYoKEp8MCk9PShjW1I+PjJdfDApKXtN
PWNbKGNbTD4+Ml18MCkrNDA+PjJdfDA7YjBbTSYxMjddKEwpfDB9ZWxzZXtjW1E+PjJdPUorMX1U
PUgrMXwwfWVsc2UgaWYoKHl8MCk9PTIwOTgpe3k9MDtKPUgrMXwwO2lmKChKfDApPT0obXwwKSl7
eT0yMDk5O2JyZWFrIEwyNTA4fU09YjFbY1soY1tBPj4yXXwwKSszNj4+Ml0mNjNdKHcsYVtKXXww
LDApfDA7c3dpdGNoKE08PDI0Pj4yNCl7Y2FzZSA2OTpjYXNlIDQ4OntVPUgrMnwwO2lmKChVfDAp
PT0obXwwKSl7eT0yMTAyO2JyZWFrIEwyNTA4fVY9TTtXPWIxW2NbKGNbQT4+Ml18MCkrMzY+PjJd
JjYzXSh3LGFbVV18MCwwKXwwO1g9VTticmVha307ZGVmYXVsdDp7Vj0wO1c9TTtYPUp9fUo9Y1so
Y1tEPj4yXXwwKSszNj4+Ml18MDtjW0U+PjJdPUw7Y1tGPj4yXT1OO2I3W0omN10ocSxlLHIscyxo
LGosayxXLFYpO2NbeD4+Ml09Y1tHPj4yXTtUPVgrMXwwfWVsc2UgaWYoKHl8MCk9PTIxMDkpe3do
aWxlKDEpe3k9MDtKPVArMXwwO2lmKChKfDApPT0obXwwKSl7WT1tO2JyZWFrfU09YVtKXXwwO2lm
KE08PDI0Pj4yNDw9LTEpe1k9SjticmVha31pZigoYltPKyhNPDwyND4+MjQ8PDEpPj4xXSY4MTky
KT09MCl7WT1KO2JyZWFrfWVsc2V7UD1KO3k9MjEwOX19Sz1MO0o9Tjt3aGlsZSgxKXtkb3tpZigo
S3wwKT09MCl7Wj0wfWVsc2V7aWYoKGNbSysxMj4+Ml18MCkhPShjW0srMTY+PjJdfDApKXtaPUs7
YnJlYWt9aWYoKGIwW2NbKGNbSz4+Ml18MCkrMzY+PjJdJjEyN10oSyl8MCkhPS0xKXtaPUs7YnJl
YWt9Y1t4Pj4yXT0wO1o9MH19d2hpbGUoMCk7TT0oWnwwKT09MDtkb3tpZigoSnwwKT09MCl7eT0y
MTIyfWVsc2V7aWYoKGNbSisxMj4+Ml18MCkhPShjW0orMTY+PjJdfDApKXtpZihNKXtfPUo7YnJl
YWt9ZWxzZXtUPVk7YnJlYWsgTDI1MzZ9fWlmKChiMFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYxMjdd
KEopfDApPT0tMSl7Y1t6Pj4yXT0wO3k9MjEyMjticmVha31lbHNle2lmKE1eKEp8MCk9PTApe189
SjticmVha31lbHNle1Q9WTticmVhayBMMjUzNn19fX13aGlsZSgwKTtpZigoeXwwKT09MjEyMil7
eT0wO2lmKE0pe1Q9WTticmVhayBMMjUzNn1lbHNle189MH19VT1aKzEyfDA7JD1jW1U+PjJdfDA7
YWE9WisxNnwwO2lmKCgkfDApPT0oY1thYT4+Ml18MCkpe2FiPShiMFtjWyhjW1o+PjJdfDApKzM2
Pj4yXSYxMjddKFopfDApJjI1NX1lbHNle2FiPWFbJF18MH1pZihhYjw8MjQ+PjI0PD0tMSl7VD1Z
O2JyZWFrIEwyNTM2fWlmKChiWyhjW0I+PjJdfDApKyhhYjw8MjQ+PjI0PDwxKT4+MV0mODE5Mik9
PTApe1Q9WTticmVhayBMMjUzNn0kPWNbVT4+Ml18MDtpZigoJHwwKT09KGNbYWE+PjJdfDApKXth
YT1jWyhjW1o+PjJdfDApKzQwPj4yXXwwO2IwW2FhJjEyN10oWil8MDtLPVo7Sj1fO2NvbnRpbnVl
fWVsc2V7Y1tVPj4yXT0kKzE7Sz1aO0o9Xztjb250aW51ZX19fX13aGlsZSgwKTtpZigoVHwwKT09
KG18MCkpe3k9MjE0MTticmVhayBMMjUwNn1IPVQ7ST1jW2o+PjJdfDB9aWYoKHl8MCk9PTIwOTkp
e2Nbaj4+Ml09NDthYz1MO2JyZWFrfWVsc2UgaWYoKHl8MCk9PTIxMDIpe2Nbaj4+Ml09NDthYz1M
O2JyZWFrfWVsc2UgaWYoKHl8MCk9PTIwOTUpe2Nbaj4+Ml09NDthYz1MO2JyZWFrfX19d2hpbGUo
MCk7aWYoKHl8MCk9PTIxNDEpe2FjPWNbeD4+Ml18MH13PWZ8MDtkb3tpZigoYWN8MCkhPTApe2lm
KChjW2FjKzEyPj4yXXwwKSE9KGNbYWMrMTY+PjJdfDApKXticmVha31pZigoYjBbY1soY1thYz4+
Ml18MCkrMzY+PjJdJjEyN10oYWMpfDApIT0tMSl7YnJlYWt9Y1t3Pj4yXT0wfX13aGlsZSgwKTt4
PWNbdz4+Ml18MDt2PSh4fDApPT0wO0k9Z3wwO0g9Y1tJPj4yXXwwO0wyNTk0OmRve2lmKChIfDAp
PT0wKXt5PTIxNTF9ZWxzZXtkb3tpZigoY1tIKzEyPj4yXXwwKT09KGNbSCsxNj4+Ml18MCkpe2lm
KChiMFtjWyhjW0g+PjJdfDApKzM2Pj4yXSYxMjddKEgpfDApIT0tMSl7YnJlYWt9Y1tJPj4yXT0w
O3k9MjE1MTticmVhayBMMjU5NH19d2hpbGUoMCk7aWYoIXYpe2JyZWFrfWFkPWR8MDtjW2FkPj4y
XT14O2k9bjtyZXR1cm59fXdoaWxlKDApO2Rve2lmKCh5fDApPT0yMTUxKXtpZih2KXticmVha31h
ZD1kfDA7Y1thZD4+Ml09eDtpPW47cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18Mjth
ZD1kfDA7Y1thZD4+Ml09eDtpPW47cmV0dXJufX13aGlsZSgwKTtuPWJPKDQpfDA7a3Eobik7Ymwo
bnwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnRShhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTA7aj1pO2k9aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09
Y1trPj4yXTtrPWp8MDtsPWorOHwwO209aisyNHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7
aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJdPTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09
MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVdfDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChj
W20rMTI+PjJdfDApLW4+PjI+Pj4wPmw+Pj4wKXtvPWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9
PTApe2JyZWFrfXA9bztvPWNbZj4+Ml18MDtkeihvKXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1i
MFtjW2NbcT4+Ml0+PjJdJjEyN10ocSl8MDtjW2s+PjJdPW87bz0oZnEoZCxrLHIscisxNjh8MCxw
LGcsMCl8MCktcnwwO2lmKChvfDApPj0xNjgpe3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+
Ml09dDtpPWo7cmV0dXJufWNbaCsyND4+Ml09KChvfDApLzEyfDB8MCklN3wwO3M9ZHwwO3Q9Y1tz
Pj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eo
aik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnRihhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7aj1pO2k9aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
ZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHwwO209aisyNHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+
PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJdPTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wr
OD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVdfDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rv
e2lmKChjW20rMTI+PjJdfDApLW4+PjI+Pj4wPmw+Pj4wKXtvPWNbbisobDw8Mik+PjJdfDA7aWYo
KG98MCk9PTApe2JyZWFrfXA9bztvPWNbZj4+Ml18MDtkeihvKXwwO289Y1tlPj4yXXwwO3E9Yis4
fDA7cj1iMFtjWyhjW3E+PjJdfDApKzQ+PjJdJjEyN10ocSl8MDtjW2s+PjJdPW87bz0oZnEoZCxr
LHIscisyODh8MCxwLGcsMCl8MCktcnwwO2lmKChvfDApPj0yODgpe3M9ZHwwO3Q9Y1tzPj4yXXww
O3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufWNbaCsxNj4+Ml09KChvfDApLzEyfDB8MCklMTJ8
MDtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn19d2hpbGUoMCk7
aj1iTyg0KXwwO2txKGopO2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ0coYSxiLGQsZSxmLGcs
aCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDtiPWk7aT1pKzMyfDA7aj1kO2Q9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tqPj4yXTtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tlPj4yXT1jW2o+PjJdO2o9YnwwO2s9Yis4fDA7bD1iKzI0fDA7ZWoobCxmKTtmPWx8MDts
PWNbZj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbaz4+Ml09MTU2OTY7Y1trKzQ+PjJdPTEy
O2Nbays4Pj4yXT0wO2RXKDE1Njk2LGssOTYpfWs9KGNbMzkyNV18MCktMXwwO209Y1tsKzg+PjJd
fDA7ZG97aWYoKGNbbCsxMj4+Ml18MCktbT4+Mj4+PjA+az4+PjApe249Y1ttKyhrPDwyKT4+Ml18
MDtpZigobnwwKT09MCl7YnJlYWt9bz1uO249Y1tmPj4yXXwwO2R6KG4pfDA7Y1tqPj4yXT1jW2U+
PjJdO249Z0woZCxqLGcsbyw0KXwwO2lmKChjW2c+PjJdJjR8MCkhPTApe3A9ZHwwO3E9Y1twPj4y
XXwwO3I9YXwwO2Nbcj4+Ml09cTtpPWI7cmV0dXJufWlmKChufDApPDY5KXtzPW4rMmUzfDB9ZWxz
ZXtzPShuLTY5fDApPj4+MDwzMT9uKzE5MDB8MDpufWNbaCsyMD4+Ml09cy0xOTAwO3A9ZHwwO3E9
Y1twPj4yXXwwO3I9YXwwO2Nbcj4+Ml09cTtpPWI7cmV0dXJufX13aGlsZSgwKTtiPWJPKDQpfDA7
a3EoYik7YmwoYnwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnSChkLGUsZixnLGgpe2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTA7ZD1pO2o9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJd
PWNbaj4+Ml07aj1lfDA7ZT1mfDA7Zj1oKzh8MDtMMjY1Mjp3aGlsZSgxKXtoPWNbaj4+Ml18MDtk
b3tpZigoaHwwKT09MCl7az0wfWVsc2V7aWYoKGNbaCsxMj4+Ml18MCkhPShjW2grMTY+PjJdfDAp
KXtrPWg7YnJlYWt9aWYoKGIwW2NbKGNbaD4+Ml18MCkrMzY+PjJdJjEyN10oaCl8MCk9PS0xKXtj
W2o+PjJdPTA7az0wO2JyZWFrfWVsc2V7az1jW2o+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtoPShr
fDApPT0wO2w9Y1tlPj4yXXwwO0wyNjYxOmRve2lmKChsfDApPT0wKXttPTIyMDd9ZWxzZXtkb3tp
ZigoY1tsKzEyPj4yXXwwKT09KGNbbCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW2w+PjJdfDApKzM2
Pj4yXSYxMjddKGwpfDApIT0tMSl7YnJlYWt9Y1tlPj4yXT0wO209MjIwNzticmVhayBMMjY2MX19
d2hpbGUoMCk7aWYoaCl7bj1sO289MH1lbHNle3A9bDtxPTA7YnJlYWsgTDI2NTJ9fX13aGlsZSgw
KTtpZigobXwwKT09MjIwNyl7bT0wO2lmKGgpe3A9MDtxPTE7YnJlYWt9ZWxzZXtuPTA7bz0xfX1s
PWNbaj4+Ml18MDtyPWNbbCsxMj4+Ml18MDtpZigocnwwKT09KGNbbCsxNj4+Ml18MCkpe3M9KGIw
W2NbKGNbbD4+Ml18MCkrMzY+PjJdJjEyN10obCl8MCkmMjU1fWVsc2V7cz1hW3JdfDB9aWYoczw8
MjQ+PjI0PD0tMSl7cD1uO3E9bzticmVha31pZigoYlsoY1tmPj4yXXwwKSsoczw8MjQ+PjI0PDwx
KT4+MV0mODE5Mik9PTApe3A9bjtxPW87YnJlYWt9cj1jW2o+PjJdfDA7bD1yKzEyfDA7dD1jW2w+
PjJdfDA7aWYoKHR8MCk9PShjW3IrMTY+PjJdfDApKXt1PWNbKGNbcj4+Ml18MCkrNDA+PjJdfDA7
YjBbdSYxMjddKHIpfDA7Y29udGludWV9ZWxzZXtjW2w+PjJdPXQrMTtjb250aW51ZX19bz1jW2o+
PjJdfDA7ZG97aWYoKG98MCk9PTApe3Y9MH1lbHNle2lmKChjW28rMTI+PjJdfDApIT0oY1tvKzE2
Pj4yXXwwKSl7dj1vO2JyZWFrfWlmKChiMFtjWyhjW28+PjJdfDApKzM2Pj4yXSYxMjddKG8pfDAp
PT0tMSl7Y1tqPj4yXT0wO3Y9MDticmVha31lbHNle3Y9Y1tqPj4yXXwwO2JyZWFrfX19d2hpbGUo
MCk7aj0odnwwKT09MDtkb3tpZihxKXttPTIyMjZ9ZWxzZXtpZigoY1twKzEyPj4yXXwwKSE9KGNb
cCsxNj4+Ml18MCkpe2lmKCEoal4ocHwwKT09MCkpe2JyZWFrfWk9ZDtyZXR1cm59aWYoKGIwW2Nb
KGNbcD4+Ml18MCkrMzY+PjJdJjEyN10ocCl8MCk9PS0xKXtjW2U+PjJdPTA7bT0yMjI2O2JyZWFr
fWlmKCFqKXticmVha31pPWQ7cmV0dXJufX13aGlsZSgwKTtkb3tpZigobXwwKT09MjIyNil7aWYo
ail7YnJlYWt9aT1kO3JldHVybn19d2hpbGUoMCk7Y1tnPj4yXT1jW2c+PjJdfDI7aT1kO3JldHVy
bn1mdW5jdGlvbiBnSShiLGQsZSxmLGcsaCxqLGssbCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAs
Rz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxV
PTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxh
Zj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTA7bD1pO2k9aSszMjh8MDttPWU7
ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW20+PjJdO209ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1sfDA7bj1sKzh8MDtvPWwrMTZ8MDtwPWwrMjR8
MDtxPWwrMzJ8MDtyPWwrNDB8MDtzPWwrNDh8MDt0PWwrNTZ8MDt1PWwrNjR8MDt2PWwrNzJ8MDt3
PWwrODB8MDt4PWwrODh8MDt5PWwrOTZ8MDt6PWwrMTEyfDA7QT1sKzEyMHwwO0I9bCsxMjh8MDtD
PWwrMTM2fDA7RD1sKzE0NHwwO0U9bCsxNTJ8MDtGPWwrMTYwfDA7Rz1sKzE2OHwwO0g9bCsxNzZ8
MDtJPWwrMTg0fDA7Sj1sKzE5MnwwO0s9bCsyMDB8MDtMPWwrMjA4fDA7TT1sKzIxNnwwO049bCsy
MjR8MDtPPWwrMjMyfDA7UD1sKzI0MHwwO1E9bCsyNDh8MDtSPWwrMjU2fDA7Uz1sKzI2NHwwO1Q9
bCsyNzJ8MDtVPWwrMjgwfDA7Vj1sKzI4OHwwO1c9bCsyOTZ8MDtYPWwrMzA0fDA7WT1sKzMxMnww
O1o9bCszMjB8MDtjW2g+PjJdPTA7ZWooeixnKTtfPXp8MDt6PWNbXz4+Ml18MDtpZigoY1szOTI0
XXwwKSE9LTEpe2NbeT4+Ml09MTU2OTY7Y1t5KzQ+PjJdPTEyO2NbeSs4Pj4yXT0wO2RXKDE1Njk2
LHksOTYpfXk9KGNbMzkyNV18MCktMXwwOyQ9Y1t6Kzg+PjJdfDA7ZG97aWYoKGNbeisxMj4+Ml18
MCktJD4+Mj4+PjA+eT4+PjApe2FhPWNbJCsoeTw8Mik+PjJdfDA7aWYoKGFhfDApPT0wKXticmVh
a31hYj1hYTthYT1jW18+PjJdfDA7ZHooYWEpfDA7TDI3MDk6ZG97c3dpdGNoKGs8PDI0Pj4yNHww
KXtjYXNlIDcyOntjW3U+PjJdPWNbZj4+Ml07YWE9Z0woZSx1LGgsYWIsMil8MDthYz1jW2g+PjJd
fDA7aWYoKGFjJjR8MCk9PTAmKGFhfDApPDI0KXtjW2orOD4+Ml09YWE7YnJlYWsgTDI3MDl9ZWxz
ZXtjW2g+PjJdPWFjfDQ7YnJlYWsgTDI3MDl9YnJlYWt9O2Nhc2UgOTc6Y2FzZSA2NTp7YWM9Y1tm
Pj4yXXwwO2FhPWQrOHwwO2FkPWIwW2NbY1thYT4+Ml0+PjJdJjEyN10oYWEpfDA7Y1t4Pj4yXT1h
YzthYz0oZnEoZSx4LGFkLGFkKzE2OHwwLGFiLGgsMCl8MCktYWR8MDtpZigoYWN8MCk+PTE2OCl7
YnJlYWsgTDI3MDl9Y1tqKzI0Pj4yXT0oKGFjfDApLzEyfDB8MCklN3wwO2JyZWFrfTtjYXNlIDEw
OTp7Y1tyPj4yXT1jW2Y+PjJdO2FjPShnTChlLHIsaCxhYiwyKXwwKS0xfDA7YWQ9Y1toPj4yXXww
O2lmKChhZCY0fDApPT0wJihhY3wwKTwxMil7Y1tqKzE2Pj4yXT1hYzticmVhayBMMjcwOX1lbHNl
e2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVha307Y2FzZSAxMjE6e2Nbbj4+Ml09Y1tmPj4y
XTthZD1nTChlLG4saCxhYiw0KXwwO2lmKChjW2g+PjJdJjR8MCkhPTApe2JyZWFrIEwyNzA5fWlm
KChhZHwwKTw2OSl7YWU9YWQrMmUzfDB9ZWxzZXthZT0oYWQtNjl8MCk+Pj4wPDMxP2FkKzE5MDB8
MDphZH1jW2orMjA+PjJdPWFlLTE5MDA7YnJlYWt9O2Nhc2UgOTg6Y2FzZSA2NjpjYXNlIDEwNDp7
YWQ9Y1tmPj4yXXwwO2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+PjJdfDApKzQ+PjJdJjEyN10oYWMp
fDA7Y1t3Pj4yXT1hZDthZD0oZnEoZSx3LGFhLGFhKzI4OHwwLGFiLGgsMCl8MCktYWF8MDtpZigo
YWR8MCk+PTI4OCl7YnJlYWsgTDI3MDl9Y1tqKzE2Pj4yXT0oKGFkfDApLzEyfDB8MCklMTJ8MDti
cmVha307Y2FzZSA3Mzp7YWQ9ais4fDA7Y1t0Pj4yXT1jW2Y+PjJdO2FhPWdMKGUsdCxoLGFiLDIp
fDA7YWM9Y1toPj4yXXwwO2Rve2lmKChhYyY0fDApPT0wKXtpZigoYWEtMXwwKT4+PjA+PTEyKXti
cmVha31jW2FkPj4yXT1hYTticmVhayBMMjcwOX19d2hpbGUoMCk7Y1toPj4yXT1hY3w0O2JyZWFr
fTtjYXNlIDEwNjp7Y1tzPj4yXT1jW2Y+PjJdO2FhPWdMKGUscyxoLGFiLDMpfDA7YWQ9Y1toPj4y
XXwwO2lmKChhZCY0fDApPT0wJihhYXwwKTwzNjYpe2NbaisyOD4+Ml09YWE7YnJlYWsgTDI3MDl9
ZWxzZXtjW2g+PjJdPWFkfDQ7YnJlYWsgTDI3MDl9YnJlYWt9O2Nhc2UgNjg6e2FkPWV8MDtjW0U+
PjJdPWNbYWQ+PjJdO2NbRj4+Ml09Y1tmPj4yXTtnRChELGQsRSxGLGcsaCxqLDIzNjgsMjM3Nik7
Y1thZD4+Ml09Y1tEPj4yXTticmVha307Y2FzZSA4NDp7YWQ9ZXwwO2NbUz4+Ml09Y1thZD4+Ml07
Y1tUPj4yXT1jW2Y+PjJdO2dEKFIsZCxTLFQsZyxoLGosMjMyOCwyMzM2KTtjW2FkPj4yXT1jW1I+
PjJdO2JyZWFrfTtjYXNlIDExOTp7Y1tvPj4yXT1jW2Y+PjJdO2FkPWdMKGUsbyxoLGFiLDEpfDA7
YWE9Y1toPj4yXXwwO2lmKChhYSY0fDApPT0wJihhZHwwKTw3KXtjW2orMjQ+PjJdPWFkO2JyZWFr
IEwyNzA5fWVsc2V7Y1toPj4yXT1hYXw0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNlIDcwOnthYT1l
fDA7Y1tIPj4yXT1jW2FhPj4yXTtjW0k+PjJdPWNbZj4+Ml07Z0QoRyxkLEgsSSxnLGgsaiwyMzYw
LDIzNjgpO2NbYWE+PjJdPWNbRz4+Ml07YnJlYWt9O2Nhc2UgODk6e2NbbT4+Ml09Y1tmPj4yXTth
YT1nTChlLG0saCxhYiw0KXwwO2lmKChjW2g+PjJdJjR8MCkhPTApe2JyZWFrIEwyNzA5fWNbaisy
MD4+Ml09YWEtMTkwMDticmVha307Y2FzZSAzNzp7Y1taPj4yXT1jW2Y+PjJdO2dLKDAsZSxaLGgs
YWIpO2JyZWFrfTtjYXNlIDExNDp7YWE9ZXwwO2NbTT4+Ml09Y1thYT4+Ml07Y1tOPj4yXT1jW2Y+
PjJdO2dEKEwsZCxNLE4sZyxoLGosMjM0NCwyMzU1KTtjW2FhPj4yXT1jW0w+PjJdO2JyZWFrfTtj
YXNlIDgyOnthYT1lfDA7Y1tQPj4yXT1jW2FhPj4yXTtjW1E+PjJdPWNbZj4+Ml07Z0QoTyxkLFAs
USxnLGgsaiwyMzM2LDIzNDEpO2NbYWE+PjJdPWNbTz4+Ml07YnJlYWt9O2Nhc2UgOTk6e2FhPWQr
OHwwO2FkPWIwW2NbKGNbYWE+PjJdfDApKzEyPj4yXSYxMjddKGFhKXwwO2FhPWV8MDtjW0I+PjJd
PWNbYWE+PjJdO2NbQz4+Ml09Y1tmPj4yXTthZj1hZDthZz1hW2FkXXwwO2lmKChhZyYxKT09MCl7
YWg9YWYrMXwwO2FpPWFmKzF8MH1lbHNle2FmPWNbYWQrOD4+Ml18MDthaD1hZjthaT1hZn1hZj1h
ZyYyNTU7aWYoKGFmJjF8MCk9PTApe2FqPWFmPj4+MX1lbHNle2FqPWNbYWQrND4+Ml18MH1nRChB
LGQsQixDLGcsaCxqLGFpLGFoK2FqfDApO2NbYWE+PjJdPWNbQT4+Ml07YnJlYWt9O2Nhc2UgODM6
e2NbcD4+Ml09Y1tmPj4yXTthYT1nTChlLHAsaCxhYiwyKXwwO2FkPWNbaD4+Ml18MDtpZigoYWQm
NHwwKT09MCYoYWF8MCk8NjEpe2Nbaj4+Ml09YWE7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFk
fDQ7YnJlYWsgTDI3MDl9YnJlYWt9O2Nhc2UgNzc6e2NbcT4+Ml09Y1tmPj4yXTthZD1nTChlLHEs
aCxhYiwyKXwwO2FhPWNbaD4+Ml18MDtpZigoYWEmNHwwKT09MCYoYWR8MCk8NjApe2Nbais0Pj4y
XT1hZDticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWF8NDticmVhayBMMjcwOX1icmVha307Y2Fz
ZSAxMTA6Y2FzZSAxMTY6e2NbSj4+Ml09Y1tmPj4yXTtnSCgwLGUsSixoLGFiKTticmVha307Y2Fz
ZSAxMTI6e2NbSz4+Ml09Y1tmPj4yXTtnSihkLGorOHwwLGUsSyxoLGFiKTticmVha307Y2FzZSAx
MjA6e2FhPWNbKGNbZD4+Ml18MCkrMjA+PjJdfDA7Y1tVPj4yXT1jW2U+PjJdO2NbVj4+Ml09Y1tm
Pj4yXTtiWFthYSYxMjddKGIsZCxVLFYsZyxoLGopO2k9bDtyZXR1cm59O2Nhc2UgODg6e2FhPWQr
OHwwO2FkPWIwW2NbKGNbYWE+PjJdfDApKzI0Pj4yXSYxMjddKGFhKXwwO2FhPWV8MDtjW1g+PjJd
PWNbYWE+PjJdO2NbWT4+Ml09Y1tmPj4yXTthZj1hZDthZz1hW2FkXXwwO2lmKChhZyYxKT09MCl7
YWs9YWYrMXwwO2FsPWFmKzF8MH1lbHNle2FmPWNbYWQrOD4+Ml18MDthaz1hZjthbD1hZn1hZj1h
ZyYyNTU7aWYoKGFmJjF8MCk9PTApe2FtPWFmPj4+MX1lbHNle2FtPWNbYWQrND4+Ml18MH1nRChX
LGQsWCxZLGcsaCxqLGFsLGFrK2FtfDApO2NbYWE+PjJdPWNbVz4+Ml07YnJlYWt9O2Nhc2UgMTAw
OmNhc2UgMTAxOnthYT1qKzEyfDA7Y1t2Pj4yXT1jW2Y+PjJdO2FkPWdMKGUsdixoLGFiLDIpfDA7
YWY9Y1toPj4yXXwwO2Rve2lmKChhZiY0fDApPT0wKXtpZigoYWQtMXwwKT4+PjA+PTMxKXticmVh
a31jW2FhPj4yXT1hZDticmVhayBMMjcwOX19d2hpbGUoMCk7Y1toPj4yXT1hZnw0O2JyZWFrfTtk
ZWZhdWx0OntjW2g+PjJdPWNbaD4+Ml18NH19fXdoaWxlKDApO2NbYj4+Ml09Y1tlPj4yXTtpPWw7
cmV0dXJufX13aGlsZSgwKTtsPWJPKDQpfDA7a3EobCk7YmwobHwwLDgxNzYsMTM0KX1mdW5jdGlv
biBnSihhLGIsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFy
IGo9MCxrPTAsbD0wLG09MCxuPTA7aj1pO2k9aSs4fDA7az1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZj4+Ml09Y1trPj4yXTtrPWp8MDtsPWErOHwwO2E9YjBbY1soY1tsPj4yXXwwKSs4Pj4y
XSYxMjddKGwpfDA7bD1kW2FdfDA7aWYoKGwmMXwwKT09MCl7bT1sPj4+MX1lbHNle209Y1thKzQ+
PjJdfDB9bD1kW2ErMTJ8MF18MDtpZigobCYxfDApPT0wKXtuPWw+Pj4xfWVsc2V7bj1jW2ErMTY+
PjJdfDB9aWYoKG18MCk9PSgtbnwwKSl7Y1tnPj4yXT1jW2c+PjJdfDQ7aT1qO3JldHVybn1jW2s+
PjJdPWNbZj4+Ml07Zj1mcShlLGssYSxhKzI0fDAsaCxnLDApfDA7Zz1mLWF8MDtkb3tpZigoZnww
KT09KGF8MCkpe2lmKChjW2I+PjJdfDApIT0xMil7YnJlYWt9Y1tiPj4yXT0wO2k9ajtyZXR1cm59
fXdoaWxlKDApO2lmKChnfDApIT0xMil7aT1qO3JldHVybn1nPWNbYj4+Ml18MDtpZigoZ3wwKT49
MTIpe2k9ajtyZXR1cm59Y1tiPj4yXT1nKzEyO2k9ajtyZXR1cm59ZnVuY3Rpb24gZ0soYixkLGUs
ZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGo9MCxrPTAsbD0wLG09
MCxuPTAsbz0wO2I9aTtoPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2g+PjJd
O2g9ZHwwO2Q9Y1toPj4yXXwwO2Rve2lmKChkfDApPT0wKXtqPTB9ZWxzZXtpZigoY1tkKzEyPj4y
XXwwKSE9KGNbZCsxNj4+Ml18MCkpe2o9ZDticmVha31pZigoYjBbY1soY1tkPj4yXXwwKSszNj4+
Ml0mMTI3XShkKXwwKT09LTEpe2NbaD4+Ml09MDtqPTA7YnJlYWt9ZWxzZXtqPWNbaD4+Ml18MDti
cmVha319fXdoaWxlKDApO2Q9KGp8MCk9PTA7aj1lfDA7ZT1jW2o+PjJdfDA7TDI4MjI6ZG97aWYo
KGV8MCk9PTApe2s9MjMzN31lbHNle2Rve2lmKChjW2UrMTI+PjJdfDApPT0oY1tlKzE2Pj4yXXww
KSl7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMzY+PjJdJjEyN10oZSl8MCkhPS0xKXticmVha31jW2o+
PjJdPTA7az0yMzM3O2JyZWFrIEwyODIyfX13aGlsZSgwKTtpZihkKXtsPWU7bT0wfWVsc2V7az0y
MzM4fX19d2hpbGUoMCk7aWYoKGt8MCk9PTIzMzcpe2lmKGQpe2s9MjMzOH1lbHNle2w9MDttPTF9
fWlmKChrfDApPT0yMzM4KXtjW2Y+PjJdPWNbZj4+Ml18NjtpPWI7cmV0dXJufWQ9Y1toPj4yXXww
O2U9Y1tkKzEyPj4yXXwwO2lmKChlfDApPT0oY1tkKzE2Pj4yXXwwKSl7bj0oYjBbY1soY1tkPj4y
XXwwKSszNj4+Ml0mMTI3XShkKXwwKSYyNTV9ZWxzZXtuPWFbZV18MH1pZigoYjFbY1soY1tnPj4y
XXwwKSszNj4+Ml0mNjNdKGcsbiwwKXwwKTw8MjQ+PjI0IT0zNyl7Y1tmPj4yXT1jW2Y+PjJdfDQ7
aT1iO3JldHVybn1uPWNbaD4+Ml18MDtnPW4rMTJ8MDtlPWNbZz4+Ml18MDtpZigoZXwwKT09KGNb
bisxNj4+Ml18MCkpe2Q9Y1soY1tuPj4yXXwwKSs0MD4+Ml18MDtiMFtkJjEyN10obil8MH1lbHNl
e2NbZz4+Ml09ZSsxfWU9Y1toPj4yXXwwO2Rve2lmKChlfDApPT0wKXtvPTB9ZWxzZXtpZigoY1tl
KzEyPj4yXXwwKSE9KGNbZSsxNj4+Ml18MCkpe289ZTticmVha31pZigoYjBbY1soY1tlPj4yXXww
KSszNj4+Ml0mMTI3XShlKXwwKT09LTEpe2NbaD4+Ml09MDtvPTA7YnJlYWt9ZWxzZXtvPWNbaD4+
Ml18MDticmVha319fXdoaWxlKDApO2g9KG98MCk9PTA7ZG97aWYobSl7az0yMzU3fWVsc2V7aWYo
KGNbbCsxMj4+Ml18MCkhPShjW2wrMTY+PjJdfDApKXtpZighKGheKGx8MCk9PTApKXticmVha31p
PWI7cmV0dXJufWlmKChiMFtjWyhjW2w+PjJdfDApKzM2Pj4yXSYxMjddKGwpfDApPT0tMSl7Y1tq
Pj4yXT0wO2s9MjM1NzticmVha31pZighaCl7YnJlYWt9aT1iO3JldHVybn19d2hpbGUoMCk7ZG97
aWYoKGt8MCk9PTIzNTcpe2lmKGgpe2JyZWFrfWk9YjtyZXR1cm59fXdoaWxlKDApO2NbZj4+Ml09
Y1tmPj4yXXwyO2k9YjtyZXR1cm59ZnVuY3Rpb24gZ0woZCxlLGYsZyxoKXtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wO2o9aTtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9
ZHwwO2Q9Y1trPj4yXXwwO2Rve2lmKChkfDApPT0wKXtsPTB9ZWxzZXtpZigoY1tkKzEyPj4yXXww
KSE9KGNbZCsxNj4+Ml18MCkpe2w9ZDticmVha31pZigoYjBbY1soY1tkPj4yXXwwKSszNj4+Ml0m
MTI3XShkKXwwKT09LTEpe2Nbaz4+Ml09MDtsPTA7YnJlYWt9ZWxzZXtsPWNbaz4+Ml18MDticmVh
a319fXdoaWxlKDApO2Q9KGx8MCk9PTA7bD1lfDA7ZT1jW2w+PjJdfDA7TDI4NzY6ZG97aWYoKGV8
MCk9PTApe209MjM3N31lbHNle2Rve2lmKChjW2UrMTI+PjJdfDApPT0oY1tlKzE2Pj4yXXwwKSl7
aWYoKGIwW2NbKGNbZT4+Ml18MCkrMzY+PjJdJjEyN10oZSl8MCkhPS0xKXticmVha31jW2w+PjJd
PTA7bT0yMzc3O2JyZWFrIEwyODc2fX13aGlsZSgwKTtpZihkKXtuPWV9ZWxzZXttPTIzNzh9fX13
aGlsZSgwKTtpZigobXwwKT09MjM3Nyl7aWYoZCl7bT0yMzc4fWVsc2V7bj0wfX1pZigobXwwKT09
MjM3OCl7Y1tmPj4yXT1jW2Y+PjJdfDY7bz0wO2k9ajtyZXR1cm4gb3wwfWQ9Y1trPj4yXXwwO2U9
Y1tkKzEyPj4yXXwwO2lmKChlfDApPT0oY1tkKzE2Pj4yXXwwKSl7cD0oYjBbY1soY1tkPj4yXXww
KSszNj4+Ml0mMTI3XShkKXwwKSYyNTV9ZWxzZXtwPWFbZV18MH1kb3tpZihwPDwyND4+MjQ+LTEp
e2U9Zys4fDA7aWYoKGJbKGNbZT4+Ml18MCkrKHA8PDI0Pj4yNDw8MSk+PjFdJjIwNDgpPT0wKXti
cmVha31kPWc7cT0oYjFbY1soY1tkPj4yXXwwKSszNj4+Ml0mNjNdKGcscCwwKXwwKTw8MjQ+PjI0
O3I9Y1trPj4yXXwwO3M9cisxMnwwO3Q9Y1tzPj4yXXwwO2lmKCh0fDApPT0oY1tyKzE2Pj4yXXww
KSl7dT1jWyhjW3I+PjJdfDApKzQwPj4yXXwwO2IwW3UmMTI3XShyKXwwO3Y9cTt3PWg7eD1ufWVs
c2V7Y1tzPj4yXT10KzE7dj1xO3c9aDt4PW59d2hpbGUoMSl7eT12LTQ4fDA7cT13LTF8MDt0PWNb
az4+Ml18MDtkb3tpZigodHwwKT09MCl7ej0wfWVsc2V7aWYoKGNbdCsxMj4+Ml18MCkhPShjW3Qr
MTY+PjJdfDApKXt6PXQ7YnJlYWt9aWYoKGIwW2NbKGNbdD4+Ml18MCkrMzY+PjJdJjEyN10odCl8
MCk9PS0xKXtjW2s+PjJdPTA7ej0wO2JyZWFrfWVsc2V7ej1jW2s+PjJdfDA7YnJlYWt9fX13aGls
ZSgwKTt0PSh6fDApPT0wO2lmKCh4fDApPT0wKXtBPXo7Qj0wfWVsc2V7ZG97aWYoKGNbeCsxMj4+
Ml18MCk9PShjW3grMTY+PjJdfDApKXtpZigoYjBbY1soY1t4Pj4yXXwwKSszNj4+Ml0mMTI3XSh4
KXwwKSE9LTEpe0M9eDticmVha31jW2w+PjJdPTA7Qz0wfWVsc2V7Qz14fX13aGlsZSgwKTtBPWNb
az4+Ml18MDtCPUN9RD0oQnwwKT09MDtpZighKCh0XkQpJihxfDApPjApKXttPTI0MDc7YnJlYWt9
cz1jW0ErMTI+PjJdfDA7aWYoKHN8MCk9PShjW0ErMTY+PjJdfDApKXtFPShiMFtjWyhjW0E+PjJd
fDApKzM2Pj4yXSYxMjddKEEpfDApJjI1NX1lbHNle0U9YVtzXXwwfWlmKEU8PDI0Pj4yNDw9LTEp
e289eTttPTI0MjI7YnJlYWt9aWYoKGJbKGNbZT4+Ml18MCkrKEU8PDI0Pj4yNDw8MSk+PjFdJjIw
NDgpPT0wKXtvPXk7bT0yNDIzO2JyZWFrfXM9KChiMVtjWyhjW2Q+PjJdfDApKzM2Pj4yXSY2M10o
ZyxFLDApfDApPDwyND4+MjQpKyh5KjEwfDApfDA7cj1jW2s+PjJdfDA7dT1yKzEyfDA7Rj1jW3U+
PjJdfDA7aWYoKEZ8MCk9PShjW3IrMTY+PjJdfDApKXtHPWNbKGNbcj4+Ml18MCkrNDA+PjJdfDA7
YjBbRyYxMjddKHIpfDA7dj1zO3c9cTt4PUI7Y29udGludWV9ZWxzZXtjW3U+PjJdPUYrMTt2PXM7
dz1xO3g9Qjtjb250aW51ZX19aWYoKG18MCk9PTI0MDcpe2Rve2lmKChBfDApPT0wKXtIPTB9ZWxz
ZXtpZigoY1tBKzEyPj4yXXwwKSE9KGNbQSsxNj4+Ml18MCkpe0g9QTticmVha31pZigoYjBbY1so
Y1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKT09LTEpe2Nbaz4+Ml09MDtIPTA7YnJlYWt9ZWxz
ZXtIPWNbaz4+Ml18MDticmVha319fXdoaWxlKDApO2Q9KEh8MCk9PTA7TDI5MzM6ZG97aWYoRCl7
bT0yNDE3fWVsc2V7ZG97aWYoKGNbQisxMj4+Ml18MCk9PShjW0IrMTY+PjJdfDApKXtpZigoYjBb
Y1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSE9LTEpe2JyZWFrfWNbbD4+Ml09MDttPTI0
MTc7YnJlYWsgTDI5MzN9fXdoaWxlKDApO2lmKGQpe289eX1lbHNle2JyZWFrfWk9ajtyZXR1cm4g
b3wwfX13aGlsZSgwKTtkb3tpZigobXwwKT09MjQxNyl7aWYoZCl7YnJlYWt9ZWxzZXtvPXl9aT1q
O3JldHVybiBvfDB9fXdoaWxlKDApO2NbZj4+Ml09Y1tmPj4yXXwyO289eTtpPWo7cmV0dXJuIG98
MH1lbHNlIGlmKChtfDApPT0yNDIyKXtpPWo7cmV0dXJuIG98MH1lbHNlIGlmKChtfDApPT0yNDIz
KXtpPWo7cmV0dXJuIG98MH19fXdoaWxlKDApO2NbZj4+Ml09Y1tmPj4yXXw0O289MDtpPWo7cmV0
dXJuIG98MH1mdW5jdGlvbiBnTShhKXthPWF8MDtyZXR1cm4gMn1mdW5jdGlvbiBnTihhKXthPWF8
MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBnTyhhKXthPWF8MDtkZShhfDApO3JldHVy
bn1mdW5jdGlvbiBnUChhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTA7aj1pO2k9aSsxNnwwO2s9ZDtkPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHwwO2Nbaz4+Ml09Y1tkPj4yXTtjW2w+PjJdPWNb
ZT4+Ml07Z1IoYSxiLGssbCxmLGcsaCwyMjk2LDIzMjgpO2k9ajtyZXR1cm59ZnVuY3Rpb24gZ1Eo
YixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7
dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7az1pO2k9aSsxNnwwO2w9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWt8MDttPWsrOHwwO249ZCs4fDA7bz1iMFtjWyhjW24+
PjJdfDApKzIwPj4yXSYxMjddKG4pfDA7Y1tsPj4yXT1jW2U+PjJdO2NbbT4+Ml09Y1tmPj4yXTtm
PWFbb118MDtpZigoZiYxKT09MCl7cD1vKzR8MDtxPW8rNHwwfWVsc2V7ZT1jW28rOD4+Ml18MDtw
PWU7cT1lfWU9ZiYyNTU7aWYoKGUmMXwwKT09MCl7cj1lPj4+MX1lbHNle3I9Y1tvKzQ+PjJdfDB9
Z1IoYixkLGwsbSxnLGgsaixxLHArKHI8PDIpfDApO2k9aztyZXR1cm59ZnVuY3Rpb24gZ1IoYSxi
LGQsZSxmLGcsaCxqLGspe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxK
PTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9
MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MDtsPWk7
aT1pKzQ4fDA7bT1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1ttPj4yXTttPWU7
ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW20+PjJdO209bHwwO249bCsxNnwwO289
bCsyNHwwO3A9bCszMnwwO3E9bCs0MHwwO2VqKG4sZik7cj1ufDA7bj1jW3I+PjJdfDA7aWYoKGNb
MzkyMl18MCkhPS0xKXtjW20+PjJdPTE1Njg4O2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygx
NTY4OCxtLDk2KX1tPShjWzM5MjNdfDApLTF8MDtzPWNbbis4Pj4yXXwwO2Rve2lmKChjW24rMTI+
PjJdfDApLXM+PjI+Pj4wPm0+Pj4wKXt0PWNbcysobTw8Mik+PjJdfDA7aWYoKHR8MCk9PTApe2Jy
ZWFrfXU9dDt2PWNbcj4+Ml18MDtkeih2KXwwO2NbZz4+Ml09MDt2PWR8MDtMMjk2OTpkb3tpZigo
anwwKT09KGt8MCkpe3c9MjUwOH1lbHNle3g9ZXwwO3k9dDt6PXQ7QT10O0I9YjtDPXB8MDtEPXF8
MDtFPW98MDtGPWo7Rz0wO0wyOTcxOndoaWxlKDEpe0g9Rzt3aGlsZSgxKXtpZigoSHwwKSE9MCl7
dz0yNTA4O2JyZWFrIEwyOTY5fUk9Y1t2Pj4yXXwwO2Rve2lmKChJfDApPT0wKXtKPTB9ZWxzZXtL
PWNbSSsxMj4+Ml18MDtpZigoS3wwKT09KGNbSSsxNj4+Ml18MCkpe0w9YjBbY1soY1tJPj4yXXww
KSszNj4+Ml0mMTI3XShJKXwwfWVsc2V7TD1jW0s+PjJdfDB9aWYoKEx8MCkhPS0xKXtKPUk7YnJl
YWt9Y1t2Pj4yXT0wO0o9MH19d2hpbGUoMCk7ST0oSnwwKT09MDtLPWNbeD4+Ml18MDtkb3tpZigo
S3wwKT09MCl7dz0yNDYwfWVsc2V7TT1jW0srMTI+PjJdfDA7aWYoKE18MCk9PShjW0srMTY+PjJd
fDApKXtOPWIwW2NbKGNbSz4+Ml18MCkrMzY+PjJdJjEyN10oSyl8MH1lbHNle049Y1tNPj4yXXww
fWlmKChOfDApPT0tMSl7Y1t4Pj4yXT0wO3c9MjQ2MDticmVha31lbHNle2lmKEleKEt8MCk9PTAp
e089SzticmVha31lbHNle3c9MjQ2MjticmVhayBMMjk3MX19fX13aGlsZSgwKTtpZigod3wwKT09
MjQ2MCl7dz0wO2lmKEkpe3c9MjQ2MjticmVhayBMMjk3MX1lbHNle089MH19aWYoKGIxW2NbKGNb
eT4+Ml18MCkrNTI+PjJdJjYzXSh1LGNbRj4+Ml18MCwwKXwwKTw8MjQ+PjI0PT0zNyl7dz0yNDY1
O2JyZWFrfWlmKGIxW2NbKGNbej4+Ml18MCkrMTI+PjJdJjYzXSh1LDgxOTIsY1tGPj4yXXwwKXww
KXtQPUY7dz0yNDc1O2JyZWFrfVE9SisxMnwwO0s9Y1tRPj4yXXwwO1I9SisxNnwwO2lmKChLfDAp
PT0oY1tSPj4yXXwwKSl7Uz1iMFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYxMjddKEopfDB9ZWxzZXtT
PWNbSz4+Ml18MH1LPWJfW2NbKGNbQT4+Ml18MCkrMjg+PjJdJjMxXSh1LFMpfDA7aWYoKEt8MCk9
PShiX1tjWyhjW0E+PjJdfDApKzI4Pj4yXSYzMV0odSxjW0Y+PjJdfDApfDApKXt3PTI1MDM7YnJl
YWt9Y1tnPj4yXT00O0g9NH1MMzAwMzpkb3tpZigod3wwKT09MjUwMyl7dz0wO0g9Y1tRPj4yXXww
O2lmKChIfDApPT0oY1tSPj4yXXwwKSl7Sz1jWyhjW0o+PjJdfDApKzQwPj4yXXwwO2IwW0smMTI3
XShKKXwwfWVsc2V7Y1tRPj4yXT1IKzR9VD1GKzR8MH1lbHNlIGlmKCh3fDApPT0yNDY1KXt3PTA7
SD1GKzR8MDtpZigoSHwwKT09KGt8MCkpe3c9MjQ2NjticmVhayBMMjk3MX1LPWIxW2NbKGNbeT4+
Ml18MCkrNTI+PjJdJjYzXSh1LGNbSD4+Ml18MCwwKXwwO3N3aXRjaChLPDwyND4+MjQpe2Nhc2Ug
Njk6Y2FzZSA0ODp7TT1GKzh8MDtpZigoTXwwKT09KGt8MCkpe3c9MjQ2OTticmVhayBMMjk3MX1V
PUs7Vj1iMVtjWyhjW3k+PjJdfDApKzUyPj4yXSY2M10odSxjW00+PjJdfDAsMCl8MDtXPU07YnJl
YWt9O2RlZmF1bHQ6e1U9MDtWPUs7Vz1IfX1IPWNbKGNbQj4+Ml18MCkrMzY+PjJdfDA7Y1tDPj4y
XT1KO2NbRD4+Ml09TztiN1tIJjddKG8sYixwLHEsZixnLGgsVixVKTtjW3Y+PjJdPWNbRT4+Ml07
VD1XKzR8MH1lbHNlIGlmKCh3fDApPT0yNDc1KXt3aGlsZSgxKXt3PTA7SD1QKzR8MDtpZigoSHww
KT09KGt8MCkpe1g9azticmVha31pZihiMVtjWyhjW3o+PjJdfDApKzEyPj4yXSY2M10odSw4MTky
LGNbSD4+Ml18MCl8MCl7UD1IO3c9MjQ3NX1lbHNle1g9SDticmVha319ST1KO0g9Tzt3aGlsZSgx
KXtkb3tpZigoSXwwKT09MCl7WT0wfWVsc2V7Sz1jW0krMTI+PjJdfDA7aWYoKEt8MCk9PShjW0kr
MTY+PjJdfDApKXtaPWIwW2NbKGNbST4+Ml18MCkrMzY+PjJdJjEyN10oSSl8MH1lbHNle1o9Y1tL
Pj4yXXwwfWlmKChafDApIT0tMSl7WT1JO2JyZWFrfWNbdj4+Ml09MDtZPTB9fXdoaWxlKDApO0s9
KFl8MCk9PTA7ZG97aWYoKEh8MCk9PTApe3c9MjQ5MH1lbHNle009Y1tIKzEyPj4yXXwwO2lmKChN
fDApPT0oY1tIKzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW0g+PjJdfDApKzM2Pj4yXSYxMjddKEgpfDB9
ZWxzZXtfPWNbTT4+Ml18MH1pZigoX3wwKT09LTEpe2NbeD4+Ml09MDt3PTI0OTA7YnJlYWt9ZWxz
ZXtpZihLXihIfDApPT0wKXskPUg7YnJlYWt9ZWxzZXtUPVg7YnJlYWsgTDMwMDN9fX19d2hpbGUo
MCk7aWYoKHd8MCk9PTI0OTApe3c9MDtpZihLKXtUPVg7YnJlYWsgTDMwMDN9ZWxzZXskPTB9fU09
WSsxMnwwO2FhPWNbTT4+Ml18MDthYj1ZKzE2fDA7aWYoKGFhfDApPT0oY1thYj4+Ml18MCkpe2Fj
PWIwW2NbKGNbWT4+Ml18MCkrMzY+PjJdJjEyN10oWSl8MH1lbHNle2FjPWNbYWE+PjJdfDB9aWYo
IShiMVtjWyhjW3o+PjJdfDApKzEyPj4yXSY2M10odSw4MTkyLGFjKXwwKSl7VD1YO2JyZWFrIEwz
MDAzfWFhPWNbTT4+Ml18MDtpZigoYWF8MCk9PShjW2FiPj4yXXwwKSl7YWI9Y1soY1tZPj4yXXww
KSs0MD4+Ml18MDtiMFthYiYxMjddKFkpfDA7ST1ZO0g9JDtjb250aW51ZX1lbHNle2NbTT4+Ml09
YWErNDtJPVk7SD0kO2NvbnRpbnVlfX19fXdoaWxlKDApO2lmKChUfDApPT0oa3wwKSl7dz0yNTA4
O2JyZWFrIEwyOTY5fUY9VDtHPWNbZz4+Ml18MH1pZigod3wwKT09MjQ2Mil7Y1tnPj4yXT00O2Fk
PUo7YnJlYWt9ZWxzZSBpZigod3wwKT09MjQ2Nil7Y1tnPj4yXT00O2FkPUo7YnJlYWt9ZWxzZSBp
Zigod3wwKT09MjQ2OSl7Y1tnPj4yXT00O2FkPUo7YnJlYWt9fX13aGlsZSgwKTtpZigod3wwKT09
MjUwOCl7YWQ9Y1t2Pj4yXXwwfXU9ZHwwO2Rve2lmKChhZHwwKSE9MCl7dD1jW2FkKzEyPj4yXXww
O2lmKCh0fDApPT0oY1thZCsxNj4+Ml18MCkpe2FlPWIwW2NbKGNbYWQ+PjJdfDApKzM2Pj4yXSYx
MjddKGFkKXwwfWVsc2V7YWU9Y1t0Pj4yXXwwfWlmKChhZXwwKSE9LTEpe2JyZWFrfWNbdT4+Ml09
MH19d2hpbGUoMCk7dj1jW3U+PjJdfDA7dD0odnwwKT09MDtHPWV8MDtGPWNbRz4+Ml18MDtkb3tp
ZigoRnwwKT09MCl7dz0yNTIxfWVsc2V7ej1jW0YrMTI+PjJdfDA7aWYoKHp8MCk9PShjW0YrMTY+
PjJdfDApKXthZj1iMFtjWyhjW0Y+PjJdfDApKzM2Pj4yXSYxMjddKEYpfDB9ZWxzZXthZj1jW3o+
PjJdfDB9aWYoKGFmfDApPT0tMSl7Y1tHPj4yXT0wO3c9MjUyMTticmVha31pZighKHReKEZ8MCk9
PTApKXticmVha31hZz1hfDA7Y1thZz4+Ml09djtpPWw7cmV0dXJufX13aGlsZSgwKTtkb3tpZigo
d3wwKT09MjUyMSl7aWYodCl7YnJlYWt9YWc9YXwwO2NbYWc+PjJdPXY7aT1sO3JldHVybn19d2hp
bGUoMCk7Y1tnPj4yXT1jW2c+PjJdfDI7YWc9YXwwO2NbYWc+PjJdPXY7aT1sO3JldHVybn19d2hp
bGUoMCk7bD1iTyg0KXwwO2txKGwpO2JsKGx8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ1MoYSxiLGQs
ZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2o9aTtpPWkrMzJ8
MDtrPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2s+PjJdO2s9ZTtlPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7bD1qKzh8MDttPWorMjR8MDtl
aihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4
ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0x
fDA7bj1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1uPj4yPj4+MD5sPj4+MCl7bz1j
W24rKGw8PDIpPj4yXXwwO2lmKChvfDApPT0wKXticmVha31wPW87bz1jW2Y+PjJdfDA7ZHoobyl8
MDtvPWNbZT4+Ml18MDtxPWIrOHwwO3I9YjBbY1tjW3E+PjJdPj4yXSYxMjddKHEpfDA7Y1trPj4y
XT1vO289KGZTKGQsayxyLHIrMTY4fDAscCxnLDApfDApLXJ8MDtpZigob3wwKT49MTY4KXtzPWR8
MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn1jW2grMjQ+PjJdPSgob3ww
KS8xMnwwfDApJTd8MDtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVy
bn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGopO2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ1Qo
YSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2o9aTtp
PWkrMzJ8MDtrPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2s+PjJdO2s9ZTtl
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7bD1qKzh8MDttPWor
MjR8MDtlaihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4y
XT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIz
XXwwKS0xfDA7bj1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1uPj4yPj4+MD5sPj4+
MCl7bz1jW24rKGw8PDIpPj4yXXwwO2lmKChvfDApPT0wKXticmVha31wPW87bz1jW2Y+PjJdfDA7
ZHoobyl8MDtvPWNbZT4+Ml18MDtxPWIrOHwwO3I9YjBbY1soY1txPj4yXXwwKSs0Pj4yXSYxMjdd
KHEpfDA7Y1trPj4yXT1vO289KGZTKGQsayxyLHIrMjg4fDAscCxnLDApfDApLXJ8MDtpZigob3ww
KT49Mjg4KXtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn1jW2gr
MTY+PjJdPSgob3wwKS8xMnwwfDApJTEyfDA7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4y
XT10O2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8oNCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQp
fWZ1bmN0aW9uIGdVKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7
Yj1pO2k9aSszMnwwO2o9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaj4+Ml07
aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWJ8MDtrPWIrOHww
O2w9YisyNHwwO2VqKGwsZik7Zj1sfDA7bD1jW2Y+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtj
W2s+PjJdPTE1Njg4O2Nbays0Pj4yXT0xMjtjW2srOD4+Ml09MDtkVygxNTY4OCxrLDk2KX1rPShj
WzM5MjNdfDApLTF8MDttPWNbbCs4Pj4yXXwwO2Rve2lmKChjW2wrMTI+PjJdfDApLW0+PjI+Pj4w
Pms+Pj4wKXtuPWNbbSsoazw8Mik+PjJdfDA7aWYoKG58MCk9PTApe2JyZWFrfW89bjtuPWNbZj4+
Ml18MDtkeihuKXwwO2Nbaj4+Ml09Y1tlPj4yXTtuPWhjKGQsaixnLG8sNCl8MDtpZigoY1tnPj4y
XSY0fDApIT0wKXtwPWR8MDtxPWNbcD4+Ml18MDtyPWF8MDtjW3I+PjJdPXE7aT1iO3JldHVybn1p
ZigobnwwKTw2OSl7cz1uKzJlM3wwfWVsc2V7cz0obi02OXwwKT4+PjA8MzE/bisxOTAwfDA6bn1j
W2grMjA+PjJdPXMtMTkwMDtwPWR8MDtxPWNbcD4+Ml18MDtyPWF8MDtjW3I+PjJdPXE7aT1iO3Jl
dHVybn19d2hpbGUoMCk7Yj1iTyg0KXwwO2txKGIpO2JsKGJ8MCw4MTc2LDEzNCl9ZnVuY3Rpb24g
Z1YoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MDthPWk7Zz1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tnPj4yXTtnPWJ8MDti
PWR8MDtkPWY7TDMxMjc6d2hpbGUoMSl7aD1jW2c+PjJdfDA7ZG97aWYoKGh8MCk9PTApe2o9MX1l
bHNle2s9Y1toKzEyPj4yXXwwO2lmKChrfDApPT0oY1toKzE2Pj4yXXwwKSl7bD1iMFtjWyhjW2g+
PjJdfDApKzM2Pj4yXSYxMjddKGgpfDB9ZWxzZXtsPWNbaz4+Ml18MH1pZigobHwwKT09LTEpe2Nb
Zz4+Ml09MDtqPTE7YnJlYWt9ZWxzZXtqPShjW2c+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7
aD1jW2I+PjJdfDA7ZG97aWYoKGh8MCk9PTApe209MjU4MX1lbHNle2s9Y1toKzEyPj4yXXwwO2lm
KChrfDApPT0oY1toKzE2Pj4yXXwwKSl7bj1iMFtjWyhjW2g+PjJdfDApKzM2Pj4yXSYxMjddKGgp
fDB9ZWxzZXtuPWNbaz4+Ml18MH1pZigobnwwKT09LTEpe2NbYj4+Ml09MDttPTI1ODE7YnJlYWt9
ZWxzZXtrPShofDApPT0wO2lmKGpeayl7bz1oO3A9azticmVha31lbHNle3E9aDtyPWs7YnJlYWsg
TDMxMjd9fX19d2hpbGUoMCk7aWYoKG18MCk9PTI1ODEpe209MDtpZihqKXtxPTA7cj0xO2JyZWFr
fWVsc2V7bz0wO3A9MX19aD1jW2c+PjJdfDA7az1jW2grMTI+PjJdfDA7aWYoKGt8MCk9PShjW2gr
MTY+PjJdfDApKXtzPWIwW2NbKGNbaD4+Ml18MCkrMzY+PjJdJjEyN10oaCl8MH1lbHNle3M9Y1tr
Pj4yXXwwfWlmKCEoYjFbY1soY1tkPj4yXXwwKSsxMj4+Ml0mNjNdKGYsODE5MixzKXwwKSl7cT1v
O3I9cDticmVha31rPWNbZz4+Ml18MDtoPWsrMTJ8MDt0PWNbaD4+Ml18MDtpZigodHwwKT09KGNb
aysxNj4+Ml18MCkpe3U9Y1soY1trPj4yXXwwKSs0MD4+Ml18MDtiMFt1JjEyN10oayl8MDtjb250
aW51ZX1lbHNle2NbaD4+Ml09dCs0O2NvbnRpbnVlfX1wPWNbZz4+Ml18MDtkb3tpZigocHwwKT09
MCl7dj0xfWVsc2V7bz1jW3ArMTI+PjJdfDA7aWYoKG98MCk9PShjW3ArMTY+PjJdfDApKXt3PWIw
W2NbKGNbcD4+Ml18MCkrMzY+PjJdJjEyN10ocCl8MH1lbHNle3c9Y1tvPj4yXXwwfWlmKCh3fDAp
PT0tMSl7Y1tnPj4yXT0wO3Y9MTticmVha31lbHNle3Y9KGNbZz4+Ml18MCk9PTA7YnJlYWt9fX13
aGlsZSgwKTtkb3tpZihyKXttPTI2MDN9ZWxzZXtnPWNbcSsxMj4+Ml18MDtpZigoZ3wwKT09KGNb
cSsxNj4+Ml18MCkpe3g9YjBbY1soY1txPj4yXXwwKSszNj4+Ml0mMTI3XShxKXwwfWVsc2V7eD1j
W2c+PjJdfDB9aWYoKHh8MCk9PS0xKXtjW2I+PjJdPTA7bT0yNjAzO2JyZWFrfWlmKCEodl4ocXww
KT09MCkpe2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChtfDApPT0yNjAzKXtpZih2
KXticmVha31pPWE7cmV0dXJufX13aGlsZSgwKTtjW2U+PjJdPWNbZT4+Ml18MjtpPWE7cmV0dXJu
fWZ1bmN0aW9uIGdXKGIsZCxlLGYsZyxoLGosayxsKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9
MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFm
PTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MDtsPWk7aT1pKzMyOHwwO209ZTtl
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07bT1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWx8MDtuPWwrOHwwO289bCsxNnwwO3A9bCsyNHww
O3E9bCszMnwwO3I9bCs0MHwwO3M9bCs0OHwwO3Q9bCs1NnwwO3U9bCs2NHwwO3Y9bCs3MnwwO3c9
bCs4MHwwO3g9bCs4OHwwO3k9bCs5NnwwO3o9bCsxMTJ8MDtBPWwrMTIwfDA7Qj1sKzEyOHwwO0M9
bCsxMzZ8MDtEPWwrMTQ0fDA7RT1sKzE1MnwwO0Y9bCsxNjB8MDtHPWwrMTY4fDA7SD1sKzE3Nnww
O0k9bCsxODR8MDtKPWwrMTkyfDA7Sz1sKzIwMHwwO0w9bCsyMDh8MDtNPWwrMjE2fDA7Tj1sKzIy
NHwwO089bCsyMzJ8MDtQPWwrMjQwfDA7UT1sKzI0OHwwO1I9bCsyNTZ8MDtTPWwrMjY0fDA7VD1s
KzI3MnwwO1U9bCsyODB8MDtWPWwrMjg4fDA7Vz1sKzI5NnwwO1g9bCszMDR8MDtZPWwrMzEyfDA7
Wj1sKzMyMHwwO2NbaD4+Ml09MDtlaih6LGcpO189enwwO3o9Y1tfPj4yXXwwO2lmKChjWzM5MjJd
fDApIT0tMSl7Y1t5Pj4yXT0xNTY4ODtjW3krND4+Ml09MTI7Y1t5Kzg+PjJdPTA7ZFcoMTU2ODgs
eSw5Nil9eT0oY1szOTIzXXwwKS0xfDA7JD1jW3orOD4+Ml18MDtkb3tpZigoY1t6KzEyPj4yXXww
KS0kPj4yPj4+MD55Pj4+MCl7YWE9Y1skKyh5PDwyKT4+Ml18MDtpZigoYWF8MCk9PTApe2JyZWFr
fWFiPWFhO2FhPWNbXz4+Ml18MDtkeihhYSl8MDtMMzE5Mjpkb3tzd2l0Y2goazw8MjQ+PjI0fDAp
e2Nhc2UgMTAwOmNhc2UgMTAxOnthYT1qKzEyfDA7Y1t2Pj4yXT1jW2Y+PjJdO2FjPWhjKGUsdixo
LGFiLDIpfDA7YWQ9Y1toPj4yXXwwO2Rve2lmKChhZCY0fDApPT0wKXtpZigoYWMtMXwwKT4+PjA+
PTMxKXticmVha31jW2FhPj4yXT1hYzticmVhayBMMzE5Mn19d2hpbGUoMCk7Y1toPj4yXT1hZHw0
O2JyZWFrfTtjYXNlIDExMDpjYXNlIDExNjp7Y1tKPj4yXT1jW2Y+PjJdO2dWKDAsZSxKLGgsYWIp
O2JyZWFrfTtjYXNlIDg4OnthYz1kKzh8MDthYT1iMFtjWyhjW2FjPj4yXXwwKSsyND4+Ml0mMTI3
XShhYyl8MDthYz1lfDA7Y1tYPj4yXT1jW2FjPj4yXTtjW1k+PjJdPWNbZj4+Ml07YWU9YVthYV18
MDtpZigoYWUmMSk9PTApe2FmPWFhKzR8MDthZz1hYSs0fDB9ZWxzZXthaD1jW2FhKzg+PjJdfDA7
YWY9YWg7YWc9YWh9YWg9YWUmMjU1O2lmKChhaCYxfDApPT0wKXthaT1haD4+PjF9ZWxzZXthaT1j
W2FhKzQ+PjJdfDB9Z1IoVyxkLFgsWSxnLGgsaixhZyxhZisoYWk8PDIpfDApO2NbYWM+PjJdPWNb
Vz4+Ml07YnJlYWt9O2Nhc2UgOTg6Y2FzZSA2NjpjYXNlIDEwNDp7YWM9Y1tmPj4yXXwwO2FhPWQr
OHwwO2FoPWIwW2NbKGNbYWE+PjJdfDApKzQ+PjJdJjEyN10oYWEpfDA7Y1t3Pj4yXT1hYzthYz0o
ZlMoZSx3LGFoLGFoKzI4OHwwLGFiLGgsMCl8MCktYWh8MDtpZigoYWN8MCk+PTI4OCl7YnJlYWsg
TDMxOTJ9Y1tqKzE2Pj4yXT0oKGFjfDApLzEyfDB8MCklMTJ8MDticmVha307Y2FzZSAxMTI6e2Nb
Sz4+Ml09Y1tmPj4yXTtnWChkLGorOHwwLGUsSyxoLGFiKTticmVha307Y2FzZSAxMTQ6e2FjPWV8
MDtjW00+PjJdPWNbYWM+PjJdO2NbTj4+Ml09Y1tmPj4yXTtnUihMLGQsTSxOLGcsaCxqLDIyMTYs
MjI2MCk7Y1thYz4+Ml09Y1tMPj4yXTticmVha307Y2FzZSAzNzp7Y1taPj4yXT1jW2Y+PjJdO2dZ
KDAsZSxaLGgsYWIpO2JyZWFrfTtjYXNlIDY4OnthYz1lfDA7Y1tFPj4yXT1jW2FjPj4yXTtjW0Y+
PjJdPWNbZj4+Ml07Z1IoRCxkLEUsRixnLGgsaiwyMjY0LDIyOTYpO2NbYWM+PjJdPWNbRD4+Ml07
YnJlYWt9O2Nhc2UgODk6e2NbbT4+Ml09Y1tmPj4yXTthYz1oYyhlLG0saCxhYiw0KXwwO2lmKChj
W2g+PjJdJjR8MCkhPTApe2JyZWFrIEwzMTkyfWNbaisyMD4+Ml09YWMtMTkwMDticmVha307Y2Fz
ZSA4Mjp7YWM9ZXwwO2NbUD4+Ml09Y1thYz4+Ml07Y1tRPj4yXT1jW2Y+PjJdO2dSKE8sZCxQLFEs
ZyxoLGosMjE5MiwyMjEyKTtjW2FjPj4yXT1jW08+PjJdO2JyZWFrfTtjYXNlIDgzOntjW3A+PjJd
PWNbZj4+Ml07YWM9aGMoZSxwLGgsYWIsMil8MDthaD1jW2g+PjJdfDA7aWYoKGFoJjR8MCk9PTAm
KGFjfDApPDYxKXtjW2o+PjJdPWFjO2JyZWFrIEwzMTkyfWVsc2V7Y1toPj4yXT1haHw0O2JyZWFr
IEwzMTkyfWJyZWFrfTtjYXNlIDEwNjp7Y1tzPj4yXT1jW2Y+PjJdO2FoPWhjKGUscyxoLGFiLDMp
fDA7YWM9Y1toPj4yXXwwO2lmKChhYyY0fDApPT0wJihhaHwwKTwzNjYpe2NbaisyOD4+Ml09YWg7
YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFjfDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgOTc6
Y2FzZSA2NTp7YWM9Y1tmPj4yXXwwO2FoPWQrOHwwO2FhPWIwW2NbY1thaD4+Ml0+PjJdJjEyN10o
YWgpfDA7Y1t4Pj4yXT1hYzthYz0oZlMoZSx4LGFhLGFhKzE2OHwwLGFiLGgsMCl8MCktYWF8MDtp
ZigoYWN8MCk+PTE2OCl7YnJlYWsgTDMxOTJ9Y1tqKzI0Pj4yXT0oKGFjfDApLzEyfDB8MCklN3ww
O2JyZWFrfTtjYXNlIDk5OnthYz1kKzh8MDthYT1iMFtjWyhjW2FjPj4yXXwwKSsxMj4+Ml0mMTI3
XShhYyl8MDthYz1lfDA7Y1tCPj4yXT1jW2FjPj4yXTtjW0M+PjJdPWNbZj4+Ml07YWg9YVthYV18
MDtpZigoYWgmMSk9PTApe2FqPWFhKzR8MDthaz1hYSs0fDB9ZWxzZXthZT1jW2FhKzg+PjJdfDA7
YWo9YWU7YWs9YWV9YWU9YWgmMjU1O2lmKChhZSYxfDApPT0wKXthbD1hZT4+PjF9ZWxzZXthbD1j
W2FhKzQ+PjJdfDB9Z1IoQSxkLEIsQyxnLGgsaixhayxhaisoYWw8PDIpfDApO2NbYWM+PjJdPWNb
QT4+Ml07YnJlYWt9O2Nhc2UgODQ6e2FjPWV8MDtjW1M+PjJdPWNbYWM+PjJdO2NbVD4+Ml09Y1tm
Pj4yXTtnUihSLGQsUyxULGcsaCxqLDIxNjAsMjE5Mik7Y1thYz4+Ml09Y1tSPj4yXTticmVha307
Y2FzZSA3MDp7YWM9ZXwwO2NbSD4+Ml09Y1thYz4+Ml07Y1tJPj4yXT1jW2Y+PjJdO2dSKEcsZCxI
LEksZyxoLGosMjEyOCwyMTYwKTtjW2FjPj4yXT1jW0c+PjJdO2JyZWFrfTtjYXNlIDcyOntjW3U+
PjJdPWNbZj4+Ml07YWM9aGMoZSx1LGgsYWIsMil8MDthYT1jW2g+PjJdfDA7aWYoKGFhJjR8MCk9
PTAmKGFjfDApPDI0KXtjW2orOD4+Ml09YWM7YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFhfDQ7
YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgMTIxOntjW24+PjJdPWNbZj4+Ml07YWE9aGMoZSxuLGgs
YWIsNCl8MDtpZigoY1toPj4yXSY0fDApIT0wKXticmVhayBMMzE5Mn1pZigoYWF8MCk8Njkpe2Ft
PWFhKzJlM3wwfWVsc2V7YW09KGFhLTY5fDApPj4+MDwzMT9hYSsxOTAwfDA6YWF9Y1tqKzIwPj4y
XT1hbS0xOTAwO2JyZWFrfTtjYXNlIDEwOTp7Y1tyPj4yXT1jW2Y+PjJdO2FhPShoYyhlLHIsaCxh
YiwyKXwwKS0xfDA7YWM9Y1toPj4yXXwwO2lmKChhYyY0fDApPT0wJihhYXwwKTwxMil7Y1tqKzE2
Pj4yXT1hYTticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMzE5Mn1icmVha307
Y2FzZSA3Mzp7YWM9ais4fDA7Y1t0Pj4yXT1jW2Y+PjJdO2FhPWhjKGUsdCxoLGFiLDIpfDA7YWU9
Y1toPj4yXXwwO2Rve2lmKChhZSY0fDApPT0wKXtpZigoYWEtMXwwKT4+PjA+PTEyKXticmVha31j
W2FjPj4yXT1hYTticmVhayBMMzE5Mn19d2hpbGUoMCk7Y1toPj4yXT1hZXw0O2JyZWFrfTtjYXNl
IDc3OntjW3E+PjJdPWNbZj4+Ml07YWE9aGMoZSxxLGgsYWIsMil8MDthYz1jW2g+PjJdfDA7aWYo
KGFjJjR8MCk9PTAmKGFhfDApPDYwKXtjW2orND4+Ml09YWE7YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+
PjJdPWFjfDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgMTE5OntjW28+PjJdPWNbZj4+Ml07YWM9
aGMoZSxvLGgsYWIsMSl8MDthYT1jW2g+PjJdfDA7aWYoKGFhJjR8MCk9PTAmKGFjfDApPDcpe2Nb
aisyND4+Ml09YWM7YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFhfDQ7YnJlYWsgTDMxOTJ9YnJl
YWt9O2Nhc2UgMTIwOnthYT1jWyhjW2Q+PjJdfDApKzIwPj4yXXwwO2NbVT4+Ml09Y1tlPj4yXTtj
W1Y+PjJdPWNbZj4+Ml07YlhbYWEmMTI3XShiLGQsVSxWLGcsaCxqKTtpPWw7cmV0dXJufTtkZWZh
dWx0OntjW2g+PjJdPWNbaD4+Ml18NH19fXdoaWxlKDApO2NbYj4+Ml09Y1tlPj4yXTtpPWw7cmV0
dXJufX13aGlsZSgwKTtsPWJPKDQpfDA7a3EobCk7YmwobHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBn
WChhLGIsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9
MCxrPTAsbD0wLG09MCxuPTA7aj1pO2k9aSs4fDA7az1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZj4+Ml09Y1trPj4yXTtrPWp8MDtsPWErOHwwO2E9YjBbY1soY1tsPj4yXXwwKSs4Pj4yXSYx
MjddKGwpfDA7bD1kW2FdfDA7aWYoKGwmMXwwKT09MCl7bT1sPj4+MX1lbHNle209Y1thKzQ+PjJd
fDB9bD1kW2ErMTJ8MF18MDtpZigobCYxfDApPT0wKXtuPWw+Pj4xfWVsc2V7bj1jW2ErMTY+PjJd
fDB9aWYoKG18MCk9PSgtbnwwKSl7Y1tnPj4yXT1jW2c+PjJdfDQ7aT1qO3JldHVybn1jW2s+PjJd
PWNbZj4+Ml07Zj1mUyhlLGssYSxhKzI0fDAsaCxnLDApfDA7Zz1mLWF8MDtkb3tpZigoZnwwKT09
KGF8MCkpe2lmKChjW2I+PjJdfDApIT0xMil7YnJlYWt9Y1tiPj4yXT0wO2k9ajtyZXR1cm59fXdo
aWxlKDApO2lmKChnfDApIT0xMil7aT1qO3JldHVybn1nPWNbYj4+Ml18MDtpZigoZ3wwKT49MTIp
e2k9ajtyZXR1cm59Y1tiPj4yXT1nKzEyO2k9ajtyZXR1cm59Ci1mdW5jdGlvbiBnWShhLGIsZCxl
LGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDthPWk7Zz1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZD4+Ml09Y1tnPj4yXTtnPWJ8MDtiPWNbZz4+Ml18MDtkb3tpZigoYnwwKT09MCl7aD0x
fWVsc2V7aj1jW2IrMTI+PjJdfDA7aWYoKGp8MCk9PShjW2IrMTY+PjJdfDApKXtrPWIwW2NbKGNb
Yj4+Ml18MCkrMzY+PjJdJjEyN10oYil8MH1lbHNle2s9Y1tqPj4yXXwwfWlmKChrfDApPT0tMSl7
Y1tnPj4yXT0wO2g9MTticmVha31lbHNle2g9KGNbZz4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgw
KTtrPWR8MDtkPWNbaz4+Ml18MDtkb3tpZigoZHwwKT09MCl7bD0yNzE2fWVsc2V7Yj1jW2QrMTI+
PjJdfDA7aWYoKGJ8MCk9PShjW2QrMTY+PjJdfDApKXttPWIwW2NbKGNbZD4+Ml18MCkrMzY+PjJd
JjEyN10oZCl8MH1lbHNle209Y1tiPj4yXXwwfWlmKChtfDApPT0tMSl7Y1trPj4yXT0wO2w9Mjcx
NjticmVha31lbHNle2I9KGR8MCk9PTA7aWYoaF5iKXtuPWQ7bz1iO2JyZWFrfWVsc2V7bD0yNzE4
O2JyZWFrfX19fXdoaWxlKDApO2lmKChsfDApPT0yNzE2KXtpZihoKXtsPTI3MTh9ZWxzZXtuPTA7
bz0xfX1pZigobHwwKT09MjcxOCl7Y1tlPj4yXT1jW2U+PjJdfDY7aT1hO3JldHVybn1oPWNbZz4+
Ml18MDtkPWNbaCsxMj4+Ml18MDtpZigoZHwwKT09KGNbaCsxNj4+Ml18MCkpe3A9YjBbY1soY1to
Pj4yXXwwKSszNj4+Ml0mMTI3XShoKXwwfWVsc2V7cD1jW2Q+PjJdfDB9aWYoKGIxW2NbKGNbZj4+
Ml18MCkrNTI+PjJdJjYzXShmLHAsMCl8MCk8PDI0Pj4yNCE9Mzcpe2NbZT4+Ml09Y1tlPj4yXXw0
O2k9YTtyZXR1cm59cD1jW2c+PjJdfDA7Zj1wKzEyfDA7ZD1jW2Y+PjJdfDA7aWYoKGR8MCk9PShj
W3ArMTY+PjJdfDApKXtoPWNbKGNbcD4+Ml18MCkrNDA+PjJdfDA7YjBbaCYxMjddKHApfDB9ZWxz
ZXtjW2Y+PjJdPWQrNH1kPWNbZz4+Ml18MDtkb3tpZigoZHwwKT09MCl7cT0xfWVsc2V7Zj1jW2Qr
MTI+PjJdfDA7aWYoKGZ8MCk9PShjW2QrMTY+PjJdfDApKXtyPWIwW2NbKGNbZD4+Ml18MCkrMzY+
PjJdJjEyN10oZCl8MH1lbHNle3I9Y1tmPj4yXXwwfWlmKChyfDApPT0tMSl7Y1tnPj4yXT0wO3E9
MTticmVha31lbHNle3E9KGNbZz4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZihvKXts
PTI3NDB9ZWxzZXtnPWNbbisxMj4+Ml18MDtpZigoZ3wwKT09KGNbbisxNj4+Ml18MCkpe3M9YjBb
Y1soY1tuPj4yXXwwKSszNj4+Ml0mMTI3XShuKXwwfWVsc2V7cz1jW2c+PjJdfDB9aWYoKHN8MCk9
PS0xKXtjW2s+PjJdPTA7bD0yNzQwO2JyZWFrfWlmKCEocV4obnwwKT09MCkpe2JyZWFrfWk9YTty
ZXR1cm59fXdoaWxlKDApO2Rve2lmKChsfDApPT0yNzQwKXtpZihxKXticmVha31pPWE7cmV0dXJu
fX13aGlsZSgwKTtjW2U+PjJdPWNbZT4+Ml18MjtpPWE7cmV0dXJufWZ1bmN0aW9uIGdaKGEpe2E9
YXwwO3JldHVybiAxMjd9ZnVuY3Rpb24gZ18oYSl7YT1hfDA7cmV0dXJuIDEyN31mdW5jdGlvbiBn
JChhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBnMChhKXthPWF8MDtyZXR1cm4gMTI3fWZ1bmN0
aW9uIGcxKGEpe2E9YXwwO3JldHVybiAxMjd9ZnVuY3Rpb24gZzIoYSl7YT1hfDA7cmV0dXJuIDB9
ZnVuY3Rpb24gZzMoYSl7YT1hfDA7cmV0dXJuIDIxNDc0ODM2NDd9ZnVuY3Rpb24gZzQoYSl7YT1h
fDA7cmV0dXJuIDIxNDc0ODM2NDd9ZnVuY3Rpb24gZzUoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rp
b24gZzYoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODth
W2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1
O3JldHVybn1mdW5jdGlvbiBnNyhiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109
QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7
YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGc4KGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9
NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBd
PUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gZzkoYixjKXtiPWJ8
MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtD
PUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlv
biBoYShiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2Fb
YysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7
cmV0dXJufWZ1bmN0aW9uIGhiKGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1D
JjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODth
W2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gaGMoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxF
PTAsRj0wLEc9MDtnPWk7aD1iO2I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbYj4+Ml09Y1toPj4y
XTtoPWF8MDthPWNbaD4+Ml18MDtkb3tpZigoYXwwKT09MCl7aj0xfWVsc2V7az1jW2ErMTI+PjJd
fDA7aWYoKGt8MCk9PShjW2ErMTY+PjJdfDApKXtsPWIwW2NbKGNbYT4+Ml18MCkrMzY+PjJdJjEy
N10oYSl8MH1lbHNle2w9Y1trPj4yXXwwfWlmKChsfDApPT0tMSl7Y1toPj4yXT0wO2o9MTticmVh
a31lbHNle2o9KGNbaD4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtsPWJ8MDtiPWNbbD4+Ml18
MDtkb3tpZigoYnwwKT09MCl7bT0yOX1lbHNle2E9Y1tiKzEyPj4yXXwwO2lmKChhfDApPT0oY1ti
KzE2Pj4yXXwwKSl7bj1iMFtjWyhjW2I+PjJdfDApKzM2Pj4yXSYxMjddKGIpfDB9ZWxzZXtuPWNb
YT4+Ml18MH1pZigobnwwKT09LTEpe2NbbD4+Ml09MDttPTI5O2JyZWFrfWVsc2V7aWYoal4oYnww
KT09MCl7bz1iO2JyZWFrfWVsc2V7bT0zMTticmVha319fX13aGlsZSgwKTtpZigobXwwKT09Mjkp
e2lmKGope209MzF9ZWxzZXtvPTB9fWlmKChtfDApPT0zMSl7Y1tkPj4yXT1jW2Q+PjJdfDY7cD0w
O2k9ZztyZXR1cm4gcHwwfWo9Y1toPj4yXXwwO2I9Y1tqKzEyPj4yXXwwO2lmKChifDApPT0oY1tq
KzE2Pj4yXXwwKSl7cT1iMFtjWyhjW2o+PjJdfDApKzM2Pj4yXSYxMjddKGopfDB9ZWxzZXtxPWNb
Yj4+Ml18MH1iPWU7aWYoIShiMVtjWyhjW2I+PjJdfDApKzEyPj4yXSY2M10oZSwyMDQ4LHEpfDAp
KXtjW2Q+PjJdPWNbZD4+Ml18NDtwPTA7aT1nO3JldHVybiBwfDB9aj1lO249KGIxW2NbKGNbaj4+
Ml18MCkrNTI+PjJdJjYzXShlLHEsMCl8MCk8PDI0Pj4yNDtxPWNbaD4+Ml18MDthPXErMTJ8MDtr
PWNbYT4+Ml18MDtpZigoa3wwKT09KGNbcSsxNj4+Ml18MCkpe3I9Y1soY1txPj4yXXwwKSs0MD4+
Ml18MDtiMFtyJjEyN10ocSl8MDtzPW47dD1mO3U9b31lbHNle2NbYT4+Ml09ays0O3M9bjt0PWY7
dT1vfXdoaWxlKDEpe3Y9cy00OHwwO289dC0xfDA7Zj1jW2g+PjJdfDA7ZG97aWYoKGZ8MCk9PTAp
e3c9MH1lbHNle249Y1tmKzEyPj4yXXwwO2lmKChufDApPT0oY1tmKzE2Pj4yXXwwKSl7eD1iMFtj
WyhjW2Y+PjJdfDApKzM2Pj4yXSYxMjddKGYpfDB9ZWxzZXt4PWNbbj4+Ml18MH1pZigoeHwwKT09
LTEpe2NbaD4+Ml09MDt3PTA7YnJlYWt9ZWxzZXt3PWNbaD4+Ml18MDticmVha319fXdoaWxlKDAp
O2Y9KHd8MCk9PTA7aWYoKHV8MCk9PTApe3k9dzt6PTB9ZWxzZXtuPWNbdSsxMj4+Ml18MDtpZigo
bnwwKT09KGNbdSsxNj4+Ml18MCkpe0E9YjBbY1soY1t1Pj4yXXwwKSszNj4+Ml0mMTI3XSh1KXww
fWVsc2V7QT1jW24+PjJdfDB9aWYoKEF8MCk9PS0xKXtjW2w+PjJdPTA7Qj0wfWVsc2V7Qj11fXk9
Y1toPj4yXXwwO3o9Qn1DPSh6fDApPT0wO2lmKCEoKGZeQykmKG98MCk+MCkpe2JyZWFrfWY9Y1t5
KzEyPj4yXXwwO2lmKChmfDApPT0oY1t5KzE2Pj4yXXwwKSl7RD1iMFtjWyhjW3k+PjJdfDApKzM2
Pj4yXSYxMjddKHkpfDB9ZWxzZXtEPWNbZj4+Ml18MH1pZighKGIxW2NbKGNbYj4+Ml18MCkrMTI+
PjJdJjYzXShlLDIwNDgsRCl8MCkpe3A9djttPTgxO2JyZWFrfWY9KChiMVtjWyhjW2o+PjJdfDAp
KzUyPj4yXSY2M10oZSxELDApfDApPDwyND4+MjQpKyh2KjEwfDApfDA7bj1jW2g+PjJdfDA7az1u
KzEyfDA7YT1jW2s+PjJdfDA7aWYoKGF8MCk9PShjW24rMTY+PjJdfDApKXtxPWNbKGNbbj4+Ml18
MCkrNDA+PjJdfDA7YjBbcSYxMjddKG4pfDA7cz1mO3Q9bzt1PXo7Y29udGludWV9ZWxzZXtjW2s+
PjJdPWErNDtzPWY7dD1vO3U9ejtjb250aW51ZX19aWYoKG18MCk9PTgxKXtpPWc7cmV0dXJuIHB8
MH1kb3tpZigoeXwwKT09MCl7RT0xfWVsc2V7dT1jW3krMTI+PjJdfDA7aWYoKHV8MCk9PShjW3kr
MTY+PjJdfDApKXtGPWIwW2NbKGNbeT4+Ml18MCkrMzY+PjJdJjEyN10oeSl8MH1lbHNle0Y9Y1t1
Pj4yXXwwfWlmKChGfDApPT0tMSl7Y1toPj4yXT0wO0U9MTticmVha31lbHNle0U9KGNbaD4+Ml18
MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZihDKXttPTc1fWVsc2V7aD1jW3orMTI+PjJdfDA7
aWYoKGh8MCk9PShjW3orMTY+PjJdfDApKXtHPWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10o
eil8MH1lbHNle0c9Y1toPj4yXXwwfWlmKChHfDApPT0tMSl7Y1tsPj4yXT0wO209NzU7YnJlYWt9
aWYoRV4oenwwKT09MCl7cD12fWVsc2V7YnJlYWt9aT1nO3JldHVybiBwfDB9fXdoaWxlKDApO2Rv
e2lmKChtfDApPT03NSl7aWYoRSl7YnJlYWt9ZWxzZXtwPXZ9aT1nO3JldHVybiBwfDB9fXdoaWxl
KDApO2NbZD4+Ml09Y1tkPj4yXXwyO3A9djtpPWc7cmV0dXJuIHB8MH1mdW5jdGlvbiBoZChiLGQs
ZSxmLGcsaCxqLGspe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9
a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wO2c9aTtp
PWkrMTEyfDA7Zj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tmPj4yXTtmPWd8
MDtsPWcrOHwwO209bHwwO249ZnwwO2Fbbl09Mzc7bz1mKzF8MDthW29dPWo7cD1mKzJ8MDthW3Bd
PWs7YVtmKzN8MF09MDtpZihrPDwyND4+MjQhPTApe2Fbb109azthW3BdPWp9aj1iayhtfDAsMTAw
LG58MCxofDAsY1tkKzg+PjJdfDApfDA7ZD1sK2p8MDtsPWNbZT4+Ml18MDtpZigoanwwKT09MCl7
cT1sO3I9YnwwO2Nbcj4+Ml09cTtpPWc7cmV0dXJufWVsc2V7cz1sO3Q9bX13aGlsZSgxKXttPWFb
dF18MDtpZigoc3wwKT09MCl7dT0wfWVsc2V7bD1zKzI0fDA7aj1jW2w+PjJdfDA7aWYoKGp8MCk9
PShjW3MrMjg+PjJdfDApKXt2PWJfW2NbKGNbcz4+Ml18MCkrNTI+PjJdJjMxXShzLG0mMjU1KXww
fWVsc2V7Y1tsPj4yXT1qKzE7YVtqXT1tO3Y9bSYyNTV9dT0odnwwKT09LTE/MDpzfW09dCsxfDA7
aWYoKG18MCk9PShkfDApKXtxPXU7YnJlYWt9ZWxzZXtzPXU7dD1tfX1yPWJ8MDtjW3I+PjJdPXE7
aT1nO3JldHVybn1mdW5jdGlvbiBoZShhLGIsZCxlLGYsZyxoLGope2E9YXwwO2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wO2Y9aTtpPWkrNDA4fDA7ZT1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+
Ml09Y1tlPj4yXTtlPWZ8MDtrPWYrNDAwfDA7bD1lfDA7Y1trPj4yXT1lKzQwMDtoQyhiKzh8MCxs
LGssZyxoLGopO2o9Y1trPj4yXXwwO2s9Y1tkPj4yXXwwO2lmKChsfDApPT0oanwwKSl7bT1rO249
YXwwO2Nbbj4+Ml09bTtpPWY7cmV0dXJufWVsc2V7bz1rO3A9bH13aGlsZSgxKXtsPWNbcD4+Ml18
MDtpZigob3wwKT09MCl7cT0wfWVsc2V7az1vKzI0fDA7ZD1jW2s+PjJdfDA7aWYoKGR8MCk9PShj
W28rMjg+PjJdfDApKXtyPWJfW2NbKGNbbz4+Ml18MCkrNTI+PjJdJjMxXShvLGwpfDB9ZWxzZXtj
W2s+PjJdPWQrNDtjW2Q+PjJdPWw7cj1sfXE9KHJ8MCk9PS0xPzA6b31sPXArNHwwO2lmKChsfDAp
PT0oanwwKSl7bT1xO2JyZWFrfWVsc2V7bz1xO3A9bH19bj1hfDA7Y1tuPj4yXT1tO2k9ZjtyZXR1
cm59ZnVuY3Rpb24gaGYoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaGco
YSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaGgoYSxiKXthPWF8MDtiPWJ8MDtrJChh
fDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhpKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIp
O3JldHVybn1mdW5jdGlvbiBoaihhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59
ZnVuY3Rpb24gaGsoYSxiKXthPWF8MDtiPWJ8MDtkXyhhLDEsNDUpO3JldHVybn1mdW5jdGlvbiBo
bChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBobShhKXthPWF8MDtkZShh
fDApO3JldHVybn1mdW5jdGlvbiBobihhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1
cm59ZnVuY3Rpb24gaG8oYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0
aW9uIGhwKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBocShh
LGIpe2E9YXwwO2I9YnwwO2RfKGEsMSw0NSk7cmV0dXJufWZ1bmN0aW9uIGhyKGEpe2E9YXwwO2Rl
KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGhzKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1
bmN0aW9uIGh0KGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBo
dShhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaHYoYSxiKXth
PWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGh3KGEsYil7YT1hfDA7Yj1i
fDA7ZXkoYSwxLDQ1KTtyZXR1cm59ZnVuY3Rpb24gaHgoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24gaHkoYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MDtkPWI7ZT1iKzh8
MDtmPWNbZT4+Ml18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTAp
e2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChmfDApPT0oY1syOTU4
XXwwKSl7Zz1ifDA7ZGUoZyk7a1MoZCk7cmV0dXJufWE3KGNbZT4+Ml18MCk7Zz1ifDA7ZGUoZyk7
a1MoZCk7cmV0dXJufWZ1bmN0aW9uIGh6KGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MDtkPWIrOHww
O2U9Y1tkPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7
YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGV8MCk9PShjWzI5NThd
fDApKXtmPWJ8MDtkZShmKTtyZXR1cm59YTcoY1tkPj4yXXwwKTtmPWJ8MDtkZShmKTtyZXR1cm59
ZnVuY3Rpb24gaEEoYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MDtkPWI7ZT1iKzh8MDtmPWNb
ZT4+Ml18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFr
fWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChmfDApPT0oY1syOTU4XXwwKSl7
Zz1ifDA7ZGUoZyk7a1MoZCk7cmV0dXJufWE3KGNbZT4+Ml18MCk7Zz1ifDA7ZGUoZyk7a1MoZCk7
cmV0dXJufWZ1bmN0aW9uIGhCKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MDtkPWIrOHwwO2U9Y1tk
Pj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9
Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGV8MCk9PShjWzI5NThdfDApKXtm
PWJ8MDtkZShmKTtyZXR1cm59YTcoY1tkPj4yXXwwKTtmPWJ8MDtkZShmKTtyZXR1cm59ZnVuY3Rp
b24gaEMoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3Zh
ciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wO2o9aTtpPWkrMTIwfDA7az1qfDA7bD1q
KzExMnwwO209aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO249ais4fDA7bz1rfDA7YVtvXT0zNztwPWsr
MXwwO2FbcF09ZztxPWsrMnwwO2FbcV09aDthW2srM3wwXT0wO2lmKGg8PDI0Pj4yNCE9MCl7YVtw
XT1oO2FbcV09Z31nPWJ8MDtiayhufDAsMTAwLG98MCxmfDAsY1tnPj4yXXwwKXwwO2NbbD4+Ml09
MDtjW2wrND4+Ml09MDtjW20+PjJdPW47bj0oY1tlPj4yXXwwKS1kPj4yO2Y9YkIoY1tnPj4yXXww
KXwwO2c9a2UoZCxtLG4sbCl8MDtpZigoZnwwKSE9MCl7YkIoZnwwKXwwfWlmKChnfDApPT0tMSl7
aFYoOTA0KX1lbHNle2NbZT4+Ml09ZCsoZzw8Mik7aT1qO3JldHVybn19ZnVuY3Rpb24gaEQoYSl7
YT1hfDA7cmV0dXJuIDIxNDc0ODM2NDd9ZnVuY3Rpb24gaEUoYSl7YT1hfDA7cmV0dXJuIDIxNDc0
ODM2NDd9ZnVuY3Rpb24gaEYoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gaEcoYSl7YT1hfDA7
cmV0dXJufWZ1bmN0aW9uIGhIKGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1D
JjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODth
W2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gaEkoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02
NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09
QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoSihhKXthPWF8MDtk
ZShhfDApO3JldHVybn1mdW5jdGlvbiBoSyhhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTty
ZXR1cm59ZnVuY3Rpb24gaEwoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1
bmN0aW9uIGhNKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBo
TihhLGIpe2E9YXwwO2I9YnwwO2V5KGEsMSw0NSk7cmV0dXJufWZ1bmN0aW9uIGhPKGEpe2E9YXww
O2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGhQKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJu
fWZ1bmN0aW9uIGhRKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MDtkPWk7aT1pKzI4
MHwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrMTIw
fDA7bz1kKzEyOHwwO3A9ZCsxMzZ8MDtxPWQrMTQ0fDA7cj1kKzE1MnwwO3M9ZCsxNjB8MDt0PWQr
MTc2fDA7dT1ufDA7Y1t1Pj4yXT1tO3Y9bis0fDA7Y1t2Pj4yXT0xNjY7dz1tKzEwMHwwO2VqKHAs
aCk7bT1wfDA7eD1jW20+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJdPTE1Njk2O2Nb
bCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVdfDApLTF8MDt5
PWNbeCs4Pj4yXXwwO2Rve2lmKChjW3grMTI+PjJdfDApLXk+PjI+Pj4wPmw+Pj4wKXt6PWNbeSso
bDw8Mik+PjJdfDA7aWYoKHp8MCk9PTApe2JyZWFrfUE9ejthW3FdPTA7Qj1mfDA7Y1tyPj4yXT1j
W0I+PjJdO2Rve2lmKGhSKGUscixnLHAsY1toKzQ+PjJdfDAsaixxLEEsbixvLHcpfDApe0M9c3ww
O0Q9Y1soY1t6Pj4yXXwwKSszMj4+Ml18MDtjYVtEJjE1XShBLDIxMTIsMjEyMixDKXwwO0Q9dHww
O0U9Y1tvPj4yXXwwO0Y9Y1t1Pj4yXXwwO0c9RS1GfDA7ZG97aWYoKEd8MCk+OTgpe0g9a0ooRysy
fDApfDA7aWYoKEh8MCkhPTApe0k9SDtKPUg7YnJlYWt9a1goKTtJPTA7Sj0wfWVsc2V7ST1EO0o9
MH19d2hpbGUoMCk7aWYoKGFbcV0mMSk9PTApe0s9SX1lbHNle2FbSV09NDU7Sz1JKzF8MH1pZihG
Pj4+MDxFPj4+MCl7Rz1zKzEwfDA7SD1zO0w9SztNPUY7d2hpbGUoMSl7Tj1DO3doaWxlKDEpe2lm
KChOfDApPT0oR3wwKSl7Tz1HO2JyZWFrfWlmKChhW05dfDApPT0oYVtNXXwwKSl7Tz1OO2JyZWFr
fWVsc2V7Tj1OKzF8MH19YVtMXT1hWzIxMTIrKE8tSCl8MF18MDtOPU0rMXwwO1A9TCsxfDA7aWYo
Tj4+PjA8KGNbbz4+Ml18MCk+Pj4wKXtMPVA7TT1OfWVsc2V7UT1QO2JyZWFrfX19ZWxzZXtRPUt9
YVtRXT0wO009YkQoRHwwLDE0MDgsKEw9aSxpPWkrOHwwLGNbTD4+Ml09ayxMKXwwKXwwO2k9TDtp
ZigoTXwwKT09MSl7aWYoKEp8MCk9PTApe2JyZWFrfWtLKEopO2JyZWFrfU09Yk8oOCl8MDtkRShN
LDEzNjgpO2JsKE18MCw4MTkyLDIyKX19d2hpbGUoMCk7QT1lfDA7ej1jW0E+PjJdfDA7ZG97aWYo
KHp8MCk9PTApe1I9MH1lbHNle2lmKChjW3orMTI+PjJdfDApIT0oY1t6KzE2Pj4yXXwwKSl7Uj16
O2JyZWFrfWlmKChiMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDApIT0tMSl7Uj16O2Jy
ZWFrfWNbQT4+Ml09MDtSPTB9fXdoaWxlKDApO0E9KFJ8MCk9PTA7ej1jW0I+PjJdfDA7ZG97aWYo
KHp8MCk9PTApe1M9MjQ0fWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJdfDApKXtp
ZihBKXticmVha31lbHNle1M9MjQ2O2JyZWFrfX1pZigoYjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0m
MTI3XSh6KXwwKT09LTEpe2NbQj4+Ml09MDtTPTI0NDticmVha31lbHNle2lmKEFeKHp8MCk9PTAp
e2JyZWFrfWVsc2V7Uz0yNDY7YnJlYWt9fX19d2hpbGUoMCk7aWYoKFN8MCk9PTI0NCl7aWYoQSl7
Uz0yNDZ9fWlmKChTfDApPT0yNDYpe2Nbaj4+Ml09Y1tqPj4yXXwyfWNbYj4+Ml09Ujt6PWNbbT4+
Ml18MDtkeih6KXwwO3o9Y1t1Pj4yXXwwO2NbdT4+Ml09MDtpZigoenwwKT09MCl7aT1kO3JldHVy
bn1iWVtjW3Y+PjJdJjUxMV0oeik7aT1kO3JldHVybn19d2hpbGUoMCk7ZD1iTyg0KXwwO2txKGQp
O2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaFIoZSxmLGcsaCxqLGssbCxtLG4sbyxwKXtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDtuPW58MDtvPW98MDtw
PXB8MDt2YXIgcT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAs
YWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFu
PTAsYW89MCxhcD0wLGFxPTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxhdj0wLGF3PTAsYXg9MCxheT0w
LGF6PTAsYUE9MCxhQj0wLGFDPTAsYUQ9MCxhRT0wLGFGPTAsYUc9MCxhSD0wLGFJPTAsYUo9MCxh
Sz0wLGFMPTAsYU09MCxhTj0wLGFPPTAsYVA9MCxhUT0wLGFSPTAsYVM9MCxhVD0wLGFVPTAsYVY9
MCxhVz0wLGFYPTAsYVk9MCxhWj0wLGFfPTAsYSQ9MCxhMD0wLGExPTAsYTI9MCxhMz0wLGE0PTAs
YTU9MCxhNj0wLGE3PTAsYTg9MCxhOT0wLGJhPTAsYmI9MCxiYz0wLGJkPTAsYmU9MCxiZj0wLGJn
PTAsYmg9MCxiaT0wLGJqPTAsYms9MCxibD0wLGJtPTAsYm49MCxibz0wLGJwPTAsYnE9MCxicj0w
LGJzPTAsYnQ9MCxidT0wLGJ2PTAsYnc9MCxieD0wLGJ5PTAsYno9MCxiQT0wLGJCPTAsYkM9MCxi
RD0wLGJFPTA7cT1pO2k9aSs0NDB8MDtyPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4y
XT1jW3I+PjJdO3I9cXwwO3M9cSs0MDB8MDt0PXErNDA4fDA7dT1xKzQxNnwwO3Y9cSs0MjR8MDt3
PXY7eD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3k9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PWk7
aT1pKzEyfDA7aT1pKzc+PjM8PDM7QT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0I9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO0M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0Q9cnwwO2skKHd8MCwwLDEyKTtF
PXg7Rj15O0c9ejtIPUE7ayQoRXwwLDAsMTIpO2skKEZ8MCwwLDEyKTtrJChHfDAsMCwxMik7ayQo
SHwwLDAsMTIpO2hYKGcsaCxzLHQsdSx2LHgseSx6LEIpO2g9bnwwO2Nbbz4+Ml09Y1toPj4yXTtn
PWV8MDtlPWZ8MDtmPW0rOHwwO209eisxfDA7ST16KzR8MDtKPXorOHwwO0s9eSsxfDA7TD15KzR8
MDtNPXkrOHwwO049KGomNTEyfDApIT0wO2o9eCsxfDA7Tz14KzR8MDtQPXgrOHwwO1E9QSsxfDA7
Uj1BKzR8MDtTPUErOHwwO1Q9cyszfDA7VT1uKzR8MDtuPXYrNHwwO1Y9cDtwPTE2NjtXPUQ7WD1E
O0Q9cis0MDB8MDtyPTA7WT0wO0wyODY6d2hpbGUoMSl7Wj1jW2c+PjJdfDA7ZG97aWYoKFp8MCk9
PTApe189MH1lbHNle2lmKChjW1orMTI+PjJdfDApIT0oY1taKzE2Pj4yXXwwKSl7Xz1aO2JyZWFr
fWlmKChiMFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFopfDApPT0tMSl7Y1tnPj4yXT0wO189
MDticmVha31lbHNle189Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7Wj0oX3wwKT09MDskPWNb
ZT4+Ml18MDtkb3tpZigoJHwwKT09MCl7YWE9MjcxfWVsc2V7aWYoKGNbJCsxMj4+Ml18MCkhPShj
WyQrMTY+PjJdfDApKXtpZihaKXthYj0kO2JyZWFrfWVsc2V7YWM9cDthZD1XO2FlPVg7YWY9cjth
YT01MjM7YnJlYWsgTDI4Nn19aWYoKGIwW2NbKGNbJD4+Ml18MCkrMzY+PjJdJjEyN10oJCl8MCk9
PS0xKXtjW2U+PjJdPTA7YWE9MjcxO2JyZWFrfWVsc2V7aWYoWil7YWI9JDticmVha31lbHNle2Fj
PXA7YWQ9VzthZT1YO2FmPXI7YWE9NTIzO2JyZWFrIEwyODZ9fX19d2hpbGUoMCk7aWYoKGFhfDAp
PT0yNzEpe2FhPTA7aWYoWil7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01MjM7YnJlYWt9ZWxzZXth
Yj0wfX1MMzA4OmRve3N3aXRjaChhW3MrWXwwXXwwKXtjYXNlIDE6e2lmKChZfDApPT0zKXthYz1w
O2FkPVc7YWU9WDthZj1yO2FhPTUyMzticmVhayBMMjg2fSQ9Y1tnPj4yXXwwO2FnPWNbJCsxMj4+
Ml18MDtpZigoYWd8MCk9PShjWyQrMTY+PjJdfDApKXthaD0oYjBbY1soY1skPj4yXXwwKSszNj4+
Ml0mMTI3XSgkKXwwKSYyNTV9ZWxzZXthaD1hW2FnXXwwfWlmKGFoPDwyND4+MjQ8PS0xKXthYT0y
OTY7YnJlYWsgTDI4Nn1pZigoYlsoY1tmPj4yXXwwKSsoYWg8PDI0Pj4yNDw8MSk+PjFdJjgxOTIp
PT0wKXthYT0yOTY7YnJlYWsgTDI4Nn1hZz1jW2c+PjJdfDA7JD1hZysxMnwwO2FpPWNbJD4+Ml18
MDtpZigoYWl8MCk9PShjW2FnKzE2Pj4yXXwwKSl7YWo9KGIwW2NbKGNbYWc+PjJdfDApKzQwPj4y
XSYxMjddKGFnKXwwKSYyNTV9ZWxzZXtjWyQ+PjJdPWFpKzE7YWo9YVthaV18MH1kVShBLGFqKTth
YT0yOTc7YnJlYWt9O2Nhc2UgMzp7YWk9YVtGXXwwOyQ9YWkmMjU1O2FnPSgkJjF8MCk9PTA/JD4+
PjE6Y1tMPj4yXXwwOyQ9YVtHXXwwO2FrPSQmMjU1O2FsPShhayYxfDApPT0wP2FrPj4+MTpjW0k+
PjJdfDA7aWYoKGFnfDApPT0oLWFsfDApKXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9Vjti
cmVhayBMMzA4fWFrPShhZ3wwKT09MDthZz1jW2c+PjJdfDA7YXM9Y1thZysxMj4+Ml18MDthdD1j
W2FnKzE2Pj4yXXwwO2F1PShhc3wwKT09KGF0fDApO2lmKCEoYWt8KGFsfDApPT0wKSl7aWYoYXUp
e2FsPShiMFtjWyhjW2FnPj4yXXwwKSszNj4+Ml0mMTI3XShhZyl8MCkmMjU1O2F2PWNbZz4+Ml18
MDthdz1hbDtheD1hW0ZdfDA7YXk9YXY7YXo9Y1thdisxMj4+Ml18MDthQT1jW2F2KzE2Pj4yXXww
fWVsc2V7YXc9YVthc118MDtheD1haTtheT1hZzthej1hczthQT1hdH1hdD1heSsxMnwwO2F2PShh
enwwKT09KGFBfDApO2lmKGF3PDwyND4+MjQ9PShhWyhheCYxKT09MD9LOmNbTT4+Ml18MF18MCkp
e2lmKGF2KXthbD1jWyhjW2F5Pj4yXXwwKSs0MD4+Ml18MDtiMFthbCYxMjddKGF5KXwwfWVsc2V7
Y1thdD4+Ml09YXorMX1hdD1kW0ZdfDA7YW09KChhdCYxfDApPT0wP2F0Pj4+MTpjW0w+PjJdfDAp
Pj4+MD4xP3k6cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1pZihhdil7YUI9
KGIwW2NbKGNbYXk+PjJdfDApKzM2Pj4yXSYxMjddKGF5KXwwKSYyNTV9ZWxzZXthQj1hW2F6XXww
fWlmKGFCPDwyND4+MjQhPShhWyhhW0ddJjEpPT0wP206Y1tKPj4yXXwwXXwwKSl7YWE9MzYzO2Jy
ZWFrIEwyODZ9YXY9Y1tnPj4yXXwwO2F0PWF2KzEyfDA7YWw9Y1thdD4+Ml18MDtpZigoYWx8MCk9
PShjW2F2KzE2Pj4yXXwwKSl7YUM9Y1soY1thdj4+Ml18MCkrNDA+PjJdfDA7YjBbYUMmMTI3XShh
dil8MH1lbHNle2NbYXQ+PjJdPWFsKzF9YVtsXT0xO2FsPWRbR118MDthbT0oKGFsJjF8MCk9PTA/
YWw+Pj4xOmNbST4+Ml18MCk+Pj4wPjE/ejpyO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVh
ayBMMzA4fWlmKGFrKXtpZihhdSl7YWs9KGIwW2NbKGNbYWc+PjJdfDApKzM2Pj4yXSYxMjddKGFn
KXwwKSYyNTU7YUQ9YWs7YUU9YVtHXXwwfWVsc2V7YUQ9YVthc118MDthRT0kfWlmKGFEPDwyND4+
MjQhPShhWyhhRSYxKT09MD9tOmNbSj4+Ml18MF18MCkpe2FtPXI7YW49RDthbz1YO2FwPVc7YXE9
cDthcj1WO2JyZWFrIEwzMDh9JD1jW2c+PjJdfDA7YWs9JCsxMnwwO2FsPWNbYWs+PjJdfDA7aWYo
KGFsfDApPT0oY1skKzE2Pj4yXXwwKSl7YXQ9Y1soY1skPj4yXXwwKSs0MD4+Ml18MDtiMFthdCYx
MjddKCQpfDB9ZWxzZXtjW2FrPj4yXT1hbCsxfWFbbF09MTthbD1kW0ddfDA7YW09KChhbCYxfDAp
PT0wP2FsPj4+MTpjW0k+PjJdfDApPj4+MD4xP3o6cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7
YnJlYWsgTDMwOH1pZihhdSl7YXU9KGIwW2NbKGNbYWc+PjJdfDApKzM2Pj4yXSYxMjddKGFnKXww
KSYyNTU7YUY9YXU7YUc9YVtGXXwwfWVsc2V7YUY9YVthc118MDthRz1haX1pZihhRjw8MjQ+PjI0
IT0oYVsoYUcmMSk9PTA/SzpjW00+PjJdfDBdfDApKXthW2xdPTE7YW09cjthbj1EO2FvPVg7YXA9
VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1haT1jW2c+PjJdfDA7YXM9YWkrMTJ8MDthdT1jW2FzPj4y
XXwwO2lmKChhdXwwKT09KGNbYWkrMTY+PjJdfDApKXthZz1jWyhjW2FpPj4yXXwwKSs0MD4+Ml18
MDtiMFthZyYxMjddKGFpKXwwfWVsc2V7Y1thcz4+Ml09YXUrMX1hdT1kW0ZdfDA7YW09KChhdSYx
fDApPT0wP2F1Pj4+MTpjW0w+PjJdfDApPj4+MD4xP3k6cjthbj1EO2FvPVg7YXA9VzthcT1wO2Fy
PVY7YnJlYWt9O2Nhc2UgMDp7YWE9Mjk3O2JyZWFrfTtjYXNlIDI6e2lmKCEoKHJ8MCkhPTB8WT4+
PjA8Mikpe2lmKChZfDApPT0yKXthSD0oYVtUXXwwKSE9MH1lbHNle2FIPTB9aWYoIShOfGFIKSl7
YW09MDthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH19YXU9YVtFXXwwO2FzPShh
dSYxKT09MD9qOmNbUD4+Ml18MDtMMzgyOmRve2lmKChZfDApPT0wKXthST1hc31lbHNle2lmKChk
W3MrKFktMSl8MF18MCk+PTIpe2FJPWFzO2JyZWFrfWFpPWF1JjI1NTthZz1hcysoKGFpJjF8MCk9
PTA/YWk+Pj4xOmNbTz4+Ml18MCl8MDthaT1hczt3aGlsZSgxKXtpZigoYWl8MCk9PShhZ3wwKSl7
YUo9YWc7YnJlYWt9YWw9YVthaV18MDtpZihhbDw8MjQ+PjI0PD0tMSl7YUo9YWk7YnJlYWt9aWYo
KGJbKGNbZj4+Ml18MCkrKGFsPDwyND4+MjQ8PDEpPj4xXSY4MTkyKT09MCl7YUo9YWk7YnJlYWt9
ZWxzZXthaT1haSsxfDB9fWFpPWFKLWFzfDA7YWc9YVtIXXwwO2FsPWFnJjI1NTthaz0oYWwmMXww
KT09MD9hbD4+PjE6Y1tSPj4yXXwwO2lmKGFpPj4+MD5haz4+PjApe2FJPWFzO2JyZWFrfWFsPShh
ZyYxKT09MD9ROmNbUz4+Ml18MDthZz1hbCtha3wwO2lmKChhSnwwKT09KGFzfDApKXthST1hczti
cmVha30kPWFzO2F0PWFsKyhhay1haSl8MDt3aGlsZSgxKXtpZigoYVthdF18MCkhPShhWyRdfDAp
KXthST1hczticmVhayBMMzgyfWFpPWF0KzF8MDtpZigoYWl8MCk9PShhZ3wwKSl7YUk9YUo7YnJl
YWt9ZWxzZXskPSQrMXwwO2F0PWFpfX19fXdoaWxlKDApO2F0PWF1JjI1NTtMMzk2OmRve2lmKChh
SXwwKT09KGFzKygoYXQmMXwwKT09MD9hdD4+PjE6Y1tPPj4yXXwwKXwwKSl7YUs9YUl9ZWxzZXsk
PWFiO2FnPWFJO3doaWxlKDEpe2FpPWNbZz4+Ml18MDtkb3tpZigoYWl8MCk9PTApe2FMPTB9ZWxz
ZXtpZigoY1thaSsxMj4+Ml18MCkhPShjW2FpKzE2Pj4yXXwwKSl7YUw9YWk7YnJlYWt9aWYoKGIw
W2NbKGNbYWk+PjJdfDApKzM2Pj4yXSYxMjddKGFpKXwwKT09LTEpe2NbZz4+Ml09MDthTD0wO2Jy
ZWFrfWVsc2V7YUw9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7YWk9KGFMfDApPT0wO2Rve2lm
KCgkfDApPT0wKXthYT0zOTJ9ZWxzZXtpZigoY1skKzEyPj4yXXwwKSE9KGNbJCsxNj4+Ml18MCkp
e2lmKGFpKXthTT0kO2JyZWFrfWVsc2V7YUs9YWc7YnJlYWsgTDM5Nn19aWYoKGIwW2NbKGNbJD4+
Ml18MCkrMzY+PjJdJjEyN10oJCl8MCk9PS0xKXtjW2U+PjJdPTA7YWE9MzkyO2JyZWFrfWVsc2V7
aWYoYWkpe2FNPSQ7YnJlYWt9ZWxzZXthSz1hZzticmVhayBMMzk2fX19fXdoaWxlKDApO2lmKChh
YXwwKT09MzkyKXthYT0wO2lmKGFpKXthSz1hZzticmVhayBMMzk2fWVsc2V7YU09MH19YWs9Y1tn
Pj4yXXwwO2FsPWNbYWsrMTI+PjJdfDA7aWYoKGFsfDApPT0oY1thaysxNj4+Ml18MCkpe2FOPShi
MFtjWyhjW2FrPj4yXXwwKSszNj4+Ml0mMTI3XShhayl8MCkmMjU1fWVsc2V7YU49YVthbF18MH1p
ZihhTjw8MjQ+PjI0IT0oYVthZ118MCkpe2FLPWFnO2JyZWFrIEwzOTZ9YWw9Y1tnPj4yXXwwO2Fr
PWFsKzEyfDA7YXY9Y1thaz4+Ml18MDtpZigoYXZ8MCk9PShjW2FsKzE2Pj4yXXwwKSl7YUM9Y1so
Y1thbD4+Ml18MCkrNDA+PjJdfDA7YjBbYUMmMTI3XShhbCl8MH1lbHNle2NbYWs+PjJdPWF2KzF9
YXY9YWcrMXwwO2FrPWFbRV18MDthbD1hayYyNTU7aWYoKGF2fDApPT0oKChhayYxKT09MD9qOmNb
UD4+Ml18MCkrKChhbCYxfDApPT0wP2FsPj4+MTpjW08+PjJdfDApfDApKXthSz1hdjticmVha31l
bHNleyQ9YU07YWc9YXZ9fX19d2hpbGUoMCk7aWYoIU4pe2FtPXI7YW49RDthbz1YO2FwPVc7YXE9
cDthcj1WO2JyZWFrIEwzMDh9YXQ9YVtFXXwwO2FzPWF0JjI1NTtpZigoYUt8MCk9PSgoKGF0JjEp
PT0wP2o6Y1tQPj4yXXwwKSsoKGFzJjF8MCk9PTA/YXM+Pj4xOmNbTz4+Ml18MCl8MCkpe2FtPXI7
YW49RDthbz1YO2FwPVc7YXE9cDthcj1WfWVsc2V7YWE9NDA1O2JyZWFrIEwyODZ9YnJlYWt9O2Nh
c2UgNDp7YXM9MDthdD1EO2F1PVg7YWc9VzskPXA7YXY9VjtMNDMxOndoaWxlKDEpe2FsPWNbZz4+
Ml18MDtkb3tpZigoYWx8MCk9PTApe2FPPTB9ZWxzZXtpZigoY1thbCsxMj4+Ml18MCkhPShjW2Fs
KzE2Pj4yXXwwKSl7YU89YWw7YnJlYWt9aWYoKGIwW2NbKGNbYWw+PjJdfDApKzM2Pj4yXSYxMjdd
KGFsKXwwKT09LTEpe2NbZz4+Ml09MDthTz0wO2JyZWFrfWVsc2V7YU89Y1tnPj4yXXwwO2JyZWFr
fX19d2hpbGUoMCk7YWw9KGFPfDApPT0wO2FrPWNbZT4+Ml18MDtkb3tpZigoYWt8MCk9PTApe2Fh
PTQxOH1lbHNle2lmKChjW2FrKzEyPj4yXXwwKSE9KGNbYWsrMTY+PjJdfDApKXtpZihhbCl7YnJl
YWt9ZWxzZXticmVhayBMNDMxfX1pZigoYjBbY1soY1thaz4+Ml18MCkrMzY+PjJdJjEyN10oYWsp
fDApPT0tMSl7Y1tlPj4yXT0wO2FhPTQxODticmVha31lbHNle2lmKGFsKXticmVha31lbHNle2Jy
ZWFrIEw0MzF9fX19d2hpbGUoMCk7aWYoKGFhfDApPT00MTgpe2FhPTA7aWYoYWwpe2JyZWFrfX1h
az1jW2c+PjJdfDA7YUM9Y1thaysxMj4+Ml18MDtpZigoYUN8MCk9PShjW2FrKzE2Pj4yXXwwKSl7
YVA9KGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXwwKSYyNTV9ZWxzZXthUD1hW2FD
XXwwfWRve2lmKGFQPDwyND4+MjQ+LTEpe2lmKChiWyhjW2Y+PjJdfDApKyhhUDw8MjQ+PjI0PDwx
KT4+MV0mMjA0OCk9PTApe2FhPTQzNzticmVha31hQz1jW28+PjJdfDA7aWYoKGFDfDApPT0oYXZ8
MCkpe2FrPShjW1U+PjJdfDApIT0xNjY7YVE9Y1toPj4yXXwwO2FSPWF2LWFRfDA7YVM9YVI+Pj4w
PDIxNDc0ODM2NDc/YVI8PDE6LTE7YVQ9a0woYWs/YVE6MCxhUyl8MDtpZigoYVR8MCk9PTApe2tY
KCl9ZG97aWYoYWspe2NbaD4+Ml09YVQ7YVU9YVR9ZWxzZXthUT1jW2g+PjJdfDA7Y1toPj4yXT1h
VDtpZigoYVF8MCk9PTApe2FVPWFUO2JyZWFrfWJZW2NbVT4+Ml0mNTExXShhUSk7YVU9Y1toPj4y
XXwwfX13aGlsZSgwKTtjW1U+PjJdPTgyO2FUPWFVK2FSfDA7Y1tvPj4yXT1hVDthVj0oY1toPj4y
XXwwKSthU3wwO2FXPWFUfWVsc2V7YVY9YXY7YVc9YUN9Y1tvPj4yXT1hVysxO2FbYVddPWFQO2FY
PWFzKzF8MDthWT1hdDthWj1hdTthXz1hZzthJD0kO2EwPWFWfWVsc2V7YWE9NDM3fX13aGlsZSgw
KTtpZigoYWF8MCk9PTQzNyl7YWE9MDthbD1kW3ddfDA7aWYoKCgoYWwmMXwwKT09MD9hbD4+PjE6
Y1tuPj4yXXwwKXwwKT09MHwoYXN8MCk9PTApe2JyZWFrfWlmKGFQPDwyND4+MjQhPShhW3VdfDAp
KXticmVha31pZigoYXV8MCk9PShhdHwwKSl7YWw9YXUtYWd8MDthVD1hbD4+PjA8MjE0NzQ4MzY0
Nz9hbDw8MTotMTtpZigoJHwwKT09MTY2KXthMT0wfWVsc2V7YTE9YWd9YWs9a0woYTEsYVQpfDA7
YWk9YWs7aWYoKGFrfDApPT0wKXtrWCgpfWEyPWFpKyhhVD4+PjI8PDIpfDA7YTM9YWkrKGFsPj4y
PDwyKXwwO2E0PWFpO2E1PTgyfWVsc2V7YTI9YXQ7YTM9YXU7YTQ9YWc7YTU9JH1jW2EzPj4yXT1h
czthWD0wO2FZPWEyO2FaPWEzKzR8MDthXz1hNDthJD1hNTthMD1hdn1haT1jW2c+PjJdfDA7YWw9
YWkrMTJ8MDthVD1jW2FsPj4yXXwwO2lmKChhVHwwKT09KGNbYWkrMTY+PjJdfDApKXthaz1jWyhj
W2FpPj4yXXwwKSs0MD4+Ml18MDtiMFthayYxMjddKGFpKXwwO2FzPWFYO2F0PWFZO2F1PWFaO2Fn
PWFfOyQ9YSQ7YXY9YTA7Y29udGludWV9ZWxzZXtjW2FsPj4yXT1hVCsxO2FzPWFYO2F0PWFZO2F1
PWFaO2FnPWFfOyQ9YSQ7YXY9YTA7Y29udGludWV9fWlmKChhZ3wwKT09KGF1fDApfChhc3wwKT09
MCl7YTY9YXQ7YTc9YXU7YTg9YWc7YTk9JH1lbHNle2lmKChhdXwwKT09KGF0fDApKXthVD1hdS1h
Z3wwO2FsPWFUPj4+MDwyMTQ3NDgzNjQ3P2FUPDwxOi0xO2lmKCgkfDApPT0xNjYpe2JhPTB9ZWxz
ZXtiYT1hZ31haT1rTChiYSxhbCl8MDthaz1haTtpZigoYWl8MCk9PTApe2tYKCl9YmI9YWsrKGFs
Pj4+Mjw8Mil8MDtiYz1haysoYVQ+PjI8PDIpfDA7YmQ9YWs7YmU9ODJ9ZWxzZXtiYj1hdDtiYz1h
dTtiZD1hZztiZT0kfWNbYmM+PjJdPWFzO2E2PWJiO2E3PWJjKzR8MDthOD1iZDthOT1iZX1pZigo
Y1tCPj4yXXwwKT4wKXthaz1jW2c+PjJdfDA7ZG97aWYoKGFrfDApPT0wKXtiZj0wfWVsc2V7aWYo
KGNbYWsrMTI+PjJdfDApIT0oY1thaysxNj4+Ml18MCkpe2JmPWFrO2JyZWFrfWlmKChiMFtjWyhj
W2FrPj4yXXwwKSszNj4+Ml0mMTI3XShhayl8MCk9PS0xKXtjW2c+PjJdPTA7YmY9MDticmVha31l
bHNle2JmPWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO2FrPShiZnwwKT09MDthcz1jW2U+PjJd
fDA7ZG97aWYoKGFzfDApPT0wKXthYT00NzB9ZWxzZXtpZigoY1thcysxMj4+Ml18MCkhPShjW2Fz
KzE2Pj4yXXwwKSl7aWYoYWspe2JnPWFzO2JyZWFrfWVsc2V7YWE9NDc3O2JyZWFrIEwyODZ9fWlm
KChiMFtjWyhjW2FzPj4yXXwwKSszNj4+Ml0mMTI3XShhcyl8MCk9PS0xKXtjW2U+PjJdPTA7YWE9
NDcwO2JyZWFrfWVsc2V7aWYoYWspe2JnPWFzO2JyZWFrfWVsc2V7YWE9NDc3O2JyZWFrIEwyODZ9
fX19d2hpbGUoMCk7aWYoKGFhfDApPT00NzApe2FhPTA7aWYoYWspe2FhPTQ3NzticmVhayBMMjg2
fWVsc2V7Ymc9MH19YXM9Y1tnPj4yXXwwOyQ9Y1thcysxMj4+Ml18MDtpZigoJHwwKT09KGNbYXMr
MTY+PjJdfDApKXtiaD0oYjBbY1soY1thcz4+Ml18MCkrMzY+PjJdJjEyN10oYXMpfDApJjI1NX1l
bHNle2JoPWFbJF18MH1pZihiaDw8MjQ+PjI0IT0oYVt0XXwwKSl7YWE9NDc3O2JyZWFrIEwyODZ9
JD1jW2c+PjJdfDA7YXM9JCsxMnwwO2FnPWNbYXM+PjJdfDA7aWYoKGFnfDApPT0oY1skKzE2Pj4y
XXwwKSl7YXU9Y1soY1skPj4yXXwwKSs0MD4+Ml18MDtiMFthdSYxMjddKCQpfDA7Ymk9YXY7Ymo9
Ymd9ZWxzZXtjW2FzPj4yXT1hZysxO2JpPWF2O2JqPWJnfXdoaWxlKDEpe2FnPWNbZz4+Ml18MDtk
b3tpZigoYWd8MCk9PTApe2JrPTB9ZWxzZXtpZigoY1thZysxMj4+Ml18MCkhPShjW2FnKzE2Pj4y
XXwwKSl7Yms9YWc7YnJlYWt9aWYoKGIwW2NbKGNbYWc+PjJdfDApKzM2Pj4yXSYxMjddKGFnKXww
KT09LTEpe2NbZz4+Ml09MDtiaz0wO2JyZWFrfWVsc2V7Yms9Y1tnPj4yXXwwO2JyZWFrfX19d2hp
bGUoMCk7YWc9KGJrfDApPT0wO2Rve2lmKChianwwKT09MCl7YWE9NDkzfWVsc2V7aWYoKGNbYmor
MTI+PjJdfDApIT0oY1tiaisxNj4+Ml18MCkpe2lmKGFnKXtibD1iajticmVha31lbHNle2FhPTUw
MTticmVhayBMMjg2fX1pZigoYjBbY1soY1tiaj4+Ml18MCkrMzY+PjJdJjEyN10oYmopfDApPT0t
MSl7Y1tlPj4yXT0wO2FhPTQ5MzticmVha31lbHNle2lmKGFnKXtibD1iajticmVha31lbHNle2Fh
PTUwMTticmVhayBMMjg2fX19fXdoaWxlKDApO2lmKChhYXwwKT09NDkzKXthYT0wO2lmKGFnKXth
YT01MDE7YnJlYWsgTDI4Nn1lbHNle2JsPTB9fWFzPWNbZz4+Ml18MDskPWNbYXMrMTI+PjJdfDA7
aWYoKCR8MCk9PShjW2FzKzE2Pj4yXXwwKSl7Ym09KGIwW2NbKGNbYXM+PjJdfDApKzM2Pj4yXSYx
MjddKGFzKXwwKSYyNTV9ZWxzZXtibT1hWyRdfDB9aWYoYm08PDI0Pj4yNDw9LTEpe2FhPTUwMTti
cmVhayBMMjg2fWlmKChiWyhjW2Y+PjJdfDApKyhibTw8MjQ+PjI0PDwxKT4+MV0mMjA0OCk9PTAp
e2FhPTUwMTticmVhayBMMjg2fSQ9Y1tvPj4yXXwwO2lmKCgkfDApPT0oYml8MCkpe2FzPShjW1U+
PjJdfDApIT0xNjY7YXU9Y1toPj4yXXwwO2F0PWJpLWF1fDA7YVQ9YXQ+Pj4wPDIxNDc0ODM2NDc/
YXQ8PDE6LTE7YWw9a0woYXM/YXU6MCxhVCl8MDtpZigoYWx8MCk9PTApe2tYKCl9ZG97aWYoYXMp
e2NbaD4+Ml09YWw7Ym49YWx9ZWxzZXthdT1jW2g+PjJdfDA7Y1toPj4yXT1hbDtpZigoYXV8MCk9
PTApe2JuPWFsO2JyZWFrfWJZW2NbVT4+Ml0mNTExXShhdSk7Ym49Y1toPj4yXXwwfX13aGlsZSgw
KTtjW1U+PjJdPTgyO2FsPWJuK2F0fDA7Y1tvPj4yXT1hbDtibz0oY1toPj4yXXwwKSthVHwwO2Jw
PWFsfWVsc2V7Ym89Ymk7YnA9JH1hbD1jW2c+PjJdfDA7YXM9Y1thbCsxMj4+Ml18MDtpZigoYXN8
MCk9PShjW2FsKzE2Pj4yXXwwKSl7YWc9KGIwW2NbKGNbYWw+PjJdfDApKzM2Pj4yXSYxMjddKGFs
KXwwKSYyNTU7YnE9YWc7YnI9Y1tvPj4yXXwwfWVsc2V7YnE9YVthc118MDticj1icH1jW28+PjJd
PWJyKzE7YVticl09YnE7YXM9KGNbQj4+Ml18MCktMXwwO2NbQj4+Ml09YXM7YWc9Y1tnPj4yXXww
O2FsPWFnKzEyfDA7YXU9Y1thbD4+Ml18MDtpZigoYXV8MCk9PShjW2FnKzE2Pj4yXXwwKSl7YWk9
Y1soY1thZz4+Ml18MCkrNDA+PjJdfDA7YjBbYWkmMTI3XShhZyl8MH1lbHNle2NbYWw+PjJdPWF1
KzF9aWYoKGFzfDApPjApe2JpPWJvO2JqPWJsfWVsc2V7YnM9Ym87YnJlYWt9fX1lbHNle2JzPWF2
fWlmKChjW28+PjJdfDApPT0oY1toPj4yXXwwKSl7YWE9NTIxO2JyZWFrIEwyODZ9ZWxzZXthbT1y
O2FuPWE2O2FvPWE3O2FwPWE4O2FxPWE5O2FyPWJzfWJyZWFrfTtkZWZhdWx0OnthbT1yO2FuPUQ7
YW89WDthcD1XO2FxPXA7YXI9Vn19fXdoaWxlKDApO0w1ODU6ZG97aWYoKGFhfDApPT0yOTcpe2Fh
PTA7aWYoKFl8MCk9PTMpe2FjPXA7YWQ9VzthZT1YO2FmPXI7YWE9NTIzO2JyZWFrIEwyODZ9ZWxz
ZXtidD1hYn13aGlsZSgxKXtaPWNbZz4+Ml18MDtkb3tpZigoWnwwKT09MCl7YnU9MH1lbHNle2lm
KChjW1orMTI+PjJdfDApIT0oY1taKzE2Pj4yXXwwKSl7YnU9WjticmVha31pZigoYjBbY1soY1ta
Pj4yXXwwKSszNj4+Ml0mMTI3XShaKXwwKT09LTEpe2NbZz4+Ml09MDtidT0wO2JyZWFrfWVsc2V7
YnU9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7Wj0oYnV8MCk9PTA7ZG97aWYoKGJ0fDApPT0w
KXthYT0zMTB9ZWxzZXtpZigoY1tidCsxMj4+Ml18MCkhPShjW2J0KzE2Pj4yXXwwKSl7aWYoWil7
YnY9YnQ7YnJlYWt9ZWxzZXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1
fX1pZigoYjBbY1soY1tidD4+Ml18MCkrMzY+PjJdJjEyN10oYnQpfDApPT0tMSl7Y1tlPj4yXT0w
O2FhPTMxMDticmVha31lbHNle2lmKFope2J2PWJ0O2JyZWFrfWVsc2V7YW09cjthbj1EO2FvPVg7
YXA9VzthcT1wO2FyPVY7YnJlYWsgTDU4NX19fX13aGlsZSgwKTtpZigoYWF8MCk9PTMxMCl7YWE9
MDtpZihaKXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1fWVsc2V7YnY9
MH19JD1jW2c+PjJdfDA7YVQ9Y1skKzEyPj4yXXwwO2lmKChhVHwwKT09KGNbJCsxNj4+Ml18MCkp
e2J3PShiMFtjWyhjWyQ+PjJdfDApKzM2Pj4yXSYxMjddKCQpfDApJjI1NX1lbHNle2J3PWFbYVRd
fDB9aWYoYnc8PDI0Pj4yNDw9LTEpe2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFr
IEw1ODV9aWYoKGJbKGNbZj4+Ml18MCkrKGJ3PDwyND4+MjQ8PDEpPj4xXSY4MTkyKT09MCl7YW09
cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDU4NX1hVD1jW2c+PjJdfDA7JD1hVCsx
MnwwO2F0PWNbJD4+Ml18MDtpZigoYXR8MCk9PShjW2FUKzE2Pj4yXXwwKSl7Yng9KGIwW2NbKGNb
YVQ+PjJdfDApKzQwPj4yXSYxMjddKGFUKXwwKSYyNTV9ZWxzZXtjWyQ+PjJdPWF0KzE7Yng9YVth
dF18MH1kVShBLGJ4KTtidD1idn19fXdoaWxlKDApO2F2PVkrMXwwO2lmKGF2Pj4+MDw0KXtWPWFy
O3A9YXE7Vz1hcDtYPWFvO0Q9YW47cj1hbTtZPWF2fWVsc2V7YWM9YXE7YWQ9YXA7YWU9YW87YWY9
YW07YWE9NTIzO2JyZWFrfX1MNjIyOmRve2lmKChhYXwwKT09Mjk2KXtjW2s+PjJdPWNbaz4+Ml18
NDtieT0wO2J6PVc7YkE9cH1lbHNlIGlmKChhYXwwKT09MzYzKXtjW2s+PjJdPWNbaz4+Ml18NDti
eT0wO2J6PVc7YkE9cH1lbHNlIGlmKChhYXwwKT09NDA1KXtjW2s+PjJdPWNbaz4+Ml18NDtieT0w
O2J6PVc7YkE9cH1lbHNlIGlmKChhYXwwKT09NDc3KXtjW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6
PWE4O2JBPWE5fWVsc2UgaWYoKGFhfDApPT01MDEpe2Nbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9
YTg7YkE9YTl9ZWxzZSBpZigoYWF8MCk9PTUyMSl7Y1trPj4yXT1jW2s+PjJdfDQ7Ynk9MDtiej1h
ODtiQT1hOX1lbHNlIGlmKChhYXwwKT09NTIzKXtMNjMwOmRve2lmKChhZnwwKSE9MCl7YW09YWY7
YW89YWYrMXwwO2FwPWFmKzh8MDthcT1hZis0fDA7WT0xO0w2MzI6d2hpbGUoMSl7cj1kW2FtXXww
O2lmKChyJjF8MCk9PTApe2JCPXI+Pj4xfWVsc2V7YkI9Y1thcT4+Ml18MH1pZihZPj4+MD49YkI+
Pj4wKXticmVhayBMNjMwfXI9Y1tnPj4yXXwwO2Rve2lmKChyfDApPT0wKXtiQz0wfWVsc2V7aWYo
KGNbcisxMj4+Ml18MCkhPShjW3IrMTY+PjJdfDApKXtiQz1yO2JyZWFrfWlmKChiMFtjWyhjW3I+
PjJdfDApKzM2Pj4yXSYxMjddKHIpfDApPT0tMSl7Y1tnPj4yXT0wO2JDPTA7YnJlYWt9ZWxzZXti
Qz1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtyPShiQ3wwKT09MDtaPWNbZT4+Ml18MDtkb3tp
ZigoWnwwKT09MCl7YWE9NTQxfWVsc2V7aWYoKGNbWisxMj4+Ml18MCkhPShjW1orMTY+PjJdfDAp
KXtpZihyKXticmVha31lbHNle2JyZWFrIEw2MzJ9fWlmKChiMFtjWyhjW1o+PjJdfDApKzM2Pj4y
XSYxMjddKFopfDApPT0tMSl7Y1tlPj4yXT0wO2FhPTU0MTticmVha31lbHNle2lmKHIpe2JyZWFr
fWVsc2V7YnJlYWsgTDYzMn19fX13aGlsZSgwKTtpZigoYWF8MCk9PTU0MSl7YWE9MDtpZihyKXti
cmVha319Wj1jW2c+PjJdfDA7YW49Y1taKzEyPj4yXXwwO2lmKChhbnwwKT09KGNbWisxNj4+Ml18
MCkpe2JEPShiMFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFopfDApJjI1NX1lbHNle2JEPWFb
YW5dfDB9aWYoKGFbYW1dJjEpPT0wKXtiRT1hb31lbHNle2JFPWNbYXA+PjJdfDB9aWYoYkQ8PDI0
Pj4yNCE9KGFbYkUrWXwwXXwwKSl7YnJlYWt9YW49WSsxfDA7Wj1jW2c+PjJdfDA7RD1aKzEyfDA7
WD1jW0Q+PjJdfDA7aWYoKFh8MCk9PShjW1orMTY+PjJdfDApKXthcj1jWyhjW1o+PjJdfDApKzQw
Pj4yXXwwO2IwW2FyJjEyN10oWil8MDtZPWFuO2NvbnRpbnVlfWVsc2V7Y1tEPj4yXT1YKzE7WT1h
bjtjb250aW51ZX19Y1trPj4yXT1jW2s+PjJdfDQ7Ynk9MDtiej1hZDtiQT1hYzticmVhayBMNjIy
fX13aGlsZSgwKTtpZigoYWR8MCk9PShhZXwwKSl7Ynk9MTtiej1hZTtiQT1hYzticmVha31jW0M+
PjJdPTA7ZnQodixhZCxhZSxDKTtpZigoY1tDPj4yXXwwKT09MCl7Ynk9MTtiej1hZDtiQT1hYzti
cmVha31jW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PWFkO2JBPWFjfX13aGlsZSgwKTtkUChBKTtk
UCh6KTtkUCh5KTtkUCh4KTtkUCh2KTtpZigoYnp8MCk9PTApe2k9cTtyZXR1cm4gYnl8MH1iWVti
QSY1MTFdKGJ6KTtpPXE7cmV0dXJuIGJ5fDB9ZnVuY3Rpb24gaFMoYixkLGUpe2I9YnwwO2Q9ZHww
O2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtmPWI7Zz1kO2g9
YVtmXXwwO2k9aCYyNTU7aWYoKGkmMXwwKT09MCl7aj1pPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9
aWYoKGgmMSk9PTApe2s9MTA7bD1ofWVsc2V7aD1jW2I+PjJdfDA7az0oaCYtMiktMXwwO2w9aCYy
NTV9aD1lLWd8MDtpZigoZXwwKT09KGR8MCkpe3JldHVybiBifDB9aWYoKGstanwwKT4+PjA8aD4+
PjApe2QxKGIsayxqK2gta3wwLGosaiwwLDApO209YVtmXXwwfWVsc2V7bT1sfWlmKChtJjEpPT0w
KXtuPWIrMXwwfWVsc2V7bj1jW2IrOD4+Ml18MH1tPWUrKGotZyl8MDtnPWQ7ZD1uK2p8MDt3aGls
ZSgxKXthW2RdPWFbZ118MDtsPWcrMXwwO2lmKChsfDApPT0oZXwwKSl7YnJlYWt9ZWxzZXtnPWw7
ZD1kKzF8MH19YVtuK218MF09MDttPWoraHwwO2lmKChhW2ZdJjEpPT0wKXthW2ZdPW08PDEmMjU1
O3JldHVybiBifDB9ZWxzZXtjW2IrND4+Ml09bTtyZXR1cm4gYnwwfXJldHVybiAwfWZ1bmN0aW9u
IGhUKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGhVKGEpe2E9YXwwO2Rl
KGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhWKGEpe2E9YXwwO3ZhciBiPTA7Yj1iTyg4KXwwO2RFKGIs
YSk7YmwoYnwwLDgxOTIsMjIpfWZ1bmN0aW9uIGhXKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0w
LEQ9MCxFPTA7ZD1pO2k9aSsxNjB8MDtsPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1k
fDA7bT1kKzE2fDA7bj1kKzEyMHwwO289ZCsxMjh8MDtwPWQrMTM2fDA7cT1kKzE0NHwwO3I9ZCsx
NTJ8MDtzPW58MDtjW3M+PjJdPW07dD1uKzR8MDtjW3Q+PjJdPTE2Njt1PW0rMTAwfDA7ZWoocCxo
KTttPXB8MDt2PWNbbT4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1ts
KzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO3c9
Y1t2Kzg+PjJdfDA7ZG97aWYoKGNbdisxMj4+Ml18MCktdz4+Mj4+PjA+bD4+PjApe3g9Y1t3Kyhs
PDwyKT4+Ml18MDtpZigoeHwwKT09MCl7YnJlYWt9eT14O2FbcV09MDt6PWZ8MDtBPWNbej4+Ml18
MDtjW3I+PjJdPUE7aWYoaFIoZSxyLGcscCxjW2grND4+Ml18MCxqLHEseSxuLG8sdSl8MCl7Qj1r
O2lmKChhW0JdJjEpPT0wKXthW2srMXwwXT0wO2FbQl09MH1lbHNle2FbY1trKzg+PjJdfDBdPTA7
Y1trKzQ+PjJdPTB9Qj14O2lmKChhW3FdJjEpIT0wKXtkVShrLGJfW2NbKGNbQj4+Ml18MCkrMjg+
PjJdJjMxXSh5LDQ1KXwwKX14PWJfW2NbKGNbQj4+Ml18MCkrMjg+PjJdJjMxXSh5LDQ4KXwwO3k9
Y1tvPj4yXXwwO0I9eS0xfDA7Qz1jW3M+PjJdfDA7d2hpbGUoMSl7aWYoQz4+PjA+PUI+Pj4wKXti
cmVha31pZigoYVtDXXwwKT09eDw8MjQ+PjI0KXtDPUMrMXwwfWVsc2V7YnJlYWt9fWhTKGssQyx5
KXwwfXg9ZXwwO0I9Y1t4Pj4yXXwwO2Rve2lmKChCfDApPT0wKXtEPTB9ZWxzZXtpZigoY1tCKzEy
Pj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe0Q9QjticmVha31pZigoYjBbY1soY1tCPj4yXXwwKSsz
Nj4+Ml0mMTI3XShCKXwwKSE9LTEpe0Q9QjticmVha31jW3g+PjJdPTA7RD0wfX13aGlsZSgwKTt4
PShEfDApPT0wO2Rve2lmKChBfDApPT0wKXtFPTYyMX1lbHNle2lmKChjW0ErMTI+PjJdfDApIT0o
Y1tBKzE2Pj4yXXwwKSl7aWYoeCl7YnJlYWt9ZWxzZXtFPTYyMzticmVha319aWYoKGIwW2NbKGNb
QT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MCk9PS0xKXtjW3o+PjJdPTA7RT02MjE7YnJlYWt9ZWxz
ZXtpZih4XihBfDApPT0wKXticmVha31lbHNle0U9NjIzO2JyZWFrfX19fXdoaWxlKDApO2lmKChF
fDApPT02MjEpe2lmKHgpe0U9NjIzfX1pZigoRXwwKT09NjIzKXtjW2o+PjJdPWNbaj4+Ml18Mn1j
W2I+PjJdPUQ7QT1jW20+PjJdfDA7ZHooQSl8MDtBPWNbcz4+Ml18MDtjW3M+PjJdPTA7aWYoKEF8
MCk9PTApe2k9ZDtyZXR1cm59YllbY1t0Pj4yXSY1MTFdKEEpO2k9ZDtyZXR1cm59fXdoaWxlKDAp
O2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGhYKGIsZCxlLGYsZyxo
LGosayxsLG0pe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3ww
O2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAs
eD0wLHk9MCx6PTAsQT0wLEI9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxN
PTAsTj0wLE89MDtuPWk7aT1pKzU2fDA7bz1ufDA7cD1uKzE2fDA7cT1uKzMyfDA7cj1uKzQwfDA7
cz1yO3Q9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt1PXQ7dj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwz
O3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eT14O3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O0E9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztCPUE7RD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0U9
RDtGPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Rz1GO0g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztJ
PUg7aWYoYil7Yj1jW2Q+PjJdfDA7aWYoKGNbNDA0NF18MCkhPS0xKXtjW3A+PjJdPTE2MTc2O2Nb
cCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNjE3NixwLDk2KX1wPShjWzQwNDVdfDApLTF8MDtK
PWNbYis4Pj4yXXwwO2lmKChjW2IrMTI+PjJdfDApLUo+PjI+Pj4wPD1wPj4+MCl7Sz1iTyg0KXww
O0w9SztrcShMKTtibChLfDAsODE3NiwxMzQpfWI9Y1tKKyhwPDwyKT4+Ml18MDtpZigoYnwwKT09
MCl7Sz1iTyg0KXwwO0w9SztrcShMKTtibChLfDAsODE3NiwxMzQpfUs9YjtiWltjWyhjW2I+PjJd
fDApKzQ0Pj4yXSYxMjddKHEsSyk7TD1lO0M9Y1txPj4yXXwwO2FbTF09QyYyNTU7Qz1DPj44O2Fb
TCsxfDBdPUMmMjU1O0M9Qz4+ODthW0wrMnwwXT1DJjI1NTtDPUM+Pjg7YVtMKzN8MF09QyYyNTU7
TD1iO2JaW2NbKGNbTD4+Ml18MCkrMzI+PjJdJjEyN10ocixLKTtxPWw7aWYoKGFbcV0mMSk9PTAp
e2FbbCsxfDBdPTA7YVtxXT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChs
LDApO2NbcT4+Ml09Y1tzPj4yXTtjW3ErND4+Ml09Y1tzKzQ+PjJdO2NbcSs4Pj4yXT1jW3MrOD4+
Ml07ayQoc3wwLDAsMTIpO2RQKHIpO2JaW2NbKGNbTD4+Ml18MCkrMjg+PjJdJjEyN10odCxLKTty
PWs7aWYoKGFbcl0mMSk9PTApe2FbaysxfDBdPTA7YVtyXT0wfWVsc2V7YVtjW2srOD4+Ml18MF09
MDtjW2srND4+Ml09MH1kJChrLDApO2Nbcj4+Ml09Y1t1Pj4yXTtjW3IrND4+Ml09Y1t1KzQ+PjJd
O2Nbcis4Pj4yXT1jW3UrOD4+Ml07ayQodXwwLDAsMTIpO2RQKHQpO3Q9YjthW2ZdPWIwW2NbKGNb
dD4+Ml18MCkrMTI+PjJdJjEyN10oSyl8MDthW2ddPWIwW2NbKGNbdD4+Ml18MCkrMTY+PjJdJjEy
N10oSyl8MDtiWltjWyhjW0w+PjJdfDApKzIwPj4yXSYxMjddKHYsSyk7dD1oO2lmKChhW3RdJjEp
PT0wKXthW2grMXwwXT0wO2FbdF09MH1lbHNle2FbY1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9
ZCQoaCwwKTtjW3Q+PjJdPWNbdz4+Ml07Y1t0KzQ+PjJdPWNbdys0Pj4yXTtjW3QrOD4+Ml09Y1t3
Kzg+PjJdO2skKHd8MCwwLDEyKTtkUCh2KTtiWltjWyhjW0w+PjJdfDApKzI0Pj4yXSYxMjddKHgs
Syk7TD1qO2lmKChhW0xdJjEpPT0wKXthW2orMXwwXT0wO2FbTF09MH1lbHNle2FbY1tqKzg+PjJd
fDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW0w+PjJdPWNbeT4+Ml07Y1tMKzQ+PjJdPWNbeSs0
Pj4yXTtjW0wrOD4+Ml09Y1t5Kzg+PjJdO2skKHl8MCwwLDEyKTtkUCh4KTtNPWIwW2NbKGNbYj4+
Ml18MCkrMzY+PjJdJjEyN10oSyl8MDtjW20+PjJdPU07aT1uO3JldHVybn1lbHNle0s9Y1tkPj4y
XXwwO2lmKChjWzQwNDZdfDApIT0tMSl7Y1tvPj4yXT0xNjE4NDtjW28rND4+Ml09MTI7Y1tvKzg+
PjJdPTA7ZFcoMTYxODQsbyw5Nil9bz0oY1s0MDQ3XXwwKS0xfDA7ZD1jW0srOD4+Ml18MDtpZigo
Y1tLKzEyPj4yXXwwKS1kPj4yPj4+MDw9bz4+PjApe049Yk8oNCl8MDtPPU47a3EoTyk7YmwoTnww
LDgxNzYsMTM0KX1LPWNbZCsobzw8Mik+PjJdfDA7aWYoKEt8MCk9PTApe049Yk8oNCl8MDtPPU47
a3EoTyk7YmwoTnwwLDgxNzYsMTM0KX1OPUs7YlpbY1soY1tLPj4yXXwwKSs0ND4+Ml0mMTI3XSh6
LE4pO089ZTtDPWNbej4+Ml18MDthW09dPUMmMjU1O0M9Qz4+ODthW08rMXwwXT1DJjI1NTtDPUM+
Pjg7YVtPKzJ8MF09QyYyNTU7Qz1DPj44O2FbTyszfDBdPUMmMjU1O089SztiWltjWyhjW08+PjJd
fDApKzMyPj4yXSYxMjddKEEsTik7ej1sO2lmKChhW3pdJjEpPT0wKXthW2wrMXwwXT0wO2Fbel09
MH1lbHNle2FbY1tsKzg+PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9ZCQobCwwKTtjW3o+PjJdPWNbQj4+
Ml07Y1t6KzQ+PjJdPWNbQis0Pj4yXTtjW3orOD4+Ml09Y1tCKzg+PjJdO2skKEJ8MCwwLDEyKTtk
UChBKTtiWltjWyhjW08+PjJdfDApKzI4Pj4yXSYxMjddKEQsTik7QT1rO2lmKChhW0FdJjEpPT0w
KXthW2srMXwwXT0wO2FbQV09MH1lbHNle2FbY1trKzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9ZCQo
aywwKTtjW0E+PjJdPWNbRT4+Ml07Y1tBKzQ+PjJdPWNbRSs0Pj4yXTtjW0ErOD4+Ml09Y1tFKzg+
PjJdO2skKEV8MCwwLDEyKTtkUChEKTtEPUs7YVtmXT1iMFtjWyhjW0Q+PjJdfDApKzEyPj4yXSYx
MjddKE4pfDA7YVtnXT1iMFtjWyhjW0Q+PjJdfDApKzE2Pj4yXSYxMjddKE4pfDA7YlpbY1soY1tP
Pj4yXXwwKSsyMD4+Ml0mMTI3XShGLE4pO0Q9aDtpZigoYVtEXSYxKT09MCl7YVtoKzF8MF09MDth
W0RdPTB9ZWxzZXthW2NbaCs4Pj4yXXwwXT0wO2NbaCs0Pj4yXT0wfWQkKGgsMCk7Y1tEPj4yXT1j
W0c+PjJdO2NbRCs0Pj4yXT1jW0crND4+Ml07Y1tEKzg+PjJdPWNbRys4Pj4yXTtrJChHfDAsMCwx
Mik7ZFAoRik7YlpbY1soY1tPPj4yXXwwKSsyND4+Ml0mMTI3XShILE4pO089ajtpZigoYVtPXSYx
KT09MCl7YVtqKzF8MF09MDthW09dPTB9ZWxzZXthW2Nbais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0w
fWQkKGosMCk7Y1tPPj4yXT1jW0k+PjJdO2NbTys0Pj4yXT1jW0krND4+Ml07Y1tPKzg+PjJdPWNb
SSs4Pj4yXTtrJChJfDAsMCwxMik7ZFAoSCk7TT1iMFtjWyhjW0s+PjJdfDApKzM2Pj4yXSYxMjdd
KE4pfDA7Y1ttPj4yXT1NO2k9bjtyZXR1cm59fWZ1bmN0aW9uIGhZKGIsZCxlLGYsZyxoLGosayl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0w
LFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wO2Q9aTtpPWkrNjAwfDA7bD1lO2U9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tm
Pj4yXT1jW2w+PjJdO2w9ZHwwO209ZCsxNnwwO249ZCs0MTZ8MDtvPWQrNDI0fDA7cD1kKzQzMnww
O3E9ZCs0NDB8MDtyPWQrNDQ4fDA7cz1kKzQ1NnwwO3Q9ZCs0OTZ8MDt1PW58MDtjW3U+PjJdPW07
dj1uKzR8MDtjW3Y+PjJdPTE2Njt3PW0rNDAwfDA7ZWoocCxoKTttPXB8MDt4PWNbbT4+Ml18MDtp
ZigoY1szOTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0w
O2RXKDE1Njg4LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO3k9Y1t4Kzg+PjJdfDA7ZG97aWYoKGNb
eCsxMj4+Ml18MCkteT4+Mj4+PjA+bD4+PjApe3o9Y1t5KyhsPDwyKT4+Ml18MDtpZigoenwwKT09
MCl7YnJlYWt9QT16O2FbcV09MDtCPWZ8MDtjW3I+PjJdPWNbQj4+Ml07ZG97aWYoaFooZSxyLGcs
cCxjW2grND4+Ml18MCxqLHEsQSxuLG8sdyl8MCl7Qz1zfDA7RD1jWyhjW3o+PjJdfDApKzQ4Pj4y
XXwwO2NhW0QmMTVdKEEsMjA5NiwyMTA2LEMpfDA7RD10fDA7RT1jW28+PjJdfDA7Rj1jW3U+PjJd
fDA7Rz1FLUZ8MDtkb3tpZigoR3wwKT4zOTIpe0g9a0ooKEc+PjIpKzJ8MCl8MDtpZigoSHwwKSE9
MCl7ST1IO0o9SDticmVha31rWCgpO0k9MDtKPTB9ZWxzZXtJPUQ7Sj0wfX13aGlsZSgwKTtpZigo
YVtxXSYxKT09MCl7Sz1JfWVsc2V7YVtJXT00NTtLPUkrMXwwfWlmKEY+Pj4wPEU+Pj4wKXtHPXMr
NDB8MDtIPXM7TD1LO009Rjt3aGlsZSgxKXtOPUM7d2hpbGUoMSl7aWYoKE58MCk9PShHfDApKXtP
PUc7YnJlYWt9aWYoKGNbTj4+Ml18MCk9PShjW00+PjJdfDApKXtPPU47YnJlYWt9ZWxzZXtOPU4r
NHwwfX1hW0xdPWFbMjA5NisoTy1IPj4yKXwwXXwwO049TSs0fDA7UD1MKzF8MDtpZihOPj4+MDwo
Y1tvPj4yXXwwKT4+PjApe0w9UDtNPU59ZWxzZXtRPVA7YnJlYWt9fX1lbHNle1E9S31hW1FdPTA7
TT1iRChEfDAsMTQwOCwoTD1pLGk9aSs4fDAsY1tMPj4yXT1rLEwpfDApfDA7aT1MO2lmKChNfDAp
PT0xKXtpZigoSnwwKT09MCl7YnJlYWt9a0soSik7YnJlYWt9TT1iTyg4KXwwO2RFKE0sMTM2OCk7
YmwoTXwwLDgxOTIsMjIpfX13aGlsZSgwKTtBPWV8MDt6PWNbQT4+Ml18MDtkb3tpZigoenwwKT09
MCl7Uj0wfWVsc2V7TT1jW3orMTI+PjJdfDA7aWYoKE18MCk9PShjW3orMTY+PjJdfDApKXtTPWIw
W2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle1M9Y1tNPj4yXXwwfWlmKChTfDAp
IT0tMSl7Uj16O2JyZWFrfWNbQT4+Ml09MDtSPTB9fXdoaWxlKDApO0E9KFJ8MCk9PTA7ej1jW0I+
PjJdfDA7ZG97aWYoKHp8MCk9PTApe1Q9NzM5fWVsc2V7TT1jW3orMTI+PjJdfDA7aWYoKE18MCk9
PShjW3orMTY+PjJdfDApKXtVPWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNl
e1U9Y1tNPj4yXXwwfWlmKChVfDApPT0tMSl7Y1tCPj4yXT0wO1Q9NzM5O2JyZWFrfWVsc2V7aWYo
QV4oenwwKT09MCl7YnJlYWt9ZWxzZXtUPTc0MTticmVha319fX13aGlsZSgwKTtpZigoVHwwKT09
NzM5KXtpZihBKXtUPTc0MX19aWYoKFR8MCk9PTc0MSl7Y1tqPj4yXT1jW2o+PjJdfDJ9Y1tiPj4y
XT1SO3o9Y1ttPj4yXXwwO2R6KHopfDA7ej1jW3U+PjJdfDA7Y1t1Pj4yXT0wO2lmKCh6fDApPT0w
KXtpPWQ7cmV0dXJufWJZW2Nbdj4+Ml0mNTExXSh6KTtpPWQ7cmV0dXJufX13aGlsZSgwKTtkPWJP
KDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBoWihiLGUsZixnLGgsaixrLGws
bSxuLG8pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209
bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09
MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0w
LCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFr
PTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxhdj0w
LGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0wLGFDPTAsYUQ9MCxhRT0wLGFGPTAsYUc9MCxh
SD0wLGFJPTAsYUo9MCxhSz0wLGFMPTAsYU09MCxhTj0wLGFPPTAsYVA9MCxhUT0wLGFSPTAsYVM9
MCxhVD0wLGFVPTAsYVY9MCxhVz0wLGFYPTAsYVk9MCxhWj0wLGFfPTAsYSQ9MCxhMD0wLGExPTAs
YTI9MCxhMz0wLGE0PTAsYTU9MCxhNj0wLGE3PTAsYTg9MCxhOT0wLGJhPTAsYmI9MCxiYz0wLGJk
PTAsYmU9MCxiZj0wLGJnPTAsYmg9MCxiaT0wLGJqPTAsYms9MCxibD0wLGJtPTAsYm49MCxibz0w
LGJwPTAsYnE9MCxicj0wLGJzPTAsYnQ9MCxidT0wLGJ2PTAsYnc9MCxieD0wLGJ5PTAsYno9MCxi
QT0wLGJCPTAsYkM9MCxiRD0wO3A9aTtpPWkrNDQ4fDA7cT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZT4+Ml09Y1txPj4yXTtxPXB8MDtyPXArOHwwO3M9cCs0MDh8MDt0PXArNDE2fDA7dT1w
KzQyNHwwO3Y9cCs0MzJ8MDt3PXY7eD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3k9aTtpPWkrMTJ8
MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7QT1pO2k9aSsxMnwwO2k9aSs3
Pj4zPDwzO0I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
cT4+Ml09bztvPXJ8MDtrJCh3fDAsMCwxMik7RD14O0U9eTtGPXo7Rz1BO2skKER8MCwwLDEyKTtr
JChFfDAsMCwxMik7ayQoRnwwLDAsMTIpO2skKEd8MCwwLDEyKTtoMihmLGcscyx0LHUsdix4LHks
eixCKTtnPW18MDtjW24+PjJdPWNbZz4+Ml07Zj1ifDA7Yj1lfDA7ZT1sO0g9eis0fDA7ST16Kzh8
MDtKPXkrNHwwO0s9eSs4fDA7TD0oaCY1MTJ8MCkhPTA7aD14KzR8MDtNPXgrOHwwO049QSs0fDA7
Tz1BKzh8MDtQPXMrM3wwO1E9dis0fDA7Uj0xNjY7Uz1vO1Q9bztvPXIrNDAwfDA7cj0wO1U9MDtM
ODkwOndoaWxlKDEpe1Y9Y1tmPj4yXXwwO2Rve2lmKChWfDApPT0wKXtXPTF9ZWxzZXtYPWNbVisx
Mj4+Ml18MDtpZigoWHwwKT09KGNbVisxNj4+Ml18MCkpe1k9YjBbY1soY1tWPj4yXXwwKSszNj4+
Ml0mMTI3XShWKXwwfWVsc2V7WT1jW1g+PjJdfDB9aWYoKFl8MCk9PS0xKXtjW2Y+PjJdPTA7Vz0x
O2JyZWFrfWVsc2V7Vz0oY1tmPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO1Y9Y1tiPj4yXXww
O2Rve2lmKChWfDApPT0wKXtaPTc2N31lbHNle1g9Y1tWKzEyPj4yXXwwO2lmKChYfDApPT0oY1tW
KzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXtfPWNb
WD4+Ml18MH1pZigoX3wwKT09LTEpe2NbYj4+Ml09MDtaPTc2NzticmVha31lbHNle2lmKFdeKFZ8
MCk9PTApeyQ9VjticmVha31lbHNle2FhPVI7YWI9UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrIEw4
OTB9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTc2Nyl7Wj0wO2lmKFcpe2FhPVI7YWI9UzthYz1UO2Fk
PXI7Wj0xMDA3O2JyZWFrfWVsc2V7JD0wfX1MOTE0OmRve3N3aXRjaChhW3MrVXwwXXwwKXtjYXNl
IDI6e2lmKCEoKHJ8MCkhPTB8VT4+PjA8Mikpe2lmKChVfDApPT0yKXthZT0oYVtQXXwwKSE9MH1l
bHNle2FlPTB9aWYoIShMfGFlKSl7YWY9MDthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9
fVY9YVtEXXwwO1g9KFYmMSk9PTA/aDpjW00+PjJdfDA7TDkyMjpkb3tpZigoVXwwKT09MCl7YWs9
WDthbD1WO2FtPSR9ZWxzZXtpZigoZFtzKyhVLTEpfDBdfDApPDIpe2FuPVg7YW89Vn1lbHNle2Fr
PVg7YWw9VjthbT0kO2JyZWFrfXdoaWxlKDEpe2FwPWFvJjI1NTtpZigoYW58MCk9PSgoKGFvJjEp
PT0wP2g6Y1tNPj4yXXwwKSsoKChhcCYxfDApPT0wP2FwPj4+MTpjW2g+PjJdfDApPDwyKXwwKSl7
YXE9YW87YnJlYWt9aWYoIShiMVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2M10obCw4MTkyLGNbYW4+
PjJdfDApfDApKXtaPTg2ODticmVha31hbj1hbis0fDA7YW89YVtEXXwwfWlmKChafDApPT04Njgp
e1o9MDthcT1hW0RdfDB9YXA9KGFxJjEpPT0wO2FyPWFuLShhcD9oOmNbTT4+Ml18MCk+PjI7YXM9
YVtHXXwwO2F0PWFzJjI1NTthdT0oYXQmMXwwKT09MDtMOTMyOmRve2lmKGFyPj4+MDw9KGF1P2F0
Pj4+MTpjW04+PjJdfDApPj4+MCl7YXY9KGFzJjEpPT0wO2F3PShhdj9OOmNbTz4+Ml18MCkrKChh
dT9hdD4+PjE6Y1tOPj4yXXwwKS1hcjw8Mil8MDtheD0oYXY/TjpjW08+PjJdfDApKygoYXU/YXQ+
Pj4xOmNbTj4+Ml18MCk8PDIpfDA7aWYoKGF3fDApPT0oYXh8MCkpe2FrPWFuO2FsPWFxO2FtPSQ7
YnJlYWsgTDkyMn1lbHNle2F5PWF3O2F6PWFwP2g6Y1tNPj4yXXwwfXdoaWxlKDEpe2lmKChjW2F5
Pj4yXXwwKSE9KGNbYXo+PjJdfDApKXticmVhayBMOTMyfWF3PWF5KzR8MDtpZigoYXd8MCk9PShh
eHwwKSl7YWs9YW47YWw9YXE7YW09JDticmVhayBMOTIyfWF5PWF3O2F6PWF6KzR8MH19fXdoaWxl
KDApO2FrPWFwP2g6Y1tNPj4yXXwwO2FsPWFxO2FtPSR9fXdoaWxlKDApO0w5Mzk6d2hpbGUoMSl7
Vj1hbCYyNTU7aWYoKGFrfDApPT0oKChhbCYxKT09MD9oOmNbTT4+Ml18MCkrKCgoViYxfDApPT0w
P1Y+Pj4xOmNbaD4+Ml18MCk8PDIpfDApKXticmVha31WPWNbZj4+Ml18MDtkb3tpZigoVnwwKT09
MCl7YUE9MX1lbHNle1g9Y1tWKzEyPj4yXXwwO2lmKChYfDApPT0oY1tWKzE2Pj4yXXwwKSl7YUI9
YjBbY1soY1tWPj4yXXwwKSszNj4+Ml0mMTI3XShWKXwwfWVsc2V7YUI9Y1tYPj4yXXwwfWlmKChh
QnwwKT09LTEpe2NbZj4+Ml09MDthQT0xO2JyZWFrfWVsc2V7YUE9KGNbZj4+Ml18MCk9PTA7YnJl
YWt9fX13aGlsZSgwKTtkb3tpZigoYW18MCk9PTApe1o9ODg5fWVsc2V7Vj1jW2FtKzEyPj4yXXww
O2lmKChWfDApPT0oY1thbSsxNj4+Ml18MCkpe2FDPWIwW2NbKGNbYW0+PjJdfDApKzM2Pj4yXSYx
MjddKGFtKXwwfWVsc2V7YUM9Y1tWPj4yXXwwfWlmKChhQ3wwKT09LTEpe2NbYj4+Ml09MDtaPTg4
OTticmVha31lbHNle2lmKGFBXihhbXwwKT09MCl7YUQ9YW07YnJlYWt9ZWxzZXticmVhayBMOTM5
fX19fXdoaWxlKDApO2lmKChafDApPT04ODkpe1o9MDtpZihhQSl7YnJlYWt9ZWxzZXthRD0wfX1W
PWNbZj4+Ml18MDthcD1jW1YrMTI+PjJdfDA7aWYoKGFwfDApPT0oY1tWKzE2Pj4yXXwwKSl7YUU9
YjBbY1soY1tWPj4yXXwwKSszNj4+Ml0mMTI3XShWKXwwfWVsc2V7YUU9Y1thcD4+Ml18MH1pZigo
YUV8MCkhPShjW2FrPj4yXXwwKSl7YnJlYWt9YXA9Y1tmPj4yXXwwO1Y9YXArMTJ8MDtYPWNbVj4+
Ml18MDtpZigoWHwwKT09KGNbYXArMTY+PjJdfDApKXthdD1jWyhjW2FwPj4yXXwwKSs0MD4+Ml18
MDtiMFthdCYxMjddKGFwKXwwfWVsc2V7Y1tWPj4yXT1YKzR9YWs9YWsrNHwwO2FsPWFbRF18MDth
bT1hRH1pZighTCl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9WD1hW0RdfDA7
Vj1YJjI1NTtpZigoYWt8MCk9PSgoKFgmMSk9PTA/aDpjW00+PjJdfDApKygoKFYmMXwwKT09MD9W
Pj4+MTpjW2g+PjJdfDApPDwyKXwwKSl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SfWVsc2V7Wj05
MDE7YnJlYWsgTDg5MH1icmVha307Y2FzZSA0OntWPTA7WD1vO2FwPVQ7YXQ9UzthdT1SO0w5NzU6
d2hpbGUoMSl7YXI9Y1tmPj4yXXwwO2Rve2lmKChhcnwwKT09MCl7YUY9MX1lbHNle2FzPWNbYXIr
MTI+PjJdfDA7aWYoKGFzfDApPT0oY1thcisxNj4+Ml18MCkpe2FHPWIwW2NbKGNbYXI+PjJdfDAp
KzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YUc9Y1thcz4+Ml18MH1pZigoYUd8MCk9PS0xKXtjW2Y+
PjJdPTA7YUY9MTticmVha31lbHNle2FGPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7
YXI9Y1tiPj4yXXwwO2Rve2lmKChhcnwwKT09MCl7Wj05MTV9ZWxzZXthcz1jW2FyKzEyPj4yXXww
O2lmKChhc3wwKT09KGNbYXIrMTY+PjJdfDApKXthSD1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0m
MTI3XShhcil8MH1lbHNle2FIPWNbYXM+PjJdfDB9aWYoKGFIfDApPT0tMSl7Y1tiPj4yXT0wO1o9
OTE1O2JyZWFrfWVsc2V7aWYoYUZeKGFyfDApPT0wKXticmVha31lbHNle2JyZWFrIEw5NzV9fX19
d2hpbGUoMCk7aWYoKFp8MCk9PTkxNSl7Wj0wO2lmKGFGKXticmVha319YXI9Y1tmPj4yXXwwO2Fz
PWNbYXIrMTI+PjJdfDA7aWYoKGFzfDApPT0oY1thcisxNj4+Ml18MCkpe2FJPWIwW2NbKGNbYXI+
PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YUk9Y1thcz4+Ml18MH1pZihiMVtjWyhjW2U+
PjJdfDApKzEyPj4yXSY2M10obCwyMDQ4LGFJKXwwKXthcz1jW24+PjJdfDA7aWYoKGFzfDApPT0o
Y1txPj4yXXwwKSl7aDMobSxuLHEpO2FKPWNbbj4+Ml18MH1lbHNle2FKPWFzfWNbbj4+Ml09YUor
NDtjW2FKPj4yXT1hSTthSz1WKzF8MDthTD1YO2FNPWFwO2FOPWF0O2FPPWF1fWVsc2V7YXM9ZFt3
XXwwO2lmKCgoKGFzJjF8MCk9PTA/YXM+Pj4xOmNbUT4+Ml18MCl8MCk9PTB8KFZ8MCk9PTApe2Jy
ZWFrfWlmKChhSXwwKSE9KGNbdT4+Ml18MCkpe2JyZWFrfWlmKChhcHwwKT09KFh8MCkpe2FzPShh
dXwwKSE9MTY2O2FyPWFwLWF0fDA7YXg9YXI+Pj4wPDIxNDc0ODM2NDc/YXI8PDE6LTE7aWYoYXMp
e2FQPWF0fWVsc2V7YVA9MH1hcz1rTChhUCxheCl8MDthdz1hcztpZigoYXN8MCk9PTApe2tYKCl9
YVE9YXcrKGF4Pj4+Mjw8Mil8MDthUj1hdysoYXI+PjI8PDIpfDA7YVM9YXc7YVQ9ODJ9ZWxzZXth
UT1YO2FSPWFwO2FTPWF0O2FUPWF1fWNbYVI+PjJdPVY7YUs9MDthTD1hUTthTT1hUis0fDA7YU49
YVM7YU89YVR9YXc9Y1tmPj4yXXwwO2FyPWF3KzEyfDA7YXg9Y1thcj4+Ml18MDtpZigoYXh8MCk9
PShjW2F3KzE2Pj4yXXwwKSl7YXM9Y1soY1thdz4+Ml18MCkrNDA+PjJdfDA7YjBbYXMmMTI3XShh
dyl8MDtWPWFLO1g9YUw7YXA9YU07YXQ9YU47YXU9YU87Y29udGludWV9ZWxzZXtjW2FyPj4yXT1h
eCs0O1Y9YUs7WD1hTDthcD1hTTthdD1hTjthdT1hTztjb250aW51ZX19aWYoKGF0fDApPT0oYXB8
MCl8KFZ8MCk9PTApe2FVPVg7YVY9YXA7YVc9YXQ7YVg9YXV9ZWxzZXtpZigoYXB8MCk9PShYfDAp
KXtheD0oYXV8MCkhPTE2Njthcj1hcC1hdHwwO2F3PWFyPj4+MDwyMTQ3NDgzNjQ3P2FyPDwxOi0x
O2lmKGF4KXthWT1hdH1lbHNle2FZPTB9YXg9a0woYVksYXcpfDA7YXM9YXg7aWYoKGF4fDApPT0w
KXtrWCgpfWFaPWFzKyhhdz4+PjI8PDIpfDA7YV89YXMrKGFyPj4yPDwyKXwwO2EkPWFzO2EwPTgy
fWVsc2V7YVo9WDthXz1hcDthJD1hdDthMD1hdX1jW2FfPj4yXT1WO2FVPWFaO2FWPWFfKzR8MDth
Vz1hJDthWD1hMH1hcz1jW0I+PjJdfDA7aWYoKGFzfDApPjApe2FyPWNbZj4+Ml18MDtkb3tpZigo
YXJ8MCk9PTApe2ExPTF9ZWxzZXthdz1jW2FyKzEyPj4yXXwwO2lmKChhd3wwKT09KGNbYXIrMTY+
PjJdfDApKXthMj1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2EyPWNb
YXc+PjJdfDB9aWYoKGEyfDApPT0tMSl7Y1tmPj4yXT0wO2ExPTE7YnJlYWt9ZWxzZXthMT0oY1tm
Pj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2FyPWNbYj4+Ml18MDtkb3tpZigoYXJ8MCk9PTAp
e1o9OTY0fWVsc2V7Vj1jW2FyKzEyPj4yXXwwO2lmKChWfDApPT0oY1thcisxNj4+Ml18MCkpe2Ez
PWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YTM9Y1tWPj4yXXwwfWlm
KChhM3wwKT09LTEpe2NbYj4+Ml09MDtaPTk2NDticmVha31lbHNle2lmKGExXihhcnwwKT09MCl7
YTQ9YXI7YnJlYWt9ZWxzZXtaPTk3MDticmVhayBMODkwfX19fXdoaWxlKDApO2lmKChafDApPT05
NjQpe1o9MDtpZihhMSl7Wj05NzA7YnJlYWsgTDg5MH1lbHNle2E0PTB9fWFyPWNbZj4+Ml18MDtW
PWNbYXIrMTI+PjJdfDA7aWYoKFZ8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YTU9YjBbY1soY1thcj4+
Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthNT1jW1Y+PjJdfDB9aWYoKGE1fDApIT0oY1t0
Pj4yXXwwKSl7Wj05NzA7YnJlYWsgTDg5MH1WPWNbZj4+Ml18MDthcj1WKzEyfDA7YXU9Y1thcj4+
Ml18MDtpZigoYXV8MCk9PShjW1YrMTY+PjJdfDApKXthdD1jWyhjW1Y+PjJdfDApKzQwPj4yXXww
O2IwW2F0JjEyN10oVil8MDthNj1hNDthNz1hc31lbHNle2NbYXI+PjJdPWF1KzQ7YTY9YTQ7YTc9
YXN9d2hpbGUoMSl7YXU9Y1tmPj4yXXwwO2Rve2lmKChhdXwwKT09MCl7YTg9MX1lbHNle2FyPWNb
YXUrMTI+PjJdfDA7aWYoKGFyfDApPT0oY1thdSsxNj4+Ml18MCkpe2E5PWIwW2NbKGNbYXU+PjJd
fDApKzM2Pj4yXSYxMjddKGF1KXwwfWVsc2V7YTk9Y1thcj4+Ml18MH1pZigoYTl8MCk9PS0xKXtj
W2Y+PjJdPTA7YTg9MTticmVha31lbHNle2E4PShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUo
MCk7ZG97aWYoKGE2fDApPT0wKXtaPTk4N31lbHNle2F1PWNbYTYrMTI+PjJdfDA7aWYoKGF1fDAp
PT0oY1thNisxNj4+Ml18MCkpe2JhPWIwW2NbKGNbYTY+PjJdfDApKzM2Pj4yXSYxMjddKGE2KXww
fWVsc2V7YmE9Y1thdT4+Ml18MH1pZigoYmF8MCk9PS0xKXtjW2I+PjJdPTA7Wj05ODc7YnJlYWt9
ZWxzZXtpZihhOF4oYTZ8MCk9PTApe2JiPWE2O2JyZWFrfWVsc2V7Wj05OTQ7YnJlYWsgTDg5MH19
fX13aGlsZSgwKTtpZigoWnwwKT09OTg3KXtaPTA7aWYoYTgpe1o9OTk0O2JyZWFrIEw4OTB9ZWxz
ZXtiYj0wfX1hdT1jW2Y+PjJdfDA7YXI9Y1thdSsxMj4+Ml18MDtpZigoYXJ8MCk9PShjW2F1KzE2
Pj4yXXwwKSl7YmM9YjBbY1soY1thdT4+Ml18MCkrMzY+PjJdJjEyN10oYXUpfDB9ZWxzZXtiYz1j
W2FyPj4yXXwwfWlmKCEoYjFbY1soY1tlPj4yXXwwKSsxMj4+Ml0mNjNdKGwsMjA0OCxiYyl8MCkp
e1o9OTk0O2JyZWFrIEw4OTB9aWYoKGNbbj4+Ml18MCk9PShjW3E+PjJdfDApKXtoMyhtLG4scSl9
YXI9Y1tmPj4yXXwwO2F1PWNbYXIrMTI+PjJdfDA7aWYoKGF1fDApPT0oY1thcisxNj4+Ml18MCkp
e2JkPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YmQ9Y1thdT4+Ml18
MH1hdT1jW24+PjJdfDA7Y1tuPj4yXT1hdSs0O2NbYXU+PjJdPWJkO2F1PWE3LTF8MDtjW0I+PjJd
PWF1O2FyPWNbZj4+Ml18MDtWPWFyKzEyfDA7YXQ9Y1tWPj4yXXwwO2lmKChhdHwwKT09KGNbYXIr
MTY+PjJdfDApKXthcD1jWyhjW2FyPj4yXXwwKSs0MD4+Ml18MDtiMFthcCYxMjddKGFyKXwwfWVs
c2V7Y1tWPj4yXT1hdCs0fWlmKChhdXwwKT4wKXthNj1iYjthNz1hdX1lbHNle2JyZWFrfX19aWYo
KGNbbj4+Ml18MCk9PShjW2c+PjJdfDApKXtaPTEwMDU7YnJlYWsgTDg5MH1lbHNle2FmPXI7YWc9
YVU7YWg9YVY7YWk9YVc7YWo9YVh9YnJlYWt9O2Nhc2UgMTp7aWYoKFV8MCk9PTMpe2FhPVI7YWI9
UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrIEw4OTB9YXM9Y1tmPj4yXXwwO2F1PWNbYXMrMTI+PjJd
fDA7aWYoKGF1fDApPT0oY1thcysxNj4+Ml18MCkpe2JlPWIwW2NbKGNbYXM+PjJdfDApKzM2Pj4y
XSYxMjddKGFzKXwwfWVsc2V7YmU9Y1thdT4+Ml18MH1pZighKGIxW2NbKGNbZT4+Ml18MCkrMTI+
PjJdJjYzXShsLDgxOTIsYmUpfDApKXtaPTc5MTticmVhayBMODkwfWF1PWNbZj4+Ml18MDthcz1h
dSsxMnwwO2F0PWNbYXM+PjJdfDA7aWYoKGF0fDApPT0oY1thdSsxNj4+Ml18MCkpe2JmPWIwW2Nb
KGNbYXU+PjJdfDApKzQwPj4yXSYxMjddKGF1KXwwfWVsc2V7Y1thcz4+Ml09YXQrNDtiZj1jW2F0
Pj4yXXwwfWVoKEEsYmYpO1o9NzkyO2JyZWFrfTtjYXNlIDA6e1o9NzkyO2JyZWFrfTtjYXNlIDM6
e2F0PWFbRV18MDthcz1hdCYyNTU7YXU9KGFzJjF8MCk9PTA7Vj1hW0ZdfDA7YXI9ViYyNTU7YXA9
KGFyJjF8MCk9PTA7aWYoKChhdT9hcz4+PjE6Y1tKPj4yXXwwKXwwKT09KC0oYXA/YXI+Pj4xOmNb
SD4+Ml18MCl8MCkpe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMOTE0fWRve2lmKCgo
YXU/YXM+Pj4xOmNbSj4+Ml18MCl8MCkhPTApe2lmKCgoYXA/YXI+Pj4xOmNbSD4+Ml18MCl8MCk9
PTApe2JyZWFrfVg9Y1tmPj4yXXwwO2F3PWNbWCsxMj4+Ml18MDtpZigoYXd8MCk9PShjW1grMTY+
PjJdfDApKXtheD1iMFtjWyhjW1g+PjJdfDApKzM2Pj4yXSYxMjddKFgpfDA7Ymc9YXg7Ymg9YVtF
XXwwfWVsc2V7Ymc9Y1thdz4+Ml18MDtiaD1hdH1hdz1jW2Y+PjJdfDA7YXg9YXcrMTJ8MDtYPWNb
YXg+PjJdfDA7YXY9KFh8MCk9PShjW2F3KzE2Pj4yXXwwKTtpZigoYmd8MCk9PShjWygoYmgmMSk9
PTA/SjpjW0s+PjJdfDApPj4yXXwwKSl7aWYoYXYpe2JpPWNbKGNbYXc+PjJdfDApKzQwPj4yXXww
O2IwW2JpJjEyN10oYXcpfDB9ZWxzZXtjW2F4Pj4yXT1YKzR9YXg9ZFtFXXwwO2FmPSgoYXgmMXww
KT09MD9heD4+PjE6Y1tKPj4yXXwwKT4+PjA+MT95OnI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVh
ayBMOTE0fWlmKGF2KXtiaj1iMFtjWyhjW2F3Pj4yXXwwKSszNj4+Ml0mMTI3XShhdyl8MH1lbHNl
e2JqPWNbWD4+Ml18MH1pZigoYmp8MCkhPShjWygoYVtGXSYxKT09MD9IOmNbST4+Ml18MCk+PjJd
fDApKXtaPTg1NzticmVhayBMODkwfVg9Y1tmPj4yXXwwO2F3PVgrMTJ8MDthdj1jW2F3Pj4yXXww
O2lmKChhdnwwKT09KGNbWCsxNj4+Ml18MCkpe2F4PWNbKGNbWD4+Ml18MCkrNDA+PjJdfDA7YjBb
YXgmMTI3XShYKXwwfWVsc2V7Y1thdz4+Ml09YXYrNH1hW2tdPTE7YXY9ZFtGXXwwO2FmPSgoYXYm
MXwwKT09MD9hdj4+PjE6Y1tIPj4yXXwwKT4+PjA+MT96OnI7YWc9bzthaD1UO2FpPVM7YWo9Ujti
cmVhayBMOTE0fX13aGlsZSgwKTthcj1jW2Y+PjJdfDA7YXA9Y1thcisxMj4+Ml18MDthdj0oYXB8
MCk9PShjW2FyKzE2Pj4yXXwwKTtpZigoKGF1P2FzPj4+MTpjW0o+PjJdfDApfDApPT0wKXtpZihh
dil7YXc9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDA7Yms9YXc7Ymw9YVtGXXww
fWVsc2V7Yms9Y1thcD4+Ml18MDtibD1WfWlmKChia3wwKSE9KGNbKChibCYxKT09MD9IOmNbST4+
Ml18MCk+PjJdfDApKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDkxNH1hdz1jW2Y+
PjJdfDA7WD1hdysxMnwwO2F4PWNbWD4+Ml18MDtpZigoYXh8MCk9PShjW2F3KzE2Pj4yXXwwKSl7
Ymk9Y1soY1thdz4+Ml18MCkrNDA+PjJdfDA7YjBbYmkmMTI3XShhdyl8MH1lbHNle2NbWD4+Ml09
YXgrNH1hW2tdPTE7YXg9ZFtGXXwwO2FmPSgoYXgmMXwwKT09MD9heD4+PjE6Y1tIPj4yXXwwKT4+
PjA+MT96OnI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMOTE0fWlmKGF2KXthdj1iMFtjWyhj
W2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MDtibT1hdjtibj1hW0VdfDB9ZWxzZXtibT1jW2Fw
Pj4yXXwwO2JuPWF0fWlmKChibXwwKSE9KGNbKChibiYxKT09MD9KOmNbSz4+Ml18MCk+PjJdfDAp
KXthW2tdPTE7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9YXA9Y1tmPj4yXXww
O2F2PWFwKzEyfDA7YXI9Y1thdj4+Ml18MDtpZigoYXJ8MCk9PShjW2FwKzE2Pj4yXXwwKSl7YXg9
Y1soY1thcD4+Ml18MCkrNDA+PjJdfDA7YjBbYXgmMTI3XShhcCl8MH1lbHNle2NbYXY+PjJdPWFy
KzR9YXI9ZFtFXXwwO2FmPSgoYXImMXwwKT09MD9hcj4+PjE6Y1tKPj4yXXwwKT4+PjA+MT95OnI7
YWc9bzthaD1UO2FpPVM7YWo9UjticmVha307ZGVmYXVsdDp7YWY9cjthZz1vO2FoPVQ7YWk9Uzth
aj1SfX19d2hpbGUoMCk7TDExODM6ZG97aWYoKFp8MCk9PTc5Mil7Wj0wO2lmKChVfDApPT0zKXth
YT1SO2FiPVM7YWM9VDthZD1yO1o9MTAwNzticmVhayBMODkwfWVsc2V7Ym89JH13aGlsZSgxKXth
cj1jW2Y+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXticD0xfWVsc2V7YXY9Y1thcisxMj4+Ml18MDtp
ZigoYXZ8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YnE9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEy
N10oYXIpfDB9ZWxzZXticT1jW2F2Pj4yXXwwfWlmKChicXwwKT09LTEpe2NbZj4+Ml09MDticD0x
O2JyZWFrfWVsc2V7YnA9KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZigoYm98
MCk9PTApe1o9ODA2fWVsc2V7YXI9Y1tibysxMj4+Ml18MDtpZigoYXJ8MCk9PShjW2JvKzE2Pj4y
XXwwKSl7YnI9YjBbY1soY1tibz4+Ml18MCkrMzY+PjJdJjEyN10oYm8pfDB9ZWxzZXticj1jW2Fy
Pj4yXXwwfWlmKChicnwwKT09LTEpe2NbYj4+Ml09MDtaPTgwNjticmVha31lbHNle2lmKGJwXihi
b3wwKT09MCl7YnM9Ym87YnJlYWt9ZWxzZXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsg
TDExODN9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTgwNil7Wj0wO2lmKGJwKXthZj1yO2FnPW87YWg9
VDthaT1TO2FqPVI7YnJlYWsgTDExODN9ZWxzZXticz0wfX1hcj1jW2Y+PjJdfDA7YXY9Y1thcisx
Mj4+Ml18MDtpZigoYXZ8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YnQ9YjBbY1soY1thcj4+Ml18MCkr
MzY+PjJdJjEyN10oYXIpfDB9ZWxzZXtidD1jW2F2Pj4yXXwwfWlmKCEoYjFbY1soY1tlPj4yXXww
KSsxMj4+Ml0mNjNdKGwsODE5MixidCl8MCkpe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVh
ayBMMTE4M31hdj1jW2Y+PjJdfDA7YXI9YXYrMTJ8MDthcD1jW2FyPj4yXXwwO2lmKChhcHwwKT09
KGNbYXYrMTY+PjJdfDApKXtidT1iMFtjWyhjW2F2Pj4yXXwwKSs0MD4+Ml0mMTI3XShhdil8MH1l
bHNle2NbYXI+PjJdPWFwKzQ7YnU9Y1thcD4+Ml18MH1laChBLGJ1KTtibz1ic319fXdoaWxlKDAp
O2F0PVUrMXwwO2lmKGF0Pj4+MDw0KXtSPWFqO1M9YWk7VD1haDtvPWFnO3I9YWY7VT1hdH1lbHNl
e2FhPWFqO2FiPWFpO2FjPWFoO2FkPWFmO1o9MTAwNzticmVha319TDEyMjA6ZG97aWYoKFp8MCk9
PTg1Nyl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1TO2J4PVJ9ZWxzZSBpZigoWnwwKT09OTAx
KXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PVM7Yng9Un1lbHNlIGlmKChafDApPT05NzApe2Nb
aj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YVc7Yng9YVh9ZWxzZSBpZigoWnwwKT09OTk0KXtjW2o+
PjJdPWNbaj4+Ml18NDtidj0wO2J3PWFXO2J4PWFYfWVsc2UgaWYoKFp8MCk9PTEwMDUpe2Nbaj4+
Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YVc7Yng9YVh9ZWxzZSBpZigoWnwwKT09MTAwNyl7TDEyMjc6
ZG97aWYoKGFkfDApIT0wKXthZj1hZDthaD1hZCs0fDA7YWk9YWQrOHwwO2FqPTE7TDEyMjk6d2hp
bGUoMSl7VT1kW2FmXXwwO2lmKChVJjF8MCk9PTApe2J5PVU+Pj4xfWVsc2V7Ynk9Y1thaD4+Ml18
MH1pZihhaj4+PjA+PWJ5Pj4+MCl7YnJlYWsgTDEyMjd9VT1jW2Y+PjJdfDA7ZG97aWYoKFV8MCk9
PTApe2J6PTF9ZWxzZXtyPWNbVSsxMj4+Ml18MDtpZigocnwwKT09KGNbVSsxNj4+Ml18MCkpe2JB
PWIwW2NbKGNbVT4+Ml18MCkrMzY+PjJdJjEyN10oVSl8MH1lbHNle2JBPWNbcj4+Ml18MH1pZigo
YkF8MCk9PS0xKXtjW2Y+PjJdPTA7Yno9MTticmVha31lbHNle2J6PShjW2Y+PjJdfDApPT0wO2Jy
ZWFrfX19d2hpbGUoMCk7VT1jW2I+PjJdfDA7ZG97aWYoKFV8MCk9PTApe1o9MTAyNn1lbHNle3I9
Y1tVKzEyPj4yXXwwO2lmKChyfDApPT0oY1tVKzE2Pj4yXXwwKSl7YkI9YjBbY1soY1tVPj4yXXww
KSszNj4+Ml0mMTI3XShVKXwwfWVsc2V7YkI9Y1tyPj4yXXwwfWlmKChiQnwwKT09LTEpe2NbYj4+
Ml09MDtaPTEwMjY7YnJlYWt9ZWxzZXtpZihiel4oVXwwKT09MCl7YnJlYWt9ZWxzZXticmVhayBM
MTIyOX19fX13aGlsZSgwKTtpZigoWnwwKT09MTAyNil7Wj0wO2lmKGJ6KXticmVha319VT1jW2Y+
PjJdfDA7cj1jW1UrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW1UrMTY+PjJdfDApKXtiQz1iMFtjWyhj
W1U+PjJdfDApKzM2Pj4yXSYxMjddKFUpfDB9ZWxzZXtiQz1jW3I+PjJdfDB9aWYoKGFbYWZdJjEp
PT0wKXtiRD1haH1lbHNle2JEPWNbYWk+PjJdfDB9aWYoKGJDfDApIT0oY1tiRCsoYWo8PDIpPj4y
XXwwKSl7YnJlYWt9cj1haisxfDA7VT1jW2Y+PjJdfDA7YWc9VSsxMnwwO289Y1thZz4+Ml18MDtp
Zigob3wwKT09KGNbVSsxNj4+Ml18MCkpe1Q9Y1soY1tVPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEy
N10oVSl8MDthaj1yO2NvbnRpbnVlfWVsc2V7Y1thZz4+Ml09bys0O2FqPXI7Y29udGludWV9fWNb
aj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YWI7Yng9YWE7YnJlYWsgTDEyMjB9fXdoaWxlKDApO2lm
KChhYnwwKT09KGFjfDApKXtidj0xO2J3PWFjO2J4PWFhO2JyZWFrfWNbQz4+Ml09MDtmdCh2LGFi
LGFjLEMpO2lmKChjW0M+PjJdfDApPT0wKXtidj0xO2J3PWFiO2J4PWFhO2JyZWFrfWNbaj4+Ml09
Y1tqPj4yXXw0O2J2PTA7Ync9YWI7Yng9YWF9ZWxzZSBpZigoWnwwKT09NzkxKXtjW2o+PjJdPWNb
aj4+Ml18NDtidj0wO2J3PVM7Yng9Un19d2hpbGUoMCk7ZWUoQSk7ZWUoeik7ZWUoeSk7ZWUoeCk7
ZFAodik7aWYoKGJ3fDApPT0wKXtpPXA7cmV0dXJuIGJ2fDB9YllbYngmNTExXShidyk7aT1wO3Jl
dHVybiBidnwwfWZ1bmN0aW9uIGhfKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9
MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wO2Y9YjtnPWQ7aD1hW2ZdfDA7aT1oJjI1
NTtpZigoaSYxfDApPT0wKXtqPWk+Pj4xfWVsc2V7aj1jW2IrND4+Ml18MH1pZigoaCYxKT09MCl7
az0xO2w9aH1lbHNle2g9Y1tiPj4yXXwwO2s9KGgmLTIpLTF8MDtsPWgmMjU1fWg9ZS1nPj4yO2lm
KChofDApPT0wKXtyZXR1cm4gYnwwfWlmKChrLWp8MCk+Pj4wPGg+Pj4wKXtlQihiLGssaitoLWt8
MCxqLGosMCwwKTttPWFbZl18MH1lbHNle209bH1pZigobSYxKT09MCl7bj1iKzR8MH1lbHNle249
Y1tiKzg+PjJdfDB9bT1uKyhqPDwyKXwwO2lmKChkfDApPT0oZXwwKSl7bz1tfWVsc2V7bD1qKygo
ZS00KygtZ3wwKXwwKT4+PjIpKzF8MDtnPWQ7ZD1tO3doaWxlKDEpe2NbZD4+Ml09Y1tnPj4yXTtt
PWcrNHwwO2lmKChtfDApPT0oZXwwKSl7YnJlYWt9ZWxzZXtnPW07ZD1kKzR8MH19bz1uKyhsPDwy
KXwwfWNbbz4+Ml09MDtvPWoraHwwO2lmKChhW2ZdJjEpPT0wKXthW2ZdPW88PDEmMjU1O3JldHVy
biBifDB9ZWxzZXtjW2IrND4+Ml09bztyZXR1cm4gYnwwfXJldHVybiAwfWZ1bmN0aW9uIGgkKGEp
e2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGgwKGEpe2E9YXwwO2RlKGF8MCk7
cmV0dXJufWZ1bmN0aW9uIGgxKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0w
LEc9MCxIPTA7ZD1pO2k9aSs0NTZ8MDtsPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1k
fDA7bT1kKzE2fDA7bj1kKzQxNnwwO289ZCs0MjR8MDtwPWQrNDMyfDA7cT1kKzQ0MHwwO3I9ZCs0
NDh8MDtzPW58MDtjW3M+PjJdPW07dD1uKzR8MDtjW3Q+PjJdPTE2Njt1PW0rNDAwfDA7ZWoocCxo
KTttPXB8MDt2PWNbbT4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1ts
KzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO3c9
Y1t2Kzg+PjJdfDA7ZG97aWYoKGNbdisxMj4+Ml18MCktdz4+Mj4+PjA+bD4+PjApe3g9Y1t3Kyhs
PDwyKT4+Ml18MDtpZigoeHwwKT09MCl7YnJlYWt9eT14O2FbcV09MDt6PWZ8MDtBPWNbej4+Ml18
MDtjW3I+PjJdPUE7aWYoaFooZSxyLGcscCxjW2grND4+Ml18MCxqLHEseSxuLG8sdSl8MCl7Qj1r
O2lmKChhW0JdJjEpPT0wKXtjW2srND4+Ml09MDthW0JdPTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09
MDtjW2srND4+Ml09MH1CPXg7aWYoKGFbcV0mMSkhPTApe2VoKGssYl9bY1soY1tCPj4yXXwwKSs0
ND4+Ml0mMzFdKHksNDUpfDApfXg9Yl9bY1soY1tCPj4yXXwwKSs0ND4+Ml0mMzFdKHksNDgpfDA7
eT1jW28+PjJdfDA7Qj15LTR8MDtDPWNbcz4+Ml18MDt3aGlsZSgxKXtpZihDPj4+MD49Qj4+PjAp
e2JyZWFrfWlmKChjW0M+PjJdfDApPT0oeHwwKSl7Qz1DKzR8MH1lbHNle2JyZWFrfX1oXyhrLEMs
eSl8MH14PWV8MDtCPWNbeD4+Ml18MDtkb3tpZigoQnwwKT09MCl7RD0wfWVsc2V7RT1jW0IrMTI+
PjJdfDA7aWYoKEV8MCk9PShjW0IrMTY+PjJdfDApKXtGPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJd
JjEyN10oQil8MH1lbHNle0Y9Y1tFPj4yXXwwfWlmKChGfDApIT0tMSl7RD1CO2JyZWFrfWNbeD4+
Ml09MDtEPTB9fXdoaWxlKDApO3g9KER8MCk9PTA7ZG97aWYoKEF8MCk9PTApe0c9MTEwNX1lbHNl
e0I9Y1tBKzEyPj4yXXwwO2lmKChCfDApPT0oY1tBKzE2Pj4yXXwwKSl7SD1iMFtjWyhjW0E+PjJd
fDApKzM2Pj4yXSYxMjddKEEpfDB9ZWxzZXtIPWNbQj4+Ml18MH1pZigoSHwwKT09LTEpe2Nbej4+
Ml09MDtHPTExMDU7YnJlYWt9ZWxzZXtpZih4XihBfDApPT0wKXticmVha31lbHNle0c9MTEwNzti
cmVha319fX13aGlsZSgwKTtpZigoR3wwKT09MTEwNSl7aWYoeCl7Rz0xMTA3fX1pZigoR3wwKT09
MTEwNyl7Y1tqPj4yXT1jW2o+PjJdfDJ9Y1tiPj4yXT1EO0E9Y1ttPj4yXXwwO2R6KEEpfDA7QT1j
W3M+PjJdfDA7Y1tzPj4yXT0wO2lmKChBfDApPT0wKXtpPWQ7cmV0dXJufWJZW2NbdD4+Ml0mNTEx
XShBKTtpPWQ7cmV0dXJufX13aGlsZSgwKTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0
KX1mdW5jdGlvbiBoMihiLGQsZSxmLGcsaCxqLGssbCxtKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsRD0wLEU9MCxGPTAs
Rz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTA7bj1pO2k9aSs1NnwwO289bnwwO3A9
bisxNnwwO3E9biszMnwwO3I9bis0MHwwO3M9cjt0PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dT10
O3Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt3PXY7eD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3k9
eDt6PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Qj1BO0Q9
aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0c9RjtI
PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7ST1IO2lmKGIpe2I9Y1tkPj4yXXwwO2lmKChjWzQwNDBd
fDApIT0tMSl7Y1twPj4yXT0xNjE2MDtjW3ArND4+Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTYxNjAs
cCw5Nil9cD0oY1s0MDQxXXwwKS0xfDA7Sj1jW2IrOD4+Ml18MDtpZigoY1tiKzEyPj4yXXwwKS1K
Pj4yPj4+MDw9cD4+PjApe0s9Yk8oNCl8MDtMPUs7a3EoTCk7YmwoS3wwLDgxNzYsMTM0KX1iPWNb
SisocDw8Mik+PjJdfDA7aWYoKGJ8MCk9PTApe0s9Yk8oNCl8MDtMPUs7a3EoTCk7YmwoS3wwLDgx
NzYsMTM0KX1LPWI7YlpbY1soY1tiPj4yXXwwKSs0ND4+Ml0mMTI3XShxLEspO0w9ZTtDPWNbcT4+
Ml18MDthW0xdPUMmMjU1O0M9Qz4+ODthW0wrMXwwXT1DJjI1NTtDPUM+Pjg7YVtMKzJ8MF09QyYy
NTU7Qz1DPj44O2FbTCszfDBdPUMmMjU1O0w9YjtiWltjWyhjW0w+PjJdfDApKzMyPj4yXSYxMjdd
KHIsSyk7cT1sO2lmKChhW3FdJjEpPT0wKXtjW2wrND4+Ml09MDthW3FdPTB9ZWxzZXtjW2NbbCs4
Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2NbcT4+Ml09Y1tzPj4yXTtjW3ErND4+Ml09
Y1tzKzQ+PjJdO2NbcSs4Pj4yXT1jW3MrOD4+Ml07ayQoc3wwLDAsMTIpO2VlKHIpO2JaW2NbKGNb
TD4+Ml18MCkrMjg+PjJdJjEyN10odCxLKTtyPWs7aWYoKGFbcl0mMSk9PTApe2Nbays0Pj4yXT0w
O2Fbcl09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6KGssMCk7Y1tyPj4y
XT1jW3U+PjJdO2Nbcis0Pj4yXT1jW3UrND4+Ml07Y1tyKzg+PjJdPWNbdSs4Pj4yXTtrJCh1fDAs
MCwxMik7ZWUodCk7dD1iO2NbZj4+Ml09YjBbY1soY1t0Pj4yXXwwKSsxMj4+Ml0mMTI3XShLKXww
O2NbZz4+Ml09YjBbY1soY1t0Pj4yXXwwKSsxNj4+Ml0mMTI3XShLKXwwO2JaW2NbKGNbYj4+Ml18
MCkrMjA+PjJdJjEyN10odixLKTtiPWg7aWYoKGFbYl0mMSk9PTApe2FbaCsxfDBdPTA7YVtiXT0w
fWVsc2V7YVtjW2grOD4+Ml18MF09MDtjW2grND4+Ml09MH1kJChoLDApO2NbYj4+Ml09Y1t3Pj4y
XTtjW2IrND4+Ml09Y1t3KzQ+PjJdO2NbYis4Pj4yXT1jW3crOD4+Ml07ayQod3wwLDAsMTIpO2RQ
KHYpO2JaW2NbKGNbTD4+Ml18MCkrMjQ+PjJdJjEyN10oeCxLKTtMPWo7aWYoKGFbTF0mMSk9PTAp
e2Nbais0Pj4yXT0wO2FbTF09MH1lbHNle2NbY1tqKzg+PjJdPj4yXT0wO2Nbais0Pj4yXT0wfWV6
KGosMCk7Y1tMPj4yXT1jW3k+PjJdO2NbTCs0Pj4yXT1jW3krND4+Ml07Y1tMKzg+PjJdPWNbeSs4
Pj4yXTtrJCh5fDAsMCwxMik7ZWUoeCk7TT1iMFtjWyhjW3Q+PjJdfDApKzM2Pj4yXSYxMjddKEsp
fDA7Y1ttPj4yXT1NO2k9bjtyZXR1cm59ZWxzZXtLPWNbZD4+Ml18MDtpZigoY1s0MDQyXXwwKSE9
LTEpe2Nbbz4+Ml09MTYxNjg7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE2MTY4LG8sOTYp
fW89KGNbNDA0M118MCktMXwwO2Q9Y1tLKzg+PjJdfDA7aWYoKGNbSysxMj4+Ml18MCktZD4+Mj4+
PjA8PW8+Pj4wKXtOPWJPKDQpfDA7Tz1OO2txKE8pO2JsKE58MCw4MTc2LDEzNCl9Sz1jW2QrKG88
PDIpPj4yXXwwO2lmKChLfDApPT0wKXtOPWJPKDQpfDA7Tz1OO2txKE8pO2JsKE58MCw4MTc2LDEz
NCl9Tj1LO2JaW2NbKGNbSz4+Ml18MCkrNDQ+PjJdJjEyN10oeixOKTtPPWU7Qz1jW3o+PjJdfDA7
YVtPXT1DJjI1NTtDPUM+Pjg7YVtPKzF8MF09QyYyNTU7Qz1DPj44O2FbTysyfDBdPUMmMjU1O0M9
Qz4+ODthW08rM3wwXT1DJjI1NTtPPUs7YlpbY1soY1tPPj4yXXwwKSszMj4+Ml0mMTI3XShBLE4p
O3o9bDtpZigoYVt6XSYxKT09MCl7Y1tsKzQ+PjJdPTA7YVt6XT0wfWVsc2V7Y1tjW2wrOD4+Ml0+
PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW3o+PjJdPWNbQj4+Ml07Y1t6KzQ+PjJdPWNbQis0
Pj4yXTtjW3orOD4+Ml09Y1tCKzg+PjJdO2skKEJ8MCwwLDEyKTtlZShBKTtiWltjWyhjW08+PjJd
fDApKzI4Pj4yXSYxMjddKEQsTik7QT1rO2lmKChhW0FdJjEpPT0wKXtjW2srND4+Ml09MDthW0Fd
PTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2srND4+Ml09MH1leihrLDApO2NbQT4+Ml09Y1tF
Pj4yXTtjW0ErND4+Ml09Y1tFKzQ+PjJdO2NbQSs4Pj4yXT1jW0UrOD4+Ml07ayQoRXwwLDAsMTIp
O2VlKEQpO0Q9SztjW2Y+PjJdPWIwW2NbKGNbRD4+Ml18MCkrMTI+PjJdJjEyN10oTil8MDtjW2c+
PjJdPWIwW2NbKGNbRD4+Ml18MCkrMTY+PjJdJjEyN10oTil8MDtiWltjWyhjW0s+PjJdfDApKzIw
Pj4yXSYxMjddKEYsTik7Sz1oO2lmKChhW0tdJjEpPT0wKXthW2grMXwwXT0wO2FbS109MH1lbHNl
e2FbY1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9ZCQoaCwwKTtjW0s+PjJdPWNbRz4+Ml07Y1tL
KzQ+PjJdPWNbRys0Pj4yXTtjW0srOD4+Ml09Y1tHKzg+PjJdO2skKEd8MCwwLDEyKTtkUChGKTti
WltjWyhjW08+PjJdfDApKzI0Pj4yXSYxMjddKEgsTik7Tz1qO2lmKChhW09dJjEpPT0wKXtjW2or
ND4+Ml09MDthW09dPTB9ZWxzZXtjW2Nbais4Pj4yXT4+Ml09MDtjW2orND4+Ml09MH1leihqLDAp
O2NbTz4+Ml09Y1tJPj4yXTtjW08rND4+Ml09Y1tJKzQ+PjJdO2NbTys4Pj4yXT1jW0krOD4+Ml07
ayQoSXwwLDAsMTIpO2VlKEgpO009YjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShOKXwwO2Nb
bT4+Ml09TTtpPW47cmV0dXJufX1mdW5jdGlvbiBoMyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7
dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1hKzR8MDtmPShjW2U+PjJdfDAp
IT0xNjY7Zz1hfDA7YT1jW2c+PjJdfDA7aD1hO2k9KGNbZD4+Ml18MCktaHwwO2o9aT4+PjA8MjE0
NzQ4MzY0Nz9pPDwxOi0xO2k9KGNbYj4+Ml18MCktaD4+MjtpZihmKXtrPWF9ZWxzZXtrPTB9YT1r
TChrLGopfDA7az1hO2lmKChhfDApPT0wKXtrWCgpfWRve2lmKGYpe2NbZz4+Ml09aztsPWt9ZWxz
ZXthPWNbZz4+Ml18MDtjW2c+PjJdPWs7aWYoKGF8MCk9PTApe2w9azticmVha31iWVtjW2U+PjJd
JjUxMV0oYSk7bD1jW2c+PjJdfDB9fXdoaWxlKDApO2NbZT4+Ml09ODI7Y1tiPj4yXT1sKyhpPDwy
KTtjW2Q+PjJdPShjW2c+PjJdfDApKyhqPj4+Mjw8Mik7cmV0dXJufWZ1bmN0aW9uIGg0KGIsZSxm
LGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3wwO2w9K2w7dmFyIG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAs
UD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MDtlPWk7aT1pKzI4MHwwO209ZjtmPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1lfDA7bj1lKzEyMHwwO289ZSsyMzJ8
MDtwPWUrMjQwfDA7cT1lKzI0OHwwO3I9ZSsyNTZ8MDtzPWUrMjY0fDA7dD1zO3U9aTtpPWkrMTJ8
MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3g9dzt5PWk7aT1pKzR8
MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzEwMHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO0I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0Q9
ZSsxNnwwO2Nbbj4+Ml09RDtFPWUrMTI4fDA7Rj1hWihEfDAsMTAwLDEzNjAsKEQ9aSxpPWkrOHww
LGhbRD4+M109bCxEKXwwKXwwO2k9RDtkb3tpZihGPj4+MD45OSl7ZG97aWYoKGFbMTYyNjRdfDAp
PT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13
aGlsZSgwKTtHPWdoKG4sY1syOTU4XXwwLDEzNjAsKEQ9aSxpPWkrOHwwLGhbRD4+M109bCxEKXww
KXwwO2k9RDtIPWNbbj4+Ml18MDtpZigoSHwwKT09MCl7a1goKTtJPWNbbj4+Ml18MH1lbHNle0k9
SH1IPWtKKEcpfDA7aWYoKEh8MCkhPTApe0o9SDtLPUc7TD1JO009SDticmVha31rWCgpO0o9MDtL
PUc7TD1JO009MH1lbHNle0o9RTtLPUY7TD0wO009MH19d2hpbGUoMCk7ZWoobyxqKTtGPW98MDtF
PWNbRj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbT4+Ml09MTU2OTY7Y1ttKzQ+PjJdPTEy
O2NbbSs4Pj4yXT0wO2RXKDE1Njk2LG0sOTYpfW09KGNbMzkyNV18MCktMXwwO0k9Y1tFKzg+PjJd
fDA7ZG97aWYoKGNbRSsxMj4+Ml18MCktST4+Mj4+PjA+bT4+PjApe0Q9Y1tJKyhtPDwyKT4+Ml18
MDtpZigoRHwwKT09MCl7YnJlYWt9Rz1EO0g9Y1tuPj4yXXwwO049SCtLfDA7Tz1jWyhjW0Q+PjJd
fDApKzMyPj4yXXwwO2NhW08mMTVdKEcsSCxOLEopfDA7aWYoKEt8MCk9PTApe1A9MH1lbHNle1A9
KGFbY1tuPj4yXXwwXXwwKT09NDV9ayQodHwwLDAsMTIpO2skKHZ8MCwwLDEyKTtrJCh4fDAsMCwx
Mik7aDUoZyxQLG8scCxxLHIscyx1LHcseSk7Tj16fDA7SD1jW3k+PjJdfDA7aWYoKEt8MCk+KEh8
MCkpe089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1E9Tz4+PjF9ZWxzZXtRPWNbdys0Pj4yXXwwfU89
ZFt2XXwwO2lmKChPJjF8MCk9PTApe1I9Tz4+PjF9ZWxzZXtSPWNbdSs0Pj4yXXwwfVM9KEstSDw8
MXwxKStRK1J8MH1lbHNle089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1Q9Tz4+PjF9ZWxzZXtUPWNb
dys0Pj4yXXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1U9Tz4+PjF9ZWxzZXtVPWNbdSs0Pj4y
XXwwfVM9VCsyK1V8MH1PPVMrSHwwO2Rve2lmKE8+Pj4wPjEwMCl7RD1rSihPKXwwO2lmKChEfDAp
IT0wKXtWPUQ7Vz1EO2JyZWFrfWtYKCk7Vj0wO1c9MH1lbHNle1Y9TjtXPTB9fXdoaWxlKDApO2g2
KFYsQSxCLGNbais0Pj4yXXwwLEosSitLfDAsRyxQLHAsYVtxXXwwLGFbcl18MCxzLHUsdyxIKTtj
W0M+PjJdPWNbZj4+Ml07ZjkoYixDLFYsY1tBPj4yXXwwLGNbQj4+Ml18MCxqLGspO2lmKChXfDAp
IT0wKXtrSyhXKX1kUCh3KTtkUCh1KTtkUChzKTtOPWNbRj4+Ml18MDtkeihOKXwwO2lmKChNfDAp
IT0wKXtrSyhNKX1pZigoTHwwKT09MCl7aT1lO3JldHVybn1rSyhMKTtpPWU7cmV0dXJufX13aGls
ZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBoNShiLGQsZSxm
LGcsaCxqLGssbCxtKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtr
PWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxM
PTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7bj1pO2k9aSs0MHwwO289bnww
O3A9bisxNnwwO3E9biszMnwwO3I9cTtzPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dD1zO3U9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eD13O3k9aTtp
PWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PXk7QT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0I9QTtEPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0c9RjtIPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztJPUg7Sj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0s9SjtMPWk7
aT1pKzEyfDA7aT1pKzc+PjM8PDM7TT1MO049aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztPPU47UD1j
W2U+PjJdfDA7aWYoYil7aWYoKGNbNDA0NF18MCkhPS0xKXtjW3A+PjJdPTE2MTc2O2NbcCs0Pj4y
XT0xMjtjW3ArOD4+Ml09MDtkVygxNjE3NixwLDk2KX1wPShjWzQwNDVdfDApLTF8MDtiPWNbUCs4
Pj4yXXwwO2lmKChjW1ArMTI+PjJdfDApLWI+PjI+Pj4wPD1wPj4+MCl7UT1iTyg0KXwwO1I9UTtr
cShSKTtibChRfDAsODE3NiwxMzQpfWU9Y1tiKyhwPDwyKT4+Ml18MDtpZigoZXwwKT09MCl7UT1i
Tyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQpfVE9ZTtSPWNbZT4+Ml18MDtpZihkKXti
WltjW1IrNDQ+PjJdJjEyN10ocixRKTtyPWY7Qz1jW3E+PjJdfDA7YVtyXT1DJjI1NTtDPUM+Pjg7
YVtyKzF8MF09QyYyNTU7Qz1DPj44O2FbcisyfDBdPUMmMjU1O0M9Qz4+ODthW3IrM3wwXT1DJjI1
NTtiWltjWyhjW2U+PjJdfDApKzMyPj4yXSYxMjddKHMsUSk7cj1sO2lmKChhW3JdJjEpPT0wKXth
W2wrMXwwXT0wO2Fbcl09MH1lbHNle2FbY1tsKzg+PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9ZCQobCww
KTtjW3I+PjJdPWNbdD4+Ml07Y1tyKzQ+PjJdPWNbdCs0Pj4yXTtjW3IrOD4+Ml09Y1t0Kzg+PjJd
O2skKHR8MCwwLDEyKTtkUChzKX1lbHNle2JaW2NbUis0MD4+Ml0mMTI3XSh2LFEpO3Y9ZjtDPWNb
dT4+Ml18MDthW3ZdPUMmMjU1O0M9Qz4+ODthW3YrMXwwXT1DJjI1NTtDPUM+Pjg7YVt2KzJ8MF09
QyYyNTU7Qz1DPj44O2FbdiszfDBdPUMmMjU1O2JaW2NbKGNbZT4+Ml18MCkrMjg+PjJdJjEyN10o
dyxRKTt2PWw7aWYoKGFbdl0mMSk9PTApe2FbbCsxfDBdPTA7YVt2XT0wfWVsc2V7YVtjW2wrOD4+
Ml18MF09MDtjW2wrND4+Ml09MH1kJChsLDApO2Nbdj4+Ml09Y1t4Pj4yXTtjW3YrND4+Ml09Y1t4
KzQ+PjJdO2Nbdis4Pj4yXT1jW3grOD4+Ml07ayQoeHwwLDAsMTIpO2RQKHcpfXc9ZTthW2ddPWIw
W2NbKGNbdz4+Ml18MCkrMTI+PjJdJjEyN10oUSl8MDthW2hdPWIwW2NbKGNbdz4+Ml18MCkrMTY+
PjJdJjEyN10oUSl8MDt3PWU7YlpbY1soY1t3Pj4yXXwwKSsyMD4+Ml0mMTI3XSh5LFEpO3g9ajtp
ZigoYVt4XSYxKT09MCl7YVtqKzF8MF09MDthW3hdPTB9ZWxzZXthW2Nbais4Pj4yXXwwXT0wO2Nb
ais0Pj4yXT0wfWQkKGosMCk7Y1t4Pj4yXT1jW3o+PjJdO2NbeCs0Pj4yXT1jW3orND4+Ml07Y1t4
Kzg+PjJdPWNbeis4Pj4yXTtrJCh6fDAsMCwxMik7ZFAoeSk7YlpbY1soY1t3Pj4yXXwwKSsyND4+
Ml0mMTI3XShBLFEpO3c9aztpZigoYVt3XSYxKT09MCl7YVtrKzF8MF09MDthW3ddPTB9ZWxzZXth
W2Nbays4Pj4yXXwwXT0wO2Nbays0Pj4yXT0wfWQkKGssMCk7Y1t3Pj4yXT1jW0I+PjJdO2Nbdys0
Pj4yXT1jW0IrND4+Ml07Y1t3Kzg+PjJdPWNbQis4Pj4yXTtrJChCfDAsMCwxMik7ZFAoQSk7Uz1i
MFtjWyhjW2U+PjJdfDApKzM2Pj4yXSYxMjddKFEpfDA7Y1ttPj4yXT1TO2k9bjtyZXR1cm59ZWxz
ZXtpZigoY1s0MDQ2XXwwKSE9LTEpe2Nbbz4+Ml09MTYxODQ7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4y
XT0wO2RXKDE2MTg0LG8sOTYpfW89KGNbNDA0N118MCktMXwwO1E9Y1tQKzg+PjJdfDA7aWYoKGNb
UCsxMj4+Ml18MCktUT4+Mj4+PjA8PW8+Pj4wKXtUPWJPKDQpfDA7VT1UO2txKFUpO2JsKFR8MCw4
MTc2LDEzNCl9UD1jW1ErKG88PDIpPj4yXXwwO2lmKChQfDApPT0wKXtUPWJPKDQpfDA7VT1UO2tx
KFUpO2JsKFR8MCw4MTc2LDEzNCl9VD1QO1U9Y1tQPj4yXXwwO2lmKGQpe2JaW2NbVSs0ND4+Ml0m
MTI3XShFLFQpO0U9ZjtDPWNbRD4+Ml18MDthW0VdPUMmMjU1O0M9Qz4+ODthW0UrMXwwXT1DJjI1
NTtDPUM+Pjg7YVtFKzJ8MF09QyYyNTU7Qz1DPj44O2FbRSszfDBdPUMmMjU1O2JaW2NbKGNbUD4+
Ml18MCkrMzI+PjJdJjEyN10oRixUKTtFPWw7aWYoKGFbRV0mMSk9PTApe2FbbCsxfDBdPTA7YVtF
XT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChsLDApO2NbRT4+Ml09Y1tH
Pj4yXTtjW0UrND4+Ml09Y1tHKzQ+PjJdO2NbRSs4Pj4yXT1jW0crOD4+Ml07ayQoR3wwLDAsMTIp
O2RQKEYpfWVsc2V7YlpbY1tVKzQwPj4yXSYxMjddKEksVCk7ST1mO0M9Y1tIPj4yXXwwO2FbSV09
QyYyNTU7Qz1DPj44O2FbSSsxfDBdPUMmMjU1O0M9Qz4+ODthW0krMnwwXT1DJjI1NTtDPUM+Pjg7
YVtJKzN8MF09QyYyNTU7YlpbY1soY1tQPj4yXXwwKSsyOD4+Ml0mMTI3XShKLFQpO0k9bDtpZigo
YVtJXSYxKT09MCl7YVtsKzF8MF09MDthW0ldPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0
Pj4yXT0wfWQkKGwsMCk7Y1tJPj4yXT1jW0s+PjJdO2NbSSs0Pj4yXT1jW0srND4+Ml07Y1tJKzg+
PjJdPWNbSys4Pj4yXTtrJChLfDAsMCwxMik7ZFAoSil9Sj1QO2FbZ109YjBbY1soY1tKPj4yXXww
KSsxMj4+Ml0mMTI3XShUKXwwO2FbaF09YjBbY1soY1tKPj4yXXwwKSsxNj4+Ml0mMTI3XShUKXww
O0o9UDtiWltjWyhjW0o+PjJdfDApKzIwPj4yXSYxMjddKEwsVCk7aD1qO2lmKChhW2hdJjEpPT0w
KXthW2orMXwwXT0wO2FbaF09MH1lbHNle2FbY1tqKzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQo
aiwwKTtjW2g+PjJdPWNbTT4+Ml07Y1toKzQ+PjJdPWNbTSs0Pj4yXTtjW2grOD4+Ml09Y1tNKzg+
PjJdO2skKE18MCwwLDEyKTtkUChMKTtiWltjWyhjW0o+PjJdfDApKzI0Pj4yXSYxMjddKE4sVCk7
Sj1rO2lmKChhW0pdJjEpPT0wKXthW2srMXwwXT0wO2FbSl09MH1lbHNle2FbY1trKzg+PjJdfDBd
PTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW0o+PjJdPWNbTz4+Ml07Y1tKKzQ+PjJdPWNbTys0Pj4y
XTtjW0orOD4+Ml09Y1tPKzg+PjJdO2skKE98MCwwLDEyKTtkUChOKTtTPWIwW2NbKGNbUD4+Ml18
MCkrMzY+PjJdJjEyN10oVCl8MDtjW20+PjJdPVM7aT1uO3JldHVybn19ZnVuY3Rpb24gaDYoZCxl
LGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIpe2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO249bnwwO289b3wwO3A9cHwwO3E9cXwwO3I9
cnwwO3ZhciBzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxF
PTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9
MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0w
LGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxh
cD0wLGFxPTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxhdj0wLGF3PTAsYXg9MCxheT0wO2NbZj4+Ml09
ZDtzPWo7dD1xO3U9cSsxfDA7dj1xKzh8MDt3PXErNHwwO3E9cDt4PShnJjUxMnwwKT09MDt5PXAr
MXwwO3o9cCs0fDA7QT1wKzh8MDtwPWorOHwwO0I9KHJ8MCk+MDtDPW87RD1vKzF8MDtFPW8rOHww
O0Y9bys0fDA7bz0tcnwwO0c9aDtoPTA7d2hpbGUoMSl7TDE1ODA6ZG97c3dpdGNoKGFbbCtofDBd
fDApe2Nhc2UgMDp7Y1tlPj4yXT1jW2Y+PjJdO0g9RzticmVha307Y2FzZSAxOntjW2U+PjJdPWNb
Zj4+Ml07ST1iX1tjWyhjW3M+PjJdfDApKzI4Pj4yXSYzMV0oaiwzMil8MDtKPWNbZj4+Ml18MDtj
W2Y+PjJdPUorMTthW0pdPUk7SD1HO2JyZWFrfTtjYXNlIDM6e0k9YVt0XXwwO0o9SSYyNTU7aWYo
KEomMXwwKT09MCl7Sz1KPj4+MX1lbHNle0s9Y1t3Pj4yXXwwfWlmKChLfDApPT0wKXtIPUc7YnJl
YWsgTDE1ODB9aWYoKEkmMSk9PTApe0w9dX1lbHNle0w9Y1t2Pj4yXXwwfUk9YVtMXXwwO0o9Y1tm
Pj4yXXwwO2NbZj4+Ml09SisxO2FbSl09STtIPUc7YnJlYWt9O2Nhc2UgMjp7ST1hW3FdfDA7Sj1J
JjI1NTtNPShKJjF8MCk9PTA7aWYoTSl7Tj1KPj4+MX1lbHNle049Y1t6Pj4yXXwwfWlmKChOfDAp
PT0wfHgpe0g9RzticmVhayBMMTU4MH1pZigoSSYxKT09MCl7Tz15O1A9eX1lbHNle0k9Y1tBPj4y
XXwwO089STtQPUl9aWYoTSl7UT1KPj4+MX1lbHNle1E9Y1t6Pj4yXXwwfUo9TytRfDA7TT1jW2Y+
PjJdfDA7aWYoKFB8MCk9PShKfDApKXtSPU19ZWxzZXtJPVA7Uz1NO3doaWxlKDEpe2FbU109YVtJ
XXwwO009SSsxfDA7VD1TKzF8MDtpZigoTXwwKT09KEp8MCkpe1I9VDticmVha31lbHNle0k9TTtT
PVR9fX1jW2Y+PjJdPVI7SD1HO2JyZWFrfTtjYXNlIDQ6e1M9Y1tmPj4yXXwwO0k9az9HKzF8MDpH
O0o9STt3aGlsZSgxKXtpZihKPj4+MD49aT4+PjApe2JyZWFrfVQ9YVtKXXwwO2lmKFQ8PDI0Pj4y
NDw9LTEpe2JyZWFrfWlmKChiWyhjW3A+PjJdfDApKyhUPDwyND4+MjQ8PDEpPj4xXSYyMDQ4KT09
MCl7YnJlYWt9ZWxzZXtKPUorMXwwfX1UPUo7aWYoQil7aWYoSj4+PjA+ST4+PjApe009SSsoLVR8
MCl8MDtUPU0+Pj4wPG8+Pj4wP286TTtNPVQrcnwwO1U9SjtWPXI7Vz1TO3doaWxlKDEpe1g9VS0x
fDA7WT1hW1hdfDA7Y1tmPj4yXT1XKzE7YVtXXT1ZO1k9Vi0xfDA7Wj0oWXwwKT4wO2lmKCEoWD4+
PjA+ST4+PjAmWikpe2JyZWFrfVU9WDtWPVk7Vz1jW2Y+PjJdfDB9Vz1KK1R8MDtpZihaKXtfPU07
JD1XO2FhPTEzNTR9ZWxzZXthYj0wO2FjPU07YWQ9V319ZWxzZXtfPXI7JD1KO2FhPTEzNTR9aWYo
KGFhfDApPT0xMzU0KXthYT0wO2FiPWJfW2NbKGNbcz4+Ml18MCkrMjg+PjJdJjMxXShqLDQ4KXww
O2FjPV87YWQ9JH1XPWNbZj4+Ml18MDtjW2Y+PjJdPVcrMTtpZigoYWN8MCk+MCl7Vj1hYztVPVc7
d2hpbGUoMSl7YVtVXT1hYjtZPVYtMXwwO1g9Y1tmPj4yXXwwO2NbZj4+Ml09WCsxO2lmKChZfDAp
PjApe1Y9WTtVPVh9ZWxzZXthZT1YO2JyZWFrfX19ZWxzZXthZT1XfWFbYWVdPW07YWY9YWR9ZWxz
ZXthZj1KfWlmKChhZnwwKT09KEl8MCkpe1U9Yl9bY1soY1tzPj4yXXwwKSsyOD4+Ml0mMzFdKGos
NDgpfDA7Vj1jW2Y+PjJdfDA7Y1tmPj4yXT1WKzE7YVtWXT1VfWVsc2V7VT1hW0NdfDA7Vj1VJjI1
NTtpZigoViYxfDApPT0wKXthZz1WPj4+MX1lbHNle2FnPWNbRj4+Ml18MH1pZigoYWd8MCk9PTAp
e2FoPWFmO2FpPTA7YWo9MDthaz0tMX1lbHNle2lmKChVJjEpPT0wKXthbD1EfWVsc2V7YWw9Y1tF
Pj4yXXwwfWFoPWFmO2FpPTA7YWo9MDthaz1hW2FsXXwwfXdoaWxlKDEpe2Rve2lmKChhaXwwKT09
KGFrfDApKXtVPWNbZj4+Ml18MDtjW2Y+PjJdPVUrMTthW1VdPW47VT1haisxfDA7Vj1hW0NdfDA7
TT1WJjI1NTtpZigoTSYxfDApPT0wKXthbT1NPj4+MX1lbHNle2FtPWNbRj4+Ml18MH1pZihVPj4+
MD49YW0+Pj4wKXthbj1hazthbz1VO2FwPTA7YnJlYWt9TT0oViYxKT09MDtpZihNKXthcT1EfWVs
c2V7YXE9Y1tFPj4yXXwwfWlmKChhW2FxK1V8MF18MCk9PTEyNyl7YW49LTE7YW89VTthcD0wO2Jy
ZWFrfWlmKE0pe2FyPUR9ZWxzZXthcj1jW0U+PjJdfDB9YW49YVthcitVfDBdfDA7YW89VTthcD0w
fWVsc2V7YW49YWs7YW89YWo7YXA9YWl9fXdoaWxlKDApO1U9YWgtMXwwO009YVtVXXwwO1Y9Y1tm
Pj4yXXwwO2NbZj4+Ml09VisxO2FbVl09TTtpZigoVXwwKT09KEl8MCkpe2JyZWFrfWVsc2V7YWg9
VTthaT1hcCsxfDA7YWo9YW87YWs9YW59fX1KPWNbZj4+Ml18MDtpZigoU3wwKT09KEp8MCkpe0g9
STticmVhayBMMTU4MH1XPUotMXwwO2lmKFM+Pj4wPFc+Pj4wKXthcz1TO2F0PVd9ZWxzZXtIPUk7
YnJlYWsgTDE1ODB9d2hpbGUoMSl7Vz1hW2FzXXwwO2FbYXNdPWFbYXRdfDA7YVthdF09VztXPWFz
KzF8MDtKPWF0LTF8MDtpZihXPj4+MDxKPj4+MCl7YXM9VzthdD1KfWVsc2V7SD1JO2JyZWFrfX1i
cmVha307ZGVmYXVsdDp7SD1HfX19d2hpbGUoMCk7ST1oKzF8MDtpZihJPj4+MDw0KXtHPUg7aD1J
fWVsc2V7YnJlYWt9fWg9YVt0XXwwO3Q9aCYyNTU7SD0odCYxfDApPT0wO2lmKEgpe2F1PXQ+Pj4x
fWVsc2V7YXU9Y1t3Pj4yXXwwfWlmKGF1Pj4+MD4xKXtpZigoaCYxKT09MCl7YXY9dTthdz11fWVs
c2V7dT1jW3Y+PjJdfDA7YXY9dTthdz11fWlmKEgpe2F4PXQ+Pj4xfWVsc2V7YXg9Y1t3Pj4yXXww
fXc9YXYrYXh8MDtheD1jW2Y+PjJdfDA7YXY9YXcrMXwwO2lmKChhdnwwKT09KHd8MCkpe2F5PWF4
fWVsc2V7YXc9YXg7YXg9YXY7d2hpbGUoMSl7YVthd109YVtheF18MDthdj1hdysxfDA7dD1heCsx
fDA7aWYoKHR8MCk9PSh3fDApKXtheT1hdjticmVha31lbHNle2F3PWF2O2F4PXR9fX1jW2Y+PjJd
PWF5fXN3aXRjaChnJjE3NnwwKXtjYXNlIDE2OntyZXR1cm59O2Nhc2UgMzI6e2NbZT4+Ml09Y1tm
Pj4yXTtyZXR1cm59O2RlZmF1bHQ6e2NbZT4+Ml09ZDtyZXR1cm59fX1mdW5jdGlvbiBoNyhhKXth
PWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBoOChhKXthPWF8MDtkZShhfDApO3Jl
dHVybn1mdW5jdGlvbiBoOShiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9
MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wO2U9aTtpPWkrNjR8MDtsPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZXwwO209ZSsxNnwwO249ZSsy
NHwwO289ZSszMnwwO3A9ZSs0MHwwO3E9ZSs0OHwwO3I9cTtzPWk7aT1pKzEyfDA7aT1pKzc+PjM8
PDM7dD1zO3U9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7eD1pO2k9aSsxMDB8MDtpPWkrNz4+Mzw8Mzt5PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt6PWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztlaihtLGgpO0I9bXww
O0M9Y1tCPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tsPj4yXT0xNTY5NjtjW2wrND4+Ml09
MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0oY1szOTI1XXwwKS0xfDA7RD1jW0MrOD4+
Ml18MDtkb3tpZigoY1tDKzEyPj4yXXwwKS1EPj4yPj4+MD5sPj4+MCl7RT1jW0QrKGw8PDIpPj4y
XXwwO2lmKChFfDApPT0wKXticmVha31GPUU7Rz1rO0g9aztJPWFbSF18MDtKPUkmMjU1O2lmKChK
JjF8MCk9PTApe0s9Sj4+PjF9ZWxzZXtLPWNbays0Pj4yXXwwfWlmKChLfDApPT0wKXtMPTB9ZWxz
ZXtpZigoSSYxKT09MCl7TT1HKzF8MH1lbHNle009Y1trKzg+PjJdfDB9ST1hW01dfDA7TD1JPDwy
ND4+MjQ9PShiX1tjWyhjW0U+PjJdfDApKzI4Pj4yXSYzMV0oRiw0NSl8MCk8PDI0Pj4yNH1rJChy
fDAsMCwxMik7ayQodHwwLDAsMTIpO2skKHZ8MCwwLDEyKTtoNShnLEwsbSxuLG8scCxxLHMsdSx3
KTtFPXh8MDtJPWFbSF18MDtKPUkmMjU1O049KEomMXwwKT09MDtpZihOKXtPPUo+Pj4xfWVsc2V7
Tz1jW2srND4+Ml18MH1QPWNbdz4+Ml18MDtpZigoT3wwKT4oUHwwKSl7aWYoTil7UT1KPj4+MX1l
bHNle1E9Y1trKzQ+PjJdfDB9Sj1kW3ZdfDA7aWYoKEomMXwwKT09MCl7Uj1KPj4+MX1lbHNle1I9
Y1t1KzQ+PjJdfDB9Sj1kW3RdfDA7aWYoKEomMXwwKT09MCl7Uz1KPj4+MX1lbHNle1M9Y1tzKzQ+
PjJdfDB9VD0oUS1QPDwxfDEpK1IrU3wwfWVsc2V7Sj1kW3ZdfDA7aWYoKEomMXwwKT09MCl7VT1K
Pj4+MX1lbHNle1U9Y1t1KzQ+PjJdfDB9Sj1kW3RdfDA7aWYoKEomMXwwKT09MCl7Vj1KPj4+MX1l
bHNle1Y9Y1tzKzQ+PjJdfDB9VD1VKzIrVnwwfUo9VCtQfDA7ZG97aWYoSj4+PjA+MTAwKXtOPWtK
KEopfDA7aWYoKE58MCkhPTApe1c9TjtYPU47WT1JO2JyZWFrfWtYKCk7Vz0wO1g9MDtZPWFbSF18
MH1lbHNle1c9RTtYPTA7WT1JfX13aGlsZSgwKTtpZigoWSYxKT09MCl7Wj1HKzF8MDtfPUcrMXww
fWVsc2V7ST1jW2srOD4+Ml18MDtaPUk7Xz1JfUk9WSYyNTU7aWYoKEkmMXwwKT09MCl7JD1JPj4+
MX1lbHNleyQ9Y1trKzQ+PjJdfDB9aDYoVyx5LHosY1toKzQ+PjJdfDAsXyxaKyR8MCxGLEwsbixh
W29dfDAsYVtwXXwwLHEscyx1LFApO2NbQT4+Ml09Y1tmPj4yXTtmOShiLEEsVyxjW3k+PjJdfDAs
Y1t6Pj4yXXwwLGgsaik7aWYoKFh8MCk9PTApe2RQKHUpO2RQKHMpO2RQKHEpO2FhPWNbQj4+Ml18
MDthYj1hYXwwO2FjPWR6KGFiKXwwO2k9ZTtyZXR1cm59a0soWCk7ZFAodSk7ZFAocyk7ZFAocSk7
YWE9Y1tCPj4yXXwwO2FiPWFhfDA7YWM9ZHooYWIpfDA7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1i
Tyg0KXwwO2txKGUpO2JsKGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaWEoYixlLGYsZyxqLGssbCl7
Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7az1rfDA7bD0rbDt2YXIgbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxE
PTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9
MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MDtlPWk7aT1pKzU3NnwwO209ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1lfDA7bj1lKzEyMHwwO289ZSs1Mjh8MDtwPWUr
NTM2fDA7cT1lKzU0NHwwO3I9ZSs1NTJ8MDtzPWUrNTYwfDA7dD1zO3U9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8Mzt2PXU7dz1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3g9dzt5PWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8Mzt6PWk7aT1pKzQwMHwwO0E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0I9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO0M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0Q9ZSsxNnwwO2Nbbj4+Ml09RDtF
PWUrMTI4fDA7Rj1hWihEfDAsMTAwLDEzNjAsKEQ9aSxpPWkrOHwwLGhbRD4+M109bCxEKXwwKXww
O2k9RDtkb3tpZihGPj4+MD45OSl7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtHPWdoKG4sY1sy
OTU4XXwwLDEzNjAsKEQ9aSxpPWkrOHwwLGhbRD4+M109bCxEKXwwKXwwO2k9RDtIPWNbbj4+Ml18
MDtpZigoSHwwKT09MCl7a1goKTtJPWNbbj4+Ml18MH1lbHNle0k9SH1IPWtKKEc8PDIpfDA7Sj1I
O2lmKChIfDApIT0wKXtLPUo7TD1HO009STtOPUo7YnJlYWt9a1goKTtLPUo7TD1HO009STtOPUp9
ZWxzZXtLPUU7TD1GO009MDtOPTB9fXdoaWxlKDApO2VqKG8saik7Rj1vfDA7RT1jW0Y+PjJdfDA7
aWYoKGNbMzkyMl18MCkhPS0xKXtjW20+PjJdPTE1Njg4O2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09
MDtkVygxNTY4OCxtLDk2KX1tPShjWzM5MjNdfDApLTF8MDtJPWNbRSs4Pj4yXXwwO2Rve2lmKChj
W0UrMTI+PjJdfDApLUk+PjI+Pj4wPm0+Pj4wKXtEPWNbSSsobTw8Mik+PjJdfDA7aWYoKER8MCk9
PTApe2JyZWFrfUo9RDtHPWNbbj4+Ml18MDtIPUcrTHwwO089Y1soY1tEPj4yXXwwKSs0OD4+Ml18
MDtjYVtPJjE1XShKLEcsSCxLKXwwO2lmKChMfDApPT0wKXtQPTB9ZWxzZXtQPShhW2Nbbj4+Ml18
MF18MCk9PTQ1fWskKHR8MCwwLDEyKTtrJCh2fDAsMCwxMik7ayQoeHwwLDAsMTIpO2liKGcsUCxv
LHAscSxyLHMsdSx3LHkpO0g9enwwO0c9Y1t5Pj4yXXwwO2lmKChMfDApPihHfDApKXtPPWRbeF18
MDtpZigoTyYxfDApPT0wKXtRPU8+Pj4xfWVsc2V7UT1jW3crND4+Ml18MH1PPWRbdl18MDtpZigo
TyYxfDApPT0wKXtSPU8+Pj4xfWVsc2V7Uj1jW3UrND4+Ml18MH1TPShMLUc8PDF8MSkrUStSfDB9
ZWxzZXtPPWRbeF18MDtpZigoTyYxfDApPT0wKXtUPU8+Pj4xfWVsc2V7VD1jW3crND4+Ml18MH1P
PWRbdl18MDtpZigoTyYxfDApPT0wKXtVPU8+Pj4xfWVsc2V7VT1jW3UrND4+Ml18MH1TPVQrMitV
fDB9Tz1TK0d8MDtkb3tpZihPPj4+MD4xMDApe0Q9a0ooTzw8Mil8MDtWPUQ7aWYoKER8MCkhPTAp
e1c9VjtYPVY7YnJlYWt9a1goKTtXPVY7WD1WfWVsc2V7Vz1IO1g9MH19d2hpbGUoMCk7aWMoVyxB
LEIsY1tqKzQ+PjJdfDAsSyxLKyhMPDwyKXwwLEosUCxwLGNbcT4+Ml18MCxjW3I+PjJdfDAscyx1
LHcsRyk7Y1tDPj4yXT1jW2Y+PjJdO2dxKGIsQyxXLGNbQT4+Ml18MCxjW0I+PjJdfDAsaixrKTtp
ZigoWHwwKSE9MCl7a0soWCl9ZWUodyk7ZWUodSk7ZFAocyk7SD1jW0Y+PjJdfDA7ZHooSCl8MDtp
ZigoTnwwKSE9MCl7a0soTil9aWYoKE18MCk9PTApe2k9ZTtyZXR1cm59a0soTSk7aT1lO3JldHVy
bn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2JsKGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaWIo
YixkLGUsZixnLGgsaixrLGwsbSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9
MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wO249aTtpPWkrNDB8
MDtvPW58MDtwPW4rMTZ8MDtxPW4rMzJ8MDtyPXE7cz1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Q9
czt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3g9
dzt5PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7ej15O0E9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztC
PUE7RD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RT1EO0Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztH
PUY7SD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ST1IO0o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztL
PUo7TD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO009TDtOPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7
Tz1OO1A9Y1tlPj4yXXwwO2lmKGIpe2lmKChjWzQwNDBdfDApIT0tMSl7Y1twPj4yXT0xNjE2MDtj
W3ArND4+Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTYxNjAscCw5Nil9cD0oY1s0MDQxXXwwKS0xfDA7
Yj1jW1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1iPj4yPj4+MDw9cD4+PjApe1E9Yk8oNCl8
MDtSPVE7a3EoUik7YmwoUXwwLDgxNzYsMTM0KX1lPWNbYisocDw8Mik+PjJdfDA7aWYoKGV8MCk9
PTApe1E9Yk8oNCl8MDtSPVE7a3EoUik7YmwoUXwwLDgxNzYsMTM0KX1RPWU7Uj1jW2U+PjJdfDA7
aWYoZCl7YlpbY1tSKzQ0Pj4yXSYxMjddKHIsUSk7cj1mO0M9Y1txPj4yXXwwO2Fbcl09QyYyNTU7
Qz1DPj44O2FbcisxfDBdPUMmMjU1O0M9Qz4+ODthW3IrMnwwXT1DJjI1NTtDPUM+Pjg7YVtyKzN8
MF09QyYyNTU7YlpbY1soY1tlPj4yXXwwKSszMj4+Ml0mMTI3XShzLFEpO3I9bDtpZigoYVtyXSYx
KT09MCl7Y1tsKzQ+PjJdPTA7YVtyXT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJd
PTB9ZXoobCwwKTtjW3I+PjJdPWNbdD4+Ml07Y1tyKzQ+PjJdPWNbdCs0Pj4yXTtjW3IrOD4+Ml09
Y1t0Kzg+PjJdO2skKHR8MCwwLDEyKTtlZShzKX1lbHNle2JaW2NbUis0MD4+Ml0mMTI3XSh2LFEp
O3Y9ZjtDPWNbdT4+Ml18MDthW3ZdPUMmMjU1O0M9Qz4+ODthW3YrMXwwXT1DJjI1NTtDPUM+Pjg7
YVt2KzJ8MF09QyYyNTU7Qz1DPj44O2FbdiszfDBdPUMmMjU1O2JaW2NbKGNbZT4+Ml18MCkrMjg+
PjJdJjEyN10odyxRKTt2PWw7aWYoKGFbdl0mMSk9PTApe2NbbCs0Pj4yXT0wO2Fbdl09MH1lbHNl
e2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1t2Pj4yXT1jW3g+PjJdO2Nb
dis0Pj4yXT1jW3grND4+Ml07Y1t2Kzg+PjJdPWNbeCs4Pj4yXTtrJCh4fDAsMCwxMik7ZWUodyl9
dz1lO2NbZz4+Ml09YjBbY1soY1t3Pj4yXXwwKSsxMj4+Ml0mMTI3XShRKXwwO2NbaD4+Ml09YjBb
Y1soY1t3Pj4yXXwwKSsxNj4+Ml0mMTI3XShRKXwwO2JaW2NbKGNbZT4+Ml18MCkrMjA+PjJdJjEy
N10oeSxRKTt4PWo7aWYoKGFbeF0mMSk9PTApe2FbaisxfDBdPTA7YVt4XT0wfWVsc2V7YVtjW2or
OD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbeD4+Ml09Y1t6Pj4yXTtjW3grND4+Ml09
Y1t6KzQ+PjJdO2NbeCs4Pj4yXT1jW3orOD4+Ml07ayQoenwwLDAsMTIpO2RQKHkpO2JaW2NbKGNb
ZT4+Ml18MCkrMjQ+PjJdJjEyN10oQSxRKTtlPWs7aWYoKGFbZV0mMSk9PTApe2Nbays0Pj4yXT0w
O2FbZV09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6KGssMCk7Y1tlPj4y
XT1jW0I+PjJdO2NbZSs0Pj4yXT1jW0IrND4+Ml07Y1tlKzg+PjJdPWNbQis4Pj4yXTtrJChCfDAs
MCwxMik7ZWUoQSk7Uz1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKFEpfDA7Y1ttPj4yXT1T
O2k9bjtyZXR1cm59ZWxzZXtpZigoY1s0MDQyXXwwKSE9LTEpe2Nbbz4+Ml09MTYxNjg7Y1tvKzQ+
PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE2MTY4LG8sOTYpfW89KGNbNDA0M118MCktMXwwO1E9Y1tQ
Kzg+PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktUT4+Mj4+PjA8PW8+Pj4wKXtUPWJPKDQpfDA7VT1U
O2txKFUpO2JsKFR8MCw4MTc2LDEzNCl9UD1jW1ErKG88PDIpPj4yXXwwO2lmKChQfDApPT0wKXtU
PWJPKDQpfDA7VT1UO2txKFUpO2JsKFR8MCw4MTc2LDEzNCl9VD1QO1U9Y1tQPj4yXXwwO2lmKGQp
e2JaW2NbVSs0ND4+Ml0mMTI3XShFLFQpO0U9ZjtDPWNbRD4+Ml18MDthW0VdPUMmMjU1O0M9Qz4+
ODthW0UrMXwwXT1DJjI1NTtDPUM+Pjg7YVtFKzJ8MF09QyYyNTU7Qz1DPj44O2FbRSszfDBdPUMm
MjU1O2JaW2NbKGNbUD4+Ml18MCkrMzI+PjJdJjEyN10oRixUKTtFPWw7aWYoKGFbRV0mMSk9PTAp
e2NbbCs0Pj4yXT0wO2FbRV09MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6
KGwsMCk7Y1tFPj4yXT1jW0c+PjJdO2NbRSs0Pj4yXT1jW0crND4+Ml07Y1tFKzg+PjJdPWNbRys4
Pj4yXTtrJChHfDAsMCwxMik7ZWUoRil9ZWxzZXtiWltjW1UrNDA+PjJdJjEyN10oSSxUKTtJPWY7
Qz1jW0g+PjJdfDA7YVtJXT1DJjI1NTtDPUM+Pjg7YVtJKzF8MF09QyYyNTU7Qz1DPj44O2FbSSsy
fDBdPUMmMjU1O0M9Qz4+ODthW0krM3wwXT1DJjI1NTtiWltjWyhjW1A+PjJdfDApKzI4Pj4yXSYx
MjddKEosVCk7ST1sO2lmKChhW0ldJjEpPT0wKXtjW2wrND4+Ml09MDthW0ldPTB9ZWxzZXtjW2Nb
bCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2NbST4+Ml09Y1tLPj4yXTtjW0krND4+
Ml09Y1tLKzQ+PjJdO2NbSSs4Pj4yXT1jW0srOD4+Ml07ayQoS3wwLDAsMTIpO2VlKEopfUo9UDtj
W2c+PjJdPWIwW2NbKGNbSj4+Ml18MCkrMTI+PjJdJjEyN10oVCl8MDtjW2g+PjJdPWIwW2NbKGNb
Sj4+Ml18MCkrMTY+PjJdJjEyN10oVCl8MDtiWltjWyhjW1A+PjJdfDApKzIwPj4yXSYxMjddKEws
VCk7aD1qO2lmKChhW2hdJjEpPT0wKXthW2orMXwwXT0wO2FbaF09MH1lbHNle2FbY1tqKzg+PjJd
fDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW2g+PjJdPWNbTT4+Ml07Y1toKzQ+PjJdPWNbTSs0
Pj4yXTtjW2grOD4+Ml09Y1tNKzg+PjJdO2skKE18MCwwLDEyKTtkUChMKTtiWltjWyhjW1A+PjJd
fDApKzI0Pj4yXSYxMjddKE4sVCk7UD1rO2lmKChhW1BdJjEpPT0wKXtjW2srND4+Ml09MDthW1Bd
PTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2srND4+Ml09MH1leihrLDApO2NbUD4+Ml09Y1tP
Pj4yXTtjW1ArND4+Ml09Y1tPKzQ+PjJdO2NbUCs4Pj4yXT1jW08rOD4+Ml07ayQoT3wwLDAsMTIp
O2VlKE4pO1M9YjBbY1soY1tKPj4yXXwwKSszNj4+Ml0mMTI3XShUKXwwO2NbbT4+Ml09UztpPW47
cmV0dXJufX1mdW5jdGlvbiBpYyhiLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1t
fDA7bj1ufDA7bz1vfDA7cD1wfDA7cT1xfDA7dmFyIHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAs
Xz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0w
LGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxh
dj0wLGF3PTA7Y1tlPj4yXT1iO3I9aTtzPXA7dD1wKzR8MDt1PXArOHwwO3A9bzt2PShmJjUxMnww
KT09MDt3PW8rNHwwO3g9bys4fDA7bz1pO3k9KHF8MCk+MDt6PW47QT1uKzF8MDtCPW4rOHwwO0M9
bis0fDA7bj1nO2c9MDt3aGlsZSgxKXtMMTkwMTpkb3tzd2l0Y2goYVtrK2d8MF18MCl7Y2FzZSAw
OntjW2Q+PjJdPWNbZT4+Ml07RD1uO2JyZWFrfTtjYXNlIDE6e2NbZD4+Ml09Y1tlPj4yXTtFPWJf
W2NbKGNbcj4+Ml18MCkrNDQ+PjJdJjMxXShpLDMyKXwwO0Y9Y1tlPj4yXXwwO2NbZT4+Ml09Ris0
O2NbRj4+Ml09RTtEPW47YnJlYWt9O2Nhc2UgMzp7RT1hW3NdfDA7Rj1FJjI1NTtpZigoRiYxfDAp
PT0wKXtHPUY+Pj4xfWVsc2V7Rz1jW3Q+PjJdfDB9aWYoKEd8MCk9PTApe0Q9bjticmVhayBMMTkw
MX1pZigoRSYxKT09MCl7SD10fWVsc2V7SD1jW3U+PjJdfDB9RT1jW0g+PjJdfDA7Rj1jW2U+PjJd
fDA7Y1tlPj4yXT1GKzQ7Y1tGPj4yXT1FO0Q9bjticmVha307Y2FzZSAyOntFPWFbcF18MDtGPUUm
MjU1O0k9KEYmMXwwKT09MDtpZihJKXtKPUY+Pj4xfWVsc2V7Sj1jW3c+PjJdfDB9aWYoKEp8MCk9
PTB8dil7RD1uO2JyZWFrIEwxOTAxfWlmKChFJjEpPT0wKXtLPXc7TD13O009d31lbHNle0U9Y1t4
Pj4yXXwwO0s9RTtMPUU7TT1FfWlmKEkpe049Rj4+PjF9ZWxzZXtOPWNbdz4+Ml18MH1GPUsrKE48
PDIpfDA7ST1jW2U+PjJdfDA7aWYoKEx8MCk9PShGfDApKXtPPUl9ZWxzZXtFPShLKyhOLTE8PDIp
KygtTXwwKXwwKT4+PjI7UD1MO1E9STt3aGlsZSgxKXtjW1E+PjJdPWNbUD4+Ml07Uj1QKzR8MDtp
ZigoUnwwKT09KEZ8MCkpe2JyZWFrfVA9UjtRPVErNHwwfU89SSsoRSsxPDwyKXwwfWNbZT4+Ml09
TztEPW47YnJlYWt9O2Nhc2UgNDp7UT1jW2U+PjJdfDA7UD1qP24rNHwwOm47Rj1QO3doaWxlKDEp
e2lmKEY+Pj4wPj1oPj4+MCl7YnJlYWt9aWYoYjFbY1soY1tvPj4yXXwwKSsxMj4+Ml0mNjNdKGks
MjA0OCxjW0Y+PjJdfDApfDApe0Y9Ris0fDB9ZWxzZXticmVha319aWYoeSl7aWYoRj4+PjA+UD4+
PjApe0U9RjtJPXE7ZG97RT1FLTR8MDtSPWNbRT4+Ml18MDtTPWNbZT4+Ml18MDtjW2U+PjJdPVMr
NDtjW1M+PjJdPVI7ST1JLTF8MDtUPShJfDApPjA7fXdoaWxlKEU+Pj4wPlA+Pj4wJlQpO2lmKFQp
e1U9STtWPUU7Vz0xNjMwfWVsc2V7WD0wO1k9STtaPUV9fWVsc2V7VT1xO1Y9RjtXPTE2MzB9aWYo
KFd8MCk9PTE2MzApe1c9MDtYPWJfW2NbKGNbcj4+Ml18MCkrNDQ+PjJdJjMxXShpLDQ4KXwwO1k9
VTtaPVZ9Uj1jW2U+PjJdfDA7Y1tlPj4yXT1SKzQ7aWYoKFl8MCk+MCl7Uz1ZO189Ujt3aGlsZSgx
KXtjW18+PjJdPVg7JD1TLTF8MDthYT1jW2U+PjJdfDA7Y1tlPj4yXT1hYSs0O2lmKCgkfDApPjAp
e1M9JDtfPWFhfWVsc2V7YWI9YWE7YnJlYWt9fX1lbHNle2FiPVJ9Y1thYj4+Ml09bDthYz1afWVs
c2V7YWM9Rn1pZigoYWN8MCk9PShQfDApKXtfPWJfW2NbKGNbcj4+Ml18MCkrNDQ+PjJdJjMxXShp
LDQ4KXwwO1M9Y1tlPj4yXXwwO2NbZT4+Ml09Uys0O2NbUz4+Ml09X31lbHNle189YVt6XXwwO1M9
XyYyNTU7aWYoKFMmMXwwKT09MCl7YWQ9Uz4+PjF9ZWxzZXthZD1jW0M+PjJdfDB9aWYoKGFkfDAp
PT0wKXthZT1hYzthZj0wO2FnPTA7YWg9LTF9ZWxzZXtpZigoXyYxKT09MCl7YWk9QX1lbHNle2Fp
PWNbQj4+Ml18MH1hZT1hYzthZj0wO2FnPTA7YWg9YVthaV18MH13aGlsZSgxKXtkb3tpZigoYWZ8
MCk9PShhaHwwKSl7Xz1jW2U+PjJdfDA7Y1tlPj4yXT1fKzQ7Y1tfPj4yXT1tO189YWcrMXwwO1M9
YVt6XXwwO0U9UyYyNTU7aWYoKEUmMXwwKT09MCl7YWo9RT4+PjF9ZWxzZXthaj1jW0M+PjJdfDB9
aWYoXz4+PjA+PWFqPj4+MCl7YWs9YWg7YWw9XzthbT0wO2JyZWFrfUU9KFMmMSk9PTA7aWYoRSl7
YW49QX1lbHNle2FuPWNbQj4+Ml18MH1pZigoYVthbitffDBdfDApPT0xMjcpe2FrPS0xO2FsPV87
YW09MDticmVha31pZihFKXthbz1BfWVsc2V7YW89Y1tCPj4yXXwwfWFrPWFbYW8rX3wwXXwwO2Fs
PV87YW09MH1lbHNle2FrPWFoO2FsPWFnO2FtPWFmfX13aGlsZSgwKTtfPWFlLTR8MDtFPWNbXz4+
Ml18MDtTPWNbZT4+Ml18MDtjW2U+PjJdPVMrNDtjW1M+PjJdPUU7aWYoKF98MCk9PShQfDApKXti
cmVha31lbHNle2FlPV87YWY9YW0rMXwwO2FnPWFsO2FoPWFrfX19Rj1jW2U+PjJdfDA7aWYoKFF8
MCk9PShGfDApKXtEPVA7YnJlYWsgTDE5MDF9Uj1GLTR8MDtpZihRPj4+MDxSPj4+MCl7YXA9UTth
cT1SfWVsc2V7RD1QO2JyZWFrIEwxOTAxfXdoaWxlKDEpe1I9Y1thcD4+Ml18MDtjW2FwPj4yXT1j
W2FxPj4yXTtjW2FxPj4yXT1SO1I9YXArNHwwO0Y9YXEtNHwwO2lmKFI+Pj4wPEY+Pj4wKXthcD1S
O2FxPUZ9ZWxzZXtEPVA7YnJlYWt9fWJyZWFrfTtkZWZhdWx0OntEPW59fX13aGlsZSgwKTtQPWcr
MXwwO2lmKFA+Pj4wPDQpe249RDtnPVB9ZWxzZXticmVha319Zz1hW3NdfDA7cz1nJjI1NTtEPShz
JjF8MCk9PTA7aWYoRCl7YXI9cz4+PjF9ZWxzZXthcj1jW3Q+PjJdfDB9aWYoYXI+Pj4wPjEpe2lm
KChnJjEpPT0wKXthcz10O2F0PXQ7YXU9dH1lbHNle2c9Y1t1Pj4yXXwwO2FzPWc7YXQ9ZzthdT1n
fWlmKEQpe2F2PXM+Pj4xfWVsc2V7YXY9Y1t0Pj4yXXwwfXQ9YXMrKGF2PDwyKXwwO3M9Y1tlPj4y
XXwwO0Q9YXQrNHwwO2lmKChEfDApPT0odHwwKSl7YXc9c31lbHNle2F0PSgoYXMrKGF2LTI8PDIp
KygtYXV8MCl8MCk+Pj4yKSsxfDA7YXU9czthdj1EO3doaWxlKDEpe2NbYXU+PjJdPWNbYXY+PjJd
O0Q9YXYrNHwwO2lmKChEfDApPT0odHwwKSl7YnJlYWt9ZWxzZXthdT1hdSs0fDA7YXY9RH19YXc9
cysoYXQ8PDIpfDB9Y1tlPj4yXT1hd31zd2l0Y2goZiYxNzZ8MCl7Y2FzZSAzMjp7Y1tkPj4yXT1j
W2U+PjJdO3JldHVybn07Y2FzZSAxNjp7cmV0dXJufTtkZWZhdWx0OntjW2Q+PjJdPWI7cmV0dXJu
fX19ZnVuY3Rpb24gaWQoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaWUo
YSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaWcoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9
ZXwwO3ZhciBmPTA7aWYoKGFbZF0mMSk9PTApe2Y9ZCsxfDB9ZWxzZXtmPWNbZCs4Pj4yXXwwfWQ9
YTgoZnwwLDIwMCl8MDtyZXR1cm4gZD4+PigoKGR8MCkhPS0xfDApPj4+MCl8MH1mdW5jdGlvbiBp
aChiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8
MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxf
PTAsJD0wLGFhPTAsYWI9MCxhYz0wO2U9aTtpPWkrNjR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZXwwO209ZSsxNnwwO249ZSsyNHwwO289ZSszMnwwO3A9
ZSs0MHwwO3E9ZSs0OHwwO3I9cTtzPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dD1zO3U9aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7eD1pO2k9aSs0MDB8
MDt5PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztBPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztlaihtLGgpO0I9bXwwO0M9Y1tCPj4yXXwwO2lmKChjWzM5MjJdfDAp
IT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5
Nil9bD0oY1szOTIzXXwwKS0xfDA7RD1jW0MrOD4+Ml18MDtkb3tpZigoY1tDKzEyPj4yXXwwKS1E
Pj4yPj4+MD5sPj4+MCl7RT1jW0QrKGw8PDIpPj4yXXwwO2lmKChFfDApPT0wKXticmVha31GPUU7
Rz1rO0g9YVtHXXwwO0k9SCYyNTU7aWYoKEkmMXwwKT09MCl7Sj1JPj4+MX1lbHNle0o9Y1trKzQ+
PjJdfDB9aWYoKEp8MCk9PTApe0s9MH1lbHNle2lmKChIJjEpPT0wKXtMPWsrNHwwfWVsc2V7TD1j
W2srOD4+Ml18MH1IPWNbTD4+Ml18MDtLPShIfDApPT0oYl9bY1soY1tFPj4yXXwwKSs0ND4+Ml0m
MzFdKEYsNDUpfDApfWskKHJ8MCwwLDEyKTtrJCh0fDAsMCwxMik7ayQodnwwLDAsMTIpO2liKGcs
SyxtLG4sbyxwLHEscyx1LHcpO0U9eHwwO0g9YVtHXXwwO0k9SCYyNTU7TT0oSSYxfDApPT0wO2lm
KE0pe049ST4+PjF9ZWxzZXtOPWNbays0Pj4yXXwwfU89Y1t3Pj4yXXwwO2lmKChOfDApPihPfDAp
KXtpZihNKXtQPUk+Pj4xfWVsc2V7UD1jW2srND4+Ml18MH1JPWRbdl18MDtpZigoSSYxfDApPT0w
KXtRPUk+Pj4xfWVsc2V7UT1jW3UrND4+Ml18MH1JPWRbdF18MDtpZigoSSYxfDApPT0wKXtSPUk+
Pj4xfWVsc2V7Uj1jW3MrND4+Ml18MH1TPShQLU88PDF8MSkrUStSfDB9ZWxzZXtJPWRbdl18MDtp
ZigoSSYxfDApPT0wKXtUPUk+Pj4xfWVsc2V7VD1jW3UrND4+Ml18MH1JPWRbdF18MDtpZigoSSYx
fDApPT0wKXtVPUk+Pj4xfWVsc2V7VT1jW3MrND4+Ml18MH1TPVQrMitVfDB9ST1TK098MDtkb3tp
ZihJPj4+MD4xMDApe009a0ooSTw8Mil8MDtWPU07aWYoKE18MCkhPTApe1c9VjtYPVY7WT1IO2Jy
ZWFrfWtYKCk7Vz1WO1g9VjtZPWFbR118MH1lbHNle1c9RTtYPTA7WT1IfX13aGlsZSgwKTtpZigo
WSYxKT09MCl7Wj1rKzR8MDtfPWsrNHwwfWVsc2V7SD1jW2srOD4+Ml18MDtaPUg7Xz1IfUg9WSYy
NTU7aWYoKEgmMXwwKT09MCl7JD1IPj4+MX1lbHNleyQ9Y1trKzQ+PjJdfDB9aWMoVyx5LHosY1to
KzQ+PjJdfDAsXyxaKygkPDwyKXwwLEYsSyxuLGNbbz4+Ml18MCxjW3A+PjJdfDAscSxzLHUsTyk7
Y1tBPj4yXT1jW2Y+PjJdO2dxKGIsQSxXLGNbeT4+Ml18MCxjW3o+PjJdfDAsaCxqKTtpZigoWHww
KT09MCl7ZWUodSk7ZWUocyk7ZFAocSk7YWE9Y1tCPj4yXXwwO2FiPWFhfDA7YWM9ZHooYWIpfDA7
aT1lO3JldHVybn1rSyhYKTtlZSh1KTtlZShzKTtkUChxKTthYT1jW0I+PjJdfDA7YWI9YWF8MDth
Yz1keihhYil8MDtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgx
NzYsMTM0KX1mdW5jdGlvbiBpaShiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MDtkPWk7aT1pKzE2fDA7aj1kfDA7az1qO2skKGt8MCwwLDEyKTtsPWI7bT1oO249
YVtoXXwwO2lmKChuJjEpPT0wKXtvPW0rMXwwO3A9bSsxfDB9ZWxzZXttPWNbaCs4Pj4yXXwwO289
bTtwPW19bT1uJjI1NTtpZigobSYxfDApPT0wKXtxPW0+Pj4xfWVsc2V7cT1jW2grND4+Ml18MH1o
PW8rcXwwO2Rve2lmKHA+Pj4wPGg+Pj4wKXtxPXA7ZG97ZFUoaixhW3FdfDApO3E9cSsxfDA7fXdo
aWxlKHE+Pj4wPGg+Pj4wKTtxPShlfDApPT0tMT8tMTplPDwxO2lmKChhW2tdJjEpPT0wKXtyPXE7
cz0xNzYyO2JyZWFrfXQ9Y1tqKzg+PjJdfDA7dT1xfWVsc2V7cj0oZXwwKT09LTE/LTE6ZTw8MTtz
PTE3NjJ9fXdoaWxlKDApO2lmKChzfDApPT0xNzYyKXt0PWorMXwwO3U9cn1yPWJNKHV8MCxmfDAs
Z3wwLHR8MCl8MDtrJChsfDAsMCwxMik7bD1rMChyfDApfDA7dD1yK2x8MDtpZigobHwwKT4wKXt2
PXJ9ZWxzZXtkUChqKTtpPWQ7cmV0dXJufWRve2RVKGIsYVt2XXwwKTt2PXYrMXwwO313aGlsZSh2
Pj4+MDx0Pj4+MCk7ZFAoaik7aT1kO3JldHVybn1mdW5jdGlvbiBpaihhLGIpe2E9YXwwO2I9Ynww
O2ExKCgoYnwwKT09LTE/LTE6Yjw8MSl8MCl8MDtyZXR1cm59ZnVuY3Rpb24gaWsoYSl7YT1hfDA7
ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaWwoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59
ZnVuY3Rpb24gaW0oYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYoKGFbZF0mMSk9
PTApe2Y9ZCsxfDB9ZWxzZXtmPWNbZCs4Pj4yXXwwfWQ9YTgoZnwwLDIwMCl8MDtyZXR1cm4gZD4+
PigoKGR8MCkhPS0xfDApPj4+MCl8MH1mdW5jdGlvbiBpbyhhLGIpe2E9YXwwO2I9YnwwO2ExKCgo
YnwwKT09LTE/LTE6Yjw8MSl8MCl8MDtyZXR1cm59ZnVuY3Rpb24gaXAoYixkLGUsZixnLGgpe2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtkPWk7aT1pKzIyNHwwO2o9ZHwwO2s9ZCs4
fDA7bD1kKzQwfDA7bT1kKzQ4fDA7bj1kKzU2fDA7bz1kKzY0fDA7cD1kKzE5MnwwO3E9ZCsyMDB8
MDtyPWQrMjA4fDA7cz1yO3Q9aTtpPWkrOHwwO3U9aTtpPWkrOHwwO2skKHN8MCwwLDEyKTt2PWI7
dz10fDA7Y1t0KzQ+PjJdPTA7Y1t0Pj4yXT00MTA0O3g9YVtoXXwwO2lmKCh4JjEpPT0wKXt5PWgr
NHwwO3o9aCs0fDB9ZWxzZXtBPWNbaCs4Pj4yXXwwO3k9QTt6PUF9QT14JjI1NTtpZigoQSYxfDAp
PT0wKXtCPUE+Pj4xfWVsc2V7Qj1jW2grND4+Ml18MH1oPXkrKEI8PDIpfDA7TDIxMzU6ZG97aWYo
ej4+PjA8aD4+PjApe0I9dDt5PWt8MDtBPWsrMzJ8MDt4PXo7Qz00MTA0O3doaWxlKDEpe2NbbT4+
Ml09eDtEPShiNltjW0MrMTI+PjJdJjMxXSh3LGoseCxoLG0seSxBLGwpfDApPT0yO0U9Y1ttPj4y
XXwwO2lmKER8KEV8MCk9PSh4fDApKXticmVha31pZih5Pj4+MDwoY1tsPj4yXXwwKT4+PjApe0Q9
eTtkb3tkVShyLGFbRF18MCk7RD1EKzF8MDt9d2hpbGUoRD4+PjA8KGNbbD4+Ml18MCk+Pj4wKTtG
PWNbbT4+Ml18MH1lbHNle0Y9RX1pZihGPj4+MD49aD4+PjApe2JyZWFrIEwyMTM1fXg9RjtDPWNb
Qj4+Ml18MH1CPWJPKDgpfDA7ZEUoQiw5MDQpO2JsKEJ8MCw4MTkyLDIyKX19d2hpbGUoMCk7ZGUo
dHwwKTtpZigoYVtzXSYxKT09MCl7Rz1yKzF8MH1lbHNle0c9Y1tyKzg+PjJdfDB9cz1iTSgoKGV8
MCk9PS0xPy0xOmU8PDEpfDAsZnwwLGd8MCxHfDApfDA7ayQodnwwLDAsMTIpO3Y9dXwwO2NbdSs0
Pj4yXT0wO2NbdT4+Ml09NDA0ODtHPWswKHN8MCl8MDtnPXMrR3wwO2lmKChHfDApPDEpe0g9dXww
O2RlKEgpO2RQKHIpO2k9ZDtyZXR1cm59Rz11O2Y9ZztlPW98MDt0PW8rMTI4fDA7bz1zO3M9NDA0
ODt3aGlsZSgxKXtjW3E+PjJdPW87Rj0oYjZbY1tzKzE2Pj4yXSYzMV0odixuLG8sKGYtb3wwKT4z
Mj9vKzMyfDA6ZyxxLGUsdCxwKXwwKT09MjtoPWNbcT4+Ml18MDtpZihGfChofDApPT0ob3wwKSl7
YnJlYWt9aWYoZT4+PjA8KGNbcD4+Ml18MCk+Pj4wKXtGPWU7ZG97ZWgoYixjW0Y+PjJdfDApO0Y9
Ris0fDA7fXdoaWxlKEY+Pj4wPChjW3A+PjJdfDApPj4+MCk7ST1jW3E+PjJdfDB9ZWxzZXtJPWh9
aWYoST4+PjA+PWc+Pj4wKXtKPTE4Mjk7YnJlYWt9bz1JO3M9Y1tHPj4yXXwwfWlmKChKfDApPT0x
ODI5KXtIPXV8MDtkZShIKTtkUChyKTtpPWQ7cmV0dXJufWQ9Yk8oOCl8MDtkRShkLDkwNCk7Ymwo
ZHwwLDgxOTIsMjIpfWZ1bmN0aW9uIGlxKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MDtjW2I+PjJd
PTM1Njg7ZD1iKzh8MDtlPWNbZD4+Ml18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygx
NjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChl
fDApPT0oY1syOTU4XXwwKSl7Zj1ifDA7ZGUoZik7cmV0dXJufWE3KGNbZD4+Ml18MCk7Zj1ifDA7
ZGUoZik7cmV0dXJufWZ1bmN0aW9uIGlyKGEpe2E9YXwwO2E9Yk8oOCl8MDtkQShhLDEzNTIpO2Nb
YT4+Ml09MjUwNDtibChhfDAsODIwOCwzMil9ZnVuY3Rpb24gaXMoYixkKXtiPWJ8MDtkPWR8MDt2
YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wO2U9aTtpPWkrNDQ4fDA7Zj1lfDA7Zz1lKzE2fDA7aD1l
KzMyfDA7aj1lKzQ4fDA7az1lKzY0fDA7bD1lKzgwfDA7bT1lKzk2fDA7bj1lKzExMnwwO289ZSsx
Mjh8MDtwPWUrMTQ0fDA7cT1lKzE2MHwwO3I9ZSsxNzZ8MDtzPWUrMTkyfDA7dD1lKzIwOHwwO3U9
ZSsyMjR8MDt2PWUrMjQwfDA7dz1lKzI1NnwwO3g9ZSsyNzJ8MDt5PWUrMjg4fDA7ej1lKzMwNHww
O0E9ZSszMjB8MDtCPWUrMzM2fDA7Qz1lKzM1MnwwO0Q9ZSszNjh8MDtFPWUrMzg0fDA7Rj1lKzQw
MHwwO0c9ZSs0MTZ8MDtIPWUrNDMyfDA7Y1tiKzQ+PjJdPWQtMTtjW2I+PjJdPTM4MjQ7ZD1iKzh8
MDtJPWIrMTJ8MDthW2IrMTM2fDBdPTE7Sj1iKzI0fDA7Sz1KO2NbST4+Ml09SztjW2Q+PjJdPUs7
Y1tiKzE2Pj4yXT1KKzExMjtKPTI4O0w9Sztkb3tpZigoTHwwKT09MCl7TT0wfWVsc2V7Y1tMPj4y
XT0wO009Y1tJPj4yXXwwfUw9TSs0fDA7Y1tJPj4yXT1MO0o9Si0xfDA7fXdoaWxlKChKfDApIT0w
KTtkWihiKzE0NHwwLDEzNDQsMSk7Sj1jW2Q+PjJdfDA7ZD1jW0k+PjJdfDA7aWYoKEp8MCkhPShk
fDApKXtjW0k+PjJdPWQrKH4oKGQtNCsoLUp8MCl8MCk+Pj4yKTw8Mil9Y1szNjE3XT0wO2NbMzYx
Nl09MzUyODtpZigoY1szODQ0XXwwKSE9LTEpe2NbSD4+Ml09MTUzNzY7Y1tIKzQ+PjJdPTEyO2Nb
SCs4Pj4yXT0wO2RXKDE1Mzc2LEgsOTYpfWlKKGIsMTQ0NjQsKGNbMzg0NV18MCktMXwwKTtjWzM2
MTVdPTA7Y1szNjE0XT0zNDg4O2lmKChjWzM4NDJdfDApIT0tMSl7Y1tHPj4yXT0xNTM2ODtjW0cr
ND4+Ml09MTI7Y1tHKzg+PjJdPTA7ZFcoMTUzNjgsRyw5Nil9aUooYiwxNDQ1NiwoY1szODQzXXww
KS0xfDApO2NbMzY2N109MDtjWzM2NjZdPTM5MzY7Y1szNjY4XT0wO2FbMTQ2NzZdPTA7Y1szNjY4
XT1jWyhhNigpfDApPj4yXTtpZigoY1szOTI0XXwwKSE9LTEpe2NbRj4+Ml09MTU2OTY7Y1tGKzQ+
PjJdPTEyO2NbRis4Pj4yXT0wO2RXKDE1Njk2LEYsOTYpfWlKKGIsMTQ2NjQsKGNbMzkyNV18MCkt
MXwwKTtjWzM2NjVdPTA7Y1szNjY0XT0zODU2O2lmKChjWzM5MjJdfDApIT0tMSl7Y1tFPj4yXT0x
NTY4ODtjW0UrND4+Ml09MTI7Y1tFKzg+PjJdPTA7ZFcoMTU2ODgsRSw5Nil9aUooYiwxNDY1Niwo
Y1szOTIzXXwwKS0xfDApO2NbMzYxOV09MDtjWzM2MThdPTM2MjQ7aWYoKGNbMzg0OF18MCkhPS0x
KXtjW0Q+PjJdPTE1MzkyO2NbRCs0Pj4yXT0xMjtjW0QrOD4+Ml09MDtkVygxNTM5MixELDk2KX1p
SihiLDE0NDcyLChjWzM4NDldfDApLTF8MCk7Y1s1MjFdPTA7Y1s1MjBdPTM1Njg7ZG97aWYoKGFb
MTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0
NCwwKXwwfX13aGlsZSgwKTtjWzUyMl09Y1syOTU4XTtpZigoY1szODQ2XXwwKSE9LTEpe2NbQz4+
Ml09MTUzODQ7Y1tDKzQ+PjJdPTEyO2NbQys4Pj4yXT0wO2RXKDE1Mzg0LEMsOTYpfWlKKGIsMjA4
MCwoY1szODQ3XXwwKS0xfDApO2NbMzYyMV09MDtjWzM2MjBdPTM2ODA7aWYoKGNbMzg1MF18MCkh
PS0xKXtjW0I+PjJdPTE1NDAwO2NbQis0Pj4yXT0xMjtjW0IrOD4+Ml09MDtkVygxNTQwMCxCLDk2
KX1pSihiLDE0NDgwLChjWzM4NTFdfDApLTF8MCk7Y1szNjIzXT0wO2NbMzYyMl09MzczNjtpZigo
Y1szODUyXXwwKSE9LTEpe2NbQT4+Ml09MTU0MDg7Y1tBKzQ+PjJdPTEyO2NbQSs4Pj4yXT0wO2RX
KDE1NDA4LEEsOTYpfWlKKGIsMTQ0ODgsKGNbMzg1M118MCktMXwwKTtjWzM1OTddPTA7Y1szNTk2
XT0zMDMyO2FbMTQzOTJdPTQ2O2FbMTQzOTNdPTQ0O2skKDE0Mzk2LDAsMTIpO2lmKChjWzM4Mjhd
fDApIT0tMSl7Y1t6Pj4yXT0xNTMxMjtjW3orND4+Ml09MTI7Y1t6Kzg+PjJdPTA7ZFcoMTUzMTIs
eiw5Nil9aUooYiwxNDM4NCwoY1szODI5XXwwKS0xfDApO2NbNTEzXT0wO2NbNTEyXT0yOTg0O2Nb
NTE0XT00NjtjWzUxNV09NDQ7ayQoMjA2NCwwLDEyKTtpZigoY1szODI2XXwwKSE9LTEpe2NbeT4+
Ml09MTUzMDQ7Y1t5KzQ+PjJdPTEyO2NbeSs4Pj4yXT0wO2RXKDE1MzA0LHksOTYpfWlKKGIsMjA0
OCwoY1szODI3XXwwKS0xfDApO2NbMzYxM109MDtjWzM2MTJdPTM0MTY7aWYoKGNbMzg0MF18MCkh
PS0xKXtjW3g+PjJdPTE1MzYwO2NbeCs0Pj4yXT0xMjtjW3grOD4+Ml09MDtkVygxNTM2MCx4LDk2
KX1pSihiLDE0NDQ4LChjWzM4NDFdfDApLTF8MCk7Y1szNjExXT0wO2NbMzYxMF09MzM0NDtpZigo
Y1szODM4XXwwKSE9LTEpe2Nbdz4+Ml09MTUzNTI7Y1t3KzQ+PjJdPTEyO2Nbdys4Pj4yXT0wO2RX
KDE1MzUyLHcsOTYpfWlKKGIsMTQ0NDAsKGNbMzgzOV18MCktMXwwKTtjWzM2MDldPTA7Y1szNjA4
XT0zMjgwO2lmKChjWzM4MzZdfDApIT0tMSl7Y1t2Pj4yXT0xNTM0NDtjW3YrND4+Ml09MTI7Y1t2
Kzg+PjJdPTA7ZFcoMTUzNDQsdiw5Nil9aUooYiwxNDQzMiwoY1szODM3XXwwKS0xfDApO2NbMzYw
N109MDtjWzM2MDZdPTMyMTY7aWYoKGNbMzgzNF18MCkhPS0xKXtjW3U+PjJdPTE1MzM2O2NbdSs0
Pj4yXT0xMjtjW3UrOD4+Ml09MDtkVygxNTMzNix1LDk2KX1pSihiLDE0NDI0LChjWzM4MzVdfDAp
LTF8MCk7Y1szNjc3XT0wO2NbMzY3Nl09NDkxMjtpZigoY1s0MDQ2XXwwKSE9LTEpe2NbdD4+Ml09
MTYxODQ7Y1t0KzQ+PjJdPTEyO2NbdCs4Pj4yXT0wO2RXKDE2MTg0LHQsOTYpfWlKKGIsMTQ3MDQs
KGNbNDA0N118MCktMXwwKTtjWzM2NzVdPTA7Y1szNjc0XT00ODQ4O2lmKChjWzQwNDRdfDApIT0t
MSl7Y1tzPj4yXT0xNjE3NjtjW3MrND4+Ml09MTI7Y1tzKzg+PjJdPTA7ZFcoMTYxNzYscyw5Nil9
aUooYiwxNDY5NiwoY1s0MDQ1XXwwKS0xfDApO2NbMzY3M109MDtjWzM2NzJdPTQ3ODQ7aWYoKGNb
NDA0Ml18MCkhPS0xKXtjW3I+PjJdPTE2MTY4O2Nbcis0Pj4yXT0xMjtjW3IrOD4+Ml09MDtkVygx
NjE2OCxyLDk2KX1pSihiLDE0Njg4LChjWzQwNDNdfDApLTF8MCk7Y1szNjcxXT0wO2NbMzY3MF09
NDcyMDtpZigoY1s0MDQwXXwwKSE9LTEpe2NbcT4+Ml09MTYxNjA7Y1txKzQ+PjJdPTEyO2NbcSs4
Pj4yXT0wO2RXKDE2MTYwLHEsOTYpfWlKKGIsMTQ2ODAsKGNbNDA0MV18MCktMXwwKTtjWzM1OTVd
PTA7Y1szNTk0XT0yNjg4O2lmKChjWzM4MTZdfDApIT0tMSl7Y1twPj4yXT0xNTI2NDtjW3ArND4+
Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTUyNjQscCw5Nil9aUooYiwxNDM3NiwoY1szODE3XXwwKS0x
fDApO2NbMzU5M109MDtjWzM1OTJdPTI2NDg7aWYoKGNbMzgxNF18MCkhPS0xKXtjW28+PjJdPTE1
MjU2O2Nbbys0Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNTI1NixvLDk2KX1pSihiLDE0MzY4LChj
WzM4MTVdfDApLTF8MCk7Y1szNTkxXT0wO2NbMzU5MF09MjYwODtpZigoY1szODEyXXwwKSE9LTEp
e2Nbbj4+Ml09MTUyNDg7Y1tuKzQ+PjJdPTEyO2Nbbis4Pj4yXT0wO2RXKDE1MjQ4LG4sOTYpfWlK
KGIsMTQzNjAsKGNbMzgxM118MCktMXwwKTtjWzM1ODldPTA7Y1szNTg4XT0yNTY4O2lmKChjWzM4
MTBdfDApIT0tMSl7Y1ttPj4yXT0xNTI0MDtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTUy
NDAsbSw5Nil9aUooYiwxNDM1MiwoY1szODExXXwwKS0xfDApO2NbNTA5XT0wO2NbNTA4XT0yODg4
O2NbNTEwXT0yOTM2O2lmKChjWzM4MjRdfDApIT0tMSl7Y1tsPj4yXT0xNTI5NjtjW2wrND4+Ml09
MTI7Y1tsKzg+PjJdPTA7ZFcoMTUyOTYsbCw5Nil9aUooYiwyMDMyLChjWzM4MjVdfDApLTF8MCk7
Y1s1MDVdPTA7Y1s1MDRdPTI3OTI7Y1s1MDZdPTI4NDA7aWYoKGNbMzgyMl18MCkhPS0xKXtjW2s+
PjJdPTE1Mjg4O2Nbays0Pj4yXT0xMjtjW2srOD4+Ml09MDtkVygxNTI4OCxrLDk2KX1pSihiLDIw
MTYsKGNbMzgyM118MCktMXwwKTtjWzUwMV09MDtjWzUwMF09Mzc5Mjtkb3tpZigoYVsxNjI2NF18
MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9
fXdoaWxlKDApO2NbNTAyXT1jWzI5NThdO2NbNTAwXT0yNzYwO2lmKChjWzM4MjBdfDApIT0tMSl7
Y1tqPj4yXT0xNTI4MDtjW2orND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTUyODAsaiw5Nil9aUoo
YiwyZTMsKGNbMzgyMV18MCktMXwwKTtjWzQ5N109MDtjWzQ5Nl09Mzc5Mjtkb3tpZigoYVsxNjI2
NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDAp
fDB9fXdoaWxlKDApO2NbNDk4XT1jWzI5NThdO2NbNDk2XT0yNzI4O2lmKChjWzM4MThdfDApIT0t
MSl7Y1toPj4yXT0xNTI3MjtjW2grND4+Ml09MTI7Y1toKzg+PjJdPTA7ZFcoMTUyNzIsaCw5Nil9
aUooYiwxOTg0LChjWzM4MTldfDApLTF8MCk7Y1szNjA1XT0wO2NbMzYwNF09MzEyMDtpZigoY1sz
ODMyXXwwKSE9LTEpe2NbZz4+Ml09MTUzMjg7Y1tnKzQ+PjJdPTEyO2NbZys4Pj4yXT0wO2RXKDE1
MzI4LGcsOTYpfWlKKGIsMTQ0MTYsKGNbMzgzM118MCktMXwwKTtjWzM2MDNdPTA7Y1szNjAyXT0z
MDgwO2lmKChjWzM4MzBdfDApIT0tMSl7Y1tmPj4yXT0xNTMyMDtjW2YrND4+Ml09MTI7Y1tmKzg+
PjJdPTA7ZFcoMTUzMjAsZiw5Nil9aUooYiwxNDQwOCwoY1szODMxXXwwKS0xfDApO2k9ZTtyZXR1
cm59ZnVuY3Rpb24gaXQoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGl1KGEs
YixkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aT1pfDA7Y1tmPj4yXT1kO2NbaT4+Ml09ZztyZXR1cm4gM31mdW5jdGlvbiBpdihhLGIsZCxlLGYs
ZyxoLGkpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2Nb
Zj4+Ml09ZDtjW2k+PjJdPWc7cmV0dXJuIDN9ZnVuY3Rpb24gaXcoYSxiLGQsZSxmKXthPWF8MDti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtjW2Y+PjJdPWQ7cmV0dXJuIDN9ZnVuY3Rpb24gaXgoYSl7
YT1hfDA7cmV0dXJuIDF9ZnVuY3Rpb24gaXkoYSl7YT1hfDA7cmV0dXJuIDF9ZnVuY3Rpb24gaXoo
YSl7YT1hfDA7cmV0dXJuIDF9ZnVuY3Rpb24gaUEoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4gYjw8
MjQ+PjI0fDB9ZnVuY3Rpb24gaUIoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO3JldHVybihiPj4+
MDwxMjg/YiYyNTU6Yyl8MH1mdW5jdGlvbiBpQyhhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0
dXJuKGI8PDI0Pj4yND4tMT9iOmMpfDB9ZnVuY3Rpb24gaUQoYSxiLGMsZCxlKXthPWF8MDtiPWJ8
MDtjPWN8MDtkPWR8MDtlPWV8MDtiPWQtY3wwO3JldHVybihiPj4+MDxlPj4+MD9iOmUpfDB9ZnVu
Y3Rpb24gaUUoYSl7YT1hfDA7Y1thKzQ+PjJdPShJPWNbMzg1NF18MCxjWzM4NTRdPUkrMSxJKSsx
O3JldHVybn1mdW5jdGlvbiBpRihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIg
Zz0wLGg9MCxpPTA7aWYoKGR8MCk9PShlfDApKXtnPWQ7cmV0dXJuIGd8MH1lbHNle2g9ZDtpPWZ9
d2hpbGUoMSl7Y1tpPj4yXT1hW2hdfDA7Zj1oKzF8MDtpZigoZnwwKT09KGV8MCkpe2c9ZTticmVh
a31lbHNle2g9ZjtpPWkrNHwwfX1yZXR1cm4gZ3wwfWZ1bmN0aW9uIGlHKGIsZCxlLGYsZyl7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxpPTAsaj0wO2lmKChkfDApPT0oZXww
KSl7aD1kO3JldHVybiBofDB9Yj0oKGUtNCsoLWR8MCl8MCk+Pj4yKSsxfDA7aT1kO2o9Zzt3aGls
ZSgxKXtnPWNbaT4+Ml18MDthW2pdPWc+Pj4wPDEyOD9nJjI1NTpmO2c9aSs0fDA7aWYoKGd8MCk9
PShlfDApKXticmVha31lbHNle2k9ZztqPWorMXwwfX1oPWQrKGI8PDIpfDA7cmV0dXJuIGh8MH1m
dW5jdGlvbiBpSChiLGMsZCxlKXtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxo
PTA7aWYoKGN8MCk9PShkfDApKXtmPWM7cmV0dXJuIGZ8MH1lbHNle2c9YztoPWV9d2hpbGUoMSl7
YVtoXT1hW2ddfDA7ZT1nKzF8MDtpZigoZXwwKT09KGR8MCkpe2Y9ZDticmVha31lbHNle2c9ZTto
PWgrMXwwfX1yZXR1cm4gZnwwfWZ1bmN0aW9uIGlJKGIsYyxkLGUsZil7Yj1ifDA7Yz1jfDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wO2lmKChjfDApPT0oZHwwKSl7Zz1jO3JldHVy
biBnfDB9ZWxzZXtoPWM7aT1mfXdoaWxlKDEpe2Y9YVtoXXwwO2FbaV09Zjw8MjQ+PjI0Pi0xP2Y6
ZTtmPWgrMXwwO2lmKChmfDApPT0oZHwwKSl7Zz1kO2JyZWFrfWVsc2V7aD1mO2k9aSsxfDB9fXJl
dHVybiBnfDB9ZnVuY3Rpb24gaUooYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0w
LGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTA7ZGcoYnwwKTtlPWErOHwwO2Y9YSsxMnww
O2E9Y1tmPj4yXXwwO2c9ZXwwO2g9Y1tnPj4yXXwwO2k9YS1oPj4yO2Rve2lmKGk+Pj4wPmQ+Pj4w
KXtqPWh9ZWxzZXtrPWQrMXwwO2lmKGk+Pj4wPGs+Pj4wKXtqNShlLGstaXwwKTtqPWNbZz4+Ml18
MDticmVha31pZihpPj4+MDw9az4+PjApe2o9aDticmVha31sPWgrKGs8PDIpfDA7aWYoKGx8MCk9
PShhfDApKXtqPWg7YnJlYWt9Y1tmPj4yXT1hKyh+KChhLTQrKC1sfDApfDApPj4+Mik8PDIpO2o9
aH19d2hpbGUoMCk7aD1jW2orKGQ8PDIpPj4yXXwwO2lmKChofDApPT0wKXttPWo7bj1tKyhkPDwy
KXwwO2Nbbj4+Ml09YjtyZXR1cm59ZHooaHwwKXwwO209Y1tnPj4yXXwwO249bSsoZDw8Mil8MDtj
W24+PjJdPWI7cmV0dXJufWZ1bmN0aW9uIGlLKGEpe2E9YXwwO2lMKGEpO2tTKGEpO3JldHVybn1m
dW5jdGlvbiBpTChiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxs
PTAsbT0wO2NbYj4+Ml09MzgyNDtkPWIrMTJ8MDtlPWNbZD4+Ml18MDtmPWIrOHwwO2c9Y1tmPj4y
XXwwO2lmKChlfDApIT0oZ3wwKSl7aD0wO2k9ZztnPWU7d2hpbGUoMSl7ZT1jW2krKGg8PDIpPj4y
XXwwO2lmKChlfDApPT0wKXtqPWc7az1pfWVsc2V7bD1lfDA7ZHoobCl8MDtqPWNbZD4+Ml18MDtr
PWNbZj4+Ml18MH1sPWgrMXwwO2lmKGw+Pj4wPGotaz4+Mj4+PjApe2g9bDtpPWs7Zz1qfWVsc2V7
YnJlYWt9fX1kUChiKzE0NHwwKTtqPWNbZj4+Ml18MDtpZigoanwwKT09MCl7bT1ifDA7ZGUobSk7
cmV0dXJufWY9Y1tkPj4yXXwwO2lmKChqfDApIT0oZnwwKSl7Y1tkPj4yXT1mKyh+KChmLTQrKC1q
fDApfDApPj4+Mik8PDIpfWlmKChqfDApPT0oYisyNHwwKSl7YVtiKzEzNnwwXT0wO209YnwwO2Rl
KG0pO3JldHVybn1lbHNle2tTKGopO209YnwwO2RlKG0pO3JldHVybn19ZnVuY3Rpb24gaU0oKXt2
YXIgYj0wLGQ9MDtpZigoYVsxNjI0OF18MCkhPTApe2I9Y1syOTUwXXwwO3JldHVybiBifDB9aWYo
KGJjKDE2MjQ4KXwwKT09MCl7Yj1jWzI5NTBdfDA7cmV0dXJuIGJ8MH1kb3tpZigoYVsxNjI1Nl18
MCk9PTApe2lmKChiYygxNjI1Nil8MCk9PTApe2JyZWFrfWlzKDE0NDk2LDEpO2NbMjk1NF09MTQ0
OTY7Y1syOTUyXT0xMTgxNn19d2hpbGUoMCk7ZD1jW2NbMjk1Ml0+PjJdfDA7Y1syOTU2XT1kO2Rn
KGR8MCk7Y1syOTUwXT0xMTgyNDtiPWNbMjk1MF18MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGlOKGEs
Yil7YT1hfDA7Yj1ifDA7dmFyIGQ9MDtkPWNbYj4+Ml18MDtjW2E+PjJdPWQ7ZGcoZHwwKTtyZXR1
cm59ZnVuY3Rpb24gaU8oYSl7YT1hfDA7ZHooY1thPj4yXXwwKXwwO3JldHVybn1mdW5jdGlvbiBp
UChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpUShhKXthPWF8MDtpZigo
YXwwKT09MCl7cmV0dXJufWJZW2NbKGNbYT4+Ml18MCkrND4+Ml0mNTExXShhKTtyZXR1cm59ZnVu
Y3Rpb24gaVIoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaVMoYil7Yj1i
fDA7dmFyIGQ9MDtjW2I+PjJdPTM5MzY7ZD1jW2IrOD4+Ml18MDtkb3tpZigoZHwwKSE9MCl7aWYo
KGFbYisxMnwwXSYxKT09MCl7YnJlYWt9a1QoZCl9fXdoaWxlKDApO2RlKGJ8MCk7a1MoYik7cmV0
dXJufWZ1bmN0aW9uIGlUKGIpe2I9YnwwO3ZhciBkPTA7Y1tiPj4yXT0zOTM2O2Q9Y1tiKzg+PjJd
fDA7ZG97aWYoKGR8MCkhPTApe2lmKChhW2IrMTJ8MF0mMSk9PTApe2JyZWFrfWtUKGQpfX13aGls
ZSgwKTtkZShifDApO3JldHVybn1mdW5jdGlvbiBpVShhKXthPWF8MDtkZShhfDApO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBpVihhKXthPWF8MDtpcShhKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaVco
YSl7YT1hfDA7dmFyIGI9MDtiPWNbKGlNKCl8MCk+PjJdfDA7Y1thPj4yXT1iO2RnKGJ8MCk7cmV0
dXJufWZ1bmN0aW9uIGlYKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTA7
ZD1pO2k9aSsxNnwwO2U9ZHwwO2Y9Y1thPj4yXXwwO2E9YnwwO2lmKChjW2E+PjJdfDApIT0tMSl7
Y1tlPj4yXT1iO2NbZSs0Pj4yXT0xMjtjW2UrOD4+Ml09MDtkVyhhLGUsOTYpfWU9KGNbYis0Pj4y
XXwwKS0xfDA7Yj1jW2YrOD4+Ml18MDtpZigoY1tmKzEyPj4yXXwwKS1iPj4yPj4+MDw9ZT4+PjAp
e2c9Yk8oNCl8MDtoPWc7a3EoaCk7YmwoZ3wwLDgxNzYsMTM0KTtyZXR1cm4gMH1mPWNbYisoZTw8
Mik+PjJdfDA7aWYoKGZ8MCk9PTApe2c9Yk8oNCl8MDtoPWc7a3EoaCk7YmwoZ3wwLDgxNzYsMTM0
KTtyZXR1cm4gMH1lbHNle2k9ZDtyZXR1cm4gZnwwfXJldHVybiAwfWZ1bmN0aW9uIGlZKGEsZCxl
KXthPWF8MDtkPWR8MDtlPWV8MDt2YXIgZj0wO2lmKGU+Pj4wPj0xMjgpe2Y9MDtyZXR1cm4gZnww
fWY9KGJbKGNbKGE2KCl8MCk+PjJdfDApKyhlPDwxKT4+MV0mZCk8PDE2Pj4xNiE9MDtyZXR1cm4g
ZnwwfWZ1bmN0aW9uIGlaKGEsZCxlLGYpe2E9YXwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAs
aD0wLGk9MCxqPTA7aWYoKGR8MCk9PShlfDApKXtnPWQ7cmV0dXJuIGd8MH1lbHNle2g9ZDtpPWZ9
d2hpbGUoMSl7Zj1jW2g+PjJdfDA7aWYoZj4+PjA8MTI4KXtqPWJbKGNbKGE2KCl8MCk+PjJdfDAp
KyhmPDwxKT4+MV18MH1lbHNle2o9MH1iW2k+PjFdPWo7Zj1oKzR8MDtpZigoZnwwKT09KGV8MCkp
e2c9ZTticmVha31lbHNle2g9ZjtpPWkrMnwwfX1yZXR1cm4gZ3wwfWZ1bmN0aW9uIGlfKGEsZCxl
LGYpe2E9YXwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MDtpZigoZXwwKT09KGZ8
MCkpe2c9ZTtyZXR1cm4gZ3wwfWVsc2V7aD1lfXdoaWxlKDEpe2U9Y1toPj4yXXwwO2lmKGU+Pj4w
PDEyOCl7aWYoKGJbKGNbKGE2KCl8MCk+PjJdfDApKyhlPDwxKT4+MV0mZCk8PDE2Pj4xNiE9MCl7
Zz1oO2k9MjA5NDticmVha319ZT1oKzR8MDtpZigoZXwwKT09KGZ8MCkpe2c9ZjtpPTIwOTY7YnJl
YWt9ZWxzZXtoPWV9fWlmKChpfDApPT0yMDk0KXtyZXR1cm4gZ3wwfWVsc2UgaWYoKGl8MCk9PTIw
OTYpe3JldHVybiBnfDB9cmV0dXJuIDB9ZnVuY3Rpb24gaSQoYSxkLGUsZil7YT1hfDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTA7YT1lO3doaWxlKDEpe2lmKChhfDApPT0oZnwwKSl7Zz1m
O2g9MjEwNDticmVha31lPWNbYT4+Ml18MDtpZihlPj4+MD49MTI4KXtnPWE7aD0yMTA2O2JyZWFr
fWlmKChiWyhjWyhhNigpfDApPj4yXXwwKSsoZTw8MSk+PjFdJmQpPDwxNj4+MTY9PTApe2c9YTto
PTIxMDU7YnJlYWt9ZWxzZXthPWErNHwwfX1pZigoaHwwKT09MjEwNCl7cmV0dXJuIGd8MH1lbHNl
IGlmKChofDApPT0yMTA1KXtyZXR1cm4gZ3wwfWVsc2UgaWYoKGh8MCk9PTIxMDYpe3JldHVybiBn
fDB9cmV0dXJuIDB9ZnVuY3Rpb24gaTAoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wO2lmKGI+Pj4w
Pj0xMjgpe2Q9YjtyZXR1cm4gZHwwfWQ9Y1soY1soYlIoKXwwKT4+Ml18MCkrKGI8PDIpPj4yXXww
O3JldHVybiBkfDB9ZnVuY3Rpb24gaTEoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MDtpZigoYnwwKT09KGR8MCkpe2U9YjtyZXR1cm4gZXwwfWVsc2V7Zj1ifXdoaWxlKDEp
e2I9Y1tmPj4yXXwwO2lmKGI+Pj4wPDEyOCl7Zz1jWyhjWyhiUigpfDApPj4yXXwwKSsoYjw8Mik+
PjJdfDB9ZWxzZXtnPWJ9Y1tmPj4yXT1nO2I9Zis0fDA7aWYoKGJ8MCk9PShkfDApKXtlPWQ7YnJl
YWt9ZWxzZXtmPWJ9fXJldHVybiBlfDB9ZnVuY3Rpb24gaTIoYSxiKXthPWF8MDtiPWJ8MDt2YXIg
ZD0wO2lmKGI+Pj4wPj0xMjgpe2Q9YjtyZXR1cm4gZHwwfWQ9Y1soY1soYlMoKXwwKT4+Ml18MCkr
KGI8PDIpPj4yXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24gaTMoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MDtpZigoYnwwKT09KGR8MCkpe2U9YjtyZXR1cm4gZXwwfWVsc2V7
Zj1ifXdoaWxlKDEpe2I9Y1tmPj4yXXwwO2lmKGI+Pj4wPDEyOCl7Zz1jWyhjWyhiUygpfDApPj4y
XXwwKSsoYjw8Mik+PjJdfDB9ZWxzZXtnPWJ9Y1tmPj4yXT1nO2I9Zis0fDA7aWYoKGJ8MCk9PShk
fDApKXtlPWQ7YnJlYWt9ZWxzZXtmPWJ9fXJldHVybiBlfDB9ZnVuY3Rpb24gaTQoYSxiKXthPWF8
MDtiPWJ8MDt2YXIgZD0wO2lmKGI8PDI0Pj4yNDw9LTEpe2Q9YjtyZXR1cm4gZHwwfWQ9Y1soY1so
YlIoKXwwKT4+Ml18MCkrKChiJjI1NSk8PDIpPj4yXSYyNTU7cmV0dXJuIGR8MH1mdW5jdGlvbiBp
NShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2lmKChkfDApPT0oZXww
KSl7Zj1kO3JldHVybiBmfDB9ZWxzZXtnPWR9d2hpbGUoMSl7ZD1hW2ddfDA7aWYoZDw8MjQ+PjI0
Pi0xKXtoPWNbKGNbKGJSKCl8MCk+PjJdfDApKyhkPDwyND4+MjQ8PDIpPj4yXSYyNTV9ZWxzZXto
PWR9YVtnXT1oO2Q9ZysxfDA7aWYoKGR8MCk9PShlfDApKXtmPWU7YnJlYWt9ZWxzZXtnPWR9fXJl
dHVybiBmfDB9ZnVuY3Rpb24gaTYoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wO2lmKGI8PDI0Pj4y
NDw9LTEpe2Q9YjtyZXR1cm4gZHwwfWQ9Y1soY1soYlMoKXwwKT4+Ml18MCkrKGI8PDI0Pj4yNDw8
Mik+PjJdJjI1NTtyZXR1cm4gZHwwfWZ1bmN0aW9uIGk3KGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8
MDt2YXIgZj0wLGc9MCxoPTA7aWYoKGR8MCk9PShlfDApKXtmPWQ7cmV0dXJuIGZ8MH1lbHNle2c9
ZH13aGlsZSgxKXtkPWFbZ118MDtpZihkPDwyND4+MjQ+LTEpe2g9Y1soY1soYlMoKXwwKT4+Ml18
MCkrKGQ8PDI0Pj4yNDw8Mik+PjJdJjI1NX1lbHNle2g9ZH1hW2ddPWg7ZD1nKzF8MDtpZigoZHww
KT09KGV8MCkpe2Y9ZTticmVha31lbHNle2c9ZH19cmV0dXJuIGZ8MH1mdW5jdGlvbiBpOChhKXth
PWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBpOShhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1m
dW5jdGlvbiBqYShhLGIsZCxlLGYsZyxoLGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHww
O2NbYT4+Ml09ZDtjW2s+PjJdPWc7bD1qbChkLGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4y
XT1kKygoY1thPj4yXXwwKS1kPj4xPDwxKTtjW2o+PjJdPWcrKChjW2s+PjJdfDApLWcpO2k9Yjty
ZXR1cm4gbHwwfWZ1bmN0aW9uIGpiKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTA7bD1pO2k9aSs4fDA7bT1sfDA7bj1tO289aTtpPWkrMXww
O2k9aSs3Pj4zPDwzO3A9ZTt3aGlsZSgxKXtpZigocHwwKT09KGZ8MCkpe3E9ZjticmVha31pZigo
Y1twPj4yXXwwKT09MCl7cT1wO2JyZWFrfWVsc2V7cD1wKzR8MH19Y1trPj4yXT1oO2NbZz4+Ml09
ZTtMMjU1NTpkb3tpZigoZXwwKT09KGZ8MCl8KGh8MCk9PShqfDApKXtyPWV9ZWxzZXtwPWQ7cz1q
O3Q9Yis4fDA7dT1vfDA7dj1oO3c9ZTt4PXE7TDI1NTc6d2hpbGUoMSl7eT1jW3ArND4+Ml18MDtj
W20+PjJdPWNbcD4+Ml07Y1ttKzQ+PjJdPXk7eT1iQihjW3Q+PjJdfDApfDA7ej1rcyh2LGcseC13
Pj4yLHMtdnwwLGQpfDA7aWYoKHl8MCkhPTApe2JCKHl8MCl8MH1zd2l0Y2goenwwKXtjYXNlLTE6
e0E9MjE4ODticmVhayBMMjU1NzticmVha307Y2FzZSAwOntCPTE7QT0yMjI0O2JyZWFrIEwyNTU3
O2JyZWFrfTtkZWZhdWx0Ont9fXk9KGNbaz4+Ml18MCkrenwwO2Nbaz4+Ml09eTtpZigoeXwwKT09
KGp8MCkpe0E9MjIyMTticmVha31pZigoeHwwKT09KGZ8MCkpe0M9ZjtEPXk7RT1jW2c+PjJdfDB9
ZWxzZXt5PWJCKGNbdD4+Ml18MCl8MDt6PWtnKHUsMCxkKXwwO2lmKCh5fDApIT0wKXtiQih5fDAp
fDB9aWYoKHp8MCk9PS0xKXtCPTI7QT0yMjI2O2JyZWFrfXk9Y1trPj4yXXwwO2lmKHo+Pj4wPihz
LXl8MCk+Pj4wKXtCPTE7QT0yMjI3O2JyZWFrfUwyNTc0OmRve2lmKCh6fDApIT0wKXtGPXo7Rz11
O0g9eTt3aGlsZSgxKXtJPWFbR118MDtjW2s+PjJdPUgrMTthW0hdPUk7ST1GLTF8MDtpZigoSXww
KT09MCl7YnJlYWsgTDI1NzR9Rj1JO0c9RysxfDA7SD1jW2s+PjJdfDB9fX13aGlsZSgwKTt5PShj
W2c+PjJdfDApKzR8MDtjW2c+PjJdPXk7ej15O3doaWxlKDEpe2lmKCh6fDApPT0oZnwwKSl7Sj1m
O2JyZWFrfWlmKChjW3o+PjJdfDApPT0wKXtKPXo7YnJlYWt9ZWxzZXt6PXorNHwwfX1DPUo7RD1j
W2s+PjJdfDA7RT15fWlmKChFfDApPT0oZnwwKXwoRHwwKT09KGp8MCkpe3I9RTticmVhayBMMjU1
NX1lbHNle3Y9RDt3PUU7eD1DfX1pZigoQXwwKT09MjE4OCl7Y1trPj4yXT12O0wyNTg2OmRve2lm
KCh3fDApPT0oY1tnPj4yXXwwKSl7Sz13fWVsc2V7eD13O3U9djt3aGlsZSgxKXtzPWNbeD4+Ml18
MDtwPWJCKGNbdD4+Ml18MCl8MDt6PWtnKHUscyxuKXwwO2lmKChwfDApIT0wKXtiQihwfDApfDB9
aWYoKHp8MCk9PS0xKXtLPXg7YnJlYWsgTDI1ODZ9cD0oY1trPj4yXXwwKSt6fDA7Y1trPj4yXT1w
O3o9eCs0fDA7aWYoKHp8MCk9PShjW2c+PjJdfDApKXtLPXo7YnJlYWt9ZWxzZXt4PXo7dT1wfX19
fXdoaWxlKDApO2NbZz4+Ml09SztCPTI7aT1sO3JldHVybiBCfDB9ZWxzZSBpZigoQXwwKT09MjIy
MSl7cj1jW2c+PjJdfDA7YnJlYWt9ZWxzZSBpZigoQXwwKT09MjIyNCl7aT1sO3JldHVybiBCfDB9
ZWxzZSBpZigoQXwwKT09MjIyNil7aT1sO3JldHVybiBCfDB9ZWxzZSBpZigoQXwwKT09MjIyNyl7
aT1sO3JldHVybiBCfDB9fX13aGlsZSgwKTtCPShyfDApIT0oZnwwKXwwO2k9bDtyZXR1cm4gQnww
fWZ1bmN0aW9uIGpjKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wO2w9aTtpPWkrOHwwO209bHwwO249bTtvPWU7d2hpbGUoMSl7aWYoKG98MCk9PShmfDAp
KXtwPWY7YnJlYWt9aWYoKGFbb118MCk9PTApe3A9bzticmVha31lbHNle289bysxfDB9fWNbaz4+
Ml09aDtjW2c+PjJdPWU7TDI2MDc6ZG97aWYoKGV8MCk9PShmfDApfChofDApPT0oanwwKSl7cT1l
fWVsc2V7bz1kO3I9ajtzPWIrOHwwO3Q9aDt1PWU7dj1wO0wyNjA5OndoaWxlKDEpe3c9Y1tvKzQ+
PjJdfDA7Y1ttPj4yXT1jW28+PjJdO2NbbSs0Pj4yXT13O3g9djt3PWJCKGNbcz4+Ml18MCl8MDt5
PWtkKHQsZyx4LXV8MCxyLXQ+PjIsZCl8MDtpZigod3wwKSE9MCl7YkIod3wwKXwwfXN3aXRjaCh5
fDApe2Nhc2UtMTp7ej0yMjQzO2JyZWFrIEwyNjA5O2JyZWFrfTtjYXNlIDA6e0E9Mjt6PTIyNzg7
YnJlYWsgTDI2MDk7YnJlYWt9O2RlZmF1bHQ6e319dz0oY1trPj4yXXwwKSsoeTw8Mil8MDtjW2s+
PjJdPXc7aWYoKHd8MCk9PShqfDApKXt6PTIyNzU7YnJlYWt9eT1jW2c+PjJdfDA7aWYoKHZ8MCk9
PShmfDApKXtCPWY7Qz13O0Q9eX1lbHNle0U9YkIoY1tzPj4yXXwwKXwwO0Y9a2Modyx5LDEsZCl8
MDtpZigoRXwwKSE9MCl7YkIoRXwwKXwwfWlmKChGfDApIT0wKXtBPTI7ej0yMjgyO2JyZWFrfWNb
az4+Ml09KGNbaz4+Ml18MCkrNDtGPShjW2c+PjJdfDApKzF8MDtjW2c+PjJdPUY7RT1GO3doaWxl
KDEpe2lmKChFfDApPT0oZnwwKSl7Rz1mO2JyZWFrfWlmKChhW0VdfDApPT0wKXtHPUU7YnJlYWt9
ZWxzZXtFPUUrMXwwfX1CPUc7Qz1jW2s+PjJdfDA7RD1GfWlmKChEfDApPT0oZnwwKXwoQ3wwKT09
KGp8MCkpe3E9RDticmVhayBMMjYwN31lbHNle3Q9Qzt1PUQ7dj1CfX1pZigoenwwKT09MjI0Myl7
Y1trPj4yXT10O0wyNjMxOmRve2lmKCh1fDApPT0oY1tnPj4yXXwwKSl7SD11fWVsc2V7dj10O3I9
dTtMMjYzMjp3aGlsZSgxKXtvPWJCKGNbcz4+Ml18MCl8MDtFPWtjKHYscix4LXJ8MCxuKXwwO2lm
KChvfDApIT0wKXtiQihvfDApfDB9c3dpdGNoKEV8MCl7Y2FzZSAwOntJPXIrMXwwO2JyZWFrfTtj
YXNlLTE6e3o9MjI1NDticmVhayBMMjYzMjticmVha307Y2FzZS0yOnt6PTIyNTU7YnJlYWsgTDI2
MzI7YnJlYWt9O2RlZmF1bHQ6e0k9citFfDB9fUU9KGNbaz4+Ml18MCkrNHwwO2Nbaz4+Ml09RTtp
ZigoSXwwKT09KGNbZz4+Ml18MCkpe0g9STticmVhayBMMjYzMX1lbHNle3Y9RTtyPUl9fWlmKCh6
fDApPT0yMjU0KXtjW2c+PjJdPXI7QT0yO2k9bDtyZXR1cm4gQXwwfWVsc2UgaWYoKHp8MCk9PTIy
NTUpe2NbZz4+Ml09cjtBPTE7aT1sO3JldHVybiBBfDB9fX13aGlsZSgwKTtjW2c+PjJdPUg7QT0o
SHwwKSE9KGZ8MCl8MDtpPWw7cmV0dXJuIEF8MH1lbHNlIGlmKCh6fDApPT0yMjc1KXtxPWNbZz4+
Ml18MDticmVha31lbHNlIGlmKCh6fDApPT0yMjc4KXtpPWw7cmV0dXJuIEF8MH1lbHNlIGlmKCh6
fDApPT0yMjgyKXtpPWw7cmV0dXJuIEF8MH19fXdoaWxlKDApO0E9KHF8MCkhPShmfDApfDA7aT1s
O3JldHVybiBBfDB9ZnVuY3Rpb24gamQoYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDt2YXIgaD0wLGo9MCxrPTAsbD0wLG09MCxuPTA7aD1pO2k9aSs4fDA7Y1tnPj4yXT1l
O2U9aHwwO2o9YkIoY1tiKzg+PjJdfDApfDA7Yj1rZyhlLDAsZCl8MDtpZigoanwwKSE9MCl7YkIo
anwwKXwwfXN3aXRjaChifDApe2Nhc2UtMTpjYXNlIDA6e2s9MjtpPWg7cmV0dXJuIGt8MH07ZGVm
YXVsdDp7fX1qPWItMXwwO2I9Y1tnPj4yXXwwO2lmKGo+Pj4wPihmLWJ8MCk+Pj4wKXtrPTE7aT1o
O3JldHVybiBrfDB9aWYoKGp8MCk9PTApe2s9MDtpPWg7cmV0dXJuIGt8MH1lbHNle2w9ajttPWU7
bj1ifXdoaWxlKDEpe2I9YVttXXwwO2NbZz4+Ml09bisxO2Fbbl09YjtiPWwtMXwwO2lmKChifDAp
PT0wKXtrPTA7YnJlYWt9bD1iO209bSsxfDA7bj1jW2c+PjJdfDB9aT1oO3JldHVybiBrfDB9ZnVu
Y3Rpb24gamUoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MCxnPTA7Yj1hKzh8MDthPWJCKGNb
Yj4+Ml18MCl8MDtkPWtmKDAsMCwxKXwwO2lmKChhfDApIT0wKXtiQihhfDApfDB9aWYoKGR8MCkh
PTApe2U9LTE7cmV0dXJuIGV8MH1kPWNbYj4+Ml18MDtpZigoZHwwKT09MCl7ZT0xO3JldHVybiBl
fDB9ZT1iQihkfDApfDA7ZD1iZCgpfDA7aWYoKGV8MCk9PTApe2Y9KGR8MCk9PTE7Zz1mJjE7cmV0
dXJuIGd8MH1iQihlfDApfDA7Zj0oZHwwKT09MTtnPWYmMTtyZXR1cm4gZ3wwfWZ1bmN0aW9uIGpm
KGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0w
LGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wO2lmKChmfDApPT0wfChkfDApPT0oZXwwKSl7Zz0wO3Jl
dHVybiBnfDB9aD1lO2k9YSs4fDA7YT1kO2Q9MDtqPTA7TDI2OTM6d2hpbGUoMSl7az1iQihjW2k+
PjJdfDApfDA7bD1rYihhLGgtYXwwLGIpfDA7aWYoKGt8MCkhPTApe2JCKGt8MCl8MH1zd2l0Y2go
bHwwKXtjYXNlIDA6e209MTtuPWErMXwwO2JyZWFrfTtjYXNlLTE6Y2FzZS0yOntnPWQ7bz0yMzQz
O2JyZWFrIEwyNjkzO2JyZWFrfTtkZWZhdWx0OnttPWw7bj1hK2x8MH19bD1tK2R8MDtrPWorMXww
O2lmKGs+Pj4wPj1mPj4+MHwobnwwKT09KGV8MCkpe2c9bDtvPTIzNDU7YnJlYWt9ZWxzZXthPW47
ZD1sO2o9a319aWYoKG98MCk9PTIzNDUpe3JldHVybiBnfDB9ZWxzZSBpZigob3wwKT09MjM0Myl7
cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBqZyhhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTA7
Yj1jW2ErOD4+Ml18MDtkb3tpZigoYnwwKT09MCl7ZD0xfWVsc2V7YT1iQihifDApfDA7ZT1iZCgp
fDA7aWYoKGF8MCk9PTApe2Q9ZTticmVha31iQihhfDApfDA7ZD1lfX13aGlsZSgwKTtyZXR1cm4g
ZHwwfWZ1bmN0aW9uIGpoKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Y1tmPj4yXT1kO3JldHVybiAzfWZ1bmN0aW9uIGppKGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9u
IGpqKGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGprKGEpe2E9YXwwO3JldHVybiA0fWZ1bmN0
aW9uIGpsKGQsZixnLGgsaSxqLGssbCl7ZD1kfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1q
fDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2NbZz4+Ml09ZDtjW2o+
PjJdPWg7ZG97aWYoKGwmMnwwKSE9MCl7aWYoKGktaHwwKTwzKXttPTE7cmV0dXJuIG18MH1lbHNl
e2Nbaj4+Ml09aCsxO2FbaF09LTE3O2Q9Y1tqPj4yXXwwO2Nbaj4+Ml09ZCsxO2FbZF09LTY5O2Q9
Y1tqPj4yXXwwO2Nbaj4+Ml09ZCsxO2FbZF09LTY1O2JyZWFrfX19d2hpbGUoMCk7aD1mO2w9Y1tn
Pj4yXXwwO2lmKGw+Pj4wPj1mPj4+MCl7bT0wO3JldHVybiBtfDB9ZD1pO2k9bDtMMjcyNzp3aGls
ZSgxKXtsPWJbaT4+MV18MDtuPWwmNjU1MzU7aWYobj4+PjA+az4+PjApe209MjtvPTIzOTk7YnJl
YWt9ZG97aWYoKGwmNjU1MzUpPDEyOCl7cD1jW2o+PjJdfDA7aWYoKGQtcHwwKTwxKXttPTE7bz0y
Mzg4O2JyZWFrIEwyNzI3fWNbaj4+Ml09cCsxO2FbcF09bCYyNTV9ZWxzZXtpZigobCY2NTUzNSk8
MjA0OCl7cD1jW2o+PjJdfDA7aWYoKGQtcHwwKTwyKXttPTE7bz0yMzg5O2JyZWFrIEwyNzI3fWNb
aj4+Ml09cCsxO2FbcF09KG4+Pj42fDE5MikmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCsxO2Fb
cF09KG4mNjN8MTI4KSYyNTU7YnJlYWt9aWYoKGwmNjU1MzUpPDU1Mjk2KXtwPWNbaj4+Ml18MDtp
ZigoZC1wfDApPDMpe209MTtvPTIzOTc7YnJlYWsgTDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT0obj4+
PjEyfDIyNCkmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCsxO2FbcF09KG4+Pj42JjYzfDEyOCkm
MjU1O3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCsxO2FbcF09KG4mNjN8MTI4KSYyNTU7YnJlYWt9aWYo
KGwmNjU1MzUpPj01NjMyMCl7aWYoKGwmNjU1MzUpPDU3MzQ0KXttPTI7bz0yMzkzO2JyZWFrIEwy
NzI3fXA9Y1tqPj4yXXwwO2lmKChkLXB8MCk8Myl7bT0xO289MjM5NDticmVhayBMMjcyN31jW2o+
PjJdPXArMTthW3BdPShuPj4+MTJ8MjI0KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtw
XT0obj4+PjYmNjN8MTI4KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtwXT0obiY2M3wx
MjgpJjI1NTticmVha31pZigoaC1pfDApPDQpe209MTtvPTIzOTE7YnJlYWsgTDI3Mjd9cD1pKzJ8
MDtxPWVbcD4+MV18MDtpZigocSY2NDUxMnwwKSE9NTYzMjApe209MjtvPTIzOTI7YnJlYWsgTDI3
Mjd9aWYoKGQtKGNbaj4+Ml18MCl8MCk8NCl7bT0xO289MjM5ODticmVhayBMMjcyN31yPW4mOTYw
O2lmKCgocjw8MTApKzY1NTM2fG48PDEwJjY0NTEyfHEmMTAyMyk+Pj4wPms+Pj4wKXttPTI7bz0y
NDAwO2JyZWFrIEwyNzI3fWNbZz4+Ml09cDtwPShyPj4+NikrMXwwO3I9Y1tqPj4yXXwwO2Nbaj4+
Ml09cisxO2Fbcl09KHA+Pj4yfDI0MCkmMjU1O3I9Y1tqPj4yXXwwO2Nbaj4+Ml09cisxO2Fbcl09
KG4+Pj4yJjE1fHA8PDQmNDh8MTI4KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtwXT0o
bjw8NCY0OHxxPj4+NiYxNXwxMjgpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJdPXArMTthW3BdPShx
JjYzfDEyOCkmMjU1fX13aGlsZSgwKTtuPShjW2c+PjJdfDApKzJ8MDtjW2c+PjJdPW47aWYobj4+
PjA8Zj4+PjApe2k9bn1lbHNle209MDtvPTIzOTU7YnJlYWt9fWlmKChvfDApPT0yMzg5KXtyZXR1
cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTMpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5
NCl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yNDAwKXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98
MCk9PTIzODgpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5MSl7cmV0dXJuIG18MH1lbHNl
IGlmKChvfDApPT0yMzkyKXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTUpe3JldHVybiBt
fDB9ZWxzZSBpZigob3wwKT09MjM5Nyl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzk4KXty
ZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTkpe3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rp
b24gam0oZSxmLGcsaCxpLGosayxsKXtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8
MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MCx4PTAseT0wO2NbZz4+Ml09ZTtjW2o+PjJdPWg7aD1jW2c+PjJdfDA7ZG97aWYoKGwmNHww
KT09MCl7bT1ofWVsc2V7aWYoKGYtaHwwKTw9Mil7bT1oO2JyZWFrfWlmKChhW2hdfDApIT0tMTcp
e209aDticmVha31pZigoYVtoKzF8MF18MCkhPS02OSl7bT1oO2JyZWFrfWlmKChhW2grMnwwXXww
KSE9LTY1KXttPWg7YnJlYWt9ZT1oKzN8MDtjW2c+PjJdPWU7bT1lfX13aGlsZSgwKTtMMjc3Mjpk
b3tpZihtPj4+MDxmPj4+MCl7aD1mO2w9aTtlPWNbaj4+Ml18MDtuPW07TDI3NzQ6d2hpbGUoMSl7
aWYoZT4+PjA+PWk+Pj4wKXtvPW47YnJlYWsgTDI3NzJ9cD1hW25dfDA7cT1wJjI1NTtpZihxPj4+
MD5rPj4+MCl7cj0yO3M9MjQ0NDticmVha31kb3tpZihwPDwyND4+MjQ+LTEpe2JbZT4+MV09cCYy
NTU7Y1tnPj4yXT0oY1tnPj4yXXwwKSsxfWVsc2V7aWYoKHAmMjU1KTwxOTQpe3I9MjtzPTI0NTM7
YnJlYWsgTDI3NzR9aWYoKHAmMjU1KTwyMjQpe2lmKChoLW58MCk8Mil7cj0xO3M9MjQ1NDticmVh
ayBMMjc3NH10PWRbbisxfDBdfDA7aWYoKHQmMTkyfDApIT0xMjgpe3I9MjtzPTI0NTU7YnJlYWsg
TDI3NzR9dT10JjYzfHE8PDYmMTk4NDtpZih1Pj4+MD5rPj4+MCl7cj0yO3M9MjQ1NjticmVhayBM
Mjc3NH1iW2U+PjFdPXUmNjU1MzU7Y1tnPj4yXT0oY1tnPj4yXXwwKSsyO2JyZWFrfWlmKChwJjI1
NSk8MjQwKXtpZigoaC1ufDApPDMpe3I9MTtzPTI0NTc7YnJlYWsgTDI3NzR9dT1hW24rMXwwXXww
O3N3aXRjaChxfDApe2Nhc2UgMjI0OntpZigodSYtMzIpPDwyND4+MjQhPS05Nil7cj0yO3M9MjQ1
MDticmVhayBMMjc3NH1icmVha307Y2FzZSAyMzc6e2lmKCh1Ji0zMik8PDI0Pj4yNCE9LTEyOCl7
cj0yO3M9MjQ1MjticmVhayBMMjc3NH1icmVha307ZGVmYXVsdDp7aWYoKHUmLTY0KTw8MjQ+PjI0
IT0tMTI4KXtyPTI7cz0yNDYyO2JyZWFrIEwyNzc0fX19dD1kW24rMnwwXXwwO2lmKCh0JjE5Mnww
KSE9MTI4KXtyPTI7cz0yNDQzO2JyZWFrIEwyNzc0fXY9KHUmMjU1KTw8NiY0MDMyfHE8PDEyfHQm
NjM7aWYoKHYmNjU1MzUpPj4+MD5rPj4+MCl7cj0yO3M9MjQ0MjticmVhayBMMjc3NH1iW2U+PjFd
PXYmNjU1MzU7Y1tnPj4yXT0oY1tnPj4yXXwwKSszO2JyZWFrfWlmKChwJjI1NSk+PTI0NSl7cj0y
O3M9MjQ0NzticmVhayBMMjc3NH1pZigoaC1ufDApPDQpe3I9MTtzPTI0NTg7YnJlYWsgTDI3NzR9
dj1hW24rMXwwXXwwO3N3aXRjaChxfDApe2Nhc2UgMjQwOntpZigodisxMTImMjU1KT49NDgpe3I9
MjtzPTI0NDg7YnJlYWsgTDI3NzR9YnJlYWt9O2Nhc2UgMjQ0OntpZigodiYtMTYpPDwyND4+MjQh
PS0xMjgpe3I9MjtzPTI0NTk7YnJlYWsgTDI3NzR9YnJlYWt9O2RlZmF1bHQ6e2lmKCh2Ji02NCk8
PDI0Pj4yNCE9LTEyOCl7cj0yO3M9MjQ2MDticmVhayBMMjc3NH19fXQ9ZFtuKzJ8MF18MDtpZigo
dCYxOTJ8MCkhPTEyOCl7cj0yO3M9MjQ2MTticmVhayBMMjc3NH11PWRbbiszfDBdfDA7aWYoKHUm
MTkyfDApIT0xMjgpe3I9MjtzPTI0NDk7YnJlYWsgTDI3NzR9aWYoKGwtZXwwKTw0KXtyPTE7cz0y
NDQ1O2JyZWFrIEwyNzc0fXc9cSY3O3g9diYyNTU7dj10PDw2O3k9dSY2MztpZigoeDw8MTImMjU4
MDQ4fHc8PDE4fHYmNDAzMnx5KT4+PjA+az4+PjApe3I9MjtzPTI0NDY7YnJlYWsgTDI3NzR9Yltl
Pj4xXT0oeDw8MiY2MHx0Pj4+NCYzfCgoeD4+PjQmM3x3PDwyKTw8NikrMTYzMjB8NTUyOTYpJjY1
NTM1O3c9KGNbaj4+Ml18MCkrMnwwO2Nbaj4+Ml09dztiW3c+PjFdPSh5fHYmOTYwfDU2MzIwKSY2
NTUzNTtjW2c+PjJdPShjW2c+PjJdfDApKzR9fXdoaWxlKDApO3E9KGNbaj4+Ml18MCkrMnwwO2Nb
aj4+Ml09cTtwPWNbZz4+Ml18MDtpZihwPj4+MDxmPj4+MCl7ZT1xO249cH1lbHNle289cDticmVh
ayBMMjc3Mn19aWYoKHN8MCk9PTI0NDIpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ0Myl7
cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ0KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9
PTI0NDgpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ0OSl7cmV0dXJuIHJ8MH1lbHNlIGlm
KChzfDApPT0yNDUwKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDUpe3JldHVybiByfDB9
ZWxzZSBpZigoc3wwKT09MjQ0Nil7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ3KXtyZXR1
cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTYpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1
Nyl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDU4KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8
MCk9PTI0NTkpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ2MCl7cmV0dXJuIHJ8MH1lbHNl
IGlmKChzfDApPT0yNDYxKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NjIpe3JldHVybiBy
fDB9ZWxzZSBpZigoc3wwKT09MjQ1Mil7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDUzKXty
ZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTQpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09
MjQ1NSl7cmV0dXJuIHJ8MH19ZWxzZXtvPW19fXdoaWxlKDApO3I9bz4+PjA8Zj4+PjB8MDtyZXR1
cm4gcnwwfWZ1bmN0aW9uIGpuKGIsYyxlLGYsZyl7Yj1ifDA7Yz1jfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wO2Rve2lmKChnJjR8MCk9PTApe2g9Yn1lbHNle2lmKChjLWJ8MCk8PTIpe2g9Yjti
cmVha31pZigoYVtiXXwwKSE9LTE3KXtoPWI7YnJlYWt9aWYoKGFbYisxfDBdfDApIT0tNjkpe2g9
YjticmVha31oPShhW2IrMnwwXXwwKT09LTY1P2IrM3wwOmJ9fXdoaWxlKDApO0wyODQxOmRve2lm
KGg+Pj4wPGM+Pj4wJihlfDApIT0wKXtnPWM7aT0wO2o9aDtMMjg0Mzp3aGlsZSgxKXtrPWFbal18
MDtsPWsmMjU1O2lmKGw+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDI4NDF9ZG97aWYoazw8MjQ+PjI0
Pi0xKXtuPWorMXwwO289aX1lbHNle2lmKChrJjI1NSk8MTk0KXttPWo7YnJlYWsgTDI4NDF9aWYo
KGsmMjU1KTwyMjQpe2lmKChnLWp8MCk8Mil7bT1qO2JyZWFrIEwyODQxfXA9ZFtqKzF8MF18MDtp
ZigocCYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwyODQxfWlmKChwJjYzfGw8PDYmMTk4NCk+Pj4w
PmY+Pj4wKXttPWo7YnJlYWsgTDI4NDF9bj1qKzJ8MDtvPWk7YnJlYWt9aWYoKGsmMjU1KTwyNDAp
e3E9ajtpZigoZy1xfDApPDMpe209ajticmVhayBMMjg0MX1wPWFbaisxfDBdfDA7c3dpdGNoKGx8
MCl7Y2FzZSAyMjQ6e2lmKChwJi0zMik8PDI0Pj4yNCE9LTk2KXtyPTI0ODM7YnJlYWsgTDI4NDN9
YnJlYWt9O2Nhc2UgMjM3OntpZigocCYtMzIpPDwyND4+MjQhPS0xMjgpe3I9MjQ4NTticmVhayBM
Mjg0M31icmVha307ZGVmYXVsdDp7aWYoKHAmLTY0KTw8MjQ+PjI0IT0tMTI4KXtyPTI0ODc7YnJl
YWsgTDI4NDN9fX1zPWRbaisyfDBdfDA7aWYoKHMmMTkyfDApIT0xMjgpe209ajticmVhayBMMjg0
MX1pZigoKHAmMjU1KTw8NiY0MDMyfGw8PDEyJjYxNDQwfHMmNjMpPj4+MD5mPj4+MCl7bT1qO2Jy
ZWFrIEwyODQxfW49aiszfDA7bz1pO2JyZWFrfWlmKChrJjI1NSk+PTI0NSl7bT1qO2JyZWFrIEwy
ODQxfXQ9ajtpZigoZy10fDApPDQpe209ajticmVhayBMMjg0MX1pZigoZS1pfDApPj4+MDwyKXtt
PWo7YnJlYWsgTDI4NDF9cz1hW2orMXwwXXwwO3N3aXRjaChsfDApe2Nhc2UgMjQwOntpZigocysx
MTImMjU1KT49NDgpe3I9MjQ5NjticmVhayBMMjg0M31icmVha307Y2FzZSAyNDQ6e2lmKChzJi0x
Nik8PDI0Pj4yNCE9LTEyOCl7cj0yNDk4O2JyZWFrIEwyODQzfWJyZWFrfTtkZWZhdWx0OntpZigo
cyYtNjQpPDwyND4+MjQhPS0xMjgpe3I9MjUwMDticmVhayBMMjg0M319fXA9ZFtqKzJ8MF18MDtp
ZigocCYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwyODQxfXU9ZFtqKzN8MF18MDtpZigodSYxOTJ8
MCkhPTEyOCl7bT1qO2JyZWFrIEwyODQxfWlmKCgocyYyNTUpPDwxMiYyNTgwNDh8bDw8MTgmMTgz
NTAwOHxwPDw2JjQwMzJ8dSY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDI4NDF9bj1qKzR8MDtv
PWkrMXwwfX13aGlsZSgwKTtsPW8rMXwwO2lmKG4+Pj4wPGM+Pj4wJmw+Pj4wPGU+Pj4wKXtpPWw7
aj1ufWVsc2V7bT1uO2JyZWFrIEwyODQxfX1pZigocnwwKT09MjUwMCl7dj10LWJ8MDtyZXR1cm4g
dnwwfWVsc2UgaWYoKHJ8MCk9PTI0OTYpe3Y9dC1ifDA7cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDAp
PT0yNDk4KXt2PXQtYnwwO3JldHVybiB2fDB9ZWxzZSBpZigocnwwKT09MjQ4Myl7dj1xLWJ8MDty
ZXR1cm4gdnwwfWVsc2UgaWYoKHJ8MCk9PTI0ODUpe3Y9cS1ifDA7cmV0dXJuIHZ8MH1lbHNlIGlm
KChyfDApPT0yNDg3KXt2PXEtYnwwO3JldHVybiB2fDB9fWVsc2V7bT1ofX13aGlsZSgwKTt2PW0t
YnwwO3JldHVybiB2fDB9ZnVuY3Rpb24gam8oYSxiLGQsZSxmLGcsaCxqKXthPWF8MDtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MDtiPWk7aT1pKzE2
fDA7YT1ifDA7az1iKzh8MDtjW2E+PjJdPWQ7Y1trPj4yXT1nO2w9am0oZCxlLGEsZyxoLGssMTEx
NDExMSwwKXwwO2NbZj4+Ml09ZCsoKGNbYT4+Ml18MCktZCk7Y1tqPj4yXT1nKygoY1trPj4yXXww
KS1nPj4xPDwxKTtpPWI7cmV0dXJuIGx8MH1mdW5jdGlvbiBqcChhLGIsYyxkLGUpe2E9YXwwO2I9
YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO3JldHVybiBqbihjLGQsZSwxMTE0MTExLDApfDB9ZnVuY3Rp
b24ganEoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ganIoYSxiLGQsZSxm
LGcsaCxqKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2
YXIgaz0wLGw9MDtiPWk7aT1pKzE2fDA7YT1ifDA7az1iKzh8MDtjW2E+PjJdPWQ7Y1trPj4yXT1n
O2w9ancoZCxlLGEsZyxoLGssMTExNDExMSwwKXwwO2NbZj4+Ml09ZCsoKGNbYT4+Ml18MCktZD4+
Mjw8Mik7Y1tqPj4yXT1nKygoY1trPj4yXXwwKS1nKTtpPWI7cmV0dXJuIGx8MH1mdW5jdGlvbiBq
cyhhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2NbZj4+Ml09ZDtyZXR1
cm4gM31mdW5jdGlvbiBqdChhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBqdShhKXthPWF8MDty
ZXR1cm4gMH1mdW5jdGlvbiBqdihhKXthPWF8MDtyZXR1cm4gNH1mdW5jdGlvbiBqdyhiLGQsZSxm
LGcsaCxpLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anww
O3ZhciBrPTAsbD0wLG09MCxuPTA7Y1tlPj4yXT1iO2NbaD4+Ml09Zjtkb3tpZigoaiYyfDApIT0w
KXtpZigoZy1mfDApPDMpe2s9MTtyZXR1cm4ga3wwfWVsc2V7Y1toPj4yXT1mKzE7YVtmXT0tMTc7
Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0tNjk7Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7
YVtiXT0tNjU7YnJlYWt9fX13aGlsZSgwKTtmPWNbZT4+Ml18MDtpZihmPj4+MD49ZD4+PjApe2s9
MDtyZXR1cm4ga3wwfWo9ZztnPWY7TDI5MTI6d2hpbGUoMSl7Zj1jW2c+PjJdfDA7aWYoKGYmLTIw
NDh8MCk9PTU1Mjk2fGY+Pj4wPmk+Pj4wKXtrPTI7bD0yNTQ4O2JyZWFrfWRve2lmKGY+Pj4wPDEy
OCl7Yj1jW2g+PjJdfDA7aWYoKGotYnwwKTwxKXtrPTE7bD0yNTQ0O2JyZWFrIEwyOTEyfWNbaD4+
Ml09YisxO2FbYl09ZiYyNTV9ZWxzZXtpZihmPj4+MDwyMDQ4KXtiPWNbaD4+Ml18MDtpZigoai1i
fDApPDIpe2s9MTtsPTI1NDc7YnJlYWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjZ8MTky
KSYyNTU7Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0oZiY2M3wxMjgpJjI1NTticmVha31i
PWNbaD4+Ml18MDttPWotYnwwO2lmKGY+Pj4wPDY1NTM2KXtpZigobXwwKTwzKXtrPTE7bD0yNTQ5
O2JyZWFrIEwyOTEyfWNbaD4+Ml09YisxO2FbYl09KGY+Pj4xMnwyMjQpJjI1NTtuPWNbaD4+Ml18
MDtjW2g+PjJdPW4rMTthW25dPShmPj4+NiY2M3wxMjgpJjI1NTtuPWNbaD4+Ml18MDtjW2g+PjJd
PW4rMTthW25dPShmJjYzfDEyOCkmMjU1O2JyZWFrfWVsc2V7aWYoKG18MCk8NCl7az0xO2w9MjU0
MjticmVhayBMMjkxMn1jW2g+PjJdPWIrMTthW2JdPShmPj4+MTh8MjQwKSYyNTU7Yj1jW2g+PjJd
fDA7Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjEyJjYzfDEyOCkmMjU1O2I9Y1toPj4yXXwwO2NbaD4+
Ml09YisxO2FbYl09KGY+Pj42JjYzfDEyOCkmMjU1O2I9Y1toPj4yXXwwO2NbaD4+Ml09YisxO2Fb
Yl09KGYmNjN8MTI4KSYyNTU7YnJlYWt9fX13aGlsZSgwKTtmPShjW2U+PjJdfDApKzR8MDtjW2U+
PjJdPWY7aWYoZj4+PjA8ZD4+PjApe2c9Zn1lbHNle2s9MDtsPTI1NDM7YnJlYWt9fWlmKChsfDAp
PT0yNTQzKXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8MCk9PTI1NDIpe3JldHVybiBrfDB9ZWxzZSBp
ZigobHwwKT09MjU0NCl7cmV0dXJuIGt8MH1lbHNlIGlmKChsfDApPT0yNTQ4KXtyZXR1cm4ga3ww
fWVsc2UgaWYoKGx8MCk9PTI1NDkpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0Nyl7cmV0
dXJuIGt8MH1yZXR1cm4gMH1mdW5jdGlvbiBqeChiLGUsZixnLGgsaSxqLGspe2I9YnwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7Y1tmPj4yXT1iO2NbaT4+Ml09ZztnPWNbZj4+Ml18MDtk
b3tpZigoayY0fDApPT0wKXtsPWd9ZWxzZXtpZigoZS1nfDApPD0yKXtsPWc7YnJlYWt9aWYoKGFb
Z118MCkhPS0xNyl7bD1nO2JyZWFrfWlmKChhW2crMXwwXXwwKSE9LTY5KXtsPWc7YnJlYWt9aWYo
KGFbZysyfDBdfDApIT0tNjUpe2w9ZzticmVha31iPWcrM3wwO2NbZj4+Ml09YjtsPWJ9fXdoaWxl
KDApO0wyOTQ0OmRve2lmKGw+Pj4wPGU+Pj4wKXtnPWU7az1jW2k+PjJdfDA7Yj1sO0wyOTQ2Ondo
aWxlKDEpe2lmKGs+Pj4wPj1oPj4+MCl7bT1iO2JyZWFrIEwyOTQ0fW49YVtiXXwwO289biYyNTU7
ZG97aWYobjw8MjQ+PjI0Pi0xKXtpZihvPj4+MD5qPj4+MCl7cD0yO3E9MjYwOTticmVhayBMMjk0
Nn1jW2s+PjJdPW87Y1tmPj4yXT0oY1tmPj4yXXwwKSsxfWVsc2V7aWYoKG4mMjU1KTwxOTQpe3A9
MjtxPTI2MDI7YnJlYWsgTDI5NDZ9aWYoKG4mMjU1KTwyMjQpe2lmKChnLWJ8MCk8Mil7cD0xO3E9
MjYwNTticmVhayBMMjk0Nn1yPWRbYisxfDBdfDA7aWYoKHImMTkyfDApIT0xMjgpe3A9MjtxPTI1
OTg7YnJlYWsgTDI5NDZ9cz1yJjYzfG88PDYmMTk4NDtpZihzPj4+MD5qPj4+MCl7cD0yO3E9MjYw
NDticmVhayBMMjk0Nn1jW2s+PjJdPXM7Y1tmPj4yXT0oY1tmPj4yXXwwKSsyO2JyZWFrfWlmKChu
JjI1NSk8MjQwKXtpZigoZy1ifDApPDMpe3A9MTtxPTI2MDY7YnJlYWsgTDI5NDZ9cz1hW2IrMXww
XXwwO3N3aXRjaChvfDApe2Nhc2UgMjI0OntpZigocyYtMzIpPDwyND4+MjQhPS05Nil7cD0yO3E9
MjU5MTticmVhayBMMjk0Nn1icmVha307Y2FzZSAyMzc6e2lmKChzJi0zMik8PDI0Pj4yNCE9LTEy
OCl7cD0yO3E9MjU5MzticmVhayBMMjk0Nn1icmVha307ZGVmYXVsdDp7aWYoKHMmLTY0KTw8MjQ+
PjI0IT0tMTI4KXtwPTI7cT0yNjAzO2JyZWFrIEwyOTQ2fX19cj1kW2IrMnwwXXwwO2lmKChyJjE5
MnwwKSE9MTI4KXtwPTI7cT0yNTk0O2JyZWFrIEwyOTQ2fXQ9KHMmMjU1KTw8NiY0MDMyfG88PDEy
JjYxNDQwfHImNjM7aWYodD4+PjA+aj4+PjApe3A9MjtxPTI1OTI7YnJlYWsgTDI5NDZ9Y1trPj4y
XT10O2NbZj4+Ml09KGNbZj4+Ml18MCkrMzticmVha31pZigobiYyNTUpPj0yNDUpe3A9MjtxPTI2
MDc7YnJlYWsgTDI5NDZ9aWYoKGctYnwwKTw0KXtwPTE7cT0yNjA4O2JyZWFrIEwyOTQ2fXQ9YVti
KzF8MF18MDtzd2l0Y2gob3wwKXtjYXNlIDI0MDp7aWYoKHQrMTEyJjI1NSk+PTQ4KXtwPTI7cT0y
NTkwO2JyZWFrIEwyOTQ2fWJyZWFrfTtjYXNlIDI0NDp7aWYoKHQmLTE2KTw8MjQ+PjI0IT0tMTI4
KXtwPTI7cT0yNTk2O2JyZWFrIEwyOTQ2fWJyZWFrfTtkZWZhdWx0OntpZigodCYtNjQpPDwyND4+
MjQhPS0xMjgpe3A9MjtxPTI1OTc7YnJlYWsgTDI5NDZ9fX1yPWRbYisyfDBdfDA7aWYoKHImMTky
fDApIT0xMjgpe3A9MjtxPTI1OTk7YnJlYWsgTDI5NDZ9cz1kW2IrM3wwXXwwO2lmKChzJjE5Mnww
KSE9MTI4KXtwPTI7cT0yNjAxO2JyZWFrIEwyOTQ2fXU9KHQmMjU1KTw8MTImMjU4MDQ4fG88PDE4
JjE4MzUwMDh8cjw8NiY0MDMyfHMmNjM7aWYodT4+PjA+aj4+PjApe3A9MjtxPTI2MDA7YnJlYWsg
TDI5NDZ9Y1trPj4yXT11O2NbZj4+Ml09KGNbZj4+Ml18MCkrNH19d2hpbGUoMCk7bz0oY1tpPj4y
XXwwKSs0fDA7Y1tpPj4yXT1vO249Y1tmPj4yXXwwO2lmKG4+Pj4wPGU+Pj4wKXtrPW87Yj1ufWVs
c2V7bT1uO2JyZWFrIEwyOTQ0fX1pZigocXwwKT09MjU5Nyl7cmV0dXJuIHB8MH1lbHNlIGlmKChx
fDApPT0yNTk4KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTkpe3JldHVybiBwfDB9ZWxz
ZSBpZigocXwwKT09MjYwMCl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTkzKXtyZXR1cm4g
cHwwfWVsc2UgaWYoKHF8MCk9PTI1OTQpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5Nil7
cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA1KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9
PTI2MDYpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwNyl7cmV0dXJuIHB8MH1lbHNlIGlm
KChxfDApPT0yNjA4KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDkpe3JldHVybiBwfDB9
ZWxzZSBpZigocXwwKT09MjU5MCl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTkxKXtyZXR1
cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTIpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYw
MSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjAyKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8
MCk9PTI2MDMpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwNCl7cmV0dXJuIHB8MH19ZWxz
ZXttPWx9fXdoaWxlKDApO3A9bT4+PjA8ZT4+PjB8MDtyZXR1cm4gcHwwfWZ1bmN0aW9uIGp5KGIs
YyxlLGYsZyl7Yj1ifDA7Yz1jfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxpPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7ZG97aWYoKGcmNHwwKT09
MCl7aD1ifWVsc2V7aWYoKGMtYnwwKTw9Mil7aD1iO2JyZWFrfWlmKChhW2JdfDApIT0tMTcpe2g9
YjticmVha31pZigoYVtiKzF8MF18MCkhPS02OSl7aD1iO2JyZWFrfWg9KGFbYisyfDBdfDApPT0t
NjU/YiszfDA6Yn19d2hpbGUoMCk7TDMwMTE6ZG97aWYoaD4+PjA8Yz4+PjAmKGV8MCkhPTApe2c9
YztpPTE7aj1oO0wzMDEzOndoaWxlKDEpe2s9YVtqXXwwO2w9ayYyNTU7ZG97aWYoazw8MjQ+PjI0
Pi0xKXtpZihsPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwzMDExfW49aisxfDB9ZWxzZXtpZigoayYy
NTUpPDE5NCl7bT1qO2JyZWFrIEwzMDExfWlmKChrJjI1NSk8MjI0KXtpZigoZy1qfDApPDIpe209
ajticmVhayBMMzAxMX1vPWRbaisxfDBdfDA7aWYoKG8mMTkyfDApIT0xMjgpe209ajticmVhayBM
MzAxMX1pZigobyY2M3xsPDw2JjE5ODQpPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwzMDExfW49aisy
fDA7YnJlYWt9aWYoKGsmMjU1KTwyNDApe3A9ajtpZigoZy1wfDApPDMpe209ajticmVhayBMMzAx
MX1vPWFbaisxfDBdfDA7c3dpdGNoKGx8MCl7Y2FzZSAyMjQ6e2lmKChvJi0zMik8PDI0Pj4yNCE9
LTk2KXtxPTI2MzA7YnJlYWsgTDMwMTN9YnJlYWt9O2Nhc2UgMjM3OntpZigobyYtMzIpPDwyND4+
MjQhPS0xMjgpe3E9MjYzMjticmVhayBMMzAxM31icmVha307ZGVmYXVsdDp7aWYoKG8mLTY0KTw8
MjQ+PjI0IT0tMTI4KXtxPTI2MzQ7YnJlYWsgTDMwMTN9fX1yPWRbaisyfDBdfDA7aWYoKHImMTky
fDApIT0xMjgpe209ajticmVhayBMMzAxMX1pZigoKG8mMjU1KTw8NiY0MDMyfGw8PDEyJjYxNDQw
fHImNjMpPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwzMDExfW49aiszfDA7YnJlYWt9aWYoKGsmMjU1
KT49MjQ1KXttPWo7YnJlYWsgTDMwMTF9cz1qO2lmKChnLXN8MCk8NCl7bT1qO2JyZWFrIEwzMDEx
fXI9YVtqKzF8MF18MDtzd2l0Y2gobHwwKXtjYXNlIDI0MDp7aWYoKHIrMTEyJjI1NSk+PTQ4KXtx
PTI2NDI7YnJlYWsgTDMwMTN9YnJlYWt9O2Nhc2UgMjQ0OntpZigociYtMTYpPDwyND4+MjQhPS0x
Mjgpe3E9MjY0NDticmVhayBMMzAxM31icmVha307ZGVmYXVsdDp7aWYoKHImLTY0KTw8MjQ+PjI0
IT0tMTI4KXtxPTI2NDY7YnJlYWsgTDMwMTN9fX1vPWRbaisyfDBdfDA7aWYoKG8mMTkyfDApIT0x
Mjgpe209ajticmVhayBMMzAxMX10PWRbaiszfDBdfDA7aWYoKHQmMTkyfDApIT0xMjgpe209ajti
cmVhayBMMzAxMX1pZigoKHImMjU1KTw8MTImMjU4MDQ4fGw8PDE4JjE4MzUwMDh8bzw8NiY0MDMy
fHQmNjMpPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwzMDExfW49ais0fDB9fXdoaWxlKDApO2lmKCEo
bj4+PjA8Yz4+PjAmaT4+PjA8ZT4+PjApKXttPW47YnJlYWsgTDMwMTF9aT1pKzF8MDtqPW59aWYo
KHF8MCk9PTI2NDQpe3U9cy1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjQyKXt1PXMt
YnwwO3JldHVybiB1fDB9ZWxzZSBpZigocXwwKT09MjYzMCl7dT1wLWJ8MDtyZXR1cm4gdXwwfWVs
c2UgaWYoKHF8MCk9PTI2MzIpe3U9cC1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjM0
KXt1PXAtYnwwO3JldHVybiB1fDB9ZWxzZSBpZigocXwwKT09MjY0Nil7dT1zLWJ8MDtyZXR1cm4g
dXwwfX1lbHNle209aH19d2hpbGUoMCk7dT1tLWJ8MDtyZXR1cm4gdXwwfWZ1bmN0aW9uIGp6KGIp
e2I9YnwwO3JldHVybiBhW2IrOHwwXXwwfWZ1bmN0aW9uIGpBKGEpe2E9YXwwO3JldHVybiBjW2Er
OD4+Ml18MH1mdW5jdGlvbiBqQihiKXtiPWJ8MDtyZXR1cm4gYVtiKzl8MF18MH1mdW5jdGlvbiBq
QyhhKXthPWF8MDtyZXR1cm4gY1thKzEyPj4yXXwwfWZ1bmN0aW9uIGpEKGEsYixkLGUsZixnLGgs
ail7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9
MCxsPTA7Yj1pO2k9aSsxNnwwO2E9YnwwO2s9Yis4fDA7Y1thPj4yXT1kO2Nbaz4+Ml09ZztsPWp4
KGQsZSxhLGcsaCxrLDExMTQxMTEsMCl8MDtjW2Y+PjJdPWQrKChjW2E+PjJdfDApLWQpO2Nbaj4+
Ml09ZysoKGNbaz4+Ml18MCktZz4+Mjw8Mik7aT1iO3JldHVybiBsfDB9ZnVuY3Rpb24gakUoYSxi
LGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtyZXR1cm4gankoYyxkLGUsMTEx
NDExMSwwKXwwfWZ1bmN0aW9uIGpGKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0
aW9uIGpHKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGpIKGEpe2E9YXww
O2NbYT4+Ml09MzAzMjtkUChhKzEyfDApO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGpJ
KGEpe2E9YXwwO2NbYT4+Ml09MzAzMjtkUChhKzEyfDApO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9u
IGpKKGEpe2E9YXwwO2NbYT4+Ml09Mjk4NDtkUChhKzE2fDApO2RlKGF8MCk7a1MoYSk7cmV0dXJu
fWZ1bmN0aW9uIGpLKGEpe2E9YXwwO2NbYT4+Ml09Mjk4NDtkUChhKzE2fDApO2RlKGF8MCk7cmV0
dXJufWZ1bmN0aW9uIGpMKGEsYil7YT1hfDA7Yj1ifDA7ZFkoYSxiKzEyfDApO3JldHVybn1mdW5j
dGlvbiBqTShhLGIpe2E9YXwwO2I9YnwwO2RZKGEsYisxNnwwKTtyZXR1cm59ZnVuY3Rpb24gak4o
YSxiKXthPWF8MDtiPWJ8MDtkWihhLDEyODgsNCk7cmV0dXJufWZ1bmN0aW9uIGpPKGEsYil7YT1h
fDA7Yj1ifDA7ZXgoYSwxMjY0LGttKDEyNjQpfDApO3JldHVybn1mdW5jdGlvbiBqUChhLGIpe2E9
YXwwO2I9YnwwO2RaKGEsMTI1Niw1KTtyZXR1cm59ZnVuY3Rpb24galEoYSxiKXthPWF8MDtiPWJ8
MDtleChhLDEyMzIsa20oMTIzMil8MCk7cmV0dXJufWZ1bmN0aW9uIGpSKGIpe2I9YnwwO3ZhciBk
PTA7aWYoKGFbMTYzNTJdfDApIT0wKXtkPWNbMzcwMl18MDtyZXR1cm4gZHwwfWlmKChiYygxNjM1
Mil8MCk9PTApe2Q9Y1szNzAyXXwwO3JldHVybiBkfDB9ZG97aWYoKGFbMTYyMzJdfDApPT0wKXtp
ZigoYmMoMTYyMzIpfDApPT0wKXticmVha31rJCgxMTM0NCwwLDE2OCk7YSQoMjY2LDAsdXwwKXww
fX13aGlsZSgwKTtkUSgxMTM0NCwxNTM2KXwwO2RRKDExMzU2LDE1MjgpfDA7ZFEoMTEzNjgsMTUy
MCl8MDtkUSgxMTM4MCwxNTA0KXwwO2RRKDExMzkyLDE0ODgpfDA7ZFEoMTE0MDQsMTQ4MCl8MDtk
USgxMTQxNiwxNDY0KXwwO2RRKDExNDI4LDE0NTYpfDA7ZFEoMTE0NDAsMTQ0OCl8MDtkUSgxMTQ1
MiwxNDQwKXwwO2RRKDExNDY0LDE0MzIpfDA7ZFEoMTE0NzYsMTQwMCl8MDtkUSgxMTQ4OCwxMzky
KXwwO2RRKDExNTAwLDEzODQpfDA7Y1szNzAyXT0xMTM0NDtkPWNbMzcwMl18MDtyZXR1cm4gZHww
fWZ1bmN0aW9uIGpTKGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYyOTZdfDApIT0wKXtkPWNbMzY4
MF18MDtyZXR1cm4gZHwwfWlmKChiYygxNjI5Nil8MCk9PTApe2Q9Y1szNjgwXXwwO3JldHVybiBk
fDB9ZG97aWYoKGFbMTYyMDhdfDApPT0wKXtpZigoYmMoMTYyMDgpfDApPT0wKXticmVha31rJCgx
MDYwMCwwLDE2OCk7YSQoMTQ4LDAsdXwwKXwwfX13aGlsZSgwKTtlZigxMDYwMCwxOTEyKXwwO2Vm
KDEwNjEyLDE4ODApfDA7ZWYoMTA2MjQsMTg0OCl8MDtlZigxMDYzNiwxODA4KXwwO2VmKDEwNjQ4
LDE3NjgpfDA7ZWYoMTA2NjAsMTczNil8MDtlZigxMDY3MiwxNjk2KXwwO2VmKDEwNjg0LDE2ODAp
fDA7ZWYoMTA2OTYsMTYyNCl8MDtlZigxMDcwOCwxNjA4KXwwO2VmKDEwNzIwLDE1OTIpfDA7ZWYo
MTA3MzIsMTU3Nil8MDtlZigxMDc0NCwxNTYwKXwwO2VmKDEwNzU2LDE1NDQpfDA7Y1szNjgwXT0x
MDYwMDtkPWNbMzY4MF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpUKGIpe2I9YnwwO3ZhciBkPTA7
aWYoKGFbMTYzNDRdfDApIT0wKXtkPWNbMzcwMF18MDtyZXR1cm4gZHwwfWlmKChiYygxNjM0NCl8
MCk9PTApe2Q9Y1szNzAwXXwwO3JldHVybiBkfDB9ZG97aWYoKGFbMTYyMjRdfDApPT0wKXtpZigo
YmMoMTYyMjQpfDApPT0wKXticmVha31rJCgxMTA1NiwwLDI4OCk7YSQoMTcwLDAsdXwwKXwwfX13
aGlsZSgwKTtkUSgxMTA1NiwyODgpfDA7ZFEoMTEwNjgsMjcyKXwwO2RRKDExMDgwLDI2NCl8MDtk
USgxMTA5MiwyNTYpfDA7ZFEoMTExMDQsMjQ4KXwwO2RRKDExMTE2LDI0MCl8MDtkUSgxMTEyOCwy
MzIpfDA7ZFEoMTExNDAsMjI0KXwwO2RRKDExMTUyLDE2OCl8MDtkUSgxMTE2NCwxNjApfDA7ZFEo
MTExNzYsMTQ0KXwwO2RRKDExMTg4LDEyOCl8MDtkUSgxMTIwMCwxMjApfDA7ZFEoMTEyMTIsMTEy
KXwwO2RRKDExMjI0LDEwNCl8MDtkUSgxMTIzNiw5Nil8MDtkUSgxMTI0OCwyNDgpfDA7ZFEoMTEy
NjAsODgpfDA7ZFEoMTEyNzIsODApfDA7ZFEoMTEyODQsMTk3Nil8MDtkUSgxMTI5NiwxOTY4KXww
O2RRKDExMzA4LDE5NjApfDA7ZFEoMTEzMjAsMTk1Mil8MDtkUSgxMTMzMiwxOTQ0KXwwO2NbMzcw
MF09MTEwNTY7ZD1jWzM3MDBdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBqVShiKXtiPWJ8MDt2YXIg
ZD0wO2lmKChhWzE2Mjg4XXwwKSE9MCl7ZD1jWzM2NzhdfDA7cmV0dXJuIGR8MH1pZigoYmMoMTYy
ODgpfDApPT0wKXtkPWNbMzY3OF18MDtyZXR1cm4gZHwwfWRve2lmKChhWzE2MjAwXXwwKT09MCl7
aWYoKGJjKDE2MjAwKXwwKT09MCl7YnJlYWt9ayQoMTAzMTIsMCwyODgpO2EkKDEyMiwwLHV8MCl8
MH19d2hpbGUoMCk7ZWYoMTAzMTIsODI0KXwwO2VmKDEwMzI0LDc4NCl8MDtlZigxMDMzNiw3NjAp
fDA7ZWYoMTAzNDgsNzM2KXwwO2VmKDEwMzYwLDQyNCl8MDtlZigxMDM3Miw3MTIpfDA7ZWYoMTAz
ODQsNjg4KXwwO2VmKDEwMzk2LDY1Nil8MDtlZigxMDQwOCw2MTYpfDA7ZWYoMTA0MjAsNTg0KXww
O2VmKDEwNDMyLDU0NCl8MDtlZigxMDQ0NCw1MDQpfDA7ZWYoMTA0NTYsNDg4KXwwO2VmKDEwNDY4
LDQ3Mil8MDtlZigxMDQ4MCw0NTYpfDA7ZWYoMTA0OTIsNDQwKXwwO2VmKDEwNTA0LDQyNCl8MDtl
ZigxMDUxNiw0MDgpfDA7ZWYoMTA1MjgsMzkyKXwwO2VmKDEwNTQwLDM3Nil8MDtlZigxMDU1Miwz
NDQpfDA7ZWYoMTA1NjQsMzI4KXwwO2VmKDEwNTc2LDMxMil8MDtlZigxMDU4OCwyOTYpfDA7Y1sz
Njc4XT0xMDMxMjtkPWNbMzY3OF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpWKGIpe2I9YnwwO3Zh
ciBkPTA7aWYoKGFbMTYzNjBdfDApIT0wKXtkPWNbMzcwNF18MDtyZXR1cm4gZHwwfWlmKChiYygx
NjM2MCl8MCk9PTApe2Q9Y1szNzA0XXwwO3JldHVybiBkfDB9ZG97aWYoKGFbMTYyNDBdfDApPT0w
KXtpZigoYmMoMTYyNDApfDApPT0wKXticmVha31rJCgxMTUxMiwwLDI4OCk7YSQoMTIwLDAsdXww
KXwwfX13aGlsZSgwKTtkUSgxMTUxMiw4NjQpfDA7ZFEoMTE1MjQsODU2KXwwO2NbMzcwNF09MTE1
MTI7ZD1jWzM3MDRdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBqVyhiKXtiPWJ8MDt2YXIgZD0wO2lm
KChhWzE2MzA0XXwwKSE9MCl7ZD1jWzM2ODJdfDA7cmV0dXJuIGR8MH1pZigoYmMoMTYzMDQpfDAp
PT0wKXtkPWNbMzY4Ml18MDtyZXR1cm4gZHwwfWRve2lmKChhWzE2MjE2XXwwKT09MCl7aWYoKGJj
KDE2MjE2KXwwKT09MCl7YnJlYWt9ayQoMTA3NjgsMCwyODgpO2EkKDI0MCwwLHV8MCl8MH19d2hp
bGUoMCk7ZWYoMTA3NjgsODg4KXwwO2VmKDEwNzgwLDg3Mil8MDtjWzM2ODJdPTEwNzY4O2Q9Y1sz
NjgyXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galgoYil7Yj1ifDA7aWYoKGFbMTYzNjhdfDApIT0w
KXtyZXR1cm4gMTQ4MjR9aWYoKGJjKDE2MzY4KXwwKT09MCl7cmV0dXJuIDE0ODI0fWRaKDE0ODI0
LDEyMTYsOCk7YSQoMjU4LDE0ODI0LHV8MCl8MDtyZXR1cm4gMTQ4MjR9ZnVuY3Rpb24galkoYil7
Yj1ifDA7aWYoKGFbMTYzMTJdfDApIT0wKXtyZXR1cm4gMTQ3MzZ9aWYoKGJjKDE2MzEyKXwwKT09
MCl7cmV0dXJuIDE0NzM2fWV4KDE0NzM2LDExNzYsa20oMTE3Nil8MCk7YSQoMTkyLDE0NzM2LHV8
MCl8MDtyZXR1cm4gMTQ3MzZ9ZnVuY3Rpb24galooYil7Yj1ifDA7aWYoKGFbMTYzOTJdfDApIT0w
KXtyZXR1cm4gMTQ4NzJ9aWYoKGJjKDE2MzkyKXwwKT09MCl7cmV0dXJuIDE0ODcyfWRaKDE0ODcy
LDExNDQsOCk7YSQoMjU4LDE0ODcyLHV8MCl8MDtyZXR1cm4gMTQ4NzJ9ZnVuY3Rpb24gal8oYil7
Yj1ifDA7aWYoKGFbMTYzMzZdfDApIT0wKXtyZXR1cm4gMTQ3ODR9aWYoKGJjKDE2MzM2KXwwKT09
MCl7cmV0dXJuIDE0Nzg0fWV4KDE0Nzg0LDExMDQsa20oMTEwNCl8MCk7YSQoMTkyLDE0Nzg0LHV8
MCl8MDtyZXR1cm4gMTQ3ODR9ZnVuY3Rpb24gaiQoYil7Yj1ifDA7aWYoKGFbMTYzODRdfDApIT0w
KXtyZXR1cm4gMTQ4NTZ9aWYoKGJjKDE2Mzg0KXwwKT09MCl7cmV0dXJuIDE0ODU2fWRaKDE0ODU2
LDEwODAsMjApO2EkKDI1OCwxNDg1Nix1fDApfDA7cmV0dXJuIDE0ODU2fWZ1bmN0aW9uIGowKGIp
e2I9YnwwO2lmKChhWzE2MzI4XXwwKSE9MCl7cmV0dXJuIDE0NzY4fWlmKChiYygxNjMyOCl8MCk9
PTApe3JldHVybiAxNDc2OH1leCgxNDc2OCw5OTIsa20oOTkyKXwwKTthJCgxOTIsMTQ3NjgsdXww
KXwwO3JldHVybiAxNDc2OH1mdW5jdGlvbiBqMShiKXtiPWJ8MDtpZigoYVsxNjM3Nl18MCkhPTAp
e3JldHVybiAxNDg0MH1pZigoYmMoMTYzNzYpfDApPT0wKXtyZXR1cm4gMTQ4NDB9ZFooMTQ4NDAs
OTc2LDExKTthJCgyNTgsMTQ4NDAsdXwwKXwwO3JldHVybiAxNDg0MH1mdW5jdGlvbiBqMihiKXti
PWJ8MDtpZigoYVsxNjMyMF18MCkhPTApe3JldHVybiAxNDc1Mn1pZigoYmMoMTYzMjApfDApPT0w
KXtyZXR1cm4gMTQ3NTJ9ZXgoMTQ3NTIsOTI4LGttKDkyOCl8MCk7YSQoMTkyLDE0NzUyLHV8MCl8
MDtyZXR1cm4gMTQ3NTJ9ZnVuY3Rpb24gajMoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MDti
PWErNHwwO2Q9KGNbYT4+Ml18MCkrKGNbYis0Pj4yXXwwKXwwO2E9ZDtlPWNbYj4+Ml18MDtpZigo
ZSYxfDApPT0wKXtmPWU7YllbZiY1MTFdKGEpO3JldHVybn1lbHNle2Y9Y1soY1tkPj4yXXwwKSso
ZS0xKT4+Ml18MDtiWVtmJjUxMV0oYSk7cmV0dXJufX1mdW5jdGlvbiBqNChhKXthPWF8MDtlZSgx
MTA0NCk7ZWUoMTEwMzIpO2VlKDExMDIwKTtlZSgxMTAwOCk7ZWUoMTA5OTYpO2VlKDEwOTg0KTtl
ZSgxMDk3Mik7ZWUoMTA5NjApO2VlKDEwOTQ4KTtlZSgxMDkzNik7ZWUoMTA5MjQpO2VlKDEwOTEy
KTtlZSgxMDkwMCk7ZWUoMTA4ODgpO2VlKDEwODc2KTtlZSgxMDg2NCk7ZWUoMTA4NTIpO2VlKDEw
ODQwKTtlZSgxMDgyOCk7ZWUoMTA4MTYpO2VlKDEwODA0KTtlZSgxMDc5Mik7ZWUoMTA3ODApO2Vl
KDEwNzY4KTtyZXR1cm59ZnVuY3Rpb24gajUoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxn
PTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtlPWIrOHwwO2Y9
Yis0fDA7Zz1jW2Y+PjJdfDA7aD1jW2U+PjJdfDA7aT1nO2lmKGgtaT4+Mj4+PjA+PWQ+Pj4wKXtq
PWQ7az1nO2Rve2lmKChrfDApPT0wKXtsPTB9ZWxzZXtjW2s+PjJdPTA7bD1jW2Y+PjJdfDB9az1s
KzR8MDtjW2Y+PjJdPWs7aj1qLTF8MDt9d2hpbGUoKGp8MCkhPTApO3JldHVybn1qPWIrMTZ8MDtr
PWJ8MDtsPWNbaz4+Ml18MDtnPWktbD4+MjtpPWcrZHwwO2lmKGk+Pj4wPjEwNzM3NDE4MjMpe2ly
KDApfW09aC1sfDA7ZG97aWYobT4+Mj4+PjA+NTM2ODcwOTEwKXtuPTEwNzM3NDE4MjM7bz0yOTE5
fWVsc2V7bD1tPj4xO2g9bD4+PjA8aT4+PjA/aTpsO2lmKChofDApPT0wKXtwPTA7cT0wO2JyZWFr
fWw9YisxMjh8MDtpZighKChhW2xdJjEpPT0wJmg+Pj4wPDI5KSl7bj1oO289MjkxOTticmVha31h
W2xdPTE7cD1qO3E9aH19d2hpbGUoMCk7aWYoKG98MCk9PTI5MTkpe3A9a08objw8Mil8MDtxPW59
bj1kO2Q9cCsoZzw8Mil8MDtkb3tpZigoZHwwKT09MCl7cj0wfWVsc2V7Y1tkPj4yXT0wO3I9ZH1k
PXIrNHwwO249bi0xfDA7fXdoaWxlKChufDApIT0wKTtuPXArKHE8PDIpfDA7cT1jW2s+PjJdfDA7
cj0oY1tmPj4yXXwwKS1xfDA7bz1wKyhnLShyPj4yKTw8Mil8MDtnPW87cD1xO2tZKGd8MCxwfDAs
cil8MDtjW2s+PjJdPW87Y1tmPj4yXT1kO2NbZT4+Ml09bjtpZigocXwwKT09MCl7cmV0dXJufWlm
KChxfDApPT0oanwwKSl7YVtiKzEyOHwwXT0wO3JldHVybn1lbHNle2tTKHApO3JldHVybn19ZnVu
Y3Rpb24gajYoYSl7YT1hfDA7ZFAoMTE3ODgpO2RQKDExNzc2KTtkUCgxMTc2NCk7ZFAoMTE3NTIp
O2RQKDExNzQwKTtkUCgxMTcyOCk7ZFAoMTE3MTYpO2RQKDExNzA0KTtkUCgxMTY5Mik7ZFAoMTE2
ODApO2RQKDExNjY4KTtkUCgxMTY1Nik7ZFAoMTE2NDQpO2RQKDExNjMyKTtkUCgxMTYyMCk7ZFAo
MTE2MDgpO2RQKDExNTk2KTtkUCgxMTU4NCk7ZFAoMTE1NzIpO2RQKDExNTYwKTtkUCgxMTU0OCk7
ZFAoMTE1MzYpO2RQKDExNTI0KTtkUCgxMTUxMik7cmV0dXJufWZ1bmN0aW9uIGo3KGEpe2E9YXww
O2VlKDEwNTg4KTtlZSgxMDU3Nik7ZWUoMTA1NjQpO2VlKDEwNTUyKTtlZSgxMDU0MCk7ZWUoMTA1
MjgpO2VlKDEwNTE2KTtlZSgxMDUwNCk7ZWUoMTA0OTIpO2VlKDEwNDgwKTtlZSgxMDQ2OCk7ZWUo
MTA0NTYpO2VlKDEwNDQ0KTtlZSgxMDQzMik7ZWUoMTA0MjApO2VlKDEwNDA4KTtlZSgxMDM5Nik7
ZWUoMTAzODQpO2VlKDEwMzcyKTtlZSgxMDM2MCk7ZWUoMTAzNDgpO2VlKDEwMzM2KTtlZSgxMDMy
NCk7ZWUoMTAzMTIpO3JldHVybn1mdW5jdGlvbiBqOChhKXthPWF8MDtkUCgxMTMzMik7ZFAoMTEz
MjApO2RQKDExMzA4KTtkUCgxMTI5Nik7ZFAoMTEyODQpO2RQKDExMjcyKTtkUCgxMTI2MCk7ZFAo
MTEyNDgpO2RQKDExMjM2KTtkUCgxMTIyNCk7ZFAoMTEyMTIpO2RQKDExMjAwKTtkUCgxMTE4OCk7
ZFAoMTExNzYpO2RQKDExMTY0KTtkUCgxMTE1Mik7ZFAoMTExNDApO2RQKDExMTI4KTtkUCgxMTEx
Nik7ZFAoMTExMDQpO2RQKDExMDkyKTtkUCgxMTA4MCk7ZFAoMTEwNjgpO2RQKDExMDU2KTtyZXR1
cm59ZnVuY3Rpb24gajkoYSl7YT1hfDA7ZWUoMTA3NTYpO2VlKDEwNzQ0KTtlZSgxMDczMik7ZWUo
MTA3MjApO2VlKDEwNzA4KTtlZSgxMDY5Nik7ZWUoMTA2ODQpO2VlKDEwNjcyKTtlZSgxMDY2MCk7
ZWUoMTA2NDgpO2VlKDEwNjM2KTtlZSgxMDYyNCk7ZWUoMTA2MTIpO2VlKDEwNjAwKTtyZXR1cm59
ZnVuY3Rpb24ga2EoYSl7YT1hfDA7ZFAoMTE1MDApO2RQKDExNDg4KTtkUCgxMTQ3Nik7ZFAoMTE0
NjQpO2RQKDExNDUyKTtkUCgxMTQ0MCk7ZFAoMTE0MjgpO2RQKDExNDE2KTtkUCgxMTQwNCk7ZFAo
MTEzOTIpO2RQKDExMzgwKTtkUCgxMTM2OCk7ZFAoMTEzNTYpO2RQKDExMzQ0KTtyZXR1cm59ZnVu
Y3Rpb24ga2IoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO3JldHVybiBrYygwLGEsYiwoY3wwKSE9
MD9jOjk4MzIpfDB9ZnVuY3Rpb24ga2MoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAsdD0wLHU9MCx2
PTAsdz0wO2c9aTtpPWkrOHwwO2g9Z3wwO2NbaD4+Ml09YjtqPSgoZnwwKT09MD85ODI0OmYpfDA7
Zj1jW2o+PjJdfDA7TDc6ZG97aWYoKGR8MCk9PTApe2lmKChmfDApPT0wKXtrPTB9ZWxzZXticmVh
a31pPWc7cmV0dXJuIGt8MH1lbHNle2lmKChifDApPT0wKXtsPWg7Y1toPj4yXT1sO209bH1lbHNl
e209Yn1pZigoZXwwKT09MCl7az0tMjtpPWc7cmV0dXJuIGt8MH1kb3tpZigoZnwwKT09MCl7bD1h
W2RdfDA7bj1sJjI1NTtpZihsPDwyND4+MjQ+LTEpe2NbbT4+Ml09bjtrPWw8PDI0Pj4yNCE9MHww
O2k9ZztyZXR1cm4ga3wwfWVsc2V7bD1uLTE5NHwwO2lmKGw+Pj4wPjUwKXticmVhayBMN31vPWQr
MXwwO3A9Y1tzKyhsPDwyKT4+Ml18MDtxPWUtMXwwO2JyZWFrfX1lbHNle289ZDtwPWY7cT1lfX13
aGlsZSgwKTtMMjU6ZG97aWYoKHF8MCk9PTApe3I9cH1lbHNle2w9YVtvXXwwO249KGwmMjU1KT4+
PjM7aWYoKG4tMTZ8bisocD4+MjYpKT4+PjA+Nyl7YnJlYWsgTDd9ZWxzZXt0PW87dT1wO3Y9cTt3
PWx9d2hpbGUoMSl7dD10KzF8MDt1PSh3JjI1NSktMTI4fHU8PDY7dj12LTF8MDtpZigodXwwKT49
MCl7YnJlYWt9aWYoKHZ8MCk9PTApe3I9dTticmVhayBMMjV9dz1hW3RdfDA7aWYoKCh3JjI1NSkt
MTI4fDApPj4+MD42Myl7YnJlYWsgTDd9fWNbaj4+Ml09MDtjW20+PjJdPXU7az1lLXZ8MDtpPWc7
cmV0dXJuIGt8MH19d2hpbGUoMCk7Y1tqPj4yXT1yO2s9LTI7aT1nO3JldHVybiBrfDB9fXdoaWxl
KDApO2Nbaj4+Ml09MDtjWyhidygpfDApPj4yXT0xMzg7az0tMTtpPWc7cmV0dXJuIGt8MH1mdW5j
dGlvbiBrZChhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAs
aD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2c9
aTtpPWkrMTAzMnwwO2g9Z3wwO2o9ZysxMDI0fDA7az1jW2I+PjJdfDA7Y1tqPj4yXT1rO2w9KGF8
MCkhPTA7bT1sP2U6MjU2O2U9bD9hOmh8MDtMMzg6ZG97aWYoKGt8MCk9PTB8KG18MCk9PTApe249
MDtvPWQ7cD1tO3E9ZTtyPWt9ZWxzZXthPWh8MDtzPW07dD1kO3U9MDt2PWU7dz1rO3doaWxlKDEp
e3g9dD4+PjI7eT14Pj4+MD49cz4+PjA7aWYoISh5fHQ+Pj4wPjEzMSkpe249dTtvPXQ7cD1zO3E9
djtyPXc7YnJlYWsgTDM4fXo9eT9zOng7QT10LXp8MDt4PWtlKHYsaix6LGYpfDA7aWYoKHh8MCk9
PS0xKXticmVha31pZigodnwwKT09KGF8MCkpe0I9YTtDPXN9ZWxzZXtCPXYrKHg8PDIpfDA7Qz1z
LXh8MH16PXgrdXwwO3g9Y1tqPj4yXXwwO2lmKCh4fDApPT0wfChDfDApPT0wKXtuPXo7bz1BO3A9
QztxPUI7cj14O2JyZWFrIEwzOH1lbHNle3M9Qzt0PUE7dT16O3Y9Qjt3PXh9fW49LTE7bz1BO3A9
MDtxPXY7cj1jW2o+PjJdfDB9fXdoaWxlKDApO0w0OTpkb3tpZigocnwwKT09MCl7RD1ufWVsc2V7
aWYoKHB8MCk9PTB8KG98MCk9PTApe0Q9bjticmVha31lbHNle0U9cDtGPW87Rz1uO0g9cTtJPXJ9
d2hpbGUoMSl7Sj1rYyhILEksRixmKXwwO2lmKChKKzJ8MCk+Pj4wPDMpe2JyZWFrfUE9KGNbaj4+
Ml18MCkrSnwwO2Nbaj4+Ml09QTtCPUUtMXwwO0M9RysxfDA7aWYoKEJ8MCk9PTB8KEZ8MCk9PShK
fDApKXtEPUM7YnJlYWsgTDQ5fWVsc2V7RT1CO0Y9Ri1KfDA7Rz1DO0g9SCs0fDA7ST1BfX1zd2l0
Y2goSnwwKXtjYXNlIDA6e2Nbaj4+Ml09MDtEPUc7YnJlYWsgTDQ5O2JyZWFrfTtjYXNlLTE6e0Q9
LTE7YnJlYWsgTDQ5O2JyZWFrfTtkZWZhdWx0OntjW2Y+PjJdPTA7RD1HO2JyZWFrIEw0OX19fX13
aGlsZSgwKTtpZighbCl7aT1nO3JldHVybiBEfDB9Y1tiPj4yXT1jW2o+PjJdO2k9ZztyZXR1cm4g
RHwwfWZ1bmN0aW9uIGtlKGIsZSxmLGcpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAs
aT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0w
LF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTA7aD1jW2U+PjJdfDA7ZG97aWYo
KGd8MCk9PTApe2k9NTZ9ZWxzZXtqPWd8MDtrPWNbaj4+Ml18MDtpZigoa3wwKT09MCl7aT01Njti
cmVha31pZigoYnwwKT09MCl7bD1rO209aDtuPWY7aT02NzticmVha31jW2o+PjJdPTA7bz1rO3A9
aDtxPWI7cj1mO2k9ODd9fXdoaWxlKDApO2lmKChpfDApPT01Nil7aWYoKGJ8MCk9PTApe3Q9aDt1
PWY7aT01OH1lbHNle3Y9aDt3PWI7eD1mO2k9NTd9fUw3MDp3aGlsZSgxKXtpZigoaXwwKT09ODcp
e2k9MDtoPWRbcF18MDtnPWg+Pj4zO2lmKChnLTE2fGcrKG8+PjI2KSk+Pj4wPjcpe2k9ODg7YnJl
YWt9Zz1wKzF8MDt5PWgtMTI4fG88PDY7ZG97aWYoKHl8MCk8MCl7aD0oZFtnXXwwKS0xMjh8MDtp
ZihoPj4+MD42Myl7aT05MTticmVhayBMNzB9az1wKzJ8MDt6PWh8eTw8NjtpZigoenwwKT49MCl7
QT16O0I9azticmVha31oPShkW2tdfDApLTEyOHwwO2lmKGg+Pj4wPjYzKXtpPTk0O2JyZWFrIEw3
MH1BPWh8ejw8NjtCPXArM3wwfWVsc2V7QT15O0I9Z319d2hpbGUoMCk7Y1txPj4yXT1BO3Y9Qjt3
PXErNHwwO3g9ci0xfDA7aT01Nztjb250aW51ZX1lbHNlIGlmKChpfDApPT01OCl7aT0wO2c9YVt0
XXwwO2Rve2lmKCgoZyYyNTUpLTF8MCk+Pj4wPDEyNyl7aWYoKHQmM3wwKSE9MCl7Qz10O0Q9dTtF
PWc7YnJlYWt9aD1jW3Q+PjJdfDA7aWYoKChoLTE2ODQzMDA5fGgpJi0yMTM5MDYyMTQ0fDApPT0w
KXtGPXU7Rz10fWVsc2V7Qz10O0Q9dTtFPWgmMjU1O2JyZWFrfWRve0c9Rys0fDA7Rj1GLTR8MDtI
PWNbRz4+Ml18MDt9d2hpbGUoKChILTE2ODQzMDA5fEgpJi0yMTM5MDYyMTQ0fDApPT0wKTtDPUc7
RD1GO0U9SCYyNTV9ZWxzZXtDPXQ7RD11O0U9Z319d2hpbGUoMCk7Zz1FJjI1NTtpZigoZy0xfDAp
Pj4+MDwxMjcpe3Q9QysxfDA7dT1ELTF8MDtpPTU4O2NvbnRpbnVlfWg9Zy0xOTR8MDtpZihoPj4+
MD41MCl7ST1EO0o9YjtLPUM7aT05ODticmVha31sPWNbcysoaDw8Mik+PjJdfDA7bT1DKzF8MDtu
PUQ7aT02Nztjb250aW51ZX1lbHNlIGlmKChpfDApPT01Nyl7aT0wO2lmKCh4fDApPT0wKXtMPWY7
aT0xMDY7YnJlYWt9ZWxzZXtNPXg7Tj13O089dn13aGlsZSgxKXtoPWFbT118MDtkb3tpZigoKGgm
MjU1KS0xfDApPj4+MDwxMjcpe2lmKChPJjN8MCk9PTAmTT4+PjA+Myl7UD1NO1E9TjtSPU99ZWxz
ZXtTPU87VD1OO1U9TTtWPWg7YnJlYWt9d2hpbGUoMSl7Vz1jW1I+PjJdfDA7aWYoKChXLTE2ODQz
MDA5fFcpJi0yMTM5MDYyMTQ0fDApIT0wKXtpPTgxO2JyZWFrfWNbUT4+Ml09VyYyNTU7Y1tRKzQ+
PjJdPWRbUisxfDBdfDA7Y1tRKzg+PjJdPWRbUisyfDBdfDA7WD1SKzR8MDtZPVErMTZ8MDtjW1Er
MTI+PjJdPWRbUiszfDBdfDA7Wj1QLTR8MDtpZihaPj4+MD4zKXtQPVo7UT1ZO1I9WH1lbHNle2k9
ODI7YnJlYWt9fWlmKChpfDApPT04MSl7aT0wO1M9UjtUPVE7VT1QO1Y9VyYyNTU7YnJlYWt9ZWxz
ZSBpZigoaXwwKT09ODIpe2k9MDtTPVg7VD1ZO1U9WjtWPWFbWF18MDticmVha319ZWxzZXtTPU87
VD1OO1U9TTtWPWh9fXdoaWxlKDApO189ViYyNTU7aWYoKF8tMXwwKT4+PjA+PTEyNyl7YnJlYWt9
Y1tUPj4yXT1fO2g9VS0xfDA7aWYoKGh8MCk9PTApe0w9ZjtpPTEwNTticmVhayBMNzB9ZWxzZXtN
PWg7Tj1UKzR8MDtPPVMrMXwwfX1oPV8tMTk0fDA7aWYoaD4+PjA+NTApe0k9VTtKPVQ7Sz1TO2k9
OTg7YnJlYWt9bz1jW3MrKGg8PDIpPj4yXXwwO3A9UysxfDA7cT1UO3I9VTtpPTg3O2NvbnRpbnVl
fWVsc2UgaWYoKGl8MCk9PTY3KXtpPTA7aD0oZFttXXwwKT4+PjM7aWYoKGgtMTZ8aCsobD4+MjYp
KT4+PjA+Nyl7aT02ODticmVha31oPW0rMXwwO2Rve2lmKChsJjMzNTU0NDMyfDApPT0wKXskPWh9
ZWxzZXtpZigoKGRbaF18MCktMTI4fDApPj4+MD42Myl7aT03MTticmVhayBMNzB9Zz1tKzJ8MDtp
ZigobCY1MjQyODh8MCk9PTApeyQ9ZzticmVha31pZigoKGRbZ118MCktMTI4fDApPj4+MD42Myl7
aT03NDticmVhayBMNzB9JD1tKzN8MH19d2hpbGUoMCk7dD0kO3U9bi0xfDA7aT01ODtjb250aW51
ZX19aWYoKGl8MCk9PTcxKXthYT1sO2FiPW0tMXwwO2FjPWI7YWQ9bjtpPTk3fWVsc2UgaWYoKGl8
MCk9PTc0KXthYT1sO2FiPW0tMXwwO2FjPWI7YWQ9bjtpPTk3fWVsc2UgaWYoKGl8MCk9PTY4KXth
YT1sO2FiPW0tMXwwO2FjPWI7YWQ9bjtpPTk3fWVsc2UgaWYoKGl8MCk9PTg4KXthYT1vO2FiPXAt
MXwwO2FjPXE7YWQ9cjtpPTk3fWVsc2UgaWYoKGl8MCk9PTkxKXthYT15O2FiPXAtMXwwO2FjPXE7
YWQ9cjtpPTk3fWVsc2UgaWYoKGl8MCk9PTk0KXthYT16O2FiPXAtMXwwO2FjPXE7YWQ9cjtpPTk3
fWVsc2UgaWYoKGl8MCk9PTEwNSl7cmV0dXJuIEx8MH1lbHNlIGlmKChpfDApPT0xMDYpe3JldHVy
biBMfDB9aWYoKGl8MCk9PTk3KXtpZigoYWF8MCk9PTApe0k9YWQ7Sj1hYztLPWFiO2k9OTh9ZWxz
ZXthZT1hYzthZj1hYn19ZG97aWYoKGl8MCk9PTk4KXtpZigoYVtLXXwwKSE9MCl7YWU9SjthZj1L
O2JyZWFrfWlmKChKfDApIT0wKXtjW0o+PjJdPTA7Y1tlPj4yXT0wfUw9Zi1JfDA7cmV0dXJuIEx8
MH19d2hpbGUoMCk7Y1soYncoKXwwKT4+Ml09MTM4O2lmKChhZXwwKT09MCl7TD0tMTtyZXR1cm4g
THwwfWNbZT4+Ml09YWY7TD0tMTtyZXR1cm4gTHwwfWZ1bmN0aW9uIGtmKGIsZSxmKXtiPWJ8MDtl
PWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2c9aTtpPWkrOHwwO2g9
Z3wwO2NbaD4+Ml09YjtpZigoZXwwKT09MCl7aj0wO2k9ZztyZXR1cm4ganwwfWRve2lmKChmfDAp
IT0wKXtpZigoYnwwKT09MCl7az1oO2NbaD4+Ml09aztsPWt9ZWxzZXtsPWJ9az1hW2VdfDA7bT1r
JjI1NTtpZihrPDwyND4+MjQ+LTEpe2NbbD4+Ml09bTtqPWs8PDI0Pj4yNCE9MHwwO2k9ZztyZXR1
cm4ganwwfWs9bS0xOTR8MDtpZihrPj4+MD41MCl7YnJlYWt9bT1lKzF8MDtuPWNbcysoazw8Mik+
PjJdfDA7aWYoZj4+PjA8NCl7aWYoKG4mLTIxNDc0ODM2NDg+Pj4oKChmKjZ8MCktNnwwKT4+PjAp
fDApIT0wKXticmVha319az1kW21dfDA7bT1rPj4+MztpZigobS0xNnxtKyhuPj4yNikpPj4+MD43
KXticmVha31tPWstMTI4fG48PDY7aWYoKG18MCk+PTApe2NbbD4+Ml09bTtqPTI7aT1nO3JldHVy
biBqfDB9bj0oZFtlKzJ8MF18MCktMTI4fDA7aWYobj4+PjA+NjMpe2JyZWFrfWs9bnxtPDw2O2lm
KChrfDApPj0wKXtjW2w+PjJdPWs7aj0zO2k9ZztyZXR1cm4ganwwfW09KGRbZSszfDBdfDApLTEy
OHwwO2lmKG0+Pj4wPjYzKXticmVha31jW2w+PjJdPW18azw8NjtqPTQ7aT1nO3JldHVybiBqfDB9
fXdoaWxlKDApO2NbKGJ3KCl8MCk+PjJdPTEzODtqPS0xO2k9ZztyZXR1cm4ganwwfWZ1bmN0aW9u
IGtnKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wO2lmKChifDApPT0wKXtmPTE7cmV0
dXJuIGZ8MH1pZihkPj4+MDwxMjgpe2FbYl09ZCYyNTU7Zj0xO3JldHVybiBmfDB9aWYoZD4+PjA8
MjA0OCl7YVtiXT0oZD4+PjZ8MTkyKSYyNTU7YVtiKzF8MF09KGQmNjN8MTI4KSYyNTU7Zj0yO3Jl
dHVybiBmfDB9aWYoZD4+PjA8NTUyOTZ8KGQtNTczNDR8MCk+Pj4wPDgxOTIpe2FbYl09KGQ+Pj4x
MnwyMjQpJjI1NTthW2IrMXwwXT0oZD4+PjYmNjN8MTI4KSYyNTU7YVtiKzJ8MF09KGQmNjN8MTI4
KSYyNTU7Zj0zO3JldHVybiBmfDB9aWYoKGQtNjU1MzZ8MCk+Pj4wPDEwNDg1NzYpe2FbYl09KGQ+
Pj4xOHwyNDApJjI1NTthW2IrMXwwXT0oZD4+PjEyJjYzfDEyOCkmMjU1O2FbYisyfDBdPShkPj4+
NiY2M3wxMjgpJjI1NTthW2IrM3wwXT0oZCY2M3wxMjgpJjI1NTtmPTQ7cmV0dXJuIGZ8MH1lbHNl
e2NbKGJ3KCl8MCk+PjJdPTEzODtmPS0xO3JldHVybiBmfDB9cmV0dXJuIDB9ZnVuY3Rpb24ga2go
YSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGtpKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBraihh
KXthPWF8MDtyZXR1cm4gMTMyOHwwfWZ1bmN0aW9uIGtrKGEpe2E9YXwwO3JldHVybn1mdW5jdGlv
biBrbChhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24ga20oYSl7YT1hfDA7dmFyIGI9MDtiPWE7d2hp
bGUoMSl7aWYoKGNbYj4+Ml18MCk9PTApe2JyZWFrfWVsc2V7Yj1iKzR8MH19cmV0dXJuIGItYT4+
MnwwfWZ1bmN0aW9uIGtuKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7
aWYoKGR8MCk9PTApe3JldHVybiBhfDB9ZWxzZXtlPWI7Zj1kO2c9YX13aGlsZSgxKXtkPWYtMXww
O2NbZz4+Ml09Y1tlPj4yXTtpZigoZHwwKT09MCl7YnJlYWt9ZWxzZXtlPWUrNHwwO2Y9ZDtnPWcr
NHwwfX1yZXR1cm4gYXwwfWZ1bmN0aW9uIGtvKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIg
ZT0wLGY9MCxnPTAsaD0wLGk9MDtlPShkfDApPT0wO2lmKGEtYj4+Mj4+PjA8ZD4+PjApe2lmKGUp
e3JldHVybiBhfDB9ZWxzZXtmPWR9ZG97Zj1mLTF8MDtjW2ErKGY8PDIpPj4yXT1jW2IrKGY8PDIp
Pj4yXTt9d2hpbGUoKGZ8MCkhPTApO3JldHVybiBhfDB9ZWxzZXtpZihlKXtyZXR1cm4gYXwwfWVs
c2V7Zz1iO2g9ZDtpPWF9d2hpbGUoMSl7ZD1oLTF8MDtjW2k+PjJdPWNbZz4+Ml07aWYoKGR8MCk9
PTApe2JyZWFrfWVsc2V7Zz1nKzR8MDtoPWQ7aT1pKzR8MH19cmV0dXJuIGF8MH1yZXR1cm4gMH1m
dW5jdGlvbiBrcChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTA7aWYoKGR8MCk9
PTApe3JldHVybiBhfDB9ZWxzZXtlPWQ7Zj1hfXdoaWxlKDEpe2Q9ZS0xfDA7Y1tmPj4yXT1iO2lm
KChkfDApPT0wKXticmVha31lbHNle2U9ZDtmPWYrNHwwfX1yZXR1cm4gYXwwfWZ1bmN0aW9uIGtx
KGEpe2E9YXwwO2NbYT4+Ml09MjQ0MDtyZXR1cm59ZnVuY3Rpb24ga3IoYixkLGUsZil7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MDtpZigoY1tkKzg+PjJdfDApIT0oYnwwKSl7cmV0dXJu
fWI9ZCsxNnwwO2c9Y1tiPj4yXXwwO2lmKChnfDApPT0wKXtjW2I+PjJdPWU7Y1tkKzI0Pj4yXT1m
O2NbZCszNj4+Ml09MTtyZXR1cm59aWYoKGd8MCkhPShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShj
W2U+PjJdfDApKzE7Y1tkKzI0Pj4yXT0yO2FbZCs1NHwwXT0xO3JldHVybn1lPWQrMjR8MDtpZigo
Y1tlPj4yXXwwKSE9Mil7cmV0dXJufWNbZT4+Ml09ZjtyZXR1cm59ZnVuY3Rpb24ga3MoYSxiLGQs
ZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0w
LEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTA7Zj1pO2k9aSsyNjR8MDtnPWZ8MDtoPWYr
MjU2fDA7aj1jW2I+PjJdfDA7Y1toPj4yXT1qO2s9KGF8MCkhPTA7bD1rP2U6MjU2O2U9az9hOmd8
MDtMMjQzOmRve2lmKChqfDApPT0wfChsfDApPT0wKXttPTA7bj1kO289bDtwPWU7cT1qfWVsc2V7
YT1nfDA7cj1sO3M9ZDt0PTA7dT1lO3Y9ajt3aGlsZSgxKXt3PXM+Pj4wPj1yPj4+MDtpZighKHd8
cz4+PjA+MzIpKXttPXQ7bj1zO289cjtwPXU7cT12O2JyZWFrIEwyNDN9eD13P3I6czt5PXMteHww
O3c9a3QodSxoLHgsMCl8MDtpZigod3wwKT09LTEpe2JyZWFrfWlmKCh1fDApPT0oYXwwKSl7ej1h
O0E9cn1lbHNle3o9dSt3fDA7QT1yLXd8MH14PXcrdHwwO3c9Y1toPj4yXXwwO2lmKCh3fDApPT0w
fChBfDApPT0wKXttPXg7bj15O289QTtwPXo7cT13O2JyZWFrIEwyNDN9ZWxzZXtyPUE7cz15O3Q9
eDt1PXo7dj13fX1tPS0xO249eTtvPTA7cD11O3E9Y1toPj4yXXwwfX13aGlsZSgwKTtMMjU0OmRv
e2lmKChxfDApPT0wKXtCPW19ZWxzZXtpZigob3wwKT09MHwobnwwKT09MCl7Qj1tO2JyZWFrfWVs
c2V7Qz1vO0Q9bjtFPW07Rj1wO0c9cX13aGlsZSgxKXtIPWtnKEYsY1tHPj4yXXwwLDApfDA7aWYo
KEgrMXwwKT4+PjA8Mil7YnJlYWt9eT0oY1toPj4yXXwwKSs0fDA7Y1toPj4yXT15O3o9RC0xfDA7
QT1FKzF8MDtpZigoQ3wwKT09KEh8MCl8KHp8MCk9PTApe0I9QTticmVhayBMMjU0fWVsc2V7Qz1D
LUh8MDtEPXo7RT1BO0Y9RitIfDA7Rz15fX1pZigoSHwwKSE9MCl7Qj0tMTticmVha31jW2g+PjJd
PTA7Qj1FfX13aGlsZSgwKTtpZighayl7aT1mO3JldHVybiBCfDB9Y1tiPj4yXT1jW2g+PjJdO2k9
ZjtyZXR1cm4gQnwwfWZ1bmN0aW9uIGt0KGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2Y9aTtpPWkrOHwwO2c9ZnwwO2lmKChifDApPT0w
KXtoPWNbZD4+Ml18MDtqPWd8MDtrPWNbaD4+Ml18MDtpZigoa3wwKT09MCl7bD0wO2k9ZjtyZXR1
cm4gbHwwfWVsc2V7bT0wO249aDtvPWt9d2hpbGUoMSl7aWYobz4+PjA+MTI3KXtrPWtnKGosbyww
KXwwO2lmKChrfDApPT0tMSl7bD0tMTtwPTI0MDticmVha31lbHNle3E9a319ZWxzZXtxPTF9az1x
K218MDtoPW4rNHwwO3I9Y1toPj4yXXwwO2lmKChyfDApPT0wKXtsPWs7cD0yNDE7YnJlYWt9ZWxz
ZXttPWs7bj1oO289cn19aWYoKHB8MCk9PTI0MCl7aT1mO3JldHVybiBsfDB9ZWxzZSBpZigocHww
KT09MjQxKXtpPWY7cmV0dXJuIGx8MH19TDI4MDpkb3tpZihlPj4+MD4zKXtvPWU7bj1iO209Y1tk
Pj4yXXwwO3doaWxlKDEpe3E9Y1ttPj4yXXwwO2lmKChxfDApPT0wKXtzPW87dD1uO2JyZWFrIEwy
ODB9aWYocT4+PjA+MTI3KXtqPWtnKG4scSwwKXwwO2lmKChqfDApPT0tMSl7bD0tMTticmVha311
PW4ranwwO3Y9by1qfDA7dz1tfWVsc2V7YVtuXT1xJjI1NTt1PW4rMXwwO3Y9by0xfDA7dz1jW2Q+
PjJdfDB9cT13KzR8MDtjW2Q+PjJdPXE7aWYodj4+PjA+Myl7bz12O249dTttPXF9ZWxzZXtzPXY7
dD11O2JyZWFrIEwyODB9fWk9ZjtyZXR1cm4gbHwwfWVsc2V7cz1lO3Q9Yn19d2hpbGUoMCk7TDI5
Mjpkb3tpZigoc3wwKT09MCl7eD0wfWVsc2V7Yj1nfDA7dT1zO3Y9dDt3PWNbZD4+Ml18MDt3aGls
ZSgxKXttPWNbdz4+Ml18MDtpZigobXwwKT09MCl7cD0yMzY7YnJlYWt9aWYobT4+PjA+MTI3KXtu
PWtnKGIsbSwwKXwwO2lmKChufDApPT0tMSl7bD0tMTtwPTI0MzticmVha31pZihuPj4+MD51Pj4+
MCl7cD0yMzI7YnJlYWt9bz1jW3c+PjJdfDA7a2codixvLDApfDA7eT12K258MDt6PXUtbnwwO0E9
d31lbHNle2Fbdl09bSYyNTU7eT12KzF8MDt6PXUtMXwwO0E9Y1tkPj4yXXwwfW09QSs0fDA7Y1tk
Pj4yXT1tO2lmKCh6fDApPT0wKXt4PTA7YnJlYWsgTDI5Mn1lbHNle3U9ejt2PXk7dz1tfX1pZigo
cHwwKT09MjMyKXtsPWUtdXwwO2k9ZjtyZXR1cm4gbHwwfWVsc2UgaWYoKHB8MCk9PTIzNil7YVt2
XT0wO3g9dTticmVha31lbHNlIGlmKChwfDApPT0yNDMpe2k9ZjtyZXR1cm4gbHwwfX19d2hpbGUo
MCk7Y1tkPj4yXT0wO2w9ZS14fDA7aT1mO3JldHVybiBsfDB9ZnVuY3Rpb24ga3UoYSl7YT1hfDA7
a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGt2KGEpe2E9YXwwO2toKGF8MCk7cmV0dXJufWZ1bmN0aW9u
IGt3KGEpe2E9YXwwO2toKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGt4KGEpe2E9YXwwO2to
KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGt5KGEpe2E9YXwwO2toKGF8MCk7a1MoYSk7cmV0
dXJufWZ1bmN0aW9uIGt6KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAs
aD0wO2U9aTtpPWkrNTZ8MDtmPWV8MDtpZigoYXwwKT09KGJ8MCkpe2c9MTtpPWU7cmV0dXJuIGd8
MH1pZigoYnwwKT09MCl7Zz0wO2k9ZTtyZXR1cm4gZ3wwfWg9a0MoYiw5NzA0LDk2ODgsLTEpfDA7
Yj1oO2lmKChofDApPT0wKXtnPTA7aT1lO3JldHVybiBnfDB9ayQoZnwwLDAsNTYpO2NbZj4+Ml09
YjtjW2YrOD4+Ml09YTtjW2YrMTI+PjJdPS0xO2NbZis0OD4+Ml09MTtjYltjWyhjW2g+PjJdfDAp
KzI4Pj4yXSYxNV0oYixmLGNbZD4+Ml18MCwxKTtpZigoY1tmKzI0Pj4yXXwwKSE9MSl7Zz0wO2k9
ZTtyZXR1cm4gZ3wwfWNbZD4+Ml09Y1tmKzE2Pj4yXTtnPTE7aT1lO3JldHVybiBnfDB9ZnVuY3Rp
b24ga0EoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MDtpZigoYnwwKSE9
KGNbZCs4Pj4yXXwwKSl7Zz1jW2IrOD4+Ml18MDtjYltjWyhjW2c+PjJdfDApKzI4Pj4yXSYxNV0o
ZyxkLGUsZik7cmV0dXJufWc9ZCsxNnwwO2I9Y1tnPj4yXXwwO2lmKChifDApPT0wKXtjW2c+PjJd
PWU7Y1tkKzI0Pj4yXT1mO2NbZCszNj4+Ml09MTtyZXR1cm59aWYoKGJ8MCkhPShlfDApKXtlPWQr
MzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7Y1tkKzI0Pj4yXT0yO2FbZCs1NHwwXT0xO3JldHVy
bn1lPWQrMjR8MDtpZigoY1tlPj4yXXwwKSE9Mil7cmV0dXJufWNbZT4+Ml09ZjtyZXR1cm59ZnVu
Y3Rpb24ga0IoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0w
LGo9MCxrPTAsbD0wLG09MDtpZigoYnwwKT09KGNbZCs4Pj4yXXwwKSl7Zz1kKzE2fDA7aD1jW2c+
PjJdfDA7aWYoKGh8MCk9PTApe2NbZz4+Ml09ZTtjW2QrMjQ+PjJdPWY7Y1tkKzM2Pj4yXT0xO3Jl
dHVybn1pZigoaHwwKSE9KGV8MCkpe2g9ZCszNnwwO2NbaD4+Ml09KGNbaD4+Ml18MCkrMTtjW2Qr
MjQ+PjJdPTI7YVtkKzU0fDBdPTE7cmV0dXJufWg9ZCsyNHwwO2lmKChjW2g+PjJdfDApIT0yKXty
ZXR1cm59Y1toPj4yXT1mO3JldHVybn1oPWNbYisxMj4+Ml18MDtnPWIrMTYrKGg8PDMpfDA7aT1j
W2IrMjA+PjJdfDA7aj1pPj44O2lmKChpJjF8MCk9PTApe2s9an1lbHNle2s9Y1soY1tlPj4yXXww
KStqPj4yXXwwfWo9Y1tiKzE2Pj4yXXwwO2NiW2NbKGNbaj4+Ml18MCkrMjg+PjJdJjE1XShqLGQs
ZStrfDAsKGkmMnwwKSE9MD9mOjIpO2lmKChofDApPD0xKXtyZXR1cm59aD1kKzU0fDA7aT1lO2s9
YisyNHwwO3doaWxlKDEpe2I9Y1trKzQ+PjJdfDA7aj1iPj44O2lmKChiJjF8MCk9PTApe2w9an1l
bHNle2w9Y1soY1tpPj4yXXwwKStqPj4yXXwwfWo9Y1trPj4yXXwwO2NiW2NbKGNbaj4+Ml18MCkr
Mjg+PjJdJjE1XShqLGQsZStsfDAsKGImMnwwKSE9MD9mOjIpO2lmKChhW2hdJjEpIT0wKXttPTI5
NzticmVha31iPWsrOHwwO2lmKGI+Pj4wPGc+Pj4wKXtrPWJ9ZWxzZXttPTI5ODticmVha319aWYo
KG18MCk9PTI5Nyl7cmV0dXJufWVsc2UgaWYoKG18MCk9PTI5OCl7cmV0dXJufX1mdW5jdGlvbiBr
QyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTA7Zj1pO2k9aSs1NnwwO2c9ZnwwO2g9Y1thPj4yXXwwO2o9YSsoY1to
LTg+PjJdfDApfDA7az1jW2gtND4+Ml18MDtoPWs7Y1tnPj4yXT1kO2NbZys0Pj4yXT1hO2NbZys4
Pj4yXT1iO2NbZysxMj4+Ml09ZTtlPWcrMTZ8MDtiPWcrMjB8MDthPWcrMjR8MDtsPWcrMjh8MDtt
PWcrMzJ8MDtuPWcrNDB8MDtrJChlfDAsMCwzOSk7aWYoKGt8MCk9PShkfDApKXtjW2crNDg+PjJd
PTE7YjlbY1soY1trPj4yXXwwKSsyMD4+Ml0mMzFdKGgsZyxqLGosMSwwKTtpPWY7cmV0dXJuKChj
W2E+PjJdfDApPT0xP2o6MCl8MH1iV1tjWyhjW2s+PjJdfDApKzI0Pj4yXSY3XShoLGcsaiwxLDAp
O3N3aXRjaChjW2crMzY+PjJdfDApe2Nhc2UgMTp7ZG97aWYoKGNbYT4+Ml18MCkhPTEpe2lmKChj
W24+PjJdfDApIT0wKXtvPTA7aT1mO3JldHVybiBvfDB9aWYoKGNbbD4+Ml18MCkhPTEpe289MDtp
PWY7cmV0dXJuIG98MH1pZigoY1ttPj4yXXwwKT09MSl7YnJlYWt9ZWxzZXtvPTB9aT1mO3JldHVy
biBvfDB9fXdoaWxlKDApO289Y1tlPj4yXXwwO2k9ZjtyZXR1cm4gb3wwfTtjYXNlIDA6e2lmKChj
W24+PjJdfDApIT0xKXtvPTA7aT1mO3JldHVybiBvfDB9aWYoKGNbbD4+Ml18MCkhPTEpe289MDtp
PWY7cmV0dXJuIG98MH1vPShjW20+PjJdfDApPT0xP2NbYj4+Ml18MDowO2k9ZjtyZXR1cm4gb3ww
fTtkZWZhdWx0OntvPTA7aT1mO3JldHVybiBvfDB9fXJldHVybiAwfWZ1bmN0aW9uIGtEKGIsZCxl
LGYsZyl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aWYoKGNbZCs4Pj4yXXwwKT09KGJ8
MCkpe2lmKChjW2QrND4+Ml18MCkhPShlfDApKXtyZXR1cm59Zz1kKzI4fDA7aWYoKGNbZz4+Ml18
MCk9PTEpe3JldHVybn1jW2c+PjJdPWY7cmV0dXJufWlmKChjW2Q+PjJdfDApIT0oYnwwKSl7cmV0
dXJufWRve2lmKChjW2QrMTY+PjJdfDApIT0oZXwwKSl7Yj1kKzIwfDA7aWYoKGNbYj4+Ml18MCk9
PShlfDApKXticmVha31jW2QrMzI+PjJdPWY7Y1tiPj4yXT1lO2I9ZCs0MHwwO2NbYj4+Ml09KGNb
Yj4+Ml18MCkrMTtkb3tpZigoY1tkKzM2Pj4yXXwwKT09MSl7aWYoKGNbZCsyND4+Ml18MCkhPTIp
e2JyZWFrfWFbZCs1NHwwXT0xfX13aGlsZSgwKTtjW2QrNDQ+PjJdPTQ7cmV0dXJufX13aGlsZSgw
KTtpZigoZnwwKSE9MSl7cmV0dXJufWNbZCszMj4+Ml09MTtyZXR1cm59ZnVuY3Rpb24ga0UoYixk
LGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBpPTA7aWYo
KGNbZCs4Pj4yXXwwKSE9KGJ8MCkpe3JldHVybn1hW2QrNTN8MF09MTtpZigoY1tkKzQ+PjJdfDAp
IT0oZnwwKSl7cmV0dXJufWFbZCs1MnwwXT0xO2Y9ZCsxNnwwO2I9Y1tmPj4yXXwwO2lmKChifDAp
PT0wKXtjW2Y+PjJdPWU7Y1tkKzI0Pj4yXT1nO2NbZCszNj4+Ml09MTtpZighKChjW2QrNDg+PjJd
fDApPT0xJihnfDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0xO3JldHVybn1pZigoYnwwKSE9KGV8
MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTthW2QrNTR8MF09MTtyZXR1cm59ZT1k
KzI0fDA7Yj1jW2U+PjJdfDA7aWYoKGJ8MCk9PTIpe2NbZT4+Ml09ZztpPWd9ZWxzZXtpPWJ9aWYo
ISgoY1tkKzQ4Pj4yXXwwKT09MSYoaXwwKT09MSkpe3JldHVybn1hW2QrNTR8MF09MTtyZXR1cm59
ZnVuY3Rpb24ga0YoYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIg
aD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTA7aD1ifDA7
aWYoKGh8MCk9PShjW2QrOD4+Ml18MCkpe2lmKChjW2QrND4+Ml18MCkhPShlfDApKXtyZXR1cm59
aT1kKzI4fDA7aWYoKGNbaT4+Ml18MCk9PTEpe3JldHVybn1jW2k+PjJdPWY7cmV0dXJufWlmKCho
fDApPT0oY1tkPj4yXXwwKSl7ZG97aWYoKGNbZCsxNj4+Ml18MCkhPShlfDApKXtoPWQrMjB8MDtp
ZigoY1toPj4yXXwwKT09KGV8MCkpe2JyZWFrfWNbZCszMj4+Ml09ZjtpPWQrNDR8MDtpZigoY1tp
Pj4yXXwwKT09NCl7cmV0dXJufWo9Y1tiKzEyPj4yXXwwO2s9YisxNisoajw8Myl8MDtMNDc0OmRv
e2lmKChqfDApPjApe2w9ZCs1MnwwO209ZCs1M3wwO249ZCs1NHwwO289Yis4fDA7cD1kKzI0fDA7
cT1lO3I9MDtzPWIrMTZ8MDt0PTA7TDQ3Njp3aGlsZSgxKXthW2xdPTA7YVttXT0wO3U9Y1tzKzQ+
PjJdfDA7dj11Pj44O2lmKCh1JjF8MCk9PTApe3c9dn1lbHNle3c9Y1soY1txPj4yXXwwKSt2Pj4y
XXwwfXY9Y1tzPj4yXXwwO2I5W2NbKGNbdj4+Ml18MCkrMjA+PjJdJjMxXSh2LGQsZSxlK3d8MCwy
LSh1Pj4+MSYxKXwwLGcpO2lmKChhW25dJjEpIT0wKXt4PXQ7eT1yO2JyZWFrfWRve2lmKChhW21d
JjEpPT0wKXt6PXQ7QT1yfWVsc2V7aWYoKGFbbF0mMSk9PTApe2lmKChjW28+PjJdJjF8MCk9PTAp
e3g9MTt5PXI7YnJlYWsgTDQ3Nn1lbHNle3o9MTtBPXI7YnJlYWt9fWlmKChjW3A+PjJdfDApPT0x
KXtCPTM4NTticmVhayBMNDc0fWlmKChjW28+PjJdJjJ8MCk9PTApe0I9Mzg1O2JyZWFrIEw0NzR9
ZWxzZXt6PTE7QT0xfX19d2hpbGUoMCk7dT1zKzh8MDtpZih1Pj4+MDxrPj4+MCl7cj1BO3M9dTt0
PXp9ZWxzZXt4PXo7eT1BO2JyZWFrfX1pZih5KXtDPXg7Qj0zODR9ZWxzZXtEPXg7Qj0zODF9fWVs
c2V7RD0wO0I9MzgxfX13aGlsZSgwKTtkb3tpZigoQnwwKT09MzgxKXtjW2g+PjJdPWU7az1kKzQw
fDA7Y1trPj4yXT0oY1trPj4yXXwwKSsxO2lmKChjW2QrMzY+PjJdfDApIT0xKXtDPUQ7Qj0zODQ7
YnJlYWt9aWYoKGNbZCsyND4+Ml18MCkhPTIpe0M9RDtCPTM4NDticmVha31hW2QrNTR8MF09MTtp
ZihEKXtCPTM4NX1lbHNle0I9Mzg2fX19d2hpbGUoMCk7aWYoKEJ8MCk9PTM4NCl7aWYoQyl7Qj0z
ODV9ZWxzZXtCPTM4Nn19aWYoKEJ8MCk9PTM4NSl7Y1tpPj4yXT0zO3JldHVybn1lbHNlIGlmKChC
fDApPT0zODYpe2NbaT4+Ml09NDtyZXR1cm59fX13aGlsZSgwKTtpZigoZnwwKSE9MSl7cmV0dXJu
fWNbZCszMj4+Ml09MTtyZXR1cm59Qz1jW2IrMTI+PjJdfDA7RD1iKzE2KyhDPDwzKXwwO3g9Y1ti
KzIwPj4yXXwwO3k9eD4+ODtpZigoeCYxfDApPT0wKXtFPXl9ZWxzZXtFPWNbKGNbZT4+Ml18MCkr
eT4+Ml18MH15PWNbYisxNj4+Ml18MDtiV1tjWyhjW3k+PjJdfDApKzI0Pj4yXSY3XSh5LGQsZStF
fDAsKHgmMnwwKSE9MD9mOjIsZyk7eD1iKzI0fDA7aWYoKEN8MCk8PTEpe3JldHVybn1DPWNbYis4
Pj4yXXwwO2Rve2lmKChDJjJ8MCk9PTApe2I9ZCszNnwwO2lmKChjW2I+PjJdfDApPT0xKXticmVh
a31pZigoQyYxfDApPT0wKXtFPWQrNTR8MDt5PWU7QT14O3doaWxlKDEpe2lmKChhW0VdJjEpIT0w
KXtCPTQyNTticmVha31pZigoY1tiPj4yXXwwKT09MSl7Qj00MjY7YnJlYWt9ej1jW0ErND4+Ml18
MDt3PXo+Pjg7aWYoKHomMXwwKT09MCl7Rj13fWVsc2V7Rj1jWyhjW3k+PjJdfDApK3c+PjJdfDB9
dz1jW0E+PjJdfDA7YldbY1soY1t3Pj4yXXwwKSsyND4+Ml0mN10odyxkLGUrRnwwLCh6JjJ8MCkh
PTA/ZjoyLGcpO3o9QSs4fDA7aWYoej4+PjA8RD4+PjApe0E9en1lbHNle0I9NDEyO2JyZWFrfX1p
ZigoQnwwKT09NDEyKXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDI1KXtyZXR1cm59ZWxzZSBpZigo
QnwwKT09NDI2KXtyZXR1cm59fUE9ZCsyNHwwO3k9ZCs1NHwwO0U9ZTtpPXg7d2hpbGUoMSl7aWYo
KGFbeV0mMSkhPTApe0I9NDIyO2JyZWFrfWlmKChjW2I+PjJdfDApPT0xKXtpZigoY1tBPj4yXXww
KT09MSl7Qj00MjM7YnJlYWt9fXo9Y1tpKzQ+PjJdfDA7dz16Pj44O2lmKCh6JjF8MCk9PTApe0c9
d31lbHNle0c9Y1soY1tFPj4yXXwwKSt3Pj4yXXwwfXc9Y1tpPj4yXXwwO2JXW2NbKGNbdz4+Ml18
MCkrMjQ+PjJdJjddKHcsZCxlK0d8MCwoeiYyfDApIT0wP2Y6MixnKTt6PWkrOHwwO2lmKHo+Pj4w
PEQ+Pj4wKXtpPXp9ZWxzZXtCPTQyNDticmVha319aWYoKEJ8MCk9PTQyMil7cmV0dXJufWVsc2Ug
aWYoKEJ8MCk9PTQyMyl7cmV0dXJufWVsc2UgaWYoKEJ8MCk9PTQyNCl7cmV0dXJufX19d2hpbGUo
MCk7Rz1kKzU0fDA7Rj1lO0M9eDt3aGlsZSgxKXtpZigoYVtHXSYxKSE9MCl7Qj00MjE7YnJlYWt9
eD1jW0MrND4+Ml18MDtpPXg+Pjg7aWYoKHgmMXwwKT09MCl7SD1pfWVsc2V7SD1jWyhjW0Y+PjJd
fDApK2k+PjJdfDB9aT1jW0M+PjJdfDA7YldbY1soY1tpPj4yXXwwKSsyND4+Ml0mN10oaSxkLGUr
SHwwLCh4JjJ8MCkhPTA/ZjoyLGcpO3g9Qys4fDA7aWYoeD4+PjA8RD4+PjApe0M9eH1lbHNle0I9
NDIwO2JyZWFrfX1pZigoQnwwKT09NDIwKXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDIxKXtyZXR1
cm59fWZ1bmN0aW9uIGtHKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtoPWJ8MDtpZigoaHwwKT09KGNbZCs4Pj4y
XXwwKSl7aWYoKGNbZCs0Pj4yXXwwKSE9KGV8MCkpe3JldHVybn1pPWQrMjh8MDtpZigoY1tpPj4y
XXwwKT09MSl7cmV0dXJufWNbaT4+Ml09ZjtyZXR1cm59aWYoKGh8MCkhPShjW2Q+PjJdfDApKXto
PWNbYis4Pj4yXXwwO2JXW2NbKGNbaD4+Ml18MCkrMjQ+PjJdJjddKGgsZCxlLGYsZyk7cmV0dXJu
fWRve2lmKChjW2QrMTY+PjJdfDApIT0oZXwwKSl7aD1kKzIwfDA7aWYoKGNbaD4+Ml18MCk9PShl
fDApKXticmVha31jW2QrMzI+PjJdPWY7aT1kKzQ0fDA7aWYoKGNbaT4+Ml18MCk9PTQpe3JldHVy
bn1qPWQrNTJ8MDthW2pdPTA7az1kKzUzfDA7YVtrXT0wO2w9Y1tiKzg+PjJdfDA7YjlbY1soY1ts
Pj4yXXwwKSsyMD4+Ml0mMzFdKGwsZCxlLGUsMSxnKTtpZigoYVtrXSYxKT09MCl7bT0wO249NDQx
fWVsc2V7aWYoKGFbal0mMSk9PTApe209MTtuPTQ0MX19TDU3Njpkb3tpZigobnwwKT09NDQxKXtj
W2g+PjJdPWU7aj1kKzQwfDA7Y1tqPj4yXT0oY1tqPj4yXXwwKSsxO2Rve2lmKChjW2QrMzY+PjJd
fDApPT0xKXtpZigoY1tkKzI0Pj4yXXwwKSE9Mil7bj00NDQ7YnJlYWt9YVtkKzU0fDBdPTE7aWYo
bSl7YnJlYWsgTDU3Nn19ZWxzZXtuPTQ0NH19d2hpbGUoMCk7aWYoKG58MCk9PTQ0NCl7aWYobSl7
YnJlYWt9fWNbaT4+Ml09NDtyZXR1cm59fXdoaWxlKDApO2NbaT4+Ml09MztyZXR1cm59fXdoaWxl
KDApO2lmKChmfDApIT0xKXtyZXR1cm59Y1tkKzMyPj4yXT0xO3JldHVybn1mdW5jdGlvbiBrSChi
LGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGk9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wO2lm
KChifDApIT0oY1tkKzg+PjJdfDApKXtpPWQrNTJ8MDtqPWFbaV0mMTtrPWQrNTN8MDtsPWFba10m
MTttPWNbYisxMj4+Ml18MDtuPWIrMTYrKG08PDMpfDA7YVtpXT0wO2Fba109MDtvPWNbYisyMD4+
Ml18MDtwPW8+Pjg7aWYoKG8mMXwwKT09MCl7cT1wfWVsc2V7cT1jWyhjW2Y+PjJdfDApK3A+PjJd
fDB9cD1jW2IrMTY+PjJdfDA7YjlbY1soY1twPj4yXXwwKSsyMD4+Ml0mMzFdKHAsZCxlLGYrcXww
LChvJjJ8MCkhPTA/ZzoyLGgpO0w1OTg6ZG97aWYoKG18MCk+MSl7bz1kKzI0fDA7cT1iKzh8MDtw
PWQrNTR8MDtyPWY7cz1iKzI0fDA7ZG97aWYoKGFbcF0mMSkhPTApe2JyZWFrIEw1OTh9ZG97aWYo
KGFbaV0mMSk9PTApe2lmKChhW2tdJjEpPT0wKXticmVha31pZigoY1txPj4yXSYxfDApPT0wKXti
cmVhayBMNTk4fX1lbHNle2lmKChjW28+PjJdfDApPT0xKXticmVhayBMNTk4fWlmKChjW3E+PjJd
JjJ8MCk9PTApe2JyZWFrIEw1OTh9fX13aGlsZSgwKTthW2ldPTA7YVtrXT0wO3Q9Y1tzKzQ+PjJd
fDA7dT10Pj44O2lmKCh0JjF8MCk9PTApe3Y9dX1lbHNle3Y9Y1soY1tyPj4yXXwwKSt1Pj4yXXww
fXU9Y1tzPj4yXXwwO2I5W2NbKGNbdT4+Ml18MCkrMjA+PjJdJjMxXSh1LGQsZSxmK3Z8MCwodCYy
fDApIT0wP2c6MixoKTtzPXMrOHwwO313aGlsZShzPj4+MDxuPj4+MCl9fXdoaWxlKDApO2FbaV09
ajthW2tdPWw7cmV0dXJufWFbZCs1M3wwXT0xO2lmKChjW2QrND4+Ml18MCkhPShmfDApKXtyZXR1
cm59YVtkKzUyfDBdPTE7Zj1kKzE2fDA7bD1jW2Y+PjJdfDA7aWYoKGx8MCk9PTApe2NbZj4+Ml09
ZTtjW2QrMjQ+PjJdPWc7Y1tkKzM2Pj4yXT0xO2lmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKGd8MCk9
PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0dXJufWlmKChsfDApIT0oZXwwKSl7ZT1kKzM2fDA7
Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2FbZCs1NHwwXT0xO3JldHVybn1lPWQrMjR8MDtsPWNbZT4+
Ml18MDtpZigobHwwKT09Mil7Y1tlPj4yXT1nO3c9Z31lbHNle3c9bH1pZighKChjW2QrNDg+PjJd
fDApPT0xJih3fDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0xO3JldHVybn1mdW5jdGlvbiBrSShi
LGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGk9MCxq
PTA7aWYoKGJ8MCkhPShjW2QrOD4+Ml18MCkpe2k9Y1tiKzg+PjJdfDA7YjlbY1soY1tpPj4yXXww
KSsyMD4+Ml0mMzFdKGksZCxlLGYsZyxoKTtyZXR1cm59YVtkKzUzfDBdPTE7aWYoKGNbZCs0Pj4y
XXwwKSE9KGZ8MCkpe3JldHVybn1hW2QrNTJ8MF09MTtmPWQrMTZ8MDtoPWNbZj4+Ml18MDtpZigo
aHwwKT09MCl7Y1tmPj4yXT1lO2NbZCsyND4+Ml09ZztjW2QrMzY+PjJdPTE7aWYoISgoY1tkKzQ4
Pj4yXXwwKT09MSYoZ3wwKT09MSkpe3JldHVybn1hW2QrNTR8MF09MTtyZXR1cm59aWYoKGh8MCkh
PShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7YVtkKzU0fDBdPTE7cmV0dXJu
fWU9ZCsyNHwwO2g9Y1tlPj4yXXwwO2lmKChofDApPT0yKXtjW2U+PjJdPWc7aj1nfWVsc2V7aj1o
fWlmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKGp8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0
dXJufWZ1bmN0aW9uIGtKKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAs
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0w
LF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9
MCxhaz0wLGFsPTAsYW09MCxhbj0wLGFvPTAsYXA9MCxhcT0wLGFyPTAsYXM9MCxhdD0wLGF1PTAs
YXY9MCxhdz0wLGF4PTAsYXk9MCxhej0wLGFBPTAsYUI9MCxhQz0wLGFEPTAsYUU9MCxhRj0wLGFH
PTA7ZG97aWYoYT4+PjA8MjQ1KXtpZihhPj4+MDwxMSl7Yj0xNn1lbHNle2I9YSsxMSYtOH1kPWI+
Pj4zO2U9Y1syNDYwXXwwO2Y9ZT4+PihkPj4+MCk7aWYoKGYmM3wwKSE9MCl7Zz0oZiYxXjEpK2R8
MDtoPWc8PDE7aT05ODgwKyhoPDwyKXwwO2o9OTg4MCsoaCsyPDwyKXwwO2g9Y1tqPj4yXXwwO2s9
aCs4fDA7bD1jW2s+PjJdfDA7ZG97aWYoKGl8MCk9PShsfDApKXtjWzI0NjBdPWUmfigxPDxnKX1l
bHNle2lmKGw+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1tPWwrMTJ8MDtpZigo
Y1ttPj4yXXwwKT09KGh8MCkpe2NbbT4+Ml09aTtjW2o+PjJdPWw7YnJlYWt9ZWxzZXtiRygpO3Jl
dHVybiAwfX19d2hpbGUoMCk7bD1nPDwzO2NbaCs0Pj4yXT1sfDM7aj1oKyhsfDQpfDA7Y1tqPj4y
XT1jW2o+PjJdfDE7bj1rO3JldHVybiBufDB9aWYoYj4+PjA8PShjWzI0NjJdfDApPj4+MCl7bz1i
O2JyZWFrfWlmKChmfDApIT0wKXtqPTI8PGQ7bD1mPDxkJihqfC1qKTtqPShsJi1sKS0xfDA7bD1q
Pj4+MTImMTY7aT1qPj4+KGw+Pj4wKTtqPWk+Pj41Jjg7bT1pPj4+KGo+Pj4wKTtpPW0+Pj4yJjQ7
cD1tPj4+KGk+Pj4wKTttPXA+Pj4xJjI7cT1wPj4+KG0+Pj4wKTtwPXE+Pj4xJjE7cj0oanxsfGl8
bXxwKSsocT4+PihwPj4+MCkpfDA7cD1yPDwxO3E9OTg4MCsocDw8Mil8MDttPTk4ODArKHArMjw8
Mil8MDtwPWNbbT4+Ml18MDtpPXArOHwwO2w9Y1tpPj4yXXwwO2Rve2lmKChxfDApPT0obHwwKSl7
Y1syNDYwXT1lJn4oMTw8cil9ZWxzZXtpZihsPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0
dXJuIDB9aj1sKzEyfDA7aWYoKGNbaj4+Ml18MCk9PShwfDApKXtjW2o+PjJdPXE7Y1ttPj4yXT1s
O2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDApO2w9cjw8MzttPWwtYnwwO2NbcCs0
Pj4yXT1ifDM7cT1wO2U9cStifDA7Y1txKyhifDQpPj4yXT1tfDE7Y1txK2w+PjJdPW07bD1jWzI0
NjJdfDA7aWYoKGx8MCkhPTApe3E9Y1syNDY1XXwwO2Q9bD4+PjM7bD1kPDwxO2Y9OTg4MCsobDw8
Mil8MDtrPWNbMjQ2MF18MDtoPTE8PGQ7ZG97aWYoKGsmaHwwKT09MCl7Y1syNDYwXT1rfGg7cz1m
O3Q9OTg4MCsobCsyPDwyKXwwfWVsc2V7ZD05ODgwKyhsKzI8PDIpfDA7Zz1jW2Q+PjJdfDA7aWYo
Zz4+PjA+PShjWzI0NjRdfDApPj4+MCl7cz1nO3Q9ZDticmVha31iRygpO3JldHVybiAwfX13aGls
ZSgwKTtjW3Q+PjJdPXE7Y1tzKzEyPj4yXT1xO2NbcSs4Pj4yXT1zO2NbcSsxMj4+Ml09Zn1jWzI0
NjJdPW07Y1syNDY1XT1lO249aTtyZXR1cm4gbnwwfWw9Y1syNDYxXXwwO2lmKChsfDApPT0wKXtv
PWI7YnJlYWt9aD0obCYtbCktMXwwO2w9aD4+PjEyJjE2O2s9aD4+PihsPj4+MCk7aD1rPj4+NSY4
O3A9az4+PihoPj4+MCk7az1wPj4+MiY0O3I9cD4+PihrPj4+MCk7cD1yPj4+MSYyO2Q9cj4+Pihw
Pj4+MCk7cj1kPj4+MSYxO2c9Y1sxMDE0NCsoKGh8bHxrfHB8cikrKGQ+Pj4ocj4+PjApKTw8Mik+
PjJdfDA7cj1nO2Q9ZztwPShjW2crND4+Ml0mLTgpLWJ8MDt3aGlsZSgxKXtnPWNbcisxNj4+Ml18
MDtpZigoZ3wwKT09MCl7az1jW3IrMjA+PjJdfDA7aWYoKGt8MCk9PTApe2JyZWFrfWVsc2V7dT1r
fX1lbHNle3U9Z31nPShjW3UrND4+Ml0mLTgpLWJ8MDtrPWc+Pj4wPHA+Pj4wO3I9dTtkPWs/dTpk
O3A9az9nOnB9cj1kO2k9Y1syNDY0XXwwO2lmKHI+Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAwfWU9
citifDA7bT1lO2lmKHI+Pj4wPj1lPj4+MCl7YkcoKTtyZXR1cm4gMH1lPWNbZCsyND4+Ml18MDtm
PWNbZCsxMj4+Ml18MDtkb3tpZigoZnwwKT09KGR8MCkpe3E9ZCsyMHwwO2c9Y1txPj4yXXwwO2lm
KChnfDApPT0wKXtrPWQrMTZ8MDtsPWNbaz4+Ml18MDtpZigobHwwKT09MCl7dj0wO2JyZWFrfWVs
c2V7dz1sO3g9a319ZWxzZXt3PWc7eD1xfXdoaWxlKDEpe3E9dysyMHwwO2c9Y1txPj4yXXwwO2lm
KChnfDApIT0wKXt3PWc7eD1xO2NvbnRpbnVlfXE9dysxNnwwO2c9Y1txPj4yXXwwO2lmKChnfDAp
PT0wKXticmVha31lbHNle3c9Zzt4PXF9fWlmKHg+Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAwfWVs
c2V7Y1t4Pj4yXT0wO3Y9dzticmVha319ZWxzZXtxPWNbZCs4Pj4yXXwwO2lmKHE+Pj4wPGk+Pj4w
KXtiRygpO3JldHVybiAwfWc9cSsxMnwwO2lmKChjW2c+PjJdfDApIT0oZHwwKSl7YkcoKTtyZXR1
cm4gMH1rPWYrOHwwO2lmKChjW2s+PjJdfDApPT0oZHwwKSl7Y1tnPj4yXT1mO2Nbaz4+Ml09cTt2
PWY7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7TDc0MDpkb3tpZigoZXwwKSE9
MCl7Zj1kKzI4fDA7aT0xMDE0NCsoY1tmPj4yXTw8Mil8MDtkb3tpZigoZHwwKT09KGNbaT4+Ml18
MCkpe2NbaT4+Ml09djtpZigodnwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1tm
Pj4yXSk7YnJlYWsgTDc0MH1lbHNle2lmKGU+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1xPWUrMTZ8MDtpZigoY1txPj4yXXwwKT09KGR8MCkpe2NbcT4+Ml09dn1lbHNle2NbZSsy
MD4+Ml09dn1pZigodnwwKT09MCl7YnJlYWsgTDc0MH19fXdoaWxlKDApO2lmKHY+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1jW3YrMjQ+PjJdPWU7Zj1jW2QrMTY+PjJdfDA7ZG97
aWYoKGZ8MCkhPTApe2lmKGY+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNl
e2NbdisxNj4+Ml09ZjtjW2YrMjQ+PjJdPXY7YnJlYWt9fX13aGlsZSgwKTtmPWNbZCsyMD4+Ml18
MDtpZigoZnwwKT09MCl7YnJlYWt9aWYoZj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVy
biAwfWVsc2V7Y1t2KzIwPj4yXT1mO2NbZisyND4+Ml09djticmVha319fXdoaWxlKDApO2lmKHA+
Pj4wPDE2KXtlPXArYnwwO2NbZCs0Pj4yXT1lfDM7Zj1yKyhlKzQpfDA7Y1tmPj4yXT1jW2Y+PjJd
fDF9ZWxzZXtjW2QrND4+Ml09YnwzO2NbcisoYnw0KT4+Ml09cHwxO2NbcisocCtiKT4+Ml09cDtm
PWNbMjQ2Ml18MDtpZigoZnwwKSE9MCl7ZT1jWzI0NjVdfDA7aT1mPj4+MztmPWk8PDE7cT05ODgw
KyhmPDwyKXwwO2s9Y1syNDYwXXwwO2c9MTw8aTtkb3tpZigoayZnfDApPT0wKXtjWzI0NjBdPWt8
Zzt5PXE7ej05ODgwKyhmKzI8PDIpfDB9ZWxzZXtpPTk4ODArKGYrMjw8Mil8MDtsPWNbaT4+Ml18
MDtpZihsPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXt5PWw7ej1pO2JyZWFrfWJHKCk7cmV0dXJuIDB9
fXdoaWxlKDApO2Nbej4+Ml09ZTtjW3krMTI+PjJdPWU7Y1tlKzg+PjJdPXk7Y1tlKzEyPj4yXT1x
fWNbMjQ2Ml09cDtjWzI0NjVdPW19Zj1kKzh8MDtpZigoZnwwKT09MCl7bz1iO2JyZWFrfWVsc2V7
bj1mfXJldHVybiBufDB9ZWxzZXtpZihhPj4+MD40Mjk0OTY3MjMxKXtvPS0xO2JyZWFrfWY9YSsx
MXwwO2c9ZiYtODtrPWNbMjQ2MV18MDtpZigoa3wwKT09MCl7bz1nO2JyZWFrfXI9LWd8MDtpPWY+
Pj44O2Rve2lmKChpfDApPT0wKXtBPTB9ZWxzZXtpZihnPj4+MD4xNjc3NzIxNSl7QT0zMTticmVh
a31mPShpKzEwNDgzMjB8MCk+Pj4xNiY4O2w9aTw8ZjtoPShsKzUyMDE5MnwwKT4+PjE2JjQ7aj1s
PDxoO2w9KGorMjQ1NzYwfDApPj4+MTYmMjtCPTE0LShofGZ8bCkrKGo8PGw+Pj4xNSl8MDtBPWc+
Pj4oKEIrN3wwKT4+PjApJjF8Qjw8MX19d2hpbGUoMCk7aT1jWzEwMTQ0KyhBPDwyKT4+Ml18MDtM
Nzg4OmRve2lmKChpfDApPT0wKXtDPTA7RD1yO0U9MH1lbHNle2lmKChBfDApPT0zMSl7Rj0wfWVs
c2V7Rj0yNS0oQT4+PjEpfDB9ZD0wO209cjtwPWk7cT1nPDxGO2U9MDt3aGlsZSgxKXtCPWNbcCs0
Pj4yXSYtODtsPUItZ3wwO2lmKGw+Pj4wPG0+Pj4wKXtpZigoQnwwKT09KGd8MCkpe0M9cDtEPWw7
RT1wO2JyZWFrIEw3ODh9ZWxzZXtHPXA7SD1sfX1lbHNle0c9ZDtIPW19bD1jW3ArMjA+PjJdfDA7
Qj1jW3ArMTYrKHE+Pj4zMTw8Mik+PjJdfDA7aj0obHwwKT09MHwobHwwKT09KEJ8MCk/ZTpsO2lm
KChCfDApPT0wKXtDPUc7RD1IO0U9ajticmVha31lbHNle2Q9RzttPUg7cD1CO3E9cTw8MTtlPWp9
fX19d2hpbGUoMCk7aWYoKEV8MCk9PTAmKEN8MCk9PTApe2k9Mjw8QTtyPWsmKGl8LWkpO2lmKChy
fDApPT0wKXtvPWc7YnJlYWt9aT0ociYtciktMXwwO3I9aT4+PjEyJjE2O2U9aT4+PihyPj4+MCk7
aT1lPj4+NSY4O3E9ZT4+PihpPj4+MCk7ZT1xPj4+MiY0O3A9cT4+PihlPj4+MCk7cT1wPj4+MSYy
O209cD4+PihxPj4+MCk7cD1tPj4+MSYxO0k9Y1sxMDE0NCsoKGl8cnxlfHF8cCkrKG0+Pj4ocD4+
PjApKTw8Mik+PjJdfDB9ZWxzZXtJPUV9aWYoKEl8MCk9PTApe0o9RDtLPUN9ZWxzZXtwPUk7bT1E
O3E9Qzt3aGlsZSgxKXtlPShjW3ArND4+Ml0mLTgpLWd8MDtyPWU+Pj4wPG0+Pj4wO2k9cj9lOm07
ZT1yP3A6cTtyPWNbcCsxNj4+Ml18MDtpZigocnwwKSE9MCl7cD1yO209aTtxPWU7Y29udGludWV9
cj1jW3ArMjA+PjJdfDA7aWYoKHJ8MCk9PTApe0o9aTtLPWU7YnJlYWt9ZWxzZXtwPXI7bT1pO3E9
ZX19fWlmKChLfDApPT0wKXtvPWc7YnJlYWt9aWYoSj4+PjA+PSgoY1syNDYyXXwwKS1nfDApPj4+
MCl7bz1nO2JyZWFrfXE9SzttPWNbMjQ2NF18MDtpZihxPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4g
MH1wPXErZ3wwO2s9cDtpZihxPj4+MD49cD4+PjApe2JHKCk7cmV0dXJuIDB9ZT1jW0srMjQ+PjJd
fDA7aT1jW0srMTI+PjJdfDA7ZG97aWYoKGl8MCk9PShLfDApKXtyPUsrMjB8MDtkPWNbcj4+Ml18
MDtpZigoZHwwKT09MCl7aj1LKzE2fDA7Qj1jW2o+PjJdfDA7aWYoKEJ8MCk9PTApe0w9MDticmVh
a31lbHNle009QjtOPWp9fWVsc2V7TT1kO049cn13aGlsZSgxKXtyPU0rMjB8MDtkPWNbcj4+Ml18
MDtpZigoZHwwKSE9MCl7TT1kO049cjtjb250aW51ZX1yPU0rMTZ8MDtkPWNbcj4+Ml18MDtpZigo
ZHwwKT09MCl7YnJlYWt9ZWxzZXtNPWQ7Tj1yfX1pZihOPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4g
MH1lbHNle2NbTj4+Ml09MDtMPU07YnJlYWt9fWVsc2V7cj1jW0srOD4+Ml18MDtpZihyPj4+MDxt
Pj4+MCl7YkcoKTtyZXR1cm4gMH1kPXIrMTJ8MDtpZigoY1tkPj4yXXwwKSE9KEt8MCkpe2JHKCk7
cmV0dXJuIDB9aj1pKzh8MDtpZigoY1tqPj4yXXwwKT09KEt8MCkpe2NbZD4+Ml09aTtjW2o+PjJd
PXI7TD1pO2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDApO0w4Mzg6ZG97aWYoKGV8
MCkhPTApe2k9SysyOHwwO209MTAxNDQrKGNbaT4+Ml08PDIpfDA7ZG97aWYoKEt8MCk9PShjW20+
PjJdfDApKXtjW20+PjJdPUw7aWYoKEx8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8
PGNbaT4+Ml0pO2JyZWFrIEw4Mzh9ZWxzZXtpZihlPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7
cmV0dXJuIDB9cj1lKzE2fDA7aWYoKGNbcj4+Ml18MCk9PShLfDApKXtjW3I+PjJdPUx9ZWxzZXtj
W2UrMjA+PjJdPUx9aWYoKEx8MCk9PTApe2JyZWFrIEw4Mzh9fX13aGlsZSgwKTtpZihMPj4+MDwo
Y1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9Y1tMKzI0Pj4yXT1lO2k9Y1tLKzE2Pj4yXXww
O2Rve2lmKChpfDApIT0wKXtpZihpPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9
ZWxzZXtjW0wrMTY+PjJdPWk7Y1tpKzI0Pj4yXT1MO2JyZWFrfX19d2hpbGUoMCk7aT1jW0srMjA+
PjJdfDA7aWYoKGl8MCk9PTApe2JyZWFrfWlmKGk+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTty
ZXR1cm4gMH1lbHNle2NbTCsyMD4+Ml09aTtjW2krMjQ+PjJdPUw7YnJlYWt9fX13aGlsZSgwKTtk
b3tpZihKPj4+MDwxNil7ZT1KK2d8MDtjW0srND4+Ml09ZXwzO2k9cSsoZSs0KXwwO2NbaT4+Ml09
Y1tpPj4yXXwxfWVsc2V7Y1tLKzQ+PjJdPWd8MztjW3ErKGd8NCk+PjJdPUp8MTtjW3ErKEorZyk+
PjJdPUo7aT1KPj4+MztpZihKPj4+MDwyNTYpe2U9aTw8MTttPTk4ODArKGU8PDIpfDA7cj1jWzI0
NjBdfDA7aj0xPDxpO2Rve2lmKChyJmp8MCk9PTApe2NbMjQ2MF09cnxqO089bTtQPTk4ODArKGUr
Mjw8Mil8MH1lbHNle2k9OTg4MCsoZSsyPDwyKXwwO2Q9Y1tpPj4yXXwwO2lmKGQ+Pj4wPj0oY1sy
NDY0XXwwKT4+PjApe089ZDtQPWk7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7Y1tQPj4y
XT1rO2NbTysxMj4+Ml09aztjW3ErKGcrOCk+PjJdPU87Y1txKyhnKzEyKT4+Ml09bTticmVha31l
PXA7aj1KPj4+ODtkb3tpZigoanwwKT09MCl7UT0wfWVsc2V7aWYoSj4+PjA+MTY3NzcyMTUpe1E9
MzE7YnJlYWt9cj0oaisxMDQ4MzIwfDApPj4+MTYmODtpPWo8PHI7ZD0oaSs1MjAxOTJ8MCk+Pj4x
NiY0O0I9aTw8ZDtpPShCKzI0NTc2MHwwKT4+PjE2JjI7bD0xNC0oZHxyfGkpKyhCPDxpPj4+MTUp
fDA7UT1KPj4+KChsKzd8MCk+Pj4wKSYxfGw8PDF9fXdoaWxlKDApO2o9MTAxNDQrKFE8PDIpfDA7
Y1txKyhnKzI4KT4+Ml09UTtjW3ErKGcrMjApPj4yXT0wO2NbcSsoZysxNik+PjJdPTA7bT1jWzI0
NjFdfDA7bD0xPDxRO2lmKChtJmx8MCk9PTApe2NbMjQ2MV09bXxsO2Nbaj4+Ml09ZTtjW3ErKGcr
MjQpPj4yXT1qO2NbcSsoZysxMik+PjJdPWU7Y1txKyhnKzgpPj4yXT1lO2JyZWFrfWlmKChRfDAp
PT0zMSl7Uj0wfWVsc2V7Uj0yNS0oUT4+PjEpfDB9bD1KPDxSO209Y1tqPj4yXXwwO3doaWxlKDEp
e2lmKChjW20rND4+Ml0mLTh8MCk9PShKfDApKXticmVha31TPW0rMTYrKGw+Pj4zMTw8Mil8MDtq
PWNbUz4+Ml18MDtpZigoanwwKT09MCl7VD02NjE7YnJlYWt9ZWxzZXtsPWw8PDE7bT1qfX1pZigo
VHwwKT09NjYxKXtpZihTPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtj
W1M+PjJdPWU7Y1txKyhnKzI0KT4+Ml09bTtjW3ErKGcrMTIpPj4yXT1lO2NbcSsoZys4KT4+Ml09
ZTticmVha319bD1tKzh8MDtqPWNbbD4+Ml18MDtpPWNbMjQ2NF18MDtpZihtPj4+MDxpPj4+MCl7
YkcoKTtyZXR1cm4gMH1pZihqPj4+MDxpPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbaisxMj4+
Ml09ZTtjW2w+PjJdPWU7Y1txKyhnKzgpPj4yXT1qO2NbcSsoZysxMik+PjJdPW07Y1txKyhnKzI0
KT4+Ml09MDticmVha319fXdoaWxlKDApO3E9Sys4fDA7aWYoKHF8MCk9PTApe289ZzticmVha31l
bHNle249cX1yZXR1cm4gbnwwfX13aGlsZSgwKTtLPWNbMjQ2Ml18MDtpZihvPj4+MDw9Sz4+PjAp
e1M9Sy1vfDA7Sj1jWzI0NjVdfDA7aWYoUz4+PjA+MTUpe1I9SjtjWzI0NjVdPVIrbztjWzI0NjJd
PVM7Y1tSKyhvKzQpPj4yXT1TfDE7Y1tSK0s+PjJdPVM7Y1tKKzQ+PjJdPW98M31lbHNle2NbMjQ2
Ml09MDtjWzI0NjVdPTA7Y1tKKzQ+PjJdPUt8MztTPUorKEsrNCl8MDtjW1M+PjJdPWNbUz4+Ml18
MX1uPUorOHwwO3JldHVybiBufDB9Sj1jWzI0NjNdfDA7aWYobz4+PjA8Sj4+PjApe1M9Si1vfDA7
Y1syNDYzXT1TO0o9Y1syNDY2XXwwO0s9SjtjWzI0NjZdPUsrbztjW0srKG8rNCk+PjJdPVN8MTtj
W0orND4+Ml09b3wzO249Sis4fDA7cmV0dXJuIG58MH1kb3tpZigoY1syNDUwXXwwKT09MCl7Sj1i
RSg4KXwwO2lmKChKLTEmSnwwKT09MCl7Y1syNDUyXT1KO2NbMjQ1MV09SjtjWzI0NTNdPS0xO2Nb
MjQ1NF09LTE7Y1syNDU1XT0wO2NbMjU3MV09MDtjWzI0NTBdPShiVigwKXwwKSYtMTZeMTQzMTY1
NTc2ODticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtKPW8rNDh8MDtTPWNbMjQ1
Ml18MDtLPW8rNDd8MDtSPVMrS3wwO1E9LVN8MDtTPVImUTtpZihTPj4+MDw9bz4+PjApe249MDty
ZXR1cm4gbnwwfU89Y1syNTcwXXwwO2Rve2lmKChPfDApIT0wKXtQPWNbMjU2OF18MDtMPVArU3ww
O2lmKEw+Pj4wPD1QPj4+MHxMPj4+MD5PPj4+MCl7bj0wfWVsc2V7YnJlYWt9cmV0dXJuIG58MH19
d2hpbGUoMCk7TDkzMDpkb3tpZigoY1syNTcxXSY0fDApPT0wKXtPPWNbMjQ2Nl18MDtMOTMyOmRv
e2lmKChPfDApPT0wKXtUPTY5MX1lbHNle0w9TztQPTEwMjg4O3doaWxlKDEpe1U9UHwwO009Y1tV
Pj4yXXwwO2lmKE0+Pj4wPD1MPj4+MCl7Vj1QKzR8MDtpZigoTSsoY1tWPj4yXXwwKXwwKT4+PjA+
TD4+PjApe2JyZWFrfX1NPWNbUCs4Pj4yXXwwO2lmKChNfDApPT0wKXtUPTY5MTticmVhayBMOTMy
fWVsc2V7UD1NfX1pZigoUHwwKT09MCl7VD02OTE7YnJlYWt9TD1SLShjWzI0NjNdfDApJlE7aWYo
TD4+PjA+PTIxNDc0ODM2NDcpe1c9MDticmVha31tPWJ2KEx8MCl8MDtlPShtfDApPT0oKGNbVT4+
Ml18MCkrKGNbVj4+Ml18MCl8MCk7WD1lP206LTE7WT1lP0w6MDtaPW07Xz1MO1Q9NzAwfX13aGls
ZSgwKTtkb3tpZigoVHwwKT09NjkxKXtPPWJ2KDApfDA7aWYoKE98MCk9PS0xKXtXPTA7YnJlYWt9
Zz1PO0w9Y1syNDUxXXwwO209TC0xfDA7aWYoKG0mZ3wwKT09MCl7JD1TfWVsc2V7JD1TLWcrKG0r
ZyYtTCl8MH1MPWNbMjU2OF18MDtnPUwrJHwwO2lmKCEoJD4+PjA+bz4+PjAmJD4+PjA8MjE0NzQ4
MzY0Nykpe1c9MDticmVha31tPWNbMjU3MF18MDtpZigobXwwKSE9MCl7aWYoZz4+PjA8PUw+Pj4w
fGc+Pj4wPm0+Pj4wKXtXPTA7YnJlYWt9fW09YnYoJHwwKXwwO2c9KG18MCk9PShPfDApO1g9Zz9P
Oi0xO1k9Zz8kOjA7Wj1tO189JDtUPTcwMH19d2hpbGUoMCk7TDk1Mjpkb3tpZigoVHwwKT09NzAw
KXttPS1ffDA7aWYoKFh8MCkhPS0xKXthYT1ZO2FiPVg7VD03MTE7YnJlYWsgTDkzMH1kb3tpZigo
WnwwKSE9LTEmXz4+PjA8MjE0NzQ4MzY0NyZfPj4+MDxKPj4+MCl7Zz1jWzI0NTJdfDA7Tz1LLV8r
ZyYtZztpZihPPj4+MD49MjE0NzQ4MzY0Nyl7YWM9XzticmVha31pZigoYnYoT3wwKXwwKT09LTEp
e2J2KG18MCl8MDtXPVk7YnJlYWsgTDk1Mn1lbHNle2FjPU8rX3wwO2JyZWFrfX1lbHNle2FjPV99
fXdoaWxlKDApO2lmKChafDApPT0tMSl7Vz1ZfWVsc2V7YWE9YWM7YWI9WjtUPTcxMTticmVhayBM
OTMwfX19d2hpbGUoMCk7Y1syNTcxXT1jWzI1NzFdfDQ7YWQ9VztUPTcwOH1lbHNle2FkPTA7VD03
MDh9fXdoaWxlKDApO2Rve2lmKChUfDApPT03MDgpe2lmKFM+Pj4wPj0yMTQ3NDgzNjQ3KXticmVh
a31XPWJ2KFN8MCl8MDtaPWJ2KDApfDA7aWYoISgoWnwwKSE9LTEmKFd8MCkhPS0xJlc+Pj4wPFo+
Pj4wKSl7YnJlYWt9YWM9Wi1XfDA7Wj1hYz4+PjA+KG8rNDB8MCk+Pj4wO1k9Wj9XOi0xO2lmKChZ
fDApIT0tMSl7YWE9Wj9hYzphZDthYj1ZO1Q9NzExfX19d2hpbGUoMCk7ZG97aWYoKFR8MCk9PTcx
MSl7YWQ9KGNbMjU2OF18MCkrYWF8MDtjWzI1NjhdPWFkO2lmKGFkPj4+MD4oY1syNTY5XXwwKT4+
PjApe2NbMjU2OV09YWR9YWQ9Y1syNDY2XXwwO0w5NzI6ZG97aWYoKGFkfDApPT0wKXtTPWNbMjQ2
NF18MDtpZigoU3wwKT09MHxhYj4+PjA8Uz4+PjApe2NbMjQ2NF09YWJ9Y1syNTcyXT1hYjtjWzI1
NzNdPWFhO2NbMjU3NV09MDtjWzI0NjldPWNbMjQ1MF07Y1syNDY4XT0tMTtTPTA7ZG97WT1TPDwx
O2FjPTk4ODArKFk8PDIpfDA7Y1s5ODgwKyhZKzM8PDIpPj4yXT1hYztjWzk4ODArKFkrMjw8Mik+
PjJdPWFjO1M9UysxfDA7fXdoaWxlKFM+Pj4wPDMyKTtTPWFiKzh8MDtpZigoUyY3fDApPT0wKXth
ZT0wfWVsc2V7YWU9LVMmN31TPWFhLTQwLWFlfDA7Y1syNDY2XT1hYithZTtjWzI0NjNdPVM7Y1th
YisoYWUrNCk+PjJdPVN8MTtjW2FiKyhhYS0zNik+PjJdPTQwO2NbMjQ2N109Y1syNDU0XX1lbHNl
e1M9MTAyODg7d2hpbGUoMSl7YWY9Y1tTPj4yXXwwO2FnPVMrNHwwO2FoPWNbYWc+PjJdfDA7aWYo
KGFifDApPT0oYWYrYWh8MCkpe1Q9NzIzO2JyZWFrfWFjPWNbUys4Pj4yXXwwO2lmKChhY3wwKT09
MCl7YnJlYWt9ZWxzZXtTPWFjfX1kb3tpZigoVHwwKT09NzIzKXtpZigoY1tTKzEyPj4yXSY4fDAp
IT0wKXticmVha31hYz1hZDtpZighKGFjPj4+MD49YWY+Pj4wJmFjPj4+MDxhYj4+PjApKXticmVh
a31jW2FnPj4yXT1haCthYTthYz1jWzI0NjZdfDA7WT0oY1syNDYzXXwwKSthYXwwO1o9YWM7Vz1h
Yys4fDA7aWYoKFcmN3wwKT09MCl7YWk9MH1lbHNle2FpPS1XJjd9Vz1ZLWFpfDA7Y1syNDY2XT1a
K2FpO2NbMjQ2M109VztjW1orKGFpKzQpPj4yXT1XfDE7Y1taKyhZKzQpPj4yXT00MDtjWzI0Njdd
PWNbMjQ1NF07YnJlYWsgTDk3Mn19d2hpbGUoMCk7aWYoYWI+Pj4wPChjWzI0NjRdfDApPj4+MCl7
Y1syNDY0XT1hYn1TPWFiK2FhfDA7WT0xMDI4ODt3aGlsZSgxKXthaj1ZfDA7aWYoKGNbYWo+PjJd
fDApPT0oU3wwKSl7VD03MzM7YnJlYWt9Wj1jW1krOD4+Ml18MDtpZigoWnwwKT09MCl7YnJlYWt9
ZWxzZXtZPVp9fWRve2lmKChUfDApPT03MzMpe2lmKChjW1krMTI+PjJdJjh8MCkhPTApe2JyZWFr
fWNbYWo+PjJdPWFiO1M9WSs0fDA7Y1tTPj4yXT0oY1tTPj4yXXwwKSthYTtTPWFiKzh8MDtpZigo
UyY3fDApPT0wKXthaz0wfWVsc2V7YWs9LVMmN31TPWFiKyhhYSs4KXwwO2lmKChTJjd8MCk9PTAp
e2FsPTB9ZWxzZXthbD0tUyY3fVM9YWIrKGFsK2FhKXwwO1o9UztXPWFrK298MDthYz1hYitXfDA7
Xz1hYztLPVMtKGFiK2FrKS1vfDA7Y1thYisoYWsrNCk+PjJdPW98Mztkb3tpZigoWnwwKT09KGNb
MjQ2Nl18MCkpe0o9KGNbMjQ2M118MCkrS3wwO2NbMjQ2M109SjtjWzI0NjZdPV87Y1thYisoVys0
KT4+Ml09SnwxfWVsc2V7aWYoKFp8MCk9PShjWzI0NjVdfDApKXtKPShjWzI0NjJdfDApK0t8MDtj
WzI0NjJdPUo7Y1syNDY1XT1fO2NbYWIrKFcrNCk+PjJdPUp8MTtjW2FiKyhKK1cpPj4yXT1KO2Jy
ZWFrfUo9YWErNHwwO1g9Y1thYisoSithbCk+PjJdfDA7aWYoKFgmM3wwKT09MSl7JD1YJi04O1Y9
WD4+PjM7TDEwMTc6ZG97aWYoWD4+PjA8MjU2KXtVPWNbYWIrKChhbHw4KSthYSk+PjJdfDA7UT1j
W2FiKyhhYSsxMithbCk+PjJdfDA7Uj05ODgwKyhWPDwxPDwyKXwwO2Rve2lmKChVfDApIT0oUnww
KSl7aWYoVT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWlmKChjW1UrMTI+PjJd
fDApPT0oWnwwKSl7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7aWYoKFF8MCk9PShVfDAp
KXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxWKTticmVha31kb3tpZigoUXwwKT09KFJ8MCkpe2FtPVEr
OHwwfWVsc2V7aWYoUT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfW09USs4fDA7
aWYoKGNbbT4+Ml18MCk9PShafDApKXthbT1tO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDAp
O2NbVSsxMj4+Ml09UTtjW2FtPj4yXT1VfWVsc2V7Uj1TO209Y1thYisoKGFsfDI0KSthYSk+PjJd
fDA7UD1jW2FiKyhhYSsxMithbCk+PjJdfDA7ZG97aWYoKFB8MCk9PShSfDApKXtPPWFsfDE2O2c9
YWIrKEorTyl8MDtMPWNbZz4+Ml18MDtpZigoTHwwKT09MCl7ZT1hYisoTythYSl8MDtPPWNbZT4+
Ml18MDtpZigoT3wwKT09MCl7YW49MDticmVha31lbHNle2FvPU87YXA9ZX19ZWxzZXthbz1MO2Fw
PWd9d2hpbGUoMSl7Zz1hbysyMHwwO0w9Y1tnPj4yXXwwO2lmKChMfDApIT0wKXthbz1MO2FwPWc7
Y29udGludWV9Zz1hbysxNnwwO0w9Y1tnPj4yXXwwO2lmKChMfDApPT0wKXticmVha31lbHNle2Fv
PUw7YXA9Z319aWYoYXA+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2Nb
YXA+PjJdPTA7YW49YW87YnJlYWt9fWVsc2V7Zz1jW2FiKygoYWx8OCkrYWEpPj4yXXwwO2lmKGc+
Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1MPWcrMTJ8MDtpZigoY1tMPj4yXXww
KSE9KFJ8MCkpe2JHKCk7cmV0dXJuIDB9ZT1QKzh8MDtpZigoY1tlPj4yXXwwKT09KFJ8MCkpe2Nb
TD4+Ml09UDtjW2U+PjJdPWc7YW49UDticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgw
KTtpZigobXwwKT09MCl7YnJlYWt9UD1hYisoYWErMjgrYWwpfDA7VT0xMDE0NCsoY1tQPj4yXTw8
Mil8MDtkb3tpZigoUnwwKT09KGNbVT4+Ml18MCkpe2NbVT4+Ml09YW47aWYoKGFufDApIT0wKXti
cmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW1A+PjJdKTticmVhayBMMTAxN31lbHNle2lmKG0+
Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1RPW0rMTZ8MDtpZigoY1tRPj4yXXww
KT09KFJ8MCkpe2NbUT4+Ml09YW59ZWxzZXtjW20rMjA+PjJdPWFufWlmKChhbnwwKT09MCl7YnJl
YWsgTDEwMTd9fX13aGlsZSgwKTtpZihhbj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVy
biAwfWNbYW4rMjQ+PjJdPW07Uj1hbHwxNjtQPWNbYWIrKFIrYWEpPj4yXXwwO2Rve2lmKChQfDAp
IT0wKXtpZihQPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW2FuKzE2
Pj4yXT1QO2NbUCsyND4+Ml09YW47YnJlYWt9fX13aGlsZSgwKTtQPWNbYWIrKEorUik+PjJdfDA7
aWYoKFB8MCk9PTApe2JyZWFrfWlmKFA+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4g
MH1lbHNle2NbYW4rMjA+PjJdPVA7Y1tQKzI0Pj4yXT1hbjticmVha319fXdoaWxlKDApO2FxPWFi
KygoJHxhbCkrYWEpfDA7YXI9JCtLfDB9ZWxzZXthcT1aO2FyPUt9Sj1hcSs0fDA7Y1tKPj4yXT1j
W0o+PjJdJi0yO2NbYWIrKFcrNCk+PjJdPWFyfDE7Y1thYisoYXIrVyk+PjJdPWFyO0o9YXI+Pj4z
O2lmKGFyPj4+MDwyNTYpe1Y9Sjw8MTtYPTk4ODArKFY8PDIpfDA7UD1jWzI0NjBdfDA7bT0xPDxK
O2Rve2lmKChQJm18MCk9PTApe2NbMjQ2MF09UHxtO2FzPVg7YXQ9OTg4MCsoVisyPDwyKXwwfWVs
c2V7Sj05ODgwKyhWKzI8PDIpfDA7VT1jW0o+PjJdfDA7aWYoVT4+PjA+PShjWzI0NjRdfDApPj4+
MCl7YXM9VTthdD1KO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2NbYXQ+PjJdPV87Y1th
cysxMj4+Ml09XztjW2FiKyhXKzgpPj4yXT1hcztjW2FiKyhXKzEyKT4+Ml09WDticmVha31WPWFj
O209YXI+Pj44O2Rve2lmKChtfDApPT0wKXthdT0wfWVsc2V7aWYoYXI+Pj4wPjE2Nzc3MjE1KXth
dT0zMTticmVha31QPShtKzEwNDgzMjB8MCk+Pj4xNiY4OyQ9bTw8UDtKPSgkKzUyMDE5MnwwKT4+
PjE2JjQ7VT0kPDxKOyQ9KFUrMjQ1NzYwfDApPj4+MTYmMjtRPTE0LShKfFB8JCkrKFU8PCQ+Pj4x
NSl8MDthdT1hcj4+PigoUSs3fDApPj4+MCkmMXxRPDwxfX13aGlsZSgwKTttPTEwMTQ0KyhhdTw8
Mil8MDtjW2FiKyhXKzI4KT4+Ml09YXU7Y1thYisoVysyMCk+PjJdPTA7Y1thYisoVysxNik+PjJd
PTA7WD1jWzI0NjFdfDA7UT0xPDxhdTtpZigoWCZRfDApPT0wKXtjWzI0NjFdPVh8UTtjW20+PjJd
PVY7Y1thYisoVysyNCk+PjJdPW07Y1thYisoVysxMik+PjJdPVY7Y1thYisoVys4KT4+Ml09Vjti
cmVha31pZigoYXV8MCk9PTMxKXthdj0wfWVsc2V7YXY9MjUtKGF1Pj4+MSl8MH1RPWFyPDxhdjtY
PWNbbT4+Ml18MDt3aGlsZSgxKXtpZigoY1tYKzQ+PjJdJi04fDApPT0oYXJ8MCkpe2JyZWFrfWF3
PVgrMTYrKFE+Pj4zMTw8Mil8MDttPWNbYXc+PjJdfDA7aWYoKG18MCk9PTApe1Q9ODA2O2JyZWFr
fWVsc2V7UT1RPDwxO1g9bX19aWYoKFR8MCk9PTgwNil7aWYoYXc+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbYXc+PjJdPVY7Y1thYisoVysyNCk+PjJdPVg7Y1thYiso
VysxMik+PjJdPVY7Y1thYisoVys4KT4+Ml09VjticmVha319UT1YKzh8MDttPWNbUT4+Ml18MDsk
PWNbMjQ2NF18MDtpZihYPj4+MDwkPj4+MCl7YkcoKTtyZXR1cm4gMH1pZihtPj4+MDwkPj4+MCl7
YkcoKTtyZXR1cm4gMH1lbHNle2NbbSsxMj4+Ml09VjtjW1E+PjJdPVY7Y1thYisoVys4KT4+Ml09
bTtjW2FiKyhXKzEyKT4+Ml09WDtjW2FiKyhXKzI0KT4+Ml09MDticmVha319fXdoaWxlKDApO249
YWIrKGFrfDgpfDA7cmV0dXJuIG58MH19d2hpbGUoMCk7WT1hZDtXPTEwMjg4O3doaWxlKDEpe2F4
PWNbVz4+Ml18MDtpZihheD4+PjA8PVk+Pj4wKXtheT1jW1crND4+Ml18MDthej1heCtheXwwO2lm
KGF6Pj4+MD5ZPj4+MCl7YnJlYWt9fVc9Y1tXKzg+PjJdfDB9Vz1heCsoYXktMzkpfDA7aWYoKFcm
N3wwKT09MCl7YUE9MH1lbHNle2FBPS1XJjd9Vz1heCsoYXktNDcrYUEpfDA7YWM9Vz4+PjA8KGFk
KzE2fDApPj4+MD9ZOlc7Vz1hYys4fDA7Xz1hYis4fDA7aWYoKF8mN3wwKT09MCl7YUI9MH1lbHNl
e2FCPS1fJjd9Xz1hYS00MC1hQnwwO2NbMjQ2Nl09YWIrYUI7Y1syNDYzXT1fO2NbYWIrKGFCKzQp
Pj4yXT1ffDE7Y1thYisoYWEtMzYpPj4yXT00MDtjWzI0NjddPWNbMjQ1NF07Y1thYys0Pj4yXT0y
NztjW1c+PjJdPWNbMjU3Ml07Y1tXKzQ+PjJdPWNbMTAyOTI+PjJdO2NbVys4Pj4yXT1jWzEwMjk2
Pj4yXTtjW1crMTI+PjJdPWNbMTAzMDA+PjJdO2NbMjU3Ml09YWI7Y1syNTczXT1hYTtjWzI1NzVd
PTA7Y1syNTc0XT1XO1c9YWMrMjh8MDtjW1c+PjJdPTc7aWYoKGFjKzMyfDApPj4+MDxhej4+PjAp
e189Vzt3aGlsZSgxKXtXPV8rNHwwO2NbVz4+Ml09NztpZigoXys4fDApPj4+MDxhej4+PjApe189
V31lbHNle2JyZWFrfX19aWYoKGFjfDApPT0oWXwwKSl7YnJlYWt9Xz1hYy1hZHwwO1c9WSsoXys0
KXwwO2NbVz4+Ml09Y1tXPj4yXSYtMjtjW2FkKzQ+PjJdPV98MTtjW1krXz4+Ml09XztXPV8+Pj4z
O2lmKF8+Pj4wPDI1Nil7Sz1XPDwxO1o9OTg4MCsoSzw8Mil8MDtTPWNbMjQ2MF18MDttPTE8PFc7
ZG97aWYoKFMmbXwwKT09MCl7Y1syNDYwXT1TfG07YUM9WjthRD05ODgwKyhLKzI8PDIpfDB9ZWxz
ZXtXPTk4ODArKEsrMjw8Mil8MDtRPWNbVz4+Ml18MDtpZihRPj4+MD49KGNbMjQ2NF18MCk+Pj4w
KXthQz1RO2FEPVc7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7Y1thRD4+Ml09YWQ7Y1th
QysxMj4+Ml09YWQ7Y1thZCs4Pj4yXT1hQztjW2FkKzEyPj4yXT1aO2JyZWFrfUs9YWQ7bT1fPj4+
ODtkb3tpZigobXwwKT09MCl7YUU9MH1lbHNle2lmKF8+Pj4wPjE2Nzc3MjE1KXthRT0zMTticmVh
a31TPShtKzEwNDgzMjB8MCk+Pj4xNiY4O1k9bTw8UzthYz0oWSs1MjAxOTJ8MCk+Pj4xNiY0O1c9
WTw8YWM7WT0oVysyNDU3NjB8MCk+Pj4xNiYyO1E9MTQtKGFjfFN8WSkrKFc8PFk+Pj4xNSl8MDth
RT1fPj4+KChRKzd8MCk+Pj4wKSYxfFE8PDF9fXdoaWxlKDApO209MTAxNDQrKGFFPDwyKXwwO2Nb
YWQrMjg+PjJdPWFFO2NbYWQrMjA+PjJdPTA7Y1thZCsxNj4+Ml09MDtaPWNbMjQ2MV18MDtRPTE8
PGFFO2lmKChaJlF8MCk9PTApe2NbMjQ2MV09WnxRO2NbbT4+Ml09SztjW2FkKzI0Pj4yXT1tO2Nb
YWQrMTI+PjJdPWFkO2NbYWQrOD4+Ml09YWQ7YnJlYWt9aWYoKGFFfDApPT0zMSl7YUY9MH1lbHNl
e2FGPTI1LShhRT4+PjEpfDB9UT1fPDxhRjtaPWNbbT4+Ml18MDt3aGlsZSgxKXtpZigoY1taKzQ+
PjJdJi04fDApPT0oX3wwKSl7YnJlYWt9YUc9WisxNisoUT4+PjMxPDwyKXwwO209Y1thRz4+Ml18
MDtpZigobXwwKT09MCl7VD04NDE7YnJlYWt9ZWxzZXtRPVE8PDE7Wj1tfX1pZigoVHwwKT09ODQx
KXtpZihhRz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1thRz4+Ml09
SztjW2FkKzI0Pj4yXT1aO2NbYWQrMTI+PjJdPWFkO2NbYWQrOD4+Ml09YWQ7YnJlYWt9fVE9Wis4
fDA7Xz1jW1E+PjJdfDA7bT1jWzI0NjRdfDA7aWYoWj4+PjA8bT4+PjApe2JHKCk7cmV0dXJuIDB9
aWYoXz4+PjA8bT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW18rMTI+PjJdPUs7Y1tRPj4yXT1L
O2NbYWQrOD4+Ml09XztjW2FkKzEyPj4yXT1aO2NbYWQrMjQ+PjJdPTA7YnJlYWt9fX13aGlsZSgw
KTthZD1jWzI0NjNdfDA7aWYoYWQ+Pj4wPD1vPj4+MCl7YnJlYWt9Xz1hZC1vfDA7Y1syNDYzXT1f
O2FkPWNbMjQ2Nl18MDtRPWFkO2NbMjQ2Nl09UStvO2NbUSsobys0KT4+Ml09X3wxO2NbYWQrND4+
Ml09b3wzO249YWQrOHwwO3JldHVybiBufDB9fXdoaWxlKDApO2NbKGJ3KCl8MCk+PjJdPTEyO249
MDtyZXR1cm4gbnwwfWZ1bmN0aW9uIGtLKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAsZz0w
LGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxK
PTAsSz0wLEw9MCxNPTAsTj0wLE89MDtpZigoYXwwKT09MCl7cmV0dXJufWI9YS04fDA7ZD1iO2U9
Y1syNDY0XXwwO2lmKGI+Pj4wPGU+Pj4wKXtiRygpfWY9Y1thLTQ+PjJdfDA7Zz1mJjM7aWYoKGd8
MCk9PTEpe2JHKCl9aD1mJi04O2k9YSsoaC04KXwwO2o9aTtMMTE4OTpkb3tpZigoZiYxfDApPT0w
KXtrPWNbYj4+Ml18MDtpZigoZ3wwKT09MCl7cmV0dXJufWw9LTgta3wwO209YStsfDA7bj1tO289
aytofDA7aWYobT4+PjA8ZT4+PjApe2JHKCl9aWYoKG58MCk9PShjWzI0NjVdfDApKXtwPWErKGgt
NCl8MDtpZigoY1twPj4yXSYzfDApIT0zKXtxPW47cj1vO2JyZWFrfWNbMjQ2Ml09bztjW3A+PjJd
PWNbcD4+Ml0mLTI7Y1thKyhsKzQpPj4yXT1vfDE7Y1tpPj4yXT1vO3JldHVybn1wPWs+Pj4zO2lm
KGs+Pj4wPDI1Nil7az1jW2ErKGwrOCk+PjJdfDA7cz1jW2ErKGwrMTIpPj4yXXwwO3Q9OTg4MCso
cDw8MTw8Mil8MDtkb3tpZigoa3wwKSE9KHR8MCkpe2lmKGs+Pj4wPGU+Pj4wKXtiRygpfWlmKChj
W2srMTI+PjJdfDApPT0obnwwKSl7YnJlYWt9YkcoKX19d2hpbGUoMCk7aWYoKHN8MCk9PShrfDAp
KXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxwKTtxPW47cj1vO2JyZWFrfWRve2lmKChzfDApPT0odHww
KSl7dT1zKzh8MH1lbHNle2lmKHM+Pj4wPGU+Pj4wKXtiRygpfXY9cys4fDA7aWYoKGNbdj4+Ml18
MCk9PShufDApKXt1PXY7YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1trKzEyPj4yXT1zO2NbdT4+Ml09
aztxPW47cj1vO2JyZWFrfXQ9bTtwPWNbYSsobCsyNCk+PjJdfDA7dj1jW2ErKGwrMTIpPj4yXXww
O2Rve2lmKCh2fDApPT0odHwwKSl7dz1hKyhsKzIwKXwwO3g9Y1t3Pj4yXXwwO2lmKCh4fDApPT0w
KXt5PWErKGwrMTYpfDA7ej1jW3k+PjJdfDA7aWYoKHp8MCk9PTApe0E9MDticmVha31lbHNle0I9
ejtDPXl9fWVsc2V7Qj14O0M9d313aGlsZSgxKXt3PUIrMjB8MDt4PWNbdz4+Ml18MDtpZigoeHww
KSE9MCl7Qj14O0M9dztjb250aW51ZX13PUIrMTZ8MDt4PWNbdz4+Ml18MDtpZigoeHwwKT09MCl7
YnJlYWt9ZWxzZXtCPXg7Qz13fX1pZihDPj4+MDxlPj4+MCl7YkcoKX1lbHNle2NbQz4+Ml09MDtB
PUI7YnJlYWt9fWVsc2V7dz1jW2ErKGwrOCk+PjJdfDA7aWYodz4+PjA8ZT4+PjApe2JHKCl9eD13
KzEyfDA7aWYoKGNbeD4+Ml18MCkhPSh0fDApKXtiRygpfXk9dis4fDA7aWYoKGNbeT4+Ml18MCk9
PSh0fDApKXtjW3g+PjJdPXY7Y1t5Pj4yXT13O0E9djticmVha31lbHNle2JHKCl9fX13aGlsZSgw
KTtpZigocHwwKT09MCl7cT1uO3I9bzticmVha312PWErKGwrMjgpfDA7bT0xMDE0NCsoY1t2Pj4y
XTw8Mil8MDtkb3tpZigodHwwKT09KGNbbT4+Ml18MCkpe2NbbT4+Ml09QTtpZigoQXwwKSE9MCl7
YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1t2Pj4yXSk7cT1uO3I9bzticmVhayBMMTE4OX1l
bHNle2lmKHA+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1rPXArMTZ8MDtpZigoY1trPj4yXXww
KT09KHR8MCkpe2Nbaz4+Ml09QX1lbHNle2NbcCsyMD4+Ml09QX1pZigoQXwwKT09MCl7cT1uO3I9
bzticmVhayBMMTE4OX19fXdoaWxlKDApO2lmKEE+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1j
W0ErMjQ+PjJdPXA7dD1jW2ErKGwrMTYpPj4yXXwwO2Rve2lmKCh0fDApIT0wKXtpZih0Pj4+MDwo
Y1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW0ErMTY+PjJdPXQ7Y1t0KzI0Pj4yXT1BO2JyZWFr
fX19d2hpbGUoMCk7dD1jW2ErKGwrMjApPj4yXXwwO2lmKCh0fDApPT0wKXtxPW47cj1vO2JyZWFr
fWlmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbQSsyMD4+Ml09dDtjW3QrMjQ+
PjJdPUE7cT1uO3I9bzticmVha319ZWxzZXtxPWQ7cj1ofX13aGlsZSgwKTtkPXE7aWYoZD4+PjA+
PWk+Pj4wKXtiRygpfUE9YSsoaC00KXwwO2U9Y1tBPj4yXXwwO2lmKChlJjF8MCk9PTApe2JHKCl9
ZG97aWYoKGUmMnwwKT09MCl7aWYoKGp8MCk9PShjWzI0NjZdfDApKXtCPShjWzI0NjNdfDApK3J8
MDtjWzI0NjNdPUI7Y1syNDY2XT1xO2NbcSs0Pj4yXT1CfDE7aWYoKHF8MCkhPShjWzI0NjVdfDAp
KXtyZXR1cm59Y1syNDY1XT0wO2NbMjQ2Ml09MDtyZXR1cm59aWYoKGp8MCk9PShjWzI0NjVdfDAp
KXtCPShjWzI0NjJdfDApK3J8MDtjWzI0NjJdPUI7Y1syNDY1XT1xO2NbcSs0Pj4yXT1CfDE7Y1tk
K0I+PjJdPUI7cmV0dXJufUI9KGUmLTgpK3J8MDtDPWU+Pj4zO0wxMjkyOmRve2lmKGU+Pj4wPDI1
Nil7dT1jW2EraD4+Ml18MDtnPWNbYSsoaHw0KT4+Ml18MDtiPTk4ODArKEM8PDE8PDIpfDA7ZG97
aWYoKHV8MCkhPShifDApKXtpZih1Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9aWYoKGNbdSsx
Mj4+Ml18MCk9PShqfDApKXticmVha31iRygpfX13aGlsZSgwKTtpZigoZ3wwKT09KHV8MCkpe2Nb
MjQ2MF09Y1syNDYwXSZ+KDE8PEMpO2JyZWFrfWRve2lmKChnfDApPT0oYnwwKSl7RD1nKzh8MH1l
bHNle2lmKGc+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1mPWcrOHwwO2lmKChjW2Y+PjJdfDAp
PT0oanwwKSl7RD1mO2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbdSsxMj4+Ml09ZztjW0Q+PjJdPXV9
ZWxzZXtiPWk7Zj1jW2ErKGgrMTYpPj4yXXwwO3Q9Y1thKyhofDQpPj4yXXwwO2Rve2lmKCh0fDAp
PT0oYnwwKSl7cD1hKyhoKzEyKXwwO3Y9Y1twPj4yXXwwO2lmKCh2fDApPT0wKXttPWErKGgrOCl8
MDtrPWNbbT4+Ml18MDtpZigoa3wwKT09MCl7RT0wO2JyZWFrfWVsc2V7Rj1rO0c9bX19ZWxzZXtG
PXY7Rz1wfXdoaWxlKDEpe3A9RisyMHwwO3Y9Y1twPj4yXXwwO2lmKCh2fDApIT0wKXtGPXY7Rz1w
O2NvbnRpbnVlfXA9RisxNnwwO3Y9Y1twPj4yXXwwO2lmKCh2fDApPT0wKXticmVha31lbHNle0Y9
djtHPXB9fWlmKEc+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbRz4+Ml09MDtFPUY7
YnJlYWt9fWVsc2V7cD1jW2EraD4+Ml18MDtpZihwPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9
dj1wKzEyfDA7aWYoKGNbdj4+Ml18MCkhPShifDApKXtiRygpfW09dCs4fDA7aWYoKGNbbT4+Ml18
MCk9PShifDApKXtjW3Y+PjJdPXQ7Y1ttPj4yXT1wO0U9dDticmVha31lbHNle2JHKCl9fX13aGls
ZSgwKTtpZigoZnwwKT09MCl7YnJlYWt9dD1hKyhoKzIwKXwwO3U9MTAxNDQrKGNbdD4+Ml08PDIp
fDA7ZG97aWYoKGJ8MCk9PShjW3U+PjJdfDApKXtjW3U+PjJdPUU7aWYoKEV8MCkhPTApe2JyZWFr
fWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbdD4+Ml0pO2JyZWFrIEwxMjkyfWVsc2V7aWYoZj4+PjA8
KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWc9ZisxNnwwO2lmKChjW2c+PjJdfDApPT0oYnwwKSl7Y1tn
Pj4yXT1FfWVsc2V7Y1tmKzIwPj4yXT1FfWlmKChFfDApPT0wKXticmVhayBMMTI5Mn19fXdoaWxl
KDApO2lmKEU+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1jW0UrMjQ+PjJdPWY7Yj1jW2ErKGgr
OCk+PjJdfDA7ZG97aWYoKGJ8MCkhPTApe2lmKGI+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1l
bHNle2NbRSsxNj4+Ml09YjtjW2IrMjQ+PjJdPUU7YnJlYWt9fX13aGlsZSgwKTtiPWNbYSsoaCsx
Mik+PjJdfDA7aWYoKGJ8MCk9PTApe2JyZWFrfWlmKGI+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KX1lbHNle2NbRSsyMD4+Ml09YjtjW2IrMjQ+PjJdPUU7YnJlYWt9fX13aGlsZSgwKTtjW3ErND4+
Ml09QnwxO2NbZCtCPj4yXT1CO2lmKChxfDApIT0oY1syNDY1XXwwKSl7SD1CO2JyZWFrfWNbMjQ2
Ml09QjtyZXR1cm59ZWxzZXtjW0E+PjJdPWUmLTI7Y1txKzQ+PjJdPXJ8MTtjW2Qrcj4+Ml09cjtI
PXJ9fXdoaWxlKDApO3I9SD4+PjM7aWYoSD4+PjA8MjU2KXtkPXI8PDE7ZT05ODgwKyhkPDwyKXww
O0E9Y1syNDYwXXwwO0U9MTw8cjtkb3tpZigoQSZFfDApPT0wKXtjWzI0NjBdPUF8RTtJPWU7Sj05
ODgwKyhkKzI8PDIpfDB9ZWxzZXtyPTk4ODArKGQrMjw8Mil8MDtoPWNbcj4+Ml18MDtpZihoPj4+
MD49KGNbMjQ2NF18MCk+Pj4wKXtJPWg7Sj1yO2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbSj4+Ml09
cTtjW0krMTI+PjJdPXE7Y1txKzg+PjJdPUk7Y1txKzEyPj4yXT1lO3JldHVybn1lPXE7ST1IPj4+
ODtkb3tpZigoSXwwKT09MCl7Sz0wfWVsc2V7aWYoSD4+PjA+MTY3NzcyMTUpe0s9MzE7YnJlYWt9
Sj0oSSsxMDQ4MzIwfDApPj4+MTYmODtkPUk8PEo7RT0oZCs1MjAxOTJ8MCk+Pj4xNiY0O0E9ZDw8
RTtkPShBKzI0NTc2MHwwKT4+PjE2JjI7cj0xNC0oRXxKfGQpKyhBPDxkPj4+MTUpfDA7Sz1IPj4+
KChyKzd8MCk+Pj4wKSYxfHI8PDF9fXdoaWxlKDApO0k9MTAxNDQrKEs8PDIpfDA7Y1txKzI4Pj4y
XT1LO2NbcSsyMD4+Ml09MDtjW3ErMTY+PjJdPTA7cj1jWzI0NjFdfDA7ZD0xPDxLO2Rve2lmKChy
JmR8MCk9PTApe2NbMjQ2MV09cnxkO2NbST4+Ml09ZTtjW3ErMjQ+PjJdPUk7Y1txKzEyPj4yXT1x
O2NbcSs4Pj4yXT1xfWVsc2V7aWYoKEt8MCk9PTMxKXtMPTB9ZWxzZXtMPTI1LShLPj4+MSl8MH1B
PUg8PEw7Sj1jW0k+PjJdfDA7d2hpbGUoMSl7aWYoKGNbSis0Pj4yXSYtOHwwKT09KEh8MCkpe2Jy
ZWFrfU09SisxNisoQT4+PjMxPDwyKXwwO0U9Y1tNPj4yXXwwO2lmKChFfDApPT0wKXtOPTEwMTg7
YnJlYWt9ZWxzZXtBPUE8PDE7Sj1FfX1pZigoTnwwKT09MTAxOCl7aWYoTT4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpfWVsc2V7Y1tNPj4yXT1lO2NbcSsyND4+Ml09SjtjW3ErMTI+PjJdPXE7Y1tx
Kzg+PjJdPXE7YnJlYWt9fUE9Sis4fDA7Qj1jW0E+PjJdfDA7RT1jWzI0NjRdfDA7aWYoSj4+PjA8
RT4+PjApe2JHKCl9aWYoQj4+PjA8RT4+PjApe2JHKCl9ZWxzZXtjW0IrMTI+PjJdPWU7Y1tBPj4y
XT1lO2NbcSs4Pj4yXT1CO2NbcSsxMj4+Ml09SjtjW3ErMjQ+PjJdPTA7YnJlYWt9fX13aGlsZSgw
KTtxPShjWzI0NjhdfDApLTF8MDtjWzI0NjhdPXE7aWYoKHF8MCk9PTApe089MTAyOTZ9ZWxzZXty
ZXR1cm59d2hpbGUoMSl7cT1jW08+PjJdfDA7aWYoKHF8MCk9PTApe2JyZWFrfWVsc2V7Tz1xKzh8
MH19Y1syNDY4XT0tMTtyZXR1cm59ZnVuY3Rpb24ga0woYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0w
LGU9MCxmPTAsZz0wO2lmKChhfDApPT0wKXtkPWtKKGIpfDA7cmV0dXJuIGR8MH1pZihiPj4+MD40
Mjk0OTY3MjMxKXtjWyhidygpfDApPj4yXT0xMjtkPTA7cmV0dXJuIGR8MH1pZihiPj4+MDwxMSl7
ZT0xNn1lbHNle2U9YisxMSYtOH1mPWtNKGEtOHwwLGUpfDA7aWYoKGZ8MCkhPTApe2Q9Zis4fDA7
cmV0dXJuIGR8MH1mPWtKKGIpfDA7aWYoKGZ8MCk9PTApe2Q9MDtyZXR1cm4gZHwwfWU9Y1thLTQ+
PjJdfDA7Zz0oZSYtOCktKChlJjN8MCk9PTA/ODo0KXwwO2U9Zz4+PjA8Yj4+PjA/ZzpiO2tZKGZ8
MCxhfDAsZSl8MDtrSyhhKTtkPWY7cmV0dXJuIGR8MH1mdW5jdGlvbiBrTShhLGIpe2E9YXwwO2I9
YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtkPWErNHwwO2U9
Y1tkPj4yXXwwO2Y9ZSYtODtnPWE7aD1nK2Z8MDtpPWg7aj1jWzI0NjRdfDA7aWYoZz4+PjA8aj4+
PjApe2JHKCk7cmV0dXJuIDB9az1lJjM7aWYoISgoa3wwKSE9MSZnPj4+MDxoPj4+MCkpe2JHKCk7
cmV0dXJuIDB9bD1nKyhmfDQpfDA7bT1jW2w+PjJdfDA7aWYoKG0mMXwwKT09MCl7YkcoKTtyZXR1
cm4gMH1pZigoa3wwKT09MCl7aWYoYj4+PjA8MjU2KXtuPTA7cmV0dXJuIG58MH1kb3tpZihmPj4+
MD49KGIrNHwwKT4+PjApe2lmKChmLWJ8MCk+Pj4wPmNbMjQ1Ml08PDE+Pj4wKXticmVha31lbHNl
e249YX1yZXR1cm4gbnwwfX13aGlsZSgwKTtuPTA7cmV0dXJuIG58MH1pZihmPj4+MD49Yj4+PjAp
e2s9Zi1ifDA7aWYoaz4+PjA8PTE1KXtuPWE7cmV0dXJuIG58MH1jW2Q+PjJdPWUmMXxifDI7Y1tn
KyhiKzQpPj4yXT1rfDM7Y1tsPj4yXT1jW2w+PjJdfDE7a04oZytifDAsayk7bj1hO3JldHVybiBu
fDB9aWYoKGl8MCk9PShjWzI0NjZdfDApKXtrPShjWzI0NjNdfDApK2Z8MDtpZihrPj4+MDw9Yj4+
PjApe249MDtyZXR1cm4gbnwwfWw9ay1ifDA7Y1tkPj4yXT1lJjF8YnwyO2NbZysoYis0KT4+Ml09
bHwxO2NbMjQ2Nl09ZytiO2NbMjQ2M109bDtuPWE7cmV0dXJuIG58MH1pZigoaXwwKT09KGNbMjQ2
NV18MCkpe2w9KGNbMjQ2Ml18MCkrZnwwO2lmKGw+Pj4wPGI+Pj4wKXtuPTA7cmV0dXJuIG58MH1r
PWwtYnwwO2lmKGs+Pj4wPjE1KXtjW2Q+PjJdPWUmMXxifDI7Y1tnKyhiKzQpPj4yXT1rfDE7Y1tn
K2w+PjJdPWs7bz1nKyhsKzQpfDA7Y1tvPj4yXT1jW28+PjJdJi0yO3A9ZytifDA7cT1rfWVsc2V7
Y1tkPj4yXT1lJjF8bHwyO2U9ZysobCs0KXwwO2NbZT4+Ml09Y1tlPj4yXXwxO3A9MDtxPTB9Y1sy
NDYyXT1xO2NbMjQ2NV09cDtuPWE7cmV0dXJuIG58MH1pZigobSYyfDApIT0wKXtuPTA7cmV0dXJu
IG58MH1wPShtJi04KStmfDA7aWYocD4+PjA8Yj4+PjApe249MDtyZXR1cm4gbnwwfXE9cC1ifDA7
ZT1tPj4+MztMMTQ3ODpkb3tpZihtPj4+MDwyNTYpe2w9Y1tnKyhmKzgpPj4yXXwwO2s9Y1tnKyhm
KzEyKT4+Ml18MDtvPTk4ODArKGU8PDE8PDIpfDA7ZG97aWYoKGx8MCkhPShvfDApKXtpZihsPj4+
MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1pZigoY1tsKzEyPj4yXXwwKT09KGl8MCkpe2JyZWFrfWJH
KCk7cmV0dXJuIDB9fXdoaWxlKDApO2lmKChrfDApPT0obHwwKSl7Y1syNDYwXT1jWzI0NjBdJn4o
MTw8ZSk7YnJlYWt9ZG97aWYoKGt8MCk9PShvfDApKXtyPWsrOHwwfWVsc2V7aWYoaz4+PjA8aj4+
PjApe2JHKCk7cmV0dXJuIDB9cz1rKzh8MDtpZigoY1tzPj4yXXwwKT09KGl8MCkpe3I9czticmVh
a31iRygpO3JldHVybiAwfX13aGlsZSgwKTtjW2wrMTI+PjJdPWs7Y1tyPj4yXT1sfWVsc2V7bz1o
O3M9Y1tnKyhmKzI0KT4+Ml18MDt0PWNbZysoZisxMik+PjJdfDA7ZG97aWYoKHR8MCk9PShvfDAp
KXt1PWcrKGYrMjApfDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCk9PTApe3c9ZysoZisxNil8MDt4PWNb
dz4+Ml18MDtpZigoeHwwKT09MCl7eT0wO2JyZWFrfWVsc2V7ej14O0E9d319ZWxzZXt6PXY7QT11
fXdoaWxlKDEpe3U9eisyMHwwO3Y9Y1t1Pj4yXXwwO2lmKCh2fDApIT0wKXt6PXY7QT11O2NvbnRp
bnVlfXU9eisxNnwwO3Y9Y1t1Pj4yXXwwO2lmKCh2fDApPT0wKXticmVha31lbHNle3o9djtBPXV9
fWlmKEE+Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tBPj4yXT0wO3k9ejticmVha319
ZWxzZXt1PWNbZysoZis4KT4+Ml18MDtpZih1Pj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH12PXUr
MTJ8MDtpZigoY1t2Pj4yXXwwKSE9KG98MCkpe2JHKCk7cmV0dXJuIDB9dz10Kzh8MDtpZigoY1t3
Pj4yXXwwKT09KG98MCkpe2Nbdj4+Ml09dDtjW3c+PjJdPXU7eT10O2JyZWFrfWVsc2V7YkcoKTty
ZXR1cm4gMH19fXdoaWxlKDApO2lmKChzfDApPT0wKXticmVha310PWcrKGYrMjgpfDA7bD0xMDE0
NCsoY1t0Pj4yXTw8Mil8MDtkb3tpZigob3wwKT09KGNbbD4+Ml18MCkpe2NbbD4+Ml09eTtpZigo
eXwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1t0Pj4yXSk7YnJlYWsgTDE0Nzh9
ZWxzZXtpZihzPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9az1zKzE2fDA7aWYo
KGNbaz4+Ml18MCk9PShvfDApKXtjW2s+PjJdPXl9ZWxzZXtjW3MrMjA+PjJdPXl9aWYoKHl8MCk9
PTApe2JyZWFrIEwxNDc4fX19d2hpbGUoMCk7aWYoeT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygp
O3JldHVybiAwfWNbeSsyND4+Ml09cztvPWNbZysoZisxNik+PjJdfDA7ZG97aWYoKG98MCkhPTAp
e2lmKG8+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbeSsxNj4+Ml09
bztjW28rMjQ+PjJdPXk7YnJlYWt9fX13aGlsZSgwKTtvPWNbZysoZisyMCk+PjJdfDA7aWYoKG98
MCk9PTApe2JyZWFrfWlmKG8+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNl
e2NbeSsyMD4+Ml09bztjW28rMjQ+PjJdPXk7YnJlYWt9fX13aGlsZSgwKTtpZihxPj4+MDwxNil7
Y1tkPj4yXT1wfGNbZD4+Ml0mMXwyO3k9ZysocHw0KXwwO2NbeT4+Ml09Y1t5Pj4yXXwxO249YTty
ZXR1cm4gbnwwfWVsc2V7Y1tkPj4yXT1jW2Q+PjJdJjF8YnwyO2NbZysoYis0KT4+Ml09cXwzO2Q9
ZysocHw0KXwwO2NbZD4+Ml09Y1tkPj4yXXwxO2tOKGcrYnwwLHEpO249YTtyZXR1cm4gbnwwfXJl
dHVybiAwfWZ1bmN0aW9uIGtOKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxo
PTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTA7ZD1hO2U9ZCtifDA7Zj1lO2c9Y1thKzQ+PjJdfDA7TDE1NTQ6ZG97aWYoKGcmMXww
KT09MCl7aD1jW2E+PjJdfDA7aWYoKGcmM3wwKT09MCl7cmV0dXJufWk9ZCsoLWh8MCl8MDtqPWk7
az1oK2J8MDtsPWNbMjQ2NF18MDtpZihpPj4+MDxsPj4+MCl7YkcoKX1pZigoanwwKT09KGNbMjQ2
NV18MCkpe209ZCsoYis0KXwwO2lmKChjW20+PjJdJjN8MCkhPTMpe249ajtvPWs7YnJlYWt9Y1sy
NDYyXT1rO2NbbT4+Ml09Y1ttPj4yXSYtMjtjW2QrKDQtaCk+PjJdPWt8MTtjW2U+PjJdPWs7cmV0
dXJufW09aD4+PjM7aWYoaD4+PjA8MjU2KXtwPWNbZCsoOC1oKT4+Ml18MDtxPWNbZCsoMTItaCk+
PjJdfDA7cj05ODgwKyhtPDwxPDwyKXwwO2Rve2lmKChwfDApIT0ocnwwKSl7aWYocD4+PjA8bD4+
PjApe2JHKCl9aWYoKGNbcCsxMj4+Ml18MCk9PShqfDApKXticmVha31iRygpfX13aGlsZSgwKTtp
ZigocXwwKT09KHB8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PG0pO249ajtvPWs7YnJlYWt9ZG97
aWYoKHF8MCk9PShyfDApKXtzPXErOHwwfWVsc2V7aWYocT4+PjA8bD4+PjApe2JHKCl9dD1xKzh8
MDtpZigoY1t0Pj4yXXwwKT09KGp8MCkpe3M9dDticmVha31iRygpfX13aGlsZSgwKTtjW3ArMTI+
PjJdPXE7Y1tzPj4yXT1wO249ajtvPWs7YnJlYWt9cj1pO209Y1tkKygyNC1oKT4+Ml18MDt0PWNb
ZCsoMTItaCk+PjJdfDA7ZG97aWYoKHR8MCk9PShyfDApKXt1PTE2LWh8MDt2PWQrKHUrNCl8MDt3
PWNbdj4+Ml18MDtpZigod3wwKT09MCl7eD1kK3V8MDt1PWNbeD4+Ml18MDtpZigodXwwKT09MCl7
eT0wO2JyZWFrfWVsc2V7ej11O0E9eH19ZWxzZXt6PXc7QT12fXdoaWxlKDEpe3Y9eisyMHwwO3c9
Y1t2Pj4yXXwwO2lmKCh3fDApIT0wKXt6PXc7QT12O2NvbnRpbnVlfXY9eisxNnwwO3c9Y1t2Pj4y
XXwwO2lmKCh3fDApPT0wKXticmVha31lbHNle3o9dztBPXZ9fWlmKEE+Pj4wPGw+Pj4wKXtiRygp
fWVsc2V7Y1tBPj4yXT0wO3k9ejticmVha319ZWxzZXt2PWNbZCsoOC1oKT4+Ml18MDtpZih2Pj4+
MDxsPj4+MCl7YkcoKX13PXYrMTJ8MDtpZigoY1t3Pj4yXXwwKSE9KHJ8MCkpe2JHKCl9eD10Kzh8
MDtpZigoY1t4Pj4yXXwwKT09KHJ8MCkpe2Nbdz4+Ml09dDtjW3g+PjJdPXY7eT10O2JyZWFrfWVs
c2V7YkcoKX19fXdoaWxlKDApO2lmKChtfDApPT0wKXtuPWo7bz1rO2JyZWFrfXQ9ZCsoMjgtaCl8
MDtsPTEwMTQ0KyhjW3Q+PjJdPDwyKXwwO2Rve2lmKChyfDApPT0oY1tsPj4yXXwwKSl7Y1tsPj4y
XT15O2lmKCh5fDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Q+PjJdKTtuPWo7
bz1rO2JyZWFrIEwxNTU0fWVsc2V7aWYobT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWk9bSsx
NnwwO2lmKChjW2k+PjJdfDApPT0ocnwwKSl7Y1tpPj4yXT15fWVsc2V7Y1ttKzIwPj4yXT15fWlm
KCh5fDApPT0wKXtuPWo7bz1rO2JyZWFrIEwxNTU0fX19d2hpbGUoMCk7aWYoeT4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpfWNbeSsyND4+Ml09bTtyPTE2LWh8MDt0PWNbZCtyPj4yXXwwO2Rve2lm
KCh0fDApIT0wKXtpZih0Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW3krMTY+PjJd
PXQ7Y1t0KzI0Pj4yXT15O2JyZWFrfX19d2hpbGUoMCk7dD1jW2QrKHIrNCk+PjJdfDA7aWYoKHR8
MCk9PTApe249ajtvPWs7YnJlYWt9aWYodD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7
Y1t5KzIwPj4yXT10O2NbdCsyND4+Ml09eTtuPWo7bz1rO2JyZWFrfX1lbHNle249YTtvPWJ9fXdo
aWxlKDApO2E9Y1syNDY0XXwwO2lmKGU+Pj4wPGE+Pj4wKXtiRygpfXk9ZCsoYis0KXwwO3o9Y1t5
Pj4yXXwwO2Rve2lmKCh6JjJ8MCk9PTApe2lmKChmfDApPT0oY1syNDY2XXwwKSl7QT0oY1syNDYz
XXwwKStvfDA7Y1syNDYzXT1BO2NbMjQ2Nl09bjtjW24rND4+Ml09QXwxO2lmKChufDApIT0oY1sy
NDY1XXwwKSl7cmV0dXJufWNbMjQ2NV09MDtjWzI0NjJdPTA7cmV0dXJufWlmKChmfDApPT0oY1sy
NDY1XXwwKSl7QT0oY1syNDYyXXwwKStvfDA7Y1syNDYyXT1BO2NbMjQ2NV09bjtjW24rND4+Ml09
QXwxO2NbbitBPj4yXT1BO3JldHVybn1BPSh6Ji04KStvfDA7cz16Pj4+MztMMTY1Mzpkb3tpZih6
Pj4+MDwyNTYpe2c9Y1tkKyhiKzgpPj4yXXwwO3Q9Y1tkKyhiKzEyKT4+Ml18MDtoPTk4ODArKHM8
PDE8PDIpfDA7ZG97aWYoKGd8MCkhPShofDApKXtpZihnPj4+MDxhPj4+MCl7YkcoKX1pZigoY1tn
KzEyPj4yXXwwKT09KGZ8MCkpe2JyZWFrfWJHKCl9fXdoaWxlKDApO2lmKCh0fDApPT0oZ3wwKSl7
Y1syNDYwXT1jWzI0NjBdJn4oMTw8cyk7YnJlYWt9ZG97aWYoKHR8MCk9PShofDApKXtCPXQrOHww
fWVsc2V7aWYodD4+PjA8YT4+PjApe2JHKCl9bT10Kzh8MDtpZigoY1ttPj4yXXwwKT09KGZ8MCkp
e0I9bTticmVha31iRygpfX13aGlsZSgwKTtjW2crMTI+PjJdPXQ7Y1tCPj4yXT1nfWVsc2V7aD1l
O209Y1tkKyhiKzI0KT4+Ml18MDtsPWNbZCsoYisxMik+PjJdfDA7ZG97aWYoKGx8MCk9PShofDAp
KXtpPWQrKGIrMjApfDA7cD1jW2k+PjJdfDA7aWYoKHB8MCk9PTApe3E9ZCsoYisxNil8MDt2PWNb
cT4+Ml18MDtpZigodnwwKT09MCl7Qz0wO2JyZWFrfWVsc2V7RD12O0U9cX19ZWxzZXtEPXA7RT1p
fXdoaWxlKDEpe2k9RCsyMHwwO3A9Y1tpPj4yXXwwO2lmKChwfDApIT0wKXtEPXA7RT1pO2NvbnRp
bnVlfWk9RCsxNnwwO3A9Y1tpPj4yXXwwO2lmKChwfDApPT0wKXticmVha31lbHNle0Q9cDtFPWl9
fWlmKEU+Pj4wPGE+Pj4wKXtiRygpfWVsc2V7Y1tFPj4yXT0wO0M9RDticmVha319ZWxzZXtpPWNb
ZCsoYis4KT4+Ml18MDtpZihpPj4+MDxhPj4+MCl7YkcoKX1wPWkrMTJ8MDtpZigoY1twPj4yXXww
KSE9KGh8MCkpe2JHKCl9cT1sKzh8MDtpZigoY1txPj4yXXwwKT09KGh8MCkpe2NbcD4+Ml09bDtj
W3E+PjJdPWk7Qz1sO2JyZWFrfWVsc2V7YkcoKX19fXdoaWxlKDApO2lmKChtfDApPT0wKXticmVh
a31sPWQrKGIrMjgpfDA7Zz0xMDE0NCsoY1tsPj4yXTw8Mil8MDtkb3tpZigoaHwwKT09KGNbZz4+
Ml18MCkpe2NbZz4+Ml09QztpZigoQ3wwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8
Y1tsPj4yXSk7YnJlYWsgTDE2NTN9ZWxzZXtpZihtPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9
dD1tKzE2fDA7aWYoKGNbdD4+Ml18MCk9PShofDApKXtjW3Q+PjJdPUN9ZWxzZXtjW20rMjA+PjJd
PUN9aWYoKEN8MCk9PTApe2JyZWFrIEwxNjUzfX19d2hpbGUoMCk7aWYoQz4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpfWNbQysyND4+Ml09bTtoPWNbZCsoYisxNik+PjJdfDA7ZG97aWYoKGh8MCkh
PTApe2lmKGg+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbQysxNj4+Ml09aDtjW2gr
MjQ+PjJdPUM7YnJlYWt9fX13aGlsZSgwKTtoPWNbZCsoYisyMCk+PjJdfDA7aWYoKGh8MCk9PTAp
e2JyZWFrfWlmKGg+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbQysyMD4+Ml09aDtj
W2grMjQ+PjJdPUM7YnJlYWt9fX13aGlsZSgwKTtjW24rND4+Ml09QXwxO2NbbitBPj4yXT1BO2lm
KChufDApIT0oY1syNDY1XXwwKSl7Rj1BO2JyZWFrfWNbMjQ2Ml09QTtyZXR1cm59ZWxzZXtjW3k+
PjJdPXomLTI7Y1tuKzQ+PjJdPW98MTtjW24rbz4+Ml09bztGPW99fXdoaWxlKDApO289Rj4+PjM7
aWYoRj4+PjA8MjU2KXt6PW88PDE7eT05ODgwKyh6PDwyKXwwO0M9Y1syNDYwXXwwO2I9MTw8bztk
b3tpZigoQyZifDApPT0wKXtjWzI0NjBdPUN8YjtHPXk7SD05ODgwKyh6KzI8PDIpfDB9ZWxzZXtv
PTk4ODArKHorMjw8Mil8MDtkPWNbbz4+Ml18MDtpZihkPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXtH
PWQ7SD1vO2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbSD4+Ml09bjtjW0crMTI+PjJdPW47Y1tuKzg+
PjJdPUc7Y1tuKzEyPj4yXT15O3JldHVybn15PW47Rz1GPj4+ODtkb3tpZigoR3wwKT09MCl7ST0w
fWVsc2V7aWYoRj4+PjA+MTY3NzcyMTUpe0k9MzE7YnJlYWt9SD0oRysxMDQ4MzIwfDApPj4+MTYm
ODt6PUc8PEg7Yj0oeis1MjAxOTJ8MCk+Pj4xNiY0O0M9ejw8Yjt6PShDKzI0NTc2MHwwKT4+PjE2
JjI7bz0xNC0oYnxIfHopKyhDPDx6Pj4+MTUpfDA7ST1GPj4+KChvKzd8MCk+Pj4wKSYxfG88PDF9
fXdoaWxlKDApO0c9MTAxNDQrKEk8PDIpfDA7Y1tuKzI4Pj4yXT1JO2NbbisyMD4+Ml09MDtjW24r
MTY+PjJdPTA7bz1jWzI0NjFdfDA7ej0xPDxJO2lmKChvJnp8MCk9PTApe2NbMjQ2MV09b3x6O2Nb
Rz4+Ml09eTtjW24rMjQ+PjJdPUc7Y1tuKzEyPj4yXT1uO2Nbbis4Pj4yXT1uO3JldHVybn1pZigo
SXwwKT09MzEpe0o9MH1lbHNle0o9MjUtKEk+Pj4xKXwwfUk9Rjw8SjtKPWNbRz4+Ml18MDt3aGls
ZSgxKXtpZigoY1tKKzQ+PjJdJi04fDApPT0oRnwwKSl7YnJlYWt9Sz1KKzE2KyhJPj4+MzE8PDIp
fDA7Rz1jW0s+PjJdfDA7aWYoKEd8MCk9PTApe0w9MTI5ODticmVha31lbHNle0k9STw8MTtKPUd9
fWlmKChMfDApPT0xMjk4KXtpZihLPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Y1tLPj4yXT15
O2NbbisyND4+Ml09SjtjW24rMTI+PjJdPW47Y1tuKzg+PjJdPW47cmV0dXJufUs9Sis4fDA7TD1j
W0s+PjJdfDA7ST1jWzI0NjRdfDA7aWYoSj4+PjA8ST4+PjApe2JHKCl9aWYoTD4+PjA8ST4+PjAp
e2JHKCl9Y1tMKzEyPj4yXT15O2NbSz4+Ml09eTtjW24rOD4+Ml09TDtjW24rMTI+PjJdPUo7Y1tu
KzI0Pj4yXT0wO3JldHVybn1mdW5jdGlvbiBrTyhhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTA7Yj0o
YXwwKT09MD8xOmE7d2hpbGUoMSl7ZD1rSihiKXwwO2lmKChkfDApIT0wKXtlPTEzNDI7YnJlYWt9
YT0oST1jWzQwNDhdfDAsY1s0MDQ4XT1JKzAsSSk7aWYoKGF8MCk9PTApe2JyZWFrfWI1W2EmM10o
KX1pZigoZXwwKT09MTM0Mil7cmV0dXJuIGR8MH1kPWJPKDQpfDA7Y1tkPj4yXT0yNDA4O2JsKGR8
MCw4MTYwLDMwKTtyZXR1cm4gMH1mdW5jdGlvbiBrUChhKXthPWF8MDtyZXR1cm4ga08oYSl8MH1m
dW5jdGlvbiBrUShhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24ga1IoYSl7YT1hfDA7cmV0dXJuIDEx
NjB8MH1mdW5jdGlvbiBrUyhhKXthPWF8MDtpZigoYXwwKSE9MCl7a0soYSl9cmV0dXJufWZ1bmN0
aW9uIGtUKGEpe2E9YXwwO2tTKGEpO3JldHVybn1mdW5jdGlvbiBrVShhKXthPWF8MDtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24ga1YoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaT0wLGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAuMCxyPTAscz0wLHQ9MCx1PTAsdj0wLjAsdz0w
LHg9MCx5PTAsej0wLjAsQT0wLjAsQj0wLEM9MCxEPTAsRT0wLjAsRj0wLEc9MCxIPTAsST0wLEo9
MCxLPTAsTD0wLE09MCxOPTAuMCxPPTAsUD0wLFE9MC4wLFI9MC4wLFM9MC4wO2U9Yjt3aGlsZSgx
KXtmPWUrMXwwO2lmKChhUChhW2VdfDApfDApPT0wKXticmVha31lbHNle2U9Zn19c3dpdGNoKGFb
ZV18MCl7Y2FzZSA0Mzp7Zz1mO2k9MDticmVha307Y2FzZSA0NTp7Zz1mO2k9MTticmVha307ZGVm
YXVsdDp7Zz1lO2k9MH19ZT0tMTtmPTA7aj1nO3doaWxlKDEpe2s9YVtqXXwwO2lmKCgoazw8MjQ+
PjI0KS00OHwwKT4+PjA8MTApe2w9ZX1lbHNle2lmKGs8PDI0Pj4yNCE9NDZ8KGV8MCk+LTEpe2Jy
ZWFrfWVsc2V7bD1mfX1lPWw7Zj1mKzF8MDtqPWorMXwwfWw9aisoLWZ8MCl8MDtnPShlfDApPDA7
bT0oKGdeMSk8PDMxPj4zMSkrZnwwO249KG18MCk+MTg7bz0obj8tMTg6LW18MCkrKGc/ZjplKXww
O2U9bj8xODptO2Rve2lmKChlfDApPT0wKXtwPWI7cT0wLjB9ZWxzZXtpZigoZXwwKT45KXttPWw7
bj1lO2Y9MDt3aGlsZSgxKXtnPWFbbV18MDtyPW0rMXwwO2lmKGc8PDI0Pj4yND09NDYpe3M9YVty
XXwwO3Q9bSsyfDB9ZWxzZXtzPWc7dD1yfXU9KGYqMTB8MCktNDgrKHM8PDI0Pj4yNCl8MDtyPW4t
MXwwO2lmKChyfDApPjkpe209dDtuPXI7Zj11fWVsc2V7YnJlYWt9fXY9Kyh1fDApKjEuMGU5O3c9
OTt4PXQ7eT0xMzcwfWVsc2V7aWYoKGV8MCk+MCl7dj0wLjA7dz1lO3g9bDt5PTEzNzB9ZWxzZXt6
PTAuMDtBPTAuMH19aWYoKHl8MCk9PTEzNzApe2Y9eDtuPXc7bT0wO3doaWxlKDEpe3I9YVtmXXww
O2c9ZisxfDA7aWYocjw8MjQ+PjI0PT00Nil7Qj1hW2ddfDA7Qz1mKzJ8MH1lbHNle0I9cjtDPWd9
RD0obSoxMHwwKS00OCsoQjw8MjQ+PjI0KXwwO2c9bi0xfDA7aWYoKGd8MCk+MCl7Zj1DO249Zztt
PUR9ZWxzZXticmVha319ej0rKER8MCk7QT12fUU9QSt6O0wxODE2OmRve3N3aXRjaChrPDwyND4+
MjQpe2Nhc2UgNjk6Y2FzZSAxMDE6e209aisxfDA7c3dpdGNoKGFbbV18MCl7Y2FzZSA0NTp7Rj1q
KzJ8MDtHPTE7YnJlYWt9O2Nhc2UgNDM6e0Y9aisyfDA7Rz0wO2JyZWFrfTtkZWZhdWx0OntGPW07
Rz0wfX1tPWFbRl18MDtpZigoKG08PDI0Pj4yNCktNDh8MCk+Pj4wPDEwKXtIPUY7ST0wO0o9bX1l
bHNle0s9MDtMPUY7TT1HO2JyZWFrIEwxODE2fXdoaWxlKDEpe209KEkqMTB8MCktNDgrKEo8PDI0
Pj4yNCl8MDtuPUgrMXwwO2Y9YVtuXXwwO2lmKCgoZjw8MjQ+PjI0KS00OHwwKT4+PjA8MTApe0g9
bjtJPW07Sj1mfWVsc2V7Sz1tO0w9bjtNPUc7YnJlYWt9fWJyZWFrfTtkZWZhdWx0OntLPTA7TD1q
O009MH19fXdoaWxlKDApO249bysoKE18MCk9PTA/SzotS3wwKXwwO209KG58MCk8MD8tbnwwOm47
aWYoKG18MCk+NTExKXtjWyhidygpfDApPj4yXT0zNDtOPTEuMDtPPTg7UD01MTE7eT0xMzg3fWVs
c2V7aWYoKG18MCk9PTApe1E9MS4wfWVsc2V7Tj0xLjA7Tz04O1A9bTt5PTEzODd9fWlmKCh5fDAp
PT0xMzg3KXt3aGlsZSgxKXt5PTA7aWYoKFAmMXwwKT09MCl7Uj1OfWVsc2V7Uj1OKitoW08+PjNd
fW09UD4+MTtpZigobXwwKT09MCl7UT1SO2JyZWFrfWVsc2V7Tj1SO089Tys4fDA7UD1tO3k9MTM4
N319fWlmKChufDApPi0xKXtwPUw7cT1FKlE7YnJlYWt9ZWxzZXtwPUw7cT1FL1E7YnJlYWt9fX13
aGlsZSgwKTtpZigoZHwwKSE9MCl7Y1tkPj4yXT1wfWlmKChpfDApPT0wKXtTPXE7cmV0dXJuK1N9
Uz0tMC4wLXE7cmV0dXJuK1N9ZnVuY3Rpb24ga1coYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO3Jl
dHVybisoK2tWKGEsYikpfWZ1bmN0aW9uIGtYKCl7dmFyIGE9MDthPWJPKDQpfDA7Y1thPj4yXT0y
NDA4O2JsKGF8MCw4MTYwLDMwKX1mdW5jdGlvbiBrWShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
dmFyIGY9MDtmPWJ8MDtpZigoYiYzKT09KGQmMykpe3doaWxlKGImMyl7aWYoKGV8MCk9PTApcmV0
dXJuIGZ8MDthW2JdPWFbZF18MDtiPWIrMXwwO2Q9ZCsxfDA7ZT1lLTF8MH13aGlsZSgoZXwwKT49
NCl7Y1tiPj4yXT1jW2Q+PjJdO2I9Yis0fDA7ZD1kKzR8MDtlPWUtNHwwfX13aGlsZSgoZXwwKT4w
KXthW2JdPWFbZF18MDtiPWIrMXwwO2Q9ZCsxfDA7ZT1lLTF8MH1yZXR1cm4gZnwwfWZ1bmN0aW9u
IGtaKGIpe2I9YnwwO3ZhciBjPTA7Yz1hW24rKGI+Pj4yNCl8MF18MDtpZigoY3wwKTw4KXJldHVy
biBjfDA7Yz1hW24rKGI+PjE2JjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjKzh8MDtjPWFb
bisoYj4+OCYyNTUpfDBdfDA7aWYoKGN8MCk8OClyZXR1cm4gYysxNnwwO3JldHVybihhW24rKGIm
MjU1KXwwXXwwKSsyNHwwfWZ1bmN0aW9uIGtfKGIsYyxkKXtiPWJ8MDtjPWN8MDtkPWR8MDtpZigo
Y3wwKTwoYnwwKSYoYnwwKTwoYytkfDApKXtjPWMrZHwwO2I9YitkfDA7d2hpbGUoKGR8MCk+MCl7
Yj1iLTF8MDtjPWMtMXwwO2Q9ZC0xfDA7YVtiXT1hW2NdfDB9fWVsc2V7a1koYixjLGQpfDB9fWZ1
bmN0aW9uIGskKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7Zj1iK2V8
MDtpZigoZXwwKT49MjApe2Q9ZCYyNTU7ZT1iJjM7Zz1kfGQ8PDh8ZDw8MTZ8ZDw8MjQ7aD1mJn4z
O2lmKGUpe2U9Yis0LWV8MDt3aGlsZSgoYnwwKTwoZXwwKSl7YVtiXT1kO2I9YisxfDB9fXdoaWxl
KChifDApPChofDApKXtjW2I+PjJdPWc7Yj1iKzR8MH19d2hpbGUoKGJ8MCk8KGZ8MCkpe2FbYl09
ZDtiPWIrMXwwfX1mdW5jdGlvbiBrMChiKXtiPWJ8MDt2YXIgYz0wO2M9Yjt3aGlsZShhW2NdfDAp
e2M9YysxfDB9cmV0dXJuIGMtYnwwfWZ1bmN0aW9uIGsxKGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9
Y3wwO2Q9ZHwwO3ZhciBlPTA7ZT1hK2M+Pj4wO3JldHVybihLPWIrZCsoZT4+PjA8YT4+PjB8MCk+
Pj4wLGV8MCl8MH1mdW5jdGlvbiBrMihhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDt2
YXIgZT0wO2U9Yi1kPj4+MDtlPWItZC0oYz4+PjA+YT4+PjB8MCk+Pj4wO3JldHVybihLPWUsYS1j
Pj4+MHwwKXwwfWZ1bmN0aW9uIGszKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDtpZigoY3wwKTwz
Mil7Sz1iPDxjfChhJigxPDxjKS0xPDwzMi1jKT4+PjMyLWM7cmV0dXJuIGE8PGN9Sz1hPDxjLTMy
O3JldHVybiAwfWZ1bmN0aW9uIGs0KGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDtpZigoY3wwKTwz
Mil7Sz1iPj4+YztyZXR1cm4gYT4+PmN8KGImKDE8PGMpLTEpPDwzMi1jfUs9MDtyZXR1cm4gYj4+
PmMtMzJ8MH1mdW5jdGlvbiBrNShhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7aWYoKGN8MCk8MzIp
e0s9Yj4+YztyZXR1cm4gYT4+PmN8KGImKDE8PGMpLTEpPDwzMi1jfUs9KGJ8MCk8MD8tMTowO3Jl
dHVybiBiPj5jLTMyfDB9ZnVuY3Rpb24gazYoYil7Yj1ifDA7dmFyIGM9MDtjPWFbbSsoYiYyNTUp
fDBdfDA7aWYoKGN8MCk8OClyZXR1cm4gY3wwO2M9YVttKyhiPj44JjI1NSl8MF18MDtpZigoY3ww
KTw4KXJldHVybiBjKzh8MDtjPWFbbSsoYj4+MTYmMjU1KXwwXXwwO2lmKChjfDApPDgpcmV0dXJu
IGMrMTZ8MDtyZXR1cm4oYVttKyhiPj4+MjQpfDBdfDApKzI0fDB9ZnVuY3Rpb24gazcoYSxiKXth
PWF8MDtiPWJ8MDt2YXIgYz0wLGQ9MCxlPTAsZj0wO2M9YSY2NTUzNTtkPWImNjU1MzU7ZT1hZyhk
LGMpfDA7Zj1hPj4+MTY7YT0oZT4+PjE2KSsoYWcoZCxmKXwwKXwwO2Q9Yj4+PjE2O2I9YWcoZCxj
KXwwO3JldHVybihLPShhPj4+MTYpKyhhZyhkLGYpfDApKygoKGEmNjU1MzUpK2J8MCk+Pj4xNil8
MCxhK2I8PDE2fGUmNjU1MzV8MCl8MH1mdW5jdGlvbiBrOChhLGIsYyxkKXthPWF8MDtiPWJ8MDtj
PWN8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MDtlPWI+PjMxfCgoYnwwKTwwPy0xOjAp
PDwxO2Y9KChifDApPDA/LTE6MCk+PjMxfCgoYnwwKTwwPy0xOjApPDwxO2c9ZD4+MzF8KChkfDAp
PDA/LTE6MCk8PDE7aD0oKGR8MCk8MD8tMTowKT4+MzF8KChkfDApPDA/LTE6MCk8PDE7aT1rMihl
XmEsZl5iLGUsZil8MDtiPUs7YT1nXmU7ZT1oXmY7Zj1rMigobGQoaSxiLGsyKGdeYyxoXmQsZyxo
KXwwLEssMCl8MCleYSxLXmUsYSxlKXwwO3JldHVybihLPUssZil8MH1mdW5jdGlvbiBrOShhLGIs
ZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAs
bT0wO2Y9aTtpPWkrOHwwO2c9ZnwwO2g9Yj4+MzF8KChifDApPDA/LTE6MCk8PDE7aj0oKGJ8MCk8
MD8tMTowKT4+MzF8KChifDApPDA/LTE6MCk8PDE7az1lPj4zMXwoKGV8MCk8MD8tMTowKTw8MTts
PSgoZXwwKTwwPy0xOjApPj4zMXwoKGV8MCk8MD8tMTowKTw8MTttPWsyKGheYSxqXmIsaCxqKXww
O2I9SzthPWsyKGteZCxsXmUsayxsKXwwO2xkKG0sYixhLEssZyl8MDthPWsyKGNbZz4+Ml1eaCxj
W2crND4+Ml1eaixoLGopfDA7aj1LO2k9ZjtyZXR1cm4oSz1qLGEpfDB9ZnVuY3Rpb24gbGEoYSxi
LGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7dmFyIGU9MCxmPTA7ZT1hO2E9YztjPWs3KGUs
YSl8MDtmPUs7cmV0dXJuKEs9KGFnKGIsYSl8MCkrKGFnKGQsZSl8MCkrZnxmJjAsY3wwfDApfDB9
ZnVuY3Rpb24gbGIoYSxiLGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7dmFyIGU9MDtlPWxk
KGEsYixjLGQsMCl8MDtyZXR1cm4oSz1LLGUpfDB9ZnVuY3Rpb24gbGMoYSxiLGQsZSl7YT1hfDA7
Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTA7Zj1pO2k9aSs4fDA7Zz1mfDA7bGQoYSxiLGQs
ZSxnKXwwO2k9ZjtyZXR1cm4oSz1jW2crND4+Ml18MCxjW2c+PjJdfDApfDB9ZnVuY3Rpb24gbGQo
YSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAs
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsTD0wLE09
MDtnPWE7aD1iO2k9aDtqPWQ7az1lO2w9aztpZigoaXwwKT09MCl7bT0oZnwwKSE9MDtpZigobHww
KT09MCl7aWYobSl7Y1tmPj4yXT0oZz4+PjApJShqPj4+MCk7Y1tmKzQ+PjJdPTB9bj0wO289KGc+
Pj4wKS8oaj4+PjApPj4+MDtyZXR1cm4oSz1uLG8pfDB9ZWxzZXtpZighbSl7bj0wO289MDtyZXR1
cm4oSz1uLG8pfDB9Y1tmPj4yXT1hfDA7Y1tmKzQ+PjJdPWImMDtuPTA7bz0wO3JldHVybihLPW4s
byl8MH19bT0obHwwKT09MDtkb3tpZigoanwwKT09MCl7aWYobSl7aWYoKGZ8MCkhPTApe2NbZj4+
Ml09KGk+Pj4wKSUoaj4+PjApO2NbZis0Pj4yXT0wfW49MDtvPShpPj4+MCkvKGo+Pj4wKT4+PjA7
cmV0dXJuKEs9bixvKXwwfWlmKChnfDApPT0wKXtpZigoZnwwKSE9MCl7Y1tmPj4yXT0wO2NbZis0
Pj4yXT0oaT4+PjApJShsPj4+MCl9bj0wO289KGk+Pj4wKS8obD4+PjApPj4+MDtyZXR1cm4oSz1u
LG8pfDB9cD1sLTF8MDtpZigocCZsfDApPT0wKXtpZigoZnwwKSE9MCl7Y1tmPj4yXT1hfDA7Y1tm
KzQ+PjJdPXAmaXxiJjB9bj0wO289aT4+PigoazYobHwwKXwwKT4+PjApO3JldHVybihLPW4sbyl8
MH1wPShrWihsfDApfDApLShrWihpfDApfDApfDA7aWYocD4+PjA8PTMwKXtxPXArMXwwO3I9MzEt
cHwwO3M9cTt0PWk8PHJ8Zz4+PihxPj4+MCk7dT1pPj4+KHE+Pj4wKTt2PTA7dz1nPDxyO2JyZWFr
fWlmKChmfDApPT0wKXtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1jW2Y+PjJdPWF8MDtjW2YrND4+
Ml09aHxiJjA7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9ZWxzZXtpZighbSl7cj0oa1oobHwwKXww
KS0oa1ooaXwwKXwwKXwwO2lmKHI+Pj4wPD0zMSl7cT1yKzF8MDtwPTMxLXJ8MDt4PXItMzE+PjMx
O3M9cTt0PWc+Pj4ocT4+PjApJnh8aTw8cDt1PWk+Pj4ocT4+PjApJng7dj0wO3c9Zzw8cDticmVh
a31pZigoZnwwKT09MCl7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9Y1tmPj4yXT1hfDA7Y1tmKzQ+
PjJdPWh8YiYwO249MDtvPTA7cmV0dXJuKEs9bixvKXwwfXA9ai0xfDA7aWYoKHAmanwwKSE9MCl7
eD0oa1ooanwwKXwwKSszMy0oa1ooaXwwKXwwKXwwO3E9NjQteHwwO3I9MzIteHwwO3k9cj4+MzE7
ej14LTMyfDA7QT16Pj4zMTtzPXg7dD1yLTE+PjMxJmk+Pj4oej4+PjApfChpPDxyfGc+Pj4oeD4+
PjApKSZBO3U9QSZpPj4+KHg+Pj4wKTt2PWc8PHEmeTt3PShpPDxxfGc+Pj4oej4+PjApKSZ5fGc8
PHImeC0zMz4+MzE7YnJlYWt9aWYoKGZ8MCkhPTApe2NbZj4+Ml09cCZnO2NbZis0Pj4yXT0wfWlm
KChqfDApPT0xKXtuPWh8YiYwO289YXwwfDA7cmV0dXJuKEs9bixvKXwwfWVsc2V7cD1rNihqfDAp
fDA7bj1pPj4+KHA+Pj4wKXwwO289aTw8MzItcHxnPj4+KHA+Pj4wKXwwO3JldHVybihLPW4sbyl8
MH19fXdoaWxlKDApO2lmKChzfDApPT0wKXtCPXc7Qz12O0Q9dTtFPXQ7Rj0wO0c9MH1lbHNle2c9
ZHwwfDA7ZD1rfGUmMDtlPWsxKGcsZCwtMSwtMSl8MDtrPUs7aT13O3c9djt2PXU7dT10O3Q9cztz
PTA7d2hpbGUoMSl7SD13Pj4+MzF8aTw8MTtJPXN8dzw8MTtqPXU8PDF8aT4+PjMxfDA7YT11Pj4+
MzF8djw8MXwwO2syKGUsayxqLGEpfDA7Yj1LO2g9Yj4+MzF8KChifDApPDA/LTE6MCk8PDE7Sj1o
JjE7TD1rMihqLGEsaCZnLCgoKGJ8MCk8MD8tMTowKT4+MzF8KChifDApPDA/LTE6MCk8PDEpJmQp
fDA7TT1LO2I9dC0xfDA7aWYoKGJ8MCk9PTApe2JyZWFrfWVsc2V7aT1IO3c9STt2PU07dT1MO3Q9
YjtzPUp9fUI9SDtDPUk7RD1NO0U9TDtGPTA7Rz1KfUo9QztDPTA7aWYoKGZ8MCkhPTApe2NbZj4+
Ml09RTtjW2YrND4+Ml09RH1uPShKfDApPj4+MzF8KEJ8Qyk8PDF8KEM8PDF8Sj4+PjMxKSYwfEY7
bz0oSjw8MXwwPj4+MzEpJi0yfEc7cmV0dXJuKEs9bixvKXwwfWZ1bmN0aW9uIGxlKCl7YlAoKX1m
dW5jdGlvbiBsZihhLGIsYyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7YldbYSY3XShifDAsY3wwLGR8MCxlfDAsZnwwKX1mdW5jdGlvbiBsZyhhLGIsYyxkLGUsZixn
LGgpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2JYW2Em
MTI3XShifDAsY3wwLGR8MCxlfDAsZnwwLGd8MCxofDApfWZ1bmN0aW9uIGxoKGEsYil7YT1hfDA7
Yj1ifDA7YllbYSY1MTFdKGJ8MCl9ZnVuY3Rpb24gbGkoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3ww
O2JaW2EmMTI3XShifDAsY3wwKX1mdW5jdGlvbiBsaihhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7
cmV0dXJuIGJfW2EmMzFdKGJ8MCxjfDApfDB9ZnVuY3Rpb24gbGsoYSxiLGMsZCxlLGYpe2E9YXww
O2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3JldHVybiBiJFthJjMxXShifDAsY3wwLGR8
MCxlfDAsZnwwKXwwfWZ1bmN0aW9uIGxsKGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJuIGIwW2EmMTI3
XShifDApfDB9ZnVuY3Rpb24gbG0oYSxiLGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7cmV0
dXJuIGIxW2EmNjNdKGJ8MCxjfDAsZHwwKXwwfWZ1bmN0aW9uIGxuKGEsYixjLGQsZSxmLGcpe2E9
YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9K2c7YjJbYSYxNV0oYnwwLGN8MCxk
fDAsZXwwLGZ8MCwrZyl9ZnVuY3Rpb24gbG8oYSxiLGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1k
fDA7YjNbYSY3XShifDAsY3wwLGR8MCl9ZnVuY3Rpb24gbHAoYSxiLGMsZCxlLGYsZyxoLGkpe2E9
YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2I0W2Em
MTVdKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8MCxpfDApfWZ1bmN0aW9uIGxxKGEpe2E9YXww
O2I1W2EmM10oKX1mdW5jdGlvbiBscihhLGIsYyxkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7Yz1j
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7cmV0dXJuIGI2W2EmMzFdKGJ8
MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8MCxpfDApfDB9ZnVuY3Rpb24gbHMoYSxiLGMsZCxlLGYs
ZyxoLGksail7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aT1pfDA7aj1qfDA7YjdbYSY3XShifDAsY3wwLGR8MCxlfDAsZnwwLGd8MCxofDAsaXwwLGp8MCl9
ZnVuY3Rpb24gbHQoYSxiLGMsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPStoO2I4W2EmN10oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsK2gpfWZ1
bmN0aW9uIGx1KGEsYixjLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2I5W2EmMzFdKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwKX1mdW5jdGlvbiBsdihh
LGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO3JldHVybiBjYVthJjE1XShi
fDAsY3wwLGR8MCxlfDApfDB9ZnVuY3Rpb24gbHcoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8
MDtkPWR8MDtlPWV8MDtjYlthJjE1XShifDAsY3wwLGR8MCxlfDApfWZ1bmN0aW9uIGx4KGEsYixj
LGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7YWgoMCl9ZnVuY3Rpb24gbHkoYSxi
LGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7YWgo
MSl9ZnVuY3Rpb24gbHooYSl7YT1hfDA7YWgoMil9ZnVuY3Rpb24gbEEoYSxiKXthPWF8MDtiPWJ8
MDthaCgzKX1mdW5jdGlvbiBsQihhLGIpe2E9YXwwO2I9YnwwO2FoKDQpO3JldHVybiAwfWZ1bmN0
aW9uIGxDKGEsYixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7YWgoNSk7cmV0
dXJuIDB9ZnVuY3Rpb24gbEQoYSl7YT1hfDA7YWgoNik7cmV0dXJuIDB9ZnVuY3Rpb24gbEUoYSxi
LGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2FoKDcpO3JldHVybiAwfWZ1bmN0aW9uIGxGKGEsYixjLGQs
ZSxmKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPStmO2FoKDgpfWZ1bmN0aW9uIGxH
KGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDthaCg5KX1mdW5jdGlvbiBsSChhLGIsYyxkLGUsZixn
LGgpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2FoKDEw
KX1mdW5jdGlvbiBsSSgpe2FoKDExKX1mdW5jdGlvbiBsSihhLGIsYyxkLGUsZixnLGgpe2E9YXww
O2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2FoKDEyKTtyZXR1cm4g
MH1mdW5jdGlvbiBsSyhhLGIsYyxkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7YWgoMTMpfWZ1bmN0aW9uIGxMKGEsYixjLGQs
ZSxmLGcpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9K2c7YWgoMTQpfWZ1
bmN0aW9uIGxNKGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8
MDthaCgxNSl9ZnVuY3Rpb24gbE4oYSxiLGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7YWgo
MTYpO3JldHVybiAwfWZ1bmN0aW9uIGxPKGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHww
O2FoKDE3KX0KLS8vIEVNU0NSSVBURU5fRU5EX0ZVTkNTCi12YXIgYlc9W2x4LGx4LGtHLGx4LGtE
LGx4LGtGLGx4XTt2YXIgYlg9W2x5LGx5LGdHLGx5LGdQLGx5LGdTLGx5LGloLGx5LGd0LGx5LGdy
LGx5LGg5LGx5LGdCLGx5LGdGLGx5LGdULGx5LGdmLGx5LGY3LGx5LGdFLGx5LGZILGx5LGZaLGx5
LGdRLGx5LGdkLGx5LGYkLGx5LGZYLGx5LGZZLGx5LGZRLGx5LGZfLGx5LGZWLGx5LGZULGx5LGY0
LGx5LGYzLGx5LGYwLGx5LGdVLGx5LGZBLGx5LGdDLGx5LGZFLGx5LGZ2LGx5LGZ5LGx5LGZDLGx5
LGZyLGx5LGZNLGx5LGZLLGx5LGZwLGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5
LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5
LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5
LGx5XTt2YXIgYlk9W2x6LGx6LGlrLGx6LGZuLGx6LGdsLGx6LGRILGx6LGVuLGx6LGlFLGx6LGRy
LGx6LGhBLGx6LGY1LGx6LGRCLGx6LGRHLGx6LGZPLGx6LGZiLGx6LGU3LGx6LGtRLGx6LGRDLGx6
LGlQLGx6LGlTLGx6LGdPLGx6LGZQLGx6LGtxLGx6LGUxLGx6LGllLGx6LGlRLGx6LGVTLGx6LGZv
LGx6LGhyLGx6LGlMLGx6LGpJLGx6LGlVLGx6LGtrLGx6LGpILGx6LGU1LGx6LGM1LGx6LGRHLGx6
LGN0LGx6LGZmLGx6LGhnLGx6LGpLLGx6LGlSLGx6LGtLLGx6LGg3LGx6LGpHLGx6LGVWLGx6LGM0
LGx6LGZlLGx6LGRDLGx6LGozLGx6LGY2LGx6LGRmLGx6LGhzLGx6LGVSLGx6LGUkLGx6LGh5LGx6
LGdOLGx6LGU4LGx6LGhsLGx6LGtVLGx6LGVtLGx6LGo2LGx6LGo3LGx6LGUyLGx6LGV1LGx6LGt4
LGx6LGlWLGx6LGk5LGx6LGtpLGx6LGVULGx6LGU2LGx6LGhPLGx6LGRkLGx6LGh4LGx6LGUzLGx6
LGo5LGx6LGtsLGx6LGpxLGx6LGRiLGx6LGlLLGx6LGlPLGx6LGh6LGx6LGhVLGx6LGt1LGx6LGhH
LGx6LGg4LGx6LGo4LGx6LGhmLGx6LGdrLGx6LGZhLGx6LGRjLGx6LGZjLGx6LGVYLGx6LGROLGx6
LGgkLGx6LGhULGx6LGpKLGx6LGVlLGx6LGRJLGx6LGtpLGx6LGt5LGx6LGVfLGx6LGRPLGx6LGVR
LGx6LGUwLGx6LGlkLGx6LGVELGx6LGVaLGx6LGRzLGx6LGlXLGx6LGU5LGx6LGhKLGx6LGd6LGx6
LGhtLGx6LGMkLGx6LGlxLGx6LGgwLGx6LGVXLGx6LGV0LGx6LGVZLGx6LGpGLGx6LGo0LGx6LGdB
LGx6LGt3LGx6LGlsLGx6LGNfLGx6LGt2LGx6LGhCLGx6LGhQLGx6LGNXLGx6LGRQLGx6LGlULGx6
LGRGLGx6LGVVLGx6LGthLGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6XTt2YXIgYlo9W2xBLGxBLGpQLGxBLGMwLGxBLGhNLGxBLGpNLGxBLGhiLGxBLGpM
LGxBLGlqLGxBLGQ5LGxBLGhrLGxBLGhILGxBLGh3LGxBLGhqLGxBLGhoLGxBLGhOLGxBLGlOLGxB
LGc5LGxBLGRtLGxBLGhJLGxBLGpPLGxBLGhLLGxBLGhvLGxBLGRFLGxBLGhuLGxBLGpRLGxBLGhh
LGxBLGhxLGxBLGpOLGxBLGc4LGxBLGQyLGxBLGR0LGxBLGM2LGxBLGlvLGxBLGh0LGxBLGc3LGxB
LGc2LGxBLGhpLGxBLGh1LGxBLGh2LGxBLGhwLGxBLGhMLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxB
LGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxB
LGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxB
LGxBXTt2YXIgYl89W2xCLGxCLGk0LGxCLGR3LGxCLGlBLGxCLGl0LGxCLGQ4LGxCLGM5LGxCLGRw
LGxCLGkwLGxCLGk2LGxCLGVJLGxCLGkyLGxCLGQ3LGxCLGMyLGxCLGVILGxCLGxCLGxCXTt2YXIg
YiQ9W2xDLGxDLGpoLGxDLGpmLGxDLGpFLGxDLGl3LGxDLGlHLGxDLGpwLGxDLGlJLGxDLGZrLGxD
LGlELGxDLGpkLGxDLGVMLGxDLGpzLGxDLGxDLGxDLGxDLGxDLGxDLGxDXTt2YXIgYjA9W2xELGxE
LGoyLGxELGc0LGxELGQ2LGxELGpVLGxELGVyLGxELGowLGxELGcwLGxELGplLGxELGprLGxELGd5
LGxELGpTLGxELGR2LGxELGVPLGxELGVHLGxELGpZLGxELGpXLGxELGp0LGxELGtqLGxELGRpLGxE
LGpDLGxELGp6LGxELGpYLGxELGpqLGxELGpBLGxELGQ0LGxELGhGLGxELGpaLGxELGR1LGxELGMx
LGxELGcxLGxELGk4LGxELGoxLGxELGp2LGxELGhELGxELGpSLGxELGM3LGxELGp1LGxELGpnLGxE
LGVKLGxELGckLGxELGM4LGxELGpCLGxELGQ1LGxELGVFLGxELGRuLGxELGcyLGxELGl6LGxELGl5
LGxELGtSLGxELGVGLGxELGdaLGxELGpULGxELGl4LGxELGdfLGxELGRoLGxELGczLGxELGc1LGxE
LGpWLGxELGhFLGxELGdNLGxELGokLGxELGpfLGxELGppLGxEXTt2YXIgYjE9W2xFLGxFLGVNLGxF
LGk1LGxFLGkzLGxFLGt6LGxFLGlCLGxFLGZsLGxFLGRKLGxFLGVzLGxFLGVxLGxFLGlZLGxFLGVh
LGxFLGltLGxFLGlDLGxFLGkxLGxFLGVOLGxFLGRsLGxFLGk3LGxFLGlnLGxFLGQzLGxFLGVQLGxF
LGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxF
LGxFLGxFLGxFXTt2YXIgYjI9W2xGLGxGLGd3LGxGLGd1LGxGLGdpLGxGLGdnLGxGLGxGLGxGLGxG
LGxGLGxGLGxGXTt2YXIgYjM9W2xHLGxHLGRrLGxHLGU0LGxHLGxHLGxHXTt2YXIgYjQ9W2xILGxI
LGhlLGxILGhkLGxILGhRLGxILGhZLGxILGhXLGxILGgxLGxILGxILGxIXTt2YXIgYjU9W2xJLGxJ
LGxlLGxJXTt2YXIgYjY9W2xKLGxKLGl1LGxKLGpjLGxKLGpvLGxKLGl2LGxKLGpyLGxKLGpELGxK
LGpiLGxKLGphLGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxKXTt2
YXIgYjc9W2xLLGxLLGdXLGxLLGdJLGxLLGxLLGxLXTt2YXIgYjg9W2xMLGxMLGlhLGxMLGg0LGxM
LGxMLGxMXTt2YXIgYjk9W2xNLGxNLGtILGxNLGdzLGxNLGdtLGxNLGdvLGxNLGtJLGxNLGd4LGxN
LGlpLGxNLGVkLGxNLGduLGxNLGdhLGxNLGdlLGxNLGY4LGxNLGtFLGxNLGViLGxNLGlwLGxNXTt2
YXIgY2E9W2xOLGxOLGlaLGxOLGlfLGxOLGlILGxOLGlGLGxOLGkkLGxOLGxOLGxOLGxOLGxOXTt2
YXIgY2I9W2xPLGxPLGtBLGxPLGtCLGxPLGVjLGxPLGtyLGxPLGVLLGxPLGZtLGxPLGZkLGxPXTty
ZXR1cm57X3N0cmxlbjprMCxfZnJlZTprSyxfbWFpbjpjRCxfcmVhbGxvYzprTCxfbWVtbW92ZTpr
XyxfX0dMT0JBTF9fSV9hOmNULF9tZW1zZXQ6ayQsX21hbGxvYzprSixfbWVtY3B5OmtZLF9sbHZt
X2N0bHpfaTMyOmtaLF9fR0xPQkFMX19JX2E4OmR5LHJ1blBvc3RTZXRzOmNzLHN0YWNrQWxsb2M6
Y2Msc3RhY2tTYXZlOmNkLHN0YWNrUmVzdG9yZTpjZSxzZXRUaHJldzpjZixzZXRUZW1wUmV0MDpj
aSxzZXRUZW1wUmV0MTpjaixzZXRUZW1wUmV0MjpjayxzZXRUZW1wUmV0MzpjbCxzZXRUZW1wUmV0
NDpjbSxzZXRUZW1wUmV0NTpjbixzZXRUZW1wUmV0NjpjbyxzZXRUZW1wUmV0NzpjcCxzZXRUZW1w
UmV0ODpjcSxzZXRUZW1wUmV0OTpjcixkeW5DYWxsX3ZpaWlpaTpsZixkeW5DYWxsX3ZpaWlpaWlp
OmxnLGR5bkNhbGxfdmk6bGgsZHluQ2FsbF92aWk6bGksZHluQ2FsbF9paWk6bGosZHluQ2FsbF9p
aWlpaWk6bGssZHluQ2FsbF9paTpsbCxkeW5DYWxsX2lpaWk6bG0sZHluQ2FsbF92aWlpaWlmOmxu
LGR5bkNhbGxfdmlpaTpsbyxkeW5DYWxsX3ZpaWlpaWlpaTpscCxkeW5DYWxsX3Y6bHEsZHluQ2Fs
bF9paWlpaWlpaWk6bHIsZHluQ2FsbF92aWlpaWlpaWlpOmxzLGR5bkNhbGxfdmlpaWlpaWY6bHQs
ZHluQ2FsbF92aWlpaWlpOmx1LGR5bkNhbGxfaWlpaWk6bHYsZHluQ2FsbF92aWlpaTpsd319KQot
Ly8gRU1TQ1JJUFRFTl9FTkRfQVNNCi0oeyAiTWF0aCI6IE1hdGgsICJJbnQ4QXJyYXkiOiBJbnQ4
QXJyYXksICJJbnQxNkFycmF5IjogSW50MTZBcnJheSwgIkludDMyQXJyYXkiOiBJbnQzMkFycmF5
LCAiVWludDhBcnJheSI6IFVpbnQ4QXJyYXksICJVaW50MTZBcnJheSI6IFVpbnQxNkFycmF5LCAi
VWludDMyQXJyYXkiOiBVaW50MzJBcnJheSwgIkZsb2F0MzJBcnJheSI6IEZsb2F0MzJBcnJheSwg
IkZsb2F0NjRBcnJheSI6IEZsb2F0NjRBcnJheSB9LCB7ICJhYm9ydCI6IGFib3J0LCAiYXNzZXJ0
IjogYXNzZXJ0LCAiYXNtUHJpbnRJbnQiOiBhc21QcmludEludCwgImFzbVByaW50RmxvYXQiOiBh
c21QcmludEZsb2F0LCAibWluIjogTWF0aF9taW4sICJpbnZva2VfdmlpaWlpIjogaW52b2tlX3Zp
aWlpaSwgImludm9rZV92aWlpaWlpaSI6IGludm9rZV92aWlpaWlpaSwgImludm9rZV92aSI6IGlu
dm9rZV92aSwgImludm9rZV92aWkiOiBpbnZva2VfdmlpLCAiaW52b2tlX2lpaSI6IGludm9rZV9p
aWksICJpbnZva2VfaWlpaWlpIjogaW52b2tlX2lpaWlpaSwgImludm9rZV9paSI6IGludm9rZV9p
aSwgImludm9rZV9paWlpIjogaW52b2tlX2lpaWksICJpbnZva2VfdmlpaWlpZiI6IGludm9rZV92
aWlpaWlmLCAiaW52b2tlX3ZpaWkiOiBpbnZva2VfdmlpaSwgImludm9rZV92aWlpaWlpaWkiOiBp
bnZva2VfdmlpaWlpaWlpLCAiaW52b2tlX3YiOiBpbnZva2VfdiwgImludm9rZV9paWlpaWlpaWki
OiBpbnZva2VfaWlpaWlpaWlpLCAiaW52b2tlX3ZpaWlpaWlpaWkiOiBpbnZva2VfdmlpaWlpaWlp
aSwgImludm9rZV92aWlpaWlpZiI6IGludm9rZV92aWlpaWlpZiwgImludm9rZV92aWlpaWlpIjog
aW52b2tlX3ZpaWlpaWksICJpbnZva2VfaWlpaWkiOiBpbnZva2VfaWlpaWksICJpbnZva2Vfdmlp
aWkiOiBpbnZva2VfdmlpaWksICJfbGx2bV9saWZldGltZV9lbmQiOiBfbGx2bV9saWZldGltZV9l
bmQsICJfX3NjYW5TdHJpbmciOiBfX3NjYW5TdHJpbmcsICJfcHRocmVhZF9tdXRleF9sb2NrIjog
X3B0aHJlYWRfbXV0ZXhfbG9jaywgIl9fX2N4YV9lbmRfY2F0Y2giOiBfX19jeGFfZW5kX2NhdGNo
LCAiX3N0cnRvdWxsIjogX3N0cnRvdWxsLCAiX19pc0Zsb2F0IjogX19pc0Zsb2F0LCAiX2ZmbHVz
aCI6IF9mZmx1c2gsICJfX2lzTGVhcFllYXIiOiBfX2lzTGVhcFllYXIsICJfZndyaXRlIjogX2Z3
cml0ZSwgIl9zZW5kIjogX3NlbmQsICJfbGx2bV91bXVsX3dpdGhfb3ZlcmZsb3dfaTMyIjogX2xs
dm1fdW11bF93aXRoX292ZXJmbG93X2kzMiwgIl9pc3NwYWNlIjogX2lzc3BhY2UsICJfcmVhZCI6
IF9yZWFkLCAiX19fY3hhX2d1YXJkX2Fib3J0IjogX19fY3hhX2d1YXJkX2Fib3J0LCAiX25ld2xv
Y2FsZSI6IF9uZXdsb2NhbGUsICJfX19neHhfcGVyc29uYWxpdHlfdjAiOiBfX19neHhfcGVyc29u
YWxpdHlfdjAsICJfcHRocmVhZF9jb25kX3dhaXQiOiBfcHRocmVhZF9jb25kX3dhaXQsICJfX19j
eGFfcmV0aHJvdyI6IF9fX2N4YV9yZXRocm93LCAiX19fcmVzdW1lRXhjZXB0aW9uIjogX19fcmVz
dW1lRXhjZXB0aW9uLCAiX2xsdm1fdmFfZW5kIjogX2xsdm1fdmFfZW5kLCAiX3Zzc2NhbmYiOiBf
dnNzY2FuZiwgIl9zbnByaW50ZiI6IF9zbnByaW50ZiwgIl9mZ2V0YyI6IF9mZ2V0YywgIl9hdGV4
aXQiOiBfYXRleGl0LCAiX19fY3hhX2ZyZWVfZXhjZXB0aW9uIjogX19fY3hhX2ZyZWVfZXhjZXB0
aW9uLCAiX19aOGNhdGNsb3NlUDhfbmxfY2F0ZCI6IF9fWjhjYXRjbG9zZVA4X25sX2NhdGQsICJf
X19zZXRFcnJObyI6IF9fX3NldEVyck5vLCAiX2lzeGRpZ2l0IjogX2lzeGRpZ2l0LCAiX2V4aXQi
OiBfZXhpdCwgIl9zcHJpbnRmIjogX3NwcmludGYsICJfX19jdHlwZV9iX2xvYyI6IF9fX2N0eXBl
X2JfbG9jLCAiX2ZyZWVsb2NhbGUiOiBfZnJlZWxvY2FsZSwgIl9fWjdjYXRvcGVuUEtjaSI6IF9f
WjdjYXRvcGVuUEtjaSwgIl9hc3ByaW50ZiI6IF9hc3ByaW50ZiwgIl9fX2N4YV9pc19udW1iZXJf
dHlwZSI6IF9fX2N4YV9pc19udW1iZXJfdHlwZSwgIl9fX2N4YV9kb2VzX2luaGVyaXQiOiBfX19j
eGFfZG9lc19pbmhlcml0LCAiX19fY3hhX2d1YXJkX2FjcXVpcmUiOiBfX19jeGFfZ3VhcmRfYWNx
dWlyZSwgIl9fX2xvY2FsZV9tYl9jdXJfbWF4IjogX19fbG9jYWxlX21iX2N1cl9tYXgsICJfX19j
eGFfYmVnaW5fY2F0Y2giOiBfX19jeGFfYmVnaW5fY2F0Y2gsICJfcmVjdiI6IF9yZWN2LCAiX19w
YXJzZUludDY0IjogX19wYXJzZUludDY0LCAiX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYiOiBf
X1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udiwgIl9fX2N4YV9jYWxsX3VuZXhwZWN0ZWQiOiBfX19j
eGFfY2FsbF91bmV4cGVjdGVkLCAiX19leGl0IjogX19leGl0LCAiX3N0cmZ0aW1lIjogX3N0cmZ0
aW1lLCAiX19fY3hhX3Rocm93IjogX19fY3hhX3Rocm93LCAiX2xsdm1fZWhfZXhjZXB0aW9uIjog
X2xsdm1fZWhfZXhjZXB0aW9uLCAiX3ByZWFkIjogX3ByZWFkLCAiX19hcnJheVN1bSI6IF9fYXJy
YXlTdW0sICJfbG9nIjogX2xvZywgIl9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoIjogX19fY3hh
X2ZpbmRfbWF0Y2hpbmdfY2F0Y2gsICJfX2Zvcm1hdFN0cmluZyI6IF9fZm9ybWF0U3RyaW5nLCAi
X3B0aHJlYWRfY29uZF9icm9hZGNhc3QiOiBfcHRocmVhZF9jb25kX2Jyb2FkY2FzdCwgIl9fWlN0
OXRlcm1pbmF0ZXYiOiBfX1pTdDl0ZXJtaW5hdGV2LCAiX3B0aHJlYWRfbXV0ZXhfdW5sb2NrIjog
X3B0aHJlYWRfbXV0ZXhfdW5sb2NrLCAiX3NicmsiOiBfc2JyaywgIl9fX2Vycm5vX2xvY2F0aW9u
IjogX19fZXJybm9fbG9jYXRpb24sICJfc3RyZXJyb3IiOiBfc3RyZXJyb3IsICJfbGx2bV9saWZl
dGltZV9zdGFydCI6IF9sbHZtX2xpZmV0aW1lX3N0YXJ0LCAiX19fY3hhX2d1YXJkX3JlbGVhc2Ui
OiBfX19jeGFfZ3VhcmRfcmVsZWFzZSwgIl91bmdldGMiOiBfdW5nZXRjLCAiX3VzZWxvY2FsZSI6
IF91c2Vsb2NhbGUsICJfdnNucHJpbnRmIjogX3ZzbnByaW50ZiwgIl9zc2NhbmYiOiBfc3NjYW5m
LCAiX3N5c2NvbmYiOiBfc3lzY29uZiwgIl9mcmVhZCI6IF9mcmVhZCwgIl9hYm9ydCI6IF9hYm9y
dCwgIl9pc2RpZ2l0IjogX2lzZGlnaXQsICJfc3RydG9sbCI6IF9zdHJ0b2xsLCAiX19hZGREYXlz
IjogX19hZGREYXlzLCAiX2Zsb29yIjogX2Zsb29yLCAiX19yZWFsbHlOZWdhdGl2ZSI6IF9fcmVh
bGx5TmVnYXRpdmUsICJfX1o3Y2F0Z2V0c1A4X25sX2NhdGRpaVBLYyI6IF9fWjdjYXRnZXRzUDhf
bmxfY2F0ZGlpUEtjLCAiX3dyaXRlIjogX3dyaXRlLCAiX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlv
biI6IF9fX2N4YV9hbGxvY2F0ZV9leGNlcHRpb24sICJfX19jeGFfcHVyZV92aXJ0dWFsIjogX19f
Y3hhX3B1cmVfdmlydHVhbCwgIl92YXNwcmludGYiOiBfdmFzcHJpbnRmLCAiX19fY3R5cGVfdG91
cHBlcl9sb2MiOiBfX19jdHlwZV90b3VwcGVyX2xvYywgIl9fX2N0eXBlX3RvbG93ZXJfbG9jIjog
X19fY3R5cGVfdG9sb3dlcl9sb2MsICJfcHdyaXRlIjogX3B3cml0ZSwgIl9zdHJlcnJvcl9yIjog
X3N0cmVycm9yX3IsICJfdGltZSI6IF90aW1lLCAiU1RBQ0tUT1AiOiBTVEFDS1RPUCwgIlNUQUNL
X01BWCI6IFNUQUNLX01BWCwgInRlbXBEb3VibGVQdHIiOiB0ZW1wRG91YmxlUHRyLCAiQUJPUlQi
OiBBQk9SVCwgImN0dHpfaTgiOiBjdHR6X2k4LCAiY3Rsel9pOCI6IGN0bHpfaTgsICJOYU4iOiBO
YU4sICJJbmZpbml0eSI6IEluZmluaXR5LCAiX3N0ZGluIjogX3N0ZGluLCAiX19aVFZOMTBfX2N4
eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UiOiBfX1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3Nf
dHlwZV9pbmZvRSwgIl9fWlRWTjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FIjog
X19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UsICJfc3RkZXJyIjogX3N0
ZGVyciwgIl9fX2ZzbXU4IjogX19fZnNtdTgsICJfc3Rkb3V0IjogX3N0ZG91dCwgIl9fX2Rzb19o
YW5kbGUiOiBfX19kc29faGFuZGxlIH0sIGJ1ZmZlcik7Ci12YXIgX3N0cmxlbiA9IE1vZHVsZVsi
X3N0cmxlbiJdID0gYXNtWyJfc3RybGVuIl07Ci12YXIgX2ZyZWUgPSBNb2R1bGVbIl9mcmVlIl0g
PSBhc21bIl9mcmVlIl07Ci12YXIgX21haW4gPSBNb2R1bGVbIl9tYWluIl0gPSBhc21bIl9tYWlu
Il07Ci12YXIgX3JlYWxsb2MgPSBNb2R1bGVbIl9yZWFsbG9jIl0gPSBhc21bIl9yZWFsbG9jIl07
Ci12YXIgX21lbW1vdmUgPSBNb2R1bGVbIl9tZW1tb3ZlIl0gPSBhc21bIl9tZW1tb3ZlIl07Ci12
YXIgX19HTE9CQUxfX0lfYSA9IE1vZHVsZVsiX19HTE9CQUxfX0lfYSJdID0gYXNtWyJfX0dMT0JB
TF9fSV9hIl07Ci12YXIgX21lbXNldCA9IE1vZHVsZVsiX21lbXNldCJdID0gYXNtWyJfbWVtc2V0
Il07Ci12YXIgX21hbGxvYyA9IE1vZHVsZVsiX21hbGxvYyJdID0gYXNtWyJfbWFsbG9jIl07Ci12
YXIgX21lbWNweSA9IE1vZHVsZVsiX21lbWNweSJdID0gYXNtWyJfbWVtY3B5Il07Ci12YXIgX2xs
dm1fY3Rsel9pMzIgPSBNb2R1bGVbIl9sbHZtX2N0bHpfaTMyIl0gPSBhc21bIl9sbHZtX2N0bHpf
aTMyIl07Ci12YXIgX19HTE9CQUxfX0lfYTggPSBNb2R1bGVbIl9fR0xPQkFMX19JX2E4Il0gPSBh
c21bIl9fR0xPQkFMX19JX2E4Il07Ci12YXIgcnVuUG9zdFNldHMgPSBNb2R1bGVbInJ1blBvc3RT
ZXRzIl0gPSBhc21bInJ1blBvc3RTZXRzIl07Ci12YXIgZHluQ2FsbF92aWlpaWkgPSBNb2R1bGVb
ImR5bkNhbGxfdmlpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWlpIl07Ci12YXIgZHluQ2FsbF92
aWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlp
aWlpIl07Ci12YXIgZHluQ2FsbF92aSA9IE1vZHVsZVsiZHluQ2FsbF92aSJdID0gYXNtWyJkeW5D
YWxsX3ZpIl07Ci12YXIgZHluQ2FsbF92aWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpIl0gPSBhc21b
ImR5bkNhbGxfdmlpIl07Ci12YXIgZHluQ2FsbF9paWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpIl0g
PSBhc21bImR5bkNhbGxfaWlpIl07Ci12YXIgZHluQ2FsbF9paWlpaWkgPSBNb2R1bGVbImR5bkNh
bGxfaWlpaWlpIl0gPSBhc21bImR5bkNhbGxfaWlpaWlpIl07Ci12YXIgZHluQ2FsbF9paSA9IE1v
ZHVsZVsiZHluQ2FsbF9paSJdID0gYXNtWyJkeW5DYWxsX2lpIl07Ci12YXIgZHluQ2FsbF9paWlp
ID0gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXSA9IGFzbVsiZHluQ2FsbF9paWlpIl07Ci12YXIgZHlu
Q2FsbF92aWlpaWlmID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWYiXSA9IGFzbVsiZHluQ2FsbF92
aWlpaWlmIl07Ci12YXIgZHluQ2FsbF92aWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWkiXSA9IGFz
bVsiZHluQ2FsbF92aWlpIl07Ci12YXIgZHluQ2FsbF92aWlpaWlpaWkgPSBNb2R1bGVbImR5bkNh
bGxfdmlpaWlpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWlpaWlpIl07Ci12YXIgZHluQ2FsbF92
ID0gTW9kdWxlWyJkeW5DYWxsX3YiXSA9IGFzbVsiZHluQ2FsbF92Il07Ci12YXIgZHluQ2FsbF9p
aWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWlpIl0gPSBhc21bImR5bkNhbGxfaWlp
aWlpaWlpIl07Ci12YXIgZHluQ2FsbF92aWlpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlp
aWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWlpaWlpIl07Ci12YXIgZHluQ2FsbF92aWlpaWlp
ZiA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpZiJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWlmIl07
Ci12YXIgZHluQ2FsbF92aWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWkiXSA9IGFzbVsi
ZHluQ2FsbF92aWlpaWlpIl07Ci12YXIgZHluQ2FsbF9paWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9p
aWlpaSJdID0gYXNtWyJkeW5DYWxsX2lpaWlpIl07Ci12YXIgZHluQ2FsbF92aWlpaSA9IE1vZHVs
ZVsiZHluQ2FsbF92aWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpIl07Ci1SdW50aW1lLnN0YWNr
QWxsb2MgPSBmdW5jdGlvbihzaXplKSB7IHJldHVybiBhc21bJ3N0YWNrQWxsb2MnXShzaXplKSB9
OwotUnVudGltZS5zdGFja1NhdmUgPSBmdW5jdGlvbigpIHsgcmV0dXJuIGFzbVsnc3RhY2tTYXZl
J10oKSB9OwotUnVudGltZS5zdGFja1Jlc3RvcmUgPSBmdW5jdGlvbih0b3ApIHsgYXNtWydzdGFj
a1Jlc3RvcmUnXSh0b3ApIH07Ci0vLyBUT0RPOiBzdHJpcCBvdXQgcGFydHMgb2YgdGhpcyB3ZSBk
byBub3QgbmVlZAotLy89PT09PT09IGJlZ2luIGNsb3N1cmUgaTY0IGNvZGUgPT09PT09PQotLy8g
Q29weXJpZ2h0IDIwMDkgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgotLy8KLS8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lv
biAyLjAgKHRoZSAiTGljZW5zZSIpOwotLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNl
cHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotLy8gWW91IG1heSBvYnRhaW4gYSBj
b3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0vLwotLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcv
bGljZW5zZXMvTElDRU5TRS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0vLyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMtSVMiIEJBU0lTLAotLy8g
V0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHBy
ZXNzIG9yIGltcGxpZWQuCi0vLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5n
dWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0vLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUg
TGljZW5zZS4KLS8qKgotICogQGZpbGVvdmVydmlldyBEZWZpbmVzIGEgTG9uZyBjbGFzcyBmb3Ig
cmVwcmVzZW50aW5nIGEgNjQtYml0IHR3bydzLWNvbXBsZW1lbnQKLSAqIGludGVnZXIgdmFsdWUs
IHdoaWNoIGZhaXRoZnVsbHkgc2ltdWxhdGVzIHRoZSBiZWhhdmlvciBvZiBhIEphdmEgImxvbmci
LiBUaGlzCi0gKiBpbXBsZW1lbnRhdGlvbiBpcyBkZXJpdmVkIGZyb20gTG9uZ0xpYiBpbiBHV1Qu
Ci0gKgotICovCi12YXIgaTY0TWF0aCA9IChmdW5jdGlvbigpIHsgLy8gRW1zY3JpcHRlbiB3cmFw
cGVyCi0gIHZhciBnb29nID0geyBtYXRoOiB7fSB9OwotICAvKioKLSAgICogQ29uc3RydWN0cyBh
IDY0LWJpdCB0d28ncy1jb21wbGVtZW50IGludGVnZXIsIGdpdmVuIGl0cyBsb3cgYW5kIGhpZ2gg
MzItYml0Ci0gICAqIHZhbHVlcyBhcyAqc2lnbmVkKiBpbnRlZ2Vycy4gIFNlZSB0aGUgZnJvbSog
ZnVuY3Rpb25zIGJlbG93IGZvciBtb3JlCi0gICAqIGNvbnZlbmllbnQgd2F5cyBvZiBjb25zdHJ1
Y3RpbmcgTG9uZ3MuCi0gICAqCi0gICAqIFRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBh
IGxvbmcgaXMgdGhlIHR3byBnaXZlbiBzaWduZWQsIDMyLWJpdCB2YWx1ZXMuCi0gICAqIFdlIHVz
ZSAzMi1iaXQgcGllY2VzIGJlY2F1c2UgdGhlc2UgYXJlIHRoZSBzaXplIG9mIGludGVnZXJzIG9u
IHdoaWNoCi0gICAqIEphdmFzY3JpcHQgcGVyZm9ybXMgYml0LW9wZXJhdGlvbnMuICBGb3Igb3Bl
cmF0aW9ucyBsaWtlIGFkZGl0aW9uIGFuZAotICAgKiBtdWx0aXBsaWNhdGlvbiwgd2Ugc3BsaXQg
ZWFjaCBudW1iZXIgaW50byAxNi1iaXQgcGllY2VzLCB3aGljaCBjYW4gZWFzaWx5IGJlCi0gICAq
IG11bHRpcGxpZWQgd2l0aGluIEphdmFzY3JpcHQncyBmbG9hdGluZy1wb2ludCByZXByZXNlbnRh
dGlvbiB3aXRob3V0IG92ZXJmbG93Ci0gICAqIG9yIGNoYW5nZSBpbiBzaWduLgotICAgKgotICAg
KiBJbiB0aGUgYWxnb3JpdGhtcyBiZWxvdywgd2UgZnJlcXVlbnRseSByZWR1Y2UgdGhlIG5lZ2F0
aXZlIGNhc2UgdG8gdGhlCi0gICAqIHBvc2l0aXZlIGNhc2UgYnkgbmVnYXRpbmcgdGhlIGlucHV0
KHMpIGFuZCB0aGVuIHBvc3QtcHJvY2Vzc2luZyB0aGUgcmVzdWx0LgotICAgKiBOb3RlIHRoYXQg
d2UgbXVzdCBBTFdBWVMgY2hlY2sgc3BlY2lhbGx5IHdoZXRoZXIgdGhvc2UgdmFsdWVzIGFyZSBN
SU5fVkFMVUUKLSAgICogKC0yXjYzKSBiZWNhdXNlIC1NSU5fVkFMVUUgPT0gTUlOX1ZBTFVFIChz
aW5jZSAyXjYzIGNhbm5vdCBiZSByZXByZXNlbnRlZCBhcwotICAgKiBhIHBvc2l0aXZlIG51bWJl
ciwgaXQgb3ZlcmZsb3dzIGJhY2sgaW50byBhIG5lZ2F0aXZlKS4gIE5vdCBoYW5kbGluZyB0aGlz
Ci0gICAqIGNhc2Ugd291bGQgb2Z0ZW4gcmVzdWx0IGluIGluZmluaXRlIHJlY3Vyc2lvbi4KLSAg
ICoKLSAgICogQHBhcmFtIHtudW1iZXJ9IGxvdyAgVGhlIGxvdyAoc2lnbmVkKSAzMiBiaXRzIG9m
IHRoZSBsb25nLgotICAgKiBAcGFyYW0ge251bWJlcn0gaGlnaCAgVGhlIGhpZ2ggKHNpZ25lZCkg
MzIgYml0cyBvZiB0aGUgbG9uZy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBnb29nLm1h
dGguTG9uZyA9IGZ1bmN0aW9uKGxvdywgaGlnaCkgewotICAgIC8qKgotICAgICAqIEB0eXBlIHtu
dW1iZXJ9Ci0gICAgICogQHByaXZhdGUKLSAgICAgKi8KLSAgICB0aGlzLmxvd18gPSBsb3cgfCAw
OyAgLy8gZm9yY2UgaW50byAzMiBzaWduZWQgYml0cy4KLSAgICAvKioKLSAgICAgKiBAdHlwZSB7
bnVtYmVyfQotICAgICAqIEBwcml2YXRlCi0gICAgICovCi0gICAgdGhpcy5oaWdoXyA9IGhpZ2gg
fCAwOyAgLy8gZm9yY2UgaW50byAzMiBzaWduZWQgYml0cy4KLSAgfTsKLSAgLy8gTk9URTogQ29t
bW9uIGNvbnN0YW50IHZhbHVlcyBaRVJPLCBPTkUsIE5FR19PTkUsIGV0Yy4gYXJlIGRlZmluZWQg
YmVsb3cgdGhlCi0gIC8vIGZyb20qIG1ldGhvZHMgb24gd2hpY2ggdGhleSBkZXBlbmQuCi0gIC8q
KgotICAgKiBBIGNhY2hlIG9mIHRoZSBMb25nIHJlcHJlc2VudGF0aW9ucyBvZiBzbWFsbCBpbnRl
Z2VyIHZhbHVlcy4KLSAgICogQHR5cGUgeyFPYmplY3R9Ci0gICAqIEBwcml2YXRlCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5JbnRDYWNoZV8gPSB7fTsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBM
b25nIHJlcHJlc2VudGluZyB0aGUgZ2l2ZW4gKDMyLWJpdCkgaW50ZWdlciB2YWx1ZS4KLSAgICog
QHBhcmFtIHtudW1iZXJ9IHZhbHVlIFRoZSAzMi1iaXQgaW50ZWdlciBpbiBxdWVzdGlvbi4KLSAg
ICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgY29ycmVzcG9uZGluZyBMb25nIHZhbHVl
LgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuZnJvbUludCA9IGZ1bmN0aW9uKHZhbHVlKSB7Ci0g
ICAgaWYgKC0xMjggPD0gdmFsdWUgJiYgdmFsdWUgPCAxMjgpIHsKLSAgICAgIHZhciBjYWNoZWRP
YmogPSBnb29nLm1hdGguTG9uZy5JbnRDYWNoZV9bdmFsdWVdOwotICAgICAgaWYgKGNhY2hlZE9i
aikgewotICAgICAgICByZXR1cm4gY2FjaGVkT2JqOwotICAgICAgfQotICAgIH0KLSAgICB2YXIg
b2JqID0gbmV3IGdvb2cubWF0aC5Mb25nKHZhbHVlIHwgMCwgdmFsdWUgPCAwID8gLTEgOiAwKTsK
LSAgICBpZiAoLTEyOCA8PSB2YWx1ZSAmJiB2YWx1ZSA8IDEyOCkgewotICAgICAgZ29vZy5tYXRo
LkxvbmcuSW50Q2FjaGVfW3ZhbHVlXSA9IG9iajsKLSAgICB9Ci0gICAgcmV0dXJuIG9iajsKLSAg
fTsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBMb25nIHJlcHJlc2VudGluZyB0aGUgZ2l2ZW4gdmFs
dWUsIHByb3ZpZGVkIHRoYXQgaXQgaXMgYSBmaW5pdGUKLSAgICogbnVtYmVyLiAgT3RoZXJ3aXNl
LCB6ZXJvIGlzIHJldHVybmVkLgotICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVGhlIG51bWJl
ciBpbiBxdWVzdGlvbi4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgY29ycmVz
cG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlciA9
IGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgaWYgKGlzTmFOKHZhbHVlKSB8fCAhaXNGaW5pdGUodmFs
dWUpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9IGVsc2UgaWYg
KHZhbHVlIDw9IC1nb29nLm1hdGguTG9uZy5UV09fUFdSXzYzX0RCTF8pIHsKLSAgICAgIHJldHVy
biBnb29nLm1hdGguTG9uZy5NSU5fVkFMVUU7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZSArIDEgPj0g
Z29vZy5tYXRoLkxvbmcuVFdPX1BXUl82M19EQkxfKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRo
LkxvbmcuTUFYX1ZBTFVFOwotICAgIH0gZWxzZSBpZiAodmFsdWUgPCAwKSB7Ci0gICAgICByZXR1
cm4gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcigtdmFsdWUpLm5lZ2F0ZSgpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICByZXR1cm4gbmV3IGdvb2cubWF0aC5Mb25nKAotICAgICAgICAgICh2YWx1ZSAl
IGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXykgfCAwLAotICAgICAgICAgICh2YWx1ZSAv
IGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXykgfCAwKTsKLSAgICB9Ci0gIH07Ci0gIC8q
KgotICAgKiBSZXR1cm5zIGEgTG9uZyByZXByZXNlbnRpbmcgdGhlIDY0LWJpdCBpbnRlZ2VyIHRo
YXQgY29tZXMgYnkgY29uY2F0ZW5hdGluZwotICAgKiB0aGUgZ2l2ZW4gaGlnaCBhbmQgbG93IGJp
dHMuICBFYWNoIGlzIGFzc3VtZWQgdG8gdXNlIDMyIGJpdHMuCi0gICAqIEBwYXJhbSB7bnVtYmVy
fSBsb3dCaXRzIFRoZSBsb3cgMzItYml0cy4KLSAgICogQHBhcmFtIHtudW1iZXJ9IGhpZ2hCaXRz
IFRoZSBoaWdoIDMyLWJpdHMuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGNv
cnJlc3BvbmRpbmcgTG9uZyB2YWx1ZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLmZyb21CaXRz
ID0gZnVuY3Rpb24obG93Qml0cywgaGlnaEJpdHMpIHsKLSAgICByZXR1cm4gbmV3IGdvb2cubWF0
aC5Mb25nKGxvd0JpdHMsIGhpZ2hCaXRzKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBM
b25nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBzdHJpbmcsIHdyaXR0ZW4gdXNpbmcgdGhl
IGdpdmVuCi0gICAqIHJhZGl4LgotICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIFRoZSB0ZXh0dWFs
IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25nLgotICAgKiBAcGFyYW0ge251bWJlcj19IG9wdF9y
YWRpeCBUaGUgcmFkaXggaW4gd2hpY2ggdGhlIHRleHQgaXMgd3JpdHRlbi4KLSAgICogQHJldHVy
biB7IWdvb2cubWF0aC5Mb25nfSBUaGUgY29ycmVzcG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8K
LSAgZ29vZy5tYXRoLkxvbmcuZnJvbVN0cmluZyA9IGZ1bmN0aW9uKHN0ciwgb3B0X3JhZGl4KSB7
Ci0gICAgaWYgKHN0ci5sZW5ndGggPT0gMCkgewotICAgICAgdGhyb3cgRXJyb3IoJ251bWJlciBm
b3JtYXQgZXJyb3I6IGVtcHR5IHN0cmluZycpOwotICAgIH0KLSAgICB2YXIgcmFkaXggPSBvcHRf
cmFkaXggfHwgMTA7Ci0gICAgaWYgKHJhZGl4IDwgMiB8fCAzNiA8IHJhZGl4KSB7Ci0gICAgICB0
aHJvdyBFcnJvcigncmFkaXggb3V0IG9mIHJhbmdlOiAnICsgcmFkaXgpOwotICAgIH0KLSAgICBp
ZiAoc3RyLmNoYXJBdCgwKSA9PSAnLScpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5m
cm9tU3RyaW5nKHN0ci5zdWJzdHJpbmcoMSksIHJhZGl4KS5uZWdhdGUoKTsKLSAgICB9IGVsc2Ug
aWYgKHN0ci5pbmRleE9mKCctJykgPj0gMCkgewotICAgICAgdGhyb3cgRXJyb3IoJ251bWJlciBm
b3JtYXQgZXJyb3I6IGludGVyaW9yICItIiBjaGFyYWN0ZXI6ICcgKyBzdHIpOwotICAgIH0KLSAg
ICAvLyBEbyBzZXZlcmFsICg4KSBkaWdpdHMgZWFjaCB0aW1lIHRocm91Z2ggdGhlIGxvb3AsIHNv
IGFzIHRvCi0gICAgLy8gbWluaW1pemUgdGhlIGNhbGxzIHRvIHRoZSB2ZXJ5IGV4cGVuc2l2ZSBl
bXVsYXRlZCBkaXYuCi0gICAgdmFyIHJhZGl4VG9Qb3dlciA9IGdvb2cubWF0aC5Mb25nLmZyb21O
dW1iZXIoTWF0aC5wb3cocmFkaXgsIDgpKTsKLSAgICB2YXIgcmVzdWx0ID0gZ29vZy5tYXRoLkxv
bmcuWkVSTzsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkgKz0gOCkgewot
ICAgICAgdmFyIHNpemUgPSBNYXRoLm1pbig4LCBzdHIubGVuZ3RoIC0gaSk7Ci0gICAgICB2YXIg
dmFsdWUgPSBwYXJzZUludChzdHIuc3Vic3RyaW5nKGksIGkgKyBzaXplKSwgcmFkaXgpOwotICAg
ICAgaWYgKHNpemUgPCA4KSB7Ci0gICAgICAgIHZhciBwb3dlciA9IGdvb2cubWF0aC5Mb25nLmZy
b21OdW1iZXIoTWF0aC5wb3cocmFkaXgsIHNpemUpKTsKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0
Lm11bHRpcGx5KHBvd2VyKS5hZGQoZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcih2YWx1ZSkpOwot
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0Lm11bHRpcGx5KHJhZGl4VG9Q
b3dlcik7Ci0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5hZGQoZ29vZy5tYXRoLkxvbmcuZnJvbU51
bWJlcih2YWx1ZSkpOwotICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotICB9Owot
ICAvLyBOT1RFOiB0aGUgY29tcGlsZXIgc2hvdWxkIGlubGluZSB0aGVzZSBjb25zdGFudCB2YWx1
ZXMgYmVsb3cgYW5kIHRoZW4gcmVtb3ZlCi0gIC8vIHRoZXNlIHZhcmlhYmxlcywgc28gdGhlcmUg
c2hvdWxkIGJlIG5vIHJ1bnRpbWUgcGVuYWx0eSBmb3IgdGhlc2UuCi0gIC8qKgotICAgKiBOdW1i
ZXIgdXNlZCByZXBlYXRlZCBiZWxvdyBpbiBjYWxjdWxhdGlvbnMuICBUaGlzIG11c3QgYXBwZWFy
IGJlZm9yZSB0aGUKLSAgICogZmlyc3QgY2FsbCB0byBhbnkgZnJvbSogZnVuY3Rpb24gYmVsb3cu
Ci0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGgu
TG9uZy5UV09fUFdSXzE2X0RCTF8gPSAxIDw8IDE2OwotICAvKioKLSAgICogQHR5cGUge251bWJl
cn0KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfREJM
XyA9IDEgPDwgMjQ7Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQot
ICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfID0KLSAgICAgIGdvb2cubWF0
aC5Mb25nLlRXT19QV1JfMTZfREJMXyAqIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMTZfREJMXzsK
LSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29n
Lm1hdGguTG9uZy5UV09fUFdSXzMxX0RCTF8gPQotICAgICAgZ29vZy5tYXRoLkxvbmcuVFdPX1BX
Ul8zMl9EQkxfIC8gMjsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRl
Ci0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzQ4X0RCTF8gPQotICAgICAgZ29vZy5t
YXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfICogZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8xNl9EQkxf
OwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdv
b2cubWF0aC5Mb25nLlRXT19QV1JfNjRfREJMXyA9Ci0gICAgICBnb29nLm1hdGguTG9uZy5UV09f
UFdSXzMyX0RCTF8gKiBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF87Ci0gIC8qKgotICAg
KiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcu
VFdPX1BXUl82M19EQkxfID0KLSAgICAgIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfNjRfREJMXyAv
IDI7Ci0gIC8qKiBAdHlwZSB7IWdvb2cubWF0aC5Mb25nfSAqLwotICBnb29nLm1hdGguTG9uZy5a
RVJPID0gZ29vZy5tYXRoLkxvbmcuZnJvbUludCgwKTsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRo
Lkxvbmd9ICovCi0gIGdvb2cubWF0aC5Mb25nLk9ORSA9IGdvb2cubWF0aC5Mb25nLmZyb21JbnQo
MSk7Ci0gIC8qKiBAdHlwZSB7IWdvb2cubWF0aC5Mb25nfSAqLwotICBnb29nLm1hdGguTG9uZy5O
RUdfT05FID0gZ29vZy5tYXRoLkxvbmcuZnJvbUludCgtMSk7Ci0gIC8qKiBAdHlwZSB7IWdvb2cu
bWF0aC5Mb25nfSAqLwotICBnb29nLm1hdGguTG9uZy5NQVhfVkFMVUUgPQotICAgICAgZ29vZy5t
YXRoLkxvbmcuZnJvbUJpdHMoMHhGRkZGRkZGRiB8IDAsIDB4N0ZGRkZGRkYgfCAwKTsKLSAgLyoq
IEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSA9
IGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKDAsIDB4ODAwMDAwMDAgfCAwKTsKLSAgLyoqCi0gICAq
IEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1h
dGguTG9uZy5UV09fUFdSXzI0XyA9IGdvb2cubWF0aC5Mb25nLmZyb21JbnQoMSA8PCAyNCk7Ci0g
IC8qKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSB2YWx1ZSwgYXNzdW1pbmcgaXQgaXMgYSAzMi1iaXQg
aW50ZWdlci4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnRvSW50ID0gZnVuY3Rpb24o
KSB7Ci0gICAgcmV0dXJuIHRoaXMubG93XzsKLSAgfTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0g
VGhlIGNsb3Nlc3QgZmxvYXRpbmctcG9pbnQgcmVwcmVzZW50YXRpb24gdG8gdGhpcyB2YWx1ZS4g
Ki8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnRvTnVtYmVyID0gZnVuY3Rpb24oKSB7Ci0g
ICAgcmV0dXJuIHRoaXMuaGlnaF8gKiBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gKwot
ICAgICAgICAgICB0aGlzLmdldExvd0JpdHNVbnNpZ25lZCgpOwotICB9OwotICAvKioKLSAgICog
QHBhcmFtIHtudW1iZXI9fSBvcHRfcmFkaXggVGhlIHJhZGl4IGluIHdoaWNoIHRoZSB0ZXh0IHNo
b3VsZCBiZSB3cml0dGVuLgotICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSB0ZXh0dWFsIHJlcHJl
c2VudGF0aW9uIG9mIHRoaXMgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5
cGUudG9TdHJpbmcgPSBmdW5jdGlvbihvcHRfcmFkaXgpIHsKLSAgICB2YXIgcmFkaXggPSBvcHRf
cmFkaXggfHwgMTA7Ci0gICAgaWYgKHJhZGl4IDwgMiB8fCAzNiA8IHJhZGl4KSB7Ci0gICAgICB0
aHJvdyBFcnJvcigncmFkaXggb3V0IG9mIHJhbmdlOiAnICsgcmFkaXgpOwotICAgIH0KLSAgICBp
ZiAodGhpcy5pc1plcm8oKSkgewotICAgICAgcmV0dXJuICcwJzsKLSAgICB9Ci0gICAgaWYgKHRo
aXMuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRoLkxvbmcu
TUlOX1ZBTFVFKSkgewotICAgICAgICAvLyBXZSBuZWVkIHRvIGNoYW5nZSB0aGUgTG9uZyB2YWx1
ZSBiZWZvcmUgaXQgY2FuIGJlIG5lZ2F0ZWQsIHNvIHdlIHJlbW92ZQotICAgICAgICAvLyB0aGUg
Ym90dG9tLW1vc3QgZGlnaXQgaW4gdGhpcyBiYXNlIGFuZCB0aGVuIHJlY3Vyc2UgdG8gZG8gdGhl
IHJlc3QuCi0gICAgICAgIHZhciByYWRpeExvbmcgPSBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVy
KHJhZGl4KTsKLSAgICAgICAgdmFyIGRpdiA9IHRoaXMuZGl2KHJhZGl4TG9uZyk7Ci0gICAgICAg
IHZhciByZW0gPSBkaXYubXVsdGlwbHkocmFkaXhMb25nKS5zdWJ0cmFjdCh0aGlzKTsKLSAgICAg
ICAgcmV0dXJuIGRpdi50b1N0cmluZyhyYWRpeCkgKyByZW0udG9JbnQoKS50b1N0cmluZyhyYWRp
eCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gJy0nICsgdGhpcy5uZWdhdGUoKS50
b1N0cmluZyhyYWRpeCk7Ci0gICAgICB9Ci0gICAgfQotICAgIC8vIERvIHNldmVyYWwgKDYpIGRp
Z2l0cyBlYWNoIHRpbWUgdGhyb3VnaCB0aGUgbG9vcCwgc28gYXMgdG8KLSAgICAvLyBtaW5pbWl6
ZSB0aGUgY2FsbHMgdG8gdGhlIHZlcnkgZXhwZW5zaXZlIGVtdWxhdGVkIGRpdi4KLSAgICB2YXIg
cmFkaXhUb1Bvd2VyID0gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcihNYXRoLnBvdyhyYWRpeCwg
NikpOwotICAgIHZhciByZW0gPSB0aGlzOwotICAgIHZhciByZXN1bHQgPSAnJzsKLSAgICB3aGls
ZSAodHJ1ZSkgewotICAgICAgdmFyIHJlbURpdiA9IHJlbS5kaXYocmFkaXhUb1Bvd2VyKTsKLSAg
ICAgIHZhciBpbnR2YWwgPSByZW0uc3VidHJhY3QocmVtRGl2Lm11bHRpcGx5KHJhZGl4VG9Qb3dl
cikpLnRvSW50KCk7Ci0gICAgICB2YXIgZGlnaXRzID0gaW50dmFsLnRvU3RyaW5nKHJhZGl4KTsK
LSAgICAgIHJlbSA9IHJlbURpdjsKLSAgICAgIGlmIChyZW0uaXNaZXJvKCkpIHsKLSAgICAgICAg
cmV0dXJuIGRpZ2l0cyArIHJlc3VsdDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHdoaWxlIChk
aWdpdHMubGVuZ3RoIDwgNikgewotICAgICAgICAgIGRpZ2l0cyA9ICcwJyArIGRpZ2l0czsKLSAg
ICAgICAgfQotICAgICAgICByZXN1bHQgPSAnJyArIGRpZ2l0cyArIHJlc3VsdDsKLSAgICAgIH0K
LSAgICB9Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBoaWdoIDMyLWJpdHMgYXMg
YSBzaWduZWQgdmFsdWUuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5nZXRIaWdoQml0
cyA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmhpZ2hfOwotICB9OwotICAvKiogQHJl
dHVybiB7bnVtYmVyfSBUaGUgbG93IDMyLWJpdHMgYXMgYSBzaWduZWQgdmFsdWUuICovCi0gIGdv
b2cubWF0aC5Mb25nLnByb3RvdHlwZS5nZXRMb3dCaXRzID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0
dXJuIHRoaXMubG93XzsKLSAgfTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhlIGxvdyAzMi1i
aXRzIGFzIGFuIHVuc2lnbmVkIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUu
Z2V0TG93Qml0c1Vuc2lnbmVkID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuICh0aGlzLmxvd18g
Pj0gMCkgPwotICAgICAgICB0aGlzLmxvd18gOiBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RC
TF8gKyB0aGlzLmxvd187Ci0gIH07Ci0gIC8qKgotICAgKiBAcmV0dXJuIHtudW1iZXJ9IFJldHVy
bnMgdGhlIG51bWJlciBvZiBiaXRzIG5lZWRlZCB0byByZXByZXNlbnQgdGhlIGFic29sdXRlCi0g
ICAqICAgICB2YWx1ZSBvZiB0aGlzIExvbmcuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90
b3R5cGUuZ2V0TnVtQml0c0FicyA9IGZ1bmN0aW9uKCkgewotICAgIGlmICh0aGlzLmlzTmVnYXRp
dmUoKSkgewotICAgICAgaWYgKHRoaXMuZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkp
IHsKLSAgICAgICAgcmV0dXJuIDY0OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMubmVnYXRlKCkuZ2V0TnVtQml0c0FicygpOwotICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAg
ICB2YXIgdmFsID0gdGhpcy5oaWdoXyAhPSAwID8gdGhpcy5oaWdoXyA6IHRoaXMubG93XzsKLSAg
ICAgIGZvciAodmFyIGJpdCA9IDMxOyBiaXQgPiAwOyBiaXQtLSkgewotICAgICAgICBpZiAoKHZh
bCAmICgxIDw8IGJpdCkpICE9IDApIHsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg
ICAgfQotICAgICAgcmV0dXJuIHRoaXMuaGlnaF8gIT0gMCA/IGJpdCArIDMzIDogYml0ICsgMTsK
LSAgICB9Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgdmFsdWUg
aXMgemVyby4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmlzWmVybyA9IGZ1bmN0aW9u
KCkgewotICAgIHJldHVybiB0aGlzLmhpZ2hfID09IDAgJiYgdGhpcy5sb3dfID09IDA7Ci0gIH07
Ci0gIC8qKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgdmFsdWUgaXMgbmVnYXRpdmUu
ICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5pc05lZ2F0aXZlID0gZnVuY3Rpb24oKSB7
Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF8gPCAwOwotICB9OwotICAvKiogQHJldHVybiB7Ym9vbGVh
bn0gV2hldGhlciB0aGlzIHZhbHVlIGlzIG9kZC4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90
eXBlLmlzT2RkID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuICh0aGlzLmxvd18gJiAxKSA9PSAx
OwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0
byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBM
b25nIGVxdWFscyB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUu
ZXF1YWxzID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gKHRoaXMuaGlnaF8gPT0gb3Ro
ZXIuaGlnaF8pICYmICh0aGlzLmxvd18gPT0gb3RoZXIubG93Xyk7Ci0gIH07Ci0gIC8qKgotICAg
KiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4K
LSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExvbmcgZG9lcyBub3QgZXF1YWwg
dGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLm5vdEVxdWFscyA9
IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuICh0aGlzLmhpZ2hfICE9IG90aGVyLmhpZ2hf
KSB8fCAodGhpcy5sb3dfICE9IG90aGVyLmxvd18pOwotICB9OwotICAvKioKLSAgICogQHBhcmFt
IHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEBy
ZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBMb25nIGlzIGxlc3MgdGhhbiB0aGUgb3RoZXIu
Ci0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUubGVzc1RoYW4gPSBmdW5jdGlvbihv
dGhlcikgewotICAgIHJldHVybiB0aGlzLmNvbXBhcmUob3RoZXIpIDwgMDsKLSAgfTsKLSAgLyoq
Ci0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2Fp
bnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9uZyBpcyBsZXNzIHRo
YW4gb3IgZXF1YWwgdG8gdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90
eXBlLmxlc3NUaGFuT3JFcXVhbCA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMu
Y29tcGFyZShvdGhlcikgPD0gMDsKLSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRo
Lkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29s
ZWFufSBXaGV0aGVyIHRoaXMgTG9uZyBpcyBncmVhdGVyIHRoYW4gdGhlIG90aGVyLgotICAgKi8K
LSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmdyZWF0ZXJUaGFuID0gZnVuY3Rpb24ob3RoZXIp
IHsKLSAgICByZXR1cm4gdGhpcy5jb21wYXJlKG90aGVyKSA+IDA7Ci0gIH07Ci0gIC8qKgotICAg
KiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4K
LSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExvbmcgaXMgZ3JlYXRlciB0aGFu
IG9yIGVxdWFsIHRvIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlw
ZS5ncmVhdGVyVGhhbk9yRXF1YWwgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlz
LmNvbXBhcmUob3RoZXIpID49IDA7Ci0gIH07Ci0gIC8qKgotICAgKiBDb21wYXJlcyB0aGlzIExv
bmcgd2l0aCB0aGUgZ2l2ZW4gb25lLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhl
ciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7bnVtYmVyfSAwIGlmIHRo
ZXkgYXJlIHRoZSBzYW1lLCAxIGlmIHRoZSB0aGlzIGlzIGdyZWF0ZXIsIGFuZCAtMQotICAgKiAg
ICAgaWYgdGhlIGdpdmVuIG9uZSBpcyBncmVhdGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcu
cHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbihvdGhlcikgewotICAgIGlmICh0aGlzLmVxdWFs
cyhvdGhlcikpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICB2YXIgdGhpc05lZyA9IHRo
aXMuaXNOZWdhdGl2ZSgpOwotICAgIHZhciBvdGhlck5lZyA9IG90aGVyLmlzTmVnYXRpdmUoKTsK
LSAgICBpZiAodGhpc05lZyAmJiAhb3RoZXJOZWcpIHsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9
Ci0gICAgaWYgKCF0aGlzTmVnICYmIG90aGVyTmVnKSB7Ci0gICAgICByZXR1cm4gMTsKLSAgICB9
Ci0gICAgLy8gYXQgdGhpcyBwb2ludCwgdGhlIHNpZ25zIGFyZSB0aGUgc2FtZSwgc28gc3VidHJh
Y3Rpb24gd2lsbCBub3Qgb3ZlcmZsb3cKLSAgICBpZiAodGhpcy5zdWJ0cmFjdChvdGhlcikuaXNO
ZWdhdGl2ZSgpKSB7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVy
biAxOwotICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIG5l
Z2F0aW9uIG9mIHRoaXMgdmFsdWUuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5uZWdh
dGUgPSBmdW5jdGlvbigpIHsKLSAgICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlO
X1ZBTFVFKSkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRTsKLSAgICB9
IGVsc2UgewotICAgICAgcmV0dXJuIHRoaXMubm90KCkuYWRkKGdvb2cubWF0aC5Mb25nLk9ORSk7
Ci0gICAgfQotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUgc3VtIG9mIHRoaXMgYW5kIHRo
ZSBnaXZlbiBMb25nLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRv
IGFkZCB0byB0aGlzIG9uZS4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgc3Vt
IG9mIHRoaXMgYW5kIHRoZSBnaXZlbiBMb25nLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJv
dG90eXBlLmFkZCA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgLy8gRGl2aWRlIGVhY2ggbnVtYmVy
IGludG8gNCBjaHVua3Mgb2YgMTYgYml0cywgYW5kIHRoZW4gc3VtIHRoZSBjaHVua3MuCi0gICAg
dmFyIGE0OCA9IHRoaXMuaGlnaF8gPj4+IDE2OwotICAgIHZhciBhMzIgPSB0aGlzLmhpZ2hfICYg
MHhGRkZGOwotICAgIHZhciBhMTYgPSB0aGlzLmxvd18gPj4+IDE2OwotICAgIHZhciBhMDAgPSB0
aGlzLmxvd18gJiAweEZGRkY7Ci0gICAgdmFyIGI0OCA9IG90aGVyLmhpZ2hfID4+PiAxNjsKLSAg
ICB2YXIgYjMyID0gb3RoZXIuaGlnaF8gJiAweEZGRkY7Ci0gICAgdmFyIGIxNiA9IG90aGVyLmxv
d18gPj4+IDE2OwotICAgIHZhciBiMDAgPSBvdGhlci5sb3dfICYgMHhGRkZGOwotICAgIHZhciBj
NDggPSAwLCBjMzIgPSAwLCBjMTYgPSAwLCBjMDAgPSAwOwotICAgIGMwMCArPSBhMDAgKyBiMDA7
Ci0gICAgYzE2ICs9IGMwMCA+Pj4gMTY7Ci0gICAgYzAwICY9IDB4RkZGRjsKLSAgICBjMTYgKz0g
YTE2ICsgYjE2OwotICAgIGMzMiArPSBjMTYgPj4+IDE2OwotICAgIGMxNiAmPSAweEZGRkY7Ci0g
ICAgYzMyICs9IGEzMiArIGIzMjsKLSAgICBjNDggKz0gYzMyID4+PiAxNjsKLSAgICBjMzIgJj0g
MHhGRkZGOwotICAgIGM0OCArPSBhNDggKyBiNDg7Ci0gICAgYzQ4ICY9IDB4RkZGRjsKLSAgICBy
ZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoKGMxNiA8PCAxNikgfCBjMDAsIChjNDggPDwg
MTYpIHwgYzMyKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhlIGRpZmZlcmVuY2Ugb2Yg
dGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90
aGVyIExvbmcgdG8gc3VidHJhY3QgZnJvbSB0aGlzLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRo
Lkxvbmd9IFRoZSBkaWZmZXJlbmNlIG9mIHRoaXMgYW5kIHRoZSBnaXZlbiBMb25nLgotICAgKi8K
LSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnN1YnRyYWN0ID0gZnVuY3Rpb24ob3RoZXIpIHsK
LSAgICByZXR1cm4gdGhpcy5hZGQob3RoZXIubmVnYXRlKCkpOwotICB9OwotICAvKioKLSAgICog
UmV0dXJucyB0aGUgcHJvZHVjdCBvZiB0aGlzIGFuZCB0aGUgZ2l2ZW4gbG9uZy4KLSAgICogQHBh
cmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBtdWx0aXBseSB3aXRoIHRoaXMuCi0g
ICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIHByb2R1Y3Qgb2YgdGhpcyBhbmQgdGhl
IG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLm11bHRpcGx5ID0gZnVu
Y3Rpb24ob3RoZXIpIHsKLSAgICBpZiAodGhpcy5pc1plcm8oKSkgewotICAgICAgcmV0dXJuIGdv
b2cubWF0aC5Mb25nLlpFUk87Ci0gICAgfSBlbHNlIGlmIChvdGhlci5pc1plcm8oKSkgewotICAg
ICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgfQotICAgIGlmICh0aGlzLmVxdWFs
cyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICByZXR1cm4gb3RoZXIuaXNPZGQo
KSA/IGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSA6IGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAg
fSBlbHNlIGlmIChvdGhlci5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAg
ICAgcmV0dXJuIHRoaXMuaXNPZGQoKSA/IGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSA6IGdvb2cu
bWF0aC5Mb25nLlpFUk87Ci0gICAgfQotICAgIGlmICh0aGlzLmlzTmVnYXRpdmUoKSkgewotICAg
ICAgaWYgKG90aGVyLmlzTmVnYXRpdmUoKSkgewotICAgICAgICByZXR1cm4gdGhpcy5uZWdhdGUo
KS5tdWx0aXBseShvdGhlci5uZWdhdGUoKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1
cm4gdGhpcy5uZWdhdGUoKS5tdWx0aXBseShvdGhlcikubmVnYXRlKCk7Ci0gICAgICB9Ci0gICAg
fSBlbHNlIGlmIChvdGhlci5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIHJldHVybiB0aGlzLm11bHRp
cGx5KG90aGVyLm5lZ2F0ZSgpKS5uZWdhdGUoKTsKLSAgICB9Ci0gICAgLy8gSWYgYm90aCBsb25n
cyBhcmUgc21hbGwsIHVzZSBmbG9hdCBtdWx0aXBsaWNhdGlvbgotICAgIGlmICh0aGlzLmxlc3NU
aGFuKGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfKSAmJgotICAgICAgICBvdGhlci5sZXNzVGhh
bihnb29nLm1hdGguTG9uZy5UV09fUFdSXzI0XykpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGgu
TG9uZy5mcm9tTnVtYmVyKHRoaXMudG9OdW1iZXIoKSAqIG90aGVyLnRvTnVtYmVyKCkpOwotICAg
IH0KLSAgICAvLyBEaXZpZGUgZWFjaCBsb25nIGludG8gNCBjaHVua3Mgb2YgMTYgYml0cywgYW5k
IHRoZW4gYWRkIHVwIDR4NCBwcm9kdWN0cy4KLSAgICAvLyBXZSBjYW4gc2tpcCBwcm9kdWN0cyB0
aGF0IHdvdWxkIG92ZXJmbG93LgotICAgIHZhciBhNDggPSB0aGlzLmhpZ2hfID4+PiAxNjsKLSAg
ICB2YXIgYTMyID0gdGhpcy5oaWdoXyAmIDB4RkZGRjsKLSAgICB2YXIgYTE2ID0gdGhpcy5sb3df
ID4+PiAxNjsKLSAgICB2YXIgYTAwID0gdGhpcy5sb3dfICYgMHhGRkZGOwotICAgIHZhciBiNDgg
PSBvdGhlci5oaWdoXyA+Pj4gMTY7Ci0gICAgdmFyIGIzMiA9IG90aGVyLmhpZ2hfICYgMHhGRkZG
OwotICAgIHZhciBiMTYgPSBvdGhlci5sb3dfID4+PiAxNjsKLSAgICB2YXIgYjAwID0gb3RoZXIu
bG93XyAmIDB4RkZGRjsKLSAgICB2YXIgYzQ4ID0gMCwgYzMyID0gMCwgYzE2ID0gMCwgYzAwID0g
MDsKLSAgICBjMDAgKz0gYTAwICogYjAwOwotICAgIGMxNiArPSBjMDAgPj4+IDE2OwotICAgIGMw
MCAmPSAweEZGRkY7Ci0gICAgYzE2ICs9IGExNiAqIGIwMDsKLSAgICBjMzIgKz0gYzE2ID4+PiAx
NjsKLSAgICBjMTYgJj0gMHhGRkZGOwotICAgIGMxNiArPSBhMDAgKiBiMTY7Ci0gICAgYzMyICs9
IGMxNiA+Pj4gMTY7Ci0gICAgYzE2ICY9IDB4RkZGRjsKLSAgICBjMzIgKz0gYTMyICogYjAwOwot
ICAgIGM0OCArPSBjMzIgPj4+IDE2OwotICAgIGMzMiAmPSAweEZGRkY7Ci0gICAgYzMyICs9IGEx
NiAqIGIxNjsKLSAgICBjNDggKz0gYzMyID4+PiAxNjsKLSAgICBjMzIgJj0gMHhGRkZGOwotICAg
IGMzMiArPSBhMDAgKiBiMzI7Ci0gICAgYzQ4ICs9IGMzMiA+Pj4gMTY7Ci0gICAgYzMyICY9IDB4
RkZGRjsKLSAgICBjNDggKz0gYTQ4ICogYjAwICsgYTMyICogYjE2ICsgYTE2ICogYjMyICsgYTAw
ICogYjQ4OwotICAgIGM0OCAmPSAweEZGRkY7Ci0gICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZy
b21CaXRzKChjMTYgPDwgMTYpIHwgYzAwLCAoYzQ4IDw8IDE2KSB8IGMzMik7Ci0gIH07Ci0gIC8q
KgotICAgKiBSZXR1cm5zIHRoaXMgTG9uZyBkaXZpZGVkIGJ5IHRoZSBnaXZlbiBvbmUuCi0gICAq
IEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgYnkgd2hpY2ggdG8gZGl2aWRlLgot
ICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoaXMgTG9uZyBkaXZpZGVkIGJ5IHRoZSBn
aXZlbiBvbmUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZGl2ID0gZnVuY3Rp
b24ob3RoZXIpIHsKLSAgICBpZiAob3RoZXIuaXNaZXJvKCkpIHsKLSAgICAgIHRocm93IEVycm9y
KCdkaXZpc2lvbiBieSB6ZXJvJyk7Ci0gICAgfSBlbHNlIGlmICh0aGlzLmlzWmVybygpKSB7Ci0g
ICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0gICAgaWYgKHRoaXMuZXF1
YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIGlmIChvdGhlci5lcXVhbHMo
Z29vZy5tYXRoLkxvbmcuT05FKSB8fAotICAgICAgICAgIG90aGVyLmVxdWFscyhnb29nLm1hdGgu
TG9uZy5ORUdfT05FKSkgewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVF
OyAgLy8gcmVjYWxsIHRoYXQgLU1JTl9WQUxVRSA9PSBNSU5fVkFMVUUKLSAgICAgIH0gZWxzZSBp
ZiAob3RoZXIuZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgICAgcmV0
dXJuIGdvb2cubWF0aC5Mb25nLk9ORTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEF0IHRo
aXMgcG9pbnQsIHdlIGhhdmUgfG90aGVyfCA+PSAyLCBzbyB8dGhpcy9vdGhlcnwgPCB8TUlOX1ZB
TFVFfC4KLSAgICAgICAgdmFyIGhhbGZUaGlzID0gdGhpcy5zaGlmdFJpZ2h0KDEpOwotICAgICAg
ICB2YXIgYXBwcm94ID0gaGFsZlRoaXMuZGl2KG90aGVyKS5zaGlmdExlZnQoMSk7Ci0gICAgICAg
IGlmIChhcHByb3guZXF1YWxzKGdvb2cubWF0aC5Mb25nLlpFUk8pKSB7Ci0gICAgICAgICAgcmV0
dXJuIG90aGVyLmlzTmVnYXRpdmUoKSA/IGdvb2cubWF0aC5Mb25nLk9ORSA6IGdvb2cubWF0aC5M
b25nLk5FR19PTkU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdmFyIHJlbSA9IHRoaXMu
c3VidHJhY3Qob3RoZXIubXVsdGlwbHkoYXBwcm94KSk7Ci0gICAgICAgICAgdmFyIHJlc3VsdCA9
IGFwcHJveC5hZGQocmVtLmRpdihvdGhlcikpOwotICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgIH0KLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGgu
TG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAg
ICB9Ci0gICAgaWYgKHRoaXMuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICBpZiAob3RoZXIuaXNOZWdh
dGl2ZSgpKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZSgpLmRpdihvdGhlci5uZWdhdGUo
KSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gdGhpcy5uZWdhdGUoKS5kaXYob3Ro
ZXIpLm5lZ2F0ZSgpOwotICAgICAgfQotICAgIH0gZWxzZSBpZiAob3RoZXIuaXNOZWdhdGl2ZSgp
KSB7Ci0gICAgICByZXR1cm4gdGhpcy5kaXYob3RoZXIubmVnYXRlKCkpLm5lZ2F0ZSgpOwotICAg
IH0KLSAgICAvLyBSZXBlYXQgdGhlIGZvbGxvd2luZyB1bnRpbCB0aGUgcmVtYWluZGVyIGlzIGxl
c3MgdGhhbiBvdGhlcjogIGZpbmQgYQotICAgIC8vIGZsb2F0aW5nLXBvaW50IHRoYXQgYXBwcm94
aW1hdGVzIHJlbWFpbmRlciAvIG90aGVyICpmcm9tIGJlbG93KiwgYWRkIHRoaXMKLSAgICAvLyBp
bnRvIHRoZSByZXN1bHQsIGFuZCBzdWJ0cmFjdCBpdCBmcm9tIHRoZSByZW1haW5kZXIuICBJdCBp
cyBjcml0aWNhbCB0aGF0Ci0gICAgLy8gdGhlIGFwcHJveGltYXRlIHZhbHVlIGlzIGxlc3MgdGhh
biBvciBlcXVhbCB0byB0aGUgcmVhbCB2YWx1ZSBzbyB0aGF0IHRoZQotICAgIC8vIHJlbWFpbmRl
ciBuZXZlciBiZWNvbWVzIG5lZ2F0aXZlLgotICAgIHZhciByZXMgPSBnb29nLm1hdGguTG9uZy5a
RVJPOwotICAgIHZhciByZW0gPSB0aGlzOwotICAgIHdoaWxlIChyZW0uZ3JlYXRlclRoYW5PckVx
dWFsKG90aGVyKSkgewotICAgICAgLy8gQXBwcm94aW1hdGUgdGhlIHJlc3VsdCBvZiBkaXZpc2lv
bi4gVGhpcyBtYXkgYmUgYSBsaXR0bGUgZ3JlYXRlciBvcgotICAgICAgLy8gc21hbGxlciB0aGFu
IHRoZSBhY3R1YWwgdmFsdWUuCi0gICAgICB2YXIgYXBwcm94ID0gTWF0aC5tYXgoMSwgTWF0aC5m
bG9vcihyZW0udG9OdW1iZXIoKSAvIG90aGVyLnRvTnVtYmVyKCkpKTsKLSAgICAgIC8vIFdlIHdp
bGwgdHdlYWsgdGhlIGFwcHJveGltYXRlIHJlc3VsdCBieSBjaGFuZ2luZyBpdCBpbiB0aGUgNDgt
dGggZGlnaXQgb3IKLSAgICAgIC8vIHRoZSBzbWFsbGVzdCBub24tZnJhY3Rpb25hbCBkaWdpdCwg
d2hpY2hldmVyIGlzIGxhcmdlci4KLSAgICAgIHZhciBsb2cyID0gTWF0aC5jZWlsKE1hdGgubG9n
KGFwcHJveCkgLyBNYXRoLkxOMik7Ci0gICAgICB2YXIgZGVsdGEgPSAobG9nMiA8PSA0OCkgPyAx
IDogTWF0aC5wb3coMiwgbG9nMiAtIDQ4KTsKLSAgICAgIC8vIERlY3JlYXNlIHRoZSBhcHByb3hp
bWF0aW9uIHVudGlsIGl0IGlzIHNtYWxsZXIgdGhhbiB0aGUgcmVtYWluZGVyLiAgTm90ZQotICAg
ICAgLy8gdGhhdCBpZiBpdCBpcyB0b28gbGFyZ2UsIHRoZSBwcm9kdWN0IG92ZXJmbG93cyBhbmQg
aXMgbmVnYXRpdmUuCi0gICAgICB2YXIgYXBwcm94UmVzID0gZ29vZy5tYXRoLkxvbmcuZnJvbU51
bWJlcihhcHByb3gpOwotICAgICAgdmFyIGFwcHJveFJlbSA9IGFwcHJveFJlcy5tdWx0aXBseShv
dGhlcik7Ci0gICAgICB3aGlsZSAoYXBwcm94UmVtLmlzTmVnYXRpdmUoKSB8fCBhcHByb3hSZW0u
Z3JlYXRlclRoYW4ocmVtKSkgewotICAgICAgICBhcHByb3ggLT0gZGVsdGE7Ci0gICAgICAgIGFw
cHJveFJlcyA9IGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIoYXBwcm94KTsKLSAgICAgICAgYXBw
cm94UmVtID0gYXBwcm94UmVzLm11bHRpcGx5KG90aGVyKTsKLSAgICAgIH0KLSAgICAgIC8vIFdl
IGtub3cgdGhlIGFuc3dlciBjYW4ndCBiZSB6ZXJvLi4uIGFuZCBhY3R1YWxseSwgemVybyB3b3Vs
ZCBjYXVzZQotICAgICAgLy8gaW5maW5pdGUgcmVjdXJzaW9uIHNpbmNlIHdlIHdvdWxkIG1ha2Ug
bm8gcHJvZ3Jlc3MuCi0gICAgICBpZiAoYXBwcm94UmVzLmlzWmVybygpKSB7Ci0gICAgICAgIGFw
cHJveFJlcyA9IGdvb2cubWF0aC5Mb25nLk9ORTsKLSAgICAgIH0KLSAgICAgIHJlcyA9IHJlcy5h
ZGQoYXBwcm94UmVzKTsKLSAgICAgIHJlbSA9IHJlbS5zdWJ0cmFjdChhcHByb3hSZW0pOwotICAg
IH0KLSAgICByZXR1cm4gcmVzOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGlzIExvbmcg
bW9kdWxvIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVy
IExvbmcgYnkgd2hpY2ggdG8gbW9kLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRo
aXMgTG9uZyBtb2R1bG8gdGhlIGdpdmVuIG9uZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnBy
b3RvdHlwZS5tb2R1bG8gPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLnN1YnRy
YWN0KHRoaXMuZGl2KG90aGVyKS5tdWx0aXBseShvdGhlcikpOwotICB9OwotICAvKiogQHJldHVy
biB7IWdvb2cubWF0aC5Mb25nfSBUaGUgYml0d2lzZS1OT1Qgb2YgdGhpcyB2YWx1ZS4gKi8KLSAg
Z29vZy5tYXRoLkxvbmcucHJvdG90eXBlLm5vdCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBn
b29nLm1hdGguTG9uZy5mcm9tQml0cyh+dGhpcy5sb3dfLCB+dGhpcy5oaWdoXyk7Ci0gIH07Ci0g
IC8qKgotICAgKiBSZXR1cm5zIHRoZSBiaXR3aXNlLUFORCBvZiB0aGlzIExvbmcgYW5kIHRoZSBn
aXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIFRoZSBMb25nIHdp
dGggd2hpY2ggdG8gQU5ELgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBiaXR3
aXNlLUFORCBvZiB0aGlzIGFuZCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5w
cm90b3R5cGUuYW5kID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gZ29vZy5tYXRoLkxv
bmcuZnJvbUJpdHModGhpcy5sb3dfICYgb3RoZXIubG93XywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5oaWdoXyAmIG90aGVyLmhpZ2hfKTsKLSAgfTsKLSAgLyoqCi0g
ICAqIFJldHVybnMgdGhlIGJpdHdpc2UtT1Igb2YgdGhpcyBMb25nIGFuZCB0aGUgZ2l2ZW4gb25l
LgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBUaGUgTG9uZyB3aXRoIHdoaWNo
IHRvIE9SLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBiaXR3aXNlLU9SIG9m
IHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5v
ciA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRz
KHRoaXMubG93XyB8IG90aGVyLmxvd18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuaGlnaF8gfCBvdGhlci5oaWdoXyk7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5z
IHRoZSBiaXR3aXNlLVhPUiBvZiB0aGlzIExvbmcgYW5kIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBw
YXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIFRoZSBMb25nIHdpdGggd2hpY2ggdG8gWE9SLgot
ICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBiaXR3aXNlLVhPUiBvZiB0aGlzIGFu
ZCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUueG9yID0gZnVu
Y3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHModGhpcy5s
b3dfIF4gb3RoZXIubG93XywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy5oaWdoXyBeIG90aGVyLmhpZ2hfKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBM
b25nIHdpdGggYml0cyBzaGlmdGVkIHRvIHRoZSBsZWZ0IGJ5IHRoZSBnaXZlbiBhbW91bnQuCi0g
ICAqIEBwYXJhbSB7bnVtYmVyfSBudW1CaXRzIFRoZSBudW1iZXIgb2YgYml0cyBieSB3aGljaCB0
byBzaGlmdC4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGlzIHNoaWZ0ZWQgdG8g
dGhlIGxlZnQgYnkgdGhlIGdpdmVuIGFtb3VudC4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnBy
b3RvdHlwZS5zaGlmdExlZnQgPSBmdW5jdGlvbihudW1CaXRzKSB7Ci0gICAgbnVtQml0cyAmPSA2
MzsKLSAgICBpZiAobnVtQml0cyA9PSAwKSB7Ci0gICAgICByZXR1cm4gdGhpczsKLSAgICB9IGVs
c2UgewotICAgICAgdmFyIGxvdyA9IHRoaXMubG93XzsKLSAgICAgIGlmIChudW1CaXRzIDwgMzIp
IHsKLSAgICAgICAgdmFyIGhpZ2ggPSB0aGlzLmhpZ2hfOwotICAgICAgICByZXR1cm4gZ29vZy5t
YXRoLkxvbmcuZnJvbUJpdHMoCi0gICAgICAgICAgICBsb3cgPDwgbnVtQml0cywKLSAgICAgICAg
ICAgIChoaWdoIDw8IG51bUJpdHMpIHwgKGxvdyA+Pj4gKDMyIC0gbnVtQml0cykpKTsKLSAgICAg
IH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygwLCBsb3cg
PDwgKG51bUJpdHMgLSAzMikpOwotICAgICAgfQotICAgIH0KLSAgfTsKLSAgLyoqCi0gICAqIFJl
dHVybnMgdGhpcyBMb25nIHdpdGggYml0cyBzaGlmdGVkIHRvIHRoZSByaWdodCBieSB0aGUgZ2l2
ZW4gYW1vdW50LgotICAgKiBAcGFyYW0ge251bWJlcn0gbnVtQml0cyBUaGUgbnVtYmVyIG9mIGJp
dHMgYnkgd2hpY2ggdG8gc2hpZnQuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhp
cyBzaGlmdGVkIHRvIHRoZSByaWdodCBieSB0aGUgZ2l2ZW4gYW1vdW50LgotICAgKi8KLSAgZ29v
Zy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0UmlnaHQgPSBmdW5jdGlvbihudW1CaXRzKSB7Ci0g
ICAgbnVtQml0cyAmPSA2MzsKLSAgICBpZiAobnVtQml0cyA9PSAwKSB7Ci0gICAgICByZXR1cm4g
dGhpczsKLSAgICB9IGVsc2UgewotICAgICAgdmFyIGhpZ2ggPSB0aGlzLmhpZ2hfOwotICAgICAg
aWYgKG51bUJpdHMgPCAzMikgewotICAgICAgICB2YXIgbG93ID0gdGhpcy5sb3dfOwotICAgICAg
ICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoCi0gICAgICAgICAgICAobG93ID4+PiBu
dW1CaXRzKSB8IChoaWdoIDw8ICgzMiAtIG51bUJpdHMpKSwKLSAgICAgICAgICAgIGhpZ2ggPj4g
bnVtQml0cyk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcu
ZnJvbUJpdHMoCi0gICAgICAgICAgICBoaWdoID4+IChudW1CaXRzIC0gMzIpLAotICAgICAgICAg
ICAgaGlnaCA+PSAwID8gMCA6IC0xKTsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci0gIC8qKgotICAg
KiBSZXR1cm5zIHRoaXMgTG9uZyB3aXRoIGJpdHMgc2hpZnRlZCB0byB0aGUgcmlnaHQgYnkgdGhl
IGdpdmVuIGFtb3VudCwgd2l0aAotICAgKiB0aGUgbmV3IHRvcCBiaXRzIG1hdGNoaW5nIHRoZSBj
dXJyZW50IHNpZ24gYml0LgotICAgKiBAcGFyYW0ge251bWJlcn0gbnVtQml0cyBUaGUgbnVtYmVy
IG9mIGJpdHMgYnkgd2hpY2ggdG8gc2hpZnQuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9u
Z30gVGhpcyBzaGlmdGVkIHRvIHRoZSByaWdodCBieSB0aGUgZ2l2ZW4gYW1vdW50LCB3aXRoCi0g
ICAqICAgICB6ZXJvcyBwbGFjZWQgaW50byB0aGUgbmV3IGxlYWRpbmcgYml0cy4KLSAgICovCi0g
IGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5zaGlmdFJpZ2h0VW5zaWduZWQgPSBmdW5jdGlvbihu
dW1CaXRzKSB7Ci0gICAgbnVtQml0cyAmPSA2MzsKLSAgICBpZiAobnVtQml0cyA9PSAwKSB7Ci0g
ICAgICByZXR1cm4gdGhpczsKLSAgICB9IGVsc2UgewotICAgICAgdmFyIGhpZ2ggPSB0aGlzLmhp
Z2hfOwotICAgICAgaWYgKG51bUJpdHMgPCAzMikgewotICAgICAgICB2YXIgbG93ID0gdGhpcy5s
b3dfOwotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoCi0gICAgICAgICAg
ICAobG93ID4+PiBudW1CaXRzKSB8IChoaWdoIDw8ICgzMiAtIG51bUJpdHMpKSwKLSAgICAgICAg
ICAgIGhpZ2ggPj4+IG51bUJpdHMpOwotICAgICAgfSBlbHNlIGlmIChudW1CaXRzID09IDMyKSB7
Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cyhoaWdoLCAwKTsKLSAgICAg
IH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cyhoaWdoID4+
PiAobnVtQml0cyAtIDMyKSwgMCk7Ci0gICAgICB9Ci0gICAgfQotICB9OwotICAvLz09PT09PT0g
YmVnaW4ganNibiA9PT09PT09Ci0gIHZhciBuYXZpZ2F0b3IgPSB7IGFwcE5hbWU6ICdNb2Rlcm4g
QnJvd3NlcicgfTsgLy8gcG9seWZpbGwgYSBsaXR0bGUKLSAgLy8gQ29weXJpZ2h0IChjKSAyMDA1
ICBUb20gV3UKLSAgLy8gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAgLy8gaHR0cDovL3d3dy1jcy1z
dHVkZW50cy5zdGFuZm9yZC5lZHUvfnRqdy9qc2JuLwotICAvKgotICAgKiBDb3B5cmlnaHQgKGMp
IDIwMDMtMjAwNSAgVG9tIFd1Ci0gICAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gICAqCi0gICAq
IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy
c29uIG9idGFpbmluZwotICAgKiBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSAgICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4g
dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotICAgKiB3aXRob3V0
IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp
c2gsCi0gICAqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgU29mdHdhcmUsIGFuZCB0bwotICAgKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0
d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSAgICogdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgotICAgKgotICAgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg
dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQotICAgKiBpbmNsdWRlZCBpbiBhbGwgY29w
aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLSAgICoKLSAgICog
VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUy1JUyIgQU5EIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsIAotICAgKiBFWFBSRVNTLCBJTVBMSUVEIE9SIE9USEVSV0lTRSwgSU5DTFVESU5H
IFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIAotICAgKiBXQVJSQU5UWSBPRiBNRVJDSEFOVEFCSUxJ
VFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICAKLSAgICoKLSAgICogSU4g
Tk8gRVZFTlQgU0hBTEwgVE9NIFdVIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIElOQ0lERU5U
QUwsCi0gICAqIElORElSRUNUIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPRiBBTlkgS0lORCwg
T1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUgotICAgKiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVT
RSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIE9SIE5PVCBBRFZJU0VEIE9GCi0gICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBEQU1BR0UsIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgQVJJ
U0lORyBPVVQKLSAgICogT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9S
TUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KLSAgICoKLSAgICogSW4gYWRkaXRpb24sIHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9uIGFwcGxpZXM6Ci0gICAqCi0gICAqIEFsbCByZWRpc3RyaWJ1dGlvbnMg
bXVzdCByZXRhaW4gYW4gaW50YWN0IGNvcHkgb2YgdGhpcyBjb3B5cmlnaHQgbm90aWNlCi0gICAq
IGFuZCBkaXNjbGFpbWVyLgotICAgKi8KLSAgLy8gQmFzaWMgSmF2YVNjcmlwdCBCTiBsaWJyYXJ5
IC0gc3Vic2V0IHVzZWZ1bCBmb3IgUlNBIGVuY3J5cHRpb24uCi0gIC8vIEJpdHMgcGVyIGRpZ2l0
Ci0gIHZhciBkYml0czsKLSAgLy8gSmF2YVNjcmlwdCBlbmdpbmUgYW5hbHlzaXMKLSAgdmFyIGNh
bmFyeSA9IDB4ZGVhZGJlZWZjYWZlOwotICB2YXIgal9sbSA9ICgoY2FuYXJ5JjB4ZmZmZmZmKT09
MHhlZmNhZmUpOwotICAvLyAocHVibGljKSBDb25zdHJ1Y3RvcgotICBmdW5jdGlvbiBCaWdJbnRl
Z2VyKGEsYixjKSB7Ci0gICAgaWYoYSAhPSBudWxsKQotICAgICAgaWYoIm51bWJlciIgPT0gdHlw
ZW9mIGEpIHRoaXMuZnJvbU51bWJlcihhLGIsYyk7Ci0gICAgICBlbHNlIGlmKGIgPT0gbnVsbCAm
JiAic3RyaW5nIiAhPSB0eXBlb2YgYSkgdGhpcy5mcm9tU3RyaW5nKGEsMjU2KTsKLSAgICAgIGVs
c2UgdGhpcy5mcm9tU3RyaW5nKGEsYik7Ci0gIH0KLSAgLy8gcmV0dXJuIG5ldywgdW5zZXQgQmln
SW50ZWdlcgotICBmdW5jdGlvbiBuYmkoKSB7IHJldHVybiBuZXcgQmlnSW50ZWdlcihudWxsKTsg
fQotICAvLyBhbTogQ29tcHV0ZSB3X2ogKz0gKHgqdGhpc19pKSwgcHJvcGFnYXRlIGNhcnJpZXMs
Ci0gIC8vIGMgaXMgaW5pdGlhbCBjYXJyeSwgcmV0dXJucyBmaW5hbCBjYXJyeS4KLSAgLy8gYyA8
IDMqZHZhbHVlLCB4IDwgMipkdmFsdWUsIHRoaXNfaSA8IGR2YWx1ZQotICAvLyBXZSBuZWVkIHRv
IHNlbGVjdCB0aGUgZmFzdGVzdCBvbmUgdGhhdCB3b3JrcyBpbiB0aGlzIGVudmlyb25tZW50Lgot
ICAvLyBhbTE6IHVzZSBhIHNpbmdsZSBtdWx0IGFuZCBkaXZpZGUgdG8gZ2V0IHRoZSBoaWdoIGJp
dHMsCi0gIC8vIG1heCBkaWdpdCBiaXRzIHNob3VsZCBiZSAyNiBiZWNhdXNlCi0gIC8vIG1heCBp
bnRlcm5hbCB2YWx1ZSA9IDIqZHZhbHVlXjItMipkdmFsdWUgKDwgMl41MykKLSAgZnVuY3Rpb24g
YW0xKGkseCx3LGosYyxuKSB7Ci0gICAgd2hpbGUoLS1uID49IDApIHsKLSAgICAgIHZhciB2ID0g
eCp0aGlzW2krK10rd1tqXStjOwotICAgICAgYyA9IE1hdGguZmxvb3Iodi8weDQwMDAwMDApOwot
ICAgICAgd1tqKytdID0gdiYweDNmZmZmZmY7Ci0gICAgfQotICAgIHJldHVybiBjOwotICB9Ci0g
IC8vIGFtMiBhdm9pZHMgYSBiaWcgbXVsdC1hbmQtZXh0cmFjdCBjb21wbGV0ZWx5LgotICAvLyBN
YXggZGlnaXQgYml0cyBzaG91bGQgYmUgPD0gMzAgYmVjYXVzZSB3ZSBkbyBiaXR3aXNlIG9wcwot
ICAvLyBvbiB2YWx1ZXMgdXAgdG8gMipoZHZhbHVlXjItaGR2YWx1ZS0xICg8IDJeMzEpCi0gIGZ1
bmN0aW9uIGFtMihpLHgsdyxqLGMsbikgewotICAgIHZhciB4bCA9IHgmMHg3ZmZmLCB4aCA9IHg+
PjE1OwotICAgIHdoaWxlKC0tbiA+PSAwKSB7Ci0gICAgICB2YXIgbCA9IHRoaXNbaV0mMHg3ZmZm
OwotICAgICAgdmFyIGggPSB0aGlzW2krK10+PjE1OwotICAgICAgdmFyIG0gPSB4aCpsK2gqeGw7
Ci0gICAgICBsID0geGwqbCsoKG0mMHg3ZmZmKTw8MTUpK3dbal0rKGMmMHgzZmZmZmZmZik7Ci0g
ICAgICBjID0gKGw+Pj4zMCkrKG0+Pj4xNSkreGgqaCsoYz4+PjMwKTsKLSAgICAgIHdbaisrXSA9
IGwmMHgzZmZmZmZmZjsKLSAgICB9Ci0gICAgcmV0dXJuIGM7Ci0gIH0KLSAgLy8gQWx0ZXJuYXRl
bHksIHNldCBtYXggZGlnaXQgYml0cyB0byAyOCBzaW5jZSBzb21lCi0gIC8vIGJyb3dzZXJzIHNs
b3cgZG93biB3aGVuIGRlYWxpbmcgd2l0aCAzMi1iaXQgbnVtYmVycy4KLSAgZnVuY3Rpb24gYW0z
KGkseCx3LGosYyxuKSB7Ci0gICAgdmFyIHhsID0geCYweDNmZmYsIHhoID0geD4+MTQ7Ci0gICAg
d2hpbGUoLS1uID49IDApIHsKLSAgICAgIHZhciBsID0gdGhpc1tpXSYweDNmZmY7Ci0gICAgICB2
YXIgaCA9IHRoaXNbaSsrXT4+MTQ7Ci0gICAgICB2YXIgbSA9IHhoKmwraCp4bDsKLSAgICAgIGwg
PSB4bCpsKygobSYweDNmZmYpPDwxNCkrd1tqXStjOwotICAgICAgYyA9IChsPj4yOCkrKG0+PjE0
KSt4aCpoOwotICAgICAgd1tqKytdID0gbCYweGZmZmZmZmY7Ci0gICAgfQotICAgIHJldHVybiBj
OwotICB9Ci0gIGlmKGpfbG0gJiYgKG5hdmlnYXRvci5hcHBOYW1lID09ICJNaWNyb3NvZnQgSW50
ZXJuZXQgRXhwbG9yZXIiKSkgewotICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmFtID0gYW0yOwot
ICAgIGRiaXRzID0gMzA7Ci0gIH0KLSAgZWxzZSBpZihqX2xtICYmIChuYXZpZ2F0b3IuYXBwTmFt
ZSAhPSAiTmV0c2NhcGUiKSkgewotICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmFtID0gYW0xOwot
ICAgIGRiaXRzID0gMjY7Ci0gIH0KLSAgZWxzZSB7IC8vIE1vemlsbGEvTmV0c2NhcGUgc2VlbXMg
dG8gcHJlZmVyIGFtMwotICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmFtID0gYW0zOwotICAgIGRi
aXRzID0gMjg7Ci0gIH0KLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuREIgPSBkYml0czsKLSAgQmln
SW50ZWdlci5wcm90b3R5cGUuRE0gPSAoKDE8PGRiaXRzKS0xKTsKLSAgQmlnSW50ZWdlci5wcm90
b3R5cGUuRFYgPSAoMTw8ZGJpdHMpOwotICB2YXIgQklfRlAgPSA1MjsKLSAgQmlnSW50ZWdlci5w
cm90b3R5cGUuRlYgPSBNYXRoLnBvdygyLEJJX0ZQKTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUu
RjEgPSBCSV9GUC1kYml0czsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuRjIgPSAyKmRiaXRzLUJJ
X0ZQOwotICAvLyBEaWdpdCBjb252ZXJzaW9ucwotICB2YXIgQklfUk0gPSAiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IjsKLSAgdmFyIEJJX1JDID0gbmV3IEFycmF5KCk7Ci0g
IHZhciBycix2djsKLSAgcnIgPSAiMCIuY2hhckNvZGVBdCgwKTsKLSAgZm9yKHZ2ID0gMDsgdnYg
PD0gOTsgKyt2dikgQklfUkNbcnIrK10gPSB2djsKLSAgcnIgPSAiYSIuY2hhckNvZGVBdCgwKTsK
LSAgZm9yKHZ2ID0gMTA7IHZ2IDwgMzY7ICsrdnYpIEJJX1JDW3JyKytdID0gdnY7Ci0gIHJyID0g
IkEiLmNoYXJDb2RlQXQoMCk7Ci0gIGZvcih2diA9IDEwOyB2diA8IDM2OyArK3Z2KSBCSV9SQ1ty
cisrXSA9IHZ2OwotICBmdW5jdGlvbiBpbnQyY2hhcihuKSB7IHJldHVybiBCSV9STS5jaGFyQXQo
bik7IH0KLSAgZnVuY3Rpb24gaW50QXQocyxpKSB7Ci0gICAgdmFyIGMgPSBCSV9SQ1tzLmNoYXJD
b2RlQXQoaSldOwotICAgIHJldHVybiAoYz09bnVsbCk/LTE6YzsKLSAgfQotICAvLyAocHJvdGVj
dGVkKSBjb3B5IHRoaXMgdG8gcgotICBmdW5jdGlvbiBibnBDb3B5VG8ocikgewotICAgIGZvcih2
YXIgaSA9IHRoaXMudC0xOyBpID49IDA7IC0taSkgcltpXSA9IHRoaXNbaV07Ci0gICAgci50ID0g
dGhpcy50OwotICAgIHIucyA9IHRoaXMuczsKLSAgfQotICAvLyAocHJvdGVjdGVkKSBzZXQgZnJv
bSBpbnRlZ2VyIHZhbHVlIHgsIC1EViA8PSB4IDwgRFYKLSAgZnVuY3Rpb24gYm5wRnJvbUludCh4
KSB7Ci0gICAgdGhpcy50ID0gMTsKLSAgICB0aGlzLnMgPSAoeDwwKT8tMTowOwotICAgIGlmKHgg
PiAwKSB0aGlzWzBdID0geDsKLSAgICBlbHNlIGlmKHggPCAtMSkgdGhpc1swXSA9IHgrRFY7Ci0g
ICAgZWxzZSB0aGlzLnQgPSAwOwotICB9Ci0gIC8vIHJldHVybiBiaWdpbnQgaW5pdGlhbGl6ZWQg
dG8gdmFsdWUKLSAgZnVuY3Rpb24gbmJ2KGkpIHsgdmFyIHIgPSBuYmkoKTsgci5mcm9tSW50KGkp
OyByZXR1cm4gcjsgfQotICAvLyAocHJvdGVjdGVkKSBzZXQgZnJvbSBzdHJpbmcgYW5kIHJhZGl4
Ci0gIGZ1bmN0aW9uIGJucEZyb21TdHJpbmcocyxiKSB7Ci0gICAgdmFyIGs7Ci0gICAgaWYoYiA9
PSAxNikgayA9IDQ7Ci0gICAgZWxzZSBpZihiID09IDgpIGsgPSAzOwotICAgIGVsc2UgaWYoYiA9
PSAyNTYpIGsgPSA4OyAvLyBieXRlIGFycmF5Ci0gICAgZWxzZSBpZihiID09IDIpIGsgPSAxOwot
ICAgIGVsc2UgaWYoYiA9PSAzMikgayA9IDU7Ci0gICAgZWxzZSBpZihiID09IDQpIGsgPSAyOwot
ICAgIGVsc2UgeyB0aGlzLmZyb21SYWRpeChzLGIpOyByZXR1cm47IH0KLSAgICB0aGlzLnQgPSAw
OwotICAgIHRoaXMucyA9IDA7Ci0gICAgdmFyIGkgPSBzLmxlbmd0aCwgbWkgPSBmYWxzZSwgc2gg
PSAwOwotICAgIHdoaWxlKC0taSA+PSAwKSB7Ci0gICAgICB2YXIgeCA9IChrPT04KT9zW2ldJjB4
ZmY6aW50QXQocyxpKTsKLSAgICAgIGlmKHggPCAwKSB7Ci0gICAgICAgIGlmKHMuY2hhckF0KGkp
ID09ICItIikgbWkgPSB0cnVlOwotICAgICAgICBjb250aW51ZTsKLSAgICAgIH0KLSAgICAgIG1p
ID0gZmFsc2U7Ci0gICAgICBpZihzaCA9PSAwKQotICAgICAgICB0aGlzW3RoaXMudCsrXSA9IHg7
Ci0gICAgICBlbHNlIGlmKHNoK2sgPiB0aGlzLkRCKSB7Ci0gICAgICAgIHRoaXNbdGhpcy50LTFd
IHw9ICh4JigoMTw8KHRoaXMuREItc2gpKS0xKSk8PHNoOwotICAgICAgICB0aGlzW3RoaXMudCsr
XSA9ICh4Pj4odGhpcy5EQi1zaCkpOwotICAgICAgfQotICAgICAgZWxzZQotICAgICAgICB0aGlz
W3RoaXMudC0xXSB8PSB4PDxzaDsKLSAgICAgIHNoICs9IGs7Ci0gICAgICBpZihzaCA+PSB0aGlz
LkRCKSBzaCAtPSB0aGlzLkRCOwotICAgIH0KLSAgICBpZihrID09IDggJiYgKHNbMF0mMHg4MCkg
IT0gMCkgewotICAgICAgdGhpcy5zID0gLTE7Ci0gICAgICBpZihzaCA+IDApIHRoaXNbdGhpcy50
LTFdIHw9ICgoMTw8KHRoaXMuREItc2gpKS0xKTw8c2g7Ci0gICAgfQotICAgIHRoaXMuY2xhbXAo
KTsKLSAgICBpZihtaSkgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHRoaXMsdGhpcyk7Ci0gIH0KLSAg
Ly8gKHByb3RlY3RlZCkgY2xhbXAgb2ZmIGV4Y2VzcyBoaWdoIHdvcmRzCi0gIGZ1bmN0aW9uIGJu
cENsYW1wKCkgewotICAgIHZhciBjID0gdGhpcy5zJnRoaXMuRE07Ci0gICAgd2hpbGUodGhpcy50
ID4gMCAmJiB0aGlzW3RoaXMudC0xXSA9PSBjKSAtLXRoaXMudDsKLSAgfQotICAvLyAocHVibGlj
KSByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIGluIGdpdmVuIHJhZGl4Ci0gIGZ1bmN0aW9u
IGJuVG9TdHJpbmcoYikgewotICAgIGlmKHRoaXMucyA8IDApIHJldHVybiAiLSIrdGhpcy5uZWdh
dGUoKS50b1N0cmluZyhiKTsKLSAgICB2YXIgazsKLSAgICBpZihiID09IDE2KSBrID0gNDsKLSAg
ICBlbHNlIGlmKGIgPT0gOCkgayA9IDM7Ci0gICAgZWxzZSBpZihiID09IDIpIGsgPSAxOwotICAg
IGVsc2UgaWYoYiA9PSAzMikgayA9IDU7Ci0gICAgZWxzZSBpZihiID09IDQpIGsgPSAyOwotICAg
IGVsc2UgcmV0dXJuIHRoaXMudG9SYWRpeChiKTsKLSAgICB2YXIga20gPSAoMTw8ayktMSwgZCwg
bSA9IGZhbHNlLCByID0gIiIsIGkgPSB0aGlzLnQ7Ci0gICAgdmFyIHAgPSB0aGlzLkRCLShpKnRo
aXMuREIpJWs7Ci0gICAgaWYoaS0tID4gMCkgewotICAgICAgaWYocCA8IHRoaXMuREIgJiYgKGQg
PSB0aGlzW2ldPj5wKSA+IDApIHsgbSA9IHRydWU7IHIgPSBpbnQyY2hhcihkKTsgfQotICAgICAg
d2hpbGUoaSA+PSAwKSB7Ci0gICAgICAgIGlmKHAgPCBrKSB7Ci0gICAgICAgICAgZCA9ICh0aGlz
W2ldJigoMTw8cCktMSkpPDwoay1wKTsKLSAgICAgICAgICBkIHw9IHRoaXNbLS1pXT4+KHArPXRo
aXMuREItayk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgZCA9ICh0aGlz
W2ldPj4ocC09aykpJmttOwotICAgICAgICAgIGlmKHAgPD0gMCkgeyBwICs9IHRoaXMuREI7IC0t
aTsgfQotICAgICAgICB9Ci0gICAgICAgIGlmKGQgPiAwKSBtID0gdHJ1ZTsKLSAgICAgICAgaWYo
bSkgciArPSBpbnQyY2hhcihkKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIG0/cjoiMCI7
Ci0gIH0KLSAgLy8gKHB1YmxpYykgLXRoaXMKLSAgZnVuY3Rpb24gYm5OZWdhdGUoKSB7IHZhciBy
ID0gbmJpKCk7IEJpZ0ludGVnZXIuWkVSTy5zdWJUbyh0aGlzLHIpOyByZXR1cm4gcjsgfQotICAv
LyAocHVibGljKSB8dGhpc3wKLSAgZnVuY3Rpb24gYm5BYnMoKSB7IHJldHVybiAodGhpcy5zPDAp
P3RoaXMubmVnYXRlKCk6dGhpczsgfQotICAvLyAocHVibGljKSByZXR1cm4gKyBpZiB0aGlzID4g
YSwgLSBpZiB0aGlzIDwgYSwgMCBpZiBlcXVhbAotICBmdW5jdGlvbiBibkNvbXBhcmVUbyhhKSB7
Ci0gICAgdmFyIHIgPSB0aGlzLnMtYS5zOwotICAgIGlmKHIgIT0gMCkgcmV0dXJuIHI7Ci0gICAg
dmFyIGkgPSB0aGlzLnQ7Ci0gICAgciA9IGktYS50OwotICAgIGlmKHIgIT0gMCkgcmV0dXJuICh0
aGlzLnM8MCk/LXI6cjsKLSAgICB3aGlsZSgtLWkgPj0gMCkgaWYoKHI9dGhpc1tpXS1hW2ldKSAh
PSAwKSByZXR1cm4gcjsKLSAgICByZXR1cm4gMDsKLSAgfQotICAvLyByZXR1cm5zIGJpdCBsZW5n
dGggb2YgdGhlIGludGVnZXIgeAotICBmdW5jdGlvbiBuYml0cyh4KSB7Ci0gICAgdmFyIHIgPSAx
LCB0OwotICAgIGlmKCh0PXg+Pj4xNikgIT0gMCkgeyB4ID0gdDsgciArPSAxNjsgfQotICAgIGlm
KCh0PXg+PjgpICE9IDApIHsgeCA9IHQ7IHIgKz0gODsgfQotICAgIGlmKCh0PXg+PjQpICE9IDAp
IHsgeCA9IHQ7IHIgKz0gNDsgfQotICAgIGlmKCh0PXg+PjIpICE9IDApIHsgeCA9IHQ7IHIgKz0g
MjsgfQotICAgIGlmKCh0PXg+PjEpICE9IDApIHsgeCA9IHQ7IHIgKz0gMTsgfQotICAgIHJldHVy
biByOwotICB9Ci0gIC8vIChwdWJsaWMpIHJldHVybiB0aGUgbnVtYmVyIG9mIGJpdHMgaW4gInRo
aXMiCi0gIGZ1bmN0aW9uIGJuQml0TGVuZ3RoKCkgewotICAgIGlmKHRoaXMudCA8PSAwKSByZXR1
cm4gMDsKLSAgICByZXR1cm4gdGhpcy5EQioodGhpcy50LTEpK25iaXRzKHRoaXNbdGhpcy50LTFd
Xih0aGlzLnMmdGhpcy5ETSkpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlzIDw8IG4q
REIKLSAgZnVuY3Rpb24gYm5wRExTaGlmdFRvKG4scikgewotICAgIHZhciBpOwotICAgIGZvcihp
ID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSByW2krbl0gPSB0aGlzW2ldOwotICAgIGZvcihpID0g
bi0xOyBpID49IDA7IC0taSkgcltpXSA9IDA7Ci0gICAgci50ID0gdGhpcy50K247Ci0gICAgci5z
ID0gdGhpcy5zOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlzID4+IG4qREIKLSAgZnVu
Y3Rpb24gYm5wRFJTaGlmdFRvKG4scikgewotICAgIGZvcih2YXIgaSA9IG47IGkgPCB0aGlzLnQ7
ICsraSkgcltpLW5dID0gdGhpc1tpXTsKLSAgICByLnQgPSBNYXRoLm1heCh0aGlzLnQtbiwwKTsK
LSAgICByLnMgPSB0aGlzLnM7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMgPDwgbgot
ICBmdW5jdGlvbiBibnBMU2hpZnRUbyhuLHIpIHsKLSAgICB2YXIgYnMgPSBuJXRoaXMuREI7Ci0g
ICAgdmFyIGNicyA9IHRoaXMuREItYnM7Ci0gICAgdmFyIGJtID0gKDE8PGNicyktMTsKLSAgICB2
YXIgZHMgPSBNYXRoLmZsb29yKG4vdGhpcy5EQiksIGMgPSAodGhpcy5zPDxicykmdGhpcy5ETSwg
aTsKLSAgICBmb3IoaSA9IHRoaXMudC0xOyBpID49IDA7IC0taSkgewotICAgICAgcltpK2RzKzFd
ID0gKHRoaXNbaV0+PmNicyl8YzsKLSAgICAgIGMgPSAodGhpc1tpXSZibSk8PGJzOwotICAgIH0K
LSAgICBmb3IoaSA9IGRzLTE7IGkgPj0gMDsgLS1pKSByW2ldID0gMDsKLSAgICByW2RzXSA9IGM7
Ci0gICAgci50ID0gdGhpcy50K2RzKzE7Ci0gICAgci5zID0gdGhpcy5zOwotICAgIHIuY2xhbXAo
KTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSByID0gdGhpcyA+PiBuCi0gIGZ1bmN0aW9uIGJucFJT
aGlmdFRvKG4scikgewotICAgIHIucyA9IHRoaXMuczsKLSAgICB2YXIgZHMgPSBNYXRoLmZsb29y
KG4vdGhpcy5EQik7Ci0gICAgaWYoZHMgPj0gdGhpcy50KSB7IHIudCA9IDA7IHJldHVybjsgfQot
ICAgIHZhciBicyA9IG4ldGhpcy5EQjsKLSAgICB2YXIgY2JzID0gdGhpcy5EQi1iczsKLSAgICB2
YXIgYm0gPSAoMTw8YnMpLTE7Ci0gICAgclswXSA9IHRoaXNbZHNdPj5iczsKLSAgICBmb3IodmFy
IGkgPSBkcysxOyBpIDwgdGhpcy50OyArK2kpIHsKLSAgICAgIHJbaS1kcy0xXSB8PSAodGhpc1tp
XSZibSk8PGNiczsKLSAgICAgIHJbaS1kc10gPSB0aGlzW2ldPj5iczsKLSAgICB9Ci0gICAgaWYo
YnMgPiAwKSByW3RoaXMudC1kcy0xXSB8PSAodGhpcy5zJmJtKTw8Y2JzOwotICAgIHIudCA9IHRo
aXMudC1kczsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMg
LSBhCi0gIGZ1bmN0aW9uIGJucFN1YlRvKGEscikgewotICAgIHZhciBpID0gMCwgYyA9IDAsIG0g
PSBNYXRoLm1pbihhLnQsdGhpcy50KTsKLSAgICB3aGlsZShpIDwgbSkgewotICAgICAgYyArPSB0
aGlzW2ldLWFbaV07Ci0gICAgICByW2krK10gPSBjJnRoaXMuRE07Ci0gICAgICBjID4+PSB0aGlz
LkRCOwotICAgIH0KLSAgICBpZihhLnQgPCB0aGlzLnQpIHsKLSAgICAgIGMgLT0gYS5zOwotICAg
ICAgd2hpbGUoaSA8IHRoaXMudCkgewotICAgICAgICBjICs9IHRoaXNbaV07Ci0gICAgICAgIHJb
aSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0gdGhpcy5EQjsKLSAgICAgIH0KLSAgICAg
IGMgKz0gdGhpcy5zOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgIGMgKz0gdGhpcy5zOwotICAg
ICAgd2hpbGUoaSA8IGEudCkgewotICAgICAgICBjIC09IGFbaV07Ci0gICAgICAgIHJbaSsrXSA9
IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0gdGhpcy5EQjsKLSAgICAgIH0KLSAgICAgIGMgLT0g
YS5zOwotICAgIH0KLSAgICByLnMgPSAoYzwwKT8tMTowOwotICAgIGlmKGMgPCAtMSkgcltpKytd
ID0gdGhpcy5EVitjOwotICAgIGVsc2UgaWYoYyA+IDApIHJbaSsrXSA9IGM7Ci0gICAgci50ID0g
aTsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMgKiBhLCBy
ICE9IHRoaXMsYSAoSEFDIDE0LjEyKQotICAvLyAidGhpcyIgc2hvdWxkIGJlIHRoZSBsYXJnZXIg
b25lIGlmIGFwcHJvcHJpYXRlLgotICBmdW5jdGlvbiBibnBNdWx0aXBseVRvKGEscikgewotICAg
IHZhciB4ID0gdGhpcy5hYnMoKSwgeSA9IGEuYWJzKCk7Ci0gICAgdmFyIGkgPSB4LnQ7Ci0gICAg
ci50ID0gaSt5LnQ7Ci0gICAgd2hpbGUoLS1pID49IDApIHJbaV0gPSAwOwotICAgIGZvcihpID0g
MDsgaSA8IHkudDsgKytpKSByW2kreC50XSA9IHguYW0oMCx5W2ldLHIsaSwwLHgudCk7Ci0gICAg
ci5zID0gMDsKLSAgICByLmNsYW1wKCk7Ci0gICAgaWYodGhpcy5zICE9IGEucykgQmlnSW50ZWdl
ci5aRVJPLnN1YlRvKHIscik7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXNeMiwgciAh
PSB0aGlzIChIQUMgMTQuMTYpCi0gIGZ1bmN0aW9uIGJucFNxdWFyZVRvKHIpIHsKLSAgICB2YXIg
eCA9IHRoaXMuYWJzKCk7Ci0gICAgdmFyIGkgPSByLnQgPSAyKngudDsKLSAgICB3aGlsZSgtLWkg
Pj0gMCkgcltpXSA9IDA7Ci0gICAgZm9yKGkgPSAwOyBpIDwgeC50LTE7ICsraSkgewotICAgICAg
dmFyIGMgPSB4LmFtKGkseFtpXSxyLDIqaSwwLDEpOwotICAgICAgaWYoKHJbaSt4LnRdKz14LmFt
KGkrMSwyKnhbaV0sciwyKmkrMSxjLHgudC1pLTEpKSA+PSB4LkRWKSB7Ci0gICAgICAgIHJbaSt4
LnRdIC09IHguRFY7Ci0gICAgICAgIHJbaSt4LnQrMV0gPSAxOwotICAgICAgfQotICAgIH0KLSAg
ICBpZihyLnQgPiAwKSByW3IudC0xXSArPSB4LmFtKGkseFtpXSxyLDIqaSwwLDEpOwotICAgIHIu
cyA9IDA7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIGRpdmlkZSB0aGlz
IGJ5IG0sIHF1b3RpZW50IGFuZCByZW1haW5kZXIgdG8gcSwgciAoSEFDIDE0LjIwKQotICAvLyBy
ICE9IHEsIHRoaXMgIT0gbS4gIHEgb3IgciBtYXkgYmUgbnVsbC4KLSAgZnVuY3Rpb24gYm5wRGl2
UmVtVG8obSxxLHIpIHsKLSAgICB2YXIgcG0gPSBtLmFicygpOwotICAgIGlmKHBtLnQgPD0gMCkg
cmV0dXJuOwotICAgIHZhciBwdCA9IHRoaXMuYWJzKCk7Ci0gICAgaWYocHQudCA8IHBtLnQpIHsK
LSAgICAgIGlmKHEgIT0gbnVsbCkgcS5mcm9tSW50KDApOwotICAgICAgaWYociAhPSBudWxsKSB0
aGlzLmNvcHlUbyhyKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYociA9PSBudWxsKSBy
ID0gbmJpKCk7Ci0gICAgdmFyIHkgPSBuYmkoKSwgdHMgPSB0aGlzLnMsIG1zID0gbS5zOwotICAg
IHZhciBuc2ggPSB0aGlzLkRCLW5iaXRzKHBtW3BtLnQtMV0pOwkvLyBub3JtYWxpemUgbW9kdWx1
cwotICAgIGlmKG5zaCA+IDApIHsgcG0ubFNoaWZ0VG8obnNoLHkpOyBwdC5sU2hpZnRUbyhuc2gs
cik7IH0KLSAgICBlbHNlIHsgcG0uY29weVRvKHkpOyBwdC5jb3B5VG8ocik7IH0KLSAgICB2YXIg
eXMgPSB5LnQ7Ci0gICAgdmFyIHkwID0geVt5cy0xXTsKLSAgICBpZih5MCA9PSAwKSByZXR1cm47
Ci0gICAgdmFyIHl0ID0geTAqKDE8PHRoaXMuRjEpKygoeXM+MSk/eVt5cy0yXT4+dGhpcy5GMjow
KTsKLSAgICB2YXIgZDEgPSB0aGlzLkZWL3l0LCBkMiA9ICgxPDx0aGlzLkYxKS95dCwgZSA9IDE8
PHRoaXMuRjI7Ci0gICAgdmFyIGkgPSByLnQsIGogPSBpLXlzLCB0ID0gKHE9PW51bGwpP25iaSgp
OnE7Ci0gICAgeS5kbFNoaWZ0VG8oaix0KTsKLSAgICBpZihyLmNvbXBhcmVUbyh0KSA+PSAwKSB7
Ci0gICAgICByW3IudCsrXSA9IDE7Ci0gICAgICByLnN1YlRvKHQscik7Ci0gICAgfQotICAgIEJp
Z0ludGVnZXIuT05FLmRsU2hpZnRUbyh5cyx0KTsKLSAgICB0LnN1YlRvKHkseSk7CS8vICJuZWdh
dGl2ZSIgeSBzbyB3ZSBjYW4gcmVwbGFjZSBzdWIgd2l0aCBhbSBsYXRlcgotICAgIHdoaWxlKHku
dCA8IHlzKSB5W3kudCsrXSA9IDA7Ci0gICAgd2hpbGUoLS1qID49IDApIHsKLSAgICAgIC8vIEVz
dGltYXRlIHF1b3RpZW50IGRpZ2l0Ci0gICAgICB2YXIgcWQgPSAoclstLWldPT15MCk/dGhpcy5E
TTpNYXRoLmZsb29yKHJbaV0qZDErKHJbaS0xXStlKSpkMik7Ci0gICAgICBpZigocltpXSs9eS5h
bSgwLHFkLHIsaiwwLHlzKSkgPCBxZCkgewkvLyBUcnkgaXQgb3V0Ci0gICAgICAgIHkuZGxTaGlm
dFRvKGosdCk7Ci0gICAgICAgIHIuc3ViVG8odCxyKTsKLSAgICAgICAgd2hpbGUocltpXSA8IC0t
cWQpIHIuc3ViVG8odCxyKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaWYocSAhPSBudWxsKSB7Ci0g
ICAgICByLmRyU2hpZnRUbyh5cyxxKTsKLSAgICAgIGlmKHRzICE9IG1zKSBCaWdJbnRlZ2VyLlpF
Uk8uc3ViVG8ocSxxKTsKLSAgICB9Ci0gICAgci50ID0geXM7Ci0gICAgci5jbGFtcCgpOwotICAg
IGlmKG5zaCA+IDApIHIuclNoaWZ0VG8obnNoLHIpOwkvLyBEZW5vcm1hbGl6ZSByZW1haW5kZXIK
LSAgICBpZih0cyA8IDApIEJpZ0ludGVnZXIuWkVSTy5zdWJUbyhyLHIpOwotICB9Ci0gIC8vIChw
dWJsaWMpIHRoaXMgbW9kIGEKLSAgZnVuY3Rpb24gYm5Nb2QoYSkgewotICAgIHZhciByID0gbmJp
KCk7Ci0gICAgdGhpcy5hYnMoKS5kaXZSZW1UbyhhLG51bGwscik7Ci0gICAgaWYodGhpcy5zIDwg
MCAmJiByLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpFUk8pID4gMCkgYS5zdWJUbyhyLHIpOwotICAg
IHJldHVybiByOwotICB9Ci0gIC8vIE1vZHVsYXIgcmVkdWN0aW9uIHVzaW5nICJjbGFzc2ljIiBh
bGdvcml0aG0KLSAgZnVuY3Rpb24gQ2xhc3NpYyhtKSB7IHRoaXMubSA9IG07IH0KLSAgZnVuY3Rp
b24gY0NvbnZlcnQoeCkgewotICAgIGlmKHgucyA8IDAgfHwgeC5jb21wYXJlVG8odGhpcy5tKSA+
PSAwKSByZXR1cm4geC5tb2QodGhpcy5tKTsKLSAgICBlbHNlIHJldHVybiB4OwotICB9Ci0gIGZ1
bmN0aW9uIGNSZXZlcnQoeCkgeyByZXR1cm4geDsgfQotICBmdW5jdGlvbiBjUmVkdWNlKHgpIHsg
eC5kaXZSZW1Ubyh0aGlzLm0sbnVsbCx4KTsgfQotICBmdW5jdGlvbiBjTXVsVG8oeCx5LHIpIHsg
eC5tdWx0aXBseVRvKHkscik7IHRoaXMucmVkdWNlKHIpOyB9Ci0gIGZ1bmN0aW9uIGNTcXJUbyh4
LHIpIHsgeC5zcXVhcmVUbyhyKTsgdGhpcy5yZWR1Y2Uocik7IH0KLSAgQ2xhc3NpYy5wcm90b3R5
cGUuY29udmVydCA9IGNDb252ZXJ0OwotICBDbGFzc2ljLnByb3RvdHlwZS5yZXZlcnQgPSBjUmV2
ZXJ0OwotICBDbGFzc2ljLnByb3RvdHlwZS5yZWR1Y2UgPSBjUmVkdWNlOwotICBDbGFzc2ljLnBy
b3RvdHlwZS5tdWxUbyA9IGNNdWxUbzsKLSAgQ2xhc3NpYy5wcm90b3R5cGUuc3FyVG8gPSBjU3Fy
VG87Ci0gIC8vIChwcm90ZWN0ZWQpIHJldHVybiAiLTEvdGhpcyAlIDJeREIiOyB1c2VmdWwgZm9y
IE1vbnQuIHJlZHVjdGlvbgotICAvLyBqdXN0aWZpY2F0aW9uOgotICAvLyAgICAgICAgIHh5ID09
IDEgKG1vZCBtKQotICAvLyAgICAgICAgIHh5ID0gIDEra20KLSAgLy8gICB4eSgyLXh5KSA9ICgx
K2ttKSgxLWttKQotICAvLyB4W3koMi14eSldID0gMS1rXjJtXjIKLSAgLy8geFt5KDIteHkpXSA9
PSAxIChtb2QgbV4yKQotICAvLyBpZiB5IGlzIDEveCBtb2QgbSwgdGhlbiB5KDIteHkpIGlzIDEv
eCBtb2QgbV4yCi0gIC8vIHNob3VsZCByZWR1Y2UgeCBhbmQgeSgyLXh5KSBieSBtXjIgYXQgZWFj
aCBzdGVwIHRvIGtlZXAgc2l6ZSBib3VuZGVkLgotICAvLyBKUyBtdWx0aXBseSAib3ZlcmZsb3dz
IiBkaWZmZXJlbnRseSBmcm9tIEMvQysrLCBzbyBjYXJlIGlzIG5lZWRlZCBoZXJlLgotICBmdW5j
dGlvbiBibnBJbnZEaWdpdCgpIHsKLSAgICBpZih0aGlzLnQgPCAxKSByZXR1cm4gMDsKLSAgICB2
YXIgeCA9IHRoaXNbMF07Ci0gICAgaWYoKHgmMSkgPT0gMCkgcmV0dXJuIDA7Ci0gICAgdmFyIHkg
PSB4JjM7CQkvLyB5ID09IDEveCBtb2QgMl4yCi0gICAgeSA9ICh5KigyLSh4JjB4ZikqeSkpJjB4
ZjsJLy8geSA9PSAxL3ggbW9kIDJeNAotICAgIHkgPSAoeSooMi0oeCYweGZmKSp5KSkmMHhmZjsJ
Ly8geSA9PSAxL3ggbW9kIDJeOAotICAgIHkgPSAoeSooMi0oKCh4JjB4ZmZmZikqeSkmMHhmZmZm
KSkpJjB4ZmZmZjsJLy8geSA9PSAxL3ggbW9kIDJeMTYKLSAgICAvLyBsYXN0IHN0ZXAgLSBjYWxj
dWxhdGUgaW52ZXJzZSBtb2QgRFYgZGlyZWN0bHk7Ci0gICAgLy8gYXNzdW1lcyAxNiA8IERCIDw9
IDMyIGFuZCBhc3N1bWVzIGFiaWxpdHkgdG8gaGFuZGxlIDQ4LWJpdCBpbnRzCi0gICAgeSA9ICh5
KigyLXgqeSV0aGlzLkRWKSkldGhpcy5EVjsJCS8vIHkgPT0gMS94IG1vZCAyXmRiaXRzCi0gICAg
Ly8gd2UgcmVhbGx5IHdhbnQgdGhlIG5lZ2F0aXZlIGludmVyc2UsIGFuZCAtRFYgPCB5IDwgRFYK
LSAgICByZXR1cm4gKHk+MCk/dGhpcy5EVi15Oi15OwotICB9Ci0gIC8vIE1vbnRnb21lcnkgcmVk
dWN0aW9uCi0gIGZ1bmN0aW9uIE1vbnRnb21lcnkobSkgewotICAgIHRoaXMubSA9IG07Ci0gICAg
dGhpcy5tcCA9IG0uaW52RGlnaXQoKTsKLSAgICB0aGlzLm1wbCA9IHRoaXMubXAmMHg3ZmZmOwot
ICAgIHRoaXMubXBoID0gdGhpcy5tcD4+MTU7Ci0gICAgdGhpcy51bSA9ICgxPDwobS5EQi0xNSkp
LTE7Ci0gICAgdGhpcy5tdDIgPSAyKm0udDsKLSAgfQotICAvLyB4UiBtb2QgbQotICBmdW5jdGlv
biBtb250Q29udmVydCh4KSB7Ci0gICAgdmFyIHIgPSBuYmkoKTsKLSAgICB4LmFicygpLmRsU2hp
ZnRUbyh0aGlzLm0udCxyKTsKLSAgICByLmRpdlJlbVRvKHRoaXMubSxudWxsLHIpOwotICAgIGlm
KHgucyA8IDAgJiYgci5jb21wYXJlVG8oQmlnSW50ZWdlci5aRVJPKSA+IDApIHRoaXMubS5zdWJU
byhyLHIpOwotICAgIHJldHVybiByOwotICB9Ci0gIC8vIHgvUiBtb2QgbQotICBmdW5jdGlvbiBt
b250UmV2ZXJ0KHgpIHsKLSAgICB2YXIgciA9IG5iaSgpOwotICAgIHguY29weVRvKHIpOwotICAg
IHRoaXMucmVkdWNlKHIpOwotICAgIHJldHVybiByOwotICB9Ci0gIC8vIHggPSB4L1IgbW9kIG0g
KEhBQyAxNC4zMikKLSAgZnVuY3Rpb24gbW9udFJlZHVjZSh4KSB7Ci0gICAgd2hpbGUoeC50IDw9
IHRoaXMubXQyKQkvLyBwYWQgeCBzbyBhbSBoYXMgZW5vdWdoIHJvb20gbGF0ZXIKLSAgICAgIHhb
eC50KytdID0gMDsKLSAgICBmb3IodmFyIGkgPSAwOyBpIDwgdGhpcy5tLnQ7ICsraSkgewotICAg
ICAgLy8gZmFzdGVyIHdheSBvZiBjYWxjdWxhdGluZyB1MCA9IHhbaV0qbXAgbW9kIERWCi0gICAg
ICB2YXIgaiA9IHhbaV0mMHg3ZmZmOwotICAgICAgdmFyIHUwID0gKGoqdGhpcy5tcGwrKCgoaip0
aGlzLm1waCsoeFtpXT4+MTUpKnRoaXMubXBsKSZ0aGlzLnVtKTw8MTUpKSZ4LkRNOwotICAgICAg
Ly8gdXNlIGFtIHRvIGNvbWJpbmUgdGhlIG11bHRpcGx5LXNoaWZ0LWFkZCBpbnRvIG9uZSBjYWxs
Ci0gICAgICBqID0gaSt0aGlzLm0udDsKLSAgICAgIHhbal0gKz0gdGhpcy5tLmFtKDAsdTAseCxp
LDAsdGhpcy5tLnQpOwotICAgICAgLy8gcHJvcGFnYXRlIGNhcnJ5Ci0gICAgICB3aGlsZSh4W2pd
ID49IHguRFYpIHsgeFtqXSAtPSB4LkRWOyB4Wysral0rKzsgfQotICAgIH0KLSAgICB4LmNsYW1w
KCk7Ci0gICAgeC5kclNoaWZ0VG8odGhpcy5tLnQseCk7Ci0gICAgaWYoeC5jb21wYXJlVG8odGhp
cy5tKSA+PSAwKSB4LnN1YlRvKHRoaXMubSx4KTsKLSAgfQotICAvLyByID0gInheMi9SIG1vZCBt
IjsgeCAhPSByCi0gIGZ1bmN0aW9uIG1vbnRTcXJUbyh4LHIpIHsgeC5zcXVhcmVUbyhyKTsgdGhp
cy5yZWR1Y2Uocik7IH0KLSAgLy8gciA9ICJ4eS9SIG1vZCBtIjsgeCx5ICE9IHIKLSAgZnVuY3Rp
b24gbW9udE11bFRvKHgseSxyKSB7IHgubXVsdGlwbHlUbyh5LHIpOyB0aGlzLnJlZHVjZShyKTsg
fQotICBNb250Z29tZXJ5LnByb3RvdHlwZS5jb252ZXJ0ID0gbW9udENvbnZlcnQ7Ci0gIE1vbnRn
b21lcnkucHJvdG90eXBlLnJldmVydCA9IG1vbnRSZXZlcnQ7Ci0gIE1vbnRnb21lcnkucHJvdG90
eXBlLnJlZHVjZSA9IG1vbnRSZWR1Y2U7Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLm11bFRvID0g
bW9udE11bFRvOwotICBNb250Z29tZXJ5LnByb3RvdHlwZS5zcXJUbyA9IG1vbnRTcXJUbzsKLSAg
Ly8gKHByb3RlY3RlZCkgdHJ1ZSBpZmYgdGhpcyBpcyBldmVuCi0gIGZ1bmN0aW9uIGJucElzRXZl
bigpIHsgcmV0dXJuICgodGhpcy50PjApPyh0aGlzWzBdJjEpOnRoaXMucykgPT0gMDsgfQotICAv
LyAocHJvdGVjdGVkKSB0aGlzXmUsIGUgPCAyXjMyLCBkb2luZyBzcXIgYW5kIG11bCB3aXRoICJy
IiAoSEFDIDE0Ljc5KQotICBmdW5jdGlvbiBibnBFeHAoZSx6KSB7Ci0gICAgaWYoZSA+IDB4ZmZm
ZmZmZmYgfHwgZSA8IDEpIHJldHVybiBCaWdJbnRlZ2VyLk9ORTsKLSAgICB2YXIgciA9IG5iaSgp
LCByMiA9IG5iaSgpLCBnID0gei5jb252ZXJ0KHRoaXMpLCBpID0gbmJpdHMoZSktMTsKLSAgICBn
LmNvcHlUbyhyKTsKLSAgICB3aGlsZSgtLWkgPj0gMCkgewotICAgICAgei5zcXJUbyhyLHIyKTsK
LSAgICAgIGlmKChlJigxPDxpKSkgPiAwKSB6Lm11bFRvKHIyLGcscik7Ci0gICAgICBlbHNlIHsg
dmFyIHQgPSByOyByID0gcjI7IHIyID0gdDsgfQotICAgIH0KLSAgICByZXR1cm4gei5yZXZlcnQo
cik7Ci0gIH0KLSAgLy8gKHB1YmxpYykgdGhpc15lICUgbSwgMCA8PSBlIDwgMl4zMgotICBmdW5j
dGlvbiBibk1vZFBvd0ludChlLG0pIHsKLSAgICB2YXIgejsKLSAgICBpZihlIDwgMjU2IHx8IG0u
aXNFdmVuKCkpIHogPSBuZXcgQ2xhc3NpYyhtKTsgZWxzZSB6ID0gbmV3IE1vbnRnb21lcnkobSk7
Ci0gICAgcmV0dXJuIHRoaXMuZXhwKGUseik7Ci0gIH0KLSAgLy8gcHJvdGVjdGVkCi0gIEJpZ0lu
dGVnZXIucHJvdG90eXBlLmNvcHlUbyA9IGJucENvcHlUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5
cGUuZnJvbUludCA9IGJucEZyb21JbnQ7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmZyb21TdHJp
bmcgPSBibnBGcm9tU3RyaW5nOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5jbGFtcCA9IGJucENs
YW1wOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kbFNoaWZ0VG8gPSBibnBETFNoaWZ0VG87Ci0g
IEJpZ0ludGVnZXIucHJvdG90eXBlLmRyU2hpZnRUbyA9IGJucERSU2hpZnRUbzsKLSAgQmlnSW50
ZWdlci5wcm90b3R5cGUubFNoaWZ0VG8gPSBibnBMU2hpZnRUbzsKLSAgQmlnSW50ZWdlci5wcm90
b3R5cGUuclNoaWZ0VG8gPSBibnBSU2hpZnRUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuc3Vi
VG8gPSBibnBTdWJUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUubXVsdGlwbHlUbyA9IGJucE11
bHRpcGx5VG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLnNxdWFyZVRvID0gYm5wU3F1YXJlVG87
Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRpdlJlbVRvID0gYm5wRGl2UmVtVG87Ci0gIEJpZ0lu
dGVnZXIucHJvdG90eXBlLmludkRpZ2l0ID0gYm5wSW52RGlnaXQ7Ci0gIEJpZ0ludGVnZXIucHJv
dG90eXBlLmlzRXZlbiA9IGJucElzRXZlbjsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZXhwID0g
Ym5wRXhwOwotICAvLyBwdWJsaWMKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUudG9TdHJpbmcgPSBi
blRvU3RyaW5nOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5uZWdhdGUgPSBibk5lZ2F0ZTsKLSAg
QmlnSW50ZWdlci5wcm90b3R5cGUuYWJzID0gYm5BYnM7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBl
LmNvbXBhcmVUbyA9IGJuQ29tcGFyZVRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5iaXRMZW5n
dGggPSBibkJpdExlbmd0aDsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUubW9kID0gYm5Nb2Q7Ci0g
IEJpZ0ludGVnZXIucHJvdG90eXBlLm1vZFBvd0ludCA9IGJuTW9kUG93SW50OwotICAvLyAiY29u
c3RhbnRzIgotICBCaWdJbnRlZ2VyLlpFUk8gPSBuYnYoMCk7Ci0gIEJpZ0ludGVnZXIuT05FID0g
bmJ2KDEpOwotICAvLyBqc2JuMiBzdHVmZgotICAvLyAocHJvdGVjdGVkKSBjb252ZXJ0IGZyb20g
cmFkaXggc3RyaW5nCi0gIGZ1bmN0aW9uIGJucEZyb21SYWRpeChzLGIpIHsKLSAgICB0aGlzLmZy
b21JbnQoMCk7Ci0gICAgaWYoYiA9PSBudWxsKSBiID0gMTA7Ci0gICAgdmFyIGNzID0gdGhpcy5j
aHVua1NpemUoYik7Ci0gICAgdmFyIGQgPSBNYXRoLnBvdyhiLGNzKSwgbWkgPSBmYWxzZSwgaiA9
IDAsIHcgPSAwOwotICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICB2YXIgeCA9IGludEF0KHMsaSk7Ci0gICAgICBpZih4IDwgMCkgewotICAgICAgICBpZihzLmNo
YXJBdChpKSA9PSAiLSIgJiYgdGhpcy5zaWdudW0oKSA9PSAwKSBtaSA9IHRydWU7Ci0gICAgICAg
IGNvbnRpbnVlOwotICAgICAgfQotICAgICAgdyA9IGIqdyt4OwotICAgICAgaWYoKytqID49IGNz
KSB7Ci0gICAgICAgIHRoaXMuZE11bHRpcGx5KGQpOwotICAgICAgICB0aGlzLmRBZGRPZmZzZXQo
dywwKTsKLSAgICAgICAgaiA9IDA7Ci0gICAgICAgIHcgPSAwOwotICAgICAgfQotICAgIH0KLSAg
ICBpZihqID4gMCkgewotICAgICAgdGhpcy5kTXVsdGlwbHkoTWF0aC5wb3coYixqKSk7Ci0gICAg
ICB0aGlzLmRBZGRPZmZzZXQodywwKTsKLSAgICB9Ci0gICAgaWYobWkpIEJpZ0ludGVnZXIuWkVS
Ty5zdWJUbyh0aGlzLHRoaXMpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHJldHVybiB4IHMudC4g
cl54IDwgRFYKLSAgZnVuY3Rpb24gYm5wQ2h1bmtTaXplKHIpIHsgcmV0dXJuIE1hdGguZmxvb3Io
TWF0aC5MTjIqdGhpcy5EQi9NYXRoLmxvZyhyKSk7IH0KLSAgLy8gKHB1YmxpYykgMCBpZiB0aGlz
ID09IDAsIDEgaWYgdGhpcyA+IDAKLSAgZnVuY3Rpb24gYm5TaWdOdW0oKSB7Ci0gICAgaWYodGhp
cy5zIDwgMCkgcmV0dXJuIC0xOwotICAgIGVsc2UgaWYodGhpcy50IDw9IDAgfHwgKHRoaXMudCA9
PSAxICYmIHRoaXNbMF0gPD0gMCkpIHJldHVybiAwOwotICAgIGVsc2UgcmV0dXJuIDE7Ci0gIH0K
LSAgLy8gKHByb3RlY3RlZCkgdGhpcyAqPSBuLCB0aGlzID49IDAsIDEgPCBuIDwgRFYKLSAgZnVu
Y3Rpb24gYm5wRE11bHRpcGx5KG4pIHsKLSAgICB0aGlzW3RoaXMudF0gPSB0aGlzLmFtKDAsbi0x
LHRoaXMsMCwwLHRoaXMudCk7Ci0gICAgKyt0aGlzLnQ7Ci0gICAgdGhpcy5jbGFtcCgpOwotICB9
Ci0gIC8vIChwcm90ZWN0ZWQpIHRoaXMgKz0gbiA8PCB3IHdvcmRzLCB0aGlzID49IDAKLSAgZnVu
Y3Rpb24gYm5wREFkZE9mZnNldChuLHcpIHsKLSAgICBpZihuID09IDApIHJldHVybjsKLSAgICB3
aGlsZSh0aGlzLnQgPD0gdykgdGhpc1t0aGlzLnQrK10gPSAwOwotICAgIHRoaXNbd10gKz0gbjsK
LSAgICB3aGlsZSh0aGlzW3ddID49IHRoaXMuRFYpIHsKLSAgICAgIHRoaXNbd10gLT0gdGhpcy5E
VjsKLSAgICAgIGlmKCsrdyA+PSB0aGlzLnQpIHRoaXNbdGhpcy50KytdID0gMDsKLSAgICAgICsr
dGhpc1t3XTsKLSAgICB9Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgY29udmVydCB0byByYWRpeCBz
dHJpbmcKLSAgZnVuY3Rpb24gYm5wVG9SYWRpeChiKSB7Ci0gICAgaWYoYiA9PSBudWxsKSBiID0g
MTA7Ci0gICAgaWYodGhpcy5zaWdudW0oKSA9PSAwIHx8IGIgPCAyIHx8IGIgPiAzNikgcmV0dXJu
ICIwIjsKLSAgICB2YXIgY3MgPSB0aGlzLmNodW5rU2l6ZShiKTsKLSAgICB2YXIgYSA9IE1hdGgu
cG93KGIsY3MpOwotICAgIHZhciBkID0gbmJ2KGEpLCB5ID0gbmJpKCksIHogPSBuYmkoKSwgciA9
ICIiOwotICAgIHRoaXMuZGl2UmVtVG8oZCx5LHopOwotICAgIHdoaWxlKHkuc2lnbnVtKCkgPiAw
KSB7Ci0gICAgICByID0gKGErei5pbnRWYWx1ZSgpKS50b1N0cmluZyhiKS5zdWJzdHIoMSkgKyBy
OwotICAgICAgeS5kaXZSZW1UbyhkLHkseik7Ci0gICAgfQotICAgIHJldHVybiB6LmludFZhbHVl
KCkudG9TdHJpbmcoYikgKyByOwotICB9Ci0gIC8vIChwdWJsaWMpIHJldHVybiB2YWx1ZSBhcyBp
bnRlZ2VyCi0gIGZ1bmN0aW9uIGJuSW50VmFsdWUoKSB7Ci0gICAgaWYodGhpcy5zIDwgMCkgewot
ICAgICAgaWYodGhpcy50ID09IDEpIHJldHVybiB0aGlzWzBdLXRoaXMuRFY7Ci0gICAgICBlbHNl
IGlmKHRoaXMudCA9PSAwKSByZXR1cm4gLTE7Ci0gICAgfQotICAgIGVsc2UgaWYodGhpcy50ID09
IDEpIHJldHVybiB0aGlzWzBdOwotICAgIGVsc2UgaWYodGhpcy50ID09IDApIHJldHVybiAwOwot
ICAgIC8vIGFzc3VtZXMgMTYgPCBEQiA8IDMyCi0gICAgcmV0dXJuICgodGhpc1sxXSYoKDE8PCgz
Mi10aGlzLkRCKSktMSkpPDx0aGlzLkRCKXx0aGlzWzBdOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQp
IHIgPSB0aGlzICsgYQotICBmdW5jdGlvbiBibnBBZGRUbyhhLHIpIHsKLSAgICB2YXIgaSA9IDAs
IGMgPSAwLCBtID0gTWF0aC5taW4oYS50LHRoaXMudCk7Ci0gICAgd2hpbGUoaSA8IG0pIHsKLSAg
ICAgIGMgKz0gdGhpc1tpXSthW2ldOwotICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAg
YyA+Pj0gdGhpcy5EQjsKLSAgICB9Ci0gICAgaWYoYS50IDwgdGhpcy50KSB7Ci0gICAgICBjICs9
IGEuczsKLSAgICAgIHdoaWxlKGkgPCB0aGlzLnQpIHsKLSAgICAgICAgYyArPSB0aGlzW2ldOwot
ICAgICAgICByW2krK10gPSBjJnRoaXMuRE07Ci0gICAgICAgIGMgPj49IHRoaXMuREI7Ci0gICAg
ICB9Ci0gICAgICBjICs9IHRoaXMuczsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICBjICs9IHRo
aXMuczsKLSAgICAgIHdoaWxlKGkgPCBhLnQpIHsKLSAgICAgICAgYyArPSBhW2ldOwotICAgICAg
ICByW2krK10gPSBjJnRoaXMuRE07Ci0gICAgICAgIGMgPj49IHRoaXMuREI7Ci0gICAgICB9Ci0g
ICAgICBjICs9IGEuczsKLSAgICB9Ci0gICAgci5zID0gKGM8MCk/LTE6MDsKLSAgICBpZihjID4g
MCkgcltpKytdID0gYzsKLSAgICBlbHNlIGlmKGMgPCAtMSkgcltpKytdID0gdGhpcy5EVitjOwot
ICAgIHIudCA9IGk7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBl
LmZyb21SYWRpeCA9IGJucEZyb21SYWRpeDsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuY2h1bmtT
aXplID0gYm5wQ2h1bmtTaXplOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5zaWdudW0gPSBiblNp
Z051bTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZE11bHRpcGx5ID0gYm5wRE11bHRpcGx5Owot
ICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kQWRkT2Zmc2V0ID0gYm5wREFkZE9mZnNldDsKLSAgQmln
SW50ZWdlci5wcm90b3R5cGUudG9SYWRpeCA9IGJucFRvUmFkaXg7Ci0gIEJpZ0ludGVnZXIucHJv
dG90eXBlLmludFZhbHVlID0gYm5JbnRWYWx1ZTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuYWRk
VG8gPSBibnBBZGRUbzsKLSAgLy89PT09PT09IGVuZCBqc2JuID09PT09PT0KLSAgLy8gRW1zY3Jp
cHRlbiB3cmFwcGVyCi0gIHZhciBXcmFwcGVyID0gewotICAgIGFiczogZnVuY3Rpb24obCwgaCkg
ewotICAgICAgdmFyIHggPSBuZXcgZ29vZy5tYXRoLkxvbmcobCwgaCk7Ci0gICAgICB2YXIgcmV0
OwotICAgICAgaWYgKHguaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICAgIHJldCA9IHgubmVnYXRlKCk7
Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXQgPSB4OwotICAgICAgfQotICAgICAgSEVBUDMy
W3RlbXBEb3VibGVQdHI+PjJdID0gcmV0Lmxvd187Ci0gICAgICBIRUFQMzJbdGVtcERvdWJsZVB0
cis0Pj4yXSA9IHJldC5oaWdoXzsKLSAgICB9LAotICAgIGVuc3VyZVRlbXBzOiBmdW5jdGlvbigp
IHsKLSAgICAgIGlmIChXcmFwcGVyLmVuc3VyZWRUZW1wcykgcmV0dXJuOwotICAgICAgV3JhcHBl
ci5lbnN1cmVkVGVtcHMgPSB0cnVlOwotICAgICAgV3JhcHBlci50d28zMiA9IG5ldyBCaWdJbnRl
Z2VyKCk7Ci0gICAgICBXcmFwcGVyLnR3bzMyLmZyb21TdHJpbmcoJzQyOTQ5NjcyOTYnLCAxMCk7
Ci0gICAgICBXcmFwcGVyLnR3bzY0ID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIFdyYXBwZXIu
dHdvNjQuZnJvbVN0cmluZygnMTg0NDY3NDQwNzM3MDk1NTE2MTYnLCAxMCk7Ci0gICAgICBXcmFw
cGVyLnRlbXAxID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIFdyYXBwZXIudGVtcDIgPSBuZXcg
QmlnSW50ZWdlcigpOwotICAgIH0sCi0gICAgbGgyYmlnbnVtOiBmdW5jdGlvbihsLCBoKSB7Ci0g
ICAgICB2YXIgYSA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBhLmZyb21TdHJpbmcoaC50b1N0
cmluZygpLCAxMCk7Ci0gICAgICB2YXIgYiA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBhLm11
bHRpcGx5VG8oV3JhcHBlci50d28zMiwgYik7Ci0gICAgICB2YXIgYyA9IG5ldyBCaWdJbnRlZ2Vy
KCk7Ci0gICAgICBjLmZyb21TdHJpbmcobC50b1N0cmluZygpLCAxMCk7Ci0gICAgICB2YXIgZCA9
IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBjLmFkZFRvKGIsIGQpOwotICAgICAgcmV0dXJuIGQ7
Ci0gICAgfSwKLSAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uKGwsIGgsIHVuc2lnbmVkKSB7Ci0gICAg
ICB2YXIgcmV0ID0gbmV3IGdvb2cubWF0aC5Mb25nKGwsIGgpLnRvU3RyaW5nKCk7Ci0gICAgICBp
ZiAodW5zaWduZWQgJiYgcmV0WzBdID09ICctJykgewotICAgICAgICAvLyB1bnNpZ24gc2xvd2x5
IHVzaW5nIGpzYm4gYmlnbnVtcwotICAgICAgICBXcmFwcGVyLmVuc3VyZVRlbXBzKCk7Ci0gICAg
ICAgIHZhciBiaWdudW0gPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgICBiaWdudW0uZnJvbVN0
cmluZyhyZXQsIDEwKTsKLSAgICAgICAgcmV0ID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgICAg
V3JhcHBlci50d282NC5hZGRUbyhiaWdudW0sIHJldCk7Ci0gICAgICAgIHJldCA9IHJldC50b1N0
cmluZygxMCk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0sCi0gICAgZnJvbVN0
cmluZzogZnVuY3Rpb24oc3RyLCBiYXNlLCBtaW4sIG1heCwgdW5zaWduZWQpIHsKLSAgICAgIFdy
YXBwZXIuZW5zdXJlVGVtcHMoKTsKLSAgICAgIHZhciBiaWdudW0gPSBuZXcgQmlnSW50ZWdlcigp
OwotICAgICAgYmlnbnVtLmZyb21TdHJpbmcoc3RyLCBiYXNlKTsKLSAgICAgIHZhciBiaWdtaW4g
PSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgYmlnbWluLmZyb21TdHJpbmcobWluLCAxMCk7Ci0g
ICAgICB2YXIgYmlnbWF4ID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGJpZ21heC5mcm9tU3Ry
aW5nKG1heCwgMTApOwotICAgICAgaWYgKHVuc2lnbmVkICYmIGJpZ251bS5jb21wYXJlVG8oQmln
SW50ZWdlci5aRVJPKSA8IDApIHsKLSAgICAgICAgdmFyIHRlbXAgPSBuZXcgQmlnSW50ZWdlcigp
OwotICAgICAgICBiaWdudW0uYWRkVG8oV3JhcHBlci50d282NCwgdGVtcCk7Ci0gICAgICAgIGJp
Z251bSA9IHRlbXA7Ci0gICAgICB9Ci0gICAgICB2YXIgZXJyb3IgPSBmYWxzZTsKLSAgICAgIGlm
IChiaWdudW0uY29tcGFyZVRvKGJpZ21pbikgPCAwKSB7Ci0gICAgICAgIGJpZ251bSA9IGJpZ21p
bjsKLSAgICAgICAgZXJyb3IgPSB0cnVlOwotICAgICAgfSBlbHNlIGlmIChiaWdudW0uY29tcGFy
ZVRvKGJpZ21heCkgPiAwKSB7Ci0gICAgICAgIGJpZ251bSA9IGJpZ21heDsKLSAgICAgICAgZXJy
b3IgPSB0cnVlOwotICAgICAgfQotICAgICAgdmFyIHJldCA9IGdvb2cubWF0aC5Mb25nLmZyb21T
dHJpbmcoYmlnbnVtLnRvU3RyaW5nKCkpOyAvLyBtaW4tbWF4IGNoZWNrcyBzaG91bGQgaGF2ZSBj
bGFtcGVkIHRoaXMgdG8gYSByYW5nZSBnb29nLm1hdGguTG9uZyBjYW4gaGFuZGxlIHdlbGwKLSAg
ICAgIEhFQVAzMlt0ZW1wRG91YmxlUHRyPj4yXSA9IHJldC5sb3dfOwotICAgICAgSEVBUDMyW3Rl
bXBEb3VibGVQdHIrND4+Ml0gPSByZXQuaGlnaF87Ci0gICAgICBpZiAoZXJyb3IpIHRocm93ICdy
YW5nZSBlcnJvcic7Ci0gICAgfQotICB9OwotICByZXR1cm4gV3JhcHBlcjsKLX0pKCk7Ci0vLz09
PT09PT0gZW5kIGNsb3N1cmUgaTY0IGNvZGUgPT09PT09PQotLy8gPT09IEF1dG8tZ2VuZXJhdGVk
IHBvc3RhbWJsZSBzZXR1cCBlbnRyeSBzdHVmZiA9PT0KLWZ1bmN0aW9uIEV4aXRTdGF0dXMoc3Rh
dHVzKSB7Ci0gIHRoaXMubmFtZSA9ICJFeGl0U3RhdHVzIjsKLSAgdGhpcy5tZXNzYWdlID0gIlBy
b2dyYW0gdGVybWluYXRlZCB3aXRoIGV4aXQoIiArIHN0YXR1cyArICIpIjsKLSAgdGhpcy5zdGF0
dXMgPSBzdGF0dXM7Ci19OwotRXhpdFN0YXR1cy5wcm90b3R5cGUgPSBuZXcgRXJyb3IoKTsKLUV4
aXRTdGF0dXMucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gRXhpdFN0YXR1czsKLXZhciBpbml0aWFs
U3RhY2tUb3A7Ci12YXIgcHJlbG9hZFN0YXJ0VGltZSA9IG51bGw7Ci1Nb2R1bGVbJ2NhbGxNYWlu
J10gPSBNb2R1bGUuY2FsbE1haW4gPSBmdW5jdGlvbiBjYWxsTWFpbihhcmdzKSB7Ci0gIGFzc2Vy
dChydW5EZXBlbmRlbmNpZXMgPT0gMCwgJ2Nhbm5vdCBjYWxsIG1haW4gd2hlbiBhc3luYyBkZXBl
bmRlbmNpZXMgcmVtYWluISAobGlzdGVuIG9uIF9fQVRNQUlOX18pJyk7Ci0gIGFzc2VydChfX0FU
UFJFUlVOX18ubGVuZ3RoID09IDAsICdjYW5ub3QgY2FsbCBtYWluIHdoZW4gcHJlUnVuIGZ1bmN0
aW9ucyByZW1haW4gdG8gYmUgY2FsbGVkJyk7Ci0gIGFyZ3MgPSBhcmdzIHx8IFtdOwotICBpZiAo
RU5WSVJPTk1FTlRfSVNfV0VCICYmIHByZWxvYWRTdGFydFRpbWUgIT09IG51bGwpIHsKLSAgICAv
L01vZHVsZS5wcmludEVycigncHJlbG9hZCB0aW1lOiAnICsgKERhdGUubm93KCkgLSBwcmVsb2Fk
U3RhcnRUaW1lKSArICcgbXMnKTsKLSAgfQotICBlbnN1cmVJbml0UnVudGltZSgpOwotICB2YXIg
YXJnYyA9IGFyZ3MubGVuZ3RoKzE7Ci0gIGZ1bmN0aW9uIHBhZCgpIHsKLSAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDQtMTsgaSsrKSB7Ci0gICAgICBhcmd2LnB1c2goMCk7Ci0gICAgfQotICB9Ci0g
IHZhciBhcmd2ID0gW2FsbG9jYXRlKGludEFycmF5RnJvbVN0cmluZygiL2Jpbi90aGlzLnByb2dy
YW0iKSwgJ2k4JywgQUxMT0NfTk9STUFMKSBdOwotICBwYWQoKTsKLSAgZm9yICh2YXIgaSA9IDA7
IGkgPCBhcmdjLTE7IGkgPSBpICsgMSkgewotICAgIGFyZ3YucHVzaChhbGxvY2F0ZShpbnRBcnJh
eUZyb21TdHJpbmcoYXJnc1tpXSksICdpOCcsIEFMTE9DX05PUk1BTCkpOwotICAgIHBhZCgpOwot
ICB9Ci0gIGFyZ3YucHVzaCgwKTsKLSAgYXJndiA9IGFsbG9jYXRlKGFyZ3YsICdpMzInLCBBTExP
Q19OT1JNQUwpOwotICBpbml0aWFsU3RhY2tUb3AgPSBTVEFDS1RPUDsKLSAgdHJ5IHsKLSAgICB2
YXIgcmV0ID0gTW9kdWxlWydfbWFpbiddKGFyZ2MsIGFyZ3YsIDApOwotICAgIC8vIGlmIHdlJ3Jl
IG5vdCBydW5uaW5nIGFuIGV2ZW50ZWQgbWFpbiBsb29wLCBpdCdzIHRpbWUgdG8gZXhpdAotICAg
IGlmICghTW9kdWxlWydub0V4aXRSdW50aW1lJ10pIHsKLSAgICAgIGV4aXQocmV0KTsKLSAgICB9
Ci0gIH0KLSAgY2F0Y2goZSkgewotICAgIGlmIChlIGluc3RhbmNlb2YgRXhpdFN0YXR1cykgewot
ICAgICAgLy8gZXhpdCgpIHRocm93cyB0aGlzIG9uY2UgaXQncyBkb25lIHRvIG1ha2Ugc3VyZSBl
eGVjdXRpb24KLSAgICAgIC8vIGhhcyBiZWVuIHN0b3BwZWQgY29tcGxldGVseQotICAgICAgcmV0
dXJuOwotICAgIH0gZWxzZSBpZiAoZSA9PSAnU2ltdWxhdGVJbmZpbml0ZUxvb3AnKSB7Ci0gICAg
ICAvLyBydW5uaW5nIGFuIGV2ZW50ZWQgbWFpbiBsb29wLCBkb24ndCBpbW1lZGlhdGVseSBleGl0
Ci0gICAgICBNb2R1bGVbJ25vRXhpdFJ1bnRpbWUnXSA9IHRydWU7Ci0gICAgICByZXR1cm47Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIHRocm93IGU7Ci0gICAgfQotICB9Ci19Ci1mdW5jdGlvbiBydW4o
YXJncykgewotICBhcmdzID0gYXJncyB8fCBNb2R1bGVbJ2FyZ3VtZW50cyddOwotICBpZiAocHJl
bG9hZFN0YXJ0VGltZSA9PT0gbnVsbCkgcHJlbG9hZFN0YXJ0VGltZSA9IERhdGUubm93KCk7Ci0g
IGlmIChydW5EZXBlbmRlbmNpZXMgPiAwKSB7Ci0gICAgLy9Nb2R1bGUucHJpbnRFcnIoJ3J1bigp
IGNhbGxlZCwgYnV0IGRlcGVuZGVuY2llcyByZW1haW4sIHNvIG5vdCBydW5uaW5nJyk7Ci0gICAg
cmV0dXJuOwotICB9Ci0gIHByZVJ1bigpOwotICBpZiAocnVuRGVwZW5kZW5jaWVzID4gMCkgewot
ICAgIC8vIGEgcHJlUnVuIGFkZGVkIGEgZGVwZW5kZW5jeSwgcnVuIHdpbGwgYmUgY2FsbGVkIGxh
dGVyCi0gICAgcmV0dXJuOwotICB9Ci0gIGZ1bmN0aW9uIGRvUnVuKCkgewotICAgIGVuc3VyZUlu
aXRSdW50aW1lKCk7Ci0gICAgcHJlTWFpbigpOwotICAgIGNhbGxlZFJ1biA9IHRydWU7Ci0gICAg
aWYgKE1vZHVsZVsnX21haW4nXSAmJiBzaG91bGRSdW5Ob3cpIHsKLSAgICAgIE1vZHVsZVsnY2Fs
bE1haW4nXShhcmdzKTsKLSAgICB9Ci0gICAgcG9zdFJ1bigpOwotICB9Ci0gIGlmIChNb2R1bGVb
J3NldFN0YXR1cyddKSB7Ci0gICAgTW9kdWxlWydzZXRTdGF0dXMnXSgnUnVubmluZy4uLicpOwot
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewotICAgICAgICBNb2R1bGVbJ3NldFN0YXR1cyddKCcnKTsKLSAgICAgIH0sIDEpOwotICAgICAg
aWYgKCFBQk9SVCkgZG9SdW4oKTsKLSAgICB9LCAxKTsKLSAgfSBlbHNlIHsKLSAgICBkb1J1bigp
OwotICB9Ci19Ci1Nb2R1bGVbJ3J1biddID0gTW9kdWxlLnJ1biA9IHJ1bjsKLWZ1bmN0aW9uIGV4
aXQoc3RhdHVzKSB7Ci0gIEFCT1JUID0gdHJ1ZTsKLSAgRVhJVFNUQVRVUyA9IHN0YXR1czsKLSAg
U1RBQ0tUT1AgPSBpbml0aWFsU3RhY2tUb3A7Ci0gIC8vIGV4aXQgdGhlIHJ1bnRpbWUKLSAgZXhp
dFJ1bnRpbWUoKTsKLSAgLy8gdGhyb3cgYW4gZXhjZXB0aW9uIHRvIGhhbHQgdGhlIGN1cnJlbnQg
ZXhlY3V0aW9uCi0gIHRocm93IG5ldyBFeGl0U3RhdHVzKHN0YXR1cyk7Ci19Ci1Nb2R1bGVbJ2V4
aXQnXSA9IE1vZHVsZS5leGl0ID0gZXhpdDsKLWZ1bmN0aW9uIGFib3J0KHRleHQpIHsKLSAgaWYg
KHRleHQpIHsKLSAgICBNb2R1bGUucHJpbnQodGV4dCk7Ci0gICAgTW9kdWxlLnByaW50RXJyKHRl
eHQpOwotICB9Ci0gIEFCT1JUID0gdHJ1ZTsKLSAgRVhJVFNUQVRVUyA9IDE7Ci0gIHRocm93ICdh
Ym9ydCgpIGF0ICcgKyAobmV3IEVycm9yKCkuc3RhY2spOwotfQotTW9kdWxlWydhYm9ydCddID0g
TW9kdWxlLmFib3J0ID0gYWJvcnQ7Ci0vLyB7e1BSRV9SVU5fQURESVRJT05TfX0KLWlmIChNb2R1
bGVbJ3ByZUluaXQnXSkgewotICBpZiAodHlwZW9mIE1vZHVsZVsncHJlSW5pdCddID09ICdmdW5j
dGlvbicpIE1vZHVsZVsncHJlSW5pdCddID0gW01vZHVsZVsncHJlSW5pdCddXTsKLSAgd2hpbGUg
KE1vZHVsZVsncHJlSW5pdCddLmxlbmd0aCA+IDApIHsKLSAgICBNb2R1bGVbJ3ByZUluaXQnXS5w
b3AoKSgpOwotICB9Ci19Ci0vLyBzaG91bGRSdW5Ob3cgcmVmZXJzIHRvIGNhbGxpbmcgbWFpbigp
LCBub3QgcnVuKCkuCi12YXIgc2hvdWxkUnVuTm93ID0gdHJ1ZTsKLWlmIChNb2R1bGVbJ25vSW5p
dGlhbFJ1biddKSB7Ci0gIHNob3VsZFJ1bk5vdyA9IGZhbHNlOwotfQotcnVuKCk7Ci0vLyB7e1BP
U1RfUlVOX0FERElUSU9OU319Ci0vLyB7e01PRFVMRV9BRERJVElPTlN9fQpJbmRleDogTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RmZy1hZGQtbm90LW51bWJlci5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWFkZC1ub3QtbnVtYmVyLmpzCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWFkZC1ub3Qt
bnVtYmVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNiBAQAorLy8gVGhpcyB0ZXN0IHdv
bid0IGdldCBpbnRvIHRoZSBGVEwgY3VycmVudGx5LCBzaW5jZSB0aGUgZm9vKCkgZnVuY3Rpb24g
anVzdCBleGl0cyBhIGxvdC4KKy8vQCBub0ZUTFJ1bkxheW91dFRlc3QKKwogZGVzY3JpcHRpb24o
CiAiVGVzdHMgdGhhdCBhZGRpbmcgdGhpbmdzIHRoYXQgYXJlbid0IG51bWJlcnMgdXNpbmcgKysg
ZG9lcyBub3QgY3Jhc2ggb3IgZ2VuZXJhdGUgYm9ndXMgY29kZS4iCiApOwpJbmRleDogTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL2xhcmdlLWV4cHJlc3Npb25zLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9sYXJnZS1leHByZXNzaW9ucy5qcwkocmV2aXNp
b24gMTYyOTE0KQorKysgTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2xhcmdlLWV4cHJlc3Np
b25zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw1ICszMCw1IEBAIGZ1bmN0aW9uIHJlcGVhdGVk
U3RyaW5nKHZhbHVlLCBjb3VudCkKIAogc2hvdWxkQmUoJ2V2YWwocmVwZWF0ZWRFeHByZXNzaW9u
KCJsZXR0ZXJBIiwgIisiLCAxMDApKScsICdyZXBlYXRlZFN0cmluZygiYSIsIDEwMCknKTsKIHNo
b3VsZEJlKCdldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMCkpJywg
J3JlcGVhdGVkU3RyaW5nKCJhIiwgMTAwMCknKTsKLXNob3VsZEJlKCdldmFsKHJlcGVhdGVkRXhw
cmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDApKScsICdyZXBlYXRlZFN0cmluZygiYSIsIDEw
MDAwKScpOworc2hvdWxkVGhyb3coJ2V2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwg
IisiLCAxMDAwMCkpJyk7CiBzaG91bGRUaHJvdygnZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxl
dHRlckEiLCAiKyIsIDEwMDAwMCkpJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>222412</attachid>
            <date>2014-01-28 00:13:45 -0800</date>
            <delta_ts>2014-01-28 00:13:45 -0800</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-14 for mac-mountainlion-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>459854</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
UhermSuhxRLCtROfB2vaulgN1v8AUEsDBAoAAAAAAGK7O0QAAAAAAAAAAAAAAAAFABwAZmFzdC9V
VAkAA8db51KsXOdSdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAADm7O0QAAAAAAAAAAAAAAAAJABwA
ZmFzdC9jc3MvVVQJAAN9W+dSrFznUnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAA5uztE2wjTQjsA
AAA/AAAAKQAcAGZhc3QvY3NzL2NvbXBhcmUtY29udGVudC1zdHlsZS1zdGRlcnIudHh0VVQJAAN9
W+dSfVvnUnV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOak
KkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAAEq7O0QAAAAAAAAAAAAAAAAMABwAZmFz
dC9mcmFtZXMvVVQJAAObW+dSrFznUnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABKuztE2wjTQjsA
AAA/AAAALwAcAGZhc3QvZnJhbWVzL2ZyYW1lLWRpc3BsYXktbm9uZS1mb2N1cy1zdGRlcnIudHh0
VVQJAAObW+dSm1vnUnV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARK
KJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAAFK7O0QAAAAAAAAAAAAAAAAM
ABwAZmFzdC9sb2FkZXIvVVQJAAOrW+dSrFznUnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABNuztE
2wjTQjsAAAA/AAAAUgAcAGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtY2FuLWJsb2Nr
LWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAkAA6Jb51KiW+dSdXgL
AAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz
0hUKivKTU4uLU1P0uABQSwMEFAACAAgATrs7RNsI00I7AAAAPwAAAFMAHABmYXN0L2xvYWRlci9p
bWFnZXMtZW5hYmxlZC11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxh
Y2Utc3RkZXJyLnR4dFVUCQADo1vnUqNb51J1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxN
LU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQUAAIACABSuztE
2wjTQjsAAAA/AAAALQAcAGZhc3QvbG9hZGVyL3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUtc3RkZXJy
LnR4dFVUCQADq1vnUqtb51J1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/K
VsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAABiuztEAAAAAAAAAAAA
AAAACQAcAGZhc3QveHNsL1VUCQADyFvnUqxc51J1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAYrs7
RHL9ZfKFAAAA6QAAACUAHABmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQJ
AAPHW+dSx1vnUnV4CwABBPUBAAAEFAAAAK1OMQ7CQAzb+4p8oGRguxkm2EB0TttUnJS7VLmc1P6e
g36BxbJsy/akaY1CHjUDm6kFWKLwDwIivlRq4oIXcsLr8MCBx1t0vNOu1Z9cvOBCxXErgsZFq00t
vr2tn3U6NRUkZoYzsHDi7BDTquZdc8JBIUDNNLZRVxCl+U/j/VHP8/dF9wFQSwMEFAACAAgAYrs7
RAWPVY6TAAAA0AIAACcAHABmYXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRV
VAkAA8db51LHW+dSdXgLAAEE9QEAAAQUAAAA7U87DsIwDN17Cl+geGDLDBNsIDo7qSsiOXGVOBLc
nkCPwIZYLNvvo/eCpjUKWdQMXIoWB0sU/gyHiDeVlrjigYzwOF1wYn+Khmd6arMrV6u4UDV8VMHC
VVsJnd4vGz3NY0yrFhtbibv+A4mZYQ8snDgbbOjQEbet4KBl8j2AKYjS/G2QrLWF+9uk60SG8O/7
031fUEsDBBQAAgAIAGK7O0SBSnetSwAAAKwAAAA0ABwAZmFzdC94c2wveHNsdC10cmFuc2Zvcm0t
dG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUCQADyFvnUshb51J1eAsAAQT1AQAABBQAAAC1
zLENgDAMRNE+U9wKtGzjwAVZcmxkLOZHomAD6q/3t5inmpSGg5mRK4YaAVMnFtA46YVbUqUbW3Ln
UNdXxMBh0cW+juJVbfvl+gBQSwMEFAACAAgA2rs7RG64f35HAQAAEAIAABEAHABmdWxsX3Jlc3Vs
dHMuanNvblVUCQADq1znUqxc51J1eAsAAQT1AQAABBQAAACFUNFKw0AQ/BXZJ4XEqLUU4lOhUaRF
pYlWn8I13SRnL8lxt1cbSv/du4uK4IP3sscwO7Mz09ksXybp8yJLTw9AqElDfICaSLr5A2gsjOLU
u3+hOq3DTvGKt6EUxg/Fd4wwXKvuQ/O2CqmrKoGb85oa4ZYUyk4RxHC7mM7fIADcSywINxZ6mqap
RVhBhlkyZMlrduLBo30BvPsTBFMVhnZNoda8a/Vf7WVyZ8Ok948P/xuAl9ZbLqXjXF+MxwG0pskV
Vt8OEF8GwFtCpYz0UiUTGgdew7VLCvFFYG/rO0O5ryvfcGU9opdOmAZ1NGPEomSVRitczzlFC8/N
fLMB7FA5K4hHg6pkWqM1Hl2NJlZY8j2KL11s2Vr8OqJmOrdlEPV2i4oaYlLG4iXfO6LPNBlUS8G2
vU9jrHo+VMPIZcxL7rhu9Xh28wlQSwMECgAAAAAAG7s7RAAAAAAAAAAAAAAAAAUAHABodHRwL1VU
CQADRVvnUqxc51J1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAars7RAAAAAAAAAAAAAAAAAsAHABo
dHRwL3Rlc3RzL1VUCQAD2FvnUqxc51J1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAG7s7RAAAAAAA
AAAAAAAAABEAHABodHRwL3Rlc3RzL2NhY2hlL1VUCQADRVvnUqxc51J1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgAG7s7RENjbk8/AAAAvQAAADsAHABodHRwL3Rlc3RzL2NhY2hlL3N1YnJlc291cmNl
LWZhaWxvdmVyLXRvLW5ldHdvcmstc3RkZXJyLnR4dFVUCQADRVvnUkVb51J1eAsAAQT1AQAABBQA
AABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tT
U/S4HAdUOwBQSwMECgAAAAAAUbs7RAAAAAAAAAAAAAAAABAAHABodHRwL3Rlc3RzL21pc2MvVVQJ
AAOqW+dSrFznUnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABRuztEFTU1knoAAAC8AAAAKgAcAGh0
dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVUCQADqlvnUqpb51J1eAsA
AQT1AQAABBQAAACNjkEOwyAMBO95hT9AIO2hFb8hxFUsGYyMkfr8EuUD1V5WO4fZLKURJyOpgKqi
ET7ECKdZi95vj9caZrb4DiH4Qj17xS5DM3b/7WxuT4ej0kTNDaV1bsBUEZ6AjAWrwU2XSeJdIcKo
aZ8aE2BJx3+6Kn3k87qXLDEvP1BLAwQKAAAAAABVuztEAAAAAAAAAAAAAAAAFgAcAGh0dHAvdGVz
dHMvbmF2aWdhdGlvbi9VVAkAA7Jb51KsXOdSdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAFW7O0Tb
CNNCOwAAAD8AAAA3ABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZhbGxiYWNrLWFuY2hvci1yZWxv
YWQtc3RkZXJyLnR4dFVUCQADslvnUrJb51J1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxN
LU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAAB2uztE
AAAAAAAAAAAAAAAAFAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQJAAPvW+dSrFznUnV4CwABBPUB
AAAEFAAAAFBLAwQKAAAAAAB2uztEAAAAAAAAAAAAAAAAKgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L1VUCQAD71vnUqxc51J1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgAdrs7RGOqrGyCAAAAqAAAAEAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAPvW+dS71vnUnV4CwABBPUBAAAEFAAA
AC2NQQrDMAwE73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjL
bZ3jyJLuMcZgyJcW7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqd
ljnSjs2vMUSbguxqTdTxmr5QSwMEFAACAAgAdrs7RGOqrGyCAAAAqAAAAFIAHABodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1z
cmMtMi1zdGRlcnIudHh0VVQJAAPvW+dS71vnUnV4CwABBPUBAAAEFAAAAC2NQQrDMAwE73mFXhA7
vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLuMcZgyJcW7yFL
dVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnSjs2vMUSbguxqTdTx
mr5QSwMEFAACAAgAars7ROyAMu9rAAAA8gAAAEsAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi1wbHVnaW4tcHJpdmF0ZS1icm93c2luZy10b2dnbGVkLWFjdHVhbC50eHRVVAkAA9hb
51LYW+dSdXgLAAEE9QEAAAQUAAAAC8nILFbITCtKzE1VKM7IL81JUchILEtVKCjKLEssSVVIKsov
L87MS1dIzUtMyklNseLi4grB1JOXX0JYH5cuFHC5gfRaKajbKOrqgs0JSCzJUNDXh/MNdHXtgEgd
oSUtMac4lRQjDHEYAQBQSwMEFAACAAgAars7RCDUlwHFAAAAtwEAAEkAHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4tcHJpdmF0ZS1icm93c2luZy10b2dnbGVkLWRpZmYu
dHh0VVQJAAPYW+dS2FvnUnV4CwABBPUBAAAEFAAAAM1OTWtCQQy876/YnjysMe2ppRR5iHrppVio
5/hefC5E97HJ+vHv7RMrXr01DJlJYIYBAI8/ScqWFadkhLPlNy559RntSpMSpcEFC5MyCp1SMTBW
g8xaxBQ3Zh32H0XluuRoJ6xzUoWUYxt30Em5UI57MoZVTgeNuxYsta1wA3zsuDZuRnY0F0L4B5Wo
tkJyKVRVHt6Grz70q6qch+s4P8+05Xc/+HgCWPf6i2zjEW/3M8D4F4M7E1gu7MKaRNn5h9Je/tLO
UEsDBBQAAgAIAGq7O0QRu1+YcAAAAPEAAABNABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4tcGx1Z2luLXByaXZhdGUtYnJvd3NpbmctdG9nZ2xlZC1leHBlY3RlZC50eHRVVAkAA9hb
51LYW+dSdXgLAAEE9QEAAAQUAAAAC8nILFbITCtKzE1VKM7IL81JUchILEtVKCjKLEssSVVIKsov
L87MS1dIzUtMyklNseLi4grB1JOXX0JYH5cuFHC5gfRaKajbKOrqgs0JSCzJUNDXh/MNdHXtgEgd
oaWkqDSVFBMMMUxIS8wpTuUCAFBLAwQUAAIACABquztEBmtrEdgHAACpGwAAUQAcAGh0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi1wcml2YXRlLWJyb3dzaW5nLXRvZ2dsZWQt
cHJldHR5LWRpZmYuaHRtbFVUCQAD2FvnUthb51J1eAsAAQT1AQAABBQAAAC9WWtv4zYW/Z5foSbY
MTCIJDu2p35kvOjkgQXaLopN0X4sKImyOKFElaQSZ7b73/fyJUuyZLvooAkmlslL8tznudTcZjKn
m4vbDKMEPnIskRdniAssP44qmfqLEQwL+Ubx5mJFSfF87a1eiCASJ95/Lzz4kXgn/QTHjCNJWLHy
ClbgtZ6KGE8w9yMmJctX3qTceQk842R98b8Ls53dJGaU8ZV3NZ4u9VzwSCi+J2lq5yMUP285q4rE
d6LpQv02DzInCEZJ4l0lSWLmUlZIP0U5oW8rL2cFEyWKLcAc8S0ByBOce2MzVDJQTuvBMQWNXrAG
lE06SKfTac/+AhXCF5iTtDEpyBesz2ge6lOcypU3DuZuPCGipAg2kSii2I8xpWbilSQygw3G439Y
jChJSLGtVxt81j3qqe0hC5kUGQCTtXjGXjDvaDWfz9dDBsfYmCJQfvkBzhJ2cUoZAlU42Way7T0l
dQcmQKSoj2JgfiJBzfEJta2Wvt63ZanXDLTztR9VuL1yVO6RPeFY+W8wcPTidth0Q8bGrbM7BNW4
3JkTHnYluBj2B9XwtReoj66Gg/AESXD0pv56GuonyuLnnxCXAai6SgkX0o8zQpNBw6rjnmD99bHN
OM7BtdcnzrNnOPOTAsIH+5ESaYXd3EUdRIskMaI+omQL+SFZj1ocq2j/FyoSip057D7KhOp7ho1D
9/EcV1wo1yjY3SxEEXinch6DM+vAMQmk4R1D0Yrzw3DYcvy27gRmMD/lL2NiL5DspJmDlLO8Y2xb
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
/vGLSEqkrKSxEhhbebBLJbPA+4iEhwYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCB
BhpooIEGGmiggQYa6P+Agv/pJ5pf6lPk2QEfG86+9meZ//V3mb+P98n4AOZ7Bm24F2UUAcNJSenr
B/WvMWL1Sa/kJf7CaCeHoJ0c/tn4f2KfrYv+tv9mZP47yL8BUEsDBBQAAgAIAJO7O0QaqQpzTAIA
APkSAAArABwAcHl3ZWJzb2NrZXQud3MubG9nLTI3SmFuMjAxNC0yMzI0NDMtZXJyLnR4dFVUCQAD
JVznUjtb51J1eAsAAQT1AQAABBQAAADtlltvmzAUgN/zK4760kSjGEgKCW+7pNu0qZuSqnmIIsvA
obFiMLOdZuzXz0nTlWptVU1LnhBIyDf545zjT54Hnj848/yzIIKgHwfD2A+cwXC4gPl4Mvk2WQCl
BeMlpe4Mk6lMV2imqG5RxTD+mWJluCyBl1ApmaLWvLwBhT/WqA3kShYxdE/9IHI9+/inDpz3oyjs
da4USzFh6Qq6hbRTFaZYGkiZECCYNr24A3DBBcIJmdbaYEG+8kQxVZMLxQrcSLXS5HttlrJ08/se
co1KWx5NAjcigiek2s3YtproblWfOCB4iXA+DJwGPt2zU7NUyDILAaBR5G7OS66X98Pd/deBVHAL
TlmWKbu8dyTqftDfUT+meqCd3HV8YmUmUL23EdXPITu7FQ3waynWBWrygRlGxrMpsXn/wg25klJo
Mk0Vr4wmG0xW3FQ1MUuusoopU5NCZrSq7YjeURNt7P5MyBIb6GF4F3BKLbuh9A+0Ay8Qbv//WMEN
B/7ThPsi6B4NZDRoZPkBY5Pbzd1crA/Bcpe7Zq15+1rb7vcAQbcTXY3bDIvuLcfNfKO4QSrzXKOJ
m403yTrPUVHNf+Gi10GlpNXHfKxUKW0tL+Cdkiu0h5BX2OnM/1bSwPFCzypp9nZy+fny41NSelzy
Mfg75fz7w6vQZapicAapzBAG2zDYc6HZDcKFVAnPMixfgv1v/ozjvTmHIwc8+7b+bP3Z+rP156v9
GTl+FBzuSjeKRq2SWiW1SmqV9GolDZ0oPD+kktpbUqukVkmtkp5R0m9QSwMEFAACAAgAk7s7RDvC
zvIIAQAAjwIAACsAHABweXdlYnNvY2tldC53cy5sb2ctMjdKYW4yMDE0LTIzMjQ0My1vdXQudHh0
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
rtQiE7QddnU5IwBw75qa2Q8y3yvZ+UJ5BlrXigtgcm3ltOVrvgDUsB1da2g6NZDZtDOMhS2OQeap
7YqNAoDFIw/dyUFBgDopdgRHSt8Eb9d2JWMRSBnfVw2XAbhyz2W3pLweoJxbMasmL2SXMQpT2V1b
Tk5rmsp0TZQYpVwhL92C2zfS7f9Q2+LPm5rpJSgvq6/rMAfCG72tmzEJ0uT5LtuJigBAXUsDToao
fWWHdZRhYotZjiBRUZUmpVvwsZFaS89OJvBQrVhl+cP1h9N++FrTWFwsLctcNVRS7qr8dJDlJMd1
FvYFdnZTZWSCrHvTi2jRYiLKDp6vMrVQyoXvK1FPJMVcHtLSQrk2KnOs91QB7NU6aeT3nDAFQO/2
3twOXw+fx++u8YvD6XD7/nNBIrDz4vaH69vu9vQpfS2PK/Pc7K38YyV/zIIF+dciI3Qd+wLZ1zIj
dh1rOD6N5HMbSvvmM+Ppt/KFub50YTLddnx+dH5h8teerRCemTZ+/d3uCg/OpkSsVCb3neY7aeTn
buSvFf5d+bo7NrKT35i8a184LyCvTfGnuyMRK/8qlzlOPwUb5qKP637l3+T7veX3JMsQPvM//xqc
1xVliDxswrM5GvS2ZIZw3X3Rdfzmt93lZSgygytemQKE2ZZZuZNPzXbKWB8aiBB3R5jhf8avr59f
4ge3UY3Gv1yjI/fw9SHkUj58Odw+PdzG7Z2uD+p/zf9lsno40GRdx9Y7pGHXZXg9fx4ewsoPp/N+
eHi+nF/TYuxG41JJyqalVkxx2lRY6h/D6WXc07jK0+H08nD9n/dh+PfwoMXNJWWVVuwXrX84HQ+n
aXP74Xq7nL897G63y+Hx/TZcH54uu+un//VV3GZyo9cTJ/15fd0djw/P51ETyxvSqTp5++3jYX9I
2xlPdPkmHidBpvHrkD5sEgmF33y4HsaLuJ3PD8dAydMZpHUsebOVFNd1Tu/jUXbX63CJ2S/iMnpZ
Zo2Fvp73h+dv6akf3s7XQ1ji4fH9Bbz7uo4Kvr6yk48dbiTdaKMebuKl6vVSQ2jP6fzrh/fL4eFw
+rw7HvbyGg13JXGN+RCB5Ca6fvp0OO7xJU9RgbjiImtEWv7Laf8fx29vn64VRN2R61o1HFl6POz1
MPLcabz46213OzwtZ5AfwSvuAmSJIO+vb3MaT5owbObx9W36XPzYWfJxtBvIa34ZCUEDQrDk47WU
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
AQIeAxQAAgAIANm7O0SaDAh3TaYAACEkCAAOABgAAAAAAAEAAACkgQAAAABhY2Nlc3NfbG9nLnR4
dFVUBQADqVznUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANm7O0R3OVF/eRIAAB8UAQANABgA
AAAAAAEAAACkgZWmAABlcnJvcl9sb2cudHh0VVQFAAOpXOdSdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAYrs7RAAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BVbkAAGZhc3QvVVQFAAPHW+dSdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAObs7RAAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BlLkA
AGZhc3QvY3NzL1VUBQADfVvnUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADm7O0TbCNNCOwAA
AD8AAAApABgAAAAAAAEAAACkgde5AABmYXN0L2Nzcy9jb21wYXJlLWNvbnRlbnQtc3R5bGUtc3Rk
ZXJyLnR4dFVUBQADfVvnUnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAEq7O0QAAAAAAAAAAAAA
AAAMABgAAAAAAAAAEADtQXW6AABmYXN0L2ZyYW1lcy9VVAUAA5tb51J1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABKuztE2wjTQjsAAAA/AAAALwAYAAAAAAABAAAApIG7ugAAZmFzdC9mcmFtZXMv
ZnJhbWUtZGlzcGxheS1ub25lLWZvY3VzLXN0ZGVyci50eHRVVAUAA5tb51J1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAABSuztEAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UFfuwAAZmFzdC9sb2Fk
ZXIvVVQFAAOrW+dSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATbs7RNsI00I7AAAAPwAAAFIA
GAAAAAAAAQAAAKSBpbsAAGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtY2FuLWJsb2Nr
LWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAUAA6Jb51J1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABOuztE2wjTQjsAAAA/AAAAUwAYAAAAAAABAAAApIFsvAAAZmFz
dC9sb2FkZXIvaW1hZ2VzLWVuYWJsZWQtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVs
b2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAUAA6Nb51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABSuztE2wjTQjsAAAA/AAAALQAYAAAAAAABAAAApIE0vQAAZmFzdC9sb2FkZXIvcmVsb2FkLXBv
bGljeS1kZWxlZ2F0ZS1zdGRlcnIudHh0VVQFAAOrW+dSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAYrs7RAAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1B1r0AAGZhc3QveHNsL1VUBQADyFvnUnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGK7O0Ry/WXyhQAAAOkAAAAlABgAAAAAAAEAAACkgRm+
AABmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQFAAPHW+dSdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAYrs7RAWPVY6TAAAA0AIAACcAGAAAAAAAAQAAAKSB/b4AAGZhc3Qv
eHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4dFVUBQADx1vnUnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAGK7O0SBSnetSwAAAKwAAAA0ABgAAAAAAAEAAACkgfG/AABmYXN0L3hzbC94
c2x0LXRyYW5zZm9ybS10by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQFAAPIW+dSdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA2rs7RG64f35HAQAAEAIAABEAGAAAAAAAAQAAAKSBqsAAAGZ1
bGxfcmVzdWx0cy5qc29uVVQFAAOrXOdSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAG7s7RAAA
AAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BPMIAAGh0dHAvVVQFAANFW+dSdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAars7RAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1Be8IAAGh0dHAvdGVzdHMv
VVQFAAPYW+dSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAG7s7RAAAAAAAAAAAAAAAABEAGAAA
AAAAAAAQAO1BwMIAAGh0dHAvdGVzdHMvY2FjaGUvVVQFAANFW+dSdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAG7s7RENjbk8/AAAAvQAAADsAGAAAAAAAAQAAAKSBC8MAAGh0dHAvdGVzdHMvY2Fj
aGUvc3VicmVzb3VyY2UtZmFpbG92ZXItdG8tbmV0d29yay1zdGRlcnIudHh0VVQFAANFW+dSdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAUbs7RAAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1Bv8MA
AGh0dHAvdGVzdHMvbWlzYy9VVAUAA6pb51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABRuztE
FTU1knoAAAC8AAAAKgAYAAAAAAABAAAApIEJxAAAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWlt
cG9ydC1zdGRlcnIudHh0VVQFAAOqW+dSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAVbs7RAAA
AAAAAAAAAAAAABYAGAAAAAAAAAAQAO1B58QAAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9VVAUAA7Jb
51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABVuztE2wjTQjsAAAA/AAAANwAYAAAAAAABAAAA
pIE3xQAAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZhbGxiYWNrLWFuY2hvci1yZWxvYWQtc3RkZXJy
LnR4dFVUBQADslvnUnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHa7O0QAAAAAAAAAAAAAAAAU
ABgAAAAAAAAAEADtQePFAABodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQAD71vnUnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAHa7O0QAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQTHGAABodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAUAA+9b51J1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAB2uztEY6qsbIIAAACoAAAAQAAYAAAAAAABAAAApIGVxgAAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVU
BQAD71vnUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHa7O0RjqqxsggAAAKgAAABSABgAAAAA
AAEAAACkgZHHAABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wt
dW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMtMi1zdGRlcnIudHh0VVQFAAPvW+dSdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAars7ROyAMu9rAAAA8gAAAEsAGAAAAAAAAQAAAKSBn8gAAGh0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi1wcml2YXRlLWJyb3dzaW5nLXRvZ2dsZWQt
YWN0dWFsLnR4dFVUBQAD2FvnUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGq7O0Qg1JcBxQAA
ALcBAABJABgAAAAAAAEAAACkgY/JAABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1w
bHVnaW4tcHJpdmF0ZS1icm93c2luZy10b2dnbGVkLWRpZmYudHh0VVQFAAPYW+dSdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAars7RBG7X5hwAAAA8QAAAE0AGAAAAAAAAQAAAKSB18oAAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi1wcml2YXRlLWJyb3dzaW5nLXRvZ2ds
ZWQtZXhwZWN0ZWQudHh0VVQFAAPYW+dSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAars7RAZr
axHYBwAAqRsAAFEAGAAAAAAAAQAAAKSBzssAAGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3Jp
Z2luLXBsdWdpbi1wcml2YXRlLWJyb3dzaW5nLXRvZ2dsZWQtcHJldHR5LWRpZmYuaHRtbFVUBQAD
2FvnUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHG7O0RgS2YQkQAAAPsBAABFABgAAAAAAAEA
AACkgTHUAABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3Vy
aXR5T3JpZ2luLXN0ZGVyci50eHRVVAUAA+Zb51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADW
uztE6op8QmEFAAAFDwAACgAYAAAAAAABAAAApIFB1QAAaHR0cGQuY29uZlVUBQADpFznUnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAHy7O0QAAAAAAAAAAAAAAAADABgAAAAAAAAAEADtQebaAABq
cy9VVAUAA/tb51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB8uztESOfm3i4BAAAxKQAAHwAY
AAAAAAABAAAApIEj2wAAanMvbGFyZ2UtZXhwcmVzc2lvbnMtYWN0dWFsLnR4dFVUBQAD+1vnUnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHy7O0QReLhAKQEAAMMpAAAdABgAAAAAAAEAAACkgarc
AABqcy9sYXJnZS1leHByZXNzaW9ucy1kaWZmLnR4dFVUBQAD+1vnUnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAHy7O0SeOpPP7QAAACYCAAAhABgAAAAAAAEAAACkgSreAABqcy9sYXJnZS1leHBy
ZXNzaW9ucy1leHBlY3RlZC50eHRVVAUAA/tb51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB8
uztETVPll1UIAAAlRAAAJQAYAAAAAAABAAAApIFy3wAAanMvbGFyZ2UtZXhwcmVzc2lvbnMtcHJl
dHR5LWRpZmYuaHRtbFVUBQAD+1vnUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJO7O0QaqQpz
TAIAAPkSAAArABgAAAAAAAEAAACkgSboAABweXdlYnNvY2tldC53cy5sb2ctMjdKYW4yMDE0LTIz
MjQ0My1lcnIudHh0VVQFAAMlXOdSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAk7s7RDvCzvII
AQAAjwIAACsAGAAAAAAAAQAAAKSB1+oAAHB5d2Vic29ja2V0LndzLmxvZy0yN0phbjIwMTQtMjMy
NDQzLW91dC50eHRVVAUAAyVc51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADauztEZ88I0X4m
AAAjpAAADAAYAAAAAAABAAAApIFE7AAAcmVzdWx0cy5odG1sVVQFAAOrXOdSdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAA2bs7RAAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BCBMBAHJldHJpZXMv
VVQFAAOqXOdSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA2bs7RAAAAAAAAAAAAAAAAAsAGAAA
AAAAAAAQAO1BShMBAHJldHJpZXMvanMvVVQFAAOqXOdSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA2bs7REjn5t4uAQAAMSkAACcAGAAAAAAAAQAAAKSBjxMBAHJldHJpZXMvanMvbGFyZ2UtZXhw
cmVzc2lvbnMtYWN0dWFsLnR4dFVUBQADqlznUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANm7
O0SdKscjLQEAANMpAAAlABgAAAAAAAEAAACkgR4VAQByZXRyaWVzL2pzL2xhcmdlLWV4cHJlc3Np
b25zLWRpZmYudHh0VVQFAAOqXOdSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2bs7RJ46k8/t
AAAAJgIAACkAGAAAAAAAAQAAAKSBqhYBAHJldHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhw
ZWN0ZWQudHh0VVQFAAOqXOdSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2bs7RGXu+g1aCAAA
LUQAAC0AGAAAAAAAAQAAAKSB+hcBAHJldHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtcHJldHR5
LWRpZmYuaHRtbFVUBQADqlznUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANq7O0Q5aV5aesoF
ACBsIgAKABgAAAAAAAEAAACkgbsgAQBzdGF0cy5qc29uVVQFAAOrXOdSdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAApbs7RAAAAAAAAAAAAAAAAAQAGAAAAAAAAAAQAO1BeesGAHN2Zy9VVAUAA0Vc
51J1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACluztEAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA
7UG36wYAc3ZnL3N0cm9rZS9VVAUAA0Vc51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACluztE
eid4WYMAAACQAAAAJQAYAAAAAAABAAAApIH86wYAc3ZnL3N0cm9rZS96ZXJvLXdpZHRoLWhhbmct
c3RkZXJyLnR4dFVUBQADRVznUnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALO7O0QAAAAAAAAA
AAAAAAAMABgAAAAAAAAAEADtQd7sBgB0cmFuc2l0aW9ucy9VVAUAA2Fc51J1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACzuztER3Iat4kAAABCAwAANwAYAAAAAAABAAAApIEk7QYAdHJhbnNpdGlv
bnMvY3ViaWMtYmV6aWVyLW92ZXJmbG93LXN2Zy1sZW5ndGgtc3RkZXJyLnR4dFVUBQADYVznUnV4
CwABBPUBAAAEFAAAAFBLBQYAAAAANgA2ABoWAAAe7gYAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>222416</attachid>
            <date>2014-01-28 01:02:58 -0800</date>
            <delta_ts>2014-01-28 01:02:58 -0800</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-06 for mac-mountainlion</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>496014</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">UEsDBBQAAgAIAFW/O0RWA9COb8IAAIalCQAOABwAYWNjZXNzX2xvZy50eHRVVAkAAzJj51JIYedS
dXgLAAEE9QEAAARQAAAA7F3rj+M2kv++f8VggZ5PUbdI6jlAY5BMMrtZ7N0GN3PAAYdDoLZoWxlZ
cvTox/71R1KW7bZImRJJP3qUyXTctqNfVbFYZBWrigD6tzb5A95Z5M//Qv/uH1F2B23gfIDog2t/
QM47yw5s+//e/fVvv3x9dxet17NotsR3ju1YqyhL5risbpfVKn33969ff7sDt+Cv76Btk7/A/gs4
+nhX8Pg4x6WV5ZWFnxMC0CLtgRAC3iHHUcAocJnXxQyXd2WyWqf4tnquDrgASOH5VEQtBk9EwA6g
FvJfAXFERcGQHkkdjMtriTVDEioARQ95UVnstZVn5OfsW5IttopmEQSuJGHg6UdtuT4pKh/ICbQB
xflTluZRLCVXZIda1EaSBNE0982wf3SAkR0YZv8VCYKpC41wz1c0D5llWMSj42rjcV3kC0JJyR9R
FxhgcAsp4A4gzyCqBW4r3Fm6EDIJCU8P6WiHjGYz+uDHJCLzME4KPKtu18v1HgSy/XeWHqY4WDwF
BbpmIAdPpJ1Kc6+uljxGfMfXwwd5/l2Jq3p9MDSODd7B17JK80WS6cZhWqYXJpkX0QpzcEAI9CJt
d+gcnjRDlfXDdg/aRYMqWj0ronJpPS1xZmXRY7KIKrp0Rk/Ri1XRNx+i2TeuDvp6Nr1j8Z1T4gsm
t+ufTQSIbN2sswpAlYIZMZ04q5Ioteoi5aqYp8eFw6t19WLEQM9eiiRNkxnhIOE66kiTa/gKSOiF
+tqxrHlerHickUdoAUuyCpMX6+qOfRJD6+Zn+yb8fPMzuAls+vqnX9hPyH66e+//yH7ah4R5RuhS
JsvVTNY8SlM6NZUJM6k0H5N7VfK061mGq6e8GC4367cfv3w5oC4Eb5+411EpFXVj4QZNNv2YQdS4
Pgo1+zNhFN58IsLwbz657PVPN5+AIQ2+YI4teKU8x3iOC7IPsfAj2YqUVoxTXGGyGUpSbBVRUtKt
UJWscMFbA91Qjy7LU2EB7lYY6tlkfP37r19+//zrP3/5/ed//fLl9//819fff/mfX798FYYOPcO4
f5SHiG5waolD7r4O2FfK+WnHWEbO/NMbpak1mEnXMYHWHUSlo4az4xiR3oGKcP1ANClDV2xlVeQv
RG5NvIsbj3dGyO2P0qrokdHOZLTvrAv8mgtmCSFU8iBiXDX+VSLkw4Eqwx8nc6JgRLWsZVWtSysv
kkWS7c6GVlGScRd3qcCAd3yp6cfn+tY+PAm0II7gqzC+w9yg9eUxAEeJ0x1WSX7lK48PHM2y3GCp
hJPEDJXRQ4pjweGF0qPzWb2i5D8VCVmBKYBFFmP2FneL47gyp9O+hPsoBFaSoT+cUR6bnpT1EoGx
yGKvijtS8Sh/fAxT1gUSQbRxJC7xIHC0UL8FEY041IPDzTUaKaHdU9ugDHl6nUZVXtAzmI+zfEW4
ie9neZbh2SFHBgDXUbW853FNgzPE0rK3OXlWUoee/sA4UGcz42pVFNUz44kdk+xotEOys4wsjRc9
0ehIIjTRMtEy0TLRMtEy0TLRMtHy9mnZ+ZF5gZNFZvX5k8DxNPmTh2ACvzJ0jcD1MolCI5iH1SEH
yE0qv3ed0C1gEwMWhmSBC6BWBjcxZ1Ec1DMBxi9BMYBk7SeNduL2yDMdcPnwwbzUtGKI1UAnzNFh
MSk31WDhkkz/vHhh50HcMQn1TNBjOJ7t6sdRqZ5RY2nksLTpunm2h7PIhSnTAKmwksR4tc4rGlqv
13FU8SelF8psIoLjKXEdNJXDAk14suMkgkuyEhfV68OXp6Ra7gr1uEcxvtRRzGhQ7hGk1JmrGLLC
RVGvKxz36YpcCUEglz75Gk5U7Se1pgcSVVT4dp0tPnaRraCzTEEHmgb1NINe5ACqzr7Bw3cSQO/U
gOE5FBScAxSdA9Q5B6h7DlB4DlBfMygtnbbmRb6y2rcslpFGs2Rqsltn1VHcFdLTY/vkCBBtfryT
0PCQ19kMC/eV0AmVRmAWpdYszypBigZAmvZ4r5GE5eS+KWb0mfejnKhC0RDMLkduF/fKC6uNOZKZ
SX4Tzg8AfFsLrwNJUSnVPE5MWTel31EW04BYMn+x4jzjZ54FwxFPchoejIgmC9MLpOPGE+rbRA0n
1Al1Qp1QJ9RLQhXs5Jai3RoywZp6imyo6eS7KwVx3UwglWgfDty47mGqRLLDM2wY9bIq65qcW9cE
M6i/wZRtQnWO9Zgizz7bVGppa8ZbUC3r2W9Es19z20nmhme0accGwtTyZXLebQ7FaJyD8EprspOq
xOmcW6/nepoGXIgqCi0AHUyuo0JYDe26tl7eWjDRSiSVZxNKFi11K1L0TE2lYp+j47GdT5Bv6QHS
OyR7eONqRCasCWvCmrAmrAnrLWF1EATrMTDDjzHJbbYvIp/O0yEylufVFKnPk5Qb7XClutAPENwh
pohB92K3mKvomTg5/xbcK+H5muT1zDCEmWpaUDaZFCOTJoQCqtMq6S2CIH/1uBAHUEKHxf3OHJbz
ueVaa85FIIediJuOYU1qSlRVdJxoJVPfdQROqCcgMJQUUXdeCX/RsUXiyDOWwHv7zJtrocxicfhs
hSKyDS0iRmXm4nBOJeeJNjaVri3SRoWS/R5KhY6Q6lhMbYBbIebzeZpkZI6yjB1+BZHrXQFHo5Xn
tQR6Drz88GxUCa3ISW3aAU2dsiwPSGzHHHCR4wYuwiCCax4pLYYRnGz+yB71TCRNJE0kTSRNJE0k
TSRNJE0kmdk2XsOeUd7nAiJ/O2MQ2wKdNHrBhSCjBUmlrAmh9hgTgQqru1wtuC1gRlyzch3tFyZt
m3twPCXbMYSe5RkLwu5fe9u5ySE0Bd4o4+6NDin8ZlDwVPTISCfw3gw1m0nxtEwqnCaCTi2B7+qc
gTswYfzb14I3y2taFdwYWHZ1wGHcXztMnb1VoOfn5yvF2twu0Fwow0+aDPXYu1dIPf2oAhuZwxNM
Kk+P0eqeMsiethwZnj/rvIpYJm2S1Ti22svKLXasu07xtglNyb9mCehZIxo6NkRJkcO/acsLnPPR
I+pxGF6oDiixy2+EhMLz0SNK1HDc65yD/PZdCJxCwvwLpdFJoEWeQXgN48i3ktDWL7lNt0IwOmds
NKBogJwrM3RJT0mU64YGAYV1YvAqJYi4EnR8g4AiCQJ02UaiLqMF5ifkOVq3wwyo10g4gUnAa9sQ
9/PDv4ErRAYBr9OjKJv04vZd/h7G9jTK7QCx757CAJnHvbZha9MirTYkwI1FAT1uVQdMFIvSIy2F
bGGJp6tkC/c8XrT9Dlw9m8gGoWeauDJ3PjpwIJCoebOnBUtpLDSwog61yh83Scvc8xi54BWUCH8n
qZVnbRfX17UzbPR1Df6OIXGCHPGM4FWx1cXZ5Z6xeOAIS6PInaNNy08Eo2KVlUaIfAmbAe1qu6gq
XcqtvBR9P1Zjb0sdUcmIr4sn2hmExhBH1RFOWBPWhDVhTVgT1pvE6q/qt31khh/h+u8bwjM1UkY8
081DucE1x9FJt0L3g3MJp8rXVk/YG8AA6CG+fmAwPUf/wNWKJGDI97RIi7/HDwKkWVrivb3eceEz
hAA8BT/6lJh7uAaR52hmA51KibkMBQicgh99IUHDQLvxdwTjb2tmwznVtHROM/7OqcbfCNDmNh1h
QBgCT89O6BEXZZJnON5dN9eNJpF9nhawTapp9JDiXeo5B06PbdtLch2R2DpWdNtwY1lhU3K8tEEz
qe36puykD5M+mNeHxyTGOXfn6YxZ41bEQY2svX5b7HfWuK3TWwH4mlybhgfhflADGwyhuWu3w0YQ
Bq46wubyrTuGkS8eO1z4wZjDBFlGRqppLxertdO9zzkY4/DLapUsF0igUtuqI+spSeNZVMT8rH1P
AWPHBQdNJX6BjB5lCkVW5NmivTrOql7WojaHSI/MunAqfmA/V2WyyKKqLoTHo46tkal9NBFPgT6e
+ByhwARHQn58BbTnZWG119P3FYZCJHOtsARTXEBRE//AGKQ4PwXYQA+nSoHOkVxBIxNZWpQfTclS
ntmRAm4Am6JI69UlHvzL39FYiL1lfrujTng3l4xcU1pGshlOrbimdfcWzRyhJlF4L6gjlf4ngVTg
xyhNyEaeeCYWu5cTx5if2uj76iIsq5cUl0uMKzLs5uR3QVwpqjfjaltJt87JtolMLW6dJ3JHs7K/
s7DIlCUTN+bJkm9+7UCzCK2HKH692+F4fyPs1B8l8wH2ttTtO1SwXR9HrlDlLUh0pJb2CLTQ46QM
GTKlqRYn5TqNXqxkRQs86qzElRWlaf5UWptFpvlEWPQJQg2WhGEAQW/+4Y9fJeXsVSxltY5ov8f1
opO67AFPE/lQG/nN45fEV8yLFyvP0pd2LMr6YburoCNSWrTdPB2fZVWt+ebRkzokdfo5bGF6NxtS
IaQjQEWUxfmqZet2tkg6pQb6uaFbtieR/w/elPQcA9LL8DM/A0emifoZFUJqhvHnlA6tyHKL4h9R
C+jqkqGhydRhw/RsugS5OSbkJpxHQXCROtAWPJN9ltBj80IN49AAjXedRj5edmPFfTw1HsSezAti
vDb3PcwrXFibci1an7mtGVdIBXP7WRtChdWmDXA9b6hOzMaUN5aWo4lSy4V7RmF7w7H5aM6VoLWd
InFR5IW0H+dIdbXxTt0P0ztij4/xKg7Fho5+fpt2nGJP5j3z0pgOEELvwUjPxjtDM/vvZiCke8NO
JE0kTSRNJE0kTSRNJE0kTSRdg++wjooqqZrc1mP9nUKpBAN/gAPdgnH8aPCXDx8GgvTy8pHsvWt8
7wMntF0EPDtA52VvJFSHSW5wN3SHi2+vjVRHkMxl5/euQmjQUEmcNzZ1lgAiyef+9q8vrx78VCQV
tujFpE3GJZ0+9AXtQH/f5a2sogq/J25ZdJ/msyhd5p2MHh/qFSeeLfMGlxMNhIG6Gg4ewcGIg8Zx
yNP1jeYO9SpHk2WMbOvPF5hXc+BLXeB5jCMK1ByRV7n1iItk/sLBkg3HHA6lHDfIhlKrmLyoiJZk
Sbm8r4r6sG2UK3XgL9R41uhIqJI0uaFajYnxi3ljrRC7x3slTyU8xUEagqVmOaq8ni0HyhEGwfUM
3SZ2P0txRJOImjA3MSAlDQc2GWLk7YcX6w/+/bzIRerTe2MXt7tJshv5WGfJnzX+Nb6H7z+xj2mC
UZGn9+2J3g/kBfsff1gXySMxbT+sajbHNiFM8ntzmn1vd27jNkwyuCCSr2CEwfWN8GUpZXMjwqs0
ZV5Oo4ZdGw9LLWFZK+B4VSWjt16TeXDs2C1ASsbdlOd8TJebwIDVaqdCkp5/LDG0K0c6cHXKTbqQ
qyM5M3f72Ur4eZ0UDVf8TEoPajCX+4j8CknHlrom75jk6qJgSbsJNwYAbHUI5niJEx6AYUMd+L6L
PAe9H2Nug2sE9j0CHEL//S9UVXF5/7XGP9xAGwbkBwGiLwkU+Y/tUzDXJy//9h9fx3iFanQCl1Di
yNKJrpxO4wrn+YQmzx067gc7mYP9yqm5cKFnex7yFblol4JTK4th8mWkH6rouuP7wPFCafIDEfls
NzyRP4h8x7EBCD1vMPm/FdFiFZ1Na0zRHRimGyEIgQsPfbnWQwP2yQkKAQqCQECPfepx1U8OCo/X
SdNjyx431jLMNPQd23ZtkU6MYNoFb4ccsrkMfMd1hVOGznsFO3SFxAm8Qyi44ivQIAR1r01NzoET
QPe4nMcuoi58s8SRfxDy5DT0/gbCL7iyPuX5twSTX04vSttHkGyn+qhV9xeUaAS2F9oeAO9/ZBTZ
0mv5d0sYAg6ZI57dEHY58nId30aemCANu9y3TSB0ADEtgSPar9HZ2p5KdCcue2vzVW/MztdFF0p7
aJj2kOw6bEdoJr0BxJ+cduK20QZV0vEKB/KDRkpmAykFXGzo+a6k7wk+2P0MTPQP3tF4PnDJavLP
iGj1Ko+TeYLjHi68xs6NjpG6roq6I+gij0xVWWobpXfGU+t9N9Qisul2AuAPoZboszeeWv/6qd13
HmlfrvwRFzTFbXNOzG924tuD4PbTp/hHjDzkrl+JbFcDLktFbP0vDopzcRii4aK7PeqGJzH5SdWn
4Lv80B4OJ5sxUFZRsetfRF4Q7Sb6nOaL4WGzsTQQsA4F71l9wsPid/LfChcZ50jeIEULLCUT4Joj
gaVbGRqYri5ue7glGdGIjKZCcjtcINuwWQU69yWXTchTkqYlzuJ2aAtc1UVWWlmdprQ5i7XCK9r3
Zpfczu2gItONTUoSmx5ifBsExoI8b+4gydc0qlnSNiTcBiS2o87GARYn+B+4plEku5EIhLUsrIc8
fuFOPtfXoPPs6aMORY4umoJHI6gijceIzIAlFhZ2+MQi9VQ6HB3L1xC9vVXITlonFPlkTdSHW1AB
TgVkn46jkUrwb1zkVoqzRbWkvUX5GcaBBuOh0Ii9++jsMSrv1sskTdYsgY1sl/GsLhKCEBfR06/M
0DZf46t16GiB7eb9+V4Y6nn0rOxWQiGg+my2BhFjEs2+LYq8zuLbdbY4uEQcOf4wveUAvGBa33rw
cFa36BobcOH6CgKpY71gAGq7b94o2ZxsNr7Qnqv85T1EZuFLsof6hnsIcAwTUCWrJFsI2h9CU9gF
phVz3OZLdmgMNC/5RiW0TTHaKHavjhEV942iH1ExEMj0DhuEzwqt+Fs1mbaGAqwn/LBI7/IiWSQZ
K7rJqA9C/IEV9cv4TRT7a6EPgVgJ8N7KFz1gjh0EEDpwyGNfp2wf3DQjuy0+lAk7ui7v4rymne3/
rPOK+Cmszr0p4ivxKiHySQXFFjJ9fd2Qj7lfH8DeaWqAWedq7uIXaMfiN/4GMs0XhiLxKpuR7Y7g
SW/Z9HE+yCRsMhxKTqTO0oGwMI7Aoj1aMbR2kRcxQNtZ01pkq3nDooWnxGrxCwE9mZtlzjcYREyU
kyiLGRuMtablMPvC+MuGzjH655gl5rjYRic3b/AXQTAZk4mHt23U3xpGuVs6WJVn092CN71dJ9Ck
VjxAevBC71Y9aHNF23X0bYCV4eBp4TrtoBRk2lxH1lrkJnFZcImR604W4S0t9NcspwO1be+r4G0o
AJyGQ89wgA/0WyblJIOwMI5gTk6018pB/IMf73CnsTA9FtUyKWLaAKdqfUPa1j96FsSXoURjfxmG
WLSxZajjxnu+FpANP3WVpCzCSnYOf9a4eJnX2Yyedt/HOMUV3pDRCTCLty8y4D2C7bsUAgFfDfe4
ZJUef1aZXjY4kfvnPG/Au9cqv3nGf8zin1ojdWg1/Gncp9n2dqQuo/DXvn6pgg/nv6RZVwXNvdld
/ynYhvjHS7D4APvr5DYHdUFROktl4I3AOH2m8ngaejKV2TDAMWnK48mRTVOG5kjQl6bM1z6WzWDN
oxj33J3ljjIer3S77wz8ygiXOmqfiJ6IHk40IfnoQgNQ+P2uAtusxROvBGKS2mvVN5dfXyJVaCRV
QDdVaVIqCgoYXciP1+2NJ0HrQg76bAeLXsZWuYzWgoCO1Jor5JP1+2VpHFWUpoxJ1vq8/LOOCgxs
mxrE9+zDH6t7u3n1OS86zZAADB0ZiUMRt+u8qMpd0/7Zy0yQmxgC7TDdBLXjSfJdkP3N/95pYl2k
97e3w0iQuv3gOJsEels5yQ+3+ppBOKl+tm9alD0UKAhyTswu2XSQ+V0Ws75FHNqwP+qJ+jYdT/iB
IW2MCONzlceY2rnP5IP32+sINt/8r+aLn8jKWY0pwegSJHkdgiy+EVHsow4VCRguEkpYmmTfLKpn
cVJGD+lBLi3tnLdRCmKecZPMx+535efzOeOIOOjV9wpxsyalxBwvCoyzw4xUoAo5WgLdBFY3cN4W
Nfzh2IIeVuG4/kmUkF8u6hnVPWKiB9f5ah7rUw6xgRm3ispvx51FbwxHZ/EVkW5ngwporJuBzMYL
bXMkaHUzOGqXP/xBN6DzpLJinEYvrKqdaPqjIFbhKtuRDcynpJilh6WvTbEikoBwhrBCs+3IR/x0
OwCljhKcPp5mDTME6pAZ5I199jzF7BTEkrMMvu0ORzqLZXAuyTI457cMzgVYBo4Glkt2fRUr32o2
U6u6alrtrok3lmdlVdT85GPH81RnlBidczWLG2rC4/iu0AO65ccXmT8O5hEXVTKLUitKk0VmPUQl
JhsnvLl2bGc2+P2RAQh9FRUVxY6Ih978O4/K6kDUD8k3XN4+rNbvV8kKf31Z43tG5g19ixNm6nSQ
AT5Ajmlp9a8Ztuu8WbG5CmJD/BVWKqPP/f6kpUPJvjux8VXMDidZcVRsUrCG6jh/yii9d0RUycyK
ylmScAO5rsrD9/jcg+H2ERoPEuN5VKeVhbNZLowTeEgLG2lC9Imo2bc8CaxCNydJtsT0Ku94ywvt
47aiXaVWSVkq32Q4ksWPZnnkZi4E1zBe7dPram4F3DGBrlY2GiA9XOBHnFUNwP5rYjtji9oiq3rh
n68GNlRD27cK+1jERHQ6SDj6GGtzBiiWNSPeiKD7CkQB0MVg29KMD964r+wDZvkr/Fw1DyJLSIGj
1Q366Qbam6/foJ//++tnKxjcH+9MxD4lGVHl0gLQBddCM5tg10LsDYRMIbo3s1wMyWT9yh+iglA+
hkJPdmIXpcU2GPzp7Hq956+ejBxwuQ/T8F1nFe8CLGNY8IRY6IxYAGnWDdqJ+//Zu9bnRo1s/9fE
H24NNt28U+VyZWYyu0llN1s7ya37zYVES2IWAQEk2/vX3z7d6AUNahqQsMdbWxlbtvt3Tj/P+5Bs
21AC1EB4cLyY1X8RwXn60GjM/zfPCKsC7ke5+BA4znALeAx2maMgRsQXRzQujmheHXHI40iShfgM
Ol4/kBPmAKUuJEuFG/SEcMeH8AZcDfZ1aSSZR0neUKXK0gdj60g2EDDnWAPutRRkFO0EUXgzSuW8
T4475nKKwcEbbDKwFMT+Nlz6BX0UMj9fCX0qrj0Up3t0AZvmYChPfkgFzhWJ6YtahIsXLUhiUXVo
W2YFnY7z2hDWaPSDGnAKe6NIeWOlp63IXpgjNMwbXHqOoQ/FFccpUUV2AymRzpVjLS/8YgMvZsC/
FtePw6bVE/PI+XpAzMvqS/sP7gFM4YEeAvhUMpBLAxoC1zrBtS6Geypf4gvhGvppFTE0IC6vXnTy
TolOj3EhRrFCWPqrZNQ4YdR4u4w6J4w6b5VR8+QuNPvfhccPDuRu+EWRhbONuPq7JSUftKE9hzmz
5gneORaqXdbLaZYlLWew124XqSUkqjF7wJCqR9BnpSuLrI1+/d9bJ/dEb0AwQw2x0vbQK91IWONq
Y3Ow1Q4Skj9SfeKRUVALtu2JAwGKJMtPBUh2dYlTYKxh4Gr3JP+BoFw3Rq/gRoZkJj8N72ZRMmPX
YRi3tlaypfyEDSBH7kgBnNYIajrqmLyzh7YHXGTJWgv8wofvxLEpRg846LQEreJ4OAHD2eWLaSSf
019pqj1nK2wX3h8CoADppC7gCQkQuSuKXzWQ2205eT+x53UERvfykjmC5eW/IWIbSthr0JxTpHPr
V8DEl8c0vO8D07IGPS8QpsB8nzF0UonC/zaGLmPdda4wxdYVtq/3fWBKrWelCu5iE0X5HBLijr4k
EWEde4NwsSAZfMX79Ai3EZJK/Gls25EmYQx2fXob/+fkG97NY+VnMclzUdOWMy4mOcQwjknWVnYT
m0OglMJrw0vi2sbAK5ezzp0tiyaVPDXcFA6GNcJELql040erELpgv9yV/0IuGmF+Ch4SSrdba+F+
U8pq7EnXSjj2JFTgZC1QjWAtY5dtvUaaxIwsKBWr9ok0x53Im5KIWoiyNhLTRVg0dAOU8gepQG7D
nIWuQiq20AtgIIVzsgOF6k87b17CQkC1gt40SwJ5U7MXDX4u1g3sHqjH0Zg1fAju8sO4IXLG8noy
WyS8q5TANwUBK10G5w990+gPaOTx8dTpP5l8Xj2u7BGYkTSCki67PV/mDc9XYSTux6FbXV7u+j4T
oedC+JbHzzLG5V/owXTRBThv5tnsc+B2KGWcAGumnrO0XSqKZuITbkuZw86zvSJ0O7cC6T2A0iRl
flltQV+oMh4updob3GOlyC9uaGpIFadoZK8sVkWH2j/AOp1SemcG+W1aN2HaQ8zlHrbws6U4gN1T
ef9a2cI92ULoDJiho6aW6T0Gr83ZikQp3YBp9FB3snrGoFA9l0dixvClZ6zqre03Y3s+DHU+sBIf
VWesFB/4LB/Opfmo+loH4eNbTkX6+YYpu2DIZQUODteaiEWZbGY1XNyOK6H+IlMFd0YWSdacXYtd
bxjkQ3Zf0T7Hpozbphmx7XZ6ULqeOjKH25mTWUi7G+KZJTRsbxhMyTMik+/SCa79aMhYg5HbAc7P
c0isPsOkOw4q7n39YL076tlLwB4Y9yygPjDgisp355bUGQPzzILK8Im7Yp6dXWtg1J1eeWaCvZFg
z8yxxH2ETQXYs9PsDAC8JoUv0LmEYUL20Hi4P57ThMctAkyZZQ6pImFNxYWivmWhTlCnFqZjoeAI
lS7ek58F3NYoSGFw3T7sqUE6w8+o+Ew4w8/nfJOBn0/El4cHn8o2NNQdjVUiye++pWTJ2uqFftR4
sG3dUAZI49PxIWHTj9KVL46ZknkeXCkg5bLEbeNnyZIuTx5uybAYXQvNlDQdRb6Fc9bMo1pqBn85
LmhvGrruNhe1t1wbSdwBRkXvD+N5xjyoEBnE46qo1pWfey5MZPfDYvVqN8XC1SA3vW6+Qq4uE+Jk
GM0Qqb/JCQsZm2dhWmilq7iOZVq22Q/qwM08z8WRwU4/hEql3z1WKqgwJeOZNUwZboATkWkRy1wq
chD9lt9ugUijEOwyzxqk0hbQAzQVGAyQIZMcalQvyDiHelVJBtdKkcyT6M6f09XJtfInJGjxV2Cp
jD8JzOPMK/4RCyIRBI84VmvwSCcsFqeSNrTXtt1RORM3JrIGxvxl98M/hLPpmggNgrgr2F1GeewN
XnESiB1NUAltqGVkZ7B1LU2Mu7NZ8nRn6E6ZwWzoRvkVc5sKQ3a7AXERb4d0HDrDJUlALE1ppyKX
ZI5PE08HJIYAQE4TkDMUkMMF5GRTpJtCjMaPQY/FgoJP+XxF787WeG5soJ4YrNxHO4bXC4OVs9sU
EHPDIkWfsoQesDNlOJCU5fj8YsFpwuzG4k/A7ie18uHV3EFGJRVXMpAXR8XmOsE44EezDx9A8DqL
SiqHvp8nGajtu+9vUj/Pn5Is2P1g931lqiqPZWWUiRHM3fN9d/DRfoWA5wJoTNY+q6UZvYiPjYmH
2ML0aJ6+vR138iLM8uIS0LKpHudxFbjklqaR4ATh1K8JLylWJFNYS6/noRGHwtnqo55EBf3f3/+t
PYVR9Bv9YdnDSWxu6SSg1WdvkSSVtlC8P0OPnc7bUwfaCsQIFuBUJsAxe8U+lBKulsZQRuTYg9wu
MZU581VCcm2ba2kIkc3pi6hDL+VaSklyO0OOgHa5Ge7NrmSbWAUg0VL2RCPrtHhplRaRjOG7aXiI
SyuzbXm2JMejm6G0GYl1FXOI6QMQFhHHMWdJ8HI7X4bds9elmSvNYHFyUjNSaK2SUm9VWKyhD8oy
O23f/K1fssqVzrUfv2jPq0xsmJOpoXWe1f+SLNEiEi+LlVqfw24QNYtEr0nbeWN9lqnA48ubWppa
MtXaDE8MFdNHkwSPVBF85MaxXJQwJ2W+7ITwwL9WmLPrwpTB/ltoH7omQQhvSOntFFixdanAqyas
NFiwLKOw4I/W7q3KlTOcGpHKPeanEAxMryU/FpXOdgxviLhcZuVi/pSahQarrE1l5PKdSKMH1svr
Hum6Qp6NqZ8X4vmkcfNurYUUMmR6SDfB7AaHJoaNVlZd5t07z8gsXD6u/xI1MOo++jhrgc5KPmt6
NtSZQO2LAL3gGhfBlsmeNhVbhfOOunvZlVUdHWP+mDhw+oZxHccdjzfmGfJZabpj9nhjttHO2xBd
2/rR2Z3I/Ru3KwbjU1kN1dbKVB95R/Nxz1LRC2DIBNaZlgT5WIl8q4l8HkigLcI4zFckaNXrsEyg
eRPUcaDTKhFHNiFHpqVQM0ItBrnEYlG7YkAsaSs6Am3y2NRQy0Yq1bda3gCnwOkB82H3MxLcF9mG
1NrVXJ5z/N1ybny3nDsqnCuAnmEdIX2Au4uZAKjev1c0G0uaVWN9B1nwBnglZaAZdp1sSZkbW+aG
57zQdSb24+M+L1u+ma+gJE5FAO39spWVw1rtbTL2EtNuGB8efJgV1qS8rW6YjCZrVqzN6zCfH20A
Oo5Yj/G6D71ngEVzlvnAdHdusrB4oWLGnKRNVYeQYfUAhOio0xYvbDvPwtjPAJh+njcCe7o68LHC
Blif/cK/zcPiubaTPbsHzCbeC1FMJNzl18/9OXwGgSlnLBFSYcjnuWRIbG6PpVLtyI0lzlZCg/C+
9o+dBiqT4KrTAe5v8DXvsmyY0XR/fYI9BZK3q2EUin8mLlxgtPnMBqb7qIx95WcaOvw5nX4YX/GZ
uBjFuAxegFr8x7TznXXWjQ3Ft/5siaOYKCO8aQKaxqYxdpFZxzEbjI9G2pFud99EBxL8WZ5Em4IX
JM6puJFqT6uwIHnq02uq5huQqW5UBdu9bXdB5i+1ZMsmaZ0Uh35jLeWvpMKpGxGP+RT6ajE28SDj
56vk6d9Q/IJkv6gbiCWAllCpDFv6s6ULGPIcGZueq2ZKohJLdmRM2lX6jZKlgmVPkQYKVqOAG7RK
i62KO2t4YqiOwJwsArPuVehhxHDf6bRIgtyWSRHESwFOkSaNfp5BBANLDpgWhbPMDyNQ9yY1e7tT
qOEJnsOpEUVP4tRIKvc9nv5pnBqNp+dxOtSVwTR4Is809+XXXV1XXLk0C+Niwht+QTfWxC6uTeZH
kzx+kyIKgrLiYEWiYFpzlWYJmEDB8jgpuoqpicrFdmoLF4I7fOJ31aUJPIm3aFaRTamYD0Ua5hHx
sysr6tM2Frzr5+/6+bt+/q6fv+vn7/r5u34+USP6u3b+rp2/a+fv2vm7dv6unV9YO5ep4zVF7Zy3
5WRhZ5CABTVFKmmxLIpDlw2Ndc6HxpZsFCu/0JaQwc1Czp5WIYg3Bb1oW9IyEMYy8QreAEwKR7b0
0UZGwpGLl4jkK0J3YUAgYxFqCNaDbDzV8avtWI7w4oQnY5JgSMBBpgqPNrJRCWivVPeC8ppbkkGL
s9XLLAsDwHkIC7LO76Eh6I8/IWyYlu384Hzqnpw3JPoH9sFH9sE7MZNdlw9TpO5T+YHr6WjyE/ZW
SP5wgZ1ivjYepzTKFeab06L/xIim/16BBH82D8gP+ufFchV+o/9eY9d9/PT5ZwpNJ+DL3/7+y6/8
y6sth/Xxn7/9YH3ma1J+c0PlYfqnxWNMnqIwJnmtQvbl1qokiS/YpOjjC1mSxJfyldD34cz6f5g6
f+9o72jn0SCt88fb25puGCcxq2ZAlc8PTb/DXdH18lNXInlPTiPB8DmUGdBYlkmRQKnT4E0w0O0v
8HR4bqbv1bL0do7F5JfgIAMpkMpfcCrm00ee/pfK/BcX+c+vGZdCDMvxPox9hBT/gstBjx8fPz1+
fvx5wrcKUHvDQs7urRte2PAe6VO/BkuKjT3FzsSn+MMb5/Ho7lC9eb5XfvcMe/rbkj567vv9vJj4
e5QZGv+kTMgupwnru2ky6oUWR56o2onFk7LFTpy8kcyzJdfocHz0d7Zl2bZeKdt70c3A3xHXzv7l
/I6YRm4vAamZ7aeMcqdRBlONlTWDyBv4gvXgYe9U5NOJWSdBuAhJUFZt4U0Xbot1egME3x+YrLVr
60UdL4urTl33CCHLaopSqsMxcli41v7Bhl/y0xAajna3tcmU/KtN1vM6glJCZVhUdUOT+SoRRIMM
i7TeREUIPWS1A2Y9eMkyL48p01ikF6a2242icvraWwYX1YUyLo95DTb17wTzCgfWsK5wMV1h20qV
whzorrf07+JYatdYxSvsVnx5TPsKpxLJ9Du9MqO89i2E6vP/7rsIi7uM6bbq6Ac+tmFAEo2HK0Nv
TH/J+qrv2t2zXgTr1LyBgrX37Jfv6LdVUjzsdrzdxyLG7qi/jEeH9KTYImKghw/rsEuVkFyj34m3
AMKqAJzHYpUlRRGVNXuZdspYPO2uekvxb3a/eu/B/zjvfppGZf1NoLhCnuO55usnz5k2ea54K/O2
TFx9Df0oWQqLtCPdUIVon4ETffVwXnaTgGpGZoQxsl8TLfhHXRdPPasfzxNwdqk3orroMr3RLsOu
hczz7Vnq/B5Q+GaDBmAFK1hxRAr/P6e7rDd7IGodrskfJ3foDRvhp4I1fKpR6nkGdt8SoUi0vKxQ
/OHuh28b3n9HFaLT9QXeNNH1BYTdpZEfxjVF7/y18k7Z0JT5c2hdoJF4njTdOUg3nWFBmvhvlY5M
Kh1pr4gO3EzHbLOAotOBlvnxklfUpmuba/NNltEb5I+woa42knpgsNLt33iTPfnbw6a09Js4Xd2j
UhTZBGFyR3+hKsTq59tDviZCjWZC5348JzxbVtyv77wtqR1AMBN7Jk3KZOPjrSiemNMhxWomhbc1
9mdJJnzlsG6iafBq6q7r9uNVUWTDVEWq+CEQ1idCygBb4G3SYhuOLbNf7HNnI4CsfsgfZ1kDokPi
uQpAlWHXKVnWGlChNzdsizbPG1lucigMIJplx3C7A7ReKwbrkd7S+sRwxu2JLDEhxVMobpgkdxt2
n45hx5SyCCqMKWfdUxjYRo6D+60b1S9etF1rU+HSWTK6hjvC0rlnqGZatTYjiyQj0OTQ1yAeRHjn
6RLbD7WoEGXrWrGeJKOMtQ3OS+xsskgs/TuW6vAVWwZDG9xCPia47MFBeCwKJE8YalFqdl2mhA0h
Las/d8d9s1jXaOhgN/dZa0IS3K6TbffDdw7zUjivmbfmS3EM0yL/6kuS3ZtdndPt+1fGuujZ/TAk
LWUnYrSMpQyEfJkTZlyBNNtAaKKkyV670rSx57npdUaW540CpkFlN5LVi2gNy5zcxJu6fsYxLqeQ
TpYu89J0GZbu9STs4LAX7UsTmarDXzpO4UJ0SN8MlyBGVjar0ZLn/hJKI86zJM+1IGFtePnHRCNb
aHMZhHnqF3Nhu3KK6A4OmzcZEqj436j0t6EcyTMiPCpUkXAr7m7sSdgLUdUuRkWTu782SUEP+XwF
HdALQYwTNjzFoal0Ewd+FkAAPDmYubgd5lA6kbVyZk5R9rAxIQsqE7a2zLZMV5GqI9sK0FCFhxm4
WySJoHCqgS86EWK29fHYHodd4DKvsVnuN9nFHpTro73etNLm+KwLGVWe83OMXpJB3t9h130Y3gPx
ohpD8ioArcc2j8o2O0ywl2FPh/HWj8KgmXvDGfwgC7EHXPtNmpJs7udEg28bWTP0/qdVBCWI+XWU
JjGf35k60vyogHbqBX1Sd/tG0IV9yhAff/8Ha/idUWlLK3tLiBbEMhUBDgtyAmXcpjUMd1gIPCDE
8cD1YR1bcdjPv//jE1/T31jhZy6GCqVP11OQoWJ/Gy559GjFH7T7ljLzEJDIf7nHVjVETcY3iWwB
W1//929fEhCnYeCd+idyMthIEeHAjQiLKv/5dlnLYsCKYP48DLCWhs9EbKs3dc/qPrSpm1TfyLR8
lWyi4OC4vKs5LZ0+dIspxh6aKsWGePub2O2/Wdj4d01N3LDrDoqQxtU9iG19UARBQq+USCSPIHR9
DQWxoAf3tigWNU1bKthYCiKnYkCSUSWhshqwT7GB8MAwM8GiI6lFdzotyQOi6rrrWVQGRLaptEAy
gPQWvX2uCwOuNdD4z8DLba00q9RNLT9hdQ6QlClHnoNaMQw87AwZtfGdgcZnR7D+WFY9lH0akIC8
0SP8pOPJUDoLrugtyl/iOVOGArIgWYtwbLm2IkZFKOOQJVBd9ZQJ6ENeIytlZ3eefSIOakCuKsSB
k4MgxvrJlNIlulnny3vjJkhiUqvFbOORUDFDxZ1zaBXhDAaHFOAwPrNsQiOxjB9EOLLcav3rp69f
GxZM4nrDhgB45gcHu10U+sLYI+TICJDC8Q+M1ZFYhyf+yf0vX39/xDrGH1gNFXL/zf9AtTswHt7X
c5+MkYlZJMnMz7qn6/efA9e1vMfafkXW+Mia62qWp9Wxx+ZazLJ+CVjt8rCbYvED1t0arnMBdinw
deb5f64D++N1YNHFFxcuTyHy6BcH3c6Pl9/MkV+EseCqQhe5Joec59lmNosILwrGTI3C9xfbuipr
c3++otIEl1nEj7sto3SfmbdTGC3fzBaZ35BH55nKvMRbKKzgF2CB1xZZstbCeE7lZzpxflSG1IvM
mobem0M2uAZagciKbcuE5mCRxRn21j4nkrKjrcIgIPF+Fy5CEjGNx99EQqHTNb1O0LxISnX9ZKgQ
+Z0MY1S+mSPsY7i0hOn4Mkr9aJzLaPx9Of/5z0/ar/8S837NVe8IrsQ7XLagETRNgHHVbW+OPwFf
V+GiePz1l69i9q+592VCGrDdj/0yXbwlssKW8ZkckTHsHMjE3/WdA+i9vCbFKhFah2xkKJKgwP7D
Y/nR4/2ff3zRqkKfgdzxpyOJSUmQaDZc94q7AQ/GPg/7qDO/9aONULqxHeOKjNvDXAXAYrKpMC60
7cq4dkfj1kA9uIWR8ziE6hMUPOBfN5X9wLZE7TvsSKa27EN696ktCz8vuFCbH/8ZiWP/9lu6POS4
sN/5AX/5lpLlIc3FNAznkOpi10quO55MxJDE5dQ4aaJSjEjqRhT5L+ZJ+sJiMKItySEJsEFXwkZb
GHCXoR9SugJkCIDjlKk16/1NF1BRRREykPn5SuPVE6GKtb8OoxcNHFULX5xnbLqmMhbxC/JzxHS6
f0Jd45RiIIHL0JVSWysYOZlvsrB4qYVlM3WVyRwwfbVu78hBgzKEb59V82M7oIgjNwzXU0WBYEQu
lvnxS2OwoGOprn4lDpIFYgoOumf2YCAj3yCRcccA3P55kYVzVtNdbD5wvInyw6vcl5s3oDubvmZ0
JwQv9GYuCL0+ocARlyTnZWXBXTLsOqEChZBb5Tv0xIl1ni7+047U2Z53tWcReu/UnsWyIQ97FS0L
e22vIkL0hFu9Z5f71pOlQi6s8i4S3vLYvuBOEUbByrjHLz2bcQ51ChakmK9YgHCWCHeygZDbf/pE
YLCrmbZwn8S1qjOjQVaR7NGZWywux12JuUiSi2PWF/FtTW1n7ugF7w58wQdQMOfs/W5autV2v1tU
yJaZJ3fgLWgrYjK30y5rjQTNDhSEZLK1zvA1gAfF0Ju4gFwALeTPyC5XhgNrTH0RF4dShSTr2W66
eMZfsimiENQ7KsnsTRmA26TeIxkZuRn7E4xNMqGz0FAdGZIY6W5gIeTVCHIZi38DuTyHK/lPKH7C
ZcTNlpF3jZXWTWUNTL3bKjcYjFiKdAx3ScAxw3gebdipiQ/4glRb0+rFX6MpwpMxOYoHhhJ1dFVP
jyEss6t8IJ6LzKcqFDRe2CfsRVR428AR8ZdQYLXQyF+bcCtq0WS6o+Cu/QhWhgRiY5E5DmhpJxFg
Oo4xBqQIyZY5r0iAtPC3IQWAOjONz4Epk/khHP2oIRrHuaX/qd+N+isZXttSSWOdD4uyG5tnpDL9
mMsrUA3Bn0XiUGFbRkKbBh5kh4HlEG7OvVUxJ0uwXcHtSn+Uix0dSBkyW/OmL+BdaczEd8xuAMKn
QoQl8CT8f3vv3uW4jeSJ/r+fYnbPSde2bVYS4Nt78njrOfZ0te3rck/39J6dOZQEpeiiSJmk8tH3
3O9+AZB6MgCCJEgpM9VdzlQqlfxFBAJAIBAPpaVAyEsRZuxucGvwxFECz1TT7M9RvuZuUWYpsq6Y
LAAZrO5nd+Voz/e68QGIMhSVgpUaJm/FD+xQ6MVDFabDrpbo5OFlxlkmJC/5AZf4CGTe/qZFqIYp
dJSoGYVqjOX8DTFPnobldQzObklCspAXSqk2VGqksDzlgi16IGuWBuUrkz7YMQjVz0EqIYwWFKh2
S4cjppt2TrLCqBZzeEHwOyLsWICw4AHiRwenK2K5ujFDFSxla3V8bE/zV0xpVQN1nXCBlC18qA1K
j/FsRWOl6lklYGNzB5Vm0a2gIoxKOcqGQYr23Ov7dMGV36zeeA2bg4f0i5Z5LrqI1zWld6xnIdgK
paoWxQtxQbMZmbgfwDxm0bQJk6AVkzsSGwnF2kRkGJM4nX4pffJVeQJInkqmboP6UFR2li6pqnIW
6aCmxWLr2AGXf5UwrAZsK5sZJe8HY1tjHTjcK42v0zRx5uk6mR3eOpdp+37Hp7d0hFmm3Q8oI6uQ
mTo8mobtp3EciQo/YVMldLFBaA24xkpwcsXI643NSsRVmaEPiwzOlzO7ypO7FLnqsXD6bGqIr9+Q
6znaYJJUhoSV7BIxEt9y4RNX0Hs86FSBspn5DFJ0K4spj5LVuiw91cXH6/fC7uZZNr2uaxKdOsmM
PEi9qQip1HqUPp6vrlTf+EF2wupBLTIyh/NecP+VojUqQqajkUUYwrV0Q3z/2yLKv6H/wm+YudAN
EYrH+z28C6tTyzqLDWpkraqiPjnsBkAdgeIw50E40TyiqxJd2XOBjjsqSanHEHt3hPs4ZZI1PQbe
/CVNrvC7K2xiRL/8lN7Rr4FHv5joynpjWvSLZdEf//Uvv9Xu/UYih4L550CQQckxzoMY0zI+kslp
ifltTfJZ+Hi+w3VyCW2JsYy/hNmgtJRLSZR8odYhteiZZ7s8pgldiirZgadESct+w4b4RKu2KXuy
h1NTOg75ISHNc7F3z7HkZ2ev4dokiteZIGi0Lwds1zMe8rgs4mmUwZZAqSGVxLEGPhow83phENSX
O77f86jeblV7GjgK6fyT+MVVcmtABN4PiBpaFGnB4mxZvyC6q1NZ8SLVsIsf9WZH55UFyFaUMzYO
hh3yzwQddC1kMZFhMpsQVoR/+uWoMF7pGeg633f3bevJMhJUTzJbPRy8M+IXYGS6SHkw1v4w1Mso
eV0nJDV/D/cbaAjsDmPcuJ912adgDhJjXcx9Y0GYQW2w+BLIz2R2VdR0wqPdedAQd6nld7fb0px5
9E9iJOSWjk65yPDilLULlpb6AJ7CkiJjtytTI2NIgigwVyU42gr6sgnmXngqqV2WvAgVA4U5Q57C
ANpIzNmeH2WTCym84nFwR6yCniBfl4CvWTDYazpvX5fNG2+j+fEapNKX+pQwdcmBdodKLEvz87tG
AQZdwcubkLJ23MZvXSZqgRVmPZVAAFt+ddkW01K5ouuACdulClD4BOzhxgS024yQBDvmg2MeFStV
TEMA+WK11tmddh7dJpsQxSqdOBFlU6jsMntg8MYP4fIuUHvgdRvA6TyAqzSOpo9ssSe3dGs2pmHM
OhwJe6AqtVVpUJVKOSpoBFqxrqsZBsMXGmZnuVHLprQCjcm6KODbGkvltNSoE22MQdRZbLsWheGE
Lb2TOEy+wD5yZPceHBFep9NZI0esl0qWhLGoP6mt0nCgBUf7eJJlV+n+piPsEJLkphM/eeZg7wlH
Hzd5QVYYjPzTi2FBjKikobQBscEIar/ncGgd4Rrd9C1WMqtOuNKRUIAyp4YknHehZss10V4+X0I7
6o5SOmHKkyak/jYe7tk4sHs+m3uSylsvci+Kd7WCrrtudcPlmKaObVAS+ccQDuXj8M5J/egu4xG4
AUseqI1Z8OjqNJsJlBX12Ge3PsP9csi1mgmov/2jqwa3bTUITtDhwu746L3k4s1+JpSSil7Z40jJ
EUuprLhe5uhzvL16BmBNwq54tekyI5P1rTFJZ4/GJJx+uc3qsVKqOZBNgEd8Aa3GHA1SBP3QZn95
HRTF7zYbFeRzgKJfz5KUxRcIbohU/MQNPGT0AJIudzCAVYPNUVBQV0Hx1nT0+fdGumIR7MxsTtYx
3AlJqXNHAzfb6HjJKaArM+VVEKvzFE7Z2rKK9mfgQ+dzNQQW1oI3u1LNJsImRHUTJrYpSwuXVPH1
zL7VJjNmFW/T2nm/Dbrpr6jNy64oktuv2EeKaFlvE2AhW+n44TZxvQxz8GTtO6jP41fl/bkxZdHc
8DlXafg9BVEeQME+HNvvD6aS+VGmSeCOWJUPh+eD8dsk5E5I53z3BnbKROg/1iR7ZBFa4ZLfif1x
c/UBX/n21Rt89cG58t9f+ceq55sa+YufNX8WhscP2SphHrbbYR3h81m6dDgIPxPhxn2Ee64Mchdr
w/RviSEphHDE4aDMxM+HGfHEVrp5OTtu4qfLzd3GchMGCYD2gNff+OgZIxB04mZnH3YtwWIHDVXU
WOQFfX69dZ0Ovoa8XoeQeRHmyvPYuR92g8gOMGra0Jlyunlnxl2+MdXhgpYKeuxAdUjWCe/0wRKk
d+3rVqz2KKhZnko/YRCIHJvHKkco8El7DchrxAMeDBWHHIgz0UbxVNuT5tqe9EXbk2banrTU9qRY
25MSbU9KtT1ppW8udXlSwzLIsg5ZBYaE7k9s3wXupTpSm2vj+w9tT7rT9qS1ticV2p50r+1Jt9qe
9KDtSY/anoS0Pemf2p6EtT3J0vYkW9uTHG1P8rQ9ydX2JF/bk0xtTwq0Pen3M7SH9Fl7+izdRacn
QfG3kbYnlbVR9k1uMB5PxasPP5+Fp0ndXihQCfh05JEIPHixg19PpZAPCL3PV/ws+RI5w6zAf+J8
xc+Ir7IhA/P6sTI8vXwxuCMJ91EcG7zoSkYo6zlzORTrLMn5tbfBc1ereEIoMUCldaqjHqHKK7B2
jk4VMMiv82dpwYsrwBXBvH4PZ7ECRrGgX+6zSJB3qRKCD2OwR5b9WFncg3ihd1RqMTt44AJ6ji3k
4X7BSjvfh1Eh0GOstBPaQ3MA3fHxaAkwZLTzE5dxkX4hSfRPOvlnKS+4VhaRWtWTzlQWN29ouQSq
ABgC6IrwkMeFwVpHR8tVmoGab2GrN/lHMHQViqD8dpUo3i5Ieb32Gu6NlKT5erpgBdVD1lahlvzX
iGB9Z0K2cLhmi10RbasbVCs4Ov5NzkKbinT3ibIfmKTWgoMkJRBak7MXTks/Uy7R+/Hx329+uLHM
Q7cBpaCig1Uh+GtOshOSY3FydI/VETXM+gEWODc4rRxwWzvgmcrBOpCD9WLl4B3IwTulHPQC48bF
k9eGlq2dWD9N/VbQfWq06QvWuI4OR5RAbY7aQ55IKPJF9YUKRb7CvlChyJfbUwul/wpntVl1ywy5
bdWoKf0M+8tQ1M+42SfVmlrZ2JXkMWfZPmWnWaQ1UzqEBWxp3Nw2H1wPL7t2YhqWMMEsDbxTCUdJ
sYY+Ulid9+KzUiy5mC6KVVesoc9oVmd75qwUSy6mi2LVFWvoQ6/V2SY8K8VqLSZBQ8DDhB6o/v15
rof9FcFuZQ4LyuUgheIlrelS1oNx7NtuBFkjEiRQGdzJScQLm4ZZcb3pelJlRAgaGXjNGdgykB0n
2/e4RKOkIBnFvzG/ipa36AY/YIMXeOPZdfQtfBNOyFGdt/Laxu6kkluKtq8MwT2g5Ti+Cs+oGWFT
LJqVL2Vomw5qAlSVJQCLUKvqZ9FtkmabHjZQMSKruRGcDIa3NRB2yPF93OfhPbTl8C12M31jtW8x
TIk7Si9Pwrvolk/Q6zCh8zBjTTEisBKK5Xi9nr+f8pIX03RG6vUpPAf5mkCq2s8YruSDPM/XIS1e
DCFvvC20XV1s7bWmqkhovKk06Ronu6lUgb1lxSymiyie7WODoRHNV9wtBHs7+QJX1LYHk6cAEilU
8W7BWMMVia20RndjsAE6cHXN8xMpDVy5yxtKnqCyKNVxsBxNJn1Hcd2mrJYSvNYHZ0z+XrFe1hdQ
1OUNWVqUKl9P+JgLC20jrWt7TgpWj4G//uuvn27kLDYXvKLYrhCbjf8mqFJc0xAj3Atlx2Edz1iQ
eEVh67acE/hjoH5f6zthP0FmOVZRVtQXd0m2lUw4Zd4O8ASFiV1XEyJH2vxoINbgFQreU7GBvW4M
WvDdma0JUSODvhCOd3dkpZtKlhYRycJsunjkZSLFvQSUTAJ/XCYDIdwsna6XzB20uwClh0c6nNGS
pOsCjnruB7lXgO8YvH7KcZA7OH/fI80cCkBBYeLhoOp8aQdbpuucpHfwXugic1C4On/aAcXz3EJo
OKzv0eBo4pQDhbJO3bFqnPVGe0zCZTTddJ/Y/Fg1LaUznVKSPQoSbNpNh7LqDriSNXTNQkqeNjGT
vBeLbdpijxP2dS3KG6x6wT1fYSlGZjMT4qOnQiMeKcSYXIhPhFjFfXtaLsYUVNOhEGvjZaBD4Wnl
OA/jmC9k1Rlb3DDTUtn+LszoYybN7sNsxlu0iOuvIg/pWtTqgFunepoUYZQIStf7/tAEgPeFKt4B
JdiDkxCb3Lxo2w12zFo7PAVE9KIRN0NIz+t06G65oTaPKLDE1kXYNDWx2QQPu0YQVrl77iNnZLaX
c2Mrtp5u3bH5oYhYiHibGhs/T9lTUbSleo7ZC2ivCRaLRqB4G2iWLg2vsHoRM16dzwhzY53Q19MF
K8YBX8V4vYAXEat2X7ZpMMLycpIfXHjp0Dzn/ZJ3EwXOD3c08V6VK93HW3WoIXuAJjkxDQE3LnO1
0SyKVV7Wtb9lTfWmC0HPQE8TUwCggaD8Cl+XGKuZKLjGe7JsQYgYRLSeFaIF32e6vSD3Sp5QtM3h
zyjLGhkLajrGsJnqYV3jqUTC5oIJWlSVLFfFdWfvEvyIAD4YmWBhxyq38MhSHIZm6dNNtB/gfl+d
mBTEWLGCIECsooovTAmHAcgr2ViakPLwjhi/wPwYmjDK8t0ioeF+rPwe3oWlFzaOki+ywDVdIjtE
hDufODp5kgS0IF0aBzqYmjnFJtLJqSwWRatImzx3ljOoYDV47sTY28uJMOeNl8PZLDc2BnlUEPCk
ge0xQGt3JGqwdjPsIiNzg/XDUuNW6STXH7bOry7gTdS14uD6Y6ACo6sJV31glWyLXoh1LvtjfiGz
LY4wbkcpP1uCw5qmbvMvJPsk6oWyF96+hweHzHn6+JHskSrXsEoMgUt5E5dIJWBYlUvZ/mjpg2ne
HQcVqYbdUcIoT7qISeV4q5y27Co9gvUnsAJNzOp1hItjSXcvDZ5Ukq1XzOs3eZT621zP0oW6UyRq
+s/WMREn0zhKs1OMuooe6AJ6m76+jWoFnZX8NhKGyP2mu+aWoWqVhjMszH6sDOX5VkHc1ZOCzSWV
Oee1wYHjRJWMfDFOkhr7XdPhfsQIm4Embmp44tBeZOIToAaePQCoEM71A23jl5e+JTb9wFVZ6Wak
LWd7oGIubaXZ4KtxWe20oBfB7YfTdvBUMhgU2aK2BOuyOIlD2G1AVzLvKfFW3eDub6yScHcP+5qY
KwVYPBTfd3DNdWBHEhsdBHgQTBDL74e1CrOcGjxdAietdno5cOCkjEeS8O7Lu+hoFtRPmP+FwGWH
cRepHhkl+0zVp5nXb1Jzr/c0Tb9Egl6Srq1pXunw4x/hlHQf9HgmxbvyTaC1nKFLzfo68P2+DnxL
6XzUNOp76ctl8Xh+q9c5magNHrj3qqTRa1I1SVb2E1EBbKscHYMxhiQYfEiCMYYk6D0rA7P/kDTk
iPtK4Z/BSOvxExkXlawv2biwnsuWidjJb5UmOZzh6Tu6BLY5sJdunQqSJczmRVisc1bQ8avS2r/Z
fJRaXpzKTYeWqh5MWSWs+uFmHsY5aV8xU2kAehFS+iE8HYOEz2eQsKZBws9ukKzzGSRL0yBZz26Q
vIZBsscbJK/TIBXZmrQvitiO5i6EqOejNIyR+D7RdzUpYxnCvAgLziacZWdhXVLl3oJyqIGG7KYG
td4UN+J3esioOpKDF24Btgfgawe5qvseHd0Mgnwhu3fP6L6pCP21QaOw4GaB9vkoNTblbEgG2/bb
Pf8M+MCdIyTU+GBQ9Kd1XEBd1LSxUR7kBOVPbcvvhXPITQ0ROM65WuWngqgSM3BKFsGx20V9kGKT
TgpcbajEYsikqYilaFaehikIqjnUCQfe0BOZSQ3ZSKP2bVG+LzN/WPj9Prs3n/nbV9hkv6HfGNX0
2zyN6UZJZvTl5JF+Cel/m7/5qiAPxTwi8Qzd/ETu+aezJf3G3mc/ZSn7idWK3n0U33yVhbMovc3S
9QrdzMkyjMlX3PkxSR/wTZp8lZOYPn3zgSgsgcKMhOjmL2lG6DMTOdwVfsc4WURTxkq+SNcx54Bw
6lksBufofkES9q18mzWEZU9L2ZdFlNNvPJroqw2/P4SrFUnIDLKGlW53VVWv2QJCSCVGEqM2B4G9
zMJjbVQyibBKdiYrkStJmsIqdzUSIECM8OZlauIHjERrKB+rtH6gcdYPdFk/ntD6oaj4koUDq8SV
XpTvonyX0Xrao4XbLBW4Yx3fA5xBlwp8Ub6nonyY/hvS9aaq2pJSSioBw0oqpwCGPedpTaOSFZF/
SaPoBoRZrfMFu3shxno1o99yeY1qL9DEVHmJL8OyVML9pVilxrF7YvHtidLpsI2CU7j6oRCr5H5g
PFLDDUWhSTzmri41AE+FQlEq5ydhS4lDWbqXqQ2lKYPNUnJmWu108BC1ppCWaw6NCWaP6hu7xhw6
O9DE4UA5dAp8GtPHqaB+lO1pHr8Si5XLOdYVleDDLlB4PCgErCOepjEqw+7TMvy9tCXLiuRQDqBK
jGU7BkX67/TWkAogTcqg/o190JQi7pm6lxYYul7w3Qp0A0t5B2ouqYQR6KNAVkhYpb8dtgeSher5
xO6rBOLsD68v/zuuS/tbWf99JeOorehlRADZkGrey+GIGEQD5BTIZoPSWm/rXZIs0x5bBMNoQgW9
Yrmw2V3DCdFWidVpx3Oxl4HIj411u0HpokgNVMwasl09kmQMhcksXfI+z3cky9c5tZ2XbBiFxR8x
UgkjVGOSg2/IOf55yJl8BGxDoR3ouXFpvQgu0YscS62L/IXJEZkMXoS+2i9hKL3LUF6YfEJMOk9O
X50OwGZXLp2nxGXQUWGfFJPOS2DSfglM4hcxKb2Lvj5TfX2WTPpDTMqYvrgjVbM0STXaQCeOOGTA
UXKeOacMJFfmUhI24PYeNubb3fZ+EFbwUguOcZSji3aF8qhUi8cVueE/1YoCDgO6SaXm4OShuPkY
RjXH8rny62rg95cwzzvw6yorUiTRJGsYJreSjUDRBiOJtqMqPV2GB9eldPK7KJJpcF0qsevVLp+v
Mp2Y4wG0ibc4KGNOqV1C16Y4JrdhDMeSIM1gQigb69PdY9AVFSLcBRDrY08pftfvC8hD5atWgxxW
WEfQcvUJFEaFi2kj1+6nNJu882rTzI0Zk6i4xLrt6lrat+Vo21dOk/EzzdI4LuUWzgtWx5dKzyB/
rKM7pi0Uf7FrqRrN6NdoHtGPwQ1VkUrrHuyfFzmBdnIEEQIKqmCh50MMuGirNI22rCeAu9eXRxRm
6XsKi41lnxfoUdFhBsPLUfL+XUfOCN7pQSWRTglPR9FmmTQpO6pteByNImxuxeP25ms7TLxOF+8K
yd8GR40L01GpUWoFUlRWsTxTEafbC+pQnAegsG2hwJktkefWXSRLDQp0YVR2BBvAXHQMV8kQsu0T
+sdOC+6oyxkWr9kL5Fw4lGUsIV0gUj1VqRykBiNLO9U1WjrS5ZSA6MmrmKYz0ikGWE1ezV3DBtXx
/hlPtviMUhVM3Hi906WkNY2n0l/IVjlviVDZIRPu8aBSCbUf9CpdrVdwmUJvaGySdM8Clw2uqg2B
dTHYZD/Y2NbIkWzbsTSxBE7JRj6xip9QmU/Z5qNTns0L3aBS1bDQiftisWIU9NEJaLAr+SAlD6+m
cboiQINguCOckl3UC7Hez3VITPi04A8MWOOxGyQ7HEfl6T+/JnfMxxNTKJLI3I+Oypn5GOroRL4B
NZgZwzJ96tmVGHt9YH7fPJsVqQzzx2Rah0CBo0VouRElxiziVcZDuBGVb1l6oOBWXr0fvv/TtuD4
imTLKM/ZW0lqTMM4Fq3HnuUPTAHsgDP7olZAsG/I8vo+Pl/AJiU9COC+z2Y3S9PH61m6nsTEECF5
yNYEJNY/ZKpkQiuBbAa+Qd8C29YLCHet8zSBCNXANTuowSpe30b04dOMMC/unV+55KqLcniIsJLE
fBhpr4yOAFMW8KE0S30Rj6yJ1H4cgBHyAyrcbtaXdXpS4a4NmqkSyyYC5eX6s9iYkHmakXXZTHFG
NTFLH3Oj/BQ4n5XswUZOG/ziXn/OwGOQ0kbVSDyX1ZJV2ahfXfYcE0p4JRp+Tk1Wq+2gFFT14QR8
lSiU46YHG8z9ht4SyVkqfWtEGDvJAWhG5fEBOfO7g7JrpdgoRVoKMyPLtCBwmZIeQMkqXEXb5i7G
goQzksGnY1NpMwxU9Q8D+qfSzFCEwG1VLq4IrsLjK/lcjztH1BmYrZcrbhnXy9R43ckvFlE2M1Zh
VjxWXT/56rliRngcTR9hx0gHedVbc1Zw6yKKo+KRN8ih23r2OF8n3Cq/KRvSVe07a8cA2a7hmE3q
0MS3ZG9E7AjSAnxcztHTBs9J8TFNS/BjbP+0jDeq/DEJOZmuMwp1XdoLfAWq2iFP44gd3KXux8Dv
AbnH9h5U6Yegq9UNi5b47rpc8Bd0UfmOPsSE/pyvbyKTgy6cLYak7dORiqHdQui8MkkmF7qK7/4Y
sl6OhCuXHjEr5pQIxcBOZCwgoKogQt/NmGOxq8dUYUyjJEmnTOXumHcFtL7coBdHFIApNB3ZaZ5n
65gHNIoHFWHnRKNKyftcPFK7YJrntTFtMXOaadmyNzgt6o/mE8rUs4gNhADpErwU+WfPyF1Ip3ea
5WXYT3GfGgtRiz43QHq42UPN15NC4JRxfbunhoUTap/FcXXrCpawwja+8ATpRHmEK3V8FhZhGba8
FNxdYaX8jDaYhzW6+PtC9MD0T7NS08F4vUpuNS+M9acONK77ci2ViszKdWBKZcIigMMYPl6zbp26
9HgfaxR1htiGuWx3cDmT2XrA3oQq8RfCq8hyl6e4Jbxl42fDbbFg96nikUUeMsfh9YkLdJZO1zwh
YJYuQ1hvsKl0AsAdKZDG6lr+gNAwokrAkhhxt9Sxi2SeTyVIp1JyHeBmuwRErLK/j8Px0b8cRYnE
KV0shkfm3kjPHpBhqAyCf8GTKOrueqy8FzPe//yXH5ermLDlQFiFPGjYMVX42yFXHph5mtXRDZGJ
jXGgl3HmC4HXAtMfhll2XyNiz1GJ1WzLHq++TR5WcTSNNmu98ebTp5//Bl4ZquSWduO+PTHI90eS
x/sPP/0H6P0z/dHFIaRFpalmK2ksonh2DA/r5WBS4CeSYwmw0ErwIKp79q/zIl3CIR0qPUfaYJVX
CYKgjoEW1hJTuNwgmx7s9QFXMRb1BgtIJe+wlSy3lqvQfPQsZyiV5ZI9pEAs4sAdaGgBAiTudcfX
vLOQhMKLO5Y49Hw9DON7wGIzwdXM7TzKqHhZuDnsCvZU8KwWeOwHUlpE4FagkmQoBJRN3wPoMuBD
cu9tPXMyOi9mbcca9MR5jma1YrZnuecZqyxdER7qwDoHCBwprtzH0WlgxTRIRhirNEBqK4n0jmRZ
NBO0TbB08n5k/2+QhQuYpZJg2JJf8EiHe00dGOjn++SXamTfkzK+NIVLTZgmNvXCb1IsGscXW/4w
4wtRIBxn2xyOf3hjbAhU0sK2UKtV0ue6cEsXkiJlZa9gS9DWyHINUrYvDTW6q7XAO+Kbw44uBZaY
up7mtWRb0qRxNlseGoZxkATJsm0PJwF4X6R2vYxxWwvjYjtbxVlkd+C3YUb7GpmuY0qnNBqKY8Gc
tjxn4BGWTmpfpRhMG4YT9poqVQHfjbgquQVt8KoEEIr4y2Z8f57DQbwmHkbSIAkSkeNBJCCdUjhw
g0GZ300uId+e0qG2BeOrkAU2qjg4XbuPlstkANtBvmZG00yJTV8lFbLbUOv347bkH/RCqdTPOuNh
zaI7Xgw0S+/zKLkFZ43j+Non7kjc0RVhmsZqihs8T8WtZAArr/eklRe2ZxAKXHOYnUZmx2DbVQpi
dNQZzElMpiL/N/I8uWHuNHLJchWi22SjknuMbpHFfgWlk7ac2TKazAhXK+6ek4VcuQ2RAY7ikFaQ
e6wqofuoB7P6aOgngWWYRHN2iQNCbn5bW5C0cN4Vux/HUICtUt2zTs9uE1HXamLAJ1R3FJUEVdGz
Bp6Mw6AOM2QNSj7wxBqap85TqDk7nxeJ3fxYTzB2lS7dmpOwG2B81OxUtL8zTZUJO815VN3DMn79
AMQ9WT1wdvw8lGAUy4U9hDq5oQeEZcQ6DIF3OzK/txIvYjyJIekGOgcMrg/SXPGvDqEjJWQ3uKhT
UmZLDXLgjlg9R1XCBB8/59SyxWPI1hLI9uR6BeVinnxAWiWIthwJPLCWYyCxsuHxqNUkAh/fPGR4
yCGz4TkkYxq3YNruvLdhlYX/lhR/CQsWE/Lu8+dfWQYuhiv62j05akAVN9KzLTQcs+Bu7ga6AMuS
PuxCtyFHznY8nfI9unvakgDH3+Ce0LzMQyOO3VxUtJtY778guOmPc0qRDsEqzKatC6s8MkjV1Osz
F5slK67ihi1roNGUY+oV7fE1g1Gkt7cxmUmTLE3THEHoVclXsCUZkoreGhS5mXNLwwDA/nPs9IB/
/oK31QUP5z+ZPUCGXEzsky0mSiKtColuil4nJMvSXWUlWJl902kPr6UKT53yoyKAzfZyy/EAUUrP
6aBDACp5c3lDZUxSVpZWMSc9PJCCHxEBRyfiQef14CRIpb5fu7CqkwAvbu5lBDSNwIJ1bjPu0+wL
yaQ3g7Y1LNv7hMBH1aH2FSVoHbwfAtV7DCCnJ4cKAEPoDThHPfupD9dT0BdNw3lPJvkfsdyJMtR4
ltgd45TOEhkQLdwMwTwhe09rMA9FWu5WzUrLNq2B+NwnAe55OuwiNBoBFdDe4NYXIrOvPaYIMoT+
wHFnembmNrudMdaOBIVM9+H154nPnWeoug95bLz99PO7P394DwfbDrClUEwg0sTCKgrqqDK1raUp
5S7oASnmblfADWDTc9tj6vDtUIWaRLMZYSfBx5jkC0IofXmXgAKRRHY1U5M4SnjlXtC95Zo9QX7L
wiSfE3a4LcpKraynhKi7CPIR6gNIijIPPw+T2SR9oK8OaiGAN7C4D2BKcoMVWyYPUT2OmXeQt3tJ
cLOLCIp8+Q2XjE7bwuZlMoGsUEWv8cnCW2OWpStjFs1ZZTiKKy75icwg6MndFrBja2wlXljHaGOd
RH+siYQbrHSh2IIlmfXrW24PMJJPwxXfsJebKUviGc97hOvtBu3mUNkNBuBNCjy9jWo2fp9NYU7o
8kDXobypKRCyA0fL0DFEcHNz+ijiJgc4nPGWCFG4q6x0Tz9ABMro6WGpCbxefsbvtavW44X5Kov1
mAeSFlQu6jN/2X5vTNMlS+g0pmFO6MabkyQXxr46tt1z7dvaGdXulwtKmCCrjypEy9v90s1cFfJy
SZQUc26uxtcAybepeRixS35e1Z5u+9Mv/J2c1WQXdVC2/b4bJjXr6IMekGlCcfGmEmeuAKWMSnn3
+XPTkoSR0tInx/m38C78XF64Na2ArtKVvRwu+rhruy5bbJU8qA1QvDbzHpJxv6CLEW8pPIPbeA4A
CttPZn9JslbaKlqCvAANB/b9EGh30YykvCMcL8YsnwS2UgSPCmA5uZsA7abIEVe0a/Esx+XKbpvm
okp+Nm0Ulqt0mpWhNZc1UQuac5W2rqOCJqxyjdCcQYEKrifATZjCrdarUoTV0ZFuIvChIbB0Q8Ew
Tj8YXnlbVL396OAjqKMuAdjv37qFEhdPPyoKrQkPajhw1OrsOSK1U4WqeElMZ04maJeCkNJhoJmP
I6wmK9Dx5MHZ7QH3vXuwZ93vwWg5czeNaCaP26UiyvccTtM0KTK4HoJnO0PDwz2U0RCw9w1dTBy3
v7A3HVP4cjkPvxCDN38H4bClF24ThLYiPQIPhXib0iGtzoTY7jVPD93s5TGJGhF//fUTuAUp+X49
Zfc38/t+d319XSxX15/Cx3Rd/EatovyaucW5gZSDDgbmLd512wozoI6cqjPcF0qm2sCqNrlhfB8+
5t1HwFc4RB4isv45JVvfl+ANVxHi3aY9Nn0WsOuoBX2pSnRG5uE6Fsxbb2iRVuhnIFNbo0zZvMll
uor8F6Or+uUq0VjbQS9FYx2lnL12kk3oFg7HztmDrwQc+1lKVWz02kr58L3EWoKfXq5K91CqchXr
qWNf9LS9PCUa6qEXo6FIo0S3ZnEcJV/gLJlhNLUROOgCrKMh+DGlzJO8JHnO0ikOh6P/oaE9JlcB
0xtABWB3tTfo6IOHRtM6j4Gvz7/hBnycuR4bSSrz6tqOioM/UOCuCcnxHMV1Mxh1JwoUZdng2fHM
4dhrWhv6DOGeu3VXAlGSS+coXWU087iPCxWdlJDgqiREI1uB4aNWwCrZnJ7KpTayT1zPArWINa8X
Wm2mAbuaRuAwn1CmdyrpIGqQ1SBLE0bRUx7kfW6rpBepZPthVfcJyYLQN5h/OEoi1st3N7swHKjp
m1qEXMk14TfacHzwsPzBHaac/qDb3mDl8OW71mmsixiv8g+vj4EWwU7iEDbULaSTt62aTNP0S0Q6
FrRX4qgJu2yYPiNJJErlt3VyzkNWRSED2B6GZRko1jFVdlBRchfGEShJy9GqQ8t0Fs0fWYVwuMeJ
5aJhpNkAbDlaBbqx02ZwjRyMB+Jyh0s3LbJCsO4oHByR0xscd16RnJZiZnFRd4LWxSrhFT2YLaHF
wkYqcVl68DHsqukj7zJ8tB4APE0zdo6PH0UJjpLADwVmechvVY+mfozCaAiWmqJZlKxaxbDtMiwX
yvvXy9mmyFGUsL1E2AvZ85DeAfueBWrfFNma1G6D+zNIzUeIx3yRruOZMSEsgoWaff8UHBjQU+K1
axy841s9uQxjkhUcqK6mKtUpxJyR4j0/x/5K4vCB6+THTUIkffHXXz99pkwKuuw6dq/lbMHSj8pA
biZNwXmuw0TfW6f/WFNzX5A+gAPbbDMuuh7bHJJbCqU6tWxi3Lh2U927ef36mv4TUPMV98HczMM4
J60p80agDJibJWHNw+wpahLrzyQsIoeQi/tgZVN6+DGmYXLYNg4OA0f9kZjnpTpLU1CW/tqMq9IE
oRmXH9zzvYjjlP+3FGRsKfpxFZRM4KY+zoFwrSHYhA+V7tDMHfOGe/G276pjuYJxmuYkIQoVjj23
z0yseZd4HadjaqaLMLlVIcZVcdF3kIKknqdjDoN4XLNVTIKPhyGhuZSYY4029M3EqGSZdJCCpEzU
iOzLilWp7E6+Kt95QTeJ22KhOPlVslM7gstq6FrDoeqed93IaFZ3JU9MN3CJsln9WN7USzEWdFeT
hio0ZFgjf4CivXn+mVHYrUWKkOuCPBRGkYX04Ld38AWtBl/eEAE1Bz9MwxU7kuXl0fPQ7DYWJJwR
em5ikpmm66S4MWsntNEIKMVwg05Pwf+aUp2hlnFEj0AgPd3H/iBh9rD3VBbmCywqptRCAkmakHw9
XYB1F+wetG8ffJgZyx9sWcMJBb7DlBeZPcZaRvn0wOezXIV5/vr31W1tyrlKV16iOAu6VN7GmzR2
fqlVva7OvVViFlfFPTUDZ78lr56MApV2fSXkARaQtKjSILA31zCT8up1rZhkEaTjc7dJQzt0ZMLM
Bt7ZM1tGW/HEPbpMxiTMpH2y/Z4MLcLcOMCEw14czSyJOrgzhrojnZAtvp51TSc9K4ZY/ahZWUsA
PmXZujDuwnhNfoYvrk2VyxtsymE2lxnkYUq4EWJsw5Hgyz3pZQZu7kK3vSESl4RzNfBFB2dFsiIi
zSuEI69grMATW1fX9ICy3MA+wpEG9gB8iZYJR+Wce7a8idYKR+U0p8AVWyuU2OojxAdqJr7/8NOP
H94blB3WuH5bh2QhsBpdx+ypiw2gRlgU9Fwn8o4NxG2awwkF8nv7ntzySmUSbpWqVHRlNxF1SQyc
YVlOeHlSGdvOUKPMHCS/h3dhdVUNxuL0VW/uE/lF5Nszh+GMniupLZvMwmz2i2S1aLjp7ze2AA3S
YQ4GksUqLBYnUe4NcMOcHortqr7G+GxvCntI2Va57+3CdkZEAR+uO6Cyl7DyvWqgxTunRtV00aFV
VD+OS1g5x74ejpljkR6P/rY5KoVw0wCzL7dHlaBBJVK4AcaomaUZmUcJka3NGMv7d2DUZvQO8aSj
htWOaQpMVrkMgrXXMnFP/va6I/KwCyGUSnUMFYZuSfH53//1/SbOXnwidM2gJ29kuaLjlN9BcQi2
Pwg7ZS0xkB3rqbBDYsoCW554WkmUhFNWSoqdpcsjG+if8jXpO3s2JSAuiz/vysiLHS+sZFc/wVYI
HI1ii1J4HE0zoIJj5TbDOApzuINJYPflaryVuMrr2GQOlsEAsNdP01gpIyJLE4+7M06pKPkqnMKF
7J2G4zzq1k4hSYtoDm9zvqOHxyUpFulMbdoh5Lpt2Dy+mlMJB1GiOaJU8uKu5IH+uqBHhZyvIrAb
ve+sykky22GWF7TL4iZcreKotOqu8MewSJdX+O0D4MkaA36nqjXNHAaehQ4c4FLE2m3xGJxneQ7L
HY8i9zxNaqfE0SSOR5J4BX0YfFLuWYMC1m7EB0Uj0yU8h2x/pBEdGRcGHXbBiKldeVoho9fWuNNm
FYe1ClK2NexM5fUzlmESzUledEgfwrh5G05SXruBHg/CSczNhlXBj8lqNry8JfoxAZ1sCQUmqkrQ
kjOAq5IZpAKVkdt1zG7yWgoqMM9BUMdponAMpt0DDPTA1LJTpe5Ry9HE7GMyXWRpkq5zniYiasXb
YlwaoqsVAC0TDcDdtg8TCwjYO/GIGu2ZliYqqstg+pU8VG5SQViWVrzyaoHlIMJpTo5+tCS8i27p
AUHQU8HVisiKUx2NY9PpVdsKJyYBdo+Z+mHFmWS26fecr1JI+SWdyiJsNXNKjzn0zEs3jySkL5KC
/vr1Q9dmxEqA+V4NH0nLU+T1AdwXMWscxML+AdQcisRvjaojHr8qJ//QpZp8a7FvPvBzGc35AG17
SD8uBOSigUYZGlyV6GdVpo4mjVyVPc1MisHrTHcZyXPT6Kcyw2orKaDw/rC6AKmASgqZlEXRVS9y
A13ztwTBgtBy6T6r/ngL7rjXgwXbRCxJOV0Xey+huzWEhkD5fh3NblhfPGYWHhzU0JFebz80KG6p
FM5YyF+V7x8kMjHW0VGH1DMgwRgEO8wLVk6plsmlUuNACP533h7z5zKz7PqhOtGlVaYZz9AQNAFn
YZm6cPdmr4iCeh9mazi+uQdsJuhE7g7AdrJaVKDGwzx9vTqGNQZjdUYS1ignJgUxNlel5Yle3PNK
pdo2tnuOPCMMGnVfGzYoiiUpQqMIb5kYJukMDuFUqY+pRQA7cvL1ZDs8IrowMkcSTnVqPaj9zGYq
XCEcn05abQhFPj6d+Li6QzfQpvxKZTy5iShEwUhaB09FdDLlgkOL7YGFsY6LaBUTYxpHovQ1B/vP
doGGS/XgZ8mvpPytbZkjsLwhoKPx1Y3rrYZXNQ1YKPI8jkTlNMZQdTFJdcnYeDzJsOW5aVdzcHAK
Ce1IA2Tk+ieRkWj9CJxg0D32bITTxhqyRjFyhRTV5aJ0SeDokotwr/HlkQfOExFIOEnXxVtWoH/7
Xpnz8VCIo4w91x0I8jYLk9l0EcWzjPd3FhCAHJUWXyoUwNHc/AMG71tgbKiBnaHWKIKIyUM0hf2x
WKlAoQYa7unviIwSCynFE2uiJE4aaAnGoAXOHlK6/OmC3dA7CgWeMxgynRYT1iZccALDptKtUyds
Nt4wpko7O+x2xYzh8TWRNQwqPKZK52oFtP1wA9ZnYn+VgyM6bD3A++F+ZRQL4VSQbHc/LRxjy+rF
/14yeDS5z8LV7zlUMVyl0IsCBpetONvJUto3vV4SbQ6ZsSyl5NB2ZOSkqCiAI6KU9msR5DSOVpM0
zGa7Vwarr11VvwNNFNtXmaSiGm5V2uvn6udfeGni60mcTphUqSkfFtOFsFtLoHTWao09/WIsowde
a59/wlhEM5Ib92GWRAm8KCu5xdoRstP2Q2LKGnA53A/I9bTTUd2TlFabABchlQZznQWwd13DCOh0
XdOS6XQ5iRKyO0ryotkRHJJne0MyP1svVyxnim9ctSVVydnflvckYWHWLAGyrNnFKZGV43OUYon1
kCHtjDcsGaygLQMvpLIwvZGIkEliYCIeljGLDsrIH2uSy8UxsIYeUSKTyQCUzMg8pEsEpyRKYrZk
SKtW2mNQIJGBUinX7kvVgZVpyJrHqJS7bysJHr3GUuFXYcbjt0wEe2iH3KzJdJFWfYF4f8tV/H3Z
k+i/snVyk6Rf/dHU7roJId+0jfqKboY3XN2usPn1lfWWftsh0x9esdq7r8pfsH/8Re0W1h1jJOAS
xWbwjEZCKPowDE8sfQsuEI1fhPSvTK/vAAR9B8AGB0DJWg8GGYBHkg84Atab7SCMIG+AoFp1Y3uM
UXbgwL3gOY3yd8BEO8mcOr7lg5c4Z2jZ18gQL3SiQPpWA4Bu9iw+NgLMOfKK/QbvbIHagOgXw2xd
llYgxnZoule8bQfNws23JfF581NWb9dIk/iR9fcVVOIalg7Y3HeHwdyUjmeXlXs3aOJcX1sphLQ7
JfBRAw+DWU6HnLlCf6QfyhpGwcPBeHRI5OEie3A6fouWhOmDRBwutkYjQ3YYV8puaUfGXt2uvVmx
WSgmLO6ar5xwgJcCPZapl55c3OJUpWRqd3LE6oE8/XI4bicrqiOu4h3pzLNEF4fgeQe8SauTUYDd
DsPdPXNPbZi44+aIWMWkvrbCWidlRcMpq6ecradFmsmUVOm6RQcN0iHztNOwLZ6XRzPxXYtK7EHn
Gbor4cETE6FGMa5+vhvb/Zj+QKAyA8bDA4HO13FclsK/j+LZlF2zyphX2bE70aFOAhpA2Ze3+z2Q
bqfStl36dT5Kfue9mjde8+pcK1t2XDzgzCvpMYQuDM8cSwSyVc92h6eCNU+U3zb6I4wDb+EIDIMz
kgBkK5M7xCgozgJrAOmD+mfcpilcUFXpFksLCc1RPjhwxqEFHovhwPdnoXG/iHgOVMoiYKo6bHAs
hDvAQUp1YbACf2DsosiiCS9iK6HC8caiQqYaKpk6FtJBBWszIyjo62BvWCpkElBxvLfEPqrVJTUW
9KPvNqmjdanu9T++Gq55hL2hZSOzIlRCTYeRTZIq3pqPILAlPbaHTc4JVyW4rDNw2U+aw4PZ0I5+
JU7SMpgO3tkD/YBV1VDGLsVumLaWSjB2bwKk6zYaloCGECUPDTg1+Y1ZRc0sLEI2OVfxmrXPZj9+
t1ev+/qBRbp9iQqjYHFdCSnyabgi38bpbTRnBTPIjNWHufnlzefP/53PaXaglMxgbHZQrZK4/QSy
JQsPLt9mtWNuSVY/JNhIBQr3GkOp48LSDj/oGH588+MnPoQ7JsWj6A8p2sbVoYNkpTpUD2ZWSe/p
x6B09cFPkcFyQzFmKclZHw4jnM8Zwzx7DPah4gFmyG3EW9FPHtkFBzsnie93kOcFA1DA78HDZGaQ
ZJ7SkYCj1c1WyL/8/LmdA/mOVDfygPfYGHBhuk2NIjX48lTh1xZmbNpDr4xC1h17sBHfeCvY+ktn
eNT5Ov4pDnuD1JUO472kzjOkBFJ3Vfq6Pj+pu4OsrwdSp78yplma51XaPnxtJK36bjVXkQ4n5PUq
ua3dgWH7Zc6mwBxhXOGhdF+mwNFQAufhcryFYBm5CN31uv5lz9Av9Oo1W8GWEbcU4UseZ0gquvvl
nt94W4NJmo0xn2P8KGJI6tihIS1jli/OQnXpGXsjBmj4LetFGiu2O/jwV3cWO9d058qdz0/+3gjy
lwteqUFnZ+6rgAIecgMEFCgFlVinG3RrmEFH/gDYm0EHB9mxXqKgHcvSjl0FCZae0m3gd8SugYtV
ZU7yehVZCtcyV8n+7SyPijoeDFu9vjmglCUFlj/vqr7VClr4J5Ea3NkdnVJaJ5OMrO4vdkaiAi48
hgYDr5rIy1i3vWHRO5c67wjaYt3A3klmQpGuNvWfeCfhky4fCguGeQ5iGlUkZbd5sUiQY51CJJ+h
5rmDSKIMYGF3qnnVqbS8DYeDLOyhzZET5J1ThnslJHeTeFl2RZJ66Q5q63BhV+BU0Joku1WcjrFS
SjddVq8cf5FuK6U6dx9qHnpRHeaFDVtsxx9yyO94STq6zMTMaQtFtzUP0RAmjBqJm+DEpmgdJQLt
PuMIp6X62mHPuTZQp4Wys9TTO5JlvJbiXg0DOAxlUDq2+ZJgurg5oAZsq0VUqX4sLgqqk6pkrmhU
Q/KwIlnEaneF8c08jHPyVcOyss0tpUp7hT9un85f79JRr6yP6yy+st4zxeZ1YT7Sf9s/pu8wBadv
bainL0H6jzBEaVJYJcv+tJLbkvf8Jbc353gl5M0lL1yYzQqss1h8tdRpOdqEeZWWcVfbQ4njc5b4
/nbnPxeJW93PXgNLPD8UuW1bQ4rcG1rk3eXsPMHaar1U2+ks5yLMqngrcVSrUgn5wYU+kHZ/3Umx
nVNUsms7zIswYzmeafal9L9ui+vK6ggp5Rd2Zv+ApGX4hRgPCyDTQq0whC5xyNK0lK7ZWhJSFryO
o7xoKmlrO+NOPLnVuznjH8yfAzN2S2xlxtKpq0yPxIZF7lnJAbL++Qp1kYNEDl9fhECFUJZsPmNR
gKsTXObZNc98dTKD81md3PNdpasy4vSfGYytnGcqlq9flhzKowd9MV1k6ZIY5IGC5qxs2gaprP18
Zb09Y6mASxd4XLcD96no5vPUQtmu+XI43v7bGQzms114FAXAVuKntsbAbQCUar2652GnsjEowmk6
quS9k6+vO+avTP958i6OHXjeY81sWf5PvOA0GcTlEw7WpzOWGbgyOXBbP6WaKaednkfW+MeXMzuP
OV+FxeJlc39lffxjTbLHK+t9XmRUsV+4OLAVJvTh2QvaretL9AtdESrmR18U/DMUwGnXhbOUyEmW
hnOTRLGI8igPr6y3TCYsbj7MyTKapnGavHjB0N/wL6x3XqkyJpMQCyRdhVN+3X6uAgJNXBc2cZUK
cfln633++HL0VCqGl7XPNYriBe94zbJ53ntfl3u9cVeR4CzV41QG89lL47RryfmL5yTLyVmL5Wzs
6rOX0lkZ2UF/I9sDc6qUSs6eyVi9RP3cT0l6iZPzVCKwzbNcn0aeBaeXwmEMJrV3ThGKem5i2GjD
y5HBqzwm81fPk9+G0IbaEmAGX2/vwM9YIqAR4oNhNipVXU88HqyAeznjqld7zTSoYHdVDKllPaEm
tWtf4Xez5cfHH3/4t3hq/Xs+e/cm+PFff737D+vfi3/8zTE/LWfx7MO/5//4G4onya/vyF/jL39+
N3v8x99/QpMf/p/kz78Vm9frfyzjx6n16/vwX+P8H++c9QT/Gv/78mM++9tfb3/5/Hb7uf/4+6/m
dBlHs7//Gk8fneQff//15/+gz//Hh9j8x9/M9N+sX2PCnv3Zwf/xtwf0j9+oir2vdRS1zn81YLGu
l7E4792pis+/jJGmtTOAuzr6T2Iv22rI1yfK3rDRecpgbIv+DMXw9YsXwHkrAbQaIRMuiIrPfgRO
mUI2HuuN0QS2bW2y8uHdm35AXwkbpZR8DWo5I6uMUCsDTgW3VSoxjK+em2Jg48d0j89rumIWIPOr
vzropf3M2a7a4NGnHu8B5CFcrmLyepou2a0V/9yossC9J90yjOdptiQzY0mKEKzBoJJnrIGShI7O
5jYLXgBs7XRo0I69mnv7mZwHi/eenpyxegyW1XrYf3QrId5pvKoC88RmDV3s6RE4iuA6pejsh2Zn
LNB17J11FXyM8iQtPqfZ27HNWS2DAdcIVkmzGW8gziMT7LT8Hv0r2T968yWtkBv+z6ZOxokF0pQW
eIL5Yp1+fai/OGMJQCs0C8HJBUW2fM8991E4jnal6C9HBQHmxzYRrDNL42C90DdEvGhB7BxMjjVh
UgEJeZ4iUsqapoLxLPrFddgX9spjrzzMfgzYK5t9CZ7tjFKS0p6fUkEKW/k5W+nODwVr7f9W4ta0
tEvqihJAkSkupYlSxH60ynf61R591np9ziMqMWfAqnyBSrfR851/V9g6XVKCbZ+tWE6Zq2Hb52T/
7Rs/L0dhukjmojPHM+mymDyObemdrRRa3Uhfpk5biZ23nlFeZ+nUmKUkTwpj8rgKeQcEWQs6rHT9
15IMfgUlKcdvqbQR76wwk3hNXk/zvNZodCBGJYX2LdfTDtqy84FlDijqxpYH2HTHEICs1wFSmWdO
FwrIXRhLobGrHbome0YEsLogbyiu5+tkygJWdi+knSaC4UVQowiQh2cPJQ/5+mp5/mDApDAKugum
66J3s4++Q7BHC7TVYe0UPCxjdquVEXoYYD6ELC3oYkBm29LefBc0uPc0C/MF6FQIBqArj7fL8Wqx
Ot6DBlDDvT40bDt6TSk4zmi2/EH43CgdwOdAkmV9WMWoSr2qO0u3yMIkZ0FdRpEyQgBB25Y3CNvr
JJzPS/WePBrbCB8DjSh6EQ14ADVPv0RU4NR4jW4TOo+na2bqG+ssBldYSwcYS7gxwkm5lobJF/BO
FZn/7bvvumPszVS6XIZG+T7cGNrUxVMR3oJVDkxXD0I0haMbAw2PL78bxYLMi7JR/C5JiukF7Cl2
NA1SlCTplCneXUStimVJQPUxcNA08pwb91nKgrfTZRixfhW/b3e3dVwAUw4rhcf1Aj9CtUz8L8aT
ZzgjYUG2aww4rNhUOUG4DUjbZSxdkQSO2DA1wOheY5rw5lFWXuEUjxVWaf4YdM8oXj8A0vS1cinC
B3bnQGnJ6yhgYBP0dXBaLKJsdsgfN4DKIHM6U3hrbnAh9LB0IdzV/v3l588jcOr34HSd0zNGWJ7t
wCnqy3dmf2Regx68iiaOhTQA75mzYhKguYNtqYCDcWdND/nCU8VT5G4U9XHMBvYOD7/gjDAdVwPQ
Hl8RT7Wo6yXGPXBYIvxff/1EDxi58f7DTz9+eE/Xs3RpsPeZvW+wBS7NSHkO4Otdvp4IlzzPlo5j
Ixl728oh6JaecEp/m6eZEQmJQJZK5IlOkdxHyYzuuCLDIvCdsaTCSKBGm0Q2ljukbKhylOAGNmJy
R8ADI/JcaxwiihR4FzzDoiAYhSR4UFQyUbuD70kB5N1xnAHg906KjIiGOUJ1wtRLxP7YH8gDtsWR
Nxy8eBE16KbI648Y00WY3MLq4QXWwOtHNTgbYsDTkUpvQwfpFhB4ZWpavlQgSNOCSohkm2Gr+ogC
aZo/vmWNJZOmTSZQudLuKhmlHQYHCI1Bwnq1Itk0zAnsrQxGoAGuoDrgXG1SxMDrMy84Tz+Fd9Et
X4lKf/hDwWbDbq0sHdOg29OxNILv5sQyms1iUo36Pi2g+INBaCjC7JYUjegYuUPLf5GROSx9PDA0
iGp7A6E2qLrS3bqDVYGzlE64NItu6aLLl9gMDqdAGkF32gXAS6hAfiDdbdrjJ+WbRALqW5oxWXgW
OIGxRhFHCfOb3ZFdlAQV8CpdrVfGlufpIorB2AFkq/hMu7DOCchIOHtkq7sCJZ41CCGlgVXe7UQJ
07ryjfTYAgJrEijtNapEsVgFicojf5ih4IMAe1N0z7Etg8aCxCuYT1tpC7UUwSWzOUBS9iytgtTH
kablQxWOWWFvPn36+W/UDFuFGbvASra/lZwaXc/SLN5qphaLsDCo7rBIjLxOElyxwtFMS00EM8lJ
zXLdgQakNMko+PY8rzQ2dFX3hhmcIZfRNgLanBs28omj5EuDkni2boXdEwnH39vnBDucO5yaLsIV
PzaD8g96iD/K05gVl/tbmsWz6zDentBWGV18s0IQLOGrREZ3Ai3S4nElAkXaQCcpNV3kPKpdBLSD
K7nrHAelilamDpSeH/aOMc1X/EzCoryhU5+jEl7fBx2cMk6vpfUQdRpH0y8GuROEgTiBCoO2GlR1
yJuRvMhS2GZQ0h01uFk0exeTMPsbnyM/87Jh8DW6kstIFTRfhcV08UEkUKQUqaiK1hRdY6kU1G8L
1jD9kT0IpGQJ0Kg0fCLAfCmVDFSECZPHeRSTPQjbtCmEPtW4jdNJGBt3YRaFk1gwVKY+7YiW4S1p
Ug3T148n0QukD27rhRtP+fchx1H+ZL2cUBt2NKFWpRwb8FxteHmYzCbpg/TY4lmONrw9oziMwCsT
D+ljrkiz5imo5tly2iKKx8/2dAJmvGJGf31RwyvSVeOKZmtDY9F+/0pNo3VGPgh3IRQE+vjb6WcN
m9UeSJNZdcCAU2g9bYQonZ0sZOoGzEnxW5VKtk2iA73//oDIpVbDmZRYHy4/UWRkDV+bYt+2B9Ar
8TrrYu8J4e3Catgd7cFPBnmgnyp9T5tbrMMgE0bNLF3CRzlbZTq7Gsli2Uu3pHhTULWbrAtCTUSW
OQ5mdmDnBMRJxYXRCSjK98QFkxW4Jybrp8/wCFonJyydCfIwlEzloUkTyM3H4xEXtZ6XgXUS6mQT
07fQKUhqnJlK2S/D0iVQscA+PWWCuYmVqgg63tC0wZLDyBqKuigxEnIvi3JXyvFVxN6/04KCd9XC
urFSPIxuiopU+DtYbtgan0rwMsRGoxFSCmn3BqjN2B1PMg2hVUq5mB1IqSvLhji5bJBl4pEIUgtw
9XwV5fF10gN6jfxgJDIa459V6ry0oESSytAyJyqQB6urkSQMzz6iTSU/Crn26UTVNI6mHZxCXI2J
U9QSGUJodUVvmwvho9HlJc2LQKZKuv4wkmpcJFx5jEkwjLAalctUct6KqGNFnFmUHZfWv33+jQfd
MKvVSJPyUj2czbgz9VP1SXhZsB0dROyFFLNY0r9FxeLtuigEieOmqRezjDh6x5C7i8JW8tB1H458
kWYFPXwIhiEYWSQycmwlu0dJFH//y6cfimL1a1UxTEknsW5hbHXykBpB3ZHhBqKDMCwl156InsOU
9YOo2VX8eJRXzkMAHGegkZervzWe1GWEWCpF99XY32YATOM0X2cCo8xz9fINIYvD+x0LddoZWwEb
GN4DXF2S3uz/bbY9tWCa9kuM6LYycIbT7w78W4E1kPSl09xuvrN1vjNNLWKQTnPX70HHMnogs3dl
yb7rveJ1G1citQnlNYK85j1GFR6Me96nSeISc3QRMYnTycY2l0S2NEeNni3gLkVbdYibLaheQ7xX
5EB0RkSWdu6rY45U6rZjjsN5VeId8iNqm91kuSoeOdoqXrMcSdmYD835MTGiFM1mGpAKDVHC3ydG
uJ5FqXEXzUjarPiub+kiABQCRBXsK0Xt6djbWNjxYLmyDyov2s2VF1s+E5vuv+ABnokClYCaDg92
keepEIxbadiUG4+yRcXXBirXqimc3Ic9Wz9+WTi63jLBcoYSsI49qx3wbr8UD65jOuMMrnivtAZQ
r0kqiqvzzAHlfIIx5qHw8vkbjDR/OS2Cq6IeFOyd89IlzwD+fXVb8x24yB1OuA3brquyQFmtoHcm
jyTL1ke6cOUDKzZ5sNLItmNdydBVWqc1sC42dDEy9ZMgap1k6dewh0WmoNqO2x74yPFZXsrwmJ8s
jVl561VKiSgFzZI8BdcUEvfYAebPv/z2488/ff4XscP1iIKyWvMOHqhZqggNsdsLVptCzaKMpdcw
wtg9Hvueq29Uvj3o7BKQJzYRlCxQS2ROb+CYxL+nR7gbDvfd9fX2md9Rg93qaFQoFYVvL66eFkwf
NVFZgB10EhURL8fI8s9BR6AFfCANGX6vOBiEfDMKmpcR+7ynrd1DUEqWjO/oo6JpIh2T1n0itRu1
w0GjfzjoPBIJqyy19gMJZySrfjAW/Cde54E5N+E8+nYCOSqYfoC6V8qIKmVRVX97Pb2N6lFZw3HK
nZngqm47J2AVo+FYvSWw8a50PaGEKebz+/ahN90Z5dMbZtXUz+oh/irNi83KAqcimadQKxWj0ekm
bcYxLGyvFeiIE0jEKWPlL/ScEt6SvcsmksxyI1nH8QYWuuoxfV24JI7uSPZIwWaC2nU+1oS1v1VN
7wDzyfekp792GHxqLMu3jVgWFWDpYjBK7sI4mm0qixaLLL3PDfIwJSthNxnL1zWUexGZK8ZzXkTx
Rp/EquQFWKPQ92nYlz+jQiB9M9DEfyX1w96BsrZ0vomHhN6W0REXo/OVTpQqFFQFk8XjjBU6xp3r
HMtJuIwpyvaFsV/BVxD3H0jV2m2C2jOI/1iHcCBboLL6nxHSVnxVSRaj7OEOB+tYPRAf8vzNehYV
aXYdJtMF3bbZ1kbngXFPf79L0sdwbZ1uQ7cHuhMpoeh7wOuE5NNwxao07lfZrtmLCI3APT2exlFC
yjJw5ZY/XYTCKG1tMpETxePI4Joy5thCgUVhj0HG3k72118/wTchwQiEwEXR3MFmiHxeKNm7XjM8
35ZZaf2tj16k+ayWnoxXrzWv7DBhbAl4vYq//+PmynrH3rnCJnvv5hXgOjG56+TKRJLnb596/erK
+lCruaqRkzycb6/I6oa0pXuUKs8SOB2tQcdnA82HSTgsSmMCjIcWMUFY0vFR8uC3Gh/p5nF2U8js
M4U0S44NFIavvjQq9o4rFWRZFm135IyEcfxojLxyMDjrZPIVIKMhuBwU6mQrfz5dkCUxMhKHLMkF
NkfkBrs/yPrSeRsA1xWVYfJbyA1eh+0TyKnfngkKy9UkLNYll5qeJDdYt46YhF+kZi9idwd6BRgl
BcmYe4iKjiSsZK8xZ1spJ+0GfcXFWU42Kogwph/+n5/LyoGsBMA7uuO+S2fkf5oPjv8t/WLxL3/6
0/+if3a9/bt6MerhBEgHjWSZqA1JKwVsvlpkoxUv0rxQUSoVgV9ht6vIRRIv7y6fhtpItUbpMlSB
l2lIl3Rp31ylu8hWUktWC6PE3SxS0w2fpBTP9d8/f75m82a6lQA5IszQxH/ZoztKWBlk0Qnbk5tg
QS+V4RxXfbs32rIkRcjWbBYiQP5YR3c3Vxh/JoXxjn+M/kB/Oy1v69mvdki/kbwoP3Tz8c2Pn8pP
XtcVyDJVNjkFzqZZmC+M+0UUM3dBOGPVgSlnZdTDKhTVOrVMPfD7eZAHoGxxqvIgb0qlQn+qpfgH
rh4qNhd2OesaAfrLsK0LauucEXiiWAV7vdpah/x+kDUN+bpFxBsC/fDbX2CXXWAOJqhD4FJc0fKW
zsU8m9684tmp3/Hs1Ff0vZR+OEsz+r6yIF+NIr9WflhtslR1SX9PhcqWyWh2Zb2nK135d5+i5Eu5
7DGbtfzNFbbKt6oVofo8k/YV9s0rHLBfWx/elb98dx3Wxavm8e4mXjX/8gkFfCMQL3t/R/x3LRYC
PfJGZhd5w8um1C+mAqToRh9k7VTxxavwQJYTag6yvXTKKuWE21K48O2cg/XASuwjLi5OFrd5ZuSm
dtSYR9x2C+PX+f2cfoqH+JeiKoP/qQVwHz7mVG5MiOXDABniYWUIS9DRrHZy2TFL5TtW9PWaEXNl
Tdjp3rW//eWHn36fLuP72XtnMfnXf3+cvbt9+PNv93dT/NNj+Pe35i+3NzdN4nP0i09+HWQjeyzh
JfR8dPOqzMBiWzbrfUH369WKrmBV9z/jnky+RIXB0oaNhBT8bvnVZsvv4nmZrZfLR67TpvOqQfq+
q1v6h0Xd4Mt5byz5cxnWdppNVM3rMqrmT01CUjn0INRGSPKL+gb9RE9BP+U3NFsV1aKfbUQPCxw9
fYFrkbajR9rzcP1Q3S8g2DXiDC1wailWVg83GcuJf4U9esRKp3TuVzsbfUdqIalkyLaUCD6ZRLyN
RLzzkogF50fjYSXC9OLd/7lfhAU9n2b/98i0bi8YFa8QwgqCSbOlEQrdirYjlwvurymMAmYPcxoE
ARP090tSLNLZzUO5qETJal1sVrR8PVlGxeEv+NL3QF/w9hg3r36JSXnHxP6CfnukNNFvv/z402u2
Tn2VpEU0f3yfJsy/mS/S+zclPajmk3T0Cb7kmbWBngiLsNqWP8oIcOmVZFC57KjbbgLkIVyuWCGU
dHkNi+zj7o9qYnPQEGLjo31yqW10Tr/QTE1C2171GNL7Xld+XdlOausiiiPepK0eThSohER2GKT6
9bLwsgu6cm51O9j/yrnl0LFweV7GXdK9zB5S7RUvDq+wD7iKmA/zwfGv8DvmKdp+C9g/Zi587HWN
iKxWoqzSkptPj65K8RAV8C5iLamsbPHGcyV0be8MJbmEsbAg9INAbQpPJSG1ndD6LyZW/xX/yGgr
L4APjDT6w4p++3FeWhhs6Ag3OhZRzm0YnnjCrJ2En89S+uXf6MB+rkxls3zyn/ifkKT8xr7S0xmz
Vt58/vzh/WsGuYImiqV9uPdmSBwlX+BKgsNOEaMql5vMjHLzFM0ZEi+j2c3uBqCcROE3/Opl9/Y3
1ZXLjrUr683BNYv1gcsbdvlbKnX1WkqZiXZTEBcurWOebhUKd1dSbS//ZFcnSKUSFrJbybFqFC1w
vHi2rwexixRL0nr5ZMrlJaTr7/Yxy/Qu4t6a6pTTxY7Z89eUURhswCpya6OGBxg1npPXaNhIrxaR
MCFcadg6WRztmKwWUb6e8VRASY5lg0fWfj7RX92FyKNoSibhk4xzurm+cXwd+FBbzckHVrkw3zhQ
hSJWidXuLGJQNS375GIdV0GdZl4UzmUOkjtcnV4SO/ApjHAgUzrbKrC0LQ5VxTWWZe+IoBOFFWiC
bTLzD45dh2FQ5XysPlB3VqOB5SJ0XZ9ALk3CUIqM6SEM+GrtJKKAfdZNAgo60HrcBUgXv8dChi/S
zQHXsHHF6iqL5Khr3DLNiEGSaToTVFxsqAWA3P5S+vHjr2/+8kEUb3CF3StsPWDnynqLfQQFYSpd
qnUWUXEfTQl/xeUEZwxaLhpaTAfKdBgCyA4611fYMd+0DQaUaR7CwZhyhTcD1zyhXAcRqj+mUOHw
t+C0ujqAUAddAXbinIkCMmXy9DTL88DRd4U9ROXJ/o94aMLbjYl85E8vHYG14CyV3cXrKDh4P/FP
JCzla4ZAr0zShKXoGP/69s+S+gBDahBDzUlxQyk4uocpSbu5euf9rCIn6RQ03SGkxhoS392KQ8+8
oZWJopec79+JHAuwlJhZk9HxXcp1+bSa6DytoitrShmrLF1Rsh5Lp4Ng6Qp0K96WhG2cUElOFTF0
5PMw5R4NpdgUv6VguqxKvt5Vicujfv/GkgePL+Dobtk08bAmIS1vjSopSr5Y2UPKqr5YbTO46De0
l7ilumoB8tJGPjo+wNqW/sFg6RQJK2koHBGEB9fe3Si8s67e2HvjsI342/zGA6TuadSZEqcmeVu/
5JM0Md58fvfjj1z02JiRebiOC/mB2bEGGoxDeLI/Nt9UdjY1rfE32wmC8fWVz67A3gomBzes64GY
2sg3x5geR4MEF7/0R5gg4w1CMPwgBH0GQW2i2KY+JltNlFd0QF7tjZAnGhmvXgRUG8VXH/CVj6/e
vKsNjzP08MAWkDPQaJyr+D9evaX/3o8h/iKLpl8e4UlgjSD2autm1tOrw21b7dKxbkMF+qhGQ65P
26v1abpcgi0uPGQOOALTeF3Qn26+5cbsdDcWD/uWLMb/5/9+9Qfe1szge8K0VidcH50Pg8l8v6Au
q8VA1+CiDHQE83bwuNq/kzi7VAi88jsy/c0LVL1A9uaFW76wzep7UH1HrY8W2Bx8WqhAHIVAHo5S
Y/qv4yF9PCrERbaLgawui0z+PzesfnSrUX3w3No71uadzQsPb94JNu+YmxeVUjxYtSe7080L5/g5
27/C/ubPN39lbj7cFKRpq5Td7D/4LAgP9BM5rnX2o45M92haI//4jUreQXA8zTcjgRA+mviO332x
sBjONF097v24WTtko+2OM9qyNOrLPJfPc9PsMuHPY57DMxxfxlvXut48zHiYYQ6XK5Kx3hIdbktO
PMRg+sI1FSjLSmnOYggUjm0YtZfovj2E4cxMaXQzRieeOBt1RSVnV2ZwLGMq4CvTud4W5JIpboOF
24rZmvN+Q8mfjk1flY51fQe3y4xBZzhj9kbzNDOmoTqL9XQkemWayllUKv2BukiTnlhZD/qcvYAF
aj41FVWRpjmMNEVV4hvuNLuua0eg3/9ReXhe/VbmT/IvLB+NfYR9K4vKv/pTzU/iDSOPhsgm25I6
hTE+H+USx0Ep2xC2SriBCs8KSaZN0xY/32mrwNp+/qjcprXknmisoS4GkC/K7HzUmBHqBQNIo7Fb
k+mPLBBqbZShPI3y8AeQh9y9PIosypIbtfLCrTOMWbSxS7Wdrl3cZ2S9bcw5tvEAIpW3MmrQL2sA
/TI16pfVThhwNEEwsgi05airdFVUF9GKJLmRkHvjPkpm6T14u9ZwOrYGTRTsn1OpkhqowsQyjFk1
JTIzRJXRG2KA9WgVvw+7zrPp9eE1MGKLj/XuePC0M0/fZHGpRZX6VnUVR3CrFE3TWVV/dlSWZOlS
qZPWUMGOQlgctvuPIYYz/5Ee9M5jiC9jqD6GFtyjOzjxGFqXMVQfQxueh+6Jx9C+jKH6GDrgGOJT
j6FzGUP1MXTPcz90X8wYOv3H0IP3Q6QHvfMYepcxVB9DHx5D/8Rj6F/GUH0Mg+526ZBjGFzGcG8M
SRHyaGvePzEjcyrWhUI+uB3InWlOp5rJW5cHI+ubXUvHMiKioo6l6VT9HMv3zSvr7TeUTtENCJBR
DyXvIEtFM92uMn2ocmzTFZsjoOPbllcjwe4AQj0iqybcGUkeYXEpGUUKJCfp/tohL/xmB5YeUMnq
MYtyXvltR5TApXTN5ui11BGp5IpTklFSr4TLboGFpd6w4+iBroqZqnea8nxTsxbvjw7rp/5I6chY
ubtolht0cS/zFm4mhL4mLLP/qNZpNLt5Vf7waqTKpz1aV22Ln2665zDq+etX59Fbq7k6q2MGA+me
9I7roni9elKdSvHaEzi+4oHq5tkXdevYkeucFzk1RVOJ7PKUFY1SXVU9BIP8TXk8a/tyLzvYNrrW
S6y1CnGuVgmqdWF05DWtsXfiOctajrbo3Sgsj+6oCNdvI1ywujWWn1f8ywrYY42xXEvTIK5Isted
eJLOHjuUDO0wmptSVrvec0elt9TCq7qULFOWS5nyvAiTGaVIUjrbsqwBdR2s79ZLRo5GGe3qcBkm
3NrS8bQLJ1+FiWJtQETP4G9ZJEzNRxHYA4kBd2hQPZIYajJQWUaCDjIA4w5sW77DBoNWKd0TxBXB
V755FfqGwRrebSo6PDw8AIVJD/rh1YLJTI0CrOwTyVySl0vpJMADJTpoC9FlFyu7QnwPmB0WGkhS
gkr85tOQVE1MQymU1aFYZH8xba0vbr1q1ig8kKjsk8w9baLqMvMshUxhlSZIDpKWOduD0dEEScWF
rsTZpq4q4TY+ryzETD/BKizPq7fMXsbwZjNyHh7/OYnDxVdH1jH9YRfg26G7Ry95wGutfFvvKQ8R
+/hPx9yrZOD34l5Qzt4fQRuurOmMXcuRrToARyaL3Tf9d8MYSSt4ns6jYJLYcr+UhbSIRTpB1ArR
l9Ud5lUZF692k6kQVqLCjEh4wj5CpxGeuuQMKrE/1mlRE5g9rMAEdozzFLSNyazLVXkXecVpInDM
WQOKSrhZIZbKa+HLl35f/lRrdjnQ+pSkbHKT3CjCiZHHYb7gd6twoSHfHkiltmSUusV9pFdmcN16
tfqK/2n5gC61+vuIEK7NJN8esS6RoS5re5d69CokH0uIE9rRysaDWtkbE5uu2LgWpTioMAS9qKyT
CwMzYXjjCsPqUGJ0FGFYXBj8Fx6gItYgUoHvHswBhdHH2Oly7dBKKJJLce0aEiUJyYytp7nviqrS
J9RSSoRdpVmx33R415MWEkygZG1q7tJulFSOm3z7rSyu+ttt6DXLyqdGwYrp+HwbZ10STF9MSJze
f9stDNttN8ZH/rAq0PZz9fMvaRxNH/fEnod3pBLs69VidQRu9BjlJmQ+4ELkwDQHUm240ncwvD7v
+KUqXGn3y1Rplfz956jSmlbrvWX6bXTrSJqbILlP0dLSj4nRAAev//3zlY8a49e94aRSa3ppIHcS
FcY6iYQtMG13IJkZMwKQoCrItWmyCmbN8vTRiPLs0D3ZsofXOhU5qdTgUqEVkhMsFvsUYsHmlR/c
bqVDDSkeltZfhdqJJpzNuPeH5MYknH7hrzt0PekhpT0Sjm/frQ93YfbNJL1d51fW++sr5931XpXA
srrdW6nAvCEFNkvXzFbgZ9mzlRlrZnVGMpNXKjsHgZnmWQksp6ZmHyVzRlEybwiZOa1k1lhm0fIG
ElRdOm3CNxdXJpK3VA2GkNVdGq8LQYtZyx1NUtvw9nv6CPI/WfNZ+iv67XAj3IZisbRVHgazi+QT
Cg6Z2gUnrV1pB2epYMclKuUy0z8xoySPqHldNYUGD0QOHlJ0uyCLdzzIgveDpt8eeBxopUXlb74S
d5D+74bBGn7xkNJNc4vwyppUq96mr4Q16eIeELSZdqyBRwOO420IedE2GkfqjA7FIhqLXds1808a
23Vbbg85wmKUe6ndQVqds1CX+Vj6iQPtcm0oZWsOLtKdTm7L2EqPq1i7CHjAakZmUSa4/7D8VmLY
sbx96Gqx+n6dxZswVHb6jBdpXqiEoWrbmkRitUz8L8aI46yl7KzS9Vc7PeABuY3d/RoiDVytEbm2
ykLqtedS3tjMlUd/eXpZdAZhEWSsIQ7QGz+auh1j0kXKCdrjPb+lynuiS1U7RWDdUARXHVifeEDA
bYuWa9ai5Rv6L/yG/fabqjXL9Z86nQvb8w8HsyBnMP4tRf7pme9YBPJqUy2pomCbe9xtcNrvec2p
MIjQ4Vwebzih23t1l477FV9hDOf1zNO0dMTWT3gddJE+7bjdGnJO9hiFQYLGSCk/1/LbYWXT7ZYk
aRwlN57bZ+rucsvKJbtLbtfeJKrPHWR52mXFW6wfXHnC67fla5ZW47Vrw00r/eZYDVeteARxgcu9
0+BkHkZcXCjWtPzO+qiy7271nXU/5T8H1c9m9d2u/o5Uv0fV9+o5rH3q/t9vPs96p/Lv8/K7U/3s
WPvfsYvNw8/h4JDOzfvt6e3QRKb3aNtdPDwjTY5XV+UwlMLffqUDsDadWfkV8a8+/+rxr/buM8Tm
72D+NeDvlK8d/jo0rtb+jNA/9kL2a2duzuk7CIVXa9fDU/rVsSb0fTSfvJKbnhiNMFYOXJwADTRW
L2VYgp7DYuTrLEtvw4IYqzCC/XsN6cWB9kHiG8t736Kifv8efWgITfFHEFOX+5HgpWwrY2wnzjCD
HE6LdRjzbOMQHGPbG033r7/++tr81rz++tuvrw3wLuXYorKHEco0jGMedwQf48ZeDcZxrXSRE9Ma
QSaV17CzBVqu6749il57uHmFvqpu49CrFhKkXyzUIEaVrGzb7CxGDPe9k54LbXMAMTZJjQn3QHC4
SXDmMIKbh8n0URqeK28z31N6hzK74tuKwqrloWGkESV3YRzNjGmcsvAs0QVwQ4tqTRrFIknLeAb6
bbK7N++zsnVJYu8jyG3gcgQntWN5ywGt2rXpF4zkqmUNI5GSyOZgNnnVPY0CaS7hjBtLFr1qitRS
iSOwUWdpsopLTMcE5W2k26eNdEW7sLn59ddfM0HUpunWf8xI/e7bXQUgtgM0h7qp5BtqkB98w2E7
Zyu/MmyrDNxSCBhUyW3TIEZ4/3QHlKKKqGpZzp49rDSaoucde2yJdC/KpqBc2B9UnPKu6mhUUb7q
UwgQaKgulatK6x4bd5ZrkspUVG70Ys1y7aGfTcrpDitEaVBfgy2DR7RlzJFsme6iZKXRi+iOXRYu
iKBetbyaiD6BfkPFyfI/dqK8st7o00k0qCBzVsyYBRKV7/6xJhlcG91C46pntRAuw8cJ+WYWJrck
S9f5N5zAb3J+jmtUQhU/lA7ZwU58c1yBHd6dN8lGxZVpW51Fs2a0LqMkLMhMVDsRyU+z1jlZNt8L
bOev9qvm1fZka0QZg6c6W96f4rxkfIWts5cynCkij247Fyk3CRcurKy2k3eWb5czj3U+hvorLeed
DtIrFhkhRhEtSb5X8GCmUEFCHoqqUbgsDcepYpWUHNUqZdZsu4OssjCKmYe6qnEML5UNrntblwNH
7KOu/FxmqOkaTqVIrQ55Wl1O2/Yobn/2e5b/tclbbCXc6+syzVE6v0eSsd0hLLGnjI8vy6+v6X+6
VBOPIzYHLpxnnXqqP9ygr5/I/zWvSth3xhl646/YxD7sq8fjTZvrbRseXVNHZZd0+suvi5PKGWVR
v/6aaaS+tcjVLdAOrbFsPXURwjDcpULvv16FRynSmoSndDpQEd7drREm0TKEfcye5w8uvTuWwPKw
jJP8uwc6Eb5szwX39/ev763XaXZ7jYIguOa/rSz/SqzTKJvGvALhDTLNXW/DiiVWsHDTfvAn1kyR
P+I7asPPN/0Uc0rD210jryvrze5OypyQ2yi5MVmZRJLMbqis2ct5FMc3c3oO+CfZ66YYHuSqH/T1
YvXBVx9iwqb328fPJCZTKpmbishaSrejb2hPPTemXBqEvdic/P7+KUr+zIfg5hW/BCzIQ3HNqPt2
Ewv4qvyTrfaXP/AndYoNUeDjPkpm6X2Z/M6W5XRdtrnP6at4ZtDRNMI8p+SB2UQ4UCFDIf+avjSo
elEhGpPHFUU0JtGtA7vZ5WPnDhBRPrGvnPlRMPdXmxpzjFBpNzuV1OZuMmLdKIzSNw3G7ziOryos
lVRnKQGs0mcMuvKx6SmdWjqJIP89Ely+mqOriT+XqEm+iObFf1FqR9OVVZYWdMGN0sRYURrYGMGe
cVfeasrWW8zAHJhF0NviO74eVIlSHOx8ZYTdgoQzamDiMQsab0sWC6sadytT7KjMYa/7uIFeHV+l
LqntDTRu1mXcmscN9BR5vn/CcbNf4Li1LAueULHl6+niqDI3z0d3nQ5jl8fXK6YP/Gy/TvjtsKxQ
Ceo0synKjgchniHspImw2Rd1C8Lhi9Rgp7YjMZYFSjoCzUlG7RtL0MBHpYbn8XNLSsPslhTGLGX1
YKlZTx6ivDgeesvvL54t/eV41ESDuotmp71c6kYF9np6Gx3bNH5f8VvaxC8SkCUQkHXOArojGV11
DfrSKLs2zKDi/ip35Me5v3S5p8vp9TY5zQgzwlPVyIyu+8Y0zfi04yvbQ9F91xHg7oSnSIFBz8qr
tWSxwSoFJPSRM4+yXEJNoNKxWB81dCdKk5lkJfZVKmPZgS566KadScjxla4JdFEDzMfAu+Bf8C/4
MnzHvOBf8C/4Lxb/OGXm7pYiThcMY0kJMfLonwJfuKvSbgp6/o63GYnDx3cc7lMazrod+eQQtxkh
yec/1lR4r+lvju1J277ISCIji55gDW0SogfkFVVZuFkDVkmTAIEWLLXAiGal42JFkll5eVKxBx5r
HNRXaOxOdJ0TY0bmucFdMnX1srryVNBTphHO0lXxEytqM80E3YwC09fBB4MDyFdy7Rw/fZ1F12Ge
R7fMoUnHgw9KTEI+KMK2TFjlfAtB7RjZB43DRJSCb6vEVDq4mSl2r9vIF7sX74Q2zXOD3WwDrgDP
6cjB3qayeTp9cbxkWf0INub3M+CxKol50sdi4KEW7vjQdRY/GpMspLIoexYLlMVRKWsqFzV3stO3
eP3nP27+3/9PEw9lq+VZmS8L3hIjS+WKDno2vxOYklVxvcro6+ttTtL3Zf8F5Dl+vRhvV81hsorv
yLZwxjY1EGbKD7rBrIu5z2cv+Fjbd/TI6uo9uvLtq/fm1VuTfw3417dceh+9qw/O1Yfg5urDu6sP
H+irDv2kjqm4J5Mwmy6owK6nWUrnS5pFt9RCzIvHmOQLQgrxBtIQ4y2B2mn4tpL5HiIwWVEvztgN
j7GimkFtIPnejlCXFR7kTAAKLETW4IjfoxNg4hNgWifAtE+A6ZwA09WDOadnzut5dTA12E/G/SKK
icEgBVspMlUyBhwLBsvj9N4IF2S5haifdxG2VfKPHFvAD/3CHk6yDYaxjfgEbW/X7gR2G9NnmK8x
HbFw9kv0QOL8bTh7k93mcJgN7ouyNfrSZJ5myzCZ7mvL77mxUZjDgt389tIzdaHTd79EVE/YL0vE
RZglJM+hMuG+Ttjb+L8Y3n/NqYYeSmGZZuR6vk54/EWuNiC271vjEbdOInAvdUcnoj5KAVKyL3UR
UUQx1I3BVTphSYgoyMOPzEmB3//w218+gXPQNp/NHFSeDM1iQSjoqwAU5PN60iT+Z7QEthF/s2QQ
dpVOQ3Xq8nT6hRTcVMivF4+TqEzFYY5lcsdSrxZhMqPvwBufCqajgDmhBgoDyhfhF4mXy1UaAlXA
fD3hUXfplNUl3KtPCO+/Ko1Eu2GT5Qo+uNvBYJhJmhhhPo0icGBV+k2o4UZJmD0axeNKEDihDShL
v5DEYGf7zjEIakDrOYv7mb1Zpms6PcI5i5hndVMJmzOTdQ7X3PFVwr96EgACYyXr1FUAnsYRWxCE
UEgpg0wRislzQuiiSHgCDTymrlY4XjaeLkL0qBTmaQJLU8nIUMfka6zAeaEXic73JLyLeLeChNwb
zFnDdhh4O0G6RLu35W7IWCf8QBoJA4ZcWwd6uW/91zJcvS4eagWAla4ZWkm3YospEFXbKTFup7Bs
PWcg6DIikdoQbCVahZlItWxzrNFVJclzVCjy2ssEnlpKzlV1tHK9MIo05VlbMKbSBYI65jphdyHb
D8Ahm1gnJNziQWk9VMJIl9TsznMy29pi4ohClQhbNdQ9PznsrLJ1aeaMzGO2+JYTg7FrsPo+aZLO
54IM0GAQ6E2Ncjod6Y8FbNsjrBLw6/it0aWoWKluZwfUnBTGZE6N0ViQuoA0wfJbPn7VnaQGeShI
kgs22cAMdGFuYOCDi0rZYyUcKspblm9Op2hl13PhgqjYswP9sM0rg+PpRxVzSbcSjcKlehqT5LZY
5IKlqHELcb8zTQWsvaP2gsWRsbCZjL6XLrkfFgR39IOTLEthx0Jz+ffWYPMwio3J425O5lVKG2yP
eIMRsAwfylGGVyIbD4cc5cuwmC52XgCxBBByhxsD5uIywim7LJeRYJq2AgmoOwlKuqCmjD2oUBkN
0zIHI4JuVI1j4bmD4tN1PamSXyUD0exk7kWDYB6gYEjU9eo2owxL2caDEUAtbhYmSfc4VtAcXpCc
4dT/PmNFLhSUz9FFQlGs0iR+pAqXfokIUEIBDYj1/TQmYVarTIF1TS0egUQh7kqbhZsvsEnYnK+m
DFk1jqKGWZSshR6lAKtoEW6BWFZJNSRbqWVamjGXYf5law8aLNudHiyyO1hrfU83fL6e7O4rFvQc
NaXjDZtrjq2ydVrdwHP4MsjThMgr3zRa+p6polG2Kt6GTckq5DuaAJfruIhWMdnb9mCRBioa5LRB
bBpFhC1dmHRz20MTnGiQNjCeZtDdbFAC2TT94BMPxPIcTVgrgSNRIehEESEjU8LaboRZFj6Wl0rg
Qd62HM2IkzidwD4DM9AGxb3QwptklSA0Zahd+YEdqOR6wwqcJwW9iYpQiJNQShNSZ47trczXBFsx
yDNVuHHbYKUrZlXkPewJFbic2twHN8fy+wrbd7UCyyc8cqxgILi7iNyDkK6tVbRsgaEyraoIydz7
NtYODOuOkltHGUcYMYJMy9EJlE5+Z7mlRVpVIqR77PQLfKTQqqNKg+diFZPTU8UsFlkKqycydQLB
iughbRDsRCIO0/CU9gA1pMKQ2ncWcnVBRUtuvhaZyEGNbRUzz1fGgmeX0kqsBLIXjCVwfuriZ3Mv
bazCR9EeEyiZQypokn4lyDJdbSgHZ3HB3YyjDW0VRhlhh+AsS1kITc4z7/du/+HoNndYAqo1EvaZ
acPOYnn+g6N0TFWFosfGbfl6YTat72CNkFW9RUEpPZVpGCgi8YvhKR1IlqwpuIs2kacbkZsL4oaA
yHS1MzkKGN3qqPonPFqZRQnSQdw6mTtmyStCb9+soqTLCoBwiWYTawfd1DYIp0V0J8j6dZQsQRXc
f5IsrRythqg+HMJKi50Sm2n2hWS5elSmb2HN0MdxbcdE1NNPsB8Mwj7T7K0tLHRneI4zsAQAOmpC
8FQ8bcjsIgM6pdn2V77feb9rhQ1IoIKvZ0CZKr7+bpxLWMaDgIIzTMUx10e6dZk6LkaaMZW94Er3
Yx3ZhYmoq5Sv4txqRQO1rHZTmM2px2RKt82OeRmdBSAioyYCbKn4uhFuJ4KGOwk/QJoxDzjfRwfS
XbF+cCUnv69yPduRa4iE+lirrd9dWBf55HyVI29Pnjl23VgwlcRttYBWcez6KoEGrVD3ikcd49eV
WyE7qCfTIveyj/3RGOc01JnHwzAv1G3THZZjWLEDSzuX+3afIfbMKdRx68zwIXh9bG0V334r7Aqx
fZiuQpXuvmJoIAqY9yr+jC7iKe88wQQyFY9UPzFUF67iq1ZH+1y40CCloa56Pr6MwGUELtxfuL9w
fxmBC/cX7s+Oe/tCgy4aOmrBhfuL/l1G4DICT4f7ZmcYcjpAgh43ipFmRdl1E/Q4OX2watI8hKvf
CbKSJsIq1V1xjFnEK2olxc9lrGldjaz2PNa7WvLC7+ssvmGZgd9d78plf0f/zNRCrFIXkM5yKn+J
oMtKNDAoBq6MXC2grFsra9cZJrWOnfaAXD0mRfjwgRdAqItT3/Ststqo1sGXnZ4uJFk/WgdbGgW5
RQLUEDunnKjb9rVVNJjOqckbLW4aI4BxZr6nRV0fFoyRfJUmOQF6jiBP41CWObxQl1MfB8PgfM8L
fJLi5ksa+UZWW+itJyPDYxA5Z0ibcvDIzrLQJu9kwn68Ya0tgo+85UXZ7MLnXzH/6vD3j1sIqBSU
aaYoX08alclSqSMigqqePkuna5ZPT18sQxa1UnX/hm/h+uM1Gl62p6JFzhMySpyht2pHXeI/Jx9E
xYl8lXjeZmZAORKBQeCZ5zPWZZoUMMIyw7ybOAAorvq4/2A3GEYqqSMNEDKLyML2KQdUi6Ei5778
Vg7kT2nx24IuD3A6QGB2BysWUW6wEup0WSbUql6k63hmJCk1ldhCARRxdzoI/mEZMwFnhO51eXH9
9798+oH++Gv544cHVr1GVEjXN73eeLvhi5J5lEQFa6+Srro0gLxgXbAuWBesC9YF61lihRNqPorz
pHylKHMViMrUmLKWLbEhCkRUc2Ooio+wivZ5Tn8PHHIVZIdbMDaj72Tp49bD8Jsg789VKYqCXSkw
M0EPS/RzU82yez+ZlRbM820xsTBm3eNiahlSW5HavgXLoSxzctPlMhSm/EtONnsE/PzLbz/+/NNn
yQCKyeGWfFl7LL/59pEqVPztg8EbiX57hc1vv/32sfzpq7Iexsbi3wqIW/w1D4ujSLpc70Ym28aj
SXxJikU6o6R/+8tff/uWSqEVnb6nSCd9+KloVDl/tJxEPA22PEDmRsjSt2D/lMoxXVkHt0fWaZrl
DedeVUlPwjyaVvJmy8FRK0nFHensWPiKzjz6D1SrQ9U5BJX93a5mQX5TZGvydMV0MgnpWIlPNgue
EvFdR3d8plkBiyRcku9WYZ7fp9nsf78sMczTlMJPTkJvs+1Qp3n7Dv30PI5uFwWf6hXlJ9Pmr08r
gjld8k4vA9lnNhbqg1E2H64dnYZR8ecmq1F3+kOzVvyQ+uFRN5l1BG7fDmpXCyoJBe1BW98adbSp
+g/AyShtMfubaVTV2wuN5z7W/SH5Va/zJOSieTHb35mOflVuQtU+Y8zCIhTdwiMW9zDsgEmJA0bT
sU4lKVFhi/OSj0qgSg/5iJxNPvZOMrMH5HVrMxq8s8EmYoV3WGG9cyTNopQq/MpWHlbYtyDLFQ+t
4AsQe8FOqjdbst4xqn7cI+rt4w8lSXVbyRjKn1sKTCaqEalv5eUdhXJsP2PBe2cseEuhDAv2hloa
yhsDeGlQCZQ8pkzD0vCXkqTuY3xSDe1N/ck0VEh5w9LwXAT/9798+O2Hn9+fGfXjLg9FtCTpGq7a
66oUtNeyHvxWUXHyJWAjjkFp1TDhe9Epn96W+XSEukfrqYWqMm0tU9O0FYQTW+1J6DRdewyTHpUa
iLj+OtSSMOWZODpltjWkOvP7CLB1Q6AokM4+C+AWW/W83plfmFV7YFZH5HJGkojMlFYp03GHXSpK
WkZnHu6m5A43xqPzeUu3B96cOaEnSXGBicBHww4wRMehFBwWe6rSBcZC7cWwQ21yPAZyx+MeeEdJ
MFKYNETT3VCE77C7NEGrdHvQIX24k4v9rBmnM/+xXGFhP47joZPyf2KdH0T8qzSvrTr8I7zBz+MK
3uyQ/IKvvzRSnl2Y86zGfL1i+bHgnjCQVO4XUUFYNLJRfWwTIQLX1A9U1fLnz631UkwKcBHlDi+O
MjNCJg9ku5aiQDqYBxJaOpoMrQSyMwX59ri90RXaSihwzCGksSOkMlIf8mzOD0P0JFCQG37srQXT
DDVrm6gpxXR8FrNPIZhpyta4ghyriju0qpQ3FDJVYX1YXryqlGJ68qqC+6jK4bYHqoonX2Px2agK
HkBV2mkHfjbascu3EJ/OEGtI0kIc0zT9EpGD5mT8HWNdRDEr9rMteDRfJ1Nmlt3MCOP7XfmHNfiB
wakCfkzTErw2K7RpYuVvWheLWsgqfa+0RcootWjGQvr/mte2N0ORGPlhpSchton+BVtPjpKBNHOM
iXmZl93n5cuaCoNpY3UgkuwRpmm2h1e8U2ski22f67zjatm8dCepMV3nRbrchAtCdQN02AsKQPbw
gywaY8+1LkP8tIf40ONjxOk9yaYh3K02sKzhzXAhQUPJXwclAw6QogvIs70XfFjr4QJ6Pic3RQ+Q
G+CLpnTxAD0zTWl2ALme/A7eOhtNsU7uALLOTzmsNsqRkRWhgDN+UXcYjyIq+oXMhstSa6gYjZcD
2jzKdrtRru6zeHGuSTp7FNr2rByzjGW7b7WoLQmgPaUG3aG+lhx2cHkLjsroImu9siYPq1R+h+wH
wRCcS8kYQQx5mMwm6QPZ9E4Sx/o4JuoNLhQDTIakn5Mb+GNTAyy5SrG7/caj2uiZeqTrgn6PZ9Mw
g/ttq5TE1yYTAWHSMTNPT98pRxEs0KfS/Ee3UGRjND45Aw3Jmg58Fv2zzMcU52k7RyvJm4O/K3NL
QXjVerF7rvndy60vHoQ7plBBGHJqdsBU5vNwHcN5aJ5Sbk17xjeg17MoQ0dSkN9CsMZ74xLBz4/e
4GLA5yAG3EoMgxExDYvpQMOwB5mkrNAfuATIiwt34a8EYwUF4XfhIS+J+B//40RUaJc53KpSpeuK
ptWVHVflM4t/YjQCyo6Jo7KPm/nHI5Iw4PIqgreaJWCNSMIJJGA3S8AekYQTSMBploAzIgknkIDb
LAF3RBJOIAGvWQLeiCSMLIGweS8MB94MQ2g3HFkCWEEEeEwiyq6x4wrBUhCCNSYRpxCCrSAEe0wi
TiEER0EIzphEnEIIroIQ3DGJOIUQPAUheGMSoUkIkygJs0fjwWCHXuZ3iBLYE+t7jkaJY8d9TaGP
+XH6H/4mWfqFJAZ9V9qJ3FHytiuPXQm6BXwAEoB6w5XFgbaxwvOCN0kVdfVCOLA0csgbJFX1iTYO
a2GBVZUsX3d8Xt1z5jW9I1kWzeBYUaQUo6Je0n4VPwI66voDg1imrUFep8cYRVijgNgIPw9pjcHI
M1It91+Cp8YIlf7r1WU1uawml9Xk/FYT/7KalLbcYp184RG/6W3GgjvIHSvMQx5WZFqQ2SeS3ML3
fhRYJ3sbOoosTPI5mAeF7P7cximPzUtmcFCcbevcZfbRDGGIDlLpK9DEV5okhGfJGtQoTzNxXK+D
NDKoofP0BeuCdcG6YF2wLljasLyzwarKXMBV7ALU6vkNxf1YbUeWUV9CMsff99OYhNkN6uAA7IF6
UjRknkSkLWFBTclSan1XncAOg53LXJLlhMxEvalMX57/rTohxETIAhyFgaTaYXleHD4hq+NiDqdT
cOoCcvSzuSrrfBxqtPAwZLmufhKS9FS63IB8oM4nmkXPAna6INMvxmazBVwH/oXbZ6xSWtfJqg5Z
XqRZeAsvUrvtVi+rO1ujbNwNGxsY6V8ij5BFiAPr8ffl65u//dl4WGRHIyGqCXEZgpc9BIOCP4FR
sE68FmldfGsGE5je5chPO/7JjET/ZEbi4MgnEvWLG2GNDDfZiQ1llS5jexnbpza2LwW2edP1W226
e+WlV1m6XIH1BFxXD7/ywHEbORYaRtCdgLWKeldY7ZYUcOszpMhqczEoCTKwSNn6dVkBU490c3aJ
UxVD2ZZg4nUOMRy74jpauO0V+dOLMUFfpCFx4ZZprsoYBlLIqnjEQVcwYxbmi0kqKI3kYKcVKnjP
U0XN77ciA6rw6WCvCKeLKLkt3d6wSgYqLcMbgHZ6SaaL1FikOTTpcKN3UBOKZrlBUlNLo1DlpwRk
VTCF5ZRcpz9b6fRTynIzPgojwmzL1MnWASCdWEUIejUtVwdv6yWbTbN0GZZOBPiWB/WfvnvpL6zF
IFNGqKti/wHjSVJkWxB8ncWCXSVoyZZKUg9vgcFvnv9x9fFdFk0XxxF9F8gS0jbPDbKuOLAxotIq
ozN3V+/Nq+Dj1Xt05Zvs9dsP/CvmX52999/wr+bxpbB/oe1EtJWR2KwTJUlIZtzCNp9lWb2RlCwh
pImhIswEZx+sFFLeBPIwJWVvVxDCwoFGpfknyVIjLmPki4eifeiTjRqYKbLQWIVs4y5E3VCVEp1t
pGM39XpzVBUYF1UTQ4GNFPPUbaTl1B+n9KSKuibLj0iEMTR+QymVSThjrXlOTIXx3PGtF45vn4UW
2ucthU4rLz/9sYoExjRMpiTm6/AkzeC92LQdjSzvgRdphQ/2FLM8TYyuE47GGZR0scCmq5HNw18Y
9ARckgGyavdHZgHKszC5pWbIOpe2THe9QKeRoCPsu5m3N3H8a+V8/EHMm41a8iYfQ4QdJEh41MHT
IUOgc9P2UW8kpgv05DmLsjIvEDaGnXaC++HDm/dSb3gJ919lf6UyboSeem+kelR9mn34K3ZevrFM
dJCHgTQokwjx2DF1luLA7dNSnrM4rANxWOclDjy6OLwDcXhK4lCmUiqPdkiQ4KNknv6c/FLlnn9g
/oEeu3QT1u9U3JLOAYFKha1GEHpMD+mKe0d4i1IiqMtvD4BU34SxHyDT6i86ZsJQDGpIlS4cljQH
O6M81B7s99xgV1HGTuvYj4swS6hOvP79uMmrTwF0o2SENcKrY1FTwGkF1WA2VS62WkyH/S+WksOw
aZhu03Uh8BH114IdGyXQ9g2+dPFji/zUwir2DY4LFKEdBDfKWasPFjMzZZ3zOpTBbQufryfllpFm
j4Kx5pp0FARQfnJE/oGRPwcazlUL5N0DK+tA3Gnd81UiB9RQOp7jnv6zwWX78vBf/np59vGz33/4
9OG3D5fHg48HTxOXh//tzx9//vntm18vAEKAzx/e/Pruh8vjWxsGcXpPMmMawvGZ2MPmy9hl36c/
Fhfb42ykAvm1HZU2kLY9oNSf/rMH0JZn8fC/Xp59/OxBbL3n8vgB7L3n8PCB7LznBDCIrfdcHg9t
fUl4F92WdZ/yRbqOJVEnvlJ0pmq76j1gSdCp2R8yIfdxlBAW77EL9o7gSm2mp5HDMnB3E/cBZS+h
J4aWrONY1L/Ydt3+FsdR+pIACqmMkrwVTZqUsUdEdKvpKV35qPa7IcksJnlOf9/tptZR42ZTJ7y8
CAyLIosm60JQ4dL3HQ3AZUVrsRidQJbL6TjdmtuXkXnCjvaWDs54hFo7iaqkGCnhUn2pbnPLZkXC
NRkFKlH5nTD5yMKYKhNQeWg11Hm9YF2wLlgXrAvWBesZYsH7s7B9oesOZRLwoh3VR+AMPleDUXlR
mQvWBeuCdcG6YF2wXIV9ei/8G3Tc+l5/oBVJyjhH3ltYaHx4KhHtDVi9/N0nfHZVWI08hNPCWIYF
r48Emkm2tJGCo9qOBwQ0InEDB9Mx2wDXw/I377A6BEBEPrI0PT4jwNMx1qDIQp9iGMfpPa/oUab7
lMK9+bpW0TkYnYYrbH5N/6P/zoEYMzgHmbC/vbLeXOGP9F+cTsOYFTuj71AI8zzG7KmTWKoc+2cG
Z6N75y7UA/ru7+/x67Mc+XNVyTMe2fnTULwnMTfOl7gzpOzcV7navmF9PHsS8RMg8WlQaZ0/ic4T
IJJ9O39JvmNHkTMgk1GwJfPTz+/efPrh58+/nc/6eEDfGa7fxhnQ8PVZHK3Ns9DnV1+/OotjAf6a
/ncOunEm68zXB+vh+VF0hkvL10/A8/F1uZOdvYPGPHsSWUjwE5DkAX3kIVyuYvI6IcWZSPAMyHgC
J7bDx9M3tgD0deu7kKfG4GWAOt/IlVkRxkH7I1YkU1i3xfFNLRd0YNh6KdyjXx1QChX3NocWhkgW
toNflCx4iXWJZiBFaTQkuDwpcYh1w3r20shZwWKlRUMlg97xRp8udtCbLLlEhNqBdAaDztL7Mifn
PioWxozE4WNZ5YuVWmR5hDf4K/7uDarbnCotyZ7b0DQsZLbdCvu8JnAvmYj11X3uIrlf0OnC7Dpm
e1Fa4LaBWNrCW3mesKTeeuMVW8uzIX6ilRHOZixdj0cRgaFwyBpElHtWLRwWh4fBZb+HkxEd0x4E
cSdkkpdLMSt9yTvKgYR43vB0gLjmMJMmI8v0LoQnjmeiQTDlEkaupbKNyDuL8oVxEqeTw0afwu0D
27Y3FGjB00tq8X8Iq5Te34Nstz4fnXlrlq59OmwcXLAv2BfsIbG9lzu/ZfbYQKiWNQbqvt/yu+vr
rYy/A24lbJVWjd32M2FL8MCzTrihnRBbpQH1BfuCfcHusaG93Pl9ig0Nn9+GhvVsaAethyG3me/1
H221LseuHo6422KSrpNZmD3CleBUGixq4cntz1PGEkyZ00B8Wjd9TwPMrj1WCQg0e0HNfT7QGNhl
h6VRsGdkHq7jQg4+mMBxs8DxGNgCgQ+BnZD7AWVeIgocbf5lFl1m0fOYRQMKPJw98q530wVrf2uE
iaSqrIOcDnbKvTW9VmxJ5zk40Ikgbkfn6lRWfoOV3t7VWtE55wIStNICQetIpAGobLx2GLaC4UsL
P2iPV28Lum0HWtnh21A4bofLJuIqfnz9cECXah2QHkRhfN0fUEnq0ut1HChdvgZHRvW5ib89Vd6Y
4gdDKZF3kfygkueFcWbpehLDnX5wYI2w8Ej+4OwWpVGHBh4Tx32Bm8Foci+yaLWMEji2GzlmPzZz
UhgFWa6MeRSX9ix7kYRLcrMB5p2X13mHMk+KS86mx/dXKjNyK47jMmBevxHffy6laLmk1vaNBs5H
lLj3HfuUgkKPJnAZRRoFLmd8JIGrqLjVT+LWReItVfwi8LFVHPeTOL5IvKWKXwSuU+CbjmyXnfO8
lhXUT+LoIvGWy8pF4OMvKxeZj72sXBbyy5nzcua8HIEuZ87LmfMi8cuZ83LmvCwrF3P8cua8nDkv
Mu+Mq3KtKwir8rRNqTFv0vsR1f4mXUHkJCmykGUNhMmUgFUGXGxqwJmTjMDdnU1sa3j+YVv6DV6X
CjgUDJ0T2JIsJyQzJqw7eJjn92k2g1MubKSRNRD3epquKcPzMIrX9KMHixFfOjqsCboJkgdWz9P0
DKgwLjRcaLho5YWGE9MgtyR1bCe8jSNJqA0taE2okvnYgnNWHnBdzA2/UzZnS6D7KJml97mBsIMA
PF8DHP++FSCYZGBZyGuFNGQ+7FMDslSUHOtIuw1aAaloA1hvDrv9GdozcFl+BZkuUiPM+80rNdbm
Wbo0VulqvYLXCh9rgMpXaZKTsm5KHv2TwHL02iNJ85xKBizPdvWxQM/pxaMRZln4OFnP5/ABC1uu
FsiKtX+SLDViktwWi6MjsKrFj5V3MeiYbevBqAQom0qBaWnnpl6eEnm6QTCA4usGscYAsccBqaux
g/UPygPgWdE/KmOgOMCweKZGFL7TGElqTBdhlpMCLgWubxn4PU8TnjW8SyIF9x/f18kl3yQYdM2T
0xskJywFmu0LhnhjcFsuPW1shTCfRhFkb6lMX6uZt1lYhMZdRO5BxiyzFco5McYUUZS67il5SuUg
8zQ9mr08Aduy9ZC/TmZkHiVkxqcTazUDMRIEeJABAsbFOE8gWIBZFMbUIDVm6XS9pIcJgRHsjsWT
hTUwVdDJmtxSq3GdVxXHc9hM9azeaMeu+Q0ewJpt9uctYm2dDrMQZySJqPaTOzp8uTw/3TKtsWgA
4bGstcgB8M+//Pbjzz99bmmra5oVjQxKEm5VVjW7Hzx8QRmgQZBXWXrL682LsS3XtKTDaquuDCVy
HhWkhkvn0/e8VNyxcW75vmv6UnxHD36ttqnruJ6piNys0K3Asco6Ke87ki+pPKm9u06+5MbWMC3I
Azh3A6W7PtVOJ/vYkGiRwjKF5Be03KY2wnlBMiMhxX2afTFIlqWgYRqoGFNIeJO+eT6dQOs4LCjG
vqt7FuXTNEnItMNlZVvMVVgsbq6Pwsss6wJ0AboAXYAuQBeg5wm02Wy17bSAOUGPk6U9IfSXIB8p
mElIfgebr1es/h619+kvDm75YNM/ULk56oHJTG/26obZhtcPwKlnHPhoGd6S6/zu9j//85dPf/38
n/8JkDKSJMLVKo6mvCffdZ6GKzFFKm4uHRTN0/R6EmYS0TjjEIKwdf32za+nJ4RK5L+oRKhU/ikh
JhiNGOOciNkQcU40XXkf9JCD9ZCD0XmRY58VOc55DZb39rzIeX9e5Lw7L1V2zoscr5EcJZNVEzmu
qUc6libpWOdFjqtnsPSQ8/XZyIYb5+At1zj4pXW+Sm5PhZ/chXE0O0ZHI2rmec1b5+15kaNpR7Q1
DZZ/XuQEZ0WO9U7PIquLnA/nRM7/Pi/NeXdemvP2vMh5c1bkOOc1WBjrmVeONv+VBtk4mjTn43mR
834Ucu5ujWlGQkbQ5NF4WGRlfz76I4tCCfPFJA0F2cCW7ffG34sQuLvl0ar0ey3Upb9KrldxGrLQ
R+7J38Zb8HALIyyKLJqsC9jdrhaSixwd0XBIH6P8G+cPjH/Ao/Fka+ap3dipBCCf5dixUNeKxYYr
KNfyn+hYHvPI3hOwaD8TFnlXleqT8O0e8tA58eqqAt2SAkjaaAfRKM68COnyLV7WVFI21FnSJzsp
Y4fRf3BEtmU/OcYUIkmR5blPjq9tkiwLLqwmd5rNBLVnMApkEaN7kCeIGG1iOItYoGgar9nFt5Gu
SBYaPN/eNG04LcbvDbqXoyWDN6J5Fi7BJCrX9TRSwaxS45AUKDltUGE7YJtJ3xpJ2I5E2B52B2Xd
hUd4LNZdmZ5p0HYZtgeC2u5IrHuyUVfJK+nBug+CeuZIrPsS1h1v2IU1AEEdeyTWA9moKy2sXlfW
kQlm4aokozWAKrGOTCnrQW8qmHclTdaJ6JjjKg1yA8YylhfDQSoFLpTFeQBX91Ap7VCe1lIhfqBD
hns/Gp8+/1IZWx+4rXf4U75I1/HMWIbFdAEbgB7WTVHpxOKZ5J951ktJxPsoXzEyPoiOEdj1HY2D
T8+2MZUD/f1RtSnFCFysg+mf0qKRb6RUa6UlObMZx/sU5QVJCJvZG8WA552lnYTpgky/GKxM1K6o
gDGnZxKbmsf3UUHlUxiTdPYIHpWR35uePe9tGS1dAz6uQmbr14tSCiwNFxADWHVFJdlsj4YfPrx5
XyMiSYsPD1E97XUYFstrAnY3UBbkEZQ5U9g+sGof9bLwz0HJqfokV7mBaEA8ZjWL50yl38Txr1WK
4g88w1qQqN6fZXa++yWsd3Mvu8abuhmkijmJZjNqcCwJnSgzeoJ/mJIVP1aC64aKS6sdCTxyx6Aa
zB2uZGbkd7fAvQvyXUejQnHfSUQVCoCyfX9oJkHhekqLcnsOH6CsaRVXVzselxHVIbYoLKMHOozT
MIcrjQU6uVSgob5QDMJ8nlOrk1cRb5hDWMM03glglpKc6hVhy39tvdC+IC7XcRGxLH12SAG5UzqQ
tgNldZGqlb+sw9Zk3VjI1SjhJH1Xon8qi8CFedShFnxnlvlmB3qdBmHyNwY3Bou7MSxPvNXRZb/c
Hji2KpUAlNmeRLfb4gPAQuGx85I1Hh6yXeSpnLtx0ErUvCgtN6HKbR506ijpUzvcO5Jl0YxsV+V9
na5q1YCnAZUYh56kyDepQCWapB0F3F8wzcIc1GtPSa0DVecEr9ALn/9187VR59/IQ9Gw89kapHpS
Hv/+l0+NLGqfRTkpqpfljGGbQyK6BMCjwN+F8VrgmNQ5wo01rfSvEzwignKocF2MHdfrP2ch/DtW
do+9CPOcZNw1XFUxh+9gpGWtzp6A3XiH0ykTOdslsjQ2JtQMmZYRgNDgOwOC8sWasUx1ITHKylQw
DQPpX0H3KbhunG8GGqfYLL0vA9mYo8yYkTjkbrLvo4JkPMH8xvmKv3vjmMcGg8Lks8zWzLfXPc1U
8Cv26Tov0qWsfh/CKuWSLdU+PkeAnVzYHfjkRSzncQhfz9gq1zPKLPb10I8GZLeS4zrJwzkxtv2s
wF5Fptketl0DL1/SwGvr5juKFVFsqvVkCDvC2TtL7krMCatTOirXUbY5Vtn4DrzB5RGx2RuM7Ubp
ur6ClG+Xl2GwU9PzkTZ0tmAtwixhbp9pnh97u5yh+Xz9+7FTxHdcNLRws3WS0GNyDdtVqSmsZ1xr
2Fjl0soWdovgBgerl5wX1LrjmSa84eLr19flP0YMH+689Qh9xZ/5Mc1uzNdu+cOb4sb8ih38f9tm
Kq/iMEo6zEnr+bHkaNCQNFmGcOtKT+UuRZEGHfNfI7e1WaE0Id3np0FeH5luHHM5HGPntse/t6ZH
AbOw0pQWrmePx2FNY2yVvhvH6M9BZYJnx5KDtOgIeVhFmWAyBKY2MjQspZoZrts3ptueiOegSM/P
xnDsPqpSed+gGeH42sB1zAgdbNbmgVLUzzH0c1Ca52cpOc9vJ3eCXjr/mExlZwdHGwE6prcuVusH
h8ZlzG/qnNqAXtxHU3gJbb5CU8buLWM9XNat7Oa4zDryk5+bfq3RzHNgyXl+LLl9VJ7VIt/UY4A9
sD6ytBGhY4b7z28Eg2fHEjI1KKXUteNbCsqCnt+ijPDzY8nWqSwSD4jfXEVAmRoNSxmyn99Qus+P
JU+Ddkp8EM0pnso06NBJ7/kN4PPbXrH5/FjCOqYZPySXP8C2rK+NEg2TrR/PB8zW3X44aE/Ac9Cj
53doxc/v0Ip1bKpCp5SPsDYSdEzz57en4ud3Cree355qyb2h92RihKtVfm2acCKM6QZaQXjIcJdi
dm1QsMTY9n08BJQRAjXU0CBIk8GR4NRy7GsFgdiwtCJMAQRHJ4IlKIyiVcMs0ZRBKnMGnxmMLSh7
EWgFEfLijgOjVWRgrcRA5cKvBYaQFU8njNcxUbYVRskKkH+udVR8wXaplRd/FF7gMnWI7tZaQYQq
ZumEAc0Y1/O0YnBW6IMHHxlwK/aQoxVjNG7g/dIKtLIDbmS2IiuOKgpcLdhztWJwTljRr6OBYcdO
rdw48AKAPa0gvXZlZRh4YUZKi5kiyO5cSOFKrqBmJrg/Ivdy5NdlqcBt2YAqr1VQGshpD7vB2TFW
+VfWRRQDuTvUuNbGWy3nsszhfVgAHk1kqai9qyZTKGmb1R48ztmGkjE9UxsdNZmX7WvqzDvBAJiq
Uii1vJ69pmQfDkUUoCBm4A03MvQTUAKGpB5+I1YHptvVMTigoLkif0cqHF7tF2sT/TRO4VxUbOIB
xpfDCVQc2a4zFORYE6qqzAiojooL0RsVzVdC29SaDEW52ApNtpTBaqxV5SVghfGUPIy9kCFQzx8O
ddChfOpoYHGYC1xHuL9e0PSgvf/w6cNvHy6AGgHBwtkXuG5wf/vzx59/fvvm1wukZsjPH978+u6H
C+C4lijcUdYc0BKErU93SLsXcEoglSCzi915MQQvdufF7rwAXgzBi915sTufFGBwOkC5QTEnmaCN
UGBphNkV6uSAopsgzx4OE6h3oBLfbbWrEr4Bq4+a0g3AGYFtBJkvwozMthnefW48/SGG95A+0cWn
5VnS+63g5DdswTndsHVRDfF9m1LUbzDmEaihIKluNNRBnM23U46rDXpcRp862hjnypcD99cLmh60
cc6ULwpwjHPli4Eb6zz54iDHOVO+KMDWdlrn+KGLhXYxmS4W2sVCuwBeTKaLhXax0C6Aui00yS0H
Nvv70PR65c8JDBbnwyIr+8snaWHM03UC1ntVSl1rbR8e4dYjl9whfKJHZVeaiLDsQRyzUZ5HyS1H
r5UP8rQBynkF89j8p8HtXUTuSXY9Wy9Xb3LWJvp6yhIFi8eY5AtCoPxLC7maoPaSdg5B682AsK8J
kzxEecGEWGSEGCQmS9b0vOz9XefVdjTBzrNwKSqcqsIabiXOEs1YkHhFl8E6W4GrCXIZFotlDCmJ
a2uCyO9uoef7ulh4YGNiFCGE4lqOLpQ4Sr5AfGBtfGzeNKZ0Z8oJVeoVb8P+ACRt+4OBrou5D0Jq
5xMaL9/XpXYPeSxfBrGrf95S0GF1fQ09H6vk1dWen8fsv4Kuo2GSz9NsWbap/j28C/NpFq0KYxbl
4SSGK987KiUQIMwDYSmhAwzbaDTwvG4D2v/t/wdQSwMEFAACAAgAVb87RKWMnKTpEwAA2zoBAA0A
HABlcnJvcl9sb2cudHh0VVQJAAMyY+dSSWHnUnV4CwABBPUBAAAEUAAAAO2de2/bONaH/99PIQw2
kwYz9EWSY8eYzotOmp1kt5MGTWbaF20R0BJts5FEVZQcexf73feQki9xTNmOE8eRiKLxVTR/Dw/J
Q4o8/PwHC4x/4sAwm4ZptRu1tmUaZq1ufzU+3+Io+GqcBTRuG5eEcwpfPcZOnxiUGwGLDYcFXdpL
IuIan/s0EF+7fJd9U37x698+56QPSVCHfDXehOK7VbMC/2zj1Z8BHR4YF6cX1UbFqpiHhs/ca869
8RfehySA36nWKkeV1mg2EwgZEeGJT4Me5C/ysWewkEQ4hvzwRVlpjLNCoohF8Oh4lASxUTeblRr8
q381/kE9YriMpIrJkHKQWf2LeYlPePUtjnH15ONl9SPp/IvG1Xd4xJL4ivCYV/txHFZj+RSHoSM1
ioQQJIRkQhUfB7QL39iJvAE6lkQOXDmXy3i4axnEHRbFSL6LWOCy28Bj2IViR2OiyK7ZLwMv+jJ0
a1+GR114rH8Ztmrp6w7JHs3ssTH3Oc4eaz+D0XdJRKK2IX63Xa1ONLRbtVptmgVnFFHPow5KIlrp
x763Y2CuTs8ur/9x9u7k+u37k8vr8/dX1yefzi6vdrUglfn9xlcvlBm7EFdAO4bIAARw5BKPxATd
9iH7KMKUCwOPqU8iVH9RxffkOExtzQ/N7wvP5TqmtYpB7Y4hacm6xuyY+SgtpbkrztTq0rrY8zrY
udGatKaHauqyiNBegCZ5HLcA8yMokfc1JM8nq6Xfk3708izZT7yYLlVm15+xULO8BRjSCbFDQGYg
kxeu9vh7qytmgUcDMpGMPDwiUY7HsWPaSXzLIg1jJ2Cs0NRdnF4YH3EUQDJtw+Axjl8dGJ9/wUYf
cvV6v5sEjpgIrIhP9n+98/KXKv71a1teY3QxQHUNaImM6gBH0CR5Lol4tRlU+aHpmPV+ww4b9pHn
hEFjUKubvgPSar2gelUNmZgu80ODBmsXw5R+zBKnj2Lih6gLeamE/dAAIIKYUa8vhZwSFllBtzTu
p9NkLuJJZ/ITIskFlBvb6lAcHAwwr4YwDKFhlfq4B9cKQ+hFLAncShj0VpA5m0aaLidOEtF4VHEj
fHsmkq2kX1tsV/V2zdqWYj5bwtxjt2g8Zcn7hMSiRBANkMzGcu2QGpjDDYInyKUcd8Bk0QB7CUnL
/P4PTBLfBAV3IhrGxv5m6mEQCtXdPaaRk1r3viTbFUVvQLVLAqHHiJmskCvBYJ1vxImhusQoSx1R
H5QPekq59rOUvJOKhoxtqAu8jxA+Iq5SYGtLAtOxodQ35yVdQ6rXq3lJixOJyPdETOZDZ5N6W/Al
NPPVfItW+sft9mNpz6rYHceYiRsmSwWPr3QiBnWYRbQHFfTT6Qeov573Dj78kGpXiduae3BfInRM
0MSuMI8wvjSMiHgqTTfO02RvWdPErjDYVX1tPbOt7MIuFSQ1nlOSWRBJHBwi6QpBm7iypIj4bECQ
Aw6Ci2KoYD1w41CII06UTUZjhU7wT048wrmRcGKwroEN8BKp7LHA6xsw6opb0jEZxgZ4kw/3AqUD
hwPo1sEz7o5Qf9SJqFtxejTzBBsVLUAL0AK0gN0TYGsBWoAWoAVoAVqAFqAFaAFagBagBWgBWoAW
oAVoAVqAFqAFaAFagBagBbw0AQ0tQAvYQIDZrh1uaRnF/J7zkCxfe+YTl+LqgLqEpWus0IJl/Tsm
avezU99WduyajVwaId5nieeusVnBp9ypYoe6JgrpkHiqcn5JSjbRcE56LKYygETbcCFJBnVcrA4H
ba/4geHj2OmLcBPZSsX1Bcp8zkQ2gBxbVZ6EoYhwgMVKaOPVOYNWxBEAjA4xgixPxD2orI7BUmGw
alsqSpkVkQiksUYZEr9D3OMI875q2RZosLapYVpaPR9TD2HOCRQWC+TCOdSNsE9W2/ckk1uUiFJo
43mEQkpyefYqqz7nLrUiF3lkQDxEJZl0gXrHY87N7N6RhYsNzS3ucRNbo6ET75C4H0HeVlpqKKXC
HxmKgMcjj2Sr+RXFt7VFuzJjcZ/ySrqCvCISrECClbSD6tHuauKyBehyi0bmCcjyY0GemZZGZ/N5
quPk2bqVUS7vHa/1dXDgQLWsq9Q1ttozkNW0JIHczyS8eJRuR4EmJCRYuRNi2zo6BdHhFERHtyA6
bgqiwy2IDr8gOryC6AgKooMVREdYEB1RQXTwguj4XhAdg4LoSAqiIy6IjtuC6OgVRMewIDpGBdFR
L4iOfxdEh1kQHVZBdNgF0dEoiI5mQXQcFkRHqyA6jgqio1YQHd/0fLu+j6Pvqyl19J9Ox1bvVtOn
03H0XItDxvGZ4HLPW/ee9JB7MerI8GBy0ZM4nGS4QKDVrlvrRgFNRJzRm1ehiGYVD+OF8UDT78xE
BE3fyGKCnjNDqJMrvkRwQpdGxIlZNHpIjM8AD2hPria7Gw5RxOQPs4hbk1CfywdGM8mlCxfSKGsB
SuSqBdTHgeupVk0Bzm0tJprJZ0iH68iaPgXrT9FDbegTN4Fq4YhFYUpxLW0rCqjiauQwdkOJpreI
Hr+Lz7at+/hmwjYqIR5pE8w1Qc1wY4ZcrKjMR2jZTxfYd6G6u8GHZcqbR/md+aU76Yei35vGPJ7+
3D0Sdru2rQ5vHIf6QYchTC8mcRa6W6xLZUOSrS1G2AHMipjWW1Q5ex4fESvVF2RG2ZE8XgxeEYle
1NeVooZP4KZ7W8TWHRLdaYlSt8JU0a23tm1DE31+aD+9PrOeV2BvYhGWPpa1lkQDMm0b1xe4upYh
ZP7tyfnZyVvkk7jP3LTCZ+vJw4jFTCnH3Gk5Ilov72OX3cqBHkgJobziUWEERqSXeDh6iLKGve2a
RjnzxAD7I4s8t4qDkfAAVpd99/K8I7Ps7Y3Vp4Xie+LtbKPS6qo8GXadRLNB7EVI5Y9Qjp/+eHcK
V+eGKm+sFGr/z3SLZgJOHI0p9ui/iWvIAw2Mv5+c//WfH06vri6u3384+/3s/If/CkfMYYEDtAPp
ExivKgfCqeCxOEXkIds5J3rTVvKUYPeO5hASjsee1mRrZ6uyOsg7CWdtcV++Ql0WoR5RA8ztRHPQ
AaaMCPm+ERSo0W8Sl0LDMRsH3ukzBFSgWmPwY70UyeE6TGbSlTuCpttMPYJvwMlzZPFqMHNgovRg
vkgJ5qgEYNIpDEhPbN3JsZJ6baP25yUhkZslEaSEHObCQCGGjHcSGGqaa8MpkqWosGgoGZQgjpiH
nD6ONBKJ5Bse4Oy2SxJ5Sij1UkEJEm+JkZSKR6kpdHEyzGbb6hpECkLdyZrlAmGVGwSLfITzXdKy
cEgxiLAW4G/FGsgMEBqEiXLIr1zqsKM81pFQvGFXVzhG6Tg9m9lc0X8sM6JApN4n8MWFt+vKSkee
68oCkKo6JBzI2GUkk8VoyfO87Zffatpl6AinhZo1knIaQt6ldJmPaaAtXwEpXeqQhszSjBYyUnJp
vPzWoVGaos28hMnsPsKex26JmzOVreEgS8NRwtkEzbMtpFgO6/++v96zjlPRe2aNR87r/cXp7u9Z
J/DVDBC8WATjsAT+x7yFKC2jRDDujliRzyKCSOAweRK45jPPJ76lDpHPJCRiakZLGVma0VJGSkTN
0iKawnE1nZWnFktEJA3Si37/7V/5d6fLh4QGiA96uYPiVnmggGvsMqfcJPwe2EYa4HppfXn6vRv5
0heEahIrQr0+g996yEhJqOUkfg3Kf0xHTX4vGzLBQx3+Z2xe7x03308b2jb2II1XYDwgLhBRxsUc
5YFiBFU2OxLbkSBdd7eN6cvQsb4Msf3YNjVvR8fW3ht7xpJS09kzm+NPmg+ymy0Qqj0mGuSSLk68
eOzWzpD6Ka1vZg3+/zSpcKZZ3WvVqnvWb4rKZpoKbkclq29i09Cby+OzM1nh1APPoyLZ07MZ0Faa
JmJ+GbbgP3a2WQf3gdf+DMCmClxTV7v5areztQ6Mqftl2BH/3SetgNp61rEeyLNzM9pZq6k/sVsk
fOv9uy7RpSzGSjdi/jFUqGNooV7Vho3Wz/DHkn8ODkre409u+DvM9/HOGs/w0cdpXhLDq9c/y1Ga
MzWj4ewQzTQ/f/3xu5mZUz3t4J0FgMwy7F2hIoQJQXLbMTq9+uMd9PoxCCJcZTf5WArS6Eyt5XDP
tI6a6WO91ho/qWdP6vb4yWH6xK5lj0fZY31xa5QfMWELGO/NUzyqDykXIsrjbUEA7Y4EZ+L51H2N
A/hi9I4GN+lkCv6JunvW2+nbP4mwO/COqJgS4bCe5nWvdiSyu2e9kRneM1vVT5eXe7VGdc88Sv10
IVzcq8YK6GVYLz67FBRhPySRiASjrM6lQ7LKvsXyUVna7FtlI7J032LpkGgQLCQBRwG5BQc7cNlt
qYn42BN7k4grHUclivKsK54CEbGMRJiibClhFrClrhktZWRqRksZWZrRUka2ZrSUUUPJqKEZZYwO
NaOljJqa0VJGLc1oKaMjJaPD0jAK2CyY5dvTzDIsgs728K4Xe6qcZJbPWjRLiEUJo1UeGKsHKCsZ
lXJjCEmQ3f7LDn7JIm0oqRyVhcp0/TeqKYfcVu3Fbw+3yhMxJSLysKiZyAjTWADKEi4xnrWZFKkR
mLGS32ivkb9u1rJLSmTlvYilJaQE0igXkFUGbSVkMoCMxupNqmUjsmwhQtl40IBTl4w3ZKr7n8My
Y7E0lkVYNJV4tUmxsgGR49vx2agaSgpFHHu2mpPSLCGY5XWohFQ0i5TF0qakuaWDy7qMbbiOfUYV
x11io+ls6L1d26a5mBbkQm4sXbgIXbOYYZE7xf4RXBlDNDnYAZMVdUOep/bE9QK5RJ73Uz/s0BhB
Jc12waaVpXm4cWWRe7PupK52X4/K1Y7cR9PQaFRoEE9AeQ+LM6ExjTSoGVDQYiTYy98BWUow0Pp7
HezcKOdX7FoZqQg7QbW6hnIfiqmhzEDp4sAZTbwCTWZKhgaggbrI8RgHBXnzT6XmM7lTlhMi166X
EFD6KyvNwJSZjws5FUZkajhqOJaGo4aj2Sxgw5KOR9D3hKkP+LXN8vJZdlu2zGwCpu1GyWbZbYMy
w4mIh2M6IIg7feJr+1mAiIsluGK+On33e0IiZTw029KcYg3nPpxEpO/TAIt4wzmzPBpRhsjUiJYh
sjSilc8WtO0SIon7ESEoppDd2cNI5u4ramIzxCJMPTF1KGaeQayp6eTQsTSdHDq2ppNDR3lX3W5o
OjH606yZLY0oB5GGk7s/rhwYBj2EA+rjnJmvsnBYwSTKsJpaxHXpUg9SQ51RiOFVh/YaGskdJPwb
5UVBskhCszT7pefCGIU4kisfcqZPNBtLs1GysTdhk3ZBxv6DhYuFF5DmZfb6gnnUGc0wCFhAeOL0
K2E/3JcL07ssCVyDRVAguOMRec55jOPHPqo8DSH/Fn7+df3HdBFNGjHstZ3GkE+l71kn65wRclyd
XAYvQng46+6ZNWAklrQTcSp63KccHgAmxz3xBg5c+Bsw+PNPPMCXaQLwvvzdA3kJCdIH8VeEozdr
F28uL0/eVsRPhovXwdvb2hMQpiuzoh6JkUhLhOdHMq0FuWrYW8rVLen0vGodUjRn7ADsUYSLw4FD
llrU3RSwe0GHxOO/YfdN1FN2ti9UX0yGZz7Yo/k2L+7yyxV3mXSW6jts17emj0U3JOJzDaFICwfL
m7r7V6fvIOqLWCtpC8Ir3/giiQ0t8bEliiZd+OMkbf54nyWeO20FIZcr681Upg+pynMWX/XhWpXR
rhLI8lHkDn1PvIrI9wReV6G5r8TD5UU5dxnuyHBAKSMX3onYCEExhyzg5IoMY5XO/KhYFxHxcZxE
xCDCfeiOXZe0U+dtQ5wNCy7SeCVoB3PqINFldTH15JF6HGzLIxWnR9fWtGraCmnKtcurual/Pzn/
6z8/HL8/vzo5v7q++v+Lkx/+K3xXyI+Dwf3CwiM0XlUOhFuVObQP8GbnRMt9cyhz8FA8CiW6bEdb
ZV2Eabg4DwyTBFABeo6Slfl0butcnu70PELl5l7q3C+Io9HhOqgQqX5RtpsIf4p6PqXgsR58v8qT
Trozl0Wj9QWLJFQSG81HqAenV1cX1+8/nP1+dr6NajDFs7AVwJ7HbtHcRyyiPToOUTytNUdr15o7
CaXrdbK3ROuD+ShwNOutsM5F3Xrumis+rrDeYF3NYtgzEg0bjJ9x0CPy9DXZg2utzXbNeh6tXcYe
4nlx8IwQ+CIbazoWvpvUA5ZvyOWTD8oLdKGkC5XRTQ/1SzzvZeXKbD5P+UNKJ3JgIfK1rsa7L5HT
J86NbNTQtAIgGGYjWzV12FRHMX5i4eLNCxjFP4rwyOuKlvuN533IRh+naR+xY6KnLZtIGNKVyW6o
3qdcTg/LUSsZOiQUHfYm0icHMWRDLkNMlWaeeMX4DY/ff/2L+JFf20DoOPWq35GgF/cr0IXzDVUF
bDIe8WSi0NxdRKwHCLlK2ypjryexZeoT4U2LD/s4CkQWHb42gXEycySyt9O2XhUIsqm+l14k8SwQ
x7+rEDTqRUbABqCKuoSTYQhjNmUt2NrM7rNQyJt9Ae1HhdYOA5O8GtBq1wpdA2QoaaX0wyJLzyaT
c/uA1vZuejwng9XaQYDRLAGMvOawpT6nulAIZKuYvlCCKIMt5DaPlvlYc4Sfrq9OLq+uT0/evD35
UN/GXOEt6SAchrxaq9lIzglN5v7stef+ZhNTwjrc2ftT47uLm92nai2JbrYTEjnUGOJOur4NBdvP
5Brdv/09O2B/KJtpanNtgpwFEPer5W2tRXfVNYpZFJNmUawic8hXw8FJrx8bl2e/X518+ONng/eT
OBbtmMtug7/9D1BLAwQKAAAAAACvvjtEAAAAAAAAAAAAAAAABQAcAGZhc3QvVVQJAAP6YedSOGPn
UnV4CwABBPUBAAAEUAAAAFBLAwQKAAAAAACSvjtEAAAAAAAAAAAAAAAADAAcAGZhc3QvaW1hZ2Vz
L1VUCQADxGHnUjhj51J1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAkr47RCGPvTgyAAAAMwAAACwA
HABmYXN0L2ltYWdlcy9wZGYtYXMtaW1hZ2UtY3JvcC1ib3gtc3RkZXJyLnR4dFVUCQADxGHnUsRh
51J1eAsAAQT1AQAABFAAAABzy0ksSXVJTc5PSbVSSAHRmXnpCqlFRflFVgqZecn5RUWpySUKKYkl
iQrJGanJ2XpcAFBLAwQKAAAAAACvvjtEAAAAAAAAAAAAAAAACQAcAGZhc3QveHNsL1VUCQAD+mHn
Ujhj51J1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAr747RHL9ZfKFAAAA6QAAACUAHABmYXN0L3hz
bC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQJAAP6YedS+mHnUnV4CwABBPUBAAAEUAAA
AK1OMQ7CQAzb+4p8oGRguxkm2EB0TttUnJS7VLmc1P6eg36BxbJsy/akaY1CHjUDm6kFWKLwDwIi
vlRq4oIXcsLr8MCBx1t0vNOu1Z9cvOBCxXErgsZFq00tvr2tn3U6NRUkZoYzsHDi7BDTquZdc8JB
IUDNNLZRVxCl+U/j/VHP8/dF9wFQSwMEFAACAAgAr747RIkfIf6XAAAAwAMAACcAHABmYXN0L3hz
bC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAkAA/ph51L6YedSdXgLAAEE9QEAAARQ
AAAA7Y8xDsIwDEX3nsIXKB7YMsMEG4jObuqKSE5cJY5Ubk+gR2BDXSzb3/76z2tcgpAFTcA5a3Yw
B+FvcYj4UKmRC57ICM/DDQceL8HwSi+tdudiBWcqhmsRzFy0Zt/O22T9SFMf4qLZ+prDoe1AQmI4
AgtHTgab2jXFbS04qInGFsAURGn6NUjSUv3zY9L+RDq/8+68f8T7BlBLAwQUAAIACACvvjtEgUp3
rUsAAACsAAAANAAcAGZhc3QveHNsL3hzbHQtdHJhbnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0
ZGVyci50eHRVVAkAA/ph51L6YedSdXgLAAEE9QEAAARQAAAAtcyxDYAwDETRPlPcCrRs48AFWXJs
ZCzmR6JgA+qv97eYp5qUhoOZkSuGGgFTJxbQOOmFW1KlG1ty51DXV8TAYdHFvo7iVW375foAUEsD
BBQAAgAIAFi/O0T92z4oDAEAAIIBAAARABwAZnVsbF9yZXN1bHRzLmpzb25VVAkAAzdj51I4Y+dS
dXgLAAEE9QEAAARQAAAATZDfS8MwEMf/l3tSqNZZhFmfBi0iDpW1Ot9Ctl3XuLQNyUU2Rv93L6mC
L3m4fL4/7hZFIVZl9b6sq4szEDpykJ/hK75a2j1e4dFYdE4NvbtuqdPhx6IZLEEOq/KR5dXT6wsk
wCRuCXc8f1tUFU/klrxkBdTlZw3jOCbgDsqYwGTZ/CaB3nfC4v4vAfJZAqontNabaNVI7XDiOsVQ
v4ecdVqeBk8iNhY7ZTkj/Ri079ClhSSZlusqXePmWVG6jGwdl0vgG22I4gKTq5HOIQdnt/fzuwSM
OqL+9cVebvS/Eq10go9BdGIVbVvIyXqeN+oYwLjTbHJttDycYlPP7mI6jaSwo2hUYIN0vHz4AVBL
AwQKAAAAAACgvjtEAAAAAAAAAAAAAAAABQAcAGh0dHAvVVQJAAPbYedSOGPnUnV4CwABBPUBAAAE
UAAAAFBLAwQKAAAAAADMvjtEAAAAAAAAAAAAAAAACwAcAGh0dHAvdGVzdHMvVVQJAAMvYudSOGPn
UnV4CwABBPUBAAAEUAAAAFBLAwQKAAAAAACgvjtEAAAAAAAAAAAAAAAAEAAcAGh0dHAvdGVzdHMv
bWlzYy9VVAkAA9th51I4Y+dSdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAKC+O0QVNTWSegAAALwA
AAAqABwAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRlcnIudHh0VVQJAAPbYedS
22HnUnV4CwABBPUBAAAEUAAAAI2OQQ7DIAwE73mFP0Ag7aEVvyHEVSwZjIyR+vwS5QPVXlY7h9ks
pREnI6mAqqIRPsQIp1mL3m+P1xpmtvgOIfhCPXvFLkMzdv/tbG5Ph6PSRM0NpXVuwFQRnoCMBavB
TZdJ4l0hwqhpnxoTYEnHf7oqfeTzupcsMS8/UEsDBAoAAAAAANe+O0QAAAAAAAAAAAAAAAAUABwA
aHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAA0Vi51I4Y+dSdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAA
ANe+O0QAAAAAAAAAAAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvVVQJAANFYudSOGPnUnV4CwABBPUBAAAEUAAAAFBLAwQUAAIACADXvjtEY6qsbIIAAACo
AAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxv
d2VkLXN0ZGVyci50eHRVVAkAA0Vi51JFYudSdXgLAAEE9QEAAARQAAAALY1BCsMwDATveYVeEDu9
pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1
VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGa
vlBLAwQUAAIACADXvjtEY6qsbIIAAACoAAAAUgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRV
VAkAA0Vi51JFYudSdXgLAAEE9QEAAARQAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+
fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDv
jPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIACADMvjtE
YEtmEJEAAAD7AQAARQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1l
bnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUCQADL2LnUi9i51J1eAsAAQT1AQAABFAAAADt
jjEOgzAMRXdO4QuEBJZWmWHo0p4BBVMimSSynQpuXzr0Bh2rv76v90LeSqRJY06AzJk9LJEQVtXi
re36S+vOdf7qnLOCoXLUw+4iZhjvt3Ewu5CZc6gbJjVf4MHxGVO7bwQUE0IPSPghQPQglBVRm/Pp
X8hyuj3kRAd0rYMFJ62MAhMjSC0ls+LchH/oj0PfUEsDBBQAAgAIAFC+O0TqinxCYQUAAAUPAAAK
ABwAaHR0cGQuY29uZlVUCQADSGHnUjJj51J1eAsAAQT1AQAABFAAAACtV21v2zYQ/q5fQbgwsBWT
nLhx5w2BAddxmixJnVlOAyxJDVqiJNYSyZFUEmfrfvuOtOUXyREKbA5gk8fnuTsej8eLT+QjkWPO
NWq0ciUbjnPJg/kpTQkIdCZat2R2QXUr0VqEXgprDeeahq8BBA0bjh9wST5wLF+FKYOYGQQYnNCM
8FyjdwcHzgUhop/SR4JGzLnCz+v5mPyZE6UVOtxGFdTDjuNcUeYLLIlvtwRAw9+RdBxfY6l3AIOU
EmbUdg7MtDBzTeQgoWlozMHHRAWHVzzMYT8418nLNOFKT7OlJKUz8kyCFhY4SEi7BeLpBuUpvk2n
LEjzkNRxV5ASMeXxNOAsonEdd4Mq0ROCQ9h2HXcFKRGVSutIsFwiZHAqdQyzXqJgRWs9M+slShDT
OgYslwiMxFxTrClndcQtWPnkMhyTDIvao1thyvsLjL76LS4hZWJKcT3NAEokSZ4k1bVnsIKUiCIR
nYK1+pTJMDcoQ3SWN+kTzgg6bP/sHcDfoeMcn1BJAs3lArV6jtExEnZr6JyFoEuhU56m/MlfZJeU
zRW6ylNNP1PypNAQTA0+ngPS3gBl6X2DHoElSUNiZkulEnIV4gNrP4WELTZQFEmemRXnuLX2pec4
/SAgSpmaZF32Eo2tBFw2QoX+QY0v994Pd2fJw91EP/x9dxI+3PnqYWq+fmz0Xrd7AoONWSPxIYNU
tLDuHresfnDhRpEBZpzRAKfWCShzJyTCEIHJQhCkybNuiRRT5pxB6WAAueR8nguFRlFkylB8SR5J
ip6wZGZ2ymWGoXg3E9RMUTNHTY3uG01530DNnkLNmZn9NSYRkUR+oyA2c3BDuv0YKp8RNVDAsxll
JPwujRae8V3zGxPI7aHmTQOS0Ap2UdYwXhpuIDso0sinMcM6lzYmzvF5VFSTdZIHPYhkIe+VMbaq
BMsz6ofhJWZxDgZQiJEXzitiliKPpRUxYcgjrCrWICYVcSSRF8mqSUiusIqGY/NI1WRiUnGNHiRY
KjB37o/cbrfzi9tFHlV8OaxwKfhFdUX8Ffb8Fe9T2T5ot93frmGZqgptDtuZy1dpF2Prijuv7phB
2Fg1bIyDmFfEAgIh+Ks7bi/NiGqoBGxX6D1idybNCvxUFlP9grw0r8gDiFGAq4ek4JCqoVGPyFOP
VSWADkB/UGXIHHmyavYlcSe3yIMf/VSOwAcad4q6i7xi5s1gUIbenn86Gd367mG7cwjmhR2UQYPr
7vv3a32BgNmrQTembNg3PheYi9F51x0Xauacdt1KktwMfDi3ApMHqr0PcbSNOKogJqeQ7WuEjrqO
heze8+33eXXdzacI8LWkHF62hbnJcPXhmoNmuKehvX9wX+BuQJ5DZkIWQj4tcwcOy+QJ5AScP5z1
6mx2ys3KW1unsRAp1HDjROvZha4SeTp+WWOGLOAhZTF6dqFWCgmPDPL+2LMav1CBvPhll36GWZjC
IwM9jKsCSU3awxgyPN11wz4Xic7gPinzU1agbGV1hYlvWGCqIBa6WLlU2Tasrsbal39TY/eEwvb3
LuDA2UR8H3CG9fcAXcVzGRCrWO3LjJDK7YxYP/227YC+G749G6zlsPCvcsiwMI1SHNuOG7oODv8s
cLa7pBIu9ZQLwqYaprBcE7ai2Vo5N15OhyyGN9e8dlvCAWchgtd0+PvN0J9Mr4aTs9HJN/RlMu4P
htvAsVHuvUUuujt9KBn/TKXOcWo6CPT21+7R0bul4b39ml3wLzfeHLe2+KDujfMG9eFIiKsECWhE
AxSZdmahNMmQkFwT27p6gFw1Ug2pZPB/9EtbvaTpzry39969Z7qiMOJy/l8sbDWG/wJQSwMECgAA
AAAA6747RAAAAAAAAAAAAAAAAAMAHABqcy9VVAkAA2pi51I4Y+dSdXgLAAEE9QEAAARQAAAAUEsD
BBQAAgAIAOu+O0RI5+beLgEAADEpAAAfABwAanMvbGFyZ2UtZXhwcmVzc2lvbnMtYWN0dWFsLnR4
dFVUCQADamLnUmpi51J1eAsAAQT1AQAABFAAAADt2r1qw0AQBOD+nmK5yiZGOG06ExQIONggQeqz
tLZEzjqxd7Kit88qOAlpAm7DfMU1Go1+6imbNlLimKhquHqLdODGXdogNLapIX7vhWNsQ6epxmlK
2CWmmrmn3klkSsIcM2N2HcWhqjS9oikMer/3FJnJ6SktRwpHsvtNUVg6a8qdWJPH4H0YuabDRLbM
i5Iedy/7bV7mVjvNHCe+OL8Q7ucn1/n3Gy2s55RYNnZF9k6P+/V6uST9nq9skaTtTgvrrhdvrvu7
TwufNs/bmwrnxtiEwdf6PyWM5Dr9yRX3Se/I6NVFcgAAAAAAAAAAAAAAAAAAAAAAAAD/QHb7bO9z
Zpca4fFnXEe5SJAH2g1pXiKe+RxkunZfh4vHwftpP68a63n2l2RgY36NEo35AFBLAwQUAAIACADr
vjtEEXi4QCkBAADDKQAAHQAcAGpzL2xhcmdlLWV4cHJlc3Npb25zLWRpZmYudHh0VVQJAANqYudS
amLnUnV4CwABBPUBAAAEUAAAAO3az0vDMBQH8Hv/ikdPG12aeRDBUytOEAWHBXeO7dtWyZaRvLjt
v7fVqTehghf5fg5JyI/vyx/wlFKkn5yNGw762ojRs0WlF/x818ppuoqtbfQjWzaBtTVHF0UJB1Ge
Q7QS9Evotv2KFR923V5o3Tb0a66Fm1wOkmRZ9kdlTC3R2PciRUHqfHJBWT8URUIJzcuqIn41duR5
x6b7zuzr7Si1LMK+TCeUZt1wNp2Ox9QG+rxbiW+3q1FqTofD834O7BLV4MQ+Utae98SHmnfS3aOZ
985f0kMUckva8Mb5Y55kN+Xt/eDssHbRNn0Jtyez/a6S08IEMgAAAAAAAAAAAAAAAAAAAAAAAAD/
QP6LpsABPXwf4SHWdZe3jNYe58YHbvquQvGRE0reAFBLAwQUAAIACADrvjtEnjqTz+0AAAAmAgAA
IQAcAGpzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4dFVUCQADamLnUmpi51J1eAsAAQT1
AQAABFAAAACdkctqwzAQRff6ikErh4aQbrsLxbsGG+wfUOzrSFS2zGgc139fCdJCN4VkMxsdnXnc
1rpIgijUWXSfkS6w5uYC0+rEEr5mRowuTImyJlEMI6AemGk2HEHCQDwoVU0Ul65L9J62sKT/3lME
yKTKDpHCQLo+NY2mMVHmikQOwfuwoqfLRrotm5beq3P9UbalTk6VccLN+IIx5859+TtRoT1EwCe9
J/2SyuvxuNtR2ueHbYTddC20uT8+rPvf94wwG8Uy1nTaDrMkjkrmwG9ULZJPNGIMvB2eUD/ovqc1
LN5vdY6yz7sKL1DqTxJKfQNQSwMEFAACAAgA6747RE1T5ZdVCAAAJUQAACUAHABqcy9sYXJnZS1l
eHByZXNzaW9ucy1wcmV0dHktZGlmZi5odG1sVVQJAANqYudSamLnUnV4CwABBPUBAAAEUAAAAO1c
W3OjyBV+96+g7Mp6LwZJtuWxJI9TM75UUtnsTq23Mo+pBhrR44ZmuxtLniT/PadvCBBISnYmDymO
ywb6+p37aYryTSozent0k2IUwyXDEnlRirjA8u1pKRP/+hSahXyl+PZoTkn+fObNX4ggEsfeP448
IInX0o9xxDiShOVzL2c5XuiukPEYcz9kUrJs7k2KtRfDPY4XR/86MsvZRSJGGZ97J+OLme4LHgnF
9yRJbH+IouclZ2Ue+25ocq1+6huZHQSjJPZO4jg2fQnLpZ+gjNDXuZexnIkCRRZghviSAOQJzryx
aSoYMKf54JgCRy9YA0onLaQXFxcd6wuUC19gTpJapyCfsd6jvqlPcSLn3jiYuvaYiIIiWESikGI/
wpSajhWJZQoLjMd/sBhRHJN8Wc02+Kx61F1TQxYyyVMAJqvhKXvBvMXVdDpd9AkcYyOKQOnlR9hL
2MkJZQhY4WSZyqb21Kg7EAEiebUVA/ETCWyO97BtufT1ug1JrVLgztd6VOa24qjYIHvCkdJfr+Ho
yU2zaZuMtVsndzCqcbE2OzysC1AxrA+s4TMvUJc2h73wBIlx+Kr+ehrqe8qi5w+IywBYnSeEC+lH
KaFxr2DVdk8w/2zXYhxnoNqzPfvZPZz4SQ7mg/1QDWmY3dRZHViLJBGiPqJkCf4hWQdbHCtr/xPK
Y4qdOOw6SoTqOcVGoRt7jkoulGoU7LYXohC0UzqNwZ6V4RgH0vB2oWjY+bY5LDl+XbQMM5ju05cR
sRdItlfMQcJZ1hK2jZFqDyX1n8osxBysCdety7Q64Nuh1FrtbNYIgs5dukKh8+TLy8uW721rv4ox
aqGpcQHjBlXQt3ZgzbPLRAzchjld2IBVY1yz2BlwTKLoFcuOIFVw5Z0KphWgiybWahwjDV+FSb7x
Vt0F8tSPwAfH6NlXDQYQydASNzQz984rgYcUKSmqgRGEBsAAUOyd1+Z7o5Xry1lv7E1wsgkAyqxg
xSpF1ry5Y2qcxM2poGzRP3yGZ4tdeb1ayUaZOg7rFf0pO463FvBiTPtn4NleNKPvvaeyKBiXkG25
tWQQapbhXArv+xHsh0qZMiNvk5FVQQNWL8FOI6cpPUGP6akBqjEKDAKT0INdOLtyhq3CDaL0ziHo
HH1uclmG1n4rvWdQG9im83GVd9pbg9x37lN5duXSjW26cAaswCZt+iscPhPpS67czkjCAPeCc7Go
sXFpmT4REslSvC9DyOFVPgyU93TCUVMkYzREvNnvtk4o1h666cjY56q1Ck4Xxo9tLaVuXbWg7vvL
wr7IsbOc25hFQtbYrGPj8bjJUoB0DWLcbDuLrwjEAt4ytWrNzz7JY7yGILWDtU0irEHo4ssGo0Z6
u7ZRLFcwrcN2pibYL2TrvUCvNkAnxohdEjJPGqy9rzKYfawAV5VZY2uScJQZhC0/aZYRNR+564m0
27J5hVqTrWyuxxQKR6iZD0hMV7PHjXnZnNzTqQXR7KvKyHi7PG4Wx3YNI75tG+4tCWIXZ80271xQ
cMedcb33V5cjW+eSqzcuoG3D3OEktROPyJCp5esxN2ccmhc9Ucbyr0ow0bW54cP59bhrCEUhpnOU
gIedbU037XoRnZBzYPXY+6d3vDiqEnEtfbdnUwQVOkt8+VrgzqWOexHZga1jboqpDpBVMYpUMdqT
o04yLIQrPHrl3KWWmnc86UB9SCqEFAMF0QthpbirWqCY/Yzzu1qy7MrzruRop5h6clGxHKxWW4KL
7fbZWqINIhcuBx6ExpoG1DhYKp9opAtb9vUUffU8G5bgVXk97rj8HpOXecIiK0NWShUv6u4X0lJn
EtsF9pIAFshgE8dIPVnqVaCG+TXFZqeRzbRLwK94kMyT0Bea0dbUhPdCkIrJ8q/WJgBsyNkKFA6V
QIpgri2KiAxUEVTxcTm1VXxVithnFx1UIat+x80k6l7rtGv8jMRwyjKMKQUJd/juyChQhzGBXkD2
IAHcyiv1k95WqvMnwYUpmTYvP1z279DByf39fc2lT64f7x+nj53xCYrLbit+eHjoQj3HWQERqqF8
W6a1RgZwC0gbnv8wux5f27gVUYz433V54I4CqkUfm1I15GZk37zdiIiTAnTKo7fHqZSFmI9G6BNa
B0vGljCpIEKZrm4bURKK0affSsxfR5PgMji3DwGUlsEncXwL6+r1br3myhGLsa90iFcw7o+gaaXM
t5fXtSkAyr4sDFn8ChfwB8CNhHh76k4C6p1hOrkd/Q30CTFrdI8kGj18fBp9xOFfiLSX9yWh8egX
yLtI4BFYCojTlxgiLBzfSyqBBwHNfIl9OABCmwIjfKhZSkQDuZaAZNIEUHv/c7rdo8/lfe3qvO6J
FArouDVEHVa8xnse/U4UcqcboU/4m7Lh9HYK4oL+28YocOT9YyAZn97aHhA1wPjdYK4OAHPVD+bD
u6cnD78g+i3HBQazjh8qbXz7zW8lkwuKJaTCd+bhzDPXH9wjFGjffecR4bn5T5KDW9i5qD7syzL+
5gDG33xdxg/lfJt1fakLoBYtlIXo7m0xHWbn5ui9185r43YK+voAQX+Th6JYfGVpK3HLlOOVh9cR
LvR74AfOVeT9uZQeS7wMOIJIuFfaTXlBytkvLDtop6R2SIEdIFItqcd3f/7xi0hKpKyksRIYW3mw
SyWzwPuIhIcGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGuj/
gIL/6SeaX+pT5NkBHxvOvvZnmf/1d5m/j/fJ+ADmewZtuBdlFAHDSUnp6wf1rzFi9Umv5CX+wmgn
h6CdHP7Z+H9in62L/rb/ZmT+O8i/AVBLAwQKAAAAAAC8vjtEAAAAAAAAAAAAAAAABgAcAG1lZGlh
L1VUCQADE2LnUjhj51J1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAvL47RJoLat+5AAAABwEAACoA
HABtZWRpYS9jb250cm9scy1sYXlvdXQtZGlyZWN0aW9uLXN0ZGVyci50eHRVVAkAAxNi51ITYudS
dXgLAAEE9QEAAARQAAAAVY7NSgMxGEX3PsV9gRkyfw7WVcGNu9KqG3Hxkdy2od8kQxLRvr1jlaJw
l5dzTmuavjJN1Y5ou9WwbKiHtsHD+zRvGRzTUyJf+1vTdavRjG9Yv2xUzkyPhRPM57h39q6zpjfO
wFFUo5VCh4+jV0IwLxQfDsjkCT4jF68KHzCneEjM+R5KOX1fbJxmZfEx4CjBKVON50xUVoKlbn5I
uwWUUeIfGyT878qyp56vDRd3nJnkAr9W/LbVN19QSwMEFAACAAgACL87RPwHu9wmAgAA0wkAACsA
HABweXdlYnNvY2tldC53cy5sb2ctMjdKYW4yMDE0LTIzNTAzMy1lcnIudHh0VVQJAAOgYudSSWHn
UnV4CwABBPUBAAAEUAAAAO3UXW+bMBQG4Pv8iqPeNNEo5iMhLXf7SLdpUzclVXsRRZaBQ2PFYHbs
NGO/fk6arlTKdrOtVxFICGzwY/vwzqMgHJ4F4Vk0hihOR0kaRN7o4nwB89vX06uPV+8XwHklZM25
f4vZTOcrtFP8tkZjP4i6UEgphH7wV4dsEl9QI+AMcl0gDIPYgwqNEXcIl5oyWRRY9+aHsEkwctjJ
dPpleog6Q7rfEiffc2ys1DXIGhrSufu6rO+AHqYCJekqhf5pmoanHozi83HoQeDOQe+aRI6ZyFfQ
r7TrSphjbSEXSoESxg7SHsClVAgnbNYaixX7LDMS1LJLEhVuNK0M+9rapa798vEJu0EyzmNY5I+Z
khlrdj22d12637QnHihZI4zOI6/D53s7t0tCUTgEgEFV+qWspVk+Nvf3Vw9yJR2ci6Ig9/rghdRx
FO/Uz1VP2ufF9NatqPkd2du90YHfaLV2dcLeCSvY5HbG3L5/kpZda60Mm+UkG2vYBrOVtE3L7FJS
0QiyLat0wZvWtZidmhnrxhdK19ihJ8nDgnPu7JbzX2gP/iDczv+lFjcZhoeF+yLovxjkYtjZ5SfG
pnSD+6Va/w/Lw951ay3Y19p2vCcE33b0DW53WPXvJW7mG5IWuS5Lgzbt3rzK1mWJxI38gYtBD4m0
i4/5hKjWrpYX8Ib0Ct1PKBvsHYikMPDiZPwvIymMxruU3AXTMBjFx0g6RtIxko6RdDiSfgJQSwME
FAACAAgACL87RBdG8v8IAQAAjwIAACsAHABweXdlYnNvY2tldC53cy5sb2ctMjdKYW4yMDE0LTIz
NTAzMy1vdXQudHh0VVQJAAOgYudSSWHnUnV4CwABBPUBAAAEUAAAALWQzU6DQBSF95PwDuxJdaAt
oSQsKoUgoGABKexgGGGgYRBGQN/H9/R3qUlN49nd3HPznXusMPQvxQuRF6HIBxNhqCJtyfs9ZRTR
48CBqCv7rMAqP+F8oKjBjAM6bVuMGKGtyn/vORBgtIhxHnx6FluEcMdU3oO9aCU9ouOQIaTfptNG
1jfHGwc1GgdeVQ5wAFj/neIqc7EHyzDfm9LKVtzlbO6Ykezq1aD9dnN4F6vIQIapp235MZ4R9mfG
2FFLGB8cneDIUJZ0GhMF6v78vFe0k2DnFiMF8DrW6da+E2anKO8nt4rTde2ma6id+O0faIZUiLEX
k5cgsttaeJINJrvmI1QOzRftDVBLAwQUAAIACABYvztEZ88I0X4mAAAjpAAADAAcAHJlc3VsdHMu
aHRtbFVUCQADN2PnUjdj51J1eAsAAQT1AQAABFAAAADNfWt3G8mN6Hf9ijadpMmID8kzk52IEn0c
jR1r169jyZvkarQ6TbIo9qjJ5nY39chE/30B1PvRTdLjnHNns7ZZXYVCoVAACoVCHT/76ePpxT8+
vY7m1SIb7R2X1WPGRnvjfPoY/boXwX+LpLhJl0fRwZB+zvJl1ZslizR7PIresuyOVekk6UZlsix7
JSvSmVGvTP/JjqLDw1U13Hva41BH0R8tyL2Mzaqj6PvVw9AsrfKVKISG80PRxIT6PUJ1Wxz2f2AL
arOyexnnVZUvYBj970SFqjha5lW7X7BynVVlr8jvO1E1Fc3u52nFeuUqmUBfy/y+SFZNrY5maVFW
vXzWqx5XLAyjWCQZhzElGHabjmhUsYeqVxVAzhm0OIqy/J4Vk6Rkoqmotkqm03R5AyNePSg6VfMj
tlhVj13EiP7l1j4Q9UR5756Nb9Oqt4aZg9nL2KRCTJeMU7a3yP8Z+gYg+hOYCgazgX8n6ZIVkt5A
7DlLb+aV7K0Pg5UkmeRZXhxFN0Xy6PFJCfTJWMHbGPQVTcfJ5PamyNfLaU9AIfr61dNZkSxYN7IL
FzdyVtIp0Cn68eBAspxE90+8yIF3OU2qpMceVslyyqYnrVmSlax1JaBN03KVJY8GZZ5XeZ6NE0mP
VV6mVZrDCpqlD2zKeyRefSH7L3j36jexQJKlN9CIvnGcZlmeVDCLPcCEZe7MqgXk06m4GSftFz/8
0I30Hwf9P3dE/byYsoIzUpln6TQqU1jWhfm1VyTTdF3qFdnn9OiN17CslptmyCA7CAOH6odq3D4m
mk8UndNlBtzWG2f55HZoS6joO2h4ICWVJnzBMiDcnUBksi5KxG3KZgnMseDmdVEAN9tcWuB0mV/D
o+YUcttYVXs4pR5DJGMY5VoSiHiiJ+QTFnDBeCjXNklPYILkppb1qA5VuWHTcF1OPo5iCV2u2LRX
rJdL5CuWFNljb8HKMrlh1uiOiLR8Tp5PD0xdcC+mcZxn041Tpbj1O3uheVKkAUYTl0hW+L4WvCMc
zC9KQsgexDBhLaCOy+SSBKrxhZ6vcB7LLeSTrArEXa6dXtQ4AtpMrgxFtxdS2nMID71ynkzze/5B
/v/zH3/8cWjJd9Inguty0EcpaIb+i9IXN8hzw0Y2FcKqQdzUDTtLxkpsqfkVE4tzNU+nU7Y0SbTK
U1AyRY/dweorTc0kBqFUjAlbEEsYFt9JRGu41VVAdaOSQhF7W4Ekz3r/zPOFx7j14v7AXNUHllD8
859+b/Pv4YE387pI0U7OLvCB+wUVtyquJ2P9MAOy/8XBNoLaZEqQxdEPUIcU0AEoHf6//n/80Gkg
pLYQjQH2Zhl7gB4Nw8Qr9dEaZ4mrJRTj5jBOUKmAJme8zewcRrdfgmwAKZouQGo28IOthcK9SyV5
cPB7W0l+r02Tmu5GhgBrVDEhPuTAQMcB/YjbJOVxAS9gcVBHRVJydflcqBhQa2W13RKQ9vf3jtGj
fouh/yBHjnakKPtem2rbGjeSw+owHUXzF+4GB/7vezQg/IalZ0YjWw9D+yM5Yf8htbic6B4sy3JS
5BntAY4HYqfFd1xRCoblegk2A1jZ0CkVtkaqFlSbFOmqGu2ls6h9ny5hefURs8+gulnREXJc/u5P
14vVq/ICBHsb6LB3B9bozXVZJcgIs/VygtMT3WT5OMnOsbTd2eMjRPDPRFW5I8H/RFF0YpSRpQQ8
Mb9AEh1Fl1dd6xtQ8PbxU1KWNd/nSfm2qlbiK5nVXoUzZMw3SZqtQV/XVcJxNtZZpGUJ8/aZG/U+
JoX88OuT/aGc5+tsepHf3GSMUIE6VbF2wM+gbwBfM0xioL+l1fy8gtVVBCqkC5avq5rmmissUqo6
T3v6z4JV62Kppxr4WM32q59+uv78+vzLu4vzdrpcrSs55RYbyI0PTDRVErwqmE+yYVQWE9gIrbPs
WtTv/1LmS2JYp+pIYwC6Ka1eP8CusYSfbaSLxAEZFJiaPUC/WA76vKzOsODjrB33Y7FVEeO7pCrl
elxWKK1Qs1DjTjdyvnCY+9Fh58qmBn5fhXERnYSwvTxwwCySajJn5TntjvOivcynYFuW4qe5qPBL
nwvV93ajzp5mQ+q5vmpbQYZFbUEGfbgVWL+eCdMc2irBLc/H2cXjitWMCzQjiC76CPNG8HmrD/BP
U3ogmhtI1XEWpEJ56PP3cs2FqEa2YAuQswRTIueg0+dVTgHlKa9nQ5jlxetkMqdP79Ky6oJgWU4z
pgb7qgATp78q8ipHd01fNOiDNs4CrVz8cJWc0d6jDYtHAh0Mojdnf3//+ihalyxK1tM0j6rkpkR0
oldffjr7yMXHS7VKwLyTsuJMLBiA10/lWnmnv8tVg82W0PFQsYwH5NlJ1Ds0ZwzboGQtkonbA5gB
E8Ge/by4iTu89dBquyoYKH9oKoG8jNyGg36/P4ijoyiOdVvEE1qJ5vvUs17OHt77kTngQdzP2PKm
mouBP0UMVIEzKpQsP4HSMqlnSZsedF5Vj5J6mmZWOyKYxbObAZsgxUDd8ZkgUGxJ7lcTCdzxgTdt
ex30V0ucDo4bUpxvdonGYBzGhtCQYGDq6JMeCkCN9qH0Jbofk+qkeqhiS/rGx9P0LppAz+WJu4ke
Gd9oSzaKYRg0Vpiq4wF8HR1jkewfSrkyiflkYwGqEafOiDeN7VVVoV4GupFmbnOecaT4tsi2+AaS
7GA0J1qix2M0qnmVZAlfQQ1TbxE5BXmXhLyin2JdGgc0b8CdvSbVntAmuQ2iEPa+lk7kTqR36fIW
Jlx818tYf+0TimpGfd+TMcE2TA3if9eseFTiOe6HgBgcZLTEb6fcHYzMF+97vdnjVC0Fe+MqVQ3A
rM+SVcnqm5hk3FRb0LIOWcR1aFAbRLi2Ez/n9yiKTD2o4XRBnqG3Le54hDN8x3LFc4K50DWV1ivg
JxwE+Zi5LebX73Lb1iFBqG2BldNSFqpFAbuGklWvKhA3MK+sHVu+7dhqwzHn0InnL8RyuwB7tWg7
WCSrFewe3168fyc0Ox4oeQZQuixZUb2a/pJMgKhYW9OgpkI7HjMQRez1EvEjqAGuEY1hVWMbFGBY
00axmRWNVVdsmvjCVK283gW5Z0+IxNrq2Iq3qOk2XKSBLVFLIPv+vH5xcPid4OFaLuf1G1nR0JLb
MiNuhAyNxiWuaa5p64Pd8wFP88kaZVh/UjDsg0u0tkFRXtWQZzBIkxRDE+gpy7ImqFMDKtbtg7g4
h2GJebJI/grMOGohbIih1rm8f6RrWdtS+pNhgdya3IH2j6mmEAKtYul9LKI27X6g/GAIfx2b3Ulc
onR/3zXPMi7BjdqX6ZVthfFvjh0Tktik98BgdHb3IeRx1oeB3TN+svQxdXTjSxuuIOOOwTpP9mK2
gFqmM8GcAwCpifA/U/Twee6KVp2hYkNhQgn24k3EZoC36Uh/q16STi1cJqLb0BLhNdSy2El61tcz
xBLMxn+nZTrO2CvLFDEWQIMQcY8xEc3WVdS3zBpTXz2r6c9kkknGkuIMnct3Sda2PQkWN8g6xqRv
URt3lWvpkvdljOGx2qJnA+3KcOi0d0YJNKgasgmpG704ODhQJrulHcvH5aSNP7tRUtyUcloB1AX3
/rRl3TYgGuEPZL/ssY0EEI2G0VMXfcMO89zxSaItUDtfVdfKwjW5R/s+TyKrUvSvfykG0rOfL7PH
83l+/0W5n6SHrd3xXAsKVkik4lLiMRMSUicOqfBtYcXh4b9Wyq+0vJk7DSS8kGrHEdUYyXVjawBf
A8m3X6C2ZcKEtwsoqUOECWmdbgRaxtoLGHoH9BH8mysgLXGJnX17qhtdGkBAHV3VmOv//wwitIHY
OAzuFv5SMnRt2CwnZvpZ0Kva5w6Ma/LpXE9TWnvPsnxC/YLAOed+gI72tszSjB0NBnxbf2CjYbhD
/pKU7FNSzS1KjkWhXtUhxF27omBI8xyJGR6ErKDlpuwIjbV5Va0AYddLFKi8f6L7ehm14wEQPS8q
2vvLDx30XQzGoL9gX1ADJIbO1svbgeUJMj1AITy3nB/Yxg9s94cmqrWdhxZIz5AnOT5OhAuBDqHI
bkMbhjs9gpOI3g8o4V6E2Ph1PEhGxyWasBwihXjky0mWTm7xBAl/t6t5WnZaowg2B3/68+HxAOu7
/gdRFf8wWYYzyBuEatmpiN+H5C69SUBgUWAJlrStPRKW6m1x14DVCRMLD0X4wv4LSb0w8YzR2uE3
atgBX4ogQW1jErCjfUEbSSJBaD2RIS+u+vqJDFkY53pGf4uIuLJ2+o0tgsEAGhS6wAgWzbvnYrJr
CsaQnUrmiJx5Tkuh7l4LpdWW2guMikm1TjLrDKaU1SxLH0UHr0zupfP/OvsUu2JDgiU/ORfE9LtP
ByntODK9n9iAA5TV+a9g5dAeyWhct0ey+/nvJFsz1Q81tLZLhltLD0OJYQOG8K9Gf/iD1Rb/q2kc
v3l19k76ZUHie+0iEz5R+OL13y9i6CJyP5y9f/XX1/u1n+nIALZWHa8Pa2aNhV1zhKirO6dCRT5h
ZflXLT3fwEYDGfPj+BeobzITySx+nsc/9u1TCOMDbDWuSzoe7dQZ4/Ypan+1Ludmv2LDZTcyT5g9
mW99BD1MR4dqzlCNaa27ZzOTPSpeNrQ9NMYy0jVVKXQXf3p1fh5raoQV0rpk5TUzJNs1GgSaSAZw
a4a3WPaGL1eOCjjo/dn5+dmHv1rLW59SLZJbBjKqYFE1TyrcTWPwoIoyI1KWqxT+BJ0WgejtiXVd
PVQRYo6L2YTLm9zDvEaiZ3kY369hBPssP8AHDXtFPYMX+S1blvVyhzv2ypJNkedof/cRNhKCqGfL
z6wqtNji0C4ProiEzuoUHw/5R1rAsStWdR3VTLMiMYo4ZUPOadcYlxSdJGwXtkzAap4iuI3DsCxA
G7QdwrEbsR3GolEgPmoRPJOl7lGxVYMTjMa9/bDFchYrA1Qm/rqmMHtXRdhAA9EWDaN+2mH8p59f
nb+N60mtI2l+E5kvzt6//vjloqEjM9xk666UcHP4w4h8CcDyD7ykz8W0OaRnsWl3HPRSqdZ4YrcJ
gqoYN+4fOTbhraNj8aTC+8abeM5XCvk+MRC0anAF+FB5rlglxMVQHXb124DW59PPGzgmDZb18WBV
YNLkkUUbUgpsPEp2HbRboOJg/1uRUUakg07AxYaIfNa+cOc4mPyn1SKzHOaiTtfsCI+7u3SCSr8R
jz3bJ+201AoO2/Ffm1tN09lMtsF/W0erYTmHNhIPTbheYSyNNgJoYPs1I+NNeIdYEXvkZdEOHd9j
3S17vLf6urd6EealfzhH/CCUOrrjDUHSjczdlrBeIve4Lo49g0arUK5EOuE4F4SuAr3Qv+tHfhn2
awe0dJ3H2A1YVJsoZ9kHNRPqxppPeiDPTkKjEGe7zow0eRY+eZzfA8OKYrT6cqupSNDFI7hZJCuY
e7Nwz3YPhkQxVsgG4fJbCXVSS6hvQaw6GrGCLSfMJdCTNzKbbfwo0+1wtnHDdVaqZSdP9BxMQqTe
BrgliC35ONwZ1iZ+MIwbc5ni+OztFI3xGsuvV6yYqPOLXSgm0SDobZxW+hcon9934o6vcmpFjN44
PRP+AXtzdi02LteEtXHysBO14C9R1RWpAMeJaATbPV3CZh3P/sd5Uky/fH4Hu3V+TqRxK909OwYy
AqFbrfojaqO1MpX291PrjE1C2jfnDI0g4QawZGKKVPOhRr3IibIzwba6LcsUlg434YI2dqU9qcuS
1apc5VV/ki8GU0mXcqBoda0KaSU9h6V5D/bj5/WyPEFR/gfaZ5wgn8BKz6fsy+ez03yxypcYcSCR
c01f3JR8zu9tP4nlLxA67Jg7T3+jU0CwVCxj2xDbdthT8NJYyhSKSXZXKw56aX6LtvKRk+pENCXy
Sle7qDM6roqR1Ouy8LiaWp7aoBfZVNjcNYqtDEeO4Us9CUWDmwCGfv9OQE6DW6hWYJCbIKCjPJPC
vN7gBWAIrFzrVw+v423hQsgIx6GPzdaK4T65MxUDD2Y2JeiWgk7AERS1oGwvfV2PQlgSE/DO19gy
EkkK2NbyeHOXOE9f1aPYK9h9benWGvxc7g+MPfOEh03taHIrJ5cZI0KgHFeXlN0jU3Zv0yeMDhYi
KwexY3g5TrKOKxFwcUuxQB25K35XWYoOJJfFonpZJvsWTPtbe6/voIHv+enCy6C7WQl2Cy0T+HFi
nEg1Ww6Xuocrri1Gc9B5efFIh5PBHgYgx+EPVG4j+zjVN1v4vQo6XhSXKboUsFIVjPF/+Vt7/Cbi
WuifMH1hgpP6Nly8UgNosOSblwNQts8te4zSJfXjbh+X7F4pEgHiZdTWYeDEzdAej7LhL1tKSPNX
Ar+EGlehUyxNdFIBoubQs40MvYXRUxK3oRPXR3StcWr6wXjBOVFIdHU3weAnUGE6+Ib6dI9Iqaxf
5gumwqC4AMVYKBlRwc9n9LlU9BQMokMkM+DH03y9rLSnUd7vaXIRiuN5uigKjfEMW0VlUYk79WZM
lXUUTrVpV3HnHntiJ6eyXWlzw3axSnKqNRTo/mtDsLxQpa+DHpsBmTR6xzNog1QxtsQtHXffcoOA
5yyZssKNza7EWZ4V9GbRXreTE6AdvsQCBMKYWs6RztRagRC2yVUTCyHAWlEPgeHJPcJbQvMtbDIE
xl7YwPyQZD7/Sjdl2mY8g8OtMoihcxQpYf68ZYSJ9BJQjCpmQlJZBEpQHAlU4CIcex4GsZaj5Eh1
+dbmTF0wkAu54PeOHc8rXcYhNUbBpZ5QoD0FB0hHP/xEuEdFMV1o0qEc7pYFb1DzS0O8PV4aMq/l
1JOd9CI1U3pLH3gm02lUzZk+tJrxBYmRbOsFaSskG9Wh826ckBIX8y4K37iWxbHHgwA6tyvl6D3X
K+CMAwC7Zz7CnkG9zumHiyr/MOC1PcXmbOobI85tHYS1A4ce9Wf+DvYkNmz593VGkgXX2vPWbHo3
slnDltjqjPanxn7Q/Ngwl8JK02FG0E1zTFSIgMrodd3LRr/20IIUMzYeoUvRuAXhUOQWhP9y9ce2
7Gt2HTBVNwClQ1IeZ6CI+evXDosDy/IbOTIqiKDA9UbuQqtkscqYohX9Cji73YGJQ9nGoWmphHYC
WIyTbD1lMn2A2HwMyH0pb/HPWUF93TPxGdphfAaFZ8hKKAskEC4DambLdjGEKGA5TBt49t+z3XD7
8vYc3AliViGxry5oNp5QVTmFdam73o6+du+Hl6BnmX073HULFumizW/+urkHqBAE4CpLJqw9+J/L
n8ufH5KDq/1/qX/9boDBliJGHFjjP9cgeRO6a0sZB2la0UMZLZIlbLrJ6KVMIBc46HPQ0WS3/voE
1DOK+tfQ8B4mAQYknJLl3U1EiUhOWjwjC+UiEplO8N+t0fEqzx5vMEAMcw2B/D3oHkSH+McP3cOD
lmwOgjs7ej6ZTChVxN0NTZ3VOSZ4+Ra9H1L3h9j/Lt2j6cKmpzKo8kRbidLiSRAxZ76ojKwQMkFw
Xnl10wjuqApUnebN6pvvX7iBcirvv1k4wD7rrWUrkqUKzXlp000gXcu846NLXY+ZCZX2kX41HTT6
Kivg6+Nndge2PcWf6eb8Kh+yf1/sIsp2XIiarqClowAXnB/MGIQuckDUwvZ2ObWQwOgLgwkenxkg
7C1P+MNwb+uR+HP21QR4ci7Bhcdsd+jypz06vX1CCUs337hN7O7txeea25aXvNGVTaKnwLIEGOHF
gLf9JKc4G0UCYi6LG1aJ66F/eTyjWeYX5ITGNe5tEmjytwu5rwGGhjJX20y5Jk/5DuFEglJOO72Y
zDumfHTbdcZ33IYbVOy5FG2SbjR2Ijgx7g9mHlZnlUfleoVXLaKMPaST/KZIVvN0QliT2ljCdNmx
2hc8mKmOH7BDPWbH4zHe1Hhc09gKQOVKiePI/hfdrHcY9lxG40e+60DN1/dkmJgFdFFzNE44PsFI
cb6zJ89Z00gPnNUoBrm57dhvS4cZuu2JBuSLPbGiDoahXDkayLGBzEt0CqsEeY5dhn0XQSGrYQLJ
jsUMvowQlJnpJXBrN9jOxOGp07AFJVY2d6DW/l0sCPNaLjaATagvrawVaHjxsOTDejG2dahakjvI
ihopcGn2IXbHniyzZICDOXewnqKbxkSd1eELm42kAFy1VtfyHa+WZSotCKIXjO/cCT+q0GiVbGHV
WB3YJ+HaiAjpqXobQspdaTkqQC+jBgvzKKq1fYeOstTpJU6iBqPRVEwKH3OUQc0WVGdEexzXJ4xx
/n95vtAmu1GEAUT3H5c/sYyu0nBvpfn9GlNWvkmQT+H7n0RGwFu+m/sbGtVQ/COm9TXK35KFjfXx
A/9C8KZ2OwvMH6Oafoc+ANWB3WEDCH9QFC51arjhFVeui6zu+nNdvgjDW68d3lYmCkr96WTetKIK
0orsDei8T8EN7cHPvfbl//zcu/pj52cM4hno+EEjpxfmHtoKL6pq40RFsfnZFJAOTBTImJikTZh2
vNGaTQmYuzxTl+BbIG23sbEPZzONQ71yicAji9smaBFSDES3CnHP17+XXOqzLmzHVg+x32Su+DLA
rXWNeO5ZHJGTfTYO0sCkMw8Ia5oJu7E5Je6leZIY1irh0xJcIpZKqUQCGzvtjdAt+lrn0AlZqkLJ
a+wEOYT9T+ls1pxBJblEl9DvTlq4TFpXXtKbb7OCQyl8XW6TxxVuuZUQQiTQ8sZiDMQIydTjIc+f
C8j1tKtzaa9mU8j80DiBC7HRBulpnFnb8Z6dbwnZiGfs+LFJIaPQ5p+wefh1aNmQMTSRcstIC1Vx
mZcNZuKsRaujaZFgzKDI8eJ9Mlegs7DdWzEyYOY0fPza5qn7hv4S+QtmSC795sA89Ak4CgxMGNpn
AOTIUhJnmB0acww6EIU4HUQvop49aBGA+3dQ376o7dSKzSpfhboRIri+n3+4/XDxrDsKUf4VhSDp
RCs7hAbskvkb4wa8vn1m4Hb++3xdso/rKiiX6TJcnxKHs+kFSWK6QWcX9c1kjmdvPr96/zpg58uD
zbOZ2z5Ky4hnmbln8R2LFojSlI4I8hmdbCrKNAtj1+cYlLWGGDTy1GhsyYdlrq96sr2HqjbdIk03
awYWsrrIttOxMxjJHDzNbYxorjolWTPkmtn4JoR0spSZil5hZqpAlU/NBBW91Ht60QZ2RrWj9AEY
IYEuHpjixCkLijHXAx3gjhoO2XDjl+P9TmRZMXbMzeIwLN6IqhOq/HeQTTZsEpsdEFtOMUnNeqj/
MKH+w4cKQjIAlMtIgymfaZo4pKzZK7o+sEb254mvQtmqPD9Vk/3ZZu5Njy7m9++EfFpBp9XWwGsu
sDaoarX+kun0Nb6VgR4HhnBjogYyXmzLdkca6Qydm2ABEetBgT7QkPiZnRlzpE7trEAkWGPMUiNy
auxq4i0jLJSZiqVLzw9sugEdIQKusMcnt0+O83+xRxqiJYvvjFS2pMewoL9gVQLVUSjwgnKeziqr
ZFIVGRTUyMzyPoVtddTmmZL6syJfnM6T4hT3tKK9+GkJFHxALYrT+MhiM3sw1/x5hov8Db7LRjFd
DluOgd1uhw7QX7YD+gF23lvDvN0O5idMkwQMszXcbDu475Idxs+aYfK0O6ea67YCOmkGKrN27Qq2
agbL76jvCnS2I9A3fGE1wH7yV5rPnCFTFhea245V5oAODGOkpgdn/PWoSDYJYSIzlHqxmoap0Ixp
Zuz26B7Yt0NcrsXtSOhLTPsWwLZSRAX+NI97Q+f735QSpgT5t1LDFSnfhhjfhi0MsMKrszM7Cz8c
VblsRvpqAwqvzfzsHiKio+YRtDtbZnP3EfHEdQiJQCbtbcbT7oTJ7wvzUKfBVO+/oVtPLoc6DaSW
+5ZdClVQx3GV5shNE96Ypk/C6fJbFPrFAOdITZh8cUdFlYmAwwt+wC7tTx7jvoyr6HaZ30fJ8rGa
gzUWJWPcKBAUNM6is0pUxbxh42ScPUYTikLHSMM80hQoIoQKZjDB6e+Fx2FFncBvytJsRdw7tBNO
X1XXWxUqIWPc4cd7eD4ytK9KGuCd680cphNDo2jYdGFA2tWXEssrQPOw5tWSUFcy1ifQ2xSGV7Gt
OrW2ynYDfmz7xmgWlJ1+tTpeNjBAIo/zh6azduv1Ncu94MNxnedGjR0PqsSrZV7rfopLNA6/JRdv
aGsdP9hv+G5qap44x8fzFyMpL4jSxwMoOV4V/PU4i2ItmRfy9TSVMa5Q0YxTr3duh1Axr/d8g5k0
vDPONlPEg9+yR57E0+JceZHHKFKXTVQIAFslhdgl1yIFe+zekt3j07KAE2wZ2eSW34b/eUlB/1Hs
dSXGak2Khckvebpsq+4FSlvRxfSkCce4eMrT7UOYw4AooYkvecZB+84yo1zBSXbILpa6ahQdRwcy
uxovGJ1EpqXupdQWuSa1w9NCa0uDSfkE9SfDhasLAxJSfFUX1DZ6Q9TQRIOvRjiMFykJFykZK0mR
G/XW+gZjxXB27mI0kFjV7Rqc1UV+/1nc/lHVm52oYELIRmmJl1y5kxPEU15My6id9llfvYyKNsFd
yu4xNBHzB+d4b+EXjGu/T5ZkMeB1LMwuicdG8BPPJuTb3JxG6vHRfuAET5JxRXc5OFp9+ZqzTav6
m5in82TZYLLZ3FLr0TcYQLtvQ8wdOL7J13Y3YzZB7cLfkaWnL1hlkkbxZX+rpPh4whRmXW0o6vQ/
X7kNtkJTYR7yxWrtGS0u/t7zJ3Uia6t1zqWWDMo1iW84YRrcuKCiQKWWZdyNmpyihiNXX/1oor+9
0atXYfq1WBGYqBXZ0Ll/jfjormT6BWJk1d9Heqr7b0VK0ZPJnQqxUW+dOHjWvEIVHs02wyDFF3ec
KPpGVtXHVrHOdvCrfgebXrqOnuQrg8Z43Gviof3TRiHQ1hF6Jvmkf94i6TWmEMDDNydfbk+8kR67
DXAO6qSMfHm+MeWleNIOn3E1gwQwZERgWJ8GU3SwVR5MXlc3si6FYm+X/ANY0VeqlmZVfT5D0arn
gD7FB7DqrGKLtkfEbvSf5x8/9PkdqXT22MYuxI7Vqkzvp9RREN+rRSFgdnlT16UppbGh/1oWEJy3
smRQzYGkmAEaBliLJWsTUHc+pqgvaXBu4lGc0gbzNp06uWjEe79W3DkWKcP3hM8TTJA5H6Gh+Wve
/L59RMVzwSw9+L6WTGpcyucow1rmiObLiRBXft4HLt94+rwvJfsg7PrNkm3LHW+wI56nbzcZar+l
FaamW8d7m4F337S54V6mnswAaK+0TZkH8ZjXKAz6Qvgnkyu3mHDahlISiuciGRIPpO9EOj3FpZMT
7KoTeVGB9M7CHSuqi1zS6q1IZ6KYRySIcTNkiowzdflYm5InPnXsBwn+TaNNFzeXZTHZbrhWbGCn
7s3bLZCtC1g0+v6QL93uNR13pI2bzLm5G50QJhmXeQZWov3uRuMsi2fj7JbqmY3Q/D7t9nAbrL3P
dmyL9Qi1QIY/fqme7qWs5n+lPACBV7ZD4TXRkXgL235MaRvGeCOqOyjp2xvOW90oadYFBsrVY00f
MOiao0VRk7bG0QHwdizp7+JOMJynjo6hLAMmbB1N+ru4E7rTJR+UDtC57v1W0ylce3GzDuF+Dnwm
3UPBiXAvzlOKwU5zcuvN6/BrpllFGdMkbhVYvNWwbYxCWba9LLL05FNNq6Z8sU+BHPPCGnkPhoWl
P8nSaNCbpkUi4eO/LQ9u2y3BJ69o5y3aKd+cWRqyIyjS56f83on3fFYXdffcxo8HgopAtpRnMpE1
OPP6rt7mEdueag/9TRFNUxgKvtBrD87Y/uoMT8arAXQZSmYVokspXbB8LYKYeWk892JsXr9Z0qW7
fOZv2Cia3HCS8YSsb+1A/+2S4hgHMyYYzJBh5nkV1xJNofhMlhvJaGxpWD+A/X1vGzGXNwB5XiX7
5U4vuZKRQUgklDrx8ykJWho1jFSrVvIkfn/ISLAkcijRWQS2SafiDXSZpqiw8jHFVt4i9wtBQdkr
fRs9jlJrJH7Xt+LB2G4zHk5vNf7NyRkNKuFgRPJHK+tSXTqmAKGx7g5pUUTGrEA+FHtoKc8vQw+5
2Nll6sYh8CxrERWJVax8UjJrisxVZi+NQKqVpz3LigIxAsT/lBibKTPpYPDZqUCGMcxZvWFWU3y6
tVivrLUnU8K0jldiScRA0tUKnWvr5RLNd5YU2SOIw7JEo3WEaOGRN3tIcXLpa/94sBq16hAwHnhx
ZZmZEImyrNW1BDXAD8ro+SUqp2fbQ4mR5MwJ2L7QrX/KpauXldEd1sD0AbAsBxSRPuD5b+mBh27k
51LYqX/7XacwBvNkCraKTsYmMxi1VXjBkt13EBdr09XwxoX1GM6O02K2tScGv9AFCkQlmNqpHiHn
nbNdcbKbdz3y8exdiNtqbaTz+lqmsd6HMibtDX4QyRrbknHmLJrhaUAEayoCM0E8TRXR04r4EBXi
E5BUX5vEFyykza877UjgAAhFZMWXVU6Ui8CUFmOk3P1WRrTaQZnv0pkWu05btRphhvtplExQKGLC
MiPnIy+8FmnNWiP7N9cRK0t1cvUpgQIzgBlkw6QyDdL6qSBa9kmtybmATUNPBCfIoBuxbZgrXSF0
hCLQtikZTHJtncbBN2cpRSYe64SzMmiTVp01BRNPtA9c++/r8xtam4KdzoS68oa4H1kgwwcacHTS
z9tI1XsgfcvNO9eJN3ZsPaXj7u1r+w7Zf42db09ex7G6A2WffN+SfwAV8EnTWa50IvuHG9wbdTwo
J0W6qkZ7x3SHO19meQKWsG1VtUbalYv7BZkoU6xF7W0SFVU9MsXzPBsnhUwn27LDmNwWotIyr1hr
9KVkJPnTbvRLN7oluZ9hImw8xZcxhbDpg/9NsITHllI1GfHZpV8zEqtZcsPlg+5SSqlfkruEU+Lo
Lk+nMGSd7rbm7fTWSHbHU9/uBrT2NfPWSH7aCTBQ2tzBuw8cW36N1khUtaHLCTN39mrWjC29MWXU
jhh5dMxPlhCAL0paEeY1hFHjccI4fwCw4vRIHs5AD81Hza0RZaHSsPWOjCOwASlrAW6PT+jEpjUS
BykcWAMC3Ctx0kJGljFjUboEZQHmVD6LKNsiMbOI/WIyZIvbPy2LrEbg2a4DsM62+MIy8FGdolA5
HlCXBmPoNSP+uad4xVTJrZH6PKDMmXv/B1BLAwQKAAAAAABXvztEAAAAAAAAAAAAAAAACAAcAHJl
dHJpZXMvVVQJAAM2Y+dSOGPnUnV4CwABBPUBAAAEUAAAAFBLAwQKAAAAAABXvztEAAAAAAAAAAAA
AAAACwAcAHJldHJpZXMvanMvVVQJAAM2Y+dSOGPnUnV4CwABBPUBAAAEUAAAAFBLAwQUAAIACABX
vztESOfm3i4BAAAxKQAAJwAcAHJldHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtYWN0dWFsLnR4
dFVUCQADNmPnUjZj51J1eAsAAQT1AQAABFAAAADt2r1qw0AQBOD+nmK5yiZGOG06ExQIONggQeqz
tLZEzjqxd7Kit88qOAlpAm7DfMU1Go1+6imbNlLimKhquHqLdODGXdogNLapIX7vhWNsQ6epxmlK
2CWmmrmn3klkSsIcM2N2HcWhqjS9oikMer/3FJnJ6SktRwpHsvtNUVg6a8qdWJPH4H0YuabDRLbM
i5Iedy/7bV7mVjvNHCe+OL8Q7ucn1/n3Gy2s55RYNnZF9k6P+/V6uST9nq9skaTtTgvrrhdvrvu7
TwufNs/bmwrnxtiEwdf6PyWM5Dr9yRX3Se/I6NVFcgAAAAAAAAAAAAAAAAAAAAAAAAD/QHb7bO9z
Zpca4fFnXEe5SJAH2g1pXiKe+RxkunZfh4vHwftpP68a63n2l2RgY36NEo35AFBLAwQUAAIACABX
vztEnSrHIy0BAADTKQAAJQAcAHJldHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZGlmZi50eHRV
VAkAAzZj51I2Y+dSdXgLAAEE9QEAAARQAAAA7dpBS8MwFAfwez/Fo6eNLu08iOCpFSeIgsOCO8f2
batky0he3PbtTXXqTajgRf6/QxJ4yf/lAzylFBVP1oQN++Jaiy5mi7pY8PNdJ6ftKnSmLR7ZsPZc
GH20QZSwF+XYByO+cCyui+9ffCy7FSs+7GLNd3br+zM3wm0uB0myLPvjdrqRoM17s7IkdT65oKxf
yjKhhOZVXRO/ajNyvGMdvzX7ejtKDYuwq9IJpVlczqbT8Zg6T59369h3uxql+lQcnvdzYExUgxP7
SFk73hMfGt5JvEcz56y7pIcgZJe04Y11xzzJbqrb+8HZfm2DafsWdk96+90lp4X2pAEAAAAAAAAA
AAAAAAAAAAAAAAD+gfwXQ4EDZvg+wn1ompi3DMYc59p5bvupQnGBE0reAFBLAwQUAAIACABXvztE
njqTz+0AAAAmAgAAKQAcAHJldHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0
VVQJAAM2Y+dSNmPnUnV4CwABBPUBAAAEUAAAAJ2Ry2rDMBBF9/qKQSuHhpBuuwvFuwYb7B9Q7OtI
VLbMaBzXf18J0kI3hWQzGx2dedzWukiCKNRZdJ+RLrDm5gLT6sQSvmZGjC5MibImUQwjoB6YaTYc
QcJAPChVTRSXrkv0nrawpP/eUwTIpMoOkcJAuj41jaYxUeaKRA7B+7Cip8tGui2blt6rc/1RtqVO
TpVxws34gjHnzn35O1GhPUTAJ70n/ZLK6/G421Ha54dthN10LbS5Pz6s+9/3jDAbxTLWdNoOsySO
SubAb1Qtkk80Ygy8HZ5QP+i+pzUs3m91jrLPuwovUOpPEkp9A1BLAwQUAAIACABXvztEZe76DVoI
AAAtRAAALQAcAHJldHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtcHJldHR5LWRpZmYuaHRtbFVU
CQADNmPnUjZj51J1eAsAAQT1AQAABFAAAADtXFtzo8gVfvevoOzKei8GSbblsSSPUzO+VFLZ7E6t
tzKPqQYa0eOGZrsbS54k/z2nbwgQSEp2Jg8pjssG+vqd+2mK8k0qM3p7dJNiFMMlwxJ5UYq4wPLt
aSkT//oUmoV8pfj2aE5J/nzmzV+IIBLH3j+OPCCJ19KPccQ4koTlcy9nOV7orpDxGHM/ZFKybO5N
irUXwz2OF0f/OjLL2UUiRhmfeyfji5nuCx4JxfckSWx/iKLnJWdlHvtuaHKtfuobmR0EoyT2TuI4
Nn0Jy6WfoIzQ17mXsZyJAkUWYIb4kgDkCc68sWkqGDCn+eCYAkcvWANKJy2kFxcXHesLlAtfYE6S
Wqcgn7Heo76pT3Ei5944mLr2mIiCIlhEopBiP8KUmo4ViWUKC4zHf7AYURyTfFnNNvisetRdU0MW
MslTACar4Sl7wbzF1XQ6XfQJHGMjikDp5UfYS9jJCWUIWOFkmcqm9tSoOxABInm1FQPxEwlsjvew
bbn09boNSa1S4M7XelTmtuKo2CB7wpHSX6/h6MlNs2mbjLVbJ3cwqnGxNjs8rAtQMawPrOEzL1CX
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
ABgAAAAAAAAAEADtQd/dAABodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQADRWLnUnV4CwABBPUBAAAE
UAAAAFBLAQIeAwoAAAAAANe+O0QAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQS3eAABodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAUAA0Vi51J1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACADXvjtEY6qsbIIAAACoAAAAQAAYAAAAAAABAAAApIGR3gAAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVU
BQADRWLnUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANe+O0RjqqxsggAAAKgAAABSABgAAAAA
AAEAAACkgY3fAABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wt
dW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMtMi1zdGRlcnIudHh0VVQFAANFYudSdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAzL47RGBLZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSBm+AAAGh0dHAvdGVz
dHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJy
LnR4dFVUBQADL2LnUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAFC+O0TqinxCYQUAAAUPAAAK
ABgAAAAAAAEAAACkgavhAABodHRwZC5jb25mVVQFAANIYedSdXgLAAEE9QEAAARQAAAAUEsBAh4D
CgAAAAAA6747RAAAAAAAAAAAAAAAAAMAGAAAAAAAAAAQAO1BUOcAAGpzL1VUBQADamLnUnV4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIAOu+O0RI5+beLgEAADEpAAAfABgAAAAAAAEAAACkgY3nAABq
cy9sYXJnZS1leHByZXNzaW9ucy1hY3R1YWwudHh0VVQFAANqYudSdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgA6747RBF4uEApAQAAwykAAB0AGAAAAAAAAQAAAKSBFOkAAGpzL2xhcmdlLWV4cHJl
c3Npb25zLWRpZmYudHh0VVQFAANqYudSdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA6747RJ46
k8/tAAAAJgIAACEAGAAAAAAAAQAAAKSBlOoAAGpzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVjdGVk
LnR4dFVUBQADamLnUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOu+O0RNU+WXVQgAACVEAAAl
ABgAAAAAAAEAAACkgdzrAABqcy9sYXJnZS1leHByZXNzaW9ucy1wcmV0dHktZGlmZi5odG1sVVQF
AANqYudSdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAvL47RAAAAAAAAAAAAAAAAAYAGAAAAAAA
AAAQAO1BkPQAAG1lZGlhL1VUBQADE2LnUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIALy+O0Sa
C2rfuQAAAAcBAAAqABgAAAAAAAEAAACkgdD0AABtZWRpYS9jb250cm9scy1sYXlvdXQtZGlyZWN0
aW9uLXN0ZGVyci50eHRVVAUAAxNi51J1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAIvztE/Ae7
3CYCAADTCQAAKwAYAAAAAAABAAAApIHt9QAAcHl3ZWJzb2NrZXQud3MubG9nLTI3SmFuMjAxNC0y
MzUwMzMtZXJyLnR4dFVUBQADoGLnUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAAi/O0QXRvL/
CAEAAI8CAAArABgAAAAAAAEAAACkgXj4AABweXdlYnNvY2tldC53cy5sb2ctMjdKYW4yMDE0LTIz
NTAzMy1vdXQudHh0VVQFAAOgYudSdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAWL87RGfPCNF+
JgAAI6QAAAwAGAAAAAAAAQAAAKSB5fkAAHJlc3VsdHMuaHRtbFVUBQADN2PnUnV4CwABBPUBAAAE
UAAAAFBLAQIeAwoAAAAAAFe/O0QAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQakgAQByZXRyaWVz
L1VUBQADNmPnUnV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAFe/O0QAAAAAAAAAAAAAAAALABgA
AAAAAAAAEADtQesgAQByZXRyaWVzL2pzL1VUBQADNmPnUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIAFe/O0RI5+beLgEAADEpAAAnABgAAAAAAAEAAACkgTAhAQByZXRyaWVzL2pzL2xhcmdlLWV4
cHJlc3Npb25zLWFjdHVhbC50eHRVVAUAAzZj51J1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABX
vztEnSrHIy0BAADTKQAAJQAYAAAAAAABAAAApIG/IgEAcmV0cmllcy9qcy9sYXJnZS1leHByZXNz
aW9ucy1kaWZmLnR4dFVUBQADNmPnUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAFe/O0SeOpPP
7QAAACYCAAApABgAAAAAAAEAAACkgUskAQByZXRyaWVzL2pzL2xhcmdlLWV4cHJlc3Npb25zLWV4
cGVjdGVkLnR4dFVUBQADNmPnUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAFe/O0Rl7voNWggA
AC1EAAAtABgAAAAAAAEAAACkgZslAQByZXRyaWVzL2pzL2xhcmdlLWV4cHJlc3Npb25zLXByZXR0
eS1kaWZmLmh0bWxVVAUAAzZj51J1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABYvztE+2Z/rx1S
BgAOSiMACgAYAAAAAAABAAAApIFcLgEAc3RhdHMuanNvblVUBQADN2PnUnV4CwABBPUBAAAEUAAA
AFBLAQIeAwoAAAAAABC/O0QAAAAAAAAAAAAAAAAEABgAAAAAAAAAEADtQb2ABwBzdmcvVVQFAAOv
YudSdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAEL87RAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQ
AO1B+4AHAHN2Zy9zdHJva2UvVVQFAAOvYudSdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAEL87
RLtU4IGEAAAAlAAAACUAGAAAAAAAAQAAAKSBQIEHAHN2Zy9zdHJva2UvemVyby13aWR0aC1oYW5n
LXN0ZGVyci50eHRVVAUAA69i51J1eAsAAQT1AQAABFAAAABQSwUGAAAAACgAKABVDwAAI4IHAAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>222420</attachid>
            <date>2014-01-28 01:33:08 -0800</date>
            <delta_ts>2014-01-28 01:33:08 -0800</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>647894</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
bzGBed18hm3Pxj8EK4dKOjqUw9DWXJm+Prs4GyeWWq7KoeXLL9c3b773M1z8cna9Xrb85946I1QA
vReXLryZvv7g3sfpkbMAsmVysW7mvz61GbO0mlwGkKdIz9GxErf4x/NP+Zu5y/rYUDxjnz5Fd+me
IkAiAZ8+nZ671/UTYyW8Wxh6dvrzmzrCiRj/M2DN46yX9T8un1ofVBEc+uHn0/A2HidBCmDrNsvZ
kcOy3d6W4CfYSKPbdj+O7kMNH/Y75Ozl20t39tSHRQvudTv0v6a3/7/MvNJilOQISYawMNAzdufi
AgBQSwMECgAAAAAA1II7RAAAAAAAAAAAAAAAAAwAHABmYXN0L2xvYWRlci9VVAkAA1D45lI8budS
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIABoFPETbCNNCOwAAAD8AAABSABwAZmFzdC9sb2FkZXIv
ZGlzcGxheS1pbWFnZS11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxh
Y2Utc3RkZXJyLnR4dFVUCQADFG3nUkf45lJ1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxN
LU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQUAAIACAAbBTxE
2wjTQjsAAAA/AAAAUwAcAGZhc3QvbG9hZGVyL2ltYWdlcy1lbmFibGVkLXVuc2V0LWNhbi1ibG9j
ay1pbWFnZS1hbmQtY2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQJAAMVbedSSPjmUnV4
CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz
89IVCoryk1OLi1NT9LgAUEsDBBQAAgAIACEFPETbCNNCOwAAAD8AAAAtABwAZmFzdC9sb2FkZXIv
cmVsb2FkLXBvbGljeS1kZWxlZ2F0ZS1zdGRlcnIudHh0VVQJAAMdbedSUPjmUnV4CwABBPUBAAAE
FAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OL
i1NT9LgAUEsDBAoAAAAAAOuCO0QAAAAAAAAAAAAAAAAJABwAZmFzdC94c2wvVVQJAAN5+OZSPG7n
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
aWdhdGlvbi9mYWxsYmFjay1hbmNob3ItcmVsb2FkLXN0ZGVyci50eHRVVAkAAxdt51JG+OZSdXgL
AAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz
0hUKivKTU4uLU1P0uABQSwMECgAAAAAA8oI7RAAAAAAAAAAAAAAAABQAHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L1VUCQADiPjmUjxu51J1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA84I7RAAAAAAAAAAA
AAAAACoAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAkAA4n4
5lI8budSdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAEEFPERjqqxsggAAAKgAAABAABwAaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4
dFVUCQADWW3nUoj45lJ1eAsAAQT1AQAABBQAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMp
pf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZY
MO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAEEF
PERjqqxsggAAAKgAAABSABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUCQADWW3nUon45lJ1
eAsAAQT1AQAABBQAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsX
qQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP
2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIADgFPERgS2YQkQAAAPsBAABF
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9y
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
pO1OC+uuF2+u+7tPC582z9ubCufG2ITB1/o/JYzkOv3JFfdJ78jo1UVyAAAAAAAAAAAAAAAAAAAA
AAAAAP9Advts73Nmlxrh8WdcR7lIkAfaDWleIp75HGS6dl+Hi8fB+2k/rxrrefaXZGBjfo0SjfkA
UEsDBBQAAgAIALcFPESdKscjLQEAANMpAAAlABwAcmV0cmllcy9qcy9sYXJnZS1leHByZXNzaW9u
cy1kaWZmLnR4dFVUCQADOW7nUjlu51J1eAsAAQT1AQAABBQAAADt2kFLwzAUB/B7P8Wjp40u7TyI
4KkVJ4iCw4I7x/Ztq2TLSF7c9u1NdepNqOBF/r9DEnjJ/+UDPKUUFU/WhA374lqLLmaLuljw810n
p+0qdKYtHtmw9lwYfbRBlLAX5dgHI75wLK6L7198LLsVKz7sYs13duv7MzfCbS4HSbIs++N2upGg
zXuzsiR1PrmgrF/KMqGE5lVdE79qM3K8Yx2/Nft6O0oNi7Cr0gmlWVzOptPxmDpPn3fr2He7GqX6
VBye93NgTFSDE/tIWTveEx8a3km8RzPnrLukhyBkl7ThjXXHPMluqtv7wdl+bYNp+xZ2T3r73SWn
hfakAQAAAAAAAAAAAAAAAAAAAAAAAP6B/BdDgQNm+D7CfWiamLcMxhzn2nlu+6lCcYETSt4AUEsD
BBQAAgAIALcFPESeOpPP7QAAACYCAAApABwAcmV0cmllcy9qcy9sYXJnZS1leHByZXNzaW9ucy1l
eHBlY3RlZC50eHRVVAkAAzlu51I5budSdXgLAAEE9QEAAAQUAAAAnZHLasMwEEX3+opBK4eGkG67
C8W7BhvsH1Ds60hUtsxoHNd/XwnSQjeFZDMbHZ153Na6SIIo1Fl0n5EusObmAtPqxBK+ZkaMLkyJ
siZRDCOgHphpNhxBwkA8KFVNFJeuS/SetrCk/95TBMikyg6RwkC6PjWNpjFR5opEDsH7sKKny0a6
LZuW3qtz/VG2pU5OlXHCzfiCMefOffk7UaE9RMAnvSf9ksrr8bjbUdrnh22E3XQttLk/Pqz73/eM
MBvFMtZ02g6zJI5K5sBvVC2STzRiDLwdnlA/6L6nNSzeb3WOss+7Ci9Q6k8SSn0DUEsDBBQAAgAI
ALcFPERl7voNWggAAC1EAAAtABwAcmV0cmllcy9qcy9sYXJnZS1leHByZXNzaW9ucy1wcmV0dHkt
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
boNn+vCN+GI99dbwpGD9rJ01cEtC/jVPT812JizrTQk6EnxgaOdCJlNuupWyUv6P8gVQSwECHgMU
AAIACACXBTxEOZOwQ9NyAgA52h4ADgAYAAAAAAABAAAApIEAAAAAYWNjZXNzX2xvZy50eHRVVAUA
A/5t51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACXBTxEY/m1fpdEAADYMgQADQAYAAAAAAAB
AAAApIEbcwIAZXJyb3JfbG9nLnR4dFVUBQAD/m3nUnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AOqCO0QAAAAAAAAAAAAAAAAFABgAAAAAAAAAEADtQfm3AgBmYXN0L1VUBQADePjmUnV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAALeCO0QAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQTi4AgBmYXN0
L2Nzcy9VVAUAAxr45lJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAFBTxE2wjTQjsAAAA/AAAA
KQAYAAAAAAABAAAApIF7uAIAZmFzdC9jc3MvY29tcGFyZS1jb250ZW50LXN0eWxlLXN0ZGVyci50
eHRVVAUAA+ps51J1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADLgjtEAAAAAAAAAAAAAAAADAAY
AAAAAAAAABAA7UEZuQIAZmFzdC9mcmFtZXMvVVQFAAM9+OZSdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAFgU8RNsI00I7AAAAPwAAAC8AGAAAAAAAAQAAAKSBX7kCAGZhc3QvZnJhbWVzL2ZyYW1l
LWRpc3BsYXktbm9uZS1mb2N1cy1zdGRlcnIudHh0VVQFAAMLbedSdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAA2oI7RAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BA7oCAGZhc3QvaGlkcGkvVVQF
AANb+OZSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdIM7RFItw9z3PAAA2egAAD0AGAAAAAAA
AQAAAKSBSLoCAGZhc3QvaGlkcGkvaW1hZ2Utc3Jjc2V0LXNwYWNlLXByZWZpeC1ub21vZGlmaWVy
LWNyYXNoLWxvZy50eHRVVAUAA3z55lJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADUgjtEAAAA
AAAAAAAAAAAADAAYAAAAAAAAABAA7UG29wIAZmFzdC9sb2FkZXIvVVQFAANQ+OZSdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAGgU8RNsI00I7AAAAPwAAAFIAGAAAAAAAAQAAAKSB/PcCAGZhc3Qv
bG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2Fk
LWluLXBsYWNlLXN0ZGVyci50eHRVVAUAAxRt51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAb
BTxE2wjTQjsAAAA/AAAAUwAYAAAAAAABAAAApIHD+AIAZmFzdC9sb2FkZXIvaW1hZ2VzLWVuYWJs
ZWQtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50
eHRVVAUAAxVt51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAhBTxE2wjTQjsAAAA/AAAALQAY
AAAAAAABAAAApIGL+QIAZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1kZWxlZ2F0ZS1zdGRlcnIu
dHh0VVQFAAMdbedSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA64I7RAAAAAAAAAAAAAAAAAkA
GAAAAAAAAAAQAO1BLfoCAGZhc3QveHNsL1VUBQADefjmUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIADMFPERy/WXyhQAAAOkAAAAlABgAAAAAAAEAAACkgXD6AgBmYXN0L3hzbC90cmFuc2Zvcm0t
eGhyLWRvYy1zdGRlcnIudHh0VVQFAANBbedSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMwU8
RAWPVY6TAAAA0AIAACcAGAAAAAAAAQAAAKSBVPsCAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11
cmktc3RkZXJyLnR4dFVUBQADQW3nUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADMFPESBSnet
SwAAAKwAAAA0ABgAAAAAAAEAAACkgUj8AgBmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10by1mcmFn
bWVudC1jcmFzaC1zdGRlcnIudHh0VVQFAANCbedSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
twU8RAznfw0NAQAAggEAABEAGAAAAAAAAQAAAKSBAf0CAGZ1bGxfcmVzdWx0cy5qc29uVVQFAAM6
budSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAlYI7RAAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQ
AO1BWf4CAGh0dHAvVVQFAAPZ9+ZSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA7II7RAAAAAAA
AAAAAAAAAAsAGAAAAAAAAAAQAO1BmP4CAGh0dHAvdGVzdHMvVVQFAAN7+OZSdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAlYI7RAAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1B3f4CAGh0dHAvdGVz
dHMvY2FjaGUvVVQFAAPZ9+ZSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4gQ8RENjbk8/AAAA
vQAAADsAGAAAAAAAAQAAAKSBKP8CAGh0dHAvdGVzdHMvY2FjaGUvc3VicmVzb3VyY2UtZmFpbG92
ZXItdG8tbmV0d29yay1zdGRlcnIudHh0VVQFAAOobOdSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAy4I7RAAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1B3P8CAGh0dHAvdGVzdHMvbWlzYy9VVAUA
Az745lJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAYBTxEFTU1knoAAAC8AAAAKgAYAAAAAAAB
AAAApIEmAAMAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRlcnIudHh0VVQFAAMP
bedSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAz4I7RAAAAAAAAAAAAAAAABYAGAAAAAAAAAAQ
AO1BBAEDAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9VVAUAA0b45lJ1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAcBTxE2wjTQjsAAAA/AAAANwAYAAAAAAABAAAApIFUAQMAaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL2ZhbGxiYWNrLWFuY2hvci1yZWxvYWQtc3RkZXJyLnR4dFVUBQADF23nUnV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAPKCO0QAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQQACAwBodHRw
L3Rlc3RzL3NlY3VyaXR5L1VUBQADiPjmUnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPOCO0QA
AAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQU4CAwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9VVAUAA4n45lJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABBBTxEY6qs
bIIAAACoAAAAQAAYAAAAAAABAAAApIGyAgMAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQADWW3nUnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAEEFPERjqqxsggAAAKgAAABSABgAAAAAAAEAAACkga4DAwBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1z
cmMtMi1zdGRlcnIudHh0VVQFAANZbedSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOAU8RGBL
ZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSBvAQDAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklF
RC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUBQADS23nUnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIANwEPETqinxCYQUAAAUPAAAKABgAAAAAAAEAAACkgcwFAwBodHRw
ZC5jb25mVVQFAAOfbOdSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAVQU8RAAAAAAAAAAAAAAA
AAMAGAAAAAAAAAAQAO1BcQsDAGpzL1VUBQADgm3nUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AFUFPERI5+beLgEAADEpAAAfABgAAAAAAAEAAACkga4LAwBqcy9sYXJnZS1leHByZXNzaW9ucy1h
Y3R1YWwudHh0VVQFAAOCbedSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVQU8RBF4uEApAQAA
wykAAB0AGAAAAAAAAQAAAKSBNQ0DAGpzL2xhcmdlLWV4cHJlc3Npb25zLWRpZmYudHh0VVQFAAOC
bedSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVQU8RJ46k8/tAAAAJgIAACEAGAAAAAAAAQAA
AKSBtQ4DAGpzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4dFVUBQADgm3nUnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAFUFPERNU+WXVQgAACVEAAAlABgAAAAAAAEAAACkgf0PAwBqcy9s
YXJnZS1leHByZXNzaW9ucy1wcmV0dHktZGlmZi5odG1sVVQFAAOCbedSdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAA9II7RAAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1BsRgDAGxvYWRlci9VVAUA
A4z45lJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0gjtE6+23qpcBAADYBgAALgAYAAAAAAAB
AAAApIHyGAMAbG9hZGVyL2dvLWJhY2stY2FjaGVkLW1haW4tcmVzb3VyY2UtYWN0dWFsLnR4dFVU
BQADjPjmUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPSCO0QIJktsWAEAAN4DAAAsABgAAAAA
AAEAAACkgfEaAwBsb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS1kaWZmLnR4dFVU
BQADjPjmUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPSCO0ShuMmaoQEAAA4IAAAwABgAAAAA
AAEAAACkga8cAwBsb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS1leHBlY3RlZC50
eHRVVAUAA4z45lJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0gjtEAMmI8lAIAABOHgAANAAY
AAAAAAABAAAApIG6HgMAbG9hZGVyL2dvLWJhY2stY2FjaGVkLW1haW4tcmVzb3VyY2UtcHJldHR5
LWRpZmYuaHRtbFVUBQADjPjmUnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOmJO0QAAAAAAAAA
AAAAAAAGABgAAAAAAAAAEADtQXgnAwBtZWRpYS9VVAUAA6YE51J1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAADpiTtEAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UG4JwMAbWVkaWEvdHJhY2svVVQF
AAOmBOdSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVwU8RMsc5ce2AAAAAwEAADgAGAAAAAAA
AQAAAKSB/icDAG1lZGlhL3RyYWNrL3RyYWNrLWN1ZXMtc29ydGVkLWJlZm9yZS1kaXNwYXRjaC1z
dGRlcnIudHh0VVQFAAOFbedSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZAU8RMzyHIm3AAAA
AwEAACoAGAAAAAAAAQAAAKSBJikDAG1lZGlhL3ZpZGVvLXNldC1yYXRlLWZyb20tcGF1c2Utc3Rk
ZXJyLnR4dFVUBQADm23nUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGIFPERfeImShQIAALIg
AAArABgAAAAAAAEAAACkgUEqAwBweXdlYnNvY2tldC53cy5sb2ctMjhKYW4yMDE0LTAwMzg1Ni1l
cnIudHh0VVQFAAOYbedSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYgU8RDlnxrMIAQAAjwIA
ACsAGAAAAAAAAQAAAKSBKy0DAHB5d2Vic29ja2V0LndzLmxvZy0yOEphbjIwMTQtMDAzODU2LW91
dC50eHRVVAUAA5ht51J1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC3BTxEZ88I0X4mAAAjpAAA
DAAYAAAAAAABAAAApIGYLgMAcmVzdWx0cy5odG1sVVQFAAM6budSdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAtwU8RAAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BXFUDAHJldHJpZXMvVVQFAAM5
budSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAtwU8RAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQ
AO1BnlUDAHJldHJpZXMvanMvVVQFAAM5budSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtwU8
REjn5t4uAQAAMSkAACcAGAAAAAAAAQAAAKSB41UDAHJldHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lv
bnMtYWN0dWFsLnR4dFVUBQADOW7nUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALcFPESdKscj
LQEAANMpAAAlABgAAAAAAAEAAACkgXJXAwByZXRyaWVzL2pzL2xhcmdlLWV4cHJlc3Npb25zLWRp
ZmYudHh0VVQFAAM5budSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtwU8RJ46k8/tAAAAJgIA
ACkAGAAAAAAAAQAAAKSB/lgDAHJldHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhwZWN0ZWQu
dHh0VVQFAAM5budSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtwU8RGXu+g1aCAAALUQAAC0A
GAAAAAAAAQAAAKSBTloDAHJldHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtcHJldHR5LWRpZmYu
aHRtbFVUBQADOW7nUnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHSDO0QAAAAAAAAAAAAAAAAP
ABgAAAAAAAAAEADtQQ9jAwByZXRyaWVzL2xvYWRlci9VVAUAA3v55lJ1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAB0gztE6+23qpcBAADYBgAANgAYAAAAAAABAAAApIFYYwMAcmV0cmllcy9sb2Fk
ZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS1hY3R1YWwudHh0VVQFAAN7+eZSdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAdIM7RGFxqpNdAQAA7gMAADQAGAAAAAAAAQAAAKSBX2UDAHJl
dHJpZXMvbG9hZGVyL2dvLWJhY2stY2FjaGVkLW1haW4tcmVzb3VyY2UtZGlmZi50eHRVVAUAA3v5
5lJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB0gztEobjJmqEBAAAOCAAAOAAYAAAAAAABAAAA
pIEqZwMAcmV0cmllcy9sb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS1leHBlY3Rl
ZC50eHRVVAUAA3v55lJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB0gztEGrkOXlUIAABWHgAA
PAAYAAAAAAABAAAApIE9aQMAcmV0cmllcy9sb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNv
dXJjZS1wcmV0dHktZGlmZi5odG1sVVQFAAN7+eZSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
PIM7RAAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BCHIDAHNwdXRuaWsvVVQFAAMU+eZSdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAPIM7RAAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BSnIDAHNw
dXRuaWsvVW5pY29kZS9VVAUAAxT55lJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA8gztEAAAA
AAAAAAAAAAAAHAAYAAAAAAAAABAA7UGUcgMAc3B1dG5pay9Vbmljb2RlL1VuaWNvZGVfNDEwL1VU
BQADFPnmUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHSDO0RPg9m8DTkAAOzaAAA7ABgAAAAA
AAEAAACkgepyAwBzcHV0bmlrL1VuaWNvZGUvVW5pY29kZV80MTAvUzE1LjEwLjIuMTJfQTJfVDYt
Y3Jhc2gtbG9nLnR4dFVUBQADfPnmUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALcFPESPsIKo
lNsFAFZ/IgAKABgAAAAAAAEAAACkgWysAwBzdGF0cy5qc29uVVQFAAM6budSdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAPYM7RAAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BRIgJAHN0b3JhZ2Uv
VVQFAAMV+eZSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAPYM7RAAAAAAAAAAAAAAAABMAGAAA
AAAAAAAQAO1BhogJAHN0b3JhZ2UvZG9tc3RvcmFnZS9VVAUAAxX55lJ1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAAA9gztEAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UHTiAkAc3RvcmFnZS9kb21z
dG9yYWdlL2V2ZW50cy9VVAUAAxX55lJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB0gztEMRH4
v9A4AABI1QAAPAAYAAAAAAABAAAApIEniQkAc3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNp
Yy1ib2R5LWF0dHJpYnV0ZS1jcmFzaC1sb2cudHh0VVQFAAN8+eZSdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAASYM7RAAAAAAAAAAAAAAAAAQAGAAAAAAAAAAQAO1BbcIJAHN2Zy9VVAUAAyn55lJ1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABJgztEAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UGr
wgkAc3ZnL3N0cm9rZS9VVAUAAyn55lJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACEBTxECx+V
74IAAACQAAAAJQAYAAAAAAABAAAApIHwwgkAc3ZnL3N0cm9rZS96ZXJvLXdpZHRoLWhhbmctc3Rk
ZXJyLnR4dFVUBQAD2G3nUnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFSDO0QAAAAAAAAAAAAA
AAAMABgAAAAAAAAAEADtQdHDCQB0cmFuc2l0aW9ucy9VVAUAAz/55lJ1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACTBTxETdhoXYoAAABCAwAANwAYAAAAAAABAAAApIEXxAkAdHJhbnNpdGlvbnMv
Y3ViaWMtYmV6aWVyLW92ZXJmbG93LXN2Zy1sZW5ndGgtc3RkZXJyLnR4dFVUBQAD9W3nUnV4CwAB
BPUBAAAEFAAAAFBLBQYAAAAASgBKAK4dAAASxQkAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>222425</attachid>
            <date>2014-01-28 02:46:39 -0800</date>
            <delta_ts>2014-01-28 02:46:39 -0800</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-01 for mac-mountainlion</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>551497</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
z4MaCZAtT3IkWNvQ4TEQ9Jq1Uht2l/ibRmsv5Xsftipt2iJ0n0EZBJaULU1Ayp0Hl8bXfb6X6Pwp
YLeLsu2FkNxzfnP5KAePybsFBw/M6Tus9wqvzhu2Ml6ksrErc+p4Hs10ZYap66Oa2NbSyl/HqQ8t
HpEEESrMc0nmWX4dhkTRuJdtLfGYZHqH7kuLCu3TkG0D8DTGYQ9f82gQtBl89vOBc2+c2Sjg3WEd
01v21WK2wzQmmNxqvzDSMxv697mINGb0vdtdfBDYfD2Yl8J51bwpl3Qw0q8+x+m9Pvy5vGv98vgY
HQ59WjdH+8vOVF0efxmo+sYySTM0vpP9GlLjPXa5aSPXc9vtrBiOMwuYBLXs/LRZ1mta5vgEr8ty
z1M9n1mqW290FaeObo4l7PRqz1qXuqKLDn/5yAl9SZET+oIiJ/SGlyXL0AaKQbppnGWSF5MmxPRj
X/IP0NjTC7IE5S6zWTtGtCeHzdqMfa5LohWrotWwULFq5QcHdodnnibaDWCsoNz9tY9zvNXdLXSB
zxmxV6rmCA6NdZzIQ6kHgfn+ySFFPSanko6knTV5ICXXG1G1oGJiZ9twQ7cFqap4BIGGOjxI4G4d
x4yCsZp6UUGw2ZbnY3sedoHLrMFmsd54J3tSritrvW2m9flZZzIqLPM+Ri/JIO1rUXZdhluBPana
lLwyQJsx17OyTTYTrGVY00F0QGHgtXOvWZNvZCb2hHO/TxI/dVHmS/BtK2uaPH63sqAYsciWkBAz
906XFQmFOTSTz/GVWq4bRg/6JUN8+P0fpNF5inUuqeipwZoQQxcEOE3IGZR2mzQw7GkhVEEIp0dM
zWEtU3DYT7//4yOd099IQWqqjDJ1ULtmM48phQ7vmCOeMeusROgQbGi8au2ttPwWi+zB80P0cq8a
9aA4U3ROvv7v3z7HoLrDwKWpyXrQMBVBhBM3LCw/vc0Om0YOhyoIhtzAU6UkePbZ7wK67Bij+dgi
cHPGUVR0ymDo6sMxdFnH9lMqZdt4H3qnx9K7xkOpNUY2bKmojrJUijX2RtZVe/yCJOPftbXh4wrc
NWRuhCSqr3PVlCdFYD60aZNCMLKy9akQ1vhwuM3zdcNzoNtTySnDCk2cYnOnNhuwTlWNJ+NjEMyK
MenKDJP+oGiObDuWbci2ZgktAYWHrcPm9rmp1tjGRONThpoICo/riAvhGaR12yivy3PfDBi/UW5E
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
uNFDy03IQuFKZN+EzE1WB9OWV073daGp7XnHLzPh0rpfpklD6g/sSXt0k7YGMmlHj5HtTdPvwrld
01wGeYOb9aZnFqdEHnb/j89XHmqMvHeHk02lkamBnEmYG+s4VLY1tZxBJWfMqIQQqDjXpsmrtzVL
FXToq0uqHftlj2OBEGm5/nDSkgsHcjJiDyMcbF55/nwrI+ZgifC5/uZktxJQMJuJ8yOaGZNg+kW8
7txppoes9gg5jgAgH++C9C+TZL7OrsiH6yv7/fVezcSiyt+7WrG5Q4ptlqy5JyH2vmcuOd5q7Iwk
V1+l7XzEZppnJbaMOaVPxeDcISTntJJcY+lJogmzsb9w+93F9fXiykT1LXP9ISR2l0TrXNFImDgj
y2sbsH/PHkH/J28xzH7Fvh0ulttgMZ6mK4JzdnGHSvFBitu2FF9tVU/LP2NjOy7eWS85/UM1jLOQ
OeVlM3DplsrGwwtwF+7xXoR7iD7g7NuDiGAtLar4zSt15/D/YRi8BZsIht00EQmuyKScDTf9O8ik
yzGDor24TQbWiTwOGXTNqU0nR6aNDoWj0siuHZ75Z23N2hlbbg9pyoWJ9aB2aHfPQ29ux7JV0EBu
J92Gsr/mSILd2ee25G/tthdrF4QItU3pLEwV9yvE6yCMHePbR68WqzfrNNoE0PJdbLRIshwSQKtt
4VIJl/DS7aPrXEuJXtBVWzubEAHFjb0XnXZzno6IYssdhtf6hnOOPT6jEEivNaNS9kA3k974keHt
2Kudwmy/Pd5zncK8JzqFtTMH3oFGcdGCdQtJCrttjnPNm+P8hf0L/sJ/+5eyKc71nzvtL9tLQR5i
g+yBpUCAUmB7x2NBQCp2taSNQW7ulbehdL9nleOKQRQgz11yh1aAtVfB6rgH9RXG8jym2yQpjn6r
+8UO1smedtwSr4vdaXoMQFUyTYFylttipdPtglXTysscZDrf5dUVE3qXjLa9AVUdRwh0TOq3kth9
mC8Or2Dlszvx9EC3vQxuuP9l32zScAGMRxCadDGwdemrg9CEaMi0+M774fLvTvmdd7EVP/vlz2b5
3Sr/jpa/R+X38jm8De7+328+z3vgiu+3xXe7/Nkm+9+xg83Dz2H/kM7N++3p7dC+p7fOre5nRyMN
lK+uCmUUKth+ZWpYm/as+IrEV098dcVXa/cZaol3sPjqi3eK17Z4HRhXa29G2R+7Af+1fWvesncQ
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
dHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50eHRVVAkAAx1551LoaudSdXgL
AAEE9QEAAARQAAAAjY5BDsMgDATveYU/QCDtoRW/IcRVLBmMjJH6/BLlA9VeVjuH2SylEScjqYCq
ohE+xAinWYveb4/XGma2+A4h+EI9e8UuQzN2/+1sbk+Ho9JEzQ2ldW7AVBGegIwFq8FNl0niXSHC
qGmfGhNgScd/uip95PO6lywxLz9QSwMECgAAAAAALQQ8RAAAAAAAAAAAAAAAABQAHABodHRwL3Rl
c3RzL3NlY3VyaXR5L1VUCQADVmvnUoZ651J1eAsAAQT1AQAABFAAAABQSwMECgAAAAAALgQ8RAAA
AAAAAAAAAAAAACoAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9V
VAkAA1dr51KGeudSdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAEAMPERjqqxsggAAAKgAAABAABwA
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3Rk
ZXJyLnR4dFVUCQADiHnnUlZr51J1eAsAAQT1AQAABFAAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4
G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jk
HhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQA
AgAIAEEMPERjqqxsggAAAKgAAABSABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUCQADiXnn
Uldr51J1eAsAAQT1AQAABFAAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZ
zXK2wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpo
JTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIADMMPERgS2YQkQAA
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
AGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRVVAUAA0F551J1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACAAZDDxEiR8h/pcAAADAAwAAJwAYAAAAAAABAAAApIEbqwEAZmFzdC94
c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQFAANBeedSdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAGQw8RIFKd61LAAAArAAAADQAGAAAAAAAAQAAAKSBE6wBAGZhc3QveHNsL3hz
bHQtdHJhbnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50eHRVVAUAA0J551J1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACADHDDxE/ds+KAwBAACCAQAAEQAYAAAAAAABAAAApIHMrAEAZnVs
bF9yZXN1bHRzLmpzb25VVAUAA4Z651J1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADyAzxEAAAA
AAAAAAAAAAAABQAYAAAAAAAAABAA7UEjrgEAaHR0cC9VVAUAA+hq51J1eAsAAQT1AQAABFAAAABQ
SwECHgMKAAAAAAAhBDxEAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UFirgEAaHR0cC90ZXN0cy9V
VAUAAz1r51J1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADyAzxEAAAAAAAAAAAAAAAAEAAYAAAA
AAAAABAA7UGnrgEAaHR0cC90ZXN0cy9taXNjL1VUBQAD6GrnUnV4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIAAcMPEQVNTWSegAAALwAAAAqABgAAAAAAAEAAACkgfGuAQBodHRwL3Rlc3RzL21pc2Mv
eHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50eHRVVAUAAx1551J1eAsAAQT1AQAABFAAAABQSwECHgMK
AAAAAAAtBDxEAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UHPrwEAaHR0cC90ZXN0cy9zZWN1cml0
eS9VVAUAA1Zr51J1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAuBDxEAAAAAAAAAAAAAAAAKgAY
AAAAAAAAABAA7UEdsAEAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
VVQFAANXa+dSdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAQAw8RGOqrGyCAAAAqAAAAEAAGAAA
AAAAAQAAAKSBgbABAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hz
bC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAA4h551J1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABB
DDxEY6qsbIIAAACoAAAAUgAYAAAAAAABAAAApIF9sQEAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4
dFVUBQADiXnnUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADMMPERgS2YQkQAAAPsBAABFABgA
AAAAAAEAAACkgYuyAQBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50
LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAUAA3F551J1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAC1CzxE6op8QmEFAAAFDwAACgAYAAAAAAABAAAApIGbswEAaHR0cGQuY29uZlVUBQADhXjn
UnV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAFgMPEQAAAAAAAAAAAAAAAADABgAAAAAAAAAEADt
QUC5AQBqcy9VVAUAA7d551J1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABYDDxESOfm3i4BAAAx
KQAAHwAYAAAAAAABAAAApIF9uQEAanMvbGFyZ2UtZXhwcmVzc2lvbnMtYWN0dWFsLnR4dFVUBQAD
t3nnUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAFgMPEQReLhAKQEAAMMpAAAdABgAAAAAAAEA
AACkgQS7AQBqcy9sYXJnZS1leHByZXNzaW9ucy1kaWZmLnR4dFVUBQADt3nnUnV4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIAFgMPESeOpPP7QAAACYCAAAhABgAAAAAAAEAAACkgYS8AQBqcy9sYXJn
ZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHRVVAUAA7d551J1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACABYDDxETVPll1UIAAAlRAAAJQAYAAAAAAABAAAApIHMvQEAanMvbGFyZ2UtZXhwcmVzc2lv
bnMtcHJldHR5LWRpZmYuaHRtbFVUBQADt3nnUnV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAABcE
PEQAAAAAAAAAAAAAAAAGABgAAAAAAAAAEADtQYDGAQBtZWRpYS9VVAUAAy5r51J1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACAAoDDxExiiJ1roAAAAHAQAAKgAYAAAAAAABAAAApIHAxgEAbWVkaWEv
Y29udHJvbHMtbGF5b3V0LWRpcmVjdGlvbi1zdGRlcnIudHh0VVQFAANceedSdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAeQw8RC3nMxkdAgAAoQkAACsAGAAAAAAAAQAAAKSB3scBAHB5d2Vic29j
a2V0LndzLmxvZy0yOEphbjIwMTQtMDEyOTQyLWVyci50eHRVVAUAA/V551J1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACABqDDxE8MHgvwcBAACPAgAAKwAYAAAAAAABAAAApIFgygEAcHl3ZWJzb2Nr
ZXQud3MubG9nLTI4SmFuMjAxNC0wMTI5NDItb3V0LnR4dFVUBQAD13nnUnV4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIAMcMPERnzwjRfiYAACOkAAAMABgAAAAAAAEAAACkgczLAQByZXN1bHRzLmh0
bWxVVAUAA4Z651J1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADGDDxEAAAAAAAAAAAAAAAACAAY
AAAAAAAAABAA7UGQ8gEAcmV0cmllcy9VVAUAA4R651J1eAsAAQT1AQAABFAAAABQSwECHgMKAAAA
AADGDDxEAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UHS8gEAcmV0cmllcy9qcy9VVAUAA4R651J1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADGDDxESOfm3i4BAAAxKQAAJwAYAAAAAAABAAAApIEX
8wEAcmV0cmllcy9qcy9sYXJnZS1leHByZXNzaW9ucy1hY3R1YWwudHh0VVQFAAOEeudSdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgAxgw8RJ0qxyMtAQAA0ykAACUAGAAAAAAAAQAAAKSBpvQBAHJl
dHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZGlmZi50eHRVVAUAA4R651J1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACADGDDxEnjqTz+0AAAAmAgAAKQAYAAAAAAABAAAApIEy9gEAcmV0cmllcy9q
cy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHRVVAUAA4R651J1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACADGDDxEZe76DVoIAAAtRAAALQAYAAAAAAABAAAApIGC9wEAcmV0cmllcy9qcy9s
YXJnZS1leHByZXNzaW9ucy1wcmV0dHktZGlmZi5odG1sVVQFAAOEeudSdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAxww8RGTE0WXxWAYAfk4jAAoAGAAAAAAAAQAAAKSBQwACAHN0YXRzLmpzb25V
VAUAA4Z651J1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABtBDxEAAAAAAAAAAAAAAAABAAYAAAA
AAAAABAA7UF4WQgAc3ZnL1VUBQADzmvnUnV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAG0EPEQA
AAAAAAAAAAAAAAALABgAAAAAAAAAEADtQbZZCABzdmcvc3Ryb2tlL1VUBQADzmvnUnV4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIAIEMPET4QaVwhAAAAJQAAAAlABgAAAAAAAEAAACkgftZCABzdmcv
c3Ryb2tlL3plcm8td2lkdGgtaGFuZy1zdGRlcnIudHh0VVQFAAMCeudSdXgLAAEE9QEAAARQAAAA
UEsFBgAAAAAoACgAVQ8AAN5aCAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222437</attachid>
            <date>2014-01-28 06:40:51 -0800</date>
            <delta_ts>2014-01-28 06:41:47 -0800</delta_ts>
            <desc>patch for EWS, integrated to the original patch with one more fix</desc>
            <filename>bug-127763-20140128154252.patch</filename>
            <type>text/plain</type>
            <size>1656988</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyOTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YjYzYTI3ZmU4NTUwZjJjMDJhMGU4OTZjY2I5NWIyOGI5ODNiOGY0Li40MGY4MzE2YjhhMmVhZjM1
OGJhMGRiNGUzYWEwOTZhOTI3NGY0YzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MjEgQEAKKzIwMTQtMDEtMjggIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFw
cGxlLmNvbT4KKworICAgICAgICBNZXJnZSB0aGUganNDU3RhY2sgYnJhbmNoCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3NjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
b3JkZXI6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmg6CisgICAg
ICAgIChKU0M6OmlzSW50Nyk6CisgICAgICAgIChKU0M6OmlzSW50MTEpOgorICAgICAgICAoSlND
OjpQYWlyUG9zdEluZGV4OjpQYWlyUG9zdEluZGV4KToKKyAgICAgICAgKEpTQzo6UGFpclBvc3RJ
bmRleDo6b3BlcmF0b3IgaW50KToKKyAgICAgICAgKEpTQzo6UGFpclByZUluZGV4OjpQYWlyUHJl
SW5kZXgpOgorICAgICAgICAoSlNDOjpQYWlyUHJlSW5kZXg6Om9wZXJhdG9yIGludCk6CisgICAg
ICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjptZW1QYWlyT2Zmc2V0U2hpZnQpOgorICAgICAgICAo
SlNDOjpBUk02NEFzc2VtYmxlcjo6YWRkKToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6
OmxkcCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjpzdHApOgorICAgICAgICAoSlND
OjpBUk02NEFzc2VtYmxlcjo6c3ViKToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6Omxv
YWRTdG9yZVJlZ2lzdGVyUGFpclBvc3RJbmRleCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1i
bGVyOjpsb2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleCk6CisgICAgICAgICogYXNzZW1ibGVy
L0FSTXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjphZGQpOgor
ICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6cG9wKToKKyAgICAgICAgKEpTQzo6QVJNdjdB
c3NlbWJsZXI6OnB1c2gpOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6QVJNSW5zdHJ1
Y3Rpb25Gb3JtYXR0ZXI6OnR3b1dvcmRPcDE2SW1tMTYpOgorICAgICAgICAqIGFzc2VtYmxlci9B
YnN0cmFjdE1hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgICogYXNzZW1ibGVyL0xpbmtCdWZmZXIu
Y3BwOgorICAgICAgICAoSlNDOjpzaG91bGRTaG93RGlzYXNzZW1ibHlGb3IpOgorICAgICAgICAo
SlNDOjpMaW5rQnVmZmVyOjpmaW5hbGl6ZUNvZGVXaXRoRGlzYXNzZW1ibHkpOgorICAgICAgICAq
IGFzc2VtYmxlci9MaW5rQnVmZmVyLmg6CisgICAgICAgIChKU0M6OkxpbmtCdWZmZXI6OmVudHJ5
cG9pbnQpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlcjo6c3RvcmVQdHIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmFk
ZDY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6cG9wUGFpcik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnB1c2hQYWlyKToKKyAgICAgICAgKiBhc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTXY3OjphZGQzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnBvcFBh
aXIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpwdXNoUGFpcik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnRlc3QzMik6CisgICAgICAgICogYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oOgorICAgICAgICAoSlNDOjpSZXR1cm5BZGRyZXNz
UHRyOjpkdW1wKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpvcGVyYXRv
ciBVbnNwZWNpZmllZEJvb2xUeXBlKik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjo6b3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSopOgorICAgICAgICAqIGFzc2VtYmxl
ci9NYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oOiBBZGRlZC4KKyAgICAgICAgKiBieXRl
Y29kZS9DYWxsTGlua0luZm8uY3BwOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OnVubGlu
ayk6CisgICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmg6CisgICAgICAgIChKU0M6OkNh
bGxMaW5rSW5mbzo6Q2FsbExpbmtJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua1N0
YXR1cy5jcHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50
KToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3IpOgorICAgICAgICAo
SlNDOjpDYWxsTGlua1N0YXR1czo6Y29tcHV0ZURGR1N0YXR1c2VzKToKKyAgICAgICAgKiBieXRl
Y29kZS9DYWxsTGlua1N0YXR1cy5oOgorICAgICAgICAoSlNDOjpDYWxsTGlua1N0YXR1czo6bWFr
ZUNsb3N1cmVDYWxsKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBBc3N1bWluZ0pJVFR5cGUpOgorICAgICAgICAoSlNDOjpD
b2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Q29kZUJs
b2NrKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpnZXRTdHViSW5mb01hcCk6CisgICAgICAg
IChKU0M6OkNvZGVCbG9jazo6YWRkU3R1YkluZm8pOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6
Om51bWJlck9mREZHQ29tcGlsZXMpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmNoZWNrSWZP
cHRpbWl6YXRpb25UaHJlc2hvbGRSZWFjaGVkKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpz
dGFja1BvaW50ZXJPZmZzZXQpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OnNldEpJVENvZGUpOgorICAgICAgICAoSlNDOjpDb2RlQmxv
Y2s6OmppdENvZGUpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNwZWNpYWxGYXN0Q2FzZVBy
b2ZpbGVGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6aGFzRXhp
dFNpdGUpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmxpdmVuZXNzQW5hbHlzaXMpOgorICAg
ICAgICAqIGJ5dGVjb2RlL0NvZGVPcmlnaW4uY3BwOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2lu
Ojppc0FwcHJveGltYXRlbHlFcXVhbFRvKToKKyAgICAgICAgKEpTQzo6Q29kZU9yaWdpbjo6YXBw
cm94aW1hdGVIYXNoKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlT3JpZ2luLmg6CisgICAgICAg
IChKU0M6OkNvZGVPcmlnaW46OkNvZGVPcmlnaW4pOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2lu
OjpkZWxldGVkTWFya2VyKToKKyAgICAgICAgKEpTQzo6Q29kZU9yaWdpbkFwcHJveGltYXRlSGFz
aDo6aGFzaCk6CisgICAgICAgIChKU0M6OkNvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g6OmVxdWFs
KToKKyAgICAgICAgKiBieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6RXhpdFByb2ZpbGU6OmFkZCk6CisgICAgICAgIChKU0M6OkRGRzo6RXhpdFByb2ZpbGU6
Omhhc0V4aXRTaXRlKToKKyAgICAgICAgKiBieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oOgorICAg
ICAgICAoSlNDOjpERkc6OkZyZXF1ZW50RXhpdFNpdGU6OkZyZXF1ZW50RXhpdFNpdGUpOgorICAg
ICAgICAoSlNDOjpERkc6OkZyZXF1ZW50RXhpdFNpdGU6Om9wZXJhdG9yPT0pOgorICAgICAgICAo
SlNDOjpERkc6OkZyZXF1ZW50RXhpdFNpdGU6OnN1YnN1bWVzKToKKyAgICAgICAgKEpTQzo6REZH
OjpGcmVxdWVudEV4aXRTaXRlOjpoYXNoKToKKyAgICAgICAgKEpTQzo6REZHOjpGcmVxdWVudEV4
aXRTaXRlOjpqaXRUeXBlKToKKyAgICAgICAgKEpTQzo6REZHOjpGcmVxdWVudEV4aXRTaXRlOjp3
aXRoSklUVHlwZSk6CisgICAgICAgIChKU0M6OkRGRzo6UXVlcnlhYmxlRXhpdFByb2ZpbGU6Omhh
c0V4aXRTaXRlKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5
dGVjb2RlL0V4aXRpbmdKSVRUeXBlLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpleGl0aW5nSklU
VHlwZUZvcik6CisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHA6CisgICAgICAg
IChKU0M6OkdldEJ5SWRTdGF0dXM6Omhhc0V4aXRTaXRlKToKKyAgICAgICAgKEpTQzo6R2V0QnlJ
ZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgIChKU0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1
dGVGb3JTdHViSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oOgorICAg
ICAgICAqIGJ5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNw
cDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQ6
OmZpcmVJbnRlcm5hbCk6CisgICAgICAgICogYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHA6Cisg
ICAgICAgIChKU0M6OlB1dEJ5SWRTdGF0dXM6Omhhc0V4aXRTaXRlKToKKyAgICAgICAgKEpTQzo6
UHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgIChKU0M6OlB1dEJ5SWRTdGF0dXM6
OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5o
OgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVNldC5oOgorICAgICAgICAoSlNDOjpTdHJ1
Y3R1cmVTZXQ6OlN0cnVjdHVyZVNldCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNldDo6YWRk
KToKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaDoKKyAgICAgICAgKEpTQzo6VmFsdWVSZWNvdmVyeTo6d2l0
aExvY2Fsc09mZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmg6Cisg
ICAgICAgIChKU0M6OlZpcnR1YWxSZWdpc3Rlcjo6b2Zmc2V0SW5CeXRlcyk6CisgICAgICAgICog
ZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwOgorICAgICAgICAqIGRmZy9ERkdBcnJheU1v
ZGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkFycmF5TW9kZTo6cmVmaW5lKToKKyAgICAgICAg
KiBkZmcvREZHQXJyYXlNb2RlLmg6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6YWRkQ2FsbCk6CisgICAgICAg
IChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNhbGwpOgorICAgICAgICAoSlNDOjpE
Rkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6
Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVD
b2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNl
cjo6cGFyc2UpOgorICAgICAgICAqIGRmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpDRkdTaW1wbGlmaWNhdGlvblBoYXNlOjpydW4pOgorICAgICAg
ICAqIGRmZy9ERkdDU0VQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q1NFUGhhc2U6Omlu
dmFsaWRhdGlvblBvaW50RWxpbWluYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6OkNTRVBoYXNl
OjpwZXJmb3JtTm9kZUNTRSk6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBkZmcvREZHQ2Fw
YWJpbGl0aWVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6aW5saW5lRnVuY3Rpb25Gb3JDYWxsQ2Fw
YWJpbGl0eUxldmVsKToKKyAgICAgICAgKEpTQzo6REZHOjppbmxpbmVGdW5jdGlvbkZvckNsb3N1
cmVDYWxsQ2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKEpTQzo6REZHOjppbmxpbmVGdW5jdGlv
bkZvckNvbnN0cnVjdENhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgIChKU0M6OkRGRzo6aW5saW5l
RnVuY3Rpb25Gb3JDYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAqIGRmZy9ERkdDb21tb24uaDoK
KyAgICAgICAgKiBkZmcvREZHQ29tcGlsYXRpb25Nb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6
aXNGVEwpOgorICAgICAgICAqIGRmZy9ERkdEcml2ZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OmNvbXBpbGVJbXBsKToKKyAgICAgICAgKEpTQzo6REZHOjpjb21waWxlKToKKyAgICAgICAgKiBk
ZmcvREZHRHJpdmVyLmg6CisgICAgICAgICogZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6RmFpbGVkRmluYWxpemVyOjpjb2RlU2l6ZSk6CisgICAgICAgICog
ZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oOgorICAgICAgICAqIGRmZy9ERkdGaW5hbGl6ZXIuaDoK
KyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4
dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1
cFNldExvY2Fsc0luQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVw
VW50eXBlZFNldExvY2Fsc0luQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6
OmZpeEVkZ2UpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6Omluc2VydFN0b3JlQmFy
cmllcik6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4SW50RWRnZSk6CisgICAg
ICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6aW5qZWN0SW50MzJUb0RvdWJsZU5vZGUpOgorICAg
ICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmF0dGVtcHRUb01ha2VHZXRBcnJheUxlbmd0aCk6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6YWRkUGhhbnRvbXNJZk5lY2Vzc2FyeSk6
CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6
aXNMaXZlSW5CeXRlY29kZSk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmZyYW1lUmVnaXN0
ZXJDb3VudCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnN0YWNrUG9pbnRlck9mZnNldCk6
CisgICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgICogZGZnL0RGR0pJVENvZGUuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGU6OnNldE9wdGltaXphdGlvblRocmVzaG9sZEJh
c2VkT25Db21waWxhdGlvblJlc3VsdCk6CisgICAgICAgICogZGZnL0RGR0pJVENvZGUuaDoKKyAg
ICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJVENv
bXBpbGVyOjpjb21waWxlRW50cnkpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpj
b21waWxlRXhjZXB0aW9uSGFuZGxlcnMpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVy
OjpsaW5rKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6Y29tcGlsZSk6CisgICAg
ICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNvbXBpbGVGdW5jdGlvbik6CisgICAgICAgICog
ZGZnL0RGR0pJVENvbXBpbGVyLmg6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmN1
cnJlbnRKU0NhbGxJbmRleCk6CisgICAgICAgICogZGZnL0RGR0pJVEZpbmFsaXplci5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6SklURmluYWxpemVyOjpjb2RlU2l6ZSk6CisgICAgICAgIChKU0M6
OkRGRzo6SklURmluYWxpemVyOjpmaW5hbGl6ZSk6CisgICAgICAgIChKU0M6OkRGRzo6SklURmlu
YWxpemVyOjpmaW5hbGl6ZUZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRGaW5hbGl6
ZXI6OmZpbmFsaXplQ29tbW9uKToKKyAgICAgICAgKiBkZmcvREZHSklURmluYWxpemVyLmg6Cisg
ICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjppc1NlbWFu
dGljYWxseVNraXBwYWJsZSk6CisgICAgICAgICogZGZnL0RGR05vZGVGbGFncy5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6ZHVtcE5vZGVGbGFncyk6CisgICAgICAgICogZGZnL0RGR09TUkF2YWls
YWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkF2YWlsYWJp
bGl0eUFuYWx5c2lzUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5LmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpwcmVwYXJlT1NSRW50cnkpOgorICAgICAgICAqIGRmZy9ERkdP
U1JFbnRyeXBvaW50Q3JlYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSRW50
cnlwb2ludENyZWF0aW9uUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RGR09TUkV4aXQuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0
U2l0ZSk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRCYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KToK
KyAgICAgICAgKiBkZmcvREZHT1NSRXhpdEJhc2UuaDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JF
eGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUpOgorICAgICAgICAqIGRm
Zy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGls
ZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxl
RXhpdCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBkZmcv
REZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjphZGp1c3RB
bmRKdW1wVG9UYXJnZXQpOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6cHJvZmlsZXJDb21waWxh
dGlvbktpbmRGb3JNb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpQbGFuKToKKyAgICAg
ICAgKEpTQzo6REZHOjpQbGFuOjpyZXBvcnRDb21waWxlVGltZXMpOgorICAgICAgICAoSlNDOjpE
Rkc6OlBsYW46OmNvbXBpbGVJblRocmVhZCk6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6Y29t
cGlsZUluVGhyZWFkSW1wbCk6CisgICAgICAgICogZGZnL0RGR1BsYW4uaDoKKyAgICAgICAgKiBk
ZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U1NBTG93ZXJp
bmdQaGFzZTo6aGFuZGxlTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6U1NBTG93ZXJpbmdQaGFz
ZTo6bG93ZXJCb3VuZHNDaGVjayk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUN1cnJlbnRCbG9j
ayk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnByZXBhcmVKSVRDb2RlRm9y
VGllclVwKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5
cGVkQXJyYXkpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0
QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlQXJpdGhNb2QpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsZWVGcmFtZU9mZnNldCk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUZyYW1lU2xvdCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUFyZ3VtZW50U2xvdCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUZyYW1lVGFnU2xvdCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUZyYW1lUGF5bG9hZFNsb3Qp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsZWVBcmd1bWVudFRhZ1Ns
b3QpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsZWVBcmd1bWVudFBh
eWxvYWRTbG90KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJh
bWVDYWxsZXJGcmFtZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRC
eUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZCk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1Rp
ZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlRpZXJVcENo
ZWNrSW5qZWN0aW9uUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RGR1ZhbGlkYXRlLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpWYWxpZGF0ZTo6dmFsaWRhdGUpOgorICAgICAgICAqIGRmZy9E
RkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsREZHV29ya2xp
c3QpOgorICAgICAgICAoSlNDOjpERkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwp
OgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KToKKyAgICAgICAg
KEpTQzo6REZHOjpleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKToKKyAgICAgICAgKEpT
Qzo6REZHOjplbnN1cmVHbG9iYWxXb3JrbGlzdEZvcik6CisgICAgICAgICogZGZnL0RGR1dvcmts
aXN0Lmg6CisgICAgICAgICogZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuY3BwOgorICAg
ICAgICAoSlNDOjpBUk02NERpc2Fzc2VtYmxlcjo6QTY0RE9wY29kZTo6YXBwZW5kUmVnaXN0ZXJO
YW1lKToKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2NERPcGNvZGVMb2FkU3Rv
cmVSZWdpc3RlclBhaXI6Om9wTmFtZSk6CisgICAgICAgIChKU0M6OkFSTTY0RGlzYXNzZW1ibGVy
OjpBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyOjpmb3JtYXQpOgorICAgICAgICAqIGRp
c2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmg6CisgICAgICAgIChKU0M6OkFSTTY0RGlzYXNz
ZW1ibGVyOjpBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyOjpydDIpOgorICAgICAgICAo
SlNDOjpBUk02NERpc2Fzc2VtYmxlcjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpcjo6
aW1tZWRpYXRlNyk6CisgICAgICAgIChKU0M6OkFSTTY0RGlzYXNzZW1ibGVyOjpBNjRET3Bjb2Rl
TG9hZFN0b3JlUmVnaXN0ZXJQYWlyOjpvZmZzZXRNb2RlKToKKyAgICAgICAgKEpTQzo6QVJNNjRE
aXNhc3NlbWJsZXI6OkE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OmxCaXQpOgorICAg
ICAgICAqIGZ0bC9GVExBYmJyZXZpYXRpb25zLmg6CisgICAgICAgIChKU0M6OkZUTDo6YXJyYXlU
eXBlKToKKyAgICAgICAgKEpTQzo6RlRMOjphZGRUYXJnZXREZXBlbmRlbnRGdW5jdGlvbkF0dHIp
OgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXAuY3BwOgorICAgICAgICAoSlNDOjpGVEw6
OkluZGV4ZWRBYnN0cmFjdEhlYXA6OkluZGV4ZWRBYnN0cmFjdEhlYXApOgorICAgICAgICAoSlND
OjpGVEw6OkluZGV4ZWRBYnN0cmFjdEhlYXA6OmJhc2VJbmRleCk6CisgICAgICAgIChKU0M6OkZU
TDo6SW5kZXhlZEFic3RyYWN0SGVhcDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChKU0M6OkZUTDo6
TnVtYmVyZWRBYnN0cmFjdEhlYXA6Ok51bWJlcmVkQWJzdHJhY3RIZWFwKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpBYnNvbHV0ZUFic3RyYWN0SGVhcDo6QWJzb2x1dGVBYnN0cmFjdEhlYXApOgorICAg
ICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXAuaDoKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6QWJzdHJhY3RIZWFwUmVwb3Np
dG9yeTo6QWJzdHJhY3RIZWFwUmVwb3NpdG9yeSk6CisgICAgICAgICogZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpBdmFpbGFibGVSZWNvdmVyeTo6ZHVtcCk6Cisg
ICAgICAgICogZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5Lmg6IEFkZGVkLgorICAgICAgICAoSlND
OjpGVEw6OkF2YWlsYWJsZVJlY292ZXJ5OjpBdmFpbGFibGVSZWNvdmVyeSk6CisgICAgICAgIChK
U0M6OkZUTDo6QXZhaWxhYmxlUmVjb3Zlcnk6Om5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkF2
YWlsYWJsZVJlY292ZXJ5Ojpmb3JtYXQpOgorICAgICAgICAoSlNDOjpGVEw6OkF2YWlsYWJsZVJl
Y292ZXJ5OjpvcGNvZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkF2YWlsYWJsZVJlY292ZXJ5Ojps
ZWZ0KToKKyAgICAgICAgKEpTQzo6RlRMOjpBdmFpbGFibGVSZWNvdmVyeTo6cmlnaHQpOgorICAg
ICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OnZlcmJv
c2VDYXBhYmlsaXRpZXMpOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAg
ICAqIGZ0bC9GVExDb21tb25WYWx1ZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkNvbW1vblZh
bHVlczo6Q29tbW9uVmFsdWVzKToKKyAgICAgICAgKiBmdGwvRlRMQ29tbW9uVmFsdWVzLmg6Cisg
ICAgICAgICogZnRsL0ZUTENvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Om1tQWxsb2Nh
dGVDb2RlU2VjdGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6Zml4RnVuY3Rpb25CYXNlZE9uU3Rh
Y2tNYXBzKToKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRM
RXhpdFZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpFeGl0VmFsdWU6OmR1bXBJbkNvbnRl
eHQpOgorICAgICAgICAqIGZ0bC9GVExFeGl0VmFsdWUuaDoKKyAgICAgICAgKEpTQzo6RlRMOjpF
eGl0VmFsdWU6OnJlY292ZXJ5KToKKyAgICAgICAgKEpTQzo6RlRMOjpFeGl0VmFsdWU6OmlzUmVj
b3ZlcnkpOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6bGVmdFJlY292ZXJ5QXJndW1l
bnQpOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6cmlnaHRSZWNvdmVyeUFyZ3VtZW50
KToKKyAgICAgICAgKEpTQzo6RlRMOjpFeGl0VmFsdWU6OnJlY292ZXJ5Rm9ybWF0KToKKyAgICAg
ICAgKEpTQzo6RlRMOjpFeGl0VmFsdWU6OnJlY292ZXJ5T3Bjb2RlKToKKyAgICAgICAgKEpTQzo6
RlRMOjpFeGl0VmFsdWU6OndpdGhWaXJ0dWFsUmVnaXN0ZXIpOgorICAgICAgICAoSlNDOjpGVEw6
OkV4aXRWYWx1ZTo6dmFsdWVGb3JtYXQpOgorICAgICAgICAqIGZ0bC9GVExJbmxpbmVDYWNoZVNp
emUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OnNpemVPZkNhbGwpOgorICAgICAgICAqIGZ0bC9G
VExJbmxpbmVDYWNoZVNpemUuaDoKKyAgICAgICAgKiBmdGwvRlRMSW50cmluc2ljUmVwb3NpdG9y
eS5oOgorICAgICAgICAqIGZ0bC9GVExKSVRDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpK
SVRDb2RlOjppbml0aWFsaXplQXJpdHlDaGVja0VudHJ5cG9pbnQpOgorICAgICAgICAoSlNDOjpG
VEw6OkpJVENvZGU6OmluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbCk6CisgICAgICAgIChKU0M6OkZU
TDo6SklUQ29kZTo6YWRkcmVzc0ZvckNhbGwpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENvZGU6
OmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENvZGU6
OmRhdGFBZGRyZXNzQXRPZmZzZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENvZGU6Om9mZnNl
dE9mKToKKyAgICAgICAgKEpTQzo6RlRMOjpKSVRDb2RlOjpzaXplKToKKyAgICAgICAgKEpTQzo6
RlRMOjpKSVRDb2RlOjpjb250YWlucyk6CisgICAgICAgICogZnRsL0ZUTEpJVENvZGUuaDoKKyAg
ICAgICAgKiBmdGwvRlRMSklURmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpKSVRG
aW5hbGl6ZXI6OmNvZGVTaXplKToKKyAgICAgICAgKEpTQzo6RlRMOjpKSVRGaW5hbGl6ZXI6OmZp
bmFsaXplRnVuY3Rpb24pOgorICAgICAgICAqIGZ0bC9GVExKSVRGaW5hbGl6ZXIuaDoKKyAgICAg
ICAgKiBmdGwvRlRMSlNDYWxsLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6SlNDYWxs
OjpKU0NhbGwpOgorICAgICAgICAoSlNDOjpGVEw6OkpTQ2FsbDo6ZW1pdCk6CisgICAgICAgIChK
U0M6OkZUTDo6SlNDYWxsOjpsaW5rKToKKyAgICAgICAgKiBmdGwvRlRMSlNDYWxsLmg6IEFkZGVk
LgorICAgICAgICAoSlNDOjpGVEw6OkpTQ2FsbDo6c3RhY2ttYXBJRCk6CisgICAgICAgIChKU0M6
OkZUTDo6SlNDYWxsOjpvcGVyYXRvcjwpOgorICAgICAgICAqIGZ0bC9GVExMaW5rLmNwcDoKKyAg
ICAgICAgKEpTQzo6RlRMOjpsaW5rKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpsb3dlcik6CisgICAgICAg
IChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6
RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFyaXRoQWRkT3JTdWIpOgorICAgICAgICAoSlND
OjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJpdGhNdWwpOgorICAgICAgICAoSlNDOjpG
VEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJpdGhEaXYpOgorICAgICAgICAoSlNDOjpGVEw6
Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJpdGhNb2QpOgorICAgICAgICAoSlNDOjpGVEw6Okxv
d2VyREZHVG9MTFZNOjpjb21waWxlQXJpdGhTaW4pOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2Vy
REZHVG9MTFZNOjpjb21waWxlQXJpdGhDb3MpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZH
VG9MTFZNOjpjb21waWxlQXJpdGhTcXJ0KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1Rv
TExWTTo6Y29tcGlsZUFyaXRoTmVnYXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1Rv
TExWTTo6Y29tcGlsZUNoZWNrRXhlY3V0YWJsZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1Rv
TExWTTo6Y29tcGlsZVB1dEJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZN
Ojpjb21waWxlR2V0QXJyYXlMZW5ndGgpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9M
TFZNOjpjb21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZN
Ojpjb21waWxlUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlTmV3QXJyYXlXaXRoU2l6ZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVUb1N0cmluZyk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmNvbXBpbGVNYWtlUm9wZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVTdHJpbmdDaGFyQXQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlU3RyaW5nQ2hhckNvZGVBdCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVHZXRDYWxsZWUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZN
Ojpjb21waWxlR2V0U2NvcGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlQ2FsbE9yQ29uc3RydWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExW
TTo6Y29tcGlsZVN3aXRjaCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVDaGVja0FyZ3VtZW50c05vdENyZWF0ZWQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2Vy
REZHVG9MTFZNOjpjb21waWxlQ291bnRFeGVjdXRpb24pOgorICAgICAgICAoSlNDOjpGVEw6Okxv
d2VyREZHVG9MTFZNOjp0eXBlZEFycmF5TGVuZ3RoKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dl
ckRGR1RvTExWTTo6Ym9vbGlmeSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmNvbnRpZ3VvdXNQdXRCeVZhbE91dE9mQm91bmRzKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dl
ckRGR1RvTExWTTo6c3BlY3VsYXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExW
TTo6c3BlY3VsYXRlU3RyaW5nT2JqZWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1Rv
TExWTTo6c3BlY3VsYXRlU3RyaW5nT3JTdHJpbmdPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6
Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JDZWxsKToKKyAgICAgICAg
KEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6c3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yU3RydWN0
dXJlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y2FsbENoZWNrKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6YXBwZW5kT1NSRXhpdCk6CisgICAgICAg
IChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmJ1aWxkRXhpdEFyZ3VtZW50cyk6CisgICAgICAg
IChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNhbGxTdGFja21hcCk6CisgICAgICAgIChKU0M6
OkZUTDo6TG93ZXJERkdUb0xMVk06OmFkZEV4aXRBcmd1bWVudEZvck5vZGUpOgorICAgICAgICAo
SlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpkb2VzS2lsbCk6CisgICAgICAgIChKU0M6OkZUTDo6
TG93ZXJERkdUb0xMVk06OmFkZEF2YWlsYWJsZVJlY292ZXJ5KToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6cGF5bG9hZEZvcik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OnRhZ0Zvcik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmFk
ZHJlc3NGb3IpOgorICAgICAgICAqIGZ0bC9GVExPU1JFbnRyeS5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6cHJlcGFyZU9TUkVudHJ5KToKKyAgICAgICAgKiBmdGwvRlRMT1NSRXhpdC5oOgorICAg
ICAgICAoSlNDOjpGVEw6Ok9TUkV4aXQ6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRl
KToKKyAgICAgICAgKiBmdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpjb21waWxlU3R1Yik6CisgICAgICAgICogZnRsL0ZUTE91dHB1dC5oOgorICAgICAgICAo
SlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlU2luKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6
OmRvdWJsZUNvcyk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpkb3VibGVTcXJ0KToKKyAg
ICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnB0clRvSW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpP
dXRwdXQ6OmFzY3JpYmVSYW5nZSk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpub25OZWdh
dGl2ZTMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OmxvYWQzMk5vbk5lZ2F0aXZlKToK
KyAgICAgICAgKiBmdGwvRlRMUmVjb3ZlcnlPcGNvZGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdU
Rjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmg6IEFk
ZGVkLgorICAgICAgICAqIGZ0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmNwcDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkZUTDo6UmVnaXN0ZXJBdE9mZnNldDo6ZHVtcCk6CisgICAgICAgICogZnRsL0ZU
TFJlZ2lzdGVyQXRPZmZzZXQuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6UmVnaXN0ZXJB
dE9mZnNldDo6UmVnaXN0ZXJBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkZUTDo6UmVnaXN0ZXJB
dE9mZnNldDo6b3BlcmF0b3IhKToKKyAgICAgICAgKEpTQzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0
OjpncHIpOgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lzdGVyQXRPZmZzZXQ6Om9mZnNldCk6Cisg
ICAgICAgIChKU0M6OkZUTDo6UmVnaXN0ZXJBdE9mZnNldDo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChKU0M6OkZUTDo6UmVnaXN0ZXJBdE9mZnNldDo6b3BlcmF0b3I8KToKKyAgICAgICAgKEpTQzo6
RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpnZXRHUFIpOgorICAgICAgICAqIGZ0bC9GVExTbG93UGF0
aENhbGwuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OnN0b3JlQ29kZU9yaWdpbik6CisgICAgICAg
IChKU0M6OkZUTDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogZnRsL0ZUTFNsb3dQYXRoQ2Fs
bC5oOgorICAgICAgICAqIGZ0bC9GVExTdGFja01hcHMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6
OlN0YWNrTWFwczo6UmVjb3JkOjpwYXJzZSk6CisgICAgICAgICogZnRsL0ZUTFN0YWNrTWFwcy5o
OgorICAgICAgICAqIGZ0bC9GVExTdGF0ZS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6U3RhdGU6
OlN0YXRlKToKKyAgICAgICAgKiBmdGwvRlRMU3RhdGUuaDoKKyAgICAgICAgKiBmdGwvRlRMVGh1
bmtzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJh
dG9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpzbG93UGF0aENhbGxUaHVua0dlbmVyYXRvcik6Cisg
ICAgICAgICogZnRsL0ZUTFRodW5rcy5oOgorICAgICAgICAqIGZ0bC9GVExVbndpbmRJbmZvLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6VW53aW5kSW5mbzo6VW53aW5kSW5mbyk6Cisg
ICAgICAgIChKU0M6OkZUTDo6VW53aW5kSW5mbzo6flVud2luZEluZm8pOgorICAgICAgICAoSlND
OjpGVEw6OlVud2luZEluZm86OnBhcnNlKToKKyAgICAgICAgKEpTQzo6RlRMOjpVbndpbmRJbmZv
OjpkdW1wKToKKyAgICAgICAgKEpTQzo6RlRMOjpVbndpbmRJbmZvOjpmaW5kKToKKyAgICAgICAg
KEpTQzo6RlRMOjpVbndpbmRJbmZvOjppbmRleE9mKToKKyAgICAgICAgKiBmdGwvRlRMVW53aW5k
SW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBmdGwvRlRMVmFsdWVSYW5nZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpGVEw6OlZhbHVlUmFuZ2U6OmRlY29yYXRlSW5zdHJ1Y3Rpb24pOgorICAg
ICAgICAqIGZ0bC9GVExWYWx1ZVJhbmdlLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpGVEw6OlZh
bHVlUmFuZ2U6OlZhbHVlUmFuZ2UpOgorICAgICAgICAoSlNDOjpGVEw6OlZhbHVlUmFuZ2U6OmJl
Z2luKToKKyAgICAgICAgKEpTQzo6RlRMOjpWYWx1ZVJhbmdlOjplbmQpOgorICAgICAgICAqIGhl
YXAvQ29uc2VydmF0aXZlUm9vdHMuY3BwOgorICAgICAgICAoSlNDOjpDb25zZXJ2YXRpdmVSb290
czo6Z2VuZXJpY0FkZFNwYW4pOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChK
U0M6OkhlYXA6Om1hcmtSb290cyk6CisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3RJZk5lY2Vz
c2FyeU9yRGVmZXIpOgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAoSlNDOjpIZWFw
Ojppc0RlZmVycmVkKToKKyAgICAgICAgKiBoZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9tQ3VycmVudFRocmVhZCk6Cisg
ICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9tT3RoZXJUaHJlYWQpOgorICAg
ICAgICAoSlNDOjpNYWNoaW5lVGhyZWFkczo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMpOgorICAg
ICAgICAqIGhlYXAvTWFjaGluZVN0YWNrTWFya2VyLmg6CisgICAgICAgICogaW50ZXJwcmV0ZXIv
Q2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjp0b3BPZkZyYW1lSW50ZXJu
YWwpOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOgorICAgICAgICAoSlNDOjpF
eGVjU3RhdGU6OnRvcE9mRnJhbWUpOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVy
LmNwcDoKKyAgICAgICAgKEpTQzo6c2l6ZUZyYW1lRm9yVmFyYXJncyk6CisgICAgICAgIChKU0M6
OnVud2luZENhbGxGcmFtZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp1bndpbmQpOgor
ICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkludGVy
cHJldGVyOjpleGVjdXRlQ2FsbCk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRl
Q29uc3RydWN0KToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnByZXBhcmVGb3JSZXBlYXRD
YWxsKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5oOgorICAgICAgICAoSlND
OjpOYXRpdmVDYWxsRnJhbWVUcmFjZXI6Ok5hdGl2ZUNhbGxGcmFtZVRyYWNlcik6CisgICAgICAg
ICogaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHA6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OkpTU3Rh
Y2spOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjp+SlNTdGFjayk6CisgICAgICAgIChKU0M6OkpT
U3RhY2s6Omdyb3dTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OmdhdGhlckNvbnNl
cnZhdGl2ZVJvb3RzKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6c2FuaXRpemVTdGFjayk6Cisg
ICAgICAgIChKU0M6OkpTU3RhY2s6OnJlbGVhc2VFeGNlc3NDYXBhY2l0eSk6CisgICAgICAgIChK
U0M6OkpTU3RhY2s6OnNldFJlc2VydmVkWm9uZVNpemUpOgorICAgICAgICAoSlNDOjpKU1N0YWNr
Ojpsb3dBZGRyZXNzKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6aGlnaEFkZHJlc3MpOgorICAg
ICAgICAoSlNDOjpKU1N0YWNrOjpjb21taXR0ZWRCeXRlQ291bnQpOgorICAgICAgICAqIGludGVy
cHJldGVyL0pTU3RhY2suaDoKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6Y29udGFpbnNBZGRyZXNz
KToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMpOgorICAg
ICAgICAoSlNDOjpKU1N0YWNrOjpzYW5pdGl6ZVN0YWNrKToKKyAgICAgICAgKEpTQzo6SlNTdGFj
azo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OmJhc2VPZlN0
YWNrKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6bG93QWRkcmVzcyk6CisgICAgICAgIChKU0M6
OkpTU3RhY2s6OnJlc2VydmF0aW9uVG9wKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9KU1N0YWNr
SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjplbnN1cmVDYXBhY2l0eUZvcik6Cisg
ICAgICAgIChKU0M6OkpTU3RhY2s6OnRvcE9mRnJhbWVGb3IpOgorICAgICAgICAoSlNDOjpKU1N0
YWNrOjp0b3BPZlN0YWNrKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6c2hyaW5rKToKKyAgICAg
ICAgKEpTQzo6SlNTdGFjazo6Z3Jvdyk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OnNldFN0YWNr
TGltaXQpOgorICAgICAgICAqIGludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcDoKKyAgICAg
ICAgKEpTQzo6UHJvdG9DYWxsRnJhbWU6OmluaXQpOgorICAgICAgICAqIGludGVycHJldGVyL1By
b3RvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OlByb3RvQ2FsbEZyYW1lOjpzZXRQYWRkZWRB
cmdDb3VudCk6CisgICAgICAgICogaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcDog
QWRkZWQuCisgICAgICAgIChKU0M6OkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpBcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcyk6CisgICAgICAgIChKU0M6OkFyaXR5Q2hlY2tGYWlsUmV0dXJu
VGh1bmtzOjp+QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MpOgorICAgICAgICAoSlNDOjpBcml0
eUNoZWNrRmFpbFJldHVyblRodW5rczo6cmV0dXJuUENzRm9yKToKKyAgICAgICAgKEpTQzo6QXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6OnJldHVyblBDRm9yKToKKyAgICAgICAgKiBqaXQvQXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaDogQWRkZWQuCisgICAgICAgICogaml0L0Fzc2VtYmx5
SGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0VGFn
c0luUGxhY2UpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydEFyZ3Vt
ZW50Q291bnRTYW5lKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OkFzc2VtYmx5SGVscGVyczo6Y2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQpOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OnByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEpOgor
ICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRGdW5jdGlvblByb2xvZ3VlKToKKyAg
ICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0RnVuY3Rpb25FcGlsb2d1ZSk6CisgICAg
ICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3Jl
UHJvbG9ndWUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRQdXRQYXlsb2Fk
VG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5
SGVscGVyczo6ZW1pdFB1dFRhZ1RvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUpOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OnRhZ0Zvcik6CisgICAgICAgIChKU0M6OkFzc2Vt
Ymx5SGVscGVyczo6cGF5bG9hZEZvcik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6
aml0QXNzZXJ0VGFnc0luUGxhY2UpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6Ompp
dEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKToKKyAgICAgICAgKiBqaXQvQ0NhbGxIZWxwZXJzLmg6
CisgICAgICAgIChKU0M6OkNDYWxsSGVscGVyczo6c2V0dXBBcmd1bWVudHMpOgorICAgICAgICAq
IGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmg6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdEVudGVyT3B0aW1pemF0aW9uQ2hlY2spOgorICAgICAgICAoSlND
OjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZh
dGVDb21waWxlKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhh
bmRsZXJzKToKKyAgICAgICAgKEpTQzo6SklUOjpmcmFtZVJlZ2lzdGVyQ291bnRGb3IpOgorICAg
ICAgICAoSlNDOjpKSVQ6OnN0YWNrUG9pbnRlck9mZnNldEZvcik6CisgICAgICAgICogaml0L0pJ
VC5oOgorICAgICAgICAqIGppdC9KSVRDYWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21w
aWxlTG9hZFZhcmFyZ3MpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVDYWxsRXZhbCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUNhbGxFdmFsU2xvd0Nhc2UpOgorICAgICAgICAoSlND
OjpKSVQ6OmNvbXBpbGVPcENhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxT
bG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVDbG9zdXJlQ2FsbCk6
CisgICAgICAgICogaml0L0pJVENhbGwzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9yZXQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmV0X29iamVjdF9vcl90aGlz
KToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlTG9hZFZhcmFyZ3MpOgorICAgICAgICAoSlND
OjpKSVQ6OmNvbXBpbGVDYWxsRXZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUNhbGxF
dmFsU2xvd0Nhc2UpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxTbG93Q2FzZSk6CisgICAgICAgICogaml0L0pJVENv
ZGUuY3BwOgorICAgICAgICAoSlNDOjpKSVRDb2RlOjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6
SklUQ29kZVdpdGhDb2RlUmVmOjpKSVRDb2RlV2l0aENvZGVSZWYpOgorICAgICAgICAoSlNDOjpK
SVRDb2RlV2l0aENvZGVSZWY6On5KSVRDb2RlV2l0aENvZGVSZWYpOgorICAgICAgICAoSlNDOjpK
SVRDb2RlV2l0aENvZGVSZWY6OmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQpOgorICAgICAgICAo
SlNDOjpKSVRDb2RlV2l0aENvZGVSZWY6OmRhdGFBZGRyZXNzQXRPZmZzZXQpOgorICAgICAgICAo
SlNDOjpKSVRDb2RlV2l0aENvZGVSZWY6Om9mZnNldE9mKToKKyAgICAgICAgKEpTQzo6SklUQ29k
ZVdpdGhDb2RlUmVmOjpzaXplKToKKyAgICAgICAgKEpTQzo6SklUQ29kZVdpdGhDb2RlUmVmOjpj
b250YWlucyk6CisgICAgICAgIChKU0M6OkRpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENvZGUpOgor
ICAgICAgICAoSlNDOjpEaXJlY3RKSVRDb2RlOjp+RGlyZWN0SklUQ29kZSk6CisgICAgICAgIChK
U0M6OkRpcmVjdEpJVENvZGU6OmluaXRpYWxpemVDb2RlUmVmKToKKyAgICAgICAgKEpTQzo6RGly
ZWN0SklUQ29kZTo6ZW5zdXJlV3JhcHBlcnMpOgorICAgICAgICAoSlNDOjpEaXJlY3RKSVRDb2Rl
OjphZGRyZXNzRm9yQ2FsbCk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUpJVENvZGU6Ok5hdGl2ZUpJ
VENvZGUpOgorICAgICAgICAoSlNDOjpOYXRpdmVKSVRDb2RlOjp+TmF0aXZlSklUQ29kZSk6Cisg
ICAgICAgIChKU0M6Ok5hdGl2ZUpJVENvZGU6OmluaXRpYWxpemVDb2RlUmVmKToKKyAgICAgICAg
KEpTQzo6TmF0aXZlSklUQ29kZTo6YWRkcmVzc0ZvckNhbGwpOgorICAgICAgICAqIGppdC9KSVRD
b2RlLmg6CisgICAgICAgICogaml0L0pJVEV4Y2VwdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpn
ZW5lcmljVW53aW5kKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6SklUUHV0QnlJZEdlbmVyYXRvcjo6SklUUHV0QnlJZEdlbmVyYXRvcik6Cisg
ICAgICAgICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpJ
VEdldEJ5SWRHZW5lcmF0b3I6OkpJVEdldEJ5SWRHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9K
SVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdE5ha2VkQ2FsbCk6CisgICAgICAg
IChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgIChKU0M6OkpJVDo6Y2FsbE9wZXJh
dGlvbk5vRXhjZXB0aW9uQ2hlY2spOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2VuZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9yZXQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmV0X29iamVjdF9vcl90aGlzKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NhdGNoKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX2xvb3BfaGludCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfbG9vcF9o
aW50KToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3BfZW5kKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NhdGNoKToKKyAgICAgICAg
KiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoK
KyAgICAgICAgKEpTQzo6b3BlcmF0aW9uTGlua0Zvcik6CisgICAgICAgIChKU0M6Om9wZXJhdGlv
blZpcnR1YWxGb3IpOgorICAgICAgICAoSlNDOjpvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxGb3Ip
OgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9nZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5
X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKToKKyAgICAg
ICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKToKKyAgICAgICAgKiBqaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRf
YnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKToKKyAgICAgICAg
KiBqaXQvSklUU3R1YlJvdXRpbmUuaDoKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuaDoKKyAgICAg
ICAgKiBqaXQvSklUU3R1YnNNU1ZDNjQuYXNtOgorICAgICAgICAqIGppdC9KSVRTdHVic1g4Ni5o
OgorICAgICAgICAqIGppdC9KSVRUaHVua3MuY3BwOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6
OmN0aU5hdGl2ZVRhaWxDYWxsKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpob3N0RnVuY3Rp
b25TdHViKToKKyAgICAgICAgKiBqaXQvSklUVGh1bmtzLmg6CisgICAgICAgICogaml0L1JlZ2lz
dGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoSlND
OjpyZWdpc3RlcnNUb1ByZXNlcnZlKToKKyAgICAgICAgKEpTQzo6cmVnaXN0ZXJQcmVzZXJ2YXRp
b25PZmZzZXQpOgorICAgICAgICAoSlNDOjpnZW5lcmF0ZVJlZ2lzdGVyUHJlc2VydmF0aW9uV3Jh
cHBlcik6CisgICAgICAgIChKU0M6OmdlbmVyYXRlUmVnaXN0ZXJSZXN0b3JhdGlvbik6CisgICAg
ICAgIChKU0M6OnJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcik6CisgICAgICAgICog
aml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OmdlbmVyYXRlUHJvdG9DaGFpbkFj
Y2Vzc1N0dWIpOgorICAgICAgICAoSlNDOjp0cnlDYWNoZUdldEJ5SUQpOgorICAgICAgICAoSlND
Ojp0cnlCdWlsZEdldEJ5SURMaXN0KToKKyAgICAgICAgKEpTQzo6c3RvcmVUb1dyaXRlQmFycmll
ckJ1ZmZlcik6CisgICAgICAgIChKU0M6OndyaXRlQmFycmllcik6CisgICAgICAgIChKU0M6OmVt
aXRQdXRSZXBsYWNlU3R1Yik6CisgICAgICAgIChKU0M6OmVtaXRQdXRUcmFuc2l0aW9uU3R1Yik6
CisgICAgICAgIChKU0M6OnRyeVJlcGF0Y2hJbik6CisgICAgICAgIChKU0M6OmxpbmtTbG93Rm9y
KToKKyAgICAgICAgKEpTQzo6bGlua0Zvcik6CisgICAgICAgIChKU0M6OmxpbmtDbG9zdXJlQ2Fs
bCk6CisgICAgICAgICogaml0L1JlcGF0Y2guaDoKKyAgICAgICAgKiBqaXQvU3BlY2lhbGl6ZWRU
aHVua0pJVC5oOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRodW5rSklUOjpTcGVjaWFsaXpl
ZFRodW5rSklUKToKKyAgICAgICAgKEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmV0dXJuSlNW
YWx1ZSk6CisgICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OnJldHVybkRvdWJsZSk6
CisgICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OnJldHVybkludDMyKToKKyAgICAg
ICAgKEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmV0dXJuSlNDZWxsKToKKyAgICAgICAgKiBq
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcDoKKyAgICAgICAgKEpTQzo6dGhyb3dFeGNlcHRpb25Gcm9t
Q2FsbFNsb3dQYXRoR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6c2xvd1BhdGhGb3IpOgorICAg
ICAgICAoSlNDOjpsaW5rRm9yVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpsaW5rQ2Fs
bFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bGlua0NvbnN0cnVjdFRodW5rR2VuZXJh
dG9yKToKKyAgICAgICAgKEpTQzo6bGlua0NhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJh
dG9yKToKKyAgICAgICAgKEpTQzo6bGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtH
ZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpsaW5rQ2xvc3VyZUNhbGxGb3JUaHVua0dlbmVyYXRv
cik6CisgICAgICAgIChKU0M6OmxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKToKKyAgICAg
ICAgKEpTQzo6bGlua0Nsb3N1cmVDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OnZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6
OnZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjp2aXJ0dWFsQ29uc3Ry
dWN0VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjp2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2
ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjp2aXJ0dWFsQ29uc3RydWN0VGhh
dFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6Om5hdGl2ZUZvckdl
bmVyYXRvcik6CisgICAgICAgIChKU0M6Om5hdGl2ZVRhaWxDYWxsR2VuZXJhdG9yKToKKyAgICAg
ICAgKEpTQzo6YXJpdHlGaXh1cCk6CisgICAgICAgIChKU0M6OmNoYXJDb2RlQXRUaHVua0dlbmVy
YXRvcik6CisgICAgICAgIChKU0M6OmNoYXJBdFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpT
Qzo6ZnJvbUNoYXJDb2RlVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpzcXJ0VGh1bmtH
ZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpmbG9vclRodW5rR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6Y2VpbFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6cm91bmRUaHVua0dlbmVy
YXRvcik6CisgICAgICAgIChKU0M6OmV4cFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6
bG9nVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjphYnNUaHVua0dlbmVyYXRvcik6Cisg
ICAgICAgIChKU0M6OnBvd1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6aW11bFRodW5r
R2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6YXJyYXlJdGVyYXRvck5leHRUaHVua0dlbmVyYXRv
cik6CisgICAgICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5oOgorICAgICAgICAoSlNDOjpsaW5r
VGh1bmtHZW5lcmF0b3JGb3IpOgorICAgICAgICAoSlNDOjpsaW5rQ2xvc3VyZUNhbGxUaHVua0dl
bmVyYXRvckZvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxUaHVua0dlbmVyYXRvckZvcik6Cisg
ICAgICAgICogbGxpbnQvTExJbnRDTG9vcC5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpDTG9v
cDo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogbGxpbnQvTExJbnRDTG9vcC5oOgorICAgICAgICAq
IGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpEYXRhOjpwZXJmb3Jt
QXNzZXJ0aW9ucyk6CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcDoKKyAgICAg
ICAgKEpTQzo6TExJbnQ6OnNldEZ1bmN0aW9uRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxM
SW50OjpzZXRFdmFsRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRQcm9ncmFt
RW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpmcmFtZVJlZ2lzdGVyQ291bnRGb3Ip
OgorICAgICAgICAqIGxsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHA6CisgICAgICAgICog
bGxpbnQvTExJbnRPcGNvZGUuaDoKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6
CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgIChK
U0M6OkxMSW50OjplbnRyeU9TUik6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRVcENhbGwpOgor
ICAgICAgICAoSlNDOjpMTEludDo6bGxpbnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IpOgor
ICAgICAgICAoSlNDOjpMTEludDo6bGxpbnRfc3RhY2tfY2hlY2tfYXRfdm1fZW50cnkpOgorICAg
ICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTExJbnRUaHVu
a3MuY3BwOgorICAgICAgICAoSlNDOjpjYWxsVG9KYXZhU2NyaXB0KToKKyAgICAgICAgKEpTQzo6
Y2FsbFRvTmF0aXZlRnVuY3Rpb24pOgorICAgICAgICAqIGxsaW50L0xMSW50VGh1bmtzLmg6Cisg
ICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9w
ZXJhdG9yIEV4ZWNTdGF0ZSopOgorICAgICAgICAoSlNDOjpDTG9vcFJlZ2lzdGVyOjpvcGVyYXRv
ciBJbnN0cnVjdGlvbiopOgorICAgICAgICAoSlNDOjpDTG9vcFJlZ2lzdGVyOjpvcGVyYXRvciBW
TSopOgorICAgICAgICAoSlNDOjpDTG9vcFJlZ2lzdGVyOjpvcGVyYXRvciBQcm90b0NhbGxGcmFt
ZSopOgorICAgICAgICAoSlNDOjpDTG9vcFJlZ2lzdGVyOjpvcGVyYXRvciBSZWdpc3RlciopOgor
ICAgICAgICAoSlNDOjpDTG9vcDo6ZXhlY3V0ZSk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVy
NjQuYXNtOgorICAgICAgICAqIGxsdm0vbGlicmFyeS9MTFZNRXhwb3J0cy5jcHA6CisgICAgICAg
IChpbml0aWFsaXplQW5kR2V0SlNDTExWTUFQSSk6CisgICAgICAgICogb2ZmbGluZWFzbS9hcm0u
cmI6CisgICAgICAgICogb2ZmbGluZWFzbS9hcm02NC5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2Nsb29wLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAg
ICAqIG9mZmxpbmVhc20veDg2LnJiOgorICAgICAgICAqIHBhcnNlci9QYXJzZXJFcnJvci5oOgor
ICAgICAgICAoSlNDOjpQYXJzZXJFcnJvcjo6dG9FcnJvck9iamVjdCk6CisgICAgICAgICogcHJv
ZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OlByb2ZpbGVyOjpD
b21waWxhdGlvbjo6YWRkRGVzY3JpcHRpb24pOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVy
Q29tcGlsYXRpb24uaDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2lu
ZC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIHByb2ZpbGVy
L1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmg6CisgICAgICAgICogcnVudGltZS9Bcml0eUNoZWNr
TW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHA6Cisg
ICAgICAgIChKU0M6OnNldHVwQXJpdHlDaGVja0RhdGEpOgorICAgICAgICAoSlNDOjpTTE9XX1BB
VEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAgICAgICAg
KEpTQzo6Q29tbW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKToKKyAgICAgICAgKiBydW50aW1l
L0Vycm9ySGFuZGxpbmdTY29wZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpFcnJvckhhbmRs
aW5nU2NvcGU6OkVycm9ySGFuZGxpbmdTY29wZSk6CisgICAgICAgIChKU0M6OkVycm9ySGFuZGxp
bmdTY29wZTo6fkVycm9ySGFuZGxpbmdTY29wZSk6CisgICAgICAgICogcnVudGltZS9FcnJvckhh
bmRsaW5nU2NvcGUuaDogQWRkZWQuCisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJz
LmNwcDoKKyAgICAgICAgKEpTQzo6dGhyb3dTdGFja092ZXJmbG93RXJyb3IpOgorICAgICAgICAo
SlNDOjp0aHJvd1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24pOgorICAgICAgICAqIHJ1bnRp
bWUvRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6Omluc3Rh
bGxDb2RlKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmR1bXApOgorICAgICAgICAq
IHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQmFzZTo6ZW50
cnlwb2ludEZvcik6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVCYXNlOjpvZmZzZXRPZkpJVENv
ZGVXaXRoQXJpdHlDaGVja0Zvcik6CisgICAgICAgIChKU0M6Ok5hdGl2ZUV4ZWN1dGFibGU6OmNy
ZWF0ZSk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUV4ZWN1dGFibGU6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTTG9j
ay5jcHA6CisgICAgICAgIChKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzOjpEcm9wQWxsTG9ja3Mp
OgorICAgICAgICAoSlNDOjpKU0xvY2s6OkRyb3BBbGxMb2Nrczo6fkRyb3BBbGxMb2Nrcyk6Cisg
ICAgICAgICogcnVudGltZS9KU0xvY2suaDoKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3Qu
Y3BwOgorICAgICAgICAoSlNDOjpXYWxrZXI6OndhbGspOgorICAgICAgICAqIHJ1bnRpbWUvT3B0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6OnJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMpOgorICAg
ICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplKToKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6
c2V0T3B0aW9uKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKiBydW50
aW1lL1JlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBydW50aW1l
L1N0YWNrQWxpZ25tZW50Lmg6CisgICAgICAgIChKU0M6OnJvdW5kQXJndW1lbnRDb3VudFRvQWxp
Z25GcmFtZSk6CisgICAgICAgIChKU0M6OnJvdW5kTG9jYWxSZWdpc3RlckNvdW50Rm9yRnJhbWVQ
b2ludGVyT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6bG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMp
OgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHA6CisgICAgICAg
IChKU0M6OlN0cmluZ1JlY3Vyc2lvbkNoZWNrZXI6OnRocm93U3RhY2tPdmVyZmxvd0Vycm9yKToK
KyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZTo6ZHVtcCk6CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpW
TSk6CisgICAgICAgIChKU0M6OmNsZWFuV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpWTTo6flZN
KToKKyAgICAgICAgKEpTQzo6Vk06OmdldEhvc3RGdW5jdGlvbik6CisgICAgICAgIChKU0M6OnBy
ZXBhcmVUb0Rpc2NhcmRDb2RlRm9yKToKKyAgICAgICAgKEpTQzo6Vk06OnByZXBhcmVUb0Rpc2Nh
cmRDb2RlKToKKyAgICAgICAgKEpTQzo6Vk06OnRocm93RXhjZXB0aW9uKToKKyAgICAgICAgKEpT
Qzo6Vk06OnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZSk6CisgICAgICAgIChK
U0M6OmxvZ1Nhbml0aXplU3RhY2spOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAg
KEpTQzo6Vk06OnJlc2VydmVkWm9uZVNpemUpOgorICAgICAgICAoSlNDOjpWTTo6bGFzdFN0YWNr
VG9wKToKKyAgICAgICAgKEpTQzo6Vk06OnNldExhc3RTdGFja1RvcCk6CisgICAgICAgIChKU0M6
OlZNOjpzY3JhdGNoQnVmZmVyRm9yU2l6ZSk6CisgICAgICAgIChKU0M6OlZNOjpzZXRTdGFja0xp
bWl0KToKKyAgICAgICAgKEpTQzo6c2FuaXRpemVTdGFja0ZvclZNKToKKyAgICAgICAgKiBydW50
aW1lL1ZNRW50cnlTY29wZS5jcHA6CisgICAgICAgIChKU0M6OlZNRW50cnlTY29wZTo6Vk1FbnRy
eVNjb3BlKToKKyAgICAgICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjp+Vk1FbnRyeVNjb3BlKToKKyAg
ICAgICAgKiBydW50aW1lL1ZNRW50cnlTY29wZS5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9h
ZGQtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvYWRkLWludDUyLWNvbnN0YW50LW92ZXJmbG93LXJlY292
ZXJ5LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Fk
ZC1pbnQ1Mi1sYXJnZS1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qczogQWRkZWQuCisgICAg
ICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9hZGQtb3ZlcmZsb3ctcmVjb3Zlcnku
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvYWRkLXNt
YWxsLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2FycmF5LXB1c2guanM6IEFkZGVkLgorICAgICAgICAo
Zm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZW1wdHktZnVuY3Rpb24uanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQzMi10
by1kb3VibGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvZXhpdC1hZnRlci1pbnQ1Mi10by1kb3VibGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQ1Mi10by12YWx1ZS5qczogQWRk
ZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAobWFrZVdlaXJkT2JqZWN0KToKKyAgICAgICAg
KiB0ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1sbHZtLWZvbGRzLWxhcmdlLWludC1jb25zdGFudC5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9leGl0LWZy
b20tZnRsLXdpdGgtYXJpdHktY2hlY2stZmFpbC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgor
ICAgICAgICAoYmFyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWFyaXRoY29zLmpzOiBB
ZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNp
bi5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwt
YXJpdGhzcXJ0LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL2Z0bC1wdXRieWlkLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLXB1
dGJ5aWRkaXJlY3QuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKG1ha2VXaXRoR2V0dGVyLnJldHVy
bik6CisgICAgICAgIChtYWtlV2l0aEdldHRlcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNv
ZGUtdGhhdC1kb2VzLW5vdC1leGl0LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAg
IChtYWtlV2l0aEdldHRlci5yZXR1cm4pOgorICAgICAgICAobWFrZVdpdGhHZXR0ZXIpOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVjdGVkLWdldHRl
ci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAg
ICAgIChtYWtlV2l0aEdldHRlci5yZXR1cm4pOgorICAgICAgICAobWFrZVdpdGhHZXR0ZXIpOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9pYy10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpz
OiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2lubGluZS1j
YWxsLXZhcmFyZ3MtYW5kLWNhbGwuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KGJhcik6CisgICAgICAgIChiYXopOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbmxpbmUtY2Fs
bC12YXJhcmdzLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAg
ICAgICAoYmF6KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvaW5saW5lLWNsb3N1cmUtY2FsbC5q
czogQWRkZWQuCisgICAgICAgIChiYXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbnQxNi1w
dXQtYnktdmFsLWluLWFuZC1vdXQtb2YtYm91bmRzLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZh
bC1pbi1ib3VuZHMtdGhlbi1leGl0LW91dC1vZi1ib3VuZHMuanM6IEFkZGVkLgorICAgICAgICAo
Zm9vKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbnQxNi1wdXQt
YnktdmFsLW91dC1vZi1ib3VuZHMtYm91bmRzLXRoZW4tZG8taW4tYm91bmRzLmpzOiBBZGRlZC4K
KyAgICAgICAgKGZvbyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
aW52YWxpZGF0aW9uLXBvaW50LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChU
aGluZ3kpOgorICAgICAgICAoVGhpbmd5LnByb3RvdHlwZS5mKToKKyAgICAgICAgKHBvc3NpYmx5
RG9CYWRUaGluZ3MuVGhpbmd5LnByb3RvdHlwZS5mKToKKyAgICAgICAgKHBvc3NpYmx5RG9CYWRU
aGluZ3MpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYWtlLXJvcGUtMi5qczogQWRkZWQuCisg
ICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYWtlLXJvcGUtMy5qczogQWRk
ZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXctYXJyYXktc3Rv
cmFnZS1hcnJheS13aXRoLXNpemUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXctYXJyYXktd2l0aC1zaXplLXdpdGgt
YmFkLXRpbWUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvbmV3LWNvbnRpZ3VvdXMtYXJyYXktd2l0aC1zaXplLmpzOiBBZGRlZC4KKyAgICAgICAgKGZv
byk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvbmV3LWRvdWJsZS1h
cnJheS13aXRoLXNpemUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXctaW50MzItYXJyYXktd2l0aC1zaXplLmpzOiBB
ZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3MvbmV3LXVuZGVjaWRlZC1hcnJheS13aXRoLXNpemUuanM6IEFkZGVkLgorICAgICAgICAo
Zm9vKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wdXQtYnktaWQt
dGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9yZWN1cnNlLWluZmluaXRlbHktb24tZ2V0dGVyLmpzOiBB
ZGRlZC4KKyAgICAgICAgKC52YXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9yZXBlYXRlZC1h
cml0eS1jaGVjay1mYWlsLmpzOiBBZGRlZC4KKyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL3J1bnRpbWUtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
c2ltcGxlLXBvbHl2YXJpYW50LWNhbGwtaW5saW5pbmctZXhhbXBsZS5qczogQWRkZWQuCisgICAg
ICAgIChmb28pOgorICAgICAgICAoZnV6eik6CisgICAgICAgIChiYXIpOgorICAgICAgICAoYmF6
MSk6CisgICAgICAgIChiYXoyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2
YXJpYW50LWdldC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZv
byk6CisgICAgICAgIChmdXp6KToKKyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1wdXQtYnktaWQtaW5saW5pbmctZXhhbXBsZS5qczogQWRk
ZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoZnV6eik6CisgICAgICAgIChiYXIpOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy90aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy90by1zdHJpbmctb24tb2JqZWN0LW9yLXN0cmluZy5qczogQWRkZWQuCisgICAgICAgIChGb28p
OgorICAgICAgICAoRm9vLnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChmb28pOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LmpzOiBBZGRlZC4KKyAgICAg
ICAgKEZvbyk6CisgICAgICAgIChGb28ucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKGZv
byk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb2JqZWN0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3RvLXN0cmlu
Zy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC10aGVuLW9iamVjdC5qczogQWRkZWQuCisgICAg
ICAgIChmb28pOgorICAgICAgICAoRm9vKToKKyAgICAgICAgKEZvby5wcm90b3R5cGUudG9TdHJp
bmcpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmlu
Zy1vYmplY3QuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvdG8tc3RyaW5nLW9uLXZhbHVlLW9yLXN0cmluZy5qczogQWRkZWQuCisgICAgICAgIChmb28p
OgorICAgICAgICAqIHRlc3RzL3N0cmVzcy90by1zdHJpbmctb24tdmFsdWUuanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKwogMjAxNC0wMS0yNyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgogCiAgICAgICAgIC1bSlNDb250ZXh0IGV2YWx1dGVTY3JpcHQ6XSBjYWxscyBK
U0V2YWx1dGVTY3JpcHQgd2l0aCBzdGFydGluZ0xpbmVOdW1iZXIgMCwgbGF0ZXIgaW50ZXJwcmV0
ZWQgYXMgYSBvbmVCYXNlZEludApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlZDg2NGI3M2NlZmY0YjQ1YzAxZmZhY2VlNjI4MTZk
MzBlNmNhNTE1Li4wZmM0NDk5NjUxMWIxNzU1NDcwOWVhNjBlN2Y3ZmVjOGJhZjI2ZGMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDE0LTAxLTI4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVy
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5jaAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzYzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvQmFnVG9IYXNo
TWFwLmg6CisgICAgICAgIChXVEY6OnRvSGFzaE1hcCk6CisgICAgICAgICogd3RmL1BsYXRmb3Jt
Lmg6CisgICAgICAgICogd3RmL1N0YWNrQm91bmRzLmg6CisgICAgICAgIChXVEY6OlN0YWNrQm91
bmRzOjpyZWN1cnNpb25MaW1pdCk6CisKIDIwMTQtMDEtMjcgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJDb3JlOiBFbmFibGUgLVdpbXBsaWNpdC1m
YWxsdGhyb3VnaCBhbmQgYWRkIEZBTExUSFJPVUdIIGFubm90YXRpb24gd2hlcmUgbmVlZGVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNGFkYmNhZjVlYzkwZTNlNmMxZjUzNDRiOGE3NTFhNzA5MWMwZDZlNi4uM2Nm
YzJmZTY0MWI5Mjk3MmI3OTVjZWEwOTg2Nzk2ZTZhZmI5MjlhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDE0LTAxLTI4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5jaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzYzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISku
CisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0
aWxpdGllcy5oOgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHRC
cmVha3BvaW50Lmg6CisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1Njcmlw
dERlYnVnTGlzdGVuZXIuaDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0Vy
cm9ySGFuZGxpbmdTY29wZS5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy95
YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmg6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbik6CisKIDIwMTQtMDEtMjggIE1hcmsgUm93ZSAgPG1y
b3dlQGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTI3NzY3PiBE
aXNhYmxlIHNvbWUgZGVwcmVjYXRpb24gd2FybmluZ3MgdG8gZml4IHRoZSBidWlsZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmNDJhMzlkYWZkOTNjZTQwYjJkZDdhZTY4
ZWZmMDc1NWZjMTQzOGQ4Li43OGNlYjE4NDBhNTY3NGQxYTkyZjRkZjVlZmZiZjNjYThiNGE0MWJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zNDAsNiArMzQwLDcgQEAg
c2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1lL0R1bXBDb250ZXh0LmNwcAog
ICAgIHJ1bnRpbWUvRXJyb3IuY3BwCiAgICAgcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAor
ICAgIHJ1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmNwcAogICAgIHJ1bnRpbWUvRXJyb3JJbnN0
YW5jZS5jcHAKICAgICBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggZDA2MGI2YThlYTM3Y2VlMjc5MTQ3ZjMwMzk2NTc3MmQwYmQyZjY0Ny4uYWYxZmY4
YTE5YWJhYWY0YWE0MDBmMjA4ZDE1OWI0OTRlYTJmZTg3NSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTkxLDYgKzkxLDcgQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbi5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZDb21tb24uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL1JlcGF0Y2hCdWZmZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9TSDRBc3NlbWJsZXIuaCBcCkBAIC05MDQsNiArOTA1LDggQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1
Y3Rvci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAgXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JJbnN0YW5jZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvclByb3RvdHlwZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLm9yZGVyIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lm9yZGVyCmluZGV4IDVkMzQyMThkNjE5NWEwZjExODQ5NmUzOTA2ZGZjYTY5MjNmNmY0OGQuLjJm
MjI1YjUyOGRjOWQwOWM0YTcyOWE1YWRiM2IzYzZlODJmN2NmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKQEAgLTQ5ODEsNyArNDk4MSw2IEBAIF9sbGlu
dF9zbG93X3BhdGhfaGFuZGxlX3dhdGNoZG9nX3RpbWVyCiBfbGxpbnRfc2xvd19wYXRoX2RlYnVn
CiBfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsCiBfbGxpbnRfc2xvd19wYXRoX3By
b2ZpbGVfZGlkX2NhbGwKLV9sbGludF90aHJvd19mcm9tX25hdGl2ZV9jYWxsCiBfbGxpbnRfYmVn
aW4KIF9sbGludF9wcm9ncmFtX3Byb2xvZ3VlCiBfbGxpbnRfZXZhbF9wcm9sb2d1ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNj
cmlwdENvcmUudmN4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKaW5kZXggY2Y0YzJlYzI0M2I1ODQ4ZGQxYmEz
MDg2OWZlN2RmNGU3OGEyOTczNS4uM2NkNmVhOTBhMTFhN2ViZmUzYTRlZWRhZTNkMzQ4MDdjMjdj
ZGNiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC01ODksNiAr
NTg5LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRHVtcENvbnRleHQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvci5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yQ29uc3RydWN0b3IuY3Bw
IiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckhhbmRsaW5nU2Nv
cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckluc3Rh
bmNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JQcm90
b3R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFeGNlcHRp
b25IZWxwZXJzLmNwcCIgLz4KQEAgLTc5MSw2ICs3OTIsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cYXNzZW1ibGVyXE1hY3JvQXNzZW1ibGVyWDg2LmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxNYWNyb0Fzc2VtYmxlclg4Nl82NC5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsLmggLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxl
clxSZXBhdGNoQnVmZmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJs
ZXJcWDg2QXNzZW1ibGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5n
c1xTY3JpcHRGdW5jdGlvbkNhbGwuaCIgLz4KQEAgLTEyMDQsNiArMTIwNiw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXER1bXBDb250ZXh0LmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxydW50aW1lXEVycm9yQ29uc3RydWN0b3IuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JQcm90b3R5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXhjZXB0aW9uSGVscGVycy5oIiAvPgpAQCAtMTQwNiwyMiAr
MTQwOSw2IEBACiAgICAgICA8RmlsZVR5cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPgogICAgIDwvTm9u
ZT4KICAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPE1BU00gSW5jbHVkZT0iLi5c
aml0XEpJVFN0dWJzTVNWQzY0LmFzbSI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9NQVNNPgotICA8L0l0ZW1Hcm91cD4KICAgPEltcG9y
dCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KICAg
PEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVkNUYXJnZXRzUGF0aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdldHMiIC8+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5k
ZXggZTgxOWNlZDg4MmVhZmM4MDZkYzdjYTMyZGRhMDAwMDUyNzNiM2EwOC4uODdlMTJhNDcxNThi
YjYyMjRkNDlmZDYyMjk3OGM0YTljNDQzNWE2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNTM3LDYgKzUzNyw5IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yQ29uc3RydWN0b3IuY3BwIj4KICAgICAg
IDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUuY3BwIj4KKyAgICAgIDxG
aWx0ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckluc3RhbmNlLmNwcCI+CiAgICAgICA8RmlsdGVyPnJ1
bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTE0NDIsNiArMTQ0NSw5IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWFjcm9Bc3NlbWJsZXJYODZfNjQu
aCI+CiAgICAgICA8RmlsdGVyPmFzc2VtYmxlcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsLmgiPgorICAgICAgPEZpbHRlcj5hc3NlbWJsZXI8L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxSZXBhdGNoQnVm
ZmVyLmgiPgogICAgICAgPEZpbHRlcj5hc3NlbWJsZXI8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVk
ZT4KQEAgLTIxMjksNiArMjEzNSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50
aW1lXEVycm9yQ29uc3RydWN0b3IuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4K
ICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJy
b3JIYW5kbGluZ1Njb3BlLmgiPgorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CisgICAg
PC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySW5z
dGFuY2UuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVk
ZT4KQEAgLTMyOTUsOSArMzMwNCw0IEBACiAgICAgPE5vbmUgSW5jbHVkZT0iSmF2YVNjcmlwdENv
cmVQb3N0QnVpbGQuY21kIiAvPgogICAgIDxOb25lIEluY2x1ZGU9IkphdmFTY3JpcHRDb3JlUHJl
QnVpbGQuY21kIiAvPgogICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8TUFTTSBJ
bmNsdWRlPSIuLlxqaXRcSklUU3R1YnNNU1ZDNjQuYXNtIj4KLSAgICAgIDxGaWx0ZXI+aml0PC9G
aWx0ZXI+Ci0gICAgPC9NQVNNPgotICA8L0l0ZW1Hcm91cD4KIDwvUHJvamVjdD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDcwNzNkNzhmM2Y1Mzk5N2RhNmNiNWFjZDJjMzhjZjlm
MDYwZDYyOC4uMjdlODc2NzQwYTk2NGIwMjg5ODRlZDY3ODE2MTgyMGE1ZGNmNzdjNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIxMCw2ICsyMTAsNyBAQAogCQkwRjM4QjAxOTE3
Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzhCMDE1MTdDRkU3NTUwMEIxNDREMyAv
KiBERkdDb21waWxhdGlvbk1vZGUuY3BwICovOyB9OwogCQkwRjM4QjAxQTE3Q0ZFNzU1MDBCMTQ0
RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjM4QjAxNjE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRp
b25Nb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEYzQUM3NTIxODNFQTEwNDAwMzIwMjlGIC8qIFN0YWNrQWxpZ25tZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNBQzc1MTE4M0VBMTA0MDAz
MjAyOUYgLyogU3RhY2tBbGlnbm1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkwRjNBQzc1NDE4OEU1RUM4MDAzMjAyOUYgLyogRXhpdGluZ0pJ
VFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
M0FDNzUzMTg4RTVFQzgwMDMyMDI5RiAvKiBFeGl0aW5nSklUVHlwZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0IzQTFBMTUzRTY4RjIwMDNF
RDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0ExNzE1M0U2OEVGMDAzRUQwRkYgLyogREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwICovOyB9OwogCQkwRjNCM0ExQjE1M0U2OEY0MDAzRUQw
RkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0IzQTE4MTUzRTY4RUYwMDNFRDBGRiAvKiBERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGM0IzQTI3MTU0NEM5OTUwMDNFRDBGRiAvKiBERkdDRkdTaW1wbGlmaWNh
dGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGM0IzQTI0MTU0NEM5OTEwMDNFRDBGRiAvKiBERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNl
LmNwcCAqLzsgfTsKQEAgLTIzNiw2ICsyMzcsMTAgQEAKIAkJMEY0NjgwRDUxNEJCRDI0QjAwQkZF
MjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3MiAvKiBIb3N0Q2FsbFJl
dHVyblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEY0ODUzMjExODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMxRjE4Nzc1MDU2
MDA4M0I2ODcgLyogREZHQXJpdGhNb2RlLmNwcCAqLzsgfTsKIAkJMEY0ODUzMjIxODc3NTA1NjAw
ODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNDg1
MzI3MTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMyMzE4N0RGREVDMDA4
M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwICovOyB9OworCQkwRjQ4NTMyODE4N0RG
REVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzI0MTg3REZERUMwMDgzQjY4NyAvKiBG
VExBdmFpbGFibGVSZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTBGNDg1MzI5MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9w
Y29kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjQ4NTMyNTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwICovOyB9Owor
CQkwRjQ4NTMyQTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzI2MTg3REZERUMw
MDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3Vy
Y2VQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjQ5M0FGODE2RDBDQUQxMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovOyB9
OwogCQkwRjRCOTREQzE3QjlGMDc1MDBERDAzQTQgLyogVHlwZWRBcnJheUlubGluZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNEI5NERCMTdCOUYw
NzUwMEREMDNBNCAvKiBUeXBlZEFycmF5SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTU0MUIxMTYxM0MxRkIwMENFM0UyNSAvKiBT
cGVjaWFsUG9pbnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjU1NDFBRjE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwICov
OyB9OwpAQCAtMjQ4LDYgKzI1Myw4IEBACiAJCTBGNTZBMUQ1MTUwMDFDRjQwMDI5OTJCMSAvKiBF
eGVjdXRpb25Db3VudGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNTZBMUQ0MTUwMDFDRjIwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNw
cCAqLzsgfTsKIAkJMEY1NzJENEYxNjg3OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU3MkQ0RDE2
ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVBNTJEMDE3QURENzE3MDA4RUNCMkQgLyog
Q29weVRva2VuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjVBNTJDRjE3QURENzE3MDA4RUNCMkQgLyogQ29weVRva2VuLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY1QTYyODMxODhDOThENDAwNzJD
OURGIC8qIEZUTFZhbHVlUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY1QTYyODExODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2Uu
Y3BwICovOyB9OworCQkwRjVBNjI4NDE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1QTYyODIx
ODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVFRjkxRTE2ODc4RjdBMDAzRTVDMjUgLyog
SklUVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNUVGOTFCMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3MuY3BwICovOyB9OwogCQkw
RjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUgLyogSklUVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyog
SklUVGh1bmtzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEY1RjA4Q0YxNDZDNzYzMzAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUYwOENF
MTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI2OSw2ICsyNzYsMTggQEAK
IAkJMEY2NjZFQ0QxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRp
b25QaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2NjZFQ0IxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25Q
aGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGNjZFMTZCMTRERjNGMTYwMEI3QjJFNCAvKiBERkdBZGphY2VuY3lMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjY2RTE2ODE0REYzRjEzMDBC
N0IyRTQgLyogREZHQWRqYWNlbmN5TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGNjZFMTZDMTRERjNGMTYwMEI3QjJFNCAvKiBERkdFZGdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjY2RTE2
OTE0REYzRjEzMDBCN0IyRTQgLyogREZHRWRnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNkIxQ0I1MTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExK
U0NhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2QjFDQjMxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5jcHAgKi87IH07CisJCTBGNkIx
Q0I2MTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0I0MTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExK
U0NhbGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQkwRjZCMUNCOTE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0I3MTg2MTI0NEMwMDg0
NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGNkIxQ0JBMTg2MTI0NEMwMDg0NUQ5NyAvKiBSZWdpc3RlclBy
ZXNlcnZhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNkIxQ0I4MTg2MTI0NEMwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbk1v
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
RjZCMUNCRDE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2Vu
ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNkIxQ0JCMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJH
ZW5lcmF0b3IuY3BwICovOyB9OworCQkwRjZCMUNCRTE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCQzE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQzMxODYyQzQ3ODAwODQ1RDk3IC8qIEZU
TFJlZ2lzdGVyQXRPZmZzZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY2QjFDQkYxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZz
ZXQuY3BwICovOyB9OworCQkwRjZCMUNDNDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJB
dE9mZnNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2QjFDQzAxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjZCMUNDNTE4NjJD
NDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNDMTE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53
aW5kSW5mby5jcHAgKi87IH07CisJCTBGNkIxQ0M2MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndp
bmRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjZCMUNDMjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNkIxQ0M5MTg2NDFERjgwMDg0
NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNDNzE4NjQxREY4MDA4NDVEOTcgLyog
QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwICovOyB9OworCQkwRjZCMUNDQTE4NjQxREY4
MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0M4MTg2NDFERjgwMDg0NUQ5NyAv
KiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNzAyNUE5MTcxNEIwRkEwMDM4MkMwRSAvKiBERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY3MDI1QTcxNzE0QjBGODAwMzgyQzBFIC8qIERGR09TUkV4aXRDb21w
aWxlckNvbW1vbi5jcHAgKi87IH07CiAJCTBGNzAyNUFBMTcxNEIwRkMwMDM4MkMwRSAvKiBERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNzAyNUE4MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0Q29tcGls
ZXJDb21tb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjcxNENBNDE2RUE5MkYwMDBGM0VCRUIgLyogREZHQmFja3dhcmRzUHJvcGFnYXRpb25Q
aGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjcxNENBMTE2RUE5MkVEMDBGM0VCRUIgLyogREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5j
cHAgKi87IH07CkBAIC0xMzQ2LDYgKzEzNjUsOCBAQAogCQlGRTU5MzJBODE4M0M1QTI2MDBBMUVD
Q0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRTU5MzJBNjE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkVBMDg2MjAx
ODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFQTA4NjFFMTgyQjdBMDQwMEY2RDg1MSAvKiBCcmVha3Bv
aW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RkVBMDg2MjExODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVBMDg2MUYxODJCN0EwNDAw
RjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUZFQjU4QzE0MTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJv
ckhhbmRsaW5nU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkVCNThDMTIxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5j
cHAgKi87IH07CisJCUZFQjU4QzE1MTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2Nv
cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFQjU4
QzEzMTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQyODdCMjE1RUM5QTU3MDBE
QTgxNjEgLyogTExJbnRPcGNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFRDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFRDk0RjJF
MTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hk
b2cuY3BwICovOyB9OwogCQlGRUQ5NEYyRjE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDk0RjJDMTcx
RTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xNjA1LDYgKzE2MjYsNyBAQAogCQkwRjM4QjAxNTE3Q0ZF
NzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IERGR0NvbXBpbGF0aW9uTW9kZS5jcHA7IHBhdGggPSBkZmcvREZH
Q29tcGlsYXRpb25Nb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzOEIw
MTYxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uTW9kZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdDb21waWxhdGlvbk1vZGUuaDsgcGF0aCA9IGRmZy9ERkdD
b21waWxhdGlvbk1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzQUM3NTEx
ODNFQTEwNDAwMzIwMjlGIC8qIFN0YWNrQWxpZ25tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN0YWNrQWxpZ25tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTBGM0FDNzUzMTg4RTVFQzgwMDMyMDI5RiAvKiBFeGl0aW5nSklUVHlwZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGl0aW5nSklUVHlwZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjNCM0ExNzE1M0U2OEVGMDAzRUQwRkYgLyogREZHQ29uc3RhbnRG
b2xkaW5nUGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1Bo
YXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzQjNBMTgxNTNFNjhFRjAw
M0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmg7IHBhdGggPSBkZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzQjNB
MjQxNTQ0Qzk5MTAwM0VEMEZGIC8qIERGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFz
ZS5jcHA7IHBhdGggPSBkZmcvREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjMyLDYgKzE2NTQsMTAgQEAKIAkJMEY0NjgwRDExNEJC
QzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSG9zdENhbGxSZXR1cm5WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjQ4NTMxRjE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2RlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0FyaXRoTW9kZS5jcHA7IHBh
dGggPSBkZmcvREZHQXJpdGhNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBcml0aE1vZGUuaDsgcGF0aCA9IGRmZy9ERkdBcml0aE1v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0ODUzMjMxODdERkRFQzAwODNC
Njg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcDsgcGF0aCA9IGZ0bC9GVExBdmFp
bGFibGVSZWNvdmVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDg1MzI0
MTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBGVExBdmFpbGFibGVSZWNvdmVyeS5oOyBwYXRoID0gZnRsL0ZU
TEF2YWlsYWJsZVJlY292ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDg1
MzI1MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExSZWNvdmVyeU9wY29kZS5jcHA7IHBhdGggPSBm
dGwvRlRMUmVjb3ZlcnlPcGNvZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjQ4NTMyNjE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMUmVjb3ZlcnlPcGNvZGUuaDsgcGF0aCA9IGZ0bC9G
VExSZWNvdmVyeU9wY29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ5M0FG
ODE2RDBDQUQxMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjRCOTREQjE3QjlGMDc1MDBERDAzQTQgLyogVHlwZWRBcnJheUlubGlu
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwZWRBcnJheUlubGluZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NTQxQUYxNjEzQzFGQjAwQ0UzRTI1
IC8qIFNwZWNpYWxQb2ludGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNwZWNpYWxQb2ludGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2
NDQsNiArMTY3MCw4IEBACiAJCTBGNTZBMUQ0MTUwMDFDRjIwMDI5OTJCMSAvKiBFeGVjdXRpb25D
b3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4ZWN1dGlv
bkNvdW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU3MkQ0RDE2ODc5
RkRCMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVGh1bmtHZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY1QTUyQ0YxN0FERDcxNzAwOEVDQjJEIC8qIENvcHlUb2tlbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDb3B5VG9rZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEY1QTYyODExODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMVmFsdWVSYW5nZS5jcHA7IHBhdGggPSBm
dGwvRlRMVmFsdWVSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUE2
MjgyMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEZUTFZhbHVlUmFuZ2UuaDsgcGF0aCA9IGZ0bC9GVExWYWx1ZVJhbmdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUVGOTFCMTY4NzhGNzgwMDNFNUMy
NSAvKiBKSVRUaHVua3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SklUVGh1bmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RUY5MUMxNjg3
OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKSVRUaHVua3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RjA4Q0Ux
NDZDNzYyRjAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVW5jb25kaXRpb25hbEZpbmFsaXplci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTY2NSw2ICsxNjkzLDE4IEBACiAJCTBGNjY2RUNCMTgzNkIz
N0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBo
YXNlLmg7IHBhdGggPSBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNjZFMTY4MTRERjNGMTMwMEI3QjJFNCAvKiBE
RkdBZGphY2VuY3lMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0Fk
amFjZW5jeUxpc3QuaDsgcGF0aCA9IGRmZy9ERkdBZGphY2VuY3lMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGNjZFMTY5MTRERjNGMTMwMEI3QjJFNCAvKiBERkdFZGdlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0VkZ2UuaDsgcGF0aCA9IGRmZy9E
RkdFZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0IzMTg1RkM5RTkw
MDg0NUQ5NyAvKiBGVExKU0NhbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gRlRMSlNDYWxsLmNwcDsgcGF0aCA9IGZ0bC9GVExKU0NhbGwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCNDE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTEpTQ2FsbC5oOyBwYXRoID0g
ZnRsL0ZUTEpTQ2FsbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCNzE4
NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXJpdHlDaGVja01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEY2QjFDQjgxODYxMjQ0QzAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdpc3RlclByZXNlcnZhdGlvbk1v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQkIxODYxMjQ2QTAwODQ1
RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJH
ZW5lcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCQzE4NjEy
NDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCRjE4NjJD
NDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcDsgcGF0aCA9IGZ0bC9G
VExSZWdpc3RlckF0T2Zmc2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2
QjFDQzAxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMUmVnaXN0ZXJBdE9mZnNldC5oOyBwYXRoID0gZnRs
L0ZUTFJlZ2lzdGVyQXRPZmZzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2
QjFDQzExODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMVW53aW5kSW5mby5jcHA7IHBhdGggPSBmdGwvRlRM
VW53aW5kSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0MyMTg2
MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEZUTFVud2luZEluZm8uaDsgcGF0aCA9IGZ0bC9GVExVbndpbmRJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0M3MTg2NDFERjgwMDg0NUQ5NyAvKiBB
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGNkIxQ0M4MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjcw
MjVBNzE3MTRCMEY4MDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR09TUkV4aXRDb21waWxlckNvbW1v
bi5jcHA7IHBhdGggPSBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MDI1QTgxNzE0QjBGODAwMzgyQzBFIC8qIERGR09TUkV4
aXRDb21waWxlckNvbW1vbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uaDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21t
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MTRDQTExNkVBOTJFRDAwRjNF
QkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHA7IHBh
dGggPSBkZmcvREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMTE2LDYgKzIxNTYsNyBAQAogCQk2NTYwQTRDRjA0QjNCM0U3MDA4
QUU5NTIgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb3Jl
Rm91bmRhdGlvbi5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9D
b3JlRm91bmRhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJ
CTY1NjIxRTZCMDg5RTg1OTcwMDc2MEYzNSAvKiBQcm9wZXJ0eVNsb3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvcGVydHlTbG90
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk2NTYyMUU2
QzA4OUU4NTk3MDA3NjBGMzUgLyogUHJvcGVydHlTbG90LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3BlcnR5U2xvdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTY1ODYwMTc3MTg1QThGNUUwMDAzMEVF
RSAvKiBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2NTk4N0YyQzE2N0ZFODRCMDAzQzJGOEQgLyogREZHT1NSRXhp
dENvbXBpbGF0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdP
U1JFeGl0Q29tcGlsYXRpb25JbmZvLmg7IHBhdGggPSBkZmcvREZHT1NSRXhpdENvbXBpbGF0aW9u
SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTk4N0YyRjE2ODI4QTdFMDAz
QzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVbnVzZWRQb2ludGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1QzAyODRG
MTcxNzk1RTIwMDM1MUUzNSAvKiBBUk12N0Rpc2Fzc2VtYmxlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBUk12N0Rpc2Fzc2VtYmxlci5jcHA7IHBhdGggPSBkaXNh
c3NlbWJsZXIvQVJNdjdEaXNhc3NlbWJsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjc4Myw2ICsyODI0LDggQEAKIAkJRkU1OTMyQTYxODNDNUEyNjAwQTFFQ0NDIC8qIFZN
RW50cnlTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWTUVudHJ5U2Nv
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBMDg2MUUxODJCN0EwNDAwRjZE
ODUxIC8qIEJyZWFrcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnJl
YWtwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUEwODYxRjE4MkI3QTA0
MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERlYnVnZ2VyUHJpbWl0aXZlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGRUI1OEMxMjE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9ySGFuZGxpbmdTY29wZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFQjU4QzEzMTg3QjhCMTYwMDk4RUYw
QiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRXJyb3JIYW5kbGluZ1Njb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZF
RDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBMTEludE9wY29kZS5oOyBwYXRoID0gbGxpbnQvTExJbnRPcGNvZGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0
IC8qIFdhdGNoZG9nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdh
dGNoZG9nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEOTRGMkMxNzFFM0Uy
MzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdhdGNoZG9nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDAxLDYgKzMwNDQs
OCBAQAogCQkJCTBGRUEwQTE4MTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0cmFjdEhlYXAuaCAq
LywKIAkJCQkwRkVBMEExOTE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5jcHAgKi8sCiAJCQkJMEZFQTBBMUExNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaCAqLywKKwkJCQkwRjQ4NTMyMzE4N0RGREVDMDA4M0I2ODcgLyogRlRM
QXZhaWxhYmxlUmVjb3ZlcnkuY3BwICovLAorCQkJCTBGNDg1MzI0MTg3REZERUMwMDgzQjY4NyAv
KiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovLAogCQkJCTBGRUEwOUZFMTcwNTEzREIwMEJCNzIy
QyAvKiBGVExDYXBhYmlsaXRpZXMuY3BwICovLAogCQkJCTBGRUEwOUZGMTcwNTEzREIwMEJCNzIy
QyAvKiBGVExDYXBhYmlsaXRpZXMuaCAqLywKIAkJCQkwRkVBMEEyNTE3MDk2MjNCMDBCQjcyMkMg
LyogRlRMQ29tbW9uVmFsdWVzLmNwcCAqLywKQEAgLTMwMzEsNiArMzA3Niw4IEBACiAJCQkJMEZF
QTBBMDMxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTEpJVENvZGUuaCAqLywKIAkJCQlBNzhBOTc3RDE3
OTczOEQ1MDA5REY3NDQgLyogRlRMSklURmluYWxpemVyLmNwcCAqLywKIAkJCQlBNzhBOTc3RTE3
OTczOEQ1MDA5REY3NDQgLyogRlRMSklURmluYWxpemVyLmggKi8sCisJCQkJMEY2QjFDQjMxODVG
QzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5jcHAgKi8sCisJCQkJMEY2QjFDQjQxODVGQzlFOTAw
ODQ1RDk3IC8qIEZUTEpTQ2FsbC5oICovLAogCQkJCTBGOEYyQjkzMTcyRTA0OUUwMDdEQkRBNSAv
KiBGVExMaW5rLmNwcCAqLywKIAkJCQkwRjhGMkI5NDE3MkUwNDlFMDA3REJEQTUgLyogRlRMTGlu
ay5oICovLAogCQkJCTBGQ0VGQUREMTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAg
Ki8sCkBAIC0zMDQ3LDYgKzMwOTQsMTAgQEAKIAkJCQkwRjIzNUJDQTE3MTc4RTFDMDA2OTBDN0Yg
LyogRlRMT1NSRXhpdENvbXBpbGVyLmggKi8sCiAJCQkJMEZFQTBBMjkxNzA5NjI5NjAwQkI3MjJD
IC8qIEZUTE91dHB1dC5jcHAgKi8sCiAJCQkJMEZFQTBBMDYxNzA1MTNEQjAwQkI3MjJDIC8qIEZU
TE91dHB1dC5oICovLAorCQkJCTBGNDg1MzI1MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVy
eU9wY29kZS5jcHAgKi8sCisJCQkJMEY0ODUzMjYxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292
ZXJ5T3Bjb2RlLmggKi8sCisJCQkJMEY2QjFDQkYxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lz
dGVyQXRPZmZzZXQuY3BwICovLAorCQkJCTBGNkIxQ0MwMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExS
ZWdpc3RlckF0T2Zmc2V0LmggKi8sCiAJCQkJMEZDRUZBQTkxODA0QzEzRTAwNDcyQ0U0IC8qIEZU
TFNhdmVSZXN0b3JlLmNwcCAqLywKIAkJCQkwRkNFRkFBQTE4MDRDMTNFMDA0NzJDRTQgLyogRlRM
U2F2ZVJlc3RvcmUuaCAqLywKIAkJCQkwRjI1RjFBQTE4MTYzNUYzMDA1MjJGMzkgLyogRlRMU2xv
d1BhdGhDYWxsLmNwcCAqLywKQEAgLTMwNjEsOSArMzExMiwxMyBAQAogCQkJCTBGMjM1QkNCMTcx
NzhFMUMwMDY5MEM3RiAvKiBGVExUaHVua3MuY3BwICovLAogCQkJCTBGMjM1QkNDMTcxNzhFMUMw
MDY5MEM3RiAvKiBGVExUaHVua3MuaCAqLywKIAkJCQkwRkVBMEExQjE3MDhCMDA3MDBCQjcyMkMg
LyogRlRMVHlwZWRQb2ludGVyLmggKi8sCisJCQkJMEY2QjFDQzExODYyQzQ3ODAwODQ1RDk3IC8q
IEZUTFVud2luZEluZm8uY3BwICovLAorCQkJCTBGNkIxQ0MyMTg2MkM0NzgwMDg0NUQ5NyAvKiBG
VExVbndpbmRJbmZvLmggKi8sCiAJCQkJMEYyMzVCQ0QxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFZh
bHVlRm9ybWF0LmNwcCAqLywKIAkJCQkwRjIzNUJDRTE3MTc4RTFDMDA2OTBDN0YgLyogRlRMVmFs
dWVGb3JtYXQuaCAqLywKIAkJCQkwRkRCMkNDODE3M0RBNTFFMDA3QjNDMUIgLyogRlRMVmFsdWVG
cm9tQmxvY2suaCAqLywKKwkJCQkwRjVBNjI4MTE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVS
YW5nZS5jcHAgKi8sCisJCQkJMEY1QTYyODIxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFu
Z2UuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gZnRsOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTMxNTIsNiArMzIwNyw4IEBACiAJCTE0MjlEOTJDMEVEMjJENzAwMEI4OTYxOSAvKiBq
aXQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTBGNkIx
Q0M3MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgKi8s
CisJCQkJMEY2QjFDQzgxODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1
bmtzLmggKi8sCiAJCQkJMEYyNEU1M0IxN0VBOUY1OTAwQUJCMjE3IC8qIEFzc2VtYmx5SGVscGVy
cy5jcHAgKi8sCiAJCQkJMEYyNEU1M0MxN0VBOUY1OTAwQUJCMjE3IC8qIEFzc2VtYmx5SGVscGVy
cy5oICovLAogCQkJCTBGMjRFNTNEMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2FsbEhlbHBlcnMuaCAq
LywKQEAgLTMyMDUsNiArMzI2Miw4IEBACiAJCQkJMEZDNzEyRTExN0NEODc4RjAwOENDOTNDIC8q
IEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmggKi8sCiAJCQkJQTc2RjU0QTIx
M0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oICovLAogCQkJCUE3NkM1MTc0MTE4
Mjc0OEQwMDcxNUIwNSAvKiBKU0ludGVyZmFjZUpJVC5oICovLAorCQkJCTBGNkIxQ0JCMTg2MTI0
NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwICov
LAorCQkJCTBGNkIxQ0JDMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldy
YXBwZXJHZW5lcmF0b3IuaCAqLywKIAkJCQkwRkMzMTQxNDE4MTQ2RDcwMDAwMzMyMzIgLyogUmVn
aXN0ZXJTZXQuY3BwICovLAogCQkJCTBGQzMxNDEwMTgxNDU1OTEwMDAzMzIzMiAvKiBSZWdpc3Rl
clNldC5oICovLAogCQkJCTBGMjRFNTQ5MTdFRTI3NDkwMEFCQjIxNyAvKiBSZXBhdGNoLmNwcCAq
LywKQEAgLTM1NTQsNiArMzYxMyw3IEBACiAJCQkJQTc2MTQwQzgxODI5ODJDQjAwNzUwNjI0IC8q
IEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaCAqLywKIAkJCQlBNzYxNDBDOTE4Mjk4MkNC
MDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwICovLAogCQkJCUE3NjE0
MENBMTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5oICovLAor
CQkJCTBGNkIxQ0I3MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oICovLAogCQkJ
CUE3QThBRjI1MTdBREI1RjIwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlci5jcHAgKi8sCiAJCQkJQTdB
OEFGMjYxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyLmggKi8sCiAJCQkJMEZGQzk5RDIx
ODRFRTMxODAwOUMxMEFCIC8qIEFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hwb2ludC5jcHAgKi8s
CkBAIC0zNjE4LDYgKzM2NzgsOCBAQAogCQkJCUJDMzA0NjA2MEUxRjQ5N0YwMDMyMzJDRiAvKiBF
cnJvci5oICovLAogCQkJCUJDMDJFOTA0MEUxODM5REIwMDBGOTI5NyAvKiBFcnJvckNvbnN0cnVj
dG9yLmNwcCAqLywKIAkJCQlCQzAyRTkwNTBFMTgzOURCMDAwRjkyOTcgLyogRXJyb3JDb25zdHJ1
Y3Rvci5oICovLAorCQkJCUZFQjU4QzEyMTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5n
U2NvcGUuY3BwICovLAorCQkJCUZFQjU4QzEzMTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRs
aW5nU2NvcGUuaCAqLywKIAkJCQlCQzAyRTk4QTBFMTgzRTM4MDAwRjkyOTcgLyogRXJyb3JJbnN0
YW5jZS5jcHAgKi8sCiAJCQkJQkMwMkU5OEIwRTE4M0UzODAwMEY5Mjk3IC8qIEVycm9ySW5zdGFu
Y2UuaCAqLywKIAkJCQlCQzAyRTkwNjBFMTgzOURCMDAwRjkyOTcgLyogRXJyb3JQcm90b3R5cGUu
Y3BwICovLApAQCAtMzg1MSw2ICszOTEzLDcgQEAKIAkJCQlGNjkyQTg3QzAyNTU1OTdEMDFGRjYw
RjcgLyogUmVnRXhwT2JqZWN0LmggKi8sCiAJCQkJQkNEMjAyQkYwRTE3MDZBNzAwMkM3RTgyIC8q
IFJlZ0V4cFByb3RvdHlwZS5jcHAgKi8sCiAJCQkJQkNEMjAyQzAwRTE3MDZBNzAwMkM3RTgyIC8q
IFJlZ0V4cFByb3RvdHlwZS5oICovLAorCQkJCTBGNkIxQ0I4MTg2MTI0NEMwMDg0NUQ5NyAvKiBS
ZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCAqLywKIAkJCQkwRkI3RjM5MTE1RUQ4RTM4MDBGMTY3
QjIgLyogUmVqZWN0LmggKi8sCiAJCQkJMEY3NzAwOTExNDAyRkYyODAwNzhFQjM5IC8qIFNhbXBs
aW5nQ291bnRlci5jcHAgKi8sCiAJCQkJMEY3NzAwOEUxNDAyRkRENjAwNzhFQjM5IC8qIFNhbXBs
aW5nQ291bnRlci5oICovLApAQCAtMzk2NSw2ICs0MDI4LDggQEAKIAkJODZFQzlEQjMxMzI4REY0
NDAwMkIyQUQ3IC8qIGRmZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNp
b25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3Jl
QmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJCUE3N0E0MjM2MTdBMEJCRkQwMEE4REI4MSAv
KiBERkdBYnN0cmFjdEhlYXAuY3BwICovLAogCQkJCUE3N0E0MjM3MTdBMEJCRkQwMEE4REI4MSAv
KiBERkdBYnN0cmFjdEhlYXAuaCAqLywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4MDA2QkE1NTQgLyog
REZHQWJzdHJhY3RJbnRlcnByZXRlci5oICovLApAQCAtNDE1Myw4ICs0MjE4LDYgQEAKIAkJCQkw
RkMyMENCODE4NTU2QTM1MDBDOUU5NTQgLyogREZHU1NBTG93ZXJpbmdQaGFzZS5oICovLAogCQkJ
CTBGOUZCNEYyMTdGQ0I5MTcwMENCNjdGOCAvKiBERkdTdGFja0xheW91dFBoYXNlLmNwcCAqLywK
IAkJCQkwRjlGQjRGMzE3RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5oICov
LAotCQkJCTJBQ0NGM0RDMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJhcnJpZXJFbGlzaW9u
UGhhc2UuY3BwICovLAotCQkJCTJBQ0NGM0REMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJh
cnJpZXJFbGlzaW9uUGhhc2UuaCAqLywKIAkJCQkwRkMyMENCMzE4NTJFMkM2MDBDOUU5NTQgLyog
REZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAgKi8sCiAJCQkJMEZDMjBDQjQxODUyRTJDNjAw
QzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuaCAqLywKIAkJCQkwRjYzOTQ3NjE1
RENFMzQ3MDA2QTU5N0MgLyogREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oICovLApAQCAtNDI1
MCw2ICs0MzEzLDcgQEAKIAkJOTY4OENCMTIwRUQxMkI0RTAwMUQ2NDlGIC8qIGFzc2VtYmxlciAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNjU4NjAxNzcx
ODVBOEY1RTAwMDMwRUVFIC8qIE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmggKi8sCiAJ
CQkJODYwMTYxREYwRjNBODNDMTAwRjg0NzEwIC8qIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCAq
LywKIAkJCQk4NjQwOTIzQjE1NkVFRDNCMDA1NjZDQjIgLyogQVJNNjRBc3NlbWJsZXIuaCAqLywK
IAkJCQk4NkQzQjJCRjEwMTU2QkRFMDAyODY1RTcgLyogQVJNQXNzZW1ibGVyLmNwcCAqLywKQEAg
LTQzMjIsNiArNDM4Niw3IEBACiAJCQkJOTY5QTA3OTIwRUQxRDNBRTAwRjFGNjgxIC8qIEV2YWxD
b2RlQ2FjaGUuaCAqLywKIAkJCQkwRjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9u
Q291bnRlci5jcHAgKi8sCiAJCQkJMEY1NkExRDExNTAwMEYzMTAwMjk5MkIxIC8qIEV4ZWN1dGlv
bkNvdW50ZXIuaCAqLywKKwkJCQkwRjNBQzc1MzE4OEU1RUM4MDAzMjAyOUYgLyogRXhpdGluZ0pJ
VFR5cGUuaCAqLywKIAkJCQkwRkIxMDU4MjE2NzU0ODBDMDBGOEFCNkUgLyogRXhpdEtpbmQuY3Bw
ICovLAogCQkJCTBGQjEwNTgzMTY3NTQ4MEMwMEY4QUI2RSAvKiBFeGl0S2luZC5oICovLAogCQkJ
CTBGMEI4M0FBMTRCQ0Y1QjkwMDg4NUI0RiAvKiBFeHByZXNzaW9uUmFuZ2VJbmZvLmggKi8sCkBA
IC00NTQxLDEzICs0NjA2LDE0IEBACiAJCQkJODZBREQxNDUwRkRERUE5ODAwMDZFRUMyIC8qIEFS
TXY3QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUNFRUUxNTE4N0YzQkFEMDBFNTVD
OTkgLyogSW5zcGVjdG9yQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1QzAyODVEMTcxNzk2
NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTJBNjgyOTVC
MTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkyQTRFQzkwQzE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmggaW4gSGVh
ZGVycyAqLywKKyAJCQkJMkE2ODI5NUIxODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJp
ZXIuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgIDJBNEVDOTBDMTg2MEQ2QzIwMDk0
Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFNTkzMkE4
MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
MzI0MzkzMTg1Njk3MDkwMDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yU3RyaW5ncy5w
eSBpbiBIZWFkZXJzICovLAotCQkJCUE1MzI0MzkyMTg1Njk3MDkwMDJFRDY5MiAvKiBDb2RlR2Vu
ZXJhdG9ySW5zcGVjdG9yLnB5IGluIEhlYWRlcnMgKi8sCisgCQkJCUE1MzI0MzkyMTg1Njk3MDkw
MDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyNEU1NEYxN0VFMjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTUwRTRCNjQxODgwOURENTAwNjhBNDZEIC8qIEpTR2xvYmFsT2JqZWN0UnVudGlt
ZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGRUI1OEMxNTE4N0I4QjE2MDA5OEVGMEIgLyog
RXJyb3JIYW5kbGluZ1Njb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0JGRjNDMDE3OTg2ODk0
MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4
NDBFMjcxODdDOTgxRTAwODQzQjEwIC8qIGNzc21pbi5weSBpbiBIZWFkZXJzICovLAogCQkJCUMy
RkNBRTExMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2suaCBpbiBIZWFkZXJz
ICovLApAQCAtNDU1Niw3ICs0NjIyLDcgQEAKIAkJCQkwRjgzMzVCODE2MzlDMUVBMDAxNDQzQjUg
LyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMjkx
ODdDQTVFNjAwODQzQjEwIC8qIGlubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3Jp
cHRzLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMkIxODdDQTc1QjAwODQzQjEwIC8qIGpz
bWluLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJQTUzMjQzOTgxODU2QTQ4OTAwMkVENjkyIC8qIElu
c3BlY3RvckpTLmpzb24gaW4gSGVhZGVycyAqLywKKyAJCQkJQTUzMjQzOTgxODU2QTQ4OTAwMkVE
NjkyIC8qIEluc3BlY3RvckpTLmpzb24gaW4gSGVhZGVycyAqLywKIAkJCQlBNTg0MEUyQTE4N0NB
NzU5MDA4NDNCMTAgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVBMDg2MjAxODJCN0Ew
NDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QThBRjM1MTdB
REI1RjMwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC00NjI0LDYg
KzQ2OTAsNyBAQAogCQkJCUMyRUFBM0ZBMTQ5QTgzNUUwMEZDRTExMiAvKiBDb3BpZWRTcGFjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQzJDOEQwMkQxNEEzQzZFMDAwNTc4RTY1IC8qIENvcGllZFNw
YWNlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1QTUyRDAxN0FERDcxNzAwOEVDQjJE
IC8qIENvcHlUb2tlbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQzYxODYyQzQ3ODAwODQ1
RDk3IC8qIEZUTFVud2luZEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUMyMjM5RDE4MTYyNjJC
REQwMDVBQzVGRCAvKiBDb3B5VmlzaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIyMzlEMTkx
NjI2MkJERDAwNUFDNUZEIC8qIENvcHlWaXNpdG9ySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzIxOEQxNDAxNjU1Q0ZENTAwNjJCQjgxIC8qIENvcHlXb3JrTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC00NjY1LDcgKzQ3MzIsOCBAQAogCQkJCTBGODM2NEI3MTY0QjBDMTEwMDUzMzI5QSAv
KiBERkdCcmFuY2hEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUExQTAwOUMwMTgzMUEy
MkQwMENGODcxMSAvKiBNYWNyb0Fzc2VtYmxlckFSTTY0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NkVDOURDNTEzMjhERjgyMDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUE1OTNDRjg3MTg0MDM4Q0EwMEJGQ0UyNyAvKiBJbnNwZWN0b3JBZ2VudFJlZ2lz
dHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQ4NTMyODE4N0RGREVDMDA4M0I2ODcgLyogRlRM
QXZhaWxhYmxlUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgIEE1OTND
Rjg3MTg0MDM4Q0EwMEJGQ0UyNyAvKiBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjI1NkMzNjE2MjdCMEFEMDA3RjI3ODMgLyogREZHQ2FsbEFycmF5QWxsb2Nh
dG9yU2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0IyOTRCMTRDM0NE
MkYwMDdDM0RCMSAvKiBERkdDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkZD
OTU4MTRFRjkwQTIwMEM3MjUzMiAvKiBERkdDRkFQaGFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC00
Njk5LDYgKzQ3NjcsNyBAQAogCQkJCTBGQkMwQUU4MTQ5NkM3QzcwMEQ0RkJERCAvKiBERkdFeGl0
UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4QTk3NzUxNzk3MzhCODAwOURGNzQ0IC8q
IERGR0ZhaWxlZEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4QTk3NzcxNzk3MzhC
ODAwOURGNzQ0IC8qIERGR0ZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQjYx
ODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQkRD
MTYxNTFDNUQ0RjAwQ0Q4OTEwIC8qIERGR0ZpeHVwUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGOUQzMzk3MTdGRkM0RTYwMDczQzJCQyAvKiBERkdGbHVzaGVkQXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3RDg5Q0Y4MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdGbHVzaEZvcm1hdC5oIGluIEhl
YWRlcnMgKi8sCkBAIC00NzM1LDYgKzQ4MDQsNyBAQAogCQkJCTBGRDhBMzI2MTdENTFGNTcwMENB
MkM0MCAvKiBERkdPU1JFbnRyeXBvaW50Q3JlYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDMDk3NkExNDY4QTZGNzAwQ0YyNDQyIC8qIERGR09TUkV4aXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRkM5OUQxMTg0RUM4QUQwMDlDMTBBQiAvKiBDb25zdGFudE1vZGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNkIxQ0JBMTg2MTI0NEMwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZh
dGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjM1QkVDMTcxNzhFNzMwMDY5MEM3RiAv
KiBERkdPU1JFeGl0QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCQTE1RUQxODIzNDBCNDAw
QTgyRTY5IC8qIFJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRkI5MjFDMTZEMDJGMTEwMDU1QTVEQiAvKiBERkdPU1JFeGl0Q29tcGlsYXRpb25JbmZv
LmggaW4gSGVhZGVycyAqLywKQEAgLTQ4MDMsNiArNDg3Myw3IEBACiAJCQkJMEZFQTBBMUYxNzA4
QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1OTQ1NTkzMTgyNDc0NDcwMENDMzg0MyAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2Fi
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBBMTcwNTEzREIwMEJCNzIyQyAvKiBGVExD
YXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDg1MzJBMTg3REZERUMwMDgzQjY4
NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMjMxNzA5
NjA2OTAwQkI3MjJDIC8qIEZUTENvbW1vblZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
QTBBMEMxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTENvbXBpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMjM1QkQ0MTcxNzhFMUMwMDY5MEM3RiAvKiBGVExFeGl0QXJndW1lbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtNDgxOSw2ICs0ODkwLDcgQEAKIAkJCQkwRkVBMEEyNDE3MDk2MDY5MDBCQjcyMkMg
LyogRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMEUx
NzA1MTNEQjAwQkI3MjJDIC8qIEZUTEpJVENvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OEE5
NzgxMTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNUE2Mjg0MTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjhGMkI5NjE3MkUwNEEzMDA3REJEQTUgLyogRlRMTGluay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDRUZBRTAxODA3MzhDMDAwNDcyQ0U0IC8qIEZUTExvY2F0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVBMEExMDE3MDUxM0RCMDBCQjcyMkMgLyogRlRMTG93ZXJERkdU
b0xMVk0uaCBpbiBIZWFkZXJzICovLApAQCAtNDkwMSw2ICs0OTczLDcgQEAKIAkJCQkwRkMyMENC
NjE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZCMTRFMUYxODEyNEFDRTAwOUI2QjREIC8qIEpJVElubGluZUNhY2hlR2Vu
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkNDODVBMTBFRTc5QTQ3MDAyODg2ODIgLyog
SklUSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQkUxODYxMjQ2QTAwODQ1RDk3
IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyNEU1NEQxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3OTBERDcwMTgyRjQ5OTcwMDU4ODgwNyAvKiBKU1NldEl0ZXJhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU0RTE3RUUyNzQ5MDBBQkIyMTcgLyogSklUT3BlcmF0
aW9uV3JhcHBlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtNDkxNiw2ICs0OTg5LDcgQEAKIAkJCQkw
RkM3MTJFMzE3Q0Q4NzkzMDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NkY1NEEzMTNCMjhBQUIwMEVGMkJDRSAvKiBK
SVRXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDE2MEUxNkY1Q0QwMEIz
NDQ2MCAvKiBKU0FjdGl2YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0I5MTg2MTI0
NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQwNDgw
MTMxMDIxQTFEOTAwOEU3RjAxIC8qIEpTQVBJVmFsdWVXcmFwcGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDMkNGMzlDMjE2RTE1QTgxMDBERDY5QkUgLyogSlNBUElXcmFwcGVyT2JqZWN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNzYxNDBEMjE4Mjk4MkNCMDA3NTA2MjQgLyogSlNBcmd1bWVudHNJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC00OTY5LDYgKzUwNDMsOCBAQAogCQkJCUJDMThD
NDIzMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0xvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUMyNUQ3
MDlDMTZERTk5RjQwMEZDQTZCQyAvKiBKU01hbmFnZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTcwMDg3NDIxN0NCRThFQjAwQzNFNjQzIC8qIEpTTWFwLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjNBQzc1NDE4OEU1RUM4MDAzMjAyOUYgLyogRXhpdGluZ0pJVFR5cGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGNkIxQ0M0MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDg3NEFFNDE1RUJERTRBMDAyRTM1ODcgLyogSlNOYW1l
U2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDI0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBK
U09iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjUwRTE2RjVDRDAwQjM0NDYwIC8q
IEpTT2JqZWN0UmVmLmggaW4gSGVhZGVycyAqLywKQEAgLTUyNzMsNiArNTM0OSw3IEBACiAJCQkJ
OTY4OENCMTYwRUQxMkI0RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDUxNTM5QjkxMkRDOTk0NTAwRUY3QUM0IC8qIFlhcnIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNjY2RUNEMTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0
aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0NBMTg2NDFERjgwMDg0NUQ5NyAv
KiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY3MDRC
ODUxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTU1RDkzQTYxODUwMTJBODAwNDAwREVEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODY3MDRCODcxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJKSVQuaCBpbiBI
ZWFkZXJzICovLApAQCAtNTcxNiw2ICs1NzkzLDcgQEAKIAkJCQkxNDI5RDhERDBFRDIyMDVCMDBC
ODk2MTkgLyogQ2FsbEZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMEI4M0IwMTRCQ0Y3
MTYwMDg4NUI0RiAvKiBDYWxsTGlua0luZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUxM0U1
QjcxODVCOEJEMzAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGNUE2MjgzMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGOTMzMjlEMTRDQTdEQzMwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjczRDdBRTE2NUExNDJEMDBBQ0FCNzEgLyogQ2xvc3Vy
ZUNhbGxTdHViUm91dGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NjlBMDc5NjBFRDFEM0FF
MDBGMUY2ODEgLyogQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTc1NCw2ICs1ODMy
LDcgQEAKIAkJCQkwRjYzOTQ4NDE1RTQ4MTE4MDA2QTU5N0MgLyogREZHQXJyYXlNb2RlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE3RDlBMjk0MTdBMEJDNzQwMEVFMjYxOCAvKiBERkdBdFRhaWxB
YnN0cmFjdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzE0Q0E0MTZFQTkyRjAwMEYz
RUJFQiAvKiBERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUZFQjU4QzE0MTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRjIxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jhc2ljQmxv
Y2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcwQjA4MzIxN0EwQjc5QjAwREFGMTRCIC8qIERG
R0JpbmFyeVN3aXRjaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNGMzE3QTBCOENDMDA3
NzNBRDggLyogREZHQmxvY2tJbnNlcnRpb25TZXQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01ODMx
LDkgKzU5MTAsMTEgQEAKIAkJCQk4Njg4MEY0RDE0MzUzQjIxMDBCMDhENDIgLyogREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNGRjE3QTBCOENDMDA3NzNB
RDggLyogREZHU1NBQ29udmVyc2lvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUZC
NEY0MTdGQ0I5MTcwMENCNjdGOCAvKiBERkdTdGFja0xheW91dFBoYXNlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGNkIxQ0JEMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlv
bldyYXBwZXJHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMDk3QTExNDZCMjhD
QTAwQ0YyNDQyIC8qIERGR1RodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyNzE3
RDUxRjU3MDBDQTJDNDAgLyogREZHVGllclVwQ2hlY2tJbmplY3Rpb25QaGFzZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkQ4QTMyOTE3RDUxRjU3MDBDQTJDNDAgLyogREZHVG9GVExEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0ODUzMjcxODdE
RkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRDhBMzJCMTdENTFGNTcwMENBMkM0MCAvKiBERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjM5NDQwMTVD
NzVGMUQwMDZBNTk3QyAvKiBERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGQkUwRjc2MTZDMURCMEYwMDgyQzVFOCAvKiBERkdVbmlmaWNhdGlvblBoYXNl
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTg5Miw5ICs1OTczLDExIEBACiAJCQkJMEZDRUZBQUIx
ODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGMjVGMUIxMTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0aENhbGwuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYyNUYxQjMxODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbEtl
eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZCMUNDNTE4NjJDNDc4MDA4NDVEOTcgLyogRlRM
VW53aW5kSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlEMzM5QTE4MDNBREI3MDA3M0My
QkMgLyogRlRMU3RhY2tNYXBzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUEwQTE2MTcwNkJC
OTAwMEJCNzIyQyAvKiBGVExTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3QzAwOENEMjE4
NkY4QTkzMDA5NTVDMjQgLyogSlNQcm9taXNlRnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAor
IAkJCQk3QzAwOENEMjE4NkY4QTkzMDA5NTVDMjQgLyogSlNQcm9taXNlRnVuY3Rpb25zLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0I1MTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyMzVCRTExNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFRo
dW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTkzQ0Y3QzE4NDAzNjAzMDBCRkNFMjcgLyog
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyMzVC
RTMxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFZhbHVlRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtNTk4MCw2ICs2MDYzLDcgQEAKIAkJCQkxNDI4MDg3NTEwN0VDMTNFMDAxM0U3QjIgLyogSlNM
b2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyNUQ3MDlCMTZERTk5RjQwMEZDQTZCQyAvKiBK
U01hbmFnZWRWYWx1ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE3MDA4NzQxMTdDQkU4RUIwMEMz
RTY0MyAvKiBKU01hcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjQ4NTMyOTE4N0RGREVDMDA4
M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4NzRB
RTMxNUVCREU0QTAwMkUzNTg3IC8qIEpTTmFtZVNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3MjcwMDkwMERBQzZCQkMwMEU1NDhENyAvKiBKU05vdEFuT2JqZWN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0N0YzOUQ0MTA3RUMzNzYwMDQyN0E0OCAvKiBKU09iamVjdC5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTYwOTYsNiArNjE4MCw3IEBACiAJCQkJMEY2NjZFQ0MxODM2QjM3RTAwRDAx
N0YxIC8qIERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkIxMDU4QjE2NzU0ODMxMDBGOEFCNkUgLyogUHJvZmlsZXJPU1JFeGl0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGQjEwNThEMTY3NTQ4MzcwMEY4QUI2RSAvKiBQcm9maWxlck9T
UkV4aXRTaXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0MzMTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMTM5MTJC
MTY3NzFDM0EwMDlDQ0IwNyAvKiBQcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE3RkI2MEE0MTAzRjdEQzIwMDE3QTI4NiAvKiBQcm9wZXJ0eURlc2NyaXB0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTcxMDdFQzdFNzAwNjUwNDQ2IC8qIFBy
b3BlcnR5TmFtZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjEyNSw2ICs2MjEwLDcgQEAK
IAkJCQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUgLyogU291cmNlQ29kZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ5REMxNkIxMkVGMjkzRTAwMTg0QTFGIC8qIFNvdXJjZVBy
b3ZpZGVyQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQzkxODY0MURGODAwODQ1
RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGMENENEM0MTVGNkI2QkIwMDMyRjFDMCAvKiBTcGFyc2VBcnJheVZhbHVlTWFwLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGNTU0MUIxMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9pbnRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4MkU4NjE0MUYzRkYxMDAxNzlDOTQgLyogU3Bl
Y3VsYXRlZFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKaW5kZXggY2ZiZDhjZWM1NmY3YjQ0Y2M1MzQ3
MDA3ZDc2YWFmOTcyNTk3YmQ4Ni4uZTA5OThkNGI3YTc0NDdiMjBmZjRmNzcyZTk3MTUyY2FlYzAw
Zjg5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFz
c2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3Nl
bWJsZXIuaApAQCAtNDAsMTQgKzQwLDI2IEBACiAjZGVmaW5lIERBVEFTSVpFIERBVEFTSVpFX09G
KGRhdGFzaXplKQogI2RlZmluZSBNRU1PUFNJWkUgTUVNT1BTSVpFX09GKGRhdGFzaXplKQogI2Rl
ZmluZSBDSEVDS19GUF9NRU1PUF9EQVRBU0laRSgpIEFTU0VSVChkYXRhc2l6ZSA9PSA4IHx8IGRh
dGFzaXplID09IDE2IHx8IGRhdGFzaXplID09IDMyIHx8IGRhdGFzaXplID09IDY0IHx8IGRhdGFz
aXplID09IDEyOCkKKyNkZWZpbmUgTUVNUEFJUk9QU0laRV9JTlQoZGF0YXNpemUpICgoZGF0YXNp
emUgPT0gNjQpID8gTWVtUGFpck9wXzY0IDogTWVtUGFpck9wXzMyKQorI2RlZmluZSBNRU1QQUlS
T1BTSVpFX0ZQKGRhdGFzaXplKSAoKGRhdGFzaXplID09IDEyOCkgPyBNZW1QYWlyT3BfVjEyOCA6
IChkYXRhc2l6ZSA9PSA2NCkgPyBNZW1QYWlyT3BfVjY0IDogTWVtUGFpck9wXzMyKQogCiBuYW1l
c3BhY2UgSlNDIHsKIAorQUxXQVlTX0lOTElORSBib29sIGlzSW50NyhpbnQzMl90IHZhbHVlKQor
eworICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDI1KSA+PiAyNSk7Cit9CisKIEFMV0FZ
U19JTkxJTkUgYm9vbCBpc0ludDkoaW50MzJfdCB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUg
PT0gKCh2YWx1ZSA8PCAyMykgPj4gMjMpOwogfQogCitBTFdBWVNfSU5MSU5FIGJvb2wgaXNJbnQx
MShpbnQzMl90IHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDIxKSA+
PiAyMSk7Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBpc1VJbnQ1KGludDMyX3QgdmFsdWUpCiB7
CiAgICAgcmV0dXJuICEodmFsdWUgJiB+MHgxZik7CkBAIC0xMTksNiArMTMxLDM0IEBAIHByaXZh
dGU6CiAgICAgaW50IG1fdmFsdWU7CiB9OwogCitjbGFzcyBQYWlyUG9zdEluZGV4IHsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBQYWlyUG9zdEluZGV4KGludCB2YWx1ZSkKKyAgICAgICAgOiBtX3Zh
bHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW50MTEodmFsdWUpKTsKKyAgICB9
CisKKyAgICBvcGVyYXRvciBpbnQoKSB7IHJldHVybiBtX3ZhbHVlOyB9CisKK3ByaXZhdGU6Cisg
ICAgaW50IG1fdmFsdWU7Cit9OworCitjbGFzcyBQYWlyUHJlSW5kZXggeworcHVibGljOgorICAg
IGV4cGxpY2l0IFBhaXJQcmVJbmRleChpbnQgdmFsdWUpCisgICAgICAgIDogbV92YWx1ZSh2YWx1
ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0ludDExKHZhbHVlKSk7CisgICAgfQorCisgICAg
b3BlcmF0b3IgaW50KCkgeyByZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRlOgorICAgIGludCBt
X3ZhbHVlOworfTsKKwogY2xhc3MgTG9naWNhbEltbWVkaWF0ZSB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIExvZ2ljYWxJbW1lZGlhdGUgY3JlYXRlMzIodWludDMyX3QgdmFsdWUpCkBAIC04MjMsNiAr
ODYzLDE2IEBAIHByaXZhdGU6CiAgICAgICAgIE1lbU9wX0xPQURfc2lnbmVkMzIgPSAzIC8vIHNp
emUgbWF5IGJlIDAgb3IgMQogICAgIH07CiAKKyAgICBlbnVtIE1lbVBhaXJPcFNpemUgeworICAg
ICAgICBNZW1QYWlyT3BfMzIgPSAwLAorICAgICAgICBNZW1QYWlyT3BfTG9hZFNpZ25lZF8zMiA9
IDEsCisgICAgICAgIE1lbVBhaXJPcF82NCA9IDIsCisKKyAgICAgICAgTWVtUGFpck9wX1YzMiA9
IE1lbVBhaXJPcF8zMiwKKyAgICAgICAgTWVtUGFpck9wX1Y2NCA9IDEsCisgICAgICAgIE1lbVBh
aXJPcF9WMTI4ID0gMgorICAgIH07CisKICAgICBlbnVtIE1vdmVXaWRlT3AgewogICAgICAgICBN
b3ZlV2lkZU9wX04gPSAwLAogICAgICAgICBNb3ZlV2lkZU9wX1ogPSAyLApAQCAtODM2LDYgKzg4
NiwxNCBAQCBwcml2YXRlOgogICAgICAgICBMZHJMaXRlcmFsT3BfMTI4QklUID0gMgogICAgIH07
CiAKKyAgICBzdGF0aWMgdW5zaWduZWQgbWVtUGFpck9mZnNldFNoaWZ0KGJvb2wgViwgTWVtUGFp
ck9wU2l6ZSBzaXplKQorICAgIHsKKyAgICAgICAgLy8gcmV0dXJuIHRoZSBsb2cyIG9mIHRoZSBz
aXplIGluIGJ5dGVzLCBlLmcuIDY0IGJpdCBzaXplIHJldHVybnMgMworICAgICAgICBpZiAoVikK
KyAgICAgICAgICAgIHJldHVybiBzaXplICsgMjsKKyAgICAgICAgcmV0dXJuIChzaXplID4+IDEp
ICsgMjsKKyAgICB9CisKIHB1YmxpYzoKICAgICAvLyBJbnRlZ2VyIEluc3RydWN0aW9uczoKIApA
QCAtODcxLDggKzkyOSw5IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgYWRkKFJl
Z2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNoaWZ0VHlwZSBzaGlm
dCwgaW50IGFtb3VudCkKICAgICB7CiAgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7Ci0gICAgICAg
IGlmIChpc1NwKHJuKSkgeworICAgICAgICBpZiAoaXNTcChyZCkgfHwgaXNTcChybikpIHsKICAg
ICAgICAgICAgIEFTU0VSVChzaGlmdCA9PSBMU0wpOworICAgICAgICAgICAgQVNTRVJUKCFpc1Nw
KHJtKSk7CiAgICAgICAgICAgICBhZGQ8ZGF0YXNpemUsIHNldEZsYWdzPihyZCwgcm4sIHJtLCBV
WFRYLCBhbW91bnQpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGluc24oYWRkU3VidHJh
Y3RTaGlmdGVkUmVnaXN0ZXIoREFUQVNJWkUsIEFkZE9wX0FERCwgc2V0RmxhZ3MsIHNoaWZ0LCBy
bSwgYW1vdW50LCBybiwgcmQpKTsKQEAgLTEyMTYsNiArMTI3NSwyMCBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBs
ZHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBhaXJQb3N0
SW5kZXggc2ltbSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7CisgICAgICAgIGlu
c24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1FTVBBSVJPUFNJWkVfSU5UKGRhdGFz
aXplKSwgZmFsc2UsIE1lbU9wX0xPQUQsIHNpbW0sIHJuLCBydCwgcnQyKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBsZHAoUmVn
aXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBhaXJQcmVJbmRleCBz
aW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAgICAgaW5zbihsb2Fk
U3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSksIGZh
bHNlLCBNZW1PcF9MT0FELCBzaW1tLCBybiwgcnQsIHJ0MikpOworICAgIH0KKworICAgIHRlbXBs
YXRlPGludCBkYXRhc2l6ZT4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbGRyKFJlZ2lzdGVySUQg
cnQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAgICBsZHI8ZGF0
YXNpemU+KHJ0LCBybiwgcm0sIFVYVFgsIDApOwpAQCAtMTc0OCw2ICsxODIxLDIwIEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lOTElO
RSB2b2lkIHN0cChSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwg
UGFpclBvc3RJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAg
ICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoTUVNUEFJUk9QU0laRV9J
TlQoZGF0YXNpemUpLCBmYWxzZSwgTWVtT3BfU1RPUkUsIHNpbW0sIHJuLCBydCwgcnQyKSk7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBzdHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBhaXJQ
cmVJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAgICAg
aW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNRU1QQUlST1BTSVpFX0lOVChkYXRh
c2l6ZSksIGZhbHNlLCBNZW1PcF9TVE9SRSwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHN0cihS
ZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKICAgICAg
ICAgc3RyPGRhdGFzaXplPihydCwgcm4sIHJtLCBVWFRYLCAwKTsKQEAgLTE4NzYsOCArMTk2Myw5
IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3ViKFJlZ2lzdGVySUQgcmQsIFJl
Z2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNoaWZ0VHlwZSBzaGlmdCwgaW50IGFtb3VudCkK
ICAgICB7CiAgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7Ci0gICAgICAgIGlmIChpc1NwKHJuKSkg
eworICAgICAgICBpZiAoaXNTcChyZCkgfHwgaXNTcChybikpIHsKICAgICAgICAgICAgIEFTU0VS
VChzaGlmdCA9PSBMU0wpOworICAgICAgICAgICAgQVNTRVJUKCFpc1NwKHJtKSk7CiAgICAgICAg
ICAgICBzdWI8ZGF0YXNpemUsIHNldEZsYWdzPihyZCwgcm4sIHJtLCBVWFRYLCBhbW91bnQpOwog
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGluc24oYWRkU3VidHJhY3RTaGlmdGVkUmVnaXN0
ZXIoREFUQVNJWkUsIEFkZE9wX1NVQiwgc2V0RmxhZ3MsIHNoaWZ0LCBybSwgYW1vdW50LCBybiwg
cmQpKTsKQEAgLTMzNjEsNiArMzQ0OSwyMyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIC8vICdW
JyBtZWFucyB2ZWN0b3IKKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0b3JlUmVn
aXN0ZXJQYWlyUG9zdEluZGV4KE1lbVBhaXJPcFNpemUgc2l6ZSwgYm9vbCBWLCBNZW1PcCBvcGMs
IGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0ZXJJRCBydCwgRlBSZWdpc3Rl
cklEIHJ0MikKKyAgICB7CisgICAgICAgIEFTU0VSVChzaXplIDwgMyk7CisgICAgICAgIEFTU0VS
VChvcGMgPT0gKG9wYyAmIDEpKTsgLy8gT25seSBsb2FkIG9yIHN0b3JlLCBsb2FkIHNpZ25lZCA2
NCBpcyBoYW5kbGVkIHZpYSBzaXplLgorICAgICAgICBBU1NFUlQoViB8fCAoc2l6ZSAhPSBNZW1Q
YWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9MT0FEKSk7IC8vIFRoZXJlIGlz
bid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgorICAgICAgICB1bnNpZ25lZCBpbW1lZFNoaWZ0
QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUpOworICAgICAgICBpbnQgaW1tNyA9
IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OworICAgICAgICBBU1NFUlQoKGltbTcgPDwg
aW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50NyhpbW03KSk7CisgICAgICAg
IHJldHVybiAoMHgyODgwMDAwMCB8IHNpemUgPDwgMzAgfCBWIDw8IDI2IHwgb3BjIDw8IDIyIHwg
KGltbTcgJiAweDdmKSA8PCAxNSB8IHJ0MiA8PCAxMCB8IHhPclNwKHJuKSA8PCA1IHwgcnQpOwor
ICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2FkU3RvcmVSZWdpc3RlclBh
aXJQb3N0SW5kZXgoTWVtUGFpck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGlt
bWVkaWF0ZSwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIpCisg
ICAgeworICAgICAgICByZXR1cm4gbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KHNpemUs
IFYsIG9wYywgaW1tZWRpYXRlLCBybiwgeE9yWnJBc0ZQUihydCksIHhPclpyQXNGUFIocnQyKSk7
CisgICAgfQorCisgICAgLy8gJ1YnIG1lYW5zIHZlY3RvcgogICAgIEFMV0FZU19JTkxJTkUgc3Rh
dGljIGludCBsb2FkU3RvcmVSZWdpc3RlclByZUluZGV4KE1lbU9wU2l6ZSBzaXplLCBib29sIFYs
IE1lbU9wIG9wYywgaW50IGltbTksIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0ZXJJRCBydCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVCghKHNpemUgJiYgViAmJiAob3BjICYgMikpKTsgLy8gTWF4aW11
bSB2ZWN0b3Igc2l6ZSBpcyAxMjggYml0cy4KQEAgLTMzNzUsNiArMzQ4MCwyMyBAQCBwcml2YXRl
OgogICAgIH0KIAogICAgIC8vICdWJyBtZWFucyB2ZWN0b3IKKyAgICBBTFdBWVNfSU5MSU5FIHN0
YXRpYyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoTWVtUGFpck9wU2l6ZSBzaXpl
LCBib29sIFYsIE1lbU9wIG9wYywgaW50IGltbWVkaWF0ZSwgUmVnaXN0ZXJJRCBybiwgRlBSZWdp
c3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHNpemUg
PCAzKTsKKyAgICAgICAgQVNTRVJUKG9wYyA9PSAob3BjICYgMSkpOyAvLyBPbmx5IGxvYWQgb3Ig
c3RvcmUsIGxvYWQgc2lnbmVkIDY0IGlzIGhhbmRsZWQgdmlhIHNpemUuCisgICAgICAgIEFTU0VS
VChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyKSB8fCAob3BjID09IE1lbU9w
X0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9yZSBzaWduZWQuCisgICAgICAg
IHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zmc2V0U2hpZnQoViwgc2l6ZSk7
CisgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+IGltbWVkU2hpZnRBbW91bnQ7CisgICAg
ICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBpbW1lZGlhdGUgJiYgaXNJ
bnQ3KGltbTcpKTsKKyAgICAgICAgcmV0dXJuICgweDI5ODAwMDAwIHwgc2l6ZSA8PCAzMCB8IFYg
PDwgMjYgfCBvcGMgPDwgMjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1IHwgcnQyIDw8IDEwIHwgeE9y
U3Aocm4pIDw8IDUgfCBydCk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgaW50
IGxvYWRTdG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KE1lbVBhaXJPcFNpemUgc2l6ZSwgYm9vbCBW
LCBNZW1PcCBvcGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcnQs
IFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxvYWRTdG9yZVJlZ2lzdGVy
UGFpclByZUluZGV4KHNpemUsIFYsIG9wYywgaW1tZWRpYXRlLCBybiwgeE9yWnJBc0ZQUihydCks
IHhPclpyQXNGUFIocnQyKSk7CisgICAgfQorCisgICAgLy8gJ1YnIG1lYW5zIHZlY3RvcgogICAg
IC8vICdTJyBtZWFucyBzaGlmdCBybQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2Fk
U3RvcmVSZWdpc3RlclJlZ2lzdGVyT2Zmc2V0KE1lbU9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9w
IG9wYywgUmVnaXN0ZXJJRCBybSwgRXh0ZW5kVHlwZSBvcHRpb24sIGJvb2wgUywgUmVnaXN0ZXJJ
RCBybiwgRlBSZWdpc3RlcklEIHJ0KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCA1MjU3ZjMyYTgzYjg0NjM3Y2Q2ODNm
MGI4MWM5YzBmZTUwYzJiZjIxLi41OWJmMjQyNzU4OGYxMTBhMjEyYmZkM2I2OWZkNmZlMjJjYmEz
MWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNz
ZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2Vt
Ymxlci5oCkBAIC02NTQsNiArNjU0LDggQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIGVudW0gewog
ICAgICAgICBPUF9CX1QxICAgICAgICAgPSAweEQwMDAsCiAgICAgICAgIE9QX0JfVDIgICAgICAg
ICA9IDB4RTAwMCwKKyAgICAgICAgT1BfUE9QX1QyICAgICAgID0gMHhFOEJELAorICAgICAgICBP
UF9QVVNIX1QyICAgICAgPSAweEU5MkQsCiAgICAgICAgIE9QX0FORF9yZWdfVDIgICA9IDB4RUEw
MCwKICAgICAgICAgT1BfVFNUX3JlZ19UMiAgID0gMHhFQTEwLAogICAgICAgICBPUF9PUlJfcmVn
X1QyICAgPSAweEVBNDAsCkBAIC04OTQsNiArODk2LDExIEBAIHB1YmxpYzoKICAgICAvLyBOT1RF
OiBJbiBhbiBJVCBibG9jaywgYWRkIGRvZXNuJ3QgbW9kaWZ5IHRoZSBmbGFncyByZWdpc3Rlci4K
ICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgYWRkKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4s
IFJlZ2lzdGVySUQgcm0pCiAgICAgeworICAgICAgICBpZiAocmQgPT0gQVJNUmVnaXN0ZXJzOjpz
cCkgeworICAgICAgICAgICAgbW92KHJkLCBybik7CisgICAgICAgICAgICBybiA9IHJkOworICAg
ICAgICB9CisKICAgICAgICAgaWYgKHJkID09IHJuKQogICAgICAgICAgICAgbV9mb3JtYXR0ZXIu
b25lV29yZE9wOFJlZ1JlZzE0MyhPUF9BRERfcmVnX1QyLCBybSwgcmQpOwogICAgICAgICBlbHNl
IGlmIChyZCA9PSBybSkKQEAgLTE0ODgsNiArMTQ5NSwyMiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
Zm9ybWF0dGVyLnR3b1dvcmRPcDEyUmVnNEZvdXJGb3VycyhPUF9ST1JfcmVnX1QyLCBybiwgRm91
ckZvdXJzKDB4ZiwgcmQsIDAsIHJtKSk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lk
IHBvcCh1aW50MzJfdCByZWdpc3Rlckxpc3QpCisgICAgeworICAgICAgICBBU1NFUlQoV1RGOjpi
aXRDb3VudChyZWdpc3Rlckxpc3QpID4gMSk7CisgICAgICAgIEFTU0VSVCghKCgxIDw8IEFSTVJl
Z2lzdGVyczo6cGMpICYgcmVnaXN0ZXJMaXN0KSB8fCAhKCgxIDw8IEFSTVJlZ2lzdGVyczo6bHIp
ICYgcmVnaXN0ZXJMaXN0KSk7CisgICAgICAgIEFTU0VSVCghKCgxIDw8IEFSTVJlZ2lzdGVyczo6
c3ApICYgcmVnaXN0ZXJMaXN0KSk7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDE2SW1t
MTYoT1BfUE9QX1QyLCByZWdpc3Rlckxpc3QpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBwdXNoKHVpbnQzMl90IHJlZ2lzdGVyTGlzdCkKKyAgICB7CisgICAgICAgIEFTU0VSVChX
VEY6OmJpdENvdW50KHJlZ2lzdGVyTGlzdCkgPiAxKTsKKyAgICAgICAgQVNTRVJUKCEoKDEgPDwg
QVJNUmVnaXN0ZXJzOjpwYykgJiByZWdpc3Rlckxpc3QpKTsKKyAgICAgICAgQVNTRVJUKCEoKDEg
PDwgQVJNUmVnaXN0ZXJzOjpzcCkgJiByZWdpc3Rlckxpc3QpKTsKKyAgICAgICAgbV9mb3JtYXR0
ZXIudHdvV29yZE9wMTZJbW0xNihPUF9QVVNIX1QyLCByZWdpc3Rlckxpc3QpOworICAgIH0KKwog
I2lmIENQVShBUFBMRV9BUk1WN1MpCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNkaXYoUmVnaXN0
ZXJJRCByZCwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSkKICAgICB7CkBAIC0yNzkxLDYg
KzI4MTQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fYnVmZmVyLnB1dFNob3J0KG9wMik7
CiAgICAgICAgIH0KIAorICAgICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdHdvV29yZE9wMTZJbW0x
NihPcGNvZGVJRDEgb3AxLCB1aW50MTZfdCBpbW0pCisgICAgICAgIHsKKyAgICAgICAgICAgIG1f
YnVmZmVyLnB1dFNob3J0KG9wMSk7CisgICAgICAgICAgICBtX2J1ZmZlci5wdXRTaG9ydChpbW0p
OworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdHdvV29y
ZE9wNWk2SW1tNFJlZzRFbmNvZGVkSW1tKE9wY29kZUlEMSBvcCwgaW50IGltbTQsIFJlZ2lzdGVy
SUQgcmQsIEFSTVRodW1iSW1tZWRpYXRlIGltbSkKICAgICAgICAgewogICAgICAgICAgICAgQVJN
VGh1bWJJbW1lZGlhdGUgbmV3SW1tID0gaW1tOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAppbmRleCAyODUzNzIw
MWIzOWViMjMxZjUwNDg3NjM3N2I2NmRiM2FjM2VlMjgwLi43ZDdlZTc5MWE2YzNlMTg1ZDYxOTJj
NmUxM2NlMjY3YzM2YWQ5NWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApAQCAtMTQwLDcgKzE0MCw3IEBA
IHB1YmxpYzoKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFzZSwgb2Zm
c2V0ICsgYWRkaXRpb25hbE9mZnNldCk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAg
UmVnaXN0ZXJJRCBiYXNlOwogICAgICAgICBpbnQzMl90IG9mZnNldDsKICAgICB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKaW5kZXggYTdmNDY5
ZGE4OTJmZjRkMzFkNDZkYTQ3NTJjOWIxYzI3YTBhZjNmMC4uYWYxNGUzM2VhYzA1OTdmMmQ3OGM0
YjNjZDE2MzU0MTFkYWJhOTY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9MaW5rQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0xpbmtCdWZmZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxMiArMjgsMjEgQEAKIAogI2lmIEVO
QUJMRShBU1NFTUJMRVIpCiAKKyNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJKSVRD
b2RlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVkZSA8
d3RmL0NvbXBpbGF0aW9uVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCitib29sIHNob3Vs
ZFNob3dEaXNhc3NlbWJseUZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3sKKyAgICBpZiAoSklU
Q29kZTo6aXNPcHRpbWl6aW5nSklUKGNvZGVCbG9jay0+aml0VHlwZSgpKSAmJiBPcHRpb25zOjpz
aG93REZHRGlzYXNzZW1ibHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIE9w
dGlvbnM6OnNob3dEaXNhc3NlbWJseSgpOworfQorCiBMaW5rQnVmZmVyOjpDb2RlUmVmIExpbmtC
dWZmZXI6OmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpCiB7CiAgICAgcGVyZm9ybUZp
bmFsaXphdGlvbigpOwpAQCAtNDcsOCArNTYsNiBAQCBMaW5rQnVmZmVyOjpDb2RlUmVmIExpbmtC
dWZmZXI6OmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpCiAKIExpbmtCdWZmZXI6OkNv
ZGVSZWYgTGlua0J1ZmZlcjo6ZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5KGNvbnN0IGNoYXIq
IGZvcm1hdCwgLi4uKQogewotICAgIEFTU0VSVChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHkoKSB8
fCBPcHRpb25zOjpzaG93REZHRGlzYXNzZW1ibHkoKSk7Ci0gICAgCiAgICAgQ29kZVJlZiByZXN1
bHQgPSBmaW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKTsKIAogI2lmIEVOQUJMRShESVNB
U1NFTUJMRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xp
bmtCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5o
CmluZGV4IDhkNGNlNTIxZjI4NGU1ZGUzNDY5Y2VkODk2NGM5ZWNjMDhlZjM1NzYuLjZhYmEwNzU4
MmE0YzJmMjM0ZGY3OWUxM2YyNGM1M2NhNzE3ZmNhNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOSwgMjAxMCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTIsIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC00Myw2ICs0Myw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitjbGFzcyBDb2RlQmxv
Y2s7CiBjbGFzcyBWTTsKIAogLy8gTGlua0J1ZmZlcjoKQEAgLTE2NCw2ICsxNjUsMTEgQEAgcHVi
bGljOgogICAgIH0KIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgdG8gb2J0YWluIGhh
bmRsZXMgdG8gYWxsb3cgdGhlIGNvZGUgdG8gYmUgcmVsaW5rZWQgLyByZXBhdGNoZWQgbGF0ZXIu
CisgICAgCisgICAgQ29kZUxvY2F0aW9uTGFiZWwgZW50cnlwb2ludCgpCisgICAgeworICAgICAg
ICByZXR1cm4gQ29kZUxvY2F0aW9uTGFiZWwoY29kZSgpKTsKKyAgICB9CiAKICAgICBDb2RlTG9j
YXRpb25DYWxsIGxvY2F0aW9uT2YoQ2FsbCBjYWxsKQogICAgIHsKQEAgLTMwMyw2ICszMDksMTEg
QEAgcHJpdmF0ZToKICAgICAgPyAoKGxpbmtCdWZmZXJSZWZlcmVuY2UpLmZpbmFsaXplQ29kZVdp
dGhEaXNhc3NlbWJseSBkYXRhTG9nRkFyZ3VtZW50c0ZvckhlYWRpbmcpIFwKICAgICAgOiAobGlu
a0J1ZmZlclJlZmVyZW5jZSkuZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2VtYmx5KCkpCiAKK2Jv
b2wgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5Rm9yKENvZGVCbG9jayogY29kZUJsb2NrKTsKKworI2Rl
ZmluZSBGSU5BTElaRV9DT0RFX0ZPUihjb2RlQmxvY2ssIGxpbmtCdWZmZXJSZWZlcmVuY2UsIGRh
dGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykgIFwKKyAgICBGSU5BTElaRV9DT0RFX0lGKHNob3Vs
ZFNob3dEaXNhc3NlbWJseUZvcihjb2RlQmxvY2spLCBsaW5rQnVmZmVyUmVmZXJlbmNlLCBkYXRh
TG9nRkFyZ3VtZW50c0ZvckhlYWRpbmcpCisKIC8vIFVzZSB0aGlzIHRvIGZpbmFsaXplIGNvZGUs
IGxpa2Ugc286CiAvLwogLy8gQ29kZVJlZiBjb2RlID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVy
LCAoIm15IHN1cGVyIHRoaW5neSBudW1iZXIgJWQiLCBudW1iZXIpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAppbmRleCA0YTQzZWI2MjVj
ZGMzOGUxZTE3Y2JiNjc0NzFjYzg5YmIyZDY4MTEwLi41ZWU1MjU1NzliN2YwMDg0YzViNTI1MmNi
MDEzN2QzMzg0ZWJmNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlci5oCkBAIC01OTUsNiArNTk1LDExIEBAIHB1YmxpYzoKICAgICAgICAg
c3RvcmUzMihUcnVzdGVkSW1tMzIoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQogCisgICAgdm9pZCBz
dG9yZVB0cihUcnVzdGVkSW1tMzIgaW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB7
CisgICAgICAgIHN0b3JlMzIoaW1tLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3Jl
UHRyKFRydXN0ZWRJbW1QdHIgaW1tLCBCYXNlSW5kZXggYWRkcmVzcykKICAgICB7CiAgICAgICAg
IHN0b3JlMzIoVHJ1c3RlZEltbTMyKGltbSksIGFkZHJlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCAzMGFh
ZWU2NjFmNjEwOGZjM2M4ODk0YWRlZWM4NTc1NTVkNDg1NzdiLi40Mjg1N2I0NDFkYWU3YzY5ODcx
MGQzNTg5MTI3ZmJiNTA2YjZhY2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtMjAxLDcgKzIwMSwxMCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGFkZDY0KFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7Cisg
ICAgICAgIGlmIChzcmMgPT0gQVJNNjRSZWdpc3RlcnM6OnNwKQorICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuYWRkPDY0PihkZXN0LCBzcmMsIGRlc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7CiAgICAgfQogCiAgICAgdm9p
ZCBhZGQ2NChUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCkBAIC0xNDM3LDYgKzE0
NDAsMTYgQEAgcHVibGljOgogICAgICAgICBDUkFTSCgpOwogICAgIH0KIAorICAgIHZvaWQgcG9w
UGFpcihSZWdpc3RlcklEIGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQorICAgIHsKKyAgICAgICAg
bV9hc3NlbWJsZXIubGRwPDY0PihkZXN0MSwgZGVzdDIsIEFSTTY0UmVnaXN0ZXJzOjpzcCwgUGFp
clBvc3RJbmRleCgxNikpOworICAgIH0KKworICAgIHZvaWQgcHVzaFBhaXIoUmVnaXN0ZXJJRCBz
cmMxLCBSZWdpc3RlcklEIHNyYzIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5zdHA8NjQ+
KHNyYzEsIHNyYzIsIEFSTTY0UmVnaXN0ZXJzOjpzcCwgUGFpclByZUluZGV4KC0xNikpOworICAg
IH0KKwogICAgIHZvaWQgcG9wVG9SZXN0b3JlKFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLmxkcjw2ND4oZGVzdCwgQVJNNjRSZWdpc3RlcnM6OnNwLCBQb3N0SW5k
ZXgoMTYpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggMWE5ZTIyYmM4OWVhMzI3YTA1ZjhjZDRlOWRkMWZlY2Mw
YTYyMmQzNC4uOWU2NGRiZDcyMzViZmQ0MDFmOGM4ZmQ0M2ViZDE5NzU1ZWNiZTNjZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmgKQEAgLTE3MCw2ICsxNzAsMTQgQEAgcHVibGljOgogICAgIHZvaWQgYWRkMzIoVHJ1c3Rl
ZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAg
ICAgIEFSTVRodW1iSW1tZWRpYXRlIGFybUltbSA9IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlVUlu
dDEyT3JFbmNvZGVkSW1tKGltbS5tX3ZhbHVlKTsKKworICAgICAgICAvLyBGb3IgYWRkcyB3aXRo
IHN0YWNrIHBvaW50ZXIgZGVzdGluYXRpb24sIG1vdmluZyB0aGUgc3JjIGZpcnN0IHRvIHNwIGlz
CisgICAgICAgIC8vIG5lZWRlZCB0byBhdm9pZCB1bnByZWRpY3RhYmxlIGluc3RydWN0aW9uCisg
ICAgICAgIGlmIChkZXN0ID09IEFSTVJlZ2lzdGVyczo6c3AgJiYgc3JjICE9IGRlc3QpIHsKKyAg
ICAgICAgICAgIG1vdmUoc3JjLCBBUk1SZWdpc3RlcnM6OnNwKTsKKyAgICAgICAgICAgIHNyYyA9
IEFSTVJlZ2lzdGVyczo6c3A7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoYXJtSW1tLmlzVmFs
aWQoKSkKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZChkZXN0LCBzcmMsIGFybUltbSk7CiAg
ICAgICAgIGVsc2UgewpAQCAtMTE2MCw2ICsxMTY4LDE2IEBAIHB1YmxpYzoKICAgICAgICAgcHVz
aChkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKKyAgICB2b2lkIHBvcFBhaXIoUmVnaXN0ZXJJ
RCBkZXN0MSwgUmVnaXN0ZXJJRCBkZXN0MikKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnBv
cCgxIDw8IGRlc3QxIHwgMSA8PCBkZXN0Mik7CisgICAgfQorICAgIAorICAgIHZvaWQgcHVzaFBh
aXIoUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIpCisgICAgeworICAgICAgICBtX2Fz
c2VtYmxlci5wdXNoKDEgPDwgc3JjMSB8IDEgPDwgc3JjMik7CisgICAgfQorICAgIAogICAgIC8v
IFJlZ2lzdGVyIG1vdmUgb3BlcmF0aW9uczoKICAgICAvLwogICAgIC8vIE1vdmUgdmFsdWVzIGlu
IHJlZ2lzdGVycy4KQEAgLTEyODEsMTEgKzEyOTksMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLnRzdChyZWcsIHJlZyk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
QVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNvZGVk
SW1tKGltbSk7Ci0gICAgICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkKLSAgICAgICAgICAg
ICAgICBtX2Fzc2VtYmxlci50c3QocmVnLCBhcm1JbW0pOwotICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkgeworICAgICAgICAgICAgICAgIGlmIChy
ZWcgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgeworICAgICAgICAgICAgICAgICAgICBtb3ZlKHJlZywg
YWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRz
dChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBhcm1JbW0pOworICAgICAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3QocmVnLCBhcm1JbW0pOworICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBtb3ZlKG1hc2ssIGRhdGFUZW1wUmVnaXN0
ZXIpOwotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIGRhdGFUZW1wUmVnaXN0
ZXIpOworICAgICAgICAgICAgICAgIGlmIChyZWcgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgeworICAg
ICAgICAgICAgICAgICAgICBtb3ZlKHJlZywgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAg
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBkYXRhVGVt
cFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
bV9hc3NlbWJsZXIudHN0KHJlZywgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAppbmRleCA1ZjhiYThhOTJkMzc4MGM5NTc0MzU4
MzAxN2I4Y2EwMmI2YjI5OTlmLi4yOGZjMTlkMjEzN2RhMDJlMzZjNzQxOWQ2ZjhlYjE2MDA2ZTU4
NGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQ29kZVJlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmLmgKQEAgLTI1NCw2ICsyNTQsMTEgQEAgcHVibGljOgogICAgIH0K
IAogICAgIHZvaWQqIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorICAgIAorICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAorICAgIHsKKyAgICAgICAgb3V0LnBy
aW50KFJhd1BvaW50ZXIobV92YWx1ZSkpOworICAgIH0KIAogcHJpdmF0ZToKICAgICB2b2lkKiBt
X3ZhbHVlOwpAQCAtMzA5LDkgKzMxNCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCogZGF0YUxvY2F0
aW9uKCkgY29uc3QgeyBBU1NFUlRfVkFMSURfQ09ERV9QT0lOVEVSKG1fdmFsdWUpOyByZXR1cm4g
bV92YWx1ZTsgfQogI2VuZGlmCiAKLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0CisgICAgdHlw
ZWRlZiB2b2lkKiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjoqVW5zcGVjaWZpZWRCb29sVHlwZSk7
CisgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSooKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuICFtX3ZhbHVlOworICAgICAgICByZXR1cm4gISFtX3ZhbHVlID8gcmVpbnRlcnBy
ZXRfY2FzdDxVbnNwZWNpZmllZEJvb2xUeXBlKj4oMSkgOiAwOwogICAgIH0KICAgICAKICAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyJiBvdGhlcikgY29uc3QK
QEAgLTQzNCw3ICs0NDAsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gSlNDOjp0cnlUb0Rp
c2Fzc2VtYmxlKG1fY29kZVB0ciwgc2l6ZSgpLCBwcmVmaXgsIFdURjo6ZGF0YUZpbGUoKSk7CiAg
ICAgfQogICAgIAotICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fY29kZVB0
cjsgfQorICAgIHR5cGVkZWYgdm9pZCogKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6KlVuc3BlY2lm
aWVkQm9vbFR5cGUpOworICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUqKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiAhIW1fY29kZVB0ciA/IHJlaW50ZXJwcmV0X2Nhc3Q8VW5z
cGVjaWZpZWRCb29sVHlwZSo+KDEpIDogMDsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJmM2ZkN2QwMGM4ZWI3ZmZlZTM1NzNhYjA5YjYxODQ4Y2Q5NDhkYWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIE1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsX2gKKyNkZWZpbmUgTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGxfaAor
CisjaW5jbHVkZSAiSlNTdGFjay5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyLmgiCisjaW5jbHVkZSAi
U3RhY2tBbGlnbm1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorCituYW1lc3Bh
Y2UgSlNDIHsKKworLy8gVGhlIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsIGlzIHRoZSBt
YXggYW1vdW50IG9mIHN0YWNrIHNwYWNlIChpbiBieXRlcykKKy8vIHRoYXQgY2FuIGJlIHVzZWQg
Zm9yIG91dGdvaW5nIGFyZ3Mgd2hlbiBjYWxsaW5nIGEgc2xvdyBwYXRoIEMgZnVuY3Rpb24KKy8v
IGZyb20gSlMgY29kZS4KKworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCitzdGF0aWMgY29uc3Qg
c2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMDsKKworI2VsaWYgQ1BVKFg4
Nl82NCkgJiYgT1MoV0lORE9XUykKKy8vIDQgYXJncyBpbiByZWdpc3RlcnMsIGJ1dCBzdGFjayBz
cGFjZSBuZWVkcyB0byBiZSBhbGxvY2F0ZWQgZm9yIGFsbCBhcmdzLgorc3RhdGljIGNvbnN0IHNp
emVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDY0OworCisjZWxpZiBDUFUoWDg2
XzY0KQorLy8gQWxsIGFyZ3MgaW4gcmVnaXN0ZXJzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDA7CisKKyNlbGlmIENQVShYODYpCisvLyA3IGFy
Z3Mgb24gc3RhY2sgKDI4IGJ5dGVzKS4KK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwgPSA0MDsKKworI2VsaWYgQ1BVKEFSTTY0KQorLy8gQWxsIGFyZ3Mg
aW4gcmVnaXN0ZXJzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCA9IDA7CisKKyNlbGlmIENQVShBUk0pCisvLyBGaXJzdCBmb3VyIGFyZ3MgaW4gcmVn
aXN0ZXJzLCByZW1haW5pbmcgNCBhcmdzIG9uIHN0YWNrLgorc3RhdGljIGNvbnN0IHNpemVfdCBt
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDI0OworCisjZWxpZiBDUFUoU0g0KQorLy8g
Rmlyc3QgZm91ciBhcmdzIGluIHJlZ2lzdGVycywgcmVtYWluaW5nIDQgYXJncyBvbiBzdGFjay4K
K3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAyNDsK
KworI2VsaWYgQ1BVKE1JUFMpCisvLyBUaG91Z2ggYXJncyBhcmUgaW4gcmVnaXN0ZXJzLCB0aGVy
ZSBuZWVkIHRvIGJlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgYWxsIGFyZ3MuCitzdGF0aWMgY29u
c3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDA7CisKKyNlbHNlCisj
ZXJyb3IgIlVuc3VwcG9ydGVkIENQVTogbmVlZCB2YWx1ZSBmb3IgbWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwiCisKKyNlbmRpZgorCitDT01QSUxFX0FTU0VSVCghKG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsICUgc2l6ZW9mKFJlZ2lzdGVyKSksIGV4dGVudF9tdXN0X2JlX2luX211
bHRpcGxlc19vZl9yZWdpc3RlcnMpOworLy8gTWFrZSBzdXJlIHRoYXQgY2ZyIC0gbWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwgYnl0ZXMgd2lsbCBtYWtlIHRoZSBzdGFjayBwb2ludGVyIGFs
aWduZWQKK0NPTVBJTEVfQVNTRVJUKChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCAlIDE2
KSA9PSAxNiAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSwgZXh0ZW50X211c3RfYWxpZ25fc3Rh
Y2tfZnJvbV9jYWxsZnJhbWVfcG9pbnRlcik7CisKK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGxJblJlZ2lzdGVycyA9IG1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsIC8gc2l6ZW9mKFJlZ2lzdGVyKTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNl
bmRpZiAvLyBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbF9oCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggYTRiYWE2MTAwODUy
MjM2NmQ5NGNjODM2OTg3MWE1ZmI4YzViMjc2Ni4uNmE2MDA1NzZhMDAwYWRhYzhhZjIxNGU5ODgx
MzY0NjE5ZjI5YTAxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nh
bGxMaW5rSW5mby5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM3LDE1ICszNywxNSBAQCB2b2lkIENhbGxMaW5rSW5mbzo6dW5saW5r
KFZNJiB2bSwgUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlcikKIHsKICAgICBBU1NFUlQoaXNM
aW5rZWQoKSk7CiAgICAgCisgICAgaWYgKE9wdGlvbnM6OnNob3dEaXNhc3NlbWJseSgpKQorICAg
ICAgICBkYXRhTG9nKCJVbmxpbmtpbmcgY2FsbCBmcm9tICIsIGNhbGxSZXR1cm5Mb2NhdGlvbiwg
IiB0byAiLCBwb2ludGVyRHVtcChyZXBhdGNoQnVmZmVyLmNvZGVCbG9jaygpKSwgIlxuIik7CisK
ICAgICByZXBhdGNoQnVmZmVyLnJldmVydEp1bXBSZXBsYWNlbWVudFRvQnJhbmNoUHRyV2l0aFBh
dGNoKFJlcGF0Y2hCdWZmZXI6OnN0YXJ0T2ZCcmFuY2hQdHJXaXRoUGF0Y2hPblJlZ2lzdGVyKGhv
dFBhdGhCZWdpbiksIHN0YXRpY19jYXN0PE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEPihjYWxs
ZWVHUFIpLCAwKTsKLSAgICBpZiAoaXNERkcpIHsKLSNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICAg
ICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbFJldHVybkxvY2F0aW9uLCAoY2FsbFR5cGUgPT0g
Q29uc3RydWN0ID8gdm0uZ2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpIDog
dm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKSkuY29kZSgpKTsKLSNlbHNlCi0g
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0jZW5kaWYKLSAgICB9IGVsc2UK
LSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbFJldHVybkxvY2F0aW9uLCBjYWxsVHlw
ZSA9PSBDb25zdHJ1Y3QgPyB2bS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRv
cikuY29kZSgpIDogdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkp
OworICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKAorICAgICAgICBjYWxsUmV0dXJuTG9jYXRpb24s
CisgICAgICAgIHZtLmdldENUSVN0dWIobGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgICAgICAg
ICAgY2FsbFR5cGUgPT0gQ29uc3RydWN0ID8gQ29kZUZvckNvbnN0cnVjdCA6IENvZGVGb3JDYWxs
LAorICAgICAgICAgICAgaXNGVEwgPyBNdXN0UHJlc2VydmVSZWdpc3RlcnMgOiBSZWdpc3RlclBy
ZXNlcnZhdGlvbk5vdFJlcXVpcmVkKSkuY29kZSgpKTsKICAgICBoYXNTZWVuU2hvdWxkUmVwYXRj
aCA9IGZhbHNlOwogICAgIGNhbGxlZS5jbGVhcigpOwogICAgIHN0dWIuY2xlYXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAppbmRleCAwMjQ0NDk3
ZGY0YzA1ZDEyNzM3ODFjNmY0ZWViZGM2MWZhZmZjZDQxLi5kNDM0ZTczNWQ4ZWMyM2NiMDM5YjEz
MDBjOTQwMTk1YzM1MTRiMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ2FsbExpbmtJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5oCkBAIC01NSw4ICs1NSw4IEBAIHN0cnVjdCBDYWxsTGlua0luZm8gOiBw
dWJsaWMgQmFzaWNSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJbmZvPiB7CiAgICAgfQogICAgICAg
ICAKICAgICBDYWxsTGlua0luZm8oKQotICAgICAgICA6IGhhc1NlZW5TaG91bGRSZXBhdGNoKGZh
bHNlKQotICAgICAgICAsIGlzREZHKGZhbHNlKQorICAgICAgICA6IGlzRlRMKGZhbHNlKQorICAg
ICAgICAsIGhhc1NlZW5TaG91bGRSZXBhdGNoKGZhbHNlKQogICAgICAgICAsIGhhc1NlZW5DbG9z
dXJlKGZhbHNlKQogICAgICAgICAsIGNhbGxUeXBlKE5vbmUpCiAgICAgewpAQCAtNzksOCArNzks
OCBAQCBzdHJ1Y3QgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2VudGluZWxOb2RlPENh
bGxMaW5rSW5mbz4gewogICAgIEpJVFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBjYWxsZWU7CiAg
ICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IGxhc3RTZWVuQ2FsbGVlOwogICAgIFJlZlB0cjxD
bG9zdXJlQ2FsbFN0dWJSb3V0aW5lPiBzdHViOworICAgIGJvb2wgaXNGVEwgOiAxOwogICAgIGJv
b2wgaGFzU2VlblNob3VsZFJlcGF0Y2ggOiAxOwotICAgIGJvb2wgaXNERkcgOiAxOwogICAgIGJv
b2wgaGFzU2VlbkNsb3N1cmUgOiAxOwogICAgIHVuc2lnbmVkIGNhbGxUeXBlIDogNTsgLy8gQ2Fs
bFR5cGUKICAgICB1bnNpZ25lZCBjYWxsZWVHUFIgOiA4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAKaW5kZXggYjY0Yzk2N2U5MjllZTcx
NDg4NTMyODQ3ZDljNzljOGYzMTE4NWZkMi4uYTQyNmM4NzQwN2ZmMjdiNGMzMzcyODVlMWRiNmUw
YTE0ZjYxNGE3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nh
bGxMaW5rU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2Fs
bExpbmtTdGF0dXMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMyArMjYsMTcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJDYWxsTGlua1N0YXR1cy5oIgogCisjaW5jbHVkZSAiQ2FsbExp
bmtJbmZvLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5o
IgogI2luY2x1ZGUgIkxMSW50Q2FsbExpbmtJbmZvLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0
YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKwogQ2FsbExpbmtTdGF0dXM6OkNhbGxM
aW5rU3RhdHVzKEpTVmFsdWUgdmFsdWUpCiAgICAgOiBtX2NhbGxUYXJnZXQodmFsdWUpCiAgICAg
LCBtX2V4ZWN1dGFibGUoMCkKQEAgLTgxLDEyICs4NSwyNCBAQCBJbnRyaW5zaWMgQ2FsbExpbmtT
dGF0dXM6OmludHJpbnNpY0ZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fZXhlY3V0YWJsZS0+aW50cmluc2ljRm9yKGtpbmQpOwogfQogCi1DYWxsTGlu
a1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqIHByb2Zp
bGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpCitDYWxsTGlua1N0YXR1cyBDYWxsTGlu
a1N0YXR1czo6Y29tcHV0ZUZyb21MTEludChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2Nr
ZXIsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKIHsK
ICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CiAgICAgVU5VU0VEX1BBUkFNKGJ5dGVj
b2RlSW5kZXgpOwogI2lmIEVOQUJMRShMTElOVCkKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+aGFz
RXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFk
RnVuY3Rpb24pKSkgeworICAgICAgICAvLyBXZSBjb3VsZCBmb3JjZSB0aGlzIHRvIGJlIGEgY2xv
c3VyZSBjYWxsLCBidXQgaW5zdGVhZCB3ZSdsbCBqdXN0IGFzc3VtZSB0aGF0IGl0CisgICAgICAg
IC8vIHRha2VzIHNsb3cgcGF0aC4KKyAgICAgICAgcmV0dXJuIHRha2VzU2xvd1BhdGgoKTsKKyAg
ICB9CisgICAgCisgICAgVk0mIHZtID0gKnByb2ZpbGVkQmxvY2stPnZtKCk7CisgICAgCiAgICAg
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gcHJvZmlsZWRCbG9jay0+aW5zdHJ1Y3Rpb25zKCku
YmVnaW4oKSArIGJ5dGVjb2RlSW5kZXg7CisgICAgT3Bjb2RlSUQgb3AgPSB2bS5pbnRlcnByZXRl
ci0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUpOworICAgIGlmIChvcCAhPSBv
cF9jYWxsICYmIG9wICE9IG9wX2NvbnN0cnVjdCkKKyAgICAgICAgcmV0dXJuIENhbGxMaW5rU3Rh
dHVzKCk7CisgICAgCiAgICAgTExJbnRDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA9IGluc3Ry
dWN0aW9uWzVdLnUuY2FsbExpbmtJbmZvOwogICAgIAogICAgIHJldHVybiBDYWxsTGlua1N0YXR1
cyhjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLmdldCgpKTsKQEAgLTEwMiwyNyArMTE4LDEx
NyBAQCBDYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sq
IHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dAogICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJs
b2NrKTsKICAgICBVTlVTRURfUEFSQU0oYnl0ZWNvZGVJbmRleCk7CiAjaWYgRU5BQkxFKEpJVCkK
KyAgICBpZiAocHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50
RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGUpKQorICAgICAgICB8fCBwcm9maWxlZEJs
b2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUlu
ZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQpKQorICAgICAgICB8fCBwcm9maWxlZEJsb2NrLT5oYXNF
eGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRF
eGVjdXRhYmxlKSkpCisgICAgICAgIHJldHVybiB0YWtlc1Nsb3dQYXRoKCk7CisgICAgCiAgICAg
aWYgKCFwcm9maWxlZEJsb2NrLT5oYXNCYXNlbGluZUpJVFByb2ZpbGluZygpKQotICAgICAgICBy
ZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KTsKKyAg
ICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBieXRl
Y29kZUluZGV4KTsKICAgICAKICAgICBpZiAocHJvZmlsZWRCbG9jay0+Y291bGRUYWtlU2xvd0Nh
c2UoYnl0ZWNvZGVJbmRleCkpCi0gICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1czo6dGFrZXNT
bG93UGF0aCgpOworICAgICAgICByZXR1cm4gdGFrZXNTbG93UGF0aCgpOwogICAgIAogICAgIENh
bGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvID0gcHJvZmlsZWRCbG9jay0+Z2V0Q2FsbExpbmtJbmZv
KGJ5dGVjb2RlSW5kZXgpOworICAgIAorICAgIENhbGxMaW5rU3RhdHVzIHJlc3VsdCA9IGNvbXB1
dGVGb3IobG9ja2VyLCBjYWxsTGlua0luZm8pOworICAgIGlmICghcmVzdWx0KQorICAgICAgICBy
ZXR1cm4gY29tcHV0ZUZyb21MTEludChsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5k
ZXgpOworICAgIAorICAgIGlmIChwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERG
Rzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRGdW5jdGlvbikpKQorICAgICAg
ICByZXN1bHQubWFrZUNsb3N1cmVDYWxsKCk7CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKKyNl
bHNlCisgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKCk7CisjZW5kaWYKK30KKworQ2FsbExpbmtT
dGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3IoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQorewogICAgIGlmIChjYWxsTGlua0luZm8u
c3R1YikKICAgICAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKGNhbGxMaW5rSW5mby5zdHViLT5l
eGVjdXRhYmxlKCksIGNhbGxMaW5rSW5mby5zdHViLT5zdHJ1Y3R1cmUoKSk7CiAgICAgCiAgICAg
SlNGdW5jdGlvbiogdGFyZ2V0ID0gY2FsbExpbmtJbmZvLmxhc3RTZWVuQ2FsbGVlLmdldCgpOwog
ICAgIGlmICghdGFyZ2V0KQotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxl
ZEJsb2NrLCBieXRlY29kZUluZGV4KTsKKyAgICAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKCk7
CiAgICAgCiAgICAgaWYgKGNhbGxMaW5rSW5mby5oYXNTZWVuQ2xvc3VyZSkKICAgICAgICAgcmV0
dXJuIENhbGxMaW5rU3RhdHVzKHRhcmdldC0+ZXhlY3V0YWJsZSgpLCB0YXJnZXQtPnN0cnVjdHVy
ZSgpKTsKIAogICAgIHJldHVybiBDYWxsTGlua1N0YXR1cyh0YXJnZXQpOwotI2Vsc2UKLSAgICBy
ZXR1cm4gQ2FsbExpbmtTdGF0dXMoKTsKLSNlbmRpZgorfQorCit2b2lkIENhbGxMaW5rU3RhdHVz
Ojpjb21wdXRlREZHU3RhdHVzZXMoCisgICAgQ29kZUJsb2NrKiBkZmdDb2RlQmxvY2ssIENhbGxM
aW5rU3RhdHVzOjpDb250ZXh0TWFwJiBtYXApCit7CisjaWYgRU5BQkxFKERGR19KSVQpCisgICAg
UkVMRUFTRV9BU1NFUlQoZGZnQ29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6REZHSklU
KTsKKyAgICBDb2RlQmxvY2sqIGJhc2VsaW5lQ29kZUJsb2NrID0gZGZnQ29kZUJsb2NrLT5hbHRl
cm5hdGl2ZSgpOworICAgIERGRzo6SklUQ29kZSogaml0Q29kZSA9IGRmZ0NvZGVCbG9jay0+aml0
Q29kZSgpLT5kZmcoKTsKKyAgICBSRUxFQVNFX0FTU0VSVChkZmdDb2RlQmxvY2stPm51bWJlck9m
Q2FsbExpbmtJbmZvcygpIDw9IGppdENvZGUtPnNsb3dQYXRoQ2FsbHMuc2l6ZSgpKTsKKyAgICAK
KyAgICBmb3IgKHNpemVfdCBpID0gZGZnQ29kZUJsb2NrLT5udW1iZXJPZkNhbGxMaW5rSW5mb3Mo
KTsgaS0tOykgeworICAgICAgICBDYWxsTGlua0luZm8mIGluZm8gPSBkZmdDb2RlQmxvY2stPmNh
bGxMaW5rSW5mbyhpKTsKKyAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gaW5mby5jb2Rl
T3JpZ2luOworICAgICAgICAKKyAgICAgICAgYm9vbCB0YWtlU2xvd1BhdGg7CisgICAgICAgIGJv
b2wgYmFkRnVuY3Rpb247CisgICAgICAgIAorICAgICAgICAvLyBDaGVjayBpZiB3ZSBoYWQgYWxy
ZWFkeSBwcmV2aW91c2x5IG1hZGUgYSB0ZXJyaWJsZSBtaXN0YWtlIGluIHRoZSBGVEwgZm9yIHRo
aXMKKyAgICAgICAgLy8gY29kZSBvcmlnaW4uIE5vdGUgdGhhdCB0aGlzIGlzIGFwcHJveGltYXRl
IGJlY2F1c2Ugd2UgY291bGQgaGF2ZSBhIG1vbm92YXJpYW50CisgICAgICAgIC8vIGlubGluZSBp
biB0aGUgRlRMIHRoYXQgZW5kZWQgdXAgZmFpbGluZy4gV2Ugc2hvdWxkIGZpeCB0aGF0IGF0IHNv
bWUgcG9pbnQgYnkKKyAgICAgICAgLy8gaGF2aW5nIGRhdGEgc3RydWN0dXJlcyB0byB0cmFjayB0
aGUgY29udGV4dCBvZiBmcmVxdWVudCBleGl0cy4gVGhpcyBpcyBjdXJyZW50bHkKKyAgICAgICAg
Ly8gY2hhbGxlbmdpbmcgYmVjYXVzZSBpdCB3b3VsZCByZXF1aXJlIGNyZWF0aW5nIGEgQ29kZU9y
aWdpbi1iYXNlZCBkYXRhYmFzZSBpbgorICAgICAgICAvLyBiYXNlbGluZSBDb2RlQmxvY2tzLCBi
dXQgdGhvc2UgQ29kZUJsb2NrcyBkb24ndCByZWFsbHkgaGF2ZSBhIHBsYWNlIHRvIHB1dCB0aGUK
KyAgICAgICAgLy8gSW5saW5lQ2FsbEZyYW1lcy4KKyAgICAgICAgQ29kZUJsb2NrKiBjdXJyZW50
QmFzZWxpbmUgPQorICAgICAgICAgICAgYmFzZWxpbmVDb2RlQmxvY2tGb3JPcmlnaW5BbmRCYXNl
bGluZUNvZGVCbG9jayhjb2RlT3JpZ2luLCBiYXNlbGluZUNvZGVCbG9jayk7CisgICAgICAgIHsK
KyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGN1cnJlbnRCYXNlbGluZS0+
bV9sb2NrKTsKKyAgICAgICAgICAgIHRha2VTbG93UGF0aCA9CisgICAgICAgICAgICAgICAgY3Vy
cmVudEJhc2VsaW5lLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShj
b2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlLCBFeGl0RnJvbUZUTCkpCisgICAgICAg
ICAgICAgICAgfHwgY3VycmVudEJhc2VsaW5lLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJl
cXVlbnRFeGl0U2l0ZShjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlV2F0Y2hwb2lu
dCwgRXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHx8IGN1cnJlbnRCYXNlbGluZS0+aGFz
RXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5ieXRlY29k
ZUluZGV4LCBCYWRFeGVjdXRhYmxlLCBFeGl0RnJvbUZUTCkpOworICAgICAgICAgICAgYmFkRnVu
Y3Rpb24gPQorICAgICAgICAgICAgICAgIGN1cnJlbnRCYXNlbGluZS0+aGFzRXhpdFNpdGUobG9j
a2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBCYWRG
dW5jdGlvbiwgRXhpdEZyb21GVEwpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgewor
ICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoZGZnQ29kZUJsb2NrLT5tX2xv
Y2spOworICAgICAgICAgICAgaWYgKHRha2VTbG93UGF0aCB8fCBqaXRDb2RlLT5zbG93UGF0aENh
bGxzW2ldID49IE9wdGlvbnM6OmNvdWxkVGFrZVNsb3dDYXNlTWluaW11bUNvdW50KCkpCisgICAg
ICAgICAgICAgICAgbWFwLmFkZChpbmZvLmNvZGVPcmlnaW4sIHRha2VzU2xvd1BhdGgoKSk7Cisg
ICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBDYWxsTGlua1N0YXR1cyBzdGF0dXMg
PSBjb21wdXRlRm9yKGxvY2tlciwgaW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cy5p
c1NldCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChiYWRGdW5jdGlvbikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXR1cy5tYWtlQ2xvc3VyZUNhbGwoKTsKKyAgICAgICAgICAgICAg
ICAgICAgbWFwLmFkZChpbmZvLmNvZGVPcmlnaW4sIHN0YXR1cyk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShERkdf
SklUKQorICAgIAorICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgIGRhdGFMb2coIkNvbnRleHQg
bWFwOlxuIik7CisgICAgICAgIENvbnRleHRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtYXAuYmVnaW4o
KTsKKyAgICAgICAgQ29udGV4dE1hcDo6aXRlcmF0b3IgZW5kID0gbWFwLmVuZCgpOworICAgICAg
ICBmb3IgKDsgaXRlciAhPSBlbmQ7ICsraXRlcikgeworICAgICAgICAgICAgZGF0YUxvZygiICAg
ICIsIGl0ZXItPmtleSwgIjpcbiIpOworICAgICAgICAgICAgZGF0YUxvZygiICAgICAgICAiLCBp
dGVyLT52YWx1ZSwgIlxuIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK0NhbGxMaW5rU3RhdHVz
IENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKAorICAgIENvZGVCbG9jayogcHJvZmlsZWRCbG9j
aywgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBDYWxsTGlua1N0YXR1czo6Q29udGV4dE1h
cCYgbWFwKQoreworICAgIENvbnRleHRNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtYXAuZmlu
ZChjb2RlT3JpZ2luKTsKKyAgICBpZiAoaXRlciAhPSBtYXAuZW5kKCkpCisgICAgICAgIHJldHVy
biBpdGVyLT52YWx1ZTsKKyAgICAKKyAgICByZXR1cm4gY29tcHV0ZUZvcihwcm9maWxlZEJsb2Nr
LCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwogfQogCiB2b2lkIENhbGxMaW5rU3RhdHVzOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua1N0YXR1cy5oCmluZGV4IDUxOTY1ZmU0YThiOTk3NDFhM2I5M2ZlM2Ix
NGY0YzJkN2FiZjVkNTYuLmY5YTlhMjY0Nzc2YTUzN2Q5M2U4NWViMzYxZWQxNTdjNzY4YmNjM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNiw3ICsyNiw5IEBACiAjaWZuZGVmIENhbGxMaW5rU3RhdHVzX2gKICNk
ZWZpbmUgQ2FsbExpbmtTdGF0dXNfaAogCisjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1
ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKKyNpbmNsdWRlICJDb25jdXJyZW50SklUTG9j
ay5oIgogI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKIApA
QCAtMzcsNiArMzksNyBAQCBjbGFzcyBFeGVjdXRhYmxlQmFzZTsKIGNsYXNzIEludGVybmFsRnVu
Y3Rpb247CiBjbGFzcyBKU0Z1bmN0aW9uOwogY2xhc3MgU3RydWN0dXJlOworc3RydWN0IENhbGxM
aW5rSW5mbzsKIAogY2xhc3MgQ2FsbExpbmtTdGF0dXMgewogcHVibGljOgpAQCAtNzQsMzEgKzc3
LDE5IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZv
cihDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KTsKICAgICAKLSAgICBDYWxsTGlu
a1N0YXR1cyYgc2V0SGFzQmFkRnVuY3Rpb25FeGl0U2l0ZShib29sIGRpZEhhdmVFeGl0U2l0ZSkK
LSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1Byb3ZlZCk7Ci0gICAgICAgIGlmIChkaWRIYXZl
RXhpdFNpdGUpIHsKLSAgICAgICAgICAgIC8vIFR1cm4gdGhpcyBpbnRvIGEgY2xvc3VyZSBjYWxs
LgotICAgICAgICAgICAgbV9jYWxsVGFyZ2V0ID0gSlNWYWx1ZSgpOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiAqdGhpczsKLSAgICB9CisgICAgLy8gQ29tcHV0ZXMgdGhlIHN0YXR1cyBhc3N1
bWluZyB0aGF0IHdlIG5ldmVyIHRvb2sgc2xvdyBwYXRoIGFuZCBuZXZlciBwcmV2aW91c2x5Cisg
ICAgLy8gZXhpdGVkLgorICAgIHN0YXRpYyBDYWxsTGlua1N0YXR1cyBjb21wdXRlRm9yKGNvbnN0
IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDYWxsTGlua0luZm8mKTsKICAgICAKLSAgICBDYWxsTGlu
a1N0YXR1cyYgc2V0SGFzQmFkQ2FjaGVFeGl0U2l0ZShib29sIGRpZEhhdmVFeGl0U2l0ZSkKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1Byb3ZlZCk7Ci0gICAgICAgIGlmIChkaWRIYXZlRXhp
dFNpdGUpCi0gICAgICAgICAgICAqdGhpcyA9IHRha2VzU2xvd1BhdGgoKTsKLSAgICAgICAgcmV0
dXJuICp0aGlzOwotICAgIH0KKyAgICB0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgQ2FsbExp
bmtTdGF0dXMsIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g+IENvbnRleHRNYXA7CiAgICAgCi0g
ICAgQ2FsbExpbmtTdGF0dXMmIHNldEhhc0JhZEV4ZWN1dGFibGVFeGl0U2l0ZShib29sIGRpZEhh
dmVFeGl0U2l0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1Byb3ZlZCk7Ci0gICAgICAg
IGlmIChkaWRIYXZlRXhpdFNpdGUpCi0gICAgICAgICAgICAqdGhpcyA9IHRha2VzU2xvd1BhdGgo
KTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KKyAgICAvLyBDb21wdXRlcyBhbGwgb2Yg
dGhlIHN0YXR1c2VzIG9mIHRoZSBERkcgY29kZSBibG9jay4gRG9lc24ndCBpbmNsdWRlIHN0YXR1
c2VzIHRoYXQgaGFkCisgICAgLy8gbm8gaW5mb3JtYXRpb24uIEN1cnJlbnRseSB3ZSB1c2UgdGhp
cyB3aGVuIGNvbXBpbGluZyBGVEwgY29kZSwgdG8gZW5hYmxlIHBvbHl2YXJpYW50CisgICAgLy8g
aW5saW5pbmcuCisgICAgc3RhdGljIHZvaWQgY29tcHV0ZURGR1N0YXR1c2VzKENvZGVCbG9jayog
ZGZnQ29kZUJsb2NrLCBDb250ZXh0TWFwJik7CisgICAgCisgICAgLy8gSGVscGVyIHRoYXQgZmly
c3QgY29uc3VsdHMgdGhlIENvbnRleHRNYXAgYW5kIHRoZW4gZG9lcyBjb21wdXRlRm9yKCkuCisg
ICAgc3RhdGljIENhbGxMaW5rU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiwgQ29kZU9yaWdp
biwgY29uc3QgQ29udGV4dE1hcCYpOwogICAgIAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJl
dHVybiBtX2NhbGxUYXJnZXQgfHwgbV9leGVjdXRhYmxlIHx8IG1fY291bGRUYWtlU2xvd1BhdGg7
IH0KICAgICAKQEAgLTExOSw3ICsxMTAsMTQgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcChQcmlu
dFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgQ2FsbExpbmtTdGF0
dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KTsK
KyAgICB2b2lkIG1ha2VDbG9zdXJlQ2FsbCgpCisgICAgeworICAgICAgICBBU1NFUlQoIW1faXNQ
cm92ZWQpOworICAgICAgICAvLyBUdXJuIHRoaXMgaW50byBhIGNsb3N1cmUgY2FsbC4KKyAgICAg
ICAgbV9jYWxsVGFyZ2V0ID0gSlNWYWx1ZSgpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgQ2Fs
bExpbmtTdGF0dXMgY29tcHV0ZUZyb21MTEludChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwg
Q29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7CiAgICAgCiAgICAgSlNWYWx1ZSBt
X2NhbGxUYXJnZXQ7CiAgICAgRXhlY3V0YWJsZUJhc2UqIG1fZXhlY3V0YWJsZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggZGE4MTQzMzY5Mzlj
OGEzOGYyZDY3Mzk4NWI2ODI5ZTY3YmY2MGMxOS4uNzg2M2E2NjhhYjczMDAzM2Q2YmI2NGYwZDli
MDMwYzI4NWE0ZGFiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5jcHAKQEAgLTEyOSwxMCArMTI5LDE1IEBAIENTdHJpbmcgQ29kZUJsb2NrOjpzb3VyY2VD
b2RlT25PbmVMaW5lKCkgY29uc3QKIAogdm9pZCBDb2RlQmxvY2s6OmR1bXBBc3N1bWluZ0pJVFR5
cGUoUHJpbnRTdHJlYW0mIG91dCwgSklUQ29kZTo6SklUVHlwZSBqaXRUeXBlKSBjb25zdAogewor
ICAgIG91dC5wcmludChpbmZlcnJlZE5hbWUoKSwgIiMiKTsKICAgICBpZiAoaGFzSGFzaCgpIHx8
IGlzU2FmZVRvQ29tcHV0ZUhhc2goKSkKLSAgICAgICAgb3V0LnByaW50KGluZmVycmVkTmFtZSgp
LCAiIyIsIGhhc2goKSwgIjpbIiwgUmF3UG9pbnRlcih0aGlzKSwgIi0+IiwgUmF3UG9pbnRlcihv
d25lckV4ZWN1dGFibGUoKSksICIsICIsIGppdFR5cGUsIGNvZGVUeXBlKCkpOworICAgICAgICBv
dXQucHJpbnQoaGFzaCgpKTsKICAgICBlbHNlCi0gICAgICAgIG91dC5wcmludChpbmZlcnJlZE5h
bWUoKSwgIiM8bm8taGFzaD46WyIsIFJhd1BvaW50ZXIodGhpcyksICItPiIsIFJhd1BvaW50ZXIo
b3duZXJFeGVjdXRhYmxlKCkpLCAiLCAiLCBqaXRUeXBlLCBjb2RlVHlwZSgpKTsKKyAgICAgICAg
b3V0LnByaW50KCI8bm8taGFzaD4iKTsKKyAgICBvdXQucHJpbnQoIjpbIiwgUmF3UG9pbnRlcih0
aGlzKSwgIi0+Iik7CisgICAgaWYgKCEhbV9hbHRlcm5hdGl2ZSkKKyAgICAgICAgb3V0LnByaW50
KFJhd1BvaW50ZXIobV9hbHRlcm5hdGl2ZS5nZXQoKSksICItPiIpOworICAgIG91dC5wcmludChS
YXdQb2ludGVyKG93bmVyRXhlY3V0YWJsZSgpKSwgIiwgIiwgaml0VHlwZSwgY29kZVR5cGUoKSk7
CiAKICAgICBpZiAoY29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpCiAgICAgICAgIG91dC5wcmlu
dChzcGVjaWFsaXphdGlvbktpbmQoKSk7CkBAIC0xNDMsNiArMTQ4LDEwIEBAIHZvaWQgQ29kZUJs
b2NrOjpkdW1wQXNzdW1pbmdKSVRUeXBlKFByaW50U3RyZWFtJiBvdXQsIEpJVENvZGU6OkpJVFR5
cGUgaml0VHlwZSkKICAgICAgICAgb3V0LnByaW50KCIgKE5ldmVySW5saW5lKSIpOwogICAgIGlm
IChvd25lckV4ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkpCiAgICAgICAgIG91dC5wcmludCgi
IChTdHJpY3RNb2RlKSIpOworICAgIGlmICh0aGlzLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6QmFz
ZWxpbmVKSVQgJiYgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb24pCisgICAgICAgIG91dC5wcmludCgi
IChGVExGYWlsKSIpOworICAgIGlmICh0aGlzLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6QmFzZWxp
bmVKSVQgJiYgbV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMKQorICAgICAgICBvdXQucHJpbnQoIiAo
SGFkRlRMUmVwbGFjZW1lbnQpIik7CiAgICAgb3V0LnByaW50KCJdIik7CiB9CiAKQEAgLTUyNiwx
MiArNTM1LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbSYgb3V0
KQogICAgIG91dC5wcmludGYoIlxuIik7CiAgICAgCiAgICAgU3R1YkluZm9NYXAgc3R1YkluZm9z
OwotI2lmIEVOQUJMRShKSVQpCi0gICAgewotICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2xvY2spOwotICAgICAgICBnZXRTdHViSW5mb01hcChsb2NrZXIsIHN0dWJJbmZvcyk7
Ci0gICAgfQotI2VuZGlmCisgICAgZ2V0U3R1YkluZm9NYXAoc3R1YkluZm9zKTsKICAgICAKICAg
ICBjb25zdCBJbnN0cnVjdGlvbiogYmVnaW4gPSBpbnN0cnVjdGlvbnMoKS5iZWdpbigpOwogICAg
IGNvbnN0IEluc3RydWN0aW9uKiBlbmQgPSBpbnN0cnVjdGlvbnMoKS5lbmQoKTsKQEAgLTE0Njks
NiArMTQ3Myw3IEBAIENvZGVCbG9jazo6Q29kZUJsb2NrKENvcHlQYXJzZWRCbG9ja1RhZywgQ29k
ZUJsb2NrJiBvdGhlcikKICAgICAsIG1faXNDb25zdHJ1Y3RvcihvdGhlci5tX2lzQ29uc3RydWN0
b3IpCiAgICAgLCBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZCh0cnVlKQogICAgICwgbV9kaWRGYWls
RlRMQ29tcGlsYXRpb24oZmFsc2UpCisgICAgLCBtX2hhc0JlZW5Db21waWxlZFdpdGhGVEwoZmFs
c2UpCiAgICAgLCBtX3VubGlua2VkQ29kZSgqb3RoZXIubV92bSwgb3RoZXIubV9vd25lckV4ZWN1
dGFibGUuZ2V0KCksIG90aGVyLm1fdW5saW5rZWRDb2RlLmdldCgpKQogICAgICwgbV9zdGVwcGlu
Z01vZGUoU3RlcHBpbmdNb2RlRGlzYWJsZWQpCiAgICAgLCBtX251bUJyZWFrcG9pbnRzKDApCkBA
IC0xNTI1LDYgKzE1MzAsNyBAQCBDb2RlQmxvY2s6OkNvZGVCbG9jayhTY3JpcHRFeGVjdXRhYmxl
KiBvd25lckV4ZWN1dGFibGUsIFVubGlua2VkQ29kZUJsb2NrKiB1bmxpbgogICAgICwgbV9pc0Nv
bnN0cnVjdG9yKHVubGlua2VkQ29kZUJsb2NrLT5pc0NvbnN0cnVjdG9yKCkpCiAgICAgLCBtX3No
b3VsZEFsd2F5c0JlSW5saW5lZCh0cnVlKQogICAgICwgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb24o
ZmFsc2UpCisgICAgLCBtX2hhc0JlZW5Db21waWxlZFdpdGhGVEwoZmFsc2UpCiAgICAgLCBtX3Vu
bGlua2VkQ29kZShtX2dsb2JhbE9iamVjdC0+dm0oKSwgb3duZXJFeGVjdXRhYmxlLCB1bmxpbmtl
ZENvZGVCbG9jaykKICAgICAsIG1fc3RlcHBpbmdNb2RlKFN0ZXBwaW5nTW9kZURpc2FibGVkKQog
ICAgICwgbV9udW1CcmVha3BvaW50cygwKQpAQCAtMTg1NCwyMyArMTg2MCwxMyBAQCBDb2RlQmxv
Y2s6OkNvZGVCbG9jayhTY3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGlua2Vk
Q29kZUJsb2NrKiB1bmxpbgogCiAgICAgLy8gSWYgdGhlIGNvbmN1cnJlbnQgdGhyZWFkIHdpbGwg
d2FudCB0aGUgY29kZSBibG9jaydzIGhhc2gsIHRoZW4gY29tcHV0ZSBpdCBoZXJlCiAgICAgLy8g
c3luY2hyb25vdXNseS4KLSAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5KCkKLSAgICAg
ICAgfHwgT3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkKLSAgICAgICAgfHwgT3B0aW9uczo6
ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCkKLSAgICAgICAgfHwgT3B0aW9uczo6ZHVtcEdyYXBoQXRF
YWNoUGhhc2UoKQotICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKQotICAg
ICAgICB8fCBPcHRpb25zOjpsb2dDb21waWxhdGlvbkNoYW5nZXMoKQotICAgICAgICB8fCBPcHRp
b25zOjp2YWxpZGF0ZUdyYXBoKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRhdGVHcmFwaEF0
RWFjaFBoYXNlKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpCi0gICAgICAgIHx8
IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkKLSAgICAgICAgfHwgT3B0aW9uczo6
cmVwb3J0Q29tcGlsZVRpbWVzKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNGQSgpKQor
ICAgIGlmIChPcHRpb25zOjphbHdheXNDb21wdXRlSGFzaCgpKQogICAgICAgICBoYXNoKCk7CiAK
ICAgICBpZiAoT3B0aW9uczo6ZHVtcEdlbmVyYXRlZEJ5dGVjb2RlcygpKQogICAgICAgICBkdW1w
Qnl0ZWNvZGUoKTsKIAorICAgIAogICAgIG1faGVhcC0+bV9jb2RlQmxvY2tzLmFkZCh0aGlzKTsK
ICAgICBtX2hlYXAtPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChzaXplb2YoQ29kZUJsb2NrKSArIG1f
aW5zdHJ1Y3Rpb25zLnNpemUoKSAqIHNpemVvZihJbnN0cnVjdGlvbikpOwogfQpAQCAtMjMzNCwx
NiArMjMzMCwyNiBAQCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoKQog
I2VuZGlmCiB9CiAKK3ZvaWQgQ29kZUJsb2NrOjpnZXRTdHViSW5mb01hcChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgU3R1YkluZm9NYXAmIHJlc3VsdCkKK3sKICNpZiBFTkFCTEUoSklUKQot
U3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1YkluZm8oKQorICAgIHRvSGFzaE1h
cChtX3N0dWJJbmZvcywgZ2V0U3RydWN0dXJlU3R1YkluZm9Db2RlT3JpZ2luLCByZXN1bHQpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKKyNlbmRpZgorfQorCit2b2lkIENvZGVC
bG9jazo6Z2V0U3R1YkluZm9NYXAoU3R1YkluZm9NYXAmIHJlc3VsdCkKIHsKICAgICBDb25jdXJy
ZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBtX3N0dWJJbmZvcy5hZGQo
KTsKKyAgICBnZXRTdHViSW5mb01hcChsb2NrZXIsIHJlc3VsdCk7CiB9CiAKLXZvaWQgQ29kZUJs
b2NrOjpnZXRTdHViSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgU3R1YkluZm9N
YXAmIHJlc3VsdCkKKyNpZiBFTkFCTEUoSklUKQorU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9j
azo6YWRkU3R1YkluZm8oKQogewotICAgIHRvSGFzaE1hcChtX3N0dWJJbmZvcywgZ2V0U3RydWN0
dXJlU3R1YkluZm9Db2RlT3JpZ2luLCByZXN1bHQpOworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKG1fbG9jayk7CisgICAgcmV0dXJuIG1fc3R1YkluZm9zLmFkZCgpOwogfQogCiB2b2lk
IENvZGVCbG9jazo6cmVzZXRTdHViKFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKQEAgLTI4
OTksNiArMjkwNSwxMSBAQCB2b2lkIENvZGVCbG9jazo6Y291bnRSZW9wdGltaXphdGlvbigpCiB1
bnNpZ25lZCBDb2RlQmxvY2s6Om51bWJlck9mREZHQ29tcGlsZXMoKQogewogICAgIEFTU0VSVChK
SVRDb2RlOjppc0Jhc2VsaW5lQ29kZShqaXRUeXBlKCkpKTsKKyAgICBpZiAoT3B0aW9uczo6dGVz
dFRoZUZUTCgpKSB7CisgICAgICAgIGlmIChtX2RpZEZhaWxGVExDb21waWxhdGlvbikKKyAgICAg
ICAgICAgIHJldHVybiAxMDAwMDAwOworICAgICAgICByZXR1cm4gKG1faGFzQmVlbkNvbXBpbGVk
V2l0aEZUTCA/IDEgOiAwKSArIG1fcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXI7CisgICAgfQog
ICAgIHJldHVybiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKHJlcGxhY2VtZW50KCktPmppdFR5
cGUoKSkgPyAxIDogMCkgKyBtX3Jlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyOwogfQogCkBAIC0z
MDEwLDcgKzMwMjEsNyBAQCBpbnQzMl90IENvZGVCbG9jazo6YWRqdXN0ZWRDb3VudGVyVmFsdWUo
aW50MzJfdCBkZXNpcmVkVGhyZXNob2xkKQogYm9vbCBDb2RlQmxvY2s6OmNoZWNrSWZPcHRpbWl6
YXRpb25UaHJlc2hvbGRSZWFjaGVkKCkKIHsKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICBpZiAo
REZHOjpXb3JrbGlzdCogd29ya2xpc3QgPSBtX3ZtLT53b3JrbGlzdC5nZXQoKSkgeworICAgIGlm
IChERkc6OldvcmtsaXN0KiB3b3JrbGlzdCA9IERGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlz
dE9yTnVsbCgpKSB7CiAgICAgICAgIGlmICh3b3JrbGlzdC0+Y29tcGlsYXRpb25TdGF0ZShERkc6
OkNvbXBpbGF0aW9uS2V5KHRoaXMsIERGRzo6REZHTW9kZSkpCiAgICAgICAgICAgICA9PSBERkc6
OldvcmtsaXN0OjpDb21waWxlZCkgewogICAgICAgICAgICAgb3B0aW1pemVOZXh0SW52b2NhdGlv
bigpOwpAQCAtMzM0MSw2ICszMzUyLDExIEBAIHVuc2lnbmVkIENvZGVCbG9jazo6ZnJhbWVSZWdp
c3RlckNvdW50KCkKICAgICB9CiB9CiAKK2ludCBDb2RlQmxvY2s6OnN0YWNrUG9pbnRlck9mZnNl
dCgpCit7CisgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lUmVnaXN0ZXJD
b3VudCgpIC0gMSkub2Zmc2V0KCk7Cit9CisKIHNpemVfdCBDb2RlQmxvY2s6OnByZWRpY3RlZE1h
Y2hpbmVDb2RlU2l6ZSgpCiB7CiAgICAgLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBmcm9tIENvZGVC
bG9jazo6Q29kZUJsb2NrIGJlZm9yZSBlaXRoZXIgbV92bSBvciB0aGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA2OWY0MjE4NGVkYTEwZmNkZWY0YmQz
NjEzNmFiMzk4OTg0YzJmZGRjLi5jYmRjMzgxN2M4ZWZhNGIyZGUxODM3NDFlOWFlMmJhZDg3YjMz
MzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC0x
NzUsNiArMTc1LDkgQEAgcHVibGljOgogICAgIHZvaWQgZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNv
ZGVPZmZzZXQodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsIGludCYgZGl2b3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIHN0YXJ0T2Zmc2V0LCBpbnQmIGVu
ZE9mZnNldCwgdW5zaWduZWQmIGxpbmUsIHVuc2lnbmVkJiBjb2x1bW4pOwogCisgICAgdm9pZCBn
ZXRTdHViSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgU3R1YkluZm9NYXAmIHJl
c3VsdCk7CisgICAgdm9pZCBnZXRTdHViSW5mb01hcChTdHViSW5mb01hcCYgcmVzdWx0KTsKKwog
I2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZvKCk7CiAg
ICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPjo6aXRlcmF0b3IgYmVnaW4oKSB7IHJldHVybiBtX3N0
dWJJbmZvcy5iZWdpbigpOyB9CkBAIC0xODIsOCArMTg1LDYgQEAgcHVibGljOgogCiAgICAgdm9p
ZCByZXNldFN0dWIoU3RydWN0dXJlU3R1YkluZm8mKTsKICAgICAKLSAgICB2b2lkIGdldFN0dWJJ
bmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01hcCYgcmVzdWx0KTsK
LQogICAgIEJ5VmFsSW5mbyYgZ2V0QnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpCiAg
ICAgewogICAgICAgICByZXR1cm4gKihiaW5hcnlTZWFyY2g8QnlWYWxJbmZvLCB1bnNpZ25lZD4o
bV9ieVZhbEluZm9zLCBtX2J5VmFsSW5mb3Muc2l6ZSgpLCBieXRlY29kZUluZGV4LCBnZXRCeVZh
bEluZm9CeXRlY29kZUluZGV4KSk7CkBAIC0yNTYsMTcgKzI1NywxNSBAQCBwdWJsaWM6CiAgICAg
Ly8gRXhhY3RseSBlcXVpdmFsZW50IHRvIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCktPm5l
d1JlcGxhY2VtZW50Q29kZUJsb2NrRm9yKGNvZGVCbG9jay0+c3BlY2lhbGl6YXRpb25LaW5kKCkp
CiAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IG5ld1JlcGxhY2VtZW50KCk7CiAgICAgCi0gICAg
dm9pZCBzZXRKSVRDb2RlKFBhc3NSZWZQdHI8SklUQ29kZT4gY29kZSwgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGNvZGVXaXRoQXJpdHlDaGVjaykKKyAgICB2b2lkIHNldEpJVENvZGUoUGFzc1JlZlB0
cjxKSVRDb2RlPiBjb2RlKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1faGVhcC0+aXNEZWZlcnJl
ZCgpKTsKICAgICAgICAgbV9oZWFwLT5yZXBvcnRFeHRyYU1lbW9yeUNvc3QoY29kZS0+c2l6ZSgp
KTsKICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAg
V1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsgLy8gVGhpcyBpcyBwcm9iYWJseSBub3QgbmVlZGVkIGJl
Y2F1c2UgdGhlIGxvY2sgd2lsbCBhbHNvIGRvIHNvbWV0aGluZyBzaW1pbGFyLCBidXQgaXQncyBn
b29kIHRvIGJlIHBhcmFub2lkLgogICAgICAgICBtX2ppdENvZGUgPSBjb2RlOwotICAgICAgICBt
X2ppdENvZGVXaXRoQXJpdHlDaGVjayA9IGNvZGVXaXRoQXJpdHlDaGVjazsKICAgICB9CiAgICAg
UGFzc1JlZlB0cjxKSVRDb2RlPiBqaXRDb2RlKCkgeyByZXR1cm4gbV9qaXRDb2RlOyB9Ci0gICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGppdENvZGVXaXRoQXJpdHlDaGVjaygpIHsgcmV0dXJuIG1f
aml0Q29kZVdpdGhBcml0eUNoZWNrOyB9CiAgICAgSklUQ29kZTo6SklUVHlwZSBqaXRUeXBlKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIEpJVENvZGUqIGppdENvZGUgPSBtX2ppdENvZGUuZ2V0KCk7
CkBAIC00ODksOCArNDg4LDggQEAgcHVibGljOgogICAgIFJhcmVDYXNlUHJvZmlsZSogc3BlY2lh
bEZhc3RDYXNlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCkKICAg
ICB7CiAgICAgICAgIHJldHVybiB0cnlCaW5hcnlTZWFyY2g8UmFyZUNhc2VQcm9maWxlLCBpbnQ+
KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X3NwZWNpYWxGYXN0Q2FzZVByb2ZpbGVzLCBtX3NwZWNpYWxGYXN0Q2FzZVByb2ZpbGVzLnNpemUo
KSwgYnl0ZWNvZGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdldFJhcmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KTsKKyAgICAg
ICAgICAgIG1fc3BlY2lhbEZhc3RDYXNlUHJvZmlsZXMsIG1fc3BlY2lhbEZhc3RDYXNlUHJvZmls
ZXMuc2l6ZSgpLCBieXRlY29kZU9mZnNldCwKKyAgICAgICAgICAgIGdldFJhcmVDYXNlUHJvZmls
ZUJ5dGVjb2RlT2Zmc2V0KTsKICAgICB9CiAKICAgICBib29sIGxpa2VseVRvVGFrZVNwZWNpYWxG
YXN0Q2FzZShpbnQgYnl0ZWNvZGVPZmZzZXQpCkBAIC01NzYsMTEgKzU3NSwxNSBAQCBwdWJsaWM6
CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgIHJl
dHVybiBtX2V4aXRQcm9maWxlLmFkZChsb2NrZXIsIHNpdGUpOwogICAgIH0KLSAgICAgICAgCisg
ICAgIAorICAgIGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9j
a2VyLCBjb25zdCBERkc6OkZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShsb2NrZXIsIHNpdGUpOworICAg
IH0KICAgICBib29sIGhhc0V4aXRTaXRlKGNvbnN0IERGRzo6RnJlcXVlbnRFeGl0U2l0ZSYgc2l0
ZSkgY29uc3QKICAgICB7CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9j
ayk7Ci0gICAgICAgIHJldHVybiBtX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKGxvY2tlciwgc2l0
ZSk7CisgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShsb2NrZXIsIHNpdGUpOwogICAgIH0KIAog
ICAgIERGRzo6RXhpdFByb2ZpbGUmIGV4aXRQcm9maWxlKCkgeyByZXR1cm4gbV9leGl0UHJvZmls
ZTsgfQpAQCAtNjc5LDkgKzY4MiwxOSBAQCBwdWJsaWM6CiAKICAgICBCeXRlY29kZUxpdmVuZXNz
QW5hbHlzaXMmIGxpdmVuZXNzQW5hbHlzaXMoKQogICAgIHsKLSAgICAgICAgaWYgKCFtX2xpdmVu
ZXNzQW5hbHlzaXMpCi0gICAgICAgICAgICBtX2xpdmVuZXNzQW5hbHlzaXMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPEJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcz4odGhpcyk7Ci0gICAgICAgIHJldHVybiAq
bV9saXZlbmVzc0FuYWx5c2lzOworICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklU
TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICAgICAgaWYgKCEhbV9saXZlbmVzc0FuYWx5
c2lzKQorICAgICAgICAgICAgICAgIHJldHVybiAqbV9saXZlbmVzc0FuYWx5c2lzOworICAgICAg
ICB9CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXM+IGFu
YWx5c2lzID0KKyAgICAgICAgICAgIHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNvZGVMaXZlbmVzc0Fu
YWx5c2lzPih0aGlzKTsKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tl
ciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgICAgIGlmICghbV9saXZlbmVzc0FuYWx5c2lzKQor
ICAgICAgICAgICAgICAgIG1fbGl2ZW5lc3NBbmFseXNpcyA9IHN0ZDo6bW92ZShhbmFseXNpcyk7
CisgICAgICAgICAgICByZXR1cm4gKm1fbGl2ZW5lc3NBbmFseXNpczsKKyAgICAgICAgfQogICAg
IH0KICAgICAKICAgICB2b2lkIHZhbGlkYXRlKCk7CkBAIC04NjYsNiArODc5LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgdXBkYXRlQWxsUHJlZGljdGlvbnMoKTsKIAogICAgIHVuc2lnbmVkIGZyYW1l
UmVnaXN0ZXJDb3VudCgpOworICAgIGludCBzdGFja1BvaW50ZXJPZmZzZXQoKTsKIAogICAgIGJv
b2wgaGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29s
dW1uKTsKIApAQCAtODkxLDcgKzkwNSw3IEBAIHB1YmxpYzoKIAogICAgIGludCBtX251bUNhbGxl
ZVJlZ2lzdGVyczsKICAgICBpbnQgbV9udW1WYXJzOwotICAgIGJvb2wgbV9pc0NvbnN0cnVjdG9y
OworICAgIGJvb2wgbV9pc0NvbnN0cnVjdG9yIDogMTsKICAgICAKICAgICAvLyBUaGlzIGlzIGlu
dGVudGlvbmFsbHkgcHVibGljOyBpdCdzIHRoZSByZXNwb25zaWJpbGl0eSBvZiBhbnlvbmUgZG9p
bmcgYW55CiAgICAgLy8gb2YgdGhlIGZvbGxvd2luZyB0byBob2xkIHRoZSBsb2NrOgpAQCAtOTEx
LDEwICs5MjUsMTEgQEAgcHVibGljOgogICAgIC8vIGNvbmN1cnJlbnQgY29tcGlsYXRpb24gdGhy
ZWFkcyBmaW5pc2ggd2hhdCB0aGV5J3JlIGRvaW5nLgogICAgIG11dGFibGUgQ29uY3VycmVudEpJ
VExvY2sgbV9sb2NrOwogICAgIAotICAgIGJvb2wgbV9zaG91bGRBbHdheXNCZUlubGluZWQ7Ci0g
ICAgYm9vbCBtX2FsbFRyYW5zaXRpb25zSGF2ZUJlZW5NYXJrZWQ7IC8vIEluaXRpYWxpemVkIGFu
ZCB1c2VkIG9uIGV2ZXJ5IEdDLgorICAgIGJvb2wgbV9zaG91bGRBbHdheXNCZUlubGluZWQ7IC8v
IE5vdCBhIGJpdGZpZWxkIGJlY2F1c2UgdGhlIEpJVCB3YW50cyB0byBzdG9yZSB0byBpdC4KKyAg
ICBib29sIG1fYWxsVHJhbnNpdGlvbnNIYXZlQmVlbk1hcmtlZCA6IDE7IC8vIEluaXRpYWxpemVk
IGFuZCB1c2VkIG9uIGV2ZXJ5IEdDLgogICAgIAotICAgIGJvb2wgbV9kaWRGYWlsRlRMQ29tcGls
YXRpb247CisgICAgYm9vbCBtX2RpZEZhaWxGVExDb21waWxhdGlvbiA6IDE7CisgICAgYm9vbCBt
X2hhc0JlZW5Db21waWxlZFdpdGhGVEwgOiAxOwogCiAgICAgLy8gSW50ZXJuYWwgbWV0aG9kcyBm
b3IgdXNlIGJ5IHZhbGlkYXRpb24gY29kZS4gSXQgd291bGQgYmUgcHJpdmF0ZSBpZiBpdCB3YXNu
J3QKICAgICAvLyBmb3IgdGhlIGZhY3QgdGhhdCB3ZSB1c2UgaXQgZnJvbSBhbm9ueW1vdXMgbmFt
ZXNwYWNlcy4KQEAgLTEwNTQsNyArMTA2OSw2IEBAIHByaXZhdGU6CiAgICAgU2VudGluZWxMaW5r
ZWRMaXN0PExMSW50Q2FsbExpbmtJbmZvLCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxMTEludENhbGxM
aW5rSW5mbz4+IG1faW5jb21pbmdMTEludENhbGxzOwogI2VuZGlmCiAgICAgUmVmUHRyPEpJVENv
ZGU+IG1faml0Q29kZTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlV2l0aEFy
aXR5Q2hlY2s7CiAjaWYgRU5BQkxFKEpJVCkKICAgICBCYWc8U3RydWN0dXJlU3R1YkluZm8+IG1f
c3R1YkluZm9zOwogICAgIFZlY3RvcjxCeVZhbEluZm8+IG1fYnlWYWxJbmZvczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmNwcAppbmRleCAzOWI4M2ZlYWRj
NTI1ZGM2MWM4ZWZhYmY0MDE2ZjFkYzNiODJlZDczLi42OGRjNmIwNTMzNTU5MGVjNGM4MWM0MjM0
NmJiNzRkYmJkOGZhYzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZU9yaWdpbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVPcmlnaW4uY3BwCkBAIC00NSw3ICs0NSw2NCBAQCB1bnNpZ25lZCBDb2RlT3JpZ2luOjppbmxp
bmVEZXB0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlubGluZURlcHRoRm9yQ2FsbEZyYW1lKGlu
bGluZUNhbGxGcmFtZSk7CiB9CisKK2Jvb2wgQ29kZU9yaWdpbjo6aXNBcHByb3hpbWF0ZWx5RXF1
YWxUbyhjb25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3QKK3sKKyAgICBDb2RlT3JpZ2luIGEg
PSAqdGhpczsKKyAgICBDb2RlT3JpZ2luIGIgPSBvdGhlcjsKKworICAgIGlmICghYS5pc1NldCgp
KQorICAgICAgICByZXR1cm4gIWIuaXNTZXQoKTsKKyAgICBpZiAoIWIuaXNTZXQoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChhLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCkpCisgICAgICAgIHJldHVybiBiLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CisgICAgaWYg
KGIuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IAorICAgIGZvciAoOzspIHsKKyAgICAgICAgQVNTRVJUKGEuaXNTZXQoKSk7CisgICAgICAgIEFT
U0VSVChiLmlzU2V0KCkpOworICAgICAgICAKKyAgICAgICAgaWYgKGEuYnl0ZWNvZGVJbmRleCAh
PSBiLmJ5dGVjb2RlSW5kZXgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAor
ICAgICAgICBpZiAoKCEhYS5pbmxpbmVDYWxsRnJhbWUpICE9ICghIWIuaW5saW5lQ2FsbEZyYW1l
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmICghYS5p
bmxpbmVDYWxsRnJhbWUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChhLmlubGluZUNhbGxGcmFtZS0+ZXhlY3V0YWJsZSAhPSBiLmlubGluZUNhbGxGcmFt
ZS0+ZXhlY3V0YWJsZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAg
ICAgIGEgPSBhLmlubGluZUNhbGxGcmFtZS0+Y2FsbGVyOworICAgICAgICBiID0gYi5pbmxpbmVD
YWxsRnJhbWUtPmNhbGxlcjsKKyAgICB9Cit9CisKK3Vuc2lnbmVkIENvZGVPcmlnaW46OmFwcHJv
eGltYXRlSGFzaCgpIGNvbnN0Cit7CisgICAgaWYgKCFpc1NldCgpKQorICAgICAgICByZXR1cm4g
MDsKKyAgICBpZiAoaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIDE7
CiAgICAgCisgICAgdW5zaWduZWQgcmVzdWx0ID0gMjsKKyAgICBDb2RlT3JpZ2luIGNvZGVPcmln
aW4gPSAqdGhpczsKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHJlc3VsdCArPSBjb2RlT3JpZ2lu
LmJ5dGVjb2RlSW5kZXg7CisgICAgICAgIAorICAgICAgICBpZiAoIWNvZGVPcmlnaW4uaW5saW5l
Q2FsbEZyYW1lKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAg
IHJlc3VsdCArPSBXVEY6OlB0ckhhc2g8SlNDZWxsKj46Omhhc2goY29kZU9yaWdpbi5pbmxpbmVD
YWxsRnJhbWUtPmV4ZWN1dGFibGUuZ2V0KCkpOworICAgICAgICAKKyAgICAgICAgY29kZU9yaWdp
biA9IGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7CisgICAgfQorfQorCiBWZWN0
b3I8Q29kZU9yaWdpbj4gQ29kZU9yaWdpbjo6aW5saW5lU3RhY2soKSBjb25zdAogewogICAgIFZl
Y3RvcjxDb2RlT3JpZ2luPiByZXN1bHQoaW5saW5lRGVwdGgoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uaAppbmRleCBlZDY2MGMyNDc5NWRlNjE4MjcxYmU5
OTgwNzllYWZiMmQwNGE5YmMxLi5jNTI1MTc5YjY3YWNiMzc0MjAyNzkzZDViZWEyYzBiODkwMTM1
MzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdp
bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgKQEAg
LTYzLDcgKzYzLDcgQEAgc3RydWN0IENvZGVPcmlnaW4gewogICAgIAogICAgIENvZGVPcmlnaW4o
V1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICA6IGJ5dGVjb2RlSW5kZXgo
aW52YWxpZEJ5dGVjb2RlSW5kZXgpCi0gICAgICAgICwgaW5saW5lQ2FsbEZyYW1lKGJpdHdpc2Vf
Y2FzdDxJbmxpbmVDYWxsRnJhbWUqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEpKSkKKyAgICAg
ICAgLCBpbmxpbmVDYWxsRnJhbWUoZGVsZXRlZE1hcmtlcigpKQogICAgIHsKICAgICB9CiAgICAg
CkBAIC05NywxNSArOTcsMjcgQEAgc3RydWN0IENvZGVPcmlnaW4gewogICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3Q7CiAgICAgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IENvZGVPcmlnaW4mIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVy
KTsgfQogICAgIAorICAgIC8vIFRoaXMgY2hlY2tzIGlmIHRoZSB0d28gY29kZSBvcmlnaW5zIGNv
cnJlc3BvbmQgdG8gdGhlIHNhbWUgc3RhY2sgdHJhY2Ugc25pcHBldHMsCisgICAgLy8gYnV0IGln
bm9yZSB3aGV0aGVyIHRoZSBJbmxpbmVDYWxsRnJhbWUncyBhcmUgaWRlbnRpY2FsLgorICAgIGJv
b2wgaXNBcHByb3hpbWF0ZWx5RXF1YWxUbyhjb25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3Q7
CisgICAgCisgICAgdW5zaWduZWQgYXBwcm94aW1hdGVIYXNoKCkgY29uc3Q7CisgICAgCiAgICAg
Ly8gR2V0IHRoZSBpbmxpbmUgc3RhY2suIFRoaXMgaXMgc2xvdywgYW5kIGlzIGludGVuZGVkIGZv
ciBkZWJ1Z2dpbmcgb25seS4KICAgICBWZWN0b3I8Q29kZU9yaWdpbj4gaW5saW5lU3RhY2soKSBj
b25zdDsKICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lk
IGR1bXBJbkNvbnRleHQoUHJpbnRTdHJlYW0mLCBEdW1wQ29udGV4dCopIGNvbnN0OworCitwcml2
YXRlOgorICAgIHN0YXRpYyBJbmxpbmVDYWxsRnJhbWUqIGRlbGV0ZWRNYXJrZXIoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmxpbmVDYWxsRnJhbWUqPihzdGF0aWNfY2Fz
dDx1aW50cHRyX3Q+KDEpKTsKKyAgICB9CiB9OwogCiBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsK
LSAgICBWZWN0b3I8VmFsdWVSZWNvdmVyeT4gYXJndW1lbnRzOworICAgIFZlY3RvcjxWYWx1ZVJl
Y292ZXJ5PiBhcmd1bWVudHM7IC8vIEluY2x1ZGVzICd0aGlzJy4KICAgICBXcml0ZUJhcnJpZXI8
U2NyaXB0RXhlY3V0YWJsZT4gZXhlY3V0YWJsZTsKICAgICBWYWx1ZVJlY292ZXJ5IGNhbGxlZVJl
Y292ZXJ5OwogICAgIENvZGVPcmlnaW4gY2FsbGVyOwpAQCAtMTg1LDYgKzE5NywxMiBAQCBzdHJ1
Y3QgQ29kZU9yaWdpbkhhc2ggewogICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVU
b0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKK3N0cnVjdCBDb2RlT3JpZ2luQXBwcm94aW1h
dGVIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBDb2RlT3JpZ2luJiBrZXkp
IHsgcmV0dXJuIGtleS5hcHByb3hpbWF0ZUhhc2goKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFs
KGNvbnN0IENvZGVPcmlnaW4mIGEsIGNvbnN0IENvZGVPcmlnaW4mIGIpIHsgcmV0dXJuIGEuaXNB
cHByb3hpbWF0ZWx5RXF1YWxUbyhiKTsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0Nv
bXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKK307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwog
CiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9ERkdFeGl0UHJvZmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
REZHRXhpdFByb2ZpbGUuY3BwCmluZGV4IDVkMDViYmIyZjA3OTgxNjczYzc3NGUzNWRmMGYzZDRm
MGUxNzU1MDcuLjczYmE4OGNkMDM0MmEzZmJhMzAyYzMwZDM3NjAyM2I3Y2JlNDk3MWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcApA
QCAtMzcsNiArMzcsOCBAQCBFeGl0UHJvZmlsZTo6fkV4aXRQcm9maWxlKCkgeyB9CiAKIGJvb2wg
RXhpdFByb2ZpbGU6OmFkZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgY29uc3QgRnJlcXVl
bnRFeGl0U2l0ZSYgc2l0ZSkKIHsKKyAgICBBU1NFUlQoc2l0ZS5qaXRUeXBlKCkgIT0gRXhpdEZy
b21Bbnl0aGluZyk7CisgICAgCiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgc2VlbiBhbnkgZnJlcXVl
bnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1dCB0aGlzIHNpdGUKICAgICAvLyBp
bnRvIGl0LgogICAgIGlmICghbV9mcmVxdWVudEV4aXRTaXRlcykgewpAQCAtNzgsNyArODAsNyBA
QCBib29sIEV4aXRQcm9maWxlOjpoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2Vy
JiwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gbV9mcmVxdWVudEV4aXRTaXRlcy0+c2l6ZSgpOyBpLS07KSB7
Ci0gICAgICAgIGlmIChtX2ZyZXF1ZW50RXhpdFNpdGVzLT5hdChpKSA9PSBzaXRlKQorICAgICAg
ICBpZiAoc2l0ZS5zdWJzdW1lcyhtX2ZyZXF1ZW50RXhpdFNpdGVzLT5hdChpKSkpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAppbmRleCBhYjFhNjBkNThk
MWViNmM2YTY1ZjI0ZTA4NTgzZTU5NWI2NWM0OTlmLi4zNGI4YTliODhmNjFmMDU5YmVkYmRiMzAy
ZmQ1NWM2Yjc4ZDAyMzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvREZHRXhpdFByb2ZpbGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
REZHRXhpdFByb2ZpbGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiQ29uY3VycmVudEpJVExvY2suaCIKICNpbmNsdWRlICJFeGl0S2luZC5oIgor
I2luY2x1ZGUgIkV4aXRpbmdKSVRUeXBlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzksMTgg
KzQwLDIyIEBAIHB1YmxpYzoKICAgICBGcmVxdWVudEV4aXRTaXRlKCkKICAgICAgICAgOiBtX2J5
dGVjb2RlT2Zmc2V0KDApIC8vIDAgPSBlbXB0eSB2YWx1ZQogICAgICAgICAsIG1fa2luZChFeGl0
S2luZFVuc2V0KQorICAgICAgICAsIG1faml0VHlwZShFeGl0RnJvbUFueXRoaW5nKQogICAgIHsK
ICAgICB9CiAgICAgCiAgICAgRnJlcXVlbnRFeGl0U2l0ZShXVEY6Okhhc2hUYWJsZURlbGV0ZWRW
YWx1ZVR5cGUpCiAgICAgICAgIDogbV9ieXRlY29kZU9mZnNldCgxKSAvLyAxID0gZGVsZXRlZCB2
YWx1ZQogICAgICAgICAsIG1fa2luZChFeGl0S2luZFVuc2V0KQorICAgICAgICAsIG1faml0VHlw
ZShFeGl0RnJvbUFueXRoaW5nKQogICAgIHsKICAgICB9CiAgICAgCi0gICAgZXhwbGljaXQgRnJl
cXVlbnRFeGl0U2l0ZSh1bnNpZ25lZCBieXRlY29kZU9mZnNldCwgRXhpdEtpbmQga2luZCkKKyAg
ICBleHBsaWNpdCBGcmVxdWVudEV4aXRTaXRlKAorICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9m
ZnNldCwgRXhpdEtpbmQga2luZCwgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSA9IEV4aXRGcm9tQW55
dGhpbmcpCiAgICAgICAgIDogbV9ieXRlY29kZU9mZnNldChieXRlY29kZU9mZnNldCkKICAgICAg
ICAgLCBtX2tpbmQoa2luZCkKKyAgICAgICAgLCBtX2ppdFR5cGUoaml0VHlwZSkKICAgICB7CiAg
ICAgICAgIGlmIChtX2tpbmQgPT0gQXJndW1lbnRzRXNjYXBlZCkgewogICAgICAgICAgICAgLy8g
Q291bnQgdGhpcyBvbmUgZ2xvYmFsbHkuIEl0IGRvZXNuJ3QgbWF0dGVyIHdoZXJlIGluIHRoZSBj
b2RlIGJsb2NrIHRoZSBhcmd1bWVudHMgZXhjYXBlZDsKQEAgLTYxLDkgKzY2LDEwIEBAIHB1Ymxp
YzoKICAgICAKICAgICAvLyBVc2UgdGhpcyBjb25zdHJ1Y3RvciBpZiB5b3Ugd2lzaCBmb3IgdGhl
IGV4aXQgc2l0ZSB0byBiZSBjb3VudGVkIGdsb2JhbGx5IHdpdGhpbiBpdHMKICAgICAvLyBjb2Rl
IGJsb2NrLgotICAgIGV4cGxpY2l0IEZyZXF1ZW50RXhpdFNpdGUoRXhpdEtpbmQga2luZCkKKyAg
ICBleHBsaWNpdCBGcmVxdWVudEV4aXRTaXRlKEV4aXRLaW5kIGtpbmQsIEV4aXRpbmdKSVRUeXBl
IGppdFR5cGUgPSBFeGl0RnJvbUFueXRoaW5nKQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQo
MCkKICAgICAgICAgLCBtX2tpbmQoa2luZCkKKyAgICAgICAgLCBtX2ppdFR5cGUoaml0VHlwZSkK
ICAgICB7CiAgICAgfQogICAgIApAQCAtNzUsMTYgKzgxLDM2IEBAIHB1YmxpYzoKICAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYgb3RoZXIpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gbV9ieXRlY29kZU9mZnNldCA9PSBvdGhlci5tX2J5dGVjb2RlT2Zmc2V0
Ci0gICAgICAgICAgICAmJiBtX2tpbmQgPT0gb3RoZXIubV9raW5kOworICAgICAgICAgICAgJiYg
bV9raW5kID09IG90aGVyLm1fa2luZAorICAgICAgICAgICAgJiYgbV9qaXRUeXBlID09IG90aGVy
Lm1faml0VHlwZTsKKyAgICB9CisgICAgCisgICAgYm9vbCBzdWJzdW1lcyhjb25zdCBGcmVxdWVu
dEV4aXRTaXRlJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChtX2J5dGVjb2RlT2Zm
c2V0ICE9IG90aGVyLm1fYnl0ZWNvZGVPZmZzZXQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGlmIChtX2tpbmQgIT0gb3RoZXIubV9raW5kKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBpZiAobV9qaXRUeXBlID09IEV4aXRGcm9tQW55dGhpbmcpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIG1faml0VHlwZSA9PSBvdGhlci5t
X2ppdFR5cGU7CiAgICAgfQogICAgIAogICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAogICAgIHsK
LSAgICAgICAgcmV0dXJuIFdURjo6aW50SGFzaChtX2J5dGVjb2RlT2Zmc2V0KSArIG1fa2luZDsK
KyAgICAgICAgcmV0dXJuIFdURjo6aW50SGFzaChtX2J5dGVjb2RlT2Zmc2V0KSArIG1fa2luZCAr
IG1faml0VHlwZSAqIDc7CiAgICAgfQogICAgIAogICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0
KCkgY29uc3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNldDsgfQogICAgIEV4aXRLaW5kIGtpbmQo
KSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KKyAgICBFeGl0aW5nSklUVHlwZSBqaXRUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9qaXRUeXBlOyB9CisgICAgCisgICAgRnJlcXVlbnRFeGl0U2l0ZSB3
aXRoSklUVHlwZShFeGl0aW5nSklUVHlwZSBqaXRUeXBlKSBjb25zdAorICAgIHsKKyAgICAgICAg
RnJlcXVlbnRFeGl0U2l0ZSByZXN1bHQgPSAqdGhpczsKKyAgICAgICAgcmVzdWx0Lm1faml0VHlw
ZSA9IGppdFR5cGU7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQogCiAgICAgYm9vbCBp
c0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0CiAgICAgewpAQCAtOTQsNiArMTIwLDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2J5dGVjb2RlT2Zmc2V0OwogICAgIEV4
aXRLaW5kIG1fa2luZDsKKyAgICBFeGl0aW5nSklUVHlwZSBtX2ppdFR5cGU7CiB9OwogCiBzdHJ1
Y3QgRnJlcXVlbnRFeGl0U2l0ZUhhc2ggewpAQCAtMTY2LDYgKzE5MywxMCBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGhhc0V4aXRTaXRlKGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpIGNvbnN0
CiAgICAgeworICAgICAgICBpZiAoc2l0ZS5qaXRUeXBlKCkgPT0gRXhpdEZyb21Bbnl0aGluZykg
eworICAgICAgICAgICAgcmV0dXJuIGhhc0V4aXRTaXRlKHNpdGUud2l0aEpJVFR5cGUoRXhpdEZy
b21ERkcpKQorICAgICAgICAgICAgICAgIHx8IGhhc0V4aXRTaXRlKHNpdGUud2l0aEpJVFR5cGUo
RXhpdEZyb21GVEwpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9mcmVxdWVudEV4aXRT
aXRlcy5maW5kKHNpdGUpICE9IG1fZnJlcXVlbnRFeGl0U2l0ZXMuZW5kKCk7CiAgICAgfQogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAppbmRleCBhOWY2ZGY2
ZDRjMzExMjE3ZDQyNGQ2YjA1ZTRmMDdhNGYzODc1ZGVlLi42YWM3OGEyNTQzN2IwNGE3ZDY0ZTUw
MWMyMGM4NWU1NTM3NDI2Yjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvRXhpdEtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhp
dEtpbmQuaApAQCAtMjgsNyArMjgsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotZW51bSBFeGl0
S2luZCB7CitlbnVtIEV4aXRLaW5kIDogdWludDhfdCB7CiAgICAgRXhpdEtpbmRVbnNldCwKICAg
ICBCYWRUeXBlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhIHR5cGUgcHJlZGljdGlvbiB3YXMgd3Jv
bmcuCiAgICAgQmFkRnVuY3Rpb24sIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5j
b3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBmdW5jdGlvbiB3ZSB3b3VsZCBzZWUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdGluZ0pJVFR5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0aW5nSklUVHlwZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZiZGMyOGU0NWQxNzY5NjE4MmY5NDQwMzgwNDg1YmU0ZTk2NzU3YzYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdGluZ0pJVFR5cGUuaApA
QCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgRXhpdGluZ0pJVFR5cGVfaAorI2RlZmluZSBFeGl0aW5nSklUVHlwZV9o
CisKKyNpbmNsdWRlICJKSVRDb2RlLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitlbnVtIEV4aXRp
bmdKSVRUeXBlIDogdWludDhfdCB7CisgICAgRXhpdEZyb21Bbnl0aGluZywKKyAgICBFeGl0RnJv
bURGRywKKyAgICBFeGl0RnJvbUZUTAorfTsKKworaW5saW5lIEV4aXRpbmdKSVRUeXBlIGV4aXRp
bmdKSVRUeXBlRm9yKEpJVENvZGU6OkpJVFR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUp
IHsKKyAgICBjYXNlIEpJVENvZGU6OkRGR0pJVDoKKyAgICAgICAgcmV0dXJuIEV4aXRGcm9tREZH
OworICAgIGNhc2UgSklUQ29kZTo6RlRMSklUOgorICAgICAgICByZXR1cm4gRXhpdEZyb21GVEw7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuIEV4aXRGcm9tQW55dGhpbmc7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFj
ZSBKU0MKKworI2VuZGlmIC8vIEV4aXRpbmdKSVRUeXBlX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCmluZGV4IGZiYjNkYTFhNTE3MWRi
MmFhMmZjOThiMTYzNzc5NjI2NjNhZmUxNDAuLmVkODVkNjJkNGYyZmM1NjAwYTNkNmVjNjcwNmE1
ZDExYjExMjlhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0
QnlJZFN0YXR1cy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEy
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDYgKzM0LDE0IEBACiAKIG5hbWVzcGFjZSBK
U0MgewogCitib29sIEdldEJ5SWRTdGF0dXM6Omhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRK
SVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRl
Y29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSBqaXRUeXBlKQoreworICAgIHJldHVybiBwcm9maWxl
ZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29k
ZUluZGV4LCBCYWRDYWNoZSwgaml0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhh
c0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJh
ZENhY2hlV2F0Y2hwb2ludCwgaml0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhh
c0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJh
ZFdlYWtDb25zdGFudENhY2hlLCBqaXRUeXBlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+
aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwg
QmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50LCBqaXRUeXBlKSk7Cit9CisKIEdldEJ5SWRT
dGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVk
QmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICBV
TlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CkBAIC0xMjAsMTMgKzEyOCwyNyBAQCBHZXRCeUlk
U3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2Nr
LCBTdHViSW5mb01hcCYgbQogewogICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHByb2Zp
bGVkQmxvY2stPm1fbG9jayk7CiAgICAgCi0gICAgVU5VU0VEX1BBUkFNKHByb2ZpbGVkQmxvY2sp
OwotICAgIFVOVVNFRF9QQVJBTShieXRlY29kZUluZGV4KTsKLSAgICBVTlVTRURfUEFSQU0odWlk
KTsKKyAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbygKKyAgICAg
ICAgbG9ja2VyLCBwcm9maWxlZEJsb2NrLCBtYXAuZ2V0KENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRl
eCkpLCB1aWQpOworICAgIAorICAgIGlmICghcmVzdWx0LnRha2VzU2xvd1BhdGgoKQorICAgICAg
ICAmJiAoaGFzRXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KQor
ICAgICAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UoYnl0ZWNv
ZGVJbmRleCkpKQorICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCB0
cnVlKTsKKworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTElu
dChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4LCB1aWQpOworICAgIAorICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJ
bmZvKAorICAgIGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIHByb2ZpbGVk
QmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywKKyAgICBTdHJpbmdJbXBsKiB1aWQp
Cit7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBt
YXAuZ2V0KENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkpOwogICAgIGlmICghc3R1YkluZm8gfHwg
IXN0dWJJbmZvLT5zZWVuKQotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxl
ZEJsb2NrLCBieXRlY29kZUluZGV4LCB1aWQpOworICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1
cyhOb0luZm9ybWF0aW9uKTsKICAgICAKICAgICBpZiAoc3R1YkluZm8tPnJlc2V0QnlHQykKICAg
ICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgdHJ1ZSk7CkBAIC0xNTIs
MTYgKzE3NCwxMiBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoQ29k
ZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQogICAgICAgICAgICAgcmV0dXJu
IEdldEJ5SWRTdGF0dXMoTWFrZXNDYWxscywgdHJ1ZSk7CiAgICAgfQogICAgIAotICAgIC8vIE5l
eHQgY2hlY2sgaWYgaXQgdGFrZXMgc2xvdyBjYXNlLCBpbiB3aGljaCBjYXNlIHdlIHdhbnQgdG8g
YmUga2luZCBvZiBjYXJlZnVsLgotICAgIGlmIChwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VT
bG93Q2FzZShieXRlY29kZUluZGV4KSkKLSAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoVGFr
ZXNTbG93UGF0aCwgdHJ1ZSk7Ci0gICAgCiAgICAgLy8gRmluYWxseSBmaWd1cmUgb3V0IGlmIHdl
IGNhbiBkZXJpdmUgYW4gYWNjZXNzIHN0cmF0ZWd5LgogICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0
OwogICAgIHJlc3VsdC5tX3dhc1NlZW5JbkpJVCA9IHRydWU7IC8vIFRoaXMgaXMgaW50ZXJlc3Rp
bmcgZm9yIGJ5dGVjb2RlIGR1bXBpbmcgb25seS4KICAgICBzd2l0Y2ggKHN0dWJJbmZvLT5hY2Nl
c3NUeXBlKSB7CiAgICAgY2FzZSBhY2Nlc3NfdW5zZXQ6Ci0gICAgICAgIHJldHVybiBjb21wdXRl
RnJvbUxMSW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CisgICAgICAgIHJl
dHVybiBHZXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24pOwogICAgICAgICAKICAgICBjYXNlIGFj
Y2Vzc19nZXRfYnlfaWRfc2VsZjogewogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHN0
dWJJbmZvLT51LmdldEJ5SWRTZWxmLmJhc2VPYmplY3RTdHJ1Y3R1cmUuZ2V0KCk7CkBAIC0yNjIs
MTEgKzI4MCw0MCBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoQ29k
ZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQogICAgIAogICAgIHJldHVybiBy
ZXN1bHQ7CiAjZWxzZSAvLyBFTkFCTEUoSklUKQotICAgIFVOVVNFRF9QQVJBTShtYXApOworICAg
IFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKKyAgICBVTlVTRURfUEFSQU0oc3R1YkluZm8p
OworICAgIFVOVVNFRF9QQVJBTSh1aWQpOwogICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE5vSW5m
b3JtYXRpb24sIGZhbHNlKTsKICNlbmRpZiAvLyBFTkFCTEUoSklUKQogfQogCitHZXRCeUlkU3Rh
dHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCisgICAgQ29kZUJsb2NrKiBwcm9maWxlZEJs
b2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVNYXAsCisgICAg
U3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBTdHJpbmdJbXBsKiB1
aWQpCit7CisgICAgaWYgKGRmZ0Jsb2NrKSB7CisgICAgICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0
OworICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihkZmdC
bG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbyhs
b2NrZXIsIGRmZ0Jsb2NrLCBkZmdNYXAuZ2V0KGNvZGVPcmlnaW4pLCB1aWQpOworICAgICAgICB9
CisgICAgCisgICAgICAgIGlmIChyZXN1bHQudGFrZXNTbG93UGF0aCgpKQorICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJ
VExvY2tlciBsb2NrZXIocHJvZmlsZWRCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIGlmICho
YXNFeGl0U2l0ZShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRl
eCwgRXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRh
a2VzU2xvd1BhdGgsIHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAocmVz
dWx0LmlzU2V0KCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHJl
dHVybiBjb21wdXRlRm9yKHByb2ZpbGVkQmxvY2ssIGJhc2VsaW5lTWFwLCBjb2RlT3JpZ2luLmJ5
dGVjb2RlSW5kZXgsIHVpZCk7Cit9CisKIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29t
cHV0ZUZvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJpbmdJbXBsKiB1aWQpCiB7
CiAgICAgLy8gRm9yIG5vdyB3ZSBvbmx5IGhhbmRsZSB0aGUgc3VwZXIgc2ltcGxlIHNlbGYgYWNj
ZXNzIGNhc2UuIFdlIGNvdWxkIGhhbmRsZSB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCmluZGV4IGExZTgwMWNjYTg4NTA4ODkzN2QwNjI2ZWI5
ZWExNmY1Y2QxYzgyYzQuLmUwMjA5OTQxZTFhMGQ1N2ZjNWIzZDAzYjE2NWYzMDZkNzMxNWIxMTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjYsNiArMjYsOSBAQAogI2lmbmRlZiBHZXRCeUlkU3RhdHVzX2gKICNkZWZp
bmUgR2V0QnlJZFN0YXR1c19oCiAKKyNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCisjaW5jbHVkZSAi
Q29uY3VycmVudEpJVExvY2suaCIKKyNpbmNsdWRlICJFeGl0aW5nSklUVHlwZS5oIgogI2luY2x1
ZGUgIkludGVuZGVkU3RydWN0dXJlQ2hhaW4uaCIKICNpbmNsdWRlICJQcm9wZXJ0eU9mZnNldC5o
IgogI2luY2x1ZGUgIlN0cnVjdHVyZVNldC5oIgpAQCAtNzQsNiArNzcsOCBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqLCBTdHViSW5mb01h
cCYsIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGlj
IEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihWTSYsIFN0cnVjdHVyZSosIFN0cmluZ0ltcGwqIHVp
ZCk7CiAgICAgCisgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sq
IGJhc2VsaW5lQmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGlu
ZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlkKTsK
KyAgICAKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICAK
ICAgICBib29sIGlzU2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb0luZm9ybWF0aW9u
OyB9CkBAIC05MCw2ICs5NSw4IEBAIHB1YmxpYzoKICAgICBib29sIHdhc1NlZW5JbkpJVCgpIGNv
bnN0IHsgcmV0dXJuIG1fd2FzU2VlbkluSklUOyB9CiAgICAgCiBwcml2YXRlOgorICAgIHN0YXRp
YyBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sq
LCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSA9IEV4aXRGcm9tQW55dGhp
bmcpOworICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBD
b25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8qLCBTdHJp
bmdJbXBsKiB1aWQpOwogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVGb3JDaGFpbihHZXRCeUlkU3Rh
dHVzJiByZXN1bHQsIENvZGVCbG9jayosIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIEdl
dEJ5SWRTdGF0dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29k
ZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9ja0pl
dHRpc29uaW5nV2F0Y2hwb2ludC5jcHAKaW5kZXggZWRmOGUyMjhkNmQxYzlhZDcxNTdhYmQ3MmE4
NWRhOWVkZjc5ZWNhNy4uMDI2YWEzZGFiODM3N2Y3MjIzMmM3NDE5MjczNTMyNWE5NjNlYzk5YyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJs
b2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OSw3
ICs0OSw5IEBAIHZvaWQgUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQ6OmZp
cmVJbnRlcm5hbCgpCiAgICAgCiAgICAgaWYgKHNvdXJjZUJhc2VsaW5lQ29kZUJsb2NrKSB7CiAg
ICAgICAgIHNvdXJjZUJhc2VsaW5lQ29kZUJsb2NrLT5hZGRGcmVxdWVudEV4aXRTaXRlKAotICAg
ICAgICAgICAgREZHOjpGcmVxdWVudEV4aXRTaXRlKG1fY29kZU9yaWdpbi5ieXRlY29kZUluZGV4
LCBtX2V4aXRLaW5kKSk7CisgICAgICAgICAgICBERkc6OkZyZXF1ZW50RXhpdFNpdGUoCisgICAg
ICAgICAgICAgICAgbV9jb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIG1fZXhpdEtpbmQsCisgICAg
ICAgICAgICAgICAgZXhpdGluZ0pJVFR5cGVGb3IobV9jb2RlQmxvY2stPmppdFR5cGUoKSkpKTsK
ICAgICB9CiAgICAgCiAgICAgbV9jb2RlQmxvY2stPmpldHRpc29uKENvdW50UmVvcHRpbWl6YXRp
b24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRT
dGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMu
Y3BwCmluZGV4IDE3Y2Y3MDg5NzMzZjBmMGFhZWQxZTAzNjRjNWYzOTg5Y2I4NzE0MDcuLjExNjAx
MzA5NTcwZWIwMGFhMjkxN2U4OTg2Y2U4NWMwNWIyMzg4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDYg
KzM1LDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitib29sIFB1dEJ5SWRTdGF0dXM6Omhhc0V4
aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9m
aWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSBleGl0VHlw
ZSkKK3sKKyAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6
OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGUsIGV4aXRUeXBlKSkKKyAg
ICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50
RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50LCBleGl0VHlwZSkpCisg
ICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVu
dEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlLCBleGl0VHlwZSkp
CisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVx
dWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2lu
dCwgZXhpdFR5cGUpKTsKK30KKwogUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRl
RnJvbUxMSW50KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbmRl
eCwgU3RyaW5nSW1wbCogdWlkKQogewogICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsK
QEAgLTg5LDEzICs5NywyNyBAQCBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVG
b3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQogICAgIFVOVVNFRF9Q
QVJBTShieXRlY29kZUluZGV4KTsKICAgICBVTlVTRURfUEFSQU0odWlkKTsKICNpZiBFTkFCTEUo
SklUKQotICAgIGlmIChwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShieXRlY29k
ZUluZGV4KSkKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UoYnl0
ZWNvZGVJbmRleCkKKyAgICAgICAgfHwgaGFzRXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2Nr
LCBieXRlY29kZUluZGV4KSkKICAgICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoVGFrZXNTbG93
UGF0aCwgMCwgMCwgMCwgaW52YWxpZE9mZnNldCk7CiAgICAgCiAgICAgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvID0gbWFwLmdldChDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgpKTsKLSAgICBp
ZiAoIXN0dWJJbmZvIHx8ICFzdHViSW5mby0+c2VlbikKKyAgICBQdXRCeUlkU3RhdHVzIHJlc3Vs
dCA9IGNvbXB1dGVGb3JTdHViSW5mbyhsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIHN0dWJJbmZvLCB1
aWQpOworICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChw
cm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4LCB1aWQpOwogICAgIAorICAgIHJldHVybiByZXN1
bHQ7CisjZWxzZSAvLyBFTkFCTEUoSklUKQorICAgIFVOVVNFRF9QQVJBTShtYXApOworICAgIHJl
dHVybiBQdXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24sIDAsIDAsIDAsIGludmFsaWRPZmZzZXQp
OworI2VuZGlmIC8vIEVOQUJMRShKSVQpCit9CisKK1B1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1
czo6Y29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxv
Y2sqIHByb2ZpbGVkQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgU3RyaW5nSW1w
bCogdWlkKQoreworICAgIGlmICghc3R1YkluZm8gfHwgIXN0dWJJbmZvLT5zZWVuKQorICAgICAg
ICByZXR1cm4gUHV0QnlJZFN0YXR1cygpOworICAgIAogICAgIGlmIChzdHViSW5mby0+cmVzZXRC
eUdDKQogICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCAwLCAwLCAw
LCBpbnZhbGlkT2Zmc2V0KTsKIApAQCAtMTQyLDEwICsxNjQsMjggQEAgUHV0QnlJZFN0YXR1cyBQ
dXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3R1Yklu
Zm9NYXAmIG0KICAgICAgICAgLy8gd2UgY291bGQgZG8gYWJvdXQgaXQuCiAgICAgICAgIHJldHVy
biBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIDAsIDAsIDAsIGludmFsaWRPZmZzZXQpOwog
ICAgIH0KLSNlbHNlIC8vIEVOQUJMRShKSVQpCi0gICAgVU5VU0VEX1BBUkFNKG1hcCk7Ci0gICAg
cmV0dXJuIFB1dEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgMCwgMCwgMCwgaW52YWxpZE9mZnNl
dCk7Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKK30KKworUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3Rh
dHVzOjpjb21wdXRlRm9yKENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgQ29kZUJsb2NrKiBkZmdC
bG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLCBTdHViSW5mb01hcCYgZGZnTWFwLCBDb2Rl
T3JpZ2luIGNvZGVPcmlnaW4sIFN0cmluZ0ltcGwqIHVpZCkKK3sKKyAgICBpZiAoZGZnQmxvY2sp
IHsKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoYmFz
ZWxpbmVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIGlmIChoYXNFeGl0U2l0ZShsb2NrZXIs
IGJhc2VsaW5lQmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgRXhpdEZyb21GVEwpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgpOworICAg
ICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgUHV0QnlJZFN0YXR1cyByZXN1bHQ7CisgICAg
ICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGRmZ0Jsb2NrLT5t
X2xvY2spOworICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKGxvY2tlciwg
ZGZnQmxvY2ssIGRmZ01hcC5nZXQoY29kZU9yaWdpbiksIHVpZCk7CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIGlmIChyZXN1bHQuaXNTZXQoKSkKKyAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfQorICAgIAorICAgIHJldHVybiBjb21wdXRlRm9yKGJhc2VsaW5lQmxvY2ssIGJh
c2VsaW5lTWFwLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIHVpZCk7CiB9CiAKIFB1dEJ5SWRT
dGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJpbmdJbXBsKiB1aWQsIGJvb2wg
aXNEaXJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0
QnlJZFN0YXR1cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0
dXMuaAppbmRleCBjMGExYmMzNWNiZjAyYzdjNTlkZDA4NWI3ZjZkMGM1ZDQzZDI3NzFmLi4xZmE2
OWI2ZjI0NzkzOWY0NjdlMDYwOTQ1YmFiYjNlYWJhNjg5ZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgUHV0QnlJZFN0YXR1c19oCiAjZGVmaW5lIFB1dEJ5SWRTdGF0dXNfaAogCisjaW5jbHVk
ZSAiRXhpdGluZ0pJVFR5cGUuaCIKICNpbmNsdWRlICJJbnRlbmRlZFN0cnVjdHVyZUNoYWluLmgi
CiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViSW5m
by5oIgpAQCAtOTQsNiArOTUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMg
Y29tcHV0ZUZvcihDb2RlQmxvY2sqLCBTdHViSW5mb01hcCYsIHVuc2lnbmVkIGJ5dGVjb2RlSW5k
ZXgsIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZv
cihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgU3RyaW5nSW1wbCogdWlkLCBib29s
IGlzRGlyZWN0KTsKICAgICAKKyAgICBzdGF0aWMgUHV0QnlJZFN0YXR1cyBjb21wdXRlRm9yKENv
ZGVCbG9jayogYmFzZWxpbmVCbG9jaywgQ29kZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAm
IGJhc2VsaW5lTWFwLCBTdHViSW5mb01hcCYgZGZnTWFwLCBDb2RlT3JpZ2luLCBTdHJpbmdJbXBs
KiB1aWQpOworICAgIAogICAgIFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsg
fQogICAgIAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlICE9IE5vSW5m
b3JtYXRpb247IH0KQEAgLTEwOCw2ICsxMTEsOCBAQCBwdWJsaWM6CiAgICAgUHJvcGVydHlPZmZz
ZXQgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KICAgICAKIHByaXZhdGU6Cisg
ICAgc3RhdGljIGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENv
ZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIEV4aXRpbmdKSVRUeXBlID0gRXhpdEZy
b21Bbnl0aGluZyk7CisgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZv
KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZy
b21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1
aWQpOwogICAgIAogICAgIFN0YXRlIG1fc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU2V0LmgKaW5kZXggNGNkY2QwMWNiZTNkOTZmNjNkN2I3ZWRjZjI5
MDkzZDA4ZjRhNjk3Ni4uZjg5Njg0ZjcxMWMzODg5ZDU2NDJmZTJjYjAwMDczNGRjNTdmMDNhYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTZXQuaApAQCAt
NDUsNiArNDUsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgU3RydWN0dXJlU2V0KFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIHsKKyAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSk7CiAgICAgICAgIG1f
c3RydWN0dXJlcy5hcHBlbmQoc3RydWN0dXJlKTsKICAgICB9CiAgICAgCkBAIC01NSw2ICs1Niw3
IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGFkZChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICB7CisgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUpOwogICAgICAgICBBU1NFUlQoIWNvbnRhaW5z
KHN0cnVjdHVyZSkpOwogICAgICAgICBtX3N0cnVjdHVyZXMuYXBwZW5kKHN0cnVjdHVyZSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVy
ZVN0dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1
YkluZm8uaAppbmRleCA1NDYzZjNlOTU2ZWMwZmQ5MzU5ODUwMmE0YWI5MjEyNjAyYzQwNzlhLi45
MjE3Y2I4MDA0ZTg2MzEwNGM2YmMxZDk0MjBmNzQwYTBiZDg5ZGIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjE2LDcgKzIxNiw2IEBAIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbyB7
CiAKICAgICBzdHJ1Y3QgewogICAgICAgICBpbnQ4X3QgcmVnaXN0ZXJzRmx1c2hlZDsKLSAgICAg
ICAgaW50OF90IGNhbGxGcmFtZVJlZ2lzdGVyOwogICAgICAgICBpbnQ4X3QgYmFzZUdQUjsKICNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBpbnQ4X3QgdmFsdWVUYWdHUFI7CkBAIC0yOTAs
NyArMjg5LDcgQEAgaW5saW5lIENvZGVPcmlnaW4gZ2V0U3RydWN0dXJlU3R1YkluZm9Db2RlT3Jp
Z2luKFN0cnVjdHVyZVN0dWJJbmZvJiBzdHJ1Y3R1cmVTdHUKICAgICByZXR1cm4gc3RydWN0dXJl
U3R1YkluZm8uY29kZU9yaWdpbjsKIH0KIAotdHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIFN0
cnVjdHVyZVN0dWJJbmZvKj4gU3R1YkluZm9NYXA7Cit0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdp
biwgU3RydWN0dXJlU3R1YkluZm8qLCBDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoPiBTdHViSW5m
b01hcDsKIAogI2Vsc2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1ZhbHVlUmVjb3ZlcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1
ZVJlY292ZXJ5LmgKaW5kZXggM2FmMmMzNDA5NjMxZWY4NDBhZGRkZjNkOTgyOWIxMGQxZmQxNWI3
MC4uNDAzMTI1MjVkZDI3YzM2ZGVjZGU3NmM1MmI3NDZhODIwMjM3MDNlOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCkBAIC0yMzAsNiArMjMw
LDI3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFZpcnR1YWxSZWdpc3RlcihtX3NvdXJjZS52
aXJ0dWFsUmVnKTsKICAgICB9CiAgICAgCisgICAgVmFsdWVSZWNvdmVyeSB3aXRoTG9jYWxzT2Zm
c2V0KGludCBvZmZzZXQpIGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKG1fdGVjaG5pcXVl
KSB7CisgICAgICAgIGNhc2UgRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIEludDMy
RGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIERvdWJsZURpc3BsYWNlZEluSlNTdGFj
azoKKyAgICAgICAgY2FzZSBDZWxsRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIEJv
b2xlYW5EaXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgSW50NTJEaXNwbGFjZWRJbkpT
U3RhY2s6CisgICAgICAgIGNhc2UgU3RyaWN0SW50NTJEaXNwbGFjZWRJbkpTU3RhY2s6IHsKKyAg
ICAgICAgICAgIFZhbHVlUmVjb3ZlcnkgcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0Lm1fdGVj
aG5pcXVlID0gbV90ZWNobmlxdWU7CisgICAgICAgICAgICByZXN1bHQubV9zb3VyY2UudmlydHVh
bFJlZyA9IG1fc291cmNlLnZpcnR1YWxSZWcgKyBvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKICAgICBKU1ZhbHVl
IGNvbnN0YW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3RlY2huaXF1ZSA9PSBD
b25zdGFudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmly
dHVhbFJlZ2lzdGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJl
Z2lzdGVyLmgKaW5kZXggYzYzYWVlODVmZGY4MDAwM2M4ZDllYjZkZTMwYjczYjQ4YTZjYTE4NS4u
NjFiMDRiNWJjODFmMDE5MWM4NDMyMGZjNGEyZDlmNWU4ZjU0ZWEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1YWxSZWdpc3Rlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaApAQCAtNjUsNiArNjUs
NyBAQCBwdWJsaWM6CiAgICAgaW50IHRvQXJndW1lbnQoKSBjb25zdCB7IEFTU0VSVChpc0FyZ3Vt
ZW50KCkpOyByZXR1cm4gb3BlcmFuZFRvQXJndW1lbnQobV92aXJ0dWFsUmVnaXN0ZXIpOyB9CiAg
ICAgaW50IHRvQ29uc3RhbnRJbmRleCgpIGNvbnN0IHsgQVNTRVJUKGlzQ29uc3RhbnQoKSk7IHJl
dHVybiBtX3ZpcnR1YWxSZWdpc3RlciAtIHNfZmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXg7IH0K
ICAgICBpbnQgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXI7IH0KKyAg
ICBpbnQgb2Zmc2V0SW5CeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVyICog
c2l6ZW9mKFJlZ2lzdGVyKTsgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZpcnR1YWxS
ZWdpc3RlciBvdGhlcikgY29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXIgPT0gb3RoZXIu
bV92aXJ0dWFsUmVnaXN0ZXI7IH0KICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgVmlydHVhbFJl
Z2lzdGVyIG90aGVyKSBjb25zdCB7IHJldHVybiBtX3ZpcnR1YWxSZWdpc3RlciAhPSBvdGhlci5t
X3ZpcnR1YWxSZWdpc3RlcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKaW5kZXggOTBjZWU4YzIzNjU4YTI0YzJjZGM4ZWYx
ZTA1YzJkZWJiZDU3NTdmOC4uNTQwNzMwYmEzYTYyYmYyNzFhZmYxYTJhYmZhNTU4MjQ3ZjAyNWQ0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2Fs
bEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJD
YWxsRnJhbWUuY3BwCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5oIgotI2luY2x1ZGUg
IlZNRW50cnlTY29wZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCmluZGV4IGVmOWIxYzQ5NGFiYTM4MDQ1YzlkOWRlYjUw
YzA5Mjk1N2IyMzRlMjUuLjczNjhlYWViNjlhY2U0YWZlYzZmNDM0NGE3ZmExNThjZWY0MmMxZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKQEAgLTEzMSw3
ICsxMzEsMTAgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6ZnJvbU9ic2VydmVkKGNvbnN0IENvbmN1
cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQXJyYXlQcm9maWwKICAgICB9CiB9CiAKLUFycmF5TW9k
ZSBBcnJheU1vZGU6OnJlZmluZShTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBp
bmRleCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUsIE5vZGVGbGFncyBmbGFncykgY29uc3QKK0FycmF5
TW9kZSBBcnJheU1vZGU6OnJlZmluZSgKKyAgICBHcmFwaCYgZ3JhcGgsIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwKKyAgICBTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRleCwg
U3BlY3VsYXRlZFR5cGUgdmFsdWUsCisgICAgTm9kZUZsYWdzIGZsYWdzKSBjb25zdAogewogICAg
IGlmICghYmFzZSB8fCAhaW5kZXgpIHsKICAgICAgICAgLy8gSXQgY2FuIGJlIHRoYXQgd2UgaGFk
IGEgbGVnaXRpbWF0ZSBhcnJheU1vZGUgYnV0IG5vIGluY29taW5nIHByZWRpY3Rpb25zLiBUaGF0
J2xsCkBAIC0xODYsNyArMTg5LDcgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5lKFNwZWN1
bGF0ZWRUeXBlIGJhc2UsIFNwZWN1bGF0ZWRUeXBlIGluZGV4LCBTcGVjdWxhdGUKICAgICAgICAg
ICAgIHJldHVybiB3aXRoQ29udmVyc2lvbihBcnJheTo6UmFnZUNvbnZlcnQpOwogICAgICAgICBy
ZXR1cm4gKnRoaXM7CiAgICAgICAgIAotICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGlj
dGlvbnM6CisgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczogewogICAgICAg
ICBiYXNlICY9IH5TcGVjT3RoZXI7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNTdHJpbmdTcGVj
dWxhdGlvbihiYXNlKSkKQEAgLTE5NSwzNCArMTk4LDQxIEBAIEFycmF5TW9kZSBBcnJheU1vZGU6
OnJlZmluZShTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRleCwgU3BlY3Vs
YXRlCiAgICAgICAgIGlmIChpc0FyZ3VtZW50c1NwZWN1bGF0aW9uKGJhc2UpKQogICAgICAgICAg
ICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpBcmd1bWVudHMpOwogICAgICAgICAKKyAgICAgICAg
QXJyYXlNb2RlIHJlc3VsdDsKKyAgICAgICAgaWYgKGdyYXBoLmhhc0V4aXRTaXRlKGNvZGVPcmln
aW4sIE91dE9mQm91bmRzKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IHdpdGhTcGVjdWxhdGlvbihB
cnJheTo6T3V0T2ZCb3VuZHMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSAq
dGhpczsKKyAgICAgICAgCiAgICAgICAgIGlmIChpc0ludDhBcnJheVNwZWN1bGF0aW9uKGJhc2Up
KQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpJbnQ4QXJyYXkpOworICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6SW50OEFycmF5KTsKICAgICAgICAg
CiAgICAgICAgIGlmIChpc0ludDE2QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAg
IHJldHVybiB3aXRoVHlwZShBcnJheTo6SW50MTZBcnJheSk7CisgICAgICAgICAgICByZXR1cm4g
cmVzdWx0LndpdGhUeXBlKEFycmF5OjpJbnQxNkFycmF5KTsKICAgICAgICAgCiAgICAgICAgIGlm
IChpc0ludDMyQXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRo
VHlwZShBcnJheTo6SW50MzJBcnJheSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhU
eXBlKEFycmF5OjpJbnQzMkFycmF5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc1VpbnQ4QXJy
YXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6
VWludDhBcnJheSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpV
aW50OEFycmF5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc1VpbnQ4Q2xhbXBlZEFycmF5U3Bl
Y3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OlVpbnQ4
Q2xhbXBlZEFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6
OlVpbnQ4Q2xhbXBlZEFycmF5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc1VpbnQxNkFycmF5
U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OlVp
bnQxNkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6OlVp
bnQxNkFycmF5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc1VpbnQzMkFycmF5U3BlY3VsYXRp
b24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OlVpbnQzMkFycmF5
KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6OlVpbnQzMkFycmF5
KTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc0Zsb2F0MzJBcnJheVNwZWN1bGF0aW9uKGJhc2Up
KQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpGbG9hdDMyQXJyYXkpOworICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6RmxvYXQzMkFycmF5KTsKICAg
ICAgICAgCiAgICAgICAgIGlmIChpc0Zsb2F0NjRBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAg
ICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpGbG9hdDY0QXJyYXkpOworICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6RmxvYXQ2NEFycmF5KTsKIAogICAgICAg
ICByZXR1cm4gQXJyYXlNb2RlKEFycmF5OjpHZW5lcmljKTsKKyAgICB9CiAKICAgICBkZWZhdWx0
OgogICAgICAgICByZXR1cm4gKnRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0FycmF5TW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJh
eU1vZGUuaAppbmRleCBjYmI4N2JkOTM1MGVmYzNkZGVjYzEwMjNhNGNmMjVjMDNmZjJhMWZiLi4y
YmE2YjA2Y2E4ZDgyZTdhNjU3MTc5N2Q5MWUxNTdjYzViYjQ5ZDFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgKQEAgLTIxMSw3ICsyMTEsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBBcnJheU1vZGUodHlwZSwgYXJyYXlDbGFzcygpLCBzcGVjdWxhdGlvbigp
LCBjb252ZXJzaW9uKTsKICAgICB9CiAgICAgCi0gICAgQXJyYXlNb2RlIHJlZmluZShTcGVjdWxh
dGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRleCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUg
PSBTcGVjTm9uZSwgTm9kZUZsYWdzID0gMCkgY29uc3Q7CisgICAgQXJyYXlNb2RlIHJlZmluZShH
cmFwaCYsIENvZGVPcmlnaW4sIFNwZWN1bGF0ZWRUeXBlIGJhc2UsIFNwZWN1bGF0ZWRUeXBlIGlu
ZGV4LCBTcGVjdWxhdGVkVHlwZSB2YWx1ZSA9IFNwZWNOb25lLCBOb2RlRmxhZ3MgPSAwKSBjb25z
dDsKICAgICAKICAgICBib29sIGFscmVhZHlDaGVja2VkKEdyYXBoJiwgTm9kZSosIEFic3RyYWN0
VmFsdWUmKSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKaW5kZXggYzU3MmU3YTNlMGZiMmI3NzE2NjVlM2Y5OGUyYmNhZjE1
NWI4Y2I1Yi4uYTJhNDMxZTQxNDQ5ODZlNGMwM2U0MGM4ZmFkYjViZDZlY2FjODY2MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTQw
LDYgKzQwLDcgQEAKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJlY2lzZUp1
bXBUYXJnZXRzLmgiCiAjaW5jbHVkZSAiUHV0QnlJZFN0YXR1cy5oIgorI2luY2x1ZGUgIlN0YWNr
QWxpZ25tZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlIDx3
dGYvQ29tbWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTE2MCw3ICsx
NjEsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlTWluTWF4KGludCByZXN1bHRPcGVyYW5k
LCBOb2RlVHlwZSBvcCwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMpOwogICAgIAogICAgIC8vIEhhbmRsZSBjYWxscy4gVGhpcyByZXNvbHZlcyBpc3N1
ZXMgc3Vycm91bmRpbmcgaW5saW5pbmcgYW5kIGludHJpbnNpY3MuCi0gICAgdm9pZCBoYW5kbGVD
YWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIE5vZGVUeXBlIG9wLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kKTsKKyAgICB2b2lkIGhhbmRsZUNhbGwoaW50IHJlc3VsdCwgTm9kZVR5
cGUgb3AsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIHVuc2lnbmVkIGluc3RydWN0aW9uU2l6ZSwg
aW50IGNhbGxlZSwgaW50IGFyZ0NvdW50LCBpbnQgcmVnaXN0ZXJPZmZzZXQpOworICAgIHZvaWQg
aGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogcGMsIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQpOwogICAgIHZvaWQgZW1pdEZ1bmN0aW9uQ2hlY2tzKGNvbnN0IENhbGxMaW5r
U3RhdHVzJiwgTm9kZSogY2FsbFRhcmdldCwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kKTsKICAgICB2b2lkIGVtaXRBcmd1bWVudFBoYW50b21zKGludCByZWdpc3Rl
ck9mZnNldCwgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kKTsKICAgICAvLyBIYW5kbGUgaW5saW5pbmcuIFJldHVybiB0cnVlIGlmIGl0IHN1Y2Nl
ZWRlZCwgZmFsc2UgaWYgd2UgbmVlZCB0byBwbGFudCBhIGNhbGwuCkBAIC03NzMsMjIgKzc3NSwy
MSBAQCBwcml2YXRlOgogICAgICAgICBtX251bVBhc3NlZFZhckFyZ3MrKzsKICAgICB9CiAgICAg
Ci0gICAgTm9kZSogYWRkQ2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBOb2Rl
VHlwZSBvcCkKKyAgICBOb2RlKiBhZGRDYWxsKGludCByZXN1bHQsIE5vZGVUeXBlIG9wLCBpbnQg
Y2FsbGVlLCBpbnQgYXJnQ291bnQsIGludCByZWdpc3Rlck9mZnNldCkKICAgICB7CiAgICAgICAg
IFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uKCk7CiAgICAgICAgIAot
ICAgICAgICBhZGRWYXJBcmdDaGlsZChnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVj
dGlvblsyXS51Lm9wZXJhbmQpKSk7Ci0gICAgICAgIGludCBhcmdDb3VudCA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgICAgIGlmIChKU1N0YWNrOjpUaGlzQXJndW1lbnQg
KyAodW5zaWduZWQpYXJnQ291bnQgPiBtX3BhcmFtZXRlclNsb3RzKQotICAgICAgICAgICAgbV9w
YXJhbWV0ZXJTbG90cyA9IEpTU3RhY2s6OlRoaXNBcmd1bWVudCArIGFyZ0NvdW50OworICAgICAg
ICBhZGRWYXJBcmdDaGlsZChnZXQoVmlydHVhbFJlZ2lzdGVyKGNhbGxlZSkpKTsKKyAgICAgICAg
c2l6ZV90IHBhcmFtZXRlclNsb3RzID0gSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIEpT
U3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplICsgYXJnQ291bnQ7CisgICAgICAgIGlmIChwYXJh
bWV0ZXJTbG90cyA+IG1fcGFyYW1ldGVyU2xvdHMpCisgICAgICAgICAgICBtX3BhcmFtZXRlclNs
b3RzID0gcGFyYW1ldGVyU2xvdHM7CiAKLSAgICAgICAgaW50IHJlZ2lzdGVyT2Zmc2V0ID0gLWN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQ7CiAgICAgICAgIGludCBkdW1teVRoaXNBcmd1
bWVudCA9IG9wID09IENhbGwgPyAwIDogMTsKICAgICAgICAgZm9yIChpbnQgaSA9IDAgKyBkdW1t
eVRoaXNBcmd1bWVudDsgaSA8IGFyZ0NvdW50OyArK2kpCiAgICAgICAgICAgICBhZGRWYXJBcmdD
aGlsZChnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoaSwgcmVnaXN0ZXJPZmZzZXQpKSk7
CiAKICAgICAgICAgTm9kZSogY2FsbCA9IGFkZFRvR3JhcGgoTm9kZTo6VmFyQXJnLCBvcCwgT3BJ
bmZvKDApLCBPcEluZm8ocHJlZGljdGlvbikpOwotICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBjYWxsKTsKKyAgICAgICAgc2V0KFZp
cnR1YWxSZWdpc3RlcihyZXN1bHQpLCBjYWxsKTsKICAgICAgICAgcmV0dXJuIGNhbGw7CiAgICAg
fQogICAgIApAQCAtOTkzLDkgKzk5NCwxMCBAQCBwcml2YXRlOgogICAgIC8vIFRoZSBudW1iZXIg
b2YgbG9jYWxzICh2YXJzICsgdGVtcG9yYXJpZXMpIHVzZWQgaW4gdGhlIGZ1bmN0aW9uLgogICAg
IHVuc2lnbmVkIG1fbnVtTG9jYWxzOwogICAgIC8vIFRoZSBudW1iZXIgb2Ygc2xvdHMgKGluIHVu
aXRzIG9mIHNpemVvZihSZWdpc3RlcikpIHRoYXQgd2UgbmVlZCB0bwotICAgIC8vIHByZWFsbG9j
YXRlIGZvciBjYWxscyBlbWFuYXRpbmcgZnJvbSB0aGlzIGZyYW1lLiBUaGlzIGluY2x1ZGVzIHRo
ZQotICAgIC8vIHNpemUgb2YgdGhlIENhbGxGcmFtZSwgb25seSBpZiB0aGlzIGlzIG5vdCBhIGxl
YWYgZnVuY3Rpb24uICAoSS5lLgotICAgIC8vIHRoaXMgaXMgMCBpZiBhbmQgb25seSBpZiB0aGlz
IGZ1bmN0aW9uIGlzIGEgbGVhZi4pCisgICAgLy8gcHJlYWxsb2NhdGUgZm9yIGFyZ3VtZW50cyB0
byBvdXRnb2luZyBjYWxscyBmcm9tIHRoaXMgZnJhbWUuIFRoaXMKKyAgICAvLyBudW1iZXIgaW5j
bHVkZXMgdGhlIENhbGxGcmFtZSBzbG90cyB0aGF0IHdlIGluaXRpYWxpemUgZm9yIHRoZSBjYWxs
ZWUKKyAgICAvLyAoYnV0IG5vdCB0aGUgY2FsbGVlLWluaXRpYWxpemVkIENhbGxlckZyYW1lIGFu
ZCBSZXR1cm5QQyBzbG90cykuCisgICAgLy8gVGhpcyBudW1iZXIgaXMgMCBpZiBhbmQgb25seSBp
ZiB0aGlzIGZ1bmN0aW9uIGlzIGEgbGVhZi4KICAgICB1bnNpZ25lZCBtX3BhcmFtZXRlclNsb3Rz
OwogICAgIC8vIFRoZSBudW1iZXIgb2YgdmFyIGFyZ3MgcGFzc2VkIHRvIHRoZSBuZXh0IHZhciBh
cmcgbm9kZS4KICAgICB1bnNpZ25lZCBtX251bVBhc3NlZFZhckFyZ3M7CkBAIC0xMTM0LDYgKzEx
MzYsMTAgQEAgcHJpdmF0ZToKICAgICAvLyB3b3JrLWFyb3VuZCBmb3IgdGhlIGZhY3QgdGhhdCBK
U1ZhbHVlTWFwIGNhbid0IGhhbmRsZSAiZW1wdHkiIHZhbHVlcy4KICAgICB1bnNpZ25lZCBtX2Vt
cHR5SlNWYWx1ZUluZGV4OwogICAgIAorICAgIENvZGVCbG9jayogbV9kZmdDb2RlQmxvY2s7Cisg
ICAgQ2FsbExpbmtTdGF0dXM6OkNvbnRleHRNYXAgbV9jYWxsQ29udGV4dE1hcDsKKyAgICBTdHVi
SW5mb01hcCBtX2RmZ1N0dWJJbmZvczsKKyAgICAKICAgICBJbnN0cnVjdGlvbiogbV9jdXJyZW50
SW5zdHJ1Y3Rpb247CiB9OwogCkBAIC0xMTQ1LDQzICsxMTUxLDQ1IEBAIHByaXZhdGU6CiAgICAg
bV9jdXJyZW50SW5kZXggKz0gT1BDT0RFX0xFTkdUSChuYW1lKTsgXAogICAgIHJldHVybiBzaG91
bGRDb250aW51ZVBhcnNpbmcKIAotCi12b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDYWxsKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGtpbmQpCit2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDYWxsKEluc3RydWN0
aW9uKiBwYywgTm9kZVR5cGUgb3AsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsKICAg
ICBBU1NFUlQoT1BDT0RFX0xFTkdUSChvcF9jYWxsKSA9PSBPUENPREVfTEVOR1RIKG9wX2NvbnN0
cnVjdCkpOworICAgIGhhbmRsZUNhbGwoCisgICAgICAgIHBjWzFdLnUub3BlcmFuZCwgb3AsIGtp
bmQsIE9QQ09ERV9MRU5HVEgob3BfY2FsbCksCisgICAgICAgIHBjWzJdLnUub3BlcmFuZCwgcGNb
M10udS5vcGVyYW5kLCAtcGNbNF0udS5vcGVyYW5kKTsKK30KKwordm9pZCBCeXRlQ29kZVBhcnNl
cjo6aGFuZGxlQ2FsbCgKKyAgICBpbnQgcmVzdWx0LCBOb2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kLCB1bnNpZ25lZCBpbnN0cnVjdGlvblNpemUsCisgICAgaW50IGNhbGxl
ZSwgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBpbnQgcmVnaXN0ZXJPZmZzZXQpCit7
CisgICAgQVNTRVJUKHJlZ2lzdGVyT2Zmc2V0IDw9IDApOwogICAgIAotICAgIE5vZGUqIGNhbGxU
YXJnZXQgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJh
bmQpKTsKKyAgICBOb2RlKiBjYWxsVGFyZ2V0ID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjYWxsZWUp
KTsKICAgICAKICAgICBDYWxsTGlua1N0YXR1cyBjYWxsTGlua1N0YXR1czsKIAotICAgIGlmICht
X2dyYXBoLmlzQ29uc3RhbnQoY2FsbFRhcmdldCkpCi0gICAgICAgIGNhbGxMaW5rU3RhdHVzID0g
Q2FsbExpbmtTdGF0dXMobV9ncmFwaC52YWx1ZU9mSlNDb25zdGFudChjYWxsVGFyZ2V0KSkuc2V0
SXNQcm92ZWQodHJ1ZSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGNhbGxMaW5rU3RhdHVzID0gQ2Fs
bExpbmtTdGF0dXM6OmNvbXB1dGVGb3IobV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2Nr
LCBtX2N1cnJlbnRJbmRleCk7Ci0gICAgICAgIGNhbGxMaW5rU3RhdHVzLnNldEhhc0JhZEZ1bmN0
aW9uRXhpdFNpdGUobV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZSht
X2N1cnJlbnRJbmRleCwgQmFkRnVuY3Rpb24pKTsKLSAgICAgICAgY2FsbExpbmtTdGF0dXMuc2V0
SGFzQmFkQ2FjaGVFeGl0U2l0ZSgKLSAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fZXhp
dFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlKQotICAgICAgICAg
ICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJl
bnRJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KSk7Ci0gICAgICAgIGNhbGxMaW5rU3RhdHVzLnNl
dEhhc0JhZEV4ZWN1dGFibGVFeGl0U2l0ZShtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxl
Lmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRFeGVjdXRhYmxlKSk7CisgICAgaWYgKG1f
Z3JhcGguaXNDb25zdGFudChjYWxsVGFyZ2V0KSkgeworICAgICAgICBjYWxsTGlua1N0YXR1cyA9
IENhbGxMaW5rU3RhdHVzKAorICAgICAgICAgICAgbV9ncmFwaC52YWx1ZU9mSlNDb25zdGFudChj
YWxsVGFyZ2V0KSkuc2V0SXNQcm92ZWQodHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY2Fs
bExpbmtTdGF0dXMgPSBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcigKKyAgICAgICAgICAgIG1f
aW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgY3VycmVudENvZGVPcmlnaW4oKSwgbV9j
YWxsQ29udGV4dE1hcCk7CiAgICAgfQogICAgIAogICAgIGlmICghY2FsbExpbmtTdGF0dXMuY2Fu
T3B0aW1pemUoKSkgewogICAgICAgICAvLyBPZGRseSwgdGhpcyBjb25mbGF0ZXMgY2FsbHMgdGhh
dCBoYXZlbid0IGV4ZWN1dGVkIHdpdGggY2FsbHMgdGhhdCBiZWhhdmVkIHN1ZmZpY2llbnRseSBw
b2x5bW9ycGhpY2FsbHkKICAgICAgICAgLy8gdGhhdCB3ZSBjYW5ub3Qgb3B0aW1pemUgdGhlbS4K
ICAgICAgICAgCi0gICAgICAgIGFkZENhbGwoY3VycmVudEluc3RydWN0aW9uLCBvcCk7CisgICAg
ICAgIGFkZENhbGwocmVzdWx0LCBvcCwgY2FsbGVlLCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhp
cywgcmVnaXN0ZXJPZmZzZXQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIGlu
dCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9w
ZXJhbmQ7Ci0gICAgaW50IHJlZ2lzdGVyT2Zmc2V0ID0gLWN1cnJlbnRJbnN0cnVjdGlvbls0XS51
Lm9wZXJhbmQ7Ci0KLSAgICBpbnQgcmVzdWx0T3BlcmFuZCA9IGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQ7Ci0gICAgdW5zaWduZWQgbmV4dE9mZnNldCA9IG1fY3VycmVudEluZGV4ICsg
T1BDT0RFX0xFTkdUSChvcF9jYWxsKTsKKyAgICB1bnNpZ25lZCBuZXh0T2Zmc2V0ID0gbV9jdXJy
ZW50SW5kZXggKyBpbnN0cnVjdGlvblNpemU7CiAgICAgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlv
biA9IGdldFByZWRpY3Rpb24oKTsKIAogICAgIGlmIChJbnRlcm5hbEZ1bmN0aW9uKiBmdW5jdGlv
biA9IGNhbGxMaW5rU3RhdHVzLmludGVybmFsRnVuY3Rpb24oKSkgewotICAgICAgICBpZiAoaGFu
ZGxlQ29uc3RhbnRJbnRlcm5hbEZ1bmN0aW9uKHJlc3VsdE9wZXJhbmQsIGZ1bmN0aW9uLCByZWdp
c3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHByZWRpY3Rpb24sIGtpbmQp
KSB7CisgICAgICAgIGlmIChoYW5kbGVDb25zdGFudEludGVybmFsRnVuY3Rpb24ocmVzdWx0LCBm
dW5jdGlvbiwgcmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBwcmVk
aWN0aW9uLCBraW5kKSkgewogICAgICAgICAgICAgLy8gVGhpcyBwaGFudG9taW5nIGhhcyB0byBi
ZSAqYWZ0ZXIqIHRoZSBjb2RlIGZvciB0aGUgaW50cmluc2ljLCB0byBzaWduaWZ5IHRoYXQKICAg
ICAgICAgICAgIC8vIHRoZSBpbnB1dHMgbXVzdCBiZSBrZXB0IGFsaXZlIHdoYXRldmVyIGV4aXRz
IHRoZSBpbnRyaW5zaWMgbWF5IGRvLgogICAgICAgICAgICAgYWRkVG9HcmFwaChQaGFudG9tLCBj
YWxsVGFyZ2V0KTsKQEAgLTExOTAsNyArMTE5OCw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6Omhh
bmRsZUNhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgTm9kZVR5cGUgb3AsIENv
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIENhbiBvbmx5IGhhbmRsZSB0aGlzIHVz
aW5nIHRoZSBnZW5lcmljIGNhbGwgaGFuZGxlci4KLSAgICAgICAgYWRkQ2FsbChjdXJyZW50SW5z
dHJ1Y3Rpb24sIG9wKTsKKyAgICAgICAgYWRkQ2FsbChyZXN1bHQsIG9wLCBjYWxsZWUsIGFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzLCByZWdpc3Rlck9mZnNldCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgICAgIApAQCAtMTE5OCw3ICsxMjA2LDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNl
cjo6aGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBOb2RlVHlwZSBv
cCwgQ28KICAgICBpZiAoaW50cmluc2ljICE9IE5vSW50cmluc2ljKSB7CiAgICAgICAgIGVtaXRG
dW5jdGlvbkNoZWNrcyhjYWxsTGlua1N0YXR1cywgY2FsbFRhcmdldCwgcmVnaXN0ZXJPZmZzZXQs
IGtpbmQpOwogICAgICAgICAgICAgCi0gICAgICAgIGlmIChoYW5kbGVJbnRyaW5zaWMocmVzdWx0
T3BlcmFuZCwgaW50cmluc2ljLCByZWdpc3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMsIHByZWRpY3Rpb24pKSB7CisgICAgICAgIGlmIChoYW5kbGVJbnRyaW5zaWMocmVzdWx0
LCBpbnRyaW5zaWMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywg
cHJlZGljdGlvbikpIHsKICAgICAgICAgICAgIC8vIFRoaXMgcGhhbnRvbWluZyBoYXMgdG8gYmUg
KmFmdGVyKiB0aGUgY29kZSBmb3IgdGhlIGludHJpbnNpYywgdG8gc2lnbmlmeSB0aGF0CiAgICAg
ICAgICAgICAvLyB0aGUgaW5wdXRzIG11c3QgYmUga2VwdCBhbGl2ZSB3aGF0ZXZlciBleGl0cyB0
aGUgaW50cmluc2ljIG1heSBkby4KICAgICAgICAgICAgIGFkZFRvR3JhcGgoUGhhbnRvbSwgY2Fs
bFRhcmdldCk7CkBAIC0xMjA3LDEzICsxMjE1LDEzIEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6Omhh
bmRsZUNhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgTm9kZVR5cGUgb3AsIENv
CiAgICAgICAgICAgICAgICAgbV9ncmFwaC5jb21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkQ2Fs
bCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChoYW5k
bGVJbmxpbmluZyhjYWxsVGFyZ2V0LCByZXN1bHRPcGVyYW5kLCBjYWxsTGlua1N0YXR1cywgcmVn
aXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBuZXh0T2Zmc2V0LCBraW5k
KSkgeworICAgIH0gZWxzZSBpZiAoaGFuZGxlSW5saW5pbmcoY2FsbFRhcmdldCwgcmVzdWx0LCBj
YWxsTGlua1N0YXR1cywgcmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
LCBuZXh0T2Zmc2V0LCBraW5kKSkgewogICAgICAgICBpZiAobV9ncmFwaC5jb21waWxhdGlvbigp
KQogICAgICAgICAgICAgbV9ncmFwaC5jb21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkQ2FsbCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIGFkZENhbGwoY3VycmVudEluc3Ry
dWN0aW9uLCBvcCk7CisgICAgYWRkQ2FsbChyZXN1bHQsIG9wLCBjYWxsZWUsIGFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzLCByZWdpc3Rlck9mZnNldCk7CiB9CiAKIHZvaWQgQnl0ZUNvZGVQYXJz
ZXI6OmVtaXRGdW5jdGlvbkNoZWNrcyhjb25zdCBDYWxsTGlua1N0YXR1cyYgY2FsbExpbmtTdGF0
dXMsIE5vZGUqIGNhbGxUYXJnZXQsIGludCByZWdpc3Rlck9mZnNldCwgQ29kZVNwZWNpYWxpemF0
aW9uS2luZCBraW5kKQpAQCAtMTI1MCwzMCArMTI1OCwzMiBAQCB2b2lkIEJ5dGVDb2RlUGFyc2Vy
OjplbWl0QXJndW1lbnRQaGFudG9tcyhpbnQgcmVnaXN0ZXJPZmZzZXQsIGludCBhcmd1bWVudENv
dW50SQogCiBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhOb2RlKiBjYWxsVGFy
Z2V0Tm9kZSwgaW50IHJlc3VsdE9wZXJhbmQsIGNvbnN0IENhbGxMaW5rU3RhdHVzJiBjYWxsTGlu
a1N0YXR1cywgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMsIHVuc2lnbmVkIG5leHRPZmZzZXQsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsK
KyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgIGRhdGFMb2coIkNvbnNpZGVyaW5nIGlubGluaW5nICIsIGNhbGxMaW5r
U3RhdHVzLCAiIGludG8gIiwgY3VycmVudENvZGVPcmlnaW4oKSwgIlxuIik7CisgICAgCiAgICAg
Ly8gRmlyc3QsIHRoZSByZWFsbHkgc2ltcGxlIGNoZWNrczogZG8gd2UgaGF2ZSBhbiBhY3R1YWwg
SlMgZnVuY3Rpb24/Ci0gICAgaWYgKCFjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCkpCisgICAg
aWYgKCFjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2Up
CisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIHRoZXJlIGlzIG5vIGV4
ZWN1dGFibGUuXG4iKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChjYWxsTGlua1N0
YXR1cy5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpCisgICAgfQorICAgIGlmIChjYWxs
TGlua1N0YXR1cy5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpIHsKKyAgICAgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIGl0J3Mg
YSBob3N0IGZ1bmN0aW9uLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAg
CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0ganNDYXN0PEZ1bmN0aW9uRXhl
Y3V0YWJsZSo+KGNhbGxMaW5rU3RhdHVzLmV4ZWN1dGFibGUoKSk7CiAgICAgCiAgICAgLy8gRG9l
cyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB3ZSdyZSBwYXNzaW5nIG1hdGNoIHRoZSBhcml0eSBv
ZiB0aGUgdGFyZ2V0PyBXZSBjdXJyZW50bHkKICAgICAvLyBpbmxpbmUgb25seSBpZiB0aGUgbnVt
YmVyIG9mIGFyZ3VtZW50cyBwYXNzZWQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBu
dW1iZXIKICAgICAvLyBhcmd1bWVudHMgZXhwZWN0ZWQuCi0gICAgaWYgKHN0YXRpY19jYXN0PGlu
dD4oZXhlY3V0YWJsZS0+cGFyYW1ldGVyQ291bnQoKSkgKyAxID4gYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMpCisgICAgaWYgKHN0YXRpY19jYXN0PGludD4oZXhlY3V0YWJsZS0+cGFyYW1ldGVy
Q291bnQoKSkgKyAxID4gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpIHsKKyAgICAgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIG9mIGFy
aXR5IG1pc21hdGNoLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICAvLyBI
YXZlIHdlIGV4Y2VlZGVkIGlubGluZSBzdGFjayBkZXB0aCwgb3IgYXJlIHdlIHRyeWluZyB0byBp
bmxpbmUgYSByZWN1cnNpdmUgY2FsbD8KLSAgICAvLyBJZiBlaXRoZXIgb2YgdGhlc2UgYXJlIGRl
dGVjdGVkLCB0aGVuIGRvbid0IGlubGluZS4KLSAgICB1bnNpZ25lZCBkZXB0aCA9IDA7Ci0gICAg
Zm9yIChJbmxpbmVTdGFja0VudHJ5KiBlbnRyeSA9IG1faW5saW5lU3RhY2tUb3A7IGVudHJ5OyBl
bnRyeSA9IGVudHJ5LT5tX2NhbGxlcikgewotICAgICAgICArK2RlcHRoOwotICAgICAgICBpZiAo
ZGVwdGggPj0gT3B0aW9uczo6bWF4aW11bUlubGluaW5nRGVwdGgoKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsgLy8gRGVwdGggZXhjZWVkZWQuCi0gICAgICAgIAotICAgICAgICBpZiAoZW50
cnktPmV4ZWN1dGFibGUoKSA9PSBleGVjdXRhYmxlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OyAvLyBSZWN1cnNpb24gZGV0ZWN0ZWQuCiAgICAgfQogICAgIAogICAgIC8vIERvIHdlIGhhdmUg
YSBjb2RlIGJsb2NrLCBhbmQgZG9lcyB0aGUgY29kZSBibG9jaydzIHNpemUgbWF0Y2ggdGhlIGhl
dXJpc3RpY3MvcmVxdWlyZW1lbnRzIGZvcgpAQCAtMTI4MywxMCArMTI5Myw1MCBAQCBib29sIEJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhOb2RlKiBjYWxsVGFyZ2V0Tm9kZSwgaW50IHJl
c3VsdE9wZXJhbmQsIGNvbgogICAgIC8vIGdsb2JhbCBmdW5jdGlvbiwgd2hlcmUgd2F0Y2hwb2lu
dGluZyBnaXZlcyB1cyBzdGF0aWMgaW5mb3JtYXRpb24uIE92ZXJhbGwsIGl0J3MgYSByYXJlIGNh
c2UKICAgICAvLyBiZWNhdXNlIHdlIGV4cGVjdCB0aGF0IGFueSBob3QgY2FsbGVlcyB3b3VsZCBo
YXZlIGFscmVhZHkgYmVlbiBjb21waWxlZC4KICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4
ZWN1dGFibGUtPmJhc2VsaW5lQ29kZUJsb2NrRm9yKGtpbmQpOwotICAgIGlmICghY29kZUJsb2Nr
KQorICAgIGlmICghY29kZUJsb2NrKSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAg
ICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSBubyBjb2RlIGJsb2NrIGF2YWlsYWJsZS5c
biIpOwogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFjYW5JbmxpbmVGdW5jdGlvbkZv
cihjb2RlQmxvY2ssIGtpbmQsIGNhbGxMaW5rU3RhdHVzLmlzQ2xvc3VyZUNhbGwoKSkpCisgICAg
fQorICAgIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwgPSBpbmxpbmVGdW5jdGlvbkZv
ckNhcGFiaWxpdHlMZXZlbCgKKyAgICAgICAgY29kZUJsb2NrLCBraW5kLCBjYWxsTGlua1N0YXR1
cy5pc0Nsb3N1cmVDYWxsKCkpOworICAgIGlmICghY2FuSW5saW5lKGNhcGFiaWxpdHlMZXZlbCkp
IHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGlu
ZyBiZWNhdXNlIHRoZSBmdW5jdGlvbiBpcyBub3QgaW5saW5lYWJsZS5cbiIpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBi
ZXR0ZXIgYXQgcHJlZGljdGluZyBob3cgbXVjaCBibG9hdCB3ZSB3aWxsIGludHJvZHVjZSBieSBp
bmxpbmluZworICAgIC8vIHRoaXMgZnVuY3Rpb24uCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyNworICAgIAorICAgIC8vIEhhdmUgd2UgZXhjZWVk
ZWQgaW5saW5lIHN0YWNrIGRlcHRoLCBvciBhcmUgd2UgdHJ5aW5nIHRvIGlubGluZSBhIHJlY3Vy
c2l2ZSBjYWxsIHRvCisgICAgLy8gdG9vIG1hbnkgbGV2ZWxzPyBJZiBlaXRoZXIgb2YgdGhlc2Ug
YXJlIGRldGVjdGVkLCB0aGVuIGRvbid0IGlubGluZS4gV2UgYWRqdXN0IG91cgorICAgIC8vIGhl
dXJpc3RpY3MgaWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uIHRoYXQgY2Fubm90IG90
aGVyd2lzZSBiZSBjb21waWxlZC4KKyAgICAKKyAgICB1bnNpZ25lZCBkZXB0aCA9IDA7CisgICAg
dW5zaWduZWQgcmVjdXJzaW9uID0gMDsKKyAgICAKKyAgICBmb3IgKElubGluZVN0YWNrRW50cnkq
IGVudHJ5ID0gbV9pbmxpbmVTdGFja1RvcDsgZW50cnk7IGVudHJ5ID0gZW50cnktPm1fY2FsbGVy
KSB7CisgICAgICAgICsrZGVwdGg7CisgICAgICAgIGlmIChkZXB0aCA+PSBPcHRpb25zOjptYXhp
bXVtSW5saW5pbmdEZXB0aCgpKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIGRlcHRoIGV4Y2VlZGVkLlxuIik7
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IGlmIChlbnRyeS0+ZXhlY3V0YWJsZSgpID09IGV4ZWN1dGFibGUpIHsKKyAgICAgICAgICAgICsr
cmVjdXJzaW9uOworICAgICAgICAgICAgaWYgKHJlY3Vyc2lvbiA+PSBPcHRpb25zOjptYXhpbXVt
SW5saW5pbmdSZWN1cnNpb24oKSkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIHJlY3Vyc2lvbiBk
ZXRlY3RlZC5cbiIpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgZGF0
YUxvZygiICAgIENvbW1pdHRpbmcgdG8gaW5saW5pbmcuXG4iKTsKICAgICAKICAgICAvLyBOb3cg
d2Uga25vdyB3aXRob3V0IGEgZG91YnQgdGhhdCB3ZSBhcmUgY29tbWl0dGVkIHRvIGlubGluaW5n
LiBTbyBiZWdpbiB0aGUgcHJvY2VzcwogICAgIC8vIGJ5IGNoZWNraW5nIHRoZSBjYWxsZWUgKGlm
IG5lY2Vzc2FyeSkgYW5kIG1ha2luZyBzdXJlIHRoYXQgYXJndW1lbnRzIGFuZCB0aGUgY2FsbGVl
CkBAIC0xNzczLDExICsxODIzLDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlR2V0QnlJ
ZCgKICAgICBpbnQgZGVzdGluYXRpb25PcGVyYW5kLCBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9u
LCBOb2RlKiBiYXNlLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLAogICAgIGNvbnN0IEdldEJ5
SWRTdGF0dXMmIGdldEJ5SWRTdGF0dXMpCiB7Ci0gICAgaWYgKCFnZXRCeUlkU3RhdHVzLmlzU2lt
cGxlKCkKLSAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0
U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUpCi0gICAgICAgIHx8IG1faW5saW5lU3RhY2tU
b3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlV2F0
Y2hwb2ludCkKLSAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNF
eGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGUpCi0gICAgICAgIHx8
IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5k
ZXgsIEJhZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2ludCkpIHsKKyAgICBpZiAoIWdldEJ5SWRT
dGF0dXMuaXNTaW1wbGUoKSkgewogICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGRlc3RpbmF0
aW9uT3BlcmFuZCksCiAgICAgICAgICAgICBhZGRUb0dyYXBoKAogICAgICAgICAgICAgICAgIGdl
dEJ5SWRTdGF0dXMubWFrZXNDYWxscygpID8gR2V0QnlJZEZsdXNoIDogR2V0QnlJZCwKQEAgLTI0
NDQsNiArMjQ5MCw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQg
bGltaXQpCiAgICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChwcm9wZXJ0eSk7CiAgICAgICAgICAg
ICBhZGRWYXJBcmdDaGlsZCh2YWx1ZSk7CiAgICAgICAgICAgICBhZGRWYXJBcmdDaGlsZCgwKTsg
Ly8gTGVhdmUgcm9vbSBmb3IgcHJvcGVydHkgc3RvcmFnZS4KKyAgICAgICAgICAgIGFkZFZhckFy
Z0NoaWxkKDApOyAvLyBMZWF2ZSByb29tIGZvciBsZW5ndGguCiAgICAgICAgICAgICBhZGRUb0dy
YXBoKE5vZGU6OlZhckFyZywgb3Bjb2RlSUQgPT0gb3BfcHV0X2J5X3ZhbF9kaXJlY3QgPyBQdXRC
eVZhbERpcmVjdCA6IFB1dEJ5VmFsLCBPcEluZm8oYXJyYXlNb2RlLmFzV29yZCgpKSwgT3BJbmZv
KDApKTsKIAogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfcHV0X2J5X3ZhbCk7CkBAIC0yNDU5
LDggKzI1MDYsOSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxp
bWl0KQogICAgICAgICAgICAgCiAgICAgICAgICAgICBTdHJpbmdJbXBsKiB1aWQgPSBtX2dyYXBo
LmlkZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJlcl07CiAgICAgICAgICAgICBHZXRCeUlkU3Rh
dHVzIGdldEJ5SWRTdGF0dXMgPSBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAotICAgICAgICAg
ICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9pbmxpbmVTdGFja1Rv
cC0+bV9zdHViSW5mb3MsCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50SW5kZXgsIHVpZCk7Cisg
ICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCBtX2RmZ0Nv
ZGVCbG9jaywKKyAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3N0dWJJbmZvcywg
bV9kZmdTdHViSW5mb3MsCisgICAgICAgICAgICAgICAgY3VycmVudENvZGVPcmlnaW4oKSwgdWlk
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaGFuZGxlR2V0QnlJZCgKICAgICAgICAgICAg
ICAgICBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBwcmVkaWN0aW9uLCBiYXNlLCBp
ZGVudGlmaWVyTnVtYmVyLCBnZXRCeUlkU3RhdHVzKTsKQEAgLTI0NzksMjYgKzI1MjcsMjAgQEAg
Ym9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAg
ICAgIGJvb2wgZGlyZWN0ID0gY3VycmVudEluc3RydWN0aW9uWzhdLnUub3BlcmFuZDsKIAogICAg
ICAgICAgICAgUHV0QnlJZFN0YXR1cyBwdXRCeUlkU3RhdHVzID0gUHV0QnlJZFN0YXR1czo6Y29t
cHV0ZUZvcigKLSAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxv
Y2ssIG1faW5saW5lU3RhY2tUb3AtPm1fc3R1YkluZm9zLAotICAgICAgICAgICAgICAgIG1fY3Vy
cmVudEluZGV4LCBtX2dyYXBoLmlkZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJlcl0pOworICAg
ICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9kZmdDb2Rl
QmxvY2ssCisgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9zdHViSW5mb3MsIG1f
ZGZnU3R1YkluZm9zLAorICAgICAgICAgICAgICAgIGN1cnJlbnRDb2RlT3JpZ2luKCksIG1fZ3Jh
cGguaWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVtYmVyXSk7CiAgICAgICAgICAgICBib29sIGNh
bkNvdW50QXNJbmxpbmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGlmICghcHV0QnlJZFN0YXR1cy5p
c1NldCgpKSB7CiAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChGb3JjZU9TUkV4aXQpOwogICAg
ICAgICAgICAgICAgIGNhbkNvdW50QXNJbmxpbmVkID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIGJvb2wgaGFzRXhpdFNpdGUgPQotICAgICAgICAgICAg
ICAgIG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50
SW5kZXgsIEJhZENhY2hlKQotICAgICAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1f
ZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlV2F0Y2hwb2lu
dCkKLSAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhh
c0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZSkKLSAgICAgICAg
ICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1f
Y3VycmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZVdhdGNocG9pbnQpOwotICAgICAgICAg
ICAgCi0gICAgICAgICAgICBpZiAoIWhhc0V4aXRTaXRlICYmIHB1dEJ5SWRTdGF0dXMuaXNTaW1w
bGVSZXBsYWNlKCkpIHsKKyAgICAgICAgICAgIGlmIChwdXRCeUlkU3RhdHVzLmlzU2ltcGxlUmVw
bGFjZSgpKSB7CiAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja1N0cnVjdHVyZSwgT3BJ
bmZvKG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KHB1dEJ5SWRTdGF0dXMub2xkU3RydWN0dXJlKCkp
KSwgYmFzZSk7CiAgICAgICAgICAgICAgICAgaGFuZGxlUHV0QnlPZmZzZXQoYmFzZSwgaWRlbnRp
Zmllck51bWJlciwgcHV0QnlJZFN0YXR1cy5vZmZzZXQoKSwgdmFsdWUpOwogICAgICAgICAgICAg
fSBlbHNlIGlmICgKLSAgICAgICAgICAgICAgICAhaGFzRXhpdFNpdGUKLSAgICAgICAgICAgICAg
ICAmJiBwdXRCeUlkU3RhdHVzLmlzU2ltcGxlVHJhbnNpdGlvbigpCisgICAgICAgICAgICAgICAg
cHV0QnlJZFN0YXR1cy5pc1NpbXBsZVRyYW5zaXRpb24oKQogICAgICAgICAgICAgICAgICYmICgh
cHV0QnlJZFN0YXR1cy5zdHJ1Y3R1cmVDaGFpbigpCiAgICAgICAgICAgICAgICAgICAgIHx8IHB1
dEJ5SWRTdGF0dXMuc3RydWN0dXJlQ2hhaW4oKS0+aXNTdGlsbFZhbGlkKCkpKSB7CiAgICAgICAg
ICAgICAgICAgCkBAIC0yOTczLDMwICszMDE1LDQxIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBh
cnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9jb25z
dHJ1Y3QpOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2Ugb3BfY2FsbF92YXJhcmdzOiB7Cisg
ICAgICAgICAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsK
KyAgICAgICAgICAgIGludCBjYWxsZWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
OworICAgICAgICAgICAgaW50IHRoaXNSZWcgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVy
YW5kOworICAgICAgICAgICAgaW50IGFyZ3VtZW50cyA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgZmlyc3RGcmVlUmVnID0gY3VycmVudEluc3RydWN0
aW9uWzVdLnUub3BlcmFuZDsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgQVNTRVJUKGlubGlu
ZUNhbGxGcmFtZSgpKTsKLSAgICAgICAgICAgIEFTU0VSVChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0u
dS5vcGVyYW5kID09IG1faW5saW5lU3RhY2tUb3AtPm1fY29kZUJsb2NrLT5hcmd1bWVudHNSZWdp
c3RlcigpLm9mZnNldCgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoYXJndW1lbnRzLCBh
cmd1bWVudHMgPT0gbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxvY2stPmFyZ3VtZW50c1JlZ2lz
dGVyKCkub2Zmc2V0KCkpOwogICAgICAgICAgICAgQVNTRVJUKCFtX2lubGluZVN0YWNrVG9wLT5t
X2NvZGVCbG9jay0+c3ltYm9sVGFibGUoKS0+c2xvd0FyZ3VtZW50cygpKTsKLSAgICAgICAgICAg
IC8vIEl0IHdvdWxkIGJlIGNvb2wgdG8gZnVubmVsIHRoaXMgaW50byBoYW5kbGVDYWxsKCkgc28g
dGhhdCBpdCBjYW4gaGFuZGxlCi0gICAgICAgICAgICAvLyBpbmxpbmluZy4gQnV0IGN1cnJlbnRs
eSB0aGF0IHdvbid0IGJlIHByb2ZpdGFibGUgYW55d2F5LCBzaW5jZSBub25lIG9mIHRoZQotICAg
ICAgICAgICAgLy8gdXNlcyBvZiBjYWxsX3ZhcmFyZ3Mgd2lsbCBiZSBpbmxpbmVhYmxlLiBTbyB3
ZSBzZXQgdGhpcyB1cCBtYW51YWxseSBhbmQKLSAgICAgICAgICAgIC8vIHdpdGhvdXQgaW5saW5l
L2ludHJpbnNpYyBkZXRlY3Rpb24uCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIFNwZWN1bGF0
ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uKCk7Ci0gICAgICAgICAgICAKKwogICAg
ICAgICAgICAgYWRkVG9HcmFwaChDaGVja0FyZ3VtZW50c05vdENyZWF0ZWQpOwotICAgICAgICAg
ICAgCisKICAgICAgICAgICAgIHVuc2lnbmVkIGFyZ0NvdW50ID0gaW5saW5lQ2FsbEZyYW1lKCkt
PmFyZ3VtZW50cy5zaXplKCk7Ci0gICAgICAgICAgICBpZiAoSlNTdGFjazo6VGhpc0FyZ3VtZW50
ICsgYXJnQ291bnQgPiBtX3BhcmFtZXRlclNsb3RzKQotICAgICAgICAgICAgICAgIG1fcGFyYW1l
dGVyU2xvdHMgPSBKU1N0YWNrOjpUaGlzQXJndW1lbnQgKyBhcmdDb3VudDsKICAgICAgICAgICAg
IAotICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSkpOyAvLyBjYWxsZWUKLSAgICAgICAgICAgIGFkZFZh
ckFyZ0NoaWxkKGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZCkpKTsgLy8gdGhpcworICAgICAgICAgICAgLy8gTGV0J3MgY29tcHV0ZSB0aGUgcmVnaXN0
ZXIgb2Zmc2V0LiBXZSBzdGFydCB3aXRoIHRoZSBsYXN0IHVzZWQgcmVnaXN0ZXIsIGFuZAorICAg
ICAgICAgICAgLy8gdGhlbiBhZGp1c3QgZm9yIHRoZSB0aGluZ3Mgd2Ugd2FudCBpbiB0aGUgY2Fs
bCBmcmFtZS4KKyAgICAgICAgICAgIGludCByZWdpc3Rlck9mZnNldCA9IGZpcnN0RnJlZVJlZyAr
IDE7CisgICAgICAgICAgICByZWdpc3Rlck9mZnNldCAtPSBhcmdDb3VudDsgLy8gV2Ugd2lsbCBi
ZSBwYXNzaW5nIHNvbWUgYXJndW1lbnRzLgorICAgICAgICAgICAgcmVnaXN0ZXJPZmZzZXQgLT0g
SlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsgLy8gV2Ugd2lsbCBwcmV0ZW5kIHRvIGhhdmUg
YSBjYWxsIGZyYW1lIGhlYWRlci4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gR2V0IHRo
ZSBhbGlnbm1lbnQgcmlnaHQuCisgICAgICAgICAgICByZWdpc3Rlck9mZnNldCA9IC1XVEY6OnJv
dW5kVXBUb011bHRpcGxlT2YoCisgICAgICAgICAgICAgICAgc3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKSwKKyAgICAgICAgICAgICAgICAtcmVnaXN0ZXJPZmZzZXQpOworICAgICAgICAgICAgCisg
ICAgICAgICAgICAvLyBUaGUgYnl0ZWNvZGUgd291bGRuJ3QgaGF2ZSBzZXQgdXAgdGhlIGFyZ3Vt
ZW50cy4gQnV0IHdlJ2xsIGRvIGl0IGFuZCBtYWtlIGl0CisgICAgICAgICAgICAvLyBsb29rIGxp
a2UgdGhlIGJ5dGVjb2RlIGhhZCBkb25lIGl0LgorICAgICAgICAgICAgaW50IG5leHRSZWdpc3Rl
ciA9IHJlZ2lzdGVyT2Zmc2V0ICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKKyAgICAg
ICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIobmV4dFJlZ2lzdGVyKyspLCBnZXQoVmlydHVhbFJl
Z2lzdGVyKHRoaXNSZWcpKSwgSW1tZWRpYXRlU2V0KTsKICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgYXJndW1lbnQgPSAxOyBhcmd1bWVudCA8IGFyZ0NvdW50OyArK2FyZ3VtZW50KQotICAgICAg
ICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChh
cmd1bWVudCkpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3Rl
cihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwKLSAgICAgICAgICAgICAgICBhZGRU
b0dyYXBoKE5vZGU6OlZhckFyZywgQ2FsbCwgT3BJbmZvKDApLCBPcEluZm8ocHJlZGljdGlvbikp
KTsKKyAgICAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKG5leHRSZWdpc3RlcisrKSwg
Z2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGFyZ3VtZW50KSksIEltbWVkaWF0ZVNldCk7
CiAgICAgICAgICAgICAKKyAgICAgICAgICAgIGhhbmRsZUNhbGwoCisgICAgICAgICAgICAgICAg
cmVzdWx0LCBDYWxsLCBDb2RlRm9yQ2FsbCwgT1BDT0RFX0xFTkdUSChvcF9jYWxsX3ZhcmFyZ3Mp
LAorICAgICAgICAgICAgICAgIGNhbGxlZSwgYXJnQ291bnQsIHJlZ2lzdGVyT2Zmc2V0KTsKICAg
ICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2NhbGxfdmFyYXJncyk7CiAgICAgICAgIH0KICAgICAg
ICAgICAgIApAQCAtMzY1NCw2ICszNzA3LDE2IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNl
KCkKICAgICAvLyBTZXQgZHVyaW5nIGNvbnN0cnVjdGlvbi4KICAgICBBU1NFUlQoIW1fY3VycmVu
dEluZGV4KTsKICAgICAKKyAgICBpZiAoaXNGVEwobV9ncmFwaC5tX3BsYW4ubW9kZSkpIHsKKyAg
ICAgICAgbV9kZmdDb2RlQmxvY2sgPSBtX2dyYXBoLm1fcGxhbi5wcm9maWxlZERGR0NvZGVCbG9j
ay5nZXQoKTsKKyAgICAgICAgaWYgKG1fZGZnQ29kZUJsb2NrKSB7CisgICAgICAgICAgICBpZiAo
T3B0aW9uczo6ZW5hYmxlUG9seXZhcmlhbnRDYWxsSW5saW5pbmcoKSkKKyAgICAgICAgICAgICAg
ICBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZURGR1N0YXR1c2VzKG1fZGZnQ29kZUJsb2NrLCBtX2Nh
bGxDb250ZXh0TWFwKTsKKyAgICAgICAgICAgIGlmIChPcHRpb25zOjplbmFibGVQb2x5dmFyaWFu
dEJ5SWRJbmxpbmluZygpKQorICAgICAgICAgICAgICAgIG1fZGZnQ29kZUJsb2NrLT5nZXRTdHVi
SW5mb01hcChtX2RmZ1N0dWJJbmZvcyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCiAgICAgaWYg
KG1fY29kZUJsb2NrLT5jYXB0dXJlQ291bnQoKSkgewogICAgICAgICBTeW1ib2xUYWJsZSogc3lt
Ym9sVGFibGUgPSBtX2NvZGVCbG9jay0+c3ltYm9sVGFibGUoKTsKICAgICAgICAgQ29uY3VycmVu
dEpJVExvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUtPm1fbG9jayk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcAppbmRl
eCA1ZGUzNmEwZGEyY2U0OWJjZjQ4NzM3Mjg4OGI5NjlmYmM4Mzg5NTIyLi42M2YxZTk4YjdmM2Fh
NzE0NTU5YmJiZTBlYWU5MWRlNTQzZTU1YzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAKQEAgLTc5LDYgKzc5
LDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAvLyBzdWJvcHRpbWFsLCBiZWNhdXNl
IGlmIG15IHN1Y2Nlc3NvciBoYXMgbXVsdGlwbGUgcHJlZGVjZXNzb3JzIHRoZW4gd2UnbGwKICAg
ICAgICAgICAgICAgICAgICAgLy8gYmUga2VlcGluZyBhbGl2ZSB0aGluZ3Mgb24gb3RoZXIgcHJl
ZGVjZXNzb3IgZWRnZXMgdW5uZWNlc3NhcmlseS4KICAgICAgICAgICAgICAgICAgICAgLy8gV2hh
dCB3ZSByZWFsbHkgbmVlZCBpcyB0aGUgbm90aW9uIG9mIGVuZC1vZi1ibG9jayBnaG9zdGllcyEK
KyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEFsbG93IHB1dHRpbmcgcGhhbnRvbXMgYWZ0
ZXIgdGVybWluYWxzLgorICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2Nzc4CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDU0VQaGFzZS5jcHAKaW5kZXggYTRlMTU5ZTczYjMzOGZjMGIxOWZlOTlhNmU4ODBj
MTJkN2JmYzc2OS4uZDNiZmM1MGJkZThkNmQ3ODQ2OGRmZDA3ZGUzNmI5ZWZhYTVkYjFiNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKQEAgLTI4LDYgKzI4LDgg
QEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiREZHQWJzdHJhY3RIZWFwLmgi
CisjaW5jbHVkZSAiREZHQ2xvYmJlcml6ZS5oIgogI2luY2x1ZGUgIkRGR0VkZ2VVc2VzU3RydWN0
dXJlLmgiCiAjaW5jbHVkZSAiREZHR3JhcGguaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgpAQCAt
MTAwNiw2ICsxMDA4LDE4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQogICAgIAorICAgIGJvb2wgaW52YWxpZGF0aW9uUG9pbnRFbGltaW5hdGlvbigpCisgICAgewor
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2luZGV4SW5CbG9jazsgaS0tOykgeworICAgICAg
ICAgICAgTm9kZSogbm9kZSA9IG1fY3VycmVudEJsb2NrLT5hdChpKTsKKyAgICAgICAgICAgIGlm
IChub2RlLT5vcCgpID09IEludmFsaWRhdGlvblBvaW50KQorICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICAgICAgaWYgKHdyaXRlc092ZXJsYXAobV9ncmFwaCwgbm9kZSwgV2F0
Y2hwb2ludF9maXJlKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAogICAgIHZvaWQgZWxpbWluYXRlSXJyZWxldmFu
dFBoYW50b21DaGlsZHJlbihOb2RlKiBub2RlKQogICAgIHsKICAgICAgICAgQVNTRVJUKG5vZGUt
Pm9wKCkgPT0gUGhhbnRvbSk7CkBAIC0xMzg1LDkgKzEzOTksMTMgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIGVsaW1pbmF0ZShwdXRCeU9mZnNldFN0b3JlRWxpbWluYXRpb24obV9ncmFwaC5tX3N0
b3JhZ2VBY2Nlc3NEYXRhW25vZGUtPnN0b3JhZ2VBY2Nlc3NEYXRhSW5kZXgoKV0uaWRlbnRpZmll
ck51bWJlciwgbm9kZS0+Y2hpbGQxKCkubm9kZSgpKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIAorICAgICAgICBjYXNlIEludmFsaWRhdGlvblBvaW50OgorICAgICAgICAgICAg
aWYgKGludmFsaWRhdGlvblBvaW50RWxpbWluYXRpb24oKSkKKyAgICAgICAgICAgICAgICBlbGlt
aW5hdGUoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCiAgICAgICAgIGNhc2Ug
UGhhbnRvbToKICAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSBvdWdodCB0byByZW1vdmUgUGhhbnRv
bSdzIHRoYXQgaGF2ZSBubyBjaGlsZHJlbi4KLSAgICAgICAgICAgIAogICAgICAgICAgICAgZWxp
bWluYXRlSXJyZWxldmFudFBoYW50b21DaGlsZHJlbihub2RlKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxp
dGllcy5jcHAKaW5kZXggZTZmY2Q4YzExYzhiYjAxNTc0NGM2OTZlOWYyNDNlYTg1MjRjZjViYS4u
ZDFiZWI5MzEyNDU4YjUyOWI4ODhiMWMxOWVmZTVjY2JjNmIxNGJmYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTk4LDYgKzE5OCw4IEBA
IENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVC
bG9jayogY29kZUJsb2NrLCBJbnN0cnVjCiAgICAgY2FzZSBvcF9jYWxsX3ZhcmFyZ3M6CiAgICAg
ICAgIGlmIChjb2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSAmJiBwY1s0XS51Lm9wZXJhbmQgPT0g
Y29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpLm9mZnNldCgpKQogICAgICAgICAgICAgcmV0
dXJuIENhbklubGluZTsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBoYW5kbGUgdGhpcy4K
KyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYy
NgogICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKIAogICAgIGNhc2Ugb3BfbmV3X3JlZ2V4
cDogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGll
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuaAppbmRleCA1
YmQ4MGM1MTdjYTQ4ZjA5NTc5ODIzNDA0NGExNjg1NjVhM2Q1NGVjLi4zY2I5MjQ3MjIwMTI1OGVm
OTgxYmNlZGYzNjI3NDFkYTYyYzA3ZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NhcGFiaWxpdGllcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2FwYWJpbGl0aWVzLmgKQEAgLTk2LDE5ICs5NiwyOCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxl
dmVsIGZ1bmN0aW9uRm9yQ29uc3RydWN0Q2FwYWJpbGl0eUxldmVsKENvZGVCbG9jayogY29kZUJs
b2NrKQogICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAotaW5saW5l
IGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3JDYWxsKENvZGVCbG9jayogY29kZUJsb2NrKQoraW5s
aW5lIENhcGFiaWxpdHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNhbGxDYXBhYmlsaXR5TGV2ZWwo
Q29kZUJsb2NrKiBjb2RlQmxvY2spCiB7Ci0gICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25G
b3JDYWxsKGNvZGVCbG9jaykgJiYgY2FuSW5saW5lKGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2sp
KTsKKyAgICBpZiAoIW1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDYWxsKGNvZGVCbG9jaykpCisgICAg
ICAgIHJldHVybiBDYW5ub3RDb21waWxlOworICAgIAorICAgIHJldHVybiBjYXBhYmlsaXR5TGV2
ZWwoY29kZUJsb2NrKTsKIH0KIAotaW5saW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3JDbG9z
dXJlQ2FsbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKK2lubGluZSBDYXBhYmlsaXR5TGV2ZWwgaW5s
aW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVC
bG9jaykKIHsKLSAgICByZXR1cm4gbWlnaHRJbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxsKGNv
ZGVCbG9jaykgJiYgY2FuSW5saW5lKGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spKTsKKyAgICBp
ZiAoIW1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChjb2RlQmxvY2spKQorICAgICAg
ICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKKyAgICAKKyAgICByZXR1cm4gY2FwYWJpbGl0eUxldmVs
KGNvZGVCbG9jayk7CiB9CiAKLWlubGluZSBib29sIGNhbklubGluZUZ1bmN0aW9uRm9yQ29uc3Ry
dWN0KENvZGVCbG9jayogY29kZUJsb2NrKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBpbmxpbmVG
dW5jdGlvbkZvckNvbnN0cnVjdENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaykK
IHsKLSAgICByZXR1cm4gbWlnaHRJbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdChjb2RlQmxvY2sp
ICYmIGNhbklubGluZShjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKSk7CisgICAgaWYgKCFtaWdo
dElubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KGNvZGVCbG9jaykpCisgICAgICAgIHJldHVybiBD
YW5ub3RDb21waWxlOworICAgIAorICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2Nr
KTsKIH0KIAogaW5saW5lIGJvb2wgbWlnaHRJbmxpbmVGdW5jdGlvbkZvcihDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQpAQCAtMTI0LDE2ICsxMzMsMTYg
QEAgaW5saW5lIGJvb2wgbWlnaHRJbmxpbmVGdW5jdGlvbihDb2RlQmxvY2sqIGNvZGVCbG9jaykK
ICAgICByZXR1cm4gbWlnaHRJbmxpbmVGdW5jdGlvbkZvcihjb2RlQmxvY2ssIGNvZGVCbG9jay0+
c3BlY2lhbGl6YXRpb25LaW5kKCkpOwogfQogCi1pbmxpbmUgYm9vbCBjYW5JbmxpbmVGdW5jdGlv
bkZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBi
b29sIGlzQ2xvc3VyZUNhbGwpCitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGlubGluZUZ1bmN0aW9u
Rm9yQ2FwYWJpbGl0eUxldmVsKENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQsIGJvb2wgaXNDbG9zdXJlQ2FsbCkKIHsKICAgICBpZiAoaXNDbG9zdXJlQ2Fs
bCkgewogICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ2FsbCk7Ci0gICAgICAgIHJldHVy
biBjYW5JbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxsKGNvZGVCbG9jayk7CisgICAgICAgIHJl
dHVybiBpbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxsQ2FwYWJpbGl0eUxldmVsKGNvZGVCbG9j
ayk7CiAgICAgfQogICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKQotICAgICAgICByZXR1cm4g
Y2FuSW5saW5lRnVuY3Rpb25Gb3JDYWxsKGNvZGVCbG9jayk7CisgICAgICAgIHJldHVybiBpbmxp
bmVGdW5jdGlvbkZvckNhbGxDYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKICAgICBBU1NFUlQo
a2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICByZXR1cm4gY2FuSW5saW5lRnVuY3Rpb25G
b3JDb25zdHJ1Y3QoY29kZUJsb2NrKTsKKyAgICByZXR1cm4gaW5saW5lRnVuY3Rpb25Gb3JDb25z
dHJ1Y3RDYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkRGRwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgKaW5kZXggN2I0YjFkYjVm
MDhlN2M0OWM0ZjY3Y2UyZjQ3YjM1MzdkZjRlMTJlYi4uZTllYWNiZDVjNGI5YTJkMzc0MWQ3ZTk4
OGE0M2I5NGJkMGUyZjY4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCkBA
IC04NywxNSArODcsNiBAQCBpbmxpbmUgYm9vbCB2YWxpZGF0aW9uRW5hYmxlZCgpCiAjZW5kaWYK
IH0KIAotaW5saW5lIGJvb2wgZW5hYmxlQ29uY3VycmVudEpJVCgpCi17Ci0jaWYgRU5BQkxFKENP
TkNVUlJFTlRfSklUKQotICAgIHJldHVybiBPcHRpb25zOjplbmFibGVDb25jdXJyZW50SklUKCkg
JiYgT3B0aW9uczo6bnVtYmVyT2ZDb21waWxlclRocmVhZHMoKTsKLSNlbHNlCi0gICAgcmV0dXJu
IGZhbHNlOwotI2VuZGlmCi19Ci0KIGlubGluZSBib29sIGVuYWJsZUludDUyKCkKIHsKICNpZiBV
U0UoSlNWQUxVRTY0KQpAQCAtMjM1LDcgKzIyNiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAKIC8vIFB1dCB0aGluZ3MgaGVyZSB0aGF0IG11c3QgYmUgZGVmaW5lZCBldmVu
IGlmIEVOQUJMRShERkdfSklUKSBpcyBmYWxzZS4KIAotZW51bSBDYXBhYmlsaXR5TGV2ZWwgeyBD
YW5ub3RDb21waWxlLCBDYW5JbmxpbmUsIENhbkNvbXBpbGUsIENhbkNvbXBpbGVBbmRJbmxpbmUs
IENhcGFiaWxpdHlMZXZlbE5vdFNldCB9OworZW51bSBDYXBhYmlsaXR5TGV2ZWwgeworICAgIENh
bm5vdENvbXBpbGUsCisgICAgQ2FuSW5saW5lLAorICAgIENhbkNvbXBpbGUsCisgICAgQ2FuQ29t
cGlsZUFuZElubGluZSwKKyAgICBDYXBhYmlsaXR5TGV2ZWxOb3RTZXQKK307CiAKIGlubGluZSBi
b29sIGNhbkNvbXBpbGUoQ2FwYWJpbGl0eUxldmVsIGxldmVsKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21waWxhdGlvbk1vZGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ29tcGlsYXRpb25Nb2RlLmgKaW5kZXggMTAzNWY2MGJjOWQ5ZmJi
MDIyYTA1MjM3ZTg3ZTY4ZTljYjg0ZGE0NS4uMmQ2ZTQ5YWQ1ODNlMjFiZTA4YTdjNmE3NTA1YWY2
YWMxZTY2Yjg2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21w
aWxhdGlvbk1vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbXBpbGF0
aW9uTW9kZS5oCkBAIC0zNyw2ICszNywxNyBAQCBlbnVtIENvbXBpbGF0aW9uTW9kZSB7CiAgICAg
RlRMRm9yT1NSRW50cnlNb2RlCiB9OwogCitpbmxpbmUgYm9vbCBpc0ZUTChDb21waWxhdGlvbk1v
ZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEZUTE1vZGU6CisgICAg
Y2FzZSBGVExGb3JPU1JFbnRyeU1vZGU6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpERkcKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RyaXZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ry
aXZlci5jcHAKaW5kZXggYTgxZjdmMmY5NmU5OWM4MDhkZDU2YjU1Zjg3NGMxOTc2YTRjNmQxMy4u
NWQyN2MxMDFiOTNlNmRlMTUyMWRhYzE2MjlhM2NiMWVmNjVlNjM5NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsOSAr
NTUsOSBAQCB1bnNpZ25lZCBnZXROdW1Db21waWxhdGlvbnMoKQogCiAjaWYgRU5BQkxFKERGR19K
SVQpCiBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCi0gICAgVk0mIHZtLCBD
b2RlQmxvY2sqIGNvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUsIHVuc2lnbmVkIG9zckVu
dHJ5Qnl0ZWNvZGVJbmRleCwKLSAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRs
ZVZhbHVlcywKLSAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY2Fs
bGJhY2ssIFdvcmtsaXN0KiB3b3JrbGlzdCkKKyAgICBWTSYgdm0sIENvZGVCbG9jayogY29kZUJs
b2NrLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9k
ZSwKKyAgICB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIGNvbnN0IE9wZXJhbmRzPEpT
VmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzLAorICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrPiBjYWxsYmFjaykKIHsKICAgICBTYW1wbGluZ1JlZ2lvbiBzYW1wbGluZ1Jl
Z2lvbigiREZHIENvbXBpbGF0aW9uIChEcml2ZXIpIik7CiAgICAgCkBAIC02Niw2ICs2Niw3IEBA
IHN0YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAgICBBU1NFUlQoY29kZUJs
b2NrKTsKICAgICBBU1NFUlQoY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpKTsKICAgICBBU1NFUlQo
Y29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6QmFzZWxpbmVK
SVQpOworICAgIEFTU0VSVCghcHJvZmlsZWRERkdDb2RlQmxvY2sgfHwgcHJvZmlsZWRERkdDb2Rl
QmxvY2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpERkdKSVQpOwogICAgIAogICAgIGlmICghT3B0
aW9uczo6dXNlREZHSklUKCkgfHwgIU1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0Zsb2F0aW5nUG9p
bnQoKSkKICAgICAgICAgcmV0dXJuIENvbXBpbGF0aW9uRmFpbGVkOwpAQCAtODAsMTYgKzgxLDMx
IEBAIHN0YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAgICAvLyBtYWtlIHN1
cmUgdGhhdCBhbGwgSklUIGNvZGUgZ2VuZXJhdGlvbiBkb2VzIGZpbmFsaXphdGlvbiBvbiB0aGUg
bWFpbiB0aHJlYWQuCiAgICAgdm0uZ2V0Q1RJU3R1Yihvc3JFeGl0R2VuZXJhdGlvblRodW5rR2Vu
ZXJhdG9yKTsKICAgICB2bS5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0
aEdlbmVyYXRvcik7Ci0gICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKTsK
LSAgICB2bS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7Ci0gICAgdm0u
Z2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcik7Ci0gICAgdm0uZ2V0Q1RJ
U3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHViKHZpcnR1
YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7CisgICAgaWYgKG1vZGUgPT0gREZHTW9kZSkgewor
ICAgICAgICB2bS5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2
bS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdl
dENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRD
VElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElTdHVi
KHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
dm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOwor
ICAgICAgICB2bS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5r
R2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaGF0UHJl
c2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1Yih2aXJ0dWFs
Q2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElT
dHViKHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKTsKKyAg
ICB9CiAgICAgCiAgICAgUmVmUHRyPFBsYW4+IHBsYW4gPSBhZG9wdFJlZigKLSAgICAgICAgbmV3
IFBsYW4oY29kZUJsb2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RIYW5kbGVW
YWx1ZXMpKTsKKyAgICAgICAgbmV3IFBsYW4oY29kZUJsb2NrLCBwcm9maWxlZERGR0NvZGVCbG9j
aywgbW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFsdWVzKSk7CiAgICAg
Ci0gICAgaWYgKHdvcmtsaXN0KSB7CisgICAgYm9vbCBlbmFibGVDb25jdXJyZW50SklUOworI2lm
IEVOQUJMRShDT05DVVJSRU5UX0pJVCkKKyAgICBlbmFibGVDb25jdXJyZW50SklUID0gT3B0aW9u
czo6ZW5hYmxlQ29uY3VycmVudEpJVCgpOworI2Vsc2UgLy8gRU5BQkxFKENPTkNVUlJFTlRfSklU
KQorICAgIGVuYWJsZUNvbmN1cnJlbnRKSVQgPSBmYWxzZTsKKyNlbmRpZiAvLyBFTkFCTEUoQ09O
Q1VSUkVOVF9KSVQpCisgICAgaWYgKGVuYWJsZUNvbmN1cnJlbnRKSVQpIHsKKyAgICAgICAgV29y
a2xpc3QqIHdvcmtsaXN0ID0gZW5zdXJlR2xvYmFsV29ya2xpc3RGb3IobW9kZSk7CiAgICAgICAg
IHBsYW4tPmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgICAgIGlmIChsb2dDb21waWxhdGlvbkNo
YW5nZXMoKSkKICAgICAgICAgICAgIGRhdGFMb2coIkRlZmVycmluZyBERkcgY29tcGlsYXRpb24g
b2YgIiwgKmNvZGVCbG9jaywgIiB3aXRoIHF1ZXVlIGxlbmd0aCAiLCB3b3JrbGlzdC0+cXVldWVM
ZW5ndGgoKSwgIi5cbiIpOwpAQCAtMTAyLDIxICsxMTgsMjIgQEAgc3RhdGljIENvbXBpbGF0aW9u
UmVzdWx0IGNvbXBpbGVJbXBsKAogfQogI2Vsc2UgLy8gRU5BQkxFKERGR19KSVQpCiBzdGF0aWMg
Q29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCi0gICAgVk0mLCBDb2RlQmxvY2sqLCBDb21w
aWxhdGlvbk1vZGUsIHVuc2lnbmVkLCBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYsCi0gICAgUGFz
c1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+LCBXb3JrbGlzdCopCisgICAgVk0m
LCBDb2RlQmxvY2sqLCBDb2RlQmxvY2sqLCBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkLCBjb25z
dCBPcGVyYW5kczxKU1ZhbHVlPiYsCisgICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s+KQogewogICAgIHJldHVybiBDb21waWxhdGlvbkZhaWxlZDsKIH0KICNlbmRpZiAv
LyBFTkFCTEUoREZHX0pJVCkKIAogQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZSgKLSAgICBWTSYg
dm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9kZSwgdW5zaWduZWQg
b3NyRW50cnlCeXRlY29kZUluZGV4LAotICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0
SGFuZGxlVmFsdWVzLAotICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
PiBwYXNzZWRDYWxsYmFjaywgV29ya2xpc3QqIHdvcmtsaXN0KQorICAgIFZNJiB2bSwgQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0
aW9uTW9kZSBtb2RlLAorICAgIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgY29uc3Qg
T3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMsCisgICAgUGFzc1JlZlB0cjxEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IHBhc3NlZENhbGxiYWNrKQogewogICAgIFJlZlB0cjxE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gcGFzc2VkQ2FsbGJhY2s7CiAg
ICAgQ29tcGlsYXRpb25SZXN1bHQgcmVzdWx0ID0gY29tcGlsZUltcGwoCi0gICAgICAgIHZtLCBj
b2RlQmxvY2ssIG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcywg
Y2FsbGJhY2ssIHdvcmtsaXN0KTsKKyAgICAgICAgdm0sIGNvZGVCbG9jaywgcHJvZmlsZWRERkdD
b2RlQmxvY2ssIG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcywK
KyAgICAgICAgY2FsbGJhY2spOwogICAgIGlmIChyZXN1bHQgIT0gQ29tcGlsYXRpb25EZWZlcnJl
ZCkKICAgICAgICAgY2FsbGJhY2stPmNvbXBpbGF0aW9uRGlkQ29tcGxldGUoY29kZUJsb2NrLCBy
ZXN1bHQpOwogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RyaXZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2
ZXIuaAppbmRleCA5ZDQzNjM4ZGY3MDBjYmU4MzhhZTU2YmE0ZWQzNzVjZDVjNWU0MTEwLi5jOTZi
OGRjNjY1NzkwOTY2MTMxMTFmZjE3ZjI5OGNhNzdjODc0MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRHJpdmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDE2ICs0MCwxNCBAQCBjbGFzcyBWTTsK
IAogbmFtZXNwYWNlIERGRyB7CiAKLWNsYXNzIFdvcmtsaXN0OwotCiBKU19FWFBPUlRfUFJJVkFU
RSB1bnNpZ25lZCBnZXROdW1Db21waWxhdGlvbnMoKTsKIAogLy8gSWYgdGhlIHdvcmtsaXN0IGlz
IG5vbi1udWxsLCB3ZSBkbyBhIGNvbmN1cnJlbnQgY29tcGlsZS4gT3RoZXJ3aXNlIHdlIGRvIGEg
c3luY2hyb25vdXMKIC8vIGNvbXBpbGUuIEV2ZW4gaWYgd2UgZG8gYSBzeW5jaHJvbm91cyBjb21w
aWxlLCB3ZSBjYWxsIHRoZSBjYWxsYmFjayB3aXRoIHRoZSByZXN1bHQuCiBDb21waWxhdGlvblJl
c3VsdCBjb21waWxlKAotICAgIFZNJiwgQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25Nb2RlLCB1bnNp
Z25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCi0gICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4m
IG11c3RIYW5kbGVWYWx1ZXMsCi0gICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2s+LCBXb3JrbGlzdCopOworICAgIFZNJiwgQ29kZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9m
aWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlLAorICAgIHVuc2lnbmVkIG9zckVudHJ5
Qnl0ZWNvZGVJbmRleCwgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMs
CisgICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+KTsKIAogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkRGRwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZhaWxlZEZpbmFsaXplci5jcHAKaW5kZXggZmIwMGUyMDIxZDNhZWFjY2MxNWQ2Njk4MzA5NDJj
MTVhMTAzNWI0MC4uODBhNGM2NDcyMTg2ZWVjNTFlYzFiODZjM2RmN2MxMDYwODcxMTBhNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmNwcApA
QCAtMzksNiArMzksMTEgQEAgRmFpbGVkRmluYWxpemVyOjp+RmFpbGVkRmluYWxpemVyKCkKIHsK
IH0KIAorc2l6ZV90IEZhaWxlZEZpbmFsaXplcjo6Y29kZVNpemUoKQoreworICAgIHJldHVybiAw
OworfQorCiBib29sIEZhaWxlZEZpbmFsaXplcjo6ZmluYWxpemUoKQogewogICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmlu
YWxpemVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5o
CmluZGV4IDZkZjVhMzBhZGUzNDliMTdmNWYzMWNlYTBlMTkxZGVmYTllY2FhYjIuLjQ2NDg2ZTdl
ZDdhMTJkYTA3ZTE3ZTVlMWNkZDFlOTgxYzljMWVhNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuaApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6
CiAgICAgRmFpbGVkRmluYWxpemVyKFBsYW4mKTsKICAgICB2aXJ0dWFsIH5GYWlsZWRGaW5hbGl6
ZXIoKTsKICAgICAKKyAgICB2aXJ0dWFsIHNpemVfdCBjb2RlU2l6ZSgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBmaW5h
bGl6ZUZ1bmN0aW9uKCkgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RmluYWxpemVyLmgKaW5kZXggNzgyYzc0NGIxZjZjOWJiNzFjZThlOWM5YjRmMTUwNmMzYTEyNGQ1
ZC4uODJiYzA3ZGY1YjQ5MTkyNWVlN2Q3ODU3ZGU0NGVlNDA2ZjZiZTI1OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpbmFsaXplci5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoK
ICAgICBGaW5hbGl6ZXIoUGxhbiYpOwogICAgIHZpcnR1YWwgfkZpbmFsaXplcigpOwogICAgIAor
ICAgIHZpcnR1YWwgc2l6ZV90IGNvZGVTaXplKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBmaW5h
bGl6ZSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemVGdW5jdGlvbigpID0gMDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggMTg1ZjAz
NTkxMjEyOTRlMGJlNWM4ZWI0ODczODk2NDAwZWZjODUxMi4uMGVjMTMxOTcxNDhhNjRhZGI3MTI1
NzEwMWE3MzczM2E0YWQ5NmM0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCkBAIC0xMDAsMTIgKzEwMCwxNCBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IEJpdFJTaGlmdDoKICAgICAgICAgY2FzZSBCaXRMU2hpZnQ6CiAgICAgICAgIGNhc2UgQml0VVJT
aGlmdDogewotICAgICAgICAgICAgZml4QmluYXJ5SW50RWRnZXMoKTsKKyAgICAgICAgICAgIGZp
eEludEVkZ2Uobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4SW50RWRnZShub2RlLT5j
aGlsZDIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAgIGNhc2Ug
QXJpdGhJTXVsOiB7Ci0gICAgICAgICAgICBmaXhCaW5hcnlJbnRFZGdlcygpOworICAgICAgICAg
ICAgZml4SW50RWRnZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhJbnRFZGdlKG5v
ZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIG5vZGUtPnNldE9wKEFyaXRoTXVsKTsKICAgICAg
ICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShBcml0aDo6VW5jaGVja2VkKTsKICAgICAgICAgICAg
IG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoSW50MzJVc2UpOwpAQCAtNDUwLDYgKzQ1Miw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgR2V0QnlWYWw6IHsKICAgICAgICAgICAgIG5vZGUtPnNl
dEFycmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2RlLT5hcnJheU1vZGUoKS5yZWZpbmUoCisg
ICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4sCiAgICAgICAgICAg
ICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCksCiAgICAgICAgICAgICAgICAg
ICAgIG5vZGUtPmNoaWxkMigpLT5wcmVkaWN0aW9uKCksCiAgICAgICAgICAgICAgICAgICAgIFNw
ZWNOb25lLCBub2RlLT5mbGFncygpKSk7CkBAIC01MDcsNiArNTEwLDcgQEAgcHJpdmF0ZToKIAog
ICAgICAgICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKAogICAgICAgICAgICAgICAgIG5vZGUtPmFy
cmF5TW9kZSgpLnJlZmluZSgKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaCwgbm9kZS0+Y29k
ZU9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgY2hpbGQxLT5wcmVkaWN0aW9uKCksCiAgICAg
ICAgICAgICAgICAgICAgIGNoaWxkMi0+cHJlZGljdGlvbigpLAogICAgICAgICAgICAgICAgICAg
ICBjaGlsZDMtPnByZWRpY3Rpb24oKSkpOwpAQCAtNTkyLDYgKzU5Niw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAvLyB0aGF0IHdvdWxkIGJyZWFrIHRoaW5ncy4KICAgICAgICAgICAgIG5vZGUt
PnNldEFycmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2RlLT5hcnJheU1vZGUoKS5yZWZpbmUo
CisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4sCiAgICAgICAg
ICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCkgJiBTcGVjQ2VsbCwKICAg
ICAgICAgICAgICAgICAgICAgU3BlY0ludDMyLAogICAgICAgICAgICAgICAgICAgICBub2RlLT5j
aGlsZDIoKS0+cHJlZGljdGlvbigpKSk7CkBAIC05NDYsNyArOTUxLDYgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICBPcEluZm8obV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+Y29kZU9y
aWdpbikpKTsKICAgICAgICAgICAgIE5vZGUqIGJhcnJpZXJOb2RlID0gbV9ncmFwaC5hZGROb2Rl
KFNwZWNOb25lLCBDb25kaXRpb25hbFN0b3JlQmFycmllciwgbV9jdXJyZW50Tm9kZS0+Y29kZU9y
aWdpbiwgCiAgICAgICAgICAgICAgICAgRWRnZShnbG9iYWxPYmplY3ROb2RlLCBLbm93bkNlbGxV
c2UpLCBFZGdlKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgVW50eXBlZFVzZSkpOwotICAgICAgICAg
ICAgZml4dXBOb2RlKGJhcnJpZXJOb2RlKTsKICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmlu
c2VydChtX2luZGV4SW5CbG9jaywgYmFycmllck5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KQEAgLTk1NCw3ICs5NTgsNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFRlYXJP
ZmZBY3RpdmF0aW9uOiB7CiAgICAgICAgICAgICBOb2RlKiBiYXJyaWVyTm9kZSA9IG1fZ3JhcGgu
YWRkTm9kZShTcGVjTm9uZSwgU3RvcmVCYXJyaWVyV2l0aE51bGxDaGVjaywgbV9jdXJyZW50Tm9k
ZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAgICAgICAgRWRnZShub2RlLT5jaGlsZDEoKS5ub2Rl
KCksIFVudHlwZWRVc2UpKTsKLSAgICAgICAgICAgIGZpeHVwTm9kZShiYXJyaWVyTm9kZSk7CiAg
ICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnQobV9pbmRleEluQmxvY2ssIGJhcnJpZXJO
b2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMDM0LDYgKzEwMzcsMjQg
QEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIGlmICghbm9kZS0+Y29udGFpbnNNb3ZIaW50
KCkpCiAgICAgICAgICAgICBERkdfTk9ERV9ET19UT19DSElMRFJFTihtX2dyYXBoLCBub2RlLCBv
YnNlcnZlVW50eXBlZEVkZ2UpOworICAgICAgICAKKyAgICAgICAgaWYgKG5vZGUtPmlzVGVybWlu
YWwoKSkgeworICAgICAgICAgICAgLy8gVGVybWluYWwgbm9kZXMgZG9uJ3QgbmVlZCBwb3N0LXBo
YW50b21zLCBhbmQgaW5zZXJ0aW5nIHRoZW0gd291bGQgdmlvbGF0ZQorICAgICAgICAgICAgLy8g
dGhlIGN1cnJlbnQgcmVxdWlyZW1lbnQgdGhhdCBhIHRlcm1pbmFsIGlzIHRoZSBsYXN0IHRoaW5n
IGluIGEgYmxvY2suIFdlCisgICAgICAgICAgICAvLyBzaG91bGQgZXZlbnR1YWxseSBjaGFuZ2Ug
dGhhdCByZXF1aXJlbWVudCBidXQgZXZlbiBpZiB3ZSBkaWQsIHRoaXMgd291bGQKKyAgICAgICAg
ICAgIC8vIHN0aWxsIGJlIGEgdmFsaWQgb3B0aW1pemF0aW9uLiBBbGwgdGVybWluYWxzIGFjY2Vw
dCBqdXN0IG9uZSBpbnB1dCwgYW5kCisgICAgICAgICAgICAvLyBpZiB0aGF0IGlucHV0IGlzIGEg
Y29udmVyc2lvbiBub2RlIHRoZW4gbm8gZnVydGhlciBzcGVjdWxhdGlvbnMgd2lsbCBiZQorICAg
ICAgICAgICAgLy8gcGVyZm9ybWVkLgorICAgICAgICAgICAgLy8gRklYTUU6IEdldCByaWQgb2Yg
dGhpcyBieSBhbGxvd2luZyBQaGFudG9tcyBhZnRlciB0ZXJtaW5hbHMuCisgICAgICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2Nzc4CisgICAgICAg
ICAgICBtX3JlcXVpcmVkUGhhbnRvbXMucmVzaXplKDApOworICAgICAgICAvLyBTaW5jZSBTdG9y
ZUJhcnJpZXJzIGFyZSByZWN1cnNpdmVseSBmaXhlZCB1cCBzbyB0aGF0IHRoZWlyIGNoaWxkcmVu
IGxvb2sgCisgICAgICAgIC8vIGlkZW50aWNhbCB0byB0aGF0IG9mIHRoZSBub2RlIHRoZXkncmUg
YmFycmllci1pbmcsIHdlIG5lZWQgdG8gYXZvaWQgYWRkaW5nCisgICAgICAgIC8vIGFueSBQaGFu
dG9tcyB3aGVuIHByb2Nlc3NpbmcgdGhlbSBiZWNhdXNlIHRoaXMgd291bGQgaW52YWxpZGF0ZSB0
aGUgCisgICAgICAgIC8vIEluc2VydGlvblNldCdzIGludmFyaWFudCBvZiBpbnNlcnRpbmcgdGhp
bmdzIGluIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nCisgICAgICAgIC8vIG9yZGVyLiBUaGlz
IHNob3VsZCBiZSBva2F5IGFueXdheXMgYmVjYXVzZSBTdG9yZUJhcnJpZXJzIGNhbid0IGV4aXQu
IAorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFkZFBoYW50b21zSWZOZWNlc3NhcnkoKTsK
ICAgICB9CiAgICAgCiAgICAgdm9pZCBvYnNlcnZlVW50eXBlZEVkZ2UoTm9kZSosIEVkZ2UmIGVk
Z2UpCkBAIC0xMzE5LDYgKzEzNDAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CisgICAgICAgICAgICBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5KCk7CiAgICAgICAgIH0K
ICAgICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0ZShibG9jayk7CiAgICAgfQpAQCAtMTMzNCw4
ICsxMzU2LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSAhPSBTZXRM
b2NhbCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAgICAgICAg
ICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKQorICAgICAgICAg
ICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKSB7CiAgICAgICAg
ICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAg
ICAgICAgYWRkUGhhbnRvbXNJZk5lY2Vzc2FyeSgpOworICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOwogICAgIH0KQEAgLTE1MDks
NiArMTUzMyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgLy8gSW50OFRvRG91YmxlIHdp
bGwgY29udmVydCBpbnQ1MidzIHRoYXQgZml0IGluIGFuIGludDMyIGludG8gYSBkb3VibGUKICAg
ICAgICAgICAgICAgICAvLyByYXRoZXIgdGhhbiB0cnlpbmcgdG8gY3JlYXRlIGEgYm94ZWQgaW50
MzIgbGlrZSBJbnQ1MlRvVmFsdWUgZG9lcy4KICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBtX3JlcXVpcmVkUGhhbnRvbXMuYXBwZW5kKGVkZ2Uubm9kZSgpKTsKICAgICAgICAgICAg
ICAgICBOb2RlKiByZXN1bHQgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAg
ICAgICAgICAgICBtX2luZGV4SW5CbG9jaywgU3BlY0ludDUyQXNEb3VibGUsIEludDUyVG9Eb3Vi
bGUsCiAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2Uo
ZWRnZS5ub2RlKCksIE51bWJlclVzZSkpOwpAQCAtMTU2Miw2ICsxNTg3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAvLyBCdXQgdGhlIHNvbHV0aW9uIHdlIHVzZSBo
YW5kbGVzIHRoZSBhYm92ZSBncmFjZWZ1bGx5LgogICAgICAgICAgICAgCisgICAgICAgICAgICBt
X3JlcXVpcmVkUGhhbnRvbXMuYXBwZW5kKGVkZ2Uubm9kZSgpKTsKICAgICAgICAgICAgIE5vZGUq
IHJlc3VsdCA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAgICAgICAgICAgbV9p
bmRleEluQmxvY2ssIFNwZWNJbnQ1MiwgSW50NTJUb1ZhbHVlLAogICAgICAgICAgICAgICAgIG1f
Y3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5ub2RlKCksIFVudHlwZWRVc2UpKTsK
QEAgLTE1ODMsMTYgKzE2MDksMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJhcnJpZXJOb2Rl
ID0gbV9ncmFwaC5hZGROb2RlKFNwZWNOb25lLCBDb25kaXRpb25hbFN0b3JlQmFycmllciwgbV9j
dXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAgICAgICAgRWRnZShjaGlsZDEubm9k
ZSgpLCBjaGlsZDEudXNlS2luZCgpKSwgRWRnZShjaGlsZDIubm9kZSgpLCBjaGlsZDIudXNlS2lu
ZCgpKSk7CiAgICAgICAgIH0KLSAgICAgICAgZml4dXBOb2RlKGJhcnJpZXJOb2RlKTsKICAgICAg
ICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0KGluZGV4SW5CbG9jaywgYmFycmllck5vZGUpOwogICAg
IH0KIAotICAgIGJvb2wgZml4SW50RWRnZShFZGdlJiBlZGdlKQorICAgIHZvaWQgZml4SW50RWRn
ZShFZGdlJiBlZGdlKQogICAgIHsKICAgICAgICAgTm9kZSogbm9kZSA9IGVkZ2Uubm9kZSgpOwog
ICAgICAgICBpZiAobm9kZS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkgewogICAgICAgICAgICAg
Zml4RWRnZTxJbnQzMlVzZT4oZWRnZSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIFVzZUtpbmQgdXNl
S2luZDsKQEAgLTE2MTAsMjQgKzE2MzUsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgb2JzZXJ2ZVVz
ZUtpbmRPbk5vZGUobm9kZSwgdXNlS2luZCk7CiAgICAgICAgIAogICAgICAgICBlZGdlID0gRWRn
ZShuZXdOb2RlLCBLbm93bkludDMyVXNlKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
ICAgIAotICAgIHZvaWQgZml4QmluYXJ5SW50RWRnZXMoKQotICAgIHsKLSAgICAgICAgQWRqYWNl
bmN5TGlzdCBjaGlsZHJlbiA9IG1fY3VycmVudE5vZGUtPmNoaWxkcmVuOwotICAgICAgICAKLSAg
ICAgICAgLy8gQ2FsbCBmaXhJbnRFZGdlKCkgb24gYm90aCBlZGdlcy4KLSAgICAgICAgYm9vbCBu
ZWVkUGhhbnRvbSA9Ci0gICAgICAgICAgICBmaXhJbnRFZGdlKG1fY3VycmVudE5vZGUtPmNoaWxk
MSgpKSB8IGZpeEludEVkZ2UobV9jdXJyZW50Tm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAKLSAg
ICAgICAgaWYgKCFuZWVkUGhhbnRvbSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9p
bnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9jayArIDEsIFNwZWNOb25lLCBQaGFu
dG9tLCBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBjaGlsZHJlbik7CisgICAgICAgIG1fcmVx
dWlyZWRQaGFudG9tcy5hcHBlbmQobm9kZSk7CiAgICAgfQogICAgIAogICAgIHZvaWQgaW5qZWN0
SW50MzJUb0RvdWJsZU5vZGUoRWRnZSYgZWRnZSwgVXNlS2luZCB1c2VLaW5kID0gTnVtYmVyVXNl
KQogICAgIHsKKyAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLmFwcGVuZChlZGdlLm5vZGUoKSk7
CisgICAgICAgIAogICAgICAgICBOb2RlKiByZXN1bHQgPSBtX2luc2VydGlvblNldC5pbnNlcnRO
b2RlKAogICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNJbnQ1MkFzRG91YmxlLCBJbnQz
MlRvRG91YmxlLAogICAgICAgICAgICAgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgRWRnZShl
ZGdlLm5vZGUoKSwgTnVtYmVyVXNlKSk7CkBAIC0xNzIyLDcgKzE3MzYsOCBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgYXJyYXlNb2Rl
ID0gYXJyYXlNb2RlLnJlZmluZShub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLCBub2RlLT5w
cmVkaWN0aW9uKCkpOworICAgICAgICBhcnJheU1vZGUgPSBhcnJheU1vZGUucmVmaW5lKAorICAg
ICAgICAgICAgbV9ncmFwaCwgbm9kZS0+Y29kZU9yaWdpbiwgbm9kZS0+Y2hpbGQxKCktPnByZWRp
Y3Rpb24oKSwgbm9kZS0+cHJlZGljdGlvbigpKTsKICAgICAgICAgICAgIAogICAgICAgICBpZiAo
YXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6R2VuZXJpYykgewogICAgICAgICAgICAgLy8gQ2hl
Y2sgaWYgdGhlIGlucHV0IGlzIHNvbWV0aGluZyB0aGF0IHdlIGNhbid0IGdldCBhcnJheSBsZW5n
dGggZm9yLCBidXQgZm9yIHdoaWNoIHdlCkBAIC0xODEzLDEyICsxODI4LDI3IEBAIHByaXZhdGU6
CiAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KKyAgICAKKyAgICB2b2lkIGFkZFBoYW50b21zSWZOZWNlc3Nh
cnkoKQorICAgIHsKKyAgICAgICAgaWYgKG1fcmVxdWlyZWRQaGFudG9tcy5pc0VtcHR5KCkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBt
X3JlcXVpcmVkUGhhbnRvbXMuc2l6ZSgpOyBpLS07KSB7CisgICAgICAgICAgICBtX2luc2VydGlv
blNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAgIG1faW5kZXhJbkJsb2NrICsgMSwgU3Bl
Y05vbmUsIFBoYW50b20sIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sCisgICAgICAgICAgICAg
ICAgRWRnZShtX3JlcXVpcmVkUGhhbnRvbXNbaV0sIFVudHlwZWRVc2UpKTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLnJlc2l6ZSgwKTsKKyAgICB9CiAK
ICAgICBCYXNpY0Jsb2NrKiBtX2Jsb2NrOwogICAgIHVuc2lnbmVkIG1faW5kZXhJbkJsb2NrOwog
ICAgIE5vZGUqIG1fY3VycmVudE5vZGU7CiAgICAgSW5zZXJ0aW9uU2V0IG1faW5zZXJ0aW9uU2V0
OwogICAgIGJvb2wgbV9wcm9maXRhYmlsaXR5Q2hhbmdlZDsKKyAgICBWZWN0b3I8Tm9kZSosIDM+
IG1fcmVxdWlyZWRQaGFudG9tczsKIH07CiAgICAgCiBib29sIHBlcmZvcm1GaXh1cChHcmFwaCYg
Z3JhcGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCmluZGV4IDgyNTYwMDdl
OWM0MDE0MjM3OGQyZmIyNmQ0ZTk5ZmFjMjY0OGUwYmMuLjEzNWNhODVmYzkxNzcwMWUzNTUyNDVj
OWIwMTAwYzIwZmVlYjlhNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3Bw
CkBAIC0zNiw4ICszNiwxMCBAQAogI2luY2x1ZGUgIkZ1bmN0aW9uRXhlY3V0YWJsZUR1bXAuaCIK
ICNpbmNsdWRlICJKSVQuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJN
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhbmRzSW5saW5l
cy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5o
IgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvTGlzdER1bXAu
aD4KIApAQCAtNjc4LDEwICs2ODAsMTAgQEAgRnVsbEJ5dGVjb2RlTGl2ZW5lc3MmIEdyYXBoOjps
aXZlbmVzc0ZvcihJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSkKIGJvb2wgR3JhcGg6
OmlzTGl2ZUluQnl0ZWNvZGUoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQsIENvZGVPcmlnaW4gY29k
ZU9yaWdpbikKIHsKICAgICBmb3IgKDs7KSB7CisgICAgICAgIFZpcnR1YWxSZWdpc3RlciByZWcg
PSBWaXJ0dWFsUmVnaXN0ZXIoCisgICAgICAgICAgICBvcGVyYW5kLm9mZnNldCgpIC0gY29kZU9y
aWdpbi5zdGFja09mZnNldCgpKTsKKyAgICAgICAgCiAgICAgICAgIGlmIChvcGVyYW5kLm9mZnNl
dCgpIDwgY29kZU9yaWdpbi5zdGFja09mZnNldCgpICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVy
U2l6ZSkgewotICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHJlZyA9IFZpcnR1YWxSZWdpc3Rl
cigKLSAgICAgICAgICAgICAgICBvcGVyYW5kLm9mZnNldCgpIC0gY29kZU9yaWdpbi5zdGFja09m
ZnNldCgpKTsKLSAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHJlZy5pc0FyZ3VtZW50KCkp
IHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChyZWcub2Zmc2V0KCkgPCBKU1N0YWNr
OjpDYWxsRnJhbWVIZWFkZXJTaXplKTsKICAgICAgICAgICAgICAgICAKQEAgLTcwMCwxMCArNzAy
LDE4IEBAIGJvb2wgR3JhcGg6OmlzTGl2ZUluQnl0ZWNvZGUoVmlydHVhbFJlZ2lzdGVyIG9wZXJh
bmQsIENvZGVPcmlnaW4gY29kZU9yaWdpbikKICAgICAgICAgICAgICAgICByZWcub2Zmc2V0KCks
IGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAg
IGlmICghY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpCisgICAgICAgIElubGluZUNhbGxGcmFt
ZSogaW5saW5lQ2FsbEZyYW1lID0gY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWU7CisgICAgICAg
IGlmICghaW5saW5lQ2FsbEZyYW1lKQogICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLy8g
QXJndW1lbnRzIGFyZSBhbHdheXMgbGl2ZS4gVGhpcyB3b3VsZCBiZSByZWR1bmRhbnQgaWYgaXQg
d2Fzbid0IGZvciBvdXIKKyAgICAgICAgLy8gb3BfY2FsbF92YXJhcmdzIGlubGluaW5nLgorICAg
ICAgICBpZiAocmVnLmlzQXJndW1lbnQoKQorICAgICAgICAgICAgJiYgcmVnLnRvQXJndW1lbnQo
KQorICAgICAgICAgICAgJiYgc3RhdGljX2Nhc3Q8c2l6ZV90PihyZWcudG9Bcmd1bWVudCgpKSA8
IGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICAKLSAgICAgICAgY29kZU9yaWdpbiA9IGNvZGVPcmlnaW4uaW5saW5lQ2Fs
bEZyYW1lLT5jYWxsZXI7CisgICAgICAgIGNvZGVPcmlnaW4gPSBpbmxpbmVDYWxsRnJhbWUtPmNh
bGxlcjsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CkBAIC03MTEsNyArNzIxLDEzIEBA
IGJvb2wgR3JhcGg6OmlzTGl2ZUluQnl0ZWNvZGUoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQsIENv
ZGVPcmlnaW4gY29kZU9yaWdpbikKIAogdW5zaWduZWQgR3JhcGg6OmZyYW1lUmVnaXN0ZXJDb3Vu
dCgpCiB7Ci0gICAgcmV0dXJuIG1fbmV4dE1hY2hpbmVMb2NhbCArIG1fcGFyYW1ldGVyU2xvdHM7
CisgICAgdW5zaWduZWQgcmVzdWx0ID0gbV9uZXh0TWFjaGluZUxvY2FsICsgc3RkOjptYXgobV9w
YXJhbWV0ZXJTbG90cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsSW5SZWdpc3RlcnMpKTsKKyAgICByZXR1cm4gcm91bmRMb2NhbFJlZ2lzdGVyQ291
bnRGb3JGcmFtZVBvaW50ZXJPZmZzZXQocmVzdWx0KTsKK30KKwordW5zaWduZWQgR3JhcGg6OnN0
YWNrUG9pbnRlck9mZnNldCgpCit7CisgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2Fs
KGZyYW1lUmVnaXN0ZXJDb3VudCgpIC0gMSkub2Zmc2V0KCk7CiB9CiAKIHVuc2lnbmVkIEdyYXBo
OjpyZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
R3JhcGguaAppbmRleCA3YTUxNzAwNDg3MWI3NzU4NzcwOTY5MmYwNDcyZTMyYjlkOWQwMWEwLi4y
OTE5YWY0ODc2MmJmMjUzOWIwOGYyMGRlZGE2NWFlNTU2M2I2ZTRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaC5oCkBAIC03OTMsNiArNzkzLDcgQEAgcHVibGljOgogICAgIGJvb2wg
aXNMaXZlSW5CeXRlY29kZShWaXJ0dWFsUmVnaXN0ZXIsIENvZGVPcmlnaW4pOwogICAgIAogICAg
IHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudCgpOworICAgIHVuc2lnbmVkIHN0YWNrUG9pbnRl
ck9mZnNldCgpOwogICAgIHVuc2lnbmVkIHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQoKTsK
ICAgICB1bnNpZ25lZCByZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCk7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAppbmRleCBjNTM2
NTNmOGZhYjUzNDU5NzcxMmIwMDBjZDAyZDE0YTUzM2IxMDMwLi4wNjI3NWQzYTRhMThmYTNkNTcx
Yjk0MzI2MmI4NjljYzA4MDE3YzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0pJVENvZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29kZS5jcHAKQEAgLTE1Niw2ICsxNTYsNyBAQCB2b2lkIEpJVENvZGU6OnNldE9wdGltaXphdGlv
blRocmVzaG9sZEJhc2VkT25Db21waWxhdGlvblJlc3VsdCgKICAgICBzd2l0Y2ggKHJlc3VsdCkg
ewogICAgIGNhc2UgQ29tcGlsYXRpb25TdWNjZXNzZnVsOgogICAgICAgICBvcHRpbWl6ZU5leHRJ
bnZvY2F0aW9uKGNvZGVCbG9jayk7CisgICAgICAgIGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9u
KCktPm1faGFzQmVlbkNvbXBpbGVkV2l0aEZUTCA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAg
ICBjYXNlIENvbXBpbGF0aW9uRmFpbGVkOgogICAgICAgICBkb250T3B0aW1pemVBbnl0aW1lU29v
bihjb2RlQmxvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdK
SVRDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuaAppbmRleCAw
ZTc3MWUwNDY1YjczZjU4YmZmYWYzZjQ5NTVmMGM5MDkzNjIzNDc5Li4wMmQ0NzhlYjJiMzZhOWVl
MTRjZDcwZjZiYjJjMjBkODUxMDIyNTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvZGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMTE5LDYgKzExOSw3IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8REZHOjpPU1JFbnRy
eURhdGE+IG9zckVudHJ5OwogICAgIFNlZ21lbnRlZFZlY3RvcjxERkc6Ok9TUkV4aXQsIDg+IG9z
ckV4aXQ7CiAgICAgVmVjdG9yPERGRzo6U3BlY3VsYXRpb25SZWNvdmVyeT4gc3BlY3VsYXRpb25S
ZWNvdmVyeTsKKyAgICBWZWN0b3I8dW5zaWduZWQ+IHNsb3dQYXRoQ2FsbHM7CiAgICAgREZHOjpW
YXJpYWJsZUV2ZW50U3RyZWFtIHZhcmlhYmxlRXZlbnRTdHJlYW07CiAgICAgREZHOjpNaW5pZmll
ZEdyYXBoIG1pbmlmaWVkREZHOwogI2lmIEVOQUJMRShGVExfSklUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAppbmRleCAyOTM0ZDJiYTliMDcyZjM5Yjc3
ZTcxNGVlMWM2ODdhOWQxZTFhMGQ2Li5hOWMwZjBmMjFlMjRhYTE0NGNlZjQyNDJhZTEzNTFmZGU4
NGQ0NDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBp
bGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRlICJB
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2lu
Y2x1ZGUgIkRGR0ZhaWxlZEZpbmFsaXplci5oIgogI2luY2x1ZGUgIkRGR0lubGluZUNhY2hlV3Jh
cHBlcklubGluZXMuaCIKQEAgLTQwLDYgKzQxLDcgQEAKICNpbmNsdWRlICJERkdTcGVjdWxhdGl2
ZUpJVC5oIgogI2luY2x1ZGUgIkRGR1RodW5rcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxp
bmVzLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNs
dWRlICJWTS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKIApAQCAtOTIsMTUgKzk0LDE0IEBA
IHZvaWQgSklUQ29tcGlsZXI6OmxpbmtPU1JFeGl0cygpCiB2b2lkIEpJVENvbXBpbGVyOjpjb21w
aWxlRW50cnkoKQogewogICAgIC8vIFRoaXMgY29kZSBjdXJyZW50bHkgbWF0Y2hlcyB0aGUgb2xk
IEpJVC4gSW4gdGhlIGZ1bmN0aW9uIGhlYWRlciB3ZSBuZWVkIHRvCi0gICAgLy8gcG9wIHRoZSBy
ZXR1cm4gYWRkcmVzcyAoc2luY2Ugd2UgZG8gbm90IGFsbG93IGFueSByZWN1cnNpb24gb24gdGhl
IG1hY2hpbmUKLSAgICAvLyBzdGFjayksIGFuZCBwZXJmb3JtIGEgZmFzdCBzdGFjayBjaGVjay4K
KyAgICAvLyBzYXZlIHJldHVybiBhZGRyZXNzIGFuZCBjYWxsIGZyYW1lIHZpYSB0aGUgcHJvbG9n
dWUgYW5kIHBlcmZvcm0gYSBmYXN0IHN0YWNrIGNoZWNrLgogICAgIC8vIEZJWE1FOiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyOTIKICAgICAvLyBXZSdsbCBuZWVk
IHRvIGNvbnZlcnQgdGhlIHJlbWFpbmluZyBjdGlfIHN0eWxlIGNhbGxzIChzcGVjaWZpY2FsbHkg
dGhlIHN0YWNrCiAgICAgLy8gY2hlY2spIHdoaWNoIHdpbGwgYmUgZGVwZW5kZW50IG9uIHN0YWNr
IGxheW91dC4gKFdlJ2QgbmVlZCB0byBhY2NvdW50IGZvciB0aGlzIGluCiAgICAgLy8gYm90aCBu
b3JtYWwgcmV0dXJuIGNvZGUgYW5kIHdoZW4ganVtcGluZyB0byBhbiBleGNlcHRpb24gaGFuZGxl
cikuCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86OnJlZ1QyKTsK
LSAgICBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjpyZWdUMik7Cisg
ICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICBlbWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJh
bWVIZWFkZXIobV9jb2RlQmxvY2ssIEpTU3RhY2s6OkNvZGVCbG9jayk7CisgICAgaml0QXNzZXJ0
VGFnc0luUGxhY2UoKTsKIH0KIAogdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUJvZHkoKQpAQCAt
MTIxLDIyICsxMjIsMjUgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUV4Y2VwdGlvbkhhbmRs
ZXJzKCkKIAogICAgIGlmICghbV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2su
ZW1wdHkoKSkgewogICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFj
ay5saW5rKHRoaXMpOwotICAgICAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVh
ZGVyUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIGVtaXRHZXRDYWxsZXJGcmFt
ZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICAgICAg
ZG9Mb29rdXAgPSBqdW1wKCk7CiAgICAgfQogCiAgICAgaWYgKCFtX2V4Y2VwdGlvbkNoZWNrcy5l
bXB0eSgpKQogICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrcy5saW5rKHRoaXMpOwogCi0gICAgLy8g
bG9va3VwRXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQgb25lIGFyZ3VtZW50LCB0aGUgZXhlYyAo
dGhlIENhbGxGcmFtZSopLgotICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlciBpcyBw
YXNzZWQgdHdvIGFyZ3VtZW50cywgdGhlIFZNIGFuZCB0aGUgZXhlYyAodGhlIENhbGxGcmFtZSop
LgorICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50
R1BSMSk7CiAKICAgICBpZiAoZG9Mb29rdXAuaXNTZXQoKSkKICAgICAgICAgZG9Mb29rdXAubGlu
ayh0aGlzKTsKIAorICAgIG1vdmUoVHJ1c3RlZEltbVB0cih2bSgpKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKKwogI2lmIENQVShYODYpCiAgICAgLy8gRklYTUU6IHNob3VsZCB1c2UgdGhlIGNh
bGwgYWJzdHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBpbiB0aGUgU3BlY3VsYXRpdmVK
SVQgbGF5ZXIhCiAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIHBva2UoR1BS
SW5mbzo6YXJndW1lbnRHUFIxLCAxKTsKICNlbmRpZgogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxM
aW5rUmVjb3JkKGNhbGwoKSwgbG9va3VwRXhjZXB0aW9uSGFuZGxlcikpOwogICAgIGp1bXBUb0V4
Y2VwdGlvbkhhbmRsZXIoKTsKQEAgLTIyOCwxMyArMjMyLDE2IEBAIHZvaWQgSklUQ29tcGlsZXI6
OmxpbmsoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikKICAgICAgICAgaW5mby5wYXRjaC5kZWx0YUNh
bGxUb1Nsb3dDYXNlID0gZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGNhbGxSZXR1cm5Mb2NhdGlv
biwgbGlua0J1ZmZlci5sb2NhdGlvbk9mKG1faW5zW2ldLm1fc2xvd1BhdGhHZW5lcmF0b3ItPmxh
YmVsKCkpKTsKICAgICB9CiAgICAgCisgICAgUkVMRUFTRV9BU1NFUlQoIW1fZ3JhcGgubV9wbGFu
LndpbGxUcnlUb1RpZXJVcCB8fCBtX2ppdENvZGUtPnNsb3dQYXRoQ2FsbHMuc2l6ZSgpID49IG1f
anNDYWxscy5zaXplKCkpOwogICAgIG1fY29kZUJsb2NrLT5zZXROdW1iZXJPZkNhbGxMaW5rSW5m
b3MobV9qc0NhbGxzLnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fanND
YWxscy5zaXplKCk7ICsraSkgewogICAgICAgICBDYWxsTGlua0luZm8mIGluZm8gPSBtX2NvZGVC
bG9jay0+Y2FsbExpbmtJbmZvKGkpOwogICAgICAgICBpbmZvLmNhbGxUeXBlID0gbV9qc0NhbGxz
W2ldLm1fY2FsbFR5cGU7Ci0gICAgICAgIGluZm8uaXNERkcgPSB0cnVlOwogICAgICAgICBpbmZv
LmNvZGVPcmlnaW4gPSBtX2pzQ2FsbHNbaV0ubV9jb2RlT3JpZ2luOwotICAgICAgICBsaW5rQnVm
ZmVyLmxpbmsobV9qc0NhbGxzW2ldLm1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKChtX3ZtLT5nZXRD
VElTdHViKGluZm8uY2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpDb25zdHJ1Y3QgPyBsaW5rQ29u
c3RydWN0VGh1bmtHZW5lcmF0b3IgOiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKSkuY29kZSgpLmV4
ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yID0g
bGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgICAgICAgICAgaW5mby5jYWxsVHlwZSA9PSBDYWxs
TGlua0luZm86OkNvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwKKyAg
ICAgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOworICAgICAgICBsaW5r
QnVmZmVyLmxpbmsobV9qc0NhbGxzW2ldLm1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKG1fdm0tPmdl
dENUSVN0dWIoZ2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgICAg
ICBpbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxs
KG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxsKTsKICAgICAgICAgaW5mby5ob3RQYXRoQmVnaW4gPSBs
aW5rQnVmZmVyLmxvY2F0aW9uT2YobV9qc0NhbGxzW2ldLm1fdGFyZ2V0VG9DaGVjayk7CiAgICAg
ICAgIGluZm8uaG90UGF0aE90aGVyID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9q
c0NhbGxzW2ldLm1fZmFzdENhbGwpOwpAQCAtMjc4LDYgKzI4NSw4IEBAIHZvaWQgSklUQ29tcGls
ZXI6OmNvbXBpbGUoKQogICAgIHNldFN0YXJ0T2ZDb2RlKCk7CiAgICAgY29tcGlsZUVudHJ5KCk7
CiAgICAgbV9zcGVjdWxhdGl2ZSA9IGFkb3B0UHRyKG5ldyBTcGVjdWxhdGl2ZUpJVCgqdGhpcykp
OworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobV9ncmFwaC5zdGFja1BvaW50ZXJPZmZzZXQoKSAq
IHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAgICAgY29t
cGlsZUJvZHkoKTsKICAgICBzZXRFbmRPZk1haW5QYXRoKCk7CiAKQEAgLTMyNSwxMSArMzM0LDEy
IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVGdW5jdGlvbigpCiAgICAgLy8gc28gZW50ZXIg
YWZ0ZXIgdGhpcy4KICAgICBMYWJlbCBmcm9tQXJpdHlDaGVjayh0aGlzKTsKICAgICAvLyBQbGFu
dCBhIGNoZWNrIHRoYXQgc3VmZmljaWVudCBzcGFjZSBpcyBhdmFpbGFibGUgaW4gdGhlIEpTU3Rh
Y2suCi0gICAgYWRkUHRyKFRydXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2dy
YXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKSkub2Zmc2V0KCkg
KiBzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86
OnJlZ1QxKTsKLSAgICBKdW1wIHN0YWNrQ2hlY2sgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRl
QWRkcmVzcyhtX3ZtLT5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksIEdQUkluZm86OnJlZ1QxKTsK
LSAgICAvLyBSZXR1cm4gaGVyZSBhZnRlciBzdGFjayBjaGVjay4KLSAgICBMYWJlbCBmcm9tU3Rh
Y2tDaGVjayA9IGxhYmVsKCk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0
ZXJGb3JMb2NhbChtX2dyYXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4
aXQoKSAtIDEpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgSnVtcCBzdGFja092ZXJmbG93ID0gYnJh
bmNoUHRyKEFib3ZlLCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0
KCkpLCBHUFJJbmZvOjpyZWdUMSk7CiAKKyAgICAvLyBNb3ZlIHRoZSBzdGFjayBwb2ludGVyIGRv
d24gdG8gYWNjb21tb2RhdGUgbG9jYWxzCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtX2dyYXBo
LnN0YWNrUG9pbnRlck9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50
ZXJBbGlnbm1lbnQoKTsKIAogICAgIC8vID09PSBGdW5jdGlvbiBib2R5IGNvZGUgZ2VuZXJhdGlv
biA9PT0KICAgICBtX3NwZWN1bGF0aXZlID0gYWRvcHRQdHIobmV3IFNwZWN1bGF0aXZlSklUKCp0
aGlzKSk7CkBAIC0zMzgsMTcgKzM0OCwxOSBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVu
Y3Rpb24oKQogCiAgICAgLy8gPT09IEZ1bmN0aW9uIGZvb3RlciBjb2RlIGdlbmVyYXRpb24gPT09
CiAgICAgLy8KLSAgICAvLyBHZW5lcmF0ZSBjb2RlIHRvIHBlcmZvcm0gdGhlIHNsb3cgc3RhY2sg
Y2hlY2sgKGlmIHRoZSBmYXN0IG9uZSBpbgorICAgIC8vIEdlbmVyYXRlIGNvZGUgdG8gcGVyZm9y
bSB0aGUgc3RhY2sgb3ZlcmZsb3cgaGFuZGxpbmcgKGlmIHRoZSBzdGFjayBjaGVjayBpbgogICAg
IC8vIHRoZSBmdW5jdGlvbiBoZWFkZXIgZmFpbHMpLCBhbmQgZ2VuZXJhdGUgdGhlIGVudHJ5IHBv
aW50IHdpdGggYXJpdHkgY2hlY2suCiAgICAgLy8KLSAgICAvLyBHZW5lcmF0ZSB0aGUgc3RhY2sg
Y2hlY2s7IGlmIHRoZSBmYXN0IGNoZWNrIGluIHRoZSBmdW5jdGlvbiBoZWFkIGZhaWxzLAotICAg
IC8vIHdlIG5lZWQgdG8gY2FsbCBvdXQgdG8gYSBoZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgd2hl
dGhlciBtb3JlIHNwYWNlIGlzIGF2YWlsYWJsZS4KLSAgICAvLyBGSVhNRTogY2hhbmdlIHRoaXMg
ZnJvbSBhIGN0aSBjYWxsIHRvIGEgREZHIHN0eWxlIG9wZXJhdGlvbiAobm9ybWFsIEMgY2FsbGlu
ZyBjb252ZW50aW9ucykuCi0gICAgc3RhY2tDaGVjay5saW5rKHRoaXMpOworICAgIC8vIEdlbmVy
YXRlIHRoZSBzdGFjayBvdmVyZmxvdyBoYW5kbGluZzsgaWYgdGhlIHN0YWNrIGNoZWNrIGluIHRo
ZSBmdW5jdGlvbiBoZWFkIGZhaWxzLAorICAgIC8vIHdlIG5lZWQgdG8gY2FsbCBvdXQgdG8gYSBo
ZWxwZXIgZnVuY3Rpb24gdG8gdGhyb3cgdGhlIFN0YWNrT3ZlcmZsb3dFcnJvci4KKyAgICBzdGFj
a092ZXJmbG93LmxpbmsodGhpcyk7CiAKICAgICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmln
aW4oMCkpOwotICAgIG1fc3BlY3VsYXRpdmUtPmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9s
bGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25TdGFja0NoZWNrLCBtX2NvZGVCbG9jayk7Ci0gICAg
anVtcChmcm9tU3RhY2tDaGVjayk7CisKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwpCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisgICAgbV9zcGVjdWxhdGl2ZS0+
Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvblRo
cm93U3RhY2tPdmVyZmxvd0Vycm9yLCBtX2NvZGVCbG9jayk7CiAgICAgCiAgICAgLy8gVGhlIGZh
c3QgZW50cnkgcG9pbnQgaW50byBhIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSBjb3JyZWN0
IG51bWJlciBvZiBhcmd1bWVudHMKICAgICAvLyBoYXZlIGJlZW4gcGFzc2VkIHRvIHRoZSBjYWxs
ICh3ZSBvbmx5IHVzZSB0aGUgZmFzdCBlbnRyeSBwb2ludCB3aGVyZSB3ZSBjYW4gc3RhdGljYWxs
eQpAQCAtMzYxLDkgKzM3MywxNSBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24o
KQogICAgIGxvYWQzMihBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdpc3Rl
cilKU1N0YWNrOjpBcmd1bWVudENvdW50KSwgR1BSSW5mbzo6cmVnVDEpOwogICAgIGJyYW5jaDMy
KEFib3ZlT3JFcXVhbCwgR1BSSW5mbzo6cmVnVDEsIFRydXN0ZWRJbW0zMihtX2NvZGVCbG9jay0+
bnVtUGFyYW1ldGVycygpKSkubGlua1RvKGZyb21Bcml0eUNoZWNrLCB0aGlzKTsKICAgICBlbWl0
U3RvcmVDb2RlT3JpZ2luKENvZGVPcmlnaW4oMCkpOworICAgIGlmIChtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCkKKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgbV9zcGVjdWxh
dGl2ZS0+Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG1fY29k
ZUJsb2NrLT5tX2lzQ29uc3RydWN0b3IgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrIDog
b3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2ssIEdQUkluZm86OnJlZ1QwKTsKKyAgICBpZiAobWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAg
YnJhbmNoVGVzdDMyKFplcm8sIEdQUkluZm86OnJlZ1QwKS5saW5rVG8oZnJvbUFyaXR5Q2hlY2ss
IHRoaXMpOwogICAgIGVtaXRTdG9yZUNvZGVPcmlnaW4oQ29kZU9yaWdpbigwKSk7CisgICAgbW92
ZShUcnVzdGVkSW1tUHRyKG1fdm0tPmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5Q
Q3NGb3IoKm1fdm0sIG1fY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKSwgR1BSSW5mbzo6cmVn
VDUpOworICAgIGxvYWRQdHIoQmFzZUluZGV4KEdQUkluZm86OnJlZ1Q1LCBHUFJJbmZvOjpyZWdU
MCwgdGltZXNQdHIoKSksIEdQUkluZm86OnJlZ1Q1KTsKICAgICBtX2NhbGxBcml0eUZpeHVwID0g
Y2FsbCgpOwogICAgIGp1bXAoZnJvbUFyaXR5Q2hlY2spOwogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCmluZGV4IDgwMmU0N2FkODcxYjg2NWJhMmUyZDE4
ZWEwMWUwOWU4ZTRmZWM2YWEuLjgyZWFjMGZkMGY0MWMwNTRjOWM4Njk4Mjg3Njg5ZjI1N2RiNzRk
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgKQEAgLTIy
MSw2ICsyMjEsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgbV9pbnMuYXBwZW5kKHJlY29y
ZCk7CiAgICAgfQorICAgIAorICAgIHVuc2lnbmVkIGN1cnJlbnRKU0NhbGxJbmRleCgpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gbV9qc0NhbGxzLnNpemUoKTsKKyAgICB9CiAKICAgICB2
b2lkIGFkZEpTQ2FsbChDYWxsIGZhc3RDYWxsLCBDYWxsIHNsb3dDYWxsLCBEYXRhTGFiZWxQdHIg
dGFyZ2V0VG9DaGVjaywgQ2FsbExpbmtJbmZvOjpDYWxsVHlwZSBjYWxsVHlwZSwgR1BSUmVnIGNh
bGxlZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklURmluYWxpemVyLmNwcAppbmRleCBiN2VhNTk0YzY3ZGJmM2RlYWY0N2Y4
OTY3MjYyZTZkNDBkZjRkZThlLi43OTllOGNhNWRiYTMxNzNhZTgzMmRiNzhlZjE1NzllN2MwNzdh
NjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXpl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuY3Bw
CkBAIC00NiwxMCArNDYsMTYgQEAgSklURmluYWxpemVyOjp+SklURmluYWxpemVyKCkKIHsKIH0K
IAorc2l6ZV90IEpJVEZpbmFsaXplcjo6Y29kZVNpemUoKQoreworICAgIHJldHVybiBtX2xpbmtC
dWZmZXItPnNpemUoKTsKK30KKwogYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplKCkKIHsKLSAg
ICBtX2ppdENvZGUtPmluaXRpYWxpemVDb2RlUmVmKG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2Rl
V2l0aG91dERpc2Fzc2VtYmx5KCkpOwotICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUo
bV9qaXRDb2RlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgbV9qaXRDb2RlLT5pbml0
aWFsaXplQ29kZVJlZigKKyAgICAgICAgbV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVXaXRob3V0
RGlzYXNzZW1ibHkoKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgIG1fcGxhbi5jb2Rl
QmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlKTsKICAgICAKICAgICBmaW5hbGl6ZUNvbW1vbigp
OwogICAgIApAQCAtNTksOCArNjUsOSBAQCBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemUoKQog
Ym9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogewogICAgIFJFTEVBU0VfQVNT
RVJUKCFtX3dpdGhBcml0eUNoZWNrLmlzRW1wdHlWYWx1ZSgpKTsKLSAgICBtX2ppdENvZGUtPmlu
aXRpYWxpemVDb2RlUmVmKG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2Vt
Ymx5KCkpOwotICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlLCBtX3dp
dGhBcml0eUNoZWNrKTsKKyAgICBtX2ppdENvZGUtPmluaXRpYWxpemVDb2RlUmVmKAorICAgICAg
ICBtX2xpbmtCdWZmZXItPmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpLCBtX3dpdGhB
cml0eUNoZWNrKTsKKyAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1faml0Q29kZSk7
CiAgICAgCiAgICAgZmluYWxpemVDb21tb24oKTsKICAgICAKQEAgLTc1LDYgKzgyLDkgQEAgdm9p
ZCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplQ29tbW9uKCkKICAgICAKICAgICBpZiAobV9wbGFuLmNv
bXBpbGF0aW9uKQogICAgICAgICBtX3BsYW4udm0ubV9wZXJCeXRlY29kZVByb2ZpbGVyLT5hZGRD
b21waWxhdGlvbihtX3BsYW4uY29tcGlsYXRpb24pOworICAgIAorICAgIGlmICghbV9wbGFuLndp
bGxUcnlUb1RpZXJVcCkKKyAgICAgICAgbV9wbGFuLmNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9u
KCktPm1fZGlkRmFpbEZUTENvbXBpbGF0aW9uID0gdHJ1ZTsKIH0KIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRG
aW5hbGl6ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgK
aW5kZXggNWM3YzgyYjY2NWJhNTQwNjk2ZDFiNGQwNTllN2ZjNjlmYjA5NGI2MC4uNTQyYWY1N2Fh
M2E3NDY0OTNhMGRlYmI2ZDU0YmJhNjBjM2QxNDY2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVEZpbmFsaXplci5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICBK
SVRGaW5hbGl6ZXIoUGxhbiYsIFBhc3NSZWZQdHI8SklUQ29kZT4sIFBhc3NPd25QdHI8TGlua0J1
ZmZlcj4sIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVjayA9IE1hY3JvQXNzZW1i
bGVyQ29kZVB0cihNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OkVtcHR5VmFsdWUpKTsKICAgICB2aXJ0
dWFsIH5KSVRGaW5hbGl6ZXIoKTsKICAgICAKKyAgICB2aXJ0dWFsIHNpemVfdCBjb2RlU2l6ZSgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCBmaW5hbGl6ZUZ1bmN0aW9uKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKaW5kZXggNTVhOWVkZThkYjhiOGMzMGE2N2JlZGM5YmE0ZTUxNDU0YTBi
Yjg0Yi4uNzVhZjY2Y2U3NGJmNWE1NDZkNTM2NGRmMGE0MWMzMGYxODc0MTEzZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExOTgsNiAr
MTE5OCwxMSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgICAgICByZXR1cm4gc2hvdWxkR2VuZXJh
dGUoKTsKICAgICAgICAgfQogICAgIH0KKyAgICAKKyAgICBib29sIGlzU2VtYW50aWNhbGx5U2tp
cHBhYmxlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBvcCgpID09IENvdW50RXhlY3V0aW9uOwor
ICAgIH0KIAogICAgIHVuc2lnbmVkIHJlZkNvdW50KCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKaW5kZXggMzk2Y2E2MTE5MjFkYzE2ODVkYzA0YmEz
ZGU2MDk3Yjg2NGQyYjc2Zi4uNjFlOWVjNzQyOWZiNzE5ZTJhNDYxODlkOTk5MjkyNzA5NmRmNzQy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcApAQCAtNDks
NiArNDksOSBAQCB2b2lkIGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJlYW0mIGFjdHVhbE91dCwgTm9k
ZUZsYWdzIGZsYWdzKQogICAgICAgICBjYXNlIE5vZGVSZXN1bHRJbnQzMjoKICAgICAgICAgICAg
IG91dC5wcmludChjb21tYSwgIkludDMyIik7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBOb2RlUmVzdWx0SW50NTI6CisgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICJJbnQ1
MiIpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZVJlc3VsdEJvb2xlYW46
CiAgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICJCb29sZWFuIik7CiAgICAgICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxh
YmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCmluZGV4IGE2NDk2MzU4MWE0NzM3YzRlOGEy
OTA4MzhhNjI4ZDJhNWM5MzMxMGYuLmZjYjJjOTQ4NWMxMmZmYjk2OGY2NzA0NTQ5NzIzOWM3ZjA4
M2JjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxh
YmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcApAQCAtNjEsMTUgKzYxLDEzIEBAIHB1
YmxpYzoKICAgICAgICAgICAgICAgICBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCkud2l0aEZs
dXNoKAogICAgICAgICAgICAgICAgICAgICBGbHVzaGVkQXQoRmx1c2hlZEpTVmFsdWUsIHZpcnR1
YWxSZWdpc3RlckZvckFyZ3VtZW50KGFyZ3VtZW50KSkpOwogICAgICAgICB9Ci0gICAgICAgIGZv
ciAodW5zaWduZWQgbG9jYWwgPSByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5udW1iZXJP
ZkxvY2FscygpOyBsb2NhbC0tOykKLSAgICAgICAgICAgIHJvb3QtPnNzYS0+YXZhaWxhYmlsaXR5
QXRIZWFkLmxvY2FsKGxvY2FsKSA9IEF2YWlsYWJpbGl0eTo6dW5hdmFpbGFibGUoKTsKLSAgICAg
ICAgCisKICAgICAgICAgaWYgKG1fZ3JhcGgubV9wbGFuLm1vZGUgPT0gRlRMRm9yT1NSRW50cnlN
b2RlKSB7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGxvY2FsID0gbV9ncmFwaC5tX3Byb2Zp
bGVkQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOyBsb2NhbC0tOykgewotICAgICAgICAgICAg
ICAgIHJvb3QtPnNzYS0+YXZhaWxhYmlsaXR5QXRIZWFkLmxvY2FsKGxvY2FsKSA9Ci0gICAgICAg
ICAgICAgICAgICAgIEF2YWlsYWJpbGl0eTo6dW5hdmFpbGFibGUoKS53aXRoRmx1c2goCi0gICAg
ICAgICAgICAgICAgICAgICAgICBGbHVzaGVkQXQoRmx1c2hlZEpTVmFsdWUsIHZpcnR1YWxSZWdp
c3RlckZvckxvY2FsKGxvY2FsKSkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBsb2NhbCA9IG1fZ3JhcGgubV9wcm9maWxlZEJsb2NrLT5tX251bUNhbGxlZVJlZ2lz
dGVyczsgbG9jYWwtLTspCisgICAgICAgICAgICAgICAgcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlB
dEhlYWQubG9jYWwobG9jYWwpID0gQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBsb2NhbCA9IHJvb3QtPnNzYS0+
YXZhaWxhYmlsaXR5QXRIZWFkLm51bWJlck9mTG9jYWxzKCk7IGxvY2FsLS07KQorICAgICAgICAg
ICAgICAgIHJvb3QtPnNzYS0+YXZhaWxhYmlsaXR5QXRIZWFkLmxvY2FsKGxvY2FsKSA9IEF2YWls
YWJpbGl0eTo6dW5hdmFpbGFibGUoKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8g
VGhpcyBjb3VsZCBiZSBtYWRlIG1vcmUgZWZmaWNpZW50IGJ5IHByb2Nlc3NpbmcgYmxvY2tzIGlu
IHJldmVyc2UgcG9zdG9yZGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFbnRyeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5
LmNwcAppbmRleCBjMTI4ODE4NzQwYzUwYmY4ZWNmYWRlMWU0OGU2ZDdlMjYwNzAzOGY1Li5mZWFj
YWU5N2I4MjFkMDgyNzU2NDczMzk2OGE4ZmEzNjYxY2FjMzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkVudHJ5LmNwcApAQCAtNDQsNyArNDQsMTAgQEAgdm9pZCogcHJlcGFy
ZU9TUkVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2lnbmVk
IGJ5dGVjb2RlSW4KICAgICBBU1NFUlQoY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpKTsKICAgICBB
U1NFUlQoY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6QmFz
ZWxpbmVKSVQpOwogICAgIEFTU0VSVCghY29kZUJsb2NrLT5qaXRDb2RlTWFwKCkpOwotICAgIAor
CisgICAgaWYgKCFPcHRpb25zOjplbmFibGVPU1JFbnRyeVRvREZHKCkpCisgICAgICAgIHJldHVy
biAwOworCiAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkgewogICAgICAgICBkYXRhTG9n
KAogICAgICAgICAgICAgIkRGRyBPU1IgaW4gIiwgKmNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSwg
IiAtPiAiLCAqY29kZUJsb2NrLApAQCAtNTIsOCArNTUsOCBAQCB2b2lkKiBwcmVwYXJlT1NSRW50
cnkoRXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgdW5zaWduZWQgYnl0ZWNv
ZGVJbgogICAgIH0KICAgICAKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICAKLSAgICB2
bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuc2FuaXRpemVTdGFjaygpOworCisgICAgc2FuaXRpemVT
dGFja0ZvclZNKHZtKTsKICAgICAKICAgICBpZiAoY29kZUJsb2NrLT5qaXRUeXBlKCkgIT0gSklU
Q29kZTo6REZHSklUKSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNvZGVCbG9jay0+aml0VHlw
ZSgpID09IEpJVENvZGU6OkZUTEpJVCk7CkBAIC0xODUsNyArMTg4LDcgQEAgdm9pZCogcHJlcGFy
ZU9TUkVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2lnbmVk
IGJ5dGVjb2RlSW4KICAgICAvLyAgICB3b3VsZCBoYXZlIG90aGVyd2lzZSBqdXN0IGtlcHQgcnVu
bmluZyBhbGJlaXQgbGVzcyBxdWlja2x5LgogICAgIAogICAgIHVuc2lnbmVkIGZyYW1lU2l6ZSA9
IGppdENvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0
KCk7Ci0gICAgaWYgKCF2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuZ3JvdygmZXhlYy0+cmVnaXN0
ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZnJhbWVTaXplKS5vZmZzZXQoKV0pKSB7Cisg
ICAgaWYgKCF2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IoJmV4ZWMt
PnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lU2l6ZSAtIDEpLm9mZnNl
dCgpXSkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAg
IGRhdGFMb2dGKCIgICAgT1NSIGZhaWxlZCBiZWNhdXNlIHN0YWNrIGdyb3d0aCBmYWlsZWQuXG4i
KTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC0yMTMsMTIgKzIxNiwxNCBAQCB2b2lkKiBwcmVwYXJl
T1NSRW50cnkoRXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgdW5zaWduZWQg
Ynl0ZWNvZGVJbgogICAgIAogICAgIC8vIDUpIENsZWFyIHRob3NlIHBhcnRzIG9mIHRoZSBjYWxs
IGZyYW1lIHRoYXQgdGhlIERGRyBhaW4ndCB1c2luZy4gVGhpcyBoZWxwcyBHQyBvbiBzb21lCiAg
ICAgLy8gICAgcHJvZ3JhbXMgYnkgZWxpbWluYXRpbmcgc29tZSBzdGFsZSBwb2ludGVyIHBhdGhv
bG9naWVzLgotICAgIAorCisjaWYgMCAvLyBGSVhNRTogQ1N0YWNrIC0gVGhpcyBuZWVkcyB0byBi
ZSB2ZXJpZmllZCBiZWZvcmUgYmVpbmcgZW5hYmxlZAogICAgIGZvciAodW5zaWduZWQgaSA9IGZy
YW1lU2l6ZTsgaS0tOykgewogICAgICAgICBpZiAoZW50cnktPm1fbWFjaGluZVN0YWNrVXNlZC5n
ZXQoaSkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgcmVnaXN0ZXJzW3ZpcnR1YWxS
ZWdpc3RlckZvckxvY2FsKGkpLm9mZnNldCgpXSA9IEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkp
OwogICAgIH0KKyNlbmRpZgogICAgIAogICAgIC8vIDYpIEZpeCB0aGUgY2FsbCBmcmFtZS4KICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlwb2lu
dENyZWF0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRy
eXBvaW50Q3JlYXRpb25QaGFzZS5jcHAKaW5kZXggNGY4MmQxNWZhY2FlYzM5M2E3MzAxNWUwZjhm
MTYxZmQ4ZDNkNmE2My4uMjY2MTUxMDUyNmU3ZGZjMTVlMDcyY2VkNmUxZTg2ODc3M2MwZDFkOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeXBvaW50Q3Jl
YXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRy
eXBvaW50Q3JlYXRpb25QaGFzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYzLDcgKzYzLDEwIEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9ncmFwaC5ibG9jayhibG9ja0luZGV4KTsKICAgICAg
ICAgICAgIGlmICghYmxvY2spCiAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICB1bnNpZ25lZCBub2RlSW5kZXggPSAwOwogICAgICAgICAgICAgTm9kZSogZmlyc3ROb2RlID0g
YmxvY2stPmF0KDApOworICAgICAgICAgICAgd2hpbGUgKGZpcnN0Tm9kZS0+aXNTZW1hbnRpY2Fs
bHlTa2lwcGFibGUoKSkKKyAgICAgICAgICAgICAgICBmaXJzdE5vZGUgPSBibG9jay0+YXQoKytu
b2RlSW5kZXgpOwogICAgICAgICAgICAgaWYgKGZpcnN0Tm9kZS0+b3AoKSA9PSBMb29wSGludAog
ICAgICAgICAgICAgICAgICYmIGZpcnN0Tm9kZS0+Y29kZU9yaWdpbiA9PSBDb2RlT3JpZ2luKGJ5
dGVjb2RlSW5kZXgpKSB7CiAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gYmxvY2s7CkBAIC04Mywx
NyArODYsNiBAQCBwdWJsaWM6CiAgICAgICAgIEJhc2ljQmxvY2sqIG5ld1Jvb3QgPSBpbnNlcnRp
b25TZXQuaW5zZXJ0KDApOwogICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSB0YXJnZXQt
PmF0KDApLT5jb2RlT3JpZ2luOwogICAgICAgICAKLSAgICAgICAgZm9yIChpbnQgYXJndW1lbnQg
PSAwOyBhcmd1bWVudCA8IGJhc2VsaW5lLT5udW1QYXJhbWV0ZXJzKCk7ICsrYXJndW1lbnQpIHsK
LSAgICAgICAgICAgIE5vZGUqIG9sZE5vZGUgPSB0YXJnZXQtPnZhcmlhYmxlc0F0SGVhZC5hcmd1
bWVudChhcmd1bWVudCk7Ci0gICAgICAgICAgICBpZiAoIW9sZE5vZGUpIHsKLSAgICAgICAgICAg
ICAgICAvLyBKdXN0IGZvciBzYW5pdHksIGFsd2F5cyBoYXZlIGEgU2V0QXJndW1lbnQgZXZlbiBp
ZiBpdCdzIG5vdCBuZWVkZWQuCi0gICAgICAgICAgICAgICAgb2xkTm9kZSA9IG1fZ3JhcGgubV9h
cmd1bWVudHNbYXJndW1lbnRdOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgTm9kZSogbm9k
ZSA9IG5ld1Jvb3QtPmFwcGVuZE5vZGUoCi0gICAgICAgICAgICAgICAgbV9ncmFwaCwgU3BlY05v
bmUsIFNldEFyZ3VtZW50LCBjb2RlT3JpZ2luLAotICAgICAgICAgICAgICAgIE9wSW5mbyhvbGRO
b2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSkpOwotICAgICAgICAgICAgbV9ncmFwaC5tX2FyZ3Vt
ZW50c1thcmd1bWVudF0gPSBub2RlOwotICAgICAgICB9CiAgICAgICAgIFZlY3RvcjxOb2RlKj4g
bG9jYWxzKGJhc2VsaW5lLT5tX251bUNhbGxlZVJlZ2lzdGVycyk7CiAgICAgICAgIGZvciAoaW50
IGxvY2FsID0gMDsgbG9jYWwgPCBiYXNlbGluZS0+bV9udW1DYWxsZWVSZWdpc3RlcnM7ICsrbG9j
YWwpIHsKICAgICAgICAgICAgIE5vZGUqIHByZXZpb3VzSGVhZCA9IHRhcmdldC0+dmFyaWFibGVz
QXRIZWFkLmxvY2FsKGxvY2FsKTsKQEAgLTEwOCw2ICsxMDAsMTkgQEAgcHVibGljOgogICAgICAg
ICAgICAgICAgIG1fZ3JhcGgsIFNwZWNOb25lLCBNb3ZIaW50LCBjb2RlT3JpZ2luLCBPcEluZm8o
dmFyaWFibGUtPmxvY2FsKCkub2Zmc2V0KCkpLAogICAgICAgICAgICAgICAgIEVkZ2UobG9jYWxz
W2xvY2FsXSkpOwogICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgYXJndW1lbnQgPSAwOyBh
cmd1bWVudCA8IGJhc2VsaW5lLT5udW1QYXJhbWV0ZXJzKCk7ICsrYXJndW1lbnQpIHsKKyAgICAg
ICAgICAgIE5vZGUqIG9sZE5vZGUgPSB0YXJnZXQtPnZhcmlhYmxlc0F0SGVhZC5hcmd1bWVudChh
cmd1bWVudCk7CisgICAgICAgICAgICBpZiAoIW9sZE5vZGUpIHsKKyAgICAgICAgICAgICAgICAv
LyBKdXN0IGZvciBzYW5pdHksIGFsd2F5cyBoYXZlIGEgU2V0QXJndW1lbnQgZXZlbiBpZiBpdCdz
IG5vdCBuZWVkZWQuCisgICAgICAgICAgICAgICAgb2xkTm9kZSA9IG1fZ3JhcGgubV9hcmd1bWVu
dHNbYXJndW1lbnRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgTm9kZSogbm9kZSA9IG5l
d1Jvb3QtPmFwcGVuZE5vZGUoCisgICAgICAgICAgICAgICAgbV9ncmFwaCwgU3BlY05vbmUsIFNl
dEFyZ3VtZW50LCBjb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgIE9wSW5mbyhvbGROb2RlLT52
YXJpYWJsZUFjY2Vzc0RhdGEoKSkpOworICAgICAgICAgICAgbV9ncmFwaC5tX2FyZ3VtZW50c1th
cmd1bWVudF0gPSBub2RlOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBmb3IgKGludCBs
b2NhbCA9IDA7IGxvY2FsIDwgYmFzZWxpbmUtPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOyArK2xvY2Fs
KSB7CiAgICAgICAgICAgICBOb2RlKiBwcmV2aW91c0hlYWQgPSB0YXJnZXQtPnZhcmlhYmxlc0F0
SGVhZC5sb2NhbChsb2NhbCk7CiAgICAgICAgICAgICBpZiAoIXByZXZpb3VzSGVhZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKaW5kZXggZDQwZWZlNGUwZmNkNDc2MWU0ZGZi
ODkyY2E5YTA1NTNiOGQyY2YwMi4uYWYyZWRjOWEyMzk4YjhlNjZlMzA1ZGI0MDBiYzcxOTY2MWEx
MjkxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKQEAgLTEwNSw2ICsx
MDUsMTEgQEAgc3RydWN0IE9TUkV4aXQgOiBwdWJsaWMgT1NSRXhpdEJhc2UgewogICAgIHVuc2ln
bmVkIG1fc3RyZWFtSW5kZXg7CiAgICAgCiAgICAgUmVmUHRyPFZhbHVlUmVjb3ZlcnlPdmVycmlk
ZT4gbV92YWx1ZVJlY292ZXJ5T3ZlcnJpZGU7CisgICAgCisgICAgYm9vbCBjb25zaWRlckFkZGlu
Z0FzRnJlcXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIE9TUkV4aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0
U2l0ZShwcm9maWxlZENvZGVCbG9jaywgRXhpdEZyb21ERkcpOworICAgIH0KIH07CiAKIHN0cnVj
dCBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0luZm8gewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXRCYXNlLmNwcAppbmRleCBlYmZkMjdmMmUyODliNTIwMzBhNWVkYmMwZWJm
ZWEwY2VjYTE3Yzc5Li5jNWYwMDFkN2U0MjZmODMxYjg2MTkwYjNiMDdiYmQwM2JmMDNlMDM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNlLmNwcApAQCAtMzUs
NyArMzUsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWJvb2wgT1NS
RXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhDb2RlQmxvY2sq
IHByb2ZpbGVkQ29kZUJsb2NrKQorYm9vbCBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0Zy
ZXF1ZW50RXhpdFNpdGVTbG93KENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRpbmdK
SVRUeXBlIGppdFR5cGUpCiB7CiAgICAgQ29kZUJsb2NrKiBzb3VyY2VQcm9maWxlZENvZGVCbG9j
ayA9CiAgICAgICAgIGJhc2VsaW5lQ29kZUJsb2NrRm9yT3JpZ2luQW5kQmFzZWxpbmVDb2RlQmxv
Y2soCkBAIC00Myw3ICs0Myw3IEBAIGJvb2wgT1NSRXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5nQXNG
cmVxdWVudEV4aXRTaXRlU2xvdyhDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsCiAgICAgaWYgKCFz
b3VyY2VQcm9maWxlZENvZGVCbG9jaykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVy
biBzb3VyY2VQcm9maWxlZENvZGVCbG9jay0+YWRkRnJlcXVlbnRFeGl0U2l0ZSgKLSAgICAgICAg
ICAgIEZyZXF1ZW50RXhpdFNpdGUobV9jb2RlT3JpZ2luRm9yRXhpdFByb2ZpbGUuYnl0ZWNvZGVJ
bmRleCwgbV9raW5kKSk7CisgICAgICAgIEZyZXF1ZW50RXhpdFNpdGUobV9jb2RlT3JpZ2luRm9y
RXhpdFByb2ZpbGUuYnl0ZWNvZGVJbmRleCwgbV9raW5kLCBqaXRUeXBlKSk7CiB9CiAKIH0gfSAv
LyBuYW1lc3BhY2UgSlNDOjpERkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdEJhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dEJhc2UuaAppbmRleCBlZTFkNjlkZTdlMThhNDAzMGE1NjFiYzkxYzIyMzVkMDZjNTY4ZDI3Li5j
MDIxNDY1YTc1OTViZTNjMGQ5NGNlMjViYzU1Mzc5YjExYjkxMGIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5oCkBAIC01OCwxNSArNTgsMTYgQEAgc3RydWN0
IE9TUkV4aXRCYXNlIHsKICAgICBDb2RlT3JpZ2luIG1fY29kZU9yaWdpbjsKICAgICBDb2RlT3Jp
Z2luIG1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxlOwogCi0gICAgYm9vbCBjb25zaWRlckFkZGlu
Z0FzRnJlcXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrKQorcHJvdGVj
dGVkOgorICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2Nr
KiBwcm9maWxlZENvZGVCbG9jaywgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkKICAgICB7CiAgICAg
ICAgIGlmICghbV9jb3VudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0
dXJuIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhwcm9maWxlZENvZGVCbG9j
ayk7CisgICAgICAgIHJldHVybiBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3co
cHJvZmlsZWRDb2RlQmxvY2ssIGppdFR5cGUpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBib29s
IGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhDb2RlQmxvY2sqIHByb2ZpbGVk
Q29kZUJsb2NrKTsKKyAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xv
dyhDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrLCBFeGl0aW5nSklUVHlwZSBqaXRUeXBlKTsK
IH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcAppbmRleCBmOGM5ZmIwNjdiMWQ3YjYzMzEz
YWQ2MDMzZDQyOTZhNDZlNjY3NTM3Li4wM2YwZDg1MTFjNjgyZTdjMDkxYjE5MDU2ODU0YzZlMWY5
N2U2OGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29t
cGlsZXIuY3BwCkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgY29tcGlsZU9TUkV4aXQoRXhlY1N0YXRl
KiBleGVjKQogICAgICAgICAKICAgICAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZq
aXQsIGNvZGVCbG9jayk7CiAgICAgICAgIGV4aXQubV9jb2RlID0gRklOQUxJWkVfQ09ERV9JRigK
LSAgICAgICAgICAgIHNob3VsZFNob3dEaXNhc3NlbWJseSgpLAorICAgICAgICAgICAgc2hvdWxk
U2hvd0Rpc2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpLAogICAgICAgICAgICAg
cGF0Y2hCdWZmZXIsCiAgICAgICAgICAgICAoIkRGRyBPU1IgZXhpdCAjJXUgKCVzLCAlcykgZnJv
bSAlcywgd2l0aCBvcGVyYW5kcyA9ICVzIiwKICAgICAgICAgICAgICAgICBleGl0SW5kZXgsIHRv
Q1N0cmluZyhleGl0Lm1fY29kZU9yaWdpbikuZGF0YSgpLApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAppbmRleCA5NDAyZDEx
NWU4N2ZhZTFhYmU3YzI5YjMyMzBiOWVhOGY5MDUxNDE2Li5hMTdjOTc3OGRjZGUzOGRlZTFhNTdm
ZDI1Njg4ZDVhODY4YTAyYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcApAQCAtNDYsNiArNDYsMTIgQEAgdm9pZCBP
U1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0IE9w
ZXJhbmRzPFZhbHVlUmVjb3YKICAgICAgICAgbV9qaXQuZGVidWdDYWxsKGRlYnVnT3BlcmF0aW9u
UHJpbnRTcGVjdWxhdGlvbkZhaWx1cmUsIGRlYnVnSW5mbyk7CiAgICAgfQogICAgIAorICAgIC8v
IE5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIHN0YWNrIHBvaW50ZXIgYWNjb3VudHMgZm9yIHRoZSB3
b3JzdC1jYXNlIHN0YWNrIHVzYWdlIGF0IGV4aXQuCisgICAgbV9qaXQuYWRkUHRyKAorICAgICAg
ICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigKKyAgICAgICAgICAgIC1tX2ppdC5jb2RlQmxv
Y2soKS0+aml0Q29kZSgpLT5kZmdDb21tb24oKS0+cmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhp
dCAqIHNpemVvZihSZWdpc3RlcikpLAorICAgICAgICBDQ2FsbEhlbHBlcnM6OmZyYW1lUG9pbnRl
clJlZ2lzdGVyLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAKICAg
ICAvLyAyKSBQZXJmb3JtIHNwZWN1bGF0aW9uIHJlY292ZXJ5LiBUaGlzIG9ubHkgY29tZXMgaW50
byBwbGF5IHdoZW4gYW4gb3BlcmF0aW9uCiAgICAgLy8gICAgc3RhcnRzIG11dGF0aW5nIHN0YXRl
IGJlZm9yZSB2ZXJpZnlpbmcgdGhlIHNwZWN1bGF0aW9uIGl0IGhhcyBhbHJlYWR5IG1hZGUuCiAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21w
aWxlcjY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVy
NjQuY3BwCmluZGV4IDIxOWE1ZTY4YWZkY2IwYzgxOThhYzFiMTU1Yzc3MWFlNTlkMmZlNjUuLmE1
M2I0Y2U5MTFiYmUyMTJkZWJlZGViYjQ0NWQwNWU0OTI5YzEyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCkBAIC00MCw2ICs0
MCw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogdm9pZCBPU1JFeGl0Q29t
cGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0IE9wZXJhbmRzPFZh
bHVlUmVjb3Zlcnk+JiBvcGVyYW5kcywgU3BlY3VsYXRpb25SZWNvdmVyeSogcmVjb3ZlcnkpCiB7
CisgICAgbV9qaXQuaml0QXNzZXJ0VGFnc0luUGxhY2UoKTsKKwogICAgIC8vIDEpIFByby1mb3Jt
YSBzdHVmZi4KICAgICBpZiAoT3B0aW9uczo6cHJpbnRFYWNoT1NSRXhpdCgpKSB7CiAgICAgICAg
IFNwZWN1bGF0aW9uRmFpbHVyZURlYnVnSW5mbyogZGVidWdJbmZvID0gbmV3IFNwZWN1bGF0aW9u
RmFpbHVyZURlYnVnSW5mbzsKQEAgLTQ4LDYgKzUwLDEyIEBAIHZvaWQgT1NSRXhpdENvbXBpbGVy
Ojpjb21waWxlRXhpdChjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdCBPcGVyYW5kczxWYWx1ZVJl
Y292CiAgICAgICAgIG1faml0LmRlYnVnQ2FsbChkZWJ1Z09wZXJhdGlvblByaW50U3BlY3VsYXRp
b25GYWlsdXJlLCBkZWJ1Z0luZm8pOwogICAgIH0KICAgICAKKyAgICAvLyBOZWVkIHRvIGVuc3Vy
ZSB0aGF0IHRoZSBzdGFjayBwb2ludGVyIGFjY291bnRzIGZvciB0aGUgd29yc3QtY2FzZSBzdGFj
ayB1c2FnZSBhdCBleGl0LgorICAgIG1faml0LmFkZFB0cigKKyAgICAgICAgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoCisgICAgICAgICAgICAtbV9qaXQuY29kZUJsb2NrKCktPmppdENvZGUo
KS0+ZGZnQ29tbW9uKCktPnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQgKiBzaXplb2YoUmVn
aXN0ZXIpKSwKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCiAgICAgLy8gMikgUGVyZm9y
bSBzcGVjdWxhdGlvbiByZWNvdmVyeS4gVGhpcyBvbmx5IGNvbWVzIGludG8gcGxheSB3aGVuIGFu
IG9wZXJhdGlvbgogICAgIC8vICAgIHN0YXJ0cyBtdXRhdGluZyBzdGF0ZSBiZWZvcmUgdmVyaWZ5
aW5nIHRoZSBzcGVjdWxhdGlvbiBpdCBoYXMgYWxyZWFkeSBtYWRlLgogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
CmluZGV4IDlmODRhMjk2ODA4MDNhZDMxYTJiMmU1MjExNmYzYmRmMmRiOTI1ZGMuLjdmMWQ4YzRj
NjhjMzcyNjM3MGNhY2QzMmYyMDA3NmJkMjNjYzQ1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKQEAgLTMwLDYg
KzMwLDcgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkRGR09wZXJhdGlv
bnMuaCIKKyNpbmNsdWRlICJKSVQuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgog
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIApAQCAtMTczLDcgKzE3NCwxMSBAQCB2b2lkIGFkanVz
dEFuZEp1bXBUb1RhcmdldChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgT1NSRXhpdEJhc2UmIGV4
aXQpCiAgICAgQVNTRVJUKG1hcHBpbmctPm1fYnl0ZWNvZGVJbmRleCA9PSBleGl0Lm1fY29kZU9y
aWdpbi5ieXRlY29kZUluZGV4KTsKICAgICAKICAgICB2b2lkKiBqdW1wVGFyZ2V0ID0gYmFzZWxp
bmVDb2RlQmxvY2stPmppdENvZGUoKS0+ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChtYXBwaW5n
LT5tX21hY2hpbmVDb2RlT2Zmc2V0KTsKKworICAgIGppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoSklUOjpzdGFja1BvaW50ZXJPZmZzZXRGb3IoYmFzZWxpbmVDb2RlQmxv
Y2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBBc3Nl
bWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAKKyAgICBqaXQuaml0QXNz
ZXJ0VGFnc0luUGxhY2UoKTsKKwogICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbVB0cihqdW1wVGFyZ2V0KSwgR1BSSW5mbzo6cmVnVDIpOwogICAgIGppdC5qdW1wKEdQUklu
Zm86OnJlZ1QyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCmluZGV4IGIzMWI2ZmNkYzQyMjI4ZjcyOTcwMDlhN2UyNzMxMDBiZjU1MzhjNjEuLjJmZjBj
MzQxNDZlMmMwYmEyZmY3NmM0ZDNmN2M0NmJhM2UyNTUxNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMTE0MCw3ICsxMTQwLDcgQEAgdm9pZCBK
SVRfT1BFUkFUSU9OIHRyaWdnZXJUaWVyVXBOb3coRXhlY1N0YXRlKiBleGVjKQogICAgIH0KICAg
ICAKICAgICBXb3JrbGlzdDo6U3RhdGUgd29ya2xpc3RTdGF0ZTsKLSAgICBpZiAoV29ya2xpc3Qq
IHdvcmtsaXN0ID0gdm0tPndvcmtsaXN0LmdldCgpKSB7CisgICAgaWYgKFdvcmtsaXN0KiB3b3Jr
bGlzdCA9IGV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKSkgewogICAgICAgICB3b3Jr
bGlzdFN0YXRlID0gd29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKAogICAgICAg
ICAgICAgKnZtLCBDb21waWxhdGlvbktleShjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigpLCBG
VExNb2RlKSk7CiAgICAgfSBlbHNlCkBAIC0xMTY5LDggKzExNjksOCBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gdHJpZ2dlclRpZXJVcE5vdyhFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICAvLyBXZSBuZWVk
IHRvIGNvbXBpbGUgdGhlIGNvZGUuCiAgICAgY29tcGlsZSgKLSAgICAgICAgKnZtLCBjb2RlQmxv
Y2stPm5ld1JlcGxhY2VtZW50KCkuZ2V0KCksIEZUTE1vZGUsIFVJTlRfTUFYLCBPcGVyYW5kczxK
U1ZhbHVlPigpLAotICAgICAgICBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3Jl
YXRlKGNvZGVCbG9jayksIHZtLT5lbnN1cmVXb3JrbGlzdCgpKTsKKyAgICAgICAgKnZtLCBjb2Rl
QmxvY2stPm5ld1JlcGxhY2VtZW50KCkuZ2V0KCksIGNvZGVCbG9jaywgRlRMTW9kZSwgVUlOVF9N
QVgsCisgICAgICAgIE9wZXJhbmRzPEpTVmFsdWU+KCksIFRvRlRMRGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrOjpjcmVhdGUoY29kZUJsb2NrKSk7CiB9CiAKIGNoYXIqIEpJVF9PUEVSQVRJT04g
dHJpZ2dlck9TUkVudHJ5Tm93KApAQCAtMTIwMiw4ICsxMjAyLDEwIEBAIGNoYXIqIEpJVF9PUEVS
QVRJT04gdHJpZ2dlck9TUkVudHJ5Tm93KAogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAg
CisgICAgV29ya2xpc3QqIHdvcmtsaXN0ID0gZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVs
bCgpOworCiAgICAgV29ya2xpc3Q6OlN0YXRlIHdvcmtsaXN0U3RhdGU7Ci0gICAgaWYgKFdvcmts
aXN0KiB3b3JrbGlzdCA9IHZtLT53b3JrbGlzdC5nZXQoKSkgeworICAgIGlmICh3b3JrbGlzdCkg
ewogICAgICAgICB3b3JrbGlzdFN0YXRlID0gd29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFu
c0ZvclZNKAogICAgICAgICAgICAgKnZtLCBDb21waWxhdGlvbktleShjb2RlQmxvY2stPmJhc2Vs
aW5lVmVyc2lvbigpLCBGVExGb3JPU1JFbnRyeU1vZGUpKTsKICAgICB9IGVsc2UKQEAgLTEyNTIs
MTAgKzEyNTQsOSBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAg
ICBPcGVyYW5kczxKU1ZhbHVlPiBtdXN0SGFuZGxlVmFsdWVzOwogICAgIGppdENvZGUtPnJlY29u
c3RydWN0KAogICAgICAgICBleGVjLCBjb2RlQmxvY2ssIENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRl
eCksIHN0cmVhbUluZGV4LCBtdXN0SGFuZGxlVmFsdWVzKTsKLSAgICBDb21waWxhdGlvblJlc3Vs
dCBmb3JFbnRyeVJlc3VsdCA9IERGRzo6Y29tcGlsZSgKLSAgICAgICAgKnZtLCBjb2RlQmxvY2st
Pm5ld1JlcGxhY2VtZW50KCkuZ2V0KCksIEZUTEZvck9TUkVudHJ5TW9kZSwgYnl0ZWNvZGVJbmRl
eCwKLSAgICAgICAgbXVzdEhhbmRsZVZhbHVlcywgVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKGNvZGVCbG9jayksCi0gICAgICAgIHZtLT5lbnN1cmVX
b3JrbGlzdCgpKTsKKyAgICBDb21waWxhdGlvblJlc3VsdCBmb3JFbnRyeVJlc3VsdCA9IGNvbXBp
bGUoCisgICAgICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBjb2Rl
QmxvY2ssIEZUTEZvck9TUkVudHJ5TW9kZSwgYnl0ZWNvZGVJbmRleCwKKyAgICAgICAgbXVzdEhh
bmRsZVZhbHVlcywgVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6
Y3JlYXRlKGNvZGVCbG9jaykpOwogICAgIAogICAgIC8vIEJ1dCB3ZSBhbHNvIHdhbnQgdG8gdHJp
Z2dlciBhIHJlcGxhY2VtZW50IGNvbXBpbGUuIE9mIGNvdXJzZSwgd2UgZG9uJ3Qgd2FudCB0bwog
ICAgIC8vIHRyaWdnZXIgaXQgaWYgd2UgZG9uJ3QgbmVlZCB0by4gTm90ZSB0aGF0IHRoaXMgaXMg
a2luZCBvZiB3ZWlyZCBiZWNhdXNlIHdlIG1pZ2h0CkBAIC0xMjY4LDExICsxMjY5LDExIEBAIGNo
YXIqIEpJVF9PUEVSQVRJT04gdHJpZ2dlck9TUkVudHJ5Tm93KAogICAgIENvbXBpbGF0aW9uS2V5
IGtleUZvclJlcGxhY2VtZW50KGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCksIEZUTE1vZGUp
OwogICAgIGlmIChjb2RlQmxvY2stPmNvZGVUeXBlKCkgIT0gR2xvYmFsQ29kZQogICAgICAgICAm
JiAhY29kZUJsb2NrLT5oYXNPcHRpbWl6ZWRSZXBsYWNlbWVudCgpCi0gICAgICAgICYmICghdm0t
PndvcmtsaXN0LmdldCgpCi0gICAgICAgICAgICB8fCB2bS0+d29ya2xpc3QtPmNvbXBpbGF0aW9u
U3RhdGUoa2V5Rm9yUmVwbGFjZW1lbnQpID09IFdvcmtsaXN0OjpOb3RLbm93bikpIHsKKyAgICAg
ICAgJiYgKCF3b3JrbGlzdAorICAgICAgICAgICAgfHwgd29ya2xpc3QtPmNvbXBpbGF0aW9uU3Rh
dGUoa2V5Rm9yUmVwbGFjZW1lbnQpID09IFdvcmtsaXN0OjpOb3RLbm93bikpIHsKICAgICAgICAg
Y29tcGlsZSgKLSAgICAgICAgICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdl
dCgpLCBGVExNb2RlLCBVSU5UX01BWCwgT3BlcmFuZHM8SlNWYWx1ZT4oKSwKLSAgICAgICAgICAg
IFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoY29kZUJsb2NrKSwgdm0t
PmVuc3VyZVdvcmtsaXN0KCkpOworICAgICAgICAgICAgKnZtLCBjb2RlQmxvY2stPm5ld1JlcGxh
Y2VtZW50KCkuZ2V0KCksIGNvZGVCbG9jaywgRlRMTW9kZSwgVUlOVF9NQVgsCisgICAgICAgICAg
ICBPcGVyYW5kczxKU1ZhbHVlPigpLCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6
Y3JlYXRlKGNvZGVCbG9jaykpOwogICAgIH0KICAgICAKICAgICBpZiAoZm9yRW50cnlSZXN1bHQg
IT0gQ29tcGlsYXRpb25TdWNjZXNzZnVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5j
cHAKaW5kZXggOGMzNzA4MzgzMGY4MGM1Njg4YmQ1ZjUyNzNjZDJlZGM2M2M5YzU1Yy4uMjg2M2Ew
OGQwMjdjNGM0YzI5NTQ2MjVhODA5MjJmZTViN2YzMDEzOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1BsYW4uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC05MCwxNyArOTAsMzcgQEAgc3RhdGljIHZvaWQgZHVtcEFuZFZlcmlm
eUdyYXBoKEdyYXBoJiBncmFwaCwgY29uc3QgY2hhciogdGV4dCkKICAgICAgICAgdmFsaWRhdGUo
Z3JhcGgsIG1vZGVGb3JGaW5hbFZhbGlkYXRlKTsKIH0KIAorc3RhdGljIFByb2ZpbGVyOjpDb21w
aWxhdGlvbktpbmQgcHJvZmlsZXJDb21waWxhdGlvbktpbmRGb3JNb2RlKENvbXBpbGF0aW9uTW9k
ZSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgSW52YWxpZENvbXBpbGF0
aW9uTW9kZToKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuIFByb2ZpbGVyOjpERkc7CisgICAgY2FzZSBERkdNb2RlOgorICAgICAgICByZXR1cm4g
UHJvZmlsZXI6OkRGRzsKKyAgICBjYXNlIEZUTE1vZGU6CisgICAgICAgIHJldHVybiBQcm9maWxl
cjo6RlRMOworICAgIGNhc2UgRlRMRm9yT1NSRW50cnlNb2RlOgorICAgICAgICByZXR1cm4gUHJv
ZmlsZXI6OkZUTEZvck9TUkVudHJ5OworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBQcm9maWxlcjo6REZHOworfQorCiBQbGFuOjpQbGFuKAotICAg
IFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBwYXNzZWRDb2RlQmxvY2ssIENvbXBpbGF0aW9uTW9kZSBt
b2RlLAotICAgIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgY29uc3QgT3BlcmFuZHM8
SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMpCisgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IHBh
c3NlZENvZGVCbG9jaywgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywKKyAgICBDb21w
aWxhdGlvbk1vZGUgbW9kZSwgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LAorICAgIGNv
bnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzKQogICAgIDogdm0oKnBhc3Nl
ZENvZGVCbG9jay0+dm0oKSkKICAgICAsIGNvZGVCbG9jayhwYXNzZWRDb2RlQmxvY2spCisgICAg
LCBwcm9maWxlZERGR0NvZGVCbG9jayhwcm9maWxlZERGR0NvZGVCbG9jaykKICAgICAsIG1vZGUo
bW9kZSkKICAgICAsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleChvc3JFbnRyeUJ5dGVjb2RlSW5kZXgp
CiAgICAgLCBtdXN0SGFuZGxlVmFsdWVzKG11c3RIYW5kbGVWYWx1ZXMpCi0gICAgLCBjb21waWxh
dGlvbihjb2RlQmxvY2stPnZtKCktPm1fcGVyQnl0ZWNvZGVQcm9maWxlciA/IGFkb3B0UmVmKG5l
dyBQcm9maWxlcjo6Q29tcGlsYXRpb24oY29kZUJsb2NrLT52bSgpLT5tX3BlckJ5dGVjb2RlUHJv
ZmlsZXItPmVuc3VyZUJ5dGVjb2Rlc0Zvcihjb2RlQmxvY2suZ2V0KCkpLCBQcm9maWxlcjo6REZH
KSkgOiAwKQorICAgICwgY29tcGlsYXRpb24oY29kZUJsb2NrLT52bSgpLT5tX3BlckJ5dGVjb2Rl
UHJvZmlsZXIgPyBhZG9wdFJlZihuZXcgUHJvZmlsZXI6OkNvbXBpbGF0aW9uKGNvZGVCbG9jay0+
dm0oKS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyLT5lbnN1cmVCeXRlY29kZXNGb3IoY29kZUJsb2Nr
LmdldCgpKSwgcHJvZmlsZXJDb21waWxhdGlvbktpbmRGb3JNb2RlKG1vZGUpKSkgOiAwKQogICAg
ICwgaWRlbnRpZmllcnMoY29kZUJsb2NrLmdldCgpKQogICAgICwgd2Vha1JlZmVyZW5jZXMoY29k
ZUJsb2NrLmdldCgpKQorICAgICwgd2lsbFRyeVRvVGllclVwKGZhbHNlKQogICAgICwgaXNDb21w
aWxlZChmYWxzZSkKIHsKIH0KQEAgLTEwOSwxMCArMTI5LDE2IEBAIFBsYW46On5QbGFuKCkKIHsK
IH0KIAorYm9vbCBQbGFuOjpyZXBvcnRDb21waWxlVGltZXMoKSBjb25zdAoreworICAgIHJldHVy
biBPcHRpb25zOjpyZXBvcnRDb21waWxlVGltZXMoKQorICAgICAgICB8fCAoT3B0aW9uczo6cmVw
b3J0RlRMQ29tcGlsZVRpbWVzKCkgJiYgaXNGVEwobW9kZSkpOworfQorCiB2b2lkIFBsYW46OmNv
bXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0ZSYgbG9uZ0xpdmVkU3RhdGUpCiB7CiAgICAgZG91
YmxlIGJlZm9yZSA9IDA7Ci0gICAgaWYgKE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1lcygpKQor
ICAgIGlmIChyZXBvcnRDb21waWxlVGltZXMoKSkKICAgICAgICAgYmVmb3JlID0gY3VycmVudFRp
bWVNUygpOwogICAgIAogICAgIFNhbXBsaW5nUmVnaW9uIHNhbXBsaW5nUmVnaW9uKCJERkcgQ29t
cGlsYXRpb24gKFBsYW4pIik7CkBAIC0xMjUsNyArMTUxLDcgQEAgdm9pZCBQbGFuOjpjb21waWxl
SW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQogCiAgICAgUkVMRUFTRV9B
U1NFUlQoZmluYWxpemVyKTsKICAgICAKLSAgICBpZiAoT3B0aW9uczo6cmVwb3J0Q29tcGlsZVRp
bWVzKCkpIHsKKyAgICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpIHsKICAgICAgICAgY29uc3Qg
Y2hhciogcGF0aE5hbWU7CiAgICAgICAgIHN3aXRjaCAocGF0aCkgewogICAgICAgICBjYXNlIEZh
aWxQYXRoOgpAQCAtMTQzLDcgKzE2OSw3IEBAIHZvaWQgUGxhbjo6Y29tcGlsZUluVGhyZWFkKExv
bmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGRvdWJsZSBub3cgPSBjdXJyZW50VGltZU1TKCk7Ci0gICAgICAgIGRhdGFM
b2coIk9wdGltaXplZCAiLCAqY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpLCAiIHVzaW5nICIsIG1v
ZGUsICIgd2l0aCAiLCBwYXRoTmFtZSwgIiBpbiAiLCBub3cgLSBiZWZvcmUsICIgbXMiKTsKKyAg
ICAgICAgZGF0YUxvZygiT3B0aW1pemVkICIsICpjb2RlQmxvY2ssICIgdXNpbmcgIiwgbW9kZSwg
IiB3aXRoICIsIHBhdGhOYW1lLCAiIGludG8gIiwgZmluYWxpemVyLT5jb2RlU2l6ZSgpLCAiIGJ5
dGVzIGluICIsIG5vdyAtIGJlZm9yZSwgIiBtcyIpOwogICAgICAgICBpZiAocGF0aCA9PSBGVExQ
YXRoKQogICAgICAgICAgICAgZGF0YUxvZygiIChERkc6ICIsIGJlZm9yZUZUTCAtIGJlZm9yZSwg
IiwgTExWTTogIiwgbm93IC0gYmVmb3JlRlRMLCAiKSIpOwogICAgICAgICBkYXRhTG9nKCIuXG4i
KTsKQEAgLTI5Miw3ICszMTgsNyBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGls
ZUluVGhyZWFkSW1wbChMb25nTGl2ZWRTdGF0ZSYgbG9uZ0xpdmVkU3RhdGUpCiAgICAgICAgIEZU
TDo6U3RhdGUgc3RhdGUoZGZnKTsKICAgICAgICAgRlRMOjpsb3dlckRGR1RvTExWTShzdGF0ZSk7
CiAgICAgICAgIAotICAgICAgICBpZiAoT3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkpCisg
ICAgICAgIGlmIChyZXBvcnRDb21waWxlVGltZXMoKSkKICAgICAgICAgICAgIGJlZm9yZUZUTCA9
IGN1cnJlbnRUaW1lTVMoKTsKICAgICAgICAgCiAgICAgICAgIGlmIChPcHRpb25zOjpsbHZtQWx3
YXlzRmFpbHNCZWZvcmVDb21waWxlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgK
aW5kZXggYTYwMjY5Nzk4ODNlMzI3MTkzYTc4NjY0MTk5MzJkZjcwMTJjNzZlYi4uMWY2YmNlMGM0
MTdiMTUzMjg3OTg0OTM1ZmRiZjk1OGM4NzliNGE4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQbGFuLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTU1LDcgKzU1LDggQEAgY2xhc3MgTG9uZ0xpdmVkU3RhdGU7CiAKIHN0cnVjdCBQ
bGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBsYW4+IHsKICAgICBQbGFuKAotICAg
ICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4sIENvbXBpbGF0aW9uTW9kZSwgdW5zaWduZWQgb3Ny
RW50cnlCeXRlY29kZUluZGV4LAorICAgICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gY29kZUJs
b2NrVG9Db21waWxlLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLAorICAgICAgICBD
b21waWxhdGlvbk1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKICAgICAgICAg
Y29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMpOwogICAgIH5QbGFuKCk7
CiAgICAgCkBAIC03MCw2ICs3MSw3IEBAIHN0cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFBsYW4+IHsKICAgICAKICAgICBWTSYgdm07CiAgICAgUmVmUHRyPENvZGVCbG9j
az4gY29kZUJsb2NrOworICAgIFJlZlB0cjxDb2RlQmxvY2s+IHByb2ZpbGVkREZHQ29kZUJsb2Nr
OwogICAgIENvbXBpbGF0aW9uTW9kZSBtb2RlOwogICAgIGNvbnN0IHVuc2lnbmVkIG9zckVudHJ5
Qnl0ZWNvZGVJbmRleDsKICAgICBPcGVyYW5kczxKU1ZhbHVlPiBtdXN0SGFuZGxlVmFsdWVzOwpA
QCAtODQsNiArODYsOCBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxQbGFuPiB7CiAgICAgRGVzaXJlZFdlYWtSZWZlcmVuY2VzIHdlYWtSZWZlcmVuY2VzOwogICAg
IERlc2lyZWRXcml0ZUJhcnJpZXJzIHdyaXRlQmFycmllcnM7CiAgICAgRGVzaXJlZFRyYW5zaXRp
b25zIHRyYW5zaXRpb25zOworICAgIAorICAgIGJvb2wgd2lsbFRyeVRvVGllclVwOwogCiAgICAg
ZG91YmxlIGJlZm9yZUZUTDsKICAgICAKQEAgLTkyLDYgKzk2LDggQEAgc3RydWN0IFBsYW4gOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGxhbj4gewogICAgIFJlZlB0cjxEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrOwogCiBwcml2YXRlOgorICAgIGJvb2wgcmVwb3J0
Q29tcGlsZVRpbWVzKCkgY29uc3Q7CisgICAgCiAgICAgZW51bSBDb21waWxhdGlvblBhdGggeyBG
YWlsUGF0aCwgREZHUGF0aCwgRlRMUGF0aCB9OwogICAgIENvbXBpbGF0aW9uUGF0aCBjb21waWxl
SW5UaHJlYWRJbXBsKExvbmdMaXZlZFN0YXRlJik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcAppbmRleCA1MWQ1ZmQwZTQ5N2Q2
NTUyMTE3NmYzMWU5OWM1NDFhZWY1ZGQyMDNlLi4wZjQ2MTU1OTJkZGEzZmI0Y2NiZTM2ZTUwN2Vl
MzZhMTNiZWZlZjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NT
QUxvd2VyaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NB
TG93ZXJpbmdQaGFzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTczLDIyICs3MywzMyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBQdXRCeVZhbDoKLSAgICAgICAgY2Fz
ZSBQdXRCeVZhbERpcmVjdDoKLSAgICAgICAgICAgIGxvd2VyQm91bmRzQ2hlY2soCi0gICAgICAg
ICAgICAgICAgbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDApLAotICAgICAgICAgICAgICAg
IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSwKLSAgICAgICAgICAgICAgICBtX2dyYXBo
LnZhckFyZ0NoaWxkKG1fbm9kZSwgMykpOworICAgICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OiB7
CisgICAgICAgICAgICBFZGdlIGJhc2UgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMCk7
CisgICAgICAgICAgICBFZGdlIGluZGV4ID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEp
OworICAgICAgICAgICAgRWRnZSBzdG9yYWdlID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUs
IDMpOworICAgICAgICAgICAgaWYgKGxvd2VyQm91bmRzQ2hlY2soYmFzZSwgaW5kZXgsIHN0b3Jh
Z2UpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAobV9ub2RlLT5hcnJheU1vZGUoKS50eXBlZEFycmF5VHlwZSgpICE9IE5vdFR5cGVkQXJyYXkg
JiYgbV9ub2RlLT5hcnJheU1vZGUoKS5pc091dE9mQm91bmRzKCkpIHsKKyAgICAgICAgICAgICAg
ICBOb2RlKiBsZW5ndGggPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAg
ICAgICAgICBtX25vZGVJbmRleCwgU3BlY0ludDMyLCBHZXRBcnJheUxlbmd0aCwgbV9ub2RlLT5j
b2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICBPcEluZm8obV9ub2RlLT5hcnJheU1vZGUo
KS5hc1dvcmQoKSksIGJhc2UsIHN0b3JhZ2UpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCA0KSA9IEVkZ2UobGVuZ3RoLCBLbm93
bkludDMyVXNlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHZvaWQgbG93
ZXJCb3VuZHNDaGVjayhFZGdlIGJhc2UsIEVkZ2UgaW5kZXgsIEVkZ2Ugc3RvcmFnZSkKKyAgICBi
b29sIGxvd2VyQm91bmRzQ2hlY2soRWRnZSBiYXNlLCBFZGdlIGluZGV4LCBFZGdlIHN0b3JhZ2Up
CiAgICAgewogICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCkucGVybWl0c0JvdW5kc0No
ZWNrTG93ZXJpbmcoKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgCiAgICAgICAgIGlmICghbV9ub2RlLT5hcnJheU1vZGUoKS5sZW5ndGhO
ZWVkc1N0b3JhZ2UoKSkKICAgICAgICAgICAgIHN0b3JhZ2UgPSBFZGdlKCk7CkBAIC05OSw2ICsx
MTAsNyBAQCBwcml2YXRlOgogICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAg
ICAgICAgICAgbV9ub2RlSW5kZXgsIFNwZWNJbnQzMiwgQ2hlY2tJbkJvdW5kcywgbV9ub2RlLT5j
b2RlT3JpZ2luLAogICAgICAgICAgICAgaW5kZXgsIEVkZ2UobGVuZ3RoLCBLbm93bkludDMyVXNl
KSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKICAgICBJbnNlcnRpb25TZXQg
bV9pbnNlcnRpb25TZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCmluZGV4IDdkMjIyMjBiZDhiZGNhM2FmMWI4NWVmZjgzNzE4MmE0NTE5MTk4
M2YuLjI5OTNkOTc2MThiNjE1ZDMzMmE2ZmY0YWIyZWFkZjAyMTJlNTdlZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0xMzQ2LDYg
KzEzNDYsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3VycmVudEJsb2NrKCkKICAg
ICBtX3N0cmVhbS0+YXBwZW5kQW5kTG9nKFZhcmlhYmxlRXZlbnQ6OnJlc2V0KCkpOwogICAgIAog
ICAgIG1faml0LmppdEFzc2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCk7CisgICAgbV9qaXQuaml0QXNz
ZXJ0VGFnc0luUGxhY2UoKTsKKyAgICBtX2ppdC5qaXRBc3NlcnRBcmd1bWVudENvdW50U2FuZSgp
OwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2Jsb2NrLT52YXJpYWJsZXNBdEhlYWQu
bnVtYmVyT2ZBcmd1bWVudHMoKTsgKytpKSB7CiAgICAgICAgIG1fc3RyZWFtLT5hcHBlbmRBbmRM
b2coCkBAIC0xNTMyLDEwICsxNTM0LDQwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJn
dW1lbnRUeXBlcygpCiAgICAgbV9pc0NoZWNraW5nQXJndW1lbnRUeXBlcyA9IGZhbHNlOwogfQog
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpwcmVwYXJlSklUQ29kZUZvclRpZXJVcCgpCit7CisgICAg
dW5zaWduZWQgbnVtYmVyT2ZDYWxscyA9IDA7CisgICAgCisgICAgZm9yIChCbG9ja0luZGV4IGJs
b2NrSW5kZXggPSBtX2ppdC5ncmFwaCgpLm51bUJsb2NrcygpOyBibG9ja0luZGV4LS07KSB7Cisg
ICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9qaXQuZ3JhcGgoKS5ibG9jayhibG9ja0luZGV4
KTsKKyAgICAgICAgaWYgKCFibG9jaykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBub2RlSW5kZXggPSBibG9jay0+c2l6ZSgpOyBub2RlSW5k
ZXgtLTspIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CisgICAgICAg
ICAgICBjYXNlIENhbGw6CisgICAgICAgICAgICBjYXNlIENvbnN0cnVjdDoKKyAgICAgICAgICAg
ICAgICBudW1iZXJPZkNhbGxzKys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIG1faml0LmppdENvZGUoKS0+
c2xvd1BhdGhDYWxscy5maWxsKDAsIG51bWJlck9mQ2FsbHMpOworfQorCiBib29sIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKCkKIHsKICAgICBjaGVja0FyZ3VtZW50VHlwZXMoKTsKLQorICAgIAor
ICAgIGlmIChtX2ppdC5ncmFwaCgpLm1fcGxhbi53aWxsVHJ5VG9UaWVyVXApCisgICAgICAgIHBy
ZXBhcmVKSVRDb2RlRm9yVGllclVwKCk7CisgICAgCiAgICAgQVNTRVJUKCFtX2N1cnJlbnROb2Rl
KTsKICAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IDA7IGJsb2NrSW5kZXggPCBtX2pp
dC5ncmFwaCgpLm51bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgpIHsKICAgICAgICAgbV9qaXQuc2V0
Rm9yQmxvY2tJbmRleChibG9ja0luZGV4KTsKQEAgLTIzOTAsNiArMjQyMiwxMCBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNl
LCBHUFJSZWcgcHJvcGVydAogICAgIEFTU0VSVCh2YWx1ZUdQUiAhPSBiYXNlKTsKICAgICBBU1NF
UlQodmFsdWVHUFIgIT0gc3RvcmFnZVJlZyk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3V0
T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2UsIHByb3Bl
cnR5KTsKKyAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpICYmIG91dE9mQm91
bmRzLmlzU2V0KCkpIHsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNW
YWx1ZVNvdXJjZSgpLCAwLCBvdXRPZkJvdW5kcyk7CisgICAgICAgIG91dE9mQm91bmRzID0gTWFj
cm9Bc3NlbWJsZXI6Okp1bXAoKTsKKyAgICB9CiAKICAgICBzd2l0Y2ggKGVsZW1lbnRTaXplKHR5
cGUpKSB7CiAgICAgY2FzZSAxOgpAQCAtMjQ2NSw2ICsyNTAxLDEwIEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckZsb2F0VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BS
UmVnIHByb3BlCiAgICAgQVNTRVJUX1VOVVNFRChiYXNlVXNlLCBub2RlLT5hcnJheU1vZGUoKS5h
bHJlYWR5Q2hlY2tlZChtX2ppdC5ncmFwaCgpLCBub2RlLCBtX3N0YXRlLmZvck5vZGUoYmFzZVVz
ZSkpKTsKICAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9IGp1bXBG
b3JUeXBlZEFycmF5T3V0T2ZCb3VuZHMobm9kZSwgYmFzZSwgcHJvcGVydHkpOworICAgIGlmIChu
b2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzKCkgJiYgb3V0T2ZCb3VuZHMuaXNTZXQoKSkgewor
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlU291cmNlKCksIDAs
IG91dE9mQm91bmRzKTsKKyAgICAgICAgb3V0T2ZCb3VuZHMgPSBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCgpOworICAgIH0KICAgICAKICAgICBzd2l0Y2ggKGVsZW1lbnRTaXplKHR5cGUpKSB7CiAgICAg
Y2FzZSA0OiB7CkBAIC0zNDI5LDYgKzM0NjksMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUFyaXRoTW9kKE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUlJlZyBxdW90aWVudFRoZW5SZW1h
aW5kZXJHUFIgPSBxdW90aWVudFRoZW5SZW1haW5kZXIuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyBt
dWx0aXBseUFuc3dlckdQUiA9IG11bHRpcGx5QW5zd2VyLmdwcigpOwogCisgICAgICAgIEpJVENv
bXBpbGVyOjpKdW1wTGlzdCBkb25lOworICAgICAgICAKKyAgICAgICAgaWYgKHNob3VsZENoZWNr
T3ZlcmZsb3cobm9kZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBp
bGVyOjpaZXJvLCBkaXZpc29yR1BSKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSklU
Q29tcGlsZXI6Okp1bXAgZGVub21pbmF0b3JOb3RaZXJvID0gbV9qaXQuYnJhbmNoVGVzdDMyKEpJ
VENvbXBpbGVyOjpOb25aZXJvLCBkaXZpc29yR1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUo
ZGl2aXNvckdQUiwgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BSKTsKKyAgICAgICAgICAgIGRvbmUu
YXBwZW5kKG1faml0Lmp1bXAoKSk7CisgICAgICAgICAgICBkZW5vbWluYXRvck5vdFplcm8ubGlu
aygmbV9qaXQpOworICAgICAgICB9CisKICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuc2Rpdihx
dW90aWVudFRoZW5SZW1haW5kZXJHUFIsIGRpdmlkZW5kR1BSLCBkaXZpc29yR1BSKTsKICAgICAg
ICAgLy8gRklYTUU6IEl0IHNlZW1zIGxpa2UgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHdlIGRvbid0
IG5lZWQgdGhpcz8gV2hhdCBpZiB3ZSBoYXZlCiAgICAgICAgIC8vIGFyaXRoTW9kZSgpID09IEFy
aXRoOjpVbmNoZWNrZWQ/CkBAIC0zNDQ1LDYgKzM0OTYsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQXJpdGhNb2QoTm9kZSogbm9kZSkKICAgICAgICAgICAgIG51bWVyYXRvclBvc2l0
aXZlLmxpbmsoJm1faml0KTsKICAgICAgICAgfQogCisgICAgICAgIGRvbmUubGluaygmbV9qaXQp
OworICAgICAgICAKICAgICAgICAgaW50MzJSZXN1bHQocXVvdGllbnRUaGVuUmVtYWluZGVyR1BS
LCBub2RlKTsKICNlbGlmIENQVShBUk02NCkKICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhp
cyk7CkBAIC0zNDU1LDYgKzM1MDgsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFy
aXRoTW9kKE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUlJlZyBxdW90aWVudFRoZW5SZW1haW5kZXJH
UFIgPSBxdW90aWVudFRoZW5SZW1haW5kZXIuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyBtdWx0aXBs
eUFuc3dlckdQUiA9IG11bHRpcGx5QW5zd2VyLmdwcigpOwogCisgICAgICAgIEpJVENvbXBpbGVy
OjpKdW1wTGlzdCBkb25lOworICAgIAorICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxvdyhu
b2RlLT5hcml0aE1vZGUoKSkpCisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE92ZXJmbG93
LCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Olplcm8s
IGRpdmlzb3JHUFIpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBKSVRDb21waWxlcjo6
SnVtcCBkZW5vbWluYXRvck5vdFplcm8gPSBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6
Ok5vblplcm8sIGRpdmlzb3JHUFIpOworICAgICAgICAgICAgbV9qaXQubW92ZShkaXZpc29yR1BS
LCBxdW90aWVudFRoZW5SZW1haW5kZXJHUFIpOworICAgICAgICAgICAgZG9uZS5hcHBlbmQobV9q
aXQuanVtcCgpKTsKKyAgICAgICAgICAgIGRlbm9taW5hdG9yTm90WmVyby5saW5rKCZtX2ppdCk7
CisgICAgICAgIH0KKwogICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5zZGl2PDMyPihxdW90aWVu
dFRoZW5SZW1haW5kZXJHUFIsIGRpdmlkZW5kR1BSLCBkaXZpc29yR1BSKTsKICAgICAgICAgLy8g
RklYTUU6IEl0IHNlZW1zIGxpa2UgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHdlIGRvbid0IG5lZWQg
dGhpcz8gV2hhdCBpZiB3ZSBoYXZlCiAgICAgICAgIC8vIGFyaXRoTW9kZSgpID09IEFyaXRoOjpV
bmNoZWNrZWQ/CkBAIC0zNDcxLDYgKzM1MzUsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQXJpdGhNb2QoTm9kZSogbm9kZSkKICAgICAgICAgICAgIG51bWVyYXRvclBvc2l0aXZlLmxp
bmsoJm1faml0KTsKICAgICAgICAgfQogCisgICAgICAgIGRvbmUubGluaygmbV9qaXQpOworCiAg
ICAgICAgIGludDMyUmVzdWx0KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgbm9kZSk7CiAjZWxz
ZSAvLyBub3QgYXJjaGl0ZWN0dXJlIHRoYXQgY2FuIGRvIGludGVnZXIgZGl2aXNpb24KICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCAzNTM0YzdiMTUyZWVjN2Y1YmNmNWE5ZjEz
ZWI4YzE4NjFhZjEyNTA5Li44ZjU2YTUxNzg2ZDJjM2JmZjFmM2I5NWViYWExYTVhZmQyODYxMDE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBA
IC0xMTksNiArMTE5LDkgQEAgcHVibGljOgogICAgIH5TcGVjdWxhdGl2ZUpJVCgpOwogCiAgICAg
Ym9vbCBjb21waWxlKCk7CisgICAgCisgICAgdm9pZCBwcmVwYXJlSklUQ29kZUZvclRpZXJVcCgp
OworICAgIAogICAgIHZvaWQgY3JlYXRlT1NSRW50cmllcygpOwogICAgIHZvaWQgbGlua09TUkVu
dHJpZXMoTGlua0J1ZmZlciYpOwogCkBAIC03NDIsNDQgKzc0NSw0NSBAQCBwdWJsaWM6CiAgICAg
CiAgICAgcHRyZGlmZl90IGNhbGxlZUZyYW1lT2Zmc2V0KGludCBudW1BcmdzKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKG1faml0LmdyYXBoKCkubV9uZXh0
TWFjaGluZUxvY2FsICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIG51bUFyZ3MpLm9m
ZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3Rl
ckZvckxvY2FsKG1faml0LmdyYXBoKCkubV9uZXh0TWFjaGluZUxvY2FsIC0gMSArIEpTU3RhY2s6
OkNhbGxGcmFtZUhlYWRlclNpemUgKyBudW1BcmdzKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3Rl
cik7CiAgICAgfQogICAgIAogICAgIC8vIEFjY2VzcyB0byBvdXIgZml4ZWQgY2FsbGVlIENhbGxG
cmFtZS4KLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVNsb3QoaW50IG51
bUFyZ3MsIGludCBzbG90KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1l
U2xvdChpbnQgc2xvdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgY2FsbGVlRnJhbWVPZmZzZXQobnVtQXJn
cykgKyBzaXplb2YoUmVnaXN0ZXIpICogc2xvdCk7CisgICAgICAgIEFTU0VSVChzbG90ID49IEpT
U3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKTsKKyAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2l6ZW9m
KFJlZ2lzdGVyKSAqIChzbG90IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpKTsKICAg
ICB9CiAKICAgICAvLyBBY2Nlc3MgdG8gb3VyIGZpeGVkIGNhbGxlZSBDYWxsRnJhbWUuCi0gICAg
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRTbG90KGludCBudW1BcmdzLCBp
bnQgYXJndW1lbnQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRT
bG90KGludCBhcmd1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3Qo
bnVtQXJncywgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpLm9mZnNldCgpKTsK
KyAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVu
dChhcmd1bWVudCkub2Zmc2V0KCkpOwogICAgIH0KIAotICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzIGNhbGxlZUZyYW1lVGFnU2xvdChpbnQgbnVtQXJncywgaW50IHNsb3QpCisgICAgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVUYWdTbG90KGludCBzbG90KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdChudW1BcmdzLCBzbG90KS53aXRoT2Zmc2V0KE9C
SkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7CisgICAg
ICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3Qoc2xvdCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VU
T0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOwogICAgIH0KIAotICAgIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoaW50IG51bUFyZ3Ms
IGludCBzbG90KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lUGF5bG9h
ZFNsb3QoaW50IHNsb3QpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KG51
bUFyZ3MsIHNsb3QpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2Ny
aXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3Qo
c2xvdCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnBheWxvYWQpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBj
YWxsZWVBcmd1bWVudFRhZ1Nsb3QoaW50IG51bUFyZ3MsIGludCBhcmd1bWVudCkKKyAgICBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaW50IGFyZ3VtZW50KQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBhcmd1bWVu
dCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNC
aXRzLnRhZykpOworICAgICAgICByZXR1cm4gY2FsbGVlQXJndW1lbnRTbG90KGFyZ3VtZW50KS53
aXRoT2Zmc2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMu
dGFnKSk7CiAgICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1l
bnRQYXlsb2FkU2xvdChpbnQgbnVtQXJncywgaW50IGFyZ3VtZW50KQorICAgIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3QoaW50IGFyZ3VtZW50KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBhcmd1bWVudCku
d2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRz
LnBheWxvYWQpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChhcmd1bWVudCku
d2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRz
LnBheWxvYWQpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVG
cmFtZUNhbGxlckZyYW1lKGludCBudW1BcmdzKQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
IGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUZy
YW1lU2xvdChudW1BcmdzLCAwKS53aXRoT2Zmc2V0KENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZz
ZXQoKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QoMCkud2l0aE9mZnNldChDYWxs
RnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpOwogICAgIH0KIAogICAgIHZvaWQgZW1pdENhbGwo
Tm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAKaW5kZXggOTY1YWFmODFhOTM1ZmFiYjI4NDE4YjFjZTIxYjYyYzRjYTYy
ZWMxYy4uMWU4ZmFjYTk0NGE2YTI3YTYxNDhiZDg1YjM5YjFkZDdhZDhmOGQ1OCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CkBAIC0xNzIsNyArMTcyLDcgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6ZmlsbEpTVmFsdWUoRWRn
ZSBlZGdlLCBHUFJSZWcmIHRhZ0dQUiwgR1BSUmVnJiBwYXlsb2FkR1BSLAogdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNl
VGFnR1BST3JOb25lLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyByZXN1bHRUYWdHUFIs
IEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBKSVRD
b21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9k
ZSkKIHsKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9qaXQuY29kZUJs
b2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsCisgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0
ZXJzKCksCiAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VUYWdHUFJPck5vbmUsIGJhc2VQYXlsb2Fk
R1BSKSwKICAgICAgICAgSlNWYWx1ZVJlZ3MocmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BS
KSwgc3BpbGxNb2RlICE9IE5lZWRUb1NwaWxsKTsKICAgICAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwg
R1BSUmVnIGJhc2VUYWdHUFJPck5vbgogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJ
ZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHZh
bHVlVGFnR1BSLCBHUFJSZWcgdmFsdWVQYXlsb2FkR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5z
aWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0S2luZCBwdXRLaW5kLCBKSVRDb21waWxlcjo6SnVt
cCBzbG93UGF0aFRhcmdldCkKIHsKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAg
ICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsCisgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3Jp
Z2luLCB1c2VkUmVnaXN0ZXJzKCksCiAgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShi
YXNlUGF5bG9hZEdQUiksIEpTVmFsdWVSZWdzKHZhbHVlVGFnR1BSLCB2YWx1ZVBheWxvYWRHUFIp
LAogICAgICAgICBzY3JhdGNoR1BSLCBmYWxzZSwgbV9qaXQuZWNtYU1vZGVGb3IoY29kZU9yaWdp
biksIHB1dEtpbmQpOwogICAgIApAQCAtNjMxLDEwICs2MzEsOSBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjplbWl0Q2FsbChOb2RlKiBub2RlKQogICAgIAogICAgIGludCBudW1BcmdzID0gbnVtUGFz
c2VkQXJncyArIGR1bW15VGhpc0FyZ3VtZW50OwogCi0gICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KG51
bUFyZ3MsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKTsKLSAgICBtX2ppdC5zdG9yZVB0cihHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgY2FsbGVlRnJhbWVDYWxsZXJGcmFtZShudW1BcmdzKSk7
Ci0gICAgbV9qaXQuc3RvcmUzMihjYWxsZWVQYXlsb2FkR1BSLCBjYWxsZWVGcmFtZVBheWxvYWRT
bG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOwotICAgIG1faml0LnN0b3JlMzIoY2FsbGVl
VGFnR1BSLCBjYWxsZWVGcmFtZVRhZ1Nsb3QobnVtQXJncywgSlNTdGFjazo6Q2FsbGVlKSk7Cisg
ICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG51bUFyZ3MpLCBj
YWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKTsKKyAgICBtX2pp
dC5zdG9yZTMyKGNhbGxlZVBheWxvYWRHUFIsIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoSlNTdGFj
azo6Q2FsbGVlKSk7CisgICAgbV9qaXQuc3RvcmUzMihjYWxsZWVUYWdHUFIsIGNhbGxlZUZyYW1l
VGFnU2xvdChKU1N0YWNrOjpDYWxsZWUpKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVt
UGFzc2VkQXJnczsgaSsrKSB7CiAgICAgICAgIEVkZ2UgYXJnRWRnZSA9IG1faml0LmdyYXBoKCku
bV92YXJBcmdDaGlsZHJlbltub2RlLT5maXJzdENoaWxkKCkgKyAxICsgaV07CkBAIC02NDMsOCAr
NjQyLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKICAgICAg
ICAgR1BSUmVnIGFyZ1BheWxvYWRHUFIgPSBhcmcucGF5bG9hZEdQUigpOwogICAgICAgICB1c2Uo
YXJnRWRnZSk7CiAKLSAgICAgICAgbV9qaXQuc3RvcmUzMihhcmdUYWdHUFIsIGNhbGxlZUFyZ3Vt
ZW50VGFnU2xvdChudW1BcmdzLCBpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKLSAgICAgICAgbV9q
aXQuc3RvcmUzMihhcmdQYXlsb2FkR1BSLCBjYWxsZWVBcmd1bWVudFBheWxvYWRTbG90KG51bUFy
Z3MsIGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOworICAgICAgICBtX2ppdC5zdG9yZTMyKGFyZ1Rh
Z0dQUiwgY2FsbGVlQXJndW1lbnRUYWdTbG90KGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOworICAg
ICAgICBtX2ppdC5zdG9yZTMyKGFyZ1BheWxvYWRHUFIsIGNhbGxlZUFyZ3VtZW50UGF5bG9hZFNs
b3QoaSArIGR1bW15VGhpc0FyZ3VtZW50KSk7CiAgICAgfQogCiAgICAgZmx1c2hSZWdpc3RlcnMo
KTsKQEAgLTY1OSwxMyArNjU4LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5v
ZGUqIG5vZGUpCiAKICAgICBtX2ppdC5lbWl0U3RvcmVDb2RlT3JpZ2luKG5vZGUtPmNvZGVPcmln
aW4pOwogICAgIAotICAgIG1faml0LmFkZFB0cihUcnVzdGVkSW1tMzIoY2FsbGVlRnJhbWVPZmZz
ZXQobnVtQXJncykpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgCiAgICAgc2xv
d1BhdGguYXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgY2Fs
bGVlVGFnR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKICAgICBzbG93UGF0
aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyV2l0aFBhdGNoKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVh
bCwgY2FsbGVlUGF5bG9hZEdQUiwgdGFyZ2V0VG9DaGVjaykpOwogICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2FsbGVlUGF5bG9hZEdQUiwgT0JKRUNUX09GRlNFVE9G
KEpTRnVuY3Rpb24sIG1fc2NvcGUpKSwgcmVzdWx0UGF5bG9hZEdQUik7Ci0gICAgbV9qaXQuc3Rv
cmVQdHIocmVzdWx0UGF5bG9hZEdQUiwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVy
KSkgKiBKU1N0YWNrOjpTY29wZUNoYWluICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURl
c2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOwotICAgIG1faml0LnN0b3JlMzIoTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4o
c2l6ZW9mKFJlZ2lzdGVyKSkgKiBKU1N0YWNrOjpTY29wZUNoYWluICsgT0JKRUNUX09GRlNFVE9G
KEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSk7CisgICAgbV9qaXQuc3RvcmVQ
dHIocmVzdWx0UGF5bG9hZEdQUiwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChKU1N0YWNrOjpTY29w
ZUNoYWluKSk7CisgICAgbV9qaXQuc3RvcmVQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVlRnJhbWVUYWdTbG90KEpTU3RhY2s6OlNjb3BlQ2hh
aW4pKTsKIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGZhc3RDYWxsID0gbV9qaXQubmVhckNhbGwo
KTsKIApAQCAtMzA0NywxMiArMzA0NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIC8vIEdyYWIg
dGhlIHJldHVybiBhZGRyZXNzLgotICAgICAgICBtX2ppdC5lbWl0R2V0UmV0dXJuUENGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OnJlZ1QyKTsKLSAgICAgICAgLy8gUmVzdG9yZSBvdXIg
Y2FsbGVyJ3MgInIiLgotICAgICAgICBtX2ppdC5lbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZy
YW1lSGVhZGVyUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAgICAgLy8gUmV0
dXJuLgotICAgICAgICBtX2ppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJ
bmZvOjpyZWdUMik7CisgICAgICAgIG1faml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
ICAgIG1faml0LnJldCgpOwogICAgICAgICAKICAgICAgICAgbm9SZXN1bHQobm9kZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRl
eCAwYWE2NGE2MDkzMGRiMTAzNGNiODJmYTEwN2E1MzRhYzZhNjMxNGFjLi5lZTRmOWFkZmVjM2Y4
OGQ1MTYxZGMxODQyNWE3ODI3NDMxMDAxMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTE5MCw4ICsxOTAsOCBAQCBHUFJS
ZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKEVkZ2UgZWRnZSkKIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQ
UiwgR1BSUmVnIHJlc3VsdEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgSklUQ29tcGls
ZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1vZGUpCiB7
CiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1faml0LmNvZGVCbG9jaygp
LCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LAotICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocmVzdWx0R1BSKSwg
c3BpbGxNb2RlICE9IE5lZWRUb1NwaWxsKTsKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNv
ZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksCisgICAgICAg
IEpTVmFsdWVSZWdzKHJlc3VsdEdQUiksIHNwaWxsTW9kZSAhPSBOZWVkVG9TcGlsbCk7CiAgICAg
Z2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpKdW1w
TGlzdCBzbG93Q2FzZXM7CkBAIC0yMTAsOSArMjEwLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBHUFJS
ZWcKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZFB1dEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3Jp
Z2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHZhbHVlR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwg
dW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0S2luZCBwdXRLaW5kLCBKSVRDb21waWxlcjo6
SnVtcCBzbG93UGF0aFRhcmdldCkKIHsKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKLSAg
ICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBK
U1ZhbHVlUmVncyh2YWx1ZUdQUiksIHNjcmF0Y2hHUFIsIGZhbHNlLAotICAgICAgICBtX2ppdC5l
Y21hTW9kZUZvcihjb2RlT3JpZ2luKSwgcHV0S2luZCk7CisgICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEpTVmFsdWVSZWdzKGJhc2VHUFIpLAor
ICAgICAgICBKU1ZhbHVlUmVncyh2YWx1ZUdQUiksIHNjcmF0Y2hHUFIsIGZhbHNlLCBtX2ppdC5l
Y21hTW9kZUZvcihjb2RlT3JpZ2luKSwgcHV0S2luZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBh
dGgobV9qaXQpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CkBA
IC02NjMsOSArNjYyLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9k
ZSkKICAgICAKICAgICBpbnQgbnVtQXJncyA9IG51bVBhc3NlZEFyZ3MgKyBkdW1teVRoaXNBcmd1
bWVudDsKICAgICAKLSAgICBtX2ppdC5zdG9yZTMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIobnVtQXJncyksIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QobnVtQXJncywgSlNTdGFjazo6QXJn
dW1lbnRDb3VudCkpOwotICAgIG1faml0LnN0b3JlNjQoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUobnVtQXJncykpOwotICAgIG1faml0LnN0b3JlNjQo
Y2FsbGVlR1BSLCBjYWxsZWVGcmFtZVNsb3QobnVtQXJncywgSlNTdGFjazo6Q2FsbGVlKSk7Cisg
ICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG51bUFyZ3MpLCBj
YWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKTsKKyAgICBtX2pp
dC5zdG9yZTY0KGNhbGxlZUdQUiwgY2FsbGVlRnJhbWVTbG90KEpTU3RhY2s6OkNhbGxlZSkpOwog
ICAgIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUGFzc2VkQXJnczsgaSsrKSB7CiAgICAg
ICAgIEVkZ2UgYXJnRWRnZSA9IG1faml0LmdyYXBoKCkubV92YXJBcmdDaGlsZHJlbltub2RlLT5m
aXJzdENoaWxkKCkgKyAxICsgaV07CkBAIC02NzMsNyArNjcxLDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKICAgICAgICAgR1BSUmVnIGFyZ0dQUiA9IGFyZy5n
cHIoKTsKICAgICAgICAgdXNlKGFyZ0VkZ2UpOwogICAgICAgICAKLSAgICAgICAgbV9qaXQuc3Rv
cmU2NChhcmdHUFIsIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBpICsgZHVtbXlUaGlzQXJn
dW1lbnQpKTsKKyAgICAgICAgbV9qaXQuc3RvcmU2NChhcmdHUFIsIGNhbGxlZUFyZ3VtZW50U2xv
dChpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKICAgICB9CiAKICAgICBmbHVzaFJlZ2lzdGVycygp
OwpAQCAtNjgyLDIzICs2ODAsMjggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9k
ZSogbm9kZSkKICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogCiAgICAgSklU
Q29tcGlsZXI6OkRhdGFMYWJlbFB0ciB0YXJnZXRUb0NoZWNrOwotICAgIEpJVENvbXBpbGVyOjpK
dW1wTGlzdCBzbG93UGF0aDsKKyAgICBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aDsKIAogICAg
IG1faml0LmVtaXRTdG9yZUNvZGVPcmlnaW4obm9kZS0+Y29kZU9yaWdpbik7CiAgICAgCi0gICAg
bV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMihjYWxsZWVGcmFtZU9mZnNldChudW1BcmdzKSksIEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAKLSAgICBzbG93UGF0aC5hcHBlbmQobV9q
aXQuYnJhbmNoUHRyV2l0aFBhdGNoKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgY2FsbGVlR1BS
LCB0YXJnZXRUb0NoZWNrLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigwKSkpOworICAg
IHNsb3dQYXRoID0gbV9qaXQuYnJhbmNoUHRyV2l0aFBhdGNoKE1hY3JvQXNzZW1ibGVyOjpOb3RF
cXVhbCwgY2FsbGVlR1BSLCB0YXJnZXRUb0NoZWNrLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cigwKSk7CiAKICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNh
bGxlZUdQUiwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGUpKSwgcmVzdWx0R1BS
KTsKLSAgICBtX2ppdC5zdG9yZTY0KHJlc3VsdEdQUiwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9m
KFJlZ2lzdGVyKSkgKiBKU1N0YWNrOjpTY29wZUNoYWluKSk7CisgICAgbV9qaXQuc3RvcmU2NChy
ZXN1bHRHUFIsIGNhbGxlZUZyYW1lU2xvdChKU1N0YWNrOjpTY29wZUNoYWluKSk7CiAKICAgICBK
SVRDb21waWxlcjo6Q2FsbCBmYXN0Q2FsbCA9IG1faml0Lm5lYXJDYWxsKCk7Ci0gICAgCisKICAg
ICBKSVRDb21waWxlcjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOwogICAgIAogICAgIHNsb3dQ
YXRoLmxpbmsoJm1faml0KTsKICAgICAKKyAgICBpZiAobV9qaXQuZ3JhcGgoKS5tX3BsYW4ud2ls
bFRyeVRvVGllclVwKSB7CisgICAgICAgIG1faml0LmFkZDMyKAorICAgICAgICAgICAgVHJ1c3Rl
ZEltbTMyKDEpLAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFic29sdXRlQWRkcmVzcygK
KyAgICAgICAgICAgICAgICBtX2ppdC5qaXRDb2RlKCktPnNsb3dQYXRoQ2FsbHMuYmVnaW4oKSAr
IG1faml0LmN1cnJlbnRKU0NhbGxJbmRleCgpKSk7CisgICAgfQorICAgIAogICAgIG1faml0Lm1v
dmUoY2FsbGVlR1BSLCBHUFJJbmZvOjpyZWdUMCk7IC8vIENhbGxlZSBuZWVkcyB0byBiZSBpbiBy
ZWdUMAogICAgIEpJVENvbXBpbGVyOjpDYWxsIHNsb3dDYWxsID0gbV9qaXQubmVhckNhbGwoKTsK
ICAgICAKQEAgLTMyMDAsNyArMzIwMyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgICAgIAogICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0
b3IoCiAgICAgICAgICAgICAgICAgc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAgICAgICBz
bG93UGF0aCwgdGhpcywgb3BlcmF0aW9uQXJyYXlQdXNoLCBOb1Jlc3VsdCwgc3RvcmFnZUxlbmd0
aEdQUiwKKyAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5
UHVzaCwgc3RvcmFnZUxlbmd0aEdQUiwKICAgICAgICAgICAgICAgICAgICAgdmFsdWVHUFIsIGJh
c2VHUFIpKTsKICAgICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHN0b3JhZ2VMZW5n
dGhHUFIsIG5vZGUpOwpAQCAtMzIyNCw3ICszMjI3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBhZGRTbG93UGF0
aEdlbmVyYXRvcigKICAgICAgICAgICAgICAgICBzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAg
ICAgICAgIHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25BcnJheVB1c2hEb3VibGUsIE5vUmVzdWx0
LCBzdG9yYWdlTGVuZ3RoR1BSLAorICAgICAgICAgICAgICAgICAgICBzbG93UGF0aCwgdGhpcywg
b3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlLCBzdG9yYWdlTGVuZ3RoR1BSLAogICAgICAgICAgICAg
ICAgICAgICB2YWx1ZUZQUiwgYmFzZUdQUikpOwogICAgICAgICAKICAgICAgICAgICAgIGpzVmFs
dWVSZXN1bHQoc3RvcmFnZUxlbmd0aEdQUiwgbm9kZSk7CkBAIC0zMzg4LDEyICszMzkxLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBKU1ZhbHVl
T3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBtX2ppdC5tb3ZlKG9w
MS5ncHIoKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwogCi0gICAgICAgIC8vIEdyYWIgdGhl
IHJldHVybiBhZGRyZXNzLgotICAgICAgICBtX2ppdC5lbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZy
YW1lSGVhZGVyUHRyKEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgLy8gUmVzdG9yZSBvdXIgY2Fs
bGVyJ3MgInIiLgotICAgICAgICBtX2ppdC5lbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1l
SGVhZGVyUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAgICAgLy8gUmV0dXJu
LgotICAgICAgICBtX2ppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZv
OjpyZWdUMSk7CisgICAgICAgIG1faml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAg
IG1faml0LnJldCgpOwogICAgICAgICAKICAgICAgICAgbm9SZXN1bHQobm9kZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhh
c2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlv
blBoYXNlLmNwcAppbmRleCBkNTFhMWYwZDgyNzM0NGI0MTFjMTRkNTFkZTliZGY3NWFjZjFhOTZh
Li5iZWYwZGE5MTQzNzhmNDk1N2IyOTZiZTVmZTAzOTMxYzNkMjQzNzEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGllclVwQ2hlY2tJbmplY3Rpb25Q
aGFzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQ5LDI3ICs0OSw1OSBAQCBwdWJsaWM6CiAgICAgICAgIAogICAgICAgICBpZiAo
IU9wdGlvbnM6OnVzZUV4cGVyaW1lbnRhbEZUTCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotCisgICAgICAgIAorICAgICAgICBpZiAobV9ncmFwaC5tX3Byb2ZpbGVkQmxvY2stPm1fZGlk
RmFpbEZUTENvbXBpbGF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIAog
I2lmIEVOQUJMRShGVExfSklUKQogICAgICAgICBGVEw6OkNhcGFiaWxpdHlMZXZlbCBsZXZlbCA9
IEZUTDo6Y2FuQ29tcGlsZShtX2dyYXBoKTsKICAgICAgICAgaWYgKGxldmVsID09IEZUTDo6Q2Fu
bm90Q29tcGlsZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCisgICAgICAg
IGlmICghT3B0aW9uczo6ZW5hYmxlT1NSRW50cnlUb0ZUTCgpKQorICAgICAgICAgICAgbGV2ZWwg
PSBGVEw6OkNhbkNvbXBpbGU7CisgICAgICAgIAogICAgICAgICBJbnNlcnRpb25TZXQgaW5zZXJ0
aW9uU2V0KG1fZ3JhcGgpOwogICAgICAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IG1f
Z3JhcGgubnVtQmxvY2tzKCk7IGJsb2NrSW5kZXgtLTspIHsKICAgICAgICAgICAgIEJhc2ljQmxv
Y2sqIGJsb2NrID0gbV9ncmFwaC5ibG9jayhibG9ja0luZGV4KTsKICAgICAgICAgICAgIGlmICgh
YmxvY2spCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIGlmIChibG9jay0+YXQoMCktPm9wKCkgPT0gTG9vcEhpbnQpIHsKLSAgICAgICAgICAgICAg
ICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBibG9jay0+YXQoMCktPmNvZGVPcmlnaW47Ci0gICAg
ICAgICAgICAgICAgTm9kZVR5cGUgbm9kZVR5cGU7Ci0gICAgICAgICAgICAgICAgaWYgKGxldmVs
ID09IEZUTDo6Q2FuQ29tcGlsZUFuZE9TUkVudGVyICYmICFjb2RlT3JpZ2luLmlubGluZUNhbGxG
cmFtZSkgewotICAgICAgICAgICAgICAgICAgICBub2RlVHlwZSA9IENoZWNrVGllclVwQW5kT1NS
RW50ZXI7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGJsb2NrLT5ieXRlY29k
ZUJlZ2luID09IGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCk7Ci0gICAgICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIG5vZGVUeXBlID0gQ2hlY2tUaWVyVXBJbkxvb3A7Ci0g
ICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoMSwgU3BlY05vbmUsIG5vZGVU
eXBlLCBjb2RlT3JpZ2luKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgbm9kZUluZGV4ID0g
MDsgbm9kZUluZGV4IDwgYmxvY2stPnNpemUoKTsgKytub2RlSW5kZXgpIHsKKyAgICAgICAgICAg
ICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRleCk7CisgICAgICAgICAgICAgICAg
aWYgKG5vZGUtPm9wKCkgIT0gTG9vcEhpbnQpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFdlIG9ubHkgcHV0IE9TUiBj
aGVja3MgZm9yIHRoZSBmaXJzdCBMb29wSGludCBpbiB0aGUgYmxvY2suIE5vdGUgdGhhdAorICAg
ICAgICAgICAgICAgIC8vIG1vcmUgdGhhbiBvbmUgTG9vcEhpbnQgY291bGQgaGFwcGVuIGluIGNh
c2VzIHdoZXJlIHdlIGRpZCBhIGxvdCBvZiBDRkcKKyAgICAgICAgICAgICAgICAvLyBzaW1wbGlm
aWNhdGlvbiBpbiB0aGUgYnl0ZWNvZGUgcGFyc2VyLCBidXQgaXQgc2hvdWxkIGJlIHZlcnkgcmFy
ZS4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmln
aW4gPSBub2RlLT5jb2RlT3JpZ2luOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IGlmIChsZXZlbCAhPSBGVEw6OkNhbkNvbXBpbGVBbmRPU1JFbnRlciB8fCBjb2RlT3JpZ2luLmlu
bGluZUNhbGxGcmFtZSkgeworICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0
Tm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJbmRleCArIDEsIFNwZWNOb25lLCBD
aGVja1RpZXJVcEluTG9vcCwgY29kZU9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBi
b29sIGlzQXRUb3AgPSB0cnVlOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgc3ViTm9k
ZUluZGV4ID0gbm9kZUluZGV4OyBzdWJOb2RlSW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCFibG9jay0+YXQoc3ViTm9kZUluZGV4KS0+aXNTZW1hbnRpY2FsbHlTa2lwcGFibGUo
KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNBdFRvcCA9IGZhbHNlOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCFpc0F0VG9wKSB7
CisgICAgICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAg
ICAgICAgICAgICAgICAgbm9kZUluZGV4ICsgMSwgU3BlY05vbmUsIENoZWNrVGllclVwSW5Mb29w
LCBjb2RlT3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGJs
b2NrLT5ieXRlY29kZUJlZ2luID09IGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCk7CisgICAgICAg
ICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgICAgIG5v
ZGVJbmRleCArIDEsIFNwZWNOb25lLCBDaGVja1RpZXJVcEFuZE9TUkVudGVyLCBjb2RlT3JpZ2lu
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAog
ICAgICAgICAgICAgaWYgKGJsb2NrLT5sYXN0KCktPm9wKCkgPT0gUmV0dXJuKSB7CkBAIC04MCw2
ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBpbnNlcnRpb25TZXQuZXhlY3V0ZShibG9j
ayk7CiAgICAgICAgIH0KICAgICAgICAgCisgICAgICAgIG1fZ3JhcGgubV9wbGFuLndpbGxUcnlU
b1RpZXJVcCA9IHRydWU7CiAgICAgICAgIHJldHVybiB0cnVlOwogI2Vsc2UgLy8gRU5BQkxFKEZU
TF9KSVQpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCmluZGV4IDA5YmVhNDA2ZmZmYjdkZGFlNGYw
ZWU0YjEwNzY3NzJkY2NhOWJhZjUuLjA0MDg2NWZhMjNkMzQ4N2Q5MTkyZTBjNGYwY2VhMjE1YjMy
YTFmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCkBAIC0x
ODIsNiArMTgyLDE4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIFZfRVFVQUwoKG5vZGUpLCBub2RlLT5yZWZDb3VudCgpLCAxKTsKICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAgOyBpIDwg
YmxvY2stPnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBi
bG9jay0+YXQoaSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUoKG5vZGUpLCAhbm9kZS0+aXNU
ZXJtaW5hbCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAg
ICBOb2RlKiBub2RlID0gYmxvY2stPmF0KGkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIGlmIChub2RlLT5oYXNTdHJ1Y3R1cmUoKSkKKyAgICAgICAgICAgICAgICAgICAgVkFM
SURBVEUoKG5vZGUpLCAhIW5vZGUtPnN0cnVjdHVyZSgpKTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX2dyYXBoLm1fZm9ybSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAppbmRleCAzZGYxOWFjMTExMDNmYTE0
ZGY1N2Q4YzA5ZGU4NmFkOWZhNDA0NmNiLi5hMzZlYjM4MzZjOTQ4YTQyZjE2M2E4ODc2ODIyOGZk
MjI0ZmUyNTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmts
aXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcApA
QCAtMjYxLDIzICsyNjEsNTIgQEAgdm9pZCBXb3JrbGlzdDo6dGhyZWFkRnVuY3Rpb24odm9pZCog
YXJndW1lbnQpCiAgICAgc3RhdGljX2Nhc3Q8V29ya2xpc3QqPihhcmd1bWVudCktPnJ1blRocmVh
ZCgpOwogfQogCi1zdGF0aWMgV29ya2xpc3QqIHRoZUdsb2JhbFdvcmtsaXN0Oworc3RhdGljIFdv
cmtsaXN0KiB0aGVHbG9iYWxERkdXb3JrbGlzdDsKIAotV29ya2xpc3QqIGdsb2JhbFdvcmtsaXN0
KCkKK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpCiB7CiAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6
Y2FsbF9vbmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBbXSB7Ci0gICAgICAg
IHVuc2lnbmVkIG51bWJlck9mVGhyZWFkczsKKyAgICAgICAgdGhlR2xvYmFsREZHV29ya2xpc3Qg
PSBXb3JrbGlzdDo6Y3JlYXRlKE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCkp
LmxlYWtSZWYoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gdGhlR2xvYmFsREZHV29ya2xpc3Q7Cit9
CiAKLSAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUV4cGVyaW1lbnRhbEZUTCgpKQotICAgICAgICAg
ICAgbnVtYmVyT2ZUaHJlYWRzID0gMTsgLy8gV2UgZG9uJ3QgeWV0IHVzZSBMTFZNIGluIGEgdGhy
ZWFkLXNhZmUgd2F5LgotICAgICAgICBlbHNlCi0gICAgICAgICAgICBudW1iZXJPZlRocmVhZHMg
PSBPcHRpb25zOjpudW1iZXJPZkNvbXBpbGVyVGhyZWFkcygpOworV29ya2xpc3QqIGV4aXN0aW5n
R2xvYmFsREZHV29ya2xpc3RPck51bGwoKQoreworICAgIHJldHVybiB0aGVHbG9iYWxERkdXb3Jr
bGlzdDsKK30KIAotICAgICAgICB0aGVHbG9iYWxXb3JrbGlzdCA9IFdvcmtsaXN0OjpjcmVhdGUo
bnVtYmVyT2ZUaHJlYWRzKS5sZWFrUmVmKCk7CitzdGF0aWMgV29ya2xpc3QqIHRoZUdsb2JhbEZU
TFdvcmtsaXN0OworCitXb3JrbGlzdCogZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKQoreworICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsK
KyAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10g
eworICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9IFdvcmtsaXN0OjpjcmVhdGUoT3B0aW9u
czo6bnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOwogICAgIH0pOworICAg
IHJldHVybiB0aGVHbG9iYWxGVExXb3JrbGlzdDsKK30KIAotICAgIHJldHVybiB0aGVHbG9iYWxX
b3JrbGlzdDsKK1dvcmtsaXN0KiBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkKK3sK
KyAgICByZXR1cm4gdGhlR2xvYmFsRlRMV29ya2xpc3Q7Cit9CisKK1dvcmtsaXN0KiBlbnN1cmVH
bG9iYWxXb3JrbGlzdEZvcihDb21waWxhdGlvbk1vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1v
ZGUpIHsKKyAgICBjYXNlIEludmFsaWRDb21waWxhdGlvbk1vZGU6CisgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgREZHTW9k
ZToKKyAgICAgICAgcmV0dXJuIGVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KCk7CisgICAgY2FzZSBG
VExNb2RlOgorICAgIGNhc2UgRlRMRm9yT1NSRW50cnlNb2RlOgorICAgICAgICByZXR1cm4gZW5z
dXJlR2xvYmFsRlRMV29ya2xpc3QoKTsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCmluZGV4IGQzNDE5ZjBhOTFhZjk3
MWExZTIyMWQ5Y2E5YjQ3OWM4ZDNjZDE3NjguLjI1YTMxNjhlMDljZTJmZDg4OWQxZjYwOWRkNjY4
Mjk0NjIwOWNiYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29y
a2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKQEAg
LTk1LDEwICs5NSwxNSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZBY3RpdmVU
aHJlYWRzOwogfTsKIAotLy8gRm9yIG5vdyB3ZSB1c2UgYSBzaW5nbGUgZ2xvYmFsIHdvcmtsaXN0
LiBJdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMKLS8vIGlzIHRoZSByaWdodCB0aGluZyB0byBkbywg
YnV0IGl0IGlzIHdoYXQgd2UgZG8sIGZvciBub3cuIFRoaXMgZnVuY3Rpb24KLS8vIHdpbGwgbGF6
aWx5IGNyZWF0ZSBvbmUgd2hlbiBpdCdzIG5lZWRlZC4KLVdvcmtsaXN0KiBnbG9iYWxXb3JrbGlz
dCgpOworLy8gRm9yIERGR01vZGUgY29tcGlsYXRpb25zLgorV29ya2xpc3QqIGVuc3VyZUdsb2Jh
bERGR1dvcmtsaXN0KCk7CitXb3JrbGlzdCogZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVs
bCgpOworCisvLyBGb3IgRlRMTW9kZSBhbmQgRlRMRm9yT1NSRW50cnlNb2RlIGNvbXBpbGF0aW9u
cy4KK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpOworV29ya2xpc3QqIGV4aXN0
aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKTsKKworV29ya2xpc3QqIGVuc3VyZUdsb2JhbFdv
cmtsaXN0Rm9yKENvbXBpbGF0aW9uTW9kZSk7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9B
NjRET3Bjb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQv
QTY0RE9wY29kZS5jcHAKaW5kZXggMGVhODE3YTQ2MWFkNTJhZGEwZjI3MmFmNzQzNWMyNWExYTkx
NThjMy4uNDE1ZGJkYjhlMDJkZWQ0ZTMxOGM4MjcxNWRmNjU0MmY1YjEzNDJhYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNv
ZGUuY3BwCkBAIC02Miw2ICs2Miw4IEBAIHN0cnVjdCBPcGNvZGVHcm91cEluaXRpYWxpemVyIHsK
IHsgZ3JvdXBJbmRleCwgZ3JvdXBDbGFzczo6bWFzaywgZ3JvdXBDbGFzczo6cGF0dGVybiwgZ3Jv
dXBDbGFzczo6Zm9ybWF0IH0KIAogc3RhdGljIE9wY29kZUdyb3VwSW5pdGlhbGl6ZXIgb3Bjb2Rl
R3JvdXBMaXN0W10gPSB7CisgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MDgsIEE2NERPcGNvZGVM
b2FkU3RvcmVSZWdpc3RlclBhaXIpLAorICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgweDA5LCBBNjRE
T3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyKSwKICAgICBPUENPREVfR1JPVVBfRU5UUlkoMHgw
YSwgQTY0RE9wY29kZUxvZ2ljYWxTaGlmdGVkUmVnaXN0ZXIpLAogICAgIE9QQ09ERV9HUk9VUF9F
TlRSWSgweDBiLCBBNjRET3Bjb2RlQWRkU3VidHJhY3RFeHRlbmRlZFJlZ2lzdGVyKSwKICAgICBP
UENPREVfR1JPVVBfRU5UUlkoMHgwYiwgQTY0RE9wY29kZUFkZFN1YnRyYWN0U2hpZnRlZFJlZ2lz
dGVyKSwKQEAgLTE3Miw2ICsxNzQsMTEgQEAgY29uc3QgY2hhciogQTY0RE9wY29kZTo6Zm9ybWF0
KCkKIAogdm9pZCBBNjRET3Bjb2RlOjphcHBlbmRSZWdpc3Rlck5hbWUodW5zaWduZWQgcmVnaXN0
ZXJOdW1iZXIsIGJvb2wgaXM2NEJpdCkKIHsKKyAgICBpZiAocmVnaXN0ZXJOdW1iZXIgPT0gMjkp
IHsKKyAgICAgICAgYnVmZmVyUHJpbnRmKGlzNjRCaXQgPyAiZnAiIDogIndmcCIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKHJlZ2lzdGVyTnVtYmVyID09IDMwKSB7CiAgICAg
ICAgIGJ1ZmZlclByaW50ZihpczY0Qml0ID8gImxyIiA6ICJ3bHIiKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtOTM5LDYgKzk0Niw2MyBAQCBjb25zdCBjaGFyKiBBNjRET3Bjb2RlTG9hZFN0b3JlUmVn
aXN0ZXJPZmZzZXQ6OmZvcm1hdCgpCiAgICAgcmV0dXJuIG1fZm9ybWF0QnVmZmVyOwogfQogCitj
b25zdCBjaGFyKiBBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyOjpvcE5hbWUoKQorewor
ICAgIGlmICghdkJpdCgpICYmIGxCaXQoKSAmJiBzaXplKCkgPT0gMHgxKQorICAgICAgICByZXR1
cm4gImxkcHN3IjsKKyAgICBpZiAobEJpdCgpKQorICAgICAgICByZXR1cm4gImxkcCI7CisgICAg
cmV0dXJuICJzdHAiOworfQorCitjb25zdCBjaGFyKiBBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0
ZXJQYWlyOjpmb3JtYXQoKQoreworICAgIGNvbnN0IGNoYXIqIHRoaXNPcE5hbWUgPSBvcE5hbWUo
KTsKKyAgICAKKyAgICBpZiAoc2l6ZSgpID09IDB4MykKKyAgICAgICAgcmV0dXJuIEE2NERPcGNv
ZGU6OmZvcm1hdCgpOworCisgICAgaWYgKChvZmZzZXRNb2RlKCkgPCAweDEpIHx8IChvZmZzZXRN
b2RlKCkgPiAweDMpKQorICAgICAgICByZXR1cm4gQTY0RE9wY29kZTo6Zm9ybWF0KCk7CisKKyAg
ICBpZiAoKG9mZnNldE1vZGUoKSA9PSAweDEpICYmICF2Qml0KCkgJiYgIWxCaXQoKSkKKyAgICAg
ICAgcmV0dXJuIEE2NERPcGNvZGU6OmZvcm1hdCgpOworCisgICAgYXBwZW5kSW5zdHJ1Y3Rpb25O
YW1lKHRoaXNPcE5hbWUpOworICAgIHVuc2lnbmVkIG9mZnNldFNoaWZ0OworICAgIGlmICh2Qml0
KCkpIHsKKyAgICAgICAgYXBwZW5kRlBSZWdpc3Rlck5hbWUocnQoKSwgc2l6ZSgpKTsKKyAgICAg
ICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIGFwcGVuZEZQUmVnaXN0ZXJOYW1lKHJ0Migp
LCBzaXplKCkpOworICAgICAgICBvZmZzZXRTaGlmdCA9IHNpemUoKSArIDI7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgYXBwZW5kUmVnaXN0ZXJOYW1lKHJ0KCksIGlzNjRCaXQoKSk7CisgICAgICAg
IGFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICBhcHBlbmRSZWdpc3Rlck5hbWUocnQyKCksIGlz
NjRCaXQoKSk7CisgICAgICAgIG9mZnNldFNoaWZ0ID0gKHNpemUoKSA+PiAxKSArIDI7CisgICAg
fQorCisgICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgYXBwZW5kQ2hhcmFjdGVyKCdbJyk7Cisg
ICAgYXBwZW5kU1BPclJlZ2lzdGVyTmFtZShybigpKTsKKworICAgIGludCBvZmZzZXQgPSBpbW1l
ZGlhdGU3KCkgPDwgb2Zmc2V0U2hpZnQ7CisKKyAgICBpZiAob2Zmc2V0TW9kZSgpID09IDEpIHsK
KyAgICAgICAgYXBwZW5kQ2hhcmFjdGVyKCddJyk7CisgICAgICAgIGFwcGVuZFNlcGFyYXRvcigp
OworICAgICAgICBhcHBlbmRTaWduZWRJbW1lZGlhdGUob2Zmc2V0KTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBhcHBlbmRTZXBhcmF0b3IoKTsKKyAgICAgICAgYXBwZW5kU2lnbmVkSW1tZWRpYXRl
KG9mZnNldCk7CisgICAgICAgIGFwcGVuZENoYXJhY3RlcignXScpOworICAgICAgICBpZiAob2Zm
c2V0TW9kZSgpID09IDB4MykKKyAgICAgICAgICAgIGFwcGVuZENoYXJhY3RlcignIScpOworICAg
IH0KKworICAgIHJldHVybiBtX2Zvcm1hdEJ1ZmZlcjsKK30KKwogY29uc3QgY2hhciogQTY0RE9w
Y29kZUxvYWRTdG9yZVVuc2lnbmVkSW1tZWRpYXRlOjpmb3JtYXQoKQogewogICAgIGNvbnN0IGNo
YXIqIHRoaXNPcE5hbWUgPSBvcE5hbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmgKaW5kZXggZWQxOGQzMGRmZGNmYzk5
Yzk4ZjU3MjgzY2Y4NmM3NjNjNzNiYzZlNy4uMWM2YWM0MzE5MDY2OTRhNzU1YmFlMGJjYWFhMmU1
ZWE2YjFjOTY0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxl
ci9BUk02NC9BNjRET3Bjb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2Vt
Ymxlci9BUk02NC9BNjRET3Bjb2RlLmgKQEAgLTU2NSw2ICs1NjUsMjIgQEAgcHVibGljOgogICAg
IGludCBzQml0KCkgeyByZXR1cm4gKG1fb3Bjb2RlID4+IDEyKSAmIDB4MTsgfQogfTsKIAorY2xh
c3MgQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciA6IHB1YmxpYyBBNjRET3Bjb2RlTG9h
ZFN0b3JlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4M2Ew
MDAwMDA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDI4MDAwMDAwOwor
CisgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFp
ciwgdGhpc09iaik7CisKKyAgICBjb25zdCBjaGFyKiBmb3JtYXQoKTsKKyAgICBjb25zdCBjaGFy
KiBvcE5hbWUoKTsKKworICAgIHVuc2lnbmVkIHJ0MigpIHsgcmV0dXJuIChtX29wY29kZSA+PiAx
MCkgJiAweDFmOyB9CisgICAgaW50IGltbWVkaWF0ZTcoKSB7IHJldHVybiAoc3RhdGljX2Nhc3Q8
aW50PigobV9vcGNvZGUgPj4gMTUpICYgMHg3ZikgPDwgMjUpID4+IDI1OyB9CisgICAgdW5zaWdu
ZWQgb2Zmc2V0TW9kZSgpIHsgcmV0dXJuIChtX29wY29kZSA+PiAyMykgJiAweDc7IH0KKyAgICBp
bnQgbEJpdCgpIHsgcmV0dXJuIChtX29wY29kZSA+PiAyMikgJiAweDE7IH0KK307CisKIGNsYXNz
IEE2NERPcGNvZGVMb2FkU3RvcmVVbnNpZ25lZEltbWVkaWF0ZSA6IHB1YmxpYyBBNjRET3Bjb2Rl
TG9hZFN0b3JlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4
M2IwMDAwMDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFiYnJl
dmlhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJicmV2aWF0aW9ucy5o
CmluZGV4IDAyZTBjMDRjMzAyOTE1YmFlNGIzNDg2MDk1ODRmNzIzZDg0NDA2NTQuLjBmOWZhNGMz
MDFjMTkxMDlhNzY3ZGJiNDY4NzQ2MzdkZTE5ZWYzZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQWJicmV2aWF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQWJicmV2aWF0aW9ucy5oCkBAIC01OCw2ICs1OCw3IEBAIHN0YXRpYyBpbmxp
bmUgTFR5cGUgZmxvYXRUeXBlKExDb250ZXh0IGNvbnRleHQpIHsgcmV0dXJuIGxsdm0tPkZsb2F0
VHlwZUluQ29udGV4CiBzdGF0aWMgaW5saW5lIExUeXBlIGRvdWJsZVR5cGUoTENvbnRleHQgY29u
dGV4dCkgeyByZXR1cm4gbGx2bS0+RG91YmxlVHlwZUluQ29udGV4dChjb250ZXh0KTsgfQogCiBz
dGF0aWMgaW5saW5lIExUeXBlIHBvaW50ZXJUeXBlKExUeXBlIHR5cGUpIHsgcmV0dXJuIGxsdm0t
PlBvaW50ZXJUeXBlKHR5cGUsIDApOyB9CitzdGF0aWMgaW5saW5lIExUeXBlIGFycmF5VHlwZShM
VHlwZSB0eXBlLCB1bnNpZ25lZCBjb3VudCkgeyByZXR1cm4gbGx2bS0+QXJyYXlUeXBlKHR5cGUs
IGNvdW50KTsgfQogc3RhdGljIGlubGluZSBMVHlwZSB2ZWN0b3JUeXBlKExUeXBlIHR5cGUsIHVu
c2lnbmVkIGNvdW50KSB7IHJldHVybiBsbHZtLT5WZWN0b3JUeXBlKHR5cGUsIGNvdW50KTsgfQog
CiBlbnVtIFBhY2tpbmdNb2RlIHsgTm90UGFja2VkLCBQYWNrZWQgfTsKQEAgLTEzMiw2ICsxMzMs
NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0TWV0YWRhdGEoTFZhbHVlIGluc3RydWN0aW9uLCB1
bnNpZ25lZCBraW5kLCBMVmFsdWUgbWV0YWRhdAogc3RhdGljIGlubGluZSBMVmFsdWUgYWRkRnVu
Y3Rpb24oTE1vZHVsZSBtb2R1bGUsIGNvbnN0IGNoYXIqIG5hbWUsIExUeXBlIHR5cGUpIHsgcmV0
dXJuIGxsdm0tPkFkZEZ1bmN0aW9uKG1vZHVsZSwgbmFtZSwgdHlwZSk7IH0KIHN0YXRpYyBpbmxp
bmUgdm9pZCBzZXRMaW5rYWdlKExWYWx1ZSBnbG9iYWwsIExMaW5rYWdlIGxpbmthZ2UpIHsgbGx2
bS0+U2V0TGlua2FnZShnbG9iYWwsIGxpbmthZ2UpOyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0
RnVuY3Rpb25DYWxsaW5nQ29udihMVmFsdWUgZnVuY3Rpb24sIExDYWxsQ29udiBjb252ZW50aW9u
KSB7IGxsdm0tPlNldEZ1bmN0aW9uQ2FsbENvbnYoZnVuY3Rpb24sIGNvbnZlbnRpb24pOyB9Citz
dGF0aWMgaW5saW5lIHZvaWQgYWRkVGFyZ2V0RGVwZW5kZW50RnVuY3Rpb25BdHRyKExWYWx1ZSBm
dW5jdGlvbiwgY29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFyKiB2YWx1ZSkgeyBsbHZtLT5BZGRU
YXJnZXREZXBlbmRlbnRGdW5jdGlvbkF0dHIoZnVuY3Rpb24sIGtleSwgdmFsdWUpOyB9CiAKIHN0
YXRpYyBpbmxpbmUgTFZhbHVlIGFkZEV4dGVybkZ1bmN0aW9uKExNb2R1bGUgbW9kdWxlLCBjb25z
dCBjaGFyKiBuYW1lLCBMVHlwZSB0eXBlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExBYnN0cmFjdEhlYXAuY3BwCmluZGV4IGVhZGQ1YWY5N2VlZDQzZTlkMTc0OWVhM2VhN2Zh
N2E3NzI3NTlhZTQuLmJlOTljNTAxNTA2OTJmMTQ4OGI2NmVhZGFlMTkwNTIyNzJiZTY3NGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAKQEAgLTUz
LDkgKzUzLDEwIEBAIHZvaWQgQWJzdHJhY3RIZWFwOjpkZWNvcmF0ZUluc3RydWN0aW9uKExWYWx1
ZSBpbnN0cnVjdGlvbiwgY29uc3QgQWJzdHJhY3RIZWFwUmVwCiAgICAgc2V0TWV0YWRhdGEoaW5z
dHJ1Y3Rpb24sIHJlcG9zaXRvcnkubV90YmFhS2luZCwgdGJhYU1ldGFkYXRhKHJlcG9zaXRvcnkp
KTsKIH0KIAotSW5kZXhlZEFic3RyYWN0SGVhcDo6SW5kZXhlZEFic3RyYWN0SGVhcChMQ29udGV4
dCBjb250ZXh0LCBBYnN0cmFjdEhlYXAqIHBhcmVudCwgY29uc3QgY2hhciogaGVhcE5hbWUsIHNp
emVfdCBlbGVtZW50U2l6ZSkKK0luZGV4ZWRBYnN0cmFjdEhlYXA6OkluZGV4ZWRBYnN0cmFjdEhl
YXAoTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIqIGhl
YXBOYW1lLCBwdHJkaWZmX3Qgb2Zmc2V0LCBzaXplX3QgZWxlbWVudFNpemUpCiAgICAgOiBtX2hl
YXBGb3JBbnlJbmRleChwYXJlbnQsIGhlYXBOYW1lKQogICAgICwgbV9oZWFwTmFtZUxlbmd0aChz
dHJsZW4oaGVhcE5hbWUpKQorICAgICwgbV9vZmZzZXQob2Zmc2V0KQogICAgICwgbV9lbGVtZW50
U2l6ZShlbGVtZW50U2l6ZSkKICAgICAsIG1fc2NhbGVUZXJtKDApCiAgICAgLCBtX2NhblNoaWZ0
KGZhbHNlKQpAQCAtOTMsNyArOTQsNyBAQCBUeXBlZFBvaW50ZXIgSW5kZXhlZEFic3RyYWN0SGVh
cDo6YmFzZUluZGV4KE91dHB1dCYgb3V0LCBMVmFsdWUgYmFzZSwgTFZhbHVlIGluZAogICAgIH0g
ZWxzZQogICAgICAgICByZXN1bHQgPSBvdXQuYWRkKGJhc2UsIG91dC5tdWwoaW5kZXgsIG1fc2Nh
bGVUZXJtKSk7CiAgICAgCi0gICAgcmV0dXJuIFR5cGVkUG9pbnRlcihhdEFueUluZGV4KCksIG91
dC5hZGRQdHIocmVzdWx0LCBvZmZzZXQpKTsKKyAgICByZXR1cm4gVHlwZWRQb2ludGVyKGF0QW55
SW5kZXgoKSwgb3V0LmFkZFB0cihyZXN1bHQsIG1fb2Zmc2V0ICsgb2Zmc2V0KSk7CiB9CiAKIGNv
bnN0IEFic3RyYWN0RmllbGQmIEluZGV4ZWRBYnN0cmFjdEhlYXA6OmF0U2xvdyhwdHJkaWZmX3Qg
aW5kZXgpCkBAIC0xNjgsNyArMTY5LDcgQEAgdm9pZCBJbmRleGVkQWJzdHJhY3RIZWFwOjppbml0
aWFsaXplKEFic3RyYWN0RmllbGQmIGZpZWxkLCBwdHJkaWZmX3Qgc2lnbmVkSW5kZXgKICAgICAg
ICAgICAgIGFjY3VtdWxhdG9yID4+PSA0OwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBm
aWVsZC5pbml0aWFsaXplKCZtX2hlYXBGb3JBbnlJbmRleCwgY2hhcmFjdGVycywgc2lnbmVkSW5k
ZXggKiBtX2VsZW1lbnRTaXplKTsKKyAgICAgICAgZmllbGQuaW5pdGlhbGl6ZSgmbV9oZWFwRm9y
QW55SW5kZXgsIGNoYXJhY3RlcnMsIG1fb2Zmc2V0ICsgc2lnbmVkSW5kZXggKiBtX2VsZW1lbnRT
aXplKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKQEAgLTE3Nyw3ICsxNzgsNyBAQCB2
b2lkIEluZGV4ZWRBYnN0cmFjdEhlYXA6OmluaXRpYWxpemUoQWJzdHJhY3RGaWVsZCYgZmllbGQs
IHB0cmRpZmZfdCBzaWduZWRJbmRleAogCiBOdW1iZXJlZEFic3RyYWN0SGVhcDo6TnVtYmVyZWRB
YnN0cmFjdEhlYXAoCiAgICAgTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBoZWFwLCBj
b25zdCBjaGFyKiBoZWFwTmFtZSkKLSAgICA6IG1faW5kZXhlZEhlYXAoY29udGV4dCwgaGVhcCwg
aGVhcE5hbWUsIDEpCisgICAgOiBtX2luZGV4ZWRIZWFwKGNvbnRleHQsIGhlYXAsIGhlYXBOYW1l
LCAwLCAxKQogewogfQogCkBAIC0xODcsNyArMTg4LDcgQEAgTnVtYmVyZWRBYnN0cmFjdEhlYXA6
On5OdW1iZXJlZEFic3RyYWN0SGVhcCgpCiAKIEFic29sdXRlQWJzdHJhY3RIZWFwOjpBYnNvbHV0
ZUFic3RyYWN0SGVhcCgKICAgICBMQ29udGV4dCBjb250ZXh0LCBBYnN0cmFjdEhlYXAqIGhlYXAs
IGNvbnN0IGNoYXIqIGhlYXBOYW1lKQotICAgIDogbV9pbmRleGVkSGVhcChjb250ZXh0LCBoZWFw
LCBoZWFwTmFtZSwgMSkKKyAgICA6IG1faW5kZXhlZEhlYXAoY29udGV4dCwgaGVhcCwgaGVhcE5h
bWUsIDAsIDEpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQWJzdHJhY3RIZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcC5oCmluZGV4IGU5MmEyZmMyYzAxYzMwOTU4MzA3MGQ5NjFiMWE3MDkxNDExY2FjNmQuLjJm
MGNhYTcyNzEwYTIzYmQxMTFjMTI5MDExZDI5NjQ1Mjc2N2UwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaApAQCAtMTM5LDcgKzEzOSw3IEBAIHByaXZh
dGU6CiAKIGNsYXNzIEluZGV4ZWRBYnN0cmFjdEhlYXAgewogcHVibGljOgotICAgIEluZGV4ZWRB
YnN0cmFjdEhlYXAoTENvbnRleHQsIEFic3RyYWN0SGVhcCogcGFyZW50LCBjb25zdCBjaGFyKiBo
ZWFwTmFtZSwgc2l6ZV90IGVsZW1lbnRTaXplKTsKKyAgICBJbmRleGVkQWJzdHJhY3RIZWFwKExD
b250ZXh0LCBBYnN0cmFjdEhlYXAqIHBhcmVudCwgY29uc3QgY2hhciogaGVhcE5hbWUsIHB0cmRp
ZmZfdCBvZmZzZXQsIHNpemVfdCBlbGVtZW50U2l6ZSk7CiAgICAgfkluZGV4ZWRBYnN0cmFjdEhl
YXAoKTsKICAgICAKICAgICBjb25zdCBBYnN0cmFjdEhlYXAmIGF0QW55SW5kZXgoKSBjb25zdCB7
IHJldHVybiBtX2hlYXBGb3JBbnlJbmRleDsgfQpAQCAtMTY4LDYgKzE2OCw3IEBAIHByaXZhdGU6
CiAKICAgICBBYnN0cmFjdEhlYXAgbV9oZWFwRm9yQW55SW5kZXg7CiAgICAgc2l6ZV90IG1faGVh
cE5hbWVMZW5ndGg7CisgICAgcHRyZGlmZl90IG1fb2Zmc2V0OwogICAgIHNpemVfdCBtX2VsZW1l
bnRTaXplOwogICAgIExWYWx1ZSBtX3NjYWxlVGVybTsKICAgICBib29sIG1fY2FuU2hpZnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmNwcAppbmRleCBkN2Y4M2M5NjAxYzhkZWNiM2M0ZmQ5NjBmOWU5M2ZlZTI0Zjk3MmVm
Li5lNmIwZTE2MWYyYzlhYmFkZGI0NmVjNjFmNmJiODAxMTdmODI0ZjE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5j
cHAKQEAgLTQ3LDcgKzQ3LDcgQEAgQWJzdHJhY3RIZWFwUmVwb3NpdG9yeTo6QWJzdHJhY3RIZWFw
UmVwb3NpdG9yeShMQ29udGV4dCBjb250ZXh0KQogICAgIAogICAgICwgSlNDZWxsX2ZyZWVMaXN0
TmV4dChKU0NlbGxfc3RydWN0dXJlKQogICAgIAotI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hF
QVBfSU5JVElBTElaQVRJT04obmFtZSwgc2l6ZSkgLCBuYW1lKGNvbnRleHQsICZyb290LCAjbmFt
ZSwgc2l6ZSkKKyNkZWZpbmUgSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0lOSVRJQUxJWkFUSU9OKG5h
bWUsIG9mZnNldCwgc2l6ZSkgLCBuYW1lKGNvbnRleHQsICZyb290LCAjbmFtZSwgb2Zmc2V0LCBz
aXplKQogICAgIEZPUl9FQUNIX0lOREVYRURfQUJTVFJBQ1RfSEVBUChJTkRFWEVEX0FCU1RSQUNU
X0hFQVBfSU5JVElBTElaQVRJT04pCiAjdW5kZWYgSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0lOSVRJ
QUxJWkFUSU9OCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
QWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCmluZGV4IGY4MTFjOGJlNWQxYTc1NjQyOTIzMDM2NDA1
NzFmMTI1OTVhYTQwNzYuLmRkOTQ2NmQ5MmZmMjNhMDhhNThjMWUyYjM0Y2FhZTEyNDFkMzhiNDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeS5oCkBAIC00OCwxMSArNDgsMTUgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBGVEwgewogICAgIG1hY3JvKEpTQXJyYXlCdWZmZXJWaWV3X21vZGUsIEpTQXJyYXlCdWZmZXJW
aWV3OjpvZmZzZXRPZk1vZGUoKSkgXAogICAgIG1hY3JvKEpTQXJyYXlCdWZmZXJWaWV3X3ZlY3Rv
ciwgSlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mVmVjdG9yKCkpIFwKICAgICBtYWNybyhKU0Nl
bGxfc3RydWN0dXJlLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSBcCisgICAgbWFjcm8oSlNG
dW5jdGlvbl9leGVjdXRhYmxlLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSkgXAor
ICAgIG1hY3JvKEpTRnVuY3Rpb25fc2NvcGUsIEpTRnVuY3Rpb246Om9mZnNldE9mU2NvcGVDaGFp
bigpKSBcCiAgICAgbWFjcm8oSlNPYmplY3RfYnV0dGVyZmx5LCBKU09iamVjdDo6YnV0dGVyZmx5
T2Zmc2V0KCkpIFwKICAgICBtYWNybyhKU1Njb3BlX25leHQsIEpTU2NvcGU6Om9mZnNldE9mTmV4
dCgpKSBcCisgICAgbWFjcm8oSlNTdHJpbmdfZmxhZ3MsIEpTU3RyaW5nOjpvZmZzZXRPZkZsYWdz
KCkpIFwKICAgICBtYWNybyhKU1N0cmluZ19sZW5ndGgsIEpTU3RyaW5nOjpvZmZzZXRPZkxlbmd0
aCgpKSBcCiAgICAgbWFjcm8oSlNTdHJpbmdfdmFsdWUsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVl
KCkpIFwKICAgICBtYWNybyhKU1ZhcmlhYmxlT2JqZWN0X3JlZ2lzdGVycywgSlNWYXJpYWJsZU9i
amVjdDo6b2Zmc2V0T2ZSZWdpc3RlcnMoKSkgXAorICAgIG1hY3JvKEpTV3JhcHBlck9iamVjdF9p
bnRlcm5hbFZhbHVlLCBKU1dyYXBwZXJPYmplY3Q6OmludGVybmFsVmFsdWVPZmZzZXQoKSkgXAog
ICAgIG1hY3JvKE1hcmtlZEFsbG9jYXRvcl9mcmVlTGlzdEhlYWQsIE1hcmtlZEFsbG9jYXRvcjo6
b2Zmc2V0T2ZGcmVlTGlzdEhlYWQoKSkgXAogICAgIG1hY3JvKE1hcmtlZEJsb2NrX21hcmtCaXRz
LCBNYXJrZWRCbG9jazo6b2Zmc2V0T2ZNYXJrcygpKSBcCiAgICAgbWFjcm8oU3RyaW5nSW1wbF9k
YXRhLCBTdHJpbmdJbXBsOjpkYXRhT2Zmc2V0KCkpIFwKQEAgLTY0LDE0ICs2OCwxNSBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oU3RydWN0dXJlX3R5cGVJbmZv
VHlwZSwgU3RydWN0dXJlOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSkKIAogI2RlZmluZSBGT1JfRUFD
SF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKLSAgICBtYWNybyhjaGFyYWN0ZXJzOCwg
c2l6ZW9mKExDaGFyKSkgXAotICAgIG1hY3JvKGNoYXJhY3RlcnMxNiwgc2l6ZW9mKFVDaGFyKSkg
XAotICAgIG1hY3JvKGluZGV4ZWRJbnQzMlByb3BlcnRpZXMsIHNpemVvZihFbmNvZGVkSlNWYWx1
ZSkpIFwKLSAgICBtYWNybyhpbmRleGVkRG91YmxlUHJvcGVydGllcywgc2l6ZW9mKGRvdWJsZSkp
IFwKLSAgICBtYWNybyhpbmRleGVkQ29udGlndW91c1Byb3BlcnRpZXMsIHNpemVvZihFbmNvZGVk
SlNWYWx1ZSkpIFwKLSAgICBtYWNybyhpbmRleGVkQXJyYXlTdG9yYWdlUHJvcGVydGllcywgc2l6
ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAotICAgIG1hY3JvKHNpbmdsZUNoYXJhY3RlclN0cmluZ3Ms
IHNpemVvZihKU1N0cmluZyopKSBcCi0gICAgbWFjcm8odmFyaWFibGVzLCBzaXplb2YoUmVnaXN0
ZXIpKQorICAgIG1hY3JvKEpTUm9wZVN0cmluZ19maWJlcnMsIEpTUm9wZVN0cmluZzo6b2Zmc2V0
T2ZGaWJlcnMoKSwgc2l6ZW9mKFdyaXRlQmFycmllcjxKU1N0cmluZz4pKSBcCisgICAgbWFjcm8o
Y2hhcmFjdGVyczgsIDAsIHNpemVvZihMQ2hhcikpIFwKKyAgICBtYWNybyhjaGFyYWN0ZXJzMTYs
IDAsIHNpemVvZihVQ2hhcikpIFwKKyAgICBtYWNybyhpbmRleGVkSW50MzJQcm9wZXJ0aWVzLCAw
LCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCisgICAgbWFjcm8oaW5kZXhlZERvdWJsZVByb3Bl
cnRpZXMsIDAsIHNpemVvZihkb3VibGUpKSBcCisgICAgbWFjcm8oaW5kZXhlZENvbnRpZ3VvdXNQ
cm9wZXJ0aWVzLCAwLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCisgICAgbWFjcm8oaW5kZXhl
ZEFycmF5U3RvcmFnZVByb3BlcnRpZXMsIDAsIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKKyAg
ICBtYWNybyhzaW5nbGVDaGFyYWN0ZXJTdHJpbmdzLCAwLCBzaXplb2YoSlNTdHJpbmcqKSkgXAor
ICAgIG1hY3JvKHZhcmlhYmxlcywgMCwgc2l6ZW9mKFJlZ2lzdGVyKSkKICAgICAKICNkZWZpbmUg
Rk9SX0VBQ0hfTlVNQkVSRURfQUJTVFJBQ1RfSEVBUChtYWNybykgXAogICAgIG1hY3JvKHByb3Bl
cnRpZXMpCkBAIC05Nyw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgQWJzdHJhY3RGaWVs
ZCYgSlNDZWxsX2ZyZWVMaXN0TmV4dDsKICAgICAKLSNkZWZpbmUgSU5ERVhFRF9BQlNUUkFDVF9I
RUFQX0RFQ0xBUkFUSU9OKG5hbWUsIHNpemUpIEluZGV4ZWRBYnN0cmFjdEhlYXAgbmFtZTsKKyNk
ZWZpbmUgSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9OKG5hbWUsIG9mZnNldCwgc2l6
ZSkgSW5kZXhlZEFic3RyYWN0SGVhcCBuYW1lOwogICAgIEZPUl9FQUNIX0lOREVYRURfQUJTVFJB
Q1RfSEVBUChJTkRFWEVEX0FCU1RSQUNUX0hFQVBfREVDTEFSQVRJT04pCiAjdW5kZWYgSU5ERVhF
RF9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9OCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjMDBmYTRk
OTA5NWI4MzE1YmEyN2MxY2M5MTM1N2FjMjIwNTk1NTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcApAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExBdmFpbGFibGVSZWNvdmVyeS5oIgorCisj
aWYgRU5BQkxFKEZUTF9KSVQpCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKwor
dm9pZCBBdmFpbGFibGVSZWNvdmVyeTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAorewor
ICAgIG91dC5wcmludChub2RlKCksICIgPT4gIiwgb3Bjb2RlKCksICIsICIsIFJhd1BvaW50ZXIo
bV9sZWZ0KSwgIiwgIiwgUmF3UG9pbnRlcihtX3JpZ2h0KSwgIiwgIiwgbV9mb3JtYXQpOworfQor
Cit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNv
dmVyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZjYWY0YTIyZDI4MDlhNmZiZDM1MGNlZGYxODgyMzkzOTIwNzAxZTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEF2YWlsYWJsZVJl
Y292ZXJ5LmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZUTEF2YWlsYWJsZVJlY292ZXJ5X2gKKyNkZWZpbmUg
RlRMQXZhaWxhYmxlUmVjb3ZlcnlfaAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRl
ICJERkdOb2RlLmgiCisjaW5jbHVkZSAiRlRMQWJicmV2aWF0ZWRUeXBlcy5oIgorI2luY2x1ZGUg
IkZUTFJlY292ZXJ5T3Bjb2RlLmgiCisjaW5jbHVkZSAiRlRMVmFsdWVGb3JtYXQuaCIKKworbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitjbGFzcyBBdmFpbGFibGVSZWNvdmVyeSB7
CitwdWJsaWM6CisgICAgQXZhaWxhYmxlUmVjb3ZlcnkoKQorICAgICAgICA6IG1fbm9kZSgwKQor
ICAgICAgICAsIG1fZm9ybWF0KEludmFsaWRWYWx1ZUZvcm1hdCkKKyAgICAgICAgLCBtX29wY29k
ZShBZGRSZWNvdmVyeSkKKyAgICAgICAgLCBtX2xlZnQoMCkKKyAgICAgICAgLCBtX3JpZ2h0KDAp
CisgICAgeworICAgIH0KKyAgICAKKyAgICBBdmFpbGFibGVSZWNvdmVyeShERkc6Ok5vZGUqIG5v
ZGUsIFJlY292ZXJ5T3Bjb2RlIG9wY29kZSwgTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCwgVmFs
dWVGb3JtYXQgZm9ybWF0KQorICAgICAgICA6IG1fbm9kZShub2RlKQorICAgICAgICAsIG1fZm9y
bWF0KGZvcm1hdCkKKyAgICAgICAgLCBtX29wY29kZShvcGNvZGUpCisgICAgICAgICwgbV9sZWZ0
KGxlZnQpCisgICAgICAgICwgbV9yaWdodChyaWdodCkKKyAgICB7CisgICAgfQorICAgIAorICAg
IERGRzo6Tm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9kZTsgfQorICAgIFZhbHVlRm9y
bWF0IGZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9ybWF0OyB9CisgICAgUmVjb3ZlcnlPcGNv
ZGUgb3Bjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGNvZGU7IH0KKyAgICBMVmFsdWUgbGVmdCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQorICAgIExWYWx1ZSByaWdodCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmlnaHQ7IH0KKyAgICAKKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsK
KyAgICAKK3ByaXZhdGU6CisgICAgREZHOjpOb2RlKiBtX25vZGU7CisgICAgVmFsdWVGb3JtYXQg
bV9mb3JtYXQ7CisgICAgUmVjb3ZlcnlPcGNvZGUgbV9vcGNvZGU7CisgICAgTFZhbHVlIG1fbGVm
dDsKKyAgICBMVmFsdWUgbV9yaWdodDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwK
KworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMQXZhaWxhYmxlUmVj
b3ZlcnlfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHAKaW5kZXggODZhMjhjZjhhZWY0MGQyZjdhZGI1MzVmNDcyNGQyZjMzMGJmOGEwNi4uZDE2YjE3
YmQ2NjEyNzlkMGNhZDMwMDIyMzNlOWUzMDExMDA5M2U3NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMzIsNiArMzIsMTEgQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwogCitzdGF0
aWMgYm9vbCB2ZXJib3NlQ2FwYWJpbGl0aWVzKCkKK3sKKyAgICByZXR1cm4gdmVyYm9zZUNvbXBp
bGF0aW9uRW5hYmxlZCgpIHx8IE9wdGlvbnM6OnZlcmJvc2VGVExGYWlsdXJlKCk7Cit9CisKIGlu
bGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogewogICAgIC8vIE5P
VEU6IElmIHdlIGV2ZXIgaGF2ZSBwaGFudG9tIGFyZ3VtZW50cywgd2UgY2FuIGNvbXBpbGUgdGhl
bSBidXQgd2UgY2Fubm90CkBAIC03Nyw2ICs4Miw5IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwg
Y2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgQXJpdGhNaW46CiAgICAgY2FzZSBBcml0
aE1heDoKICAgICBjYXNlIEFyaXRoQWJzOgorICAgIGNhc2UgQXJpdGhTaW46CisgICAgY2FzZSBB
cml0aENvczoKKyAgICBjYXNlIEFyaXRoU3FydDoKICAgICBjYXNlIEFyaXRoTmVnYXRlOgogICAg
IGNhc2UgVUludDMyVG9OdW1iZXI6CiAgICAgY2FzZSBJbnQzMlRvRG91YmxlOgpAQCAtODgsOCAr
OTYsNiBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAg
ICBjYXNlIFVwc2lsb246CiAgICAgY2FzZSBFeHRyYWN0T1NSRW50cnlMb2NhbDoKICAgICBjYXNl
IExvb3BIaW50OgotICAgIGNhc2UgQ2FsbDoKLSAgICBjYXNlIENvbnN0cnVjdDoKICAgICBjYXNl
IEdldE15U2NvcGU6CiAgICAgY2FzZSBTa2lwU2NvcGU6CiAgICAgY2FzZSBHZXRDbG9zdXJlUmVn
aXN0ZXJzOgpAQCAtMTA4LDE1ICsxMTQsMjcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5D
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBTdG9yZUJhcnJpZXI6CiAgICAgY2FzZSBDb25k
aXRpb25hbFN0b3JlQmFycmllcjoKICAgICBjYXNlIFN0b3JlQmFycmllcldpdGhOdWxsQ2hlY2s6
CisgICAgY2FzZSBDYWxsOgorICAgIGNhc2UgQ29uc3RydWN0OgogICAgIGNhc2UgVmFsdWVUb0lu
dDMyOgogICAgIGNhc2UgQnJhbmNoOgogICAgIGNhc2UgTG9naWNhbE5vdDoKICAgICBjYXNlIENo
ZWNrSW5Cb3VuZHM6CiAgICAgY2FzZSBDb25zdGFudFN0b3JhZ2VQb2ludGVyOgogICAgIGNhc2Ug
Q2hlY2s6CisgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKKyAgICBjYXNlIENoZWNrRXhlY3V0YWJs
ZToKKyAgICBjYXNlIEdldFNjb3BlOgorICAgIGNhc2UgQWxsb2NhdGlvblByb2ZpbGVXYXRjaHBv
aW50OgorICAgIGNhc2UgQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkOgorICAgIGNhc2UgR2V0Q2Fs
bGVlOgorICAgIGNhc2UgVG9TdHJpbmc6CisgICAgY2FzZSBNYWtlUm9wZToKKyAgICBjYXNlIE5l
d0FycmF5V2l0aFNpemU6CiAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBHZXRCeUlkOgorICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKICAgICBjYXNlIFB1
dEJ5SWQ6CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkK
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjM3LDggKzI1NSwxNyBAQCBpbmxpbmUgQ2FwYWJpbGl0
eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxl
KEdyYXBoJiBncmFwaCkKIHsKICAgICBpZiAoZ3JhcGgubV9jb2RlQmxvY2stPmNvZGVUeXBlKCkg
IT0gRnVuY3Rpb25Db2RlKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVk
KCkpCi0gICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nIGNvZGUgYmxvY2sgdGhhdCBk
b2Vzbid0IGJlbG9uZyB0byBhIGZ1bmN0aW9uLlxuIik7CisgICAgICAgIGlmICh2ZXJib3NlQ2Fw
YWJpbGl0aWVzKCkpCisgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nICIsICpncmFw
aC5tX2NvZGVCbG9jaywgIiBiZWNhdXNlIGl0IGRvZXNuJ3QgYmVsb25nIHRvIGEgZnVuY3Rpb24u
XG4iKTsKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAgfQorICAgIAorICAgIGlm
IChncmFwaC5tX2NvZGVCbG9jay0+bmVlZHNBY3RpdmF0aW9uKCkpIHsKKyAgICAgICAgLy8gTmVl
ZCB0aGlzIGJlY2F1c2UgYWx0aG91Z2ggd2UgYWxzbyBkb24ndCBzdXBwb3J0CisgICAgICAgIC8v
IENyZWF0ZUFjdGl2YXRpb24vVGVhck9mZkFjdGl2YXRpb24sIHdlIG1pZ2h0IG5vdCBzZWUgdGhv
c2Ugbm9kZXMgaW4gY2FzZSBvZgorICAgICAgICAvLyBPU1IgZW50cnkuCisgICAgICAgIGlmICh2
ZXJib3NlQ2FwYWJpbGl0aWVzKCkpCisgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5n
ICIsICpncmFwaC5tX2NvZGVCbG9jaywgIiBiZWNhdXNlIGl0IHVzZXMgYWN0aXZhdGlvbnMuXG4i
KTsKICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CiAgICAgfQogICAgIApAQCAtMjc0LDEz
ICszMDEsMTYgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAg
ICAgICAgICAgICAgIGNhc2UgT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgT2JqZWN0
T3JPdGhlclVzZToKICAgICAgICAgICAgICAgICBjYXNlIFN0cmluZ1VzZToKKyAgICAgICAgICAg
ICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgorICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT2Jq
ZWN0VXNlOgorICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CiAg
ICAgICAgICAgICAgICAgY2FzZSBGaW5hbE9iamVjdFVzZToKICAgICAgICAgICAgICAgICAgICAg
Ly8gVGhlc2UgYXJlIE9LLgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBrbm93IGhvdyB0byBo
YW5kbGUgYW55dGhpbmcgZWxzZS4KLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2VDb21w
aWxhdGlvbkVuYWJsZWQoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiRlRM
IHJlamVjdGluZyBub2RlIGJlY2F1c2Ugb2YgYmFkIHVzZSBraW5kOiAiLCBlZGdlLnVzZUtpbmQo
KSwgIiBpbiBub2RlOlxuIik7CisgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlQ2FwYWJp
bGl0aWVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3Rp
bmcgbm9kZSBpbiAiLCAqZ3JhcGgubV9jb2RlQmxvY2ssICIgYmVjYXVzZSBvZiBiYWQgdXNlIGtp
bmQ6ICIsIGVkZ2UudXNlS2luZCgpLCAiIGluIG5vZGU6XG4iKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGdyYXBoLmR1bXAoV1RGOjpkYXRhRmlsZSgpLCAiICAgICIsIG5vZGUpOwogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxl
OwpAQCAtMjg5LDggKzMxOSw4IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBn
cmFwaCkKICAgICAgICAgICAgIAogICAgICAgICAgICAgc3dpdGNoIChjYW5Db21waWxlKG5vZGUp
KSB7CiAgICAgICAgICAgICBjYXNlIENhbm5vdENvbXBpbGU6IAotICAgICAgICAgICAgICAgIGlm
ICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgZGF0
YUxvZygiRlRMIHJlamVjdGluZyBub2RlOlxuIik7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJv
c2VDYXBhYmlsaXRpZXMoKSkgeworICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVq
ZWN0aW5nIG5vZGUgaW4gIiwgKmdyYXBoLm1fY29kZUJsb2NrLCAiOlxuIik7CiAgICAgICAgICAg
ICAgICAgICAgIGdyYXBoLmR1bXAoV1RGOjpkYXRhRmlsZSgpLCAiICAgICIsIG5vZGUpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmNwcAppbmRleCA2NTNi
YjdkZGRjZTI0ODI3MWU4ZTZjNjEwNGZhMTlmN2RiYWM2MWFhLi5jY2E5MGQzYTYzYTYyODdmNzQ5
NTMwYzMzYTEwMmVkNjhlN2RhMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDb21tb25WYWx1ZXMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC02MSw2ICs2MSw4IEBAIENvbW1vblZhbHVlczo6Q29tbW9uVmFs
dWVzKExDb250ZXh0IGNvbnRleHQpCiAgICAgLCBpbnRQdHJFaWdodChjb25zdEludChpbnRQdHIs
IDgsIFNpZ25FeHRlbmQpKQogICAgICwgaW50UHRyUHRyKGNvbnN0SW50KGludFB0ciwgc2l6ZW9m
KHZvaWQqKSwgU2lnbkV4dGVuZCkpCiAgICAgLCBkb3VibGVaZXJvKGNvbnN0UmVhbChkb3VibGVU
eXBlLCAwKSkKKyAgICAsIHJhbmdlS2luZChtZEtpbmRJRChjb250ZXh0LCAicmFuZ2UiKSkKKyAg
ICAsIG5vbk5lZ2F0aXZlSW50MzIoY29uc3RJbnQoaW50MzIsIDAsIFNpZ25FeHRlbmQpLCBjb25z
dEludChpbnQzMiwgMWxsIDw8IDMxLCBTaWduRXh0ZW5kKSkKICAgICAsIG1fY29udGV4dChjb250
ZXh0KQogICAgICwgbV9tb2R1bGUoMCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENvbW1vblZhbHVlcy5oCmluZGV4IDg0ODA5MDIxMGNkZDcwNGJmMDU2MDNhNTgxZTJmYjFkYzgx
YTIwNTEuLjlmMzMxY2ZiZDA3ZTUxNWQ2YTM4OTMyMzY2Mjg0MWViMzI2ZDAxMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21tb25WYWx1ZXMuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBAQAog
I2lmIEVOQUJMRShGVExfSklUKQogCiAjaW5jbHVkZSAiRlRMQWJicmV2aWF0aW9ucy5oIgorI2lu
Y2x1ZGUgIkZUTFZhbHVlUmFuZ2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwg
ewogCkBAIC03NCw2ICs3NSwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgTFZhbHVlIGludFB0clB0
cjsKICAgICBjb25zdCBMVmFsdWUgZG91YmxlWmVybzsKICAgICAKKyAgICBjb25zdCB1bnNpZ25l
ZCByYW5nZUtpbmQ7CisgICAgCisgICAgY29uc3QgVmFsdWVSYW5nZSBub25OZWdhdGl2ZUludDMy
OworICAgIAogICAgIExDb250ZXh0IGNvbnN0IG1fY29udGV4dDsKICAgICBMTW9kdWxlIG1fbW9k
dWxlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGls
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCmluZGV4IDZj
MDFmNGZhNTJmMWY5ZTlkODU1YjE4N2M3OTFlYTRmYzhlMjEwMDguLmUyM2M3NDU3NTNlYTIzZTE1
ZDMzYmY3NWU4YzYwYTdjYTJiODRlOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ29tcGlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
b21waWxlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZUTElubGluZUNhY2hlU2l6ZS5o
IgogI2luY2x1ZGUgIkZUTEpJVENvZGUuaCIKICNpbmNsdWRlICJGVExUaHVua3MuaCIKKyNpbmNs
dWRlICJGVExVbndpbmRJbmZvLmgiCiAjaW5jbHVkZSAiSklUU3R1YnMuaCIKICNpbmNsdWRlICJM
TFZNQVBJLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgpAQCAtNDksNyArNTAsNiBAQCB1c2lu
ZyBuYW1lc3BhY2UgREZHOwogc3RhdGljIHVpbnQ4X3QqIG1tQWxsb2NhdGVDb2RlU2VjdGlvbigK
ICAgICB2b2lkKiBvcGFxdWVTdGF0ZSwgdWludHB0cl90IHNpemUsIHVuc2lnbmVkIGFsaWdubWVu
dCwgdW5zaWduZWQsIGNvbnN0IGNoYXIqIHNlY3Rpb25OYW1lKQogewotICAgIAogICAgIFN0YXRl
JiBzdGF0ZSA9ICpzdGF0aWNfY2FzdDxTdGF0ZSo+KG9wYXF1ZVN0YXRlKTsKICAgICAKICAgICBS
RUxFQVNFX0FTU0VSVChhbGlnbm1lbnQgPD0gaml0QWxsb2NhdGlvbkdyYW51bGUpOwpAQCAtNTgs
NiArNTgsMTEgQEAgc3RhdGljIHVpbnQ4X3QqIG1tQWxsb2NhdGVDb2RlU2VjdGlvbigKICAgICAg
ICAgc3RhdGUuZ3JhcGgubV92bS5leGVjdXRhYmxlQWxsb2NhdG9yLmFsbG9jYXRlKAogICAgICAg
ICAgICAgc3RhdGUuZ3JhcGgubV92bSwgc2l6ZSwgc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJ
VENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpOwogICAgIAorICAgIGlmICghc3RyY21wKHNlY3Rpb25O
YW1lLCAiX19jb21wYWN0X3Vud2luZCIpKSB7CisgICAgICAgIHN0YXRlLmNvbXBhY3RVbndpbmQg
PSByZXN1bHQtPnN0YXJ0KCk7CisgICAgICAgIHN0YXRlLmNvbXBhY3RVbndpbmRTaXplID0gcmVz
dWx0LT5zaXplSW5CeXRlcygpOworICAgIH0KKyAgICAKICAgICBzdGF0ZS5qaXRDb2RlLT5hZGRI
YW5kbGUocmVzdWx0KTsKICAgICBzdGF0ZS5jb2RlU2VjdGlvbk5hbWVzLmFwcGVuZChzZWN0aW9u
TmFtZSk7CiAgICAgCkBAIC0xNDksOCArMTU0LDYzIEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9u
QmFzZWRPblN0YWNrTWFwcygKICAgICBTdGF0ZSYgc3RhdGUsIENvZGVCbG9jayogY29kZUJsb2Nr
LCBKSVRDb2RlKiBqaXRDb2RlLCBHZW5lcmF0ZWRGdW5jdGlvbiBnZW5lcmF0ZWRGdW5jdGlvbiwK
ICAgICBTdGFja01hcHM6OlJlY29yZE1hcCYgcmVjb3JkTWFwKQogewotICAgIFZNJiB2bSA9IHN0
YXRlLmdyYXBoLm1fdm07CisgICAgR3JhcGgmIGdyYXBoID0gc3RhdGUuZ3JhcGg7CisgICAgVk0m
IHZtID0gZ3JhcGgubV92bTsKICAgICBTdGFja01hcHMgc3RhY2ttYXBzID0gaml0Q29kZS0+c3Rh
Y2ttYXBzOworICAgIAorICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVyID0g
cmVjb3JkTWFwLmZpbmQoc3RhdGUuY2FwdHVyZWRTdGFja21hcElEKTsKKyAgICBSRUxFQVNFX0FT
U0VSVChpdGVyICE9IHJlY29yZE1hcC5lbmQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoaXRlci0+
dmFsdWUubG9jYXRpb25zLnNpemUoKSA9PSAxKTsKKyAgICBMb2NhdGlvbiBjYXB0dXJlZExvY2F0
aW9uID0KKyAgICAgICAgTG9jYXRpb246OmZvclN0YWNrbWFwcygmaml0Q29kZS0+c3RhY2ttYXBz
LCBpdGVyLT52YWx1ZS5sb2NhdGlvbnNbMF0pOworICAgIFJFTEVBU0VfQVNTRVJUKGNhcHR1cmVk
TG9jYXRpb24ua2luZCgpID09IExvY2F0aW9uOjpSZWdpc3Rlcik7CisgICAgUkVMRUFTRV9BU1NF
UlQoY2FwdHVyZWRMb2NhdGlvbi5ncHIoKSA9PSBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7
CisgICAgUkVMRUFTRV9BU1NFUlQoIShjYXB0dXJlZExvY2F0aW9uLmFkZGVuZCgpICUgc2l6ZW9m
KFJlZ2lzdGVyKSkpOworICAgIGludDMyX3QgbG9jYWxzT2Zmc2V0ID0gY2FwdHVyZWRMb2NhdGlv
bi5hZGRlbmQoKSAvIHNpemVvZihSZWdpc3RlcikgKyBncmFwaC5tX25leHRNYWNoaW5lTG9jYWw7
CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gZ3JhcGgubV9pbmxpbmVWYXJpYWJsZURhdGEu
c2l6ZSgpOyBpLS07KSB7CisgICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1l
ID0gZ3JhcGgubV9pbmxpbmVWYXJpYWJsZURhdGFbaV0uaW5saW5lQ2FsbEZyYW1lOworICAgICAg
ICAKKyAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzUmVnaXN0ZXIuaXNWYWxp
ZCgpKSB7CisgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1JlZ2lzdGVyID0g
VmlydHVhbFJlZ2lzdGVyKAorICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+YXJndW1l
bnRzUmVnaXN0ZXIub2Zmc2V0KCkgKyBsb2NhbHNPZmZzZXQpOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBmb3IgKHVuc2lnbmVkIGFyZ3VtZW50ID0gaW5saW5lQ2FsbEZyYW1lLT5hcmd1
bWVudHMuc2l6ZSgpOyBhcmd1bWVudC0tID4gMTspIHsKKyAgICAgICAgICAgIGlubGluZUNhbGxG
cmFtZS0+YXJndW1lbnRzW2FyZ3VtZW50XSA9CisgICAgICAgICAgICAgICAgaW5saW5lQ2FsbEZy
YW1lLT5hcmd1bWVudHNbYXJndW1lbnRdLndpdGhMb2NhbHNPZmZzZXQobG9jYWxzT2Zmc2V0KTsK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZS0+aXNDbG9z
dXJlQ2FsbCkgeworICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVSZWNvdmVyeSA9
CisgICAgICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVSZWNvdmVyeS53aXRoTG9j
YWxzT2Zmc2V0KGxvY2Fsc09mZnNldCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaWYg
KGNvZGVCbG9jay0+dXNlc0FyZ3VtZW50cygpKSB7CisgICAgICAgIGNvZGVCbG9jay0+c2V0QXJn
dW1lbnRzUmVnaXN0ZXIoCisgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIoY29kZUJsb2NrLT5h
cmd1bWVudHNSZWdpc3RlcigpLm9mZnNldCgpICsgbG9jYWxzT2Zmc2V0KSk7CisgICAgfQorCisg
ICAgeworICAgICAgICBDQ2FsbEhlbHBlcnMgY2hlY2tKSVQoJnZtLCBjb2RlQmxvY2spOworICAg
ICAgICAKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCBpdCdzIHBlcmZlY3RseSBmYWlyIHRvIGp1
c3QgYmxvdyBhd2F5IGFsbCBzdGF0ZSBhbmQgcmVzdG9yZSB0aGUKKyAgICAgICAgLy8gSlMgSklU
IHZpZXcgb2YgdGhlIHVuaXZlcnNlLgorICAgICAgICBjaGVja0pJVC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlciksIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3Rlcik7CisgICAgICAgIGNoZWNrSklULm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW02NChUYWdNYXNrKSwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKTsKKyAgICAgICAgCisgICAg
ICAgIGNoZWNrSklULm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJnZtKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgY2hlY2tKSVQubW92ZShHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbCA9IGNoZWNrSklULmNhbGwoKTsKKyAgICAgICAgY2hlY2tKSVQuanVt
cFRvRXhjZXB0aW9uSGFuZGxlcigpOworICAgICAgICAKKyAgICAgICAgT3duUHRyPExpbmtCdWZm
ZXI+IGxpbmtCdWZmZXIgPSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcigKKyAgICAgICAgICAgIHZt
LCAmY2hlY2tKSVQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOworICAg
ICAgICBsaW5rQnVmZmVyLT5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyKGxvb2t1cEV4Y2VwdGlvbkhh
bmRsZXIpKTsKKyAgICAgICAgCisgICAgICAgIHN0YXRlLmZpbmFsaXplci0+aGFuZGxlRXhjZXB0
aW9uc0xpbmtCdWZmZXIgPSBsaW5rQnVmZmVyLnJlbGVhc2UoKTsKKyAgICB9CiAKICAgICBFeGl0
VGh1bmtHZW5lcmF0b3IgZXhpdFRodW5rR2VuZXJhdG9yKHN0YXRlKTsKICAgICBleGl0VGh1bmtH
ZW5lcmF0b3IuZW1pdFRodW5rcygpOwpAQCAtMTY2LDE2ICsyMjYsMzAgQEAgc3RhdGljIHZvaWQg
Zml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAgICAgCiAgICAgICAgICAgICBp
ZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxv
ZygiSGFuZGxpbmcgT1NSIHN0YWNrbWFwICMiLCBleGl0Lm1fc3RhY2ttYXBJRCwgIiBmb3IgIiwg
ZXhpdC5tX2NvZGVPcmlnaW4sICJcbiIpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBTdGFj
a01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJlY29yZE1hcC5maW5kKGV4aXQubV9z
dGFja21hcElEKTsKKworICAgICAgICAgICAgaXRlciA9IHJlY29yZE1hcC5maW5kKGV4aXQubV9z
dGFja21hcElEKTsKICAgICAgICAgICAgIGlmIChpdGVyID09IHJlY29yZE1hcC5lbmQoKSkgewog
ICAgICAgICAgICAgICAgIC8vIEl0IHdhcyBvcHRpbWl6ZWQgb3V0LgogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpbmZv
Lm1fdGh1bmtBZGRyZXNzID0gbGlua0J1ZmZlci0+bG9jYXRpb25PZihpbmZvLm1fdGh1bmtMYWJl
bCk7Ci0gICAgICAgICAgICAKICAgICAgICAgICAgIGV4aXQubV9wYXRjaGFibGVDb2RlT2Zmc2V0
ID0gbGlua0J1ZmZlci0+b2Zmc2V0T2YoaW5mby5tX3RodW5rSnVtcCk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IGV4aXQubV92YWx1ZXMuc2l6ZSgpOyBqLS07
KSB7CisgICAgICAgICAgICAgICAgRXhpdFZhbHVlIHZhbHVlID0gZXhpdC5tX3ZhbHVlc1tqXTsK
KyAgICAgICAgICAgICAgICBpZiAoIXZhbHVlLmlzSW5KU1N0YWNrU29tZWhvdygpKQorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoIXZhbHVlLnZpcnR1
YWxSZWdpc3RlcigpLmlzTG9jYWwoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAgICAgZXhpdC5tX3ZhbHVlc1tqXSA9IHZhbHVlLndpdGhWaXJ0dWFsUmVnaXN0
ZXIoCisgICAgICAgICAgICAgICAgICAgIFZpcnR1YWxSZWdpc3Rlcih2YWx1ZS52aXJ0dWFsUmVn
aXN0ZXIoKS5vZmZzZXQoKSArIGxvY2Fsc09mZnNldCkpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgCisgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkpIHsK
KyAgICAgICAgICAgICAgICBEdW1wQ29udGV4dCBjb250ZXh0OworICAgICAgICAgICAgICAgIGRh
dGFMb2coIiAgICBFeGl0IHZhbHVlczogIiwgaW5Db250ZXh0KGV4aXQubV92YWx1ZXMsICZjb250
ZXh0KSwgIlxuIik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IHN0YXRlLmZpbmFsaXplci0+ZXhpdFRodW5rc0xpbmtCdWZmZXIgPSBsaW5rQnVmZmVyLnJlbGVh
c2UoKTsKQEAgLTE4NCwxMyArMjU4LDE1IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRP
blN0YWNrTWFwcygKICAgICBpZiAoIXN0YXRlLmdldEJ5SWRzLmlzRW1wdHkoKSB8fCAhc3RhdGUu
cHV0QnlJZHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIENDYWxsSGVscGVycyBzbG93UGF0aEpJVCgm
dm0sIGNvZGVCbG9jayk7CiAgICAgICAgIAorICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0
IGV4Y2VwdGlvblRhcmdldDsKKyAgICAgICAgCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0
YXRlLmdldEJ5SWRzLnNpemUoKTsgaS0tOykgewogICAgICAgICAgICAgR2V0QnlJZERlc2NyaXB0
b3ImIGdldEJ5SWQgPSBzdGF0ZS5nZXRCeUlkc1tpXTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKQogICAgICAgICAgICAgICAgIGRh
dGFMb2coIkhhbmRsaW5nIEdldEJ5SWQgc3RhY2ttYXAgIyIsIGdldEJ5SWQuc3RhY2ttYXBJRCgp
LCAiXG4iKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6
Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChnZXRCeUlkLnN0YWNrbWFwSUQoKSk7Cisg
ICAgICAgICAgICBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZ2V0QnlJZC5zdGFja21hcElEKCkpOwog
ICAgICAgICAgICAgaWYgKGl0ZXIgPT0gcmVjb3JkTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICAg
ICAgLy8gSXQgd2FzIG9wdGltaXplZCBvdXQuCiAgICAgICAgICAgICAgICAgY29udGludWU7CkBA
IC0yMDIsMTggKzI3OCwxNyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01h
cHMoCiAgICAgICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6
OmFsbFJlZ2lzdGVycygpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBHUFJSZWcgcmVzdWx0
ID0gcmVjb3JkLmxvY2F0aW9uc1swXS5kaXJlY3RHUFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyBj
YWxsRnJhbWVSZWdpc3RlciA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCk7Ci0gICAg
ICAgICAgICBHUFJSZWcgYmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMl0uZGlyZWN0R1BSKCk7Cisg
ICAgICAgICAgICBHUFJSZWcgYmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAg
ICAgICAgICAgICAgIGNvZGVCbG9jaywgZ2V0QnlJZC5jb2RlT3JpZ2luKCksIHVzZWRSZWdpc3Rl
cnMsIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2Up
LCBKU1ZhbHVlUmVncyhyZXN1bHQpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgY29kZUJsb2Nr
LCBnZXRCeUlkLmNvZGVPcmlnaW4oKSwgdXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MoYmFzZSks
CisgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocmVzdWx0KSwgZmFsc2UpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgYmVnaW4gPSBzbG93UGF0aEpJ
VC5sYWJlbCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsID0gY2FsbE9wZXJhdGlvbigKLSAgICAgICAgICAgICAgICBzdGF0ZSwgdXNlZFJlZ2lz
dGVycywgc2xvd1BhdGhKSVQsIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgcmVzdWx0LAotICAg
ICAgICAgICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBnZW4uc3R1YkluZm8oKSwgYmFzZSwgZ2V0
QnlJZC51aWQoKSk7CisgICAgICAgICAgICAgICAgc3RhdGUsIHVzZWRSZWdpc3RlcnMsIHNsb3dQ
YXRoSklULCBnZXRCeUlkLmNvZGVPcmlnaW4oKSwgJmV4Y2VwdGlvblRhcmdldCwKKyAgICAgICAg
ICAgICAgICBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIHJlc3VsdCwgZ2VuLnN0dWJJbmZvKCks
IGJhc2UsIGdldEJ5SWQudWlkKCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBnZW4ucmVw
b3J0U2xvd1BhdGhDYWxsKGJlZ2luLCBjYWxsKTsKICAgICAgICAgICAgIApAQCAtMjI3LDcgKzMw
Miw3IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAg
ICAgIGlmIChPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKSkKICAgICAgICAgICAgICAgICBk
YXRhTG9nKCJIYW5kbGluZyBQdXRCeUlkIHN0YWNrbWFwICMiLCBwdXRCeUlkLnN0YWNrbWFwSUQo
KSwgIlxuIik7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFw
OjppdGVyYXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQocHV0QnlJZC5zdGFja21hcElEKCkpOwor
ICAgICAgICAgICAgaXRlciA9IHJlY29yZE1hcC5maW5kKHB1dEJ5SWQuc3RhY2ttYXBJRCgpKTsK
ICAgICAgICAgICAgIGlmIChpdGVyID09IHJlY29yZE1hcC5lbmQoKSkgewogICAgICAgICAgICAg
ICAgIC8vIEl0IHdhcyBvcHRpbWl6ZWQgb3V0LgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpA
QCAtMjM4LDIwICszMTMsMTkgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tN
YXBzKAogICAgICAgICAgICAgLy8gRklYTUU6IExMVk0gc2hvdWxkIHRlbGwgdXMgd2hpY2ggcmVn
aXN0ZXJzIGFyZSBsaXZlLgogICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9
IFJlZ2lzdGVyU2V0OjphbGxSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAg
R1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gcmVjb3JkLmxvY2F0aW9uc1swXS5kaXJlY3RHUFIo
KTsKLSAgICAgICAgICAgIEdQUlJlZyBiYXNlID0gcmVjb3JkLmxvY2F0aW9uc1sxXS5kaXJlY3RH
UFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyB2YWx1ZSA9IHJlY29yZC5sb2NhdGlvbnNbMl0uZGly
ZWN0R1BSKCk7CisgICAgICAgICAgICBHUFJSZWcgYmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMF0u
ZGlyZWN0R1BSKCk7CisgICAgICAgICAgICBHUFJSZWcgdmFsdWUgPSByZWNvcmQubG9jYXRpb25z
WzFdLmRpcmVjdEdQUigpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBKSVRQdXRCeUlkR2Vu
ZXJhdG9yIGdlbigKLSAgICAgICAgICAgICAgICBjb2RlQmxvY2ssIHB1dEJ5SWQuY29kZU9yaWdp
bigpLCB1c2VkUmVnaXN0ZXJzLCBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBK
U1ZhbHVlUmVncyhiYXNlKSwgSlNWYWx1ZVJlZ3ModmFsdWUpLCBNYWNyb0Fzc2VtYmxlcjo6c2Ny
YXRjaFJlZ2lzdGVyLAotICAgICAgICAgICAgICAgIGZhbHNlLCBwdXRCeUlkLmVjbWFNb2RlKCks
IHB1dEJ5SWQucHV0S2luZCgpKTsKKyAgICAgICAgICAgICAgICBjb2RlQmxvY2ssIHB1dEJ5SWQu
Y29kZU9yaWdpbigpLCB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyhiYXNlKSwKKyAgICAgICAg
ICAgICAgICBKU1ZhbHVlUmVncyh2YWx1ZSksIE1hY3JvQXNzZW1ibGVyOjpzY3JhdGNoUmVnaXN0
ZXIsIGZhbHNlLCBwdXRCeUlkLmVjbWFNb2RlKCksCisgICAgICAgICAgICAgICAgcHV0QnlJZC5w
dXRLaW5kKCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFi
ZWwgYmVnaW4gPSBzbG93UGF0aEpJVC5sYWJlbCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbigKLSAgICAgICAgICAg
ICAgICBzdGF0ZSwgdXNlZFJlZ2lzdGVycywgc2xvd1BhdGhKSVQsIGdlbi5zbG93UGF0aEZ1bmN0
aW9uKCksIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygp
LCB2YWx1ZSwgYmFzZSwgcHV0QnlJZC51aWQoKSk7CisgICAgICAgICAgICAgICAgc3RhdGUsIHVz
ZWRSZWdpc3RlcnMsIHNsb3dQYXRoSklULCBwdXRCeUlkLmNvZGVPcmlnaW4oKSwgJmV4Y2VwdGlv
blRhcmdldCwKKyAgICAgICAgICAgICAgICBnZW4uc2xvd1BhdGhGdW5jdGlvbigpLCBnZW4uc3R1
YkluZm8oKSwgdmFsdWUsIGJhc2UsIHB1dEJ5SWQudWlkKCkpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGJlZ2luLCBjYWxsKTsKICAgICAgICAgICAg
IApAQCAtMjU5LDggKzMzMywxMyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFj
a01hcHMoCiAgICAgICAgICAgICBwdXRCeUlkLm1fZ2VuZXJhdG9yID0gZ2VuOwogICAgICAgICB9
CiAgICAgICAgIAorICAgICAgICBleGNlcHRpb25UYXJnZXQubGluaygmc2xvd1BhdGhKSVQpOwor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBleGNlcHRpb25KdW1wID0gc2xvd1BhdGhKSVQu
anVtcCgpOworICAgICAgICAKICAgICAgICAgc3RhdGUuZmluYWxpemVyLT5zaWRlQ29kZUxpbmtC
dWZmZXIgPSBhZG9wdFB0cigKICAgICAgICAgICAgIG5ldyBMaW5rQnVmZmVyKHZtLCAmc2xvd1Bh
dGhKSVQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOworICAgICAgICBz
dGF0ZS5maW5hbGl6ZXItPnNpZGVDb2RlTGlua0J1ZmZlci0+bGluaygKKyAgICAgICAgICAgIGV4
Y2VwdGlvbkp1bXAsIHN0YXRlLmZpbmFsaXplci0+aGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXIt
PmVudHJ5cG9pbnQoKSk7CiAgICAgICAgIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0
ZS5nZXRCeUlkcy5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgIGdlbmVyYXRlSUNGYXN0UGF0
aCgKQEAgLTI3NCwyOCArMzUzLDgxIEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0
YWNrTWFwcygKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICBSZXBhdGNoQnVmZmVyIHJlcGF0
Y2hCdWZmZXIoY29kZUJsb2NrKTsKLSAgICAKLSAgICBmb3IgKHVuc2lnbmVkIGV4aXRJbmRleCA9
IGppdENvZGUtPm9zckV4aXQuc2l6ZSgpOyBleGl0SW5kZXgtLTspIHsKLSAgICAgICAgT1NSRXhp
dENvbXBpbGF0aW9uSW5mbyYgaW5mbyA9IHN0YXRlLmZpbmFsaXplci0+b3NyRXhpdFtleGl0SW5k
ZXhdOwotICAgICAgICBPU1JFeGl0JiBleGl0ID0gaml0Q29kZS0+b3NyRXhpdFtleGl0SW5kZXhd
OwotICAgICAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJlY29yZE1h
cC5maW5kKGV4aXQubV9zdGFja21hcElEKTsKKyAgICAvLyBIYW5kbGluZyBKUyBjYWxscyBpcyB3
ZWlyZDogd2UgbmVlZCB0byBlbnN1cmUgdGhhdCB3ZSBzb3J0IHRoZW0gYnkgdGhlIFBDIGluIExM
Vk0KKyAgICAvLyBnZW5lcmF0ZWQgY29kZS4gVGhhdCBpbXBsaWVzIGZpcnN0IHBydW5pbmcgdGhl
IG9uZXMgdGhhdCBMTFZNIGRpZG4ndCBnZW5lcmF0ZS4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgc3RhdGUuanNDYWxscy5zaXplKCk7ICsraSkgeworICAgICAgICBKU0NhbGwmIGNhbGwg
PSBzdGF0ZS5qc0NhbGxzW2ldOworICAgICAgICAKKyAgICAgICAgU3RhY2tNYXBzOjpSZWNvcmRN
YXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChjYWxsLnN0YWNrbWFwSUQoKSk7CiAg
ICAgICAgIGlmIChpdGVyID09IHJlY29yZE1hcC5lbmQoKSkgewotICAgICAgICAgICAgLy8gVGhp
cyBjb3VsZCBoYXBwZW4gaWYgTExWTSBvcHRpbWl6ZXMgb3V0IGFuIE9TUiBleGl0LgorICAgICAg
ICAgICAgLy8gSXQgd2FzIG9wdGltaXplZCBvdXQuIFBydW5lIGl0LgorICAgICAgICAgICAgY2Fs
bCA9IHN0YXRlLmpzQ2FsbHMubGFzdCgpOworICAgICAgICAgICAgc3RhdGUuanNDYWxscy5yZW1v
dmVMYXN0KCk7CisgICAgICAgICAgICBpLS07CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogICAgICAgICAKKyAgICAgICAgY2FsbC5tX2luc3RydWN0aW9uT2Zmc2V0ID0gaXRlci0+
dmFsdWUuaW5zdHJ1Y3Rpb25PZmZzZXQ7CisgICAgfQorICAgIAorICAgIHN0ZDo6c29ydChzdGF0
ZS5qc0NhbGxzLmJlZ2luKCksIHN0YXRlLmpzQ2FsbHMuZW5kKCkpOworICAgIAorICAgIGNvZGVC
bG9jay0+c2V0TnVtYmVyT2ZDYWxsTGlua0luZm9zKHN0YXRlLmpzQ2FsbHMuc2l6ZSgpKTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0ZS5qc0NhbGxzLnNpemUoKTsgaS0tOykgeworICAgICAg
ICBKU0NhbGwmIGNhbGwgPSBzdGF0ZS5qc0NhbGxzW2ldOworCisgICAgICAgIENDYWxsSGVscGVy
cyBmYXN0UGF0aEpJVCgmdm0sIGNvZGVCbG9jayk7CisgICAgICAgIGNhbGwuZW1pdChmYXN0UGF0
aEpJVCk7CisgICAgICAgIAorICAgICAgICBjaGFyKiBzdGFydE9mSUMgPSBiaXR3aXNlX2Nhc3Q8
Y2hhcio+KGdlbmVyYXRlZEZ1bmN0aW9uKSArIGNhbGwubV9pbnN0cnVjdGlvbk9mZnNldDsKKyAg
ICAgICAgCisgICAgICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcih2bSwgJmZhc3RQYXRoSklULCBz
dGFydE9mSUMsIHNpemVPZkNhbGwoKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGxpbmtCdWZm
ZXIuaXNWYWxpZCgpKTsKKyAgICAgICAgCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBc3NlbWJs
ZXJUeXBlX1Q6OmZpbGxOb3BzKAorICAgICAgICAgICAgc3RhcnRPZklDICsgbGlua0J1ZmZlci5z
aXplKCksIHNpemVPZkNhbGwoKSAtIGxpbmtCdWZmZXIuc2l6ZSgpKTsKKyAgICAgICAgCisgICAg
ICAgIENhbGxMaW5rSW5mbyYgaW5mbyA9IGNvZGVCbG9jay0+Y2FsbExpbmtJbmZvKGkpOworICAg
ICAgICBjYWxsLmxpbmsodm0sIGxpbmtCdWZmZXIsIGluZm8pOworICAgIH0KKyAgICAKKyAgICBS
ZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIoY29kZUJsb2NrKTsKKyAgICAKKyAgICBpdGVyID0g
cmVjb3JkTWFwLmZpbmQoc3RhdGUuaGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRCk7CisgICAgLy8g
SXQncyBzb3J0IG9mIHJlbW90ZWx5IHBvc3NpYmxlIHRoYXQgd2Ugd29uJ3QgaGF2ZSBhbiBpbi1i
YW5kIGV4Y2VwdGlvbiBoYW5kbGluZworICAgIC8vIHBhdGgsIGZvciBzb21lIGtpbmRzIG9mIGZ1
bmN0aW9ucy4KKyAgICBpZiAoaXRlciAhPSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAgICAgU3Rh
Y2tNYXBzOjpSZWNvcmQmIHJlY29yZCA9IGl0ZXItPnZhbHVlOwogICAgICAgICAKICAgICAgICAg
Q29kZUxvY2F0aW9uTGFiZWwgc291cmNlID0gQ29kZUxvY2F0aW9uTGFiZWwoCiAgICAgICAgICAg
ICBiaXR3aXNlX2Nhc3Q8Y2hhcio+KGdlbmVyYXRlZEZ1bmN0aW9uKSArIHJlY29yZC5pbnN0cnVj
dGlvbk9mZnNldCk7CisKKyAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZXBsYWNlV2l0aEp1bXAoc291
cmNlLCBzdGF0ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLT5lbnRyeXBv
aW50KCkpOworICAgIH0KKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGV4aXRJbmRleCA9IDA7IGV4
aXRJbmRleCA8IGppdENvZGUtPm9zckV4aXQuc2l6ZSgpOyArK2V4aXRJbmRleCkgeworICAgICAg
ICBPU1JFeGl0Q29tcGlsYXRpb25JbmZvJiBpbmZvID0gc3RhdGUuZmluYWxpemVyLT5vc3JFeGl0
W2V4aXRJbmRleF07CisgICAgICAgIE9TUkV4aXQmIGV4aXQgPSBqaXRDb2RlLT5vc3JFeGl0W2V4
aXRJbmRleF07CisgICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3RhY2ttYXBJ
RCk7CiAgICAgICAgIAotICAgICAgICBpZiAoaW5mby5tX2lzSW52YWxpZGF0aW9uUG9pbnQpIHsK
LSAgICAgICAgICAgIGppdENvZGUtPmNvbW1vbi5qdW1wUmVwbGFjZW1lbnRzLmFwcGVuZChKdW1w
UmVwbGFjZW1lbnQoc291cmNlLCBpbmZvLm1fdGh1bmtBZGRyZXNzKSk7Ci0gICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgVmVjdG9yPGNvbnN0IHZvaWQqPiBjb2RlQWRkcmVzc2VzOworICAg
ICAgICAKKyAgICAgICAgaWYgKGl0ZXIgIT0gcmVjb3JkTWFwLmVuZCgpKSB7CisgICAgICAgICAg
ICBTdGFja01hcHM6OlJlY29yZCYgcmVjb3JkID0gaXRlci0+dmFsdWU7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHNvdXJjZSA9IENvZGVMb2NhdGlvbkxhYmVs
KAorICAgICAgICAgICAgICAgIGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJhdGVkRnVuY3Rpb24p
ICsgcmVjb3JkLmluc3RydWN0aW9uT2Zmc2V0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
Y29kZUFkZHJlc3Nlcy5hcHBlbmQoYml0d2lzZV9jYXN0PGNoYXIqPihnZW5lcmF0ZWRGdW5jdGlv
bikgKyByZWNvcmQuaW5zdHJ1Y3Rpb25PZmZzZXQgKyBNYWNyb0Fzc2VtYmxlcjo6bWF4SnVtcFJl
cGxhY2VtZW50U2l6ZSgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGluZm8ubV9p
c0ludmFsaWRhdGlvblBvaW50KQorICAgICAgICAgICAgICAgIGppdENvZGUtPmNvbW1vbi5qdW1w
UmVwbGFjZW1lbnRzLmFwcGVuZChKdW1wUmVwbGFjZW1lbnQoc291cmNlLCBpbmZvLm1fdGh1bmtB
ZGRyZXNzKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVwYXRjaEJ1ZmZl
ci5yZXBsYWNlV2l0aEp1bXAoc291cmNlLCBpbmZvLm1fdGh1bmtBZGRyZXNzKTsKICAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZXBsYWNlV2l0aEp1bXAoc291cmNl
LCBpbmZvLm1fdGh1bmtBZGRyZXNzKTsKKyAgICAgICAgaWYgKGdyYXBoLmNvbXBpbGF0aW9uKCkp
CisgICAgICAgICAgICBncmFwaC5jb21waWxhdGlvbigpLT5hZGRPU1JFeGl0U2l0ZShjb2RlQWRk
cmVzc2VzKTsKICAgICB9CiB9CiAKQEAgLTM3Myw3ICs1MDUsNyBAQCB2b2lkIGNvbXBpbGUoU3Rh
dGUmIHN0YXRlKQogICAgICAgICAgICAgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZSogaGFuZGxlID0g
c3RhdGUuaml0Q29kZS0+aGFuZGxlcygpW2ldLmdldCgpOwogICAgICAgICAgICAgZGF0YUxvZygK
ICAgICAgICAgICAgICAgICAiR2VuZXJhdGVkIExMVk0gY29kZSBmb3IgIiwKLSAgICAgICAgICAg
ICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29k
ZTo6REZHSklUKSwKKyAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5n
cmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6RlRMSklUKSwKICAgICAgICAgICAgICAgICAiICMi
LCBpLCAiLCAiLCBzdGF0ZS5jb2RlU2VjdGlvbk5hbWVzW2ldLCAiOlxuIik7CiAgICAgICAgICAg
ICBkaXNhc3NlbWJsZSgKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoaGFu
ZGxlLT5zdGFydCgpKSwgaGFuZGxlLT5zaXplSW5CeXRlcygpLApAQCAtMzg0LDE3ICs1MTYsMjIg
QEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSkKICAgICAgICAgICAgIGNvbnN0IFJlZkNvdW50
ZWRBcnJheTxMU2VjdGlvbldvcmQ+JiBzZWN0aW9uID0gc3RhdGUuaml0Q29kZS0+ZGF0YVNlY3Rp
b25zKClbaV07CiAgICAgICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgICAgICJHZW5lcmF0
ZWQgTExWTSBkYXRhIHNlY3Rpb24gZm9yICIsCi0gICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0
aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkRGR0pJVCksCisgICAg
ICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ss
IEpJVENvZGU6OkZUTEpJVCksCiAgICAgICAgICAgICAgICAgIiAjIiwgaSwgIiwgIiwgc3RhdGUu
ZGF0YVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwogICAgICAgICAgICAgZHVtcERhdGFTZWN0aW9u
KHNlY3Rpb24sICIgICAgIik7CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgc3RhdGUuaml0
Q29kZS0+dW53aW5kSW5mby5wYXJzZSgKKyAgICAgICAgc3RhdGUuY29tcGFjdFVud2luZCwgc3Rh
dGUuY29tcGFjdFVud2luZFNpemUsIHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uKTsKKyAgICBpZiAo
REZHOjpzaG91bGRTaG93RGlzYXNzZW1ibHkoKSkKKyAgICAgICAgZGF0YUxvZygiVW53aW5kIGlu
Zm8gZm9yICIsIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBK
SVRDb2RlOjpGVExKSVQpLCAiOlxuICAgICIsIHN0YXRlLmppdENvZGUtPnVud2luZEluZm8sICJc
biIpOworICAgIAogICAgIGlmIChzdGF0ZS5zdGFja21hcHNTZWN0aW9uLnNpemUoKSkgewogICAg
ICAgICBpZiAoc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkpIHsKICAgICAgICAgICAgIGRhdGFMb2co
CiAgICAgICAgICAgICAgICAgIkdlbmVyYXRlZCBMTFZNIHN0YWNrbWFwcyBzZWN0aW9uIGZvciAi
LAotICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29k
ZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLCAiOlxuIik7CisgICAgICAgICAgICAgICAgQ29kZUJs
b2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCks
ICI6XG4iKTsKICAgICAgICAgICAgIGRhdGFMb2coIiAgICBSYXcgZGF0YTpcbiIpOwogICAgICAg
ICAgICAgZHVtcERhdGFTZWN0aW9uKHN0YXRlLnN0YWNrbWFwc1NlY3Rpb24sICIgICAgIik7CiAg
ICAgICAgIH0KQEAgLTQyMSw4ICs1NTgsOSBAQCB2b2lkIGNvbXBpbGUoU3RhdGUmIHN0YXRlKQog
ICAgICAgICAgICAgICAgIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUqIGhhbmRsZSA9IHN0YXRlLmpp
dENvZGUtPmhhbmRsZXMoKVtpXS5nZXQoKTsKICAgICAgICAgICAgICAgICBkYXRhTG9nKAogICAg
ICAgICAgICAgICAgICAgICAiR2VuZXJhdGVkIExMVk0gY29kZSBhZnRlciBzdGFja21hcC1iYXNl
ZCBmaXgtdXAgZm9yICIsCi0gICAgICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBl
KHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLAotICAgICAgICAgICAg
ICAgICAgICAiICMiLCBpLCAiLCAiLCBzdGF0ZS5jb2RlU2VjdGlvbk5hbWVzW2ldLCAiOlxuIik7
CisgICAgICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1f
Y29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLAorICAgICAgICAgICAgICAgICAgICAiIGluICIs
IHN0YXRlLmdyYXBoLm1fcGxhbi5tb2RlLCAiICMiLCBpLCAiLCAiLAorICAgICAgICAgICAgICAg
ICAgICBzdGF0ZS5jb2RlU2VjdGlvbk5hbWVzW2ldLCAiOlxuIik7CiAgICAgICAgICAgICAgICAg
ZGlzYXNzZW1ibGUoCiAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciho
YW5kbGUtPnN0YXJ0KCkpLCBoYW5kbGUtPnNpemVJbkJ5dGVzKCksCiAgICAgICAgICAgICAgICAg
ICAgICIgICAgIiwgV1RGOjpkYXRhRmlsZSgpLCBMTFZNU3Vic2V0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmNwcAppbmRleCBhOTg3YzYwY2U0N2NkOWUxMjk5YjA1
NjY0YzMyZTI1ZGJjZWM2MDBjLi43MjFmNjQzOTM1YzZiYTEwN2RiNzIwYjlkNDE5NjllZWUyNmE1
ZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OSw2
ICs1OSw5IEBAIHZvaWQgRXhpdFZhbHVlOjpkdW1wSW5Db250ZXh0KFByaW50U3RyZWFtJiBvdXQs
IER1bXBDb250ZXh0KiBjb250ZXh0KSBjb25zdAogICAgIGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNr
QXNEb3VibGU6CiAgICAgICAgIG91dC5wcmludCgiSW5KU1N0YWNrQXNEb3VibGU6ciIsIHZpcnR1
YWxSZWdpc3RlcigpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRXhpdFZhbHVlUmVjb3Zl
cnk6CisgICAgICAgIG91dC5wcmludCgiUmVjb3ZlcnkoIiwgcmVjb3ZlcnlPcGNvZGUoKSwgIiwg
YXJnIiwgbGVmdFJlY292ZXJ5QXJndW1lbnQoKSwgIiwgYXJnIiwgcmlnaHRSZWNvdmVyeUFyZ3Vt
ZW50KCksICIsICIsIHJlY292ZXJ5Rm9ybWF0KCksICIpIik7CisgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5oCmluZGV4IDdhYWFlZGQ4ZDFmOTliYTA1Y2VjYjY5
ZTMzNzRhOTNlMTMxODhlZGYuLjgyM2Y4YTQyNDJjMjY2ZjQwNjRiMDI5MjZmZGRhODAxZGEyYmU1
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEs
NyBAQAogI2lmIEVOQUJMRShGVExfSklUKQogCiAjaW5jbHVkZSAiRlRMRXhpdEFyZ3VtZW50Lmgi
CisjaW5jbHVkZSAiRlRMUmVjb3ZlcnlPcGNvZGUuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgi
CiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFt
Lmg+CkBAIC01MSw3ICs1Miw4IEBAIGVudW0gRXhpdFZhbHVlS2luZCB7CiAgICAgRXhpdFZhbHVl
SW5KU1N0YWNrLAogICAgIEV4aXRWYWx1ZUluSlNTdGFja0FzSW50MzIsCiAgICAgRXhpdFZhbHVl
SW5KU1N0YWNrQXNJbnQ1MiwKLSAgICBFeGl0VmFsdWVJbkpTU3RhY2tBc0RvdWJsZQorICAgIEV4
aXRWYWx1ZUluSlNTdGFja0FzRG91YmxlLAorICAgIEV4aXRWYWx1ZVJlY292ZXJ5CiB9OwogCiBj
bGFzcyBFeGl0VmFsdWUgewpAQCAtMTE4LDYgKzEyMCwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogICAgIAorICAgIHN0YXRpYyBFeGl0VmFsdWUgcmVjb3Zlcnko
UmVjb3ZlcnlPcGNvZGUgb3Bjb2RlLCB1bnNpZ25lZCBsZWZ0QXJndW1lbnQsIHVuc2lnbmVkIHJp
Z2h0QXJndW1lbnQsIFZhbHVlRm9ybWF0IGZvcm1hdCkKKyAgICB7CisgICAgICAgIEV4aXRWYWx1
ZSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBFeGl0VmFsdWVSZWNvdmVyeTsKKyAg
ICAgICAgcmVzdWx0LnUucmVjb3Zlcnkub3Bjb2RlID0gb3Bjb2RlOworICAgICAgICByZXN1bHQu
dS5yZWNvdmVyeS5sZWZ0QXJndW1lbnQgPSBsZWZ0QXJndW1lbnQ7CisgICAgICAgIHJlc3VsdC51
LnJlY292ZXJ5LnJpZ2h0QXJndW1lbnQgPSByaWdodEFyZ3VtZW50OworICAgICAgICByZXN1bHQu
dS5yZWNvdmVyeS5mb3JtYXQgPSBmb3JtYXQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
fQorICAgIAogICAgIEV4aXRWYWx1ZUtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsg
fQogICAgIAogICAgIGJvb2wgaXNEZWFkKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IEV4aXRW
YWx1ZURlYWQ7IH0KQEAgLTEzNSw2ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIGJvb2wg
aXNDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBFeGl0VmFsdWVDb25zdGFudDsg
fQogICAgIGJvb2wgaXNBcmd1bWVudCgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBFeGl0VmFs
dWVBcmd1bWVudDsgfQorICAgIGJvb2wgaXNSZWNvdmVyeSgpIGNvbnN0IHsgcmV0dXJuIGtpbmQo
KSA9PSBFeGl0VmFsdWVSZWNvdmVyeTsgfQogICAgIAogICAgIEV4aXRBcmd1bWVudCBleGl0QXJn
dW1lbnQoKSBjb25zdAogICAgIHsKQEAgLTE0Miw2ICsxNTYsMzAgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gRXhpdEFyZ3VtZW50KHUuYXJndW1lbnQpOwogICAgIH0KICAgICAKKyAgICB1bnNp
Z25lZCBsZWZ0UmVjb3ZlcnlBcmd1bWVudCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQo
aXNSZWNvdmVyeSgpKTsKKyAgICAgICAgcmV0dXJuIHUucmVjb3ZlcnkubGVmdEFyZ3VtZW50Owor
ICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCByaWdodFJlY292ZXJ5QXJndW1lbnQoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgQVNTRVJUKGlzUmVjb3ZlcnkoKSk7CisgICAgICAgIHJldHVybiB1LnJl
Y292ZXJ5LnJpZ2h0QXJndW1lbnQ7CisgICAgfQorICAgIAorICAgIFZhbHVlRm9ybWF0IHJlY292
ZXJ5Rm9ybWF0KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc1JlY292ZXJ5KCkpOwor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmFsdWVGb3JtYXQ+KHUucmVjb3ZlcnkuZm9ybWF0
KTsKKyAgICB9CisgICAgCisgICAgUmVjb3ZlcnlPcGNvZGUgcmVjb3ZlcnlPcGNvZGUoKSBjb25z
dAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzUmVjb3ZlcnkoKSk7CisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZWNvdmVyeU9wY29kZT4odS5yZWNvdmVyeS5vcGNvZGUpOworICAgIH0KKyAg
ICAKICAgICBKU1ZhbHVlIGNvbnN0YW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChp
c0NvbnN0YW50KCkpOwpAQCAtMTUzLDYgKzE5MSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VS
VChpc0luSlNTdGFja1NvbWVob3coKSk7CiAgICAgICAgIHJldHVybiBWaXJ0dWFsUmVnaXN0ZXIo
dS52aXJ0dWFsUmVnaXN0ZXIpOwogICAgIH0KKyAgICAKKyAgICBFeGl0VmFsdWUgd2l0aFZpcnR1
YWxSZWdpc3RlcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyKQorICAgIHsKKyAgICAg
ICAgQVNTRVJUKGlzSW5KU1N0YWNrU29tZWhvdygpKTsKKyAgICAgICAgRXhpdFZhbHVlIHJlc3Vs
dDsKKyAgICAgICAgcmVzdWx0Lm1fa2luZCA9IG1fa2luZDsKKyAgICAgICAgcmVzdWx0LnUudmly
dHVhbFJlZ2lzdGVyID0gdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KIAogICAgIC8vIElmIGl0J3MgaW4gdGhlIEpTU3RhY2sgc29tZWhvdywg
dGhpcyB3aWxsIHRlbGwgeW91IHdoYXQgZm9ybWF0IGl0J3MgaW4sIGluIGEgbWFubmVyCiAgICAg
Ly8gdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggZXhpdEFyZ3VtZW50KCkuZm9ybWF0KCkuIElmIGl0
J3MgYSBjb25zdGFudCBvciBpdCdzIGRlYWQsIGl0CkBAIC0xODEsNiArMjI4LDkgQEAgcHVibGlj
OgogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGU6
CiAgICAgICAgICAgICByZXR1cm4gVmFsdWVGb3JtYXREb3VibGU7CisgICAgICAgICAgICAKKyAg
ICAgICAgY2FzZSBFeGl0VmFsdWVSZWNvdmVyeToKKyAgICAgICAgICAgIHJldHVybiByZWNvdmVy
eUZvcm1hdCgpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpAQCAtMTk2LDYgKzI0NiwxMiBAQCBwcml2YXRlOgogICAgICAgICBFeGl0
QXJndW1lbnRSZXByZXNlbnRhdGlvbiBhcmd1bWVudDsKICAgICAgICAgRW5jb2RlZEpTVmFsdWUg
Y29uc3RhbnQ7CiAgICAgICAgIGludCB2aXJ0dWFsUmVnaXN0ZXI7CisgICAgICAgIHN0cnVjdCB7
CisgICAgICAgICAgICB1aW50MTZfdCBsZWZ0QXJndW1lbnQ7CisgICAgICAgICAgICB1aW50MTZf
dCByaWdodEFyZ3VtZW50OworICAgICAgICAgICAgdWludDE2X3Qgb3Bjb2RlOworICAgICAgICAg
ICAgdWludDE2X3QgZm9ybWF0OworICAgICAgICB9IHJlY292ZXJ5OwogICAgIH0gdTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXpl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcApp
bmRleCA4MmQ0YmU1NmE3YjM3YWM4YTVhYjA0ZjQ2YzZiMWJjNTMyMGMxMzA3Li5hYjgyNTYxMjc3
OTM0YjIxZmUwN2Q1ZjIzNGRlMzYyM2M1OGQxMWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCkBAIC00Nyw2ICs0NywxMSBAQCBzaXpl
X3Qgc2l6ZU9mUHV0QnlJZCgpCiAgICAgcmV0dXJuIDMyOwogfQogCitzaXplX3Qgc2l6ZU9mQ2Fs
bCgpCit7CisgICAgcmV0dXJuIDQzOworfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAK
ICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTElubGluZUNhY2hlU2l6ZS5oCmluZGV4IGFhYzBmM2U5MzdiMGFlNmVkMTI4MjI5ZDI0Yjk3
ZGQwM2Q4MWZlMDEuLjdjN2MxODk3MjVlNGNhYzc0YzcxYzZjOGI0Mjc5ZTJiMDNlNzUyODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaApAQCAt
MzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIHNpemVfdCBz
aXplT2ZHZXRCeUlkKCk7CiBzaXplX3Qgc2l6ZU9mUHV0QnlJZCgpOworc2l6ZV90IHNpemVPZkNh
bGwoKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCmluZGV4IDdmNTYwZGQ5NWE1
ZmJlYWNiMmI2NTVmYmY3MTVlZGNkYzhmMmFhZTQuLmM1MGQ5NGI3MTJhNGNiZjc0Yjk3OTU0YTA5
MTM5NjA3MTY1MTBiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW50cmluc2ljUmVwb3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW50cmluc2ljUmVwb3NpdG9yeS5oCkBAIC00MCwxNyArNDAsMjUgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKGFkZFdpdGhPdmVyZmxvdzMyLCAibGx2bS5zYWRk
LndpdGgub3ZlcmZsb3cuaTMyIiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBp
bnQzMiwgYm9vbGVhbiksIGludDMyLCBpbnQzMikpIFwKICAgICBtYWNybyhhZGRXaXRoT3ZlcmZs
b3c2NCwgImxsdm0uc2FkZC53aXRoLm92ZXJmbG93Lmk2NCIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RU
eXBlKG1fY29udGV4dCwgaW50NjQsIGJvb2xlYW4pLCBpbnQ2NCwgaW50NjQpKSBcCiAgICAgbWFj
cm8oZG91YmxlQWJzLCAibGx2bS5mYWJzLmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVUeXBlLCBk
b3VibGVUeXBlKSkgXAorICAgIG1hY3JvKGRvdWJsZVNpbiwgImxsdm0uc2luLmY2NCIsIGZ1bmN0
aW9uVHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkgXAorICAgIG1hY3JvKGRvdWJsZUNvcywg
Imxsdm0uY29zLmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkgXAor
ICAgIG1hY3JvKGRvdWJsZVNxcnQsICJsbHZtLnNxcnQuZjY0IiwgZnVuY3Rpb25UeXBlKGRvdWJs
ZVR5cGUsIGRvdWJsZVR5cGUpKSBcCisgICAgbWFjcm8oZnJhbWVBZGRyZXNzLCAibGx2bS5mcmFt
ZWFkZHJlc3MiLCBmdW5jdGlvblR5cGUocG9pbnRlclR5cGUoaW50OCksIGludDMyKSkgXAogICAg
IG1hY3JvKG11bFdpdGhPdmVyZmxvdzMyLCAibGx2bS5zbXVsLndpdGgub3ZlcmZsb3cuaTMyIiwg
ZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBpbnQzMiwgYm9vbGVhbiksIGludDMy
LCBpbnQzMikpIFwKICAgICBtYWNybyhtdWxXaXRoT3ZlcmZsb3c2NCwgImxsdm0uc211bC53aXRo
Lm92ZXJmbG93Lmk2NCIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50NjQs
IGJvb2xlYW4pLCBpbnQ2NCwgaW50NjQpKSBcCi0gICAgbWFjcm8ocGF0Y2hwb2ludEludDY0LCAi
bGx2bS5leHBlcmltZW50YWwucGF0Y2hwb2ludC5pNjQiLCBmdW5jdGlvblR5cGUoaW50NjQsIGlu
dDMyLCBpbnQzMiwgcmVmOCwgaW50MzIsIFZhcmlhZGljKSkgXAotICAgIG1hY3JvKHBhdGNocG9p
bnRWb2lkLCAibGx2bS5leHBlcmltZW50YWwucGF0Y2hwb2ludC52b2lkIiwgZnVuY3Rpb25UeXBl
KHZvaWRUeXBlLCBpbnQzMiwgaW50MzIsIHJlZjgsIGludDMyLCBWYXJpYWRpYykpIFwKLSAgICBt
YWNybyhzdGFja21hcCwgImxsdm0uZXhwZXJpbWVudGFsLnN0YWNrbWFwIiwgZnVuY3Rpb25UeXBl
KHZvaWRUeXBlLCBpbnQzMiwgaW50MzIsIFZhcmlhZGljKSkgXAorICAgIG1hY3JvKHBhdGNocG9p
bnRJbnQ2NCwgImxsdm0uZXhwZXJpbWVudGFsLnBhdGNocG9pbnQuaTY0IiwgZnVuY3Rpb25UeXBl
KGludDY0LCBpbnQ2NCwgaW50MzIsIHJlZjgsIGludDMyLCBWYXJpYWRpYykpIFwKKyAgICBtYWNy
byhwYXRjaHBvaW50Vm9pZCwgImxsdm0uZXhwZXJpbWVudGFsLnBhdGNocG9pbnQudm9pZCIsIGZ1
bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50NjQsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFkaWMp
KSBcCisgICAgbWFjcm8oc3RhY2ttYXAsICJsbHZtLmV4cGVyaW1lbnRhbC5zdGFja21hcCIsIGZ1
bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50NjQsIGludDMyLCBWYXJpYWRpYykpIFwKICAgICBtYWNy
byhzdWJXaXRoT3ZlcmZsb3czMiwgImxsdm0uc3N1Yi53aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0
aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50
MzIpKSBcCiAgICAgbWFjcm8oc3ViV2l0aE92ZXJmbG93NjQsICJsbHZtLnNzdWIud2l0aC5vdmVy
Zmxvdy5pNjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDY0LCBib29s
ZWFuKSwgaW50NjQsIGludDY0KSkgXAogICAgIG1hY3JvKHRyYXAsICJsbHZtLnRyYXAiLCBmdW5j
dGlvblR5cGUodm9pZFR5cGUpKSBcCiAgICAgbWFjcm8oeDg2U1NFMkN2dFRTRDJTSSwgImxsdm0u
eDg2LnNzZTIuY3Z0dHNkMnNpIiwgZnVuY3Rpb25UeXBlKGludDMyLCB2ZWN0b3JUeXBlKGRvdWJs
ZVR5cGUsIDIpKSkKIAogI2RlZmluZSBGT1JfRUFDSF9GVU5DVElPTl9UWVBFKG1hY3JvKSBcCisg
ICAgbWFjcm8oQ19KSVRPcGVyYXRpb25fRUMsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwg
aW50UHRyKSkgXAorICAgIG1hY3JvKENfSklUT3BlcmF0aW9uX0VKLCBmdW5jdGlvblR5cGUoaW50
UHRyLCBpbnRQdHIsIGludDY0KSkgXAorICAgIG1hY3JvKENfSklUT3BlcmF0aW9uX0VKc3NKc3Ms
IGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCisgICAgbWFj
cm8oQ19KSVRPcGVyYXRpb25fRUpzc0pzc0pzcywgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50UHRy
LCBpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAogICAgIG1hY3JvKENfSklUT3BlcmF0aW9uX0VT
dCwgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oSV9K
SVRPcGVyYXRpb25fRUpzcywgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBc
CiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRSwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIp
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmNwcAppbmRleCBjZGM3ZGUw
YzM1ZjM0OTRlYTVlYWY5ZTRjZThkYWRiMmEzZGYwYzBjLi5lZGJiYjMxNWEyYTA3ZWE5ZGQ3NTg1
ZTRlNGM5ZDJjZjVkZmRmYTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEpJVENvZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29k
ZS5jcHAKQEAgLTU0LDI3ICs1NCwzNSBAQCB2b2lkIEpJVENvZGU6OmFkZERhdGFTZWN0aW9uKFJl
ZkNvdW50ZWRBcnJheTxMU2VjdGlvbldvcmQ+IGRhdGFTZWN0aW9uKQogICAgIG1fZGF0YVNlY3Rp
b25zLmFwcGVuZChkYXRhU2VjdGlvbik7CiB9CiAKLXZvaWQgSklUQ29kZTo6aW5pdGlhbGl6ZUNv
ZGUoQ29kZVJlZiBlbnRyeXBvaW50KQordm9pZCBKSVRDb2RlOjppbml0aWFsaXplQXJpdHlDaGVj
a0VudHJ5cG9pbnQoQ29kZVJlZiBlbnRyeXBvaW50KQogewotICAgIG1fZW50cnlwb2ludCA9IGVu
dHJ5cG9pbnQ7CisgICAgbV9hcml0eUNoZWNrRW50cnlwb2ludCA9IGVudHJ5cG9pbnQ7CiB9CiAK
LUpJVENvZGU6OkNvZGVQdHIgSklUQ29kZTo6YWRkcmVzc0ZvckNhbGwoKQordm9pZCBKSVRDb2Rl
Ojppbml0aWFsaXplQWRkcmVzc0ZvckNhbGwoQ29kZVB0ciBhZGRyZXNzKQogewotICAgIFJFTEVB
U0VfQVNTRVJUKG1fZW50cnlwb2ludCk7Ci0gICAgcmV0dXJuIG1fZW50cnlwb2ludC5jb2RlKCk7
CisgICAgbV9hZGRyZXNzRm9yQ2FsbCA9IGFkZHJlc3M7Cit9CisKK0pJVENvZGU6OkNvZGVQdHIg
SklUQ29kZTo6YWRkcmVzc0ZvckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tN
b2RlIGFyaXR5Q2hlY2ssIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkKK3sKKyAgICBzd2l0Y2gg
KGFyaXR5Q2hlY2spIHsKKyAgICBjYXNlIEFyaXR5Q2hlY2tOb3RSZXF1aXJlZDoKKyAgICAgICAg
cmV0dXJuIG1fYWRkcmVzc0ZvckNhbGw7CisgICAgY2FzZSBNdXN0Q2hlY2tBcml0eToKKyAgICAg
ICAgcmV0dXJuIG1fYXJpdHlDaGVja0VudHJ5cG9pbnQuY29kZSgpOworICAgIH0KKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBDb2RlUHRyKCk7CiB9CiAKIHZv
aWQqIEpJVENvZGU6OmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkKIHsK
LSAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQpOwotICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGNoYXIqPihtX2VudHJ5cG9pbnQuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpICsg
b2Zmc2V0OworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2FkZHJlc3NGb3JD
YWxsLmV4ZWN1dGFibGVBZGRyZXNzKCkpICsgb2Zmc2V0OwogfQogCiB2b2lkKiBKSVRDb2RlOjpk
YXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5
cG9pbnQpOwotCiAgICAgLy8gV2UgY2FuJ3QgcGF0Y2ggRlRMIGNvZGUsIHlldC4gRXZlbiBpZiB3
ZSBkaWQsIGl0J3Mgbm90IGNsZWFyIHRoYXQgd2Ugd291bGQgZG8gc28KICAgICAvLyB0aHJvdWdo
IHRoaXMgQVBJLgogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04Myw4ICs5
MSw2IEBAIHZvaWQqIEpJVENvZGU6OmRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90KQogCiB1bnNp
Z25lZCBKSVRDb2RlOjpvZmZzZXRPZih2b2lkKikKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2Vu
dHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgY3VycmVudGx5IGRvbid0IGhhdmUgdmlzaWJpbGl0eSBp
bnRvIHRoZSBGVEwgY29kZS4KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IHJldHVybiAwOwpAQCAtOTIsOCArOTgsNiBAQCB1bnNpZ25lZCBKSVRDb2RlOjpvZmZzZXRPZih2
b2lkKikKIAogc2l6ZV90IEpJVENvZGU6OnNpemUoKQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1f
ZW50cnlwb2ludCk7Ci0KICAgICAvLyBXZSBkb24ndCBrbm93IHRoZSBzaXplIG9mIEZUTCBjb2Rl
LCB5ZXQuIE1ha2UgYSB3aWxkIGd1ZXNzLiBUaGlzIGlzIG1vc3RseSB1c2VkIGZvcgogICAgIC8v
IEdDIGxvYWQgZXN0aW1hdGVzLgogICAgIHJldHVybiAxMDAwOwpAQCAtMTAxLDggKzEwNSw2IEBA
IHNpemVfdCBKSVRDb2RlOjpzaXplKCkKIAogYm9vbCBKSVRDb2RlOjpjb250YWlucyh2b2lkKikK
IHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgaGF2ZSBu
byBpZGVhIHdoYXQgYWRkcmVzc2VzIHRoZSBGVEwgY29kZSBjb250YWlucywgeWV0LgogICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaAppbmRleCAzZTcyMTM5ODNiODU1NDMzYzAyOTgyYTNj
MGM1YmMwNjNiMzUwMjIxLi43MTMwNDAwYjY1NTUyNzUzMDUxYjhmNmQxNGEwZWI3YWFkMTQ5ZWI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaApAQCAtMzMsNiArMzMsNyBA
QAogI2luY2x1ZGUgIkRGR0NvbW1vbkRhdGEuaCIKICNpbmNsdWRlICJGVExPU1JFeGl0LmgiCiAj
aW5jbHVkZSAiRlRMU3RhY2tNYXBzLmgiCisjaW5jbHVkZSAiRlRMVW53aW5kSW5mby5oIgogI2lu
Y2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJMTFZNQVBJLmgiCiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWRBcnJheS5oPgpAQCAtNDYsMTcgKzQ3LDE4IEBAIHB1YmxpYzoKICAgICBKSVRDb2Rl
KCk7CiAgICAgfkpJVENvZGUoKTsKICAgICAKLSAgICBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKCk7
Ci0gICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KTsKLSAg
ICB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpOwotICAgIHVuc2lnbmVk
IG9mZnNldE9mKHZvaWQqIHBvaW50ZXJJbnRvQ29kZSk7Ci0gICAgc2l6ZV90IHNpemUoKTsKLSAg
ICBib29sIGNvbnRhaW5zKHZvaWQqKTsKKyAgICBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKFZNJiwg
RXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9kZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2Rl
KSBvdmVycmlkZTsKKyAgICB2b2lkKiBleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBv
ZmZzZXQpIG92ZXJyaWRlOworICAgIHZvaWQqIGRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9m
ZnNldCkgb3ZlcnJpZGU7CisgICAgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCogcG9pbnRlckludG9D
b2RlKSBvdmVycmlkZTsKKyAgICBzaXplX3Qgc2l6ZSgpIG92ZXJyaWRlOworICAgIGJvb2wgY29u
dGFpbnModm9pZCopIG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgaW5pdGlhbGl6ZUV4aXRUaHVu
a3MoQ29kZVJlZik7CiAgICAgdm9pZCBhZGRIYW5kbGUoUGFzc1JlZlB0cjxFeGVjdXRhYmxlTWVt
b3J5SGFuZGxlPik7CiAgICAgdm9pZCBhZGREYXRhU2VjdGlvbihSZWZDb3VudGVkQXJyYXk8TFNl
Y3Rpb25Xb3JkPik7Ci0gICAgdm9pZCBpbml0aWFsaXplQ29kZShDb2RlUmVmIGVudHJ5cG9pbnQp
OworICAgIHZvaWQgaW5pdGlhbGl6ZUFyaXR5Q2hlY2tFbnRyeXBvaW50KENvZGVSZWYpOworICAg
IHZvaWQgaW5pdGlhbGl6ZUFkZHJlc3NGb3JDYWxsKENvZGVQdHIpOwogICAgIAogICAgIGNvbnN0
IFZlY3RvcjxSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4+JiBoYW5kbGVzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYW5kbGVzOyB9CiAgICAgY29uc3QgVmVjdG9yPFJlZkNvdW50ZWRBcnJheTxM
U2VjdGlvbldvcmQ+PiYgZGF0YVNlY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhU2VjdGlv
bnM7IH0KQEAgLTY5LDExICs3MSwxMyBAQCBwdWJsaWM6CiAgICAgREZHOjpDb21tb25EYXRhIGNv
bW1vbjsKICAgICBTZWdtZW50ZWRWZWN0b3I8T1NSRXhpdCwgOD4gb3NyRXhpdDsKICAgICBTdGFj
a01hcHMgc3RhY2ttYXBzOworICAgIFVud2luZEluZm8gdW53aW5kSW5mbzsKICAgICAKIHByaXZh
dGU6CiAgICAgVmVjdG9yPFJlZkNvdW50ZWRBcnJheTxMU2VjdGlvbldvcmQ+PiBtX2RhdGFTZWN0
aW9uczsKICAgICBWZWN0b3I8UmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+PiBtX2hhbmRs
ZXM7Ci0gICAgQ29kZVJlZiBtX2VudHJ5cG9pbnQ7CisgICAgQ29kZVB0ciBtX2FkZHJlc3NGb3JD
YWxsOworICAgIENvZGVSZWYgbV9hcml0eUNoZWNrRW50cnlwb2ludDsKICAgICBDb2RlUmVmIG1f
ZXhpdFRodW5rczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSklURmluYWxpemVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmlu
YWxpemVyLmNwcAppbmRleCBhOGE5OWI2M2EzNjQzZDYwMTc3NmE2ODc2YTVlMGZlMjM5OWRhM2Y0
Li41MGQ1ZWUyODNhYzM1ZWZhYzMwZmIwODA5MjlkOWNlMWI2OWU4NjI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw2ICs0NSwyMiBAQCBK
SVRGaW5hbGl6ZXI6On5KSVRGaW5hbGl6ZXIoKQogewogfQogCitzaXplX3QgSklURmluYWxpemVy
Ojpjb2RlU2l6ZSgpCit7CisgICAgc2l6ZV90IHJlc3VsdCA9IDA7CisgICAgCisgICAgcmVzdWx0
ICs9IGV4aXRUaHVua3NMaW5rQnVmZmVyLT5zaXplKCk7CisgICAgcmVzdWx0ICs9IGVudHJ5cG9p
bnRMaW5rQnVmZmVyLT5zaXplKCk7CisgICAgaWYgKHNpZGVDb2RlTGlua0J1ZmZlcikKKyAgICAg
ICAgcmVzdWx0ICs9IHNpZGVDb2RlTGlua0J1ZmZlci0+c2l6ZSgpOworICAgIHJlc3VsdCArPSBo
YW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+c2l6ZSgpOworICAgIAorICAgIGZvciAodW5zaWdu
ZWQgaSA9IGppdENvZGUtPmhhbmRsZXMoKS5zaXplKCk7IGktLTspCisgICAgICAgIHJlc3VsdCAr
PSBqaXRDb2RlLT5oYW5kbGVzKClbaV0tPnNpemVJbkJ5dGVzKCk7CisgICAgCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKwogYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplKCkKIHsKICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNzMsOSArODksNyBAQCBib29sIEpJVEZpbmFs
aXplcjo6ZmluYWxpemVGdW5jdGlvbigpCiAgICAgICAgICAgICBleGl0VGh1bmtzTGlua0J1ZmZl
ci0+bGluaygKICAgICAgICAgICAgICAgICBpbmZvLm1fdGh1bmtKdW1wLAogICAgICAgICAgICAg
ICAgIENvZGVMb2NhdGlvbkxhYmVsKAotICAgICAgICAgICAgICAgICAgICBtX3BsYW4udm0uZnRs
VGh1bmtzLT5nZXRPU1JFeGl0R2VuZXJhdGlvblRodW5rKAotICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wbGFuLnZtLCBMb2NhdGlvbjo6Zm9yU3RhY2ttYXBzKAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZqaXRDb2RlLT5zdGFja21hcHMsIGl0ZXItPnZhbHVlLmxvY2F0aW9uc1swXSkp
LmNvZGUoKSkpOworICAgICAgICAgICAgICAgICAgICBtX3BsYW4udm0uZ2V0Q1RJU3R1Yihvc3JF
eGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKS5jb2RlKCkpKTsKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgaml0Q29kZS0+aW5pdGlhbGl6ZUV4aXRUaHVua3MoCkBAIC0xMDIsMTUgKzEx
NiwyNiBAQCBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5jdGlvbigpCiAgICAgICAgICAg
ICAuZXhlY3V0YWJsZU1lbW9yeSgpKTsKICAgICB9CiAgICAgCisgICAgaWYgKGhhbmRsZUV4Y2Vw
dGlvbnNMaW5rQnVmZmVyKSB7CisgICAgICAgIGppdENvZGUtPmFkZEhhbmRsZShGSU5BTElaRV9E
RkdfQ09ERSgKKyAgICAgICAgICAgICpoYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlciwKKyAgICAg
ICAgICAgICgiRlRMIGV4Y2VwdGlvbiBoYW5kbGVyIGZvciAlcyIsCisgICAgICAgICAgICAgICAg
dG9DU3RyaW5nKENvZGVCbG9ja1dpdGhKSVRUeXBlKG1fcGxhbi5jb2RlQmxvY2suZ2V0KCksIEpJ
VENvZGU6OkZUTEpJVCkpLmRhdGEoKSkpCisgICAgICAgICAgICAuZXhlY3V0YWJsZU1lbW9yeSgp
KTsKKyAgICB9CisgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHdpdGhBcml0eUNoZWNr
OwogICAgIGlmIChhcml0eUNoZWNrLmlzU2V0KCkpCiAgICAgICAgIHdpdGhBcml0eUNoZWNrID0g
ZW50cnlwb2ludExpbmtCdWZmZXItPmxvY2F0aW9uT2YoYXJpdHlDaGVjayk7Ci0gICAgaml0Q29k
ZS0+aW5pdGlhbGl6ZUNvZGUoCisgICAgaml0Q29kZS0+aW5pdGlhbGl6ZUFyaXR5Q2hlY2tFbnRy
eXBvaW50KAogICAgICAgICBGSU5BTElaRV9ERkdfQ09ERSgKICAgICAgICAgICAgICplbnRyeXBv
aW50TGlua0J1ZmZlciwKICAgICAgICAgICAgICgiRlRMIGVudHJ5cG9pbnQgdGh1bmsgZm9yICVz
IHdpdGggTExWTSBnZW5lcmF0ZWQgY29kZSBhdCAlcCIsIHRvQ1N0cmluZyhDb2RlQmxvY2tXaXRo
SklUVHlwZShtX3BsYW4uY29kZUJsb2NrLmdldCgpLCBKSVRDb2RlOjpGVExKSVQpKS5kYXRhKCks
IGZ1bmN0aW9uKSkpOwogICAgIAotICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUoaml0
Q29kZSwgd2l0aEFyaXR5Q2hlY2spOworICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUo
aml0Q29kZSk7CisgICAgCisgICAgaWYgKG1fcGxhbi5jb21waWxhdGlvbikKKyAgICAgICAgbV9w
bGFuLnZtLm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+YWRkQ29tcGlsYXRpb24obV9wbGFuLmNvbXBp
bGF0aW9uKTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCmluZGV4IGE3ZWNkOTQ4NjA1MmFkZTAwZjA0MDVkOTBk
MzAyMzIwNWM1NGJjMzguLmJhNDQ1MWVkOTA3NzVjNzVkNDVkOGM4MTU2ZDFkYWFlZmFiMzAyNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaApAQCAtNDYs
MTIgKzQ2LDE0IEBAIHB1YmxpYzoKICAgICBKSVRGaW5hbGl6ZXIoREZHOjpQbGFuJik7CiAgICAg
dmlydHVhbCB+SklURmluYWxpemVyKCk7CiAgICAgCi0gICAgYm9vbCBmaW5hbGl6ZSgpOwotICAg
IGJvb2wgZmluYWxpemVGdW5jdGlvbigpOworICAgIHNpemVfdCBjb2RlU2l6ZSgpIG92ZXJyaWRl
OworICAgIGJvb2wgZmluYWxpemUoKSBvdmVycmlkZTsKKyAgICBib29sIGZpbmFsaXplRnVuY3Rp
b24oKSBvdmVycmlkZTsKIAogICAgIE93blB0cjxMaW5rQnVmZmVyPiBleGl0VGh1bmtzTGlua0J1
ZmZlcjsKICAgICBPd25QdHI8TGlua0J1ZmZlcj4gZW50cnlwb2ludExpbmtCdWZmZXI7CiAgICAg
T3duUHRyPExpbmtCdWZmZXI+IHNpZGVDb2RlTGlua0J1ZmZlcjsKKyAgICBPd25QdHI8TGlua0J1
ZmZlcj4gaGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXI7CiAgICAgVmVjdG9yPFNsb3dQYXRoQ2Fs
bD4gc2xvd1BhdGhDYWxsczsgLy8gQ2FsbHMgaW5zaWRlIHRoZSBzaWRlIGNvZGUuCiAgICAgVmVj
dG9yPE9TUkV4aXRDb21waWxhdGlvbkluZm8+IG9zckV4aXQ7CiAgICAgTWFjcm9Bc3NlbWJsZXI6
OkxhYmVsIGFyaXR5Q2hlY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEpTQ2FsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWVhMGIzZTY2ZDhmZDAzYWNhNDM3MzU0M2Q5OGMwNjMzNDJmN2VlZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmNwcApA
QCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExKU0NhbGwuaCIKKworI2lm
IEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiREZHTm9kZS5oIgorCituYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEZUTCB7CisKK0pTQ2FsbDo6SlNDYWxsKHVuc2lnbmVkIHN0YWNrbWFwSUQs
IERGRzo6Tm9kZSogbm9kZSkKKyAgICA6IG1fc3RhY2ttYXBJRChzdGFja21hcElEKQorICAgICwg
bV9ub2RlKG5vZGUpCisgICAgLCBtX2luc3RydWN0aW9uT2Zmc2V0KDApCit7Cit9CisKK3ZvaWQg
SlNDYWxsOjplbWl0KENDYWxsSGVscGVycyYgaml0KQoreworICAgIENDYWxsSGVscGVyczo6SnVt
cCBzbG93UGF0aCA9IGppdC5icmFuY2hQdHJXaXRoUGF0Y2goCisgICAgICAgIENDYWxsSGVscGVy
czo6Tm90RXF1YWwsIEdQUkluZm86OnJlZ1QwLCBtX3RhcmdldFRvQ2hlY2ssCisgICAgICAgIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigwKSk7CisgICAgCisgICAgaml0LmxvYWRQdHIoCisg
ICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNGdW5jdGlvbjo6
b2Zmc2V0T2ZTY29wZUNoYWluKCkpLAorICAgICAgICBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0
LnN0b3JlNjQoCisgICAgICAgIEdQUkluZm86OnJlZ1QxLAorICAgICAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LAorICAgICAgICAgICAgc2l6ZW9mKFJlZ2lzdGVyKSAqIChKU1N0YWNrOjpTY29wZUNoYWluIC0g
SlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpKSk7CisgICAgCisgICAgbV9mYXN0Q2FsbCA9
IGppdC5uZWFyQ2FsbCgpOworICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAo
KTsKKyAgICAKKyAgICBzbG93UGF0aC5saW5rKCZqaXQpOworICAgIG1fc2xvd0NhbGwgPSBqaXQu
bmVhckNhbGwoKTsKKyAgICAKKyAgICBkb25lLmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgSlNDYWxs
OjpsaW5rKFZNJiB2bSwgTGlua0J1ZmZlciYgbGlua0J1ZmZlciwgQ2FsbExpbmtJbmZvJiBjYWxs
SW5mbykKK3sKKyAgICBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IgPSBsaW5rVGh1bmtHZW5lcmF0
b3JGb3IoCisgICAgICAgIG1fbm9kZS0+b3AoKSA9PSBERkc6OkNvbnN0cnVjdCA/IENvZGVGb3JD
b25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwKKyAgICAgICAgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsK
KyAgICAKKyAgICBsaW5rQnVmZmVyLmxpbmsoCisgICAgICAgIG1fc2xvd0NhbGwsIEZ1bmN0aW9u
UHRyKHZtLmdldENUSVN0dWIoZ2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkp
OworICAgIAorICAgIGNhbGxJbmZvLmlzRlRMID0gdHJ1ZTsKKyAgICBjYWxsSW5mby5jYWxsVHlw
ZSA9IG1fbm9kZS0+b3AoKSA9PSBERkc6OkNvbnN0cnVjdCA/IENhbGxMaW5rSW5mbzo6Q29uc3Ry
dWN0IDogQ2FsbExpbmtJbmZvOjpDYWxsOworICAgIGNhbGxJbmZvLmNvZGVPcmlnaW4gPSBtX25v
ZGUtPmNvZGVPcmlnaW47CisgICAgY2FsbEluZm8uY2FsbFJldHVybkxvY2F0aW9uID0gbGlua0J1
ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9zbG93Q2FsbCk7CisgICAgY2FsbEluZm8uaG90UGF0
aEJlZ2luID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mKG1fdGFyZ2V0VG9DaGVjayk7CisgICAgY2Fs
bEluZm8uaG90UGF0aE90aGVyID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9mYXN0
Q2FsbCk7CisgICAgY2FsbEluZm8uY2FsbGVlR1BSID0gR1BSSW5mbzo6cmVnVDA7Cit9CisKK30g
fSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTE3ZjhiMjYxZTA2
YTc3NzU3M2ViMTUyMzUzMTU1YmYzOGExYjY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRlRMSlNDYWxsX2gK
KyNkZWZpbmUgRlRMSlNDYWxsX2gKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAi
Q0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiQ2FsbExpbmtJbmZvLmgiCisjaW5jbHVkZSAiQ29k
ZU9yaWdpbi5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKworbmFtZXNwYWNlIEpTQyB7CisK
K25hbWVzcGFjZSBERkcgeworc3RydWN0IE5vZGU7Cit9CisKK25hbWVzcGFjZSBGVEwgeworCitj
bGFzcyBKU0NhbGwgeworcHVibGljOgorICAgIEpTQ2FsbCh1bnNpZ25lZCBzdGFja21hcElELCBE
Rkc6Ok5vZGUqKTsKKyAgICAKKyAgICB2b2lkIGVtaXQoQ0NhbGxIZWxwZXJzJik7CisgICAgdm9p
ZCBsaW5rKFZNJiwgTGlua0J1ZmZlciYsIENhbGxMaW5rSW5mbyYpOworICAgIAorICAgIHVuc2ln
bmVkIHN0YWNrbWFwSUQoKSBjb25zdCB7IHJldHVybiBtX3N0YWNrbWFwSUQ7IH0KKyAgICAKKyAg
ICBib29sIG9wZXJhdG9yPChjb25zdCBKU0NhbGwmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1faW5zdHJ1Y3Rpb25PZmZzZXQgPCBvdGhlci5tX2luc3RydWN0aW9uT2Zmc2V0
OworICAgIH0KKyAgICAKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV9zdGFja21hcElEOworICAg
IERGRzo6Tm9kZSogbV9ub2RlOworICAgIENDYWxsSGVscGVyczo6RGF0YUxhYmVsUHRyIG1fdGFy
Z2V0VG9DaGVjazsKKyAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgbV9mYXN0Q2FsbDsKKyAgICBDQ2Fs
bEhlbHBlcnM6OkNhbGwgbV9zbG93Q2FsbDsKKworcHVibGljOgorICAgIHVpbnQzMl90IG1faW5z
dHJ1Y3Rpb25PZmZzZXQ7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRp
ZiAvLyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTEpTQ2FsbF9oCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCmluZGV4IDg1MDUwZDE1MTE1MGE5Njg4ODgxYjMyOWZh
ZmUwMDY4MGI2ZjQ3NWQuLjg4MDM5MWFhMTRkNzYxNTcwYWVhNWQyMTI4ODc3MTE1NjdiNTAyODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBAQAogCiAj
aWYgRU5BQkxFKEZUTF9KSVQpCiAKKyNpbmNsdWRlICJBcml0eUNoZWNrRmFpbFJldHVyblRodW5r
cy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklUVHlwZS5oIgpAQCAtMzcsMTIxICszOCwx
NTAgQEAKICNpbmNsdWRlICJKSVRTdHVicy5oIgogI2luY2x1ZGUgIkxMVk1BUEkuaCIKICNpbmNs
dWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxhdGlvbi5oIgogI2lu
Y2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZU
TCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBERkc7CiAKLXN0YXRpYyB2b2lkIGNvbXBpbGVFbnRyeShD
Q2FsbEhlbHBlcnMmIGppdCkKLXsKLSAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJD
YWxsKEdQUkluZm86OnJlZ1QyKTsKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVI
ZWFkZXIoR1BSSW5mbzo6cmVnVDIpOwotICAgIGppdC5lbWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJh
bWVIZWFkZXIoaml0LmNvZGVCbG9jaygpLCBKU1N0YWNrOjpDb2RlQmxvY2spOwotfQotCiB2b2lk
IGxpbmsoU3RhdGUmIHN0YXRlKQogewotICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gc3RhdGUu
Z3JhcGgubV9jb2RlQmxvY2s7CisgICAgR3JhcGgmIGdyYXBoID0gc3RhdGUuZ3JhcGg7CisgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSBncmFwaC5tX2NvZGVCbG9jazsKKyAgICBWTSYgdm0gPSBn
cmFwaC5tX3ZtOwogICAgIAogICAgIC8vIExMVk0gd2lsbCBjcmVhdGUgaXRzIG93biBqdW1wIHRh
YmxlcyBhcyBuZWVkZWQuCiAgICAgY29kZUJsb2NrLT5jbGVhclN3aXRjaEp1bXBUYWJsZXMoKTsK
ICAgICAKLSAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24uZnJhbWVSZWdpc3RlckNvdW50ID0gc3Rh
dGUuZ3JhcGguZnJhbWVSZWdpc3RlckNvdW50KCk7Ci0gICAgc3RhdGUuaml0Q29kZS0+Y29tbW9u
LnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQgPSBzdGF0ZS5ncmFwaC5yZXF1aXJlZFJlZ2lz
dGVyQ291bnRGb3JFeGl0KCk7CisgICAgLy8gRklYTUU6IE5lZWQgdG8ga25vdyB0aGUgcmVhbCBm
cmFtZSByZWdpc3RlciBjb3VudC4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI1NzI3CisgICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmZyYW1lUmVnaXN0
ZXJDb3VudCA9IDEwMDA7CisgICAgCisgICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLnJlcXVpcmVk
UmVnaXN0ZXJDb3VudEZvckV4aXQgPSBncmFwaC5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0
KCk7CiAgICAgCi0gICAgaWYgKCFzdGF0ZS5ncmFwaC5tX2lubGluZUNhbGxGcmFtZXMtPmlzRW1w
dHkoKSkKLSAgICAgICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmlubGluZUNhbGxGcmFtZXMgPSBz
dGQ6Om1vdmUoc3RhdGUuZ3JhcGgubV9pbmxpbmVDYWxsRnJhbWVzKTsKKyAgICBpZiAoIWdyYXBo
Lm1faW5saW5lQ2FsbEZyYW1lcy0+aXNFbXB0eSgpKQorICAgICAgICBzdGF0ZS5qaXRDb2RlLT5j
b21tb24uaW5saW5lQ2FsbEZyYW1lcyA9IHN0ZDo6bW92ZShncmFwaC5tX2lubGluZUNhbGxGcmFt
ZXMpOwogICAgIAogICAgIC8vIENyZWF0ZSB0aGUgZW50cnlwb2ludC4gTm90ZSB0aGF0IHdlIHVz
ZSB0aGlzIGVudHJ5cG9pbnQgdG90YWxseSBkaWZmZXJlbnRseQogICAgIC8vIGRlcGVuZGluZyBv
biB3aGV0aGVyIHdlJ3JlIGRvaW5nIE9TUiBlbnRyeSBvciBub3QuCi0gICAgLy8gRklYTUU6IEV4
Y2VwdCBmb3IgT1NSIGVudHJ5LCB0aGlzIGlzIGEgdG90YWwga2x1ZGdlIC0gTExWTSBzaG91bGQg
anVzdCB1c2Ugb3VyCi0gICAgLy8gY2FsbGluZyBjb252ZW50aW9uLgotICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjEKLSAgICBDQ2FsbEhlbHBlcnMg
aml0KCZzdGF0ZS5ncmFwaC5tX3ZtLCBjb2RlQmxvY2spOworICAgIENDYWxsSGVscGVycyBqaXQo
JnZtLCBjb2RlQmxvY2spOwogICAgIAogICAgIE93blB0cjxMaW5rQnVmZmVyPiBsaW5rQnVmZmVy
OwogICAgIENDYWxsSGVscGVyczo6TGFiZWwgYXJpdHlDaGVjazsKLSAgICBzd2l0Y2ggKHN0YXRl
LmdyYXBoLm1fcGxhbi5tb2RlKSB7Ci0gICAgY2FzZSBGVExNb2RlOiB7Ci0gICAgICAgIGNvbXBp
bGVFbnRyeShqaXQpOworCisgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGZyYW1lID0gQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKAorICAgICAgICBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyLCAtc3RhdGljX2Nhc3Q8aW50MzJfdD4oc2l6ZW9mKHZvaWQqKSkpOwogICAgIAotICAgICAg
ICAvLyBUaGlzIHBhcnQgaXMgb25seSBuZWNlc3NhcnkgZm9yIGZ1bmN0aW9ucy4gV2UgY3VycmVu
dGx5IG9ubHkgY29tcGlsZSBmdW5jdGlvbnMuCisgICAgaWYgKFByb2ZpbGVyOjpDb21waWxhdGlv
biogY29tcGlsYXRpb24gPSBncmFwaC5jb21waWxhdGlvbigpKSB7CisgICAgICAgIGNvbXBpbGF0
aW9uLT5hZGREZXNjcmlwdGlvbigKKyAgICAgICAgICAgIFByb2ZpbGVyOjpPcmlnaW5TdGFjaygp
LAorICAgICAgICAgICAgdG9DU3RyaW5nKCJHZW5lcmF0ZWQgRlRMIEpJVCBjb2RlIGZvciAiLCBD
b2RlQmxvY2tXaXRoSklUVHlwZShjb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCksICIsIGluc3Ry
dWN0aW9uIGNvdW50ID0gIiwgZ3JhcGgubV9jb2RlQmxvY2stPmluc3RydWN0aW9uQ291bnQoKSwg
IjpcbiIpKTsKICAgICAgICAgCi0gICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgZnJvbUFyaXR5
Q2hlY2sgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgZ3JhcGgubV9kb21pbmF0b3JzLmNvbXB1dGVJ
Zk5lY2Vzc2FyeShncmFwaCk7CisgICAgICAgIGdyYXBoLm1fbmF0dXJhbExvb3BzLmNvbXB1dGVJ
Zk5lY2Vzc2FyeShncmFwaCk7CiAgICAgICAgIAotICAgICAgICAvLyBQbGFudCBhIGNoZWNrIHRo
YXQgc3VmZmljaWVudCBzcGFjZSBpcyBhdmFpbGFibGUgaW4gdGhlIEpTU3RhY2suCi0gICAgICAg
IC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyOTEK
LSAgICAgICAgaml0LmFkZFB0cigKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKHN0YXRlLmppdENvZGUtPmNvbW1vbi5yZXF1aXJl
ZFJlZ2lzdGVyQ291bnRGb3JFeGl0KS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLAotICAg
ICAgICAgICAgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsKLSAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHN0YWNrQ2hlY2sgPSBqaXQuYnJhbmNoUHRyKAotICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBYm92ZSwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6
QWJzb2x1dGVBZGRyZXNzKHN0YXRlLmdyYXBoLm1fdm0uYWRkcmVzc09mSlNTdGFja0xpbWl0KCkp
LAotICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICBDQ2FsbEhlbHBlcnM6Okxh
YmVsIGZyb21TdGFja0NoZWNrID0gaml0LmxhYmVsKCk7CisgICAgICAgIGNvbnN0IGNoYXIqIHBy
ZWZpeCA9ICIgICAgIjsKICAgICAgICAgCi0gICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c0V4ZWNT
dGF0ZSgpOwotICAgICAgICBqaXQubW92ZSgKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlv
bikpLAotICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgICAgIGppdC5jYWxs
KEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgICAgICBqaXQuZW1pdEdldFJldHVyblBDRnJvbUNh
bGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIGppdC5lbWl0R2V0Q2Fs
bGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
KTsKLSAgICAgICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86
OnJlZ1QxKTsKLSAgICAgICAgaml0LnJldCgpOworICAgICAgICBEdW1wQ29udGV4dCBkdW1wQ29u
dGV4dDsKKyAgICAgICAgU3RyaW5nUHJpbnRTdHJlYW0gb3V0OworICAgICAgICBOb2RlKiBsYXN0
Tm9kZSA9IDA7CisgICAgICAgIGZvciAoc2l6ZV90IGJsb2NrSW5kZXggPSAwOyBibG9ja0luZGV4
IDwgZ3JhcGgubnVtQmxvY2tzKCk7ICsrYmxvY2tJbmRleCkgeworICAgICAgICAgICAgQmFzaWNC
bG9jayogYmxvY2sgPSBncmFwaC5ibG9jayhibG9ja0luZGV4KTsKKyAgICAgICAgICAgIGlmICgh
YmxvY2spCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGdyYXBoLmR1bXBCbG9ja0hlYWRlcihvdXQsIHByZWZpeCwgYmxvY2ssIEdyYXBoOjpEdW1w
TGl2ZVBoaXNPbmx5LCAmZHVtcENvbnRleHQpOworICAgICAgICAgICAgY29tcGlsYXRpb24tPmFk
ZERlc2NyaXB0aW9uKFByb2ZpbGVyOjpPcmlnaW5TdGFjaygpLCBvdXQudG9DU3RyaW5nKCkpOwor
ICAgICAgICAgICAgb3V0LnJlc2V0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAo
c2l6ZV90IG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsrbm9kZUlu
ZGV4KSB7CisgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgp
OworICAgICAgICAgICAgICAgIGlmICghbm9kZS0+d2lsbEhhdmVDb2RlR2VuT3JPU1IoKSAmJiAh
T3B0aW9uczo6c2hvd0FsbERGR05vZGVzKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFByb2ZpbGVyOjpPcmlnaW5TdGFj
ayBzdGFjazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+Y29k
ZU9yaWdpbi5pc1NldCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrID0gUHJvZmlsZXI6
Ok9yaWdpblN0YWNrKAorICAgICAgICAgICAgICAgICAgICAgICAgKnZtLm1fcGVyQnl0ZWNvZGVQ
cm9maWxlciwgY29kZUJsb2NrLCBub2RlLT5jb2RlT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGdyYXBoLmR1bXBDb2RlT3Jp
Z2luKG91dCwgcHJlZml4LCBsYXN0Tm9kZSwgbm9kZSwgJmR1bXBDb250ZXh0KSkgeworICAgICAg
ICAgICAgICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oc3RhY2ssIG91dC50b0NT
dHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIG91dC5yZXNldCgpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBncmFwaC5kdW1wKG91dCwg
cHJlZml4LCBub2RlLCAmZHVtcENvbnRleHQpOworICAgICAgICAgICAgICAgIGNvbXBpbGF0aW9u
LT5hZGREZXNjcmlwdGlvbihzdGFjaywgb3V0LnRvQ1N0cmluZygpKTsKKyAgICAgICAgICAgICAg
ICBvdXQucmVzZXQoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobm9k
ZS0+Y29kZU9yaWdpbi5pc1NldCgpKQorICAgICAgICAgICAgICAgICAgICBsYXN0Tm9kZSA9IG5v
ZGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YWNrQ2hl
Y2subGluaygmaml0KTsKLSAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKGNvZGVCbG9jayksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgIGppdC5tb3Zl
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAg
ICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0ZWNvZGVPZmZzZXQoMCkpLAotICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjp0YWdGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihK
U1N0YWNrOjpBcmd1bWVudENvdW50KSkpOwotICAgICAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsICZzdGF0ZS5ncmFwaC5tX3ZtLnRvcENhbGxGcmFtZSk7Ci0gICAg
ICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxsU3RhY2tDaGVjayA9IGppdC5jYWxsKCk7Ci0jaWYg
IUFTU0VSVF9ESVNBQkxFRAotICAgICAgICAvLyBGSVhNRTogbmVlZCB0byBtYWtlIHRoaXMgY2Fs
bCByZWdpc3RlciB3aXRoIGV4Y2VwdGlvbiBoYW5kbGluZyBzb21laG93LiBUaGlzIGlzCi0gICAg
ICAgIC8vIHBhcnQgb2YgYSBiaWdnZXIgcHJvYmxlbTogRlRMIHNob3VsZCBiZSBhYmxlIHRvIGhh
bmRsZSBleGNlcHRpb25zLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTEzNjIyCi0gICAgICAgIC8vIFVudGlsIHRoZW4sIHVzZSBhIEpJVCBBU1NF
UlQuCi0gICAgICAgIGppdC5sb2FkNjQoc3RhdGUuZ3JhcGgubV92bS5hZGRyZXNzT2ZFeGNlcHRp
b24oKSwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICBqaXQuaml0QXNzZXJ0SXNOdWxsKEdQUklu
Zm86OnJlZ1QwKTsKLSNlbmRpZgotICAgICAgICBqaXQuanVtcChmcm9tU3RhY2tDaGVjayk7Cisg
ICAgICAgIGR1bXBDb250ZXh0LmR1bXAob3V0LCBwcmVmaXgpOworICAgICAgICBjb21waWxhdGlv
bi0+YWRkRGVzY3JpcHRpb24oUHJvZmlsZXI6Ok9yaWdpblN0YWNrKCksIG91dC50b0NTdHJpbmco
KSk7CisgICAgICAgIG91dC5yZXNldCgpOwogICAgICAgICAKLSAgICAgICAgYXJpdHlDaGVjayA9
IGppdC5sYWJlbCgpOwotICAgICAgICBjb21waWxlRW50cnkoaml0KTsKKyAgICAgICAgb3V0LnBy
aW50KCIgICAgRGlzYXNzZW1ibHk6XG4iKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHN0YXRlLmppdENvZGUtPmhhbmRsZXMoKS5zaXplKCk7ICsraSkgeworICAgICAgICAgICAg
aWYgKHN0YXRlLmNvZGVTZWN0aW9uTmFtZXNbaV0gIT0gIl9fdGV4dCIpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBFeGVjdXRhYmxlTWVt
b3J5SGFuZGxlKiBoYW5kbGUgPSBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKClbaV0uZ2V0KCk7Cisg
ICAgICAgICAgICAgICAgZGlzYXNzZW1ibGUoCisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cihoYW5kbGUtPnN0YXJ0KCkpLCBoYW5kbGUtPnNpemVJbkJ5dGVzKCksCisg
ICAgICAgICAgICAgICAgICAgICIgICAgICAiLCBvdXQsIExMVk1TdWJzZXQpOworICAgICAgICB9
CisgICAgICAgIGNvbXBpbGF0aW9uLT5hZGREZXNjcmlwdGlvbihQcm9maWxlcjo6T3JpZ2luU3Rh
Y2soKSwgb3V0LnRvQ1N0cmluZygpKTsKKyAgICAgICAgb3V0LnJlc2V0KCk7CisgICAgICAgIAor
ICAgICAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24uY29tcGlsYXRpb24gPSBjb21waWxhdGlvbjsK
KyAgICB9CisgICAgCisgICAgc3dpdGNoIChncmFwaC5tX3BsYW4ubW9kZSkgeworICAgIGNhc2Ug
RlRMTW9kZTogeworICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1haW5QYXRoSnVtcHM7
CisgICAgCiAgICAgICAgIGppdC5sb2FkMzIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnBh
eWxvYWRGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihKU1N0YWNrOjpBcmd1bWVudENv
dW50KSksCisgICAgICAgICAgICBmcmFtZS53aXRoT2Zmc2V0KHNpemVvZihSZWdpc3RlcikgKiBK
U1N0YWNrOjpBcmd1bWVudENvdW50KSwKICAgICAgICAgICAgIEdQUkluZm86OnJlZ1QxKTsKLSAg
ICAgICAgaml0LmJyYW5jaDMyKAorICAgICAgICBtYWluUGF0aEp1bXBzLmFwcGVuZChqaXQuYnJh
bmNoMzIoCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFib3ZlT3JFcXVhbCwgR1BSSW5mbzo6
cmVnVDEsCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihjb2RlQmxvY2st
Pm51bVBhcmFtZXRlcnMoKSkpCi0gICAgICAgICAgICAubGlua1RvKGZyb21Bcml0eUNoZWNrLCAm
aml0KTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGNvZGVCbG9jay0+
bnVtUGFyYW1ldGVycygpKSkpOworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsK
ICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAgICAgICAgIGppdC5zdG9yZTMyKAogICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoQ2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNCeXRlY29kZU9m
ZnNldCgwKSksCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihzdGF0aWNfY2FzdDxW
aXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7Ci0gICAgICAgIGppdC5z
dG9yZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgJnN0YXRlLmdyYXBoLm1fdm0udG9w
Q2FsbEZyYW1lKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6dGFnRm9yKEpTU3RhY2s6OkFy
Z3VtZW50Q291bnQpKTsKKyAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCAmdm0udG9wQ2FsbEZyYW1lKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNh
bGxBcml0eUNoZWNrID0gaml0LmNhbGwoKTsKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAg
IC8vIEZJWE1FOiBuZWVkIHRvIG1ha2UgdGhpcyBjYWxsIHJlZ2lzdGVyIHdpdGggZXhjZXB0aW9u
IGhhbmRsaW5nIHNvbWVob3cuIFRoaXMgaXMKICAgICAgICAgLy8gcGFydCBvZiBhIGJpZ2dlciBw
cm9ibGVtOiBGVEwgc2hvdWxkIGJlIGFibGUgdG8gaGFuZGxlIGV4Y2VwdGlvbnMuCiAgICAgICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjIKICAgICAg
ICAgLy8gVW50aWwgdGhlbiwgdXNlIGEgSklUIEFTU0VSVC4KLSAgICAgICAgaml0LmxvYWQ2NChz
dGF0ZS5ncmFwaC5tX3ZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBHUFJJbmZvOjpyZWdUMSk7Cisg
ICAgICAgIGppdC5sb2FkNjQodm0uYWRkcmVzc09mRXhjZXB0aW9uKCksIEdQUkluZm86OnJlZ1Qx
KTsKICAgICAgICAgaml0LmppdEFzc2VydElzTnVsbChHUFJJbmZvOjpyZWdUMSk7CiAjZW5kaWYK
LSAgICAgICAgaWYgKEdQUkluZm86OnJldHVyblZhbHVlR1BSICE9IEdQUkluZm86OnJlZ1QwKQot
ICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJl
Z1QwKTsKLSAgICAgICAgaml0LmJyYW5jaFRlc3QzMihDQ2FsbEhlbHBlcnM6Olplcm8sIEdQUklu
Zm86OnJlZ1QwKS5saW5rVG8oZnJvbUFyaXR5Q2hlY2ssICZqaXQpOworICAgICAgICBqaXQubW92
ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAgICAgbWFpblBhdGhKdW1wcy5hcHBlbmQoaml0
LmJyYW5jaFRlc3QzMihDQ2FsbEhlbHBlcnM6Olplcm8sIEdQUkluZm86OnJlZ1QwKSk7CisgICAg
ICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworICAgICAgICBqaXQubW92ZShDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW1QdHIodm0uYXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MtPnJldHVy
blBDc0Zvcih2bSwgY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKSwgR1BSSW5mbzo6cmVnVDUp
OworICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChHUFJJbmZvOjpy
ZWdUNSwgR1BSSW5mbzo6cmVnVDAsIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSksIEdQUkluZm86
OnJlZ1Q1KTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxBcml0eUZpeHVwID0gaml0
LmNhbGwoKTsKLSAgICAgICAgaml0Lmp1bXAoZnJvbUFyaXR5Q2hlY2spOwotICAgICAgICAKLSAg
ICAgICAgbGlua0J1ZmZlciA9IGFkb3B0UHRyKG5ldyBMaW5rQnVmZmVyKHN0YXRlLmdyYXBoLm1f
dm0sICZqaXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOwotICAgICAg
ICBsaW5rQnVmZmVyLT5saW5rKGNhbGxTdGFja0NoZWNrLCBvcGVyYXRpb25TdGFja0NoZWNrKTsK
KyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAgIG1haW5QYXRoSnVt
cHMuYXBwZW5kKGppdC5qdW1wKCkpOworCisgICAgICAgIGxpbmtCdWZmZXIgPSBhZG9wdFB0cihu
ZXcgTGlua0J1ZmZlcih2bSwgJmppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNj
ZWVkKSk7CiAgICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbEFyaXR5Q2hlY2ssIGNvZGVCbG9j
ay0+bV9pc0NvbnN0cnVjdG9yID8gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayA6IG9wZXJh
dGlvbkNhbGxBcml0eUNoZWNrKTsKLSAgICAgICAgbGlua0J1ZmZlci0+bGluayhjYWxsQXJpdHlG
aXh1cCwgRnVuY3Rpb25QdHIoKHN0YXRlLmdyYXBoLm1fdm0uZ2V0Q1RJU3R1Yihhcml0eUZpeHVw
KSkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgbGlua0J1ZmZlci0+bGlu
ayhjYWxsQXJpdHlGaXh1cCwgRnVuY3Rpb25QdHIoKHZtLmdldENUSVN0dWIoYXJpdHlGaXh1cCkp
LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7CisgICAgICAgIGxpbmtCdWZmZXItPmxpbmso
bWFpblBhdGhKdW1wcywgQ29kZUxvY2F0aW9uTGFiZWwoYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0
ZS5nZW5lcmF0ZWRGdW5jdGlvbikpKTsKKworICAgICAgICBzdGF0ZS5qaXRDb2RlLT5pbml0aWFs
aXplQWRkcmVzc0ZvckNhbGwoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGJpdHdpc2VfY2FzdDx2b2lk
Kj4oc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24pKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICAgICAgCkBAIC0xNjAsMTggKzE5MCwxNCBAQCB2b2lkIGxpbmsoU3RhdGUmIHN0YXRlKQogICAg
ICAgICAvLyB2YWx1ZXMgaW50byB0aGUgc2NyYXRjaCBidWZmZXIuIEV2ZXJ5dGhpbmcgc2hvdWxk
IGJlIGdvb2QgdG8gZ28gLSBhdCB0aGlzCiAgICAgICAgIC8vIHBvaW50IHdlJ3ZlIGV2ZW4gZG9u
ZSB0aGUgc3RhY2sgY2hlY2suIEJhc2ljYWxseSB3ZSBqdXN0IGhhdmUgdG8gbWFrZSB0aGUKICAg
ICAgICAgLy8gY2FsbCB0byB0aGUgTExWTS1nZW5lcmF0ZWQgY29kZS4KLSAgICAgICAgaml0LnNl
dHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7Ci0gICAgICAgIGppdC5tb3ZlKAotICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0YXRl
LmdlbmVyYXRlZEZ1bmN0aW9uKSksCi0gICAgICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIwKTsK
LSAgICAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgICAgIGppdC5lbWl0
R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OnJlZ1QxKTsKLSAgICAg
ICAgaml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZv
cmVSZXR1cm4oR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICBqaXQucmV0KCk7CisgICAgICAgIEND
YWxsSGVscGVyczo6TGFiZWwgc3RhcnQgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBtYWluUGF0aEp1
bXAgPSBqaXQuanVtcCgpOwogICAgICAgICAKLSAgICAgICAgbGlua0J1ZmZlciA9IGFkb3B0UHRy
KG5ldyBMaW5rQnVmZmVyKAotICAgICAgICAgICAgc3RhdGUuZ3JhcGgubV92bSwgJmppdCwgY29k
ZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7CisgICAgICAgIGxpbmtCdWZmZXIg
PSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcih2bSwgJmppdCwgY29kZUJsb2NrLCBKSVRDb21waWxh
dGlvbk11c3RTdWNjZWVkKSk7CisgICAgICAgIGxpbmtCdWZmZXItPmxpbmsobWFpblBhdGhKdW1w
LCBDb2RlTG9jYXRpb25MYWJlbChiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRlLmdlbmVyYXRlZEZ1
bmN0aW9uKSkpOworCisgICAgICAgIHN0YXRlLmppdENvZGUtPmluaXRpYWxpemVBZGRyZXNzRm9y
Q2FsbChsaW5rQnVmZmVyLT5sb2NhdGlvbk9mKHN0YXJ0KSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9MTFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0xMVk0uY3BwCmluZGV4IGJlMmE0MGM3ZGRjODc5YTgwODVkMGIzOGIxZmQ5OGQzNmY3ZjExZDMu
LmM1Nzk2OWQ3YTcyY2U2MDRiZDdlM2QzYTQ5NTM3NTgxMzBiMWY5NjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCIKICNpbmNsdWRlICJE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIgogI2luY2x1ZGUgIkZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuaCIKKyNpbmNsdWRlICJGVExBdmFpbGFibGVSZWNvdmVyeS5oIgogI2luY2x1ZGUgIkZU
TEZvck9TUkVudHJ5SklUQ29kZS5oIgogI2luY2x1ZGUgIkZUTEZvcm1hdHRlZFZhbHVlLmgiCiAj
aW5jbHVkZSAiRlRMSW5saW5lQ2FjaGVTaXplLmgiCkBAIC01MSw2ICs1MiwxMCBAQCB1c2luZyBu
YW1lc3BhY2UgREZHOwogCiBzdGF0aWMgc3RkOjphdG9taWM8aW50PiBjb21waWxlQ291bnRlcjsK
IAorLy8gRklYTUU6IEdldCByaWQgb2YgdGhpcyBhbmQgaW50cm9kdWNlIGEgcmVhbCBzdGFjayBj
aGVjay4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU2NTAK
K3N0YXRpYyB1aW50cHRyX3Qgc3RhY2tMaW1pdDsKKwogLy8gVXNpbmcgdGhpcyBpbnN0ZWFkIG9m
IHR5cGVDaGVjaygpIGhlbHBzIHRvIHJlZHVjZSB0aGUgbG9hZCBvbiBMTFZNLCBieSBjcmVhdGlu
ZwogLy8gc2lnbmlmaWNhbnRseSBsZXNzIGRlYWQgY29kZS4KICNkZWZpbmUgRlRMX1RZUEVfQ0hF
Q0sobG93VmFsdWUsIGhpZ2hWYWx1ZSwgdHlwZXNQYXNzZWRUaHJvdWdoLCBmYWlsQ29uZGl0aW9u
KSBkbyB7IFwKQEAgLTkyLDE5ICs5NywyMCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBsbHZtLT5N
b2R1bGVDcmVhdGVXaXRoTmFtZUluQ29udGV4dChuYW1lLmRhdGEoKSwgbV9mdGxTdGF0ZS5jb250
ZXh0KTsKICAgICAgICAgCiAgICAgICAgIG1fZnRsU3RhdGUuZnVuY3Rpb24gPSBhZGRGdW5jdGlv
bigKLSAgICAgICAgICAgIG1fZnRsU3RhdGUubW9kdWxlLCBuYW1lLmRhdGEoKSwgZnVuY3Rpb25U
eXBlKG1fb3V0LmludDY0LCBtX291dC5pbnRQdHIpKTsKKyAgICAgICAgICAgIG1fZnRsU3RhdGUu
bW9kdWxlLCBuYW1lLmRhdGEoKSwgZnVuY3Rpb25UeXBlKG1fb3V0LmludDY0KSk7CiAgICAgICAg
IHNldEZ1bmN0aW9uQ2FsbGluZ0NvbnYobV9mdGxTdGF0ZS5mdW5jdGlvbiwgTExWTUNDYWxsQ29u
dik7CisgICAgICAgIGlmIChpc1g4NigpICYmIE9wdGlvbnM6Omxsdm1EaXNhbGxvd0FWWCgpKSB7
CisgICAgICAgICAgICAvLyBBVlggbWFrZXMgVjgvcmF5dHJhY2UgODAlIHNsb3dlci4gSXQgbWFr
ZXMgS3Jha2VuL2F1ZGlvLW9zY2lsbGF0b3IgNC41eAorICAgICAgICAgICAgLy8gc2xvd2VyLiBJ
dCBzaG91bGQgYmUgZGlzYWJsZWQuCisgICAgICAgICAgICBhZGRUYXJnZXREZXBlbmRlbnRGdW5j
dGlvbkF0dHIobV9mdGxTdGF0ZS5mdW5jdGlvbiwgInRhcmdldC1mZWF0dXJlcyIsICItYXZ4Iik7
CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIG1fb3V0LmluaXRpYWxpemUobV9mdGxTdGF0
ZS5tb2R1bGUsIG1fZnRsU3RhdGUuZnVuY3Rpb24sIG1faGVhcHMpOwogICAgICAgICAKLSAgICAg
ICAgbV9wcm9sb2d1ZSA9IGFwcGVuZEJhc2ljQmxvY2sobV9mdGxTdGF0ZS5jb250ZXh0LCBtX2Z0
bFN0YXRlLmZ1bmN0aW9uKTsKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8obV9wcm9sb2d1ZSk7Ci0g
ICAgICAgIGNyZWF0ZVBoaVZhcmlhYmxlcygpOwotICAgICAgICAKLSAgICAgICAgbV9jYWxsRnJh
bWUgPSBtX291dC5wYXJhbSgwKTsKLSAgICAgICAgbV90YWdUeXBlTnVtYmVyID0gbV9vdXQuY29u
c3RJbnQ2NChUYWdUeXBlTnVtYmVyKTsKLSAgICAgICAgbV90YWdNYXNrID0gbV9vdXQuY29uc3RJ
bnQ2NChUYWdNYXNrKTsKLSAgICAgICAgCisgICAgICAgIG1fcHJvbG9ndWUgPSBGVExfTkVXX0JM
T0NLKG1fb3V0LCAoIlByb2xvZ3VlIikpOworICAgICAgICBMQmFzaWNCbG9jayBzdGFja092ZXJm
bG93ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJTdGFjayBvdmVyZmxvdyIpKTsKKyAgICAgICAg
bV9oYW5kbGVFeGNlcHRpb25zID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJIYW5kbGUgRXhjZXB0
aW9ucyIpKTsKKwogICAgICAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IDA7IGJsb2Nr
SW5kZXggPCBtX2dyYXBoLm51bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgpIHsKICAgICAgICAgICAg
IG1faGlnaEJsb2NrID0gbV9ncmFwaC5ibG9jayhibG9ja0luZGV4KTsKICAgICAgICAgICAgIGlm
ICghbV9oaWdoQmxvY2spCkBAIC0xMTIsOCArMTE4LDQyIEBAIHB1YmxpYzoKICAgICAgICAgICAg
IG1fYmxvY2tzLmFkZChtX2hpZ2hCbG9jaywgRlRMX05FV19CTE9DSyhtX291dCwgKCJCbG9jayAi
LCAqbV9oaWdoQmxvY2spKSk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIG1fb3V0LmFw
cGVuZFRvKG1fcHJvbG9ndWUpOwotICAgICAgICBtX291dC5qdW1wKGxvd0Jsb2NrKG1fZ3JhcGgu
YmxvY2soMCkpKTsKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8obV9wcm9sb2d1ZSwgc3RhY2tPdmVy
Zmxvdyk7CisgICAgICAgIGNyZWF0ZVBoaVZhcmlhYmxlcygpOworICAgICAgICBMVmFsdWUgY2Fw
dHVyZWRBbGxvY2EgPSBtX291dC5hbGxvY2EoYXJyYXlUeXBlKG1fb3V0LmludDY0LCBtX2dyYXBo
Lm1fbmV4dE1hY2hpbmVMb2NhbCkpOworICAgICAgICBtX2NhcHR1cmVkID0gbV9vdXQuYWRkKAor
ICAgICAgICAgICAgbV9vdXQucHRyVG9JbnQoY2FwdHVyZWRBbGxvY2EsIG1fb3V0LmludFB0ciks
CisgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihtX2dyYXBoLm1fbmV4dE1hY2hpbmVMb2Nh
bCAqIHNpemVvZihSZWdpc3RlcikpKTs7CisgICAgICAgIAorICAgICAgICAvLyBXZSBzaG91bGQg
bm90IGNyZWF0ZSBhbnkgYWxsb2NhJ3MgYWZ0ZXIgdGhpcyBwb2ludCwgc2luY2UgdGhleSB3aWxs
IGNlYXNlIHRvCisgICAgICAgIC8vIGJlIG1lbTJyZWcgY2FuZGlkYXRlcy4KKyAgICAgICAgCisg
ICAgICAgIG1fZnRsU3RhdGUuY2FwdHVyZWRTdGFja21hcElEID0gbV9zdGFja21hcElEcysrOwor
ICAgICAgICBtX291dC5jYWxsKAorICAgICAgICAgICAgbV9vdXQuc3RhY2ttYXBJbnRyaW5zaWMo
KSwgbV9vdXQuY29uc3RJbnQ2NChtX2Z0bFN0YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCksCisgICAg
ICAgICAgICBtX291dC5pbnQzMlplcm8sIGNhcHR1cmVkQWxsb2NhKTsKKyAgICAgICAgCisgICAg
ICAgIG1fY2FsbEZyYW1lID0gbV9vdXQucHRyVG9JbnQoCisgICAgICAgICAgICBtX291dC5jYWxs
KG1fb3V0LmZyYW1lQWRkcmVzc0ludHJpbnNpYygpLCBtX291dC5pbnQzMlplcm8pLCBtX291dC5p
bnRQdHIpOworICAgICAgICBtX3RhZ1R5cGVOdW1iZXIgPSBtX291dC5jb25zdEludDY0KFRhZ1R5
cGVOdW1iZXIpOworICAgICAgICBtX3RhZ01hc2sgPSBtX291dC5jb25zdEludDY0KFRhZ01hc2sp
OworICAgICAgICAKKyAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuY29uc3RJbnRQdHIoY29k
ZUJsb2NrKCkpLCBhZGRyZXNzRm9yKEpTU3RhY2s6OkNvZGVCbG9jaykpOworICAgICAgICBtX291
dC5icmFuY2goCisgICAgICAgICAgICBtX291dC5iZWxvdyhtX2NhbGxGcmFtZSwgbV9vdXQubG9h
ZFB0cihtX291dC5hYnNvbHV0ZSgmc3RhY2tMaW1pdCkpKSwKKyAgICAgICAgICAgIHN0YWNrT3Zl
cmZsb3csIGxvd0Jsb2NrKG1fZ3JhcGguYmxvY2soMCkpKTsKKyAgICAgICAgCisgICAgICAgIG1f
b3V0LmFwcGVuZFRvKHN0YWNrT3ZlcmZsb3csIG1faGFuZGxlRXhjZXB0aW9ucyk7CisgICAgICAg
IC8vIEZJWE1FOiBEbyBhIHJlYWwgc3RhY2sgY2hlY2sgYW5kIHRocm93IHRoZSBleGNlcHRpb24g
YXBwcm9wcmlhdGVseS4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNTY1MAorICAgICAgICBtX291dC5jcmFzaCgpOworICAgICAgICAKKyAgICAg
ICAgbV9vdXQuYXBwZW5kVG8obV9oYW5kbGVFeGNlcHRpb25zLCBsb3dCbG9jayhtX2dyYXBoLmJs
b2NrKDApKSk7CisgICAgICAgIG1fZnRsU3RhdGUuaGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRCA9
IG1fc3RhY2ttYXBJRHMrKzsKKyAgICAgICAgbV9vdXQuY2FsbCgKKyAgICAgICAgICAgIG1fb3V0
LnN0YWNrbWFwSW50cmluc2ljKCksIG1fb3V0LmNvbnN0SW50NjQobV9mdGxTdGF0ZS5oYW5kbGVF
eGNlcHRpb25TdGFja21hcElEKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoTWFjcm9B
c3NlbWJsZXI6Om1heEp1bXBSZXBsYWNlbWVudFNpemUoKSkpOworICAgICAgICBtX291dC51bnJl
YWNoYWJsZSgpOwogICAgICAgICAKICAgICAgICAgVmVjdG9yPEJhc2ljQmxvY2sqPiBkZXB0aEZp
cnN0OwogICAgICAgICBtX2dyYXBoLmdldEJsb2Nrc0luRGVwdGhGaXJzdE9yZGVyKGRlcHRoRmly
c3QpOwpAQCAtMjI2LDYgKzI2Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICh2ZXJib3NlQ29t
cGlsYXRpb25FbmFibGVkKCkpCiAgICAgICAgICAgICBkYXRhTG9nKCJMb3dlcmluZyAiLCBtX25v
ZGUsICJcbiIpOwogICAgICAgICAKKyAgICAgICAgbV9hdmFpbGFibGVSZWNvdmVyaWVzLnJlc2l6
ZSgwKTsKKyAgICAgICAgCiAgICAgICAgIGJvb2wgc2hvdWxkRXhlY3V0ZUVmZmVjdHMgPSBtX2lu
dGVycHJldGVyLnN0YXJ0RXhlY3V0aW5nKG1fbm9kZSk7CiAgICAgICAgIAogICAgICAgICBzd2l0
Y2ggKG1fbm9kZS0+b3AoKSkgewpAQCAtMjY1LDE5ICszMDcsMTcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIGNvbXBpbGVWYWx1ZUFkZCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQXJpdGhBZGQ6Ci0gICAgICAgICAgICBjb21waWxlQWRkU3ViKCk7Ci0gICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcml0aFN1YjoKLSAgICAgICAgICAgIGNvbXBpbGVBZGRTdWIo
KTsKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aEFkZE9yU3ViKCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBBcml0aE11bDoKICAgICAgICAgICAgIGNvbXBpbGVBcml0aE11bCgp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhEaXY6Ci0gICAgICAgICAg
ICBjb21waWxlQXJpdGhEaXZNb2QoKTsKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aERpdigpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhNb2Q6Ci0gICAgICAgICAgICBj
b21waWxlQXJpdGhEaXZNb2QoKTsKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aE1vZCgpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhNaW46CiAgICAgICAgIGNhc2UgQXJp
dGhNYXg6CkBAIC0yODYsNiArMzI2LDE1IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJpdGhB
YnM6CiAgICAgICAgICAgICBjb21waWxlQXJpdGhBYnMoKTsKICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFyaXRoU2luOgorICAgICAgICAgICAgY29tcGlsZUFyaXRoU2luKCk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcml0aENvczoKKyAgICAgICAgICAgIGNv
bXBpbGVBcml0aENvcygpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXJpdGhT
cXJ0OgorICAgICAgICAgICAgY29tcGlsZUFyaXRoU3FydCgpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6CiAgICAgICAgICAgICBjb21waWxlQXJpdGhOZWdh
dGUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzIyLDYgKzM3MSw5IEBAIHByaXZhdGU6CiAg
ICAgICAgIGNhc2UgQ2hlY2tGdW5jdGlvbjoKICAgICAgICAgICAgIGNvbXBpbGVDaGVja0Z1bmN0
aW9uKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6
CisgICAgICAgICAgICBjb21waWxlQ2hlY2tFeGVjdXRhYmxlKCk7CisgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgogICAgICAgICAgICAgY29tcGls
ZUFycmF5aWZ5VG9TdHJ1Y3R1cmUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzM0LDYgKzM4
Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgR2V0QnlJZDoKICAgICAgICAgICAgIGNvbXBp
bGVHZXRCeUlkKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQdXRCeUlkRGly
ZWN0OgogICAgICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgICAgICBjb21waWxlUHV0QnlJZCgp
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zNzIsOSArNDI1LDE4IEBAIHByaXZhdGU6CiAgICAg
ICAgIGNhc2UgTmV3QXJyYXlCdWZmZXI6CiAgICAgICAgICAgICBjb21waWxlTmV3QXJyYXlCdWZm
ZXIoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6
CisgICAgICAgICAgICBjb21waWxlTmV3QXJyYXlXaXRoU2l6ZSgpOworICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgICAgICAgICBj
b21waWxlQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoKTsKICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFRvU3RyaW5nOgorICAgICAgICAgICAgY29tcGlsZVRvU3RyaW5nKCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNYWtlUm9wZToKKyAgICAgICAgICAgIGNvbXBp
bGVNYWtlUm9wZSgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RyaW5nQ2hh
ckF0OgogICAgICAgICAgICAgY29tcGlsZVN0cmluZ0NoYXJBdCgpOwogICAgICAgICAgICAgYnJl
YWs7CkBAIC0zOTYsNiArNDU4LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgTm90aWZ5V3Jp
dGU6CiAgICAgICAgICAgICBjb21waWxlTm90aWZ5V3JpdGUoKTsKICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEdldENhbGxlZToKKyAgICAgICAgICAgIGNvbXBpbGVHZXRDYWxsZWUo
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdldFNjb3BlOgorICAgICAgICAg
ICAgY29tcGlsZUdldFNjb3BlKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBH
ZXRNeVNjb3BlOgogICAgICAgICAgICAgY29tcGlsZUdldE15U2NvcGUoKTsKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtNDY2LDYgKzUzNCwxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEludDUy
VG9WYWx1ZToKICAgICAgICAgICAgIGNvbXBpbGVJbnQ1MlRvVmFsdWUoKTsKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENoZWNrQXJndW1lbnRzTm90Q3JlYXRlZDoKKyAgICAgICAg
ICAgIGNvbXBpbGVDaGVja0FyZ3VtZW50c05vdENyZWF0ZWQoKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENvdW50RXhlY3V0aW9uOgorICAgICAgICAgICAgY29tcGlsZUNvdW50
RXhlY3V0aW9uKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdG9yZUJhcnJp
ZXI6CiAgICAgICAgICAgICBjb21waWxlU3RvcmVCYXJyaWVyKCk7CiAgICAgICAgICAgICBicmVh
azsKQEAgLTQ4Miw2ICs1NTYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFZhcmlhYmxlV2F0
Y2hwb2ludDoKICAgICAgICAgY2FzZSBGdW5jdGlvblJlZW50cnlXYXRjaHBvaW50OgogICAgICAg
ICBjYXNlIFR5cGVkQXJyYXlXYXRjaHBvaW50OgorICAgICAgICBjYXNlIEFsbG9jYXRpb25Qcm9m
aWxlV2F0Y2hwb2ludDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTgxNSwyNCArODkwLDUz
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpLCBs
b3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgY29t
cGlsZUFkZFN1YigpCisgICAgdm9pZCBjb21waWxlQXJpdGhBZGRPclN1YigpCiAgICAgewogICAg
ICAgICBib29sIGlzU3ViID0gIG1fbm9kZS0+b3AoKSA9PSBBcml0aFN1YjsKICAgICAgICAgc3dp
dGNoIChtX25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewogICAgICAgICBjYXNlIEludDMyVXNlOiB7
CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7Ci0g
ICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gaXNTdWIgPyBtX291dC5zdWIobGVmdCwgcmlnaHQp
IDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KTsKIAogICAgICAgICAgICAgaWYgKCFzaG91bGRDaGVj
a092ZXJmbG93KG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAgc2V0SW50
MzIocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBzZXRJbnQzMihpc1N1YiA/IG1fb3V0LnN1Yihs
ZWZ0LCByaWdodCkgOiBtX291dC5hZGQobGVmdCwgcmlnaHQpKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93ID0gaXNT
dWIgPyBtX291dC5zdWJXaXRoT3ZlcmZsb3czMihsZWZ0LCByaWdodCkgOiBtX291dC5hZGRXaXRo
T3ZlcmZsb3czMihsZWZ0LCByaWdodCk7CisgICAgICAgICAgICBMVmFsdWUgcmVzdWx0OworICAg
ICAgICAgICAgaWYgKCFpc1N1YikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmFk
ZFdpdGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDIoKSkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25v
ZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0
LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBsZWZ0LCBWYWx1ZUZvcm1hdEludDMyKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkpKSB7CisgICAg
ICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAg
ICAgICAgbV9ub2RlLT5jaGlsZDEoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAg
ICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgcmlnaHQsIFZhbHVlRm9ybWF0SW50
MzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gbV9vdXQuc3ViV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQpOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxk
MigpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgPSBsZWZ0IC0gcmlnaHQKKyAg
ICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0IC0gbGVmdCA9IC1yaWdodAorICAgICAgICAgICAg
ICAgICAgICAvLyByaWdodCA9IGxlZnQgLSByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgYWRk
QXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxk
MigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQsIG1fb3V0LmV4
dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBWYWx1ZUZvcm1hdEludDMyKTsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkpKSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIHJlc3VsdCA9IGxlZnQgLSByaWdodAorICAgICAgICAgICAgICAgICAgICAvLyBy
ZXN1bHQgKyByaWdodCA9IGxlZnQKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVj
b3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgpLCBBZGRSZWNv
dmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQs
IDApLCByaWdodCwgVmFsdWVGb3JtYXRJbnQzMik7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwg
bV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93LCAxKSk7Ci0gICAgICAgICAgICBzZXRJbnQzMihy
ZXN1bHQpOworICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1f
b3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDEpKTsKKyAgICAgICAgICAgIHNldEludDMyKG1fb3V0
LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgICAgICAKQEAgLTg0OCwxMSArOTUyLDQxIEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDEoKSk7
CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dJbnQ1MihtX25vZGUtPmNoaWxkMigpKTsK
LSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBpc1N1YiA/IG1fb3V0LnN1YihsZWZ0LCByaWdo
dCkgOiBtX291dC5hZGQobGVmdCwgcmlnaHQpOwogCi0gICAgICAgICAgICBMVmFsdWUgb3ZlcmZs
b3cgPSBpc1N1YiA/IG1fb3V0LnN1YldpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KSA6IG1fb3V0
LmFkZFdpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShJ
bnQ1Mk92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvdywg
MSkpOwotICAgICAgICAgICAgc2V0SW50NTIocmVzdWx0KTsKKyAgICAgICAgICAgIExWYWx1ZSBy
ZXN1bHQ7CisgICAgICAgICAgICBpZiAoIWlzU3ViKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0
ID0gbV9vdXQuYWRkV2l0aE92ZXJmbG93NjQobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMigpKSkgeworICAg
ICAgICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1fbm9kZS0+Y2hpbGQyKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAg
ICAgICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIGxlZnQsIFZhbHVlRm9ybWF0SW50
NTIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDEo
KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAg
ICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCByaWdodCwgVmFs
dWVGb3JtYXRJbnQ1Mik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5zdWJXaXRoT3ZlcmZsb3c2NChsZWZ0LCBy
aWdodCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRvZXNLaWxsKG1f
bm9kZS0+Y2hpbGQyKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCA9IGxlZnQg
LSByaWdodAorICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgLSBsZWZ0ID0gLXJpZ2h0Cisg
ICAgICAgICAgICAgICAgICAgIC8vIHJpZ2h0ID0gbGVmdCAtIHJlc3VsdAorICAgICAgICAgICAg
ICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
bm9kZS0+Y2hpbGQyKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgbGVm
dCwgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIFZhbHVlRm9ybWF0SW50NTIpOworICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDEoKSkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0ID0gbGVmdCAtIHJpZ2h0CisgICAgICAgICAgICAg
ICAgICAgIC8vIHJlc3VsdCArIHJpZ2h0ID0gbGVmdAorICAgICAgICAgICAgICAgICAgICBhZGRB
dmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQx
KCksIEFkZFJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuZXh0cmFjdFZh
bHVlKHJlc3VsdCwgMCksIHJpZ2h0LCBWYWx1ZUZvcm1hdEludDUyKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNwZWN1bGF0ZShJbnQ1Mk92ZXJmbG93
LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDEpKTsKKyAgICAgICAg
ICAgIHNldEludDUyKG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTg3NiwxMSArMTAxMCwxNSBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIEludDMyVXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUgbGVm
dCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0
ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0
ID0gbV9vdXQubXVsKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZh
bHVlIHJlc3VsdDsKIAotICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2Rl
LT5hcml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAgIGlmICghc2hvdWxkQ2hlY2tPdmVyZmxvdyht
X25vZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5tdWwo
bGVmdCwgcmlnaHQpOworICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgTFZhbHVl
IG92ZXJmbG93UmVzdWx0ID0gbV9vdXQubXVsV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQpOwog
ICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5l
eHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9u
b2RlLT5hcml0aE1vZGUoKSkpIHsKQEAgLTkwNCwxMSArMTA0MiwxMCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgSW50NTJLaW5kIGtpbmQ7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd1do
aWNoZXZlckludDUyKG1fbm9kZS0+Y2hpbGQxKCksIGtpbmQpOwogICAgICAgICAgICAgTFZhbHVl
IHJpZ2h0ID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDIoKSwgb3Bwb3NpdGUoa2luZCkpOwotICAg
ICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0Lm11bChsZWZ0LCByaWdodCk7Ci0KIAogICAg
ICAgICAgICAgTFZhbHVlIG92ZXJmbG93UmVzdWx0ID0gbV9vdXQubXVsV2l0aE92ZXJmbG93NjQo
bGVmdCwgcmlnaHQpOwogICAgICAgICAgICAgc3BlY3VsYXRlKEludDUyT3ZlcmZsb3csIG5vVmFs
dWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7CisgICAgICAg
ICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAw
KTsKIAogICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJp
dGhNb2RlKCkpKSB7CiAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2UgPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTXVsIHNsb3cgY2FzZSIpKTsKQEAgLTkzOSwxNiArMTA3
NiwxNiBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBjb21waWxlQXJp
dGhEaXZNb2QoKQorICAgIHZvaWQgY29tcGlsZUFyaXRoRGl2KCkKICAgICB7CiAgICAgICAgIHN3
aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBJbnQzMlVzZTog
ewogICAgICAgICAgICAgTFZhbHVlIG51bWVyYXRvciA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICAgICAgTFZhbHVlIGRlbm9taW5hdG9yID0gbG93SW50MzIobV9ub2RlLT5j
aGlsZDIoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIHVuc2FmZURl
bm9taW5hdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCB1bnNhZmUgZGVu
b21pbmF0b3IiKSk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIGNvbnRpbnVhdGlvbiIpKTsKLSAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGRvbmUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9k
IGRvbmUiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayB1bnNhZmVEZW5vbWluYXRvciA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgdW5zYWZlIGRlbm9taW5hdG9yIikpOworICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwg
KCJBcml0aERpdiBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBkb25l
ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiBkb25lIikpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDM+IHJlc3VsdHM7CiAgICAgICAg
ICAgICAKQEAgLTk5MSw4ICsxMTI4LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0LmFw
cGVuZFRvKGNvbnRpbnVhdGlvbiwgZG9uZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlm
IChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIHplcm9OdW1lcmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0
LCAoIkFyaXRoRGl2TW9kIHplcm8gbnVtZXJhdG9yIikpOwotICAgICAgICAgICAgICAgIExCYXNp
Y0Jsb2NrIG51bWVyYXRvckNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJp
dGhEaXZNb2QgbnVtZXJhdG9yIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgICAgICBMQmFz
aWNCbG9jayB6ZXJvTnVtZXJhdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiB6
ZXJvIG51bWVyYXRvciIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBudW1lcmF0b3JD
b250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IG51bWVyYXRvciBj
b250aW51YXRpb24iKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgbV9vdXQu
YnJhbmNoKG1fb3V0LmlzWmVybzMyKG51bWVyYXRvciksIHplcm9OdW1lcmF0b3IsIG51bWVyYXRv
ckNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICAgICAgCkBAIC0xMDA2LDE3ICsxMTQzLDE1IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obnVtZXJhdG9yQ29udGlu
dWF0aW9uLCBpbm5lckxhc3ROZXh0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAg
ICAgICAgICAgTFZhbHVlIGRpdk1vZFJlc3VsdCA9IG1fbm9kZS0+b3AoKSA9PSBBcml0aERpdgot
ICAgICAgICAgICAgICAgID8gbV9vdXQuZGl2KG51bWVyYXRvciwgZGVub21pbmF0b3IpCi0gICAg
ICAgICAgICAgICAgOiBtX291dC5yZW0obnVtZXJhdG9yLCBkZW5vbWluYXRvcik7CisgICAgICAg
ICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuZGl2KG51bWVyYXRvciwgZGVub21pbmF0b3IpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxvdyhtX25vZGUt
PmFyaXRoTW9kZSgpKSkgewogICAgICAgICAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAg
ICAgICAgICAgT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwKLSAgICAgICAgICAgICAgICAgICAgbV9v
dXQubm90RXF1YWwobV9vdXQubXVsKGRpdk1vZFJlc3VsdCwgZGVub21pbmF0b3IpLCBudW1lcmF0
b3IpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQubm90RXF1YWwobV9vdXQubXVsKHJlc3Vs
dCwgZGVub21pbmF0b3IpLCBudW1lcmF0b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IAotICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKGRpdk1vZFJlc3VsdCkp
OworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHJlc3VsdCkpOwogICAg
ICAgICAgICAgbV9vdXQuanVtcChkb25lKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8oZG9uZSwgbGFzdE5leHQpOwpAQCAtMTAyNiw5ICsxMTYxLDggQEAgcHJpdmF0
ZToKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgTnVtYmVyVXNlOiB7Ci0g
ICAgICAgICAgICBMVmFsdWUgQzEgPSBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAg
ICAgICAgICBMVmFsdWUgQzIgPSBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAg
ICAgICBzZXREb3VibGUobV9ub2RlLT5vcCgpID09IEFyaXRoRGl2ID8gbV9vdXQuZG91YmxlRGl2
KEMxLCBDMikgOiBtX291dC5kb3VibGVSZW0oQzEsIEMyKSk7CisgICAgICAgICAgICBzZXREb3Vi
bGUobV9vdXQuZG91YmxlRGl2KAorICAgICAgICAgICAgICAgIGxvd0RvdWJsZShtX25vZGUtPmNo
aWxkMSgpKSwgbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC0xMDM4LDYgKzExNzIsOTkgQEAgcHJpdmF0
ZToKICAgICAgICAgfQogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVBcml0aE1vZCgpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CisgICAgICAg
IGNhc2UgSW50MzJVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSBudW1lcmF0b3IgPSBsb3dJbnQz
MihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBkZW5vbWluYXRvciA9IGxv
d0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFz
aWNCbG9jayB1bnNhZmVEZW5vbWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhN
b2QgdW5zYWZlIGRlbm9taW5hdG9yIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGlu
dWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBjb250aW51YXRpb24iKSk7
CisgICAgICAgICAgICBMQmFzaWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJB
cml0aE1vZCBkb25lIikpOworICAgICAgICAgICAgCisgICAgICAgICAgICBWZWN0b3I8VmFsdWVG
cm9tQmxvY2ssIDM+IHJlc3VsdHM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBh
ZGp1c3RlZERlbm9taW5hdG9yID0gbV9vdXQuYWRkKGRlbm9taW5hdG9yLCBtX291dC5pbnQzMk9u
ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5hYm92ZShh
ZGp1c3RlZERlbm9taW5hdG9yLCBtX291dC5pbnQzMk9uZSksIGNvbnRpbnVhdGlvbiwgdW5zYWZl
RGVub21pbmF0b3IpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0
TmV4dCA9IG1fb3V0LmFwcGVuZFRvKHVuc2FmZURlbm9taW5hdG9yLCBjb250aW51YXRpb24pOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgbmVnMlRvVGhlMzEgPSBtX291dC5jb25z
dEludDMyKC0yMTQ3NDgzNjQ3LTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBGSVhN
RTogLTJeMzEgLyAtMSB3aWxsIGFjdHVhbGx5IHlpZWxkIG5lZ2F0aXZlIHplcm8sIHNvIHdlIGNv
dWxkIGhhdmUgYQorICAgICAgICAgICAgLy8gc2VwYXJhdGUgY2FzZSBmb3IgdGhhdC4gQnV0IGl0
IHByb2JhYmx5IGRvZXNuJ3QgbWF0dGVyIHNvIG11Y2guCisgICAgICAgICAgICBpZiAoc2hvdWxk
Q2hlY2tPdmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgeworICAgICAgICAgICAgICAgIExW
YWx1ZSBjb25kID0gbV9vdXQuYml0T3IobV9vdXQuaXNaZXJvMzIoZGVub21pbmF0b3IpLCBtX291
dC5lcXVhbChudW1lcmF0b3IsIG5lZzJUb1RoZTMxKSk7CisgICAgICAgICAgICAgICAgc3BlY3Vs
YXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIGNvbmQpOworICAgICAgICAgICAgICAgIG1fb3V0
Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgLy8gVGhpcyBpcyB0aGUgY2FzZSB3aGVyZSB3ZSBjb252ZXJ0IHRoZSByZXN1bHQgdG8gYW4g
aW50IGFmdGVyIHdlJ3JlIGRvbmUuIFNvLAorICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZW5v
bWluYXRvciBpcyB6ZXJvLCB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIHJlc3VsdCBzaG91bGQg
YmUgemVyby4KKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZGVub21pbmF0b3IgaXMgbm90IHpl
cm8gKGkuZS4gaXQncyAtMSBiZWNhdXNlIHdlJ3JlIGd1YXJkZWQgYnkgdGhlCisgICAgICAgICAg
ICAgICAgLy8gY2hlY2sgYWJvdmUpIGFuZCB0aGUgbnVtZXJhdG9yIGlzIC0yXjMxIHRoZW4gdGhl
IHJlc3VsdCBzaG91bGQgYmUgLTJeMzEuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgbW9kQnlaZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1v
ZCBtb2R1bG8gYnkgemVybyIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RNb2RC
eVplcm8gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG5vdCBtb2R1bG8gYnkgemVy
byIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBuZWcyVG9UaGUzMUJ5TmVnMSA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgLTJeMzEvLTEiKSk7CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVybzMyKGRlbm9taW5h
dG9yKSwgbW9kQnlaZXJvLCBub3RNb2RCeVplcm8pOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1vZEJ5WmVybywgbm90TW9kQnlaZXJvKTsKKyAgICAg
ICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7
CisgICAgICAgICAgICAgICAgbV9vdXQuanVtcChkb25lKTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3RNb2RCeVplcm8sIG5lZzJUb1RoZTMxQnlO
ZWcxKTsKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwobnVtZXJhdG9y
LCBuZWcyVG9UaGUzMSksIG5lZzJUb1RoZTMxQnlOZWcxLCBjb250aW51YXRpb24pOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5lZzJUb1RoZTMxQnlO
ZWcxLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0
LmFuY2hvcihtX291dC5pbnQzMlplcm8pKTsKKyAgICAgICAgICAgICAgICBtX291dC5qdW1wKGRv
bmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhjb250aW51YXRpb24sIGRvbmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFs
dWUgcmVtYWluZGVyID0gbV9vdXQucmVtKG51bWVyYXRvciwgZGVub21pbmF0b3IpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5h
cml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBuZWdhdGl2ZU51bWVy
YXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbmVnYXRpdmUgbnVtZXJhdG9y
IikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG51bWVyYXRvckNvbnRpbnVhdGlvbiA9
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbnVtZXJhdG9yIGNvbnRpbnVhdGlvbiIp
KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAg
ICAgICAgICAgICAgICAgIG1fb3V0Lmxlc3NUaGFuKG51bWVyYXRvciwgbV9vdXQuaW50MzJaZXJv
KSwKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVOdW1lcmF0b3IsIG51bWVyYXRvckNvbnRp
bnVhdGlvbik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sg
aW5uZXJMYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5lZ2F0aXZlTnVtZXJhdG9yLCBudW1lcmF0
b3JDb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNwZWN1
bGF0ZShOZWdhdGl2ZVplcm8sIG5vVmFsdWUoKSwgMCwgbV9vdXQuaXNaZXJvMzIocmVtYWluZGVy
KSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuanVtcChudW1lcmF0
b3JDb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKG51bWVyYXRvckNvbnRpbnVhdGlvbiwgaW5uZXJMYXN0TmV4dCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFu
Y2hvcihyZW1haW5kZXIpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgc2V0SW50MzIobV9vdXQucGhpKG1fb3V0LmludDMyLCByZXN1
bHRzKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAg
ICAgIGNhc2UgTnVtYmVyVXNlOiB7CisgICAgICAgICAgICBzZXREb3VibGUoCisgICAgICAgICAg
ICAgICAgbV9vdXQuZG91YmxlUmVtKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSwgbG93RG91
YmxlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisK
ICAgICB2b2lkIGNvbXBpbGVBcml0aE1pbk9yTWF4KCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAo
bV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKQEAgLTExMTQsNiArMTM0MSwxMiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisKKyAgICB2b2lkIGNvbXBp
bGVBcml0aFNpbigpIHsgc2V0RG91YmxlKG1fb3V0LmRvdWJsZVNpbihsb3dEb3VibGUobV9ub2Rl
LT5jaGlsZDEoKSkpKTsgfQorCisgICAgdm9pZCBjb21waWxlQXJpdGhDb3MoKSB7IHNldERvdWJs
ZShtX291dC5kb3VibGVDb3MobG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7IH0KKworICAg
IHZvaWQgY29tcGlsZUFyaXRoU3FydCgpIHsgc2V0RG91YmxlKG1fb3V0LmRvdWJsZVNxcnQobG93
RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7IH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVBcml0
aE5lZ2F0ZSgpCiAgICAgewpAQCAtMTEyMSwxNiArMTM1NCwxOCBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIEludDMyVXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dJbnQzMiht
X25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgTFZhbHVlIHJlc3Vs
dCA9IG1fb3V0Lm5lZyh2YWx1ZSk7Ci0gICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxv
dyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAgICAgICAgICAgIGlmICghc2hvdWxkQ2hl
Y2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIG5lZ2F0ZS13aXRoLW92ZXJmbG93IGludHJpbnNpYy4gSG9w
ZWZ1bGx5IHRoaXMKLSAgICAgICAgICAgICAgICAgICAgLy8gZG9lcyB0aGUgdHJpY2ssIHRob3Vn
aC4KLSAgICAgICAgICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93UmVzdWx0ID0gbV9vdXQuc3Vi
V2l0aE92ZXJmbG93MzIobV9vdXQuaW50MzJaZXJvLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUo
b3ZlcmZsb3dSZXN1bHQsIDEpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LnRlc3RJc1pl
cm8zMih2YWx1ZSwgbV9vdXQuY29uc3RJbnQzMigweDdmZmZmZmZmKSkpOwotCisgICAgICAgICAg
ICBMVmFsdWUgcmVzdWx0OworICAgICAgICAgICAgaWYgKCFzaG91bGRDaGVja092ZXJmbG93KG1f
bm9kZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0Lm5lZyh2
YWx1ZSk7CisgICAgICAgICAgICBlbHNlIGlmICghc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9u
b2RlLT5hcml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYXZlIGEg
bmVnYXRlLXdpdGgtb3ZlcmZsb3cgaW50cmluc2ljLiBIb3BlZnVsbHkgdGhpcworICAgICAgICAg
ICAgICAgIC8vIGRvZXMgdGhlIHRyaWNrLCB0aG91Z2guCisgICAgICAgICAgICAgICAgTFZhbHVl
IG92ZXJmbG93UmVzdWx0ID0gbV9vdXQuc3ViV2l0aE92ZXJmbG93MzIobV9vdXQuaW50MzJaZXJv
LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCks
IDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMSkpOworICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMCk7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9W
YWx1ZSgpLCAwLCBtX291dC50ZXN0SXNaZXJvMzIodmFsdWUsIG1fb3V0LmNvbnN0SW50MzIoMHg3
ZmZmZmZmZikpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5uZWcodmFsdWUpOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBzZXRJbnQzMihyZXN1bHQpOwpAQCAtMTE1MSw3
ICsxMzg2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0ludDUy
KG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93UmVzdWx0ID0g
bV9vdXQuc3ViV2l0aE92ZXJmbG93NjQobV9vdXQuaW50NjRaZXJvLCB2YWx1ZSk7CiAgICAgICAg
ICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0
VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBt
X291dC5uZWcodmFsdWUpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmV4dHJh
Y3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMCk7CiAgICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRp
dmVaZXJvLCBub1ZhbHVlKCksIDAsIG1fb3V0LmlzWmVybzY0KHJlc3VsdCkpOwogICAgICAgICAg
ICAgc2V0SW50NTIocmVzdWx0KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTI3NSw2ICsxNTEw
LDE3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChjZWxsLCB3ZWFrUG9p
bnRlcihtX25vZGUtPmZ1bmN0aW9uKCkpKSk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGls
ZUNoZWNrRXhlY3V0YWJsZSgpCisgICAgeworICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwo
bV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIAorICAgICAgICBzcGVjdWxhdGUoCisgICAgICAg
ICAgICBCYWRFeGVjdXRhYmxlLCBqc1ZhbHVlVmFsdWUoY2VsbCksIG1fbm9kZS0+Y2hpbGQxKCku
bm9kZSgpLAorICAgICAgICAgICAgbV9vdXQubm90RXF1YWwoCisgICAgICAgICAgICAgICAgbV9v
dXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTRnVuY3Rpb25fZXhlY3V0YWJsZSksCisgICAgICAg
ICAgICAgICAgd2Vha1BvaW50ZXIobV9ub2RlLT5leGVjdXRhYmxlKCkpKSk7CisgICAgfQorICAg
IAogICAgIHZvaWQgY29tcGlsZUFycmF5aWZ5VG9TdHJ1Y3R1cmUoKQogICAgIHsKICAgICAgICAg
TFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwpAQCAtMTM3MCw4ICsxNjE2
LDggQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQuY2Fs
bCgKICAgICAgICAgICAgIG1fb3V0LnBhdGNocG9pbnRJbnQ2NEludHJpbnNpYygpLAotICAgICAg
ICAgICAgbV9vdXQuY29uc3RJbnQzMihzdGFja21hcElEKSwgbV9vdXQuY29uc3RJbnQzMihzaXpl
T2ZHZXRCeUlkKCkpLAotICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5j
b25zdEludDMyKDIpLCBtX2NhbGxGcmFtZSwgYmFzZSk7CisgICAgICAgICAgICBtX291dC5jb25z
dEludDY0KHN0YWNrbWFwSUQpLCBtX291dC5jb25zdEludDMyKHNpemVPZkdldEJ5SWQoKSksCisg
ICAgICAgICAgICBjb25zdE51bGwobV9vdXQucmVmOCksIG1fb3V0LmNvbnN0SW50MzIoMSksIGJh
c2UpOwogICAgICAgICBzZXRJbnN0cnVjdGlvbkNhbGxpbmdDb252ZW50aW9uKGNhbGwsIExMVk1B
bnlSZWdDYWxsQ29udik7CiAgICAgICAgIHNldEpTVmFsdWUoY2FsbCk7CiAgICAgICAgIApAQCAt
MTM5NSw4ICsxNjQxLDggQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIExWYWx1ZSBjYWxs
ID0gbV9vdXQuY2FsbCgKICAgICAgICAgICAgIG1fb3V0LnBhdGNocG9pbnRWb2lkSW50cmluc2lj
KCksCi0gICAgICAgICAgICBtX291dC5jb25zdEludDMyKHN0YWNrbWFwSUQpLCBtX291dC5jb25z
dEludDMyKHNpemVPZlB1dEJ5SWQoKSksCi0gICAgICAgICAgICBjb25zdE51bGwobV9vdXQucmVm
OCksIG1fb3V0LmNvbnN0SW50MzIoMyksIG1fY2FsbEZyYW1lLCBiYXNlLCB2YWx1ZSk7CisgICAg
ICAgICAgICBtX291dC5jb25zdEludDY0KHN0YWNrbWFwSUQpLCBtX291dC5jb25zdEludDMyKHNp
emVPZlB1dEJ5SWQoKSksCisgICAgICAgICAgICBjb25zdE51bGwobV9vdXQucmVmOCksIG1fb3V0
LmNvbnN0SW50MzIoMiksIGJhc2UsIHZhbHVlKTsKICAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxs
aW5nQ29udmVudGlvbihjYWxsLCBMTFZNQW55UmVnQ2FsbENvbnYpOwogICAgICAgICAKICAgICAg
ICAgbV9mdGxTdGF0ZS5wdXRCeUlkcy5hcHBlbmQoUHV0QnlJZERlc2NyaXB0b3IoCkBAIC0xNDYz
LDIwICsxNzA5LDIwIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAg
ICAgICBjYXNlIEFycmF5OjpEb3VibGU6CiAgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6
IHsKLSAgICAgICAgICAgIHNldEludDMyKG1fb3V0LmxvYWQzMihsb3dTdG9yYWdlKG1fbm9kZS0+
Y2hpbGQyKCkpLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsKKyAgICAgICAgICAg
IHNldEludDMyKG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGxvd1N0b3JhZ2UobV9ub2RlLT5jaGls
ZDIoKSksIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheTo6U3RyaW5n
OiB7CiAgICAgICAgICAgICBMVmFsdWUgc3RyaW5nID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgp
KTsKLSAgICAgICAgICAgIHNldEludDMyKG1fb3V0LmxvYWQzMihzdHJpbmcsIG1faGVhcHMuSlNT
dHJpbmdfbGVuZ3RoKSk7CisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzJOb25OZWdh
dGl2ZShzdHJpbmcsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgaWYgKGlzVHlwZWRWaWV3KG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSkp
IHsKICAgICAgICAgICAgICAgICBzZXRJbnQzMigKLSAgICAgICAgICAgICAgICAgICAgbV9vdXQu
bG9hZDMyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZp
ZXdfbGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZl
KGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZpZXdfbGVu
Z3RoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgCkBAIC0xNTE4LDcgKzE3NjQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKAot
ICAgICAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyKHN0b3JhZ2UsIG1faGVhcHMu
QnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpLAorICAgICAgICAgICAgICAgICAgICBpbmRleCwgbV9v
dXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVu
Z3RoKSksCiAgICAgICAgICAgICAgICAgc2xvd0Nhc2UsIGZhc3RDYXNlKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhmYXN0
Q2FzZSwgc2xvd0Nhc2UpOwpAQCAtMTU2NSw3ICsxODExLDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fb3V0LmFi
b3ZlT3JFcXVhbCgKLSAgICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihzdG9y
YWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKKyAgICAgICAgICAgICAgICAg
ICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVy
Zmx5X3B1YmxpY0xlbmd0aCkpLAogICAgICAgICAgICAgICAgIHNsb3dDYXNlLCBpbkJvdW5kcyk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQu
YXBwZW5kVG8oaW5Cb3VuZHMsIGJveFBhdGgpOwpAQCAtMTY4Nyw2ICsxOTMzLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgRWRnZSBjaGlsZDIgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSk7
CiAgICAgICAgIEVkZ2UgY2hpbGQzID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDIpOwog
ICAgICAgICBFZGdlIGNoaWxkNCA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAzKTsKKyAg
ICAgICAgRWRnZSBjaGlsZDUgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgNCk7CiAgICAg
ICAgIAogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7CiAgICAg
ICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKQEAgLTE4MDEsNiArMjA0OCw5IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuemVyb0V4dChpbmRleCwgbV9vdXQu
aW50UHRyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihs
b2dFbGVtZW50U2l6ZSh0eXBlKSkpKSk7CiAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgTFR5cGUgcmVmVHlwZTsKKyAgICAgICAgICAgICAgICBMVmFsdWUgdmFsdWVUb1N0b3JlOwor
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChpc0ludCh0eXBlKSkgewogICAg
ICAgICAgICAgICAgICAgICBMVmFsdWUgaW50VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgIHN3
aXRjaCAoY2hpbGQzLnVzZUtpbmQoKSkgewpAQCAtMTg3NiwzNCArMjEyNiw1MyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChlbGVt
ZW50U2l6ZSh0eXBlKSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBtX291dC5zdG9yZTgobV9vdXQuaW50Q2FzdChpbnRWYWx1ZSwgbV9vdXQu
aW50OCksIHBvaW50ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3JlID0g
bV9vdXQuaW50Q2FzdChpbnRWYWx1ZSwgbV9vdXQuaW50OCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICByZWZUeXBlID0gbV9vdXQucmVmODsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAgICAgICAgICAgICBt
X291dC5zdG9yZTE2KG1fb3V0LmludENhc3QoaW50VmFsdWUsIG1fb3V0LmludDE2KSwgcG9pbnRl
cik7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvU3RvcmUgPSBtX291dC5pbnRDYXN0
KGludFZhbHVlLCBtX291dC5pbnQxNik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZUeXBl
ID0gbV9vdXQucmVmMTY7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICAgICAgY2FzZSA0OgotICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmUz
MihpbnRWYWx1ZSwgcG9pbnRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvU3Rv
cmUgPSBpbnRWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlR5cGUgPSBtX291dC5y
ZWYzMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSAv
KiAhaXNJbnQodHlwZSkgKi8geworICAgICAgICAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBs
b3dEb3VibGUoY2hpbGQzKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUZsb2F0MzI6CisgICAgICAgICAgICAgICAgICAg
ICAgICB2YWx1ZVRvU3RvcmUgPSBtX291dC5mcENhc3QodmFsdWUsIG1fb3V0LmZsb2F0VHlwZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICByZWZUeXBlID0gbV9vdXQucmVmRmxvYXQ7CisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBl
RmxvYXQ2NDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9TdG9yZSA9IHZhbHVlOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZkRvdWJsZTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBBU1NFUlQoaXNGbG9hdCh0eXBlKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKGNoaWxkMyk7Ci0gICAgICAgICAg
ICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBUeXBlRmxvYXQzMjoK
LSAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmVGbG9hdChtX291dC5mcENhc3QodmFsdWUs
IG1fb3V0LmZsb2F0VHlwZSksIHBvaW50ZXIpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICBjYXNlIFR5cGVGbG9hdDY0OgotICAgICAgICAgICAgICAgICAgICBt
X291dC5zdG9yZURvdWJsZSh2YWx1ZSwgcG9pbnRlcik7Ci0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgaWYgKG1fbm9kZS0+YXJy
YXlNb2RlKCkuaXNJbkJvdW5kcygpKQorICAgICAgICAgICAgICAgICAgICBtX291dC5zdG9yZSh2
YWx1ZVRvU3RvcmUsIHBvaW50ZXIsIHJlZlR5cGUpOworICAgICAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpc0luQm91bmRzID0gRlRMX05FV19CTE9D
SyhtX291dCwgKCJQdXRCeVZhbCB0eXBlZCBhcnJheSBpbiBib3VuZHMgY2FzZSIpKTsKKyAgICAg
ICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyht
X291dCwgKCJQdXRCeVZhbCB0eXBlZCBhcnJheSBjb250aW51YXRpb24iKSk7CisgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoaW5kZXgsIGxvd0ludDMyKGNoaWxkNSkp
LAorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWF0aW9uLCBpc0luQm91bmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3RO
ZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNJbkJvdW5kcywgY29udGludWF0aW9uKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9vdXQuc3RvcmUodmFsdWVUb1N0b3JlLCBwb2ludGVyLCByZWZUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0
aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMjA2
MCw2ICsyMzI5LDEwOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIo
bV9ub2RlLT5udW1Db25zdGFudHMoKSkpKTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxl
TmV3QXJyYXlXaXRoU2l6ZSgpCisgICAgeworICAgICAgICBMVmFsdWUgcHVibGljTGVuZ3RoID0g
bG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIAorICAgICAgICBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2RlLT5jb2Rl
T3JpZ2luKTsKKyAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmFy
cmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbigKKyAgICAgICAgICAg
IG1fbm9kZS0+aW5kZXhpbmdUeXBlKCkpOworICAgICAgICAKKyAgICAgICAgaWYgKCFnbG9iYWxP
YmplY3QtPmlzSGF2aW5nQUJhZFRpbWUoKSAmJiAhaGFzQXJyYXlTdG9yYWdlKG1fbm9kZS0+aW5k
ZXhpbmdUeXBlKCkpKSB7CisgICAgICAgICAgICBBU1NFUlQoCisgICAgICAgICAgICAgICAgaGFz
VW5kZWNpZGVkKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCisgICAgICAgICAgICAgICAgfHwg
aGFzSW50MzIoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkKKyAgICAgICAgICAgICAgICB8fCBo
YXNEb3VibGUoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkKKyAgICAgICAgICAgICAgICB8fCBo
YXNDb250aWd1b3VzKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpKTsKKworICAgICAgICAgICAg
TEJhc2ljQmxvY2sgZmFzdENhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0
aFNpemUgZmFzdCBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFyZ2VDYXNlID0g
RlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGxhcmdlIGNhc2UiKSk7Cisg
ICAgICAgICAgICBMQmFzaWNCbG9jayBmYWlsQ2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgi
TmV3QXJyYXlXaXRoU2l6ZSBmYWlsIGNhc2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBz
bG93Q2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBzbG93IGNh
c2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JM
T0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgY29udGludWF0aW9uIikpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICAgICAgbV9vdXQuYWJv
dmVPckVxdWFsKHB1YmxpY0xlbmd0aCwgbV9vdXQuY29uc3RJbnQzMihNSU5fU1BBUlNFX0FSUkFZ
X0lOREVYKSksCisgICAgICAgICAgICAgICAgbGFyZ2VDYXNlLCBmYXN0Q2FzZSk7CisKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZmFzdENhc2UsIGxh
cmdlQ2FzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFdlIGRvbid0IHJvdW5kIHVw
IHRvIEJBU0VfVkVDVE9SX0xFTiBmb3IgbmV3IEFycmF5KGJsYWgpLgorICAgICAgICAgICAgTFZh
bHVlIHZlY3Rvckxlbmd0aCA9IHB1YmxpY0xlbmd0aDsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgTFZhbHVlIHBheWxvYWRTaXplID0KKyAgICAgICAgICAgICAgICBtX291dC5zaGwobV9vdXQu
emVyb0V4dCh2ZWN0b3JMZW5ndGgsIG1fb3V0LmludFB0ciksIG1fb3V0LmNvbnN0SW50UHRyKDMp
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGJ1dHRlcmZseVNpemUgPSBtX291
dC5hZGQoCisgICAgICAgICAgICAgICAgcGF5bG9hZFNpemUsIG1fb3V0LmNvbnN0SW50UHRyKHNp
emVvZihJbmRleGluZ0hlYWRlcikpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVl
IGVuZE9mU3RvcmFnZSA9IGFsbG9jYXRlQmFzaWNTdG9yYWdlQW5kR2V0RW5kKGJ1dHRlcmZseVNp
emUsIGZhaWxDYXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGJ1dHRlcmZs
eSA9IG1fb3V0LnN1YihlbmRPZlN0b3JhZ2UsIHBheWxvYWRTaXplKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgTFZhbHVlIG9iamVjdCA9IGFsbG9jYXRlT2JqZWN0PEpTQXJyYXk+KAorICAg
ICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHN0cnVjdHVyZSksIGJ1dHRlcmZseSwgZmFp
bENhc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5zdG9yZTMyKHB1YmxpY0xl
bmd0aCwgYnV0dGVyZmx5LCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpOworICAgICAg
ICAgICAgbV9vdXQuc3RvcmUzMih2ZWN0b3JMZW5ndGgsIGJ1dHRlcmZseSwgbV9oZWFwcy5CdXR0
ZXJmbHlfdmVjdG9yTGVuZ3RoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGhhc0Rv
dWJsZShtX25vZGUtPmluZGV4aW5nVHlwZSgpKSkgeworICAgICAgICAgICAgICAgIExCYXNpY0Js
b2NrIGluaXRMb29wID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGRv
dWJsZSBpbml0IGxvb3AiKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgaW5pdERvbmUg
PSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgZG91YmxlIGluaXQgZG9u
ZSIpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBv
cmlnaW5hbEluZGV4ID0gbV9vdXQuYW5jaG9yKHZlY3Rvckxlbmd0aCk7CisgICAgICAgICAgICAg
ICAgVmFsdWVGcm9tQmxvY2sgb3JpZ2luYWxQb2ludGVyID0gbV9vdXQuYW5jaG9yKGJ1dHRlcmZs
eSk7CisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdFplcm8zMih2ZWN0b3JM
ZW5ndGgpLCBpbml0TG9vcCwgaW5pdERvbmUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGluaXRMYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGluaXRMb29w
LCBpbml0RG9uZSk7CisgICAgICAgICAgICAgICAgTFZhbHVlIGluZGV4ID0gbV9vdXQucGhpKG1f
b3V0LmludDMyLCBvcmlnaW5hbEluZGV4KTsKKyAgICAgICAgICAgICAgICBMVmFsdWUgcG9pbnRl
ciA9IG1fb3V0LnBoaShtX291dC5pbnRQdHIsIG9yaWdpbmFsUG9pbnRlcik7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmU2NCgKKyAgICAgICAgICAgICAgICAg
ICAgbV9vdXQuY29uc3RJbnQ2NChiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oUU5hTikpLAorICAgICAg
ICAgICAgICAgICAgICBUeXBlZFBvaW50ZXIobV9oZWFwcy5pbmRleGVkRG91YmxlUHJvcGVydGll
cy5hdEFueUluZGV4KCksIHBvaW50ZXIpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBMVmFsdWUgbmV4dEluZGV4ID0gbV9vdXQuc3ViKGluZGV4LCBtX291dC5pbnQzMk9uZSk7
CisgICAgICAgICAgICAgICAgYWRkSW5jb21pbmcoaW5kZXgsIG1fb3V0LmFuY2hvcihuZXh0SW5k
ZXgpKTsKKyAgICAgICAgICAgICAgICBhZGRJbmNvbWluZyhwb2ludGVyLCBtX291dC5hbmNob3Io
bV9vdXQuYWRkKHBvaW50ZXIsIG1fb3V0LmludFB0ckVpZ2h0KSkpOworICAgICAgICAgICAgICAg
IG1fb3V0LmJyYW5jaChtX291dC5ub3RaZXJvMzIobmV4dEluZGV4KSwgaW5pdExvb3AsIGluaXRE
b25lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhp
bml0RG9uZSwgaW5pdExhc3ROZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihvYmplY3Qp
OworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBtX291dC5hcHBlbmRUbyhsYXJnZUNhc2UsIGZhaWxDYXNlKTsKKyAgICAgICAg
ICAgIFZhbHVlRnJvbUJsb2NrIGxhcmdlU3RydWN0dXJlID0gbV9vdXQuYW5jaG9yKG1fb3V0LmNv
bnN0SW50UHRyKAorICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVG
b3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aEFycmF5U3RvcmFnZSkpKTsK
KyAgICAgICAgICAgIG1fb3V0Lmp1bXAoc2xvd0Nhc2UpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBtX291dC5hcHBlbmRUbyhmYWlsQ2FzZSwgc2xvd0Nhc2UpOworICAgICAgICAgICAgVmFs
dWVGcm9tQmxvY2sgZmFpbFN0cnVjdHVyZSA9IG1fb3V0LmFuY2hvcihtX291dC5jb25zdEludFB0
cihzdHJ1Y3R1cmUpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoc2xvd0Nhc2UpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9u
KTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVWYWx1ZSA9IG1fb3V0LnBoaSgKKyAgICAg
ICAgICAgICAgICBtX291dC5pbnRQdHIsIGxhcmdlU3RydWN0dXJlLCBmYWlsU3RydWN0dXJlKTsK
KyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Iodm1D
YWxsKAorICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25OZXdBcnJheVdp
dGhTaXplKSwKKyAgICAgICAgICAgICAgICBtX2NhbGxGcmFtZSwgc3RydWN0dXJlVmFsdWUsIHB1
YmxpY0xlbmd0aCkpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3RO
ZXh0KTsKKyAgICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKG1fb3V0LmludFB0ciwgZmFz
dFJlc3VsdCwgc2xvd1Jlc3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICBMVmFsdWUgc3RydWN0dXJlVmFsdWUgPSBtX291dC5zZWxlY3QoCisg
ICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwocHVibGljTGVuZ3RoLCBtX291dC5jb25zdElu
dDMyKE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50
UHRyKAorICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRl
eGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aEFycmF5U3RvcmFnZSkpLAorICAgICAg
ICAgICAgbV9vdXQuY29uc3RJbnRQdHIoc3RydWN0dXJlKSk7CisgICAgICAgIHNldEpTVmFsdWUo
dm1DYWxsKG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplKSwgbV9jYWxs
RnJhbWUsIHN0cnVjdHVyZVZhbHVlLCBwdWJsaWNMZW5ndGgpKTsKKyAgICB9CisgICAgCiAgICAg
dm9pZCBjb21waWxlQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoKQogICAgIHsKICAgICAgICAgU3Ry
dWN0dXJlVHJhbnNpdGlvbkRhdGEmIGRhdGEgPSBtX25vZGUtPnN0cnVjdHVyZVRyYW5zaXRpb25E
YXRhKCk7CkBAIC0yMTAyLDYgKzI0NzQsMTYwIEBAIHByaXZhdGU6CiAgICAgICAgIHNldFN0b3Jh
Z2UocmVzdWx0KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlVG9TdHJpbmcoKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgeworICAgICAg
ICBjYXNlIFN0cmluZ09iamVjdFVzZTogeworICAgICAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dD
ZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0
Rm9yQ2VsbChtX25vZGUtPmNoaWxkMSgpLCBjZWxsKTsKKyAgICAgICAgICAgIG1faW50ZXJwcmV0
ZXIuZmlsdGVyKG1fbm9kZS0+Y2hpbGQxKCksIFNwZWNTdHJpbmdPYmplY3QpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5K
U1dyYXBwZXJPYmplY3RfaW50ZXJuYWxWYWx1ZSkpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVz
ZTogeworICAgICAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9o
ZWFwcy5KU0NlbGxfc3RydWN0dXJlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2lj
QmxvY2sgbm90U3RyaW5nID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJUb1N0cmluZyBTdHJpbmdP
clN0cmluZ09iamVjdCBub3Qgc3RyaW5nIGNhc2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9j
ayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIFN0cmluZ09y
U3RyaW5nT2JqZWN0IGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
VmFsdWVGcm9tQmxvY2sgc2ltcGxlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGNlbGwpOworICAgICAg
ICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgIG1fb3V0LmVxdWFsKHN0cnVjdHVy
ZSwgbV9vdXQuY29uc3RJbnRQdHIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSwKKyAgICAg
ICAgICAgICAgICBjb250aW51YXRpb24sIG5vdFN0cmluZyk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90U3RyaW5nLCBj
b250aW51YXRpb24pOworICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yU3RydWN0
dXJlKG1fbm9kZS0+Y2hpbGQxKCksIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBWYWx1ZUZyb21C
bG9jayB1bmJveGVkUmVzdWx0ID0gbV9vdXQuYW5jaG9yKAorICAgICAgICAgICAgICAgIG1fb3V0
LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5KU1dyYXBwZXJPYmplY3RfaW50ZXJuYWxWYWx1ZSkpOwor
ICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAg
ICAgIHNldEpTVmFsdWUobV9vdXQucGhpKG1fb3V0LmludDY0LCBzaW1wbGVSZXN1bHQsIHVuYm94
ZWRSZXN1bHQpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9pbnRlcnByZXRlci5maWx0
ZXIobV9ub2RlLT5jaGlsZDEoKSwgU3BlY1N0cmluZyB8IFNwZWNTdHJpbmdPYmplY3QpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBD
ZWxsVXNlOgorICAgICAgICBjYXNlIFVudHlwZWRVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSB2
YWx1ZTsKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxs
VXNlKQorICAgICAgICAgICAgICAgIHZhbHVlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGxvd0pTVmFsdWUobV9u
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlz
Q2VsbCA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiVG9TdHJpbmcgQ2VsbFVzZS9VbnR5cGVkVXNl
IGlzIGNlbGwiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RTdHJpbmcgPSBGVExfTkVX
X0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIENlbGxVc2UvVW50eXBlZFVzZSBub3Qgc3RyaW5nIikp
OworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyht
X291dCwgKCJUb1N0cmluZyBDZWxsVXNlL1VudHlwZWRVc2UgY29udGludWF0aW9uIikpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgaXNDZWxsUHJlZGljYXRlOworICAgICAgICAg
ICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UpCisgICAgICAgICAg
ICAgICAgaXNDZWxsUHJlZGljYXRlID0gbV9vdXQuYm9vbGVhblRydWU7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgaXNDZWxsUHJlZGljYXRlID0gdGhpcy0+aXNDZWxsKHZhbHVl
KTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0NlbGxQcmVkaWNhdGUsIGlzQ2VsbCwgbm90
U3RyaW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQg
PSBtX291dC5hcHBlbmRUbyhpc0NlbGwsIG5vdFN0cmluZyk7CisgICAgICAgICAgICBWYWx1ZUZy
b21CbG9jayBzaW1wbGVSZXN1bHQgPSBtX291dC5hbmNob3IodmFsdWUpOworICAgICAgICAgICAg
TFZhbHVlIGlzU3RyaW5nUHJlZGljYXRlOworICAgICAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQx
KCktPnByZWRpY3Rpb24oKSAmIFNwZWNTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICBpc1N0cmlu
Z1ByZWRpY2F0ZSA9IG1fb3V0LmVxdWFsKAorICAgICAgICAgICAgICAgICAgICBtX291dC5sb2Fk
UHRyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUpLAorICAgICAgICAgICAgICAgICAg
ICBtX291dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgaXNTdHJpbmdQcmVkaWNhdGUgPSBtX291dC5i
b29sZWFuRmFsc2U7CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNTdHJpbmdQcmVkaWNhdGUs
IGNvbnRpbnVhdGlvbiwgbm90U3RyaW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8obm90U3RyaW5nLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgTFZhbHVl
IG9wZXJhdGlvbjsKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9
PSBDZWxsVXNlKQorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IG1fb3V0Lm9wZXJhdGlvbihv
cGVyYXRpb25Ub1N0cmluZ09uQ2VsbCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgb3BlcmF0aW9uID0gbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvblRvU3RyaW5nKTsKKyAgICAg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIGNvbnZlcnRlZFJlc3VsdCA9IG1fb3V0LmFuY2hvcih2bUNh
bGwob3BlcmF0aW9uLCBtX2NhbGxGcmFtZSwgdmFsdWUpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1
bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0
LnBoaShtX291dC5pbnQ2NCwgc2ltcGxlUmVzdWx0LCBjb252ZXJ0ZWRSZXN1bHQpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCBjb21waWxlTWFrZVJvcGUo
KQorICAgIHsKKyAgICAgICAgTFZhbHVlIGtpZHNbM107CisgICAgICAgIHVuc2lnbmVkIG51bUtp
ZHM7CisgICAgICAgIGtpZHNbMF0gPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICBraWRzWzFdID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgaWYgKG1fbm9k
ZS0+Y2hpbGQzKCkpIHsKKyAgICAgICAgICAgIGtpZHNbMl0gPSBsb3dDZWxsKG1fbm9kZS0+Y2hp
bGQzKCkpOworICAgICAgICAgICAgbnVtS2lkcyA9IDM7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBraWRzWzJdID0gMDsKKyAgICAgICAgICAgIG51bUtpZHMgPSAyOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBMQmFzaWNCbG9jayBzbG93UGF0aCA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiTWFrZVJvcGUgc2xvdyBwYXRoIikpOworICAgICAgICBMQmFzaWNCbG9jayBjb250
aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk1ha2VSb3BlIGNvbnRpbnVhdGlvbiIp
KTsKKyAgICAgICAgCisgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0
TmV3QmxvY2tzQmVmb3JlKHNsb3dQYXRoKTsKKyAgICAgICAgCisgICAgICAgIE1hcmtlZEFsbG9j
YXRvciYgYWxsb2NhdG9yID0KKyAgICAgICAgICAgIHZtKCkuaGVhcC5hbGxvY2F0b3JGb3JPYmpl
Y3RXaXRoSW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemVvZihKU1JvcGVTdHJpbmcpKTsK
KyAgICAgICAgCisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBhbGxvY2F0ZUNlbGwoCisgICAgICAg
ICAgICBtX291dC5jb25zdEludFB0cigmYWxsb2NhdG9yKSwKKyAgICAgICAgICAgIG1fb3V0LmNv
bnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJlLmdldCgpKSwKKyAgICAgICAgICAgIHNsb3dQ
YXRoKTsKKyAgICAgICAgCisgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmludFB0clplcm8s
IHJlc3VsdCwgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBudW1LaWRzOyArK2kpCisgICAgICAgICAgICBtX291dC5zdG9yZVB0cihraWRz
W2ldLCByZXN1bHQsIG1faGVhcHMuSlNSb3BlU3RyaW5nX2ZpYmVyc1tpXSk7CisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IG51bUtpZHM7IGkgPCBKU1JvcGVTdHJpbmc6OnNfbWF4SW50ZXJuYWxS
b3BlTGVuZ3RoOyArK2kpCisgICAgICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5pbnRQdHJa
ZXJvLCByZXN1bHQsIG1faGVhcHMuSlNSb3BlU3RyaW5nX2ZpYmVyc1tpXSk7CisgICAgICAgIExW
YWx1ZSBmbGFncyA9IG1fb3V0LmxvYWQzMihraWRzWzBdLCBtX2hlYXBzLkpTU3RyaW5nX2ZsYWdz
KTsKKyAgICAgICAgTFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMihraWRzWzBdLCBtX2hlYXBz
LkpTU3RyaW5nX2xlbmd0aCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBudW1L
aWRzOyArK2kpIHsKKyAgICAgICAgICAgIGZsYWdzID0gbV9vdXQuYml0QW5kKGZsYWdzLCBtX291
dC5sb2FkMzIoa2lkc1tpXSwgbV9oZWFwcy5KU1N0cmluZ19mbGFncykpOworICAgICAgICAgICAg
bGVuZ3RoID0gbV9vdXQuYWRkKGxlbmd0aCwgbV9vdXQubG9hZDMyKGtpZHNbaV0sIG1faGVhcHMu
SlNTdHJpbmdfbGVuZ3RoKSk7CisgICAgICAgIH0KKyAgICAgICAgbV9vdXQuc3RvcmUzMigKKyAg
ICAgICAgICAgIG1fb3V0LmJpdEFuZChtX291dC5jb25zdEludDMyKEpTU3RyaW5nOjpJczhCaXQp
LCBmbGFncyksCisgICAgICAgICAgICByZXN1bHQsIG1faGVhcHMuSlNTdHJpbmdfZmxhZ3MpOwor
ICAgICAgICBtX291dC5zdG9yZTMyKGxlbmd0aCwgcmVzdWx0LCBtX2hlYXBzLkpTU3RyaW5nX2xl
bmd0aCk7CisgICAgICAgIAorICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9v
dXQuYW5jaG9yKHJlc3VsdCk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAg
ICAgICAgCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dQYXRoLCBjb250aW51YXRpb24pOwor
ICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0OworICAgICAgICBzd2l0Y2ggKG51bUtp
ZHMpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgc2xvd1Jlc3VsdCA9IG1fb3V0LmFu
Y2hvcih2bUNhbGwoCisgICAgICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbk1h
a2VSb3BlMiksIG1fY2FsbEZyYW1lLCBraWRzWzBdLCBraWRzWzFdKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgc2xvd1Jlc3VsdCA9IG1fb3V0LmFu
Y2hvcih2bUNhbGwoCisgICAgICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbk1h
a2VSb3BlMyksIG1fY2FsbEZyYW1lLCBraWRzWzBdLCBraWRzWzFdLCBraWRzWzJdKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgIAorICAgICAgICBtX291dC5hcHBl
bmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5w
aGkobV9vdXQuaW50NjQsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpKTsKKyAgICB9CisgICAgCiAg
ICAgdm9pZCBjb21waWxlU3RyaW5nQ2hhckF0KCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBiYXNl
ID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKQEAgLTIxMTQsNyArMjY0MCw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgbV9v
dXQuYWJvdmVPckVxdWFsKAotICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIoYmFz
ZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpKSwKKyAgICAgICAgICAgICAgICBpbmRleCwgbV9v
dXQubG9hZDMyTm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpKSwKICAg
ICAgICAgICAgIHNsb3dQYXRoLCBmYXN0UGF0aCk7CiAgICAgICAgICAgICAKICAgICAgICAgTEJh
c2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhmYXN0UGF0aCwgc2xvd1BhdGgpOwpA
QCAtMjIxMCw3ICsyNzM2LDggQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIHNwZWN1bGF0
ZSgKICAgICAgICAgICAgIFVuY291bnRhYmxlLCBub1ZhbHVlKCksIDAsCi0gICAgICAgICAgICBt
X291dC5hYm92ZU9yRXF1YWwoaW5kZXgsIG1fb3V0LmxvYWQzMihiYXNlLCBtX2hlYXBzLkpTU3Ry
aW5nX2xlbmd0aCkpKTsKKyAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKKyAgICAgICAg
ICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFwcy5KU1N0
cmluZ19sZW5ndGgpKSk7CiAgICAgICAgIAogICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1f
b3V0LmxvYWRQdHIoYmFzZSwgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7CiAgICAgICAgIApAQCAt
MjM0NSw2ICsyODcyLDE2IEBAIHByaXZhdGU6CiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRp
bnVhdGlvbiwgbGFzdE5leHQpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVHZXRDYWxs
ZWUoKQorICAgIHsKKyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkUHRyKGFkZHJlc3NGb3Io
SlNTdGFjazo6Q2FsbGVlKSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGNvbXBpbGVHZXRTY29w
ZSgpCisgICAgeworICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWRQdHIobG93Q2VsbChtX25v
ZGUtPmNoaWxkMSgpKSwgbV9oZWFwcy5KU0Z1bmN0aW9uX3Njb3BlKSk7CisgICAgfQorICAgIAog
ICAgIHZvaWQgY29tcGlsZUdldE15U2NvcGUoKQogICAgIHsKICAgICAgICAgc2V0SlNWYWx1ZSht
X291dC5sb2FkUHRyKGFkZHJlc3NGb3IoCkBAIC0yNDg4LDM1ICszMDI1LDM3IEBAIHByaXZhdGU6
CiAgICAgCiAgICAgdm9pZCBjb21waWxlQ2FsbE9yQ29uc3RydWN0KCkKICAgICB7Ci0gICAgICAg
IC8vIEZJWE1FOiBUaGlzIGlzIHVuYWNjZXB0YWJseSBzbG93LgotICAgICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIxCisgICAgICAgIGludCBkdW1t
eVRoaXNBcmd1bWVudCA9IG1fbm9kZS0+b3AoKSA9PSBDYWxsID8gMCA6IDE7CisgICAgICAgIGlu
dCBudW1QYXNzZWRBcmdzID0gbV9ub2RlLT5udW1DaGlsZHJlbigpIC0gMTsKKyAgICAgICAgaW50
IG51bUFyZ3MgPSBudW1QYXNzZWRBcmdzICsgZHVtbXlUaGlzQXJndW1lbnQ7CiAgICAgICAgIAot
ICAgICAgICBKX0pJVE9wZXJhdGlvbl9FIGZ1bmN0aW9uID0KLSAgICAgICAgICAgIG1fbm9kZS0+
b3AoKSA9PSBDYWxsID8gb3BlcmF0aW9uRlRMQ2FsbCA6IG9wZXJhdGlvbkZUTENvbnN0cnVjdDsK
KyAgICAgICAgTFZhbHVlIGNhbGxlZSA9IGxvd0pTVmFsdWUobV9ncmFwaC52YXJBcmdDaGlsZCht
X25vZGUsIDApKTsKICAgICAgICAgCi0gICAgICAgIGludCBkdW1teVRoaXNBcmd1bWVudCA9IG1f
bm9kZS0+b3AoKSA9PSBDYWxsID8gMCA6IDE7CisgICAgICAgIHVuc2lnbmVkIHN0YWNrbWFwSUQg
PSBtX3N0YWNrbWFwSURzKys7CiAgICAgICAgIAotICAgICAgICBpbnQgbnVtUGFzc2VkQXJncyA9
IG1fbm9kZS0+bnVtQ2hpbGRyZW4oKSAtIDE7CisgICAgICAgIFZlY3RvcjxMVmFsdWU+IGFyZ3Vt
ZW50czsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDY0KHN0YWNrbWFw
SUQpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDMyKHNpemVPZkNh
bGwoKSkpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGNvbnN0TnVsbChtX291dC5yZWY4KSk7
CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQzMigxICsgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplICsgbnVt
QXJncykpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGNhbGxlZSk7IC8vIGNhbGxlZSAtPiAl
cmF4CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoZ2V0VW5kZWYobV9vdXQuaW50NjQpKTsgLy8g
Y29kZSBibG9jaworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGdldFVuZGVmKG1fb3V0LmludDY0
KSk7IC8vIHNjb3BlIGNoYWluCisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoY2FsbGVlKTsgLy8g
Y2FsbGVlIC0+IHN0YWNrCisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQ2
NChudW1BcmdzKSk7IC8vIGFyZ3VtZW50IGNvdW50IGFuZCB6ZXJvcyBmb3IgdGhlIHRhZworICAg
ICAgICBpZiAoZHVtbXlUaGlzQXJndW1lbnQpCisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5k
KGdldFVuZGVmKG1fb3V0LmludDY0KSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVt
UGFzc2VkQXJnczsgKytpKQorICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChsb3dKU1ZhbHVl
KG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxICsgaSkpKTsKICAgICAgICAgCi0gICAgICAg
IExWYWx1ZSBjYWxsZWVGcmFtZSA9IG1fb3V0LmFkZCgKLSAgICAgICAgICAgIG1fY2FsbEZyYW1l
LAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIoc2l6ZW9mKFJlZ2lzdGVyKSAqIHZpcnR1
YWxSZWdpc3RlckZvckxvY2FsKG1fZ3JhcGguZnJhbWVSZWdpc3RlckNvdW50KCkpLm9mZnNldCgp
KSk7CisgICAgICAgIGNhbGxQcmVmbGlnaHQoKTsKICAgICAgICAgCi0gICAgICAgIG1fb3V0LnN0
b3JlMzIoCi0gICAgICAgICAgICBtX291dC5jb25zdEludDMyKG51bVBhc3NlZEFyZ3MgKyBkdW1t
eVRoaXNBcmd1bWVudCksCi0gICAgICAgICAgICBwYXlsb2FkRm9yKGNhbGxlZUZyYW1lLCBKU1N0
YWNrOjpBcmd1bWVudENvdW50KSk7Ci0gICAgICAgIG1fb3V0LnN0b3JlNjQobV9jYWxsRnJhbWUs
IGNhbGxlZUZyYW1lLCBtX2hlYXBzLkNhbGxGcmFtZV9jYWxsZXJGcmFtZSk7Ci0gICAgICAgIG1f
b3V0LnN0b3JlNjQoCi0gICAgICAgICAgICBsb3dKU1ZhbHVlKG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bV9ub2RlLCAwKSksCi0gICAgICAgICAgICBhZGRyZXNzRm9yKGNhbGxlZUZyYW1lLCBKU1N0YWNr
OjpDYWxsZWUpKTsKKyAgICAgICAgTFZhbHVlIGNhbGwgPSBtX291dC5jYWxsKG1fb3V0LnBhdGNo
cG9pbnRJbnQ2NEludHJpbnNpYygpLCBhcmd1bWVudHMpOworICAgICAgICBzZXRJbnN0cnVjdGlv
bkNhbGxpbmdDb252ZW50aW9uKGNhbGwsIExMVk1XZWJLaXRKU0NhbGxDb252KTsKICAgICAgICAg
Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUGFzc2VkQXJnczsgKytpKSB7Ci0gICAg
ICAgICAgICBtX291dC5zdG9yZTY0KAotICAgICAgICAgICAgICAgIGxvd0pTVmFsdWUobV9ncmFw
aC52YXJBcmdDaGlsZChtX25vZGUsIDEgKyBpKSksCi0gICAgICAgICAgICAgICAgYWRkcmVzc0Zv
cihjYWxsZWVGcmFtZSwgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoaSArIGR1bW15VGhpc0Fy
Z3VtZW50KS5vZmZzZXQoKSkpOwotICAgICAgICB9CisgICAgICAgIG1fZnRsU3RhdGUuanNDYWxs
cy5hcHBlbmQoSlNDYWxsKHN0YWNrbWFwSUQsIG1fbm9kZSkpOwogICAgICAgICAKLSAgICAgICAg
c2V0SlNWYWx1ZSh2bUNhbGwobV9vdXQub3BlcmF0aW9uKGZ1bmN0aW9uKSwgY2FsbGVlRnJhbWUp
KTsKKyAgICAgICAgc2V0SlNWYWx1ZShjYWxsKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBjb21w
aWxlSnVtcCgpCkBAIC0yNjI3LDcgKzMxNjYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgbV9vdXQubm90RXF1YWwo
Ci0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMihzdHJpbmdWYWx1ZSwgbV9oZWFwcy5K
U1N0cmluZ19sZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzJOb25OZWdh
dGl2ZShzdHJpbmdWYWx1ZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpLAogICAgICAgICAgICAg
ICAgICAgICBtX291dC5pbnQzMk9uZSksCiAgICAgICAgICAgICAgICAgbG93QmxvY2soZGF0YS0+
ZmFsbFRocm91Z2gpLCBsZW5ndGhJczEpOwogICAgICAgICAgICAgCkBAIC0yNzA4LDYgKzMyNDcs
MjIgQEAgcHJpdmF0ZToKICAgICAgICAgaW5mby5tX2lzSW52YWxpZGF0aW9uUG9pbnQgPSB0cnVl
OwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVDaGVja0FyZ3VtZW50c05vdENyZWF0ZWQo
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFpc0VtcHR5U3BlY3VsYXRpb24oCisgICAgICAgICAg
ICBtX3N0YXRlLnZhcmlhYmxlcygpLm9wZXJhbmQoCisgICAgICAgICAgICAgICAgbV9ncmFwaC5h
cmd1bWVudHNSZWdpc3RlckZvcihtX25vZGUtPmNvZGVPcmlnaW4pKS5tX3R5cGUpKTsKKyAgICAg
ICAgCisgICAgICAgIFZpcnR1YWxSZWdpc3RlciByZWcgPSBtX2dyYXBoLm1hY2hpbmVBcmd1bWVu
dHNSZWdpc3RlckZvcihtX25vZGUtPmNvZGVPcmlnaW4pOworICAgICAgICBzcGVjdWxhdGUoQXJn
dW1lbnRzRXNjYXBlZCwgbm9WYWx1ZSgpLCAwLCBtX291dC5ub3RaZXJvNjQobV9vdXQubG9hZDY0
KGFkZHJlc3NGb3IocmVnKSkpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBjb21waWxlQ291bnRF
eGVjdXRpb24oKQorICAgIHsKKyAgICAgICAgVHlwZWRQb2ludGVyIGNvdW50ZXIgPSBtX291dC5h
YnNvbHV0ZShtX25vZGUtPmV4ZWN1dGlvbkNvdW50ZXIoKS0+YWRkcmVzcygpKTsKKyAgICAgICAg
bV9vdXQuc3RvcmU2NChtX291dC5hZGQobV9vdXQubG9hZDY0KGNvdW50ZXIpLCBtX291dC5jb25z
dEludDY0KDEpKSwgY291bnRlcik7CisgICAgfQorICAgIAogICAgIFR5cGVkUG9pbnRlciBiYXNl
SW5kZXgoSW5kZXhlZEFic3RyYWN0SGVhcCYgaGVhcCwgTFZhbHVlIHN0b3JhZ2UsIExWYWx1ZSBp
bmRleCwgRWRnZSBlZGdlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb3V0LmJhc2VJbmRleCgK
QEAgLTI5MjQsNyArMzQ3OSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBpZiAoSlNBcnJh
eUJ1ZmZlclZpZXcqIHZpZXcgPSBtX2dyYXBoLnRyeUdldEZvbGRhYmxlVmlldyhiYXNlRWRnZS5u
b2RlKCksIGFycmF5TW9kZSkpCiAgICAgICAgICAgICByZXR1cm4gbV9vdXQuY29uc3RJbnQzMih2
aWV3LT5sZW5ndGgoKSk7Ci0gICAgICAgIHJldHVybiBtX291dC5sb2FkMzIoYmFzZSwgbV9oZWFw
cy5KU0FycmF5QnVmZmVyVmlld19sZW5ndGgpOworICAgICAgICByZXR1cm4gbV9vdXQubG9hZDMy
Tm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFwcy5KU0FycmF5QnVmZmVyVmlld19sZW5ndGgpOwogICAg
IH0KICAgICAKICAgICBMVmFsdWUgdHlwZWRBcnJheUxlbmd0aChFZGdlIGJhc2VFZGdlLCBBcnJh
eU1vZGUgYXJyYXlNb2RlKQpAQCAtMjk0OCw3ICszNTAzLDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICAgICAgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKSk7CiAgICAgICAgIGNhc2UgU3Ry
aW5nVXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUgc3RyaW5nVmFsdWUgPSBsb3dTdHJpbmcobV9u
b2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgbGVuZ3RoID0gbV9vdXQubG9hZDMy
KHN0cmluZ1ZhbHVlLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCk7CisgICAgICAgICAgICBMVmFs
dWUgbGVuZ3RoID0gbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RyaW5nVmFsdWUsIG1faGVhcHMu
SlNTdHJpbmdfbGVuZ3RoKTsKICAgICAgICAgICAgIHJldHVybiBtX291dC5ub3RFcXVhbChsZW5n
dGgsIG1fb3V0LmludDMyWmVybyk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBVbnR5cGVkVXNl
OiB7CkBAIC0zMDgyLDcgKzM2MzcsNyBAQCBwcml2YXRlOgogICAgICAgICBMQmFzaWNCbG9jayBj
b250aW51YXRpb24pCiAgICAgewogICAgICAgICBMVmFsdWUgaXNOb3RJbkJvdW5kcyA9IG1fb3V0
LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIoc3RvcmFnZSwg
bV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSk7CisgICAgICAgICAgICBpbmRleCwgbV9v
dXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVu
Z3RoKSk7CiAgICAgICAgIGlmICghbV9ub2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzKCkpIHsK
ICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdEluQm91bmRzQ2FzZSA9CiAgICAgICAgICAgICAg
ICAgRlRMX05FV19CTE9DSyhtX291dCwgKCJQdXRCeVZhbCBub3QgaW4gYm91bmRzIikpOwpAQCAt
MzA5NCw3ICszNjQ5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3RO
ZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90SW5Cb3VuZHNDYXNlLCBwZXJmb3JtU3RvcmUpOwogICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIGlzT3V0T2ZCb3VuZHMgPSBtX291dC5h
Ym92ZU9yRXF1YWwoCi0gICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihzdG9yYWdl
LCBtX2hlYXBzLkJ1dHRlcmZseV92ZWN0b3JMZW5ndGgpKTsKKyAgICAgICAgICAgICAgICBpbmRl
eCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfdmVj
dG9yTGVuZ3RoKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIW1fbm9kZS0+
YXJyYXlNb2RlKCkuaXNPdXRPZkJvdW5kcygpKQogICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShP
dXRPZkJvdW5kcywgbm9WYWx1ZSgpLCAwLCBpc091dE9mQm91bmRzKTsKQEAgLTM3MTgsNiArNDI3
Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBLbm93bklu
dDMyVXNlOgogICAgICAgICBjYXNlIEtub3duTnVtYmVyVXNlOgorICAgICAgICBjYXNlIEtub3du
U3RyaW5nVXNlOgogICAgICAgICAgICAgQVNTRVJUKCFtX2ludGVycHJldGVyLm5lZWRzVHlwZUNo
ZWNrKGVkZ2UpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEludDMyVXNlOgpA
QCAtMzc0MSw2ICs0Mjk3LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgU3RyaW5nVXNlOgog
ICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5n
T2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU3RyaW5nT3JT
dHJpbmdPYmplY3RVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdPclN0cmluZ09iamVj
dChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJlYWxOdW1iZXJVc2U6
CiAgICAgICAgICAgICBzcGVjdWxhdGVSZWFsTnVtYmVyKGVkZ2UpOwogICAgICAgICAgICAgYnJl
YWs7CkBAIC0zOTI4LDYgKzQ0OTAsNTUgQEAgcHJpdmF0ZToKICAgICAgICAgc3BlY3VsYXRlU3Ry
aW5nKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOwogICAgIH0KICAgICAKKyAgICB2b2lkIHNwZWN1bGF0
ZVN0cmluZ09iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBpZiAoIW1faW50ZXJwcmV0
ZXIubmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1N0cmluZ09iamVjdCkpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIAorICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JDZWxsKGVk
Z2UsIGxvd0NlbGwoZWRnZSkpOworICAgICAgICBtX2ludGVycHJldGVyLmZpbHRlcihlZGdlLCBT
cGVjU3RyaW5nT2JqZWN0KTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdP
clN0cmluZ09iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBpZiAoIW1faW50ZXJwcmV0
ZXIubmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1N0cmluZyB8IFNwZWNTdHJpbmdPYmplY3QpKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sgbm90U3Ry
aW5nID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJTcGVjdWxhdGUgU3RyaW5nT3JTdHJpbmdPYmpl
Y3Qgbm90IHN0cmluZyBjYXNlIikpOworICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24g
PSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlNwZWN1bGF0ZSBTdHJpbmdPclN0cmluZ09iamVjdCBj
b250aW51YXRpb24iKSk7CisgICAgICAgIAorICAgICAgICBMVmFsdWUgc3RydWN0dXJlID0gbV9v
dXQubG9hZFB0cihsb3dDZWxsKGVkZ2UpLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUpOworICAg
ICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICBtX291dC5lcXVhbChzdHJ1Y3R1cmUsIG1f
b3V0LmNvbnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJlLmdldCgpKSksCisgICAgICAgICAg
ICBjb250aW51YXRpb24sIG5vdFN0cmluZyk7CisgICAgICAgIAorICAgICAgICBMQmFzaWNCbG9j
ayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGludWF0aW9uKTsKKyAg
ICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yU3RydWN0dXJlKGVkZ2UsIHN0cnVjdHVyZSk7
CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgCisgICAgICAgIG1f
b3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAKKyAgICAgICAg
bV9pbnRlcnByZXRlci5maWx0ZXIoZWRnZSwgU3BlY1N0cmluZyB8IFNwZWNTdHJpbmdPYmplY3Qp
OworICAgIH0KKyAgICAKKyAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvckNlbGwoRWRn
ZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVj
dEZvclN0cnVjdHVyZShlZGdlLCBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0
cnVjdHVyZSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZv
clN0cnVjdHVyZShFZGdlIGVkZ2UsIExWYWx1ZSBzdHJ1Y3R1cmUpCisgICAgeworICAgICAgICBT
dHJ1Y3R1cmUqIHN0cmluZ09iamVjdFN0cnVjdHVyZSA9CisgICAgICAgICAgICBtX2dyYXBoLmds
b2JhbE9iamVjdEZvcihtX25vZGUtPmNvZGVPcmlnaW4pLT5zdHJpbmdPYmplY3RTdHJ1Y3R1cmUo
KTsKKyAgICAgICAgCisgICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUoZWRnZSkubV9jdXJyZW50
S25vd25TdHJ1Y3R1cmUuaXNTdWJzZXRPZihTdHJ1Y3R1cmVTZXQoc3RyaW5nT2JqZWN0U3RydWN0
dXJlKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBzcGVjdWxhdGUo
CisgICAgICAgICAgICBOb3RTdHJpbmdPYmplY3QsIG5vVmFsdWUoKSwgMCwKKyAgICAgICAgICAg
IG1fb3V0Lm5vdEVxdWFsKHN0cnVjdHVyZSwgd2Vha1BvaW50ZXIoc3RyaW5nT2JqZWN0U3RydWN0
dXJlKSkpOworICAgIH0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZU5vbk51bGxPYmplY3QoRWRn
ZSBlZGdlLCBMVmFsdWUgY2VsbCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBt
X291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSk7CkBAIC00MTA2LDE4
ICs0NzE3LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIGlmIChtb2RlID09IE5vRXhjZXB0aW9ucykK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgICAgIExCYXNpY0Jsb2NrIGRpZEhh
dmVFeGNlcHRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkRpZCBoYXZlIGV4Y2VwdGlvbiIp
KTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJFeGNlcHRpb24gY2hlY2sgY29udGludWF0aW9uIikpOwogICAgICAgICAKICAgICAgICAg
bV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgbV9vdXQubm90WmVybzY0KG1fb3V0LmxvYWQ2NCht
X291dC5hYnNvbHV0ZSh2bSgpLmFkZHJlc3NPZkV4Y2VwdGlvbigpKSkpLAotICAgICAgICAgICAg
ZGlkSGF2ZUV4Y2VwdGlvbiwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIG1faGFuZGxlRXhj
ZXB0aW9ucywgY29udGludWF0aW9uKTsKICAgICAgICAgCi0gICAgICAgIExCYXNpY0Jsb2NrIGxh
c3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZGlkSGF2ZUV4Y2VwdGlvbiwgY29udGludWF0aW9uKTsK
LSAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBleGNlcHRpb25zLiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIyCi0gICAgICAgIG1fb3V0LmNyYXNoKCk7Ci0gICAg
ICAgIAotICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uKTsKICAgICB9CiAgICAgCiAgICAgTEJh
c2ljQmxvY2sgbG93QmxvY2soQmFzaWNCbG9jayogYmxvY2spCkBAIC00MTMzLDggKzQ3MzksMTEg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGVuZE9TUkV4aXQoCiAgICAgICAgIEV4aXRLaW5kIGtp
bmQsIEZvcm1hdHRlZFZhbHVlIGxvd1ZhbHVlLCBOb2RlKiBoaWdoVmFsdWUsIExWYWx1ZSBmYWls
Q29uZGl0aW9uKQogICAgIHsKLSAgICAgICAgaWYgKHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQo
KSkKKyAgICAgICAgaWYgKHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkgewogICAgICAgICAg
ICAgZGF0YUxvZygiICAgIE9TUiBleGl0ICMiLCBtX2Z0bFN0YXRlLmppdENvZGUtPm9zckV4aXQu
c2l6ZSgpLCAiIHdpdGggYXZhaWxhYmlsaXR5OiAiLCBtX2F2YWlsYWJpbGl0eSwgIlxuIik7Cisg
ICAgICAgICAgICBpZiAoIW1fYXZhaWxhYmxlUmVjb3Zlcmllcy5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgZGF0YUxvZygiICAgICAgICBBdmFpbGFibGUgcmVjb3ZlcmllczogIiwgbGlzdER1
bXAobV9hdmFpbGFibGVSZWNvdmVyaWVzKSwgIlxuIik7CisgICAgICAgIH0KIAogICAgICAgICBB
U1NFUlQobV9mdGxTdGF0ZS5qaXRDb2RlLT5vc3JFeGl0LnNpemUoKSA9PSBtX2Z0bFN0YXRlLmZp
bmFsaXplci0+b3NyRXhpdC5zaXplKCkpOwogICAgICAgICAKQEAgLTQxNzgsNyArNDc4Nyw2IEBA
IHByaXZhdGU6CiAgICAgICAgIE9TUkV4aXQmIGV4aXQsIEV4aXRBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgRm9ybWF0dGVkVmFsdWUgbG93VmFsdWUsCiAgICAgICAgIENvZGVPcmlnaW4gY29kZU9y
aWdpbikKICAgICB7Ci0gICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9jYWxsRnJhbWUpOwogICAg
ICAgICBpZiAoISFsb3dWYWx1ZSkKICAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobG93VmFs
dWUudmFsdWUoKSk7CiAgICAgICAgIApAQCAtNDI0Niw3ICs0ODU0LDcgQEAgcHJpdmF0ZToKICAg
ICB7CiAgICAgICAgIGV4aXQubV9zdGFja21hcElEID0gbV9zdGFja21hcElEcysrOwogICAgICAg
ICBhcmd1bWVudHMuaW5zZXJ0KDAsIG1fb3V0LmNvbnN0SW50MzIoTWFjcm9Bc3NlbWJsZXI6Om1h
eEp1bXBSZXBsYWNlbWVudFNpemUoKSkpOwotICAgICAgICBhcmd1bWVudHMuaW5zZXJ0KDAsIG1f
b3V0LmNvbnN0SW50MzIoZXhpdC5tX3N0YWNrbWFwSUQpKTsKKyAgICAgICAgYXJndW1lbnRzLmlu
c2VydCgwLCBtX291dC5jb25zdEludDY0KGV4aXQubV9zdGFja21hcElEKSk7CiAgICAgICAgIAog
ICAgICAgICBtX291dC5jYWxsKG1fb3V0LnN0YWNrbWFwSW50cmluc2ljKCksIGFyZ3VtZW50cyk7
CiAgICAgfQpAQCAtNDI2MCw2ICs0ODY4LDE5IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICh0cnlU
b1NldENvbnN0YW50RXhpdEFyZ3VtZW50KGV4aXQsIGluZGV4LCBub2RlKSkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2F2
YWlsYWJsZVJlY292ZXJpZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIEF2YWlsYWJsZVJl
Y292ZXJ5IHJlY292ZXJ5ID0gbV9hdmFpbGFibGVSZWNvdmVyaWVzW2ldOworICAgICAgICAgICAg
aWYgKHJlY292ZXJ5Lm5vZGUoKSAhPSBub2RlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBleGl0Lm1fdmFsdWVzW2luZGV4XSA9IEV4aXRWYWx1
ZTo6cmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgcmVjb3Zlcnkub3Bjb2RlKCksIGFyZ3VtZW50
cy5zaXplKCksIGFyZ3VtZW50cy5zaXplKCkgKyAxLAorICAgICAgICAgICAgICAgIHJlY292ZXJ5
LmZvcm1hdCgpKTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQocmVjb3ZlcnkubGVmdCgp
KTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQocmVjb3ZlcnkucmlnaHQoKSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIExvd2VyZWROb2Rl
VmFsdWUgdmFsdWUgPSBtX2ludDMyVmFsdWVzLmdldChub2RlKTsKICAgICAgICAgaWYgKGlzVmFs
aWQodmFsdWUpKSB7CiAgICAgICAgICAgICBhZGRFeGl0QXJndW1lbnQoZXhpdCwgYXJndW1lbnRz
LCBpbmRleCwgVmFsdWVGb3JtYXRJbnQzMiwgdmFsdWUudmFsdWUoKSk7CkBAIC00MzI5LDYgKzQ5
NTAsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgYXJndW1lbnRzLmFwcGVuZCh2YWx1ZSk7CiAgICAg
fQogICAgIAorICAgIGJvb2wgZG9lc0tpbGwoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgaWYg
KGVkZ2UuZG9lc05vdEtpbGwoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
CisgICAgICAgIGlmIChlZGdlLT5oYXNDb25zdGFudCgpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCBh
ZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgTm9kZSogbm9kZSwgUmVjb3ZlcnlPcGNvZGUg
b3Bjb2RlLCBMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0LCBWYWx1ZUZvcm1hdCBmb3JtYXQpCisg
ICAgeworICAgICAgICBtX2F2YWlsYWJsZVJlY292ZXJpZXMuYXBwZW5kKEF2YWlsYWJsZVJlY292
ZXJ5KG5vZGUsIG9wY29kZSwgbGVmdCwgcmlnaHQsIGZvcm1hdCkpOworICAgIH0KKyAgICAKKyAg
ICB2b2lkIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICBFZGdlIGVkZ2UsIFJlY292ZXJ5
T3Bjb2RlIG9wY29kZSwgTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCwgVmFsdWVGb3JtYXQgZm9y
bWF0KQorICAgIHsKKyAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoZWRnZS5ub2RlKCksIG9w
Y29kZSwgbGVmdCwgcmlnaHQsIGZvcm1hdCk7CisgICAgfQorICAgIAogICAgIHZvaWQgc2V0SW50
MzIoTm9kZSogbm9kZSwgTFZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgbV9pbnQzMlZhbHVl
cy5zZXQobm9kZSwgTG93ZXJlZE5vZGVWYWx1ZSh2YWx1ZSwgbV9oaWdoQmxvY2spKTsKQEAgLTQ0
MzEsMzUgKzUwNzUsMzcgQEAgcHJpdmF0ZToKICAgICB9CiAgICAgVHlwZWRQb2ludGVyIHBheWxv
YWRGb3IoTFZhbHVlIGJhc2UsIGludCBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
ZHJlc3NGb3IoYmFzZSwgb3BlcmFuZCwgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2Ny
aXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKGJhc2Us
IG9wZXJhbmQsIFBheWxvYWRPZmZzZXQpOwogICAgIH0KICAgICBUeXBlZFBvaW50ZXIgdGFnRm9y
KExWYWx1ZSBiYXNlLCBpbnQgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZGRyZXNz
Rm9yKGJhc2UsIG9wZXJhbmQsIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9y
LCBhc0JpdHMudGFnKSk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKGJhc2UsIG9wZXJhbmQs
IFRhZ09mZnNldCk7CiAgICAgfQotICAgIFR5cGVkUG9pbnRlciBhZGRyZXNzRm9yKGludCBvcGVy
YW5kKQorICAgIFR5cGVkUG9pbnRlciBhZGRyZXNzRm9yKGludCBvcGVyYW5kLCBwdHJkaWZmX3Qg
b2Zmc2V0ID0gMCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZGRyZXNzRm9yKG1fY2FsbEZyYW1l
LCBvcGVyYW5kKTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKG9w
ZXJhbmQpLCBvZmZzZXQpOwogICAgIH0KLSAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0ZvcihWaXJ0
dWFsUmVnaXN0ZXIgb3BlcmFuZCkKKyAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0ZvcihWaXJ0dWFs
UmVnaXN0ZXIgb3BlcmFuZCwgcHRyZGlmZl90IG9mZnNldCA9IDApCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRkcmVzc0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZC5vZmZzZXQoKSk7CisgICAgICAg
IGlmIChvcGVyYW5kLmlzTG9jYWwoKSkKKyAgICAgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKG1f
Y2FwdHVyZWQsIG9wZXJhbmQub2Zmc2V0KCksIG9mZnNldCk7CisgICAgICAgIHJldHVybiBhZGRy
ZXNzRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5kLm9mZnNldCgpLCBvZmZzZXQpOwogICAgIH0KICAg
ICBUeXBlZFBvaW50ZXIgcGF5bG9hZEZvcihpbnQgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBwYXlsb2FkRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5kKTsKKyAgICAgICAgcmV0dXJuIHBh
eWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVyKG9wZXJhbmQpKTsKICAgICB9CiAgICAgVHlwZWRQb2lu
dGVyIHBheWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQpCiAgICAgewotICAgICAgICBy
ZXR1cm4gcGF5bG9hZEZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZC5vZmZzZXQoKSk7CisgICAgICAg
IHJldHVybiBhZGRyZXNzRm9yKG9wZXJhbmQsIFBheWxvYWRPZmZzZXQpOwogICAgIH0KICAgICBU
eXBlZFBvaW50ZXIgdGFnRm9yKGludCBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRh
Z0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZCk7CisgICAgICAgIHJldHVybiB0YWdGb3IoVmlydHVh
bFJlZ2lzdGVyKG9wZXJhbmQpKTsKICAgICB9CiAgICAgVHlwZWRQb2ludGVyIHRhZ0ZvcihWaXJ0
dWFsUmVnaXN0ZXIgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0YWdGb3IobV9jYWxs
RnJhbWUsIG9wZXJhbmQub2Zmc2V0KCkpOworICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihvcGVy
YW5kLCBUYWdPZmZzZXQpOwogICAgIH0KICAgICAKICAgICBWTSYgdm0oKSB7IHJldHVybiBtX2dy
YXBoLm1fdm07IH0KQEAgLTQ0NzEsOSArNTExNywxMSBAQCBwcml2YXRlOgogICAgIE91dHB1dCBt
X291dDsKICAgICAKICAgICBMQmFzaWNCbG9jayBtX3Byb2xvZ3VlOworICAgIExCYXNpY0Jsb2Nr
IG1faGFuZGxlRXhjZXB0aW9uczsKICAgICBIYXNoTWFwPEJhc2ljQmxvY2sqLCBMQmFzaWNCbG9j
az4gbV9ibG9ja3M7CiAgICAgCiAgICAgTFZhbHVlIG1fY2FsbEZyYW1lOworICAgIExWYWx1ZSBt
X2NhcHR1cmVkOwogICAgIExWYWx1ZSBtX3RhZ1R5cGVOdW1iZXI7CiAgICAgTFZhbHVlIG1fdGFn
TWFzazsKICAgICAKQEAgLTQ0ODksNiArNTEzNyw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAgT3Bl
cmFuZHM8QXZhaWxhYmlsaXR5PiBtX2F2YWlsYWJpbGl0eTsKICAgICAKKyAgICBWZWN0b3I8QXZh
aWxhYmxlUmVjb3ZlcnksIDM+IG1fYXZhaWxhYmxlUmVjb3ZlcmllczsKKyAgICAKICAgICBJblBs
YWNlQWJzdHJhY3RTdGF0ZSBtX3N0YXRlOwogICAgIEFic3RyYWN0SW50ZXJwcmV0ZXI8SW5QbGFj
ZUFic3RyYWN0U3RhdGU+IG1faW50ZXJwcmV0ZXI7CiAgICAgQmFzaWNCbG9jayogbV9oaWdoQmxv
Y2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRW50cnkuY3BwCmluZGV4IDE4NTA0
NjA1NDcyODQzNGFhYTZiNmE0NGQyZWY2MGE1MWU3ZGMwYzIuLjFmNmEyOTE4ZjRlZjcyMDkyZjNm
YjZkNzA3MTY3YjVmYTMwNmNlYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT1NSRW50cnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NS
RW50cnkuY3BwCkBAIC00Myw2ICs0Myw3IEBAIHZvaWQqIHByZXBhcmVPU1JFbnRyeSgKIHsKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIENvZGVCbG9jayogYmFzZWxpbmUgPSBkZmdDb2Rl
QmxvY2stPmJhc2VsaW5lVmVyc2lvbigpOworICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxl
ID0gZGZnQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKTsKICAgICBERkc6OkpJVENvZGUqIGRm
Z0NvZGUgPSBkZmdDb2RlQmxvY2stPmppdENvZGUoKS0+ZGZnKCk7CiAgICAgRm9yT1NSRW50cnlK
SVRDb2RlKiBlbnRyeUNvZGUgPSBlbnRyeUNvZGVCbG9jay0+aml0Q29kZSgpLT5mdGxGb3JPU1JF
bnRyeSgpOwogICAgIApAQCAtODAsNyArODEsNyBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoCiAg
ICAgICAgIHNjcmF0Y2hbbG9jYWxdID0gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlcy5sb2NhbChsb2Nh
bCkpOwogICAgIAogICAgIGludCBzdGFja0ZyYW1lU2l6ZSA9IGVudHJ5Q29kZS0+Y29tbW9uLnJl
cXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKTsKLSAgICBpZiAoIXZtLmlu
dGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3Rl
ckZvckxvY2FsKHN0YWNrRnJhbWVTaXplKS5vZmZzZXQoKV0pKSB7CisgICAgaWYgKCF2bS5pbnRl
cnByZXRlci0+c3RhY2soKS5lbnN1cmVDYXBhY2l0eUZvcigmZXhlYy0+cmVnaXN0ZXJzKClbdmly
dHVhbFJlZ2lzdGVyRm9yTG9jYWwoc3RhY2tGcmFtZVNpemUgLSAxKS5vZmZzZXQoKV0pKSB7CiAg
ICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgICAgICBkYXRhTG9nKCIg
ICAgT1NSIGZhaWxlZCBiZWNhdXNlIHN0YWNrIGdyb3d0aCBmYWlsZWQuXG4iKTsKICAgICAgICAg
cmV0dXJuIDA7CkBAIC04OCw3ICs4OSw5IEBAIHZvaWQqIHByZXBhcmVPU1JFbnRyeSgKICAgICAK
ICAgICBleGVjLT5zZXRDb2RlQmxvY2soZW50cnlDb2RlQmxvY2spOwogICAgIAotICAgIHZvaWQq
IHJlc3VsdCA9IGVudHJ5Q29kZS0+YWRkcmVzc0ZvckNhbGwoKS5leGVjdXRhYmxlQWRkcmVzcygp
OworICAgIHZvaWQqIHJlc3VsdCA9IGVudHJ5Q29kZS0+YWRkcmVzc0ZvckNhbGwoCisgICAgICAg
IHZtLCBleGVjdXRhYmxlLCBBcml0eUNoZWNrTm90UmVxdWlyZWQsCisgICAgICAgIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTm90UmVxdWlyZWQpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiAgICAgaWYgKE9w
dGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgZGF0YUxvZygiICAgIEVudHJ5IHdpbGwgc3Vj
Y2VlZCwgZ29pbmcgdG8gYWRkcmVzcyIsIFJhd1BvaW50ZXIocmVzdWx0KSwgIlxuIik7CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdC5oCmluZGV4IDRlNDc5ZWJkZDBjYTU5
ODkwZTFmYTNhMjlhODljNTZlMDBmODA3MWYuLjg3YjRiZDBjZDM4MTNhMTJjZDRlMjczM2ZkMWFm
NjdjOTc1ODVjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NS
RXhpdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdC5oCkBAIC0x
NjYsNiArMTY2LDExIEBAIHN0cnVjdCBPU1JFeGl0IDogcHVibGljIERGRzo6T1NSRXhpdEJhc2Ug
ewogICAgIHVpbnQzMl90IG1fc3RhY2ttYXBJRDsKICAgICAKICAgICBDb2RlTG9jYXRpb25KdW1w
IGNvZGVMb2NhdGlvbkZvclJlcGF0Y2goQ29kZUJsb2NrKiBmdGxDb2RlQmxvY2spIGNvbnN0Owor
ICAgIAorICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2Nr
KiBwcm9maWxlZENvZGVCbG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBPU1JFeGl0QmFzZTo6
Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUocHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRG
cm9tRlRMKTsKKyAgICB9CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKaW5kZXggMDc2
YTQ5NWVhNjViMTJhYWFkZDg5YmQzODgwYmRmY2ZiZGYzMjIyNy4uYjU4NmVmMmI1ZWFmMjI2NjAx
OTQ3YjAxZDk0NjU4OTc4NmMwNTlhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsOSBAQAogI2luY2x1ZGUgIkZUTE9T
UkV4aXQuaCIKICNpbmNsdWRlICJGVExTYXZlUmVzdG9yZS5oIgogI2luY2x1ZGUgIk9wZXJhbmRz
SW5saW5lcy5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyUHJlc2VydmF0aW9uV3Jh
cHBlckdlbmVyYXRvci5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBGVEwgewpAQCAtNjIsOSArNjQsMTAgQEAgc3RhdGljIHZvaWQgY29t
cGlsZVN0dWIoCiAgICAgCiAgICAgLy8gV2UgbmVlZCBzY3JhdGNoIHNwYWNlIHRvIHNhdmUgYWxs
IHJlZ2lzdGVycyBhbmQgdG8gYnVpbGQgdXAgdGhlIEpTU3RhY2suCiAgICAgLy8gVXNlIGEgc2Ny
YXRjaCBidWZmZXIgdG8gdHJhbnNmZXIgYWxsIHZhbHVlcy4KLSAgICBTY3JhdGNoQnVmZmVyKiBz
Y3JhdGNoQnVmZmVyID0gdm0tPnNjcmF0Y2hCdWZmZXJGb3JTaXplKHNpemVvZihFbmNvZGVkSlNW
YWx1ZSkgKiBleGl0Lm1fdmFsdWVzLnNpemUoKSArIHJlcXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJ
bkJ5dGVzKCkpOworICAgIFNjcmF0Y2hCdWZmZXIqIHNjcmF0Y2hCdWZmZXIgPSB2bS0+c2NyYXRj
aEJ1ZmZlckZvclNpemUoc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSAqIGV4aXQubV92YWx1ZXMuc2l6
ZSgpICsgcmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSArIGppdENvZGUtPnVud2lu
ZEluZm8ubV9yZWdpc3RlcnMuc2l6ZSgpICogc2l6ZW9mKHVpbnQ2NF90KSk7CiAgICAgRW5jb2Rl
ZEpTVmFsdWUqIHNjcmF0Y2ggPSBzY3JhdGNoQnVmZmVyID8gc3RhdGljX2Nhc3Q8RW5jb2RlZEpT
VmFsdWUqPihzY3JhdGNoQnVmZmVyLT5kYXRhQnVmZmVyKCkpIDogMDsKICAgICBjaGFyKiByZWdp
c3RlclNjcmF0Y2ggPSBiaXR3aXNlX2Nhc3Q8Y2hhcio+KHNjcmF0Y2ggKyBleGl0Lm1fdmFsdWVz
LnNpemUoKSk7CisgICAgdWludDY0X3QqIHVud2luZFNjcmF0Y2ggPSBiaXR3aXNlX2Nhc3Q8dWlu
dDY0X3QqPihyZWdpc3RlclNjcmF0Y2ggKyByZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRl
cygpKTsKICAgICAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBzYXZlQWxsUmVnaXN0ZXJzKCkgaGFz
IGEgcGxhY2Ugb24gdG9wIG9mIHRoZSBzdGFjayB0byBzcGlsbCB0aGluZ3MuIFRoYXQKICAgICAv
LyBmdW5jdGlvbiBleHBlY3RzIHRvIGJlIGFibGUgdG8gdXNlIHRvcCBvZiBzdGFjayBmb3Igc2Ny
YXRjaCBtZW1vcnkuCkBAIC03NSwxOCArNzgsMjcgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIo
CiAgICAgaml0LnBvcChHUFJJbmZvOjpyZWdUMCk7CiAgICAgaml0LnBvcChHUFJJbmZvOjpyZWdU
MCk7CiAgICAgCisgICAgaWYgKHZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIgJiYgY29kZUJsb2Nr
LT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5jb21waWxhdGlvbikgeworICAgICAgICBQcm9maWxl
cjo6RGF0YWJhc2UmIGRhdGFiYXNlID0gKnZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXI7CisgICAg
ICAgIFByb2ZpbGVyOjpDb21waWxhdGlvbiogY29tcGlsYXRpb24gPSBjb2RlQmxvY2stPmppdENv
ZGUoKS0+ZGZnQ29tbW9uKCktPmNvbXBpbGF0aW9uLmdldCgpOworICAgICAgICAKKyAgICAgICAg
UHJvZmlsZXI6Ok9TUkV4aXQqIHByb2ZpbGVyRXhpdCA9IGNvbXBpbGF0aW9uLT5hZGRPU1JFeGl0
KAorICAgICAgICAgICAgZXhpdElELCBQcm9maWxlcjo6T3JpZ2luU3RhY2soZGF0YWJhc2UsIGNv
ZGVCbG9jaywgZXhpdC5tX2NvZGVPcmlnaW4pLAorICAgICAgICAgICAgZXhpdC5tX2tpbmQsIGlz
V2F0Y2hwb2ludChleGl0Lm1fa2luZCkpOworICAgICAgICBqaXQuYWRkNjQoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoMSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKHByb2ZpbGVy
RXhpdC0+Y291bnRlckFkZHJlc3MoKSkpOworICAgIH0KKwogICAgIC8vIFRoZSByZW1haW5pbmcg
Y29kZSBhc3N1bWVzIHRoYXQgU1AvRlAgYXJlIGluIHRoZSBzYW1lIHN0YXRlIHRoYXQgdGhleSB3
ZXJlIGluIHRoZSBGVEwncwogICAgIC8vIGNhbGwgZnJhbWUuCiAgICAgCiAgICAgLy8gR2V0IHRo
ZSBjYWxsIGZyYW1lIGFuZCB0YWcgdGhpbmdpZXMuCiAgICAgLy8gUmVzdG9yZSB0aGUgZXhpdGlu
ZyBmdW5jdGlvbidzIGNhbGxGcmFtZSB2YWx1ZSBpbnRvIGEgcmVnVDQKLSAgICByZWNvcmQtPmxv
Y2F0aW9uc1swXS5yZXN0b3JlSW50byhqaXQsIGppdENvZGUtPnN0YWNrbWFwcywgcmVnaXN0ZXJT
Y3JhdGNoLCBHUFJJbmZvOjpyZWdUNCk7CiAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
KTsKICAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KFRhZ01hc2spLCBH
UFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOwogICAgIAogICAgIC8vIERvIHNvbWUgdmFsdWUgcHJv
ZmlsaW5nLgogICAgIGlmIChleGl0Lm1fcHJvZmlsZVZhbHVlRm9ybWF0ICE9IEludmFsaWRWYWx1
ZUZvcm1hdCkgewotICAgICAgICByZWNvcmQtPmxvY2F0aW9uc1sxXS5yZXN0b3JlSW50byhqaXQs
IGppdENvZGUtPnN0YWNrbWFwcywgcmVnaXN0ZXJTY3JhdGNoLCBHUFJJbmZvOjpyZWdUMCk7Cisg
ICAgICAgIHJlY29yZC0+bG9jYXRpb25zWzBdLnJlc3RvcmVJbnRvKGppdCwgaml0Q29kZS0+c3Rh
Y2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86OnJlZ1QwKTsKICAgICAgICAgcmVib3hB
Y2NvcmRpbmdUb0Zvcm1hdCgKICAgICAgICAgICAgIGV4aXQubV9wcm9maWxlVmFsdWVGb3JtYXQs
IGppdCwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMik7CiAg
ICAgICAgIApAQCAtMTMwLDcgKzE0Miw0NSBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigKICAg
ICAgICAgY2FzZSBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDMyOgogICAgICAgICBjYXNlIEV4aXRW
YWx1ZUluSlNTdGFja0FzSW50NTI6CiAgICAgICAgIGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNE
b3VibGU6Ci0gICAgICAgICAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0Zv
cih2YWx1ZS52aXJ0dWFsUmVnaXN0ZXIoKSwgR1BSSW5mbzo6cmVnVDQpLCBHUFJJbmZvOjpyZWdU
MCk7CisgICAgICAgICAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0Zvcih2
YWx1ZS52aXJ0dWFsUmVnaXN0ZXIoKSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgRXhpdFZhbHVlUmVjb3Zlcnk6CisgICAg
ICAgICAgICByZWNvcmQtPmxvY2F0aW9uc1t2YWx1ZS5yaWdodFJlY292ZXJ5QXJndW1lbnQoKV0u
cmVzdG9yZUludG8oCisgICAgICAgICAgICAgICAgaml0LCBqaXRDb2RlLT5zdGFja21hcHMsIHJl
Z2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVnVDEpOworICAgICAgICAgICAgcmVjb3JkLT5sb2Nh
dGlvbnNbdmFsdWUubGVmdFJlY292ZXJ5QXJndW1lbnQoKV0ucmVzdG9yZUludG8oCisgICAgICAg
ICAgICAgICAgaml0LCBqaXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVyU2NyYXRjaCwgR1BSSW5m
bzo6cmVnVDApOworICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS5yZWNvdmVyeU9wY29kZSgpKSB7
CisgICAgICAgICAgICBjYXNlIEFkZFJlY292ZXJ5OgorICAgICAgICAgICAgICAgIHN3aXRjaCAo
dmFsdWUucmVjb3ZlcnlGb3JtYXQoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVGb3Jt
YXRJbnQzMjoKKyAgICAgICAgICAgICAgICAgICAgaml0LmFkZDMyKEdQUkluZm86OnJlZ1QxLCBH
UFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIGNhc2UgVmFsdWVGb3JtYXRJbnQ1MjoKKyAgICAgICAgICAgICAgICAgICAgaml0LmFkZDY0
KEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
U3ViUmVjb3Zlcnk6CisgICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS5yZWNvdmVyeUZvcm1h
dCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZUZvcm1hdEludDMyOgorICAgICAgICAg
ICAgICAgICAgICBqaXQuc3ViMzIoR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1QwKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZUZvcm1h
dEludDUyOgorICAgICAgICAgICAgICAgICAgICBqaXQuc3ViNjQoR1BSSW5mbzo6cmVnVDEsIEdQ
UkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAg
ZGVmYXVsdDoKQEAgLTE0MSw2ICsxOTEsMTM3IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAog
ICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgc2NyYXRjaCArIGluZGV4KTsKICAg
ICB9CiAgICAgCisgICAgLy8gSGVuY2Vmb3J0aCB3ZSBtYWtlIGl0IGxvb2sgbGlrZSB0aGUgZXhp
dGluZyBmdW5jdGlvbiB3YXMgY2FsbGVkIHRocm91Z2ggYSByZWdpc3RlcgorICAgIC8vIHByZXNl
cnZhdGlvbiB3cmFwcGVyLiBUaGlzIGltcGxpZXMgdGhhdCBGUCBtdXN0IGJlIG51ZGdlZCBkb3du
IGJ5IGEgY2VydGFpbiBhbW91bnQuIFRoZW4KKyAgICAvLyB3ZSByZXN0b3JlIHRoZSB2YXJpb3Vz
IHRoaW5ncyBhY2NvcmRpbmcgdG8gZWl0aGVyIGV4aXQubV92YWx1ZXMgb3IgYnkgY29weWluZyBm
cm9tIHRoZQorICAgIC8vIG9sZCBmcmFtZSwgYW5kIGZpbmFsbHkgd2Ugc2F2ZSB0aGUgdmFyaW91
cyBjYWxsZWUtc2F2ZSByZWdpc3RlcnMgaW50byB3aGVyZSB0aGUKKyAgICAvLyByZXN0b3JhdGlv
biB0aHVuayB3b3VsZCByZXN0b3JlIHRoZW0gZnJvbS4KKyAgICAKKyAgICBwdHJkaWZmX3Qgb2Zm
c2V0ID0gcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKTsKKyAgICBSZWdpc3RlclNldCB0b1Nh
dmUgPSByZWdpc3RlcnNUb1ByZXNlcnZlKCk7CisgICAgCisgICAgLy8gQmVmb3JlIHdlIHN0YXJ0
IG1lc3Npbmcgd2l0aCB0aGUgZnJhbWUsIHdlIG5lZWQgdG8gc2V0IGFzaWRlIGFueSByZWdpc3Rl
cnMgdGhhdCB0aGUKKyAgICAvLyBGVEwgY29kZSB3YXMgcHJlc2VydmluZy4KKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSBqaXRDb2RlLT51bndpbmRJbmZvLm1fcmVnaXN0ZXJzLnNpemUoKTsgaS0tOykg
eworICAgICAgICBSZWdpc3RlckF0T2Zmc2V0IGVudHJ5ID0gaml0Q29kZS0+dW53aW5kSW5mby5t
X3JlZ2lzdGVyc1tpXTsKKyAgICAgICAgaml0LmxvYWQ2NCgKKyAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgZW50
cnkub2Zmc2V0KCkpLAorICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDApOworICAgICAgICBqaXQu
c3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgdW53aW5kU2NyYXRjaCArIGkpOworICAgIH0KKyAgICAK
KyAgICBqaXQubG9hZDMyKENDYWxsSGVscGVyczo6cGF5bG9hZEZvcihKU1N0YWNrOjpBcmd1bWVu
dENvdW50KSwgR1BSSW5mbzo6cmVnVDIpOworICAgIAorICAgIC8vIExldCdzIHNheSB0aGF0IHRo
ZSBGVEwgZnVuY3Rpb24gaGFkIGZhaWxlZCBpdHMgYXJpdHkgY2hlY2suIEluIHRoYXQgY2FzZSwg
dGhlIHN0YWNrIHdpbGwKKyAgICAvLyBjb250YWluIHNvbWUgZXh0cmEgc3R1ZmYuCisgICAgLy8K
KyAgICAvLyBGaXJzdCB3ZSBjb21wdXRlIHRoZSBwYWRkZWQgc3RhY2sgc3BhY2U6CisgICAgLy8K
KyAgICAvLyAgICAgcGFkZGVkU3RhY2tTcGFjZSA9IHJvdW5kVXAoY29kZUJsb2NrLT5udW1QYXJh
bWV0ZXJzIC0gcmVnVDIgKyAxKQorICAgIC8vCisgICAgLy8gVGhlIHN0YWNrIHdpbGwgaGF2ZSBy
ZWdUMiArIENhbGxGcmFtZUhlYWRlclNpemUgc3R1ZmYsIGJ1dCBhYm92ZSBpdCB0aGVyZSB3aWxs
IGJlCisgICAgLy8gcGFkZGVkU3RhY2tTcGFjZSBndW5rIHVzZWQgYnkgdGhlIGFyaXR5IGNoZWNr
IGZhaWwgcmVzdG9yYXRpb24gdGh1bmsuIFdoZW4gdGhhdCBoYXBwZW5zCisgICAgLy8gd2Ugd2Fu
dCB0byBtYWtlIHRoZSBzdGFjayBsb29rIGxpa2UgdGhpcywgZnJvbSBoaWdoZXIgYWRkcmVzc2Vz
IGRvd246CisgICAgLy8KKyAgICAvLyAgICAgLSByZWdpc3RlciBwcmVzZXJ2YXRpb24gcmV0dXJu
IFBDCisgICAgLy8gICAgIC0gcHJlc2VydmVkIHJlZ2lzdGVycworICAgIC8vICAgICAtIGFyaXR5
IGNoZWNrIGZhaWwgcmV0dXJuIFBDCisgICAgLy8gICAgIC0gYXJndW1lbnQgcGFkZGluZworICAg
IC8vICAgICAtIGFjdHVhbCBhcmd1bWVudHMKKyAgICAvLyAgICAgLSBjYWxsIGZyYW1lIGhlYWRl
cgorICAgIC8vCisgICAgLy8gU28gdGhhdCB0aGUgYWN0dWFsIGNhbGwgZnJhbWUgaGVhZGVyIGFw
cGVhcnMgdG8gcmV0dXJuIHRvIHRoZSBhcml0eSBjaGVjayBmYWlsIHJldHVybgorICAgIC8vIFBD
LCBhbmQgdGhhdCB0aGVuIHJldHVybnMgdG8gdGhlIHJlZ2lzdGVyIHByZXNlcnZhdGlvbiB0aHVu
ay4gVGhlIGFyaXR5IGNoZWNrIHRodW5rIHRoYXQKKyAgICAvLyB3ZSByZXR1cm4gdG8gd2lsbCBo
YXZlIHRoZSBwYWRkaW5nIHNpemUgZW5jb2RlZCBpbnRvIGl0LiBJdCB3aWxsIHRoZW4ga25vdyB0
byByZXR1cm4KKyAgICAvLyBpbnRvIHRoZSByZWdpc3RlciBwcmVzZXJ2YXRpb24gdGh1bmssIHdo
aWNoIHVzZXMgdGhlIGFyZ3VtZW50IGNvdW50IHRvIGZpZ3VyZSBvdXQgd2hlcmUKKyAgICAvLyBy
ZWdpc3RlcnMgYXJlIHByZXNlcnZlZC4KKworICAgIC8vIFRoaXMgY29kZSBhc3N1bWVzIHRoYXQg
d2UncmUgZGVhbGluZyB3aXRoIEZ1bmN0aW9uQ29kZS4KKyAgICBSRUxFQVNFX0FTU0VSVChjb2Rl
QmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKTsKKyAgICAKKyAgICBqaXQuYWRkMzIo
CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLWNvZGVCbG9jay0+bnVtUGFy
YW1ldGVycygpKSwgR1BSSW5mbzo6cmVnVDIsCisgICAgICAgIEdQUkluZm86OnJlZ1QzKTsKKyAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBhcml0eUludGFjdCA9IGppdC5icmFuY2hUZXN0MzIoTWFj
cm9Bc3NlbWJsZXI6Olplcm8sIEdQUkluZm86OnJlZ1QzKTsKKyAgICBqaXQubmVnMzIoR1BSSW5m
bzo6cmVnVDMpOworICAgIGppdC5hZGQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDEg
KyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpIC0gMSksIEdQUkluZm86OnJlZ1QzKTsKKyAgICBq
aXQuYW5kMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtc3RhY2tBbGlnbm1lbnRSZWdp
c3RlcnMoKSksIEdQUkluZm86OnJlZ1QzKTsKKyAgICBqaXQuYWRkMzIoR1BSSW5mbzo6cmVnVDMs
IEdQUkluZm86OnJlZ1QyKTsKKyAgICBhcml0eUludGFjdC5saW5rKCZqaXQpOworCisgICAgLy8g
Rmlyc3Qgc2V0IHVwIFNQIHNvIHRoYXQgb3VyIGRhdGEgZG9lc24ndCBnZXQgY2xvYmJlcmVkIGJ5
IHNpZ25hbHMuCisgICAgaml0LmFkZFB0cigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMigKKyAgICAgICAgICAgIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZigKKyAgICAgICAg
ICAgICAgICBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLAorICAgICAgICAgICAgICAgIC1yZWdp
c3RlclByZXNlcnZhdGlvbk9mZnNldCgpIC0gZXhpdC5tX3ZhbHVlcy5udW1iZXJPZkxvY2Fscygp
ICogc2l6ZW9mKFJlZ2lzdGVyKSAtIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSksCisg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJs
ZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAKKyAgICBqaXQuc3ViUHRyKAorICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0
KCkpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAg
IAorICAgIC8vIENvcHkgdGhlIG9sZCBmcmFtZSBkYXRhIGludG8gaXRzIG5ldyBsb2NhdGlvbi4K
KyAgICBqaXQuYWRkMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1N0YWNrOjpDYWxs
RnJhbWVIZWFkZXJTaXplKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5tb3ZlKE1hY3JvQXNz
ZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOworICAgIE1hY3Jv
QXNzZW1ibGVyOjpMYWJlbCBsb29wID0gaml0LmxhYmVsKCk7CisgICAgaml0LnN1YjMyKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMSksIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQubG9h
ZDY0KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QxLCBvZmZzZXQpLCBHUFJJ
bmZvOjpyZWdUMCk7CisgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJl
Z1QxKTsKKyAgICBqaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2l6ZW9m
KFJlZ2lzdGVyKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuYnJhbmNoVGVzdDMyKE1hY3Jv
QXNzZW1ibGVyOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMikubGlua1RvKGxvb3AsICZqaXQpOwor
ICAgIAorICAgIC8vIEF0IHRoaXMgcG9pbnQgcmVnVDEgcG9pbnRzIHRvIHdoZXJlIHdlIHdvdWxk
IHNhdmUgb3VyIHJlZ2lzdGVycy4gU2F2ZSB0aGVtIGhlcmUuCisgICAgcHRyZGlmZl90IGN1cnJl
bnRPZmZzZXQgPSAwOworICAgIGZvciAoR1BSUmVnIGdwciA9IEFzc2VtYmx5SGVscGVyczo6Zmly
c3RSZWdpc3RlcigpOyBncHIgPD0gQXNzZW1ibHlIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgZ3By
ID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihncHIgKyAxKSkgeworICAgICAgICBpZiAoIXRvU2F2ZS5n
ZXQoZ3ByKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjdXJyZW50T2Zmc2V0ICs9
IHNpemVvZihSZWdpc3Rlcik7CisgICAgICAgIHVuc2lnbmVkIHVud2luZEluZGV4ID0gaml0Q29k
ZS0+dW53aW5kSW5mby5pbmRleE9mKGdwcik7CisgICAgICAgIGlmICh1bndpbmRJbmRleCA9PSBV
SU5UX01BWCkgeworICAgICAgICAgICAgLy8gVGhlIEZUTCBjb21waWxhdGlvbiBkaWRuJ3QgcHJl
c2VydmUgdGhpcyByZWdpc3Rlci4gVGhpcyBtZWFucyB0aGF0IGl0IGFsc28KKyAgICAgICAgICAg
IC8vIGRpZG4ndCB1c2UgdGhlIHJlZ2lzdGVyLiBTbyBpdHMgdmFsdWUgYXQgdGhlIGJlZ2lubmlu
ZyBvZiBPU1IgZXhpdCBzaG91bGQgYmUKKyAgICAgICAgICAgIC8vIHByZXNlcnZlZCBieSB0aGUg
dGh1bmsuIEx1Y2tpbHksIHdlIHNhdmVkIGFsbCByZWdpc3RlcnMgaW50byB0aGUgcmVnaXN0ZXIK
KyAgICAgICAgICAgIC8vIHNjcmF0Y2ggYnVmZmVyLCBzbyB3ZSBjYW4gcmVzdG9yZSB0aGVtIGZy
b20gdGhlcmUuCisgICAgICAgICAgICBqaXQubG9hZDY0KHJlZ2lzdGVyU2NyYXRjaCArIG9mZnNl
dE9mR1BSKGdwciksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIC8vIFRoZSBGVEwgY29tcGlsYXRpb24gcHJlc2VydmVkIHRoZSByZWdpc3Rlci4gSXRzIG5l
dyB2YWx1ZSBpcyB0aGVyZWZvcmUKKyAgICAgICAgICAgIC8vIGlycmVsZXZhbnQsIGJ1dCB3ZSBj
YW4gZ2V0IHRoZSB2YWx1ZSB0aGF0IHdhcyBwcmVzZXJ2ZWQgYnkgdXNpbmcgdGhlIHVud2luZAor
ICAgICAgICAgICAgLy8gZGF0YS4gV2UndmUgYWxyZWFkeSBjb3BpZWQgYWxsIHVud2luZC1hYmxl
IHByZXNlcnZlZCByZWdpc3RlcnMgaW50byB0aGUgdW53aW5kCisgICAgICAgICAgICAvLyBzY3Jh
dGNoIGJ1ZmZlciwgc28gd2UgY2FuIGdldCBpdCBmcm9tIHRoZXJlLgorICAgICAgICAgICAgaml0
LmxvYWQ2NCh1bndpbmRTY3JhdGNoICsgdW53aW5kSW5kZXgsIEdQUkluZm86OnJlZ1QwKTsKKyAg
ICAgICAgfQorICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxw
ZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QxLCBjdXJyZW50T2Zmc2V0KSk7CisgICAgfQorICAg
IAorICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2UgcmV0dXJuIGludG8gdGhlIHJl
Z2lzdGVyIHJlc3RvcmF0aW9uIHRodW5rLiBUaGlzIHdvcmtzCisgICAgLy8gZGlmZmVyZW50bHkg
ZGVwZW5kaW5nIG9uIHdoZXRoZXIgb3Igbm90IHdlIGhhZCBhcml0eSBpc3N1ZXMuCisgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgYXJpdHlJbnRhY3RGb3JSZXR1cm5QQyA9CisgICAgICAgIGppdC5i
cmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIEdQUkluZm86OnJlZ1QzKTsKKyAgICAK
KyAgICAvLyBUaGUgcmV0dXJuIFBDIGluIHRoZSBjYWxsIGZyYW1lIGhlYWRlciBwb2ludHMgYXQg
ZXhhY3RseSB0aGUgcmlnaHQgYXJpdHkgcmVzdG9yYXRpb24KKyAgICAvLyB0aHVuay4gV2UgZG9u
J3Qgd2FudCB0byBjaGFuZ2UgdGhhdC4gQnV0IHRoZSBhcml0eSByZXN0b3JhdGlvbiB0aHVuaydz
IGZyYW1lIGhhcyBhCisgICAgLy8gcmV0dXJuIFBDIGFuZCB3ZSB3YW50IHRvIHJlcm91dGUgdGhh
dCB0byBvdXIgcmVnaXN0ZXIgcmVzdG9yYXRpb24gdGh1bmsuIFRoZSBhcml0eQorICAgIC8vIHJl
c3RvcmF0aW9uJ3MgcmV0dXJuIFBDIGp1c3QganVzdCBiZWxvdyByZWdUMSwgYW5kIHRoZSByZWdp
c3RlciByZXN0b3JhdGlvbidzIHJldHVybiBQQworICAgIC8vIGlzIHJpZ2h0IGF0IHJlZ1QxLgor
ICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QxLCAt
c3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSksIEdQUkluZm86OnJlZ1Qw
KTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxKTsKKyAg
ICBqaXQuc3RvcmVQdHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHZt
LT5nZXRDVElTdHViKHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcikuY29kZSgpLmV4
ZWN1dGFibGVBZGRyZXNzKCkpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJ
bmZvOjpyZWdUMSwgLXN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsK
KyAgICAKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBhcml0eVJldHVyblBDUmVhZHkgPSBqaXQu
anVtcCgpOworCisgICAgYXJpdHlJbnRhY3RGb3JSZXR1cm5QQy5saW5rKCZqaXQpOworICAgIAor
ICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpm
cmFtZVBvaW50ZXJSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSwgR1BSSW5m
bzo6cmVnVDApOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVn
VDEpOworICAgIGppdC5zdG9yZVB0cigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIodm0tPmdldENUSVN0dWIocmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9yKS5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSksCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1
cm5QQ09mZnNldCgpKSk7CisgICAgCisgICAgYXJpdHlSZXR1cm5QQ1JlYWR5LmxpbmsoJmppdCk7
CisgICAgCiAgICAgLy8gTm93IGdldCBzdGF0ZSBvdXQgb2YgdGhlIHNjcmF0Y2ggYnVmZmVyIGFu
ZCBwbGFjZSBpdCBiYWNrIGludG8gdGhlIHN0YWNrLiBUaGlzIHBhcnQgZG9lcwogICAgIC8vIGFs
bCByZWJveGluZy4KICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gZXhpdC5tX3ZhbHVlcy5zaXpl
KCk7IGluZGV4LS07KSB7CkBAIC0xNTAsMjYgKzMzMSwxNiBAQCBzdGF0aWMgdm9pZCBjb21waWxl
U3R1YigKICAgICAgICAgaml0LmxvYWQ2NChzY3JhdGNoICsgaW5kZXgsIEdQUkluZm86OnJlZ1Qw
KTsKICAgICAgICAgcmVib3hBY2NvcmRpbmdUb0Zvcm1hdCgKICAgICAgICAgICAgIHZhbHVlLnZh
bHVlRm9ybWF0KCksIGppdCwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBHUFJJbmZv
OjpyZWdUMik7Ci0gICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBBc3NlbWJseUhl
bHBlcnM6OmFkZHJlc3NGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihvcGVyYW5kKSwg
R1BSSW5mbzo6cmVnVDQpKTsKKyAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEFz
c2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KG9w
ZXJhbmQpKSk7CiAgICAgfQogICAgIAotICAgIC8vIFJlc3RvcmUgdGhlIG9sZCBzdGFjayBwb2lu
dGVyIGFuZCB0aGVuIHB1dCByZWdUNCBpbnRvIGNhbGxGcmFtZVJlZ2lzdGVyLiBUaGUgaWRlYSBp
cwotICAgIC8vIHRoYXQgdGhlIEZUTCBjYWxsIGZyYW1lIGlzIHB1c2hlZCBvbnRvIHRoZSBKUyBj
YWxsIGZyYW1lIGFuZCB3ZSBjYW4gcmVjb3ZlciB0aGUgb2xkCi0gICAgLy8gdmFsdWUgb2YgdGhl
IHN0YWNrIHBvaW50ZXIgYnkgcG9wcGluZyB0aGUgRlRMIGNhbGwgZnJhbWUuIFdlIGFscmVhZHkg
a25vdyB3aGF0IHRoZQotICAgIC8vIGZyYW1lIHBvaW50ZXIgaW4gdGhlIEpTIGNhbGwgZnJhbWUg
d2FzIGJlY2F1c2UgaXQgd291bGQgaGF2ZSBiZWVuIHBhc3NlZCBhcyBhbiBhcmd1bWVudAotICAg
IC8vIHRvIHRoZSBGVEwgY2FsbCBmcmFtZS4KLSAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6
ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rl
cik7Ci0gICAgaml0LnBvcChHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICBqaXQucG9wKEdQUklu
Zm86Om5vbkFyZ0dQUjApOwotICAgIGppdC5tb3ZlKEdQUkluZm86OnJlZ1Q0LCBHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgCiAgICAgaGFuZGxlRXhpdENvdW50cyhqaXQsIGV4aXQp
OwogICAgIHJlaWZ5SW5saW5lZENhbGxGcmFtZXMoaml0LCBleGl0KTsKICAgICBhZGp1c3RBbmRK
dW1wVG9UYXJnZXQoaml0LCBleGl0KTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVy
KCp2bSwgJmppdCwgY29kZUJsb2NrKTsKICAgICBleGl0Lm1fY29kZSA9IEZJTkFMSVpFX0NPREVf
SUYoCi0gICAgICAgIHNob3VsZFNob3dEaXNhc3NlbWJseSgpLAorICAgICAgICBzaG91bGRTaG93
RGlzYXNzZW1ibHkoKSB8fCBPcHRpb25zOjp2ZXJib3NlT1NSKCksCiAgICAgICAgIHBhdGNoQnVm
ZmVyLAogICAgICAgICAoIkZUTCBPU1IgZXhpdCAjJXUgKCVzLCAlcykgZnJvbSAlcywgd2l0aCBv
cGVyYW5kcyA9ICVzLCBhbmQgcmVjb3JkID0gJXMiLAogICAgICAgICAgICAgZXhpdElELCB0b0NT
dHJpbmcoZXhpdC5tX2NvZGVPcmlnaW4pLmRhdGEoKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE91dHB1dC5oCmluZGV4IDJlYzg3MzUwM2E1ZTcyYjU1NGJiMzFhZTlhMDZmMGQ1NDdjODI1NTYu
LmJlNDBkMTExMWI5N2UyYTU5ZGEwODkwZTU1M2Y0YzRmYWZiZmNmOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExPdXRwdXQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg0LDcgKzE4NCwyMyBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICByZXR1cm4gY2FsbChkb3VibGVBYnNJbnRyaW5zaWMoKSwgdmFsdWUpOwogICAgIH0K
LSAgICAKKyAgICBMVmFsdWUgZG91YmxlU2luKExWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBjYWxsKGRvdWJsZVNpbkludHJpbnNpYygpLCB2YWx1ZSk7CisgICAgfQorCisKKyAg
ICBMVmFsdWUgZG91YmxlQ29zKExWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBj
YWxsKGRvdWJsZUNvc0ludHJpbnNpYygpLCB2YWx1ZSk7CisgICAgfQorCisgICAgTFZhbHVlIGRv
dWJsZVNxcnQoTFZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGwoZG91Ymxl
U3FydEludHJpbnNpYygpLCB2YWx1ZSk7CisgICAgfQorCisKICAgICBzdGF0aWMgYm9vbCBoYXNT
ZW5zaWJsZURvdWJsZVRvSW50KCkgeyByZXR1cm4gaXNYODYoKTsgfQogICAgIExWYWx1ZSBzZW5z
aWJsZURvdWJsZVRvSW50KExWYWx1ZSB2YWx1ZSkKICAgICB7CkBAIC0yMTAsNiArMjI2LDcgQEAg
cHVibGljOgogICAgIExWYWx1ZSBjYXN0VG9JbnQzMihMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIGlu
dENhc3QodmFsdWUsIGludDMyKTsgfQogICAgIExWYWx1ZSBmcENhc3QoTFZhbHVlIHZhbHVlLCBM
VHlwZSB0eXBlKSB7IHJldHVybiBidWlsZEZQQ2FzdChtX2J1aWxkZXIsIHZhbHVlLCB0eXBlKTsg
fQogICAgIExWYWx1ZSBpbnRUb1B0cihMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJu
IGJ1aWxkSW50VG9QdHIobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0KKyAgICBMVmFsdWUgcHRy
VG9JbnQoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZFB0clRvSW50KG1f
YnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CiAgICAgTFZhbHVlIGJpdENhc3QoTFZhbHVlIHZhbHVl
LCBMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZEJpdENhc3QobV9idWlsZGVyLCB2YWx1ZSwgdHlw
ZSk7IH0KICAgICAKICAgICBMVmFsdWUgYWxsb2NhKExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxk
QWxsb2NhKG1fYnVpbGRlciwgdHlwZSk7IH0KQEAgLTMxNCw2ICszMzEsMjAgQEAgcHVibGljOgog
ICAgIHZvaWQgc3RvcmVQdHIoTFZhbHVlIHZhbHVlLCBMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJh
Y3RGaWVsZCYgZmllbGQpIHsgc3RvcmVQdHIodmFsdWUsIGFkZHJlc3MoYmFzZSwgZmllbGQpKTsg
fQogICAgIHZvaWQgc3RvcmVEb3VibGUoTFZhbHVlIHZhbHVlLCBMVmFsdWUgYmFzZSwgY29uc3Qg
QWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgc3RvcmVEb3VibGUodmFsdWUsIGFkZHJlc3MoYmFzZSwg
ZmllbGQpKTsgfQogICAgIAorICAgIHZvaWQgYXNjcmliZVJhbmdlKExWYWx1ZSBsb2FkSW5zdHJ1
Y3Rpb24sIGNvbnN0IFZhbHVlUmFuZ2UmIHJhbmdlKQorICAgIHsKKyAgICAgICAgcmFuZ2UuZGVj
b3JhdGVJbnN0cnVjdGlvbihtX2NvbnRleHQsIGxvYWRJbnN0cnVjdGlvbiwgcmFuZ2VLaW5kKTsK
KyAgICB9CisgICAgCisgICAgTFZhbHVlIG5vbk5lZ2F0aXZlMzIoTFZhbHVlIGxvYWRJbnN0cnVj
dGlvbikKKyAgICB7CisgICAgICAgIGFzY3JpYmVSYW5nZShsb2FkSW5zdHJ1Y3Rpb24sIG5vbk5l
Z2F0aXZlSW50MzIpOworICAgICAgICByZXR1cm4gbG9hZEluc3RydWN0aW9uOworICAgIH0KKyAg
ICAKKyAgICBMVmFsdWUgbG9hZDMyTm9uTmVnYXRpdmUoVHlwZWRQb2ludGVyIHBvaW50ZXIpIHsg
cmV0dXJuIG5vbk5lZ2F0aXZlMzIobG9hZDMyKHBvaW50ZXIpKTsgfQorICAgIExWYWx1ZSBsb2Fk
MzJOb25OZWdhdGl2ZShMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsg
cmV0dXJuIG5vbk5lZ2F0aXZlMzIobG9hZDMyKGJhc2UsIGZpZWxkKSk7IH0KKyAgICAKICAgICBM
VmFsdWUgaWNtcChMSW50UHJlZGljYXRlIGNvbmQsIExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQp
IHsgcmV0dXJuIGJ1aWxkSUNtcChtX2J1aWxkZXIsIGNvbmQsIGxlZnQsIHJpZ2h0KTsgfQogICAg
IExWYWx1ZSBlcXVhbChMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBpY21wKExM
Vk1JbnRFUSwgbGVmdCwgcmlnaHQpOyB9CiAgICAgTFZhbHVlIG5vdEVxdWFsKExWYWx1ZSBsZWZ0
LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIGljbXAoTExWTUludE5FLCBsZWZ0LCByaWdodCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWNvdmVyeU9wY29kZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzA3NzBkZDgxMTY0YmMwYjZjMGY0ZDViNTJhODJhODc5OWIxOWUxNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUu
Y3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZUTFJlY292ZXJ5T3Bj
b2RlLmgiCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVh
bS5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFt
JiBvdXQsIEpTQzo6RlRMOjpSZWNvdmVyeU9wY29kZSBvcGNvZGUpCit7CisgICAgc3dpdGNoIChv
cGNvZGUpIHsKKyAgICBjYXNlIEpTQzo6RlRMOjpBZGRSZWNvdmVyeToKKyAgICAgICAgb3V0LnBy
aW50KCJBZGQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpGVEw6OlN1YlJlY292
ZXJ5OgorICAgICAgICBvdXQucHJpbnQoIlN1YiIpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2E3NTVhOTQ2ZDMzMWNiMTdi
MDMzNDhhMTc5YTVhMzJiOTRiNmMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExSZWNvdmVyeU9wY29kZS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBGVExSZWNvdmVy
eU9wY29kZV9oCisjZGVmaW5lIEZUTFJlY292ZXJ5T3Bjb2RlX2gKKworI2lmIEVOQUJMRShGVExf
SklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK2VudW0gUmVjb3ZlcnlP
cGNvZGUgeworICAgIEFkZFJlY292ZXJ5LAorICAgIFN1YlJlY292ZXJ5Cit9OworCit9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6RlRMCisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBQcmludFN0cmVh
bTsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6RlRMOjpSZWNvdmVyeU9w
Y29kZSk7CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQp
CisKKyNlbmRpZiAvLyBGVExSZWNvdmVyeU9wY29kZV9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3MDc3ZmQ1
MGRjNDA2MWFhNGJjMDUwNjkyYzdiNTdhMjI4YjA4ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwCkBAIC0wLDAgKzEs
NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZUTFJlZ2lzdGVyQXRPZmZzZXQuaCIKKworI2lm
IEVOQUJMRShGVExfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK3Zv
aWQgUmVnaXN0ZXJBdE9mZnNldDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAg
IG91dC5wcmludChncHIoKSwgIiBhdCAiLCBvZmZzZXQoKSk7Cit9CisKK30gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkOWU5
YWIwM2QwM2Y3OTljNjBhNzMzZmM1MjcxNzNmNGFiYTAzMDYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuaApAQCAtMCwwICsx
LDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgRlRMUmVnaXN0ZXJBdE9mZnNldF9oCisjZGVmaW5lIEZUTFJlZ2lzdGVyQXRPZmZzZXRf
aAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVk
ZSA8d3RmL1ByaW50U3RyZWFtLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsK
KworY2xhc3MgUmVnaXN0ZXJBdE9mZnNldCB7CitwdWJsaWM6CisgICAgUmVnaXN0ZXJBdE9mZnNl
dCgpCisgICAgICAgIDogbV9ncHIoSW52YWxpZEdQUlJlZykKKyAgICAgICAgLCBtX29mZnNldCgw
KQorICAgIHsKKyAgICB9CisgICAgCisgICAgUmVnaXN0ZXJBdE9mZnNldChHUFJSZWcgZ3ByLCBw
dHJkaWZmX3Qgb2Zmc2V0KQorICAgICAgICA6IG1fZ3ByKGdwcikKKyAgICAgICAgLCBtX29mZnNl
dChvZmZzZXQpCisgICAgeworICAgIH0KKyAgICAKKyAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0
IHsgcmV0dXJuIG1fZ3ByID09IEludmFsaWRHUFJSZWc7IH0KKyAgICAKKyAgICBHUFJSZWcgZ3By
KCkgY29uc3QgeyByZXR1cm4gbV9ncHI7IH0KKyAgICBwdHJkaWZmX3Qgb2Zmc2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9vZmZzZXQ7IH0KKyAgICAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVn
aXN0ZXJBdE9mZnNldCYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZ3ByKCkg
PT0gb3RoZXIuZ3ByKCkgJiYgb2Zmc2V0KCkgPT0gb3RoZXIub2Zmc2V0KCk7CisgICAgfQorICAg
IAorICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXQmIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgaWYgKGdwcigpICE9IG90aGVyLmdwcigpKQorICAgICAgICAgICAg
cmV0dXJuIGdwcigpIDwgb3RoZXIuZ3ByKCk7CisgICAgICAgIHJldHVybiBvZmZzZXQoKSA8IG90
aGVyLm9mZnNldCgpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgR1BSUmVnIGdldEdQUihSZWdp
c3RlckF0T2Zmc2V0KiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUtPmdwcigpOyB9CisgICAgCisgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OworCitwcml2YXRlOgorICAgIEdQUlJl
ZyBtX2dwcjsKKyAgICBwdHJkaWZmX3QgbV9vZmZzZXQ7Cit9OworCit9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTFJl
Z2lzdGVyQXRPZmZzZXRfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTFNsb3dQYXRoQ2FsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQ
YXRoQ2FsbC5jcHAKaW5kZXggM2NmNmFlMGUzZjYwYjVjZjM5MWNmYzQ4MDU1ZGYwZmRlNGNlMDE2
Ny4uMmUwZmE4ODljNzM3M2ZkOWIwNjAzZWUzMTgyYzdiYmMzY2NhNjQ4OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjksNyBAQAog
I2lmIEVOQUJMRShGVExfSklUKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVk
ZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkZUTFN0YXRlLmgiCiAjaW5jbHVkZSAi
R1BSSW5mby5oIgogCkBAIC0xMzQsMTEgKzEzNSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBTbG93UGF0aENhbGxLZXkodXNlZFJlZ2lzdGVycygpLCBjYWxsVGFyZ2V0LCBvZmZzZXQoKSk7
CiAgICAgfQogICAgIAotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIG1ha2VDYWxsKHZvaWQqIGNh
bGxUYXJnZXQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgbWFrZUNhbGwodm9pZCogY2FsbFRh
cmdldCwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0KiBleGNlcHRpb25UYXJnZXQpCiAgICAgewog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCByZXN1bHQgPSBtX2ppdC5jYWxsKCk7CiAgICAg
ICAgIG1fc3RhdGUuZmluYWxpemVyLT5zbG93UGF0aENhbGxzLmFwcGVuZChTbG93UGF0aENhbGwo
CiAgICAgICAgICAgICByZXN1bHQsIGtleVdpdGhUYXJnZXQoY2FsbFRhcmdldCkpKTsKKyAgICAg
ICAgaWYgKGV4Y2VwdGlvblRhcmdldCkKKyAgICAgICAgICAgIGV4Y2VwdGlvblRhcmdldC0+YXBw
ZW5kKG1faml0LmVtaXRFeGNlcHRpb25DaGVjaygpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CiAgICAgCkBAIC0xNTcsMzIgKzE2MCw0NCBAQCBwcml2YXRlOgogCiB9IC8vIGFub255
bW91cyBuYW1lc3BhY2UKIAordm9pZCBzdG9yZUNvZGVPcmlnaW4oU3RhdGUmIHN0YXRlLCBDQ2Fs
bEhlbHBlcnMmIGppdCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQoreworICAgIGlmICghY29kZU9y
aWdpbi5pc1NldCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgdW5zaWduZWQgaW5kZXgg
PSBzdGF0ZS5qaXRDb2RlLT5jb21tb24uYWRkQ29kZU9yaWdpbihjb2RlT3JpZ2luKTsKKyAgICB1
bnNpZ25lZCBsb2NhdGlvbkJpdHMgPSBDYWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0NvZGVP
cmlnaW5JbmRleChpbmRleCk7CisgICAgaml0LnN0b3JlMzIoCisgICAgICAgIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksCisgICAgICAgIENDYWxsSGVscGVyczo6dGFn
Rm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNTdGFjazo6QXJndW1lbnRDb3VudCkp
KTsKK30KKwogTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKLSAgICBTdGF0ZSYg
c3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDQ2FsbEhlbHBlcnMmIGpp
dCwgCi0gICAgSl9KSVRPcGVyYXRpb25fRVNzaUpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwg
R1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bywgR1BSUmVnIG9iamVjdCwgU3RyaW5nSW1wbCogdWlkKQorICAgIFN0YXRlJiBzdGF0ZSwgY29u
c3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENDYWxsSGVscGVycyYgaml0LAorICAgIENv
ZGVPcmlnaW4gY29kZU9yaWdpbiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0KiBleGNlcHRpb25U
YXJnZXQsCisgICAgSl9KSVRPcGVyYXRpb25fRVNzaUpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3Vs
dCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLAorICAgIEdQUlJlZyBvYmplY3QsIFN0cmlu
Z0ltcGwqIHVpZCkKIHsKKyAgICBzdG9yZUNvZGVPcmlnaW4oc3RhdGUsIGppdCwgY29kZU9yaWdp
bik7CiAgICAgQ2FsbENvbnRleHQgY29udGV4dChzdGF0ZSwgdXNlZFJlZ2lzdGVycywgaml0LCA0
LCByZXN1bHQpOwotICAgIGppdC5zZXR1cEFyZ3VtZW50cygKLSAgICAgICAgY2FsbEZyYW1lUmVn
aXN0ZXIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihzdHViSW5mbyksIG9iamVjdCwKKyAg
ICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKAorICAgICAgICBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoc3R1YkluZm8pLCBvYmplY3QsCiAgICAgICAgIENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cih1aWQpKTsKLSAgICByZXR1cm4gY29udGV4dC5tYWtlQ2FsbChiaXR3aXNl
X2Nhc3Q8dm9pZCo+KG9wZXJhdGlvbikpOwotICAgIC8vIEZJWE1FOiBGVEwgc2hvdWxkIHN1cHBv
cnQgZXhjZXB0aW9ucy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEzNjIyCisgICAgcmV0dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9jYXN0PHZv
aWQqPihvcGVyYXRpb24pLCBleGNlcHRpb25UYXJnZXQpOwogfQogCiBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKAogICAgIFN0YXRlJiBzdGF0ZSwgY29uc3QgUmVnaXN0ZXJTZXQm
IHVzZWRSZWdpc3RlcnMsIENDYWxsSGVscGVycyYgaml0LCAKLSAgICBWX0pJVE9wZXJhdGlvbl9F
U3NpSkpJIG9wZXJhdGlvbiwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbywgR1BSUmVnIHZhbHVlLCBHUFJSZWcgb2JqZWN0LCBTdHJpbmdJ
bXBsKiB1aWQpCisgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBNYWNyb0Fzc2VtYmxlcjo6SnVt
cExpc3QqIGV4Y2VwdGlvblRhcmdldCwKKyAgICBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJIG9wZXJh
dGlvbiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBHUFJSZWcgdmFsdWUsCisgICAgR1BS
UmVnIG9iamVjdCwgU3RyaW5nSW1wbCogdWlkKQogeworICAgIHN0b3JlQ29kZU9yaWdpbihzdGF0
ZSwgaml0LCBjb2RlT3JpZ2luKTsKICAgICBDYWxsQ29udGV4dCBjb250ZXh0KHN0YXRlLCB1c2Vk
UmVnaXN0ZXJzLCBqaXQsIDUsIEludmFsaWRHUFJSZWcpOwotICAgIGppdC5zZXR1cEFyZ3VtZW50
cygKLSAgICAgICAgY2FsbEZyYW1lUmVnaXN0ZXIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihzdHViSW5mbyksIHZhbHVlLCBvYmplY3QsCisgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZSgKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwg
dmFsdWUsIG9iamVjdCwKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHVpZCkp
OwotICAgIHJldHVybiBjb250ZXh0Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0
aW9uKSk7Ci0gICAgLy8gRklYTUU6IEZUTCBzaG91bGQgc3VwcG9ydCBleGNlcHRpb25zLgotICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjIKKyAgICBy
ZXR1cm4gY29udGV4dC5tYWtlQ2FsbChiaXR3aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlvbiksIGV4
Y2VwdGlvblRhcmdldCk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oCmluZGV4IDQzNWVmZGM4MzRlNDAy
NDVlOWRiYzA5NzlmZjkzYWJlMzk2Y2I1ZmQuLjY4ZTA5ZTY2Yjk3ZWM0MGY0OWZmNWY5N2I4YzQ4
ODFjNzRkYTMzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xv
d1BhdGhDYWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENh
bGwuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNTUsMTMgKzU1LDE1IEBAIHByaXZhdGU6CiAgICAgU2xvd1BhdGhDYWxsS2V5IG1fa2V5
OwogfTsKIAordm9pZCBzdG9yZUNvZGVPcmlnaW4oU3RhdGUmLCBDQ2FsbEhlbHBlcnMmLCBDb2Rl
T3JpZ2luKTsKKwogTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKLSAgICBTdGF0
ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0JiwgQ0NhbGxIZWxwZXJzJiwgSl9KSVRPcGVyYXRpb25fRVNz
aUpJLAotICAgIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwgU3RydWN0
dXJlU3R1YkluZm8qLCBHUFJSZWcgb2JqZWN0LAorICAgIFN0YXRlJiwgY29uc3QgUmVnaXN0ZXJT
ZXQmLCBDQ2FsbEhlbHBlcnMmLCBDb2RlT3JpZ2luLCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0KiwK
KyAgICBKX0pJVE9wZXJhdGlvbl9FU3NpSkksIEdQUlJlZyByZXN1bHQsIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgR1BSUmVnIG9iamVjdCwKICAgICBTdHJpbmdJbXBsKiB1aWQpOwogTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKLSAgICBTdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0Jiwg
Q0NhbGxIZWxwZXJzJiwgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSwKLSAgICBHUFJSZWcgY2FsbEZy
YW1lUmVnaXN0ZXIsIFN0cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnIHZhbHVlLCBHUFJSZWcgb2Jq
ZWN0LAorICAgIFN0YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmLCBDQ2FsbEhlbHBlcnMmLCBDb2Rl
T3JpZ2luLCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0KiwKKyAgICBWX0pJVE9wZXJhdGlvbl9FU3Np
SkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZyB2YWx1ZSwgR1BSUmVnIG9iamVjdCwKICAg
ICBTdHJpbmdJbXBsKiB1aWQpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5jcHAKaW5kZXggNWFmMjA4MmM4Y2NhMDY4
ZmMxMjA2NmYwY2M0ODhmZmU4YzM5YmNjOS4uNDAzMzg5MWE5YjQzN2NhNDhlMmFlNjRkZTBlNTQz
ZmYzM2U2YzY1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFj
a01hcHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBzLmNw
cApAQCAtNzksNyArNzksOSBAQCB2b2lkIFN0YWNrTWFwczo6TG9jYXRpb246OnJlc3RvcmVJbnRv
KAogCiBib29sIFN0YWNrTWFwczo6UmVjb3JkOjpwYXJzZShEYXRhVmlldyogdmlldywgdW5zaWdu
ZWQmIG9mZnNldCkKIHsKLSAgICBwYXRjaHBvaW50SUQgPSB2aWV3LT5yZWFkPHVpbnQzMl90Pihv
ZmZzZXQsIHRydWUpOworICAgIGludDY0X3QgaWQgPSB2aWV3LT5yZWFkPGludDY0X3Q+KG9mZnNl
dCwgdHJ1ZSk7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PGludDMyX3Q+KGlkKSA9PSBpZCk7Cisg
ICAgcGF0Y2hwb2ludElEID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGlkKTsKICAgICBpZiAoc3Rh
dGljX2Nhc3Q8aW50MzJfdD4ocGF0Y2hwb2ludElEKSA8IDApCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAKQEAgLTkwLDYgKzkyLDEzIEBAIGJvb2wgU3RhY2tNYXBzOjpSZWNvcmQ6OnBhcnNl
KERhdGFWaWV3KiB2aWV3LCB1bnNpZ25lZCYgb2Zmc2V0KQogICAgIHdoaWxlIChsZW5ndGgtLSkK
ICAgICAgICAgbG9jYXRpb25zLmFwcGVuZChyZWFkT2JqZWN0PExvY2F0aW9uPih2aWV3LCBvZmZz
ZXQpKTsKICAgICAKKyAgICB1bnNpZ25lZCBudW1MaXZlT3V0cyA9IHZpZXctPnJlYWQ8dWludDE2
X3Q+KG9mZnNldCwgdHJ1ZSk7CisgICAgd2hpbGUgKG51bUxpdmVPdXRzLS0pIHsKKyAgICAgICAg
dmlldy0+cmVhZDx1aW50MTZfdD4ob2Zmc2V0LCB0cnVlKTsgLy8gcmVnbnVtCisgICAgICAgIHZp
ZXctPnJlYWQ8dWludDhfdD4ob2Zmc2V0LCB0cnVlKTsgLy8gcmVzZXJ2ZWQKKyAgICAgICAgdmll
dy0+cmVhZDx1aW50OF90PihvZmZzZXQsIHRydWUpOyAvLyBzaXplIGluIGJ5dGVzCisgICAgfQor
ICAgIAogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExT
dGFja01hcHMuaAppbmRleCBmMTc1OTI1ZDUwMTJjMTdjYTEwNjVmZTkyYjlkMmI2M2FjODU4OWRh
Li4wM2I3NjYxNWZkN2YwM2EyYmZiZDNjZGRkZTgxODg4NmFhNWNhYTU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBzLmgKQEAgLTYxLDcgKzYxLDcgQEAgc3RydWN0IFN0
YWNrTWFwcyB7CiAgICAgICAgIHVpbnQxNl90IGR3YXJmUmVnTnVtOyAvLyBSZXByZXNlbnRlZCBh
cyBhIDEyLWJpdCBpbnQgaW4gdGhlIHNlY3Rpb24uCiAgICAgICAgIGludDhfdCBzaXplOwogICAg
ICAgICBLaW5kIGtpbmQ7Ci0gICAgICAgIGludDE2X3Qgb2Zmc2V0OworICAgICAgICBpbnQzMl90
IG9mZnNldDsKICAgICAgICAgCiAgICAgICAgIHZvaWQgcGFyc2UoRGF0YVZpZXcqLCB1bnNpZ25l
ZCYgb2Zmc2V0KTsKICAgICAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmNwcAppbmRleCBjMjYzYjI2NGI0ZGQzMTI2
NWNmMTZhNGEzOWM2NDgyOTMxNTNjMWI0Li4zMjk0NGQ2YjQzM2ZiOTlkYjIwM2U5ZDViZTliYzM0
YTFmYWFjYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmNwcApAQCAtNDMs
NiArNDMsOCBAQCBTdGF0ZTo6U3RhdGUoR3JhcGgmIGdyYXBoKQogICAgICwgbW9kdWxlKDApCiAg
ICAgLCBmdW5jdGlvbigwKQogICAgICwgZ2VuZXJhdGVkRnVuY3Rpb24oMCkKKyAgICAsIGNvbXBh
Y3RVbndpbmQoMCkKKyAgICAsIGNvbXBhY3RVbndpbmRTaXplKDApCiB7CiAgICAgc3dpdGNoIChn
cmFwaC5tX3BsYW4ubW9kZSkgewogICAgIGNhc2UgRlRMTW9kZTogewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExTdGF0ZS5oCmluZGV4IGM4MmRiNjcyODQyZWJlYmE2ZDU2YmI1NjE0Y2I0YzFkYWUz
MTE2OTMuLjZlNGEzODE2MzAzZDU2NmI0NzdjMWM4Mzc1OWI2MzQzYWFiMzhkOWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJGVExJ
bmxpbmVDYWNoZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJGVExKSVRDb2RlLmgiCiAjaW5jbHVk
ZSAiRlRMSklURmluYWxpemVyLmgiCisjaW5jbHVkZSAiRlRMSlNDYWxsLmgiCiAjaW5jbHVkZSAi
RlRMU3RhY2tNYXBzLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKQEAgLTU3LDEw
ICs1OCwxNSBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPEpJVENvZGU+IGppdENvZGU7CiAgICAgR2Vu
ZXJhdGVkRnVuY3Rpb24gZ2VuZXJhdGVkRnVuY3Rpb247CiAgICAgSklURmluYWxpemVyKiBmaW5h
bGl6ZXI7CisgICAgdW5zaWduZWQgaGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRDsKKyAgICB1bnNp
Z25lZCBjYXB0dXJlZFN0YWNrbWFwSUQ7CiAgICAgU2VnbWVudGVkVmVjdG9yPEdldEJ5SWREZXNj
cmlwdG9yPiBnZXRCeUlkczsKICAgICBTZWdtZW50ZWRWZWN0b3I8UHV0QnlJZERlc2NyaXB0b3I+
IHB1dEJ5SWRzOworICAgIFZlY3RvcjxKU0NhbGw+IGpzQ2FsbHM7CiAgICAgVmVjdG9yPENTdHJp
bmc+IGNvZGVTZWN0aW9uTmFtZXM7CiAgICAgVmVjdG9yPENTdHJpbmc+IGRhdGFTZWN0aW9uTmFt
ZXM7CisgICAgdm9pZCogY29tcGFjdFVud2luZDsKKyAgICBzaXplX3QgY29tcGFjdFVud2luZFNp
emU7CiAgICAgUmVmQ291bnRlZEFycmF5PExTZWN0aW9uV29yZD4gc3RhY2ttYXBzU2VjdGlvbjsK
ICAgICAKICAgICB2b2lkIGR1bXBTdGF0ZShjb25zdCBjaGFyKiB3aGVuKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAppbmRleCBiZjA0YWYwMmEzOTg1NzM0NTliNDU3NjJh
YmUwNTZhYzAxMDNjZjc0Li4xOWYyZmUyYTAyNTZmNjE2YjI3YTU1ZDMzOWQ5ZWUyMjk0MWI5N2Nk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCkBAIC0zOSw5ICszOSw5
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAogdXNpbmcgbmFtZXNwYWNlIERG
RzsKIAotTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0
b3IoVk0mIHZtLCBjb25zdCBMb2NhdGlvbiYgbG9jYXRpb24pCitNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgQXNzZW1i
bHlIZWxwZXJzIGppdCgmdm0sIDApOworICAgIEFzc2VtYmx5SGVscGVycyBqaXQodm0sIDApOwog
ICAgIAogICAgIC8vIE5vdGUgdGhhdCB0aGUgInJldHVybiBhZGRyZXNzIiB3aWxsIGJlIHRoZSBP
U1IgZXhpdCBJRC4KICAgICAKQEAgLTUxLDcgKzUxLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0mIHZtLCBjb25zdCBMb2NhdGlvbiYg
bG8KICAgICBqaXQucHVzaChHUFJJbmZvOjpyZWdUMCk7CiAgICAgaml0LnB1c2goR1BSSW5mbzo6
cmVnVDApOwogICAgIAotICAgIFNjcmF0Y2hCdWZmZXIqIHNjcmF0Y2hCdWZmZXIgPSB2bS5zY3Jh
dGNoQnVmZmVyRm9yU2l6ZShyZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKTsKKyAg
ICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0tPnNjcmF0Y2hCdWZmZXJGb3JTaXpl
KHJlcXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVzKCkpOwogICAgIGNoYXIqIGJ1ZmZlciA9
IHN0YXRpY19jYXN0PGNoYXIqPihzY3JhdGNoQnVmZmVyLT5kYXRhQnVmZmVyKCkpOwogICAgIAog
ICAgIHNhdmVBbGxSZWdpc3RlcnMoaml0LCBidWZmZXIpOwpAQCAtNjAsNyArNjAsNyBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSYgdm0s
IGNvbnN0IExvY2F0aW9uJiBsbwogICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKHNjcmF0Y2hCdWZmZXItPmFjdGl2ZUxlbmd0aFB0cigpKSwgR1BSSW5mbzo6bm9uQXJn
R1BSMSk7CiAgICAgaml0LnN0b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHJl
cXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVzKCkpLCBHUFJJbmZvOjpub25BcmdHUFIxKTsK
IAotICAgIGxvY2F0aW9uLnJlc3RvcmVJbnRvKGppdCwgYnVmZmVyLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjAsIDEpOworICAgIGppdC5sb2FkUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5wZWVrKEdQUkluZm86OmFyZ3VtZW50R1BS
MSwgMyk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgZnVuY3Rpb25DYWxsID0gaml0LmNhbGwo
KTsKICAgICAKQEAgLTcxLDYgKzcxLDEwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0
R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNJiB2bSwgY29uc3QgTG9jYXRpb24mIGxvCiAgICAg
CiAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJlZ1QwKTsK
ICAgICAKKyAgICAvLyBNYWtlIHN1cmUgd2UgdGVsbCB0aGUgR0MgdGhhdCB3ZSdyZSBub3QgdXNp
bmcgdGhlIHNjcmF0Y2ggYnVmZmVyIGFueW1vcmUuCisgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIoc2NyYXRjaEJ1ZmZlci0+YWN0aXZlTGVuZ3RoUHRyKCkpLCBHUFJJ
bmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKDApLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgCiAgICAgLy8gUHJlcGFyZSBmb3IgdGFpbCBj
YWxsLgogICAgIGppdC5wb3AoR1BSSW5mbzo6cmVnVDEpOwogICAgIGppdC5wb3AoR1BSSW5mbzo6
cmVnVDEpOwpAQCAtODEsMTQgKzg1LDE0IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0
R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNJiB2bSwgY29uc3QgTG9jYXRpb24mIGxvCiAgICAg
Ly8gcmVzdG9yZSBhbGwgcmVnaXN0ZXJzLgogICAgIAogICAgIGppdC5yZXN0b3JlUmV0dXJuQWRk
cmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpyZWdUMCk7Ci0gICAgCisKICAgICByZXN0b3JlQWxs
UmVnaXN0ZXJzKGppdCwgYnVmZmVyKTsKIAogICAgIGppdC5yZXQoKTsKICAgICAKLSAgICBMaW5r
QnVmZmVyIHBhdGNoQnVmZmVyKHZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgIExpbmtC
dWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOwogICAgIHBhdGNo
QnVmZmVyLmxpbmsoZnVuY3Rpb25DYWxsLCBjb21waWxlRlRMT1NSRXhpdCk7Ci0gICAgcmV0dXJu
IEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiRlRMIE9TUiBleGl0IGdlbmVyYXRpb24gdGh1
bmsgZm9yIGNhbGxGcmFtZSBhdCAlcyIsIHRvQ1N0cmluZyhsb2NhdGlvbikuZGF0YSgpKSk7Cisg
ICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiRlRMIE9TUiBleGl0IGdlbmVy
YXRpb24gdGh1bmsiKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzbG93UGF0aENhbGxU
aHVua0dlbmVyYXRvcihWTSYgdm0sIGNvbnN0IFNsb3dQYXRoQ2FsbEtleSYga2V5KQpAQCAtMTE5
LDExICsxMjMsMTMgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNsb3dQYXRoQ2FsbFRodW5rR2Vu
ZXJhdG9yKFZNJiB2bSwgY29uc3QgU2xvd1BhdGhDYWxsS2V5JgogICAgICAgICBjdXJyZW50T2Zm
c2V0ICs9IHNpemVvZihkb3VibGUpOwogICAgIH0KICAgICAKKyAgICAvLyBGSVhNRTogQ1N0YWNr
IC0gTmVlZCB0byBkbyBzb2VtZXRoaW5nIGxpa2Ugaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7
CiAgICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpub25BcmdH
UFIwKTsKICAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6bm9uQXJnR1BSMCwgQXNzZW1ibHlIZWxw
ZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9m
ZnNldCgpKSk7CiAgICAgCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGppdC5jYWxsKCk7
Ci0gICAgCisKKyAgICAvLyBGSVhNRTogQ1N0YWNrIC0gTmVlZCB0byBkbyBzb21ldGhpbmcgbGlr
ZSBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICBqaXQubG9hZFB0cihBc3NlbWJseUhl
bHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBrZXku
b2Zmc2V0KCkpLCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwogICAgIGppdC5y
ZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25S
ZXR1cm5HUFIpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExUaHVua3MuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmgKaW5kZXgg
YmJjZGJkZGM5MmE1ZDU4NzBkMzBjNTlmZmMxNzc5MTk1YWEyNjNmNC4uMzAwODQ0NTQ5NjQ5MTc4
OTEwYjI0ZWQ4NjFkOWEzY2ZmMWI5ZWI1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExUaHVua3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRo
dW5rcy5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFZNOwogCiBuYW1lc3BhY2UgRlRMIHsKIAot
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0m
LCBjb25zdCBMb2NhdGlvbiYpOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0
aW9uVGh1bmtHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzbG93UGF0aENh
bGxUaHVua0dlbmVyYXRvcihWTSYsIGNvbnN0IFNsb3dQYXRoQ2FsbEtleSYpOwogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlUeXBlQXJndW1lbnQ+CkBAIC03OCwxMiArNzgsNiBAQCB0eXBlbmFtZSBN
YXBUeXBlOjpLZXlUeXBlIGtleUZvclRodW5rKE1hcFR5cGUmIG1hcCwgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIHB0cikKIAogY2xhc3MgVGh1bmtzIHsKIHB1YmxpYzoKLSAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgZ2V0T1NSRXhpdEdlbmVyYXRpb25UaHVuayhWTSYgdm0sIGNvbnN0IExvY2F0aW9u
JiBsb2NhdGlvbikKLSAgICB7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0ZUlmTmVjZXNzYXJ5KAot
ICAgICAgICAgICAgdm0sIG1fb3NyRXhpdFRodW5rcywgbG9jYXRpb24sIG9zckV4aXRHZW5lcmF0
aW9uVGh1bmtHZW5lcmF0b3IpOwotICAgIH0KLSAgICAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgZ2V0U2xvd1BhdGhDYWxsVGh1bmsoVk0mIHZtLCBjb25zdCBTbG93UGF0aENhbGxLZXkmIGtl
eSkKICAgICB7CiAgICAgICAgIHJldHVybiBnZW5lcmF0ZUlmTmVjZXNzYXJ5KApAQCAtOTYsNyAr
OTAsNiBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogcHJpdmF0ZToKLSAgICBUaHVua01hcDxMb2Nh
dGlvbj4gbV9vc3JFeGl0VGh1bmtzOwogICAgIFRodW5rTWFwPFNsb3dQYXRoQ2FsbEtleT4gbV9z
bG93UGF0aENhbGxUaHVua3M7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTFVud2luZEluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExV
bndpbmRJbmZvLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTQwYjkyMjIzMTcxYTFhYTI1OGQ3ZDlhZWQ3N2Fl
ZWY2Y2Q2NzJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExVbndpbmRJbmZvLmNwcApAQCAtMCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RlRMVW53aW5kSW5mby5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlIDx3dGYv
TGlzdER1bXAuaD4KKyNpbmNsdWRlIDxtYWNoLW8vY29tcGFjdF91bndpbmRfZW5jb2RpbmcuaD4K
KworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitVbndpbmRJbmZvOjpVbndpbmRJ
bmZvKCkgeyB9CitVbndpbmRJbmZvOjp+VW53aW5kSW5mbygpIHsgfQorCituYW1lc3BhY2Ugewor
CitzdHJ1Y3QgQ29tcGFjdFVud2luZCB7CisgICAgdm9pZCogZnVuY3Rpb247CisgICAgdWludDMy
X3Qgc2l6ZTsKKyAgICBjb21wYWN0X3Vud2luZF9lbmNvZGluZ190IGVuY29kaW5nOworICAgIHZv
aWQqIHBlcnNvbmFsaXR5OworICAgIHZvaWQqIGxzZGE7Cit9OworCit9IC8vIGFub255bW91cyBu
YW1lc3BhY2UKKwordm9pZCBVbndpbmRJbmZvOjpwYXJzZSh2b2lkKiBzZWN0aW9uLCBzaXplX3Qg
c2l6ZSwgR2VuZXJhdGVkRnVuY3Rpb24gZ2VuZXJhdGVkRnVuY3Rpb24pCit7CisgICAgbV9yZWdp
c3RlcnMuY2xlYXIoKTsKKyAgICAKKyAgICBSRUxFQVNFX0FTU0VSVChzZWN0aW9uKTsKKyAgICBS
RUxFQVNFX0FTU0VSVChzaXplID49IHNpemVvZihDb21wYWN0VW53aW5kKSk7CisgICAgCisgICAg
Q29tcGFjdFVud2luZCogZGF0YSA9IGJpdHdpc2VfY2FzdDxDb21wYWN0VW53aW5kKj4oc2VjdGlv
bik7CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlQoIWRhdGEtPnBlcnNvbmFsaXR5KTsgLy8gV2Ug
ZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIHRoaXMuCisgICAgUkVMRUFTRV9BU1NFUlQoIWRhdGEt
PmxzZGEpOyAvLyBXZSBkb24ndCBrbm93IGhvdyB0byBoYW5kbGUgdGhpcy4KKyAgICBSRUxFQVNF
X0FTU0VSVChkYXRhLT5mdW5jdGlvbiA9PSBnZW5lcmF0ZWRGdW5jdGlvbik7IC8vIFRoZSB1bndp
bmQgZGF0YSBiZXR0ZXIgYmUgZm9yIG91ciBmdW5jdGlvbi4KKyAgICAKKyAgICBjb21wYWN0X3Vu
d2luZF9lbmNvZGluZ190IGVuY29kaW5nID0gZGF0YS0+ZW5jb2Rpbmc7CisgICAgUkVMRUFTRV9B
U1NFUlQoIShlbmNvZGluZyAmIFVOV0lORF9JU19OT1RfRlVOQ1RJT05fU1RBUlQpKTsKKyAgICBS
RUxFQVNFX0FTU0VSVCghKGVuY29kaW5nICYgVU5XSU5EX0hBU19MU0RBKSk7CisgICAgUkVMRUFT
RV9BU1NFUlQoIShlbmNvZGluZyAmIFVOV0lORF9QRVJTT05BTElUWV9NQVNLKSk7CisgICAgUkVM
RUFTRV9BU1NFUlQoKGVuY29kaW5nICYgVU5XSU5EX1g4Nl82NF9NT0RFX01BU0spID09IFVOV0lO
RF9YODZfNjRfTU9ERV9SQlBfRlJBTUUpOworICAgIAorICAgIGludDMyX3Qgb2Zmc2V0ID0gLSgo
ZW5jb2RpbmcgJiBVTldJTkRfWDg2XzY0X1JCUF9GUkFNRV9PRkZTRVQpID4+IDE2KSAqIDg7Cisg
ICAgdWludDMyX3QgbmV4dFJlZ2lzdGVycyA9IGVuY29kaW5nOworICAgIGZvciAodW5zaWduZWQg
aSA9IDU7IGktLTspIHsKKyAgICAgICAgdWludDMyX3QgY3VycmVudFJlZ2lzdGVyID0gbmV4dFJl
Z2lzdGVycyAmIDc7CisgICAgICAgIG5leHRSZWdpc3RlcnMgPj49IDM7CisgICAgICAgIAorICAg
ICAgICBzd2l0Y2ggKGN1cnJlbnRSZWdpc3RlcikgeworICAgICAgICBjYXNlIFVOV0lORF9YODZf
NjRfUkVHX05PTkU6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBj
YXNlIFVOV0lORF9YODZfNjRfUkVHX1JCWDoKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVu
ZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJlZ2lzdGVyczo6ZWJ4LCBvZmZzZXQpKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdf
UjEyOgorICAgICAgICAgICAgbV9yZWdpc3RlcnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2
UmVnaXN0ZXJzOjpyMTIsIG9mZnNldCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAKKyAgICAgICAgY2FzZSBVTldJTkRfWDg2XzY0X1JFR19SMTM6CisgICAgICAgICAgICBtX3Jl
Z2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJBdE9mZnNldChYODZSZWdpc3RlcnM6OnIxMywgb2Zmc2V0
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lO
RF9YODZfNjRfUkVHX1IxNDoKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3Rl
ckF0T2Zmc2V0KFg4NlJlZ2lzdGVyczo6cjE0LCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUjE1OgorICAg
ICAgICAgICAgbV9yZWdpc3RlcnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJz
OjpyMTUsIG9mZnNldCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAg
ICAgY2FzZSBVTldJTkRfWDg2XzY0X1JFR19SQlA6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5h
cHBlbmQoUmVnaXN0ZXJBdE9mZnNldChYODZSZWdpc3RlcnM6OmVicCwgb2Zmc2V0KSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgb2Zmc2V0ICs9IDg7CisgICAgfQorICAgIAorICAgIHN0ZDo6c29ydChtX3JlZ2lzdGVy
cy5iZWdpbigpLCBtX3JlZ2lzdGVycy5lbmQoKSk7Cit9CisKK3ZvaWQgVW53aW5kSW5mbzo6ZHVt
cChQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIG91dC5wcmludChsaXN0RHVtcChtX3Jl
Z2lzdGVycykpOworfQorCitSZWdpc3RlckF0T2Zmc2V0KiBVbndpbmRJbmZvOjpmaW5kKEdQUlJl
ZyBncHIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRyeUJpbmFyeVNlYXJjaDxSZWdpc3RlckF0T2Zm
c2V0LCBHUFJSZWc+KG1fcmVnaXN0ZXJzLCBtX3JlZ2lzdGVycy5zaXplKCksIGdwciwgUmVnaXN0
ZXJBdE9mZnNldDo6Z2V0R1BSKTsKK30KKwordW5zaWduZWQgVW53aW5kSW5mbzo6aW5kZXhPZihH
UFJSZWcgZ3ByKSBjb25zdAoreworICAgIGlmIChSZWdpc3RlckF0T2Zmc2V0KiBwb2ludGVyID0g
ZmluZChncHIpKQorICAgICAgICByZXR1cm4gcG9pbnRlciAtIG1fcmVnaXN0ZXJzLmJlZ2luKCk7
CisgICAgcmV0dXJuIFVJTlRfTUFYOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisK
KyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExVbndpbmRJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFVud2luZEluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTU0MTcyOGQ0NTIxNTJkN2ZmY2U5Yzg2NmVjN2Fk
OTEyMTQyZThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExVbndpbmRJbmZvLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZUTFVud2luZEluZm9faAorI2RlZmluZSBG
VExVbndpbmRJbmZvX2gKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiRlRMR2Vu
ZXJhdGVkRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJGVExSZWdpc3RlckF0T2Zmc2V0LmgiCisKK25h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworc3RydWN0IFVud2luZEluZm8geworICAg
IFVud2luZEluZm8oKTsKKyAgICB+VW53aW5kSW5mbygpOworICAgIAorICAgIHZvaWQgcGFyc2Uo
dm9pZCosIHNpemVfdCwgR2VuZXJhdGVkRnVuY3Rpb24pOworICAgIAorICAgIHZvaWQgZHVtcChQ
cmludFN0cmVhbSYpIGNvbnN0OworICAgIAorICAgIFJlZ2lzdGVyQXRPZmZzZXQqIGZpbmQoR1BS
UmVnIGdwcikgY29uc3Q7CisgICAgdW5zaWduZWQgaW5kZXhPZihHUFJSZWcgZ3ByKSBjb25zdDsg
Ly8gUmV0dXJucyBVSU5UX01BWCBpZiBub3QgZm91bmQuCisgICAgCisgICAgVmVjdG9yPFJlZ2lz
dGVyQXRPZmZzZXQ+IG1fcmVnaXN0ZXJzOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZU
TAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExVbndpbmRJbmZv
X2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5nZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDg5N2M4NmJkNDA1ZjNiNGQyZjQ1ZGY5NzdiMzY5YWE3YzkzNmQ5NgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5nZS5jcHAKQEAg
LTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMVmFsdWVSYW5nZS5oIgorCisj
aW5jbHVkZSAiRlRMQWJicmV2aWF0aW9ucy5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKK25h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKwordm9pZCBWYWx1ZVJhbmdlOjpkZWNvcmF0
ZUluc3RydWN0aW9uKAorICAgIExDb250ZXh0IGNvbnRleHQsIExWYWx1ZSBsb2FkSW5zdHJ1Y3Rp
b24sIHVuc2lnbmVkIHJhbmdlS2luZCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcmFuZ2VNZXRhZGF0
YSkKKyAgICAgICAgbV9yYW5nZU1ldGFkYXRhID0gbWROb2RlKGNvbnRleHQsIG1fYmVnaW4sIG1f
ZW5kKTsKKyAgICBzZXRNZXRhZGF0YShsb2FkSW5zdHJ1Y3Rpb24sIHJhbmdlS2luZCwgbV9yYW5n
ZU1ldGFkYXRhKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8g
RU5BQkxFKEZUTF9KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFZhbHVlUmFuZ2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5nZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJlZTQ0ZWZhMTg4MDE5MGZlMGNkOGQyNDM0YzhkMDVlNGEyOGEwNTUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2Uu
aApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgRlRMVmFsdWVSYW5nZV9oCisjZGVmaW5lIEZUTFZhbHVlUmFuZ2Vf
aAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJGVExBYmJyZXZpYXRlZFR5cGVz
LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworY2xhc3MgVmFsdWVSYW5n
ZSB7CitwdWJsaWM6CisgICAgVmFsdWVSYW5nZSgpCisgICAgICAgIDogbV9iZWdpbigwKQorICAg
ICAgICAsIG1fZW5kKDApCisgICAgICAgICwgbV9yYW5nZU1ldGFkYXRhKDApCisgICAgeworICAg
IH0KKyAgICAKKyAgICBWYWx1ZVJhbmdlKExWYWx1ZSBiZWdpbiwgTFZhbHVlIGVuZCkKKyAgICAg
ICAgOiBtX2JlZ2luKGJlZ2luKQorICAgICAgICAsIG1fZW5kKGVuZCkKKyAgICAgICAgLCBtX3Jh
bmdlTWV0YWRhdGEoMCkKKyAgICB7CisgICAgfQorICAgIAorICAgIExWYWx1ZSBiZWdpbigpIGNv
bnN0IHsgcmV0dXJuIG1fYmVnaW47IH0KKyAgICBMVmFsdWUgZW5kKCkgY29uc3QgeyByZXR1cm4g
bV9lbmQ7IH0KKyAgICAKKyAgICB2b2lkIGRlY29yYXRlSW5zdHJ1Y3Rpb24oTENvbnRleHQsIExW
YWx1ZSBsb2FkSW5zdHJ1Y3Rpb24sIHVuc2lnbmVkIHJhbmdlS2luZCkgY29uc3Q7CisgICAgCitw
cml2YXRlOgorICAgIExWYWx1ZSBtX2JlZ2luOworICAgIExWYWx1ZSBtX2VuZDsKKyAgICBtdXRh
YmxlIExWYWx1ZSBtX3JhbmdlTWV0YWRhdGE7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTFZhbHVlUmFu
Z2VfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRp
dmVSb290cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290
cy5jcHAKaW5kZXggN2ZjOGVlZTNmZjgyMjM0NTNjYWM4ZTU3M2Y5M2IxZTM3ZDNjNzk4Mi4uNDBk
ZjkwM2MwODQzMTZjOTE3MmQ2ODUyYzM2NTU4ZDBkYTVmMWFlYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmNwcApAQCAtOTksNyArOTksNiBA
QCB2b2lkIENvbnNlcnZhdGl2ZVJvb3RzOjpnZW5lcmljQWRkU3Bhbih2b2lkKiBiZWdpbiwgdm9p
ZCogZW5kLCBNYXJrSG9vayYgbWFya0hvbwogICAgICAgICBlbmQgPSBzd2FwVGVtcDsKICAgICB9
CiAKLSAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGNoYXIqPihlbmQpIC0gc3RhdGljX2Nhc3Q8Y2hh
cio+KGJlZ2luKSkgPCAweDEwMDAwMDApOwogICAgIEFTU0VSVChpc1BvaW50ZXJBbGlnbmVkKGJl
Z2luKSk7CiAgICAgQVNTRVJUKGlzUG9pbnRlckFsaWduZWQoZW5kKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggMmFiYTNhYTlkMDFlNzEyOGEwMDQwZjhmYjY0YjliOWIw
N2E5NjM3Ni4uYTYyYTIzN2I1YzM2YjJmNzEzMzRjZjg3ZWExNjMwNDY3ODZlM2U3OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHly
aWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDExLCAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcg
RXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNDUxLDI0ICs0
NTEsMjcgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoKQogICAgIGRvdWJsZSBnY1N0YXJ0VGltZSA9
IFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAjZW5kaWYKIAorICAgIG1fY29k
ZUJsb2Nrcy5jbGVhck1hcmtzKCk7CiAgICAgdm9pZCogZHVtbXk7Ci0gICAgCisKICAgICAvLyBX
ZSBnYXRoZXIgY29uc2VydmF0aXZlIHJvb3RzIGJlZm9yZSBjbGVhcmluZyBtYXJrIGJpdHMgYmVj
YXVzZSBjb25zZXJ2YXRpdmUKICAgICAvLyBnYXRoZXJpbmcgdXNlcyB0aGUgbWFyayBiaXRzIHRv
IGRldGVybWluZSB3aGV0aGVyIGEgcmVmZXJlbmNlIGlzIHZhbGlkLgogICAgIENvbnNlcnZhdGl2
ZVJvb3RzIG1hY2hpbmVUaHJlYWRSb290cygmbV9vYmplY3RTcGFjZS5ibG9ja3MoKSwgJm1fc3Rv
cmFnZVNwYWNlKTsKICAgICBtX2ppdFN0dWJSb3V0aW5lcy5jbGVhck1hcmtzKCk7CiAgICAgewog
ICAgICAgICBHQ1BIQVNFKEdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKTsKLSAgICAgICAgbV9tYWNo
aW5lVGhyZWFkcy5nYXRoZXJDb25zZXJ2YXRpdmVSb290cyhtYWNoaW5lVGhyZWFkUm9vdHMsICZk
dW1teSk7CisgICAgICAgIG1fbWFjaGluZVRocmVhZHMuZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMo
bWFjaGluZVRocmVhZFJvb3RzLCBtX2ppdFN0dWJSb3V0aW5lcywgbV9jb2RlQmxvY2tzLCAmZHVt
bXkpOwogICAgIH0KIAorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgQ29uc2VydmF0aXZl
Um9vdHMgc3RhY2tSb290cygmbV9vYmplY3RTcGFjZS5ibG9ja3MoKSwgJm1fc3RvcmFnZVNwYWNl
KTsKLSAgICBtX2NvZGVCbG9ja3MuY2xlYXJNYXJrcygpOwogICAgIHsKICAgICAgICAgR0NQSEFT
RShHYXRoZXJTdGFja1Jvb3RzKTsKICAgICAgICAgc3RhY2soKS5nYXRoZXJDb25zZXJ2YXRpdmVS
b290cyhzdGFja1Jvb3RzLCBtX2ppdFN0dWJSb3V0aW5lcywgbV9jb2RlQmxvY2tzKTsKLSAgICAg
ICAgc3RhY2soKS5zYW5pdGl6ZVN0YWNrKCk7CiAgICAgfQorI2VuZGlmCisKKyAgICBzYW5pdGl6
ZVN0YWNrRm9yVk0obV92bSk7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICBDb25zZXJ2YXRp
dmVSb290cyBzY3JhdGNoQnVmZmVyUm9vdHMoJm1fb2JqZWN0U3BhY2UuYmxvY2tzKCksICZtX3N0
b3JhZ2VTcGFjZSk7CkBAIC01MDUsMTIgKzUwOCwxNCBAQCB2b2lkIEhlYXA6Om1hcmtSb290cygp
CiAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZChtYWNoaW5lVGhyZWFkUm9vdHMpOwogICAgICAg
ICAgICAgdmlzaXRvci5kb25hdGVBbmREcmFpbigpOwogICAgICAgICB9CisjaWYgRU5BQkxFKExM
SU5UX0NfTE9PUCkKICAgICAgICAgewogICAgICAgICAgICAgR0NQSEFTRShWaXNpdFN0YWNrUm9v
dHMpOwogICAgICAgICAgICAgTUFSS19MT0dfUk9PVCh2aXNpdG9yLCAiU3RhY2siKTsKICAgICAg
ICAgICAgIHZpc2l0b3IuYXBwZW5kKHN0YWNrUm9vdHMpOwogICAgICAgICAgICAgdmlzaXRvci5k
b25hdGVBbmREcmFpbigpOwogICAgICAgICB9CisjZW5kaWYKICNpZiBFTkFCTEUoREZHX0pJVCkK
ICAgICAgICAgewogICAgICAgICAgICAgR0NQSEFTRShWaXNpdFNjcmF0Y2hCdWZmZXJSb290cyk7
CkBAIC05NTIsMTIgKzk1NywxMiBAQCB2b2lkIEhlYXA6OmNvbGxlY3QoKQogCiBib29sIEhlYXA6
OmNvbGxlY3RJZk5lY2Vzc2FyeU9yRGVmZXIoKQogewotICAgIGlmIChtX2RlZmVycmFsRGVwdGgp
CisgICAgaWYgKGlzRGVmZXJyZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAorCiAg
ICAgaWYgKCFzaG91bGRDb2xsZWN0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwog
ICAgIGNvbGxlY3QoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuaAppbmRleCA3YmExNWNhNTg0Y2MxNTdiYWRiMGExMGIyNGFiYWVkODYxZDM3ZDcwLi41ZjJh
Y2FlYjBkNTRjNmZjMjdmYTZkMWVkMGEwMDY4NGE0NmRkN2E3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oCkBAIC0xOTcsNyArMTk3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAog
ICAgICAgICB2b2lkIGFkZFJlZmVyZW5jZShKU0NlbGwqLCBBcnJheUJ1ZmZlciopOwogICAgICAg
ICAKLSAgICAgICAgYm9vbCBpc0RlZmVycmVkKCkgY29uc3QgeyByZXR1cm4gISFtX2RlZmVycmFs
RGVwdGg7IH0KKyAgICAgICAgYm9vbCBpc0RlZmVycmVkKCkgY29uc3QgeyByZXR1cm4gISFtX2Rl
ZmVycmFsRGVwdGggfHwgT3B0aW9uczo6ZGlzYWJsZUdDKCk7IH0KIAogI2lmIFVTRShDRikKICAg
ICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCByZWxlYXNlU29vbihSZXRhaW5QdHI8VD4m
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tN
YXJrZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2Vy
LmNwcAppbmRleCBmNTQ2Y2IzOGJiYzY1MWYxMTg3ZDZmZDM2YTM2NjJiNGQ4NjhmMzEwLi44MjYz
MTkyZDFjZDlhZTJjYTE3MzJiYWQyYTdjMzhmOTI0MmQwN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAKQEAgLTIzMiw3ICsyMzIs
NyBAQCB2b2lkIE1hY2hpbmVUaHJlYWRzOjpyZW1vdmVDdXJyZW50VGhyZWFkKCkKICNkZWZpbmUg
UkVHSVNURVJfQlVGRkVSX0FMSUdOTUVOVAogI2VuZGlmCiAKLXZvaWQgTWFjaGluZVRocmVhZHM6
OmdhdGhlckZyb21DdXJyZW50VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVS
b290cywgdm9pZCogc3RhY2tDdXJyZW50KQordm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJv
bUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBKSVRT
dHViUm91dGluZVNldCYgaml0U3R1YlJvdXRpbmVzLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3Ms
IHZvaWQqIHN0YWNrQ3VycmVudCkKIHsKICAgICAvLyBzZXRqbXAgZm9yY2VzIHZvbGF0aWxlIHJl
Z2lzdGVycyBvbnRvIHRoZSBzdGFjawogICAgIGptcF9idWYgcmVnaXN0ZXJzIFJFR0lTVEVSX0JV
RkZFUl9BTElHTk1FTlQ7CkBAIC0yNDgsMTIgKzI0OCwxMiBAQCB2b2lkIE1hY2hpbmVUaHJlYWRz
OjpnYXRoZXJGcm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZl
Um9vdAogICAgIHZvaWQqIHJlZ2lzdGVyc0JlZ2luID0gJnJlZ2lzdGVyczsKICAgICB2b2lkKiBy
ZWdpc3RlcnNFbmQgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihyb3VuZFVwVG9NdWx0aXBsZU9m
PHNpemVvZih2b2lkKik+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PigmcmVnaXN0ZXJzICsg
MSkpKTsKICAgICBzd2FwSWZCYWNrd2FyZHMocmVnaXN0ZXJzQmVnaW4sIHJlZ2lzdGVyc0VuZCk7
Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHJlZ2lzdGVyc0JlZ2luLCByZWdpc3RlcnNFbmQp
OworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChyZWdpc3RlcnNCZWdpbiwgcmVnaXN0ZXJzRW5k
LCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogCiAgICAgdm9pZCogc3RhY2tCZWdpbiA9
IHN0YWNrQ3VycmVudDsKICAgICB2b2lkKiBzdGFja0VuZCA9IHd0ZlRocmVhZERhdGEoKS5zdGFj
aygpLm9yaWdpbigpOwogICAgIHN3YXBJZkJhY2t3YXJkcyhzdGFja0JlZ2luLCBzdGFja0VuZCk7
Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrQmVnaW4sIHN0YWNrRW5kKTsKKyAgICBj
b25zZXJ2YXRpdmVSb290cy5hZGQoc3RhY2tCZWdpbiwgc3RhY2tFbmQsIGppdFN0dWJSb3V0aW5l
cywgY29kZUJsb2Nrcyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzdXNwZW5kVGhyZWFkKGNv
bnN0IFBsYXRmb3JtVGhyZWFkJiBwbGF0Zm9ybVRocmVhZCkKQEAgLTQzNCwyNCArNDM0LDI0IEBA
IHN0YXRpYyB2b2lkIGZyZWVQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyhQbGF0Zm9ybVRocmVhZFJl
Z2lzdGVycyYgcmVncykKICNlbmRpZgogfQogCi12b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJG
cm9tT3RoZXJUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBUaHJl
YWQqIHRocmVhZCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21PdGhlclRocmVhZChD
b25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIFRocmVhZCogdGhyZWFkLCBKSVRT
dHViUm91dGluZVNldCYgaml0U3R1YlJvdXRpbmVzLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3Mp
CiB7CiAgICAgUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMgcmVnczsKICAgICBzaXplX3QgcmVnU2l6
ZSA9IGdldFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzKHRocmVhZC0+cGxhdGZvcm1UaHJlYWQsIHJl
Z3MpOwogCi0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YXRpY19jYXN0PHZvaWQqPigmcmVn
cyksIHN0YXRpY19jYXN0PHZvaWQqPihyZWludGVycHJldF9jYXN0PGNoYXIqPigmcmVncykgKyBy
ZWdTaXplKSk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YXRpY19jYXN0PHZvaWQqPigm
cmVncyksIHN0YXRpY19jYXN0PHZvaWQqPihyZWludGVycHJldF9jYXN0PGNoYXIqPigmcmVncykg
KyByZWdTaXplKSwgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKIAogICAgIHZvaWQqIHN0
YWNrUG9pbnRlciA9IG90aGVyVGhyZWFkU3RhY2tQb2ludGVyKHJlZ3MpOwogICAgIHZvaWQqIHN0
YWNrQmFzZSA9IHRocmVhZC0+c3RhY2tCYXNlOwogICAgIHN3YXBJZkJhY2t3YXJkcyhzdGFja1Bv
aW50ZXIsIHN0YWNrQmFzZSk7Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrUG9pbnRl
ciwgc3RhY2tCYXNlKTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoc3RhY2tQb2ludGVyLCBz
dGFja0Jhc2UsIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiAKICAgICBmcmVlUGxhdGZv
cm1UaHJlYWRSZWdpc3RlcnMocmVncyk7CiB9CiAKLXZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhl
ckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywg
dm9pZCogc3RhY2tDdXJyZW50KQordm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyQ29uc2VydmF0
aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBKSVRTdHViUm91
dGluZVNldCYgaml0U3R1YlJvdXRpbmVzLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3MsIHZvaWQq
IHN0YWNrQ3VycmVudCkKIHsKLSAgICBnYXRoZXJGcm9tQ3VycmVudFRocmVhZChjb25zZXJ2YXRp
dmVSb290cywgc3RhY2tDdXJyZW50KTsKKyAgICBnYXRoZXJGcm9tQ3VycmVudFRocmVhZChjb25z
ZXJ2YXRpdmVSb290cywgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzLCBzdGFja0N1cnJlbnQp
OwogCiAgICAgaWYgKG1fdGhyZWFkU3BlY2lmaWMpIHsKICAgICAgICAgUGxhdGZvcm1UaHJlYWQg
Y3VycmVudFBsYXRmb3JtVGhyZWFkID0gZ2V0Q3VycmVudFBsYXRmb3JtVGhyZWFkKCk7CkBAIC00
NzMsNyArNDczLDcgQEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyQ29uc2VydmF0aXZlUm9v
dHMoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3QKICAgICAgICAgLy8gYW5kIHNp
bmNlIHRoaXMgaXMgYSBzaGFyZWQgaGVhcCwgdGhleSBhcmUgcmVhbCBsb2Nrcy4KICAgICAgICAg
Zm9yIChUaHJlYWQqIHRocmVhZCA9IG1fcmVnaXN0ZXJlZFRocmVhZHM7IHRocmVhZDsgdGhyZWFk
ID0gdGhyZWFkLT5uZXh0KSB7CiAgICAgICAgICAgICBpZiAoIWVxdWFsVGhyZWFkKHRocmVhZC0+
cGxhdGZvcm1UaHJlYWQsIGN1cnJlbnRQbGF0Zm9ybVRocmVhZCkpCi0gICAgICAgICAgICAgICAg
Z2F0aGVyRnJvbU90aGVyVGhyZWFkKGNvbnNlcnZhdGl2ZVJvb3RzLCB0aHJlYWQpOworICAgICAg
ICAgICAgICAgIGdhdGhlckZyb21PdGhlclRocmVhZChjb25zZXJ2YXRpdmVSb290cywgdGhyZWFk
LCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogICAgICAgICB9CiAKICAgICAgICAgZm9y
IChUaHJlYWQqIHRocmVhZCA9IG1fcmVnaXN0ZXJlZFRocmVhZHM7IHRocmVhZDsgdGhyZWFkID0g
dGhyZWFkLT5uZXh0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9N
YWNoaW5lU3RhY2tNYXJrZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVT
dGFja01hcmtlci5oCmluZGV4IDQ5ODIzZDQzZTI3YjUzYzlkZWI3YjAxMDY4OWZhNjdiNWJjNjc1
MjYuLjMzYjcyYzg2MTRmMDZhZmViNDFkYzA0OTAyNTJhNjEwNjdiNTM5NjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5oCkBAIC0yOCw4ICsy
OCwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorICAgIGNsYXNzIENvZGVCbG9ja1NldDsKICAg
ICBjbGFzcyBDb25zZXJ2YXRpdmVSb290czsKICAgICBjbGFzcyBIZWFwOworICAgIGNsYXNzIEpJ
VFN0dWJSb3V0aW5lU2V0OwogCiAgICAgY2xhc3MgTWFjaGluZVRocmVhZHMgewogICAgICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShNYWNoaW5lVGhyZWFkcyk7CkBAIC0zNywyMCArMzksMjAgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY2hpbmVUaHJlYWRzKEhlYXAqKTsKICAgICAgICAg
fk1hY2hpbmVUaHJlYWRzKCk7CiAKLSAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290
cyhDb25zZXJ2YXRpdmVSb290cyYsIHZvaWQqIHN0YWNrQ3VycmVudCk7CisgICAgICAgIHZvaWQg
Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmLCBKSVRTdHViUm91dGlu
ZVNldCYsIENvZGVCbG9ja1NldCYsIHZvaWQqIHN0YWNrQ3VycmVudCk7CiAKICAgICAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgdm9pZCBtYWtlVXNhYmxlRnJvbU11bHRpcGxlVGhyZWFkcygpOwogICAg
ICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGFkZEN1cnJlbnRUaHJlYWQoKTsgLy8gT25seSBu
ZWVkcyB0byBiZSBjYWxsZWQgYnkgY2xpZW50cyB0aGF0IGNhbiB1c2UgdGhlIHNhbWUgaGVhcCBm
cm9tIG11bHRpcGxlIHRocmVhZHMuCiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGdhdGhl
ckZyb21DdXJyZW50VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiwgdm9pZCogc3RhY2tDdXJyZW50
KTsKKyAgICAgICAgdm9pZCBnYXRoZXJGcm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290
cyYsIEpJVFN0dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jiwgdm9pZCogc3RhY2tDdXJyZW50
KTsKIAogICAgICAgICBjbGFzcyBUaHJlYWQ7CiAKICAgICAgICAgc3RhdGljIHZvaWQgcmVtb3Zl
VGhyZWFkKHZvaWQqKTsKICAgICAgICAgdm9pZCByZW1vdmVDdXJyZW50VGhyZWFkKCk7CiAKLSAg
ICAgICAgdm9pZCBnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmLCBUaHJl
YWQqKTsKKyAgICAgICAgdm9pZCBnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29uc2VydmF0aXZlUm9v
dHMmLCBUaHJlYWQqLCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYpOwogCiAgICAg
ICAgIE11dGV4IG1fcmVnaXN0ZXJlZFRocmVhZHNNdXRleDsKICAgICAgICAgVGhyZWFkKiBtX3Jl
Z2lzdGVyZWRUaHJlYWRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
Q2FsbEZyYW1lLmNwcAppbmRleCBhMjI2ZTk4NDhiZjlhMTQ3ZTkwZGI2NGYwMWZjMTY2MmFjZTA5
YmQ1Li40YTYwODA5ZTI5ZDE2ZjcxYzI5NDhmNjYxODY4YWQyYjZkOWRjODliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcApAQCAtMTE2LDEx
ICsxMTYsMTEgQEAgQ29kZU9yaWdpbiBDYWxsRnJhbWU6OmNvZGVPcmlnaW4oKQogICAgIHJldHVy
biBDb2RlT3JpZ2luKGxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKIH0KIAotUmVnaXN0ZXIq
IENhbGxGcmFtZTo6ZnJhbWVFeHRlbnRJbnRlcm5hbCgpCitSZWdpc3RlciogQ2FsbEZyYW1lOjp0
b3BPZkZyYW1lSW50ZXJuYWwoKQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+
Y29kZUJsb2NrKCk7CiAgICAgQVNTRVJUKGNvZGVCbG9jayk7Ci0gICAgcmV0dXJuIHJlZ2lzdGVy
cygpICsgdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29kZUJsb2NrLT5mcmFtZVJlZ2lzdGVyQ291
bnQoKSkub2Zmc2V0KCk7CisgICAgcmV0dXJuIHJlZ2lzdGVycygpICsgY29kZUJsb2NrLT5zdGFj
a1BvaW50ZXJPZmZzZXQoKTsKIH0KIAogSlNHbG9iYWxPYmplY3QqIENhbGxGcmFtZTo6dm1FbnRy
eUdsb2JhbE9iamVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvQ2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmgKaW5kZXggNDhmYmNkNzc5Yjk4NGMzZDgxMjg5ZjQyZjViNTM0N2NiM2RjMGM1ZS4u
NmY1MDg0MjJhNTcwNjBkYTFmODc2YWE0YWVhZTg2OTUwZjcwMmQ3YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaApAQCAtMTc2LDE1ICsxNzYsMTMg
QEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICAvLyBDb2RlT3JpZ2luKDApIGlmIHdlJ3JlIGlu
IG5hdGl2ZSBjb2RlLgogICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4oKTsKIAotICAgICAg
ICBSZWdpc3RlciogZnJhbWVFeHRlbnQoKQorICAgICAgICBSZWdpc3RlciogdG9wT2ZGcmFtZSgp
CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChpc1ZNRW50cnlTZW50aW5lbCgpIHx8ICFjb2Rl
QmxvY2soKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0ZXJzKCkgLSAxOwotICAgICAg
ICAgICAgcmV0dXJuIGZyYW1lRXh0ZW50SW50ZXJuYWwoKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gcmVnaXN0ZXJzKCk7CisgICAgICAgICAgICByZXR1cm4gdG9wT2ZGcmFtZUludGVybmFsKCk7
CiAgICAgICAgIH0KICAgICAKLSAgICAgICAgUmVnaXN0ZXIqIGZyYW1lRXh0ZW50SW50ZXJuYWwo
KTsKLQogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgICAgIEluc3RydWN0aW9uKiBjdXJyZW50
VlBDKCkgY29uc3QKICAgICAgICAgewpAQCAtMzE4LDYgKzMxNiw4IEBAIG5hbWVzcGFjZSBKU0Mg
IHsKICAgICAgICAgRXhlY1N0YXRlKCk7CiAgICAgICAgIH5FeGVjU3RhdGUoKTsKIAorICAgICAg
ICBSZWdpc3RlciogdG9wT2ZGcmFtZUludGVybmFsKCk7CisKICAgICAgICAgLy8gVGhlIGZvbGxv
d2luZyBhcmUgZm9yIGludGVybmFsIHVzZSBpbiBkZWJ1Z2dpbmcgYW5kIHZlcmlmaWNhdGlvbgog
ICAgICAgICAvLyBjb2RlIG9ubHkgYW5kIG5vdCBtZWFudCBhcyBhbiBBUEkgZm9yIGdlbmVyYWwg
dXNhZ2U6CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9J
bnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCmluZGV4IDRmYmM4MjI5YWNlOTdmMTJhOTUxODcyNzY1ZjExODExNDE0MWQzYTku
LjIxZjVkZmI1YjEyZWVkNGY4MTRlNTZhOGEwM2U4ZDc1ZGI2NmU1NjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtNjUsNiAr
NjUsNyBAQAogI2luY2x1ZGUgIlJlZ0V4cFByb3RvdHlwZS5oIgogI2luY2x1ZGUgIlJlZ2lzdGVy
LmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQu
aCIKICNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJpY3RFdmFsQWN0aXZh
dGlvbi5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKQEAgLTc0LDYgKzc1LDcgQEAKICNp
bmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9TdGFj
a1N0YXRzLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9T
dHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRl
IDx3dGYvV1RGVGhyZWFkRGF0YS5oPgpAQCAtODksMjIgKzkxLDYgQEAgdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9k
ZTo6RXJyb3JIYW5kbGluZ01vZGUoRXhlY1N0YXRlICpleGVjKQotICAgIDogbV9pbnRlcnByZXRl
cigqZXhlYy0+aW50ZXJwcmV0ZXIoKSkKLXsKLSAgICBpZiAoIW1faW50ZXJwcmV0ZXIubV9lcnJv
ckhhbmRsaW5nTW9kZVJlZW50cnkpCi0gICAgICAgIG1faW50ZXJwcmV0ZXIuc3RhY2soKS5lbmFi
bGVFcnJvclN0YWNrUmVzZXJ2ZSgpOwotICAgIG1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5n
TW9kZVJlZW50cnkrKzsKLX0KLQotSW50ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2RlOjp+RXJy
b3JIYW5kbGluZ01vZGUoKQotewotICAgIG1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5nTW9k
ZVJlZW50cnktLTsKLSAgICBBU1NFUlQobV9pbnRlcnByZXRlci5tX2Vycm9ySGFuZGxpbmdNb2Rl
UmVlbnRyeSA+PSAwKTsKLSAgICBpZiAoIW1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5nTW9k
ZVJlZW50cnkpCi0gICAgICAgIG1faW50ZXJwcmV0ZXIuc3RhY2soKS5kaXNhYmxlRXJyb3JTdGFj
a1Jlc2VydmUoKTsKLX0KLQogSlNWYWx1ZSBldmFsKENhbGxGcmFtZSogY2FsbEZyYW1lKQogewog
ICAgIGlmICghY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkpCkBAIC0xNTIsMjIgKzEzOCwyNSBA
QCBKU1ZhbHVlIGV2YWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAgcmV0dXJuIGludGVycHJl
dGVyLT5leGVjdXRlKGV2YWwsIGNhbGxGcmFtZSwgdGhpc1ZhbHVlLCBjYWxsZXJTY29wZUNoYWlu
KTsKIH0KIAotQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEpTU3RhY2sqIHN0YWNrLCBKU1ZhbHVlIGFyZ3VtZW50cywgaW50IGZpcnN0
RnJlZVJlZ2lzdGVyKQorQ2FsbEZyYW1lKiBzaXplRnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBKU1N0YWNrKiBzdGFjaywgSlNWYWx1ZSBhcmd1bWVudHMsIGludCBmaXJzdEZy
ZWVSZWdpc3RlcikKIHsKICAgICBpZiAoIWFyZ3VtZW50cykgeyAvLyBmLmFwcGx5KHgsIGFyZ3Vt
ZW50cyksIHdpdGggYXJndW1lbnRzIHVubW9kaWZpZWQuCiAgICAgICAgIHVuc2lnbmVkIGFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzID0gY2FsbEZyYW1lLT5hcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcygpOwotICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3Jl
YXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBmaXJzdEZyZWVSZWdpc3RlciAtIGFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzIC0gSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIDEpOwot
ICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPiBBcmd1bWVudHM6Ok1heEFy
Z3VtZW50cyArIDEgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7
Ci0gICAgICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBj
cmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAgICAgIHVuc2lnbmVkIHBh
ZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxp
Z25tZW50UmVnaXN0ZXJzKCksIC1maXJzdEZyZWVSZWdpc3RlciArIGFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIDEpOworICAgICAgICBD
YWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVn
aXN0ZXJzKCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7CisgICAgICAgIGlmIChhcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzICsgMSB8fCAhc3Rh
Y2stPmVuc3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAg
ICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKICAgICB9
CiAKICAgICBpZiAoYXJndW1lbnRzLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgQ2Fs
bEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lz
dGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSAxIC0gSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVy
U2l6ZSAtIDEpOwotICAgICAgICBpZiAoIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+cmVnaXN0
ZXJzKCkpKSB7Ci0gICAgICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2Fs
bEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAgICAgIHVu
c2lnbmVkIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID0gMTsKKyAgICAgICAgdW5zaWduZWQg
cGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tB
bGlnbm1lbnRSZWdpc3RlcnMoKSwgIC1maXJzdEZyZWVSZWdpc3RlciArIGFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIDEpOworICAgICAg
ICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+
cmVnaXN0ZXJzKCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7CisgICAgICAgIGlmICghc3Rh
Y2stPmVuc3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAg
ICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKQEAgLTE4
MSw5ICsxNzAsMTAgQEAgQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIEpTU3RhY2sqIHN0YWNrLCBKU1YKICAgICBpZiAoYXNPYmplY3Qo
YXJndW1lbnRzKS0+Y2xhc3NJbmZvKCkgPT0gQXJndW1lbnRzOjppbmZvKCkpIHsKICAgICAgICAg
QXJndW1lbnRzKiBhcmdzT2JqZWN0ID0gYXNBcmd1bWVudHMoYXJndW1lbnRzKTsKICAgICAgICAg
dW5zaWduZWQgYXJnQ291bnQgPSBhcmdzT2JqZWN0LT5sZW5ndGgoY2FsbEZyYW1lKTsKLSAgICAg
ICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUt
PnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSBDYWxsRnJhbWU6Om9mZnNldEZvcihh
cmdDb3VudCArIDEpKTsKLSAgICAgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1lbnRzOjpNYXhBcmd1
bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7Ci0gICAg
ICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjcmVhdGVT
dGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAgICAgIHVuc2lnbmVkIHBhZGRlZENh
bGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50
UmVnaXN0ZXJzKCksIC1maXJzdEZyZWVSZWdpc3RlciArIENhbGxGcmFtZTo6b2Zmc2V0Rm9yKGFy
Z0NvdW50ICsgMSkpOworICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFt
ZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9mZnNl
dCk7CisgICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzIHx8ICFz
dGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKKyAg
ICAgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7CiAgICAgICAgICAg
ICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwpAQCAt
MTkyLDkgKzE4MiwxMCBAQCBDYWxsRnJhbWUqIHNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNTdGFjayogc3RhY2ssIEpTVgogICAgIGlmIChpc0pTQXJy
YXkoYXJndW1lbnRzKSkgewogICAgICAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkoYXJndW1l
bnRzKTsKICAgICAgICAgdW5zaWduZWQgYXJnQ291bnQgPSBhcnJheS0+bGVuZ3RoKCk7Ci0gICAg
ICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1l
LT5yZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gQ2FsbEZyYW1lOjpvZmZzZXRGb3Io
YXJnQ291bnQgKyAxKSk7Ci0gICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJn
dW1lbnRzIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewotICAg
ICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3JlYXRl
U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25lZCBwYWRkZWRD
YWxsZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVu
dFJlZ2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBDYWxsRnJhbWU6Om9mZnNldEZvcihh
cmdDb3VudCArIDEpKTsKKyAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJh
bWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZz
ZXQpOworICAgICAgICBpZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAh
c3RhY2stPmVuc3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7Cisg
ICAgICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKQEAg
LTIwMiw5ICsxOTMsMTAgQEAgQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3Mo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTU3RhY2sqIHN0YWNrLCBKU1YKIAogICAgIEpTT2JqZWN0
KiBhcmdPYmplY3QgPSBhc09iamVjdChhcmd1bWVudHMpOwogICAgIHVuc2lnbmVkIGFyZ0NvdW50
ID0gYXJnT2JqZWN0LT5nZXQoY2FsbEZyYW1lLCBjYWxsRnJhbWUtPnByb3BlcnR5TmFtZXMoKS5s
ZW5ndGgpLnRvVUludDMyKGNhbGxGcmFtZSk7Ci0gICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUg
PSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVn
aXN0ZXIgLSBDYWxsRnJhbWU6Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsKLSAgICBpZiAoYXJn
Q291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3RhY2stPmdyb3cobmV3Q2FsbEZy
YW1lLT5yZWdpc3RlcnMoKSkpIHsKLSAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0
aW9uKGNhbGxGcmFtZSwgIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKKyAg
ICB1bnNpZ25lZCBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlw
bGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBDYWxs
RnJhbWU6Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsKKyAgICBDYWxsRnJhbWUqIG5ld0NhbGxG
cmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgLSBwYWRkZWRD
YWxsZWVGcmFtZU9mZnNldCk7CisgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1lbnRzOjpNYXhBcmd1
bWVudHMgfHwgIXN0YWNrLT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVy
cygpKSkgeworICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKQEAgLTQyMSw3
ICs0MTMsNiBAQCBzdGF0aWMgYm9vbCB1bndpbmRDYWxsRnJhbWUoU3RhY2tWaXNpdG9yJiB2aXNp
dG9yKQogewogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gdmlzaXRvci0+Y2FsbEZyYW1lKCk7
CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSB2aXNpdG9yLT5jb2RlQmxvY2soKTsKLSAgICBD
b2RlQmxvY2sqIG9sZENvZGVCbG9jayA9IGNvZGVCbG9jazsKICAgICBKU1Njb3BlKiBzY29wZSA9
IGNhbGxGcmFtZS0+c2NvcGUoKTsKIAogICAgIGlmIChEZWJ1Z2dlciogZGVidWdnZXIgPSBjYWxs
RnJhbWUtPnZtRW50cnlHbG9iYWxPYmplY3QoKS0+ZGVidWdnZXIoKSkgewpAQCAtNDMyLDE2ICs0
MjMsMTYgQEAgc3RhdGljIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrVmlzaXRvciYgdmlzaXRv
cikKICAgICB9CiAKICAgICBKU1ZhbHVlIGFjdGl2YXRpb247Ci0gICAgaWYgKG9sZENvZGVCbG9j
ay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUgJiYgb2xkQ29kZUJsb2NrLT5uZWVkc0FjdGl2
YXRpb24oKSkgeworICAgIGlmIChjb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2Rl
ICYmIGNvZGVCbG9jay0+bmVlZHNBY3RpdmF0aW9uKCkpIHsKICNpZiBFTkFCTEUoREZHX0pJVCkK
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIXZpc2l0b3ItPmlzSW5saW5lZEZyYW1lKCkpOwogI2Vu
ZGlmCi0gICAgICAgIGFjdGl2YXRpb24gPSBjYWxsRnJhbWUtPnVuY2hlY2tlZFIob2xkQ29kZUJs
b2NrLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKS5vZmZzZXQoKSkuanNWYWx1ZSgpOworICAgICAgICBh
Y3RpdmF0aW9uID0gY2FsbEZyYW1lLT51bmNoZWNrZWRSKGNvZGVCbG9jay0+YWN0aXZhdGlvblJl
Z2lzdGVyKCkub2Zmc2V0KCkpLmpzVmFsdWUoKTsKICAgICAgICAgaWYgKGFjdGl2YXRpb24pCiAg
ICAgICAgICAgICBqc0Nhc3Q8SlNBY3RpdmF0aW9uKj4oYWN0aXZhdGlvbiktPnRlYXJPZmYoKnNj
b3BlLT52bSgpKTsKICAgICB9CiAKLSAgICBpZiAob2xkQ29kZUJsb2NrLT5jb2RlVHlwZSgpID09
IEZ1bmN0aW9uQ29kZSAmJiBvbGRDb2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSkgeworICAgIGlm
IChjb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlICYmIGNvZGVCbG9jay0+dXNl
c0FyZ3VtZW50cygpKSB7CiAgICAgICAgIGlmIChBcmd1bWVudHMqIGFyZ3VtZW50cyA9IHZpc2l0
b3ItPmV4aXN0aW5nQXJndW1lbnRzKCkpIHsKICAgICAgICAgICAgIGlmIChhY3RpdmF0aW9uKQog
ICAgICAgICAgICAgICAgIGFyZ3VtZW50cy0+ZGlkVGVhck9mZkFjdGl2YXRpb24oY2FsbEZyYW1l
LCBqc0Nhc3Q8SlNBY3RpdmF0aW9uKj4oYWN0aXZhdGlvbikpOwpAQCAtNDU1LDExICs0NDYsNyBA
QCBzdGF0aWMgYm9vbCB1bndpbmRDYWxsRnJhbWUoU3RhY2tWaXNpdG9yJiB2aXNpdG9yKQogICAg
IH0KIAogICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBjYWxsRnJhbWUtPmNhbGxlckZyYW1l
KCk7Ci0gICAgaWYgKGNhbGxlckZyYW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpKSB7Ci0gICAgICAg
IGNhbGxGcmFtZS0+dm0oKS50b3BDYWxsRnJhbWUgPSBjYWxsZXJGcmFtZS0+dm1FbnRyeVNlbnRp
bmVsQ2FsbGVyRnJhbWUoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICByZXR1cm4gIWNhbGxlckZyYW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpOwog
fQogCiBzdGF0aWMgU3RhY2tGcmFtZUNvZGVUeXBlIGdldFN0YWNrRnJhbWVDb2RlVHlwZShTdGFj
a1Zpc2l0b3ImIHZpc2l0b3IpCkBAIC02NjIsNyArNjQ5LDE3IEBAIHByaXZhdGU6CiAKIE5FVkVS
X0lOTElORSBIYW5kbGVySW5mbyogSW50ZXJwcmV0ZXI6OnVud2luZChDYWxsRnJhbWUqJiBjYWxs
RnJhbWUsIEpTVmFsdWUmIGV4Y2VwdGlvblZhbHVlKQogeworICAgIGlmIChjYWxsRnJhbWUtPmlz
Vk1FbnRyeVNlbnRpbmVsKCkpIHsKKyAgICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gd2UgdGhy
b3cgc3RhY2sgb3ZlcmZsb3cgaW4gYSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZAorICAgICAgICAv
LyBkaXJlY3RseSBmcm9tIGNhbGxUb0phdmFTY3JpcHQuICBTdGFjayBvdmVyZmxvdyB0aHJvd3Mg
dGhlIGV4Y2VwdGlvbiBpbiB0aGUKKyAgICAgICAgLy8gY29udGV4dCBvZiB0aGUgY2FsbGVyLiAg
SW4gdGhhdCBjYXNlIHRoZSBjYWxsZXIgaXMgdGhlIHNlbnRpbmVsIGZyYW1lLiAgVGhlCisgICAg
ICAgIC8vIHJpZ2h0IHRoaW5nIHRvIGRvIGlzIHRvIHByZXRlbmQgdGhhdCB0aGUgZXhjZXB0aW9u
IGlzIHVuY2F1Z2h0IHNvIHRoYXQgd2UKKyAgICAgICAgLy8gZ28gdG8gdGhlIHVuY2F1Z2h0IGV4
Y2VwdGlvbiBoYW5kbGVyLCB3aGljaCByZXR1cm5zIHRocm91Z2ggY2FsbFRvSmF2YVNjcmlwdC4K
KyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAogICAgIENvZGVCbG9jayogY29kZUJsb2Nr
ID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKKyAgICBBU1NFUlQoY29kZUJsb2NrKTsKICAgICBi
b29sIGlzVGVybWluYXRpb24gPSBmYWxzZTsKIAogICAgIEFTU0VSVCghZXhjZXB0aW9uVmFsdWUu
aXNFbXB0eSgpKTsKQEAgLTc2Nyw3ICs3NjQsNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVj
dXRlKFByb2dyYW1FeGVjdXRhYmxlKiBwcm9ncmFtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSgog
ICAgIGlmICh2bS5pc0NvbGxlY3RvckJ1c3koKSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwog
Ci0gICAgVk1FbnRyeVNjb3BlIGVudHJ5U2NvcGUodm0sIHNjb3BlLT5nbG9iYWxPYmplY3QoKSk7
CiAgICAgaWYgKCF2bS5pc1NhZmVUb1JlY3Vyc2UoKSkKICAgICAgICAgcmV0dXJuIGNoZWNrZWRS
ZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CiAKQEAgLTg3NCw2ICs4
NzAsOCBAQCBmYWlsZWRKU09OUDoKICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgdGhlbiB3ZSBoYXZl
IGFscmVhZHkgcHJvdmVuIHRoYXQgdGhlIHNjcmlwdCBpcyBub3QgYSBKU09OCiAgICAgLy8gb2Jq
ZWN0LgogCisgICAgVk1FbnRyeVNjb3BlIGVudHJ5U2NvcGUodm0sIHNjb3BlLT5nbG9iYWxPYmpl
Y3QoKSk7CisKICAgICAvLyBDb21waWxlIHNvdXJjZSB0byBieXRlY29kZSBpZiBuZWNlc3Nhcnk6
CiAgICAgaWYgKEpTT2JqZWN0KiBlcnJvciA9IHByb2dyYW0tPmluaXRpYWxpemVHbG9iYWxQcm9w
ZXJ0aWVzKHZtLCBjYWxsRnJhbWUsIHNjb3BlKSkKICAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1
cm4oY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgZXJyb3IpKTsKQEAg
LTg4OCw5ICs4ODYsNiBAQCBmYWlsZWRKU09OUDoKIAogICAgIEFTU0VSVChjb2RlQmxvY2stPm51
bVBhcmFtZXRlcnMoKSA9PSAxKTsgLy8gMSBwYXJhbWV0ZXIgZm9yICd0aGlzJy4KIAotICAgIGlm
IChVTkxJS0VMWSghbV9zdGFjay5lbnRyeUNoZWNrKGNvZGVCbG9jaywgMSkpKQotICAgICAgICBy
ZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsK
LQogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1l
LmluaXQoY29kZUJsb2NrLCBzY29wZSwgMCwgdGhpc09iaiwgMSk7CiAKQEAgLTkwMyw3ICs4OTgs
NyBAQCBmYWlsZWRKU09OUDoKICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxS
ZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9n
U2NvcGUodm0ud2F0Y2hkb2cpOwogCi0gICAgICAgIHJlc3VsdCA9IHByb2dyYW0tPmdlbmVyYXRl
ZEpJVENvZGUoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BP
ZlN0YWNrKCkpOworICAgICAgICByZXN1bHQgPSBwcm9ncmFtLT5nZW5lcmF0ZWRKSVRDb2RlKCkt
PmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwogICAgIH0KIAogICAgIGlmIChMZWdhY3lQ
cm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKQEAgLTk1MSw5ICs5NDYs
NiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNPYmplY3QqIGZ1bmN0aW9uLCBDYWxsVAogICAgIGlmIChVTkxJS0VMWSh2bS53YXRjaGRv
Zy5kaWRGaXJlKGNhbGxGcmFtZSkpKQogICAgICAgICByZXR1cm4gdGhyb3dUZXJtaW5hdGVkRXhl
Y3V0aW9uRXhjZXB0aW9uKGNhbGxGcmFtZSk7CiAKLSAgICBpZiAoVU5MSUtFTFkoIW1fc3RhY2su
ZW50cnlDaGVjayhuZXdDb2RlQmxvY2ssIGFyZ3NDb3VudCkpKQotICAgICAgICByZXR1cm4gY2hl
Y2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKLQogICAgIFBy
b3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQobmV3
Q29kZUJsb2NrLCBzY29wZSwgZnVuY3Rpb24sIHRoaXNWYWx1ZSwgYXJnc0NvdW50LCBhcmdzLmRh
dGEoKSk7CiAKQEAgLTk2Nyw5ICs5NTksMTIgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0
ZUNhbGwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBmdW5jdGlvbiwgQ2FsbFQKIAog
ICAgICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlOgogICAgICAgICBpZiAoaXNKU0NhbGwpCi0gICAg
ICAgICAgICByZXN1bHQgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRl
ZEpJVENvZGVGb3JDYWxsKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUsIG1fc3RhY2su
Z2V0VG9wT2ZTdGFjaygpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gSlNW
YWx1ZTo6ZGVjb2RlKGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+
KGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiksICZ2bS50b3BDYWxsRnJhbWUsICZwcm90b0NhbGxG
cmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNh
bGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+
ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiksICZ2bSwgJnByb3RvQ2Fs
bEZyYW1lKSk7CisgICAgICAgICAgICBpZiAoY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKKyAg
ICAgICAgICAgICAgICByZXN1bHQgPSBqc051bGwoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAg
IGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKQEAg
LTEwMTksOSArMTAxNCw2IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVj
dChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIGNvbnN0cnVjCiAgICAgaWYgKFVOTElL
RUxZKHZtLndhdGNoZG9nLmRpZEZpcmUoY2FsbEZyYW1lKSkpCiAgICAgICAgIHJldHVybiB0aHJv
d1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oY2FsbEZyYW1lKTsKIAotICAgIGlmIChVTkxJ
S0VMWSghbV9zdGFjay5lbnRyeUNoZWNrKG5ld0NvZGVCbG9jaywgYXJnc0NvdW50KSkpCi0gICAg
ICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFt
ZSkpOwotCiAgICAgUHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxs
RnJhbWUuaW5pdChuZXdDb2RlQmxvY2ssIHNjb3BlLCBjb25zdHJ1Y3RvciwganNVbmRlZmluZWQo
KSwgYXJnc0NvdW50LCBhcmdzLmRhdGEoKSk7CiAKQEAgLTEwMzUsOSArMTAyNyw5IEBAIEpTT2Jq
ZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdChDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
SlNPYmplY3QqIGNvbnN0cnVjCiAKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZS4KICAgICAg
ICAgaWYgKGlzSlNDb25zdHJ1Y3QpCi0gICAgICAgICAgICByZXN1bHQgPSBjb25zdHJ1Y3REYXRh
LmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNvbnN0cnVjdCgpLT5l
eGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNrLmdldFRvcE9mU3RhY2soKSk7Cisg
ICAgICAgICAgICByZXN1bHQgPSBjb25zdHJ1Y3REYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+
Z2VuZXJhdGVkSklUQ29kZUZvckNvbnN0cnVjdCgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZy
YW1lKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBKU1ZhbHVlOjpkZWNv
ZGUoY2FsbFRvTmF0aXZlRnVuY3Rpb24ocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0udG9wQ2FsbEZyYW1lLCAmcHJvdG9DYWxsRnJhbWUs
IG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKSk7CisgICAgICAgICAgICByZXN1bHQgPSBKU1ZhbHVl
OjpkZWNvZGUoY2FsbFRvTmF0aXZlRnVuY3Rpb24ocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29u
c3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0sICZwcm90b0NhbGxGcmFtZSkpOwogCiAg
ICAgICAgICAgICBpZiAoIWNhbGxGcmFtZS0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQocmVzdWx0LmlzT2JqZWN0KCkpOwpAQCAtMTA3MiwxMSArMTA2NCw2
IEBAIENhbGxGcmFtZUNsb3N1cmUgSW50ZXJwcmV0ZXI6OnByZXBhcmVGb3JSZXBlYXRDYWxsKEZ1
bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FCiAKICAgICBzaXplX3QgYXJnc0NvdW50ID0gYXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXM7CiAKLSAgICBpZiAoVU5MSUtFTFkoIW1fc3RhY2suZW50
cnlDaGVjayhuZXdDb2RlQmxvY2ssIGFyZ3NDb3VudCkpKSB7Ci0gICAgICAgIHRocm93U3RhY2tP
dmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7Ci0gICAgICAgIHJldHVybiBDYWxsRnJhbWVDbG9zdXJl
KCk7Ci0gICAgfQotCiAgICAgcHJvdG9DYWxsRnJhbWUtPmluaXQobmV3Q29kZUJsb2NrLCBzY29w
ZSwgZnVuY3Rpb24sIGpzVW5kZWZpbmVkKCksIGFyZ3NDb3VudCwgYXJncyk7CiAgICAgLy8gUmV0
dXJuIHRoZSBzdWNjZXNzZnVsIGNsb3N1cmU6CiAgICAgQ2FsbEZyYW1lQ2xvc3VyZSByZXN1bHQg
PSB7IGNhbGxGcmFtZSwgcHJvdG9DYWxsRnJhbWUsIGZ1bmN0aW9uLCBmdW5jdGlvbkV4ZWN1dGFi
bGUsICZ2bSwgc2NvcGUsIG5ld0NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpLCBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcyB9OwpAQCAtMTEwNyw3ICsxMDk0LDcgQEAgSlNWYWx1ZSBJbnRlcnBy
ZXRlcjo6ZXhlY3V0ZShDYWxsRnJhbWVDbG9zdXJlJiBjbG9zdXJlKQogICAgICAgICBTYW1wbGlu
Z1Rvb2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwogICAgICAgICBX
YXRjaGRvZzo6U2NvcGUgd2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZyk7CiAKLSAgICAgICAgcmVz
dWx0ID0gY2xvc3VyZS5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxs
KCktPmV4ZWN1dGUoJnZtLCBjbG9zdXJlLnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNrLmdldFRvcE9m
U3RhY2soKSk7CisgICAgICAgIHJlc3VsdCA9IGNsb3N1cmUuZnVuY3Rpb25FeGVjdXRhYmxlLT5n
ZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgY2xvc3VyZS5wcm90b0NhbGxG
cmFtZSk7CiAgICAgfQogCiAgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVu
YWJsZWRQcm9maWxlcigpKQpAQCAtMTE3OCw5ICsxMTY1LDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRl
cjo6ZXhlY3V0ZShFdmFsRXhlY3V0YWJsZSogZXZhbCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpT
VmFsdWUKIAogICAgIEFTU0VSVChjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSA9PSAxKTsgLy8g
MSBwYXJhbWV0ZXIgZm9yICd0aGlzJy4KIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5lbnRy
eUNoZWNrKGNvZGVCbG9jaywgMSkpKQotICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJv
d1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKLQogICAgIFByb3RvQ2FsbEZyYW1lIHBy
b3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJsb2NrLCBzY29wZSwg
MCwgdGhpc1ZhbHVlLCAxKTsKIApAQCAtMTE5Myw3ICsxMTc3LDcgQEAgSlNWYWx1ZSBJbnRlcnBy
ZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YWJsZSogZXZhbCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IEpTVmFsdWUKICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9z
YW1wbGVyLmdldCgpKTsKICAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0u
d2F0Y2hkb2cpOwogCi0gICAgICAgIHJlc3VsdCA9IGV2YWwtPmdlbmVyYXRlZEpJVENvZGUoKS0+
ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpOwor
ICAgICAgICByZXN1bHQgPSBldmFsLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAm
cHJvdG9DYWxsRnJhbWUpOwogICAgIH0KIAogICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmls
ZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0ludGVycHJldGVyLmgKaW5kZXggY2ZjNzIxYjM4MTc4MjM4MWU0NWQ0NzAzOWRk
YjU0YWZmYmYwNmY5ZC4uYjQ1MzAzNzAwYWEwM2FhODA0ZDVhNTU0OGVkOGFhMmRiMzhiZGQ1NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgK
QEAgLTE4MCw2ICsxODAsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBBU1NFUlQo
IWNhbGxGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSk7CiAgICAgICAgICAgICB2bS0+dG9wQ2Fs
bEZyYW1lID0gY2FsbEZyYW1lOwogICAgICAgICB9CisgICAgICAgIAorICAgICAgICBlbnVtIFZN
RW50cnlTZW50aW5lbE9LVGFnIHsgVk1FbnRyeVNlbnRpbmVsT0sgfTsKKyAgICAgICAgQUxXQVlT
X0lOTElORSBOYXRpdmVDYWxsRnJhbWVUcmFjZXIoVk0qIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgVk1FbnRyeVNlbnRpbmVsT0tUYWcpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCh2
bSk7CisgICAgICAgICAgICBBU1NFUlQoY2FsbEZyYW1lKTsKKyAgICAgICAgICAgIGlmICghY2Fs
bEZyYW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpKQorICAgICAgICAgICAgICAgIHZtLT50b3BDYWxs
RnJhbWUgPSBjYWxsRnJhbWU7CisgICAgICAgIH0KICAgICB9OwogCiAgICAgY2xhc3MgSW50ZXJw
cmV0ZXIgewpAQCAtMTkwLDE0ICsxOTksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZnJp
ZW5kIGNsYXNzIFZNOwogCiAgICAgcHVibGljOgotICAgICAgICBjbGFzcyBFcnJvckhhbmRsaW5n
TW9kZSB7Ci0gICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEVy
cm9ySGFuZGxpbmdNb2RlKEV4ZWNTdGF0ZSopOwotICAgICAgICAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgfkVycm9ySGFuZGxpbmdNb2RlKCk7Ci0gICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBJ
bnRlcnByZXRlciYgbV9pbnRlcnByZXRlcjsKLSAgICAgICAgfTsKLQogICAgICAgICBJbnRlcnBy
ZXRlcihWTSAmKTsKICAgICAgICAgfkludGVycHJldGVyKCk7CiAgICAgICAgIApAQCAtMjM3LDgg
KzIzOCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgU2FtcGxpbmdUb29s
KiBzYW1wbGVyKCkgeyByZXR1cm4gbV9zYW1wbGVyLmdldCgpOyB9CiAKLSAgICAgICAgYm9vbCBp
c0luRXJyb3JIYW5kbGluZ01vZGUoKSB7IHJldHVybiBtX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRy
eTsgfQotCiAgICAgICAgIE5FVkVSX0lOTElORSBIYW5kbGVySW5mbyogdW53aW5kKENhbGxGcmFt
ZSomLCBKU1ZhbHVlJik7CiAgICAgICAgIE5FVkVSX0lOTElORSB2b2lkIGRlYnVnKENhbGxGcmFt
ZSosIERlYnVnSG9va0lEKTsKICAgICAgICAgSlNTdHJpbmcqIHN0YWNrVHJhY2VBc1N0cmluZyhF
eGVjU3RhdGUqLCBWZWN0b3I8U3RhY2tGcmFtZT4pOwpAQCAtMjg2LDcgKzI4NSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIH07CiAKICAgICBKU1ZhbHVlIGV2YWwoQ2FsbEZyYW1lKik7Ci0gICAg
Q2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoQ2FsbEZyYW1lKiwgSlNTdGFj
ayosIEpTVmFsdWUsIGludCk7CisgICAgQ2FsbEZyYW1lKiBzaXplRnJhbWVGb3JWYXJhcmdzKENh
bGxGcmFtZSosIEpTU3RhY2sqLCBKU1ZhbHVlLCBpbnQpOwogICAgIHZvaWQgbG9hZFZhcmFyZ3Mo
Q2FsbEZyYW1lKiwgQ2FsbEZyYW1lKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiB9IC8vIG5hbWVzcGFj
ZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pT
U3RhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3Bw
CmluZGV4IGZhM2UzZDUwZDdlZWQ1ZGYzYTZiZmRkYjFjY2MxNjE5ZDNhY2Y1NDMuLjA3YmM1MmUy
YWUwYWYyNmFlYjI3NmE4MGU4MzI4M2I1MWY3MmJjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDkgKzMxLDExIEBA
CiAKICNpbmNsdWRlICJDb25zZXJ2YXRpdmVSb290cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVy
LmgiCisjaW5jbHVkZSAiT3B0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2lmIEVOQUJM
RShMTElOVF9DX0xPT1ApCiBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVzQ291bnQgPSAwOwog
CiBzdGF0aWMgTXV0ZXgmIHN0YWNrU3RhdGlzdGljc011dGV4KCkKQEAgLTQxLDg3ICs0Myw5OCBA
QCBzdGF0aWMgTXV0ZXgmIHN0YWNrU3RhdGlzdGljc011dGV4KCkKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKE11dGV4LCBzdGF0aWNNdXRleCwgKCkpOwogICAgIHJldHVybiBzdGF0aWNNdXRleDsK
IH0gICAgCisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAotSlNTdGFjazo6SlNTdGFj
ayhWTSYgdm0sIHNpemVfdCBjYXBhY2l0eSkKK0pTU3RhY2s6OkpTU3RhY2soVk0mIHZtKQogICAg
IDogbV92bSh2bSkKLSAgICAsIG1fZW5kKDApCiAgICAgLCBtX3RvcENhbGxGcmFtZSh2bS50b3BD
YWxsRnJhbWUpCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICAsIG1fZW5kKDApCisgICAg
LCBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVycygwKQorI2VuZGlmCiB7CisjaWYgRU5BQkxF
KExMSU5UX0NfTE9PUCkKKyAgICBzaXplX3QgY2FwYWNpdHkgPSBPcHRpb25zOjptYXhQZXJUaHJl
YWRTdGFja1VzYWdlKCk7CiAgICAgQVNTRVJUKGNhcGFjaXR5ICYmIGlzUGFnZUFsaWduZWQoY2Fw
YWNpdHkpKTsKIAotICAgIG1fcmVzZXJ2YXRpb24gPSBQYWdlUmVzZXJ2YXRpb246OnJlc2VydmUo
cm91bmRVcEFsbG9jYXRpb25TaXplKGNhcGFjaXR5ICogc2l6ZW9mKFJlZ2lzdGVyKSwgY29tbWl0
U2l6ZSksIE9TQWxsb2NhdG9yOjpKU1ZNU3RhY2tQYWdlcyk7Ci0gICAgdXBkYXRlU3RhY2tMaW1p
dChoaWdoQWRkcmVzcygpKTsKLSAgICBtX2NvbW1pdEVuZCA9IGhpZ2hBZGRyZXNzKCk7CisgICAg
bV9yZXNlcnZhdGlvbiA9IFBhZ2VSZXNlcnZhdGlvbjo6cmVzZXJ2ZShXVEY6OnJvdW5kVXBUb011
bHRpcGxlT2YoY29tbWl0U2l6ZSwgY2FwYWNpdHkpLCBPU0FsbG9jYXRvcjo6SlNWTVN0YWNrUGFn
ZXMpOworICAgIHNldFN0YWNrTGltaXQoaGlnaEFkZHJlc3MoKSk7CisgICAgbV9jb21taXRUb3Ag
PSBoaWdoQWRkcmVzcygpOwogICAgIAotICAgIG1fbGFzdFN0YWNrVG9wID0gZ2V0QmFzZU9mU3Rh
Y2soKTsKLQotICAgIGRpc2FibGVFcnJvclN0YWNrUmVzZXJ2ZSgpOworICAgIG1fbGFzdFN0YWNr
VG9wID0gYmFzZU9mU3RhY2soKTsKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09QKQogCiAg
ICAgbV90b3BDYWxsRnJhbWUgPSAwOwogfQogCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKIEpT
U3RhY2s6On5KU1N0YWNrKCkKIHsKLSAgICB2b2lkKiBoaWdoQWRkcmVzcyA9IHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PGNoYXIqPihtX3Jlc2VydmF0aW9uLmJhc2UoKSkgKyBt
X3Jlc2VydmF0aW9uLnNpemUoKSk7Ci0gICAgbV9yZXNlcnZhdGlvbi5kZWNvbW1pdChyZWludGVy
cHJldF9jYXN0PHZvaWQqPihtX2NvbW1pdEVuZCksIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+
KGhpZ2hBZGRyZXNzKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KG1fY29tbWl0RW5kKSk7
Ci0gICAgYWRkVG9Db21taXR0ZWRCeXRlQ291bnQoLShyZWludGVycHJldF9jYXN0PGludHB0cl90
PihoaWdoQWRkcmVzcykgLSByZWludGVycHJldF9jYXN0PGludHB0cl90PihtX2NvbW1pdEVuZCkp
KTsKKyAgICBwdHJkaWZmX3Qgc2l6ZVRvRGVjb21taXQgPSByZWludGVycHJldF9jYXN0PGNoYXIq
PihoaWdoQWRkcmVzcygpKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0VG9wKTsK
KyAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fY29t
bWl0VG9wKSwgc2l6ZVRvRGVjb21taXQpOworICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KC1z
aXplVG9EZWNvbW1pdCk7CiAgICAgbV9yZXNlcnZhdGlvbi5kZWFsbG9jYXRlKCk7CiB9CiAKLWJv
b2wgSlNTdGFjazo6Z3Jvd1Nsb3dDYXNlKFJlZ2lzdGVyKiBuZXdFbmQpCitib29sIEpTU3RhY2s6
Omdyb3dTbG93Q2FzZShSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKIHsKKyAgICBSZWdpc3Rlciog
bmV3VG9wT2ZTdGFja1dpdGhSZXNlcnZlZFpvbmUgPSBuZXdUb3BPZlN0YWNrIC0gbV9yZXNlcnZl
ZFpvbmVTaXplSW5SZWdpc3RlcnM7CisKICAgICAvLyBJZiB3ZSBoYXZlIGFscmVhZHkgY29tbWl0
dGVkIGVub3VnaCBtZW1vcnkgdG8gc2F0aXNmeSB0aGlzIHJlcXVlc3QsCiAgICAgLy8ganVzdCB1
cGRhdGUgdGhlIGVuZCBwb2ludGVyIGFuZCByZXR1cm4uCi0gICAgaWYgKG5ld0VuZCA+PSBtX2Nv
bW1pdEVuZCkgewotICAgICAgICB1cGRhdGVTdGFja0xpbWl0KG5ld0VuZCk7CisgICAgaWYgKG5l
d1RvcE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lID49IG1fY29tbWl0VG9wKSB7CisgICAgICAgIHNl
dFN0YWNrTGltaXQobmV3VG9wT2ZTdGFjayk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAogICAgIC8vIENvbXB1dGUgdGhlIGNodW5rIHNpemUgb2YgYWRkaXRpb25hbCBtZW1vcnkgdG8g
Y29tbWl0LCBhbmQgc2VlIGlmIHdlCiAgICAgLy8gaGF2ZSBpdCBpcyBzdGlsbCB3aXRoaW4gb3Vy
IGJ1ZGdldC4gSWYgbm90LCB3ZSdsbCBmYWlsIHRvIGdyb3cgYW5kCiAgICAgLy8gcmV0dXJuIGZh
bHNlLgotICAgIGxvbmcgZGVsdGEgPSByb3VuZFVwQWxsb2NhdGlvblNpemUocmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4obV9jb21taXRFbmQpIC0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obmV3RW5k
KSwgY29tbWl0U2l6ZSk7Ci0gICAgaWYgKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0
RW5kKSAtIGRlbHRhIDw9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fdXNlYWJsZUVuZCkpCisg
ICAgcHRyZGlmZl90IGRlbHRhID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRUb3Ap
IC0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obmV3VG9wT2ZTdGFja1dpdGhSZXNlcnZlZFpvbmUp
OworICAgIGRlbHRhID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKGNvbW1pdFNpemUsIGRlbHRh
KTsKKyAgICBSZWdpc3RlciogbmV3Q29tbWl0VG9wID0gbV9jb21taXRUb3AgLSAoZGVsdGEgLyBz
aXplb2YoUmVnaXN0ZXIpKTsKKyAgICBpZiAobmV3Q29tbWl0VG9wIDwgcmVzZXJ2YXRpb25Ub3Ao
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gT3RoZXJ3aXNlLCB0aGUgZ3Jvd3Ro
IGlzIHN0aWxsIHdpdGhpbiBvdXIgYnVkZ2V0LiBHbyBhaGVhZCBhbmQgY29tbWl0CiAgICAgLy8g
aXQgYW5kIHJldHVybiB0cnVlLgotICAgIG1fcmVzZXJ2YXRpb24uY29tbWl0KHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KG1fY29tbWl0RW5kKSAtIGRlbHRhLCBkZWx0YSk7CisgICAgbV9yZXNlcnZh
dGlvbi5jb21taXQobmV3Q29tbWl0VG9wLCBkZWx0YSk7CiAgICAgYWRkVG9Db21taXR0ZWRCeXRl
Q291bnQoZGVsdGEpOwotICAgIG1fY29tbWl0RW5kID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8UmVn
aXN0ZXIqPihyZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVuZCkgLSBkZWx0YSk7Ci0g
ICAgdXBkYXRlU3RhY2tMaW1pdChuZXdFbmQpOworICAgIG1fY29tbWl0VG9wID0gbmV3Q29tbWl0
VG9wOworICAgIHNldFN0YWNrTGltaXQobmV3VG9wT2ZTdGFjayk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKIHZvaWQgSlNTdGFjazo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZl
Um9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzKQogewotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChn
ZXRCYXNlT2ZTdGFjaygpLCBnZXRUb3BPZlN0YWNrKCkpOworICAgIGNvbnNlcnZhdGl2ZVJvb3Rz
LmFkZCh0b3BPZlN0YWNrKCkgKyAxLCBoaWdoQWRkcmVzcygpKTsKIH0KIAogdm9pZCBKU1N0YWNr
OjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZl
Um9vdHMsIEpJVFN0dWJSb3V0aW5lU2V0JiBqaXRTdHViUm91dGluZXMsIENvZGVCbG9ja1NldCYg
Y29kZUJsb2NrcykKIHsKLSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoZ2V0QmFzZU9mU3RhY2so
KSwgZ2V0VG9wT2ZTdGFjaygpLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOworICAgIGNv
bnNlcnZhdGl2ZVJvb3RzLmFkZCh0b3BPZlN0YWNrKCkgKyAxLCBoaWdoQWRkcmVzcygpLCBqaXRT
dHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogfQogCiB2b2lkIEpTU3RhY2s6OnNhbml0aXplU3Rh
Y2soKQogewotICAgIEFTU0VSVChnZXRUb3BPZlN0YWNrKCkgPD0gZ2V0QmFzZU9mU3RhY2soKSk7
CisgICAgQVNTRVJUKHRvcE9mU3RhY2soKSA8PSBiYXNlT2ZTdGFjaygpKTsKICAgICAKLSAgICBp
ZiAobV9sYXN0U3RhY2tUb3AgPCBnZXRUb3BPZlN0YWNrKCkpIHsKLSAgICAgICAgY2hhciogYmVn
aW4gPSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2xhc3RTdGFja1RvcCk7Ci0gICAgICAgIGNo
YXIqIGVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGdldFRvcE9mU3RhY2soKSk7CisgICAg
aWYgKG1fbGFzdFN0YWNrVG9wIDwgdG9wT2ZTdGFjaygpKSB7CisgICAgICAgIGNoYXIqIGJlZ2lu
ID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9sYXN0U3RhY2tUb3AgKyAxKTsKKyAgICAgICAg
Y2hhciogZW5kID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odG9wT2ZTdGFjaygpICsgMSk7CiAg
ICAgICAgIG1lbXNldChiZWdpbiwgMCwgZW5kIC0gYmVnaW4pOwogICAgIH0KICAgICAKLSAgICBt
X2xhc3RTdGFja1RvcCA9IGdldFRvcE9mU3RhY2soKTsKKyAgICBtX2xhc3RTdGFja1RvcCA9IHRv
cE9mU3RhY2soKTsKIH0KIAogdm9pZCBKU1N0YWNrOjpyZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKQog
ewotICAgIHB0cmRpZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihoaWdo
QWRkcmVzcygpKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX2NvbW1pdEVuZCk7Ci0g
ICAgbV9yZXNlcnZhdGlvbi5kZWNvbW1pdChtX2NvbW1pdEVuZCwgZGVsdGEpOworICAgIFJlZ2lz
dGVyKiBoaWdoQWRkcmVzc1dpdGhSZXNlcnZlZFpvbmUgPSBoaWdoQWRkcmVzcygpIC0gbV9yZXNl
cnZlZFpvbmVTaXplSW5SZWdpc3RlcnM7CisgICAgcHRyZGlmZl90IGRlbHRhID0gcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4oaGlnaEFkZHJlc3NXaXRoUmVzZXJ2ZWRab25lKSAtIHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KG1fY29tbWl0VG9wKTsKKyAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KG1f
Y29tbWl0VG9wLCBkZWx0YSk7CiAgICAgYWRkVG9Db21taXR0ZWRCeXRlQ291bnQoLWRlbHRhKTsK
LSAgICBtX2NvbW1pdEVuZCA9IGhpZ2hBZGRyZXNzKCk7CisgICAgbV9jb21taXRUb3AgPSBoaWdo
QWRkcmVzc1dpdGhSZXNlcnZlZFpvbmU7CiB9CiAKIHZvaWQgSlNTdGFjazo6aW5pdGlhbGl6ZVRo
cmVhZGluZygpCkBAIC0xMjksMTIgKzE0Miw2IEBAIHZvaWQgSlNTdGFjazo6aW5pdGlhbGl6ZVRo
cmVhZGluZygpCiAgICAgc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKTsKIH0KIAotc2l6ZV90IEpTU3Rh
Y2s6OmNvbW1pdHRlZEJ5dGVDb3VudCgpCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHN0YWNr
U3RhdGlzdGljc011dGV4KCkpOwotICAgIHJldHVybiBjb21taXR0ZWRCeXRlc0NvdW50OwotfQot
CiB2b2lkIEpTU3RhY2s6OmFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGxvbmcgYnl0ZUNvdW50KQog
ewogICAgIE11dGV4TG9ja2VyIGxvY2tlcihzdGFja1N0YXRpc3RpY3NNdXRleCgpKTsKQEAgLTE0
MiwyNSArMTQ5LDQxIEBAIHZvaWQgSlNTdGFjazo6YWRkVG9Db21taXR0ZWRCeXRlQ291bnQobG9u
ZyBieXRlQ291bnQpCiAgICAgY29tbWl0dGVkQnl0ZXNDb3VudCArPSBieXRlQ291bnQ7CiB9CiAK
LXZvaWQgSlNTdGFjazo6ZW5hYmxlRXJyb3JTdGFja1Jlc2VydmUoKQordm9pZCBKU1N0YWNrOjpz
ZXRSZXNlcnZlZFpvbmVTaXplKHNpemVfdCByZXNlcnZlZFpvbmVTaXplKQogewotICAgIG1fdXNl
YWJsZUVuZCA9IHJlc2VydmF0aW9uRW5kKCk7CisgICAgbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdp
c3RlcnMgPSByZXNlcnZlZFpvbmVTaXplIC8gc2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICBpZiAobV9j
b21taXRUb3AgPj0gKG1fZW5kICsgMSkgLSBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVycykK
KyAgICAgICAgZ3Jvd1Nsb3dDYXNlKG1fZW5kICsgMSk7CiB9CisjZW5kaWYgLy8gRU5BQkxFKExM
SU5UX0NfTE9PUCkKIAotdm9pZCBKU1N0YWNrOjpkaXNhYmxlRXJyb3JTdGFja1Jlc2VydmUoKQor
I2lmICFFTkFCTEUoTExJTlRfQ19MT09QKQorUmVnaXN0ZXIqIEpTU3RhY2s6Omxvd0FkZHJlc3Mo
KSBjb25zdAogewotICAgIGNoYXIqIHVzZWFibGVFbmQgPSByZWludGVycHJldF9jYXN0PGNoYXIq
PihyZXNlcnZhdGlvbkVuZCgpKSArIGNvbW1pdFNpemU7Ci0gICAgbV91c2VhYmxlRW5kID0gcmVp
bnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0ZXIqPih1c2VhYmxlRW5kKTsKLQotICAgIC8vIEJ5IHRo
ZSB0aW1lIHdlIGdldCBoZXJlLCB3ZSBhcmUgZ3VhcmFudGVlZCB0byBiZSBkZXN0cnVjdGluZyB0
aGUgbGFzdAotICAgIC8vIEludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZSB0aGF0IGVuYWJs
ZWQgdGhpcyByZXNlcnZlIGluIHRoZSBmaXJzdAotICAgIC8vIHBsYWNlLiBUaGF0IG1lYW5zIHRo
ZSBzdGFjayBzcGFjZSBiZXlvbmQgbV91c2VhYmxlRW5kIGJlZm9yZSB3ZQotICAgIC8vIGVuYWJs
ZWQgdGhlIHJlc2VydmUgd2FzIG5vdCBwcmV2aW91c2x5IGluIHVzZS4gSGVuY2UsIGl0IGlzIHNh
ZmUgdG8KLSAgICAvLyBzaHJpbmsgYmFjayB0byB0aGF0IG1fdXNlYWJsZUVuZC4KLSAgICBpZiAo
bV9lbmQgPCBtX3VzZWFibGVFbmQpIHsKLSAgICAgICAgQVNTRVJUKG1fdG9wQ2FsbEZyYW1lLT5m
cmFtZUV4dGVudCgpID49IG1fdXNlYWJsZUVuZCk7Ci0gICAgICAgIHNocmluayhtX3VzZWFibGVF
bmQpOwotICAgIH0KKyAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5n
RG93bndhcmQoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmVnaXN0ZXIqPihtX3Zt
LnN0YWNrTGltaXQoKSk7Cit9CisKK1JlZ2lzdGVyKiBKU1N0YWNrOjpoaWdoQWRkcmVzcygpIGNv
bnN0Cit7CisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253
YXJkKCkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4od3RmVGhyZWFk
RGF0YSgpLnN0YWNrKCkub3JpZ2luKCkpOworfQorI2VuZGlmIC8vICFFTkFCTEUoTExJTlRfQ19M
T09QKQorCitzaXplX3QgSlNTdGFjazo6Y29tbWl0dGVkQnl0ZUNvdW50KCkKK3sKKyNpZiBFTkFC
TEUoTExJTlRfQ19MT09QKQorICAgIE11dGV4TG9ja2VyIGxvY2tlcihzdGFja1N0YXRpc3RpY3NN
dXRleCgpKTsKKyAgICByZXR1cm4gY29tbWl0dGVkQnl0ZXNDb3VudDsKKyNlbHNlCisgICAgLy8g
V2hlbiB1c2luZyB0aGUgQyBzdGFjaywgd2UgZG9uJ3Qga25vdyBob3cgbWFueSBzdGFjayBwYWdl
cyBhcmUgYWN0dWFsbHkKKyAgICAvLyBjb21taXR0ZWQuIFNvLCB3ZSB1c2UgdGhlIGN1cnJlbnQg
c3RhY2sgdXNhZ2UgYXMgYW4gZXN0aW1hdGUuCisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5z
dGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOworICAgIGludDhfdCogY3VycmVudCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8aW50OF90Kj4oJmN1cnJlbnQpOworICAgIGludDhfdCogaGlnaCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8aW50OF90Kj4od3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkub3JpZ2luKCkpOwor
ICAgIHJldHVybiBoaWdoIC0gY3VycmVudDsKKyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNr
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5oCmluZGV4IDkx
ZjkzZTJiZjliNTQ0NWEyNDdmYmE2MjZjZjNlY2QyNDgxNzdhYWQuLjFmNmZlMjBjMTYwOGE1Mjk1
YTU3MmRlMTBhNDc3YmVhODg4NTkzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9KU1N0YWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0pTU3RhY2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDA5LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsMTEgKzM1LDYgQEAK
ICNpbmNsdWRlIDx3dGYvUGFnZVJlc2VydmF0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1ZNVGFncy5o
PgogCi0jZGVmaW5lIEVOQUJMRV9ERUJVR19KU1NUQUNLIDAKLSNpZiAhZGVmaW5lZChOREVCVUcp
ICYmICFkZWZpbmVkKEVOQUJMRV9ERUJVR19KU1NUQUNLKQotI2RlZmluZSBFTkFCTEVfREVCVUdf
SlNTVEFDSyAxCi0jZW5kaWYKLQogbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBDb2RlQmxv
Y2tTZXQ7CkBAIC02MSw3ICs1Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShKU1N0YWNrKTsKICAgICBwdWJsaWM6CiAgICAgICAgIGVudW0gQ2FsbEZy
YW1lSGVhZGVyRW50cnkgewotICAgICAgICAgICAgQ29kZUJsb2NrID0gc2l6ZW9mKENhbGxlckZy
YW1lQW5kUEMpIC8gc2l6ZW9mKFJlZ2lzdGVyKSwKKyAgICAgICAgICAgIENhbGxlckZyYW1lQW5k
UENTaXplID0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpIC8gc2l6ZW9mKFJlZ2lzdGVyKSwKKyAg
ICAgICAgICAgIENvZGVCbG9jayA9IENhbGxlckZyYW1lQW5kUENTaXplLAogICAgICAgICAgICAg
U2NvcGVDaGFpbiwKICAgICAgICAgICAgIENhbGxlZSwKICAgICAgICAgICAgIEFyZ3VtZW50Q291
bnQsCkBAIC03Miw5MiArNjgsODcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBGaXJz
dEFyZ3VtZW50LAogICAgICAgICB9OwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgZGVm
YXVsdENhcGFjaXR5ID0gNTEyICogMTAyNDsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBj
b21taXRTaXplID0gMTYgKiAxMDI0OwogICAgICAgICAvLyBBbGxvdyA4ayBvZiBleGNlc3MgcmVn
aXN0ZXJzIGJlZm9yZSB3ZSBzdGFydCB0cnlpbmcgdG8gcmVhcCB0aGUgc3RhY2sKICAgICAgICAg
c3RhdGljIGNvbnN0IHB0cmRpZmZfdCBtYXhFeGNlc3NDYXBhY2l0eSA9IDggKiAxMDI0OwogCi0g
ICAgICAgIEpTU3RhY2soVk0mLCBzaXplX3QgY2FwYWNpdHkgPSBkZWZhdWx0Q2FwYWNpdHkpOwot
ICAgICAgICB+SlNTdGFjaygpOworICAgICAgICBKU1N0YWNrKFZNJik7CiAgICAgICAgIAorICAg
ICAgICBib29sIGVuc3VyZUNhcGFjaXR5Rm9yKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsKKwor
ICAgICAgICBib29sIGNvbnRhaW5zQWRkcmVzcyhSZWdpc3RlciogYWRkcmVzcykgeyByZXR1cm4g
KGxvd0FkZHJlc3MoKSA8PSBhZGRyZXNzICYmIGFkZHJlc3MgPCBoaWdoQWRkcmVzcygpKTsgfQor
ICAgICAgICBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVDb3VudCgpOworCisjaWYgIUVOQUJM
RShMTElOVF9DX0xPT1ApCisgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29u
c2VydmF0aXZlUm9vdHMmKSB7IH0KKyAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290
cyhDb25zZXJ2YXRpdmVSb290cyYsIEpJVFN0dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jikg
eyB9CisgICAgICAgIHZvaWQgc2FuaXRpemVTdGFjaygpIHsgfQorICAgICAgICBzdGF0aWMgdm9p
ZCBpbml0aWFsaXplVGhyZWFkaW5nKCkgeyB9CisjZWxzZQorICAgICAgICB+SlNTdGFjaygpOwor
CiAgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMm
KTsKICAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290
cyYsIEpJVFN0dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jik7CiAgICAgICAgIHZvaWQgc2Fu
aXRpemVTdGFjaygpOwogCi0gICAgICAgIFJlZ2lzdGVyKiBnZXRCYXNlT2ZTdGFjaygpIGNvbnN0
CisgICAgICAgIFJlZ2lzdGVyKiBiYXNlT2ZTdGFjaygpIGNvbnN0CiAgICAgICAgIHsKICAgICAg
ICAgICAgIHJldHVybiBoaWdoQWRkcmVzcygpIC0gMTsKICAgICAgICAgfQogCiAgICAgICAgIHNp
emVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gaGlnaEFkZHJlc3MoKSAtIGxvd0FkZHJlc3MoKTsg
fQogCi0gICAgICAgIGJvb2wgZ3JvdyhSZWdpc3RlciopOwotICAgICAgICAKLSAgICAgICAgc3Rh
dGljIHNpemVfdCBjb21taXR0ZWRCeXRlQ291bnQoKTsKICAgICAgICAgc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZVRocmVhZGluZygpOwogCi0gICAgICAgIFJlZ2lzdGVyKiBnZXRUb3BPZkZyYW1lKENh
bGxGcmFtZSopOwotICAgICAgICBSZWdpc3RlciogZ2V0U3RhcnRPZkZyYW1lKENhbGxGcmFtZSop
OwotICAgICAgICBSZWdpc3RlciogZ2V0VG9wT2ZTdGFjaygpOwotCi0gICAgICAgIGJvb2wgZW50
cnlDaGVjayhjbGFzcyBDb2RlQmxvY2sqLCBpbnQpOworICAgICAgICB2b2lkIHNldFJlc2VydmVk
Wm9uZVNpemUoc2l6ZV90KTsKIAotICAgICAgICBDYWxsRnJhbWUqIHB1c2hGcmFtZShjbGFzcyBD
b2RlQmxvY2sqLCBKU1Njb3BlKiwgaW50IGFyZ3NDb3VudCwgSlNPYmplY3QqIGNhbGxlZSk7Ci0K
LSAgICAgICAgdm9pZCBwb3BGcmFtZShDYWxsRnJhbWUqKTsKLQotICAgICAgICBib29sIGNvbnRh
aW5zQWRkcmVzcyhSZWdpc3RlciogYWRkcmVzcykgeyByZXR1cm4gKGxvd0FkZHJlc3MoKSA8PSBh
ZGRyZXNzICYmIGFkZHJlc3MgPD0gaGlnaEFkZHJlc3MoKSk7IH0KLQotICAgICAgICB2b2lkIGVu
YWJsZUVycm9yU3RhY2tSZXNlcnZlKCk7Ci0gICAgICAgIHZvaWQgZGlzYWJsZUVycm9yU3RhY2tS
ZXNlcnZlKCk7Ci0KLSNpZiBFTkFCTEUoREVCVUdfSlNTVEFDSykKLSAgICAgICAgdm9pZCBpbnN0
YWxsRmVuY2UoQ2FsbEZyYW1lKiwgY29uc3QgY2hhciAqZnVuY3Rpb24gPSAiIiwgaW50IGxpbmVO
byA9IDApOwotICAgICAgICB2b2lkIHZhbGlkYXRlRmVuY2UoQ2FsbEZyYW1lKiwgY29uc3QgY2hh
ciAqZnVuY3Rpb24gPSAiIiwgaW50IGxpbmVObyA9IDApOwotICAgICAgICBzdGF0aWMgY29uc3Qg
aW50IEZlbmNlU2l6ZSA9IDQ7Ci0jZWxzZSAvLyAhRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0gICAg
ICAgIHZvaWQgaW5zdGFsbEZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIqID0gIiIsIGludCA9
IDApIHsgfQotICAgICAgICB2b2lkIHZhbGlkYXRlRmVuY2UoQ2FsbEZyYW1lKiwgY29uc3QgY2hh
ciogPSAiIiwgaW50ID0gMCkgeyB9Ci0jZW5kaWYgLy8gIUVOQUJMRShERUJVR19KU1NUQUNLKQor
ICAgICAgICBpbmxpbmUgUmVnaXN0ZXIqIHRvcE9mU3RhY2soKTsKKyNlbmRpZiAvLyBFTkFCTEUo
TExJTlRfQ19MT09QKQogCiAgICAgcHJpdmF0ZToKKworI2lmIEVOQUJMRShMTElOVF9DX0xPT1Ap
CiAgICAgICAgIFJlZ2lzdGVyKiBsb3dBZGRyZXNzKCkgY29uc3QKICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIG1fZW5kOworICAgICAgICAgICAgcmV0dXJuIG1fZW5kICsgMTsKICAgICAg
ICAgfQogCiAgICAgICAgIFJlZ2lzdGVyKiBoaWdoQWRkcmVzcygpIGNvbnN0CiAgICAgICAgIHsK
ICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHN0YXRp
Y19jYXN0PGNoYXIqPihtX3Jlc2VydmF0aW9uLmJhc2UoKSkgKyBtX3Jlc2VydmF0aW9uLnNpemUo
KSk7CiAgICAgICAgIH0KKyNlbHNlCisgICAgICAgIFJlZ2lzdGVyKiBsb3dBZGRyZXNzKCkgY29u
c3Q7CisgICAgICAgIFJlZ2lzdGVyKiBoaWdoQWRkcmVzcygpIGNvbnN0OworI2VuZGlmIC8vIEVO
QUJMRShMTElOVF9DX0xPT1ApCiAKLSAgICAgICAgUmVnaXN0ZXIqIHJlc2VydmF0aW9uRW5kKCkg
Y29uc3QKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgICAgICBpbmxpbmUgUmVnaXN0ZXIq
IHRvcE9mRnJhbWVGb3IoQ2FsbEZyYW1lKik7CisKKyAgICAgICAgUmVnaXN0ZXIqIHJlc2VydmF0
aW9uVG9wKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgY2hhciogcmVzZXJ2YXRpb25F
bmQgPSBzdGF0aWNfY2FzdDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpOwotICAgICAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4ocmVzZXJ2YXRpb25FbmQp
OworICAgICAgICAgICAgY2hhciogcmVzZXJ2YXRpb25Ub3AgPSBzdGF0aWNfY2FzdDxjaGFyKj4o
bV9yZXNlcnZhdGlvbi5iYXNlKCkpOworICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3RfcHRyPFJlZ2lzdGVyKj4ocmVzZXJ2YXRpb25Ub3ApOwogICAgICAgICB9CiAKLSNpZiBFTkFC
TEUoREVCVUdfSlNTVEFDSykKLSAgICAgICAgc3RhdGljIEpTVmFsdWUgZ2VuZXJhdGVGZW5jZVZh
bHVlKHNpemVfdCBhcmdJbmRleCk7Ci0gICAgICAgIHZvaWQgaW5zdGFsbFRyYXBzQWZ0ZXJGcmFt
ZShDYWxsRnJhbWUqKTsKLSNlbHNlCi0gICAgICAgIHZvaWQgaW5zdGFsbFRyYXBzQWZ0ZXJGcmFt
ZShDYWxsRnJhbWUqKSB7IH0KLSNlbmRpZgotCi0gICAgICAgIGJvb2wgZ3Jvd1Nsb3dDYXNlKFJl
Z2lzdGVyKik7Ci0gICAgICAgIHZvaWQgc2hyaW5rKFJlZ2lzdGVyKik7CisgICAgICAgIGJvb2wg
Z3JvdyhSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CisgICAgICAgIGJvb2wgZ3Jvd1Nsb3dDYXNl
KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsKKyAgICAgICAgdm9pZCBzaHJpbmsoUmVnaXN0ZXIq
IG5ld1RvcE9mU3RhY2spOwogICAgICAgICB2b2lkIHJlbGVhc2VFeGNlc3NDYXBhY2l0eSgpOwog
ICAgICAgICB2b2lkIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGxvbmcpOwogCi0gICAgICAgIHZv
aWQgdXBkYXRlU3RhY2tMaW1pdChSZWdpc3RlciogbmV3RW5kKTsKKyAgICAgICAgdm9pZCBzZXRT
dGFja0xpbWl0KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsKKyNlbmRpZiAvLyBFTkFCTEUoTExJ
TlRfQ19MT09QKQogCiAgICAgICAgIFZNJiBtX3ZtOworICAgICAgICBDYWxsRnJhbWUqJiBtX3Rv
cENhbGxGcmFtZTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICAgICBSZWdpc3Rlciog
bV9lbmQ7Ci0gICAgICAgIFJlZ2lzdGVyKiBtX2NvbW1pdEVuZDsKLSAgICAgICAgUmVnaXN0ZXIq
IG1fdXNlYWJsZUVuZDsKKyAgICAgICAgUmVnaXN0ZXIqIG1fY29tbWl0VG9wOwogICAgICAgICBQ
YWdlUmVzZXJ2YXRpb24gbV9yZXNlcnZhdGlvbjsKLSAgICAgICAgQ2FsbEZyYW1lKiYgbV90b3BD
YWxsRnJhbWU7CiAgICAgICAgIFJlZ2lzdGVyKiBtX2xhc3RTdGFja1RvcDsKKyAgICAgICAgcHRy
ZGlmZl90IG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzOworI2VuZGlmIC8vIEVOQUJMRShM
TElOVF9DX0xPT1ApCiAKICAgICAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3Rv
cjsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0pTU3RhY2tJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNT
dGFja0lubGluZXMuaAppbmRleCA1YTJhZmYxMTcxZGQxZGIyNjM3ZGMxYjg5NWJhM2FmMzVkNWNl
NDM2Li5iMDc0YjM3ZWIwYjBmNmVmODE4YThjYWIyOTkxYWI0NmZkNzNkZmZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzMsMjYyICszMyw2NSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotaW5saW5lIFJl
Z2lzdGVyKiBKU1N0YWNrOjpnZXRUb3BPZkZyYW1lKENhbGxGcmFtZSogZnJhbWUpCitpbmxpbmUg
Ym9vbCBKU1N0YWNrOjplbnN1cmVDYXBhY2l0eUZvcihSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykK
IHsKLSAgICBpZiAoVU5MSUtFTFkoIWZyYW1lKSkKLSAgICAgICAgcmV0dXJuIGdldEJhc2VPZlN0
YWNrKCk7Ci0gICAgcmV0dXJuIGZyYW1lLT5mcmFtZUV4dGVudCgpOwotfQotCi1pbmxpbmUgUmVn
aXN0ZXIqIEpTU3RhY2s6OmdldFRvcE9mU3RhY2soKQotewotICAgIHJldHVybiBnZXRUb3BPZkZy
YW1lKG1fdG9wQ2FsbEZyYW1lKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIHJldHVy
biBncm93KG5ld1RvcE9mU3RhY2spOworI2Vsc2UKKyAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgp
LnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CisgICAgcmV0dXJuIG5ld1RvcE9mU3RhY2sg
Pj0gbV92bS5zdGFja0xpbWl0KCk7CisjZW5kaWYKIH0KIAotaW5saW5lIFJlZ2lzdGVyKiBKU1N0
YWNrOjpnZXRTdGFydE9mRnJhbWUoQ2FsbEZyYW1lKiBmcmFtZSkKLXsKLSAgICBDYWxsRnJhbWUq
IGNhbGxlckZyYW1lID0gZnJhbWUtPmNhbGxlckZyYW1lU2tpcHBpbmdWTUVudHJ5U2VudGluZWwo
KTsKLSAgICByZXR1cm4gZ2V0VG9wT2ZGcmFtZShjYWxsZXJGcmFtZSk7Ci19CisjaWYgRU5BQkxF
KExMSU5UX0NfTE9PUCkKIAotaW5saW5lIGJvb2wgSlNTdGFjazo6ZW50cnlDaGVjayhjbGFzcyBD
b2RlQmxvY2sqIGNvZGVCbG9jaywgaW50IGFyZ3NDb3VudCkKK2lubGluZSBSZWdpc3RlciogSlNT
dGFjazo6dG9wT2ZGcmFtZUZvcihDYWxsRnJhbWUqIGZyYW1lKQogewotICAgIFJlZ2lzdGVyKiBv
bGRFbmQgPSBnZXRUb3BPZlN0YWNrKCk7Ci0KLSAgICAvLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVu
b3VnaCBzcGFjZSBmb3IgdGhlIHBhcmFtZXRlcnM6Ci0gICAgc2l6ZV90IHBhZGRlZEFyZ3NDb3Vu
dCA9IGFyZ3NDb3VudDsKLSAgICBpZiAoY29kZUJsb2NrKSB7Ci0gICAgICAgIHNpemVfdCBudW1Q
YXJhbWV0ZXJzID0gY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7Ci0gICAgICAgIGlmIChwYWRk
ZWRBcmdzQ291bnQgPCBudW1QYXJhbWV0ZXJzKQotICAgICAgICAgICAgcGFkZGVkQXJnc0NvdW50
ID0gbnVtUGFyYW1ldGVyczsKLSAgICB9Ci0KLSAgICBSZWdpc3RlciogbmV3Q2FsbEZyYW1lU2xv
dCA9IG9sZEVuZCAtIHBhZGRlZEFyZ3NDb3VudCAtICgyICogSlNTdGFjazo6Q2FsbEZyYW1lSGVh
ZGVyU2l6ZSkgKyAxOwotCi0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0gICAgbmV3Q2FsbEZy
YW1lU2xvdCAtPSBKU1N0YWNrOjpGZW5jZVNpemU7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkK
KyAgICBpZiAoVU5MSUtFTFkoIWZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGJhc2VPZlN0YWNrKCk7
CiAjZW5kaWYKLQotICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBuZXdDYWxsRnJhbWVTbG90OwotICAg
IGlmICghIWNvZGVCbG9jaykKLSAgICAgICAgbmV3RW5kICs9IHZpcnR1YWxSZWdpc3RlckZvckxv
Y2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNvdW50KCkpLm9mZnNldCgpOwotCi0gICAgLy8g
RW5zdXJlIHRoYXQgd2UgaGF2ZSB0aGUgbmVlZGVkIHN0YWNrIGNhcGFjaXR5IHRvIHB1c2ggdGhl
IG5ldyBmcmFtZToKLSAgICBpZiAoIWdyb3cobmV3RW5kKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZyYW1lLT50b3BPZkZyYW1lKCkgLSAx
OwogfQogCi1pbmxpbmUgQ2FsbEZyYW1lKiBKU1N0YWNrOjpwdXNoRnJhbWUoY2xhc3MgQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIEpTU2NvcGUqIHNjb3BlLCBpbnQgYXJnc0NvdW50LCBKU09iamVjdCog
Y2FsbGVlKQoraW5saW5lIFJlZ2lzdGVyKiBKU1N0YWNrOjp0b3BPZlN0YWNrKCkKIHsKLSAgICBB
U1NFUlQoISFzY29wZSk7Ci0gICAgUmVnaXN0ZXIqIG9sZEVuZCA9IGdldFRvcE9mU3RhY2soKTsK
LQotICAgIC8vIEVuc3VyZSB0aGF0IHdlIGhhdmUgZW5vdWdoIHNwYWNlIGZvciB0aGUgcGFyYW1l
dGVyczoKLSAgICBzaXplX3QgcGFkZGVkQXJnc0NvdW50ID0gYXJnc0NvdW50OwotICAgIGlmIChj
b2RlQmxvY2spIHsKLSAgICAgICAgc2l6ZV90IG51bVBhcmFtZXRlcnMgPSBjb2RlQmxvY2stPm51
bVBhcmFtZXRlcnMoKTsKLSAgICAgICAgaWYgKHBhZGRlZEFyZ3NDb3VudCA8IG51bVBhcmFtZXRl
cnMpCi0gICAgICAgICAgICBwYWRkZWRBcmdzQ291bnQgPSBudW1QYXJhbWV0ZXJzOwotICAgIH0K
LQotICAgIFJlZ2lzdGVyKiBuZXdDYWxsRnJhbWVTbG90ID0gb2xkRW5kIC0gcGFkZGVkQXJnc0Nv
dW50IC0gKDIgKiBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSArIDE7Ci0KLSNpZiBFTkFC
TEUoREVCVUdfSlNTVEFDSykKLSAgICBuZXdDYWxsRnJhbWVTbG90IC09IEpTU3RhY2s6OkZlbmNl
U2l6ZTsKLSNlbmRpZgotCi0gICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG5ld0NhbGxGcmFtZVNsb3Q7
Ci0gICAgaWYgKCEhY29kZUJsb2NrKQotICAgICAgICBuZXdFbmQgKz0gdmlydHVhbFJlZ2lzdGVy
Rm9yTG9jYWwoY29kZUJsb2NrLT5mcmFtZVJlZ2lzdGVyQ291bnQoKSkub2Zmc2V0KCk7Ci0KLSAg
ICAvLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIHRoZSBuZWVkZWQgc3RhY2sgY2FwYWNpdHkgdG8gcHVz
aCB0aGUgbmV3IGZyYW1lOgotICAgIGlmICghZ3JvdyhuZXdFbmQpKQotICAgICAgICByZXR1cm4g
MDsKLQotICAgIC8vIENvbXB1dGUgdGhlIGFkZHJlc3Mgb2YgdGhlIG5ldyBWTSBzZW50aW5lbCBm
cmFtZSBmb3IgdGhpcyBpbnZvY2F0aW9uOgotICAgIENhbGxGcmFtZSogbmV3Vk1FbnRyeVNlbnRp
bmVsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShuZXdDYWxsRnJhbWVTbG90ICsgcGFkZGVkQXJn
c0NvdW50ICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSk7Ci0gICAgQVNTRVJUKCEhbmV3
Vk1FbnRyeVNlbnRpbmVsRnJhbWUpOwotCi0gICAgLy8gQ29tcHV0ZSB0aGUgYWRkcmVzcyBvZiB0
aGUgbmV3IGZyYW1lIGZvciB0aGlzIGludm9jYXRpb246Ci0gICAgQ2FsbEZyYW1lKiBuZXdDYWxs
RnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShuZXdDYWxsRnJhbWVTbG90KTsKLSAgICBBU1NFUlQo
ISFuZXdDYWxsRnJhbWUpOwotCi0gICAgLy8gVGhlIGNhbGxlciBmcmFtZSBzaG91bGQgYWx3YXlz
IGJlIHRoZSByZWFsIHByZXZpb3VzIGZyYW1lIG9uIHRoZSBzdGFjaywKLSAgICAvLyBhbmQgbm90
IGEgcG90ZW50aWFsIEdsb2JhbEV4ZWMgdGhhdCB3YXMgcGFzc2VkIGluLiBQb2ludCBjYWxsZXJG
cmFtZSB0bwotICAgIC8vIHRoZSB0b3AgZnJhbWUgb24gdGhlIHN0YWNrLgotICAgIENhbGxGcmFt
ZSogY2FsbGVyRnJhbWUgPSBtX3RvcENhbGxGcmFtZTsKLQotICAgIC8vIEluaXRpYWxpemUgdGhl
IFZNIHNlbnRpbmVsIGZyYW1lIGhlYWRlcjoKLSAgICBuZXdWTUVudHJ5U2VudGluZWxGcmFtZS0+
aW5pdGlhbGl6ZVZNRW50cnlTZW50aW5lbEZyYW1lKGNhbGxlckZyYW1lKTsKLQotICAgIC8vIElu
aXRpYWxpemUgdGhlIGNhbGxlZSBmcmFtZSBoZWFkZXI6Ci0gICAgbmV3Q2FsbEZyYW1lLT5pbml0
KGNvZGVCbG9jaywgMCwgc2NvcGUsIG5ld1ZNRW50cnlTZW50aW5lbEZyYW1lLCBhcmdzQ291bnQs
IGNhbGxlZSk7Ci0KLSAgICBBU1NFUlQoISFuZXdDYWxsRnJhbWUtPnNjb3BlKCkpOwotCi0gICAg
Ly8gUGFkIGFkZGl0aW9uYWwgYXJncyBpZiBuZWVkZWQ6Ci0gICAgLy8gTm90ZTogd2UgbmVlZCB0
byBzdWJ0cmFjdCAxIGZyb20gYXJnc0NvdW50IGFuZCBwYWRkZWRBcmdzQ291bnQgdG8KLSAgICAv
LyBleGNsdWRlIHRoZSB0aGlzIHBvaW50ZXIuCi0gICAgZm9yIChzaXplX3QgaSA9IGFyZ3NDb3Vu
dC0xOyBpIDwgcGFkZGVkQXJnc0NvdW50LTE7ICsraSkKLSAgICAgICAgbmV3Q2FsbEZyYW1lLT5z
ZXRBcmd1bWVudChpLCBqc1VuZGVmaW5lZCgpKTsKLQotICAgIGluc3RhbGxGZW5jZShuZXdDYWxs
RnJhbWUsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwotICAgIHZhbGlkYXRlRmVuY2UobmV3Q2Fs
bEZyYW1lLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKLSAgICBpbnN0YWxsVHJhcHNBZnRlckZy
YW1lKG5ld0NhbGxGcmFtZSk7Ci0KLSAgICAvLyBQdXNoIHRoZSBuZXcgZnJhbWU6Ci0gICAgbV90
b3BDYWxsRnJhbWUgPSBuZXdDYWxsRnJhbWU7Ci0KLSAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwor
ICAgIHJldHVybiB0b3BPZkZyYW1lRm9yKG1fdG9wQ2FsbEZyYW1lKTsKIH0KIAotaW5saW5lIHZv
aWQgSlNTdGFjazo6cG9wRnJhbWUoQ2FsbEZyYW1lKiBmcmFtZSkKLXsKLSAgICB2YWxpZGF0ZUZl
bmNlKGZyYW1lLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKLQotICAgIC8vIFBvcCBvZmYgdGhl
IGNhbGxlZSBmcmFtZSBhbmQgdGhlIHNlbnRpbmVsIGZyYW1lLgotICAgIENhbGxGcmFtZSogY2Fs
bGVyRnJhbWUgPSBmcmFtZS0+Y2FsbGVyRnJhbWUoKS0+dm1FbnRyeVNlbnRpbmVsQ2FsbGVyRnJh
bWUoKTsKLQotICAgIC8vIFBvcCB0byB0aGUgY2FsbGVyOgotICAgIG1fdG9wQ2FsbEZyYW1lID0g
Y2FsbGVyRnJhbWU7Ci0KLSAgICAvLyBJZiB3ZSBhcmUgcG9wcGluZyB0aGUgdmVyeSBmaXJzdCBm
cmFtZSBmcm9tIHRoZSBzdGFjayBpLmUuIG5vIG1vcmUKLSAgICAvLyBmcmFtZXMgYmVmb3JlIHRo
aXMsIHRoZW4gd2UgY2FuIG5vdyBzYWZlbHkgc2hyaW5rIHRoZSBzdGFjay4gSW4KLSAgICAvLyB0
aGlzIGNhc2UsIHdlJ3JlIHNocmlua2luZyBhbGwgdGhlIHdheSB0byB0aGUgYmVnaW5uaW5nIHNp
bmNlIHRoZXJlCi0gICAgLy8gYXJlIG5vIG1vcmUgZnJhbWVzIG9uIHRoZSBzdGFjay4KLSAgICBp
ZiAoIWNhbGxlckZyYW1lKQotICAgICAgICBzaHJpbmsoZ2V0QmFzZU9mU3RhY2soKSk7Ci0KLSAg
ICBpbnN0YWxsVHJhcHNBZnRlckZyYW1lKGNhbGxlckZyYW1lKTsKLX0KLQotaW5saW5lIHZvaWQg
SlNTdGFjazo6c2hyaW5rKFJlZ2lzdGVyKiBuZXdFbmQpCitpbmxpbmUgdm9pZCBKU1N0YWNrOjpz
aHJpbmsoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7CisgICAgUmVnaXN0ZXIqIG5ld0VuZCA9
IG5ld1RvcE9mU3RhY2sgLSAxOwogICAgIGlmIChuZXdFbmQgPj0gbV9lbmQpCiAgICAgICAgIHJl
dHVybjsKLSAgICB1cGRhdGVTdGFja0xpbWl0KG5ld0VuZCk7Ci0gICAgaWYgKG1fZW5kID09IGdl
dEJhc2VPZlN0YWNrKCkgJiYgKG1fY29tbWl0RW5kIC0gZ2V0QmFzZU9mU3RhY2soKSkgPj0gbWF4
RXhjZXNzQ2FwYWNpdHkpCisgICAgc2V0U3RhY2tMaW1pdChuZXdUb3BPZlN0YWNrKTsKKyAgICAv
LyBOb3RlOiBDbGFuZyBjb21wbGFpbnMgb2YgYW4gdW5yZXNvbHZlZCBsaW5rYWdlIHRvIG1heEV4
Y2Vzc0NhcGFjaXR5IGlmCisgICAgLy8gaW52b2tlIHN0ZDo6bWF4KCkgd2l0aCBpdCBhcyBhbiBh
cmd1bWVudC4gVG8gd29yayBhcm91bmQgdGhpcywgd2UgZmlyc3QKKyAgICAvLyBhc3NpZ24gdGhl
IGNvbnN0YW50IHRvIGEgbG9jYWwgdmFyaWFibGUsIGFuZCB1c2UgdGhlIGxvY2FsIGluc3RlYWQu
CisgICAgcHRyZGlmZl90IG1heEV4Y2Vzc0NhcGFjaXR5ID0gSlNTdGFjazo6bWF4RXhjZXNzQ2Fw
YWNpdHk7CisgICAgcHRyZGlmZl90IG1heEV4Y2Vzc0luUmVnaXN0ZXJzID0gc3RkOjptYXgobWF4
RXhjZXNzQ2FwYWNpdHksIG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzKTsKKyAgICBpZiAo
bV9lbmQgPT0gYmFzZU9mU3RhY2soKSAmJiAoaGlnaEFkZHJlc3MoKSAtIG1fY29tbWl0VG9wKSA+
PSBtYXhFeGNlc3NJblJlZ2lzdGVycykKICAgICAgICAgcmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KCk7
CiB9CiAKLWlubGluZSBib29sIEpTU3RhY2s6Omdyb3coUmVnaXN0ZXIqIG5ld0VuZCkKK2lubGlu
ZSBib29sIEpTU3RhY2s6Omdyb3coUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7CisgICAgUmVn
aXN0ZXIqIG5ld0VuZCA9IG5ld1RvcE9mU3RhY2sgLSAxOwogICAgIGlmIChuZXdFbmQgPj0gbV9l
bmQpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBncm93U2xvd0Nhc2UobmV3RW5k
KTsKKyAgICByZXR1cm4gZ3Jvd1Nsb3dDYXNlKG5ld1RvcE9mU3RhY2spOwogfQogCi1pbmxpbmUg
dm9pZCBKU1N0YWNrOjp1cGRhdGVTdGFja0xpbWl0KFJlZ2lzdGVyKiBuZXdFbmQpCitpbmxpbmUg
dm9pZCBKU1N0YWNrOjpzZXRTdGFja0xpbWl0KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogewor
ICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBuZXdUb3BPZlN0YWNrIC0gMTsKICAgICBtX2VuZCA9IG5l
d0VuZDsKLSNpZiBVU0UoU0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0spCi0gICAgbV92bS5zZXRKU1N0
YWNrTGltaXQobmV3RW5kKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIG1fdm0uc2V0
SlNTdGFja0xpbWl0KG5ld1RvcE9mU3RhY2spOwogI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoREVC
VUdfSlNTVEFDSykKLWlubGluZSBKU1ZhbHVlIEpTU3RhY2s6OmdlbmVyYXRlRmVuY2VWYWx1ZShz
aXplX3QgYXJnSW5kZXgpCi17Ci0gICAgdW5zaWduZWQgZmVuY2VCaXRzID0gMHhmYWNlYmFkMCB8
ICgoYXJnSW5kZXgrMSkgJiAweGYpOwotICAgIEpTVmFsdWUgZmVuY2VWYWx1ZSA9IEpTVmFsdWUo
ZmVuY2VCaXRzKTsKLSAgICByZXR1cm4gZmVuY2VWYWx1ZTsKLX0KLQotLy8gVGhlIEpTU3RhY2sg
ZmVuY2VzIG1lY2hhbmlzbSB3b3JrcyBhcyBmb2xsb3dzOgotLy8gMS4gQSBmZW5jZSBpcyBhIG51
bWJlciAoSlNTdGFjazo6RmVuY2VTaXplKSBvZiBKU1ZhbHVlcyB0aGF0IGFyZSBpbml0aWFsaXpl
ZAotLy8gICAgd2l0aCB2YWx1ZXMgZ2VuZXJhdGVkIGJ5IEpTU3RhY2s6OmdlbmVyYXRlRmVuY2VW
YWx1ZSgpLgotLy8gMi4gV2hlbiBwdXNoRnJhbWUoKSBpcyBjYWxsZWQsIHRoZSBmZW5jZSBpcyBp
bnN0YWxsZWQgYWZ0ZXIgdGhlIG1heCBleHRlbnQKLS8vICAgIG9mIHRoZSBwcmV2aW91cyB0b3BD
YWxsRnJhbWUgYW5kIHRoZSBsYXN0IGFyZyBvZiB0aGUgbmV3IGZyYW1lOgotLy8KLS8vICAgICAg
ICAgICAgICAgICAgICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAot
Ly8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgRnJhbWUgSGVhZGVyIG9mIHByZXZpb3Vz
IGZyYW1lICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgdG9wQ2FsbEZyYW1lIC0tPiB8ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwg
TG9jYWxzIG9mIHByZXZpb3VzIGZyYW1lICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAg
ICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAg
ICAgICAgICAgICAgICB8ICoqKiB0aGUgRmVuY2UgKioqICAgICAgICAgICAgICAgICAgICB8Ci0v
LyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCBWTSBlbnRyeSBzZW50aW5lbCBmcmFtZSBo
ZWFkZXIgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgQXJncyBvZiBu
ZXcgZnJhbWUgICAgICAgICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAg
ICAgICB8IEZyYW1lIEhlYWRlciBvZiBuZXcgZnJhbWUgICAgICAgICAgICB8Ci0vLyAgICAgICAg
ICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8v
ICAgICAgICAgICBmcmFtZSAtLT4gfCBMb2NhbHMgb2YgbmV3IGZyYW1lICAgICAgICAgICAgICAg
ICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8Ci0vLwotLy8gMy4gSW4gcG9wRnJhbWUoKSBhbmQgZWxzZXdoZXJlLCB3ZSBj
YW4gY2FsbCBKU1N0YWNrOjp2YWxpZGF0ZUZlbmNlKCkgdG8KLS8vICAgIGFzc2VydCB0aGF0IHRo
ZSBmZW5jZSBjb250YWlucyB0aGUgdmFsdWVzIHdlIGV4cGVjdC4KLQotaW5saW5lIHZvaWQgSlNT
dGFjazo6aW5zdGFsbEZlbmNlKENhbGxGcmFtZSogZnJhbWUsIGNvbnN0IGNoYXIgKmZ1bmN0aW9u
LCBpbnQgbGluZU5vKQotewotICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7Ci0gICAgVU5VU0VE
X1BBUkFNKGxpbmVObyk7Ci0gICAgUmVnaXN0ZXIqIHN0YXJ0T2ZGcmFtZSA9IGdldFN0YXJ0T2ZG
cmFtZShmcmFtZSk7Ci0KLSAgICAvLyBUaGUgbGFzdCBhcmdJbmRleCBpcyBhdDoKLSAgICBzaXpl
X3QgbWF4SW5kZXggPSBmcmFtZS0+YXJnSW5kZXhGb3JSZWdpc3RlcihzdGFydE9mRnJhbWUpICsg
MTsKLSAgICBzaXplX3Qgc3RhcnRJbmRleCA9IG1heEluZGV4IC0gRmVuY2VTaXplOwotICAgIGZv
ciAoc2l6ZV90IGkgPSBzdGFydEluZGV4OyBpIDwgbWF4SW5kZXg7ICsraSkgewotICAgICAgICBK
U1ZhbHVlIGZlbmNlVmFsdWUgPSBnZW5lcmF0ZUZlbmNlVmFsdWUoaSk7Ci0gICAgICAgIGZyYW1l
LT5zZXRBcmd1bWVudChpLCBmZW5jZVZhbHVlKTsKLSAgICB9Ci19Ci0KLWlubGluZSB2b2lkIEpT
U3RhY2s6OnZhbGlkYXRlRmVuY2UoQ2FsbEZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciAqZnVuY3Rp
b24sIGludCBsaW5lTm8pCi17Ci0gICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uKTsKLSAgICBVTlVT
RURfUEFSQU0obGluZU5vKTsKLSAgICBBU1NFUlQoISFmcmFtZS0+c2NvcGUoKSk7Ci0gICAgUmVn
aXN0ZXIqIHN0YXJ0T2ZGcmFtZSA9IGdldFN0YXJ0T2ZGcmFtZShmcmFtZSk7Ci0gICAgc2l6ZV90
IG1heEluZGV4ID0gZnJhbWUtPmFyZ0luZGV4Rm9yUmVnaXN0ZXIoc3RhcnRPZkZyYW1lKSArIDE7
Ci0gICAgc2l6ZV90IHN0YXJ0SW5kZXggPSBtYXhJbmRleCAtIEZlbmNlU2l6ZTsKLSAgICBmb3Ig
KHNpemVfdCBpID0gc3RhcnRJbmRleDsgaSA8IG1heEluZGV4OyArK2kpIHsKLSAgICAgICAgSlNW
YWx1ZSBmZW5jZVZhbHVlID0gZ2VuZXJhdGVGZW5jZVZhbHVlKGkpOwotICAgICAgICBKU1ZhbHVl
IGFjdHVhbFZhbHVlID0gZnJhbWUtPmdldEFyZ3VtZW50VW5zYWZlKGkpOwotICAgICAgICBBU1NF
UlQoZmVuY2VWYWx1ZSA9PSBhY3R1YWxWYWx1ZSk7Ci0gICAgfQotfQotCi0vLyBXaGVuIGRlYnVn
Z2luZyB0aGUgSlNTdGFjaywgd2UgaW5zdGFsbCBiYWQgdmFsdWVzIGFmdGVyIHRoZSBleHRlbnQg
b2YgdGhlCi0vLyB0b3BDYWxsRnJhbWUgYXQgdGhlIGVuZCBvZiBwdXNoRnJhbWUoKSBhbmQgcG9w
RnJhbWUoKS4gVGhlIGludGVudGlvbiBpcwotLy8gdG8gdHJpZ2dlciBjcmFzaGVzIGluIHRoZSBl
dmVudCB0aGF0IG1lbW9yeSBpbiB0aGlzIHN1cHBvc2VkbHkgdW51c2VkCi0vLyByZWdpb24gaXMg
cmVhZCBhbmQgY29uc3VtZWQgd2l0aG91dCBwcm9wZXIgaW5pdGlhbGl6YXRpb24uIEFmdGVyIHRo
ZSB0cmFwCi0vLyB3b3JkcyBhcmUgaW5zdGFsbGVkLCB0aGUgc3RhY2sgbG9va3MgbGlrZSB0aGlz
OgotLy8KLS8vICAgICAgICAgICAgICAgICAgICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAg
ICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgRnJhbWUgSGVhZGVyIG9mIGZyYW1lICAgICAg
IHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
fAotLy8gICAgdG9wQ2FsbEZyYW1lIC0tPiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgTG9jYWxzIG9mIGZyYW1lICAgICAgICAgICAgIHwK
LS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAot
Ly8gICAgICAgICAgICAgICAgICAgICB8ICoqKiBUcmFwIHdvcmRzICoqKiAgICAgICAgICB8Ci0v
LyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8v
ICAgICAgICAgICAgICAgICAgICAgfCBVbnVzZWQgc3BhY2UgLi4uICAgICAgICAgICAgfAotLy8g
ICAgICAgICAgICAgICAgICAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0KLWlu
bGluZSB2b2lkIEpTU3RhY2s6Omluc3RhbGxUcmFwc0FmdGVyRnJhbWUoQ2FsbEZyYW1lKiBmcmFt
ZSkKLXsKLSAgICBSZWdpc3RlciogdG9wT2ZGcmFtZSA9IGdldFRvcE9mRnJhbWUoZnJhbWUpOwot
ICAgIGNvbnN0IGludCBzaXplT2ZUcmFwID0gNjQ7Ci0gICAgaW50MzJfdCogc3RhcnRPZlRyYXAg
PSByZWludGVycHJldF9jYXN0PGludDMyX3QqPih0b3BPZkZyYW1lKTsKLSAgICBpbnQzMl90KiBl
bmRPZlRyYXAgPSBzdGFydE9mVHJhcCAtIHNpemVPZlRyYXA7Ci0gICAgaW50MzJfdCogZW5kT2ZD
b21taXRlZE1lbW9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdCo+KG1fY29tbWl0RW5kKTsK
LQotICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBub3QgZXhjZWVkaW5nIHRoZSBhbW91bnQgb2YgYXZh
aWxhYmxlIG1lbW9yeSB0byB3cml0ZSB0bzoKLSAgICBpZiAoZW5kT2ZUcmFwIDwgZW5kT2ZDb21t
aXRlZE1lbW9yeSkKLSAgICAgICAgZW5kT2ZUcmFwID0gZW5kT2ZDb21taXRlZE1lbW9yeTsKLQot
ICAgIC8vIExheSB0aGUgdHJhcHM6Ci0gICAgaW50MzJfdCogcCA9IHN0YXJ0T2ZUcmFwOwotICAg
IHdoaWxlIChwID4gZW5kT2ZUcmFwKQotICAgICAgICAqcC0tID0gMHhhYmFkY2FmZTsgLy8gQSBi
YWQgd29yZCB0byB0cmlnZ2VyIGEgY3Jhc2ggaWYgZGVyZWYnZWQuCi19Ci0jZW5kaWYgLy8gRU5B
QkxFKERFQlVHX0pTU1RBQ0spCisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCmluZGV4IGEzNjAwMTQzNzgxMTBkM2U0NzIwZjgwZWVh
MzM3NmM3YTg0M2Q3ZjkuLmYwZTAyYmE0ZTQ3NmY5OWNjOTEzYjA0NjJhZDI3OTUwMDYwOWZhM2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxG
cmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2Fs
bEZyYW1lLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgi
CiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDMsNyArNDQsOSBAQCB2b2lkIFByb3RvQ2FsbEZyYW1l
Ojppbml0KENvZGVCbG9jayogY29kZUJsb2NrLCBKU1Njb3BlKiBzY29wZSwgSlNPYmplY3QqIGNh
bGxlZQogICAgICAgICBpZiAocGFkZGVkQXJnc0NvdW50IDwgbnVtUGFyYW1ldGVycykKICAgICAg
ICAgICAgIHBhZGRlZEFyZ3NDb3VudCA9IG51bVBhcmFtZXRlcnM7CiAgICAgfQotICAgIHRoaXMt
PnNldFBhZGRlZEFyZ3NDb3VudChwYWRkZWRBcmdzQ291bnQpOworICAgIC8vIFJvdW5kIHVwIHBh
ZGRlZEFyZ3NDb3VudCB0byBrZWVwIHRoZSBzdGFjayBmcmFtZSBzaXplIGFsaWduZWQuCisgICAg
cGFkZGVkQXJnc0NvdW50ID0gcm91bmRBcmd1bWVudENvdW50VG9BbGlnbkZyYW1lKHBhZGRlZEFy
Z3NDb3VudCk7CisgICAgdGhpcy0+c2V0UGFkZGVkQXJnQ291bnQocGFkZGVkQXJnc0NvdW50KTsK
ICAgICB0aGlzLT5jbGVhckN1cnJlbnRWUEMoKTsKICAgICB0aGlzLT5zZXRUaGlzVmFsdWUodGhp
c1ZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9Qcm90b0NhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1By
b3RvQ2FsbEZyYW1lLmgKaW5kZXggYjcxNTFlZWZmYzVkY2NhYTAyMDA5NzczMDZjNzFhOGU4N2Jh
OTljYi4uNTYxMjg2YjNmOWI1NGJhNWE5NDViYjBiMDZkMGE1ZWNkOTQzZTYzNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmgKQEAg
LTUzLDcgKzUzLDcgQEAgc3RydWN0IFByb3RvQ2FsbEZyYW1lIHsKICAgICBpbnQgYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMoKSBjb25zdCB7IHJldHVybiBhcmdDb3VudEFuZENvZGVPcmlnaW5W
YWx1ZS5wYXlsb2FkKCk7IH0KICAgICBpbnQgYXJndW1lbnRDb3VudCgpIGNvbnN0IHsgcmV0dXJu
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkgLSAxOyB9CiAgICAgdm9pZCBzZXRBcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyhpbnQgY291bnQpIHsgYXJnQ291bnRBbmRDb2RlT3JpZ2luVmFs
dWUucGF5bG9hZCgpID0gY291bnQ7IH0KLSAgICB2b2lkIHNldFBhZGRlZEFyZ3NDb3VudChzaXpl
X3QgYXJnQ291bnQpIHsgcGFkZGVkQXJnQ291bnQgPSBhcmdDb3VudDsgfQorICAgIHZvaWQgc2V0
UGFkZGVkQXJnQ291bnQoc2l6ZV90IGFyZ0NvdW50KSB7IHBhZGRlZEFyZ0NvdW50ID0gYXJnQ291
bnQ7IH0KIAogICAgIHZvaWQgY2xlYXJDdXJyZW50VlBDKCkgeyBhcmdDb3VudEFuZENvZGVPcmln
aW5WYWx1ZS50YWcoKSA9IDA7IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzBl
YjFiNjVmNzdjM2VjYjc3YjBlMzk1YTQ2N2U0YmExZWQxODZmOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3Bw
CkBAIC0wLDAgKzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBcml0eUNoZWNrRmFpbFJl
dHVyblRodW5rcy5oIgorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkFzc2VtYmx5SGVs
cGVycy5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVu
dC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6OkFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzKCkKKyAgICA6IG1fbmV4dFNpemUoMCkKK3sKK30KKwor
QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6On5Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcygp
IHsgfQorCitDb2RlTG9jYXRpb25MYWJlbCogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6OnJl
dHVyblBDc0ZvcigKKyAgICBWTSYgdm0sIHVuc2lnbmVkIG51bUV4cGVjdGVkQXJndW1lbnRzSW5j
bHVkaW5nVGhpcykKK3sKKyAgICBBU1NFUlQobnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdU
aGlzID49IDEpOworICAgIAorICAgIG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyA9
IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZigKKyAgICAgICAgc3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKSwgbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzKTsKKyAgICAKKyAgICB7Cisg
ICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIGlmIChu
dW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPCBtX25leHRTaXplKQorICAgICAgICAg
ICAgcmV0dXJuIG1fcmV0dXJuUENBcnJheXMubGFzdCgpLmdldCgpOworICAgIH0KKyAgICAKKyAg
ICBBU1NFUlQoIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7CisgICAgCisgICAgbnVtRXhwZWN0ZWRB
cmd1bWVudHNJbmNsdWRpbmdUaGlzID0gc3RkOjptYXgoCisgICAgICAgIG51bUV4cGVjdGVkQXJn
dW1lbnRzSW5jbHVkaW5nVGhpcywKKyAgICAgICAgbV9uZXh0U2l6ZSAqIDIpOworICAgIAorICAg
IEFzc2VtYmx5SGVscGVycyBqaXQoJnZtLCAwKTsKKyAgICAKKyAgICBWZWN0b3I8QXNzZW1ibHlI
ZWxwZXJzOjpMYWJlbD4gbGFiZWxzOworICAgIAorICAgIGZvciAodW5zaWduZWQgc2l6ZSA9IG1f
bmV4dFNpemU7IHNpemUgPD0gbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzOyBzaXpl
ICs9IHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpIHsKKyAgICAgICAgbGFiZWxzLmFwcGVuZChq
aXQubGFiZWwoKSk7CisgICAgICAgIAorICAgICAgICBqaXQubG9hZDMyKAorICAgICAgICAgICAg
QXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKAorICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVy
czo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsCisgICAgICAgICAgICAgICAgKEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0
ZXIpICsKKyAgICAgICAgICAgICAgICBQYXlsb2FkT2Zmc2V0KSwKKyAgICAgICAgICAgIEdQUklu
Zm86OnJlZ1Q0KTsKKyAgICAgICAgaml0LmFkZDMyKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoCisgICAgICAgICAgICAgICAgSlNTdGFjazo6Q2FsbEZyYW1lSGVh
ZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplICsgc2l6ZSAtIDEpLAorICAg
ICAgICAgICAgR1BSSW5mbzo6cmVnVDQsIEdQUkluZm86OnJlZ1QyKTsKKyAgICAgICAgaml0Lmxz
aGlmdDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDMpLCBHUFJJbmZvOjpyZWdUMik7
CisgICAgICAgIGppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgR1BSSW5mbzo6cmVnVDIpOworICAgICAgICBqaXQubG9hZFB0cihHUFJJbmZvOjpyZWdUMiwg
R1BSSW5mbzo6cmVnVDIpOworICAgICAgICAKKyAgICAgICAgaml0LmFkZFB0cigKKyAgICAgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKHNpemUgKiBzaXplb2YoUmVnaXN0ZXIp
KSwKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwor
ICAgICAgICAKKyAgICAgICAgLy8gVGh1bmtzIGxpa2Ugb3VycyB3YW50IHRvIHVzZSB0aGUgcmV0
dXJuIFBDIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpbmdzCisgICAgICAgIC8vIHdlcmUgc2F2ZWQu
IFNvLCB3ZSBwYXkgaXQgZm9yd2FyZC4KKyAgICAgICAgaml0LnN0b3JlMzIoCisgICAgICAgICAg
ICBHUFJJbmZvOjpyZWdUNCwKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcygK
KyAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAor
ICAgICAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0gSlNTdGFjazo6Q2FsbGVy
RnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVyKSArCisgICAgICAgICAgICAgICAgUGF5
bG9hZE9mZnNldCkpOworICAgICAgICAKKyAgICAgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDIp
OworICAgIH0KKyAgICAKKyAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sICZqaXQsIEdMT0JB
TF9USFVOS19JRCk7CisgICAgCisgICAgdW5zaWduZWQgcmV0dXJuUENzU2l6ZSA9IG51bUV4cGVj
dGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyAvIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgKyAx
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2RlTG9jYXRpb25MYWJlbFtdPiByZXR1cm5QQ3MgPQor
ICAgICAgICBzdGQ6Om1ha2VfdW5pcXVlPENvZGVMb2NhdGlvbkxhYmVsW10+KHJldHVyblBDc1Np
emUpOworICAgIGZvciAodW5zaWduZWQgc2l6ZSA9IDA7IHNpemUgPD0gbnVtRXhwZWN0ZWRBcmd1
bWVudHNJbmNsdWRpbmdUaGlzOyBzaXplICs9IHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpIHsK
KyAgICAgICAgdW5zaWduZWQgaW5kZXggPSBzaXplIC8gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMo
KTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoaW5kZXggPCByZXR1cm5QQ3NTaXplKTsKKyAgICAg
ICAgaWYgKHNpemUgPCBtX25leHRTaXplKQorICAgICAgICAgICAgcmV0dXJuUENzW2luZGV4XSA9
IG1fcmV0dXJuUENBcnJheXMubGFzdCgpW2luZGV4XTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgcmV0dXJuUENzW2luZGV4XSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZihsYWJlbHNbKHNpemUg
LSBtX25leHRTaXplKSAvIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCldKTsKKyAgICB9CisKKyAg
ICBDb2RlTG9jYXRpb25MYWJlbCogcmVzdWx0ID0gcmV0dXJuUENzLmdldCgpOworCisgICAgewor
ICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBtX3Jl
dHVyblBDQXJyYXlzLmFwcGVuZChzdGQ6Om1vdmUocmV0dXJuUENzKSk7CisgICAgICAgIG1fcmVm
cy5hcHBlbmQoRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCAoIkFyaXR5IGNoZWNrIGZhaWwgcmV0
dXJuIHRodW5rcyBmb3IgdXAgdG8gbnVtQXJncyA9ICV1IiwgbnVtRXhwZWN0ZWRBcmd1bWVudHNJ
bmNsdWRpbmdUaGlzKSkpOworICAgICAgICBtX25leHRTaXplID0gbnVtRXhwZWN0ZWRBcmd1bWVu
dHNJbmNsdWRpbmdUaGlzICsgc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKTsKKyAgICB9CisgICAg
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworQ29kZUxvY2F0aW9uTGFiZWwgQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3M6OnJldHVyblBDRm9yKFZNJiB2bSwgdW5zaWduZWQgc2xvdHNUb0FkZCkK
K3sKKyAgICByZXR1cm4gcmV0dXJuUENzRm9yKHZtLCBzbG90c1RvQWRkKVtzbG90c1RvQWRkIC8g
c3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKV07Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisj
ZW5kaWYgLy8gRU5BQkxFKEpJVCkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyZDAzNDEzOTFj
YzQyNTQ3ZWEwNjFjNGI5MTA0Njc3NDU3NDQ2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgKQEAgLTAsMCAr
MSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzX2gKKyNkZWZpbmUgQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3NfaAorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkNvZGVMb2Nh
dGlvbi5oIgorI2luY2x1ZGUgIkNvbmN1cnJlbnRKSVRMb2NrLmgiCisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEFyaXR5Q2hlY2tGYWlsUmV0dXJu
VGh1bmtzIHsKK3B1YmxpYzoKKyAgICBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcygpOworICAg
IH5Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcygpOworICAgIAorICAgIC8vIFJldHVybnMgYSBw
b2ludGVyIHRvIGFuIGFycmF5IG9mIHJldHVybiBsYWJlbHMgaW5kZXhlZCBieSBtaXNzaW5nQXJn
cy4KKyAgICBDb2RlTG9jYXRpb25MYWJlbCogcmV0dXJuUENzRm9yKFZNJiwgdW5zaWduZWQgbnVt
RXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzKTsKKyAgICAKKyAgICBDb2RlTG9jYXRpb25M
YWJlbCByZXR1cm5QQ0ZvcihWTSYsIHVuc2lnbmVkIHNsb3RzVG9BZGQpOworICAgIAorcHJpdmF0
ZToKKyAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENvZGVMb2NhdGlvbkxhYmVsW10+PiBtX3Jl
dHVyblBDQXJyYXlzOworICAgIHVuc2lnbmVkIG1fbmV4dFNpemU7CisgICAgVmVjdG9yPE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZj4gbV9yZWZzOworICAgIENvbmN1cnJlbnRKSVRMb2NrIG1fbG9jazsK
K307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworI2Vu
ZGlmIC8vIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IGRkZjFkNjM1OTIxYmQ1ZDUzMjNm
ZmVjYzgxYTdmZGY4MzYyYmM2MzYuLmRkMzY5MTc1ZWVjMzBiZTRmYmE4MTMxOTU2OWRlZjdhNDQ5
OWNjODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5j
cHAKQEAgLTExMCw2ICsxMTAsMTcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElz
Q2VsbChHUFJSZWcgZ3ByKQogICAgIGJyZWFrcG9pbnQoKTsKICAgICBjaGVja0NlbGwubGluayh0
aGlzKTsKIH0KKwordm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydFRhZ3NJblBsYWNlKCkK
K3sKKyAgICBKdW1wIG9rID0gYnJhbmNoNjQoRXF1YWwsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgVHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIpKTsKKyAgICBicmVha3BvaW50KCk7
CisgICAgb2subGluayh0aGlzKTsKKyAgICAKKyAgICBvayA9IGJyYW5jaDY0KEVxdWFsLCBHUFJJ
bmZvOjp0YWdNYXNrUmVnaXN0ZXIsIFRydXN0ZWRJbW02NChUYWdNYXNrKSk7CisgICAgYnJlYWtw
b2ludCgpOworICAgIG9rLmxpbmsodGhpcyk7Cit9CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQog
dm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzSW50MzIoR1BSUmVnIGdwcikKIHsKQEAg
LTE0NSw2ICsxNTYsMTAgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbChH
UFJSZWcgZ3ByKQogICAgIGJyZWFrcG9pbnQoKTsKICAgICBjaGVja0NlbGwubGluayh0aGlzKTsK
IH0KKwordm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydFRhZ3NJblBsYWNlKCkKK3sKK30K
ICNlbmRpZiAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCiB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0
QXNzZXJ0SGFzVmFsaWRDYWxsRnJhbWUoKQpAQCAtMTYwLDYgKzE3NSwxMyBAQCB2b2lkIEFzc2Vt
Ymx5SGVscGVyczo6aml0QXNzZXJ0SXNOdWxsKEdQUlJlZyBncHIpCiAgICAgYnJlYWtwb2ludCgp
OwogICAgIGNoZWNrTnVsbC5saW5rKHRoaXMpOwogfQorCit2b2lkIEFzc2VtYmx5SGVscGVyczo6
aml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUoKQoreworICAgIEp1bXAgb2sgPSBicmFuY2gzMihC
ZWxvdywgcGF5bG9hZEZvcihKU1N0YWNrOjpBcmd1bWVudENvdW50KSwgVHJ1c3RlZEltbTMyKDEw
MDAwMDAwKSk7CisgICAgYnJlYWtwb2ludCgpOworICAgIG9rLmxpbmsodGhpcyk7Cit9CiAjZW5k
aWYgLy8gIUFTU0VSVF9ESVNBQkxFRAogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDM2ZDU4MzEzOTEzNDU2ZDc0
MTQxMDc1NTE4Mzk3ZmYyYjY4NzQxOWIuLjY1Y2I3MzlhMzVjNjc5N2IzMDZiM2Q1ZjkwMWU0NTky
MjE1NWQyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
aApAQCAtNTgsOCArNTgsMzYgQEAgcHVibGljOgogICAgIENvZGVCbG9jayogY29kZUJsb2NrKCkg
eyByZXR1cm4gbV9jb2RlQmxvY2s7IH0KICAgICBWTSogdm0oKSB7IHJldHVybiBtX3ZtOyB9CiAg
ICAgQXNzZW1ibGVyVHlwZV9UJiBhc3NlbWJsZXIoKSB7IHJldHVybiBtX2Fzc2VtYmxlcjsgfQot
ICAgIAorCisgICAgdm9pZCBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpCisgICAgeworICAg
ICAgICAvLyBUaGlzIGNoZWNrIGlzIGJvdGggdW5uZWVkZWQgYW5kIGhhcmRlciB0byB3cml0ZSBj
b3JyZWN0bHkgZm9yIEFSTTY0CisjaWYgIWRlZmluZWQoTkRFQlVHKSAmJiAhQ1BVKEFSTTY0KQor
ICAgICAgICBKdW1wIHN0YWNrUG9pbnRlckFsaWduZWQgPSBicmFuY2hUZXN0UHRyKFplcm8sIHN0
YWNrUG9pbnRlclJlZ2lzdGVyLCBUcnVzdGVkSW1tMzIoMHhmKSk7CisgICAgICAgIGJyZWFrcG9p
bnQoKTsKKyAgICAgICAgc3RhY2tQb2ludGVyQWxpZ25lZC5saW5rKHRoaXMpOworI2VuZGlmCisg
ICAgfQorCiAjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKFg4NikKKyAgICBzaXplX3QgcHJvbG9ndWVT
dGFja1BvaW50ZXJEZWx0YSgpCisgICAgeworICAgICAgICAvLyBQcm9sb2d1ZSBvbmx5IHNhdmVz
IHRoZSBmcmFtZVBvaW50ZXJSZWdpc3RlcgorICAgICAgICByZXR1cm4gc2l6ZW9mKHZvaWQqKTsK
KyAgICB9CisKKyAgICB2b2lkIGVtaXRGdW5jdGlvblByb2xvZ3VlKCkKKyAgICB7CisgICAgICAg
IHB1c2goZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKHN0YWNrUG9pbnRlclJl
Z2lzdGVyLCBmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CisgICAgfQorCisgICAgdm9pZCBlbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpCisgICAgeworICAgICAgICBtb3ZlKGZyYW1lUG9pbnRlclJlZ2lzdGVy
LCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIHBvcChmcmFtZVBvaW50ZXJSZWdpc3Rl
cik7CisgICAgfQorCiAgICAgdm9pZCBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BS
UmVnIHJlZykKICAgICB7CiAgICAgICAgIHBvcChyZWcpOwpAQCAtNzcsNiArMTA1LDI0IEBAIHB1
YmxpYzoKICNlbmRpZiAvLyBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQogCiAjaWYgQ1BVKEFSTSkg
fHwgQ1BVKEFSTTY0KQorICAgIHNpemVfdCBwcm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkKKyAg
ICB7CisgICAgICAgIC8vIFByb2xvZ3VlIHNhdmVzIHRoZSBmcmFtZVBvaW50ZXJSZWdpc3RlciBh
bmQgbGlua1JlZ2lzdGVyCisgICAgICAgIHJldHVybiAyICogc2l6ZW9mKHZvaWQqKTsKKyAgICB9
CisKKyAgICB2b2lkIGVtaXRGdW5jdGlvblByb2xvZ3VlKCkKKyAgICB7CisgICAgICAgIHB1c2hQ
YWlyKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBsaW5rUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKHN0
YWNrUG9pbnRlclJlZ2lzdGVyLCBmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CisgICAgfQorCisgICAg
dm9pZCBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpCisgICAgeworICAgICAgICBtb3ZlKGZyYW1lUG9p
bnRlclJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIHBvcFBhaXIoZnJh
bWVQb2ludGVyUmVnaXN0ZXIsIGxpbmtSZWdpc3Rlcik7CisgICAgfQorCiAgICAgQUxXQVlTX0lO
TElORSB2b2lkIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChSZWdpc3RlcklEIHJlZykK
ICAgICB7CiAgICAgICAgIG1vdmUobGlua1JlZ2lzdGVyLCByZWcpOwpAQCAtOTQsNiArMTQwLDEy
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgQ1BVKE1JUFMpCisgICAgc2l6ZV90IHByb2xvZ3Vl
U3RhY2tQb2ludGVyRGVsdGEoKQorICAgIHsKKyAgICAgICAgLy8gUHJvbG9ndWUgc2F2ZXMgdGhl
IGZyYW1lUG9pbnRlclJlZ2lzdGVyIGFuZCByZXR1cm5BZGRyZXNzUmVnaXN0ZXIKKyAgICAgICAg
cmV0dXJuIDIgKiBzaXplb2Yodm9pZCopOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoUmVnaXN0ZXJJRCByZWcpCiAgICAgewog
ICAgICAgICBtb3ZlKHJldHVybkFkZHJlc3NSZWdpc3RlciwgcmVnKTsKQEAgLTExMSw2ICsxNjMs
MTIgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBDUFUoU0g0KQorICAgIHNpemVfdCBwcm9sb2d1
ZVN0YWNrUG9pbnRlckRlbHRhKCkKKyAgICB7CisgICAgICAgIC8vIFByb2xvZ3VlIHNhdmVzIHRo
ZSBmcmFtZVBvaW50ZXJSZWdpc3RlciBhbmQgbGluayByZWdpc3RlcgorICAgICAgICByZXR1cm4g
MiAqIHNpemVvZih2b2lkKik7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHByZXNl
cnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChSZWdpc3RlcklEIHJlZykKICAgICB7CiAgICAgICAg
IG1fYXNzZW1ibGVyLnN0c3ByKHJlZyk7CkBAIC0xNTAsMTAgKzIwOCw2IEBAIHB1YmxpYzoKICAg
ICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
Q2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSk7CiAgICAgfQogCi0gICAgdm9pZCBlbWl0
R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVySUQgdG8pCi0gICAgewot
ICAgICAgICBsb2FkUHRyKEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxG
cmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIHRvKTsKLSAgICB9CiAgICAgdm9pZCBlbWl0UHV0UmV0
dXJuUENUb0NhbGxGcmFtZUhlYWRlcihSZWdpc3RlcklEIGZyb20pCiAgICAgewogICAgICAgICBz
dG9yZVB0cihmcm9tLCBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKQEAgLTE2Myw2ICsyMTcsMjkgQEAgcHVibGljOgogICAg
ICAgICBzdG9yZVB0cihmcm9tLCBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBD
YWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKICAgICB9CiAKKyAgICAvLyBlbWl0UHV0VG9D
YWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZSgpIGFuZCByZWxhdGVkIGFyZSB1c2VkIHRvIGFj
Y2VzcyBjYWxsZWUgZnJhbWUgaGVhZGVyCisgICAgLy8gZmllbGRzIGJlZm9yZSB0aGUgY29kZSBm
cm9tIGVtaXRGdW5jdGlvblByb2xvZ3VlKCkgaGFzIGV4ZWN1dGVkLgorICAgIC8vIEZpcnN0LCB0
aGUgYWNjZXNzIGlzIHZpYSB0aGUgc3RhY2sgcG9pbnRlci4gU2Vjb25kLCB0aGUgYWRkcmVzcyBj
YWxjdWxhdGlvbiBtdXN0IGFsc28gdGFrZQorICAgIC8vIGludG8gYWNjb3VudCB0aGF0IHRoZSBz
dGFjayBwb2ludGVyIG1heSBub3QgaGF2ZSBiZWVuIGFkanVzdGVkIGRvd24gZm9yIHRoZSByZXR1
cm4gUEMgYW5kL29yCisgICAgLy8gY2FsbGVyJ3MgZnJhbWUgcG9pbnRlci4gT24gc29tZSBwbGF0
Zm9ybXMsIHRoZSBjYWxsZWUgaXMgcmVzcG9uc2libGUgZm9yIHB1c2hpbmcgdGhlCisgICAgLy8g
ImxpbmsgcmVnaXN0ZXIiIGNvbnRhaW5pbmcgdGhlIHJldHVybiBhZGRyZXNzIGluIHRoZSBmdW5j
dGlvbiBwcm9sb2d1ZS4KKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIHZvaWQgZW1pdFB1dFRvQ2Fs
bEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoR1BSUmVnIGZyb20sIEpTU3RhY2s6OkNhbGxGcmFt
ZUhlYWRlckVudHJ5IGVudHJ5KQorICAgIHsKKyAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVz
cyhzdGFja1BvaW50ZXJSZWdpc3RlciwgZW50cnkgKiBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNp
emVvZihSZWdpc3RlcikpIC0gcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpKSk7CisgICAgfQor
I2Vsc2UKKyAgICB2b2lkIGVtaXRQdXRQYXlsb2FkVG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9s
b2d1ZShHUFJSZWcgZnJvbSwgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCisg
ICAgeworICAgICAgICBzdG9yZVB0cihmcm9tLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBlbnRyeSAqIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBwcm9s
b2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVz
Y3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7CisgICAgfQorCisgICAgdm9pZCBlbWl0UHV0VGFn
VG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZShUcnVzdGVkSW1tMzIgdGFnLCBKU1N0YWNr
OjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSkKKyAgICB7CisgICAgICAgIHN0b3JlUHRyKHRh
ZywgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgZW50cnkgKiBzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KHNpemVvZihSZWdpc3RlcikpIC0gcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpICsg
T0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSk7Cisg
ICAgfQorI2VuZGlmCisKICAgICBKdW1wIGJyYW5jaElmTm90Q2VsbChHUFJSZWcgcmVnKQogICAg
IHsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMTk0LDcgKzI3MSw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgQWRkcmVzcyB0YWdGb3IoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlcikKICAg
ICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsKLSAgICAgICAg
cmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rl
ci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZh
bHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOworICAgICAgICByZXR1cm4gQWRkcmVzcyhHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9m
KFJlZ2lzdGVyKSArIFRhZ09mZnNldCk7CiAgICAgfQogICAgIHN0YXRpYyBBZGRyZXNzIHRhZ0Zv
cihpbnQgb3BlcmFuZCkKICAgICB7CkBAIC0yMDQsNyArMjgxLDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyBBZGRyZXNzIHBheWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlcikK
ICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsKLSAgICAg
ICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdp
c3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKTsKKyAgICAgICAgcmV0dXJuIEFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAq
IHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CiAgICAgc3RhdGljIEFk
ZHJlc3MgcGF5bG9hZEZvcihpbnQgb3BlcmFuZCkKICAgICB7CkBAIC0yOTgsNiArMzc1LDggQEAg
cHVibGljOgogICAgIHZvaWQgaml0QXNzZXJ0SXNDZWxsKEdQUlJlZyk7CiAgICAgdm9pZCBqaXRB
c3NlcnRIYXNWYWxpZENhbGxGcmFtZSgpOwogICAgIHZvaWQgaml0QXNzZXJ0SXNOdWxsKEdQUlJl
Zyk7CisgICAgdm9pZCBqaXRBc3NlcnRUYWdzSW5QbGFjZSgpOworICAgIHZvaWQgaml0QXNzZXJ0
QXJndW1lbnRDb3VudFNhbmUoKTsKICNlbHNlCiAgICAgdm9pZCBqaXRBc3NlcnRJc0ludDMyKEdQ
UlJlZykgeyB9CiAgICAgdm9pZCBqaXRBc3NlcnRJc0pTSW50MzIoR1BSUmVnKSB7IH0KQEAgLTMw
Niw2ICszODUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBqaXRBc3NlcnRJc0NlbGwoR1BSUmVnKSB7
IH0KICAgICB2b2lkIGppdEFzc2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCkgeyB9CiAgICAgdm9pZCBq
aXRBc3NlcnRJc051bGwoR1BSUmVnKSB7IH0KKyAgICB2b2lkIGppdEFzc2VydFRhZ3NJblBsYWNl
KCkgeyB9CisgICAgdm9pZCBqaXRBc3NlcnRBcmd1bWVudENvdW50U2FuZSgpIHsgfQogI2VuZGlm
CiAKICAgICAvLyBUaGVzZSBtZXRob2RzIGNvbnZlcnQgYmV0d2VlbiBkb3VibGVzLCBhbmQgZG91
YmxlcyBib3hlZCBhbmQgSlNWYWx1ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhl
bHBlcnMuaAppbmRleCA4MzY1NzNiZTFkZjgwNzkyZmU4MzAwYmI1MDA3MmY5NmEzMmE0MTkwLi5k
NGE3NWVjYTIxNjgyNTdlZmJmNTA4NjhkZmE2ZjkzYjAyN2U1YTRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTk1LDYgKzk1LDEzIEBAIHB1YmxpYzoKICAg
ICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOwogICAgIH0KICAgICAKKyAgICBBTFdBWVNfSU5M
SU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoVHJ1c3RlZEltbVB0ciBhcmcxLCBHUFJSZWcgYXJnMikK
KyAgICB7CisgICAgICAgIHJlc2V0Q2FsbEFyZ3VtZW50cygpOworICAgICAgICBhZGRDYWxsQXJn
dW1lbnQoYXJnMSk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcyKTsKKyAgICB9CisgICAg
CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzKEdQUlJlZyBhcmcxLCBHUFJS
ZWcgYXJnMiwgR1BSUmVnIGFyZzMpCiAgICAgewogICAgICAgICByZXNldENhbGxBcmd1bWVudHMo
KTsKQEAgLTkzOSw2ICs5NDYsMTIgQEAgcHVibGljOgogICAgICAgICBtb3ZlKGFyZzEsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVw
QXJndW1lbnRzKFRydXN0ZWRJbW1QdHIgYXJnMSwgR1BSUmVnIGFyZzIpCisgICAgeworICAgICAg
ICBtb3ZlKGFyZzIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIG1vdmUoYXJnMSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICB9CisgICAgCiAgICAgQUxXQVlTX0lOTElORSB2
b2lkIHNldHVwQXJndW1lbnRzKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKICAgICB7CiAgICAg
ICAgIHNldHVwVHdvU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIwLCBHUFJJbmZvOjph
cmd1bWVudEdQUjE+KGFyZzEsIGFyZzIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAppbmRleCAwMWJlN2MxYWFlZDYxMzc1MGQ3ODljZmVmZTlh
MjkwMzAxNGNiZmNhLi41NWY5ZTc3NDY0YTAwOTEzYmYyOTI3MGNmYzFiYjZlOTU0NzQwY2MyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaApA
QCAtNzgsMjEgKzc4LDYgQEAgdm9pZCByZWxlYXNlRXhlY3V0YWJsZU1lbW9yeShWTSYpOwogCiBz
dGF0aWMgY29uc3QgdW5zaWduZWQgaml0QWxsb2NhdGlvbkdyYW51bGUgPSAzMjsKIAotaW5saW5l
IHNpemVfdCByb3VuZFVwQWxsb2NhdGlvblNpemUoc2l6ZV90IHJlcXVlc3QsIHNpemVfdCBncmFu
dWxhcml0eSkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVCgoc3RkOjpudW1lcmljX2xpbWl0czxzaXpl
X3Q+OjptYXgoKSAtIGdyYW51bGFyaXR5KSA+IHJlcXVlc3QpOwotICAgIAotICAgIC8vIFJvdW5k
IHVwIHRvIG5leHQgcGFnZSBib3VuZGFyeQotICAgIHNpemVfdCBzaXplID0gcmVxdWVzdCArIChn
cmFudWxhcml0eSAtIDEpOwotICAgIHNpemUgPSBzaXplICYgfihncmFudWxhcml0eSAtIDEpOwot
ICAgIEFTU0VSVChzaXplID49IHJlcXVlc3QpOwotICAgIHJldHVybiBzaXplOwotfQotCi19Ci0K
LW5hbWVzcGFjZSBKU0MgewotCiB0eXBlZGVmIFdURjo6TWV0YUFsbG9jYXRvckhhbmRsZSBFeGVj
dXRhYmxlTWVtb3J5SGFuZGxlOwogCiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcAppbmRleCBjMzUwOGIwMWQ3MDQ0MGQ5OWIzMjE3MTY3NzgzNGI0M2FjODA4
YzU4Li4yODYxNzQ0YTA1ZmFkMTk1YzYyNzVhYTQwMTUwZjM0YmQ3Zjg2ZGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiBKU0M6Ok1hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uOjpTU0UyQ2hlY2tTdGF0ZSBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpz
X3NzZTJDaGVja1N0YXRlID0gTm90Q2hlY2tlZFNTRTI7CiAjZW5kaWYKIAorI2luY2x1ZGUgIkFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5j
bHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKQEAgLTQy
LDExICs0MywxMyBAQCBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpTU0UyQ2hlY2tTdGF0
ZSBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzX3NzZQogI2luY2x1ZGUgIkpTQXJyYXku
aCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2lu
Y2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBl
LmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgi
CisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhp
Y2FsbHlSYW5kb21OdW1iZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTk4LDYgKzEw
MSw3IEBAIHZvaWQgSklUOjplbWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjaygpCiAgICAgQVNTRVJU
KCFtX2J5dGVjb2RlT2Zmc2V0KTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk9wdGltaXpl
LCBtX2J5dGVjb2RlT2Zmc2V0KTsKICAgICBza2lwT3B0aW1pemUuYXBwZW5kKGJyYW5jaFRlc3RQ
dHIoWmVybywgcmV0dXJuVmFsdWVHUFIpKTsKKyAgICBtb3ZlKHJldHVyblZhbHVlR1BSMiwgc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIGp1bXAocmV0dXJuVmFsdWVHUFIpOwogICAgIHNraXBP
cHRpbWl6ZS5saW5rKHRoaXMpOwogfQpAQCAtMTI4LDYgKzEzMiw5IEBAIHZvaWQgSklUOjplbWl0
RW50ZXJPcHRpbWl6YXRpb25DaGVjaygpCiAKIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5Q
YXNzKCkKIHsKKyAgICBqaXRBc3NlcnRUYWdzSW5QbGFjZSgpOworICAgIGppdEFzc2VydEFyZ3Vt
ZW50Q291bnRTYW5lKCk7CisgICAgCiAgICAgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uc0JlZ2lu
ID0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgdW5zaWduZWQgaW5z
dHJ1Y3Rpb25Db3VudCA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5zaXplKCk7CiAKQEAg
LTQ5Niw4ICs1MDMsNyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJ
VENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKICAgICBpZiAobV9yYW5kb21HZW5lcmF0b3IuZ2V0
VWludDMyKCkgJiAxKQogICAgICAgICBub3AoKTsKIAotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVz
c0FmdGVyQ2FsbChyZWdUMik7Ci0gICAgZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIo
cmVnVDIpOworICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgZW1pdFB1dEltbWVkaWF0
ZVRvQ2FsbEZyYW1lSGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0YWNrOjpDb2RlQmxvY2spOwogCiAg
ICAgTGFiZWwgYmVnaW5MYWJlbCh0aGlzKTsKQEAgLTUwNyw3ICs1MTMsNyBAQCBDb21waWxhdGlv
blJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkK
ICAgICBzYW1wbGVJbnN0cnVjdGlvbihtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4o
KSk7CiAjZW5kaWYKIAotICAgIEp1bXAgc3RhY2tDaGVjazsKKyAgICBKdW1wIHN0YWNrT3ZlcmZs
b3c7CiAgICAgaWYgKG1fY29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSkgewog
ICAgICAgICBBU1NFUlQobV9ieXRlY29kZU9mZnNldCA9PSAodW5zaWduZWQpLTEpOwogICAgICAg
ICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CkBAIC01MjcsMTIgKzUzMywxMyBAQCBDb21w
aWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVm
Zm9ydCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGFkZFB0cihUcnVzdGVk
SW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZnJhbWVSZWdpc3RlckNvdW50Rm9yKG1fY29k
ZUJsb2NrKSkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIs
IHJlZ1QxKTsKLSAgICAgICAgc3RhY2tDaGVjayA9IGJyYW5jaFB0cihBYm92ZSwgQWJzb2x1dGVB
ZGRyZXNzKG1fdm0tPmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwgcmVnVDEpOworICAgICAgICBh
ZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBz
aXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QxKTsKKyAgICAgICAgc3Rh
Y2tPdmVyZmxvdyA9IGJyYW5jaFB0cihBYm92ZSwgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmFkZHJl
c3NPZkpTU3RhY2tMaW1pdCgpKSwgcmVnVDEpOwogICAgIH0KIAotICAgIExhYmVsIGZ1bmN0aW9u
Qm9keSA9IGxhYmVsKCk7Ci0gICAgCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50
ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJl
Z2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGln
bm1lbnQoKTsKKwogICAgIHByaXZhdGVDb21waWxlTWFpblBhc3MoKTsKICAgICBwcml2YXRlQ29t
cGlsZUxpbmtQYXNzKCk7CiAgICAgcHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKTsKQEAgLTU0Miwx
OCArNTQ5LDE1IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29t
cGlsYXRpb25FZmZvcnQgZWZmb3J0KQogCiAgICAgTGFiZWwgYXJpdHlDaGVjazsKICAgICBpZiAo
bV9jb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKSB7Ci0gICAgICAgIHN0YWNr
Q2hlY2subGluayh0aGlzKTsKKyAgICAgICAgc3RhY2tPdmVyZmxvdy5saW5rKHRoaXMpOwogICAg
ICAgICBtX2J5dGVjb2RlT2Zmc2V0ID0gMDsKLSAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhDYWxs
RnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvblN0YWNrQ2hlY2ssIG1fY29kZUJsb2Nr
KTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgIG1fYnl0ZWNvZGVPZmZzZXQgPSAodW5zaWduZWQp
LTE7IC8vIFJlc2V0IHRoaXMsIGluIG9yZGVyIHRvIGd1YXJkIGl0cyB1c2Ugd2l0aCBBU1NFUlRz
LgotI2VuZGlmCi0gICAgICAgIGp1bXAoZnVuY3Rpb25Cb2R5KTsKKyAgICAgICAgaWYgKG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0z
MigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CisgICAgICAgIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihv
cGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvciwgbV9jb2RlQmxvY2spOwogCiAgICAgICAg
IGFyaXR5Q2hlY2sgPSBsYWJlbCgpOwogICAgICAgICBzdG9yZTgoVHJ1c3RlZEltbTMyKDApLCAm
bV9jb2RlQmxvY2stPm1fc2hvdWxkQWx3YXlzQmVJbmxpbmVkKTsKLSAgICAgICAgcHJlc2VydmVS
ZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QyKTsKLSAgICAgICAgZW1pdFB1dFJldHVyblBDVG9D
YWxsRnJhbWVIZWFkZXIocmVnVDIpOworICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwog
ICAgICAgICBlbWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJhbWVIZWFkZXIobV9jb2RlQmxvY2ssIEpT
U3RhY2s6OkNvZGVCbG9jayk7CiAKICAgICAgICAgbG9hZDMyKHBheWxvYWRGb3IoSlNTdGFjazo6
QXJndW1lbnRDb3VudCksIHJlZ1QxKTsKQEAgLTU2MSwxMCArNTY1LDE2IEBAIENvbXBpbGF0aW9u
UmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQog
CiAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXQgPSAwOwogCisgICAgICAgIGlmIChtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAg
ICAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24obV9jb2Rl
QmxvY2stPm1faXNDb25zdHJ1Y3RvciA/IG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2sgOiBv
cGVyYXRpb25DYWxsQXJpdHlDaGVjayk7CisgICAgICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIGlmIChy
ZXR1cm5WYWx1ZUdQUiAhPSByZWdUMCkKICAgICAgICAgICAgIG1vdmUocmV0dXJuVmFsdWVHUFIs
IHJlZ1QwKTsKICAgICAgICAgYnJhbmNoVGVzdDMyKFplcm8sIHJlZ1QwKS5saW5rVG8oYmVnaW5M
YWJlbCwgdGhpcyk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihtX3ZtLT5hcml0eUNoZWNr
RmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENzRm9yKCptX3ZtLCBtX2NvZGVCbG9jay0+bnVtUGFy
YW1ldGVycygpKSksIHJlZ1Q1KTsKKyAgICAgICAgbG9hZFB0cihCYXNlSW5kZXgocmVnVDUsIHJl
Z1QwLCB0aW1lc1B0cigpKSwgcmVnVDUpOwogICAgICAgICBlbWl0TmFrZWRDYWxsKG1fdm0tPmdl
dENUSVN0dWIoYXJpdHlGaXh1cCkuY29kZSgpKTsKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKQEAg
LTY1MywyMCArNjYzLDEyIEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUo
SklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQogICAgICAgICBpbmZvLmNhbGxlZUdQUiA9IHJl
Z1QwOwogICAgIH0KIAotI2lmIEVOQUJMRShERkdfSklUKSB8fCBFTkFCTEUoTExJTlQpCi0gICAg
aWYgKGNhbkJlT3B0aW1pemVkT3JJbmxpbmVkKCkKLSNpZiBFTkFCTEUoTExJTlQpCi0gICAgICAg
IHx8IHRydWUKLSNlbmRpZgotICAgICAgICApIHsKLSAgICAgICAgQ29tcGFjdEpJVENvZGVNYXA6
OkVuY29kZXIgaml0Q29kZU1hcEVuY29kZXI7Ci0gICAgICAgIGZvciAodW5zaWduZWQgYnl0ZWNv
ZGVPZmZzZXQgPSAwOyBieXRlY29kZU9mZnNldCA8IG1fbGFiZWxzLnNpemUoKTsgKytieXRlY29k
ZU9mZnNldCkgewotICAgICAgICAgICAgaWYgKG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XS5pc1Nl
dCgpKQotICAgICAgICAgICAgICAgIGppdENvZGVNYXBFbmNvZGVyLmFwcGVuZChieXRlY29kZU9m
ZnNldCwgcGF0Y2hCdWZmZXIub2Zmc2V0T2YobV9sYWJlbHNbYnl0ZWNvZGVPZmZzZXRdKSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgbV9jb2RlQmxvY2stPnNldEpJVENvZGVNYXAoaml0Q29kZU1hcEVu
Y29kZXIuZmluaXNoKCkpOworICAgIENvbXBhY3RKSVRDb2RlTWFwOjpFbmNvZGVyIGppdENvZGVN
YXBFbmNvZGVyOworICAgIGZvciAodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSAwOyBieXRlY29k
ZU9mZnNldCA8IG1fbGFiZWxzLnNpemUoKTsgKytieXRlY29kZU9mZnNldCkgeworICAgICAgICBp
ZiAobV9sYWJlbHNbYnl0ZWNvZGVPZmZzZXRdLmlzU2V0KCkpCisgICAgICAgICAgICBqaXRDb2Rl
TWFwRW5jb2Rlci5hcHBlbmQoYnl0ZWNvZGVPZmZzZXQsIHBhdGNoQnVmZmVyLm9mZnNldE9mKG1f
bGFiZWxzW2J5dGVjb2RlT2Zmc2V0XSkpOwogICAgIH0KLSNlbmRpZgorICAgIG1fY29kZUJsb2Nr
LT5zZXRKSVRDb2RlTWFwKGppdENvZGVNYXBFbmNvZGVyLmZpbmlzaCgpKTsKIAogICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVjazsKICAgICBpZiAobV9jb2RlQmxvY2stPmNv
ZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKQpAQCAtNjg3LDggKzY4OSw3IEBAIENvbXBpbGF0aW9u
UmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQog
ICAgIAogICAgIG1fY29kZUJsb2NrLT5zaHJpbmtUb0ZpdChDb2RlQmxvY2s6OkxhdGVTaHJpbmsp
OwogICAgIG1fY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICBhZG9wdFJlZihuZXcgRGly
ZWN0SklUQ29kZShyZXN1bHQsIEpJVENvZGU6OkJhc2VsaW5lSklUKSksCi0gICAgICAgIHdpdGhB
cml0eUNoZWNrKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUocmVzdWx0LCB3
aXRoQXJpdHlDaGVjaywgSklUQ29kZTo6QmFzZWxpbmVKSVQpKSk7CiAgICAgCiAjaWYgRU5BQkxF
KEpJVF9WRVJCT1NFKQogICAgIGRhdGFMb2dGKCJKSVQgZ2VuZXJhdGVkIGNvZGUgZm9yICVwIGF0
IFslcCwgJXApLlxuIiwgbV9jb2RlQmxvY2ssIHJlc3VsdC5leGVjdXRhYmxlTWVtb3J5KCktPnN0
YXJ0KCksIHJlc3VsdC5leGVjdXRhYmxlTWVtb3J5KCktPmVuZCgpKTsKQEAgLTY5Nyw0MiArNjk4
LDYgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlv
bkVmZm9ydCBlZmZvcnQpCiAgICAgcmV0dXJuIENvbXBpbGF0aW9uU3VjY2Vzc2Z1bDsKIH0KIAot
dm9pZCBKSVQ6OmxpbmtGb3IoRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIENv
ZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywgSklU
OjpDb2RlUHRyIGNvZGUsIENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvLCBWTSogdm0sIENvZGVT
cGVjaWFsaXphdGlvbktpbmQga2luZCkKLXsKLSAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZm
ZXIoY2FsbGVyQ29kZUJsb2NrKTsKLQotICAgIEFTU0VSVCghY2FsbExpbmtJbmZvLT5pc0xpbmtl
ZCgpKTsKLSAgICBjYWxsTGlua0luZm8tPmNhbGxlZS5zZXQoKnZtLCBjYWxsTGlua0luZm8tPmhv
dFBhdGhCZWdpbiwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVlKTsK
LSAgICBjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLnNldCgqdm0sIGNhbGxlckNvZGVCbG9j
ay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmso
Y2FsbExpbmtJbmZvLT5ob3RQYXRoT3RoZXIsIGNvZGUpOwotCi0gICAgaWYgKGNhbGxlZUNvZGVC
bG9jaykKLSAgICAgICAgY2FsbGVlQ29kZUJsb2NrLT5saW5rSW5jb21pbmdDYWxsKGV4ZWMsIGNh
bGxMaW5rSW5mbyk7Ci0KLSAgICAvLyBQYXRjaCB0aGUgc2xvdyBwYXRjaCBzbyB3ZSBkbyBub3Qg
Y29udGludWUgdG8gdHJ5IHRvIGxpbmsuCi0gICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpIHsK
LSAgICAgICAgQVNTRVJUKGNhbGxMaW5rSW5mby0+Y2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpD
YWxsCi0gICAgICAgICAgICAgICB8fCBjYWxsTGlua0luZm8tPmNhbGxUeXBlID09IENhbGxMaW5r
SW5mbzo6Q2FsbFZhcmFyZ3MpOwotICAgICAgICBpZiAoY2FsbExpbmtJbmZvLT5jYWxsVHlwZSA9
PSBDYWxsTGlua0luZm86OkNhbGwpIHsKLSAgICAgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5r
KGNhbGxMaW5rSW5mby0+Y2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1YihsaW5rQ2xv
c3VyZUNhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgfQotCi0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby0+Y2Fs
bFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9y
KS5jb2RlKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQVNTRVJUKGtpbmQgPT0g
Q29kZUZvckNvbnN0cnVjdCk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZv
LT5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRDVElTdHViKHZpcnR1YWxDb25zdHJ1Y3RUaHVu
a0dlbmVyYXRvcikuY29kZSgpKTsKLX0KLQotdm9pZCBKSVQ6OmxpbmtTbG93Q2FsbChDb2RlQmxv
Y2sqIGNhbGxlckNvZGVCbG9jaywgQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8pCi17Ci0gICAg
UmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNhbGxlckNvZGVCbG9jayk7Ci0KLSAgICByZXBh
dGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiwgY2FsbGVy
Q29kZUJsb2NrLT52bSgpLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNv
ZGUoKSk7Ci19Ci0KIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkK
IHsKICAgICBpZiAobV9leGNlcHRpb25DaGVja3MuZW1wdHkoKSAmJiBtX2V4Y2VwdGlvbkNoZWNr
c1dpdGhDYWxsRnJhbWVSb2xsYmFjay5lbXB0eSgpKQpAQCAtNzQyLDcgKzcwNyw3IEBAIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKIAogICAgIGlmICghbV9leGNl
cHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2suZW1wdHkoKSkgewogICAgICAgICBtX2V4
Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFjay5saW5rKHRoaXMpOwotICAgICAgICBl
bWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CisgICAgICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIo
R1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICAgICAgZG9Mb29rdXAgPSBqdW1wKCk7CiAgICAg
fQogCkBAIC03NTAsMTkgKzcxNSwzMyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVFeGNlcHRp
b25IYW5kbGVycygpCiAgICAgICAgIG1fZXhjZXB0aW9uQ2hlY2tzLmxpbmsodGhpcyk7CiAgICAg
CiAgICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQgb25lIGFyZ3VtZW50LCB0
aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgotICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKIAogICAgIGlmIChkb0xvb2t1cC5p
c1NldCgpKQogICAgICAgICBkb0xvb2t1cC5saW5rKHRoaXMpOwogCisgICAgbW92ZShUcnVzdGVk
SW1tUHRyKHZtKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworCiAjaWYgQ1BVKFg4NikKICAg
ICAvLyBGSVhNRTogc2hvdWxkIHVzZSB0aGUgY2FsbCBhYnN0cmFjdGlvbiwgYnV0IHRoaXMgaXMg
Y3VycmVudGx5IGluIHRoZSBTcGVjdWxhdGl2ZUpJVCBsYXllciEKICAgICBwb2tlKEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CisgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjEsIDEpOwogI2Vu
ZGlmCiAgICAgbV9jYWxscy5hcHBlbmQoQ2FsbFJlY29yZChjYWxsKCksICh1bnNpZ25lZCktMSwg
RnVuY3Rpb25QdHIobG9va3VwRXhjZXB0aW9uSGFuZGxlcikudmFsdWUoKSkpOwogICAgIGp1bXBU
b0V4Y2VwdGlvbkhhbmRsZXIoKTsKIH0KIAordW5zaWduZWQgSklUOjpmcmFtZVJlZ2lzdGVyQ291
bnRGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCit7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSA9PSBXVEY6OnJvdW5kVXBU
b011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMpKSk7CisKKyAgICByZXR1cm4gcm91
bmRMb2NhbFJlZ2lzdGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZzZXQoY29kZUJsb2NrLT5tX251
bUNhbGxlZVJlZ2lzdGVycyArIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5SZWdpc3Rl
cnMpOworfQorCitpbnQgSklUOjpzdGFja1BvaW50ZXJPZmZzZXRGb3IoQ29kZUJsb2NrKiBjb2Rl
QmxvY2spCit7CisgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lUmVnaXN0
ZXJDb3VudEZvcihjb2RlQmxvY2spIC0gMSkub2Zmc2V0KCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCAyOTgwNzU3MDYxYjZjOWJmZDJlN2Iz
YjE1MzUzODMzODJlYzY2YjZjLi5mZTg1MDNlNzk0ODhjYjdkYWI4ZjhkNGFjNDM2MDJiMzA0YzM1
MmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTI0MSwxMyArMjQxLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gaml0LnByaXZhdGVDb21waWxlQ1RJTmF0aXZl
Q2FsbCh2bSwgZnVuYyk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgdm9pZCBsaW5rRm9y
KEV4ZWNTdGF0ZSosIEpTRnVuY3Rpb24qIGNhbGxlZSwgQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxv
Y2ssIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBDb2RlUHRyLCBDYWxsTGlua0luZm8qLCBW
TSosIENvZGVTcGVjaWFsaXphdGlvbktpbmQpOwotICAgICAgICBzdGF0aWMgdm9pZCBsaW5rU2xv
d0NhbGwoQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ssIENhbGxMaW5rSW5mbyopOwotICAgICAg
ICAKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxv
Y2sqIGNvZGVCbG9jaykKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGNvZGVCbG9jay0+
bV9udW1DYWxsZWVSZWdpc3RlcnM7Ci0gICAgICAgIH0KKyAgICAgICAgc3RhdGljIHVuc2lnbmVk
IGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqKTsKKyAgICAgICAgc3RhdGljIGludCBz
dGFja1BvaW50ZXJPZmZzZXRGb3IoQ29kZUJsb2NrKik7CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBKSVQoVk0qLCBDb2RlQmxvY2sqID0gMCk7CkBAIC02OTcsMTEgKzY5MiwxMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihXaXRo
UHJvZmlsZVRhZywgSl9KSVRPcGVyYXRpb25fRVBjLCBpbnQsIEluc3RydWN0aW9uKik7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVos
IGludCwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oUF9KSVRPcGVyYXRpb25fRUpTLCBHUFJSZWcsIHNpemVfdCk7Ci0gICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oUF9KSVRPcGVyYXRpb25fRVosIGludDMyX3QpOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9u
X0VDQywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQpOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKSiwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRU9Kc3MsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQp
OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNwcnRfSklUT3Bl
cmF0aW9uX0VaLCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQywgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNDLCBSZWdp
c3RlcklELCBSZWdpc3RlcklEKTsKQEAgLTcyNiw2ICs3MjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FUGMsIEluc3RydWN0aW9uKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVosIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24o
Sl9KSVRPcGVyYXRpb25fRSk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb25Ob0V4Y2VwdGlvbkNoZWNrKEpfSklUT3BlcmF0aW9uX0VFLCBSZWdpc3RlcklEKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xs
YmFja09uRXhjZXB0aW9uKFZfSklUT3BlcmF0aW9uX0VDYiwgQ29kZUJsb2NrKik7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tP
bkV4Y2VwdGlvbihaX0pJVE9wZXJhdGlvbl9FKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKaW5kZXggOTBjMmU0ZmI5MmYwOWQ4MzJlZDNh
OTZmZWNiZjI3MzQwODc3Y2FlZC4uYWVmNjcyYjFjZjAzYTEzZjkzZGVhNTM1ZjM0ZmQwYmY2Yjk2
NzcyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCkBAIC0zOSw2ICszOSw3
IEBACiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIK
ICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgog
I2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0
cmVhbS5oPgogCkBAIC03MSwxMCArNzIsMTQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVMb2FkVmFyYXJn
cyhJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiAgICAgICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1l
SGVhZGVyMzIoSlNTdGFjazo6QXJndW1lbnRDb3VudCwgcmVnVDApOwogICAgICAgICBzbG93Q2Fz
ZS5hcHBlbmQoYnJhbmNoMzIoQWJvdmUsIHJlZ1QwLCBUcnVzdGVkSW1tMzIoQXJndW1lbnRzOjpN
YXhBcmd1bWVudHMgKyAxKSkpOwogICAgICAgICAvLyByZWdUMDogYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMKLQogICAgICAgICBtb3ZlKHJlZ1QwLCByZWdUMSk7CisgICAgICAgIGFkZDY0KFRy
dXN0ZWRJbW0zMigtZmlyc3RGcmVlUmVnaXN0ZXIgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJT
aXplKSwgcmVnVDEpOworICAgICAgICAvLyByZWdUMSBub3cgaGFzIHRoZSByZXF1aXJlZCBmcmFt
ZSBzaXplIGluIFJlZ2lzdGVyIHVuaXRzCisgICAgICAgIC8vIFJvdW5kIHJlZ1QxIHRvIG5leHQg
bXVsdGlwbGUgb2Ygc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKQorICAgICAgICBhZGQ2NChUcnVz
dGVkSW1tMzIoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSAtIDEpLCByZWdUMSk7CisgICAgICAg
IGFuZDY0KFRydXN0ZWRJbW0zMih+KHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSksIHJl
Z1QxKTsKKwogICAgICAgICBuZWc2NChyZWdUMSk7Ci0gICAgICAgIGFkZDY0KFRydXN0ZWRJbW0z
MihmaXJzdEZyZWVSZWdpc3RlciAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCByZWdU
MSk7CiAgICAgICAgIGxzaGlmdDY0KFRydXN0ZWRJbW0zMigzKSwgcmVnVDEpOwogICAgICAgICBh
ZGRQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QxKTsKICAgICAgICAgLy8gcmVnVDE6IG5ld0Nh
bGxGcmFtZQpAQCAtMTA1LDcgKzExMCw4IEBAIHZvaWQgSklUOjpjb21waWxlTG9hZFZhcmFyZ3Mo
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICBzbG93Q2FzZS5saW5rKHRoaXMpOwog
CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihhcmd1bWVudHMsIHJlZ1QxKTsKLSAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvblNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncywgcmVnVDEsIGZp
cnN0RnJlZVJlZ2lzdGVyKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblNpemVGcmFtZUZv
clZhcmFyZ3MsIHJlZ1QxLCBmaXJzdEZyZWVSZWdpc3Rlcik7CisgICAgbW92ZShyZXR1cm5WYWx1
ZUdQUiwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIo
dGhpc1ZhbHVlLCByZWdUMSk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihhcmd1bWVudHMs
IHJlZ1QyKTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCByZXR1cm5W
YWx1ZUdQUiwgcmVnVDEsIHJlZ1QyKTsKQEAgLTExMywxMyArMTE5LDI0IEBAIHZvaWQgSklUOjpj
b21waWxlTG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogCiAgICAgaWYgKGNh
bk9wdGltaXplKQogICAgICAgICBlbmQubGluayh0aGlzKTsKKyAgICAKKyAgICBhZGRQdHIoVHJ1
c3RlZEltbTMyKHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QxLCBzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CiB9CiAKIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2YWwoSW5zdHJ1Y3Rpb24qIGlu
c3RydWN0aW9uKQogewotICAgIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4
Y2VwdGlvbihvcGVyYXRpb25DYWxsRXZhbCk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtc3Rh
dGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKSwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhv
cGVyYXRpb25DYWxsRXZhbCwgcmVnVDEpOworCisgICAgSnVtcCBub0V4Y2VwdGlvbiA9IGVtaXRF
eGNlcHRpb25DaGVjayhJbnZlcnRlZEV4Y2VwdGlvbkNoZWNrKTsKKyAgICBhZGRQdHIoVHJ1c3Rl
ZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0
ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgICAgCisgICAg
ZXhjZXB0aW9uQ2hlY2soanVtcCgpKTsKKworICAgIG5vRXhjZXB0aW9uLmxpbmsodGhpcyk7CiAg
ICAgYWRkU2xvd0Nhc2UoYnJhbmNoNjQoRXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tNjQoSlNWYWx1
ZTo6ZW5jb2RlKEpTVmFsdWUoKSkpKSk7Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxG
cmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7CisKKyAgICBhZGRQdHIoVHJ1c3RlZElt
bTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIp
KSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0
YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2Nr
KTsKICAgICAKQEAgLTEzMCw4ICsxNDcsMTAgQEAgdm9pZCBKSVQ6OmNvbXBpbGVDYWxsRXZhbFNs
b3dDYXNlKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnkKIHsK
ICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKLSAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRl
cjY0KEpTU3RhY2s6OkNhbGxlZSwgcmVnVDApOworICAgIGxvYWQ2NChBZGRyZXNzKHN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6Q2FsbGVlIC0gc2l6ZW9m
KENhbGxlckZyYW1lQW5kUEMpKSwgcmVnVDApOwogICAgIGVtaXROYWtlZENhbGwobV92bS0+Z2V0
Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIGFkZFB0cihU
cnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihS
ZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAg
IGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKICAgICBzYW1wbGVDb2RlQmxvY2sobV9j
b2RlQmxvY2spOwogICAgIApAQCAtMTcwLDE4ICsxODksMTYgQEAgdm9pZCBKSVQ6OmNvbXBpbGVP
cENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgdW5zaWdu
ZWQgY2EKICAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsKICAgICAgICAgfQogICAgIAotICAg
ICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lzdGVy
KSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZElt
bTMyKGFyZ0NvdW50KSwgQWRkcmVzcyhyZWdUMSwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0
YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgfSAvLyByZWdUMSBob2xk
cyBuZXdDYWxsRnJhbWUgd2l0aCBBcmd1bWVudENvdW50IGluaXRpYWxpemVkLgorICAgICAgICBh
ZGRQdHIoVHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lzdGVyKSArIHNp
emVvZihDYWxsZXJGcmFtZUFuZFBDKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CisgICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGFyZ0NvdW50KSwgQWRkcmVz
cyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19j
YXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxl
ckZyYW1lQW5kUEMpKSk7CisgICAgfSAvLyBTUCBob2xkcyBuZXdDYWxsRnJhbWUgKyBzaXplb2Yo
Q2FsbGVyRnJhbWVBbmRQQyksIHdpdGggQXJndW1lbnRDb3VudCBpbml0aWFsaXplZC4KICAgICAK
ICAgICB1aW50MzJfdCBieXRlY29kZU9mZnNldCA9IGluc3RydWN0aW9uIC0gbV9jb2RlQmxvY2st
Pmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2Fs
bEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNCeXRlY29kZU9mZnNldChieXRlY29kZU9mZnNldCk7
Ci0gICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQWRkcmVzcyhjYWxsRnJh
bWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6
ZW9mKFJlZ2lzdGVyKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnRhZykpKTsKKyAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCBB
ZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc3RhdGlj
X2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFRhZ09mZnNldCkpOwogICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXIoY2FsbGVlLCByZWdUMCk7IC8vIHJlZ1QwIGhvbGRzIGNhbGxlZS4KIAot
ICAgIHN0b3JlNjQoY2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MocmVnVDEsIENhbGxGcmFtZTo6
Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwotICAgIHN0b3JlNjQocmVnVDAsIEFkZHJlc3MocmVnVDEs
IEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsK
LSAgICBtb3ZlKHJlZ1QxLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgc3RvcmU2NChyZWdUMCwg
QWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6Q2FsbGVlICogc3RhdGljX2Nh
c3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOwog
CiAgICAgaWYgKG9wY29kZUlEID09IG9wX2NhbGxfZXZhbCkgewogICAgICAgICBjb21waWxlQ2Fs
bEV2YWwoaW5zdHJ1Y3Rpb24pOwpAQCAtMTk4LDEwICsyMTUsMTQgQEAgdm9pZCBKSVQ6OmNvbXBp
bGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgdW5z
aWduZWQgY2EKICAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5r
SW5mb0luZGV4XS5jYWxsVHlwZSA9IENhbGxMaW5rSW5mbzo6Y2FsbFR5cGVGb3Iob3Bjb2RlSUQp
OwogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5k
ZXhdLmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlT2Zmc2V0OwogCi0gICAgbG9hZFB0cihBZGRy
ZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZSkpLCByZWdUMSk7
Ci0gICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWlu
KTsKKyAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9u
LCBtX3Njb3BlKSksIHJlZ1QyKTsKKyAgICBzdG9yZTY0KHJlZ1QyLCBBZGRyZXNzKE1hY3JvQXNz
ZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6U2NvcGVDaGFpbiAqIHNpemVv
ZihSZWdpc3RlcikgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKwogICAgIG1fY2FsbFN0
cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmhvdFBhdGhPdGhl
ciA9IGVtaXROYWtlZENhbGwoKTsKIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2lu
dGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVS
ZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KCk7CisKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIAogICAg
IGVtaXRQdXRDYWxsUmVzdWx0KGluc3RydWN0aW9uKTsKQEAgLTIxNiw3ICsyMzcsMTQgQEAgdm9p
ZCBKSVQ6OmNvbXBpbGVPcENhbGxTbG93Q2FzZShPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rp
b24qIGluc3RydWN0aW9uLCBWZWMKIAogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKIAotICAgIG1f
Y2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxS
ZXR1cm5Mb2NhdGlvbiA9IGVtaXROYWtlZENhbGwob3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8g
bV92bS0+Z2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpLmNvZGUoKSA6IG1f
dm0tPmdldENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICBUaHVu
a0dlbmVyYXRvciBnZW5lcmF0b3IgPSBsaW5rVGh1bmtHZW5lcmF0b3JGb3IoCisgICAgICAgIG9w
Y29kZUlEID09IG9wX2NvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwK
KyAgICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CisgICAgCisgICAgbV9j
YWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uY2FsbFJl
dHVybkxvY2F0aW9uID0gZW1pdE5ha2VkQ2FsbChtX3ZtLT5nZXRDVElTdHViKGdlbmVyYXRvciku
Y29kZSgpKTsKKworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9y
KG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAK
ICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIApAQCAtMjI2LDcgKzI1NCw3
IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UoT3Bjb2RlSUQgb3Bjb2RlSUQsIElu
c3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgVmVjCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDbG9z
dXJlQ2FsbChDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2Rl
QmxvY2ssIFN0cnVjdHVyZSogZXhwZWN0ZWRTdHJ1Y3R1cmUsIEV4ZWN1dGFibGVCYXNlKiBleHBl
Y3RlZEV4ZWN1dGFibGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyKQogewogICAgIEp1
bXBMaXN0IHNsb3dDYXNlczsKLSAgICAKKwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVz
dFB0cihOb25aZXJvLCByZWdUMCwgdGFnTWFza1JlZ2lzdGVyKSk7CiAgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJl
T2Zmc2V0KCkpLCBUcnVzdGVkSW1tUHRyKGV4cGVjdGVkU3RydWN0dXJlKSkpOwogICAgIHNsb3dD
YXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0Z1bmN0aW9u
OjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFRydXN0ZWRJbW1QdHIoZXhwZWN0ZWRFeGVjdXRhYmxl
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCmluZGV4IDYw
ODYwMzhhMjY3YmUyOGM1ZTRiMzM1YTg2NzcxOTM5ZDdlNWQ0YjYuLjY5ZmEwZjBlNjRjNWRmMjMz
ZjZjOWNiNWFhZmYwODRjYWQ5YzJkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwzMl82NC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZXBh
dGNoQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5n
VG9vbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSA8d3RmL1N0cmlu
Z1ByaW50U3RyZWFtLmg+CiAKIApAQCAtNTYsMTAgKzU3LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
cmV0KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgdW5zaWduZWQgZHN0ID0g
Y3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKIAogICAgIGVtaXRMb2FkKGRzdCwgcmVn
VDEsIHJlZ1QwKTsKLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJl
Z1QyKTsKLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxG
cmFtZVJlZ2lzdGVyKTsKIAotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJl
Z1QyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTczLDIwICs3MywxNiBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0
KCkpLCByZWdUMik7CiAgICAgSnVtcCBub3RPYmplY3QgPSBlbWl0SnVtcElmTm90T2JqZWN0KHJl
Z1QyKTsKIAotICAgIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVnVDIp
OwotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1l
UmVnaXN0ZXIpOwotCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDIp
OworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisgICAgZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICByZXQoKTsKIAogICAgIG5vdEpTQ2VsbC5saW5rKHRoaXMpOwogICAgIG5v
dE9iamVjdC5saW5rKHRoaXMpOwogICAgIGVtaXRMb2FkKHRoaXNSZWcsIHJlZ1QxLCByZWdUMCk7
CiAKLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QyKTsKLSAg
ICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lz
dGVyKTsKLQotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QyKTsKKyAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTE1MSw4ICsxNDcsMTIgQEAgdm9pZCBKSVQ6OmNvbXBp
bGVMb2FkVmFyYXJncyhJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiAgICAgICAgIC8vIHJlZ1Qy
OiBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcwogCiAgICAgICAgIG1vdmUocmVnVDIsIHJlZ1Qz
KTsKKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtZmlyc3RGcmVlUmVnaXN0ZXIgKyBKU1N0
YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgcmVnVDMpOworICAgICAgICAvLyByZWdUMSBub3cg
aGFzIHRoZSByZXF1aXJlZCBmcmFtZSBzaXplIGluIFJlZ2lzdGVyIHVuaXRzCisgICAgICAgIC8v
IFJvdW5kIHJlZ1QxIHRvIG5leHQgbXVsdGlwbGUgb2Ygc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMo
KQorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkg
LSAxKSwgcmVnVDMpOworICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbTMyKH4oc3RhY2tBbGlnbm1l
bnRSZWdpc3RlcnMoKSAtIDEpKSwgcmVnVDMpOwogICAgICAgICBuZWczMihyZWdUMyk7Ci0gICAg
ICAgIGFkZDMyKFRydXN0ZWRJbW0zMihmaXJzdEZyZWVSZWdpc3RlciAtIEpTU3RhY2s6OkNhbGxG
cmFtZUhlYWRlclNpemUpLCByZWdUMyk7CiAgICAgICAgIGxzaGlmdDMyKFRydXN0ZWRJbW0zMigz
KSwgcmVnVDMpOwogICAgICAgICBhZGRQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QzKTsKICAg
ICAgICAgLy8gcmVnVDM6IG5ld0NhbGxGcmFtZQpAQCAtMTg1LDIyICsxODUsMzQgQEAgdm9pZCBK
SVQ6OmNvbXBpbGVMb2FkVmFyYXJncyhJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiAgICAgICAg
IHNsb3dDYXNlLmxpbmsodGhpcyk7CiAKICAgICBlbWl0TG9hZChhcmd1bWVudHMsIHJlZ1QxLCBy
ZWdUMCk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TaXplQW5kQWxsb2NGcmFtZUZvclZh
cmFyZ3MsIHJlZ1QxLCByZWdUMCwgZmlyc3RGcmVlUmVnaXN0ZXIpOwotICAgIG1vdmUocmV0dXJu
VmFsdWVHUFIsIHJlZ1Q1KTsKLSAgICBlbWl0TG9hZCh0aGlzVmFsdWUsIHJlZ1QxLCByZWdUMCk7
CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCByZWdUMSwg
cmVnVDAsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKKyAgICBtb3ZlKHJldHVyblZhbHVlR1BSLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CisgICAgZW1pdExvYWQodGhpc1ZhbHVlLCByZWdUMSwgcmVnVDQp
OwogICAgIGVtaXRMb2FkKGFyZ3VtZW50cywgcmVnVDMsIHJlZ1QyKTsKLSAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCByZWdUNSwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVn
VDIpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHJldHVyblZhbHVl
R1BSLCByZWdUMSwgcmVnVDQsIHJlZ1QzLCByZWdUMik7CiAgICAgbW92ZShyZXR1cm5WYWx1ZUdQ
UiwgcmVnVDMpOwogCiAgICAgaWYgKGNhbk9wdGltaXplKQogICAgICAgICBlbmQubGluayh0aGlz
KTsKKworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwg
cmVnVDMsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIH0KIAogdm9pZCBKSVQ6OmNvbXBpbGVDYWxs
RXZhbChJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiB7Ci0gICAgY2FsbE9wZXJhdGlvbldpdGhD
YWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbkNhbGxFdmFsKTsKKyAgICBhZGRQ
dHIoVHJ1c3RlZEltbTMyKC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihDYWxsZXJGcmFt
ZUFuZFBDKSkpLCBzdGFja1BvaW50ZXJSZWdpc3RlciwgcmVnVDEpOworCisgICAgY2FsbE9wZXJh
dGlvbk5vRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uQ2FsbEV2YWwsIHJlZ1QxKTsKKworICAgIEp1
bXAgbm9FeGNlcHRpb24gPSBlbWl0RXhjZXB0aW9uQ2hlY2soSW52ZXJ0ZWRFeGNlcHRpb25DaGVj
ayk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2Rl
QmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CisgICAgZXhjZXB0aW9uQ2hlY2soanVtcCgpKTsKKworICAgIG5vRXhjZXB0
aW9uLmxpbmsodGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWwsIHJlZ1QxLCBU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpKTsKLSAgICBlbWl0R2V0Q2FsbGVy
RnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKKworICAgIGFk
ZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNp
emVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIp
OworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKICAgICBzYW1wbGVDb2RlQmxv
Y2sobV9jb2RlQmxvY2spOwogICAgIApAQCAtMjExLDggKzIyMywxMyBAQCB2b2lkIEpJVDo6Y29t
cGlsZUNhbGxFdmFsU2xvd0Nhc2UoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeQogewogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKIAorICAgIGxvYWRQdHIoQWRk
cmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OkNh
bGxlZSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QwKTsKKyAgICBsb2FkUHRyKEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpD
YWxsZWUgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMSk7CisKICAgICBlbWl0TG9h
ZChKU1N0YWNrOjpDYWxsZWUsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdE5ha2VkQ2FsbChtX3Zt
LT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgYWRk
UHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6
ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9j
ayhtX2NvZGVCbG9jayk7CiAgICAgCkBAIC0yNTEsMTggKzI2OCwxNyBAQCB2b2lkIEpJVDo6Y29t
cGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCB1
bnNpZ25lZCBjYQogICAgICAgICAgICAgZG9uZS5saW5rKHRoaXMpOwogICAgICAgICB9CiAgICAg
Ci0gICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIocmVnaXN0ZXJPZmZzZXQgKiBzaXplb2YoUmVn
aXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QzKTsKKyAgICAgICAgYWRkUHRyKFRydXN0
ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikgKyBzaXplb2YoQ2FsbGVy
RnJhbWVBbmRQQykpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwog
Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGFyZ0NvdW50KSwgcGF5bG9hZEZvcihKU1N0
YWNrOjpBcmd1bWVudENvdW50LCByZWdUMykpOwotICAgIH0gLy8gcmVnVDMgaG9sZHMgbmV3Q2Fs
bEZyYW1lIHdpdGggQXJndW1lbnRDb3VudCBpbml0aWFsaXplZC4KKyAgICAgICAgc3RvcmUzMihU
cnVzdGVkSW1tMzIoYXJnQ291bnQpLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0
YWNrOjpBcmd1bWVudENvdW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSAr
IFBheWxvYWRPZmZzZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKyAgICB9IC8vIFNQ
IGhvbGRzIG5ld0NhbGxGcmFtZSArIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSwgd2l0aCBBcmd1
bWVudENvdW50IGluaXRpYWxpemVkLgogICAgIAogICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9
IENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0ZWNvZGVJbnN0cnVjdGlvbihpbnN0cnVj
dGlvbik7CiAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgdGFnRm9yKEpT
U3RhY2s6OkFyZ3VtZW50Q291bnQsIGNhbGxGcmFtZVJlZ2lzdGVyKSk7CiAgICAgZW1pdExvYWQo
Y2FsbGVlLCByZWdUMSwgcmVnVDApOyAvLyByZWdUMSwgcmVnVDAgaG9sZHMgY2FsbGVlLgogCi0g
ICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MocmVnVDMsIENhbGxGcmFtZTo6
Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwotICAgIGVtaXRTdG9yZShKU1N0YWNrOjpDYWxsZWUsIHJl
Z1QxLCByZWdUMCwgcmVnVDMpOwotICAgIG1vdmUocmVnVDMsIGNhbGxGcmFtZVJlZ2lzdGVyKTsK
KyAgICBzdG9yZTMyKHJlZ1QwLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNr
OjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9m
ZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworICAgIHN0b3JlMzIocmVnVDEsIEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0
PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBUYWdPZmZzZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVB
bmRQQykpKTsKIAogICAgIGlmIChvcGNvZGVJRCA9PSBvcF9jYWxsX2V2YWwpIHsKICAgICAgICAg
Y29tcGlsZUNhbGxFdmFsKGluc3RydWN0aW9uKTsKQEAgLTI4MSwxMCArMjk3LDE2IEBAIHZvaWQg
SklUOjpjb21waWxlT3BDYWxsKE9wY29kZUlEIG9wY29kZUlELCBJbnN0cnVjdGlvbiogaW5zdHJ1
Y3Rpb24sIHVuc2lnbmVkIGNhCiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5m
b1tjYWxsTGlua0luZm9JbmRleF0uY2FsbFR5cGUgPSBDYWxsTGlua0luZm86OmNhbGxUeXBlRm9y
KG9wY29kZUlEKTsKICAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxM
aW5rSW5mb0luZGV4XS5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZU9mZnNldDsKIAotICAgIGxv
YWRQdHIoQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGUp
KSwgcmVnVDEpOwotICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIEpTU3Rh
Y2s6OlNjb3BlQ2hhaW4pOworICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09GRlNF
VE9GKEpTRnVuY3Rpb24sIG1fc2NvcGUpKSwgcmVnVDIpOworICAgIHN0b3JlMzIocmVnVDIsIEFk
ZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpTY29w
ZUNoYWluICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQgLSBzaXplb2YoQ2FsbGVy
RnJhbWVBbmRQQykpKTsKKyAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6U2NvcGVDaGFpbiAqIHNp
emVvZihSZWdpc3RlcikgKyBUYWdPZmZzZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsK
KworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAgICAgbV9jYWxsU3RydWN0dXJl
U3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uaG90UGF0aE90aGVyID0gZW1p
dE5ha2VkQ2FsbCgpOwogCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZz
ZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVy
LCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQo
KTsKKwogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgZW1pdFB1dENhbGxS
ZXN1bHQoaW5zdHJ1Y3Rpb24pOwogfQpAQCAtMjk5LDcgKzMyMSwxNCBAQCB2b2lkIEpJVDo6Y29t
cGlsZU9wQ2FsbFNsb3dDYXNlKE9wY29kZUlEIG9wY29kZUlELCBJbnN0cnVjdGlvbiogaW5zdHJ1
Y3Rpb24sIFZlYwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRl
cik7CiAKLSAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5m
b0luZGV4XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG9wY29kZUlEID09IG9w
X2NvbnN0cnVjdCA/IG1fdm0tPmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9y
KS5jb2RlKCkgOiBtX3ZtLT5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUo
KSk7CisgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2VuZXJhdG9yRm9y
KAorICAgICAgICBvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDog
Q29kZUZvckNhbGwsCisgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwor
ICAgIAorICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZv
SW5kZXhdLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1
YihnZW5lcmF0b3IpLmNvZGUoKSk7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9p
bnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1l
UmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFs
aWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICBlbWl0
UHV0Q2FsbFJlc3VsdChpbnN0cnVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVENvZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2Rl
LmNwcAppbmRleCAyMTNiNzAwMGNiYjI4MzQ1ODE0ZGI1ZTJiYmFiNDE0NDY3ZjRjOTJkLi5lZDA4
N2NkM2E0NGQ2ZTA2YWU1NDYzN2NkM2IwODcyMmQ3MzhlM2NhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkxMSW50VGh1
bmtzLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyUHJlc2Vy
dmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgog
CiBuYW1lc3BhY2UgSlNDIHsKQEAgLTQxLDExICs0Miw5IEBAIEpJVENvZGU6On5KSVRDb2RlKCkK
IHsKIH0KIAotSlNWYWx1ZSBKSVRDb2RlOjpleGVjdXRlKFZNKiB2bSwgUHJvdG9DYWxsRnJhbWUq
IHByb3RvQ2FsbEZyYW1lLCBSZWdpc3RlciogdG9wT2ZTdGFjaykKK0pTVmFsdWUgSklUQ29kZTo6
ZXhlY3V0ZShWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSkKIHsKLSAgICBB
U1NFUlQoIXZtLT50b3BDYWxsRnJhbWUgfHwgKChSZWdpc3RlciopKHZtLT50b3BDYWxsRnJhbWUp
ID49IHRvcE9mU3RhY2spKTsKLQotICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2Rl
KGNhbGxUb0phdmFTY3JpcHQoZXhlY3V0YWJsZUFkZHJlc3MoKSwgJnZtLT50b3BDYWxsRnJhbWUs
IHByb3RvQ2FsbEZyYW1lLCB0b3BPZlN0YWNrKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBKU1Zh
bHVlOjpkZWNvZGUoY2FsbFRvSmF2YVNjcmlwdChleGVjdXRhYmxlQWRkcmVzcygpLCB2bSwgcHJv
dG9DYWxsRnJhbWUpKTsKICAgICByZXR1cm4gdm0tPmV4Y2VwdGlvbigpID8ganNOdWxsKCkgOiBy
ZXN1bHQ7CiB9CiAKQEAgLTczLDUyICs3MiwzNSBAQCBGVEw6OkZvck9TUkVudHJ5SklUQ29kZSog
SklUQ29kZTo6ZnRsRm9yT1NSRW50cnkoKQogICAgIHJldHVybiAwOwogfQogCi1QYXNzUmVmUHRy
PEpJVENvZGU+IEpJVENvZGU6Omhvc3RGdW5jdGlvbihKSVRDb2RlOjpDb2RlUmVmIGNvZGUpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKGNvZGUsIEhvc3RDYWxsVGh1
bmspKTsKLX0KLQotRGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZShKSVRUeXBlIGppdFR5cGUp
CitKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZihKSVRUeXBlIGppdFR5cGUp
CiAgICAgOiBKSVRDb2RlKGppdFR5cGUpCiB7CiB9CiAKLURpcmVjdEpJVENvZGU6OkRpcmVjdEpJ
VENvZGUoY29uc3QgSklUQ29kZTo6Q29kZVJlZiByZWYsIEpJVFR5cGUgaml0VHlwZSkKK0pJVENv
ZGVXaXRoQ29kZVJlZjo6SklUQ29kZVdpdGhDb2RlUmVmKENvZGVSZWYgcmVmLCBKSVRUeXBlIGpp
dFR5cGUpCiAgICAgOiBKSVRDb2RlKGppdFR5cGUpCiAgICAgLCBtX3JlZihyZWYpCiB7CiB9CiAK
LURpcmVjdEpJVENvZGU6On5EaXJlY3RKSVRDb2RlKCkKLXsKLX0KLQotdm9pZCBEaXJlY3RKSVRD
b2RlOjppbml0aWFsaXplQ29kZVJlZihjb25zdCBKSVRDb2RlOjpDb2RlUmVmIHJlZikKLXsKLSAg
ICBSRUxFQVNFX0FTU0VSVCghbV9yZWYpOwotICAgIG1fcmVmID0gcmVmOwotfQotCi1KSVRDb2Rl
OjpDb2RlUHRyIERpcmVjdEpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKCkKK0pJVENvZGVXaXRoQ29k
ZVJlZjo6fkpJVENvZGVXaXRoQ29kZVJlZigpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9yZWYp
OwotICAgIHJldHVybiBtX3JlZi5jb2RlKCk7CiB9CiAKLXZvaWQqIERpcmVjdEpJVENvZGU6OmV4
ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkKK3ZvaWQqIEpJVENvZGVXaXRo
Q29kZVJlZjo6ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KQogewogICAg
IFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4obV9yZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpICsgb2Zmc2V0OwogfQogCi12b2lk
KiBEaXJlY3RKSVRDb2RlOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCit2b2lk
KiBKSVRDb2RlV2l0aENvZGVSZWY6OmRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkK
IHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgQVNTRVJUKG9mZnNldCA8PSBzaXpl
KCkpOyAvLyB1c2UgPD0gaW5zdGVhZCBvZiA8IGJlY2F1c2UgaXQgaXMgdmFsaWQgdG8gYXNrIGZv
ciBhbiBhZGRyZXNzIGF0IHRoZSBleGNsdXNpdmUgZW5kIG9mIHRoZSBjb2RlLgogICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PGNoYXIqPihtX3JlZi5jb2RlKCkuZGF0YUxvY2F0aW9uKCkpICsg
b2Zmc2V0OwogfQogCi11bnNpZ25lZCBEaXJlY3RKSVRDb2RlOjpvZmZzZXRPZih2b2lkKiBwb2lu
dGVySW50b0NvZGUpCit1bnNpZ25lZCBKSVRDb2RlV2l0aENvZGVSZWY6Om9mZnNldE9mKHZvaWQq
IHBvaW50ZXJJbnRvQ29kZSkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgaW50
cHRyX3QgcmVzdWx0ID0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4ocG9pbnRlckludG9Db2Rl
KSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KG1fcmVmLmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpKTsKQEAgLTEyNiwxOCArMTA4LDExNyBAQCB1bnNpZ25lZCBEaXJlY3RKSVRDb2RlOjpv
ZmZzZXRPZih2b2lkKiBwb2ludGVySW50b0NvZGUpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihyZXN1bHQpOwogfQogCi1zaXplX3QgRGlyZWN0SklUQ29kZTo6c2l6ZSgpCitzaXpl
X3QgSklUQ29kZVdpdGhDb2RlUmVmOjpzaXplKCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3Jl
Zik7CiAgICAgcmV0dXJuIG1fcmVmLnNpemUoKTsKIH0KIAotYm9vbCBEaXJlY3RKSVRDb2RlOjpj
b250YWlucyh2b2lkKiBhZGRyZXNzKQorYm9vbCBKSVRDb2RlV2l0aENvZGVSZWY6OmNvbnRhaW5z
KHZvaWQqIGFkZHJlc3MpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIHJldHVy
biBtX3JlZi5leGVjdXRhYmxlTWVtb3J5KCktPmNvbnRhaW5zKGFkZHJlc3MpOwogfQogCitEaXJl
Y3RKSVRDb2RlOjpEaXJlY3RKSVRDb2RlKEpJVFR5cGUgaml0VHlwZSkKKyAgICA6IEpJVENvZGVX
aXRoQ29kZVJlZihqaXRUeXBlKQoreworfQorCitEaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRDb2Rl
KAorICAgIEpJVENvZGU6OkNvZGVSZWYgcmVmLCBKSVRDb2RlOjpDb2RlUHRyIHdpdGhBcml0eUNo
ZWNrLCBKSVRUeXBlIGppdFR5cGUpCisgICAgOiBKSVRDb2RlV2l0aENvZGVSZWYocmVmLCBqaXRU
eXBlKQorICAgICwgbV93aXRoQXJpdHlDaGVjayh3aXRoQXJpdHlDaGVjaykKK3sKK30KKworRGly
ZWN0SklUQ29kZTo6fkRpcmVjdEpJVENvZGUoKQoreworfQorCit2b2lkIERpcmVjdEpJVENvZGU6
OmluaXRpYWxpemVDb2RlUmVmKEpJVENvZGU6OkNvZGVSZWYgcmVmLCBKSVRDb2RlOjpDb2RlUHRy
IHdpdGhBcml0eUNoZWNrKQoreworICAgIFJFTEVBU0VfQVNTRVJUKCFtX3JlZik7CisgICAgbV9y
ZWYgPSByZWY7CisgICAgbV93aXRoQXJpdHlDaGVjayA9IHdpdGhBcml0eUNoZWNrOworfQorCitE
aXJlY3RKSVRDb2RlOjpSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzKiBEaXJlY3RKSVRDb2Rl
OjplbnN1cmVXcmFwcGVycygpCit7CisgICAgaWYgKCFtX3dyYXBwZXJzKQorICAgICAgICBtX3dy
YXBwZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzPigp
OworICAgIHJldHVybiBtX3dyYXBwZXJzLmdldCgpOworfQorCitKSVRDb2RlOjpDb2RlUHRyIERp
cmVjdEpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKAorICAgIFZNJiB2bSwgRXhlY3V0YWJsZUJhc2Uq
IGV4ZWN1dGFibGUsIEFyaXR5Q2hlY2tNb2RlIGFyaXR5LAorICAgIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChhcml0eSkgeworICAgIGNhc2UgQXJp
dHlDaGVja05vdFJlcXVpcmVkOgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAg
ICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChtX3JlZik7CisgICAgICAgICAgICByZXR1cm4gbV9yZWYuY29kZSgpOworICAg
ICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczogeworI2lmIEVOQUJMRShKSVQpCisgICAg
ICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzKiB3cmFwcGVycyA9IGVuc3VyZVdy
YXBwZXJzKCk7CisgICAgICAgICAgICBpZiAoIXdyYXBwZXJzLT53aXRob3V0QXJpdHlDaGVjaykK
KyAgICAgICAgICAgICAgICB3cmFwcGVycy0+d2l0aG91dEFyaXR5Q2hlY2sgPSBnZW5lcmF0ZVJl
Z2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcih2bSwgZXhlY3V0YWJsZSwgbV9yZWYuY29kZSgpKTsK
KyAgICAgICAgICAgIHJldHVybiB3cmFwcGVycy0+d2l0aG91dEFyaXR5Q2hlY2suY29kZSgpOwor
I2Vsc2UKKyAgICAgICAgICAgIFVOVVNFRF9QQVJBTSh2bSk7CisgICAgICAgICAgICBVTlVTRURf
UEFSQU0oZXhlY3V0YWJsZSk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworI2VuZGlmCisgICAgICAgIH0gfQorICAgIGNhc2UgTXVzdENoZWNrQXJpdHk6CisgICAg
ICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fd2l0aEFyaXR5Q2hl
Y2spOworICAgICAgICAgICAgcmV0dXJuIG1fd2l0aEFyaXR5Q2hlY2s7CisgICAgICAgIGNhc2Ug
TXVzdFByZXNlcnZlUmVnaXN0ZXJzOiB7CisjaWYgRU5BQkxFKEpJVCkKKyAgICAgICAgICAgIFJl
Z2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnMqIHdyYXBwZXJzID0gZW5zdXJlV3JhcHBlcnMoKTsK
KyAgICAgICAgICAgIGlmICghd3JhcHBlcnMtPndpdGhBcml0eUNoZWNrKQorICAgICAgICAgICAg
ICAgIHdyYXBwZXJzLT53aXRoQXJpdHlDaGVjayA9IGdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRp
b25XcmFwcGVyKHZtLCBleGVjdXRhYmxlLCBtX3dpdGhBcml0eUNoZWNrKTsKKyAgICAgICAgICAg
IHJldHVybiB3cmFwcGVycy0+d2l0aEFyaXR5Q2hlY2suY29kZSgpOworI2Vsc2UKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgfSB9Cisg
ICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIENvZGVQ
dHIoKTsKK30KKworTmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZShKSVRUeXBlIGppdFR5cGUp
CisgICAgOiBKSVRDb2RlV2l0aENvZGVSZWYoaml0VHlwZSkKK3sKK30KKworTmF0aXZlSklUQ29k
ZTo6TmF0aXZlSklUQ29kZShDb2RlUmVmIHJlZiwgSklUVHlwZSBqaXRUeXBlKQorICAgIDogSklU
Q29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlwZSkKK3sKK30KKworTmF0aXZlSklUQ29kZTo6fk5h
dGl2ZUpJVENvZGUoKQoreworfQorCit2b2lkIE5hdGl2ZUpJVENvZGU6OmluaXRpYWxpemVDb2Rl
UmVmKENvZGVSZWYgcmVmKQoreworICAgIEFTU0VSVCghbV9yZWYpOworICAgIG1fcmVmID0gcmVm
OworfQorCitKSVRDb2RlOjpDb2RlUHRyIE5hdGl2ZUpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKAor
ICAgIFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9kZSwgUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Nb2RlKQoreworICAgIFJFTEVBU0VfQVNTRVJUKCEhbV9yZWYpOworICAgIHJldHVybiBt
X3JlZi5jb2RlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiBuYW1lc3BhY2UgV1RGIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKaW5kZXggNTJjNzgxMTFhNGQ2OGViMGZhZjk3
NDkwMzg3YzU4MmUyNzYyZGVmZC4uNDFiMzFmMmYxNjAxZmZiNWZlNDdlYWMxNTczN2UwYWNkNDg4
M2VlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKQEAgLTI2LDE0ICsyNiwxNCBA
QAogI2lmbmRlZiBKSVRDb2RlX2gKICNkZWZpbmUgSklUQ29kZV9oCiAKLSNpZiBFTkFCTEUoSklU
KSB8fCBFTkFCTEUoTExJTlQpCisjaW5jbHVkZSAiQXJpdHlDaGVja01vZGUuaCIKICNpbmNsdWRl
ICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJKSVRT
dHVicy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlICJMZWdhY3lQcm9maWxl
ci5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgotI2VuZGlmCisjaW5jbHVk
ZSAiUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC01
NCw3ICs1NCwxNCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
Q29kZVJlZjsKICAgICB0eXBlZGVmIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBDb2RlUHRyOwogCi0g
ICAgZW51bSBKSVRUeXBlIHsgTm9uZSwgSG9zdENhbGxUaHVuaywgSW50ZXJwcmV0ZXJUaHVuaywg
QmFzZWxpbmVKSVQsIERGR0pJVCwgRlRMSklUIH07CisgICAgZW51bSBKSVRUeXBlIDogdWludDhf
dCB7CisgICAgICAgIE5vbmUsCisgICAgICAgIEhvc3RDYWxsVGh1bmssCisgICAgICAgIEludGVy
cHJldGVyVGh1bmssCisgICAgICAgIEJhc2VsaW5lSklULAorICAgICAgICBERkdKSVQsCisgICAg
ICAgIEZUTEpJVAorICAgIH07CiAgICAgCiAgICAgc3RhdGljIEpJVFR5cGUgYm90dG9tVGllckpJ
VCgpCiAgICAgewpAQCAtMTY0LDcgKzE3MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGpp
dENvZGUtPmppdFR5cGUoKTsKICAgICB9CiAgICAgCi0gICAgdmlydHVhbCBDb2RlUHRyIGFkZHJl
c3NGb3JDYWxsKCkgPSAwOworICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbChWTSYs
IEV4ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9k
ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXpl
X3Qgb2Zmc2V0KSA9IDA7CiAgICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MoKSB7IHJldHVybiBl
eGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KDApOyB9CiAgICAgdmlydHVhbCB2b2lkKiBkYXRhQWRk
cmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpID0gMDsKQEAgLTE3NSw3ICsxODIsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBGVEw6OkpJVENvZGUqIGZ0bCgpOwogICAgIHZpcnR1YWwgRlRMOjpG
b3JPU1JFbnRyeUpJVENvZGUqIGZ0bEZvck9TUkVudHJ5KCk7CiAgICAgCi0gICAgSlNWYWx1ZSBl
eGVjdXRlKFZNKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOworICAgIEpTVmFsdWUgZXhl
Y3V0ZShWTSosIFByb3RvQ2FsbEZyYW1lKik7CiAgICAgCiAgICAgdm9pZCogc3RhcnQoKSB7IHJl
dHVybiBkYXRhQWRkcmVzc0F0T2Zmc2V0KDApOyB9CiAgICAgdmlydHVhbCBzaXplX3Qgc2l6ZSgp
ID0gMDsKQEAgLTE4MywzMSArMTkwLDYyIEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIGJv
b2wgY29udGFpbnModm9pZCopID0gMDsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpJVENvZGU+
IGhvc3RGdW5jdGlvbihDb2RlUmVmKTsKLQogcHJpdmF0ZToKICAgICBKSVRUeXBlIG1faml0VHlw
ZTsKIH07CiAKLWNsYXNzIERpcmVjdEpJVENvZGUgOiBwdWJsaWMgSklUQ29kZSB7CitjbGFzcyBK
SVRDb2RlV2l0aENvZGVSZWYgOiBwdWJsaWMgSklUQ29kZSB7Citwcm90ZWN0ZWQ6CisgICAgSklU
Q29kZVdpdGhDb2RlUmVmKEpJVFR5cGUpOworICAgIEpJVENvZGVXaXRoQ29kZVJlZihDb2RlUmVm
LCBKSVRUeXBlKTsKKwogcHVibGljOgotICAgIERpcmVjdEpJVENvZGUoSklUVHlwZSk7Ci0gICAg
RGlyZWN0SklUQ29kZShjb25zdCBDb2RlUmVmLCBKSVRUeXBlKTsKLSAgICB2aXJ0dWFsIH5EaXJl
Y3RKSVRDb2RlKCk7Ci0gICAgCi0gICAgdm9pZCBpbml0aWFsaXplQ29kZVJlZihDb2RlUmVmIHJl
Zik7CisgICAgdmlydHVhbCB+SklUQ29kZVdpdGhDb2RlUmVmKCk7CiAKLSAgICB2aXJ0dWFsIENv
ZGVQdHIgYWRkcmVzc0ZvckNhbGwoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQqIGV4ZWN1
dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCogcG9pbnRlckludG9Db2RlKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHNpemVfdCBzaXplKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGNvbnRhaW5zKHZvaWQqKSBvdmVycmlkZTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBD
b2RlUmVmIG1fcmVmOwogfTsKIAorY2xhc3MgRGlyZWN0SklUQ29kZSA6IHB1YmxpYyBKSVRDb2Rl
V2l0aENvZGVSZWYgeworcHVibGljOgorICAgIERpcmVjdEpJVENvZGUoSklUVHlwZSk7CisgICAg
RGlyZWN0SklUQ29kZShDb2RlUmVmLCBDb2RlUHRyIHdpdGhBcml0eUNoZWNrLCBKSVRUeXBlKTsK
KyAgICB2aXJ0dWFsIH5EaXJlY3RKSVRDb2RlKCk7CisgICAgCisgICAgdm9pZCBpbml0aWFsaXpl
Q29kZVJlZihDb2RlUmVmIHJlZiwgQ29kZVB0ciB3aXRoQXJpdHlDaGVjayk7CisKKyAgICB2aXJ0
dWFsIENvZGVQdHIgYWRkcmVzc0ZvckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hl
Y2tNb2RlLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpIG92ZXJyaWRlOworCitwcml2YXRlOgor
ICAgIHN0cnVjdCBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzIHsKKyAgICAgICAgQ29kZVJl
ZiB3aXRob3V0QXJpdHlDaGVjazsKKyAgICAgICAgQ29kZVJlZiB3aXRoQXJpdHlDaGVjazsKKyAg
ICB9OworCisgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyogZW5zdXJlV3JhcHBlcnMo
KTsKKyAgICAKKyAgICBDb2RlUHRyIG1fd2l0aEFyaXR5Q2hlY2s7CisgICAgCisgICAgc3RkOjp1
bmlxdWVfcHRyPFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnM+IG1fd3JhcHBlcnM7Cit9Owor
CitjbGFzcyBOYXRpdmVKSVRDb2RlIDogcHVibGljIEpJVENvZGVXaXRoQ29kZVJlZiB7CitwdWJs
aWM6CisgICAgTmF0aXZlSklUQ29kZShKSVRUeXBlKTsKKyAgICBOYXRpdmVKSVRDb2RlKENvZGVS
ZWYsIEpJVFR5cGUpOworICAgIHZpcnR1YWwgfk5hdGl2ZUpJVENvZGUoKTsKKyAgICAKKyAgICB2
b2lkIGluaXRpYWxpemVDb2RlUmVmKENvZGVSZWYgcmVmKTsKKworICAgIHZpcnR1YWwgQ29kZVB0
ciBhZGRyZXNzRm9yQ2FsbChWTSYsIEV4ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTW9kZSkgb3ZlcnJpZGU7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEV4Y2VwdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNl
cHRpb25zLmNwcAppbmRleCA4MDg0Zjc3M2IyMWRkNmQ3ZmMwYWMzODlkNTdhM2RkMjZhYzRiY2Rk
Li4yYjYzN2MxMTY0NmZjNjU5N2E0MTljZWNlM2NmMzZjM2VjMDgyMmRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKQEAgLTQzLDYgKzQzLDExIEBAIG5h
bWVzcGFjZSBKU0MgewogCiB2b2lkIGdlbmVyaWNVbndpbmQoVk0qIHZtLCBFeGVjU3RhdGUqIGNh
bGxGcmFtZSwgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZSkKIHsKKyAgICBpZiAoT3B0aW9uczo6YnJl
YWtPblRocm93KCkpIHsKKyAgICAgICAgZGF0YUxvZygiSW4gY2FsbCBmcmFtZSAiLCBSYXdQb2lu
dGVyKGNhbGxGcmFtZSksICIgZm9yIGNvZGUgYmxvY2sgIiwgKmNhbGxGcmFtZS0+Y29kZUJsb2Nr
KCksICJcbiIpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKyAgICAKICAgICBSRUxFQVNFX0FT
U0VSVChleGNlcHRpb25WYWx1ZSk7CiAgICAgSGFuZGxlckluZm8qIGhhbmRsZXIgPSB2bS0+aW50
ZXJwcmV0ZXItPnVud2luZChjYWxsRnJhbWUsIGV4Y2VwdGlvblZhbHVlKTsgLy8gVGhpcyBtYXkg
dXBkYXRlIGNhbGxGcmFtZS4KIApAQCAtNTYsNyArNjEsNyBAQCB2b2lkIGdlbmVyaWNVbndpbmQo
Vk0qIHZtLCBFeGVjU3RhdGUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZSkKICAg
ICAgICAgY2F0Y2hSb3V0aW5lID0gY2F0Y2hQQ0ZvckludGVycHJldGVyLT51LnBvaW50ZXI7CiAj
ZW5kaWYKICAgICB9IGVsc2UKLSAgICAgICAgY2F0Y2hSb3V0aW5lID0gTExJbnQ6OmdldENvZGVQ
dHIocmV0dXJuRnJvbUphdmFTY3JpcHQpOworICAgICAgICBjYXRjaFJvdXRpbmUgPSBMTEludDo6
Z2V0Q29kZVB0cihoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbik7CiAgICAgCiAgICAgdm0tPmNhbGxG
cmFtZUZvclRocm93ID0gY2FsbEZyYW1lOwogICAgIHZtLT50YXJnZXRNYWNoaW5lUENGb3JUaHJv
dyA9IGNhdGNoUm91dGluZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAKaW5kZXggNzRiMDg2YTdjNTczNDYzZDA3M2ZmMzE0
ODY1N2IwZDBjYWM1MWZiNi4uMmYzZWY1NzBkNTg4ZDllN2E4NzM5ZjQ5NDA2YWUyZjE2NjEyNzU2
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNo
ZUdlbmVyYXRvci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3I6
OkpJVElubGluZUNhY2hlR2VuZXJhdG9yKENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2kK
IAogSklUQnlJZEdlbmVyYXRvcjo6SklUQnlJZEdlbmVyYXRvcigKICAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJl
Z2lzdGVycywKLSAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzIGJhc2Us
IEpTVmFsdWVSZWdzIHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgSlNWYWx1ZVJl
Z3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICA6
IEpJVElubGluZUNhY2hlR2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbikKICAgICAsIG1f
YmFzZShiYXNlKQogICAgICwgbV92YWx1ZSh2YWx1ZSkKQEAgLTYyLDcgKzYyLDYgQEAgSklUQnlJ
ZEdlbmVyYXRvcjo6SklUQnlJZEdlbmVyYXRvcigKICAgICBtX3N0dWJJbmZvLT5wYXRjaC51c2Vk
UmVnaXN0ZXJzLnNldChiYXNlKTsKICAgICBtX3N0dWJJbmZvLT5wYXRjaC51c2VkUmVnaXN0ZXJz
LnNldCh2YWx1ZSk7CiAgICAgCi0gICAgbV9zdHViSW5mby0+cGF0Y2guY2FsbEZyYW1lUmVnaXN0
ZXIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBtX3N0dWJJ
bmZvLT5wYXRjaC5iYXNlR1BSID0gc3RhdGljX2Nhc3Q8aW50OF90PihiYXNlLnBheWxvYWRHUFIo
KSk7CiAgICAgbV9zdHViSW5mby0+cGF0Y2gudmFsdWVHUFIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+
KHZhbHVlLnBheWxvYWRHUFIoKSk7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKQEAgLTEzMCwxMSAr
MTI5LDkgQEAgdm9pZCBKSVRHZXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3Jv
QXNzZW1ibGVyJiBqaXQpCiAKIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OkpJVFB1dEJ5SWRHZW5lcmF0
b3IoCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29u
c3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lz
dGVyLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gs
Ci0gICAgYm9vbCByZWdpc3RlcnNGbHVzaGVkLCBFQ01BTW9kZSBlY21hTW9kZSwgUHV0S2luZCBw
dXRLaW5kKQotICAgIDogSklUQnlJZEdlbmVyYXRvcigKLSAgICAgICAgY29kZUJsb2NrLCBjb2Rl
T3JpZ2luLCB1c2VkUmVnaXN0ZXJzLCBjYWxsRnJhbWVSZWdpc3RlciwgYmFzZSwgdmFsdWUsCi0g
ICAgICAgIHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJl
Z3MgdmFsdWUsIEdQUlJlZyBzY3JhdGNoLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQsCisgICAgRUNN
QU1vZGUgZWNtYU1vZGUsIFB1dEtpbmQgcHV0S2luZCkKKyAgICA6IEpJVEJ5SWRHZW5lcmF0b3Io
Y29kZUJsb2NrLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzLCBiYXNlLCB2YWx1ZSwgcmVnaXN0
ZXJzRmx1c2hlZCkKICAgICAsIG1fc2NyYXRjaChzY3JhdGNoKQogICAgICwgbV9lY21hTW9kZShl
Y21hTW9kZSkKICAgICAsIG1fcHV0S2luZChwdXRLaW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCmluZGV4IDZmZjBjMDliNTE0
M2NjMjI3ZWY0ZWExYmIyNjhiYTczY2QzMmI4ZDguLjZkYjk4MzZkMDJjMzVlZWZkYzg5YjA4NzQw
MzQ0YTA3MmVlYTI3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmgKQEAgLTU2LDggKzU2LDggQEAgcHJvdGVjdGVkOgogICAg
IEpJVEJ5SWRHZW5lcmF0b3IoKSB7IH0KIAogICAgIEpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgICAg
IENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiwgR1BSUmVnIGNhbGxG
cmFtZVJlZ2lzdGVyLAotICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1
ZSwgYm9vbCByZWdpc3RlcnNGbHVzaGVkKTsKKyAgICAgICAgQ29kZUJsb2NrKiwgQ29kZU9yaWdp
biwgY29uc3QgUmVnaXN0ZXJTZXQmLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1
ZSwKKyAgICAgICAgYm9vbCByZWdpc3RlcnNGbHVzaGVkKTsKICAgICAKIHB1YmxpYzoKICAgICB2
b2lkIHJlcG9ydFNsb3dQYXRoQ2FsbChNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgc2xvd1BhdGhCZWdp
biwgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCkKQEAgLTk2LDExICs5Niw4IEBAIHB1YmxpYzoK
IAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IoCiAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2Nr
LCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJz
LAotICAgICAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzIGJhc2UsIEpT
VmFsdWVSZWdzIHZhbHVlLAotICAgICAgICBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCi0gICAgICAg
IDogSklUQnlJZEdlbmVyYXRvcigKLSAgICAgICAgICAgIGNvZGVCbG9jaywgY29kZU9yaWdpbiwg
dXNlZFJlZ2lzdGVycywgY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2UsIHZhbHVlLAotICAgICAgICAg
ICAgcmVnaXN0ZXJzRmx1c2hlZCkKKyAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJl
Z3MgdmFsdWUsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKKyAgICAgICAgOiBKSVRCeUlkR2VuZXJh
dG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywgYmFzZSwgdmFsdWUsIHJl
Z2lzdGVyc0ZsdXNoZWQpCiAgICAgewogICAgIH0KICAgICAKQEAgLTExMiw5ICsxMDksOCBAQCBw
dWJsaWM6CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvcigpIHsgfQogCiAgICAgSklUUHV0QnlJZEdl
bmVyYXRvcigKLSAgICAgICAgQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJT
ZXQmIHVzZWRSZWdpc3RlcnMsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgSlNW
YWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzY3JhdGNoLCBib29sIHJl
Z2lzdGVyc0ZsdXNoZWQsCi0gICAgICAgIEVDTUFNb2RlLCBQdXRLaW5kKTsKKyAgICAgICAgQ29k
ZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIEpT
VmFsdWVSZWdzIGJhc2UsCisgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRj
aCwgYm9vbCByZWdpc3RlcnNGbHVzaGVkLCBFQ01BTW9kZSwgUHV0S2luZCk7CiAgICAgCiAgICAg
dm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IDkzMzBlNzczZTc0NTE0MzU0MjIwZWZhNjY3
ODYzYTZlOWQ3ZTczMjYuLjcwYmI0ZjNlY2I0MjAzZGQxNjUwMjNlMjM0MGJkZjlkNTJhYzViMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCkBAIC05Myw3ICs5Myw2IEBA
IEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmVtaXRMb2FkQ2hhcmFjdGVyU3RyaW5nKFJlZ2lzdGVy
SUQgc3JjLCBSZWdpc3RlcklEIGRzdCwKIEFMV0FZU19JTkxJTkUgSklUOjpDYWxsIEpJVDo6ZW1p
dE5ha2VkQ2FsbChDb2RlUHRyIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChtX2J5dGVjb2RlT2Zm
c2V0ICE9ICh1bnNpZ25lZCktMSk7IC8vIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIGNhbGxl
ZCBkdXJpbmcgaG90L2NvbGQgcGF0aCBnZW5lcmF0aW9uLCBzbyB0aGF0IG1fYnl0ZWNvZGVPZmZz
ZXQgaXMgc2V0LgotCiAgICAgQ2FsbCBuYWtlZENhbGwgPSBuZWFyQ2FsbCgpOwogICAgIG1fY2Fs
bHMuYXBwZW5kKENhbGxSZWNvcmQobmFrZWRDYWxsLCBtX2J5dGVjb2RlT2Zmc2V0LCBmdW5jdGlv
bi5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgcmV0dXJuIG5ha2VkQ2FsbDsKQEAgLTIyMywy
MSArMjIyLDIxIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VaIG9wZXJhdGlvCiAgICAgcmV0dXJuIGFwcGVuZENh
bGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0K
IAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24o
UF9KSVRPcGVyYXRpb25fRVogb3BlcmF0aW9uLCBpbnQzMl90IG9wKQorQUxXQVlTX0lOTElORSBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUND
IG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyKQogewotICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIob3ApKTsKKyAgICBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIpOwogICAgIHJldHVybiBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VD
QyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMikKK0FMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNfSklUT3Bl
cmF0aW9uX0VPSnNzIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVn
T3AyKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMik7
CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0K
IAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24o
U19KSVRPcGVyYXRpb25fRU9Kc3Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0
ZXJJRCByZWdPcDIpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2Fs
bE9wZXJhdGlvbihTcHJ0X0pJVE9wZXJhdGlvbl9FWiBvcGVyYXRpb24sIGludDMyX3Qgb3ApCiB7
Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyKTsKKyAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKG9wKSk7CiAgICAgcmV0dXJu
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIApAQCAtMjc3LDYg
KzI3NiwxMyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZQogICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlv
bkNoZWNrKEpfSklUT3BlcmF0aW9uX0VFIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcCkKK3sK
KyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3ApOworICAgIHVwZGF0ZVRvcENh
bGxGcmFtZSgpOworICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7Cit9CisKIEFMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uV2l0aENhbGxG
cmFtZVJvbGxiYWNrT25FeGNlcHRpb24oVl9KSVRPcGVyYXRpb25fRUNiIG9wZXJhdGlvbiwgQ29k
ZUJsb2NrKiBwb2ludGVyKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVz
dGVkSW1tUHRyKHBvaW50ZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMu
Y3BwCmluZGV4IDJiZGFlMTkxNGQwNzVhNGRmNjBiYTYwOThlMzE2Mzk3MWZhYjUzMWYuLmNhN2Fk
MTFmMmUwYjhhM2I4YjE4NTg5MWQ3ZTUyMmJhZTQwM2EyMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
TGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgi
CiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgi
CiAKQEAgLTczLDcgKzc0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZW5kKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQocmV0dXJuVmFsdWVHUFIg
IT0gY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmV0dXJuVmFsdWVHUFIpOwotICAgIHJlc3RvcmVS
ZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxG
cmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgcmV0KCk7CiB9CiAKQEAgLTI2MiwxNCArMjYzLDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgLy8gUmV0dXJuIHRoZSByZXN1
bHQgaW4gJWVheC4KICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQsIHJldHVyblZhbHVlR1BSKTsKIAotICAgIC8vIEdyYWIgdGhlIHJldHVy
biBhZGRyZXNzLgotICAgIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVn
VDEpOwotCi0gICAgLy8gUmVzdG9yZSBvdXIgY2FsbGVyJ3MgInIiLgotICAgIGVtaXRHZXRDYWxs
ZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwotCi0gICAg
Ly8gUmV0dXJuLgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QxKTsK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTI4NSwxNCArMjgwLDggQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfcmV0X29iamVjdF9vcl90aGlzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgbG9hZFB0cihBZGRyZXNzKHJldHVyblZhbHVlR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9m
ZnNldCgpKSwgcmVnVDIpOwogICAgIEp1bXAgbm90T2JqZWN0ID0gZW1pdEp1bXBJZk5vdE9iamVj
dChyZWdUMik7CiAKLSAgICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICBlbWl0R2V0
UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QxKTsKLQotICAgIC8vIFJlc3RvcmUg
b3VyIGNhbGxlcidzICJyIi4KLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVh
ZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKLQogICAgIC8vIFJldHVybi4KLSAgICByZXN0b3Jl
UmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMSk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICAgICByZXQoKTsKIAogICAgIC8vIFJldHVybiAndGhpcycgaW4gJWVheC4KQEAgLTMw
MCwxNCArMjg5LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0X29iamVjdF9vcl90aGlzKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgbm90T2JqZWN0LmxpbmsodGhpcyk7CiAg
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
LCByZXR1cm5WYWx1ZUdQUik7CiAKLSAgICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAg
ICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QxKTsKLQotICAgIC8v
IFJlc3RvcmUgb3VyIGNhbGxlcidzICJyIi4KLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKLQogICAgIC8vIFJldHVybi4KLSAg
ICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMSk7CisgICAgZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKIH0KIApAQCAtNjUwLDYgKzYzMyw5IEBAIHZvaWQg
SklUOjplbWl0X29wX2NhdGNoKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAg
ICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fdm0pLCByZWdUMyk7CiAgICAgbG9hZDY0KEFkZHJlc3Mo
cmVnVDMsIFZNOjpjYWxsRnJhbWVGb3JUaHJvd09mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIp
OworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IoY29kZUJs
b2NrKCkpICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CisKICAgICBsb2FkNjQoQWRkcmVzcyhyZWdUMywgVk06OmV4Y2VwdGlvbk9m
ZnNldCgpKSwgcmVnVDApOwogICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29k
ZShKU1ZhbHVlKCkpKSwgQWRkcmVzcyhyZWdUMywgVk06OmV4Y2VwdGlvbk9mZnNldCgpKSk7CiAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
KTsKQEAgLTExMDMsMjAgKzEwODksOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9sb29wX2hpbnQoSW5z
dHJ1Y3Rpb24qKQogewogICAgIC8vIEVtaXQgdGhlIEpJVCBvcHRpbWl6YXRpb24gY2hlY2s6IAog
ICAgIGlmIChjYW5CZU9wdGltaXplZCgpKSB7Ci0gICAgICAgIGlmIChPcHRpb25zOjplbmFibGVP
U1JFbnRyeUluTG9vcHMoKSkgewotICAgICAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoQWRkMzIo
UG9zaXRpdmVPclplcm8sIFRydXN0ZWRJbW0zMihPcHRpb25zOjpleGVjdXRpb25Db3VudGVySW5j
cmVtZW50Rm9yTG9vcCgpKSwKLSAgICAgICAgICAgICAgICBBYnNvbHV0ZUFkZHJlc3MobV9jb2Rl
QmxvY2stPmFkZHJlc3NPZkpJVEV4ZWN1dGVDb3VudGVyKCkpKSk7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAvLyBBZGQgd2l0aCBzYXR1cmF0aW9uLgotICAgICAgICAgICAgbW92ZShU
cnVzdGVkSW1tUHRyKG1fY29kZUJsb2NrLT5hZGRyZXNzT2ZKSVRFeGVjdXRlQ291bnRlcigpKSwg
cmVnVDMpOwotICAgICAgICAgICAgbG9hZDMyKHJlZ1QzLCByZWdUMik7Ci0gICAgICAgICAgICBK
dW1wIGRvbnRBZGQgPSBicmFuY2gzMigKLSAgICAgICAgICAgICAgICBHcmVhdGVyVGhhbiwgcmVn
VDIsCi0gICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKHN0ZDo6bnVtZXJpY19saW1pdHM8aW50
MzJfdD46Om1heCgpIC0gT3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZvckxvb3Ao
KSkpOwotICAgICAgICAgICAgYWRkMzIoVHJ1c3RlZEltbTMyKE9wdGlvbnM6OmV4ZWN1dGlvbkNv
dW50ZXJJbmNyZW1lbnRGb3JMb29wKCkpLCByZWdUMik7Ci0gICAgICAgICAgICBzdG9yZTMyKHJl
Z1QyLCByZWdUMyk7Ci0gICAgICAgICAgICBkb250QWRkLmxpbmsodGhpcyk7Ci0gICAgICAgIH0K
KyAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoQWRkMzIoUG9zaXRpdmVPclplcm8sIFRydXN0ZWRJ
bW0zMihPcHRpb25zOjpleGVjdXRpb25Db3VudGVySW5jcmVtZW50Rm9yTG9vcCgpKSwKKyAgICAg
ICAgICAgIEFic29sdXRlQWRkcmVzcyhtX2NvZGVCbG9jay0+YWRkcmVzc09mSklURXhlY3V0ZUNv
dW50ZXIoKSkpKTsKICAgICB9CiAKICAgICAvLyBFbWl0IHRoZSB3YXRjaGRvZyB0aW1lciBjaGVj
azoKQEAgLTExMjgsMTEgKzExMDIsMTIgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2xvb3BfaGlu
dChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGkKIHsKICNp
ZiBFTkFCTEUoREZHX0pJVCkKICAgICAvLyBFbWl0IHRoZSBzbG93IHBhdGggZm9yIHRoZSBKSVQg
b3B0aW1pemF0aW9uIGNoZWNrOgotICAgIGlmIChjYW5CZU9wdGltaXplZCgpICYmIE9wdGlvbnM6
OmVuYWJsZU9TUkVudHJ5SW5Mb29wcygpKSB7CisgICAgaWYgKGNhbkJlT3B0aW1pemVkKCkpIHsK
ICAgICAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogICAgICAgICAKICAgICAgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25PcHRpbWl6ZSwgbV9ieXRlY29kZU9mZnNldCk7CiAgICAgICAgIEp1bXAg
bm9PcHRpbWl6ZWRFbnRyeSA9IGJyYW5jaFRlc3RQdHIoWmVybywgcmV0dXJuVmFsdWVHUFIpOwor
ICAgICAgICBtb3ZlKHJldHVyblZhbHVlR1BSMiwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAg
ICAgICBqdW1wKHJldHVyblZhbHVlR1BSKTsKICAgICAgICAgbm9PcHRpbWl6ZWRFbnRyeS5saW5r
KHRoaXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5j
cHAKaW5kZXggMjllODg4MGFhNTY1YzUyZGQ2M2JmMzI0NmE1MGJhODk5OWY1ZTBjYy4uOThkMTBh
M2Y0ZGNiMTJkODlmMzdhMTJmMjI2MDRiOTQ2ZTA4ZTYyNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDksIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBQYXRyaWNrIEdhbnN0
ZXJlciA8cGFyb2dhQHBhcm9nYS5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zOSw2ICszOSw3
IEBACiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTVmFy
aWFibGVPYmplY3QuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiTWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJTbG93UGF0aENhbGwuaCIKICNp
bmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKIApAQCAtNDgsNiArNDksNyBAQCBKSVQ6OkNvZGVS
ZWYgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwoVk0qIHZtLCBOYXRpdmVGdW5jdGlv
biBmdW5jKQogewogICAgIENhbGwgbmF0aXZlQ2FsbDsKIAorICAgIGVtaXRGdW5jdGlvblByb2xv
Z3VlKCk7CiAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKDAsIEpTU3RhY2s6
OkNvZGVCbG9jayk7CiAgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsICZtX3ZtLT50b3BD
YWxsRnJhbWUpOwogCkBAIC01OCwyMSArNjAsMTcgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0
ZUNvbXBpbGVDVElOYXRpdmVDYWxsKFZNKiB2bSwgTmF0aXZlRnVuY3Rpb24gZnVuYykKICAgICBl
bWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpTY29wZUNoYWluLCByZWdUMSwg
cmVnVDApOwogICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIEpTU3RhY2s6
OlNjb3BlQ2hhaW4pOwogCi0gICAgcGVlayhyZWdUMSk7Ci0gICAgZW1pdFB1dFJldHVyblBDVG9D
YWxsRnJhbWVIZWFkZXIocmVnVDEpOwotCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAg
IGYoZWN4LCBlZHgsIC4uLik7CiAgICAgLy8gSG9zdCBmdW5jdGlvbiBzaWduYXR1cmU6IGYoRXhl
Y1N0YXRlKik7CiAgICAgbW92ZShjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplY3gp
OwogCi0gICAgc3ViUHRyKFRydXN0ZWRJbW0zMigxNiAtIHNpemVvZih2b2lkKikpLCBzdGFja1Bv
aW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNrIGFmdGVyIGNhbGwuCi0KLSAgICBtb3ZlKHJl
Z1QwLCBjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUg
cmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgorICAgIHN1YlB0cihUcnVzdGVk
SW1tMzIoOCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgLy8gQWxpZ24gc3RhY2sgZm9yIGNhbGwu
CisgICAgc3RvcmVQdHIoWDg2UmVnaXN0ZXJzOjplY3gsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVn
aXN0ZXIpKTsKIAogICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgbmF0aXZlQ2FsbCA9IGNh
bGwoKTsKIAotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2Yodm9pZCopKSwgc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoOCksIHN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKIAogI2VsaWYgQ1BVKEFSTSkgfHwgQ1BVKFNINCkgfHwgQ1BVKE1JUFMp
CiAgICAgLy8gTG9hZCBjYWxsZXIgZnJhbWUncyBzY29wZSBjaGFpbiBpbnRvIHRoaXMgY2FsbGZy
YW1lIHNvIHRoYXQgd2hhdGV2ZXIgd2UgY2FsbCBjYW4gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4K
QEAgLTgwLDkgKzc4LDYgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRp
dmVDYWxsKFZNKiB2bSwgTmF0aXZlRnVuY3Rpb24gZnVuYykKICAgICBlbWl0R2V0RnJvbUNhbGxG
cmFtZUhlYWRlclB0cihKU1N0YWNrOjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDIpOwogICAgIGVt
aXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwog
Ci0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHBy
ZXNlcnZlZAotICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzKTsKLQog
I2lmIENQVShNSVBTKQogICAgIC8vIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGZvciAodW51c2VkKSAx
NiBieXRlcyAoOC1ieXRlIGFsaWduZWQpIGZvciA0IGFyZ3VtZW50cy4KICAgICBzdWJQdHIoVHJ1
c3RlZEltbTMyKDE2KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtOTMsNyArODgsNiBAQCBK
SVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwoVk0qIHZtLCBOYXRp
dmVGdW5jdGlvbiBmdW5jKQogICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIGFyZ3VtZW50R1BS
MCk7CiAKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUs
IGFyZ3VtZW50R1BSMSk7Ci0gICAgbW92ZShyZWdUMiwgY2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBF
YWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJv
bSBzdGFjay4KICAgICBsb2FkUHRyKEFkZHJlc3MoYXJndW1lbnRHUFIxLCBPQkpFQ1RfT0ZGU0VU
T0YoSlNGdW5jdGlvbiwgbV9leGVjdXRhYmxlKSksIHJlZ1QyKTsKIAogICAgIC8vIGNhbGwgdGhl
IGZ1bmN0aW9uCkBAIC0xMTMsMzAgKzEwNywyNyBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRl
Q29tcGlsZUNUSU5hdGl2ZUNhbGwoVk0qIHZtLCBOYXRpdmVGdW5jdGlvbiBmdW5jKQogICAgIC8v
IENoZWNrIGZvciBhbiBleGNlcHRpb24KICAgICBKdW1wIHNhd0V4Y2VwdGlvbiA9IGJyYW5jaDMy
KE5vdEVxdWFsLCBBYnNvbHV0ZUFkZHJlc3MocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odm0tPmFk
ZHJlc3NPZkV4Y2VwdGlvbigpKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50
YWcpKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKTsgCiAKKyAgICBlbWl0
RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIC8vIFJldHVybi4KICAgICByZXQoKTsKIAogICAgIC8v
IEhhbmRsZSBhbiBleGNlcHRpb24KICAgICBzYXdFeGNlcHRpb24ubGluayh0aGlzKTsKIAotICAg
IC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0Fm
dGVyQ2FsbChyZWdUMSk7Ci0KLSAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoJnZtLT5leGNlcHRpb25M
b2NhdGlvbiksIHJlZ1QyKTsKLSAgICBzdG9yZVB0cihyZWdUMSwgcmVnVDIpOwogICAgIHN0b3Jl
UHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCAmbV92bS0+dG9wQ2FsbEZyYW1lKTsKIAogI2lmIENQVShY
ODYpCi0gICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtMTIpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
Ci0gICAgcHVzaChjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigt
NCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1l
UmVnaXN0ZXIpLCBYODZSZWdpc3RlcnM6OmVjeCk7CisgICAgcHVzaChYODZSZWdpc3RlcnM6OmVj
eCk7CiAjZWxzZQotICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIGFyZ3VtZW50R1BSMCk7Cisg
ICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyKSwgYXJndW1lbnRHUFIwKTsKICNl
bmRpZgogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihGdW5jdGlvblB0cihvcGVyYXRpb25WTUhhbmRs
ZUV4Y2VwdGlvbikudmFsdWUoKSksIHJlZ1QzKTsKICAgICBjYWxsKHJlZ1QzKTsKIAogI2lmIENQ
VShYODYpCi0gICAgYWRkUHRyKFRydXN0ZWRJbW0zMigxNiksIHN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDgpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAj
ZW5kaWYKIAogICAgIGp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIoKTsKQEAgLTE3NSw3ICsxNjYsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9lbmQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
IHsKICAgICBBU1NFUlQocmV0dXJuVmFsdWVHUFIgIT0gY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAg
IGVtaXRMb2FkKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QxLCByZWdUMCk7
Ci0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oQWRkcmVzcyhjYWxsRnJhbWVS
ZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CisgICAgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKICAgICByZXQoKTsKIH0KIApAQCAtOTI3LDYgKzkxOCw5IEBAIHZvaWQgSklU
OjplbWl0X29wX2NhdGNoKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgbW92
ZShUcnVzdGVkSW1tUHRyKG1fdm0pLCByZWdUMyk7CiAgICAgLy8gb3BlcmF0aW9uVGhyb3cgcmV0
dXJucyB0aGUgY2FsbEZyYW1lIGZvciB0aGUgaGFuZGxlci4KICAgICBsb2FkMzIoQWRkcmVzcyhy
ZWdUMywgVk06OmNhbGxGcmFtZUZvclRocm93T2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7
CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihjb2RlQmxv
Y2soKSkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKKwogICAgIC8vIE5vdyBzdG9yZSB0aGUgZXhjZXB0aW9uIHJldHVybmVkIGJ5
IG9wZXJhdGlvblRocm93LgogICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QzLCBWTTo6ZXhjZXB0aW9u
T2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpLCBy
ZWdUMCk7CiAgICAgbG9hZDMyKEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSAr
IE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgcmVnVDEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggNWI2NjBhZGE0ODhk
NTFmZDMyOTcxOTZlNTIyN2ViMmQ0YTgwZjAzYy4uNTAzY2Y3ZDk2OTVkZTExMGUyY2U5MWFjMWVj
MmQ0Y2I3MWFkZDgyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zMCwxMiArMzAsMTIgQEAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRl
ICJBcnJheUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgotI2lu
Y2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkRGR0NvbXBpbGF0aW9uTW9kZS5o
IgogI2luY2x1ZGUgIkRGR0RyaXZlci5oIgogI2luY2x1ZGUgIkRGR09TUkVudHJ5LmgiCiAjaW5j
bHVkZSAiREZHV29ya2xpc3QuaCIKICNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIkVycm9y
SGFuZGxpbmdTY29wZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkhv
c3RDYWxsUmV0dXJuVmFsdWUuaCIKICNpbmNsdWRlICJKSVQuaCIKQEAgLTcxLDcgKzcxLDcgQEAg
dm9pZCAqIF9SZXR1cm5BZGRyZXNzKHZvaWQpOwogI2VuZGlmCiAKIAotdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblN0YWNrQ2hlY2soRXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaykKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJv
cihFeGVjU3RhdGUqIGV4ZWMsIENvZGVCbG9jayogY29kZUJsb2NrKQogewogICAgIC8vIFdlIHBh
c3MgaW4gb3VyIG93biBjb2RlIGJsb2NrLCBiZWNhdXNlIHRoZSBjYWxsZnJhbWUgaGFzbid0IGJl
ZW4gcG9wdWxhdGVkLgogICAgIFZNKiB2bSA9IGNvZGVCbG9jay0+dm0oKTsKQEAgLTgwLDExICs4
MCw4IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25TdGFja0NoZWNrKEV4ZWNTdGF0ZSog
ZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAgICAgICAgIGNhbGxlckZyYW1lID0gZXhlYzsK
IAogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxlckZyYW1lKTsKLQot
ICAgIEpTU3RhY2smIHN0YWNrID0gdm0tPmludGVycHJldGVyLT5zdGFjaygpOwotCi0gICAgaWYg
KFVOTElLRUxZKCFzdGFjay5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKV0pKSkKLSAg
ICAgICAgdm0tPnRocm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93
RXJyb3IoY2FsbGVyRnJhbWUpKTsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZSgq
dm0pOworICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKGNhbGxlckZyYW1lKSk7CiB9CiAKIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVy
YXRpb25DYWxsQXJpdHlDaGVjayhFeGVjU3RhdGUqIGV4ZWMpCkBAIC05Nyw3ICs5NCw3IEBAIGlu
dDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsQXJpdHlDaGVjayhFeGVjU3RhdGUqIGV4
ZWMpCiAKICAgICBpbnQzMl90IG1pc3NpbmdBcmdDb3VudCA9IENvbW1vblNsb3dQYXRoczo6YXJp
dHlDaGVja0ZvcihleGVjLCAmc3RhY2ssIENvZGVGb3JDYWxsKTsKICAgICBpZiAobWlzc2luZ0Fy
Z0NvdW50IDwgMCkKLSAgICAgICAgdm0tPnRocm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVh
dGVTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUpKTsKKyAgICAgICAgdGhyb3dTdGFja092
ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUpOwogCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsK
IH0KQEAgLTExMiw3ICsxMDksNyBAQCBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29u
c3RydWN0QXJpdHlDaGVjayhFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBpbnQzMl90IG1pc3NpbmdB
cmdDb3VudCA9IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmc3RhY2ssIENv
ZGVGb3JDb25zdHJ1Y3QpOwogICAgIGlmIChtaXNzaW5nQXJnQ291bnQgPCAwKQotICAgICAgICB2
bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihj
YWxsZXJGcmFtZSkpOworICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsZXJGcmFt
ZSk7CiAKICAgICByZXR1cm4gbWlzc2luZ0FyZ0NvdW50OwogfQpAQCAtNjEyLDE1ICs2MDksMTMg
QEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHUKICAgICBkaXJlY3RQdXRCeVZhbChleGVjLCBhc09i
amVjdChiYXNlVmFsdWUpLCBzdWJzY3JpcHQsIHZhbHVlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSog
ZXhlYywgRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewotICAgIENhbGxGcmFtZSogY2FsbGVyRnJh
bWUgPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwotICAgIEFTU0VSVChleGVjQ2FsbGVlLT5j
YWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+Y29kZVR5cGUoKSAhPSBGdW5jdGlvbkNvZGUKLSAg
ICAgICAgfHwgIWV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCktPmNvZGVCbG9jaygpLT5uZWVkc0Z1
bGxTY29wZUNoYWluKCkKLSAgICAgICAgfHwgZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+dW5j
aGVja2VkUihleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+YWN0aXZhdGlv
blJlZ2lzdGVyKCkub2Zmc2V0KCkpLmpzVmFsdWUoKSk7CisgICAgQVNTRVJUKGV4ZWMtPmNvZGVC
bG9jaygpLT5jb2RlVHlwZSgpICE9IEZ1bmN0aW9uQ29kZQorICAgICAgICB8fCAhZXhlYy0+Y29k
ZUJsb2NrKCktPm5lZWRzRnVsbFNjb3BlQ2hhaW4oKQorICAgICAgICB8fCBleGVjLT51bmNoZWNr
ZWRSKGV4ZWMtPmNvZGVCbG9jaygpLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKS5vZmZzZXQoKSkuanNW
YWx1ZSgpKTsKIAotICAgIGV4ZWNDYWxsZWUtPnNldFNjb3BlKGNhbGxlckZyYW1lLT5zY29wZSgp
KTsKLSAgICBleGVjQ2FsbGVlLT5zZXRSZXR1cm5QQyhzdGF0aWNfY2FzdDxJbnN0cnVjdGlvbio+
KE9VUl9SRVRVUk5fQUREUkVTUykpOworICAgIGV4ZWNDYWxsZWUtPnNldFNjb3BlKGV4ZWMtPnNj
b3BlKCkpOwogICAgIGV4ZWNDYWxsZWUtPnNldENvZGVCbG9jaygwKTsKIAogICAgIGlmICghaXNI
b3N0RnVuY3Rpb24oZXhlY0NhbGxlZS0+Y2FsbGVlQXNWYWx1ZSgpLCBnbG9iYWxGdW5jRXZhbCkp
CkBAIC02ODUsNyArNjgwLDggQEAgc3RhdGljIHZvaWQqIGhhbmRsZUhvc3RDYWxsKEV4ZWNTdGF0
ZSogZXhlY0NhbGxlZSwgSlNWYWx1ZSBjYWxsZWUsIENvZGVTcGVjaWFsaXoKICAgICByZXR1cm4g
dm0tPmdldENUSVN0dWIodGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKIH0KIAotaW5saW5lIGNoYXIqIGxpbmtGb3IoRXhl
Y1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCitpbmxpbmUg
Y2hhciogbGlua0ZvcigKKyAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXph
dGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAg
ICBFeGVjU3RhdGUqIGV4ZWMgPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwogICAgIFZNKiB2
bSA9ICZleGVjLT52bSgpOwpAQCAtNzAzLDM5ICs2OTksNTMgQEAgaW5saW5lIGNoYXIqIGxpbmtG
b3IoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHI7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxv
Y2sgPSAwOwogICAgIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvID0gZXhlYy0+Y29kZUJsb2Nr
KCktPmdldENhbGxMaW5rSW5mbyhleGVjQ2FsbGVlLT5yZXR1cm5QQygpKTsKLSAgICBpZiAoZXhl
Y3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkKLSAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUt
PmdlbmVyYXRlZEpJVENvZGVGb3Ioa2luZCktPmFkZHJlc3NGb3JDYWxsKCk7Ci0gICAgZWxzZSB7
CisgICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpIHsKKyAgICAgICAgY29kZVB0
ciA9IGV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3IoKnZtLCBraW5kLCBNdXN0Q2hlY2tBcml0eSwg
cmVnaXN0ZXJzKTsKKyAgICB9IGVsc2UgewogICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uRXhlY3V0YWJsZSA9IHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGV4ZWN1
dGFibGUpOwogICAgICAgICBKU09iamVjdCogZXJyb3IgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPnBy
ZXBhcmVGb3JFeGVjdXRpb24oZXhlY0NhbGxlZSwgY2FsbGVlLT5zY29wZSgpLCBraW5kKTsKICAg
ICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICB2bS0+dGhyb3dFeGNlcHRpb24oZXhlYywg
Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKKyAgICAgICAgICAgIHRocm93U3RhY2tP
dmVyZmxvd0Vycm9yKGV4ZWMpOwogICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KHZtLT5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVy
YXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogICAgICAgICB9CiAgICAgICAgIGNv
ZGVCbG9jayA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Y29kZUJsb2NrRm9yKGtpbmQpOworICAgICAg
ICBBcml0eUNoZWNrTW9kZSBhcml0eTsKICAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVt
UGFyYW1ldGVycygpKSB8fCBjYWxsTGlua0luZm8uY2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpD
YWxsVmFyYXJncykKLSAgICAgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmdl
bmVyYXRlZEpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5kKTsKKyAgICAgICAgICAgIGFyaXR5
ID0gTXVzdENoZWNrQXJpdHk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvZGVQdHIgPSBm
dW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3Ioa2luZCktPmFkZHJlc3NGb3JD
YWxsKCk7CisgICAgICAgICAgICBhcml0eSA9IEFyaXR5Q2hlY2tOb3RSZXF1aXJlZDsKKyAgICAg
ICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcigqdm0sIGtpbmQs
IGFyaXR5LCByZWdpc3RlcnMpOwogICAgIH0KICAgICBpZiAoIWNhbGxMaW5rSW5mby5zZWVuT25j
ZSgpKQogICAgICAgICBjYWxsTGlua0luZm8uc2V0U2VlbigpOwogICAgIGVsc2UKLSAgICAgICAg
bGlua0ZvcihleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIGNvZGVCbG9jaywgY2FsbGVlLCBjb2Rl
UHRyLCBraW5kKTsKKyAgICAgICAgbGlua0ZvcihleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIGNv
ZGVCbG9jaywgY2FsbGVlLCBjb2RlUHRyLCBraW5kLCByZWdpc3RlcnMpOwogICAgIHJldHVybiBy
ZWludGVycHJldF9jYXN0PGNoYXIqPihjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogfQog
CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSogZXhlY0Nh
bGxlZSkKIHsKLSAgICByZXR1cm4gbGlua0ZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCk7Cisg
ICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTm90UmVxdWlyZWQpOwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxp
bmtDb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewotICAgIHJldHVybiBsaW5rRm9y
KGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJldHVybiBsaW5rRm9yKGV4ZWND
YWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQp
OworfQorCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsVGhhdFByZXNlcnZl
c1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIHJldHVybiBsaW5rRm9yKGV4ZWND
YWxsZWUsIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOwogfQogCi1pbmxpbmUg
Y2hhciogdmlydHVhbEZvcldpdGhGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVT
cGVjaWFsaXphdGlvbktpbmQga2luZCwgSlNDZWxsKiYgY2FsbGVlQXNGdW5jdGlvbkNlbGwpCitj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVn
cyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCit7CisgICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxl
ZSwgQ29kZUZvckNvbnN0cnVjdCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KKworaW5saW5l
IGNoYXIqIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVl
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSBy
ZWdpc3RlcnMsCisgICAgSlNDZWxsKiYgY2FsbGVlQXNGdW5jdGlvbkNlbGwpCiB7CiAgICAgRXhl
Y1N0YXRlKiBleGVjID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKICAgICBWTSogdm0gPSAm
ZXhlYy0+dm0oKTsKQEAgLTc1NywxNiArNzY3LDIwIEBAIGlubGluZSBjaGFyKiB2aXJ0dWFsRm9y
V2l0aEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2lu
CiAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odm0tPmdldENUSVN0
dWIodGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0
YWJsZUFkZHJlc3MoKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KGV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVXaXRoQXJpdHlDaGVja0Zv
cihraW5kKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4oZXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcigKKyAgICAgICAgKnZtLCBraW5kLCBN
dXN0Q2hlY2tBcml0eSwgcmVnaXN0ZXJzKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKIH0KIAotaW5s
aW5lIGNoYXIqIHZpcnR1YWxGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGtpbmQpCitpbmxpbmUgY2hhciogdmlydHVhbEZvcigKKyAgICBFeGVjU3RhdGUq
IGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxs
SWdub3JlZDsKLSAgICByZXR1cm4gdmlydHVhbEZvcldpdGhGdW5jdGlvbihleGVjQ2FsbGVlLCBr
aW5kLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbElnbm9yZWQpOworICAgIHJldHVybiB2aXJ0dWFsRm9y
V2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIGtpbmQsIHJlZ2lzdGVycywgY2FsbGVlQXNGdW5jdGlv
bkNlbGxJZ25vcmVkKTsKIH0KIAotc3RhdGljIGJvb2wgYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJl
Q2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGws
IENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQorc3RhdGljIGJvb2wgYXR0ZW1wdFRvT3B0aW1p
emVDbG9zdXJlQ2FsbCgKKyAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZSByZWdpc3RlcnMsIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGwsCisgICAg
Q2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiB7CiAgICAgaWYgKCFjYWxsZWVBc0Z1bmN0aW9u
Q2VsbCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzgwLDcgKzc5NCwxMCBAQCBzdGF0aWMg
Ym9vbCBhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwg
SlNDZWxsKiBjYWxsZWVBcwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgQVNTRVJU
KGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5oYXNKSVRDb2RlRm9yQ2FsbCgpKTsKLSAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgY29kZVB0ciA9IGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5nZW5lcmF0ZWRK
SVRDb2RlRm9yQ2FsbCgpLT5hZGRyZXNzRm9yQ2FsbCgpOworICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBjb2RlUHRyID0KKyAgICAgICAgY2FsbGVlLT5leGVjdXRhYmxlKCktPmdlbmVyYXRlZEpJ
VENvZGVGb3JDYWxsKCktPmFkZHJlc3NGb3JDYWxsKAorICAgICAgICAgICAgKmV4ZWNDYWxsZWUt
PmNhbGxlckZyYW1lKCktPmNvZGVCbG9jaygpLT52bSgpLCBjYWxsZWUtPmV4ZWN1dGFibGUoKSwK
KyAgICAgICAgICAgIEFyaXR5Q2hlY2tOb3RSZXF1aXJlZCwgcmVnaXN0ZXJzKTsKICAgICAKICAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jazsKICAgICBpZiAoY2FsbGVlLT5leGVjdXRhYmxlKCktPmlz
SG9zdEZ1bmN0aW9uKCkpCkBAIC03OTMsNyArODEwLDcgQEAgc3RhdGljIGJvb2wgYXR0ZW1wdFRv
T3B0aW1pemVDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIEpTQ2VsbCogY2FsbGVl
QXMKICAgICAKICAgICBsaW5rQ2xvc3VyZUNhbGwoCiAgICAgICAgIGV4ZWNDYWxsZWUsIGNhbGxM
aW5rSW5mbywgY29kZUJsb2NrLAotICAgICAgICBjYWxsZWUtPnN0cnVjdHVyZSgpLCBjYWxsZWUt
PmV4ZWN1dGFibGUoKSwgY29kZVB0cik7CisgICAgICAgIGNhbGxlZS0+c3RydWN0dXJlKCksIGNh
bGxlZS0+ZXhlY3V0YWJsZSgpLCBjb2RlUHRyLCByZWdpc3RlcnMpOwogICAgIAogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtODAxLDI1ICs4MTgsNDYgQEAgc3RhdGljIGJvb2wgYXR0ZW1wdFRvT3B0
aW1pemVDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIEpTQ2VsbCogY2FsbGVlQXMK
IGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSog
ZXhlY0NhbGxlZSkKIHsKICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsOwotICAgIGNo
YXIqIHJlc3VsdCA9IHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwgQ29kZUZvckNh
bGwsIGNhbGxlZUFzRnVuY3Rpb25DZWxsKTsKKyAgICBjaGFyKiByZXN1bHQgPSB2aXJ0dWFsRm9y
V2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCk7CiAgICAgQ2FsbExpbmtJbmZvJiBj
YWxsTGlua0luZm8gPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+Z2V0
Q2FsbExpbmtJbmZvKGV4ZWNDYWxsZWUtPnJldHVyblBDKCkpOwogCi0gICAgaWYgKCFhdHRlbXB0
VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKGV4ZWNDYWxsZWUsIGNhbGxlZUFzRnVuY3Rpb25DZWxsLCBj
YWxsTGlua0luZm8pKQotICAgICAgICBsaW5rU2xvd0ZvcihleGVjQ2FsbGVlLCBjYWxsTGlua0lu
Zm8sIENvZGVGb3JDYWxsKTsKKyAgICBpZiAoIWF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwo
ZXhlY0NhbGxlZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCwgY2FsbGVlQXNGdW5j
dGlvbkNlbGwsIGNhbGxMaW5rSW5mbykpCisgICAgICAgIGxpbmtTbG93Rm9yKGV4ZWNDYWxsZWUs
IGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWly
ZWQpOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGNoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmlydHVhbENhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogeyAgICAKLSAgICBy
ZXR1cm4gdmlydHVhbEZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCk7CisgICAgcmV0dXJuIHZp
cnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90
UmVxdWlyZWQpOwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDb25z
dHJ1Y3QoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewotICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4
ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4ZWND
YWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQp
OwogfQogCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbFRoYXRQ
cmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3sKKyAgICBKU0NlbGwqIGNhbGxl
ZUFzRnVuY3Rpb25DZWxsOworICAgIGNoYXIqIHJlc3VsdCA9IHZpcnR1YWxGb3JXaXRoRnVuY3Rp
b24oZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycywgY2FsbGVl
QXNGdW5jdGlvbkNlbGwpOworICAgIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvID0gZXhlY0Nh
bGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmdldENhbGxMaW5rSW5mbyhleGVjQ2Fs
bGVlLT5yZXR1cm5QQygpKTsKKworICAgIGlmICghYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2Fs
bChleGVjQ2FsbGVlLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMsIGNhbGxlZUFzRnVuY3Rpb25DZWxs
LCBjYWxsTGlua0luZm8pKQorICAgICAgICBsaW5rU2xvd0ZvcihleGVjQ2FsbGVlLCBjYWxsTGlu
a0luZm8sIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworICAgIAorICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENh
bGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCit7ICAgIAorICAgIHJl
dHVybiB2aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdp
c3RlcnMpOworfQorCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1
Y3RUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCit7CisgICAgcmV0dXJu
IHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0cnVjdCwgTXVzdFByZXNlcnZlUmVn
aXN0ZXJzKTsKK30KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUxlc3Mo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyKQogewpAQCAtOTc0LDcgKzEwMTIsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uRGVidWcoRXhlY1N0YXRlKiBleGVjLCBpbnQzMl90IGRlYnVnSG9va0lEKQogfQog
CiAjaWYgRU5BQkxFKERGR19KSVQpCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGlt
aXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4KQorU2xvd1BhdGhSZXR1
cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBp
bnQzMl90IGJ5dGVjb2RlSW5kZXgpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC0xMDI0LDcgKzEwNjIs
NyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhl
YywgaW50MzJfdCBieXRlY29kZUluZGV4KQogICAgICAgICBjb2RlQmxvY2stPnVwZGF0ZUFsbFBy
ZWRpY3Rpb25zKCk7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAg
ICAgICBkYXRhTG9nKCJDaG9vc2luZyBub3QgdG8gb3B0aW1pemUgIiwgKmNvZGVCbG9jaywgIiB5
ZXQsIGJlY2F1c2UgdGhlIHRocmVzaG9sZCBoYXNuJ3QgYmVlbiByZWFjaGVkLlxuIik7Ci0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgIH0K
ICAgICAKICAgICBpZiAoY29kZUJsb2NrLT5tX3Nob3VsZEFsd2F5c0JlSW5saW5lZCkgewpAQCAt
MTAzMiwxOCArMTA3MCwxOSBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXpl
KEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4KQogICAgICAgICBjb2RlQmxv
Y2stPm9wdGltaXplQWZ0ZXJXYXJtVXAoKTsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VP
U1IoKSkKICAgICAgICAgICAgIGRhdGFMb2coIkNob29zaW5nIG5vdCB0byBvcHRpbWl6ZSAiLCAq
Y29kZUJsb2NrLCAiIHlldCwgYmVjYXVzZSBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZCA9PSB0cnVl
LlxuIik7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAs
IDApOwogICAgIH0KIAogICAgIC8vIFdlIGNhbm5vdCBiZSBpbiB0aGUgcHJvY2VzcyBvZiBhc3lu
Y2hyb25vdXMgY29tcGlsYXRpb24gYW5kIGFsc28gaGF2ZSBhbiBvcHRpbWl6ZWQKICAgICAvLyBy
ZXBsYWNlbWVudC4KKyAgICBERkc6OldvcmtsaXN0KiB3b3JrbGlzdCA9IERGRzo6ZXhpc3RpbmdH
bG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpOwogICAgIEFTU0VSVCgKLSAgICAgICAgIXZtLndvcmts
aXN0Ci0gICAgICAgIHx8ICEodm0ud29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUoREZHOjpDb21w
aWxhdGlvbktleShjb2RlQmxvY2ssIERGRzo6REZHTW9kZSkpICE9IERGRzo6V29ya2xpc3Q6Ok5v
dEtub3duCisgICAgICAgICF3b3JrbGlzdAorICAgICAgICB8fCAhKHdvcmtsaXN0LT5jb21waWxh
dGlvblN0YXRlKERGRzo6Q29tcGlsYXRpb25LZXkoY29kZUJsb2NrLCBERkc6OkRGR01vZGUpKSAh
PSBERkc6OldvcmtsaXN0OjpOb3RLbm93bgogICAgICAgICAmJiBjb2RlQmxvY2stPmhhc09wdGlt
aXplZFJlcGxhY2VtZW50KCkpKTsKIAogICAgIERGRzo6V29ya2xpc3Q6OlN0YXRlIHdvcmtsaXN0
U3RhdGU7Ci0gICAgaWYgKHZtLndvcmtsaXN0KSB7CisgICAgaWYgKHdvcmtsaXN0KSB7CiAgICAg
ICAgIC8vIFRoZSBjYWxsIHRvIERGRzo6V29ya2xpc3Q6OmNvbXBsZXRlQWxsUmVhZHlQbGFuc0Zv
clZNKCkgd2lsbCBjb21wbGV0ZSBhbGwgcmVhZHkKICAgICAgICAgLy8gKGkuZS4gY29tcGlsZWQp
IGNvZGUgYmxvY2tzLiBCdXQgaWYgaXQgY29tcGxldGVzIG91cnMsIHdlIGFsc28gbmVlZCB0byBr
bm93CiAgICAgICAgIC8vIHdoYXQgdGhlIHJlc3VsdCB3YXMgc28gdGhhdCB3ZSBkb24ndCBwbG93
IGFoZWFkIGFuZCBhdHRlbXB0IE9TUiBvciBpbW1lZGlhdGUKQEAgLTEwNjIsNyArMTEwMSw3IEBA
IGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBp
bnQzMl90IGJ5dGVjb2RlSW5kZXgpCiAgICAgICAgIC8vIHByb2JhYmx5IGEgd2FzdGUgb2YgbWVt
b3J5LiBPdXIgZ29hbCBoZXJlIGlzIHRvIGNvbXBsZXRlIGNvZGUgYmxvY2tzIGFzIHNvb24gYXMK
ICAgICAgICAgLy8gcG9zc2libGUgaW4gb3JkZXIgdG8gbWluaW1pemUgdGhlIGNoYW5jZXMgb2Yg
dXMgZXhlY3V0aW5nIGJhc2VsaW5lIGNvZGUgYWZ0ZXIKICAgICAgICAgLy8gb3B0aW1pemVkIGNv
ZGUgaXMgYWxyZWFkeSBhdmFpbGFibGUuCi0gICAgICAgIHdvcmtsaXN0U3RhdGUgPSB2bS53b3Jr
bGlzdC0+Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oCisgICAgICAgIHdvcmtsaXN0U3RhdGUg
PSB3b3JrbGlzdC0+Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oCiAgICAgICAgICAgICB2bSwg
REZHOjpDb21waWxhdGlvbktleShjb2RlQmxvY2ssIERGRzo6REZHTW9kZSkpOwogICAgIH0gZWxz
ZQogICAgICAgICB3b3JrbGlzdFN0YXRlID0gREZHOjpXb3JrbGlzdDo6Tm90S25vd247CkBAIC0x
MDcyLDcgKzExMTEsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4
ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4KQogICAgICAgICAvLyByZXBsYWNl
bWVudC4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVw
bGFjZW1lbnQoKSk7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0T3B0aW1pemF0aW9uVGhyZXNob2xk
QmFzZWRPbkNvbXBpbGF0aW9uUmVzdWx0KENvbXBpbGF0aW9uRGVmZXJyZWQpOwotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICB9CiAKICAg
ICBpZiAod29ya2xpc3RTdGF0ZSA9PSBERkc6OldvcmtsaXN0OjpDb21waWxlZCkgewpAQCAtMTA4
NSw3ICsxMTI0LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVj
U3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKICAgICAgICAgICAgIGNvZGVCbG9j
ay0+dXBkYXRlQWxsUHJlZGljdGlvbnMoKTsKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJi
b3NlT1NSKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ29kZSBibG9jayAiLCAqY29kZUJs
b2NrLCAiIHdhcyBjb21waWxlZCBidXQgaXQgZG9lc24ndCBoYXZlIGFuIG9wdGltaXplZCByZXBs
YWNlbWVudC5cbiIpOwotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4g
ZW5jb2RlUmVzdWx0KDAsIDApOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChjb2RlQmxvY2st
Pmhhc09wdGltaXplZFJlcGxhY2VtZW50KCkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJv
c2VPU1IoKSkKQEAgLTExMTAsNyArMTE0OSw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBpbnQzMl90IGJ5dGVjb2RlSW5kZXgpCiAgICAg
ICAgICAgICAgICAgICAgICIoIiwgKmNvZGVCbG9jay0+cmVwbGFjZW1lbnQoKSwgIikgKGluIGxv
b3ApLlxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjb2RlQmxvY2stPnJlcGxhY2Vt
ZW50KCktPmpldHRpc29uKENvdW50UmVvcHRpbWl6YXRpb24pOwotICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCFjb2RlQmxvY2stPnNob3VsZE9wdGltaXplTm93KCkp
IHsKQEAgLTExMTksNyArMTE1OCw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0
aW1pemUoRXhlY1N0YXRlKiBleGVjLCBpbnQzMl90IGJ5dGVjb2RlSW5kZXgpCiAgICAgICAgICAg
ICAgICAgICAgICJEZWxheWluZyBvcHRpbWl6YXRpb24gZm9yICIsICpjb2RlQmxvY2ssCiAgICAg
ICAgICAgICAgICAgICAgICIgYmVjYXVzZSBvZiBpbnN1ZmZpY2llbnQgcHJvZmlsaW5nLlxuIik7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVy
biBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoT3B0aW9uczo6
dmVyYm9zZU9TUigpKQpAQCAtMTE0NywxMiArMTE4NiwxMSBAQCBjaGFyKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4
KQogICAgICAgICB9CiAKICAgICAgICAgQ29tcGlsYXRpb25SZXN1bHQgcmVzdWx0ID0gREZHOjpj
b21waWxlKAotICAgICAgICAgICAgdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQo
KSwgREZHOjpERkdNb2RlLCBieXRlY29kZUluZGV4LAotICAgICAgICAgICAgbXVzdEhhbmRsZVZh
bHVlcywgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSgpLAotICAg
ICAgICAgICAgdm0uZW5zdXJlV29ya2xpc3QoKSk7CisgICAgICAgICAgICB2bSwgY29kZUJsb2Nr
LT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCAwLCBERkc6OkRGR01vZGUsIGJ5dGVjb2RlSW5kZXgs
CisgICAgICAgICAgICBtdXN0SGFuZGxlVmFsdWVzLCBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjazo6Y3JlYXRlKCkpOwogICAgICAgICAKICAgICAgICAgaWYgKHJlc3VsdCAhPSBD
b21waWxhdGlvblN1Y2Nlc3NmdWwpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg
IHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgfQogICAgIAogICAgIENvZGVCbG9jayog
b3B0aW1pemVkQ29kZUJsb2NrID0gY29kZUJsb2NrLT5yZXBsYWNlbWVudCgpOwpAQCAtMTE2Niw3
ICsxMjA0LDggQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3Rh
dGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKICAgICAgICAgfQogCiAgICAgICAgIGNv
ZGVCbG9jay0+b3B0aW1pemVTb29uKCk7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjaGFy
Kj4oYWRkcmVzcyk7CisgICAgICAgIEFTU0VSVChleGVjLT5jb2RlQmxvY2soKSA9PSBvcHRpbWl6
ZWRDb2RlQmxvY2spOworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KGFkZHJlc3MsIGV4ZWMt
PnRvcE9mRnJhbWUoKSk7CiAgICAgfQogCiAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkg
ewpAQCAtMTE5NSwxNCArMTIzNCwxNCBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9w
dGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4KQogICAgICAgICAg
ICAgICAgICpjb2RlQmxvY2stPnJlcGxhY2VtZW50KCksICIgKGFmdGVyIE9TUiBmYWlsKS5cbiIp
OwogICAgICAgICB9CiAgICAgICAgIG9wdGltaXplZENvZGVCbG9jay0+amV0dGlzb24oQ291bnRS
ZW9wdGltaXphdGlvbik7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZW5jb2Rl
UmVzdWx0KDAsIDApOwogICAgIH0KIAogICAgIC8vIE9TUiBmYWlsZWQgdGhpcyB0aW1lLCBidXQg
aXQgbWlnaHQgc3VjY2VlZCBuZXh0IHRpbWUhIExldCB0aGUgY29kZSBydW4gYSBiaXQKICAgICAv
LyBsb25nZXIgYW5kIHRoZW4gdHJ5IGFnYWluLgogICAgIGNvZGVCbG9jay0+b3B0aW1pemVBZnRl
cldhcm1VcCgpOwogICAgIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBlbmNvZGVSZXN1bHQo
MCwgMCk7CiB9CiAjZW5kaWYKIApAQCAtMTUzMCwxMyArMTU2OSwxMyBAQCBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3RhbmNlT2YoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlc3VsdCkp
OwogfQogCi1DYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZUFuZEFsbG9jRnJh
bWVGb3JWYXJhcmdzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3Vt
ZW50cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikKK0NhbGxGcmFtZSogSklUX09QRVJBVElP
TiBvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikKIHsKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
JnZtLCBleGVjKTsKICAgICBKU1N0YWNrKiBzdGFjayA9ICZleGVjLT5pbnRlcnByZXRlcigpLT5z
dGFjaygpOwogICAgIEpTVmFsdWUgYXJndW1lbnRzID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRB
cmd1bWVudHMpOwotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gc2l6ZUFuZEFsbG9jRnJh
bWVGb3JWYXJhcmdzKGV4ZWMsIHN0YWNrLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyKTsK
KyAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IHNpemVGcmFtZUZvclZhcmFyZ3MoZXhlYywg
c3RhY2ssIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIpOwogICAgIHJldHVybiBuZXdDYWxs
RnJhbWU7CiB9CiAKQEAgLTE3MjksMTIgKzE3NjgsMTEgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkluaXRHbG9iYWxDb25zdChFeGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKiBwYykK
ICAgICBwY1sxXS51LnJlZ2lzdGVyUG9pbnRlci0+c2V0KCp2bSwgZXhlYy0+Y29kZUJsb2NrKCkt
Pmdsb2JhbE9iamVjdCgpLCB2YWx1ZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBsb29rdXBF
eGNlcHRpb25IYW5kbGVyKEV4ZWNTdGF0ZSogZXhlYykKK3ZvaWQgSklUX09QRVJBVElPTiBsb29r
dXBFeGNlcHRpb25IYW5kbGVyKFZNKiB2bSwgRXhlY1N0YXRlKiBleGVjKQogewotICAgIFZNKiB2
bSA9ICZleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4
ZWMpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMsIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlcjo6Vk1FbnRyeVNlbnRpbmVsT0spOwogCi0gICAgSlNWYWx1ZSBleGNlcHRp
b25WYWx1ZSA9IGV4ZWMtPmV4Y2VwdGlvbigpOworICAgIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUg
PSB2bS0+ZXhjZXB0aW9uKCk7CiAgICAgQVNTRVJUKGV4Y2VwdGlvblZhbHVlKTsKICAgICAKICAg
ICBnZW5lcmljVW53aW5kKHZtLCBleGVjLCBleGNlcHRpb25WYWx1ZSk7CkBAIC0xNzY3LDcgKzE4
MDUsNiBAQCBhc20gKAogIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5W
YWx1ZSkgIlxuIgogSElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lN
Qk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgotICAgICJtb3YgMCgl
cmJwKSwgJXJicFxuIiAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3Yg
JXJicCwgJXJkaVxuIgogICAgICJqbXAgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CkBAIC0xNzc4LDggKzE4MTUsMTEgQEAgYXNt
ICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIK
IEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9TVFJJTkco
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibW92IDAoJWVicCksICVlYnBc
biIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKLSAgICAibW92ICVlYnAsIDQoJWVz
cClcbiIKKyAgICAibW92ICglZXNwKSwgJWVheFxuIgorICAgICJwdXNoICVlYnBcbiIKKyAgICAi
bGVhbCAtNCglZXNwKSwgJWVzcFxuIgorICAgICJwdXNoICVlYnBcbiIKKyAgICAicHVzaCAlZWF4
XG4iCiAgICAgImptcCAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0
aEV4ZWNTdGF0ZSkgIlxuIgogKTsKIApAQCAtMTc5Miw3ICsxODMyLDYgQEAgSElERV9TWU1CT0wo
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogIi50aHVtYiIgIlxuIgogIi50aHVtYl9mdW5j
ICIgVEhVTUJfRlVOQ19QQVJBTShnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xf
U1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgImxkciByNywgW3I3
LCAjMF0iICJcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAibW92IHIw
LCByNyIgIlxuIgogICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOwpAQCAtMTgwNCw3ICsxODQzLDYgQEAgYXNtICgKIEhJ
REVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIElOTElORV9BUk1fRlVOQ1RJ
T04oZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkKIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibGRyIHIxMSwgW3IxMSwgIzBdIiAiXG4iIC8vIENhbGxl
ckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdiByMCwgcjExIiAiXG4iCiAgICAgImIg
IiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJc
biIKICk7CkBAIC0xODE2LDcgKzE4NTQsNiBAQCBhc20gKAogIi5nbG9ibCAiIFNZTUJPTF9TVFJJ
TkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogSElERV9TWU1CT0woZ2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAi
OiIgIlxuIgotICAgICJsZHVyIHgyOSwgW3gyOSwgIzBdIiAiXG4iCiAgICAgICJtb3YgeDAsIHgy
OSIgIlxuIgogICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVl
V2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MjgsNyArMTg2NSw2IEBAIGFzbSAoCiBISURF
X1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCiAgICAgTE9BRF9GVU5DVElPTl9UT19UOShnZXRI
b3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkKLSAgICAibHcgJGZwLCAwKCRmcCkiICJc
biIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAibW92ZSAkYTAsICRmcCIg
IlxuIgogICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRo
RXhlY1N0YXRlKSAiXG4iCiApOwpAQCAtMTgzOSw3ICsxODc1LDYgQEAgYXNtICgKICIuZ2xvYmwg
IiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIEhJREVfU1lNQk9M
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibW92LmwgQHIxNCwgcjE0IiAiXG4iIC8vIENhbGxl
ckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdiByMTQsIHI0IiAiXG4iCiAgICAgIm1v
di5sIDJmLCAiIFNINF9TQ1JBVENIX1JFR0lTVEVSICJcbiIKICAgICAiYnJhZiAiIFNINF9TQ1JB
VENIX1JFR0lTVEVSICJcbiIKQEAgLTE4NTIsNyArMTg4Nyw2IEBAIFNZTUJPTF9TVFJJTkcoZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKIGV4dGVybiAiQyIgewogICAgIF9fZGVjbHNw
ZWMobmFrZWQpIEVuY29kZWRKU1ZhbHVlIEhPU1RfQ0FMTF9SRVRVUk5fVkFMVUVfT1BUSU9OIGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUoKQogICAgIHsKLSAgICAgICAgX19hc20gbW92IGVicCwgW2Vi
cCArIDBdOyAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICAgICBfX2FzbSBt
b3YgW2VzcCArIDRdLCBlYnA7CiAgICAgICAgIF9fYXNtIGptcCBnZXRIb3N0Q2FsbFJldHVyblZh
bHVlV2l0aEV4ZWNTdGF0ZQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmgKaW5kZXggNDNjYTYxNzdiZmJkMWQ1ZDM0NDg1NjRlMDAxMTBlZGEyZWE5NzAzNy4u
OTMzYjMxMTIxZDY2MjFjNmIxNTAxNGY3YTJhYmRmY2RiZmY0YmY5NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFC
TEUoSklUKQogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tbW9uU2xvd1Bh
dGhzLmgiCiAjaW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIK
ICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCkBAIC03Miw2ICs3Myw3IEBAIGV4dGVybiAiQyIgewog
ICAgIFBjOiBJbnN0cnVjdGlvbiogaS5lLiBieXRlY29kZSBQQwogICAgIFI6IFJlZ2lzdGVyCiAg
ICAgUzogc2l6ZV90CisgICAgU3BydDogU2xvd1BhdGhSZXR1cm5UeXBlCiAgICAgU3NpOiBTdHJ1
Y3R1cmVTdHViSW5mbyoKICAgICBTdDogU3RydWN0dXJlKgogICAgIFY6IHZvaWQKQEAgLTkyLDYg
Kzk0LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVy
YXRpb25fRUNDKShFeGVjU3RhdGUqLCBKU0NlbGwqLAogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUNJKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBT
dHJpbmdJbXBsKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJ
VE9wZXJhdGlvbl9FQ0opKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKTsKIHR5
cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VEQSko
RXhlY1N0YXRlKiwgZG91YmxlLCBKU0FycmF5Kik7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FRSkoRXhlY1N0YXRlKiwgRXhlY1N0YXRlKik7
CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9F
SSkoRXhlY1N0YXRlKiwgU3RyaW5nSW1wbCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9u
X0VKQSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTQXJyYXkqKTsKQEAgLTEzMyw2ICsx
MzYsNyBAQCB0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVyYXRpb25fRUop
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgc2l6ZV90IEpJVF9PUEVSQVRJ
T04gKCpTX0pJVE9wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVyYXRp
b25fRU9Kc3MpKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNTdHJpbmcqKTsKIHR5cGVkZWYgc2l6
ZV90IEpJVF9PUEVSQVRJT04gKCpTX0pJVE9wZXJhdGlvbl9KKShFbmNvZGVkSlNWYWx1ZSk7Cit0
eXBlZGVmIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OICgqU3BydF9KSVRPcGVyYXRp
b25fRVopKEV4ZWNTdGF0ZSosIGludDMyX3QpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04g
KCpWX0pJVE9wZXJhdGlvbl9FKShFeGVjU3RhdGUqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRUMpKEV4ZWNTdGF0ZSosIEpTQ2VsbCopOwogdHlwZWRlZiB2
b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ2IpKEV4ZWNTdGF0ZSosIENvZGVC
bG9jayopOwpAQCAtMTc0LDE4ICsxNzgsMTcgQEAgdHlwZWRlZiBjaGFyKiBKSVRfT1BFUkFUSU9O
ICgqUF9KSVRPcGVyYXRpb25fRVN0SikoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgRW5jb2QKIHR5
cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAoKlBfSklUT3BlcmF0aW9uX0VTdFBTKShFeGVjU3Rh
dGUqLCBTdHJ1Y3R1cmUqLCB2b2lkKiwgc2l6ZV90KTsKIHR5cGVkZWYgY2hhciogSklUX09QRVJB
VElPTiAoKlBfSklUT3BlcmF0aW9uX0VTdFNTKShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBzaXpl
X3QsIHNpemVfdCk7CiB0eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlv
bl9FU3RaKShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90KTsKLXR5cGVkZWYgY2hhciog
SklUX09QRVJBVElPTiAoKlBfSklUT3BlcmF0aW9uX0VaKShFeGVjU3RhdGUqLCBpbnQzMl90KTsK
IHR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAoKlBfSklUT3BlcmF0aW9uX0VaWikoRXhlY1N0
YXRlKiwgaW50MzJfdCwgaW50MzJfdCk7CiB0eXBlZGVmIFN0cmluZ0ltcGwqIEpJVF9PUEVSQVRJ
T04gKCpJX0pJVE9wZXJhdGlvbl9FSnNzKShFeGVjU3RhdGUqLCBKU1N0cmluZyopOwogdHlwZWRl
ZiBKU1N0cmluZyogSklUX09QRVJBVElPTiAoKkpzc19KSVRPcGVyYXRpb25fRVopKEV4ZWNTdGF0
ZSosIGludDMyX3QpOwogCiAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGxvb2t1cCBhbiBleGNl
cHRpb24gaGFuZGVyLCBrZXllZCBieSBmYXVsdExvY2F0aW9uLCB3aGljaCBpcwogLy8gdGhlIHJl
dHVybiBsb2NhdGlvbiBmcm9tIG9uZSBvZiB0aGUgY2FsbHMgb3V0IHRvIG9uZSBvZiB0aGUgaGVs
cGVyIG9wZXJhdGlvbnMgYWJvdmUuCi0gICAgCi12b2lkIEpJVF9PUEVSQVRJT04gbG9va3VwRXhj
ZXB0aW9uSGFuZGxlcihFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CisKK3ZvaWQgSklUX09QRVJB
VElPTiBsb29rdXBFeGNlcHRpb25IYW5kbGVyKFZNKiwgRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFM
Owogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKEV4ZWNTdGF0
ZSopIFdURl9JTlRFUk5BTDsKIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0YWNrQ2hl
Y2soRXhlY1N0YXRlKiwgQ29kZUJsb2NrKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNTdGF0ZSosIENvZGVCbG9j
ayopIFdURl9JTlRFUk5BTDsKIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsQXJp
dHlDaGVjayhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBpbnQzMl90IEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWQoRXhlY1N0YXRlKiwg
U3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgU3RyaW5nSW1wbCopIFdURl9JTlRF
Uk5BTDsKQEAgLTIxMywxMiArMjE2LDE4IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsCiB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwog
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
IFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2Fs
bEV2YWwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25WaXJ0dWFsQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSosIEV4ZWNTdGF0ZSop
IFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGwoRXhl
Y1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5r
Q2xvc3VyZUNhbGwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25WaXJ0dWFsQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3QoRXhlY1N0YXRlKikgV1RGX0lO
VEVSTkFMOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ29uc3RydWN0KEV4ZWNT
dGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Nh
bGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNT
dGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVh
bENhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVncyhF
eGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxp
bmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CisK
IHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVMZXNzKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogc2l6ZV90IEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUxlc3NFcShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNvbXBhcmVHcmVhdGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwpAQCAtMjQyLDcgKzI1MSw3IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25UaHJvd1N0YXRpY0Vycm9yKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBpbnQzMl90CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3coRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EZWJ1ZyhFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiAjaWYgRU5BQkxFKERG
R19KSVQpCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSos
IGludDMyX3QpIFdURl9JTlRFUk5BTDsKK1Nsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKICNl
bmRpZgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SW5kZXgoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlKTsKICNpZiBVU0UoSlNWQUxV
RTY0KQpAQCAtMjY3LDcgKzI3Niw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UZWFy
T2ZmQXJndW1lbnRzKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopIFdURl9JCiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWQoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgYmFzZSwgY29uc3QgSWRlbnRpZmllciopIFdURl9JTlRFUk5BTDsKIEpTQ2Vs
bCogSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQTmFtZXMoRXhlY1N0YXRlKiwgSlNPYmplY3Qq
KSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklu
c3RhbmNlT2YoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHByb3Rv
KSBXVEZfSU5URVJOQUw7Ci1DYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZUFu
ZEFsbG9jRnJhbWVGb3JWYXJhcmdzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50
cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikgV1RGX0lOVEVSTkFMOworQ2FsbEZyYW1lKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3MoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IGZpcnN0RnJlZVJlZ2lzdGVyKSBXVEZfSU5U
RVJOQUw7CiBDYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTG9hZFZhcmFyZ3MoRXhl
Y1N0YXRlKiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBhcmd1bWVudHMpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVG9PYmplY3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRF
Uk5BTDsKIApAQCAtMjg3LDYgKzI5Niw2OCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
SW5pdEdsb2JhbENvbnN0KEV4ZWNTdGF0ZSosIEluc3RydWN0aW9uKik7CiAKIH0gLy8gZXh0ZXJu
ICJDIgogCitpbmxpbmUgUF9KSVRPcGVyYXRpb25fRSBvcGVyYXRpb25MaW5rRm9yKAorICAgIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lz
dGVycykKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIENvZGVGb3JDYWxsOgorICAg
ICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uTGlua0NhbGw7Cisg
ICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIG9w
ZXJhdGlvbkxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3M7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0OgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVy
cykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAg
ICAgICAgICByZXR1cm4gb3BlcmF0aW9uTGlua0NvbnN0cnVjdDsKKyAgICAgICAgY2FzZSBNdXN0
UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uTGlua0NvbnN0
cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQorCitp
bmxpbmUgUF9KSVRPcGVyYXRpb25fRSBvcGVyYXRpb25WaXJ0dWFsRm9yKAorICAgIENvZGVTcGVj
aWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykK
K3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIENvZGVGb3JDYWxsOgorICAgICAgICBz
d2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90
UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uVmlydHVhbENhbGw7CisgICAg
ICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJh
dGlvblZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3M7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0OgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVy
cykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAg
ICAgICAgICByZXR1cm4gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdDsKKyAgICAgICAgY2FzZSBN
dXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uVmlydHVh
bENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOwor
fQorCitpbmxpbmUgUF9KSVRPcGVyYXRpb25fRSBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxGb3Io
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBzd2l0Y2ggKHJlZ2lz
dGVycykgeworICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAg
ICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbDsKKyAgICBjYXNlIE11c3RQcmVzZXJ2
ZVJlZ2lzdGVyczoKKyAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbFRoYXRQ
cmVzZXJ2ZXNSZWdzOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJM
RShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mu
Y3BwCmluZGV4IDQyNDFiYWYzMmFkOWM0NTJkNTcyZjI5NDY3NGY2NjFkYmE5ODEwZmIuLjI2ZGQ0
ZDFhZjc0NWFmYTFmYmM1M2E5YzAyM2E2ZTQ3NDFhNjZhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MjAsNyAr
NTIwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVj
aWFsUmVnaXN0ZXJzKCksCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyhy
ZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgdHJ1ZSk7CisgICAgICAgIEpTVmFsdWVSZWdzKHJl
Z1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCB0cnVlKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0
aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dl
dEJ5SWRzLmFwcGVuZChnZW4pOwpAQCAtNTY2LDggKzU2Niw4IEBAIHZvaWQgSklUOjplbWl0X29w
X3B1dF9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAgSklUUHV0
QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0
ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAgICBj
YWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSks
IHJlZ1QyLCB0cnVlLAotICAgICAgICBtX2NvZGVCbG9jay0+ZWNtYU1vZGUoKSwgZGlyZWN0ID8g
RGlyZWN0IDogTm90RGlyZWN0KTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVl
UmVncyhyZWdUMSksIHJlZ1QyLCB0cnVlLCBtX2NvZGVCbG9jay0+ZWNtYU1vZGUoKSwKKyAgICAg
ICAgZGlyZWN0ID8gRGlyZWN0IDogTm90RGlyZWN0KTsKICAgICAKICAgICBnZW4uZ2VuZXJhdGVG
YXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKQEAg
LTEwNzgsNyArMTA3OCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFs
SW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkCiAgICAgcGF0Y2hCdWZm
ZXIubGluayhkb25lLCBieVZhbEluZm8tPmJhZFR5cGVKdW1wLmxhYmVsQXRPZmZzZXQoYnlWYWxJ
bmZvLT5iYWRUeXBlSnVtcFRvRG9uZSkpOwogICAgIAogICAgIGJ5VmFsSW5mby0+c3R1YlJvdXRp
bmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAotICAgICAgICBwYXRjaEJ1ZmZlciwKKyAgICAg
ICAgbV9jb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAogICAgICAgICAoIkJhc2VsaW5lIGdldF9ieV92
YWwgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHRvQ1N0cmluZygqbV9jb2RlQmxvY2sp
LmRhdGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7CiAgICAgCiAgICAgUmVwYXRjaEJ1ZmZl
ciByZXBhdGNoQnVmZmVyKG1fY29kZUJsb2NrKTsKQEAgLTExNDEsMTIgKzExNDEsMTIgQEAgdm9p
ZCBKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVy
bkFkZHJlc3NQdHIgcmV0dXJuQWQKICAgICBib29sIGlzRGlyZWN0ID0gbV9pbnRlcnByZXRlci0+
Z2V0T3Bjb2RlSUQoY3VycmVudEluc3RydWN0aW9uLT51Lm9wY29kZSkgPT0gb3BfcHV0X2J5X3Zh
bF9kaXJlY3Q7CiAgICAgaWYgKCFpc0RpcmVjdCkgewogICAgICAgICBieVZhbEluZm8tPnN0dWJS
b3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKLSAgICAgICAgICAgIHBhdGNoQnVmZmVy
LAorICAgICAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAogICAgICAgICAgICAgKCJC
YXNlbGluZSBwdXRfYnlfdmFsIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCB0b0NTdHJp
bmcoKm1fY29kZUJsb2NrKS5kYXRhKCksIHJldHVybkFkZHJlc3MudmFsdWUoKSkpOwogICAgICAg
ICAKICAgICB9IGVsc2UgewogICAgICAgICBieVZhbEluZm8tPnN0dWJSb3V0aW5lID0gRklOQUxJ
WkVfQ09ERV9GT1JfU1RVQigKLSAgICAgICAgICAgIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAg
bV9jb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAogICAgICAgICAgICAgKCJCYXNlbGluZSBwdXRfYnlf
dmFsX2RpcmVjdCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwgdG9DU3RyaW5nKCptX2Nv
ZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKICAgICB9CiAgICAgUmVw
YXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKG1fY29kZUJsb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCmluZGV4IDViYzhk
MWFiYjQ0MGE5NjAzMTRlZGQzNjg4Njc0Y2ZkMDFhYTBiNzkuLmQxOGZlYTcxNWNiMDNiMzdhYTky
NmQ4NDlhOGU1YWI5NTYzZWNkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgyLDcgKzQ4Miw3
IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJs
b2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJl
Z2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3M6OnBheWxv
YWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgdHJ1ZSk7CisgICAgICAg
IEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdU
MCksIHRydWUpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93
Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7CkBA
IC01MzAsNyArNTMwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKICAg
ICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVy
U2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1Zh
bHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLAor
ICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdU
MywgcmVnVDIpLAogICAgICAgICByZWdUMSwgdHJ1ZSwgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCks
IGRpcmVjdCA/IERpcmVjdCA6IE5vdERpcmVjdCk7CiAgICAgCiAgICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dHViUm91dGluZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5o
CmluZGV4IDAyMGVmNjkwNzlkMzE3YmE2YTJjYTA3NjAwNjFiNDk5NWRjZWRiMmQuLjc0ODY1NGJi
YzYxMzQ3ZGU5YmM2MDllODZiYzExNTY1MWEzZGQ0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJSb3V0aW5lLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE1MCwxMSArMTUwLDggQEAgcHJvdGVjdGVkOgogfTsK
IAogLy8gSGVscGVyIGZvciB0aGUgY3JlYXRpb24gb2Ygc2ltcGxlIHN0dWIgcm91dGluZXMgdGhh
dCBuZWVkIG5vIGhlbHAgZnJvbSB0aGUgR0MuCi0jZGVmaW5lIEZJTkFMSVpFX0NPREVfRk9SX1NU
VUIocGF0Y2hCdWZmZXIsIGRhdGFMb2dGQXJndW1lbnRzKSBcCi0gICAgKGFkb3B0UmVmKG5ldyBK
SVRTdHViUm91dGluZShGSU5BTElaRV9DT0RFKChwYXRjaEJ1ZmZlciksIGRhdGFMb2dGQXJndW1l
bnRzKSkpKQotCi0jZGVmaW5lIEZJTkFMSVpFX0NPREVfRk9SX0RGR19TVFVCKHBhdGNoQnVmZmVy
LCBkYXRhTG9nRkFyZ3VtZW50cykgXAotICAgIChhZG9wdFJlZihuZXcgSklUU3R1YlJvdXRpbmUo
RklOQUxJWkVfREZHX0NPREUoKHBhdGNoQnVmZmVyKSwgZGF0YUxvZ0ZBcmd1bWVudHMpKSkpCisj
ZGVmaW5lIEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwgZGF0
YUxvZ0ZBcmd1bWVudHMpIFwKKyAgICAoYWRvcHRSZWYobmV3IEpJVFN0dWJSb3V0aW5lKEZJTkFM
SVpFX0NPREVfRk9SKChjb2RlQmxvY2spLCAocGF0Y2hCdWZmZXIpLCBkYXRhTG9nRkFyZ3VtZW50
cykpKSkKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YnMuaAppbmRleCAyNGQ5NWRmZDQ5YjhlNGFmMWMyNTA2YTg0Mjk3YTJjOGZmZTk0NjdkLi4xMzMx
NDRlMTg5YTM4Y2FkZWYxYTM2ZWIzZTIyZTEyYjY2MjhmMDkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVicy5oCkBAIC0zNywxNCArMzcsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYg
RU5BQkxFKEpJVCkKIAogI2lmIE9TKFdJTkRPV1MpCi1jbGFzcyBFeGVjU3RhdGU7Ci1jbGFzcyBS
ZWdpc3RlcjsKIHN0cnVjdCBQcm90b0NhbGxGcmFtZTsKK2NsYXNzIFZNOwogCiBleHRlcm4gIkMi
IHsKLSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqLCBFeGVjU3RhdGUq
KiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOwotICAgIHZvaWQgcmV0dXJuRnJvbUphdmFT
Y3JpcHQoKTsKLSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiwg
RXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKKyAgICBFbmNvZGVkSlNW
YWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqLCBWTSosIFByb3RvQ2FsbEZyYW1lKik7CisgICAg
RW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCosIFZNKiwgUHJvdG9DYWxs
RnJhbWUqKTsKKyAgICB2b2lkIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uKCk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzTVNWQzY0LmFzbQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGJjZDlkZGI0OWZkZDdlNmMxNjQ4MTlhZDdmNjY5MjU3
MjVlNTJmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzTVNWQzY0LmFzbQorKysgL2Rldi9udWxs
CkBAIC0xLDI1NSArMCwwIEBACi07LyoKLTsgQ29weXJpZ2h0IChDKSAyMDEzIERpZ2lhIFBsYy4g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi07Ci07IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotOyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LTsgYXJlIG1ldDoKLTsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotOyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotOyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi07ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi07Ci07IFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotOyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotOyBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLTsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLTsgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi07IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLTsgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi07IFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLTsgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi07IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotOyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotOyovCi0KLUVYVEVS
TiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSA6IG5lYXIKLQotUFVCTElDIGNh
bGxUb0phdmFTY3JpcHQKLVBVQkxJQyByZXR1cm5Gcm9tSmF2YVNjcmlwdAotUFVCTElDIGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUKLQotX1RFWFQgICBTRUdNRU5UCi0KLWNhbGxUb0phdmFTY3JpcHQg
UFJPQwotICAgIDs7IFRoaXMgZnVuY3Rpb24gaXMgYmVsaWV2ZWQgdG8gYmUgYW4gYWNjdXJhdGUg
YWRhcHRhdGlvbiBvZiB0aGUgYXNzZW1ibHkgY3JlYXRlZCBieSB0aGUgbGxpbnQgc3R1YiBvZiB0
aGUKLSAgICA7OyBzYW1lIG5hbWUgd2l0aCBjaGFuZ2VzIGZvciBhcmd1bWVudCByZWdpc3RlciBk
aWZmZXJlbmNlcy4KLSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcnNwXQotICAgIHB1c2ggcmJwCi0g
ICAgbW92IHJheCwgcmJwIDsgU2F2ZSBwcmV2aW91cyBmcmFtZSBwb2ludGVyCi0gICAgbW92IHJi
cCwgcnNwCi0gICAgcHVzaCByMTIKLSAgICBwdXNoIHIxMwotICAgIHB1c2ggcjE0Ci0gICAgcHVz
aCByMTUKLSAgICBwdXNoIHJieAotICAgIHB1c2ggcnNpCi0gICAgcHVzaCByZGkKLQotICAgIDsg
SklUIG9wZXJhdGlvbnMgY2FuIHVzZSB1cCB0byA2IGFyZ3MgKDQgaW4gcmVnaXN0ZXJzIGFuZCAy
IG9uIHRoZSBzdGFjaykuCi0gICAgOyBJbiBhZGRpdGlvbiwgWDg2XzY0IEFCSSBzcGVjaWZpZXMg
dGhhdCB0aGUgd29yc2UgY2FzZSBzdGFjayBhbGlnbm1lbnQKLSAgICA7IHJlcXVpcmVtZW50IGlz
IDMyIGJ5dGVzLiBCYXNlZCBvbiB0aGVzZSBmYWN0b3JzLCB3ZSBuZWVkIHRvIHBhZCB0aGUgc3Rh
Y2sKLSAgICA7IGFuIGFkZGl0aW9uYWwgMjhoIGJ5dGVzLgotICAgIHN1YiByc3AsIDI4aAotCi0g
ICAgbW92IHJicCwgcjkKLSAgICBzdWIgcmJwLCA0MAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsg
NDBdLCAwCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAzMl0sIHJkeAotCi0gICAgbW92IHJheCwg
cXdvcmQgcHRyW3JkeF0KLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDI0XSwgcmF4Ci0gICAgbW92
IHF3b3JkIHB0cltyYnAgKyAxNl0sIDEKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDhdLCByMTAK
LSAgICBtb3YgcXdvcmQgcHRyW3JicF0sIHJheAotICAgIG1vdiByYXgsIHJicAotCi0gICAgbW92
IGVieCwgZHdvcmQgcHRyW3I4ICsgNDBdCi0gICAgYWRkIHJieCwgNgotICAgIHNhbCByYngsIDMK
LSAgICBzdWIgcmJwLCByYngKLSAgICBtb3YgcXdvcmQgcHRyW3JicF0sIHJheAotCi0gICAgbW92
IHJheCwgNQotCi1jb3B5SGVhZGVyTG9vcDoKLSAgICBzdWIgcmF4LCAxCi0gICAgbW92IHIxMCwg
cXdvcmQgcHRyW3I4ICsgcmF4ICogOF0KLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIHJheCAqIDgg
KyAxNl0sIHIxMAotICAgIHRlc3QgcmF4LCByYXgKLSAgICBqbnogY29weUhlYWRlckxvb3AKLQot
ICAgIG1vdiBlYngsIGR3b3JkIHB0cltyOCArIDI0XQotICAgIHN1YiByYngsIDEKLSAgICBtb3Yg
cjEwZCwgZHdvcmQgcHRyW3I4ICsgNDBdCi0gICAgc3ViIHIxMCwgMQotICAgIGNtcCByYngsIHIx
MAotICAgIGplIGNvcHlBcmdzCi0gICAgbW92IHJheCwgMGFoCi0KLWZpbGxFeHRyYUFyZ3NMb29w
OgotICAgIHN1YiByMTAsIDEKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIHIxMCAqIDggKyA1Nl0s
IHJheAotICAgIGNtcCByYngsIHIxMAotICAgIGpuZSBmaWxsRXh0cmFBcmdzTG9vcAotCi1jb3B5
QXJnczoKLSAgICBtb3YgcmF4LCBxd29yZCBwdHJbcjggKyA0OF0KLQotY29weUFyZ3NMb29wOgot
ICAgIHRlc3QgZWJ4LCBlYngKLSAgICBqeiBjb3B5QXJnc0RvbmUKLSAgICBzdWIgZWJ4LCAxCi0g
ICAgbW92IHIxMCwgcXdvcmQgcHRyW3JheCArIHJieCAqIDhdCi0gICAgbW92IHF3b3JkIHB0clty
YnAgKyByYnggKiA4ICsgNTZdLCByMTAKLSAgICBqbXAgY29weUFyZ3NMb29wCi0KLWNvcHlBcmdz
RG9uZToKLSAgICBtb3YgcXdvcmQgcHRyW3JkeF0sIHJicAotICAgIG1vdiByMTQsIDBGRkZGMDAw
MDAwMDAwMDAwaAotICAgIG1vdiByMTUsIDBGRkZGMDAwMDAwMDAwMDAyaAotICAgIGNhbGwgcmN4
Ci0gICAgY21wIHF3b3JkIHB0cltyYnAgKyAxNl0sIDEKLSAgICBqZSBjYWxsZWVGcmFtZVBvcHBl
ZAotICAgIG1vdiByYnAsIHF3b3JkIHB0cltyYnBdCi0KLWNhbGxlZUZyYW1lUG9wcGVkOgotICAg
IG1vdiByYngsIHF3b3JkIHB0cltyYnAgKyAzMl0gOyBWTS50b3BDYWxsRnJhbWUKLSAgICBtb3Yg
cjEwLCBxd29yZCBwdHJbcmJwICsgMjRdCi0gICAgbW92IHF3b3JkIHB0cltyYnhdLCByMTAKLSAg
ICBhZGQgcnNwLCAyOGgKLSAgICBwb3AgcmRpCi0gICAgcG9wIHJzaQotICAgIHBvcCByYngKLSAg
ICBwb3AgcjE1Ci0gICAgcG9wIHIxNAotICAgIHBvcCByMTMKLSAgICBwb3AgcjEyCi0gICAgcG9w
IHJicAotICAgIHJldAotY2FsbFRvSmF2YVNjcmlwdCBFTkRQCi0KLWNhbGxUb05hdGl2ZUZ1bmN0
aW9uIFBST0MKLSAgICA7OyBUaGlzIGZ1bmN0aW9uIGlzIGJlbGlldmVkIHRvIGJlIGFuIGFjY3Vy
YXRlIGFkYXB0YXRpb24gb2YgdGhlIGFzc2VtYmx5IGNyZWF0ZWQgYnkgdGhlIGxsaW50IHN0dWIg
b2YgdGhlCi0gICAgOzsgc2FtZSBuYW1lIHdpdGggY2hhbmdlcyBmb3IgYXJndW1lbnQgcmVnaXN0
ZXIgZGlmZmVyZW5jZXMuCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3JzcF0KLSAgICBwdXNoIHJi
cAotICAgIG1vdiByYXgsIHJicCA7IFNhdmUgcHJldmlvdXMgZnJhbWUgcG9pbnRlcgotICAgIG1v
diByYnAsIHJzcAotICAgIHB1c2ggcjEyCi0gICAgcHVzaCByMTMKLSAgICBwdXNoIHIxNAotICAg
IHB1c2ggcjE1Ci0gICAgcHVzaCByYngKLSAgICBwdXNoIHJzaQotICAgIHB1c2ggcmRpCi0KLSAg
ICA7IEpJVCBvcGVyYXRpb25zIGNhbiB1c2UgdXAgdG8gNiBhcmdzICg0IGluIHJlZ2lzdGVycyBh
bmQgMiBvbiB0aGUgc3RhY2spLgotICAgIDsgSW4gYWRkaXRpb24sIFg4Nl82NCBBQkkgc3BlY2lm
aWVzIHRoYXQgdGhlIHdvcnNlIGNhc2Ugc3RhY2sgYWxpZ25tZW50Ci0gICAgOyByZXF1aXJlbWVu
dCBpcyAzMiBieXRlcy4gQmFzZWQgb24gdGhlc2UgZmFjdG9ycywgd2UgbmVlZCB0byBwYWQgdGhl
IHN0YWNrCi0gICAgOyBhbiBhZGRpdGlvbmFsIDI4aCBieXRlcy4KLSAgICBzdWIgcnNwLCAyOGgK
LQotICAgIG1vdiByYnAsIHI5Ci0gICAgc3ViIHJicCwgNDAKLSAgICBtb3YgcXdvcmQgcHRyW3Ji
cCArIDQwXSwgMAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMzJdLCByZHgKLQotICAgIG1vdiBy
YXgsIHF3b3JkIHB0cltyZHhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAyNF0sIHJheAotICAg
IG1vdiBxd29yZCBwdHJbcmJwICsgMTZdLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyA4XSwg
cjEwCi0gICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLSAgICBtb3YgcmF4LCByYnAKLQotICAg
IG1vdiBlYngsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIGFkZCByYngsIDYKLSAgICBzYWwgcmJ4
LCAzCi0gICAgc3ViIHJicCwgcmJ4Ci0gICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLQotICAg
IG1vdiByYXgsIDUKLQotY29weUhlYWRlckxvb3A6Ci0gICAgc3ViIHJheCwgMQotICAgIG1vdiBy
MTAsIHF3b3JkIHB0cltyOCArIHJheCAqIDhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByYXgg
KiA4ICsgMTZdLCByMTAKLSAgICB0ZXN0IHJheCwgcmF4Ci0gICAgam56IGNvcHlIZWFkZXJMb29w
Ci0KLSAgICBtb3YgZWJ4LCBkd29yZCBwdHJbcjggKyAyNF0KLSAgICBzdWIgcmJ4LCAxCi0gICAg
bW92IHIxMGQsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIHN1YiByMTAsIDEKLSAgICBjbXAgcmJ4
LCByMTAKLSAgICBqZSBjb3B5QXJncwotICAgIG1vdiByYXgsIDBhaAotCi1maWxsRXh0cmFBcmdz
TG9vcDoKLSAgICBzdWIgcjEwLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByMTAgKiA4ICsg
NTZdLCByYXgKLSAgICBjbXAgcmJ4LCByMTAKLSAgICBqbmUgZmlsbEV4dHJhQXJnc0xvb3AKLQot
Y29weUFyZ3M6Ci0gICAgbW92IHJheCwgcXdvcmQgcHRyW3I4ICsgNDhdCi0KLWNvcHlBcmdzTG9v
cDoKLSAgICB0ZXN0IHJieCwgcmJ4Ci0gICAganogY29weUFyZ3NEb25lCi0gICAgc3ViIHJieCwg
MQotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyYXggKyByYnggKiA4XQotICAgIG1vdiBxd29yZCBw
dHJbcmJwICsgcmJ4ICogOCArIDU2XSwgcjEwCi0gICAgam1wIGNvcHlBcmdzTG9vcAotCi1jb3B5
QXJnc0RvbmU6Ci0gICAgbW92IHF3b3JkIHB0cltyZHhdLCByYnAKLSAgICBtb3YgcjE0LCAwRkZG
RjAwMDAwMDAwMDAwMGgKLSAgICBtb3YgcjE1LCAwRkZGRjAwMDAwMDAwMDAwMmgKLQotICAgIG1v
diByYXgsIHJjeAotICAgIG1vdiByY3gsIHJicAotICAgIGNhbGwgcmF4Ci0KLSAgICBjbXAgcXdv
cmQgcHRyW3JicCArIDE2XSwgMQotICAgIGplIGNhbGxlZUZyYW1lUG9wcGVkCi0gICAgbW92IHJi
cCwgcXdvcmQgcHRyW3JicF0KLQotY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAgbW92IHJieCwgcXdv
cmQgcHRyW3JicCArIDMyXSA7IFZNLnRvcENhbGxGcmFtZQotICAgIG1vdiByMTAsIHF3b3JkIHB0
cltyYnAgKyAyNF0KLSAgICBtb3YgcXdvcmQgcHRyW3JieF0sIHIxMAotICAgIGFkZCByc3AsIDI4
aAotICAgIHBvcCByZGkKLSAgICBwb3AgcnNpCi0gICAgcG9wIHJieAotICAgIHBvcCByMTUKLSAg
ICBwb3AgcjE0Ci0gICAgcG9wIHIxMwotICAgIHBvcCByMTIKLSAgICBwb3AgcmJwCi0gICAgcmV0
Ci1jYWxsVG9OYXRpdmVGdW5jdGlvbiBFTkRQCi0KLXJldHVybkZyb21KYXZhU2NyaXB0IFBST0MK
LSAgICBhZGQgcnNwLCAyOGgKLSAgICBwb3AgcmRpCi0gICAgcG9wIHJzaQotICAgIHBvcCByYngK
LSAgICBwb3AgcjE1Ci0gICAgcG9wIHIxNAotICAgIHBvcCByMTMKLSAgICBwb3AgcjEyCi0gICAg
cG9wIHJicAotICAgIHJldAotcmV0dXJuRnJvbUphdmFTY3JpcHQgRU5EUAotCQotZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZSBQUk9DCi0gICAgbW92IHJicCwgW3JicF0gOyBDYWxsRnJhbWUKLSAgICBt
b3YgcmN4LCByYnAgOyByY3ggaXMgZmlyc3QgYXJndW1lbnQgcmVnaXN0ZXIgb24gV2luZG93cwot
ICAgIGptcCBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZQotZ2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZSBFTkRQCi0KLV9URVhUICAgRU5EUwotCi1FTkQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNYODYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnNYODYuaAppbmRleCBhMWZiZGVmMmEyNGEyNmMwMTg0MGJiYWM1NTcyMDRl
NzU0ZWJlY2MxLi5kZGRiMjE5MTdlYWI4MDNkZmMwMjVmNWIyNDk2NWYzNWFlODc0YzhjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic1g4Ni5oCkBAIC0yMDAsMjMwICsyMDAsNiBA
QCBTWU1CT0xfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQpICI6IiAiXG4iCiAKICNl
bmRpZiAvLyBDT01QSUxFUihHQ0MpCiAKLSNpZiBDT01QSUxFUihNU1ZDKQotCi1leHRlcm4gIkMi
IHsKLQotICAgIC8vIEZJWE1FOiBTaW5jZSBXaW5kb3dzIGRvZXNuJ3QgdXNlIHRoZSBMTEludCwg
d2UgaGF2ZSBpbmxpbmUgc3R1YnMgaGVyZS4KLSAgICAvLyBVbnRpbCB0aGUgTExJbnQgaXMgY2hh
bmdlZCB0byBzdXBwb3J0IFdpbmRvd3MsIHRoZXNlIHN0dWIgbmVlZHMgdG8gYmUgdXBkYXRlZC4K
LSAgICBfX2RlY2xzcGVjKG5ha2VkKSBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZv
aWQqIGNvZGUsIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKikKLSAgICB7
Ci0gICAgICAgIF9fYXNtIHsKLSAgICAgICAgICAgIG1vdiBlZHgsIFtlc3BdCi0gICAgICAgICAg
ICBwdXNoIGVicDsKLSAgICAgICAgICAgIG1vdiBlYXgsIGVicDsKLSAgICAgICAgICAgIG1vdiBl
YnAsIGVzcDsKLSAgICAgICAgICAgIHB1c2ggZXNpOwotICAgICAgICAgICAgcHVzaCBlZGk7Ci0g
ICAgICAgICAgICBwdXNoIGVieDsKLSAgICAgICAgICAgIHN1YiBlc3AsIDB4MWM7Ci0gICAgICAg
ICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNwICsgMHgzNF07Ci0gICAgICAgICAgICBtb3YgZXNp
LCBkd29yZCBwdHJbZXNwICsgMHgzOF07Ci0gICAgICAgICAgICBtb3YgZWJwLCBkd29yZCBwdHJb
ZXNwICsgMHgzY107Ci0gICAgICAgICAgICBzdWIgZWJwLCAweDIwOwotICAgICAgICAgICAgbW92
IGR3b3JkIHB0cltlYnAgKyAweDI0XSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJw
ICsgMHgyMF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MWNdLCAwOwot
ICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDE4XSwgZWN4OwotICAgICAgICAgICAg
bW92IGVieCwgW2VjeF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MTRdLCAw
OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDEwXSwgZWJ4OwotICAgICAgICAg
ICAgbW92IGR3b3JkIHB0cltlYnAgKyAweGNdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0
cltlYnAgKyAweDhdLCAxOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDRdLCBl
ZHg7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicF0sIGVheDsKLSAgICAgICAgICAgIG1v
diBlYXgsIGVicDsKLQotICAgICAgICAgICAgbW92IGVkeCwgZHdvcmQgcHRyW2VzaSArIDB4Mjhd
OwotICAgICAgICAgICAgYWRkIGVkeCwgNTsKLSAgICAgICAgICAgIHNhbCBlZHgsIDM7Ci0gICAg
ICAgICAgICBzdWIgZWJwLCBlZHg7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicF0sIGVh
eDsKLQotICAgICAgICAgICAgbW92IGVheCwgNTsKLQotICAgICAgICBjb3B5SGVhZGVyTG9vcDoK
LSAgICAgICAgICAgIHN1YiBlYXgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJb
ZXNpICsgZWF4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDhbZWJwICsgZWF4ICog
OF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0ciA0W2VzaSArIGVheCAqIDhd
OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAxMltlYnAgKyBlYXggKiA4XSwgZWN4OwotICAg
ICAgICAgICAgdGVzdCBlYXgsIGVheDsKLSAgICAgICAgICAgIGpueiBjb3B5SGVhZGVyTG9vcDsK
LQotICAgICAgICAgICAgbW92IGVkeCwgZHdvcmQgcHRyW2VzaSArIDB4MThdOwotICAgICAgICAg
ICAgc3ViIGVkeCwgMTsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc2kgKyAweDI4
XTsKLSAgICAgICAgICAgIHN1YiBlY3gsIDE7Ci0KLSAgICAgICAgICAgIGNtcCBlZHgsIGVjeDsK
LSAgICAgICAgICAgIGplIGNvcHlBcmdzOwotCi0gICAgICAgICAgICB4b3IgZWF4LCBlYXg7Ci0g
ICAgICAgICAgICBtb3YgZWJ4LCAtNDsKLQotICAgICAgICBmaWxsRXh0cmFBcmdzTG9vcDoKLSAg
ICAgICAgICAgIHN1YiBlY3gsIDE7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzBbZWJw
ICsgZWN4ICogOF0sIGVheDsgICAgICAgICAgICAKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIg
MHgzNFtlYnAgKyBlY3ggKiA4XSwgZWJ4OwotICAgICAgICAgICAgY21wIGVkeCwgZWN4OwotICAg
ICAgICAgICAgam5lIGZpbGxFeHRyYUFyZ3NMb29wOwotCi0gICAgICAgIGNvcHlBcmdzOgotICAg
ICAgICAgICAgbW92IGVheCwgZHdvcmQgcHRyW2VzaSArIDB4MmNdOwotCi0gICAgICAgIGNvcHlB
cmdzTG9vcDoKLSAgICAgICAgICAgIHRlc3QgZWR4LCBlZHg7Ci0gICAgICAgICAgICBqeiBjb3B5
QXJnc0RvbmU7Ci0gICAgICAgICAgICBzdWIgZWR4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwg
ZHdvcmQgcHRyIDBbZWF4ICsgZWR4ICogOF07Ci0gICAgICAgICAgICBtb3YgZWJ4LCBkd29yZCBw
dHIgNFtlYXggKyBlZHggKiA4XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzMFtlYnAg
KyBlZHggKiA4XSwgZWN4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDM0W2VicCArIGVk
eCAqIDhdLCBlYng7Ci0gICAgICAgICAgICBqbXAgY29weUFyZ3NMb29wOwotCi0gICAgICAgIGNv
cHlBcmdzRG9uZToKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc3AgKyAweDM0XTsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWN4XSwgZWJwOwotCi0gICAgICAgICAgICBjYWxs
IGR3b3JkIHB0cltlc3AgKyAweDMwXTsKLQotICAgICAgICAgICAgY21wIGR3b3JkIHB0cltlYnAg
KyA4XSwgMTsKLSAgICAgICAgICAgIGplIGNhbGxlZUZyYW1lUG9wcGVkOwotICAgICAgICAgICAg
bW92IGVicCwgZHdvcmQgcHRyW2VicF07Ci0KLSAgICAgICAgY2FsbGVlRnJhbWVQb3BwZWQ6Ci0g
ICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZWJwICsgMHgxOF07Ci0gICAgICAgICAgICBt
b3YgZWJ4LCBkd29yZCBwdHJbZWJwICsgMHgxMF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRy
W2VjeF0sIGVieDsKLQotICAgICAgICAgICAgYWRkIGVzcCwgMHgxYzsKLSAgICAgICAgICAgIHBv
cCBlYng7Ci0gICAgICAgICAgICBwb3AgZWRpOwotICAgICAgICAgICAgcG9wIGVzaTsKLSAgICAg
ICAgICAgIHBvcCBlYnA7Ci0gICAgICAgICAgICByZXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBfX2RlY2xzcGVjKG5ha2VkKSB2b2lkIHJldHVybkZyb21KYXZhU2NyaXB0KCkKLSAgICB7Ci0g
ICAgICAgIF9fYXNtIHsKLSAgICAgICAgICAgIGFkZCBlc3AsIDB4MWM7Ci0gICAgICAgICAgICBw
b3AgZWJ4OwotICAgICAgICAgICAgcG9wIGVkaTsKLSAgICAgICAgICAgIHBvcCBlc2k7Ci0gICAg
ICAgICAgICBwb3AgZWJwOwotICAgICAgICAgICAgcmV0OwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgX19kZWNsc3BlYyhuYWtlZCkgRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24o
dm9pZCogY29kZSwgRXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKQotICAg
IHsKLSAgICAgICAgX19hc20gewotICAgICAgICAgICAgbW92IGVkeCwgW2VzcF0KLSAgICAgICAg
ICAgIHB1c2ggZWJwOwotICAgICAgICAgICAgbW92IGVheCwgZWJwOwotICAgICAgICAgICAgbW92
IGVicCwgZXNwOwotICAgICAgICAgICAgcHVzaCBlc2k7Ci0gICAgICAgICAgICBwdXNoIGVkaTsK
LSAgICAgICAgICAgIHB1c2ggZWJ4OwotICAgICAgICAgICAgc3ViIGVzcCwgMHgxYzsKLSAgICAg
ICAgICAgIG1vdiBlY3gsIFtlc3AgKyAweDM0XTsKLSAgICAgICAgICAgIG1vdiBlc2ksIFtlc3Ag
KyAweDM4XTsKLSAgICAgICAgICAgIG1vdiBlYnAsIFtlc3AgKyAweDNjXTsKLSAgICAgICAgICAg
IHN1YiBlYnAsIDB4MjA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MjRdLCAw
OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDIwXSwgMDsKLSAgICAgICAgICAg
IG1vdiBkd29yZCBwdHJbZWJwICsgMHgxY10sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRy
W2VicCArIDB4MThdLCBlY3g7Ci0gICAgICAgICAgICBtb3YgZWJ4LCBbZWN4XTsKLSAgICAgICAg
ICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxNF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQg
cHRyW2VicCArIDB4MTBdLCBlYng7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4
Y10sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4OF0sIDE7Ci0gICAgICAg
ICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4NF0sIGVkeDsKLSAgICAgICAgICAgIG1vdiBkd29y
ZCBwdHJbZWJwXSwgZWF4OwotICAgICAgICAgICAgbW92IGVheCwgZWJwOwotCi0gICAgICAgICAg
ICBtb3YgZWR4LCBkd29yZCBwdHJbZXNpICsgMHgyOF07Ci0gICAgICAgICAgICBhZGQgZWR4LCA1
OwotICAgICAgICAgICAgc2FsIGVkeCwgMzsKLSAgICAgICAgICAgIHN1YiBlYnAsIGVkeDsKLSAg
ICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwXSwgZWF4OwotCi0gICAgICAgICAgICBtb3YgZWF4
LCA1OwotCi0gICAgICAgIGNvcHlIZWFkZXJMb29wOgotICAgICAgICAgICAgc3ViIGVheCwgMTsK
LSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc2kgKyBlYXggKiA4XTsKLSAgICAgICAg
ICAgIG1vdiBkd29yZCBwdHIgOFtlYnAgKyBlYXggKiA4XSwgZWN4OwotICAgICAgICAgICAgbW92
IGVjeCwgZHdvcmQgcHRyIDRbZXNpICsgZWF4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQg
cHRyIDEyW2VicCArIGVheCAqIDhdLCBlY3g7Ci0gICAgICAgICAgICB0ZXN0IGVheCwgZWF4Owot
ICAgICAgICAgICAgam56IGNvcHlIZWFkZXJMb29wOwotCi0gICAgICAgICAgICBtb3YgZWR4LCBk
d29yZCBwdHJbZXNpICsgMHgxOF07Ci0gICAgICAgICAgICBzdWIgZWR4LCAxOwotICAgICAgICAg
ICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzaSArIDB4MjhdOwotICAgICAgICAgICAgc3ViIGVjeCwg
MTsKLQotICAgICAgICAgICAgY21wIGVkeCwgZWN4OwotICAgICAgICAgICAgamUgY29weUFyZ3M7
Ci0KLSAgICAgICAgICAgIHhvciBlYXgsIGVheDsKLSAgICAgICAgICAgIG1vdiBlYngsIC00Owot
Ci0gICAgICAgIGZpbGxFeHRyYUFyZ3NMb29wOgotICAgICAgICAgICAgc3ViIGVjeCwgMTsKLSAg
ICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzMFtlYnAgKyBlY3ggKiA4XSwgZWF4OyAgICAgICAg
ICAgIAotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDM0W2VicCArIGVjeCAqIDhdLCBlYng7
Ci0gICAgICAgICAgICBjbXAgZWR4LCBlY3g7Ci0gICAgICAgICAgICBqbmUgZmlsbEV4dHJhQXJn
c0xvb3A7Ci0KLSAgICAgICAgY29weUFyZ3M6Ci0gICAgICAgICAgICBtb3YgZWF4LCBkd29yZCBw
dHJbZXNpICsgMHgyY107Ci0KLSAgICAgICAgY29weUFyZ3NMb29wOgotICAgICAgICAgICAgdGVz
dCBlZHgsIGVkeDsKLSAgICAgICAgICAgIGp6IGNvcHlBcmdzRG9uZTsKLSAgICAgICAgICAgIHN1
YiBlZHgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHIgMFtlYXggKyBlZHggKiA4
XTsKLSAgICAgICAgICAgIG1vdiBlYngsIGR3b3JkIHB0ciA0W2VheCArIGVkeCAqIDhdOwotICAg
ICAgICAgICAgbW92IGR3b3JkIHB0ciAweDMwW2VicCArIGVkeCAqIDhdLCBlY3g7Ci0gICAgICAg
ICAgICBtb3YgZHdvcmQgcHRyIDB4MzRbZWJwICsgZWR4ICogOF0sIGVieDsKLSAgICAgICAgICAg
IGptcCBjb3B5QXJnc0xvb3A7Ci0KLSAgICAgICAgY29weUFyZ3NEb25lOgotICAgICAgICAgICAg
bW92IGVjeCwgZHdvcmQgcHRyW2VzcCArIDB4MzRdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0
cltlY3hdLCBlYnA7Ci0KLSAgICAgICAgICAgIG1vdiBlZGksIGR3b3JkIHB0cltlc3AgKyAweDMw
XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZXNwICsgMHgzMF0sIGVicDsKLSAgICAgICAg
ICAgIG1vdiBlY3gsIGVicDsKLSAgICAgICAgICAgIGNhbGwgZWRpOwotCi0gICAgICAgICAgICBj
bXAgZHdvcmQgcHRyW2VicCArIDhdLCAxOwotICAgICAgICAgICAgamUgY2FsbGVlRnJhbWVQb3Bw
ZWQ7Ci0gICAgICAgICAgICBtb3YgZWJwLCBkd29yZCBwdHJbZWJwXTsKLQotICAgICAgICBjYWxs
ZWVGcmFtZVBvcHBlZDoKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlYnAgKyAweDE4
XTsKLSAgICAgICAgICAgIG1vdiBlYngsIGR3b3JkIHB0cltlYnAgKyAweDEwXTsKLSAgICAgICAg
ICAgIG1vdiBkd29yZCBwdHJbZWN4XSwgZWJ4OwotCi0gICAgICAgICAgICBhZGQgZXNwLCAweDFj
OwotICAgICAgICAgICAgcG9wIGVieDsKLSAgICAgICAgICAgIHBvcCBlZGk7Ci0gICAgICAgICAg
ICBwb3AgZXNpOwotICAgICAgICAgICAgcG9wIGVicDsKLSAgICAgICAgICAgIHJldDsKLSAgICAg
ICAgfQotICAgIH0KLX0KLQotI2VuZGlmIC8vIENPTVBJTEVSKE1TVkMpCi0KIH0gLy8gbmFtZXNw
YWNlIEpTQwogCiAjZW5kaWYgLy8gSklUU3R1YnNYODZfaApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRUaHVua3MuY3BwCmluZGV4IDRjNDgxNjNlOWZkMDM3MDJiYTZlOWU5YmE3YWViNWRmZTgx
ZmE5OWQuLjUwYzdmNjRiNjIwZTZiYzIzYjZhNDNhNWM3MGU0YWExNGQ2NTk1YTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAKQEAgLTUyLDYgKzUyLDcgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZlQ2FsbChWTSogdm0pCiAjZW5kaWYK
ICAgICByZXR1cm4gY3RpU3R1Yih2bSwgbmF0aXZlQ2FsbEdlbmVyYXRvcikuY29kZSgpOwogfQor
CiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVDb25zdHJ1Y3QoVk0q
IHZtKQogewogI2lmIEVOQUJMRShMTElOVCkKQEAgLTYxLDYgKzYyLDEyIEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBKSVRUaHVua3M6OmN0aU5hdGl2ZUNvbnN0cnVjdChWTSogdm0pCiAgICAgcmV0
dXJuIGN0aVN0dWIodm0sIG5hdGl2ZUNvbnN0cnVjdEdlbmVyYXRvcikuY29kZSgpOwogfQogCitN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVUYWlsQ2FsbChWTSogdm0p
Cit7CisgICAgQVNTRVJUKHZtLT5jYW5Vc2VKSVQoKSk7CisgICAgcmV0dXJuIGN0aVN0dWIodm0s
IG5hdGl2ZVRhaWxDYWxsR2VuZXJhdG9yKS5jb2RlKCk7Cit9CisKIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoVk0qIHZtLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3Ip
CiB7CiAgICAgTG9ja2VyIGxvY2tlcihtX2xvY2spOwpAQCAtODAsNyArODcsMTIgQEAgTmF0aXZl
RXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0RnVuY3Rpb25TdHViKFZNKiB2bSwgTmF0aXZlRnVu
Y3Rpb24gZnVuY3Rpb24sIE4KICAgICBpZiAoTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0
YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0KHN0ZDo6bWFrZV9wYWlyKGZ1bmN0aW9u
LCBjb25zdHJ1Y3RvcikpKQogICAgICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKIAotICAg
IE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpj
cmVhdGUoKnZtLCBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5jdGlvbiksIGZ1bmN0
aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlO
YXRpdmVDb25zdHJ1Y3Qodm0pKSwgY29uc3RydWN0b3IsIE5vSW50cmluc2ljKTsKKyAgICBOYXRp
dmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRl
KAorICAgICAgICAqdm0sCisgICAgICAgIGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2RlKEpJVDo6
Y29tcGlsZUNUSU5hdGl2ZUNhbGwodm0sIGZ1bmN0aW9uKSwgSklUQ29kZTo6SG9zdENhbGxUaHVu
aykpLAorICAgICAgICBmdW5jdGlvbiwKKyAgICAgICAgYWRvcHRSZWYobmV3IE5hdGl2ZUpJVENv
ZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0
aXZlQ29uc3RydWN0KHZtKSksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKSwKKyAgICAgICAgY29u
c3RydWN0b3IsIE5vSW50cmluc2ljKTsKICAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJN
YXAsIHN0ZDo6bWFrZV9wYWlyKGZ1bmN0aW9uLCBjb25zdHJ1Y3RvciksIFdlYWs8TmF0aXZlRXhl
Y3V0YWJsZT4obmF0aXZlRXhlY3V0YWJsZSkpOwogICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxl
OwogfQpAQCAtOTIsMTYgKzEwNCwxOCBAQCBOYXRpdmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhv
c3RGdW5jdGlvblN0dWIoVk0qIHZtLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgVAogICAgIGlm
IChOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHVi
TWFwLT5nZXQoc3RkOjptYWtlX3BhaXIoZnVuY3Rpb24sICZjYWxsSG9zdEZ1bmN0aW9uQXNDb25z
dHJ1Y3RvcikpKQogICAgICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKIAotICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBjb2RlOworICAgIFJlZlB0cjxKSVRDb2RlPiBmb3JDYWxsOwogICAg
IGlmIChnZW5lcmF0b3IpIHsKLSAgICAgICAgaWYgKHZtLT5jYW5Vc2VKSVQoKSkKLSAgICAgICAg
ICAgIGNvZGUgPSBnZW5lcmF0b3Iodm0pOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2Rl
ID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7CisgICAgICAgIGlmICh2bS0+Y2FuVXNlSklUKCkp
IHsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBlbnRyeSA9IGdlbmVyYXRvcih2
bSk7CisgICAgICAgICAgICBmb3JDYWxsID0gYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoZW50
cnksIGVudHJ5LmNvZGUoKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpOworICAgICAgICB9CiAg
ICAgfSBlbHNlCi0gICAgICAgIGNvZGUgPSBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKHZtLCBm
dW5jdGlvbik7Ci0KLSAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0
aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCp2bSwgY29kZSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCh2bSkp
LCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgaW50cmluc2ljKTsKKyAgICAgICAgZm9y
Q2FsbCA9IGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2RlKEpJVDo6Y29tcGlsZUNUSU5hdGl2ZUNh
bGwodm0sIGZ1bmN0aW9uKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpOworICAgIAorICAgIFJl
ZlB0cjxKSVRDb2RlPiBmb3JDb25zdHJ1Y3QgPSBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShN
YWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVD
b25zdHJ1Y3Qodm0pKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpOworICAgIAorICAgIE5hdGl2
ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUo
KnZtLCBmb3JDYWxsLCBmdW5jdGlvbiwgZm9yQ29uc3RydWN0LCBjYWxsSG9zdEZ1bmN0aW9uQXND
b25zdHJ1Y3RvciwgaW50cmluc2ljKTsKICAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJN
YXAsIHN0ZDo6bWFrZV9wYWlyKGZ1bmN0aW9uLCAmY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0
b3IpLCBXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFibGUpKTsKICAgICByZXR1
cm4gbmF0aXZlRXhlY3V0YWJsZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5o
CmluZGV4IDk3ZTdlY2Q2YmI3NGE5MDcwZDA0OWQzMjcxNDhjMDkzN2QzNGI1NmYuLjJkYWE1MGFh
N2E1N2UwMjI4MzNlMjkzODZiODA2YTEzM2Q5NWU2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRUaHVua3MuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAKICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbChWTSopOwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjdGlOYXRpdmVDb25zdHJ1Y3QoVk0qKTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3Rp
TmF0aXZlVGFpbENhbGwoVk0qKTsgICAgCiAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY3Rp
U3R1YihWTSosIFRodW5rR2VuZXJhdG9yKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0
b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ5NzA0Y2JjYjhhMmJiZmU5YjcwZTVmYWFmMzA4NDVkODk2YTRi
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVy
UHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAKQEAgLTAsMCArMSwyMjMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIgor
CisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkFzc2VtYmx5SGVscGVycy5oIgorI2luY2x1
ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgorCituYW1lc3Bh
Y2UgSlNDIHsKKworUmVnaXN0ZXJTZXQgcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpCit7CisgICAgUmVn
aXN0ZXJTZXQgY2FsbGVlU2F2ZXMgPSBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygp
OworICAgIAorICAgIC8vIE5vIG5lZWQgdG8gcHJlc2VydmUgRlAgc2luY2UgdGhhdCBhbHdheXMg
Z2V0cyBwcmVzZXJ2ZWQgYW55d2F5LgorICAgIGNhbGxlZVNhdmVzLmNsZWFyKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAKKyAgICByZXR1cm4gY2FsbGVlU2F2ZXM7Cit9CisKK3B0
cmRpZmZfdCByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpCit7CisgICAgdW5zaWduZWQgbnVt
YmVyT2ZDYWxsZWVTYXZlcyA9IHJlZ2lzdGVyc1RvUHJlc2VydmUoKS5udW1iZXJPZlNldFJlZ2lz
dGVycygpOworICAgIAorICAgIC8vIE5lZWQgdG8gcHJlc2VydmUgdGhlIG9sZCByZXR1cm4gUEMu
CisgICAgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXNUb1NhdmUgPSBudW1iZXJPZkNhbGxlZVNhdmVz
ICsgMTsKKyAgICAKKyAgICAvLyBBbGlnbm1lbnQuIFByZXNlcnZlIHRoZSBzYW1lIGFsaWdubWVu
dCBpbnZhcmlhbnRzIHRoYXQgdGhlIGNhbGxlciBpbXBvc2VkLgorICAgIHVuc2lnbmVkIG51bWJl
ck9mTmV3U3RhY2tTbG90cyA9CisgICAgICAgIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFj
a0FsaWdubWVudFJlZ2lzdGVycygpLCBudW1iZXJPZlZhbHVlc1RvU2F2ZSk7CisgICAgCisgICAg
cmV0dXJuIHNpemVvZihSZWdpc3RlcikgKiBudW1iZXJPZk5ld1N0YWNrU2xvdHM7Cit9CisKK01h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBnZW5lcmF0ZVJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcihW
TSYgdm0sIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
dGFyZ2V0KQoreworI2lmIEVOQUJMRShGVExfSklUKQorICAgIC8vIFdlIHNob3VsZG4ndCBldmVy
IGJlIGdlbmVyYXRpbmcgd3JhcHBlcnMgZm9yIG5hdGl2ZSBmdW5jdGlvbnMuCisgICAgUmVnaXN0
ZXJTZXQgdG9TYXZlID0gcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpOworICAgIHB0cmRpZmZfdCBvZmZz
ZXQgPSByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpOworICAgIAorICAgIEFzc2VtYmx5SGVs
cGVycyBqaXQoJnZtLCAwKTsKKyAgICAKKyAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0
ZXJDYWxsKEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQubG9hZDMyKAorICAgICAgICBBc3NlbWJs
eUhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0
YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9m
ZnNldCksCisgICAgICAgIEdQUkluZm86OnJlZ1QyKTsKKyAgICAKKyAgICAvLyBQbGFjZSB0aGUg
c3RhY2sgcG9pbnRlciB3aGVyZSB3ZSB3YW50IGl0IHRvIGJlLgorICAgIGppdC5zdWJQdHIoQXNz
ZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIob2Zmc2V0KSwgQXNzZW1ibHlIZWxwZXJzOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCisgICAgLy8gQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIHRo
aW5ncyB3ZSB3aWxsIGJlIGNvcHlpbmcuCisgICAgaml0LmFkZDMyKAorICAgICAgICBBc3NlbWJs
eUhlbHBlcnM6OlRydXN0ZWRJbW0zMigKKyAgICAgICAgICAgIEpTU3RhY2s6OkNhbGxGcmFtZUhl
YWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSksCisgICAgICAgIEdQUklu
Zm86OnJlZ1QyKTsKKworICAgIEFTU0VSVCghdG9TYXZlLmdldChHUFJJbmZvOjpyZWdUNCkpOwor
ICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEdQUklu
Zm86OnJlZ1Q0KTsKKyAgICAKKyAgICBBc3NlbWJseUhlbHBlcnM6OkxhYmVsIGxvb3AgPSBqaXQu
bGFiZWwoKTsKKyAgICBqaXQuc3ViMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSks
IEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6QWRkcmVz
cyhHUFJJbmZvOjpyZWdUNCwgb2Zmc2V0KSwgR1BSSW5mbzo6cmVnVDApOworICAgIGppdC5zdG9y
ZTY0KEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUNCk7CisgICAgaml0LmFkZFB0cihBc3Nl
bWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6cmVn
VDQpOworICAgIGppdC5icmFuY2hUZXN0MzIoQXNzZW1ibHlIZWxwZXJzOjpOb25aZXJvLCBHUFJJ
bmZvOjpyZWdUMikubGlua1RvKGxvb3AsICZqaXQpOworCisgICAgLy8gQXQgdGhpcyBwb2ludCBy
ZWdUNCArIG9mZnNldCBwb2ludHMgdG8gd2hlcmUgd2Ugc2F2ZSB0aGluZ3MuCisgICAgcHRyZGlm
Zl90IGN1cnJlbnRPZmZzZXQgPSAwOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMSwg
QXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Q0LCBjdXJyZW50T2Zmc2V0KSk7
CisgICAgCisgICAgZm9yIChHUFJSZWcgZ3ByID0gQXNzZW1ibHlIZWxwZXJzOjpmaXJzdFJlZ2lz
dGVyKCk7IGdwciA8PSBBc3NlbWJseUhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBncHIgPSBzdGF0
aWNfY2FzdDxHUFJSZWc+KGdwciArIDEpKSB7CisgICAgICAgIGlmICghdG9TYXZlLmdldChncHIp
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gc2l6ZW9m
KFJlZ2lzdGVyKTsKKyAgICAgICAgaml0LnN0b3JlNjQoZ3ByLCBBc3NlbWJseUhlbHBlcnM6OkFk
ZHJlc3MoR1BSSW5mbzo6cmVnVDQsIGN1cnJlbnRPZmZzZXQpKTsKKyAgICB9CisgICAgCisgICAg
Ly8gQXNzdW1lIHRoYXQgdGhlcmUgYXJlbid0IGFueSBzYXZlZCBGUCByZWdpc3RlcnMuCisgICAg
CisgICAgLy8gUmVzdG9yZSB0aGUgdGFnIHJlZ2lzdGVycy4KKyAgICBqaXQubW92ZShBc3NlbWJs
eUhlbHBlcnM6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFnVHlwZU51
bWJlclJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkNjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoVGFnTWFzayAtIFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0
ZXIsIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CisgICAgCisgICAgaml0Lm1vdmUoCisgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cigKKyAgICAgICAgICAgIHZtLmdldENU
SVN0dWIocmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSksCisgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjApOworICAgIGppdC5yZXN0
b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpub25BcmdHUFIwKTsKKyAgICBB
c3NlbWJseUhlbHBlcnM6Okp1bXAganVtcCA9IGppdC5qdW1wKCk7CisgICAgCisgICAgTGlua0J1
ZmZlciBsaW5rQnVmZmVyKHZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgIGxpbmtCdWZm
ZXIubGluayhqdW1wLCBDb2RlTG9jYXRpb25MYWJlbCh0YXJnZXQpKTsKKworICAgIGlmIChPcHRp
b25zOjp2ZXJib3NlRlRMVG9KU1RodW5rKCkpCisgICAgICAgIGRhdGFMb2coIk5lZWQgYSB0aHVu
ayBmb3IgY2FsbHMgZnJvbSBGVEwgdG8gbm9uLUZUTCB2ZXJzaW9uIG9mICIsICpleGVjdXRhYmxl
LCAiXG4iKTsKKyAgICAKKyAgICByZXR1cm4gRklOQUxJWkVfREZHX0NPREUobGlua0J1ZmZlciwg
KCJSZWdpc3RlciBwcmVzZXJ2YXRpb24gd3JhcHBlciBmb3IgJXMvJXMsICVwIiwgdG9DU3RyaW5n
KGV4ZWN1dGFibGUtPmhhc2hGb3IoQ29kZUZvckNhbGwpKS5kYXRhKCksIHRvQ1N0cmluZyhleGVj
dXRhYmxlLT5oYXNoRm9yKENvZGVGb3JDb25zdHJ1Y3QpKS5kYXRhKCksIHRhcmdldC5leGVjdXRh
YmxlQWRkcmVzcygpKSk7CisjZWxzZSAvLyBFTkFCTEUoRlRMX0pJVCkKKyAgICBVTlVTRURfUEFS
QU0odm0pOworICAgIFVOVVNFRF9QQVJBTShleGVjdXRhYmxlKTsKKyAgICBVTlVTRURfUEFSQU0o
dGFyZ2V0KTsKKyAgICAvLyBXZSBkb24ndCBzdXBwb3J0IG5vbi1GVEwgYnVpbGRzIGZvciB0d28g
cmVhc29uczoKKyAgICAvLyAtIEl0IGp1c3Qgc28gaGFwcGVucyB0aGF0IGN1cnJlbnRseSBvbmx5
IHRoZSBGVEwgYm90dG9tcyBvdXQgaW4gdGhpcyBjb2RlLgorICAgIC8vIC0gVGhlIGNvZGUgYWJv
dmUgdXNlcyA2NC1iaXQgaW5zdHJ1Y3Rpb25zLiBJdCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGhhdmUg
dG87IGl0IHdvdWxkIGJlCisgICAgLy8gICBlYXN5IHRvIGNoYW5nZSBpdCBzbyB0aGF0IGl0IGRv
ZXNuJ3QuIEJ1dCBvYnZpb3VzbHkgbWFraW5nIHRoYXQgY2hhbmdlIHdvdWxkIGJlIGEKKyAgICAv
LyAgIHByZXJlcXVpc2l0ZSB0byByZW1vdmluZyB0aGlzICNpZi4KKyAgICBVTlJFQUNIQUJMRV9G
T1JfUExBVEZPUk0oKTsKKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7CisjZW5k
aWYgLy8gRU5BQkxFKEZUTF9KSVQpCit9CisKK3N0YXRpYyB2b2lkIGdlbmVyYXRlUmVnaXN0ZXJS
ZXN0b3JhdGlvbihBc3NlbWJseUhlbHBlcnMmIGppdCkKK3sKKyNpZiBFTkFCTEUoRlRMX0pJVCkK
KyAgICBSZWdpc3RlclNldCB0b1NhdmUgPSByZWdpc3RlcnNUb1ByZXNlcnZlKCk7CisgICAgcHRy
ZGlmZl90IG9mZnNldCA9IHJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KCk7CisgICAgCisgICAg
QVNTRVJUKCF0b1NhdmUuZ2V0KEdQUkluZm86OnJlZ1Q0KSk7CisKKyAgICAvLyBXZSBuZWVkIHRv
IHBsYWNlIHRoZSBzdGFjayBwb2ludGVyIGJhY2sgdG8gd2hlcmUgdGhlIGNhbGxlciB0aG91Z2h0
IHRoZXkgbGVmdCBpdC4KKyAgICAvLyBCdXQgYWxzbywgaW4gb3JkZXIgdG8gcmVjb3ZlciB0aGUg
cmVnaXN0ZXJzLCB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IGJpZyB0aGUKKyAgICAvLyBhcmd1
bWVudHMgYXJlYSBpcy4KKyAgICAKKyAgICBqaXQubG9hZDMyKAorICAgICAgICBBc3NlbWJseUhl
bHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyLAorICAgICAgICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNr
OjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNl
dCksCisgICAgICAgIEdQUkluZm86OnJlZ1Q0KTsKKyAgICAKKyAgICBqaXQubW92ZShHUFJJbmZv
OjpyZWdUNCwgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5sc2hpZnQzMihBc3NlbWJseUhlbHBl
cnM6OlRydXN0ZWRJbW0zMigzKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIAorICAgIGppdC5hZGRQ
dHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIob2Zmc2V0KSwgQXNzZW1ibHlIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMik7CisgICAgCisgICAgLy8gV2Ug
c2F2ZWQgdGhpbmdzIGF0OgorICAgIC8vCisgICAgLy8gICAgIGFkalNQICsgKEpTU3RhY2s6OkNh
bGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSArIE51bUFy
Z3MpICogOAorICAgIC8vCisgICAgLy8gV2hlcmU6CisgICAgLy8KKyAgICAvLyAgICAgYWRqU1Ag
PSBvcmlnU1AgLSBvZmZzZXQKKyAgICAvLworICAgIC8vIHJlZ1QyIG5vdyBwb2ludHMgYXQ6Cisg
ICAgLy8KKyAgICAvLyAgICAgb3JpZ1NQICsgTnVtQXJncyAqIDgKKyAgICAvLyAgID0gYWRqU1Ag
KyBvZmZzZXQgKyBOdW1BcmdzICogOAorICAgIC8vIAorICAgIC8vIFNvIGlmIHdlIHN1YnRyYWN0
IG9mZnNldCBhbmQgdGhlbiBhZGQgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSBhbmQgc3Vi
dHJhY3QKKyAgICAvLyBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgd2UnbGwgZ2V0IHRo
ZSB0aGluZyB3ZSB3YW50LgorICAgIHB0cmRpZmZfdCBjdXJyZW50T2Zmc2V0ID0gLW9mZnNldCAr
IHNpemVvZihSZWdpc3RlcikgKiAoCisgICAgICAgIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNp
emUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSk7CisgICAgaml0LmxvYWRQdHIoQXNz
ZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QyLCBjdXJyZW50T2Zmc2V0KSwgR1BS
SW5mbzo6cmVnVDEpOworICAgIAorICAgIGZvciAoR1BSUmVnIGdwciA9IEFzc2VtYmx5SGVscGVy
czo6Zmlyc3RSZWdpc3RlcigpOyBncHIgPD0gQXNzZW1ibHlIZWxwZXJzOjpsYXN0UmVnaXN0ZXIo
KTsgZ3ByID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihncHIgKyAxKSkgeworICAgICAgICBpZiAoIXRv
U2F2ZS5nZXQoZ3ByKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjdXJyZW50T2Zm
c2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CisgICAgICAgIGppdC5sb2FkNjQoQXNzZW1ibHlIZWxw
ZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QyLCBjdXJyZW50T2Zmc2V0KSwgZ3ByKTsKKyAgICB9
CisgICAgCisgICAgLy8gVGh1bmtzIGxpa2UgdGhpcyByZWx5IG9uIHRoZSBBcmd1bWVudENvdW50
IGJlaW5nIGludGFjdC4gUGF5IGl0IGZvcndhcmQuCisgICAgaml0LnN0b3JlMzIoCisgICAgICAg
IEdQUkluZm86OnJlZ1Q0LAorICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCisgICAg
ICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAg
ICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6
ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCkpOworICAgIAorICAgIGlmICgh
QVNTRVJUX0RJU0FCTEVEKSB7CisgICAgICAgIEFzc2VtYmx5SGVscGVyczo6SnVtcCBvayA9IGpp
dC5icmFuY2hQdHIoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFib3ZlLCBHUFJJbmZv
OjpyZWdUMSwgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0YXRpY19jYXN0PHNpemVf
dD4oMHgxMDAwKSkpOworICAgICAgICBqaXQuYnJlYWtwb2ludCgpOworICAgICAgICBvay5saW5r
KCZqaXQpOworICAgIH0KKyAgICAKKyAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMSk7CisjZWxz
ZSAvLyBFTkFCTEUoRlRMX0pJVCkKKyAgICBVTlVTRURfUEFSQU0oaml0KTsKKyAgICBVTlJFQUNI
QUJMRV9GT1JfUExBVEZPUk0oKTsKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKK30KKworTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcihWTSog
dm0pCit7CisgICAgQXNzZW1ibHlIZWxwZXJzIGppdCh2bSwgMCk7CisgICAgZ2VuZXJhdGVSZWdp
c3RlclJlc3RvcmF0aW9uKGppdCk7CisgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKCp2bSwgJmpp
dCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVy
LCAoIlJlZ2lzdGVyIHJlc3RvcmF0aW9uIHRodW5rIikpOworfQorCit9IC8vIG5hbWVzcGFjZSBK
U0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhlZTFmYzZhZjcxZTcyMTg0MjFmMWU3MjUwNTI4YjU1ZGI4ZTU3MjAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJl
c2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZWdpc3RlclByZXNl
cnZhdGlvbldyYXBwZXJHZW5lcmF0b3JfaAorI2RlZmluZSBSZWdpc3RlclByZXNlcnZhdGlvbldy
YXBwZXJHZW5lcmF0b3JfaAorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkFyaXR5Q2hl
Y2tNb2RlLmgiCisjaW5jbHVkZSAiQXNzZW1ibHlIZWxwZXJzLmgiCisjaW5jbHVkZSAiTWFjcm9B
c3NlbWJsZXJDb2RlUmVmLmgiCisjaW5jbHVkZSAiVk0uaCIKKworbmFtZXNwYWNlIEpTQyB7CisK
K1JlZ2lzdGVyU2V0IHJlZ2lzdGVyc1RvUHJlc2VydmUoKTsKKworcHRyZGlmZl90IHJlZ2lzdGVy
UHJlc2VydmF0aW9uT2Zmc2V0KCk7CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZW5lcmF0ZVJl
Z2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcihWTSYsIEV4ZWN1dGFibGVCYXNlKiwgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIHRhcmdldCk7CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiByZWdpc3RlclJl
c3RvcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0qKTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNl
bmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFw
cGVyR2VuZXJhdG9yX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9S
ZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKaW5kZXgg
NWM5YWE5NjU4NjYyYTUwNmQ2OThiZGQ2MmQ0ZDg0MGUyMGY1YmI5Ny4uOTJiOGM0N2RkZGNlNDRj
NjI0MGQ3YzZkZDc1ZGZkZTgyNjBjYzY5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0
Y2guY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MSwxMSArNTEsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKIC8vIHRoYXQgd291bGQgb3JkaW5hcmlseSBoYXZlIHdlbGwta25vd24gdmFsdWVzOgog
Ly8gLSB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIKIC8vIC0gdGFnTWFza1JlZ2lzdGVyCi0vLyAtIGNh
bGxGcmFtZVJlZ2lzdGVyICoqCi0vLwotLy8gV2UgY3VycmVudGx5IG9ubHkgdXNlIHRoZSBjYWxs
RnJhbWVSZWdpc3RlciBmb3IgY2xvc3VyZSBjYWxsIHBhdGNoaW5nLCBhbmQgd2UncmUgbm90IGdv
aW5nIHRvCi0vLyBnaXZlIHRoZSBGVEwgY2xvc3VyZSBjYWxsIHBhdGNoaW5nIHN1cHBvcnQgdW50
aWwgd2Ugc3dpdGNoIHRvIHRoZSBDIHN0YWNrIC0gYnV0IHdoZW4gd2UgZG8gdGhhdCwKLS8vIGNh
bGxGcmFtZVJlZ2lzdGVyIHdpbGwgZGlzYXBwZWFyLgogCiBzdGF0aWMgRnVuY3Rpb25QdHIgcmVh
ZENhbGxUYXJnZXQoUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlciwgQ29kZUxvY2F0aW9uQ2Fs
bCBjYWxsKQogewpAQCAtMjk4LDIzICsyOTMsMjMgQEAgc3RhdGljIFByb3RvQ2hhaW5HZW5lcmF0
aW9uUmVzdWx0IGdlbmVyYXRlUHJvdG9DaGFpbkFjY2Vzc1N0dWIoRXhlY1N0YXRlKiBleGVjLAog
I2VuZGlmCiAgICAgICAgIH0KICAgICB9CisKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBvcGVy
YXRpb25DYWxsOwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGhhbmRsZXJDYWxsOwogICAgIEZ1
bmN0aW9uUHRyIG9wZXJhdGlvbkZ1bmN0aW9uOwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHN1
Y2Nlc3MsIGZhaWw7CiAgICAgaWYgKGlzQWNjZXNzb3IpIHsKLSAgICAgICAgR1BSUmVnIGNhbGxG
cmFtZVJlZ2lzdGVyID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5jYWxsRnJh
bWVSZWdpc3Rlcik7CiAgICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlR2V0dGVyKCkpIHsKLSAg
ICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIHNjcmF0
Y2hHUFIsIHJlc3VsdEdQUik7CisgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShzY3JhdGNoR1BSLCByZXN1bHRHUFIpOwogICAgICAgICAgICAgb3BlcmF0aW9u
RnVuY3Rpb24gPSBvcGVyYXRpb25DYWxsR2V0dGVyOwogICAgICAgICB9IGVsc2UgewogI2lmIFVT
RShKU1ZBTFVFNjQpCiAgICAgICAgICAgICAvLyBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVu
YykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVu
dHMoY2FsbEZyYW1lUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3Rv
T2JqZWN0KSwgc2NyYXRjaEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJvcGVy
dHlOYW1lLmltcGwoKSkpOworICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJvdG9PYmplY3QpLCBzY3Jh
dGNoR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgp
KSk7CiAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IEZ1bmN0aW9uUHRyKHNsb3QuY3Vz
dG9tR2V0dGVyKCkpOwogI2Vsc2UKICAgICAgICAgICAgIHN0dWJKaXQubW92ZShNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihwcm90b09iamVjdCksIHNjcmF0Y2hHUFIpOwotICAgICAgICAg
ICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3Rlciwgc2NyYXRjaEdQUiwK
KyAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHNjcmF0Y2hH
UFIsCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoRnVuY3Rp
b25QdHIoc2xvdC5jdXN0b21HZXR0ZXIoKSkuZXhlY3V0YWJsZUFkZHJlc3MoKSksCiAgICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwo
KSkpOwogICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBvcGVyYXRpb25DYWxsQ3VzdG9t
R2V0dGVyOwpAQCAtMzUwLDkgKzM0NSwxMCBAQCBzdGF0aWMgUHJvdG9DaGFpbkdlbmVyYXRpb25S
ZXN1bHQgZ2VuZXJhdGVQcm90b0NoYWluQWNjZXNzU3R1YihFeGVjU3RhdGUqIGV4ZWMsCiAgICAg
ICAgIHBhdGNoQnVmZmVyLmxpbmsob3BlcmF0aW9uQ2FsbCwgb3BlcmF0aW9uRnVuY3Rpb24pOwog
ICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGhhbmRsZXJDYWxsLCBsb29rdXBFeGNlcHRpb25IYW5k
bGVyKTsKICAgICB9Ci0gICAgc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdfU1RV
QigKLSAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICgiREZHIHByb3RvdHlwZSBjaGFpbiBh
Y2Nlc3Mgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCisgICAgCisgICAgc3R1YlJvdXRp
bmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwg
cGF0Y2hCdWZmZXIsCisgICAgICAgICgiUHJvdG90eXBlIGNoYWluIGFjY2VzcyBzdHViIGZvciAl
cywgcmV0dXJuIHBvaW50ICVwIiwKICAgICAgICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJs
b2NrKCkpLmRhdGEoKSwgc3VjY2Vzc0xhYmVsLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKICAgICBy
ZXR1cm4gUHJvdG9DaGFpbkdlbmVyYXRpb25TdWNjZWVkZWQ7CiB9CkBAIC00MTIsOSArNDA4LDkg
QEAgc3RhdGljIGJvb2wgdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBi
YXNlVmFsdWUsIGNvbnN0IElkZW50aWZpZXIKICAgICAgICAgCiAgICAgICAgIGxpbmtSZXN0b3Jl
U2NyYXRjaChwYXRjaEJ1ZmZlciwgbmVlZFRvUmVzdG9yZVNjcmF0Y2gsIHN0dWJJbmZvLCBzdWNj
ZXNzLCBmYWlsLCBmYWlsdXJlQ2FzZXMpOwogICAgICAgICAKLSAgICAgICAgc3R1YkluZm8uc3R1
YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdfU1RVQigKLSAgICAgICAgICAgIHBhdGNo
QnVmZmVyLAotICAgICAgICAgICAgKCJERkcgR2V0QnlJZCBhcnJheSBsZW5ndGggc3R1YiBmb3Ig
JXMsIHJldHVybiBwb2ludCAlcCIsCisgICAgICAgIHN0dWJJbmZvLnN0dWJSb3V0aW5lID0gRklO
QUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRj
aEJ1ZmZlciwKKyAgICAgICAgICAgICgiR2V0QnlJZCBhcnJheSBsZW5ndGggc3R1YiBmb3IgJXMs
IHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICAgICAgdG9DU3RyaW5nKCpleGVjLT5jb2Rl
QmxvY2soKSkuZGF0YSgpLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNl
dCgKICAgICAgICAgICAgICAgICAgICAgc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9Eb25lKS5l
eGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgICAgIApAQCAtNTcyLDcgKzU2OCw2IEBAIHN0YXRp
YyBib29sIHRyeUJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VW
YWx1ZSwgY29uc3QgSWRlbnRpCiAgICAgICAgIAogICAgICAgICBzdHViSW5mby51LmdldEJ5SWRT
ZWxmTGlzdC5saXN0U2l6ZSsrOwogICAgICAgICAKLSAgICAgICAgR1BSUmVnIGNhbGxGcmFtZVJl
Z2lzdGVyID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5jYWxsRnJhbWVSZWdp
c3Rlcik7CiAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHVi
SW5mby5wYXRjaC5iYXNlR1BSKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBHUFJS
ZWcgcmVzdWx0VGFnR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1
ZVRhZ0dQUik7CkBAIC01OTYsNiArNTkxLDEwIEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJ
RExpc3QoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpCiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHN1Y2Nlc3M7CiAgICAgICAgIAogICAgICAgICBp
ZiAoc2xvdC5pc0NhY2hlYWJsZUdldHRlcigpIHx8IHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSkg
eworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBzaG91bGRuJ3QgYmUgYXNzdW1pbmcg
dGhhdCB0aGUgdG9wIG9mIHN0YWNrIGlzIHNldCB1cCBmb3IgSlNDCisgICAgICAgICAgICAvLyBK
SVQtc3R5bGUgQyBjYWxscywgc2luY2Ugd2UgbWF5IGJlIGN1cnJlbnRseSBvbiB0b3Agb2YgYW4g
RlRMIGZyYW1lLgorICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNTcxMQorICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2xvdC5pc0Nh
Y2hlYWJsZUdldHRlcigpKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNjcmF0Y2hHUFIgIT0g
SW52YWxpZEdQUlJlZyk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGJhc2VHUFIgIT0gc2NyYXRj
aEdQUik7CkBAIC02MTMsMTYgKzYxMiwxNiBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURM
aXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aQogICAg
ICAgICAgICAgICAgICAgICBzdHViSml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhz
Y3JhdGNoR1BSLCBvZmZzZXRSZWxhdGl2ZVRvQmFzZShzbG90LmNhY2hlZE9mZnNldCgpKSksIHNj
cmF0Y2hHUFIpOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHN0
dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsIHNjcmF0Y2hH
UFIpOworICAgICAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KGJhc2VHUFIsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9u
ID0gb3BlcmF0aW9uQ2FsbEdldHRlcjsKICAgICAgICAgICAgIH0gZWxzZSB7CiAjaWYgVVNFKEpT
VkFMVUU2NCkKICAgICAgICAgICAgICAgICAvLyBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVu
YykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJn
dW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBiYXNlR1BSLCBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKKyAgICAgICAgICAgICAgICBzdHViSml0
LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShiYXNlR1BSLCBiYXNlR1BSLCBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKICAgICAgICAgICAgICAgICBvcGVy
YXRpb25GdW5jdGlvbiA9IEZ1bmN0aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpOwogI2Vsc2UK
LSAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKAotICAgICAgICAgICAgICAg
ICAgICBjYWxsRnJhbWVSZWdpc3RlciwgYmFzZUdQUiwKKyAgICAgICAgICAgICAgICBzdHViSml0
LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgYmFzZUdQ
UiwKICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoRnVu
Y3Rpb25QdHIoc2xvdC5jdXN0b21HZXR0ZXIoKSkuZXhlY3V0YWJsZUFkZHJlc3MoKSksCiAgICAg
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwo
KSkpOwogICAgICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEN1
c3RvbUdldHRlcjsKQEAgLTY0NCw3ICs2NDMsNyBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5
SURMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aQog
I2VuZGlmCiAgICAgICAgICAgICBzdWNjZXNzID0gc3R1YkppdC5lbWl0RXhjZXB0aW9uQ2hlY2so
Q0NhbGxIZWxwZXJzOjpJbnZlcnRlZEV4Y2VwdGlvbkNoZWNrKTsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOworICAgICAgICAgICAg
c3R1YkppdC5zZXR1cEFyZ3VtZW50cyhDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodm0pLCBH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgICAgICBoYW5kbGVyQ2FsbCA9IHN0
dWJKaXQuY2FsbCgpOwogICAgICAgICAgICAgc3R1YkppdC5qdW1wVG9FeGNlcHRpb25IYW5kbGVy
KCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC02ODQsOSArNjgzLDkgQEAgc3RhdGljIGJvb2wgdHJ5
QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25z
dCBJZGVudGkKICAgICAgICAgCiAgICAgICAgIFJlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJv
dXRpbmUgPQogICAgICAgICAgICAgY3JlYXRlSklUU3R1YlJvdXRpbmUoCi0gICAgICAgICAgICAg
ICAgRklOQUxJWkVfREZHX0NPREUoCi0gICAgICAgICAgICAgICAgICAgIHBhdGNoQnVmZmVyLAot
ICAgICAgICAgICAgICAgICAgICAoIkRGRyBHZXRCeUlkIHBvbHltb3JwaGljIGxpc3QgYWNjZXNz
IGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICAgICAgICAgICAgICBGSU5BTElaRV9DT0RF
X0ZPUigKKyAgICAgICAgICAgICAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVy
LAorICAgICAgICAgICAgICAgICAgICAoIkdldEJ5SWQgcG9seW1vcnBoaWMgbGlzdCBhY2Nlc3Mg
Zm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgICAgICAgICAgICAgdG9DU3Ry
aW5nKCpleGVjLT5jb2RlQmxvY2soKSkuZGF0YSgpLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRp
b24ubGFiZWxBdE9mZnNldCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHViSW5mby5w
YXRjaC5kZWx0YUNhbGxUb0RvbmUpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKSwKICAgICAgICAgICAg
ICAgICAqdm0sCkBAIC03NzUsNyArNzc0LDcgQEAgc3RhdGljIFZfSklUT3BlcmF0aW9uX0VTc2lK
SkkgYXBwcm9wcmlhdGVMaXN0QnVpbGRpbmdQdXRCeUlkRnVuY3Rpb24oY29uc3QgUHV0UHIKIH0K
IAogI2lmIEVOQUJMRShHR0MpCi1zdGF0aWMgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgc3RvcmVUb1dy
aXRlQmFycmllckJ1ZmZlcihDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVnIGNlbGwsIEdQUlJlZyBz
Y3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyLCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIFNjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvciYgYWxsb2NhdG9yKQorc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBj
ZWxsLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwgU2NyYXRjaFJlZ2lzdGVyQWxs
b2NhdG9yJiBhbGxvY2F0b3IpCiB7CiAgICAgQVNTRVJUKHNjcmF0Y2gxICE9IHNjcmF0Y2gyKTsK
ICAgICBXcml0ZUJhcnJpZXJCdWZmZXIqIHdyaXRlQmFycmllckJ1ZmZlciA9ICZqaXQudm0oKS0+
aGVhcC53cml0ZUJhcnJpZXJCdWZmZXIoKTsKQEAgLTgwOCw3ICs4MDcsNyBAQCBzdGF0aWMgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgc3RvcmVUb1dyaXRlQmFycmllckJ1ZmZlcihDQ2FsbEhlbHBlcnMm
IGppdCwgR1BSUmVnCiAgICAgaWYgKGJ5dGVzVG9TdWJ0cmFjdCkKICAgICAgICAgaml0LnN1YlB0
cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKGJ5dGVzVG9TdWJ0cmFjdCksIE1hY3JvQXNz
ZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7IAogCi0gICAgaml0LnNldHVwQXJndW1lbnRz
KGNhbGxGcmFtZVJlZ2lzdGVyLCBjZWxsKTsKKyAgICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKGNlbGwpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgp
OwogCiAgICAgaWYgKGJ5dGVzVG9TdWJ0cmFjdCkKQEAgLTgyMCwxMyArODE5LDEzIEBAIHN0YXRp
YyBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKENDYWxsSGVs
cGVycyYgaml0LCBHUFJSZWcKICAgICByZXR1cm4gY2FsbDsKIH0KIAotc3RhdGljIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIHdyaXRlQmFycmllcihDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVnIG93bmVy
LCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lz
dGVyLCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3ImIGFsbG9jYXRvcikKK3N0YXRpYyBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBvd25l
ciwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIFNjcmF0Y2hSZWdpc3RlckFsbG9j
YXRvciYgYWxsb2NhdG9yKQogewogICAgIEFTU0VSVChvd25lciAhPSBzY3JhdGNoMSk7CiAgICAg
QVNTRVJUKG93bmVyICE9IHNjcmF0Y2gyKTsKIAogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRl
ZmluaXRlbHlOb3RNYXJrZWQgPSBERkc6OlNwZWN1bGF0aXZlSklUOjpnZW5lcmljV3JpdGVCYXJy
aWVyKGppdCwgb3duZXIsIHNjcmF0Y2gxLCBzY3JhdGNoMik7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbCA9IHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIoaml0LCBvd25lciwgc2NyYXRj
aDEsIHNjcmF0Y2gyLCBjYWxsRnJhbWVSZWdpc3RlciwgYWxsb2NhdG9yKTsKKyAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsID0gc3RvcmVUb1dyaXRlQmFycmllckJ1ZmZlcihqaXQsIG93bmVy
LCBzY3JhdGNoMSwgc2NyYXRjaDIsIGFsbG9jYXRvcik7CiAgICAgZGVmaW5pdGVseU5vdE1hcmtl
ZC5saW5rKCZqaXQpOwogICAgIHJldHVybiBjYWxsOwogfQpAQCAtODQ0LDkgKzg0Myw2IEBAIHN0
YXRpYyB2b2lkIGVtaXRQdXRSZXBsYWNlU3R1YigKICAgICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+
JiBzdHViUm91dGluZSkKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSNpZiBFTkFCTEUo
R0dDKQotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4o
c3R1YkluZm8ucGF0Y2guY2FsbEZyYW1lUmVnaXN0ZXIpOwotI2VuZGlmCiAgICAgR1BSUmVnIGJh
c2VHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLmJhc2VHUFIpOwogI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgR1BSUmVnIHZhbHVlVGFnR1BSID0gc3RhdGljX2Nhc3Q8
R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1ZVRhZ0dQUik7CkBAIC04OTMsNyArODg5LDcgQEAg
c3RhdGljIHZvaWQgZW1pdFB1dFJlcGxhY2VTdHViKAogI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxF
KEdHQykKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3
cml0ZUJhcnJpZXIoc3R1YkppdCwgYmFzZUdQUiwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBj
YWxsRnJhbWVSZWdpc3RlciwgYWxsb2NhdG9yKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3
cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJpZXIoc3R1YkppdCwgYmFzZUdQUiwgc2Ny
YXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBhbGxvY2F0b3IpOwogI2VuZGlmCiAgICAgCiAgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzczsKQEAgLTkxOCw5ICs5MTQsOSBAQCBzdGF0aWMgdm9p
ZCBlbWl0UHV0UmVwbGFjZVN0dWIoCiAgICAgcGF0Y2hCdWZmZXIubGluayhzdWNjZXNzLCBzdHVi
SW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldChzdHViSW5mby5wYXRjaC5kZWx0
YUNhbGxUb0RvbmUpKTsKICAgICBwYXRjaEJ1ZmZlci5saW5rKGZhaWx1cmUsIGZhaWx1cmVMYWJl
bCk7CiAgICAgICAgICAgICAKLSAgICBzdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX0RG
R19TVFVCKAotICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgKCJERkcgUHV0QnlJZCByZXBs
YWNlIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAorICAgIHN0dWJSb3V0aW5lID0gRklO
QUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCksIHBhdGNoQnVm
ZmVyLAorICAgICAgICAoIlB1dEJ5SWQgcmVwbGFjZSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50
ICVwIiwKICAgICAgICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwg
c3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoCiAgICAgICAgICAgICAg
ICAgc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9Eb25lKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7
CiB9CkBAIC05NDAsNyArOTM2LDYgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFRyYW5zaXRpb25TdHVi
KAogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJl
Z2lzdGVyID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5jYWxsRnJhbWVSZWdp
c3Rlcik7CiAgICAgR1BSUmVnIGJhc2VHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZv
LnBhdGNoLmJhc2VHUFIpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgR1BSUmVnIHZhbHVl
VGFnR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1ZVRhZ0dQUik7
CkBAIC0xMDYwLDcgKzEwNTUsNyBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0VHJhbnNpdGlvblN0dWIo
CiAjZW5kaWYKICAgICAKICNpZiBFTkFCTEUoR0dDKQotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IHdyaXRlQmFycmllck9wZXJhdGlvbiA9IHdyaXRlQmFycmllcihzdHViSml0LCBiYXNlR1BSLCBz
Y3JhdGNoR1BSMSwgc2NyYXRjaEdQUjIsIGNhbGxGcmFtZVJlZ2lzdGVyLCBhbGxvY2F0b3IpOwor
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdyaXRlQmFycmllck9wZXJhdGlvbiA9IHdyaXRlQmFy
cmllcihzdHViSml0LCBiYXNlR1BSLCBzY3JhdGNoR1BSMSwgc2NyYXRjaEdQUjIsIGFsbG9jYXRv
cik7CiAjZW5kaWYKICAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzOwpAQCAt
MTA4Niw5ICsxMDgxLDkgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFRyYW5zaXRpb25TdHViKAogICAg
ICAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0tPnNjcmF0Y2hCdWZmZXJGb3JT
aXplKGFsbG9jYXRvci5kZXNpcmVkU2NyYXRjaEJ1ZmZlclNpemUoKSk7CiAgICAgICAgIGFsbG9j
YXRvci5wcmVzZXJ2ZVVzZWRSZWdpc3RlcnNUb1NjcmF0Y2hCdWZmZXIoc3R1YkppdCwgc2NyYXRj
aEJ1ZmZlciwgc2NyYXRjaEdQUjEpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIHN0dWJK
aXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tUHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoc2xvdC5jYWNoZWRPZmZzZXQoKSksIHZhbHVlR1BSKTsKKyAgICAgICAgc3R1YkppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIoc3RydWN0dXJlKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzbG90LmNhY2hl
ZE9mZnNldCgpKSwgdmFsdWVHUFIpOwogI2Vsc2UKLSAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3Vt
ZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIoc3RydWN0dXJlKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzbG90LmNhY2hl
ZE9mZnNldCgpKSwgdmFsdWVHUFIsIHZhbHVlVGFnR1BSKTsKKyAgICAgICAgc3R1YkppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIoc3RydWN0dXJlKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzbG90LmNhY2hl
ZE9mZnNldCgpKSwgdmFsdWVHUFIsIHZhbHVlVGFnR1BSKTsKICNlbmRpZgogICAgICAgICBvcGVy
YXRpb25DYWxsID0gc3R1YkppdC5jYWxsKCk7CiAgICAgICAgIGFsbG9jYXRvci5yZXN0b3JlVXNl
ZFJlZ2lzdGVyc0Zyb21TY3JhdGNoQnVmZmVyKHN0dWJKaXQsIHNjcmF0Y2hCdWZmZXIsIHNjcmF0
Y2hHUFIxKTsKQEAgLTExMTEsOSArMTEwNiw5IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRUcmFuc2l0
aW9uU3R1YigKICAgICAKICAgICBzdHViUm91dGluZSA9CiAgICAgICAgIGNyZWF0ZUpJVFN0dWJS
b3V0aW5lKAotICAgICAgICAgICAgRklOQUxJWkVfREZHX0NPREUoCi0gICAgICAgICAgICAgICAg
cGF0Y2hCdWZmZXIsCi0gICAgICAgICAgICAgICAgKCJERkcgUHV0QnlJZCAlc3RyYW5zaXRpb24g
c3R1YiAoJXAgLT4gJXApIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICAgICAgICAgIEZJ
TkFMSVpFX0NPREVfRk9SKAorICAgICAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRj
aEJ1ZmZlciwKKyAgICAgICAgICAgICAgICAoIlB1dEJ5SWQgJXN0cmFuc2l0aW9uIHN0dWIgKCVw
IC0+ICVwKSBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICAgICAgICAgIHN0
cnVjdHVyZS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSAhPSBvbGRTdHJ1Y3R1cmUtPm91dE9mTGluZUNh
cGFjaXR5KCkgPyAicmVhbGxvY2F0aW5nICIgOiAiIiwKICAgICAgICAgICAgICAgICAgICAgb2xk
U3RydWN0dXJlLCBzdHJ1Y3R1cmUsCiAgICAgICAgICAgICAgICAgICAgIHRvQ1N0cmluZygqZXhl
Yy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVs
QXRPZmZzZXQoCkBAIC0xMzk0LDkgKzEzODksOSBAQCBzdGF0aWMgYm9vbCB0cnlSZXBhdGNoSW4o
CiAKICAgICAgICAgbGlua1Jlc3RvcmVTY3JhdGNoKHBhdGNoQnVmZmVyLCBuZWVkVG9SZXN0b3Jl
U2NyYXRjaCwgc3VjY2VzcywgZmFpbCwgZmFpbHVyZUNhc2VzLCBzdWNjZXNzTGFiZWwsIHNsb3dD
YXNlTGFiZWwpOwogICAgICAgICAKLSAgICAgICAgc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RF
X0ZPUl9ERkdfU1RVQigKLSAgICAgICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAgICAgKCJE
RkcgSW4gKGZvdW5kID0gJXMpIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAorICAgICAg
ICBzdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgICAgICBleGVj
LT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisgICAgICAgICAgICAoIkluIChmb3VuZCA9ICVz
KSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKICAgICAgICAgICAgICAgICB3YXNGb3Vu
ZCA/ICJ5ZXMiIDogIm5vIiwgdG9DU3RyaW5nKCpleGVjLT5jb2RlQmxvY2soKSkuZGF0YSgpLAog
ICAgICAgICAgICAgICAgIHN1Y2Nlc3NMYWJlbC5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAg
fQpAQCAtMTQxOSwxNyArMTQxNCwxOSBAQCB2b2lkIHJlcGF0Y2hJbigKICAgICByZXBhdGNoQ2Fs
bChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLCBvcGVyYXRp
b25Jbik7CiB9CiAKLXN0YXRpYyB2b2lkIGxpbmtTbG93Rm9yKFJlcGF0Y2hCdWZmZXImIHJlcGF0
Y2hCdWZmZXIsIFZNKiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVTcGVjaWFs
aXphdGlvbktpbmQga2luZCkKK3N0YXRpYyB2b2lkIGxpbmtTbG93Rm9yKAorICAgIFJlcGF0Y2hC
dWZmZXImIHJlcGF0Y2hCdWZmZXIsIFZNKiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8s
CisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1v
ZGUgcmVnaXN0ZXJzKQogewotICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKSB7Ci0gICAgICAg
IHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIHZt
LT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0g
ICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwg
dm0tPmdldENUSVN0dWIodmlydHVhbENvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwor
ICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKAorICAgICAgICBjYWxsTGlua0luZm8uY2FsbFJldHVy
bkxvY2F0aW9uLAorICAgICAgICB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsVGh1bmtHZW5lcmF0b3JG
b3Ioa2luZCwgcmVnaXN0ZXJzKSkuY29kZSgpKTsKIH0KIAotdm9pZCBsaW5rRm9yKEV4ZWNTdGF0
ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsbGVlQ29k
ZUJsb2NrLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRy
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCit2b2lkIGxpbmtGb3IoCisgICAgRXhlY1N0
YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVD
b2RlQmxvY2ssCisgICAgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y29kZVB0ciwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLAorICAgIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgQVNTRVJUKCFjYWxsTGlua0luZm8uc3R1Yik7
CiAgICAgCkBAIC0xNDQ1LDMxICsxNDQyLDM4IEBAIHZvaWQgbGlua0ZvcihFeGVjU3RhdGUqIGV4
ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCCiAg
ICAgQVNTRVJUKCFjYWxsTGlua0luZm8uaXNMaW5rZWQoKSk7CiAgICAgY2FsbExpbmtJbmZvLmNh
bGxlZS5zZXQoZXhlYy0+Y2FsbGVyRnJhbWUoKS0+dm0oKSwgY2FsbExpbmtJbmZvLmhvdFBhdGhC
ZWdpbiwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVlKTsKICAgICBj
YWxsTGlua0luZm8ubGFzdFNlZW5DYWxsZWUuc2V0KGV4ZWMtPmNhbGxlckZyYW1lKCktPnZtKCks
IGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7CisgICAgaWYgKHNo
b3VsZFNob3dEaXNhc3NlbWJseUZvcihjYWxsZXJDb2RlQmxvY2spKQorICAgICAgICBkYXRhTG9n
KCJMaW5raW5nIGNhbGwgaW4gIiwgKmNhbGxlckNvZGVCbG9jaywgIiBhdCAiLCBjYWxsTGlua0lu
Zm8uY29kZU9yaWdpbiwgIiB0byAiLCBwb2ludGVyRHVtcChjYWxsZWVDb2RlQmxvY2spLCAiLCBl
bnRyeXBvaW50IGF0ICIsIGNvZGVQdHIsICJcbiIpOwogICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5r
KGNhbGxMaW5rSW5mby5ob3RQYXRoT3RoZXIsIGNvZGVQdHIpOwogICAgIAogICAgIGlmIChjYWxs
ZWVDb2RlQmxvY2spCiAgICAgICAgIGNhbGxlZUNvZGVCbG9jay0+bGlua0luY29taW5nQ2FsbChl
eGVjLT5jYWxsZXJGcmFtZSgpLCAmY2FsbExpbmtJbmZvKTsKICAgICAKICAgICBpZiAoa2luZCA9
PSBDb2RlRm9yQ2FsbCkgewotICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0lu
Zm8uY2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaHVu
a0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExp
bmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIobGlua0Nsb3N1cmVDYWxs
VGh1bmtHZW5lcmF0b3JGb3IocmVnaXN0ZXJzKSkuY29kZSgpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICBs
aW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ29uc3Ry
dWN0KTsKKyAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExpbmtJbmZvLCBD
b2RlRm9yQ29uc3RydWN0LCByZWdpc3RlcnMpOwogfQogCi12b2lkIGxpbmtTbG93Rm9yKEV4ZWNT
dGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVTcGVjaWFsaXphdGlv
bktpbmQga2luZCkKK3ZvaWQgbGlua1Nsb3dGb3IoCisgICAgRXhlY1N0YXRlKiBleGVjLCBDYWxs
TGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLAorICAg
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgQ29kZUJsb2NrKiBj
YWxsZXJDb2RlQmxvY2sgPSBleGVjLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKTsKICAgICBW
TSogdm0gPSBjYWxsZXJDb2RlQmxvY2stPnZtKCk7CiAgICAgCiAgICAgUmVwYXRjaEJ1ZmZlciBy
ZXBhdGNoQnVmZmVyKGNhbGxlckNvZGVCbG9jayk7CiAgICAgCi0gICAgbGlua1Nsb3dGb3IocmVw
YXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywga2luZCk7CisgICAgbGlua1Nsb3dGb3IocmVw
YXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywga2luZCwgcmVnaXN0ZXJzKTsKIH0KIAotdm9p
ZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5r
SW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssIFN0cnVjdHVyZSogc3RydWN0dXJlLCBF
eGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIp
Cit2b2lkIGxpbmtDbG9zdXJlQ2FsbCgKKyAgICBFeGVjU3RhdGUqIGV4ZWMsIENhbGxMaW5rSW5m
byYgY2FsbExpbmtJbmZvLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywKKyAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUsIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBjb2RlUHRyLAorICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMp
CiB7CiAgICAgQVNTRVJUKCFjYWxsTGlua0luZm8uc3R1Yik7CiAgICAgCkBAIC0xNDgyLDYgKzE0
ODYsMTUgQEAgdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0lu
Zm8mIGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWwKICAgICAKICAgICBDQ2FsbEhlbHBlcnM6
Okp1bXBMaXN0IHNsb3dQYXRoOwogICAgIAorICAgIHB0cmRpZmZfdCBvZmZzZXRUb0ZyYW1lID0g
LXNpemVvZihDYWxsZXJGcmFtZUFuZFBDKTsKKworICAgIGlmICghQVNTRVJUX0RJU0FCTEVEKSB7
CisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBva0FyZ3VtZW50Q291bnQgPSBzdHViSml0LmJy
YW5jaDMyKAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpCZWxvdywgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0
cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpICsgb2Zm
c2V0VG9GcmFtZSArIFBheWxvYWRPZmZzZXQpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigx
MDAwMDAwMCkpOworICAgICAgICBzdHViSml0LmJyZWFrcG9pbnQoKTsKKyAgICAgICAgb2tBcmd1
bWVudENvdW50LmxpbmsoJnN0dWJKaXQpOworICAgIH0KKyAgICAgICAgICAgIAogI2lmIFVTRShK
U1ZBTFVFNjQpCiAgICAgLy8gV2UgY2FuIHNhZmVseSBjbG9iYmVyIGV2ZXJ5dGhpbmcgZXhjZXB0
IHRoZSBjYWxsZWVHUFIuIFdlIGNhbid0IHJlbHkgb24gdGFnTWFza1JlZ2lzdGVyCiAgICAgLy8g
YmVpbmcgc2V0LiBTbyB3ZSBkbyB0aGlzIHRoZSBoYXJkIHdheS4KQEAgLTE1MDcsMTggKzE1MjAs
MTggQEAgdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8m
IGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWwKICAgICBzdHViSml0LmxvYWRQdHIoCiAgICAg
ICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhjYWxsZWVHUFIsIEpTRnVuY3Rpb246Om9mZnNldE9m
U2NvcGVDaGFpbigpKSwKICAgICAgICAgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotCisgICAg
CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBzdHViSml0LnN0b3JlNjQoCiAgICAgICAgIEdQUklu
Zm86OnJldHVyblZhbHVlR1BSLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lz
dGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pKSk7CisgICAgICAgIENDYWxsSGVscGVyczo6QWRk
cmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0
cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgb2Zmc2V0
VG9GcmFtZSkpOwogI2Vsc2UKICAgICBzdHViSml0LnN0b3JlUHRyKAogICAgICAgICBHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3Rl
cikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVE
ZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRy
ZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBPQkpFQ1Rf
T0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpICsgb2Zmc2V0
VG9GcmFtZSkpOwogICAgIHN0dWJKaXQuc3RvcmUzMigKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRk
cmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90Pihz
aXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBPQkpFQ1RfT0ZGU0VUT0Yo
RW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpKTsKKyAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc3RhdGlj
X2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikg
KyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykgKyBv
ZmZzZXRUb0ZyYW1lKSk7CiAjZW5kaWYKICAgICAKICAgICBBc3NlbWJseUhlbHBlcnM6OkNhbGwg
Y2FsbCA9IHN0dWJKaXQubmVhckNhbGwoKTsKQEAgLTE1MjksMjAgKzE1NDIsMjQgQEAgdm9pZCBs
aW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5m
bywgQ29kZUJsb2NrKiBjYWwKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIHN0dWJKaXQubW92
ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgR1BSSW5mbzo6
cmVnVDEpOwogI2VuZGlmCi0gICAgc3R1YkppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cihjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkp
LCBHUFJJbmZvOjpub25BcmdHUFIyKTsKLSAgICBzdHViSml0LnJlc3RvcmVSZXR1cm5BZGRyZXNz
QmVmb3JlUmV0dXJuKEdQUkluZm86Om5vbkFyZ0dQUjIpOworICAgIHN0dWJKaXQubW92ZShDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5l
eGVjdXRhYmxlQWRkcmVzcygpKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIAorICAgIHN0dWJKaXQu
cmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6cmVnVDIpOwogICAgIEFz
c2VtYmx5SGVscGVyczo6SnVtcCBzbG93ID0gc3R1YkppdC5qdW1wKCk7CiAgICAgCiAgICAgTGlu
a0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZzdHViSml0LCBjYWxsZXJDb2RlQmxvY2spOwogICAg
IAogICAgIHBhdGNoQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHIoY29kZVB0ci5leGVjdXRh
YmxlQWRkcmVzcygpKSk7Ci0gICAgcGF0Y2hCdWZmZXIubGluayhkb25lLCBjYWxsTGlua0luZm8u
Y2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoMCkpOwotICAgIHBhdGNoQnVmZmVyLmxp
bmsoc2xvdywgQ29kZUxvY2F0aW9uTGFiZWwodm0tPmdldENUSVN0dWIodmlydHVhbENhbGxUaHVu
a0dlbmVyYXRvcikuY29kZSgpKSk7CisgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChj
YWxsZXJDb2RlQmxvY2stPmppdFR5cGUoKSkpCisgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9u
ZSwgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KDApKTsKKyAg
ICBlbHNlCisgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgY2FsbExpbmtJbmZvLmhvdFBh
dGhPdGhlci5sYWJlbEF0T2Zmc2V0KDApKTsKKyAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3csIENv
ZGVMb2NhdGlvbkxhYmVsKHZtLT5nZXRDVElTdHViKHZpcnR1YWxUaHVua0dlbmVyYXRvckZvcihD
b2RlRm9yQ2FsbCwgcmVnaXN0ZXJzKSkuY29kZSgpKSk7CiAgICAgCiAgICAgUmVmUHRyPENsb3N1
cmVDYWxsU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lID0gYWRvcHRSZWYobmV3IENsb3N1cmVDYWxs
U3R1YlJvdXRpbmUoCi0gICAgICAgIEZJTkFMSVpFX0RGR19DT0RFKAotICAgICAgICAgICAgcGF0
Y2hCdWZmZXIsCi0gICAgICAgICAgICAoIkRGRyBjbG9zdXJlIGNhbGwgc3R1YiBmb3IgJXMsIHJl
dHVybiBwb2ludCAlcCwgdGFyZ2V0ICVwICglcykiLAorICAgICAgICBGSU5BTElaRV9DT0RFX0ZP
UigKKyAgICAgICAgICAgIGNhbGxlckNvZGVCbG9jaywgcGF0Y2hCdWZmZXIsCisgICAgICAgICAg
ICAoIkNsb3N1cmUgY2FsbCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwLCB0YXJnZXQgJXAg
KCVzKSIsCiAgICAgICAgICAgICAgICAgdG9DU3RyaW5nKCpjYWxsZXJDb2RlQmxvY2spLmRhdGEo
KSwgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KDApLmV4ZWN1
dGFibGVBZGRyZXNzKCksCiAgICAgICAgICAgICAgICAgY29kZVB0ci5leGVjdXRhYmxlQWRkcmVz
cygpLCB0b0NTdHJpbmcocG9pbnRlckR1bXAoY2FsbGVlQ29kZUJsb2NrKSkuZGF0YSgpKSksCiAg
ICAgICAgICp2bSwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgc3RydWN0dXJl
LCBleGVjdXRhYmxlLCBjYWxsTGlua0luZm8uY29kZU9yaWdpbikpOwpAQCAtMTU1Miw3ICsxNTY5
LDcgQEAgdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8m
IGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWwKICAgICByZXBhdGNoQnVmZmVyLnJlcGxhY2VX
aXRoSnVtcCgKICAgICAgICAgUmVwYXRjaEJ1ZmZlcjo6c3RhcnRPZkJyYW5jaFB0cldpdGhQYXRj
aE9uUmVnaXN0ZXIoY2FsbExpbmtJbmZvLmhvdFBhdGhCZWdpbiksCiAgICAgICAgIENvZGVMb2Nh
dGlvbkxhYmVsKHN0dWJSb3V0aW5lLT5jb2RlKCkuY29kZSgpKSk7Ci0gICAgbGlua1Nsb3dGb3Io
cmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwpOworICAgIGxpbmtT
bG93Rm9yKHJlcGF0Y2hCdWZmZXIsIHZtLCBjYWxsTGlua0luZm8sIENvZGVGb3JDYWxsLCByZWdp
c3RlcnMpOwogICAgIAogICAgIGNhbGxMaW5rSW5mby5zdHViID0gc3R1YlJvdXRpbmUucmVsZWFz
ZSgpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNo
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAppbmRleCBmYWE3ODc2MTMz
MDM4YzUzZGYzYWRmYzAyMWI1ZTYyZjdhODdmYTRkLi43OTZjODU1OTFmM2QyMTQyYjBiYzg3Mjll
MmFjNjcxYWFmMWExNTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaApAQCAtNDEs
OSArNDEsOSBAQCB2b2lkIGJ1aWxkR2V0QnlJRFByb3RvTGlzdChFeGVjU3RhdGUqLCBKU1ZhbHVl
LCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydAogdm9pZCByZXBhdGNoUHV0QnlJRChF
eGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHV0UHJvcGVydHlT
bG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsKIHZvaWQgYnVpbGRQdXRCeUlkTGlz
dChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHV0UHJvcGVy
dHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsKIHZvaWQgcmVwYXRjaEluKEV4
ZWNTdGF0ZSosIEpTQ2VsbCosIGNvbnN0IElkZW50aWZpZXImLCBib29sIHdhc0ZvdW5kLCBjb25z
dCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwotdm9pZCBsaW5rRm9yKEV4ZWNT
dGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKLXZvaWQgbGlua1Ns
b3dGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7
Ci12b2lkIGxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxv
Y2sqLCBTdHJ1Y3R1cmUqLCBFeGVjdXRhYmxlQmFzZSosIE1hY3JvQXNzZW1ibGVyQ29kZVB0cik7
Cit2b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgSlNG
dW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIsIENvZGVTcGVjaWFsaXphdGlv
bktpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSk7Cit2b2lkIGxpbmtTbG93Rm9yKEV4ZWNT
dGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTW9kZSk7Cit2b2lkIGxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqLCBDYWxsTGlu
a0luZm8mLCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBFeGVjdXRhYmxlQmFzZSosIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKTsKIHZvaWQgcmVzZXRHZXRC
eUlEKFJlcGF0Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9pZCByZXNldFB1dEJ5
SUQoUmVwYXRjaEJ1ZmZlciYsIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lkIHJlc2V0SW4oUmVw
YXRjaEJ1ZmZlciYsIFN0cnVjdHVyZVN0dWJJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCmluZGV4IDZlYzFlNzFhN2JhODdhMjJiYTI3
YzMxNGMyNzBmNDliMzc5ZTg4YzIuLmQ4MDUzN2I0MThiYTFiNjE2Y2E4YzMzMmFlYzQxYzVhYTgy
N2EyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRU
aHVua0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTcGVjaWFs
aXplZFRodW5rSklUKFZNKiB2bSwgaW50IGV4cGVjdGVkQXJnQ291bnQpCiAgICAgICAgICAgICA6
IEpTSW50ZXJmYWNlSklUKHZtKQogICAgICAgICB7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25Q
cm9sb2d1ZSgpOwogICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSBleHBlY3Rl
ZCBudW1iZXIgb2YgYXJndW1lbnRzCiAgICAgICAgICAgICBtX2ZhaWx1cmVzLmFwcGVuZChicmFu
Y2gzMihOb3RFcXVhbCwgcGF5bG9hZEZvcihKU1N0YWNrOjpBcmd1bWVudENvdW50KSwgVHJ1c3Rl
ZEltbTMyKGV4cGVjdGVkQXJnQ291bnQgKyAxKSkpOwogICAgICAgICB9CkBAIC00OCw2ICs0OSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBleHBsaWNpdCBTcGVjaWFsaXplZFRodW5rSklU
KFZNKiB2bSkKICAgICAgICAgICAgIDogSlNJbnRlcmZhY2VKSVQodm0pCiAgICAgICAgIHsKKyAg
ICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIHZvaWQgbG9hZERvdWJsZUFyZ3VtZW50KGludCBhcmd1bWVudCwgRlBSZWdpc3RlcklE
IGRzdCwgUmVnaXN0ZXJJRCBzY3JhdGNoKQpAQCAtOTcsNyArOTksNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHNyYyAhPSByZWdUMCkKICAgICAgICAgICAg
ICAgICBtb3ZlKHNyYywgcmVnVDApOwotICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxG
cmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpLCBjYWxsRnJhbWVS
ZWdpc3Rlcik7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAg
ICAgcmV0KCk7CiAgICAgICAgIH0KICNlbHNlCkBAIC0xMDUsNyArMTA3LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQocGF5bG9hZCwgcGF5
bG9hZCA9PSByZWdUMCk7CiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHRhZywgdGFnID09IHJl
Z1QxKTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgQ2Fs
bEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgICAg
ICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIHJldCgpOwogICAgICAg
ICB9CiAjZW5kaWYKQEAgLTEzNiw3ICsxMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgIGxvd05vblplcm8ubGluayh0aGlzKTsKICAgICAgICAgICAgIGhpZ2hOb25aZXJvLmxpbmso
dGhpcyk7CiAjZW5kaWYKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdp
c3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIp
OworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIHJldCgp
OwogICAgICAgICB9CiAKQEAgLTE0NSw3ICsxNDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAgICAgICAgICAgICAgICAgbW92ZShzcmMsIHJlZ1Qw
KTsKICAgICAgICAgICAgIHRhZ1JldHVybkFzSW50MzIoKTsKLSAgICAgICAgICAgIGxvYWRQdHIo
QWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgp
KSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
KTsKICAgICAgICAgICAgIHJldCgpOwogICAgICAgICB9CiAKQEAgLTE1NCw3ICsxNTYsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAgICAgICAgICAg
ICAgICAgbW92ZShzcmMsIHJlZ1QwKTsKICAgICAgICAgICAgIHRhZ1JldHVybkFzSlNDZWxsKCk7
Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFt
ZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAg
IGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQoKTsKICAgICAgICAgfQog
ICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNw
cAppbmRleCAxMTg3NWNjYmZjZjI4ZGU5ZjliMGU2YTgwY2I2ZjdmZjZlN2RkZDFiLi4yNTc4OGZj
MDk3YmUxN2Q2MTIyMTAwM2RjNjdlYjM3M2Y2ZDFlYzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQXJyYXlJdGVy
YXRvci5oIgogI2luY2x1ZGUgIkpTU3RhY2suaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTcGVj
aWFsaXplZFRodW5rSklULmgiCiAjaW5jbHVkZSA8d3RmL0lubGluZUFTTS5oPgpAQCAtNjYsMTAg
KzY3LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93
UGF0aEdlbmVyYXRvcihWTSogdm0pCiAgICAgLy8gZXZlbiB0aG91Z2ggd2Ugd29uJ3QgdXNlIGl0
LgogICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6bm9uUHJl
c2VydmVkTm9uUmV0dXJuR1BSKTsKIAotICAgIC8vIFRoZSBDYWxsRnJhbWUgcmVnaXN0ZXIgcG9p
bnRzIHRvIHRoZSAoZmFpbGVkKSBjYWxsZWUgZnJhbWUsIHNvIHdlIG5lZWQgdG8gcG9wIGJhY2sg
b25lIGZyYW1lLgotICAgIGppdC5lbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVy
UHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLQotICAgIGppdC5zZXR1cEFyZ3VtZW50
c0V4ZWNTdGF0ZSgpOworICAgIGppdC5zZXR1cEFyZ3VtZW50cyhDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIodm0pLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4obG9va3VwRXhj
ZXB0aW9uSGFuZGxlcikpLCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBlbWl0UG9pbnRlclZh
bGlkYXRpb24oaml0LCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBqaXQuY2FsbChHUFJJbmZv
Ojpub25BcmdHUFIwKTsKQEAgLTgyLDI5ICs4MCwyOCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
dGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKFZNKiB2bSkKIHN0YXRpYyB2
b2lkIHNsb3dQYXRoRm9yKAogICAgIENDYWxsSGVscGVycyYgaml0LCBWTSogdm0sIFBfSklUT3Bl
cmF0aW9uX0Ugc2xvd1BhdGhGdW5jdGlvbikKIHsKLSAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRy
ZXNzQWZ0ZXJDYWxsKEdQUkluZm86Om5vbkFyZ0dQUjIpOwotICAgIGVtaXRQb2ludGVyVmFsaWRh
dGlvbihqaXQsIEdQUkluZm86Om5vbkFyZ0dQUjIpOwotICAgIGppdC5lbWl0UHV0UmV0dXJuUENU
b0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjpub25BcmdHUFIyKTsKKyAgICBqaXQuZW1pdEZ1bmN0
aW9uUHJvbG9ndWUoKTsKICAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsICZ2bS0+dG9wQ2FsbEZyYW1lKTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwpCisgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoLW1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CiAgICAgaml0LnNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7CiAgICAgaml0Lm1v
dmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc2xvd1Bh
dGhGdW5jdGlvbikpLCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBlbWl0UG9pbnRlclZhbGlk
YXRpb24oaml0LCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBqaXQuY2FsbChHUFJJbmZvOjpu
b25BcmdHUFIwKTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAg
ICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAg
ICAKICAgICAvLyBUaGlzIHNsb3cgY2FsbCB3aWxsIHJldHVybiB0aGUgYWRkcmVzcyBvZiBvbmUg
b2YgdGhlIGZvbGxvd2luZzoKICAgICAvLyAxKSBFeGNlcHRpb24gdGhyb3dpbmcgdGh1bmsuCiAg
ICAgLy8gMikgSG9zdCBjYWxsIHJldHVybiB2YWx1ZSByZXR1cm5lciB0aGluZ3kuCiAgICAgLy8g
MykgVGhlIGZ1bmN0aW9uIHRvIGNhbGwuCi0gICAgaml0LmVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxs
RnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKLSAgICBq
aXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKDApKTsKLSAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpub25Q
cmVzZXJ2ZWROb25SZXR1cm5HUFIpOwotICAgIGppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9y
ZVJldHVybihHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwogICAgIGVtaXRQb2lu
dGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICBqaXQuanVtcChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
Uik7CiB9CiAKIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0ZvclRodW5rR2VuZXJh
dG9yKAotICAgIFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQorICAgIFZNKiB2
bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUg
cmVnaXN0ZXJzKQogewogICAgIC8vIFRoZSByZXR1cm4gYWRkcmVzcyBpcyBvbiB0aGUgc3RhY2sg
b3IgaW4gdGhlIGxpbmsgcmVnaXN0ZXIuIFdlIHdpbGwgaGVuY2UKICAgICAvLyBzYXZlIHRoZSBy
ZXR1cm4gYWRkcmVzcyB0byB0aGUgY2FsbCBmcmFtZSB3aGlsZSB3ZSBtYWtlIGEgQysrIGZ1bmN0
aW9uIGNhbGwKQEAgLTExNCwzOCArMTExLDU5IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgbGlua0ZvclRodW5rR2VuZXJhdG9yKAogICAgIAogICAgIENDYWxsSGVscGVycyBqaXQodm0p
OwogICAgIAotICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIGtpbmQgPT0gQ29kZUZvckNhbGwgPyBv
cGVyYXRpb25MaW5rQ2FsbCA6IG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3QpOworICAgIHNsb3dQYXRo
Rm9yKGppdCwgdm0sIG9wZXJhdGlvbkxpbmtGb3Ioa2luZCwgcmVnaXN0ZXJzKSk7CiAgICAgCiAg
ICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7CiAg
ICAgcmV0dXJuIEZJTkFMSVpFX0NPREUoCiAgICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAo
IkxpbmsgJXMgc2xvdyBwYXRoIHRodW5rIiwga2luZCA9PSBDb2RlRm9yQ2FsbCA/ICJjYWxsIiA6
ICJjb25zdHJ1Y3QiKSk7CisgICAgICAgICgiTGluayAlcyVzIHNsb3cgcGF0aCB0aHVuayIsIGtp
bmQgPT0gQ29kZUZvckNhbGwgPyAiY2FsbCIgOiAiY29uc3RydWN0IiwgcmVnaXN0ZXJzID09IE11
c3RQcmVzZXJ2ZVJlZ2lzdGVycyA/ICIgdGhhdCBwcmVzZXJ2ZXMgcmVnaXN0ZXJzIiA6ICIiKSk7
CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKFZNKiB2
bSkKIHsKLSAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCk7
CisgICAgcmV0dXJuIGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwsIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
bGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbGlua0Zv
clRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gbGlua0Zv
clRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkKTsKIH0KIAotLy8gRm9yIGNsb3N1cmUgb3B0aW1pemF0aW9ucywgd2Ugb25s
eSBpbmNsdWRlIGNhbGxzLCBzaW5jZSBpZiB5b3UncmUgdXNpbmcgY2xvc3VyZXMgZm9yCi0vLyBv
YmplY3QgY29uc3RydWN0aW9uIHRoZW4geW91J3JlIGdvaW5nIHRvIGxvc2UgYmlnIHRpbWUgYW55
d2F5LgotTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9y
KFZNKiB2bSkKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdz
VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0
b3Iodm0sIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0
b3IoVk0qIHZtKQoreworICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVG
b3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK3N0YXRpYyBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsRm9yVGh1bmtHZW5lcmF0b3IoCisgICAgVk0q
IHZtLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIENDYWxsSGVs
cGVycyBqaXQodm0pOwogICAgIAotICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIG9wZXJhdGlvbkxp
bmtDbG9zdXJlQ2FsbCk7CisgICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwgb3BlcmF0aW9uTGlua0Ns
b3N1cmVDYWxsRm9yKHJlZ2lzdGVycykpOwogICAgIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZm
ZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOwotICAgIHJldHVybiBGSU5BTElaRV9DT0RF
KHBhdGNoQnVmZmVyLCAoIkxpbmsgY2xvc3VyZSBjYWxsIHNsb3cgcGF0aCB0aHVuayIpKTsKKyAg
ICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgKCJMaW5rIGNsb3N1cmUgY2FsbCAl
cyBzbG93IHBhdGggdGh1bmsiLCByZWdpc3RlcnMgPT0gTXVzdFByZXNlcnZlUmVnaXN0ZXJzID8g
IiB0aGF0IHByZXNlcnZlcyByZWdpc3RlcnMiIDogIiIpKTsKK30KKworLy8gRm9yIGNsb3N1cmUg
b3B0aW1pemF0aW9ucywgd2Ugb25seSBpbmNsdWRlIGNhbGxzLCBzaW5jZSBpZiB5b3UncmUgdXNp
bmcgY2xvc3VyZXMgZm9yCisvLyBvYmplY3QgY29uc3RydWN0aW9uIHRoZW4geW91J3JlIGdvaW5n
IHRvIGxvc2UgYmlnIHRpbWUgYW55d2F5LgorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9z
dXJlQ2FsbFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0Nsb3N1cmVD
YWxsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQp
OworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsVGhhdFByZXNlcnZl
c1JlZ3NUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIGxpbmtDbG9zdXJlQ2Fs
bEZvclRodW5rR2VuZXJhdG9yKHZtLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOwogfQogCiBzdGF0
aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcigKLSAgICBW
TSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKKyAgICBWTSogdm0sIENvZGVTcGVj
aWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykK
IHsKICAgICAvLyBUaGUgY2FsbGVlIGlzIGluIHJlZ1QwIChmb3IgSlNWQUxVRTMyXzY0LCB0aGUg
dGFnIGlzIGluIHJlZ1QxKS4KICAgICAvLyBUaGUgcmV0dXJuIGFkZHJlc3MgaXMgb24gdGhlIHN0
YWNrLCBvciBpbiB0aGUgbGluayByZWdpc3Rlci4gV2Ugd2lsbCBoZW5jZQpAQCAtMTYwLDMzICsx
NzgsMzQgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsRm9yVGh1bmtHZW5l
cmF0b3IoCiAgICAgLy8gdGhlIERGRyBrbm93cyB0aGF0IHRoZSB2YWx1ZSBpcyBkZWZpbml0ZWx5
IGEgY2VsbCwgb3IgZGVmaW5pdGVseSBhIGZ1bmN0aW9uLgogICAgIAogI2lmIFVTRShKU1ZBTFVF
NjQpCisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoVGFnTWFzayksIEdQ
UkluZm86OnJlZ1QyKTsKKyAgICAKICAgICBzbG93Q2FzZS5hcHBlbmQoCiAgICAgICAgIGppdC5i
cmFuY2hUZXN0NjQoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vblplcm8sIEdQUkluZm86
OnJlZ1QwLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKKyAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6Tm9uWmVybywgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QyKSk7CiAjZWxzZQog
ICAgIHNsb3dDYXNlLmFwcGVuZCgKICAgICAgICAgaml0LmJyYW5jaDMyKAogICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgR1BSSW5mbzo6cmVnVDEsCiAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOwogI2VuZGlmCi0gICAg
aml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBKU0NlbGw6
OnN0cnVjdHVyZU9mZnNldCgpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMik7CisgICAgaml0LmxvYWRQ
dHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBKU0NlbGw6OnN0cnVjdHVy
ZU9mZnNldCgpKSwgR1BSSW5mbzo6cmVnVDIpOwogICAgIHNsb3dDYXNlLmFwcGVuZCgKICAgICAg
ICAgaml0LmJyYW5jaFB0cigKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm90RXF1YWwsCi0g
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6bm9uQXJnR1BSMiwgU3Ry
dWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSksCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MoR1BSSW5mbzo6cmVnVDIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLAogICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKEpTRnVuY3Rpb246OmluZm8oKSkp
KTsKICAgICAKICAgICAvLyBOb3cgd2Uga25vdyB3ZSBoYXZlIGEgSlNGdW5jdGlvbi4KICAgICAK
ICAgICBqaXQubG9hZFB0cigKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OnJlZ1QwLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksCi0gICAgICAgIEdQUklu
Zm86Om5vbkFyZ0dQUjIpOwotICAgIHNsb3dDYXNlLmFwcGVuZCgKLSAgICAgICAgaml0LmJyYW5j
aDMyKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMZXNzVGhhbiwKLSAgICAgICAgICAgIEND
YWxsSGVscGVyczo6QWRkcmVzcygKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIy
LCBFeGVjdXRhYmxlQmFzZTo6b2Zmc2V0T2ZOdW1QYXJhbWV0ZXJzRm9yKGtpbmQpKSwKLSAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApKSk7CisgICAgICAgIEdQUkluZm86
OnJlZ1QyKTsKKyAgICBqaXQubG9hZFB0cigKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KAorICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDIsIEV4ZWN1dGFibGVCYXNlOjpvZmZzZXRPZkpJ
VENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5kLCByZWdpc3RlcnMpKSwKKyAgICAgICAgR1BSSW5m
bzo6cmVnVDIpOworICAgIHNsb3dDYXNlLmFwcGVuZChqaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhl
bHBlcnM6Olplcm8sIEdQUkluZm86OnJlZ1QyKSk7CiAgICAgCiAgICAgLy8gTm93IHdlIGtub3cg
dGhhdCB3ZSBoYXZlIGEgQ29kZUJsb2NrLCBhbmQgd2UncmUgY29tbWl0dGVkIHRvIG1ha2luZyBh
IGZhc3QKICAgICAvLyBjYWxsLgpAQCAtMTk1LDYyICsyMTQsNjAgQEAgc3RhdGljIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3IoCiAgICAgICAgIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZTY29wZUNo
YWluKCkpLAogICAgICAgICBHUFJJbmZvOjpyZWdUMSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAg
ICBqaXQuc3RvcmU2NCgKLSAgICAgICAgR1BSSW5mbzo6cmVnVDEsCi0gICAgICAgIENDYWxsSGVs
cGVyczo6QWRkcmVzcygKLSAgICAgICAgICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAot
ICAgICAgICAgICAgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpT
U3RhY2s6OlNjb3BlQ2hhaW4pKTsKKyAgICBqaXQuZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyQmVm
b3JlUHJvbG9ndWUoR1BSSW5mbzo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogI2Vsc2UK
LSAgICBqaXQuc3RvcmVQdHIoCi0gICAgICAgIEdQUkluZm86OnJlZ1QxLAotICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoCi0gICAgICAgICAgICBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
ciwKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkg
KiBKU1N0YWNrOjpTY29wZUNoYWluICsKLSAgICAgICAgICAgIE9CSkVDVF9PRkZTRVRPRihFbmNv
ZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpKTsKLSAgICBqaXQuc3RvcmUzMigK
LSAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0g
ICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygKLSAgICAgICAgICAgIEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2Yo
UmVnaXN0ZXIpKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKwotICAgICAgICAgICAgT0JKRUNUX09G
RlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSk7CisgICAgaml0LmVt
aXRQdXRQYXlsb2FkVG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZShHUFJJbmZvOjpyZWdU
MSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CisgICAgaml0LmVtaXRQdXRUYWdUb0NhbGxGcmFtZUhl
YWRlckJlZm9yZVByb2xvZ3VlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpLAorICAgICAgICBKU1N0YWNrOjpTY29wZUNoYWluKTsKICNlbmRpZgogICAgIAotICAg
IGppdC5sb2FkUHRyKAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6bm9u
QXJnR1BSMiwgRXhlY3V0YWJsZUJhc2U6Om9mZnNldE9mSklUQ29kZVdpdGhBcml0eUNoZWNrRm9y
KGtpbmQpKSwKLSAgICAgICAgR1BSSW5mbzo6cmVnVDApOwotICAgIAogICAgIC8vIE1ha2UgYSB0
YWlsIGNhbGwuIFRoaXMgd2lsbCByZXR1cm4gYmFjayB0byBKSVQgY29kZS4KLSAgICBlbWl0UG9p
bnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgaml0Lmp1bXAoR1BSSW5m
bzo6cmVnVDApOworICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86OnJlZ1Qy
KTsKKyAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMik7CiAKICAgICBzbG93Q2FzZS5saW5rKCZq
aXQpOwogICAgIAogICAgIC8vIEhlcmUgd2UgZG9uJ3Qga25vdyBhbnl0aGluZywgc28gcmV2ZXJ0
IHRvIHRoZSBmdWxsIHNsb3cgcGF0aC4KICAgICAKLSAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBr
aW5kID09IENvZGVGb3JDYWxsID8gb3BlcmF0aW9uVmlydHVhbENhbGwgOiBvcGVyYXRpb25WaXJ0
dWFsQ29uc3RydWN0KTsKKyAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBvcGVyYXRpb25WaXJ0dWFs
Rm9yKGtpbmQsIHJlZ2lzdGVycykpOwogICAgIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIo
KnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOwogICAgIHJldHVybiBGSU5BTElaRV9DT0RFKAog
ICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgKCJWaXJ0dWFsICVzIHNsb3cgcGF0aCB0aHVu
ayIsIGtpbmQgPT0gQ29kZUZvckNhbGwgPyAiY2FsbCIgOiAiY29uc3RydWN0IikpOworICAgICAg
ICAoIlZpcnR1YWwgJXMlcyBzbG93IHBhdGggdGh1bmsiLCBraW5kID09IENvZGVGb3JDYWxsID8g
ImNhbGwiIDogImNvbnN0cnVjdCIsIHJlZ2lzdGVycyA9PSBNdXN0UHJlc2VydmVSZWdpc3RlcnMg
PyAiIHRoYXQgcHJlc2VydmVzIHJlZ2lzdGVycyIgOiAiIikpOwogfQogCiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgdmlydHVhbENhbGxUaHVua0dlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJu
IHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwpOworICAgIHJldHVybiB2
aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZh
dGlvbk5vdFJlcXVpcmVkKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDb25z
dHJ1Y3RUaHVua0dlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIHZpcnR1YWxGb3JUaHVu
a0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgcmV0dXJuIHZpcnR1YWxGb3JU
aHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25O
b3RSZXF1aXJlZCk7CiB9CiAKLXN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9y
R2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQorTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIHZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihW
TSogdm0pCit7CisgICAgcmV0dXJuIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZv
ckNhbGwsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJl
ZiB2aXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSogdm0p
Cit7CisgICAgcmV0dXJuIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0
cnVjdCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KKworZW51bSBUaHVua0VudHJ5VHlwZSB7
IEVudGVyVmlhQ2FsbCwgRW50ZXJWaWFKdW1wIH07CisKK3N0YXRpYyBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBr
aW5kLCBUaHVua0VudHJ5VHlwZSBlbnRyeVR5cGUgPSBFbnRlclZpYUNhbGwpCiB7CiAgICAgaW50
IGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uID0gTmF0aXZlRXhlY3V0YWJsZTo6b2Zmc2V0T2ZO
YXRpdmVGdW5jdGlvbkZvcihraW5kKTsKICAgICAKICAgICBKU0ludGVyZmFjZUpJVCBqaXQodm0p
OwotICAgIAorCisgICAgaWYgKGVudHJ5VHlwZSA9PSBFbnRlclZpYUNhbGwpCisgICAgICAgIGpp
dC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworCiAgICAgaml0LmVtaXRQdXRJbW1lZGlhdGVUb0Nh
bGxGcmFtZUhlYWRlcigwLCBKU1N0YWNrOjpDb2RlQmxvY2spOwogICAgIGppdC5zdG9yZVB0cihK
U0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsICZ2bS0+dG9wQ2FsbEZyYW1lKTsKIApA
QCAtMjYxLDIyICsyNzgsMTggQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVG
b3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQuZW1p
dEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGppdC5lbWl0UHV0Q2Vs
bFRvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNTdGFjazo6U2NvcGVD
aGFpbik7CiAKLSAgICBqaXQucGVlayhKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5l
bWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwot
CiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoZWN4LCBlZHgsIC4uLik7CiAgICAg
Ly8gSG9zdCBmdW5jdGlvbiBzaWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CiAgICAgaml0Lm1vdmUo
SlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVjeCk7CiAK
LSAgICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2Yo
dm9pZCopKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgLy8gQWxpZ24g
c3RhY2sgYWZ0ZXIgY2FsbC4KKyAgICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVk
SW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWdu
IHN0YWNrIGFmdGVyIHByb2xvZ3VlLgogCiAgICAgLy8gY2FsbCB0aGUgZnVuY3Rpb24KICAgICBq
aXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDEpOwogICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNz
KEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkp
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpy
ZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0
b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAg
ICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qx
LCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwogCi0gICAgaml0LmFkZFB0cihKU0ludGVy
ZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZvaWQqKSksIEpTSW50ZXJmYWNlSklU
OjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6
VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwog
CiAjZWxpZiBDUFUoWDg2XzY0KQogICAgIC8vIExvYWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hh
aW4gaW50byB0aGlzIGNhbGxmcmFtZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNhbGwgY2FuCkBAIC0y
ODQsMjMgKzI5NywxNSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdl
bmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQgawogICAgIGppdC5lbWl0R2V0
Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7
CiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hh
aW4sIEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBq
aXQuZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpT
U3RhY2s6OlNjb3BlQ2hhaW4pOwotCi0gICAgaml0LnBlZWsoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qx
KTsKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QxKTsKLQogI2lmICFPUyhXSU5ET1dTKQogICAgIC8vIENhbGxpbmcgY29udmVudGlv
bjogICAgICBmKGVkaSwgZXNpLCBlZHgsIGVjeCwgLi4uKTsKICAgICAvLyBIb3N0IGZ1bmN0aW9u
IHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWRpKTsKIAotICAgIGppdC5zdWJQdHIo
SlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZihpbnQ2NF90KSksIEpTSW50
ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNrIGFmdGVyIGNh
bGwuCi0KICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2Fs
bGVlLCBYODZSZWdpc3RlcnM6OmVzaSk7CiAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6
OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplc2ksIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJs
ZSgpKSwgWDg2UmVnaXN0ZXJzOjpyOSk7Ci0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QwLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3Rv
cmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAg
ICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5LCBleGVj
dXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwogCi0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJ
VDo6VHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKGludDY0X3QpKSwgSlNJbnRlcmZhY2VKSVQ6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKICNlbHNlCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAg
ICAgIGYoZWN4LCBlZHgsIHI4LCByOSwgLi4uKTsKICAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25h
dHVyZTogZihFeGVjU3RhdGUqKTsKQEAgLTMxMSw3ICszMTYsNiBAQCBzdGF0aWMgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlv
bktpbmQgawogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6
OkNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplZHgpOwogICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNl
SklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWR4LCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1
dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklU
OjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSBy
ZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2su
CiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjpyOSwg
ZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIAogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZh
Y2VKSVQ6OlRydXN0ZWRJbW0zMig0ICogc2l6ZW9mKGludDY0X3QpICsgMTYgLSBzaXplb2YoaW50
NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMzMwLDI4
ICszMzQsMTggQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0
b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQuZW1pdEdldEZyb21D
YWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QxLCBBUk02NFJlZ2lzdGVyczo6eDMpOwogICAgIGppdC5lbWl0UHV0Q2VsbFRvQ2FsbEZyYW1l
SGVhZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAKLSAg
ICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEpTSW50ZXJmYWNlSklUOjpyZWdU
Myk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJh
bWVIZWFkZXIoQVJNNjRSZWdpc3RlcnM6OmxyKTsKLQogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2ln
bmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxs
RnJhbWVSZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6OngwKTsKIAogICAgIGppdC5lbWl0R2V0RnJv
bUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIEFSTTY0UmVnaXN0ZXJzOjp4MSk7
CiAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoQVJNNjRSZWdpc3RlcnM6
OngxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEFSTTY0UmVnaXN0ZXJzOjp4
Mik7Ci0gICAgaml0Lm1vdmUoQVJNNjRSZWdpc3RlcnM6OngzLCBKU0ludGVyZmFjZUpJVDo6Y2Fs
bEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVy
IHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJ
VDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVyczo6eDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9u
KSk7Ci0KLSAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QzKTsKLQogI2VsaWYgQ1BVKEFSTSkgfHwgQ1BVKFNINCkgfHwgQ1BVKE1JUFMp
CiAgICAgLy8gTG9hZCBjYWxsZXIgZnJhbWUncyBzY29wZSBjaGFpbiBpbnRvIHRoaXMgY2FsbGZy
YW1lIHNvIHRoYXQgd2hhdGV2ZXIgd2UgY2FsbCBjYW4gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4K
ICAgICBqaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU0ludGVy
ZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihK
U1N0YWNrOjpTY29wZUNoYWluLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklU
OjpyZWdUMik7CiAgICAgaml0LmVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKIAotICAgIGppdC5wcmVzZXJ2ZVJl
dHVybkFkZHJlc3NBZnRlckNhbGwoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsgLy8gQ2FsbGVlIHBy
ZXNlcnZlZAotICAgIGppdC5lbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVy
ZmFjZUpJVDo6cmVnVDMpOwotCiAjaWYgQ1BVKE1JUFMpCiAgICAgLy8gQWxsb2NhdGUgc3RhY2sg
c3BhY2UgZm9yICh1bnVzZWQpIDE2IGJ5dGVzICg4LWJ5dGUgYWxpZ25lZCkgZm9yIDQgYXJndW1l
bnRzLgogICAgIGppdC5zdWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiksIEpT
SW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CkBAIC0zNjIsNyArMzU2LDYgQEAg
c3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjApOwogCiAgICAgaml0
LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwgSlNJbnRlcmZh
Y2VKSVQ6OmFyZ3VtZW50R1BSMSk7Ci0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qy
LCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUg
Y2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBq
aXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6YXJndW1l
bnRHUFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJmYWNlSklU
OjpyZWdUMik7CiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwogCkBAIC0zNzAsOCAr
MzYzLDYgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3Io
Vk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICAvLyBSZXN0b3JlIHN0YWNrIHNw
YWNlCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2KSwgSlNJ
bnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICNlbmRpZgotCi0gICAgaml0LnJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAj
ZWxzZQogI2Vycm9yICJKSVQgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLiIKICAgICBV
TlVTRURfUEFSQU0oZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pOwpAQCAtMzg5LDI1ICszODAs
MjEgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0q
IHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICAgICAgSlNJbnRlcmZhY2VKSVQ6OlRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7CiAjZW5kaWYKIAorICAgIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIC8vIFJldHVybi4KICAgICBqaXQucmV0KCk7CiAK
ICAgICAvLyBIYW5kbGUgYW4gZXhjZXB0aW9uCiAgICAgZXhjZXB0aW9uSGFuZGxlci5saW5rKCZq
aXQpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgaml0LnByZXNlcnZl
UmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIAotICAg
IGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tUHRyKCZ2bS0+ZXhjZXB0aW9uTG9j
YXRpb24pLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwotICAgIGppdC5zdG9yZVB0cihKU0ludGVy
ZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7Ci0KICAgICBqaXQuc3RvcmVQ
dHIoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCAmdm0tPnRvcENhbGxGcmFtZSk7
CiAKICNpZiBDUFUoWDg2KSAmJiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIGppdC5hZGRQdHIoSlNJ
bnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigtMTIpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwotICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdp
c3Rlcik7CisgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZh
Y2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKKyAgICBq
aXQucHVzaChKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogI2Vsc2UKLSAgICBqaXQubW92ZShKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQ
UjApOworICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNl
SklUOjpjYWxsRnJhbWVSZWdpc3RlciksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjApOwog
I2VuZGlmCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW1QdHIoRnVuY3Rp
b25QdHIob3BlcmF0aW9uVk1IYW5kbGVFeGNlcHRpb24pLnZhbHVlKCkpLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDMpOwogICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CkBAIC00MTgs
NyArNDA1LDcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0
b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQuanVtcFRvRXhjZXB0
aW9uSGFuZGxlcigpOwogCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIEdM
T0JBTF9USFVOS19JRCk7Ci0gICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgi
bmF0aXZlICVzIHRyYW1wb2xpbmUiLCB0b0NTdHJpbmcoa2luZCkuZGF0YSgpKSk7CisgICAgcmV0
dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgibmF0aXZlICVzJXMgdHJhbXBvbGluZSIs
IGVudHJ5VHlwZSA9PSBFbnRlclZpYUp1bXAgPyAiVGFpbCAiIDogIiIsIHRvQ1N0cmluZyhraW5k
KS5kYXRhKCkpKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNhbGxHZW5lcmF0
b3IoVk0qIHZtKQpAQCAtNDI2LDYgKzQxMywxMSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0
aXZlQ2FsbEdlbmVyYXRvcihWTSogdm0pCiAgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2
bSwgQ29kZUZvckNhbGwpOwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlVGFpbENh
bGxHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0s
IENvZGVGb3JDYWxsLCBFbnRlclZpYUp1bXApOworfQorCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
bmF0aXZlQ29uc3RydWN0R2VuZXJhdG9yKFZNKiB2bSkKIHsKICAgICByZXR1cm4gbmF0aXZlRm9y
R2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0KTsKQEAgLTQzNSwxNCArNDI3LDE2IEBAIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKIHsKICAgICBKU0ludGVyZmFj
ZUpJVCBqaXQodm0pOwogCi0gICAgLy8gV2UgZW50ZXIgd2l0aCBmaXh1cCBjb3VudCBpbiByZWdU
MAorICAgIC8vIFdlIGVudGVyIHdpdGggZml4dXAgY291bnQsIGluIGFsaWduZWQgc3RhY2sgdW5p
dHMsIGluIHJlZ1QwIGFuZCB0aGUgcmV0dXJuIHRodW5rIGluCisgICAgLy8gcmVnVDUuIFdlIHVz
ZSBWTTo6Y3VycmVudFJldHVyblRodW5rUEMgaW5zdGVhZCBvZiByZWdUNSBvbiBYODYtMzIuCiAj
aWYgVVNFKEpTVkFMVUU2NCkKICMgIGlmIENQVShYODZfNjQpCiAgICAgaml0LnBvcChKU0ludGVy
ZmFjZUpJVDo6cmVnVDQpOwogIyAgZW5kaWYKKyAgICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VK
SVQ6OlRydXN0ZWRJbW0zMihsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubmVnNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAg
ICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNl
SklUOjpyZWdUMyk7Ci0gICAgaml0LmxvYWQzMihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiA4
KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklU
OjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJn
dW1lbnRDb3VudCAqIHNpemVvZihSZWdpc3RlcikpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwog
ICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxG
cmFtZUhlYWRlclNpemUpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogCiAgICAgLy8gTW92ZSBj
dXJyZW50IGZyYW1lIGRvd24gcmVnVDAgbnVtYmVyIG9mIHNsb3RzCkBAIC00NTIsMTcgKzQ0Niwy
NyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSogdm0pCiAgICAgaml0LmFk
ZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDMpOwogICAgIGppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRl
cmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8o
Y29weUxvb3AsICZqaXQpOwogCi0gICAgLy8gRmlsbCBpbiByZWdUMCBtaXNzaW5nIGFyZyBzbG90
cyB3aXRoIHVuZGVmaW5lZAorICAgIC8vIEZpbGwgaW4gcmVnVDAgLSAxIG1pc3NpbmcgYXJnIHNs
b3RzIHdpdGggdW5kZWZpbmVkCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBK
U0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVz
dGVkSW1tNjQoVmFsdWVVbmRlZmluZWQpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOworICAgIGpp
dC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDIpOwogICAgIEpTSW50ZXJmYWNlSklUOjpMYWJlbCBmaWxsVW5kZWZpbmVkTG9vcChqaXQu
bGFiZWwoKSk7CiAgICAgaml0LnN0b3JlNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBNYWNyb0Fz
c2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwogICAgIGppdC5hZGRQdHIoSlNJ
bnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAg
ICBqaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGZpbGxVbmRl
ZmluZWRMb29wLCAmaml0KTsKLQotICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lzdGVyIHRv
IGFjY291bnQgZm9yIG1pc3NpbmcgYXJncwotICAgIGppdC5sc2hpZnQ2NChKU0ludGVyZmFjZUpJ
VDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwotICAgIGppdC5hZGRQ
dHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0
ZXIpOworICAgIAorICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lzdGVyIGFuZCBzdGFjayBw
b2ludGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncworICAgIGppdC5tb3ZlKEpTSW50ZXJm
YWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQubHNoaWZ0NjQo
SlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsK
KyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OmNh
bGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwg
SlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgIC8vIFNhdmUgdGhl
IG9yaWdpbmFsIHJldHVybiBQQy4KKyAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRk
cmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJu
UENPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6
cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBK
U0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CisgICAg
CisgICAgLy8gSW5zdGFsbCB0aGUgbmV3IHJldHVybiBQQy4KKyAgICBqaXQuc3RvcmVQdHIoR1BS
SW5mbzo6cmVnVDUsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxs
RnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CiAKICMgIGlmIENQ
VShYODZfNjQpCiAgICAgaml0LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsKQEAgLTQ3Miw5
ICs0NzYsMTAgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZtKQogIyAg
aWYgQ1BVKFg4NikKICAgICBqaXQucG9wKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CiAjICBlbmRp
ZgorICAgIGppdC5sc2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKGxvZ1N0YWNr
QWxpZ25tZW50UmVnaXN0ZXJzKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGppdC5u
ZWczMihKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklU
OjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLSAgICBqaXQubG9h
ZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdp
c3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIp
OworICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6
OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc2l6ZW9mKFJlZ2lz
dGVyKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CiAgICAgaml0LmFkZDMyKEpTSW50ZXJmYWNl
SklUOjpUcnVzdGVkSW1tMzIoSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIEpTSW50ZXJm
YWNlSklUOjpyZWdUMik7CiAKICAgICAvLyBNb3ZlIGN1cnJlbnQgZnJhbWUgZG93biByZWdUMCBu
dW1iZXIgb2Ygc2xvdHMKQEAgLTQ4Niw4ICs0OTEsOSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
YXJpdHlGaXh1cChWTSogdm0pCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3Rl
ZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwogICAgIGppdC5icmFuY2hTdWIzMihN
YWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwg
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8oY29weUxvb3AsICZqaXQpOwogCi0gICAgLy8g
RmlsbCBpbiByZWdUMCBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAorICAgIC8vIEZp
bGwgaW4gcmVnVDAgLSAxIG1pc3NpbmcgYXJnIHNsb3RzIHdpdGggdW5kZWZpbmVkCiAgICAgaml0
Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOworICAg
IGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDIpOwogICAgIEpTSW50ZXJmYWNlSklUOjpMYWJlbCBmaWxsVW5kZWZpbmVkTG9vcChq
aXQubGFiZWwoKSk7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigw
KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKICAgICBqaXQuc3RvcmUzMihKU0ludGVyZmFjZUpJ
VDo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qz
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CkBA
IC00OTcsMTAgKzUwMywyNSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSog
dm0pCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0lu
dGVyZmFjZUpJVDo6cmVnVDMpOwogICAgIGppdC5icmFuY2hBZGQzMihNYWNyb0Fzc2VtYmxlcjo6
Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QyKS5saW5rVG8oZmlsbFVuZGVmaW5lZExvb3AsICZqaXQpOwogCi0gICAgLy8gQWRqdXN0
IGNhbGwgZnJhbWUgcmVnaXN0ZXIgdG8gYWNjb3VudCBmb3IgbWlzc2luZyBhcmdzCi0gICAgaml0
LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklU
OjpyZWdUMCk7Ci0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJm
YWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgLy8gQWRqdXN0IGNhbGwgZnJhbWUgcmVn
aXN0ZXIgYW5kIHN0YWNrIHBvaW50ZXIgdG8gYWNjb3VudCBmb3IgbWlzc2luZyBhcmdzCisgICAg
aml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwor
ICAgIGppdC5sc2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDEpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBK
U0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGppdC5hZGRQdHIoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwog
CisgICAgLy8gU2F2ZSB0aGUgb3JpZ2luYWwgcmV0dXJuIFBDLgorICAgIGppdC5sb2FkUHRyKEpT
SW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlciwg
Q2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5z
dG9yZVB0cihHUFJJbmZvOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVy
ZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRp
bWVzRWlnaHQpKTsKKyAgICAKKyAgICAvLyBJbnN0YWxsIHRoZSBuZXcgcmV0dXJuIFBDLgorICAg
IC8vIEZJWE1FOiBJIGRvbid0IHRoaW5rIGN1cnJlbnRSZXR1cm5UaHVua1BDIGlzIHVzZWQgYW5k
IHNob3VsZCBiZSBkZWxldGVkLgorIyAgaWYgMAorICAgIGppdC5sb2FkUHRyKCZ2bS0+Y3VycmVu
dFJldHVyblRodW5rUEMsIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5m
bzo6cmVnVDIsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJh
bWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CisjICAgZWxzZQorICAg
IGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUNSwgSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJ
bnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0
KCkpKTsKKyMgICBlbmRpZgorICAgIAogIyAgaWYgQ1BVKFg4NikKICAgICBqaXQucHVzaChKU0lu
dGVyZmFjZUpJVDo6cmVnVDQpOwogIyAgZW5kaWYKQEAgLTU1NCw3ICs1NzUsNyBAQCBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKICAgICBTcGVj
aWFsaXplZFRodW5rSklUIGppdCh2bSwgMSk7CiAgICAgc3RyaW5nQ2hhckxvYWQoaml0LCB2bSk7
CiAgICAgaml0LnJldHVybkludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKLSAgICBy
ZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJjaGFy
Q29kZUF0Iik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2
ZVRhaWxDYWxsKHZtKSwgImNoYXJDb2RlQXQiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGNoYXJBdFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTU2Myw3ICs1ODQsNyBAQCBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogICAgIHN0cmluZ0No
YXJMb2FkKGppdCwgdm0pOwogICAgIGNoYXJUb1N0cmluZyhqaXQsIHZtLCBTcGVjaWFsaXplZFRo
dW5rSklUOjpyZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1
bmtKSVQ6OnJlZ1QxKTsKICAgICBqaXQucmV0dXJuSlNDZWxsKFNwZWNpYWxpemVkVGh1bmtKSVQ6
OnJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZl
Q2FsbCh2bSksICJjaGFyQXQiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVi
cy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiY2hhckF0Iik7CiB9CiAKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBmcm9tQ2hhckNvZGVUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC01NzMsNyArNTk0
LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRodW5rR2VuZXJhdG9yKFZN
KiB2bSkKICAgICBqaXQubG9hZEludDMyQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6
cmVnVDApOwogICAgIGNoYXJUb1N0cmluZyhqaXQsIHZtLCBTcGVjaWFsaXplZFRodW5rSklUOjpy
ZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJl
Z1QxKTsKICAgICBqaXQucmV0dXJuSlNDZWxsKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsK
LSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSks
ICJmcm9tQ2hhckNvZGUiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+
Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiZnJvbUNoYXJDb2RlIik7CiB9CiAKIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBzcXJ0VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtNTg1LDcgKzYwNiw3IEBA
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzcXJ0VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogICAgIGpp
dC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3Bl
Y2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGppdC5zcXJ0RG91YmxlKFNwZWNpYWxpemVk
VGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwogICAgIGpp
dC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJu
IGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAic3FydCIpOwor
ICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2
bSksICJzcXJ0Iik7CiB9CiAKIApAQCAtNjExLDcgKzYzMiw5IEBAIGRvdWJsZSBqc1JvdW5kKGRv
dWJsZSBkKQogICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMjVGh1bmsp
ICJcbiIgXAogICAgICAgICBISURFX1NZTUJPTChmdW5jdGlvbiMjVGh1bmspICJcbiIgXAogICAg
ICAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uIyNUaHVuaykgIjoiICJcbiIgXAorICAgICAgICAi
cHVzaHEgJXJheFxuIiBcCiAgICAgICAgICJjYWxsICIgR0xPQkFMX1JFRkVSRU5DRShmdW5jdGlv
bikgIlxuIiBcCisgICAgICAgICJwb3BxICVyY3hcbiIgXAogICAgICAgICAicmV0XG4iIFwKICAg
ICApO1wKICAgICBleHRlcm4gIkMiIHsgXApAQCAtNjI2LDEyICs2NDksMTIgQEAgZG91YmxlIGpz
Um91bmQoZG91YmxlIGQpCiAgICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9u
IyNUaHVuaykgIlxuIiBcCiAgICAgICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uIyNUaHVuaykgIlxu
IiBcCiAgICAgICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAiOiIgIlxuIiBcCi0g
ICAgICAgICJzdWJsICQ4LCAlZXNwXG4iIFwKKyAgICAgICAgInN1YmwgJDIwLCAlZXNwXG4iIFwK
ICAgICAgICAgIm1vdnNkICV4bW0wLCAoJWVzcCkgXG4iIFwKICAgICAgICAgImNhbGwgIiBHTE9C
QUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiXG4iIFwKICAgICAgICAgImZzdHBsICglZXNwKSBcbiIg
XAogICAgICAgICAibW92c2QgKCVlc3ApLCAleG1tMCBcbiIgXAotICAgICAgICAiYWRkbCAkOCwg
JWVzcFxuIiBcCisgICAgICAgICJhZGRsICQyMCwgJWVzcFxuIiBcCiAgICAgICAgICJyZXRcbiIg
XAogICAgICk7XAogICAgIGV4dGVybiAiQyIgeyBcCkBAIC03MzMsNyArNzU2LDcgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGZsb29yVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogICAgIGRvdWJsZVJl
c3VsdC5saW5rKCZqaXQpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJ
VDo6ZnBSZWdUMCk7CiAjZW5kaWYgLy8gQ1BVKEFSTTY0KQotICAgIHJldHVybiBqaXQuZmluYWxp
emUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImZsb29yIik7CisgICAgcmV0dXJu
IGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImZsb29y
Iik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjZWlsVGh1bmtHZW5lcmF0b3IoVk0qIHZt
KQpAQCAtNzU2LDcgKzc3OSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjZWlsVGh1bmtHZW5l
cmF0b3IoVk0qIHZtKQogICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpy
ZWdUMCk7CiAgICAgZG91YmxlUmVzdWx0LmxpbmsoJmppdCk7CiAgICAgaml0LnJldHVybkRvdWJs
ZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXpl
KHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJjZWlsIik7CisgICAgcmV0dXJuIGpp
dC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImNlaWwiKTsK
IH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpA
QCAtNzkwLDcgKzgxMyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiByb3VuZFRodW5rR2VuZXJh
dG9yKFZNKiB2bSkKICAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVn
VDApOwogICAgIGRvdWJsZVJlc3VsdC5saW5rKCZqaXQpOwogICAgIGppdC5yZXR1cm5Eb3VibGUo
U3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2
bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAicm91bmQiKTsKKyAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAicm91bmQiKTsK
IH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGV4cFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAg
LTgwMyw3ICs4MjYsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZXhwVGh1bmtHZW5lcmF0b3Io
Vk0qIHZtKQogICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJ
VDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGppdC5jYWxsRG91
YmxlVG9Eb3VibGVQcmVzZXJ2aW5nUmV0dXJuKFVuYXJ5RG91YmxlT3BXcmFwcGVyKGV4cCkpOwog
ICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAg
cmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiZXhw
Iik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxD
YWxsKHZtKSwgImV4cCIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5l
cmF0b3IoVk0qIHZtKQpAQCAtODE2LDcgKzgzOSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBs
b2dUaHVua0dlbmVyYXRvcihWTSogdm0pCiAgICAgaml0LmxvYWREb3VibGVBcmd1bWVudCgwLCBT
cGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7
CiAgICAgaml0LmNhbGxEb3VibGVUb0RvdWJsZVByZXNlcnZpbmdSZXR1cm4oVW5hcnlEb3VibGVP
cFdyYXBwZXIobG9nKSk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklU
OjpmcFJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0
aXZlQ2FsbCh2bSksICJsb2ciKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVi
cy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAibG9nIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBhYnNUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC04MzYsNyArODU5LDcgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGFic1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKICAgICBqaXQubG9hZERv
dWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVk
VGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuYWJzRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6
OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwogICAgIGppdC5yZXR1cm5E
b3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSk7Ci0gICAgcmV0dXJuIGppdC5maW5h
bGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiYWJzIik7CisgICAgcmV0dXJu
IGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImFicyIp
OwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpA
QCAtODg4LDcgKzkxMSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBwb3dUaHVua0dlbmVyYXRv
cihWTSogdm0pCiAgICAgfSBlbHNlCiAgICAgICAgIGppdC5hcHBlbmRGYWlsdXJlKG5vbkludEV4
cG9uZW50KTsKIAotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRp
dmVDYWxsKHZtKSwgInBvdyIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJz
LT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJwb3ciKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIGltdWxUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC05MjEsNyArOTQ0LDcgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGltdWxUaHVua0dlbmVyYXRvcihWTSogdm0pCiAgICAgfSBlbHNlCiAg
ICAgICAgIGppdC5hcHBlbmRGYWlsdXJlKG5vbkludEFyZzFKdW1wKTsKIAotICAgIHJldHVybiBq
aXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImltdWwiKTsKKyAg
ICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0p
LCAiaW11bCIpOwogfQogCiBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFycmF5SXRlcmF0
b3JOZXh0VGh1bmtHZW5lcmF0b3IoVk0qIHZtLCBBcnJheUl0ZXJhdGlvbktpbmQga2luZCkKQEAg
LTk2MSw3ICs5ODQsNyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFycmF5SXRlcmF0
b3JOZXh0VGh1bmtHZW5lcmF0b3IoVk0qIHZtLCBBcnJheUl0ZXJhdAogICAgIGlmIChraW5kID09
IEFycmF5SXRlcmF0ZUtleSkgewogICAgICAgICBqaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBB
ZGRyZXNzKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1Q0LCBKU0FycmF5SXRlcmF0b3I6Om9mZnNl
dE9mTmV4dEluZGV4KCkpKTsKICAgICAgICAgaml0LnJldHVybkludDMyKFNwZWNpYWxpemVkVGh1
bmtKSVQ6OnJlZ1QxKTsKLSAgICAgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMt
PmN0aU5hdGl2ZUNhbGwodm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4dC1rZXkiKTsKKyAgICAgICAg
cmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwg
ImFycmF5LWl0ZXJhdG9yLW5leHQta2V5Iik7CiAgICAgICAgIAogICAgIH0KICAgICBBU1NFUlQo
a2luZCA9PSBBcnJheUl0ZXJhdGVWYWx1ZSk7CkBAIC0xMDEyLDcgKzEwMzUsNyBAQCBzdGF0aWMg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFycmF5SXRlcmF0b3JOZXh0VGh1bmtHZW5lcmF0b3IoVk0q
IHZtLCBBcnJheUl0ZXJhdAogICAgIGppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIEFkZHJlc3Mo
U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDQsIEpTQXJyYXlJdGVyYXRvcjo6b2Zmc2V0T2ZOZXh0
SW5kZXgoKSkpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBS
ZWdUMCk7CiAgICAgCi0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5h
dGl2ZUNhbGwodm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4dC12YWx1ZSIpOworICAgIHJldHVybiBq
aXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJhcnJheS1p
dGVyYXRvci1uZXh0LXZhbHVlIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0
ZXJhdG9yTmV4dEtleVRodW5rR2VuZXJhdG9yKFZNKiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCmluZGV4IDBlMjc2Mjg5MDhjMmY3MTZmMjFmMGFkNmVj
MDY2ZDM1ODJjYjZkNTQuLmMzNWEyZjU0Nzk5Y2M4YTZhNDQ4ZGZlYWYxMWI1ZWYzYWZkZWMwODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaApAQCAtMjYs
NiArMjYsOCBAQAogI2lmbmRlZiBUaHVua0dlbmVyYXRvcnNfaAogI2RlZmluZSBUaHVua0dlbmVy
YXRvcnNfaAogCisjaW5jbHVkZSAiQ29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgorI2luY2x1ZGUg
IlJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIgogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9yLmgi
CiAKICNpZiBFTkFCTEUoSklUKQpAQCAtMzUsMTQgKzM3LDgyIEBAIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiB0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1BhdGhHZW5lcmF0b3IoVk0qKTsKIAogTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0q
KTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NU
aHVua0dlbmVyYXRvcihWTSopOworCitpbmxpbmUgVGh1bmtHZW5lcmF0b3IgbGlua1RodW5rR2Vu
ZXJhdG9yRm9yKAorICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNl
IENvZGVGb3JDYWxsOgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNl
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gbGlu
a0NhbGxUaHVua0dlbmVyYXRvcjsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6
CisgICAgICAgICAgICByZXR1cm4gbGlua0NhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJh
dG9yOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29kZUZvckNvbnN0cnVj
dDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclBy
ZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIGxpbmtDb25zdHJ1Y3RU
aHVua0dlbmVyYXRvcjsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAg
ICAgICAgICByZXR1cm4gbGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0
b3I7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIGxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qKTsK
KworaW5saW5lIFRodW5rR2VuZXJhdG9yIGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yRm9y
KFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChyZWdp
c3RlcnMpIHsKKyAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAg
ICAgIHJldHVybiBsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcjsKKyAgICBjYXNlIE11c3RQ
cmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgcmV0dXJuIGxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVz
ZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3I7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0
dWFsQ2FsbFRodW5rR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVh
bENvbnN0cnVjdFRodW5rR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmly
dHVhbENhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgdmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0
b3IoVk0qKTsKKworaW5saW5lIFRodW5rR2VuZXJhdG9yIHZpcnR1YWxUaHVua0dlbmVyYXRvckZv
cigKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9u
TW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBDb2RlRm9y
Q2FsbDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3Rl
clByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIHZpcnR1YWxDYWxs
VGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAg
ICAgICAgICAgcmV0dXJuIHZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRv
cjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6
CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiB2aXJ0dWFsQ29uc3RydWN0
VGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAg
ICAgICAgICAgcmV0dXJuIHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2Vu
ZXJhdG9yOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQogCiBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgbmF0aXZlQ2FsbEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5h
dGl2ZUNvbnN0cnVjdEdlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2
ZVRhaWxDYWxsR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1
cChWTSopOwogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9y
KFZNKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9v
cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5jcHAKaW5kZXgg
MThjMmI5OWMxMmM0OGVlZTEwMWYyZTA0NmVkM2RhMmM2NWY4MmEyZi4uMjdkYjExNWUzMWI0NGQ5
YWJlNjAzYzQ4YmRlYjgzNjJjMGU2ZmI1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50Q0xvb3AuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludENMb29wLmNwcApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgTExJbnQgewogCiB2
b2lkIENMb29wOjppbml0aWFsaXplKCkKIHsKLSAgICBleGVjdXRlKDAsIGdldE9wY29kZShsbGlu
dF91bnVzZWQpLCB0cnVlKTsKKyAgICBleGVjdXRlKGxsaW50X3VudXNlZCwgMCwgMCwgMCwgdHJ1
ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIExMSW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50Q0xvb3AuaAppbmRleCA4NzU5NTcxZjM1ZGU2NjJhOTM2NWIzOWQwY2I3ZTM3N2FkMDdh
MDg5Li5iMzU3NzEyOGNjZDY5Y2NmYWJiZGM0NzQ5ODI3MGVlMDc5ZjU4MmEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludENMb29wLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiT3Bj
b2RlLmgiCisjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiBu
YW1lc3BhY2UgTExJbnQgewpAQCAtNDAsNyArNDEsNyBAQCBjb25zdCBPcGNvZGVJRCBsbGludF91
bnVzZWQgPSBsbGludF9lbmQ7CiBjbGFzcyBDTG9vcCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZSgpOwotICAgIHN0YXRpYyBKU1ZhbHVlIGV4ZWN1dGUoQ2FsbEZyYW1lKiwg
T3Bjb2RlIGVudHJ5T3Bjb2RlLCBib29sIGlzSW5pdGlhbGl6YXRpb25QYXNzID0gZmFsc2UpOwor
ICAgIHN0YXRpYyBKU1ZhbHVlIGV4ZWN1dGUoT3Bjb2RlSUQgZW50cnlPcGNvZGVJRCwgdm9pZCog
ZXhlY3V0YWJsZUFkZHJlc3MsIFZNKiwgUHJvdG9DYWxsRnJhbWUqLCBib29sIGlzSW5pdGlhbGl6
YXRpb25QYXNzID0gZmFsc2UpOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCmluZGV4IGFjNzc4MzZjMGJi
OTQxOWRlZGJkZThjNjUzOGNmZjYzYjdiMDlkYjAuLmU3ZjljNmQ3YTVjNDg5YzE1YzBiNjY1NTEy
YzkzZTE3MzFkOTczMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludERhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEu
Y3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRl
ICJKU1Njb3BlLmgiCiAjaW5jbHVkZSAiTExJbnRDTG9vcC5oIgorI2luY2x1ZGUgIk1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAi
UHJvcGVydHlPZmZzZXQuaCIKIApAQCAtODcsNiArODgsNyBAQCB2b2lkIERhdGE6OnBlcmZvcm1B
c3NlcnRpb25zKFZNJiB2bSkKICAgICBBU1NFUlQoSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6
ZSA9PSBDYWxsRnJhbWVIZWFkZXJTbG90cyk7CiAKICAgICBBU1NFUlQoIUNhbGxGcmFtZTo6Y2Fs
bGVyRnJhbWVPZmZzZXQoKSk7CisgICAgQVNTRVJUKEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENT
aXplID09IChQdHJTaXplICogMikgLyBTbG90U2l6ZSk7CiAgICAgQVNTRVJUKENhbGxGcmFtZTo6
cmV0dXJuUENPZmZzZXQoKSA9PSBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkgKyBQdHJT
aXplKTsKICAgICBBU1NFUlQoSlNTdGFjazo6Q29kZUJsb2NrICogc2l6ZW9mKFJlZ2lzdGVyKSA9
PSBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkgKyBQdHJTaXplKTsKICAgICBBU1NFUlQoSlNT
dGFjazo6U2NvcGVDaGFpbiAqIHNpemVvZihSZWdpc3RlcikgPT0gSlNTdGFjazo6Q29kZUJsb2Nr
ICogc2l6ZW9mKFJlZ2lzdGVyKSArIFNsb3RTaXplKTsKQEAgLTEyMyw2ICsxMjUsMTMgQEAgdm9p
ZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAgQVNTRVJUKFZhbHVlVW5kZWZp
bmVkID09IChUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRVbmRlZmluZWQpKTsKICAgICBBU1NFUlQo
VmFsdWVOdWxsID09IFRhZ0JpdFR5cGVPdGhlcik7CiAjZW5kaWYKKyNpZiBDUFUoWDg2XzY0KSB8
fCBDUFUoQVJNNjQpIHx8IEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgQVNTRVJUKG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsID09IDApOworI2VsaWYgQ1BVKEFSTSkgfHwgQ1BVKFNINCkK
KyAgICBBU1NFUlQobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPT0gMjQpOworI2VsaWYg
Q1BVKFg4NikgfHwgQ1BVKE1JUFMpCisgICAgQVNTRVJUKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsID09IDQwKTsKKyNlbmRpZgogICAgIEFTU0VSVChTdHJpbmdUeXBlID09IDUpOwogICAg
IEFTU0VSVChPYmplY3RUeXBlID09IDE3KTsKICAgICBBU1NFUlQoRmluYWxPYmplY3RUeXBlID09
IDE4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5
cG9pbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5j
cHAKaW5kZXggOTkzZWM2N2I5OTNiMDRmODQ1NDEyZTM3YmRmYTZkYzE1ZDhkNTdmOS4uNWQ5MWJl
NjMwM2RiZDVkNTZlOGNjMGNlNjViNzE1YzUyYTI3YzJhNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAKQEAgLTMzLDYgKzMzLDggQEAKICNp
bmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkxMSW50VGh1bmtzLmgiCiAjaW5jbHVkZSAi
TG93TGV2ZWxJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlICJWTS5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKQEAgLTQ1LDE0ICs0NywxMiBAQCBz
dGF0aWMgdm9pZCBzZXRGdW5jdGlvbkVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaykKICAgICBpZiAodm0uY2FuVXNlSklUKCkpIHsKICAgICAgICAgaWYgKGtpbmQgPT0gQ29k
ZUZvckNhbGwpIHsKICAgICAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAg
ICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKGZ1bmN0aW9u
Rm9yQ2FsbEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSks
Ci0gICAgICAgICAgICAgICAgdm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNhbGxBcml0eUNoZWNr
VGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgICAgICAgICAgICAgYWRvcHRSZWYobmV3IERp
cmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNhbGxFbnRyeVRodW5rR2VuZXJh
dG9yKSwgdm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNhbGxBcml0eUNoZWNrVGh1bmtHZW5lcmF0
b3IpLmNvZGUoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0
KTsKICAgICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICAgICAgYWRvcHRSZWYo
bmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEVudHJ5
VGh1bmtHZW5lcmF0b3IpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgICAg
ICB2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ29uc3RydWN0QXJpdHlDaGVja1RodW5rR2VuZXJh
dG9yKS5jb2RlKCkpOworICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0u
Z2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEVudHJ5VGh1bmtHZW5lcmF0b3IpLCB2bS5n
ZXRDVElTdHViKGZ1bmN0aW9uRm9yQ29uc3RydWN0QXJpdHlDaGVja1RodW5rR2VuZXJhdG9yKS5j
b2RlKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKQEAgLTYwLDE0ICs2MCwxMiBAQCBzdGF0aWMgdm9p
ZCBzZXRGdW5jdGlvbkVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAg
ICBVTlVTRURfUEFSQU0odm0pOwogICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKSB7CiAgICAg
ICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJl
Y3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50
X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykp
LAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIo
bGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2spKTsKKyAgICAgICAgICAgIGFkb3B0
UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRD
b2RlUmVmKGxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlKSwgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlf
Y2hlY2spLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwogICAgIGNvZGVCbG9j
ay0+c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoTWFjcm9B
c3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZnVuY3Rpb25fZm9yX2Nv
bnN0cnVjdF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfZnVuY3Rpb25f
Zm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjaykpOworICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0
SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9m
dW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpj
cmVhdGVMTEludENvZGVQdHIobGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVj
ayksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldEV2
YWxFbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC03NSwxNiArNzMs
MTQgQEAgc3RhdGljIHZvaWQgc2V0RXZhbEVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaykKICNpZiBFTkFCTEUoSklUKQogICAgIGlmICh2bS5jYW5Vc2VKSVQoKSkgewogICAg
ICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgICAgICBhZG9wdFJlZihuZXcgRGly
ZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKGV2YWxFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29k
ZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
KCkpOworICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1
YihldmFsRW50cnlUaHVua0dlbmVyYXRvciksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRD
b2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlm
IC8vIEVOQUJMRShKSVQpCiAKICAgICBVTlVTRURfUEFSQU0odm0pOwogICAgIGNvZGVCbG9jay0+
c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZXZhbF9wcm9sb2d1ZSksIEpJ
VENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
KCkpOworICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9ldmFsX3Byb2xvZ3VlKSwgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiB9CiAKIHN0YXRp
YyB2b2lkIHNldFByb2dyYW1FbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2sp
CkBAIC05MiwxNiArODgsMTQgQEAgc3RhdGljIHZvaWQgc2V0UHJvZ3JhbUVudHJ5cG9pbnQoVk0m
IHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKICNpZiBFTkFCTEUoSklUKQogICAgIGlmICh2bS5j
YW5Vc2VKSVQoKSkgewogICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgICAg
ICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKHByb2dyYW1FbnRyeVRo
dW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVj
dEpJVENvZGUodm0uZ2V0Q1RJU3R1Yihwcm9ncmFtRW50cnlUaHVua0dlbmVyYXRvciksIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKICAgICBVTlVTRURfUEFS
QU0odm0pOwogICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRSZWYobmV3
IERpcmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYo
bGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICBhZG9wdFJlZihuZXcgRGly
ZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGlu
dF9wcm9ncmFtX3Byb2xvZ3VlKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCksIEpJVENvZGU6Oklu
dGVycHJldGVyVGh1bmspKSk7CiB9CiAKIHZvaWQgc2V0RW50cnlwb2ludChWTSYgdm0sIENvZGVC
bG9jayogY29kZUJsb2NrKQpAQCAtMTIzLDcgKzExNyw5IEBAIHZvaWQgc2V0RW50cnlwb2ludChW
TSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQogCiB1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291
bnRGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCiB7Ci0gICAgcmV0dXJuIGNvZGVCbG9jay0+bV9u
dW1DYWxsZWVSZWdpc3RlcnM7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb2Rl
QmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSA9PSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yo
c3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNvZGVCbG9j
ay0+bV9udW1DYWxsZWVSZWdpc3RlcnMpKSk7CisKKyAgICByZXR1cm4gcm91bmRMb2NhbFJlZ2lz
dGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZzZXQoY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lz
dGVycyArIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5SZWdpc3RlcnMpOwogfQogCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAKaW5kZXggYTBjYmZhMGJhM2UwNzY5
ZmM1NDQxYjJlM2E3MTlkMDk3NDNkNDNhZi4uNjA0Y2MyNjNjZjk3ZTA4NmZlZDA2ZWM5MDNiMGVj
MTk4M2U3ODEzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
T2Zmc2V0c0V4dHJhY3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkFy
cmF5UHJvZmlsZS5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkNvbW1vblNs
b3dQYXRocy5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5o
IgogI2luY2x1ZGUgIkhlYXAuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludE9wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T3Bj
b2RlLmgKaW5kZXggN2VlNTNkZjgyM2NmNTM4MmQwNTg3YmQ3YTFlZmI0MzFiYjRkNzhjNi4uZmEx
ZmE2YWE4ZDlmZWE0YjE0M2JkMGY4ZjA3NWJjNGFiZmMyY2YyYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T3Bjb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50T3Bjb2RlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDE4IEBACiAK
ICNkZWZpbmUgRk9SX0VBQ0hfTExJTlRfTk9KSVRfTkFUSVZFX0hFTFBFUihtYWNybykgXAogICAg
IG1hY3JvKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUsIDEpIFwKLSAgICBtYWNybyhyZXR1cm5Gcm9t
SmF2YVNjcmlwdCwgMSkKKyAgICBtYWNybyhsbGludF9yZXR1cm5fdG9faG9zdCwgMSkgXAorICAg
IG1hY3JvKGxsaW50X2NhbGxfdG9famF2YXNjcmlwdCwgMSkgXAorICAgIG1hY3JvKGxsaW50X2Nh
bGxfdG9fbmF0aXZlX2Z1bmN0aW9uLCAxKSBcCisgICAgbWFjcm8oaGFuZGxlVW5jYXVnaHRFeGNl
cHRpb24sIDEpIFwKKyAgICBcCisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9t
X2pzXzEsIDEpIFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfMiwg
MSkgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc18zLCAxKSBcCisg
ICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzQsIDEpIFwKKyAgICBtYWNy
byhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfNSwgMSkgXAorICAgIG1hY3JvKGxsaW50
X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc182LCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2xvb3Bf
ZGlkX3JldHVybl9mcm9tX2pzXzcsIDEpIFwKIAogI2Vsc2UgLy8gIUVOQUJMRShMTElOVF9DX0xP
T1ApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQ
YXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
CmluZGV4IDI2MjY0MTcxZDZjNzAzODRjY2QwMDM5NjA2OTZmYjEwODBmMjc0YmMuLjg2MzUyZDQ1
ZDIzZDk2Njg1NDFjZDdlOWM2YTQ1YTA1MGU2MGRmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvbW1vblNs
b3dQYXRocy5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRoc0V4Y2VwdGlvbnMuaCIKKyNpbmNs
dWRlICJFcnJvckhhbmRsaW5nU2NvcGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNp
bmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIK
QEAgLTUxLDYgKzUyLDcgQEAKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCiAjaW5j
bHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisjaW5j
bHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGlu
ZXMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIApAQCAtODIsNyArODQs
NyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKICAgICAgICAgcmV0dXJuIGVu
Y29kZVJlc3VsdChmaXJzdCwgc2Vjb25kKTsgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkK
IAotI2RlZmluZSBMTElOVF9FTkRfSU1QTCgpIExMSU5UX1JFVFVSTl9UV08ocGMsIGV4ZWMpCisj
ZGVmaW5lIExMSU5UX0VORF9JTVBMKCkgTExJTlRfUkVUVVJOX1RXTyhwYywgMCkKIAogI2RlZmlu
ZSBMTElOVF9USFJPVyhleGNlcHRpb25Ub1Rocm93KSBkbyB7ICAgICAgICAgICAgICAgICAgICAg
ICAgXAogICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBleGNlcHRpb25Ub1Rocm93KTsg
ICAgICAgICAgICAgICAgXApAQCAtMTM3LDIyICsxMzksMjggQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBMTEludCB7CiAjZGVmaW5lIExMSU5UX0NBTExfVEhST1coZXhlYywgZXhjZXB0aW9u
VG9UaHJvdykgZG8geyAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEV4ZWNTdGF0ZSogX19j
dF9leGVjID0gKGV4ZWMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
ICAgIHZtLnRocm93RXhjZXB0aW9uKF9fY3RfZXhlYywgZXhjZXB0aW9uVG9UaHJvdyk7ICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgIExMSU5UX0NBTExfRU5EX0lNUEwoX19jdF9leGVjLCBjYWxs
VG9UaHJvdyhfX2N0X2V4ZWMpKTsgICAgICAgICBcCisgICAgICAgIExMSU5UX0NBTExfRU5EX0lN
UEwoMCwgY2FsbFRvVGhyb3coX19jdF9leGVjKSk7ICAgICAgICAgICAgICAgICBcCiAgICAgfSB3
aGlsZSAoZmFsc2UpCiAKICNkZWZpbmUgTExJTlRfQ0FMTF9DSEVDS19FWENFUFRJT04oZXhlYykg
ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRXhlY1N0YXRlKiBfX2Nj
ZV9leGVjID0gKGV4ZWMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg
ICAgaWYgKFVOTElLRUxZKHZtLmV4Y2VwdGlvbigpKSkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICAgICAgICAgIExMSU5UX0NBTExfRU5EX0lNUEwoX19jY2VfZXhlYywg
Y2FsbFRvVGhyb3coX19jY2VfZXhlYykpOyAgIFwKKyAgICAgICAgICAgIExMSU5UX0NBTExfRU5E
X0lNUEwoMCwgY2FsbFRvVGhyb3coX19jY2VfZXhlYykpOyAgICAgICAgICAgIFwKICAgICB9IHdo
aWxlIChmYWxzZSkKIAogI2RlZmluZSBMTElOVF9DQUxMX1JFVFVSTihleGVjLCBjYWxsVGFyZ2V0
KSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBFeGVjU3RhdGUqIF9fY3Jf
ZXhlYyA9IChleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg
ICB2b2lkKiBfX2NyX2NhbGxUYXJnZXQgPSAoY2FsbFRhcmdldCk7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgICBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihfX2NyX2V4ZWMt
PmNhbGxlckZyYW1lKCkpOyAgICAgICAgICAgXAorICAgICAgICBMTElOVF9DQUxMX0NIRUNLX0VY
Q0VQVElPTihfX2NyX2V4ZWMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBM
TElOVF9DQUxMX0VORF9JTVBMKF9fY3JfZXhlYywgX19jcl9jYWxsVGFyZ2V0KTsgICAgICAgICAg
ICAgICAgXAogICAgIH0gd2hpbGUgKGZhbHNlKQogCisjZGVmaW5lIExMSU5UX1JFVFVSTl9DQUxM
RUVfRlJBTUUoZXhlY0NhbGxlZSkgZG8geyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg
IEV4ZWNTdGF0ZSogX19yY2ZfZXhlYyA9IChleGVjQ2FsbGVlKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgIExMSU5UX1JFVFVSTl9UV08ocGMsIF9fcmNmX2V4ZWMpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoZmFsc2UpCisgICAgCisK
IGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3RyYWNlX29wZXJhbmQoRXhlY1N0
YXRlKiBleGVjLCBJbnN0cnVjdGlvbiogcGMsIGludCBmcm9tV2hlcmUsIGludCBvcGVyYW5kKQog
ewogICAgIExMSU5UX0JFR0lOKCk7CkBAIC0yNDIsNiArMjUwLDEwIEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKHRyYWNlKQogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KHBjIC0gZXhl
Yy0+Y29kZUJsb2NrKCktPmluc3RydWN0aW9ucygpLmJlZ2luKCkpLAogICAgICAgICAgICAgb3Bj
b2RlTmFtZXNbZXhlYy0+dm0oKS5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNv
ZGUpXSwKICAgICAgICAgICAgIGV4ZWMtPnNjb3BlKCksIHBjKTsKKyAgICBpZiAoZXhlYy0+dm0o
KS5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpID09IG9wX2VudGVyKSB7
CisgICAgICAgIGRhdGFMb2dGKCJGcmFtZSB3aWxsIGV2ZW50dWFsbHkgcmV0dXJuIHRvICVwXG4i
LCBleGVjLT5yZXR1cm5QQygpLnZhbHVlKCkpOworICAgICAgICAqYml0d2lzZV9jYXN0PHZvbGF0
aWxlIGNoYXIqPihleGVjLT5yZXR1cm5QQygpLnZhbHVlKCkpOworICAgIH0KICAgICBpZiAoZXhl
Yy0+dm0oKS5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpID09IG9wX3Jl
dCkgewogICAgICAgICBkYXRhTG9nRigiV2lsbCBiZSByZXR1cm5pbmcgdG8gJXBcbiIsIGV4ZWMt
PnJldHVyblBDKCkudmFsdWUoKSk7CiAgICAgICAgIGRhdGFMb2dGKCJUaGUgbmV3IGNmciB3aWxs
IGJlICVwXG4iLCBleGVjLT5jYWxsZXJGcmFtZSgpKTsKQEAgLTMyNSwxNSArMzM3LDE3IEBAIHN0
YXRpYyBTbG93UGF0aFJldHVyblR5cGUgZW50cnlPU1IoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVj
dGlvbiosIENvZGVCbG9jayogY29kCiAgICAgCiAgICAgaWYgKCFzaG91bGRKSVQoZXhlYykpIHsK
ICAgICAgICAgY29kZUJsb2NrLT5kb250SklUQW55dGltZVNvb24oKTsKLSAgICAgICAgTExJTlRf
UkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsKICAg
ICB9CiAgICAgaWYgKCFqaXRDb21waWxlQW5kU2V0SGV1cmlzdGljcyhjb2RlQmxvY2ssIGV4ZWMp
KQotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIGV4ZWMpOworICAgICAgICBMTElOVF9SRVRV
Uk5fVFdPKDAsIDApOwogICAgIAogICAgIGlmIChraW5kID09IFByb2xvZ3VlKQotICAgICAgICBM
TElOVF9SRVRVUk5fVFdPKGNvZGVCbG9jay0+aml0Q29kZSgpLT5leGVjdXRhYmxlQWRkcmVzcygp
LCBleGVjKTsKKyAgICAgICAgTExJTlRfUkVUVVJOX1RXTyhjb2RlQmxvY2stPmppdENvZGUoKS0+
ZXhlY3V0YWJsZUFkZHJlc3MoKSwgMCk7CiAgICAgQVNTRVJUKGtpbmQgPT0gQXJpdHlDaGVjayk7
Ci0gICAgTExJTlRfUkVUVVJOX1RXTyhjb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygp
LmV4ZWN1dGFibGVBZGRyZXNzKCksIGV4ZWMpOworICAgIExMSU5UX1JFVFVSTl9UV08oY29kZUJs
b2NrLT5qaXRDb2RlKCktPmFkZHJlc3NGb3JDYWxsKAorICAgICAgICAqY29kZUJsb2NrLT52bSgp
LCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBNdXN0Q2hlY2tBcml0eSwKKyAgICAgICAg
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwgMCk7
CiB9CiAjZWxzZSAvLyBFTkFCTEUoSklUKQogc3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBlbnRy
eU9TUihFeGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKiwgQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IGNvbnN0IGNoYXIqLCBFbnRyeUtpbmQpCkBAIC0zODEsMTEgKzM5NSwxMSBAQCBMTElOVF9TTE9X
X1BBVEhfREVDTChsb29wX29zcikKICAgICAKICAgICBpZiAoIXNob3VsZEpJVChleGVjKSkgewog
ICAgICAgICBjb2RlQmxvY2stPmRvbnRKSVRBbnl0aW1lU29vbigpOwotICAgICAgICBMTElOVF9S
RVRVUk5fVFdPKDAsIGV4ZWMpOworICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAg
IH0KICAgICAKICAgICBpZiAoIWppdENvbXBpbGVBbmRTZXRIZXVyaXN0aWNzKGNvZGVCbG9jaywg
ZXhlYykpCi0gICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgZXhlYyk7CisgICAgICAgIExMSU5U
X1JFVFVSTl9UV08oMCwgMCk7CiAgICAgCiAgICAgQVNTRVJUKGNvZGVCbG9jay0+aml0VHlwZSgp
ID09IEpJVENvZGU6OkJhc2VsaW5lSklUKTsKICAgICAKQEAgLTM5OCwxMCArNDEyLDEwIEBAIExM
SU5UX1NMT1dfUEFUSF9ERUNMKGxvb3Bfb3NyKQogICAgIHZvaWQqIGp1bXBUYXJnZXQgPSBjb2Rl
QmxvY2stPmppdENvZGUoKS0+ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChtYXBwaW5nLT5tX21h
Y2hpbmVDb2RlT2Zmc2V0KTsKICAgICBBU1NFUlQoanVtcFRhcmdldCk7CiAgICAgCi0gICAgTExJ
TlRfUkVUVVJOX1RXTyhqdW1wVGFyZ2V0LCBleGVjKTsKKyAgICBMTElOVF9SRVRVUk5fVFdPKGp1
bXBUYXJnZXQsIGV4ZWMtPnRvcE9mRnJhbWUoKSk7CiAjZWxzZSAvLyBFTkFCTEUoSklUKQogICAg
IGNvZGVCbG9jay0+ZG9udEpJVEFueXRpbWVTb29uKCk7Ci0gICAgTExJTlRfUkVUVVJOX1RXTygw
LCBleGVjKTsKKyAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogI2VuZGlmIC8vIEVOQUJMRShK
SVQpCiB9CiAKQEAgLTQzNywxMyArNDUxLDM0IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHN0YWNr
X2NoZWNrKQogICAgIGRhdGFMb2dGKCJOdW0gdmFycyA9ICV1LlxuIiwgZXhlYy0+Y29kZUJsb2Nr
KCktPm1fbnVtVmFycyk7CiAgICAgZGF0YUxvZ0YoIkN1cnJlbnQgZW5kIGlzIGF0ICVwLlxuIiwg
ZXhlYy0+dm0oKS5pbnRlcnByZXRlci0+c3RhY2soKS5lbmQoKSk7CiAjZW5kaWYKLSAgICBBU1NF
UlQoIWV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPnN0YWNrKCkuY29udGFpbnNBZGRyZXNzKCZleGVj
LT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChleGVjLT5jb2RlQmxvY2soKS0+
bV9udW1DYWxsZWVSZWdpc3RlcnMpLm9mZnNldCgpXSkpOwotICAgIGlmIChVTkxJS0VMWSghdm0u
aW50ZXJwcmV0ZXItPnN0YWNrKCkuZ3JvdygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lz
dGVyRm9yTG9jYWwoZXhlYy0+Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKS5vZmZz
ZXQoKV0pKSkgewotICAgICAgICBleGVjID0gZXhlYy0+Y2FsbGVyRnJhbWUoKTsKLSAgICAgICAg
Q29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywgY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKLSAgICAgICAgcGMgPSByZXR1cm5Ub1Rocm93Rm9yVGhy
b3duRXhjZXB0aW9uKGV4ZWMpOwotICAgIH0KLSAgICBMTElOVF9FTkRfSU1QTCgpOworCisgICAg
Ly8gVGhpcyBzdGFjayBjaGVjayBpcyBkb25lIGluIHRoZSBwcm9sb2d1ZSBmb3IgYSBmdW5jdGlv
biBjYWxsLCBhbmQgdGhlCisgICAgLy8gQ2FsbEZyYW1lIGlzIG5vdCBjb21wbGV0ZWx5IHNldCB1
cCB5ZXQuIEZvciBleGFtcGxlLCBpZiB0aGUgZnJhbWUgbmVlZHMKKyAgICAvLyBhbiBhY3RpdmF0
aW9uIG9iamVjdCwgdGhlIGFjdGl2YXRpb24gb2JqZWN0IHdpbGwgb25seSBiZSBzZXQgdXAgYWZ0
ZXIKKyAgICAvLyB3ZSBzdGFydCBleGVjdXRpbmcgdGhlIGZ1bmN0aW9uLiBJZiB3ZSBuZWVkIHRv
IHRocm93IGEgU3RhY2tPdmVyZmxvd0Vycm9yCisgICAgLy8gaGVyZSwgdGhlbiB3ZSBuZWVkIHRv
IHRlbGwgdGhlIHByb2xvZ3VlIHRvIHN0YXJ0IHRoZSBzdGFjayB1bndpbmRpbmcgZnJvbQorICAg
IC8vIHRoZSBjYWxsZXIgZnJhbWUgKHdoaWNoIGlzIGZ1bGx5IHNldCB1cCkgaW5zdGVhZC4gVG8g
ZG8gdGhhdCwgd2UgcmV0dXJuCisgICAgLy8gdGhlIGNhbGxlcidzIENhbGxGcmFtZSBpbiB0aGUg
c2Vjb25kIHJldHVybiB2YWx1ZS4KKyAgICAvLworICAgIC8vIElmIHRoZSBzdGFjayBjaGVjayBz
dWNjZWVkcyBhbmQgd2UgZG9uJ3QgbmVlZCB0byB0aHJvdyB0aGUgZXJyb3IsIHRoZW4KKyAgICAv
LyB3ZSdsbCByZXR1cm4gMCBpbnN0ZWFkLiBUaGUgcHJvbG9ndWUgd2lsbCBjaGVjayBmb3IgYSBu
b24temVybyB2YWx1ZQorICAgIC8vIHdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciB0byBzZXQgdGhl
IGNhbGxGcmFtZSBvciBub3QuCisKKyAgICAvLyBGb3IgSklUIGVuYWJsZWQgYnVpbGRzIHdoaWNo
IHVzZXMgdGhlIEMgc3RhY2ssIHRoZSBzdGFjayBpcyBub3QgZ3Jvd2FibGUuCisgICAgLy8gSGVu
Y2UsIGlmIHdlIGdldCBoZXJlLCB0aGVuIHdlIGtub3cgYSBzdGFjayBvdmVyZmxvdyBpcyBpbW1p
bmVudC4gU28sIGp1c3QKKyAgICAvLyB0aHJvdyB0aGUgU3RhY2tPdmVyZmxvd0Vycm9yIHVuY29u
ZGl0aW9uYWxseS4KKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIEFTU0VSVCghdm0uaW50
ZXJwcmV0ZXItPnN0YWNrKCkuY29udGFpbnNBZGRyZXNzKGV4ZWMtPnRvcE9mRnJhbWUoKSkpOwor
ICAgIGlmIChMSUtFTFkodm0uaW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3Io
ZXhlYy0+dG9wT2ZGcmFtZSgpKSkpCisgICAgICAgIExMSU5UX1JFVFVSTl9UV08ocGMsIDApOwor
I2VuZGlmCisKKyAgICBleGVjID0gZXhlYy0+Y2FsbGVyRnJhbWUoKTsKKyAgICB2bS50b3BDYWxs
RnJhbWUgPSBleGVjOworICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKHZtKTsKKyAg
ICBDb21tb25TbG93UGF0aHM6OmludGVycHJldGVyVGhyb3dJbkNhbGxlcihleGVjLCBjcmVhdGVT
dGFja092ZXJmbG93RXJyb3IoZXhlYykpOworICAgIHBjID0gcmV0dXJuVG9UaHJvd0ZvclRocm93
bkV4Y2VwdGlvbihleGVjKTsKKyAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCBleGVjKTsKIH0KIAog
TExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2NyZWF0ZV9hY3RpdmF0aW9uKQpAQCAtMTA0
NSw3ICsxMDgwLDcgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBzZXRVcENhbGwoRXhlY1N0
YXRlKiBleGVjQ2FsbGVlLCBJbnN0cnVjdGlvbiogcGMsIENvZGUKICAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgY29kZVB0cjsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IDA7CiAgICAgaWYg
KGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpCi0gICAgICAgIGNvZGVQdHIgPSBleGVjdXRh
YmxlLT5ob3N0Q29kZUVudHJ5Rm9yKGtpbmQpOworICAgICAgICBjb2RlUHRyID0gZXhlY3V0YWJs
ZS0+ZW50cnlwb2ludEZvcih2bSwga2luZCwgTXVzdENoZWNrQXJpdHksIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTm90UmVxdWlyZWQpOwogICAgIGVsc2UgewogICAgICAgICBGdW5jdGlvbkV4ZWN1dGFi
bGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9IHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+
KGV4ZWN1dGFibGUpOwogICAgICAgICBKU09iamVjdCogZXJyb3IgPSBmdW5jdGlvbkV4ZWN1dGFi
bGUtPnByZXBhcmVGb3JFeGVjdXRpb24oZXhlY0NhbGxlZSwgY2FsbGVlLT5zY29wZSgpLCBraW5k
KTsKQEAgLTEwNTMsMTIgKzEwODgsMTYgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBzZXRV
cENhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBJbnN0cnVjdGlvbiogcGMsIENvZGUKICAgICAg
ICAgICAgIExMSU5UX0NBTExfVEhST1coZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKSwgZXJyb3Ip
OwogICAgICAgICBjb2RlQmxvY2sgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvZGVCbG9ja0Zvcihr
aW5kKTsKICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayk7CisgICAgICAgIEFyaXR5Q2hlY2tNb2Rl
IGFyaXR5OwogICAgICAgICBpZiAoZXhlY0NhbGxlZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMoKSA8IHN0YXRpY19jYXN0PHNpemVfdD4oY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKQot
ICAgICAgICAgICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+anNDb2RlV2l0aEFyaXR5
Q2hlY2tFbnRyeUZvcihraW5kKTsKKyAgICAgICAgICAgIGFyaXR5ID0gTXVzdENoZWNrQXJpdHk7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUt
PmpzQ29kZUVudHJ5Rm9yKGtpbmQpOworICAgICAgICAgICAgYXJpdHkgPSBBcml0eUNoZWNrTm90
UmVxdWlyZWQ7CisgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmVudHJ5cG9p
bnRGb3Iodm0sIGtpbmQsIGFyaXR5LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsK
ICAgICB9CiAgICAgCisgICAgQVNTRVJUKCEhY29kZVB0cik7CisgICAgCiAgICAgaWYgKCFMTElO
VF9BTFdBWVNfQUNDRVNTX1NMT1cgJiYgY2FsbExpbmtJbmZvKSB7CiAgICAgICAgIEV4ZWNTdGF0
ZSogZXhlY0NhbGxlciA9IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCk7CiAgICAgICAgIApAQCAt
MTExMCwxOSArMTE0OSwxOSBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY29uc3Ry
dWN0KQogICAgIHJldHVybiBnZW5lcmljQ2FsbChleGVjLCBwYywgQ29kZUZvckNvbnN0cnVjdCk7
CiB9CiAKLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zaXplX2FuZF9hbGxvY19mcmFt
ZV9mb3JfdmFyYXJncykKK0xMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zaXplX2ZyYW1l
X2Zvcl92YXJhcmdzKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgLy8gVGhpcyBuZWVkcyB0
bzoKICAgICAvLyAtIFNldCB1cCBhIGNhbGwgZnJhbWUgd2hpbGUgcmVzcGVjdGluZyB0aGUgdmFy
aWFibGUgYXJndW1lbnRzLgogICAgIAotICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSA9IHNpemVB
bmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksCisg
ICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlID0gc2l6ZUZyYW1lRm9yVmFyYXJncyhleGVjLCAmdm0u
aW50ZXJwcmV0ZXItPnN0YWNrKCksCiAgICAgICAgIExMSU5UX09QX0MoNCkuanNWYWx1ZSgpLCBw
Y1s1XS51Lm9wZXJhbmQpOwogICAgIExMSU5UX0NBTExfQ0hFQ0tfRVhDRVBUSU9OKGV4ZWMpOwog
ICAgIAogICAgIHZtLm5ld0NhbGxGcmFtZVJldHVyblZhbHVlID0gZXhlY0NhbGxlZTsKIAotICAg
IExMSU5UX0VORCgpOworICAgIExMSU5UX1JFVFVSTl9DQUxMRUVfRlJBTUUoZXhlY0NhbGxlZSk7
CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX3ZhcmFyZ3MpCkBAIC0x
MzEyLDEzICsxMzUxLDYgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVf
ZGlkX2NhbGwpCiAgICAgTExJTlRfRU5EKCk7CiB9CiAKLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHRo
cm93X2Zyb21fbmF0aXZlX2NhbGwpCi17Ci0gICAgTExJTlRfQkVHSU4oKTsKLSAgICBBU1NFUlQo
dm0uZXhjZXB0aW9uKCkpOwotICAgIExMSU5UX0VORCgpOwotfQotCiBMTElOVF9TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfaGFuZGxlX2V4Y2VwdGlvbikKIHsKICAgICBMTElOVF9CRUdJTl9OT19T
RVRfUEMoKTsKQEAgLTEzODgsNiArMTQyMCwyMyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93
X3BhdGhfcHV0X3RvX3Njb3BlKQogICAgIExMSU5UX0VORCgpOwogfQogCitTbG93UGF0aFJldHVy
blR5cGUgbGxpbnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IoVk0qIHZtLCBQcm90b0NhbGxG
cmFtZSogcHJvdG9GcmFtZSkKK3sKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSB2bS0+dG9wQ2FsbEZy
YW1lOworICAgIGlmICghZXhlYykKKyAgICAgICAgZXhlYyA9IHByb3RvRnJhbWUtPnNjb3BlKCkt
Pmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisgICAgdGhyb3dTdGFja092ZXJmbG93RXJy
b3IoZXhlYyk7CisgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKK30KKworI2lmIEVOQUJM
RShMTElOVF9DX0xPT1ApCitTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfc3RhY2tfY2hlY2tfYXRf
dm1fZW50cnkoVk0qIHZtLCBSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKK3sKKyAgICBib29sIHN1
Y2Nlc3MgPSB2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IobmV3VG9w
T2ZTdGFjayk7CisgICAgcmV0dXJuIGVuY29kZVJlc3VsdChyZWludGVycHJldF9jYXN0PHZvaWQq
PihzdWNjZXNzKSwgMCk7Cit9CisjZW5kaWYKKwogZXh0ZXJuICJDIiB2b2lkIGxsaW50X3dyaXRl
X2JhcnJpZXJfc2xvdyhFeGVjU3RhdGUqLCBKU0NlbGwqIGNlbGwpCiB7CiAgICAgSGVhcDo6d3Jp
dGVCYXJyaWVyKGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaAppbmRleCA4ZDYwYWZhMjRhZGZhMzAyYjE1MjhhMGU0M2VjMjMyNzcwZThmZTdlLi45
OGE4NzAyYjgyYjMzNDZiOGZlM2M3YjVlNjI0ZWM1NDI2ZDIwODBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRlOwogc3RydWN0IEluc3RydWN0aW9uOworc3RydWN0
IFByb3RvQ2FsbEZyYW1lOwogCiBuYW1lc3BhY2UgTExJbnQgewogCkBAIC0xMDEsNyArMTAyLDcg
QEAgTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfZnVuYyk7CiBMTElO
VF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX25ld19mdW5jX2V4cCk7CiBMTElOVF9T
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJ
RERFTl9ERUNMKHNsb3dfcGF0aF9jb25zdHJ1Y3QpOwotTExJTlRfU0xPV19QQVRIX0hJRERFTl9E
RUNMKHNsb3dfcGF0aF9zaXplX2FuZF9hbGxvY19mcmFtZV9mb3JfdmFyYXJncyk7CitMTElOVF9T
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3NpemVfZnJhbWVfZm9yX3ZhcmFyZ3MpOwog
TExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jYWxsX3ZhcmFyZ3MpOwogTExJ
TlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jYWxsX2V2YWwpOwogTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90ZWFyX29mZl9hY3RpdmF0aW9uKTsKQEAgLTEx
OSwxMSArMTIwLDE0IEBAIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaGFu
ZGxlX3dhdGNoZG9nX3RpbWVyKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfZGVidWcpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wcm9maWxl
X3dpbGxfY2FsbCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Byb2Zp
bGVfZGlkX2NhbGwpOwotTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHRocm93X2Zyb21fbmF0
aXZlX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9oYW5kbGVf
ZXhjZXB0aW9uKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcmVzb2x2
ZV9zY29wZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9mcm9t
X3Njb3BlKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X3RvX3Nj
b3BlKTsKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3Rocm93X3N0YWNrX292
ZXJmbG93X2Vycm9yKFZNKiwgUHJvdG9DYWxsRnJhbWUqKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19M
T09QKQorZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfc3RhY2tfY2hlY2tfYXRf
dm1fZW50cnkoVk0qLCBSZWdpc3RlciopOworI2VuZGlmCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpMTEludAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRU
aHVua3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcApp
bmRleCA5NDI5ZTZjYjUyZGJlMDljMTczYTUxZjYyNjllMTI5ZjlhZDA4Njc2Li4zZWMxNGQyNDEw
ZDNlOGRjNjQ4MDg1Nzk5MzMyZTU5M2U1YzNmMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFRodW5rcy5jcHAKQEAgLTk0LDU4ICs5NCwxNiBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgcHJvZ3JhbUVudHJ5VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogCiAvLyBOb24tSklU
IChpLmUuIEMgTG9vcCBMTElOVCkgY2FzZToKIAotdHlwZWRlZiBKU1ZhbHVlICgqRXhlY3V0ZUNv
ZGUpIChDYWxsRnJhbWUqLCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcyk7Ci0KLXRlbXBsYXRlPEV4
ZWN1dGVDb2RlIGV4ZWN1dGU+Ci1FbmNvZGVkSlNWYWx1ZSBkb0NhbGxUb0phdmFTY3JpcHQodm9p
ZCogZXhlY3V0YWJsZUFkZHJlc3MsIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZN
KiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lKQogewotICAgIENvZGVCbG9jayog
Y29kZUJsb2NrID0gcHJvdG9DYWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgIEpTU2NvcGUqIHNj
b3BlID0gcHJvdG9DYWxsRnJhbWUtPnNjb3BlKCk7Ci0gICAgSlNPYmplY3QqIGNhbGxlZSA9IHBy
b3RvQ2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBpbnQgYXJnQ291bnRJbmNsdWRpbmdUaGlzID0g
cHJvdG9DYWxsRnJhbWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCk7Ci0gICAgaW50IGFy
Z0NvdW50ID0gcHJvdG9DYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsKLSAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IHByb3RvQ2FsbEZyYW1lLT50aGlzVmFsdWUoKTsKLSAgICBKU1N0YWNrJiBzdGFj
ayA9IHNjb3BlLT52bSgpLT5pbnRlcnByZXRlci0+c3RhY2soKTsKLQotICAgIENhbGxGcmFtZSog
bmV3Q2FsbEZyYW1lID0gc3RhY2sucHVzaEZyYW1lKGNvZGVCbG9jaywgc2NvcGUsIGFyZ0NvdW50
SW5jbHVkaW5nVGhpcywgY2FsbGVlKTsKLSAgICBpZiAoVU5MSUtFTFkoIW5ld0NhbGxGcmFtZSkp
IHsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHNjb3BlLT5nbG9iYWxP
YmplY3QoKTsKLSAgICAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxF
eGVjKCk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dTdGFja092ZXJmbG93
RXJyb3IoZXhlYykpOwotICAgIH0KLQotICAgIC8vIFNldCB0aGUgYXJndW1lbnRzIGZvciB0aGUg
Y2FsbGVlOgotICAgIG5ld0NhbGxGcmFtZS0+c2V0VGhpc1ZhbHVlKHRoaXNWYWx1ZSk7Ci0gICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBhcmdDb3VudDsgKytpKQotICAgICAgICBuZXdDYWxsRnJhbWUt
PnNldEFyZ3VtZW50KGksIHByb3RvQ2FsbEZyYW1lLT5hcmd1bWVudChpKSk7Ci0KLSAgICBKU1Zh
bHVlIHJlc3VsdCA9IGV4ZWN1dGUobmV3Q2FsbEZyYW1lLCBleGVjdXRhYmxlQWRkcmVzcyk7Ci0K
LSAgICBzdGFjay5wb3BGcmFtZShuZXdDYWxsRnJhbWUpOwotCisgICAgSlNWYWx1ZSByZXN1bHQg
PSBDTG9vcDo6ZXhlY3V0ZShsbGludF9jYWxsX3RvX2phdmFzY3JpcHQsIGV4ZWN1dGFibGVBZGRy
ZXNzLCB2bSwgcHJvdG9DYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGV4ZWN1dGVKUyhDYWxsRnJhbWUqIG5l
d0NhbGxGcmFtZSwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MpCi17Ci0gICAgT3Bjb2RlIGVudHJ5
T3Bjb2RlID0gKnJlaW50ZXJwcmV0X2Nhc3Q8T3Bjb2RlKj4oJmV4ZWN1dGFibGVBZGRyZXNzKTsK
LSAgICByZXR1cm4gQ0xvb3A6OmV4ZWN1dGUobmV3Q2FsbEZyYW1lLCBlbnRyeU9wY29kZSk7Ci19
Ci0KLUVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogZXhlY3V0YWJsZUFkZHJl
c3MsIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUsIFJlZ2lzdGVy
KikKLXsKLSAgICByZXR1cm4gZG9DYWxsVG9KYXZhU2NyaXB0PGV4ZWN1dGVKUz4oZXhlY3V0YWJs
ZUFkZHJlc3MsIHByb3RvQ2FsbEZyYW1lKTsKLX0KLQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGV4
ZWN1dGVOYXRpdmUoQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUsIHZvaWQqIGV4ZWN1dGFibGVBZGRy
ZXNzKQotewotICAgIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxO
YXRpdmVGdW5jdGlvbj4oZXhlY3V0YWJsZUFkZHJlc3MpOwotICAgIHJldHVybiBKU1ZhbHVlOjpk
ZWNvZGUoZnVuY3Rpb24obmV3Q2FsbEZyYW1lKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGNhbGxU
b05hdGl2ZUZ1bmN0aW9uKHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBFeGVjU3RhdGUqKiwgUHJv
dG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lLCBSZWdpc3RlciopCitFbmNvZGVkSlNWYWx1ZSBj
YWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgVk0qIHZtLCBQcm90
b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUpCiB7Ci0gICAgcmV0dXJuIGRvQ2FsbFRvSmF2YVNj
cmlwdDxleGVjdXRlTmF0aXZlPihleGVjdXRhYmxlQWRkcmVzcywgcHJvdG9DYWxsRnJhbWUpOwor
ICAgIEpTVmFsdWUgcmVzdWx0ID0gQ0xvb3A6OmV4ZWN1dGUobGxpbnRfY2FsbF90b19uYXRpdmVf
ZnVuY3Rpb24sIGV4ZWN1dGFibGVBZGRyZXNzLCB2bSwgcHJvdG9DYWxsRnJhbWUpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShKSVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5oCmluZGV4IDhhODk0YWE0
MWMyODkxZjhjYmIzNzIwOWJkYWEyOTdkNmE2ODlkYzcuLjM2MTg2OTUyY2FkODhkZDJjOGRlMDQ4
YjFmN2M4YWJhMWE0Y2JmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFRodW5rcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFRo
dW5rcy5oCkBAIC0zNCwxNiArMzQsMTQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEV4
ZWNTdGF0ZTsKLWNsYXNzIFJlZ2lzdGVyOwogY2xhc3MgVk07CiBzdHJ1Y3QgUHJvdG9DYWxsRnJh
bWU7CiAKIGV4dGVybiAiQyIgewotICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQo
dm9pZCosIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKik7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCosIEV4ZWNTdGF0ZSoqLCBQcm90
b0NhbGxGcmFtZSosIFJlZ2lzdGVyKik7CisgICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNj
cmlwdCh2b2lkKiwgVk0qLCBQcm90b0NhbGxGcmFtZSopOworICAgIEVuY29kZWRKU1ZhbHVlIGNh
bGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqLCBWTSosIFByb3RvQ2FsbEZyYW1lKik7CiAjaWYgRU5B
QkxFKEpJVCkKLSAgICB2b2lkIHJldHVybkZyb21KYXZhU2NyaXB0KCk7CisgICAgdm9pZCBoYW5k
bGVVbmNhdWdodEV4Y2VwdGlvbigpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCBiZTg0ZGVlMzY2
Y2JlZGMyYjNmMTk3N2QzOTIxNDJiMGQ4YTU3ZTNhLi4xOWU3ZjMzNjVhOGM0MDdlZDEwNDBhODc1
NTMxMGViNjhiOTUxYzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0zOCw5ICszOCwxMiBAQCBjb25zdCBDYWxsRnJh
bWVIZWFkZXJTbG90cyA9IDYKIGVsc2UKIGNvbnN0IFB0clNpemUgPSA0CiBjb25zdCBDYWxsRnJh
bWVIZWFkZXJTbG90cyA9IDUKK2NvbnN0IENhbGxGcmFtZUFsaWduU2xvdHMgPSAxCiBlbmQKIGNv
bnN0IFNsb3RTaXplID0gOAogCitjb25zdCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSA9IDIgKiBQdHJT
aXplCisKIGNvbnN0IENhbGxlckZyYW1lID0gMAogY29uc3QgUmV0dXJuUEMgPSBDYWxsZXJGcmFt
ZSArIFB0clNpemUKIGNvbnN0IENvZGVCbG9jayA9IFJldHVyblBDICsgUHRyU2l6ZQpAQCAtNzEs
NiArNzQsMTYgQEAgY29uc3QgRGVsZXRlZFZhbHVlVGFnID0gLTcKIGNvbnN0IExvd2VzdFRhZyA9
IERlbGV0ZWRWYWx1ZVRhZwogZW5kCiAKK2lmIFg4Nl82NCBvciBBUk02NCBvciBDX0xPT1AKK2Nv
bnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMAorZWxzaWYgQVJNIG9yIEFSTXY3
X1RSQURJVElPTkFMIG9yIEFSTXY3IG9yIFNINAorY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwgPSAyNAorZWxzaWYgWDg2Citjb25zdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCA9IDQwCitlbHNpZiBNSVBTCitjb25zdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCA9IDQwCitlbmQKKwogIyBXYXRjaHBvaW50IHN0YXRlcwogY29uc3QgQ2xlYXJXYXRjaHBvaW50
ID0gMAogY29uc3QgSXNXYXRjaGVkID0gMQpAQCAtODUsNyArOTgsNyBAQCBpZiBKU1ZBTFVFNjQK
ICAgICAjICAgdG8gQyBmdW5jdGlvbnMuCiAgICAgIyAtIEMgY2FsbHMgYXJlIHN0aWxsIGdpdmVu
IHRoZSBJbnN0cnVjdGlvbiogcmF0aGVyIHRoYW4gdGhlIFBDIGluZGV4LgogICAgICMgICBUaGlz
IHJlcXVpcmVzIGFuIGFkZCBiZWZvcmUgdGhlIGNhbGwsIGFuZCBhIHN1YiBhZnRlci4KLSAgICBj
b25zdCBQQyA9IHQ0CisgICAgY29uc3QgUEMgPSB0NQogICAgIGNvbnN0IFBCID0gdDYKICAgICBj
b25zdCB0YWdUeXBlTnVtYmVyID0gY3NyMQogICAgIGNvbnN0IHRhZ01hc2sgPSBjc3IyCkBAIC0x
MDMsNyArMTE2LDcgQEAgaWYgSlNWQUxVRTY0CiAgICAgZW5kCiAKIGVsc2UKLSAgICBjb25zdCBQ
QyA9IHQ0CisgICAgY29uc3QgUEMgPSB0NQogICAgIG1hY3JvIGxvYWRpc0Zyb21JbnN0cnVjdGlv
bihvZmZzZXQsIGRlc3QpCiAgICAgICAgIGxvYWRpcyBvZmZzZXQgKiA0W1BDXSwgZGVzdAogICAg
IGVuZApAQCAtMjEwLDYgKzIyMyw1MiBAQCBtYWNybyBhc3NlcnQoYXNzZXJ0aW9uKQogICAgIGVu
ZAogZW5kCiAKK21hY3JvIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXBSZWcsIGxvY2F0
aW9uKQorICAgIGlmIEFSTTY0IG9yIENfTE9PUAorICAgICAgICAjIEFSTTY0IHdpbGwgY2hlY2sg
Zm9yIHVzIQorICAgICAgICAjIENfTE9PUCBkb2VzIG5vdCBuZWVkIHRoZSBhbGlnbm1lbnQsIGFu
ZCBjYW4gdXNlIGEgbGl0dGxlIHBlcmYKKyAgICAgICAgIyBpbXByb3ZlbWVudCBmcm9tIGF2b2lk
aW5nIHVzZWxlc3Mgd29yay4KKyAgICBlbHNlCisgICAgICAgIGlmIEFSTSBvciBBUk12NyBvciBB
Uk12N19UUkFESVRJT05BTAorICAgICAgICAgICAgIyBBUk0gY2FuJ3QgZG8gbG9naWNhbCBvcHMg
d2l0aCB0aGUgc3AgYXMgYSBzb3VyY2UKKyAgICAgICAgICAgIG1vdmUgc3AsIHRlbXBSZWcKKyAg
ICAgICAgICAgIGFuZHAgMHhmLCB0ZW1wUmVnCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFu
ZHAgc3AsIDB4ZiwgdGVtcFJlZworICAgICAgICBlbmQKKyAgICAgICAgYnRweiB0ZW1wUmVnLCAu
c3RhY2tQb2ludGVyT2theQorICAgICAgICBtb3ZlIGxvY2F0aW9uLCB0ZW1wUmVnCisgICAgICAg
IGJyZWFrCisgICAgLnN0YWNrUG9pbnRlck9rYXk6CisgICAgZW5kCitlbmQKKworbWFjcm8gcHJl
c2VydmVDYWxsZXJQQ0FuZENGUigpCisgICAgaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBB
Uk12N19UUkFESVRJT05BTCBvciBNSVBTIG9yIFNINAorICAgICAgICBwdXNoIGxyCisgICAgICAg
IHB1c2ggY2ZyCisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwdXNoIGNmcgorICAg
IGVsc2lmIEFSTTY0CisgICAgICAgIHB1c2hMUkFuZEZQCisgICAgZWxzZQorICAgICAgICBlcnJv
cgorICAgIGVuZAorICAgIG1vdmUgc3AsIGNmcgorZW5kCisKK21hY3JvIHJlc3RvcmVDYWxsZXJQ
Q0FuZENGUigpCisgICAgbW92ZSBjZnIsIHNwCisgICAgaWYgQ19MT09QIG9yIEFSTSBvciBBUk12
NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTIG9yIFNINAorICAgICAgICBwb3AgY2ZyCisg
ICAgICAgIHBvcCBscgorICAgIGVsc2lmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcG9wIGNmcgor
ICAgIGVsc2lmIEFSTTY0CisgICAgICAgIHBvcExSQW5kRlAKKyAgICBlbmQKK2VuZAorCiBtYWNy
byBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKICAg
ICBpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIEFSTTY0
IG9yIE1JUFMgb3IgU0g0CiAgICAgICAgICMgSW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcHJl
c2VydmluZyB0aGUgYnl0ZWNvZGUgdlBDLgpAQCAtMjMyLDMxICsyOTEsMTIyIEBAIG1hY3JvIHJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHNvdXJjZVJlZ2lzdGVyKQogICAgIGVuZAog
ZW5kCiAKK21hY3JvIGZ1bmN0aW9uUHJvbG9ndWUoKQorICAgIGlmIFg4NiBvciBYODZfNjQKKyAg
ICAgICAgcHVzaCBjZnIKKyAgICBlbHNpZiBBUk02NAorICAgICAgICBwdXNoTFJBbmRGUAorICAg
IGVsc2lmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQ
UworICAgICAgICBwdXNoIGxyCisgICAgICAgIHB1c2ggY2ZyCisgICAgZW5kCisgICAgbW92ZSBz
cCwgY2ZyCitlbmQKKworbWFjcm8gZnVuY3Rpb25FcGlsb2d1ZSgpCisgICAgaWYgWDg2IG9yIFg4
Nl82NAorICAgICAgICBwb3AgY2ZyCisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAgcG9wTFJBbmRG
UAorICAgIGVsc2lmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwg
b3IgTUlQUworICAgICAgICBwb3AgY2ZyCisgICAgICAgIHBvcCBscgorICAgIGVuZAorZW5kCisK
K21hY3JvIGNhbGxUb0phdmFTY3JpcHRQcm9sb2d1ZSgpCisgICAgaWYgWDg2XzY0CisgICAgICAg
IHB1c2ggY2ZyCisgICAgICAgIHB1c2ggdDAKKyAgICBlbHNpZiBYODYKKyAgICAgICAgcHVzaCBj
ZnIKKyAgICBlbHNpZiBBUk02NAorICAgICAgICBwdXNoTFJBbmRGUAorICAgIGVsc2lmIENfTE9P
UCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUworICAgICAgICBw
dXNoIGxyCisgICAgICAgIHB1c2ggY2ZyCisgICAgZW5kCisgICAgcHVzaENhbGxlZVNhdmVzCisg
ICAgaWYgWDg2CisgICAgICAgIHN1YnAgMTIsIHNwCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9y
IEFSTXY3X1RSQURJVElPTkFMCisgICAgICAgIHN1YnAgNCwgc3AKKyAgICAgICAgbW92ZSBzcCwg
dDQKKyAgICAgICAgY2xyYnAgdDQsIDB4ZiwgdDUKKyAgICAgICAgbW92ZSB0NSwgc3AKKyAgICAg
ICAgc3RvcmVwIHQ0LCBbc3BdCisgICAgZW5kCitlbmQKKworbWFjcm8gY2FsbFRvSmF2YVNjcmlw
dEVwaWxvZ3VlKCkKKyAgICBhZGRwIENhbGxGcmFtZUhlYWRlclNsb3RzICogOCwgY2ZyLCBzcAor
ICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgorCisgICAgaWYgWDg2CisgICAgICAgIGFk
ZHAgMTIsIHNwCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMCisg
ICAgICAgIHBvcCB0NAorICAgICAgICBtb3ZlIHQ0LCBzcAorICAgICAgICBhZGRwIDQsIHNwCisg
ICAgZW5kCisKKyAgICBwb3BDYWxsZWVTYXZlcworICAgIGlmIFg4Nl82NAorICAgICAgICBwb3Ag
dDIKKyAgICAgICAgcG9wIGNmcgorICAgIGVsc2lmIFg4NgorICAgICAgICBwb3AgY2ZyCisgICAg
ZWxzaWYgQVJNNjQKKyAgICAgICAgcG9wTFJBbmRGUAorICAgIGVsc2lmIENfTE9PUCBvciBBUk0g
b3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUworICAgICAgICBwb3AgY2ZyCisg
ICAgICAgIHBvcCBscgorICAgIGVuZAorZW5kCisKK21hY3JvIG1vdmVTdGFja1BvaW50ZXJGb3JD
b2RlQmxvY2soY29kZUJsb2NrLCBzY3JhdGNoKQorICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1D
YWxsZWVSZWdpc3RlcnNbY29kZUJsb2NrXSwgc2NyYXRjaAorICAgIGxzaGlmdHAgMywgc2NyYXRj
aAorICAgIGFkZHAgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwsIHNjcmF0Y2gKKyAgICBz
dWJwIGNmciwgc2NyYXRjaCwgc3AKK2VuZAorCittYWNybyByZXN0b3JlU3RhY2tQb2ludGVyQWZ0
ZXJDYWxsKCkKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIKKyAgICBtb3ZlU3RhY2tQb2lu
dGVyRm9yQ29kZUJsb2NrKHQyLCB0NCkKK2VuZAorCiBtYWNybyB0cmFjZUV4ZWN1dGlvbigpCiAg
ICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKICAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF90cmFj
ZSkKICAgICBlbmQKIGVuZAogCi1tYWNybyBjYWxsVGFyZ2V0RnVuY3Rpb24oY2FsbExpbmtJbmZv
KQorbWFjcm8gY2FsbFRhcmdldEZ1bmN0aW9uKGNhbGxMaW5rSW5mbywgY2FsbGVlRnJhbWVQdHIp
CisgICAgbW92ZSBjYWxsZWVGcmFtZVB0ciwgc3AKICAgICBpZiBDX0xPT1AKICAgICAgICAgY2xv
b3BDYWxsSlNGdW5jdGlvbiBMTEludENhbGxMaW5rSW5mbzo6bWFjaGluZUNvZGVUYXJnZXRbY2Fs
bExpbmtJbmZvXQogICAgIGVsc2UKICAgICAgICAgY2FsbCBMTEludENhbGxMaW5rSW5mbzo6bWFj
aGluZUNvZGVUYXJnZXRbY2FsbExpbmtJbmZvXQotICAgICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgp
CiAgICAgZW5kCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCisgICAgZGlzcGF0
Y2hBZnRlckNhbGwoKQogZW5kCiAKIG1hY3JvIHNsb3dQYXRoRm9yQ2FsbChzbG93UGF0aCkKICAg
ICBjYWxsQ2FsbFNsb3dQYXRoKAogICAgICAgICBzbG93UGF0aCwKICAgICAgICAgbWFjcm8gKGNh
bGxlZSkKKyAgICAgICAgICAgIGJ0cHogdDEsIC5kb250VXBkYXRlU1AKKyAgICAgICAgICAgIGFk
ZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHQxLCBzcAorICAgICAgICAuZG9udFVwZGF0ZVNQOgog
ICAgICAgICAgICAgaWYgQ19MT09QCiAgICAgICAgICAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlv
biBjYWxsZWUKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBjYWxsIGNhbGxlZQot
ICAgICAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCisgICAgICAgICAgICBkaXNw
YXRjaEFmdGVyQ2FsbCgpCiAgICAgICAgIGVuZCkKIGVuZAogCkBAIC0zMjUsMjYgKzQ3NSw0OCBA
QCBlbmQKICMgRG8gdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0byBleGVjdXRlIGNvZGUuIFNl
dHMgdXAgdGhlIFBDLCBsZWF2ZSB0aGUgQ29kZUJsb2NrKgogIyBpbiB0MS4gTWF5IGFsc28gdHJp
Z2dlciBwcm9sb2d1ZSBlbnRyeSBPU1IuCiBtYWNybyBwcm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIs
IGNvZGVCbG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xvd1BhdGgpCi0gICAgcHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQyKQotICAgIAogICAgICMgU2V0IHVwIHRoZSBjYWxs
IGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgotICAgIHN0b3JlcCB0MiwgUmV0dXJu
UENbY2ZyXQorICAgIHByZXNlcnZlQ2FsbGVyUENBbmRDRlIoKQorCiAgICAgaWYgRVhFQ1VUSU9O
X1RSQUNJTkcKKyAgICAgICAgc3VicCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgc3AK
ICAgICAgICAgY2FsbFNsb3dQYXRoKHRyYWNlU2xvd1BhdGgpCisgICAgICAgIGFkZHAgbWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwsIHNwCiAgICAgZW5kCiAgICAgY29kZUJsb2NrR2V0dGVy
KHQxKQoraWYgQ19MT09QCitlbHNlCiAgICAgYmFkZGlzIDUsIENvZGVCbG9jazo6bV9sbGludEV4
ZWN1dGVDb3VudGVyICsgRXhlY3V0aW9uQ291bnRlcjo6bV9jb3VudGVyW3QxXSwgLmNvbnRpbnVl
Ci0gICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQotICAgIG1vdmUgdDEsIGNmcgorICAg
IGlmIEpTVkFMVUU2NAorICAgICAgICBjQ2FsbDIob3NyU2xvd1BhdGgsIGNmciwgUEMpCisgICAg
ZWxzZQorICAgICAgICAjIFdlIGFyZSBhZnRlciB0aGUgZnVuY3Rpb24gcHJvbG9ndWUsIGJ1dCBi
ZWZvcmUgd2UgaGF2ZSBzZXQgdXAgc3AgZnJvbSB0aGUgQ29kZUJsb2NrLgorICAgICAgICAjIFRl
bXBvcmFyaWx5IGFsaWduIHN0YWNrIHBvaW50ZXIgZm9yIHRoaXMgY2FsbC4KKyAgICAgICAgc3Vi
cCA4LCBzcAorICAgICAgICBjQ2FsbDIob3NyU2xvd1BhdGgsIGNmciwgUEMpCisgICAgICAgIGFk
ZHAgOCwgc3AKKyAgICBlbmQKICAgICBidHB6IHQwLCAucmVjb3ZlcgotICAgIGxvYWRwIFJldHVy
blBDW2Nmcl0sIHQyCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCisg
ICAgbW92ZSBjZnIsIHNwICMgcmVzdG9yZSB0aGUgcHJldmlvdXMgc3AKKyAgICAjIHBvcCB0aGUg
Y2FsbGVyRnJhbWUgc2luY2Ugd2Ugd2lsbCBqdW1wIHRvIGEgZnVuY3Rpb24gdGhhdCB3YW50cyB0
byBzYXZlIGl0CisgICAgaWYgQVJNNjQKKyAgICAgICAgcG9wTFJBbmRGUAorICAgIGVsc2lmIEFS
TSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTIG9yIFNINAorICAgICAgICBw
b3AgY2ZyCisgICAgICAgIHBvcCBscgorICAgIGVsc2UKKyAgICAgICAgcG9wIGNmcgorICAgIGVu
ZAogICAgIGptcCB0MAogLnJlY292ZXI6CiAgICAgY29kZUJsb2NrR2V0dGVyKHQxKQogLmNvbnRp
bnVlOgorZW5kCisKICAgICBjb2RlQmxvY2tTZXR0ZXIodDEpCiAgICAgCisgICAgbW92ZVN0YWNr
UG9pbnRlckZvckNvZGVCbG9jayh0MSwgdDIpCisKICAgICAjIFNldCB1cCB0aGUgUEMuCiAgICAg
aWYgSlNWQUxVRTY0CiAgICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFd
LCBQQgpAQCAtMzg5LDE0ICs1NjEsMTYgQEAgbWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlvbihw
cm9maWxlQXJnU2tpcCkKICAgICAgICAgCiAgICAgIyBDaGVjayBzdGFjayBoZWlnaHQuCiAgICAg
bG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVyc1t0MV0sIHQwCi0gICAgYWRkaSAx
LCB0MCAjIEFjY291bnQgdGhhdCBsb2NhbDAgZ29lcyBhdCBzbG90IC0xCiAgICAgbG9hZHAgQ29k
ZUJsb2NrOjptX3ZtW3QxXSwgdDIKICAgICBsc2hpZnRwIDMsIHQwCisgICAgYWRkaSBtYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgdDAKICAgICBzdWJwIGNmciwgdDAsIHQwCiAgICAgYnBi
ZXEgVk06Om1fanNTdGFja0xpbWl0W3QyXSwgdDAsIC5zdGFja0hlaWdodE9LCiAKICAgICAjIFN0
YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBuZWVkIHRvIGNhbGwgYSBzbG93X3BhdGguCiAgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zdGFja19jaGVjaykKKyAgICBicGVxIHQxLCAwLCAuc3RhY2tI
ZWlnaHRPSworICAgIG1vdmUgdDEsIGNmcgogLnN0YWNrSGVpZ2h0T0s6CiBlbmQKIApAQCAtNDIz
LDI1ICs1OTcsNjkgQEAgbWFjcm8gYWxsb2NhdGVKU09iamVjdChhbGxvY2F0b3IsIHN0cnVjdHVy
ZSwgcmVzdWx0LCBzY3JhdGNoMSwgc2xvd0Nhc2UpCiBlbmQKIAogbWFjcm8gZG9SZXR1cm4oKQot
ICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCi0gICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwg
Y2ZyCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCisgICAgcmVzdG9y
ZUNhbGxlclBDQW5kQ0ZSKCkKICAgICByZXQKIGVuZAogCi1pZiBDX0xPT1AKLWVsc2UKICMgc3R1
YiB0byBjYWxsIGludG8gSmF2YVNjcmlwdCBvciBOYXRpdmUgZnVuY3Rpb25zCi0jIEVuY29kZWRK
U1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm0sIFByb3Rv
Q2FsbEZyYW1lKiBwcm90b0ZyYW1lLCBSZWdpc3RlciogdG9wT2ZTdGFjaykKLSMgRW5jb2RlZEpT
VmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm0sIFBy
b3RvQ2FsbEZyYW1lKiBwcm90b0ZyYW1lLCBSZWdpc3RlciogdG9wT2ZTdGFjaykKKyMgRW5jb2Rl
ZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2bVRvcENh
bGxGcmFtZSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvRnJhbWUpCisjIEVuY29kZWRKU1ZhbHVlIGNh
bGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtVG9wQ2FsbEZyYW1l
LCBQcm90b0NhbGxGcmFtZSogcHJvdG9GcmFtZSkKICMgTm90ZSwgaWYgdGhlc2Ugc3R1YnMgb3Ig
b25lIG9mIHRoZWlyIHJlbGF0ZWQgbWFjcm9zIGFyZSBjaGFuZ2VkLCBtYWtlIHRoZQogIyBlcXVp
dmFsZW50IGNoYW5nZXMgaW4gaml0L0pJVFN0dWJzWDg2LmggYW5kL29yIGppdC9KSVRTdHVic01T
VkM2NC5hc20KKworaWYgQ19MT09QCitfbGxpbnRfY2FsbF90b19qYXZhc2NyaXB0OgorZWxzZQog
X2NhbGxUb0phdmFTY3JpcHQ6Ci0gICAgZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VKYXZhU2NyaXB0
Q2FsbCwgZG9SZXR1cm5Gcm9tSmF2YVNjcmlwdCkKK2VuZAorICAgIGRvQ2FsbFRvSmF2YVNjcmlw
dChtYWtlSmF2YVNjcmlwdENhbGwpCiAKKworaWYgQ19MT09QCitfbGxpbnRfY2FsbF90b19uYXRp
dmVfZnVuY3Rpb246CitlbHNlCiBfY2FsbFRvTmF0aXZlRnVuY3Rpb246Ci0gICAgZG9DYWxsVG9K
YXZhU2NyaXB0KG1ha2VIb3N0RnVuY3Rpb25DYWxsLCBkb1JldHVybkZyb21Ib3N0RnVuY3Rpb24p
CiBlbmQKKyAgICBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUhvc3RGdW5jdGlvbkNhbGwpCisKKwor
aWYgQ19MT09QCitlbHNlCisjIHZvaWQgc2FuaXRpemVTdGFja0ZvclZNSW1wbChWTSogdm0pCitf
c2FuaXRpemVTdGFja0ZvclZNSW1wbDoKKyAgICBpZiBYODZfNjQKKyAgICAgICAgY29uc3Qgdm0g
PSB0NAorICAgICAgICBjb25zdCBhZGRyZXNzID0gdDEKKyAgICAgICAgY29uc3QgemVyb1ZhbHVl
ID0gdDAKKyAgICBlbHNpZiBYODYKKyAgICAgICAgY29uc3Qgdm0gPSB0MgorICAgICAgICBjb25z
dCBhZGRyZXNzID0gdDEKKyAgICAgICAgY29uc3QgemVyb1ZhbHVlID0gdDAKKyAgICBlbHNlCisg
ICAgICAgIGNvbnN0IHZtID0gYTAKKyAgICAgICAgY29uc3QgYWRkcmVzcyA9IHQxCisgICAgICAg
IGNvbnN0IHplcm9WYWx1ZSA9IHQyCisgICAgZW5kCisKKyAgICBpZiBYODYKKyAgICAgICAgbG9h
ZHAgNFtzcF0sIHZtCisgICAgZW5kCisKKyAgICBsb2FkcCBWTTo6bV9sYXN0U3RhY2tUb3Bbdm1d
LCBhZGRyZXNzCisgICAgYnBiZXEgc3AsIGFkZHJlc3MsIC56ZXJvRmlsbERvbmUKKworICAgIG1v
dmUgMCwgemVyb1ZhbHVlCisuemVyb0ZpbGxMb29wOgorICAgIHN0b3JlcCB6ZXJvVmFsdWUsIFth
ZGRyZXNzXQorICAgIGFkZHAgUHRyU2l6ZSwgYWRkcmVzcworICAgIGJwYSBzcCwgYWRkcmVzcywg
Lnplcm9GaWxsTG9vcAorCisuemVyb0ZpbGxEb25lOgorICAgIG1vdmUgc3AsIGFkZHJlc3MKKyAg
ICBzdG9yZXAgYWRkcmVzcywgVk06Om1fbGFzdFN0YWNrVG9wW3ZtXQorICAgIHJldAorZW5kCisK
IAogIyBJbmRpY2F0ZSB0aGUgYmVnaW5uaW5nIG9mIExMSW50LgogX2xsaW50X2JlZ2luOgpAQCAt
NzMxLDggKzk0OSwxNSBAQCBfbGxpbnRfb3BfY29uc3RydWN0OgogCiBfbGxpbnRfb3BfY2FsbF92
YXJhcmdzOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9zaXplX2FuZF9hbGxvY19mcmFtZV9mb3JfdmFyYXJncykKKyAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJhcmdzKQogICAgIGJyYW5jaElm
RXhjZXB0aW9uKF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lKQorICAgICMg
Y2FsbGVlRnJhbWUgaW4gdDEKKyAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgbW92ZSB0MSwgc3AK
KyAgICBlbHNlCisgICAgICAgICMgVGhlIGNhbGxlZUZyYW1lIGlzIG5vdCBzdGFjayBhbGlnbmVk
LCBtb3ZlIGRvd24gYnkgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgdG8gYWxpZ24KKyAgICAgICAgc3Vi
cCB0MSwgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHNwCisgICAgZW5kCiAgICAgc2xvd1BhdGhGb3JD
YWxsKF9sbGludF9zbG93X3BhdGhfY2FsbF92YXJhcmdzKQogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAppbmRleCA0ODE0OGM2
ZjQ1NGY5Mjk0YzIwMzhjMjNmN2RjYjJiYzliZDRmNGMyLi45YmM1NWRlMjQ0NmMyZGI3ODljMDY3
YTUxNzhjMDRjMWIxMWFkOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05MCw2ICs5MCwxMiBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOjpMTEludDsKICNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4KICNkZWZpbmUgT0ZGTElO
RV9BU01fRU5ECiAKKyNpZiBFTkFCTEUoT1BDT0RFX1RSQUNJTkcpCisjZGVmaW5lIFRSQUNFX09Q
Q09ERShvcGNvZGUpIGRhdGFMb2dGKCIgICBvcCAlc1xuIiwgI29wY29kZSkKKyNlbHNlCisjZGVm
aW5lIFRSQUNFX09QQ09ERShvcGNvZGUpCisjZW5kaWYKKwogLy8gVG8ga2VlcCBjb21waWxlcnMg
aGFwcHkgaW4gY2FzZSBvZiB1bnVzZWQgbGFiZWxzLCBmb3JjZSB1c2FnZSBvZiB0aGUgbGFiZWw6
CiAjZGVmaW5lIFVTRV9MQUJFTChsYWJlbCkgXAogICAgIGRvIHsgXApAQCAtOTcsNyArMTAzLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6TExJbnQ7CiAgICAgICAgICAgICBnb3RvIGxhYmVsOyBc
CiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKLSNkZWZpbmUgT0ZGTElORV9BU01fT1BDT0RFX0xBQkVM
KG9wY29kZSkgREVGSU5FX09QQ09ERShvcGNvZGUpIFVTRV9MQUJFTChvcGNvZGUpOworI2RlZmlu
ZSBPRkZMSU5FX0FTTV9PUENPREVfTEFCRUwob3Bjb2RlKSBERUZJTkVfT1BDT0RFKG9wY29kZSkg
VVNFX0xBQkVMKG9wY29kZSk7IFRSQUNFX09QQ09ERShvcGNvZGUpOwogCiAjaWYgRU5BQkxFKENP
TVBVVEVEX0dPVE9fT1BDT0RFUykKICNkZWZpbmUgT0ZGTElORV9BU01fR0xVRV9MQUJFTChsYWJl
bCkgIGxhYmVsOiBVU0VfTEFCRUwobGFiZWwpOwpAQCAtMjEyLDEwICsyMTgsMTQgQEAgc3RydWN0
IENMb29wUmVnaXN0ZXIgewogI2VuZGlmIC8vICFDUFUoQklHX0VORElBTikKICNlbmRpZiAvLyAh
VVNFKEpTVkFMVUU2NCkKIAorICAgICAgICBpbnRwdHJfdCogaXA7CiAgICAgICAgIGludDhfdCog
aThwOwogICAgICAgICB2b2lkKiB2cDsKKyAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CiAg
ICAgICAgIEV4ZWNTdGF0ZSogZXhlY1N0YXRlOwogICAgICAgICB2b2lkKiBpbnN0cnVjdGlvbjsK
KyAgICAgICAgVk0qIHZtOworICAgICAgICBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWU7
CiAgICAgICAgIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmM7CiAjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgaW50NjRfdCBpNjQ7CkBAIC0yMjYsNiArMjM2LDEyIEBAIHN0cnVjdCBDTG9vcFJl
Z2lzdGVyIHsKICAgICAgICAgT3Bjb2RlIG9wY29kZTsKICAgICB9OwogCisgICAgb3BlcmF0b3Ig
RXhlY1N0YXRlKigpIHsgcmV0dXJuIGV4ZWNTdGF0ZTsgfQorICAgIG9wZXJhdG9yIEluc3RydWN0
aW9uKigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHJ1Y3Rpb24qPihpbnN0cnVjdGlv
bik7IH0KKyAgICBvcGVyYXRvciBWTSooKSB7IHJldHVybiB2bTsgfQorICAgIG9wZXJhdG9yIFBy
b3RvQ2FsbEZyYW1lKigpIHsgcmV0dXJuIHByb3RvQ2FsbEZyYW1lOyB9CisgICAgb3BlcmF0b3Ig
UmVnaXN0ZXIqKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxSZWdpc3Rlcio+KHZwKTsgfQor
CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBpbmxpbmUgdm9pZCBjbGVhckhpZ2hXb3JkKCkgeyBp
MzJwYWRkaW5nID0gMDsgfQogI2Vsc2UKQEAgLTIzNyw3ICsyNTMsNyBAQCBzdHJ1Y3QgQ0xvb3BS
ZWdpc3RlciB7CiAvLyBUaGUgbGxpbnQgQysrIGludGVycHJldGVyIGxvb3A6CiAvLwogCi1KU1Zh
bHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBPcGNvZGUgZW50cnlPcGNv
ZGUsIGJvb2wgaXNJbml0aWFsaXphdGlvblBhc3MpCitKU1ZhbHVlIENMb29wOjpleGVjdXRlKE9w
Y29kZUlEIGVudHJ5T3Bjb2RlSUQsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0sIFBy
b3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSwgYm9vbCBpc0luaXRpYWxpemF0aW9uUGFzcykK
IHsKICAgICAjZGVmaW5lIENBU1QgcmVpbnRlcnByZXRfY2FzdAogICAgICNkZWZpbmUgU0lHTl9C
SVQzMih4KSAoKHgpICYgMHg4MDAwMDAwMCkKQEAgLTI3Miw4ICsyODgsNiBAQCBKU1ZhbHVlIENM
b29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBPcGNvZGUgZW50cnlPcGNvZGUsIGJv
b2wgaXNJbml0aWFsaQogICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAgIH0KIAotICAgIEFT
U0VSVChjYWxsRnJhbWUtPnZtKCkudG9wQ2FsbEZyYW1lID09IGNhbGxGcmFtZSk7Ci0KICAgICAv
LyBEZWZpbmUgdGhlIHBzZXVkbyByZWdpc3RlcnMgdXNlZCBieSB0aGUgTExJTlQgQyBMb29wIGJh
Y2tlbmQ6CiAgICAgQVNTRVJUKHNpemVvZihDTG9vcFJlZ2lzdGVyKSA9PSBzaXplb2YoaW50cHRy
X3QpKTsKIApAQCAtMzA4LDUwICszMjIsNDggQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2RlLCBib29sIGlzSW5pdGlhbGkKICAg
ICAvLyAyLiAzMiBiaXQgcmVzdWx0IHZhbHVlcyB3aWxsIGJlIGluIHRoZSBsb3cgMzItYml0IG9m
IHQwLgogICAgIC8vIDMuIDY0IGJpdCByZXN1bHQgdmFsdWVzIHdpbGwgYmUgaW4gdDAuCiAKLSAg
ICBDTG9vcFJlZ2lzdGVyIHQwLCB0MSwgdDIsIHQzOworICAgIENMb29wUmVnaXN0ZXIgdDAsIHQx
LCB0MiwgdDMsIHQ1LCBzcCwgY2ZyLCBsciwgcGM7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBD
TG9vcFJlZ2lzdGVyIHJCYXNlUEMsIHRhZ1R5cGVOdW1iZXIsIHRhZ01hc2s7CisgICAgQ0xvb3BS
ZWdpc3RlciBwY0Jhc2UsIHRhZ1R5cGVOdW1iZXIsIHRhZ01hc2s7CiAjZW5kaWYKLSAgICBDTG9v
cFJlZ2lzdGVyIHJSZXRWUEM7CiAgICAgQ0xvb3BEb3VibGVSZWdpc3RlciBkMCwgZDE7CiAKLSAg
ICAvLyBLZWVwIHRoZSBjb21waWxlciBoYXBweS4gV2UgZG9uJ3QgcmVhbGx5IG5lZWQgdGhpcywg
YnV0IHRoZSBjb21waWxlcgotICAgIC8vIHdpbGwgY29tcGxhaW4uIFRoaXMgbWFrZXMgdGhlIHdh
cm5pbmcgZ28gYXdheS4KLSAgICB0MC5pID0gMDsKLSAgICB0MS5pID0gMDsKLQotICAgIFZNKiB2
bSA9ICZjYWxsRnJhbWUtPnZtKCk7Ci0KLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCk7Ci0gICAgSW5zdHJ1Y3Rpb24qIHZQQzsKKyAgICBsci5vcGNvZGUg
PSBnZXRPcGNvZGUobGxpbnRfcmV0dXJuX3RvX2hvc3QpOworICAgIHNwLnZwID0gdm0tPmludGVy
cHJldGVyLT5zdGFjaygpLnRvcE9mU3RhY2soKSArIDE7CisgICAgY2ZyLmNhbGxGcmFtZSA9IHZt
LT50b3BDYWxsRnJhbWU7CisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQqIHN0YXJ0U1AgPSBzcC52
cDsKKyAgICBDYWxsRnJhbWUqIHN0YXJ0Q0ZSID0gY2ZyLmNhbGxGcmFtZTsKKyNlbmRpZgogCi0g
ICAgLy8gclBDIGlzIGFuIGFsaWFzIGZvciB2UEMuIFNldCB1cCB0aGUgYWxpYXM6Ci0gICAgQ0xv
b3BSZWdpc3RlciYgclBDID0gKkNBU1Q8Q0xvb3BSZWdpc3Rlcio+KCZ2UEMpOwotCi0jaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICB2UEMgPSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2lu
KCk7Ci0jZWxzZSAvLyBVU0UoSlNWQUxVRTY0KQotICAgIHZQQyA9IDA7Ci0gICAgckJhc2VQQy52
cCA9IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKKyAgICAvLyBJbml0aWFsaXpl
IHRoZSBpbmNvbWluZyBhcmdzIGZvciBkb0NhbGxUb0phdmFTY3JpcHQ6CisgICAgdDAudnAgPSBl
eGVjdXRhYmxlQWRkcmVzczsKKyAgICB0MS52bSA9IHZtOworICAgIHQyLnByb3RvQ2FsbEZyYW1l
ID0gcHJvdG9DYWxsRnJhbWU7CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgIC8vIEZvciB0aGUg
QVNNIGxsaW50LCBKSVRTdHVicyB0YWtlcyBjYXJlIG9mIHRoaXMgaW5pdGlhbGl6YXRpb24uIFdl
IGRvCiAgICAgLy8gaXQgZXhwbGljaXRseSBoZXJlIGZvciB0aGUgQyBsb29wOgogICAgIHRhZ1R5
cGVOdW1iZXIuaSA9IDB4RkZGRjAwMDAwMDAwMDAwMDsKICAgICB0YWdNYXNrLmkgPSAweEZGRkYw
MDAwMDAwMDAwMDI7CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIAotICAgIC8vIGNmciBpcyBh
biBhbGlhcyBmb3IgY2FsbEZyYW1lLiBTZXQgdXAgdGhpcyBhbGlhczoKLSAgICBDTG9vcFJlZ2lz
dGVyJiBjZnIgPSAqQ0FTVDxDTG9vcFJlZ2lzdGVyKj4oJmNhbGxGcmFtZSk7Ci0KLSAgICAvLyBT
aW11bGF0ZSBhIG5hdGl2ZSByZXR1cm4gUEMgd2hpY2ggc2hvdWxkIG5ldmVyIGJlIHVzZWQ6Ci0g
ICAgclJldFZQQy5pID0gMHhiYmFkYmVlZjsKLQogICAgIC8vIEludGVycHJldGVyIHZhcmlhYmxl
cyBmb3IgdmFsdWUgcGFzc2luZyBiZXR3ZWVuIG9wY29kZXMgYW5kL29yIGhlbHBlcnM6CiAgICAg
TmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuYyA9IDA7CiAgICAgSlNWYWx1ZSBmdW5jdGlvblJldHVy
blZhbHVlOwotICAgIE9wY29kZSBvcGNvZGU7CisgICAgT3Bjb2RlIG9wY29kZSA9IGdldE9wY29k
ZShlbnRyeU9wY29kZUlEKTsKIAotICAgIG9wY29kZSA9IGVudHJ5T3Bjb2RlOworICAgICNkZWZp
bmUgUFVTSChjbG9vcFJlZykgXAorICAgICAgICBkbyB7IFwKKyAgICAgICAgICAgIHNwLmlwLS07
IFwKKyAgICAgICAgICAgICpzcC5pcCA9IGNsb29wUmVnLmk7IFwKKyAgICAgICAgfSB3aGlsZSAo
ZmFsc2UpCisgICAgCisgICAgI2RlZmluZSBQT1AoY2xvb3BSZWcpIFwKKyAgICAgICAgZG8geyBc
CisgICAgICAgICAgICBjbG9vcFJlZy5pID0gKnNwLmlwOyBcCisgICAgICAgICAgICBzcC5pcCsr
OyBcCisgICAgICAgIH0gd2hpbGUgKGZhbHNlKQogCiAgICAgI2lmIEVOQUJMRShPUENPREVfU1RB
VFMpCiAgICAgICAgICNkZWZpbmUgUkVDT1JEX09QQ09ERV9TVEFUUyhfX29wY29kZSkgXApAQCAt
MzYxLDkgKzM3Myw5IEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIE9wY29kZSBlbnRyeU9wY29kZSwgYm9vbCBpc0luaXRpYWxpCiAgICAgI2VuZGlmCiAKICAg
ICAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgI2RlZmluZSBGRVRDSF9PUENPREUoKSB2
UEMtPnUub3Bjb2RlCisgICAgICAgICNkZWZpbmUgRkVUQ0hfT1BDT0RFKCkgcGMub3Bjb2RlCiAg
ICAgI2Vsc2UgLy8gVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgI2RlZmluZSBGRVRDSF9PUENPREUo
KSAqYml0d2lzZV9jYXN0PE9wY29kZSo+KHJCYXNlUEMuaThwICsgclBDLmkgKiA4KQorICAgICAg
ICAjZGVmaW5lIEZFVENIX09QQ09ERSgpICpiaXR3aXNlX2Nhc3Q8T3Bjb2RlKj4ocGNCYXNlLmk4
cCArIHBjLmkgKiA4KQogICAgICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogCiAgICAgI2RlZmlu
ZSBORVhUX0lOU1RSVUNUSU9OKCkgXApAQCAtNDEyLDE0ICs0MjQsMjIgQEAgSlNWYWx1ZSBDTG9v
cDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2RlLCBib29s
IGlzSW5pdGlhbGkKIAogICAgICAgICAjaW5jbHVkZSAiTExJbnRBc3NlbWJseS5oIgogCisgICAg
ICAgIE9GRkxJTkVfQVNNX0dMVUVfTEFCRUwobGxpbnRfcmV0dXJuX3RvX2hvc3QpCisgICAgICAg
IHsKKyAgICAgICAgICAgIEFTU0VSVChzdGFydFNQID09IHNwLnZwKTsKKyAgICAgICAgICAgIEFT
U0VSVChzdGFydENGUiA9PSBjZnIuY2FsbEZyYW1lKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUodDEuaSwgdDAuaSk7IC8vIHJldHVybmluZyBKU1Zh
bHVlKHRhZywgcGF5bG9hZCk7CisjZWxzZQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRl
Y29kZSh0MC5lbmNvZGVkSlNWYWx1ZSk7CisjZW5kaWYKKyAgICAgICAgfQorCiAgICAgICAgIC8v
IEluIHRoZSBBU00gbGxpbnQsIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUoKSBpcyBhIHBpZWNlIG9m
IGdsdWUKLSAgICAgICAgLy8gZnVuY3Rpb24gcHJvdmlkZWQgYnkgdGhlIEpJVCAoc2VlIGRmZy9E
RkdPcGVyYXRpb25zLmNwcCkuCisgICAgICAgIC8vIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5IHRoZSBK
SVQgKHNlZSBqaXQvSklUT3BlcmF0aW9ucy5jcHApLgogICAgICAgICAvLyBXZSBzaW11bGF0ZSBp
dCBoZXJlIHdpdGggYSBwc2VkdW8tb3Bjb2RlIGhhbmRsZXIuCiAgICAgICAgIE9GRkxJTkVfQVNN
X0dMVUVfTEFCRUwoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkKICAgICAgICAgewotICAgICAgICAg
ICAgLy8gVGhlIEFTTSBwYXJ0IHBvcHMgdGhlIGZyYW1lOgotICAgICAgICAgICAgY2FsbEZyYW1l
ID0gY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgpOwotCiAgICAgICAgICAgICAvLyBUaGUgcGFydCBp
biBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSgpOgogICAgICAgICAgICAgSlNW
YWx1ZSByZXN1bHQgPSB2bS0+aG9zdENhbGxSZXR1cm5WYWx1ZTsKICNpZiBVU0UoSlNWQUxVRTMy
XzY0KQpAQCAtNDI4LDEyICs0NDgsOCBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBPcGNvZGUgZW50cnlPcGNvZGUsIGJvb2wgaXNJbml0aWFsaQogI2Vsc2UK
ICAgICAgICAgICAgIHQwLmVuY29kZWRKU1ZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7
CiAjZW5kaWYKLSAgICAgICAgICAgIGdvdG8gZG9SZXR1cm5IZWxwZXI7Ci0gICAgICAgIH0KLQot
ICAgICAgICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKHJldHVybkZyb21KYXZhU2NyaXB0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gdm0tPmV4Y2VwdGlvbigpOworICAgICAgICAgICAg
b3Bjb2RlID0gbHIub3Bjb2RlOworICAgICAgICAgICAgRElTUEFUQ0hfT1BDT0RFKCk7CiAgICAg
ICAgIH0KIAogI2lmICFFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQpAQCAtNDQzLDU1ICs0
NTksNiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBPcGNv
ZGUgZW50cnlPcGNvZGUsIGJvb2wgaXNJbml0aWFsaQogCiAgICAgfSAvLyBFTkQgYnl0ZWNvZGUg
aGFuZGxlciBjYXNlcy4KIAotICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgLy8gQnl0ZWNvZGUg
aGVscGVyczoKLQotICAgIGRvUmV0dXJuSGVscGVyOiB7Ci0gICAgICAgIEFTU0VSVCghIWNhbGxG
cmFtZSk7Ci0gICAgICAgIGlmIChjYWxsRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkpIHsKLSNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUodDEuaSwgdDAu
aSk7IC8vIHJldHVybmluZyBKU1ZhbHVlKHRhZywgcGF5bG9hZCk7Ci0jZWxzZQotICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh0MC5lbmNvZGVkSlNWYWx1ZSk7Ci0jZW5kaWYKLSAg
ICAgICAgfQotCi0gICAgICAgIC8vIFRoZSBub3JtYWwgQVNNIGxsaW50IGNhbGwgaW1wbGVtZW50
YXRpb24gcmV0dXJucyB0byB0aGUgY2FsbGVyIGFzCi0gICAgICAgIC8vIHJlY29yZGVkIGluIHJS
ZXRWUEMsIGFuZCB0aGUgY2FsbGVyIHdvdWxkIGZldGNoIHRoZSByZXR1cm4gYWRkcmVzcwotICAg
ICAgICAvLyBmcm9tIEFyZ3VtZW50Q291bnQudGFnKCkgKHNlZSB0aGUgZGlzcGF0Y2hBZnRlckNh
bGwoKSBtYWNybyB1c2VkIGluCi0gICAgICAgIC8vIHRoZSBjYWxsVGFyZ2V0RnVuY3Rpb24oKSBt
YWNybyBpbiB0aGUgbGxpbnQgYXNtIGZpbGVzKS4KLSAgICAgICAgLy8KLSAgICAgICAgLy8gRm9y
IHRoZSBDIGxvb3AsIHdlIGRvbid0IGhhdmUgdGhlIEpJVCBzdHViIHRvIGRvIHRoaXMgd29yayBm
b3IgdXMuIFNvLAotICAgICAgICAvLyB3ZSBqdW1wIHRvIGxsaW50X2dlbmVyaWNfcmV0dXJuX3Bv
aW50LgotCi0gICAgICAgIHZQQyA9IGNhbGxGcmFtZS0+Y3VycmVudFZQQygpOwotCi0jaWYgVVNF
KEpTVkFMVUU2NCkKLSAgICAgICAgLy8gQmFzZWQgb24gTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bSdzIGRpc3BhdGNoQWZ0ZXJDYWxsKCk6Ci0KLSAgICAgICAgLy8gV2hlbiByZXR1cm5pbmcgZnJv
bSBhIG5hdGl2ZSB0cmFtcG9saW5lIGNhbGwsIHVubGlrZSB0aGUgYXNzZW1ibHkKLSAgICAgICAg
Ly8gTExJbnQsIHdlIGNhbid0IHNpbXBseSByZXR1cm4gdG8gdGhlIGNhbGxlci4gSW4gb3VyIGNh
c2UsIHdlIGdyYWIKLSAgICAgICAgLy8gdGhlIGNhbGxlcidzIFZQQyBhbmQgcmVzdW1lIGV4ZWN1
dGlvbiB0aGVyZS4gSG93ZXZlciwgdGhlIGNhbGxlcidzCi0gICAgICAgIC8vIFZQQyByZXR1cm5l
ZCBieSBjYWxsRnJhbWUtPmN1cnJlbnRWUEMoKSBpcyBpbiB0aGUgZm9ybSBvZiB0aGUgcmVhbAot
ICAgICAgICAvLyBhZGRyZXNzIG9mIHRoZSB0YXJnZXQgYnl0ZWNvZGUsIGJ1dCB0aGUgNjQtYml0
IGxsaW50IGV4cGVjdHMgdGhlCi0gICAgICAgIC8vIFZQQyB0byBiZSBhIGJ5dGVjb2RlIG9mZnNl
dC4gSGVuY2UsIHdlIG5lZWQgdG8gbWFwIGl0IGJhY2sgdG8gYQotICAgICAgICAvLyBieXRlY29k
ZSBvZmZzZXQgYmVmb3JlIHdlIGRpc3BhdGNoIHZpYSB0aGUgdXN1YWwgZGlzcGF0Y2ggbWVjaGFu
aXNtCi0gICAgICAgIC8vIGkuZS4gTkVYVF9JTlNUUlVDVElPTigpOgotCi0gICAgICAgIGNvZGVC
bG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7Ci0gICAgICAgIEFTU0VSVChjb2RlQmxvY2sp
OwotICAgICAgICByUEMudnAgPSBjYWxsRnJhbWUtPmN1cnJlbnRWUEMoKTsKLSAgICAgICAgclBD
LmkgPSByUEMuaThwIC0gcmVpbnRlcnByZXRfY2FzdDxpbnQ4X3QqPihjb2RlQmxvY2stPmluc3Ry
dWN0aW9ucygpLmJlZ2luKCkpOwotICAgICAgICByUEMuaSA+Pj0gMzsKLQotICAgICAgICByQmFz
ZVBDLnZwID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwotI2VuZGlmIC8vIFVT
RShKU1ZBTFVFNjQpCi0KLSAgICAgICAgZ290byBsbGludF9nZW5lcmljX3JldHVybl9wb2ludDsK
LQotICAgIH0gLy8gRU5EIGRvUmV0dXJuSGVscGVyLgotCi0KICNpZiBFTkFCTEUoQ09NUFVURURf
R09UT19PUENPREVTKQogICAgIC8vIEtlZXAgdGhlIGNvbXBpbGVyIGhhcHB5IHNvIHRoYXQgaXQg
ZG9lc24ndCBjb21wbGFpbiBhYm91dCB1bnVzZWQKICAgICAvLyBsYWJlbHMgZm9yIHRoZSBMTElu
dCB0cmFtcG9saW5lIGdsdWUuIFRoZSBsYWJlbHMgYXJlIGF1dG9tYXRpY2FsbHkKQEAgLTUyMywx
MiArNDkwLDEyIEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IE9wY29kZSBlbnRyeU9wY29kZSwgYm9vbCBpc0luaXRpYWxpCiAKIC8vIFRoZXNlIGFyZSBmb3Ig
YnVpbGRpbmcgYW4gaW50ZXJwcmV0ZXIgZnJvbSBnZW5lcmF0ZWQgYXNzZW1ibHkgY29kZToKICNp
ZiBDUFUoWDg2XzY0KSAmJiBDT01QSUxFUihDTEFORykKLSNkZWZpbmUgT0ZGTElORV9BU01fQkVH
SU4gICBhc20gKCBcCisjZGVmaW5lIE9GRkxJTkVfQVNNX0JFR0lOICAgYXNtICggICAgICAgICAg
ICAgICAgXAogICAgICIuY2ZpX3N0YXJ0cHJvY1xuIgogCi0jZGVmaW5lIE9GRkxJTkVfQVNNX0VO
RCAgICAgXAotICAgICIuY2ZpX2VuZHByb2NcbiIgXAotKTsKKyNkZWZpbmUgT0ZGTElORV9BU01f
RU5EICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgIi5jZmlfZW5kcHJvY1xuIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7
CiAjZWxzZQogI2RlZmluZSBPRkZMSU5FX0FTTV9CRUdJTiAgIGFzbSAoCiAjZGVmaW5lIE9GRkxJ
TkVfQVNNX0VORCAgICAgKTsKQEAgLTU1MSw5ICs1MTgsOSBAQCBKU1ZhbHVlIENMb29wOjpleGVj
dXRlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBPcGNvZGUgZW50cnlPcGNvZGUsIGJvb2wgaXNJbml0
aWFsaQogICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGxhYmVsKSAiXG4iICAgICAgICAgXAog
ICAgIEhJREVfU1lNQk9MKGxhYmVsKSAiXG4iICAgICAgICAgICAgICAgICAgICAgXAogICAgIFNZ
TUJPTF9TVFJJTkcobGFiZWwpICI6XG4iICAgICAgICAgICAgICAgICAgXAotICAgICIuY2ZpX2Rl
Zl9jZmEgcmJwLCAwXG4iICAgICAgICAgICAgICAgICAgICAgXAotICAgICIuY2ZpX29mZnNldCAx
NiwgOFxuIiAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICIuY2ZpX29mZnNldCA2LCAwXG4i
CisgICAgIi5jZmlfZGVmX2NmYV9vZmZzZXQgMTZcbiIgICAgICAgICAgICAgICAgICBcCisgICAg
Ii5jZmlfb2Zmc2V0ICVyYnAsIC0xNlxuIiAgICAgICAgICAgICAgICAgICBcCisgICAgIi5jZmlf
ZGVmX2NmYV9yZWdpc3RlciByYnBcbiIKICNlbHNlCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0dMT0JB
TF9MQUJFTChsYWJlbCkgICAgICAgICBcCiAgICAgIi50ZXh0XG4iICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4IGYxYTQ3MGVhZWFiOTAxYzNh
NzQxYzkwOWUzYTUzNjYwOWI0OGZhYjQuLmM4OGZmY2ViZDQ2YjgwNWEwOTEwYWQxNjMxMzEyOWIw
MWU1ZDFlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQg
KEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDIsOSArMTAyLDEx
IEBAIG1hY3JvIGNDYWxsMihmdW5jdGlvbiwgYXJnMSwgYXJnMikKICAgICAgICAgbW92ZSBhcmcy
LCBhMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYgWDg2Ci0gICAgICAgIHBva2Ug
YXJnMSwgMAotICAgICAgICBwb2tlIGFyZzIsIDEKKyAgICAgICAgc3VicCA4LCBzcAorICAgICAg
ICBwdXNoIGFyZzIKKyAgICAgICAgcHVzaCBhcmcxCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KKyAg
ICAgICAgYWRkcCAxNiwgc3AKICAgICBlbHNpZiBTSDQKICAgICAgICAgc2V0YXJncyBhcmcxLCBh
cmcyCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KQEAgLTEyNCwxMSArMTI2LDEyIEBAIG1hY3JvIGND
YWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkKICAgICAgICAgbW92ZSBhcmc0
LCBhMwogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYgWDg2Ci0gICAgICAgIHBva2Ug
YXJnMSwgMAotICAgICAgICBwb2tlIGFyZzIsIDEKLSAgICAgICAgcG9rZSBhcmczLCAyCi0gICAg
ICAgIHBva2UgYXJnNCwgMworICAgICAgICBwdXNoIGFyZzQKKyAgICAgICAgcHVzaCBhcmczCisg
ICAgICAgIHB1c2ggYXJnMgorICAgICAgICBwdXNoIGFyZzEKICAgICAgICAgY2FsbCBmdW5jdGlv
bgorICAgICAgICBhZGRwIDE2LCBzcAogICAgIGVsc2lmIFNINAogICAgICAgICBzZXRhcmdzIGFy
ZzEsIGFyZzIsIGFyZzMsIGFyZzQKICAgICAgICAgY2FsbCBmdW5jdGlvbgpAQCAtMTQyLDg1ICsx
NDUsNDIgQEAgZW5kCiBtYWNybyBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAgICAgY0NhbGwyKHNs
b3dQYXRoLCBjZnIsIFBDKQogICAgIG1vdmUgdDAsIFBDCi0gICAgbW92ZSB0MSwgY2ZyCi1lbmQK
LQotbWFjcm8gZnVuY3Rpb25Qcm9sb2d1ZShleHRyYVN0YWNrU3BhY2UpCi0gICAgaWYgWDg2Ci0g
ICAgICAgIHB1c2ggY2ZyCi0gICAgICAgIG1vdmUgc3AsIGNmcgotICAgIGVuZAotICAgIHB1c2hD
YWxsZWVTYXZlcwotICAgIGlmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBN
SVBTCi0gICAgICAgIHB1c2ggY2ZyCi0gICAgICAgIHB1c2ggbHIKLSAgICBlbmQKLSAgICBzdWJw
IGV4dHJhU3RhY2tTcGFjZSwgc3AKIGVuZAogCi1tYWNybyBmdW5jdGlvbkVwaWxvZ3VlKGV4dHJh
U3RhY2tTcGFjZSkKLSAgICBhZGRwIGV4dHJhU3RhY2tTcGFjZSwgc3AKLSAgICBpZiBBUk0gb3Ig
QVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUwotICAgICAgICBwb3AgbHIKLSAgICAg
ICAgcG9wIGNmcgotICAgIGVuZAotICAgIHBvcENhbGxlZVNhdmVzCittYWNybyBkb0NhbGxUb0ph
dmFTY3JpcHQobWFrZUNhbGwpCiAgICAgaWYgWDg2Ci0gICAgICAgIHBvcCBjZnIKLSAgICBlbmQK
LWVuZAorICAgICAgICBjb25zdCBlbnRyeSA9IHQ0CisgICAgICAgIGNvbnN0IHZtID0gdDMKKyAg
ICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSB0NQogCi1tYWNybyBkb0NhbGxUb0phdmFTY3Jp
cHQobWFrZUNhbGwsIGRvUmV0dXJuKQotICAgIGlmIFg4NgotICAgICAgICBjb25zdCBlbnRyeSA9
IHQ1Ci0gICAgICAgIGNvbnN0IHZtVG9wQ2FsbEZyYW1lID0gdDIKLSAgICAgICAgY29uc3QgcHJv
dG9DYWxsRnJhbWUgPSB0NAotCi0gICAgICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDI4CiAg
ICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDAKICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9
IHQxCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDAgIyBTYW1lIGFzIHByZXZpb3VzQ0ZSCiAgICAg
ICAgIGNvbnN0IHRlbXAyID0gdDEgIyBTYW1lIGFzIHByZXZpb3VzUEMKLSAgICAgICAgY29uc3Qg
dGVtcDMgPSB0MiAjIHNhbWUgYXMgdm1Ub3BDYWxsRnJhbWUKLSAgICAgICAgY29uc3QgdGVtcDQg
PSB0MwotICAgIGVsc2lmIEFSTSBvciBBUk12N19UUkFESVRJT05BTAotICAgICAgICBjb25zdCBl
bnRyeSA9IGEwCi0gICAgICAgIGNvbnN0IHZtVG9wQ2FsbEZyYW1lID0gYTEKLSAgICAgICAgY29u
c3QgcHJvdG9DYWxsRnJhbWUgPSBhMgotICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gYTMKLQot
ICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAxNgotICAgICAgICBjb25zdCBwcmV2aW91
c0NGUiA9IHQzCi0gICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSBscgotICAgICAgICBjb25zdCB0
ZW1wMSA9IHQzICMgU2FtZSBhcyBwcmV2aW91c0NGUgotICAgICAgICBjb25zdCB0ZW1wMiA9IGEz
ICMgU2FtZSBhcyB0b3BPZlN0YWNrCi0gICAgICAgIGNvbnN0IHRlbXAzID0gdDQKLSAgICAgICAg
Y29uc3QgdGVtcDQgPSB0NQotICAgIGVsc2lmIEFSTXY3CisgICAgICAgIGNvbnN0IHRlbXAzID0g
dDIKKyAgICAgICAgY29uc3QgdGVtcDQgPSB0MyAjIHNhbWUgYXMgdm0KKyAgICBlbHNpZiBBUk0g
b3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgQ19MT09QCiAgICAgICAgIGNvbnN0IGVu
dHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm1Ub3BDYWxsRnJhbWUgPSBhMQorICAgICAgICBjb25z
dCB2bSA9IGExCiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKLSAgICAgICAgY29u
c3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gMjgK
ICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MwogICAgICAgICBjb25zdCBwcmV2aW91c1BD
ID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MyAjIFNhbWUgYXMgcHJldmlvdXNDRlIKLSAg
ICAgICAgY29uc3QgdGVtcDIgPSBhMyAjIFNhbWUgYXMgdG9wT2ZTdGFjawotICAgICAgICBjb25z
dCB0ZW1wMyA9IHQ0Ci0gICAgICAgIGNvbnN0IHRlbXA0ID0gdDUKKyAgICAgICAgY29uc3QgdGVt
cDIgPSB0NAorICAgICAgICBjb25zdCB0ZW1wMyA9IHQ1CisgICAgICAgIGNvbnN0IHRlbXA0ID0g
dDQgIyBTYW1lIGFzIHRlbXAyCiAgICAgZWxzaWYgTUlQUwogICAgICAgICBjb25zdCBlbnRyeSA9
IGEwCiAgICAgICAgIGNvbnN0IHZtVG9wQ2FsbEZyYW1lID0gYTEKICAgICAgICAgY29uc3QgcHJv
dG9DYWxsRnJhbWUgPSBhMgogICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gYTMKIAotICAgICAg
ICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAzNgogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9
IHQyCiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSBscgogICAgICAgICBjb25zdCB0ZW1wMSA9
IHQzCi0gICAgICAgIGNvbnN0IHRlbXAyID0gdDQKLSAgICAgICAgY29uc3QgdGVtcDMgPSB0NQor
ICAgICAgICBjb25zdCB0ZW1wMiA9IHQ1CisgICAgICAgIGNvbnN0IHRlbXAzID0gdDQKICAgICAg
ICAgY29uc3QgdGVtcDQgPSB0NgogICAgIGVsc2lmIFNINAogICAgICAgICBjb25zdCBlbnRyeSA9
IGEwCkBAIC0yMjgsNyArMTg4LDYgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxs
LCBkb1JldHVybikKICAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSBhMgogICAgICAgICBj
b25zdCB0b3BPZlN0YWNrID0gYTMKIAotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAy
MAogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQzCiAgICAgICAgIGNvbnN0IHByZXZpb3Vz
UEMgPSBscgogICAgICAgICBjb25zdCB0ZW1wMSA9IHQzICMgU2FtZSBhcyBwcmV2aW91c0NGUgpA
QCAtMjM3LDQ5ICsxOTYsNzggQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBk
b1JldHVybikKICAgICAgICAgY29uc3QgdGVtcDQgPSB0OQogICAgIGVuZAogCisgICAgY2FsbFRv
SmF2YVNjcmlwdFByb2xvZ3VlKCkKKwogICAgIGlmIFg4NgotICAgICAgICBsb2FkcCBbc3BdLCBw
cmV2aW91c1BDCi0gICAgICAgIG1vdmUgY2ZyLCBwcmV2aW91c0NGUgotICAgIGVuZAotICAgIGZ1
bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQotICAgIGlmIFg4NgotICAgICAgICBsb2Fk
cCBleHRyYVN0YWNrU3BhY2UrMjBbc3BdLCBlbnRyeQotICAgICAgICBsb2FkcCBleHRyYVN0YWNr
U3BhY2UrMjRbc3BdLCB2bVRvcENhbGxGcmFtZQotICAgICAgICBsb2FkcCBleHRyYVN0YWNrU3Bh
Y2UrMjhbc3BdLCBwcm90b0NhbGxGcmFtZQotICAgICAgICBsb2FkcCBleHRyYVN0YWNrU3BhY2Ur
MzJbc3BdLCBjZnIKKyAgICAgICAgbG9hZHAgMzZbc3BdLCB2bQorICAgICAgICBsb2FkcCAzMltz
cF0sIGVudHJ5CiAgICAgZWxzZQogICAgICAgICBtb3ZlIGNmciwgcHJldmlvdXNDRlIKLSAgICAg
ICAgbW92ZSB0b3BPZlN0YWNrLCBjZnIKICAgICBlbmQKIAotICAgIHN1YnAgKENhbGxGcmFtZUhl
YWRlclNsb3RzLTEpKjgsIGNmcgotICAgIHN0b3JlcCAwLCBBcmd1bWVudENvdW50KzRbY2ZyXQor
ICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAyLCAweGJhZDBkYzAxKQorCisgICAg
IyBUaGUgc3RhY2sgcmVzZXJ2ZWQgem9uZSBlbnN1cmVzIHRoYXQgd2UgaGF2ZSBhZGVxdWF0ZSBz
cGFjZSBmb3IgdGhlCisgICAgIyBWTUVudHJ5U2VudGluZWxGcmFtZS4gUHJvY2VlZCB3aXRoIGFs
bG9jYXRpbmcgYW5kIGluaXRpYWxpemluZyB0aGUKKyAgICAjIHNlbnRpbmVsIGZyYW1lLgorICAg
IG1vdmUgc3AsIGNmcgorICAgIHN1YnAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMgKiA4LCBjZnIKICAg
ICBzdG9yZXAgMCwgQXJndW1lbnRDb3VudFtjZnJdCi0gICAgc3RvcmVwIDAsIENhbGxlZSs0W2Nm
cl0KLSAgICBzdG9yZXAgdm1Ub3BDYWxsRnJhbWUsIENhbGxlZVtjZnJdCi0gICAgbG9hZHAgW3Zt
VG9wQ2FsbEZyYW1lXSwgdGVtcDQKLSAgICBzdG9yZXAgMCwgU2NvcGVDaGFpbis0W2Nmcl0KLSAg
ICBzdG9yZXAgdGVtcDQsIFNjb3BlQ2hhaW5bY2ZyXQotICAgIHN0b3JlcCAwLCBDb2RlQmxvY2sr
NFtjZnJdCisgICAgc3RvcmVwIHZtLCBDYWxsZWVbY2ZyXQorICAgIGxvYWRwIFZNOjp0b3BDYWxs
RnJhbWVbdm1dLCB0ZW1wMgorICAgIHN0b3JlcCB0ZW1wMiwgU2NvcGVDaGFpbltjZnJdCiAgICAg
c3RvcmVwIDEsIENvZGVCbG9ja1tjZnJdCisgICAgaWYgWDg2CisgICAgICAgIGxvYWRwIDI4W3Nw
XSwgcHJldmlvdXNQQworICAgICAgICBsb2FkcCAyNFtzcF0sIHByZXZpb3VzQ0ZSCisgICAgZW5k
CiAgICAgc3RvcmVwIHByZXZpb3VzUEMsIFJldHVyblBDW2Nmcl0KICAgICBzdG9yZXAgcHJldmlv
dXNDRlIsIENhbGxlckZyYW1lW2Nmcl0KLSAgICBtb3ZlIGNmciwgdGVtcDEKKworICAgIGlmIFg4
NgorICAgICAgICBsb2FkcCA0MFtzcF0sIHByb3RvQ2FsbEZyYW1lCisgICAgZW5kCiAKICAgICBs
b2FkaSBQcm90b0NhbGxGcmFtZTo6cGFkZGVkQXJnQ291bnRbcHJvdG9DYWxsRnJhbWVdLCB0ZW1w
MgogICAgIGFkZHAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMsIHRlbXAyLCB0ZW1wMgogICAgIGxzaGlm
dHAgMywgdGVtcDIKLSAgICBzdWJwIHRlbXAyLCBjZnIKLSAgICBzdG9yZXAgdGVtcDEsIENhbGxl
ckZyYW1lW2Nmcl0KKyAgICBzdWJwIGNmciwgdGVtcDIsIHRlbXAxCisKKyAgICAjIEVuc3VyZSB0
aGF0IHdlIGhhdmUgZW5vdWdoIGFkZGl0aW9uYWwgc3RhY2sgY2FwYWNpdHkgZm9yIHRoZSBpbmNv
bWluZyBhcmdzLAorICAgICMgYW5kIHRoZSBmcmFtZSBmb3IgdGhlIEpTIGNvZGUgd2UncmUgZXhl
Y3V0aW5nLiBXZSBuZWVkIHRvIGRvIHRoaXMgY2hlY2sKKyAgICAjIGJlZm9yZSB3ZSBzdGFydCBj
b3B5aW5nIHRoZSBhcmdzIGZyb20gdGhlIHByb3RvQ2FsbEZyYW1lIGJlbG93LgorICAgIGJwYWVx
IHRlbXAxLCBWTTo6bV9qc1N0YWNrTGltaXRbdm1dLCAuc3RhY2tIZWlnaHRPSworCisgICAgc3Vi
cCBjZnIsIDgsIHNwCisKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgbW92ZSBlbnRyeSwgdGVtcDIK
KyAgICAgICAgbW92ZSB2bSwgdGVtcDMKKyAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGggX2xsaW50
X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5LCB2bSwgdGVtcDEKKyAgICAgICAgYnBlcSB0MCwgMCwg
LnN0YWNrQ2hlY2tGYWlsZWQKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAgICAgbW92
ZSB0ZW1wMywgdm0KKyAgICAgICAgam1wIC5zdGFja0hlaWdodE9LCisKKy5zdGFja0NoZWNrRmFp
bGVkOgorICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQorICAgICAgICBtb3ZlIHRlbXAzLCB2bQor
ICAgIGVuZAogCisgICAgY0NhbGwyKF9sbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvciwg
dm0sIHByb3RvQ2FsbEZyYW1lKQorICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisgICAg
cmV0CisKKy5zdGFja0hlaWdodE9LOgorICAgIG1vdmUgdGVtcDEsIHNwCiAgICAgbW92ZSA1LCB0
ZW1wMQogCiAuY29weUhlYWRlckxvb3A6CiAgICAgc3ViaSAxLCB0ZW1wMQotICAgIGxvYWRwIFtw
cm90b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgQ29kZUJs
b2NrW2NmciwgdGVtcDEsIDhdCi0gICAgbG9hZHAgNFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhd
LCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgQ29kZUJsb2NrKzRbY2ZyLCB0ZW1wMSwgOF0KKyAg
ICBsb2FkaSBUYWdPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKKyAgICBz
dG9yZWkgdGVtcDMsIFRhZ09mZnNldCArIENvZGVCbG9ja1tzcCwgdGVtcDEsIDhdCisgICAgbG9h
ZGkgUGF5bG9hZE9mZnNldFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMworICAgIHN0
b3JlaSB0ZW1wMywgUGF5bG9hZE9mZnNldCArIENvZGVCbG9ja1tzcCwgdGVtcDEsIDhdCiAgICAg
YnRpbnogdGVtcDEsIC5jb3B5SGVhZGVyTG9vcAogCiAgICAgbG9hZGkgUHJvdG9DYWxsRnJhbWU6
OmFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVlW3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDIKQEAgLTI4
OCwxMiArMjc2LDEwIEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXR1
cm4pCiAgICAgc3ViaSAxLCB0ZW1wMwogCiAgICAgYmllcSB0ZW1wMiwgdGVtcDMsIC5jb3B5QXJn
cwotICAgIG1vdmUgMCwgdGVtcDEKLSAgICBtb3ZlIFVuZGVmaW5lZFRhZywgdGVtcDQKIC5maWxs
RXh0cmFBcmdzTG9vcDoKICAgICBzdWJpIDEsIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAxLCBUaGlz
QXJndW1lbnRPZmZzZXQrOCtQYXlsb2FkT2Zmc2V0W2NmciwgdGVtcDMsIDhdCi0gICAgc3RvcmVw
IHRlbXA0LCBUaGlzQXJndW1lbnRPZmZzZXQrOCtUYWdPZmZzZXRbY2ZyLCB0ZW1wMywgOF0KKyAg
ICBzdG9yZWkgVW5kZWZpbmVkVGFnLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgVGFnT2Zmc2V0
W3NwLCB0ZW1wMywgOF0KKyAgICBzdG9yZWkgMCwgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCArIFBh
eWxvYWRPZmZzZXRbc3AsIHRlbXAzLCA4XQogICAgIGJpbmVxIHRlbXAyLCB0ZW1wMywgLmZpbGxF
eHRyYUFyZ3NMb29wCiAKIC5jb3B5QXJnczoKQEAgLTMwMiw1MiArMjg4LDg3IEBAIG1hY3JvIGRv
Q2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXR1cm4pCiAuY29weUFyZ3NMb29wOgogICAg
IGJ0aXogdGVtcDIsIC5jb3B5QXJnc0RvbmUKICAgICBzdWJpIDEsIHRlbXAyCi0gICAgbG9hZHAg
UGF5bG9hZE9mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMwotICAgIGxvYWRwIFRhZ09mZnNl
dFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wNAotICAgIHN0b3JlcCB0ZW1wMywgVGhpc0FyZ3VtZW50
T2Zmc2V0KzgrUGF5bG9hZE9mZnNldFtjZnIsIHRlbXAyLCA4XQotICAgIHN0b3JlcCB0ZW1wNCwg
VGhpc0FyZ3VtZW50T2Zmc2V0KzgrVGFnT2Zmc2V0W2NmciwgdGVtcDIsIDhdCisgICAgbG9hZGkg
VGFnT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCisgICAgc3RvcmVpIHRlbXAzLCBUaGlz
QXJndW1lbnRPZmZzZXQgKyA4ICsgVGFnT2Zmc2V0W3NwLCB0ZW1wMiwgOF0KKyAgICBsb2FkaSBQ
YXlsb2FkT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCisgICAgc3RvcmVpIHRlbXAzLCBU
aGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgUGF5bG9hZE9mZnNldFtzcCwgdGVtcDIsIDhdCiAgICAg
am1wIC5jb3B5QXJnc0xvb3AKIAogLmNvcHlBcmdzRG9uZToKLSAgICBpZiBYODYKLSAgICAgICAg
bG9hZHAgZXh0cmFTdGFja1NwYWNlKzI0W3NwXSwgdm1Ub3BDYWxsRnJhbWUKLSAgICBlbmQKLSAg
ICBzdG9yZXAgY2ZyLCBbdm1Ub3BDYWxsRnJhbWVdCisgICAgc3RvcmVwIHNwLCBWTTo6dG9wQ2Fs
bEZyYW1lW3ZtXQogCi0gICAgbWFrZUNhbGwoZW50cnksIHRlbXAxKQorICAgIG1ha2VDYWxsKGVu
dHJ5LCB0ZW1wMSwgdGVtcDIpCiAKICAgICBicGVxIENvZGVCbG9ja1tjZnJdLCAxLCAuY2FsbGVl
RnJhbWVQb3BwZWQKICAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIKIAogLmNhbGxlZUZy
YW1lUG9wcGVkOgotICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0ZW1wMyAjIFZNLnRvcENhbGxGcmFt
ZQotICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdGVtcDQKLSAgICBzdG9yZXAgdGVtcDQsIFt0
ZW1wM10KKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGVtcDMgIyBWTQorICAgIGxvYWRwIFNjb3Bl
Q2hhaW5bY2ZyXSwgdGVtcDQgIyBwcmV2aW91cyB0b3BDYWxsRnJhbWUKKyAgICBzdG9yZXAgdGVt
cDQsIFZNOjp0b3BDYWxsRnJhbWVbdGVtcDNdCiAKLSAgICBkb1JldHVybihleHRyYVN0YWNrU3Bh
Y2UpCisgICAgY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKKyAgICByZXQKIGVuZAogCi1tYWNy
byBtYWtlSmF2YVNjcmlwdENhbGwoZW50cnksIHRlbXApCi0gICAgY2FsbCBlbnRyeQorbWFjcm8g
bWFrZUphdmFTY3JpcHRDYWxsKGVudHJ5LCB0ZW1wLCB1bnVzZWQpCisgICAgYWRkcCBDYWxsZXJG
cmFtZUFuZFBDU2l6ZSwgc3AKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MiwgMHhi
YWQwZGMwMikKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBlbnRy
eQorICAgIGVsc2UKKyAgICAgICAgY2FsbCBlbnRyeQorICAgIGVuZAorICAgIGNoZWNrU3RhY2tQ
b2ludGVyQWxpZ25tZW50KHQyLCAweGJhZDBkYzAzKQorICAgIHN1YnAgQ2FsbGVyRnJhbWVBbmRQ
Q1NpemUsIHNwCiBlbmQKIAotbWFjcm8gbWFrZUhvc3RGdW5jdGlvbkNhbGwoZW50cnksIHRlbXAp
Ci0gICAgbW92ZSBlbnRyeSwgdGVtcAotICAgIGlmIFg4NgotICAgICAgICAjIFB1dCBjZnIgb24g
c3RhY2sgYXMgYXJnMCwgYWxzbyBwdXQgaXQgaW4gZWN4IGZvciAiZmFzdGNhbGwiIHRhcmdldHMK
LSAgICAgICAgcG9rZSBjZnIsIDAKLSAgICAgICAgbW92ZSBjZnIsIHQyCittYWNybyBtYWtlSG9z
dEZ1bmN0aW9uQ2FsbChlbnRyeSwgdGVtcDEsIHRlbXAyKQorICAgIG1vdmUgZW50cnksIHRlbXAx
CisgICAgaWYgQ19MT09QCisgICAgICAgIG1vdmUgc3AsIGEwCisgICAgICAgIHN0b3JlcCBjZnIs
IFtzcF0KKyAgICAgICAgc3RvcmVwIGxyLCBQdHJTaXplW3NwXQorICAgICAgICBjbG9vcENhbGxO
YXRpdmUgdGVtcDEKICAgICBlbHNlCi0gICAgICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICBpZiBY
ODYKKyAgICAgICAgICAgICMgUHV0IGNhbGxlZSBmcmFtZSBwb2ludGVyIG9uIHN0YWNrIGFzIGFy
ZzAsIGFsc28gcHV0IGl0IGluIGVjeCBmb3IgImZhc3RjYWxsIiB0YXJnZXRzCisgICAgICAgICAg
ICBtb3ZlIDAsIHRlbXAyCisgICAgICAgICAgICBtb3ZlIHRlbXAyLCA0W3NwXSAjIHB1dCAwIGlu
IFJldHVyblBDCisgICAgICAgICAgICBtb3ZlIGNmciwgW3NwXSAjIHB1dCBjYWxsZXIgZnJhbWUg
cG9pbnRlciBpbnRvIGNhbGxlZSBmcmFtZSBzaW5jZSBjYWxsZWUgcHJvbG9ndWUgY2FuJ3QKKyAg
ICAgICAgICAgIG1vdmUgc3AsIHQyICMgdDIgaXMgZWN4CisgICAgICAgICAgICBwdXNoIHRlbXAy
ICMgUHVzaCBkdW1teSBhcmcxCisgICAgICAgICAgICBwdXNoIHQyCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIG1vdmUgc3AsIGEwCisgICAgICAgICAgICBhZGRwIENhbGxlckZyYW1lQW5kUENT
aXplLCBzcAorICAgICAgICBlbmQKKyAgICAgICAgY2FsbCB0ZW1wMQorICAgICAgICBpZiBYODYK
KyAgICAgICAgICAgIGFkZHAgOCwgc3AKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3VicCBD
YWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKKyAgICAgICAgZW5kCiAgICAgZW5kCi0gICAgY2FsbCB0
ZW1wCiBlbmQKIAotbWFjcm8gZG9SZXR1cm5Gcm9tSmF2YVNjcmlwdChleHRyYVN0YWNrU3BhY2Up
Ci1fcmV0dXJuRnJvbUphdmFTY3JpcHQ6Ci0gICAgZnVuY3Rpb25FcGlsb2d1ZShleHRyYVN0YWNr
U3BhY2UpCitfaGFuZGxlVW5jYXVnaHRFeGNlcHRpb246CisgICAgbG9hZHAgU2NvcGVDaGFpbiAr
IFBheWxvYWRPZmZzZXRbY2ZyXSwgdDMKKyAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKKyAg
ICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCisg
ICAgbG9hZHAgVk06OmNhbGxGcmFtZUZvclRocm93W3QzXSwgY2ZyCisKKyAgICAjIFNvIGZhciwg
d2UndmUgdW53b3VuZCB0aGUgc3RhY2sgdG8gdGhlIGZyYW1lIGp1c3QgYmVsb3cgdGhlIHNlbnRp
bmVsIGZyYW1lLgorICAgICMgV2UgbmVlZCB0byBwb3AgdG8gdGhlIHNlbnRpbmVsIGZyYW1lIGFu
ZCBkbyB0aGUgbmVjZXNzYXJ5IGNsZWFuIHVwIGZvcgorICAgICMgcmV0dXJuaW5nIHRvIHRoZSBj
YWxsZXIgQyBmcmFtZS4KKyAgICBsb2FkcCBDYWxsZXJGcmFtZSArIFBheWxvYWRPZmZzZXRbY2Zy
XSwgY2ZyCisKKyAgICBsb2FkcCBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQzICMgVk0K
KyAgICBsb2FkcCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0NSAjIHByZXZpb3Vz
IHRvcENhbGxGcmFtZQorICAgIHN0b3JlcCB0NSwgVk06OnRvcENhbGxGcmFtZVt0M10KKworICAg
IGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCiAgICAgcmV0Ci1lbmQKIAogbWFjcm8gZG9SZXR1
cm5Gcm9tSG9zdEZ1bmN0aW9uKGV4dHJhU3RhY2tTcGFjZSkKICAgICBmdW5jdGlvbkVwaWxvZ3Vl
KGV4dHJhU3RhY2tTcGFjZSkKQEAgLTM3NywxNCArMzk4LDEyIEBAIGVuZAogbWFjcm8gY2FsbENh
bGxTbG93UGF0aChzbG93UGF0aCwgYWN0aW9uKQogICAgIHN0b3JlcCBQQywgQXJndW1lbnRDb3Vu
dCArIFRhZ09mZnNldFtjZnJdCiAgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQotICAgIG1v
dmUgdDEsIGNmcgogICAgIGFjdGlvbih0MCkKIGVuZAogCiBtYWNybyBjYWxsV2F0Y2hkb2dUaW1l
ckhhbmRsZXIodGhyb3dIYW5kbGVyKQogICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRh
Z09mZnNldFtjZnJdCiAgICAgY0NhbGwyKF9sbGludF9zbG93X3BhdGhfaGFuZGxlX3dhdGNoZG9n
X3RpbWVyLCBjZnIsIFBDKQotICAgIG1vdmUgdDEsIGNmcgogICAgIGJ0cG56IHQwLCB0aHJvd0hh
bmRsZXIKICAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCiBlbmQK
QEAgLTM5NSw4ICs0MTQsOCBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCiAgICAg
ICAgIG1hY3JvICgpCiAgICAgICAgICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdP
ZmZzZXRbY2ZyXQogICAgICAgICAgICAgY0NhbGwyKF9sbGludF9sb29wX29zciwgY2ZyLCBQQykK
LSAgICAgICAgICAgIG1vdmUgdDEsIGNmcgogICAgICAgICAgICAgYnRweiB0MCwgLnJlY292ZXIK
KyAgICAgICAgICAgIG1vdmUgdDEsIHNwCiAgICAgICAgICAgICBqbXAgdDAKICAgICAgICAgLnJl
Y292ZXI6CiAgICAgICAgICAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0s
IFBDCkBAIC01NTMsMTggKzU3MiwzNCBAQCBlbmQKICMgRW50cnlwb2ludHMgaW50byB0aGUgaW50
ZXJwcmV0ZXIKIAogIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBpcyB3
aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLW1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhk
b25lTGFiZWwsIHNsb3dfcGF0aCkKK21hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWws
IHNsb3dQYXRoKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50W2Nmcl0s
IHQwCiAgICAgYmlhZXEgdDAsIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3QxXSwgZG9uZUxh
YmVsCi0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd19wYXRoIGhh
cyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9y
Ci0gICAgYnRpeiB0MCwgLmlzQXJpdHlGaXh1cE5lZWRlZAorICAgIGNDYWxsMihzbG93UGF0aCwg
Y2ZyLCBQQykgICAjIFRoaXMgc2xvd1BhdGggaGFzIGEgc2ltcGxlIHByb3RvY29sOiB0MCA9IDAg
PT4gbm8gZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IKKyAgICBidGl6IHQwLCAubm9FcnJvcgogICAg
IG1vdmUgdDEsIGNmciAgICMgdDEgY29udGFpbnMgY2FsbGVyIGZyYW1lCiAgICAgam1wIF9sbGlu
dF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCiAKLS5pc0FyaXR5Rml4dXBOZWVkZWQ6
Cisubm9FcnJvcjoKKyAgICAjIHQxIHBvaW50cyB0byBBcml0eUNoZWNrRGF0YS4KKyAgICBsb2Fk
cCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjp0aHVua1RvQ2FsbFt0MV0sIHQyCisg
ICAgYnRweiB0MiwgLnByb2NlZWRJbmxpbmUKKyAgICAKKyAgICBsb2FkcCBDb21tb25TbG93UGF0
aHM6OkFyaXR5Q2hlY2tEYXRhOjpyZXR1cm5QQ1t0MV0sIHQ1CisgICAgbG9hZHAgQ29tbW9uU2xv
d1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cGFkZGVkU3RhY2tTcGFjZVt0MV0sIHQwCisgICAgY2Fs
bCB0MgorICAgIGlmIEFTU0VSVF9FTkFCTEVECisgICAgICAgIGxvYWRwIFJldHVyblBDW2Nmcl0s
IHQwCisgICAgICAgIGxvYWRwIFt0MF0sIHQwCisgICAgZW5kCisgICAgam1wIC5jb250aW51ZQor
CisucHJvY2VlZElubGluZToKKyAgICBsb2FkaSBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tE
YXRhOjpwYWRkZWRTdGFja1NwYWNlW3QxXSwgdDEKICAgICBidGl6IHQxLCAuY29udGludWUKIAot
ICAgIC8vIE1vdmUgZnJhbWUgdXAgInQxIiBzbG90cworICAgIC8vIE1vdmUgZnJhbWUgdXAgInQx
ICogMiIgc2xvdHMKKyAgICBsc2hpZnRwIDEsIHQxCiAgICAgbmVnaSB0MQogICAgIG1vdmUgY2Zy
LCB0MwogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50W2Nmcl0sIHQyCkBA
IC01ODksNiArNjI0LDcgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xv
d19wYXRoKQogCiAgICAgbHNoaWZ0cCAzLCB0MQogICAgIGFkZHAgdDEsIGNmcgorICAgIGFkZHAg
dDEsIHNwCiAuY29udGludWU6CiAgICAgIyBSZWxvYWQgQ29kZUJsb2NrIGFuZCBQQywgc2luY2Ug
dGhlIHNsb3dfcGF0aCBjbG9iYmVyZWQgaXQuCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQx
CkBAIC01OTYsNyArNjMyLDYgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwg
c2xvd19wYXRoKQogICAgIGptcCBkb25lTGFiZWwKIGVuZAogCi0KIG1hY3JvIGJyYW5jaElmRXhj
ZXB0aW9uKGxhYmVsKQogICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICBhbmRwIE1h
cmtlZEJsb2NrTWFzaywgdDMKQEAgLTYxMSw2ICs2NDYsNyBAQCBlbmQKIAogX2xsaW50X29wX2Vu
dGVyOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVu
dCh0MiwgMHhkZWFkMDBlMSkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIgICAgICAgICAg
ICAgICAgLy8gdDI8Q29kZUJsb2NrPiA9IGNmci5Db2RlQmxvY2sKICAgICBsb2FkaSBDb2RlQmxv
Y2s6Om1fbnVtVmFyc1t0Ml0sIHQyICAgICAgLy8gdDI8c2l6ZV90PiA9IHQyPENvZGVCbG9jaz4u
bV9udW1WYXJzCiAgICAgYnRpeiB0MiwgLm9wRW50ZXJEb25lCkBAIC0xOTIwLDEyICsxOTU2LDEx
IEBAIG1hY3JvIGRvQ2FsbChzbG93UGF0aCkKICAgICBzdG9yZWkgdDAsIFNjb3BlQ2hhaW4gKyBQ
YXlsb2FkT2Zmc2V0W3QzXQogICAgIGxvYWRpIDEyW1BDXSwgdDIKICAgICBzdG9yZWkgUEMsIEFy
Z3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQotICAgIHN0b3JlcCBjZnIsIENhbGxlckZyYW1l
W3QzXQogICAgIHN0b3JlaSB0MiwgQXJndW1lbnRDb3VudCArIFBheWxvYWRPZmZzZXRbdDNdCiAg
ICAgc3RvcmVpIENlbGxUYWcsIENhbGxlZSArIFRhZ09mZnNldFt0M10KICAgICBzdG9yZWkgQ2Vs
bFRhZywgU2NvcGVDaGFpbiArIFRhZ09mZnNldFt0M10KLSAgICBtb3ZlIHQzLCBjZnIKLSAgICBj
YWxsVGFyZ2V0RnVuY3Rpb24odDEpCisgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgdDMK
KyAgICBjYWxsVGFyZ2V0RnVuY3Rpb24odDEsIHQzKQogCiAub3BDYWxsU2xvdzoKICAgICBzbG93
UGF0aEZvckNhbGwoc2xvd1BhdGgpCkBAIC0yMDM5LDEwICsyMDc0LDEyIEBAIF9sbGludF9vcF9j
YXRjaDoKICAgICAjIHRoZSBpbnRlcnByZXRlcidzIHRocm93IHRyYW1wb2xpbmUgKHNlZSBfbGxp
bnRfdGhyb3dfdHJhbXBvbGluZSkuCiAgICAgIyBUaGUgdGhyb3dpbmcgY29kZSBtdXN0IGhhdmUg
a25vd24gdGhhdCB3ZSB3ZXJlIHRocm93aW5nIHRvIHRoZSBpbnRlcnByZXRlciwKICAgICAjIGFu
ZCBoYXZlIHNldCBWTTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93LgotICAgIGxvYWRwIFNj
b3BlQ2hhaW5bY2ZyXSwgdDMKKyAgICBsb2FkcCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtj
ZnJdLCB0MwogICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgIGxvYWRwIE1hcmtlZEJs
b2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKICAgICBsb2FkcCBWTTo6Y2Fs
bEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxs
KCkKKwogICAgIGxvYWRpIFZNOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3dbdDNdLCBQQwog
ICAgIGxvYWRpIFZNOjptX2V4Y2VwdGlvbiArIFBheWxvYWRPZmZzZXRbdDNdLCB0MAogICAgIGxv
YWRpIFZNOjptX2V4Y2VwdGlvbiArIFRhZ09mZnNldFt0M10sIHQxCkBAIC0yMTE2LDc0ICsyMTUz
LDYyIEBAIF9sbGludF90aHJvd19kdXJpbmdfY2FsbF90cmFtcG9saW5lOgogCiAKIG1hY3JvIG5h
dGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQorCisgICAgZnVu
Y3Rpb25Qcm9sb2d1ZSgpCiAgICAgc3RvcmVwIDAsIENvZGVCbG9ja1tjZnJdCiAgICAgbG9hZHAg
Q2FsbGVyRnJhbWVbY2ZyXSwgdDAKICAgICBsb2FkaSBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNl
dFt0MF0sIHQxCiAgICAgc3RvcmVpIENlbGxUYWcsIFNjb3BlQ2hhaW4gKyBUYWdPZmZzZXRbY2Zy
XQogICAgIHN0b3JlaSB0MSwgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2ZyXQogICAgIGlm
IFg4NgotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFy
a2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsg
V2Vha1NldDo6bV92bVt0M10sIHQzCisgICAgICAgIHN1YnAgOCwgc3AgIyBhbGlnbiBzdGFjayBw
b2ludGVyCisgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MQorICAgICAgICBsb2FkcCBN
YXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0MV0sIHQzCiAgICAgICAgIHN0
b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0gICAgICAgIHBlZWsgMCwgdDEKLSAgICAg
ICAgc3RvcmVwIHQxLCBSZXR1cm5QQ1tjZnJdCiAgICAgICAgIG1vdmUgY2ZyLCB0MiAgIyB0MiA9
IGVjeAotICAgICAgICBzdWJwIDE2IC0gNCwgc3AKKyAgICAgICAgc3RvcmVwIHQyLCBbc3BdCiAg
ICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKICAgICAgICAgbG9h
ZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKLSAgICAgICAgbW92ZSB0MCwgY2Zy
CisgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQwMDAxKQogICAg
ICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotICAgICAgICBhZGRwIDE2
IC0gNCwgc3AKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRw
IE1hcmtlZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1Nl
dCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12
N19UUkFESVRJT05BTCBvciBNSVBTIG9yIFNINAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nm
cl0sIHQzCiAgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2FkcCBN
YXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgICAgIHN0
b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0gICAgICAgIG1vdmUgdDAsIHQyCi0gICAg
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKLSAgICAgICAgc3RvcmVwIHQz
LCBSZXR1cm5QQ1tjZnJdCi0gICAgICAgIG1vdmUgY2ZyLCB0MAotICAgICAgICBsb2FkaSBDYWxs
ZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCi0gICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1f
ZXhlY3V0YWJsZVt0MV0sIHQxCi0gICAgICAgIG1vdmUgdDIsIGNmcgorICAgICAgICBhZGRwIDgs
IHNwCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIENfTE9P
UCBvciBNSVBTIG9yIFNINAorICAgICAgICBzdWJwIDgsIHNwICMgYWxpZ24gc3RhY2sgcG9pbnRl
cgorICAgICAgICAjIHQxIGFscmVhZHkgY29udGFpbnMgdGhlIFNjb3BlQ2hhaW4uCisgICAgICAg
IGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MQorICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93
ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0MV0sIHQxCisgICAgICAgIHN0b3JlcCBjZnIsIFZNOjp0
b3BDYWxsRnJhbWVbdDFdCiAgICAgICAgIGlmIE1JUFMgb3IgU0g0Ci0gICAgICAgICAgICBtb3Zl
IHQwLCBhMAorICAgICAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG1vdmUgY2ZyLCB0MAogICAgICAgICBlbmQKLSAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zm
c2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1
cm4odDMpCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBN
YXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQg
KyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICBlbHNpZiBDX0xPT1AKLSAgICAgICAgbG9hZHAg
U2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKLSAg
ICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0
MwotICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQotICAgICAgICBtb3Zl
IHQwLCB0MgotICAgICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCi0gICAg
ICAgIHN0b3JlcCB0MywgUmV0dXJuUENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDAKICAgICAg
ICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQogICAgICAgICBsb2FkcCBK
U0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQotICAgICAgICBtb3ZlIHQyLCBjZnIKLSAg
ICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotICAg
ICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKKyAgICAgICAgY2hlY2tT
dGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCisgICAgICAgIGlmIENfTE9PUAor
ICAgICAgICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3Qx
XQorICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0
aW9uW3QxXQorICAgICAgICBlbmQKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0Mwog
ICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICAgICAgbG9hZHAgTWFya2VkQmxv
Y2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MworICAgICAgICBhZGRwIDgsIHNw
CiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZAotICAgIGJpbmVxIFZNOjptX2V4Y2Vw
dGlvbiArIFRhZ09mZnNldFt0M10sIEVtcHR5VmFsdWVUYWcsIC5leGNlcHRpb24KKyAgICAKKyAg
ICBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICBiaW5lcSBWTTo6bV9leGNlcHRpb24gKyBUYWdPZmZz
ZXRbdDNdLCBFbXB0eVZhbHVlVGFnLCAuaGFuZGxlRXhjZXB0aW9uCiAgICAgcmV0Ci0uZXhjZXB0
aW9uOgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MSkgIyBUaGlzIGlzIHJl
YWxseSBvbmx5IG5lZWRlZCBvbiBYODYKLSAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0sIFBDCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF90aHJvd19mcm9tX25hdGl2ZV9j
YWxsKQorCisuaGFuZGxlRXhjZXB0aW9uOgorICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJh
bWVbdDNdCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCiAgICAgam1wIF9sbGlu
dF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCiBlbmQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCAx
YmM1ZWQ2OGQ3ZTQ2NDRmN2Q3MTM5MDFjNmE0NTBjNWY5NWM0ODI1Li5kMjBiYjY1OTJmMGE3NGM2
NWNhNDJiY2YyMzA0YjJjMzQ4OGZjY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMSw0ICsxLDQgQEAKLSMg
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTIs
OSArNTIsMTAgQEAgbWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQogZW5kCiAKIG1hY3JvIGNDYWxs
MihmdW5jdGlvbiwgYXJnMSwgYXJnMikKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0
NCwgMHhiYWQwYzAwMikKICAgICBpZiBYODZfNjQKLSAgICAgICAgbW92ZSBhcmcxLCB0NQotICAg
ICAgICBtb3ZlIGFyZzIsIHQ0CisgICAgICAgIG1vdmUgYXJnMSwgdDQKKyAgICAgICAgbW92ZSBh
cmcyLCB0NQogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYgQVJNNjQKICAgICAgICAg
bW92ZSBhcmcxLCB0MApAQCAtNjksOSArNzAsMTAgQEAgZW5kCiAKICMgVGhpcyBiYXJlbHkgd29y
a3MuIGFyZzMgYW5kIGFyZzQgc2hvdWxkIHByb2JhYmx5IGJlIGltbWVkaWF0ZXMuCiBtYWNybyBj
Q2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCisgICAgY2hlY2tTdGFja1Bv
aW50ZXJBbGlnbm1lbnQodDQsIDB4YmFkMGMwMDQpCiAgICAgaWYgWDg2XzY0Ci0gICAgICAgIG1v
dmUgYXJnMSwgdDUKLSAgICAgICAgbW92ZSBhcmcyLCB0NAorICAgICAgICBtb3ZlIGFyZzEsIHQ0
CisgICAgICAgIG1vdmUgYXJnMiwgdDUKICAgICAgICAgbW92ZSBhcmczLCB0MQogICAgICAgICBt
b3ZlIGFyZzQsIHQyCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KQEAgLTg4LDY2ICs5MCw0OSBAQCBt
YWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCiAgICAgZW5kCiBl
bmQKIAotbWFjcm8gZnVuY3Rpb25Qcm9sb2d1ZShleHRyYVN0YWNrU3BhY2UpCittYWNybyBkb0Nh
bGxUb0phdmFTY3JpcHQobWFrZUNhbGwpCiAgICAgaWYgWDg2XzY0Ci0gICAgICAgIHB1c2ggY2Zy
Ci0gICAgICAgIG1vdmUgc3AsIGNmcgotICAgIGVsc2lmIEFSTTY0Ci0gICAgICAgIHB1c2hMUkFu
ZEZQCi0gICAgZW5kCi0gICAgcHVzaENhbGxlZVNhdmVzCi0gICAgaWYgWDg2XzY0Ci0gICAgICAg
IHN1YnAgZXh0cmFTdGFja1NwYWNlLCBzcAotICAgIGVuZAotZW5kCi0KLW1hY3JvIGZ1bmN0aW9u
RXBpbG9ndWUoZXh0cmFTdGFja1NwYWNlKQotICAgIGlmIFg4Nl82NAotICAgICAgICBhZGRwIGV4
dHJhU3RhY2tTcGFjZSwgc3AKLSAgICBlbmQKLSAgICBwb3BDYWxsZWVTYXZlcwotICAgIGlmIFg4
Nl82NAotICAgICAgICBwb3AgY2ZyCi0gICAgZWxzaWYgQVJNNjQKLSAgICAgICAgcG9wTFJBbmRG
UAotICAgIGVuZAotZW5kCi0KLW1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9S
ZXR1cm4pCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIGNvbnN0IGVudHJ5ID0gdDUKLSAgICAgICAg
Y29uc3Qgdm1Ub3BDYWxsRnJhbWUgPSB0NAorICAgICAgICBjb25zdCBlbnRyeSA9IHQ0CisgICAg
ICAgIGNvbnN0IHZtID0gdDUKICAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSB0MQotICAg
ICAgICBjb25zdCB0b3BPZlN0YWNrID0gdDIKIAotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3Bh
Y2UgPSA4CiAgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDAKICAgICAgICAgY29uc3QgcHJl
dmlvdXNQQyA9IHQ2CiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDAKICAgICAgICAgY29uc3QgdGVt
cDIgPSB0MwogICAgICAgICBjb25zdCB0ZW1wMyA9IHQ2Ci0gICAgZWxzaWYgQVJNNjQKKyAgICBl
bHNpZiBBUk02NCBvciBDX0xPT1AKICAgICAgICAgY29uc3QgZW50cnkgPSBhMAotICAgICAgICBj
b25zdCB2bVRvcENhbGxGcmFtZSA9IGExCisgICAgICAgIGNvbnN0IHZtID0gYTEKICAgICAgICAg
Y29uc3QgcHJvdG9DYWxsRnJhbWUgPSBhMgotICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gYTMK
IAotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAwCi0gICAgICAgIGNvbnN0IHByZXZp
b3VzQ0ZSID0gdDQKKyAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0NQogICAgICAgICBjb25z
dCBwcmV2aW91c1BDID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MwotICAgICAgICBjb25z
dCB0ZW1wMiA9IHQ1CisgICAgICAgIGNvbnN0IHRlbXAyID0gdDQKICAgICAgICAgY29uc3QgdGVt
cDMgPSB0NgogICAgIGVuZAogCi0gICAgZnVuY3Rpb25Qcm9sb2d1ZShleHRyYVN0YWNrU3BhY2Up
CisgICAgY2FsbFRvSmF2YVNjcmlwdFByb2xvZ3VlKCkKKworICAgIGlmIFg4Nl82NAorICAgICAg
ICBsb2FkcCA3Kjhbc3BdLCBwcmV2aW91c1BDCisgICAgICAgIG1vdmUgNio4W3NwXSwgcHJldmlv
dXNDRlIKKyAgICBlbHNpZiBBUk02NAorICAgICAgICBtb3ZlIGNmciwgcHJldmlvdXNDRlIKKyAg
ICBlbmQKKworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAyLCAweGJhZDBkYzAx
KQogCi0gICAgbW92ZSB0b3BPZlN0YWNrLCBjZnIKLSAgICBzdWJwIChDYWxsRnJhbWVIZWFkZXJT
bG90cy0xKSo4LCBjZnIKKyAgICAjIFRoZSBzdGFjayByZXNlcnZlZCB6b25lIGVuc3VyZXMgdGhh
dCB3ZSBoYXZlIGFkZXF1YXRlIHNwYWNlIGZvciB0aGUKKyAgICAjIFZNRW50cnlTZW50aW5lbEZy
YW1lLiBQcm9jZWVkIHdpdGggYWxsb2NhdGluZyBhbmQgaW5pdGlhbGl6aW5nIHRoZQorICAgICMg
c2VudGluZWwgZnJhbWUuCisgICAgbW92ZSBzcCwgY2ZyCisgICAgc3VicCBDYWxsRnJhbWVIZWFk
ZXJTbG90cyAqIDgsIGNmcgogICAgIHN0b3JlcCAwLCBBcmd1bWVudENvdW50W2Nmcl0KLSAgICBz
dG9yZXAgdm1Ub3BDYWxsRnJhbWUsIENhbGxlZVtjZnJdCi0gICAgbG9hZHAgW3ZtVG9wQ2FsbEZy
YW1lXSwgdGVtcDEKLSAgICBzdG9yZXAgdGVtcDEsIFNjb3BlQ2hhaW5bY2ZyXQorICAgIHN0b3Jl
cCB2bSwgQ2FsbGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXSwgdGVtcDIK
KyAgICBzdG9yZXAgdGVtcDIsIFNjb3BlQ2hhaW5bY2ZyXQogICAgIHN0b3JlcCAxLCBDb2RlQmxv
Y2tbY2ZyXQogICAgIGlmIFg4Nl82NAogICAgICAgICBsb2FkcCA3Kjhbc3BdLCBwcmV2aW91c1BD
CkBAIC0xNTUsMjAgKzE0MCw0NSBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGws
IGRvUmV0dXJuKQogICAgIGVuZAogICAgIHN0b3JlcCBwcmV2aW91c1BDLCBSZXR1cm5QQ1tjZnJd
CiAgICAgc3RvcmVwIHByZXZpb3VzQ0ZSLCBDYWxsZXJGcmFtZVtjZnJdCi0gICAgbW92ZSBjZnIs
IHRlbXAxCiAKICAgICBsb2FkaSBQcm90b0NhbGxGcmFtZTo6cGFkZGVkQXJnQ291bnRbcHJvdG9D
YWxsRnJhbWVdLCB0ZW1wMgogICAgIGFkZHAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMsIHRlbXAyLCB0
ZW1wMgogICAgIGxzaGlmdHAgMywgdGVtcDIKLSAgICBzdWJwIHRlbXAyLCBjZnIKLSAgICBzdG9y
ZXAgdGVtcDEsIENhbGxlckZyYW1lW2Nmcl0KKyAgICBzdWJwIGNmciwgdGVtcDIsIHRlbXAxCisK
KyAgICAjIEVuc3VyZSB0aGF0IHdlIGhhdmUgZW5vdWdoIGFkZGl0aW9uYWwgc3RhY2sgY2FwYWNp
dHkgZm9yIHRoZSBpbmNvbWluZyBhcmdzLAorICAgICMgYW5kIHRoZSBmcmFtZSBmb3IgdGhlIEpT
IGNvZGUgd2UncmUgZXhlY3V0aW5nLiBXZSBuZWVkIHRvIGRvIHRoaXMgY2hlY2sKKyAgICAjIGJl
Zm9yZSB3ZSBzdGFydCBjb3B5aW5nIHRoZSBhcmdzIGZyb20gdGhlIHByb3RvQ2FsbEZyYW1lIGJl
bG93LgorICAgIGJwYWVxIHRlbXAxLCBWTTo6bV9qc1N0YWNrTGltaXRbdm1dLCAuc3RhY2tIZWln
aHRPSworCisgICAgbW92ZSBjZnIsIHNwCisKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgbW92ZSBl
bnRyeSwgdGVtcDIKKyAgICAgICAgbW92ZSB2bSwgdGVtcDMKKyAgICAgICAgY2xvb3BDYWxsU2xv
d1BhdGggX2xsaW50X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5LCB2bSwgdGVtcDEKKyAgICAgICAg
YnBlcSB0MCwgMCwgLnN0YWNrQ2hlY2tGYWlsZWQKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkK
KyAgICAgICAgbW92ZSB0ZW1wMywgdm0KKyAgICAgICAgam1wIC5zdGFja0hlaWdodE9LCisKKy5z
dGFja0NoZWNrRmFpbGVkOgorICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQorICAgICAgICBtb3Zl
IHRlbXAzLCB2bQorICAgIGVuZAorCisgICAgY0NhbGwyKF9sbGludF90aHJvd19zdGFja19vdmVy
Zmxvd19lcnJvciwgdm0sIHByb3RvQ2FsbEZyYW1lKQorICAgIGNhbGxUb0phdmFTY3JpcHRFcGls
b2d1ZSgpCisgICAgcmV0CiAKKy5zdGFja0hlaWdodE9LOgorICAgIG1vdmUgdGVtcDEsIHNwCiAg
ICAgbW92ZSA1LCB0ZW1wMQogCiAuY29weUhlYWRlckxvb3A6CiAgICAgc3ViaSAxLCB0ZW1wMQot
ICAgIGxvYWRwIFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMwotICAgIHN0b3JlcCB0
ZW1wMywgQ29kZUJsb2NrW2NmciwgdGVtcDEsIDhdCisgICAgbG9hZHEgW3Byb3RvQ2FsbEZyYW1l
LCB0ZW1wMSwgOF0sIHRlbXAzCisgICAgc3RvcmVxIHRlbXAzLCBDb2RlQmxvY2tbc3AsIHRlbXAx
LCA4XQogICAgIGJ0aW56IHRlbXAxLCAuY29weUhlYWRlckxvb3AKIAogICAgIGxvYWRpIFByb3Rv
Q2FsbEZyYW1lOjphcmdDb3VudEFuZENvZGVPcmlnaW5WYWx1ZVtwcm90b0NhbGxGcmFtZV0sIHRl
bXAyCkBAIC0xODAsNyArMTkwLDcgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxs
LCBkb1JldHVybikKICAgICBtb3ZlIFZhbHVlVW5kZWZpbmVkLCB0ZW1wMQogLmZpbGxFeHRyYUFy
Z3NMb29wOgogICAgIHN1YmkgMSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDEsIFRoaXNBcmd1bWVu
dE9mZnNldCs4W2NmciwgdGVtcDMsIDhdCisgICAgc3RvcmVxIHRlbXAxLCBUaGlzQXJndW1lbnRP
ZmZzZXQgKyA4W3NwLCB0ZW1wMywgOF0KICAgICBiaW5lcSB0ZW1wMiwgdGVtcDMsIC5maWxsRXh0
cmFBcmdzTG9vcAogCiAuY29weUFyZ3M6CkBAIC0xODksNTMgKzE5OSw5NyBAQCBtYWNybyBkb0Nh
bGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0dXJuKQogLmNvcHlBcmdzTG9vcDoKICAgICBi
dGl6IHRlbXAyLCAuY29weUFyZ3NEb25lCiAgICAgc3ViaSAxLCB0ZW1wMgotICAgIGxvYWRwIFt0
ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgVGhpc0FyZ3VtZW50T2Zm
c2V0KzhbY2ZyLCB0ZW1wMiwgOF0KKyAgICBsb2FkcSBbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMK
KyAgICBzdG9yZXEgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNldCArIDhbc3AsIHRlbXAyLCA4XQog
ICAgIGptcCAuY29weUFyZ3NMb29wCiAKIC5jb3B5QXJnc0RvbmU6Ci0gICAgc3RvcmVwIGNmciwg
W3ZtVG9wQ2FsbEZyYW1lXQorICAgIGlmIEFSTTY0CisgICAgICAgIG1vdmUgc3AsIHRlbXAyCisg
ICAgICAgIHN0b3JlcCB0ZW1wMiwgVk06OnRvcENhbGxGcmFtZVt2bV0KKyAgICBlbHNlCisgICAg
ICAgIHN0b3JlcCBzcCwgVk06OnRvcENhbGxGcmFtZVt2bV0KKyAgICBlbmQKIAogICAgIG1vdmUg
MHhmZmZmMDAwMDAwMDAwMDAwLCBjc3IxCiAgICAgYWRkcCAyLCBjc3IxLCBjc3IyCiAKKyAgICBj
aGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMywgMHhiYWQwZGMwMikKKwogICAgIG1ha2VD
YWxsKGVudHJ5LCB0ZW1wMSkKIAorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAz
LCAweGJhZDBkYzAzKQorCiAgICAgYnBlcSBDb2RlQmxvY2tbY2ZyXSwgMSwgLmNhbGxlZUZyYW1l
UG9wcGVkCiAgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2ZyCiAKIC5jYWxsZWVGcmFtZVBv
cHBlZDoKLSAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGVtcDIgIyBWTS50b3BDYWxsRnJhbWUKLSAg
ICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAzLCBbdGVtcDJd
CisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAyICMgVk0KKyAgICBsb2FkcCBTY29wZUNoYWlu
W2Nmcl0sIHRlbXAzICMgcHJldmlvdXMgdG9wQ2FsbEZyYW1lCisgICAgc3RvcmVwIHRlbXAzLCBW
TTo6dG9wQ2FsbEZyYW1lW3RlbXAyXQorCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQo
dGVtcDMsIDB4YmFkMGRjMDQpCiAKLSAgICBkb1JldHVybihleHRyYVN0YWNrU3BhY2UpCisgICAg
aWYgWDg2XzY0CisgICAgICAgIHBvcCB0NQorICAgIGVuZAorICAgIGNhbGxUb0phdmFTY3JpcHRF
cGlsb2d1ZSgpCisKKyAgICByZXQKIGVuZAogCisKIG1hY3JvIG1ha2VKYXZhU2NyaXB0Q2FsbChl
bnRyeSwgdGVtcCkKLSAgICBjYWxsIGVudHJ5CisgICAgYWRkcCAxNiwgc3AKKyAgICBpZiBDX0xP
T1AKKyAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBlbnRyeQorICAgIGVsc2UKKyAgICAgICAg
Y2FsbCBlbnRyeQorICAgIGVuZAorICAgIHN1YnAgMTYsIHNwCiBlbmQKIAorCiBtYWNybyBtYWtl
SG9zdEZ1bmN0aW9uQ2FsbChlbnRyeSwgdGVtcCkKICAgICBtb3ZlIGVudHJ5LCB0ZW1wCiAgICAg
aWYgWDg2XzY0Ci0gICAgICAgIG1vdmUgY2ZyLCB0NQorICAgICAgICBtb3ZlIHNwLCB0NAogICAg
IGVsc2lmIEFSTTY0IG9yIENfTE9PUAotICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgbW92
ZSBzcCwgYTAKKyAgICBlbmQKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgc3RvcmVwIGNmciwgW3Nw
XQorICAgICAgICBzdG9yZXAgbHIsIDhbc3BdCisgICAgICAgIGNsb29wQ2FsbE5hdGl2ZSB0ZW1w
CisgICAgZWxzZQorICAgICAgICBhZGRwIDE2LCBzcCAKKyAgICAgICAgY2FsbCB0ZW1wCisgICAg
ICAgIHN1YnAgMTYsIHNwCiAgICAgZW5kCi0gICAgY2FsbCB0ZW1wCiBlbmQKIAotbWFjcm8gZG9S
ZXR1cm5Gcm9tSmF2YVNjcmlwdChleHRyYVN0YWNrU3BhY2UpCi1fcmV0dXJuRnJvbUphdmFTY3Jp
cHQ6Ci0gICAgZnVuY3Rpb25FcGlsb2d1ZShleHRyYVN0YWNrU3BhY2UpCi0gICAgcmV0Ci1lbmQK
IAotbWFjcm8gZG9SZXR1cm5Gcm9tSG9zdEZ1bmN0aW9uKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBm
dW5jdGlvbkVwaWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKK19oYW5kbGVVbmNhdWdodEV4Y2VwdGlv
bjoKKyAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCisgICAgYW5kcCBNYXJrZWRCbG9ja01h
c2ssIHQzCisgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1b
dDNdLCB0MworICAgIGxvYWRwIFZNOjpjYWxsRnJhbWVGb3JUaHJvd1t0M10sIGNmcgorCisgICAg
IyBTbyBmYXIsIHdlJ3ZlIHVud291bmQgdGhlIHN0YWNrIHRvIHRoZSBmcmFtZSBqdXN0IGJlbG93
IHRoZSBzZW50aW5lbCBmcmFtZSwgZXhjZXB0CisgICAgIyBpbiB0aGUgY2FzZSBvZiBzdGFjayBv
dmVyZmxvdyBpbiB0aGUgZmlyc3QgZnVuY3Rpb24gY2FsbGVkIGZyb20gY2FsbFRvSmF2YVNjcmlw
dC4KKyAgICAjIENoZWNrIGlmIHdlIG5lZWQgdG8gcG9wIHRvIHRoZSBzZW50aW5lbCBmcmFtZSBh
bmQgZG8gdGhlIG5lY2Vzc2FyeSBjbGVhbiB1cCBmb3IKKyAgICAjIHJldHVybmluZyB0byB0aGUg
Y2FsbGVyIEMgZnJhbWUuCisgICAgYnBlcSBDb2RlQmxvY2tbY2ZyXSwgMSwgLmhhbmRsZVVuY2F1
Z2h0RXhjZXB0aW9uQWxyZWFkeUlzU2VudGluZWwKKyAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJd
LCBjZnIKKy5oYW5kbGVVbmNhdWdodEV4Y2VwdGlvbkFscmVhZHlJc1NlbnRpbmVsOgorCisgICAg
bG9hZHAgQ2FsbGVlW2Nmcl0sIHQzICMgVk0KKyAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQ1
ICMgcHJldmlvdXMgdG9wQ2FsbEZyYW1lCisgICAgc3RvcmVwIHQ1LCBWTTo6dG9wQ2FsbEZyYW1l
W3QzXQorCisgICAgY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKICAgICByZXQKLWVuZAorCiAK
IG1hY3JvIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKICAgICBsZWFwIFtQQiwgUEMsIDhdLCBQQwpA
QCAtMjQ0LDcgKzI5OCw2IEBAIGVuZAogCiBtYWNybyByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkK
ICAgICBtb3ZlIHQwLCBQQwotICAgIG1vdmUgdDEsIGNmcgogICAgIG1vdmUgdDMsIFBCCiAgICAg
c3VicCBQQiwgUEMKICAgICByc2hpZnRwIDMsIFBDCkBAIC0yNzMsNyArMzI2LDYgQEAgbWFjcm8g
Y2FsbENhbGxTbG93UGF0aChzbG93UGF0aCwgYWN0aW9uKQogICAgIHN0b3JlaSBQQywgQXJndW1l
bnRDb3VudCArIFRhZ09mZnNldFtjZnJdCiAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQogICAg
IGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBhY3Rpb24o
dDApCiBlbmQKIApAQCAtMjgxLDcgKzMzMyw2IEBAIG1hY3JvIGNhbGxXYXRjaGRvZ1RpbWVySGFu
ZGxlcih0aHJvd0hhbmRsZXIpCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0KICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCiAgICAgY0NhbGwyKF9sbGludF9z
bG93X3BhdGhfaGFuZGxlX3dhdGNoZG9nX3RpbWVyLCBjZnIsIFBDKQotICAgIG1vdmUgdDEsIGNm
cgogICAgIGJ0cG56IHQwLCB0aHJvd0hhbmRsZXIKICAgICBtb3ZlIHQzLCBQQgogICAgIGxvYWRp
IEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKQEAgLTI5NCw4ICszNDUsOCBAQCBt
YWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCiAgICAgICAgICAgICBzdG9yZWkgUEMsIEFy
Z3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgICAgICAgICAgcHJlcGFyZVN0YXRlRm9y
Q0NhbGwoKQogICAgICAgICAgICAgY0NhbGwyKF9sbGludF9sb29wX29zciwgY2ZyLCBQQykKLSAg
ICAgICAgICAgIG1vdmUgdDEsIGNmcgogICAgICAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKKyAg
ICAgICAgICAgIG1vdmUgdDEsIHNwCiAgICAgICAgICAgICBqbXAgdDAKICAgICAgICAgLnJlY292
ZXI6CiAgICAgICAgICAgICBtb3ZlIHQzLCBQQgpAQCAtMzg3LDE5ICs0MzgsMzUgQEAgZW5kCiAj
IEVudHJ5cG9pbnRzIGludG8gdGhlIGludGVycHJldGVyLgogCiAjIEV4cGVjdHMgdGhhdCBDb2Rl
QmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgot
bWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd19wYXRoKQorbWFjcm8gZnVu
Y3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd1BhdGgpCiAgICAgbG9hZGkgUGF5bG9hZE9m
ZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDAKICAgICBiaWFlcSB0MCwgQ29kZUJsb2NrOjpt
X251bVBhcmFtZXRlcnNbdDFdLCBkb25lTGFiZWwKICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgp
Ci0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd19wYXRoIGhhcyBh
IHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCi0g
ICAgYnRpeiB0MCwgLmlzQXJpdHlGaXh1cE5lZWRlZAorICAgIGNDYWxsMihzbG93UGF0aCwgY2Zy
LCBQQykgICAjIFRoaXMgc2xvd1BhdGggaGFzIHRoZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVy
cm9yLCB0MCAhPSAwID0+IGVycm9yCisgICAgYnRpeiB0MCwgLm5vRXJyb3IKICAgICBtb3ZlIHQx
LCBjZnIgICAjIHQxIGNvbnRhaW5zIGNhbGxlciBmcmFtZQogICAgIGptcCBfbGxpbnRfdGhyb3df
ZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogCi0uaXNBcml0eUZpeHVwTmVlZGVkOgorLm5vRXJy
b3I6CisgICAgIyB0MSBwb2ludHMgdG8gQXJpdHlDaGVja0RhdGEuCisgICAgbG9hZHAgQ29tbW9u
U2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6dGh1bmtUb0NhbGxbdDFdLCB0MgorICAgIGJ0cHog
dDIsIC5wcm9jZWVkSW5saW5lCisgICAgCisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0
eUNoZWNrRGF0YTo6cmV0dXJuUENbdDFdLCB0NQorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6
QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MAorICAgIGNhbGwgdDIKKyAg
ICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MAorICAg
ICAgICBsb2FkcCBbdDBdLCB0MAorICAgIGVuZAorICAgIGptcCAuY29udGludWUKKworLnByb2Nl
ZWRJbmxpbmU6CisgICAgbG9hZGkgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cGFk
ZGVkU3RhY2tTcGFjZVt0MV0sIHQxCiAgICAgYnRpeiB0MSwgLmNvbnRpbnVlCiAKLSAgICAvLyBN
b3ZlIGZyYW1lIHVwICJ0MSIgc2xvdHMKKyAgICAvLyBNb3ZlIGZyYW1lIHVwICJ0MSAqIDIiIHNs
b3RzCisgICAgbHNoaWZ0cCAxLCB0MQogICAgIG5lZ3EgdDEKICAgICBtb3ZlIGNmciwgdDMKICAg
ICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MgpAQCAtNDIwLDYg
KzQ4Nyw3IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dfcGF0aCkK
IAogICAgIGxzaGlmdHAgMywgdDEKICAgICBhZGRwIHQxLCBjZnIKKyAgICBhZGRwIHQxLCBzcAog
CiAuY29udGludWU6CiAgICAgIyBSZWxvYWQgQ29kZUJsb2NrIGFuZCByZXNldCBQQywgc2luY2Ug
dGhlIHNsb3dfcGF0aCBjbG9iYmVyZWQgdGhlbS4KQEAgLTQyOSw3ICs0OTcsNiBAQCBtYWNybyBm
dW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93X3BhdGgpCiAgICAgam1wIGRvbmVMYWJl
bAogZW5kCiAKLQogbWFjcm8gYnJhbmNoSWZFeGNlcHRpb24obGFiZWwpCiAgICAgbG9hZHAgU2Nv
cGVDaGFpbltjZnJdLCB0MwogICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwpAQCAtNDQ0LDYg
KzUxMSw3IEBAIGVuZAogCiBfbGxpbnRfb3BfZW50ZXI6CiAgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGRlYWQwMGUxKQogICAgIGxvYWRw
IENvZGVCbG9ja1tjZnJdLCB0MiAgICAgICAgICAgICAgICAvLyB0MjxDb2RlQmxvY2s+ID0gY2Zy
LkNvZGVCbG9jawogICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1WYXJzW3QyXSwgdDIgICAgICAv
LyB0MjxzaXplX3Q+ID0gdDI8Q29kZUJsb2NrPi5tX251bVZhcnMKICAgICBidGl6IHQyLCAub3BF
bnRlckRvbmUKQEAgLTE3MTcsMTAgKzE3ODUsOSBAQCBtYWNybyBkb0NhbGwoc2xvd1BhdGgpCiAg
ICAgc3RvcmVxIHQwLCBTY29wZUNoYWluW3QzXQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigz
LCB0MikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQotICAg
IHN0b3JlcSBjZnIsIENhbGxlckZyYW1lW3QzXQogICAgIHN0b3JlaSB0MiwgQXJndW1lbnRDb3Vu
dCArIFBheWxvYWRPZmZzZXRbdDNdCi0gICAgbW92ZSB0MywgY2ZyCi0gICAgY2FsbFRhcmdldEZ1
bmN0aW9uKHQxKQorICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHQzCisgICAgY2FsbFRh
cmdldEZ1bmN0aW9uKHQxLCB0MykKIAogLm9wQ2FsbFNsb3c6CiAgICAgc2xvd1BhdGhGb3JDYWxs
KHNsb3dQYXRoKQpAQCAtMTg0MCw2ICsxOTA3LDggQEAgX2xsaW50X29wX2NhdGNoOgogICAgIGFu
ZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQg
KyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKICAgICBsb2FkcCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3db
dDNdLCBjZnIKKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKKwogICAgIGxvYWRw
IENvZGVCbG9ja1tjZnJdLCBQQgogICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNb
UEJdLCBQQgogICAgIGxvYWRwIFZNOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3dbdDNdLCBQ
QwpAQCAtMTg3OSw2ICsxOTQ4LDggQEAgX2xsaW50X3Rocm93X2R1cmluZ19jYWxsX3RyYW1wb2xp
bmU6CiAKIAogbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVu
Y3Rpb24pCisKKyAgICBmdW5jdGlvblByb2xvZ3VlKCkKICAgICBzdG9yZXAgMCwgQ29kZUJsb2Nr
W2Nmcl0KICAgICBpZiBYODZfNjQKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MApA
QCAtMTg4OCwxOSArMTk1OSwxNSBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRh
YmxlT2Zmc2V0VG9GdW5jdGlvbikKICAgICAgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgdDAK
ICAgICAgICAgbG9hZHEgU2NvcGVDaGFpblt0MF0sIHQxCiAgICAgICAgIHN0b3JlcSB0MSwgU2Nv
cGVDaGFpbltjZnJdCi0gICAgICAgIHBlZWsgMCwgdDEKLSAgICAgICAgc3RvcmVwIHQxLCBSZXR1
cm5QQ1tjZnJdCi0gICAgICAgIG1vdmUgY2ZyLCB0NSAgIyB0NSA9IHJkaQotICAgICAgICBzdWJw
IDE2IC0gOCwgc3AKLSAgICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQ0ICMgdDQgPSByc2kKLSAg
ICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Q0XSwgdDEKLSAgICAgICAgbW92
ZSB0MCwgY2ZyICMgUmVzdG9yZSBjZnIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrCisgICAg
ICAgIG1vdmUgY2ZyLCB0NCAgIyB0NCA9IHJkaQorICAgICAgICBsb2FkcCBDYWxsZWVbY2ZyXSwg
dDUgIyB0NSA9IHJzaQorICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDVd
LCB0MQorICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkK
ICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgYWRk
cCAxNiAtIDgsIHNwCiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICAgICAg
YW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dl
YWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICBlbHNpZiBBUk02NAorICAgIGVsc2lm
IEFSTTY0IG9yIENfTE9PUAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQwCiAgICAg
ICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MAogICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6
bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0MF0sIHQwCkBAIC0xOTE0LDMwICsxOTgxLDExIEBA
IG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQog
ICAgICAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKICAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6
bV9leGVjdXRhYmxlW3QxXSwgdDEKICAgICAgICAgbW92ZSB0MiwgY2ZyICMgUmVzdG9yZSBjZnIg
dG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrCi0gICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNl
dFRvRnVuY3Rpb25bdDFdCi0gICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KHQzKQotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFy
a2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsg
V2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGxvYWRwIENh
bGxlckZyYW1lW2Nmcl0sIHQwCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bdDBdLCB0MQotICAg
ICAgICBzdG9yZXAgdDEsIFNjb3BlQ2hhaW5bY2ZyXQotCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hh
aW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxv
YWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICAg
ICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KLQotICAgICAgICBtb3ZlIHQwLCB0
MgotICAgICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCi0gICAgICAgIHN0
b3JlcCB0MywgUmV0dXJuUENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDAKLSAgICAgICAgbG9h
ZHAgQ2FsbGVlW2Nmcl0sIHQxCi0gICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJs
ZVt0MV0sIHQxCi0gICAgICAgIG1vdmUgdDIsIGNmcgotICAgICAgICBjbG9vcENhbGxOYXRpdmUg
ZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0KKyAgICAgICAgaWYgQ19MT09QCisgICAg
ICAgICAgICBjbG9vcENhbGxOYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25b
dDFdCisgICAgICAgIGVuZAogICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVy
bih0MykKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwogICAgICAgICBhbmRwIE1h
cmtlZEJsb2NrTWFzaywgdDMKQEAgLTE5NDYsMTYgKzE5OTQsMTQgQEAgbWFjcm8gbmF0aXZlQ2Fs
bFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCiAgICAgICAgIGVycm9yCiAg
ICAgZW5kCiAKLSAgICBidHFueiBWTTo6bV9leGNlcHRpb25bdDNdLCAuZXhjZXB0aW9uCisgICAg
ZnVuY3Rpb25FcGlsb2d1ZSgpCisKKyAgICBidHFueiBWTTo6bV9leGNlcHRpb25bdDNdLCAuaGFu
ZGxlRXhjZXB0aW9uCiAgICAgcmV0Ci0uZXhjZXB0aW9uOgotICAgIHByZXNlcnZlUmV0dXJuQWRk
cmVzc0FmdGVyQ2FsbCh0MSkgIyBUaGlzIGlzIHJlYWxseSBvbmx5IG5lZWRlZCBvbiBYODZfNjQK
LSAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCi0gICAgbG9hZHAg
Q29kZUJsb2NrW2Nmcl0sIFBCCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW1BCXSwgdDAKLSAg
ICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BCXSwgUEIKLSAgICBzdG9yZXAgY2Zy
LCBWTTo6dG9wQ2FsbEZyYW1lW3QwXQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdGhyb3dfZnJv
bV9uYXRpdmVfY2FsbCkKKworLmhhbmRsZUV4Y2VwdGlvbjoKKyAgICBzdG9yZXAgY2ZyLCBWTTo6
dG9wQ2FsbEZyYW1lW3QzXQorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAg
IGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogZW5kCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbHZtL2xpYnJhcnkvTExWTUV4cG9ydHMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsdm0vbGlicmFyeS9MTFZNRXhwb3J0cy5jcHAKaW5k
ZXggNmU3NGI1MGE0NzU5YWUzMWIwZTcxYjdiYThmNTYyZTFiZGMyNjc3Zi4uNDk0MGE0Yzc2MGUw
MzkwY2YzM2EyZTI5N2E2OGQ1YzM1ZDM1NzIxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsdm0vbGlicmFyeS9MTFZNRXhwb3J0cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsdm0vbGlicmFyeS9MTFZNRXhwb3J0cy5jcHAKQEAgLTQyLDYgKzQyLDEwIEBAIGV4
dGVybiAiQyIgSlNDOjpMTFZNQVBJKiBpbml0aWFsaXplQW5kR2V0SlNDTExWTUFQSSh2b2lkICgq
Y2FsbGJhY2spKGNvbnN0IGNoYXIqCiAgICAgZ19sbHZtVHJhcENhbGxiYWNrID0gY2FsbGJhY2s7
CiAgICAgCiAgICAgTExWTUluc3RhbGxGYXRhbEVycm9ySGFuZGxlcihsbHZtQ3Jhc2gpOworCisg
ICAgaWYgKCFMTFZNU3RhcnRNdWx0aXRocmVhZGVkKCkpCisgICAgICAgIGNhbGxiYWNrKCJDb3Vs
ZCBub3Qgc3RhcnQgTExWTSBtdWx0aXRocmVhZGluZyIpOworICAgIAogICAgIExMVk1MaW5rSW5N
Q0pJVCgpOwogICAgIExMVk1Jbml0aWFsaXplTmF0aXZlVGFyZ2V0KCk7CiAgICAgTExWTUluaXRp
YWxpemVYODZBc21QcmludGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hcm0ucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0u
cmIKaW5kZXggMTBiMzM5ZWI2N2I4YzA4OGFiNGE3ODdjZWQ4ZjVmYzZkMTRmMDY1Yi4uYzNkYmM1
MTBjMDg0Njc2ODJiZTI1Yzg5ZTZjNTA0NDdiOTllZWMyNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2FybS5yYgpAQCAtNjAxLDYgKzYwMSw4IEBAIGNsYXNzIEluc3RydWN0aW9u
CiAgICAgICAgICAgICAkYXNtLnB1dHMgInNtdWxsICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0s
ICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gIm1lbWZlbmNlIgogICAgICAg
ICAgICAgJGFzbS5wdXRzICJkbWIgc3kiCisgICAgICAgIHdoZW4gImNscmJwIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJiaWMgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sw
XS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgbG93ZXJEZWZhdWx0CiAgICAgICAgIGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm02NC5yYgppbmRleCBlMGEyM2ZmMzc4MWVlYzk5Yzg5MzE4MTVjODJm
YzQ1NDA5M2U4YWViLi4yMDg4MjE2YzBjYzlhYmE2ZWYwYzAxMDIzMzRmNjhjMWFjZGRiNmRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgpAQCAtNDAsMTQgKzQw
LDE0IEBAIHJlcXVpcmUgInJpc2MiCiAjICB4MSAgPT4gdDEsIGExLCByMQogIyAgeDIgID0+IHQy
LCBhMgogIyAgeDMgID0+IGEzCisjICB4NSAgPT4gdDUKKyMgIHg2ICA9PiB0NgogIyAgeDkgID0+
IChub25BcmdHUFIxIGluIGJhc2VsaW5lKQotIyB4MTAgID0+IHQ0ICh1bnVzZWQgaW4gYmFzZWxp
bmUpCi0jIHgxMSAgPT4gdDUgKHVudXNlZCBpbiBiYXNlbGluZSkKLSMgeDEyICA9PiB0NiAodW51
c2VkIGluIGJhc2VsaW5lKQogIyB4MTMgID0+IHNjcmF0Y2ggKHVudXNlZCBpbiBiYXNlbGluZSkK
ICMgeDE2ICA9PiBzY3JhdGNoCiAjIHgxNyAgPT4gc2NyYXRjaAogIyB4MjMgID0+IHQzCisjIHgy
NCAgPT4gdDQKICMgeDI3ICA9PiBjc3IxICh0YWdUeXBlTnVtYmVyKQogIyB4MjggID0+IGNzcjIg
KHRhZ01hc2spCiAjIHgyOSAgPT4gY2ZyCkBAIC0xMTMsMTEgKzExMywxMSBAQCBjbGFzcyBSZWdp
c3RlcklECiAgICAgICAgIHdoZW4gJ3QzJwogICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4MjMn
LCBraW5kKQogICAgICAgICB3aGVuICd0NCcKLSAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDEw
Jywga2luZCkKKyAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDI0Jywga2luZCkKICAgICAgICAg
d2hlbiAndDUnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gxMScsIGtpbmQpCisgICAgICAg
ICAgICBhcm02NEdQUk5hbWUoJ3g1Jywga2luZCkKICAgICAgICAgd2hlbiAndDYnCi0gICAgICAg
ICAgICBhcm02NEdQUk5hbWUoJ3gxMicsIGtpbmQpCisgICAgICAgICAgICBhcm02NEdQUk5hbWUo
J3g2Jywga2luZCkKICAgICAgICAgd2hlbiAnY2ZyJwogICAgICAgICAgICAgYXJtNjRHUFJOYW1l
KCd4MjknLCBraW5kKQogICAgICAgICB3aGVuICdjc3IxJwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9jbG9vcC5yYgppbmRleCA4NTJlODY0ZTk5YTNiODdiNWRjMWRlYjAwZGFjYzQ3
ZTU4OTJlM2Y5Li45YjkyMDQ3ZGUyMTZmN2ViNjhhMWJiMjZmMmI2YmVhOTc4N2IyMjdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgpAQCAtMSw0ICsxLDQgQEAK
LSMgQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjgsMzQgKzY4LDIyIEBAIENfTE9PUF9T
Q1JBVENIX0ZQUiA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoImQ2IikKIGNsYXNzIFJlZ2lzdGVySUQK
ICAgICBkZWYgY2xEdW1wCiAgICAgICAgIGNhc2UgbmFtZQotICAgICAgICB3aGVuICJhMCIKLSAg
ICAgICAgICAgICJhMCIKLSAgICAgICAgd2hlbiAiYTEiCi0gICAgICAgICAgICAiYTEiCi0gICAg
ICAgIHdoZW4gImEyIgotICAgICAgICAgICAgImEyIgotICAgICAgICB3aGVuICJhMyIKLSAgICAg
ICAgICAgICJhMyIKLSAgICAgICAgd2hlbiAiYTQiCi0gICAgICAgICAgICAiYTQiCi0gICAgICAg
IHdoZW4gImE1IgotICAgICAgICAgICAgImE1IgotICAgICAgICB3aGVuICJhNiIKLSAgICAgICAg
ICAgICJhNiIKLSAgICAgICAgd2hlbiAiYTYiCi0gICAgICAgICAgICAiYTYiCi0gICAgICAgIHdo
ZW4gInQwIgorICAgICAgICAjIFRoZSBjbG9vcCBpcyBtb2RlbGxlZCBvbiB0aGUgQVJNIGltcGxl
bWVudGF0aW9uLiBIZW5jZSwgdGhlIGEwLWEzCisgICAgICAgICMgcmVnaXN0ZXJzIGFyZSBhbGlh
c2VzIGZvciByMC1yMyBpLmUuIHQwLXQzIGluIG91ciBjYXNlLgorICAgICAgICB3aGVuICJ0MCIs
ICJhMCIKICAgICAgICAgICAgICJ0MCIKLSAgICAgICAgd2hlbiAidDEiCisgICAgICAgIHdoZW4g
InQxIiwgImExIgogICAgICAgICAgICAgInQxIgotICAgICAgICB3aGVuICJ0MiIKKyAgICAgICAg
d2hlbiAidDIiLCAiYTIiCiAgICAgICAgICAgICAidDIiCi0gICAgICAgIHdoZW4gInQzIgorICAg
ICAgICB3aGVuICJ0MyIsICJhMyIKICAgICAgICAgICAgICJ0MyIKICAgICAgICAgd2hlbiAidDQi
Ci0gICAgICAgICAgICAiclBDIgorICAgICAgICAgICAgInBjIgorICAgICAgICB3aGVuICJ0NSIK
KyAgICAgICAgICAgICJ0NSIKICAgICAgICAgd2hlbiAidDYiCi0gICAgICAgICAgICAickJhc2VQ
QyIKKyAgICAgICAgICAgICJwY0Jhc2UiCiAgICAgICAgIHdoZW4gImNzcjEiCiAgICAgICAgICAg
ICAidGFnVHlwZU51bWJlciIKICAgICAgICAgd2hlbiAiY3NyMiIKQEAgLTEwMyw3ICs5MSw3IEBA
IGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgd2hlbiAiY2ZyIgogICAgICAgICAgICAgImNmciIK
ICAgICAgICAgd2hlbiAibHIiCi0gICAgICAgICAgICAiclJldFZQQyIKKyAgICAgICAgICAgICJs
ciIKICAgICAgICAgd2hlbiAic3AiCiAgICAgICAgICAgICAic3AiCiAgICAgICAgIGVsc2UKQEAg
LTU1NSwxNCArNTQzLDE0IEBAIGVuZAogIyBvcGVyYW5kczogY2FsbFRhcmdldCwgY3VycmVudEZy
YW1lLCBjdXJyZW50UEMKIGRlZiBjbG9vcEVtaXRDYWxsU2xvd1BhdGgob3BlcmFuZHMpCiAgICAg
JGFzbS5wdXRjICJ7IgotICAgICRhc20ucHV0YyAiICAgIEV4ZWNTdGF0ZSogZXhlYyA9IENBU1Q8
RXhlY1N0YXRlKj4oI3tvcGVyYW5kc1sxXS5jbFZhbHVlKDp2b2lkUHRyKX0pOyIKLSAgICAkYXNt
LnB1dGMgIiAgICBJbnN0cnVjdGlvbiogcGMgPSBDQVNUPEluc3RydWN0aW9uKj4oI3tvcGVyYW5k
c1syXS5jbFZhbHVlKDp2b2lkUHRyKX0pOyIKLSAgICAkYXNtLnB1dGMgIiAgICBTbG93UGF0aFJl
dHVyblR5cGUgcmVzdWx0ID0gI3tvcGVyYW5kc1swXS5jTGFiZWx9KGV4ZWMsIHBjKTsiCi0gICAg
JGFzbS5wdXRjICIgICAgZGVjb2RlUmVzdWx0KHJlc3VsdCwgdDAuaW5zdHJ1Y3Rpb24sIHQxLnZw
KTsiCisgICAgJGFzbS5wdXRjICIgICAgU2xvd1BhdGhSZXR1cm5UeXBlIHJlc3VsdCA9ICN7b3Bl
cmFuZHNbMF0uY0xhYmVsfSgje29wZXJhbmRzWzFdLmNsRHVtcH0sICN7b3BlcmFuZHNbMl0uY2xE
dW1wfSk7IgorICAgICRhc20ucHV0YyAiICAgIGRlY29kZVJlc3VsdChyZXN1bHQsIHQwLnZwLCB0
MS52cCk7IgogICAgICRhc20ucHV0YyAifSIKIGVuZAogCiBjbGFzcyBJbnN0cnVjdGlvbgorICAg
IEBAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3VudGVyID0gMAorCiAgICAgZGVmIGxvd2VyQ19MT09Q
CiAgICAgICAgICRhc20uY29kZU9yaWdpbiBjb2RlT3JpZ2luU3RyaW5nIGlmICRlbmFibGVDb2Rl
T3JpZ2luQ29tbWVudHMKICAgICAgICAgJGFzbS5hbm5vdGF0aW9uIGFubm90YXRpb24gaWYgJGVu
YWJsZUluc3RyQW5ub3RhdGlvbnMgJiYgKG9wY29kZSAhPSAiY2xvb3BEbyIpCkBAIC04NzYsNyAr
ODY0LDggQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAiYnJlYWsiCiAgICAgICAg
ICAgICAkYXNtLnB1dGMgIkNSQVNIKCk7IC8vIGJyZWFrIGluc3RydWN0aW9uIG5vdCBpbXBsZW1l
bnRlZC4iCiAgICAgICAgIHdoZW4gInJldCIKLSAgICAgICAgICAgICRhc20ucHV0YyAiZ290byBk
b1JldHVybkhlbHBlcjsiCisgICAgICAgICAgICAkYXNtLnB1dGMgIm9wY29kZSA9IGxyLm9wY29k
ZTsiCisgICAgICAgICAgICAkYXNtLnB1dGMgIkRJU1BBVENIX09QQ09ERSgpOyIKIAogICAgICAg
ICB3aGVuICJjYmVxIgogICAgICAgICAgICAgY2xvb3BFbWl0Q29tcGFyZUFuZFNldChvcGVyYW5k
cywgOnVpbnQ4LCAiPT0iKQpAQCAtMTA5Nyw2ICsxMDg2LDEyIEBAIGNsYXNzIEluc3RydWN0aW9u
CiAgICAgICAgICAgICBjbG9vcEVtaXRPcEFuZEJyYW5jaChvcGVyYW5kcywgInwiLCA6aW50MzIs
ICIhPSAwIikKICAgICAgICAgICAgIAogICAgICAgICB3aGVuICJtZW1mZW5jZSIKKworICAgICAg
ICB3aGVuICJwdXNoIgorICAgICAgICAgICAgJGFzbS5wdXRjICJQVVNIKCN7b3BlcmFuZHNbMF0u
Y2xEdW1wfSk7IgorICAgICAgICB3aGVuICJwb3AiCisgICAgICAgICAgICAkYXNtLnB1dGMgIlBP
UCgje29wZXJhbmRzWzBdLmNsRHVtcH0pOyIKKwogICAgICAgICB3aGVuICJwdXNoQ2FsbGVlU2F2
ZXMiCiAgICAgICAgIHdoZW4gInBvcENhbGxlZVNhdmVzIgogCkBAIC0xMTEzLDggKzExMDgsMTEg
QEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgIyB1c2Ugb2YgdGhlIGNhbGwgaW5zdHJ1Y3Rp
b24uIEluc3RlYWQsIHdlIGp1c3QgaW1wbGVtZW50IEpTIGNhbGxzCiAgICAgICAgICMgYXMgYW4g
b3Bjb2RlIGRpc3BhdGNoLgogICAgICAgICB3aGVuICJjbG9vcENhbGxKU0Z1bmN0aW9uIgorICAg
ICAgICAgICAgQEBkaWRSZXR1cm5Gcm9tSlNMYWJlbENvdW50ZXIgKz0gMQorICAgICAgICAgICAg
JGFzbS5wdXRjICJsci5vcGNvZGUgPSBnZXRPcGNvZGUobGxpbnRfY2xvb3BfZGlkX3JldHVybl9m
cm9tX2pzXyN7QEBkaWRSZXR1cm5Gcm9tSlNMYWJlbENvdW50ZXJ9KTsiCiAgICAgICAgICAgICAk
YXNtLnB1dGMgIm9wY29kZSA9ICN7b3BlcmFuZHNbMF0uY2xWYWx1ZSg6b3Bjb2RlKX07IgogICAg
ICAgICAgICAgJGFzbS5wdXRjICJESVNQQVRDSF9PUENPREUoKTsiCisgICAgICAgICAgICAkYXNt
LnB1dHNMYWJlbCgibGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXyN7QEBkaWRSZXR1cm5G
cm9tSlNMYWJlbENvdW50ZXJ9IikKIAogICAgICAgICAjIFdlIGNhbid0IGRvIGdlbmVyaWMgZnVu
Y3Rpb24gY2FsbHMgd2l0aCBhbiBhcmJpdHJhcnkgc2V0IG9mIGFyZ3MsIGJ1dAogICAgICAgICAj
IGZvcnR1bmF0ZWx5IHdlIGRvbid0IGhhdmUgdG8gaGVyZS4gQWxsIG5hdGl2ZSBmdW5jdGlvbiBj
YWxscyBhbHdheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L2luc3RydWN0aW9ucy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3Ry
dWN0aW9ucy5yYgppbmRleCA1YTM0NjNmYzlhY2NhNWVjYzJlNTJjYTg1MzM0YmQ5NTc0MTkwNDQw
Li45ODllZTgyYzI3ODNhZTYxMTA4YzgxZDg0ZGVmZTFiN2U2MTVjMDNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCkBAIC0yNTgsNiAr
MjU4LDExIEBAIFg4Nl9JTlNUUlVDVElPTlMgPQogICAgICAiaWRpdmkiCiAgICAgXQogCitBUk1f
SU5TVFJVQ1RJT05TID0KKyAgICBbCisgICAgICJjbHJicCIKKyAgICBdCisKIEFSTTY0X0lOU1RS
VUNUSU9OUyA9CiAgICAgWwogICAgICAicG9wTFJBbmRGUCIsICAgIyBBUk02NCByZXF1aXJlcyBy
ZWdpc3RlcnMgdG8gYmUgcHVzaGVkIGFuZCBwb3BwZWQgaW4gcGFpcnMsCkBAIC0zMTMsNyArMzE4
LDcgQEAgQ1hYX0lOU1RSVUNUSU9OUyA9CiAgICAgICJjbG9vcERvIiwgICAgICAgICAgICAgICMg
bm8gb3BlcmFuZHMKICAgICBdCiAKLUlOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyAr
IFg4Nl9JTlNUUlVDVElPTlMgKyBBUk02NF9JTlNUUlVDVElPTlMgKyBSSVNDX0lOU1RSVUNUSU9O
UyArIE1JUFNfSU5TVFJVQ1RJT05TICsgU0g0X0lOU1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElP
TlMKK0lOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMg
KyBBUk1fSU5TVFJVQ1RJT05TICsgQVJNNjRfSU5TVFJVQ1RJT05TICsgUklTQ19JTlNUUlVDVElP
TlMgKyBNSVBTX0lOU1RSVUNUSU9OUyArIFNINF9JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJ
T05TCiAKIElOU1RSVUNUSU9OX1BBVFRFUk4gPSBSZWdleHAubmV3KCdcXEEoKCcgKyBJTlNUUlVD
VElPTlMuam9pbignKXwoJykgKyAnKSlcXFonKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS94ODYucmIKaW5kZXggZTQ3ZjI5NTYxMTUwNzY4NGQxNjRlZDRmODJlYmU5ZGZhNTY0NzI3
Ni4uYzE2MTI0MmJlNjc2YmY2ZmRiNjNmNTU0NjM5ZWRiZTE3NjkzZWMwMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgpAQCAtMTUwLDE1ICsxNTAsMTUgQEAgY2xhc3Mg
UmVnaXN0ZXJJRAogICAgICAgICB3aGVuICJ0NCIKICAgICAgICAgICAgIGNhc2Uga2luZAogICAg
ICAgICAgICAgd2hlbiA6Ynl0ZQotICAgICAgICAgICAgICAgICIlc2lsIgorICAgICAgICAgICAg
ICAgICIlZGlsIgogICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgICIlc2ki
CisgICAgICAgICAgICAgICAgIiVkaSIKICAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAg
ICAgICAgICIlZXNpIgorICAgICAgICAgICAgICAgICIlZWRpIgogICAgICAgICAgICAgd2hlbiA6
cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJzaSIgOiAiJWVzaSIKKyAgICAgICAgICAg
ICAgICBpc1g2NCA/ICIlcmRpIiA6ICIlZWRpIgogICAgICAgICAgICAgd2hlbiA6cXVhZAotICAg
ICAgICAgICAgICAgIGlzWDY0ID8gIiVyc2kiIDogcmFpc2UKKyAgICAgICAgICAgICAgICBpc1g2
NCA/ICIlcmRpIiA6IHJhaXNlCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmFp
c2UKICAgICAgICAgICAgIGVuZApAQCAtMjA2LDE1ICsyMDYsMTUgQEAgY2xhc3MgUmVnaXN0ZXJJ
RAogICAgICAgICB3aGVuICJ0NSIKICAgICAgICAgICAgIGNhc2Uga2luZAogICAgICAgICAgICAg
d2hlbiA6Ynl0ZQotICAgICAgICAgICAgICAgICIlZGlsIgorICAgICAgICAgICAgICAgICIlc2ls
IgogICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgICIlZGkiCisgICAgICAg
ICAgICAgICAgIiVzaSIKICAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgICIl
ZWRpIgorICAgICAgICAgICAgICAgICIlZXNpIgogICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAg
ICAgICAgICAgICAgaXNYNjQgPyAiJXJkaSIgOiAiJWVkaSIKKyAgICAgICAgICAgICAgICBpc1g2
NCA/ICIlcnNpIiA6ICIlZXNpIgogICAgICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAg
ICAgIGlzWDY0ID8gIiVyZGkiIDogcmFpc2UKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcnNp
IiA6IHJhaXNlCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAidDYiCiAgICAgICAgICAg
ICByYWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2lu
U3RyaW5nfSIgdW5sZXNzIGlzWDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlckVycm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ckVycm9yLmgKaW5kZXggYmFhNDQ2NWQwNzhkZTE3NjRhYThlZjI3Yjc1NTkxYThiYmJlNWFhYy4u
ZGYzOGEwNjc0MjlhZWIyYmI3NjlhNWZiODM5NjQwNGZlODhhNDU2NyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmlu
ZSBQYXJzZXJFcnJvcl9oCiAKICNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIkVycm9ySGFu
ZGxpbmdTY29wZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJQ
YXJzZXJUb2tlbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTk0LDgg
Kzk1LDEwIEBAIHN0cnVjdCBQYXJzZXJFcnJvciB7CiAgICAgICAgICAgICByZXR1cm4gYWRkRXJy
b3JJbmZvKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBjcmVhdGVTeW50YXhFcnJvcihnbG9i
YWxPYmplY3QsIG1fbWVzc2FnZSksIG1fbGluZSwgc291cmNlKTsKICAgICAgICAgY2FzZSBFdmFs
RXJyb3I6CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0
LCBtX21lc3NhZ2UpOwotICAgICAgICBjYXNlIFN0YWNrT3ZlcmZsb3c6CisgICAgICAgIGNhc2Ug
U3RhY2tPdmVyZmxvdzogeworICAgICAgICAgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2Nv
cGUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdGFja092
ZXJmbG93RXJyb3IoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgfQogICAgICAgICBjYXNlIE91dE9m
TWVtb3J5OgogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZU91dE9mTWVtb3J5RXJyb3IoZ2xvYmFs
T2JqZWN0KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwCmluZGV4IDU1NzY2Y2U1YzgwZWExOWZlMjhj
MmQ5MjY0MzQwM2Y5ODJhMTRiYTYuLjAwOGNhZjFjZDkxYWZkZDM5MzQ1ZjliOTRjOTc3NjY5NzIy
MGQ4ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
ckNvbXBpbGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJDb21waWxhdGlvbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY3LDYgKzY3LDExIEBAIHZvaWQgQ29t
cGlsYXRpb246OmFkZERlc2NyaXB0aW9uKGNvbnN0IENvbXBpbGVkQnl0ZWNvZGUmIGNvbXBpbGVk
Qnl0ZWNvZGUpCiAgICAgbV9kZXNjcmlwdGlvbnMuYXBwZW5kKGNvbXBpbGVkQnl0ZWNvZGUpOwog
fQogCit2b2lkIENvbXBpbGF0aW9uOjphZGREZXNjcmlwdGlvbihjb25zdCBPcmlnaW5TdGFjayYg
c3RhY2ssIGNvbnN0IENTdHJpbmcmIGRlc2NyaXB0aW9uKQoreworICAgIGFkZERlc2NyaXB0aW9u
KENvbXBpbGVkQnl0ZWNvZGUoc3RhY2ssIGRlc2NyaXB0aW9uKSk7Cit9CisKIEV4ZWN1dGlvbkNv
dW50ZXIqIENvbXBpbGF0aW9uOjpleGVjdXRpb25Db3VudGVyRm9yKGNvbnN0IE9yaWdpblN0YWNr
JiBvcmlnaW4pCiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4ZWN1dGlvbkNvdW50ZXI+JiBjb3Vu
dGVyID0gbV9jb3VudGVycy5hZGQob3JpZ2luLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxh
dGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRp
b24uaAppbmRleCBkYzI4MTA1MjViNzdjNjg2YzYxMTFhMzkwNDQ4M2EyZTRiMGEyMWQ1Li5kMTY3
NTdlMmFlZTNjNjExYzg4YWJiZmExM2JlZmI1NWE2MTZkNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTYzLDYgKzYzLDcgQEAgcHVibGljOgogICAgIENvbXBpbGF0aW9uS2luZCBraW5kKCkgY29u
c3QgeyByZXR1cm4gbV9raW5kOyB9CiAgICAgCiAgICAgdm9pZCBhZGREZXNjcmlwdGlvbihjb25z
dCBDb21waWxlZEJ5dGVjb2RlJik7CisgICAgdm9pZCBhZGREZXNjcmlwdGlvbihjb25zdCBPcmln
aW5TdGFjayYsIGNvbnN0IENTdHJpbmcmIGRlc2NyaXB0aW9uKTsKICAgICBFeGVjdXRpb25Db3Vu
dGVyKiBleGVjdXRpb25Db3VudGVyRm9yKGNvbnN0IE9yaWdpblN0YWNrJik7CiAgICAgdm9pZCBh
ZGRPU1JFeGl0U2l0ZShjb25zdCBWZWN0b3I8Y29uc3Qgdm9pZCo+JiBjb2RlQWRkcmVzc2VzKTsK
ICAgICBPU1JFeGl0KiBhZGRPU1JFeGl0KHVuc2lnbmVkIGlkLCBjb25zdCBPcmlnaW5TdGFjayYs
IEV4aXRLaW5kLCBib29sIGlzV2F0Y2hwb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcAppbmRleCA3
OGNlNzA1ODZkZDAxYmU1YjYzM2NlZGIyZDBjYWZhZmNhNDJjOWNlLi4zZmJlMjUxOTI1YWRiMzgz
Yjc4YmU1YTFlZDFlMmNlNDViYjg4MzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2luZC5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQyLDYgKzQy
LDEyIEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OlByb2ZpbGVy
OjpDb21waWxhdGlvbktpbmQga2luZCkKICAgICBjYXNlIEpTQzo6UHJvZmlsZXI6OkRGRzoKICAg
ICAgICAgb3V0LnByaW50KCJERkciKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQ
cm9maWxlcjo6RlRMOgorICAgICAgICBvdXQucHJpbnQoIkZUTCIpOworICAgICAgICByZXR1cm47
CisgICAgY2FzZSBKU0M6OlByb2ZpbGVyOjpGVExGb3JPU1JFbnRyeToKKyAgICAgICAgb3V0LnBy
aW50KCJGVExGb3JPU1JFbnRyeSIpOworICAgICAgICByZXR1cm47CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgQ1JBU0goKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaAppbmRleCA0ODA2
ZDM5YjkzZmIwODQ0ZmQ0MDYxNDQyMTcyODE3ZDYzODUwMjBiLi41NzVlYzI5NDdhNzYxZTRmZmNl
NWQyMmM0OWU5YWZkYzFiNDVhNzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNyArMzEsOSBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIGVudW0gQ29tcGlsYXRpb25LaW5k
IHsKICAgICBMTEludCwKICAgICBCYXNlbGluZSwKLSAgICBERkcKKyAgICBERkcsCisgICAgRlRM
LAorICAgIEZUTEZvck9TUkVudHJ5CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6UHJvZmls
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyaXR5Q2hlY2tN
b2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcml0eUNoZWNrTW9kZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYyMDkwYzA1N2ZkYWYwY2IxYTA5NGE5MmZhOTk1NjYxNDc5ZGYzZjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcml0eUNoZWNrTW9k
ZS5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBBcml0eUNoZWNrTW9kZV9oCisjZGVmaW5lIEFyaXR5Q2hlY2tN
b2RlX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gQXJpdHlDaGVja01vZGUgeworICAgIEFy
aXR5Q2hlY2tOb3RSZXF1aXJlZCwKKyAgICBNdXN0Q2hlY2tBcml0eQorfTsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBBcml0eUNoZWNrTW9kZV9oCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmluZGV4IGY2YTE0MmU2
ZDJjMDU0MjEyMTUyNDg3YjM5MTM5OGI1ODRkYTdiZjYuLjA3NTg3NWZiMjMxNmE1NTU3MDUwYTY2
OTBjZDBmOTg4MjQ4NGY1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTAgKzI5
LDEyIEBACiAjaWYgRU5BQkxFKEpJVCkgfHwgRU5BQkxFKExMSU5UKQogCiAjaW5jbHVkZSAiQXJn
dW1lbnRzLmgiCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNs
dWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVk
ZSAiQ29kZVByb2ZpbGluZy5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRoc0V4Y2VwdGlvbnMu
aCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5nU2NvcGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0
ZXIuaCIKICNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSW50ZXJw
cmV0ZXIuaCIKQEAgLTE2MSwyOCArMTYzLDQ3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBD
QUxMX0VORF9JTVBMKGNyRXhlYywgY3JDYWxsVGFyZ2V0KTsgICAgICAgICAgICAgICAgXAogICAg
IH0gd2hpbGUgKGZhbHNlKQogCitzdGF0aWMgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0
YSogc2V0dXBBcml0eUNoZWNrRGF0YShWTSYgdm0sIGludCBzbG90c1RvQWRkKQoreworICAgIENv
bW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGEqIHJlc3VsdCA9IHZtLmFyaXR5Q2hlY2tEYXRh
LmdldCgpOworICAgIHJlc3VsdC0+cGFkZGVkU3RhY2tTcGFjZSA9IHNsb3RzVG9BZGQ7CisjaWYg
RU5BQkxFKEpJVCkKKyAgICBpZiAodm0uY2FuVXNlSklUKCkpIHsKKyAgICAgICAgcmVzdWx0LT50
aHVua1RvQ2FsbCA9IHZtLmdldENUSVN0dWIoYXJpdHlGaXh1cCkuY29kZSgpLmV4ZWN1dGFibGVB
ZGRyZXNzKCk7CisgICAgICAgIHJlc3VsdC0+cmV0dXJuUEMgPSB2bS5hcml0eUNoZWNrRmFpbFJl
dHVyblRodW5rcy0+cmV0dXJuUENGb3Iodm0sIHNsb3RzVG9BZGQgKiBzdGFja0FsaWdubWVudFJl
Z2lzdGVycygpKS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgIH0gZWxzZQorI2VuZGlmCisgICAg
eworICAgICAgICByZXN1bHQtPnRodW5rVG9DYWxsID0gMDsKKyAgICAgICAgcmVzdWx0LT5yZXR1
cm5QQyA9IDA7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIFNMT1dfUEFUSF9ERUNM
KHNsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2spCiB7CiAgICAgQkVHSU4oKTsKLSAgICBpbnQgU2xv
dHNUb0FkZCA9IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJw
cmV0ZXItPnN0YWNrKCksIENvZGVGb3JDYWxsKTsKLSAgICBpZiAoU2xvdHNUb0FkZCA8IDApIHsK
KyAgICBpbnQgc2xvdHNUb0FkZCA9IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVj
LCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksIENvZGVGb3JDYWxsKTsKKyAgICBpZiAoc2xvdHNU
b0FkZCA8IDApIHsKICAgICAgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7CisgICAgICAg
IEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKGV4ZWMtPnZtKCkpOwogICAgICAgICBDb21t
b25TbG93UGF0aHM6OmludGVycHJldGVyVGhyb3dJbkNhbGxlcihleGVjLCBjcmVhdGVTdGFja092
ZXJmbG93RXJyb3IoZXhlYykpOwogICAgICAgICBSRVRVUk5fVFdPKGJpdHdpc2VfY2FzdDx2b2lk
Kj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigxKSksIGV4ZWMpOwogICAgIH0KLSAgICBSRVRVUk5f
VFdPKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8RXhlY1N0YXRlKj4oU2xvdHNUb0FkZCkpOworICAgIFJF
VFVSTl9UV08oMCwgc2V0dXBBcml0eUNoZWNrRGF0YSh2bSwgc2xvdHNUb0FkZCkpOwogfQogCiBT
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfY29uc3RydWN0X2FyaXR5Q2hlY2spCiB7CiAgICAgQkVH
SU4oKTsKLSAgICBpbnQgU2xvdHNUb0FkZCA9IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0Zv
cihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksIENvZGVGb3JDb25zdHJ1Y3QpOwotICAg
IGlmIChTbG90c1RvQWRkIDwgMCkgeworICAgIGludCBzbG90c1RvQWRkID0gQ29tbW9uU2xvd1Bh
dGhzOjphcml0eUNoZWNrRm9yKGV4ZWMsICZ2bS5pbnRlcnByZXRlci0+c3RhY2soKSwgQ29kZUZv
ckNvbnN0cnVjdCk7CisgICAgaWYgKHNsb3RzVG9BZGQgPCAwKSB7CiAgICAgICAgIGV4ZWMgPSBl
eGVjLT5jYWxsZXJGcmFtZSgpOworICAgICAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29w
ZShleGVjLT52bSgpKTsKICAgICAgICAgQ29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93
SW5DYWxsZXIoZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKICAgICAgICAg
UkVUVVJOX1RXTyhiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSkp
LCBleGVjKTsKICAgICB9Ci0gICAgUkVUVVJOX1RXTygwLCByZWludGVycHJldF9jYXN0PEV4ZWNT
dGF0ZSo+KFNsb3RzVG9BZGQpKTsKKyAgICBSRVRVUk5fVFdPKDAsIHNldHVwQXJpdHlDaGVja0Rh
dGEodm0sIHNsb3RzVG9BZGQpKTsKIH0KIAogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3RvdWNo
X2VudHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0
aHMuaAppbmRleCBjZmM4YmRiYjc2YWRkNzM3Njk5OWYxYjJmMjZhZTJiNTlmYzdhOWI3Li42OGY2
NDA4NGZhMjgxMTJmZWUwZDk0NDJkYmRlZTM4ZDUyMTE0NTcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaApAQCAtNDksNiArNDksMTIgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBDb21tb25TbG93UGF0aHMgewogCitzdHJ1Y3Qg
QXJpdHlDaGVja0RhdGEgeworICAgIHVuc2lnbmVkIHBhZGRlZFN0YWNrU3BhY2U7CisgICAgdm9p
ZCogdGh1bmtUb0NhbGw7CisgICAgdm9pZCogcmV0dXJuUEM7Cit9OworCiBBTFdBWVNfSU5MSU5F
IGludCBhcml0eUNoZWNrRm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNTdGFjayogc3RhY2ssIENvZGVT
cGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsKICAgICBKU0Z1bmN0aW9uKiBjYWxsZWUgPSBqc0Nh
c3Q8SlNGdW5jdGlvbio+KGV4ZWMtPmNhbGxlZSgpKTsKQEAgLTU4LDE4ICs2NCwxMiBAQCBBTFdB
WVNfSU5MSU5FIGludCBhcml0eUNoZWNrRm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNTdGFjayogc3Rh
Y2ssIENvZGVTcGVjaWFsaXphdAogICAgIAogICAgIEFTU0VSVChhcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyA8IG5ld0NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKTsKICAgICBpbnQgbWlzc2lu
Z0FyZ3VtZW50Q291bnQgPSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSAtIGFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzOwotICAgIGludCBwYWRkZWRNaXNzaW5nQXJndW1lbnRDb3VudCA9
IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBtaXNz
aW5nQXJndW1lbnRDb3VudCk7CisgICAgaW50IG5lZWRlZFN0YWNrU3BhY2UgPSBtaXNzaW5nQXJn
dW1lbnRDb3VudCArIDE7IC8vIEFsbG93IHNwYWNlIHRvIHNhdmUgdGhlIG9yaWdpbmFsIHJldHVy
biBQQy4KKyAgICBpbnQgcGFkZGVkU3RhY2tTcGFjZSA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVP
ZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBuZWVkZWRTdGFja1NwYWNlKTsKIAotI2lmIFVT
RShTRVBBUkFURV9DX0FORF9KU19TVEFDSykKLSAgICBpZiAoIXN0YWNrLT5ncm93KGV4ZWMtPnJl
Z2lzdGVycygpIC0gcGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291bnQpKQorICAgIGlmICghc3RhY2st
PmVuc3VyZUNhcGFjaXR5Rm9yKGV4ZWMtPnJlZ2lzdGVycygpIC0gcGFkZGVkU3RhY2tTcGFjZSkp
CiAgICAgICAgIHJldHVybiAtMTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHN0YWNrKTsKLSAg
ICBpZiAoIWV4ZWMtPnZtKCkuaXNTYWZlVG9SZWN1cnNlKHBhZGRlZE1pc3NpbmdBcmd1bWVudENv
dW50ICogc2l6ZW9mKFJlZ2lzdGVyKSkpCi0gICAgICAgIHJldHVybiAtMTsKLSNlbmRpZiAvLyBV
U0UoU0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0spCi0KLSAgICByZXR1cm4gcGFkZGVkTWlzc2luZ0Fy
Z3VtZW50Q291bnQ7CisgICAgcmV0dXJuIHBhZGRlZFN0YWNrU3BhY2UgLyBzdGFja0FsaWdubWVu
dFJlZ2lzdGVycygpOwogfQogCiBpbmxpbmUgYm9vbCBvcEluKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBwcm9wTmFtZSwgSlNWYWx1ZSBiYXNlVmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIyYzVm
ZTUyMzExOTczYjRjMmU4Y2JkNTZiNWJkNzVlZGM4MmM5NgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAKQEAgLTAs
MCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCisK
KyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9wdGlvbnMuaCIKKyNpbmNsdWRl
ICJWTS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworRXJyb3JIYW5kbGluZ1Njb3BlOjpFcnJvckhh
bmRsaW5nU2NvcGUoVk0mIHZtKQorICAgIDogbV92bSh2bSkKK3sKKyAgICBpZiAoIW1fdm0uc3Rh
Y2tQb2ludGVyQXRWTUVudHJ5KQorICAgICAgICBtX3ZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9
IHRoaXM7CisgICAgc2l6ZV90IG5ld1Jlc2VydmVkWm9uZVNpemUgPSBPcHRpb25zOjplcnJvck1v
ZGVSZXNlcnZlZFpvbmVTaXplKCk7CisgICAgbV9zYXZlZFJlc2VydmVkWm9uZVNpemUgPSBtX3Zt
LnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShuZXdSZXNlcnZlZFpvbmVTaXpl
KTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIG1fdm0uaW50ZXJwcmV0ZXItPnN0YWNr
KCkuc2V0UmVzZXJ2ZWRab25lU2l6ZShuZXdSZXNlcnZlZFpvbmVTaXplKTsKKyNlbmRpZgorfQor
CitFcnJvckhhbmRsaW5nU2NvcGU6On5FcnJvckhhbmRsaW5nU2NvcGUoKQoreworICAgIGlmICht
X3ZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9PSB0aGlzKQorICAgICAgICBtX3ZtLnN0YWNrUG9p
bnRlckF0Vk1FbnRyeSA9IG51bGxwdHI7CisgICAgbV92bS51cGRhdGVTdGFja0xpbWl0V2l0aFJl
c2VydmVkWm9uZVNpemUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOworI2lmIEVOQUJMRShMTElO
VF9DX0xPT1ApCisgICAgbV92bS5pbnRlcnByZXRlci0+c3RhY2soKS5zZXRSZXNlcnZlZFpvbmVT
aXplKG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySGFu
ZGxpbmdTY29wZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGlu
Z1Njb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDUxYjI0MWU0OGMyNTNjYTJiN2Q4MTNhMWJkMWY2YzYxOTIz
MTM4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySGFuZGxpbmdTY29wZS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBFcnJvckhhbmRsaW5nU2NvcGVfaAor
I2RlZmluZSBFcnJvckhhbmRsaW5nU2NvcGVfaAorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3Mg
Vk07CisKK2NsYXNzIEVycm9ySGFuZGxpbmdTY29wZSB7CitwdWJsaWM6CisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgRXJyb3JIYW5kbGluZ1Njb3BlKFZNJik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUg
fkVycm9ySGFuZGxpbmdTY29wZSgpOworcHJpdmF0ZToKKyAgICBWTSYgbV92bTsKKyAgICBzaXpl
X3QgbV9zYXZlZFJlc2VydmVkWm9uZVNpemU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKwor
I2VuZGlmIC8vIEVycm9ySGFuZGxpbmdTY29wZV9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKaW5kZXggOGY0NDI0OGUzODYxNTk1
NDc1ZDJjMWNhMmNhZWJmYTkwNjNmZGJkZC4uMDVlMTFlMGI4MGEzNDMwYWVhYjIyYjAyMjJhMjEy
ZjRhOGUyYzQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9j
ay5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgIkVycm9ySGFuZGxpbmdTY29w
ZS5oIgogI2luY2x1ZGUgIkVycm9ySW5zdGFuY2UuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dEZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCkBAIC0xNjAsMTQgKzE2MSwxNiBA
QCBKU09iamVjdCogdGhyb3dPdXRPZk1lbW9yeUVycm9yKEV4ZWNTdGF0ZSogZXhlYykKIAogSlNP
YmplY3QqIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBJ
bnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGUgbW9kZShleGVjKTsKLSAgICByZXR1cm4gZXhl
Yy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhl
YykpOworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVy
cm9yU2NvcGUodm0pOworICAgIHJldHVybiB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVT
dGFja092ZXJmbG93RXJyb3IoZXhlYykpOwogfQogCiBKU09iamVjdCogdGhyb3dUZXJtaW5hdGVk
RXhlY3V0aW9uRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBJbnRlcnByZXRlcjo6
RXJyb3JIYW5kbGluZ01vZGUgbW9kZShleGVjKTsKLSAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJv
d0V4Y2VwdGlvbihleGVjLCBjcmVhdGVUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKCZleGVj
LT52bSgpKSk7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBFcnJvckhhbmRsaW5nU2Nv
cGUgZXJyb3JTY29wZSh2bSk7CisgICAgcmV0dXJuIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNy
ZWF0ZVRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oJnZtKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApp
bmRleCBiYmQ2ZWQyM2UyNmZhMmNkOTc1ZDYzN2M1NGEyZWQyZTYxNWIwZjkxLi42YmM0NjRkMzdl
ZTk1N2UwODhiMWI3NzI5MTQ4ODRiN2ZiMWU3NzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkxM
SW50RW50cnlwb2ludC5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJz
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtMTE4LDEyICsx
MTksMTQgQEAgdm9pZCBTY3JpcHRFeGVjdXRhYmxlOjppbnN0YWxsQ29kZShDb2RlQmxvY2sqIGdl
bmVyaWNDb2RlQmxvY2spCiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBDb2RlRm9yQ2Fs
bDoKICAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbCA9IGdlbmVyaWNDb2RlQmxvY2stPmppdENvZGUo
KTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0gZ2VuZXJpY0NvZGVC
bG9jay0+aml0Q29kZVdpdGhBcml0eUNoZWNrKCk7CisgICAgICAgIG1faml0Q29kZUZvckNhbGxX
aXRoQXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOworICAgICAgICBtX2ppdENv
ZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIoKTsKICAgICAgICAgbV9udW1QYXJhbWV0ZXJzRm9yQ2FsbCA9IGdlbmVyaWNDb2RlQmxv
Y2stPm51bVBhcmFtZXRlcnMoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2RlRm9yQ29u
c3RydWN0OgogICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3QgPSBnZW5lcmljQ29kZUJsb2Nr
LT5qaXRDb2RlKCk7Ci0gICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNr
ID0gZ2VuZXJpY0NvZGVCbG9jay0+aml0Q29kZVdpdGhBcml0eUNoZWNrKCk7CisgICAgICAgIG1f
aml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
KCk7CisgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrQW5kUHJlc2Vy
dmVSZWdzID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgICAgIG1fbnVtUGFyYW1ldGVy
c0ZvckNvbnN0cnVjdCA9IGdlbmVyaWNDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQpAQCAtMTMzLDcgKzEzNiw2IEBAIHZvaWQgU2NyaXB0RXhlY3V0YWJs
ZTo6aW5zdGFsbENvZGUoQ29kZUJsb2NrKiBnZW5lcmljQ29kZUJsb2NrKQogICAgICAgICBQcm9n
cmFtRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGpzQ2FzdDxQcm9ncmFtRXhlY3V0YWJsZSo+KHRo
aXMpOwogICAgICAgICBQcm9ncmFtQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBzdGF0aWNfY2FzdDxQ
cm9ncmFtQ29kZUJsb2NrKj4oZ2VuZXJpY0NvZGVCbG9jayk7CiAgICAgICAgIAotICAgICAgICBB
U1NFUlQoIWNvZGVCbG9jay0+aml0Q29kZVdpdGhBcml0eUNoZWNrKCkpOwogICAgICAgICBBU1NF
UlQoa2luZCA9PSBDb2RlRm9yQ2FsbCk7CiAgICAgICAgIAogICAgICAgICBvbGRDb2RlQmxvY2sg
PSBleGVjdXRhYmxlLT5tX3Byb2dyYW1Db2RlQmxvY2s7CkBAIC0xNDUsNyArMTQ3LDYgQEAgdm9p
ZCBTY3JpcHRFeGVjdXRhYmxlOjppbnN0YWxsQ29kZShDb2RlQmxvY2sqIGdlbmVyaWNDb2RlQmxv
Y2spCiAgICAgICAgIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0ganNDYXN0PEV2YWxFeGVj
dXRhYmxlKj4odGhpcyk7CiAgICAgICAgIEV2YWxDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHN0YXRp
Y19jYXN0PEV2YWxDb2RlQmxvY2sqPihnZW5lcmljQ29kZUJsb2NrKTsKICAgICAgICAgCi0gICAg
ICAgIEFTU0VSVCghY29kZUJsb2NrLT5qaXRDb2RlV2l0aEFyaXR5Q2hlY2soKSk7CiAgICAgICAg
IEFTU0VSVChraW5kID09IENvZGVGb3JDYWxsKTsKICAgICAgICAgCiAgICAgICAgIG9sZENvZGVC
bG9jayA9IGV4ZWN1dGFibGUtPm1fZXZhbENvZGVCbG9jazsKQEAgLTYxMCw2ICs2MTEsNDYgQEAg
U3RyaW5nIEZ1bmN0aW9uRXhlY3V0YWJsZTo6cGFyYW1TdHJpbmcoKSBjb25zdAogICAgIHJldHVy
biBtX3VubGlua2VkRXhlY3V0YWJsZS0+cGFyYW1TdHJpbmcoKTsKIH0KIAordm9pZCBFeGVjdXRh
YmxlQmFzZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIEV4ZWN1dGFibGVC
YXNlKiByZWFsVGhpcyA9IGNvbnN0X2Nhc3Q8RXhlY3V0YWJsZUJhc2UqPih0aGlzKTsKKyAgICAK
KyAgICBpZiAoY2xhc3NJbmZvKCkgPT0gTmF0aXZlRXhlY3V0YWJsZTo6aW5mbygpKSB7CisgICAg
ICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZSA9IGpzQ2FzdDxOYXRpdmVFeGVjdXRhYmxlKj4o
cmVhbFRoaXMpOworICAgICAgICBvdXQucHJpbnQoIk5hdGl2ZUV4ZWN1dGFibGU6IiwgUmF3UG9p
bnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KG5hdGl2ZS0+ZnVuY3Rpb24oKSkpLCAiLyIsIFJhd1Bv
aW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihuYXRpdmUtPmNvbnN0cnVjdG9yKCkpKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKGNsYXNzSW5mbygpID09IEV2YWxFeGVj
dXRhYmxlOjppbmZvKCkpIHsKKyAgICAgICAgRXZhbEV4ZWN1dGFibGUqIGV2YWwgPSBqc0Nhc3Q8
RXZhbEV4ZWN1dGFibGUqPihyZWFsVGhpcyk7CisgICAgICAgIGlmIChDb2RlQmxvY2sqIGNvZGVC
bG9jayA9IGV2YWwtPmNvZGVCbG9jaygpKQorICAgICAgICAgICAgb3V0LnByaW50KCpjb2RlQmxv
Y2spOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXQucHJpbnQoIkV2YWxFeGVjdXRhYmxl
IHcvbyBDb2RlQmxvY2siKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBpZiAo
Y2xhc3NJbmZvKCkgPT0gUHJvZ3JhbUV4ZWN1dGFibGU6OmluZm8oKSkgeworICAgICAgICBQcm9n
cmFtRXhlY3V0YWJsZSogZXZhbCA9IGpzQ2FzdDxQcm9ncmFtRXhlY3V0YWJsZSo+KHJlYWxUaGlz
KTsKKyAgICAgICAgaWYgKENvZGVCbG9jayogY29kZUJsb2NrID0gZXZhbC0+Y29kZUJsb2NrKCkp
CisgICAgICAgICAgICBvdXQucHJpbnQoKmNvZGVCbG9jayk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG91dC5wcmludCgiUHJvZ3JhbUV4ZWN1dGFibGUgdy9vIENvZGVCbG9jayIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rp
b24gPSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4ocmVhbFRoaXMpOworICAgIGlmICghZnVu
Y3Rpb24tPmVpdGhlckNvZGVCbG9jaygpKQorICAgICAgICBvdXQucHJpbnQoIkZ1bmN0aW9uRXhl
Y3V0YWJsZSB3L28gQ29kZUJsb2NrIik7CisgICAgZWxzZSB7CisgICAgICAgIENvbW1hUHJpbnRl
ciBjb21tYSgiLyIpOworICAgICAgICBpZiAoZnVuY3Rpb24tPmNvZGVCbG9ja0ZvckNhbGwoKSkK
KyAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgKmZ1bmN0aW9uLT5jb2RlQmxvY2tGb3JDYWxs
KCkpOworICAgICAgICBpZiAoZnVuY3Rpb24tPmNvZGVCbG9ja0ZvckNvbnN0cnVjdCgpKQorICAg
ICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAqZnVuY3Rpb24tPmNvZGVCbG9ja0ZvckNvbnN0cnVj
dCgpKTsKKyAgICB9Cit9CisKIENvZGVCbG9ja0hhc2ggRXhlY3V0YWJsZUJhc2U6Omhhc2hGb3Io
Q29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKSBjb25zdAogewogICAgIGlmICh0aGlzLT5jbGFz
c0luZm8oKSA9PSBOYXRpdmVFeGVjdXRhYmxlOjppbmZvKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXggNmZmMjdhZWU5ZmMzYjgyNjhhZTZiOTc2YTll
ZGQ4NmMzZjkwMjU1Yy4uMTk4OTc2YmIzZmU2ZTZlOTExNzk4MTJkMWNhZjliOGJmOWJmZDBiYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaApAQCAtMjYsNiAr
MjYsNyBAQAogI2lmbmRlZiBFeGVjdXRhYmxlX2gKICNkZWZpbmUgRXhlY3V0YWJsZV9oCiAKKyNp
bmNsdWRlICJBcml0eUNoZWNrTW9kZS5oIgogI2luY2x1ZGUgIkNhbGxEYXRhLmgiCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrSGFzaC5oIgogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIK
QEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpJ
VENvZGUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIlJlZ2lzdGVy
UHJlc2VydmF0aW9uTW9kZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogI2luY2x1ZGUg
IlNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgpAQCAtMTQ0LDM3
ICsxNDYsOTQgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3Ry
dWN0KTsKICAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3QoKTsKICAg
ICB9Ci0KLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZ2VuZXJhdGVkSklUQ29kZUZvckNhbGxX
aXRoQXJpdHlDaGVjaygpCi0gICAgewotICAgICAgICBBU1NFUlQobV9qaXRDb2RlRm9yQ2FsbCk7
Ci0gICAgICAgIEFTU0VSVChtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2spOwotICAgICAg
ICByZXR1cm4gbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrOwotICAgIH0KLQotICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBnZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5
Q2hlY2soKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1faml0Q29kZUZvckNvbnN0cnVjdCk7Ci0g
ICAgICAgIEFTU0VSVChtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayk7Ci0gICAg
ICAgIHJldHVybiBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjazsKLSAgICB9Ci0g
ICAgICAgIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBnZW5lcmF0ZWRKSVRDb2RlV2l0aEFy
aXR5Q2hlY2tGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQotICAgIHsKLSAgICAgICAg
aWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCi0gICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGVkSklU
Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjaygpOwotICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2Rl
Rm9yQ29uc3RydWN0KTsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1
Y3RXaXRoQXJpdHlDaGVjaygpOwotICAgIH0KLSAgICAgICAgCi0gICAgc3RhdGljIHB0cmRpZmZf
dCBvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQpCi0gICAgewotICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKLSAgICAgICAg
ICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNh
bGxXaXRoQXJpdHlDaGVjayk7Ci0gICAgICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1
Y3QpOwotICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2pp
dENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayk7CisgICAgCisgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGVudHJ5cG9pbnRGb3IoCisgICAgICAgIFZNJiB2bSwgQ29kZVNwZWNpYWxpemF0
aW9uS2luZCBraW5kLCBBcml0eUNoZWNrTW9kZSBhcml0eSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25N
b2RlIHJlZ2lzdGVycykKKyAgICB7CisgICAgICAgIC8vIENoZWNrIGlmIHdlIGhhdmUgYSBjYWNo
ZWQgcmVzdWx0LiBXZSBvbmx5IGhhdmUgaXQgZm9yIGFyaXR5IGNoZWNrIGJlY2F1c2Ugd2UgdXNl
IHRoZQorICAgICAgICAvLyBuby1hcml0eSBlbnRyeXBvaW50IGluIG5vbi12aXJ0dWFsIGNhbGxz
LCB3aGljaCB3aWxsICJjYWNoZSIgdGhpcyB2YWx1ZSBkaXJlY3RseSBpbgorICAgICAgICAvLyBt
YWNoaW5lIGNvZGUuCisgICAgICAgIGlmIChhcml0eSA9PSBNdXN0Q2hlY2tBcml0eSkgeworICAg
ICAgICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAgICAgICBjYXNlIENvZGVGb3JDYWxsOgor
ICAgICAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAgICAgICAgY2Fz
ZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAgICAgICBp
ZiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJlc3VsdCA9IG1faml0Q29kZUZvckNhbGxXaXRoQXJp
dHlDaGVjaykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVn
aXN0ZXJzOgorICAgICAgICAgICAgICAgICAgICBpZiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJl
c3VsdCA9IG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncykKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJl
Z2lzdGVycykgeworICAgICAgICAgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RS
ZXF1aXJlZDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBy
ZXN1bHQgPSBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjaykKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAg
ICAgICAgICBpZiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJlc3VsdCA9IG1faml0Q29kZUZvckNv
bnN0cnVjdFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQgPQorICAgICAgICAgICAg
Z2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS0+YWRkcmVzc0ZvckNhbGwodm0sIHRoaXMsIGFyaXR5
LCByZWdpc3RlcnMpOworICAgICAgICBpZiAoYXJpdHkgPT0gTXVzdENoZWNrQXJpdHkpIHsKKyAg
ICAgICAgICAgIC8vIENhY2hlIHRoZSByZXN1bHQ7IHRoaXMgaXMgbmVjZXNzYXJ5IGZvciB0aGUg
SklUJ3MgdmlydHVhbCBjYWxsIG9wdGltaXphdGlvbnMuCisgICAgICAgICAgICBzd2l0Y2ggKGtp
bmQpIHsKKyAgICAgICAgICAgIGNhc2UgQ29kZUZvckNhbGw6CisgICAgICAgICAgICAgICAgc3dp
dGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRo
QXJpdHlDaGVjayA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICAgICAgICAg
IG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncyA9IHJlc3VsdDsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0OgorICAgICAg
ICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAgICAgICAgY2FzZSBSZWdp
c3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAgICAgICBtX2ppdENv
ZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6Cisg
ICAgICAgICAgICAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrQW5k
UHJlc2VydmVSZWdzID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBzdGF0aWMgcHRyZGlm
Zl90IG9mZnNldE9mSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKAorICAgICAgICBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICAgICAgY2FzZSBDb2RlRm9yQ2FsbDoK
KyAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAgICBjYXNlIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNr
KTsKKyAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAg
ICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNh
bGxXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncyk7CisgICAgICAgICAgICB9CisgICAgICAg
IGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7
CisgICAgICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwgbV9qaXRD
b2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spOworICAgICAgICAgICAgY2FzZSBNdXN0UHJl
c2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihF
eGVjdXRhYmxlQmFzZSwgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2tBbmRQcmVz
ZXJ2ZVJlZ3MpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICAgICAgCisg
ICAgCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk51bVBhcmFtZXRlcnNGb3IoQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCBraW5kKQogICAgIHsKICAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZv
ckNhbGwpCkBAIC0yMTAsMjIgKzI2OSw5IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBp
bnRyaW5zaWMoKTsKICAgICAgICAgcmV0dXJuIE5vSW50cmluc2ljOwogICAgIH0KKyAgICAKKyAg
ICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAgICAgCi0gICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGhvc3RDb2RlRW50cnlGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVGb3Ioa2luZCktPmFkZHJl
c3NGb3JDYWxsKCk7Ci0gICAgfQotCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGpzQ29kZUVu
dHJ5Rm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBnZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2FsbCgpOwotICAgIH0KLQot
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBqc0NvZGVXaXRoQXJpdHlDaGVja0VudHJ5Rm9yKENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0
ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCk7Ci0gICAgfQotCiBwcm90ZWN0ZWQ6CiAg
ICAgRXhlY3V0YWJsZUJhc2UqIG1fcHJldjsKICAgICBFeGVjdXRhYmxlQmFzZSogbV9uZXh0OwpA
QCAtMjM0LDYgKzI4MCw4IEBAIHByb3RlY3RlZDoKICAgICBSZWZQdHI8SklUQ29kZT4gbV9qaXRD
b2RlRm9yQ29uc3RydWN0OwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVGb3JD
YWxsV2l0aEFyaXR5Q2hlY2s7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1faml0Q29kZUZv
ckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2pp
dENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3M7CisgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrQW5kUHJlc2Vy
dmVSZWdzOwogfTsKIAogY2xhc3MgTmF0aXZlRXhlY3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYmxl
QmFzZSB7CkBAIC0yNDIsMTQgKzI5MCwxMSBAQCBjbGFzcyBOYXRpdmVFeGVjdXRhYmxlIDogcHVi
bGljIEV4ZWN1dGFibGVCYXNlIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEV4ZWN1dGFibGVCYXNl
IEJhc2U7CiAKLSAgICBzdGF0aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKFZNJiB2bSwgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIGNhbGxUaHVuaywgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBjb25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24gY29uc3Ry
dWN0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCisgICAgc3RhdGljIE5hdGl2ZUV4ZWN1dGFibGUq
IGNyZWF0ZShWTSYgdm0sIFBhc3NSZWZQdHI8SklUQ29kZT4gY2FsbFRodW5rLCBOYXRpdmVGdW5j
dGlvbiBmdW5jdGlvbiwgUGFzc1JlZlB0cjxKSVRDb2RlPiBjb25zdHJ1Y3RUaHVuaywgTmF0aXZl
RnVuY3Rpb24gY29uc3RydWN0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgewogICAgICAg
ICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlOwogICAgICAgICBleGVjdXRhYmxlID0gbmV3
IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4odm0uaGVhcCkpIE5hdGl2
ZUV4ZWN1dGFibGUodm0sIGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7Ci0gICAgICAgIGlmICghY2Fs
bFRodW5rKQotICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24odm0sIDAsIDAs
IGludHJpbnNpYyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlz
aENyZWF0aW9uKHZtLCBKSVRDb2RlOjpob3N0RnVuY3Rpb24oY2FsbFRodW5rKSwgSklUQ29kZTo6
aG9zdEZ1bmN0aW9uKGNvbnN0cnVjdFRodW5rKSwgaW50cmluc2ljKTsKKyAgICAgICAgZXhlY3V0
YWJsZS0+ZmluaXNoQ3JlYXRpb24odm0sIGNhbGxUaHVuaywgY29uc3RydWN0VGh1bmssIGludHJp
bnNpYyk7CiAgICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgIH0KIApAQCAtMjg4LDggKzMz
Myw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSwgUGFzc1Jl
ZlB0cjxKSVRDb2RlPiBjYWxsVGh1bmssIFBhc3NSZWZQdHI8SklUQ29kZT4gY29uc3RydWN0VGh1
bmssIEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgewogICAgICAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7Ci0gICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayA9IGNhbGxU
aHVuayA/IGNhbGxUaHVuay0+YWRkcmVzc0ZvckNhbGwoKSA6IE1hY3JvQXNzZW1ibGVyQ29kZVB0
cigpOwotICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IGNvbnN0
cnVjdFRodW5rID8gY29uc3RydWN0VGh1bmstPmFkZHJlc3NGb3JDYWxsKCkgOiBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIoKTsKICAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbCA9IGNhbGxUaHVuazsKICAg
ICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gY29uc3RydWN0VGh1bms7CiAgICAgICAgIG1f
aW50cmluc2ljID0gaW50cmluc2ljOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCmluZGV4IDg1YWMzMmJkZGZmZGE2ZjU1NThhODBjZTFjMGRiYmE2ZTFkNTIzYzAu
LjkxOGRlMTRkNTI4MzU0NTVjZGM2N2FlNzlmMTdjODM4ZGNiYWMwMzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKQEAgLTk3LDYgKzk3LDkgQEAgdW5pb24g
RW5jb2RlZFZhbHVlRGVzY3JpcHRvciB7CiAjZW5kaWYKIH07CiAKKyNkZWZpbmUgVGFnT2Zmc2V0
IChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpCisj
ZGVmaW5lIFBheWxvYWRPZmZzZXQgKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlw
dG9yLCBhc0JpdHMucGF5bG9hZCkpCisKIGVudW0gV2hpY2hWYWx1ZVdvcmQgewogICAgIFRhZ1dv
cmQsCiAgICAgUGF5bG9hZFdvcmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2su
Y3BwCmluZGV4IDc2MDQwNzVmOGI5ZjM5NGZhYzRhZmIyZGNhZDgzZmU3NzBiOWZhNzEuLjg0MTVh
ZDVlYzVkODJlYWJiN2YxYTIzY2NjNGUyYzdlYTQ3NDRjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNMb2NrLmNwcApAQCAtMjkwLDYgKzI5MCwxMCBAQCBKU0xvY2s6OkRyb3BB
bGxMb2Nrczo6RHJvcEFsbExvY2tzKEV4ZWNTdGF0ZSogZXhlYywgQWx3YXlzRHJvcExvY2tzVGFn
IGFsd2F5c0RybwogI2lmIFBMQVRGT1JNKElPUykKICAgICBTcGluTG9ja0hvbGRlciBob2xkZXIo
JnNwaW5Mb2NrKTsKICNlbmRpZgorICAgIG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplID0gbV92bS0+
cmVzZXJ2ZWRab25lU2l6ZSgpOworICAgIG1fc2F2ZWRTdGFja1BvaW50ZXJBdFZNRW50cnkgPSBt
X3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnk7CisgICAgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVu
dHJ5ID0gbnVsbHB0cjsKKwogICAgIGlmIChhbHdheXNEcm9wTG9ja3MpCiAgICAgICAgIG1fbG9j
a0NvdW50ID0gbV92bS0+YXBpTG9jaygpLmRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseShzcGlu
TG9jayk7CiAgICAgZWxzZQpAQCAtMzA2LDYgKzMxMCwxMCBAQCBKU0xvY2s6OkRyb3BBbGxMb2Nr
czo6RHJvcEFsbExvY2tzKFZNKiB2bSwgQWx3YXlzRHJvcExvY2tzVGFnIGFsd2F5c0Ryb3BMb2Nr
cykKICNpZiBQTEFURk9STShJT1MpCiAgICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZzcGluTG9j
ayk7CiAjZW5kaWYKKyAgICBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fdm0tPnJlc2VydmVk
Wm9uZVNpemUoKTsKKyAgICBtX3NhdmVkU3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbV92bS0+c3Rh
Y2tQb2ludGVyQXRWTUVudHJ5OworICAgIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG51
bGxwdHI7CisKICAgICBpZiAoYWx3YXlzRHJvcExvY2tzKQogICAgICAgICBtX2xvY2tDb3VudCA9
IG1fdm0tPmFwaUxvY2soKS5kcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoc3BpbkxvY2spOwog
ICAgIGVsc2UKQEAgLTMyMSw2ICszMjksOSBAQCBKU0xvY2s6OkRyb3BBbGxMb2Nrczo6fkRyb3BB
bGxMb2NrcygpCiAgICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZzcGluTG9jayk7CiAjZW5kaWYK
ICAgICBtX3ZtLT5hcGlMb2NrKCkuZ3JhYkFsbExvY2tzKG1fbG9ja0NvdW50LCBzcGluTG9jayk7
CisKKyAgICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBtX3NhdmVkU3RhY2tQb2ludGVy
QXRWTUVudHJ5OworICAgIG1fdm0tPnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6
ZShtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAppbmRleCAzMDAyYWRkNjQ3YTI1MDBkODU1
ZGFiMGFkZmM5NzczZWM4NzJkZmZlLi4wZGFjZGYwYmM5ZjgxYWE1YzY3M2NlZDlkZjJjZDlhZTlk
ZTE2MjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2su
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaApAQCAtOTUsMTAg
Kzk1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9v
bCBjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpOwogCi0gICAgICAgIHVuc2lnbmVkIGRyb3BB
bGxMb2NrcyhTcGluTG9jayYpOwotICAgICAgICB1bnNpZ25lZCBkcm9wQWxsTG9ja3NVbmNvbmRp
dGlvbmFsbHkoU3BpbkxvY2smKTsKLSAgICAgICAgdm9pZCBncmFiQWxsTG9ja3ModW5zaWduZWQg
bG9ja0NvdW50LCBTcGluTG9jayYpOwotCiAgICAgICAgIHZvaWQgd2lsbERlc3Ryb3lWTShWTSop
OwogCiAgICAgICAgIGNsYXNzIERyb3BBbGxMb2NrcyB7CkBAIC0xMTQsOSArMTEwLDE1IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBwcml2YXRlOgogICAgICAgICAgICAgaW50cHRyX3QgbV9s
b2NrQ291bnQ7CiAgICAgICAgICAgICBSZWZQdHI8Vk0+IG1fdm07CisgICAgICAgICAgICBzaXpl
X3QgbV9zYXZlZFJlc2VydmVkWm9uZVNpemU7CisgICAgICAgICAgICB2b2lkKiBtX3NhdmVkU3Rh
Y2tQb2ludGVyQXRWTUVudHJ5OwogICAgICAgICB9OwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAg
dW5zaWduZWQgZHJvcEFsbExvY2tzKFNwaW5Mb2NrJik7CisgICAgICAgIHVuc2lnbmVkIGRyb3BB
bGxMb2Nrc1VuY29uZGl0aW9uYWxseShTcGluTG9jayYpOworICAgICAgICB2b2lkIGdyYWJBbGxM
b2Nrcyh1bnNpZ25lZCBsb2NrQ291bnQsIFNwaW5Mb2NrJik7CisKICAgICAgICAgU3BpbkxvY2sg
bV9zcGluTG9jazsKICAgICAgICAgTXV0ZXggbV9sb2NrOwogICAgICAgICBUaHJlYWRJZGVudGlm
aWVyIG1fb3duZXJUaHJlYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuY3BwCmluZGV4IDk4MjYyODkxNzFiOGQ0MGZjZjhhYzQ1MDVmYmFiNjc3ZGQ1YWUxZmIu
LjBkM2Q3ZTNlMGFjZTkyZDE3YjdkODFmYWUxYjliYjJhYmU5OGFlYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC02NTQsNyArNjU0LDcgQEAg
TkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAg
ICAgICAgICAgICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKICAgICAgICAgICAgICAg
ICBBU1NFUlQoaXNKU0FycmF5KGFzT2JqZWN0KGluVmFsdWUpKSB8fCBhc09iamVjdChpblZhbHVl
KS0+aW5oZXJpdHMoSlNBcnJheTo6aW5mbygpKSk7CiAgICAgICAgICAgICAgICAgaWYgKG9iamVj
dFN0YWNrLnNpemUoKSArIGFycmF5U3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lv
bikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlv
bihtX2V4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpKTsKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYyk7CiAKICAgICAg
ICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkoaW5WYWx1ZSk7CiAgICAgICAgICAg
ICAgICAgYXJyYXlTdGFjay5wdXNoKGFycmF5KTsKQEAgLTcwNSw3ICs3MDUsNyBAQCBORVZFUl9J
TkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgICAgICAg
ICAgICAgIEFTU0VSVChpblZhbHVlLmlzT2JqZWN0KCkpOwogICAgICAgICAgICAgICAgIEFTU0VS
VCghaXNKU0FycmF5KGFzT2JqZWN0KGluVmFsdWUpKSAmJiAhYXNPYmplY3QoaW5WYWx1ZSktPmlu
aGVyaXRzKEpTQXJyYXk6OmluZm8oKSkpOwogICAgICAgICAgICAgICAgIGlmIChvYmplY3RTdGFj
ay5zaXplKCkgKyBhcnJheVN0YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24pCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2V4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24obV9l
eGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IobV9leGVjKSk7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpOwogCiAgICAgICAgICAg
ICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGluVmFsdWUpOwogICAgICAgICAgICAg
ICAgIG9iamVjdFN0YWNrLnB1c2gob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5jcHAKaW5kZXggYWE4Y2NjNzUxNzU2ZDU2ZjM2N2NiZmNiYjZjMzFiNmVkMGRi
ZGNjMi4uOTI2M2YyODJkZmI2NmU2NWQyNTBkMDMxMzI3YTE2NTUwOTY2YmMxZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+
CisjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5o
PgogI2luY2x1ZGUgPHd0Zi9QYWdlQmxvY2suaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CkBAIC0xNzUsNiArMTc2LDQ1IEBAIGNvbnN0IE9wdGlvbnM6OkVudHJ5SW5mbyBPcHRpb25z
OjpzX29wdGlvbnNJbmZvW09wdGlvbnM6Om51bWJlck9mT3B0aW9uc10gPSB7CiAjdW5kZWYgRk9S
X0VBQ0hfT1BUSU9OCiB9OwogCitzdGF0aWMgdm9pZCByZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25z
KCkKK3sKKyNpZiAhRU5BQkxFKEpJVCkKKyAgICBPcHRpb25zOjp1c2VKSVQoKSA9IGZhbHNlOwor
ICAgIE9wdGlvbnM6OnVzZURGR0pJVCgpID0gZmFsc2U7CisjZW5kaWYKKyNpZiAhRU5BQkxFKFlB
UlJfSklUKQorICAgIE9wdGlvbnM6OnVzZVJlZ0V4cEpJVCgpID0gZmFsc2U7CisjZW5kaWYKKyAg
ICAKKyAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5KCkKKyAgICAgICAgfHwgT3B0aW9u
czo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkKKyAgICAgICAgfHwgT3B0aW9uczo6ZHVtcEJ5dGVjb2Rl
QXRERkdUaW1lKCkKKyAgICAgICAgfHwgT3B0aW9uczo6ZHVtcEdyYXBoQXRFYWNoUGhhc2UoKQor
ICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKQorICAgICAgICB8fCBPcHRp
b25zOjpsb2dDb21waWxhdGlvbkNoYW5nZXMoKQorICAgICAgICB8fCBPcHRpb25zOjp2YWxpZGF0
ZUdyYXBoKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRhdGVHcmFwaEF0RWFjaFBoYXNlKCkK
KyAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpCisgICAgICAgIHx8IE9wdGlvbnM6OnZl
cmJvc2VDb21waWxhdGlvblF1ZXVlKCkKKyAgICAgICAgfHwgT3B0aW9uczo6cmVwb3J0Q29tcGls
ZVRpbWVzKCkKKyAgICAgICAgfHwgT3B0aW9uczo6cmVwb3J0RlRMQ29tcGlsZVRpbWVzKCkKKyAg
ICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNGQSgpCisgICAgICAgIHx8IE9wdGlvbnM6OnZlcmJv
c2VGVExGYWlsdXJlKCkpCisgICAgICAgIE9wdGlvbnM6OmFsd2F5c0NvbXB1dGVIYXNoKCkgPSB0
cnVlOworICAgIAorICAgIC8vIENvbXB1dGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdGhlIHJlb3B0
aW1pemF0aW9uIHJldHJ5IGNvdW50ZXIuIFRoaXMgaXMgc2ltcGx5CisgICAgLy8gdGhlIGxhcmdl
c3QgdmFsdWUgYXQgd2hpY2ggd2UgZG9uJ3Qgb3ZlcmZsb3cgdGhlIGV4ZWN1dGUgY291bnRlciwg
d2hlbiB1c2luZyBpdAorICAgIC8vIHRvIGxlZnQtc2hpZnQgdGhlIGV4ZWN1dGlvbiBjb3VudGVy
IGJ5IHRoaXMgYW1vdW50LiBDdXJyZW50bHkgdGhlIHZhbHVlIGVuZHMKKyAgICAvLyB1cCBiZWlu
ZyAxOCwgc28gdGhpcyBsb29wIGlzIG5vdCBzbyB0ZXJyaWJsZTsgaXQgcHJvYmFibHkgdGFrZXMg
dXAgfjEwMCBjeWNsZXMKKyAgICAvLyB0b3RhbCBvbiBhIDMyLWJpdCBwcm9jZXNzb3IuCisgICAg
T3B0aW9uczo6cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSA9IDA7CisgICAgd2hpbGUg
KChzdGF0aWNfY2FzdDxpbnQ2NF90PihPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVy
TG9uZ1dhcm1VcCgpKSA8PCAoT3B0aW9uczo6cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgo
KSArIDEpKSA8PSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMy
X3Q+OjptYXgoKSkpCisgICAgICAgIE9wdGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVy
TWF4KCkrKzsKKworICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8aW50NjRfdD4oT3B0aW9uczo6dGhy
ZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgT3B0aW9uczo6cmVvcHRpbWl6
YXRpb25SZXRyeUNvdW50ZXJNYXgoKSkgPiAwKTsKKyAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGlu
dDY0X3Q+KE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8
IE9wdGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkpIDw9IHN0YXRpY19jYXN0
PGludDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSk7Cit9CisKIHZv
aWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgLy8gSW5pdGlhbGl6ZSBlYWNoIG9mIHRo
ZSBvcHRpb25zIHdpdGggdGhlaXIgZGVmYXVsdCB2YWx1ZXM6CkBAIC0yMDQsMzAgKzI0NCwxMiBA
QCB2b2lkIE9wdGlvbnM6OmluaXRpYWxpemUoKQogICAgIDsgLy8gRGVjb25mdXNlIGVkaXRvcnMg
dGhhdCBkbyBhdXRvIGluZGVudGF0aW9uCiAjZW5kaWYKICAgICAKLSNpZiAhRU5BQkxFKEpJVCkK
LSAgICB1c2VKSVQoKSA9IGZhbHNlOwotICAgIHVzZURGR0pJVCgpID0gZmFsc2U7Ci0jZW5kaWYK
LSNpZiAhRU5BQkxFKFlBUlJfSklUKQotICAgIHVzZVJlZ0V4cEpJVCgpID0gZmFsc2U7Ci0jZW5k
aWYKKyAgICByZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKCk7CiAKICAgICAvLyBEbyByYW5nZSBj
aGVja3Mgd2hlcmUgbmVlZGVkIGFuZCBtYWtlIGNvcnJlY3Rpb25zIHRvIHRoZSBvcHRpb25zOgot
ICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpID49IHRocmVz
aG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSk7Ci0gICAgQVNTRVJUKHRocmVzaG9sZEZvck9w
dGltaXplQWZ0ZXJXYXJtVXAoKSA+PSB0aHJlc2hvbGRGb3JPcHRpbWl6ZVNvb24oKSk7Ci0gICAg
QVNTRVJUKHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSA+PSAwKTsKLQotICAgIC8v
IENvbXB1dGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdGhlIHJlb3B0aW1pemF0aW9uIHJldHJ5IGNv
dW50ZXIuIFRoaXMgaXMgc2ltcGx5Ci0gICAgLy8gdGhlIGxhcmdlc3QgdmFsdWUgYXQgd2hpY2gg
d2UgZG9uJ3Qgb3ZlcmZsb3cgdGhlIGV4ZWN1dGUgY291bnRlciwgd2hlbiB1c2luZyBpdAotICAg
IC8vIHRvIGxlZnQtc2hpZnQgdGhlIGV4ZWN1dGlvbiBjb3VudGVyIGJ5IHRoaXMgYW1vdW50LiBD
dXJyZW50bHkgdGhlIHZhbHVlIGVuZHMKLSAgICAvLyB1cCBiZWluZyAxOCwgc28gdGhpcyBsb29w
IGlzIG5vdCBzbyB0ZXJyaWJsZTsgaXQgcHJvYmFibHkgdGFrZXMgdXAgfjEwMCBjeWNsZXMKLSAg
ICAvLyB0b3RhbCBvbiBhIDMyLWJpdCBwcm9jZXNzb3IuCi0gICAgcmVvcHRpbWl6YXRpb25SZXRy
eUNvdW50ZXJNYXgoKSA9IDA7Ci0gICAgd2hpbGUgKChzdGF0aWNfY2FzdDxpbnQ2NF90Pih0aHJl
c2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCAocmVvcHRpbWl6YXRpb25SZXRy
eUNvdW50ZXJNYXgoKSArIDEpKSA8PSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6Om51bWVyaWNf
bGltaXRzPGludDMyPjo6bWF4KCkpKQotICAgICAgICByZW9wdGltaXphdGlvblJldHJ5Q291bnRl
ck1heCgpKys7Ci0KLSAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGludDY0X3Q+KHRocmVzaG9sZEZv
ck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IHJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVy
TWF4KCkpID4gMCk7Ci0gICAgQVNTRVJUKChzdGF0aWNfY2FzdDxpbnQ2NF90Pih0aHJlc2hvbGRG
b3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCByZW9wdGltaXphdGlvblJldHJ5Q291bnRl
ck1heCgpKSA8PSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMy
Pjo6bWF4KCkpKTsKKyAgICBBU1NFUlQoT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRl
ckxvbmdXYXJtVXAoKSA+PSBPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVw
KCkpOworICAgIEFTU0VSVChPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVw
KCkgPj0gT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVTb29uKCkpOworICAgIEFTU0VSVChP
cHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkgPj0gMCk7CiB9CiAKIC8v
IFBhcnNlcyBhIHNpbmdsZSBjb21tYW5kIGxpbmUgb3B0aW9uIGluIHRoZSBmb3JtYXQgIjxvcHRp
b25OYW1lPj08dmFsdWU+IgpAQCAtMjUxLDYgKzI3Myw3IEBAIGJvb2wgT3B0aW9uczo6c2V0T3B0
aW9uKGNvbnN0IGNoYXIqIGFyZykKICAgICAgICAgYm9vbCBzdWNjZXNzID0gcGFyc2UodmFsdWVT
dHIsIHZhbHVlKTsgICAgICAgICAgXAogICAgICAgICBpZiAoc3VjY2VzcykgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBuYW1lXygpID0gdmFsdWU7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJlY29tcHV0ZURlcGVuZGVu
dE9wdGlvbnMoKTsgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIH0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgcmV0dXJuIGZhbHNlOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMjU5LDcgKzI4Miw3IEBAIGJv
b2wgT3B0aW9uczo6c2V0T3B0aW9uKGNvbnN0IGNoYXIqIGFyZykKICAgICBKU0NfT1BUSU9OUyhG
T1JfRUFDSF9PUFRJT04pCiAjdW5kZWYgRk9SX0VBQ0hfT1BUSU9OCiAKLSAgICAgICAgcmV0dXJu
IGZhbHNlOyAvLyBObyBvcHRpb24gbWF0Y2hlZC4KKyAgICByZXR1cm4gZmFsc2U7IC8vIE5vIG9w
dGlvbiBtYXRjaGVkLgogfQogCiB2b2lkIE9wdGlvbnM6OmR1bXBBbGxPcHRpb25zKEZJTEUqIHN0
cmVhbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCBjODhiM2Fj
NmMzNmJlOTA4YTIyZTA0MjUyY2Q3NTk3NmUyYWUwZGVjLi4wNWI2ZmUwMWQxZmFkNGUyMmE0MzFh
ZWMzNzY3MjNhMmMxZmE5OTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
cy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNF
eHBvcnRNYWNyb3MuaCIKICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDxzdGRpby5oPgor
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTk0
LDYgKzk1LDEwIEBAIHR5cGVkZWYgT3B0aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7CiAgICAgdihib29s
LCB1c2VERkdKSVQsIHRydWUpIFwKICAgICB2KGJvb2wsIHVzZVJlZ0V4cEpJVCwgdHJ1ZSkgXAog
ICAgIFwKKyAgICB2KHVuc2lnbmVkLCBtYXhQZXJUaHJlYWRTdGFja1VzYWdlLCA0ICogTUIpIFwK
KyAgICB2KHVuc2lnbmVkLCByZXNlcnZlZFpvbmVTaXplLCAxMjggKiBLQikgXAorICAgIHYodW5z
aWduZWQsIGVycm9yTW9kZVJlc2VydmVkWm9uZVNpemUsIDY0ICogS0IpIFwKKyAgICBcCiAgICAg
dihib29sLCBjcmFzaElmQ2FudEFsbG9jYXRlSklUTWVtb3J5LCBmYWxzZSkgXAogICAgIFwKICAg
ICB2KGJvb2wsIGZvcmNlREZHQ29kZUJsb2NrTGl2ZW5lc3MsIGZhbHNlKSBcCkBAIC0xMTgsMTEg
KzEyMywxOSBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIHYoYm9vbCwg
dmVyYm9zZUNhbGxMaW5rLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgdmVyYm9zZUNvbXBpbGF0aW9u
UXVldWUsIGZhbHNlKSBcCiAgICAgdihib29sLCByZXBvcnRDb21waWxlVGltZXMsIGZhbHNlKSBc
CisgICAgdihib29sLCByZXBvcnRGVExDb21waWxlVGltZXMsIGZhbHNlKSBcCiAgICAgdihib29s
LCB2ZXJib3NlQ0ZBLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgdmVyYm9zZUZUTFRvSlNUaHVuaywg
ZmFsc2UpIFwKKyAgICB2KGJvb2wsIHZlcmJvc2VGVExGYWlsdXJlLCBmYWxzZSkgXAorICAgIHYo
Ym9vbCwgYWx3YXlzQ29tcHV0ZUhhc2gsIGZhbHNlKSBcCisgICAgdihib29sLCB0ZXN0VGhlRlRM
LCBmYWxzZSkgXAorICAgIHYoYm9vbCwgdmVyYm9zZVNhbml0aXplU3RhY2ssIGZhbHNlKSBcCiAg
ICAgXAotICAgIHYoYm9vbCwgZW5hYmxlT1NSRW50cnlJbkxvb3BzLCB0cnVlKSBcCisgICAgdihi
b29sLCBlbmFibGVPU1JFbnRyeVRvREZHLCB0cnVlKSBcCisgICAgdihib29sLCBlbmFibGVPU1JF
bnRyeVRvRlRMLCB0cnVlKSBcCiAgICAgXAogICAgIHYoYm9vbCwgdXNlRXhwZXJpbWVudGFsRlRM
LCBmYWxzZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlRXhwZXJpbWVudGFsRlRMQ292ZXJhZ2UsIGZh
bHNlKSBcCiAgICAgdihib29sLCB1c2VGVExUQkFBLCB0cnVlKSBcCiAgICAgdihib29sLCBlbmFi
bGVMTFZNRmFzdElTZWwsIGZhbHNlKSBcCiAgICAgdihib29sLCB1c2VMTFZNU21hbGxDb2RlTW9k
ZWwsIGZhbHNlKSBcCkBAIC0xMzQsMTAgKzE0NywxMiBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9w
dGlvblJhbmdlOwogICAgIHYodW5zaWduZWQsIGxsdm1CYWNrZW5kT3B0aW1pemF0aW9uTGV2ZWws
IDIpIFwKICAgICB2KHVuc2lnbmVkLCBsbHZtT3B0aW1pemF0aW9uTGV2ZWwsIDIpIFwKICAgICB2
KHVuc2lnbmVkLCBsbHZtU2l6ZUxldmVsLCAwKSBcCisgICAgdihib29sLCBsbHZtRGlzYWxsb3dB
VlgsIHRydWUpIFwKICAgICB2KGJvb2wsIGZ0bENyYXNoZXMsIGZhbHNlKSAvKiBmb29sLXByb29m
IHdheSBvZiBjaGVja2luZyB0aGF0IHlvdSBlbmRlZCB1cCBpbiB0aGUgRlRMLiA7LSkgKi9cCiAg
ICAgXAogICAgIHYoYm9vbCwgZW5hYmxlQ29uY3VycmVudEpJVCwgdHJ1ZSkgXAotICAgIHYodW5z
aWduZWQsIG51bWJlck9mQ29tcGlsZXJUaHJlYWRzLCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJl
YWRzKDIpIC0gMSkgXAorICAgIHYodW5zaWduZWQsIG51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRz
LCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJlYWRzKDIpIC0gMSkgXAorICAgIHYodW5zaWduZWQs
IG51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzLCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJlYWRz
KDgpIC0gMSkgXAogICAgIFwKICAgICB2KGJvb2wsIGVuYWJsZVByb2ZpbGVyLCBmYWxzZSkgXAog
ICAgIFwKQEAgLTE0Niw2ICsxNjEsOCBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdl
OwogICAgIFwKICAgICB2KGJvb2wsIGVuYWJsZUFyY2hpdGVjdHVyZVNwZWNpZmljT3B0aW1pemF0
aW9ucywgdHJ1ZSkgXAogICAgIFwKKyAgICB2KGJvb2wsIGJyZWFrT25UaHJvdywgZmFsc2UpIFwK
KyAgICBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bU9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3Ry
dWN0aW9uQ291bnQsIDEwMDAwKSBcCiAgICAgXAogICAgIHYodW5zaWduZWQsIG1heGltdW1GdW5j
dGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxODApIFwKQEAgLTE1
NCw2ICsxNzEsMTIgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICBcCiAg
ICAgLyogRGVwdGggb2YgaW5saW5lIHN0YWNrLCBzbyAxID0gbm8gaW5saW5pbmcsIDIgPSBvbmUg
bGV2ZWwsIGV0Yy4gKi8gXAogICAgIHYodW5zaWduZWQsIG1heGltdW1JbmxpbmluZ0RlcHRoLCA1
KSBcCisgICAgdih1bnNpZ25lZCwgbWF4aW11bUlubGluaW5nUmVjdXJzaW9uLCAyKSBcCisgICAg
dih1bnNpZ25lZCwgbWF4aW11bUlubGluaW5nRGVwdGhGb3JNdXN0SW5saW5lLCA3KSBcCisgICAg
dih1bnNpZ25lZCwgbWF4aW11bUlubGluaW5nUmVjdXJzaW9uRm9yTXVzdElubGluZSwgMykgXAor
ICAgIFwKKyAgICB2KGJvb2wsIGVuYWJsZVBvbHl2YXJpYW50Q2FsbElubGluaW5nLCB0cnVlKSBc
CisgICAgdihib29sLCBlbmFibGVQb2x5dmFyaWFudEJ5SWRJbmxpbmluZywgdHJ1ZSkgXAogICAg
IFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtQmluYXJ5U3RyaW5nU3dpdGNoQ2FzZUxlbmd0aCwg
NTApIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtQmluYXJ5U3RyaW5nU3dpdGNoVG90YWxMZW5n
dGgsIDIwMDApIFwKQEAgLTIxMCw2ICsyMzMsNyBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlv
blJhbmdlOwogICAgIHYoYm9vbCwgc2hvd09iamVjdFN0YXRpc3RpY3MsIGZhbHNlKSBcCiAgICAg
XAogICAgIHYoYm9vbCwgbG9nR0MsIGZhbHNlKSBcCisgICAgdihib29sLCBkaXNhYmxlR0MsIGZh
bHNlKSBcCiAgICAgdih1bnNpZ25lZCwgZ2NNYXhIZWFwU2l6ZSwgMCkgXAogICAgIHYoYm9vbCwg
cmVjb3JkR0NQYXVzZVRpbWVzLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgbG9nSGVhcFN0YXRpc3Rp
Y3NBdEV4aXQsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzUxZGI0YTMyNjNh
NDgxMWZhNGM0ZTgyYmMwNDRhOWVkYzNlMzg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgKQEAgLTAsMCAr
MSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZV9oCisjZGVmaW5lIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZV9oCisKK25hbWVzcGFjZSBKU0MgeworCitlbnVtIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTW9kZSB7CisgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCwKKyAgICBNdXN0
UHJlc2VydmVSZWdpc3RlcnMKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8g
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RhY2tBbGlnbm1lbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0YWNrQWxpZ25tZW50LmgKaW5kZXggYjgwM2U0ZGVkZDk4ZWQyOGFiMjljMmQxOTAy
NWQ0MzdjODY5NzZjOC4uZDI5ODAyYjNmZGJjZTU1OTI2YzYzYTNiMTJjZGJiNGU1YjUzNDE1OCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tBbGlnbm1lbnQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0FsaWdubWVudC5oCkBA
IC0yNyw2ICsyNyw4IEBACiAjZGVmaW5lIFN0YWNrQWxpZ25tZW50X2gKIAogI2luY2x1ZGUgIkpT
Q0pTVmFsdWUuaCIKKyNpbmNsdWRlICJKU1N0YWNrLmgiCisjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTM4LDYgKzQwLDI1IEBAIGlubGluZSB1bnNp
Z25lZCBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpCiAgICAgcmV0dXJuIHN0YWNrQWxpZ25tZW50
Qnl0ZXMoKSAvIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CiB9CiAKKy8vIEFsaWduIGFyZ3VtZW50
IGNvdW50IHRha2luZyBpbnRvIGFjY291bnQgdGhlIENhbGxGcmFtZUhlYWRlclNpemUgbWF5IGJl
CisvLyBhbiAidW5hbGlnbmVkIiBjb3VudCBvZiByZWdpc3RlcnMuCitpbmxpbmUgdW5zaWduZWQg
cm91bmRBcmd1bWVudENvdW50VG9BbGlnbkZyYW1lKHVuc2lnbmVkIGFyZ3VtZW50Q291bnQpCit7
CisgICAgcmV0dXJuIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lz
dGVycygpLCBhcmd1bWVudENvdW50ICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSkgLSBK
U1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOworfQorCisvLyBBbGlnbiBsb2NhbCByZWdpc3Rl
ciBjb3VudCB0byBtYWtlIHRoZSBsYXN0IGxvY2FsIGVuZCBvbiBhIHN0YWNrIGFsaWduZWQgYWRk
cmVzcyBnaXZlbiB0aGUKKy8vIENhbGxGcmFtZSBpcyBhdCBhbiBhZGRyZXNzIHRoYXQgaXMgc3Rh
Y2sgYWxpZ25lZCBtaW51cyBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZQoraW5saW5lIHVu
c2lnbmVkIHJvdW5kTG9jYWxSZWdpc3RlckNvdW50Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KHVuc2ln
bmVkIGxvY2FsUmVnaXN0ZXJDb3VudCkKK3sKKyAgICByZXR1cm4gV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIGxvY2FsUmVnaXN0ZXJDb3VudCArIEpT
U3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENT
aXplOworfQorCitpbmxpbmUgdW5zaWduZWQgbG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKQor
eworICAgIHJldHVybiBXVEY6OmZhc3RMb2cyKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIFN0YWNrQWxpZ25tZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNo
ZWNrZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9u
Q2hlY2tlci5jcHAKaW5kZXggMWYyMDQyMzFlOTYyODJmNDUxMzAyZDEyYzU5NjA2ZmI3ZmYyNTAy
Zi4uNjcyNDZhYTYwNDY5MjU3OTkxMjRlNmNkODE2NTE1YjVkNzViOThjZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tl
ci5jcHAKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIEpTVmFsdWUgU3RyaW5n
UmVjdXJzaW9uQ2hlY2tlcjo6dGhyb3dTdGFja092ZXJmbG93RXJyb3IoKQogewotICAgIHJldHVy
biBtX2V4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24obV9leGVjLCBjcmVhdGVTdGFja092ZXJmbG93
RXJyb3IobV9leGVjKSk7CisgICAgcmV0dXJuIEpTQzo6dGhyb3dTdGFja092ZXJmbG93RXJyb3Io
bV9leGVjKTsKIH0KIAogSlNWYWx1ZSBTdHJpbmdSZWN1cnNpb25DaGVja2VyOjplbXB0eVN0cmlu
ZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCA4
NzgxYWIwMDczNGIyMGEwOWNkZWUxN2MzYjVkZWQ2NWNkMGZkNzk5Li4wNDI5MWY3ZThkZDI0ZThh
YjMzZDc1YWYxZGE0NTY4ZjJiYzk5ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTEwNDgsOCArMTA0OCwxMyBAQCB2b2lkIFN0cnVjdHVyZTo6
ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIGlmICh0YWJsZSkgewogICAgICAgICBQ
cm9wZXJ0eVRhYmxlOjppdGVyYXRvciBpdGVyID0gdGFibGUtPmJlZ2luKCk7CiAgICAgICAgIFBy
b3BlcnR5VGFibGU6Oml0ZXJhdG9yIGVuZCA9IHRhYmxlLT5lbmQoKTsKLSAgICAgICAgZm9yICg7
IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCisgICAgICAgIGZvciAoOyBpdGVyICE9IGVuZDsgKytpdGVy
KSB7CiAgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsIGl0ZXItPmtleSwgIjoiLCBzdGF0aWNf
Y2FzdDxpbnQ+KGl0ZXItPm9mZnNldCkpOworICAgICAgICAgICAgaWYgKGl0ZXItPnNwZWNpZmlj
VmFsdWUpIHsKKyAgICAgICAgICAgICAgICBEdW1wQ29udGV4dCBkdW1teUNvbnRleHQ7CisgICAg
ICAgICAgICAgICAgb3V0LnByaW50KCI9PiIsIFJhd1BvaW50ZXIoaXRlci0+c3BlY2lmaWNWYWx1
ZS5nZXQoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBz
dHJ1Y3R1cmUtPm1fbG9jay51bmxvY2soKTsKICAgICB9CkBAIC0xMDU5LDYgKzEwNjQsMTAgQEAg
dm9pZCBTdHJ1Y3R1cmU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICAgICAgaWYg
KCFzdHJ1Y3R1cmUtPm1fbmFtZUluUHJldmlvdXMpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCBzdHJ1Y3R1cmUtPm1fbmFtZUluUHJldmlvdXMuZ2V0KCks
ICI6Iiwgc3RhdGljX2Nhc3Q8aW50PihzdHJ1Y3R1cmUtPm1fb2Zmc2V0KSk7CisgICAgICAgIGlm
IChzdHJ1Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMpIHsKKyAgICAgICAgICAgIER1
bXBDb250ZXh0IGR1bW15Q29udGV4dDsKKyAgICAgICAgICAgIG91dC5wcmludCgiPT4iLCBSYXdQ
b2ludGVyKHN0cnVjdHVyZS0+bV9zcGVjaWZpY1ZhbHVlSW5QcmV2aW91cy5nZXQoKSkpOworICAg
ICAgICB9CiAgICAgfQogICAgIAogICAgIG91dC5wcmludCgifSwgIiwgSW5kZXhpbmdUeXBlRHVt
cChpbmRleGluZ1R5cGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4
IDk1NThiOGQ3MjM0MTBiMDBlMTYwMTRkNzA1MWZkMzU2YjBiZmYwODYuLjMzNjVlNDVkYmNjMzJk
ZmQwMmNiZjc0N2QyYjliZGQ3Yjc1ZjAyZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDExLCAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OCwgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDExICszMCwxMyBAQAogI2luY2x1ZGUg
IlZNLmgiCiAKICNpbmNsdWRlICJBcmdMaXN0LmgiCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxS
ZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJBcnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQu
aCIKICNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmllcnMuaCIK
KyNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJERkdMb25nTGl2ZWRTdGF0
ZS5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCiAjaW5jbHVkZSAiRGVidWdnZXJBY3RpdmF0
aW9uLmgiCkBAIC00OSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIkluY3JlbWVudGFsU3dlZXBlci5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5j
bHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpTQVBJVmFsdWVXcmFwcGVyLmgiCiAjaW5jbHVk
ZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgpAQCAtMTY2LDYgKzE2OSw3
IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIHZtVHlw
ZSh2bVR5cGUpCiAgICAgLCBjbGllbnREYXRhKDApCiAgICAgLCB0b3BDYWxsRnJhbWUoQ2FsbEZy
YW1lOjpub0NhbGxlcigpKQorICAgICwgc3RhY2tQb2ludGVyQXRWTUVudHJ5KDApCiAgICAgLCBh
cnJheUNvbnN0cnVjdG9yVGFibGUoYWRvcHRQdHIobmV3IEhhc2hUYWJsZShKU0M6OmFycmF5Q29u
c3RydWN0b3JUYWJsZSkpKQogICAgICwgYXJyYXlQcm90b3R5cGVUYWJsZShhZG9wdFB0cihuZXcg
SGFzaFRhYmxlKEpTQzo6YXJyYXlQcm90b3R5cGVUYWJsZSkpKQogICAgICwgYm9vbGVhblByb3Rv
dHlwZVRhYmxlKGFkb3B0UHRyKG5ldyBIYXNoVGFibGUoSlNDOjpib29sZWFuUHJvdG90eXBlVGFi
bGUpKSkKQEAgLTIxNyw3ICsyMjEsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUg
aGVhcFR5cGUpCiAgICAgLCBtX2luaXRpYWxpemluZ09iamVjdENsYXNzKDApCiAjZW5kaWYKICAg
ICAsIG1fc3RhY2tMaW1pdCgwKQotI2lmIFVTRShTRVBBUkFURV9DX0FORF9KU19TVEFDSykKKyNp
ZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICwgbV9qc1N0YWNrTGltaXQoMCkKICNlbmRpZgog
ICAgICwgbV9pbkRlZmluZU93blByb3BlcnR5KGZhbHNlKQpAQCAtMjI1LDcgKzIyOSwxMSBAQCBW
TTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiB7CiAgICAgaW50ZXJwcmV0
ZXIgPSBuZXcgSW50ZXJwcmV0ZXIoKnRoaXMpOwogICAgIFN0YWNrQm91bmRzIHN0YWNrID0gd3Rm
VGhyZWFkRGF0YSgpLnN0YWNrKCk7Ci0gICAgc2V0U3RhY2tMaW1pdChzdGFjay5yZWN1cnNpb25M
aW1pdCgpKTsKKyAgICB1cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUoT3B0aW9u
czo6cmVzZXJ2ZWRab25lU2l6ZSgpKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIGlu
dGVycHJldGVyLT5zdGFjaygpLnNldFJlc2VydmVkWm9uZVNpemUoT3B0aW9uczo6cmVzZXJ2ZWRa
b25lU2l6ZSgpKTsKKyNlbmRpZgorICAgIHNldExhc3RTdGFja1RvcChzdGFjay5vcmlnaW4oKSk7
CiAKICAgICAvLyBOZWVkIHRvIGJlIGNhcmVmdWwgdG8ga2VlcCBldmVyeXRoaW5nIGNvbnNpc3Rl
bnQgaGVyZQogICAgIEpTTG9ja0hvbGRlciBsb2NrKHRoaXMpOwpAQCAtMjY3LDcgKzI3NSw5IEBA
IFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKIAogI2lmIEVOQUJMRShK
SVQpCiAgICAgaml0U3R1YnMgPSBhZG9wdFB0cihuZXcgSklUVGh1bmtzKCkpOworICAgIGFyaXR5
Q2hlY2tGYWlsUmV0dXJuVGh1bmtzID0gc3RkOjptYWtlX3VuaXF1ZTxBcml0eUNoZWNrRmFpbFJl
dHVyblRodW5rcz4oKTsKICNlbmRpZgorICAgIGFyaXR5Q2hlY2tEYXRhID0gc3RkOjptYWtlX3Vu
aXF1ZTxDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhPigpOwogCiAjaWYgRU5BQkxFKEZU
TF9KSVQpCiAgICAgZnRsVGh1bmtzID0gc3RkOjptYWtlX3VuaXF1ZTxGVEw6OlRodW5rcz4oKTsK
QEAgLTI4MCw3ICsyOTAsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5
cGUpCiAjZW5kaWYKIAogICAgIGhlYXAubm90aWZ5SXNTYWZlVG9Db2xsZWN0KCk7Ci0KKyAgICAK
ICAgICBMTEludDo6RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoKnRoaXMpOwogICAgIAogICAgIGlm
IChPcHRpb25zOjplbmFibGVQcm9maWxlcigpKSB7CkBAIC0zMDYsNiArMzE2LDE2IEBAIFZNOjpW
TShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICBtX3R5cGVkQXJyYXlDb250
cm9sbGVyID0gYWRvcHRSZWYobmV3IFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKCkpOwogfQog
CisjaWYgRU5BQkxFKERGR19KSVQpCitzdGF0aWMgdm9pZCBjbGVhbldvcmtsaXN0KFZNJiB2bSwg
REZHOjpXb3JrbGlzdCogd29ya2xpc3QpCit7CisgICAgaWYgKCF3b3JrbGlzdCkKKyAgICAgICAg
cmV0dXJuOworICAgIHdvcmtsaXN0LT53YWl0VW50aWxBbGxQbGFuc0ZvclZNQXJlUmVhZHkodm0p
OworICAgIHdvcmtsaXN0LT5yZW1vdmVBbGxSZWFkeVBsYW5zRm9yVk0odm0pOworfQorI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQorCiBWTTo6flZNKCkKIHsKICAgICAvLyBOZXZlciBHQywgZXZl
ciBhZ2Fpbi4KQEAgLTMxNCwxMCArMzM0LDggQEAgVk06On5WTSgpCiAjaWYgRU5BQkxFKERGR19K
SVQpCiAgICAgLy8gTWFrZSBzdXJlIGNvbmN1cnJlbnQgY29tcGlsYXRpb25zIGFyZSBkb25lLCBi
dXQgZG9uJ3QgaW5zdGFsbCB0aGVtLCBzaW5jZSB0aGVyZSBpcwogICAgIC8vIG5vIHBvaW50IHRv
IGRvaW5nIHNvLgotICAgIGlmICh3b3JrbGlzdCkgewotICAgICAgICB3b3JrbGlzdC0+d2FpdFVu
dGlsQWxsUGxhbnNGb3JWTUFyZVJlYWR5KCp0aGlzKTsKLSAgICAgICAgd29ya2xpc3QtPnJlbW92
ZUFsbFJlYWR5UGxhbnNGb3JWTSgqdGhpcyk7Ci0gICAgfQorICAgIGNsZWFuV29ya2xpc3QoKnRo
aXMsIERGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpKTsKKyAgICBjbGVhbldv
cmtsaXN0KCp0aGlzLCBERkc6OmV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKSk7CiAj
ZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhpcyBmaXJzdCB0
byBlbnN1cmUgdGhhdCBub2JvZHkgdHJpZXMgdG8gcmVtb3ZlIHRoZW1zZWx2ZXMgZnJvbSBpdC4K
QEAgLTQ2MSw4ICs0NzksOCBAQCBOYXRpdmVFeGVjdXRhYmxlKiBWTTo6Z2V0SG9zdEZ1bmN0aW9u
KE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBJbnRyaW5zaWMgaW50cmlucwogTmF0aXZlRXhlY3V0
YWJsZSogVk06OmdldEhvc3RGdW5jdGlvbihOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZl
RnVuY3Rpb24gY29uc3RydWN0b3IpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUV4ZWN1dGFibGU6OmNy
ZWF0ZSgqdGhpcywKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENv
ZGVSZWYobGxpbnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZSksIGZ1bmN0aW9uLAotICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9uYXRpdmVfY29u
c3RydWN0X3RyYW1wb2xpbmUpLCBjb25zdHJ1Y3RvciwKKyAgICAgICAgYWRvcHRSZWYobmV3IE5h
dGl2ZUpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxp
bnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZSksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKSwgZnVu
Y3Rpb24sCisgICAgICAgIGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2RlKE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBv
bGluZSksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKSwgY29uc3RydWN0b3IsCiAgICAgICAgIE5v
SW50cmluc2ljKTsKIH0KIApAQCAtNDkwLDE0ICs1MDgsMjEgQEAgdm9pZCBWTTo6c3RvcFNhbXBs
aW5nKCkKICAgICBpbnRlcnByZXRlci0+c3RvcFNhbXBsaW5nKCk7CiB9CiAKLXZvaWQgVk06OnBy
ZXBhcmVUb0Rpc2NhcmRDb2RlKCkKLXsKICNpZiBFTkFCTEUoREZHX0pJVCkKK3N0YXRpYyB2b2lk
IHByZXBhcmVUb0Rpc2NhcmRDb2RlRm9yKFZNJiB2bSwgREZHOjpXb3JrbGlzdCogd29ya2xpc3Qp
Cit7CiAgICAgaWYgKCF3b3JrbGlzdCkKICAgICAgICAgcmV0dXJuOwotICAgIAotICAgIHdvcmts
aXN0LT5jb21wbGV0ZUFsbFBsYW5zRm9yVk0oKnRoaXMpOwotI2VuZGlmCisgICAgd29ya2xpc3Qt
PmNvbXBsZXRlQWxsUGxhbnNGb3JWTSh2bSk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQp
CisKK3ZvaWQgVk06OnByZXBhcmVUb0Rpc2NhcmRDb2RlKCkKK3sKKyNpZiBFTkFCTEUoREZHX0pJ
VCkKKyAgICBwcmVwYXJlVG9EaXNjYXJkQ29kZUZvcigqdGhpcywgREZHOjpleGlzdGluZ0dsb2Jh
bERGR1dvcmtsaXN0T3JOdWxsKCkpOworICAgIHByZXBhcmVUb0Rpc2NhcmRDb2RlRm9yKCp0aGlz
LCBERkc6OmV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKSk7CisjZW5kaWYgLy8gRU5B
QkxFKERGR19KSVQpCiB9CiAKIHZvaWQgVk06OmRpc2NhcmRBbGxDb2RlKCkKQEAgLTYzMiw2ICs2
NTcsMTEgQEAgc3RhdGljIHZvaWQgYXBwZW5kU291cmNlVG9FcnJvcihDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgRXJyb3JJbnN0YW5jZSogZXhjZXB0aW9uLAogICAgIAogSlNWYWx1ZSBWTTo6dGhyb3dF
eGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGVycm9yKQogeworICAgIGlmIChPcHRp
b25zOjpicmVha09uVGhyb3coKSkgeworICAgICAgICBkYXRhTG9nKCJJbiBjYWxsIGZyYW1lICIs
IFJhd1BvaW50ZXIoZXhlYyksICIgZm9yIGNvZGUgYmxvY2sgIiwgKmV4ZWMtPmNvZGVCbG9jaygp
LCAiXG4iKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CisgICAgCiAgICAgQVNTRVJUKGV4ZWMg
PT0gdG9wQ2FsbEZyYW1lIHx8IGV4ZWMgPT0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5n
bG9iYWxFeGVjKCkgfHwgZXhlYyA9PSBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCktPmdsb2Jh
bEV4ZWMoKSk7CiAgICAgCiAgICAgVmVjdG9yPFN0YWNrRnJhbWU+IHN0YWNrVHJhY2U7CkBAIC03
MDYsNiArNzM2LDI0IEBAIHZvaWQgVk06OiBjbGVhckV4Y2VwdGlvblN0YWNrKCkKICAgICBtX2V4
Y2VwdGlvblN0YWNrID0gUmVmQ291bnRlZEFycmF5PFN0YWNrRnJhbWU+KCk7CiB9CiAKK3NpemVf
dCBWTTo6dXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKHNpemVfdCByZXNlcnZl
ZFpvbmVTaXplKQoreworICAgIHNpemVfdCBvbGRSZXNlcnZlZFpvbmVTaXplID0gbV9yZXNlcnZl
ZFpvbmVTaXplOworICAgIG1fcmVzZXJ2ZWRab25lU2l6ZSA9IHJlc2VydmVkWm9uZVNpemU7CisK
KyAgICB2b2lkKiBzdGFja0xpbWl0OworICAgIGlmIChzdGFja1BvaW50ZXJBdFZNRW50cnkpIHsK
KyAgICAgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJk
KCkpOworICAgICAgICBjaGFyKiBzdGFydE9mU3RhY2sgPSByZWludGVycHJldF9jYXN0PGNoYXIq
PihzdGFja1BvaW50ZXJBdFZNRW50cnkpOworICAgICAgICBjaGFyKiBkZXNpcmVkU3RhY2tMaW1p
dCA9IHN0YXJ0T2ZTdGFjayAtIE9wdGlvbnM6Om1heFBlclRocmVhZFN0YWNrVXNhZ2UoKSArIHJl
c2VydmVkWm9uZVNpemU7CisgICAgICAgIHN0YWNrTGltaXQgPSB3dGZUaHJlYWREYXRhKCkuc3Rh
Y2soKS5yZWN1cnNpb25MaW1pdChyZXNlcnZlZFpvbmVTaXplLCBkZXNpcmVkU3RhY2tMaW1pdCk7
CisgICAgfSBlbHNlCisgICAgICAgIHN0YWNrTGltaXQgPSB3dGZUaHJlYWREYXRhKCkuc3RhY2so
KS5yZWN1cnNpb25MaW1pdChyZXNlcnZlZFpvbmVTaXplKTsKKworICAgIHNldFN0YWNrTGltaXQo
c3RhY2tMaW1pdCk7CisgICAgcmV0dXJuIG9sZFJlc2VydmVkWm9uZVNpemU7Cit9CisKIHZvaWQg
cmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoVk0mIHZtKQogewogICAgIHZtLnJlbGVhc2VFeGVjdXRh
YmxlTWVtb3J5KCk7CkBAIC03MjIsMTYgKzc3MCwxOSBAQCB2b2lkIFZNOjpnYXRoZXJDb25zZXJ2
YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMpCiAgICAgICAg
IH0KICAgICB9CiB9CisjZW5kaWYKIAotREZHOjpXb3JrbGlzdCogVk06OmVuc3VyZVdvcmtsaXN0
KCkKK3ZvaWQgbG9nU2FuaXRpemVTdGFjayhWTSogdm0pCiB7Ci0gICAgaWYgKCFERkc6OmVuYWJs
ZUNvbmN1cnJlbnRKSVQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKCF3b3JrbGlzdCkK
LSAgICAgICAgd29ya2xpc3QgPSBERkc6Omdsb2JhbFdvcmtsaXN0KCk7Ci0gICAgcmV0dXJuIHdv
cmtsaXN0LmdldCgpOworICAgIGlmIChPcHRpb25zOjp2ZXJib3NlU2FuaXRpemVTdGFjaygpICYm
IHZtLT50b3BDYWxsRnJhbWUpIHsKKyAgICAgICAgaW50IGR1bW15OworICAgICAgICBkYXRhTG9n
KAorICAgICAgICAgICAgIlNhbml0aXppbmcgc3RhY2sgd2l0aCB0b3AgY2FsbCBmcmFtZSBhdCAi
LCBSYXdQb2ludGVyKHZtLT50b3BDYWxsRnJhbWUpLAorICAgICAgICAgICAgIiwgY3VycmVudCBz
dGFjayBwb2ludGVyIGF0ICIsIFJhd1BvaW50ZXIoJmR1bW15KSwgIiwgaW4gIiwKKyAgICAgICAg
ICAgIHBvaW50ZXJEdW1wKHZtLT50b3BDYWxsRnJhbWUtPmNvZGVCbG9jaygpKSwgIiBhbmQgbGFz
dCBjb2RlIG9yaWdpbiA9ICIsCisgICAgICAgICAgICB2bS0+dG9wQ2FsbEZyYW1lLT5jb2RlT3Jp
Z2luKCksICJcbiIpOworICAgIH0KIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKFJFR0VYUF9UUkFD
SU5HKQogdm9pZCBWTTo6YWRkUmVnRXhwVG9UcmFjZShSZWdFeHAqIHJlZ0V4cCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCmluZGV4IDUwYTMxNWVlNDMzODk5ZDAwMDEwMjllODEwNjQ0OWRm
YmFlYmIwNDcuLjgzNmYyYWQ2NzMyYmY5ZWZkZjIyMDQ4Y2RmZTc2NTY3MjdjMDc1OTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtNjgsNiArNjgsNyBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAorICAgIGNsYXNzIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOwogICAgIGNsYXNz
IENvZGVCbG9jazsKICAgICBjbGFzcyBDb2RlQ2FjaGU7CiAgICAgY2xhc3MgQ29tbW9uSWRlbnRp
ZmllcnM7CkBAIC0xMDMsNyArMTA0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKERG
R19KSVQpCiAgICAgbmFtZXNwYWNlIERGRyB7CiAgICAgY2xhc3MgTG9uZ0xpdmVkU3RhdGU7Ci0g
ICAgY2xhc3MgV29ya2xpc3Q7CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogI2lm
IEVOQUJMRShGVExfSklUKQpAQCAtMTExLDYgKzExMSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IGNsYXNzIFRodW5rczsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisgICAgbmFt
ZXNwYWNlIENvbW1vblNsb3dQYXRocyB7CisgICAgc3RydWN0IEFyaXR5Q2hlY2tEYXRhOworICAg
IH0KIAogICAgIHN0cnVjdCBIYXNoVGFibGU7CiAgICAgc3RydWN0IEluc3RydWN0aW9uOwpAQCAt
MjA0LDEwICsyMDcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lkIG1ha2VVc2Fi
bGVGcm9tTXVsdGlwbGVUaHJlYWRzKCkgeyBoZWFwLm1hY2hpbmVUaHJlYWRzKCkubWFrZVVzYWJs
ZUZyb21NdWx0aXBsZVRocmVhZHMoKTsgfQogICAgICAgICAKLSNpZiBFTkFCTEUoREZHX0pJVCkK
LSAgICAgICAgREZHOjpXb3JrbGlzdCogZW5zdXJlV29ya2xpc3QoKTsKLSNlbmRpZiAvLyBFTkFC
TEUoREZHX0pJVCkKLQogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxKU0xvY2s+IG1fYXBp
TG9jazsKIApAQCAtMjI0LDEyICsyMjMsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAog
I2lmIEVOQUJMRShERkdfSklUKQogICAgICAgICBPd25QdHI8REZHOjpMb25nTGl2ZWRTdGF0ZT4g
ZGZnU3RhdGU7Ci0gICAgICAgIFJlZlB0cjxERkc6OldvcmtsaXN0PiB3b3JrbGlzdDsKICNlbmRp
ZiAvLyBFTkFCTEUoREZHX0pJVCkKIAogICAgICAgICBWTVR5cGUgdm1UeXBlOwogICAgICAgICBD
bGllbnREYXRhKiBjbGllbnREYXRhOwogICAgICAgICBFeGVjU3RhdGUqIHRvcENhbGxGcmFtZTsK
KyAgICAgICAgdm9pZCogc3RhY2tQb2ludGVyQXRWTUVudHJ5OwogICAgICAgICBXYXRjaGRvZyB3
YXRjaGRvZzsKIAogICAgICAgICBjb25zdCBPd25QdHI8Y29uc3QgSGFzaFRhYmxlPiBhcnJheUNv
bnN0cnVjdG9yVGFibGU7CkBAIC0zNDEsNyArMzQwLDEzIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgcmV0dXJuIGppdFN0dWJzLT5jdGlTdHViKHRoaXMsIGdlbmVyYXRvcik7CiAgICAg
ICAgIH0KICAgICAgICAgTmF0aXZlRXhlY3V0YWJsZSogZ2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1
bmN0aW9uLCBJbnRyaW5zaWMpOwotI2VuZGlmCisgICAgICAgIAorICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M+IGFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1
bmtzOworI2lmIENQVShYODYpCisgICAgICAgIHZvaWQqIGN1cnJlbnRSZXR1cm5UaHVua1BDOwor
I2VuZGlmIC8vIENQVShYODYpCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE+IGFyaXR5Q2hlY2tEYXRh
OwogI2lmIEVOQUJMRShGVExfSklUKQogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RlRMOjpUaHVu
a3M+IGZ0bFRodW5rczsKICNlbmRpZgpAQCAtMzczLDEyICszNzgsMTYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgdGhyb3dFeGNlcHRpb24oRXhl
Y1N0YXRlKiwgSlNWYWx1ZSk7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiB0
aHJvd0V4Y2VwdGlvbihFeGVjU3RhdGUqLCBKU09iamVjdCopOwogICAgICAgICAKKyAgICAgICAg
c2l6ZV90IHJlc2VydmVkWm9uZVNpemUoKSBjb25zdCB7IHJldHVybiBtX3Jlc2VydmVkWm9uZVNp
emU7IH0KKyAgICAgICAgc2l6ZV90IHVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6
ZShzaXplX3QgcmVzZXJ2ZWRab25lU2l6ZSk7CisKICAgICAgICAgdm9pZCoqIGFkZHJlc3NPZkpT
U3RhY2tMaW1pdCgpIHsgcmV0dXJuICZtX2pzU3RhY2tMaW1pdDsgfQorI2lmIEVOQUJMRShMTElO
VF9DX0xPT1ApCiAgICAgICAgIHZvaWQqIGpzU3RhY2tMaW1pdCgpIHsgcmV0dXJuIG1fanNTdGFj
a0xpbWl0OyB9CiAgICAgICAgIHZvaWQgc2V0SlNTdGFja0xpbWl0KHZvaWQqIGxpbWl0KSB7IG1f
anNTdGFja0xpbWl0ID0gbGltaXQ7IH0KLQorI2VuZGlmCiAgICAgICAgIHZvaWQqIHN0YWNrTGlt
aXQoKSB7IHJldHVybiBtX3N0YWNrTGltaXQ7IH0KLSAgICAgICAgdm9pZCBzZXRTdGFja0xpbWl0
KHZvaWQqIGxpbWl0KSB7IG1fc3RhY2tMaW1pdCA9IGxpbWl0OyB9CisKICAgICAgICAgYm9vbCBp
c1NhZmVUb1JlY3Vyc2Uoc2l6ZV90IG5lZWRlZFN0YWNrSW5CeXRlcyA9IDApIGNvbnN0CiAgICAg
ICAgIHsKICAgICAgICAgICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dp
bmdEb3dud2FyZCgpKTsKQEAgLTM4NywxMCArMzk2LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgcmV0dXJuIGN1cnIgPj0gbGltaXQgJiYgc3RhdGljX2Nhc3Q8c2l6ZV90PihjdXJy
IC0gbGltaXQpID49IG5lZWRlZFN0YWNrSW5CeXRlczsKICAgICAgICAgfQogCisgICAgICAgIHZv
aWQqIGxhc3RTdGFja1RvcCgpIHsgcmV0dXJuIG1fbGFzdFN0YWNrVG9wOyB9CisgICAgICAgIHZv
aWQgc2V0TGFzdFN0YWNrVG9wKHZvaWQqIGxhc3RTdGFja1RvcCkgeyBtX2xhc3RTdGFja1RvcCA9
IGxhc3RTdGFja1RvcDsgfQorCiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY29uc3QganNBcnJh
eUNsYXNzSW5mbzsKICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjb25zdCBqc0ZpbmFsT2JqZWN0
Q2xhc3NJbmZvOwogCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIgZXhjZXB0aW9uTG9jYXRpb247
CiAgICAgICAgIEpTVmFsdWUgaG9zdENhbGxSZXR1cm5WYWx1ZTsKICAgICAgICAgRXhlY1N0YXRl
KiBuZXdDYWxsRnJhbWVSZXR1cm5WYWx1ZTsKICAgICAgICAgRXhlY1N0YXRlKiBjYWxsRnJhbWVG
b3JUaHJvdzsKQEAgLTQxMyw3ICs0MjQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
ICAgICAvLyBtYXgoc2NyYXRjaCBidWZmZXIgc2l6ZSkgKiA0LgogICAgICAgICAgICAgICAgIHNp
emVPZkxhc3RTY3JhdGNoQnVmZmVyID0gc2l6ZSAqIDI7CiAKLSAgICAgICAgICAgICAgICBzY3Jh
dGNoQnVmZmVycy5hcHBlbmQoU2NyYXRjaEJ1ZmZlcjo6Y3JlYXRlKHNpemVPZkxhc3RTY3JhdGNo
QnVmZmVyKSk7CisgICAgICAgICAgICAgICAgU2NyYXRjaEJ1ZmZlciogbmV3QnVmZmVyID0gU2Ny
YXRjaEJ1ZmZlcjo6Y3JlYXRlKHNpemVPZkxhc3RTY3JhdGNoQnVmZmVyKTsKKyAgICAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVChuZXdCdWZmZXIpOworICAgICAgICAgICAgICAgIHNjcmF0Y2hC
dWZmZXJzLmFwcGVuZChuZXdCdWZmZXIpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBT
Y3JhdGNoQnVmZmVyKiByZXN1bHQgPSBzY3JhdGNoQnVmZmVycy5sYXN0KCk7CkBAIC00OTUsNiAr
NTA4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFZNKFZNVHlwZSwgSGVhcFR5cGUpOwog
ICAgICAgICBzdGF0aWMgVk0qJiBzaGFyZWRJbnN0YW5jZUludGVybmFsKCk7CiAgICAgICAgIHZv
aWQgY3JlYXRlTmF0aXZlVGh1bmsoKTsKKworICAgICAgICB2b2lkIHNldFN0YWNrTGltaXQodm9p
ZCogbGltaXQpIHsgbV9zdGFja0xpbWl0ID0gbGltaXQ7IH0KKwogI2lmIEVOQUJMRShBU1NFTUJM
RVIpCiAgICAgICAgIGJvb2wgbV9jYW5Vc2VBc3NlbWJsZXI7CiAjZW5kaWYKQEAgLTUwNyw4ICs1
MjMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKICAgICAg
ICAgY29uc3QgQ2xhc3NJbmZvKiBtX2luaXRpYWxpemluZ09iamVjdENsYXNzOwogI2VuZGlmCi0K
LSNpZiBVU0UoU0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0spCisgICAgICAgIHNpemVfdCBtX3Jlc2Vy
dmVkWm9uZVNpemU7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKICAgICAgICAgc3RydWN0IHsK
ICAgICAgICAgICAgIHZvaWQqIG1fc3RhY2tMaW1pdDsKICAgICAgICAgICAgIHZvaWQqIG1fanNT
dGFja0xpbWl0OwpAQCAtNTE5LDYgKzUzNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgdm9pZCogbV9qc1N0YWNrTGltaXQ7CiAgICAgICAgIH07CiAjZW5kaWYKKyAgICAgICAgdm9p
ZCogbV9sYXN0U3RhY2tUb3A7CiAgICAgICAgIEpTVmFsdWUgbV9leGNlcHRpb247CiAgICAgICAg
IGJvb2wgbV9pbkRlZmluZU93blByb3BlcnR5OwogICAgICAgICBPd25QdHI8Q29kZUNhY2hlPiBt
X2NvZGVDYWNoZTsKQEAgLTU0NCw2ICs1NjEsMjIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHJldHVybiAmbV92bS0+aGVhcDsKICAgICB9CiAKKyNpZiAhRU5BQkxFKExMSU5UX0NfTE9PUCkK
KyAgICBleHRlcm4gIkMiIHZvaWQgc2FuaXRpemVTdGFja0ZvclZNSW1wbChWTSopOworI2VuZGlm
CisKKyAgICB2b2lkIGxvZ1Nhbml0aXplU3RhY2soVk0qKTsKKworICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk0oVk0qIHZtKQorICAgIHsKKyAgICAgICAgbG9nU2FuaXRp
emVTdGFjayh2bSk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICAgICAgdm0tPmludGVy
cHJldGVyLT5zdGFjaygpLnNhbml0aXplU3RhY2soKTsKKyNlbHNlCisgICAgICAgIHNhbml0aXpl
U3RhY2tGb3JWTUltcGwodm0pOworI2VuZGlmCisgICAgfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IAogI2VuZGlmIC8vIFZNX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNRW50cnlTY29wZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVu
dHJ5U2NvcGUuY3BwCmluZGV4IDQ3NzgyY2UzYmNhM2VhZDNkOWFmNGViM2I1ZmFkNWJkNWI5YWNm
ZTguLjg0OTNjNjJhZWE0MDM4YTI1Njc0YWQ4NGQ5N2MxNzMwN2IwZDlhNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIlZNRW50cnlTY29wZS5oIgogCiAjaW5jbHVkZSAiRGVidWdnZXIuaCIKKyNp
bmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvU3RhY2tC
b3VuZHMuaD4KIApAQCAtMzQsMTIgKzM1LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogCiBWTUVudHJ5
U2NvcGU6OlZNRW50cnlTY29wZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiAgICAgOiBtX3ZtKHZtKQotICAgICwgbV9zdGFjayh3dGZUaHJlYWREYXRhKCkuc3RhY2soKSkK
ICAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCkKLSAgICAsIG1fcHJldih2bS5lbnRy
eVNjb3BlKQotICAgICwgbV9wcmV2U3RhY2tMaW1pdCh2bS5zdGFja0xpbWl0KCkpCiAgICAgLCBt
X3JlY29tcGlsYXRpb25OZWVkZWQoZmFsc2UpCiB7CisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEo
KS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOwogICAgIGlmICghdm0uZW50cnlTY29wZSkg
ewogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAgICAgICAgIGlmIChFeGVjdXRhYmxlQWxsb2NhdG9y
Ojp1bmRlck1lbW9yeVByZXNzdXJlKCkpCkBAIC01MSwxNyArNTAsMjQgQEAgVk1FbnRyeVNjb3Bl
OjpWTUVudHJ5U2NvcGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAg
ICAgICAvLyBvYnNlcnZlIHRpbWUgeG9uZSBjaGFuZ2VzLgogICAgICAgICB2bS5yZXNldERhdGVD
YWNoZSgpOwogICAgIH0KLSAgICAvLyBDbGVhciB0aGUgZXhjZXB0aW9uIHN0YWNrIGJldHdlZW4g
ZW50cmllcwotICAgIHZtLmNsZWFyRXhjZXB0aW9uU3RhY2soKTsKIAotICAgIHZvaWQqIGxpbWl0
ID0gbV9zdGFjay5yZWN1cnNpb25MaW1pdChyZXF1aXJlZENhcGFjaXR5KCkpOwotICAgIHZtLnNl
dFN0YWNrTGltaXQobGltaXQpOworICAgIGlmICghdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5KSB7
CisgICAgICAgIHZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IHRoaXM7CisgICAgICAgIG1fc2F2
ZWRSZXNlcnZlZFpvbmVTaXplID0gdm0udXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVT
aXplKE9wdGlvbnM6OnJlc2VydmVkWm9uZVNpemUoKSk7CisgICAgfQorCisgICAgLy8gQ2xlYXIg
dGhlIGNhcHR1cmVkIGV4Y2VwdGlvbiBzdGFjayBiZXR3ZWVuIGVudHJpZXMKKyAgICB2bS5jbGVh
ckV4Y2VwdGlvblN0YWNrKCk7CiB9CiAKIFZNRW50cnlTY29wZTo6flZNRW50cnlTY29wZSgpCiB7
Ci0gICAgbV92bS5lbnRyeVNjb3BlID0gbV9wcmV2OwotICAgIG1fdm0uc2V0U3RhY2tMaW1pdCht
X3ByZXZTdGFja0xpbWl0KTsKKyAgICBpZiAobV92bS5lbnRyeVNjb3BlID09IHRoaXMpCisgICAg
ICAgIG1fdm0uZW50cnlTY29wZSA9IG51bGxwdHI7CisgICAgaWYgKG1fdm0uc3RhY2tQb2ludGVy
QXRWTUVudHJ5ID09IHRoaXMpIHsKKyAgICAgICAgbV92bS5zdGFja1BvaW50ZXJBdFZNRW50cnkg
PSBudWxscHRyOworICAgICAgICBtX3ZtLnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25l
U2l6ZShtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSk7CisgICAgfQogCiAgICAgaWYgKG1fcmVjb21w
aWxhdGlvbk5lZWRlZCkgewogICAgICAgICBpZiAobV92bS5lbnRyeVNjb3BlKQpAQCAtNzMsMjMg
Kzc5LDQgQEAgVk1FbnRyeVNjb3BlOjp+Vk1FbnRyeVNjb3BlKCkKICAgICB9CiB9CiAKLXNpemVf
dCBWTUVudHJ5U2NvcGU6OnJlcXVpcmVkQ2FwYWNpdHkoKSBjb25zdAotewotICAgIEludGVycHJl
dGVyKiBpbnRlcnByZXRlciA9IG1fdm0uaW50ZXJwcmV0ZXI7Ci0KLSAgICAvLyBXZSByZXF1aXJl
IGEgc21hbGxlciBzdGFjayBidWRnZXQgZm9yIHRoZSBlcnJvciBzdGFjay4gVGhpcyBpcyB0byBh
bGxvdwotICAgIC8vIHNvbWUgbWluaW1hbCBKUyBleGVjdXRpb24gdG8gcHJvY2VlZCBhbmQgZG8g
dGhlIHdvcmsgb2YgdGhyb3dpbmcgYSBzdGFjawotICAgIC8vIG92ZXJmbG93IGVycm9yIGlmIG5l
ZWRlZC4gSW4gY29udHJhc3QsIGFyYml0cmFyeSBKUyBjb2RlIHdpbGwgcmVxdWlyZSB0aGUKLSAg
ICAvLyBtb3JlIGdlbmVyb3VzIHN0YWNrIGJ1ZGdldCBpbiBvcmRlciB0byBwcm9jZWVkLgotICAg
IC8vCi0gICAgLy8gVGhlc2Ugc2l6ZXMgd2VyZSBkZXJpdmVkIGZyb20gdGhlIHN0YWNrIHVzYWdl
IG9mIGEgbnVtYmVyIG9mIHNpdGVzIHdoZW4KLSAgICAvLyBsYXlvdXQgb2NjdXJzIHdoZW4gd2Un
dmUgYWxyZWFkeSBjb25zdW1lZCBtb3N0IG9mIHRoZSBDIHN0YWNrLgotICAgIGNvbnN0IHNpemVf
dCByZXF1aXJlZFN0YWNrID0gMTI4ICogS0I7Ci0gICAgY29uc3Qgc2l6ZV90IGVycm9yTW9kZVJl
cXVpcmVkU3RhY2sgPSA2NCAqIEtCOwotCi0gICAgc2l6ZV90IHJlcXVpcmVkQ2FwYWNpdHkgPSBp
bnRlcnByZXRlci0+aXNJbkVycm9ySGFuZGxpbmdNb2RlKCkgPyBlcnJvck1vZGVSZXF1aXJlZFN0
YWNrIDogcmVxdWlyZWRTdGFjazsKLSAgICBSRUxFQVNFX0FTU0VSVChtX3N0YWNrLnNpemUoKSA+
PSByZXF1aXJlZENhcGFjaXR5KTsKLSAgICByZXR1cm4gcmVxdWlyZWRDYXBhY2l0eTsKLX0KLQog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTUVudHJ5U2NvcGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50
cnlTY29wZS5oCmluZGV4IGQ1YmE4MjNkMDRjMjA4N2EwYjI4MGE4NmVmMDU0NjA3ZGY2YjY2MWEu
LjlhOWNjYmZlNDViMGJmOGY1YzZmNWZiOWI5ODBiNmMyYjAwYjI3YmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSwxNiArNDUsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0UmVjb21waWxhdGlvbk5lZWRlZChib29sIHJlY29tcGlsZU5lZWRl
ZCkgeyBtX3JlY29tcGlsYXRpb25OZWVkZWQgPSByZWNvbXBpbGVOZWVkZWQ7IH0KIAogcHJpdmF0
ZToKLSAgICBzaXplX3QgcmVxdWlyZWRDYXBhY2l0eSgpIGNvbnN0OwotCiAgICAgVk0mIG1fdm07
CiAgICAgU3RhY2tTdGF0czo6Q2hlY2tQb2ludCBtX3N0YWNrQ2hlY2tQb2ludDsKLSAgICBTdGFj
a0JvdW5kcyBtX3N0YWNrOwogICAgIEpTR2xvYmFsT2JqZWN0KiBtX2dsb2JhbE9iamVjdDsKLQot
ICAgIC8vIG1fcHJldiBhbmQgbV9wcmV2U3RhY2tMaW1pdCBtYXkgYmVsb25nIHRvIGEgZGlmZmVy
ZW50IHRocmVhZCdzIHN0YWNrLgotICAgIFZNRW50cnlTY29wZSogbV9wcmV2OwotICAgIHZvaWQq
IG1fcHJldlN0YWNrTGltaXQ7CisgICAgc2l6ZV90IG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplOwog
ICAgIGJvb2wgbV9yZWNvbXBpbGF0aW9uTmVlZGVkOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3Zl
cnkuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1jb25zdGFudC1v
dmVyZmxvdy1yZWNvdmVyeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGJiMmNiZTNjYTdjZDZmMjJjMTNmMGQ1
ZmMwNmI3Y2VlMGE0MWRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9hZGQtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMKQEAgLTAsMCAr
MSwxNSBAQAorZnVuY3Rpb24gZm9vKGEpIHsKKyAgICByZXR1cm4gYS5mICsgMjAwMDAwMDAwMDsK
K30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkg
eworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MX0pOworICAgIGlmIChyZXN1bHQgIT0gMjAwMDAw
MDAwMSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQor
Cit2YXIgcmVzdWx0ID0gZm9vKHtmOjIwMDAwMDAwMDB9KTsKK2lmIChyZXN1bHQgIT0gNDAwMDAw
MDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1jb25zdGFu
dC1vdmVyZmxvdy1yZWNvdmVyeS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvYWRkLWludDUyLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1
NDhkMzRmYzE5MGM1OTg2MjAxNGRlNjI0MGU0OGJhNmNkZjY2MWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1jb25zdGFudC1v
dmVyZmxvdy1yZWNvdmVyeS5qcwpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28oYSkgewor
ICAgIHJldHVybiBhICogMjA5NzE0NCArIDEwNzM3NDU5MjA7Cit9CisKK25vSW5saW5lKGZvbyk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0g
Zm9vKDEwNzM3MzYzODMpOworICAgIGlmIChyZXN1bHQgIT0gMjI1MTc4MDg4NjkzNjA3MikKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVz
dWx0ID0gZm9vKDEwNzM3NDU5MTkpOworaWYgKHJlc3VsdCAhPSAyMjUxODAwODg1MzAxMjU2KQor
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWludDUyLWxhcmdlLWNvbnN0YW50
LW92ZXJmbG93LXJlY292ZXJ5LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9hZGQtaW50NTItbGFyZ2UtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzY0YmMzZmU1MjllZmRjNTkyMjJkMmUwODMzZGZmYmIzNjkxY2E1ZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWludDUyLWxhcmdl
LWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9u
IGZvbyhhKSB7CisgICAgcmV0dXJuIGEgKiAyMDk3MTQ0ICsgMTAwMDAwMDAwMDA7Cit9CisKK25v
SW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2
YXIgcmVzdWx0ID0gZm9vKDEwNzM3NDExNTEpOworICAgIGlmIChyZXN1bHQgIT0gMjI1MTc5OTgx
MjM3Mjc0NCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fQorCit2YXIgcmVzdWx0ID0gZm9vKDEwNzM3NDExNTIpOworaWYgKHJlc3VsdCAhPSAyMjUxNzk5
ODE0NDY5ODg4KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLW92ZXJmbG93
LXJlY292ZXJ5LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtb3Zl
cmZsb3ctcmVjb3ZlcnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUxNzE4YzVjMmJlMGVkY2RkYTY5OTgwZWJi
MzJmYTMyODNlNDJlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvYWRkLW92ZXJmbG93LXJlY292ZXJ5LmpzCkBAIC0wLDAgKzEsMTUgQEAKK2Z1
bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgcmV0dXJuIGEuZiArIGIuZjsKK30KKworbm9JbmxpbmUo
Zm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1
bHQgPSBmb28oe2Y6MX0sIHtmOjJ9KTsKKyAgICBpZiAocmVzdWx0ICE9IDMpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZv
byh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAwMDAwMDAwMH0pOworaWYgKHJlc3VsdCAhPSA0MDAwMDAw
MDAwKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLXNtYWxsLWNvbnN0YW50
LW92ZXJmbG93LXJlY292ZXJ5LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9hZGQtc21hbGwtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjRk
OWYwNGY2OGRlODhkOGRjYmNiNDRkYWQxOWY1OWFkMTI4NDYzMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLXNtYWxsLWNvbnN0YW50LW92
ZXJmbG93LXJlY292ZXJ5LmpzCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhhKSB7Cisg
ICAgcmV0dXJuIGEuZiArIDEwMDA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjF9KTsKKyAg
ICBpZiAocmVzdWx0ICE9IDEwMDEpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyh7ZjoyMTQ3NDgzMTQ4fSk7CitpZiAo
cmVzdWx0ICE9IDIxNDc0ODQxNDgpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9h
cnJheS1wdXNoLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJheS1w
dXNoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA1NjA5ODdhYmVlMTdmMTNiMzA1MWM5OWI0MjQ1YmRhMmU1OWIz
MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2FycmF5LXB1c2guanMKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rpb24gZm9vKCkgeworICAgIHZh
ciBhcnJheSA9IFtdOworICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDQyOyArK2kpCisgICAgICAgIHJlc3VsdC5wdXNoKGFycmF5LnB1c2goNyAtIGkpKTsKKyAg
ICByZXR1cm4gW2FycmF5LCByZXN1bHRdOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAg
IGlmIChyZXN1bHRbMF0udG9TdHJpbmcoKSAhPSAiNyw2LDUsNCwzLDIsMSwwLC0xLC0yLC0zLC00
LC01LC02LC03LC04LC05LC0xMCwtMTEsLTEyLC0xMywtMTQsLTE1LC0xNiwtMTcsLTE4LC0xOSwt
MjAsLTIxLC0yMiwtMjMsLTI0LC0yNSwtMjYsLTI3LC0yOCwtMjksLTMwLC0zMSwtMzIsLTMzLC0z
NCIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIGFycmF5OiAiICsgcmVzdWx0WzBdOworICAg
IGlmIChyZXN1bHRbMV0udG9TdHJpbmcoKSAhPSAiMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIs
MTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEs
MzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIiKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCBhcnJheTogIiArIHJlc3VsdFsxXTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9lbXB0eS1mdW5jdGlvbi5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZW1wdHktZnVuY3Rpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEyZTUx
MDVlYTIzODU1N2FjYTk2YjdlZTRkNGViODhiMGQ1NTg4YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZW1wdHktZnVuY3Rpb24uanMKQEAgLTAs
MCArMSwxMCBAQAorZnVuY3Rpb24gZm9vKCkgeyB9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKCk7Cisg
ICAgaWYgKHJlc3VsdCAhPT0gdm9pZCAwKQorICAgICAgICB0aHJvdyAiWW91IGJyb2tlIEpTQyBz
byBoYXJkIHRoYXQgZXZlbiB0aGUgZW1wdHkgZnVuY3Rpb24gZG9lc24ndCB3b3JrOiAiICsgcmVz
dWx0OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2V4aXQtYWZ0ZXItaW50MzItdG8tZG91YmxlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDMyLXRvLWRvdWJsZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODBj
NWE5YjcyYThkYjNjMDBjZTgwNGM0NWM4ZmJjOTUwNmE5OTc2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDMyLXRvLWRv
dWJsZS5qcwpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28oeCwgbykgeworICAgIHJldHVy
biBvLmYgKyB4OworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyg0Mi41LCB7Zjo1fSk7CisgICAgaWYg
KHJlc3VsdCAhPSA0Ny41KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oIjQyIiwge2Y6NX0pOworaWYgKHJlc3VsdCAh
PSAiNTQyIikKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50
NTItdG8tZG91YmxlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0
LWFmdGVyLWludDUyLXRvLWRvdWJsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNmJhYjNiMWRhYzE1ZjY4ZDIz
YTQ3MjI5ZmJiYjcxYTZjNmZhOTg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLWRvdWJsZS5qcwpAQCAtMCww
ICsxLDE2IEBACitmdW5jdGlvbiBmb28oYSwgYiwgYykgeworICAgIHJldHVybiBhLmYgKyBiLmYg
KyBjLmY7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAw
MDAwfSwge2Y6MC41fSk7CisgICAgaWYgKHJlc3VsdCAhPSA0MDAwMDAwMDAwLjUpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9
IGZvbyh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAwMDAwMDAwMH0sIHtmOiI0MiJ9KTsKK2lmIChyZXN1
bHQgIT0gIjQwMDAwMDAwMDA0MiIpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OworCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2V4aXQtYWZ0ZXItaW50NTItdG8tdmFsdWUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8tdmFsdWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJlZDFm
ODUzNTAyNTA2MTgwNjZmYmFiMjkzOTk0YTQyMmZlOTA1NgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQ1Mi10by12YWx1
ZS5qcwpAQCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiBmb28oYSwgYiwgYykgeworICAgIGMuZi5m
ID0gYS5mICsgYi5mOworfQorCitub0lubGluZShmb28pOworCit2YXIgY291bnRlciA9IDA7Citm
dW5jdGlvbiBtYWtlV2VpcmRPYmplY3QoKSB7CisgICAgdmFyIHJlc3VsdCA9IHt9OworICAgIHJl
c3VsdFsiYmxhaCIgKyAoY291bnRlcisrKV0gPSA0MjsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIG8gPSBtYWtlV2Vp
cmRPYmplY3QoKTsKKyAgICBmb28oe2Y6MjAwMDAwMDAwMH0sIHtmOjIwMDAwMDAwMDB9LCB7Zjpv
fSk7CisgICAgaWYgKG8uZiAhPSA0MDAwMDAwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciB0aGluZ3k7CitOdW1iZXIucHJvdG90eXBl
Ll9fZGVmaW5lU2V0dGVyX18oImYiLCBmdW5jdGlvbih2YWx1ZSkgeyB0aGluZ3kgPSB2YWx1ZTsg
fSk7Citmb28oe2Y6MjAwMDAwMDAwMH0sIHtmOjIwMDAwMDAwMDB9LCB7Zjo0Mn0pOworaWYgKHRo
aW5neSAhPSA0MDAwMDAwMDAwKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHRo
aW5neTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhp
dC1hZnRlci1sbHZtLWZvbGRzLWxhcmdlLWludC1jb25zdGFudC5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1sbHZtLWZvbGRzLWxhcmdlLWludC1jb25z
dGFudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40OGQzNWZlNWJkMzBhMDQ5ZDY2OTEwODNkM2E5Y2ExYmMzMTQw
MWE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9leGl0LWFmdGVyLWxsdm0tZm9sZHMtbGFyZ2UtaW50LWNvbnN0YW50LmpzCkBAIC0wLDAgKzEs
MTggQEAKK2Z1bmN0aW9uIGZvbyhvLCBpbykgeworICAgIHZhciBpID0gaW8uZjsKKyAgICBpZiAo
aSAhPSA5MjE2MCkKKyAgICAgICAgby5nID0gNDI7CisgICAgcmV0dXJuIG8uZi5mICsgaTsKK30K
Kworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgewor
ICAgIHZhciByZXN1bHQgPSBmb28oe2Y6e2Y6NDJ9fSwge2Y6OTIxNjB9KTsKKyAgICBpZiAocmVz
dWx0ICE9IDkyMjAyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oe2Y6e2c6MjAsIGY6MjF9fSwge2Y6OTIxNjB9KTsK
K2lmIChyZXN1bHQgIT0gOTIxODEpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9l
eGl0LWZyb20tZnRsLXdpdGgtYXJpdHktY2hlY2stZmFpbC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1mcm9tLWZ0bC13aXRoLWFyaXR5LWNoZWNrLWZhaWwuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmJlM2IyMTBhMDFlMDA1NmU3YTZkNGVjYzExOWZlZjdjZWRkMjllZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1m
cm9tLWZ0bC13aXRoLWFyaXR5LWNoZWNrLWZhaWwuanMKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rp
b24gZm9vKG8sIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGopIHsKKyAgICByZXR1cm4gby5m
OworfQorCitmdW5jdGlvbiBiYXIobykgeworICAgIHJldHVybiBmb28obyk7Cit9CisKK25vSW5s
aW5lKGZvbyk7Citub0lubGluZShiYXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKQorICAgIGJhcih7Zjo0Mn0pOworCit2YXIgcmVzdWx0ID0gYmFyKHtnOjI0LCBmOjQzfSk7
CitpZiAocmVzdWx0ICE9IDQzKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9m
dGwtYXJpdGhjb3MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1h
cml0aGNvcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGExZjVmYzMwMmYyMmJjNmM2N2JiMmRmYWYyODU0ZGE2
ZjRhMzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9mdGwtYXJpdGhjb3MuanMKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gZm9vKHgpIHsK
KyAgICByZXR1cm4gTWF0aC5jb3MoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciBqID0g
MDsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgaiA9IGZvbyhpKTsKKwor
aWYgKC0wLjUwOTg3NTM3MjQxNzkwMDkgIT0gail7CisgICAgdGhyb3cgIkVycm9yIgorfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhzaW4u
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNpbi5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iNTU5ZjRkNDkwNTE5ZDI3NzE5ZDViNDM5MzAxOGE5NDg0NWE5NTI2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJp
dGhzaW4uanMKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4g
TWF0aC5zaW4oeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciBqID0gMDsKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgaiA9IGZvbyhpKTsKKworaWYgKDAuODYwMjQ4
MjgwNzg5NzQyICE9IGopeworICAgIHRocm93ICJFcnJvciIKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc3FydC5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc3FydC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
YmUwMWNlNGI3MGUyNDA1ODAwNTQ3ZmVlNmIwMWQ3MTYyNzI3Y2MyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhzcXJ0LmpzCkBA
IC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIE1hdGguc3FydCh4
KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFyIGogPSAwOworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkKKyAgICBqID0gZm9vKGkpOworCitpZiAoIDMxNi4yMjYxODQ4NzQwNTUg
IT0gail7CisgICAgdGhyb3cgIkVycm9yIgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWRmZDllNGJlNjlmNjVi
OTUyNTZlMGQwMzYxYzI5NjQ0ZDUzOTU2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWQuanMKQEAgLTAsMCArMSwxMyBAQAor
CitPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lU2V0dGVyX18oInIiLCBmdW5jdGlvbih2YWwpeyBv
ID0gdmFsIH0pCisKK2Z1bmN0aW9uIGZvbyh4KXsKKyAgICB2YXIgbiA9IHsgfQorICAgIG4uciA9
IHg7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyAr
K2kpCisgICAgZm9vKGkpOworCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2Z0bC1wdXRieWlkZGlyZWN0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTBhZDBkY2IyNmQ0
MWFmN2FiZDllNjcxZjc0M2E5M2I4ZGZiM2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVjdC5qcwpAQCAtMCwwICsx
LDEyIEBACitmdW5jdGlvbiBmb28oeCl7CisgICAgcmV0dXJuIHsgMCA6IDEgLCBhIDogeCB9Cit9
CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisg
ICAgbyA9IGZvbyhpKTsKKworaWYgKG8uYSAhPSA5OTk5OSB8fCBvWzBdICE9IDEpCisgICAgdGhy
b3cgIkVycm9yIgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJv
bS1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjMwMWQ3Njlk
ZDc2ZmFlZDA1YWVmNjNkNzhjMDk4YmRjMTVhNjlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS1nZXR0ZXIt
dGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwpAQCAtMCwwICsxLDM3IEBACitmdW5jdGlvbiBmb28o
bykgeworICAgIHJldHVybiBvLmYgKyAxOworfQorCitub0lubGluZShmb28pOworCit2YXIgc2hv
dWxkVGhyb3cgPSBmYWxzZTsKKworZnVuY3Rpb24gbWFrZVdpdGhHZXR0ZXIoKSB7CisgICAgdmFy
IG8gPSB7fTsKKyAgICBvLl9fZGVmaW5lR2V0dGVyX18oImYiLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgaWYgKHNob3VsZFRocm93KQorICAgICAgICAgICAgdGhyb3cgImhlbGxvIjsKKyAgICAgICAg
cmV0dXJuIDQyOworICAgIH0pOworICAgIHJldHVybiBvOworfQorCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7ZjoyM30pOworICAgIGlm
IChyZXN1bHQgIT0gMjQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKKyAgICByZXN1bHQgPSBmb28obWFrZVdpdGhHZXR0ZXIoKSk7CisgICAgaWYgKHJlc3Vs
dCAhPSA0MykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fQorCit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIHNob3VsZFRocm93ID0gdHJ1ZTsKKyAgICBm
b28obWFrZVdpdGhHZXR0ZXIoKSk7Cit9IGNhdGNoIChlKSB7CisgICAgZGlkVGhyb3cgPSBlOwor
fQorCitpZiAoZGlkVGhyb3cgIT0gImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0
aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20t
dW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS10aGF0LWRvZXMtbm90LWV4
aXQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJv
dy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUtdGhhdC1kb2Vz
LW5vdC1leGl0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxNGQwY2ViNmVjYjBhYjk3ZmYwOTcxZDA0YWNlNjE5
M2IzZTA0YjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gtb3B0
aW1pemVkLWNvZGUtdGhhdC1kb2VzLW5vdC1leGl0LmpzCkBAIC0wLDAgKzEsMzUgQEAKK2Z1bmN0
aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIG8uZjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVu
Y3Rpb24gbWFrZVdpdGhHZXR0ZXIoKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBvLl9fZGVmaW5l
R2V0dGVyX18oImYiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhyb3cgImhlbGxvIjsKKyAgICB9
KTsKKyAgICByZXR1cm4gbzsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkg
eworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MjN9KTsKKyAgICBpZiAocmVzdWx0ICE9IDIzKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0
ID0gZm9vKHtnOjEyLCBmOjEzfSk7CisgICAgaWYgKHJlc3VsdCAhPSAxMykKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7Zzox
MiwgaDoxMywgZjoxNH0pOworICAgIGlmIChyZXN1bHQgIT0gMTQpCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIGRpZFRocm93OwordHJ5IHsK
KyAgICBmb28obWFrZVdpdGhHZXR0ZXIoKSk7Cit9IGNhdGNoIChlKSB7CisgICAgZGlkVGhyb3cg
PSBlOworfQorCitpZiAoZGlkVGhyb3cgIT0gImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGRp
ZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93
LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tdW5leHBl
Y3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWY3NzI2
YTQ4OThlNTc2NDFjMmFlM2MxZTBiMDE1N2JmZmYxYWQwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4
cGVjdGVkLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCkBAIC0wLDAgKzEsMzUgQEAK
K2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIG8uZiArIDE7Cit9CisKK25vSW5saW5lKGZv
byk7CisKK2Z1bmN0aW9uIG1ha2VXaXRoR2V0dGVyKCkgeworICAgIHZhciBvID0ge307CisgICAg
by5fX2RlZmluZUdldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHRocm93ICJoZWxs
byI7CisgICAgfSk7CisgICAgcmV0dXJuIG87Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjIzfSk7CisgICAgaWYgKHJlc3Vs
dCAhPSAyNCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
ICAgIHJlc3VsdCA9IGZvbyh7ZzoxMiwgZjoxM30pOworICAgIGlmIChyZXN1bHQgIT0gMTQpCisg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQg
PSBmb28oe2c6MTIsIGg6MTMsIGY6MTR9KTsKKyAgICBpZiAocmVzdWx0ICE9IDE1KQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciBkaWRUaHJv
dzsKK3RyeSB7CisgICAgZm9vKG1ha2VXaXRoR2V0dGVyKCkpOworfSBjYXRjaCAoZSkgeworICAg
IGRpZFRocm93ID0gZTsKK30KKworaWYgKGRpZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cg
IkVycm9yOiBkaWRuJ3QgdGhyb3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhy
b3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ljLXRo
cm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2ljLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTY0MDQyNjRhNDAzNjkwZmI1OTlmMTYwOWIwOWJlOWI1M2IzNDA1YQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaWMtdGhyb3ctdGhyb3VnaC1v
cHRpbWl6ZWQtY29kZS5qcwpAQCAtMCwwICsxLDI5IEBACitmdW5jdGlvbiBmb28obykgeworICAg
IHJldHVybiBvLmYgKyAxOworfQorCitOdW1iZXIucHJvdG90eXBlLmYgPSA0MjsKKworbm9Jbmxp
bmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBy
ZXN1bHQgPSBmb28oMjMpOworICAgIGlmIChyZXN1bHQgIT0gNDMpCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28oe2Y6MjV9KTsK
KyAgICBpZiAocmVzdWx0ICE9IDI2KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gZm9vKHtnOjEyLCBmOjEzfSk7CisgICAgaWYgKHJl
c3VsdCAhPSAxNCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0
OworfQorCit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIGZvbyh2b2lkIDApOworfSBjYXRjaCAo
ZSkgeworICAgIGRpZFRocm93ID0gZTsKK30KKworaWYgKCFkaWRUaHJvdyB8fCBkaWRUaHJvdy50
b1N0cmluZygpLmluZGV4T2YoIlR5cGVFcnJvcjoiKSAhPSAwKQorICAgIHRocm93ICJFcnJvcjog
ZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4Y2VwdGlvbjogIiArIGRpZFRocm93OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12
YXJhcmdzLWFuZC1jYWxsLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9p
bmxpbmUtY2FsbC12YXJhcmdzLWFuZC1jYWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwMDFkMjU2MDBkZTQ1
NWQ5MjIzNjY2MmYxNmZmNjYyMDBjMjRlNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3MtYW5kLWNhbGwuanMK
QEAgLTAsMCArMSwyNSBAQAorZnVuY3Rpb24gZm9vKGEsIGIpIHsKKyAgICByZXR1cm4gYmFyKGEs
IGIpOworfQorCitmdW5jdGlvbiBiYXIoYSwgYikgeworICAgIHZhciB4ID0gYmF6LmFwcGx5KG51
bGwsIGFyZ3VtZW50cyk7CisgICAgdmFyIHkgPSBiYXooYSwgYikKKyAgICByZXR1cm4geCArIHkg
KiAzOworfQorCitmdW5jdGlvbiBiYXooYSwgYikgeworICAgIHJldHVybiBhICsgYiAqIDI7Cit9
CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsK
KyAgICB2YXIgcmVzdWx0ID0gZm9vKDcsIDExKTsKKyAgICBpZiAocmVzdWx0ICE9IDExNikKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVz
dWx0ID0gZm9vKDUsIDIxNDc0ODM2NDYpOworaWYgKHJlc3VsdCAhPSAxNzE3OTg2OTE4OCkKKyAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3MuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3MuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWU3YTU0NTA5YTcyOTIyOTUwOWM5Y2ZiMTFkYWEwMWRiMzc0MWE2YgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5l
LWNhbGwtdmFyYXJncy5qcwpAQCAtMCwwICsxLDIzIEBACitmdW5jdGlvbiBmb28oYSwgYikgewor
ICAgIHJldHVybiBiYXIoYSwgYik7Cit9CisKK2Z1bmN0aW9uIGJhcihhLCBiKSB7CisgICAgcmV0
dXJuIGJhei5hcHBseShudWxsLCBhcmd1bWVudHMpOworfQorCitmdW5jdGlvbiBiYXooYSwgYikg
eworICAgIHJldHVybiBhICsgYiAqIDI7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDcsIDExKTsK
KyAgICBpZiAocmVzdWx0ICE9IDI5KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oNSwgMjE0NzQ4MzY0Nik7CitpZiAo
cmVzdWx0ICE9IDQyOTQ5NjcyOTcpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9p
bmxpbmUtY2xvc3VyZS1jYWxsLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkOWE2MTRkZmE0ZWM4ZjM0NmEy
MDAxMmE2MGJkZTg5OGRiYWFiMGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jbG9zdXJlLWNhbGwuanMKQEAgLTAsMCArMSwxNiBA
QAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oeSkgeyByZXR1cm4geCAr
IHk7IH0KK30KKworZnVuY3Rpb24gYmFyKGEsIGIpIHsKKyAgICByZXR1cm4gZm9vKGEpKGIpOwor
fQorCitub0lubGluZShmb28pOworbm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBiYXIoaSwgaSArIDEpOworICAgIGlm
IChyZXN1bHQgIT0gaSAqIDIgKyAxKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQg
Zm9yICIgKyBpICsgIjogIiArIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1hbmQtb3V0LW9mLWJvdW5k
cy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZh
bC1pbi1hbmQtb3V0LW9mLWJvdW5kcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzBmODVlZmE3N2FlNjQ2MzY2
NWFkMzU2NWE3OThmOGFmZGVkYTdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWFuZC1vdXQtb2YtYm91bmRz
LmpzCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgYVs0Ml0gPSA5NTAx
MDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChsZW5ndGgsIGV4cGVjdGVk
KSB7CisgICAgdmFyIGEgPSBuZXcgSW50MTZBcnJheShsZW5ndGgpOworICAgIGZvbyhhKTsKKyAg
ICB2YXIgcmVzdWx0ID0gYVs0Ml07CisgICAgaWYgKHJlc3VsdCAhPSBleHBlY3RlZCkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgdmFsdWUgYXQgYVs0Ml06ICIgKyByZXN1bHQ7Cit9CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDEwLCB2b2lkIDApOwor
ICAgIHRlc3QoMTAwLCAyOTQ3NCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtaW4tYm91bmRzLXRoZW4tZXhpdC1vdXQt
b2YtYm91bmRzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1w
dXQtYnktdmFsLWluLWJvdW5kcy10aGVuLWV4aXQtb3V0LW9mLWJvdW5kcy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wZWQ3NDYyYTQzMjMyN2JkMjM4ZDM5ZTkzYjM4Zjg1MzQ2OTE1NDYzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFs
LWluLWJvdW5kcy10aGVuLWV4aXQtb3V0LW9mLWJvdW5kcy5qcwpAQCAtMCwwICsxLDE5IEBACitm
dW5jdGlvbiBmb28oYSkgeworICAgIGFbNDJdID0gOTUwMTA7Cit9CisKK25vSW5saW5lKGZvbyk7
CisKK2Z1bmN0aW9uIHRlc3QobGVuZ3RoLCBleHBlY3RlZCkgeworICAgIHZhciBhID0gbmV3IElu
dDE2QXJyYXkobGVuZ3RoKTsKKyAgICBmb28oYSk7CisgICAgdmFyIHJlc3VsdCA9IGFbNDJdOwor
ICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHZh
bHVlIGF0IGFbNDJdOiAiICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
MDsgKytpKQorICAgIHRlc3QoMTAwLCAyOTQ3NCk7CisKK3Rlc3QoMTAsIHZvaWQgMCk7CisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5
LXZhbC1vdXQtb2YtYm91bmRzLWJvdW5kcy10aGVuLWRvLWluLWJvdW5kcy5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1vdXQtb2YtYm91bmRz
LWJvdW5kcy10aGVuLWRvLWluLWJvdW5kcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmI5NjRjYTA3MzZkM2E2
MDQyNjE1MzcwNWQ1Y2VhMzFkMTc4MTc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLW91dC1vZi1ib3VuZHMtYm91
bmRzLXRoZW4tZG8taW4tYm91bmRzLmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIGZvbyhh
KSB7CisgICAgYVs0Ml0gPSA5NTAxMDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24g
dGVzdChsZW5ndGgsIGV4cGVjdGVkKSB7CisgICAgdmFyIGEgPSBuZXcgSW50MTZBcnJheShsZW5n
dGgpOworICAgIGZvbyhhKTsKKyAgICB2YXIgcmVzdWx0ID0gYVs0Ml07CisgICAgaWYgKHJlc3Vs
dCAhPSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgdmFsdWUgYXQgYVs0Ml06
ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAg
dGVzdCgxMCwgdm9pZCAwKTsKKwordGVzdCgxMDAsIDI5NDc0KTsKKwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnZhbGlkYXRpb24tcG9pbnQuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludmFsaWRhdGlvbi1wb2ludC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42ZjhiNTVjN2M2M2JlZmJmM2M2OWU4YTlkOGMyNjVmNWUyMDRhN2JiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnZhbGlk
YXRpb24tcG9pbnQuanMKQEAgLTAsMCArMSwyNCBAQAorZnVuY3Rpb24gZm9vKG8sIHApIHsKKyAg
ICBwb3NzaWJseURvQmFkVGhpbmdzKHApOworICAgIHJldHVybiBvLmYoKTsKK30KK25vSW5saW5l
KGZvbyk7CisKK2Z1bmN0aW9uIFRoaW5neSgpIHsgfQorVGhpbmd5LnByb3RvdHlwZS5mID0gZnVu
Y3Rpb24oKSB7IHJldHVybiA0MjsgfQorCitmdW5jdGlvbiBwb3NzaWJseURvQmFkVGhpbmdzKHAp
IHsKKyAgICBpZiAocCkKKyAgICAgICAgVGhpbmd5LnByb3RvdHlwZS5mID0gZnVuY3Rpb24oKSB7
IHJldHVybiAyNDsgfQorfQorbm9JbmxpbmUocG9zc2libHlEb0JhZFRoaW5ncyk7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBU
aGluZ3koKSwgZmFsc2UpOworICAgIGlmIChyZXN1bHQgIT0gNDIpCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyhuZXcg
VGhpbmd5KCksIHRydWUpOworaWYgKHJlc3VsdCAhPSAyNCkKKyAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL21ha2Utcm9wZS0yLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9tYWtlLXJvcGUtMi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmEyM2FiNTU4MzBiZWUxNWJkZDk0
NGNjMmQxZTg4NjI1NmMxY2EyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9tYWtlLXJvcGUtMi5qcwpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlv
biBmb28oeCkgeworICAgIHJldHVybiAiaGVsbG8iICsgeDsKK30KKworbm9JbmxpbmUoZm9vKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBm
b28oIiB3b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAg
ICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCB0
eXBlOiAiICsgcmVzdWx0OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyB3b3JsZCIp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYWtlLXJvcGUtMy5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTMuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2E4NTJjYzM3MWFiZTQ4Mzg2YTIwMGMwYzU2N2MzNWMyYWNhZWM4ZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3Bl
LTMuanMKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gImhl
bGxvIiArIHggKyAiISEiOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygiIHdvcmxkIik7CisgICAg
aWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0
KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IHR5cGU6ICIgKyByZXN1bHQ7Cisg
ICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIHdvcmxkISEiKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXN0b3JhZ2UtYXJyYXktd2l0aC1z
aXplLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktc3Rv
cmFnZS1hcnJheS13aXRoLXNpemUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQ2MWJlOTU2YWM1NWFhZjEyMGE5
ZDg0YWVjNGI2ZWE5MmVhM2MyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXN0b3JhZ2UtYXJyYXktd2l0aC1zaXplLmpzCkBA
IC0wLDAgKzEsMjMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIG5ldyBBcnJheSh4
KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChzaXplKSB7CisgICAgdmFy
IHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSBzaXplKQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgdmFyIHNhd1Ro
aW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0KQorICAgICAgICBzYXdUaGlu
Z3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJy
YXkgaXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIHJlc3VsdFswXSA9ICI0Mi41IjsK
KyAgICBpZiAocmVzdWx0WzBdICE9ICI0Mi41IikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJh
eSBpcyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMTAwMDAwMCk7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS13aXRoLXNpemUtd2l0aC1i
YWQtdGltZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFycmF5
LXdpdGgtc2l6ZS13aXRoLWJhZC10aW1lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1Njc3NDE1NmYyOWNiOTFi
ZGI1OTkxM2FmNDU5MTIxNGI1NDc2ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS13aXRoLXNpemUtd2l0aC1iYWQtdGltZS5q
cwpAQCAtMCwwICsxLDM0IEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJy
YXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciBwb2tlOworQXJyYXkucHJvdG90eXBl
Ll9fZGVmaW5lU2V0dGVyX18oIjEiLCBmdW5jdGlvbigpIHsKKyAgICBwb2tlID0gInBva2UiOwor
fSk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAgIHZhciByZXN1bHQgPSBmb28oc2l6ZSk7
CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBzYXdUaGluZ3MgPSBmYWxzZTsKKyAgICBm
b3IgKHZhciBzIGluIHJlc3VsdCkgeworICAgICAgICBpZiAocyAhPSAiMSIpCisgICAgICAgICAg
ICBzYXdUaGluZ3MgPSB0cnVlOworICAgIH0KKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSAiNDIuNSI7CisgICAgaWYgKHJlc3VsdFswXSAhPSAiNDIuNSIpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYXJyYXkgaXMgaW4gd2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7CisgICAgcG9r
ZSA9IG51bGw7CisgICAgcmVzdWx0WzFdID0gNDI7CisgICAgaWYgKHBva2UgIT0gInBva2UiKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IHNldHRlciBub3QgY2FsbGVkLiI7Cit9CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDQyKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWNvbnRpZ3VvdXMtYXJyYXkt
d2l0aC1zaXplLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctY29u
dGlndW91cy1hcnJheS13aXRoLXNpemUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA4YTZmNjdlODE5NWE1ZTI1
NDEyNjk4N2M5OTQ1YmJlNmM1ZDljMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWNvbnRpZ3VvdXMtYXJyYXktd2l0aC1zaXplLmpzCkBA
IC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIG5ldyBBcnJheSh4
KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChzaXplKSB7CisgICAgdmFy
IHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSBzaXplKSB7Cisg
ICAgICAgIHByaW50KCJHb3QgYSB3ZWlyZCBsZW5ndGg6ICIgKyByZXN1bHQubGVuZ3RoKTsKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIH0KKyAgICB2
YXIgc2F3VGhpbmdzID0gZmFsc2U7CisgICAgZm9yICh2YXIgcyBpbiByZXN1bHQpCisgICAgICAg
IHNhd1RoaW5ncyA9IHRydWU7CisgICAgaWYgKHNhd1RoaW5ncykgeworICAgICAgICBwcmludCgi
U2F3IHRoaW5ncyEiKTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiBiYWQgc3Rh
dGU6ICIgKyByZXN1bHQ7CisgICAgfQorICAgIHJlc3VsdFswXSA9ICI0Mi41IjsKKyAgICBpZiAo
cmVzdWx0WzBdICE9ICI0Mi41IikgeworICAgICAgICBwcmludCgiRGlkbid0IHN0b3JlIHdoYXQg
SSB0aG91Z2h0IEkgc3RvcmVkLiIpOworICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGlu
IHdpZXJkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIH0KK30KKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMCk7CisgICAgdGVzdCgxKTsKKyAgICB0ZXN0KDQy
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3
LWRvdWJsZS1hcnJheS13aXRoLXNpemUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL25ldy1kb3VibGUtYXJyYXktd2l0aC1zaXplLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ZjI4YmE2
NDM4OWNmYzBhNWUwMDdkYjY1ZWFiZjliMGVlNzY0OGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1kb3VibGUtYXJyYXktd2l0aC1zaXpl
LmpzCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIG5ldyBB
cnJheSh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChzaXplKSB7Cisg
ICAgdmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSBzaXpl
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgdmFy
IHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0KQorICAgICAgICBz
YXdUaGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpCisgICAgICAgIHRocm93ICJFcnJv
cjogYXJyYXkgaXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDQy
LjU7CisgICAgaWYgKHJlc3VsdFswXSAhPSA0Mi41KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFy
cmF5IGlzIGluIHdpZXJkIHN0YXRlOiAiICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdGVzdCgwKTsKKyAgICB0ZXN0KDEpOworICAgIHRlc3Qo
NDIpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9u
ZXctaW50MzItYXJyYXktd2l0aC1zaXplLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9uZXctaW50MzItYXJyYXktd2l0aC1zaXplLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmOGM1ZGI3
MjA3ZWRhNDQzYzdmMjJiMmIyMzE2NWMxMWVmNGYyNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1pbnQzMi1hcnJheS13aXRoLXNpemUu
anMKQEAgLTAsMCArMSwyNSBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gbmV3IEFy
cmF5KHgpOworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAg
ICB2YXIgcmVzdWx0ID0gZm9vKHNpemUpOworICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIg
c2F3VGhpbmdzID0gZmFsc2U7CisgICAgZm9yICh2YXIgcyBpbiByZXN1bHQpCisgICAgICAgIHNh
d1RoaW5ncyA9IHRydWU7CisgICAgaWYgKHNhd1RoaW5ncykKKyAgICAgICAgdGhyb3cgIkVycm9y
OiBhcnJheSBpcyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gNDI7
CisgICAgaWYgKHJlc3VsdFswXSAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBp
cyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7ICsraSkgeworICAgIHRlc3QoMCk7CisgICAgdGVzdCgxKTsKKyAgICB0ZXN0KDQyKTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LXVu
ZGVjaWRlZC1hcnJheS13aXRoLXNpemUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL25ldy11bmRlY2lkZWQtYXJyYXktd2l0aC1zaXplLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNDJj
N2UyMTFkZWUzMTQwNzI2ZGZjN2Q5ZTEwZmE0MWY4MDJmOWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy11bmRlY2lkZWQtYXJyYXktd2l0
aC1zaXplLmpzCkBAIC0wLDAgKzEsMjIgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJu
IG5ldyBBcnJheSh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChzaXpl
KSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVzdWx0Lmxlbmd0aCAh
PSBzaXplKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cisg
ICAgdmFyIHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0KQorICAg
ICAgICBzYXdUaGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpCisgICAgICAgIHRocm93
ICJFcnJvcjogYXJyYXkgaXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworfQorCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdGVzdCgwKTsKKyAgICB0ZXN0KDEpOwor
ICAgIHRlc3QoNDIpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9wdXQtYnktaWQtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLXRocm93LXRocm91Z2gtb3B0
aW1pemVkLWNvZGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc1NDFiYTk2MzJlNGVmODk2OWZlODY0NTIxMTI2
NzdjNzlkMTY3NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvcHV0LWJ5LWlkLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKQEAgLTAs
MCArMSwzMyBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgby5m
ID0gNDI7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIGZvbyhvKTsKKyAgICBpZiAoby5mICE9IDQy
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBvLmY7CisgICAgbyA9IHtm
OjIzfTsKKyAgICBmb28obyk7CisgICAgaWYgKG8uZiAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOworICAgIG8gPSB7ZzoxMn07CisgICAgZm9vKG8pOwor
ICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IG8uZjsKK30KKwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICB2YXIgbyA9IHt9OworICAgIE9i
amVjdC5mcmVlemUobyk7CisgICAgZm9vKG8pOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93
ID0gZTsKK30KKworaWYgKCFkaWRUaHJvdyB8fCBkaWRUaHJvdy50b1N0cmluZygpLmluZGV4T2Yo
IlR5cGVFcnJvcjoiKSAhPSAwKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRo
cmV3IHdyb25nIGV4Y2VwdGlvbjogIiArIGRpZFRocm93OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWN1cnNlLWluZmluaXRlbHktb24tZ2V0dGVyLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWN1cnNlLWluZmluaXRlbHkt
b24tZ2V0dGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlMGJlOGI0MmY3MDgxMGZlMTFhOGMzOTc2Yjg3NDdj
MWRjOGI0N2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3JlY3Vyc2UtaW5maW5pdGVseS1vbi1nZXR0ZXIuanMKQEAgLTAsMCArMSwxOSBAQAor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkgeworICAgIHZhciBvID0ge307CisgICAgby5f
X2RlZmluZUdldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiBvLmY7Cisg
ICAgfSk7CisgICAgdmFyIGRpZFRocm93OworICAgIHZhciByZXN1bHQ7CisgICAgcmVzdWx0ID0g
Im5vdCBzZXQiOworICAgIHRyeSB7CisgICAgICAgIHJlc3VsdCA9IG8uZjsKKyAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgIGRpZFRocm93ID0gZTsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAi
bm90IHNldCIpCisgICAgICAgIHRocm93ICJEaWQgc2V0IHJlc3VsdDogIiArIHJlc3VsdDsKKyAg
ICBpZiAoIWRpZFRocm93IHx8IGRpZFRocm93LnRvU3RyaW5nKCkuaW5kZXhPZigiUmFuZ2VFcnJv
ciIpICE9IDApCisgICAgICAgIHRocm93ICJCYWQgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7Cit9
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVwZWF0
ZWQtYXJpdHktY2hlY2stZmFpbC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvcmVwZWF0ZWQtYXJpdHktY2hlY2stZmFpbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzhjNDhmNzMwMmFj
MDlhMDA4NDNhYjEzYjJhYWUyODBhNWRhNjViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZXBlYXRlZC1hcml0eS1jaGVjay1mYWlsLmpzCkBA
IC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gYmFyKGEsYixjLGQsZSxmLGcsaCxpLGosaykgeworfQor
Citub0lubGluZShiYXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDAwOyArK2kpCisg
ICAgYmFyKCk7CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvcnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9ydW50aW1lLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNv
ZGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWQ5ZGYxZGRmYmM1MjdmNzA3YWM3MmZiMGQ1MzYwOGRkNmI2ZjE5
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
cnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCkBAIC0wLDAgKzEsMzMgQEAK
K2Z1bmN0aW9uIGZvbyhhLCBzKSB7CisgICAgcmV0dXJuIGFbc10gKyAxOworfQorCit2YXIgc2hv
dWxkVGhyb3cgPSBmYWxzZTsKK2Z1bmN0aW9uIGJhcigpIHsKKyAgICBpZiAoc2hvdWxkVGhyb3cp
CisgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgcmV0dXJuIDQyOworfQorCit2YXIgYSA9IHt9
OworYS5fX2RlZmluZUdldHRlcl9fKCJiYXIiLCBiYXIpOworCitub0lubGluZShmb28pOworbm9J
bmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZh
ciByZXN1bHQgPSBmb28oYSwgImJhciIpOworICAgIGlmIChyZXN1bHQgIT0gNDMpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIGRpZFRocm93
OwordHJ5IHsKKyAgICBzaG91bGRUaHJvdyA9IHRydWU7CisgICAgZm9vKGEsICJiYXIiKTsKK30g
Y2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAhPSAiaGVs
bG8iKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4Y2Vw
dGlvbjogIiArIGRpZFRocm93OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtY2Fs
bC1pbmxpbmluZy1leGFtcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzM2IyNzZjYWNiOGU0YTczNGFiMjNi
NDJiODYyZjU2NWQ4ZjRlMDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1jYWxsLWlubGluaW5nLWV4YW1wbGUu
anMKQEAgLTAsMCArMSwzMiBAQAorZnVuY3Rpb24gZm9vKGJheikgeworICAgIHJldHVybiBiYXIo
YmF6KTsKK30KKworZnVuY3Rpb24gZnV6eihiYXopIHsKKyAgICByZXR1cm4gYmFyKGJheik7Cit9
CisKK2Z1bmN0aW9uIGJhcihiYXopIHsKKyAgICByZXR1cm4gYmF6KCk7Cit9CisKK2Z1bmN0aW9u
IGJhejEoKSB7CisgICAgcmV0dXJuIDQyOworfQorCitmdW5jdGlvbiBiYXoyKCkgeworICAgIHJl
dHVybiAyNDsKK30KKworbm9JbmxpbmUoZm9vKTsKK25vSW5saW5lKGZ1enopOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhiYXoxKTsK
KyAgICBpZiAocmVzdWx0ICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7CisgICAgdmFyIHJlc3VsdCA9IGZ1enooYmF6Mik7CisgICAgaWYgKHJlc3Vs
dCAhPSAyNCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbXBs
ZS1wb2x5dmFyaWFudC1nZXQtYnktaWQtaW5saW5pbmctZXhhbXBsZS5qcyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWdldC1ieS1pZC1pbmxp
bmluZy1leGFtcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1NGFiMDljNzMwODQwZmVmMWI3ZDBlNThkYTgy
OTY4MTQyYzVkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1nZXQtYnktaWQtaW5saW5pbmctZXhhbXBsZS5q
cwpAQCAtMCwwICsxLDI0IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBiYXIobyk7
Cit9CisKK2Z1bmN0aW9uIGZ1enoobykgeworICAgIHJldHVybiBiYXIobyk7Cit9CisKK2Z1bmN0
aW9uIGJhcihvKSB7CisgICAgcmV0dXJuIG8uZjsKK30KKworbm9JbmxpbmUoZm9vKTsKK25vSW5s
aW5lKGZ1enopOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFy
IHJlc3VsdCA9IGZvbyh7Zjo0Mn0pOworICAgIGlmIChyZXN1bHQgIT0gNDIpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgcmVzdWx0ID0gZnV6
eih7ZzoyMywgZjoyNH0pOworICAgIGlmIChyZXN1bHQgIT0gMjQpCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtcHV0LWJ5LWlkLWlu
bGluaW5nLWV4YW1wbGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Np
bXBsZS1wb2x5dmFyaWFudC1wdXQtYnktaWQtaW5saW5pbmctZXhhbXBsZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZWI2MjcyZjdlZThmZjQ5Nzk3ODkzOTI1ZDkyYzk3YWQ3YjU3NDE1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlh
bnQtcHV0LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanMKQEAgLTAsMCArMSwyNiBAQAorZnVuY3Rp
b24gZm9vKG8pIHsKKyAgICBiYXIobyk7Cit9CisKK2Z1bmN0aW9uIGZ1enoobykgeworICAgIGJh
cihvKTsKK30KKworZnVuY3Rpb24gYmFyKG8pIHsKKyAgICBvLmYgPSA0MjsKK30KKworbm9Jbmxp
bmUoZm9vKTsKK25vSW5saW5lKGZ1enopOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBmb28obyk7CisgICAgaWYgKG8uZiAhPSA0MikK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOworICAgIG8gPSB7Zjoy
M307CisgICAgdmFyIHJlc3VsdCA9IGZ1enoobyk7CisgICAgaWYgKG8uZiAhPSA0MikKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOworfQorCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0aW1pemVk
LWNvZGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rocm93LXRocm91
Z2gtb3B0aW1pemVkLWNvZGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZlYjI0MGVkMzc4ZmExZjgxY2EzZTAw
YjUxN2Q4MjBkNTU5NzE5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwpAQCAtMCwwICsx
LDMwIEBACitmdW5jdGlvbiBmb28oZikgeworICAgIHJldHVybiBmKDEpICsgMTsKK30KKwordmFy
IHNob3VsZFRocm93ID0gZmFsc2U7CitmdW5jdGlvbiBiYXIoeCkgeworICAgIGlmIChzaG91bGRU
aHJvdykKKyAgICAgICAgdGhyb3cgImhlbGxvIjsKKyAgICByZXR1cm4gNDIgLSB4OworfQorCitu
b0lubGluZShmb28pOworbm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oYmFyKTsKKyAgICBpZiAocmVzdWx0ICE9
IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisK
K3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgc2hvdWxkVGhyb3cgPSB0cnVlOworICAgIGZvbyhi
YXIpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30KKworaWYgKGRpZFRocm93
ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhyb3cgb3IgdGhyZXcgd3Jv
bmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3Qtb3Itc3RyaW5nLmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LW9yLXN0
cmluZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MzYzOGMxNGNmMWVkNjcxNTQzMTdhZjhhZGFhMGEwZThmZWM3
MTZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy90by1zdHJpbmctb24tb2JqZWN0LW9yLXN0cmluZy5qcwpAQCAtMCwwICsxLDI3IEBACitmdW5j
dGlvbiBGb28oKSB7IH0KKworRm9vLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gImhlbGxvIiB9OworCitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBTdHJpbmco
byk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyAr
K2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBGb28oKSk7CisgICAgaWYgKHR5cGVvZiBy
ZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAg
dGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVz
dWx0ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKKyAgICAKKyAgICByZXN1bHQgPSBmb28oIndvcmxkIik7CisgICAgaWYgKHR5cGVvZiBy
ZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAg
dGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVz
dWx0ICE9ICJ3b3JsZCIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
dG8tc3RyaW5nLW9uLW9iamVjdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvdG8tc3RyaW5nLW9uLW9iamVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGE4OWE0YzQzMzVkN2IzZTFk
ZTNkNGVkM2NiODY1YjlhMGUwNTc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LmpzCkBAIC0wLDAgKzEsMTkg
QEAKK2Z1bmN0aW9uIEZvbygpIHsgfQorCitGb28ucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rp
b24oKSB7IHJldHVybiAiaGVsbG8iIH07CisKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJu
IFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28obmV3IEZvbygpKTsKKyAgICBpZiAo
dHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShyZXN1bHQpOwor
ICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7CisgICAgfQorICAg
IGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
OiAiICsgcmVzdWx0OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9iamVjdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vYmplY3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTQ0MzVlNWFhYzFiNGU0MzNjMDE5M2ZiMzczMWY3NzhkZTE4MjI1MgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0
cmluZy1vYmplY3QuanMKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICBy
ZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgU3RyaW5nKCJoZWxs
byIpKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNj
cmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmlu
ZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmpl
Y3QtdGhlbi1vYmplY3QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rv
LXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC10aGVuLW9iamVjdC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44ZWIwNDBiNzhhMWY2YzI0N2I3OGZhZjg1ZjVhYTU3ZDMzZjkwMTliCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24t
c3RyaW5nLW9yLXN0cmluZy1vYmplY3QtdGhlbi1vYmplY3QuanMKQEAgLTAsMCArMSwzNSBAQAor
ZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGluZShm
b28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3Vs
dCA9IGZvbyhuZXcgU3RyaW5nKCJoZWxsbyIpKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAi
c3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJy
b3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhl
bGxvIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAg
IAorICAgIHJlc3VsdCA9IGZvbygid29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAi
c3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJy
b3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIndv
cmxkIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQor
CitmdW5jdGlvbiBGb28oKSB7IH0KKworRm9vLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9u
KCkgeyByZXR1cm4gImhlbGxvIiB9OworCit2YXIgcmVzdWx0ID0gZm9vKG5ldyBGb28oKSk7Citp
ZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgIGRlc2NyaWJlKHJlc3VsdCk7Cisg
ICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworfQoraWYgKHJlc3VsdCAh
PSAiaGVsbG8iKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9u
LXN0cmluZy1vci1zdHJpbmctb2JqZWN0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWE1ZGU5NmY0N2RjMTA1NzUyZWQwMjM0MzQxNGE5ZGI3ODc4MjY0YgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0
cmluZy1vci1zdHJpbmctb2JqZWN0LmpzCkBAIC0wLDAgKzEsMjMgQEAKK2Z1bmN0aW9uIGZvbyhv
KSB7CisgICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28obmV3IFN0
cmluZygiaGVsbG8iKSk7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAg
ICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNu
J3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICAKKyAgICByZXN1bHQg
PSBmb28oIndvcmxkIik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAg
ICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNu
J3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJ3b3JsZCIpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLW9yLXN0
cmluZy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9u
LXZhbHVlLW9yLXN0cmluZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Y2VkNmMwODNhNGM4Y2EzODU5ZTdmN2Fm
ZjcwMWNhOGNlNGRkMjZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tdmFsdWUtb3Itc3RyaW5nLmpzCkBAIC0wLDAgKzEs
MjMgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9J
bmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZh
ciByZXN1bHQgPSBmb28oNDIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7
CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0
IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiNDIiKQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgCisgICAgcmVzdWx0
ID0gZm9vKCJ3b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7Cisg
ICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlz
bid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAid29ybGQiKQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQwOGU1YmE0YzllZDFlMDY4NTA5YmMzNTVkMGZmYTZmNWQ0Yzc0NGMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0
cmluZy1vbi12YWx1ZS5qcwpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28obykgeworICAg
IHJldHVybiBTdHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDQyKTsKKyAgICBpZiAo
dHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShyZXN1bHQpOwor
ICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7CisgICAgfQorICAg
IGlmIChyZXN1bHQgIT0gIjQyIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQmFnVG9IYXNoTWFwLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9CYWdUb0hhc2hNYXAuaAppbmRleCBjMWJlN2ZmOTUxMDdhM2ExZjQ0
NTNmNDg3ZmU5MzNiZjAzNGE3NmRjLi41Mzk3OTVmZGUxZjU3NzEyNjYyMWQ3NGMxM2E2ZjJmNTY0
YTc1ODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CYWdUb0hhc2hNYXAuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9CYWdUb0hhc2hNYXAuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2Ug
V1RGIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgRWxlbWVudFR5cGUsIHR5cGVuYW1lIEtleVR5cGUs
IHR5cGVuYW1lIEtleUdldHRlckZ1bmN0b3I+Ci12b2lkIHRvSGFzaE1hcChCYWc8RWxlbWVudFR5
cGU+JiBiYWcsIEtleUdldHRlckZ1bmN0b3ImIGdldEtleSwgSGFzaE1hcDxLZXlUeXBlLCBFbGVt
ZW50VHlwZSo+JiByZXN1bHQpCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbGVtZW50VHlwZSwgdHlwZW5h
bWUgS2V5VHlwZSwgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5R2V0dGVyRnVuY3Rvcj4K
K3ZvaWQgdG9IYXNoTWFwKEJhZzxFbGVtZW50VHlwZT4mIGJhZywgS2V5R2V0dGVyRnVuY3RvciYg
Z2V0S2V5LCBIYXNoTWFwPEtleVR5cGUsIEVsZW1lbnRUeXBlKiwgSGFzaEFyZz4mIHJlc3VsdCkK
IHsKICAgICBmb3IgKHR5cGVuYW1lIEJhZzxFbGVtZW50VHlwZT46Oml0ZXJhdG9yIGl0ZXIgPSBi
YWcuYmVnaW4oKTsgISFpdGVyOyArK2l0ZXIpIHsKICAgICAgICAgRWxlbWVudFR5cGUqIGVsZW1l
bnQgPSAqaXRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGFhMGFjNTczNDE0YjMyOGQ5YTU5YTc1OTEzOGZi
ZDQxYzRmZjBiMmUuLjcyY2E2NGFlM2QzNzdhODU5ZTczMjE4Yzg1ZGFmMTAyNDFiOTE1OTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm0uaApAQCAtNjYwLDEyICs2NjAsMTIgQEAKICNkZWZpbmUgRU5BQkxFX0pJVCAwCiAj
ZW5kaWYKIAotLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4NiwgeDg2
LTY0LCBBUk0gJiBNSVBTIHBsYXRmb3JtcyBleGNlcHQgV2luNjQuICovCisvKiBUaGUgSklUIGlz
IGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LCB4ODYtNjQsIEFSTSAmIE1JUFMgcGxhdGZv
cm1zIGV4Y2VwdCBXaW5kb3dzLiAqLwogI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpIFwKICAgICAm
JiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTSkgfHwgQ1BVKEFSTTY0KSB8fCBD
UFUoTUlQUykpIFwKICAgICAmJiAoT1MoREFSV0lOKSB8fCAhQ09NUElMRVIoR0NDKSB8fCBHQ0Nf
VkVSU0lPTl9BVF9MRUFTVCg0LCAxLCAwKSkgXAogICAgICYmICFPUyhXSU5DRSkgXAotICAgICYm
ICEoT1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82NCkpCisgICAgJiYgIU9TKFdJTkRPV1MpCiAjZGVm
aW5lIEVOQUJMRV9KSVQgMQogI2VuZGlmCiAKQEAgLTgzNSwxNCArODM1LDYgQEAKICNlbmRpZgog
I2VuZGlmCiAKLS8qIEZJWE1FOiBXZSBjdXJyZW50bHkgdW5jb25kaXRpb25hbGx5IHVzZSBzcGVh
cmF0ZSBzdGFja3MuIFdoZW4gd2Ugc3dpdGNoIHRvIHVzaW5nIHRoZQotICAgQyBzdGFjayBmb3Ig
SlMgZnJhbWVzLCB3ZSdsbCBuZWVkIHRvIG1ha2UgdGhlIGZvbGxvd2luZyBjb25kaXRpb25hbCBv
biBFTkFCTEUoTExJTlRfQ0xPT1ApCi0gICBvbmx5LgotKi8KLSNpZiBFTkFCTEUoTExJTlRfQ0xP
T1ApIHx8IDEKLSNkZWZpbmUgV1RGX1VTRV9TRVBBUkFURV9DX0FORF9KU19TVEFDSyAxCi0jZW5k
aWYKLQogLyogUGljayB3aGljaCBhbGxvY2F0b3IgdG8gdXNlOyB3ZSBvbmx5IG5lZWQgYW4gZXhl
Y3V0YWJsZSBhbGxvY2F0b3IgaWYgdGhlIGFzc2VtYmxlciBpcyBjb21waWxlZCBpbi4KICAgIE9u
IHg4Ni02NCB3ZSB1c2UgYSBzaW5nbGUgZml4ZWQgbW1hcCwgb24gb3RoZXIgcGxhdGZvcm1zIHdl
IG1tYXAgb24gZGVtYW5kLiAqLwogI2lmIEVOQUJMRShBU1NFTUJMRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oIGIvU291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMu
aAppbmRleCBjYTM5NzQ5NmYwNDkxNWRkNDlhOTgxMTBmNDNiMjA5NDg0NDYxNzhhLi43ODc2N2Nj
Mjg0NjY0NDhkYzYwMDU5M2E3YjUyMzM2NmVjNjViOTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9TdGFja0JvdW5kcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N0YWNrQm91bmRzLmgKQEAg
LTI3LDYgKzI3LDggQEAKICNpZm5kZWYgU3RhY2tCb3VuZHNfaAogI2RlZmluZSBTdGFja0JvdW5k
c19oCiAKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBT
dGFja0JvdW5kcyB7CkBAIC02Nyw2ICs2OSwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjaGFyKj4obV9ib3VuZCkgLSBtaW5BdmFpbGFibGVEZWx0YTsKICAgICB9CiAK
KyAgICB2b2lkKiByZWN1cnNpb25MaW1pdChzaXplX3QgaG9zdFpvbmVTaXplLCB2b2lkKiBkZXNp
cmVkTGltaXQpIGNvbnN0CisgICAgeworICAgICAgICBjaGVja0NvbnNpc3RlbmN5KCk7CisgICAg
ICAgIGlmIChpc0dyb3dpbmdEb3dud2FyZCgpKSB7CisgICAgICAgICAgICBjaGFyKiBlbmRPZlN0
YWNrV2l0aEhvc3Rab25lID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9ib3VuZCkgKyBob3N0
Wm9uZVNpemU7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYXgoZGVzaXJlZExpbWl0LCByZWlu
dGVycHJldF9jYXN0PHZvaWQqPihlbmRPZlN0YWNrV2l0aEhvc3Rab25lKSk7CisgICAgICAgIH0K
KyAgICAgICAgY2hhciogZW5kT2ZTdGFja1dpdGhIb3N0Wm9uZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KG1fYm91bmQpIC0gaG9zdFpvbmVTaXplOworICAgICAgICByZXR1cm4gc3RkOjptaW4o
ZGVzaXJlZExpbWl0LCByZWludGVycHJldF9jYXN0PHZvaWQqPihlbmRPZlN0YWNrV2l0aEhvc3Ra
b25lKSk7CisgICAgfQorCiAgICAgYm9vbCBpc0dyb3dpbmdEb3dud2FyZCgpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlQobV9vcmlnaW4gJiYgbV9ib3VuZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxp
dGllcy5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL0NvbnRl
bnRTZWFyY2hVdGlsaXRpZXMuaAppbmRleCA4ZWVlMTI1NjFiYjc1N2QyODQzMjM1ZTIyYWQ2NzE1
NWExZTkyOGU1Li4wN2M0N2NhYTBmYTA4NTFjYzQzZTVmYjI4MWI2OGIyMDQxMTNlMzVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvQ29udGVu
dFNlYXJjaFV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmgKQEAgLTIsMyArMiw3IEBACiAjZGVm
aW5lIFdlYkNvcmVfRldEX0NvbnRlbnRTZWFyY2hVdGlsaXRpZXNfaAogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuaD4KICNlbmRpZgorI2lmbmRlZiBXZWJD
b3JlX0ZXRF9Db250ZW50U2VhcmNoVXRpbGl0aWVzX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfQ29u
dGVudFNlYXJjaFV0aWxpdGllc19oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29udGVudFNl
YXJjaFV0aWxpdGllcy5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvU2NyaXB0QnJlYWtwb2ludC5oIGIvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQuaAppbmRleCAx
OWRlNDI1NzNiYjlkMjRhMTk4YjUwZGJkMDkyYjY5YjVlYTk5OGJjLi4zNjIwYTRmMGJjMjE2MTIy
MTQxZDBiZWQxMGY2NzFjNzA4MTNjMDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvU2NyaXB0QnJlYWtwb2ludC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHRCcmVha3BvaW50LmgKQEAg
LTIsMyArMiw3IEBACiAjZGVmaW5lIFdlYkNvcmVfRldEX1NjcmlwdEJyZWFrcG9pbnRfaAogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEJyZWFrcG9pbnQuaD4KICNlbmRpZgorI2lmbmRl
ZiBXZWJDb3JlX0ZXRF9TY3JpcHRCcmVha3BvaW50X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfU2Ny
aXB0QnJlYWtwb2ludF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0QnJlYWtwb2lu
dC5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9pbnNwZWN0b3IvU2NyaXB0RGVidWdMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaAppbmRleCBlYzZmZWE3
ZTI3MDI4OWM5MmZhMDc3NjIzMWEzYzhmNzg1YTMyNzUxLi4xOWRkNzBjZWJiYjc0ZjE3N2Q5NDUy
YTYxNDE4NDFhMTczNzQwY2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy9pbnNwZWN0b3IvU2NyaXB0RGVidWdMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmgKQEAg
LTIsMyArMiw3IEBACiAjZGVmaW5lIFdlYkNvcmVfRldEX1NjcmlwdERlYnVnTGlzdGVuZXJfaAog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdERlYnVnTGlzdGVuZXIuaD4KICNlbmRpZgor
I2lmbmRlZiBXZWJDb3JlX0ZXRF9TY3JpcHREZWJ1Z0xpc3RlbmVyX2gKKyNkZWZpbmUgV2ViQ29y
ZV9GV0RfU2NyaXB0RGVidWdMaXN0ZW5lcl9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2Ny
aXB0RGVidWdMaXN0ZW5lci5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9G
b3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oIGIvU291cmNlL1dl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNmZkMmZlMDFkMWE1ZDMxMTg2YTQyYzA1M2ZkMzMyNjZjZmU1NDIwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9FcnJv
ckhhbmRsaW5nU2NvcGUuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfRXJy
b3JIYW5kbGluZ1Njb3BlX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfRXJyb3JIYW5kbGluZ1Njb3Bl
X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FcnJvckhhbmRsaW5nU2NvcGUuaD4KKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMveWFyci9SZWd1
bGFyRXhwcmVzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMveWFyci9S
ZWd1bGFyRXhwcmVzc2lvbi5oCmluZGV4IDA5OWZhNDY0NmZhOWQ3MjVlYWQ5MjQ2YzlmNGY3OGQ5
Y2E0N2EyMmIuLmJjMjkzZTA0OTY2NmU5MWM3MTgxMmJkOGI1MWRlZDFiNGQ4YWRlZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3lhcnIvUmVndWxhckV4cHJl
c3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy95YXJyL1JlZ3Vs
YXJFeHByZXNzaW9uLmgKQEAgLTIsMyArMiw3IEBACiAjZGVmaW5lIFdlYkNvcmVfRldEX1JlZ3Vs
YXJFeHByZXNzaW9uX2gKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZWd1bGFyRXhwcmVzc2lv
bi5oPgogI2VuZGlmCisjaWZuZGVmIFdlYkNvcmVfRldEX1JlZ3VsYXJFeHByZXNzaW9uX2gKKyNk
ZWZpbmUgV2ViQ29yZV9GV0RfUmVndWxhckV4cHJlc3Npb25faAorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1JlZ3VsYXJFeHByZXNzaW9uLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGExMzg1YjhhOGQ2NDgxMDA3YjQ1
OTQ3MjllN2UyYTQ5MjM1MzBiNGMuLjZhNTdiY2YyOTBiNGFmMmVkZTlkNjkzOTRmYjQwZWVlYWY0
NTY3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagpAQCAtMTg1MDIsNiArMTg1MDIsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxDb25zdHJ1Y3REYXRhLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXERhdGVJbnN0YW5jZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGlt
ZVxFcnJvci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcRXJyb3JQcm90b3R5cGUuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcRXhjZXB0
aW9uSGVscGVycy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hl
YWRlcnNccnVudGltZVxFeGVjdXRhYmxlLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOTAwNjcyMWMy
OWM3NzQ1YzVhNzYxNDNkMjdlMGU0MjExMTJiZTgxYy4uYmRiMDI4MmE5ODJjZTJkOTQ2YjU0YzZh
ZTYxZGU4MTI0NjM1ZDY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTI0OTIsNiArMTI0OTIsOSBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxFcnJv
ci5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hl
YWRlcnNccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUuaCI+CisgICAgICA8RmlsdGVyPkZvcndh
cmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcRXJyb3JQcm90b3R5
cGUuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4K
ICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuY3BwCmluZGV4IGEzMmQzMzJhZDJlOWE3YjhkMTVmMzBiZTRhOTU2OTk5OWNmOThlZGEuLjU4
MjIxZDAwZTQ5NmI3YTA5N2UwOTgyYjQ0MzkxYzAzYjI4ZjRjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1
ZGUgPGludGVycHJldGVyL0ludGVycHJldGVyLmg+CiAjaW5jbHVkZSA8cnVudGltZS9EYXRlSW5z
dGFuY2UuaD4KICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8cnVudGltZS9F
cnJvckhhbmRsaW5nU2NvcGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMu
aD4KICNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgpAQCAtMTU0LDcgKzE1NSw3IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBleGNlcHRpb24sIENhY2hlZFNjcmlwdCogY2FjaGVkU2NyCiAgICAg
aWYgKGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihleGNlcHRpb24pKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBJbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGUgbW9kZShleGVjKTsK
KyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZShleGVjLT52bSgpKTsKIAogICAgIFJl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGcm9t
RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbiwgU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tT
aXplVG9DYXB0dXJlKSk7CiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NmJiZmJiMDVkZjE1ZDNm
MTljZmQzODJiNTgxMjU3NTFjM2M0MGUzLi4xODY4Njk5MzkxOWJmOTQ0NTM2NGNkODk0NjNkZDZj
N2UxNmM3YzU5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDEtMjggIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSB0aGUganNDU3RhY2sgYnJhbmNoCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3NjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
ZGlzcGxheS1wcm9maWxlci1vdXRwdXQ6CisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVz
cy10ZXN0czoKKwogMjAxNC0wMS0yOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gYWxsb3cgc2V0dGluZyB0aGUg
cHJvY2VzcyBtb2RlbCBpbiBXZWJLaXRXZWJDb250ZXh0CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL2Rpc3BsYXktcHJvZmlsZXItb3V0cHV0IGIvVG9vbHMvU2NyaXB0cy9kaXNwbGF5LXByb2Zp
bGVyLW91dHB1dAppbmRleCA5NmFmM2Y1OWNmNGY5YzdhOWNiMWZiMmUzODYyOTIxN2NlNDhiYmIz
Li44YjI2MjJhOWZlMGIxYzRhYjJkMjlmODJiYjcxMGQyODRkNGU4NjNhIDEwMDc1NQotLS0gYS9U
b29scy9TY3JpcHRzL2Rpc3BsYXktcHJvZmlsZXItb3V0cHV0CisrKyBiL1Rvb2xzL1NjcmlwdHMv
ZGlzcGxheS1wcm9maWxlci1vdXRwdXQKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBy
dWJ5CiAKLSMgQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDM3LDcg
KzQzNywxMSBAQCAkY29tcGlsYXRpb25zID0gJGpzb25bImNvbXBpbGF0aW9ucyJdLm1hcCB7CiAg
ICAgfCBzdWJKc29uIHwKICAgICBDb21waWxhdGlvbi5uZXcoc3ViSnNvbikKIH0KLSRlbmdpbmVz
ID0gWyJCYXNlbGluZSIsICJERkciXQorJGVuZ2luZXMgPSBbIkJhc2VsaW5lIiwgIkRGRyIsICJG
VEwiLCAiRlRMRm9yT1NSRW50cnkiXQorCitkZWYgaXNPcHRpbWl6aW5nKGVuZ2luZSkKKyAgICBl
bmdpbmUgPT0gIkRGRyIgb3IgZW5naW5lID09ICJGVEwiIG9yIGVuZ2luZSA9PSAiRlRMRm9yT1NS
RW50cnkiCitlbmQKIAogJHNob3dDb3VudHMgPSB0cnVlCiAkc29ydE1vZGUgPSA6dGltZQpAQCAt
NTcyLDkgKzU3Niw5IEBAIGRlZiBzdW1tYXJ5KG1vZGUpCiAgICAgaWYgbW9kZSA9PSA6ZnVsbAog
ICAgICAgICBwcmludCgiICIgKyAoIiAiICogaW5zdHJ1Y3Rpb25Db3VudENvbHMpKQogICAgIGVu
ZAotICAgIHByaW50KCIgIiArIGNlbnRlcigiQmFzZS9ERkciLCBjb3VudENvbHMpKQorICAgIHBy
aW50KCIgIiArIGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIGNvdW50Q29scykpCiAgICAg
aWYgbW9kZSA9PSA6ZnVsbAotICAgICAgICBwcmludCgiICIgKyBjZW50ZXIoIkJhc2UvREZHIiwg
bWFjaGluZUNvdW50Q29scykpCisgICAgICAgIHByaW50KCIgIiArIGNlbnRlcigiQmFzZS9ERkcv
RlRML0ZUTE9TUiIsIG1hY2hpbmVDb3VudENvbHMpKQogICAgICAgICBwcmludCgiICIgKyAoIiAi
ICogY29tcGlsYXRpb25zQ29scykpCiAgICAgICAgIHByaW50KCIgIiArIGNlbnRlcigiU3JjL1Rv
dGFsIiwgaW5saW5lc0NvbHMpKQogICAgICAgICBwcmludCgiICIgKyAoIiAiICogZXhpdENvdW50
Q29scykpCkBAIC02NzQsNyArNjc4LDcgQEAgZGVmIGV4ZWN1dGVDb21tYW5kKCpjb21tYW5kQXJy
YXkpCiAgICAgICAgICAgICBpZiAkc2hvd0NvdW50cwogICAgICAgICAgICAgICAgIHB1dHMoY2Vu
dGVyKCJTb3VyY2UgQ291bnRzIiwgY291bnRDb2xzKSArICIgIiArIGNlbnRlcigiTWFjaGluZSBD
b3VudHMiLCBtYWNoaW5lQ29scykgKwogICAgICAgICAgICAgICAgICAgICAgKCIgIiAqIHBhZCkg
KyBjZW50ZXIoIkJ5dGVjb2RlIGZvciAje2J5dGVjb2Rlc30iLCBzY3JlZW5XaWR0aCAtIHBhZCAt
IGNvdW50Q29scyAtIDEgLSBtYWNoaW5lQ29scykpCi0gICAgICAgICAgICAgICAgcHV0cyhjZW50
ZXIoIkJhc2UvREZHIiwgY291bnRDb2xzKSArICIgIiArIGNlbnRlcigiQmFzZS9ERkciLCBjb3Vu
dENvbHMpKQorICAgICAgICAgICAgICAgIHB1dHMoY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NS
IiwgY291bnRDb2xzKSArICIgIiArIGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIGNvdW50
Q29scykpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcHV0cygiQnl0ZWNvZGUg
Zm9yICN7Ynl0ZWNvZGVzfToiKQogICAgICAgICAgICAgZW5kCkBAIC04OTQsNyArODk4LDcgQEAg
ZGVmIGV4ZWN1dGVDb21tYW5kKCpjb21tYW5kQXJyYXkpCiAgICAgICAgICAgICBwdXRzKCJDb21w
aWxhdGlvbiAje2NvbXBpbGF0aW9ufToiKQogICAgICAgICAgICAgaWYgJHNob3dDb3VudHMKICAg
ICAgICAgICAgICAgICBwdXRzKGNlbnRlcigiQWN0dWFsIENvdW50cyIsIGFjdHVhbENvdW50Q29s
cykgKyAiICIgKyBjZW50ZXIoIlNvdXJjZSBDb3VudHMiLCBzb3VyY2VDb3VudENvbHMpICsgIiAi
ICsgY2VudGVyKCJEaXNhc3NlbWJseSBpbiAje2NvbXBpbGF0aW9uLmVuZ2luZX0iLCBzY3JlZW5X
aWR0aCAtIDEgLSBzb3VyY2VDb3VudENvbHMgLSAxIC0gYWN0dWFsQ291bnRDb2xzKSkKLSAgICAg
ICAgICAgICAgICBwdXRzKCgiICIgKiBhY3R1YWxDb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJC
YXNlL0RGRyIsIHNvdXJjZUNvdW50Q29scykpCisgICAgICAgICAgICAgICAgcHV0cygoIiAiICog
YWN0dWFsQ291bnRDb2xzKSArICIgIiArIGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIHNv
dXJjZUNvdW50Q29scykpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcHV0cygi
RGlzYXNzZW1ibHkgaW4gI3tjb21waWxhdGlvbi5lbmdpbmV9IikKICAgICAgICAgICAgIGVuZApA
QCAtOTA1LDExICs5MDksMTUgQEAgZGVmIGV4ZWN1dGVDb21tYW5kKCpjb21tYW5kQXJyYXkpCiAg
ICAgICAgICAgICAgICAgfCBkZXNjcmlwdGlvbiB8CiAgICAgICAgICAgICAgICAgIyBGSVhNRTog
V2Ugc2hvdWxkIGhhdmUgYSBiZXR0ZXIgd2F5IG9mIGRldGVjdGluZyB0aGluZ3MgbGlrZSBDb3Vu
dEV4ZWN1dGlvbiBub2RlcwogICAgICAgICAgICAgICAgICMgYW5kIHNsb3cgcGF0aCBlbnRyaWVz
IGluIHRoZSBiYXNlbGluZSBKSVQuCi0gICAgICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24uZGVz
Y3JpcHRpb24gPX4gL0NvdW50RXhlY3V0aW9uXCgvIGFuZCBjb21waWxhdGlvbi5lbmdpbmUgPT0g
IkRGRyIKKyAgICAgICAgICAgICAgICBpZiBkZXNjcmlwdGlvbi5kZXNjcmlwdGlvbiA9fiAvQ291
bnRFeGVjdXRpb25cKC8gYW5kIGlzT3B0aW1pemluZyhjb21waWxhdGlvbi5lbmdpbmUpCiAgICAg
ICAgICAgICAgICAgICAgIHNob3VsZFNob3cgPSBmYWxzZQogICAgICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICAgICAgc2hvdWxkU2hvdyA9IHRydWUKICAgICAgICAgICAgICAgICBl
bmQKKyAgICAgICAgICAgICAgICBpZiBub3QgZGVzY3JpcHRpb24ub3JpZ2luLmVtcHR5PyBhbmQg
bm90IGRlc2NyaXB0aW9uLm9yaWdpblstMV0KKyAgICAgICAgICAgICAgICAgICAgcCBkZXNjcmlw
dGlvbi5vcmlnaW4KKyAgICAgICAgICAgICAgICAgICAgcCBkZXNjcmlwdGlvbi5kZXNjcmlwdGlv
bgorICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgIGlmIGRlc2NyaXB0aW9uLm9y
aWdpbi5lbXB0eT8gb3Igbm90IGRlc2NyaXB0aW9uLm9yaWdpblstMV0uc2hvdWxkSGF2ZUNvdW50
cz8gb3IgKGNvbXBpbGF0aW9uLmVuZ2luZSA9PSAiQmFzZWxpbmUiIGFuZCBkZXNjcmlwdGlvbi5k
ZXNjcmlwdGlvbiA9fiAvXlxzKlwoU1wpLykKICAgICAgICAgICAgICAgICAgICAgYWN0dWFsQ291
bnRzU3RyaW5nID0gIiIKICAgICAgICAgICAgICAgICAgICAgc291cmNlQ291bnRzU3RyaW5nID0g
IiIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29s
cy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IDExNDdjNzdkMDc1ZDY0NTg2YTk1
MmU5OWM3ZWRkYjUwYzVjOWZiMGEuLmEyYzQ1ZWE4M2YwMmMzNmQ5N2UwZTZkMWRjNDRhOTUxMjhj
ZGJiMDEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysr
IGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtMTgwLDYgKzE4MCw4IEBA
ICRudW1GYWlsdXJlcyA9IDAKIAogRUFHRVJfT1BUSU9OUyA9IFsiLS10aHJlc2hvbGRGb3JKSVRB
ZnRlcldhcm1VcD0xMCIsICItLXRocmVzaG9sZEZvckpJVFNvb249MTAiLCAiLS10aHJlc2hvbGRG
b3JPcHRpbWl6ZUFmdGVyV2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxv
bmdXYXJtVXA9MjAiLCAiLS10aHJlc2hvbGRGb3JPcHRpbWl6ZVNvb249MjAiLCAiLS10aHJlc2hv
bGRGb3JGVExPcHRpbWl6ZUFmdGVyV2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9yRlRMT3B0aW1p
emVTb29uPTIwIl0KIAorRlRMX09QVElPTlMgPSBbIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUi
LCAiLS1lbmFibGVFeHBlcmltZW50YWxGVExDb3ZlcmFnZT10cnVlIl0KKwogJHJ1bmxpc3QgPSBb
XQogCiBkZWYgZnJhbWV3b3JrRnJvbUpTQ1BhdGgoanNjUGF0aCkKQEAgLTUzMiwxOSArNTM0LDE5
IEBAIGRlZiBydW5Ob0NKSVRWYWxpZGF0ZVBoYXNlcwogZW5kCiAKIGRlZiBydW5EZWZhdWx0RlRM
Ci0gICAgcnVuKCJkZWZhdWx0LWZ0bCIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIikKKyAg
ICBydW4oImRlZmF1bHQtZnRsIiwgKkZUTF9PUFRJT05TKQogZW5kCiAKIGRlZiBydW5GVExOb0NK
SVQKLSAgICBydW4oImZ0bC1uby1jaml0IiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIs
ICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIikKKyAgICBydW4oImZ0bC1uby1jaml0IiwgIi0t
ZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICpGVExfT1BUSU9OUykKIGVuZAogCiBkZWYgcnVu
RlRMTm9DSklUVmFsaWRhdGUKLSAgICBydW4oImZ0bC1uby1jaml0LXZhbGlkYXRlIiwgIi0tZW5h
YmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwgIi0t
dmFsaWRhdGVHcmFwaD10cnVlIikKKyAgICBydW4oImZ0bC1uby1jaml0LXZhbGlkYXRlIiwgIi0t
ZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICpGVExf
T1BUSU9OUykKIGVuZAogCiBkZWYgcnVuRlRMTm9DSklUT1NSVmFsaWRhdGlvbgotICAgIHJ1bigi
ZnRsLW5vLWNqaXQtb3NyLXZhbGlkYXRpb24iLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNl
IiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiLCAiLS12YWxpZGF0ZUZUTE9TUkV4aXRMaXZl
bmVzcz10cnVlIikKKyAgICBydW4oImZ0bC1uby1jaml0LW9zci12YWxpZGF0aW9uIiwgIi0tZW5h
YmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlRlRMT1NSRXhpdExpdmVuZXNzPXRy
dWUiLCAqRlRMX09QVElPTlMpCiBlbmQKIAogZGVmIHJ1bkRGR0VhZ2VyCkBAIC01NTYsMTUgKzU1
OCwxNSBAQCBkZWYgcnVuREZHRWFnZXJOb0NKSVRWYWxpZGF0ZQogZW5kCiAKIGRlZiBydW5GVExF
YWdlcgotICAgIHJ1bigiZnRsLWVhZ2VyIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiLCAq
RUFHRVJfT1BUSU9OUykKKyAgICBydW4oImZ0bC1lYWdlciIsICooRlRMX09QVElPTlMgKyBFQUdF
Ul9PUFRJT05TKSkKIGVuZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRWYWxpZGF0ZQotICAgIHJ1
bigiZnRsLWVhZ2VyLW5vLWNqaXQiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIsICItLWVu
YWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUdyYXBoPXRydWUiLCAqRUFHRVJf
T1BUSU9OUykKKyAgICBydW4oImZ0bC1lYWdlci1uby1jaml0IiwgIi0tZW5hYmxlQ29uY3VycmVu
dEpJVD1mYWxzZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBFQUdF
Ul9PUFRJT05TKSkKIGVuZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRPU1JWYWxpZGF0aW9uCi0g
ICAgcnVuKCJmdGwtZWFnZXItbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLXVzZUV4cGVyaW1l
bnRhbEZUTD10cnVlIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRl
RlRMT1NSRXhpdExpdmVuZXNzPXRydWUiLCAqRUFHRVJfT1BUSU9OUykKKyAgICBydW4oImZ0bC1l
YWdlci1uby1jaml0LW9zci12YWxpZGF0aW9uIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxz
ZSIsICItLXZhbGlkYXRlRlRMT1NSRXhpdExpdmVuZXNzPXRydWUiLCAqKEZUTF9PUFRJT05TICsg
RUFHRVJfT1BUSU9OUykpCiBlbmQKIAogZGVmIHJ1bkFsd2F5c1RyaWdnZXJDb3B5UGhhc2UKQEAg
LTY0NiwxMyArNjQ4LDM0IEBAIGRlZiBydW5MYXlvdXRUZXN0REZHRWFnZXJOb0NKSVQKICAgICBy
dW5MYXlvdXRUZXN0KCJkZmctZWFnZXItbm8tY2ppdCIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9
ZmFsc2UiLCAqRUFHRVJfT1BUSU9OUykKIGVuZAogCi1kZWYgZGVmYXVsdFJ1bkxheW91dFRlc3QK
K2RlZiBydW5MYXlvdXRUZXN0RGVmYXVsdEZUTAorICAgIHJ1bkxheW91dFRlc3QoImZ0bCIsICIt
LXRlc3RUaGVGVEw9dHJ1ZSIsICpGVExfT1BUSU9OUykKK2VuZAorCitkZWYgcnVuTGF5b3V0VGVz
dEZUTE5vQ0pJVAorICAgIHJ1bkxheW91dFRlc3QoImZ0bC1uby1jaml0IiwgIi0tdGVzdFRoZUZU
TD10cnVlIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICpGVExfT1BUSU9OUykKK2Vu
ZAorCitkZWYgcnVuTGF5b3V0VGVzdEZUTEVhZ2VyTm9DSklUCisgICAgcnVuTGF5b3V0VGVzdCgi
ZnRsLWVhZ2VyLW5vLWNqaXQiLCAiLS10ZXN0VGhlRlRMPXRydWUiLCAiLS1lbmFibGVDb25jdXJy
ZW50SklUPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIEVBR0VSX09QVElPTlMpKQorZW5kCisKK2Rl
ZiBub0ZUTFJ1bkxheW91dFRlc3QKICAgICBydW5MYXlvdXRUZXN0RGVmYXVsdAogICAgIHJ1bkxh
eW91dFRlc3ROb0xMSW50CiAgICAgcnVuTGF5b3V0VGVzdE5vQ0pJVAogICAgIHJ1bkxheW91dFRl
c3RERkdFYWdlck5vQ0pJVAogZW5kCiAKK2RlZiBkZWZhdWx0UnVuTGF5b3V0VGVzdAorICAgIG5v
RlRMUnVuTGF5b3V0VGVzdAorICAgIGlmICRlbmFibGVGVEwKKyAgICAgICAgcnVuTGF5b3V0VGVz
dERlZmF1bHRGVEwKKyAgICAgICAgcnVuTGF5b3V0VGVzdEZUTE5vQ0pJVAorICAgICAgICBydW5M
YXlvdXRUZXN0RlRMRWFnZXJOb0NKSVQKKyAgICBlbmQKK2VuZAorCiBkZWYgcHJlcGFyZUV4dHJh
UmVsYXRpdmVGaWxlcyhleHRyYUZpbGVzLCBkZXN0aW5hdGlvbikKICAgICBEaXIuY2hkaXIoJG91
dHB1dERpcikgewogICAgICAgICBleHRyYUZpbGVzLmVhY2ggewpAQCAtNzA2LDYgKzcyOSwxMCBA
QCBkZWYgcnVuTW96aWxsYVRlc3REZWZhdWx0KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1v
emlsbGFUZXN0KG5pbCwgbW9kZSwgZXh0cmFGaWxlcykKIGVuZAogCitkZWYgcnVuTW96aWxsYVRl
c3REZWZhdWx0RlRMKG1vZGUsICpleHRyYUZpbGVzKQorICAgIHJ1bk1vemlsbGFUZXN0KCJmdGwi
LCBtb2RlLCBleHRyYUZpbGVzLCAqRlRMX09QVElPTlMpCitlbmQKKwogZGVmIHJ1bk1vemlsbGFU
ZXN0TExJbnQobW9kZSwgKmV4dHJhRmlsZXMpCiAgICAgcnVuTW96aWxsYVRlc3QoImxsaW50Iiwg
bW9kZSwgZXh0cmFGaWxlcywgIi0tdXNlSklUPWZhbHNlIikKIGVuZApAQCAtNzE4LDExICs3NDUs
MTkgQEAgZGVmIHJ1bk1vemlsbGFUZXN0REZHRWFnZXJOb0NKSVRWYWxpZGF0ZVBoYXNlcyhtb2Rl
LCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVzdCgiZGZnLWVhZ2VyLW5vLWNqaXQtdmFs
aWRhdGUtcGhhc2VzIiwgbW9kZSwgZXh0cmFGaWxlcywgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1m
YWxzZSIsICItLXZhbGlkYXRlQnl0ZWNvZGU9dHJ1ZSIsICItLXZhbGlkYXRlR3JhcGhBdEVhY2hQ
aGFzZT10cnVlIiwgKkVBR0VSX09QVElPTlMpCiBlbmQKIAorZGVmIHJ1bk1vemlsbGFUZXN0RlRM
RWFnZXJOb0NKSVRWYWxpZGF0ZVBoYXNlcyhtb2RlLCAqZXh0cmFGaWxlcykKKyAgICBydW5Nb3pp
bGxhVGVzdCgiZnRsLWVhZ2VyLW5vLWNqaXQtdmFsaWRhdGUtcGhhc2VzIiwgbW9kZSwgZXh0cmFG
aWxlcywgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlQnl0ZWNvZGU9
dHJ1ZSIsICItLXZhbGlkYXRlR3JhcGhBdEVhY2hQaGFzZT10cnVlIiwgKihGVExfT1BUSU9OUyAr
IEVBR0VSX09QVElPTlMpKQorZW5kCisKIGRlZiBkZWZhdWx0UnVuTW96aWxsYVRlc3QobW9kZSwg
KmV4dHJhRmlsZXMpCiAgICAgcnVuTW96aWxsYVRlc3REZWZhdWx0KG1vZGUsICpleHRyYUZpbGVz
KQogICAgIHJ1bk1vemlsbGFUZXN0TExJbnQobW9kZSwgKmV4dHJhRmlsZXMpCiAgICAgcnVuTW96
aWxsYVRlc3RCYXNlbGluZUpJVChtb2RlLCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVz
dERGR0VhZ2VyTm9DSklUVmFsaWRhdGVQaGFzZXMobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgaWYg
JGVuYWJsZUZUTAorICAgICAgICBydW5Nb3ppbGxhVGVzdERlZmF1bHRGVEwobW9kZSwgKmV4dHJh
RmlsZXMpCisgICAgICAgIHJ1bk1vemlsbGFUZXN0RlRMRWFnZXJOb0NKSVRWYWxpZGF0ZVBoYXNl
cyhtb2RlLCAqZXh0cmFGaWxlcykKKyAgICBlbmQKIGVuZAogCiBkZWYgc2tpcApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUy
NjAyYjk4ODBhNDRmMzk4ZjliZWFlOTVmMjdkMjI4MWEwZjY0YmMuLjZjNThlYWRjY2U5NDgxZjg1
MWQ4YTZkZWNmYzVmODQ2ZDEyNWM2OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wMS0y
OCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIE1l
cmdlIHRoZSBqc0NTdGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICoganMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qczoKKyAg
ICAgICAgKiBqcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICoganMvcmVncmVzcy9zdGVwYW5vdl9jb250YWluZXIuaHRtbDoKKyAgICAgICAgKiBqcy9z
Y3JpcHQtdGVzdHMvZGZnLWFkZC1ub3QtbnVtYmVyLmpzOgorICAgICAgICAqIGpzL3NjcmlwdC10
ZXN0cy9sYXJnZS1leHByZXNzaW9ucy5qczoKKwogMjAxNC0wMS0yNyAgQnJpYW4gQnVyZyAgPGJi
dXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBjbGVhbiB1cCBpbml0aWFs
aXphdGlvbiBvZiBtYW5hZ2VycyBhbmQgb2JzZXJ2ZXJzIGluIEluc3BlY3RvclRlc3QKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4dAppbmRleCA4NzllMjY0
OWVmNGM5OWRiNTZmMmVmZmYxOGMzMTJlMjg3MmFiYzU0Li5hYTA2MTQzYjc0MmY5MjYxYzgwNGYw
ZjYzMzkyMWY1ZjllNzU4ZWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9sYXJnZS1leHBy
ZXNzaW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvbGFyZ2UtZXhwcmVzc2lv
bnMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
CiBQQVNTIGV2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDApKSBpcyBy
ZXBlYXRlZFN0cmluZygiYSIsIDEwMCkKIFBBU1MgZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxl
dHRlckEiLCAiKyIsIDEwMDApKSBpcyByZXBlYXRlZFN0cmluZygiYSIsIDEwMDApCi1QQVNTIGV2
YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMCkpIGlzIHJlcGVhdGVk
U3RyaW5nKCJhIiwgMTAwMDApCitQQVNTIGV2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJB
IiwgIisiLCAxMDAwMCkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogT3V0IG9mIG1lbW9yeS4KIFBB
U1MgZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMDAwMCkpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogT3V0IG9mIG1lbW9yeS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvc3RlcGFub3ZfY29udGFpbmVyLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvc3RlcGFub3ZfY29udGFpbmVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzMjgzNzEwOGQ3ODBkZjJhY2IyMTBjZTc3YTQ4MDYxY2MwYmJjM2FiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcworKysgL2Rldi9udWxsCkBAIC0xLDY0
MDQgKzAsMCBAQAotLy9AIHNsb3chCi0vL0AgcnVuRGVmYXVsdAotLy9AIHJ1bkRlZmF1bHRGVEwg
aWYgJGVuYWJsZUZUTAotCi0vLyBOb3RlOiBGb3IgbWF4aW11bS1zcGVlZCBjb2RlLCBzZWUgIk9w
dGltaXppbmcgQ29kZSIgb24gdGhlIEVtc2NyaXB0ZW4gd2lraSwgaHR0cHM6Ly9naXRodWIuY29t
L2tyaXBrZW4vZW1zY3JpcHRlbi93aWtpL09wdGltaXppbmctQ29kZQotLy8gTm90ZTogU29tZSBF
bXNjcmlwdGVuIHNldHRpbmdzIG1heSBsaW1pdCB0aGUgc3BlZWQgb2YgdGhlIGdlbmVyYXRlZCBj
b2RlLgotLy8gVGhlIE1vZHVsZSBvYmplY3Q6IE91ciBpbnRlcmZhY2UgdG8gdGhlIG91dHNpZGUg
d29ybGQuIFdlIGltcG9ydAotLy8gYW5kIGV4cG9ydCB2YWx1ZXMgb24gaXQsIGFuZCBkbyB0aGUg
d29yayB0byBnZXQgdGhhdCB0aHJvdWdoCi0vLyBjbG9zdXJlIGNvbXBpbGVyIGlmIG5lY2Vzc2Fy
eS4gVGhlcmUgYXJlIHZhcmlvdXMgd2F5cyBNb2R1bGUgY2FuIGJlIHVzZWQ6Ci0vLyAxLiBOb3Qg
ZGVmaW5lZC4gV2UgY3JlYXRlIGl0IGhlcmUKLS8vIDIuIEEgZnVuY3Rpb24gcGFyYW1ldGVyLCBm
dW5jdGlvbihNb2R1bGUpIHsgLi5nZW5lcmF0ZWQgY29kZS4uIH0KLS8vIDMuIHByZS1ydW4gYXBw
ZW5kZWQgaXQsIHZhciBNb2R1bGUgPSB7fTsgLi5nZW5lcmF0ZWQgY29kZS4uCi0vLyA0LiBFeHRl
cm5hbCBzY3JpcHQgdGFnIGRlZmluZXMgdmFyIE1vZHVsZS4KLS8vIFdlIG5lZWQgdG8gZG8gYW4g
ZXZhbCBpbiBvcmRlciB0byBoYW5kbGUgdGhlIGNsb3N1cmUgY29tcGlsZXIKLS8vIGNhc2UsIHdo
ZXJlIHRoaXMgY29kZSBoZXJlIGlzIG1pbmlmaWVkIGJ1dCBNb2R1bGUgd2FzIGRlZmluZWQKLS8v
IGVsc2V3aGVyZSAoZS5nLiBjYXNlIDQgYWJvdmUpLiBXZSBhbHNvIG5lZWQgdG8gY2hlY2sgaWYg
TW9kdWxlCi0vLyBhbHJlYWR5IGV4aXN0cyAoZS5nLiBjYXNlIDMgYWJvdmUpLgotLy8gTm90ZSB0
aGF0IGlmIHlvdSB3YW50IHRvIHJ1biBjbG9zdXJlLCBhbmQgYWxzbyB0byB1c2UgTW9kdWxlCi0v
LyBhZnRlciB0aGUgZ2VuZXJhdGVkIGNvZGUsIHlvdSB3aWxsIG5lZWQgdG8gZGVmaW5lICAgdmFy
IE1vZHVsZSA9IHt9OwotLy8gYmVmb3JlIHRoZSBjb2RlLiBUaGVuIHRoYXQgb2JqZWN0IHdpbGwg
YmUgdXNlZCBpbiB0aGUgY29kZSwgYW5kIHlvdQotLy8gY2FuIGNvbnRpbnVlIHRvIHVzZSBNb2R1
bGUgYWZ0ZXJ3YXJkcyBhcyB3ZWxsLgotdmFyIE1vZHVsZTsKLWlmICghTW9kdWxlKSBNb2R1bGUg
PSBldmFsKCcoZnVuY3Rpb24oKSB7IHRyeSB7IHJldHVybiBNb2R1bGUgfHwge30gfSBjYXRjaChl
KSB7IHJldHVybiB7fSB9IH0pKCknKTsKLS8vIFNvbWV0aW1lcyBhbiBleGlzdGluZyBNb2R1bGUg
b2JqZWN0IGV4aXN0cyB3aXRoIHByb3BlcnRpZXMKLS8vIG1lYW50IHRvIG92ZXJ3cml0ZSB0aGUg
ZGVmYXVsdCBtb2R1bGUgZnVuY3Rpb25hbGl0eS4gSGVyZQotLy8gd2UgY29sbGVjdCB0aG9zZSBw
cm9wZXJ0aWVzIGFuZCByZWFwcGx5IF9hZnRlcl8gd2UgY29uZmlndXJlCi0vLyB0aGUgY3VycmVu
dCBlbnZpcm9ubWVudCdzIGRlZmF1bHRzIHRvIGF2b2lkIGhhdmluZyB0byBiZSBzbwotLy8gZGVm
ZW5zaXZlIGR1cmluZyBpbml0aWFsaXphdGlvbi4KLXZhciBtb2R1bGVPdmVycmlkZXMgPSB7fTsK
LWZvciAodmFyIGtleSBpbiBNb2R1bGUpIHsKLSAgaWYgKE1vZHVsZS5oYXNPd25Qcm9wZXJ0eShr
ZXkpKSB7Ci0gICAgbW9kdWxlT3ZlcnJpZGVzW2tleV0gPSBNb2R1bGVba2V5XTsKLSAgfQotfQot
Ly8gVGhlIGVudmlyb25tZW50IHNldHVwIGNvZGUgYmVsb3cgaXMgY3VzdG9taXplZCB0byB1c2Ug
TW9kdWxlLgotLy8gKioqIEVudmlyb25tZW50IHNldHVwIGNvZGUgKioqCi12YXIgRU5WSVJPTk1F
TlRfSVNfTk9ERSA9IHR5cGVvZiBwcm9jZXNzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgcmVxdWly
ZSA9PT0gJ2Z1bmN0aW9uJzsKLXZhciBFTlZJUk9OTUVOVF9JU19XRUIgPSB0eXBlb2Ygd2luZG93
ID09PSAnb2JqZWN0JzsKLXZhciBFTlZJUk9OTUVOVF9JU19XT1JLRVIgPSB0eXBlb2YgaW1wb3J0
U2NyaXB0cyA9PT0gJ2Z1bmN0aW9uJzsKLXZhciBFTlZJUk9OTUVOVF9JU19TSEVMTCA9ICFFTlZJ
Uk9OTUVOVF9JU19XRUIgJiYgIUVOVklST05NRU5UX0lTX05PREUgJiYgIUVOVklST05NRU5UX0lT
X1dPUktFUjsKLWlmIChFTlZJUk9OTUVOVF9JU19OT0RFKSB7Ci0gIC8vIEV4cG9zZSBmdW5jdGlv
bmFsaXR5IGluIHRoZSBzYW1lIHNpbXBsZSB3YXkgdGhhdCB0aGUgc2hlbGxzIHdvcmsKLSAgLy8g
Tm90ZSB0aGF0IHdlIHBvbGx1dGUgdGhlIGdsb2JhbCBuYW1lc3BhY2UgaGVyZSwgb3RoZXJ3aXNl
IHdlIGJyZWFrIGluIG5vZGUKLSAgTW9kdWxlWydwcmludCddID0gZnVuY3Rpb24oeCkgewotICAg
IHByb2Nlc3NbJ3N0ZG91dCddLndyaXRlKHggKyAnXG4nKTsKLSAgfTsKLSAgTW9kdWxlWydwcmlu
dEVyciddID0gZnVuY3Rpb24oeCkgewotICAgIHByb2Nlc3NbJ3N0ZGVyciddLndyaXRlKHggKyAn
XG4nKTsKLSAgfTsKLSAgdmFyIG5vZGVGUyA9IHJlcXVpcmUoJ2ZzJyk7Ci0gIHZhciBub2RlUGF0
aCA9IHJlcXVpcmUoJ3BhdGgnKTsKLSAgTW9kdWxlWydyZWFkJ10gPSBmdW5jdGlvbihmaWxlbmFt
ZSwgYmluYXJ5KSB7Ci0gICAgZmlsZW5hbWUgPSBub2RlUGF0aFsnbm9ybWFsaXplJ10oZmlsZW5h
bWUpOwotICAgIHZhciByZXQgPSBub2RlRlNbJ3JlYWRGaWxlU3luYyddKGZpbGVuYW1lKTsKLSAg
ICAvLyBUaGUgcGF0aCBpcyBhYnNvbHV0ZSBpZiB0aGUgbm9ybWFsaXplZCB2ZXJzaW9uIGlzIHRo
ZSBzYW1lIGFzIHRoZSByZXNvbHZlZC4KLSAgICBpZiAoIXJldCAmJiBmaWxlbmFtZSAhPSBub2Rl
UGF0aFsncmVzb2x2ZSddKGZpbGVuYW1lKSkgewotICAgICAgZmlsZW5hbWUgPSBwYXRoLmpvaW4o
X19kaXJuYW1lLCAnLi4nLCAnc3JjJywgZmlsZW5hbWUpOwotICAgICAgcmV0ID0gbm9kZUZTWydy
ZWFkRmlsZVN5bmMnXShmaWxlbmFtZSk7Ci0gICAgfQotICAgIGlmIChyZXQgJiYgIWJpbmFyeSkg
cmV0ID0gcmV0LnRvU3RyaW5nKCk7Ci0gICAgcmV0dXJuIHJldDsKLSAgfTsKLSAgTW9kdWxlWydy
ZWFkQmluYXJ5J10gPSBmdW5jdGlvbihmaWxlbmFtZSkgeyByZXR1cm4gTW9kdWxlWydyZWFkJ10o
ZmlsZW5hbWUsIHRydWUpIH07Ci0gIE1vZHVsZVsnbG9hZCddID0gZnVuY3Rpb24oZikgewotICAg
IGdsb2JhbEV2YWwocmVhZChmKSk7Ci0gIH07Ci0gIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBwcm9j
ZXNzWydhcmd2J10uc2xpY2UoMik7Ci0gIG1vZHVsZS5leHBvcnRzID0gTW9kdWxlOwotfQotZWxz
ZSBpZiAoRU5WSVJPTk1FTlRfSVNfU0hFTEwpIHsKLSAgTW9kdWxlWydwcmludCddID0gcHJpbnQ7
Ci0gIGlmICh0eXBlb2YgcHJpbnRFcnIgIT0gJ3VuZGVmaW5lZCcpIE1vZHVsZVsncHJpbnRFcnIn
XSA9IHByaW50RXJyOyAvLyBub3QgcHJlc2VudCBpbiB2OCBvciBvbGRlciBzbQotICBpZiAodHlw
ZW9mIHJlYWQgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBNb2R1bGVbJ3JlYWQnXSA9IHJlYWQ7Ci0g
IH0gZWxzZSB7Ci0gICAgTW9kdWxlWydyZWFkJ10gPSBmdW5jdGlvbigpIHsgdGhyb3cgJ25vIHJl
YWQoKSBhdmFpbGFibGUgKGpzYz8pJyB9OwotICB9Ci0gIE1vZHVsZVsncmVhZEJpbmFyeSddID0g
ZnVuY3Rpb24oZikgewotICAgIHJldHVybiByZWFkKGYsICdiaW5hcnknKTsKLSAgfTsKLSAgaWYg
KHR5cGVvZiBzY3JpcHRBcmdzICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgTW9kdWxlWydhcmd1bWVu
dHMnXSA9IHNjcmlwdEFyZ3M7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIGFyZ3VtZW50cyAhPSAndW5k
ZWZpbmVkJykgewotICAgIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBhcmd1bWVudHM7Ci0gIH0KLSAg
dGhpc1snTW9kdWxlJ10gPSBNb2R1bGU7Ci19Ci1lbHNlIGlmIChFTlZJUk9OTUVOVF9JU19XRUIg
fHwgRU5WSVJPTk1FTlRfSVNfV09SS0VSKSB7Ci0gIE1vZHVsZVsncmVhZCddID0gZnVuY3Rpb24o
dXJsKSB7Ci0gICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHhoci5vcGVu
KCdHRVQnLCB1cmwsIGZhbHNlKTsKLSAgICB4aHIuc2VuZChudWxsKTsKLSAgICByZXR1cm4geGhy
LnJlc3BvbnNlVGV4dDsKLSAgfTsKLSAgaWYgKHR5cGVvZiBhcmd1bWVudHMgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gYXJndW1lbnRzOwotICB9Ci0gIGlmIChF
TlZJUk9OTUVOVF9JU19XRUIpIHsKLSAgICBNb2R1bGVbJ3ByaW50J10gPSBmdW5jdGlvbih4KSB7
Ci0gICAgICBjb25zb2xlLmxvZyh4KTsKLSAgICB9OwotICAgIE1vZHVsZVsncHJpbnRFcnInXSA9
IGZ1bmN0aW9uKHgpIHsKLSAgICAgIGNvbnNvbGUubG9nKHgpOwotICAgIH07Ci0gICAgdGhpc1sn
TW9kdWxlJ10gPSBNb2R1bGU7Ci0gIH0gZWxzZSBpZiAoRU5WSVJPTk1FTlRfSVNfV09SS0VSKSB7
Ci0gICAgLy8gV2UgY2FuIGRvIHZlcnkgbGl0dGxlIGhlcmUuLi4KLSAgICB2YXIgVFJZX1VTRV9E
VU1QID0gZmFsc2U7Ci0gICAgTW9kdWxlWydwcmludCddID0gKFRSWV9VU0VfRFVNUCAmJiAodHlw
ZW9mKGR1bXApICE9PSAidW5kZWZpbmVkIikgPyAoZnVuY3Rpb24oeCkgewotICAgICAgZHVtcCh4
KTsKLSAgICB9KSA6IChmdW5jdGlvbih4KSB7Ci0gICAgICAvLyBzZWxmLnBvc3RNZXNzYWdlKHgp
OyAvLyBlbmFibGUgdGhpcyBpZiB5b3Ugd2FudCBzdGRvdXQgdG8gYmUgc2VudCBhcyBtZXNzYWdl
cwotICAgIH0pKTsKLSAgICBNb2R1bGVbJ2xvYWQnXSA9IGltcG9ydFNjcmlwdHM7Ci0gIH0KLX0K
LWVsc2UgewotICAvLyBVbnJlYWNoYWJsZSBiZWNhdXNlIFNIRUxMIGlzIGRlcGVuZGFudCBvbiB0
aGUgb3RoZXJzCi0gIHRocm93ICdVbmtub3duIHJ1bnRpbWUgZW52aXJvbm1lbnQuIFdoZXJlIGFy
ZSB3ZT8nOwotfQotZnVuY3Rpb24gZ2xvYmFsRXZhbCh4KSB7Ci0gIGV2YWwuY2FsbChudWxsLCB4
KTsKLX0KLWlmICghTW9kdWxlWydsb2FkJ10gPT0gJ3VuZGVmaW5lZCcgJiYgTW9kdWxlWydyZWFk
J10pIHsKLSAgTW9kdWxlWydsb2FkJ10gPSBmdW5jdGlvbihmKSB7Ci0gICAgZ2xvYmFsRXZhbChN
b2R1bGVbJ3JlYWQnXShmKSk7Ci0gIH07Ci19Ci1pZiAoIU1vZHVsZVsncHJpbnQnXSkgewotICBN
b2R1bGVbJ3ByaW50J10gPSBmdW5jdGlvbigpe307Ci19Ci1pZiAoIU1vZHVsZVsncHJpbnRFcnIn
XSkgewotICBNb2R1bGVbJ3ByaW50RXJyJ10gPSBNb2R1bGVbJ3ByaW50J107Ci19Ci1pZiAoIU1v
ZHVsZVsnYXJndW1lbnRzJ10pIHsKLSAgTW9kdWxlWydhcmd1bWVudHMnXSA9IFtdOwotfQotLy8g
KioqIEVudmlyb25tZW50IHNldHVwIGNvZGUgKioqCi0vLyBDbG9zdXJlIGhlbHBlcnMKLU1vZHVs
ZS5wcmludCA9IE1vZHVsZVsncHJpbnQnXTsKLU1vZHVsZS5wcmludEVyciA9IE1vZHVsZVsncHJp
bnRFcnInXTsKLS8vIENhbGxiYWNrcwotTW9kdWxlWydwcmVSdW4nXSA9IFtdOwotTW9kdWxlWydw
b3N0UnVuJ10gPSBbXTsKLS8vIE1lcmdlIGJhY2sgaW4gdGhlIG92ZXJyaWRlcwotZm9yICh2YXIg
a2V5IGluIG1vZHVsZU92ZXJyaWRlcykgewotICBpZiAobW9kdWxlT3ZlcnJpZGVzLmhhc093blBy
b3BlcnR5KGtleSkpIHsKLSAgICBNb2R1bGVba2V5XSA9IG1vZHVsZU92ZXJyaWRlc1trZXldOwot
ICB9Ci19Ci0vLyA9PT0gQXV0by1nZW5lcmF0ZWQgcHJlYW1ibGUgbGlicmFyeSBzdHVmZiA9PT0K
LS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8gUnVudGltZSBj
b2RlIHNoYXJlZCB3aXRoIGNvbXBpbGVyCi0vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLXZhciBSdW50aW1lID0gewotICBzdGFja1NhdmU6IGZ1bmN0aW9uICgpIHsK
LSAgICByZXR1cm4gU1RBQ0tUT1A7Ci0gIH0sCi0gIHN0YWNrUmVzdG9yZTogZnVuY3Rpb24gKHN0
YWNrVG9wKSB7Ci0gICAgU1RBQ0tUT1AgPSBzdGFja1RvcDsKLSAgfSwKLSAgZm9yY2VBbGlnbjog
ZnVuY3Rpb24gKHRhcmdldCwgcXVhbnR1bSkgewotICAgIHF1YW50dW0gPSBxdWFudHVtIHx8IDQ7
Ci0gICAgaWYgKHF1YW50dW0gPT0gMSkgcmV0dXJuIHRhcmdldDsKLSAgICBpZiAoaXNOdW1iZXIo
dGFyZ2V0KSAmJiBpc051bWJlcihxdWFudHVtKSkgewotICAgICAgcmV0dXJuIE1hdGguY2VpbCh0
YXJnZXQvcXVhbnR1bSkqcXVhbnR1bTsKLSAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKHF1YW50dW0p
ICYmIGlzUG93ZXJPZlR3byhxdWFudHVtKSkgewotICAgICAgdmFyIGxvZ2cgPSBsb2cyKHF1YW50
dW0pOwotICAgICAgcmV0dXJuICcoKCgoJyArdGFyZ2V0ICsgJykrJyArIChxdWFudHVtLTEpICsg
Jyk+PicgKyBsb2dnICsgJyk8PCcgKyBsb2dnICsgJyknOwotICAgIH0KLSAgICByZXR1cm4gJ01h
dGguY2VpbCgoJyArIHRhcmdldCArICcpLycgKyBxdWFudHVtICsgJykqJyArIHF1YW50dW07Ci0g
IH0sCi0gIGlzTnVtYmVyVHlwZTogZnVuY3Rpb24gKHR5cGUpIHsKLSAgICByZXR1cm4gdHlwZSBp
biBSdW50aW1lLklOVF9UWVBFUyB8fCB0eXBlIGluIFJ1bnRpbWUuRkxPQVRfVFlQRVM7Ci0gIH0s
Ci0gIGlzUG9pbnRlclR5cGU6IGZ1bmN0aW9uIGlzUG9pbnRlclR5cGUodHlwZSkgewotICByZXR1
cm4gdHlwZVt0eXBlLmxlbmd0aC0xXSA9PSAnKic7Ci19LAotICBpc1N0cnVjdFR5cGU6IGZ1bmN0
aW9uIGlzU3RydWN0VHlwZSh0eXBlKSB7Ci0gIGlmIChpc1BvaW50ZXJUeXBlKHR5cGUpKSByZXR1
cm4gZmFsc2U7Ci0gIGlmIChpc0FycmF5VHlwZSh0eXBlKSkgcmV0dXJuIHRydWU7Ci0gIGlmICgv
PD97ID9bXn1dKiA/fT4/Ly50ZXN0KHR5cGUpKSByZXR1cm4gdHJ1ZTsgLy8geyBpMzIsIGk4IH0g
ZXRjLiAtIGFub255bW91cyBzdHJ1Y3QgdHlwZXMKLSAgLy8gU2VlIGNvbW1lbnQgaW4gaXNTdHJ1
Y3RQb2ludGVyVHlwZSgpCi0gIHJldHVybiB0eXBlWzBdID09ICclJzsKLX0sCi0gIElOVF9UWVBF
UzogeyJpMSI6MCwiaTgiOjAsImkxNiI6MCwiaTMyIjowLCJpNjQiOjB9LAotICBGTE9BVF9UWVBF
UzogeyJmbG9hdCI6MCwiZG91YmxlIjowfSwKLSAgb3I2NDogZnVuY3Rpb24gKHgsIHkpIHsKLSAg
ICB2YXIgbCA9ICh4IHwgMCkgfCAoeSB8IDApOwotICAgIHZhciBoID0gKE1hdGgucm91bmQoeCAv
IDQyOTQ5NjcyOTYpIHwgTWF0aC5yb3VuZCh5IC8gNDI5NDk2NzI5NikpICogNDI5NDk2NzI5NjsK
LSAgICByZXR1cm4gbCArIGg7Ci0gIH0sCi0gIGFuZDY0OiBmdW5jdGlvbiAoeCwgeSkgewotICAg
IHZhciBsID0gKHggfCAwKSAmICh5IHwgMCk7Ci0gICAgdmFyIGggPSAoTWF0aC5yb3VuZCh4IC8g
NDI5NDk2NzI5NikgJiBNYXRoLnJvdW5kKHkgLyA0Mjk0OTY3Mjk2KSkgKiA0Mjk0OTY3Mjk2Owot
ICAgIHJldHVybiBsICsgaDsKLSAgfSwKLSAgeG9yNjQ6IGZ1bmN0aW9uICh4LCB5KSB7Ci0gICAg
dmFyIGwgPSAoeCB8IDApIF4gKHkgfCAwKTsKLSAgICB2YXIgaCA9IChNYXRoLnJvdW5kKHggLyA0
Mjk0OTY3Mjk2KSBeIE1hdGgucm91bmQoeSAvIDQyOTQ5NjcyOTYpKSAqIDQyOTQ5NjcyOTY7Ci0g
ICAgcmV0dXJuIGwgKyBoOwotICB9LAotICBnZXROYXRpdmVUeXBlU2l6ZTogZnVuY3Rpb24gKHR5
cGUsIHF1YW50dW1TaXplKSB7Ci0gICAgaWYgKFJ1bnRpbWUuUVVBTlRVTV9TSVpFID09IDEpIHJl
dHVybiAxOwotICAgIHZhciBzaXplID0gewotICAgICAgJyVpMSc6IDEsCi0gICAgICAnJWk4Jzog
MSwKLSAgICAgICclaTE2JzogMiwKLSAgICAgICclaTMyJzogNCwKLSAgICAgICclaTY0JzogOCwK
LSAgICAgICIlZmxvYXQiOiA0LAotICAgICAgIiVkb3VibGUiOiA4Ci0gICAgfVsnJScrdHlwZV07
IC8vIGFkZCAnJScgc2luY2UgZmxvYXQgYW5kIGRvdWJsZSBjb25mdXNlIENsb3N1cmUgY29tcGls
ZXIgYXMga2V5cywgYW5kIGFsc28gc3BpZGVybW9ua2V5IGFzIGEgY29tcGlsZXIgd2lsbCByZW1v
dmUgJ3MgZnJvbSAnX2k4JyBldGMKLSAgICBpZiAoIXNpemUpIHsKLSAgICAgIGlmICh0eXBlLmNo
YXJBdCh0eXBlLmxlbmd0aC0xKSA9PSAnKicpIHsKLSAgICAgICAgc2l6ZSA9IFJ1bnRpbWUuUVVB
TlRVTV9TSVpFOyAvLyBBIHBvaW50ZXIKLSAgICAgIH0gZWxzZSBpZiAodHlwZVswXSA9PSAnaScp
IHsKLSAgICAgICAgdmFyIGJpdHMgPSBwYXJzZUludCh0eXBlLnN1YnN0cigxKSk7Ci0gICAgICAg
IGFzc2VydChiaXRzICUgOCA9PSAwKTsKLSAgICAgICAgc2l6ZSA9IGJpdHMvODsKLSAgICAgIH0K
LSAgICB9Ci0gICAgcmV0dXJuIHNpemU7Ci0gIH0sCi0gIGdldE5hdGl2ZUZpZWxkU2l6ZTogZnVu
Y3Rpb24gKHR5cGUpIHsKLSAgICByZXR1cm4gTWF0aC5tYXgoUnVudGltZS5nZXROYXRpdmVUeXBl
U2l6ZSh0eXBlKSwgUnVudGltZS5RVUFOVFVNX1NJWkUpOwotICB9LAotICBkZWR1cDogZnVuY3Rp
b24gZGVkdXAoaXRlbXMsIGlkZW50KSB7Ci0gIHZhciBzZWVuID0ge307Ci0gIGlmIChpZGVudCkg
ewotICAgIHJldHVybiBpdGVtcy5maWx0ZXIoZnVuY3Rpb24oaXRlbSkgewotICAgICAgaWYgKHNl
ZW5baXRlbVtpZGVudF1dKSByZXR1cm4gZmFsc2U7Ci0gICAgICBzZWVuW2l0ZW1baWRlbnRdXSA9
IHRydWU7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9KTsKLSAgfSBlbHNlIHsKLSAgICByZXR1
cm4gaXRlbXMuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHsKLSAgICAgIGlmIChzZWVuW2l0ZW1dKSBy
ZXR1cm4gZmFsc2U7Ci0gICAgICBzZWVuW2l0ZW1dID0gdHJ1ZTsKLSAgICAgIHJldHVybiB0cnVl
OwotICAgIH0pOwotICB9Ci19LAotICBzZXQ6IGZ1bmN0aW9uIHNldCgpIHsKLSAgdmFyIGFyZ3Mg
PSB0eXBlb2YgYXJndW1lbnRzWzBdID09PSAnb2JqZWN0JyA/IGFyZ3VtZW50c1swXSA6IGFyZ3Vt
ZW50czsKLSAgdmFyIHJldCA9IHt9OwotICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3Ro
OyBpKyspIHsKLSAgICByZXRbYXJnc1tpXV0gPSAwOwotICB9Ci0gIHJldHVybiByZXQ7Ci19LAot
ICBTVEFDS19BTElHTjogOCwKLSAgZ2V0QWxpZ25TaXplOiBmdW5jdGlvbiAodHlwZSwgc2l6ZSwg
dmFyYXJnKSB7Ci0gICAgLy8gd2UgYWxpZ24gaTY0cyBhbmQgZG91YmxlcyBvbiA2NC1iaXQgYm91
bmRhcmllcywgdW5saWtlIHg4NgotICAgIGlmICh0eXBlID09ICdpNjQnIHx8IHR5cGUgPT0gJ2Rv
dWJsZScgfHwgdmFyYXJnKSByZXR1cm4gODsKLSAgICBpZiAoIXR5cGUpIHJldHVybiBNYXRoLm1p
bihzaXplLCA4KTsgLy8gYWxpZ24gc3RydWN0dXJlcyBpbnRlcm5hbGx5IHRvIDY0IGJpdHMKLSAg
ICByZXR1cm4gTWF0aC5taW4oc2l6ZSB8fCAodHlwZSA/IFJ1bnRpbWUuZ2V0TmF0aXZlRmllbGRT
aXplKHR5cGUpIDogMCksIFJ1bnRpbWUuUVVBTlRVTV9TSVpFKTsKLSAgfSwKLSAgY2FsY3VsYXRl
U3RydWN0QWxpZ25tZW50OiBmdW5jdGlvbiBjYWxjdWxhdGVTdHJ1Y3RBbGlnbm1lbnQodHlwZSkg
ewotICAgIHR5cGUuZmxhdFNpemUgPSAwOwotICAgIHR5cGUuYWxpZ25TaXplID0gMDsKLSAgICB2
YXIgZGlmZnMgPSBbXTsKLSAgICB2YXIgcHJldiA9IC0xOwotICAgIHZhciBpbmRleCA9IDA7Ci0g
ICAgdHlwZS5mbGF0SW5kZXhlcyA9IHR5cGUuZmllbGRzLm1hcChmdW5jdGlvbihmaWVsZCkgewot
ICAgICAgaW5kZXgrKzsKLSAgICAgIHZhciBzaXplLCBhbGlnblNpemU7Ci0gICAgICBpZiAoUnVu
dGltZS5pc051bWJlclR5cGUoZmllbGQpIHx8IFJ1bnRpbWUuaXNQb2ludGVyVHlwZShmaWVsZCkp
IHsKLSAgICAgICAgc2l6ZSA9IFJ1bnRpbWUuZ2V0TmF0aXZlVHlwZVNpemUoZmllbGQpOyAvLyBw
YWNrIGNoYXI7IGNoYXI7IGluIHN0cnVjdHMsIGFsc28gY2hhcltYXXMuCi0gICAgICAgIGFsaWdu
U2l6ZSA9IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKGZpZWxkLCBzaXplKTsKLSAgICAgIH0gZWxzZSBp
ZiAoUnVudGltZS5pc1N0cnVjdFR5cGUoZmllbGQpKSB7Ci0gICAgICAgIGlmIChmaWVsZFsxXSA9
PT0gJzAnKSB7Ci0gICAgICAgICAgLy8gdGhpcyBpcyBbMCB4IHNvbWV0aGluZ10uIFdoZW4gaW5z
aWRlIGFub3RoZXIgc3RydWN0dXJlIGxpa2UgaGVyZSwgaXQgbXVzdCBiZSBhdCB0aGUgZW5kLAot
ICAgICAgICAgIC8vIGFuZCBpdCBhZGRzIG5vIHNpemUKLSAgICAgICAgICAvLyBYWFggdGhpcyBo
YXBwZW5zIGluIGphdmEtbmJvZHkgZm9yIGV4YW1wbGUuLi4gYXNzZXJ0KGluZGV4ID09PSB0eXBl
LmZpZWxkcy5sZW5ndGgsICd6ZXJvLWxlbmd0aCBpbiB0aGUgbWlkZGxlIScpOwotICAgICAgICAg
IHNpemUgPSAwOwotICAgICAgICAgIGFsaWduU2l6ZSA9IHR5cGUuYWxpZ25TaXplIHx8IFFVQU5U
VU1fU0laRTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBzaXplID0gVHlwZXMudHlwZXNb
ZmllbGRdLmZsYXRTaXplOwotICAgICAgICAgIGFsaWduU2l6ZSA9IFJ1bnRpbWUuZ2V0QWxpZ25T
aXplKG51bGwsIFR5cGVzLnR5cGVzW2ZpZWxkXS5hbGlnblNpemUpOwotICAgICAgICB9Ci0gICAg
ICB9IGVsc2UgaWYgKGZpZWxkWzBdID09ICdiJykgewotICAgICAgICAvLyBiTiwgbGFyZ2UgbnVt
YmVyIGZpZWxkLCBsaWtlIGEgW04geCBpOF0KLSAgICAgICAgc2l6ZSA9IGZpZWxkLnN1YnN0cigx
KXwwOwotICAgICAgICBhbGlnblNpemUgPSAxOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhy
b3cgJ1VuY2xlYXIgdHlwZSBpbiBzdHJ1Y3Q6ICcgKyBmaWVsZCArICcsIGluICcgKyB0eXBlLm5h
bWVfICsgJyA6OiAnICsgZHVtcChUeXBlcy50eXBlc1t0eXBlLm5hbWVfXSk7Ci0gICAgICB9Ci0g
ICAgICBpZiAodHlwZS5wYWNrZWQpIGFsaWduU2l6ZSA9IDE7Ci0gICAgICB0eXBlLmFsaWduU2l6
ZSA9IE1hdGgubWF4KHR5cGUuYWxpZ25TaXplLCBhbGlnblNpemUpOwotICAgICAgdmFyIGN1cnIg
PSBSdW50aW1lLmFsaWduTWVtb3J5KHR5cGUuZmxhdFNpemUsIGFsaWduU2l6ZSk7IC8vIGlmIG5l
Y2Vzc2FyeSwgcGxhY2UgdGhpcyBvbiBhbGlnbmVkIG1lbW9yeQotICAgICAgdHlwZS5mbGF0U2l6
ZSA9IGN1cnIgKyBzaXplOwotICAgICAgaWYgKHByZXYgPj0gMCkgewotICAgICAgICBkaWZmcy5w
dXNoKGN1cnItcHJldik7Ci0gICAgICB9Ci0gICAgICBwcmV2ID0gY3VycjsKLSAgICAgIHJldHVy
biBjdXJyOwotICAgIH0pOwotICAgIHR5cGUuZmxhdFNpemUgPSBSdW50aW1lLmFsaWduTWVtb3J5
KHR5cGUuZmxhdFNpemUsIHR5cGUuYWxpZ25TaXplKTsKLSAgICBpZiAoZGlmZnMubGVuZ3RoID09
IDApIHsKLSAgICAgIHR5cGUuZmxhdEZhY3RvciA9IHR5cGUuZmxhdFNpemU7Ci0gICAgfSBlbHNl
IGlmIChSdW50aW1lLmRlZHVwKGRpZmZzKS5sZW5ndGggPT0gMSkgewotICAgICAgdHlwZS5mbGF0
RmFjdG9yID0gZGlmZnNbMF07Ci0gICAgfQotICAgIHR5cGUubmVlZHNGbGF0dGVuaW5nID0gKHR5
cGUuZmxhdEZhY3RvciAhPSAxKTsKLSAgICByZXR1cm4gdHlwZS5mbGF0SW5kZXhlczsKLSAgfSwK
LSAgZ2VuZXJhdGVTdHJ1Y3RJbmZvOiBmdW5jdGlvbiAoc3RydWN0LCB0eXBlTmFtZSwgb2Zmc2V0
KSB7Ci0gICAgdmFyIHR5cGUsIGFsaWdubWVudDsKLSAgICBpZiAodHlwZU5hbWUpIHsKLSAgICAg
IG9mZnNldCA9IG9mZnNldCB8fCAwOwotICAgICAgdHlwZSA9ICh0eXBlb2YgVHlwZXMgPT09ICd1
bmRlZmluZWQnID8gUnVudGltZS50eXBlSW5mbyA6IFR5cGVzLnR5cGVzKVt0eXBlTmFtZV07Ci0g
ICAgICBpZiAoIXR5cGUpIHJldHVybiBudWxsOwotICAgICAgaWYgKHR5cGUuZmllbGRzLmxlbmd0
aCAhPSBzdHJ1Y3QubGVuZ3RoKSB7Ci0gICAgICAgIHByaW50RXJyKCdOdW1iZXIgb2YgbmFtZWQg
ZmllbGRzIG11c3QgbWF0Y2ggdGhlIHR5cGUgZm9yICcgKyB0eXBlTmFtZSArICc6IHBvc3NpYmx5
IGR1cGxpY2F0ZSBzdHJ1Y3QgbmFtZXMuIENhbm5vdCByZXR1cm4gc3RydWN0SW5mbycpOwotICAg
ICAgICByZXR1cm4gbnVsbDsKLSAgICAgIH0KLSAgICAgIGFsaWdubWVudCA9IHR5cGUuZmxhdElu
ZGV4ZXM7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHZhciB0eXBlID0geyBmaWVsZHM6IHN0cnVjdC5t
YXAoZnVuY3Rpb24oaXRlbSkgeyByZXR1cm4gaXRlbVswXSB9KSB9OwotICAgICAgYWxpZ25tZW50
ID0gUnVudGltZS5jYWxjdWxhdGVTdHJ1Y3RBbGlnbm1lbnQodHlwZSk7Ci0gICAgfQotICAgIHZh
ciByZXQgPSB7Ci0gICAgICBfX3NpemVfXzogdHlwZS5mbGF0U2l6ZQotICAgIH07Ci0gICAgaWYg
KHR5cGVOYW1lKSB7Ci0gICAgICBzdHJ1Y3QuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpKSB7Ci0g
ICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICByZXRbaXRl
bV0gPSBhbGlnbm1lbnRbaV0gKyBvZmZzZXQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
Ly8gZW1iZWRkZWQgc3RydWN0Ci0gICAgICAgICAgdmFyIGtleTsKLSAgICAgICAgICBmb3IgKHZh
ciBrIGluIGl0ZW0pIGtleSA9IGs7Ci0gICAgICAgICAgcmV0W2tleV0gPSBSdW50aW1lLmdlbmVy
YXRlU3RydWN0SW5mbyhpdGVtW2tleV0sIHR5cGUuZmllbGRzW2ldLCBhbGlnbm1lbnRbaV0pOwot
ICAgICAgICB9Ci0gICAgICB9KTsKLSAgICB9IGVsc2UgewotICAgICAgc3RydWN0LmZvckVhY2go
ZnVuY3Rpb24oaXRlbSwgaSkgewotICAgICAgICByZXRbaXRlbVsxXV0gPSBhbGlnbm1lbnRbaV07
Ci0gICAgICB9KTsKLSAgICB9Ci0gICAgcmV0dXJuIHJldDsKLSAgfSwKLSAgZHluQ2FsbDogZnVu
Y3Rpb24gKHNpZywgcHRyLCBhcmdzKSB7Ci0gICAgaWYgKGFyZ3MgJiYgYXJncy5sZW5ndGgpIHsK
LSAgICAgIGlmICghYXJncy5zcGxpY2UpIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2Fs
bChhcmdzKTsKLSAgICAgIGFyZ3Muc3BsaWNlKDAsIDAsIHB0cik7Ci0gICAgICByZXR1cm4gTW9k
dWxlWydkeW5DYWxsXycgKyBzaWddLmFwcGx5KG51bGwsIGFyZ3MpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICByZXR1cm4gTW9kdWxlWydkeW5DYWxsXycgKyBzaWddLmNhbGwobnVsbCwgcHRyKTsKLSAg
ICB9Ci0gIH0sCi0gIGZ1bmN0aW9uUG9pbnRlcnM6IFtdLAotICBhZGRGdW5jdGlvbjogZnVuY3Rp
b24gKGZ1bmMpIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IFJ1bnRpbWUuZnVuY3Rpb25Qb2lu
dGVycy5sZW5ndGg7IGkrKykgewotICAgICAgaWYgKCFSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnNb
aV0pIHsKLSAgICAgICAgUnVudGltZS5mdW5jdGlvblBvaW50ZXJzW2ldID0gZnVuYzsKLSAgICAg
ICAgcmV0dXJuIDIgKyAyKmk7Ci0gICAgICB9Ci0gICAgfQotICAgIHRocm93ICdGaW5pc2hlZCB1
cCBhbGwgcmVzZXJ2ZWQgZnVuY3Rpb24gcG9pbnRlcnMuIFVzZSBhIGhpZ2hlciB2YWx1ZSBmb3Ig
UkVTRVJWRURfRlVOQ1RJT05fUE9JTlRFUlMuJzsKLSAgfSwKLSAgcmVtb3ZlRnVuY3Rpb246IGZ1
bmN0aW9uIChpbmRleCkgewotICAgIFJ1bnRpbWUuZnVuY3Rpb25Qb2ludGVyc1soaW5kZXgtMikv
Ml0gPSBudWxsOwotICB9LAotICB3YXJuT25jZTogZnVuY3Rpb24gKHRleHQpIHsKLSAgICBpZiAo
IVJ1bnRpbWUud2Fybk9uY2Uuc2hvd24pIFJ1bnRpbWUud2Fybk9uY2Uuc2hvd24gPSB7fTsKLSAg
ICBpZiAoIVJ1bnRpbWUud2Fybk9uY2Uuc2hvd25bdGV4dF0pIHsKLSAgICAgIFJ1bnRpbWUud2Fy
bk9uY2Uuc2hvd25bdGV4dF0gPSAxOwotICAgICAgTW9kdWxlLnByaW50RXJyKHRleHQpOwotICAg
IH0KLSAgfSwKLSAgZnVuY1dyYXBwZXJzOiB7fSwKLSAgZ2V0RnVuY1dyYXBwZXI6IGZ1bmN0aW9u
IChmdW5jLCBzaWcpIHsKLSAgICBhc3NlcnQoc2lnKTsKLSAgICBpZiAoIVJ1bnRpbWUuZnVuY1dy
YXBwZXJzW2Z1bmNdKSB7Ci0gICAgICBSdW50aW1lLmZ1bmNXcmFwcGVyc1tmdW5jXSA9IGZ1bmN0
aW9uKCkgewotICAgICAgICByZXR1cm4gUnVudGltZS5keW5DYWxsKHNpZywgZnVuYywgYXJndW1l
bnRzKTsKLSAgICAgIH07Ci0gICAgfQotICAgIHJldHVybiBSdW50aW1lLmZ1bmNXcmFwcGVyc1tm
dW5jXTsKLSAgfSwKLSAgVVRGOFByb2Nlc3NvcjogZnVuY3Rpb24gKCkgewotICAgIHZhciBidWZm
ZXIgPSBbXTsKLSAgICB2YXIgbmVlZGVkID0gMDsKLSAgICB0aGlzLnByb2Nlc3NDQ2hhciA9IGZ1
bmN0aW9uIChjb2RlKSB7Ci0gICAgICBjb2RlID0gY29kZSAmIDB4RkY7Ci0gICAgICBpZiAoYnVm
ZmVyLmxlbmd0aCA9PSAwKSB7Ci0gICAgICAgIGlmICgoY29kZSAmIDB4ODApID09IDB4MDApIHsg
ICAgICAgIC8vIDB4eHh4eHh4Ci0gICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUo
Y29kZSk7Ci0gICAgICAgIH0KLSAgICAgICAgYnVmZmVyLnB1c2goY29kZSk7Ci0gICAgICAgIGlm
ICgoY29kZSAmIDB4RTApID09IDB4QzApIHsgICAgICAgIC8vIDExMHh4eHh4Ci0gICAgICAgICAg
bmVlZGVkID0gMTsKLSAgICAgICAgfSBlbHNlIGlmICgoY29kZSAmIDB4RjApID09IDB4RTApIHsg
Ly8gMTExMHh4eHgKLSAgICAgICAgICBuZWVkZWQgPSAyOwotICAgICAgICB9IGVsc2UgeyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyAxMTExMHh4eAotICAgICAgICAgIG5lZWRlZCA9IDM7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuICcnOwotICAgICAgfQotICAgICAgaWYgKG5lZWRl
ZCkgewotICAgICAgICBidWZmZXIucHVzaChjb2RlKTsKLSAgICAgICAgbmVlZGVkLS07Ci0gICAg
ICAgIGlmIChuZWVkZWQgPiAwKSByZXR1cm4gJyc7Ci0gICAgICB9Ci0gICAgICB2YXIgYzEgPSBi
dWZmZXJbMF07Ci0gICAgICB2YXIgYzIgPSBidWZmZXJbMV07Ci0gICAgICB2YXIgYzMgPSBidWZm
ZXJbMl07Ci0gICAgICB2YXIgYzQgPSBidWZmZXJbM107Ci0gICAgICB2YXIgcmV0OwotICAgICAg
aWYgKGJ1ZmZlci5sZW5ndGggPT0gMikgewotICAgICAgICByZXQgPSBTdHJpbmcuZnJvbUNoYXJD
b2RlKCgoYzEgJiAweDFGKSA8PCA2KSAgfCAoYzIgJiAweDNGKSk7Ci0gICAgICB9IGVsc2UgaWYg
KGJ1ZmZlci5sZW5ndGggPT0gMykgewotICAgICAgICByZXQgPSBTdHJpbmcuZnJvbUNoYXJDb2Rl
KCgoYzEgJiAweDBGKSA8PCAxMikgfCAoKGMyICYgMHgzRikgPDwgNikgIHwgKGMzICYgMHgzRikp
OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gaHR0cDovL21hdGhpYXNieW5lbnMuYmUvbm90
ZXMvamF2YXNjcmlwdC1lbmNvZGluZyNzdXJyb2dhdGUtZm9ybXVsYWUKLSAgICAgICAgdmFyIGNv
ZGVQb2ludCA9ICgoYzEgJiAweDA3KSA8PCAxOCkgfCAoKGMyICYgMHgzRikgPDwgMTIpIHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICgoYzMgJiAweDNGKSA8PCA2KSAgfCAoYzQgJiAweDNGKTsK
LSAgICAgICAgcmV0ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgKLSAgICAgICAgICBNYXRoLmZsb29y
KChjb2RlUG9pbnQgLSAweDEwMDAwKSAvIDB4NDAwKSArIDB4RDgwMCwKLSAgICAgICAgICAoY29k
ZVBvaW50IC0gMHgxMDAwMCkgJSAweDQwMCArIDB4REMwMCk7Ci0gICAgICB9Ci0gICAgICBidWZm
ZXIubGVuZ3RoID0gMDsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotICAgIHRoaXMucHJvY2Vz
c0pTU3RyaW5nID0gZnVuY3Rpb24oc3RyaW5nKSB7Ci0gICAgICBzdHJpbmcgPSB1bmVzY2FwZShl
bmNvZGVVUklDb21wb25lbnQoc3RyaW5nKSk7Ci0gICAgICB2YXIgcmV0ID0gW107Ci0gICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykgewotICAgICAgICByZXQucHVz
aChzdHJpbmcuY2hhckNvZGVBdChpKSk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcmV0OwotICAg
IH0KLSAgfSwKLSAgc3RhY2tBbGxvYzogZnVuY3Rpb24gKHNpemUpIHsgdmFyIHJldCA9IFNUQUNL
VE9QO1NUQUNLVE9QID0gKFNUQUNLVE9QICsgc2l6ZSl8MDtTVEFDS1RPUCA9ICgoKChTVEFDS1RP
UCkrNyk+PjMpPDwzKTsgcmV0dXJuIHJldDsgfSwKLSAgc3RhdGljQWxsb2M6IGZ1bmN0aW9uIChz
aXplKSB7IHZhciByZXQgPSBTVEFUSUNUT1A7U1RBVElDVE9QID0gKFNUQVRJQ1RPUCArIHNpemUp
fDA7U1RBVElDVE9QID0gKCgoKFNUQVRJQ1RPUCkrNyk+PjMpPDwzKTsgcmV0dXJuIHJldDsgfSwK
LSAgZHluYW1pY0FsbG9jOiBmdW5jdGlvbiAoc2l6ZSkgeyB2YXIgcmV0ID0gRFlOQU1JQ1RPUDtE
WU5BTUlDVE9QID0gKERZTkFNSUNUT1AgKyBzaXplKXwwO0RZTkFNSUNUT1AgPSAoKCgoRFlOQU1J
Q1RPUCkrNyk+PjMpPDwzKTsgaWYgKERZTkFNSUNUT1AgPj0gVE9UQUxfTUVNT1JZKSBlbmxhcmdl
TWVtb3J5KCk7OyByZXR1cm4gcmV0OyB9LAotICBhbGlnbk1lbW9yeTogZnVuY3Rpb24gKHNpemUs
cXVhbnR1bSkgeyB2YXIgcmV0ID0gc2l6ZSA9IE1hdGguY2VpbCgoc2l6ZSkvKHF1YW50dW0gPyBx
dWFudHVtIDogOCkpKihxdWFudHVtID8gcXVhbnR1bSA6IDgpOyByZXR1cm4gcmV0OyB9LAotICBt
YWtlQmlnSW50OiBmdW5jdGlvbiAobG93LGhpZ2gsdW5zaWduZWQpIHsgdmFyIHJldCA9ICh1bnNp
Z25lZCA/ICgoKygoKGxvdyk+Pj4oMCkpKSkrKCgrKCgoaGlnaCk+Pj4oMCkpKSkqKCsoNDI5NDk2
NzI5NikpKSkgOiAoKCsoKChsb3cpPj4+KDApKSkpKygoKygoKGhpZ2gpfCgwKSkpKSooKyg0Mjk0
OTY3Mjk2KSkpKSk7IHJldHVybiByZXQ7IH0sCi0gIEdMT0JBTF9CQVNFOiA4LAotICBRVUFOVFVN
X1NJWkU6IDQsCi0gIF9fZHVtbXlfXzogMAotfQotLy89PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0vLyBSdW50aW1lIGVzc2VudGlhbHMKLS8vPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotdmFyIF9fVEhSRVdfXyA9IDA7IC8vIFVzZWQgaW4g
Y2hlY2tpbmcgZm9yIHRocm93biBleGNlcHRpb25zLgotdmFyIEFCT1JUID0gZmFsc2U7IC8vIHdo
ZXRoZXIgd2UgYXJlIHF1aXR0aW5nIHRoZSBhcHBsaWNhdGlvbi4gbm8gY29kZSBzaG91bGQgcnVu
IGFmdGVyIHRoaXMuIHNldCBpbiBleGl0KCkgYW5kIGFib3J0KCkKLXZhciBFWElUU1RBVFVTID0g
MDsKLXZhciB1bmRlZiA9IDA7Ci0vLyB0ZW1wSW50IGlzIHVzZWQgZm9yIDMyLWJpdCBzaWduZWQg
dmFsdWVzIG9yIHNtYWxsZXIuIHRlbXBCaWdJbnQgaXMgdXNlZAotLy8gZm9yIDMyLWJpdCB1bnNp
Z25lZCB2YWx1ZXMgb3IgbW9yZSB0aGFuIDMyIGJpdHMuIFRPRE86IGF1ZGl0IGFsbCB1c2VzIG9m
IHRlbXBJbnQKLXZhciB0ZW1wVmFsdWUsIHRlbXBJbnQsIHRlbXBCaWdJbnQsIHRlbXBJbnQyLCB0
ZW1wQmlnSW50MiwgdGVtcFBhaXIsIHRlbXBCaWdJbnRJLCB0ZW1wQmlnSW50UiwgdGVtcEJpZ0lu
dFMsIHRlbXBCaWdJbnRQLCB0ZW1wQmlnSW50RDsKLXZhciB0ZW1wSTY0LCB0ZW1wSTY0YjsKLXZh
ciB0ZW1wUmV0MCwgdGVtcFJldDEsIHRlbXBSZXQyLCB0ZW1wUmV0MywgdGVtcFJldDQsIHRlbXBS
ZXQ1LCB0ZW1wUmV0NiwgdGVtcFJldDcsIHRlbXBSZXQ4LCB0ZW1wUmV0OTsKLWZ1bmN0aW9uIGFz
c2VydChjb25kaXRpb24sIHRleHQpIHsKLSAgaWYgKCFjb25kaXRpb24pIHsKLSAgICBhYm9ydCgn
QXNzZXJ0aW9uIGZhaWxlZDogJyArIHRleHQpOwotICB9Ci19Ci12YXIgZ2xvYmFsU2NvcGUgPSB0
aGlzOwotLy8gQyBjYWxsaW5nIGludGVyZmFjZS4gQSBjb252ZW5pZW50IHdheSB0byBjYWxsIEMg
ZnVuY3Rpb25zIChpbiBDIGZpbGVzLCBvcgotLy8gZGVmaW5lZCB3aXRoIGV4dGVybiAiQyIpLgot
Ly8KLS8vIE5vdGU6IExMVk0gb3B0aW1pemF0aW9ucyBjYW4gaW5saW5lIGFuZCByZW1vdmUgZnVu
Y3Rpb25zLCBhZnRlciB3aGljaCB5b3Ugd2lsbCBub3QgYmUKLS8vICAgICAgIGFibGUgdG8gY2Fs
bCB0aGVtLiBDbG9zdXJlIGNhbiBhbHNvIGRvIHNvLiBUbyBhdm9pZCB0aGF0LCBhZGQgeW91ciBm
dW5jdGlvbiB0bwotLy8gICAgICAgdGhlIGV4cG9ydHMgdXNpbmcgc29tZXRoaW5nIGxpa2UKLS8v
Ci0vLyAgICAgICAgIC1zIEVYUE9SVEVEX0ZVTkNUSU9OUz0nWyJfbWFpbiIsICJfbXlmdW5jIl0n
Ci0vLwotLy8gQHBhcmFtIGlkZW50ICAgICAgVGhlIG5hbWUgb2YgdGhlIEMgZnVuY3Rpb24gKG5v
dGUgdGhhdCBDKysgZnVuY3Rpb25zIHdpbGwgYmUgbmFtZS1tYW5nbGVkIC0gdXNlIGV4dGVybiAi
QyIpCi0vLyBAcGFyYW0gcmV0dXJuVHlwZSBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGZ1bmN0aW9u
LCBvbmUgb2YgdGhlIEpTIHR5cGVzICdudW1iZXInLCAnc3RyaW5nJyBvciAnYXJyYXknICh1c2Ug
J251bWJlcicgZm9yIGFueSBDIHBvaW50ZXIsIGFuZAotLy8gICAgICAgICAgICAgICAgICAgJ2Fy
cmF5JyBmb3IgSmF2YVNjcmlwdCBhcnJheXMgYW5kIHR5cGVkIGFycmF5czsgbm90ZSB0aGF0IGFy
cmF5cyBhcmUgOC1iaXQpLgotLy8gQHBhcmFtIGFyZ1R5cGVzICAgQW4gYXJyYXkgb2YgdGhlIHR5
cGVzIG9mIGFyZ3VtZW50cyBmb3IgdGhlIGZ1bmN0aW9uIChpZiB0aGVyZSBhcmUgbm8gYXJndW1l
bnRzLCB0aGlzIGNhbiBiZSBvbW1pdHRlZCkuIFR5cGVzIGFyZSBhcyBpbiByZXR1cm5UeXBlLAot
Ly8gICAgICAgICAgICAgICAgICAgZXhjZXB0IHRoYXQgJ2FycmF5JyBpcyBub3QgcG9zc2libGUg
KHRoZXJlIGlzIG5vIHdheSBmb3IgdXMgdG8ga25vdyB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSkK
LS8vIEBwYXJhbSBhcmdzICAgICAgIEFuIGFycmF5IG9mIHRoZSBhcmd1bWVudHMgdG8gdGhlIGZ1
bmN0aW9uLCBhcyBuYXRpdmUgSlMgdmFsdWVzIChhcyBpbiByZXR1cm5UeXBlKQotLy8gICAgICAg
ICAgICAgICAgICAgTm90ZSB0aGF0IHN0cmluZyBhcmd1bWVudHMgd2lsbCBiZSBzdG9yZWQgb24g
dGhlIHN0YWNrICh0aGUgSlMgc3RyaW5nIHdpbGwgYmVjb21lIGEgQyBzdHJpbmcgb24gdGhlIHN0
YWNrKS4KLS8vIEByZXR1cm4gICAgICAgICAgIFRoZSByZXR1cm4gdmFsdWUsIGFzIGEgbmF0aXZl
IEpTIHZhbHVlIChhcyBpbiByZXR1cm5UeXBlKQotZnVuY3Rpb24gY2NhbGwoaWRlbnQsIHJldHVy
blR5cGUsIGFyZ1R5cGVzLCBhcmdzKSB7Ci0gIHJldHVybiBjY2FsbEZ1bmMoZ2V0Q0Z1bmMoaWRl
bnQpLCByZXR1cm5UeXBlLCBhcmdUeXBlcywgYXJncyk7Ci19Ci1Nb2R1bGVbImNjYWxsIl0gPSBj
Y2FsbDsKLS8vIFJldHVybnMgdGhlIEMgZnVuY3Rpb24gd2l0aCBhIHNwZWNpZmllZCBpZGVudGlm
aWVyIChmb3IgQysrLCB5b3UgbmVlZCB0byBkbyBtYW51YWwgbmFtZSBtYW5nbGluZykKLWZ1bmN0
aW9uIGdldENGdW5jKGlkZW50KSB7Ci0gIHRyeSB7Ci0gICAgdmFyIGZ1bmMgPSBNb2R1bGVbJ18n
ICsgaWRlbnRdOyAvLyBjbG9zdXJlIGV4cG9ydGVkIGZ1bmN0aW9uCi0gICAgaWYgKCFmdW5jKSBm
dW5jID0gZXZhbCgnXycgKyBpZGVudCk7IC8vIGV4cGxpY2l0IGxvb2t1cAotICB9IGNhdGNoKGUp
IHsKLSAgfQotICBhc3NlcnQoZnVuYywgJ0Nhbm5vdCBjYWxsIHVua25vd24gZnVuY3Rpb24gJyAr
IGlkZW50ICsgJyAocGVyaGFwcyBMTFZNIG9wdGltaXphdGlvbnMgb3IgY2xvc3VyZSByZW1vdmVk
IGl0PyknKTsKLSAgcmV0dXJuIGZ1bmM7Ci19Ci0vLyBJbnRlcm5hbCBmdW5jdGlvbiB0aGF0IGRv
ZXMgYSBDIGNhbGwgdXNpbmcgYSBmdW5jdGlvbiwgbm90IGFuIGlkZW50aWZpZXIKLWZ1bmN0aW9u
IGNjYWxsRnVuYyhmdW5jLCByZXR1cm5UeXBlLCBhcmdUeXBlcywgYXJncykgewotICB2YXIgc3Rh
Y2sgPSAwOwotICBmdW5jdGlvbiB0b0ModmFsdWUsIHR5cGUpIHsKLSAgICBpZiAodHlwZSA9PSAn
c3RyaW5nJykgewotICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmlu
ZWQgfHwgdmFsdWUgPT09IDApIHJldHVybiAwOyAvLyBudWxsIHN0cmluZwotICAgICAgaWYgKCFz
dGFjaykgc3RhY2sgPSBSdW50aW1lLnN0YWNrU2F2ZSgpOwotICAgICAgdmFyIHJldCA9IFJ1bnRp
bWUuc3RhY2tBbGxvYyh2YWx1ZS5sZW5ndGgrMSk7Ci0gICAgICB3cml0ZVN0cmluZ1RvTWVtb3J5
KHZhbHVlLCByZXQpOwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0g
J2FycmF5JykgewotICAgICAgaWYgKCFzdGFjaykgc3RhY2sgPSBSdW50aW1lLnN0YWNrU2F2ZSgp
OwotICAgICAgdmFyIHJldCA9IFJ1bnRpbWUuc3RhY2tBbGxvYyh2YWx1ZS5sZW5ndGgpOwotICAg
ICAgd3JpdGVBcnJheVRvTWVtb3J5KHZhbHVlLCByZXQpOwotICAgICAgcmV0dXJuIHJldDsKLSAg
ICB9Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9Ci0gIGZ1bmN0aW9uIGZyb21DKHZhbHVlLCB0eXBl
KSB7Ci0gICAgaWYgKHR5cGUgPT0gJ3N0cmluZycpIHsKLSAgICAgIHJldHVybiBQb2ludGVyX3N0
cmluZ2lmeSh2YWx1ZSk7Ci0gICAgfQotICAgIGFzc2VydCh0eXBlICE9ICdhcnJheScpOwotICAg
IHJldHVybiB2YWx1ZTsKLSAgfQotICB2YXIgaSA9IDA7Ci0gIHZhciBjQXJncyA9IGFyZ3MgPyBh
cmdzLm1hcChmdW5jdGlvbihhcmcpIHsKLSAgICByZXR1cm4gdG9DKGFyZywgYXJnVHlwZXNbaSsr
XSk7Ci0gIH0pIDogW107Ci0gIHZhciByZXQgPSBmcm9tQyhmdW5jLmFwcGx5KG51bGwsIGNBcmdz
KSwgcmV0dXJuVHlwZSk7Ci0gIGlmIChzdGFjaykgUnVudGltZS5zdGFja1Jlc3RvcmUoc3RhY2sp
OwotICByZXR1cm4gcmV0OwotfQotLy8gUmV0dXJucyBhIG5hdGl2ZSBKUyB3cmFwcGVyIGZvciBh
IEMgZnVuY3Rpb24uIFRoaXMgaXMgc2ltaWxhciB0byBjY2FsbCwgYnV0Ci0vLyByZXR1cm5zIGEg
ZnVuY3Rpb24geW91IGNhbiBjYWxsIHJlcGVhdGVkbHkgaW4gYSBub3JtYWwgd2F5LiBGb3IgZXhh
bXBsZToKLS8vCi0vLyAgIHZhciBteV9mdW5jdGlvbiA9IGN3cmFwKCdteV9jX2Z1bmN0aW9uJywg
J251bWJlcicsIFsnbnVtYmVyJywgJ251bWJlciddKTsKLS8vICAgYWxlcnQobXlfZnVuY3Rpb24o
NSwgMjIpKTsKLS8vICAgYWxlcnQobXlfZnVuY3Rpb24oOTksIDEyKSk7Ci0vLwotZnVuY3Rpb24g
Y3dyYXAoaWRlbnQsIHJldHVyblR5cGUsIGFyZ1R5cGVzKSB7Ci0gIHZhciBmdW5jID0gZ2V0Q0Z1
bmMoaWRlbnQpOwotICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGNjYWxsRnVuYyhm
dW5jLCByZXR1cm5UeXBlLCBhcmdUeXBlcywgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJn
dW1lbnRzKSk7Ci0gIH0KLX0KLU1vZHVsZVsiY3dyYXAiXSA9IGN3cmFwOwotLy8gU2V0cyBhIHZh
bHVlIGluIG1lbW9yeSBpbiBhIGR5bmFtaWMgd2F5IGF0IHJ1bi10aW1lLiBVc2VzIHRoZQotLy8g
dHlwZSBkYXRhLiBUaGlzIGlzIHRoZSBzYW1lIGFzIG1ha2VTZXRWYWx1ZSwgZXhjZXB0IHRoYXQK
LS8vIG1ha2VTZXRWYWx1ZSBpcyBkb25lIGF0IGNvbXBpbGUtdGltZSBhbmQgZ2VuZXJhdGVzIHRo
ZSBuZWVkZWQKLS8vIGNvZGUgdGhlbiwgd2hlcmVhcyB0aGlzIGZ1bmN0aW9uIHBpY2tzIHRoZSBy
aWdodCBjb2RlIGF0Ci0vLyBydW4tdGltZS4KLS8vIE5vdGUgdGhhdCBzZXRWYWx1ZSBhbmQgZ2V0
VmFsdWUgb25seSBkbyAqYWxpZ25lZCogd3JpdGVzIGFuZCByZWFkcyEKLS8vIE5vdGUgdGhhdCBj
Y2FsbCB1c2VzIEpTIHR5cGVzIGFzIGZvciBkZWZpbmluZyB0eXBlcywgd2hpbGUgc2V0VmFsdWUg
YW5kCi0vLyBnZXRWYWx1ZSBuZWVkIExMVk0gdHlwZXMgKCdpOCcsICdpMzInKSAtIHRoaXMgaXMg
YSBsb3dlci1sZXZlbCBvcGVyYXRpb24KLWZ1bmN0aW9uIHNldFZhbHVlKHB0ciwgdmFsdWUsIHR5
cGUsIG5vU2FmZSkgewotICB0eXBlID0gdHlwZSB8fCAnaTgnOwotICBpZiAodHlwZS5jaGFyQXQo
dHlwZS5sZW5ndGgtMSkgPT09ICcqJykgdHlwZSA9ICdpMzInOyAvLyBwb2ludGVycyBhcmUgMzIt
Yml0Ci0gICAgc3dpdGNoKHR5cGUpIHsKLSAgICAgIGNhc2UgJ2kxJzogSEVBUDhbKHB0cildPXZh
bHVlOyBicmVhazsKLSAgICAgIGNhc2UgJ2k4JzogSEVBUDhbKHB0cildPXZhbHVlOyBicmVhazsK
LSAgICAgIGNhc2UgJ2kxNic6IEhFQVAxNlsoKHB0cik+PjEpXT12YWx1ZTsgYnJlYWs7Ci0gICAg
ICBjYXNlICdpMzInOiBIRUFQMzJbKChwdHIpPj4yKV09dmFsdWU7IGJyZWFrOwotICAgICAgY2Fz
ZSAnaTY0JzogKHRlbXBJNjQgPSBbdmFsdWU+Pj4wLCh0ZW1wRG91YmxlPXZhbHVlLCgrKE1hdGgu
YWJzKHRlbXBEb3VibGUpKSkgPj0gKCsoMSkpID8gKHRlbXBEb3VibGUgPiAoKygwKSkgPyAoKE1h
dGgubWluKCgrKE1hdGguZmxvb3IoKHRlbXBEb3VibGUpLygrKDQyOTQ5NjcyOTYpKSkpKSwgKCso
NDI5NDk2NzI5NSkpKSl8MCk+Pj4wIDogKH5+KCgrKE1hdGguY2VpbCgodGVtcERvdWJsZSAtICso
KCh+fih0ZW1wRG91YmxlKSkpPj4+MCkpLygrKDQyOTQ5NjcyOTYpKSkpKSkpPj4+MCkgOiAwKV0s
SEVBUDMyWygocHRyKT4+MildPXRlbXBJNjRbMF0sSEVBUDMyWygoKHB0cikrKDQpKT4+MildPXRl
bXBJNjRbMV0pOyBicmVhazsKLSAgICAgIGNhc2UgJ2Zsb2F0JzogSEVBUEYzMlsoKHB0cik+PjIp
XT12YWx1ZTsgYnJlYWs7Ci0gICAgICBjYXNlICdkb3VibGUnOiBIRUFQRjY0WygocHRyKT4+Myld
PXZhbHVlOyBicmVhazsKLSAgICAgIGRlZmF1bHQ6IGFib3J0KCdpbnZhbGlkIHR5cGUgZm9yIHNl
dFZhbHVlOiAnICsgdHlwZSk7Ci0gICAgfQotfQotTW9kdWxlWydzZXRWYWx1ZSddID0gc2V0VmFs
dWU7Ci0vLyBQYXJhbGxlbCB0byBzZXRWYWx1ZS4KLWZ1bmN0aW9uIGdldFZhbHVlKHB0ciwgdHlw
ZSwgbm9TYWZlKSB7Ci0gIHR5cGUgPSB0eXBlIHx8ICdpOCc7Ci0gIGlmICh0eXBlLmNoYXJBdCh0
eXBlLmxlbmd0aC0xKSA9PT0gJyonKSB0eXBlID0gJ2kzMic7IC8vIHBvaW50ZXJzIGFyZSAzMi1i
aXQKLSAgICBzd2l0Y2godHlwZSkgewotICAgICAgY2FzZSAnaTEnOiByZXR1cm4gSEVBUDhbKHB0
cildOwotICAgICAgY2FzZSAnaTgnOiByZXR1cm4gSEVBUDhbKHB0cildOwotICAgICAgY2FzZSAn
aTE2JzogcmV0dXJuIEhFQVAxNlsoKHB0cik+PjEpXTsKLSAgICAgIGNhc2UgJ2kzMic6IHJldHVy
biBIRUFQMzJbKChwdHIpPj4yKV07Ci0gICAgICBjYXNlICdpNjQnOiByZXR1cm4gSEVBUDMyWygo
cHRyKT4+MildOwotICAgICAgY2FzZSAnZmxvYXQnOiByZXR1cm4gSEVBUEYzMlsoKHB0cik+PjIp
XTsKLSAgICAgIGNhc2UgJ2RvdWJsZSc6IHJldHVybiBIRUFQRjY0WygocHRyKT4+MyldOwotICAg
ICAgZGVmYXVsdDogYWJvcnQoJ2ludmFsaWQgdHlwZSBmb3Igc2V0VmFsdWU6ICcgKyB0eXBlKTsK
LSAgICB9Ci0gIHJldHVybiBudWxsOwotfQotTW9kdWxlWydnZXRWYWx1ZSddID0gZ2V0VmFsdWU7
Ci12YXIgQUxMT0NfTk9STUFMID0gMDsgLy8gVHJpZXMgdG8gdXNlIF9tYWxsb2MoKQotdmFyIEFM
TE9DX1NUQUNLID0gMTsgLy8gTGl2ZXMgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY3VycmVudCBm
dW5jdGlvbiBjYWxsCi12YXIgQUxMT0NfU1RBVElDID0gMjsgLy8gQ2Fubm90IGJlIGZyZWVkCi12
YXIgQUxMT0NfRFlOQU1JQyA9IDM7IC8vIENhbm5vdCBiZSBmcmVlZCBleGNlcHQgdGhyb3VnaCBz
YnJrCi12YXIgQUxMT0NfTk9ORSA9IDQ7IC8vIERvIG5vdCBhbGxvY2F0ZQotTW9kdWxlWydBTExP
Q19OT1JNQUwnXSA9IEFMTE9DX05PUk1BTDsKLU1vZHVsZVsnQUxMT0NfU1RBQ0snXSA9IEFMTE9D
X1NUQUNLOwotTW9kdWxlWydBTExPQ19TVEFUSUMnXSA9IEFMTE9DX1NUQVRJQzsKLU1vZHVsZVsn
QUxMT0NfRFlOQU1JQyddID0gQUxMT0NfRFlOQU1JQzsKLU1vZHVsZVsnQUxMT0NfTk9ORSddID0g
QUxMT0NfTk9ORTsKLS8vIGFsbG9jYXRlKCk6IFRoaXMgaXMgZm9yIGludGVybmFsIHVzZS4gWW91
IGNhbiB1c2UgaXQgeW91cnNlbGYgYXMgd2VsbCwgYnV0IHRoZSBpbnRlcmZhY2UKLS8vICAgICAg
ICAgICAgIGlzIGEgbGl0dGxlIHRyaWNreSAoc2VlIGRvY3MgcmlnaHQgYmVsb3cpLiBUaGUgcmVh
c29uIGlzIHRoYXQgaXQgaXMgb3B0aW1pemVkCi0vLyAgICAgICAgICAgICBmb3IgbXVsdGlwbGUg
c3ludGF4ZXMgdG8gc2F2ZSBzcGFjZSBpbiBnZW5lcmF0ZWQgY29kZS4gU28geW91IHNob3VsZAot
Ly8gICAgICAgICAgICAgbm9ybWFsbHkgbm90IHVzZSBhbGxvY2F0ZSgpLCBhbmQgaW5zdGVhZCBh
bGxvY2F0ZSBtZW1vcnkgdXNpbmcgX21hbGxvYygpLAotLy8gICAgICAgICAgICAgaW5pdGlhbGl6
ZSBpdCB3aXRoIHNldFZhbHVlKCksIGFuZCBzbyBmb3J0aC4KLS8vIEBzbGFiOiBBbiBhcnJheSBv
ZiBkYXRhLCBvciBhIG51bWJlci4gSWYgYSBudW1iZXIsIHRoZW4gdGhlIHNpemUgb2YgdGhlIGJs
b2NrIHRvIGFsbG9jYXRlLAotLy8gICAgICAgIGluICpieXRlcyogKG5vdGUgdGhhdCB0aGlzIGlz
IHNvbWV0aW1lcyBjb25mdXNpbmc6IHRoZSBuZXh0IHBhcmFtZXRlciBkb2VzIG5vdAotLy8gICAg
ICAgIGFmZmVjdCB0aGlzISkKLS8vIEB0eXBlczogRWl0aGVyIGFuIGFycmF5IG9mIHR5cGVzLCBv
bmUgZm9yIGVhY2ggYnl0ZSAob3IgMCBpZiBubyB0eXBlIGF0IHRoYXQgcG9zaXRpb24pLAotLy8g
ICAgICAgICBvciBhIHNpbmdsZSB0eXBlIHdoaWNoIGlzIHVzZWQgZm9yIHRoZSBlbnRpcmUgYmxv
Y2suIFRoaXMgb25seSBtYXR0ZXJzIGlmIHRoZXJlCi0vLyAgICAgICAgIGlzIGluaXRpYWwgZGF0
YSAtIGlmIEBzbGFiIGlzIGEgbnVtYmVyLCB0aGVuIHRoaXMgZG9lcyBub3QgbWF0dGVyIGF0IGFs
bCBhbmQgaXMKLS8vICAgICAgICAgaWdub3JlZC4KLS8vIEBhbGxvY2F0b3I6IEhvdyB0byBhbGxv
Y2F0ZSBtZW1vcnksIHNlZSBBTExPQ18qCi1mdW5jdGlvbiBhbGxvY2F0ZShzbGFiLCB0eXBlcywg
YWxsb2NhdG9yLCBwdHIpIHsKLSAgdmFyIHplcm9pbml0LCBzaXplOwotICBpZiAodHlwZW9mIHNs
YWIgPT09ICdudW1iZXInKSB7Ci0gICAgemVyb2luaXQgPSB0cnVlOwotICAgIHNpemUgPSBzbGFi
OwotICB9IGVsc2UgewotICAgIHplcm9pbml0ID0gZmFsc2U7Ci0gICAgc2l6ZSA9IHNsYWIubGVu
Z3RoOwotICB9Ci0gIHZhciBzaW5nbGVUeXBlID0gdHlwZW9mIHR5cGVzID09PSAnc3RyaW5nJyA/
IHR5cGVzIDogbnVsbDsKLSAgdmFyIHJldDsKLSAgaWYgKGFsbG9jYXRvciA9PSBBTExPQ19OT05F
KSB7Ci0gICAgcmV0ID0gcHRyOwotICB9IGVsc2UgewotICAgIHJldCA9IFtfbWFsbG9jLCBSdW50
aW1lLnN0YWNrQWxsb2MsIFJ1bnRpbWUuc3RhdGljQWxsb2MsIFJ1bnRpbWUuZHluYW1pY0FsbG9j
XVthbGxvY2F0b3IgPT09IHVuZGVmaW5lZCA/IEFMTE9DX1NUQVRJQyA6IGFsbG9jYXRvcl0oTWF0
aC5tYXgoc2l6ZSwgc2luZ2xlVHlwZSA/IDEgOiB0eXBlcy5sZW5ndGgpKTsKLSAgfQotICBpZiAo
emVyb2luaXQpIHsKLSAgICB2YXIgcHRyID0gcmV0LCBzdG9wOwotICAgIGFzc2VydCgocmV0ICYg
MykgPT0gMCk7Ci0gICAgc3RvcCA9IHJldCArIChzaXplICYgfjMpOwotICAgIGZvciAoOyBwdHIg
PCBzdG9wOyBwdHIgKz0gNCkgewotICAgICAgSEVBUDMyWygocHRyKT4+MildPTA7Ci0gICAgfQot
ICAgIHN0b3AgPSByZXQgKyBzaXplOwotICAgIHdoaWxlIChwdHIgPCBzdG9wKSB7Ci0gICAgICBI
RUFQOFsoKHB0cisrKXwwKV09MDsKLSAgICB9Ci0gICAgcmV0dXJuIHJldDsKLSAgfQotICBpZiAo
c2luZ2xlVHlwZSA9PT0gJ2k4JykgewotICAgIGlmIChzbGFiLnN1YmFycmF5IHx8IHNsYWIuc2xp
Y2UpIHsKLSAgICAgIEhFQVBVOC5zZXQoc2xhYiwgcmV0KTsKLSAgICB9IGVsc2UgewotICAgICAg
SEVBUFU4LnNldChuZXcgVWludDhBcnJheShzbGFiKSwgcmV0KTsKLSAgICB9Ci0gICAgcmV0dXJu
IHJldDsKLSAgfQotICB2YXIgaSA9IDAsIHR5cGUsIHR5cGVTaXplLCBwcmV2aW91c1R5cGU7Ci0g
IHdoaWxlIChpIDwgc2l6ZSkgewotICAgIHZhciBjdXJyID0gc2xhYltpXTsKLSAgICBpZiAodHlw
ZW9mIGN1cnIgPT09ICdmdW5jdGlvbicpIHsKLSAgICAgIGN1cnIgPSBSdW50aW1lLmdldEZ1bmN0
aW9uSW5kZXgoY3Vycik7Ci0gICAgfQotICAgIHR5cGUgPSBzaW5nbGVUeXBlIHx8IHR5cGVzW2ld
OwotICAgIGlmICh0eXBlID09PSAwKSB7Ci0gICAgICBpKys7Ci0gICAgICBjb250aW51ZTsKLSAg
ICB9Ci0gICAgaWYgKHR5cGUgPT0gJ2k2NCcpIHR5cGUgPSAnaTMyJzsgLy8gc3BlY2lhbCBjYXNl
OiB3ZSBoYXZlIG9uZSBpMzIgaGVyZSwgYW5kIG9uZSBpMzIgbGF0ZXIKLSAgICBzZXRWYWx1ZShy
ZXQraSwgY3VyciwgdHlwZSk7Ci0gICAgLy8gbm8gbmVlZCB0byBsb29rIHVwIHNpemUgdW5sZXNz
IHR5cGUgY2hhbmdlcywgc28gY2FjaGUgaXQKLSAgICBpZiAocHJldmlvdXNUeXBlICE9PSB0eXBl
KSB7Ci0gICAgICB0eXBlU2l6ZSA9IFJ1bnRpbWUuZ2V0TmF0aXZlVHlwZVNpemUodHlwZSk7Ci0g
ICAgICBwcmV2aW91c1R5cGUgPSB0eXBlOwotICAgIH0KLSAgICBpICs9IHR5cGVTaXplOwotICB9
Ci0gIHJldHVybiByZXQ7Ci19Ci1Nb2R1bGVbJ2FsbG9jYXRlJ10gPSBhbGxvY2F0ZTsKLWZ1bmN0
aW9uIFBvaW50ZXJfc3RyaW5naWZ5KHB0ciwgLyogb3B0aW9uYWwgKi8gbGVuZ3RoKSB7Ci0gIC8v
IFRPRE86IHVzZSBUZXh0RGVjb2RlcgotICAvLyBGaW5kIHRoZSBsZW5ndGgsIGFuZCBjaGVjayBm
b3IgVVRGIHdoaWxlIGRvaW5nIHNvCi0gIHZhciBoYXNVdGYgPSBmYWxzZTsKLSAgdmFyIHQ7Ci0g
IHZhciBpID0gMDsKLSAgd2hpbGUgKDEpIHsKLSAgICB0ID0gSEVBUFU4WygoKHB0cikrKGkpKXww
KV07Ci0gICAgaWYgKHQgPj0gMTI4KSBoYXNVdGYgPSB0cnVlOwotICAgIGVsc2UgaWYgKHQgPT0g
MCAmJiAhbGVuZ3RoKSBicmVhazsKLSAgICBpKys7Ci0gICAgaWYgKGxlbmd0aCAmJiBpID09IGxl
bmd0aCkgYnJlYWs7Ci0gIH0KLSAgaWYgKCFsZW5ndGgpIGxlbmd0aCA9IGk7Ci0gIHZhciByZXQg
PSAnJzsKLSAgaWYgKCFoYXNVdGYpIHsKLSAgICB2YXIgTUFYX0NIVU5LID0gMTAyNDsgLy8gc3Bs
aXQgdXAgaW50byBjaHVua3MsIGJlY2F1c2UgLmFwcGx5IG9uIGEgaHVnZSBzdHJpbmcgY2FuIG92
ZXJmbG93IHRoZSBzdGFjawotICAgIHZhciBjdXJyOwotICAgIHdoaWxlIChsZW5ndGggPiAwKSB7
Ci0gICAgICBjdXJyID0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsIEhFQVBVOC5z
dWJhcnJheShwdHIsIHB0ciArIE1hdGgubWluKGxlbmd0aCwgTUFYX0NIVU5LKSkpOwotICAgICAg
cmV0ID0gcmV0ID8gcmV0ICsgY3VyciA6IGN1cnI7Ci0gICAgICBwdHIgKz0gTUFYX0NIVU5LOwot
ICAgICAgbGVuZ3RoIC09IE1BWF9DSFVOSzsKLSAgICB9Ci0gICAgcmV0dXJuIHJldDsKLSAgfQot
ICB2YXIgdXRmOCA9IG5ldyBSdW50aW1lLlVURjhQcm9jZXNzb3IoKTsKLSAgZm9yIChpID0gMDsg
aSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgdCA9IEhFQVBVOFsoKChwdHIpKyhpKSl8MCldOwotICAg
IHJldCArPSB1dGY4LnByb2Nlc3NDQ2hhcih0KTsKLSAgfQotICByZXR1cm4gcmV0OwotfQotTW9k
dWxlWydQb2ludGVyX3N0cmluZ2lmeSddID0gUG9pbnRlcl9zdHJpbmdpZnk7Ci0vLyBNZW1vcnkg
bWFuYWdlbWVudAotdmFyIFBBR0VfU0laRSA9IDQwOTY7Ci1mdW5jdGlvbiBhbGlnbk1lbW9yeVBh
Z2UoeCkgewotICByZXR1cm4gKCh4KzQwOTUpPj4xMik8PDEyOwotfQotdmFyIEhFQVA7Ci12YXIg
SEVBUDgsIEhFQVBVOCwgSEVBUDE2LCBIRUFQVTE2LCBIRUFQMzIsIEhFQVBVMzIsIEhFQVBGMzIs
IEhFQVBGNjQ7Ci12YXIgU1RBVElDX0JBU0UgPSAwLCBTVEFUSUNUT1AgPSAwLCBzdGF0aWNTZWFs
ZWQgPSBmYWxzZTsgLy8gc3RhdGljIGFyZWEKLXZhciBTVEFDS19CQVNFID0gMCwgU1RBQ0tUT1Ag
PSAwLCBTVEFDS19NQVggPSAwOyAvLyBzdGFjayBhcmVhCi12YXIgRFlOQU1JQ19CQVNFID0gMCwg
RFlOQU1JQ1RPUCA9IDA7IC8vIGR5bmFtaWMgYXJlYSBoYW5kbGVkIGJ5IHNicmsKLWZ1bmN0aW9u
IGVubGFyZ2VNZW1vcnkoKSB7Ci0gIGFib3J0KCdDYW5ub3QgZW5sYXJnZSBtZW1vcnkgYXJyYXlz
IGluIGFzbS5qcy4gRWl0aGVyICgxKSBjb21waWxlIHdpdGggLXMgVE9UQUxfTUVNT1JZPVggd2l0
aCBYIGhpZ2hlciB0aGFuIHRoZSBjdXJyZW50IHZhbHVlLCBvciAoMikgc2V0IE1vZHVsZS5UT1RB
TF9NRU1PUlkgYmVmb3JlIHRoZSBwcm9ncmFtIHJ1bnMuJyk7Ci19Ci12YXIgVE9UQUxfU1RBQ0sg
PSBNb2R1bGVbJ1RPVEFMX1NUQUNLJ10gfHwgNTI0Mjg4MDsKLXZhciBUT1RBTF9NRU1PUlkgPSBN
b2R1bGVbJ1RPVEFMX01FTU9SWSddIHx8IDE2Nzc3MjE2OwotdmFyIEZBU1RfTUVNT1JZID0gTW9k
dWxlWydGQVNUX01FTU9SWSddIHx8IDIwOTcxNTI7Ci0vLyBJbml0aWFsaXplIHRoZSBydW50aW1l
J3MgbWVtb3J5Ci0vLyBjaGVjayBmb3IgZnVsbCBlbmdpbmUgc3VwcG9ydCAodXNlIHN0cmluZyAn
c3ViYXJyYXknIHRvIGF2b2lkIGNsb3N1cmUgY29tcGlsZXIgY29uZnVzaW9uKQotYXNzZXJ0KCEh
SW50MzJBcnJheSAmJiAhIUZsb2F0NjRBcnJheSAmJiAhIShuZXcgSW50MzJBcnJheSgxKVsnc3Vi
YXJyYXknXSkgJiYgISEobmV3IEludDMyQXJyYXkoMSlbJ3NldCddKSwKLSAgICAgICAnQ2Fubm90
IGZhbGxiYWNrIHRvIG5vbi10eXBlZCBhcnJheSBjYXNlOiBDb2RlIGlzIHRvbyBzcGVjaWFsaXpl
ZCcpOwotdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihUT1RBTF9NRU1PUlkpOwotSEVBUDgg
PSBuZXcgSW50OEFycmF5KGJ1ZmZlcik7Ci1IRUFQMTYgPSBuZXcgSW50MTZBcnJheShidWZmZXIp
OwotSEVBUDMyID0gbmV3IEludDMyQXJyYXkoYnVmZmVyKTsKLUhFQVBVOCA9IG5ldyBVaW50OEFy
cmF5KGJ1ZmZlcik7Ci1IRUFQVTE2ID0gbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcik7Ci1IRUFQVTMy
ID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZlcik7Ci1IRUFQRjMyID0gbmV3IEZsb2F0MzJBcnJheShi
dWZmZXIpOwotSEVBUEY2NCA9IG5ldyBGbG9hdDY0QXJyYXkoYnVmZmVyKTsKLS8vIEVuZGlhbm5l
c3MgY2hlY2sgKG5vdGU6IGFzc3VtZXMgY29tcGlsZXIgYXJjaCB3YXMgbGl0dGxlLWVuZGlhbikK
LUhFQVAzMlswXSA9IDI1NTsKLWFzc2VydChIRUFQVThbMF0gPT09IDI1NSAmJiBIRUFQVThbM10g
PT09IDAsICdUeXBlZCBhcnJheXMgMiBtdXN0IGJlIHJ1biBvbiBhIGxpdHRsZS1lbmRpYW4gc3lz
dGVtJyk7Ci1Nb2R1bGVbJ0hFQVAnXSA9IEhFQVA7Ci1Nb2R1bGVbJ0hFQVA4J10gPSBIRUFQODsK
LU1vZHVsZVsnSEVBUDE2J10gPSBIRUFQMTY7Ci1Nb2R1bGVbJ0hFQVAzMiddID0gSEVBUDMyOwot
TW9kdWxlWydIRUFQVTgnXSA9IEhFQVBVODsKLU1vZHVsZVsnSEVBUFUxNiddID0gSEVBUFUxNjsK
LU1vZHVsZVsnSEVBUFUzMiddID0gSEVBUFUzMjsKLU1vZHVsZVsnSEVBUEYzMiddID0gSEVBUEYz
MjsKLU1vZHVsZVsnSEVBUEY2NCddID0gSEVBUEY2NDsKLWZ1bmN0aW9uIGNhbGxSdW50aW1lQ2Fs
bGJhY2tzKGNhbGxiYWNrcykgewotICB3aGlsZShjYWxsYmFja3MubGVuZ3RoID4gMCkgewotICAg
IHZhciBjYWxsYmFjayA9IGNhbGxiYWNrcy5zaGlmdCgpOwotICAgIGlmICh0eXBlb2YgY2FsbGJh
Y2sgPT0gJ2Z1bmN0aW9uJykgewotICAgICAgY2FsbGJhY2soKTsKLSAgICAgIGNvbnRpbnVlOwot
ICAgIH0KLSAgICB2YXIgZnVuYyA9IGNhbGxiYWNrLmZ1bmM7Ci0gICAgaWYgKHR5cGVvZiBmdW5j
ID09PSAnbnVtYmVyJykgewotICAgICAgaWYgKGNhbGxiYWNrLmFyZyA9PT0gdW5kZWZpbmVkKSB7
Ci0gICAgICAgIFJ1bnRpbWUuZHluQ2FsbCgndicsIGZ1bmMpOwotICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgUnVudGltZS5keW5DYWxsKCd2aScsIGZ1bmMsIFtjYWxsYmFjay5hcmddKTsKLSAgICAg
IH0KLSAgICB9IGVsc2UgewotICAgICAgZnVuYyhjYWxsYmFjay5hcmcgPT09IHVuZGVmaW5lZCA/
IG51bGwgOiBjYWxsYmFjay5hcmcpOwotICAgIH0KLSAgfQotfQotdmFyIF9fQVRQUkVSVU5fXyAg
PSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCBiZWZvcmUgdGhlIHJ1bnRpbWUgaXMgaW5pdGlhbGl6
ZWQKLXZhciBfX0FUSU5JVF9fICAgID0gW107IC8vIGZ1bmN0aW9ucyBjYWxsZWQgZHVyaW5nIHN0
YXJ0dXAKLXZhciBfX0FUTUFJTl9fICAgID0gW107IC8vIGZ1bmN0aW9ucyBjYWxsZWQgd2hlbiBt
YWluKCkgaXMgdG8gYmUgcnVuCi12YXIgX19BVEVYSVRfXyAgICA9IFtdOyAvLyBmdW5jdGlvbnMg
Y2FsbGVkIGR1cmluZyBzaHV0ZG93bgotdmFyIF9fQVRQT1NUUlVOX18gPSBbXTsgLy8gZnVuY3Rp
b25zIGNhbGxlZCBhZnRlciB0aGUgcnVudGltZSBoYXMgZXhpdGVkCi12YXIgcnVudGltZUluaXRp
YWxpemVkID0gZmFsc2U7Ci1mdW5jdGlvbiBwcmVSdW4oKSB7Ci0gIC8vIGNvbXBhdGliaWxpdHkg
LSBtZXJnZSBpbiBhbnl0aGluZyBmcm9tIE1vZHVsZVsncHJlUnVuJ10gYXQgdGhpcyB0aW1lCi0g
IGlmIChNb2R1bGVbJ3ByZVJ1biddKSB7Ci0gICAgaWYgKHR5cGVvZiBNb2R1bGVbJ3ByZVJ1bidd
ID09ICdmdW5jdGlvbicpIE1vZHVsZVsncHJlUnVuJ10gPSBbTW9kdWxlWydwcmVSdW4nXV07Ci0g
ICAgd2hpbGUgKE1vZHVsZVsncHJlUnVuJ10ubGVuZ3RoKSB7Ci0gICAgICBhZGRPblByZVJ1bihN
b2R1bGVbJ3ByZVJ1biddLnNoaWZ0KCkpOwotICAgIH0KLSAgfQotICBjYWxsUnVudGltZUNhbGxi
YWNrcyhfX0FUUFJFUlVOX18pOwotfQotZnVuY3Rpb24gZW5zdXJlSW5pdFJ1bnRpbWUoKSB7Ci0g
IGlmIChydW50aW1lSW5pdGlhbGl6ZWQpIHJldHVybjsKLSAgcnVudGltZUluaXRpYWxpemVkID0g
dHJ1ZTsKLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVElOSVRfXyk7Ci19Ci1mdW5jdGlvbiBw
cmVNYWluKCkgewotICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUTUFJTl9fKTsKLX0KLWZ1bmN0
aW9uIGV4aXRSdW50aW1lKCkgewotICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FURVhJVF9fKTsK
LX0KLWZ1bmN0aW9uIHBvc3RSdW4oKSB7Ci0gIC8vIGNvbXBhdGliaWxpdHkgLSBtZXJnZSBpbiBh
bnl0aGluZyBmcm9tIE1vZHVsZVsncG9zdFJ1biddIGF0IHRoaXMgdGltZQotICBpZiAoTW9kdWxl
Wydwb3N0UnVuJ10pIHsKLSAgICBpZiAodHlwZW9mIE1vZHVsZVsncG9zdFJ1biddID09ICdmdW5j
dGlvbicpIE1vZHVsZVsncG9zdFJ1biddID0gW01vZHVsZVsncG9zdFJ1biddXTsKLSAgICB3aGls
ZSAoTW9kdWxlWydwb3N0UnVuJ10ubGVuZ3RoKSB7Ci0gICAgICBhZGRPblBvc3RSdW4oTW9kdWxl
Wydwb3N0UnVuJ10uc2hpZnQoKSk7Ci0gICAgfQotICB9Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tz
KF9fQVRQT1NUUlVOX18pOwotfQotZnVuY3Rpb24gYWRkT25QcmVSdW4oY2IpIHsKLSAgX19BVFBS
RVJVTl9fLnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPblByZVJ1biddID0gTW9kdWxlLmFk
ZE9uUHJlUnVuID0gYWRkT25QcmVSdW47Ci1mdW5jdGlvbiBhZGRPbkluaXQoY2IpIHsKLSAgX19B
VElOSVRfXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25Jbml0J10gPSBNb2R1bGUuYWRk
T25Jbml0ID0gYWRkT25Jbml0OwotZnVuY3Rpb24gYWRkT25QcmVNYWluKGNiKSB7Ci0gIF9fQVRN
QUlOX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uUHJlTWFpbiddID0gTW9kdWxlLmFk
ZE9uUHJlTWFpbiA9IGFkZE9uUHJlTWFpbjsKLWZ1bmN0aW9uIGFkZE9uRXhpdChjYikgewotICBf
X0FURVhJVF9fLnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPbkV4aXQnXSA9IE1vZHVsZS5h
ZGRPbkV4aXQgPSBhZGRPbkV4aXQ7Ci1mdW5jdGlvbiBhZGRPblBvc3RSdW4oY2IpIHsKLSAgX19B
VFBPU1RSVU5fXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25Qb3N0UnVuJ10gPSBNb2R1
bGUuYWRkT25Qb3N0UnVuID0gYWRkT25Qb3N0UnVuOwotLy8gVG9vbHMKLS8vIFRoaXMgcHJvY2Vz
c2VzIGEgSlMgc3RyaW5nIGludG8gYSBDLWxpbmUgYXJyYXkgb2YgbnVtYmVycywgMC10ZXJtaW5h
dGVkLgotLy8gRm9yIExMVk0tb3JpZ2luYXRpbmcgc3RyaW5ncywgc2VlIHBhcnNlci5qczpwYXJz
ZUxMVk1TdHJpbmcgZnVuY3Rpb24KLWZ1bmN0aW9uIGludEFycmF5RnJvbVN0cmluZyhzdHJpbmd5
LCBkb250QWRkTnVsbCwgbGVuZ3RoIC8qIG9wdGlvbmFsICovKSB7Ci0gIHZhciByZXQgPSAobmV3
IFJ1bnRpbWUuVVRGOFByb2Nlc3NvcigpKS5wcm9jZXNzSlNTdHJpbmcoc3RyaW5neSk7Ci0gIGlm
IChsZW5ndGgpIHsKLSAgICByZXQubGVuZ3RoID0gbGVuZ3RoOwotICB9Ci0gIGlmICghZG9udEFk
ZE51bGwpIHsKLSAgICByZXQucHVzaCgwKTsKLSAgfQotICByZXR1cm4gcmV0OwotfQotTW9kdWxl
WydpbnRBcnJheUZyb21TdHJpbmcnXSA9IGludEFycmF5RnJvbVN0cmluZzsKLWZ1bmN0aW9uIGlu
dEFycmF5VG9TdHJpbmcoYXJyYXkpIHsKLSAgdmFyIHJldCA9IFtdOwotICBmb3IgKHZhciBpID0g
MDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7Ci0gICAgdmFyIGNociA9IGFycmF5W2ldOwotICAg
IGlmIChjaHIgPiAweEZGKSB7Ci0gICAgICBjaHIgJj0gMHhGRjsKLSAgICB9Ci0gICAgcmV0LnB1
c2goU3RyaW5nLmZyb21DaGFyQ29kZShjaHIpKTsKLSAgfQotICByZXR1cm4gcmV0LmpvaW4oJycp
OwotfQotTW9kdWxlWydpbnRBcnJheVRvU3RyaW5nJ10gPSBpbnRBcnJheVRvU3RyaW5nOwotLy8g
V3JpdGUgYSBKYXZhc2NyaXB0IGFycmF5IHRvIHNvbWV3aGVyZSBpbiB0aGUgaGVhcAotZnVuY3Rp
b24gd3JpdGVTdHJpbmdUb01lbW9yeShzdHJpbmcsIGJ1ZmZlciwgZG9udEFkZE51bGwpIHsKLSAg
dmFyIGFycmF5ID0gaW50QXJyYXlGcm9tU3RyaW5nKHN0cmluZywgZG9udEFkZE51bGwpOwotICB2
YXIgaSA9IDA7Ci0gIHdoaWxlIChpIDwgYXJyYXkubGVuZ3RoKSB7Ci0gICAgdmFyIGNociA9IGFy
cmF5W2ldOwotICAgIEhFQVA4WygoKGJ1ZmZlcikrKGkpKXwwKV09Y2hyCi0gICAgaSA9IGkgKyAx
OwotICB9Ci19Ci1Nb2R1bGVbJ3dyaXRlU3RyaW5nVG9NZW1vcnknXSA9IHdyaXRlU3RyaW5nVG9N
ZW1vcnk7Ci1mdW5jdGlvbiB3cml0ZUFycmF5VG9NZW1vcnkoYXJyYXksIGJ1ZmZlcikgewotICBm
b3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7Ci0gICAgSEVBUDhbKCgoYnVm
ZmVyKSsoaSkpfDApXT1hcnJheVtpXTsKLSAgfQotfQotTW9kdWxlWyd3cml0ZUFycmF5VG9NZW1v
cnknXSA9IHdyaXRlQXJyYXlUb01lbW9yeTsKLWZ1bmN0aW9uIHVuU2lnbih2YWx1ZSwgYml0cywg
aWdub3JlLCBzaWcpIHsKLSAgaWYgKHZhbHVlID49IDApIHsKLSAgICByZXR1cm4gdmFsdWU7Ci0g
IH0KLSAgcmV0dXJuIGJpdHMgPD0gMzIgPyAyKk1hdGguYWJzKDEgPDwgKGJpdHMtMSkpICsgdmFs
dWUgLy8gTmVlZCBzb21lIHRyaWNrZXJ5LCBzaW5jZSBpZiBiaXRzID09IDMyLCB3ZSBhcmUgcmln
aHQgYXQgdGhlIGxpbWl0IG9mIHRoZSBiaXRzIEpTIHVzZXMgaW4gYml0c2hpZnRzCi0gICAgICAg
ICAgICAgICAgICAgIDogTWF0aC5wb3coMiwgYml0cykgICAgICAgICArIHZhbHVlOwotfQotZnVu
Y3Rpb24gcmVTaWduKHZhbHVlLCBiaXRzLCBpZ25vcmUsIHNpZykgewotICBpZiAodmFsdWUgPD0g
MCkgewotICAgIHJldHVybiB2YWx1ZTsKLSAgfQotICB2YXIgaGFsZiA9IGJpdHMgPD0gMzIgPyBN
YXRoLmFicygxIDw8IChiaXRzLTEpKSAvLyBhYnMgaXMgbmVlZGVkIGlmIGJpdHMgPT0gMzIKLSAg
ICAgICAgICAgICAgICAgICAgICAgIDogTWF0aC5wb3coMiwgYml0cy0xKTsKLSAgaWYgKHZhbHVl
ID49IGhhbGYgJiYgKGJpdHMgPD0gMzIgfHwgdmFsdWUgPiBoYWxmKSkgeyAvLyBmb3IgaHVnZSB2
YWx1ZXMsIHdlIGNhbiBoaXQgdGhlIHByZWNpc2lvbiBsaW1pdCBhbmQgYWx3YXlzIGdldCB0cnVl
IGhlcmUuIHNvIGRvbid0IGRvIHRoYXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQsIGluIGdlbmVyYWwgdGhlcmUgaXMgbm8gcGVy
ZmVjdCBzb2x1dGlvbiBoZXJlLiBXaXRoIDY0LWJpdCBpbnRzLCB3ZSBnZXQgcm91bmRpbmcgYW5k
IGVycm9ycwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFRPRE86IEluIGk2NCBtb2RlIDEsIHJlc2lnbiB0aGUgdHdvIHBhcnRzIHNlcGFy
YXRlbHkgYW5kIHNhZmVseQotICAgIHZhbHVlID0gLTIqaGFsZiArIHZhbHVlOyAvLyBDYW5ub3Qg
Yml0c2hpZnQgaGFsZiwgYXMgaXQgbWF5IGJlIGF0IHRoZSBsaW1pdCBvZiB0aGUgYml0cyBKUyB1
c2VzIGluIGJpdHNoaWZ0cwotICB9Ci0gIHJldHVybiB2YWx1ZTsKLX0KLWlmICghTWF0aFsnaW11
bCddKSBNYXRoWydpbXVsJ10gPSBmdW5jdGlvbihhLCBiKSB7Ci0gIHZhciBhaCAgPSBhID4+PiAx
NjsKLSAgdmFyIGFsID0gYSAmIDB4ZmZmZjsKLSAgdmFyIGJoICA9IGIgPj4+IDE2OwotICB2YXIg
YmwgPSBiICYgMHhmZmZmOwotICByZXR1cm4gKGFsKmJsICsgKChhaCpibCArIGFsKmJoKSA8PCAx
NikpfDA7Ci19OwotTWF0aC5pbXVsID0gTWF0aFsnaW11bCddOwotLy8gQSBjb3VudGVyIG9mIGRl
cGVuZGVuY2llcyBmb3IgY2FsbGluZyBydW4oKS4gSWYgd2UgbmVlZCB0bwotLy8gZG8gYXN5bmNo
cm9ub3VzIHdvcmsgYmVmb3JlIHJ1bm5pbmcsIGluY3JlbWVudCB0aGlzIGFuZAotLy8gZGVjcmVt
ZW50IGl0LiBJbmNyZW1lbnRpbmcgbXVzdCBoYXBwZW4gaW4gYSBwbGFjZSBsaWtlCi0vLyBQUkVf
UlVOX0FERElUSU9OUyAodXNlZCBieSBlbWNjIHRvIGFkZCBmaWxlIHByZWxvYWRpbmcpLgotLy8g
Tm90ZSB0aGF0IHlvdSBjYW4gYWRkIGRlcGVuZGVuY2llcyBpbiBwcmVSdW4sIGV2ZW4gdGhvdWdo
Ci0vLyBpdCBoYXBwZW5zIHJpZ2h0IGJlZm9yZSBydW4gLSBydW4gd2lsbCBiZSBwb3N0cG9uZWQg
dW50aWwKLS8vIHRoZSBkZXBlbmRlbmNpZXMgYXJlIG1ldC4KLXZhciBydW5EZXBlbmRlbmNpZXMg
PSAwOwotdmFyIHJ1bkRlcGVuZGVuY3lUcmFja2luZyA9IHt9OwotdmFyIGNhbGxlZEluaXQgPSBm
YWxzZSwgY2FsbGVkUnVuID0gZmFsc2U7Ci12YXIgcnVuRGVwZW5kZW5jeVdhdGNoZXIgPSBudWxs
OwotZnVuY3Rpb24gYWRkUnVuRGVwZW5kZW5jeShpZCkgewotICBydW5EZXBlbmRlbmNpZXMrKzsK
LSAgaWYgKE1vZHVsZVsnbW9uaXRvclJ1bkRlcGVuZGVuY2llcyddKSB7Ci0gICAgTW9kdWxlWydt
b25pdG9yUnVuRGVwZW5kZW5jaWVzJ10ocnVuRGVwZW5kZW5jaWVzKTsKLSAgfQotICBpZiAoaWQp
IHsKLSAgICBhc3NlcnQoIXJ1bkRlcGVuZGVuY3lUcmFja2luZ1tpZF0pOwotICAgIHJ1bkRlcGVu
ZGVuY3lUcmFja2luZ1tpZF0gPSAxOwotICB9IGVsc2UgewotICAgIE1vZHVsZS5wcmludEVycign
d2FybmluZzogcnVuIGRlcGVuZGVuY3kgYWRkZWQgd2l0aG91dCBJRCcpOwotICB9Ci19Ci1Nb2R1
bGVbJ2FkZFJ1bkRlcGVuZGVuY3knXSA9IGFkZFJ1bkRlcGVuZGVuY3k7Ci1mdW5jdGlvbiByZW1v
dmVSdW5EZXBlbmRlbmN5KGlkKSB7Ci0gIHJ1bkRlcGVuZGVuY2llcy0tOwotICBpZiAoTW9kdWxl
Wydtb25pdG9yUnVuRGVwZW5kZW5jaWVzJ10pIHsKLSAgICBNb2R1bGVbJ21vbml0b3JSdW5EZXBl
bmRlbmNpZXMnXShydW5EZXBlbmRlbmNpZXMpOwotICB9Ci0gIGlmIChpZCkgewotICAgIGFzc2Vy
dChydW5EZXBlbmRlbmN5VHJhY2tpbmdbaWRdKTsKLSAgICBkZWxldGUgcnVuRGVwZW5kZW5jeVRy
YWNraW5nW2lkXTsKLSAgfSBlbHNlIHsKLSAgICBNb2R1bGUucHJpbnRFcnIoJ3dhcm5pbmc6IHJ1
biBkZXBlbmRlbmN5IHJlbW92ZWQgd2l0aG91dCBJRCcpOwotICB9Ci0gIGlmIChydW5EZXBlbmRl
bmNpZXMgPT0gMCkgewotICAgIGlmIChydW5EZXBlbmRlbmN5V2F0Y2hlciAhPT0gbnVsbCkgewot
ICAgICAgY2xlYXJJbnRlcnZhbChydW5EZXBlbmRlbmN5V2F0Y2hlcik7Ci0gICAgICBydW5EZXBl
bmRlbmN5V2F0Y2hlciA9IG51bGw7Ci0gICAgfSAKLSAgICAvLyBJZiBydW4gaGFzIG5ldmVyIGJl
ZW4gY2FsbGVkLCBhbmQgd2Ugc2hvdWxkIGNhbGwgcnVuIChJTlZPS0VfUlVOIGlzIHRydWUsIGFu
ZCBNb2R1bGUubm9Jbml0aWFsUnVuIGlzIG5vdCBmYWxzZSkKLSAgICBpZiAoIWNhbGxlZFJ1biAm
JiBzaG91bGRSdW5Ob3cpIHJ1bigpOwotICB9Ci19Ci1Nb2R1bGVbJ3JlbW92ZVJ1bkRlcGVuZGVu
Y3knXSA9IHJlbW92ZVJ1bkRlcGVuZGVuY3k7Ci1Nb2R1bGVbInByZWxvYWRlZEltYWdlcyJdID0g
e307IC8vIG1hcHMgdXJsIHRvIGltYWdlIGRhdGEKLU1vZHVsZVsicHJlbG9hZGVkQXVkaW9zIl0g
PSB7fTsgLy8gbWFwcyB1cmwgdG8gYXVkaW8gZGF0YQotZnVuY3Rpb24gbG9hZE1lbW9yeUluaXRp
YWxpemVyKGZpbGVuYW1lKSB7Ci0gIGZ1bmN0aW9uIGFwcGx5RGF0YShkYXRhKSB7Ci0gICAgSEVB
UFU4LnNldChkYXRhLCBTVEFUSUNfQkFTRSk7Ci0gIH0KLSAgLy8gYWx3YXlzIGRvIHRoaXMgYXN5
bmNocm9ub3VzbHksIHRvIGtlZXAgc2hlbGwgYW5kIHdlYiBhcyBzaW1pbGFyIGFzIHBvc3NpYmxl
Ci0gIGFkZE9uUHJlUnVuKGZ1bmN0aW9uKCkgewotICAgIGlmIChFTlZJUk9OTUVOVF9JU19OT0RF
IHx8IEVOVklST05NRU5UX0lTX1NIRUxMKSB7Ci0gICAgICBhcHBseURhdGEoTW9kdWxlWydyZWFk
QmluYXJ5J10oZmlsZW5hbWUpKTsKLSAgICB9IGVsc2UgewotICAgICAgQnJvd3Nlci5hc3luY0xv
YWQoZmlsZW5hbWUsIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgYXBwbHlEYXRhKGRhdGEpOwot
ICAgICAgfSwgZnVuY3Rpb24oZGF0YSkgewotICAgICAgICB0aHJvdyAnY291bGQgbm90IGxvYWQg
bWVtb3J5IGluaXRpYWxpemVyICcgKyBmaWxlbmFtZTsKLSAgICAgIH0pOwotICAgIH0KLSAgfSk7
Ci19Ci0vLyA9PT0gQm9keSA9PT0KLVNUQVRJQ19CQVNFID0gODsKLVNUQVRJQ1RPUCA9IFNUQVRJ
Q19CQVNFICsgMTYzOTI7Ci12YXIgX3N0ZG91dDsKLXZhciBfc3RkaW47Ci12YXIgX3N0ZGVycjsK
LS8qIGdsb2JhbCBpbml0aWFsaXplcnMgKi8gX19BVElOSVRfXy5wdXNoKHsgZnVuYzogZnVuY3Rp
b24oKSB7IHJ1blBvc3RTZXRzKCkgfSB9LHsgZnVuYzogZnVuY3Rpb24oKSB7IF9fR0xPQkFMX19J
X2EoKSB9IH0seyBmdW5jOiBmdW5jdGlvbigpIHsgX19HTE9CQUxfX0lfYTgoKSB9IH0pOwotdmFy
IF9fX2ZzbXU4OwotdmFyIF9fX2Rzb19oYW5kbGU7Ci12YXIgX19aVFZOMTBfX2N4eGFiaXYxMjBf
X3NpX2NsYXNzX3R5cGVfaW5mb0U7Ci12YXIgX19aVFZOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5
cGVfaW5mb0U7Ci12YXIgX19aTlN0M19fMTEyX19yc19kZWZhdWx0RDFFdjsKLXZhciBfX1pOU3Qx
M3J1bnRpbWVfZXJyb3JDMUVQS2M7Ci12YXIgX19aTlN0MTNydW50aW1lX2Vycm9yRDFFdjsKLXZh
ciBfX1pOU3QxMmxlbmd0aF9lcnJvckQxRXY7Ci12YXIgX19aTlN0M19fMTZsb2NhbGVDMUV2Owot
dmFyIF9fWk5TdDNfXzE2bG9jYWxlQzFFUktTMF87Ci12YXIgX19aTlN0M19fMTZsb2NhbGVEMUV2
OwotdmFyIF9fWk5TdDhiYWRfY2FzdEMxRXY7Ci12YXIgX19aTlN0OGJhZF9jYXN0RDFFdjsKLXZh
ciBfc3Rkb3V0ID0gX3N0ZG91dD1hbGxvY2F0ZShbMCwwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxM
T0NfU1RBVElDKTsKLXZhciBfc3RkaW4gPSBfc3RkaW49YWxsb2NhdGUoWzAsMCwwLDAsMCwwLDAs
MF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci12YXIgX3N0ZGVyciA9IF9zdGRlcnI9YWxsb2NhdGUo
WzAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci1fX1pUVk4xMF9fY3h4YWJp
djEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRT1hbGxvY2F0ZShbMCwwLDAsMCwyMDAsMzcsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOwotX19aVFZOMTBfX2N4
eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0U9YWxsb2NhdGUoWzAsMCwwLDAsMjE2LDM3LDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLS8qIG1lbW9yeSBp
bml0aWFsaXplciAqLyBhbGxvY2F0ZShbMCwwLDAsMCwwLDAsMzYsNjQsMCwwLDAsMCwwLDAsODks
NjQsMCwwLDAsMCwwLDEzNiwxOTUsNjQsMCwwLDAsMCwxMzIsMjE1LDE1MSw2NSwwLDEyOCwyMjQs
NTUsMTIxLDE5NSw2NSw2NywyMywxMTAsNSwxODEsMTgxLDE4NCwxNDcsNzAsMjQ1LDI0OSw2Mywy
MzMsMyw3OSw1Niw3Nyw1MCwyOSw0OCwyNDksNzIsMTE5LDEzMCw5MCw2MCwxOTEsMTE1LDEyNywy
MjEsNzksMjEsMTE3LDc0LDExNywxMDgsMCwwLDAsMCwwLDc0LDExNywxMTAsMCwwLDAsMCwwLDY1
LDExMiwxMTQsMCwwLDAsMCwwLDc3LDk3LDExNCwwLDAsMCwwLDAsNzAsMTAxLDk4LDAsMCwwLDAs
MCw3NCw5NywxMTAsMCwwLDAsMCwwLDY4LDEwMSw5OSwxMDEsMTA5LDk4LDEwMSwxMTQsMCwwLDAs
MCwwLDAsMCwwLDc4LDExMSwxMTgsMTAxLDEwOSw5OCwxMDEsMTE0LDAsMCwwLDAsMCwwLDAsMCw3
OSw5OSwxMTYsMTExLDk4LDEwMSwxMTQsMCw4MywxMDEsMTEyLDExNiwxMDEsMTA5LDk4LDEwMSwx
MTQsMCwwLDAsMCwwLDAsMCwxMTcsMTEwLDExNSwxMTcsMTEyLDExMiwxMTEsMTE0LDExNiwxMDEs
MTAwLDMyLDEwOCwxMTEsOTksOTcsMTA4LDEwMSwzMiwxMDIsMTExLDExNCwzMiwxMTUsMTE2LDk3
LDExMCwxMDAsOTcsMTE0LDEwMCwzMiwxMDUsMTEwLDExMiwxMTcsMTE2LDAsMCwwLDY1LDExNywx
MDMsMTE3LDExNSwxMTYsMCwwLDc0LDExNywxMDgsMTIxLDAsMCwwLDAsNzQsMTE3LDExMCwxMDEs
MCwwLDAsMCw3Nyw5NywxMjEsMCwwLDAsMCwwLDY1LDExMiwxMTQsMTA1LDEwOCwwLDAsMCw3Nyw5
NywxMTQsOTksMTA0LDAsMCwwLDcwLDEwMSw5OCwxMTQsMTE3LDk3LDExNCwxMjEsMCwwLDAsMCww
LDAsMCwwLDc0LDk3LDExMCwxMTcsOTcsMTE0LDEyMSwwLDY4LDAsMCwwLDEwMSwwLDAsMCw5OSww
LDAsMCwwLDAsMCwwLDc4LDAsMCwwLDExMSwwLDAsMCwxMTgsMCwwLDAsMCwwLDAsMCw3OSwwLDAs
MCw5OSwwLDAsMCwxMTYsMCwwLDAsMCwwLDAsMCw4MywwLDAsMCwxMDEsMCwwLDAsMTEyLDAsMCww
LDAsMCwwLDAsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMTUsMTE2LDExNCwxMDUsMTEwLDEwMywwLDAs
MCwwLDY1LDAsMCwwLDExNywwLDAsMCwxMDMsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCwxMTcsMCww
LDAsMTA4LDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsMTE3LDAsMCwwLDExMCwwLDAsMCwwLDAsMCww
LDc3LDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDY1LDAsMCwwLDExMiwwLDAsMCwx
MTQsMCwwLDAsMCwwLDAsMCw3NywwLDAsMCw5NywwLDAsMCwxMTQsMCwwLDAsMCwwLDAsMCw3MCww
LDAsMCwxMDEsMCwwLDAsOTgsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCw5NywwLDAsMCwxMTAsMCww
LDAsMCwwLDAsMCw2OCwwLDAsMCwxMDEsMCwwLDAsOTksMCwwLDAsMTAxLDAsMCwwLDEwOSwwLDAs
MCw5OCwwLDAsMCwxMDEsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3OCwwLDAsMCwx
MTEsMCwwLDAsMTE4LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAsOTgsMCwwLDAsMTAxLDAsMCww
LDExNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzksMCwwLDAsOTksMCwwLDAsMTE2LDAsMCwwLDEx
MSwwLDAsMCw5OCwwLDAsMCwxMDEsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsODMsMCwwLDAsMTAx
LDAsMCwwLDExMiwwLDAsMCwxMTYsMCwwLDAsMTAxLDAsMCwwLDEwOSwwLDAsMCw5OCwwLDAsMCwx
MDEsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAsMTE3LDAsMCwwLDEwMywwLDAsMCwx
MTcsMCwwLDAsMTE1LDAsMCwwLDExNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsMTE3
LDAsMCwwLDEwOCwwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNyww
LDAsMCwxMTAsMCwwLDAsMTAxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCwxMTIsMCww
LDAsMTE0LDAsMCwwLDEwNSwwLDAsMCwxMDgsMCwwLDAsMCwwLDAsMCw3NywwLDAsMCw5NywwLDAs
MCwxMTQsMCwwLDAsOTksMCwwLDAsMTA0LDAsMCwwLDAsMCwwLDAsNzAsMCwwLDAsMTAxLDAsMCww
LDk4LDAsMCwwLDExNCwwLDAsMCwxMTcsMCwwLDAsOTcsMCwwLDAsMTE0LDAsMCwwLDEyMSwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsOTcsMCwwLDAsMTEwLDAsMCwwLDExNywwLDAsMCw5
NywwLDAsMCwxMTQsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsODAsNzcsMCwwLDAsMCwwLDAsNjUs
NzcsMCwwLDAsMCwwLDAsODAsMCwwLDAsNzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY1LDAsMCww
LDc3LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMDgsMTExLDk5LDk3LDEwOCwxMDEsMzIsMTEwLDEx
MSwxMTYsMzIsMTE1LDExNywxMTIsMTEyLDExMSwxMTQsMTE2LDEwMSwxMDAsMCwwLDAsMCwzNyww
LDAsMCw3MywwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAsMCwzNywwLDAs
MCw4MywwLDAsMCwzMiwwLDAsMCwzNywwLDAsMCwxMTIsMCwwLDAsMCwwLDAsMCwzNyw3Myw1OCwz
Nyw3Nyw1OCwzNyw4MywzMiwzNywxMTIsMCwwLDAsMCwwLDM3LDAsMCwwLDk3LDAsMCwwLDMyLDAs
MCwwLDM3LDAsMCwwLDk4LDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDEwMCwwLDAsMCwzMiwwLDAs
MCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAsMCwz
NywwLDAsMCw4MywwLDAsMCwzMiwwLDAsMCwzNywwLDAsMCw4OSwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMzcsOTcsMzIsMzcsOTgsMzIsMzcsMTAwLDMyLDM3LDcyLDU4LDM3LDc3LDU4LDM3LDgzLDMy
LDM3LDg5LDAsMCwwLDAsMzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCww
LDAsNTgsMCwwLDAsMzcsMCwwLDAsODMsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM3LDcyLDU4LDM3
LDc3LDU4LDM3LDgzLDAsMCwwLDAsMCwwLDAsMCwxMTUsMTE2LDEwMCw1OCw1OCw5OCw5NywxMDAs
OTUsOTcsMTA4LDEwOCwxMTEsOTksMCwwLDM3LDAsMCwwLDEwOSwwLDAsMCw0NywwLDAsMCwzNyww
LDAsMCwxMDAsMCwwLDAsNDcsMCwwLDAsMzcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwzNywxMDksNDcsMzcsMTAwLDQ3LDM3LDEyMSwwLDAsMCwwLDAsMCwwLDAsMTAyLDAsMCwwLDk3
LDAsMCwwLDEwOCwwLDAsMCwxMTUsMCwwLDAsMTAxLDAsMCwwLDAsMCwwLDAsMTAyLDk3LDEwOCwx
MTUsMTAxLDAsMCwwLDExNiwwLDAsMCwxMTQsMCwwLDAsMTE3LDAsMCwwLDEwMSwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMTE2LDExNCwxMTcsMTAxLDAsMCwwLDAsNTgsMzIsMCwwLDAsMCwwLDAsMTA1
LDExMSwxMTUsOTUsOTgsOTcsMTE1LDEwMSw1OCw1OCw5OSwxMDgsMTAxLDk3LDExNCwwLDM3LDEx
MiwwLDAsMCwwLDAsMCwxMTUsMTE2LDEwMCw1OCw1OCw5OCw5NywxMDAsOTUsOTksOTcsMTE1LDEx
NiwwLDAsMCw2NywwLDAsMCwwLDAsMCwwLDExOCwxMDEsOTksMTE2LDExMSwxMTQsMCwwLDM3LDQ2
LDQ4LDc2LDEwMiwwLDAsMCwxMDksMTExLDExMCwxMDEsMTIxLDk1LDEwMywxMDEsMTE2LDMyLDEw
MSwxMTQsMTE0LDExMSwxMTQsMCw4Myw5NywxMTYsMCwwLDAsMCwwLDcwLDExNCwxMDUsMCwwLDAs
MCwwLDg0LDEwNCwxMTcsMCwwLDAsMCwwLDM3LDc2LDEwMiwwLDAsMCwwLDAsMTA1LDExMSwxMTUs
MTE2LDExNCwxMDEsOTcsMTA5LDAsMCwwLDAsMCwwLDAsMCw4NywxMDEsMTAwLDAsMCwwLDAsMCw4
NCwxMTcsMTAxLDAsMCwwLDAsMCw3NywxMTEsMTEwLDAsMCwwLDAsMCw4MywxMTcsMTEwLDAsMCww
LDAsMCw4Myw5NywxMTYsMTE3LDExNCwxMDAsOTcsMTIxLDAsMCwwLDAsMCwwLDAsMCw3MCwxMTQs
MTA1LDEwMCw5NywxMjEsMCwwLDg0LDEwNCwxMTcsMTE0LDExNSwxMDAsOTcsMTIxLDAsMCwwLDAs
MCwwLDAsMCw4NywxMDEsMTAwLDExMCwxMDEsMTE1LDEwMCw5NywxMjEsMCwwLDAsMCwwLDAsMCw4
NCwxMTcsMTAxLDExNSwxMDAsOTcsMTIxLDAsNzcsMTExLDExMCwxMDAsOTcsMTIxLDAsMCw4Mywx
MTcsMTEwLDEwMCw5NywxMjEsMCwwLDgzLDAsMCwwLDk3LDAsMCwwLDExNiwwLDAsMCwwLDAsMCww
LDcwLDAsMCwwLDExNCwwLDAsMCwxMDUsMCwwLDAsMCwwLDAsMCw4NCwwLDAsMCwxMDQsMCwwLDAs
MTE3LDAsMCwwLDAsMCwwLDAsODcsMCwwLDAsMTAxLDAsMCwwLDEwMCwwLDAsMCwwLDAsMCwwLDg0
LDAsMCwwLDExNywwLDAsMCwxMDEsMCwwLDAsMCwwLDAsMCw3NywwLDAsMCwxMTEsMCwwLDAsMTEw
LDAsMCwwLDAsMCwwLDAsMTE3LDExMCwxMTUsMTEyLDEwMSw5OSwxMDUsMTAyLDEwNSwxMDEsMTAw
LDMyLDEwNSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5NSw5OSw5NywxMTYsMTAxLDEwMywx
MTEsMTE0LDEyMSwzMiwxMDEsMTE0LDExNCwxMTEsMTE0LDAsMCwwLDAsMCw4MywwLDAsMCwxMTcs
MCwwLDAsMTEwLDAsMCwwLDAsMCwwLDAsODMsMCwwLDAsOTcsMCwwLDAsMTE2LDAsMCwwLDExNyww
LDAsMCwxMTQsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsNzAsMCwwLDAsMTE0LDAsMCwwLDEwNSwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCw4NCwwLDAsMCwxMDQsMCwwLDAsMTE3LDAsMCwwLDExNCwwLDAs
MCwxMTUsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
ODcsMCwwLDAsMTAxLDAsMCwwLDEwMCwwLDAsMCwxMTAsMCwwLDAsMTAxLDAsMCwwLDExNSwwLDAs
MCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTE3LDAsMCww
LDEwMSwwLDAsMCwxMTUsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCww
LDc3LDAsMCwwLDExMSwwLDAsMCwxMTAsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsODMsMCwwLDAsMTE3LDAsMCwwLDExMCwwLDAsMCwxMDAsMCwwLDAs
OTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2OCwxMDEsOTksMCwwLDAsMCwwLDc4
LDExMSwxMTgsMCwwLDAsMCwwLDc5LDk5LDExNiwwLDAsMCwwLDAsODMsMTAxLDExMiwwLDAsMCww
LDAsNjUsMTE3LDEwMywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1NywwLDAsMCww
LDAsMCw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1NywwLDAsMCwwLDAsMCwzNywwLDAsMCw4
OSwwLDAsMCw0NSwwLDAsMCwzNywwLDAsMCwxMDksMCwwLDAsNDUsMCwwLDAsMzcsMCwwLDAsMTAw
LDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4LDAs
MCwwLDM3LDAsMCwwLDgzLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCww
LDc3LDAsMCwwLDAsMCwwLDAsMzcsMCwwLDAsNzMsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcs
MCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsODMsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsMTEyLDAs
MCwwLDAsMCwwLDAsMzcsMCwwLDAsMTA5LDAsMCwwLDQ3LDAsMCwwLDM3LDAsMCwwLDEwMCwwLDAs
MCw0NywwLDAsMCwzNywwLDAsMCwxMjEsMCwwLDAsMzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAs
MzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsODMsMCwwLDAsMzcsNzIsNTgsMzcs
NzcsNTgsMzcsODMsMzcsNzIsNTgsMzcsNzcsMCwwLDAsMzcsNzMsNTgsMzcsNzcsNTgsMzcsODMs
MzIsMzcsMTEyLDAsMCwwLDAsMCwzNyw4OSw0NSwzNywxMDksNDUsMzcsMTAwLDM3LDEwOSw0Nywz
NywxMDAsNDcsMzcsMTIxLDM3LDcyLDU4LDM3LDc3LDU4LDM3LDgzLDM3LDAsMCwwLDAsMCwwLDAs
MzcsMTEyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjI0LDMxLDAsMCwzMCwwLDAsMCwxMTYsMCwwLDAs
OTgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNDAsMzEsMCwwLDE5Niww
LDAsMCwxNjQsMCwwLDAsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDMyLDAsMCw3MCwwLDAsMCw2LDEsMCwwLDM4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMTYsMzIsMCwwLDk0LDAsMCwwLDgsMCwwLDAsMTEwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMzIsMzIsMCwwLDk0LDAsMCwwLDIwLDAsMCwwLDExMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDU2LDMyLDAsMCwxNjgsMCwwLDAsODQs
MCwwLDAsNDgsMCwwLDAsMiwwLDAsMCw4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsODgsMzIsMCwwLDIzMCwwLDAsMCwxODYsMCwwLDAsNDgsMCwwLDAsNCwwLDAsMCwxNCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyMCwzMiwwLDAsMTYyLDAsMCww
LDE4OCwwLDAsMCw0OCwwLDAsMCw4LDAsMCwwLDEyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMTUyLDMyLDAsMCwyNTQsMCwwLDAsMTQwLDAsMCwwLDQ4LDAsMCwwLDYsMCww
LDAsMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw1NiwzMywwLDAsMjUy
LDAsMCwwLDE2LDAsMCwwLDQ4LDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
ODgsMzMsMCwwLDE2MCwwLDAsMCwxMDgsMCwwLDAsNDgsMCwwLDAsNCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwxMjAsMzMsMCwwLDM4LDAsMCwwLDExMCwwLDAsMCw0OCwwLDAsMCwxMjAs
MCwwLDAsNCwwLDAsMCwzMiwwLDAsMCw2LDAsMCwwLDIwLDAsMCwwLDU2LDAsMCwwLDIsMCwwLDAs
MjQ4LDI1NSwyNTUsMjU1LDEyMCwzMywwLDAsMjIsMCwwLDAsOCwwLDAsMCwzMiwwLDAsMCwxMiww
LDAsMCwyLDAsMCwwLDMwLDAsMCwwLDEyNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDE2MCwzMywwLDAsMjQyLDAsMCwwLDIyMiwwLDAsMCw0OCwwLDAsMCwyMCwwLDAsMCwx
NiwwLDAsMCw2MCwwLDAsMCwyNiwwLDAsMCwxOCwwLDAsMCwyLDAsMCwwLDQsMCwwLDAsMjQ4LDI1
NSwyNTUsMjU1LDE2MCwzMywwLDAsNzAsMCwwLDAsMTA0LDAsMCwwLDExNiwwLDAsMCwxMjIsMCww
LDAsNjQsMCwwLDAsNDQsMCwwLDAsNTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwyMDAsMzMsMCwwLDc4LDAsMCwwLDE5MCwwLDAsMCw0OCwwLDAsMCw0OCwwLDAsMCw0MCww
LDAsMCw4LDAsMCwwLDM4LDAsMCwwLDQ4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIx
NiwzMywwLDAsNTgsMCwwLDAsNjQsMCwwLDAsNDgsMCwwLDAsNDIsMCwwLDAsODQsMCwwLDAsMTIs
MCwwLDAsNTQsMCwwLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMzIsMzMsMCww
LDI0NiwwLDAsMCwyLDAsMCwwLDQ4LDAsMCwwLDI0LDAsMCwwLDMwLDAsMCwwLDY0LDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgsMzQsMCwwLDQ2LDAsMCwwLDIwOCwwLDAsMCw0OCwwLDAs
MCwzNiwwLDAsMCwxNCwwLDAsMCwxNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw0MCwz
NCwwLDAsMjEwLDAsMCwwLDExMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw0OCwzNCww
LDAsMjgsMCwwLDAsMTM4LDAsMCwwLDM4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsNjQsMzQsMCwwLDYsMCwwLDAsMTc0LDAsMCwwLDQ4LDAsMCwwLDgsMCwwLDAsNiwwLDAs
MCwxMiwwLDAsMCw0LDAsMCwwLDEwLDAsMCwwLDQsMCwwLDAsMiwwLDAsMCwxMiwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDk2LDM0LDAsMCw5OCwwLDAsMCwxOCwwLDAsMCw0
OCwwLDAsMCwyMCwwLDAsMCwyNCwwLDAsMCwzNCwwLDAsMCwyMiwwLDAsMCwyMiwwLDAsMCw4LDAs
MCwwLDYsMCwwLDAsMTgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjgs
MzQsMCwwLDQwLDAsMCwwLDI0LDAsMCwwLDQ4LDAsMCwwLDQ4LDAsMCwwLDQ2LDAsMCwwLDM4LDAs
MCwwLDQwLDAsMCwwLDMwLDAsMCwwLDQ0LDAsMCwwLDM2LDAsMCwwLDU0LDAsMCwwLDUyLDAsMCww
LDUwLDAsMCwwLDI0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2MCwzNCwwLDAsNTIs
MCwwLDAsNCwwLDAsMCw0OCwwLDAsMCw3NiwwLDAsMCw3MCwwLDAsMCw2NCwwLDAsMCw2NiwwLDAs
MCw1OCwwLDAsMCw2OCwwLDAsMCw2MiwwLDAsMCwyOCwwLDAsMCw3NCwwLDAsMCw3MiwwLDAsMCw0
MiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxOTIsMzQsMCwwLDc0LDAsMCwwLDkyLDAs
MCwwLDQ4LDAsMCwwLDE2LDAsMCwwLDEyLDAsMCwwLDEyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDIwOCwzNCwwLDAsMjYsMCwwLDAsMTc2LDAsMCwwLDQ4LDAsMCwwLDIyLDAsMCwwLDE0
LDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjI0LDM0LDAsMCwyMjgsMCww
LDAsMTMwLDAsMCwwLDQ4LDAsMCwwLDE0LDAsMCwwLDQsMCwwLDAsMjAsMCwwLDAsMTYsMCwwLDAs
NjIsMCwwLDAsNCwwLDAsMCw3NiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM1LDAs
MCwxODAsMCwwLDAsNjAsMCwwLDAsNDgsMCwwLDAsMiwwLDAsMCw4LDAsMCwwLDgsMCwwLDAsMTA2
LDAsMCwwLDk2LDAsMCwwLDE4LDAsMCwwLDk0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDMyLDM1LDAsMCwxODAsMCwwLDAsMTMyLDAsMCwwLDQ4LDAsMCwwLDE2LDAsMCwwLDYsMCwwLDAs
MiwwLDAsMCwxMjYsMCwwLDAsNDYsMCwwLDAsMTIsMCwwLDAsMTgsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsNjQsMzUsMCwwLDE4MCwwLDAsMCwxNTIsMCwwLDAsNDgsMCwwLDAsMTAsMCww
LDAsMTIsMCwwLDAsMjQsMCwwLDAsMzQsMCwwLDAsNzQsMCwwLDAsNiwwLDAsMCw2NiwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw5NiwzNSwwLDAsMTgwLDAsMCwwLDM0LDAsMCwwLDQ4LDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTEyLDM1LDAsMCw1NiwwLDAsMCwx
NTYsMCwwLDAsNDgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjgsMzUs
MCwwLDE4MCwwLDAsMCw4MCwwLDAsMCw0OCwwLDAsMCwyMCwwLDAsMCwyLDAsMCwwLDQsMCwwLDAs
MTAsMCwwLDAsMTYsMCwwLDAsMjgsMCwwLDAsMjIsMCwwLDAsNiwwLDAsMCw2LDAsMCwwLDgsMCww
LDAsMTAsMCwwLDAsMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjAs
MzUsMCwwLDQsMSwwLDAsMzYsMCwwLDAsNDgsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDE4LDAsMCww
LDM0LDAsMCwwLDgsMCwwLDAsNiwwLDAsMCwyNiwwLDAsMCwxNCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDIwOCwzNSwwLDAsNjYsMCwwLDAsMjE4LDAsMCwwLDc4LDAsMCww
LDIsMCwwLDAsMTQsMCwwLDAsMzIsMCwwLDAsNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDIyNCwzNSwwLDAsMTgwLDAsMCwwLDg2LDAsMCwwLDQ4LDAsMCwwLDEwLDAsMCww
LDEyLDAsMCwwLDI0LDAsMCwwLDM0LDAsMCwwLDc0LDAsMCwwLDYsMCwwLDAsNjYsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQwLDM1LDAsMCwxODAsMCwwLDAsMjM4LDAsMCwwLDQ4LDAs
MCwwLDEwLDAsMCwwLDEyLDAsMCwwLDI0LDAsMCwwLDM0LDAsMCwwLDc0LDAsMCwwLDYsMCwwLDAs
NjYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNiwwLDAsMTI2LDAsMCwwLDIzNCww
LDAsMCwxNiwwLDAsMCwyMiwwLDAsMCwxNiwwLDAsMCwxMCwwLDAsMCw4OCwwLDAsMCwxMDAsMCww
LDAsMzAsMCwwLDAsMjgsMCwwLDAsMjYsMCwwLDAsMjgsMCwwLDAsNDAsMCwwLDAsMjAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsOCwzNiwwLDAsMTAsMCwwLDAsMTE4LDAsMCwwLDU4LDAs
MCwwLDM4LDAsMCwwLDI4LDAsMCwwLDYsMCwwLDAsNTAsMCwwLDAsODYsMCwwLDAsMTgsMCwwLDAs
NiwwLDAsMCwxMCwwLDAsMCwyNCwwLDAsMCwxNiwwLDAsMCwxMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwxNiwzNiwwLDAsMTAwLDAsMCwwLDE5NCwwLDAsMCwyLDAsMCwwLDIsMCwwLDAs
MTQsMCwwLDAsMzIsMCwwLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw0LDAsMCww
LDAsMCwwLDAsNTYsMzYsMCwwLDQ0LDAsMCwwLDIwNiwwLDAsMCwyNTIsMjU1LDI1NSwyNTUsMjUy
LDI1NSwyNTUsMjU1LDU2LDM2LDAsMCwxNDYsMCwwLDAsMTI0LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCw0LDAsMCwwLDAsMCwwLDAsODAsMzYsMCwwLDIxMiwwLDAsMCwyMzYsMCwwLDAsMjUyLDI1NSwy
NTUsMjU1LDI1MiwyNTUsMjU1LDI1NSw4MCwzNiwwLDAsMTA2LDAsMCwwLDIwMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsOCwwLDAsMCwwLDAsMCwwLDEwNCwzNiwwLDAsODgsMCwwLDAsOCwxLDAsMCwy
NDgsMjU1LDI1NSwyNTUsMjQ4LDI1NSwyNTUsMjU1LDEwNCwzNiwwLDAsMTgyLDAsMCwwLDIzMiww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsOCwwLDAsMCwwLDAsMCwwLDEyOCwzNiwwLDAsMTA0LDAsMCww
LDIwNCwwLDAsMCwyNDgsMjU1LDI1NSwyNTUsMjQ4LDI1NSwyNTUsMjU1LDEyOCwzNiwwLDAsMTM2
LDAsMCwwLDUwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE1MiwzNiwwLDAsMjAyLDAs
MCwwLDE4NCwwLDAsMCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE5
MiwzNiwwLDAsMjQ4LDAsMCwwLDIyNiwwLDAsMCw0LDAsMCwwLDIyLDAsMCwwLDE2LDAsMCwwLDEw
LDAsMCwwLDU4LDAsMCwwLDEwMCwwLDAsMCwzMCwwLDAsMCwyOCwwLDAsMCwyNiwwLDAsMCwyOCww
LDAsMCw0MCwwLDAsMCwyNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMDgsMzYsMCww
LDE1NCwwLDAsMCwxNzgsMCwwLDAsMzQsMCwwLDAsMzgsMCwwLDAsMjgsMCwwLDAsNiwwLDAsMCw5
MCwwLDAsMCw4NiwwLDAsMCwxOCwwLDAsMCw2LDAsMCwwLDEwLDAsMCwwLDI0LDAsMCwwLDE2LDAs
MCwwLDE0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzcsMCwwLDIyMCwwLDAsMCwx
NDQsMCwwLDAsNDgsMCwwLDAsNjgsMCwwLDAsMTE4LDAsMCwwLDQwLDAsMCwwLDgwLDAsMCwwLDYs
MCwwLDAsMjgsMCwwLDAsNTIsMCwwLDAsMjAsMCwwLDAsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMzIsMzcsMCwwLDEwMiwwLDAsMCw1NCwwLDAsMCw0OCwwLDAsMCwxMTIsMCwwLDAs
NCwwLDAsMCw2NiwwLDAsMCw3NCwwLDAsMCw3NiwwLDAsMCwyMiwwLDAsMCwxMTQsMCwwLDAsNTAs
MCwwLDAsMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMzcsMCwwLDIyNCwwLDAs
MCwxMTQsMCwwLDAsNDgsMCwwLDAsMTQsMCwwLDAsNjAsMCwwLDAsNDYsMCwwLDAsNDIsMCwwLDAs
NzgsMCwwLDAsNTIsMCwwLDAsOTIsMCwwLDAsNTYsMCwwLDAsMzIsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsOTYsMzcsMCwwLDc2LDAsMCwwLDE3MiwwLDAsMCw0OCwwLDAsMCwxMDIsMCww
LDAsMTA4LDAsMCwwLDI2LDAsMCwwLDcyLDAsMCwwLDI0LDAsMCwwLDE4LDAsMCwwLDgwLDAsMCww
LDcwLDAsMCwwLDY4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE1MiwzNywwLDAsOTAs
MCwwLDAsNjgsMCwwLDAsNjIsMCwwLDAsMjIsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsODgsMCww
LDAsMTAwLDAsMCwwLDMwLDAsMCwwLDcyLDAsMCwwLDgyLDAsMCwwLDEyLDAsMCwwLDQwLDAsMCww
LDIwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2OCwzNywwLDAsMTQsMCwwLDAsMjE0
LDAsMCwwLDYwLDAsMCwwLDM4LDAsMCwwLDI4LDAsMCwwLDYsMCwwLDAsNTAsMCwwLDAsODYsMCww
LDAsMTgsMCwwLDAsNTYsMCwwLDAsMjQsMCwwLDAsNCwwLDAsMCwxNiwwLDAsMCwxMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxODQsMzcsMCwwLDI1MCwwLDAsMCwxOTgsMCwwLDAsNjIs
MCwwLDAsMTUwLDAsMCwwLDgsMCwwLDAsMiwwLDAsMCw2LDAsMCwwLDQsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDgzLDExNiw1NywxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDAsMCww
LDAsODMsMTE2LDU3LDEwMSwxMjAsOTksMTAxLDExMiwxMTYsMTA1LDExMSwxMTAsMCwwLDAsMCw4
MywxMTYsNTcsOTgsOTcsMTAwLDk1LDk3LDEwOCwxMDgsMTExLDk5LDAsMCwwLDAsODMsMTE2LDU2
LDk4LDk3LDEwMCw5NSw5OSw5NywxMTUsMTE2LDAsMCwwLDAsMCw4MywxMTYsNDksNTEsMTE0LDEx
NywxMTAsMTE2LDEwNSwxMDksMTAxLDk1LDEwMSwxMTQsMTE0LDExMSwxMTQsMCwwLDAsMCwwLDAs
MCw4MywxMTYsNDksNTAsMTA4LDEwMSwxMTAsMTAzLDExNiwxMDQsOTUsMTAxLDExNCwxMTQsMTEx
LDExNCwwLDAsMCwwLDAsMCwwLDAsODMsMTE2LDQ5LDQ5LDEwOCwxMTEsMTAzLDEwNSw5OSw5NSwx
MDEsMTE0LDExNCwxMTEsMTE0LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDExNiwxMDUsMTA5
LDEwMSw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw1NywxMDksMTExLDExMCwxMDEsMTIxLDk1LDExMiwxMTcsMTE2LDczLDExOSw3OCw4Myw5NSw0
OSw1NywxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAx
LDExNCw5NywxMTYsMTExLDExNCw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5
NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMTIsMTE3LDEx
Niw3Myw5OSw3OCw4Myw5NSw0OSw1NywxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcs
MTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0
OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjks
NjksNjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDEwOSwxMTEsMTEwLDEwMSwx
MjEsOTUsMTAzLDEwMSwxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwx
MDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDcz
LDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwx
MTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1
NywxMDksMTExLDExMCwxMDEsMTIxLDk1LDEwMywxMDEsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3
LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0
LDk3LDExNiwxMTEsMTE0LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2
LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNTcsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMDUsMTExLDExNSw3MywxMTks
NzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDcz
LDExOSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5
OCw5NywxMTUsMTA1LDk5LDk1LDEwNSwxMTEsMTE1LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEw
NCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSwwLDAs
MCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5NSw5NSwxMTAsMTE3LDEwOSw5NSwx
MTIsMTE3LDExNiw3MywxMTksNjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDk1
LDk1LDExMCwxMTcsMTA5LDk1LDExMiwxMTcsMTE2LDczLDk5LDY5LDY5LDAsMCwwLDc4LDgzLDEx
Niw1MSw5NSw5NSw0OSw1Nyw5NSw5NSwxMTAsMTE3LDEwOSw5NSwxMDMsMTAxLDExNiw3MywxMTks
NjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDk1LDk1LDExMCwxMTcsMTA5LDk1
LDEwMywxMDEsMTE2LDczLDk5LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Niwx
MTYsMTA1LDEwOSwxMDEsOTUsMTEyLDExNywxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDExMSwx
MTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDEx
NiwxMTEsMTE0LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQs
OTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2
LDUxLDk1LDk1LDQ5LDU2LDExNiwxMDUsMTA5LDEwMSw5NSwxMTIsMTE3LDExNiw3Myw5OSw3OCw4
Myw5NSw0OSw1NywxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwx
MTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcs
MTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksNjksNjksMCww
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2LDEwNSwxMDksMTAxLDk1LDEwMywxMDEs
MTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwx
MTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3MywxMTksNzgsODMsOTUs
NDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2
OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMTYsMTA1LDEw
OSwxMDEsOTUsMTAzLDEwMSwxMTYsNzMsOTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYsMTE0
LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQs
NzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYs
MTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDU2LDExMCwxMTcsMTA5LDExMiwxMTcsMTEwLDk5LDExNiw3MywxMTksNjksNjksMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTEwLDExNywxMDksMTEyLDExNywxMTAsOTksMTE2LDcz
LDk5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDEwOSwxMDEsMTE1LDEx
NSw5NywxMDMsMTAxLDExNSw3MywxMTksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUs
NDksNTYsMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywxMDEsMTE1LDczLDk5LDY5LDY5LDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDEwNSwxMTEsMTE1LDk1LDk4LDk3LDExNSwxMDEsNjks
MCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTA1LDExMSwxMTUsOTUsOTgs
OTcsMTE1LDEwMSw1NSwxMDIsOTcsMTA1LDEwOCwxMTcsMTE0LDEwMSw2OSwwLDAsMCwwLDAsMCww
LDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSwxMTAsMTE3LDEwOSw5NSwxMTIsMTE3LDExNiw3Mywx
MTksNzgsODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5
NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5
LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjks
NjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSwxMTAsMTE3LDEwOSw5NSwx
MTIsMTE3LDExNiw3Myw5OSw3OCw4Myw5NSw0OSw1NywxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEw
OSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3Myw5OSw3OCw4
Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTks
NjksNjksNjksNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSwxMTAs
MTE3LDEwOSw5NSwxMDMsMTAxLDExNiw3MywxMTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYs
MTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwx
MTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUs
MTE2LDExNSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5
NSw5NSw0OSw1NSwxMTAsMTE3LDEwOSw5NSwxMDMsMTAxLDExNiw3Myw5OSw3OCw4Myw5NSw0OSw1
NywxMDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDEx
NCw5NywxMTYsMTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDEx
NiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksNjksNjksMCwwLDAsMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw1NSw5OSwxMTEsMTA4LDEwOCw5NywxMTYsMTAxLDczLDExOSw2
OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDk5LDExMSwxMDgsMTA4LDk3
LDExNiwxMDEsNzMsOTksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSw5
OSwxMTEsMTAwLDEwMSw5OSwxMTgsMTE2LDczLDExOSw5OSw0OSw0OCw5NSwxMDksOTgsMTE1LDEx
Niw5NywxMTYsMTAxLDk1LDExNiw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1
LDk1LDQ5LDU1LDk5LDExMSwxMDAsMTAxLDk5LDExOCwxMTYsNzMsOTksOTksNDksNDgsOTUsMTA5
LDk4LDExNSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgz
LDExNiw1MSw5NSw5NSw0OSw1NSw5OSwxMTEsMTAwLDEwMSw5OSwxMTgsMTE2LDczLDY4LDExNSw5
OSw0OSw0OCw5NSwxMDksOTgsMTE1LDExNiw5NywxMTYsMTAxLDk1LDExNiw2OSw2OSwwLDAsMCww
LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSw5OSwxMTEsMTAwLDEwMSw5OSwxMTgsMTE2
LDczLDY4LDEwNSw5OSw0OSw0OCw5NSwxMDksOTgsMTE1LDExNiw5NywxMTYsMTAxLDk1LDExNiw2
OSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NCwxMDgsMTExLDk5LDk3
LDEwOCwxMDEsNTMsMTAyLDk3LDk5LDEwMSwxMTYsNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDU0LDEwOCwxMTEsOTksOTcsMTA4LDEwMSw1Myw5NSw5NSwxMDUsMTA5LDExMiw2OSwwLDAs
MCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTMsOTksMTE2LDEyMSwxMTIsMTAxLDczLDExOSw2OSw2
OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Myw5OSwxMTYsMTIxLDExMiwx
MDEsNzMsOTksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTAsNDgs
OTUsOTUsMTE2LDEwNSwxMDksMTAxLDk1LDEwMywxMDEsMTE2LDk1LDk5LDk1LDExNSwxMTYsMTEx
LDExNCw5NywxMDMsMTAxLDczLDExOSw2OSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5
NSw5NSw0OSw1MCw0OCw5NSw5NSwxMTYsMTA1LDEwOSwxMDEsOTUsMTAzLDEwMSwxMTYsOTUsOTks
OTUsMTE1LDExNiwxMTEsMTE0LDk3LDEwMywxMDEsNzMsOTksNjksNjksMCwwLDAsMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTcsOTUsOTUsMTA1LDExMSwxMTUsMTE2LDExNCwxMDEs
OTcsMTA5LDk1LDk5LDk3LDExNiwxMDEsMTAzLDExMSwxMTQsMTIxLDY5LDAsMCwwLDc4LDgzLDEx
Niw1MSw5NSw5NSw0OSw0OSw1NSw5NSw5NSwxMTksMTA1LDEwMCwxMDEsMTEwLDk1LDEwMiwxMTQs
MTExLDEwOSw5NSwxMTcsMTE2LDEwMiw1Niw3Myw3NiwxMDYsNTEsNTAsNjksNjksNjksMCwwLDAs
MCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDU0LDk1LDk1LDExMCw5NywxMTQsMTE0LDEx
MSwxMTksOTUsMTE2LDExMSw5NSwxMTcsMTE2LDEwMiw1Niw3Myw3NiwxMDYsNTEsNTAsNjksNjks
NjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTMsOTgsOTcsMTE1LDEw
NSw5OSw5NSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsNzMsMTE5LDc4LDgzLDk1
LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjks
NjksNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Myw5OCw5
NywxMTUsMTA1LDk5LDk1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw3Myw5OSw3
OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMs
OTksNjksNjksNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1
MiwxMDEsMTE0LDExNCwxMTEsMTE0LDk1LDk5LDk3LDExNiwxMDEsMTAzLDExMSwxMTQsMTIxLDY5
LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTIsOTUsOTUsMTE1LDEw
NCw5NywxMTQsMTAxLDEwMCw5NSw5OSwxMTEsMTE3LDExMCwxMTYsNjksMCwwLDAsMCwwLDAsMCww
LDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Miw5NSw5NSwxMTAsMTE3LDEwOSw5NSwxMTIsMTE3
LDExNiw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNDksNTIsOTUsOTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsOTUsOTgsOTcsMTE1
LDEwMSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUxLDEwOSwx
MDEsMTE1LDExNSw5NywxMDMsMTAxLDExNSw5NSw5OCw5NywxMTUsMTAxLDY5LDAsNzgsODMsMTE2
LDUxLDk1LDk1LDQ5LDQ5LDUxLDk4LDk3LDExNSwxMDUsOTksOTUsMTExLDExNSwxMTYsMTE0LDEw
MSw5NywxMDksNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5
NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw0OSw1MSw5OCw5NywxMTUsMTA1LDk5LDk1LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDcz
LDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDEx
NSw3Myw5OSw2OSw2OSw2OSw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUxLDk4LDk3
LDExNSwxMDUsOTksOTUsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksNzMsMTE5LDc4LDgzLDk1
LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjks
NjksNjksNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSw5OCw5NywxMTUsMTA1LDk5
LDk1LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEw
NCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUwLDExNSwxMjEsMTE1LDExNiwxMDEsMTA5LDk1LDEw
MSwxMTQsMTE0LDExMSwxMTQsNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MCw5OSwx
MTEsMTAwLDEwMSw5OSwxMTgsMTE2LDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDc4LDgzLDExNiw1
MSw5NSw5NSw0OSw0OSw1MCw5NSw5NSwxMDAsMTExLDk1LDEwOSwxMDEsMTE1LDExNSw5NywxMDMs
MTAxLDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTE1LDExNiwxMDAs
MTExLDExNywxMTYsOTgsMTE3LDEwMiw3MywxMTksNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgz
LDExNiw1MSw5NSw5NSw0OSw0OSw0OSw5NSw5NSwxMTUsMTE2LDEwMCwxMTEsMTE3LDExNiw5OCwx
MTcsMTAyLDczLDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDks
NDksNDksOTUsOTUsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMTIsMTE3LDExNiw3MywxMTksNjks
NjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OSw5NSw5NSwxMDks
MTExLDExMCwxMDEsMTIxLDk1LDExMiwxMTcsMTE2LDczLDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAs
MCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTA5LDExMSwxMTAsMTAxLDEyMSw5
NSwxMDMsMTAxLDExNiw3MywxMTksNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5
NSw5NSw0OSw0OSw0OSw5NSw5NSwxMDksMTExLDExMCwxMDEsMTIxLDk1LDEwMywxMDEsMTE2LDcz
LDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsMTA5
LDExMSwxMTAsMTAxLDEyMSwxMTIsMTE3LDExMCw5OSwxMTYsNzMsMTE5LDc2LDk4LDQ5LDY5LDY5
LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsMTA5LDExMSwxMTAsMTAx
LDEyMSwxMTIsMTE3LDExMCw5OSwxMTYsNzMsMTE5LDc2LDk4LDQ4LDY5LDY5LDY5LDAsMCwwLDAs
MCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsMTA5LDExMSwxMTAsMTAxLDEyMSwxMTIsMTE3
LDExMCw5OSwxMTYsNzMsOTksNzYsOTgsNDksNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1
MSw5NSw5NSw0OSw0OSw0OCwxMDksMTExLDExMCwxMDEsMTIxLDExMiwxMTcsMTEwLDk5LDExNiw3
Myw5OSw3Niw5OCw0OCw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5
LDQ4LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCwwLDc4LDgz
LDExNiw1MSw5NSw5NSw0OSw0OSw0OCw5OSwxMTYsMTIxLDExMiwxMDEsOTUsOTgsOTcsMTE1LDEw
MSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCw5NSw5NSwxMTYsMTA1LDEw
OSwxMDEsOTUsMTEyLDExNywxMTYsNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDks
NDgsOTUsOTUsMTE1LDExNiwxMDAsMTA1LDExMCw5OCwxMTcsMTAyLDczLDExOSw2OSw2OSwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCw5NSw5NSwxMTUsMTE2LDEwMCwxMDUsMTEwLDk4LDEx
NywxMDIsNzMsOTksNjksNjksMCw3OCw0OSw0OCw5NSw5NSw5OSwxMjAsMTIwLDk3LDk4LDEwNSwx
MTgsNDksNTAsNDksOTUsOTUsMTE4LDEwOSwxMDUsOTUsOTksMTA4LDk3LDExNSwxMTUsOTUsMTE2
LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSw2OSwwLDAsMCw3OCw0OSw0OCw5NSw5NSw5
OSwxMjAsMTIwLDk3LDk4LDEwNSwxMTgsNDksNTAsNDgsOTUsOTUsMTE1LDEwNSw5NSw5OSwxMDgs
OTcsMTE1LDExNSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDY5LDAsMCww
LDAsNzgsNDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5LDQ5LDU1LDk1LDk1
LDk5LDEwOCw5NywxMTUsMTE1LDk1LDExNiwxMjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEs
NjksMCwwLDAsMCwwLDAsMCw3OCw0OSw0OCw5NSw5NSw5OSwxMjAsMTIwLDk3LDk4LDEwNSwxMTgs
NDksNDksNTQsOTUsOTUsMTE1LDEwNCwxMDUsMTA5LDk1LDExNiwxMjEsMTEyLDEwMSw5NSwxMDUs
MTEwLDEwMiwxMTEsNjksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDAsMjAsMCwwLDAsMCwwLDAs
NTYsMjAsMCwwLDAsMCwwLDAsNzIsMjAsMCwwLDIxNiwzMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDg4
LDIwLDAsMCwyMTYsMzEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMDQsMjAsMCwwLDIxNiwzMSwwLDAs
MCwwLDAsMCwwLDAsMCwwLDEyOCwyMCwwLDAsMzIsMzIsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIs
MjAsMCwwLDIxNiwzMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2OCwyMCwwLDAsMCwyMCwwLDAsMTky
LDIwLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMjI0LDM2LDAsMCwwLDAs
MCwwLDAsMjAsMCwwLDgsMjEsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwy
MzIsMzYsMCwwLDAsMCwwLDAsMCwyMCwwLDAsODAsMjEsMCwwLDAsMCwwLDAsMiwwLDAsMCw5Niwz
NSwwLDAsMiwwLDAsMCwyNDAsMzYsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTUyLDIxLDAsMCwwLDAs
MCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMjQ4LDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MjI0LDIxLDAsMCw0MCwzNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2LDIyLDAsMCw0MCwzNCwwLDAs
MCwwLDAsMCwwLDIwLDAsMCw2NCwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDMyLDM2LDAsMCwwLDAs
MCwwLDAsMjAsMCwwLDg4LDIyLDAsMCwwLDAsMCwwLDEsMCwwLDAsMzIsMzYsMCwwLDAsMCwwLDAs
MCwyMCwwLDAsMTEyLDIyLDAsMCwwLDAsMCwwLDEsMCwwLDAsNDAsMzYsMCwwLDAsMCwwLDAsMCwy
MCwwLDAsMTM2LDIyLDAsMCwwLDAsMCwwLDEsMCwwLDAsNDAsMzYsMCwwLDAsMCwwLDAsMCwyMCww
LDAsMTYwLDIyLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTQ0LDM3LDAs
MCwwLDgsMCwwLDAsMjAsMCwwLDIzMiwyMiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwy
LDAsMCwwLDE0NCwzNywwLDAsMCw4LDAsMCwwLDIwLDAsMCw0OCwyMywwLDAsMCwwLDAsMCwzLDAs
MCwwLDk2LDM1LDAsMCwyLDAsMCwwLDQ4LDMyLDAsMCwyLDAsMCwwLDE5MiwzNSwwLDAsMCw4LDAs
MCwwLDIwLDAsMCwxMjAsMjMsMCwwLDAsMCwwLDAsMywwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCw0
OCwzMiwwLDAsMiwwLDAsMCwyMDAsMzUsMCwwLDAsOCwwLDAsMCwwLDAsMCwxOTIsMjMsMCwwLDk2
LDM1LDAsMCwwLDAsMCwwLDAsMCwwLDAsMjE2LDIzLDAsMCw5NiwzNSwwLDAsMCwwLDAsMCwwLDIw
LDAsMCwyNDAsMjMsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCw0OCwzNiww
LDAsMiwwLDAsMCwwLDIwLDAsMCw4LDI0LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIs
MCwwLDAsNDgsMzYsMCwwLDIsMCwwLDAsMCwwLDAsMCwzMiwyNCwwLDAsMCwwLDAsMCw1NiwyNCww
LDAsMTUyLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDg4LDI0LDAsMCwwLDAsMCwwLDIsMCwwLDAs
OTYsMzUsMCwwLDIsMCwwLDAsMjE2LDMyLDAsMCwwLDAsMCwwLDAsMjAsMCwwLDE2MCwyNCwwLDAs
MCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDI0MCwzMiwwLDAsMCwwLDAsMCwwLDIw
LDAsMCwyMzIsMjQsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCw4LDMzLDAs
MCwwLDAsMCwwLDAsMjAsMCwwLDQ4LDI1LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIs
MCwwLDAsMzIsMzMsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjAsMjUsMCwwLDk2LDM1LDAsMCwwLDAs
MCwwLDAsMCwwLDAsMTQ0LDI1LDAsMCw5NiwzNSwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxNjgsMjUs
MCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAs
MCwyMCwwLDAsMjA4LDI1LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTY4
LDM2LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDI0OCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1
LDAsMCwyLDAsMCwwLDE2OCwzNiwwLDAsMiwwLDAsMCwwLDIwLDAsMCwzMiwyNiwwLDAsMCwwLDAs
MCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE2OCwzNiwwLDAsMiwwLDAsMCwwLDAsMCwwLDcy
LDI2LDAsMCwyNCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDk2LDI2LDAsMCw5NiwzNSwwLDAsMCww
LDAsMCwwLDIwLDAsMCwxMjAsMjYsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAs
MCwxMzYsMzcsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMTQ0LDI2LDAsMCwwLDAsMCwwLDIsMCwwLDAs
OTYsMzUsMCwwLDIsMCwwLDAsMTM2LDM3LDAsMCwyLDAsMCwwLDAsMCwwLDAsMTY4LDI2LDAsMCww
LDAsMCwwLDIwOCwyNiwwLDAsMCwwLDAsMCwyNDgsMjYsMCwwLDE3NiwzNiwwLDAsMCwwLDAsMCww
LDAsMCwwLDI0LDI3LDAsMCw2NCwzNSwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDI3LDAsMCw2NCwz
NSwwLDAsMCwwLDAsMCwwLDAsMCwwLDEwNCwyNywwLDAsMCwwLDAsMCwxNjAsMjcsMCwwLDAsMCww
LDAsMjE2LDI3LDAsMCwwLDAsMCwwLDI0OCwyNywwLDAsMCwwLDAsMCwyNCwyOCwwLDAsMCwwLDAs
MCw1NiwyOCwwLDAsMCwwLDAsMCw4OCwyOCwwLDAsMCwyMCwwLDAsMTEyLDI4LDAsMCwwLDAsMCww
LDEsMCwwLDAsMTg0LDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMjAsMCwwLDE2MCwyOCwwLDAsMCww
LDAsMCwxLDAsMCwwLDIwMCwzMiwwLDAsMywyNDQsMjU1LDI1NSwwLDIwLDAsMCwyMDgsMjgsMCww
LDAsMCwwLDAsMSwwLDAsMCwxODQsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwyMCwwLDAsMCwyOSww
LDAsMCwwLDAsMCwxLDAsMCwwLDIwMCwzMiwwLDAsMywyNDQsMjU1LDI1NSwwLDAsMCwwLDQ4LDI5
LDAsMCwwLDMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzIsMjksMCwwLDAsMCwwLDAsOTYsMjksMCww
LDE2LDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTIwLDI5LDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAs
MCwwLDAsMTUyLDI5LDAsMCw4LDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTg0LDI5LDAsMCwwLDAs
MCwwLDIxNiwyOSwwLDAsMCwwLDAsMCwyNDgsMjksMCwwLDAsMCwwLDAsMjQsMzAsMCwwLDAsMjAs
MCwwLDU2LDMwLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTI4LDM3LDAs
MCwyLDAsMCwwLDAsMjAsMCwwLDg4LDMwLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIs
MCwwLDAsMTI4LDM3LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDEyMCwzMCwwLDAsMCwwLDAsMCwyLDAs
MCwwLDk2LDM1LDAsMCwyLDAsMCwwLDEyOCwzNywwLDAsMiwwLDAsMCwwLDIwLDAsMCwxNTIsMzAs
MCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxMjgsMzcsMCwwLDIsMCwwLDAs
MCwwLDAsMCwxODQsMzAsMCwwLDAsMCwwLDAsMjA4LDMwLDAsMCwwLDAsMCwwLDIzMiwzMCwwLDAs
MCwwLDAsMCwwLDMxLDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQsMzEsMCwwLDgsMzYs
MCwwLDAsMCwwLDAsMCwwLDAsMCw0OCwzMSwwLDAsMjE2LDM3LDAsMCwwLDAsMCwwLDAsMCwwLDAs
ODgsMzEsMCwwLDIxNiwzNywwLDAsMCwwLDAsMCwwLDAsMCwwLDEyOCwzMSwwLDAsMjMyLDM3LDAs
MCwwLDAsMCwwLDAsMCwwLDAsMTY4LDMxLDAsMCwyMDgsMzEsMCwwLDAsMCwwLDAsMjU1LDI1NSwy
NTUsMjU1LDAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1LDAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1LDAs
MCwwLDAsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsOTcsOTgsOTksMTAwLDEwMSwxMDIs
NjUsNjYsNjcsNjgsNjksNzAsMTIwLDg4LDQzLDQ1LDExMiw4MCwxMDUsNzMsMTEwLDc4LDAsMCww
LDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX05PTkUsIFJ1bnRpbWUuR0xPQkFMX0JBU0UpCi12YXIg
dGVtcERvdWJsZVB0ciA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkoYWxsb2NhdGUoMTIsICJpOCIsIEFM
TE9DX1NUQVRJQyksIDgpOwotYXNzZXJ0KHRlbXBEb3VibGVQdHIgJSA4ID09IDApOwotZnVuY3Rp
b24gY29weVRlbXBGbG9hdChwdHIpIHsgLy8gZnVuY3Rpb25zLCBiZWNhdXNlIGlubGluaW5nIHRo
aXMgY29kZSBpbmNyZWFzZXMgY29kZSBzaXplIHRvbyBtdWNoCi0gIEhFQVA4W3RlbXBEb3VibGVQ
dHJdID0gSEVBUDhbcHRyXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cisxXSA9IEhFQVA4W3B0cisx
XTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cisyXSA9IEhFQVA4W3B0cisyXTsKLSAgSEVBUDhbdGVt
cERvdWJsZVB0ciszXSA9IEhFQVA4W3B0ciszXTsKLX0KLWZ1bmN0aW9uIGNvcHlUZW1wRG91Ymxl
KHB0cikgewotICBIRUFQOFt0ZW1wRG91YmxlUHRyXSA9IEhFQVA4W3B0cl07Ci0gIEhFQVA4W3Rl
bXBEb3VibGVQdHIrMV0gPSBIRUFQOFtwdHIrMV07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrMl0g
PSBIRUFQOFtwdHIrMl07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrM10gPSBIRUFQOFtwdHIrM107
Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrNF0gPSBIRUFQOFtwdHIrNF07Ci0gIEhFQVA4W3RlbXBE
b3VibGVQdHIrNV0gPSBIRUFQOFtwdHIrNV07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrNl0gPSBI
RUFQOFtwdHIrNl07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrN10gPSBIRUFQOFtwdHIrN107Ci19
Ci0gIGZ1bmN0aW9uIF9hdGV4aXQoZnVuYywgYXJnKSB7Ci0gICAgICBfX0FURVhJVF9fLnVuc2hp
ZnQoeyBmdW5jOiBmdW5jLCBhcmc6IGFyZyB9KTsKLSAgICB9dmFyIF9fX2N4YV9hdGV4aXQ9X2F0
ZXhpdDsKLSAgZnVuY3Rpb24gX2xsdm1fdW11bF93aXRoX292ZXJmbG93X2kzMih4LCB5KSB7Ci0g
ICAgICB4ID0geD4+PjA7Ci0gICAgICB5ID0geT4+PjA7Ci0gICAgICByZXR1cm4gKChhc21bInNl
dFRlbXBSZXQwIl0oeCp5ID4gNDI5NDk2NzI5NSksKHgqeSk+Pj4wKXwwKTsKLSAgICB9Ci0gIGZ1
bmN0aW9uIF9fX2d4eF9wZXJzb25hbGl0eV92MCgpIHsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fZXhp
dChzdGF0dXMpIHsKLSAgICAgIC8vIHZvaWQgX2V4aXQoaW50IHN0YXR1cyk7Ci0gICAgICAvLyBo
dHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9l
eGl0Lmh0bWwKLSAgICAgIE1vZHVsZS5wcmludCgnZXhpdCgnICsgc3RhdHVzICsgJykgY2FsbGVk
Jyk7Ci0gICAgICBNb2R1bGVbJ2V4aXQnXShzdGF0dXMpOwotICAgIH1mdW5jdGlvbiBfZXhpdChz
dGF0dXMpIHsKLSAgICAgIF9fZXhpdChzdGF0dXMpOwotICAgIH1mdW5jdGlvbiBfX1pTdDl0ZXJt
aW5hdGV2KCkgewotICAgICAgX2V4aXQoLTEyMzQpOwotICAgIH0KLSAgTW9kdWxlWyJfbWVtY3B5
Il0gPSBfbWVtY3B5O3ZhciBfbGx2bV9tZW1jcHlfcDBpOF9wMGk4X2kzMj1fbWVtY3B5OwotICB2
YXIgX2xvZz1NYXRoLmxvZzsKLSAgdmFyIF9mbG9vcj1NYXRoLmZsb29yOwotICB2YXIgY3Rsel9p
OCA9IGFsbG9jYXRlKFs4LDcsNiw2LDUsNSw1LDUsNCw0LDQsNCw0LDQsNCw0LDMsMywzLDMsMywz
LDMsMywzLDMsMywzLDMsMywzLDMsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIs
MiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RBVElDKTsgCi0gIE1vZHVsZVsiX2xsdm1fY3Rs
el9pMzIiXSA9IF9sbHZtX2N0bHpfaTMyOwotICBmdW5jdGlvbiBfX1pTdDE4dW5jYXVnaHRfZXhj
ZXB0aW9udigpIHsgLy8gc3RkOjp1bmNhdWdodF9leGNlcHRpb24oKQotICAgICAgcmV0dXJuICEh
X19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYudW5jYXVnaHRfZXhjZXB0aW9uOwotICAgIH1mdW5j
dGlvbiBfX19jeGFfYmVnaW5fY2F0Y2gocHRyKSB7Ci0gICAgICBfX1pTdDE4dW5jYXVnaHRfZXhj
ZXB0aW9udi51bmNhdWdodF9leGNlcHRpb24tLTsKLSAgICAgIHJldHVybiBwdHI7Ci0gICAgfQot
ICBmdW5jdGlvbiBfbGx2bV9laF9leGNlcHRpb24oKSB7Ci0gICAgICByZXR1cm4gSEVBUDMyWygo
X2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4YV9m
cmVlX2V4Y2VwdGlvbihwdHIpIHsKLSAgICAgIHRyeSB7Ci0gICAgICAgIHJldHVybiBfZnJlZShw
dHIpOwotICAgICAgfSBjYXRjaChlKSB7IC8vIFhYWCBGSVhNRQotICAgICAgfQotICAgIH1mdW5j
dGlvbiBfX19jeGFfZW5kX2NhdGNoKCkgewotICAgICAgaWYgKF9fX2N4YV9lbmRfY2F0Y2gucmV0
aHJvd24pIHsKLSAgICAgICAgX19fY3hhX2VuZF9jYXRjaC5yZXRocm93biA9IGZhbHNlOwotICAg
ICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICAvLyBDbGVhciBzdGF0ZSBmbGFnLgotICAgICAg
YXNtWydzZXRUaHJldyddKDApOwotICAgICAgLy8gQ2xlYXIgdHlwZS4KLSAgICAgIEhFQVAzMlso
KChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoNCkpPj4yKV09MAotICAgICAgLy8gQ2FsbCBkZXN0
cnVjdG9yIGlmIG9uZSBpcyByZWdpc3RlcmVkIHRoZW4gY2xlYXIgaXQuCi0gICAgICB2YXIgcHRy
ID0gSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXTsKLSAgICAgIHZhciBkZXN0
cnVjdG9yID0gSEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg4KSk+PjIpXTsKLSAg
ICAgIGlmIChkZXN0cnVjdG9yKSB7Ci0gICAgICAgIFJ1bnRpbWUuZHluQ2FsbCgndmknLCBkZXN0
cnVjdG9yLCBbcHRyXSk7Ci0gICAgICAgIEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVm
KSsoOCkpPj4yKV09MAotICAgICAgfQotICAgICAgLy8gRnJlZSBwdHIgaWYgaXQgaXNuJ3QgbnVs
bC4KLSAgICAgIGlmIChwdHIpIHsKLSAgICAgICAgX19fY3hhX2ZyZWVfZXhjZXB0aW9uKHB0cik7
Ci0gICAgICAgIEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV09MAotICAgICAg
fQotICAgIH1mdW5jdGlvbiBfX19jeGFfcmV0aHJvdygpIHsKLSAgICAgIF9fX2N4YV9lbmRfY2F0
Y2gucmV0aHJvd24gPSB0cnVlOwotICAgICAgdGhyb3cgSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0
aW9uLmJ1Zik+PjIpXSArICIgLSBFeGNlcHRpb24gY2F0Y2hpbmcgaXMgZGlzYWJsZWQsIHRoaXMg
ZXhjZXB0aW9uIGNhbm5vdCBiZSBjYXVnaHQuIENvbXBpbGUgd2l0aCAtcyBESVNBQkxFX0VYQ0VQ
VElPTl9DQVRDSElORz0wIG9yIERJU0FCTEVfRVhDRVBUSU9OX0NBVENISU5HPTIgdG8gY2F0Y2gu
Ijs7Ci0gICAgfQotICBNb2R1bGVbIl9tZW1tb3ZlIl0gPSBfbWVtbW92ZTt2YXIgX2xsdm1fbWVt
bW92ZV9wMGk4X3AwaThfaTMyPV9tZW1tb3ZlOwotICBNb2R1bGVbIl9tZW1zZXQiXSA9IF9tZW1z
ZXQ7dmFyIF9sbHZtX21lbXNldF9wMGk4X2k2ND1fbWVtc2V0OwotICBmdW5jdGlvbiBfbGx2bV9s
aWZldGltZV9zdGFydCgpIHt9Ci0gIGZ1bmN0aW9uIF9sbHZtX2xpZmV0aW1lX2VuZCgpIHt9Ci0g
IGZ1bmN0aW9uIF9wdGhyZWFkX211dGV4X2xvY2soKSB7fQotICBmdW5jdGlvbiBfcHRocmVhZF9t
dXRleF91bmxvY2soKSB7fQotICBmdW5jdGlvbiBfX19jeGFfZ3VhcmRfYWNxdWlyZSh2YXJpYWJs
ZSkgewotICAgICAgaWYgKCFIRUFQOFsodmFyaWFibGUpXSkgeyAvLyBpZ25vcmUgU0FGRV9IRUFQ
IHN0dWZmIGJlY2F1c2UgbGx2bSBtaXhlcyBpNjQgYW5kIGk4IGhlcmUKLSAgICAgICAgSEVBUDhb
KHZhcmlhYmxlKV09MTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgICB9Ci0gICAgICByZXR1cm4g
MDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4YV9ndWFyZF9yZWxlYXNlKCkge30KLSAgZnVuY3Rp
b24gX3B0aHJlYWRfY29uZF9icm9hZGNhc3QoKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0g
IGZ1bmN0aW9uIF9wdGhyZWFkX2NvbmRfd2FpdCgpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0K
LSAgZnVuY3Rpb24gX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbihzaXplKSB7Ci0gICAgICByZXR1
cm4gX21hbGxvYyhzaXplKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4YV9pc19udW1iZXJfdHlw
ZSh0eXBlKSB7Ci0gICAgICB2YXIgaXNOdW1iZXIgPSBmYWxzZTsKLSAgICAgIHRyeSB7IGlmICh0
eXBlID09IF9fWlRJaSkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsg
aWYgKHR5cGUgPT0gX19aVElqKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0
cnkgeyBpZiAodHlwZSA9PSBfX1pUSWwpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAg
ICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJbSkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7
fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEl4KSBpc051bWJlciA9IHRydWUgfSBjYXRj
aChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSXkpIGlzTnVtYmVyID0gdHJ1ZSB9
IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJZikgaXNOdW1iZXIgPSB0
cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVElkKSBpc051bWJl
ciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWUpIGlz
TnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJ
YykgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0g
X19aVElhKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlw
ZSA9PSBfX1pUSWgpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlm
ICh0eXBlID09IF9fWlRJcykgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5
IHsgaWYgKHR5cGUgPT0gX19aVEl0KSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAg
ICByZXR1cm4gaXNOdW1iZXI7Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV9kb2VzX2luaGVyaXQoZGVm
aW5pdGVUeXBlLCBwb3NzaWJpbGl0eVR5cGUsIHBvc3NpYmlsaXR5KSB7Ci0gICAgICBpZiAocG9z
c2liaWxpdHkgPT0gMCkgcmV0dXJuIGZhbHNlOwotICAgICAgaWYgKHBvc3NpYmlsaXR5VHlwZSA9
PSAwIHx8IHBvc3NpYmlsaXR5VHlwZSA9PSBkZWZpbml0ZVR5cGUpCi0gICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgdmFyIHBvc3NpYmlsaXR5X3R5cGVfaW5mbzsKLSAgICAgIGlmIChfX19jeGFf
aXNfbnVtYmVyX3R5cGUocG9zc2liaWxpdHlUeXBlKSkgewotICAgICAgICBwb3NzaWJpbGl0eV90
eXBlX2luZm8gPSBwb3NzaWJpbGl0eVR5cGU7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB2YXIg
cG9zc2liaWxpdHlfdHlwZV9pbmZvQWRkciA9IEhFQVAzMlsoKHBvc3NpYmlsaXR5VHlwZSk+PjIp
XSAtIDg7Ci0gICAgICAgIHBvc3NpYmlsaXR5X3R5cGVfaW5mbyA9IEhFQVAzMlsoKHBvc3NpYmls
aXR5X3R5cGVfaW5mb0FkZHIpPj4yKV07Ci0gICAgICB9Ci0gICAgICBzd2l0Y2ggKHBvc3NpYmls
aXR5X3R5cGVfaW5mbykgewotICAgICAgY2FzZSAwOiAvLyBwb3NzaWJpbGl0eSBpcyBhIHBvaW50
ZXIKLSAgICAgICAgLy8gU2VlIGlmIGRlZmluaXRlIHR5cGUgaXMgYSBwb2ludGVyCi0gICAgICAg
IHZhciBkZWZpbml0ZV90eXBlX2luZm9BZGRyID0gSEVBUDMyWygoZGVmaW5pdGVUeXBlKT4+Mild
IC0gODsKLSAgICAgICAgdmFyIGRlZmluaXRlX3R5cGVfaW5mbyA9IEhFQVAzMlsoKGRlZmluaXRl
X3R5cGVfaW5mb0FkZHIpPj4yKV07Ci0gICAgICAgIGlmIChkZWZpbml0ZV90eXBlX2luZm8gPT0g
MCkgewotICAgICAgICAgIC8vIEFsc28gYSBwb2ludGVyOyBjb21wYXJlIGJhc2UgdHlwZXMgb2Yg
cG9pbnRlcnMKLSAgICAgICAgICB2YXIgZGVmUG9pbnRlckJhc2VBZGRyID0gZGVmaW5pdGVUeXBl
Kzg7Ci0gICAgICAgICAgdmFyIGRlZlBvaW50ZXJCYXNlVHlwZSA9IEhFQVAzMlsoKGRlZlBvaW50
ZXJCYXNlQWRkcik+PjIpXTsKLSAgICAgICAgICB2YXIgcG9zc1BvaW50ZXJCYXNlQWRkciA9IHBv
c3NpYmlsaXR5VHlwZSs4OwotICAgICAgICAgIHZhciBwb3NzUG9pbnRlckJhc2VUeXBlID0gSEVB
UDMyWygocG9zc1BvaW50ZXJCYXNlQWRkcik+PjIpXTsKLSAgICAgICAgICByZXR1cm4gX19fY3hh
X2RvZXNfaW5oZXJpdChkZWZQb2ludGVyQmFzZVR5cGUsIHBvc3NQb2ludGVyQmFzZVR5cGUsIHBv
c3NpYmlsaXR5KTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBv
bmUgcG9pbnRlciBhbmQgb25lIG5vbi1wb2ludGVyCi0gICAgICBjYXNlIDE6IC8vIGNsYXNzIHdp
dGggbm8gYmFzZSBjbGFzcwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICBjYXNlIDI6IC8v
IGNsYXNzIHdpdGggYmFzZSBjbGFzcwotICAgICAgICB2YXIgcGFyZW50VHlwZUFkZHIgPSBwb3Nz
aWJpbGl0eVR5cGUgKyA4OwotICAgICAgICB2YXIgcGFyZW50VHlwZSA9IEhFQVAzMlsoKHBhcmVu
dFR5cGVBZGRyKT4+MildOwotICAgICAgICByZXR1cm4gX19fY3hhX2RvZXNfaW5oZXJpdChkZWZp
bml0ZVR5cGUsIHBhcmVudFR5cGUsIHBvc3NpYmlsaXR5KTsKLSAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsgLy8gc29tZSB1bmVuY291bnRlcmVkIHR5cGUKLSAgICAgIH0KLSAg
ICB9Ci0gIGZ1bmN0aW9uIF9fX3Jlc3VtZUV4Y2VwdGlvbihwdHIpIHsKLSAgICAgIGlmIChIRUFQ
MzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildID09IDApIEhFQVAzMlsoKF9sbHZtX2Vo
X2V4Y2VwdGlvbi5idWYpPj4yKV09cHRyOwotICAgICAgdGhyb3cgcHRyICsgIiAtIEV4Y2VwdGlv
biBjYXRjaGluZyBpcyBkaXNhYmxlZCwgdGhpcyBleGNlcHRpb24gY2Fubm90IGJlIGNhdWdodC4g
Q29tcGlsZSB3aXRoIC1zIERJU0FCTEVfRVhDRVBUSU9OX0NBVENISU5HPTAgb3IgRElTQUJMRV9F
WENFUFRJT05fQ0FUQ0hJTkc9MiB0byBjYXRjaC4iOzsKLSAgICB9ZnVuY3Rpb24gX19fY3hhX2Zp
bmRfbWF0Y2hpbmdfY2F0Y2godGhyb3duLCB0aHJvd250eXBlKSB7Ci0gICAgICBpZiAodGhyb3du
ID09IC0xKSB0aHJvd24gPSBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildOwot
ICAgICAgaWYgKHRocm93bnR5cGUgPT0gLTEpIHRocm93bnR5cGUgPSBIRUFQMzJbKCgoX2xsdm1f
ZWhfZXhjZXB0aW9uLmJ1ZikrKDQpKT4+MildOwotICAgICAgdmFyIHR5cGVBcnJheSA9IEFycmF5
LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMik7Ci0gICAgICAvLyBJZiB0aHJvd250
eXBlIGlzIGEgcG9pbnRlciwgdGhpcyBtZWFucyBhIHBvaW50ZXIgaGFzIGJlZW4KLSAgICAgIC8v
IHRocm93bi4gV2hlbiBhIHBvaW50ZXIgaXMgdGhyb3duLCBhY3R1YWxseSB3aGF0J3MgdGhyb3du
Ci0gICAgICAvLyBpcyBhIHBvaW50ZXIgdG8gdGhlIHBvaW50ZXIuIFdlJ2xsIGRlcmVmZXJlbmNl
IGl0LgotICAgICAgaWYgKHRocm93bnR5cGUgIT0gMCAmJiAhX19fY3hhX2lzX251bWJlcl90eXBl
KHRocm93bnR5cGUpKSB7Ci0gICAgICAgIHZhciB0aHJvd250eXBlSW5mb0FkZHI9IEhFQVAzMlso
KHRocm93bnR5cGUpPj4yKV0gLSA4OwotICAgICAgICB2YXIgdGhyb3dudHlwZUluZm89IEhFQVAz
MlsoKHRocm93bnR5cGVJbmZvQWRkcik+PjIpXTsKLSAgICAgICAgaWYgKHRocm93bnR5cGVJbmZv
ID09IDApCi0gICAgICAgICAgdGhyb3duID0gSEVBUDMyWygodGhyb3duKT4+MildOwotICAgICAg
fQotICAgICAgLy8gVGhlIGRpZmZlcmVudCBjYXRjaCBibG9ja3MgYXJlIGRlbm90ZWQgYnkgZGlm
ZmVyZW50IHR5cGVzLgotICAgICAgLy8gRHVlIHRvIGluaGVyaXRhbmNlLCB0aG9zZSB0eXBlcyBt
YXkgbm90IHByZWNpc2VseSBtYXRjaCB0aGUKLSAgICAgIC8vIHR5cGUgb2YgdGhlIHRocm93biBv
YmplY3QuIEZpbmQgb25lIHdoaWNoIG1hdGNoZXMsIGFuZAotICAgICAgLy8gcmV0dXJuIHRoZSB0
eXBlIG9mIHRoZSBjYXRjaCBibG9jayB3aGljaCBzaG91bGQgYmUgY2FsbGVkLgotICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0eXBlQXJyYXkubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKF9f
X2N4YV9kb2VzX2luaGVyaXQodHlwZUFycmF5W2ldLCB0aHJvd250eXBlLCB0aHJvd24pKQotICAg
ICAgICAgIHJldHVybiAoKGFzbVsic2V0VGVtcFJldDAiXSh0eXBlQXJyYXlbaV0pLHRocm93bil8
MCk7Ci0gICAgICB9Ci0gICAgICAvLyBTaG91bGRuJ3QgaGFwcGVuIHVubGVzcyB3ZSBoYXZlIGJv
Z3VzIGRhdGEgaW4gdHlwZUFycmF5Ci0gICAgICAvLyBvciBlbmNvdW50ZXIgYSB0eXBlIGZvciB3
aGljaCBlbXNjcmlwdGVuIGRvZXNuJ3QgaGF2ZSBzdWl0YWJsZQotICAgICAgLy8gdHlwZWluZm8g
ZGVmaW5lZC4gQmVzdC1lZmZvcnRzIG1hdGNoIGp1c3QgaW4gY2FzZS4KLSAgICAgIHJldHVybiAo
KGFzbVsic2V0VGVtcFJldDAiXSh0aHJvd250eXBlKSx0aHJvd24pfDApOwotICAgIH1mdW5jdGlv
biBfX19jeGFfdGhyb3cocHRyLCB0eXBlLCBkZXN0cnVjdG9yKSB7Ci0gICAgICBpZiAoIV9fX2N4
YV90aHJvdy5pbml0aWFsaXplZCkgewotICAgICAgICB0cnkgewotICAgICAgICAgIEhFQVAzMlso
KF9fWlRWTjEwX19jeHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UpPj4yKV09MDsgLy8gV29y
a2Fyb3VuZCBmb3IgbGliY3h4YWJpIGludGVncmF0aW9uIGJ1ZwotICAgICAgICB9IGNhdGNoKGUp
e30KLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBIRUFQMzJbKChfX1pUVk4xMF9fY3h4YWJpdjEx
N19fY2xhc3NfdHlwZV9pbmZvRSk+PjIpXT0xOyAvLyBXb3JrYXJvdW5kIGZvciBsaWJjeHhhYmkg
aW50ZWdyYXRpb24gYnVnCi0gICAgICAgIH0gY2F0Y2goZSl7fQotICAgICAgICB0cnkgewotICAg
ICAgICAgIEhFQVAzMlsoKF9fWlRWTjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9F
KT4+MildPTI7IC8vIFdvcmthcm91bmQgZm9yIGxpYmN4eGFiaSBpbnRlZ3JhdGlvbiBidWcKLSAg
ICAgICAgfSBjYXRjaChlKXt9Ci0gICAgICAgIF9fX2N4YV90aHJvdy5pbml0aWFsaXplZCA9IHRy
dWU7Ci0gICAgICB9Ci0gICAgICBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+Mild
PXB0cgotICAgICAgSEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg0KSk+PjIpXT10
eXBlCi0gICAgICBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDgpKT4+MildPWRl
c3RydWN0b3IKLSAgICAgIGlmICghKCJ1bmNhdWdodF9leGNlcHRpb24iIGluIF9fWlN0MTh1bmNh
dWdodF9leGNlcHRpb252KSkgewotICAgICAgICBfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udi51
bmNhdWdodF9leGNlcHRpb24gPSAxOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgX19aU3QxOHVu
Y2F1Z2h0X2V4Y2VwdGlvbnYudW5jYXVnaHRfZXhjZXB0aW9uKys7Ci0gICAgICB9Ci0gICAgICB0
aHJvdyBwdHIgKyAiIC0gRXhjZXB0aW9uIGNhdGNoaW5nIGlzIGRpc2FibGVkLCB0aGlzIGV4Y2Vw
dGlvbiBjYW5ub3QgYmUgY2F1Z2h0LiBDb21waWxlIHdpdGggLXMgRElTQUJMRV9FWENFUFRJT05f
Q0FUQ0hJTkc9MCBvciBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0yIHRvIGNhdGNoLiI7Owot
ICAgIH0KLSAgdmFyIEVSUk5PX0NPREVTPXtFUEVSTToxLEVOT0VOVDoyLEVTUkNIOjMsRUlOVFI6
NCxFSU86NSxFTlhJTzo2LEUyQklHOjcsRU5PRVhFQzo4LEVCQURGOjksRUNISUxEOjEwLEVBR0FJ
TjoxMSxFV09VTERCTE9DSzoxMSxFTk9NRU06MTIsRUFDQ0VTOjEzLEVGQVVMVDoxNCxFTk9UQkxL
OjE1LEVCVVNZOjE2LEVFWElTVDoxNyxFWERFVjoxOCxFTk9ERVY6MTksRU5PVERJUjoyMCxFSVNE
SVI6MjEsRUlOVkFMOjIyLEVORklMRToyMyxFTUZJTEU6MjQsRU5PVFRZOjI1LEVUWFRCU1k6MjYs
RUZCSUc6MjcsRU5PU1BDOjI4LEVTUElQRToyOSxFUk9GUzozMCxFTUxJTks6MzEsRVBJUEU6MzIs
RURPTTozMyxFUkFOR0U6MzQsRU5PTVNHOjM1LEVJRFJNOjM2LEVDSFJORzozNyxFTDJOU1lOQzoz
OCxFTDNITFQ6MzksRUwzUlNUOjQwLEVMTlJORzo0MSxFVU5BVENIOjQyLEVOT0NTSTo0MyxFTDJI
TFQ6NDQsRURFQURMSzo0NSxFTk9MQ0s6NDYsRUJBREU6NTAsRUJBRFI6NTEsRVhGVUxMOjUyLEVO
T0FOTzo1MyxFQkFEUlFDOjU0LEVCQURTTFQ6NTUsRURFQURMT0NLOjU2LEVCRk9OVDo1NyxFTk9T
VFI6NjAsRU5PREFUQTo2MSxFVElNRTo2MixFTk9TUjo2MyxFTk9ORVQ6NjQsRU5PUEtHOjY1LEVS
RU1PVEU6NjYsRU5PTElOSzo2NyxFQURWOjY4LEVTUk1OVDo2OSxFQ09NTTo3MCxFUFJPVE86NzEs
RU1VTFRJSE9QOjc0LEVET1RET1Q6NzYsRUJBRE1TRzo3NyxFTk9UVU5JUTo4MCxFQkFERkQ6ODEs
RVJFTUNIRzo4MixFTElCQUNDOjgzLEVMSUJCQUQ6ODQsRUxJQlNDTjo4NSxFTElCTUFYOjg2LEVM
SUJFWEVDOjg3LEVOT1NZUzo4OCxFTk9URU1QVFk6OTAsRU5BTUVUT09MT05HOjkxLEVMT09QOjky
LEVPUE5PVFNVUFA6OTUsRVBGTk9TVVBQT1JUOjk2LEVDT05OUkVTRVQ6MTA0LEVOT0JVRlM6MTA1
LEVBRk5PU1VQUE9SVDoxMDYsRVBST1RPVFlQRToxMDcsRU5PVFNPQ0s6MTA4LEVOT1BST1RPT1BU
OjEwOSxFU0hVVERPV046MTEwLEVDT05OUkVGVVNFRDoxMTEsRUFERFJJTlVTRToxMTIsRUNPTk5B
Qk9SVEVEOjExMyxFTkVUVU5SRUFDSDoxMTQsRU5FVERPV046MTE1LEVUSU1FRE9VVDoxMTYsRUhP
U1RET1dOOjExNyxFSE9TVFVOUkVBQ0g6MTE4LEVJTlBST0dSRVNTOjExOSxFQUxSRUFEWToxMjAs
RURFU1RBRERSUkVROjEyMSxFTVNHU0laRToxMjIsRVBST1RPTk9TVVBQT1JUOjEyMyxFU09DS1RO
T1NVUFBPUlQ6MTI0LEVBRERSTk9UQVZBSUw6MTI1LEVORVRSRVNFVDoxMjYsRUlTQ09OTjoxMjcs
RU5PVENPTk46MTI4LEVUT09NQU5ZUkVGUzoxMjksRVVTRVJTOjEzMSxFRFFVT1Q6MTMyLEVTVEFM
RToxMzMsRU5PVFNVUDoxMzQsRU5PTUVESVVNOjEzNSxFSUxTRVE6MTM4LEVPVkVSRkxPVzoxMzks
RUNBTkNFTEVEOjE0MCxFTk9UUkVDT1ZFUkFCTEU6MTQxLEVPV05FUkRFQUQ6MTQyLEVTVFJQSVBF
OjE0M307Ci0gIHZhciBFUlJOT19NRVNTQUdFUz17MDoiU3VjY2VzcyIsMToiTm90IHN1cGVyLXVz
ZXIiLDI6Ik5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkiLDM6Ik5vIHN1Y2ggcHJvY2VzcyIsNDoi
SW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwiLDU6IkkvTyBlcnJvciIsNjoiTm8gc3VjaCBkZXZpY2Ug
b3IgYWRkcmVzcyIsNzoiQXJnIGxpc3QgdG9vIGxvbmciLDg6IkV4ZWMgZm9ybWF0IGVycm9yIiw5
OiJCYWQgZmlsZSBudW1iZXIiLDEwOiJObyBjaGlsZHJlbiIsMTE6Ik5vIG1vcmUgcHJvY2Vzc2Vz
IiwxMjoiTm90IGVub3VnaCBjb3JlIiwxMzoiUGVybWlzc2lvbiBkZW5pZWQiLDE0OiJCYWQgYWRk
cmVzcyIsMTU6IkJsb2NrIGRldmljZSByZXF1aXJlZCIsMTY6Ik1vdW50IGRldmljZSBidXN5Iiwx
NzoiRmlsZSBleGlzdHMiLDE4OiJDcm9zcy1kZXZpY2UgbGluayIsMTk6Ik5vIHN1Y2ggZGV2aWNl
IiwyMDoiTm90IGEgZGlyZWN0b3J5IiwyMToiSXMgYSBkaXJlY3RvcnkiLDIyOiJJbnZhbGlkIGFy
Z3VtZW50IiwyMzoiVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0iLDI0OiJUb28gbWFueSBv
cGVuIGZpbGVzIiwyNToiTm90IGEgdHlwZXdyaXRlciIsMjY6IlRleHQgZmlsZSBidXN5IiwyNzoi
RmlsZSB0b28gbGFyZ2UiLDI4OiJObyBzcGFjZSBsZWZ0IG9uIGRldmljZSIsMjk6IklsbGVnYWwg
c2VlayIsMzA6IlJlYWQgb25seSBmaWxlIHN5c3RlbSIsMzE6IlRvbyBtYW55IGxpbmtzIiwzMjoi
QnJva2VuIHBpcGUiLDMzOiJNYXRoIGFyZyBvdXQgb2YgZG9tYWluIG9mIGZ1bmMiLDM0OiJNYXRo
IHJlc3VsdCBub3QgcmVwcmVzZW50YWJsZSIsMzU6Ik5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBl
IiwzNjoiSWRlbnRpZmllciByZW1vdmVkIiwzNzoiQ2hhbm5lbCBudW1iZXIgb3V0IG9mIHJhbmdl
IiwzODoiTGV2ZWwgMiBub3Qgc3luY2hyb25pemVkIiwzOToiTGV2ZWwgMyBoYWx0ZWQiLDQwOiJM
ZXZlbCAzIHJlc2V0Iiw0MToiTGluayBudW1iZXIgb3V0IG9mIHJhbmdlIiw0MjoiUHJvdG9jb2wg
ZHJpdmVyIG5vdCBhdHRhY2hlZCIsNDM6Ik5vIENTSSBzdHJ1Y3R1cmUgYXZhaWxhYmxlIiw0NDoi
TGV2ZWwgMiBoYWx0ZWQiLDQ1OiJEZWFkbG9jayBjb25kaXRpb24iLDQ2OiJObyByZWNvcmQgbG9j
a3MgYXZhaWxhYmxlIiw1MDoiSW52YWxpZCBleGNoYW5nZSIsNTE6IkludmFsaWQgcmVxdWVzdCBk
ZXNjcmlwdG9yIiw1MjoiRXhjaGFuZ2UgZnVsbCIsNTM6Ik5vIGFub2RlIiw1NDoiSW52YWxpZCBy
ZXF1ZXN0IGNvZGUiLDU1OiJJbnZhbGlkIHNsb3QiLDU2OiJGaWxlIGxvY2tpbmcgZGVhZGxvY2sg
ZXJyb3IiLDU3OiJCYWQgZm9udCBmaWxlIGZtdCIsNjA6IkRldmljZSBub3QgYSBzdHJlYW0iLDYx
OiJObyBkYXRhIChmb3Igbm8gZGVsYXkgaW8pIiw2MjoiVGltZXIgZXhwaXJlZCIsNjM6Ik91dCBv
ZiBzdHJlYW1zIHJlc291cmNlcyIsNjQ6Ik1hY2hpbmUgaXMgbm90IG9uIHRoZSBuZXR3b3JrIiw2
NToiUGFja2FnZSBub3QgaW5zdGFsbGVkIiw2NjoiVGhlIG9iamVjdCBpcyByZW1vdGUiLDY3OiJU
aGUgbGluayBoYXMgYmVlbiBzZXZlcmVkIiw2ODoiQWR2ZXJ0aXNlIGVycm9yIiw2OToiU3Jtb3Vu
dCBlcnJvciIsNzA6IkNvbW11bmljYXRpb24gZXJyb3Igb24gc2VuZCIsNzE6IlByb3RvY29sIGVy
cm9yIiw3NDoiTXVsdGlob3AgYXR0ZW1wdGVkIiw3NjoiQ3Jvc3MgbW91bnQgcG9pbnQgKG5vdCBy
ZWFsbHkgZXJyb3IpIiw3NzoiVHJ5aW5nIHRvIHJlYWQgdW5yZWFkYWJsZSBtZXNzYWdlIiw4MDoi
R2l2ZW4gbG9nLiBuYW1lIG5vdCB1bmlxdWUiLDgxOiJmLmQuIGludmFsaWQgZm9yIHRoaXMgb3Bl
cmF0aW9uIiw4MjoiUmVtb3RlIGFkZHJlc3MgY2hhbmdlZCIsODM6IkNhbiAgIGFjY2VzcyBhIG5l
ZWRlZCBzaGFyZWQgbGliIiw4NDoiQWNjZXNzaW5nIGEgY29ycnVwdGVkIHNoYXJlZCBsaWIiLDg1
OiIubGliIHNlY3Rpb24gaW4gYS5vdXQgY29ycnVwdGVkIiw4NjoiQXR0ZW1wdGluZyB0byBsaW5r
IGluIHRvbyBtYW55IGxpYnMiLDg3OiJBdHRlbXB0aW5nIHRvIGV4ZWMgYSBzaGFyZWQgbGlicmFy
eSIsODg6IkZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCIsOTA6IkRpcmVjdG9yeSBub3QgZW1wdHki
LDkxOiJGaWxlIG9yIHBhdGggbmFtZSB0b28gbG9uZyIsOTI6IlRvbyBtYW55IHN5bWJvbGljIGxp
bmtzIiw5NToiT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdHJhbnNwb3J0IGVuZHBvaW50Iiw5
NjoiUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQiLDEwNDoiQ29ubmVjdGlvbiByZXNldCBi
eSBwZWVyIiwxMDU6Ik5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUiLDEwNjoiQWRkcmVzcyBmYW1p
bHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbCBmYW1pbHkiLDEwNzoiUHJvdG9jb2wgd3Jvbmcg
dHlwZSBmb3Igc29ja2V0IiwxMDg6IlNvY2tldCBvcGVyYXRpb24gb24gbm9uLXNvY2tldCIsMTA5
OiJQcm90b2NvbCBub3QgYXZhaWxhYmxlIiwxMTA6IkNhbid0IHNlbmQgYWZ0ZXIgc29ja2V0IHNo
dXRkb3duIiwxMTE6IkNvbm5lY3Rpb24gcmVmdXNlZCIsMTEyOiJBZGRyZXNzIGFscmVhZHkgaW4g
dXNlIiwxMTM6IkNvbm5lY3Rpb24gYWJvcnRlZCIsMTE0OiJOZXR3b3JrIGlzIHVucmVhY2hhYmxl
IiwxMTU6Ik5ldHdvcmsgaW50ZXJmYWNlIGlzIG5vdCBjb25maWd1cmVkIiwxMTY6IkNvbm5lY3Rp
b24gdGltZWQgb3V0IiwxMTc6Ikhvc3QgaXMgZG93biIsMTE4OiJIb3N0IGlzIHVucmVhY2hhYmxl
IiwxMTk6IkNvbm5lY3Rpb24gYWxyZWFkeSBpbiBwcm9ncmVzcyIsMTIwOiJTb2NrZXQgYWxyZWFk
eSBjb25uZWN0ZWQiLDEyMToiRGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZCIsMTIyOiJNZXNz
YWdlIHRvbyBsb25nIiwxMjM6IlVua25vd24gcHJvdG9jb2wiLDEyNDoiU29ja2V0IHR5cGUgbm90
IHN1cHBvcnRlZCIsMTI1OiJBZGRyZXNzIG5vdCBhdmFpbGFibGUiLDEyNjoiQ29ubmVjdGlvbiBy
ZXNldCBieSBuZXR3b3JrIiwxMjc6IlNvY2tldCBpcyBhbHJlYWR5IGNvbm5lY3RlZCIsMTI4OiJT
b2NrZXQgaXMgbm90IGNvbm5lY3RlZCIsMTI5OiJUb28gbWFueSByZWZlcmVuY2VzIiwxMzE6IlRv
byBtYW55IHVzZXJzIiwxMzI6IlF1b3RhIGV4Y2VlZGVkIiwxMzM6IlN0YWxlIGZpbGUgaGFuZGxl
IiwxMzQ6Ik5vdCBzdXBwb3J0ZWQiLDEzNToiTm8gbWVkaXVtIChpbiB0YXBlIGRyaXZlKSIsMTM4
OiJJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UiLDEzOToiVmFsdWUgdG9vIGxhcmdlIGZvciBkZWZpbmVk
IGRhdGEgdHlwZSIsMTQwOiJPcGVyYXRpb24gY2FuY2VsZWQiLDE0MToiU3RhdGUgbm90IHJlY292
ZXJhYmxlIiwxNDI6IlByZXZpb3VzIG93bmVyIGRpZWQiLDE0MzoiU3RyZWFtcyBwaXBlIGVycm9y
In07Ci0gIHZhciBfX19lcnJub19zdGF0ZT0wO2Z1bmN0aW9uIF9fX3NldEVyck5vKHZhbHVlKSB7
Ci0gICAgICAvLyBGb3IgY29udmVuaWVudCBzZXR0aW5nIGFuZCByZXR1cm5pbmcgb2YgZXJybm8u
Ci0gICAgICBIRUFQMzJbKChfX19lcnJub19zdGF0ZSk+PjIpXT12YWx1ZQotICAgICAgcmV0dXJu
IHZhbHVlOwotICAgIH0KLSAgdmFyIFZGUz11bmRlZmluZWQ7Ci0gIHZhciBQQVRIPXtzcGxpdFBh
dGg6ZnVuY3Rpb24gKGZpbGVuYW1lKSB7Ci0gICAgICAgIHZhciBzcGxpdFBhdGhSZSA9IC9eKFwv
P3wpKFtcc1xTXSo/KSgoPzpcLnsxLDJ9fFteXC9dKz98KShcLlteLlwvXSp8KSkoPzpbXC9dKikk
LzsKLSAgICAgICAgcmV0dXJuIHNwbGl0UGF0aFJlLmV4ZWMoZmlsZW5hbWUpLnNsaWNlKDEpOwot
ICAgICAgfSxub3JtYWxpemVBcnJheTpmdW5jdGlvbiAocGFydHMsIGFsbG93QWJvdmVSb290KSB7
Ci0gICAgICAgIC8vIGlmIHRoZSBwYXRoIHRyaWVzIHRvIGdvIGFib3ZlIHRoZSByb290LCBgdXBg
IGVuZHMgdXAgPiAwCi0gICAgICAgIHZhciB1cCA9IDA7Ci0gICAgICAgIGZvciAodmFyIGkgPSBw
YXJ0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewotICAgICAgICAgIHZhciBsYXN0ID0gcGFy
dHNbaV07Ci0gICAgICAgICAgaWYgKGxhc3QgPT09ICcuJykgewotICAgICAgICAgICAgcGFydHMu
c3BsaWNlKGksIDEpOwotICAgICAgICAgIH0gZWxzZSBpZiAobGFzdCA9PT0gJy4uJykgewotICAg
ICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwotICAgICAgICAgICAgdXArKzsKLSAgICAgICAg
ICB9IGVsc2UgaWYgKHVwKSB7Ci0gICAgICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMSk7Ci0gICAg
ICAgICAgICB1cC0tOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAvLyBpZiB0aGUg
cGF0aCBpcyBhbGxvd2VkIHRvIGdvIGFib3ZlIHRoZSByb290LCByZXN0b3JlIGxlYWRpbmcgLi5z
Ci0gICAgICAgIGlmIChhbGxvd0Fib3ZlUm9vdCkgewotICAgICAgICAgIGZvciAoOyB1cC0tOyB1
cCkgewotICAgICAgICAgICAgcGFydHMudW5zaGlmdCgnLi4nKTsKLSAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHBhcnRzOwotICAgICAgfSxub3JtYWxpemU6ZnVuY3Rpb24g
KHBhdGgpIHsKLSAgICAgICAgdmFyIGlzQWJzb2x1dGUgPSBwYXRoLmNoYXJBdCgwKSA9PT0gJy8n
LAotICAgICAgICAgICAgdHJhaWxpbmdTbGFzaCA9IHBhdGguc3Vic3RyKC0xKSA9PT0gJy8nOwot
ICAgICAgICAvLyBOb3JtYWxpemUgdGhlIHBhdGgKLSAgICAgICAgcGF0aCA9IFBBVEgubm9ybWFs
aXplQXJyYXkocGF0aC5zcGxpdCgnLycpLmZpbHRlcihmdW5jdGlvbihwKSB7Ci0gICAgICAgICAg
cmV0dXJuICEhcDsKLSAgICAgICAgfSksICFpc0Fic29sdXRlKS5qb2luKCcvJyk7Ci0gICAgICAg
IGlmICghcGF0aCAmJiAhaXNBYnNvbHV0ZSkgewotICAgICAgICAgIHBhdGggPSAnLic7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKHBhdGggJiYgdHJhaWxpbmdTbGFzaCkgewotICAgICAgICAgIHBh
dGggKz0gJy8nOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAoaXNBYnNvbHV0ZSA/ICcvJyA6
ICcnKSArIHBhdGg7Ci0gICAgICB9LGRpcm5hbWU6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAg
dmFyIHJlc3VsdCA9IFBBVEguc3BsaXRQYXRoKHBhdGgpLAotICAgICAgICAgICAgcm9vdCA9IHJl
c3VsdFswXSwKLSAgICAgICAgICAgIGRpciA9IHJlc3VsdFsxXTsKLSAgICAgICAgaWYgKCFyb290
ICYmICFkaXIpIHsKLSAgICAgICAgICAvLyBObyBkaXJuYW1lIHdoYXRzb2V2ZXIKLSAgICAgICAg
ICByZXR1cm4gJy4nOwotICAgICAgICB9Ci0gICAgICAgIGlmIChkaXIpIHsKLSAgICAgICAgICAv
LyBJdCBoYXMgYSBkaXJuYW1lLCBzdHJpcCB0cmFpbGluZyBzbGFzaAotICAgICAgICAgIGRpciA9
IGRpci5zdWJzdHIoMCwgZGlyLmxlbmd0aCAtIDEpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biByb290ICsgZGlyOwotICAgICAgfSxiYXNlbmFtZTpmdW5jdGlvbiAocGF0aCwgZXh0KSB7Ci0g
ICAgICAgIC8vIEVNU0NSSVBURU4gcmV0dXJuICcvJycgZm9yICcvJywgbm90IGFuIGVtcHR5IHN0
cmluZwotICAgICAgICBpZiAocGF0aCA9PT0gJy8nKSByZXR1cm4gJy8nOwotICAgICAgICB2YXIg
ZiA9IFBBVEguc3BsaXRQYXRoKHBhdGgpWzJdOwotICAgICAgICBpZiAoZXh0ICYmIGYuc3Vic3Ry
KC0xICogZXh0Lmxlbmd0aCkgPT09IGV4dCkgewotICAgICAgICAgIGYgPSBmLnN1YnN0cigwLCBm
Lmxlbmd0aCAtIGV4dC5sZW5ndGgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmOwotICAg
ICAgfSxqb2luOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIHBhdGhzID0gQXJyYXkucHJvdG90
eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTsKLSAgICAgICAgcmV0dXJuIFBBVEgubm9ybWFs
aXplKHBhdGhzLmZpbHRlcihmdW5jdGlvbihwLCBpbmRleCkgewotICAgICAgICAgIGlmICh0eXBl
b2YgcCAhPT0gJ3N0cmluZycpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Fy
Z3VtZW50cyB0byBwYXRoLmpvaW4gbXVzdCBiZSBzdHJpbmdzJyk7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIHJldHVybiBwOwotICAgICAgICB9KS5qb2luKCcvJykpOwotICAgICAgfSxyZXNvbHZl
OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIHJlc29sdmVkUGF0aCA9ICcnLAotICAgICAgICAg
IHJlc29sdmVkQWJzb2x1dGUgPSBmYWxzZTsKLSAgICAgICAgZm9yICh2YXIgaSA9IGFyZ3VtZW50
cy5sZW5ndGggLSAxOyBpID49IC0xICYmICFyZXNvbHZlZEFic29sdXRlOyBpLS0pIHsKLSAgICAg
ICAgICB2YXIgcGF0aCA9IChpID49IDApID8gYXJndW1lbnRzW2ldIDogRlMuY3dkKCk7Ci0gICAg
ICAgICAgLy8gU2tpcCBlbXB0eSBhbmQgaW52YWxpZCBlbnRyaWVzCi0gICAgICAgICAgaWYgKHR5
cGVvZiBwYXRoICE9PSAnc3RyaW5nJykgewotICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJv
cignQXJndW1lbnRzIHRvIHBhdGgucmVzb2x2ZSBtdXN0IGJlIHN0cmluZ3MnKTsKLSAgICAgICAg
ICB9IGVsc2UgaWYgKCFwYXRoKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcGF0aCArICcvJyArIHJlc29sdmVkUGF0aDsKLSAg
ICAgICAgICByZXNvbHZlZEFic29sdXRlID0gcGF0aC5jaGFyQXQoMCkgPT09ICcvJzsKLSAgICAg
ICAgfQotICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBwYXRoIHNob3VsZCBiZSByZXNvbHZl
ZCB0byBhIGZ1bGwgYWJzb2x1dGUgcGF0aCwgYnV0Ci0gICAgICAgIC8vIGhhbmRsZSByZWxhdGl2
ZSBwYXRocyB0byBiZSBzYWZlIChtaWdodCBoYXBwZW4gd2hlbiBwcm9jZXNzLmN3ZCgpIGZhaWxz
KQotICAgICAgICByZXNvbHZlZFBhdGggPSBQQVRILm5vcm1hbGl6ZUFycmF5KHJlc29sdmVkUGF0
aC5zcGxpdCgnLycpLmZpbHRlcihmdW5jdGlvbihwKSB7Ci0gICAgICAgICAgcmV0dXJuICEhcDsK
LSAgICAgICAgfSksICFyZXNvbHZlZEFic29sdXRlKS5qb2luKCcvJyk7Ci0gICAgICAgIHJldHVy
biAoKHJlc29sdmVkQWJzb2x1dGUgPyAnLycgOiAnJykgKyByZXNvbHZlZFBhdGgpIHx8ICcuJzsK
LSAgICAgIH0scmVsYXRpdmU6ZnVuY3Rpb24gKGZyb20sIHRvKSB7Ci0gICAgICAgIGZyb20gPSBQ
QVRILnJlc29sdmUoZnJvbSkuc3Vic3RyKDEpOwotICAgICAgICB0byA9IFBBVEgucmVzb2x2ZSh0
bykuc3Vic3RyKDEpOwotICAgICAgICBmdW5jdGlvbiB0cmltKGFycikgewotICAgICAgICAgIHZh
ciBzdGFydCA9IDA7Ci0gICAgICAgICAgZm9yICg7IHN0YXJ0IDwgYXJyLmxlbmd0aDsgc3RhcnQr
KykgewotICAgICAgICAgICAgaWYgKGFycltzdGFydF0gIT09ICcnKSBicmVhazsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgdmFyIGVuZCA9IGFyci5sZW5ndGggLSAxOwotICAgICAgICAgIGZvciAo
OyBlbmQgPj0gMDsgZW5kLS0pIHsKLSAgICAgICAgICAgIGlmIChhcnJbZW5kXSAhPT0gJycpIGJy
ZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoc3RhcnQgPiBlbmQpIHJldHVybiBbXTsK
LSAgICAgICAgICByZXR1cm4gYXJyLnNsaWNlKHN0YXJ0LCBlbmQgLSBzdGFydCArIDEpOwotICAg
ICAgICB9Ci0gICAgICAgIHZhciBmcm9tUGFydHMgPSB0cmltKGZyb20uc3BsaXQoJy8nKSk7Ci0g
ICAgICAgIHZhciB0b1BhcnRzID0gdHJpbSh0by5zcGxpdCgnLycpKTsKLSAgICAgICAgdmFyIGxl
bmd0aCA9IE1hdGgubWluKGZyb21QYXJ0cy5sZW5ndGgsIHRvUGFydHMubGVuZ3RoKTsKLSAgICAg
ICAgdmFyIHNhbWVQYXJ0c0xlbmd0aCA9IGxlbmd0aDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICAgIGlmIChmcm9tUGFydHNbaV0gIT09IHRvUGFy
dHNbaV0pIHsKLSAgICAgICAgICAgIHNhbWVQYXJ0c0xlbmd0aCA9IGk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG91dHB1dFBhcnRzID0g
W107Ci0gICAgICAgIGZvciAodmFyIGkgPSBzYW1lUGFydHNMZW5ndGg7IGkgPCBmcm9tUGFydHMu
bGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICBvdXRwdXRQYXJ0cy5wdXNoKCcuLicpOwotICAgICAg
ICB9Ci0gICAgICAgIG91dHB1dFBhcnRzID0gb3V0cHV0UGFydHMuY29uY2F0KHRvUGFydHMuc2xp
Y2Uoc2FtZVBhcnRzTGVuZ3RoKSk7Ci0gICAgICAgIHJldHVybiBvdXRwdXRQYXJ0cy5qb2luKCcv
Jyk7Ci0gICAgICB9fTsKLSAgdmFyIFRUWT17dHR5czpbXSxyZWdpc3RlcjpmdW5jdGlvbiAoZGV2
LCBvcHMpIHsKLSAgICAgICAgVFRZLnR0eXNbZGV2XSA9IHsgaW5wdXQ6IFtdLCBvdXRwdXQ6IFtd
LCBvcHM6IG9wcyB9OwotICAgICAgICBGUy5yZWdpc3RlckRldmljZShkZXYsIFRUWS5zdHJlYW1f
b3BzKTsKLSAgICAgIH0sc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbiAoc3RyZWFtKSB7Ci0gICAg
ICAgICAgLy8gdGhpcyB3b3VsZG4ndCBiZSByZXF1aXJlZCBpZiB0aGUgbGlicmFyeSB3YXNuJ3Qg
ZXZhbCdkIGF0IGZpcnN0Li4uCi0gICAgICAgICAgaWYgKCFUVFkudXRmOCkgewotICAgICAgICAg
ICAgVFRZLnV0ZjggPSBuZXcgUnVudGltZS5VVEY4UHJvY2Vzc29yKCk7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIHZhciB0dHkgPSBUVFkudHR5c1tzdHJlYW0ubm9kZS5yZGV2XTsKLSAgICAgICAg
ICBpZiAoIXR0eSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRU5PREVWKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgc3RyZWFtLnR0eSA9IHR0eTsK
LSAgICAgICAgICBzdHJlYW0uc2Vla2FibGUgPSBmYWxzZTsKLSAgICAgICAgfSxjbG9zZTpmdW5j
dGlvbiAoc3RyZWFtKSB7Ci0gICAgICAgICAgLy8gZmx1c2ggYW55IHBlbmRpbmcgbGluZSBkYXRh
Ci0gICAgICAgICAgaWYgKHN0cmVhbS50dHkub3V0cHV0Lmxlbmd0aCkgewotICAgICAgICAgICAg
c3RyZWFtLnR0eS5vcHMucHV0X2NoYXIoc3RyZWFtLnR0eSwgMTApOwotICAgICAgICAgIH0KLSAg
ICAgICAgfSxyZWFkOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBv
cyAvKiBpZ25vcmVkICovKSB7Ci0gICAgICAgICAgaWYgKCFzdHJlYW0udHR5IHx8ICFzdHJlYW0u
dHR5Lm9wcy5nZXRfY2hhcikgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
RVJSTk9fQ09ERVMuRU5YSU8pOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgYnl0ZXNSZWFk
ID0gMDsKLSAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAg
ICAgICAgICB2YXIgcmVzdWx0OwotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgcmVz
dWx0ID0gc3RyZWFtLnR0eS5vcHMuZ2V0X2NoYXIoc3RyZWFtLnR0eSk7Ci0gICAgICAgICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVJTyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocmVzdWx0ID09PSB1
bmRlZmluZWQgJiYgYnl0ZXNSZWFkID09PSAwKSB7Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBR0FJTik7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHJlc3VsdCA9PT0gdW5kZWZpbmVkKSBicmVhazsK
LSAgICAgICAgICAgIGJ5dGVzUmVhZCsrOwotICAgICAgICAgICAgYnVmZmVyW29mZnNldCtpXSA9
IHJlc3VsdDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGJ5dGVzUmVhZCkgewotICAgICAg
ICAgICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgcmV0dXJuIGJ5dGVzUmVhZDsKLSAgICAgICAgfSx3cml0ZTpmdW5jdGlvbiAoc3Ry
ZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3MpIHsKLSAgICAgICAgICBpZiAoIXN0cmVh
bS50dHkgfHwgIXN0cmVhbS50dHkub3BzLnB1dF9jaGFyKSB7Ci0gICAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTlhJTyk7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHRyeSB7
Ci0gICAgICAgICAgICAgIHN0cmVhbS50dHkub3BzLnB1dF9jaGFyKHN0cmVhbS50dHksIGJ1ZmZl
cltvZmZzZXQraV0pOwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAgICAgICAgICAgfQot
ICAgICAgICAgIH0KLSAgICAgICAgICBpZiAobGVuZ3RoKSB7Ci0gICAgICAgICAgICBzdHJlYW0u
bm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1
cm4gaTsKLSAgICAgICAgfX0sZGVmYXVsdF90dHlfb3BzOntnZXRfY2hhcjpmdW5jdGlvbiAodHR5
KSB7Ci0gICAgICAgICAgaWYgKCF0dHkuaW5wdXQubGVuZ3RoKSB7Ci0gICAgICAgICAgICB2YXIg
cmVzdWx0ID0gbnVsbDsKLSAgICAgICAgICAgIGlmIChFTlZJUk9OTUVOVF9JU19OT0RFKSB7Ci0g
ICAgICAgICAgICAgIGlmIChwcm9jZXNzLnN0ZGluLmRlc3Ryb3llZCkgewotICAgICAgICAgICAg
ICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgcmVz
dWx0ID0gcHJvY2Vzcy5zdGRpbi5yZWFkKCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVv
ZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYKLSAgICAgICAgICAgICAgdHlwZW9mIHdpbmRvdy5w
cm9tcHQgPT0gJ2Z1bmN0aW9uJykgewotICAgICAgICAgICAgICAvLyBCcm93c2VyLgotICAgICAg
ICAgICAgICByZXN1bHQgPSB3aW5kb3cucHJvbXB0KCdJbnB1dDogJyk7ICAvLyByZXR1cm5zIG51
bGwgb24gY2FuY2VsCi0gICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHsKLSAgICAg
ICAgICAgICAgICByZXN1bHQgKz0gJ1xuJzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fSBlbHNlIGlmICh0eXBlb2YgcmVhZGxpbmUgPT0gJ2Z1bmN0aW9uJykgewotICAgICAgICAgICAg
ICAvLyBDb21tYW5kIGxpbmUuCi0gICAgICAgICAgICAgIHJlc3VsdCA9IHJlYWRsaW5lKCk7Ci0g
ICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1
bHQgKz0gJ1xuJzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKCFyZXN1bHQpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICB0dHkuaW5wdXQgPSBpbnRBcnJheUZyb21TdHJpbmcocmVzdWx0LCB0cnVl
KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIHR0eS5pbnB1dC5zaGlmdCgpOwotICAg
ICAgICB9LHB1dF9jaGFyOmZ1bmN0aW9uICh0dHksIHZhbCkgewotICAgICAgICAgIGlmICh2YWwg
PT09IG51bGwgfHwgdmFsID09PSAxMCkgewotICAgICAgICAgICAgTW9kdWxlWydwcmludCddKHR0
eS5vdXRwdXQuam9pbignJykpOwotICAgICAgICAgICAgdHR5Lm91dHB1dCA9IFtdOwotICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0dHkub3V0cHV0LnB1c2goVFRZLnV0ZjgucHJvY2Vz
c0NDaGFyKHZhbCkpOwotICAgICAgICAgIH0KLSAgICAgICAgfX0sZGVmYXVsdF90dHkxX29wczp7
cHV0X2NoYXI6ZnVuY3Rpb24gKHR0eSwgdmFsKSB7Ci0gICAgICAgICAgaWYgKHZhbCA9PT0gbnVs
bCB8fCB2YWwgPT09IDEwKSB7Ci0gICAgICAgICAgICBNb2R1bGVbJ3ByaW50RXJyJ10odHR5Lm91
dHB1dC5qb2luKCcnKSk7Ci0gICAgICAgICAgICB0dHkub3V0cHV0ID0gW107Ci0gICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHR0eS5vdXRwdXQucHVzaChUVFkudXRmOC5wcm9jZXNzQ0No
YXIodmFsKSk7Ci0gICAgICAgICAgfQotICAgICAgICB9fX07Ci0gIHZhciBNRU1GUz17bW91bnQ6
ZnVuY3Rpb24gKG1vdW50KSB7Ci0gICAgICAgIHJldHVybiBNRU1GUy5jcmVhdGVfbm9kZShudWxs
LCAnLycsIDAwNDAwMDAgfCAwNzc3LCAwKTsKLSAgICAgIH0sY3JlYXRlX25vZGU6ZnVuY3Rpb24g
KHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KSB7Ci0gICAgICAgIGlmIChGUy5pc0Jsa2Rldihtb2Rl
KSB8fCBGUy5pc0ZJRk8obW9kZSkpIHsKLSAgICAgICAgICAvLyBubyBzdXBwb3J0ZWQKLSAgICAg
ICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAg
IH0KLSAgICAgICAgdmFyIG5vZGUgPSBGUy5jcmVhdGVOb2RlKHBhcmVudCwgbmFtZSwgbW9kZSwg
ZGV2KTsKLSAgICAgICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBub2Rl
Lm5vZGVfb3BzID0gewotICAgICAgICAgICAgZ2V0YXR0cjogTUVNRlMubm9kZV9vcHMuZ2V0YXR0
ciwKLSAgICAgICAgICAgIHNldGF0dHI6IE1FTUZTLm5vZGVfb3BzLnNldGF0dHIsCi0gICAgICAg
ICAgICBsb29rdXA6IE1FTUZTLm5vZGVfb3BzLmxvb2t1cCwKLSAgICAgICAgICAgIG1rbm9kOiBN
RU1GUy5ub2RlX29wcy5ta25vZCwKLSAgICAgICAgICAgIG1rbm9kOiBNRU1GUy5ub2RlX29wcy5t
a25vZCwKLSAgICAgICAgICAgIHJlbmFtZTogTUVNRlMubm9kZV9vcHMucmVuYW1lLAotICAgICAg
ICAgICAgdW5saW5rOiBNRU1GUy5ub2RlX29wcy51bmxpbmssCi0gICAgICAgICAgICBybWRpcjog
TUVNRlMubm9kZV9vcHMucm1kaXIsCi0gICAgICAgICAgICByZWFkZGlyOiBNRU1GUy5ub2RlX29w
cy5yZWFkZGlyLAotICAgICAgICAgICAgc3ltbGluazogTUVNRlMubm9kZV9vcHMuc3ltbGluawot
ICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gewotICAgICAgICAgICAg
bGxzZWVrOiBNRU1GUy5zdHJlYW1fb3BzLmxsc2VlawotICAgICAgICAgIH07Ci0gICAgICAgICAg
bm9kZS5jb250ZW50cyA9IHt9OwotICAgICAgICB9IGVsc2UgaWYgKEZTLmlzRmlsZShub2RlLm1v
ZGUpKSB7Ci0gICAgICAgICAgbm9kZS5ub2RlX29wcyA9IHsKLSAgICAgICAgICAgIGdldGF0dHI6
IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIsCi0gICAgICAgICAgICBzZXRhdHRyOiBNRU1GUy5ub2Rl
X29wcy5zZXRhdHRyCi0gICAgICAgICAgfTsKLSAgICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSB7
Ci0gICAgICAgICAgICBsbHNlZWs6IE1FTUZTLnN0cmVhbV9vcHMubGxzZWVrLAotICAgICAgICAg
ICAgcmVhZDogTUVNRlMuc3RyZWFtX29wcy5yZWFkLAotICAgICAgICAgICAgd3JpdGU6IE1FTUZT
LnN0cmVhbV9vcHMud3JpdGUsCi0gICAgICAgICAgICBhbGxvY2F0ZTogTUVNRlMuc3RyZWFtX29w
cy5hbGxvY2F0ZSwKLSAgICAgICAgICAgIG1tYXA6IE1FTUZTLnN0cmVhbV9vcHMubW1hcAotICAg
ICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5jb250ZW50cyA9IFtdOwotICAgICAgICB9IGVsc2Ug
aWYgKEZTLmlzTGluayhub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgbm9kZS5ub2RlX29wcyA9IHsK
LSAgICAgICAgICAgIGdldGF0dHI6IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIsCi0gICAgICAgICAg
ICBzZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5zZXRhdHRyLAotICAgICAgICAgICAgcmVhZGxpbms6
IE1FTUZTLm5vZGVfb3BzLnJlYWRsaW5rCi0gICAgICAgICAgfTsKLSAgICAgICAgICBub2RlLnN0
cmVhbV9vcHMgPSB7fTsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0NocmRldihub2RlLm1vZGUp
KSB7Ci0gICAgICAgICAgbm9kZS5ub2RlX29wcyA9IHsKLSAgICAgICAgICAgIGdldGF0dHI6IE1F
TUZTLm5vZGVfb3BzLmdldGF0dHIsCi0gICAgICAgICAgICBzZXRhdHRyOiBNRU1GUy5ub2RlX29w
cy5zZXRhdHRyCi0gICAgICAgICAgfTsKLSAgICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSBGUy5j
aHJkZXZfc3RyZWFtX29wczsKLSAgICAgICAgfQotICAgICAgICBub2RlLnRpbWVzdGFtcCA9IERh
dGUubm93KCk7Ci0gICAgICAgIC8vIGFkZCB0aGUgbmV3IG5vZGUgdG8gdGhlIHBhcmVudAotICAg
ICAgICBpZiAocGFyZW50KSB7Ci0gICAgICAgICAgcGFyZW50LmNvbnRlbnRzW25hbWVdID0gbm9k
ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgIH0sbm9kZV9vcHM6e2dl
dGF0dHI6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgICB2YXIgYXR0ciA9IHt9OwotICAgICAg
ICAgIC8vIGRldmljZSBudW1iZXJzIHJldXNlIGlub2RlIG51bWJlcnMuCi0gICAgICAgICAgYXR0
ci5kZXYgPSBGUy5pc0NocmRldihub2RlLm1vZGUpID8gbm9kZS5pZCA6IDE7Ci0gICAgICAgICAg
YXR0ci5pbm8gPSBub2RlLmlkOwotICAgICAgICAgIGF0dHIubW9kZSA9IG5vZGUubW9kZTsKLSAg
ICAgICAgICBhdHRyLm5saW5rID0gMTsKLSAgICAgICAgICBhdHRyLnVpZCA9IDA7Ci0gICAgICAg
ICAgYXR0ci5naWQgPSAwOwotICAgICAgICAgIGF0dHIucmRldiA9IG5vZGUucmRldjsKLSAgICAg
ICAgICBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAgICAgICAgYXR0ci5zaXplID0g
NDA5NjsKLSAgICAgICAgICB9IGVsc2UgaWYgKEZTLmlzRmlsZShub2RlLm1vZGUpKSB7Ci0gICAg
ICAgICAgICBhdHRyLnNpemUgPSBub2RlLmNvbnRlbnRzLmxlbmd0aDsKLSAgICAgICAgICB9IGVs
c2UgaWYgKEZTLmlzTGluayhub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICBhdHRyLnNpemUgPSBu
b2RlLmxpbmsubGVuZ3RoOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdHRyLnNp
emUgPSAwOwotICAgICAgICAgIH0KLSAgICAgICAgICBhdHRyLmF0aW1lID0gbmV3IERhdGUobm9k
ZS50aW1lc3RhbXApOwotICAgICAgICAgIGF0dHIubXRpbWUgPSBuZXcgRGF0ZShub2RlLnRpbWVz
dGFtcCk7Ci0gICAgICAgICAgYXR0ci5jdGltZSA9IG5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTsK
LSAgICAgICAgICAvLyBOT1RFOiBJbiBvdXIgaW1wbGVtZW50YXRpb24sIHN0X2Jsb2NrcyA9IE1h
dGguY2VpbChzdF9zaXplL3N0X2Jsa3NpemUpLAotICAgICAgICAgIC8vICAgICAgIGJ1dCB0aGlz
IGlzIG5vdCByZXF1aXJlZCBieSB0aGUgc3RhbmRhcmQuCi0gICAgICAgICAgYXR0ci5ibGtzaXpl
ID0gNDA5NjsKLSAgICAgICAgICBhdHRyLmJsb2NrcyA9IE1hdGguY2VpbChhdHRyLnNpemUgLyBh
dHRyLmJsa3NpemUpOwotICAgICAgICAgIHJldHVybiBhdHRyOwotICAgICAgICB9LHNldGF0dHI6
ZnVuY3Rpb24gKG5vZGUsIGF0dHIpIHsKLSAgICAgICAgICBpZiAoYXR0ci5tb2RlICE9PSB1bmRl
ZmluZWQpIHsKLSAgICAgICAgICAgIG5vZGUubW9kZSA9IGF0dHIubW9kZTsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgaWYgKGF0dHIudGltZXN0YW1wICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAg
ICAgIG5vZGUudGltZXN0YW1wID0gYXR0ci50aW1lc3RhbXA7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIGlmIChhdHRyLnNpemUgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgdmFyIGNvbnRl
bnRzID0gbm9kZS5jb250ZW50czsKLSAgICAgICAgICAgIGlmIChhdHRyLnNpemUgPCBjb250ZW50
cy5sZW5ndGgpIGNvbnRlbnRzLmxlbmd0aCA9IGF0dHIuc2l6ZTsKLSAgICAgICAgICAgIGVsc2Ug
d2hpbGUgKGF0dHIuc2l6ZSA+IGNvbnRlbnRzLmxlbmd0aCkgY29udGVudHMucHVzaCgwKTsKLSAg
ICAgICAgICB9Ci0gICAgICAgIH0sbG9va3VwOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUpIHsKLSAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9FTlQpOwotICAg
ICAgICB9LG1rbm9kOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIG1vZGUsIGRldikgewotICAgICAg
ICAgIHJldHVybiBNRU1GUy5jcmVhdGVfbm9kZShwYXJlbnQsIG5hbWUsIG1vZGUsIGRldik7Ci0g
ICAgICAgIH0scmVuYW1lOmZ1bmN0aW9uIChvbGRfbm9kZSwgbmV3X2RpciwgbmV3X25hbWUpIHsK
LSAgICAgICAgICAvLyBpZiB3ZSdyZSBvdmVyd3JpdGluZyBhIGRpcmVjdG9yeSBhdCBuZXdfbmFt
ZSwgbWFrZSBzdXJlIGl0J3MgZW1wdHkuCi0gICAgICAgICAgaWYgKEZTLmlzRGlyKG9sZF9ub2Rl
Lm1vZGUpKSB7Ci0gICAgICAgICAgICB2YXIgbmV3X25vZGU7Ci0gICAgICAgICAgICB0cnkgewot
ICAgICAgICAgICAgICBuZXdfbm9kZSA9IEZTLmxvb2t1cE5vZGUobmV3X2RpciwgbmV3X25hbWUp
OwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKG5ld19ub2RlKSB7Ci0gICAgICAgICAgICAgIGZvciAodmFyIGkgaW4gbmV3X25vZGUuY29u
dGVudHMpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FTk9URU1QVFkpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgfQotICAgICAgICAgIC8vIGRvIHRoZSBpbnRlcm5hbCByZXdpcmluZwotICAgICAgICAgIGRl
bGV0ZSBvbGRfbm9kZS5wYXJlbnQuY29udGVudHNbb2xkX25vZGUubmFtZV07Ci0gICAgICAgICAg
b2xkX25vZGUubmFtZSA9IG5ld19uYW1lOwotICAgICAgICAgIG5ld19kaXIuY29udGVudHNbbmV3
X25hbWVdID0gb2xkX25vZGU7Ci0gICAgICAgIH0sdW5saW5rOmZ1bmN0aW9uIChwYXJlbnQsIG5h
bWUpIHsKLSAgICAgICAgICBkZWxldGUgcGFyZW50LmNvbnRlbnRzW25hbWVdOwotICAgICAgICB9
LHJtZGlyOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUpIHsKLSAgICAgICAgICB2YXIgbm9kZSA9IEZT
Lmxvb2t1cE5vZGUocGFyZW50LCBuYW1lKTsKLSAgICAgICAgICBmb3IgKHZhciBpIGluIG5vZGUu
Y29udGVudHMpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVOT1RFTVBUWSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGRlbGV0ZSBwYXJlbnQuY29u
dGVudHNbbmFtZV07Ci0gICAgICAgIH0scmVhZGRpcjpmdW5jdGlvbiAobm9kZSkgewotICAgICAg
ICAgIHZhciBlbnRyaWVzID0gWycuJywgJy4uJ10KLSAgICAgICAgICBmb3IgKHZhciBrZXkgaW4g
bm9kZS5jb250ZW50cykgewotICAgICAgICAgICAgaWYgKCFub2RlLmNvbnRlbnRzLmhhc093blBy
b3BlcnR5KGtleSkpIHsKLSAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBlbnRyaWVzLnB1c2goa2V5KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0
dXJuIGVudHJpZXM7Ci0gICAgICAgIH0sc3ltbGluazpmdW5jdGlvbiAocGFyZW50LCBuZXduYW1l
LCBvbGRwYXRoKSB7Ci0gICAgICAgICAgdmFyIG5vZGUgPSBNRU1GUy5jcmVhdGVfbm9kZShwYXJl
bnQsIG5ld25hbWUsIDA3NzcgfCAwMTIwMDAwLCAwKTsKLSAgICAgICAgICBub2RlLmxpbmsgPSBv
bGRwYXRoOwotICAgICAgICAgIHJldHVybiBub2RlOwotICAgICAgICB9LHJlYWRsaW5rOmZ1bmN0
aW9uIChub2RlKSB7Ci0gICAgICAgICAgaWYgKCFGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAg
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAg
ICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIG5vZGUubGluazsKLSAgICAgICAgfX0sc3RyZWFt
X29wczp7cmVhZDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3Np
dGlvbikgewotICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwot
ICAgICAgICAgIHZhciBzaXplID0gTWF0aC5taW4oY29udGVudHMubGVuZ3RoIC0gcG9zaXRpb24s
IGxlbmd0aCk7Ci0gICAgICAgICAgaWYgKGNvbnRlbnRzLnN1YmFycmF5KSB7IC8vIHR5cGVkIGFy
cmF5Ci0gICAgICAgICAgICBidWZmZXIuc2V0KGNvbnRlbnRzLnN1YmFycmF5KHBvc2l0aW9uLCBw
b3NpdGlvbiArIHNpemUpLCBvZmZzZXQpOwotICAgICAgICAgIH0gZWxzZQotICAgICAgICAgIHsK
LSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAg
ICAgIGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGNvbnRlbnRzW3Bvc2l0aW9uICsgaV07Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBzaXplOwotICAgICAgICB9LHdy
aXRlOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7
Ci0gICAgICAgICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7Ci0gICAgICAg
ICAgd2hpbGUgKGNvbnRlbnRzLmxlbmd0aCA8IHBvc2l0aW9uKSBjb250ZW50cy5wdXNoKDApOwot
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAg
IGNvbnRlbnRzW3Bvc2l0aW9uICsgaV0gPSBidWZmZXJbb2Zmc2V0ICsgaV07Ci0gICAgICAgICAg
fQotICAgICAgICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAg
ICAgcmV0dXJuIGxlbmd0aDsKLSAgICAgICAgfSxsbHNlZWs6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zm
c2V0LCB3aGVuY2UpIHsKLSAgICAgICAgICB2YXIgcG9zaXRpb24gPSBvZmZzZXQ7Ci0gICAgICAg
ICAgaWYgKHdoZW5jZSA9PT0gMSkgeyAgLy8gU0VFS19DVVIuCi0gICAgICAgICAgICBwb3NpdGlv
biArPSBzdHJlYW0ucG9zaXRpb247Ci0gICAgICAgICAgfSBlbHNlIGlmICh3aGVuY2UgPT09IDIp
IHsgIC8vIFNFRUtfRU5ELgotICAgICAgICAgICAgaWYgKEZTLmlzRmlsZShzdHJlYW0ubm9kZS5t
b2RlKSkgewotICAgICAgICAgICAgICBwb3NpdGlvbiArPSBzdHJlYW0ubm9kZS5jb250ZW50cy5s
ZW5ndGg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChwb3NpdGlv
biA8IDApIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVJTlZBTCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHN0cmVhbS51bmdvdHRlbiA9IFtdOwot
ICAgICAgICAgIHN0cmVhbS5wb3NpdGlvbiA9IHBvc2l0aW9uOwotICAgICAgICAgIHJldHVybiBw
b3NpdGlvbjsKLSAgICAgICAgfSxhbGxvY2F0ZTpmdW5jdGlvbiAoc3RyZWFtLCBvZmZzZXQsIGxl
bmd0aCkgewotICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwot
ICAgICAgICAgIHZhciBsaW1pdCA9IG9mZnNldCArIGxlbmd0aDsKLSAgICAgICAgICB3aGlsZSAo
bGltaXQgPiBjb250ZW50cy5sZW5ndGgpIGNvbnRlbnRzLnB1c2goMCk7Ci0gICAgICAgIH0sbW1h
cDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbiwgcHJv
dCwgZmxhZ3MpIHsKLSAgICAgICAgICBpZiAoIUZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSkg
ewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PREVW
KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIHB0cjsKLSAgICAgICAgICB2YXIgYWxsb2Nh
dGVkOwotICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwotICAg
ICAgICAgIC8vIE9ubHkgbWFrZSBhIG5ldyBjb3B5IHdoZW4gTUFQX1BSSVZBVEUgaXMgc3BlY2lm
aWVkLgotICAgICAgICAgIGlmICghKGZsYWdzICYgMHgwMikpIHsKLSAgICAgICAgICAgIC8vIFdl
IGNhbid0IGVtdWxhdGUgTUFQX1NIQVJFRCB3aGVuIHRoZSBmaWxlIGlzIG5vdCBiYWNrZWQgYnkg
dGhlIGJ1ZmZlcgotICAgICAgICAgICAgLy8gd2UncmUgbWFwcGluZyB0byAoZS5nLiB0aGUgSEVB
UCBidWZmZXIpLgotICAgICAgICAgICAgYXNzZXJ0KGNvbnRlbnRzLmJ1ZmZlciA9PT0gYnVmZmVy
IHx8IGNvbnRlbnRzLmJ1ZmZlciA9PT0gYnVmZmVyLmJ1ZmZlcik7Ci0gICAgICAgICAgICBhbGxv
Y2F0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHB0ciA9IGNvbnRlbnRzLmJ5dGVPZmZzZXQ7Ci0g
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFRyeSB0byBhdm9pZCB1bm5lY2Vzc2Fy
eSBzbGljZXMuCi0gICAgICAgICAgICBpZiAocG9zaXRpb24gPiAwIHx8IHBvc2l0aW9uICsgbGVu
Z3RoIDwgY29udGVudHMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgIGlmIChjb250ZW50cy5zdWJh
cnJheSkgewotICAgICAgICAgICAgICAgIGNvbnRlbnRzID0gY29udGVudHMuc3ViYXJyYXkocG9z
aXRpb24sIHBvc2l0aW9uICsgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBjb250ZW50cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGNvbnRlbnRz
LCBwb3NpdGlvbiwgcG9zaXRpb24gKyBsZW5ndGgpOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBhbGxvY2F0ZWQgPSB0cnVlOwotICAgICAgICAgICAgcHRyID0g
X21hbGxvYyhsZW5ndGgpOwotICAgICAgICAgICAgaWYgKCFwdHIpIHsKLSAgICAgICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PTUVNKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGJ1ZmZlci5zZXQoY29udGVudHMsIHB0cik7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIHJldHVybiB7IHB0cjogcHRyLCBhbGxvY2F0ZWQ6IGFsbG9jYXRlZCB9OwotICAg
ICAgICB9fX07Ci0gIHZhciBfc3RkaW49YWxsb2NhdGUoMSwgImkzMioiLCBBTExPQ19TVEFUSUMp
OwotICB2YXIgX3N0ZG91dD1hbGxvY2F0ZSgxLCAiaTMyKiIsIEFMTE9DX1NUQVRJQyk7Ci0gIHZh
ciBfc3RkZXJyPWFsbG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElDKTsKLSAgZnVuY3Rpb24g
X2ZmbHVzaChzdHJlYW0pIHsKLSAgICAgIC8vIGludCBmZmx1c2goRklMRSAqc3RyZWFtKTsKLSAg
ICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVu
Y3Rpb25zL2ZmbHVzaC5odG1sCi0gICAgICAvLyB3ZSBkb24ndCBjdXJyZW50bHkgcGVyZm9ybSBh
bnkgdXNlci1zcGFjZSBidWZmZXJpbmcgb2YgZGF0YQotICAgIH12YXIgRlM9e3Jvb3Q6bnVsbCxu
b2RlczpbbnVsbF0sZGV2aWNlczpbbnVsbF0sc3RyZWFtczpbbnVsbF0sbmV4dElub2RlOjEsbmFt
ZV90YWJsZTpudWxsLGN1cnJlbnRQYXRoOiIvIixpbml0aWFsaXplZDpmYWxzZSxpZ25vcmVQZXJt
aXNzaW9uczp0cnVlLEVycm5vRXJyb3I6ZnVuY3Rpb24gRXJybm9FcnJvcihlcnJubykgewotICAg
ICAgICAgIHRoaXMuZXJybm8gPSBlcnJubzsKLSAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gRVJS
Tk9fQ09ERVMpIHsKLSAgICAgICAgICAgIGlmIChFUlJOT19DT0RFU1trZXldID09PSBlcnJubykg
ewotICAgICAgICAgICAgICB0aGlzLmNvZGUgPSBrZXk7Ci0gICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSBFUlJO
T19NRVNTQUdFU1tlcnJub107Ci0gICAgICAgIH0saGFuZGxlRlNFcnJvcjpmdW5jdGlvbiAoZSkg
ewotICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIHRocm93IGUgKyAn
IDogJyArIG5ldyBFcnJvcigpLnN0YWNrOwotICAgICAgICByZXR1cm4gX19fc2V0RXJyTm8oZS5l
cnJubyk7Ci0gICAgICB9LGhhc2hOYW1lOmZ1bmN0aW9uIChwYXJlbnRpZCwgbmFtZSkgewotICAg
ICAgICB2YXIgaGFzaCA9IDA7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZS5sZW5n
dGg7IGkrKykgewotICAgICAgICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoICsgbmFtZS5j
aGFyQ29kZUF0KGkpKSB8IDA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuICgocGFyZW50aWQg
KyBoYXNoKSA+Pj4gMCkgJSBGUy5uYW1lX3RhYmxlLmxlbmd0aDsKLSAgICAgIH0saGFzaEFkZE5v
ZGU6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgdmFyIGhhc2ggPSBGUy5oYXNoTmFtZShub2Rl
LnBhcmVudC5pZCwgbm9kZS5uYW1lKTsKLSAgICAgICAgbm9kZS5uYW1lX25leHQgPSBGUy5uYW1l
X3RhYmxlW2hhc2hdOwotICAgICAgICBGUy5uYW1lX3RhYmxlW2hhc2hdID0gbm9kZTsKLSAgICAg
IH0saGFzaFJlbW92ZU5vZGU6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgdmFyIGhhc2ggPSBG
Uy5oYXNoTmFtZShub2RlLnBhcmVudC5pZCwgbm9kZS5uYW1lKTsKLSAgICAgICAgaWYgKEZTLm5h
bWVfdGFibGVbaGFzaF0gPT09IG5vZGUpIHsKLSAgICAgICAgICBGUy5uYW1lX3RhYmxlW2hhc2hd
ID0gbm9kZS5uYW1lX25leHQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdmFyIGN1cnJl
bnQgPSBGUy5uYW1lX3RhYmxlW2hhc2hdOwotICAgICAgICAgIHdoaWxlIChjdXJyZW50KSB7Ci0g
ICAgICAgICAgICBpZiAoY3VycmVudC5uYW1lX25leHQgPT09IG5vZGUpIHsKLSAgICAgICAgICAg
ICAgY3VycmVudC5uYW1lX25leHQgPSBub2RlLm5hbWVfbmV4dDsKLSAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5uYW1lX25l
eHQ7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9LGxvb2t1cE5vZGU6ZnVuY3Rpb24g
KHBhcmVudCwgbmFtZSkgewotICAgICAgICB2YXIgZXJyID0gRlMubWF5TG9va3VwKHBhcmVudCk7
Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihl
cnIpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBoYXNoID0gRlMuaGFzaE5hbWUocGFyZW50Lmlk
LCBuYW1lKTsKLSAgICAgICAgZm9yICh2YXIgbm9kZSA9IEZTLm5hbWVfdGFibGVbaGFzaF07IG5v
ZGU7IG5vZGUgPSBub2RlLm5hbWVfbmV4dCkgewotICAgICAgICAgIGlmIChub2RlLnBhcmVudC5p
ZCA9PT0gcGFyZW50LmlkICYmIG5vZGUubmFtZSA9PT0gbmFtZSkgewotICAgICAgICAgICAgcmV0
dXJuIG5vZGU7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIC8vIGlmIHdlIGZhaWxl
ZCB0byBmaW5kIGl0IGluIHRoZSBjYWNoZSwgY2FsbCBpbnRvIHRoZSBWRlMKLSAgICAgICAgcmV0
dXJuIEZTLmxvb2t1cChwYXJlbnQsIG5hbWUpOwotICAgICAgfSxjcmVhdGVOb2RlOmZ1bmN0aW9u
IChwYXJlbnQsIG5hbWUsIG1vZGUsIHJkZXYpIHsKLSAgICAgICAgdmFyIG5vZGUgPSB7Ci0gICAg
ICAgICAgaWQ6IEZTLm5leHRJbm9kZSsrLAotICAgICAgICAgIG5hbWU6IG5hbWUsCi0gICAgICAg
ICAgbW9kZTogbW9kZSwKLSAgICAgICAgICBub2RlX29wczoge30sCi0gICAgICAgICAgc3RyZWFt
X29wczoge30sCi0gICAgICAgICAgcmRldjogcmRldiwKLSAgICAgICAgICBwYXJlbnQ6IG51bGws
Ci0gICAgICAgICAgbW91bnQ6IG51bGwKLSAgICAgICAgfTsKLSAgICAgICAgaWYgKCFwYXJlbnQp
IHsKLSAgICAgICAgICBwYXJlbnQgPSBub2RlOyAgLy8gcm9vdCBub2RlIHNldHMgcGFyZW50IHRv
IGl0c2VsZgotICAgICAgICB9Ci0gICAgICAgIG5vZGUucGFyZW50ID0gcGFyZW50OwotICAgICAg
ICBub2RlLm1vdW50ID0gcGFyZW50Lm1vdW50OwotICAgICAgICAvLyBjb21wYXRpYmlsaXR5Ci0g
ICAgICAgIHZhciByZWFkTW9kZSA9IDI5MiB8IDczOwotICAgICAgICB2YXIgd3JpdGVNb2RlID0g
MTQ2OwotICAgICAgICAvLyBOT1RFIHdlIG11c3QgdXNlIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVz
IGluc3RlYWQgb2YgaW5kaXZpZHVhbCBjYWxscyB0bwotICAgICAgICAvLyBPYmplY3QuZGVmaW5l
UHJvcGVydHkgaW4gb3JkZXIgdG8gbWFrZSBjbG9zdXJlIGNvbXBpbGVyIGhhcHB5Ci0gICAgICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5vZGUsIHsKLSAgICAgICAgICByZWFkOiB7Ci0gICAg
ICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gKG5vZGUubW9kZSAmIHJlYWRNb2RlKSA9
PT0gcmVhZE1vZGU7IH0sCi0gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbCkgeyB2YWwgPyBu
b2RlLm1vZGUgfD0gcmVhZE1vZGUgOiBub2RlLm1vZGUgJj0gfnJlYWRNb2RlOyB9Ci0gICAgICAg
ICAgfSwKLSAgICAgICAgICB3cml0ZTogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsg
cmV0dXJuIChub2RlLm1vZGUgJiB3cml0ZU1vZGUpID09PSB3cml0ZU1vZGU7IH0sCi0gICAgICAg
ICAgICBzZXQ6IGZ1bmN0aW9uKHZhbCkgeyB2YWwgPyBub2RlLm1vZGUgfD0gd3JpdGVNb2RlIDog
bm9kZS5tb2RlICY9IH53cml0ZU1vZGU7IH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGlzRm9s
ZGVyOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gRlMuaXNEaXIobm9k
ZS5tb2RlKTsgfSwKLSAgICAgICAgICB9LAotICAgICAgICAgIGlzRGV2aWNlOiB7Ci0gICAgICAg
ICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gRlMuaXNDaHJkZXYobm9kZS5tb2RlKTsgfSwK
LSAgICAgICAgICB9LAotICAgICAgICB9KTsKLSAgICAgICAgRlMuaGFzaEFkZE5vZGUobm9kZSk7
Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgICAgfSxkZXN0cm95Tm9kZTpmdW5jdGlvbiAobm9k
ZSkgewotICAgICAgICBGUy5oYXNoUmVtb3ZlTm9kZShub2RlKTsKLSAgICAgIH0saXNSb290OmZ1
bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHJldHVybiBub2RlID09PSBub2RlLnBhcmVudDsKLSAg
ICAgIH0saXNNb3VudHBvaW50OmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHJldHVybiBub2Rl
Lm1vdW50ZWQ7Ci0gICAgICB9LGlzRmlsZTpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICByZXR1
cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDEwMDAwMDsKLSAgICAgIH0saXNEaXI6ZnVuY3Rpb24g
KG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAwNDAwMDA7Ci0g
ICAgICB9LGlzTGluazpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAw
MTcwMDAwKSA9PT0gMDEyMDAwMDsKLSAgICAgIH0saXNDaHJkZXY6ZnVuY3Rpb24gKG1vZGUpIHsK
LSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAwMjAwMDA7Ci0gICAgICB9LGlz
QmxrZGV2OmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDAp
ID09PSAwMDYwMDAwOwotICAgICAgfSxpc0ZJRk86ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAg
cmV0dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAwMTAwMDA7Ci0gICAgICB9LGN3ZDpmdW5jdGlv
biAoKSB7Ci0gICAgICAgIHJldHVybiBGUy5jdXJyZW50UGF0aDsKLSAgICAgIH0sbG9va3VwUGF0
aDpmdW5jdGlvbiAocGF0aCwgb3B0cykgewotICAgICAgICBwYXRoID0gUEFUSC5yZXNvbHZlKEZT
LmN1cnJlbnRQYXRoLCBwYXRoKTsKLSAgICAgICAgb3B0cyA9IG9wdHMgfHwgeyByZWN1cnNlX2Nv
dW50OiAwIH07Ci0gICAgICAgIGlmIChvcHRzLnJlY3Vyc2VfY291bnQgPiA4KSB7ICAvLyBtYXgg
cmVjdXJzaXZlIGxvb2t1cCBvZiA4Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
RVJSTk9fQ09ERVMuRUxPT1ApOwotICAgICAgICB9Ci0gICAgICAgIC8vIHNwbGl0IHRoZSBwYXRo
Ci0gICAgICAgIHZhciBwYXJ0cyA9IFBBVEgubm9ybWFsaXplQXJyYXkocGF0aC5zcGxpdCgnLycp
LmZpbHRlcihmdW5jdGlvbihwKSB7Ci0gICAgICAgICAgcmV0dXJuICEhcDsKLSAgICAgICAgfSks
IGZhbHNlKTsKLSAgICAgICAgLy8gc3RhcnQgYXQgdGhlIHJvb3QKLSAgICAgICAgdmFyIGN1cnJl
bnQgPSBGUy5yb290OwotICAgICAgICB2YXIgY3VycmVudF9wYXRoID0gJy8nOwotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIGlz
bGFzdCA9IChpID09PSBwYXJ0cy5sZW5ndGgtMSk7Ci0gICAgICAgICAgaWYgKGlzbGFzdCAmJiBv
cHRzLnBhcmVudCkgewotICAgICAgICAgICAgLy8gc3RvcCByZXNvbHZpbmcKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgICBjdXJyZW50ID0gRlMubG9va3VwTm9kZShj
dXJyZW50LCBwYXJ0c1tpXSk7Ci0gICAgICAgICAgY3VycmVudF9wYXRoID0gUEFUSC5qb2luKGN1
cnJlbnRfcGF0aCwgcGFydHNbaV0pOwotICAgICAgICAgIC8vIGp1bXAgdG8gdGhlIG1vdW50J3Mg
cm9vdCBub2RlIGlmIHRoaXMgaXMgYSBtb3VudHBvaW50Ci0gICAgICAgICAgaWYgKEZTLmlzTW91
bnRwb2ludChjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubW91bnQu
cm9vdDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gZm9sbG93IHN5bWxpbmtzCi0gICAgICAg
ICAgLy8gYnkgZGVmYXVsdCwgbG9va3VwUGF0aCB3aWxsIG5vdCBmb2xsb3cgYSBzeW1saW5rIGlm
IGl0IGlzIHRoZSBmaW5hbCBwYXRoIGNvbXBvbmVudC4KLSAgICAgICAgICAvLyBzZXR0aW5nIG9w
dHMuZm9sbG93ID0gdHJ1ZSB3aWxsIG92ZXJyaWRlIHRoaXMgYmVoYXZpb3IuCi0gICAgICAgICAg
aWYgKCFpc2xhc3QgfHwgb3B0cy5mb2xsb3cpIHsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IDA7
Ci0gICAgICAgICAgICB3aGlsZSAoRlMuaXNMaW5rKGN1cnJlbnQubW9kZSkpIHsKLSAgICAgICAg
ICAgICAgdmFyIGxpbmsgPSBGUy5yZWFkbGluayhjdXJyZW50X3BhdGgpOwotICAgICAgICAgICAg
ICBjdXJyZW50X3BhdGggPSBQQVRILnJlc29sdmUoUEFUSC5kaXJuYW1lKGN1cnJlbnRfcGF0aCks
IGxpbmspOwotICAgICAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChjdXJyZW50
X3BhdGgsIHsgcmVjdXJzZV9jb3VudDogb3B0cy5yZWN1cnNlX2NvdW50IH0pOwotICAgICAgICAg
ICAgICBjdXJyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgICAgIGlmIChjb3VudCsrID4g
NDApIHsgIC8vIGxpbWl0IG1heCBjb25zZWN1dGl2ZSBzeW1saW5rcyB0byA0MCAoU1lNTE9PUF9N
QVgpLgotICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVMT09QKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgICAgICByZXR1cm4geyBwYXRoOiBjdXJyZW50X3BhdGgsIG5vZGU6IGN1cnJl
bnQgfTsKLSAgICAgIH0sZ2V0UGF0aDpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICB2YXIgcGF0
aDsKLSAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICBpZiAoRlMuaXNSb290KG5vZGUp
KSB7Ci0gICAgICAgICAgICByZXR1cm4gcGF0aCA/IFBBVEguam9pbihub2RlLm1vdW50Lm1vdW50
cG9pbnQsIHBhdGgpIDogbm9kZS5tb3VudC5tb3VudHBvaW50OwotICAgICAgICAgIH0KLSAgICAg
ICAgICBwYXRoID0gcGF0aCA/IFBBVEguam9pbihub2RlLm5hbWUsIHBhdGgpIDogbm9kZS5uYW1l
OwotICAgICAgICAgIG5vZGUgPSBub2RlLnBhcmVudDsKLSAgICAgICAgfQotICAgICAgfSxmbGFn
TW9kZXM6eyJyIjowLCJycyI6ODE5MiwicisiOjIsInciOjE1MzcsInd4IjozNTg1LCJ4dyI6MzU4
NSwidysiOjE1MzgsInd4KyI6MzU4NiwieHcrIjozNTg2LCJhIjo1MjEsImF4IjoyNTY5LCJ4YSI6
MjU2OSwiYSsiOjUyMiwiYXgrIjoyNTcwLCJ4YSsiOjI1NzB9LG1vZGVTdHJpbmdUb0ZsYWdzOmZ1
bmN0aW9uIChzdHIpIHsKLSAgICAgICAgdmFyIGZsYWdzID0gRlMuZmxhZ01vZGVzW3N0cl07Ci0g
ICAgICAgIGlmICh0eXBlb2YgZmxhZ3MgPT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCdVbmtub3duIGZpbGUgb3BlbiBtb2RlOiAnICsgc3RyKTsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gZmxhZ3M7Ci0gICAgICB9LGZsYWdzVG9QZXJtaXNzaW9uU3RyaW5n
OmZ1bmN0aW9uIChmbGFnKSB7Ci0gICAgICAgIHZhciBhY2Ntb2RlID0gZmxhZyAmIDM7Ci0gICAg
ICAgIHZhciBwZXJtcyA9IFsncicsICd3JywgJ3J3J11bYWNjbW9kZV07Ci0gICAgICAgIGlmICgo
ZmxhZyAmIDEwMjQpKSB7Ci0gICAgICAgICAgcGVybXMgKz0gJ3cnOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBwZXJtczsKLSAgICAgIH0sbm9kZVBlcm1pc3Npb25zOmZ1bmN0aW9uIChub2Rl
LCBwZXJtcykgewotICAgICAgICBpZiAoRlMuaWdub3JlUGVybWlzc2lvbnMpIHsKLSAgICAgICAg
ICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgICAgICAvLyByZXR1cm4gMCBpZiBhbnkgdXNlciwg
Z3JvdXAgb3Igb3duZXIgYml0cyBhcmUgc2V0LgotICAgICAgICBpZiAocGVybXMuaW5kZXhPZign
cicpICE9PSAtMSAmJiAhKG5vZGUubW9kZSAmIDI5MikpIHsKLSAgICAgICAgICByZXR1cm4gRVJS
Tk9fQ09ERVMuRUFDQ0VTOwotICAgICAgICB9IGVsc2UgaWYgKHBlcm1zLmluZGV4T2YoJ3cnKSAh
PT0gLTEgJiYgIShub2RlLm1vZGUgJiAxNDYpKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5PX0NP
REVTLkVBQ0NFUzsKLSAgICAgICAgfSBlbHNlIGlmIChwZXJtcy5pbmRleE9mKCd4JykgIT09IC0x
ICYmICEobm9kZS5tb2RlICYgNzMpKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVB
Q0NFUzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICAgIH0sbWF5TG9va3VwOmZ1
bmN0aW9uIChkaXIpIHsKLSAgICAgICAgcmV0dXJuIEZTLm5vZGVQZXJtaXNzaW9ucyhkaXIsICd4
Jyk7Ci0gICAgICB9LG1heU1rbm9kOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHN3aXRjaCAo
bW9kZSAmIDAxNzAwMDApIHsKLSAgICAgICAgICBjYXNlIDAxMDAwMDA6Ci0gICAgICAgICAgY2Fz
ZSAwMDIwMDAwOgotICAgICAgICAgIGNhc2UgMDA2MDAwMDoKLSAgICAgICAgICBjYXNlIDAwMTAw
MDA6Ci0gICAgICAgICAgY2FzZSAwMTQwMDAwOgotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FSU5WQUw7Ci0g
ICAgICAgIH0KLSAgICAgIH0sbWF5Q3JlYXRlOmZ1bmN0aW9uIChkaXIsIG5hbWUpIHsKLSAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUoZGlyLCBuYW1lKTsK
LSAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUVYSVNUOwotICAgICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIEZTLm5vZGVQZXJtaXNzaW9ucyhkaXIsICd3
eCcpOwotICAgICAgfSxtYXlEZWxldGU6ZnVuY3Rpb24gKGRpciwgbmFtZSwgaXNkaXIpIHsKLSAg
ICAgICAgdmFyIG5vZGU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbm9kZSA9IEZTLmxvb2t1
cE5vZGUoZGlyLCBuYW1lKTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHJldHVy
biBlLmVycm5vOwotICAgICAgICB9Ci0gICAgICAgIHZhciBlcnIgPSBGUy5ub2RlUGVybWlzc2lv
bnMoZGlyLCAnd3gnKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHJldHVybiBlcnI7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGlzZGlyKSB7Ci0gICAgICAgICAgaWYgKCFGUy5pc0Rp
cihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRU5PVERJUjsK
LSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKEZTLmlzUm9vdChub2RlKSB8fCBGUy5nZXRQYXRo
KG5vZGUpID09PSBGUy5jdXJyZW50UGF0aCkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NP
REVTLkVCVVNZOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBpZiAo
RlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVJ
U0RJUjsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9
LG1heU9wZW46ZnVuY3Rpb24gKG5vZGUsIGZsYWdzKSB7Ci0gICAgICAgIGlmICghbm9kZSkgewot
ICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FTk9FTlQ7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKEZTLmlzTGluayhub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVT
LkVMT09QOwotICAgICAgICB9IGVsc2UgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAg
ICAgICBpZiAoKGZsYWdzICYgMykgIT09IDAgfHwgIC8vIG9wZW5pbmcgZm9yIHdyaXRlCi0gICAg
ICAgICAgICAgIChmbGFncyAmIDEwMjQpKSB7Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09E
RVMuRUlTRElSOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gRlMubm9k
ZVBlcm1pc3Npb25zKG5vZGUsIEZTLmZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nKGZsYWdzKSk7Ci0g
ICAgICB9LGNocmRldl9zdHJlYW1fb3BzOntvcGVuOmZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICAg
ICAgICB2YXIgZGV2aWNlID0gRlMuZ2V0RGV2aWNlKHN0cmVhbS5ub2RlLnJkZXYpOwotICAgICAg
ICAgIC8vIG92ZXJyaWRlIG5vZGUncyBzdHJlYW0gb3BzIHdpdGggdGhlIGRldmljZSdzCi0gICAg
ICAgICAgc3RyZWFtLnN0cmVhbV9vcHMgPSBkZXZpY2Uuc3RyZWFtX29wczsKLSAgICAgICAgICAv
LyBmb3J3YXJkIHRoZSBvcGVuIGNhbGwKLSAgICAgICAgICBpZiAoc3RyZWFtLnN0cmVhbV9vcHMu
b3BlbikgewotICAgICAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMub3BlbihzdHJlYW0pOwotICAg
ICAgICAgIH0KLSAgICAgICAgfSxsbHNlZWs6ZnVuY3Rpb24gKCkgewotICAgICAgICAgIHRocm93
IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSk7Ci0gICAgICAgIH19LG1ham9y
OmZ1bmN0aW9uIChkZXYpIHsKLSAgICAgICAgcmV0dXJuICgoZGV2KSA+PiA4KTsKLSAgICAgIH0s
bWlub3I6ZnVuY3Rpb24gKGRldikgewotICAgICAgICByZXR1cm4gKChkZXYpICYgMHhmZik7Ci0g
ICAgICB9LG1ha2VkZXY6ZnVuY3Rpb24gKG1hLCBtaSkgewotICAgICAgICByZXR1cm4gKChtYSkg
PDwgOCB8IChtaSkpOwotICAgICAgfSxyZWdpc3RlckRldmljZTpmdW5jdGlvbiAoZGV2LCBvcHMp
IHsKLSAgICAgICAgRlMuZGV2aWNlc1tkZXZdID0geyBzdHJlYW1fb3BzOiBvcHMgfTsKLSAgICAg
IH0sZ2V0RGV2aWNlOmZ1bmN0aW9uIChkZXYpIHsKLSAgICAgICAgcmV0dXJuIEZTLmRldmljZXNb
ZGV2XTsKLSAgICAgIH0sTUFYX09QRU5fRkRTOjQwOTYsbmV4dGZkOmZ1bmN0aW9uIChmZF9zdGFy
dCwgZmRfZW5kKSB7Ci0gICAgICAgIGZkX3N0YXJ0ID0gZmRfc3RhcnQgfHwgMTsKLSAgICAgICAg
ZmRfZW5kID0gZmRfZW5kIHx8IEZTLk1BWF9PUEVOX0ZEUzsKLSAgICAgICAgZm9yICh2YXIgZmQg
PSBmZF9zdGFydDsgZmQgPD0gZmRfZW5kOyBmZCsrKSB7Ci0gICAgICAgICAgaWYgKCFGUy5zdHJl
YW1zW2ZkXSkgewotICAgICAgICAgICAgcmV0dXJuIGZkOwotICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTUZJTEUpOwot
ICAgICAgfSxnZXRTdHJlYW06ZnVuY3Rpb24gKGZkKSB7Ci0gICAgICAgIHJldHVybiBGUy5zdHJl
YW1zW2ZkXTsKLSAgICAgIH0sY3JlYXRlU3RyZWFtOmZ1bmN0aW9uIChzdHJlYW0sIGZkX3N0YXJ0
LCBmZF9lbmQpIHsKLSAgICAgICAgdmFyIGZkID0gRlMubmV4dGZkKGZkX3N0YXJ0LCBmZF9lbmQp
OwotICAgICAgICBzdHJlYW0uZmQgPSBmZDsKLSAgICAgICAgLy8gY29tcGF0aWJpbGl0eQotICAg
ICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhzdHJlYW0sIHsKLSAgICAgICAgICBvYmplY3Q6
IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBzdHJlYW0ubm9kZTsgfSwK
LSAgICAgICAgICAgIHNldDogZnVuY3Rpb24odmFsKSB7IHN0cmVhbS5ub2RlID0gdmFsOyB9Ci0g
ICAgICAgICAgfSwKLSAgICAgICAgICBpc1JlYWQ6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rp
b24oKSB7IHJldHVybiAoc3RyZWFtLmZsYWdzICYgMykgIT09IDE7IH0KLSAgICAgICAgICB9LAot
ICAgICAgICAgIGlzV3JpdGU6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVy
biAoc3RyZWFtLmZsYWdzICYgMykgIT09IDA7IH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGlz
QXBwZW5kOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gKHN0cmVhbS5m
bGFncyAmIDgpOyB9Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgRlMuc3RyZWFt
c1tmZF0gPSBzdHJlYW07Ci0gICAgICAgIHJldHVybiBzdHJlYW07Ci0gICAgICB9LGNsb3NlU3Ry
ZWFtOmZ1bmN0aW9uIChmZCkgewotICAgICAgICBGUy5zdHJlYW1zW2ZkXSA9IG51bGw7Ci0gICAg
ICB9LGdldE1vZGU6ZnVuY3Rpb24gKGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIHZhciBt
b2RlID0gMDsKLSAgICAgICAgaWYgKGNhblJlYWQpIG1vZGUgfD0gMjkyIHwgNzM7Ci0gICAgICAg
IGlmIChjYW5Xcml0ZSkgbW9kZSB8PSAxNDY7Ci0gICAgICAgIHJldHVybiBtb2RlOwotICAgICAg
fSxqb2luUGF0aDpmdW5jdGlvbiAocGFydHMsIGZvcmNlUmVsYXRpdmUpIHsKLSAgICAgICAgdmFy
IHBhdGggPSBQQVRILmpvaW4uYXBwbHkobnVsbCwgcGFydHMpOwotICAgICAgICBpZiAoZm9yY2VS
ZWxhdGl2ZSAmJiBwYXRoWzBdID09ICcvJykgcGF0aCA9IHBhdGguc3Vic3RyKDEpOwotICAgICAg
ICByZXR1cm4gcGF0aDsKLSAgICAgIH0sYWJzb2x1dGVQYXRoOmZ1bmN0aW9uIChyZWxhdGl2ZSwg
YmFzZSkgewotICAgICAgICByZXR1cm4gUEFUSC5yZXNvbHZlKGJhc2UsIHJlbGF0aXZlKTsKLSAg
ICAgIH0sc3RhbmRhcmRpemVQYXRoOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHJldHVybiBQ
QVRILm5vcm1hbGl6ZShwYXRoKTsKLSAgICAgIH0sZmluZE9iamVjdDpmdW5jdGlvbiAocGF0aCwg
ZG9udFJlc29sdmVMYXN0TGluaykgewotICAgICAgICB2YXIgcmV0ID0gRlMuYW5hbHl6ZVBhdGgo
cGF0aCwgZG9udFJlc29sdmVMYXN0TGluayk7Ci0gICAgICAgIGlmIChyZXQuZXhpc3RzKSB7Ci0g
ICAgICAgICAgcmV0dXJuIHJldC5vYmplY3Q7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
X19fc2V0RXJyTm8ocmV0LmVycm9yKTsKLSAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAg
fQotICAgICAgfSxhbmFseXplUGF0aDpmdW5jdGlvbiAocGF0aCwgZG9udFJlc29sdmVMYXN0TGlu
aykgewotICAgICAgICAvLyBvcGVyYXRlIGZyb20gd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSBz
eW1saW5rJ3MgdGFyZ2V0Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250UmVzb2x2ZUxhc3RMaW5rIH0pOwotICAg
ICAgICAgIHBhdGggPSBsb29rdXAucGF0aDsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAg
ICB9Ci0gICAgICAgIHZhciByZXQgPSB7Ci0gICAgICAgICAgaXNSb290OiBmYWxzZSwgZXhpc3Rz
OiBmYWxzZSwgZXJyb3I6IDAsIG5hbWU6IG51bGwsIHBhdGg6IG51bGwsIG9iamVjdDogbnVsbCwK
LSAgICAgICAgICBwYXJlbnRFeGlzdHM6IGZhbHNlLCBwYXJlbnRQYXRoOiBudWxsLCBwYXJlbnRP
YmplY3Q6IG51bGwKLSAgICAgICAgfTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICB2YXIgbG9v
a3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAgICAgICBy
ZXQucGFyZW50RXhpc3RzID0gdHJ1ZTsKLSAgICAgICAgICByZXQucGFyZW50UGF0aCA9IGxvb2t1
cC5wYXRoOwotICAgICAgICAgIHJldC5wYXJlbnRPYmplY3QgPSBsb29rdXAubm9kZTsKLSAgICAg
ICAgICByZXQubmFtZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7Ci0gICAgICAgICAgbG9va3VwID0g
RlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogIWRvbnRSZXNvbHZlTGFzdExpbmsgfSk7Ci0g
ICAgICAgICAgcmV0LmV4aXN0cyA9IHRydWU7Ci0gICAgICAgICAgcmV0LnBhdGggPSBsb29rdXAu
cGF0aDsKLSAgICAgICAgICByZXQub2JqZWN0ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgcmV0
Lm5hbWUgPSBsb29rdXAubm9kZS5uYW1lOwotICAgICAgICAgIHJldC5pc1Jvb3QgPSBsb29rdXAu
cGF0aCA9PT0gJy8nOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgcmV0LmVycm9y
ID0gZS5lcnJubzsKLSAgICAgICAgfTsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgIH0sY3Jl
YXRlRm9sZGVyOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0g
ICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8g
cGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgdmFyIG1vZGUgPSBG
Uy5nZXRNb2RlKGNhblJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgcmV0dXJuIEZTLm1rZGlyKHBh
dGgsIG1vZGUpOwotICAgICAgfSxjcmVhdGVQYXRoOmZ1bmN0aW9uIChwYXJlbnQsIHBhdGgsIGNh
blJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIHBhcmVudCA9IHR5cGVvZiBwYXJlbnQgPT09ICdz
dHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpOwotICAgICAgICB2YXIgcGFydHMg
PSBwYXRoLnNwbGl0KCcvJykucmV2ZXJzZSgpOwotICAgICAgICB3aGlsZSAocGFydHMubGVuZ3Ro
KSB7Ci0gICAgICAgICAgdmFyIHBhcnQgPSBwYXJ0cy5wb3AoKTsKLSAgICAgICAgICBpZiAoIXBh
cnQpIGNvbnRpbnVlOwotICAgICAgICAgIHZhciBjdXJyZW50ID0gUEFUSC5qb2luKHBhcmVudCwg
cGFydCk7Ci0gICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIEZTLm1rZGlyKGN1cnJlbnQsIDA3
NzcpOwotICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIC8vIGlnbm9yZSBFRVhJ
U1QKLSAgICAgICAgICB9Ci0gICAgICAgICAgcGFyZW50ID0gY3VycmVudDsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gY3VycmVudDsKLSAgICAgIH0sY3JlYXRlRmlsZTpmdW5jdGlvbiAocGFy
ZW50LCBuYW1lLCBwcm9wZXJ0aWVzLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIg
cGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZT
LmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2RlID0gRlMuZ2V0TW9kZShj
YW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgIHJldHVybiBGUy5jcmVhdGUocGF0aCwgbW9kZSk7
Ci0gICAgICB9LGNyZWF0ZURhdGFGaWxlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIGRhdGEsIGNh
blJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBw
YXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsK
LSAgICAgICAgdmFyIG1vZGUgPSBGUy5nZXRNb2RlKGNhblJlYWQsIGNhbldyaXRlKTsKLSAgICAg
ICAgdmFyIG5vZGUgPSBGUy5jcmVhdGUocGF0aCwgbW9kZSk7Ci0gICAgICAgIGlmIChkYXRhKSB7
Ci0gICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykgewotICAgICAgICAgICAg
dmFyIGFyciA9IG5ldyBBcnJheShkYXRhLmxlbmd0aCk7Ci0gICAgICAgICAgICBmb3IgKHZhciBp
ID0gMCwgbGVuID0gZGF0YS5sZW5ndGg7IGkgPCBsZW47ICsraSkgYXJyW2ldID0gZGF0YS5jaGFy
Q29kZUF0KGkpOwotICAgICAgICAgICAgZGF0YSA9IGFycjsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgLy8gbWFrZSBzdXJlIHdlIGNhbiB3cml0ZSB0byB0aGUgZmlsZQotICAgICAgICAgIEZTLmNo
bW9kKHBhdGgsIG1vZGUgfCAxNDYpOwotICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5vcGVuKHBh
dGgsICd3Jyk7Ci0gICAgICAgICAgRlMud3JpdGUoc3RyZWFtLCBkYXRhLCAwLCBkYXRhLmxlbmd0
aCwgMCk7Ci0gICAgICAgICAgRlMuY2xvc2Uoc3RyZWFtKTsKLSAgICAgICAgICBGUy5jaG1vZChw
YXRoLCBtb2RlKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgIH0sY3Jl
YXRlRGV2aWNlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIGlucHV0LCBvdXRwdXQpIHsKLSAgICAg
ICAgdmFyIHBhdGggPSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJl
bnQgOiBGUy5nZXRQYXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICB2YXIgbW9kZSA9IGlucHV0
ICYmIG91dHB1dCA/IDA3NzcgOiAoaW5wdXQgPyAwMzMzIDogMDU1NSk7Ci0gICAgICAgIGlmICgh
RlMuY3JlYXRlRGV2aWNlLm1ham9yKSBGUy5jcmVhdGVEZXZpY2UubWFqb3IgPSA2NDsKLSAgICAg
ICAgdmFyIGRldiA9IEZTLm1ha2VkZXYoRlMuY3JlYXRlRGV2aWNlLm1ham9yKyssIDApOwotICAg
ICAgICAvLyBDcmVhdGUgYSBmYWtlIGRldmljZSB0aGF0IGEgc2V0IG9mIHN0cmVhbSBvcHMgdG8g
ZW11bGF0ZQotICAgICAgICAvLyB0aGUgb2xkIGJlaGF2aW9yLgotICAgICAgICBGUy5yZWdpc3Rl
ckRldmljZShkZXYsIHsKLSAgICAgICAgICBvcGVuOiBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICAg
ICAgICAgIHN0cmVhbS5zZWVrYWJsZSA9IGZhbHNlOwotICAgICAgICAgIH0sCi0gICAgICAgICAg
Y2xvc2U6IGZ1bmN0aW9uKHN0cmVhbSkgewotICAgICAgICAgICAgLy8gZmx1c2ggYW55IHBlbmRp
bmcgbGluZSBkYXRhCi0gICAgICAgICAgICBpZiAob3V0cHV0ICYmIG91dHB1dC5idWZmZXIgJiYg
b3V0cHV0LmJ1ZmZlci5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgb3V0cHV0KDEwKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICB9LAotICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uKHN0cmVhbSwg
YnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zIC8qIGlnbm9yZWQgKi8pIHsKLSAgICAgICAgICAg
IHZhciBieXRlc1JlYWQgPSAwOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5n
dGg7IGkrKykgewotICAgICAgICAgICAgICB2YXIgcmVzdWx0OwotICAgICAgICAgICAgICB0cnkg
ewotICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlucHV0KCk7Ci0gICAgICAgICAgICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FSU8pOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09
IHVuZGVmaW5lZCAmJiBieXRlc1JlYWQgPT09IDApIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUdBSU4pOwotICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQp
IGJyZWFrOwotICAgICAgICAgICAgICBieXRlc1JlYWQrKzsKLSAgICAgICAgICAgICAgYnVmZmVy
W29mZnNldCtpXSA9IHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChieXRl
c1JlYWQpIHsKLSAgICAgICAgICAgICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3co
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBieXRlc1JlYWQ7Ci0gICAgICAg
ICAgfSwKLSAgICAgICAgICB3cml0ZTogZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwg
bGVuZ3RoLCBwb3MpIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBp
KyspIHsKLSAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBvdXRwdXQoYnVmZmVy
W29mZnNldCtpXSk7Ci0gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobGVuZ3RoKSB7Ci0gICAgICAgICAg
ICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICByZXR1cm4gaTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgICBy
ZXR1cm4gRlMubWtkZXYocGF0aCwgbW9kZSwgZGV2KTsKLSAgICAgIH0sY3JlYXRlTGluazpmdW5j
dGlvbiAocGFyZW50LCBuYW1lLCB0YXJnZXQsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAg
IHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50
IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgcmV0dXJuIEZTLnN5bWxpbmso
dGFyZ2V0LCBwYXRoKTsKLSAgICAgIH0sZm9yY2VMb2FkRmlsZTpmdW5jdGlvbiAob2JqKSB7Ci0g
ICAgICAgIGlmIChvYmouaXNEZXZpY2UgfHwgb2JqLmlzRm9sZGVyIHx8IG9iai5saW5rIHx8IG9i
ai5jb250ZW50cykgcmV0dXJuIHRydWU7Ci0gICAgICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKLSAg
ICAgICAgaWYgKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkxhenkgbG9hZGluZyBzaG91bGQgaGF2ZSBiZWVuIHBlcmZv
cm1lZCAoY29udGVudHMgc2V0KSBpbiBjcmVhdGVMYXp5RmlsZSwgYnV0IGl0IHdhcyBub3QuIExh
enkgbG9hZGluZyBvbmx5IHdvcmtzIGluIHdlYiB3b3JrZXJzLiBVc2UgLS1lbWJlZC1maWxlIG9y
IC0tcHJlbG9hZC1maWxlIGluIGVtY2Mgb24gdGhlIG1haW4gdGhyZWFkLiIpOwotICAgICAgICB9
IGVsc2UgaWYgKE1vZHVsZVsncmVhZCddKSB7Ci0gICAgICAgICAgLy8gQ29tbWFuZC1saW5lLgot
ICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAvLyBXQVJOSU5HOiBDYW4ndCByZWFkIGJpbmFy
eSBmaWxlcyBpbiBWOCdzIGQ4IG9yIHRyYWNlbW9ua2V5J3MganMsIGFzCi0gICAgICAgICAgICAv
LyAgICAgICAgICByZWFkKCkgd2lsbCB0cnkgdG8gcGFyc2UgVVRGOC4KLSAgICAgICAgICAgIG9i
ai5jb250ZW50cyA9IGludEFycmF5RnJvbVN0cmluZyhNb2R1bGVbJ3JlYWQnXShvYmoudXJsKSwg
dHJ1ZSk7Ci0gICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgc3VjY2VzcyA9IGZh
bHNlOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ0Nhbm5vdCBsb2FkIHdpdGhvdXQgcmVhZCgpIG9yIFhNTEh0dHBSZXF1ZXN0LicpOwot
ICAgICAgICB9Ci0gICAgICAgIGlmICghc3VjY2VzcykgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMu
RUlPKTsKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7Ci0gICAgICB9LGNyZWF0ZUxhenlGaWxlOmZ1
bmN0aW9uIChwYXJlbnQsIG5hbWUsIHVybCwgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAg
aWYgKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICBp
ZiAoIUVOVklST05NRU5UX0lTX1dPUktFUikgdGhyb3cgJ0Nhbm5vdCBkbyBzeW5jaHJvbm91cyBi
aW5hcnkgWEhScyBvdXRzaWRlIHdlYndvcmtlcnMgaW4gbW9kZXJuIGJyb3dzZXJzLiBVc2UgLS1l
bWJlZC1maWxlIG9yIC0tcHJlbG9hZC1maWxlIGluIGVtY2MnOwotICAgICAgICAgIC8vIExhenkg
Y2h1bmtlZCBVaW50OEFycmF5IChpbXBsZW1lbnRzIGdldCBhbmQgbGVuZ3RoIGZyb20gVWludDhB
cnJheSkuIEFjdHVhbCBnZXR0aW5nIGlzIGFic3RyYWN0ZWQgYXdheSBmb3IgZXZlbnR1YWwgcmV1
c2UuCi0gICAgICAgICAgdmFyIExhenlVaW50OEFycmF5ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICB0aGlzLmxlbmd0aEtub3duID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLmNodW5rcyA9
IFtdOyAvLyBMb2FkZWQgY2h1bmtzLiBJbmRleCBpcyB0aGUgY2h1bmsgbnVtYmVyCi0gICAgICAg
ICAgfQotICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihp
ZHgpIHsKLSAgICAgICAgICAgIGlmIChpZHggPiB0aGlzLmxlbmd0aC0xIHx8IGlkeCA8IDApIHsK
LSAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHZhciBjaHVua09mZnNldCA9IGlkeCAlIHRoaXMuY2h1bmtTaXplOwotICAgICAgICAgICAg
dmFyIGNodW5rTnVtID0gTWF0aC5mbG9vcihpZHggLyB0aGlzLmNodW5rU2l6ZSk7Ci0gICAgICAg
ICAgICByZXR1cm4gdGhpcy5nZXR0ZXIoY2h1bmtOdW0pW2NodW5rT2Zmc2V0XTsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgTGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLnNldERhdGFHZXR0ZXIgPSBm
dW5jdGlvbihnZXR0ZXIpIHsKLSAgICAgICAgICAgIHRoaXMuZ2V0dGVyID0gZ2V0dGVyOwotICAg
ICAgICAgIH0KLSAgICAgICAgICBMYXp5VWludDhBcnJheS5wcm90b3R5cGUuY2FjaGVMZW5ndGgg
PSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgLy8gRmluZCBsZW5ndGgKLSAgICAgICAgICAg
ICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgICAgICAgICAgICB4aHIub3Bl
bignSEVBRCcsIHVybCwgZmFsc2UpOwotICAgICAgICAgICAgICB4aHIuc2VuZChudWxsKTsKLSAg
ICAgICAgICAgICAgaWYgKCEoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCB8
fCB4aHIuc3RhdHVzID09PSAzMDQpKSB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgIiAr
IHVybCArICIuIFN0YXR1czogIiArIHhoci5zdGF0dXMpOwotICAgICAgICAgICAgICB2YXIgZGF0
YWxlbmd0aCA9IE51bWJlcih4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtbGVuZ3RoIikp
OwotICAgICAgICAgICAgICB2YXIgaGVhZGVyOwotICAgICAgICAgICAgICB2YXIgaGFzQnl0ZVNl
cnZpbmcgPSAoaGVhZGVyID0geGhyLmdldFJlc3BvbnNlSGVhZGVyKCJBY2NlcHQtUmFuZ2VzIikp
ICYmIGhlYWRlciA9PT0gImJ5dGVzIjsKLSAgICAgICAgICAgICAgdmFyIGNodW5rU2l6ZSA9IDEw
MjQqMTAyNDsgLy8gQ2h1bmsgc2l6ZSBpbiBieXRlcwotICAgICAgICAgICAgICBpZiAoIWhhc0J5
dGVTZXJ2aW5nKSBjaHVua1NpemUgPSBkYXRhbGVuZ3RoOwotICAgICAgICAgICAgICAvLyBGdW5j
dGlvbiB0byBnZXQgYSByYW5nZSBmcm9tIHRoZSByZW1vdGUgVVJMLgotICAgICAgICAgICAgICB2
YXIgZG9YSFIgPSAoZnVuY3Rpb24oZnJvbSwgdG8pIHsKLSAgICAgICAgICAgICAgICBpZiAoZnJv
bSA+IHRvKSB0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcmFuZ2UgKCIgKyBmcm9tICsgIiwgIiAr
IHRvICsgIikgb3Igbm8gYnl0ZXMgcmVxdWVzdGVkISIpOwotICAgICAgICAgICAgICAgIGlmICh0
byA+IGRhdGFsZW5ndGgtMSkgdGhyb3cgbmV3IEVycm9yKCJvbmx5ICIgKyBkYXRhbGVuZ3RoICsg
IiBieXRlcyBhdmFpbGFibGUhIHByb2dyYW1tZXIgZXJyb3IhIik7Ci0gICAgICAgICAgICAgICAg
Ly8gVE9ETzogVXNlIG1velJlc3BvbnNlQXJyYXlCdWZmZXIsIHJlc3BvbnNlU3RyZWFtLCBldGMu
IGlmIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7Ci0gICAgICAgICAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2UpOwotICAg
ICAgICAgICAgICAgIGlmIChkYXRhbGVuZ3RoICE9PSBjaHVua1NpemUpIHhoci5zZXRSZXF1ZXN0
SGVhZGVyKCJSYW5nZSIsICJieXRlcz0iICsgZnJvbSArICItIiArIHRvKTsKLSAgICAgICAgICAg
ICAgICAvLyBTb21lIGhpbnRzIHRvIHRoZSBicm93c2VyIHRoYXQgd2Ugd2FudCBiaW5hcnkgZGF0
YS4KLSAgICAgICAgICAgICAgICBpZiAodHlwZW9mIFVpbnQ4QXJyYXkgIT0gJ3VuZGVmaW5lZCcp
IHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOwotICAgICAgICAgICAgICAgIGlmICh4
aHIub3ZlcnJpZGVNaW1lVHlwZSkgewotICAgICAgICAgICAgICAgICAgeGhyLm92ZXJyaWRlTWlt
ZVR5cGUoJ3RleHQvcGxhaW47IGNoYXJzZXQ9eC11c2VyLWRlZmluZWQnKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgICAgICAgICAgICAg
aWYgKCEoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCB8fCB4aHIuc3RhdHVz
ID09PSAzMDQpKSB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgIiArIHVybCArICIuIFN0
YXR1czogIiArIHhoci5zdGF0dXMpOwotICAgICAgICAgICAgICAgIGlmICh4aHIucmVzcG9uc2Ug
IT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5
KHhoci5yZXNwb25zZSB8fCBbXSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgIHJldHVybiBpbnRBcnJheUZyb21TdHJpbmcoeGhyLnJlc3BvbnNlVGV4dCB8fCAn
JywgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgICAgdmFyIGxhenlBcnJheSA9IHRoaXM7Ci0gICAgICAgICAgICAgIGxhenlBcnJheS5zZXRE
YXRhR2V0dGVyKGZ1bmN0aW9uKGNodW5rTnVtKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHN0YXJ0
ID0gY2h1bmtOdW0gKiBjaHVua1NpemU7Ci0gICAgICAgICAgICAgICAgdmFyIGVuZCA9IChjaHVu
a051bSsxKSAqIGNodW5rU2l6ZSAtIDE7IC8vIGluY2x1ZGluZyB0aGlzIGJ5dGUKLSAgICAgICAg
ICAgICAgICBlbmQgPSBNYXRoLm1pbihlbmQsIGRhdGFsZW5ndGgtMSk7IC8vIGlmIGRhdGFsZW5n
dGgtMSBpcyBzZWxlY3RlZCwgdGhpcyBpcyB0aGUgbGFzdCBibG9jawotICAgICAgICAgICAgICAg
IGlmICh0eXBlb2YobGF6eUFycmF5LmNodW5rc1tjaHVua051bV0pID09PSAidW5kZWZpbmVkIikg
ewotICAgICAgICAgICAgICAgICAgbGF6eUFycmF5LmNodW5rc1tjaHVua051bV0gPSBkb1hIUihz
dGFydCwgZW5kKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGVv
ZihsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXSkgPT09ICJ1bmRlZmluZWQiKSB0aHJvdyBuZXcg
RXJyb3IoImRvWEhSIGZhaWxlZCEiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbGF6eUFycmF5
LmNodW5rc1tjaHVua051bV07Ci0gICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICB0aGlz
Ll9sZW5ndGggPSBkYXRhbGVuZ3RoOwotICAgICAgICAgICAgICB0aGlzLl9jaHVua1NpemUgPSBj
aHVua1NpemU7Ci0gICAgICAgICAgICAgIHRoaXMubGVuZ3RoS25vd24gPSB0cnVlOwotICAgICAg
ICAgIH0KLSAgICAgICAgICB2YXIgbGF6eUFycmF5ID0gbmV3IExhenlVaW50OEFycmF5KCk7Ci0g
ICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlBcnJheSwgImxlbmd0aCIsIHsKLSAg
ICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgIGlmKCF0aGlz
Lmxlbmd0aEtub3duKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxlbmd0aCgp
OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xl
bmd0aDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgIH0pOwotICAgICAgICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShsYXp5QXJyYXksICJjaHVua1NpemUiLCB7Ci0gICAgICAgICAgICAgIGdl
dDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBpZighdGhpcy5sZW5ndGhLbm93bikg
ewotICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVMZW5ndGgoKTsKLSAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jaHVua1NpemU7Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHsg
aXNEZXZpY2U6IGZhbHNlLCBjb250ZW50czogbGF6eUFycmF5IH07Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSB7IGlzRGV2aWNlOiBmYWxzZSwgdXJsOiB1cmwg
fTsKLSAgICAgICAgfQotICAgICAgICB2YXIgbm9kZSA9IEZTLmNyZWF0ZUZpbGUocGFyZW50LCBu
YW1lLCBwcm9wZXJ0aWVzLCBjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgIC8vIFRoaXMgaXMg
YSB0b3RhbCBoYWNrLCBidXQgSSB3YW50IHRvIGdldCB0aGlzIGxhenkgZmlsZSBjb2RlIG91dCBv
ZiB0aGUKLSAgICAgICAgLy8gY29yZSBvZiBNRU1GUy4gSWYgd2Ugd2FudCB0byBrZWVwIHRoaXMg
bGF6eSBmaWxlIGNvbmNlcHQgSSBmZWVsIGl0IHNob3VsZAotICAgICAgICAvLyBiZSBpdHMgb3du
IHRoaW4gTEFaWUZTIHByb3h5aW5nIGNhbGxzIHRvIE1FTUZTLgotICAgICAgICBpZiAocHJvcGVy
dGllcy5jb250ZW50cykgewotICAgICAgICAgIG5vZGUuY29udGVudHMgPSBwcm9wZXJ0aWVzLmNv
bnRlbnRzOwotICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnRpZXMudXJsKSB7Ci0gICAgICAgICAg
bm9kZS5jb250ZW50cyA9IG51bGw7Ci0gICAgICAgICAgbm9kZS51cmwgPSBwcm9wZXJ0aWVzLnVy
bDsKLSAgICAgICAgfQotICAgICAgICAvLyBvdmVycmlkZSBlYWNoIHN0cmVhbSBvcCB3aXRoIG9u
ZSB0aGF0IHRyaWVzIHRvIGZvcmNlIGxvYWQgdGhlIGxhenkgZmlsZSBmaXJzdAotICAgICAgICB2
YXIgc3RyZWFtX29wcyA9IHt9OwotICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG5vZGUu
c3RyZWFtX29wcyk7Ci0gICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHsKLSAgICAg
ICAgICB2YXIgZm4gPSBub2RlLnN0cmVhbV9vcHNba2V5XTsKLSAgICAgICAgICBzdHJlYW1fb3Bz
W2tleV0gPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGlmICghRlMuZm9yY2VMb2FkRmlsZShu
b2RlKSkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FSU8pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KG51bGws
IGFyZ3VtZW50cyk7Ci0gICAgICAgICAgfTsKLSAgICAgICAgfSk7Ci0gICAgICAgIC8vIHVzZSBh
IGN1c3RvbSByZWFkIGZ1bmN0aW9uCi0gICAgICAgIHN0cmVhbV9vcHMucmVhZCA9IGZ1bmN0aW9u
KHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKLSAgICAgICAgICBp
ZiAoIUZTLmZvcmNlTG9hZEZpbGUobm9kZSkpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5F
cnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBj
b250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwotICAgICAgICAgIHZhciBzaXplID0gTWF0
aC5taW4oY29udGVudHMubGVuZ3RoIC0gcG9zaXRpb24sIGxlbmd0aCk7Ci0gICAgICAgICAgaWYg
KGNvbnRlbnRzLnNsaWNlKSB7IC8vIG5vcm1hbCBhcnJheQotICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIGld
ID0gY29udGVudHNbcG9zaXRpb24gKyBpXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsgLy8gTGF6
eVVpbnQ4QXJyYXkgZnJvbSBzeW5jIGJpbmFyeSBYSFIKLSAgICAgICAgICAgICAgYnVmZmVyW29m
ZnNldCArIGldID0gY29udGVudHMuZ2V0KHBvc2l0aW9uICsgaSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBzaXplOwotICAgICAgICB9OwotICAgICAgICBu
b2RlLnN0cmVhbV9vcHMgPSBzdHJlYW1fb3BzOwotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAg
IH0sY3JlYXRlUHJlbG9hZGVkRmlsZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCB1cmwsIGNhblJl
YWQsIGNhbldyaXRlLCBvbmxvYWQsIG9uZXJyb3IsIGRvbnRDcmVhdGVGaWxlKSB7Ci0gICAgICAg
IEJyb3dzZXIuaW5pdCgpOwotICAgICAgICAvLyBUT0RPIHdlIHNob3VsZCBhbGxvdyBwZW9wbGUg
dG8ganVzdCBwYXNzIGluIGEgY29tcGxldGUgZmlsZW5hbWUgaW5zdGVhZAotICAgICAgICAvLyBv
ZiBwYXJlbnQgYW5kIG5hbWUgYmVpbmcgdGhhdCB3ZSBqdXN0IGpvaW4gdGhlbSBhbnl3YXlzCi0g
ICAgICAgIHZhciBmdWxsbmFtZSA9IFBBVEgucmVzb2x2ZShQQVRILmpvaW4ocGFyZW50LCBuYW1l
KSk7Ci0gICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NEYXRhKGJ5dGVBcnJheSkgewotICAgICAgICAg
IGZ1bmN0aW9uIGZpbmlzaChieXRlQXJyYXkpIHsKLSAgICAgICAgICAgIGlmICghZG9udENyZWF0
ZUZpbGUpIHsKLSAgICAgICAgICAgICAgRlMuY3JlYXRlRGF0YUZpbGUocGFyZW50LCBuYW1lLCBi
eXRlQXJyYXksIGNhblJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmIChvbmxvYWQpIG9ubG9hZCgpOwotICAgICAgICAgICAgcmVtb3ZlUnVuRGVwZW5kZW5jeSgn
Y3AgJyArIGZ1bGxuYW1lKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGhhbmRsZWQgPSBm
YWxzZTsKLSAgICAgICAgICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10uZm9yRWFjaChmdW5jdGlv
bihwbHVnaW4pIHsKLSAgICAgICAgICAgIGlmIChoYW5kbGVkKSByZXR1cm47Ci0gICAgICAgICAg
ICBpZiAocGx1Z2luWydjYW5IYW5kbGUnXShmdWxsbmFtZSkpIHsKLSAgICAgICAgICAgICAgcGx1
Z2luWydoYW5kbGUnXShieXRlQXJyYXksIGZ1bGxuYW1lLCBmaW5pc2gsIGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7Ci0gICAgICAgICAgICAgICAg
cmVtb3ZlUnVuRGVwZW5kZW5jeSgnY3AgJyArIGZ1bGxuYW1lKTsKLSAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAg
IH0pOwotICAgICAgICAgIGlmICghaGFuZGxlZCkgZmluaXNoKGJ5dGVBcnJheSk7Ci0gICAgICAg
IH0KLSAgICAgICAgYWRkUnVuRGVwZW5kZW5jeSgnY3AgJyArIGZ1bGxuYW1lKTsKLSAgICAgICAg
aWYgKHR5cGVvZiB1cmwgPT0gJ3N0cmluZycpIHsKLSAgICAgICAgICBCcm93c2VyLmFzeW5jTG9h
ZCh1cmwsIGZ1bmN0aW9uKGJ5dGVBcnJheSkgewotICAgICAgICAgICAgcHJvY2Vzc0RhdGEoYnl0
ZUFycmF5KTsKLSAgICAgICAgICB9LCBvbmVycm9yKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICBwcm9jZXNzRGF0YSh1cmwpOwotICAgICAgICB9Ci0gICAgICB9LGNyZWF0ZURlZmF1bHRE
aXJlY3RvcmllczpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIEZTLm1rZGlyKCcvdG1wJywgMDc3Nyk7
Ci0gICAgICB9LGNyZWF0ZURlZmF1bHREZXZpY2VzOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgLy8g
Y3JlYXRlIC9kZXYKLSAgICAgICAgRlMubWtkaXIoJy9kZXYnLCAwNzc3KTsKLSAgICAgICAgLy8g
c2V0dXAgL2Rldi9udWxsCi0gICAgICAgIEZTLnJlZ2lzdGVyRGV2aWNlKEZTLm1ha2VkZXYoMSwg
MyksIHsKLSAgICAgICAgICByZWFkOiBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH0sCi0gICAgICAg
ICAgd3JpdGU6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfQotICAgICAgICB9KTsKLSAgICAgICAg
RlMubWtkZXYoJy9kZXYvbnVsbCcsIDA2NjYsIEZTLm1ha2VkZXYoMSwgMykpOwotICAgICAgICAv
LyBzZXR1cCAvZGV2L3R0eSBhbmQgL2Rldi90dHkxCi0gICAgICAgIC8vIHN0ZGVyciBuZWVkcyB0
byBwcmludCBvdXRwdXQgdXNpbmcgTW9kdWxlWydwcmludEVyciddCi0gICAgICAgIC8vIHNvIHdl
IHJlZ2lzdGVyIGEgc2Vjb25kIHR0eSBqdXN0IGZvciBpdC4KLSAgICAgICAgVFRZLnJlZ2lzdGVy
KEZTLm1ha2VkZXYoNSwgMCksIFRUWS5kZWZhdWx0X3R0eV9vcHMpOwotICAgICAgICBUVFkucmVn
aXN0ZXIoRlMubWFrZWRldig2LCAwKSwgVFRZLmRlZmF1bHRfdHR5MV9vcHMpOwotICAgICAgICBG
Uy5ta2RldignL2Rldi90dHknLCAwNjY2LCBGUy5tYWtlZGV2KDUsIDApKTsKLSAgICAgICAgRlMu
bWtkZXYoJy9kZXYvdHR5MScsIDA2NjYsIEZTLm1ha2VkZXYoNiwgMCkpOwotICAgICAgICAvLyB3
ZSdyZSBub3QgZ29pbmcgdG8gZW11bGF0ZSB0aGUgYWN0dWFsIHNobSBkZXZpY2UsCi0gICAgICAg
IC8vIGp1c3QgY3JlYXRlIHRoZSB0bXAgZGlycyB0aGF0IHJlc2lkZSBpbiBpdCBjb21tb25seQot
ICAgICAgICBGUy5ta2RpcignL2Rldi9zaG0nLCAwNzc3KTsKLSAgICAgICAgRlMubWtkaXIoJy9k
ZXYvc2htL3RtcCcsIDA3NzcpOwotICAgICAgfSxjcmVhdGVTdGFuZGFyZFN0cmVhbXM6ZnVuY3Rp
b24gKCkgewotICAgICAgICAvLyBUT0RPIGRlcHJlY2F0ZSB0aGUgb2xkIGZ1bmN0aW9uYWxpdHkg
b2YgYSBzaW5nbGUKLSAgICAgICAgLy8gaW5wdXQgLyBvdXRwdXQgY2FsbGJhY2sgYW5kIHRoYXQg
dXRpbGl6ZXMgRlMuY3JlYXRlRGV2aWNlCi0gICAgICAgIC8vIGFuZCBpbnN0ZWFkIHJlcXVpcmUg
YSB1bmlxdWUgc2V0IG9mIHN0cmVhbSBvcHMKLSAgICAgICAgLy8gYnkgZGVmYXVsdCwgd2Ugc3lt
bGluayB0aGUgc3RhbmRhcmQgc3RyZWFtcyB0byB0aGUKLSAgICAgICAgLy8gZGVmYXVsdCB0dHkg
ZGV2aWNlcy4gaG93ZXZlciwgaWYgdGhlIHN0YW5kYXJkIHN0cmVhbXMKLSAgICAgICAgLy8gaGF2
ZSBiZWVuIG92ZXJ3cml0dGVuIHdlIGNyZWF0ZSBhIHVuaXF1ZSBkZXZpY2UgZm9yCi0gICAgICAg
IC8vIHRoZW0gaW5zdGVhZC4KLSAgICAgICAgaWYgKE1vZHVsZVsnc3RkaW4nXSkgewotICAgICAg
ICAgIEZTLmNyZWF0ZURldmljZSgnL2RldicsICdzdGRpbicsIE1vZHVsZVsnc3RkaW4nXSk7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgRlMuc3ltbGluaygnL2Rldi90dHknLCAnL2Rldi9z
dGRpbicpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChNb2R1bGVbJ3N0ZG91dCddKSB7Ci0gICAg
ICAgICAgRlMuY3JlYXRlRGV2aWNlKCcvZGV2JywgJ3N0ZG91dCcsIG51bGwsIE1vZHVsZVsnc3Rk
b3V0J10pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5bWxpbmsoJy9kZXYvdHR5
JywgJy9kZXYvc3Rkb3V0Jyk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKE1vZHVsZVsnc3RkZXJy
J10pIHsKLSAgICAgICAgICBGUy5jcmVhdGVEZXZpY2UoJy9kZXYnLCAnc3RkZXJyJywgbnVsbCwg
TW9kdWxlWydzdGRlcnInXSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgRlMuc3ltbGlu
aygnL2Rldi90dHkxJywgJy9kZXYvc3RkZXJyJyk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gb3Bl
biBkZWZhdWx0IHN0cmVhbXMgZm9yIHRoZSBzdGRpbiwgc3Rkb3V0IGFuZCBzdGRlcnIgZGV2aWNl
cwotICAgICAgICB2YXIgc3RkaW4gPSBGUy5vcGVuKCcvZGV2L3N0ZGluJywgJ3InKTsKLSAgICAg
ICAgSEVBUDMyWygoX3N0ZGluKT4+MildPXN0ZGluLmZkOwotICAgICAgICBhc3NlcnQoc3RkaW4u
ZmQgPT09IDEsICdpbnZhbGlkIGhhbmRsZSBmb3Igc3RkaW4gKCcgKyBzdGRpbi5mZCArICcpJyk7
Ci0gICAgICAgIHZhciBzdGRvdXQgPSBGUy5vcGVuKCcvZGV2L3N0ZG91dCcsICd3Jyk7Ci0gICAg
ICAgIEhFQVAzMlsoKF9zdGRvdXQpPj4yKV09c3Rkb3V0LmZkOwotICAgICAgICBhc3NlcnQoc3Rk
b3V0LmZkID09PSAyLCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0ZG91dCAoJyArIHN0ZG91dC5mZCAr
ICcpJyk7Ci0gICAgICAgIHZhciBzdGRlcnIgPSBGUy5vcGVuKCcvZGV2L3N0ZGVycicsICd3Jyk7
Ci0gICAgICAgIEhFQVAzMlsoKF9zdGRlcnIpPj4yKV09c3RkZXJyLmZkOwotICAgICAgICBhc3Nl
cnQoc3RkZXJyLmZkID09PSAzLCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0ZGVyciAoJyArIHN0ZGVy
ci5mZCArICcpJyk7Ci0gICAgICB9LHN0YXRpY0luaXQ6ZnVuY3Rpb24gKCkgewotICAgICAgICBG
Uy5uYW1lX3RhYmxlID0gbmV3IEFycmF5KDQwOTYpOwotICAgICAgICBGUy5yb290ID0gRlMuY3Jl
YXRlTm9kZShudWxsLCAnLycsIDAwNDAwMDAgfCAwNzc3LCAwKTsKLSAgICAgICAgRlMubW91bnQo
TUVNRlMsIHt9LCAnLycpOwotICAgICAgICBGUy5jcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXMoKTsK
LSAgICAgICAgRlMuY3JlYXRlRGVmYXVsdERldmljZXMoKTsKLSAgICAgIH0saW5pdDpmdW5jdGlv
biAoaW5wdXQsIG91dHB1dCwgZXJyb3IpIHsKLSAgICAgICAgYXNzZXJ0KCFGUy5pbml0LmluaXRp
YWxpemVkLCAnRlMuaW5pdCB3YXMgcHJldmlvdXNseSBjYWxsZWQuIElmIHlvdSB3YW50IHRvIGlu
aXRpYWxpemUgbGF0ZXIgd2l0aCBjdXN0b20gcGFyYW1ldGVycywgcmVtb3ZlIGFueSBlYXJsaWVy
IGNhbGxzIChub3RlIHRoYXQgb25lIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGdlbmVy
YXRlZCBjb2RlKScpOwotICAgICAgICBGUy5pbml0LmluaXRpYWxpemVkID0gdHJ1ZTsKLSAgICAg
ICAgLy8gQWxsb3cgTW9kdWxlLnN0ZGluIGV0Yy4gdG8gcHJvdmlkZSBkZWZhdWx0cywgaWYgbm9u
ZSBleHBsaWNpdGx5IHBhc3NlZCB0byB1cyBoZXJlCi0gICAgICAgIE1vZHVsZVsnc3RkaW4nXSA9
IGlucHV0IHx8IE1vZHVsZVsnc3RkaW4nXTsKLSAgICAgICAgTW9kdWxlWydzdGRvdXQnXSA9IG91
dHB1dCB8fCBNb2R1bGVbJ3N0ZG91dCddOwotICAgICAgICBNb2R1bGVbJ3N0ZGVyciddID0gZXJy
b3IgfHwgTW9kdWxlWydzdGRlcnInXTsKLSAgICAgICAgRlMuY3JlYXRlU3RhbmRhcmRTdHJlYW1z
KCk7Ci0gICAgICB9LHF1aXQ6ZnVuY3Rpb24gKCkgewotICAgICAgICBGUy5pbml0LmluaXRpYWxp
emVkID0gZmFsc2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgRlMuc3RyZWFtcy5sZW5n
dGg7IGkrKykgewotICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5zdHJlYW1zW2ldOwotICAgICAg
ICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgRlMuY2xvc2Uoc3RyZWFtKTsKLSAgICAgICAgfQotICAgICAgfSxtb3VudDpmdW5j
dGlvbiAodHlwZSwgb3B0cywgbW91bnRwb2ludCkgewotICAgICAgICB2YXIgbW91bnQgPSB7Ci0g
ICAgICAgICAgdHlwZTogdHlwZSwKLSAgICAgICAgICBvcHRzOiBvcHRzLAotICAgICAgICAgIG1v
dW50cG9pbnQ6IG1vdW50cG9pbnQsCi0gICAgICAgICAgcm9vdDogbnVsbAotICAgICAgICB9Owot
ICAgICAgICB2YXIgbG9va3VwOwotICAgICAgICBpZiAobW91bnRwb2ludCkgewotICAgICAgICAg
IGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobW91bnRwb2ludCwgeyBmb2xsb3c6IGZhbHNlIH0pOwot
ICAgICAgICB9Ci0gICAgICAgIC8vIGNyZWF0ZSBhIHJvb3Qgbm9kZSBmb3IgdGhlIGZzCi0gICAg
ICAgIHZhciByb290ID0gdHlwZS5tb3VudChtb3VudCk7Ci0gICAgICAgIHJvb3QubW91bnQgPSBt
b3VudDsKLSAgICAgICAgbW91bnQucm9vdCA9IHJvb3Q7Ci0gICAgICAgIC8vIGFzc2lnbiB0aGUg
bW91bnQgaW5mbyB0byB0aGUgbW91bnRwb2ludCdzIG5vZGUKLSAgICAgICAgaWYgKGxvb2t1cCkg
ewotICAgICAgICAgIGxvb2t1cC5ub2RlLm1vdW50ID0gbW91bnQ7Ci0gICAgICAgICAgbG9va3Vw
Lm5vZGUubW91bnRlZCA9IHRydWU7Ci0gICAgICAgICAgLy8gY29tcGF0aWJpbGl0eSB1cGRhdGUg
RlMucm9vdCBpZiB3ZSBtb3VudCB0byAvCi0gICAgICAgICAgaWYgKG1vdW50cG9pbnQgPT09ICcv
JykgewotICAgICAgICAgICAgRlMucm9vdCA9IG1vdW50LnJvb3Q7Ci0gICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiByb290OwotICAgICAgfSxsb29rdXA6ZnVuY3Rpb24gKHBh
cmVudCwgbmFtZSkgewotICAgICAgICByZXR1cm4gcGFyZW50Lm5vZGVfb3BzLmxvb2t1cChwYXJl
bnQsIG5hbWUpOwotICAgICAgfSxta25vZDpmdW5jdGlvbiAocGF0aCwgbW9kZSwgZGV2KSB7Ci0g
ICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgcGFyZW50OiB0cnVlIH0p
OwotICAgICAgICB2YXIgcGFyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIHZhciBuYW1lID0g
UEFUSC5iYXNlbmFtZShwYXRoKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heUNyZWF0ZShwYXJl
bnQsIG5hbWUpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBhcmVudC5ub2RlX29wcy5t
a25vZCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQ
RVJNKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcGFyZW50Lm5vZGVfb3BzLm1rbm9kKHBh
cmVudCwgbmFtZSwgbW9kZSwgZGV2KTsKLSAgICAgIH0sY3JlYXRlOmZ1bmN0aW9uIChwYXRoLCBt
b2RlKSB7Ci0gICAgICAgIG1vZGUgJj0gNDA5NTsKLSAgICAgICAgbW9kZSB8PSAwMTAwMDAwOwot
ICAgICAgICByZXR1cm4gRlMubWtub2QocGF0aCwgbW9kZSwgMCk7Ci0gICAgICB9LG1rZGlyOmZ1
bmN0aW9uIChwYXRoLCBtb2RlKSB7Ci0gICAgICAgIG1vZGUgJj0gNTExIHwgMDAwMTAwMDsKLSAg
ICAgICAgbW9kZSB8PSAwMDQwMDAwOwotICAgICAgICByZXR1cm4gRlMubWtub2QocGF0aCwgbW9k
ZSwgMCk7Ci0gICAgICB9LG1rZGV2OmZ1bmN0aW9uIChwYXRoLCBtb2RlLCBkZXYpIHsKLSAgICAg
ICAgbW9kZSB8PSAwMDIwMDAwOwotICAgICAgICByZXR1cm4gRlMubWtub2QocGF0aCwgbW9kZSwg
ZGV2KTsKLSAgICAgIH0sc3ltbGluazpmdW5jdGlvbiAob2xkcGF0aCwgbmV3cGF0aCkgewotICAg
ICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChuZXdwYXRoLCB7IHBhcmVudDogdHJ1ZSB9
KTsKLSAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICB2YXIgbmV3bmFt
ZSA9IFBBVEguYmFzZW5hbWUobmV3cGF0aCk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlDcmVh
dGUocGFyZW50LCBuZXduYW1lKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93
IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFwYXJlbnQu
bm9kZV9vcHMuc3ltbGluaykgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcGFyZW50Lm5vZGVf
b3BzLnN5bWxpbmsocGFyZW50LCBuZXduYW1lLCBvbGRwYXRoKTsKLSAgICAgIH0scmVuYW1lOmZ1
bmN0aW9uIChvbGRfcGF0aCwgbmV3X3BhdGgpIHsKLSAgICAgICAgdmFyIG9sZF9kaXJuYW1lID0g
UEFUSC5kaXJuYW1lKG9sZF9wYXRoKTsKLSAgICAgICAgdmFyIG5ld19kaXJuYW1lID0gUEFUSC5k
aXJuYW1lKG5ld19wYXRoKTsKLSAgICAgICAgdmFyIG9sZF9uYW1lID0gUEFUSC5iYXNlbmFtZShv
bGRfcGF0aCk7Ci0gICAgICAgIHZhciBuZXdfbmFtZSA9IFBBVEguYmFzZW5hbWUobmV3X3BhdGgp
OwotICAgICAgICAvLyBwYXJlbnRzIG11c3QgZXhpc3QKLSAgICAgICAgdmFyIGxvb2t1cCwgb2xk
X2RpciwgbmV3X2RpcjsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBsb29rdXAgPSBGUy5sb29r
dXBQYXRoKG9sZF9wYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAgICAgICBvbGRfZGlyID0g
bG9va3VwLm5vZGU7Ci0gICAgICAgICAgbG9va3VwID0gRlMubG9va3VwUGF0aChuZXdfcGF0aCwg
eyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgbmV3X2RpciA9IGxvb2t1cC5ub2RlOwotICAg
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRUJVU1kpOwotICAgICAgICB9Ci0gICAgICAgIC8vIG5lZWQgdG8gYmUgcGFydCBv
ZiB0aGUgc2FtZSBtb3VudAotICAgICAgICBpZiAob2xkX2Rpci5tb3VudCAhPT0gbmV3X2Rpci5t
b3VudCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVY
REVWKTsKLSAgICAgICAgfQotICAgICAgICAvLyBzb3VyY2UgbXVzdCBleGlzdAotICAgICAgICB2
YXIgb2xkX25vZGUgPSBGUy5sb29rdXBOb2RlKG9sZF9kaXIsIG9sZF9uYW1lKTsKLSAgICAgICAg
Ly8gb2xkIHBhdGggc2hvdWxkIG5vdCBiZSBhbiBhbmNlc3RvciBvZiB0aGUgbmV3IHBhdGgKLSAg
ICAgICAgdmFyIHJlbGF0aXZlID0gUEFUSC5yZWxhdGl2ZShvbGRfcGF0aCwgbmV3X2Rpcm5hbWUp
OwotICAgICAgICBpZiAocmVsYXRpdmUuY2hhckF0KDApICE9PSAnLicpIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0g
ICAgICAgIC8vIG5ldyBwYXRoIHNob3VsZCBub3QgYmUgYW4gYW5jZXN0b3Igb2YgdGhlIG9sZCBw
YXRoCi0gICAgICAgIHJlbGF0aXZlID0gUEFUSC5yZWxhdGl2ZShuZXdfcGF0aCwgb2xkX2Rpcm5h
bWUpOwotICAgICAgICBpZiAocmVsYXRpdmUuY2hhckF0KDApICE9PSAnLicpIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9URU1QVFkpOwotICAgICAg
ICB9Ci0gICAgICAgIC8vIHNlZSBpZiB0aGUgbmV3IHBhdGggYWxyZWFkeSBleGlzdHMKLSAgICAg
ICAgdmFyIG5ld19ub2RlOwotICAgICAgICB0cnkgewotICAgICAgICAgIG5ld19ub2RlID0gRlMu
bG9va3VwTm9kZShuZXdfZGlyLCBuZXdfbmFtZSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAg
ICAgICAgICAvLyBub3QgZmF0YWwKLSAgICAgICAgfQotICAgICAgICAvLyBlYXJseSBvdXQgaWYg
bm90aGluZyBuZWVkcyB0byBjaGFuZ2UKLSAgICAgICAgaWYgKG9sZF9ub2RlID09PSBuZXdfbm9k
ZSkgewotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAvLyB3ZSdsbCBuZWVk
IHRvIGRlbGV0ZSB0aGUgb2xkIGVudHJ5Ci0gICAgICAgIHZhciBpc2RpciA9IEZTLmlzRGlyKG9s
ZF9ub2RlLm1vZGUpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5RGVsZXRlKG9sZF9kaXIsIG9s
ZF9uYW1lLCBpc2Rpcik7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIC8vIG5lZWQgZGVsZXRlIHBl
cm1pc3Npb25zIGlmIHdlJ2xsIGJlIG92ZXJ3cml0aW5nLgotICAgICAgICAvLyBuZWVkIGNyZWF0
ZSBwZXJtaXNzaW9ucyBpZiBuZXcgZG9lc24ndCBhbHJlYWR5IGV4aXN0LgotICAgICAgICBlcnIg
PSBuZXdfbm9kZSA/Ci0gICAgICAgICAgRlMubWF5RGVsZXRlKG5ld19kaXIsIG5ld19uYW1lLCBp
c2RpcikgOgotICAgICAgICAgIEZTLm1heUNyZWF0ZShuZXdfZGlyLCBuZXdfbmFtZSk7Ci0gICAg
ICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwot
ICAgICAgICB9Ci0gICAgICAgIGlmICghb2xkX2Rpci5ub2RlX29wcy5yZW5hbWUpIHsKLSAgICAg
ICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKEZTLmlzTW91bnRwb2ludChvbGRfbm9kZSkgfHwgKG5ld19ub2RlICYm
IEZTLmlzTW91bnRwb2ludChuZXdfbm9kZSkpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpOwotICAgICAgICB9Ci0gICAgICAgIC8vIGlmIHdl
IGFyZSBnb2luZyB0byBjaGFuZ2UgdGhlIHBhcmVudCwgY2hlY2sgd3JpdGUgcGVybWlzc2lvbnMK
LSAgICAgICAgaWYgKG5ld19kaXIgIT09IG9sZF9kaXIpIHsKLSAgICAgICAgICBlcnIgPSBGUy5u
b2RlUGVybWlzc2lvbnMob2xkX2RpciwgJ3cnKTsKLSAgICAgICAgICBpZiAoZXJyKSB7Ci0gICAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICAvLyByZW1vdmUgdGhlIG5vZGUgZnJvbSB0aGUgbG9va3VwIGhhc2gKLSAg
ICAgICAgRlMuaGFzaFJlbW92ZU5vZGUob2xkX25vZGUpOwotICAgICAgICAvLyBkbyB0aGUgdW5k
ZXJseWluZyBmcyByZW5hbWUKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBvbGRfZGlyLm5vZGVf
b3BzLnJlbmFtZShvbGRfbm9kZSwgbmV3X2RpciwgbmV3X25hbWUpOwotICAgICAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgICAgdGhyb3cgZTsKLSAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAg
ICAvLyBhZGQgdGhlIG5vZGUgYmFjayB0byB0aGUgaGFzaCAoaW4gY2FzZSBub2RlX29wcy5yZW5h
bWUKLSAgICAgICAgICAvLyBjaGFuZ2VkIGl0cyBuYW1lKQotICAgICAgICAgIEZTLmhhc2hBZGRO
b2RlKG9sZF9ub2RlKTsKLSAgICAgICAgfQotICAgICAgfSxybWRpcjpmdW5jdGlvbiAocGF0aCkg
ewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1
ZSB9KTsKLSAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICB2YXIgbmFt
ZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7Ci0gICAgICAgIHZhciBub2RlID0gRlMubG9va3VwTm9k
ZShwYXJlbnQsIG5hbWUpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5RGVsZXRlKHBhcmVudCwg
bmFtZSwgdHJ1ZSk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMu
RXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghcGFyZW50Lm5vZGVfb3Bz
LnJtZGlyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5pc01vdW50cG9pbnQobm9kZSkpIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcGFyZW50Lm5vZGVfb3BzLnJtZGlyKHBhcmVudCwgbmFtZSk7Ci0g
ICAgICAgIEZTLmRlc3Ryb3lOb2RlKG5vZGUpOwotICAgICAgfSxyZWFkZGlyOmZ1bmN0aW9uIChw
YXRoKSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93
OiB0cnVlIH0pOwotICAgICAgICB2YXIgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAgICBpZiAo
IW5vZGUubm9kZV9vcHMucmVhZGRpcikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVOT1RESVIpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2Rl
Lm5vZGVfb3BzLnJlYWRkaXIobm9kZSk7Ci0gICAgICB9LHVubGluazpmdW5jdGlvbiAocGF0aCkg
ewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1
ZSB9KTsKLSAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICB2YXIgbmFt
ZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7Ci0gICAgICAgIHZhciBub2RlID0gRlMubG9va3VwTm9k
ZShwYXJlbnQsIG5hbWUpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5RGVsZXRlKHBhcmVudCwg
bmFtZSwgZmFsc2UpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgLy8gUE9TSVggc2F5
cyB1bmxpbmsgc2hvdWxkIHNldCBFUEVSTSwgbm90IEVJU0RJUgotICAgICAgICAgIGlmIChlcnIg
PT09IEVSUk5PX0NPREVTLkVJU0RJUikgZXJyID0gRVJSTk9fQ09ERVMuRVBFUk07Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
IXBhcmVudC5ub2RlX29wcy51bmxpbmspIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKEZTLmlzTW91
bnRwb2ludChub2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICBwYXJlbnQubm9kZV9vcHMudW5saW5r
KHBhcmVudCwgbmFtZSk7Ci0gICAgICAgIEZTLmRlc3Ryb3lOb2RlKG5vZGUpOwotICAgICAgfSxy
ZWFkbGluazpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3Vw
UGF0aChwYXRoLCB7IGZvbGxvdzogZmFsc2UgfSk7Ci0gICAgICAgIHZhciBsaW5rID0gbG9va3Vw
Lm5vZGU7Ci0gICAgICAgIGlmICghbGluay5ub2RlX29wcy5yZWFkbGluaykgewotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIGxpbmsubm9kZV9vcHMucmVhZGxpbmsobGluayk7Ci0gICAgICB9LHN0
YXQ6ZnVuY3Rpb24gKHBhdGgsIGRvbnRGb2xsb3cpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250Rm9sbG93IH0pOwotICAgICAgICB2YXIg
bm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAgICBpZiAoIW5vZGUubm9kZV9vcHMuZ2V0YXR0cikg
ewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS5ub2RlX29wcy5nZXRhdHRyKG5vZGUpOwot
ICAgICAgfSxsc3RhdDpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICByZXR1cm4gRlMuc3RhdChw
YXRoLCB0cnVlKTsKLSAgICAgIH0sY2htb2Q6ZnVuY3Rpb24gKHBhdGgsIG1vZGUsIGRvbnRGb2xs
b3cpIHsKLSAgICAgICAgdmFyIG5vZGU7Ci0gICAgICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0
cmluZycpIHsKLSAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZv
bGxvdzogIWRvbnRGb2xsb3cgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgIG5vZGUgPSBwYXRoOwotICAgICAgICB9Ci0gICAgICAg
IGlmICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUubm9k
ZV9vcHMuc2V0YXR0cihub2RlLCB7Ci0gICAgICAgICAgbW9kZTogKG1vZGUgJiA0MDk1KSB8IChu
b2RlLm1vZGUgJiB+NDA5NSksCi0gICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpCi0gICAg
ICAgIH0pOwotICAgICAgfSxsY2htb2Q6ZnVuY3Rpb24gKHBhdGgsIG1vZGUpIHsKLSAgICAgICAg
RlMuY2htb2QocGF0aCwgbW9kZSwgdHJ1ZSk7Ci0gICAgICB9LGZjaG1vZDpmdW5jdGlvbiAoZmQs
IG1vZGUpIHsKLSAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICAg
IGlmICghc3RyZWFtKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIEZTLmNobW9kKHN0cmVhbS5ub2RlLCBt
b2RlKTsKLSAgICAgIH0sY2hvd246ZnVuY3Rpb24gKHBhdGgsIHVpZCwgZ2lkLCBkb250Rm9sbG93
KSB7Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJp
bmcnKSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xs
b3c6ICFkb250Rm9sbG93IH0pOwotICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICBub2RlID0gcGF0aDsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoIW5vZGUubm9kZV9vcHMuc2V0YXR0cikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICBub2RlLm5vZGVf
b3BzLnNldGF0dHIobm9kZSwgewotICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKQotICAg
ICAgICAgIC8vIHdlIGlnbm9yZSB0aGUgdWlkIC8gZ2lkIGZvciBub3cKLSAgICAgICAgfSk7Ci0g
ICAgICB9LGxjaG93bjpmdW5jdGlvbiAocGF0aCwgdWlkLCBnaWQpIHsKLSAgICAgICAgRlMuY2hv
d24ocGF0aCwgdWlkLCBnaWQsIHRydWUpOwotICAgICAgfSxmY2hvd246ZnVuY3Rpb24gKGZkLCB1
aWQsIGdpZCkgewotICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAg
ICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAgICAgRlMuY2hvd24oc3RyZWFtLm5vZGUs
IHVpZCwgZ2lkKTsKLSAgICAgIH0sdHJ1bmNhdGU6ZnVuY3Rpb24gKHBhdGgsIGxlbikgewotICAg
ICAgICBpZiAobGVuIDwgMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG5vZGU7Ci0gICAgICAg
IGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICB2YXIgbG9va3VwID0g
RlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogdHJ1ZSB9KTsKLSAgICAgICAgICBub2RlID0g
bG9va3VwLm5vZGU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgbm9kZSA9IHBhdGg7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLnNldGF0dHIpIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIpOwotICAgICAgICB9Ci0gICAgICAgIGlm
ICghRlMuaXNGaWxlKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBlcnIgPSBG
Uy5ub2RlUGVybWlzc2lvbnMobm9kZSwgJ3cnKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgbm9k
ZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICBzaXplOiBsZW4sCi0gICAgICAg
ICAgdGltZXN0YW1wOiBEYXRlLm5vdygpCi0gICAgICAgIH0pOwotICAgICAgfSxmdHJ1bmNhdGU6
ZnVuY3Rpb24gKGZkLCBsZW4pIHsKLSAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShm
ZCk7Ci0gICAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5v
RXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoc3RyZWFt
LmZsYWdzICYgMykgPT09IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihF
UlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIEZTLnRydW5jYXRlKHN0cmVh
bS5ub2RlLCBsZW4pOwotICAgICAgfSx1dGltZTpmdW5jdGlvbiAocGF0aCwgYXRpbWUsIG10aW1l
KSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiB0
cnVlIH0pOwotICAgICAgICB2YXIgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAgICBub2RlLm5v
ZGVfb3BzLnNldGF0dHIobm9kZSwgewotICAgICAgICAgIHRpbWVzdGFtcDogTWF0aC5tYXgoYXRp
bWUsIG10aW1lKQotICAgICAgICB9KTsKLSAgICAgIH0sb3BlbjpmdW5jdGlvbiAocGF0aCwgZmxh
Z3MsIG1vZGUsIGZkX3N0YXJ0LCBmZF9lbmQpIHsKLSAgICAgICAgcGF0aCA9IFBBVEgubm9ybWFs
aXplKHBhdGgpOwotICAgICAgICBmbGFncyA9IHR5cGVvZiBmbGFncyA9PT0gJ3N0cmluZycgPyBG
Uy5tb2RlU3RyaW5nVG9GbGFncyhmbGFncykgOiBmbGFnczsKLSAgICAgICAgbW9kZSA9IHR5cGVv
ZiBtb2RlID09PSAndW5kZWZpbmVkJyA/IDA2NjYgOiBtb2RlOwotICAgICAgICBpZiAoKGZsYWdz
ICYgNTEyKSkgewotICAgICAgICAgIG1vZGUgPSAobW9kZSAmIDQwOTUpIHwgMDEwMDAwMDsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBtb2RlID0gMDsKLSAgICAgICAgfQotICAgICAgICB2
YXIgbm9kZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3Vw
UGF0aChwYXRoLCB7Ci0gICAgICAgICAgICBmb2xsb3c6ICEoZmxhZ3MgJiAwMjAwMDAwKQotICAg
ICAgICAgIH0pOwotICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgICBwYXRo
ID0gbG9va3VwLnBhdGg7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAvLyBpZ25v
cmUKLSAgICAgICAgfQotICAgICAgICAvLyBwZXJoYXBzIHdlIG5lZWQgdG8gY3JlYXRlIHRoZSBu
b2RlCi0gICAgICAgIGlmICgoZmxhZ3MgJiA1MTIpKSB7Ci0gICAgICAgICAgaWYgKG5vZGUpIHsK
LSAgICAgICAgICAgIC8vIGlmIE9fQ1JFQVQgYW5kIE9fRVhDTCBhcmUgc2V0LCBlcnJvciBvdXQg
aWYgdGhlIG5vZGUgYWxyZWFkeSBleGlzdHMKLSAgICAgICAgICAgIGlmICgoZmxhZ3MgJiAyMDQ4
KSkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
RVhJU1QpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAv
LyBub2RlIGRvZXNuJ3QgZXhpc3QsIHRyeSB0byBjcmVhdGUgaXQKLSAgICAgICAgICAgIG5vZGUg
PSBGUy5ta25vZChwYXRoLCBtb2RlLCAwKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKCFub2RlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRU5PRU5UKTsKLSAgICAgICAgfQotICAgICAgICAvLyBjYW4ndCB0cnVuY2F0ZSBhIGRl
dmljZQotICAgICAgICBpZiAoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSkgewotICAgICAgICAgIGZs
YWdzICY9IH4xMDI0OwotICAgICAgICB9Ci0gICAgICAgIC8vIGNoZWNrIHBlcm1pc3Npb25zCi0g
ICAgICAgIHZhciBlcnIgPSBGUy5tYXlPcGVuKG5vZGUsIGZsYWdzKTsKLSAgICAgICAgaWYgKGVy
cikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0K
LSAgICAgICAgLy8gZG8gdHJ1bmNhdGlvbiBpZiBuZWNlc3NhcnkKLSAgICAgICAgaWYgKChmbGFn
cyAmIDEwMjQpKSB7Ci0gICAgICAgICAgRlMudHJ1bmNhdGUobm9kZSwgMCk7Ci0gICAgICAgIH0K
LSAgICAgICAgLy8gcmVnaXN0ZXIgdGhlIHN0cmVhbSB3aXRoIHRoZSBmaWxlc3lzdGVtCi0gICAg
ICAgIHZhciBzdHJlYW0gPSBGUy5jcmVhdGVTdHJlYW0oewotICAgICAgICAgIHBhdGg6IHBhdGgs
Ci0gICAgICAgICAgbm9kZTogbm9kZSwKLSAgICAgICAgICBmbGFnczogZmxhZ3MsCi0gICAgICAg
ICAgc2Vla2FibGU6IHRydWUsCi0gICAgICAgICAgcG9zaXRpb246IDAsCi0gICAgICAgICAgc3Ry
ZWFtX29wczogbm9kZS5zdHJlYW1fb3BzLAotICAgICAgICAgIC8vIHVzZWQgYnkgdGhlIGZpbGUg
ZmFtaWx5IGxpYmMgY2FsbHMgKGZvcGVuLCBmd3JpdGUsIGZlcnJvciwgZXRjLikKLSAgICAgICAg
ICB1bmdvdHRlbjogW10sCi0gICAgICAgICAgZXJyb3I6IGZhbHNlCi0gICAgICAgIH0sIGZkX3N0
YXJ0LCBmZF9lbmQpOwotICAgICAgICAvLyBjYWxsIHRoZSBuZXcgc3RyZWFtJ3Mgb3BlbiBmdW5j
dGlvbgotICAgICAgICBpZiAoc3RyZWFtLnN0cmVhbV9vcHMub3BlbikgewotICAgICAgICAgIHN0
cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
c3RyZWFtOwotICAgICAgfSxjbG9zZTpmdW5jdGlvbiAoc3RyZWFtKSB7Ci0gICAgICAgIHRyeSB7
Ci0gICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLmNsb3NlKSB7Ci0gICAgICAgICAgICBz
dHJlYW0uc3RyZWFtX29wcy5jbG9zZShzdHJlYW0pOwotICAgICAgICAgIH0KLSAgICAgICAgfSBj
YXRjaCAoZSkgewotICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgIH0gZmluYWxseSB7Ci0gICAg
ICAgICAgRlMuY2xvc2VTdHJlYW0oc3RyZWFtLmZkKTsKLSAgICAgICAgfQotICAgICAgfSxsbHNl
ZWs6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCB3aGVuY2UpIHsKLSAgICAgICAgaWYgKCFzdHJl
YW0uc2Vla2FibGUgfHwgIXN0cmVhbS5zdHJlYW1fb3BzLmxsc2VlaykgewotICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLmxsc2VlayhzdHJlYW0sIG9mZnNldCwgd2hl
bmNlKTsKLSAgICAgIH0scmVhZDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVu
Z3RoLCBwb3NpdGlvbikgewotICAgICAgICBpZiAobGVuZ3RoIDwgMCB8fCBwb3NpdGlvbiA8IDAp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwp
OwotICAgICAgICB9Ci0gICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDEpIHsKLSAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKEZTLmlzRGlyKHN0cmVhbS5ub2RlLm1vZGUpKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlTRElSKTsKLSAgICAgICAg
fQotICAgICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLnJlYWQpIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAg
ICAgIHZhciBzZWVraW5nID0gdHJ1ZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwb3NpdGlvbiA9PT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICBwb3NpdGlvbiA9IHN0cmVhbS5wb3NpdGlvbjsKLSAg
ICAgICAgICBzZWVraW5nID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXN0cmVhbS5zZWVr
YWJsZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVT
UElQRSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGJ5dGVzUmVhZCA9IHN0cmVhbS5zdHJlYW1f
b3BzLnJlYWQoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbik7Ci0gICAg
ICAgIGlmICghc2Vla2luZykgc3RyZWFtLnBvc2l0aW9uICs9IGJ5dGVzUmVhZDsKLSAgICAgICAg
cmV0dXJuIGJ5dGVzUmVhZDsKLSAgICAgIH0sd3JpdGU6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVy
LCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKLSAgICAgICAgaWYgKGxlbmd0aCA8IDAgfHwg
cG9zaXRpb24gPCAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMp
ID09PSAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5pc0RpcihzdHJlYW0ubm9kZS5tb2Rl
KSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJ
Uik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy53cml0ZSkgewot
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgdmFyIHNlZWtpbmcgPSB0cnVlOwotICAgICAgICBpZiAodHlwZW9m
IHBvc2l0aW9uID09PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIHBvc2l0aW9uID0gc3RyZWFt
LnBvc2l0aW9uOwotICAgICAgICAgIHNlZWtpbmcgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIGlm
ICghc3RyZWFtLnNlZWthYmxlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
RVJSTk9fQ09ERVMuRVNQSVBFKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoc3RyZWFtLmZsYWdz
ICYgOCkgewotICAgICAgICAgIC8vIHNlZWsgdG8gdGhlIGVuZCBiZWZvcmUgd3JpdGluZyBpbiBh
cHBlbmQgbW9kZQotICAgICAgICAgIEZTLmxsc2VlayhzdHJlYW0sIDAsIDIpOwotICAgICAgICB9
Ci0gICAgICAgIHZhciBieXRlc1dyaXR0ZW4gPSBzdHJlYW0uc3RyZWFtX29wcy53cml0ZShzdHJl
YW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKTsKLSAgICAgICAgaWYgKCFzZWVr
aW5nKSBzdHJlYW0ucG9zaXRpb24gKz0gYnl0ZXNXcml0dGVuOwotICAgICAgICByZXR1cm4gYnl0
ZXNXcml0dGVuOwotICAgICAgfSxhbGxvY2F0ZTpmdW5jdGlvbiAoc3RyZWFtLCBvZmZzZXQsIGxl
bmd0aCkgewotICAgICAgICBpZiAob2Zmc2V0IDwgMCB8fCBsZW5ndGggPD0gMCkgewotICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0gMCkgewotICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgfQotICAg
ICAgICBpZiAoIUZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSAmJiAhRlMuaXNEaXIobm9kZS5t
b2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVO
T0RFVik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy5hbGxvY2F0
ZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVPUE5P
VFNVUFApOwotICAgICAgICB9Ci0gICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLmFsbG9jYXRlKHN0
cmVhbSwgb2Zmc2V0LCBsZW5ndGgpOwotICAgICAgfSxtbWFwOmZ1bmN0aW9uIChzdHJlYW0sIGJ1
ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uLCBwcm90LCBmbGFncykgewotICAgICAgICAv
LyBUT0RPIGlmIFBST1QgaXMgUFJPVF9XUklURSwgbWFrZSBzdXJlIHdlIGhhdmUgd3JpdGUgYWNj
ZXNzCi0gICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDEpIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUNDRVMpOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMubW1hcCkgewotICAgICAgICAgIHRocm93IG5l
dyBGUy5lcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVik7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLm1tYXAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVu
Z3RoLCBwb3NpdGlvbiwgcHJvdCwgZmxhZ3MpOwotICAgICAgfX07Ci0gIGZ1bmN0aW9uIF9zZW5k
KGZkLCBidWYsIGxlbiwgZmxhZ3MpIHsKLSAgICAgIHZhciBpbmZvID0gRlMuZ2V0U3RyZWFtKGZk
KTsKLSAgICAgIGlmICghaW5mbykgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5F
QkFERik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIGlmIChpbmZvLnNvY2tl
dC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ0xPU0lORyB8fCBpbmZvLnNvY2tldC5yZWFkeVN0
YXRlID09PSBXZWJTb2NrZXQuQ0xPU0VEKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NP
REVTLkVOT1RDT05OKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfSBlbHNlIGlmIChpbmZv
LnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ09OTkVDVElORykgewotICAgICAgICBf
X19zZXRFcnJObyhFUlJOT19DT0RFUy5FQUdBSU4pOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAg
ICB9Ci0gICAgICBpbmZvLnNlbmRlcihIRUFQVTguc3ViYXJyYXkoYnVmLCBidWYrbGVuKSk7Ci0g
ICAgICByZXR1cm4gbGVuOwotICAgIH0KLSAgZnVuY3Rpb24gX3B3cml0ZShmaWxkZXMsIGJ1Ziwg
bmJ5dGUsIG9mZnNldCkgewotICAgICAgLy8gc3NpemVfdCBwd3JpdGUoaW50IGZpbGRlcywgY29u
c3Qgdm9pZCAqYnVmLCBzaXplX3QgbmJ5dGUsIG9mZl90IG9mZnNldCk7Ci0gICAgICAvLyBodHRw
Oi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy93cml0
ZS5odG1sCi0gICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7Ci0gICAgICBp
ZiAoIXN0cmVhbSkgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0g
ICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAgICAgIHZhciBzbGFi
ID0gSEVBUDg7Ci0gICAgICAgIHJldHVybiBGUy53cml0ZShzdHJlYW0sIHNsYWIsIGJ1ZiwgbmJ5
dGUsIG9mZnNldCk7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEZTLmhhbmRsZUZTRXJy
b3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24gX3dyaXRl
KGZpbGRlcywgYnVmLCBuYnl0ZSkgewotICAgICAgLy8gc3NpemVfdCB3cml0ZShpbnQgZmlsZGVz
LCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5v
cGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy93cml0ZS5odG1sCi0g
ICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7Ci0gICAgICBpZiAoIXN0cmVh
bSkgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJl
dHVybiAtMTsKLSAgICAgIH0KLSAgICAgIGlmIChzdHJlYW0gJiYgKCdzb2NrZXQnIGluIHN0cmVh
bSkpIHsKLSAgICAgICAgcmV0dXJuIF9zZW5kKGZpbGRlcywgYnVmLCBuYnl0ZSwgMCk7Ci0gICAg
ICB9Ci0gICAgICB0cnkgewotICAgICAgICB2YXIgc2xhYiA9IEhFQVA4OwotICAgICAgICByZXR1
cm4gRlMud3JpdGUoc3RyZWFtLCBzbGFiLCBidWYsIG5ieXRlKTsKLSAgICAgIH0gY2F0Y2ggKGUp
IHsKLSAgICAgICAgRlMuaGFuZGxlRlNFcnJvcihlKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAg
ICAgfQotICAgIH1mdW5jdGlvbiBfZndyaXRlKHB0ciwgc2l6ZSwgbml0ZW1zLCBzdHJlYW0pIHsK
LSAgICAgIC8vIHNpemVfdCBmd3JpdGUoY29uc3Qgdm9pZCAqcmVzdHJpY3QgcHRyLCBzaXplX3Qg
c2l6ZSwgc2l6ZV90IG5pdGVtcywgRklMRSAqcmVzdHJpY3Qgc3RyZWFtKTsKLSAgICAgIC8vIGh0
dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL2Z3
cml0ZS5odG1sCi0gICAgICB2YXIgYnl0ZXNUb1dyaXRlID0gbml0ZW1zICogc2l6ZTsKLSAgICAg
IGlmIChieXRlc1RvV3JpdGUgPT0gMCkgcmV0dXJuIDA7Ci0gICAgICB2YXIgYnl0ZXNXcml0dGVu
ID0gX3dyaXRlKHN0cmVhbSwgcHRyLCBieXRlc1RvV3JpdGUpOwotICAgICAgaWYgKGJ5dGVzV3Jp
dHRlbiA9PSAtMSkgewotICAgICAgICB2YXIgc3RyZWFtT2JqID0gRlMuZ2V0U3RyZWFtKHN0cmVh
bSk7Ci0gICAgICAgIGlmIChzdHJlYW1PYmopIHN0cmVhbU9iai5lcnJvciA9IHRydWU7Ci0gICAg
ICAgIHJldHVybiAwOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIE1hdGguZmxvb3Io
Ynl0ZXNXcml0dGVuIC8gc2l6ZSk7Ci0gICAgICB9Ci0gICAgfQotICBmdW5jdGlvbiBfdW5nZXRj
KGMsIHN0cmVhbSkgewotICAgICAgLy8gaW50IHVuZ2V0YyhpbnQgYywgRklMRSAqc3RyZWFtKTsK
LSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkv
ZnVuY3Rpb25zL3VuZ2V0Yy5odG1sCi0gICAgICBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oc3RyZWFt
KTsKLSAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAg
ICAgIGlmIChjID09PSAtMSkgewotICAgICAgICAvLyBkbyBub3RoaW5nIGZvciBFT0YgY2hhcmFj
dGVyCi0gICAgICAgIHJldHVybiBjOwotICAgICAgfQotICAgICAgYyA9IHVuU2lnbihjICYgMHhG
Rik7Ci0gICAgICBzdHJlYW0udW5nb3R0ZW4ucHVzaChjKTsKLSAgICAgIHN0cmVhbS5lb2YgPSBm
YWxzZTsKLSAgICAgIHJldHVybiBjOwotICAgIH0KLSAgZnVuY3Rpb24gX3JlY3YoZmQsIGJ1Ziwg
bGVuLCBmbGFncykgewotICAgICAgdmFyIGluZm8gPSBGUy5nZXRTdHJlYW0oZmQpOwotICAgICAg
aWYgKCFpbmZvKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAg
ICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgICAgaWYgKCFpbmZvLmhhc0RhdGEoKSkgewot
ICAgICAgICBpZiAoaW5mby5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNMT1NJTkcg
fHwgaW5mby5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNMT1NFRCkgewotICAgICAg
ICAgIC8vIHNvY2tldCBoYXMgY2xvc2VkCi0gICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgLy8gZWxzZSwgb3VyIHNvY2tldCBpcyBpbiBhIHZhbGlkIHN0YXRl
IGJ1dCB0cnVseSBoYXMgbm90aGluZyBhdmFpbGFibGUKLSAgICAgICAgICBfX19zZXRFcnJObyhF
UlJOT19DT0RFUy5FQUdBSU4pOwotICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgfQotICAg
ICAgfQotICAgICAgdmFyIGJ1ZmZlciA9IGluZm8uaW5RdWV1ZS5zaGlmdCgpOwotICAgICAgaWYg
KGxlbiA8IGJ1ZmZlci5sZW5ndGgpIHsKLSAgICAgICAgaWYgKGluZm8uc3RyZWFtKSB7Ci0gICAg
ICAgICAgLy8gVGhpcyBpcyB0Y3AgKHJlbGlhYmxlKSwgc28gaWYgbm90IGFsbCB3YXMgcmVhZCwg
a2VlcCBpdAotICAgICAgICAgIGluZm8uaW5RdWV1ZS51bnNoaWZ0KGJ1ZmZlci5zdWJhcnJheShs
ZW4pKTsKLSAgICAgICAgfQotICAgICAgICBidWZmZXIgPSBidWZmZXIuc3ViYXJyYXkoMCwgbGVu
KTsKLSAgICAgIH0KLSAgICAgIEhFQVBVOC5zZXQoYnVmZmVyLCBidWYpOwotICAgICAgcmV0dXJu
IGJ1ZmZlci5sZW5ndGg7Ci0gICAgfQotICBmdW5jdGlvbiBfcHJlYWQoZmlsZGVzLCBidWYsIG5i
eXRlLCBvZmZzZXQpIHsKLSAgICAgIC8vIHNzaXplX3QgcHJlYWQoaW50IGZpbGRlcywgdm9pZCAq
YnVmLCBzaXplX3QgbmJ5dGUsIG9mZl90IG9mZnNldCk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5v
cGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9yZWFkLmh0bWwKLSAg
ICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmlsZGVzKTsKLSAgICAgIGlmICghc3RyZWFt
KSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0
dXJuIC0xOwotICAgICAgfQotICAgICAgdHJ5IHsKLSAgICAgICAgdmFyIHNsYWIgPSBIRUFQODsK
LSAgICAgICAgcmV0dXJuIEZTLnJlYWQoc3RyZWFtLCBzbGFiLCBidWYsIG5ieXRlLCBvZmZzZXQp
OwotICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBGUy5oYW5kbGVGU0Vycm9yKGUpOwotICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF9yZWFkKGZpbGRlcywgYnVm
LCBuYnl0ZSkgewotICAgICAgLy8gc3NpemVfdCByZWFkKGludCBmaWxkZXMsIHZvaWQgKmJ1Ziwg
c2l6ZV90IG5ieXRlKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5l
cHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3JlYWQuaHRtbAotICAgICAgdmFyIHN0cmVhbSA9IEZT
LmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgX19fc2V0
RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0g
ICAgICBpZiAoc3RyZWFtICYmICgnc29ja2V0JyBpbiBzdHJlYW0pKSB7Ci0gICAgICAgIHJldHVy
biBfcmVjdihmaWxkZXMsIGJ1ZiwgbmJ5dGUsIDApOwotICAgICAgfQotICAgICAgdHJ5IHsKLSAg
ICAgICAgdmFyIHNsYWIgPSBIRUFQODsKLSAgICAgICAgcmV0dXJuIEZTLnJlYWQoc3RyZWFtLCBz
bGFiLCBidWYsIG5ieXRlKTsKLSAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgRlMuaGFuZGxl
RlNFcnJvcihlKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgIH1mdW5jdGlvbiBf
ZnJlYWQocHRyLCBzaXplLCBuaXRlbXMsIHN0cmVhbSkgewotICAgICAgLy8gc2l6ZV90IGZyZWFk
KHZvaWQgKnJlc3RyaWN0IHB0ciwgc2l6ZV90IHNpemUsIHNpemVfdCBuaXRlbXMsIEZJTEUgKnJl
c3RyaWN0IHN0cmVhbSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGlu
ZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9mcmVhZC5odG1sCi0gICAgICB2YXIgYnl0ZXNUb1Jl
YWQgPSBuaXRlbXMgKiBzaXplOwotICAgICAgaWYgKGJ5dGVzVG9SZWFkID09IDApIHsKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgICB9Ci0gICAgICB2YXIgYnl0ZXNSZWFkID0gMDsKLSAgICAgIHZh
ciBzdHJlYW1PYmogPSBGUy5nZXRTdHJlYW0oc3RyZWFtKTsKLSAgICAgIHdoaWxlIChzdHJlYW1P
YmoudW5nb3R0ZW4ubGVuZ3RoICYmIGJ5dGVzVG9SZWFkID4gMCkgewotICAgICAgICBIRUFQOFso
KHB0cisrKXwwKV09c3RyZWFtT2JqLnVuZ290dGVuLnBvcCgpCi0gICAgICAgIGJ5dGVzVG9SZWFk
LS07Ci0gICAgICAgIGJ5dGVzUmVhZCsrOwotICAgICAgfQotICAgICAgdmFyIGVyciA9IF9yZWFk
KHN0cmVhbSwgcHRyLCBieXRlc1RvUmVhZCk7Ci0gICAgICBpZiAoZXJyID09IC0xKSB7Ci0gICAg
ICAgIGlmIChzdHJlYW1PYmopIHN0cmVhbU9iai5lcnJvciA9IHRydWU7Ci0gICAgICAgIHJldHVy
biAwOwotICAgICAgfQotICAgICAgYnl0ZXNSZWFkICs9IGVycjsKLSAgICAgIGlmIChieXRlc1Jl
YWQgPCBieXRlc1RvUmVhZCkgc3RyZWFtT2JqLmVvZiA9IHRydWU7Ci0gICAgICByZXR1cm4gTWF0
aC5mbG9vcihieXRlc1JlYWQgLyBzaXplKTsKLSAgICB9ZnVuY3Rpb24gX2ZnZXRjKHN0cmVhbSkg
ewotICAgICAgLy8gaW50IGZnZXRjKEZJTEUgKnN0cmVhbSk7Ci0gICAgICAvLyBodHRwOi8vcHVi
cy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9mZ2V0Yy5odG1s
Ci0gICAgICB2YXIgc3RyZWFtT2JqID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7Ci0gICAgICBpZiAo
IXN0cmVhbU9iaikgcmV0dXJuIC0xOwotICAgICAgaWYgKHN0cmVhbU9iai5lb2YgfHwgc3RyZWFt
T2JqLmVycm9yKSByZXR1cm4gLTE7Ci0gICAgICB2YXIgcmV0ID0gX2ZyZWFkKF9mZ2V0Yy5yZXQs
IDEsIDEsIHN0cmVhbSk7Ci0gICAgICBpZiAocmV0ID09IDApIHsKLSAgICAgICAgc3RyZWFtT2Jq
LmVvZiA9IHRydWU7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0gZWxzZSBpZiAocmV0ID09
IC0xKSB7Ci0gICAgICAgIHN0cmVhbU9iai5lcnJvciA9IHRydWU7Ci0gICAgICAgIHJldHVybiAt
MTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBIRUFQVThbKChfZmdldGMucmV0KXww
KV07Ci0gICAgICB9Ci0gICAgfXZhciBfZ2V0Yz1fZmdldGM7Ci0gIGZ1bmN0aW9uIF9fX2N4YV9w
dXJlX3ZpcnR1YWwoKSB7Ci0gICAgICBBQk9SVCA9IHRydWU7Ci0gICAgICB0aHJvdyAnUHVyZSB2
aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEnOwotICAgIH0KLSAgZnVuY3Rpb24gX19fZXJybm9fbG9j
YXRpb24oKSB7Ci0gICAgICByZXR1cm4gX19fZXJybm9fc3RhdGU7Ci0gICAgfXZhciBfX19lcnJu
bz1fX19lcnJub19sb2NhdGlvbjsKLSAgdmFyIF9sbHZtX21lbXNldF9wMGk4X2kzMj1fbWVtc2V0
OwotICBNb2R1bGVbIl9zdHJsZW4iXSA9IF9zdHJsZW47Ci0gIGZ1bmN0aW9uIF9zdHJlcnJvcl9y
KGVycm51bSwgc3RyZXJyYnVmLCBidWZsZW4pIHsKLSAgICAgIGlmIChlcnJudW0gaW4gRVJSTk9f
TUVTU0FHRVMpIHsKLSAgICAgICAgaWYgKEVSUk5PX01FU1NBR0VTW2Vycm51bV0ubGVuZ3RoID4g
YnVmbGVuIC0gMSkgewotICAgICAgICAgIHJldHVybiBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5F
UkFOR0UpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHZhciBtc2cgPSBFUlJOT19NRVNT
QUdFU1tlcnJudW1dOwotICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXNnLmxlbmd0aDsg
aSsrKSB7Ci0gICAgICAgICAgICBIRUFQOFsoKChzdHJlcnJidWYpKyhpKSl8MCldPW1zZy5jaGFy
Q29kZUF0KGkpCi0gICAgICAgICAgfQotICAgICAgICAgIEhFQVA4WygoKHN0cmVycmJ1ZikrKGkp
KXwwKV09MAotICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0gICAgICB9IGVsc2Ugewot
ICAgICAgICByZXR1cm4gX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgIH0K
LSAgICB9ZnVuY3Rpb24gX3N0cmVycm9yKGVycm51bSkgewotICAgICAgaWYgKCFfc3RyZXJyb3Iu
YnVmZmVyKSBfc3RyZXJyb3IuYnVmZmVyID0gX21hbGxvYygyNTYpOwotICAgICAgX3N0cmVycm9y
X3IoZXJybnVtLCBfc3RyZXJyb3IuYnVmZmVyLCAyNTYpOwotICAgICAgcmV0dXJuIF9zdHJlcnJv
ci5idWZmZXI7Ci0gICAgfQotICBmdW5jdGlvbiBfYWJvcnQoKSB7Ci0gICAgICBNb2R1bGVbJ2Fi
b3J0J10oKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fcmVhbGx5TmVnYXRpdmUoeCkgewotICAgICAg
cmV0dXJuIHggPCAwIHx8ICh4ID09PSAwICYmICgxL3gpID09PSAtSW5maW5pdHkpOwotICAgIH1m
dW5jdGlvbiBfX2Zvcm1hdFN0cmluZyhmb3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAgIHZhciB0ZXh0
SW5kZXggPSBmb3JtYXQ7Ci0gICAgICB2YXIgYXJnSW5kZXggPSAwOwotICAgICAgZnVuY3Rpb24g
Z2V0TmV4dEFyZyh0eXBlKSB7Ci0gICAgICAgIC8vIE5PVEU6IEV4cGxpY2l0bHkgaWdub3Jpbmcg
dHlwZSBzYWZldHkuIE90aGVyd2lzZSB0aGlzIGZhaWxzOgotICAgICAgICAvLyAgICAgICBpbnQg
eCA9IDQ7IHByaW50ZigiJWNcbiIsIChjaGFyKXgpOwotICAgICAgICB2YXIgcmV0OwotICAgICAg
ICBpZiAodHlwZSA9PT0gJ2RvdWJsZScpIHsKLSAgICAgICAgICByZXQgPSBIRUFQRjY0WygoKHZh
cmFyZ3MpKyhhcmdJbmRleCkpPj4zKV07Ci0gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnaTY0
JykgewotICAgICAgICAgIHJldCA9IFtIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+PjIp
XSwKLSAgICAgICAgICAgICAgICAgSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCs4KSk+PjIp
XV07Ci0gICAgICAgICAgYXJnSW5kZXggKz0gODsgLy8gZWFjaCAzMi1iaXQgY2h1bmsgaXMgaW4g
YSA2NC1iaXQgYmxvY2sKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0eXBlID0gJ2kzMic7
IC8vIHZhcmFyZ3MgYXJlIGFsd2F5cyBpMzIsIGk2NCwgb3IgZG91YmxlCi0gICAgICAgICAgcmV0
ID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07Ci0gICAgICAgIH0KLSAgICAg
ICAgYXJnSW5kZXggKz0gTWF0aC5tYXgoUnVudGltZS5nZXROYXRpdmVGaWVsZFNpemUodHlwZSks
IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKHR5cGUsIG51bGwsIHRydWUpKTsKLSAgICAgICAgcmV0dXJu
IHJldDsKLSAgICAgIH0KLSAgICAgIHZhciByZXQgPSBbXTsKLSAgICAgIHZhciBjdXJyLCBuZXh0
LCBjdXJyQXJnOwotICAgICAgd2hpbGUoMSkgewotICAgICAgICB2YXIgc3RhcnRUZXh0SW5kZXgg
PSB0ZXh0SW5kZXg7Ci0gICAgICAgIGN1cnIgPSBIRUFQOFsodGV4dEluZGV4KV07Ci0gICAgICAg
IGlmIChjdXJyID09PSAwKSBicmVhazsKLSAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4
KzEpfDApXTsKLSAgICAgICAgaWYgKGN1cnIgPT0gMzcpIHsKLSAgICAgICAgICAvLyBIYW5kbGUg
ZmxhZ3MuCi0gICAgICAgICAgdmFyIGZsYWdBbHdheXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAg
ICB2YXIgZmxhZ0xlZnRBbGlnbiA9IGZhbHNlOwotICAgICAgICAgIHZhciBmbGFnQWx0ZXJuYXRp
dmUgPSBmYWxzZTsKLSAgICAgICAgICB2YXIgZmxhZ1plcm9QYWQgPSBmYWxzZTsKLSAgICAgICAg
ICBmbGFnc0xvb3A6IHdoaWxlICgxKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKG5leHQpIHsKLSAg
ICAgICAgICAgICAgY2FzZSA0MzoKLSAgICAgICAgICAgICAgICBmbGFnQWx3YXlzU2lnbmVkID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgY2FzZSA0NToKLSAg
ICAgICAgICAgICAgICBmbGFnTGVmdEFsaWduID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgY2FzZSAzNToKLSAgICAgICAgICAgICAgICBmbGFnQWx0ZXJuYXRp
dmUgPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICBjYXNlIDQ4
OgotICAgICAgICAgICAgICAgIGlmIChmbGFnWmVyb1BhZCkgewotICAgICAgICAgICAgICAgICAg
YnJlYWsgZmxhZ3NMb29wOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICBmbGFnWmVyb1BhZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgYnJl
YWsgZmxhZ3NMb29wOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0g
ICAgICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgIH0K
LSAgICAgICAgICAvLyBIYW5kbGUgd2lkdGguCi0gICAgICAgICAgdmFyIHdpZHRoID0gMDsKLSAg
ICAgICAgICBpZiAobmV4dCA9PSA0MikgewotICAgICAgICAgICAgd2lkdGggPSBnZXROZXh0QXJn
KCdpMzInKTsKLSAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgbmV4dCA9IEhF
QVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
d2hpbGUgKG5leHQgPj0gNDggJiYgbmV4dCA8PSA1NykgewotICAgICAgICAgICAgICB3aWR0aCA9
IHdpZHRoICogMTAgKyAobmV4dCAtIDQ4KTsKLSAgICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0g
ICAgICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIEhhbmRsZSBwcmVjaXNpb24uCi0gICAgICAg
ICAgdmFyIHByZWNpc2lvblNldCA9IGZhbHNlOwotICAgICAgICAgIGlmIChuZXh0ID09IDQ2KSB7
Ci0gICAgICAgICAgICB2YXIgcHJlY2lzaW9uID0gMDsKLSAgICAgICAgICAgIHByZWNpc2lvblNl
dCA9IHRydWU7Ci0gICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgIG5leHQgPSBI
RUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgICBpZiAobmV4dCA9PSA0Mikgewot
ICAgICAgICAgICAgICBwcmVjaXNpb24gPSBnZXROZXh0QXJnKCdpMzInKTsKLSAgICAgICAgICAg
ICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICB3aGls
ZSgxKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHByZWNpc2lvbkNociA9IEhFQVA4WygodGV4dElu
ZGV4KzEpfDApXTsKLSAgICAgICAgICAgICAgICBpZiAocHJlY2lzaW9uQ2hyIDwgNDggfHwKLSAg
ICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uQ2hyID4gNTcpIGJyZWFrOwotICAgICAgICAgICAg
ICAgIHByZWNpc2lvbiA9IHByZWNpc2lvbiAqIDEwICsgKHByZWNpc2lvbkNociAtIDQ4KTsKLSAg
ICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotICAgICAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIHByZWNpc2lvbiA9IDY7IC8vIFN0YW5kYXJkIGRl
ZmF1bHQuCi0gICAgICAgICAgfQotICAgICAgICAgIC8vIEhhbmRsZSBpbnRlZ2VyIHNpemVzLiBX
QVJOSU5HOiBUaGVzZSBhc3N1bWUgYSAzMi1iaXQgYXJjaGl0ZWN0dXJlIQotICAgICAgICAgIHZh
ciBhcmdTaXplOwotICAgICAgICAgIHN3aXRjaCAoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSkg
ewotICAgICAgICAgICAgY2FzZSAnaCc6Ci0gICAgICAgICAgICAgIHZhciBuZXh0TmV4dCA9IEhF
QVA4WygodGV4dEluZGV4KzIpfDApXTsKLSAgICAgICAgICAgICAgaWYgKG5leHROZXh0ID09IDEw
NCkgewotICAgICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgICAgIGFyZ1Np
emUgPSAxOyAvLyBjaGFyIChhY3R1YWxseSBpMzIgaW4gdmFyYXJncykKLSAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhcmdTaXplID0gMjsgLy8gc2hvcnQgKGFjdHVhbGx5
IGkzMiBpbiB2YXJhcmdzKQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSAnbCc6Ci0gICAgICAgICAgICAgIHZhciBuZXh0TmV4dCA9IEhFQVA4
WygodGV4dEluZGV4KzIpfDApXTsKLSAgICAgICAgICAgICAgaWYgKG5leHROZXh0ID09IDEwOCkg
ewotICAgICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgICAgIGFyZ1NpemUg
PSA4OyAvLyBsb25nIGxvbmcKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICBhcmdTaXplID0gNDsgLy8gbG9uZwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgY2FzZSAnTCc6IC8vIGxvbmcgbG9uZwotICAgICAgICAgICAgY2Fz
ZSAncSc6IC8vIGludDY0X3QKLSAgICAgICAgICAgIGNhc2UgJ2onOiAvLyBpbnRtYXhfdAotICAg
ICAgICAgICAgICBhcmdTaXplID0gODsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBjYXNlICd6JzogLy8gc2l6ZV90Ci0gICAgICAgICAgICBjYXNlICd0JzogLy8gcHRyZGlmZl90
Ci0gICAgICAgICAgICBjYXNlICdJJzogLy8gc2lnbmVkIHB0cmRpZmZfdCBvciB1bnNpZ25lZCBz
aXplX3QKLSAgICAgICAgICAgICAgYXJnU2l6ZSA9IDQ7Ci0gICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgYXJnU2l6ZSA9IG51bGw7Ci0gICAg
ICAgICAgfQotICAgICAgICAgIGlmIChhcmdTaXplKSB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICBu
ZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgIC8vIEhhbmRsZSB0eXBl
IHNwZWNpZmllci4KLSAgICAgICAgICBzd2l0Y2ggKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkp
IHsKLSAgICAgICAgICAgIGNhc2UgJ2QnOiBjYXNlICdpJzogY2FzZSAndSc6IGNhc2UgJ28nOiBj
YXNlICd4JzogY2FzZSAnWCc6IGNhc2UgJ3AnOiB7Ci0gICAgICAgICAgICAgIC8vIEludGVnZXIu
Ci0gICAgICAgICAgICAgIHZhciBzaWduZWQgPSBuZXh0ID09IDEwMCB8fCBuZXh0ID09IDEwNTsK
LSAgICAgICAgICAgICAgYXJnU2l6ZSA9IGFyZ1NpemUgfHwgNDsKLSAgICAgICAgICAgICAgdmFy
IGN1cnJBcmcgPSBnZXROZXh0QXJnKCdpJyArIChhcmdTaXplICogOCkpOwotICAgICAgICAgICAg
ICB2YXIgb3JpZ0FyZyA9IGN1cnJBcmc7Ci0gICAgICAgICAgICAgIHZhciBhcmdUZXh0OwotICAg
ICAgICAgICAgICAvLyBGbGF0dGVuIGk2NC0xIFtsb3csIGhpZ2hdIGludG8gYSAoc2xpZ2h0bHkg
cm91bmRlZCkgZG91YmxlCi0gICAgICAgICAgICAgIGlmIChhcmdTaXplID09IDgpIHsKLSAgICAg
ICAgICAgICAgICBjdXJyQXJnID0gUnVudGltZS5tYWtlQmlnSW50KGN1cnJBcmdbMF0sIGN1cnJB
cmdbMV0sIG5leHQgPT0gMTE3KTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBU
cnVuY2F0ZSB0byByZXF1ZXN0ZWQgc2l6ZS4KLSAgICAgICAgICAgICAgaWYgKGFyZ1NpemUgPD0g
NCkgewotICAgICAgICAgICAgICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDI1NiwgYXJnU2l6ZSkg
LSAxOwotICAgICAgICAgICAgICAgIGN1cnJBcmcgPSAoc2lnbmVkID8gcmVTaWduIDogdW5TaWdu
KShjdXJyQXJnICYgbGltaXQsIGFyZ1NpemUgKiA4KTsKLSAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAvLyBGb3JtYXQgdGhlIG51bWJlci4KLSAgICAgICAgICAgICAgdmFyIGN1cnJBYnNB
cmcgPSBNYXRoLmFicyhjdXJyQXJnKTsKLSAgICAgICAgICAgICAgdmFyIHByZWZpeCA9ICcnOwot
ICAgICAgICAgICAgICBpZiAobmV4dCA9PSAxMDAgfHwgbmV4dCA9PSAxMDUpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4ICYmIGk2NE1hdGgpIGFyZ1RleHQgPSBpNjRNYXRoLnN0
cmluZ2lmeShvcmlnQXJnWzBdLCBvcmlnQXJnWzFdLCBudWxsKTsgZWxzZQotICAgICAgICAgICAg
ICAgIGFyZ1RleHQgPSByZVNpZ24oY3VyckFyZywgOCAqIGFyZ1NpemUsIDEpLnRvU3RyaW5nKDEw
KTsKLSAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09IDExNykgewotICAgICAgICAgICAg
ICAgIGlmIChhcmdTaXplID09IDggJiYgaTY0TWF0aCkgYXJnVGV4dCA9IGk2NE1hdGguc3RyaW5n
aWZ5KG9yaWdBcmdbMF0sIG9yaWdBcmdbMV0sIHRydWUpOyBlbHNlCi0gICAgICAgICAgICAgICAg
YXJnVGV4dCA9IHVuU2lnbihjdXJyQXJnLCA4ICogYXJnU2l6ZSwgMSkudG9TdHJpbmcoMTApOwot
ICAgICAgICAgICAgICAgIGN1cnJBcmcgPSBNYXRoLmFicyhjdXJyQXJnKTsKLSAgICAgICAgICAg
ICAgfSBlbHNlIGlmIChuZXh0ID09IDExMSkgewotICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAo
ZmxhZ0FsdGVybmF0aXZlID8gJzAnIDogJycpICsgY3VyckFic0FyZy50b1N0cmluZyg4KTsKLSAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09IDEyMCB8fCBuZXh0ID09IDg4KSB7Ci0gICAg
ICAgICAgICAgICAgcHJlZml4ID0gKGZsYWdBbHRlcm5hdGl2ZSAmJiBjdXJyQXJnICE9IDApID8g
JzB4JyA6ICcnOwotICAgICAgICAgICAgICAgIGlmIChhcmdTaXplID09IDggJiYgaTY0TWF0aCkg
ewotICAgICAgICAgICAgICAgICAgaWYgKG9yaWdBcmdbMV0pIHsKLSAgICAgICAgICAgICAgICAg
ICAgYXJnVGV4dCA9IChvcmlnQXJnWzFdPj4+MCkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAg
ICAgICAgICB2YXIgbG93ZXIgPSAob3JpZ0FyZ1swXT4+PjApLnRvU3RyaW5nKDE2KTsKLSAgICAg
ICAgICAgICAgICAgICAgd2hpbGUgKGxvd2VyLmxlbmd0aCA8IDgpIGxvd2VyID0gJzAnICsgbG93
ZXI7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgKz0gbG93ZXI7Ci0gICAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKG9yaWdBcmdbMF0+
Pj4wKS50b1N0cmluZygxNik7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgaWYgKGN1cnJBcmcgPCAwKSB7Ci0gICAgICAgICAgICAg
ICAgICAvLyBSZXByZXNlbnQgbmVnYXRpdmUgbnVtYmVycyBpbiBoZXggYXMgMidzIGNvbXBsZW1l
bnQuCi0gICAgICAgICAgICAgICAgICBjdXJyQXJnID0gLWN1cnJBcmc7Ci0gICAgICAgICAgICAg
ICAgICBhcmdUZXh0ID0gKGN1cnJBYnNBcmcgLSAxKS50b1N0cmluZygxNik7Ci0gICAgICAgICAg
ICAgICAgICB2YXIgYnVmZmVyID0gW107Ci0gICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGFyZ1RleHQubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgYnVmZmVy
LnB1c2goKDB4RiAtIHBhcnNlSW50KGFyZ1RleHRbaV0sIDE2KSkudG9TdHJpbmcoMTYpKTsKLSAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBidWZmZXIuam9p
bignJyk7Ci0gICAgICAgICAgICAgICAgICB3aGlsZSAoYXJnVGV4dC5sZW5ndGggPCBhcmdTaXpl
ICogMikgYXJnVGV4dCA9ICdmJyArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBjdXJyQWJzQXJnLnRvU3RyaW5nKDE2KTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG5leHQgPT0gODgpIHsKLSAgICAg
ICAgICAgICAgICAgIHByZWZpeCA9IHByZWZpeC50b1VwcGVyQ2FzZSgpOwotICAgICAgICAgICAg
ICAgICAgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBlckNhc2UoKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMTIpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoY3VyckFic0FyZyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICco
bmlsKSc7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHByZWZp
eCA9ICcweCc7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gY3VyckFic0FyZy50b1N0cmlu
ZygxNik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IGlmIChwcmVjaXNpb25TZXQpIHsKLSAgICAgICAgICAgICAgICB3aGlsZSAoYXJnVGV4dC5sZW5n
dGggPCBwcmVjaXNpb24pIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnMCcgKyBhcmdU
ZXh0OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAv
LyBBZGQgc2lnbiBpZiBuZWVkZWQKLSAgICAgICAgICAgICAgaWYgKGZsYWdBbHdheXNTaWduZWQp
IHsKLSAgICAgICAgICAgICAgICBpZiAoY3VyckFyZyA8IDApIHsKLSAgICAgICAgICAgICAgICAg
IHByZWZpeCA9ICctJyArIHByZWZpeDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgcHJlZml4ID0gJysnICsgcHJlZml4OwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBBZGQgcGFkZGluZy4KLSAgICAgICAgICAg
ICAgd2hpbGUgKHByZWZpeC5sZW5ndGggKyBhcmdUZXh0Lmxlbmd0aCA8IHdpZHRoKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKGZsYWdMZWZ0QWxpZ24pIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1Rl
eHQgKz0gJyAnOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBp
ZiAoZmxhZ1plcm9QYWQpIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICcwJyArIGFy
Z1RleHQ7Ci0gICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBw
cmVmaXggPSAnICcgKyBwcmVmaXg7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIC8vIEluc2VydCB0aGUgcmVzdWx0
IGludG8gdGhlIGJ1ZmZlci4KLSAgICAgICAgICAgICAgYXJnVGV4dCA9IHByZWZpeCArIGFyZ1Rl
eHQ7Ci0gICAgICAgICAgICAgIGFyZ1RleHQuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24oY2hy
KSB7Ci0gICAgICAgICAgICAgICAgcmV0LnB1c2goY2hyLmNoYXJDb2RlQXQoMCkpOwotICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBjYXNlICdmJzogY2FzZSAnRic6IGNhc2UgJ2UnOiBjYXNlICdFJzogY2FzZSAnZyc6IGNh
c2UgJ0cnOiB7Ci0gICAgICAgICAgICAgIC8vIEZsb2F0LgotICAgICAgICAgICAgICB2YXIgY3Vy
ckFyZyA9IGdldE5leHRBcmcoJ2RvdWJsZScpOwotICAgICAgICAgICAgICB2YXIgYXJnVGV4dDsK
LSAgICAgICAgICAgICAgaWYgKGlzTmFOKGN1cnJBcmcpKSB7Ci0gICAgICAgICAgICAgICAgYXJn
VGV4dCA9ICduYW4nOwotICAgICAgICAgICAgICAgIGZsYWdaZXJvUGFkID0gZmFsc2U7Ci0gICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoIWlzRmluaXRlKGN1cnJBcmcpKSB7Ci0gICAgICAgICAgICAg
ICAgYXJnVGV4dCA9IChjdXJyQXJnIDwgMCA/ICctJyA6ICcnKSArICdpbmYnOwotICAgICAgICAg
ICAgICAgIGZsYWdaZXJvUGFkID0gZmFsc2U7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgdmFyIGlzR2VuZXJhbCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHZhciBl
ZmZlY3RpdmVQcmVjaXNpb24gPSBNYXRoLm1pbihwcmVjaXNpb24sIDIwKTsKLSAgICAgICAgICAg
ICAgICAvLyBDb252ZXJ0IGcvRyB0byBmL0Ygb3IgZS9FLCBhcyBwZXI6Ci0gICAgICAgICAgICAg
ICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzk2OTk5MTk3OTkvZnVu
Y3Rpb25zL3ByaW50Zi5odG1sCi0gICAgICAgICAgICAgICAgaWYgKG5leHQgPT0gMTAzIHx8IG5l
eHQgPT0gNzEpIHsKLSAgICAgICAgICAgICAgICAgIGlzR2VuZXJhbCA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgICBwcmVjaXNpb24gPSBwcmVjaXNpb24gfHwgMTsKLSAgICAgICAgICAgICAgICAg
IHZhciBleHBvbmVudCA9IHBhcnNlSW50KGN1cnJBcmcudG9FeHBvbmVudGlhbChlZmZlY3RpdmVQ
cmVjaXNpb24pLnNwbGl0KCdlJylbMV0sIDEwKTsKLSAgICAgICAgICAgICAgICAgIGlmIChwcmVj
aXNpb24gPiBleHBvbmVudCAmJiBleHBvbmVudCA+PSAtNCkgewotICAgICAgICAgICAgICAgICAg
ICBuZXh0ID0gKChuZXh0ID09IDEwMykgPyAnZicgOiAnRicpLmNoYXJDb2RlQXQoMCk7Ci0gICAg
ICAgICAgICAgICAgICAgIHByZWNpc2lvbiAtPSBleHBvbmVudCArIDE7Ci0gICAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBuZXh0ID0gKChuZXh0ID09IDEwMykg
PyAnZScgOiAnRScpLmNoYXJDb2RlQXQoMCk7Ci0gICAgICAgICAgICAgICAgICAgIHByZWNpc2lv
bi0tOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgZWZmZWN0aXZlUHJl
Y2lzaW9uID0gTWF0aC5taW4ocHJlY2lzaW9uLCAyMCk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIGlmIChuZXh0ID09IDEwMSB8fCBuZXh0ID09IDY5KSB7Ci0gICAgICAgICAg
ICAgICAgICBhcmdUZXh0ID0gY3VyckFyZy50b0V4cG9uZW50aWFsKGVmZmVjdGl2ZVByZWNpc2lv
bik7Ci0gICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGV4cG9uZW50IGhhcyBhdCBs
ZWFzdCAyIGRpZ2l0cy4KLSAgICAgICAgICAgICAgICAgIGlmICgvW2VFXVstK11cZCQvLnRlc3Qo
YXJnVGV4dCkpIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGFyZ1RleHQuc2xpY2Uo
MCwgLTEpICsgJzAnICsgYXJnVGV4dC5zbGljZSgtMSk7Ci0gICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09IDEwMiB8fCBuZXh0ID09IDcwKSB7Ci0g
ICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gY3VyckFyZy50b0ZpeGVkKGVmZmVjdGl2ZVByZWNp
c2lvbik7Ci0gICAgICAgICAgICAgICAgICBpZiAoY3VyckFyZyA9PT0gMCAmJiBfX3JlYWxseU5l
Z2F0aXZlKGN1cnJBcmcpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnLScgKyBh
cmdUZXh0OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB2YXIgcGFydHMgPSBhcmdUZXh0LnNwbGl0KCdlJyk7Ci0gICAgICAgICAgICAgICAg
aWYgKGlzR2VuZXJhbCAmJiAhZmxhZ0FsdGVybmF0aXZlKSB7Ci0gICAgICAgICAgICAgICAgICAv
LyBEaXNjYXJkIHRyYWlsaW5nIHplcm9zIGFuZCBwZXJpb2RzLgotICAgICAgICAgICAgICAgICAg
d2hpbGUgKHBhcnRzWzBdLmxlbmd0aCA+IDEgJiYgcGFydHNbMF0uaW5kZXhPZignLicpICE9IC0x
ICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgKHBhcnRzWzBdLnNsaWNlKC0xKSA9PSAnMCcg
fHwgcGFydHNbMF0uc2xpY2UoLTEpID09ICcuJykpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFy
dHNbMF0gPSBwYXJ0c1swXS5zbGljZSgwLCAtMSk7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBo
YXZlIGEgcGVyaW9kIGluIGFsdGVybmF0aXZlIG1vZGUuCi0gICAgICAgICAgICAgICAgICBpZiAo
ZmxhZ0FsdGVybmF0aXZlICYmIGFyZ1RleHQuaW5kZXhPZignLicpID09IC0xKSBwYXJ0c1swXSAr
PSAnLic7Ci0gICAgICAgICAgICAgICAgICAvLyBaZXJvIHBhZCB1bnRpbCByZXF1aXJlZCBwcmVj
aXNpb24uCi0gICAgICAgICAgICAgICAgICB3aGlsZSAocHJlY2lzaW9uID4gZWZmZWN0aXZlUHJl
Y2lzaW9uKyspIHBhcnRzWzBdICs9ICcwJzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgYXJnVGV4dCA9IHBhcnRzWzBdICsgKHBhcnRzLmxlbmd0aCA+IDEgPyAnZScgKyBwYXJ0
c1sxXSA6ICcnKTsKLSAgICAgICAgICAgICAgICAvLyBDYXBpdGFsaXplICdFJyBpZiBuZWVkZWQu
Ci0gICAgICAgICAgICAgICAgaWYgKG5leHQgPT0gNjkpIGFyZ1RleHQgPSBhcmdUZXh0LnRvVXBw
ZXJDYXNlKCk7Ci0gICAgICAgICAgICAgICAgLy8gQWRkIHNpZ24uCi0gICAgICAgICAgICAgICAg
aWYgKGZsYWdBbHdheXNTaWduZWQgJiYgY3VyckFyZyA+PSAwKSB7Ci0gICAgICAgICAgICAgICAg
ICBhcmdUZXh0ID0gJysnICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgLy8gQWRkIHBhZGRpbmcuCi0gICAgICAgICAgICAgIHdoaWxl
IChhcmdUZXh0Lmxlbmd0aCA8IHdpZHRoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZsYWdMZWZ0
QWxpZ24pIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgKz0gJyAnOwotICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiAoZmxhZ1plcm9QYWQgJiYgKGFyZ1Rl
eHRbMF0gPT0gJy0nIHx8IGFyZ1RleHRbMF0gPT0gJysnKSkgewotICAgICAgICAgICAgICAgICAg
ICBhcmdUZXh0ID0gYXJnVGV4dFswXSArICcwJyArIGFyZ1RleHQuc2xpY2UoMSk7Ci0gICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKGZsYWda
ZXJvUGFkID8gJzAnIDogJyAnKSArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIC8vIEFkanVzdCBj
YXNlLgotICAgICAgICAgICAgICBpZiAobmV4dCA8IDk3KSBhcmdUZXh0ID0gYXJnVGV4dC50b1Vw
cGVyQ2FzZSgpOwotICAgICAgICAgICAgICAvLyBJbnNlcnQgdGhlIHJlc3VsdCBpbnRvIHRoZSBi
dWZmZXIuCi0gICAgICAgICAgICAgIGFyZ1RleHQuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24o
Y2hyKSB7Ci0gICAgICAgICAgICAgICAgcmV0LnB1c2goY2hyLmNoYXJDb2RlQXQoMCkpOwotICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBjYXNlICdzJzogewotICAgICAgICAgICAgICAvLyBTdHJpbmcuCi0gICAgICAgICAg
ICAgIHZhciBhcmcgPSBnZXROZXh0QXJnKCdpOConKTsKLSAgICAgICAgICAgICAgdmFyIGFyZ0xl
bmd0aCA9IGFyZyA/IF9zdHJsZW4oYXJnKSA6ICcobnVsbCknLmxlbmd0aDsKLSAgICAgICAgICAg
ICAgaWYgKHByZWNpc2lvblNldCkgYXJnTGVuZ3RoID0gTWF0aC5taW4oYXJnTGVuZ3RoLCBwcmVj
aXNpb24pOwotICAgICAgICAgICAgICBpZiAoIWZsYWdMZWZ0QWxpZ24pIHsKLSAgICAgICAgICAg
ICAgICB3aGlsZSAoYXJnTGVuZ3RoIDwgd2lkdGgtLSkgewotICAgICAgICAgICAgICAgICAgcmV0
LnB1c2goMzIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICBpZiAoYXJnKSB7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdM
ZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgcmV0LnB1c2goSEVBUFU4WygoYXJnKysp
fDApXSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHJldCA9IHJldC5jb25jYXQoaW50QXJyYXlGcm9tU3RyaW5nKCcobnVsbCknLnN1
YnN0cigwLCBhcmdMZW5ndGgpLCB0cnVlKSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgaWYgKGZsYWdMZWZ0QWxpZ24pIHsKLSAgICAgICAgICAgICAgICB3aGlsZSAoYXJnTGVuZ3Ro
IDwgd2lkdGgtLSkgewotICAgICAgICAgICAgICAgICAgcmV0LnB1c2goMzIpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGNhc2UgJ2MnOiB7Ci0gICAgICAgICAgICAgIC8vIENoYXJhY3Rl
ci4KLSAgICAgICAgICAgICAgaWYgKGZsYWdMZWZ0QWxpZ24pIHJldC5wdXNoKGdldE5leHRBcmco
J2k4JykpOwotICAgICAgICAgICAgICB3aGlsZSAoLS13aWR0aCA+IDApIHsKLSAgICAgICAgICAg
ICAgICByZXQucHVzaCgzMik7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKCFm
bGFnTGVmdEFsaWduKSByZXQucHVzaChnZXROZXh0QXJnKCdpOCcpKTsKLSAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlICduJzogewotICAgICAgICAg
ICAgICAvLyBXcml0ZSB0aGUgbGVuZ3RoIHdyaXR0ZW4gc28gZmFyIHRvIHRoZSBuZXh0IHBhcmFt
ZXRlci4KLSAgICAgICAgICAgICAgdmFyIHB0ciA9IGdldE5leHRBcmcoJ2kzMionKTsKLSAgICAg
ICAgICAgICAgSEVBUDMyWygocHRyKT4+MildPXJldC5sZW5ndGgKLSAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlICclJzogewotICAgICAgICAgICAg
ICAvLyBMaXRlcmFsIHBlcmNlbnQgc2lnbi4KLSAgICAgICAgICAgICAgcmV0LnB1c2goY3Vycik7
Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZGVmYXVs
dDogewotICAgICAgICAgICAgICAvLyBVbmtub3duIHNwZWNpZmllcnMgcmVtYWluIHVudG91Y2hl
ZC4KLSAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IHN0YXJ0VGV4dEluZGV4OyBpIDwgdGV4dElu
ZGV4ICsgMjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgcmV0LnB1c2goSEVBUDhbKGkpXSk7Ci0g
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgdGV4
dEluZGV4ICs9IDI7Ci0gICAgICAgICAgLy8gVE9ETzogU3VwcG9ydCBhL0EgKGhleCBmbG9hdCkg
YW5kIG0gKGxhc3QgZXJyb3IpIHNwZWNpZmllcnMuCi0gICAgICAgICAgLy8gVE9ETzogU3VwcG9y
dCAlMSR7c3BlY2lmaWVyfSBmb3IgYXJnIHNlbGVjdGlvbi4KLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICByZXQucHVzaChjdXJyKTsKLSAgICAgICAgICB0ZXh0SW5kZXggKz0gMTsKLSAgICAg
ICAgfQotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9ZnVuY3Rpb24gX3NucHJpbnRm
KHMsIG4sIGZvcm1hdCwgdmFyYXJncykgewotICAgICAgLy8gaW50IHNucHJpbnRmKGNoYXIgKnJl
c3RyaWN0IHMsIHNpemVfdCBuLCBjb25zdCBjaGFyICpyZXN0cmljdCBmb3JtYXQsIC4uLik7Ci0g
ICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1
bmN0aW9ucy9wcmludGYuaHRtbAotICAgICAgdmFyIHJlc3VsdCA9IF9fZm9ybWF0U3RyaW5nKGZv
cm1hdCwgdmFyYXJncyk7Ci0gICAgICB2YXIgbGltaXQgPSAobiA9PT0gdW5kZWZpbmVkKSA/IHJl
c3VsdC5sZW5ndGgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogTWF0aC5t
aW4ocmVzdWx0Lmxlbmd0aCwgTWF0aC5tYXgobiAtIDEsIDApKTsKLSAgICAgIGlmIChzIDwgMCkg
ewotICAgICAgICBzID0gLXM7Ci0gICAgICAgIHZhciBidWYgPSBfbWFsbG9jKGxpbWl0KzEpOwot
ICAgICAgICBIRUFQMzJbKChzKT4+MildPWJ1ZjsKLSAgICAgICAgcyA9IGJ1ZjsKLSAgICAgIH0K
LSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGltaXQ7IGkrKykgewotICAgICAgICBIRUFQOFso
KChzKSsoaSkpfDApXT1yZXN1bHRbaV07Ci0gICAgICB9Ci0gICAgICBpZiAobGltaXQgPCBuIHx8
IChuID09PSB1bmRlZmluZWQpKSBIRUFQOFsoKChzKSsoaSkpfDApXT0wOwotICAgICAgcmV0dXJu
IHJlc3VsdC5sZW5ndGg7Ci0gICAgfQotICBmdW5jdGlvbiBfc3lzY29uZihuYW1lKSB7Ci0gICAg
ICAvLyBsb25nIHN5c2NvbmYoaW50IG5hbWUpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdy
b3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvc3lzY29uZi5odG1sCi0gICAg
ICBzd2l0Y2gobmFtZSkgewotICAgICAgICBjYXNlIDg6IHJldHVybiBQQUdFX1NJWkU7Ci0gICAg
ICAgIGNhc2UgNTQ6Ci0gICAgICAgIGNhc2UgNTY6Ci0gICAgICAgIGNhc2UgMjE6Ci0gICAgICAg
IGNhc2UgNjE6Ci0gICAgICAgIGNhc2UgNjM6Ci0gICAgICAgIGNhc2UgMjI6Ci0gICAgICAgIGNh
c2UgNjc6Ci0gICAgICAgIGNhc2UgMjM6Ci0gICAgICAgIGNhc2UgMjQ6Ci0gICAgICAgIGNhc2Ug
MjU6Ci0gICAgICAgIGNhc2UgMjY6Ci0gICAgICAgIGNhc2UgMjc6Ci0gICAgICAgIGNhc2UgNjk6
Ci0gICAgICAgIGNhc2UgMjg6Ci0gICAgICAgIGNhc2UgMTAxOgotICAgICAgICBjYXNlIDcwOgot
ICAgICAgICBjYXNlIDcxOgotICAgICAgICBjYXNlIDI5OgotICAgICAgICBjYXNlIDMwOgotICAg
ICAgICBjYXNlIDE5OToKLSAgICAgICAgY2FzZSA3NToKLSAgICAgICAgY2FzZSA3NjoKLSAgICAg
ICAgY2FzZSAzMjoKLSAgICAgICAgY2FzZSA0MzoKLSAgICAgICAgY2FzZSA0NDoKLSAgICAgICAg
Y2FzZSA4MDoKLSAgICAgICAgY2FzZSA0NjoKLSAgICAgICAgY2FzZSA0NzoKLSAgICAgICAgY2Fz
ZSA0NToKLSAgICAgICAgY2FzZSA0ODoKLSAgICAgICAgY2FzZSA0OToKLSAgICAgICAgY2FzZSA0
MjoKLSAgICAgICAgY2FzZSA4MjoKLSAgICAgICAgY2FzZSAzMzoKLSAgICAgICAgY2FzZSA3Ogot
ICAgICAgICBjYXNlIDEwODoKLSAgICAgICAgY2FzZSAxMDk6Ci0gICAgICAgIGNhc2UgMTA3Ogot
ICAgICAgICBjYXNlIDExMjoKLSAgICAgICAgY2FzZSAxMTk6Ci0gICAgICAgIGNhc2UgMTIxOgot
ICAgICAgICAgIHJldHVybiAyMDA4MDk7Ci0gICAgICAgIGNhc2UgMTM6Ci0gICAgICAgIGNhc2Ug
MTA0OgotICAgICAgICBjYXNlIDk0OgotICAgICAgICBjYXNlIDk1OgotICAgICAgICBjYXNlIDM0
OgotICAgICAgICBjYXNlIDM1OgotICAgICAgICBjYXNlIDc3OgotICAgICAgICBjYXNlIDgxOgot
ICAgICAgICBjYXNlIDgzOgotICAgICAgICBjYXNlIDg0OgotICAgICAgICBjYXNlIDg1OgotICAg
ICAgICBjYXNlIDg2OgotICAgICAgICBjYXNlIDg3OgotICAgICAgICBjYXNlIDg4OgotICAgICAg
ICBjYXNlIDg5OgotICAgICAgICBjYXNlIDkwOgotICAgICAgICBjYXNlIDkxOgotICAgICAgICBj
YXNlIDk0OgotICAgICAgICBjYXNlIDk1OgotICAgICAgICBjYXNlIDExMDoKLSAgICAgICAgY2Fz
ZSAxMTE6Ci0gICAgICAgIGNhc2UgMTEzOgotICAgICAgICBjYXNlIDExNDoKLSAgICAgICAgY2Fz
ZSAxMTU6Ci0gICAgICAgIGNhc2UgMTE2OgotICAgICAgICBjYXNlIDExNzoKLSAgICAgICAgY2Fz
ZSAxMTg6Ci0gICAgICAgIGNhc2UgMTIwOgotICAgICAgICBjYXNlIDQwOgotICAgICAgICBjYXNl
IDE2OgotICAgICAgICBjYXNlIDc5OgotICAgICAgICBjYXNlIDE5OgotICAgICAgICAgIHJldHVy
biAtMTsKLSAgICAgICAgY2FzZSA5MjoKLSAgICAgICAgY2FzZSA5MzoKLSAgICAgICAgY2FzZSA1
OgotICAgICAgICBjYXNlIDcyOgotICAgICAgICBjYXNlIDY6Ci0gICAgICAgIGNhc2UgNzQ6Ci0g
ICAgICAgIGNhc2UgOTI6Ci0gICAgICAgIGNhc2UgOTM6Ci0gICAgICAgIGNhc2UgOTY6Ci0gICAg
ICAgIGNhc2UgOTc6Ci0gICAgICAgIGNhc2UgOTg6Ci0gICAgICAgIGNhc2UgOTk6Ci0gICAgICAg
IGNhc2UgMTAyOgotICAgICAgICBjYXNlIDEwMzoKLSAgICAgICAgY2FzZSAxMDU6Ci0gICAgICAg
ICAgcmV0dXJuIDE7Ci0gICAgICAgIGNhc2UgMzg6Ci0gICAgICAgIGNhc2UgNjY6Ci0gICAgICAg
IGNhc2UgNTA6Ci0gICAgICAgIGNhc2UgNTE6Ci0gICAgICAgIGNhc2UgNDoKLSAgICAgICAgICBy
ZXR1cm4gMTAyNDsKLSAgICAgICAgY2FzZSAxNToKLSAgICAgICAgY2FzZSA2NDoKLSAgICAgICAg
Y2FzZSA0MToKLSAgICAgICAgICByZXR1cm4gMzI7Ci0gICAgICAgIGNhc2UgNTU6Ci0gICAgICAg
IGNhc2UgMzc6Ci0gICAgICAgIGNhc2UgMTc6Ci0gICAgICAgICAgcmV0dXJuIDIxNDc0ODM2NDc7
Ci0gICAgICAgIGNhc2UgMTg6Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICByZXR1cm4gNDc4
Mzk7Ci0gICAgICAgIGNhc2UgNTk6Ci0gICAgICAgIGNhc2UgNTc6Ci0gICAgICAgICAgcmV0dXJu
IDk5OwotICAgICAgICBjYXNlIDY4OgotICAgICAgICBjYXNlIDU4OgotICAgICAgICAgIHJldHVy
biAyMDQ4OwotICAgICAgICBjYXNlIDA6IHJldHVybiAyMDk3MTUyOwotICAgICAgICBjYXNlIDM6
IHJldHVybiA2NTUzNjsKLSAgICAgICAgY2FzZSAxNDogcmV0dXJuIDMyNzY4OwotICAgICAgICBj
YXNlIDczOiByZXR1cm4gMzI3Njc7Ci0gICAgICAgIGNhc2UgMzk6IHJldHVybiAxNjM4NDsKLSAg
ICAgICAgY2FzZSA2MDogcmV0dXJuIDEwMDA7Ci0gICAgICAgIGNhc2UgMTA2OiByZXR1cm4gNzAw
OwotICAgICAgICBjYXNlIDUyOiByZXR1cm4gMjU2OwotICAgICAgICBjYXNlIDYyOiByZXR1cm4g
MjU1OwotICAgICAgICBjYXNlIDI6IHJldHVybiAxMDA7Ci0gICAgICAgIGNhc2UgNjU6IHJldHVy
biA2NDsKLSAgICAgICAgY2FzZSAzNjogcmV0dXJuIDIwOwotICAgICAgICBjYXNlIDEwMDogcmV0
dXJuIDE2OwotICAgICAgICBjYXNlIDIwOiByZXR1cm4gNjsKLSAgICAgICAgY2FzZSA1MzogcmV0
dXJuIDQ7Ci0gICAgICAgIGNhc2UgMTA6IHJldHVybiAxOwotICAgICAgfQotICAgICAgX19fc2V0
RXJyTm8oRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gIGZ1
bmN0aW9uIF9fX2N4YV9ndWFyZF9hYm9ydCgpIHt9Ci0gIGZ1bmN0aW9uIF9pc3hkaWdpdChjaHIp
IHsKLSAgICAgIHJldHVybiAoY2hyID49IDQ4ICYmIGNociA8PSA1NykgfHwKLSAgICAgICAgICAg
ICAoY2hyID49IDk3ICYmIGNociA8PSAxMDIpIHx8Ci0gICAgICAgICAgICAgKGNociA+PSA2NSAm
JiBjaHIgPD0gNzApOwotICAgIH12YXIgX2lzeGRpZ2l0X2w9X2lzeGRpZ2l0OwotICBmdW5jdGlv
biBfaXNkaWdpdChjaHIpIHsKLSAgICAgIHJldHVybiBjaHIgPj0gNDggJiYgY2hyIDw9IDU3Owot
ICAgIH12YXIgX2lzZGlnaXRfbD1faXNkaWdpdDsKLSAgZnVuY3Rpb24gX19pc0Zsb2F0KHRleHQp
IHsKLSAgICAgIHJldHVybiAhISgvXlsrLV0/WzAtOV0qXC4/WzAtOV0rKFtlRV1bKy1dP1swLTld
Kyk/JC8uZXhlYyh0ZXh0KSk7Ci0gICAgfWZ1bmN0aW9uIF9fc2NhblN0cmluZyhmb3JtYXQsIGdl
dCwgdW5nZXQsIHZhcmFyZ3MpIHsKLSAgICAgIGlmICghX19zY2FuU3RyaW5nLndoaXRlU3BhY2Up
IHsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2UgPSB7fTsKLSAgICAgICAgX19zY2Fu
U3RyaW5nLndoaXRlU3BhY2VbMzJdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3Bh
Y2VbOV0gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsxMF0gPSAxOwotICAg
ICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsxMV0gPSAxOwotICAgICAgICBfX3NjYW5TdHJp
bmcud2hpdGVTcGFjZVsxMl0gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsx
M10gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsnICddID0gMTsKLSAgICAg
ICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJ1x0J10gPSAxOwotICAgICAgICBfX3NjYW5TdHJp
bmcud2hpdGVTcGFjZVsnXG4nXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNl
WydcdiddID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJ1xmJ10gPSAxOwot
ICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsnXHInXSA9IDE7Ci0gICAgICB9Ci0gICAg
ICAvLyBTdXBwb3J0cyAleCwgJTR4LCAlZC4lZCwgJWxsZCwgJXMsICVmLCAlbGYuCi0gICAgICAv
LyBUT0RPOiBTdXBwb3J0IGFsbCBmb3JtYXQgc3BlY2lmaWVycy4KLSAgICAgIGZvcm1hdCA9IFBv
aW50ZXJfc3RyaW5naWZ5KGZvcm1hdCk7Ci0gICAgICB2YXIgc29GYXIgPSAwOwotICAgICAgaWYg
KGZvcm1hdC5pbmRleE9mKCclbicpID49IDApIHsKLSAgICAgICAgLy8gbmVlZCB0byB0cmFjayBz
b0ZhcgotICAgICAgICB2YXIgX2dldCA9IGdldDsKLSAgICAgICAgZ2V0ID0gZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgc29GYXIrKzsKLSAgICAgICAgICByZXR1cm4gX2dldCgpOwotICAgICAgICB9
Ci0gICAgICAgIHZhciBfdW5nZXQgPSB1bmdldDsKLSAgICAgICAgdW5nZXQgPSBmdW5jdGlvbigp
IHsKLSAgICAgICAgICBzb0Zhci0tOwotICAgICAgICAgIHJldHVybiBfdW5nZXQoKTsKLSAgICAg
ICAgfQotICAgICAgfQotICAgICAgdmFyIGZvcm1hdEluZGV4ID0gMDsKLSAgICAgIHZhciBhcmdz
aSA9IDA7Ci0gICAgICB2YXIgZmllbGRzID0gMDsKLSAgICAgIHZhciBhcmdJbmRleCA9IDA7Ci0g
ICAgICB2YXIgbmV4dDsKLSAgICAgIG1haW5Mb29wOgotICAgICAgZm9yICh2YXIgZm9ybWF0SW5k
ZXggPSAwOyBmb3JtYXRJbmRleCA8IGZvcm1hdC5sZW5ndGg7KSB7Ci0gICAgICAgIGlmIChmb3Jt
YXRbZm9ybWF0SW5kZXhdID09PSAnJScgJiYgZm9ybWF0W2Zvcm1hdEluZGV4KzFdID09ICduJykg
ewotICAgICAgICAgIHZhciBhcmdQdHIgPSBIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+
PjIpXTsKLSAgICAgICAgICBhcmdJbmRleCArPSBSdW50aW1lLmdldEFsaWduU2l6ZSgndm9pZCon
LCBudWxsLCB0cnVlKTsKLSAgICAgICAgICBIRUFQMzJbKChhcmdQdHIpPj4yKV09c29GYXI7Ci0g
ICAgICAgICAgZm9ybWF0SW5kZXggKz0gMjsKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
fQotICAgICAgICBpZiAoZm9ybWF0W2Zvcm1hdEluZGV4XSA9PT0gJyUnKSB7Ci0gICAgICAgICAg
dmFyIG5leHRDID0gZm9ybWF0LmluZGV4T2YoJ2MnLCBmb3JtYXRJbmRleCsxKTsKLSAgICAgICAg
ICBpZiAobmV4dEMgPiAwKSB7Ci0gICAgICAgICAgICB2YXIgbWF4eCA9IDE7Ci0gICAgICAgICAg
ICBpZiAobmV4dEMgPiBmb3JtYXRJbmRleCsxKSB7Ci0gICAgICAgICAgICAgIHZhciBzdWIgPSBm
b3JtYXQuc3Vic3RyaW5nKGZvcm1hdEluZGV4KzEsIG5leHRDKQotICAgICAgICAgICAgICBtYXh4
ID0gcGFyc2VJbnQoc3ViKTsKLSAgICAgICAgICAgICAgaWYgKG1heHggIT0gc3ViKSBtYXh4ID0g
MDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChtYXh4KSB7Ci0gICAgICAgICAgICAg
IHZhciBhcmdQdHIgPSBIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+PjIpXTsKLSAgICAg
ICAgICAgICAgYXJnSW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywgbnVsbCwg
dHJ1ZSk7Ci0gICAgICAgICAgICAgIGZpZWxkcysrOwotICAgICAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG1heHg7IGkrKykgewotICAgICAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAg
ICAgICAgICAgICAgICBIRUFQOFsoKGFyZ1B0cisrKXwwKV09bmV4dDsKLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICBmb3JtYXRJbmRleCArPSBuZXh0QyAtIGZvcm1hdEluZGV4ICsgMTsK
LSAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgICAgIC8vIHJlbW92ZSB3aGl0ZXNwYWNlCi0gICAgICAgIHdoaWxlICgxKSB7
Ci0gICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgIGlmIChuZXh0ID09IDApIHJldHVy
biBmaWVsZHM7Ci0gICAgICAgICAgaWYgKCEobmV4dCBpbiBfX3NjYW5TdHJpbmcud2hpdGVTcGFj
ZSkpIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIHVuZ2V0KCk7Ci0gICAgICAgIGlmIChmb3Jt
YXRbZm9ybWF0SW5kZXhdID09PSAnJScpIHsKLSAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAg
ICAgICAgIHZhciBzdXBwcmVzc0Fzc2lnbm1lbnQgPSBmYWxzZTsKLSAgICAgICAgICBpZiAoZm9y
bWF0W2Zvcm1hdEluZGV4XSA9PSAnKicpIHsKLSAgICAgICAgICAgIHN1cHByZXNzQXNzaWdubWVu
dCA9IHRydWU7Ci0gICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgIH0KLSAgICAg
ICAgICB2YXIgbWF4U3BlY2lmaWVyU3RhcnQgPSBmb3JtYXRJbmRleDsKLSAgICAgICAgICB3aGls
ZSAoZm9ybWF0W2Zvcm1hdEluZGV4XS5jaGFyQ29kZUF0KDApID49IDQ4ICYmCi0gICAgICAgICAg
ICAgICAgIGZvcm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSA8PSA1NykgewotICAgICAg
ICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIG1heF87Ci0g
ICAgICAgICAgaWYgKGZvcm1hdEluZGV4ICE9IG1heFNwZWNpZmllclN0YXJ0KSB7Ci0gICAgICAg
ICAgICBtYXhfID0gcGFyc2VJbnQoZm9ybWF0LnNsaWNlKG1heFNwZWNpZmllclN0YXJ0LCBmb3Jt
YXRJbmRleCksIDEwKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGxvbmdfID0gZmFsc2U7
Ci0gICAgICAgICAgdmFyIGhhbGYgPSBmYWxzZTsKLSAgICAgICAgICB2YXIgbG9uZ0xvbmcgPSBm
YWxzZTsKLSAgICAgICAgICBpZiAoZm9ybWF0W2Zvcm1hdEluZGV4XSA9PSAnbCcpIHsKLSAgICAg
ICAgICAgIGxvbmdfID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAg
ICAgICBpZiAoZm9ybWF0W2Zvcm1hdEluZGV4XSA9PSAnbCcpIHsKLSAgICAgICAgICAgICAgbG9u
Z0xvbmcgPSB0cnVlOwotICAgICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgICAg
fQotICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0W2Zvcm1hdEluZGV4XSA9PSAnaCcpIHsKLSAg
ICAgICAgICAgIGhhbGYgPSB0cnVlOwotICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgdmFyIHR5cGUgPSBmb3JtYXRbZm9ybWF0SW5kZXhdOwotICAgICAg
ICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgdmFyIGN1cnIgPSAwOwotICAgICAgICAgIHZh
ciBidWZmZXIgPSBbXTsKLSAgICAgICAgICAvLyBSZWFkIGNoYXJhY3RlcnMgYWNjb3JkaW5nIHRv
IHRoZSBmb3JtYXQuIGZsb2F0cyBhcmUgdHJpY2tpZXIsIHRoZXkgbWF5IGJlIGluIGFuIHVuZmxv
YXQgc3RhdGUgaW4gdGhlIG1pZGRsZSwgdGhlbiBiZSBhIHZhbGlkIGZsb2F0IGxhdGVyCi0gICAg
ICAgICAgaWYgKHR5cGUgPT0gJ2YnIHx8IHR5cGUgPT0gJ2UnIHx8IHR5cGUgPT0gJ2cnIHx8Ci0g
ICAgICAgICAgICAgIHR5cGUgPT0gJ0YnIHx8IHR5cGUgPT0gJ0UnIHx8IHR5cGUgPT0gJ0cnKSB7
Ci0gICAgICAgICAgICB2YXIgbGFzdCA9IDA7Ci0gICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0g
ICAgICAgICAgICB3aGlsZSAobmV4dCA+IDApIHsKLSAgICAgICAgICAgICAgYnVmZmVyLnB1c2go
U3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSk7Ci0gICAgICAgICAgICAgIGlmIChfX2lzRmxvYXQo
YnVmZmVyLmpvaW4oJycpKSkgewotICAgICAgICAgICAgICAgIGxhc3QgPSBidWZmZXIubGVuZ3Ro
OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmZmVyLmxlbmd0aCAtIGxh
c3QgKyAxOyBpKyspIHsKLSAgICAgICAgICAgICAgdW5nZXQoKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGJ1ZmZlci5sZW5ndGggPSBsYXN0OwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgICB2YXIgZmlyc3QgPSB0cnVlOwotICAg
ICAgICAgICAgd2hpbGUgKChjdXJyIDwgbWF4XyB8fCBpc05hTihtYXhfKSkgJiYgbmV4dCA+IDAp
IHsKLSAgICAgICAgICAgICAgaWYgKCEobmV4dCBpbiBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZSkg
JiYgLy8gc3RvcCBvbiB3aGl0ZXNwYWNlCi0gICAgICAgICAgICAgICAgICAodHlwZSA9PSAncycg
fHwKLSAgICAgICAgICAgICAgICAgICAoKHR5cGUgPT09ICdkJyB8fCB0eXBlID09ICd1JyB8fCB0
eXBlID09ICdpJykgJiYgKChuZXh0ID49IDQ4ICYmIG5leHQgPD0gNTcpIHx8Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZmlyc3QgJiYgbmV4dCA9PSA0NSkpKSB8fAotICAgICAgICAgICAgICAgICAgICgodHlwZSA9
PT0gJ3gnIHx8IHR5cGUgPT09ICdYJykgJiYgKG5leHQgPj0gNDggJiYgbmV4dCA8PSA1NyB8fAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPj0gOTcgJiYgbmV4dCA8
PSAxMDIgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0ID49IDY1
ICYmIG5leHQgPD0gNzApKSkgJiYKLSAgICAgICAgICAgICAgICAgIChmb3JtYXRJbmRleCA+PSBm
b3JtYXQubGVuZ3RoIHx8IG5leHQgIT09IGZvcm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgw
KSkpIHsgLy8gU3RvcCB3aGVuIHdlIHJlYWQgc29tZXRoaW5nIHRoYXQgaXMgY29taW5nIHVwCi0g
ICAgICAgICAgICAgICAgYnVmZmVyLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSk7Ci0g
ICAgICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgICAgICAgIGN1cnIrKzsKLSAg
ICAgICAgICAgICAgICBmaXJzdCA9IGZhbHNlOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB1bmdldCgpOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoYnVmZmVyLmxlbmd0
aCA9PT0gMCkgcmV0dXJuIDA7ICAvLyBGYWlsdXJlLgotICAgICAgICAgIGlmIChzdXBwcmVzc0Fz
c2lnbm1lbnQpIGNvbnRpbnVlOwotICAgICAgICAgIHZhciB0ZXh0ID0gYnVmZmVyLmpvaW4oJycp
OwotICAgICAgICAgIHZhciBhcmdQdHIgPSBIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+
PjIpXTsKLSAgICAgICAgICBhcmdJbmRleCArPSBSdW50aW1lLmdldEFsaWduU2l6ZSgndm9pZCon
LCBudWxsLCB0cnVlKTsKLSAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgICAgIGNh
c2UgJ2QnOiBjYXNlICd1JzogY2FzZSAnaSc6Ci0gICAgICAgICAgICAgIGlmIChoYWxmKSB7Ci0g
ICAgICAgICAgICAgICAgSEVBUDE2WygoYXJnUHRyKT4+MSldPXBhcnNlSW50KHRleHQsIDEwKTsK
LSAgICAgICAgICAgICAgfSBlbHNlIGlmIChsb25nTG9uZykgewotICAgICAgICAgICAgICAgICh0
ZW1wSTY0ID0gW3BhcnNlSW50KHRleHQsIDEwKT4+PjAsKHRlbXBEb3VibGU9cGFyc2VJbnQodGV4
dCwgMTApLCgrKE1hdGguYWJzKHRlbXBEb3VibGUpKSkgPj0gKCsoMSkpID8gKHRlbXBEb3VibGUg
PiAoKygwKSkgPyAoKE1hdGgubWluKCgrKE1hdGguZmxvb3IoKHRlbXBEb3VibGUpLygrKDQyOTQ5
NjcyOTYpKSkpKSwgKCsoNDI5NDk2NzI5NSkpKSl8MCk+Pj4wIDogKH5+KCgrKE1hdGguY2VpbCgo
dGVtcERvdWJsZSAtICsoKCh+fih0ZW1wRG91YmxlKSkpPj4+MCkpLygrKDQyOTQ5NjcyOTYpKSkp
KSkpPj4+MCkgOiAwKV0sSEVBUDMyWygoYXJnUHRyKT4+MildPXRlbXBJNjRbMF0sSEVBUDMyWygo
KGFyZ1B0cikrKDQpKT4+MildPXRlbXBJNjRbMV0pOwotICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIEhFQVAzMlsoKGFyZ1B0cik+PjIpXT1wYXJzZUludCh0ZXh0LCAxMCk7
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNl
ICdYJzoKLSAgICAgICAgICAgIGNhc2UgJ3gnOgotICAgICAgICAgICAgICBIRUFQMzJbKChhcmdQ
dHIpPj4yKV09cGFyc2VJbnQodGV4dCwgMTYpCi0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgY2FzZSAnRic6Ci0gICAgICAgICAgICBjYXNlICdmJzoKLSAgICAgICAgICAgIGNhc2Ug
J0UnOgotICAgICAgICAgICAgY2FzZSAnZSc6Ci0gICAgICAgICAgICBjYXNlICdHJzoKLSAgICAg
ICAgICAgIGNhc2UgJ2cnOgotICAgICAgICAgICAgY2FzZSAnRSc6Ci0gICAgICAgICAgICAgIC8v
IGZhbGx0aHJvdWdoIGludGVuZGVkCi0gICAgICAgICAgICAgIGlmIChsb25nXykgewotICAgICAg
ICAgICAgICAgIEhFQVBGNjRbKChhcmdQdHIpPj4zKV09cGFyc2VGbG9hdCh0ZXh0KQotICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIEhFQVBGMzJbKChhcmdQdHIpPj4yKV09
cGFyc2VGbG9hdCh0ZXh0KQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSAncyc6Ci0gICAgICAgICAgICAgIHZhciBhcnJheSA9IGludEFycmF5
RnJvbVN0cmluZyh0ZXh0KTsKLSAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhcnJh
eS5sZW5ndGg7IGorKykgewotICAgICAgICAgICAgICAgIEhFQVA4WygoKGFyZ1B0cikrKGopKXww
KV09YXJyYXlbal0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgZmllbGRzKys7Ci0gICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0W2Zv
cm1hdEluZGV4XSBpbiBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZSkgewotICAgICAgICAgIG5leHQg
PSBnZXQoKTsKLSAgICAgICAgICB3aGlsZSAobmV4dCBpbiBfX3NjYW5TdHJpbmcud2hpdGVTcGFj
ZSkgewotICAgICAgICAgICAgaWYgKG5leHQgPD0gMCkgYnJlYWsgbWFpbkxvb3A7ICAvLyBFbmQg
b2YgaW5wdXQuCi0gICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIHVuZ2V0KG5leHQpOwotICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgLy8gTm90IGEgc3BlY2lmaWVyLgotICAgICAgICAgIG5leHQgPSBnZXQo
KTsKLSAgICAgICAgICBpZiAoZm9ybWF0W2Zvcm1hdEluZGV4XS5jaGFyQ29kZUF0KDApICE9PSBu
ZXh0KSB7Ci0gICAgICAgICAgICB1bmdldChuZXh0KTsKLSAgICAgICAgICAgIGJyZWFrIG1haW5M
b29wOwotICAgICAgICAgIH0KLSAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICB9Ci0g
ICAgICB9Ci0gICAgICByZXR1cm4gZmllbGRzOwotICAgIH1mdW5jdGlvbiBfc3NjYW5mKHMsIGZv
cm1hdCwgdmFyYXJncykgewotICAgICAgLy8gaW50IHNzY2FuZihjb25zdCBjaGFyICpyZXN0cmlj
dCBzLCBjb25zdCBjaGFyICpyZXN0cmljdCBmb3JtYXQsIC4uLiApOwotICAgICAgLy8gaHR0cDov
L3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvc2NhbmYu
aHRtbAotICAgICAgdmFyIGluZGV4ID0gMDsKLSAgICAgIHZhciBnZXQgPSBmdW5jdGlvbigpIHsg
cmV0dXJuIEhFQVA4WygoKHMpKyhpbmRleCsrKSl8MCldOyB9OwotICAgICAgdmFyIHVuZ2V0ID0g
ZnVuY3Rpb24oKSB7IGluZGV4LS07IH07Ci0gICAgICByZXR1cm4gX19zY2FuU3RyaW5nKGZvcm1h
dCwgZ2V0LCB1bmdldCwgdmFyYXJncyk7Ci0gICAgfQotICBmdW5jdGlvbiBfX1o3Y2F0b3BlblBL
Y2koKSB7IHRocm93ICdjYXRvcGVuIG5vdCBpbXBsZW1lbnRlZCcgfQotICBmdW5jdGlvbiBfX1o3
Y2F0Z2V0c1A4X25sX2NhdGRpaVBLYygpIHsgdGhyb3cgJ2NhdGdldHMgbm90IGltcGxlbWVudGVk
JyB9Ci0gIGZ1bmN0aW9uIF9fWjhjYXRjbG9zZVA4X25sX2NhdGQoKSB7IHRocm93ICdjYXRjbG9z
ZSBub3QgaW1wbGVtZW50ZWQnIH0KLSAgZnVuY3Rpb24gX25ld2xvY2FsZShtYXNrLCBsb2NhbGUs
IGJhc2UpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAgZnVuY3Rpb24gX2ZyZWVsb2NhbGUo
bG9jYWxlKSB7fQotICBmdW5jdGlvbiBfX19jdHlwZV9iX2xvYygpIHsKLSAgICAgIC8vIGh0dHA6
Ly9yZWZzcGVjcy5mcmVlc3RhbmRhcmRzLm9yZy9MU0JfMy4wLjAvTFNCLUNvcmUtZ2VuZXJpYy9M
U0ItQ29yZS1nZW5lcmljL2Jhc2VsaWItLS1jdHlwZS1iLWxvYy5odG1sCi0gICAgICB2YXIgbWUg
PSBfX19jdHlwZV9iX2xvYzsKLSAgICAgIGlmICghbWUucmV0KSB7Ci0gICAgICAgIHZhciB2YWx1
ZXMgPSBbCi0gICAgICAgICAgMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLAotICAgICAgICAgIDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAgICAwLDAsMCww
LDAsMCwwLDAsMCwwLDIsMiwyLDIsMiwyLDIsMiwyLDgxOTUsODE5NCw4MTk0LDgxOTQsODE5NCwy
LDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyNDU3Nyw0OTE1Niw0OTE1Niw0OTE1
NiwKLSAgICAgICAgICA0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0
OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw1NTMwNCw1NTMwNCw1NTMwNCw1NTMwNCw1NTMw
NCw1NTMwNCw1NTMwNCw1NTMwNCwKLSAgICAgICAgICA1NTMwNCw1NTMwNCw0OTE1Niw0OTE1Niw0
OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw1NDUzNiw1NDUzNiw1NDUzNiw1NDUzNiw1NDUz
Niw1NDUzNiw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCwKLSAgICAgICAgICA1MDQ0MCw1
MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0
MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1NiwK
LSAgICAgICAgICA0OTE1Niw1NDc5Miw1NDc5Miw1NDc5Miw1NDc5Miw1NDc5Miw1NDc5Miw1MDY5
Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1
MDY5Niw1MDY5Niw1MDY5NiwKLSAgICAgICAgICA1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5
Niw1MDY5Niw1MDY5Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1NiwyLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsCi0gICAgICAgICAgMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLAotICAgICAg
ICAgIDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMAotICAgICAgICBdOwotICAgICAgICB2
YXIgaTE2c2l6ZSA9IDI7Ci0gICAgICAgIHZhciBhcnIgPSBfbWFsbG9jKHZhbHVlcy5sZW5ndGgg
KiBpMTZzaXplKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBp
KyspIHsKLSAgICAgICAgICBIRUFQMTZbKCgoYXJyKSsoaSAqIGkxNnNpemUpKT4+MSldPXZhbHVl
c1tpXQotICAgICAgICB9Ci0gICAgICAgIG1lLnJldCA9IGFsbG9jYXRlKFthcnIgKyAxMjggKiBp
MTZzaXplXSwgJ2kxNionLCBBTExPQ19OT1JNQUwpOwotICAgICAgfQotICAgICAgcmV0dXJuIG1l
LnJldDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N0eXBlX3RvbG93ZXJfbG9jKCkgewotICAgICAg
Ly8gaHR0cDovL3JlZnNwZWNzLmZyZWVzdGFuZGFyZHMub3JnL0xTQl8zLjEuMS9MU0ItQ29yZS1n
ZW5lcmljL0xTQi1Db3JlLWdlbmVyaWMvbGlidXRpbC0tLWN0eXBlLXRvbG93ZXItbG9jLmh0bWwK
LSAgICAgIHZhciBtZSA9IF9fX2N0eXBlX3RvbG93ZXJfbG9jOwotICAgICAgaWYgKCFtZS5yZXQp
IHsKLSAgICAgICAgdmFyIHZhbHVlcyA9IFsKLSAgICAgICAgICAxMjgsMTI5LDEzMCwxMzEsMTMy
LDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYs
MTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywKLSAgICAgICAgICAx
NTgsMTU5LDE2MCwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3
MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2
LDE4NywKLSAgICAgICAgICAxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcs
MTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwy
MTIsMjEzLDIxNCwyMTUsMjE2LDIxNywKLSAgICAgICAgICAyMTgsMjE5LDIyMCwyMjEsMjIyLDIy
MywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3
LDIzOCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywKLSAgICAgICAgICAyNDgs
MjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsLTEsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwx
MywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwz
MiwKLSAgICAgICAgICAzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0
Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw5Nyw5
OCw5OSwxMDAsMTAxLDEwMiwxMDMsCi0gICAgICAgICAgMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDks
MTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDkxLDky
LDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywKLSAgICAgICAgICAxMDQsMTA1
LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTks
MTIwLDEyMSwxMjIsMTIzLDEyNCwxMjUsMTI2LDEyNywxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywK
LSAgICAgICAgICAxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0
NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5
LDE2MCwxNjEsMTYyLDE2MywKLSAgICAgICAgICAxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAs
MTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwx
ODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywKLSAgICAgICAgICAxOTQsMTk1LDE5
NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEw
LDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywKLSAg
ICAgICAgICAyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwy
MzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1
MCwyNTEsMjUyLDI1MywKLSAgICAgICAgICAyNTQsMjU1Ci0gICAgICAgIF07Ci0gICAgICAgIHZh
ciBpMzJzaXplID0gNDsKLSAgICAgICAgdmFyIGFyciA9IF9tYWxsb2ModmFsdWVzLmxlbmd0aCAq
IGkzMnNpemUpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkr
KykgewotICAgICAgICAgIEhFQVAzMlsoKChhcnIpKyhpICogaTMyc2l6ZSkpPj4yKV09dmFsdWVz
W2ldCi0gICAgICAgIH0KLSAgICAgICAgbWUucmV0ID0gYWxsb2NhdGUoW2FyciArIDEyOCAqIGkz
MnNpemVdLCAnaTMyKicsIEFMTE9DX05PUk1BTCk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbWUu
cmV0OwotICAgIH0KLSAgZnVuY3Rpb24gX19fY3R5cGVfdG91cHBlcl9sb2MoKSB7Ci0gICAgICAv
LyBodHRwOi8vcmVmc3BlY3MuZnJlZXN0YW5kYXJkcy5vcmcvTFNCXzMuMS4xL0xTQi1Db3JlLWdl
bmVyaWMvTFNCLUNvcmUtZ2VuZXJpYy9saWJ1dGlsLS0tY3R5cGUtdG91cHBlci1sb2MuaHRtbAot
ICAgICAgdmFyIG1lID0gX19fY3R5cGVfdG91cHBlcl9sb2M7Ci0gICAgICBpZiAoIW1lLnJldCkg
ewotICAgICAgICB2YXIgdmFsdWVzID0gWwotICAgICAgICAgIDEyOCwxMjksMTMwLDEzMSwxMzIs
MTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0Niwx
NDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LAotICAgICAgICAgIDE1
OCwxNTksMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcy
LDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYs
MTg3LAotICAgICAgICAgIDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5Nywx
OTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIx
MiwyMTMsMjE0LDIxNSwyMTYsMjE3LAotICAgICAgICAgIDIxOCwyMTksMjIwLDIyMSwyMjIsMjIz
LDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcs
MjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LAotICAgICAgICAgIDI0OCwy
NDksMjUwLDI1MSwyNTIsMjUzLDI1NCwtMSwwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEz
LDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMy
LAotICAgICAgICAgIDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3
LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDY1LDY2
LDY3LDY4LDY5LDcwLDcxLDcyLAotICAgICAgICAgIDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgx
LDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDY1LDY2LDY3LDY4
LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLAotICAgICAgICAgIDgxLDgyLDgz
LDg0LDg1LDg2LDg3LDg4LDg5LDkwLDEyMywxMjQsMTI1LDEyNiwxMjcsMTI4LDEyOSwxMzAsMTMx
LDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwKLSAg
ICAgICAgICAxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1Niwx
NTcsMTU4LDE1OSwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3
MSwxNzIsMTczLDE3NCwKLSAgICAgICAgICAxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgy
LDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYs
MTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwKLSAgICAgICAgICAyMDUsMjA2LDIwNywy
MDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIy
MiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwKLSAgICAg
ICAgICAyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcs
MjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NQotICAgICAgICBdOwotICAgICAgICB2YXIg
aTMyc2l6ZSA9IDQ7Ci0gICAgICAgIHZhciBhcnIgPSBfbWFsbG9jKHZhbHVlcy5sZW5ndGggKiBp
MzJzaXplKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKysp
IHsKLSAgICAgICAgICBIRUFQMzJbKCgoYXJyKSsoaSAqIGkzMnNpemUpKT4+MildPXZhbHVlc1tp
XQotICAgICAgICB9Ci0gICAgICAgIG1lLnJldCA9IGFsbG9jYXRlKFthcnIgKyAxMjggKiBpMzJz
aXplXSwgJ2kzMionLCBBTExPQ19OT1JNQUwpOwotICAgICAgfQotICAgICAgcmV0dXJuIG1lLnJl
dDsKLSAgICB9Ci0gIHZhciBfX190bV9zdHJ1Y3RfbGF5b3V0PXtfX3NpemVfXzo0NCx0bV9zZWM6
MCx0bV9taW46NCx0bV9ob3VyOjgsdG1fbWRheToxMix0bV9tb246MTYsdG1feWVhcjoyMCx0bV93
ZGF5OjI0LHRtX3lkYXk6MjgsdG1faXNkc3Q6MzIsdG1fZ210b2ZmOjM2LHRtX3pvbmU6NDB9Owot
ICBmdW5jdGlvbiBfX2lzTGVhcFllYXIoeWVhcikgewotICAgICAgICByZXR1cm4geWVhciU0ID09
PSAwICYmICh5ZWFyJTEwMCAhPT0gMCB8fCB5ZWFyJTQwMCA9PT0gMCk7Ci0gICAgfQotICBmdW5j
dGlvbiBfX2FycmF5U3VtKGFycmF5LCBpbmRleCkgewotICAgICAgdmFyIHN1bSA9IDA7Ci0gICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8PSBpbmRleDsgc3VtICs9IGFycmF5W2krK10pOwotICAgICAg
cmV0dXJuIHN1bTsKLSAgICB9Ci0gIHZhciBfX01PTlRIX0RBWVNfTEVBUD1bMzEsMjksMzEsMzAs
MzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdOwotICB2YXIgX19NT05USF9EQVlTX1JFR1VMQVI9WzMx
LDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtmdW5jdGlvbiBfX2FkZERheXMoZGF0
ZSwgZGF5cykgewotICAgICAgdmFyIG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7
Ci0gICAgICB3aGlsZShkYXlzID4gMCkgewotICAgICAgICB2YXIgbGVhcCA9IF9faXNMZWFwWWVh
cihuZXdEYXRlLmdldEZ1bGxZZWFyKCkpOwotICAgICAgICB2YXIgY3VycmVudE1vbnRoID0gbmV3
RGF0ZS5nZXRNb250aCgpOwotICAgICAgICB2YXIgZGF5c0luQ3VycmVudE1vbnRoID0gKGxlYXAg
PyBfX01PTlRIX0RBWVNfTEVBUCA6IF9fTU9OVEhfREFZU19SRUdVTEFSKVtjdXJyZW50TW9udGhd
OwotICAgICAgICBpZiAoZGF5cyA+IGRheXNJbkN1cnJlbnRNb250aC1uZXdEYXRlLmdldERhdGUo
KSkgewotICAgICAgICAgIC8vIHdlIHNwaWxsIG92ZXIgdG8gbmV4dCBtb250aAotICAgICAgICAg
IGRheXMgLT0gKGRheXNJbkN1cnJlbnRNb250aC1uZXdEYXRlLmdldERhdGUoKSsxKTsKLSAgICAg
ICAgICBuZXdEYXRlLnNldERhdGUoMSk7Ci0gICAgICAgICAgaWYgKGN1cnJlbnRNb250aCA8IDEx
KSB7Ci0gICAgICAgICAgICBuZXdEYXRlLnNldE1vbnRoKGN1cnJlbnRNb250aCsxKQotICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBuZXdEYXRlLnNldE1vbnRoKDApOwotICAgICAgICAg
ICAgbmV3RGF0ZS5zZXRGdWxsWWVhcihuZXdEYXRlLmdldEZ1bGxZZWFyKCkrMSk7Ci0gICAgICAg
ICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8vIHdlIHN0YXkgaW4gY3VycmVudCBt
b250aCAKLSAgICAgICAgICBuZXdEYXRlLnNldERhdGUobmV3RGF0ZS5nZXREYXRlKCkrZGF5cyk7
Ci0gICAgICAgICAgcmV0dXJuIG5ld0RhdGU7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJl
dHVybiBuZXdEYXRlOwotICAgIH1mdW5jdGlvbiBfc3RyZnRpbWUocywgbWF4c2l6ZSwgZm9ybWF0
LCB0bSkgewotICAgICAgLy8gc2l6ZV90IHN0cmZ0aW1lKGNoYXIgKnJlc3RyaWN0IHMsIHNpemVf
dCBtYXhzaXplLCBjb25zdCBjaGFyICpyZXN0cmljdCBmb3JtYXQsIGNvbnN0IHN0cnVjdCB0bSAq
cmVzdHJpY3QgdGltZXB0cik7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29u
bGluZXB1YnMvMDA5Njk1Mzk5L2Z1bmN0aW9ucy9zdHJmdGltZS5odG1sCi0gICAgICB2YXIgZGF0
ZSA9IHsKLSAgICAgICAgdG1fc2VjOiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0
LnRtX3NlYykpPj4yKV0sCi0gICAgICAgIHRtX21pbjogSEVBUDMyWygoKHRtKSsoX19fdG1fc3Ry
dWN0X2xheW91dC50bV9taW4pKT4+MildLAotICAgICAgICB0bV9ob3VyOiBIRUFQMzJbKCgodG0p
KyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX2hvdXIpKT4+MildLAotICAgICAgICB0bV9tZGF5OiBI
RUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX21kYXkpKT4+MildLAotICAgICAg
ICB0bV9tb246IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1fbW9uKSk+PjIp
XSwKLSAgICAgICAgdG1feWVhcjogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50
bV95ZWFyKSk+PjIpXSwKLSAgICAgICAgdG1fd2RheTogSEVBUDMyWygoKHRtKSsoX19fdG1fc3Ry
dWN0X2xheW91dC50bV93ZGF5KSk+PjIpXSwKLSAgICAgICAgdG1feWRheTogSEVBUDMyWygoKHRt
KSsoX19fdG1fc3RydWN0X2xheW91dC50bV95ZGF5KSk+PjIpXSwKLSAgICAgICAgdG1faXNkc3Q6
IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1faXNkc3QpKT4+MildCi0gICAg
ICB9OwotICAgICAgdmFyIHBhdHRlcm4gPSBQb2ludGVyX3N0cmluZ2lmeShmb3JtYXQpOwotICAg
ICAgLy8gZXhwYW5kIGZvcm1hdAotICAgICAgdmFyIEVYUEFOU0lPTl9SVUxFU18xID0gewotICAg
ICAgICAnJWMnOiAnJWEgJWIgJWQgJUg6JU06JVMgJVknLCAgICAgLy8gUmVwbGFjZWQgYnkgdGhl
IGxvY2FsZSdzIGFwcHJvcHJpYXRlIGRhdGUgYW5kIHRpbWUgcmVwcmVzZW50YXRpb24gLSBlLmcu
LCBNb24gQXVnICAzIDE0OjAyOjAxIDIwMTMKLSAgICAgICAgJyVEJzogJyVtLyVkLyV5JywgICAg
ICAgICAgICAgICAgIC8vIEVxdWl2YWxlbnQgdG8gJW0gLyAlZCAvICV5Ci0gICAgICAgICclRic6
ICclWS0lbS0lZCcsICAgICAgICAgICAgICAgICAvLyBFcXVpdmFsZW50IHRvICVZIC0gJW0gLSAl
ZAotICAgICAgICAnJWgnOiAnJWInLCAgICAgICAgICAgICAgICAgICAgICAgLy8gRXF1aXZhbGVu
dCB0byAlYgotICAgICAgICAnJXInOiAnJUk6JU06JVMgJXAnLCAgICAgICAgICAgICAgLy8gUmVw
bGFjZWQgYnkgdGhlIHRpbWUgaW4gYS5tLiBhbmQgcC5tLiBub3RhdGlvbgotICAgICAgICAnJVIn
OiAnJUg6JU0nLCAgICAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHRpbWUgaW4g
MjQtaG91ciBub3RhdGlvbgotICAgICAgICAnJVQnOiAnJUg6JU06JVMnLCAgICAgICAgICAgICAg
ICAgLy8gUmVwbGFjZWQgYnkgdGhlIHRpbWUKLSAgICAgICAgJyV4JzogJyVtLyVkLyV5JywgICAg
ICAgICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBsb2NhbGUncyBhcHByb3ByaWF0ZSBkYXRl
IHJlcHJlc2VudGF0aW9uCi0gICAgICAgICclWCc6ICclSDolTTolUycsICAgICAgICAgICAgICAg
ICAvLyBSZXBsYWNlZCBieSB0aGUgbG9jYWxlJ3MgYXBwcm9wcmlhdGUgZGF0ZSByZXByZXNlbnRh
dGlvbgotICAgICAgfTsKLSAgICAgIGZvciAodmFyIHJ1bGUgaW4gRVhQQU5TSU9OX1JVTEVTXzEp
IHsKLSAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZShuZXcgUmVnRXhwKHJ1bGUsICdn
JyksIEVYUEFOU0lPTl9SVUxFU18xW3J1bGVdKTsKLSAgICAgIH0KLSAgICAgIHZhciBXRUVLREFZ
UyA9IFsnU3VuZGF5JywgJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2Rh
eScsICdGcmlkYXknLCAnU2F0dXJkYXknXTsKLSAgICAgIHZhciBNT05USFMgPSBbJ0phbnVhcnkn
LCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdB
dWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXTsK
LSAgICAgIHZhciBsZWFkaW5nU29tZXRoaW5nID0gZnVuY3Rpb24odmFsdWUsIGRpZ2l0cywgY2hh
cmFjdGVyKSB7Ci0gICAgICAgIHZhciBzdHIgPSB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID8g
dmFsdWUudG9TdHJpbmcoKSA6ICh2YWx1ZSB8fCAnJyk7Ci0gICAgICAgIHdoaWxlIChzdHIubGVu
Z3RoIDwgZGlnaXRzKSB7Ci0gICAgICAgICAgc3RyID0gY2hhcmFjdGVyWzBdK3N0cjsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gc3RyOwotICAgICAgfTsKLSAgICAgIHZhciBsZWFkaW5nTnVs
bHMgPSBmdW5jdGlvbih2YWx1ZSwgZGlnaXRzKSB7Ci0gICAgICAgIHJldHVybiBsZWFkaW5nU29t
ZXRoaW5nKHZhbHVlLCBkaWdpdHMsICcwJyk7Ci0gICAgICB9OwotICAgICAgdmFyIGNvbXBhcmVC
eURheSA9IGZ1bmN0aW9uKGRhdGUxLCBkYXRlMikgewotICAgICAgICB2YXIgc2duID0gZnVuY3Rp
b24odmFsdWUpIHsKLSAgICAgICAgICByZXR1cm4gdmFsdWUgPCAwID8gLTEgOiAodmFsdWUgPiAw
ID8gMSA6IDApOwotICAgICAgICB9OwotICAgICAgICB2YXIgY29tcGFyZTsKLSAgICAgICAgaWYg
KChjb21wYXJlID0gc2duKGRhdGUxLmdldEZ1bGxZZWFyKCktZGF0ZTIuZ2V0RnVsbFllYXIoKSkp
ID09PSAwKSB7Ci0gICAgICAgICAgaWYgKChjb21wYXJlID0gc2duKGRhdGUxLmdldE1vbnRoKCkt
ZGF0ZTIuZ2V0TW9udGgoKSkpID09PSAwKSB7Ci0gICAgICAgICAgICBjb21wYXJlID0gc2duKGRh
dGUxLmdldERhdGUoKS1kYXRlMi5nZXREYXRlKCkpOwotICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gY29tcGFyZTsKLSAgICAgIH07Ci0gICAgICB2YXIgZ2V0Rmlyc3RXZWVr
U3RhcnREYXRlID0gZnVuY3Rpb24oamFuRm91cnRoKSB7Ci0gICAgICAgICAgc3dpdGNoIChqYW5G
b3VydGguZ2V0RGF5KCkpIHsKLSAgICAgICAgICAgIGNhc2UgMDogLy8gU3VuZGF5Ci0gICAgICAg
ICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKS0xLCAxMSwgMjkp
OwotICAgICAgICAgICAgY2FzZSAxOiAvLyBNb25kYXkKLSAgICAgICAgICAgICAgcmV0dXJuIGph
bkZvdXJ0aDsKLSAgICAgICAgICAgIGNhc2UgMjogLy8gVHVlc2RheQotICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCksIDAsIDMpOwotICAgICAgICAg
ICAgY2FzZSAzOiAvLyBXZWRuZXNkYXkKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGph
bkZvdXJ0aC5nZXRGdWxsWWVhcigpLCAwLCAyKTsKLSAgICAgICAgICAgIGNhc2UgNDogLy8gVGh1
cnNkYXkKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVh
cigpLCAwLCAxKTsKLSAgICAgICAgICAgIGNhc2UgNTogLy8gRnJpZGF5Ci0gICAgICAgICAgICAg
IHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKS0xLCAxMSwgMzEpOwotICAg
ICAgICAgICAgY2FzZSA2OiAvLyBTYXR1cmRheQotICAgICAgICAgICAgICByZXR1cm4gbmV3IERh
dGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwgMTEsIDMwKTsKLSAgICAgICAgICB9Ci0gICAg
ICB9OwotICAgICAgdmFyIGdldFdlZWtCYXNlZFllYXIgPSBmdW5jdGlvbihkYXRlKSB7Ci0gICAg
ICAgICAgdmFyIHRoaXNEYXRlID0gX19hZGREYXlzKG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAw
LCAwLCAxKSwgZGF0ZS50bV95ZGF5KTsKLSAgICAgICAgICB2YXIgamFuRm91cnRoVGhpc1llYXIg
PSBuZXcgRGF0ZSh0aGlzRGF0ZS5nZXRGdWxsWWVhcigpLCAwLCA0KTsKLSAgICAgICAgICB2YXIg
amFuRm91cnRoTmV4dFllYXIgPSBuZXcgRGF0ZSh0aGlzRGF0ZS5nZXRGdWxsWWVhcigpKzEsIDAs
IDQpOwotICAgICAgICAgIHZhciBmaXJzdFdlZWtTdGFydFRoaXNZZWFyID0gZ2V0Rmlyc3RXZWVr
U3RhcnREYXRlKGphbkZvdXJ0aFRoaXNZZWFyKTsKLSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3Rh
cnROZXh0WWVhciA9IGdldEZpcnN0V2Vla1N0YXJ0RGF0ZShqYW5Gb3VydGhOZXh0WWVhcik7Ci0g
ICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdFdlZWtTdGFydFRoaXNZZWFyLCB0aGlzRGF0
ZSkgPD0gMCkgewotICAgICAgICAgICAgLy8gdGhpcyBkYXRlIGlzIGFmdGVyIHRoZSBzdGFydCBv
ZiB0aGUgZmlyc3Qgd2VlayBvZiB0aGlzIHllYXIKLSAgICAgICAgICAgIGlmIChjb21wYXJlQnlE
YXkoZmlyc3RXZWVrU3RhcnROZXh0WWVhciwgdGhpc0RhdGUpIDw9IDApIHsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHRoaXNEYXRlLmdldEZ1bGxZZWFyKCkrMTsKLSAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgIHJldHVybiB0aGlzRGF0ZS5nZXRGdWxsWWVhcigpOwotICAgICAgICAg
ICAgfQotICAgICAgICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgcmV0dXJuIHRoaXNEYXRlLmdl
dEZ1bGxZZWFyKCktMTsKLSAgICAgICAgICB9Ci0gICAgICB9OwotICAgICAgdmFyIEVYUEFOU0lP
Tl9SVUxFU18yID0gewotICAgICAgICAnJWEnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAg
cmV0dXJuIFdFRUtEQVlTW2RhdGUudG1fd2RheV0uc3Vic3RyaW5nKDAsMyk7Ci0gICAgICAgIH0s
Ci0gICAgICAgICclQSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gV0VFS0RB
WVNbZGF0ZS50bV93ZGF5XTsKLSAgICAgICAgfSwKLSAgICAgICAgJyViJzogZnVuY3Rpb24oZGF0
ZSkgewotICAgICAgICAgIHJldHVybiBNT05USFNbZGF0ZS50bV9tb25dLnN1YnN0cmluZygwLDMp
OwotICAgICAgICB9LAotICAgICAgICAnJUInOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAg
cmV0dXJuIE1PTlRIU1tkYXRlLnRtX21vbl07Ci0gICAgICAgIH0sCi0gICAgICAgICclQyc6IGZ1
bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICB2YXIgeWVhciA9IGRhdGUudG1feWVhcisxOTAwOwot
ICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5mbG9vcih5ZWFyLzEwMCksMik7Ci0g
ICAgICAgIH0sCi0gICAgICAgICclZCc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1
cm4gbGVhZGluZ051bGxzKGRhdGUudG1fbWRheSwgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICcl
ZSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gbGVhZGluZ1NvbWV0aGluZyhk
YXRlLnRtX21kYXksIDIsICcgJyk7Ci0gICAgICAgIH0sCi0gICAgICAgICclZyc6IGZ1bmN0aW9u
KGRhdGUpIHsKLSAgICAgICAgICAvLyAlZywgJUcsIGFuZCAlViBnaXZlIHZhbHVlcyBhY2NvcmRp
bmcgdG8gdGhlIElTTyA4NjAxOjIwMDAgc3RhbmRhcmQgd2Vlay1iYXNlZCB5ZWFyLiAKLSAgICAg
ICAgICAvLyBJbiB0aGlzIHN5c3RlbSwgd2Vla3MgYmVnaW4gb24gYSBNb25kYXkgYW5kIHdlZWsg
MSBvZiB0aGUgeWVhciBpcyB0aGUgd2VlayB0aGF0IGluY2x1ZGVzIAotICAgICAgICAgIC8vIEph
bnVhcnkgNHRoLCB3aGljaCBpcyBhbHNvIHRoZSB3ZWVrIHRoYXQgaW5jbHVkZXMgdGhlIGZpcnN0
IFRodXJzZGF5IG9mIHRoZSB5ZWFyLCBhbmQgCi0gICAgICAgICAgLy8gaXMgYWxzbyB0aGUgZmly
c3Qgd2VlayB0aGF0IGNvbnRhaW5zIGF0IGxlYXN0IGZvdXIgZGF5cyBpbiB0aGUgeWVhci4gCi0g
ICAgICAgICAgLy8gSWYgdGhlIGZpcnN0IE1vbmRheSBvZiBKYW51YXJ5IGlzIHRoZSAybmQsIDNy
ZCwgb3IgNHRoLCB0aGUgcHJlY2VkaW5nIGRheXMgYXJlIHBhcnQgb2YgCi0gICAgICAgICAgLy8g
dGhlIGxhc3Qgd2VlayBvZiB0aGUgcHJlY2VkaW5nIHllYXI7IHRodXMsIGZvciBTYXR1cmRheSAy
bmQgSmFudWFyeSAxOTk5LCAKLSAgICAgICAgICAvLyAlRyBpcyByZXBsYWNlZCBieSAxOTk4IGFu
ZCAlViBpcyByZXBsYWNlZCBieSA1My4gSWYgRGVjZW1iZXIgMjl0aCwgMzB0aCwgCi0gICAgICAg
ICAgLy8gb3IgMzFzdCBpcyBhIE1vbmRheSwgaXQgYW5kIGFueSBmb2xsb3dpbmcgZGF5cyBhcmUg
cGFydCBvZiB3ZWVrIDEgb2YgdGhlIGZvbGxvd2luZyB5ZWFyLiAKLSAgICAgICAgICAvLyBUaHVz
LCBmb3IgVHVlc2RheSAzMHRoIERlY2VtYmVyIDE5OTcsICVHIGlzIHJlcGxhY2VkIGJ5IDE5OTgg
YW5kICVWIGlzIHJlcGxhY2VkIGJ5IDAxLgotICAgICAgICAgIHJldHVybiBnZXRXZWVrQmFzZWRZ
ZWFyKGRhdGUpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpOwotICAgICAgICB9LAotICAgICAgICAn
JUcnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGdldFdlZWtCYXNlZFllYXIo
ZGF0ZSk7Ci0gICAgICAgIH0sCi0gICAgICAgICclSCc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAg
ICAgICByZXR1cm4gbGVhZGluZ051bGxzKGRhdGUudG1faG91ciwgMik7Ci0gICAgICAgIH0sCi0g
ICAgICAgICclSSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gbGVhZGluZ051
bGxzKGRhdGUudG1faG91ciA8IDEzID8gZGF0ZS50bV9ob3VyIDogZGF0ZS50bV9ob3VyLTEyLCAy
KTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVqJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAg
IC8vIERheSBvZiB0aGUgeWVhciAoMDAxLTM2NikKLSAgICAgICAgICByZXR1cm4gbGVhZGluZ051
bGxzKGRhdGUudG1fbWRheStfX2FycmF5U3VtKF9faXNMZWFwWWVhcihkYXRlLnRtX3llYXIrMTkw
MCkgPyBfX01PTlRIX0RBWVNfTEVBUCA6IF9fTU9OVEhfREFZU19SRUdVTEFSLCBkYXRlLnRtX21v
bi0xKSwgMyk7Ci0gICAgICAgIH0sCi0gICAgICAgICclbSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAg
ICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKGRhdGUudG1fbW9uKzEsIDIpOwotICAgICAgICB9
LAotICAgICAgICAnJU0nOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRp
bmdOdWxscyhkYXRlLnRtX21pbiwgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICclbic6IGZ1bmN0
aW9uKCkgewotICAgICAgICAgIHJldHVybiAnXG4nOwotICAgICAgICB9LAotICAgICAgICAnJXAn
OiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgaWYgKGRhdGUudG1faG91ciA+IDAgJiYgZGF0
ZS50bV9ob3VyIDwgMTMpIHsKLSAgICAgICAgICAgIHJldHVybiAnQU0nOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gJ1BNJzsKLSAgICAgICAgICB9Ci0gICAgICAgIH0s
Ci0gICAgICAgICclUyc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gbGVhZGlu
Z051bGxzKGRhdGUudG1fc2VjLCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyV0JzogZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgcmV0dXJuICdcdCc7Ci0gICAgICAgIH0sCi0gICAgICAgICcldSc6
IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICB2YXIgZGF5ID0gbmV3IERhdGUoZGF0ZS50bV95
ZWFyKzE5MDAsIGRhdGUudG1fbW9uKzEsIGRhdGUudG1fbWRheSwgMCwgMCwgMCwgMCk7Ci0gICAg
ICAgICAgcmV0dXJuIGRheS5nZXREYXkoKSB8fCA3OwotICAgICAgICB9LAotICAgICAgICAnJVUn
OiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHdlZWsgbnVt
YmVyIG9mIHRoZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAwLDUzXS4gCi0gICAgICAgICAg
Ly8gVGhlIGZpcnN0IFN1bmRheSBvZiBKYW51YXJ5IGlzIHRoZSBmaXJzdCBkYXkgb2Ygd2VlayAx
OyAKLSAgICAgICAgICAvLyBkYXlzIGluIHRoZSBuZXcgeWVhciBiZWZvcmUgdGhpcyBhcmUgaW4g
d2VlayAwLiBbIHRtX3llYXIsIHRtX3dkYXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZp
cnN0ID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIDAsIDEpOwotICAgICAgICAgIHZhciBm
aXJzdFN1bmRheSA9IGphbkZpcnN0LmdldERheSgpID09PSAwID8gamFuRmlyc3QgOiBfX2FkZERh
eXMoamFuRmlyc3QsIDctamFuRmlyc3QuZ2V0RGF5KCkpOwotICAgICAgICAgIHZhciBlbmREYXRl
ID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIGRhdGUudG1fbW9uLCBkYXRlLnRtX21kYXkp
OwotICAgICAgICAgIC8vIGlzIHRhcmdldCBkYXRlIGFmdGVyIHRoZSBmaXJzdCBTdW5kYXk/Ci0g
ICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdFN1bmRheSwgZW5kRGF0ZSkgPCAwKSB7Ci0g
ICAgICAgICAgICAvLyBjYWxjdWxhdGUgZGlmZmVyZW5jZSBpbiBkYXlzIGJldHdlZW4gZmlyc3Qg
U3VuZGF5IGFuZCBlbmREYXRlCi0gICAgICAgICAgICB2YXIgZmVicnVhcnlGaXJzdFVudGlsRW5k
TW9udGggPSBfX2FycmF5U3VtKF9faXNMZWFwWWVhcihlbmREYXRlLmdldEZ1bGxZZWFyKCkpID8g
X19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZW5kRGF0ZS5nZXRNb250
aCgpLTEpLTMxOwotICAgICAgICAgICAgdmFyIGZpcnN0U3VuZGF5VW50aWxFbmRKYW51YXJ5ID0g
MzEtZmlyc3RTdW5kYXkuZ2V0RGF0ZSgpOwotICAgICAgICAgICAgdmFyIGRheXMgPSBmaXJzdFN1
bmRheVVudGlsRW5kSmFudWFyeStmZWJydWFyeUZpcnN0VW50aWxFbmRNb250aCtlbmREYXRlLmdl
dERhdGUoKTsKLSAgICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5jZWlsKGRheXMv
NyksIDIpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gY29tcGFyZUJ5RGF5KGZpcnN0
U3VuZGF5LCBqYW5GaXJzdCkgPT09IDAgPyAnMDEnOiAnMDAnOwotICAgICAgICB9LAotICAgICAg
ICAnJVYnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHdl
ZWsgbnVtYmVyIG9mIHRoZSB5ZWFyIChNb25kYXkgYXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vl
aykgCi0gICAgICAgICAgLy8gYXMgYSBkZWNpbWFsIG51bWJlciBbMDEsNTNdLiBJZiB0aGUgd2Vl
ayBjb250YWluaW5nIDEgSmFudWFyeSBoYXMgZm91ciAKLSAgICAgICAgICAvLyBvciBtb3JlIGRh
eXMgaW4gdGhlIG5ldyB5ZWFyLCB0aGVuIGl0IGlzIGNvbnNpZGVyZWQgd2VlayAxLiAKLSAgICAg
ICAgICAvLyBPdGhlcndpc2UsIGl0IGlzIHRoZSBsYXN0IHdlZWsgb2YgdGhlIHByZXZpb3VzIHll
YXIsIGFuZCB0aGUgbmV4dCB3ZWVrIGlzIHdlZWsgMS4gCi0gICAgICAgICAgLy8gQm90aCBKYW51
YXJ5IDR0aCBhbmQgdGhlIGZpcnN0IFRodXJzZGF5IG9mIEphbnVhcnkgYXJlIGFsd2F5cyBpbiB3
ZWVrIDEuIFsgdG1feWVhciwgdG1fd2RheSwgdG1feWRheV0KLSAgICAgICAgICB2YXIgamFuRm91
cnRoVGhpc1llYXIgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgMCwgNCk7Ci0gICAgICAg
ICAgdmFyIGphbkZvdXJ0aE5leHRZZWFyID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDEsIDAs
IDQpOwotICAgICAgICAgIHZhciBmaXJzdFdlZWtTdGFydFRoaXNZZWFyID0gZ2V0Rmlyc3RXZWVr
U3RhcnREYXRlKGphbkZvdXJ0aFRoaXNZZWFyKTsKLSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3Rh
cnROZXh0WWVhciA9IGdldEZpcnN0V2Vla1N0YXJ0RGF0ZShqYW5Gb3VydGhOZXh0WWVhcik7Ci0g
ICAgICAgICAgdmFyIGVuZERhdGUgPSBfX2FkZERheXMobmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5
MDAsIDAsIDEpLCBkYXRlLnRtX3lkYXkpOwotICAgICAgICAgIGlmIChjb21wYXJlQnlEYXkoZW5k
RGF0ZSwgZmlyc3RXZWVrU3RhcnRUaGlzWWVhcikgPCAwKSB7Ci0gICAgICAgICAgICAvLyBpZiBn
aXZlbiBkYXRlIGlzIGJlZm9yZSB0aGlzIHllYXJzIGZpcnN0IHdlZWssIHRoZW4gaXQgYmVsb25n
cyB0byB0aGUgNTNyZCB3ZWVrIG9mIGxhc3QgeWVhcgotICAgICAgICAgICAgcmV0dXJuICc1Myc7
Ci0gICAgICAgICAgfSAKLSAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGZpcnN0V2Vla1N0YXJ0
TmV4dFllYXIsIGVuZERhdGUpIDw9IDApIHsKLSAgICAgICAgICAgIC8vIGlmIGdpdmVuIGRhdGUg
aXMgYWZ0ZXIgbmV4dCB5ZWFycyBmaXJzdCB3ZWVrLCB0aGVuIGl0IGJlbG9uZ3MgdG8gdGhlIDAx
dGggd2VlayBvZiBuZXh0IHllYXIKLSAgICAgICAgICAgIHJldHVybiAnMDEnOwotICAgICAgICAg
IH0KLSAgICAgICAgICAvLyBnaXZlbiBkYXRlIGlzIGluIGJldHdlZW4gQ1cgMDEuLjUzIG9mIHRo
aXMgY2FsZW5kYXIgeWVhcgotICAgICAgICAgIHZhciBkYXlzRGlmZmVyZW5jZTsKLSAgICAgICAg
ICBpZiAoZmlyc3RXZWVrU3RhcnRUaGlzWWVhci5nZXRGdWxsWWVhcigpIDwgZGF0ZS50bV95ZWFy
KzE5MDApIHsKLSAgICAgICAgICAgIC8vIGZpcnN0IENXIG9mIHRoaXMgeWVhciBzdGFydHMgbGFz
dCB5ZWFyCi0gICAgICAgICAgICBkYXlzRGlmZmVyZW5jZSA9IGRhdGUudG1feWRheSszMi1maXJz
dFdlZWtTdGFydFRoaXNZZWFyLmdldERhdGUoKQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAvLyBmaXJzdCBDVyBvZiB0aGlzIHllYXIgc3RhcnRzIHRoaXMgeWVhcgotICAgICAgICAg
ICAgZGF5c0RpZmZlcmVuY2UgPSBkYXRlLnRtX3lkYXkrMS1maXJzdFdlZWtTdGFydFRoaXNZZWFy
LmdldERhdGUoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhN
YXRoLmNlaWwoZGF5c0RpZmZlcmVuY2UvNyksIDIpOwotICAgICAgICB9LAotICAgICAgICAnJXcn
OiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgdmFyIGRheSA9IG5ldyBEYXRlKGRhdGUudG1f
eWVhcisxOTAwLCBkYXRlLnRtX21vbisxLCBkYXRlLnRtX21kYXksIDAsIDAsIDAsIDApOwotICAg
ICAgICAgIHJldHVybiBkYXkuZ2V0RGF5KCk7Ci0gICAgICAgIH0sCi0gICAgICAgICclVyc6IGZ1
bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgd2VlayBudW1iZXIg
b2YgdGhlIHllYXIgYXMgYSBkZWNpbWFsIG51bWJlciBbMDAsNTNdLiAKLSAgICAgICAgICAvLyBU
aGUgZmlyc3QgTW9uZGF5IG9mIEphbnVhcnkgaXMgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIDE7IAot
ICAgICAgICAgIC8vIGRheXMgaW4gdGhlIG5ldyB5ZWFyIGJlZm9yZSB0aGlzIGFyZSBpbiB3ZWVr
IDAuIFsgdG1feWVhciwgdG1fd2RheSwgdG1feWRheV0KLSAgICAgICAgICB2YXIgamFuRmlyc3Qg
PSBuZXcgRGF0ZShkYXRlLnRtX3llYXIsIDAsIDEpOwotICAgICAgICAgIHZhciBmaXJzdE1vbmRh
eSA9IGphbkZpcnN0LmdldERheSgpID09PSAxID8gamFuRmlyc3QgOiBfX2FkZERheXMoamFuRmly
c3QsIGphbkZpcnN0LmdldERheSgpID09PSAwID8gMSA6IDctamFuRmlyc3QuZ2V0RGF5KCkrMSk7
Ci0gICAgICAgICAgdmFyIGVuZERhdGUgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgZGF0
ZS50bV9tb24sIGRhdGUudG1fbWRheSk7Ci0gICAgICAgICAgLy8gaXMgdGFyZ2V0IGRhdGUgYWZ0
ZXIgdGhlIGZpcnN0IE1vbmRheT8KLSAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGZpcnN0TW9u
ZGF5LCBlbmREYXRlKSA8IDApIHsKLSAgICAgICAgICAgIHZhciBmZWJydWFyeUZpcnN0VW50aWxF
bmRNb250aCA9IF9fYXJyYXlTdW0oX19pc0xlYXBZZWFyKGVuZERhdGUuZ2V0RnVsbFllYXIoKSkg
PyBfX01PTlRIX0RBWVNfTEVBUCA6IF9fTU9OVEhfREFZU19SRUdVTEFSLCBlbmREYXRlLmdldE1v
bnRoKCktMSktMzE7Ci0gICAgICAgICAgICB2YXIgZmlyc3RNb25kYXlVbnRpbEVuZEphbnVhcnkg
PSAzMS1maXJzdE1vbmRheS5nZXREYXRlKCk7Ci0gICAgICAgICAgICB2YXIgZGF5cyA9IGZpcnN0
TW9uZGF5VW50aWxFbmRKYW51YXJ5K2ZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRoK2VuZERhdGUu
Z2V0RGF0ZSgpOwotICAgICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhNYXRoLmNlaWwoZGF5
cy83KSwgMik7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBjb21wYXJlQnlEYXkoZmly
c3RNb25kYXksIGphbkZpcnN0KSA9PT0gMCA/ICcwMSc6ICcwMCc7Ci0gICAgICAgIH0sCi0gICAg
ICAgICcleSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUg
bGFzdCB0d28gZGlnaXRzIG9mIHRoZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAwLDk5XS4g
WyB0bV95ZWFyXQotICAgICAgICAgIHJldHVybiAoZGF0ZS50bV95ZWFyKzE5MDApLnRvU3RyaW5n
KCkuc3Vic3RyaW5nKDIpOwotICAgICAgICB9LAotICAgICAgICAnJVknOiBmdW5jdGlvbihkYXRl
KSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHllYXIgYXMgYSBkZWNpbWFsIG51bWJl
ciAoZm9yIGV4YW1wbGUsIDE5OTcpLiBbIHRtX3llYXJdCi0gICAgICAgICAgcmV0dXJuIGRhdGUu
dG1feWVhcisxOTAwOwotICAgICAgICB9LAotICAgICAgICAnJXonOiBmdW5jdGlvbihkYXRlKSB7
Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIG9mZnNldCBmcm9tIFVUQyBpbiB0aGUgSVNP
IDg2MDE6MjAwMCBzdGFuZGFyZCBmb3JtYXQgKCAraGhtbSBvciAtaGhtbSApLAotICAgICAgICAg
IC8vIG9yIGJ5IG5vIGNoYXJhY3RlcnMgaWYgbm8gdGltZXpvbmUgaXMgZGV0ZXJtaW5hYmxlLiAK
LSAgICAgICAgICAvLyBGb3IgZXhhbXBsZSwgIi0wNDMwIiBtZWFucyA0IGhvdXJzIDMwIG1pbnV0
ZXMgYmVoaW5kIFVUQyAod2VzdCBvZiBHcmVlbndpY2gpLiAKLSAgICAgICAgICAvLyBJZiB0bV9p
c2RzdCBpcyB6ZXJvLCB0aGUgc3RhbmRhcmQgdGltZSBvZmZzZXQgaXMgdXNlZC4gCi0gICAgICAg
ICAgLy8gSWYgdG1faXNkc3QgaXMgZ3JlYXRlciB0aGFuIHplcm8sIHRoZSBkYXlsaWdodCBzYXZp
bmdzIHRpbWUgb2Zmc2V0IGlzIHVzZWQuIAotICAgICAgICAgIC8vIElmIHRtX2lzZHN0IGlzIG5l
Z2F0aXZlLCBubyBjaGFyYWN0ZXJzIGFyZSByZXR1cm5lZC4gCi0gICAgICAgICAgLy8gRklYTUU6
IHdlIGNhbm5vdCBkZXRlcm1pbmUgdGltZSB6b25lIChvciBjYW4gd2U/KQotICAgICAgICAgIHJl
dHVybiAnJzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVaJzogZnVuY3Rpb24oZGF0ZSkgewotICAg
ICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB0aW1lem9uZSBuYW1lIG9yIGFiYnJldmlhdGlvbiwg
b3IgYnkgbm8gYnl0ZXMgaWYgbm8gdGltZXpvbmUgaW5mb3JtYXRpb24gZXhpc3RzLiBbIHRtX2lz
ZHN0XQotICAgICAgICAgIC8vIEZJWE1FOiB3ZSBjYW5ub3QgZGV0ZXJtaW5lIHRpbWUgem9uZSAo
b3IgY2FuIHdlPykKLSAgICAgICAgICByZXR1cm4gJyc7Ci0gICAgICAgIH0sCi0gICAgICAgICcl
JSc6IGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiAnJSc7Ci0gICAgICAgIH0KLSAgICAg
IH07Ci0gICAgICBmb3IgKHZhciBydWxlIGluIEVYUEFOU0lPTl9SVUxFU18yKSB7Ci0gICAgICAg
IGlmIChwYXR0ZXJuLmluZGV4T2YocnVsZSkgPj0gMCkgewotICAgICAgICAgIHBhdHRlcm4gPSBw
YXR0ZXJuLnJlcGxhY2UobmV3IFJlZ0V4cChydWxlLCAnZycpLCBFWFBBTlNJT05fUlVMRVNfMlty
dWxlXShkYXRlKSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHZhciBieXRlcyA9IGludEFy
cmF5RnJvbVN0cmluZyhwYXR0ZXJuLCBmYWxzZSk7Ci0gICAgICBpZiAoYnl0ZXMubGVuZ3RoID4g
bWF4c2l6ZSkgewotICAgICAgICByZXR1cm4gMDsKLSAgICAgIH0gCi0gICAgICB3cml0ZUFycmF5
VG9NZW1vcnkoYnl0ZXMsIHMpOwotICAgICAgcmV0dXJuIGJ5dGVzLmxlbmd0aC0xOwotICAgIH12
YXIgX3N0cmZ0aW1lX2w9X3N0cmZ0aW1lOwotICBmdW5jdGlvbiBfaXNzcGFjZShjaHIpIHsKLSAg
ICAgIHJldHVybiAoY2hyID09IDMyKSB8fCAoY2hyID49IDkgJiYgY2hyIDw9IDEzKTsKLSAgICB9
Ci0gIGZ1bmN0aW9uIF9fcGFyc2VJbnQ2NChzdHIsIGVuZHB0ciwgYmFzZSwgbWluLCBtYXgsIHVu
c2lnbikgewotICAgICAgdmFyIGlzTmVnYXRpdmUgPSBmYWxzZTsKLSAgICAgIC8vIFNraXAgc3Bh
Y2UuCi0gICAgICB3aGlsZSAoX2lzc3BhY2UoSEVBUDhbKHN0cildKSkgc3RyKys7Ci0gICAgICAv
LyBDaGVjayBmb3IgYSBwbHVzL21pbnVzIHNpZ24uCi0gICAgICBpZiAoSEVBUDhbKHN0cildID09
IDQ1KSB7Ci0gICAgICAgIHN0cisrOwotICAgICAgICBpc05lZ2F0aXZlID0gdHJ1ZTsKLSAgICAg
IH0gZWxzZSBpZiAoSEVBUDhbKHN0cildID09IDQzKSB7Ci0gICAgICAgIHN0cisrOwotICAgICAg
fQotICAgICAgLy8gRmluZCBiYXNlLgotICAgICAgdmFyIG9rID0gZmFsc2U7Ci0gICAgICB2YXIg
ZmluYWxCYXNlID0gYmFzZTsKLSAgICAgIGlmICghZmluYWxCYXNlKSB7Ci0gICAgICAgIGlmIChI
RUFQOFsoc3RyKV0gPT0gNDgpIHsKLSAgICAgICAgICBpZiAoSEVBUDhbKChzdHIrMSl8MCldID09
IDEyMCB8fAotICAgICAgICAgICAgICBIRUFQOFsoKHN0cisxKXwwKV0gPT0gODgpIHsKLSAgICAg
ICAgICAgIGZpbmFsQmFzZSA9IDE2OwotICAgICAgICAgICAgc3RyICs9IDI7Ci0gICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIGZpbmFsQmFzZSA9IDg7Ci0gICAgICAgICAgICBvayA9IHRy
dWU7IC8vIHdlIHNhdyBhbiBpbml0aWFsIHplcm8sIHBlcmhhcHMgdGhlIGVudGlyZSB0aGluZyBp
cyBqdXN0ICIwIgotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSBlbHNlIGlmIChmaW5h
bEJhc2U9PTE2KSB7Ci0gICAgICAgIGlmIChIRUFQOFsoc3RyKV0gPT0gNDgpIHsKLSAgICAgICAg
ICBpZiAoSEVBUDhbKChzdHIrMSl8MCldID09IDEyMCB8fAotICAgICAgICAgICAgICBIRUFQOFso
KHN0cisxKXwwKV0gPT0gODgpIHsKLSAgICAgICAgICAgIHN0ciArPSAyOwotICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgICAgfQotICAgICAgaWYgKCFmaW5hbEJhc2UpIGZpbmFsQmFzZSA9IDEw
OwotICAgICAgc3RhcnQgPSBzdHI7Ci0gICAgICAvLyBHZXQgZGlnaXRzLgotICAgICAgdmFyIGNo
cjsKLSAgICAgIHdoaWxlICgoY2hyID0gSEVBUDhbKHN0cildKSAhPSAwKSB7Ci0gICAgICAgIHZh
ciBkaWdpdCA9IHBhcnNlSW50KFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyKSwgZmluYWxCYXNlKTsK
LSAgICAgICAgaWYgKGlzTmFOKGRpZ2l0KSkgewotICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgIHN0cisrOwotICAgICAgICAgIG9rID0gdHJ1ZTsKLSAgICAgICAg
fQotICAgICAgfQotICAgICAgaWYgKCFvaykgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19D
T0RFUy5FSU5WQUwpOwotICAgICAgICByZXR1cm4gKChhc21bInNldFRlbXBSZXQwIl0oMCksMCl8
MCk7Ci0gICAgICB9Ci0gICAgICAvLyBTZXQgZW5kIHBvaW50ZXIuCi0gICAgICBpZiAoZW5kcHRy
KSB7Ci0gICAgICAgIEhFQVAzMlsoKGVuZHB0cik+PjIpXT1zdHIKLSAgICAgIH0KLSAgICAgIHRy
eSB7Ci0gICAgICAgIHZhciBudW1iZXJTdHJpbmcgPSBpc05lZ2F0aXZlID8gJy0nK1BvaW50ZXJf
c3RyaW5naWZ5KHN0YXJ0LCBzdHIgLSBzdGFydCkgOiBQb2ludGVyX3N0cmluZ2lmeShzdGFydCwg
c3RyIC0gc3RhcnQpOwotICAgICAgICBpNjRNYXRoLmZyb21TdHJpbmcobnVtYmVyU3RyaW5nLCBm
aW5hbEJhc2UsIG1pbiwgbWF4LCB1bnNpZ24pOwotICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAg
IF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVSQU5HRSk7IC8vIG5vdCBxdWl0ZSBjb3JyZWN0Ci0g
ICAgICB9Ci0gICAgICByZXR1cm4gKChhc21bInNldFRlbXBSZXQwIl0oKChIRUFQMzJbKCgodGVt
cERvdWJsZVB0cikrKDQpKT4+MildKXwwKSksKChIRUFQMzJbKCh0ZW1wRG91YmxlUHRyKT4+Mild
KXwwKSl8MCk7Ci0gICAgfWZ1bmN0aW9uIF9zdHJ0b3VsbChzdHIsIGVuZHB0ciwgYmFzZSkgewot
ICAgICAgcmV0dXJuIF9fcGFyc2VJbnQ2NChzdHIsIGVuZHB0ciwgYmFzZSwgMCwgJzE4NDQ2NzQ0
MDczNzA5NTUxNjE1JywgdHJ1ZSk7ICAvLyBVTE9OR19NQVguCi0gICAgfXZhciBfc3RydG91bGxf
bD1fc3RydG91bGw7Ci0gIGZ1bmN0aW9uIF9zdHJ0b2xsKHN0ciwgZW5kcHRyLCBiYXNlKSB7Ci0g
ICAgICByZXR1cm4gX19wYXJzZUludDY0KHN0ciwgZW5kcHRyLCBiYXNlLCAnLTkyMjMzNzIwMzY4
NTQ3NzU4MDgnLCAnOTIyMzM3MjAzNjg1NDc3NTgwNycpOyAgLy8gTExPTkdfTUlOLCBMTE9OR19N
QVguCi0gICAgfXZhciBfc3RydG9sbF9sPV9zdHJ0b2xsOwotICBmdW5jdGlvbiBfdXNlbG9jYWxl
KGxvY2FsZSkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICBmdW5jdGlvbiBfX19sb2NhbGVf
bWJfY3VyX21heCgpIHsgdGhyb3cgJ19fbG9jYWxlX21iX2N1cl9tYXggbm90IGltcGxlbWVudGVk
JyB9Ci0gIHZhciBfbGx2bV92YV9zdGFydD11bmRlZmluZWQ7Ci0gIGZ1bmN0aW9uIF9zcHJpbnRm
KHMsIGZvcm1hdCwgdmFyYXJncykgewotICAgICAgLy8gaW50IHNwcmludGYoY2hhciAqcmVzdHJp
Y3QgcywgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCAuLi4pOwotICAgICAgLy8gaHR0cDov
L3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvcHJpbnRm
Lmh0bWwKLSAgICAgIHJldHVybiBfc25wcmludGYocywgdW5kZWZpbmVkLCBmb3JtYXQsIHZhcmFy
Z3MpOwotICAgIH1mdW5jdGlvbiBfYXNwcmludGYocywgZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAg
ICByZXR1cm4gX3NwcmludGYoLXMsIGZvcm1hdCwgdmFyYXJncyk7Ci0gICAgfWZ1bmN0aW9uIF92
YXNwcmludGYocywgZm9ybWF0LCB2YV9hcmcpIHsKLSAgICAgIHJldHVybiBfYXNwcmludGYocywg
Zm9ybWF0LCBIRUFQMzJbKCh2YV9hcmcpPj4yKV0pOwotICAgIH0KLSAgZnVuY3Rpb24gX2xsdm1f
dmFfZW5kKCkge30KLSAgZnVuY3Rpb24gX3ZzbnByaW50ZihzLCBuLCBmb3JtYXQsIHZhX2FyZykg
ewotICAgICAgcmV0dXJuIF9zbnByaW50ZihzLCBuLCBmb3JtYXQsIEhFQVAzMlsoKHZhX2FyZyk+
PjIpXSk7Ci0gICAgfQotICBmdW5jdGlvbiBfdnNzY2FuZihzLCBmb3JtYXQsIHZhX2FyZykgewot
ICAgICAgcmV0dXJuIF9zc2NhbmYocywgZm9ybWF0LCBIRUFQMzJbKCh2YV9hcmcpPj4yKV0pOwot
ICAgIH0KLSAgZnVuY3Rpb24gX3NicmsoYnl0ZXMpIHsKLSAgICAgIC8vIEltcGxlbWVudCBhIExp
bnV4LWxpa2UgJ21lbW9yeSBhcmVhJyBmb3Igb3VyICdwcm9jZXNzJy4KLSAgICAgIC8vIENoYW5n
ZXMgdGhlIHNpemUgb2YgdGhlIG1lbW9yeSBhcmVhIGJ5IHxieXRlc3w7IHJldHVybnMgdGhlCi0g
ICAgICAvLyBhZGRyZXNzIG9mIHRoZSBwcmV2aW91cyB0b3AgKCdicmVhaycpIG9mIHRoZSBtZW1v
cnkgYXJlYQotICAgICAgLy8gV2UgY29udHJvbCB0aGUgImR5bmFtaWMiIG1lbW9yeSAtIERZTkFN
SUNfQkFTRSB0byBEWU5BTUlDVE9QCi0gICAgICB2YXIgc2VsZiA9IF9zYnJrOwotICAgICAgaWYg
KCFzZWxmLmNhbGxlZCkgewotICAgICAgICBEWU5BTUlDVE9QID0gYWxpZ25NZW1vcnlQYWdlKERZ
TkFNSUNUT1ApOyAvLyBtYWtlIHN1cmUgd2Ugc3RhcnQgb3V0IGFsaWduZWQKLSAgICAgICAgc2Vs
Zi5jYWxsZWQgPSB0cnVlOwotICAgICAgICBhc3NlcnQoUnVudGltZS5keW5hbWljQWxsb2MpOwot
ICAgICAgICBzZWxmLmFsbG9jID0gUnVudGltZS5keW5hbWljQWxsb2M7Ci0gICAgICAgIFJ1bnRp
bWUuZHluYW1pY0FsbG9jID0gZnVuY3Rpb24oKSB7IGFib3J0KCdjYW5ub3QgZHluYW1pY2FsbHkg
YWxsb2NhdGUsIHNicmsgbm93IGhhcyBjb250cm9sJykgfTsKLSAgICAgIH0KLSAgICAgIHZhciBy
ZXQgPSBEWU5BTUlDVE9QOwotICAgICAgaWYgKGJ5dGVzICE9IDApIHNlbGYuYWxsb2MoYnl0ZXMp
OwotICAgICAgcmV0dXJuIHJldDsgIC8vIFByZXZpb3VzIGJyZWFrIGxvY2F0aW9uLgotICAgIH0K
LSAgZnVuY3Rpb24gX3RpbWUocHRyKSB7Ci0gICAgICB2YXIgcmV0ID0gTWF0aC5mbG9vcihEYXRl
Lm5vdygpLzEwMDApOwotICAgICAgaWYgKHB0cikgewotICAgICAgICBIRUFQMzJbKChwdHIpPj4y
KV09cmV0Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgZnVuY3Rpb24gX19f
Y3hhX2NhbGxfdW5leHBlY3RlZChleGNlcHRpb24pIHsKLSAgICAgIE1vZHVsZS5wcmludEVycign
VW5leHBlY3RlZCBleGNlcHRpb24gdGhyb3duLCB0aGlzIGlzIG5vdCBwcm9wZXJseSBzdXBwb3J0
ZWQgLSBhYm9ydGluZycpOwotICAgICAgQUJPUlQgPSB0cnVlOwotICAgICAgdGhyb3cgZXhjZXB0
aW9uOwotICAgIH0KLSAgdmFyIEJyb3dzZXI9e21haW5Mb29wOntzY2hlZHVsZXI6bnVsbCxzaG91
bGRQYXVzZTpmYWxzZSxwYXVzZWQ6ZmFsc2UscXVldWU6W10scGF1c2U6ZnVuY3Rpb24gKCkgewot
ICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3Auc2hvdWxkUGF1c2UgPSB0cnVlOwotICAgICAgICB9
LHJlc3VtZTpmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgaWYgKEJyb3dzZXIubWFpbkxvb3AucGF1
c2VkKSB7Ci0gICAgICAgICAgICBCcm93c2VyLm1haW5Mb29wLnBhdXNlZCA9IGZhbHNlOwotICAg
ICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5zY2hlZHVsZXIoKTsKLSAgICAgICAgICB9Ci0gICAg
ICAgICAgQnJvd3Nlci5tYWluTG9vcC5zaG91bGRQYXVzZSA9IGZhbHNlOwotICAgICAgICB9LHVw
ZGF0ZVN0YXR1czpmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgaWYgKE1vZHVsZVsnc2V0U3RhdHVz
J10pIHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gTW9kdWxlWydzdGF0dXNNZXNzYWdlJ10g
fHwgJ1BsZWFzZSB3YWl0Li4uJzsKLSAgICAgICAgICAgIHZhciByZW1haW5pbmcgPSBCcm93c2Vy
Lm1haW5Mb29wLnJlbWFpbmluZ0Jsb2NrZXJzOwotICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0g
QnJvd3Nlci5tYWluTG9vcC5leHBlY3RlZEJsb2NrZXJzOwotICAgICAgICAgICAgaWYgKHJlbWFp
bmluZykgewotICAgICAgICAgICAgICBpZiAocmVtYWluaW5nIDwgZXhwZWN0ZWQpIHsKLSAgICAg
ICAgICAgICAgICBNb2R1bGVbJ3NldFN0YXR1cyddKG1lc3NhZ2UgKyAnICgnICsgKGV4cGVjdGVk
IC0gcmVtYWluaW5nKSArICcvJyArIGV4cGVjdGVkICsgJyknKTsKLSAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBNb2R1bGVbJ3NldFN0YXR1cyddKG1lc3NhZ2UpOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBNb2R1bGVb
J3NldFN0YXR1cyddKCcnKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH19
LGlzRnVsbFNjcmVlbjpmYWxzZSxwb2ludGVyTG9jazpmYWxzZSxtb2R1bGVDb250ZXh0Q3JlYXRl
ZENhbGxiYWNrczpbXSx3b3JrZXJzOltdLGluaXQ6ZnVuY3Rpb24gKCkgewotICAgICAgICBpZiAo
IU1vZHVsZVsicHJlbG9hZFBsdWdpbnMiXSkgTW9kdWxlWyJwcmVsb2FkUGx1Z2lucyJdID0gW107
IC8vIG5lZWRzIHRvIGV4aXN0IGV2ZW4gaW4gd29ya2VycwotICAgICAgICBpZiAoQnJvd3Nlci5p
bml0dGVkIHx8IEVOVklST05NRU5UX0lTX1dPUktFUikgcmV0dXJuOwotICAgICAgICBCcm93c2Vy
LmluaXR0ZWQgPSB0cnVlOwotICAgICAgICB0cnkgewotICAgICAgICAgIG5ldyBCbG9iKCk7Ci0g
ICAgICAgICAgQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPSB0cnVlOwotICAgICAgICB9IGNh
dGNoKGUpIHsKLSAgICAgICAgICBCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvciA9IGZhbHNlOwot
ICAgICAgICAgIGNvbnNvbGUubG9nKCJ3YXJuaW5nOiBubyBibG9iIGNvbnN0cnVjdG9yLCBjYW5u
b3QgY3JlYXRlIGJsb2JzIHdpdGggbWltZXR5cGVzIik7Ci0gICAgICAgIH0KLSAgICAgICAgQnJv
d3Nlci5CbG9iQnVpbGRlciA9IHR5cGVvZiBNb3pCbG9iQnVpbGRlciAhPSAidW5kZWZpbmVkIiA/
IE1vekJsb2JCdWlsZGVyIDogKHR5cGVvZiBXZWJLaXRCbG9iQnVpbGRlciAhPSAidW5kZWZpbmVk
IiA/IFdlYktpdEJsb2JCdWlsZGVyIDogKCFCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvciA/IGNv
bnNvbGUubG9nKCJ3YXJuaW5nOiBubyBCbG9iQnVpbGRlciIpIDogbnVsbCkpOwotICAgICAgICBC
cm93c2VyLlVSTE9iamVjdCA9IHR5cGVvZiB3aW5kb3cgIT0gInVuZGVmaW5lZCIgPyAod2luZG93
LlVSTCA/IHdpbmRvdy5VUkwgOiB3aW5kb3cud2Via2l0VVJMKSA6IHVuZGVmaW5lZDsKLSAgICAg
ICAgaWYgKCFNb2R1bGUubm9JbWFnZURlY29kaW5nICYmIHR5cGVvZiBCcm93c2VyLlVSTE9iamVj
dCA9PT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICBjb25zb2xlLmxvZygid2FybmluZzogQnJv
d3NlciBkb2VzIG5vdCBzdXBwb3J0IGNyZWF0aW5nIG9iamVjdCBVUkxzLiBCdWlsdC1pbiBicm93
c2VyIGltYWdlIGRlY29kaW5nIHdpbGwgbm90IGJlIGF2YWlsYWJsZS4iKTsKLSAgICAgICAgICBN
b2R1bGUubm9JbWFnZURlY29kaW5nID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICAvLyBTdXBw
b3J0IGZvciBwbHVnaW5zIHRoYXQgY2FuIHByb2Nlc3MgcHJlbG9hZGVkIGZpbGVzLiBZb3UgY2Fu
IGFkZCBtb3JlIG9mIHRoZXNlIHRvCi0gICAgICAgIC8vIHlvdXIgYXBwIGJ5IGNyZWF0aW5nIGFu
ZCBhcHBlbmRpbmcgdG8gTW9kdWxlLnByZWxvYWRQbHVnaW5zLgotICAgICAgICAvLwotICAgICAg
ICAvLyBFYWNoIHBsdWdpbiBpcyBhc2tlZCBpZiBpdCBjYW4gaGFuZGxlIGEgZmlsZSBiYXNlZCBv
biB0aGUgZmlsZSdzIG5hbWUuIElmIGl0IGNhbiwKLSAgICAgICAgLy8gaXQgaXMgZ2l2ZW4gdGhl
IGZpbGUncyByYXcgZGF0YS4gV2hlbiBpdCBpcyBkb25lLCBpdCBjYWxscyBhIGNhbGxiYWNrIHdp
dGggdGhlIGZpbGUncwotICAgICAgICAvLyAocG9zc2libHkgbW9kaWZpZWQpIGRhdGEuIEZvciBl
eGFtcGxlLCBhIHBsdWdpbiBtaWdodCBkZWNvbXByZXNzIGEgZmlsZSwgb3IgaXQKLSAgICAgICAg
Ly8gbWlnaHQgY3JlYXRlIHNvbWUgc2lkZSBkYXRhIHN0cnVjdHVyZSBmb3IgdXNlIGxhdGVyIChs
aWtlIGFuIEltYWdlIGVsZW1lbnQsIGV0Yy4pLgotICAgICAgICB2YXIgaW1hZ2VQbHVnaW4gPSB7
fTsKLSAgICAgICAgaW1hZ2VQbHVnaW5bJ2NhbkhhbmRsZSddID0gZnVuY3Rpb24obmFtZSkgewot
ICAgICAgICAgIHJldHVybiAhTW9kdWxlLm5vSW1hZ2VEZWNvZGluZyAmJiAvXC4oanBnfGpwZWd8
cG5nfGJtcCkkL2kudGVzdChuYW1lKTsKLSAgICAgICAgfTsKLSAgICAgICAgaW1hZ2VQbHVnaW5b
J2hhbmRsZSddID0gZnVuY3Rpb24oYnl0ZUFycmF5LCBuYW1lLCBvbmxvYWQsIG9uZXJyb3IpIHsK
LSAgICAgICAgICB2YXIgYiA9IG51bGw7Ci0gICAgICAgICAgaWYgKEJyb3dzZXIuaGFzQmxvYkNv
bnN0cnVjdG9yKSB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICBiID0gbmV3IEJs
b2IoW2J5dGVBcnJheV0sIHsgdHlwZTogQnJvd3Nlci5nZXRNaW1ldHlwZShuYW1lKSB9KTsKLSAg
ICAgICAgICAgICAgaWYgKGIuc2l6ZSAhPT0gYnl0ZUFycmF5Lmxlbmd0aCkgeyAvLyBTYWZhcmkg
YnVnICMxMTg2MzAKLSAgICAgICAgICAgICAgICAvLyBTYWZhcmkncyBCbG9iIGNhbiBvbmx5IHRh
a2UgYW4gQXJyYXlCdWZmZXIKLSAgICAgICAgICAgICAgICBiID0gbmV3IEJsb2IoWyhuZXcgVWlu
dDhBcnJheShieXRlQXJyYXkpKS5idWZmZXJdLCB7IHR5cGU6IEJyb3dzZXIuZ2V0TWltZXR5cGUo
bmFtZSkgfSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gY2F0Y2goZSkgewotICAg
ICAgICAgICAgICBSdW50aW1lLndhcm5PbmNlKCdCbG9iIGNvbnN0cnVjdG9yIHByZXNlbnQgYnV0
IGZhaWxzOiAnICsgZSArICc7IGZhbGxpbmcgYmFjayB0byBibG9iIGJ1aWxkZXInKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKCFiKSB7Ci0gICAgICAgICAgICB2
YXIgYmIgPSBuZXcgQnJvd3Nlci5CbG9iQnVpbGRlcigpOwotICAgICAgICAgICAgYmIuYXBwZW5k
KChuZXcgVWludDhBcnJheShieXRlQXJyYXkpKS5idWZmZXIpOyAvLyB3ZSBuZWVkIHRvIHBhc3Mg
YSBidWZmZXIsIGFuZCBtdXN0IGNvcHkgdGhlIGFycmF5IHRvIGdldCB0aGUgcmlnaHQgZGF0YSBy
YW5nZQotICAgICAgICAgICAgYiA9IGJiLmdldEJsb2IoKTsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgdmFyIHVybCA9IEJyb3dzZXIuVVJMT2JqZWN0LmNyZWF0ZU9iamVjdFVSTChiKTsKLSAgICAg
ICAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7Ci0gICAgICAgICAgaW1nLm9ubG9hZCA9IGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgYXNzZXJ0KGltZy5jb21wbGV0ZSwgJ0ltYWdlICcgKyBuYW1l
ICsgJyBjb3VsZCBub3QgYmUgZGVjb2RlZCcpOwotICAgICAgICAgICAgdmFyIGNhbnZhcyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwotICAgICAgICAgICAgY2FudmFzLndpZHRo
ID0gaW1nLndpZHRoOwotICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IGltZy5oZWlnaHQ7Ci0g
ICAgICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7Ci0gICAgICAgICAg
ICBjdHguZHJhd0ltYWdlKGltZywgMCwgMCk7Ci0gICAgICAgICAgICBNb2R1bGVbInByZWxvYWRl
ZEltYWdlcyJdW25hbWVdID0gY2FudmFzOwotICAgICAgICAgICAgQnJvd3Nlci5VUkxPYmplY3Qu
cmV2b2tlT2JqZWN0VVJMKHVybCk7Ci0gICAgICAgICAgICBpZiAob25sb2FkKSBvbmxvYWQoYnl0
ZUFycmF5KTsKLSAgICAgICAgICB9OwotICAgICAgICAgIGltZy5vbmVycm9yID0gZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgICAgICAgICAgIGNvbnNvbGUubG9nKCdJbWFnZSAnICsgdXJsICsgJyBjb3Vs
ZCBub3QgYmUgZGVjb2RlZCcpOwotICAgICAgICAgICAgaWYgKG9uZXJyb3IpIG9uZXJyb3IoKTsK
LSAgICAgICAgICB9OwotICAgICAgICAgIGltZy5zcmMgPSB1cmw7Ci0gICAgICAgIH07Ci0gICAg
ICAgIE1vZHVsZVsncHJlbG9hZFBsdWdpbnMnXS5wdXNoKGltYWdlUGx1Z2luKTsKLSAgICAgICAg
dmFyIGF1ZGlvUGx1Z2luID0ge307Ci0gICAgICAgIGF1ZGlvUGx1Z2luWydjYW5IYW5kbGUnXSA9
IGZ1bmN0aW9uKG5hbWUpIHsKLSAgICAgICAgICByZXR1cm4gIU1vZHVsZS5ub0F1ZGlvRGVjb2Rp
bmcgJiYgbmFtZS5zdWJzdHIoLTQpIGluIHsgJy5vZ2cnOiAxLCAnLndhdic6IDEsICcubXAzJzog
MSB9OwotICAgICAgICB9OwotICAgICAgICBhdWRpb1BsdWdpblsnaGFuZGxlJ10gPSBmdW5jdGlv
bihieXRlQXJyYXksIG5hbWUsIG9ubG9hZCwgb25lcnJvcikgewotICAgICAgICAgIHZhciBkb25l
ID0gZmFsc2U7Ci0gICAgICAgICAgZnVuY3Rpb24gZmluaXNoKGF1ZGlvKSB7Ci0gICAgICAgICAg
ICBpZiAoZG9uZSkgcmV0dXJuOwotICAgICAgICAgICAgZG9uZSA9IHRydWU7Ci0gICAgICAgICAg
ICBNb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdW25hbWVdID0gYXVkaW87Ci0gICAgICAgICAgICBp
ZiAob25sb2FkKSBvbmxvYWQoYnl0ZUFycmF5KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgZnVu
Y3Rpb24gZmFpbCgpIHsKLSAgICAgICAgICAgIGlmIChkb25lKSByZXR1cm47Ci0gICAgICAgICAg
ICBkb25lID0gdHJ1ZTsKLSAgICAgICAgICAgIE1vZHVsZVsicHJlbG9hZGVkQXVkaW9zIl1bbmFt
ZV0gPSBuZXcgQXVkaW8oKTsgLy8gZW1wdHkgc2hpbQotICAgICAgICAgICAgaWYgKG9uZXJyb3Ip
IG9uZXJyb3IoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKEJyb3dzZXIuaGFzQmxvYkNv
bnN0cnVjdG9yKSB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICB2YXIgYiA9IG5l
dyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IEJyb3dzZXIuZ2V0TWltZXR5cGUobmFtZSkgfSk7
Ci0gICAgICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZhciB1cmwgPSBCcm93c2VyLlVSTE9iamVjdC5j
cmVhdGVPYmplY3RVUkwoYik7IC8vIFhYWCB3ZSBuZXZlciByZXZva2UgdGhpcyEKLSAgICAgICAg
ICAgIHZhciBhdWRpbyA9IG5ldyBBdWRpbygpOwotICAgICAgICAgICAgYXVkaW8uYWRkRXZlbnRM
aXN0ZW5lcignY2FucGxheXRocm91Z2gnLCBmdW5jdGlvbigpIHsgZmluaXNoKGF1ZGlvKSB9LCBm
YWxzZSk7IC8vIHVzZSBhZGRFdmVudExpc3RlbmVyIGR1ZSB0byBjaHJvbWl1bSBidWcgMTI0OTI2
Ci0gICAgICAgICAgICBhdWRpby5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAg
ICAgICAgaWYgKGRvbmUpIHJldHVybjsKLSAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3dhcm5p
bmc6IGJyb3dzZXIgY291bGQgbm90IGZ1bGx5IGRlY29kZSBhdWRpbyAnICsgbmFtZSArICcsIHRy
eWluZyBzbG93ZXIgYmFzZTY0IGFwcHJvYWNoJyk7Ci0gICAgICAgICAgICAgIGZ1bmN0aW9uIGVu
Y29kZTY0KGRhdGEpIHsKLSAgICAgICAgICAgICAgICB2YXIgQkFTRSA9ICdBQkNERUZHSElKS0xN
Tk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJzsKLSAg
ICAgICAgICAgICAgICB2YXIgUEFEID0gJz0nOwotICAgICAgICAgICAgICAgIHZhciByZXQgPSAn
JzsKLSAgICAgICAgICAgICAgICB2YXIgbGVmdGNoYXIgPSAwOwotICAgICAgICAgICAgICAgIHZh
ciBsZWZ0Yml0cyA9IDA7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRh
Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICBsZWZ0Y2hhciA9IChsZWZ0Y2hhciA8
PCA4KSB8IGRhdGFbaV07Ci0gICAgICAgICAgICAgICAgICBsZWZ0Yml0cyArPSA4OwotICAgICAg
ICAgICAgICAgICAgd2hpbGUgKGxlZnRiaXRzID49IDYpIHsKLSAgICAgICAgICAgICAgICAgICAg
dmFyIGN1cnIgPSAobGVmdGNoYXIgPj4gKGxlZnRiaXRzLTYpKSAmIDB4M2Y7Ci0gICAgICAgICAg
ICAgICAgICAgIGxlZnRiaXRzIC09IDY7Ci0gICAgICAgICAgICAgICAgICAgIHJldCArPSBCQVNF
W2N1cnJdOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBpZiAobGVmdGJpdHMgPT0gMikgewotICAgICAgICAgICAgICAgICAgcmV0ICs9IEJB
U0VbKGxlZnRjaGFyJjMpIDw8IDRdOwotICAgICAgICAgICAgICAgICAgcmV0ICs9IFBBRCArIFBB
RDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxlZnRiaXRzID09IDQpIHsKLSAgICAgICAg
ICAgICAgICAgIHJldCArPSBCQVNFWyhsZWZ0Y2hhciYweGYpIDw8IDJdOwotICAgICAgICAgICAg
ICAgICAgcmV0ICs9IFBBRDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHJldDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBhdWRpby5zcmMgPSAnZGF0
YTphdWRpby94LScgKyBuYW1lLnN1YnN0cigtMykgKyAnO2Jhc2U2NCwnICsgZW5jb2RlNjQoYnl0
ZUFycmF5KTsKLSAgICAgICAgICAgICAgZmluaXNoKGF1ZGlvKTsgLy8gd2UgZG9uJ3Qgd2FpdCBm
b3IgY29uZmlybWF0aW9uIHRoaXMgd29ya2VkIC0gYnV0IGl0J3Mgd29ydGggdHJ5aW5nCi0gICAg
ICAgICAgICB9OwotICAgICAgICAgICAgYXVkaW8uc3JjID0gdXJsOwotICAgICAgICAgICAgLy8g
d29ya2Fyb3VuZCBmb3IgY2hyb21lIGJ1ZyAxMjQ5MjYgLSB3ZSBkbyBub3QgYWx3YXlzIGdldCBv
bmNhbnBsYXl0aHJvdWdoIG9yIG9uZXJyb3IKLSAgICAgICAgICAgIEJyb3dzZXIuc2FmZVNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIGZpbmlzaChhdWRpbyk7IC8vIHRyeSB0
byB1c2UgaXQgZXZlbiB0aG91Z2ggaXQgaXMgbm90IG5lY2Vzc2FyaWx5IHJlYWR5IHRvIHBsYXkK
LSAgICAgICAgICAgIH0sIDEwMDAwKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
cmV0dXJuIGZhaWwoKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIE1vZHVsZVsn
cHJlbG9hZFBsdWdpbnMnXS5wdXNoKGF1ZGlvUGx1Z2luKTsKLSAgICAgICAgLy8gQ2FudmFzIGV2
ZW50IHNldHVwCi0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAg
ICBjYW52YXMucmVxdWVzdFBvaW50ZXJMb2NrID0gY2FudmFzWydyZXF1ZXN0UG9pbnRlckxvY2sn
XSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzWydtb3pSZXF1
ZXN0UG9pbnRlckxvY2snXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2FudmFzWyd3ZWJraXRSZXF1ZXN0UG9pbnRlckxvY2snXTsKLSAgICAgICAgY2FudmFzLmV4aXRQ
b2ludGVyTG9jayA9IGRvY3VtZW50WydleGl0UG9pbnRlckxvY2snXSB8fAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ21vekV4aXRQb2ludGVyTG9jayddIHx8Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFsnd2Via2l0RXhpdFBvaW50
ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCl7
fTsgLy8gbm8tb3AgaWYgZnVuY3Rpb24gZG9lcyBub3QgZXhpc3QKLSAgICAgICAgY2FudmFzLmV4
aXRQb2ludGVyTG9jayA9IGNhbnZhcy5leGl0UG9pbnRlckxvY2suYmluZChkb2N1bWVudCk7Ci0g
ICAgICAgIGZ1bmN0aW9uIHBvaW50ZXJMb2NrQ2hhbmdlKCkgewotICAgICAgICAgIEJyb3dzZXIu
cG9pbnRlckxvY2sgPSBkb2N1bWVudFsncG9pbnRlckxvY2tFbGVtZW50J10gPT09IGNhbnZhcyB8
fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFsnbW96UG9pbnRlckxv
Y2tFbGVtZW50J10gPT09IGNhbnZhcyB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudFsnd2Via2l0UG9pbnRlckxvY2tFbGVtZW50J10gPT09IGNhbnZhczsKLSAgICAg
ICAgfQotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybG9ja2NoYW5n
ZScsIHBvaW50ZXJMb2NrQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoJ21venBvaW50ZXJsb2NrY2hhbmdlJywgcG9pbnRlckxvY2tDaGFuZ2UsIGZhbHNl
KTsKLSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cG9pbnRlcmxvY2tj
aGFuZ2UnLCBwb2ludGVyTG9ja0NoYW5nZSwgZmFsc2UpOwotICAgICAgICBpZiAoTW9kdWxlWydl
bGVtZW50UG9pbnRlckxvY2snXSkgewotICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIGZ1bmN0aW9uKGV2KSB7Ci0gICAgICAgICAgICBpZiAoIUJyb3dzZXIucG9pbnRl
ckxvY2sgJiYgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9jaykgewotICAgICAgICAgICAgICBjYW52
YXMucmVxdWVzdFBvaW50ZXJMb2NrKCk7Ci0gICAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0
KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSwgZmFsc2UpOwotICAgICAgICB9Ci0gICAg
ICB9LGNyZWF0ZUNvbnRleHQ6ZnVuY3Rpb24gKGNhbnZhcywgdXNlV2ViR0wsIHNldEluTW9kdWxl
KSB7Ci0gICAgICAgIHZhciBjdHg7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgaWYgKHVzZVdl
YkdMKSB7Ci0gICAgICAgICAgICBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnZXhwZXJpbWVudGFs
LXdlYmdsJywgewotICAgICAgICAgICAgICBhbHBoYTogZmFsc2UKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgn
MmQnKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKCFjdHgpIHRocm93ICc6KCc7Ci0gICAg
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICBNb2R1bGUucHJpbnQoJ0NvdWxkIG5vdCBjcmVh
dGUgY2FudmFzIC0gJyArIGUpOwotICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICh1c2VXZWJHTCkgewotICAgICAgICAgIC8vIFNldCB0aGUgYmFja2dyb3VuZCBv
ZiB0aGUgV2ViR0wgY2FudmFzIHRvIGJsYWNrCi0gICAgICAgICAgY2FudmFzLnN0eWxlLmJhY2tn
cm91bmRDb2xvciA9ICJibGFjayI7Ci0gICAgICAgICAgLy8gV2FybiBvbiBjb250ZXh0IGxvc3MK
LSAgICAgICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcignd2ViZ2xjb250ZXh0bG9zdCcsIGZ1
bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICBhbGVydCgnV2ViR0wgY29udGV4dCBsb3N0LiBZ
b3Ugd2lsbCBuZWVkIHRvIHJlbG9hZCB0aGUgcGFnZS4nKTsKLSAgICAgICAgICB9LCBmYWxzZSk7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHNldEluTW9kdWxlKSB7Ci0gICAgICAgICAgTW9kdWxl
LmN0eCA9IGN0eDsKLSAgICAgICAgICBNb2R1bGUudXNlV2ViR0wgPSB1c2VXZWJHTDsKLSAgICAg
ICAgICBCcm93c2VyLm1vZHVsZUNvbnRleHRDcmVhdGVkQ2FsbGJhY2tzLmZvckVhY2goZnVuY3Rp
b24oY2FsbGJhY2spIHsgY2FsbGJhY2soKSB9KTsKLSAgICAgICAgICBCcm93c2VyLmluaXQoKTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gY3R4OwotICAgICAgfSxkZXN0cm95Q29udGV4dDpm
dW5jdGlvbiAoY2FudmFzLCB1c2VXZWJHTCwgc2V0SW5Nb2R1bGUpIHt9LGZ1bGxTY3JlZW5IYW5k
bGVyc0luc3RhbGxlZDpmYWxzZSxsb2NrUG9pbnRlcjp1bmRlZmluZWQscmVzaXplQ2FudmFzOnVu
ZGVmaW5lZCxyZXF1ZXN0RnVsbFNjcmVlbjpmdW5jdGlvbiAobG9ja1BvaW50ZXIsIHJlc2l6ZUNh
bnZhcykgewotICAgICAgICBCcm93c2VyLmxvY2tQb2ludGVyID0gbG9ja1BvaW50ZXI7Ci0gICAg
ICAgIEJyb3dzZXIucmVzaXplQ2FudmFzID0gcmVzaXplQ2FudmFzOwotICAgICAgICBpZiAodHlw
ZW9mIEJyb3dzZXIubG9ja1BvaW50ZXIgPT09ICd1bmRlZmluZWQnKSBCcm93c2VyLmxvY2tQb2lu
dGVyID0gdHJ1ZTsKLSAgICAgICAgaWYgKHR5cGVvZiBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9PT0g
J3VuZGVmaW5lZCcpIEJyb3dzZXIucmVzaXplQ2FudmFzID0gZmFsc2U7Ci0gICAgICAgIHZhciBj
YW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBmdW5jdGlvbiBmdWxsU2NyZWVuQ2hh
bmdlKCkgewotICAgICAgICAgIEJyb3dzZXIuaXNGdWxsU2NyZWVuID0gZmFsc2U7Ci0gICAgICAg
ICAgaWYgKChkb2N1bWVudFsnd2Via2l0RnVsbFNjcmVlbkVsZW1lbnQnXSB8fCBkb2N1bWVudFsn
d2Via2l0RnVsbHNjcmVlbkVsZW1lbnQnXSB8fAotICAgICAgICAgICAgICAgZG9jdW1lbnRbJ21v
ekZ1bGxTY3JlZW5FbGVtZW50J10gfHwgZG9jdW1lbnRbJ21vekZ1bGxzY3JlZW5FbGVtZW50J10g
fHwKLSAgICAgICAgICAgICAgIGRvY3VtZW50WydmdWxsU2NyZWVuRWxlbWVudCddIHx8IGRvY3Vt
ZW50WydmdWxsc2NyZWVuRWxlbWVudCddKSA9PT0gY2FudmFzKSB7Ci0gICAgICAgICAgICBjYW52
YXMuY2FuY2VsRnVsbFNjcmVlbiA9IGRvY3VtZW50WydjYW5jZWxGdWxsU2NyZWVuJ10gfHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ21vekNhbmNlbEZ1
bGxTY3JlZW4nXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudFsnd2Via2l0Q2FuY2VsRnVsbFNjcmVlbiddOwotICAgICAgICAgICAgY2FudmFzLmNhbmNl
bEZ1bGxTY3JlZW4gPSBjYW52YXMuY2FuY2VsRnVsbFNjcmVlbi5iaW5kKGRvY3VtZW50KTsKLSAg
ICAgICAgICAgIGlmIChCcm93c2VyLmxvY2tQb2ludGVyKSBjYW52YXMucmVxdWVzdFBvaW50ZXJM
b2NrKCk7Ci0gICAgICAgICAgICBCcm93c2VyLmlzRnVsbFNjcmVlbiA9IHRydWU7Ci0gICAgICAg
ICAgICBpZiAoQnJvd3Nlci5yZXNpemVDYW52YXMpIEJyb3dzZXIuc2V0RnVsbFNjcmVlbkNhbnZh
c1NpemUoKTsKLSAgICAgICAgICB9IGVsc2UgaWYgKEJyb3dzZXIucmVzaXplQ2FudmFzKXsKLSAg
ICAgICAgICAgIEJyb3dzZXIuc2V0V2luZG93ZWRDYW52YXNTaXplKCk7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIGlmIChNb2R1bGVbJ29uRnVsbFNjcmVlbiddKSBNb2R1bGVbJ29uRnVsbFNjcmVl
biddKEJyb3dzZXIuaXNGdWxsU2NyZWVuKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIUJyb3dz
ZXIuZnVsbFNjcmVlbkhhbmRsZXJzSW5zdGFsbGVkKSB7Ci0gICAgICAgICAgQnJvd3Nlci5mdWxs
U2NyZWVuSGFuZGxlcnNJbnN0YWxsZWQgPSB0cnVlOwotICAgICAgICAgIGRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoJ2Z1bGxzY3JlZW5jaGFuZ2UnLCBmdWxsU2NyZWVuQ2hhbmdlLCBmYWxzZSk7
Ci0gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW96ZnVsbHNjcmVlbmNoYW5n
ZScsIGZ1bGxTY3JlZW5DaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgICBkb2N1bWVudC5hZGRFdmVu
dExpc3RlbmVyKCd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlJywgZnVsbFNjcmVlbkNoYW5nZSwgZmFs
c2UpOwotICAgICAgICB9Ci0gICAgICAgIGNhbnZhcy5yZXF1ZXN0RnVsbFNjcmVlbiA9IGNhbnZh
c1sncmVxdWVzdEZ1bGxTY3JlZW4nXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYW52YXNbJ21velJlcXVlc3RGdWxsU2NyZWVuJ10gfHwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGNhbnZhc1snd2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4nXSA/IGZ1
bmN0aW9uKCkgeyBjYW52YXNbJ3dlYmtpdFJlcXVlc3RGdWxsU2NyZWVuJ10oRWxlbWVudFsnQUxM
T1dfS0VZQk9BUkRfSU5QVVQnXSkgfSA6IG51bGwpOwotICAgICAgICBjYW52YXMucmVxdWVzdEZ1
bGxTY3JlZW4oKTsKLSAgICAgIH0scmVxdWVzdEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uIChmdW5j
KSB7Ci0gICAgICAgIGlmICghd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSkgewotICAgICAg
ICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB3aW5kb3dbJ3JlcXVlc3RBbmltYXRp
b25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
bmRvd1snbW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2luZG93Wyd3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUn
XSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ21z
UmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2luZG93WydvUmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93WydzZXRUaW1lb3V0J107Ci0g
ICAgICAgIH0KLSAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jKTsKLSAg
ICAgIH0sc2FmZUNhbGxiYWNrOmZ1bmN0aW9uIChmdW5jKSB7Ci0gICAgICAgIHJldHVybiBmdW5j
dGlvbigpIHsKLSAgICAgICAgICBpZiAoIUFCT1JUKSByZXR1cm4gZnVuYy5hcHBseShudWxsLCBh
cmd1bWVudHMpOwotICAgICAgICB9OwotICAgICAgfSxzYWZlUmVxdWVzdEFuaW1hdGlvbkZyYW1l
OmZ1bmN0aW9uIChmdW5jKSB7Ci0gICAgICAgIHJldHVybiBCcm93c2VyLnJlcXVlc3RBbmltYXRp
b25GcmFtZShmdW5jdGlvbigpIHsKLSAgICAgICAgICBpZiAoIUFCT1JUKSBmdW5jKCk7Ci0gICAg
ICAgIH0pOwotICAgICAgfSxzYWZlU2V0VGltZW91dDpmdW5jdGlvbiAoZnVuYywgdGltZW91dCkg
ewotICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICBpZiAo
IUFCT1JUKSBmdW5jKCk7Ci0gICAgICAgIH0sIHRpbWVvdXQpOwotICAgICAgfSxzYWZlU2V0SW50
ZXJ2YWw6ZnVuY3Rpb24gKGZ1bmMsIHRpbWVvdXQpIHsKLSAgICAgICAgcmV0dXJuIHNldEludGVy
dmFsKGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlmICghQUJPUlQpIGZ1bmMoKTsKLSAgICAgICAg
fSwgdGltZW91dCk7Ci0gICAgICB9LGdldE1pbWV0eXBlOmZ1bmN0aW9uIChuYW1lKSB7Ci0gICAg
ICAgIHJldHVybiB7Ci0gICAgICAgICAgJ2pwZyc6ICdpbWFnZS9qcGVnJywKLSAgICAgICAgICAn
anBlZyc6ICdpbWFnZS9qcGVnJywKLSAgICAgICAgICAncG5nJzogJ2ltYWdlL3BuZycsCi0gICAg
ICAgICAgJ2JtcCc6ICdpbWFnZS9ibXAnLAotICAgICAgICAgICdvZ2cnOiAnYXVkaW8vb2dnJywK
LSAgICAgICAgICAnd2F2JzogJ2F1ZGlvL3dhdicsCi0gICAgICAgICAgJ21wMyc6ICdhdWRpby9t
cGVnJwotICAgICAgICB9W25hbWUuc3Vic3RyKG5hbWUubGFzdEluZGV4T2YoJy4nKSsxKV07Ci0g
ICAgICB9LGdldFVzZXJNZWRpYTpmdW5jdGlvbiAoZnVuYykgewotICAgICAgICBpZighd2luZG93
LmdldFVzZXJNZWRpYSkgewotICAgICAgICAgIHdpbmRvdy5nZXRVc2VyTWVkaWEgPSBuYXZpZ2F0
b3JbJ2dldFVzZXJNZWRpYSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h
dmlnYXRvclsnbW96R2V0VXNlck1lZGlhJ107Ci0gICAgICAgIH0KLSAgICAgICAgd2luZG93Lmdl
dFVzZXJNZWRpYShmdW5jKTsKLSAgICAgIH0sZ2V0TW92ZW1lbnRYOmZ1bmN0aW9uIChldmVudCkg
ewotICAgICAgICByZXR1cm4gZXZlbnRbJ21vdmVtZW50WCddIHx8Ci0gICAgICAgICAgICAgICBl
dmVudFsnbW96TW92ZW1lbnRYJ10gfHwKLSAgICAgICAgICAgICAgIGV2ZW50Wyd3ZWJraXRNb3Zl
bWVudFgnXSB8fAotICAgICAgICAgICAgICAgMDsKLSAgICAgIH0sZ2V0TW92ZW1lbnRZOmZ1bmN0
aW9uIChldmVudCkgewotICAgICAgICByZXR1cm4gZXZlbnRbJ21vdmVtZW50WSddIHx8Ci0gICAg
ICAgICAgICAgICBldmVudFsnbW96TW92ZW1lbnRZJ10gfHwKLSAgICAgICAgICAgICAgIGV2ZW50
Wyd3ZWJraXRNb3ZlbWVudFknXSB8fAotICAgICAgICAgICAgICAgMDsKLSAgICAgIH0sbW91c2VY
OjAsbW91c2VZOjAsbW91c2VNb3ZlbWVudFg6MCxtb3VzZU1vdmVtZW50WTowLGNhbGN1bGF0ZU1v
dXNlRXZlbnQ6ZnVuY3Rpb24gKGV2ZW50KSB7IC8vIGV2ZW50IHNob3VsZCBiZSBtb3VzZW1vdmUs
IG1vdXNlZG93biBvciBtb3VzZXVwCi0gICAgICAgIGlmIChCcm93c2VyLnBvaW50ZXJMb2NrKSB7
Ci0gICAgICAgICAgLy8gV2hlbiB0aGUgcG9pbnRlciBpcyBsb2NrZWQsIGNhbGN1bGF0ZSB0aGUg
Y29vcmRpbmF0ZXMKLSAgICAgICAgICAvLyBiYXNlZCBvbiB0aGUgbW92ZW1lbnQgb2YgdGhlIG1v
dXNlLgotICAgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIEZpcmVmb3ggYnVnIDc2NDQ5OAotICAg
ICAgICAgIGlmIChldmVudC50eXBlICE9ICdtb3VzZW1vdmUnICYmCi0gICAgICAgICAgICAgICgn
bW96TW92ZW1lbnRYJyBpbiBldmVudCkpIHsKLSAgICAgICAgICAgIEJyb3dzZXIubW91c2VNb3Zl
bWVudFggPSBCcm93c2VyLm1vdXNlTW92ZW1lbnRZID0gMDsKLSAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgQnJvd3Nlci5tb3VzZU1vdmVtZW50WCA9IEJyb3dzZXIuZ2V0TW92ZW1lbnRY
KGV2ZW50KTsKLSAgICAgICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFkgPSBCcm93c2VyLmdl
dE1vdmVtZW50WShldmVudCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIGNoZWNrIGlmIFNE
TCBpcyBhdmFpbGFibGUKLSAgICAgICAgICBpZiAodHlwZW9mIFNETCAhPSAidW5kZWZpbmVkIikg
ewotICAgICAgICAgIAlCcm93c2VyLm1vdXNlWCA9IFNETC5tb3VzZVggKyBCcm93c2VyLm1vdXNl
TW92ZW1lbnRYOwotICAgICAgICAgIAlCcm93c2VyLm1vdXNlWSA9IFNETC5tb3VzZVkgKyBCcm93
c2VyLm1vdXNlTW92ZW1lbnRZOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgCS8vIGp1
c3QgYWRkIHRoZSBtb3VzZSBkZWx0YSB0byB0aGUgY3VycmVudCBhYnNvbHV0IG1vdXNlIHBvc2l0
aW9uCi0gICAgICAgICAgCS8vIEZJWE1FOiBpZGVhbGx5IHRoaXMgc2hvdWxkIGJlIGNsYW1wZWQg
YWdhaW5zdCB0aGUgY2FudmFzIHNpemUgYW5kIHplcm8KLSAgICAgICAgICAJQnJvd3Nlci5tb3Vz
ZVggKz0gQnJvd3Nlci5tb3VzZU1vdmVtZW50WDsKLSAgICAgICAgICAJQnJvd3Nlci5tb3VzZVkg
Kz0gQnJvd3Nlci5tb3VzZU1vdmVtZW50WTsKLSAgICAgICAgICB9ICAgICAgICAKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAvLyBPdGhlcndpc2UsIGNhbGN1bGF0ZSB0aGUgbW92ZW1lbnQg
YmFzZWQgb24gdGhlIGNoYW5nZXMKLSAgICAgICAgICAvLyBpbiB0aGUgY29vcmRpbmF0ZXMuCi0g
ICAgICAgICAgdmFyIHJlY3QgPSBNb2R1bGVbImNhbnZhcyJdLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOwotICAgICAgICAgIHZhciB4LCB5OwotICAgICAgICAgIGlmIChldmVudC50eXBlID09ICd0
b3VjaHN0YXJ0JyB8fAotICAgICAgICAgICAgICBldmVudC50eXBlID09ICd0b3VjaGVuZCcgfHwK
LSAgICAgICAgICAgICAgZXZlbnQudHlwZSA9PSAndG91Y2htb3ZlJykgewotICAgICAgICAgICAg
dmFyIHQgPSBldmVudC50b3VjaGVzLml0ZW0oMCk7Ci0gICAgICAgICAgICBpZiAodCkgewotICAg
ICAgICAgICAgICB4ID0gdC5wYWdlWCAtICh3aW5kb3cuc2Nyb2xsWCArIHJlY3QubGVmdCk7Ci0g
ICAgICAgICAgICAgIHkgPSB0LnBhZ2VZIC0gKHdpbmRvdy5zY3JvbGxZICsgcmVjdC50b3ApOwot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
fQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB4ID0gZXZlbnQucGFnZVggLSAod2lu
ZG93LnNjcm9sbFggKyByZWN0LmxlZnQpOwotICAgICAgICAgICAgeSA9IGV2ZW50LnBhZ2VZIC0g
KHdpbmRvdy5zY3JvbGxZICsgcmVjdC50b3ApOwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyB0
aGUgY2FudmFzIG1pZ2h0IGJlIENTUy1zY2FsZWQgY29tcGFyZWQgdG8gaXRzIGJhY2tidWZmZXI7
Ci0gICAgICAgICAgLy8gU0RMLXVzaW5nIGNvbnRlbnQgd2lsbCB3YW50IG1vdXNlIGNvb3JkaW5h
dGVzIGluIHRlcm1zCi0gICAgICAgICAgLy8gb2YgYmFja2J1ZmZlciB1bml0cy4KLSAgICAgICAg
ICB2YXIgY3cgPSBNb2R1bGVbImNhbnZhcyJdLndpZHRoOwotICAgICAgICAgIHZhciBjaCA9IE1v
ZHVsZVsiY2FudmFzIl0uaGVpZ2h0OwotICAgICAgICAgIHggPSB4ICogKGN3IC8gcmVjdC53aWR0
aCk7Ci0gICAgICAgICAgeSA9IHkgKiAoY2ggLyByZWN0LmhlaWdodCk7Ci0gICAgICAgICAgQnJv
d3Nlci5tb3VzZU1vdmVtZW50WCA9IHggLSBCcm93c2VyLm1vdXNlWDsKLSAgICAgICAgICBCcm93
c2VyLm1vdXNlTW92ZW1lbnRZID0geSAtIEJyb3dzZXIubW91c2VZOwotICAgICAgICAgIEJyb3dz
ZXIubW91c2VYID0geDsKLSAgICAgICAgICBCcm93c2VyLm1vdXNlWSA9IHk7Ci0gICAgICAgIH0K
LSAgICAgIH0seGhyTG9hZDpmdW5jdGlvbiAodXJsLCBvbmxvYWQsIG9uZXJyb3IpIHsKLSAgICAg
ICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgICAgICB4aHIub3BlbignR0VU
JywgdXJsLCB0cnVlKTsKLSAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcic7
Ci0gICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICBpZiAoeGhyLnN0
YXR1cyA9PSAyMDAgfHwgKHhoci5zdGF0dXMgPT0gMCAmJiB4aHIucmVzcG9uc2UpKSB7IC8vIGZp
bGUgVVJMcyBjYW4gcmV0dXJuIDAKLSAgICAgICAgICAgIG9ubG9hZCh4aHIucmVzcG9uc2UpOwot
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBvbmVycm9yKCk7Ci0gICAgICAgICAgfQot
ICAgICAgICB9OwotICAgICAgICB4aHIub25lcnJvciA9IG9uZXJyb3I7Ci0gICAgICAgIHhoci5z
ZW5kKG51bGwpOwotICAgICAgfSxhc3luY0xvYWQ6ZnVuY3Rpb24gKHVybCwgb25sb2FkLCBvbmVy
cm9yLCBub1J1bkRlcCkgewotICAgICAgICBCcm93c2VyLnhockxvYWQodXJsLCBmdW5jdGlvbihh
cnJheUJ1ZmZlcikgewotICAgICAgICAgIGFzc2VydChhcnJheUJ1ZmZlciwgJ0xvYWRpbmcgZGF0
YSBmaWxlICInICsgdXJsICsgJyIgZmFpbGVkIChubyBhcnJheUJ1ZmZlcikuJyk7Ci0gICAgICAg
ICAgb25sb2FkKG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKSk7Ci0gICAgICAgICAgaWYgKCFu
b1J1bkRlcCkgcmVtb3ZlUnVuRGVwZW5kZW5jeSgnYWwgJyArIHVybCk7Ci0gICAgICAgIH0sIGZ1
bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgaWYgKG9uZXJyb3IpIHsKLSAgICAgICAgICAgIG9u
ZXJyb3IoKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhyb3cgJ0xvYWRpbmcg
ZGF0YSBmaWxlICInICsgdXJsICsgJyIgZmFpbGVkLic7Ci0gICAgICAgICAgfQotICAgICAgICB9
KTsKLSAgICAgICAgaWYgKCFub1J1bkRlcCkgYWRkUnVuRGVwZW5kZW5jeSgnYWwgJyArIHVybCk7
Ci0gICAgICB9LHJlc2l6ZUxpc3RlbmVyczpbXSx1cGRhdGVSZXNpemVMaXN0ZW5lcnM6ZnVuY3Rp
b24gKCkgewotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAg
QnJvd3Nlci5yZXNpemVMaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbihsaXN0ZW5lcikgewotICAg
ICAgICAgIGxpc3RlbmVyKGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Ci0gICAgICAgIH0p
OwotICAgICAgfSxzZXRDYW52YXNTaXplOmZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0LCBub1VwZGF0
ZXMpIHsKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIGNh
bnZhcy53aWR0aCA9IHdpZHRoOwotICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0OwotICAg
ICAgICBpZiAoIW5vVXBkYXRlcykgQnJvd3Nlci51cGRhdGVSZXNpemVMaXN0ZW5lcnMoKTsKLSAg
ICAgIH0sd2luZG93ZWRXaWR0aDowLHdpbmRvd2VkSGVpZ2h0OjAsc2V0RnVsbFNjcmVlbkNhbnZh
c1NpemU6ZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMn
XTsKLSAgICAgICAgdGhpcy53aW5kb3dlZFdpZHRoID0gY2FudmFzLndpZHRoOwotICAgICAgICB0
aGlzLndpbmRvd2VkSGVpZ2h0ID0gY2FudmFzLmhlaWdodDsKLSAgICAgICAgY2FudmFzLndpZHRo
ID0gc2NyZWVuLndpZHRoOwotICAgICAgICBjYW52YXMuaGVpZ2h0ID0gc2NyZWVuLmhlaWdodDsK
LSAgICAgICAgLy8gY2hlY2sgaWYgU0RMIGlzIGF2YWlsYWJsZSAgIAotICAgICAgICBpZiAodHlw
ZW9mIFNETCAhPSAidW5kZWZpbmVkIikgewotICAgICAgICAJdmFyIGZsYWdzID0gSEVBUFUzMlso
KFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXTsKLSAgICAgICAgCWZsYWdz
ID0gZmxhZ3MgfCAweDAwODAwMDAwOyAvLyBzZXQgU0RMX0ZVTExTQ1JFRU4gZmxhZwotICAgICAg
ICAJSEVBUDMyWygoU0RMLnNjcmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+MildPWZsYWdz
Ci0gICAgICAgIH0KLSAgICAgICAgQnJvd3Nlci51cGRhdGVSZXNpemVMaXN0ZW5lcnMoKTsKLSAg
ICAgIH0sc2V0V2luZG93ZWRDYW52YXNTaXplOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIGNh
bnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIGNhbnZhcy53aWR0aCA9IHRoaXMud2lu
ZG93ZWRXaWR0aDsKLSAgICAgICAgY2FudmFzLmhlaWdodCA9IHRoaXMud2luZG93ZWRIZWlnaHQ7
Ci0gICAgICAgIC8vIGNoZWNrIGlmIFNETCBpcyBhdmFpbGFibGUgICAgICAgCi0gICAgICAgIGlm
ICh0eXBlb2YgU0RMICE9ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgIAl2YXIgZmxhZ3MgPSBIRUFQ
VTMyWygoU0RMLnNjcmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+MildOwotICAgICAgICAJ
ZmxhZ3MgPSBmbGFncyAmIH4weDAwODAwMDAwOyAvLyBjbGVhciBTRExfRlVMTFNDUkVFTiBmbGFn
Ci0gICAgICAgIAlIRUFQMzJbKChTREwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4y
KV09ZmxhZ3MKLSAgICAgICAgfQotICAgICAgICBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVy
cygpOwotICAgICAgfX07Ci1fbGx2bV9laF9leGNlcHRpb24uYnVmID0gYWxsb2NhdGUoMTIsICJ2
b2lkKiIsIEFMTE9DX1NUQVRJQyk7Ci1GUy5zdGF0aWNJbml0KCk7X19BVElOSVRfXy51bnNoaWZ0
KHsgZnVuYzogZnVuY3Rpb24oKSB7IGlmICghTW9kdWxlWyJub0ZTSW5pdCJdICYmICFGUy5pbml0
LmluaXRpYWxpemVkKSBGUy5pbml0KCkgfSB9KTtfX0FUTUFJTl9fLnB1c2goeyBmdW5jOiBmdW5j
dGlvbigpIHsgRlMuaWdub3JlUGVybWlzc2lvbnMgPSBmYWxzZSB9IH0pO19fQVRFWElUX18ucHVz
aCh7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBGUy5xdWl0KCkgfSB9KTtNb2R1bGVbIkZTX2NyZWF0ZUZv
bGRlciJdID0gRlMuY3JlYXRlRm9sZGVyO01vZHVsZVsiRlNfY3JlYXRlUGF0aCJdID0gRlMuY3Jl
YXRlUGF0aDtNb2R1bGVbIkZTX2NyZWF0ZURhdGFGaWxlIl0gPSBGUy5jcmVhdGVEYXRhRmlsZTtN
b2R1bGVbIkZTX2NyZWF0ZVByZWxvYWRlZEZpbGUiXSA9IEZTLmNyZWF0ZVByZWxvYWRlZEZpbGU7
TW9kdWxlWyJGU19jcmVhdGVMYXp5RmlsZSJdID0gRlMuY3JlYXRlTGF6eUZpbGU7TW9kdWxlWyJG
U19jcmVhdGVMaW5rIl0gPSBGUy5jcmVhdGVMaW5rO01vZHVsZVsiRlNfY3JlYXRlRGV2aWNlIl0g
PSBGUy5jcmVhdGVEZXZpY2U7Ci1fX19lcnJub19zdGF0ZSA9IFJ1bnRpbWUuc3RhdGljQWxsb2Mo
NCk7IEhFQVAzMlsoKF9fX2Vycm5vX3N0YXRlKT4+MildPTA7Ci1fZmdldGMucmV0ID0gYWxsb2Nh
dGUoWzBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOwotTW9kdWxlWyJyZXF1ZXN0RnVsbFNjcmVlbiJd
ID0gZnVuY3Rpb24obG9ja1BvaW50ZXIsIHJlc2l6ZUNhbnZhcykgeyBCcm93c2VyLnJlcXVlc3RG
dWxsU2NyZWVuKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMpIH07Ci0gIE1vZHVsZVsicmVxdWVz
dEFuaW1hdGlvbkZyYW1lIl0gPSBmdW5jdGlvbihmdW5jKSB7IEJyb3dzZXIucmVxdWVzdEFuaW1h
dGlvbkZyYW1lKGZ1bmMpIH07Ci0gIE1vZHVsZVsic2V0Q2FudmFzU2l6ZSJdID0gZnVuY3Rpb24o
d2lkdGgsIGhlaWdodCwgbm9VcGRhdGVzKSB7IEJyb3dzZXIuc2V0Q2FudmFzU2l6ZSh3aWR0aCwg
aGVpZ2h0LCBub1VwZGF0ZXMpIH07Ci0gIE1vZHVsZVsicGF1c2VNYWluTG9vcCJdID0gZnVuY3Rp
b24oKSB7IEJyb3dzZXIubWFpbkxvb3AucGF1c2UoKSB9OwotICBNb2R1bGVbInJlc3VtZU1haW5M
b29wIl0gPSBmdW5jdGlvbigpIHsgQnJvd3Nlci5tYWluTG9vcC5yZXN1bWUoKSB9OwotICBNb2R1
bGVbImdldFVzZXJNZWRpYSJdID0gZnVuY3Rpb24oKSB7IEJyb3dzZXIuZ2V0VXNlck1lZGlhKCkg
fQotU1RBQ0tfQkFTRSA9IFNUQUNLVE9QID0gUnVudGltZS5hbGlnbk1lbW9yeShTVEFUSUNUT1Ap
Owotc3RhdGljU2VhbGVkID0gdHJ1ZTsgLy8gc2VhbCB0aGUgc3RhdGljIHBvcnRpb24gb2YgbWVt
b3J5Ci1TVEFDS19NQVggPSBTVEFDS19CQVNFICsgNTI0Mjg4MDsKLURZTkFNSUNfQkFTRSA9IERZ
TkFNSUNUT1AgPSBSdW50aW1lLmFsaWduTWVtb3J5KFNUQUNLX01BWCk7Ci1hc3NlcnQoRFlOQU1J
Q19CQVNFIDwgVE9UQUxfTUVNT1JZKTsgLy8gU3RhY2sgbXVzdCBmaXQgaW4gVE9UQUxfTUVNT1JZ
OyBhbGxvY2F0aW9ucyBmcm9tIGhlcmUgb24gbWF5IGVubGFyZ2UgVE9UQUxfTUVNT1JZCi0gdmFy
IGN0dHpfaTggPSBhbGxvY2F0ZShbOCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAs
MSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwx
LDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw2LDAsMSwwLDIsMCwxLDAsMywwLDEs
MCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEsMCwyLDAsMSww
LDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDcsMCwxLDAs
MiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1
LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIs
MCwxLDAsNiwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMyww
LDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAs
MSwwLDMsMCwxLDAsMiwwLDEsMF0sICJpOCIsIEFMTE9DX0RZTkFNSUMpOwotdmFyIE1hdGhfbWlu
ID0gTWF0aC5taW47Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1
KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaSJdKGluZGV4LGExLGEyLGEz
LGE0LGE1KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAm
JiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwot
ICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYs
YTcpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWkiXShpbmRleCxhMSxh
MixhMyxhNCxhNSxhNixhNyk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0g
J251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXci
XSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpKGluZGV4LGExKSB7Ci0gIHRyeSB7
Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpIl0oaW5kZXgsYTEpOwotICB9IGNhdGNoKGUpIHsKLSAg
ICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsK
LSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWko
aW5kZXgsYTEsYTIpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmlpIl0oaW5kZXgs
YTEsYTIpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYm
IGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0g
IH0KLX0KLWZ1bmN0aW9uIGludm9rZV9paWkoaW5kZXgsYTEsYTIpIHsKLSAgdHJ5IHsKLSAgICBy
ZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaSJdKGluZGV4LGExLGEyKTsKLSAgfSBjYXRjaChlKSB7
Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93
IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2Vf
aWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1KSB7Ci0gIHRyeSB7Ci0gICAgcmV0dXJuIE1vZHVs
ZVsiZHluQ2FsbF9paWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxhNSk7Ci0gIH0gY2F0Y2goZSkg
ewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJv
dyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tl
X2lpKGluZGV4LGExKSB7Ci0gIHRyeSB7Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paSJd
KGluZGV4LGExKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVy
JyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDAp
OwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfaWlpaShpbmRleCxhMSxhMixhMykgewotICB0cnkg
ewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaSJdKGluZGV4LGExLGEyLGEzKTsKLSAg
fSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9u
Z2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5j
dGlvbiBpbnZva2VfdmlpaWlpZihpbmRleCxhMSxhMixhMyxhNCxhNSxhNikgewotICB0cnkgewot
ICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlmIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYpOwot
ICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICds
b25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1
bmN0aW9uIGludm9rZV92aWlpKGluZGV4LGExLGEyLGEzKSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxl
WyJkeW5DYWxsX3ZpaWkiXShpbmRleCxhMSxhMixhMyk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlm
ICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAg
IGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlp
aShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCkgewotICB0cnkgewotICAgIE1vZHVsZVsi
ZHluQ2FsbF92aWlpaWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCk7Ci0gIH0g
Y2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdq
bXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rp
b24gaW52b2tlX3YoaW5kZXgpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdiJdKGlu
ZGV4KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBl
ICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9
Ci19Ci1mdW5jdGlvbiBpbnZva2VfaWlpaWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3
LGE4KSB7Ci0gIHRyeSB7Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWkiXShp
bmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0
eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFz
bVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpaWko
aW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgsYTkpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVb
ImR5bkNhbGxfdmlpaWlpaWlpaSJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4LGE5KTsK
LSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAn
bG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1m
dW5jdGlvbiBpbnZva2VfdmlpaWlpaWYoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcpIHsKLSAg
dHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWYiXShpbmRleCxhMSxhMixhMyxhNCxh
NSxhNixhNyk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicg
JiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsK
LSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYp
IHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaSJdKGluZGV4LGExLGEyLGEz
LGE0LGE1LGE2KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVy
JyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDAp
OwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQpIHsKLSAg
dHJ5IHsKLSAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpIl0oaW5kZXgsYTEsYTIsYTMs
YTQpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUg
IT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0K
LX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaShpbmRleCxhMSxhMixhMyxhNCkgewotICB0cnkgewot
ICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaSJdKGluZGV4LGExLGEyLGEzLGE0KTsKLSAgfSBjYXRj
aChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcp
IHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBh
c21QcmludEludCh4LCB5KSB7Ci0gIE1vZHVsZS5wcmludCgnaW50ICcgKyB4ICsgJywnICsgeSk7
Ly8gKyAnICcgKyBuZXcgRXJyb3IoKS5zdGFjayk7Ci19Ci1mdW5jdGlvbiBhc21QcmludEZsb2F0
KHgsIHkpIHsKLSAgTW9kdWxlLnByaW50KCdmbG9hdCAnICsgeCArICcsJyArIHkpOy8vICsgJyAn
ICsgbmV3IEVycm9yKCkuc3RhY2spOwotfQotLy8gRU1TQ1JJUFRFTl9TVEFSVF9BU00KLXZhciBh
c209KGZ1bmN0aW9uKGdsb2JhbCxlbnYsYnVmZmVyKXsidXNlIGFzbSI7dmFyIGE9bmV3IGdsb2Jh
bC5JbnQ4QXJyYXkoYnVmZmVyKTt2YXIgYj1uZXcgZ2xvYmFsLkludDE2QXJyYXkoYnVmZmVyKTt2
YXIgYz1uZXcgZ2xvYmFsLkludDMyQXJyYXkoYnVmZmVyKTt2YXIgZD1uZXcgZ2xvYmFsLlVpbnQ4
QXJyYXkoYnVmZmVyKTt2YXIgZT1uZXcgZ2xvYmFsLlVpbnQxNkFycmF5KGJ1ZmZlcik7dmFyIGY9
bmV3IGdsb2JhbC5VaW50MzJBcnJheShidWZmZXIpO3ZhciBnPW5ldyBnbG9iYWwuRmxvYXQzMkFy
cmF5KGJ1ZmZlcik7dmFyIGg9bmV3IGdsb2JhbC5GbG9hdDY0QXJyYXkoYnVmZmVyKTt2YXIgaT1l
bnYuU1RBQ0tUT1B8MDt2YXIgaj1lbnYuU1RBQ0tfTUFYfDA7dmFyIGs9ZW52LnRlbXBEb3VibGVQ
dHJ8MDt2YXIgbD1lbnYuQUJPUlR8MDt2YXIgbT1lbnYuY3R0el9pOHwwO3ZhciBuPWVudi5jdGx6
X2k4fDA7dmFyIG89ZW52Ll9zdGRpbnwwO3ZhciBwPWVudi5fX1pUVk4xMF9fY3h4YWJpdjExN19f
Y2xhc3NfdHlwZV9pbmZvRXwwO3ZhciBxPWVudi5fX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xh
c3NfdHlwZV9pbmZvRXwwO3ZhciByPWVudi5fc3RkZXJyfDA7dmFyIHM9ZW52Ll9fX2ZzbXU4fDA7
dmFyIHQ9ZW52Ll9zdGRvdXR8MDt2YXIgdT1lbnYuX19fZHNvX2hhbmRsZXwwO3ZhciB2PStlbnYu
TmFOO3ZhciB3PStlbnYuSW5maW5pdHk7dmFyIHg9MDt2YXIgeT0wO3ZhciB6PTA7dmFyIEE9MDt2
YXIgQj0wLEM9MCxEPTAsRT0wLEY9MC4wLEc9MCxIPTAsST0wLEo9MC4wO3ZhciBLPTA7dmFyIEw9
MDt2YXIgTT0wO3ZhciBOPTA7dmFyIE89MDt2YXIgUD0wO3ZhciBRPTA7dmFyIFI9MDt2YXIgUz0w
O3ZhciBUPTA7dmFyIFU9Z2xvYmFsLk1hdGguZmxvb3I7dmFyIFY9Z2xvYmFsLk1hdGguYWJzO3Zh
ciBXPWdsb2JhbC5NYXRoLnNxcnQ7dmFyIFg9Z2xvYmFsLk1hdGgucG93O3ZhciBZPWdsb2JhbC5N
YXRoLmNvczt2YXIgWj1nbG9iYWwuTWF0aC5zaW47dmFyIF89Z2xvYmFsLk1hdGgudGFuO3ZhciAk
PWdsb2JhbC5NYXRoLmFjb3M7dmFyIGFhPWdsb2JhbC5NYXRoLmFzaW47dmFyIGFiPWdsb2JhbC5N
YXRoLmF0YW47dmFyIGFjPWdsb2JhbC5NYXRoLmF0YW4yO3ZhciBhZD1nbG9iYWwuTWF0aC5leHA7
dmFyIGFlPWdsb2JhbC5NYXRoLmxvZzt2YXIgYWY9Z2xvYmFsLk1hdGguY2VpbDt2YXIgYWc9Z2xv
YmFsLk1hdGguaW11bDt2YXIgYWg9ZW52LmFib3J0O3ZhciBhaT1lbnYuYXNzZXJ0O3ZhciBhaj1l
bnYuYXNtUHJpbnRJbnQ7dmFyIGFrPWVudi5hc21QcmludEZsb2F0O3ZhciBhbD1lbnYubWluO3Zh
ciBhbT1lbnYuaW52b2tlX3ZpaWlpaTt2YXIgYW49ZW52Lmludm9rZV92aWlpaWlpaTt2YXIgYW89
ZW52Lmludm9rZV92aTt2YXIgYXA9ZW52Lmludm9rZV92aWk7dmFyIGFxPWVudi5pbnZva2VfaWlp
O3ZhciBhcj1lbnYuaW52b2tlX2lpaWlpaTt2YXIgYXM9ZW52Lmludm9rZV9paTt2YXIgYXQ9ZW52
Lmludm9rZV9paWlpO3ZhciBhdT1lbnYuaW52b2tlX3ZpaWlpaWY7dmFyIGF2PWVudi5pbnZva2Vf
dmlpaTt2YXIgYXc9ZW52Lmludm9rZV92aWlpaWlpaWk7dmFyIGF4PWVudi5pbnZva2Vfdjt2YXIg
YXk9ZW52Lmludm9rZV9paWlpaWlpaWk7dmFyIGF6PWVudi5pbnZva2VfdmlpaWlpaWlpaTt2YXIg
YUE9ZW52Lmludm9rZV92aWlpaWlpZjt2YXIgYUI9ZW52Lmludm9rZV92aWlpaWlpO3ZhciBhQz1l
bnYuaW52b2tlX2lpaWlpO3ZhciBhRD1lbnYuaW52b2tlX3ZpaWlpO3ZhciBhRT1lbnYuX2xsdm1f
bGlmZXRpbWVfZW5kO3ZhciBhRj1lbnYuX19zY2FuU3RyaW5nO3ZhciBhRz1lbnYuX3B0aHJlYWRf
bXV0ZXhfbG9jazt2YXIgYUg9ZW52Ll9fX2N4YV9lbmRfY2F0Y2g7dmFyIGFJPWVudi5fc3RydG91
bGw7dmFyIGFKPWVudi5fX2lzRmxvYXQ7dmFyIGFLPWVudi5fZmZsdXNoO3ZhciBhTD1lbnYuX19p
c0xlYXBZZWFyO3ZhciBhTT1lbnYuX2Z3cml0ZTt2YXIgYU49ZW52Ll9zZW5kO3ZhciBhTz1lbnYu
X2xsdm1fdW11bF93aXRoX292ZXJmbG93X2kzMjt2YXIgYVA9ZW52Ll9pc3NwYWNlO3ZhciBhUT1l
bnYuX3JlYWQ7dmFyIGFSPWVudi5fX19jeGFfZ3VhcmRfYWJvcnQ7dmFyIGFTPWVudi5fbmV3bG9j
YWxlO3ZhciBhVD1lbnYuX19fZ3h4X3BlcnNvbmFsaXR5X3YwO3ZhciBhVT1lbnYuX3B0aHJlYWRf
Y29uZF93YWl0O3ZhciBhVj1lbnYuX19fY3hhX3JldGhyb3c7dmFyIGFXPWVudi5fX19yZXN1bWVF
eGNlcHRpb247dmFyIGFYPWVudi5fbGx2bV92YV9lbmQ7dmFyIGFZPWVudi5fdnNzY2FuZjt2YXIg
YVo9ZW52Ll9zbnByaW50Zjt2YXIgYV89ZW52Ll9mZ2V0Yzt2YXIgYSQ9ZW52Ll9hdGV4aXQ7dmFy
IGEwPWVudi5fX19jeGFfZnJlZV9leGNlcHRpb247dmFyIGExPWVudi5fX1o4Y2F0Y2xvc2VQOF9u
bF9jYXRkO3ZhciBhMj1lbnYuX19fc2V0RXJyTm87dmFyIGEzPWVudi5faXN4ZGlnaXQ7dmFyIGE0
PWVudi5fZXhpdDt2YXIgYTU9ZW52Ll9zcHJpbnRmO3ZhciBhNj1lbnYuX19fY3R5cGVfYl9sb2M7
dmFyIGE3PWVudi5fZnJlZWxvY2FsZTt2YXIgYTg9ZW52Ll9fWjdjYXRvcGVuUEtjaTt2YXIgYTk9
ZW52Ll9hc3ByaW50Zjt2YXIgYmE9ZW52Ll9fX2N4YV9pc19udW1iZXJfdHlwZTt2YXIgYmI9ZW52
Ll9fX2N4YV9kb2VzX2luaGVyaXQ7dmFyIGJjPWVudi5fX19jeGFfZ3VhcmRfYWNxdWlyZTt2YXIg
YmQ9ZW52Ll9fX2xvY2FsZV9tYl9jdXJfbWF4O3ZhciBiZT1lbnYuX19fY3hhX2JlZ2luX2NhdGNo
O3ZhciBiZj1lbnYuX3JlY3Y7dmFyIGJnPWVudi5fX3BhcnNlSW50NjQ7dmFyIGJoPWVudi5fX1pT
dDE4dW5jYXVnaHRfZXhjZXB0aW9udjt2YXIgYmk9ZW52Ll9fX2N4YV9jYWxsX3VuZXhwZWN0ZWQ7
dmFyIGJqPWVudi5fX2V4aXQ7dmFyIGJrPWVudi5fc3RyZnRpbWU7dmFyIGJsPWVudi5fX19jeGFf
dGhyb3c7dmFyIGJtPWVudi5fbGx2bV9laF9leGNlcHRpb247dmFyIGJuPWVudi5fcHJlYWQ7dmFy
IGJvPWVudi5fX2FycmF5U3VtO3ZhciBicD1lbnYuX2xvZzt2YXIgYnE9ZW52Ll9fX2N4YV9maW5k
X21hdGNoaW5nX2NhdGNoO3ZhciBicj1lbnYuX19mb3JtYXRTdHJpbmc7dmFyIGJzPWVudi5fcHRo
cmVhZF9jb25kX2Jyb2FkY2FzdDt2YXIgYnQ9ZW52Ll9fWlN0OXRlcm1pbmF0ZXY7dmFyIGJ1PWVu
di5fcHRocmVhZF9tdXRleF91bmxvY2s7dmFyIGJ2PWVudi5fc2Jyazt2YXIgYnc9ZW52Ll9fX2Vy
cm5vX2xvY2F0aW9uO3ZhciBieD1lbnYuX3N0cmVycm9yO3ZhciBieT1lbnYuX2xsdm1fbGlmZXRp
bWVfc3RhcnQ7dmFyIGJ6PWVudi5fX19jeGFfZ3VhcmRfcmVsZWFzZTt2YXIgYkE9ZW52Ll91bmdl
dGM7dmFyIGJCPWVudi5fdXNlbG9jYWxlO3ZhciBiQz1lbnYuX3ZzbnByaW50Zjt2YXIgYkQ9ZW52
Ll9zc2NhbmY7dmFyIGJFPWVudi5fc3lzY29uZjt2YXIgYkY9ZW52Ll9mcmVhZDt2YXIgYkc9ZW52
Ll9hYm9ydDt2YXIgYkg9ZW52Ll9pc2RpZ2l0O3ZhciBiST1lbnYuX3N0cnRvbGw7dmFyIGJKPWVu
di5fX2FkZERheXM7dmFyIGJLPWVudi5fZmxvb3I7dmFyIGJMPWVudi5fX3JlYWxseU5lZ2F0aXZl
O3ZhciBiTT1lbnYuX19aN2NhdGdldHNQOF9ubF9jYXRkaWlQS2M7dmFyIGJOPWVudi5fd3JpdGU7
dmFyIGJPPWVudi5fX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uO3ZhciBiUD1lbnYuX19fY3hhX3B1
cmVfdmlydHVhbDt2YXIgYlE9ZW52Ll92YXNwcmludGY7dmFyIGJSPWVudi5fX19jdHlwZV90b3Vw
cGVyX2xvYzt2YXIgYlM9ZW52Ll9fX2N0eXBlX3RvbG93ZXJfbG9jO3ZhciBiVD1lbnYuX3B3cml0
ZTt2YXIgYlU9ZW52Ll9zdHJlcnJvcl9yO3ZhciBiVj1lbnYuX3RpbWU7Ci0vLyBFTVNDUklQVEVO
X1NUQVJUX0ZVTkNTCi1mdW5jdGlvbiBjYyhhKXthPWF8MDt2YXIgYj0wO2I9aTtpPWkrYXwwO2k9
aSs3Pj4zPDwzO3JldHVybiBifDB9ZnVuY3Rpb24gY2QoKXtyZXR1cm4gaXwwfWZ1bmN0aW9uIGNl
KGEpe2E9YXwwO2k9YX1mdW5jdGlvbiBjZihhLGIpe2E9YXwwO2I9YnwwO2lmKCh4fDApPT0wKXt4
PWE7eT1ifX1mdW5jdGlvbiBjZyhiKXtiPWJ8MDthW2tdPWFbYl07YVtrKzF8MF09YVtiKzF8MF07
YVtrKzJ8MF09YVtiKzJ8MF07YVtrKzN8MF09YVtiKzN8MF19ZnVuY3Rpb24gY2goYil7Yj1ifDA7
YVtrXT1hW2JdO2FbaysxfDBdPWFbYisxfDBdO2FbaysyfDBdPWFbYisyfDBdO2FbayszfDBdPWFb
YiszfDBdO2Fbays0fDBdPWFbYis0fDBdO2Fbays1fDBdPWFbYis1fDBdO2Fbays2fDBdPWFbYis2
fDBdO2Fbays3fDBdPWFbYis3fDBdfWZ1bmN0aW9uIGNpKGEpe2E9YXwwO0s9YX1mdW5jdGlvbiBj
aihhKXthPWF8MDtMPWF9ZnVuY3Rpb24gY2soYSl7YT1hfDA7TT1hfWZ1bmN0aW9uIGNsKGEpe2E9
YXwwO049YX1mdW5jdGlvbiBjbShhKXthPWF8MDtPPWF9ZnVuY3Rpb24gY24oYSl7YT1hfDA7UD1h
fWZ1bmN0aW9uIGNvKGEpe2E9YXwwO1E9YX1mdW5jdGlvbiBjcChhKXthPWF8MDtSPWF9ZnVuY3Rp
b24gY3EoYSl7YT1hfDA7Uz1hfWZ1bmN0aW9uIGNyKGEpe2E9YXwwO1Q9YX1mdW5jdGlvbiBjcygp
e2NbcSs4Pj4yXT0yNTA7Y1txKzEyPj4yXT0xMjg7Y1txKzE2Pj4yXT02MjtjW3ErMjA+PjJdPTE1
MDtjW3ErMjQ+PjJdPTg7Y1txKzI4Pj4yXT0xMDtjW3ErMzI+PjJdPTI7Y1txKzM2Pj4yXT0yO2Nb
cCs4Pj4yXT0yNTA7Y1twKzEyPj4yXT0yNDQ7Y1twKzE2Pj4yXT02MjtjW3ArMjA+PjJdPTE1MDtj
W3ArMjQ+PjJdPTg7Y1twKzI4Pj4yXT0yNjtjW3ArMzI+PjJdPTQ7Y1twKzM2Pj4yXT04O2NbMjAz
Nl09cCs4O2NbMjAzOF09cCs4O2NbMjA0MF09cSs4O2NbMjA0NF09cSs4O2NbMjA0OF09cSs4O2Nb
MjA1Ml09cSs4O2NbMjA1Nl09cSs4O2NbMjA2MF09cCs4O2NbMjA5NF09cSs4O2NbMjA5OF09cSs4
O2NbMjE2Ml09cSs4O2NbMjE2Nl09cSs4O2NbMjE4Nl09cCs4O2NbMjE4OF09cSs4O2NbMjIyNF09
cSs4O2NbMjIyOF09cSs4O2NbMjI2NF09cSs4O2NbMjI2OF09cSs4O2NbMjI4OF09cCs4O2NbMjI5
MF09cCs4O2NbMjI5Ml09cSs4O2NbMjI5Nl09cSs4O2NbMjMwMF09cSs4O2NbMjMwNF09cCs4O2Nb
MjMwNl09cCs4O2NbMjMwOF09cCs4O2NbMjMxMF09cCs4O2NbMjMxMl09cCs4O2NbMjMxNF09cCs4
O2NbMjMxNl09cCs4O2NbMjM0Ml09cSs4O2NbMjM0Nl09cCs4O2NbMjM0OF09cSs4O2NbMjM1Ml09
cSs4O2NbMjM1Nl09cSs4O2NbMjM2MF09cCs4O2NbMjM2Ml09cCs4O2NbMjM2NF09cCs4O2NbMjM2
Nl09cCs4O2NbMjQwMF09cCs4O2NbMjQwMl09cCs4O2NbMjQwNF09cCs4O2NbMjQwNl09cSs4O2Nb
MjQxMF09cSs4O2NbMjQxNF09cSs4O2NbMjQxOF09cSs4O2NbMjQyMl09cSs4O2NbMjQyNl09cSs4
fWZ1bmN0aW9uIGN0KGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9Y1thPj4yXXwwO2lmKChifDApPT0w
KXtyZXR1cm59ZD1hKzR8MDthPWNbZD4+Ml18MDtpZigoYnwwKSE9KGF8MCkpe2NbZD4+Ml09YSso
figoYS04KygtYnwwKXwwKT4+PjMpPDwzKX1rUyhiKTtyZXR1cm59ZnVuY3Rpb24gY3UoYSxiLGQp
e2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAuMCx3PTAseD0wLHk9MC4wLHo9MC4wO2Q9aTtp
PWkrMjR8MDtlPWR8MDtmPWQrOHwwO2c9ZnwwO2NbZz4+Ml09MDtqPWYrNHwwO2Nbaj4+Ml09MDtr
PWYrOHwwO2Nbaz4+Ml09MDtsPWItYXwwO209bD4+Mztkb3tpZigobXwwKT09MCl7bj0wO289MH1l
bHNle2lmKG0+Pj4wPjUzNjg3MDkxMSl7aXIoZil9cD1rTyhsKXwwO2Nbaj4+Ml09cDtjW2c+PjJd
PXA7Y1trPj4yXT1wKyhtPDwzKTtpZigoYXwwKT09KGJ8MCkpe249cDtvPXA7YnJlYWt9ZWxzZXtx
PWE7cj1wfWRve2lmKChyfDApPT0wKXtzPTB9ZWxzZXtoW3I+PjNdPStoW3E+PjNdO3M9Y1tqPj4y
XXwwfXI9cys4fDA7Y1tqPj4yXT1yO3E9cSs4fDA7fXdoaWxlKChxfDApIT0oYnwwKSk7bj1jW2c+
PjJdfDA7bz1yfX13aGlsZSgwKTtjVShuLG8sZSk7ZT1jW2c+PjJdfDA7bz1jW2o+PjJdfDA7TDIz
OmRve2lmKChlfDApPT0ob3wwKSl7dD1lfWVsc2V7bj1lO3doaWxlKDEpe3U9bis4fDA7aWYoKHV8
MCk9PShvfDApKXt0PWU7YnJlYWsgTDIzfXY9K2hbbj4+M107aWYodj09K2hbdT4+M10pe2JyZWFr
fWVsc2V7bj11fX1pZigobnwwKT09KG98MCkpe3Q9ZTticmVha31lbHNle3c9dTt4PW47eT12fUwy
ODp3aGlsZSgxKXtyPXc7ZG97cj1yKzh8MDtpZigocnwwKT09KG98MCkpe2JyZWFrIEwyOH16PSto
W3I+PjNdO313aGlsZSh5PT16KTtiPXgrOHwwO2hbYj4+M109ejt3PXI7eD1iO3k9en10PWNbZz4+
Ml18MH19d2hpbGUoMCk7aWYoKHR8MCk9PTApe2k9ZDtyZXR1cm59Zz1jW2o+PjJdfDA7aWYoKHR8
MCkhPShnfDApKXtjW2o+PjJdPWcrKH4oKGctOCsoLXR8MCl8MCk+Pj4zKTw8Myl9a1ModCk7aT1k
O3JldHVybn1mdW5jdGlvbiBjdihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAs
Zz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAuMCx4PTAuMCx5PTAsej0wLjA7ZD1pO2k9aSsyNHwwO2U9ZHwwO2Y9ZCs4fDA7Zz1mfDA7Y1tn
Pj4yXT0wO2o9Zis0fDA7Y1tqPj4yXT0wO2s9Zis4fDA7Y1trPj4yXT0wO2w9Yi1hfDA7bT1sPj4z
O2Rve2lmKChtfDApPT0wKXtuPTA7bz0wfWVsc2V7aWYobT4+PjA+NTM2ODcwOTExKXtpcihmKX1w
PWtPKGwpfDA7Y1tqPj4yXT1wO2NbZz4+Ml09cDtjW2s+PjJdPXArKG08PDMpO2lmKChhfDApPT0o
YnwwKSl7bj1wO289cDticmVha31lbHNle3E9YTtyPXB9ZG97aWYoKHJ8MCk9PTApe3M9MH1lbHNl
e2hbcj4+M109K2hbcT4+M107cz1jW2o+PjJdfDB9cj1zKzh8MDtjW2o+PjJdPXI7cT1xKzh8MDt9
d2hpbGUoKHF8MCkhPShifDApKTtuPWNbZz4+Ml18MDtvPXJ9fXdoaWxlKDApO2NVKG4sbyxlKTtl
PWNbZz4+Ml18MDtvPWNbaj4+Ml18MDtMNTg6ZG97aWYoKGV8MCk9PShvfDApKXt0PWU7dT02Mn1l
bHNle249ZTt3aGlsZSgxKXtyPW4rOHwwO2lmKChyfDApPT0ob3wwKSl7dj1lO2JyZWFrIEw1OH1p
ZigraFtuPj4zXT09K2hbcj4+M10pe3Q9bjt1PTYyO2JyZWFrfWVsc2V7bj1yfX19fXdoaWxlKDAp
O2Rve2lmKCh1fDApPT02Mil7aWYoKHR8MCk9PShvfDApKXt2PWU7YnJlYWt9bj10KzE2fDA7aWYo
KG58MCk9PShvfDApKXt2PWU7YnJlYWt9cj1uO249dDt3PStoW3Q+PjNdO3doaWxlKDEpe3g9K2hb
cj4+M107aWYodz09eCl7eT1uO3o9d31lbHNle2I9bis4fDA7aFtiPj4zXT14O3k9Yjt6PXh9Yj1y
Kzh8MDtpZigoYnwwKT09KG98MCkpe2JyZWFrfWVsc2V7cj1iO249eTt3PXp9fXY9Y1tnPj4yXXww
fX13aGlsZSgwKTtpZigodnwwKT09MCl7aT1kO3JldHVybn1nPWNbaj4+Ml18MDtpZigodnwwKSE9
KGd8MCkpe2Nbaj4+Ml09ZysofigoZy04KygtdnwwKXwwKT4+PjMpPDwzKX1rUyh2KTtpPWQ7cmV0
dXJufWZ1bmN0aW9uIGN3KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAs
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0w
LF89MCwkPTAsYWE9MCxhYj0wO2Q9aTtpPWkrOHwwO2U9ZHwwO2Y9ZTtnPWk7aT1pKzh8MDtqPWc7
az1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7bD1pO2k9aSs4fDA7bT1pO2k9aSs4fDA7bj1pO2k9aSsx
fDA7aT1pKzc+PjM8PDM7bz1pO2k9aSsyNHwwO3A9aTtpPWkrOHwwO3E9aTtpPWkrOHwwO3I9Yjtz
PXItYT4+MztoW3A+PjNdPTAuMDt0PW98MDt1PW8rNHwwO3Y9bys4fDA7ayQob3wwLDAsMjQpO2Rv
e2lmKChzfDApPT0wKXt3PTA7eD1vKzE2fDA7eT0wO3o9MDtBPTA7Qj0wfWVsc2V7Y08obyxzLHAp
O0M9Y1t1Pj4yXXwwO0Q9bysxNnwwO0U9Y1tEPj4yXXwwO0Y9Y1t2Pj4yXXwwO0c9QysoRT4+Pjk8
PDIpfDA7aWYoKEZ8MCk9PShDfDApKXt3PTA7eD1EO3k9Rjt6PUU7QT1DO0I9RzticmVha313PShj
W0c+PjJdfDApKygoRSY1MTEpPDwzKXwwO3g9RDt5PUY7ej1FO0E9QztCPUd9fXdoaWxlKDApO2lm
KChhfDApPT0oYnwwKSl7SD1BO0k9ejtKPXl9ZWxzZXt5PWE7YT13O3c9Qjt3aGlsZSgxKXtCPWE7
ej0oY1t3Pj4yXXwwKSs0MDk2LUI+PjM7QT15O3A9ci1BPj4zO2lmKChwfDApPih6fDApKXtLPXkr
KHo8PDMpfDA7TD16fWVsc2V7Sz1iO0w9cH1rXyhhfDAseXwwLEstQXwwKTtkb3tpZigoTHwwKT09
MCl7TT1hO049d31lbHNle0E9KEItKGNbdz4+Ml18MCk+PjMpK0x8MDtpZigoQXwwKT4wKXtwPXcr
KCgoQXwwKS81MTJ8MCk8PDIpfDA7TT0oY1twPj4yXXwwKSsoKChBfDApJTUxMnwwKTw8Myl8MDtO
PXA7YnJlYWt9ZWxzZXtwPTUxMS1BfDA7QT13KygoKHB8MCkvLTUxMnwwKTw8Mil8MDtNPShjW0E+
PjJdfDApKyg1MTEtKChwfDApJTUxMnwwKTw8Myl8MDtOPUE7YnJlYWt9fX13aGlsZSgwKTtpZigo
S3wwKT09KGJ8MCkpe2JyZWFrfWVsc2V7eT1LO2E9TTt3PU59fUg9Y1t1Pj4yXXwwO0k9Y1t4Pj4y
XXwwO0o9Y1t2Pj4yXXwwfU49SCsoST4+Pjk8PDIpfDA7aWYoKEp8MCk9PShIfDApKXtKPW8rMjB8
MDtPPTA7UD0wO1E9MDtSPTA7Uz1KO1Q9SCsoKEkrKGNbSj4+Ml18MCl8MCk+Pj45PDwyKXwwfWVs
c2V7Sj1vKzIwfDA7bz1JKyhjW0o+PjJdfDApfDA7dz1IKyhvPj4+OTw8Mil8MDtPPShjW3c+PjJd
fDApKygobyY1MTEpPDwzKXwwO1A9MDtRPShjW04+PjJdfDApKygoSSY1MTEpPDwzKXwwO1I9MDtT
PUo7VD13fWNbbD4+Ml09UnxOO2NbbCs0Pj4yXT1RO2NbbT4+Ml09UHxUO2NbbSs0Pj4yXT1PO2NL
KGwsbSxuKTtuPWNbdT4+Ml18MDttPWNbeD4+Ml18MDtsPW4rKG0+Pj45PDwyKXwwO2lmKChjW3Y+
PjJdfDApPT0obnwwKSl7VT0wO1Y9MDtXPTA7WD0wO1k9bisoKG0rKGNbUz4+Ml18MCl8MCk+Pj45
PDwyKXwwfWVsc2V7Tz1tKyhjW1M+PjJdfDApfDA7VD1uKyhPPj4+OTw8Mil8MDtVPShjW1Q+PjJd
fDApKygoTyY1MTEpPDwzKXwwO1Y9MDtXPShjW2w+PjJdfDApKygobSY1MTEpPDwzKXwwO1g9MDtZ
PVR9Y1tlPj4yXT1YfGw7Y1tlKzQ+PjJdPVc7Y1tnPj4yXT1WfFk7Y1tnKzQ+PjJdPVU7Y0kocSxm
LGosayk7az1jW3U+PjJdfDA7aj1jW3g+PjJdfDA7Zj1rKyhqPj4+OTw8Mil8MDtxPWNbdj4+Ml18
MDtpZigocXwwKT09KGt8MCkpe1o9MDtfPTB9ZWxzZXtVPShjW1M+PjJdfDApK2p8MDtaPShjW2sr
KFU+Pj45PDwyKT4+Ml18MCkrKChVJjUxMSk8PDMpfDA7Xz0oY1tmPj4yXXwwKSsoKGomNTExKTw8
Myl8MH1qPWY7Zj1fO0wxMTI6d2hpbGUoMSl7Xz1mO2Rve2lmKChffDApPT0oWnwwKSl7YnJlYWsg
TDExMn1fPV8rOHwwO313aGlsZSgoXy0oY1tqPj4yXXwwKXwwKSE9NDA5Nik7Xz1qKzR8MDtqPV87
Zj1jW18+PjJdfDB9Y1tTPj4yXT0wO1M9cS1rPj4yO2lmKFM+Pj4wPjIpe2Y9azt3aGlsZSgxKXtr
UyhjW2Y+PjJdfDApO2o9KGNbdT4+Ml18MCkrNHwwO2NbdT4+Ml09ajtaPWNbdj4+Ml18MDtfPVot
aj4+MjtpZihfPj4+MD4yKXtmPWp9ZWxzZXskPV87YWE9ajthYj1aO2JyZWFrfX19ZWxzZXskPVM7
YWE9azthYj1xfXN3aXRjaCgkfDApe2Nhc2UgMTp7Y1t4Pj4yXT0yNTY7YnJlYWt9O2Nhc2UgMjp7
Y1t4Pj4yXT01MTI7YnJlYWt9O2RlZmF1bHQ6e319ZG97aWYoKGFhfDApIT0oYWJ8MCkpe3g9YWE7
ZG97a1MoY1t4Pj4yXXwwKTt4PXgrNHwwO313aGlsZSgoeHwwKSE9KGFifDApKTt4PWNbdT4+Ml18
MDskPWNbdj4+Ml18MDtpZigoeHwwKT09KCR8MCkpe2JyZWFrfWNbdj4+Ml09JCsofigoJC00Kygt
eHwwKXwwKT4+PjIpPDwyKX19d2hpbGUoMCk7dj1jW3Q+PjJdfDA7aWYoKHZ8MCk9PTApe2k9ZDty
ZXR1cm59a1Modik7aT1kO3JldHVybn1mdW5jdGlvbiBjeChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1k
fDA7dmFyIGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLjAseT0wLHo9MDtkPWk7aT1pKzQ4fDA7ZT1kfDA7Zj1kKzh8
MDtnPWQrMTZ8MDtqPWQrMjR8MDtrPWQrMzJ8MDtsPWt8MDttPWs7Y1tsPj4yXT1tO249ays0fDA7
Y1tuPj4yXT1tO289ays4fDA7Y1tvPj4yXT0wO2lmKChhfDApPT0oYnwwKSl7cD1tO3E9MH1lbHNl
e2s9YTthPW07cj0wO3doaWxlKDEpe3M9a08oMTYpfDA7dD1zO3U9cys4fDA7aWYoKHV8MCkhPTAp
e2hbdT4+M109K2hbaz4+M119Y1thKzQ+PjJdPXQ7Y1tzPj4yXT1jW2w+PjJdO2NbbD4+Ml09dDtj
W3MrND4+Ml09bTt2PShjW28+PjJdfDApKzF8MDtjW28+PjJdPXY7cz1rKzh8MDtpZigoc3wwKT09
KGJ8MCkpe2JyZWFrfWVsc2V7az1zO2E9dDtyPXZ9fXA9Y1tuPj4yXXwwO3E9dn1jW2U+PjJdPXA7
Y1tmPj4yXT1tO2NKKGcsZSxmLHEsaik7aj1jW24+PjJdfDA7aWYoKGp8MCkhPShtfDApKXtxPWo7
d2hpbGUoMSl7aj1jW3ErND4+Ml18MDtMMTUwOmRve2lmKChqfDApPT0obXwwKSl7dz1tfWVsc2V7
eD0raFtxKzg+PjNdO2Y9ajt3aGlsZSgxKXtpZih4IT0raFtmKzg+PjNdKXt3PWY7YnJlYWsgTDE1
MH1lPWNbZis0Pj4yXXwwO2lmKChlfDApPT0obXwwKSl7dz1tO2JyZWFrfWVsc2V7Zj1lfX19fXdo
aWxlKDApO2lmKChqfDApPT0od3wwKSl7eT1qfWVsc2V7Zj0oY1t3Pj4yXXwwKSs0fDA7ZT1qfDA7
Y1soY1tlPj4yXXwwKSs0Pj4yXT1jW2Y+PjJdO2NbY1tmPj4yXT4+Ml09Y1tlPj4yXTtlPWo7d2hp
bGUoMSl7Zj1jW2UrND4+Ml18MDtjW28+PjJdPShjW28+PjJdfDApLTE7a1MoZSk7aWYoKGZ8MCk9
PSh3fDApKXt5PXc7YnJlYWt9ZWxzZXtlPWZ9fX1pZigoeXwwKT09KG18MCkpe2JyZWFrfWVsc2V7
cT15fX19aWYoKGNbbz4+Ml18MCk9PTApe2k9ZDtyZXR1cm59eT1jW24+PjJdfDA7bj0oY1tsPj4y
XXwwKSs0fDA7bD15fDA7Y1soY1tsPj4yXXwwKSs0Pj4yXT1jW24+PjJdO2NbY1tuPj4yXT4+Ml09
Y1tsPj4yXTtjW28+PjJdPTA7aWYoKHl8MCk9PShtfDApKXtpPWQ7cmV0dXJufWVsc2V7ej15fXdo
aWxlKDEpe3k9Y1t6KzQ+PjJdfDA7a1Moeik7aWYoKHl8MCk9PShtfDApKXticmVha31lbHNle3o9
eX19aT1kO3JldHVybn1mdW5jdGlvbiBjeShhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTA7ZD1p
O2k9aSszMnwwO2U9ZHwwO2Y9ZCs4fDA7Zz1kKzE2fDA7aj1nfDA7az1nKzR8MDtjW2s+PjJdPTA7
bD1nKzh8MDtjW2w+PjJdPTA7bT1rO2s9Z3wwO2Nbaz4+Ml09bTtpZigoYXwwKT09KGJ8MCkpe249
MDtjRShqLG4pO2k9ZDtyZXR1cm59bz1mfDA7cD1nKzR8MDtnPWE7ZG97Y1tvPj4yXT1tO2E9Y0go
aixmLGUsZyl8MDtpZigoY1thPj4yXXwwKT09MCl7cT1rTygyNCl8MDtyPXErMTZ8MDtpZigocnww
KSE9MCl7aFtyPj4zXT0raFtnPj4zXX1yPWNbZT4+Ml18MDtzPXE7Y1txPj4yXT0wO2NbcSs0Pj4y
XT0wO2NbcSs4Pj4yXT1yO2NbYT4+Ml09cztyPWNbY1trPj4yXT4+Ml18MDtpZigocnwwKT09MCl7
dD1zfWVsc2V7Y1trPj4yXT1yO3Q9Y1thPj4yXXwwfWNHKGNbcD4+Ml18MCx0KTtjW2w+PjJdPShj
W2w+PjJdfDApKzF9Zz1nKzh8MDt9d2hpbGUoKGd8MCkhPShifDApKTtuPWNbcD4+Ml18MDtjRShq
LG4pO2k9ZDtyZXR1cm59ZnVuY3Rpb24gY3ooYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MDtkPWk7aT1p
KzMyfDA7ZT1kfDA7Zj1kKzh8MDtnPWQrMTZ8MDtqPWd8MDtrPWcrNHwwO2Nbaz4+Ml09MDtsPWcr
OHwwO2NbbD4+Ml09MDttPWs7bj1nfDA7Y1tuPj4yXT1tO2Rve2lmKChhfDApIT0oYnwwKSl7bz1m
fDA7cD1nKzR8MDtxPWE7ZG97Y1tvPj4yXT1tO3I9Y0MoaixmLGUscSl8MDtzPWtPKDI0KXwwO3Q9
cysxNnwwO2lmKCh0fDApIT0wKXtoW3Q+PjNdPStoW3E+PjNdfXQ9Y1tlPj4yXXwwO3U9cztjW3M+
PjJdPTA7Y1tzKzQ+PjJdPTA7Y1tzKzg+PjJdPXQ7Y1tyPj4yXT11O3Q9Y1tjW24+PjJdPj4yXXww
O2lmKCh0fDApPT0wKXt2PXV9ZWxzZXtjW24+PjJdPXQ7dj1jW3I+PjJdfDB9Y0coY1twPj4yXXww
LHYpO2NbbD4+Ml09KGNbbD4+Ml18MCkrMTtxPXErOHwwO313aGlsZSgocXwwKSE9KGJ8MCkpO3E9
Y1tuPj4yXXwwO2lmKChxfDApPT0obXwwKSl7YnJlYWt9cD1rO289Zys0fDA7cj1xO0wyMDI6d2hp
bGUoMSl7cT1yfDA7dD1yKzR8MDt1PXIrMTZ8MDt3aGlsZSgxKXt3PWNbdD4+Ml18MDtpZigod3ww
KT09MCl7cz1xO3doaWxlKDEpe3g9Y1tzKzg+PjJdfDA7aWYoKHN8MCk9PShjW3g+PjJdfDApKXt5
PXg7YnJlYWt9ZWxzZXtzPXh9fX1lbHNle3M9dzt3aGlsZSgxKXt4PWNbcz4+Ml18MDtpZigoeHww
KT09MCl7eT1zO2JyZWFrfWVsc2V7cz14fX19cz15O2lmKCh5fDApPT0ocHwwKSl7ej1vO0E9MjEz
O2JyZWFrIEwyMDJ9aWYoK2hbdT4+M10hPStoW3krMTY+PjNdKXticmVha314PWNbeSs0Pj4yXXww
O2lmKCh4fDApPT0wKXtCPXk7d2hpbGUoMSl7Qz1jW0IrOD4+Ml18MDtpZigoQnwwKT09KGNbQz4+
Ml18MCkpe0Q9QzticmVha31lbHNle0I9Q319fWVsc2V7Qj14O3doaWxlKDEpe0M9Y1tCPj4yXXww
O2lmKChDfDApPT0wKXtEPUI7YnJlYWt9ZWxzZXtCPUN9fX1pZigoY1tuPj4yXXwwKT09KHN8MCkp
e2Nbbj4+Ml09RH1jW2w+PjJdPShjW2w+PjJdfDApLTE7Y0IoY1tvPj4yXXwwLHkpO2tTKHkpfWlm
KCh3fDApPT0wKXt1PXE7d2hpbGUoMSl7dD1jW3UrOD4+Ml18MDtpZigodXwwKT09KGNbdD4+Ml18
MCkpe0U9dDticmVha31lbHNle3U9dH19fWVsc2V7dT13O3doaWxlKDEpe3E9Y1t1Pj4yXXwwO2lm
KChxfDApPT0wKXtFPXU7YnJlYWt9ZWxzZXt1PXF9fX1pZigoRXwwKT09KHB8MCkpe3o9bztBPTIx
NDticmVha31lbHNle3I9RX19aWYoKEF8MCk9PTIxNCl7Rj1jW3o+PjJdfDA7Rz1GO2NFKGosRyk7
aT1kO3JldHVybn1lbHNlIGlmKChBfDApPT0yMTMpe0Y9Y1t6Pj4yXXwwO0c9RjtjRShqLEcpO2k9
ZDtyZXR1cm59fX13aGlsZSgwKTt6PWcrNHwwO0Y9Y1t6Pj4yXXwwO0c9RjtjRShqLEcpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gY0EoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MC4wLGc9MCxqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLjAseD0w
LHk9MCx6PTAuMCxBPTAsQj0wLjAsQz0wLEQ9MCxFPTAsRj0wLjAsRz0wLEg9MCxJPTAuMCxKPTAu
MCxMPTAsTT0wLE49MCxPPTAsUD0wO2I9aTtpPWkrMjR8MDtkPWJ8MDtlPWIrOHwwO2Y9KyhhfDAp
O2c9fn4rVSgrKDE5OTMxNTY4LjU2OTMyNDE3My8oZiooK2FlKCtmKS8uNjkzMTQ3MTgwNTU5OTQ1
MykpKSk7aj1hPDwxO2s9Y1syNDQ2XXwwO2w9Y1syNDQ3XXwwO2lmKChrfDApIT0obHwwKSl7Y1sy
NDQ3XT1sKyh+KChsLTgrKC1rfDApfDApPj4+Myk8PDMpfWs9ZXwwO2Nbaz4+Ml09MDtsPWUrNHww
O2NbbD4+Ml09MDttPWUrOHwwO2NbbT4+Ml09MDtpZigoanwwKT09MCl7bj0wfWVsc2V7aWYoaj4+
PjA+NTM2ODcwOTExKXtpcihlKX1lPWtPKGE8PDQpfDA7Y1tsPj4yXT1lO2Nbaz4+Ml09ZTtjW20+
PjJdPWUrKGo8PDMpO209ajtvPWU7ZG97aWYoKG98MCk9PTApe3A9MH1lbHNle2hbbz4+M109MC4w
O3A9Y1tsPj4yXXwwfW89cCs4fDA7Y1tsPj4yXT1vO209bS0xfDA7fXdoaWxlKChtfDApIT0wKTtu
PWNbaz4+Ml18MH1tPW4rKGo8PDMpfDA7bz1uKyhhPDwzKXwwO2lmKChhfDApIT0wKXtwPW47Zj0w
LjA7d2hpbGUoMSl7ZT1wKzh8MDtoW3A+PjNdPWY7aWYoKGV8MCk9PShvfDApKXticmVha31lbHNl
e3A9ZTtmPWYrMS4wfX19aWYoKGp8MCkhPShhfDApKXtqPW87Zj0wLjA7d2hpbGUoMSl7bz1qKzh8
MDtoW2o+PjNdPWY7aWYoKG98MCk9PShtfDApKXticmVha31lbHNle2o9bztmPWYrMS4wfX19Y0Yo
bixtKTtpZigoZ3wwKT4wKXtqPWE8PDQ7YT1qPj4zO289YU8oYXwwLDgpfDA7cD1uO2lmKEspe2U9
Zzt3aGlsZSgxKXtxPWUtMXwwO3I9a1AoLTEpfDA7cz1yO2tZKHJ8MCxwfDAsail8MDt0PXMrKGE8
PDMpfDA7Y1Uocyx0LGQpO0wyNjg6ZG97aWYoKHN8MCkhPSh0fDApKXt1PXM7d2hpbGUoMSl7dj11
Kzh8MDtpZigodnwwKT09KHR8MCkpe2JyZWFrIEwyNjh9dz0raFt1Pj4zXTtpZih3PT0raFt2Pj4z
XSl7YnJlYWt9ZWxzZXt1PXZ9fWlmKCh1fDApPT0odHwwKSl7YnJlYWt9ZWxzZXt4PXY7eT11O3o9
d313aGlsZSgxKXtBPXg7ZG97QT1BKzh8MDtpZigoQXwwKT09KHR8MCkpe2JyZWFrIEwyNjh9Qj0r
aFtBPj4zXTt9d2hpbGUoej09Qik7Qz15Kzh8MDtoW0M+PjNdPUI7eD1BO3k9Qzt6PUJ9fX13aGls
ZSgwKTtpZigocnwwKSE9MCl7a1Qocil9aWYoKHF8MCk+MCl7ZT1xfWVsc2V7RD1nO2JyZWFrfX19
ZWxzZXtlPWc7d2hpbGUoMSl7eT1lLTF8MDt4PWtQKG8pfDA7dj14O2tZKHh8MCxwfDAsail8MDt0
PXYrKGE8PDMpfDA7Y1Uodix0LGQpO0wyODc6ZG97aWYoKHZ8MCkhPSh0fDApKXtzPXY7d2hpbGUo
MSl7RT1zKzh8MDtpZigoRXwwKT09KHR8MCkpe2JyZWFrIEwyODd9Rj0raFtzPj4zXTtpZihGPT0r
aFtFPj4zXSl7YnJlYWt9ZWxzZXtzPUV9fWlmKChzfDApPT0odHwwKSl7YnJlYWt9ZWxzZXtHPUU7
SD1zO0k9Rn13aGlsZSgxKXt1PUc7ZG97dT11Kzh8MDtpZigodXwwKT09KHR8MCkpe2JyZWFrIEwy
ODd9Sj0raFt1Pj4zXTt9d2hpbGUoST09Sik7QT1IKzh8MDtoW0E+PjNdPUo7Rz11O0g9QTtJPUp9
fX13aGlsZSgwKTtpZigoeHwwKSE9MCl7a1QoeCl9aWYoKHl8MCk+MCl7ZT15fWVsc2V7RD1nO2Jy
ZWFrfX19d2hpbGUoMSl7ZT1ELTF8MDtjdShuLG0sZSk7aWYoKGV8MCk+MCl7RD1lfWVsc2V7TD1n
O2JyZWFrfX13aGlsZSgxKXtEPUwtMXwwO2N2KG4sbSxEKTtpZigoRHwwKT4wKXtMPUR9ZWxzZXtN
PWc7YnJlYWt9fXdoaWxlKDEpe0w9TS0xfDA7Y3cobixtLEwpO2lmKChMfDApPjApe009TH1lbHNl
e049ZzticmVha319d2hpbGUoMSl7TT1OLTF8MDtjeChuLG0sTSk7aWYoKE18MCk+MCl7Tj1NfWVs
c2V7Tz1nO2JyZWFrfX13aGlsZSgxKXtOPU8tMXwwO2N5KG4sbSxOKTtpZigoTnwwKT4wKXtPPU59
ZWxzZXtQPWc7YnJlYWt9fWRve1A9UC0xfDA7Y3oobixtLFApO313aGlsZSgoUHwwKT4wKX1QPWNb
az4+Ml18MDtpZigoUHwwKT09MCl7aT1iO3JldHVybn1rPWNbbD4+Ml18MDtpZigoUHwwKSE9KGt8
MCkpe2NbbD4+Ml09aysofigoay04KygtUHwwKXwwKT4+PjMpPDwzKX1rUyhQKTtpPWI7cmV0dXJu
fWZ1bmN0aW9uIGNCKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZT1kfDA7Zj1j
W2U+PjJdfDA7ZG97aWYoKGZ8MCk9PTApe2c9ZDtoPTMwMX1lbHNle2k9Y1tkKzQ+PjJdfDA7aWYo
KGl8MCk9PTApe2o9ZjtrPWQ7bD1kfDA7aD0zMDM7YnJlYWt9ZWxzZXttPWk7d2hpbGUoMSl7aT1j
W20+PjJdfDA7aWYoKGl8MCk9PTApe2c9bTtoPTMwMTticmVha31lbHNle209aX19fX19d2hpbGUo
MCk7ZG97aWYoKGh8MCk9PTMwMSl7Zj1nfDA7bT1jW2crND4+Ml18MDtpZigobXwwKSE9MCl7aj1t
O2s9ZztsPWY7aD0zMDM7YnJlYWt9bj0wO289MDtwPWcrOHwwO3E9ZztyPWZ9fXdoaWxlKDApO2lm
KChofDApPT0zMDMpe2c9ays4fDA7Y1tqKzg+PjJdPWNbZz4+Ml07bj1qO289MTtwPWc7cT1rO3I9
bH1sPWNbcD4+Ml18MDtrPWx8MDtkb3tpZigocXwwKT09KGNbaz4+Ml18MCkpe2Nbaz4+Ml09bjtp
ZigocXwwKT09KGJ8MCkpe3M9bjt0PTA7YnJlYWt9cz1iO3Q9Y1soY1twPj4yXXwwKSs0Pj4yXXww
fWVsc2V7Y1tsKzQ+PjJdPW47cz1iO3Q9Y1tjW3A+PjJdPj4yXXwwfX13aGlsZSgwKTtiPXErMTJ8
MDtsPShhW2JdJjEpPT0wO2lmKChxfDApPT0oZHwwKSl7dT1zfWVsc2V7az1kKzh8MDtnPWNbaz4+
Ml18MDtjW3A+PjJdPWc7aWYoKGNbY1trPj4yXT4+Ml18MCk9PShkfDApKXtjW2c+PjJdPXF9ZWxz
ZXtjW2crND4+Ml09cX1nPWNbZT4+Ml18MDtjW3I+PjJdPWc7Y1tnKzg+PjJdPXE7Zz1jW2QrND4+
Ml18MDtjW3ErND4+Ml09ZztpZigoZ3wwKSE9MCl7Y1tnKzg+PjJdPXF9YVtiXT1hW2QrMTJ8MF0m
MTt1PShzfDApPT0oZHwwKT9xOnN9aWYobHwodXwwKT09MCl7cmV0dXJufWlmKG8pe2FbbisxMnww
XT0xO3JldHVybn1lbHNle3Y9dTt3PXR9d2hpbGUoMSl7dD13Kzh8MDt1PWNbdD4+Ml18MDtuPXcr
MTJ8MDtvPShhW25dJjEpIT0wO2lmKCh3fDApPT0oY1t1Pj4yXXwwKSl7aWYobyl7eD12O3k9d31l
bHNle2Fbbl09MTthW3UrMTJ8MF09MDtsPWNbdD4+Ml18MDtzPWx8MDtxPWNbcz4+Ml18MDtkPXEr
NHwwO2I9Y1tkPj4yXXwwO2Nbcz4+Ml09YjtpZigoYnwwKSE9MCl7Y1tiKzg+PjJdPWx9Yj1sKzh8
MDtjW3ErOD4+Ml09Y1tiPj4yXTtzPWNbYj4+Ml18MDtnPXN8MDtpZigoY1tnPj4yXXwwKT09KGx8
MCkpe2NbZz4+Ml09cX1lbHNle2Nbcys0Pj4yXT1xfWNbZD4+Ml09bDtjW2I+PjJdPXE7cT1jW3cr
ND4+Ml18MDt4PSh2fDApPT0ocXwwKT93OnY7eT1jW3E+PjJdfDB9ej1jW3k+PjJdfDA7QT0oenww
KT09MDtpZighQSl7aWYoKGFbeisxMnwwXSYxKT09MCl7aD0zNjU7YnJlYWt9fXE9Y1t5KzQ+PjJd
fDA7aWYoKHF8MCkhPTApe2lmKChhW3ErMTJ8MF0mMSk9PTApe2g9MzY0O2JyZWFrfX1hW3krMTJ8
MF09MDtxPWNbeSs4Pj4yXXwwO0I9cSsxMnwwO2lmKChhW0JdJjEpPT0wfChxfDApPT0oeHwwKSl7
aD0zNjE7YnJlYWt9Yj1jW3ErOD4+Ml18MDtsPWNbYj4+Ml18MDtpZigocXwwKSE9KGx8MCkpe3Y9
eDt3PWw7Y29udGludWV9dj14O3c9Y1tiKzQ+PjJdfDA7Y29udGludWV9aWYobyl7Qz12O0Q9d31l
bHNle2Fbbl09MTthW3UrMTJ8MF09MDt1PWNbdD4+Ml18MDt0PXUrNHwwO249Y1t0Pj4yXXwwO289
bnwwO2I9Y1tvPj4yXXwwO2NbdD4+Ml09YjtpZigoYnwwKSE9MCl7Y1tiKzg+PjJdPXV9Yj11Kzh8
MDtjW24rOD4+Ml09Y1tiPj4yXTt0PWNbYj4+Ml18MDtsPXR8MDtpZigoY1tsPj4yXXwwKT09KHV8
MCkpe2NbbD4+Ml09bn1lbHNle2NbdCs0Pj4yXT1ufWNbbz4+Ml09dTtjW2I+PjJdPW47bj1jW3c+
PjJdfDA7Qz0odnwwKT09KG58MCk/dzp2O0Q9Y1tuKzQ+PjJdfDB9RT1EfDA7Rj1jW0U+PjJdfDA7
aWYoKEZ8MCkhPTApe2lmKChhW0YrMTJ8MF0mMSk9PTApe2g9MzM1O2JyZWFrfX1uPWNbRCs0Pj4y
XXwwO2lmKChufDApIT0wKXtpZigoYVtuKzEyfDBdJjEpPT0wKXtHPW47aD0zMzY7YnJlYWt9fWFb
RCsxMnwwXT0wO249Y1tEKzg+PjJdfDA7aWYoKG58MCk9PShDfDApKXtIPUM7aD0zMzI7YnJlYWt9
aWYoKGFbbisxMnwwXSYxKT09MCl7SD1uO2g9MzMyO2JyZWFrfWI9Y1tuKzg+PjJdfDA7dT1jW2I+
PjJdfDA7aWYoKG58MCkhPSh1fDApKXt2PUM7dz11O2NvbnRpbnVlfXY9Qzt3PWNbYis0Pj4yXXww
fWlmKChofDApPT0zMzIpe2FbSCsxMnwwXT0xO3JldHVybn1lbHNlIGlmKChofDApPT0zMzUpe0g9
Y1tEKzQ+PjJdfDA7aWYoKEh8MCk9PTApe2g9MzM3fWVsc2V7Rz1IO2g9MzM2fX1lbHNlIGlmKCho
fDApPT0zNjEpe2FbQl09MTtyZXR1cm59ZWxzZSBpZigoaHwwKT09MzY0KXtpZihBKXtoPTM2Nn1l
bHNle2g9MzY1fX1pZigoaHwwKT09MzM2KXtpZigoYVtHKzEyfDBdJjEpPT0wKXtJPUQ7aD0zNDN9
ZWxzZXtoPTMzN319ZWxzZSBpZigoaHwwKT09MzY1KXtpZigoYVt6KzEyfDBdJjEpPT0wKXtKPXk7
aD0zNzJ9ZWxzZXtoPTM2Nn19aWYoKGh8MCk9PTMzNyl7YVtGKzEyfDBdPTE7YVtEKzEyfDBdPTA7
Rj1jW0U+PjJdfDA7ej1GKzR8MDtHPWNbej4+Ml18MDtjW0U+PjJdPUc7aWYoKEd8MCkhPTApe2Nb
Rys4Pj4yXT1EfUc9RCs4fDA7Y1tGKzg+PjJdPWNbRz4+Ml07RT1jW0c+PjJdfDA7QT1FfDA7aWYo
KGNbQT4+Ml18MCk9PShEfDApKXtjW0E+PjJdPUZ9ZWxzZXtjW0UrND4+Ml09Rn1jW3o+PjJdPUQ7
Y1tHPj4yXT1GO0k9RjtoPTM0M31lbHNlIGlmKChofDApPT0zNjYpe0Y9eSs0fDA7YVsoY1tGPj4y
XXwwKSsxMnwwXT0xO2FbeSsxMnwwXT0wO0c9Y1tGPj4yXXwwO0Q9R3wwO3o9Y1tEPj4yXXwwO2Nb
Rj4+Ml09ejtpZigoenwwKSE9MCl7Y1t6Kzg+PjJdPXl9ej15Kzh8MDtjW0crOD4+Ml09Y1t6Pj4y
XTtGPWNbej4+Ml18MDtFPUZ8MDtpZigoY1tFPj4yXXwwKT09KHl8MCkpe2NbRT4+Ml09R31lbHNl
e2NbRis0Pj4yXT1HfWNbRD4+Ml09eTtjW3o+PjJdPUc7Sj1HO2g9MzcyfWlmKChofDApPT0zNDMp
e0c9SSs4fDA7ej0oY1tHPj4yXXwwKSsxMnwwO2FbSSsxMnwwXT1hW3pdJjE7YVt6XT0xO2FbKGNb
SSs0Pj4yXXwwKSsxMnwwXT0xO0k9Y1tHPj4yXXwwO0c9SSs0fDA7ej1jW0c+PjJdfDA7eT16fDA7
RD1jW3k+PjJdfDA7Y1tHPj4yXT1EO2lmKChEfDApIT0wKXtjW0QrOD4+Ml09SX1EPUkrOHwwO2Nb
eis4Pj4yXT1jW0Q+PjJdO0c9Y1tEPj4yXXwwO0Y9R3wwO2lmKChjW0Y+PjJdfDApPT0oSXwwKSl7
Y1tGPj4yXT16fWVsc2V7Y1tHKzQ+PjJdPXp9Y1t5Pj4yXT1JO2NbRD4+Ml09ejtyZXR1cm59ZWxz
ZSBpZigoaHwwKT09MzcyKXtoPUorOHwwO3o9KGNbaD4+Ml18MCkrMTJ8MDthW0orMTJ8MF09YVt6
XSYxO2Fbel09MTthWyhjW0o+PjJdfDApKzEyfDBdPTE7Sj1jW2g+PjJdfDA7aD1KfDA7ej1jW2g+
PjJdfDA7RD16KzR8MDtJPWNbRD4+Ml18MDtjW2g+PjJdPUk7aWYoKEl8MCkhPTApe2NbSSs4Pj4y
XT1KfUk9Sis4fDA7Y1t6Kzg+PjJdPWNbST4+Ml07aD1jW0k+PjJdfDA7eT1ofDA7aWYoKGNbeT4+
Ml18MCk9PShKfDApKXtjW3k+PjJdPXp9ZWxzZXtjW2grND4+Ml09en1jW0Q+PjJdPUo7Y1tJPj4y
XT16O3JldHVybn19ZnVuY3Rpb24gY0MoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7
dmFyIGY9MCxnPTAsaj0wLGs9MC4wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTA7Zj1pO2c9YjtiPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2I+PjJdPWNbZz4+Ml07
Zz1hKzR8MDtqPWNbYj4+Ml18MDtkb3tpZigoanwwKSE9KGd8MCkpe2s9K2hbZT4+M107aWYoK2hb
aisxNj4+M10+PWspe2JyZWFrfWI9Z3wwO2w9Y1tiPj4yXXwwO2lmKChsfDApPT0wKXtjW2Q+PjJd
PWc7bT1iO2k9ZjtyZXR1cm4gbXwwfWVsc2V7bj1sfXdoaWxlKDEpe2lmKCtoW24rMTY+PjNdPGsp
e289bis0fDA7bD1jW28+PjJdfDA7aWYoKGx8MCk9PTApe3A9NDA2O2JyZWFrfWVsc2V7bj1sO2Nv
bnRpbnVlfX1lbHNle3E9bnwwO2w9Y1txPj4yXXwwO2lmKChsfDApPT0wKXtwPTQwODticmVha31l
bHNle249bDtjb250aW51ZX19fWlmKChwfDApPT00MDgpe2NbZD4+Ml09bjttPXE7aT1mO3JldHVy
biBtfDB9ZWxzZSBpZigocHwwKT09NDA2KXtjW2Q+PjJdPW47bT1vO2k9ZjtyZXR1cm4gbXwwfX19
d2hpbGUoMCk7bz1jW2o+PjJdfDA7ZG97aWYoKGp8MCk9PShjW2E+PjJdfDApKXtyPWp9ZWxzZXtp
Zigob3wwKT09MCl7bj1qfDA7d2hpbGUoMSl7cT1jW24rOD4+Ml18MDtpZigobnwwKT09KGNbcT4+
Ml18MCkpe249cX1lbHNle3M9cTticmVha319fWVsc2V7bj1vO3doaWxlKDEpe3E9Y1tuKzQ+PjJd
fDA7aWYoKHF8MCk9PTApe3M9bjticmVha31lbHNle249cX19fWs9K2hbZT4+M107aWYoaz49K2hb
cysxNj4+M10pe3I9czticmVha31uPWd8MDtxPWNbbj4+Ml18MDtpZigocXwwKT09MCl7Y1tkPj4y
XT1nO209bjtpPWY7cmV0dXJuIG18MH1lbHNle3Q9cX13aGlsZSgxKXtpZihrPCtoW3QrMTY+PjNd
KXt1PXR8MDtxPWNbdT4+Ml18MDtpZigocXwwKT09MCl7cD0zOTk7YnJlYWt9ZWxzZXt0PXE7Y29u
dGludWV9fWVsc2V7dj10KzR8MDtxPWNbdj4+Ml18MDtpZigocXwwKT09MCl7cD00MDE7YnJlYWt9
ZWxzZXt0PXE7Y29udGludWV9fX1pZigocHwwKT09Mzk5KXtjW2Q+PjJdPXQ7bT11O2k9ZjtyZXR1
cm4gbXwwfWVsc2UgaWYoKHB8MCk9PTQwMSl7Y1tkPj4yXT10O209djtpPWY7cmV0dXJuIG18MH19
fXdoaWxlKDApO2lmKChvfDApPT0wKXtjW2Q+PjJdPWo7bT1qfDA7aT1mO3JldHVybiBtfDB9ZWxz
ZXtjW2Q+PjJdPXI7bT1yKzR8MDtpPWY7cmV0dXJuIG18MH1yZXR1cm4gMH1mdW5jdGlvbiBjRCgp
e2NBKDFlNSk7cmV0dXJuIDB9ZnVuY3Rpb24gY0UoYSxiKXthPWF8MDtiPWJ8MDtpZigoYnwwKT09
MCl7cmV0dXJufWVsc2V7Y0UoYSxjW2I+PjJdfDApO2NFKGEsY1tiKzQ+PjJdfDApO2tTKGIpO3Jl
dHVybn19ZnVuY3Rpb24gY0YoYSxiKXthPWF8MDtiPWJ8MDt2YXIgYz0wLGQ9MCxlPTAsZj0wLGc9
MCxqPTAsaz0wLGw9MCxtPTAuMDtjPWk7aT1pKzh8MDtkPWN8MDtlPWItYXwwO2lmKChlfDApPD04
KXtpPWM7cmV0dXJufWNZKGQpO2Y9Yi04fDA7aWYoZj4+PjA+YT4+PjApe2I9YTthPWU+PjM7d2hp
bGUoMSl7ZT1hLTF8MDtkb3tpZigoZXwwKSE9MCl7aWYoKGF8MCk9PTApe2c9Y1goZCl8MH1lbHNl
e2o9MzItKGtaKGF8MCl8MCl8MDtrPSgoKC0xPj4+KCgzMy1qfDApPj4+MCkmYXwwKT09MCk8PDMx
Pj4zMSkranwwO2o9KGs+Pj4wKS8oKCgoayYzMXwwKSE9MCkrKGs+Pj41KXwwKT4+PjApfDA7aWYo
KGp8MCk9PTApe2w9MH1lbHNle2w9LTE+Pj4oKDMyLWp8MCk+Pj4wKX13aGlsZSgxKXtqPShjWChk
KXwwKSZsO2lmKGo+Pj4wPGE+Pj4wKXtnPWo7YnJlYWt9fX1pZigoZ3wwKT09MCl7YnJlYWt9aj1i
KyhnPDwzKXwwO209K2hbYj4+M107aFtiPj4zXT0raFtqPj4zXTtoW2o+PjNdPW19fXdoaWxlKDAp
O2o9Yis4fDA7aWYoaj4+PjA8Zj4+PjApe2I9ajthPWV9ZWxzZXticmVha319fWNXKGQpO2k9Yzty
ZXR1cm59ZnVuY3Rpb24gY0coYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9
MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7ZT0oZHwwKT09KGJ8MCk7
YVtkKzEyfDBdPWUmMTtpZihlKXtyZXR1cm59ZWxzZXtmPWR9d2hpbGUoMSl7Zz1mKzh8MDtoPWNb
Zz4+Ml18MDtkPWgrMTJ8MDtpZigoYVtkXSYxKSE9MCl7aT00ODc7YnJlYWt9aj1oKzh8MDtrPWNb
aj4+Ml18MDtlPWNbaz4+Ml18MDtpZigoaHwwKT09KGV8MCkpe2w9Y1trKzQ+PjJdfDA7aWYoKGx8
MCk9PTApe2k9NDUyO2JyZWFrfW09bCsxMnwwO2lmKChhW21dJjEpIT0wKXtpPTQ1MjticmVha31h
W2RdPTE7YVtrKzEyfDBdPShrfDApPT0oYnwwKXwwO2FbbV09MX1lbHNle2lmKChlfDApPT0wKXtp
PTQ2OTticmVha31tPWUrMTJ8MDtpZigoYVttXSYxKSE9MCl7aT00Njk7YnJlYWt9YVtkXT0xO2Fb
aysxMnwwXT0oa3wwKT09KGJ8MCl8MDthW21dPTF9aWYoKGt8MCk9PShifDApKXtpPTQ4NDticmVh
a31lbHNle2Y9a319aWYoKGl8MCk9PTQ2OSl7Yj1ofDA7aWYoKGZ8MCk9PShjW2I+PjJdfDApKXtt
PWYrNHwwO2Q9Y1ttPj4yXXwwO2NbYj4+Ml09ZDtpZigoZHwwKT09MCl7bj1rfWVsc2V7Y1tkKzg+
PjJdPWg7bj1jW2o+PjJdfDB9Y1tnPj4yXT1uO249Y1tqPj4yXXwwO2Q9bnwwO2lmKChjW2Q+PjJd
fDApPT0oaHwwKSl7Y1tkPj4yXT1mfWVsc2V7Y1tuKzQ+PjJdPWZ9Y1ttPj4yXT1oO2Nbaj4+Ml09
ZjtvPWY7cD1jW2c+PjJdfDB9ZWxzZXtvPWg7cD1rfWFbbysxMnwwXT0xO2FbcCsxMnwwXT0wO289
cCs0fDA7Zz1jW28+PjJdfDA7bT1nfDA7bj1jW20+PjJdfDA7Y1tvPj4yXT1uO2lmKChufDApIT0w
KXtjW24rOD4+Ml09cH1uPXArOHwwO2NbZys4Pj4yXT1jW24+PjJdO289Y1tuPj4yXXwwO2Q9b3ww
O2lmKChjW2Q+PjJdfDApPT0ocHwwKSl7Y1tkPj4yXT1nfWVsc2V7Y1tvKzQ+PjJdPWd9Y1ttPj4y
XT1wO2Nbbj4+Ml09ZztyZXR1cm59ZWxzZSBpZigoaXwwKT09NDg0KXtyZXR1cm59ZWxzZSBpZigo
aXwwKT09NDg3KXtyZXR1cm59ZWxzZSBpZigoaXwwKT09NDUyKXtpZigoZnwwKT09KGNbaD4+Ml18
MCkpe3E9aDtyPWt9ZWxzZXtmPWgrNHwwO2k9Y1tmPj4yXXwwO2c9aXwwO249Y1tnPj4yXXwwO2Nb
Zj4+Ml09bjtpZigobnwwKT09MCl7cz1rfWVsc2V7Y1tuKzg+PjJdPWg7cz1jW2o+PjJdfDB9bj1p
Kzh8MDtjW24+PjJdPXM7cz1jW2o+PjJdfDA7az1zfDA7aWYoKGNbaz4+Ml18MCk9PShofDApKXtj
W2s+PjJdPWl9ZWxzZXtjW3MrND4+Ml09aX1jW2c+PjJdPWg7Y1tqPj4yXT1pO3E9aTtyPWNbbj4+
Ml18MH1hW3ErMTJ8MF09MTthW3IrMTJ8MF09MDtxPXJ8MDtuPWNbcT4+Ml18MDtpPW4rNHwwO2o9
Y1tpPj4yXXwwO2NbcT4+Ml09ajtpZigoanwwKSE9MCl7Y1tqKzg+PjJdPXJ9aj1yKzh8MDtjW24r
OD4+Ml09Y1tqPj4yXTtxPWNbaj4+Ml18MDtoPXF8MDtpZigoY1toPj4yXXwwKT09KHJ8MCkpe2Nb
aD4+Ml09bn1lbHNle2NbcSs0Pj4yXT1ufWNbaT4+Ml09cjtjW2o+PjJdPW47cmV0dXJufX1mdW5j
dGlvbiBjSChhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxqPTAs
az0wLjAsbD0wLjAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTA7Zj1pO2c9YjtiPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2I+PjJdPWNb
Zz4+Ml07Zz1hKzR8MDtqPWNbYj4+Ml18MDtkb3tpZigoanwwKSE9KGd8MCkpe2s9K2hbZT4+M107
bD0raFtqKzE2Pj4zXTtpZihrPGwpe2JyZWFrfWlmKGw+PWspe2NbZD4+Ml09ajttPWQ7aT1mO3Jl
dHVybiBtfDB9Yj1qKzR8MDtuPWNbYj4+Ml18MDtvPShufDApPT0wO2lmKG8pe3A9anwwO3doaWxl
KDEpe3E9Y1twKzg+PjJdfDA7aWYoKHB8MCk9PShjW3E+PjJdfDApKXtyPXE7YnJlYWt9ZWxzZXtw
PXF9fX1lbHNle3A9bjt3aGlsZSgxKXtxPWNbcD4+Ml18MDtpZigocXwwKT09MCl7cj1wO2JyZWFr
fWVsc2V7cD1xfX19cD1nO2Rve2lmKChyfDApIT0ocHwwKSl7aWYoazwraFtyKzE2Pj4zXSl7YnJl
YWt9bj1nfDA7cT1jW24+PjJdfDA7aWYoKHF8MCk9PTApe2NbZD4+Ml09cDttPW47aT1mO3JldHVy
biBtfDB9ZWxzZXtzPXF9d2hpbGUoMSl7bD0raFtzKzE2Pj4zXTtpZihrPGwpe3Q9c3wwO3E9Y1t0
Pj4yXXwwO2lmKChxfDApPT0wKXt1PTUyMTticmVha31lbHNle3M9cTtjb250aW51ZX19aWYobD49
ayl7dT01MjU7YnJlYWt9dj1zKzR8MDtxPWNbdj4+Ml18MDtpZigocXwwKT09MCl7dT01MjQ7YnJl
YWt9ZWxzZXtzPXF9fWlmKCh1fDApPT01MjEpe2NbZD4+Ml09czttPXQ7aT1mO3JldHVybiBtfDB9
ZWxzZSBpZigodXwwKT09NTI0KXtjW2Q+PjJdPXM7bT12O2k9ZjtyZXR1cm4gbXwwfWVsc2UgaWYo
KHV8MCk9PTUyNSl7Y1tkPj4yXT1zO209ZDtpPWY7cmV0dXJuIG18MH19fXdoaWxlKDApO2lmKG8p
e2NbZD4+Ml09ajttPWI7aT1mO3JldHVybiBtfDB9ZWxzZXtjW2Q+PjJdPXI7bT1yfDA7aT1mO3Jl
dHVybiBtfDB9fX13aGlsZSgwKTtyPWNbaj4+Ml18MDtkb3tpZigoanwwKT09KGNbYT4+Ml18MCkp
e3c9an1lbHNle2lmKChyfDApPT0wKXtzPWp8MDt3aGlsZSgxKXt2PWNbcys4Pj4yXXwwO2lmKChz
fDApPT0oY1t2Pj4yXXwwKSl7cz12fWVsc2V7eD12O2JyZWFrfX19ZWxzZXtzPXI7d2hpbGUoMSl7
Yj1jW3MrND4+Ml18MDtpZigoYnwwKT09MCl7eD1zO2JyZWFrfWVsc2V7cz1ifX19az0raFtlPj4z
XTtpZigraFt4KzE2Pj4zXTxrKXt3PXg7YnJlYWt9cz1nfDA7Yj1jW3M+PjJdfDA7aWYoKGJ8MCk9
PTApe2NbZD4+Ml09ZzttPXM7aT1mO3JldHVybiBtfDB9ZWxzZXt5PWJ9d2hpbGUoMSl7bD0raFt5
KzE2Pj4zXTtpZihrPGwpe3o9eXwwO2I9Y1t6Pj4yXXwwO2lmKChifDApPT0wKXt1PTUwMjticmVh
a31lbHNle3k9Yjtjb250aW51ZX19aWYobD49ayl7dT01MDY7YnJlYWt9QT15KzR8MDtiPWNbQT4+
Ml18MDtpZigoYnwwKT09MCl7dT01MDU7YnJlYWt9ZWxzZXt5PWJ9fWlmKCh1fDApPT01MDUpe2Nb
ZD4+Ml09eTttPUE7aT1mO3JldHVybiBtfDB9ZWxzZSBpZigodXwwKT09NTA2KXtjW2Q+PjJdPXk7
bT1kO2k9ZjtyZXR1cm4gbXwwfWVsc2UgaWYoKHV8MCk9PTUwMil7Y1tkPj4yXT15O209ejtpPWY7
cmV0dXJuIG18MH19fXdoaWxlKDApO2lmKChyfDApPT0wKXtjW2Q+PjJdPWo7bT1qfDA7aT1mO3Jl
dHVybiBtfDB9ZWxzZXtjW2Q+PjJdPXc7bT13KzR8MDtpPWY7cmV0dXJuIG18MH1yZXR1cm4gMH1m
dW5jdGlvbiBjSShiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLjAsSD0wLEk9MDtnPWk7aj1kO2Q9aTtp
PWkrOHwwO2NbZD4+Ml09Y1tqPj4yXTtjW2QrND4+Ml09Y1tqKzQ+PjJdO2o9ZTtlPWk7aT1pKzh8
MDtjW2U+PjJdPWNbaj4+Ml07Y1tlKzQ+PjJdPWNbais0Pj4yXTtqPWY7Zj1pO2k9aSsxfDA7aT1p
Kzc+PjM8PDM7YVtmXT1hW2pdfDA7aj1kfDA7Zj1kKzR8MDtrPWNbZj4+Ml18MDtsPWNbZT4+Ml18
MDttPWNbZSs0Pj4yXXwwO0w2NTU6ZG97aWYoKGt8MCk9PShtfDApKXtuPWs7bz1sO3A9NTQ5fWVs
c2V7ZT1jW2o+PjJdfDA7cT1lO3I9aztzPWNbZT4+Ml18MDt3aGlsZSgxKXtlPXIrOHwwO2lmKChl
LXN8MCk9PTQwOTYpe3Q9cSs0fDA7dT1jW3Q+PjJdfDA7dj10O3c9dTt4PXV9ZWxzZXt2PXE7dz1l
O3g9c31pZigod3wwKT09KG18MCkpe2JyZWFrfWlmKCtoW3I+PjNdPT0raFt3Pj4zXSl7bj1yO289
cTtwPTU0OTticmVhayBMNjU1fWVsc2V7cT12O3I9dztzPXh9fWNbaj4+Ml09bDtjW2Y+PjJdPW19
fXdoaWxlKDApO2Rve2lmKChwfDApPT01NDkpe2Nbaj4+Ml09bztjW2Y+PjJdPW47aWYoKG58MCk9
PShtfDApKXticmVha31sPW4rOHwwO3g9Y1tvPj4yXXwwO2lmKChsLXh8MCk9PTQwOTYpe3c9bys0
fDA7dj1jW3c+PjJdfDA7eT13O3o9djtBPXY7Qj1uO0M9b31lbHNle3k9bzt6PWw7QT14O0I9bjtD
PW99d2hpbGUoMSl7eD16Kzh8MDtpZigoeC1BfDApPT00MDk2KXtsPXkrNHwwO3Y9Y1tsPj4yXXww
O0Q9bDtFPXY7Rj12fWVsc2V7RD15O0U9eDtGPUF9aWYoKEV8MCk9PShtfDApKXticmVha31HPSto
W0U+PjNdO2lmKCtoW0I+PjNdPT1HKXt5PUQ7ej1FO0E9RjtCPUI7Qz1DO2NvbnRpbnVlfXg9Qis4
fDA7Y1tmPj4yXT14O2lmKCh4LShjW0M+PjJdfDApfDApPT00MDk2KXt2PUMrNHwwO2Nbaj4+Ml09
djtsPWNbdj4+Ml18MDtjW2Y+PjJdPWw7SD12O0k9bH1lbHNle0g9QztJPXh9aFtJPj4zXT1HO3k9
RDt6PUU7QT1jW0Q+PjJdfDA7Qj1JO0M9SH14PUIrOHwwO2NbZj4+Ml09eDtpZigoeC0oY1tDPj4y
XXwwKXwwKSE9NDA5Nil7YnJlYWt9eD1DKzR8MDtjW2o+PjJdPXg7Y1tmPj4yXT1jW3g+PjJdfX13
aGlsZSgwKTtmPWQ7ZD1iO2I9Y1tmKzQ+PjJdfDA7Y1tkPj4yXT1jW2Y+PjJdO2NbZCs0Pj4yXT1i
O2k9ZztyZXR1cm59ZnVuY3Rpb24gY0ooYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDt2YXIgZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAuMCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MC4wLEQ9MDtnPWk7aT1pKzQ4
fDA7aj1iO2I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbYj4+Ml09Y1tqPj4yXTtqPWQ7ZD1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2o+PjJdO2o9Z3wwO2s9Zys4fDA7bD1nKzE2fDA7
bT1nKzI0fDA7bj1nKzMyfDA7bz1nKzQwfDA7c3dpdGNoKGV8MCl7Y2FzZSAyOntwPWR8MDtxPWNb
Y1twPj4yXT4+Ml18MDtjW3A+PjJdPXE7cD1jW2I+PjJdfDA7aWYoK2hbcSs4Pj4zXTwraFtwKzg+
PjNdKXtyPXErNHwwO3M9cXwwO2NbKGNbcz4+Ml18MCkrND4+Ml09Y1tyPj4yXTtjW2Nbcj4+Ml0+
PjJdPWNbcz4+Ml07dD1wfDA7Y1soY1t0Pj4yXXwwKSs0Pj4yXT1xO2Nbcz4+Ml09Y1t0Pj4yXTtj
W3Q+PjJdPXE7Y1tyPj4yXT1wO2NbYT4+Ml09cTtpPWc7cmV0dXJufWVsc2V7Y1thPj4yXT1wO2k9
ZztyZXR1cm59YnJlYWt9O2Nhc2UgMDpjYXNlIDE6e2NbYT4+Ml09Y1tiPj4yXTtpPWc7cmV0dXJu
fTtkZWZhdWx0OntwPWU+Pj4xO3E9YnwwO2I9Y1txPj4yXXwwO2lmKChwfDApPT0wKXt1PWJ9ZWxz
ZXtyPXA7dD1iO3doaWxlKDEpe3M9ci0xfDA7dj1jW3QrND4+Ml18MDtpZigoc3wwKT4wKXtyPXM7
dD12fWVsc2V7dT12O2JyZWFrfX19Y1trPj4yXT1iO2NbbD4+Ml09dTtjSihqLGssbCxwLGYpO2w9
Y1tqPj4yXXwwO2NbcT4+Ml09bDtjW24+PjJdPXU7dT1kfDA7ZD1jW3U+PjJdfDA7Y1tvPj4yXT1k
O2NKKG0sbixvLGUtcHwwLGYpO2Y9Y1ttPj4yXXwwO3c9K2hbbCs4Pj4zXTtpZigraFtmKzg+PjNd
PHcpe209Y1tmKzQ+PjJdfDA7TDY5Nzpkb3tpZigobXwwKT09KGR8MCkpe3g9ZH1lbHNle3A9bTt3
aGlsZSgxKXtpZigraFtwKzg+PjNdPj13KXt4PXA7YnJlYWsgTDY5N31lPWNbcCs0Pj4yXXwwO2lm
KChlfDApPT0oZHwwKSl7eD1kO2JyZWFrfWVsc2V7cD1lfX19fXdoaWxlKDApO209Y1t4Pj4yXXww
O3A9bSs0fDA7ZT1mfDA7Y1soY1tlPj4yXXwwKSs0Pj4yXT1jW3A+PjJdO2NbY1twPj4yXT4+Ml09
Y1tlPj4yXTtvPWNbbCs0Pj4yXXwwO249bHwwO2NbKGNbbj4+Ml18MCkrND4+Ml09ZjtjW2U+PjJd
PWNbbj4+Ml07Y1tuPj4yXT1tO2NbcD4+Ml09bDt5PWY7ej14O0E9b31lbHNle3k9bDt6PWY7QT1j
W2wrND4+Ml18MH1jW3E+PjJdPUE7TDcwNDpkb3tpZigoQXwwKSE9KHp8MCkpe2w9ejtmPXo7bz1B
O3g9ZDt3aGlsZSgxKXtwPWwrOHwwO2lmKChsfDApPT0oeHwwKSl7YnJlYWsgTDcwNH1lbHNle0I9
b313aGlsZSgxKXtDPStoW0IrOD4+M107aWYoK2hbcD4+M108Qyl7YnJlYWt9bT1jW0IrND4+Ml18
MDtjW3E+PjJdPW07aWYoKG18MCk9PShmfDApKXticmVhayBMNzA0fWVsc2V7Qj1tfX1wPWNbbCs0
Pj4yXXwwO0w3MTE6ZG97aWYoKHB8MCk9PSh4fDApKXtEPXh9ZWxzZXttPXA7d2hpbGUoMSl7aWYo
K2hbbSs4Pj4zXT49Qyl7RD1tO2JyZWFrIEw3MTF9bj1jW20rND4+Ml18MDtpZigobnwwKT09KHh8
MCkpe0Q9eDticmVha31lbHNle209bn19fX13aGlsZSgwKTtwPWNbRD4+Ml18MDttPXArNHwwO249
bHwwO2NbKGNbbj4+Ml18MCkrND4+Ml09Y1ttPj4yXTtjW2NbbT4+Ml0+PjJdPWNbbj4+Ml07ZT1j
W0IrND4+Ml18MDtqPShmfDApPT0obHwwKT9EOmY7az1CfDA7Y1soY1trPj4yXXwwKSs0Pj4yXT1s
O2Nbbj4+Ml09Y1trPj4yXTtjW2s+PjJdPXA7Y1ttPj4yXT1CO2NbcT4+Ml09ZTtpZigoZXwwKT09
KGp8MCkpe2JyZWFrIEw3MDR9bD1EO2Y9ajtvPWU7eD1jW3U+PjJdfDB9fX13aGlsZSgwKTtjW2E+
PjJdPXk7aT1nO3JldHVybn19fWZ1bmN0aW9uIGNLKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2
YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAs
Vz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9
MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MCxhbj0wLGFvPTAsYXA9MCxhcT0wLGFyPTAs
YXM9MCxhdD0wLGF1PTAsYXY9MCxhdz0wLGF4PTAsYXk9MCxhej0wLGFBPTAsYUI9MCxhQz0wLGFE
PTAsYUU9MCxhRj0wLGFHPTAuMCxhSD0wLjAsYUk9MC4wLGFKPTAuMCxhSz0wLjAsYUw9MCxhTT0w
LGFOPTAsYU89MCxhUD0wLGFRPTAsYVI9MCxhUz0wLjAsYVQ9MCxhVT0wLGFWPTAsYVc9MCxhWD0w
LGFZPTAsYVo9MCxhXz0wLGEkPTAsYTA9MC4wLGExPTAsYTI9MCxhMz0wLGE0PTAsYTU9MCxhNj0w
LGE3PTAsYTg9MC4wLGE5PTAsYmE9MCxiYj0wLGJjPTAsYmQ9MC4wLGJlPTAsYmY9MCxiZz0wLGJo
PTAsYmk9MCxiaj0wLGJrPTAsYmw9MCxibT0wLGJuPTAsYm89MCxicD0wLGJxPTAsYnI9MCxicz0w
LGJ0PTAsYnU9MC4wLGJ2PTAsYnc9MCxieD0wLGJ5PTAsYno9MC4wLGJBPTAsYkI9MCxiQz0wLGJE
PTAsYkU9MCxiRj0wLGJHPTAsYkg9MCxiST0wLGJKPTAsYks9MCxiTD0wLGJNPTAsYk49MCxiTz0w
LGJQPTAsYlE9MC4wLGJSPTAsYlM9MCxiVD0wO2U9aTtpPWkrOHwwO2Y9YTthPWk7aT1pKzh8MDtj
W2E+PjJdPWNbZj4+Ml07Y1thKzQ+PjJdPWNbZis0Pj4yXTtmPWI7Yj1pO2k9aSs4fDA7Y1tiPj4y
XT1jW2Y+PjJdO2NbYis0Pj4yXT1jW2YrND4+Ml07Zj1lfDA7Zz1mO2o9aTtpPWkrOHwwO2s9ajts
PWk7aT1pKzh8MDttPWw7bj1pO2k9aSs4fDA7bz1uO3A9aTtpPWkrOHwwO3E9cDtyPWk7aT1pKzh8
MDtzPXI7dD1pO2k9aSs4fDA7dT10O3Y9aTtpPWkrOHwwO3c9djt4PWk7aT1pKzh8MDt5PXg7ej1p
O2k9aSs4fDA7QT1pO2k9aSs4fDA7Qj1pO2k9aSs4fDA7Qz1pO2k9aSs4fDA7RD1DO0U9aTtpPWkr
OHwwO0Y9aTtpPWkrOHwwO0c9aTtpPWkrOHwwO0g9RztJPWk7aT1pKzh8MDtKPUk7Sz1pO2k9aSs4
fDA7TD1pO2k9aSs4fDA7TT1pO2k9aSs4fDA7Tj1NO089Yis0fDA7UD1jW08+PjJdfDA7UT1hKzR8
MDtSPWNbUT4+Ml18MDtpZigoUHwwKT09KFJ8MCkpe2k9ZTtyZXR1cm59Uz1ifDA7VD1hfDA7VT1h
O2E9eSs0fDA7Vj14O1c9enwwO1g9eis0fDA7WT1BfDA7Wj1BKzR8MDtfPUJ8MDskPUIrNHwwO2Fh
PUV8MDthYj1FKzR8MDthYz1GfDA7YWQ9Ris0fDA7YWU9YjtiPUt8MDthZj1LKzR8MDthZz1MfDA7
YWg9TCs0fDA7YWk9UDtQPVI7TDcyNTp3aGlsZSgxKXthaj1jW1M+PjJdfDA7Uj1jW1Q+PjJdfDA7
YWs9Y1thaj4+Ml18MDthbD1jW1I+PjJdfDA7YW09UC1hbD4+Mzthbj0oYWktYWs+PjMpKyhhai1S
PDw3KS1hbXwwO3N3aXRjaChhbnwwKXtjYXNlIDU6e2FvPTYzMDticmVhayBMNzI1O2JyZWFrfTtj
YXNlIDQ6e2FvPTYxMDticmVhayBMNzI1O2JyZWFrfTtjYXNlIDI6e2FvPTU5MzticmVhayBMNzI1
O2JyZWFrfTtjYXNlIDM6e2FvPTU5NzticmVhayBMNzI1O2JyZWFrfTtjYXNlIDA6Y2FzZSAxOnth
bz03NjA7YnJlYWsgTDcyNTticmVha307ZGVmYXVsdDp7fX1pZigoYW58MCk8MzEpe2FvPTY0Mzti
cmVha31pZigoYWl8MCk9PShha3wwKSl7YXA9YWotNHwwO2FxPWFwO2FyPShjW2FwPj4yXXwwKSs0
MDk2fDB9ZWxzZXthcT1hajthcj1haX1hcD1hci04fDA7YXM9KGFufDApLzJ8MDthdD0oYW4rMXww
KT4+PjA+Mjtkb3tpZigoYW58MCk+OTk5KXtkb3tpZihhdCl7YXU9YW0rYXN8MDtpZigoYXV8MCk+
MCl7YXY9UisoKChhdXwwKS81MTJ8MCk8PDIpfDA7YXc9Y1thdj4+Ml18MDtheD1hdysoKChhdXww
KSU1MTJ8MCk8PDMpfDA7YXk9YXY7YXo9YXc7YnJlYWt9ZWxzZXthdz01MTEtYXV8MDthdT1SKygo
KGF3fDApLy01MTJ8MCk8PDIpfDA7YXY9Y1thdT4+Ml18MDtheD1hdisoNTExLSgoYXd8MCklNTEy
fDApPDwzKXwwO2F5PWF1O2F6PWF2O2JyZWFrfX1lbHNle2F4PVA7YXk9Ujthej1hbH19d2hpbGUo
MCk7YXY9KGFufDApLzR8MDthdT1jW1U+PjJdfDA7YXc9Y1tVKzQ+PjJdfDA7Y1t2Pj4yXT1hdTtj
W3YrND4+Ml09YXc7Y1t4Pj4yXT1hdTtjW3grND4+Ml09YXc7YUE9KGFuKzN8MCk+Pj4wPjY7YUI9
YXU7ZG97aWYoYUEpe2F1PShhdy0oY1thQj4+Ml18MCk+PjMpK2F2fDA7aWYoKGF1fDApPjApe2FD
PWFCKygoKGF1fDApLzUxMnwwKTw8Mil8MDtjW1Y+PjJdPWFDO2NbYT4+Ml09KGNbYUM+PjJdfDAp
KygoKGF1fDApJTUxMnwwKTw8Myk7Y1tXPj4yXT1heTtjW1g+PjJdPWF4O2NbWT4+Ml09YXk7Y1ta
Pj4yXT1heDtpZighYUEpe2JyZWFrfX1lbHNle2FDPTUxMS1hdXwwO2F1PWFCKygoKGFDfDApLy01
MTJ8MCk8PDIpfDA7Y1tWPj4yXT1hdTtjW2E+PjJdPShjW2F1Pj4yXXwwKSsoNTExLSgoYUN8MCkl
NTEyfDApPDwzKTtjW1c+PjJdPWF5O2NbWD4+Ml09YXg7Y1tZPj4yXT1heTtjW1o+PjJdPWF4fWFD
PShheC1hej4+MykrYXZ8MDtpZigoYUN8MCk+MCl7YXU9YXkrKCgoYUN8MCkvNTEyfDApPDwyKXww
O2NbWT4+Ml09YXU7Y1taPj4yXT0oY1thdT4+Ml18MCkrKCgoYUN8MCklNTEyfDApPDwzKTticmVh
a31lbHNle2F1PTUxMS1hQ3wwO2FDPWF5KygoKGF1fDApLy01MTJ8MCk8PDIpfDA7Y1tZPj4yXT1h
QztjW1o+PjJdPShjW2FDPj4yXXwwKSsoNTExLSgoYXV8MCklNTEyfDApPDwzKTticmVha319ZWxz
ZXtjW1c+PjJdPWF5O2NbWD4+Ml09YXg7Y1tZPj4yXT1heTtjW1o+PjJdPWF4fX13aGlsZSgwKTtj
W18+PjJdPWFxO2NbJD4+Ml09YXA7YUQ9Y0wodyx5LHosQSxCLDApfDA7YUU9YXh9ZWxzZXtkb3tp
ZihhdCl7YXY9YW0rYXN8MDtpZigoYXZ8MCk+MCl7YUY9KGNbUisoKChhdnwwKS81MTJ8MCk8PDIp
Pj4yXXwwKSsoKChhdnwwKSU1MTJ8MCk8PDMpfDA7YnJlYWt9ZWxzZXthQj01MTEtYXZ8MDthRj0o
Y1tSKygoKGFCfDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgoYUJ8MCklNTEyfDApPDwzKXww
O2JyZWFrfX1lbHNle2FGPVB9fXdoaWxlKDApO2FCPWNbVSs0Pj4yXXwwO2FHPStoW2FGPj4zXTth
SD0raFthQj4+M107YUk9K2hbYXA+PjNdO2F2PWFJPGFHO2lmKGFHPj1hSCl7aWYoIWF2KXthRD0w
O2FFPWFGO2JyZWFrfWhbYUY+PjNdPWFJO2hbYXA+PjNdPWFHO2FKPStoW2FGPj4zXTthSz0raFth
Qj4+M107aWYoYUo+PWFLKXthRD0xO2FFPWFGO2JyZWFrfWhbYUI+PjNdPWFKO2hbYUY+PjNdPWFL
O2FEPTI7YUU9YUY7YnJlYWt9aWYoYXYpe2hbYUI+PjNdPWFJO2hbYXA+PjNdPWFIO2FEPTE7YUU9
YUY7YnJlYWt9aFthQj4+M109YUc7aFthRj4+M109YUg7YUc9K2hbYXA+PjNdO2lmKGFHPj1hSCl7
YUQ9MTthRT1hRjticmVha31oW2FGPj4zXT1hRztoW2FwPj4zXT1hSDthRD0yO2FFPWFGfX13aGls
ZSgwKTtSPWNbVD4+Ml18MDthcz1jW1E+PjJdfDA7YUg9K2hbYXM+PjNdO2FHPStoW2FFPj4zXTtk
b3tpZihhSDxhRyl7YUw9YUQ7YU09YXE7YU49YXA7YW89NzA3fWVsc2V7YW09YXE7YXQ9YXA7YW49
Y1thcT4+Ml18MDt3aGlsZSgxKXtpZigoYXR8MCk9PShhbnwwKSl7YWw9YW0tNHwwO2FCPWNbYWw+
PjJdfDA7YU89YWw7YVA9YUIrNDA5NnwwO2FRPWFCfWVsc2V7YU89YW07YVA9YXQ7YVE9YW59YVI9
YVAtOHwwO2lmKChhc3wwKT09KGFSfDApKXticmVha31hUz0raFthUj4+M107aWYoYVM8YUcpe2Fv
PTcwNjticmVha31lbHNle2FtPWFPO2F0PWFSO2FuPWFRfX1pZigoYW98MCk9PTcwNil7YW89MDto
W2FzPj4zXT1hUztoW2FSPj4zXT1hSDthTD1hRCsxfDA7YU09YU87YU49YVI7YW89NzA3O2JyZWFr
fWFuPWFzKzh8MDthdD1jW1I+PjJdfDA7aWYoKGFuLWF0fDApPT00MDk2KXthbT1SKzR8MDthQj1j
W2FtPj4yXXwwO2FUPWFCO2FVPWFtO2FWPWFCfWVsc2V7YVQ9YW47YVU9UjthVj1hdH1hdD1jW1M+
PjJdfDA7YW49Y1tPPj4yXXwwO2lmKChhbnwwKT09KGNbYXQ+PjJdfDApKXthQj1hdC00fDA7YVc9
YUI7YVg9KGNbYUI+PjJdfDApKzQwOTZ8MH1lbHNle2FXPWF0O2FYPWFufWFuPWFYLTh8MDthST0r
aFthbj4+M107ZG97aWYoYUg8YUkpe2FZPWFUO2FaPWFVO2FfPWFWfWVsc2V7YXQ9YVQ7YUI9YVU7
YW09YVY7TDc4Njp3aGlsZSgxKXthJD1hdDt3aGlsZSgxKXtpZigoYSR8MCk9PShhbnwwKSl7YW89
NzY3O2JyZWFrIEw3MjV9YTA9K2hbYSQ+PjNdO2lmKGFIPGEwKXticmVhayBMNzg2fWFsPWEkKzh8
MDtpZigoYWwtYW18MCk9PTQwOTYpe2JyZWFrfWVsc2V7YSQ9YWx9fWFsPWFCKzR8MDthdj1jW2Fs
Pj4yXXwwO2F0PWF2O2FCPWFsO2FtPWF2fWhbYSQ+PjNdPWFJO2hbYW4+PjNdPWEwO2FtPWEkKzh8
MDthdD1jW2FCPj4yXXwwO2lmKChhbS1hdHwwKSE9NDA5Nil7YVk9YW07YVo9YUI7YV89YXQ7YnJl
YWt9YXQ9YUIrNHwwO2FtPWNbYXQ+PjJdfDA7YVk9YW07YVo9YXQ7YV89YW19fXdoaWxlKDApO2lm
KChhWXwwKT09KGFufDApKXthbz03Njg7YnJlYWsgTDcyNX1lbHNle2ExPWFZO2EyPWFaO2EzPWFX
O2E0PWFuO2E1PWFffXdoaWxlKDEpe2FJPStoW2NbUT4+Ml0+PjNdO2FtPWExO2E2PWEyO2F0PWE1
O0w3OTg6d2hpbGUoMSl7YTc9YW07d2hpbGUoMSl7YTg9K2hbYTc+PjNdO2lmKGFJPGE4KXticmVh
ayBMNzk4fWF2PWE3Kzh8MDtpZigoYXYtYXR8MCk9PTQwOTYpe2JyZWFrfWVsc2V7YTc9YXZ9fWF2
PWE2KzR8MDthbD1jW2F2Pj4yXXwwO2FtPWFsO2E2PWF2O2F0PWFsfWF0PWEzO2FtPWE0O2FCPWNb
YTM+PjJdfDA7d2hpbGUoMSl7aWYoKGFtfDApPT0oYUJ8MCkpe2FsPWF0LTR8MDthdj1jW2FsPj4y
XXwwO2E5PWFsO2JhPWF2KzQwOTZ8MDtiYj1hdn1lbHNle2E5PWF0O2JhPWFtO2JiPWFCfWJjPWJh
LTh8MDtiZD0raFtiYz4+M107aWYoYUk8YmQpe2F0PWE5O2FtPWJjO2FCPWJifWVsc2V7YnJlYWt9
fWlmKGE2Pj4+MD49YTk+Pj4wKXtpZihhNz4+PjA+PWJjPj4+MHwoYTZ8MCkhPShhOXwwKSl7YnJl
YWt9fWhbYTc+PjNdPWJkO2hbYmM+PjNdPWE4O2FCPWE3Kzh8MDthbT1jW2E2Pj4yXXwwO2lmKChh
Qi1hbXwwKSE9NDA5Nil7YTE9YUI7YTI9YTY7YTM9YTk7YTQ9YmM7YTU9YW07Y29udGludWV9YW09
YTYrNHwwO2FCPWNbYW0+PjJdfDA7YTE9YUI7YTI9YW07YTM9YTk7YTQ9YmM7YTU9YUJ9Y1tUPj4y
XT1hNjtjW1E+PjJdPWE3O2JlPWE3fX13aGlsZSgwKTtMODE2OmRve2lmKChhb3wwKT09NzA3KXth
bz0wO2FwPWFzKzh8MDthbj1jW1I+PjJdfDA7aWYoKGFwLWFufDApPT00MDk2KXthQj1SKzR8MDth
bT1jW2FCPj4yXXwwO2JmPWFtO2JnPWFCO2JoPWFtfWVsc2V7YmY9YXA7Ymc9UjtiaD1hbn1pZihi
Zz4+PjA8YU0+Pj4wKXtiaT1hTDtiaj1iZjtiaz1iZztibD1hRTtibT1hTTtibj1hTjtibz1iaDth
bz03MTF9ZWxzZXtpZigoYmd8MCk9PShhTXwwKSZiZj4+PjA8YU4+Pj4wKXtiaT1hTDtiaj1iZjti
az1iZztibD1hRTtibT1hTTtibj1hTjtibz1iaDthbz03MTF9ZWxzZXticD1hTDticT1iZjticj1i
Zzticz1hRX19TDgyMzpkb3tpZigoYW98MCk9PTcxMSl7d2hpbGUoMSl7YW89MDthSD0raFtibD4+
M107YW49Ymo7YXA9Yms7YW09Ym87TDgyNjp3aGlsZSgxKXtidD1hbjt3aGlsZSgxKXtidT0raFti
dD4+M107aWYoYnU+PWFIKXticmVhayBMODI2fWFCPWJ0Kzh8MDtpZigoYUItYW18MCk9PTQwOTYp
e2JyZWFrfWVsc2V7YnQ9YUJ9fWFCPWFwKzR8MDthdD1jW2FCPj4yXXwwO2FuPWF0O2FwPWFCO2Ft
PWF0fWFtPWJtO2FuPWJuO2F0PWNbYm0+PjJdfDA7d2hpbGUoMSl7aWYoKGFufDApPT0oYXR8MCkp
e2FCPWFtLTR8MDthdj1jW2FCPj4yXXwwO2J2PWFCO2J3PWF2KzQwOTZ8MDtieD1hdn1lbHNle2J2
PWFtO2J3PWFuO2J4PWF0fWJ5PWJ3LTh8MDtiej0raFtieT4+M107aWYoYno+PWFIKXthbT1idjth
bj1ieTthdD1ieH1lbHNle2JyZWFrfX1pZihidj4+PjA8YXA+Pj4wKXticD1iaTticT1idDticj1h
cDticz1ibDticmVhayBMODIzfWlmKChidnwwKT09KGFwfDApJmJ5Pj4+MDxidD4+PjApe2JwPWJp
O2JxPWJ0O2JyPWFwO2JzPWJsO2JyZWFrIEw4MjN9aFtidD4+M109Yno7aFtieT4+M109YnU7YXQ9
YmkrMXwwO2FuPShibHwwKT09KGJ0fDApP2J5OmJsO2FtPWJ0Kzh8MDthdj1jW2FwPj4yXXwwO2lm
KChhbS1hdnwwKSE9NDA5Nil7Ymk9YXQ7Ymo9YW07Yms9YXA7Ymw9YW47Ym09YnY7Ym49Ynk7Ym89
YXY7YW89NzExO2NvbnRpbnVlfWF2PWFwKzR8MDthbT1jW2F2Pj4yXXwwO2JpPWF0O2JqPWFtO2Jr
PWF2O2JsPWFuO2JtPWJ2O2JuPWJ5O2JvPWFtO2FvPTcxMX19fXdoaWxlKDApO2Rve2lmKChicXww
KT09KGJzfDApKXtiQT1icH1lbHNle2FIPStoW2JzPj4zXTthRz0raFticT4+M107aWYoYUg+PWFH
KXtiQT1icDticmVha31oW2JxPj4zXT1hSDtoW2JzPj4zXT1hRztiQT1icCsxfDB9fXdoaWxlKDAp
O2Rve2lmKChiQXwwKT09MCl7YW09Y1tVKzQ+PjJdfDA7Y1tDPj4yXT1jW1U+PjJdO2NbQys0Pj4y
XT1hbTtjW2FhPj4yXT1icjtjW2FiPj4yXT1icTthbT1jTihELEUsMCl8MDtjW2FjPj4yXT1icjtj
W2FkPj4yXT1icTthbj1icS0oY1ticj4+Ml18MCk+PjM7YXY9YW4rMXwwO2lmKChhdnwwKT4wKXth
dD1icisoKChhdnwwKS81MTJ8MCk8PDIpfDA7Y1thYz4+Ml09YXQ7YkI9KGNbYXQ+PjJdfDApKygo
KGF2fDApJTUxMnwwKTw8Myl8MH1lbHNle2F2PTUxMC1hbnwwO2FuPWJyKygoKGF2fDApLy01MTJ8
MCk8PDIpfDA7Y1thYz4+Ml09YW47YkI9KGNbYW4+PjJdfDApKyg1MTEtKChhdnwwKSU1MTJ8MCk8
PDMpfDB9Y1thZD4+Ml09YkI7YXY9Y1thZSs0Pj4yXXwwO2NbRz4+Ml09Y1thZT4+Ml07Y1tHKzQ+
PjJdPWF2O2lmKGNOKEYsSCwwKXwwKXtpZihhbSl7YW89NzcwO2JyZWFrIEw3MjV9Y1tTPj4yXT1i
cjtjW08+PjJdPWJxO2JlPWNbUT4+Ml18MDticmVhayBMODE2fWlmKCFhbSl7YnJlYWt9YW09YnEr
OHwwO2lmKChhbS0oY1ticj4+Ml18MCl8MCk9PTQwOTYpe2F2PWJyKzR8MDtiQz1jW2F2Pj4yXXww
O2JEPWF2fWVsc2V7YkM9YW07YkQ9YnJ9Y1tUPj4yXT1iRDtjW1E+PjJdPWJDO2JlPWJDO2JyZWFr
IEw4MTZ9fXdoaWxlKDApO2FtPWNbUT4+Ml18MDtpZigoYnF8MCk9PShhbXwwKSl7YkU9MH1lbHNl
e2F2PWNbVD4+Ml18MDtiRT0oYnEtKGNbYnI+PjJdfDApPj4zKSsoYnItYXY8PDcpLShhbS0oY1th
dj4+Ml18MCk+PjMpfDB9YXY9Y1tPPj4yXXwwO2lmKChhdnwwKT09KGJxfDApKXtiRj0wfWVsc2V7
YW49Y1tTPj4yXXwwO2JGPShhdi0oY1thbj4+Ml18MCk+PjMpKyhhbi1icjw8NyktKGJxLShjW2Jy
Pj4yXXwwKT4+Myl8MH1pZigoYkV8MCk8KGJGfDApKXthbj1jW1UrND4+Ml18MDtjW0k+PjJdPWNb
VT4+Ml07Y1tJKzQ+PjJdPWFuO2NbYj4+Ml09YnI7Y1thZj4+Ml09YnE7Y0soSixLLGQpO2FuPWJx
Kzh8MDtpZigoYW4tKGNbYnI+PjJdfDApfDApPT00MDk2KXthdj1icis0fDA7Ykc9Y1thdj4+Ml18
MDtiSD1hdn1lbHNle2JHPWFuO2JIPWJyfWNbVD4+Ml09Ykg7Y1tRPj4yXT1iRztiZT1iRzticmVh
a31jW2FnPj4yXT1icjtjW2FoPj4yXT1icTthbj1icS0oY1ticj4+Ml18MCk+PjM7YXY9YW4rMXww
O2lmKChhdnwwKT4wKXthdD1icisoKChhdnwwKS81MTJ8MCk8PDIpfDA7Y1thZz4+Ml09YXQ7Ykk9
KGNbYXQ+PjJdfDApKygoKGF2fDApJTUxMnwwKTw8Myl8MH1lbHNle2F2PTUxMC1hbnwwO2FuPWJy
KygoKGF2fDApLy01MTJ8MCk8PDIpfDA7Y1thZz4+Ml09YW47Ykk9KGNbYW4+PjJdfDApKyg1MTEt
KChhdnwwKSU1MTJ8MCk8PDMpfDB9Y1thaD4+Ml09Ykk7YXY9Y1thZSs0Pj4yXXwwO2NbTT4+Ml09
Y1thZT4+Ml07Y1tNKzQ+PjJdPWF2O2NLKEwsTixkKTtjW1M+PjJdPWJyO2NbTz4+Ml09YnE7YmU9
YW19fXdoaWxlKDApO1I9Y1tPPj4yXXwwO2lmKChSfDApPT0oYmV8MCkpe2FvPTc2OTticmVha31l
bHNle2FpPVI7UD1iZX19aWYoKGFvfDApPT02MzApe2JlPWNbVT4+Ml18MDticT1jW1UrND4+Ml18
MDtjW2Y+PjJdPWJlO2NbZis0Pj4yXT1icTtjW2o+PjJdPWJlO2Nbais0Pj4yXT1icTtmPWJxO2Jy
PWo7aj1iZTtkPWYtKGNbaj4+Ml18MCk+PjM7Tj1kKzF8MDtpZigoTnwwKT4wKXtMPWorKCgoTnww
KS81MTJ8MCk8PDIpfDA7Y1ticj4+Ml09TDtiSj0oY1tMPj4yXXwwKSsoKChOfDApJTUxMnwwKTw8
Myl8MH1lbHNle049NTEwLWR8MDtkPWorKCgoTnwwKS8tNTEyfDApPDwyKXwwO2NbYnI+PjJdPWQ7
Yko9KGNbZD4+Ml18MCkrKDUxMS0oKE58MCklNTEyfDApPDwzKXwwfWNbays0Pj4yXT1iSjtjW2w+
PjJdPWJlO2NbbCs0Pj4yXT1icTtiSj1sO2w9Zi0oY1tqPj4yXXwwKT4+MztOPWwrMnwwO2lmKChO
fDApPjApe2Q9aisoKChOfDApLzUxMnwwKTw8Mil8MDtjW2JKPj4yXT1kO2JLPShjW2Q+PjJdfDAp
KygoKE58MCklNTEyfDApPDwzKXwwfWVsc2V7Tj01MDktbHwwO2w9aisoKChOfDApLy01MTJ8MCk8
PDIpfDA7Y1tiSj4+Ml09bDtiSz0oY1tsPj4yXXwwKSsoNTExLSgoTnwwKSU1MTJ8MCk8PDMpfDB9
Y1ttKzQ+PjJdPWJLO2Nbbj4+Ml09YmU7Y1tuKzQ+PjJdPWJxO2JxPW47bj1mLShjW2o+PjJdfDAp
Pj4zO2Y9biszfDA7aWYoKGZ8MCk+MCl7YmU9aisoKChmfDApLzUxMnwwKTw8Mil8MDtjW2JxPj4y
XT1iZTtiTD0oY1tiZT4+Ml18MCkrKCgoZnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtmPTUwOC1ufDA7
bj1qKygoKGZ8MCkvLTUxMnwwKTw8Mil8MDtjW2JxPj4yXT1uO2JMPShjW24+PjJdfDApKyg1MTEt
KChmfDApJTUxMnwwKTw8Myl8MH1jW28rND4+Ml09Ykw7aWYoKGFpfDApPT0oYWt8MCkpe2JMPWFq
LTR8MDtjW1M+PjJdPWJMO2Y9KGNbYkw+PjJdfDApKzQwOTZ8MDtjW08+PjJdPWY7Yk09Zn1lbHNl
e2JNPWFpfWNbTz4+Ml09Yk0tODtiTT1jW2FlKzQ+PjJdfDA7Y1twPj4yXT1jW2FlPj4yXTtjW3Ar
ND4+Ml09Yk07Y0woZyxrLG0sbyxxLDApfDA7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NjEw
KXtxPWNbVT4+Ml18MDtvPWNbVSs0Pj4yXXwwO209bztrPW8tKGNbcT4+Ml18MCk+PjM7bz1rKzF8
MDtpZigob3wwKT4wKXtiTj0oY1txKygoKG98MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgob3wwKSU1
MTJ8MCk8PDMpfDB9ZWxzZXtvPTUxMC1rfDA7Yk49KGNbcSsoKChvfDApLy01MTJ8MCk8PDIpPj4y
XXwwKSsoNTExLSgob3wwKSU1MTJ8MCk8PDMpfDB9bz1rKzJ8MDtpZigob3wwKT4wKXtiTz0oY1tx
KygoKG98MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgob3wwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtvPTUw
OS1rfDA7Yk89KGNbcSsoKChvfDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgob3wwKSU1MTJ8
MCk8PDMpfDB9aWYoKGFpfDApPT0oYWt8MCkpe289YWotNHwwO2NbUz4+Ml09bztxPShjW28+PjJd
fDApKzQwOTZ8MDtjW08+PjJdPXE7YlA9cX1lbHNle2JQPWFpfWNbTz4+Ml09YlAtODtiUD1jW2Fl
KzQ+PjJdfDA7YnU9K2hbYk4+PjNdO2J6PStoW20+PjNdO2E4PStoW2JPPj4zXTtxPWE4PGJ1O2Rv
e2lmKGJ1PGJ6KXtpZihxKXtoW20+PjNdPWE4O2hbYk8+PjNdPWJ6O2JRPWJ6O2JyZWFrfWhbbT4+
M109YnU7aFtiTj4+M109Yno7YmQ9K2hbYk8+PjNdO2lmKGJkPj1ieil7YlE9YmQ7YnJlYWt9aFti
Tj4+M109YmQ7aFtiTz4+M109Yno7YlE9Ynp9ZWxzZXtpZighcSl7YlE9YTg7YnJlYWt9aFtiTj4+
M109YTg7aFtiTz4+M109YnU7YmQ9K2hbYk4+PjNdO2EwPStoW20+PjNdO2lmKGJkPj1hMCl7YlE9
YnU7YnJlYWt9aFttPj4zXT1iZDtoW2JOPj4zXT1hMDtiUT0raFtiTz4+M119fXdoaWxlKDApO2J1
PStoW2JQPj4zXTtpZihidT49YlEpe2k9ZTtyZXR1cm59aFtiTz4+M109YnU7aFtiUD4+M109YlE7
YlE9K2hbYk8+PjNdO2J1PStoW2JOPj4zXTtpZihiUT49YnUpe2k9ZTtyZXR1cm59aFtiTj4+M109
YlE7aFtiTz4+M109YnU7YnU9K2hbYk4+PjNdO2JRPStoW20+PjNdO2lmKGJ1Pj1iUSl7aT1lO3Jl
dHVybn1oW20+PjNdPWJ1O2hbYk4+PjNdPWJRO2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTY0
Myl7Yk49Y1tVKzQ+PjJdfDA7Y1tyPj4yXT1jW1U+PjJdO2Nbcis0Pj4yXT1iTjtiTj1jW2FlKzQ+
PjJdfDA7Y1t0Pj4yXT1jW2FlPj4yXTtjW3QrND4+Ml09Yk47Y00ocyx1LDApO2k9ZTtyZXR1cm59
ZWxzZSBpZigoYW98MCk9PTU5Myl7aWYoKGFpfDApPT0oYWt8MCkpe3U9YWotNHwwO2NbUz4+Ml09
dTtzPShjW3U+PjJdfDApKzQwOTZ8MDtjW08+PjJdPXM7YlI9c31lbHNle2JSPWFpfXM9YlItOHww
O2NbTz4+Ml09cztiUT0raFtzPj4zXTtidT0raFtQPj4zXTtpZihiUT49YnUpe2k9ZTtyZXR1cm59
aFtQPj4zXT1iUTtoW3M+PjNdPWJ1O2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTU5Nyl7cz1j
W1U+PjJdfDA7UD1jW1UrND4+Ml18MDtVPVA7YlI9UC0oY1tzPj4yXXwwKT4+MztQPWJSKzF8MDtp
ZigoUHwwKT4wKXtiUz0oY1tzKygoKFB8MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgoUHwwKSU1MTJ8
MCk8PDMpfDB9ZWxzZXtQPTUxMC1iUnwwO2JTPShjW3MrKCgoUHwwKS8tNTEyfDApPDwyKT4+Ml18
MCkrKDUxMS0oKFB8MCklNTEyfDApPDwzKXwwfWlmKChhaXwwKT09KGFrfDApKXthaz1hai00fDA7
Y1tTPj4yXT1haztTPShjW2FrPj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1TO2JUPVN9ZWxzZXtiVD1h
aX1jW08+PjJdPWJULTg7YlQ9Y1thZSs0Pj4yXXwwO2J1PStoW2JTPj4zXTtiUT0raFtVPj4zXTth
OD0raFtiVD4+M107YWU9YTg8YnU7aWYoYnU+PWJRKXtpZighYWUpe2k9ZTtyZXR1cm59aFtiUz4+
M109YTg7aFtiVD4+M109YnU7Yno9K2hbYlM+PjNdO2EwPStoW1U+PjNdO2lmKGJ6Pj1hMCl7aT1l
O3JldHVybn1oW1U+PjNdPWJ6O2hbYlM+PjNdPWEwO2k9ZTtyZXR1cm59aWYoYWUpe2hbVT4+M109
YTg7aFtiVD4+M109YlE7aT1lO3JldHVybn1oW1U+PjNdPWJ1O2hbYlM+PjNdPWJRO2J1PStoW2JU
Pj4zXTtpZihidT49YlEpe2k9ZTtyZXR1cm59aFtiUz4+M109YnU7aFtiVD4+M109YlE7aT1lO3Jl
dHVybn1lbHNlIGlmKChhb3wwKT09NzYwKXtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT03Njcp
e2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTc2OCl7aT1lO3JldHVybn1lbHNlIGlmKChhb3ww
KT09NzY5KXtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT03NzApe2k9ZTtyZXR1cm59fWZ1bmN0
aW9uIGNMKGEsYixkLGUsZixnKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2
YXIgaj0wLGs9MCxsPTAsbT0wLG49MC4wLG89MC4wLHA9MC4wLHE9MCxyPTAscz0wLjAsdD0wLjAs
dT0wLjAsdj0wLHc9MDtnPWk7aj1hO2E9aTtpPWkrOHwwO2NbYT4+Ml09Y1tqPj4yXTtjW2ErND4+
Ml09Y1tqKzQ+PjJdO2o9YjtiPWk7aT1pKzh8MDtjW2I+PjJdPWNbaj4+Ml07Y1tiKzQ+PjJdPWNb
ais0Pj4yXTtqPWQ7ZD1pO2k9aSs4fDA7Y1tkPj4yXT1jW2o+PjJdO2NbZCs0Pj4yXT1jW2orND4+
Ml07aj1lO2U9aTtpPWkrOHwwO2NbZT4+Ml09Y1tqPj4yXTtjW2UrND4+Ml09Y1tqKzQ+PjJdO2o9
ZjtmPWk7aT1pKzh8MDtjW2Y+PjJdPWNbaj4+Ml07Y1tmKzQ+PjJdPWNbais0Pj4yXTtqPWNbYSs0
Pj4yXXwwO2s9Y1tiKzQ+PjJdfDA7bD1jW2QrND4+Ml18MDttPWNbZSs0Pj4yXXwwO249K2hbaz4+
M107bz0raFtqPj4zXTtwPStoW2w+PjNdO3E9cDxuO2Rve2lmKG48byl7aWYocSl7aFtqPj4zXT1w
O2hbbD4+M109bztyPTE7cz1vO2JyZWFrfWhbaj4+M109bjtoW2s+PjNdPW87dD0raFtsPj4zXTtp
Zih0Pj1vKXtyPTE7cz10O2JyZWFrfWhbaz4+M109dDtoW2w+PjNdPW87cj0yO3M9b31lbHNle2lm
KCFxKXtyPTA7cz1wO2JyZWFrfWhbaz4+M109cDtoW2w+PjNdPW47dD0raFtrPj4zXTt1PStoW2o+
PjNdO2lmKHQ+PXUpe3I9MTtzPW47YnJlYWt9aFtqPj4zXT10O2hbaz4+M109dTtyPTI7cz0raFts
Pj4zXX19d2hpbGUoMCk7bj0raFttPj4zXTtkb3tpZihuPHMpe2hbbD4+M109bjtoW20+PjNdPXM7
cD0raFtsPj4zXTtvPStoW2s+PjNdO2lmKHA+PW8pe3Y9cisxfDA7YnJlYWt9aFtrPj4zXT1wO2hb
bD4+M109bztvPStoW2s+PjNdO3A9K2hbaj4+M107aWYobz49cCl7dj1yKzJ8MDticmVha31oW2o+
PjNdPW87aFtrPj4zXT1wO3Y9ciszfDB9ZWxzZXt2PXJ9fXdoaWxlKDApO3I9Y1tmKzQ+PjJdfDA7
Zj1jW2UrND4+Ml18MDtzPStoW3I+PjNdO249K2hbZj4+M107aWYocz49bil7dz12O2k9ZztyZXR1
cm4gd3wwfWhbZj4+M109cztoW3I+PjNdPW47cj1jW2QrND4+Ml18MDtuPStoW2Y+PjNdO3M9K2hb
cj4+M107aWYobj49cyl7dz12KzF8MDtpPWc7cmV0dXJuIHd8MH1oW3I+PjNdPW47aFtmPj4zXT1z
O2Y9Y1tiKzQ+PjJdfDA7cz0raFtyPj4zXTtuPStoW2Y+PjNdO2lmKHM+PW4pe3c9disyfDA7aT1n
O3JldHVybiB3fDB9aFtmPj4zXT1zO2hbcj4+M109bjtyPWNbYSs0Pj4yXXwwO249K2hbZj4+M107
cz0raFtyPj4zXTtpZihuPj1zKXt3PXYrM3wwO2k9ZztyZXR1cm4gd3wwfWhbcj4+M109bjtoW2Y+
PjNdPXM7dz12KzR8MDtpPWc7cmV0dXJuIHd8MH1mdW5jdGlvbiBjTShhLGIsZCl7YT1hfDA7Yj1i
fDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLjAscD0wLjAs
cT0wLjAscj0wLjAscz0wLjAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtkPWk7ZT1h
O2E9aTtpPWkrOHwwO2NbYT4+Ml09Y1tlPj4yXTtjW2ErND4+Ml09Y1tlKzQ+PjJdO2U9YjtiPWk7
aT1pKzh8MDtjW2I+PjJdPWNbZT4+Ml07Y1tiKzQ+PjJdPWNbZSs0Pj4yXTtlPWNbYT4+Ml18MDtm
PWErNHwwO2c9KGNbZj4+Ml18MCktKGNbZT4+Ml18MCk+PjM7aj1nKzJ8MDtpZigoanwwKT4wKXtr
PWUrKCgoanwwKS81MTJ8MCk8PDIpfDA7bD0oY1trPj4yXXwwKSsoKChqfDApJTUxMnwwKTw8Myl8
MDttPWt9ZWxzZXtrPTUwOS1nfDA7Zz1lKygoKGt8MCkvLTUxMnwwKTw8Mil8MDtsPShjW2c+PjJd
fDApKyg1MTEtKChrfDApJTUxMnwwKTw8Myl8MDttPWd9Zz1hO2E9Y1tnPj4yXXwwO2s9Y1tnKzQ+
PjJdfDA7Zz1rO2U9ay0oY1thPj4yXXwwKT4+MztrPWUrMXwwO2lmKChrfDApPjApe249KGNbYSso
KChrfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKGt8MCklNTEyfDApPDwzKXwwfWVsc2V7az01MTAt
ZXwwO249KGNbYSsoKChrfDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgoa3wwKSU1MTJ8MCk8
PDMpfDB9bz0raFtuPj4zXTtwPStoW2c+PjNdO3E9K2hbbD4+M107az1xPG87ZG97aWYobzxwKXtp
ZihrKXtoW2c+PjNdPXE7aFtsPj4zXT1wO2JyZWFrfWhbZz4+M109bztoW24+PjNdPXA7cj0raFts
Pj4zXTtpZihyPj1wKXticmVha31oW24+PjNdPXI7aFtsPj4zXT1wfWVsc2V7aWYoIWspe2JyZWFr
fWhbbj4+M109cTtoW2w+PjNdPW87cj0raFtuPj4zXTtzPStoW2c+PjNdO2lmKHI+PXMpe2JyZWFr
fWhbZz4+M109cjtoW24+PjNdPXN9fXdoaWxlKDApO249bC0oY1ttPj4yXXwwKT4+MztnPW4rMXww
O2lmKChnfDApPjApe2s9bSsoKChnfDApLzUxMnwwKTw8Mil8MDthPWNbaz4+Ml18MDt0PWs7dT1h
KygoKGd8MCklNTEyfDApPDwzKXwwO3Y9YX1lbHNle2E9NTEwLW58MDtuPW0rKCgoYXwwKS8tNTEy
fDApPDwyKXwwO2c9Y1tuPj4yXXwwO3Q9bjt1PWcrKDUxMS0oKGF8MCklNTEyfDApPDwzKXwwO3Y9
Z31nPWIrNHwwO2I9bDtsPXQ7dD11O3U9bTttPXY7TDEwMjI6d2hpbGUoMSl7dj1iO2E9dDtuPXU7
az1tO3doaWxlKDEpe2lmKChhfDApPT0oY1tnPj4yXXwwKSl7YnJlYWsgTDEwMjJ9bz0raFthPj4z
XTtxPStoW3Y+PjNdO2lmKG88cSl7ZT1uO2o9djt3PWE7cD1xO3doaWxlKDEpe2hbdz4+M109cDtp
ZigoanwwKT09KGNbZj4+Ml18MCkpe2JyZWFrfWlmKChqfDApPT0oY1tlPj4yXXwwKSl7eD1lLTR8
MDt5PXg7ej0oY1t4Pj4yXXwwKSs0MDk2fDB9ZWxzZXt5PWU7ej1qfXg9ei04fDA7cT0raFt4Pj4z
XTtpZihvPHEpe2U9eTt3PWo7aj14O3A9cX1lbHNle2JyZWFrfX1oW2o+PjNdPW87QT1jW2w+PjJd
fDB9ZWxzZXtBPWt9dz1hKzh8MDtpZigody1BfDApPT00MDk2KXticmVha31lbHNle3Y9YTthPXc7
bj1sO2s9QX19az1sKzR8MDtuPWNbaz4+Ml18MDtiPWE7dT1sO2w9azt0PW47bT1ufWk9ZDtyZXR1
cm59ZnVuY3Rpb24gY04oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MC4wLEU9MC4wLEY9MCxHPTAsSD0wLjAsST0wLjAsSj0w
LjAsSz0wLEw9MCxNPTAsTj0wLjAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAs
WD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MDtkPWk7aT1p
Kzh8MDtlPWE7YT1pO2k9aSs4fDA7Y1thPj4yXT1jW2U+PjJdO2NbYSs0Pj4yXT1jW2UrND4+Ml07
ZT1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tlPj4yXTtjW2IrND4+Ml09Y1tlKzQ+PjJdO2U9ZHww
O2Y9ZTtnPWk7aT1pKzh8MDtqPWc7az1pO2k9aSs4fDA7bD1rO209aTtpPWkrOHwwO249bTtvPWk7
aT1pKzh8MDtwPW87cT1iKzR8MDtyPWNbcT4+Ml18MDtzPWErNHwwO3Q9Y1tzPj4yXXwwO2lmKChy
fDApPT0odHwwKSl7dT0xO2k9ZDtyZXR1cm4gdXwwfXY9YnwwO3c9Y1t2Pj4yXXwwO3g9Y1thPj4y
XXwwO3k9Y1t3Pj4yXXwwO3o9dC0oY1t4Pj4yXXwwKT4+Mztzd2l0Y2goKHIteT4+MykrKHcteDw8
NyktenwwKXtjYXNlIDI6e2lmKChyfDApPT0oeXwwKSl7QT13LTR8MDtjW3Y+PjJdPUE7Qj0oY1tB
Pj4yXXwwKSs0MDk2fDA7Y1txPj4yXT1CO0M9Qn1lbHNle0M9cn1CPUMtOHwwO2NbcT4+Ml09QjtE
PStoW0I+PjNdO0U9K2hbdD4+M107aWYoRD49RSl7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbdD4+M109
RDtoW0I+PjNdPUU7dT0xO2k9ZDtyZXR1cm4gdXwwfTtjYXNlIDA6Y2FzZSAxOnt1PTE7aT1kO3Jl
dHVybiB1fDB9O2Nhc2UgMzp7Qj1hO3Q9Y1tCPj4yXXwwO0M9Y1tCKzQ+PjJdfDA7Qj1DO0E9Qy0o
Y1t0Pj4yXXwwKT4+MztDPUErMXwwO2lmKChDfDApPjApe0Y9KGNbdCsoKChDfDApLzUxMnwwKTw8
Mik+PjJdfDApKygoKEN8MCklNTEyfDApPDwzKXwwfWVsc2V7Qz01MTAtQXwwO0Y9KGNbdCsoKChD
fDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgoQ3wwKSU1MTJ8MCk8PDMpfDB9aWYoKHJ8MCk9
PSh5fDApKXtDPXctNHwwO2Nbdj4+Ml09Qzt0PShjW0M+PjJdfDApKzQwOTZ8MDtjW3E+PjJdPXQ7
Rz10fWVsc2V7Rz1yfWNbcT4+Ml09Ry04O0c9Y1tiKzQ+PjJdfDA7RT0raFtGPj4zXTtEPStoW0I+
PjNdO0g9K2hbRz4+M107dD1IPEU7aWYoRT49RCl7aWYoIXQpe3U9MTtpPWQ7cmV0dXJuIHV8MH1o
W0Y+PjNdPUg7aFtHPj4zXT1FO0k9K2hbRj4+M107Sj0raFtCPj4zXTtpZihJPj1KKXt1PTE7aT1k
O3JldHVybiB1fDB9aFtCPj4zXT1JO2hbRj4+M109Sjt1PTE7aT1kO3JldHVybiB1fDB9aWYodCl7
aFtCPj4zXT1IO2hbRz4+M109RDt1PTE7aT1kO3JldHVybiB1fDB9aFtCPj4zXT1FO2hbRj4+M109
RDtFPStoW0c+PjNdO2lmKEU+PUQpe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0Y+PjNdPUU7aFtHPj4z
XT1EO3U9MTtpPWQ7cmV0dXJuIHV8MH07Y2FzZSA0OntHPWE7Rj1jW0c+PjJdfDA7Qj1jW0crND4+
Ml18MDtHPUI7dD1CLShjW0Y+PjJdfDApPj4zO0I9dCsxfDA7aWYoKEJ8MCk+MCl7Sz0oY1tGKygo
KEJ8MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgoQnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtCPTUxMC10
fDA7Sz0oY1tGKygoKEJ8MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChCfDApJTUxMnwwKTw8
Myl8MH1CPXQrMnwwO2lmKChCfDApPjApe0w9KGNbRisoKChCfDApLzUxMnwwKTw8Mik+PjJdfDAp
KygoKEJ8MCklNTEyfDApPDwzKXwwfWVsc2V7Qj01MDktdHwwO0w9KGNbRisoKChCfDApLy01MTJ8
MCk8PDIpPj4yXXwwKSsoNTExLSgoQnwwKSU1MTJ8MCk8PDMpfDB9aWYoKHJ8MCk9PSh5fDApKXtC
PXctNHwwO2Nbdj4+Ml09QjtGPShjW0I+PjJdfDApKzQwOTZ8MDtjW3E+PjJdPUY7TT1GfWVsc2V7
TT1yfWNbcT4+Ml09TS04O009Y1tiKzQ+PjJdfDA7RD0raFtLPj4zXTtFPStoW0c+PjNdO0g9K2hb
TD4+M107Rj1IPEQ7ZG97aWYoRDxFKXtpZihGKXtoW0c+PjNdPUg7aFtMPj4zXT1FO049RTticmVh
a31oW0c+PjNdPUQ7aFtLPj4zXT1FO0o9K2hbTD4+M107aWYoSj49RSl7Tj1KO2JyZWFrfWhbSz4+
M109SjtoW0w+PjNdPUU7Tj1FfWVsc2V7aWYoIUYpe049SDticmVha31oW0s+PjNdPUg7aFtMPj4z
XT1EO0o9K2hbSz4+M107ST0raFtHPj4zXTtpZihKPj1JKXtOPUQ7YnJlYWt9aFtHPj4zXT1KO2hb
Sz4+M109STtOPStoW0w+PjNdfX13aGlsZSgwKTtEPStoW00+PjNdO2lmKEQ+PU4pe3U9MTtpPWQ7
cmV0dXJuIHV8MH1oW0w+PjNdPUQ7aFtNPj4zXT1OO049K2hbTD4+M107RD0raFtLPj4zXTtpZihO
Pj1EKXt1PTE7aT1kO3JldHVybiB1fDB9aFtLPj4zXT1OO2hbTD4+M109RDtEPStoW0s+PjNdO049
K2hbRz4+M107aWYoRD49Til7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbRz4+M109RDtoW0s+PjNdPU47
dT0xO2k9ZDtyZXR1cm4gdXwwfTtjYXNlIDU6e0s9YTtHPWNbSz4+Ml18MDtMPWNbSys0Pj4yXXww
O2NbZT4+Ml09RztjW2UrND4+Ml09TDtjW2c+PjJdPUc7Y1tnKzQ+PjJdPUw7ZT1MO0s9ZztnPUc7
TT1lLShjW2c+PjJdfDApPj4zO0Y9TSsxfDA7aWYoKEZ8MCk+MCl7Qj1nKygoKEZ8MCkvNTEyfDAp
PDwyKXwwO2NbSz4+Ml09QjtPPShjW0I+PjJdfDApKygoKEZ8MCklNTEyfDApPDwzKXwwfWVsc2V7
Rj01MTAtTXwwO009ZysoKChGfDApLy01MTJ8MCk8PDIpfDA7Y1tLPj4yXT1NO089KGNbTT4+Ml18
MCkrKDUxMS0oKEZ8MCklNTEyfDApPDwzKXwwfWNbais0Pj4yXT1PO2Nbaz4+Ml09RztjW2srND4+
Ml09TDtPPWs7az1lLShjW2c+PjJdfDApPj4zO0Y9aysyfDA7aWYoKEZ8MCk+MCl7TT1nKygoKEZ8
MCkvNTEyfDApPDwyKXwwO2NbTz4+Ml09TTtQPShjW00+PjJdfDApKygoKEZ8MCklNTEyfDApPDwz
KXwwfWVsc2V7Rj01MDkta3wwO2s9ZysoKChGfDApLy01MTJ8MCk8PDIpfDA7Y1tPPj4yXT1rO1A9
KGNbaz4+Ml18MCkrKDUxMS0oKEZ8MCklNTEyfDApPDwzKXwwfWNbbCs0Pj4yXT1QO2NbbT4+Ml09
RztjW20rND4+Ml09TDtMPW07bT1lLShjW2c+PjJdfDApPj4zO2U9bSszfDA7aWYoKGV8MCk+MCl7
Rz1nKygoKGV8MCkvNTEyfDApPDwyKXwwO2NbTD4+Ml09RztRPShjW0c+PjJdfDApKygoKGV8MCkl
NTEyfDApPDwzKXwwfWVsc2V7ZT01MDgtbXwwO209ZysoKChlfDApLy01MTJ8MCk8PDIpfDA7Y1tM
Pj4yXT1tO1E9KGNbbT4+Ml18MCkrKDUxMS0oKGV8MCklNTEyfDApPDwzKXwwfWNbbis0Pj4yXT1R
O2lmKChyfDApPT0oeXwwKSl7eT13LTR8MDtjW3Y+PjJdPXk7dj0oY1t5Pj4yXXwwKSs0MDk2fDA7
Y1txPj4yXT12O1I9dn1lbHNle1I9cn1jW3E+PjJdPVItODtSPWI7Yj1jW1IrND4+Ml18MDtjW28+
PjJdPWNbUj4+Ml07Y1tvKzQ+PjJdPWI7Y0woZixqLGwsbixwLDApfDA7dT0xO2k9ZDtyZXR1cm4g
dXwwfTtkZWZhdWx0OntwPXorMnwwO2lmKChwfDApPjApe249eCsoKChwfDApLzUxMnwwKTw8Mil8
MDtTPW47VD0oY1tuPj4yXXwwKSsoKChwfDApJTUxMnwwKTw8Myl8MH1lbHNle3A9NTA5LXp8MDt6
PXgrKCgocHwwKS8tNTEyfDApPDwyKXwwO1M9ejtUPShjW3o+PjJdfDApKyg1MTEtKChwfDApJTUx
MnwwKTw8Myl8MH1wPWE7YT1jW3A+PjJdfDA7ej1jW3ArND4+Ml18MDtwPXo7eD16LShjW2E+PjJd
fDApPj4zO3o9eCsxfDA7aWYoKHp8MCk+MCl7VT0oY1thKygoKHp8MCkvNTEyfDApPDwyKT4+Ml18
MCkrKCgoenwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXt6PTUxMC14fDA7VT0oY1thKygoKHp8MCkvLTUx
MnwwKTw8Mik+PjJdfDApKyg1MTEtKCh6fDApJTUxMnwwKTw8Myl8MH1OPStoW1U+PjNdO0Q9K2hb
cD4+M107SD0raFtUPj4zXTt6PUg8Tjtkb3tpZihOPEQpe2lmKHope2hbcD4+M109SDtoW1Q+PjNd
PUQ7YnJlYWt9aFtwPj4zXT1OO2hbVT4+M109RDtFPStoW1Q+PjNdO2lmKEU+PUQpe2JyZWFrfWhb
VT4+M109RTtoW1Q+PjNdPUR9ZWxzZXtpZigheil7YnJlYWt9aFtVPj4zXT1IO2hbVD4+M109TjtF
PStoW1U+PjNdO0k9K2hbcD4+M107aWYoRT49SSl7YnJlYWt9aFtwPj4zXT1FO2hbVT4+M109SX19
d2hpbGUoMCk7VT1ULShjW1M+PjJdfDApPj4zO3A9VSsxfDA7aWYoKHB8MCk+MCl7ej1TKygoKHB8
MCkvNTEyfDApPDwyKXwwO2E9Y1t6Pj4yXXwwO1Y9MDtXPWErKCgocHwwKSU1MTJ8MCk8PDMpfDA7
WD16O1k9UztaPVQ7Xz1hfWVsc2V7YT01MTAtVXwwO1U9UysoKChhfDApLy01MTJ8MCk8PDIpfDA7
ej1jW1U+PjJdfDA7Vj0wO1c9eisoNTExLSgoYXwwKSU1MTJ8MCk8PDMpfDA7WD1VO1k9UztaPVQ7
Xz16fUwxMDY1OndoaWxlKDEpe3o9VjskPVc7VD1ZO1M9WjtVPV87d2hpbGUoMSl7aWYoKCR8MCk9
PShjW3E+PjJdfDApKXt1PTE7YWE9OTA2O2JyZWFrIEwxMDY1fU49K2hbJD4+M107SD0raFtTPj4z
XTtpZihOPEgpe2E9VDtwPVM7eD0kO0Q9SDt3aGlsZSgxKXtoW3g+PjNdPUQ7aWYoKHB8MCk9PShj
W3M+PjJdfDApKXticmVha31pZigocHwwKT09KGNbYT4+Ml18MCkpe249YS00fDA7YWI9bjthYz0o
Y1tuPj4yXXwwKSs0MDk2fDB9ZWxzZXthYj1hO2FjPXB9bj1hYy04fDA7SD0raFtuPj4zXTtpZihO
PEgpe2E9YWI7eD1wO3A9bjtEPUh9ZWxzZXticmVha319aFtwPj4zXT1OO3g9eisxfDA7aWYoKHh8
MCk9PTgpe2JyZWFrIEwxMDY1fWFkPXg7YWU9Y1tYPj4yXXwwfWVsc2V7YWQ9ejthZT1VfXg9JCs4
fDA7aWYoKHgtYWV8MCk9PTQwOTYpe2JyZWFrfWVsc2V7ej1hZDtTPSQ7JD14O1Q9WDtVPWFlfX1V
PVgrNHwwO1Q9Y1tVPj4yXXwwO1Y9YWQ7Vz1UO1k9WDtYPVU7Wj0kO189VH1pZigoYWF8MCk9PTkw
Nil7aT1kO3JldHVybiB1fDB9YWE9JCs4fDA7aWYoKGFhLShjW1g+PjJdfDApfDApPT00MDk2KXth
Zj1jW1grND4+Ml18MH1lbHNle2FmPWFhfXU9KGFmfDApPT0oY1txPj4yXXwwKTtpPWQ7cmV0dXJu
IHV8MH19cmV0dXJuIDB9ZnVuY3Rpb24gY08oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wO2U9YSs4fDA7Zj1jW2U+PjJdfDA7Zz1hKzR8MDtpPWNbZz4+
Ml18MDtpZigoZnwwKT09KGl8MCkpe2o9MH1lbHNle2o9KGYtaTw8NyktMXwwfWs9YSsxNnwwO2w9
Y1trPj4yXXwwO209YSsyMHwwO249Y1ttPj4yXXwwO289ai1sLW58MDtpZihvPj4+MDxiPj4+MCl7
Y1EoYSxiLW98MCk7cD1jW20+PjJdfDA7cT1jW2s+PjJdfDA7cj1jW2c+PjJdfDA7cz1jW2U+PjJd
fDB9ZWxzZXtwPW47cT1sO3I9aTtzPWZ9Zj1xK3B8MDtwPXIrKGY+Pj45PDwyKXwwO2lmKChzfDAp
PT0ocnwwKSl7dD0wfWVsc2V7dD0oY1twPj4yXXwwKSsoKGYmNTExKTw8Myl8MH1pZigoYnwwKT09
MCl7cmV0dXJufWVsc2V7dT10O3Y9cDt3PWJ9d2hpbGUoMSl7aWYoKHV8MCkhPTApe2hbdT4+M109
K2hbZD4+M119Yj13LTF8MDtwPXUrOHwwO2lmKChwLShjW3Y+PjJdfDApfDApPT00MDk2KXt0PXYr
NHwwO3g9dDt5PWNbdD4+Ml18MH1lbHNle3g9djt5PXB9Y1ttPj4yXT0oY1ttPj4yXXwwKSsxO2lm
KChifDApPT0wKXticmVha31lbHNle3U9eTt2PXg7dz1ifX1yZXR1cm59ZnVuY3Rpb24gY1AoYSxi
KXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MDtkPWErNHwwO2U9Y1tkPj4yXXwwO2Y9YXwwO2Rv
e2lmKChlfDApPT0oY1tmPj4yXXwwKSl7Zz1hKzh8MDtoPWNbZz4+Ml18MDtpPWErMTJ8MDtqPWNb
aT4+Ml18MDtrPWo7aWYoaD4+PjA8aj4+PjApe2o9aDtsPSgoay1qPj4yKSsxfDApLzJ8MDttPWot
ZXwwO2o9aCsobC0obT4+Mik8PDIpfDA7a18oanwwLGV8MCxtfDApO2NbZD4+Ml09ajtjW2c+PjJd
PShjW2c+PjJdfDApKyhsPDwyKTtuPWo7YnJlYWt9aj1rLWU+PjE7az0oanwwKT09MD8xOmo7aj1r
TyhrPDwyKXwwO2w9aisoKGsrM3wwKT4+PjI8PDIpfDA7bT1qKyhrPDwyKXwwO2lmKChlfDApPT0o
aHwwKSl7bz1sO3A9ZX1lbHNle2s9ZTtxPWw7ZG97aWYoKHF8MCk9PTApe3I9MH1lbHNle2NbcT4+
Ml09Y1trPj4yXTtyPXF9cT1yKzR8MDtrPWsrNHwwO313aGlsZSgoa3wwKSE9KGh8MCkpO289cTtw
PWNbZj4+Ml18MH1jW2Y+PjJdPWo7Y1tkPj4yXT1sO2NbZz4+Ml09bztjW2k+PjJdPW07aWYoKHB8
MCk9PTApe249bDticmVha31rUyhwKTtuPWNbZD4+Ml18MH1lbHNle249ZX19d2hpbGUoMCk7ZT1u
LTR8MDtpZigoZXwwKT09MCl7cz1uO3Q9cy00fDA7Y1tkPj4yXT10O3JldHVybn1jW2U+PjJdPWNb
Yj4+Ml07cz1jW2Q+PjJdfDA7dD1zLTR8MDtjW2Q+PjJdPXQ7cmV0dXJufWZ1bmN0aW9uIGNRKGEs
Yil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAs
UT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0w
LGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wO2Q9aTtpPWkrMzJ8
MDtlPWR8MDtmPWQrOHwwO2c9YXwwO2g9YSs4fDA7aj1jW2g+PjJdfDA7az1hKzR8MDtsPWNbaz4+
Ml18MDttPSgoanwwKT09KGx8MCkpK2J8MDtiPSgobSY1MTF8MCkhPTApKyhtPj4+OSl8MDttPWEr
MTZ8MDtuPWNbbT4+Ml18MDtvPW4+Pj45O3A9Yj4+PjA8bz4+PjA/YjpvO3E9Yi1wfDA7aWYoKGJ8
MCk9PShwfDApKXtjW20+PjJdPW4tKGI8PDkpO2lmKChifDApPT0wKXtpPWQ7cmV0dXJufW49YSsx
MnwwO3I9YXwwO3M9Yjt0PWo7dT1sO3doaWxlKDEpe3Y9Y1t1Pj4yXXwwO3c9dSs0fDA7Y1trPj4y
XT13O2Rve2lmKCh0fDApPT0oY1tuPj4yXXwwKSl7eD1jW3I+PjJdfDA7aWYodz4+PjA+eD4+PjAp
e3k9dzt6PSgoeS14Pj4yKSsxfDApLy0yfDA7QT16KzF8MDtCPXQteXwwO2tfKHUrKEE8PDIpfDAs
d3wwLEJ8MCk7eT11KyhBKyhCPj4yKTw8Mil8MDtjW2g+PjJdPXk7Y1trPj4yXT0oY1trPj4yXXww
KSsoejw8Mik7Qz15O2JyZWFrfXk9dC14Pj4xO3o9KHl8MCk9PTA/MTp5O3k9a08oejw8Mil8MDtC
PXkrKHo+Pj4yPDwyKXwwO0E9eSsoejw8Mil8MDtpZigod3wwKT09KHR8MCkpe0Q9QjtFPXh9ZWxz
ZXt4PXc7ej1CO2Rve2lmKCh6fDApPT0wKXtGPTB9ZWxzZXtjW3o+PjJdPWNbeD4+Ml07Rj16fXo9
Ris0fDA7eD14KzR8MDt9d2hpbGUoKHh8MCkhPSh0fDApKTtEPXo7RT1jW3I+PjJdfDB9Y1tyPj4y
XT15O2Nbaz4+Ml09QjtjW2g+PjJdPUQ7Y1tuPj4yXT1BO2lmKChFfDApPT0wKXtDPUQ7YnJlYWt9
a1MoRSk7Qz1jW2g+PjJdfDB9ZWxzZXtDPXR9fXdoaWxlKDApO2lmKChDfDApPT0wKXtHPTB9ZWxz
ZXtjW0M+PjJdPXY7Rz1jW2g+PjJdfDB9dz1HKzR8MDtjW2g+PjJdPXc7eD1zLTF8MDtpZigoeHww
KT09MCl7YnJlYWt9cz14O3Q9dzt1PWNbaz4+Ml18MH1pPWQ7cmV0dXJufXU9YSsxMnwwO3Q9dXww
O3M9Y1t0Pj4yXXwwO0c9YXwwO2E9cy0oY1tHPj4yXXwwKXwwO0M9ai1sPj4yO2lmKHE+Pj4wPD0o
KGE+PjIpLUN8MCk+Pj4wKXtsPXE7RT1qO2o9czt3aGlsZSgxKXtpZigoanwwKT09KEV8MCkpe0g9
OTcxO2JyZWFrfXM9a08oNDA5Nil8MDtpZigoRXwwKT09MCl7ST0wfWVsc2V7Y1tFPj4yXT1zO0k9
Y1toPj4yXXwwfXM9SSs0fDA7Y1toPj4yXT1zO0Q9bC0xfDA7aWYoKER8MCk9PTApe0o9cztIPTk3
MjticmVha31sPUQ7RT1zO2o9Y1t0Pj4yXXwwfWRve2lmKChIfDApPT05NzEpe2lmKChsfDApPT0w
KXtKPWo7SD05NzI7YnJlYWt9RT1+bztJPX5iO3M9RT4+PjA+ST4+PjA/RTpJO0k9bDtkb3tjW2U+
PjJdPWtPKDQwOTYpfDA7Y1AoZyxlKTtJPUktMXwwO0s9Y1toPj4yXXwwO0w9KGNbbT4+Ml18MCkr
NTEyLSgoSy0oY1trPj4yXXwwKXwwKT09NCl8MDtjW20+PjJdPUw7fXdoaWxlKChJfDApIT0wKTtN
PWwtMS1zfDA7Tj1LO089TH19d2hpbGUoMCk7aWYoKEh8MCk9PTk3Mil7TT1wO049SjtPPWNbbT4+
Ml18MH1jW20+PjJdPU8tKE08PDkpO2lmKChNfDApPT0wKXtpPWQ7cmV0dXJufWVsc2V7UD1NO1E9
Tn1kb3tOPWNbaz4+Ml18MDtNPWNbTj4+Ml18MDtPPU4rNHwwO2Nbaz4+Ml09Tztkb3tpZigoUXww
KT09KGNbdD4+Ml18MCkpe0o9Y1tHPj4yXXwwO2lmKE8+Pj4wPko+Pj4wKXtIPU87TD0oKEgtSj4+
MikrMXwwKS8tMnwwO0s9TCsxfDA7bD1RLUh8MDtrXyhOKyhLPDwyKXwwLE98MCxsfDApO0g9Tiso
SysobD4+Mik8PDIpfDA7Y1toPj4yXT1IO2Nbaz4+Ml09KGNbaz4+Ml18MCkrKEw8PDIpO1I9SDti
cmVha31IPVEtSj4+MTtMPShIfDApPT0wPzE6SDtIPWtPKEw8PDIpfDA7bD1IKyhMPj4+Mjw8Mil8
MDtLPUgrKEw8PDIpfDA7aWYoKE98MCk9PShRfDApKXtTPWw7VD1KfWVsc2V7Sj1PO0w9bDtkb3tp
ZigoTHwwKT09MCl7VT0wfWVsc2V7Y1tMPj4yXT1jW0o+PjJdO1U9TH1MPVUrNHwwO0o9Sis0fDA7
fXdoaWxlKChKfDApIT0oUXwwKSk7Uz1MO1Q9Y1tHPj4yXXwwfWNbRz4+Ml09SDtjW2s+PjJdPWw7
Y1toPj4yXT1TO2NbdD4+Ml09SztpZigoVHwwKT09MCl7Uj1TO2JyZWFrfWtTKFQpO1I9Y1toPj4y
XXwwfWVsc2V7Uj1RfX13aGlsZSgwKTtpZigoUnwwKT09MCl7Vj0wfWVsc2V7Y1tSPj4yXT1NO1Y9
Y1toPj4yXXwwfVE9Vis0fDA7Y1toPj4yXT1RO1A9UC0xfDA7fXdoaWxlKChQfDApIT0wKTtpPWQ7
cmV0dXJufVA9cDw8OTtRPWE+PjE7YT1xK0N8MDtWPVE+Pj4wPGE+Pj4wP2E6UTtRPWYrMTJ8MDtj
W1E+PjJdPTA7Y1tmKzE2Pj4yXT11O2lmKChWfDApPT0wKXtXPTB9ZWxzZXtXPWtPKFY8PDIpfDB9
dT1mfDA7Y1t1Pj4yXT1XO2E9VysoQy1wPDwyKXwwO0M9Zis4fDA7Y1tDPj4yXT1hO1I9Zis0fDA7
Y1tSPj4yXT1hO1Q9VysoVjw8Mil8MDtjW1E+PjJdPVQ7Vj1xO3E9VztXPWE7Uz1UO1Q9YTt3aGls
ZSgxKXthPWtPKDQwOTYpfDA7ZG97aWYoKFd8MCk9PShTfDApKXtpZihUPj4+MD5xPj4+MCl7VT1U
O089KChVLXE+PjIpKzF8MCkvLTJ8MDtOPVMtVXwwO2tfKFQrKE88PDIpfDAsVHwwLE58MCk7VT1U
KyhPKyhOPj4yKTw8Mil8MDtjW0M+PjJdPVU7Tj0oY1tSPj4yXXwwKSsoTzw8Mil8MDtjW1I+PjJd
PU47WD1VO1k9UztaPXE7Xz1OO2JyZWFrfU49Uy1xPj4xO1U9KE58MCk9PTA/MTpOO049a08oVTw8
Mil8MDtPPU4rKFU+Pj4yPDwyKXwwO3M9TisoVTw8Mil8MDtpZigoVHwwKT09KFN8MCkpeyQ9Tzth
YT1xfWVsc2V7VT1UO0o9Tztkb3tpZigoSnwwKT09MCl7YWI9MH1lbHNle2NbSj4+Ml09Y1tVPj4y
XTthYj1KfUo9YWIrNHwwO1U9VSs0fDA7fXdoaWxlKChVfDApIT0oU3wwKSk7JD1KO2FhPWNbdT4+
Ml18MH1jW3U+PjJdPU47Y1tSPj4yXT1PO2NbQz4+Ml09JDtjW1E+PjJdPXM7aWYoKGFhfDApPT0w
KXtYPSQ7WT1zO1o9TjtfPU87YnJlYWt9a1MoYWEpO1g9JDtZPXM7Wj1OO189T31lbHNle1g9VztZ
PVM7Wj1xO189VH19d2hpbGUoMCk7aWYoKFh8MCk9PTApe2FjPTB9ZWxzZXtjW1g+PjJdPWE7YWM9
Y1tDPj4yXXwwfWFkPWFjKzR8MDtjW0M+PjJdPWFkO009Vi0xfDA7aWYoKE18MCk9PTApe2JyZWFr
fWVsc2V7Vj1NO3E9WjtXPWFkO1M9WTtUPV99fWlmKChwfDApIT0wKXtfPXA7cD1jW2s+PjJdfDA7
VD1hZDthZD1ZO1k9Wjt3aGlsZSgxKXtkb3tpZigoVHwwKT09KGFkfDApKXtaPWNbUj4+Ml18MDtp
ZihaPj4+MD5ZPj4+MCl7Uz1aO1c9KChTLVk+PjIpKzF8MCkvLTJ8MDtxPVorKFc8PDIpfDA7Vj1h
ZC1TfDA7a18ocXwwLFp8MCxWfDApO1M9WisoVysoVj4+Mik8PDIpfDA7Y1tDPj4yXT1TO2NbUj4+
Ml09cTthZT1TO2FmPWFkO2FnPVk7YnJlYWt9Uz1hZC1ZPj4xO3E9KFN8MCk9PTA/MTpTO1M9a08o
cTw8Mil8MDtWPVMrKHE+Pj4yPDwyKXwwO1c9UysocTw8Mil8MDtpZigoWnwwKT09KGFkfDApKXth
aD1WO2FpPVl9ZWxzZXtxPVo7Wj1WO2Rve2lmKChafDApPT0wKXthaj0wfWVsc2V7Y1taPj4yXT1j
W3E+PjJdO2FqPVp9Wj1hais0fDA7cT1xKzR8MDt9d2hpbGUoKHF8MCkhPShhZHwwKSk7YWg9Wjth
aT1jW3U+PjJdfDB9Y1t1Pj4yXT1TO2NbUj4+Ml09VjtjW0M+PjJdPWFoO2NbUT4+Ml09VztpZigo
YWl8MCk9PTApe2FlPWFoO2FmPVc7YWc9UzticmVha31rUyhhaSk7YWU9YWg7YWY9VzthZz1TfWVs
c2V7YWU9VDthZj1hZDthZz1ZfX13aGlsZSgwKTtpZigoYWV8MCk9PTApe2FrPTB9ZWxzZXtjW2Fl
Pj4yXT1jW3A+PjJdO2FrPWNbQz4+Ml18MH1hPWFrKzR8MDtjW0M+PjJdPWE7cT0oY1trPj4yXXww
KSs0fDA7Y1trPj4yXT1xO089Xy0xfDA7aWYoKE98MCk9PTApe2JyZWFrfWVsc2V7Xz1PO3A9cTtU
PWE7YWQ9YWY7WT1hZ319fWFnPWNbaD4+Ml18MDt3aGlsZSgxKXtpZigoYWd8MCk9PShjW2s+PjJd
fDApKXticmVha31ZPWFnLTR8MDtjUyhmLFkpO2FnPVl9Zj1jW0c+PjJdfDA7Y1tHPj4yXT1jW3U+
PjJdO2NbdT4+Ml09ZjtjW2s+PjJdPWNbUj4+Ml07Y1tSPj4yXT1hZztSPWNbaD4+Ml18MDtjW2g+
PjJdPWNbQz4+Ml07Y1tDPj4yXT1SO2g9Y1t0Pj4yXXwwO2NbdD4+Ml09Y1tRPj4yXTtjW1E+PjJd
PWg7Y1ttPj4yXT0oY1ttPj4yXXwwKS1QO2lmKChhZ3wwKSE9KFJ8MCkpe2NbQz4+Ml09Uisofigo
Ui00KygtYWd8MCl8MCk+Pj4yKTw8Mil9aWYoKGZ8MCk9PTApe2k9ZDtyZXR1cm59a1MoZik7aT1k
O3JldHVybn1mdW5jdGlvbiBjUihhLGIsYyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7dmFyIGc9MC4wLGk9MC4wLGo9MC4wLGs9MCxsPTAuMCxtPTAuMCxuPTAuMCxv
PTAscD0wO2c9K2hbYj4+M107aT0raFthPj4zXTtqPStoW2M+PjNdO2Y9ajxnO2Rve2lmKGc8aSl7
aWYoZil7aFthPj4zXT1qO2hbYz4+M109aTtrPTE7bD1pO2JyZWFrfWhbYT4+M109ZztoW2I+PjNd
PWk7bT0raFtjPj4zXTtpZihtPj1pKXtrPTE7bD1tO2JyZWFrfWhbYj4+M109bTtoW2M+PjNdPWk7
az0yO2w9aX1lbHNle2lmKCFmKXtrPTA7bD1qO2JyZWFrfWhbYj4+M109ajtoW2M+PjNdPWc7bT0r
aFtiPj4zXTtuPStoW2E+PjNdO2lmKG0+PW4pe2s9MTtsPWc7YnJlYWt9aFthPj4zXT1tO2hbYj4+
M109bjtrPTI7bD0raFtjPj4zXX19d2hpbGUoMCk7Zz0raFtkPj4zXTtkb3tpZihnPGwpe2hbYz4+
M109ZztoW2Q+PjNdPWw7aj0raFtjPj4zXTtpPStoW2I+PjNdO2lmKGo+PWkpe289aysxfDA7YnJl
YWt9aFtiPj4zXT1qO2hbYz4+M109aTtpPStoW2I+PjNdO2o9K2hbYT4+M107aWYoaTxqKXtoW2E+
PjNdPWk7aFtiPj4zXT1qO289ayszfDA7YnJlYWt9ZWxzZXtvPWsrMnwwO2JyZWFrfX1lbHNle289
a319d2hpbGUoMCk7bD0raFtlPj4zXTtnPStoW2Q+PjNdO2lmKGw+PWcpe3A9bztyZXR1cm4gcHww
fWhbZD4+M109bDtoW2U+PjNdPWc7Zz0raFtkPj4zXTtsPStoW2M+PjNdO2lmKGc+PWwpe3A9bysx
fDA7cmV0dXJuIHB8MH1oW2M+PjNdPWc7aFtkPj4zXT1sO2w9K2hbYz4+M107Zz0raFtiPj4zXTtp
ZihsPj1nKXtwPW8rMnwwO3JldHVybiBwfDB9aFtiPj4zXT1sO2hbYz4+M109ZztnPStoW2I+PjNd
O2w9K2hbYT4+M107aWYoZz49bCl7cD1vKzN8MDtyZXR1cm4gcHwwfWhbYT4+M109ZztoW2I+PjNd
PWw7cD1vKzR8MDtyZXR1cm4gcHwwfWZ1bmN0aW9uIGNTKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9
MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTA7ZD1hKzR8MDtlPWNbZD4+Ml18MDtmPWF8MDtkb3tpZigoZXwwKT09KGNbZj4+Ml18
MCkpe2c9YSs4fDA7aD1jW2c+PjJdfDA7aT1hKzEyfDA7aj1jW2k+PjJdfDA7az1qO2lmKGg+Pj4w
PGo+Pj4wKXtqPWg7bD0oKGstaj4+MikrMXwwKS8yfDA7bT1qLWV8MDtqPWgrKGwtKG0+PjIpPDwy
KXwwO2tfKGp8MCxlfDAsbXwwKTtjW2Q+PjJdPWo7Y1tnPj4yXT0oY1tnPj4yXXwwKSsobDw8Mik7
bj1qO2JyZWFrfWo9ay1lPj4xO2s9KGp8MCk9PTA/MTpqO2o9a08oazw8Mil8MDtsPWorKChrKzN8
MCk+Pj4yPDwyKXwwO209aisoazw8Mil8MDtpZigoZXwwKT09KGh8MCkpe289bDtwPWV9ZWxzZXtr
PWU7cT1sO2Rve2lmKChxfDApPT0wKXtyPTB9ZWxzZXtjW3E+PjJdPWNbaz4+Ml07cj1xfXE9cis0
fDA7az1rKzR8MDt9d2hpbGUoKGt8MCkhPShofDApKTtvPXE7cD1jW2Y+PjJdfDB9Y1tmPj4yXT1q
O2NbZD4+Ml09bDtjW2c+PjJdPW87Y1tpPj4yXT1tO2lmKChwfDApPT0wKXtuPWw7YnJlYWt9a1Mo
cCk7bj1jW2Q+PjJdfDB9ZWxzZXtuPWV9fXdoaWxlKDApO2U9bi00fDA7aWYoKGV8MCk9PTApe3M9
bjt0PXMtNHwwO2NbZD4+Ml09dDtyZXR1cm59Y1tlPj4yXT1jW2I+PjJdO3M9Y1tkPj4yXXwwO3Q9
cy00fDA7Y1tkPj4yXT10O3JldHVybn1mdW5jdGlvbiBjVCgpe2NbMjQ0Nl09MDtjWzI0NDddPTA7
Y1syNDQ4XT0wO2EkKDcyLDk3ODQsdXwwKXwwO3JldHVybn1mdW5jdGlvbiBjVShhLGIsYyl7YT1h
fDA7Yj1ifDA7Yz1jfDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLjAscT0wLjAscj0wLjAscz0wLjAsdD0wLjAsdT0wLHY9MCx3PTAseD0wLjAseT0w
LHo9MC4wLEE9MCxCPTAsQz0wLEQ9MC4wLEU9MCxGPTAsRz0wLjAsSD0wLEk9MCxKPTAsSz0wLjAs
TD0wLE09MCxOPTAuMCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MC4wLFU9MCxWPTAsVz0wLjAsWD0w
LFk9MC4wO2Q9YTthPWI7TDEzOTc6d2hpbGUoMSl7Yj1hO2U9YS04fDA7Zj1kO0wxMzk5OndoaWxl
KDEpe2c9ZjtpPWItZ3wwO2o9aT4+Mztzd2l0Y2goanwwKXtjYXNlIDM6e2s9MTEwMjticmVhayBM
MTM5NzticmVha307Y2FzZSA1OntrPTExMjI7YnJlYWsgTDEzOTc7YnJlYWt9O2Nhc2UgMjp7az0x
MTAwO2JyZWFrIEwxMzk3O2JyZWFrfTtjYXNlIDA6Y2FzZSAxOntrPTExODU7YnJlYWsgTDEzOTc7
YnJlYWt9O2Nhc2UgNDp7az0xMTEwO2JyZWFrIEwxMzk3O2JyZWFrfTtkZWZhdWx0Ont9fWlmKChp
fDApPDI0OCl7az0xMTI0O2JyZWFrIEwxMzk3fWw9KGp8MCkvMnwwO209ZisobDw8Myl8MDtkb3tp
ZigoaXwwKT43OTkyKXtuPShqfDApLzR8MDtvPWNSKGYsZisobjw8Myl8MCxtLGYrKG4rbDw8Myl8
MCxlLDApfDB9ZWxzZXtwPStoW20+PjNdO3E9K2hbZj4+M107cj0raFtlPj4zXTtuPXI8cDtpZihw
Pj1xKXtpZighbil7bz0wO2JyZWFrfWhbbT4+M109cjtoW2U+PjNdPXA7cz0raFttPj4zXTt0PSto
W2Y+PjNdO2lmKHM+PXQpe289MTticmVha31oW2Y+PjNdPXM7aFttPj4zXT10O289MjticmVha31p
ZihuKXtoW2Y+PjNdPXI7aFtlPj4zXT1xO289MTticmVha31oW2Y+PjNdPXA7aFttPj4zXT1xO3A9
K2hbZT4+M107aWYocD49cSl7bz0xO2JyZWFrfWhbbT4+M109cDtoW2U+PjNdPXE7bz0yfX13aGls
ZSgwKTtxPStoW2Y+PjNdO3A9K2hbbT4+M107ZG97aWYocTxwKXt1PWU7dj1vfWVsc2V7bD1lO3do
aWxlKDEpe3c9bC04fDA7aWYoKGZ8MCk9PSh3fDApKXticmVha314PStoW3c+PjNdO2lmKHg8cCl7
az0xMTYyO2JyZWFrfWVsc2V7bD13fX1pZigoa3wwKT09MTE2Mil7az0wO2hbZj4+M109eDtoW3c+
PjNdPXE7dT13O3Y9bysxfDA7YnJlYWt9bD1mKzh8MDtyPStoW2U+PjNdO2lmKHE8cil7eT1sfWVs
c2V7aj1sO3doaWxlKDEpe2lmKChqfDApPT0oZXwwKSl7az0xMTk3O2JyZWFrIEwxMzk3fXo9K2hb
aj4+M107QT1qKzh8MDtpZihxPHope2JyZWFrfWVsc2V7aj1BfX1oW2o+PjNdPXI7aFtlPj4zXT16
O3k9QX1pZigoeXwwKT09KGV8MCkpe2s9MTE5MjticmVhayBMMTM5N31lbHNle0I9ZTtDPXl9d2hp
bGUoMSl7dD0raFtmPj4zXTtsPUM7d2hpbGUoMSl7RD0raFtsPj4zXTtFPWwrOHwwO2lmKHQ+PUQp
e2w9RX1lbHNle0Y9QjticmVha319ZG97Rj1GLTh8MDtHPStoW0Y+PjNdO313aGlsZSh0PEcpO2lm
KGw+Pj4wPj1GPj4+MCl7Zj1sO2NvbnRpbnVlIEwxMzk5fWhbbD4+M109RztoW0Y+PjNdPUQ7Qj1G
O0M9RX19fXdoaWxlKDApO2o9Zis4fDA7TDE0Mzg6ZG97aWYoaj4+PjA8dT4+PjApe2k9dTtuPWo7
SD12O0k9bTt3aGlsZSgxKXtxPStoW0k+PjNdO0o9bjt3aGlsZSgxKXtLPStoW0o+PjNdO0w9Sis4
fDA7aWYoSzxxKXtKPUx9ZWxzZXtNPWk7YnJlYWt9fWRve009TS04fDA7Tj0raFtNPj4zXTt9d2hp
bGUoTj49cSk7aWYoSj4+PjA+TT4+PjApe089SjtQPUg7UT1JO2JyZWFrIEwxNDM4fWhbSj4+M109
TjtoW00+PjNdPUs7aT1NO249TDtIPUgrMXwwO0k9KEl8MCk9PShKfDApP006SX19ZWxzZXtPPWo7
UD12O1E9bX19d2hpbGUoMCk7ZG97aWYoKE98MCk9PShRfDApKXtSPVB9ZWxzZXtxPStoW1E+PjNd
O3A9K2hbTz4+M107aWYocT49cCl7Uj1QO2JyZWFrfWhbTz4+M109cTtoW1E+PjNdPXA7Uj1QKzF8
MH19d2hpbGUoMCk7aWYoKFJ8MCk9PTApe1M9Y1YoZixPLDApfDA7bT1PKzh8MDtpZihjVihtLGEs
MCl8MCl7az0xMTc0O2JyZWFrfWlmKFMpe2Y9bTtjb250aW51ZX19bT1PO2lmKChtLWd8MCk+PShi
LW18MCkpe2s9MTE3ODticmVha31jVShmLE8sYyk7Zj1PKzh8MH1pZigoa3wwKT09MTE3NCl7az0w
O2lmKFMpe2s9MTE4NjticmVha31lbHNle2Q9ZjthPU87Y29udGludWV9fWVsc2UgaWYoKGt8MCk9
PTExNzgpe2s9MDtjVShPKzh8MCxhLGMpO2Q9ZjthPU87Y29udGludWV9fWlmKChrfDApPT0xMTAy
KXtPPWYrOHwwO0s9K2hbTz4+M107Tj0raFtmPj4zXTtEPStoW2U+PjNdO2Q9RDxLO2lmKEs+PU4p
e2lmKCFkKXtyZXR1cm59aFtPPj4zXT1EO2hbZT4+M109SztHPStoW08+PjNdO3o9K2hbZj4+M107
aWYoRz49eil7cmV0dXJufWhbZj4+M109RztoW08+PjNdPXo7cmV0dXJufWlmKGQpe2hbZj4+M109
RDtoW2U+PjNdPU47cmV0dXJufWhbZj4+M109SztoW08+PjNdPU47Sz0raFtlPj4zXTtpZihLPj1O
KXtyZXR1cm59aFtPPj4zXT1LO2hbZT4+M109TjtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTEyMil7
Y1IoZixmKzh8MCxmKzE2fDAsZisyNHwwLGUsMCl8MDtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTEy
NCl7Tz1mKzE2fDA7ZD1mKzh8MDtOPStoW2Q+PjNdO0s9K2hbZj4+M107RD0raFtPPj4zXTtjPUQ8
Tjtkb3tpZihOPEspe2lmKGMpe2hbZj4+M109RDtoW08+PjNdPUs7VD1LO2JyZWFrfWhbZj4+M109
TjtoW2Q+PjNdPUs7aWYoRD49Syl7VD1EO2JyZWFrfWhbZD4+M109RDtoW08+PjNdPUs7VD1LfWVs
c2V7aWYoIWMpe1Q9RDticmVha31oW2Q+PjNdPUQ7aFtPPj4zXT1OO2lmKEQ+PUspe1Q9TjticmVh
a31oW2Y+PjNdPUQ7aFtkPj4zXT1LO1Q9Tn19d2hpbGUoMCk7ZD1mKzI0fDA7aWYoKGR8MCk9PShh
fDApKXtyZXR1cm59ZWxzZXtVPU87Vj1kO1c9VH13aGlsZSgxKXtUPStoW1Y+PjNdO2lmKFQ8Vyl7
ZD1VO089VjtOPVc7d2hpbGUoMSl7aFtPPj4zXT1OO2lmKChkfDApPT0oZnwwKSl7WD1mO2JyZWFr
fWM9ZC04fDA7Sz0raFtjPj4zXTtpZihUPEspe089ZDtkPWM7Tj1LfWVsc2V7WD1kO2JyZWFrfX1o
W1g+PjNdPVR9ZD1WKzh8MDtpZigoZHwwKT09KGF8MCkpe2JyZWFrfU49K2hbVj4+M107VT1WO1Y9
ZDtXPU59cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExOTcpe3JldHVybn1lbHNlIGlmKChrfDApPT0x
MTAwKXtXPStoW2U+PjNdO049K2hbZj4+M107aWYoVz49Til7cmV0dXJufWhbZj4+M109VztoW2U+
PjNdPU47cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExODUpe3JldHVybn1lbHNlIGlmKChrfDApPT0x
MTg2KXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTE5Mil7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTEx
MTApe2s9Zis4fDA7Vj1mKzE2fDA7Tj0raFtrPj4zXTtXPStoW2Y+PjNdO0s9K2hbVj4+M107VT1L
PE47ZG97aWYoTjxXKXtpZihVKXtoW2Y+PjNdPUs7aFtWPj4zXT1XO1k9VzticmVha31oW2Y+PjNd
PU47aFtrPj4zXT1XO2lmKEs+PVcpe1k9SzticmVha31oW2s+PjNdPUs7aFtWPj4zXT1XO1k9V31l
bHNle2lmKCFVKXtZPUs7YnJlYWt9aFtrPj4zXT1LO2hbVj4+M109TjtpZihLPj1XKXtZPU47YnJl
YWt9aFtmPj4zXT1LO2hbaz4+M109VztZPU59fXdoaWxlKDApO049K2hbZT4+M107aWYoTj49WSl7
cmV0dXJufWhbVj4+M109TjtoW2U+PjNdPVk7WT0raFtWPj4zXTtOPStoW2s+PjNdO2lmKFk+PU4p
e3JldHVybn1oW2s+PjNdPVk7aFtWPj4zXT1OO049K2hbZj4+M107aWYoWT49Til7cmV0dXJufWhb
Zj4+M109WTtoW2s+PjNdPU47cmV0dXJufX1mdW5jdGlvbiBjVihhLGIsYyl7YT1hfDA7Yj1ifDA7
Yz1jfDA7dmFyIGQ9MCxlPTAsZj0wLjAsZz0wLjAsaT0wLjAsaj0wLGs9MC4wLGw9MC4wLG09MCxu
PTAuMCxvPTAuMCxwPTAscT0wLHI9MCxzPTAuMCx0PTAsdT0wLHY9MDtzd2l0Y2goYi1hPj4zfDAp
e2Nhc2UgMDpjYXNlIDE6e2Q9MTtyZXR1cm4gZHwwfTtjYXNlIDM6e2M9YSs4fDA7ZT1iLTh8MDtm
PStoW2M+PjNdO2c9K2hbYT4+M107aT0raFtlPj4zXTtqPWk8ZjtpZihmPj1nKXtpZighail7ZD0x
O3JldHVybiBkfDB9aFtjPj4zXT1pO2hbZT4+M109ZjtrPStoW2M+PjNdO2w9K2hbYT4+M107aWYo
az49bCl7ZD0xO3JldHVybiBkfDB9aFthPj4zXT1rO2hbYz4+M109bDtkPTE7cmV0dXJuIGR8MH1p
ZihqKXtoW2E+PjNdPWk7aFtlPj4zXT1nO2Q9MTtyZXR1cm4gZHwwfWhbYT4+M109ZjtoW2M+PjNd
PWc7Zj0raFtlPj4zXTtpZihmPj1nKXtkPTE7cmV0dXJuIGR8MH1oW2M+PjNdPWY7aFtlPj4zXT1n
O2Q9MTtyZXR1cm4gZHwwfTtjYXNlIDI6e2U9Yi04fDA7Zz0raFtlPj4zXTtmPStoW2E+PjNdO2lm
KGc+PWYpe2Q9MTtyZXR1cm4gZHwwfWhbYT4+M109ZztoW2U+PjNdPWY7ZD0xO3JldHVybiBkfDB9
O2Nhc2UgNDp7ZT1hKzh8MDtjPWErMTZ8MDtqPWItOHwwO2Y9K2hbZT4+M107Zz0raFthPj4zXTtp
PStoW2M+PjNdO209aTxmO2Rve2lmKGY8Zyl7aWYobSl7aFthPj4zXT1pO2hbYz4+M109ZztuPWc7
YnJlYWt9aFthPj4zXT1mO2hbZT4+M109ZztpZihpPj1nKXtuPWk7YnJlYWt9aFtlPj4zXT1pO2hb
Yz4+M109ZztuPWd9ZWxzZXtpZighbSl7bj1pO2JyZWFrfWhbZT4+M109aTtoW2M+PjNdPWY7aWYo
aT49Zyl7bj1mO2JyZWFrfWhbYT4+M109aTtoW2U+PjNdPWc7bj1mfX13aGlsZSgwKTtmPStoW2o+
PjNdO2lmKGY+PW4pe2Q9MTtyZXR1cm4gZHwwfWhbYz4+M109ZjtoW2o+PjNdPW47bj0raFtjPj4z
XTtmPStoW2U+PjNdO2lmKG4+PWYpe2Q9MTtyZXR1cm4gZHwwfWhbZT4+M109bjtoW2M+PjNdPWY7
Zj0raFthPj4zXTtpZihuPj1mKXtkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPW47aFtlPj4zXT1mO2Q9
MTtyZXR1cm4gZHwwfTtjYXNlIDU6e2NSKGEsYSs4fDAsYSsxNnwwLGErMjR8MCxiLTh8MCwwKXww
O2Q9MTtyZXR1cm4gZHwwfTtkZWZhdWx0OntlPWErMTZ8MDtjPWErOHwwO2Y9K2hbYz4+M107bj0r
aFthPj4zXTtnPStoW2U+PjNdO2o9ZzxmO2Rve2lmKGY8bil7aWYoail7aFthPj4zXT1nO2hbZT4+
M109bjtvPW47YnJlYWt9aFthPj4zXT1mO2hbYz4+M109bjtpZihnPj1uKXtvPWc7YnJlYWt9aFtj
Pj4zXT1nO2hbZT4+M109bjtvPW59ZWxzZXtpZighail7bz1nO2JyZWFrfWhbYz4+M109ZztoW2U+
PjNdPWY7aWYoZz49bil7bz1mO2JyZWFrfWhbYT4+M109ZztoW2M+PjNdPW47bz1mfX13aGlsZSgw
KTtjPWErMjR8MDtpZigoY3wwKT09KGJ8MCkpe2Q9MTtyZXR1cm4gZHwwfWVsc2V7cD1lO3E9MDty
PWM7cz1vfXdoaWxlKDEpe289K2hbcj4+M107aWYobzxzKXtjPXA7ZT1yO2Y9czt3aGlsZSgxKXto
W2U+PjNdPWY7aWYoKGN8MCk9PShhfDApKXt0PWE7YnJlYWt9aj1jLTh8MDtuPStoW2o+PjNdO2lm
KG88bil7ZT1jO2M9ajtmPW59ZWxzZXt0PWM7YnJlYWt9fWhbdD4+M109bztjPXErMXwwO2lmKChj
fDApPT04KXticmVha31lbHNle3U9Y319ZWxzZXt1PXF9Yz1yKzh8MDtpZigoY3wwKT09KGJ8MCkp
e2Q9MTt2PTEyNTY7YnJlYWt9Zj0raFtyPj4zXTtwPXI7cT11O3I9YztzPWZ9aWYoKHZ8MCk9PTEy
NTYpe3JldHVybiBkfDB9ZD0ocis4fDApPT0oYnwwKTtyZXR1cm4gZHwwfX1yZXR1cm4gMH1mdW5j
dGlvbiBjVyhhKXthPWF8MDt2YXIgYj0wO2E9KGNbNDAzOF18MCktMXwwO2NbNDAzOF09YTtpZigo
YXwwKSE9MCl7cmV0dXJufWI7cmV0dXJufWZ1bmN0aW9uIGNYKGIpe2I9YnwwO3ZhciBkPTAsZT0w
LGY9MDtkb3tpZigoYVsxNjI4MF18MCk9PTApe2lmKChiYygxNjI4MCl8MCk9PTApe2JyZWFrfWNb
Mjk2Ml09NTQ4OTtiPTE7ZD01NDg5O2Rve2Q9KGFnKGQ+Pj4zMF5kLDE4MTI0MzMyNTMpfDApK2J8
MDtjWzExODQ4KyhiPDwyKT4+Ml09ZDtiPWIrMXwwO313aGlsZShiPj4+MDw2MjQpO2NbMzU4Nl09
MH19d2hpbGUoMCk7Yj1jWzM1ODZdfDA7ZD0oKGIrMXwwKT4+PjApJTYyNHwwO2U9MTE4NDgrKGI8
PDIpfDA7Zj1jWzExODQ4KyhkPDwyKT4+Ml18MDtjW2U+PjJdPS0oZiYxKSYtMTcyNzQ4MzY4MV5j
WzExODQ4KygoKChiKzM5N3wwKT4+PjApJTYyNHwwKTw8Mik+PjJdXihmJjIxNDc0ODM2NDZ8Y1tl
Pj4yXSYtMjE0NzQ4MzY0OCk+Pj4xO2U9Y1sxMTg0OCsoY1szNTg2XTw8Mik+PjJdfDA7Zj1lPj4+
MTFeZTtjWzM1ODZdPWQ7ZD1mPDw3Ji0xNjU4MDM4NjU2XmY7Zj1kPDwxNSYtMjcyMjM2NTQ0XmQ7
cmV0dXJuIGY+Pj4xOF5mfDB9ZnVuY3Rpb24gY1koYSl7YT1hfDA7dmFyIGI9MDtiO2NbNDAzOF09
MTtyZXR1cm59ZnVuY3Rpb24gY1ooYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0w
LGs9MCxsPTA7Yj1pO2k9aSszMnwwO2Q9YnwwO2U9Yis4fDA7Zj1iKzE2fDA7Zz1iKzI0fDA7ZHEo
MTUxMzYsY1tvPj4yXXwwLDE1MTkyKTtjWzQwMTRdPTQ1MDA7Y1s0MDE2XT00NTIwO2NbNDAxNV09
MDtoPWNbMTEyMl18MDtlaygxNjA1NitofDAsMTUxMzYpO2NbaCsxNjEyOD4+Ml09MDtjW2grMTYx
MzI+PjJdPS0xO2g9Y1t0Pj4yXXwwO2VwKDE1MDQwKTtjWzM3NjBdPTQ2NDg7Y1szNzY4XT1oO2lO
KGcsMTUwNDQpO2g9aVgoZywxNTM5Mil8MDtqPWg7aU8oZyk7Y1szNzY5XT1qO2NbMzc3MF09MTUy
MDA7YVsxNTA4NF09KGIwW2NbKGNbaD4+Ml18MCkrMjg+PjJdJjEyN10oail8MCkmMTtjWzM5NDhd
PTQ0MDQ7Y1szOTQ5XT00NDI0O2o9Y1sxMDk4XXwwO2VrKDE1NzkyK2p8MCwxNTA0MCk7aD1qKzcy
fDA7Y1sxNTc5MitoPj4yXT0wO2c9ais3NnwwO2NbMTU3OTIrZz4+Ml09LTE7az1jW3I+PjJdfDA7
ZXAoMTUwODgpO2NbMzc3Ml09NDY0ODtjWzM3ODBdPWs7aU4oZiwxNTA5Mik7az1pWChmLDE1Mzky
KXwwO2w9aztpTyhmKTtjWzM3ODFdPWw7Y1szNzgyXT0xNTIwODthWzE1MTMyXT0oYjBbY1soY1tr
Pj4yXXwwKSsyOD4+Ml0mMTI3XShsKXwwKSYxO2NbMzk5Ml09NDQwNDtjWzM5OTNdPTQ0MjQ7ZWso
MTU5NjgranwwLDE1MDg4KTtjWzE1OTY4K2g+PjJdPTA7Y1sxNTk2OCtnPj4yXT0tMTtsPWNbKGNb
KGNbMzk5Ml18MCktMTI+PjJdfDApKzE1OTkyPj4yXXwwO2NbMzk3MF09NDQwNDtjWzM5NzFdPTQ0
MjQ7ZWsoMTU4ODAranwwLGwpO2NbMTU4ODAraD4+Ml09MDtjWzE1ODgwK2c+PjJdPS0xO2NbKGNb
KGNbNDAxNF18MCktMTI+PjJdfDApKzE2MTI4Pj4yXT0xNTc5MjtnPShjWyhjWzM5OTJdfDApLTEy
Pj4yXXwwKSsxNTk3MnwwO2NbZz4+Ml09Y1tnPj4yXXw4MTkyO2NbKGNbKGNbMzk5Ml18MCktMTI+
PjJdfDApKzE2MDQwPj4yXT0xNTc5MjtjMygxNDk4NCxjW28+PjJdfDAsMTUyMTYpO2NbMzkyNl09
NDQ1MjtjWzM5MjhdPTQ0NzI7Y1szOTI3XT0wO2c9Y1sxMTEwXXwwO2VrKDE1NzA0K2d8MCwxNDk4
NCk7Y1tnKzE1Nzc2Pj4yXT0wO2NbZysxNTc4MD4+Ml09LTE7Zz1jW3Q+PjJdfDA7ZXcoMTQ4ODgp
O2NbMzcyMl09NDU3NjtjWzM3MzBdPWc7aU4oZSwxNDg5Mik7Zz1pWChlLDE1Mzg0KXwwO2g9Zztp
TyhlKTtjWzM3MzFdPWg7Y1szNzMyXT0xNTIyNDthWzE0OTMyXT0oYjBbY1soY1tnPj4yXXwwKSsy
OD4+Ml0mMTI3XShoKXwwKSYxO2NbMzg1Nl09NDM1NjtjWzM4NTddPTQzNzY7aD1jWzEwODZdfDA7
ZWsoMTU0MjQraHwwLDE0ODg4KTtnPWgrNzJ8MDtjWzE1NDI0K2c+PjJdPTA7ZT1oKzc2fDA7Y1sx
NTQyNCtlPj4yXT0tMTtsPWNbcj4+Ml18MDtldygxNDkzNik7Y1szNzM0XT00NTc2O2NbMzc0Ml09
bDtpTihkLDE0OTQwKTtsPWlYKGQsMTUzODQpfDA7aj1sO2lPKGQpO2NbMzc0M109ajtjWzM3NDRd
PTE1MjMyO2FbMTQ5ODBdPShiMFtjWyhjW2w+PjJdfDApKzI4Pj4yXSYxMjddKGopfDApJjE7Y1sz
OTAwXT00MzU2O2NbMzkwMV09NDM3NjtlaygxNTYwMCtofDAsMTQ5MzYpO2NbMTU2MDArZz4+Ml09
MDtjWzE1NjAwK2U+PjJdPS0xO2o9Y1soY1soY1szOTAwXXwwKS0xMj4+Ml18MCkrMTU2MjQ+PjJd
fDA7Y1szODc4XT00MzU2O2NbMzg3OV09NDM3NjtlaygxNTUxMitofDAsaik7Y1sxNTUxMitnPj4y
XT0wO2NbMTU1MTIrZT4+Ml09LTE7Y1soY1soY1szOTI2XXwwKS0xMj4+Ml18MCkrMTU3NzY+PjJd
PTE1NDI0O2U9KGNbKGNbMzkwMF18MCktMTI+PjJdfDApKzE1NjA0fDA7Y1tlPj4yXT1jW2U+PjJd
fDgxOTI7Y1soY1soY1szOTAwXXwwKS0xMj4+Ml18MCkrMTU2NzI+PjJdPTE1NDI0O2k9YjtyZXR1
cm59ZnVuY3Rpb24gY18oYSl7YT1hfDA7ZXYoYXwwKTtyZXR1cm59ZnVuY3Rpb24gYyQoYSl7YT1h
fDA7ZXYoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gYzAoYixkKXtiPWJ8MDtkPWR8MDt2YXIg
ZT0wO2IwW2NbKGNbYj4+Ml18MCkrMjQ+PjJdJjEyN10oYil8MDtlPWlYKGQsMTUzODQpfDA7ZD1l
O2NbYiszNj4+Ml09ZDthW2IrNDR8MF09KGIwW2NbKGNbZT4+Ml18MCkrMjg+PjJdJjEyN10oZCl8
MCkmMTtyZXR1cm59ZnVuY3Rpb24gYzEoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MCxnPTAs
aD0wLGo9MCxrPTAsbD0wLG09MCxuPTA7Yj1pO2k9aSsxNnwwO2Q9YnwwO2U9Yis4fDA7Zj1hKzM2
fDA7Zz1hKzQwfDA7aD1kfDA7aj1kKzh8MDtrPWQ7ZD1hKzMyfDA7TDE2NDI6d2hpbGUoMSl7YT1j
W2Y+PjJdfDA7bD1iJFtjWyhjW2E+PjJdfDApKzIwPj4yXSYzMV0oYSxjW2c+PjJdfDAsaCxqLGUp
fDA7YT0oY1tlPj4yXXwwKS1rfDA7aWYoKGFNKGh8MCwxLGF8MCxjW2Q+PjJdfDApfDApIT0oYXww
KSl7bT0tMTtuPTEzMDQ7YnJlYWt9c3dpdGNoKGx8MCl7Y2FzZSAyOnttPS0xO249MTMwNTticmVh
ayBMMTY0MjticmVha307Y2FzZSAxOnticmVha307ZGVmYXVsdDp7bj0xMzAxO2JyZWFrIEwxNjQy
fX19aWYoKG58MCk9PTEzMDQpe2k9YjtyZXR1cm4gbXwwfWVsc2UgaWYoKG58MCk9PTEzMDUpe2k9
YjtyZXR1cm4gbXwwfWVsc2UgaWYoKG58MCk9PTEzMDEpe209KChhSyhjW2Q+PjJdfDApfDApIT0w
KTw8MzE+PjMxO2k9YjtyZXR1cm4gbXwwfXJldHVybiAwfWZ1bmN0aW9uIGMyKGIsZCl7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtnPWUrOHwwO2g9ZSsx
NnwwO2o9ZSsyNHwwO2s9KGR8MCk9PS0xO0wxNjUxOmRve2lmKCFrKXtjW2c+PjJdPWQ7aWYoKGFb
Yis0NHwwXSYxKSE9MCl7aWYoKGFNKGd8MCw0LDEsY1tiKzMyPj4yXXwwKXwwKT09MSl7YnJlYWt9
ZWxzZXtsPS0xfWk9ZTtyZXR1cm4gbHwwfW09ZnwwO2NbaD4+Ml09bTtuPWcrNHwwO289YiszNnww
O3A9Yis0MHwwO3E9Zis4fDA7cj1mO3M9YiszMnwwO3Q9Zzt3aGlsZSgxKXt1PWNbbz4+Ml18MDt2
PWI2W2NbKGNbdT4+Ml18MCkrMTI+PjJdJjMxXSh1LGNbcD4+Ml18MCx0LG4saixtLHEsaCl8MDtp
ZigoY1tqPj4yXXwwKT09KHR8MCkpe2w9LTE7dz0xMzIwO2JyZWFrfWlmKCh2fDApPT0zKXt3PTEz
MTI7YnJlYWt9dT0odnwwKT09MTtpZih2Pj4+MD49Mil7bD0tMTt3PTEzMjI7YnJlYWt9dj0oY1to
Pj4yXXwwKS1yfDA7aWYoKGFNKG18MCwxLHZ8MCxjW3M+PjJdfDApfDApIT0odnwwKSl7bD0tMTt3
PTEzMjE7YnJlYWt9aWYodSl7dD11P2Nbaj4+Ml18MDp0fWVsc2V7YnJlYWsgTDE2NTF9fWlmKCh3
fDApPT0xMzIxKXtpPWU7cmV0dXJuIGx8MH1lbHNlIGlmKCh3fDApPT0xMzIyKXtpPWU7cmV0dXJu
IGx8MH1lbHNlIGlmKCh3fDApPT0xMzEyKXtpZigoYU0odHwwLDEsMSxjW3M+PjJdfDApfDApPT0x
KXticmVha31lbHNle2w9LTF9aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTMyMCl7aT1l
O3JldHVybiBsfDB9fX13aGlsZSgwKTtsPWs/MDpkO2k9ZTtyZXR1cm4gbHwwfWZ1bmN0aW9uIGMz
KGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaj0wO2Y9aTtpPWkrOHww
O2c9ZnwwO2V3KGJ8MCk7Y1tiPj4yXT00OTc2O2NbYiszMj4+Ml09ZDtjW2IrNDA+PjJdPWU7Y1ti
KzQ4Pj4yXT0tMTthW2IrNTJ8MF09MDtpTihnLGIrNHwwKTtlPWlYKGcsMTUzODQpfDA7ZD1lO2g9
YiszNnwwO2NbaD4+Ml09ZDtqPWIrNDR8MDtjW2o+PjJdPWIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJd
JjEyN10oZCl8MDtkPWNbaD4+Ml18MDthW2IrNTN8MF09KGIwW2NbKGNbZD4+Ml18MCkrMjg+PjJd
JjEyN10oZCl8MCkmMTtpZigoY1tqPj4yXXwwKTw9OCl7aU8oZyk7aT1mO3JldHVybn1oVigxODQp
O2lPKGcpO2k9ZjtyZXR1cm59ZnVuY3Rpb24gYzQoYSl7YT1hfDA7ZXYoYXwwKTtyZXR1cm59ZnVu
Y3Rpb24gYzUoYSl7YT1hfDA7ZXYoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gYzYoYixkKXti
PWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7ZT1pWChkLDE1Mzg0KXwwO2Q9ZTtmPWIrMzZ8MDtj
W2Y+PjJdPWQ7Zz1iKzQ0fDA7Y1tnPj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGQp
fDA7ZD1jW2Y+PjJdfDA7YVtiKzUzfDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYxMjddKGQp
fDApJjE7aWYoKGNbZz4+Ml18MCk8PTgpe3JldHVybn1oVigxODQpO3JldHVybn1mdW5jdGlvbiBj
NyhhKXthPWF8MDtyZXR1cm4gZGEoYSwwKXwwfWZ1bmN0aW9uIGM4KGEpe2E9YXwwO3JldHVybiBk
YShhLDEpfDB9ZnVuY3Rpb24gYzkoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0w
LGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtn
PWUrOHwwO2g9ZSsxNnwwO2o9ZSsyNHwwO2s9Yis1MnwwO2w9KGFba10mMSkhPTA7aWYoKGR8MCk9
PS0xKXtpZihsKXttPS0xO2k9ZTtyZXR1cm4gbXwwfW49Y1tiKzQ4Pj4yXXwwO2Fba109KG58MCkh
PS0xfDA7bT1uO2k9ZTtyZXR1cm4gbXwwfW49Yis0OHwwO0wxNjk0OmRve2lmKGwpe2NbaD4+Ml09
Y1tuPj4yXTtvPWNbYiszNj4+Ml18MDtwPWZ8MDtzd2l0Y2goYjZbY1soY1tvPj4yXXwwKSsxMj4+
Ml0mMzFdKG8sY1tiKzQwPj4yXXwwLGgsaCs0fDAsaixwLGYrOHwwLGcpfDApe2Nhc2UgMjpjYXNl
IDE6e209LTE7aT1lO3JldHVybiBtfDB9O2Nhc2UgMzp7YVtwXT1jW24+PjJdJjI1NTtjW2c+PjJd
PWYrMTticmVha307ZGVmYXVsdDp7fX1vPWIrMzJ8MDt3aGlsZSgxKXtxPWNbZz4+Ml18MDtpZihx
Pj4+MDw9cD4+PjApe2JyZWFrIEwxNjk0fXI9cS0xfDA7Y1tnPj4yXT1yO2lmKChiQShhW3JdfDAs
Y1tvPj4yXXwwKXwwKT09LTEpe209LTE7YnJlYWt9fWk9ZTtyZXR1cm4gbXwwfX13aGlsZSgwKTtj
W24+PjJdPWQ7YVtrXT0xO209ZDtpPWU7cmV0dXJuIG18MH1mdW5jdGlvbiBkYShiLGQpe2I9Ynww
O2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtnPWUr
OHwwO2g9ZSsxNnwwO2o9ZSsyNHwwO2s9Yis1MnwwO2lmKChhW2tdJjEpIT0wKXtsPWIrNDh8MDtt
PWNbbD4+Ml18MDtpZighZCl7bj1tO2k9ZTtyZXR1cm4gbnwwfWNbbD4+Ml09LTE7YVtrXT0wO249
bTtpPWU7cmV0dXJuIG58MH1tPWNbYis0ND4+Ml18MDtrPShtfDApPjE/bToxO0wxNzE0OmRve2lm
KChrfDApPjApe209YiszMnwwO2w9MDt3aGlsZSgxKXtvPWFfKGNbbT4+Ml18MCl8MDtpZigob3ww
KT09LTEpe249LTE7YnJlYWt9YVtmK2x8MF09byYyNTU7bD1sKzF8MDtpZigobHwwKT49KGt8MCkp
e2JyZWFrIEwxNzE0fX1pPWU7cmV0dXJuIG58MH19d2hpbGUoMCk7TDE3MjE6ZG97aWYoKGFbYis1
M3wwXSYxKT09MCl7bD1iKzQwfDA7bT1iKzM2fDA7bz1mfDA7cD1nKzR8MDtxPWIrMzJ8MDtyPWs7
TDE3MjM6d2hpbGUoMSl7cz1jW2w+PjJdfDA7dD1zO3U9Y1t0Pj4yXXwwO3Y9Y1t0KzQ+PjJdfDA7
dD1jW20+PjJdfDA7dz1mK3J8MDtzd2l0Y2goYjZbY1soY1t0Pj4yXXwwKSsxNj4+Ml0mMzFdKHQs
cyxvLHcsaCxnLHAsail8MCl7Y2FzZSAxOnticmVha307Y2FzZSAyOntuPS0xO3g9MTM4MDticmVh
ayBMMTcyMzticmVha307Y2FzZSAzOnt4PTEzNjk7YnJlYWsgTDE3MjM7YnJlYWt9O2RlZmF1bHQ6
e3k9cjticmVhayBMMTcyMX19cz1jW2w+PjJdfDA7Y1tzPj4yXT11O2Nbcys0Pj4yXT12O2lmKChy
fDApPT04KXtuPS0xO3g9MTM3OTticmVha312PWFfKGNbcT4+Ml18MCl8MDtpZigodnwwKT09LTEp
e249LTE7eD0xMzg1O2JyZWFrfWFbd109diYyNTU7cj1yKzF8MH1pZigoeHwwKT09MTM3OSl7aT1l
O3JldHVybiBufDB9ZWxzZSBpZigoeHwwKT09MTM4MCl7aT1lO3JldHVybiBufDB9ZWxzZSBpZigo
eHwwKT09MTM4NSl7aT1lO3JldHVybiBufDB9ZWxzZSBpZigoeHwwKT09MTM2OSl7Y1tnPj4yXT1h
W29dfDA7eT1yO2JyZWFrfX1lbHNle2NbZz4+Ml09YVtmfDBdfDA7eT1rfX13aGlsZSgwKTtpZihk
KXtkPWNbZz4+Ml18MDtjW2IrNDg+PjJdPWQ7bj1kO2k9ZTtyZXR1cm4gbnwwfWQ9YiszMnwwO2I9
eTt3aGlsZSgxKXtpZigoYnwwKTw9MCl7YnJlYWt9eT1iLTF8MDtpZigoYkEoYVtmK3l8MF18MCxj
W2Q+PjJdfDApfDApPT0tMSl7bj0tMTt4PTEzODI7YnJlYWt9ZWxzZXtiPXl9fWlmKCh4fDApPT0x
MzgyKXtpPWU7cmV0dXJuIG58MH1uPWNbZz4+Ml18MDtpPWU7cmV0dXJuIG58MH1mdW5jdGlvbiBk
YihhKXthPWF8MDtlbyhhfDApO3JldHVybn1mdW5jdGlvbiBkYyhhKXthPWF8MDtlbyhhfDApO2tT
KGEpO3JldHVybn1mdW5jdGlvbiBkZChhKXthPWF8MDtmZygxNTc5Mil8MDtmZygxNTg4MCl8MDtm
aCgxNTQyNCl8MDtmaCgxNTUxMil8MDtyZXR1cm59ZnVuY3Rpb24gZGUoYSl7YT1hfDA7cmV0dXJu
fWZ1bmN0aW9uIGRmKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBkZyhhKXthPWF8MDt2YXIgYj0w
O2I9YSs0fDA7ST1jW2I+PjJdfDAsY1tiPj4yXT1JKzEsSTtyZXR1cm59ZnVuY3Rpb24gZGgoYSl7
YT1hfDA7cmV0dXJuIGNbYSs0Pj4yXXwwfWZ1bmN0aW9uIGRpKGEpe2E9YXwwO3JldHVybiBjW2Er
ND4+Ml18MH1mdW5jdGlvbiBkaihhKXthPWF8MDtjW2E+PjJdPTQzMDQ7cmV0dXJufWZ1bmN0aW9u
IGRrKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDtjW2E+PjJdPWQ7Y1thKzQ+PjJdPWI7cmV0dXJu
fWZ1bmN0aW9uIGRsKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wO2lmKChjW2IrND4+
Ml18MCkhPShhfDApKXtlPTA7cmV0dXJuIGV8MH1lPShjW2I+PjJdfDApPT0oZHwwKTtyZXR1cm4g
ZXwwfWZ1bmN0aW9uIGRtKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MDtiMFtjWyhjW2I+PjJdfDAp
KzI0Pj4yXSYxMjddKGIpfDA7ZT1pWChkLDE1MzkyKXwwO2Q9ZTtjW2IrMzY+PjJdPWQ7YVtiKzQ0
fDBdPShiMFtjWyhjW2U+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7cmV0dXJufWZ1bmN0aW9u
IGRuKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAs
bj0wO2I9aTtpPWkrMTZ8MDtkPWJ8MDtlPWIrOHwwO2Y9YSszNnwwO2c9YSs0MHwwO2g9ZHwwO2o9
ZCs4fDA7az1kO2Q9YSszMnwwO0wxNzY3OndoaWxlKDEpe2E9Y1tmPj4yXXwwO2w9YiRbY1soY1th
Pj4yXXwwKSsyMD4+Ml0mMzFdKGEsY1tnPj4yXXwwLGgsaixlKXwwO2E9KGNbZT4+Ml18MCkta3ww
O2lmKChhTShofDAsMSxhfDAsY1tkPj4yXXwwKXwwKSE9KGF8MCkpe209LTE7bj0xNDE0O2JyZWFr
fXN3aXRjaChsfDApe2Nhc2UgMjp7bT0tMTtuPTE0MTU7YnJlYWsgTDE3Njc7YnJlYWt9O2Nhc2Ug
MTp7YnJlYWt9O2RlZmF1bHQ6e249MTQxMTticmVhayBMMTc2N319fWlmKChufDApPT0xNDE1KXtp
PWI7cmV0dXJuIG18MH1lbHNlIGlmKChufDApPT0xNDExKXttPSgoYUsoY1tkPj4yXXwwKXwwKSE9
MCk8PDMxPj4zMTtpPWI7cmV0dXJuIG18MH1lbHNlIGlmKChufDApPT0xNDE0KXtpPWI7cmV0dXJu
IG18MH1yZXR1cm4gMH1mdW5jdGlvbiBkcChiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9
MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUrMTZ8MDtqPWUrMjR8MDtrPShkfDAp
PT0tMTtMMTc3Njpkb3tpZighayl7YVtnXT1kJjI1NTtpZigoYVtiKzQ0fDBdJjEpIT0wKXtpZigo
YU0oZ3wwLDEsMSxjW2IrMzI+PjJdfDApfDApPT0xKXticmVha31lbHNle2w9LTF9aT1lO3JldHVy
biBsfDB9bT1mfDA7Y1toPj4yXT1tO249ZysxfDA7bz1iKzM2fDA7cD1iKzQwfDA7cT1mKzh8MDty
PWY7cz1iKzMyfDA7dD1nO3doaWxlKDEpe3U9Y1tvPj4yXXwwO3Y9YjZbY1soY1t1Pj4yXXwwKSsx
Mj4+Ml0mMzFdKHUsY1twPj4yXXwwLHQsbixqLG0scSxoKXwwO2lmKChjW2o+PjJdfDApPT0odHww
KSl7bD0tMTt3PTE0MzM7YnJlYWt9aWYoKHZ8MCk9PTMpe3c9MTQyMjticmVha311PSh2fDApPT0x
O2lmKHY+Pj4wPj0yKXtsPS0xO3c9MTQzMjticmVha312PShjW2g+PjJdfDApLXJ8MDtpZigoYU0o
bXwwLDEsdnwwLGNbcz4+Ml18MCl8MCkhPSh2fDApKXtsPS0xO3c9MTQzMDticmVha31pZih1KXt0
PXU/Y1tqPj4yXXwwOnR9ZWxzZXticmVhayBMMTc3Nn19aWYoKHd8MCk9PTE0MzApe2k9ZTtyZXR1
cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTE0MjIpe2lmKChhTSh0fDAsMSwxLGNbcz4+Ml18MCl8MCk9
PTEpe2JyZWFrfWVsc2V7bD0tMX1pPWU7cmV0dXJuIGx8MH1lbHNlIGlmKCh3fDApPT0xNDMyKXtp
PWU7cmV0dXJuIGx8MH1lbHNlIGlmKCh3fDApPT0xNDMzKXtpPWU7cmV0dXJuIGx8MH19fXdoaWxl
KDApO2w9az8wOmQ7aT1lO3JldHVybiBsfDB9ZnVuY3Rpb24gZHEoYixkLGUpe2I9YnwwO2Q9ZHww
O2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxqPTA7Zj1pO2k9aSs4fDA7Zz1mfDA7ZXAoYnwwKTtjW2I+
PjJdPTUwNDg7Y1tiKzMyPj4yXT1kO2NbYis0MD4+Ml09ZTtjW2IrNDg+PjJdPS0xO2FbYis1Mnww
XT0wO2lOKGcsYis0fDApO2U9aVgoZywxNTM5Mil8MDtkPWU7aD1iKzM2fDA7Y1toPj4yXT1kO2o9
Yis0NHwwO2Nbaj4+Ml09YjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShkKXwwO2Q9Y1toPj4y
XXwwO2FbYis1M3wwXT0oYjBbY1soY1tkPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO2lmKChj
W2o+PjJdfDApPD04KXtpTyhnKTtpPWY7cmV0dXJufWhWKDE4NCk7aU8oZyk7aT1mO3JldHVybn1m
dW5jdGlvbiBkcihhKXthPWF8MDtlbyhhfDApO3JldHVybn1mdW5jdGlvbiBkcyhhKXthPWF8MDtl
byhhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBkdChiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MDtlPWlYKGQsMTUzOTIpfDA7ZD1lO2Y9YiszNnwwO2NbZj4+Ml09ZDtnPWIrNDR8MDtj
W2c+PjJdPWIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZCl8MDtkPWNbZj4+Ml18MDthW2Ir
NTN8MF09KGIwW2NbKGNbZD4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtpZigoY1tnPj4yXXww
KTw9OCl7cmV0dXJufWhWKDE4NCk7cmV0dXJufWZ1bmN0aW9uIGR1KGEpe2E9YXwwO3JldHVybiBk
eChhLDApfDB9ZnVuY3Rpb24gZHYoYSl7YT1hfDA7cmV0dXJuIGR4KGEsMSl8MH1mdW5jdGlvbiBk
dyhiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1l
KzI0fDA7az1iKzUyfDA7bD0oYVtrXSYxKSE9MDtpZigoZHwwKT09LTEpe2lmKGwpe209LTE7aT1l
O3JldHVybiBtfDB9bj1jW2IrNDg+PjJdfDA7YVtrXT0obnwwKSE9LTF8MDttPW47aT1lO3JldHVy
biBtfDB9bj1iKzQ4fDA7TDE4MTk6ZG97aWYobCl7YVtoXT1jW24+PjJdJjI1NTtvPWNbYiszNj4+
Ml18MDtwPWZ8MDtzd2l0Y2goYjZbY1soY1tvPj4yXXwwKSsxMj4+Ml0mMzFdKG8sY1tiKzQwPj4y
XXwwLGgsaCsxfDAsaixwLGYrOHwwLGcpfDApe2Nhc2UgMzp7YVtwXT1jW24+PjJdJjI1NTtjW2c+
PjJdPWYrMTticmVha307Y2FzZSAyOmNhc2UgMTp7bT0tMTtpPWU7cmV0dXJuIG18MH07ZGVmYXVs
dDp7fX1vPWIrMzJ8MDt3aGlsZSgxKXtxPWNbZz4+Ml18MDtpZihxPj4+MDw9cD4+PjApe2JyZWFr
IEwxODE5fXI9cS0xfDA7Y1tnPj4yXT1yO2lmKChiQShhW3JdfDAsY1tvPj4yXXwwKXwwKT09LTEp
e209LTE7YnJlYWt9fWk9ZTtyZXR1cm4gbXwwfX13aGlsZSgwKTtjW24+PjJdPWQ7YVtrXT0xO209
ZDtpPWU7cmV0dXJuIG18MH1mdW5jdGlvbiBkeChiLGUpe2I9YnwwO2U9ZXwwO3ZhciBmPTAsZz0w
LGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MCx5PTAsej0wLEE9MDtmPWk7aT1pKzMyfDA7Zz1mfDA7aD1mKzh8MDtqPWYrMTZ8MDtr
PWYrMjR8MDtsPWIrNTJ8MDtpZigoYVtsXSYxKSE9MCl7bT1iKzQ4fDA7bj1jW20+PjJdfDA7aWYo
IWUpe289bjtpPWY7cmV0dXJuIG98MH1jW20+PjJdPS0xO2FbbF09MDtvPW47aT1mO3JldHVybiBv
fDB9bj1jW2IrNDQ+PjJdfDA7bD0obnwwKT4xP246MTtMMTgzOTpkb3tpZigobHwwKT4wKXtuPWIr
MzJ8MDttPTA7d2hpbGUoMSl7cD1hXyhjW24+PjJdfDApfDA7aWYoKHB8MCk9PS0xKXtvPS0xO2Jy
ZWFrfWFbZyttfDBdPXAmMjU1O209bSsxfDA7aWYoKG18MCk+PShsfDApKXticmVhayBMMTgzOX19
aT1mO3JldHVybiBvfDB9fXdoaWxlKDApO0wxODQ2OmRve2lmKChhW2IrNTN8MF0mMSk9PTApe209
Yis0MHwwO249YiszNnwwO3A9Z3wwO3E9aCsxfDA7cj1iKzMyfDA7cz1sO0wxODQ4OndoaWxlKDEp
e3Q9Y1ttPj4yXXwwO3U9dDt2PWNbdT4+Ml18MDt3PWNbdSs0Pj4yXXwwO3U9Y1tuPj4yXXwwO3g9
ZytzfDA7c3dpdGNoKGI2W2NbKGNbdT4+Ml18MCkrMTY+PjJdJjMxXSh1LHQscCx4LGosaCxxLGsp
fDApe2Nhc2UgMTp7YnJlYWt9O2Nhc2UgMjp7bz0tMTt5PTE0OTA7YnJlYWsgTDE4NDg7YnJlYWt9
O2Nhc2UgMzp7eT0xNDc5O2JyZWFrIEwxODQ4O2JyZWFrfTtkZWZhdWx0Ont6PXM7YnJlYWsgTDE4
NDZ9fXQ9Y1ttPj4yXXwwO2NbdD4+Ml09djtjW3QrND4+Ml09dztpZigoc3wwKT09OCl7bz0tMTt5
PTE0OTE7YnJlYWt9dz1hXyhjW3I+PjJdfDApfDA7aWYoKHd8MCk9PS0xKXtvPS0xO3k9MTQ5NTti
cmVha31hW3hdPXcmMjU1O3M9cysxfDB9aWYoKHl8MCk9PTE0OTApe2k9ZjtyZXR1cm4gb3wwfWVs
c2UgaWYoKHl8MCk9PTE0OTUpe2k9ZjtyZXR1cm4gb3wwfWVsc2UgaWYoKHl8MCk9PTE0Nzkpe2Fb
aF09YVtwXXwwO3o9czticmVha31lbHNlIGlmKCh5fDApPT0xNDkxKXtpPWY7cmV0dXJuIG98MH19
ZWxzZXthW2hdPWFbZ3wwXXwwO3o9bH19d2hpbGUoMCk7ZG97aWYoZSl7bD1hW2hdfDA7Y1tiKzQ4
Pj4yXT1sJjI1NTtBPWx9ZWxzZXtsPWIrMzJ8MDtrPXo7d2hpbGUoMSl7aWYoKGt8MCk8PTApe3k9
MTQ4NjticmVha31qPWstMXwwO2lmKChiQShkW2cranwwXXwwfDAsY1tsPj4yXXwwKXwwKT09LTEp
e289LTE7eT0xNDk0O2JyZWFrfWVsc2V7az1qfX1pZigoeXwwKT09MTQ4Nil7QT1hW2hdfDA7YnJl
YWt9ZWxzZSBpZigoeXwwKT09MTQ5NCl7aT1mO3JldHVybiBvfDB9fX13aGlsZSgwKTtvPUEmMjU1
O2k9ZjtyZXR1cm4gb3wwfWZ1bmN0aW9uIGR5KCl7Y1ooMCk7YSQoMTQyLDE2MTQ0fDAsdXwwKXww
O3JldHVybn1mdW5jdGlvbiBkeihhKXthPWF8MDt2YXIgYj0wLGQ9MDtiPWErNHwwO2lmKCgoST1j
W2I+PjJdfDAsY1tiPj4yXT1JKyAtMSxJKXwwKSE9MCl7ZD0wO3JldHVybiBkfDB9YllbY1soY1th
Pj4yXXwwKSs4Pj4yXSY1MTFdKGEpO2Q9MTtyZXR1cm4gZHwwfWZ1bmN0aW9uIGRBKGEsYil7YT1h
fDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wO2NbYT4+Ml09MjUzNjtkPWErNHwwO2lmKChkfDApPT0w
KXtyZXR1cm59YT1rMChifDApfDA7ZT1hKzF8MDtmPWtQKGErMTN8MCl8MDtjW2YrND4+Ml09YTtj
W2Y+PjJdPWE7YT1mKzEyfDA7Y1tkPj4yXT1hO2NbZis4Pj4yXT0wO2tZKGF8MCxifDAsZSl8MDty
ZXR1cm59ZnVuY3Rpb24gZEIoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2NbYT4+Ml09MjUzNjti
PWErNHwwO2Q9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2Q+PjJdfDAsY1tkPj4yXT1JKyAtMSxJ
KS0xfDApPj0wKXtlPWE7a1MoZSk7cmV0dXJufWQ9KGNbYj4+Ml18MCktMTJ8MDtpZigoZHwwKT09
MCl7ZT1hO2tTKGUpO3JldHVybn1rVChkKTtlPWE7a1MoZSk7cmV0dXJufWZ1bmN0aW9uIGRDKGEp
e2E9YXwwO3ZhciBiPTA7Y1thPj4yXT0yNTM2O2I9YSs0fDA7YT0oY1tiPj4yXXwwKS00fDA7aWYo
KChJPWNbYT4+Ml18MCxjW2E+PjJdPUkrIC0xLEkpLTF8MCk+PTApe3JldHVybn1hPShjW2I+PjJd
fDApLTEyfDA7aWYoKGF8MCk9PTApe3JldHVybn1rVChhKTtyZXR1cm59ZnVuY3Rpb24gZEQoYixk
KXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7Y1tiPj4yXT0yNDcyO2U9Yis0fDA7aWYoKGV8
MCk9PTApe3JldHVybn1pZigoYVtkXSYxKT09MCl7Zj1kKzF8MH1lbHNle2Y9Y1tkKzg+PjJdfDB9
ZD1rMChmfDApfDA7Yj1kKzF8MDtnPWtQKGQrMTN8MCl8MDtjW2crND4+Ml09ZDtjW2c+PjJdPWQ7
ZD1nKzEyfDA7Y1tlPj4yXT1kO2NbZys4Pj4yXT0wO2tZKGR8MCxmfDAsYil8MDtyZXR1cm59ZnVu
Y3Rpb24gZEUoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTA7Y1thPj4yXT0yNDcyO2Q9
YSs0fDA7aWYoKGR8MCk9PTApe3JldHVybn1hPWswKGJ8MCl8MDtlPWErMXwwO2Y9a1AoYSsxM3ww
KXwwO2NbZis0Pj4yXT1hO2NbZj4+Ml09YTthPWYrMTJ8MDtjW2Q+PjJdPWE7Y1tmKzg+PjJdPTA7
a1koYXwwLGJ8MCxlKXwwO3JldHVybn1mdW5jdGlvbiBkRihhKXthPWF8MDt2YXIgYj0wLGQ9MCxl
PTA7Y1thPj4yXT0yNDcyO2I9YSs0fDA7ZD0oY1tiPj4yXXwwKS00fDA7aWYoKChJPWNbZD4+Ml18
MCxjW2Q+PjJdPUkrIC0xLEkpLTF8MCk+PTApe2U9YTtrUyhlKTtyZXR1cm59ZD0oY1tiPj4yXXww
KS0xMnwwO2lmKChkfDApPT0wKXtlPWE7a1MoZSk7cmV0dXJufWtUKGQpO2U9YTtrUyhlKTtyZXR1
cm59ZnVuY3Rpb24gZEcoYSl7YT1hfDA7dmFyIGI9MDtjW2E+PjJdPTI0NzI7Yj1hKzR8MDthPShj
W2I+PjJdfDApLTR8MDtpZigoKEk9Y1thPj4yXXwwLGNbYT4+Ml09SSsgLTEsSSktMXwwKT49MCl7
cmV0dXJufWE9KGNbYj4+Ml18MCktMTJ8MDtpZigoYXwwKT09MCl7cmV0dXJufWtUKGEpO3JldHVy
bn1mdW5jdGlvbiBkSChhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTA7Y1thPj4yXT0yNTM2O2I9YSs0
fDA7ZD0oY1tiPj4yXXwwKS00fDA7aWYoKChJPWNbZD4+Ml18MCxjW2Q+PjJdPUkrIC0xLEkpLTF8
MCk+PTApe2U9YTtrUyhlKTtyZXR1cm59ZD0oY1tiPj4yXXwwKS0xMnwwO2lmKChkfDApPT0wKXtl
PWE7a1MoZSk7cmV0dXJufWtUKGQpO2U9YTtrUyhlKTtyZXR1cm59ZnVuY3Rpb24gZEkoYSl7YT1h
fDA7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGRKKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIg
ZT0wLGY9MCxnPTA7ZT1pO2k9aSs4fDA7Zj1lfDA7YjNbY1soY1thPj4yXXwwKSsxMj4+Ml0mN10o
ZixhLGIpO2lmKChjW2YrND4+Ml18MCkhPShjW2QrND4+Ml18MCkpe2c9MDtpPWU7cmV0dXJuIGd8
MH1nPShjW2Y+PjJdfDApPT0oY1tkPj4yXXwwKTtpPWU7cmV0dXJuIGd8MH1mdW5jdGlvbiBkSyhh
LGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7Yj1ieChjfDApfDA7ZFooYSxiLGswKGJ8MCl8MCk7cmV0
dXJufWZ1bmN0aW9uIGRMKGIsZSxmKXtiPWJ8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtnPWk7aD1mO2o9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8MztrPWV8MDtsPWNbaz4+Ml18MDtpZigobHwwKT09MCl7bT1iO2NbbT4+Ml09Y1toPj4y
XTtjW20rND4+Ml09Y1toKzQ+PjJdO2NbbSs4Pj4yXT1jW2grOD4+Ml07ayQoaHwwLDAsMTIpO2k9
ZztyZXR1cm59bj1kW2hdfDA7aWYoKG4mMXwwKT09MCl7bz1uPj4+MX1lbHNle289Y1tmKzQ+PjJd
fDB9aWYoKG98MCk9PTApe3A9bH1lbHNle2RUKGYsMTI5Nil8MDtwPWNbaz4+Ml18MH1rPWNbZSs0
Pj4yXXwwO2IzW2NbKGNbaz4+Ml18MCkrMjQ+PjJdJjddKGosayxwKTtwPWFbal18MDtpZigocCYx
KT09MCl7cT1qKzF8MH1lbHNle3E9Y1tqKzg+PjJdfDB9az1wJjI1NTtpZigoayYxfDApPT0wKXty
PWs+Pj4xfWVsc2V7cj1jW2orND4+Ml18MH1kVihmLHEscil8MDtkUChqKTttPWI7Y1ttPj4yXT1j
W2g+PjJdO2NbbSs0Pj4yXT1jW2grND4+Ml07Y1ttKzg+PjJdPWNbaCs4Pj4yXTtrJChofDAsMCwx
Mik7aT1nO3JldHVybn1mdW5jdGlvbiBkTShhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wO2U9aTtpPWkrMzJ8MDtmPWI7Yj1pO2k9aSs4fDA7Y1tiPj4yXT1jW2Y+PjJdO2Nb
Yis0Pj4yXT1jW2YrND4+Ml07Zj1lfDA7Zz1lKzE2fDA7ZFooZyxkLGswKGR8MCl8MCk7ZEwoZixi
LGcpO2REKGF8MCxmKTtkUChmKTtkUChnKTtjW2E+PjJdPTQ1NDQ7Zz1iO2I9YSs4fDA7YT1jW2cr
ND4+Ml18MDtjW2I+PjJdPWNbZz4+Ml07Y1tiKzQ+PjJdPWE7aT1lO3JldHVybn1mdW5jdGlvbiBk
TihhKXthPWF8MDtkRyhhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBkTyhhKXthPWF8MDtkRyhh
fDApO3JldHVybn1mdW5jdGlvbiBkUChiKXtiPWJ8MDtpZigoYVtiXSYxKT09MCl7cmV0dXJufWtT
KGNbYis4Pj4yXXwwKTtyZXR1cm59ZnVuY3Rpb24gZFEoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0w
LGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWswKGR8MCl8MDtmPWI7Zz1iO2g9YVtnXXww
O2lmKChoJjEpPT0wKXtpPTEwO2o9aH1lbHNle2g9Y1tiPj4yXXwwO2k9KGgmLTIpLTF8MDtqPWgm
MjU1fWlmKGk+Pj4wPGU+Pj4wKXtoPWomMjU1O2lmKChoJjF8MCk9PTApe2s9aD4+PjF9ZWxzZXtr
PWNbYis0Pj4yXXwwfWQwKGIsaSxlLWl8MCxrLDAsayxlLGQpO3JldHVybiBifDB9aWYoKGomMSk9
PTApe2w9ZisxfDB9ZWxzZXtsPWNbYis4Pj4yXXwwfWtfKGx8MCxkfDAsZXwwKTthW2wrZXwwXT0w
O2lmKChhW2ddJjEpPT0wKXthW2ddPWU8PDEmMjU1O3JldHVybiBifDB9ZWxzZXtjW2IrND4+Ml09
ZTtyZXR1cm4gYnwwfXJldHVybiAwfWZ1bmN0aW9uIGRSKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8
MDt2YXIgZj0wLGc9MCxoPTAsaT0wO2Y9YjtnPWFbZl18MDtoPWcmMjU1O2lmKChoJjF8MCk9PTAp
e2k9aD4+PjF9ZWxzZXtpPWNbYis0Pj4yXXwwfWlmKGk+Pj4wPGQ+Pj4wKXtoPWQtaXwwO2RTKGIs
aCxlKXwwO3JldHVybn1pZigoZyYxKT09MCl7YVtiKzErZHwwXT0wO2FbZl09ZDw8MSYyNTU7cmV0
dXJufWVsc2V7YVsoY1tiKzg+PjJdfDApK2R8MF09MDtjW2IrND4+Ml09ZDtyZXR1cm59fWZ1bmN0
aW9uIGRTKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxr
PTAsbD0wO2lmKChkfDApPT0wKXtyZXR1cm4gYnwwfWY9YjtnPWFbZl18MDtpZigoZyYxKT09MCl7
aD0xMDtpPWd9ZWxzZXtnPWNbYj4+Ml18MDtoPShnJi0yKS0xfDA7aT1nJjI1NX1nPWkmMjU1O2lm
KChnJjF8MCk9PTApe2o9Zz4+PjF9ZWxzZXtqPWNbYis0Pj4yXXwwfWlmKChoLWp8MCk+Pj4wPGQ+
Pj4wKXtkMShiLGgsZC1oK2p8MCxqLGosMCwwKTtrPWFbZl18MH1lbHNle2s9aX1pZigoayYxKT09
MCl7bD1iKzF8MH1lbHNle2w9Y1tiKzg+PjJdfDB9ayQobCtqfDAsZXwwLGR8MCk7ZT1qK2R8MDtp
ZigoYVtmXSYxKT09MCl7YVtmXT1lPDwxJjI1NX1lbHNle2NbYis0Pj4yXT1lfWFbbCtlfDBdPTA7
cmV0dXJuIGJ8MH1mdW5jdGlvbiBkVChhLGIpe2E9YXwwO2I9YnwwO3JldHVybiBkVihhLGIsazAo
YnwwKXwwKXwwfWZ1bmN0aW9uIGRVKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9
MCxpPTAsaj0wLGs9MCxsPTAsbT0wO2U9YjtmPWFbZV18MDtpZigoZiYxKT09MCl7Zz0oZiYyNTUp
Pj4+MTtoPTEwfWVsc2V7Zz1jW2IrND4+Ml18MDtoPShjW2I+PjJdJi0yKS0xfDB9aWYoKGd8MCk9
PShofDApKXtkMShiLGgsMSxoLGgsMCwwKTtpPWFbZV18MH1lbHNle2k9Zn1pZigoaSYxKT09MCl7
YVtlXT0oZzw8MSkrMiYyNTU7aj1iKzF8MDtrPWcrMXwwO2w9aitnfDA7YVtsXT1kO209aitrfDA7
YVttXT0wO3JldHVybn1lbHNle2U9Y1tiKzg+PjJdfDA7aT1nKzF8MDtjW2IrND4+Ml09aTtqPWU7
az1pO2w9aitnfDA7YVtsXT1kO209aitrfDA7YVttXT0wO3JldHVybn19ZnVuY3Rpb24gZFYoYixk
LGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MDtmPWI7Zz1h
W2ZdfDA7aWYoKGcmMSk9PTApe2g9MTA7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXww
O2k9ZyYyNTV9Zz1pJjI1NTtpZigoZyYxfDApPT0wKXtqPWc+Pj4xfWVsc2V7aj1jW2IrND4+Ml18
MH1pZigoaC1qfDApPj4+MDxlPj4+MCl7ZDAoYixoLGUtaCtqfDAsaixqLDAsZSxkKTtyZXR1cm4g
YnwwfWlmKChlfDApPT0wKXtyZXR1cm4gYnwwfWlmKChpJjEpPT0wKXtrPWIrMXwwfWVsc2V7az1j
W2IrOD4+Ml18MH1pPWsranwwO2tZKGl8MCxkfDAsZSl8MDtkPWorZXwwO2lmKChhW2ZdJjEpPT0w
KXthW2ZdPWQ8PDEmMjU1fWVsc2V7Y1tiKzQ+PjJdPWR9YVtrK2R8MF09MDtyZXR1cm4gYnwwfWZ1
bmN0aW9uIGRXKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9
MDtlO2lmKChjW2E+PjJdfDApPT0xKXtkb3thVSg5NzM2LDk3MjgpfDA7fXdoaWxlKChjW2E+PjJd
fDApPT0xKX1pZigoY1thPj4yXXwwKSE9MCl7ZjtyZXR1cm59Y1thPj4yXT0xO2c7YllbZCY1MTFd
KGIpO2g7Y1thPj4yXT0tMTtpO2JzKDk3MzYpfDA7cmV0dXJufWZ1bmN0aW9uIGRYKGEpe2E9YXww
O2E9Yk8oOCl8MDtkQShhLDM2MCk7Y1thPj4yXT0yNTA0O2JsKGF8MCw4MjA4LDMyKX1mdW5jdGlv
biBkWShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTA7ZT1kO2lmKChhW2VdJjEp
PT0wKXtmPWI7Y1tmPj4yXT1jW2U+PjJdO2NbZis0Pj4yXT1jW2UrND4+Ml07Y1tmKzg+PjJdPWNb
ZSs4Pj4yXTtyZXR1cm59ZT1jW2QrOD4+Ml18MDtmPWNbZCs0Pj4yXXwwO2lmKChmfDApPT0tMSl7
ZFgoMCl9aWYoZj4+PjA8MTEpe2FbYl09Zjw8MSYyNTU7Zz1iKzF8MH1lbHNle2Q9ZisxNiYtMTY7
aD1rTyhkKXwwO2NbYis4Pj4yXT1oO2NbYj4+Ml09ZHwxO2NbYis0Pj4yXT1mO2c9aH1rWShnfDAs
ZXwwLGYpfDA7YVtnK2Z8MF09MDtyZXR1cm59ZnVuY3Rpb24gZFooYixkLGUpe2I9YnwwO2Q9ZHww
O2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTA7aWYoKGV8MCk9PS0xKXtkWCgwKX1pZihlPj4+MDwx
MSl7YVtiXT1lPDwxJjI1NTtmPWIrMXwwO2tZKGZ8MCxkfDAsZSl8MDtnPWYrZXwwO2FbZ109MDty
ZXR1cm59ZWxzZXtoPWUrMTYmLTE2O2k9a08oaCl8MDtjW2IrOD4+Ml09aTtjW2I+PjJdPWh8MTtj
W2IrND4+Ml09ZTtmPWk7a1koZnwwLGR8MCxlKXwwO2c9ZitlfDA7YVtnXT0wO3JldHVybn19ZnVu
Y3Rpb24gZF8oYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtpZigoZHww
KT09LTEpe2RYKDApfWlmKGQ+Pj4wPDExKXthW2JdPWQ8PDEmMjU1O2Y9YisxfDB9ZWxzZXtnPWQr
MTYmLTE2O2g9a08oZyl8MDtjW2IrOD4+Ml09aDtjW2I+PjJdPWd8MTtjW2IrND4+Ml09ZDtmPWh9
ayQoZnwwLGV8MCxkfDApO2FbZitkfDBdPTA7cmV0dXJufWZ1bmN0aW9uIGQkKGIsZCl7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTA7aWYoKGR8MCk9PS0xKXtkWCgwKX1lPWI7Zj1iO2c9YVtmXXwwO2lmKChnJjEpPT0w
KXtoPTEwO2k9Z31lbHNle2c9Y1tiPj4yXXwwO2g9KGcmLTIpLTF8MDtpPWcmMjU1fWc9aSYyNTU7
aWYoKGcmMXwwKT09MCl7aj1nPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9Zz1qPj4+MD5kPj4+MD9q
OmQ7aWYoZz4+PjA8MTEpe2s9MTF9ZWxzZXtrPWcrMTYmLTE2fWc9ay0xfDA7aWYoKGd8MCk9PSho
fDApKXtyZXR1cm59aWYoKGd8MCk9PTEwKXtsPWUrMXwwO209Y1tiKzg+PjJdfDA7bj0xO289MH1l
bHNle2lmKGc+Pj4wPmg+Pj4wKXtwPWtPKGspfDB9ZWxzZXtwPWtPKGspfDB9aD1pJjE7aWYoaDw8
MjQ+PjI0PT0wKXtxPWUrMXwwfWVsc2V7cT1jW2IrOD4+Ml18MH1sPXA7bT1xO249aDw8MjQ+PjI0
IT0wO289MX1oPWkmMjU1O2lmKChoJjF8MCk9PTApe3I9aD4+PjF9ZWxzZXtyPWNbYis0Pj4yXXww
fWg9cisxfDA7a1kobHwwLG18MCxoKXwwO2lmKG4pe2tTKG0pfWlmKG8pe2NbYj4+Ml09a3wxO2Nb
Yis0Pj4yXT1qO2NbYis4Pj4yXT1sO3JldHVybn1lbHNle2FbZl09ajw8MSYyNTU7cmV0dXJufX1m
dW5jdGlvbiBkMChiLGQsZSxmLGcsaCxpLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2k9aXwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wO2lmKCgtMy1kfDApPj4+MDxlPj4+MCl7ZFgoMCl9aWYoKGFbYl0mMSk9PTApe2s9
YisxfDB9ZWxzZXtrPWNbYis4Pj4yXXwwfWRve2lmKGQ+Pj4wPDIxNDc0ODM2MzEpe2w9ZStkfDA7
bT1kPDwxO249bD4+PjA8bT4+PjA/bTpsO2lmKG4+Pj4wPDExKXtvPTExO2JyZWFrfW89bisxNiYt
MTZ9ZWxzZXtvPS0yfX13aGlsZSgwKTtlPWtPKG8pfDA7aWYoKGd8MCkhPTApe2tZKGV8MCxrfDAs
Zyl8MH1pZigoaXwwKSE9MCl7bj1lK2d8MDtrWShufDAsanwwLGkpfDB9aj1mLWh8MDtpZigoanww
KSE9KGd8MCkpe2Y9ai1nfDA7bj1lKyhpK2cpfDA7bD1rKyhoK2cpfDA7a1kobnwwLGx8MCxmKXww
fWlmKChkfDApPT0xMCl7cD1iKzh8MDtjW3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9
aitpfDA7dD1iKzR8MDtjW3Q+PjJdPXM7dT1lK3N8MDthW3VdPTA7cmV0dXJufWtTKGspO3A9Yis4
fDA7Y1twPj4yXT1lO3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtzPWoraXwwO3Q9Yis0fDA7Y1t0Pj4y
XT1zO3U9ZStzfDA7YVt1XT0wO3JldHVybn1mdW5jdGlvbiBkMShiLGQsZSxmLGcsaCxpKXtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDt2YXIgaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MDtpZigoLTMtZHwwKT4+PjA8ZT4+PjApe2RYKDApfWlmKChhW2JdJjEp
PT0wKXtqPWIrMXwwfWVsc2V7aj1jW2IrOD4+Ml18MH1kb3tpZihkPj4+MDwyMTQ3NDgzNjMxKXtr
PWUrZHwwO2w9ZDw8MTttPWs+Pj4wPGw+Pj4wP2w6aztpZihtPj4+MDwxMSl7bj0xMTticmVha31u
PW0rMTYmLTE2fWVsc2V7bj0tMn19d2hpbGUoMCk7ZT1rTyhuKXwwO2lmKChnfDApIT0wKXtrWShl
fDAsanwwLGcpfDB9bT1mLWh8MDtpZigobXwwKSE9KGd8MCkpe2Y9bS1nfDA7bT1lKyhpK2cpfDA7
aT1qKyhoK2cpfDA7a1kobXwwLGl8MCxmKXwwfWlmKChkfDApPT0xMCl7bz1iKzh8MDtjW28+PjJd
PWU7cD1ufDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1rUyhqKTtvPWIrOHwwO2Nbbz4+Ml09ZTtw
PW58MTtxPWJ8MDtjW3E+PjJdPXA7cmV0dXJufWZ1bmN0aW9uIGQyKGEsYil7YT1hfDA7Yj1ifDA7
cmV0dXJufWZ1bmN0aW9uIGQzKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDtyZXR1cm4gYXwwfWZ1
bmN0aW9uIGQ0KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGQ1KGEpe2E9YXwwO3JldHVybiAw
fWZ1bmN0aW9uIGQ2KGEpe2E9YXwwO3JldHVybi0xfDB9ZnVuY3Rpb24gZDcoYSxiKXthPWF8MDti
PWJ8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGQ4KGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJuLTF8MH1m
dW5jdGlvbiBkOShhLGIpe2E9YXwwO2I9YnwwO3JldHVybn1mdW5jdGlvbiBlYShhLGIsYyl7YT1h
fDA7Yj1ifDA7Yz1jfDA7cmV0dXJuIGF8MH1mdW5jdGlvbiBlYihhLGIsZCxlLGYsZyl7YT1hfDA7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7Zz1hO2NbZz4+Ml09MDtjW2crND4+Ml09MDtn
PWErOHwwO2NbZz4+Ml09LTE7Y1tnKzQ+PjJdPS0xO3JldHVybn1mdW5jdGlvbiBlYyhhLGIsZCxl
KXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtlPWk7Yj1kO2Q9aTtpPWkrMTZ8MDtjW2Q+PjJdPWNb
Yj4+Ml07Y1tkKzQ+PjJdPWNbYis0Pj4yXTtjW2QrOD4+Ml09Y1tiKzg+PjJdO2NbZCsxMj4+Ml09
Y1tiKzEyPj4yXTtiPWE7Y1tiPj4yXT0wO2NbYis0Pj4yXT0wO2I9YSs4fDA7Y1tiPj4yXT0tMTtj
W2IrND4+Ml09LTE7aT1lO3JldHVybn1mdW5jdGlvbiBlZChhLGIsZCxlLGYsZyl7YT1hfDA7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7Zz1hO2NbZz4+Ml09MDtjW2crND4+Ml09MDtnPWEr
OHwwO2NbZz4+Ml09LTE7Y1tnKzQ+PjJdPS0xO3JldHVybn1mdW5jdGlvbiBlZShiKXtiPWJ8MDtp
ZigoYVtiXSYxKT09MCl7cmV0dXJufWtTKGNbYis4Pj4yXXwwKTtyZXR1cm59ZnVuY3Rpb24gZWYo
YSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4gZWcoYSxiLGttKGIpfDApfDB9ZnVuY3Rpb24gZWcoYixk
LGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MDtmPWI7Zz1h
W2ZdfDA7aWYoKGcmMSk9PTApe2g9MTtpPWd9ZWxzZXtnPWNbYj4+Ml18MDtoPShnJi0yKS0xfDA7
aT1nJjI1NX1pZihoPj4+MDxlPj4+MCl7Zz1pJjI1NTtpZigoZyYxfDApPT0wKXtqPWc+Pj4xfWVs
c2V7aj1jW2IrND4+Ml18MH1lQShiLGgsZS1ofDAsaiwwLGosZSxkKTtyZXR1cm4gYnwwfWlmKChp
JjEpPT0wKXtrPWIrNHwwfWVsc2V7az1jW2IrOD4+Ml18MH1rbyhrLGQsZSl8MDtjW2srKGU8PDIp
Pj4yXT0wO2lmKChhW2ZdJjEpPT0wKXthW2ZdPWU8PDEmMjU1O3JldHVybiBifDB9ZWxzZXtjW2Ir
ND4+Ml09ZTtyZXR1cm4gYnwwfXJldHVybiAwfWZ1bmN0aW9uIGVoKGIsZCl7Yj1ifDA7ZD1kfDA7
dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wO2U9YjtmPWFbZV18MDtpZigo
ZiYxKT09MCl7Zz0oZiYyNTUpPj4+MTtoPTF9ZWxzZXtnPWNbYis0Pj4yXXwwO2g9KGNbYj4+Ml0m
LTIpLTF8MH1pZigoZ3wwKT09KGh8MCkpe2VCKGIsaCwxLGgsaCwwLDApO2k9YVtlXXwwfWVsc2V7
aT1mfWlmKChpJjEpPT0wKXthW2VdPShnPDwxKSsyJjI1NTtqPWIrNHwwO2s9ZysxfDA7bD1qKyhn
PDwyKXwwO2NbbD4+Ml09ZDttPWorKGs8PDIpfDA7Y1ttPj4yXT0wO3JldHVybn1lbHNle2U9Y1ti
Kzg+PjJdfDA7aT1nKzF8MDtjW2IrND4+Ml09aTtqPWU7az1pO2w9aisoZzw8Mil8MDtjW2w+PjJd
PWQ7bT1qKyhrPDwyKXwwO2NbbT4+Ml09MDtyZXR1cm59fWZ1bmN0aW9uIGVpKGEpe2E9YXwwO2VE
KGF8MCk7cmV0dXJufWZ1bmN0aW9uIGVqKGEsYil7YT1hfDA7Yj1ifDA7aU4oYSxiKzI4fDApO3Jl
dHVybn1mdW5jdGlvbiBlayhhLGIpe2E9YXwwO2I9YnwwO2NbYSsyND4+Ml09YjtjW2ErMTY+PjJd
PShifDApPT0wO2NbYSsyMD4+Ml09MDtjW2ErND4+Ml09NDA5ODtjW2ErMTI+PjJdPTA7Y1thKzg+
PjJdPTY7Yj1hKzI4fDA7ayQoYSszMnwwLDAsNDApO2lmKChifDApPT0wKXtyZXR1cm59aVcoYik7
cmV0dXJufWZ1bmN0aW9uIGVsKGEpe2E9YXwwO2VEKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGVtKGEp
e2E9YXwwO2NbYT4+Ml09NDIzMjtpTyhhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVuKGEp
e2E9YXwwO2NbYT4+Ml09NDIzMjtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGVvKGEpe2E9YXww
O2NbYT4+Ml09NDIzMjtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGVwKGEpe2E9YXwwO2NbYT4+
Ml09NDIzMjtpVyhhKzR8MCk7ayQoYSs4fDAsMCwyNCk7cmV0dXJufWZ1bmN0aW9uIGVxKGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MDtm
PWI7aWYoKGV8MCk8PTApe2c9MDtyZXR1cm4gZ3wwfWg9YisxMnwwO2k9YisxNnwwO2o9ZDtkPTA7
d2hpbGUoMSl7az1jW2g+PjJdfDA7aWYoaz4+PjA8KGNbaT4+Ml18MCk+Pj4wKXtjW2g+PjJdPWsr
MTtsPWFba118MH1lbHNle2s9YjBbY1soY1tmPj4yXXwwKSs0MD4+Ml0mMTI3XShiKXwwO2lmKChr
fDApPT0tMSl7Zz1kO209MTg1NDticmVha31sPWsmMjU1fWFbal09bDtrPWQrMXwwO2lmKChrfDAp
PChlfDApKXtqPWorMXwwO2Q9a31lbHNle2c9azttPTE4NTY7YnJlYWt9fWlmKChtfDApPT0xODU0
KXtyZXR1cm4gZ3wwfWVsc2UgaWYoKG18MCk9PTE4NTYpe3JldHVybiBnfDB9cmV0dXJuIDB9ZnVu
Y3Rpb24gZXIoYSl7YT1hfDA7dmFyIGI9MCxlPTA7aWYoKGIwW2NbKGNbYT4+Ml18MCkrMzY+PjJd
JjEyN10oYSl8MCk9PS0xKXtiPS0xO3JldHVybiBifDB9ZT1hKzEyfDA7YT1jW2U+PjJdfDA7Y1tl
Pj4yXT1hKzE7Yj1kW2FdfDA7cmV0dXJuIGJ8MH1mdW5jdGlvbiBlcyhiLGUsZil7Yj1ifDA7ZT1l
fDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTA7Zz1iO2lmKChmfDAp
PD0wKXtoPTA7cmV0dXJuIGh8MH1pPWIrMjR8MDtqPWIrMjh8MDtrPTA7bD1lO3doaWxlKDEpe2U9
Y1tpPj4yXXwwO2lmKGU+Pj4wPChjW2o+PjJdfDApPj4+MCl7bT1hW2xdfDA7Y1tpPj4yXT1lKzE7
YVtlXT1tfWVsc2V7aWYoKGJfW2NbKGNbZz4+Ml18MCkrNTI+PjJdJjMxXShiLGRbbF18MCl8MCk9
PS0xKXtoPWs7bj0xODY5O2JyZWFrfX1tPWsrMXwwO2lmKChtfDApPChmfDApKXtrPW07bD1sKzF8
MH1lbHNle2g9bTtuPTE4NzE7YnJlYWt9fWlmKChufDApPT0xODY5KXtyZXR1cm4gaHwwfWVsc2Ug
aWYoKG58MCk9PTE4NzEpe3JldHVybiBofDB9cmV0dXJuIDB9ZnVuY3Rpb24gZXQoYSl7YT1hfDA7
Y1thPj4yXT00MTYwO2lPKGErNHwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZXUoYSl7YT1hfDA7
Y1thPj4yXT00MTYwO2lPKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZXYoYSl7YT1hfDA7Y1thPj4y
XT00MTYwO2lPKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZXcoYSl7YT1hfDA7Y1thPj4yXT00MTYw
O2lXKGErNHwwKTtrJChhKzh8MCwwLDI0KTtyZXR1cm59ZnVuY3Rpb24gZXgoYixkLGUpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wO2lmKGU+Pj4wPjEwNzM3NDE4MjIp
e2RYKDApfWlmKGU+Pj4wPDIpe2FbYl09ZTw8MSYyNTU7Zj1iKzR8MDtnPWtuKGYsZCxlKXwwO2g9
ZisoZTw8Mil8MDtjW2g+PjJdPTA7cmV0dXJufWVsc2V7aT1lKzQmLTQ7aj1rTyhpPDwyKXwwO2Nb
Yis4Pj4yXT1qO2NbYj4+Ml09aXwxO2NbYis0Pj4yXT1lO2Y9ajtnPWtuKGYsZCxlKXwwO2g9Ziso
ZTw8Mil8MDtjW2g+PjJdPTA7cmV0dXJufX1mdW5jdGlvbiBleShiLGQsZSl7Yj1ifDA7ZD1kfDA7
ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTA7aWYoZD4+PjA+MTA3Mzc0MTgyMil7ZFgoMCl9
aWYoZD4+PjA8Mil7YVtiXT1kPDwxJjI1NTtmPWIrNHwwO2c9a3AoZixlLGQpfDA7aD1mKyhkPDwy
KXwwO2NbaD4+Ml09MDtyZXR1cm59ZWxzZXtpPWQrNCYtNDtqPWtPKGk8PDIpfDA7Y1tiKzg+PjJd
PWo7Y1tiPj4yXT1pfDE7Y1tiKzQ+PjJdPWQ7Zj1qO2c9a3AoZixlLGQpfDA7aD1mKyhkPDwyKXww
O2NbaD4+Ml09MDtyZXR1cm59fWZ1bmN0aW9uIGV6KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MDtpZihkPj4+MD4x
MDczNzQxODIyKXtkWCgwKX1lPWI7Zj1hW2VdfDA7aWYoKGYmMSk9PTApe2c9MTtoPWZ9ZWxzZXtm
PWNbYj4+Ml18MDtnPShmJi0yKS0xfDA7aD1mJjI1NX1mPWgmMjU1O2lmKChmJjF8MCk9PTApe2k9
Zj4+PjF9ZWxzZXtpPWNbYis0Pj4yXXwwfWY9aT4+PjA+ZD4+PjA/aTpkO2lmKGY+Pj4wPDIpe2o9
Mn1lbHNle2o9Zis0Ji00fWY9ai0xfDA7aWYoKGZ8MCk9PShnfDApKXtyZXR1cm59aWYoKGZ8MCk9
PTEpe2s9Yis0fDA7bD1jW2IrOD4+Ml18MDttPTE7bj0wfWVsc2V7ZD1qPDwyO2lmKGY+Pj4wPmc+
Pj4wKXtvPWtPKGQpfDB9ZWxzZXtvPWtPKGQpfDB9ZD1oJjE7aWYoZDw8MjQ+PjI0PT0wKXtwPWIr
NHwwfWVsc2V7cD1jW2IrOD4+Ml18MH1rPW87bD1wO209ZDw8MjQ+PjI0IT0wO249MX1kPWs7az1o
JjI1NTtpZigoayYxfDApPT0wKXtxPWs+Pj4xfWVsc2V7cT1jW2IrND4+Ml18MH1rbihkLGwscSsx
fDApfDA7aWYobSl7a1MobCl9aWYobil7Y1tiPj4yXT1qfDE7Y1tiKzQ+PjJdPWk7Y1tiKzg+PjJd
PWQ7cmV0dXJufWVsc2V7YVtlXT1pPDwxJjI1NTtyZXR1cm59fWZ1bmN0aW9uIGVBKGIsZCxlLGYs
ZyxoLGksail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7
dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7aWYoKDEwNzM3
NDE4MjEtZHwwKT4+PjA8ZT4+PjApe2RYKDApfWlmKChhW2JdJjEpPT0wKXtrPWIrNHwwfWVsc2V7
az1jW2IrOD4+Ml18MH1kb3tpZihkPj4+MDw1MzY4NzA4OTUpe2w9ZStkfDA7bT1kPDwxO249bD4+
PjA8bT4+PjA/bTpsO2lmKG4+Pj4wPDIpe289MjticmVha31vPW4rNCYtNH1lbHNle289MTA3Mzc0
MTgyMn19d2hpbGUoMCk7ZT1rTyhvPDwyKXwwO2lmKChnfDApIT0wKXtrbihlLGssZyl8MH1pZigo
aXwwKSE9MCl7bj1lKyhnPDwyKXwwO2tuKG4saixpKXwwfWo9Zi1ofDA7aWYoKGp8MCkhPShnfDAp
KXtmPWotZ3wwO249ZSsoaStnPDwyKXwwO2w9aysoaCtnPDwyKXwwO2tuKG4sbCxmKXwwfWlmKChk
fDApPT0xKXtwPWIrOHwwO2NbcD4+Ml09ZTtxPW98MTtyPWJ8MDtjW3I+PjJdPXE7cz1qK2l8MDt0
PWIrNHwwO2NbdD4+Ml09czt1PWUrKHM8PDIpfDA7Y1t1Pj4yXT0wO3JldHVybn1rUyhrKTtwPWIr
OHwwO2NbcD4+Ml09ZTtxPW98MTtyPWJ8MDtjW3I+PjJdPXE7cz1qK2l8MDt0PWIrNHwwO2NbdD4+
Ml09czt1PWUrKHM8PDIpfDA7Y1t1Pj4yXT0wO3JldHVybn1mdW5jdGlvbiBlQihiLGQsZSxmLGcs
aCxpKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDt2YXIgaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MDtpZigoMTA3Mzc0MTgyMS1kfDApPj4+MDxlPj4+MCl7
ZFgoMCl9aWYoKGFbYl0mMSk9PTApe2o9Yis0fDB9ZWxzZXtqPWNbYis4Pj4yXXwwfWRve2lmKGQ+
Pj4wPDUzNjg3MDg5NSl7az1lK2R8MDtsPWQ8PDE7bT1rPj4+MDxsPj4+MD9sOms7aWYobT4+PjA8
Mil7bj0yO2JyZWFrfW49bSs0Ji00fWVsc2V7bj0xMDczNzQxODIyfX13aGlsZSgwKTtlPWtPKG48
PDIpfDA7aWYoKGd8MCkhPTApe2tuKGUsaixnKXwwfW09Zi1ofDA7aWYoKG18MCkhPShnfDApKXtm
PW0tZ3wwO209ZSsoaStnPDwyKXwwO2k9aisoaCtnPDwyKXwwO2tuKG0saSxmKXwwfWlmKChkfDAp
PT0xKXtvPWIrOHwwO2Nbbz4+Ml09ZTtwPW58MTtxPWJ8MDtjW3E+PjJdPXA7cmV0dXJufWtTKGop
O289Yis4fDA7Y1tvPj4yXT1lO3A9bnwxO3E9YnwwO2NbcT4+Ml09cDtyZXR1cm59ZnVuY3Rpb24g
ZUMoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7ZT1pO2k9aSs4fDA7Zj1lfDA7Zz0o
Y1tiKzI0Pj4yXXwwKT09MDtpZihnKXtjW2IrMTY+PjJdPWR8MX1lbHNle2NbYisxNj4+Ml09ZH1p
ZigoKGcmMXxkKSZjW2IrMjA+PjJdfDApPT0wKXtpPWU7cmV0dXJufWU9Yk8oMTYpfDA7ZG97aWYo
KGFbMTYyNzJdfDApPT0wKXtpZigoYmMoMTYyNzIpfDApPT0wKXticmVha31kaigxMTg0MCk7Y1sy
OTYwXT00ZTM7YSQoNjYsMTE4NDAsdXwwKXwwfX13aGlsZSgwKTtiPWszKDExODQwLDAsMzIpfDA7
ZD1LO2NbZj4+Ml09YiYwfDE7Y1tmKzQ+PjJdPWR8MDtkTShlLGYsMTMwNCk7Y1tlPj4yXT0zMTg0
O2JsKGV8MCw4NzUyLDI4KX1mdW5jdGlvbiBlRChhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0w
O2NbYT4+Ml09MzE2MDtiPWNbYSs0MD4+Ml18MDtkPWErMzJ8MDtlPWErMzZ8MDtpZigoYnwwKSE9
MCl7Zj1iO2Rve2Y9Zi0xfDA7YjNbY1soY1tkPj4yXXwwKSsoZjw8Mik+PjJdJjddKDAsYSxjWyhj
W2U+PjJdfDApKyhmPDwyKT4+Ml18MCk7fXdoaWxlKChmfDApIT0wKX1pTyhhKzI4fDApO2tLKGNb
ZD4+Ml18MCk7a0soY1tlPj4yXXwwKTtrSyhjW2ErNDg+PjJdfDApO2tLKGNbYSs2MD4+Ml18MCk7
cmV0dXJufWZ1bmN0aW9uIGVFKGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGVGKGEpe2E9YXww
O3JldHVybiAwfWZ1bmN0aW9uIGVHKGEpe2E9YXwwO3JldHVybi0xfDB9ZnVuY3Rpb24gZUgoYSxi
KXthPWF8MDtiPWJ8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGVJKGEsYil7YT1hfDA7Yj1ifDA7cmV0
dXJuLTF8MH1mdW5jdGlvbiBlSihhKXthPWF8MDtyZXR1cm4gMTQxNnwwfWZ1bmN0aW9uIGVLKGEs
YixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2U9aTtiPWQ7ZD1pO2k9aSsxNnwwO2NbZD4+
Ml09Y1tiPj4yXTtjW2QrND4+Ml09Y1tiKzQ+PjJdO2NbZCs4Pj4yXT1jW2IrOD4+Ml07Y1tkKzEy
Pj4yXT1jW2IrMTI+PjJdO2I9YTtjW2I+PjJdPTA7Y1tiKzQ+PjJdPTA7Yj1hKzh8MDtjW2I+PjJd
PS0xO2NbYis0Pj4yXT0tMTtpPWU7cmV0dXJufWZ1bmN0aW9uIGVMKGIsYyxkLGUsZil7Yj1ifDA7
Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO0wyNDM3
OmRve2lmKChlfDApPT0oZnwwKSl7Zz1jfWVsc2V7Yj1jO2g9ZTt3aGlsZSgxKXtpZigoYnwwKT09
KGR8MCkpe2k9LTE7aj0xOTkwO2JyZWFrfWs9YVtiXXwwO2w9YVtoXXwwO2lmKGs8PDI0Pj4yNDxs
PDwyND4+MjQpe2k9LTE7aj0xOTkzO2JyZWFrfWlmKGw8PDI0Pj4yNDxrPDwyND4+MjQpe2k9MTtq
PTE5OTI7YnJlYWt9az1iKzF8MDtsPWgrMXwwO2lmKChsfDApPT0oZnwwKSl7Zz1rO2JyZWFrIEwy
NDM3fWVsc2V7Yj1rO2g9bH19aWYoKGp8MCk9PTE5OTMpe3JldHVybiBpfDB9ZWxzZSBpZigoanww
KT09MTk5Mil7cmV0dXJuIGl8MH1lbHNlIGlmKChqfDApPT0xOTkwKXtyZXR1cm4gaXwwfX19d2hp
bGUoMCk7aT0oZ3wwKSE9KGR8MCl8MDtyZXR1cm4gaXwwfWZ1bmN0aW9uIGVNKGIsYyxkKXtiPWJ8
MDtjPWN8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wO2lmKChjfDApPT0oZHwwKSl7ZT0wO3Jl
dHVybiBlfDB9ZWxzZXtmPWM7Zz0wfXdoaWxlKDEpe2M9KGFbZl18MCkrKGc8PDQpfDA7Yj1jJi0y
Njg0MzU0NTY7aD0oYj4+PjI0fGIpXmM7Yz1mKzF8MDtpZigoY3wwKT09KGR8MCkpe2U9aDticmVh
a31lbHNle2Y9YztnPWh9fXJldHVybiBlfDB9ZnVuY3Rpb24gZU4oYSxiLGQpe2E9YXwwO2I9Ynww
O2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO2U9YTtpZigoZHwwKTw9
MCl7Zj0wO3JldHVybiBmfDB9Zz1hKzEyfDA7aD1hKzE2fDA7aT1iO2I9MDt3aGlsZSgxKXtqPWNb
Zz4+Ml18MDtpZihqPj4+MDwoY1toPj4yXXwwKT4+PjApe2NbZz4+Ml09ais0O2s9Y1tqPj4yXXww
fWVsc2V7aj1iMFtjWyhjW2U+PjJdfDApKzQwPj4yXSYxMjddKGEpfDA7aWYoKGp8MCk9PS0xKXtm
PWI7bD0yMDA3O2JyZWFrfWVsc2V7az1qfX1jW2k+PjJdPWs7aj1iKzF8MDtpZigoanwwKTwoZHww
KSl7aT1pKzR8MDtiPWp9ZWxzZXtmPWo7bD0yMDA4O2JyZWFrfX1pZigobHwwKT09MjAwOCl7cmV0
dXJuIGZ8MH1lbHNlIGlmKChsfDApPT0yMDA3KXtyZXR1cm4gZnwwfXJldHVybiAwfWZ1bmN0aW9u
IGVPKGEpe2E9YXwwO3ZhciBiPTAsZD0wO2lmKChiMFtjWyhjW2E+PjJdfDApKzM2Pj4yXSYxMjdd
KGEpfDApPT0tMSl7Yj0tMTtyZXR1cm4gYnwwfWQ9YSsxMnwwO2E9Y1tkPj4yXXwwO2NbZD4+Ml09
YSs0O2I9Y1thPj4yXXwwO3JldHVybiBifDB9ZnVuY3Rpb24gZVAoYSxiLGQpe2E9YXwwO2I9Ynww
O2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO2U9YTtpZigoZHwwKTw9
MCl7Zj0wO3JldHVybiBmfDB9Zz1hKzI0fDA7aD1hKzI4fDA7aT0wO2o9Yjt3aGlsZSgxKXtiPWNb
Zz4+Ml18MDtpZihiPj4+MDwoY1toPj4yXXwwKT4+PjApe2s9Y1tqPj4yXXwwO2NbZz4+Ml09Yis0
O2NbYj4+Ml09a31lbHNle2lmKChiX1tjWyhjW2U+PjJdfDApKzUyPj4yXSYzMV0oYSxjW2o+PjJd
fDApfDApPT0tMSl7Zj1pO2w9MjAyMzticmVha319az1pKzF8MDtpZigoa3wwKTwoZHwwKSl7aT1r
O2o9ais0fDB9ZWxzZXtmPWs7bD0yMDIyO2JyZWFrfX1pZigobHwwKT09MjAyMyl7cmV0dXJuIGZ8
MH1lbHNlIGlmKChsfDApPT0yMDIyKXtyZXR1cm4gZnwwfXJldHVybiAwfWZ1bmN0aW9uIGVRKGEp
e2E9YXwwO2VEKGErOHwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZVIoYSl7YT1hfDA7ZUQoYSs4
fDApO3JldHVybn1mdW5jdGlvbiBlUyhhKXthPWF8MDt2YXIgYj0wLGQ9MDtiPWE7ZD1jWyhjW2E+
PjJdfDApLTEyPj4yXXwwO2VEKGIrKGQrOCl8MCk7a1MoYitkfDApO3JldHVybn1mdW5jdGlvbiBl
VChhKXthPWF8MDtlRChhKygoY1soY1thPj4yXXwwKS0xMj4+Ml18MCkrOCl8MCk7cmV0dXJufWZ1
bmN0aW9uIGVVKGEpe2E9YXwwO2VEKGErOHwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZVYoYSl7
YT1hfDA7ZUQoYSs4fDApO3JldHVybn1mdW5jdGlvbiBlVyhhKXthPWF8MDt2YXIgYj0wLGQ9MDti
PWE7ZD1jWyhjW2E+PjJdfDApLTEyPj4yXXwwO2VEKGIrKGQrOCl8MCk7a1MoYitkfDApO3JldHVy
bn1mdW5jdGlvbiBlWChhKXthPWF8MDtlRChhKygoY1soY1thPj4yXXwwKS0xMj4+Ml18MCkrOCl8
MCk7cmV0dXJufWZ1bmN0aW9uIGVZKGEpe2E9YXwwO2VEKGErNHwwKTtrUyhhKTtyZXR1cm59ZnVu
Y3Rpb24gZVooYSl7YT1hfDA7ZUQoYSs0fDApO3JldHVybn1mdW5jdGlvbiBlXyhhKXthPWF8MDt2
YXIgYj0wLGQ9MDtiPWE7ZD1jWyhjW2E+PjJdfDApLTEyPj4yXXwwO2VEKGIrKGQrNCl8MCk7a1Mo
YitkfDApO3JldHVybn1mdW5jdGlvbiBlJChhKXthPWF8MDtlRChhKygoY1soY1thPj4yXXwwKS0x
Mj4+Ml18MCkrNCl8MCk7cmV0dXJufWZ1bmN0aW9uIGUwKGEpe2E9YXwwO2VEKGErNHwwKTtrUyhh
KTtyZXR1cm59ZnVuY3Rpb24gZTEoYSl7YT1hfDA7ZUQoYSs0fDApO3JldHVybn1mdW5jdGlvbiBl
MihhKXthPWF8MDt2YXIgYj0wLGQ9MDtiPWE7ZD1jWyhjW2E+PjJdfDApLTEyPj4yXXwwO2VEKGIr
KGQrNCl8MCk7a1MoYitkfDApO3JldHVybn1mdW5jdGlvbiBlMyhhKXthPWF8MDtlRChhKygoY1so
Y1thPj4yXXwwKS0xMj4+Ml18MCkrNCl8MCk7cmV0dXJufWZ1bmN0aW9uIGU0KGEsYixjKXthPWF8
MDtiPWJ8MDtjPWN8MDtpZigoY3wwKT09MSl7ZFooYSwxNjQwLDM1KTtyZXR1cm59ZWxzZXtkSyhh
LGJ8MCxjKTtyZXR1cm59fWZ1bmN0aW9uIGU1KGEpe2E9YXwwO2RmKGF8MCk7cmV0dXJufWZ1bmN0
aW9uIGU2KGEpe2E9YXwwO2RPKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGU3KGEpe2E9YXww
O2RPKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGU4KGEpe2E9YXwwO2VEKGEpO2tTKGEpO3JldHVybn1m
dW5jdGlvbiBlOShhKXthPWF8MDtkZihhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBmYShhKXth
PWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBmYihhKXthPWF8MDtkZShhfDApO3Jl
dHVybn1mdW5jdGlvbiBmYyhhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBmZChiLGQs
ZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MDtkPWU7
Zz1mLWR8MDtkb3tpZigoZ3wwKT09LTEpe2RYKGIpO2g9MjA1OH1lbHNle2lmKGc+Pj4wPj0xMSl7
aD0yMDU4O2JyZWFrfWFbYl09Zzw8MSYyNTU7aT1iKzF8MH19d2hpbGUoMCk7aWYoKGh8MCk9PTIw
NTgpe2g9ZysxNiYtMTY7aj1rTyhoKXwwO2NbYis4Pj4yXT1qO2NbYj4+Ml09aHwxO2NbYis0Pj4y
XT1nO2k9an1pZigoZXwwKT09KGZ8MCkpe2s9aTthW2tdPTA7cmV0dXJufWo9ZisoLWR8MCl8MDtk
PWk7Zz1lO3doaWxlKDEpe2FbZF09YVtnXXwwO2U9ZysxfDA7aWYoKGV8MCk9PShmfDApKXticmVh
a31lbHNle2Q9ZCsxfDA7Zz1lfX1rPWkranwwO2Fba109MDtyZXR1cm59ZnVuY3Rpb24gZmUoYSl7
YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZmYoYSl7YT1hfDA7ZGUoYXwwKTty
ZXR1cm59ZnVuY3Rpb24gZmcoYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9
MDtkPWk7aT1pKzh8MDtlPWR8MDtmPWI7Zz1jWyhjW2Y+PjJdfDApLTEyPj4yXXwwO2g9YjtpZigo
Y1toKyhnKzI0KT4+Ml18MCk9PTApe2k9ZDtyZXR1cm4gYnwwfWo9ZXwwO2Fbal09MDtjW2UrND4+
Ml09Yjtkb3tpZigoY1toKyhnKzE2KT4+Ml18MCk9PTApe2s9Y1toKyhnKzcyKT4+Ml18MDtpZigo
a3wwKSE9MCl7Zmcoayl8MH1hW2pdPTE7az1jW2grKChjWyhjW2Y+PjJdfDApLTEyPj4yXXwwKSsy
NCk+PjJdfDA7aWYoKGIwW2NbKGNbaz4+Ml18MCkrMjQ+PjJdJjEyN10oayl8MCkhPS0xKXticmVh
a31rPWNbKGNbZj4+Ml18MCktMTI+PjJdfDA7ZUMoaCtrfDAsY1toKyhrKzE2KT4+Ml18MSl9fXdo
aWxlKDApO2ZpKGUpO2k9ZDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGZoKGIpe2I9YnwwO3ZhciBkPTAs
ZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTA7ZD1pO2k9aSs4fDA7ZT1kfDA7Zj1iO2c9Y1soY1tmPj4y
XXwwKS0xMj4+Ml18MDtoPWI7aWYoKGNbaCsoZysyNCk+PjJdfDApPT0wKXtpPWQ7cmV0dXJuIGJ8
MH1qPWV8MDthW2pdPTA7Y1tlKzQ+PjJdPWI7ZG97aWYoKGNbaCsoZysxNik+PjJdfDApPT0wKXtr
PWNbaCsoZys3Mik+PjJdfDA7aWYoKGt8MCkhPTApe2ZoKGspfDB9YVtqXT0xO2s9Y1toKygoY1so
Y1tmPj4yXXwwKS0xMj4+Ml18MCkrMjQpPj4yXXwwO2lmKChiMFtjWyhjW2s+PjJdfDApKzI0Pj4y
XSYxMjddKGspfDApIT0tMSl7YnJlYWt9az1jWyhjW2Y+PjJdfDApLTEyPj4yXXwwO2VDKGgra3ww
LGNbaCsoaysxNik+PjJdfDEpfX13aGlsZSgwKTtmaihlKTtpPWQ7cmV0dXJuIGJ8MH1mdW5jdGlv
biBmaShhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTA7Yj1hKzR8MDthPWNbYj4+Ml18MDtkPWNbKGNb
YT4+Ml18MCktMTI+PjJdfDA7ZT1hO2lmKChjW2UrKGQrMjQpPj4yXXwwKT09MCl7cmV0dXJufWlm
KChjW2UrKGQrMTYpPj4yXXwwKSE9MCl7cmV0dXJufWlmKChjW2UrKGQrNCk+PjJdJjgxOTJ8MCk9
PTApe3JldHVybn1pZihiaCgpfDApe3JldHVybn1kPWNbYj4+Ml18MDtlPWNbZCsoKGNbKGNbZD4+
Ml18MCktMTI+PjJdfDApKzI0KT4+Ml18MDtpZigoYjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3
XShlKXwwKSE9LTEpe3JldHVybn1lPWNbYj4+Ml18MDtiPWNbKGNbZT4+Ml18MCktMTI+PjJdfDA7
ZD1lO2VDKGQrYnwwLGNbZCsoYisxNik+PjJdfDEpO3JldHVybn1mdW5jdGlvbiBmaihhKXthPWF8
MDt2YXIgYj0wLGQ9MCxlPTA7Yj1hKzR8MDthPWNbYj4+Ml18MDtkPWNbKGNbYT4+Ml18MCktMTI+
PjJdfDA7ZT1hO2lmKChjW2UrKGQrMjQpPj4yXXwwKT09MCl7cmV0dXJufWlmKChjW2UrKGQrMTYp
Pj4yXXwwKSE9MCl7cmV0dXJufWlmKChjW2UrKGQrNCk+PjJdJjgxOTJ8MCk9PTApe3JldHVybn1p
ZihiaCgpfDApe3JldHVybn1kPWNbYj4+Ml18MDtlPWNbZCsoKGNbKGNbZD4+Ml18MCktMTI+PjJd
fDApKzI0KT4+Ml18MDtpZigoYjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShlKXwwKSE9LTEp
e3JldHVybn1lPWNbYj4+Ml18MDtiPWNbKGNbZT4+Ml18MCktMTI+PjJdfDA7ZD1lO2VDKGQrYnww
LGNbZCsoYisxNik+PjJdfDEpO3JldHVybn1mdW5jdGlvbiBmayhhLGIsZCxlLGYpe2E9YXwwO2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtMMjU5Njpk
b3tpZigoZXwwKT09KGZ8MCkpe2c9Yn1lbHNle2E9YjtoPWU7d2hpbGUoMSl7aWYoKGF8MCk9PShk
fDApKXtpPS0xO2o9MjE0NzticmVha31rPWNbYT4+Ml18MDtsPWNbaD4+Ml18MDtpZigoa3wwKTwo
bHwwKSl7aT0tMTtqPTIxNTA7YnJlYWt9aWYoKGx8MCk8KGt8MCkpe2k9MTtqPTIxNDg7YnJlYWt9
az1hKzR8MDtsPWgrNHwwO2lmKChsfDApPT0oZnwwKSl7Zz1rO2JyZWFrIEwyNTk2fWVsc2V7YT1r
O2g9bH19aWYoKGp8MCk9PTIxNDgpe3JldHVybiBpfDB9ZWxzZSBpZigoanwwKT09MjE0Nyl7cmV0
dXJuIGl8MH1lbHNlIGlmKChqfDApPT0yMTUwKXtyZXR1cm4gaXwwfX19d2hpbGUoMCk7aT0oZ3ww
KSE9KGR8MCl8MDtyZXR1cm4gaXwwfWZ1bmN0aW9uIGZsKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTAsaD0wO2lmKChifDApPT0oZHwwKSl7ZT0wO3JldHVybiBlfDB9ZWxz
ZXtmPWI7Zz0wfXdoaWxlKDEpe2I9KGNbZj4+Ml18MCkrKGc8PDQpfDA7YT1iJi0yNjg0MzU0NTY7
aD0oYT4+PjI0fGEpXmI7Yj1mKzR8MDtpZigoYnwwKT09KGR8MCkpe2U9aDticmVha31lbHNle2Y9
YjtnPWh9fXJldHVybiBlfDB9ZnVuY3Rpb24gZm0oYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTA7ZD1lO2c9Zi1kfDA7aD1nPj4yO2lmKGg+Pj4w
PjEwNzM3NDE4MjIpe2RYKGIpfWlmKGg+Pj4wPDIpe2FbYl09Zz4+PjEmMjU1O2k9Yis0fDB9ZWxz
ZXtnPWgrNCYtNDtqPWtPKGc8PDIpfDA7Y1tiKzg+PjJdPWo7Y1tiPj4yXT1nfDE7Y1tiKzQ+PjJd
PWg7aT1qfWlmKChlfDApPT0oZnwwKSl7az1pO2Nbaz4+Ml09MDtyZXR1cm59aj0oZi00KygtZHww
KXwwKT4+PjI7ZD1pO2g9ZTt3aGlsZSgxKXtjW2Q+PjJdPWNbaD4+Ml07ZT1oKzR8MDtpZigoZXww
KT09KGZ8MCkpe2JyZWFrfWVsc2V7ZD1kKzR8MDtoPWV9fWs9aSsoaisxPDwyKXwwO2Nbaz4+Ml09
MDtyZXR1cm59ZnVuY3Rpb24gZm4oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24gZm8oYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZnAoYixkLGUsZixnLGgsail7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7
az1pO2k9aSsxMTJ8MDtsPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJd
O2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1rfDA7bT1rKzE2
fDA7bj1rKzMyfDA7bz1rKzQwfDA7cD1rKzQ4fDA7cT1rKzU2fDA7cj1rKzY0fDA7cz1rKzcyfDA7
dD1rKzgwfDA7dT1rKzEwNHwwO2lmKChjW2crND4+Ml0mMXwwKT09MCl7Y1tuPj4yXT0tMTt2PWNb
KGNbZD4+Ml18MCkrMTY+PjJdfDA7dz1lfDA7Y1twPj4yXT1jW3c+PjJdO2NbcT4+Ml09Y1tmPj4y
XTtiWFt2JjEyN10obyxkLHAscSxnLGgsbik7cT1jW28+PjJdfDA7Y1t3Pj4yXT1xO3N3aXRjaChj
W24+PjJdfDApe2Nhc2UgMTp7YVtqXT0xO2JyZWFrfTtjYXNlIDA6e2Fbal09MDticmVha307ZGVm
YXVsdDp7YVtqXT0xO2NbaD4+Ml09NH19Y1tiPj4yXT1xO2k9aztyZXR1cm59ZWoocixnKTtxPXJ8
MDtyPWNbcT4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbT4+Ml09MTU2OTY7Y1ttKzQ+PjJd
PTEyO2NbbSs4Pj4yXT0wO2RXKDE1Njk2LG0sOTYpfW09KGNbMzkyNV18MCktMXwwO249Y1tyKzg+
PjJdfDA7ZG97aWYoKGNbcisxMj4+Ml18MCktbj4+Mj4+PjA+bT4+PjApe3c9Y1tuKyhtPDwyKT4+
Ml18MDtpZigod3wwKT09MCl7YnJlYWt9bz13O3c9Y1txPj4yXXwwO2R6KHcpfDA7ZWoocyxnKTt3
PXN8MDtwPWNbdz4+Ml18MDtpZigoY1szODI4XXwwKSE9LTEpe2NbbD4+Ml09MTUzMTI7Y1tsKzQ+
PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1MzEyLGwsOTYpfWQ9KGNbMzgyOV18MCktMXwwO3Y9Y1tw
Kzg+PjJdfDA7ZG97aWYoKGNbcCsxMj4+Ml18MCktdj4+Mj4+PjA+ZD4+PjApe3g9Y1t2KyhkPDwy
KT4+Ml18MDtpZigoeHwwKT09MCl7YnJlYWt9eT14O3o9Y1t3Pj4yXXwwO2R6KHopfDA7ej10fDA7
QT14O2JaW2NbKGNbQT4+Ml18MCkrMjQ+PjJdJjEyN10oeix5KTtiWltjWyhjW0E+PjJdfDApKzI4
Pj4yXSYxMjddKHQrMTJ8MCx5KTtjW3U+PjJdPWNbZj4+Ml07YVtqXT0oZnEoZSx1LHosdCsyNHww
LG8saCwxKXwwKT09KHp8MCl8MDtjW2I+PjJdPWNbZT4+Ml07ZFAodCsxMnwwKTtkUCh0fDApO2k9
aztyZXR1cm59fXdoaWxlKDApO289Yk8oNCl8MDtrcShvKTtibChvfDAsODE3NiwxMzQpfX13aGls
ZSgwKTtrPWJPKDQpfDA7a3Eoayk7Ymwoa3wwLDgxNzYsMTM0KX1mdW5jdGlvbiBmcShiLGUsZixn
LGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxP
PTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFh
PTA7bD1pO2k9aSsxMDR8MDttPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW20+
PjJdO209KGctZnwwKS8xMnwwO249bHwwO2Rve2lmKG0+Pj4wPjEwMCl7bz1rSihtKXwwO2lmKChv
fDApIT0wKXtwPW87cT1vO2JyZWFrfWtYKCk7cD0wO3E9MH1lbHNle3A9bjtxPTB9fXdoaWxlKDAp
O249KGZ8MCk9PShnfDApO2lmKG4pe3I9bTtzPTB9ZWxzZXtvPW07bT0wO3Q9cDt1PWY7d2hpbGUo
MSl7dj1kW3VdfDA7aWYoKHYmMXwwKT09MCl7dz12Pj4+MX1lbHNle3c9Y1t1KzQ+PjJdfDB9aWYo
KHd8MCk9PTApe2FbdF09Mjt4PW0rMXwwO3k9by0xfDB9ZWxzZXthW3RdPTE7eD1tO3k9b312PXUr
MTJ8MDtpZigodnwwKT09KGd8MCkpe3I9eTtzPXg7YnJlYWt9ZWxzZXtvPXk7bT14O3Q9dCsxfDA7
dT12fX19dT1ifDA7Yj1lfDA7ZT1oO3Q9MDt4PXM7cz1yO3doaWxlKDEpe3I9Y1t1Pj4yXXwwO2Rv
e2lmKChyfDApPT0wKXt6PTB9ZWxzZXtpZigoY1tyKzEyPj4yXXwwKSE9KGNbcisxNj4+Ml18MCkp
e3o9cjticmVha31pZigoYjBbY1soY1tyPj4yXXwwKSszNj4+Ml0mMTI3XShyKXwwKT09LTEpe2Nb
dT4+Ml09MDt6PTA7YnJlYWt9ZWxzZXt6PWNbdT4+Ml18MDticmVha319fXdoaWxlKDApO3I9KHp8
MCk9PTA7bT1jW2I+PjJdfDA7aWYoKG18MCk9PTApe0E9ejtCPTB9ZWxzZXtkb3tpZigoY1ttKzEy
Pj4yXXwwKT09KGNbbSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW20+PjJdfDApKzM2Pj4yXSYxMjdd
KG0pfDApIT0tMSl7Qz1tO2JyZWFrfWNbYj4+Ml09MDtDPTB9ZWxzZXtDPW19fXdoaWxlKDApO0E9
Y1t1Pj4yXXwwO0I9Q31EPShCfDApPT0wO2lmKCEoKHJeRCkmKHN8MCkhPTApKXticmVha31tPWNb
QSsxMj4+Ml18MDtpZigobXwwKT09KGNbQSsxNj4+Ml18MCkpe0U9KGIwW2NbKGNbQT4+Ml18MCkr
MzY+PjJdJjEyN10oQSl8MCkmMjU1fWVsc2V7RT1hW21dfDB9aWYoayl7Rj1FfWVsc2V7Rj1iX1tj
WyhjW2U+PjJdfDApKzEyPj4yXSYzMV0oaCxFKXwwfWRve2lmKG4pe0c9eDtIPXN9ZWxzZXttPXQr
MXwwO0wyNzA3OmRve2lmKGspe3k9cztvPXg7dz1wO3Y9MDtJPWY7d2hpbGUoMSl7ZG97aWYoKGFb
d118MCk9PTEpe0o9STtpZigoYVtKXSYxKT09MCl7Sz1JKzF8MH1lbHNle0s9Y1tJKzg+PjJdfDB9
aWYoRjw8MjQ+PjI0IT0oYVtLK3R8MF18MCkpe2Fbd109MDtMPXY7TT1vO049eS0xfDA7YnJlYWt9
Tz1kW0pdfDA7aWYoKE8mMXwwKT09MCl7UD1PPj4+MX1lbHNle1A9Y1tJKzQ+PjJdfDB9aWYoKFB8
MCkhPShtfDApKXtMPTE7TT1vO049eTticmVha31hW3ddPTI7TD0xO009bysxfDA7Tj15LTF8MH1l
bHNle0w9djtNPW87Tj15fX13aGlsZSgwKTtPPUkrMTJ8MDtpZigoT3wwKT09KGd8MCkpe1E9TjtS
PU07Uz1MO2JyZWFrIEwyNzA3fXk9TjtvPU07dz13KzF8MDt2PUw7ST1PfX1lbHNle0k9czt2PXg7
dz1wO289MDt5PWY7d2hpbGUoMSl7ZG97aWYoKGFbd118MCk9PTEpe089eTtpZigoYVtPXSYxKT09
MCl7VD15KzF8MH1lbHNle1Q9Y1t5Kzg+PjJdfDB9aWYoRjw8MjQ+PjI0IT0oYl9bY1soY1tlPj4y
XXwwKSsxMj4+Ml0mMzFdKGgsYVtUK3R8MF18MCl8MCk8PDI0Pj4yNCl7YVt3XT0wO1U9bztWPXY7
Vz1JLTF8MDticmVha31KPWRbT118MDtpZigoSiYxfDApPT0wKXtYPUo+Pj4xfWVsc2V7WD1jW3kr
ND4+Ml18MH1pZigoWHwwKSE9KG18MCkpe1U9MTtWPXY7Vz1JO2JyZWFrfWFbd109MjtVPTE7Vj12
KzF8MDtXPUktMXwwfWVsc2V7VT1vO1Y9djtXPUl9fXdoaWxlKDApO0o9eSsxMnwwO2lmKChKfDAp
PT0oZ3wwKSl7UT1XO1I9VjtTPVU7YnJlYWsgTDI3MDd9ST1XO3Y9Vjt3PXcrMXwwO289VTt5PUp9
fX13aGlsZSgwKTtpZighUyl7Rz1SO0g9UTticmVha31tPWNbdT4+Ml18MDt5PW0rMTJ8MDtvPWNb
eT4+Ml18MDtpZigob3wwKT09KGNbbSsxNj4+Ml18MCkpe3c9Y1soY1ttPj4yXXwwKSs0MD4+Ml18
MDtiMFt3JjEyN10obSl8MH1lbHNle2NbeT4+Ml09bysxfWlmKChSK1F8MCk+Pj4wPDJ8bil7Rz1S
O0g9UTticmVha31vPXQrMXwwO3k9UjttPXA7dz1mO3doaWxlKDEpe2Rve2lmKChhW21dfDApPT0y
KXt2PWRbd118MDtpZigodiYxfDApPT0wKXtZPXY+Pj4xfWVsc2V7WT1jW3crND4+Ml18MH1pZigo
WXwwKT09KG98MCkpe1o9eTticmVha31hW21dPTA7Wj15LTF8MH1lbHNle1o9eX19d2hpbGUoMCk7
dj13KzEyfDA7aWYoKHZ8MCk9PShnfDApKXtHPVo7SD1RO2JyZWFrfWVsc2V7eT1aO209bSsxfDA7
dz12fX19fXdoaWxlKDApO3Q9dCsxfDA7eD1HO3M9SH1kb3tpZigoQXwwKT09MCl7Xz0wfWVsc2V7
aWYoKGNbQSsxMj4+Ml18MCkhPShjW0ErMTY+PjJdfDApKXtfPUE7YnJlYWt9aWYoKGIwW2NbKGNb
QT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MCk9PS0xKXtjW3U+PjJdPTA7Xz0wO2JyZWFrfWVsc2V7
Xz1jW3U+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTt1PShffDApPT0wO2Rve2lmKEQpeyQ9MjI5M31l
bHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7aWYodSl7YnJlYWt9ZWxzZXsk
PTIyOTU7YnJlYWt9fWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApPT0tMSl7
Y1tiPj4yXT0wOyQ9MjI5MzticmVha31lbHNle2lmKHVeKEJ8MCk9PTApe2JyZWFrfWVsc2V7JD0y
Mjk1O2JyZWFrfX19fXdoaWxlKDApO2lmKCgkfDApPT0yMjkzKXtpZih1KXskPTIyOTV9fWlmKCgk
fDApPT0yMjk1KXtjW2o+PjJdPWNbaj4+Ml18Mn1MMjc4Njpkb3tpZihuKXskPTIzMDB9ZWxzZXt1
PWY7Qj1wO3doaWxlKDEpe2lmKChhW0JdfDApPT0yKXthYT11O2JyZWFrIEwyNzg2fWI9dSsxMnww
O2lmKChifDApPT0oZ3wwKSl7JD0yMzAwO2JyZWFrIEwyNzg2fXU9YjtCPUIrMXwwfX19d2hpbGUo
MCk7aWYoKCR8MCk9PTIzMDApe2Nbaj4+Ml09Y1tqPj4yXXw0O2FhPWd9aWYoKHF8MCk9PTApe2k9
bDtyZXR1cm4gYWF8MH1rSyhxKTtpPWw7cmV0dXJuIGFhfDB9ZnVuY3Rpb24gZnIoYixlLGYsZyxo
LGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0w
LFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+
PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDY0Ont0PTg7YnJlYWt9
O2Nhc2UgODp7dD0xNjticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9
ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09
MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsx
fDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9
bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wyODA5OndoaWxlKDEpe2Rve2lm
KCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+Ml18MCkpe0I9
dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9LTEpe0I9dzti
cmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4yXXwwO2Rve2lm
KChEfDApPT0wKXtFPTIzMjd9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsxNj4+Ml18MCkp
e2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMjgwOX19aWYoKGIw
W2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7RT0yMzI3O2Jy
ZWFrfWVsc2V7Sz0oRHwwKT09MDtpZihDXkspe0Y9RDtHPUs7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9
SzticmVhayBMMjgwOX19fX13aGlsZSgwKTtpZigoRXwwKT09MjMyNyl7RT0wO2lmKEMpe0g9bDtJ
PTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7Sz0oRCYxfDApPT0wO2lmKCgoY1tw
Pj4yXXwwKS1sfDApPT0oKEs/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoSyl7TD1EPj4+MTtNPUQ+
Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TD1EO009RH1kUihuLEw8PDEsMCk7aWYoKGFbb10mMSk9PTAp
e049MTB9ZWxzZXtOPShjW2c+PjJdJi0yKS0xfDB9ZFIobixOLDApO2lmKChhW29dJjEpPT0wKXtP
PXh9ZWxzZXtPPWNbeT4+Ml18MH1jW3A+PjJdPU8rTTtQPU99ZWxzZXtQPWx9RD1CKzEyfDA7Sz1j
W0Q+PjJdfDA7UT1CKzE2fDA7aWYoKEt8MCk9PShjW1E+PjJdfDApKXtSPShiMFtjWyhjW0I+PjJd
fDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1I9YVtLXXwwfWlmKChmcyhSLHQsUCxwLHMs
QSxtLHYscix1KXwwKSE9MCl7SD1QO0k9RjtKPUc7YnJlYWt9Sz1jW0Q+PjJdfDA7aWYoKEt8MCk9
PShjW1E+PjJdfDApKXtRPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUSYxMjddKEIpfDA7bD1Q
O3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09SysxO2w9UDt3PUI7Y29udGludWV9fXc9ZFttXXww
O2lmKCh3JjF8MCk9PTApe1M9dz4+PjF9ZWxzZXtTPWNbbSs0Pj4yXXwwfWRve2lmKChTfDApIT0w
KXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVA9Y1tzPj4yXXwwO2Nbcj4+Ml09
dys0O2Nbdz4+Ml09UH19d2hpbGUoMCk7Y1trPj4yXT1mdShILGNbcD4+Ml18MCxqLHQpfDA7ZnQo
bSx2LGNbcj4+Ml18MCxqKTtkb3tpZihDKXtUPTB9ZWxzZXtpZigoY1tCKzEyPj4yXXwwKSE9KGNb
QisxNj4+Ml18MCkpe1Q9QjticmVha31pZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShC
KXwwKSE9LTEpe1Q9QjticmVha31jW2g+PjJdPTA7VD0wfX13aGlsZSgwKTtoPShUfDApPT0wO0wy
ODY5OmRve2lmKEope0U9MjM2OH1lbHNle2Rve2lmKChjW0krMTI+PjJdfDApPT0oY1tJKzE2Pj4y
XXwwKSl7aWYoKGIwW2NbKGNbST4+Ml18MCkrMzY+PjJdJjEyN10oSSl8MCkhPS0xKXticmVha31j
W2Y+PjJdPTA7RT0yMzY4O2JyZWFrIEwyODY5fX13aGlsZSgwKTtpZighKGheKEl8MCk9PTApKXti
cmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97
aWYoKEV8MCk9PTIzNjgpe2lmKGgpe2JyZWFrfVU9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtp
PWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtVPWJ8MDtjW1U+PjJdPVQ7ZFAo
bik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmcyhiLGUsZixnLGgsaSxqLGssbCxtKXtiPWJ8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2
YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7bj1jW2c+PjJdfDA7bz0obnwwKT09KGZ8MCk7ZG97
aWYobyl7cD0oYVttKzI0fDBdfDApPT1iPDwyND4+MjQ7aWYoIXApe2lmKChhW20rMjV8MF18MCkh
PWI8PDI0Pj4yNCl7YnJlYWt9fWNbZz4+Ml09ZisxO2FbZl09cD80Mzo0NTtjW2g+PjJdPTA7cT0w
O3JldHVybiBxfDB9fXdoaWxlKDApO3A9ZFtqXXwwO2lmKChwJjF8MCk9PTApe3I9cD4+PjF9ZWxz
ZXtyPWNbais0Pj4yXXwwfWlmKChyfDApIT0wJmI8PDI0Pj4yND09aTw8MjQ+PjI0KXtpPWNbbD4+
Ml18MDtpZigoaS1rfDApPj0xNjApe3E9MDtyZXR1cm4gcXwwfWs9Y1toPj4yXXwwO2NbbD4+Ml09
aSs0O2NbaT4+Ml09aztjW2g+PjJdPTA7cT0wO3JldHVybiBxfDB9az1tKzI2fDA7aT1tO3doaWxl
KDEpe2lmKChpfDApPT0oa3wwKSl7cz1rO2JyZWFrfWlmKChhW2ldfDApPT1iPDwyND4+MjQpe3M9
aTticmVha31lbHNle2k9aSsxfDB9fWk9cy1tfDA7aWYoKGl8MCk+MjMpe3E9LTE7cmV0dXJuIHF8
MH1MMjkwODpkb3tzd2l0Y2goZXwwKXtjYXNlIDg6Y2FzZSAxMDp7aWYoKGl8MCk8KGV8MCkpe2Jy
ZWFrIEwyOTA4fWVsc2V7cT0tMX1yZXR1cm4gcXwwfTtjYXNlIDE2OntpZigoaXwwKTwyMil7YnJl
YWsgTDI5MDh9aWYobyl7cT0tMTtyZXR1cm4gcXwwfWlmKChuLWZ8MCk+PTMpe3E9LTE7cmV0dXJu
IHF8MH1pZigoYVtuLTF8MF18MCkhPTQ4KXtxPS0xO3JldHVybiBxfDB9Y1toPj4yXT0wO209YVs5
NzQ0K2l8MF18MDtzPWNbZz4+Ml18MDtjW2c+PjJdPXMrMTthW3NdPW07cT0wO3JldHVybiBxfDB9
O2RlZmF1bHQ6e319fXdoaWxlKDApO2Y9YVs5NzQ0K2l8MF18MDtjW2c+PjJdPW4rMTthW25dPWY7
Y1toPj4yXT0oY1toPj4yXXwwKSsxO3E9MDtyZXR1cm4gcXwwfWZ1bmN0aW9uIGZ0KGIsZCxlLGYp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtnPWI7aD1iO2k9YVtoXXwwO2o9aSYyNTU7
aWYoKGomMXwwKT09MCl7az1qPj4+MX1lbHNle2s9Y1tiKzQ+PjJdfDB9aWYoKGt8MCk9PTApe3Jl
dHVybn1kb3tpZigoZHwwKT09KGV8MCkpe2w9aX1lbHNle2s9ZS00fDA7aWYoaz4+PjA+ZD4+PjAp
e209ZDtuPWt9ZWxzZXtsPWk7YnJlYWt9ZG97az1jW20+PjJdfDA7Y1ttPj4yXT1jW24+PjJdO2Nb
bj4+Ml09azttPW0rNHwwO249bi00fDA7fXdoaWxlKG0+Pj4wPG4+Pj4wKTtsPWFbaF18MH19d2hp
bGUoMCk7aWYoKGwmMSk9PTApe289ZysxfDB9ZWxzZXtvPWNbYis4Pj4yXXwwfWc9bCYyNTU7aWYo
KGcmMXwwKT09MCl7cD1nPj4+MX1lbHNle3A9Y1tiKzQ+PjJdfDB9Yj1lLTR8MDtlPWFbb118MDtn
PWU8PDI0Pj4yNDtsPWU8PDI0Pj4yNDwxfGU8PDI0Pj4yND09MTI3O0wyOTQ3OmRve2lmKGI+Pj4w
PmQ+Pj4wKXtlPW8rcHwwO2g9bztuPWQ7bT1nO2k9bDt3aGlsZSgxKXtpZighaSl7aWYoKG18MCkh
PShjW24+PjJdfDApKXticmVha319az0oZS1ofDApPjE/aCsxfDA6aDtqPW4rNHwwO3E9YVtrXXww
O3I9cTw8MjQ+PjI0O3M9cTw8MjQ+PjI0PDF8cTw8MjQ+PjI0PT0xMjc7aWYoaj4+PjA8Yj4+PjAp
e2g9aztuPWo7bT1yO2k9c31lbHNle3Q9cjt1PXM7YnJlYWsgTDI5NDd9fWNbZj4+Ml09NDtyZXR1
cm59ZWxzZXt0PWc7dT1sfX13aGlsZSgwKTtpZih1KXtyZXR1cm59dT1jW2I+PjJdfDA7aWYoISh0
Pj4+MDx1Pj4+MHwodXwwKT09MCkpe3JldHVybn1jW2Y+PjJdPTQ7cmV0dXJufWZ1bmN0aW9uIGZ1
KGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0w
O2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0
dXJuIGp8MH1rPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2
NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDAp
fDB9fXdoaWxlKDApO2w9YkkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXwwO2Y9SztiPWNbKGJ3KCl8
MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWt9aWYoKGNbaD4+Ml18MCkhPShk
fDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWQ9LTE7aD0wO2lmKChifDApPT0zNHwo
KGZ8MCk8KGR8MCl8KGZ8MCk9PShkfDApJmw+Pj4wPC0yMTQ3NDgzNjQ4Pj4+MCl8KChmfDApPiho
fDApfChmfDApPT0oaHwwKSZsPj4+MD4yMTQ3NDgzNjQ3Pj4+MCkpe2NbZT4+Ml09NDtlPTA7aj0o
ZnwwKT4oZXwwKXwoZnwwKT09KGV8MCkmbD4+PjA+MD4+PjA/MjE0NzQ4MzY0NzotMjE0NzQ4MzY0
ODtpPWc7cmV0dXJuIGp8MH1lbHNle2o9bDtpPWc7cmV0dXJuIGp8MH1yZXR1cm4gMH1mdW5jdGlv
biBmdihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtr
PWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAs
eD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxN
PTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTA7ZT1pO2k9aSs3MnwwO2w9Zjtm
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMzJ8MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47
cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2Ug
ODp7dD0xNjticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307ZGVm
YXVsdDp7dD0xMH19dT1lfDA7ZngobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDAp
O2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1j
W3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7
aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWFbbF18MDtsPXc7dz1jW2g+PjJdfDA7TDI5OTc6
d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle2lmKChjW3crMTI+PjJdfDApIT0oY1t3
KzE2Pj4yXXwwKSl7Qj13O2JyZWFrfWlmKChiMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcp
fDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1j
W2Y+PjJdfDA7ZG97aWYoKER8MCk9PTApe0U9MjQ3Nn1lbHNle2lmKChjW0QrMTI+PjJdfDApIT0o
Y1tEKzE2Pj4yXXwwKSl7aWYoQyl7Rj1EO0c9MDticmVha31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFr
IEwyOTk3fX1pZigoYjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+
Ml09MDtFPTI0NzY7YnJlYWt9ZWxzZXtMPShEfDApPT0wO2lmKENeTCl7Rj1EO0c9TDticmVha31l
bHNle0g9bDtJPUQ7Sj1MO2JyZWFrIEwyOTk3fX19fXdoaWxlKDApO2lmKChFfDApPT0yNDc2KXtF
PTA7aWYoQyl7SD1sO0k9MDtKPTE7YnJlYWt9ZWxzZXtGPTA7Rz0xfX1EPWRbb118MDtMPShEJjF8
MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoTD9EPj4+MTpjW3o+PjJdfDApfDApKXtpZihM
KXtNPUQ+Pj4xO049RD4+PjF9ZWxzZXtEPWNbej4+Ml18MDtNPUQ7Tj1EfWRSKG4sTTw8MSwwKTtp
ZigoYVtvXSYxKT09MCl7Tz0xMH1lbHNle089KGNbZz4+Ml0mLTIpLTF8MH1kUihuLE8sMCk7aWYo
KGFbb10mMSk9PTApe1A9eH1lbHNle1A9Y1t5Pj4yXXwwfWNbcD4+Ml09UCtOO1E9UH1lbHNle1E9
bH1EPUIrMTJ8MDtMPWNbRD4+Ml18MDtSPUIrMTZ8MDtpZigoTHwwKT09KGNbUj4+Ml18MCkpe1M9
KGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkmMjU1fWVsc2V7Uz1hW0xdfDB9aWYo
KGZzKFMsdCxRLHAscyxBLG0sdixyLHUpfDApIT0wKXtIPVE7ST1GO0o9RzticmVha31MPWNbRD4+
Ml18MDtpZigoTHwwKT09KGNbUj4+Ml18MCkpe1I9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtS
JjEyN10oQil8MDtsPVE7dz1CO2NvbnRpbnVlfWVsc2V7Y1tEPj4yXT1MKzE7bD1RO3c9Qjtjb250
aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7VD13Pj4+MX1lbHNle1Q9Y1ttKzQ+PjJdfDB9
ZG97aWYoKFR8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9UT1jW3M+
PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1RfX13aGlsZSgwKTtzPWZ3KEgsY1twPj4yXXwwLGos
dCl8MDtjW2s+PjJdPXM7Y1trKzQ+PjJdPUs7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihDKXtV
PTB9ZWxzZXtpZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe1U9QjticmVha31pZigo
YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSE9LTEpe1U9QjticmVha31jW2g+PjJd
PTA7VT0wfX13aGlsZSgwKTtoPShVfDApPT0wO0wzMDU3OmRve2lmKEope0U9MjUxN31lbHNle2Rv
e2lmKChjW0krMTI+PjJdfDApPT0oY1tJKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbST4+Ml18MCkr
MzY+PjJdJjEyN10oSSl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7RT0yNTE3O2JyZWFrIEwzMDU3
fX13aGlsZSgwKTtpZighKGheKEl8MCk9PTApKXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAobik7
ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEV8MCk9PTI1MTcpe2lmKGgpe2JyZWFr
fVY9YnwwO2NbVj4+Ml09VTtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJd
PWNbaj4+Ml18MjtWPWJ8MDtjW1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlv
biBmdyhiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0w
LGw9MCxtPTA7Zz1pO2k9aSs4fDA7aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0w
O2s9MDtpPWc7cmV0dXJuKEs9aixrKXwwfWw9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4y
XT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1sy
OTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bT1iSShifDAsaHwwLGZ8MCxjWzI5NThdfDAp
fDA7Zj1LO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09bH1p
ZigoY1toPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtqPTA7az0wO2k9ZztyZXR1cm4oSz1qLGsp
fDB9aWYoKGJ8MCkhPTM0KXtqPWY7az1tO2k9ZztyZXR1cm4oSz1qLGspfDB9Y1tlPj4yXT00O2U9
MDtiPShmfDApPihlfDApfChmfDApPT0oZXwwKSZtPj4+MD4wPj4+MDtqPWI/MjE0NzQ4MzY0Nzot
MjE0NzQ4MzY0ODtrPWI/LTE6MDtpPWc7cmV0dXJuKEs9aixrKXwwfWZ1bmN0aW9uIGZ4KGIsZCxl
LGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTA7Zz1pO2k9aSs0MHwwO2g9Z3wwO2o9ZysxNnwwO2s9ZyszMnwwO2VqKGss
ZCk7ZD1rfDA7az1jW2Q+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2o+PjJdPTE1Njk2O2Nb
ais0Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTY5NixqLDk2KX1qPShjWzM5MjVdfDApLTF8MDts
PWNbays4Pj4yXXwwO2Rve2lmKChjW2srMTI+PjJdfDApLWw+PjI+Pj4wPmo+Pj4wKXttPWNbbCso
ajw8Mik+PjJdfDA7aWYoKG18MCk9PTApe2JyZWFrfW49bTtvPWNbKGNbbT4+Ml18MCkrMzI+PjJd
fDA7Y2FbbyYxNV0obiw5NzQ0LDk3NzAsZSl8MDtuPWNbZD4+Ml18MDtpZigoY1szODI4XXwwKSE9
LTEpe2NbaD4+Ml09MTUzMTI7Y1toKzQ+PjJdPTEyO2NbaCs4Pj4yXT0wO2RXKDE1MzEyLGgsOTYp
fW89KGNbMzgyOV18MCktMXwwO209Y1tuKzg+PjJdfDA7ZG97aWYoKGNbbisxMj4+Ml18MCktbT4+
Mj4+PjA+bz4+PjApe3A9Y1ttKyhvPDwyKT4+Ml18MDtpZigocHwwKT09MCl7YnJlYWt9cT1wO2Fb
Zl09YjBbY1soY1twPj4yXXwwKSsxNj4+Ml0mMTI3XShxKXwwO2JaW2NbKGNbcD4+Ml18MCkrMjA+
PjJdJjEyN10oYixxKTtxPWNbZD4+Ml18MDtkeihxKXwwO2k9ZztyZXR1cm59fXdoaWxlKDApO289
Yk8oNCl8MDtrcShvKTtibChvfDAsODE3NiwxMzQpfX13aGlsZSgwKTtnPWJPKDQpfDA7a3EoZyk7
YmwoZ3wwLDgxNzYsMTM0KX1mdW5jdGlvbiBmeShlLGYsZyxoLGosayxsKXtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9
MCxWPTA7Zj1pO2k9aSs3MnwwO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNb
bT4+Ml07bT1oO2g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbaD4+Ml09Y1ttPj4yXTttPWYrMzJ8
MDtuPWYrNDB8MDtvPWYrNTZ8MDtwPW87cT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cj1pO2k9aSsx
NjB8MDtzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0
Y2goY1tqKzQ+PjJdJjc0fDApe2Nhc2UgMDp7dT0wO2JyZWFrfTtjYXNlIDg6e3U9MTY7YnJlYWt9
O2Nhc2UgNjQ6e3U9ODticmVha307ZGVmYXVsdDp7dT0xMH19dj1mfDA7ZngobixqLHYsbSk7ayQo
cHwwLDAsMTIpO2o9bztkUihvLDEwLDApO2lmKChhW3BdJjEpPT0wKXt3PWorMXwwO3g9dzt5PXc7
ej1vKzh8MH1lbHNle3c9bys4fDA7eD1jW3c+PjJdfDA7eT1qKzF8MDt6PXd9Y1txPj4yXT14O3c9
cnwwO2Nbcz4+Ml09dztjW3Q+PjJdPTA7aj1nfDA7Zz1ofDA7aD1vfDA7QT1vKzR8MDtCPWFbbV18
MDttPXg7eD1jW2o+PjJdfDA7TDMxMjI6d2hpbGUoMSl7ZG97aWYoKHh8MCk9PTApe0M9MH1lbHNl
e2lmKChjW3grMTI+PjJdfDApIT0oY1t4KzE2Pj4yXXwwKSl7Qz14O2JyZWFrfWlmKChiMFtjWyhj
W3g+PjJdfDApKzM2Pj4yXSYxMjddKHgpfDApIT0tMSl7Qz14O2JyZWFrfWNbaj4+Ml09MDtDPTB9
fXdoaWxlKDApO0Q9KEN8MCk9PTA7RT1jW2c+PjJdfDA7ZG97aWYoKEV8MCk9PTApe0Y9MjU3OX1l
bHNle2lmKChjW0UrMTI+PjJdfDApIT0oY1tFKzE2Pj4yXXwwKSl7aWYoRCl7Rz1FO0g9MDticmVh
a31lbHNle0k9bTtKPUU7Sz0wO2JyZWFrIEwzMTIyfX1pZigoYjBbY1soY1tFPj4yXXwwKSszNj4+
Ml0mMTI3XShFKXwwKT09LTEpe2NbZz4+Ml09MDtGPTI1Nzk7YnJlYWt9ZWxzZXtMPShFfDApPT0w
O2lmKEReTCl7Rz1FO0g9TDticmVha31lbHNle0k9bTtKPUU7Sz1MO2JyZWFrIEwzMTIyfX19fXdo
aWxlKDApO2lmKChGfDApPT0yNTc5KXtGPTA7aWYoRCl7ST1tO0o9MDtLPTE7YnJlYWt9ZWxzZXtH
PTA7SD0xfX1FPWRbcF18MDtMPShFJjF8MCk9PTA7aWYoKChjW3E+PjJdfDApLW18MCk9PSgoTD9F
Pj4+MTpjW0E+PjJdfDApfDApKXtpZihMKXtNPUU+Pj4xO049RT4+PjF9ZWxzZXtFPWNbQT4+Ml18
MDtNPUU7Tj1FfWRSKG8sTTw8MSwwKTtpZigoYVtwXSYxKT09MCl7Tz0xMH1lbHNle089KGNbaD4+
Ml0mLTIpLTF8MH1kUihvLE8sMCk7aWYoKGFbcF0mMSk9PTApe1A9eX1lbHNle1A9Y1t6Pj4yXXww
fWNbcT4+Ml09UCtOO1E9UH1lbHNle1E9bX1FPUMrMTJ8MDtMPWNbRT4+Ml18MDtSPUMrMTZ8MDtp
ZigoTHwwKT09KGNbUj4+Ml18MCkpe1M9KGIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8
MCkmMjU1fWVsc2V7Uz1hW0xdfDB9aWYoKGZzKFMsdSxRLHEsdCxCLG4sdyxzLHYpfDApIT0wKXtJ
PVE7Sj1HO0s9SDticmVha31MPWNbRT4+Ml18MDtpZigoTHwwKT09KGNbUj4+Ml18MCkpe1I9Y1so
Y1tDPj4yXXwwKSs0MD4+Ml18MDtiMFtSJjEyN10oQyl8MDttPVE7eD1DO2NvbnRpbnVlfWVsc2V7
Y1tFPj4yXT1MKzE7bT1RO3g9Qztjb250aW51ZX19eD1kW25dfDA7aWYoKHgmMXwwKT09MCl7VD14
Pj4+MX1lbHNle1Q9Y1tuKzQ+PjJdfDB9ZG97aWYoKFR8MCkhPTApe3g9Y1tzPj4yXXwwO2lmKCh4
LXJ8MCk+PTE2MCl7YnJlYWt9UT1jW3Q+PjJdfDA7Y1tzPj4yXT14KzQ7Y1t4Pj4yXT1RfX13aGls
ZSgwKTtiW2w+PjFdPWZ6KEksY1txPj4yXXwwLGssdSl8MDtmdChuLHcsY1tzPj4yXXwwLGspO2Rv
e2lmKEQpe1U9MH1lbHNle2lmKChjW0MrMTI+PjJdfDApIT0oY1tDKzE2Pj4yXXwwKSl7VT1DO2Jy
ZWFrfWlmKChiMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDApIT0tMSl7VT1DO2JyZWFr
fWNbaj4+Ml09MDtVPTB9fXdoaWxlKDApO2o9KFV8MCk9PTA7TDMxODI6ZG97aWYoSyl7Rj0yNjIw
fWVsc2V7ZG97aWYoKGNbSisxMj4+Ml18MCk9PShjW0orMTY+PjJdfDApKXtpZigoYjBbY1soY1tK
Pj4yXXwwKSszNj4+Ml0mMTI3XShKKXwwKSE9LTEpe2JyZWFrfWNbZz4+Ml09MDtGPTI2MjA7YnJl
YWsgTDMxODJ9fXdoaWxlKDApO2lmKCEoal4oSnwwKT09MCkpe2JyZWFrfVY9ZXwwO2NbVj4+Ml09
VTtkUChvKTtkUChuKTtpPWY7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRnwwKT09MjYyMCl7aWYo
ail7YnJlYWt9Vj1lfDA7Y1tWPj4yXT1VO2RQKG8pO2RQKG4pO2k9ZjtyZXR1cm59fXdoaWxlKDAp
O2Nbaz4+Ml09Y1trPj4yXXwyO1Y9ZXwwO2NbVj4+Ml09VTtkUChvKTtkUChuKTtpPWY7cmV0dXJu
fWZ1bmN0aW9uIGZ6KGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0w
LGo9MCxrPTAsbD0wO2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00
O2o9MDtpPWc7cmV0dXJuIGp8MH1pZigoYVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7aT1nO3Jl
dHVybiBqfDB9az1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYy
NjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCww
KXwwfX13aGlsZSgwKTtsPWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygp
fDApPj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0o
ZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1kPTA7aWYoKGJ8MCk9PTM0fChmPj4+
MD5kPj4+MHxmPj4+MD09ZD4+PjAmbD4+PjA+NjU1MzU+Pj4wKSl7Y1tlPj4yXT00O2o9LTE7aT1n
O3JldHVybiBqfDB9ZWxzZXtqPWwmNjU1MzU7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rp
b24gZkEoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7
az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAs
TD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wO2U9aTtpPWkrNzJ8MDtsPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1u
O3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNl
IDY0Ont0PTg7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Rl
ZmF1bHQ6e3Q9MTB9fXU9ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCww
KTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9
Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0w
O2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wzMjMy
OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNb
dysxNj4+Ml18MCkpe0I9dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3
KXwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9
Y1tmPj4yXXwwO2Rve2lmKChEfDApPT0wKXtFPTI2Njl9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9
KGNbRCsxNj4+Ml18MCkpe2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVh
ayBMMzIzMn19aWYoKGIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+
PjJdPTA7RT0yNjY5O2JyZWFrfWVsc2V7Sz0oRHwwKT09MDtpZihDXkspe0Y9RDtHPUs7YnJlYWt9
ZWxzZXtIPWw7ST1EO0o9SzticmVhayBMMzIzMn19fX13aGlsZSgwKTtpZigoRXwwKT09MjY2OSl7
RT0wO2lmKEMpe0g9bDtJPTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7Sz0oRCYx
fDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEs/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYo
Syl7TD1EPj4+MTtNPUQ+Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TD1EO009RH1kUihuLEw8PDEsMCk7
aWYoKGFbb10mMSk9PTApe049MTB9ZWxzZXtOPShjW2c+PjJdJi0yKS0xfDB9ZFIobixOLDApO2lm
KChhW29dJjEpPT0wKXtPPXh9ZWxzZXtPPWNbeT4+Ml18MH1jW3A+PjJdPU8rTTtQPU99ZWxzZXtQ
PWx9RD1CKzEyfDA7Sz1jW0Q+PjJdfDA7UT1CKzE2fDA7aWYoKEt8MCk9PShjW1E+PjJdfDApKXtS
PShiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1I9YVtLXXwwfWlm
KChmcyhSLHQsUCxwLHMsQSxtLHYscix1KXwwKSE9MCl7SD1QO0k9RjtKPUc7YnJlYWt9Sz1jW0Q+
PjJdfDA7aWYoKEt8MCk9PShjW1E+PjJdfDApKXtRPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBb
USYxMjddKEIpfDA7bD1QO3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09SysxO2w9UDt3PUI7Y29u
dGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1M9dz4+PjF9ZWxzZXtTPWNbbSs0Pj4yXXww
fWRve2lmKChTfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVA9Y1tz
Pj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09UH19d2hpbGUoMCk7Y1trPj4yXT1mQihILGNbcD4+
Ml18MCxqLHQpfDA7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihDKXtUPTB9ZWxzZXtpZigoY1tC
KzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe1Q9QjticmVha31pZigoYjBbY1soY1tCPj4yXXww
KSszNj4+Ml0mMTI3XShCKXwwKSE9LTEpe1Q9QjticmVha31jW2g+PjJdPTA7VD0wfX13aGlsZSgw
KTtoPShUfDApPT0wO0wzMjkyOmRve2lmKEope0U9MjcxMH1lbHNle2Rve2lmKChjW0krMTI+PjJd
fDApPT0oY1tJKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbST4+Ml18MCkrMzY+PjJdJjEyN10oSSl8
MCkhPS0xKXticmVha31jW2Y+PjJdPTA7RT0yNzEwO2JyZWFrIEwzMjkyfX13aGlsZSgwKTtpZigh
KGheKEl8MCk9PTApKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3JldHVy
bn19d2hpbGUoMCk7ZG97aWYoKEV8MCk9PTI3MTApe2lmKGgpe2JyZWFrfVU9YnwwO2NbVT4+Ml09
VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtVPWJ8
MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmQihiLGQsZSxmKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MDtnPWk7aT1pKzh8
MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9aWYo
KGFbYl18MCk9PTQ1KXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWs9Y1soYncoKXwwKT4+
Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0
KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1hSShifDAs
aHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7
Y1soYncoKXwwKT4+Ml09a31pZigoY1toPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1n
O3JldHVybiBqfDB9ZD0wO2lmKChifDApPT0zNHwoZj4+PjA+ZD4+PjB8Zj4+PjA9PWQ+Pj4wJmw+
Pj4wPi0xPj4+MCkpe2NbZT4+Ml09NDtqPS0xO2k9ZztyZXR1cm4ganwwfWVsc2V7aj1sO2k9Zzty
ZXR1cm4ganwwfXJldHVybiAwfWZ1bmN0aW9uIGZDKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09
Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsz
MnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1p
KzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3
aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2UgODp7dD0xNjticmVh
a307Y2FzZSA2NDp7dD04O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmeChtLGgsdSxsKTtr
JChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9
djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7
dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9YVts
XXwwO2w9dzt3PWNbaD4+Ml18MDtMMzM0Mjp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVs
c2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3crMTY+PjJdfDApKXtCPXc7YnJlYWt9aWYoKGIwW2Nb
KGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9
MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNbZj4+Ml18MDtkb3tpZigoRHwwKT09MCl7RT0yNzU5
fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShjW0QrMTY+PjJdfDApKXtpZihDKXtGPUQ7Rz0wO2Jy
ZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsgTDMzNDJ9fWlmKChiMFtjWyhjW0Q+PjJdfDApKzM2
Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4yXT0wO0U9Mjc1OTticmVha31lbHNle0s9KER8MCk9
PTA7aWYoQ15LKXtGPUQ7Rz1LO2JyZWFrfWVsc2V7SD1sO0k9RDtKPUs7YnJlYWsgTDMzNDJ9fX19
d2hpbGUoMCk7aWYoKEV8MCk9PTI3NTkpe0U9MDtpZihDKXtIPWw7ST0wO0o9MTticmVha31lbHNl
e0Y9MDtHPTF9fUQ9ZFtvXXwwO0s9KEQmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChL
P0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEspe0w9RD4+PjE7TT1EPj4+MX1lbHNle0Q9Y1t6Pj4y
XXwwO0w9RDtNPUR9ZFIobixMPDwxLDApO2lmKChhW29dJjEpPT0wKXtOPTEwfWVsc2V7Tj0oY1tn
Pj4yXSYtMiktMXwwfWRSKG4sTiwwKTtpZigoYVtvXSYxKT09MCl7Tz14fWVsc2V7Tz1jW3k+PjJd
fDB9Y1twPj4yXT1PK007UD1PfWVsc2V7UD1sfUQ9QisxMnwwO0s9Y1tEPj4yXXwwO1E9QisxNnww
O2lmKChLfDApPT0oY1tRPj4yXXwwKSl7Uj0oYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShC
KXwwKSYyNTV9ZWxzZXtSPWFbS118MH1pZigoZnMoUix0LFAscCxzLEEsbSx2LHIsdSl8MCkhPTAp
e0g9UDtJPUY7Sj1HO2JyZWFrfUs9Y1tEPj4yXXwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7UT1j
WyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1EmMTI3XShCKXwwO2w9UDt3PUI7Y29udGludWV9ZWxz
ZXtjW0Q+PjJdPUsrMTtsPVA7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtT
PXc+Pj4xfWVsc2V7Uz1jW20rND4+Ml18MH1kb3tpZigoU3wwKSE9MCl7dz1jW3I+PjJdfDA7aWYo
KHctcXwwKT49MTYwKXticmVha31QPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVB9fXdo
aWxlKDApO2Nbaz4+Ml09ZkQoSCxjW3A+PjJdfDAsaix0KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7
ZG97aWYoQyl7VD0wfWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtUPUI7
YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtUPUI7YnJl
YWt9Y1toPj4yXT0wO1Q9MH19d2hpbGUoMCk7aD0oVHwwKT09MDtMMzQwMjpkb3tpZihKKXtFPTI4
MDB9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhj
W0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjgwMDti
cmVhayBMMzQwMn19d2hpbGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9VT1ifDA7Y1tVPj4y
XT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChFfDApPT0yODAwKXtp
ZihoKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUo
MCk7Y1tqPj4yXT1jW2o+PjJdfDI7VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1
cm59ZnVuY3Rpb24gZkQoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxo
PTAsaj0wLGs9MCxsPTA7Zz1pO2k9aSs4fDA7aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJd
PTQ7aj0wO2k9ZztyZXR1cm4ganwwfWlmKChhW2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtpPWc7
cmV0dXJuIGp8MH1rPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsx
NjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0
LDApfDB9fXdoaWxlKDApO2w9YUkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXwwO2Y9SztiPWNbKGJ3
KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWt9aWYoKGNbaD4+Ml18MCkh
PShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWQ9MDtpZigoYnwwKT09MzR8KGY+
Pj4wPmQ+Pj4wfGY+Pj4wPT1kPj4+MCZsPj4+MD4tMT4+PjApKXtjW2U+PjJdPTQ7aj0tMTtpPWc7
cmV0dXJuIGp8MH1lbHNle2o9bDtpPWc7cmV0dXJuIGp8MH1yZXR1cm4gMH1mdW5jdGlvbiBmRShi
LGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2
YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0w
LE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTA7ZT1pO2k9aSs3MnwwO2w9ZjtmPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMzJ8MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47cD1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztz
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0x
NjticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7
dD0xMH19dT1lfDA7ZngobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChh
W29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJd
fDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7
Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWFbbF18MDtsPXc7dz1jW2g+PjJdfDA7TDM0NTI6d2hpbGUo
MSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle2lmKChjW3crMTI+PjJdfDApIT0oY1t3KzE2Pj4y
XXwwKSl7Qj13O2JyZWFrfWlmKChiMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDApIT0t
MSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1jW2Y+PjJd
fDA7ZG97aWYoKER8MCk9PTApe0U9Mjg0OX1lbHNle2lmKChjW0QrMTI+PjJdfDApIT0oY1tEKzE2
Pj4yXXwwKSl7aWYoQyl7Rj1EO0c9MDticmVha31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFrIEwzNDUy
fX1pZigoYjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+Ml09MDtF
PTI4NDk7YnJlYWt9ZWxzZXtMPShEfDApPT0wO2lmKENeTCl7Rj1EO0c9TDticmVha31lbHNle0g9
bDtJPUQ7Sj1MO2JyZWFrIEwzNDUyfX19fXdoaWxlKDApO2lmKChFfDApPT0yODQ5KXtFPTA7aWYo
Qyl7SD1sO0k9MDtKPTE7YnJlYWt9ZWxzZXtGPTA7Rz0xfX1EPWRbb118MDtMPShEJjF8MCk9PTA7
aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoTD9EPj4+MTpjW3o+PjJdfDApfDApKXtpZihMKXtNPUQ+
Pj4xO049RD4+PjF9ZWxzZXtEPWNbej4+Ml18MDtNPUQ7Tj1EfWRSKG4sTTw8MSwwKTtpZigoYVtv
XSYxKT09MCl7Tz0xMH1lbHNle089KGNbZz4+Ml0mLTIpLTF8MH1kUihuLE8sMCk7aWYoKGFbb10m
MSk9PTApe1A9eH1lbHNle1A9Y1t5Pj4yXXwwfWNbcD4+Ml09UCtOO1E9UH1lbHNle1E9bH1EPUIr
MTJ8MDtMPWNbRD4+Ml18MDtSPUIrMTZ8MDtpZigoTHwwKT09KGNbUj4+Ml18MCkpe1M9KGIwW2Nb
KGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkmMjU1fWVsc2V7Uz1hW0xdfDB9aWYoKGZzKFMs
dCxRLHAscyxBLG0sdixyLHUpfDApIT0wKXtIPVE7ST1GO0o9RzticmVha31MPWNbRD4+Ml18MDtp
ZigoTHwwKT09KGNbUj4+Ml18MCkpe1I9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtSJjEyN10o
Qil8MDtsPVE7dz1CO2NvbnRpbnVlfWVsc2V7Y1tEPj4yXT1MKzE7bD1RO3c9Qjtjb250aW51ZX19
dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7VD13Pj4+MX1lbHNle1Q9Y1ttKzQ+PjJdfDB9ZG97aWYo
KFR8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9UT1jW3M+PjJdfDA7
Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1RfX13aGlsZSgwKTtzPWZGKEgsY1twPj4yXXwwLGosdCl8MDtj
W2s+PjJdPXM7Y1trKzQ+PjJdPUs7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihDKXtVPTB9ZWxz
ZXtpZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe1U9QjticmVha31pZigoYjBbY1so
Y1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSE9LTEpe1U9QjticmVha31jW2g+PjJdPTA7VT0w
fX13aGlsZSgwKTtoPShVfDApPT0wO0wzNTEyOmRve2lmKEope0U9Mjg5MH1lbHNle2Rve2lmKChj
W0krMTI+PjJdfDApPT0oY1tJKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbST4+Ml18MCkrMzY+PjJd
JjEyN10oSSl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7RT0yODkwO2JyZWFrIEwzNTEyfX13aGls
ZSgwKTtpZighKGheKEl8MCk9PTApKXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAobik7ZFAobSk7
aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEV8MCk9PTI4OTApe2lmKGgpe2JyZWFrfVY9Ynww
O2NbVj4+Ml09VTtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+
Ml18MjtWPWJ8MDtjW1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmRihi
LGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxt
PTAsbj0wLG89MDtnPWk7aT1pKzh8MDtoPWd8MDtkb3tpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09
NDtqPTA7az0wfWVsc2V7aWYoKGFbYl18MCk9PTQ1KXtjW2U+PjJdPTQ7aj0wO2s9MDticmVha31s
PWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTAp
e2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxl
KDApO209YUkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXwwO249SztvPWNbKGJ3KCl8MCk+PjJdfDA7
aWYoKG98MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWx9aWYoKGNbaD4+Ml18MCkhPShkfDApKXtjW2U+
PjJdPTQ7aj0wO2s9MDticmVha31pZigob3wwKSE9MzQpe2o9bjtrPW07YnJlYWt9Y1tlPj4yXT00
O2o9LTE7az0tMX19d2hpbGUoMCk7aT1nO3JldHVybihLPWosayl8MH1mdW5jdGlvbiBmRyhiLGUs
ZixnLGgsaSxqLGssbCxtLG4sbyl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7
aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1vfDA7dmFyIHA9MCxxPTAscj0wLHM9MCx0
PTA7aWYoYjw8MjQ+PjI0PT1pPDwyND4+MjQpe2lmKChhW2VdJjEpPT0wKXtwPS0xO3JldHVybiBw
fDB9YVtlXT0wO2k9Y1toPj4yXXwwO2NbaD4+Ml09aSsxO2FbaV09NDY7aT1kW2tdfDA7aWYoKGkm
MXwwKT09MCl7cT1pPj4+MX1lbHNle3E9Y1trKzQ+PjJdfDB9aWYoKHF8MCk9PTApe3A9MDtyZXR1
cm4gcHwwfXE9Y1ttPj4yXXwwO2lmKChxLWx8MCk+PTE2MCl7cD0wO3JldHVybiBwfDB9aT1jW24+
PjJdfDA7Y1ttPj4yXT1xKzQ7Y1txPj4yXT1pO3A9MDtyZXR1cm4gcHwwfWRve2lmKGI8PDI0Pj4y
ND09ajw8MjQ+PjI0KXtpPWRba118MDtpZigoaSYxfDApPT0wKXtyPWk+Pj4xfWVsc2V7cj1jW2sr
ND4+Ml18MH1pZigocnwwKT09MCl7YnJlYWt9aWYoKGFbZV0mMSk9PTApe3A9LTE7cmV0dXJuIHB8
MH1pPWNbbT4+Ml18MDtpZigoaS1sfDApPj0xNjApe3A9MDtyZXR1cm4gcHwwfXE9Y1tuPj4yXXww
O2NbbT4+Ml09aSs0O2NbaT4+Ml09cTtjW24+PjJdPTA7cD0wO3JldHVybiBwfDB9fXdoaWxlKDAp
O3I9byszMnwwO2o9bzt3aGlsZSgxKXtpZigoanwwKT09KHJ8MCkpe3M9cjticmVha31pZigoYVtq
XXwwKT09Yjw8MjQ+PjI0KXtzPWo7YnJlYWt9ZWxzZXtqPWorMXwwfX1qPXMtb3wwO2lmKChqfDAp
PjMxKXtwPS0xO3JldHVybiBwfDB9bz1hWzk3NDQranwwXXwwO3N3aXRjaChqfDApe2Nhc2UgMjU6
Y2FzZSAyNDp7cz1jW2g+PjJdfDA7ZG97aWYoKHN8MCkhPShnfDApKXtpZigoYVtzLTF8MF0mOTV8
MCk9PShhW2ZdJjEyN3wwKSl7YnJlYWt9ZWxzZXtwPS0xfXJldHVybiBwfDB9fXdoaWxlKDApO2Nb
aD4+Ml09cysxO2Fbc109bztwPTA7cmV0dXJuIHB8MH07Y2FzZSAyMjpjYXNlIDIzOnthW2ZdPTgw
O3M9Y1toPj4yXXwwO2NbaD4+Ml09cysxO2Fbc109bztwPTA7cmV0dXJuIHB8MH07ZGVmYXVsdDp7
cz1hW2ZdfDA7ZG97aWYoKG8mOTV8MCk9PShzPDwyND4+MjR8MCkpe2FbZl09c3wtMTI4O2lmKChh
W2VdJjEpPT0wKXticmVha31hW2VdPTA7Zz1kW2tdfDA7aWYoKGcmMXwwKT09MCl7dD1nPj4+MX1l
bHNle3Q9Y1trKzQ+PjJdfDB9aWYoKHR8MCk9PTApe2JyZWFrfWc9Y1ttPj4yXXwwO2lmKChnLWx8
MCk+PTE2MCl7YnJlYWt9Yj1jW24+PjJdfDA7Y1ttPj4yXT1nKzQ7Y1tnPj4yXT1ifX13aGlsZSgw
KTttPWNbaD4+Ml18MDtjW2g+PjJdPW0rMTthW21dPW87aWYoKGp8MCk+MjEpe3A9MDtyZXR1cm4g
cHwwfWNbbj4+Ml09KGNbbj4+Ml18MCkrMTtwPTA7cmV0dXJuIHB8MH19cmV0dXJuIDB9ZnVuY3Rp
b24gZkgoYixlLGYsaCxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7aD1ofDA7aj1qfDA7az1rfDA7
bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTA7ZT1pO2k9aSs4
MHwwO209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1oO2g9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbaD4+Ml09Y1ttPj4yXTttPWUrMzJ8MDtuPWUrNDB8MDtvPWUr
NDh8MDtwPWUrNjR8MDtxPXA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSsxNjB8MDt0
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PWk7aT1pKzF8
MDtpPWkrNz4+Mzw8Mzt3PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt4PWV8MDtmSihvLGoseCxtLG4p
O2skKHF8MCwwLDEyKTtqPXA7ZFIocCwxMCwwKTtpZigoYVtxXSYxKT09MCl7eT1qKzF8MDt6PXk7
QT15O0I9cCs4fDB9ZWxzZXt5PXArOHwwO3o9Y1t5Pj4yXXwwO0E9aisxfDA7Qj15fWNbcj4+Ml09
ejt5PXN8MDtjW3Q+PjJdPXk7Y1t1Pj4yXT0wO2Fbdl09MTthW3ddPTY5O2o9ZnwwO2Y9aHwwO2g9
cHwwO0M9cCs0fDA7RD1hW21dfDA7bT1hW25dfDA7bj16O3o9Y1tqPj4yXXwwO0wzNjE1OndoaWxl
KDEpe2Rve2lmKCh6fDApPT0wKXtFPTB9ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9KGNbeisxNj4+
Ml18MCkpe0U9ejticmVha31pZigoYjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwKSE9
LTEpe0U9ejticmVha31jW2o+PjJdPTA7RT0wfX13aGlsZSgwKTtGPShFfDApPT0wO0c9Y1tmPj4y
XXwwO2Rve2lmKChHfDApPT0wKXtIPTI5Nzh9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysx
Nj4+Ml18MCkpe2lmKEYpe0k9RztKPTA7YnJlYWt9ZWxzZXtLPW47TD1HO009MDticmVhayBMMzYx
NX19aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCk9PS0xKXtjW2Y+PjJdPTA7
SD0yOTc4O2JyZWFrfWVsc2V7Tj0oR3wwKT09MDtpZihGXk4pe0k9RztKPU47YnJlYWt9ZWxzZXtL
PW47TD1HO009TjticmVhayBMMzYxNX19fX13aGlsZSgwKTtpZigoSHwwKT09Mjk3OCl7SD0wO2lm
KEYpe0s9bjtMPTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Rz1kW3FdfDA7Tj0oRyYxfDApPT0w
O2lmKCgoY1tyPj4yXXwwKS1ufDApPT0oKE4/Rz4+PjE6Y1tDPj4yXXwwKXwwKSl7aWYoTil7Tz1H
Pj4+MTtQPUc+Pj4xfWVsc2V7Rz1jW0M+PjJdfDA7Tz1HO1A9R31kUihwLE88PDEsMCk7aWYoKGFb
cV0mMSk9PTApe1E9MTB9ZWxzZXtRPShjW2g+PjJdJi0yKS0xfDB9ZFIocCxRLDApO2lmKChhW3Fd
JjEpPT0wKXtSPUF9ZWxzZXtSPWNbQj4+Ml18MH1jW3I+PjJdPVIrUDtTPVJ9ZWxzZXtTPW59Rz1F
KzEyfDA7Tj1jW0c+PjJdfDA7VD1FKzE2fDA7aWYoKE58MCk9PShjW1Q+PjJdfDApKXtVPShiMFtj
WyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDApJjI1NX1lbHNle1U9YVtOXXwwfWlmKChmRyhV
LHYsdyxTLHIsRCxtLG8seSx0LHUseCl8MCkhPTApe0s9UztMPUk7TT1KO2JyZWFrfU49Y1tHPj4y
XXwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VD1jWyhjW0U+PjJdfDApKzQwPj4yXXwwO2IwW1Qm
MTI3XShFKXwwO249Uzt6PUU7Y29udGludWV9ZWxzZXtjW0c+PjJdPU4rMTtuPVM7ej1FO2NvbnRp
bnVlfX16PWRbb118MDtpZigoeiYxfDApPT0wKXtWPXo+Pj4xfWVsc2V7Vj1jW28rND4+Ml18MH1k
b3tpZigoVnwwKSE9MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0Pj4yXXwwO2lmKCh6LXN8
MCk+PTE2MCl7YnJlYWt9Uz1jW3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6Pj4yXT1TfX13aGlsZSgw
KTtnW2w+PjJdPStmSShLLGNbcj4+Ml18MCxrKTtmdChvLHksY1t0Pj4yXXwwLGspO2Rve2lmKEYp
e1c9MH1lbHNle2lmKChjW0UrMTI+PjJdfDApIT0oY1tFKzE2Pj4yXXwwKSl7Vz1FO2JyZWFrfWlm
KChiMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDApIT0tMSl7Vz1FO2JyZWFrfWNbaj4+
Ml09MDtXPTB9fXdoaWxlKDApO2o9KFd8MCk9PTA7TDM2NzY6ZG97aWYoTSl7SD0zMDIwfWVsc2V7
ZG97aWYoKGNbTCsxMj4+Ml18MCk9PShjW0wrMTY+PjJdfDApKXtpZigoYjBbY1soY1tMPj4yXXww
KSszNj4+Ml0mMTI3XShMKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtIPTMwMjA7YnJlYWsgTDM2
NzZ9fXdoaWxlKDApO2lmKCEoal4oTHwwKT09MCkpe2JyZWFrfVg9YnwwO2NbWD4+Ml09VztkUChw
KTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoSHwwKT09MzAyMCl7aWYoail7YnJl
YWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+
Ml09Y1trPj4yXXwyO1g9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0
aW9uIGZJKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAuMCxqPTAsaz0w
LjA7Zj1pO2k9aSs4fDA7Zz1mfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1m
O3JldHVybitofWo9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2
MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7az0ra1coYixnLGNbMjk1OF18MCk7Yj1jWyhidygpfDApPj4yXXwwO2lm
KChifDApPT0wKXtjWyhidygpfDApPj4yXT1qfWlmKChjW2c+PjJdfDApIT0oZHwwKSl7Y1tlPj4y
XT00O2g9MC4wO2k9ZjtyZXR1cm4raH1pZigoYnwwKT09MzQpe2NbZT4+Ml09NH1oPWs7aT1mO3Jl
dHVybitofWZ1bmN0aW9uIGZKKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7dmFyIGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7aD1pO2k9
aSs0MHwwO2o9aHwwO2s9aCsxNnwwO2w9aCszMnwwO2VqKGwsZCk7ZD1sfDA7bD1jW2Q+PjJdfDA7
aWYoKGNbMzkyNF18MCkhPS0xKXtjW2s+PjJdPTE1Njk2O2Nbays0Pj4yXT0xMjtjW2srOD4+Ml09
MDtkVygxNTY5NixrLDk2KX1rPShjWzM5MjVdfDApLTF8MDttPWNbbCs4Pj4yXXwwO2Rve2lmKChj
W2wrMTI+PjJdfDApLW0+PjI+Pj4wPms+Pj4wKXtuPWNbbSsoazw8Mik+PjJdfDA7aWYoKG58MCk9
PTApe2JyZWFrfW89bjtwPWNbKGNbbj4+Ml18MCkrMzI+PjJdfDA7Y2FbcCYxNV0obyw5NzQ0LDk3
NzYsZSl8MDtvPWNbZD4+Ml18MDtpZigoY1szODI4XXwwKSE9LTEpe2Nbaj4+Ml09MTUzMTI7Y1tq
KzQ+PjJdPTEyO2Nbais4Pj4yXT0wO2RXKDE1MzEyLGosOTYpfXA9KGNbMzgyOV18MCktMXwwO249
Y1tvKzg+PjJdfDA7ZG97aWYoKGNbbysxMj4+Ml18MCktbj4+Mj4+PjA+cD4+PjApe3E9Y1tuKyhw
PDwyKT4+Ml18MDtpZigocXwwKT09MCl7YnJlYWt9cj1xO3M9cTthW2ZdPWIwW2NbKGNbcz4+Ml18
MCkrMTI+PjJdJjEyN10ocil8MDthW2ddPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10ocil8
MDtiWltjWyhjW3E+PjJdfDApKzIwPj4yXSYxMjddKGIscik7cj1jW2Q+PjJdfDA7ZHoocil8MDtp
PWg7cmV0dXJufX13aGlsZSgwKTtwPWJPKDQpfDA7a3EocCk7YmwocHwwLDgxNzYsMTM0KX19d2hp
bGUoMCk7aD1iTyg0KXwwO2txKGgpO2JsKGh8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZksoYixlLGYs
ZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAs
UD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTA7ZT1pO2k9aSs4MHwwO209ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1nO2c9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZz4+Ml09Y1ttPj4yXTttPWUrMzJ8MDtuPWUrNDB8MDtvPWUrNDh8MDtwPWUrNjR8
MDtxPXA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSsxNjB8MDt0PWk7aT1pKzR8MDtp
PWkrNz4+Mzw8Mzt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PWk7aT1pKzF8MDtpPWkrNz4+Mzw8
Mzt3PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt4PWV8MDtmSihvLGoseCxtLG4pO2skKHF8MCwwLDEy
KTtqPXA7ZFIocCwxMCwwKTtpZigoYVtxXSYxKT09MCl7eT1qKzF8MDt6PXk7QT15O0I9cCs4fDB9
ZWxzZXt5PXArOHwwO3o9Y1t5Pj4yXXwwO0E9aisxfDA7Qj15fWNbcj4+Ml09ejt5PXN8MDtjW3Q+
PjJdPXk7Y1t1Pj4yXT0wO2Fbdl09MTthW3ddPTY5O2o9ZnwwO2Y9Z3wwO2c9cHwwO0M9cCs0fDA7
RD1hW21dfDA7bT1hW25dfDA7bj16O3o9Y1tqPj4yXXwwO0wzNzM3OndoaWxlKDEpe2Rve2lmKCh6
fDApPT0wKXtFPTB9ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9KGNbeisxNj4+Ml18MCkpe0U9ejti
cmVha31pZigoYjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwKSE9LTEpe0U9ejticmVh
a31jW2o+PjJdPTA7RT0wfX13aGlsZSgwKTtGPShFfDApPT0wO0c9Y1tmPj4yXXwwO2Rve2lmKChH
fDApPT0wKXtIPTMwNzl9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe2lm
KEYpe0k9RztKPTA7YnJlYWt9ZWxzZXtLPW47TD1HO009MDticmVhayBMMzczN319aWYoKGIwW2Nb
KGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCk9PS0xKXtjW2Y+PjJdPTA7SD0zMDc5O2JyZWFr
fWVsc2V7Tj0oR3wwKT09MDtpZihGXk4pe0k9RztKPU47YnJlYWt9ZWxzZXtLPW47TD1HO009Tjti
cmVhayBMMzczN319fX13aGlsZSgwKTtpZigoSHwwKT09MzA3OSl7SD0wO2lmKEYpe0s9bjtMPTA7
TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Rz1kW3FdfDA7Tj0oRyYxfDApPT0wO2lmKCgoY1tyPj4y
XXwwKS1ufDApPT0oKE4/Rz4+PjE6Y1tDPj4yXXwwKXwwKSl7aWYoTil7Tz1HPj4+MTtQPUc+Pj4x
fWVsc2V7Rz1jW0M+PjJdfDA7Tz1HO1A9R31kUihwLE88PDEsMCk7aWYoKGFbcV0mMSk9PTApe1E9
MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIocCxRLDApO2lmKChhW3FdJjEpPT0wKXtSPUF9
ZWxzZXtSPWNbQj4+Ml18MH1jW3I+PjJdPVIrUDtTPVJ9ZWxzZXtTPW59Rz1FKzEyfDA7Tj1jW0c+
PjJdfDA7VD1FKzE2fDA7aWYoKE58MCk9PShjW1Q+PjJdfDApKXtVPShiMFtjWyhjW0U+PjJdfDAp
KzM2Pj4yXSYxMjddKEUpfDApJjI1NX1lbHNle1U9YVtOXXwwfWlmKChmRyhVLHYsdyxTLHIsRCxt
LG8seSx0LHUseCl8MCkhPTApe0s9UztMPUk7TT1KO2JyZWFrfU49Y1tHPj4yXXwwO2lmKChOfDAp
PT0oY1tUPj4yXXwwKSl7VD1jWyhjW0U+PjJdfDApKzQwPj4yXXwwO2IwW1QmMTI3XShFKXwwO249
Uzt6PUU7Y29udGludWV9ZWxzZXtjW0c+PjJdPU4rMTtuPVM7ej1FO2NvbnRpbnVlfX16PWRbb118
MDtpZigoeiYxfDApPT0wKXtWPXo+Pj4xfWVsc2V7Vj1jW28rND4+Ml18MH1kb3tpZigoVnwwKSE9
MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7YnJl
YWt9Uz1jW3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6Pj4yXT1TfX13aGlsZSgwKTtoW2w+PjNdPStm
TChLLGNbcj4+Ml18MCxrKTtmdChvLHksY1t0Pj4yXXwwLGspO2Rve2lmKEYpe1c9MH1lbHNle2lm
KChjW0UrMTI+PjJdfDApIT0oY1tFKzE2Pj4yXXwwKSl7Vz1FO2JyZWFrfWlmKChiMFtjWyhjW0U+
PjJdfDApKzM2Pj4yXSYxMjddKEUpfDApIT0tMSl7Vz1FO2JyZWFrfWNbaj4+Ml09MDtXPTB9fXdo
aWxlKDApO2o9KFd8MCk9PTA7TDM3OTg6ZG97aWYoTSl7SD0zMTIxfWVsc2V7ZG97aWYoKGNbTCsx
Mj4+Ml18MCk9PShjW0wrMTY+PjJdfDApKXtpZigoYjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3
XShMKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtIPTMxMjE7YnJlYWsgTDM3OTh9fXdoaWxlKDAp
O2lmKCEoal4oTHwwKT09MCkpe2JyZWFrfVg9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7
cmV0dXJufX13aGlsZSgwKTtkb3tpZigoSHwwKT09MzEyMSl7aWYoail7YnJlYWt9WD1ifDA7Y1tY
Pj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwy
O1g9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZMKGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAuMCxqPTAsaz0wLjA7Zj1pO2k9aSs4
fDA7Zz1mfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVybitofWo9
Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7
aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUo
MCk7az0ra1coYixnLGNbMjk1OF18MCk7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0wKXtj
WyhidygpfDApPj4yXT1qfWlmKChjW2c+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9
ZjtyZXR1cm4raH1pZigoYnwwKSE9MzQpe2g9aztpPWY7cmV0dXJuK2h9Y1tlPj4yXT00O2g9aztp
PWY7cmV0dXJuK2h9ZnVuY3Rpb24gZk0oYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0w
LFc9MCxYPTA7ZT1pO2k9aSs4MHwwO209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJd
PWNbbT4+Ml07bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1ttPj4yXTttPWUr
MzJ8MDtuPWUrNDB8MDtvPWUrNDh8MDtwPWUrNjR8MDtxPXA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7cz1pO2k9aSsxNjB8MDt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt1PWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8Mzt2PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt3PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt4
PWV8MDtmSihvLGoseCxtLG4pO2skKHF8MCwwLDEyKTtqPXA7ZFIocCwxMCwwKTtpZigoYVtxXSYx
KT09MCl7eT1qKzF8MDt6PXk7QT15O0I9cCs4fDB9ZWxzZXt5PXArOHwwO3o9Y1t5Pj4yXXwwO0E9
aisxfDA7Qj15fWNbcj4+Ml09ejt5PXN8MDtjW3Q+PjJdPXk7Y1t1Pj4yXT0wO2Fbdl09MTthW3dd
PTY5O2o9ZnwwO2Y9Z3wwO2c9cHwwO0M9cCs0fDA7RD1hW21dfDA7bT1hW25dfDA7bj16O3o9Y1tq
Pj4yXXwwO0w2OndoaWxlKDEpe2Rve2lmKCh6fDApPT0wKXtFPTB9ZWxzZXtpZigoY1t6KzEyPj4y
XXwwKSE9KGNbeisxNj4+Ml18MCkpe0U9ejticmVha31pZigoYjBbY1soY1t6Pj4yXXwwKSszNj4+
Ml0mMTI3XSh6KXwwKSE9LTEpe0U9ejticmVha31jW2o+PjJdPTA7RT0wfX13aGlsZSgwKTtGPShF
fDApPT0wO0c9Y1tmPj4yXXwwO2Rve2lmKChHfDApPT0wKXtIPTE3fWVsc2V7aWYoKGNbRysxMj4+
Ml18MCkhPShjW0crMTY+PjJdfDApKXtpZihGKXtJPUc7Sj0wO2JyZWFrfWVsc2V7Sz1uO0w9RztN
PTA7YnJlYWsgTDZ9fWlmKChiMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7
Y1tmPj4yXT0wO0g9MTc7YnJlYWt9ZWxzZXtOPShHfDApPT0wO2lmKEZeTil7ST1HO0o9TjticmVh
a31lbHNle0s9bjtMPUc7TT1OO2JyZWFrIEw2fX19fXdoaWxlKDApO2lmKChIfDApPT0xNyl7SD0w
O2lmKEYpe0s9bjtMPTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Rz1kW3FdfDA7Tj0oRyYxfDAp
PT0wO2lmKCgoY1tyPj4yXXwwKS1ufDApPT0oKE4/Rz4+PjE6Y1tDPj4yXXwwKXwwKSl7aWYoTil7
Tz1HPj4+MTtQPUc+Pj4xfWVsc2V7Rz1jW0M+PjJdfDA7Tz1HO1A9R31kUihwLE88PDEsMCk7aWYo
KGFbcV0mMSk9PTApe1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIocCxRLDApO2lmKChh
W3FdJjEpPT0wKXtSPUF9ZWxzZXtSPWNbQj4+Ml18MH1jW3I+PjJdPVIrUDtTPVJ9ZWxzZXtTPW59
Rz1FKzEyfDA7Tj1jW0c+PjJdfDA7VD1FKzE2fDA7aWYoKE58MCk9PShjW1Q+PjJdfDApKXtVPShi
MFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDApJjI1NX1lbHNle1U9YVtOXXwwfWlmKChm
RyhVLHYsdyxTLHIsRCxtLG8seSx0LHUseCl8MCkhPTApe0s9UztMPUk7TT1KO2JyZWFrfU49Y1tH
Pj4yXXwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VD1jWyhjW0U+PjJdfDApKzQwPj4yXXwwO2Iw
W1QmMTI3XShFKXwwO249Uzt6PUU7Y29udGludWV9ZWxzZXtjW0c+PjJdPU4rMTtuPVM7ej1FO2Nv
bnRpbnVlfX16PWRbb118MDtpZigoeiYxfDApPT0wKXtWPXo+Pj4xfWVsc2V7Vj1jW28rND4+Ml18
MH1kb3tpZigoVnwwKSE9MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0Pj4yXXwwO2lmKCh6
LXN8MCk+PTE2MCl7YnJlYWt9Uz1jW3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6Pj4yXT1TfX13aGls
ZSgwKTtoW2w+PjNdPStmTihLLGNbcj4+Ml18MCxrKTtmdChvLHksY1t0Pj4yXXwwLGspO2Rve2lm
KEYpe1c9MH1lbHNle2lmKChjW0UrMTI+PjJdfDApIT0oY1tFKzE2Pj4yXXwwKSl7Vz1FO2JyZWFr
fWlmKChiMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDApIT0tMSl7Vz1FO2JyZWFrfWNb
aj4+Ml09MDtXPTB9fXdoaWxlKDApO2o9KFd8MCk9PTA7TDY3OmRve2lmKE0pe0g9NTl9ZWxzZXtk
b3tpZigoY1tMKzEyPj4yXXwwKT09KGNbTCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0w+PjJdfDAp
KzM2Pj4yXSYxMjddKEwpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0g9NTk7YnJlYWsgTDY3fX13
aGlsZSgwKTtpZighKGpeKEx8MCk9PTApKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAo
byk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEh8MCk9PTU5KXtpZihqKXticmVha31YPWJ8
MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+
PjJdfDI7WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZk4o
YixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MC4wLGo9MCxrPTAuMDtmPWk7
aT1pKzh8MDtnPWZ8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7cmV0dXJu
K2h9aj1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDAp
PT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13
aGlsZSgwKTtrPStrVyhiLGcsY1syOTU4XXwwKTtiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9
PTApe2NbKGJ3KCl8MCk+PjJdPWp9aWYoKGNbZz4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aD0w
LjA7aT1mO3JldHVybitofWlmKChifDApIT0zNCl7aD1rO2k9ZjtyZXR1cm4raH1jW2U+PjJdPTQ7
aD1rO2k9ZjtyZXR1cm4raH1mdW5jdGlvbiBmTyhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVy
bn1mdW5jdGlvbiBmUChhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBmUShiLGUsZixn
LGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxP
PTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wO2U9aTtpPWkrNjR8MDtsPWY7Zj1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2c+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2fDA7bj1lKzQ4fDA7bz1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7cD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O3I9aTtpPWkrMTYwfDA7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7ayQobnwwLDAsMTIpO3U9cDtlaihvLGgpO2g9b3wwO289Y1toPj4yXXwwO2lmKChjWzM5
MjRdfDApIT0tMSl7Y1tsPj4yXT0xNTY5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2
OTYsbCw5Nil9bD0oY1szOTI1XXwwKS0xfDA7dj1jW28rOD4+Ml18MDtkb3tpZigoY1tvKzEyPj4y
XXwwKS12Pj4yPj4+MD5sPj4+MCl7dz1jW3YrKGw8PDIpPj4yXXwwO2lmKCh3fDApPT0wKXticmVh
a314PXc7eT1tfDA7ej1jWyhjW3c+PjJdfDApKzMyPj4yXXwwO2NhW3omMTVdKHgsOTc0NCw5Nzcw
LHkpfDA7eD1jW2g+PjJdfDA7ZHooeCl8MDtrJCh1fDAsMCwxMik7eD1wO2RSKHAsMTAsMCk7aWYo
KGFbdV0mMSk9PTApe3o9eCsxfDA7QT16O0I9ejtDPXArOHwwfWVsc2V7ej1wKzh8MDtBPWNbej4+
Ml18MDtCPXgrMXwwO0M9en1jW3E+PjJdPUE7ej1yfDA7Y1tzPj4yXT16O2NbdD4+Ml09MDt4PWZ8
MDt3PWd8MDtEPXB8MDtFPXArNHwwO0Y9QTtHPWNbeD4+Ml18MDtMMTE3OndoaWxlKDEpe2Rve2lm
KChHfDApPT0wKXtIPTB9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe0g9
RzticmVha31pZigoYjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKSE9LTEpe0g9Rzti
cmVha31jW3g+PjJdPTA7SD0wfX13aGlsZSgwKTtJPShIfDApPT0wO0o9Y1t3Pj4yXXwwO2Rve2lm
KChKfDApPT0wKXtLPTExMH1lbHNle2lmKChjW0orMTI+PjJdfDApIT0oY1tKKzE2Pj4yXXwwKSl7
aWYoSSl7YnJlYWt9ZWxzZXtMPUY7YnJlYWsgTDExN319aWYoKGIwW2NbKGNbSj4+Ml18MCkrMzY+
PjJdJjEyN10oSil8MCk9PS0xKXtjW3c+PjJdPTA7Sz0xMTA7YnJlYWt9ZWxzZXtpZihJXihKfDAp
PT0wKXticmVha31lbHNle0w9RjticmVhayBMMTE3fX19fXdoaWxlKDApO2lmKChLfDApPT0xMTAp
e0s9MDtpZihJKXtMPUY7YnJlYWt9fUo9ZFt1XXwwO009KEomMXwwKT09MDtpZigoKGNbcT4+Ml18
MCktRnwwKT09KChNP0o+Pj4xOmNbRT4+Ml18MCl8MCkpe2lmKE0pe049Sj4+PjE7Tz1KPj4+MX1l
bHNle0o9Y1tFPj4yXXwwO049SjtPPUp9ZFIocCxOPDwxLDApO2lmKChhW3VdJjEpPT0wKXtQPTEw
fWVsc2V7UD0oY1tEPj4yXSYtMiktMXwwfWRSKHAsUCwwKTtpZigoYVt1XSYxKT09MCl7UT1CfWVs
c2V7UT1jW0M+PjJdfDB9Y1txPj4yXT1RK087Uj1RfWVsc2V7Uj1GfUo9SCsxMnwwO009Y1tKPj4y
XXwwO1M9SCsxNnwwO2lmKChNfDApPT0oY1tTPj4yXXwwKSl7VD0oYjBbY1soY1tIPj4yXXwwKSsz
Nj4+Ml0mMTI3XShIKXwwKSYyNTV9ZWxzZXtUPWFbTV18MH1pZigoZnMoVCwxNixSLHEsdCwwLG4s
eixzLHkpfDApIT0wKXtMPVI7YnJlYWt9TT1jW0o+PjJdfDA7aWYoKE18MCk9PShjW1M+PjJdfDAp
KXtTPWNbKGNbSD4+Ml18MCkrNDA+PjJdfDA7YjBbUyYxMjddKEgpfDA7Rj1SO0c9SDtjb250aW51
ZX1lbHNle2NbSj4+Ml09TSsxO0Y9UjtHPUg7Y29udGludWV9fWFbTCszfDBdPTA7ZG97aWYoKGFb
MTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0
NCwwKXwwfX13aGlsZSgwKTtHPWZSKEwsY1syOTU4XXwwLDEzMjAsKEY9aSxpPWkrOHwwLGNbRj4+
Ml09ayxGKXwwKXwwO2k9RjtpZigoR3wwKSE9MSl7Y1tqPj4yXT00fUc9Y1t4Pj4yXXwwO2Rve2lm
KChHfDApPT0wKXtVPTB9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe1U9
RzticmVha31pZigoYjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKSE9LTEpe1U9Rzti
cmVha31jW3g+PjJdPTA7VT0wfX13aGlsZSgwKTt4PShVfDApPT0wO0c9Y1t3Pj4yXXwwO2Rve2lm
KChHfDApPT0wKXtLPTE1NX1lbHNle2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4yXXwwKSl7
aWYoIXgpe2JyZWFrfVY9YnwwO2NbVj4+Ml09VTtkUChwKTtkUChuKTtpPWU7cmV0dXJufWlmKChi
MFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1t3Pj4yXT0wO0s9MTU1O2Jy
ZWFrfWlmKCEoeF4oR3wwKT09MCkpe2JyZWFrfVY9YnwwO2NbVj4+Ml09VTtkUChwKTtkUChuKTtp
PWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoS3wwKT09MTU1KXtpZih4KXticmVha31WPWJ8MDtj
W1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJd
fDI7Vj1ifDA7Y1tWPj4yXT1VO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8o
NCl8MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZSKGEsYixkLGUpe2E9YXwwO2I9
YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtmPWk7aT1pKzE2fDA7Zz1mfDA7aD1nO2Nb
aD4+Ml09ZTtjW2grND4+Ml09MDtoPWJCKGJ8MCl8MDtiPWFZKGF8MCxkfDAsZ3wwKXwwO2lmKCho
fDApPT0wKXtpPWY7cmV0dXJuIGJ8MH1iQihofDApfDA7aT1mO3JldHVybiBifDB9ZnVuY3Rpb24g
ZlMoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1r
fDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAs
Xz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wO2w9aTtpPWkrMTA0fDA7bT1lO2U9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4yXTttPShnLWZ8MCkvMTJ8MDtuPWx8MDtkb3tpZiht
Pj4+MD4xMDApe289a0oobSl8MDtpZigob3wwKSE9MCl7cD1vO3E9bzticmVha31rWCgpO3A9MDtx
PTB9ZWxzZXtwPW47cT0wfX13aGlsZSgwKTtuPShmfDApPT0oZ3wwKTtpZihuKXtyPW07cz0wfWVs
c2V7bz1tO209MDt0PXA7dT1mO3doaWxlKDEpe3Y9ZFt1XXwwO2lmKCh2JjF8MCk9PTApe3c9dj4+
PjF9ZWxzZXt3PWNbdSs0Pj4yXXwwfWlmKCh3fDApPT0wKXthW3RdPTI7eD1tKzF8MDt5PW8tMXww
fWVsc2V7YVt0XT0xO3g9bTt5PW99dj11KzEyfDA7aWYoKHZ8MCk9PShnfDApKXtyPXk7cz14O2Jy
ZWFrfWVsc2V7bz15O209eDt0PXQrMXwwO3U9dn19fXU9YnwwO2I9ZXwwO2U9aDt0PTA7eD1zO3M9
cjt3aGlsZSgxKXtyPWNbdT4+Ml18MDtkb3tpZigocnwwKT09MCl7ej0wfWVsc2V7bT1jW3IrMTI+
PjJdfDA7aWYoKG18MCk9PShjW3IrMTY+PjJdfDApKXtBPWIwW2NbKGNbcj4+Ml18MCkrMzY+PjJd
JjEyN10ocil8MH1lbHNle0E9Y1ttPj4yXXwwfWlmKChBfDApPT0tMSl7Y1t1Pj4yXT0wO3o9MDti
cmVha31lbHNle3o9Y1t1Pj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7cj0oenwwKT09MDttPWNbYj4+
Ml18MDtpZigobXwwKT09MCl7Qj16O0M9MH1lbHNle3k9Y1ttKzEyPj4yXXwwO2lmKCh5fDApPT0o
Y1ttKzE2Pj4yXXwwKSl7RD1iMFtjWyhjW20+PjJdfDApKzM2Pj4yXSYxMjddKG0pfDB9ZWxzZXtE
PWNbeT4+Ml18MH1pZigoRHwwKT09LTEpe2NbYj4+Ml09MDtFPTB9ZWxzZXtFPW19Qj1jW3U+PjJd
fDA7Qz1FfUY9KEN8MCk9PTA7aWYoISgocl5GKSYoc3wwKSE9MCkpe2JyZWFrfXI9Y1tCKzEyPj4y
XXwwO2lmKChyfDApPT0oY1tCKzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYx
MjddKEIpfDB9ZWxzZXtHPWNbcj4+Ml18MH1pZihrKXtIPUd9ZWxzZXtIPWJfW2NbKGNbZT4+Ml18
MCkrMjg+PjJdJjMxXShoLEcpfDB9ZG97aWYobil7ST14O0o9c31lbHNle3I9dCsxfDA7TDI0OTpk
b3tpZihrKXttPXM7eT14O289cDt3PTA7dj1mO3doaWxlKDEpe2Rve2lmKChhW29dfDApPT0xKXtL
PXY7aWYoKGFbS10mMSk9PTApe0w9dis0fDB9ZWxzZXtMPWNbdis4Pj4yXXwwfWlmKChIfDApIT0o
Y1tMKyh0PDwyKT4+Ml18MCkpe2Fbb109MDtNPXc7Tj15O089bS0xfDA7YnJlYWt9UD1kW0tdfDA7
aWYoKFAmMXwwKT09MCl7UT1QPj4+MX1lbHNle1E9Y1t2KzQ+PjJdfDB9aWYoKFF8MCkhPShyfDAp
KXtNPTE7Tj15O089bTticmVha31hW29dPTI7TT0xO049eSsxfDA7Tz1tLTF8MH1lbHNle009dztO
PXk7Tz1tfX13aGlsZSgwKTtQPXYrMTJ8MDtpZigoUHwwKT09KGd8MCkpe1I9TztTPU47VD1NO2Jy
ZWFrIEwyNDl9bT1PO3k9TjtvPW8rMXwwO3c9TTt2PVB9fWVsc2V7dj1zO3c9eDtvPXA7eT0wO209
Zjt3aGlsZSgxKXtkb3tpZigoYVtvXXwwKT09MSl7UD1tO2lmKChhW1BdJjEpPT0wKXtVPW0rNHww
fWVsc2V7VT1jW20rOD4+Ml18MH1pZigoSHwwKSE9KGJfW2NbKGNbZT4+Ml18MCkrMjg+PjJdJjMx
XShoLGNbVSsodDw8Mik+PjJdfDApfDApKXthW29dPTA7Vj15O1c9dztYPXYtMXwwO2JyZWFrfUs9
ZFtQXXwwO2lmKChLJjF8MCk9PTApe1k9Sz4+PjF9ZWxzZXtZPWNbbSs0Pj4yXXwwfWlmKChZfDAp
IT0ocnwwKSl7Vj0xO1c9dztYPXY7YnJlYWt9YVtvXT0yO1Y9MTtXPXcrMXwwO1g9di0xfDB9ZWxz
ZXtWPXk7Vz13O1g9dn19d2hpbGUoMCk7Sz1tKzEyfDA7aWYoKEt8MCk9PShnfDApKXtSPVg7Uz1X
O1Q9VjticmVhayBMMjQ5fXY9WDt3PVc7bz1vKzF8MDt5PVY7bT1LfX19d2hpbGUoMCk7aWYoIVQp
e0k9UztKPVI7YnJlYWt9cj1jW3U+PjJdfDA7bT1yKzEyfDA7eT1jW20+PjJdfDA7aWYoKHl8MCk9
PShjW3IrMTY+PjJdfDApKXtvPWNbKGNbcj4+Ml18MCkrNDA+PjJdfDA7YjBbbyYxMjddKHIpfDB9
ZWxzZXtjW20+PjJdPXkrNH1pZigoUytSfDApPj4+MDwyfG4pe0k9UztKPVI7YnJlYWt9eT10KzF8
MDttPVM7cj1wO289Zjt3aGlsZSgxKXtkb3tpZigoYVtyXXwwKT09Mil7dz1kW29dfDA7aWYoKHcm
MXwwKT09MCl7Wj13Pj4+MX1lbHNle1o9Y1tvKzQ+PjJdfDB9aWYoKFp8MCk9PSh5fDApKXtfPW07
YnJlYWt9YVtyXT0wO189bS0xfDB9ZWxzZXtfPW19fXdoaWxlKDApO3c9bysxMnwwO2lmKCh3fDAp
PT0oZ3wwKSl7ST1fO0o9UjticmVha31lbHNle209XztyPXIrMXwwO289d319fX13aGlsZSgwKTt0
PXQrMXwwO3g9STtzPUp9ZG97aWYoKEJ8MCk9PTApeyQ9MX1lbHNle0o9Y1tCKzEyPj4yXXwwO2lm
KChKfDApPT0oY1tCKzE2Pj4yXXwwKSl7YWE9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShC
KXwwfWVsc2V7YWE9Y1tKPj4yXXwwfWlmKChhYXwwKT09LTEpe2NbdT4+Ml09MDskPTE7YnJlYWt9
ZWxzZXskPShjW3U+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7ZG97aWYoRil7YWI9MjY0fWVs
c2V7dT1jW0MrMTI+PjJdfDA7aWYoKHV8MCk9PShjW0MrMTY+PjJdfDApKXthYz1iMFtjWyhjW0M+
PjJdfDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXthYz1jW3U+PjJdfDB9aWYoKGFjfDApPT0tMSl7
Y1tiPj4yXT0wO2FiPTI2NDticmVha31lbHNle2lmKCReKEN8MCk9PTApe2JyZWFrfWVsc2V7YWI9
MjY2O2JyZWFrfX19fXdoaWxlKDApO2lmKChhYnwwKT09MjY0KXtpZigkKXthYj0yNjZ9fWlmKChh
YnwwKT09MjY2KXtjW2o+PjJdPWNbaj4+Ml18Mn1MMzMwOmRve2lmKG4pe2FiPTI3MX1lbHNleyQ9
ZjtDPXA7d2hpbGUoMSl7aWYoKGFbQ118MCk9PTIpe2FkPSQ7YnJlYWsgTDMzMH1iPSQrMTJ8MDtp
ZigoYnwwKT09KGd8MCkpe2FiPTI3MTticmVhayBMMzMwfSQ9YjtDPUMrMXwwfX19d2hpbGUoMCk7
aWYoKGFifDApPT0yNzEpe2Nbaj4+Ml09Y1tqPj4yXXw0O2FkPWd9aWYoKHF8MCk9PTApe2k9bDty
ZXR1cm4gYWR8MH1rSyhxKTtpPWw7cmV0dXJuIGFkfDB9ZnVuY3Rpb24gZlQoYixkLGUsZixnLGgs
ail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxB
PTA7az1pO2k9aSsxMTJ8MDtsPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+
PjJdO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1rfDA7bT1r
KzE2fDA7bj1rKzMyfDA7bz1rKzQwfDA7cD1rKzQ4fDA7cT1rKzU2fDA7cj1rKzY0fDA7cz1rKzcy
fDA7dD1rKzgwfDA7dT1rKzEwNHwwO2lmKChjW2crND4+Ml0mMXwwKT09MCl7Y1tuPj4yXT0tMTt2
PWNbKGNbZD4+Ml18MCkrMTY+PjJdfDA7dz1lfDA7Y1twPj4yXT1jW3c+PjJdO2NbcT4+Ml09Y1tm
Pj4yXTtiWFt2JjEyN10obyxkLHAscSxnLGgsbik7cT1jW28+PjJdfDA7Y1t3Pj4yXT1xO3N3aXRj
aChjW24+PjJdfDApe2Nhc2UgMTp7YVtqXT0xO2JyZWFrfTtjYXNlIDA6e2Fbal09MDticmVha307
ZGVmYXVsdDp7YVtqXT0xO2NbaD4+Ml09NH19Y1tiPj4yXT1xO2k9aztyZXR1cm59ZWoocixnKTtx
PXJ8MDtyPWNbcT4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+
PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO249Y1ty
Kzg+PjJdfDA7ZG97aWYoKGNbcisxMj4+Ml18MCktbj4+Mj4+PjA+bT4+PjApe3c9Y1tuKyhtPDwy
KT4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9bz13O3c9Y1txPj4yXXwwO2R6KHcpfDA7ZWoocyxn
KTt3PXN8MDtwPWNbdz4+Ml18MDtpZigoY1szODI2XXwwKSE9LTEpe2NbbD4+Ml09MTUzMDQ7Y1ts
KzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1MzA0LGwsOTYpfWQ9KGNbMzgyN118MCktMXwwO3Y9
Y1twKzg+PjJdfDA7ZG97aWYoKGNbcCsxMj4+Ml18MCktdj4+Mj4+PjA+ZD4+PjApe3g9Y1t2Kyhk
PDwyKT4+Ml18MDtpZigoeHwwKT09MCl7YnJlYWt9eT14O3o9Y1t3Pj4yXXwwO2R6KHopfDA7ej10
fDA7QT14O2JaW2NbKGNbQT4+Ml18MCkrMjQ+PjJdJjEyN10oeix5KTtiWltjWyhjW0E+PjJdfDAp
KzI4Pj4yXSYxMjddKHQrMTJ8MCx5KTtjW3U+PjJdPWNbZj4+Ml07YVtqXT0oZlMoZSx1LHosdCsy
NHwwLG8saCwxKXwwKT09KHp8MCl8MDtjW2I+PjJdPWNbZT4+Ml07ZWUodCsxMnwwKTtlZSh0fDAp
O2k9aztyZXR1cm59fXdoaWxlKDApO289Yk8oNCl8MDtrcShvKTtibChvfDAsODE3NiwxMzQpfX13
aGlsZSgwKTtrPWJPKDQpfDA7a3Eoayk7Ymwoa3wwLDgxNzYsMTM0KX1mdW5jdGlvbiBmVShiLGUs
ZixnLGgsaSxqLGssbCxtKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8
MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7bj1jW2c+PjJd
fDA7bz0obnwwKT09KGZ8MCk7ZG97aWYobyl7cD0oY1ttKzk2Pj4yXXwwKT09KGJ8MCk7aWYoIXAp
e2lmKChjW20rMTAwPj4yXXwwKSE9KGJ8MCkpe2JyZWFrfX1jW2c+PjJdPWYrMTthW2ZdPXA/NDM6
NDU7Y1toPj4yXT0wO3E9MDtyZXR1cm4gcXwwfX13aGlsZSgwKTtwPWRbal18MDtpZigocCYxfDAp
PT0wKXtyPXA+Pj4xfWVsc2V7cj1jW2orND4+Ml18MH1pZigocnwwKSE9MCYoYnwwKT09KGl8MCkp
e2k9Y1tsPj4yXXwwO2lmKChpLWt8MCk+PTE2MCl7cT0wO3JldHVybiBxfDB9az1jW2g+PjJdfDA7
Y1tsPj4yXT1pKzQ7Y1tpPj4yXT1rO2NbaD4+Ml09MDtxPTA7cmV0dXJuIHF8MH1rPW0rMTA0fDA7
aT1tO3doaWxlKDEpe2lmKChpfDApPT0oa3wwKSl7cz1rO2JyZWFrfWlmKChjW2k+PjJdfDApPT0o
YnwwKSl7cz1pO2JyZWFrfWVsc2V7aT1pKzR8MH19aT1zLW18MDttPWk+PjI7aWYoKGl8MCk+OTIp
e3E9LTE7cmV0dXJuIHF8MH1MMzk4OmRve3N3aXRjaChlfDApe2Nhc2UgODpjYXNlIDEwOntpZigo
bXwwKTwoZXwwKSl7YnJlYWsgTDM5OH1lbHNle3E9LTF9cmV0dXJuIHF8MH07Y2FzZSAxNjp7aWYo
KGl8MCk8ODgpe2JyZWFrIEwzOTh9aWYobyl7cT0tMTtyZXR1cm4gcXwwfWlmKChuLWZ8MCk+PTMp
e3E9LTE7cmV0dXJuIHF8MH1pZigoYVtuLTF8MF18MCkhPTQ4KXtxPS0xO3JldHVybiBxfDB9Y1to
Pj4yXT0wO3M9YVs5NzQ0K218MF18MDtiPWNbZz4+Ml18MDtjW2c+PjJdPWIrMTthW2JdPXM7cT0w
O3JldHVybiBxfDB9O2RlZmF1bHQ6e319fXdoaWxlKDApO2Y9YVs5NzQ0K218MF18MDtjW2c+PjJd
PW4rMTthW25dPWY7Y1toPj4yXT0oY1toPj4yXXwwKSsxO3E9MDtyZXR1cm4gcXwwfWZ1bmN0aW9u
IGZWKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9
a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTA7ZT1p
O2k9aSsxNDR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9
ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzEwNHwwO209ZSsx
MTJ8MDtuPWUrMTI4fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7
cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNb
aCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNl
IDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2ZXKG0saCx1LGwpO2skKG98MCww
LDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4
fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtj
W3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7
bD13O3c9Y1toPj4yXXwwO0w0MjY6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9
Y1t3KzEyPj4yXXwwO2lmKChDfDApPT0oY1t3KzE2Pj4yXXwwKSl7RD1iMFtjWyhjW3c+PjJdfDAp
KzM2Pj4yXSYxMjddKHcpfDB9ZWxzZXtEPWNbQz4+Ml18MH1pZigoRHwwKSE9LTEpe0I9dzticmVh
a31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtFPShCfDApPT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChD
fDApPT0wKXtGPTM2M31lbHNle0c9Y1tDKzEyPj4yXXwwO2lmKChHfDApPT0oY1tDKzE2Pj4yXXww
KSl7SD1iMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1p
ZigoSHwwKT09LTEpe2NbZj4+Ml09MDtGPTM2MzticmVha31lbHNle0c9KEN8MCk9PTA7aWYoRV5H
KXtJPUM7Sj1HO2JyZWFrfWVsc2V7Sz1sO0w9QztNPUc7YnJlYWsgTDQyNn19fX13aGlsZSgwKTtp
ZigoRnwwKT09MzYzKXtGPTA7aWYoRSl7Sz1sO0w9MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1D
PWRbb118MDtHPShDJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+
PjJdfDApfDApKXtpZihHKXtOPUM+Pj4xO089Qz4+PjF9ZWxzZXtDPWNbej4+Ml18MDtOPUM7Tz1D
fWRSKG4sTjw8MSwwKTtpZigoYVtvXSYxKT09MCl7UD0xMH1lbHNle1A9KGNbZz4+Ml0mLTIpLTF8
MH1kUihuLFAsMCk7aWYoKGFbb10mMSk9PTApe1E9eH1lbHNle1E9Y1t5Pj4yXXwwfWNbcD4+Ml09
UStPO1I9UX1lbHNle1I9bH1DPUIrMTJ8MDtHPWNbQz4+Ml18MDtTPUIrMTZ8MDtpZigoR3wwKT09
KGNbUz4+Ml18MCkpe1Q9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7VD1j
W0c+PjJdfDB9aWYoKGZVKFQsdCxSLHAscyxBLG0sdixyLHUpfDApIT0wKXtLPVI7TD1JO009Sjti
cmVha31HPWNbQz4+Ml18MDtpZigoR3wwKT09KGNbUz4+Ml18MCkpe1M9Y1soY1tCPj4yXXwwKSs0
MD4+Ml18MDtiMFtTJjEyN10oQil8MDtsPVI7dz1CO2NvbnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7
bD1SO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7VT13Pj4+MX1lbHNle1U9
Y1ttKzQ+PjJdfDB9ZG97aWYoKFV8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7
YnJlYWt9Uj1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1SfX13aGlsZSgwKTtjW2s+PjJd
PWZ1KEssY1twPj4yXXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEUpe1Y9MH1l
bHNle3I9Y1tCKzEyPj4yXXwwO2lmKChyfDApPT0oY1tCKzE2Pj4yXXwwKSl7Vz1iMFtjWyhjW0I+
PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtXPWNbcj4+Ml18MH1pZigoV3wwKSE9LTEpe1Y9
QjticmVha31jW2g+PjJdPTA7Vj0wfX13aGlsZSgwKTtoPShWfDApPT0wO2Rve2lmKE0pe0Y9NDA1
fWVsc2V7Qj1jW0wrMTI+PjJdfDA7aWYoKEJ8MCk9PShjW0wrMTY+PjJdfDApKXtYPWIwW2NbKGNb
TD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MH1lbHNle1g9Y1tCPj4yXXwwfWlmKChYfDApPT0tMSl7
Y1tmPj4yXT0wO0Y9NDA1O2JyZWFrfWlmKCEoaF4oTHwwKT09MCkpe2JyZWFrfVk9YnwwO2NbWT4+
Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRnwwKT09NDA1KXtp
ZihoKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUo
MCk7Y1tqPj4yXT1jW2o+PjJdfDI7WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1
cm59ZnVuY3Rpb24gZlcoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxn
PTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MDtmPWk7aT1pKzQwfDA7Zz1mfDA7aD1m
KzE2fDA7aj1mKzMyfDA7ZWooaixiKTtiPWp8MDtqPWNbYj4+Ml18MDtpZigoY1szOTIyXXwwKSE9
LTEpe2NbaD4+Ml09MTU2ODg7Y1toKzQ+PjJdPTEyO2NbaCs4Pj4yXT0wO2RXKDE1Njg4LGgsOTYp
fWg9KGNbMzkyM118MCktMXwwO2s9Y1tqKzg+PjJdfDA7ZG97aWYoKGNbaisxMj4+Ml18MCktaz4+
Mj4+PjA+aD4+PjApe2w9Y1trKyhoPDwyKT4+Ml18MDtpZigobHwwKT09MCl7YnJlYWt9bT1sO249
Y1soY1tsPj4yXXwwKSs0OD4+Ml18MDtjYVtuJjE1XShtLDk3NDQsOTc3MCxkKXwwO209Y1tiPj4y
XXwwO2lmKChjWzM4MjZdfDApIT0tMSl7Y1tnPj4yXT0xNTMwNDtjW2crND4+Ml09MTI7Y1tnKzg+
PjJdPTA7ZFcoMTUzMDQsZyw5Nil9bj0oY1szODI3XXwwKS0xfDA7bD1jW20rOD4+Ml18MDtkb3tp
ZigoY1ttKzEyPj4yXXwwKS1sPj4yPj4+MD5uPj4+MCl7bz1jW2wrKG48PDIpPj4yXXwwO2lmKChv
fDApPT0wKXticmVha31wPW87Y1tlPj4yXT1iMFtjWyhjW28+PjJdfDApKzE2Pj4yXSYxMjddKHAp
fDA7YlpbY1soY1tvPj4yXXwwKSsyMD4+Ml0mMTI3XShhLHApO3A9Y1tiPj4yXXwwO2R6KHApfDA7
aT1mO3JldHVybn19d2hpbGUoMCk7bj1iTyg0KXwwO2txKG4pO2JsKG58MCw4MTc2LDEzNCl9fXdo
aWxlKDApO2Y9Yk8oNCl8MDtrcShmKTtibChmfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZYKGIsZSxm
LGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9
MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsTD0wLE09MCxOPTAsTz0w
LFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTA7ZT1pO2k9aSsxNDR8
MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtuPWUr
MTI4fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3
NHwwKXtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7
YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47
ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2
PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7
Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9Y1to
Pj4yXXwwO0w1MzU6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEyPj4y
XXwwO2lmKChDfDApPT0oY1t3KzE2Pj4yXXwwKSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYx
MjddKHcpfDB9ZWxzZXtEPWNbQz4+Ml18MH1pZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+PjJd
PTA7Qj0wfX13aGlsZSgwKTtFPShCfDApPT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0wKXtG
PTQ1MH1lbHNle0c9Y1tDKzEyPj4yXXwwO2lmKChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1iMFtj
WyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHwwKT09
LTEpe2NbZj4+Ml09MDtGPTQ1MDticmVha31lbHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7Sj1H
O2JyZWFrfWVsc2V7TD1sO009QztOPUc7YnJlYWsgTDUzNX19fX13aGlsZSgwKTtpZigoRnwwKT09
NDUwKXtGPTA7aWYoRSl7TD1sO009MDtOPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118MDtH
PShDJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDApfDAp
KXtpZihHKXtPPUM+Pj4xO1A9Qz4+PjF9ZWxzZXtDPWNbej4+Ml18MDtPPUM7UD1DfWRSKG4sTzw8
MSwwKTtpZigoYVtvXSYxKT09MCl7UT0xMH1lbHNle1E9KGNbZz4+Ml0mLTIpLTF8MH1kUihuLFEs
MCk7aWYoKGFbb10mMSk9PTApe1I9eH1lbHNle1I9Y1t5Pj4yXXwwfWNbcD4+Ml09UitQO1M9Un1l
bHNle1M9bH1DPUIrMTJ8MDtHPWNbQz4+Ml18MDtUPUIrMTZ8MDtpZigoR3wwKT09KGNbVD4+Ml18
MCkpe1U9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7VT1jW0c+PjJdfDB9
aWYoKGZVKFUsdCxTLHAscyxBLG0sdixyLHUpfDApIT0wKXtMPVM7TT1JO049SjticmVha31HPWNb
Qz4+Ml18MDtpZigoR3wwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDti
MFtUJjEyN10oQil8MDtsPVM7dz1CO2NvbnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1TO3c9Qjtj
b250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Vj13Pj4+MX1lbHNle1Y9Y1ttKzQ+PjJd
fDB9ZG97aWYoKFZ8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9Uz1j
W3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1TfX13aGlsZSgwKTtzPWZ3KEwsY1twPj4yXXww
LGosdCl8MDtjW2s+PjJdPXM7Y1trKzQ+PjJdPUs7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihF
KXtXPTB9ZWxzZXtyPWNbQisxMj4+Ml18MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1g9YjBb
Y1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7WD1jW3I+PjJdfDB9aWYoKFh8MCkh
PS0xKXtXPUI7YnJlYWt9Y1toPj4yXT0wO1c9MH19d2hpbGUoMCk7aD0oV3wwKT09MDtkb3tpZihO
KXtGPTQ5Mn1lbHNle0I9Y1tNKzEyPj4yXXwwO2lmKChCfDApPT0oY1tNKzE2Pj4yXXwwKSl7WT1i
MFtjWyhjW00+PjJdfDApKzM2Pj4yXSYxMjddKE0pfDB9ZWxzZXtZPWNbQj4+Ml18MH1pZigoWXww
KT09LTEpe2NbZj4+Ml09MDtGPTQ5MjticmVha31pZighKGheKE18MCk9PTApKXticmVha31aPWJ8
MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9
PTQ5Mil7aWYoaCl7YnJlYWt9Wj1ifDA7Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59
fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1o9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtp
PWU7cmV0dXJufWZ1bmN0aW9uIGZZKGUsZixnLGgsaixrLGwpe2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9
aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxX
PTAsWD0wLFk9MCxaPTA7Zj1pO2k9aSsxNDR8MDttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tnPj4yXT1jW20+PjJdO209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+
Ml07bT1mKzEwNHwwO249ZisxMTJ8MDtvPWYrMTI4fDA7cD1vO3E9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3I9aTtpPWkrMTYwfDA7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dD1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7c3dpdGNoKGNbais0Pj4yXSY3NHwwKXtjYXNlIDg6e3U9MTY7YnJlYWt9O2Nhc2Ug
NjQ6e3U9ODticmVha307Y2FzZSAwOnt1PTA7YnJlYWt9O2RlZmF1bHQ6e3U9MTB9fXY9ZnwwO2ZX
KG4saix2LG0pO2skKHB8MCwwLDEyKTtqPW87ZFIobywxMCwwKTtpZigoYVtwXSYxKT09MCl7dz1q
KzF8MDt4PXc7eT13O3o9bys4fDB9ZWxzZXt3PW8rOHwwO3g9Y1t3Pj4yXXwwO3k9aisxfDA7ej13
fWNbcT4+Ml09eDt3PXJ8MDtjW3M+PjJdPXc7Y1t0Pj4yXT0wO2o9Z3wwO2c9aHwwO2g9b3wwO0E9
bys0fDA7Qj1jW20+PjJdfDA7bT14O3g9Y1tqPj4yXXwwO0w2MjQ6d2hpbGUoMSl7ZG97aWYoKHh8
MCk9PTApe0M9MH1lbHNle0Q9Y1t4KzEyPj4yXXwwO2lmKChEfDApPT0oY1t4KzE2Pj4yXXwwKSl7
RT1iMFtjWyhjW3g+PjJdfDApKzM2Pj4yXSYxMjddKHgpfDB9ZWxzZXtFPWNbRD4+Ml18MH1pZigo
RXwwKSE9LTEpe0M9eDticmVha31jW2o+PjJdPTA7Qz0wfX13aGlsZSgwKTtGPShDfDApPT0wO0Q9
Y1tnPj4yXXwwO2Rve2lmKChEfDApPT0wKXtHPTUyMH1lbHNle0g9Y1tEKzEyPj4yXXwwO2lmKChI
fDApPT0oY1tEKzE2Pj4yXXwwKSl7ST1iMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDB9
ZWxzZXtJPWNbSD4+Ml18MH1pZigoSXwwKT09LTEpe2NbZz4+Ml09MDtHPTUyMDticmVha31lbHNl
e0g9KER8MCk9PTA7aWYoRl5IKXtKPUQ7Sz1IO2JyZWFrfWVsc2V7TD1tO009RDtOPUg7YnJlYWsg
TDYyNH19fX13aGlsZSgwKTtpZigoR3wwKT09NTIwKXtHPTA7aWYoRil7TD1tO009MDtOPTE7YnJl
YWt9ZWxzZXtKPTA7Sz0xfX1EPWRbcF18MDtIPShEJjF8MCk9PTA7aWYoKChjW3E+PjJdfDApLW18
MCk9PSgoSD9EPj4+MTpjW0E+PjJdfDApfDApKXtpZihIKXtPPUQ+Pj4xO1A9RD4+PjF9ZWxzZXtE
PWNbQT4+Ml18MDtPPUQ7UD1EfWRSKG8sTzw8MSwwKTtpZigoYVtwXSYxKT09MCl7UT0xMH1lbHNl
e1E9KGNbaD4+Ml0mLTIpLTF8MH1kUihvLFEsMCk7aWYoKGFbcF0mMSk9PTApe1I9eX1lbHNle1I9
Y1t6Pj4yXXwwfWNbcT4+Ml09UitQO1M9Un1lbHNle1M9bX1EPUMrMTJ8MDtIPWNbRD4+Ml18MDtU
PUMrMTZ8MDtpZigoSHwwKT09KGNbVD4+Ml18MCkpe1U9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0m
MTI3XShDKXwwfWVsc2V7VT1jW0g+PjJdfDB9aWYoKGZVKFUsdSxTLHEsdCxCLG4sdyxzLHYpfDAp
IT0wKXtMPVM7TT1KO049SzticmVha31IPWNbRD4+Ml18MDtpZigoSHwwKT09KGNbVD4+Ml18MCkp
e1Q9Y1soY1tDPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10oQyl8MDttPVM7eD1DO2NvbnRpbnVl
fWVsc2V7Y1tEPj4yXT1IKzQ7bT1TO3g9Qztjb250aW51ZX19eD1kW25dfDA7aWYoKHgmMXwwKT09
MCl7Vj14Pj4+MX1lbHNle1Y9Y1tuKzQ+PjJdfDB9ZG97aWYoKFZ8MCkhPTApe3g9Y1tzPj4yXXww
O2lmKCh4LXJ8MCk+PTE2MCl7YnJlYWt9Uz1jW3Q+PjJdfDA7Y1tzPj4yXT14KzQ7Y1t4Pj4yXT1T
fX13aGlsZSgwKTtiW2w+PjFdPWZ6KEwsY1txPj4yXXwwLGssdSl8MDtmdChuLHcsY1tzPj4yXXww
LGspO2Rve2lmKEYpe1c9MH1lbHNle3M9Y1tDKzEyPj4yXXwwO2lmKChzfDApPT0oY1tDKzE2Pj4y
XXwwKSl7WD1iMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtYPWNbcz4+Ml18
MH1pZigoWHwwKSE9LTEpe1c9QzticmVha31jW2o+PjJdPTA7Vz0wfX13aGlsZSgwKTtqPShXfDAp
PT0wO2Rve2lmKE4pe0c9NTYyfWVsc2V7Qz1jW00rMTI+PjJdfDA7aWYoKEN8MCk9PShjW00rMTY+
PjJdfDApKXtZPWIwW2NbKGNbTT4+Ml18MCkrMzY+PjJdJjEyN10oTSl8MH1lbHNle1k9Y1tDPj4y
XXwwfWlmKChZfDApPT0tMSl7Y1tnPj4yXT0wO0c9NTYyO2JyZWFrfWlmKCEoal4oTXwwKT09MCkp
e2JyZWFrfVo9ZXwwO2NbWj4+Ml09VztkUChvKTtkUChuKTtpPWY7cmV0dXJufX13aGlsZSgwKTtk
b3tpZigoR3wwKT09NTYyKXtpZihqKXticmVha31aPWV8MDtjW1o+PjJdPVc7ZFAobyk7ZFAobik7
aT1mO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7Wj1lfDA7Y1taPj4yXT1XO2RQ
KG8pO2RQKG4pO2k9ZjtyZXR1cm59ZnVuY3Rpb24gZlooYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxF
PTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9
MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MDtlPWk7aT1pKzE0NHwwO2w9ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzExMnwwO249ZSsxMjh8MDtvPW47cD1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0xNjti
cmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0x
MH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29d
JjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7
eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1n
fDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1jW2g+PjJdfDA7TDcxMzp3aGlsZSgx
KXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+PjJdfDA7aWYoKEN8MCk9PShjW3cr
MTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MH1lbHNle0Q9Y1tD
Pj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0U9
KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTApe0Y9NTkwfWVsc2V7Rz1jW0MrMTI+
PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDApKXtIPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJd
JjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlmKChIfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NTkw
O2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztKPUc7YnJlYWt9ZWxzZXtLPWw7TD1D
O009RzticmVhayBMNzEzfX19fXdoaWxlKDApO2lmKChGfDApPT01OTApe0Y9MDtpZihFKXtLPWw7
TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUM9ZFtvXXwwO0c9KEMmMXwwKT09MDtpZigoKGNb
cD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEcpe049Qz4+PjE7Tz1D
Pj4+MX1lbHNle0M9Y1t6Pj4yXXwwO049QztPPUN9ZFIobixOPDwxLDApO2lmKChhW29dJjEpPT0w
KXtQPTEwfWVsc2V7UD0oY1tnPj4yXSYtMiktMXwwfWRSKG4sUCwwKTtpZigoYVtvXSYxKT09MCl7
UT14fWVsc2V7UT1jW3k+PjJdfDB9Y1twPj4yXT1RK087Uj1RfWVsc2V7Uj1sfUM9QisxMnwwO0c9
Y1tDPj4yXXwwO1M9QisxNnwwO2lmKChHfDApPT0oY1tTPj4yXXwwKSl7VD1iMFtjWyhjW0I+PjJd
fDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtUPWNbRz4+Ml18MH1pZigoZlUoVCx0LFIscCxzLEEs
bSx2LHIsdSl8MCkhPTApe0s9UjtMPUk7TT1KO2JyZWFrfUc9Y1tDPj4yXXwwO2lmKChHfDApPT0o
Y1tTPj4yXXwwKSl7Uz1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShCKXwwO2w9Ujt3
PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDtsPVI7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtp
ZigodyYxfDApPT0wKXtVPXc+Pj4xfWVsc2V7VT1jW20rND4+Ml18MH1kb3tpZigoVXwwKSE9MCl7
dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31SPWNbcz4+Ml18MDtjW3I+PjJdPXcr
NDtjW3c+PjJdPVJ9fXdoaWxlKDApO2Nbaz4+Ml09ZkIoSyxjW3A+PjJdfDAsaix0KXwwO2Z0KG0s
dixjW3I+PjJdfDAsaik7ZG97aWYoRSl7Vj0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9
PShjW0IrMTY+PjJdfDApKXtXPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNl
e1c9Y1tyPj4yXXwwfWlmKChXfDApIT0tMSl7Vj1CO2JyZWFrfWNbaD4+Ml09MDtWPTB9fXdoaWxl
KDApO2g9KFZ8MCk9PTA7ZG97aWYoTSl7Rj02MzJ9ZWxzZXtCPWNbTCsxMj4+Ml18MDtpZigoQnww
KT09KGNbTCsxNj4+Ml18MCkpe1g9YjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3XShMKXwwfWVs
c2V7WD1jW0I+PjJdfDB9aWYoKFh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj02MzI7YnJlYWt9aWYoISho
XihMfDApPT0wKSl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59
fXdoaWxlKDApO2Rve2lmKChGfDApPT02MzIpe2lmKGgpe2JyZWFrfVk9YnwwO2NbWT4+Ml09Vjtk
UChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtZPWJ8MDtj
W1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmXyhiLGUsZixnLGgsaixr
KXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0w
LFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wO2U9aTtpPWkrMTQ0fDA7bD1mO2Y9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEyOHwwO289
bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2Fz
ZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtk
ZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAs
MCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3
PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09
MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+Ml18MDtM
ODAyOndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18MDtpZigo
Q3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXww
fWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19
d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj02NjB9ZWxz
ZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1soY1tDPj4y
XXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0xKXtjW2Y+
PjJdPTA7Rj02NjA7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9RzticmVha31l
bHNle0s9bDtMPUM7TT1HO2JyZWFrIEw4MDJ9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTY2MCl7Rj0w
O2lmKEUpe0s9bDtMPTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0oQyYxfDAp
PT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoRyl7
Tj1DPj4+MTtPPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tj1DO089Q31kUihuLE48PDEsMCk7aWYo
KGFbb10mMSk9PTApe1A9MTB9ZWxzZXtQPShjW2c+PjJdJi0yKS0xfDB9ZFIobixQLDApO2lmKChh
W29dJjEpPT0wKXtRPXh9ZWxzZXtRPWNbeT4+Ml18MH1jW3A+PjJdPVErTztSPVF9ZWxzZXtSPWx9
Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7Uz1CKzE2fDA7aWYoKEd8MCk9PShjW1M+PjJdfDApKXtUPWIw
W2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1Q9Y1tHPj4yXXwwfWlmKChmVShU
LHQsUixwLHMsQSxtLHYscix1KXwwKSE9MCl7Sz1SO0w9STtNPUo7YnJlYWt9Rz1jW0M+PjJdfDA7
aWYoKEd8MCk9PShjW1M+PjJdfDApKXtTPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUyYxMjdd
KEIpfDA7bD1SO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Ujt3PUI7Y29udGludWV9
fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1U9dz4+PjF9ZWxzZXtVPWNbbSs0Pj4yXXwwfWRve2lm
KChVfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVI9Y1tzPj4yXXww
O2Nbcj4+Ml09dys0O2Nbdz4+Ml09Un19d2hpbGUoMCk7Y1trPj4yXT1mRChLLGNbcD4+Ml18MCxq
LHQpfDA7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihFKXtWPTB9ZWxzZXtyPWNbQisxMj4+Ml18
MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1c9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3
XShCKXwwfWVsc2V7Vz1jW3I+PjJdfDB9aWYoKFd8MCkhPS0xKXtWPUI7YnJlYWt9Y1toPj4yXT0w
O1Y9MH19d2hpbGUoMCk7aD0oVnwwKT09MDtkb3tpZihNKXtGPTcwMn1lbHNle0I9Y1tMKzEyPj4y
XXwwO2lmKChCfDApPT0oY1tMKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYx
MjddKEwpfDB9ZWxzZXtYPWNbQj4+Ml18MH1pZigoWHwwKT09LTEpe2NbZj4+Ml09MDtGPTcwMjti
cmVha31pZighKGheKEx8MCk9PTApKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7
aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTcwMil7aWYoaCl7YnJlYWt9WT1ifDA7
Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4y
XXwyO1k9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGYkKGIs
ZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3Zh
ciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsTD0wLE09MCxOPTAs
Tz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTA7ZT1pO2k9aSsx
NDR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtu
PWUrMTI4fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4y
XSY3NHwwKXtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0
PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTto
PW47ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxz
ZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJd
PXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9
Y1toPj4yXXwwO0w4OTE6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEy
Pj4yXXwwO2lmKChDfDApPT0oY1t3KzE2Pj4yXXwwKSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4y
XSYxMjddKHcpfDB9ZWxzZXtEPWNbQz4+Ml18MH1pZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+
PjJdPTA7Qj0wfX13aGlsZSgwKTtFPShCfDApPT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0w
KXtGPTczMH1lbHNle0c9Y1tDKzEyPj4yXXwwO2lmKChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1i
MFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHww
KT09LTEpe2NbZj4+Ml09MDtGPTczMDticmVha31lbHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7
Sj1HO2JyZWFrfWVsc2V7TD1sO009QztOPUc7YnJlYWsgTDg5MX19fX13aGlsZSgwKTtpZigoRnww
KT09NzMwKXtGPTA7aWYoRSl7TD1sO009MDtOPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118
MDtHPShDJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDAp
fDApKXtpZihHKXtPPUM+Pj4xO1A9Qz4+PjF9ZWxzZXtDPWNbej4+Ml18MDtPPUM7UD1DfWRSKG4s
Tzw8MSwwKTtpZigoYVtvXSYxKT09MCl7UT0xMH1lbHNle1E9KGNbZz4+Ml0mLTIpLTF8MH1kUihu
LFEsMCk7aWYoKGFbb10mMSk9PTApe1I9eH1lbHNle1I9Y1t5Pj4yXXwwfWNbcD4+Ml09UitQO1M9
Un1lbHNle1M9bH1DPUIrMTJ8MDtHPWNbQz4+Ml18MDtUPUIrMTZ8MDtpZigoR3wwKT09KGNbVD4+
Ml18MCkpe1U9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7VT1jW0c+PjJd
fDB9aWYoKGZVKFUsdCxTLHAscyxBLG0sdixyLHUpfDApIT0wKXtMPVM7TT1JO049SjticmVha31H
PWNbQz4+Ml18MDtpZigoR3wwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tCPj4yXXwwKSs0MD4+Ml18
MDtiMFtUJjEyN10oQil8MDtsPVM7dz1CO2NvbnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1TO3c9
Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Vj13Pj4+MX1lbHNle1Y9Y1ttKzQ+
PjJdfDB9ZG97aWYoKFZ8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9
Uz1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1TfX13aGlsZSgwKTtzPWZGKEwsY1twPj4y
XXwwLGosdCl8MDtjW2s+PjJdPXM7Y1trKzQ+PjJdPUs7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tp
ZihFKXtXPTB9ZWxzZXtyPWNbQisxMj4+Ml18MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1g9
YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7WD1jW3I+PjJdfDB9aWYoKFh8
MCkhPS0xKXtXPUI7YnJlYWt9Y1toPj4yXT0wO1c9MH19d2hpbGUoMCk7aD0oV3wwKT09MDtkb3tp
ZihOKXtGPTc3Mn1lbHNle0I9Y1tNKzEyPj4yXXwwO2lmKChCfDApPT0oY1tNKzE2Pj4yXXwwKSl7
WT1iMFtjWyhjW00+PjJdfDApKzM2Pj4yXSYxMjddKE0pfDB9ZWxzZXtZPWNbQj4+Ml18MH1pZigo
WXwwKT09LTEpe2NbZj4+Ml09MDtGPTc3MjticmVha31pZighKGheKE18MCk9PTApKXticmVha31a
PWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8
MCk9PTc3Mil7aWYoaCl7YnJlYWt9Wj1ifDA7Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1
cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1o9YnwwO2NbWj4+Ml09VztkUChuKTtkUCht
KTtpPWU7cmV0dXJufWZ1bmN0aW9uIGYwKGIsZSxmLGgsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9Znww
O2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MDtlPWk7aT1pKzE3NnwwO209ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1oO2g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
aD4+Ml09Y1ttPj4yXTttPWUrMTI4fDA7bj1lKzEzNnwwO289ZSsxNDR8MDtwPWUrMTYwfDA7cT1w
O3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1p
O2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZjEobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1w
O2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7
eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15
O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWh8MDtoPXB8MDtDPXArNHwwO0Q9Y1tt
Pj4yXXwwO209Y1tuPj4yXXwwO249ejt6PWNbaj4+Ml18MDtMOTc1OndoaWxlKDEpe2Rve2lmKCh6
fDApPT0wKXtFPTB9ZWxzZXtGPWNbeisxMj4+Ml18MDtpZigoRnwwKT09KGNbeisxNj4+Ml18MCkp
e0c9YjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Rz1jW0Y+PjJdfDB9aWYo
KEd8MCkhPS0xKXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7SD0oRXwwKT09MDtG
PWNbZj4+Ml18MDtkb3tpZigoRnwwKT09MCl7ST03OTZ9ZWxzZXtKPWNbRisxMj4+Ml18MDtpZigo
SnwwKT09KGNbRisxNj4+Ml18MCkpe0s9YjBbY1soY1tGPj4yXXwwKSszNj4+Ml0mMTI3XShGKXww
fWVsc2V7Sz1jW0o+PjJdfDB9aWYoKEt8MCk9PS0xKXtjW2Y+PjJdPTA7ST03OTY7YnJlYWt9ZWxz
ZXtKPShGfDApPT0wO2lmKEheSil7TD1GO009SjticmVha31lbHNle049bjtPPUY7UD1KO2JyZWFr
IEw5NzV9fX19d2hpbGUoMCk7aWYoKEl8MCk9PTc5Nil7ST0wO2lmKEgpe049bjtPPTA7UD0xO2Jy
ZWFrfWVsc2V7TD0wO009MX19Rj1kW3FdfDA7Sj0oRiYxfDApPT0wO2lmKCgoY1tyPj4yXXwwKS1u
fDApPT0oKEo/Rj4+PjE6Y1tDPj4yXXwwKXwwKSl7aWYoSil7UT1GPj4+MTtSPUY+Pj4xfWVsc2V7
Rj1jW0M+PjJdfDA7UT1GO1I9Rn1kUihwLFE8PDEsMCk7aWYoKGFbcV0mMSk9PTApe1M9MTB9ZWxz
ZXtTPShjW2g+PjJdJi0yKS0xfDB9ZFIocCxTLDApO2lmKChhW3FdJjEpPT0wKXtUPUF9ZWxzZXtU
PWNbQj4+Ml18MH1jW3I+PjJdPVQrUjtVPVR9ZWxzZXtVPW59Rj1FKzEyfDA7Sj1jW0Y+PjJdfDA7
Vj1FKzE2fDA7aWYoKEp8MCk9PShjW1Y+PjJdfDApKXtXPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJd
JjEyN10oRSl8MH1lbHNle1c9Y1tKPj4yXXwwfWlmKChmMihXLHYsdyxVLHIsRCxtLG8seSx0LHUs
eCl8MCkhPTApe049VTtPPUw7UD1NO2JyZWFrfUo9Y1tGPj4yXXwwO2lmKChKfDApPT0oY1tWPj4y
XXwwKSl7Vj1jWyhjW0U+PjJdfDApKzQwPj4yXXwwO2IwW1YmMTI3XShFKXwwO249VTt6PUU7Y29u
dGludWV9ZWxzZXtjW0Y+PjJdPUorNDtuPVU7ej1FO2NvbnRpbnVlfX16PWRbb118MDtpZigoeiYx
fDApPT0wKXtYPXo+Pj4xfWVsc2V7WD1jW28rND4+Ml18MH1kb3tpZigoWHwwKSE9MCl7aWYoKGFb
dl0mMSk9PTApe2JyZWFrfXo9Y1t0Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7YnJlYWt9VT1jW3U+
PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6Pj4yXT1VfX13aGlsZSgwKTtnW2w+PjJdPStmSShOLGNbcj4+
Ml18MCxrKTtmdChvLHksY1t0Pj4yXXwwLGspO2Rve2lmKEgpe1k9MH1lbHNle3Q9Y1tFKzEyPj4y
XXwwO2lmKCh0fDApPT0oY1tFKzE2Pj4yXXwwKSl7Wj1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYx
MjddKEUpfDB9ZWxzZXtaPWNbdD4+Ml18MH1pZigoWnwwKSE9LTEpe1k9RTticmVha31jW2o+PjJd
PTA7WT0wfX13aGlsZSgwKTtqPShZfDApPT0wO2Rve2lmKFApe0k9ODM5fWVsc2V7RT1jW08rMTI+
PjJdfDA7aWYoKEV8MCk9PShjW08rMTY+PjJdfDApKXtfPWIwW2NbKGNbTz4+Ml18MCkrMzY+PjJd
JjEyN10oTyl8MH1lbHNle189Y1tFPj4yXXwwfWlmKChffDApPT0tMSl7Y1tmPj4yXT0wO0k9ODM5
O2JyZWFrfWlmKCEoal4oT3wwKT09MCkpe2JyZWFrfSQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChv
KTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoSXwwKT09ODM5KXtpZihqKXticmVha30kPWJ8
MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+
PjJdfDI7JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZjEo
YSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtnPWk7aT1pKzQwfDA7aD1nfDA7aj1nKzE2
fDA7az1nKzMyfDA7ZWooayxiKTtiPWt8MDtrPWNbYj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEp
e2Nbaj4+Ml09MTU2ODg7Y1tqKzQ+PjJdPTEyO2Nbais4Pj4yXT0wO2RXKDE1Njg4LGosOTYpfWo9
KGNbMzkyM118MCktMXwwO2w9Y1trKzg+PjJdfDA7ZG97aWYoKGNbaysxMj4+Ml18MCktbD4+Mj4+
PjA+aj4+PjApe209Y1tsKyhqPDwyKT4+Ml18MDtpZigobXwwKT09MCl7YnJlYWt9bj1tO289Y1so
Y1ttPj4yXXwwKSs0OD4+Ml18MDtjYVtvJjE1XShuLDk3NDQsOTc3NixkKXwwO249Y1tiPj4yXXww
O2lmKChjWzM4MjZdfDApIT0tMSl7Y1toPj4yXT0xNTMwNDtjW2grND4+Ml09MTI7Y1toKzg+PjJd
PTA7ZFcoMTUzMDQsaCw5Nil9bz0oY1szODI3XXwwKS0xfDA7bT1jW24rOD4+Ml18MDtkb3tpZigo
Y1tuKzEyPj4yXXwwKS1tPj4yPj4+MD5vPj4+MCl7cD1jW20rKG88PDIpPj4yXXwwO2lmKChwfDAp
PT0wKXticmVha31xPXA7cj1wO2NbZT4+Ml09YjBbY1soY1tyPj4yXXwwKSsxMj4+Ml0mMTI3XShx
KXwwO2NbZj4+Ml09YjBbY1soY1tyPj4yXXwwKSsxNj4+Ml0mMTI3XShxKXwwO2JaW2NbKGNbcD4+
Ml18MCkrMjA+PjJdJjEyN10oYSxxKTtxPWNbYj4+Ml18MDtkeihxKXwwO2k9ZztyZXR1cm59fXdo
aWxlKDApO289Yk8oNCl8MDtrcShvKTtibChvfDAsODE3NiwxMzQpfX13aGlsZSgwKTtnPWJPKDQp
fDA7a3EoZyk7YmwoZ3wwLDgxNzYsMTM0KX1mdW5jdGlvbiBmMihiLGUsZixnLGgsaSxqLGssbCxt
LG4sbyl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1s
fDA7bT1tfDA7bj1ufDA7bz1vfDA7dmFyIHA9MCxxPTAscj0wLHM9MCx0PTA7aWYoKGJ8MCk9PShp
fDApKXtpZigoYVtlXSYxKT09MCl7cD0tMTtyZXR1cm4gcHwwfWFbZV09MDtpPWNbaD4+Ml18MDtj
W2g+PjJdPWkrMTthW2ldPTQ2O2k9ZFtrXXwwO2lmKChpJjF8MCk9PTApe3E9aT4+PjF9ZWxzZXtx
PWNbays0Pj4yXXwwfWlmKChxfDApPT0wKXtwPTA7cmV0dXJuIHB8MH1xPWNbbT4+Ml18MDtpZigo
cS1sfDApPj0xNjApe3A9MDtyZXR1cm4gcHwwfWk9Y1tuPj4yXXwwO2NbbT4+Ml09cSs0O2NbcT4+
Ml09aTtwPTA7cmV0dXJuIHB8MH1kb3tpZigoYnwwKT09KGp8MCkpe2k9ZFtrXXwwO2lmKChpJjF8
MCk9PTApe3I9aT4+PjF9ZWxzZXtyPWNbays0Pj4yXXwwfWlmKChyfDApPT0wKXticmVha31pZigo
YVtlXSYxKT09MCl7cD0tMTtyZXR1cm4gcHwwfWk9Y1ttPj4yXXwwO2lmKChpLWx8MCk+PTE2MCl7
cD0wO3JldHVybiBwfDB9cT1jW24+PjJdfDA7Y1ttPj4yXT1pKzQ7Y1tpPj4yXT1xO2Nbbj4+Ml09
MDtwPTA7cmV0dXJuIHB8MH19d2hpbGUoMCk7cj1vKzEyOHwwO2o9bzt3aGlsZSgxKXtpZigoanww
KT09KHJ8MCkpe3M9cjticmVha31pZigoY1tqPj4yXXwwKT09KGJ8MCkpe3M9ajticmVha31lbHNl
e2o9ais0fDB9fWo9cy1vfDA7bz1qPj4yO2lmKChqfDApPjEyNCl7cD0tMTtyZXR1cm4gcHwwfXM9
YVs5NzQ0K298MF18MDtMMTExNTpkb3tzd2l0Y2gob3wwKXtjYXNlIDI1OmNhc2UgMjQ6e2I9Y1to
Pj4yXXwwO2Rve2lmKChifDApIT0oZ3wwKSl7aWYoKGFbYi0xfDBdJjk1fDApPT0oYVtmXSYxMjd8
MCkpe2JyZWFrfWVsc2V7cD0tMX1yZXR1cm4gcHwwfX13aGlsZSgwKTtjW2g+PjJdPWIrMTthW2Jd
PXM7cD0wO3JldHVybiBwfDB9O2Nhc2UgMjI6Y2FzZSAyMzp7YVtmXT04MDticmVha307ZGVmYXVs
dDp7cj1hW2ZdfDA7aWYoKHMmOTV8MCkhPShyPDwyND4+MjR8MCkpe2JyZWFrIEwxMTE1fWFbZl09
cnwtMTI4O2lmKChhW2VdJjEpPT0wKXticmVhayBMMTExNX1hW2VdPTA7cj1kW2tdfDA7aWYoKHIm
MXwwKT09MCl7dD1yPj4+MX1lbHNle3Q9Y1trKzQ+PjJdfDB9aWYoKHR8MCk9PTApe2JyZWFrIEwx
MTE1fXI9Y1ttPj4yXXwwO2lmKChyLWx8MCk+PTE2MCl7YnJlYWsgTDExMTV9cT1jW24+PjJdfDA7
Y1ttPj4yXT1yKzQ7Y1tyPj4yXT1xfX19d2hpbGUoMCk7bT1jW2g+PjJdfDA7Y1toPj4yXT1tKzE7
YVttXT1zO2lmKChqfDApPjg0KXtwPTA7cmV0dXJuIHB8MH1jW24+PjJdPShjW24+PjJdfDApKzE7
cD0wO3JldHVybiBwfDB9ZnVuY3Rpb24gZjMoYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAs
Vj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wO2U9aTtpPWkrMTc2fDA7bT1mO2Y9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tnPj4yXT1jW20+PjJdO209ZSsxMjh8MDtuPWUrMTM2fDA7bz1lKzE0NHwwO3A9ZSsxNjB8MDtx
PXA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSsxNjB8MDt0PWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8Mzt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt3
PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt4PWV8MDtmMShvLGoseCxtLG4pO2skKHF8MCwwLDEyKTtq
PXA7ZFIocCwxMCwwKTtpZigoYVtxXSYxKT09MCl7eT1qKzF8MDt6PXk7QT15O0I9cCs4fDB9ZWxz
ZXt5PXArOHwwO3o9Y1t5Pj4yXXwwO0E9aisxfDA7Qj15fWNbcj4+Ml09ejt5PXN8MDtjW3Q+PjJd
PXk7Y1t1Pj4yXT0wO2Fbdl09MTthW3ddPTY5O2o9ZnwwO2Y9Z3wwO2c9cHwwO0M9cCs0fDA7RD1j
W20+PjJdfDA7bT1jW24+PjJdfDA7bj16O3o9Y1tqPj4yXXwwO0wxMTQzOndoaWxlKDEpe2Rve2lm
KCh6fDApPT0wKXtFPTB9ZWxzZXtGPWNbeisxMj4+Ml18MDtpZigoRnwwKT09KGNbeisxNj4+Ml18
MCkpe0c9YjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Rz1jW0Y+PjJdfDB9
aWYoKEd8MCkhPS0xKXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7SD0oRXwwKT09
MDtGPWNbZj4+Ml18MDtkb3tpZigoRnwwKT09MCl7ST05Mjl9ZWxzZXtKPWNbRisxMj4+Ml18MDtp
ZigoSnwwKT09KGNbRisxNj4+Ml18MCkpe0s9YjBbY1soY1tGPj4yXXwwKSszNj4+Ml0mMTI3XShG
KXwwfWVsc2V7Sz1jW0o+PjJdfDB9aWYoKEt8MCk9PS0xKXtjW2Y+PjJdPTA7ST05Mjk7YnJlYWt9
ZWxzZXtKPShGfDApPT0wO2lmKEheSil7TD1GO009SjticmVha31lbHNle049bjtPPUY7UD1KO2Jy
ZWFrIEwxMTQzfX19fXdoaWxlKDApO2lmKChJfDApPT05Mjkpe0k9MDtpZihIKXtOPW47Tz0wO1A9
MTticmVha31lbHNle0w9MDtNPTF9fUY9ZFtxXXwwO0o9KEYmMXwwKT09MDtpZigoKGNbcj4+Ml18
MCktbnwwKT09KChKP0Y+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKEope1E9Rj4+PjE7Uj1GPj4+MX1l
bHNle0Y9Y1tDPj4yXXwwO1E9RjtSPUZ9ZFIocCxRPDwxLDApO2lmKChhW3FdJjEpPT0wKXtTPTEw
fWVsc2V7Uz0oY1tnPj4yXSYtMiktMXwwfWRSKHAsUywwKTtpZigoYVtxXSYxKT09MCl7VD1BfWVs
c2V7VD1jW0I+PjJdfDB9Y1tyPj4yXT1UK1I7VT1UfWVsc2V7VT1ufUY9RSsxMnwwO0o9Y1tGPj4y
XXwwO1Y9RSsxNnwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vz1iMFtjWyhjW0U+PjJdfDApKzM2
Pj4yXSYxMjddKEUpfDB9ZWxzZXtXPWNbSj4+Ml18MH1pZigoZjIoVyx2LHcsVSxyLEQsbSxvLHks
dCx1LHgpfDApIT0wKXtOPVU7Tz1MO1A9TTticmVha31KPWNbRj4+Ml18MDtpZigoSnwwKT09KGNb
Vj4+Ml18MCkpe1Y9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtWJjEyN10oRSl8MDtuPVU7ej1F
O2NvbnRpbnVlfWVsc2V7Y1tGPj4yXT1KKzQ7bj1VO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYo
KHomMXwwKT09MCl7WD16Pj4+MX1lbHNle1g9Y1tvKzQ+PjJdfDB9ZG97aWYoKFh8MCkhPTApe2lm
KChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVU9
Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09VX19d2hpbGUoMCk7aFtsPj4zXT0rZkwoTixj
W3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihIKXtZPTB9ZWxzZXt0PWNbRSsx
Mj4+Ml18MDtpZigodHwwKT09KGNbRSsxNj4+Ml18MCkpe1o9YjBbY1soY1tFPj4yXXwwKSszNj4+
Ml0mMTI3XShFKXwwfWVsc2V7Wj1jW3Q+PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUU7YnJlYWt9Y1tq
Pj4yXT0wO1k9MH19d2hpbGUoMCk7aj0oWXwwKT09MDtkb3tpZihQKXtJPTk3Mn1lbHNle0U9Y1tP
KzEyPj4yXXwwO2lmKChFfDApPT0oY1tPKzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW08+PjJdfDApKzM2
Pj4yXSYxMjddKE8pfDB9ZWxzZXtfPWNbRT4+Ml18MH1pZigoX3wwKT09LTEpe2NbZj4+Ml09MDtJ
PTk3MjticmVha31pZighKGpeKE98MCk9PTApKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7
ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEl8MCk9PTk3Mil7aWYoail7YnJlYWt9
JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09
Y1trPj4yXXwyOyQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9u
IGY0KGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3wwO2w9
bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09
MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0w
LCQ9MDtlPWk7aT1pKzE3NnwwO209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNb
bT4+Ml07bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1ttPj4yXTttPWUrMTI4
fDA7bj1lKzEzNnwwO289ZSsxNDR8MDtwPWUrMTYwfDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7
eD1lfDA7ZjEobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0m
MSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtB
PWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3
XT02OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9Y1ttPj4yXXwwO209Y1tuPj4yXXwwO249
ejt6PWNbaj4+Ml18MDtMMTIyODp3aGlsZSgxKXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7Rj1j
W3orMTI+PjJdfDA7aWYoKEZ8MCk9PShjW3orMTY+PjJdfDApKXtHPWIwW2NbKGNbej4+Ml18MCkr
MzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1tGPj4yXXwwfWlmKChHfDApIT0tMSl7RT16O2JyZWFr
fWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7Rj1jW2Y+PjJdfDA7ZG97aWYoKEZ8
MCk9PTApe0k9OTk2fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYoKEp8MCk9PShjW0YrMTY+PjJdfDAp
KXtLPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8MH1lbHNle0s9Y1tKPj4yXXwwfWlm
KChLfDApPT0tMSl7Y1tmPj4yXT0wO0k9OTk2O2JyZWFrfWVsc2V7Sj0oRnwwKT09MDtpZihIXkop
e0w9RjtNPUo7YnJlYWt9ZWxzZXtOPW47Tz1GO1A9SjticmVhayBMMTIyOH19fX13aGlsZSgwKTtp
ZigoSXwwKT09OTk2KXtJPTA7aWYoSCl7Tj1uO089MDtQPTE7YnJlYWt9ZWxzZXtMPTA7TT0xfX1G
PWRbcV18MDtKPShGJjF8MCk9PTA7aWYoKChjW3I+PjJdfDApLW58MCk9PSgoSj9GPj4+MTpjW0M+
PjJdfDApfDApKXtpZihKKXtRPUY+Pj4xO1I9Rj4+PjF9ZWxzZXtGPWNbQz4+Ml18MDtRPUY7Uj1G
fWRSKHAsUTw8MSwwKTtpZigoYVtxXSYxKT09MCl7Uz0xMH1lbHNle1M9KGNbZz4+Ml0mLTIpLTF8
MH1kUihwLFMsMCk7aWYoKGFbcV0mMSk9PTApe1Q9QX1lbHNle1Q9Y1tCPj4yXXwwfWNbcj4+Ml09
VCtSO1U9VH1lbHNle1U9bn1GPUUrMTJ8MDtKPWNbRj4+Ml18MDtWPUUrMTZ8MDtpZigoSnwwKT09
KGNbVj4+Ml18MCkpe1c9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwfWVsc2V7Vz1j
W0o+PjJdfDB9aWYoKGYyKFcsdix3LFUscixELG0sbyx5LHQsdSx4KXwwKSE9MCl7Tj1VO089TDtQ
PU07YnJlYWt9Sj1jW0Y+PjJdfDA7aWYoKEp8MCk9PShjW1Y+PjJdfDApKXtWPWNbKGNbRT4+Ml18
MCkrNDA+PjJdfDA7YjBbViYxMjddKEUpfDA7bj1VO3o9RTtjb250aW51ZX1lbHNle2NbRj4+Ml09
Sis0O249VTt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6JjF8MCk9PTApe1g9ej4+PjF9ZWxz
ZXtYPWNbbys0Pj4yXXwwfWRve2lmKChYfDApIT0wKXtpZigoYVt2XSYxKT09MCl7YnJlYWt9ej1j
W3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVha31VPWNbdT4+Ml18MDtjW3Q+PjJdPXorNDtj
W3o+PjJdPVV9fXdoaWxlKDApO2hbbD4+M109K2ZOKE4sY1tyPj4yXXwwLGspO2Z0KG8seSxjW3Q+
PjJdfDAsayk7ZG97aWYoSCl7WT0wfWVsc2V7dD1jW0UrMTI+PjJdfDA7aWYoKHR8MCk9PShjW0Ur
MTY+PjJdfDApKXtaPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1lbHNle1o9Y1t0
Pj4yXXwwfWlmKChafDApIT0tMSl7WT1FO2JyZWFrfWNbaj4+Ml09MDtZPTB9fXdoaWxlKDApO2o9
KFl8MCk9PTA7ZG97aWYoUCl7ST0xMDM5fWVsc2V7RT1jW08rMTI+PjJdfDA7aWYoKEV8MCk9PShj
W08rMTY+PjJdfDApKXtfPWIwW2NbKGNbTz4+Ml18MCkrMzY+PjJdJjEyN10oTyl8MH1lbHNle189
Y1tFPj4yXXwwfWlmKChffDApPT0tMSl7Y1tmPj4yXT0wO0k9MTAzOTticmVha31pZighKGpeKE98
MCk9PTApKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hp
bGUoMCk7ZG97aWYoKEl8MCk9PTEwMzkpe2lmKGope2JyZWFrfSQ9YnwwO2NbJD4+Ml09WTtkUChw
KTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjskPWJ8MDtjWyQ+
PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmNShhKXthPWF8MDtkZShhfDAp
O2tTKGEpO3JldHVybn1mdW5jdGlvbiBmNihhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlv
biBmNyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtr
PWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAs
eD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxM
PTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9
MDtlPWk7aT1pKzEzNnwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+
Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWV8MDttPWUr
MTZ8MDtuPWUrMTIwfDA7bz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cD1pO2k9aSsxMnwwO2k9aSs3
Pj4zPDwzO3E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3I9aTtpPWkrMTYwfDA7cz1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ayQobnwwLDAsMTIpO3U9cDtlaihv
LGgpO2g9b3wwO289Y1toPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtj
W2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7
dj1jW28rOD4+Ml18MDtkb3tpZigoY1tvKzEyPj4yXXwwKS12Pj4yPj4+MD5sPj4+MCl7dz1jW3Yr
KGw8PDIpPj4yXXwwO2lmKCh3fDApPT0wKXticmVha314PXc7eT1tfDA7ej1jWyhjW3c+PjJdfDAp
KzQ4Pj4yXXwwO2NhW3omMTVdKHgsOTc0NCw5NzcwLHkpfDA7eD1jW2g+PjJdfDA7ZHooeCl8MDtr
JCh1fDAsMCwxMik7eD1wO2RSKHAsMTAsMCk7aWYoKGFbdV0mMSk9PTApe3o9eCsxfDA7QT16O0I9
ejtDPXArOHwwfWVsc2V7ej1wKzh8MDtBPWNbej4+Ml18MDtCPXgrMXwwO0M9en1jW3E+PjJdPUE7
ej1yfDA7Y1tzPj4yXT16O2NbdD4+Ml09MDt4PWZ8MDt3PWd8MDtEPXB8MDtFPXArNHwwO0Y9QTtH
PWNbeD4+Ml18MDtMMTMyMzp3aGlsZSgxKXtkb3tpZigoR3wwKT09MCl7SD0wfWVsc2V7ST1jW0cr
MTI+PjJdfDA7aWYoKEl8MCk9PShjW0crMTY+PjJdfDApKXtKPWIwW2NbKGNbRz4+Ml18MCkrMzY+
PjJdJjEyN10oRyl8MH1lbHNle0o9Y1tJPj4yXXwwfWlmKChKfDApIT0tMSl7SD1HO2JyZWFrfWNb
eD4+Ml09MDtIPTB9fXdoaWxlKDApO0k9KEh8MCk9PTA7Sz1jW3c+PjJdfDA7ZG97aWYoKEt8MCk9
PTApe0w9MTA3M31lbHNle009Y1tLKzEyPj4yXXwwO2lmKChNfDApPT0oY1tLKzE2Pj4yXXwwKSl7
Tj1iMFtjWyhjW0s+PjJdfDApKzM2Pj4yXSYxMjddKEspfDB9ZWxzZXtOPWNbTT4+Ml18MH1pZigo
TnwwKT09LTEpe2Nbdz4+Ml09MDtMPTEwNzM7YnJlYWt9ZWxzZXtpZihJXihLfDApPT0wKXticmVh
a31lbHNle089RjticmVhayBMMTMyM319fX13aGlsZSgwKTtpZigoTHwwKT09MTA3Myl7TD0wO2lm
KEkpe089RjticmVha319Sz1kW3VdfDA7TT0oSyYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1GfDAp
PT0oKE0/Sz4+PjE6Y1tFPj4yXXwwKXwwKSl7aWYoTSl7UD1LPj4+MTtRPUs+Pj4xfWVsc2V7Sz1j
W0U+PjJdfDA7UD1LO1E9S31kUihwLFA8PDEsMCk7aWYoKGFbdV0mMSk9PTApe1I9MTB9ZWxzZXtS
PShjW0Q+PjJdJi0yKS0xfDB9ZFIocCxSLDApO2lmKChhW3VdJjEpPT0wKXtTPUJ9ZWxzZXtTPWNb
Qz4+Ml18MH1jW3E+PjJdPVMrUTtUPVN9ZWxzZXtUPUZ9Sz1IKzEyfDA7TT1jW0s+PjJdfDA7VT1I
KzE2fDA7aWYoKE18MCk9PShjW1U+PjJdfDApKXtWPWIwW2NbKGNbSD4+Ml18MCkrMzY+PjJdJjEy
N10oSCl8MH1lbHNle1Y9Y1tNPj4yXXwwfWlmKChmVShWLDE2LFQscSx0LDAsbix6LHMseSl8MCkh
PTApe089VDticmVha31NPWNbSz4+Ml18MDtpZigoTXwwKT09KGNbVT4+Ml18MCkpe1U9Y1soY1tI
Pj4yXXwwKSs0MD4+Ml18MDtiMFtVJjEyN10oSCl8MDtGPVQ7Rz1IO2NvbnRpbnVlfWVsc2V7Y1tL
Pj4yXT1NKzQ7Rj1UO0c9SDtjb250aW51ZX19YVtPKzN8MF09MDtkb3tpZigoYVsxNjI2NF18MCk9
PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO0c9ZlIoTyxjWzI5NThdfDAsMTMyMCwoRj1pLGk9aSs4fDAsY1tGPj4yXT1rLEYpfDAp
fDA7aT1GO2lmKChHfDApIT0xKXtjW2o+PjJdPTR9Rz1jW3g+PjJdfDA7ZG97aWYoKEd8MCk9PTAp
e1c9MH1lbHNle0Y9Y1tHKzEyPj4yXXwwO2lmKChGfDApPT0oY1tHKzE2Pj4yXXwwKSl7WD1iMFtj
WyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDB9ZWxzZXtYPWNbRj4+Ml18MH1pZigoWHwwKSE9
LTEpe1c9RzticmVha31jW3g+PjJdPTA7Vz0wfX13aGlsZSgwKTt4PShXfDApPT0wO0c9Y1t3Pj4y
XXwwO2Rve2lmKChHfDApPT0wKXtMPTExMTh9ZWxzZXtGPWNbRysxMj4+Ml18MDtpZigoRnwwKT09
KGNbRysxNj4+Ml18MCkpe1k9YjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwfWVsc2V7
WT1jW0Y+PjJdfDB9aWYoKFl8MCk9PS0xKXtjW3c+PjJdPTA7TD0xMTE4O2JyZWFrfWlmKCEoeF4o
R3wwKT09MCkpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChwKTtkUChuKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtkb3tpZigoTHwwKT09MTExOCl7aWYoeCl7YnJlYWt9Wj1ifDA7Y1taPj4yXT1XO2RQ
KHApO2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1o9YnwwO2Nb
Wj4+Ml09VztkUChwKTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7
YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmOChiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrODB8MDtqPWU7ZT1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9ZHwwO2s9ZCs4fDA7bD1kKzI0fDA7bT1kKzQ4
fDA7bj1kKzU2fDA7bz1kKzY0fDA7cD1kKzcyfDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8
MF09YVsyMzg1fDBdfDA7YVtxKzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7
YVtxKzR8MF09YVsyMzg4fDBdfDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHww
O3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1p
ZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXww
O0wxNDEwOmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6
e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBMMTQxMH1lbHNle2FbdV09ODg7YnJl
YWsgTDE0MTB9YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAwfX19d2hpbGUoMCk7dT1rfDA7ZG97aWYo
KGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEs
MTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNb
cT4+Ml09aCxxKXwwKXwwO2k9cTtxPWsrdHwwO0wxNDIzOmRve3N3aXRjaChjW3M+PjJdJjE3Nnww
KXtjYXNlIDMyOnt3PXE7YnJlYWt9O2Nhc2UgMTY6e2g9YVt1XXwwO3N3aXRjaChoPDwyND4+MjQp
e2Nhc2UgNDU6Y2FzZSA0Mzp7dz1rKzF8MDticmVhayBMMTQyMzticmVha307ZGVmYXVsdDp7fX1p
ZighKCh0fDApPjEmaDw8MjQ+PjI0PT00OCkpe3g9MTE0NzticmVhayBMMTQyM31zd2l0Y2goYVtr
KzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTE0NzticmVhayBM
MTQyM319dz1rKzJ8MDticmVha307ZGVmYXVsdDp7eD0xMTQ3fX19d2hpbGUoMCk7aWYoKHh8MCk9
PTExNDcpe3c9dX14PWx8MDtlaihvLGYpO2djKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8
MDtjW3A+PjJdPWNbZT4+Ml07ZjkoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gZjkoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7az1p
O2k9aSsxNnwwO2w9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbbD4+Ml07bD1r
fDA7bT1kfDA7ZD1jW20+PjJdfDA7aWYoKGR8MCk9PTApe2NbYj4+Ml09MDtpPWs7cmV0dXJufW49
ZztnPWU7bz1uLWd8MDtwPWgrMTJ8MDtoPWNbcD4+Ml18MDtxPShofDApPihvfDApP2gtb3wwOjA7
bz1mO2g9by1nfDA7ZG97aWYoKGh8MCk+MCl7aWYoKGIxW2NbKGNbZD4+Ml18MCkrNDg+PjJdJjYz
XShkLGUsaCl8MCk9PShofDApKXticmVha31jW20+PjJdPTA7Y1tiPj4yXT0wO2k9aztyZXR1cm59
fXdoaWxlKDApO2Rve2lmKChxfDApPjApe2RfKGwscSxqKTtpZigoYVtsXSYxKT09MCl7cj1sKzF8
MH1lbHNle3I9Y1tsKzg+PjJdfDB9aWYoKGIxW2NbKGNbZD4+Ml18MCkrNDg+PjJdJjYzXShkLHIs
cSl8MCk9PShxfDApKXtkUChsKTticmVha31jW20+PjJdPTA7Y1tiPj4yXT0wO2RQKGwpO2k9azty
ZXR1cm59fXdoaWxlKDApO2w9bi1vfDA7ZG97aWYoKGx8MCk+MCl7aWYoKGIxW2NbKGNbZD4+Ml18
MCkrNDg+PjJdJjYzXShkLGYsbCl8MCk9PShsfDApKXticmVha31jW20+PjJdPTA7Y1tiPj4yXT0w
O2k9aztyZXR1cm59fXdoaWxlKDApO2NbcD4+Ml09MDtjW2I+PjJdPWQ7aT1rO3JldHVybn1mdW5j
dGlvbiBnYShiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MDtqPWk7aT1pKzQ4fDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+
Ml09Y1trPj4yXTtrPWp8MDtsPWorMTZ8MDttPWorMjR8MDtuPWorMzJ8MDtpZigoY1tmKzQ+PjJd
JjF8MCk9PTApe289Y1soY1tkPj4yXXwwKSsyND4+Ml18MDtjW2w+PjJdPWNbZT4+Ml07YjlbbyYz
MV0oYixkLGwsZixnLGgmMSk7aT1qO3JldHVybn1laihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lm
KChjWzM4MjhdfDApIT0tMSl7Y1trPj4yXT0xNTMxMjtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7
ZFcoMTUzMTIsayw5Nil9az0oY1szODI5XXwwKS0xfDA7Zz1jW20rOD4+Ml18MDtkb3tpZigoY1tt
KzEyPj4yXXwwKS1nPj4yPj4+MD5rPj4+MCl7bD1jW2crKGs8PDIpPj4yXXwwO2lmKChsfDApPT0w
KXticmVha31kPWw7bz1jW2Y+PjJdfDA7ZHoobyl8MDtvPWNbbD4+Ml18MDtpZihoKXtiWltjW28r
MjQ+PjJdJjEyN10obixkKX1lbHNle2JaW2NbbysyOD4+Ml0mMTI3XShuLGQpfWQ9bjtvPW47bD1h
W29dfDA7aWYoKGwmMSk9PTApe3A9ZCsxfDA7cT1wO3I9cDtzPW4rOHwwfWVsc2V7cD1uKzh8MDtx
PWNbcD4+Ml18MDtyPWQrMXwwO3M9cH1wPWV8MDtkPW4rNHwwO3Q9cTt1PWw7d2hpbGUoMSl7aWYo
KHUmMSk9PTApe3Y9cn1lbHNle3Y9Y1tzPj4yXXwwfWw9dSYyNTU7aWYoKHR8MCk9PSh2KygobCYx
fDApPT0wP2w+Pj4xOmNbZD4+Ml18MCl8MCkpe2JyZWFrfWw9YVt0XXwwO3c9Y1twPj4yXXwwO2Rv
e2lmKCh3fDApIT0wKXt4PXcrMjR8MDt5PWNbeD4+Ml18MDtpZigoeXwwKSE9KGNbdysyOD4+Ml18
MCkpe2NbeD4+Ml09eSsxO2FbeV09bDticmVha31pZigoYl9bY1soY1t3Pj4yXXwwKSs1Mj4+Ml0m
MzFdKHcsbCYyNTUpfDApIT0tMSl7YnJlYWt9Y1twPj4yXT0wfX13aGlsZSgwKTt0PXQrMXwwO3U9
YVtvXXwwfWNbYj4+Ml09Y1twPj4yXTtkUChuKTtpPWo7cmV0dXJufX13aGlsZSgwKTtqPWJPKDQp
fDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnYihhLGIsZCxlLGYpe2E9YXwwO2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MDtnPWk7aT1pKzE2fDA7aD1nfDA7
aj1oO2Nbaj4+Ml09ZjtjW2orND4+Ml09MDtqPWJCKGR8MCl8MDtkPWJDKGF8MCxifDAsZXwwLGh8
MCl8MDtpZigoanwwKT09MCl7aT1nO3JldHVybiBkfDB9YkIoanwwKXwwO2k9ZztyZXR1cm4gZHww
fWZ1bmN0aW9uIGdjKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxK
PTAsSz0wLEw9MDtsPWk7aT1pKzQ4fDA7bT1sfDA7bj1sKzE2fDA7bz1sKzMyfDA7cD1rfDA7az1j
W3A+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW24+PjJdPTE1Njk2O2Nbbis0Pj4yXT0xMjtj
W24rOD4+Ml09MDtkVygxNTY5NixuLDk2KX1uPShjWzM5MjVdfDApLTF8MDtxPWNbays4Pj4yXXww
O2lmKChjW2srMTI+PjJdfDApLXE+PjI+Pj4wPD1uPj4+MCl7cj1iTyg0KXwwO3M9cjtrcShzKTti
bChyfDAsODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+Ml18MDtpZigoa3wwKT09MCl7cj1iTyg0KXww
O3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfXI9aztzPWNbcD4+Ml18MDtpZigoY1szODI4XXww
KSE9LTEpe2NbbT4+Ml09MTUzMTI7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1MzEyLG0s
OTYpfW09KGNbMzgyOV18MCktMXwwO3A9Y1tzKzg+PjJdfDA7aWYoKGNbcysxMj4+Ml18MCktcD4+
Mj4+PjA8PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9cz1jW3Ar
KG08PDIpPj4yXXwwO2lmKChzfDApPT0wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2
LDEzNCl9dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+PjJdJjEyN10obyx0KTt1PW87bT1vO3A9ZFtt
XXwwO2lmKChwJjF8MCk9PTApe3Y9cD4+PjF9ZWxzZXt2PWNbbys0Pj4yXXwwfWRve2lmKCh2fDAp
PT0wKXtwPWNbKGNbaz4+Ml18MCkrMzI+PjJdfDA7Y2FbcCYxNV0ocixiLGYsZyl8MDtjW2o+PjJd
PWcrKGYtYil9ZWxzZXtjW2o+PjJdPWc7cD1hW2JdfDA7c3dpdGNoKHA8PDI0Pj4yNCl7Y2FzZSA0
NTpjYXNlIDQzOntuPWJfW2NbKGNbaz4+Ml18MCkrMjg+PjJdJjMxXShyLHApfDA7cD1jW2o+PjJd
fDA7Y1tqPj4yXT1wKzE7YVtwXT1uO3c9YisxfDA7YnJlYWt9O2RlZmF1bHQ6e3c9Yn19TDE1MzM6
ZG97aWYoKGYtd3wwKT4xKXtpZigoYVt3XXwwKSE9NDgpe3g9dzticmVha31uPXcrMXwwO3N3aXRj
aChhW25dfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PXc7YnJlYWsgTDE1
MzN9fXA9aztxPWJfW2NbKGNbcD4+Ml18MCkrMjg+PjJdJjMxXShyLDQ4KXwwO3k9Y1tqPj4yXXww
O2Nbaj4+Ml09eSsxO2FbeV09cTtxPWJfW2NbKGNbcD4+Ml18MCkrMjg+PjJdJjMxXShyLGFbbl18
MCl8MDtuPWNbaj4+Ml18MDtjW2o+PjJdPW4rMTthW25dPXE7eD13KzJ8MH1lbHNle3g9d319d2hp
bGUoMCk7ZG97aWYoKHh8MCkhPShmfDApKXtxPWYtMXwwO2lmKHg+Pj4wPHE+Pj4wKXt6PXg7QT1x
fWVsc2V7YnJlYWt9ZG97cT1hW3pdfDA7YVt6XT1hW0FdfDA7YVtBXT1xO3o9eisxfDA7QT1BLTF8
MDt9d2hpbGUoej4+PjA8QT4+PjApfX13aGlsZSgwKTtxPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJd
JjEyN10odCl8MDtpZih4Pj4+MDxmPj4+MCl7bj11KzF8MDtwPWs7eT1vKzR8MDtCPW8rOHwwO0M9
MDtEPTA7RT14O3doaWxlKDEpe0Y9KGFbbV0mMSk9PTA7ZG97aWYoKGFbKEY/bjpjW0I+PjJdfDAp
K0R8MF18MCk9PTApe0c9RDtIPUN9ZWxzZXtpZigoQ3wwKSE9KGFbKEY/bjpjW0I+PjJdfDApK0R8
MF18MCkpe0c9RDtIPUM7YnJlYWt9ST1jW2o+PjJdfDA7Y1tqPj4yXT1JKzE7YVtJXT1xO0k9ZFtt
XXwwO0c9KEQ+Pj4wPCgoKEkmMXwwKT09MD9JPj4+MTpjW3k+PjJdfDApLTF8MCk+Pj4wKStEfDA7
SD0wfX13aGlsZSgwKTtGPWJfW2NbKGNbcD4+Ml18MCkrMjg+PjJdJjMxXShyLGFbRV18MCl8MDtJ
PWNbaj4+Ml18MDtjW2o+PjJdPUkrMTthW0ldPUY7Rj1FKzF8MDtpZihGPj4+MDxmPj4+MCl7Qz1I
KzF8MDtEPUc7RT1GfWVsc2V7YnJlYWt9fX1FPWcrKHgtYil8MDtEPWNbaj4+Ml18MDtpZigoRXww
KT09KER8MCkpe2JyZWFrfUM9RC0xfDA7aWYoRT4+PjA8Qz4+PjApe0o9RTtLPUN9ZWxzZXticmVh
a31kb3tDPWFbSl18MDthW0pdPWFbS118MDthW0tdPUM7Sj1KKzF8MDtLPUstMXwwO313aGlsZShK
Pj4+MDxLPj4+MCl9fXdoaWxlKDApO2lmKChlfDApPT0oZnwwKSl7TD1jW2o+PjJdfDA7Y1toPj4y
XT1MO2RQKG8pO2k9bDtyZXR1cm59ZWxzZXtMPWcrKGUtYil8MDtjW2g+PjJdPUw7ZFAobyk7aT1s
O3JldHVybn19ZnVuY3Rpb24gZ2QoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsxMTJ8MDtrPWU7ZT1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7bj1kKzgwfDA7
bz1kKzg4fDA7cD1kKzk2fDA7cT1kKzEwNHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7cj1rO2s9
cisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PWt9ZWxzZXthW2td
PTQzO3U9cisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2
XT0xMDg7YVt2KzF8MF09MTA4O3U9disyfDA7TDE1NzQ6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA2
NDp7YVt1XT0xMTE7YnJlYWt9O2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2Jy
ZWFrIEwxNTc0fWVsc2V7YVt1XT04ODticmVhayBMMTU3NH1icmVha307ZGVmYXVsdDp7YVt1XT0x
MDB9fX13aGlsZSgwKTt1PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwyMixj
WzI5NThdfDAsciwocj1pLGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09aixyKXwwKXwwO2k9
cjtyPWwrdHwwO0wxNTg3OmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2OntqPWFbdV18
MDtzd2l0Y2goajw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9bCsxfDA7YnJlYWsgTDE1ODc7
YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmo8PDI0Pj4yND09NDgpKXt4PTEyODY7YnJl
YWsgTDE1ODd9c3dpdGNoKGFbbCsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZh
dWx0Ont4PTEyODY7YnJlYWsgTDE1ODd9fXc9bCsyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9cjticmVh
a307ZGVmYXVsdDp7eD0xMjg2fX19d2hpbGUoMCk7aWYoKHh8MCk9PTEyODYpe3c9dX14PW18MDtl
aihwLGYpO2djKHUsdyxyLHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+PjJdPWNbZT4+Ml07
ZjkoYixxLHgsY1tuPj4yXXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2Uo
YixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtk
PWk7aT1pKzgwfDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtq
PWR8MDtrPWQrOHwwO2w9ZCsyNHwwO209ZCs0OHwwO249ZCs1NnwwO289ZCs2NHwwO3A9ZCs3Mnww
O3E9anwwO2FbcV09YVsyMzg0XXwwO2FbcSsxfDBdPWFbMjM4NXwwXXwwO2FbcSsyfDBdPWFbMjM4
NnwwXXwwO2FbcSszfDBdPWFbMjM4N3wwXXwwO2FbcSs0fDBdPWFbMjM4OHwwXXwwO2FbcSs1fDBd
PWFbMjM4OXwwXXwwO3I9aisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0w
KXt1PXJ9ZWxzZXthW3JdPTQzO3U9aisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3Vd
PTM1O3Y9dSsxfDB9YVt2XT0xMDg7dT12KzF8MDtMMTYwNTpkb3tzd2l0Y2godCY3NHwwKXtjYXNl
IDY0OnthW3VdPTExMTticmVha307Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7
YnJlYWsgTDE2MDV9ZWxzZXthW3VdPTg4O2JyZWFrIEwxNjA1fWJyZWFrfTtkZWZhdWx0OnthW3Vd
PTExN319fXdoaWxlKDApO3U9a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0
KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDEy
LGNbMjk1OF18MCxxLChxPWksaT1pKzh8MCxjW3E+PjJdPWgscSl8MCl8MDtpPXE7cT1rK3R8MDtM
MTYxODpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAzMjp7dz1xO2JyZWFrfTtjYXNlIDE2
OntoPWFbdV18MDtzd2l0Y2goaDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJl
YWsgTDE2MTg7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4
PTEzMTE7YnJlYWsgTDE2MTh9c3dpdGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2Jy
ZWFrfTtkZWZhdWx0Ont4PTEzMTE7YnJlYWsgTDE2MTh9fXc9aysyfDA7YnJlYWt9O2RlZmF1bHQ6
e3g9MTMxMX19fXdoaWxlKDApO2lmKCh4fDApPT0xMzExKXt3PXV9eD1sfDA7ZWoobyxmKTtnYyh1
LHcscSx4LG0sbixvKTtkeihjW28+PjJdfDApfDA7Y1twPj4yXT1jW2U+PjJdO2Y5KGIscCx4LGNb
bT4+Ml18MCxjW24+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdmKGIsZCxlLGYsZyxo
LGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkr
MTEyfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDts
PWQrOHwwO209ZCszMnwwO249ZCs4MHwwO289ZCs4OHwwO3A9ZCs5NnwwO3E9ZCsxMDR8MDtjW2s+
PjJdPTM3O2Nbays0Pj4yXT0wO3I9aztrPXIrMXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQm
MjA0OHwwKT09MCl7dT1rfWVsc2V7YVtrXT00Mzt1PXIrMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11
fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4O2FbdisxfDBdPTEwODt1PXYrMnwwO0wxNjM2
OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2Jy
ZWFrIEwxNjM2fWVsc2V7YVt1XT04ODticmVhayBMMTYzNn1icmVha307Y2FzZSA2NDp7YVt1XT0x
MTE7YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTE3fX19d2hpbGUoMCk7dT1sfDA7ZG97aWYoKGFbMTYy
NjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCww
KXwwfX13aGlsZSgwKTt0PWdiKHUsMjMsY1syOTU4XXwwLHIsKHI9aSxpPWkrMTZ8MCxjW3I+PjJd
PWgsY1tyKzg+PjJdPWoscil8MCl8MDtpPXI7cj1sK3R8MDtMMTY0OTpkb3tzd2l0Y2goY1tzPj4y
XSYxNzZ8MCl7Y2FzZSAxNjp7aj1hW3VdfDA7c3dpdGNoKGo8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNl
IDQzOnt3PWwrMXwwO2JyZWFrIEwxNjQ5O2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZq
PDwyND4+MjQ9PTQ4KSl7eD0xMzM2O2JyZWFrIEwxNjQ5fXN3aXRjaChhW2wrMXwwXXwwKXtjYXNl
IDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xMzM2O2JyZWFrIEwxNjQ5fX13PWwrMnww
O2JyZWFrfTtjYXNlIDMyOnt3PXI7YnJlYWt9O2RlZmF1bHQ6e3g9MTMzNn19fXdoaWxlKDApO2lm
KCh4fDApPT0xMzM2KXt3PXV9eD1tfDA7ZWoocCxmKTtnYyh1LHcscix4LG4sbyxwKTtkeihjW3A+
PjJdfDApfDA7Y1txPj4yXT1jW2U+PjJdO2Y5KGIscSx4LGNbbj4+Ml18MCxjW28+PjJdfDAsZixn
KTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdnKGIsZCxlLGYsZyxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtqPStqO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wO2Q9aTtpPWkrMTUyfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+
Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCs0MHwwO249ZCs0OHwwO289ZCsxMTJ8MDtwPWQr
MTIwfDA7cT1kKzEyOHwwO3I9ZCsxMzZ8MDtzPWQrMTQ0fDA7Y1trPj4yXT0zNztjW2srND4+Ml09
MDt0PWs7az10KzF8MDt1PWYrNHwwO3Y9Y1t1Pj4yXXwwO2lmKCh2JjIwNDh8MCk9PTApe3c9a31l
bHNle2Fba109NDM7dz10KzJ8MH1pZigodiYxMDI0fDApPT0wKXt4PXd9ZWxzZXthW3ddPTM1O3g9
dysxfDB9dz12JjI2MDtrPXY+Pj4xNDtMMTY2Nzpkb3tpZigod3wwKT09MjYwKXtpZigoayYxfDAp
PT0wKXthW3hdPTk3O3k9MDticmVha31lbHNle2FbeF09NjU7eT0wO2JyZWFrfX1lbHNle2FbeF09
NDY7dj14KzJ8MDthW3grMXwwXT00Mjtzd2l0Y2god3wwKXtjYXNlIDQ6e2lmKChrJjF8MCk9PTAp
e2Fbdl09MTAyO3k9MTticmVhayBMMTY2N31lbHNle2Fbdl09NzA7eT0xO2JyZWFrIEwxNjY3fWJy
ZWFrfTtjYXNlIDI1Njp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDE7eT0xO2JyZWFrIEwxNjY3fWVs
c2V7YVt2XT02OTt5PTE7YnJlYWsgTDE2Njd9YnJlYWt9O2RlZmF1bHQ6e2lmKChrJjF8MCk9PTAp
e2Fbdl09MTAzO3k9MTticmVhayBMMTY2N31lbHNle2Fbdl09NzE7eT0xO2JyZWFrIEwxNjY3fX19
fX13aGlsZSgwKTtrPWx8MDtjW20+PjJdPWs7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMo
MTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWNb
Mjk1OF18MDtpZih5KXt3PWdiKGssMzAsbCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+
Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7QT13fWVsc2V7dz1nYihrLDMwLGwsdCwoej1pLGk9
aSs4fDAsaFt6Pj4zXT1qLHopfDApfDA7aT16O0E9d31kb3tpZigoQXwwKT4yOSl7dz0oYVsxNjI2
NF18MCk9PTA7aWYoeSl7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1naChtLGNbMjk1OF18MCx0LCh6PWksaT1pKzE2
fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7Qj1sfWVsc2V7ZG97
aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19
d2hpbGUoMCk7dz1naChtLGNbMjk1OF18MCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+
Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7Qj13fXc9Y1ttPj4yXXwwO2lmKCh3fDApIT0wKXtD
PUI7RD13O0U9dzticmVha31rWCgpO3c9Y1ttPj4yXXwwO0M9QjtEPXc7RT13fWVsc2V7Qz1BO0Q9
MDtFPWNbbT4+Ml18MH19d2hpbGUoMCk7QT1FK0N8MDtMMTcxNjpkb3tzd2l0Y2goY1t1Pj4yXSYx
NzZ8MCl7Y2FzZSAxNjp7Qj1hW0VdfDA7c3dpdGNoKEI8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQz
OntGPUUrMXwwO2JyZWFrIEwxNzE2O2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKEN8MCk+MSZCPDwy
ND4+MjQ9PTQ4KSl7Rz0xMzkyO2JyZWFrIEwxNzE2fXN3aXRjaChhW0UrMXwwXXwwKXtjYXNlIDEy
MDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7Rz0xMzkyO2JyZWFrIEwxNzE2fX1GPUUrMnwwO2Jy
ZWFrfTtjYXNlIDMyOntGPUE7YnJlYWt9O2RlZmF1bHQ6e0c9MTM5Mn19fXdoaWxlKDApO2lmKChH
fDApPT0xMzkyKXtGPUV9ZG97aWYoKEV8MCk9PShrfDApKXtIPW58MDtJPTA7Sj1rfWVsc2V7Rz1r
SihDPDwxKXwwO2lmKChHfDApIT0wKXtIPUc7ST1HO0o9RTticmVha31rWCgpO0g9MDtJPTA7Sj1j
W20+PjJdfDB9fXdoaWxlKDApO2VqKHEsZik7Z2ooSixGLEEsSCxvLHAscSk7ZHooY1txPj4yXXww
KXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4yXTtmOShyLHMsSCxjW28+PjJdfDAsY1twPj4yXXwwLGYs
Zyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09ZztpZigoSXwwKSE9MCl7a0soSSl9aWYo
KER8MCk9PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3JldHVybn1mdW5jdGlvbiBnaChhLGIsZCxl
KXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7Zj1pO2k9aSsxNnwwO2c9
ZnwwO2g9ZztjW2g+PjJdPWU7Y1toKzQ+PjJdPTA7aD1iQihifDApfDA7Yj1iUShhfDAsZHwwLGd8
MCl8MDtpZigoaHwwKT09MCl7aT1mO3JldHVybiBifDB9YkIoaHwwKXwwO2k9ZjtyZXR1cm4gYnww
fWZ1bmN0aW9uIGdpKGIsZCxlLGYsZyxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtq
PStqO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2Q9
aTtpPWkrMTUyfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtr
PWR8MDtsPWQrOHwwO209ZCs0MHwwO249ZCs0OHwwO289ZCsxMTJ8MDtwPWQrMTIwfDA7cT1kKzEy
OHwwO3I9ZCsxMzZ8MDtzPWQrMTQ0fDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDt0PWs7az10KzF8
MDt1PWYrNHwwO3Y9Y1t1Pj4yXXwwO2lmKCh2JjIwNDh8MCk9PTApe3c9a31lbHNle2Fba109NDM7
dz10KzJ8MH1pZigodiYxMDI0fDApPT0wKXt4PXd9ZWxzZXthW3ddPTM1O3g9dysxfDB9dz12JjI2
MDtrPXY+Pj4xNDtMMTc1NDpkb3tpZigod3wwKT09MjYwKXthW3hdPTc2O3Y9eCsxfDA7aWYoKGsm
MXwwKT09MCl7YVt2XT05Nzt5PTA7YnJlYWt9ZWxzZXthW3ZdPTY1O3k9MDticmVha319ZWxzZXth
W3hdPTQ2O2FbeCsxfDBdPTQyO2FbeCsyfDBdPTc2O3Y9eCszfDA7c3dpdGNoKHd8MCl7Y2FzZSA0
OntpZigoayYxfDApPT0wKXthW3ZdPTEwMjt5PTE7YnJlYWsgTDE3NTR9ZWxzZXthW3ZdPTcwO3k9
MTticmVhayBMMTc1NH1icmVha307Y2FzZSAyNTY6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAxO3k9
MTticmVhayBMMTc1NH1lbHNle2Fbdl09Njk7eT0xO2JyZWFrIEwxNzU0fWJyZWFrfTtkZWZhdWx0
OntpZigoayYxfDApPT0wKXthW3ZdPTEwMzt5PTE7YnJlYWsgTDE3NTR9ZWxzZXthW3ZdPTcxO3k9
MTticmVhayBMMTc1NH19fX19d2hpbGUoMCk7az1sfDA7Y1ttPj4yXT1rO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7bD1jWzI5NThdfDA7aWYoeSl7dz1nYihrLDMwLGwsdCwoej1pLGk9aSsxNnww
LGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0E9d31lbHNle3c9Z2Io
aywzMCxsLHQsKHo9aSxpPWkrOHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtBPXd9ZG97aWYoKEF8
MCk+Mjkpe3c9KGFbMTYyNjRdfDApPT0wO2lmKHkpe2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9
PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Z2gobSxjWzI5NThd
fDAsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7
aT16O0I9bH1lbHNle2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09
YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3c9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSs4fDAs
aFt6Pj4zXT1qLHopfDApfDA7aT16O0I9d313PWNbbT4+Ml18MDtpZigod3wwKSE9MCl7Qz1CO0Q9
dztFPXc7YnJlYWt9a1goKTt3PWNbbT4+Ml18MDtDPUI7RD13O0U9d31lbHNle0M9QTtEPTA7RT1j
W20+PjJdfDB9fXdoaWxlKDApO0E9RStDfDA7TDE4MDM6ZG97c3dpdGNoKGNbdT4+Ml0mMTc2fDAp
e2Nhc2UgMzI6e0Y9QTticmVha307Y2FzZSAxNjp7Qj1hW0VdfDA7c3dpdGNoKEI8PDI0Pj4yNCl7
Y2FzZSA0NTpjYXNlIDQzOntGPUUrMXwwO2JyZWFrIEwxODAzO2JyZWFrfTtkZWZhdWx0Ont9fWlm
KCEoKEN8MCk+MSZCPDwyND4+MjQ9PTQ4KSl7Rz0xNDc3O2JyZWFrIEwxODAzfXN3aXRjaChhW0Ur
MXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7Rz0xNDc3O2JyZWFrIEwx
ODAzfX1GPUUrMnwwO2JyZWFrfTtkZWZhdWx0OntHPTE0Nzd9fX13aGlsZSgwKTtpZigoR3wwKT09
MTQ3Nyl7Rj1FfWRve2lmKChFfDApPT0oa3wwKSl7SD1ufDA7ST0wO0o9a31lbHNle0c9a0ooQzw8
MSl8MDtpZigoR3wwKSE9MCl7SD1HO0k9RztKPUU7YnJlYWt9a1goKTtIPTA7ST0wO0o9Y1ttPj4y
XXwwfX13aGlsZSgwKTtlaihxLGYpO2dqKEosRixBLEgsbyxwLHEpO2R6KGNbcT4+Ml18MCl8MDtx
PWV8MDtjW3M+PjJdPWNbcT4+Ml07ZjkocixzLEgsY1tvPj4yXXwwLGNbcD4+Ml18MCxmLGcpO2c9
Y1tyPj4yXXwwO2NbcT4+Ml09ZztjW2I+PjJdPWc7aWYoKEl8MCkhPTApe2tLKEkpfWlmKChEfDAp
PT0wKXtpPWQ7cmV0dXJufWtLKEQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2ooYixlLGYsZyxoLGos
ayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxC
PTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTA7bD1pO2k9
aSs0OHwwO209bHwwO249bCsxNnwwO289bCszMnwwO3A9a3wwO2s9Y1twPj4yXXwwO2lmKChjWzM5
MjRdfDApIT0tMSl7Y1tuPj4yXT0xNTY5NjtjW24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7ZFcoMTU2
OTYsbiw5Nil9bj0oY1szOTI1XXwwKS0xfDA7cT1jW2srOD4+Ml18MDtpZigoY1trKzEyPj4yXXww
KS1xPj4yPj4+MDw9bj4+PjApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1r
PWNbcSsobjw8Mik+PjJdfDA7aWYoKGt8MCk9PTApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7Ymwocnww
LDgxNzYsMTM0KX1yPWs7cz1jW3A+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW20+PjJdPTE1
MzEyO2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTMxMixtLDk2KX1tPShjWzM4MjldfDAp
LTF8MDtwPWNbcys4Pj4yXXwwO2lmKChjW3MrMTI+PjJdfDApLXA+PjI+Pj4wPD1tPj4+MCl7dD1i
Tyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXM9Y1twKyhtPDwyKT4+Ml18MDtpZigo
c3wwKT09MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXQ9cztiWltjWyhj
W3M+PjJdfDApKzIwPj4yXSYxMjddKG8sdCk7Y1tqPj4yXT1nO3U9YVtiXXwwO3N3aXRjaCh1PDwy
ND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7bT1iX1tjWyhjW2s+PjJdfDApKzI4Pj4yXSYzMV0ocix1
KXwwO3U9Y1tqPj4yXXwwO2Nbaj4+Ml09dSsxO2FbdV09bTt2PWIrMXwwO2JyZWFrfTtkZWZhdWx0
Ont2PWJ9fW09ZjtMMTg1MTpkb3tpZigobS12fDApPjEpe2lmKChhW3ZdfDApIT00OCl7dz12O3g9
MTUzMjticmVha311PXYrMXwwO3N3aXRjaChhW3VdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFr
fTtkZWZhdWx0Ont3PXY7eD0xNTMyO2JyZWFrIEwxODUxfX1wPWs7bj1iX1tjWyhjW3A+PjJdfDAp
KzI4Pj4yXSYzMV0ociw0OCl8MDtxPWNbaj4+Ml18MDtjW2o+PjJdPXErMTthW3FdPW47bj12KzJ8
MDtxPWJfW2NbKGNbcD4+Ml18MCkrMjg+PjJdJjMxXShyLGFbdV18MCl8MDt1PWNbaj4+Ml18MDtj
W2o+PjJdPXUrMTthW3VdPXE7cT1uO3doaWxlKDEpe2lmKHE+Pj4wPj1mPj4+MCl7eT1xO3o9bjti
cmVhayBMMTg1MX11PWFbcV18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChhMyh1PDwy
ND4+MjR8MCxjWzI5NThdfDApfDApPT0wKXt5PXE7ej1uO2JyZWFrfWVsc2V7cT1xKzF8MH19fWVs
c2V7dz12O3g9MTUzMn19d2hpbGUoMCk7TDE4NjY6ZG97aWYoKHh8MCk9PTE1MzIpe3doaWxlKDEp
e3g9MDtpZih3Pj4+MD49Zj4+PjApe3k9dzt6PXY7YnJlYWsgTDE4NjZ9cT1hW3ddfDA7ZG97aWYo
KGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEs
MTM0NCwwKXwwfX13aGlsZSgwKTtpZigoYkgocTw8MjQ+PjI0fDAsY1syOTU4XXwwKXwwKT09MCl7
eT13O3o9djticmVha31lbHNle3c9dysxfDA7eD0xNTMyfX19fXdoaWxlKDApO3g9bzt3PW87dj1k
W3ddfDA7aWYoKHYmMXwwKT09MCl7QT12Pj4+MX1lbHNle0E9Y1tvKzQ+PjJdfDB9ZG97aWYoKEF8
MCk9PTApe3Y9Y1tqPj4yXXwwO3U9Y1soY1trPj4yXXwwKSszMj4+Ml18MDtjYVt1JjE1XShyLHos
eSx2KXwwO2Nbaj4+Ml09KGNbaj4+Ml18MCkrKHkteil9ZWxzZXtkb3tpZigoenwwKSE9KHl8MCkp
e3Y9eS0xfDA7aWYoej4+PjA8dj4+PjApe0I9ejtDPXZ9ZWxzZXticmVha31kb3t2PWFbQl18MDth
W0JdPWFbQ118MDthW0NdPXY7Qj1CKzF8MDtDPUMtMXwwO313aGlsZShCPj4+MDxDPj4+MCl9fXdo
aWxlKDApO3E9YjBbY1soY1tzPj4yXXwwKSsxNj4+Ml0mMTI3XSh0KXwwO2lmKHo+Pj4wPHk+Pj4w
KXt2PXgrMXwwO3U9bys0fDA7bj1vKzh8MDtwPWs7RD0wO0U9MDtGPXo7d2hpbGUoMSl7Rz0oYVt3
XSYxKT09MDtkb3tpZigoYVsoRz92OmNbbj4+Ml18MCkrRXwwXXwwKT4wKXtpZigoRHwwKSE9KGFb
KEc/djpjW24+PjJdfDApK0V8MF18MCkpe0g9RTtJPUQ7YnJlYWt9Sj1jW2o+PjJdfDA7Y1tqPj4y
XT1KKzE7YVtKXT1xO0o9ZFt3XXwwO0g9KEU+Pj4wPCgoKEomMXwwKT09MD9KPj4+MTpjW3U+PjJd
fDApLTF8MCk+Pj4wKStFfDA7ST0wfWVsc2V7SD1FO0k9RH19d2hpbGUoMCk7Rz1iX1tjWyhjW3A+
PjJdfDApKzI4Pj4yXSYzMV0ocixhW0ZdfDApfDA7Sj1jW2o+PjJdfDA7Y1tqPj4yXT1KKzE7YVtK
XT1HO0c9RisxfDA7aWYoRz4+PjA8eT4+PjApe0Q9SSsxfDA7RT1IO0Y9R31lbHNle2JyZWFrfX19
Rj1nKyh6LWIpfDA7RT1jW2o+PjJdfDA7aWYoKEZ8MCk9PShFfDApKXticmVha31EPUUtMXwwO2lm
KEY+Pj4wPEQ+Pj4wKXtLPUY7TD1EfWVsc2V7YnJlYWt9ZG97RD1hW0tdfDA7YVtLXT1hW0xdfDA7
YVtMXT1EO0s9SysxfDA7TD1MLTF8MDt9d2hpbGUoSz4+PjA8TD4+PjApfX13aGlsZSgwKTtMMTkw
NTpkb3tpZih5Pj4+MDxmPj4+MCl7TD1rO0s9eTt3aGlsZSgxKXt6PWFbS118MDtpZih6PDwyND4+
MjQ9PTQ2KXticmVha31IPWJfW2NbKGNbTD4+Ml18MCkrMjg+PjJdJjMxXShyLHopfDA7ej1jW2o+
PjJdfDA7Y1tqPj4yXT16KzE7YVt6XT1IO0g9SysxfDA7aWYoSD4+PjA8Zj4+PjApe0s9SH1lbHNl
e009SDticmVhayBMMTkwNX19TD1iMFtjWyhjW3M+PjJdfDApKzEyPj4yXSYxMjddKHQpfDA7SD1j
W2o+PjJdfDA7Y1tqPj4yXT1IKzE7YVtIXT1MO009SysxfDB9ZWxzZXtNPXl9fXdoaWxlKDApO2Nh
W2NbKGNbaz4+Ml18MCkrMzI+PjJdJjE1XShyLE0sZixjW2o+PjJdfDApfDA7cj0oY1tqPj4yXXww
KSsobS1NKXwwO2Nbaj4+Ml09cjtpZigoZXwwKT09KGZ8MCkpe049cjtjW2g+PjJdPU47ZFAobyk7
aT1sO3JldHVybn1OPWcrKGUtYil8MDtjW2g+PjJdPU47ZFAobyk7aT1sO3JldHVybn1mdW5jdGlv
biBnayhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBnbChhKXthPWF8MDtk
ZShhfDApO3JldHVybn1mdW5jdGlvbiBnbShiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrMTQ0fDA7aj1lO2U9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWR8MDtrPWQrOHwwO2w9ZCsyNHwwO209ZCsxMTJ8
MDtuPWQrMTIwfDA7bz1kKzEyOHwwO3A9ZCsxMzZ8MDtxPWp8MDthW3FdPWFbMjM4NF18MDthW3Er
MXwwXT1hWzIzODV8MF18MDthW3ErMnwwXT1hWzIzODZ8MF18MDthW3ErM3wwXT1hWzIzODd8MF18
MDthW3ErNHwwXT1hWzIzODh8MF18MDthW3ErNXwwXT1hWzIzODl8MF18MDtyPWorMXwwO3M9Zis0
fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1yfWVsc2V7YVtyXT00Mzt1PWorMnww
fWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4O3U9disx
fDA7TDE5Mjg6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9O2Nhc2Ug
ODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwxOTI4fWVsc2V7YVt1XT04ODti
cmVhayBMMTkyOH1icmVha307ZGVmYXVsdDp7YVt1XT0xMDB9fX13aGlsZSgwKTt1PWt8MDtkb3tp
ZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMo
MSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwxMixjWzI5NThdfDAscSwocT1pLGk9aSs4fDAs
Y1txPj4yXT1oLHEpfDApfDA7aT1xO3E9ayt0fDA7TDE5NDE6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2
fDApe2Nhc2UgMzI6e3c9cTticmVha307Y2FzZSAxNjp7aD1hW3VdfDA7c3dpdGNoKGg8PDI0Pj4y
NCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWsrMXwwO2JyZWFrIEwxOTQxO2JyZWFrfTtkZWZhdWx0Ont9
fWlmKCEoKHR8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7eD0xNjAwO2JyZWFrIEwxOTQxfXN3aXRjaChh
W2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xNjAwO2JyZWFr
IEwxOTQxfX13PWsrMnwwO2JyZWFrfTtkZWZhdWx0Ont4PTE2MDB9fX13aGlsZSgwKTtpZigoeHww
KT09MTYwMCl7dz11fXg9bHwwO2VqKG8sZik7Z3AodSx3LHEseCxtLG4sbyk7ZHooY1tvPj4yXXww
KXwwO2NbcD4+Ml09Y1tlPj4yXTtncShiLHAseCxjW20+PjJdfDAsY1tuPj4yXXwwLGYsZyk7aT1k
O3JldHVybn1mdW5jdGlvbiBnbihiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2Q9aTtpPWkrMTA0fDA7aj1lO2U9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWR8MDtrPWQrMjR8MDtsPWQrNDh8MDtt
PWQrODh8MDtuPWQrOTZ8MDtvPWQrMTZ8MDthW29dPWFbMjM5Ml18MDthW28rMXwwXT1hWzIzOTN8
MF18MDthW28rMnwwXT1hWzIzOTR8MF18MDthW28rM3wwXT1hWzIzOTV8MF18MDthW28rNHwwXT1h
WzIzOTZ8MF18MDthW28rNXwwXT1hWzIzOTd8MF18MDtwPWt8MDtkb3tpZigoYVsxNjI2NF18MCk9
PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO3E9Z2IocCwyMCxjWzI5NThdfDAsbywobz1pLGk9aSs4fDAsY1tvPj4yXT1oLG8pfDAp
fDA7aT1vO289aytxfDA7TDE5NTg6ZG97c3dpdGNoKGNbZis0Pj4yXSYxNzZ8MCl7Y2FzZSAxNjp7
aD1hW3BdfDA7c3dpdGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntyPWsrMXwwO2JyZWFr
IEwxOTU4O2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHF8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7cz0x
NjE1O2JyZWFrIEwxOTU4fXN3aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVh
a307ZGVmYXVsdDp7cz0xNjE1O2JyZWFrIEwxOTU4fX1yPWsrMnwwO2JyZWFrfTtjYXNlIDMyOnty
PW87YnJlYWt9O2RlZmF1bHQ6e3M9MTYxNX19fXdoaWxlKDApO2lmKChzfDApPT0xNjE1KXtyPXB9
ZWoobSxmKTtzPW18MDttPWNbcz4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbaj4+Ml09MTU2
OTY7Y1tqKzQ+PjJdPTEyO2Nbais4Pj4yXT0wO2RXKDE1Njk2LGosOTYpfWo9KGNbMzkyNV18MCkt
MXwwO2g9Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktaD4+Mj4+PjA+aj4+PjApe3Q9
Y1toKyhqPDwyKT4+Ml18MDtpZigodHwwKT09MCl7YnJlYWt9dT10O3Y9Y1tzPj4yXXwwO2R6KHYp
fDA7dj1sfDA7dz1jWyhjW3Q+PjJdfDApKzMyPj4yXXwwO2NhW3cmMTVdKHUscCxvLHYpfDA7dT1s
K3F8MDtpZigocnwwKT09KG98MCkpe3g9dTt5PWV8MDt6PWNbeT4+Ml18MDtBPW58MDtjW0E+PjJd
PXo7ZjkoYixuLHYseCx1LGYsZyk7aT1kO3JldHVybn14PWwrKHItayl8MDt5PWV8MDt6PWNbeT4+
Ml18MDtBPW58MDtjW0E+PjJdPXo7ZjkoYixuLHYseCx1LGYsZyk7aT1kO3JldHVybn19d2hpbGUo
MCk7ZD1iTyg0KXwwO2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ28oYixkLGUsZixn
LGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wO2o9
aTtpPWkrNDh8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9
anwwO2w9aisxNnwwO209aisyNHwwO249aiszMnwwO2lmKChjW2YrND4+Ml0mMXwwKT09MCl7bz1j
WyhjW2Q+PjJdfDApKzI0Pj4yXXwwO2NbbD4+Ml09Y1tlPj4yXTtiOVtvJjMxXShiLGQsbCxmLGcs
aCYxKTtpPWo7cmV0dXJufWVqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzgyNl18MCkh
PS0xKXtjW2s+PjJdPTE1MzA0O2Nbays0Pj4yXT0xMjtjW2srOD4+Ml09MDtkVygxNTMwNCxrLDk2
KX1rPShjWzM4MjddfDApLTF8MDtnPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLWc+
PjI+Pj4wPms+Pj4wKXtsPWNbZysoazw8Mik+PjJdfDA7aWYoKGx8MCk9PTApe2JyZWFrfWQ9bDtv
PWNbZj4+Ml18MDtkeihvKXwwO289Y1tsPj4yXXwwO2lmKGgpe2JaW2NbbysyND4+Ml0mMTI3XShu
LGQpfWVsc2V7YlpbY1tvKzI4Pj4yXSYxMjddKG4sZCl9ZD1uO289YVtkXXwwO2lmKChvJjEpPT0w
KXtsPW4rNHwwO3A9bDtxPWw7cj1uKzh8MH1lbHNle2w9bis4fDA7cD1jW2w+PjJdfDA7cT1uKzR8
MDtyPWx9bD1lfDA7cz1wO3Q9bzt3aGlsZSgxKXtpZigodCYxKT09MCl7dT1xfWVsc2V7dT1jW3I+
PjJdfDB9bz10JjI1NTtpZigobyYxfDApPT0wKXt2PW8+Pj4xfWVsc2V7dj1jW3E+PjJdfDB9aWYo
KHN8MCk9PSh1Kyh2PDwyKXwwKSl7YnJlYWt9bz1jW3M+PjJdfDA7dz1jW2w+PjJdfDA7ZG97aWYo
KHd8MCkhPTApe3g9dysyNHwwO3k9Y1t4Pj4yXXwwO2lmKCh5fDApPT0oY1t3KzI4Pj4yXXwwKSl7
ej1iX1tjWyhjW3c+PjJdfDApKzUyPj4yXSYzMV0odyxvKXwwfWVsc2V7Y1t4Pj4yXT15KzQ7Y1t5
Pj4yXT1vO3o9b31pZigoenwwKSE9LTEpe2JyZWFrfWNbbD4+Ml09MH19d2hpbGUoMCk7cz1zKzR8
MDt0PWFbZF18MH1jW2I+PjJdPWNbbD4+Ml07ZWUobik7aT1qO3JldHVybn19d2hpbGUoMCk7aj1i
Tyg0KXwwO2txKGopO2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ3AoYixlLGYsZyxoLGosayl7
Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wO2w9aTtpPWkrNDh8MDttPWx8
MDtuPWwrMTZ8MDtvPWwrMzJ8MDtwPWt8MDtrPWNbcD4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEp
e2Nbbj4+Ml09MTU2ODg7Y1tuKzQ+PjJdPTEyO2Nbbis4Pj4yXT0wO2RXKDE1Njg4LG4sOTYpfW49
KGNbMzkyM118MCktMXwwO3E9Y1trKzg+PjJdfDA7aWYoKGNbaysxMj4+Ml18MCktcT4+Mj4+PjA8
PW4+Pj4wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9az1jW3ErKG48PDIp
Pj4yXXwwO2lmKChrfDApPT0wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9
cj1rO3M9Y1twPj4yXXwwO2lmKChjWzM4MjZdfDApIT0tMSl7Y1ttPj4yXT0xNTMwNDtjW20rND4+
Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTUzMDQsbSw5Nil9bT0oY1szODI3XXwwKS0xfDA7cD1jW3Mr
OD4+Ml18MDtpZigoY1tzKzEyPj4yXXwwKS1wPj4yPj4+MDw9bT4+PjApe3Q9Yk8oNCl8MDt1PXQ7
a3EodSk7YmwodHwwLDgxNzYsMTM0KX1zPWNbcCsobTw8Mik+PjJdfDA7aWYoKHN8MCk9PTApe3Q9
Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX10PXM7YlpbY1soY1tzPj4yXXwwKSsy
MD4+Ml0mMTI3XShvLHQpO3U9bzttPW87cD1kW21dfDA7aWYoKHAmMXwwKT09MCl7dj1wPj4+MX1l
bHNle3Y9Y1tvKzQ+PjJdfDB9ZG97aWYoKHZ8MCk9PTApe3A9Y1soY1trPj4yXXwwKSs0OD4+Ml18
MDtjYVtwJjE1XShyLGIsZixnKXwwO2Nbaj4+Ml09ZysoZi1iPDwyKX1lbHNle2Nbaj4+Ml09Zztw
PWFbYl18MDtzd2l0Y2gocDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e249Yl9bY1soY1trPj4y
XXwwKSs0ND4+Ml0mMzFdKHIscCl8MDtwPWNbaj4+Ml18MDtjW2o+PjJdPXArNDtjW3A+PjJdPW47
dz1iKzF8MDticmVha307ZGVmYXVsdDp7dz1ifX1MMjA1MDpkb3tpZigoZi13fDApPjEpe2lmKChh
W3ddfDApIT00OCl7eD13O2JyZWFrfW49dysxfDA7c3dpdGNoKGFbbl18MCl7Y2FzZSAxMjA6Y2Fz
ZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9dzticmVhayBMMjA1MH19cD1rO3E9Yl9bY1soY1twPj4y
XXwwKSs0ND4+Ml0mMzFdKHIsNDgpfDA7eT1jW2o+PjJdfDA7Y1tqPj4yXT15KzQ7Y1t5Pj4yXT1x
O3E9Yl9bY1soY1twPj4yXXwwKSs0ND4+Ml0mMzFdKHIsYVtuXXwwKXwwO249Y1tqPj4yXXwwO2Nb
aj4+Ml09bis0O2Nbbj4+Ml09cTt4PXcrMnwwfWVsc2V7eD13fX13aGlsZSgwKTtkb3tpZigoeHww
KSE9KGZ8MCkpe3E9Zi0xfDA7aWYoeD4+PjA8cT4+PjApe3o9eDtBPXF9ZWxzZXticmVha31kb3tx
PWFbel18MDthW3pdPWFbQV18MDthW0FdPXE7ej16KzF8MDtBPUEtMXwwO313aGlsZSh6Pj4+MDxB
Pj4+MCl9fXdoaWxlKDApO3E9YjBbY1soY1tzPj4yXXwwKSsxNj4+Ml0mMTI3XSh0KXwwO2lmKHg+
Pj4wPGY+Pj4wKXtuPXUrMXwwO3A9azt5PW8rNHwwO0I9bys4fDA7Qz0wO0Q9MDtFPXg7d2hpbGUo
MSl7Rj0oYVttXSYxKT09MDtkb3tpZigoYVsoRj9uOmNbQj4+Ml18MCkrRHwwXXwwKT09MCl7Rz1E
O0g9Q31lbHNle2lmKChDfDApIT0oYVsoRj9uOmNbQj4+Ml18MCkrRHwwXXwwKSl7Rz1EO0g9Qzti
cmVha31JPWNbaj4+Ml18MDtjW2o+PjJdPUkrNDtjW0k+PjJdPXE7ST1kW21dfDA7Rz0oRD4+PjA8
KCgoSSYxfDApPT0wP0k+Pj4xOmNbeT4+Ml18MCktMXwwKT4+PjApK0R8MDtIPTB9fXdoaWxlKDAp
O0Y9Yl9bY1soY1twPj4yXXwwKSs0ND4+Ml0mMzFdKHIsYVtFXXwwKXwwO0k9Y1tqPj4yXXwwO2Nb
aj4+Ml09SSs0O2NbST4+Ml09RjtGPUUrMXwwO2lmKEY+Pj4wPGY+Pj4wKXtDPUgrMXwwO0Q9RztF
PUZ9ZWxzZXticmVha319fUU9ZysoeC1iPDwyKXwwO0Q9Y1tqPj4yXXwwO2lmKChFfDApPT0oRHww
KSl7YnJlYWt9Qz1ELTR8MDtpZihFPj4+MDxDPj4+MCl7Sj1FO0s9Q31lbHNle2JyZWFrfWRve0M9
Y1tKPj4yXXwwO2NbSj4+Ml09Y1tLPj4yXTtjW0s+PjJdPUM7Sj1KKzR8MDtLPUstNHwwO313aGls
ZShKPj4+MDxLPj4+MCl9fXdoaWxlKDApO2lmKChlfDApPT0oZnwwKSl7TD1jW2o+PjJdfDA7Y1to
Pj4yXT1MO2RQKG8pO2k9bDtyZXR1cm59ZWxzZXtMPWcrKGUtYjw8Mil8MDtjW2g+PjJdPUw7ZFAo
byk7aT1sO3JldHVybn19ZnVuY3Rpb24gZ3EoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTA7az1pO2k9aSsxNnwwO2w9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNb
bD4+Ml07bD1rfDA7bT1kfDA7ZD1jW20+PjJdfDA7aWYoKGR8MCk9PTApe2NbYj4+Ml09MDtpPWs7
cmV0dXJufW49ZztnPWU7bz1uLWc+PjI7cD1oKzEyfDA7aD1jW3A+PjJdfDA7cT0oaHwwKT4ob3ww
KT9oLW98MDowO289ZjtoPW8tZ3wwO2c9aD4+Mjtkb3tpZigoaHwwKT4wKXtpZigoYjFbY1soY1tk
Pj4yXXwwKSs0OD4+Ml0mNjNdKGQsZSxnKXwwKT09KGd8MCkpe2JyZWFrfWNbbT4+Ml09MDtjW2I+
PjJdPTA7aT1rO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKHF8MCk+MCl7ZXkobCxxLGopO2lmKChh
W2xdJjEpPT0wKXtyPWwrNHwwfWVsc2V7cj1jW2wrOD4+Ml18MH1pZigoYjFbY1soY1tkPj4yXXww
KSs0OD4+Ml0mNjNdKGQscixxKXwwKT09KHF8MCkpe2VlKGwpO2JyZWFrfWNbbT4+Ml09MDtjW2I+
PjJdPTA7ZWUobCk7aT1rO3JldHVybn19d2hpbGUoMCk7bD1uLW98MDtvPWw+PjI7ZG97aWYoKGx8
MCk+MCl7aWYoKGIxW2NbKGNbZD4+Ml18MCkrNDg+PjJdJjYzXShkLGYsbyl8MCk9PShvfDApKXti
cmVha31jW20+PjJdPTA7Y1tiPj4yXT0wO2k9aztyZXR1cm59fXdoaWxlKDApO2NbcD4+Ml09MDtj
W2I+PjJdPWQ7aT1rO3JldHVybn1mdW5jdGlvbiBncihiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzIzMnwwO2s9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrMzJ8
MDtuPWQrMjAwfDA7bz1kKzIwOHwwO3A9ZCsyMTZ8MDtxPWQrMjI0fDA7Y1trPj4yXT0zNztjW2sr
ND4+Ml09MDtyPWs7az1yKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTAp
e3U9a31lbHNle2Fba109NDM7dT1yKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09
MzU7dj11KzF8MH1hW3ZdPTEwODthW3YrMXwwXT0xMDg7dT12KzJ8MDtMMjExOTpkb3tzd2l0Y2go
dCY3NHwwKXtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBMMjExOX1l
bHNle2FbdV09ODg7YnJlYWsgTDIxMTl9YnJlYWt9O2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtk
ZWZhdWx0OnthW3VdPTEwMH19fXdoaWxlKDApO3U9bHwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7
aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUo
MCk7dD1nYih1LDIyLGNbMjk1OF18MCxyLChyPWksaT1pKzE2fDAsY1tyPj4yXT1oLGNbcis4Pj4y
XT1qLHIpfDApfDA7aT1yO3I9bCt0fDA7TDIxMzI6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nh
c2UgMzI6e3c9cjticmVha307Y2FzZSAxNjp7aj1hW3VdfDA7c3dpdGNoKGo8PDI0Pj4yNCl7Y2Fz
ZSA0NTpjYXNlIDQzOnt3PWwrMXwwO2JyZWFrIEwyMTMyO2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEo
KHR8MCk+MSZqPDwyND4+MjQ9PTQ4KSl7eD0xNzYwO2JyZWFrIEwyMTMyfXN3aXRjaChhW2wrMXww
XXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xNzYwO2JyZWFrIEwyMTMy
fX13PWwrMnwwO2JyZWFrfTtkZWZhdWx0Ont4PTE3NjB9fX13aGlsZSgwKTtpZigoeHwwKT09MTc2
MCl7dz11fXg9bXwwO2VqKHAsZik7Z3AodSx3LHIseCxuLG8scCk7ZHooY1twPj4yXXwwKXwwO2Nb
cT4+Ml09Y1tlPj4yXTtncShiLHEseCxjW24+PjJdfDAsY1tvPj4yXXwwLGYsZyk7aT1kO3JldHVy
bn1mdW5jdGlvbiBncyhiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0w
LHY9MCx3PTAseD0wO2Q9aTtpPWkrMTQ0fDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
ZT4+Ml09Y1tqPj4yXTtqPWR8MDtrPWQrOHwwO2w9ZCsyNHwwO209ZCsxMTJ8MDtuPWQrMTIwfDA7
bz1kKzEyOHwwO3A9ZCsxMzZ8MDtxPWp8MDthW3FdPWFbMjM4NF18MDthW3ErMXwwXT1hWzIzODV8
MF18MDthW3ErMnwwXT1hWzIzODZ8MF18MDthW3ErM3wwXT1hWzIzODd8MF18MDthW3ErNHwwXT1h
WzIzODh8MF18MDthW3ErNXwwXT1hWzIzODl8MF18MDtyPWorMXwwO3M9Zis0fDA7dD1jW3M+PjJd
fDA7aWYoKHQmMjA0OHwwKT09MCl7dT1yfWVsc2V7YVtyXT00Mzt1PWorMnwwfWlmKCh0JjUxMnww
KT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4O3U9disxfDA7TDIxNTA6ZG97
c3dpdGNoKHQmNzR8MCl7Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9O2Nhc2UgODp7aWYoKHQmMTYz
ODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwyMTUwfWVsc2V7YVt1XT04ODticmVhayBMMjE1MH1i
cmVha307ZGVmYXVsdDp7YVt1XT0xMTd9fX13aGlsZSgwKTt1PWt8MDtkb3tpZigoYVsxNjI2NF18
MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9
fXdoaWxlKDApO3Q9Z2IodSwxMixjWzI5NThdfDAscSwocT1pLGk9aSs4fDAsY1txPj4yXT1oLHEp
fDApfDA7aT1xO3E9ayt0fDA7TDIxNjM6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMTY6
e2g9YVt1XXwwO3N3aXRjaChoPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7dz1rKzF8MDticmVh
ayBMMjE2MzticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmaDw8MjQ+PjI0PT00OCkpe3g9
MTc4NTticmVhayBMMjE2M31zd2l0Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJl
YWt9O2RlZmF1bHQ6e3g9MTc4NTticmVhayBMMjE2M319dz1rKzJ8MDticmVha307Y2FzZSAzMjp7
dz1xO2JyZWFrfTtkZWZhdWx0Ont4PTE3ODV9fX13aGlsZSgwKTtpZigoeHwwKT09MTc4NSl7dz11
fXg9bHwwO2VqKG8sZik7Z3AodSx3LHEseCxtLG4sbyk7ZHooY1tvPj4yXXwwKXwwO2NbcD4+Ml09
Y1tlPj4yXTtncShiLHAseCxjW20+PjJdfDAsY1tuPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5j
dGlvbiBndChiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MDtkPWk7aT1pKzI0MHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+
PjJdPWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrMzJ8MDtuPWQrMjA4fDA7bz1kKzIxNnwwO3A9
ZCsyMjR8MDtxPWQrMjMyfDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDtyPWs7az1yKzF8MDtzPWYr
NHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9a31lbHNle2Fba109NDM7dT1yKzJ8
MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODthW3Yr
MXwwXT0xMDg7dT12KzJ8MDtMMjE4MTpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDg6e2lmKCh0JjE2
Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBMMjE4MX1lbHNle2FbdV09ODg7YnJlYWsgTDIxODF9
YnJlYWt9O2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtkZWZhdWx0OnthW3VdPTExN319fXdoaWxl
KDApO3U9bHwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJl
YWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDIzLGNbMjk1OF18MCxy
LChyPWksaT1pKzE2fDAsY1tyPj4yXT1oLGNbcis4Pj4yXT1qLHIpfDApfDA7aT1yO3I9bCt0fDA7
TDIxOTQ6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMTY6e2o9YVt1XXwwO3N3aXRjaChq
PDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7dz1sKzF8MDticmVhayBMMjE5NDticmVha307ZGVm
YXVsdDp7fX1pZighKCh0fDApPjEmajw8MjQ+PjI0PT00OCkpe3g9MTgxMDticmVhayBMMjE5NH1z
d2l0Y2goYVtsKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTgx
MDticmVhayBMMjE5NH19dz1sKzJ8MDticmVha307Y2FzZSAzMjp7dz1yO2JyZWFrfTtkZWZhdWx0
Ont4PTE4MTB9fX13aGlsZSgwKTtpZigoeHwwKT09MTgxMCl7dz11fXg9bXwwO2VqKHAsZik7Z3Ao
dSx3LHIseCxuLG8scCk7ZHooY1twPj4yXXwwKXwwO2NbcT4+Ml09Y1tlPj4yXTtncShiLHEseCxj
W24+PjJdfDAsY1tvPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlvbiBndShiLGQsZSxmLGcs
ail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj0rajt2YXIgaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtkPWk7aT1pKzMyMHwwO2s9ZTtlPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrNDB8MDtu
PWQrNDh8MDtvPWQrMjgwfDA7cD1kKzI4OHwwO3E9ZCsyOTZ8MDtyPWQrMzA0fDA7cz1kKzMxMnww
O2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1rO2s9dCsxfDA7dT1mKzR8MDt2PWNbdT4+Ml18MDtp
ZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXthW2tdPTQzO3c9dCsyfDB9aWYoKHYmMTAyNHwwKT09
MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXwwfXc9diYyNjA7az12Pj4+MTQ7TDIyMTI6ZG97aWYo
KHd8MCk9PTI2MCl7aWYoKGsmMXwwKT09MCl7YVt4XT05Nzt5PTA7YnJlYWt9ZWxzZXthW3hdPTY1
O3k9MDticmVha319ZWxzZXthW3hdPTQ2O3Y9eCsyfDA7YVt4KzF8MF09NDI7c3dpdGNoKHd8MCl7
Y2FzZSAyNTY6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAxO3k9MTticmVhayBMMjIxMn1lbHNle2Fb
dl09Njk7eT0xO2JyZWFrIEwyMjEyfWJyZWFrfTtjYXNlIDQ6e2lmKChrJjF8MCk9PTApe2Fbdl09
MTAyO3k9MTticmVhayBMMjIxMn1lbHNle2Fbdl09NzA7eT0xO2JyZWFrIEwyMjEyfWJyZWFrfTtk
ZWZhdWx0OntpZigoayYxfDApPT0wKXthW3ZdPTEwMzt5PTE7YnJlYWsgTDIyMTJ9ZWxzZXthW3Zd
PTcxO3k9MTticmVhayBMMjIxMn19fX19d2hpbGUoMCk7az1sfDA7Y1ttPj4yXT1rO2Rve2lmKChh
WzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEz
NDQsMCl8MH19d2hpbGUoMCk7bD1jWzI5NThdfDA7aWYoeSl7dz1nYihrLDMwLGwsdCwoej1pLGk9
aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0E9d31lbHNl
e3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrOHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtBPXd9ZG97
aWYoKEF8MCk+Mjkpe3c9KGFbMTYyNjRdfDApPT0wO2lmKHkpe2Rve2lmKHcpe2lmKChiYygxNjI2
NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Z2gobSxj
WzI5NThdfDAsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHop
fDApfDA7aT16O0I9bH1lbHNle2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNb
Mjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3c9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9
aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9d313PWNb
bT4+Ml18MDtpZigod3wwKSE9MCl7Qz1CO0Q9dztFPXc7YnJlYWt9a1goKTt3PWNbbT4+Ml18MDtD
PUI7RD13O0U9d31lbHNle0M9QTtEPTA7RT1jW20+PjJdfDB9fXdoaWxlKDApO0E9RStDfDA7TDIy
NjE6ZG97c3dpdGNoKGNbdT4+Ml0mMTc2fDApe2Nhc2UgMzI6e0Y9QTticmVha307Y2FzZSAxNjp7
Qj1hW0VdfDA7c3dpdGNoKEI8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntGPUUrMXwwO2JyZWFr
IEwyMjYxO2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKEN8MCk+MSZCPDwyND4+MjQ9PTQ4KSl7Rz0x
ODY2O2JyZWFrIEwyMjYxfXN3aXRjaChhW0UrMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVh
a307ZGVmYXVsdDp7Rz0xODY2O2JyZWFrIEwyMjYxfX1GPUUrMnwwO2JyZWFrfTtkZWZhdWx0OntH
PTE4NjZ9fX13aGlsZSgwKTtpZigoR3wwKT09MTg2Nil7Rj1FfWRve2lmKChFfDApPT0oa3wwKSl7
SD1ufDA7ST0wO0o9a31lbHNle0c9a0ooQzw8Myl8MDt1PUc7aWYoKEd8MCkhPTApe0g9dTtJPXU7
Sj1FO2JyZWFrfWtYKCk7SD11O0k9dTtKPWNbbT4+Ml18MH19d2hpbGUoMCk7ZWoocSxmKTtndihK
LEYsQSxILG8scCxxKTtkeihjW3E+PjJdfDApfDA7cT1lfDA7Y1tzPj4yXT1jW3E+PjJdO2dxKHIs
cyxILGNbbz4+Ml18MCxjW3A+PjJdfDAsZixnKTtnPWNbcj4+Ml18MDtjW3E+PjJdPWc7Y1tiPj4y
XT1nO2lmKChJfDApIT0wKXtrSyhJKX1pZigoRHwwKT09MCl7aT1kO3JldHVybn1rSyhEKTtpPWQ7
cmV0dXJufWZ1bmN0aW9uIGd2KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wO2w9aTtpPWkrNDh8MDttPWx8MDtuPWwrMTZ8MDtvPWwr
MzJ8MDtwPWt8MDtrPWNbcD4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2Nbbj4+Ml09MTU2ODg7
Y1tuKzQ+PjJdPTEyO2Nbbis4Pj4yXT0wO2RXKDE1Njg4LG4sOTYpfW49KGNbMzkyM118MCktMXww
O3E9Y1trKzg+PjJdfDA7aWYoKGNbaysxMj4+Ml18MCktcT4+Mj4+PjA8PW4+Pj4wKXtyPWJPKDQp
fDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9az1jW3ErKG48PDIpPj4yXXwwO2lmKChrfDAp
PT0wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9cj1rO3M9Y1twPj4yXXww
O2lmKChjWzM4MjZdfDApIT0tMSl7Y1ttPj4yXT0xNTMwNDtjW20rND4+Ml09MTI7Y1ttKzg+PjJd
PTA7ZFcoMTUzMDQsbSw5Nil9bT0oY1szODI3XXwwKS0xfDA7cD1jW3MrOD4+Ml18MDtpZigoY1tz
KzEyPj4yXXwwKS1wPj4yPj4+MDw9bT4+PjApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgx
NzYsMTM0KX1zPWNbcCsobTw8Mik+PjJdfDA7aWYoKHN8MCk9PTApe3Q9Yk8oNCl8MDt1PXQ7a3Eo
dSk7YmwodHwwLDgxNzYsMTM0KX10PXM7YlpbY1soY1tzPj4yXXwwKSsyMD4+Ml0mMTI3XShvLHQp
O2Nbaj4+Ml09Zzt1PWFbYl18MDtzd2l0Y2godTw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e209
Yl9bY1soY1trPj4yXXwwKSs0ND4+Ml0mMzFdKHIsdSl8MDt1PWNbaj4+Ml18MDtjW2o+PjJdPXUr
NDtjW3U+PjJdPW07dj1iKzF8MDticmVha307ZGVmYXVsdDp7dj1ifX1tPWY7TDIzMDk6ZG97aWYo
KG0tdnwwKT4xKXtpZigoYVt2XXwwKSE9NDgpe3c9djt4PTE5MjE7YnJlYWt9dT12KzF8MDtzd2l0
Y2goYVt1XXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7dz12O3g9MTkyMTti
cmVhayBMMjMwOX19cD1rO249Yl9bY1soY1twPj4yXXwwKSs0ND4+Ml0mMzFdKHIsNDgpfDA7cT1j
W2o+PjJdfDA7Y1tqPj4yXT1xKzQ7Y1txPj4yXT1uO249disyfDA7cT1iX1tjWyhjW3A+PjJdfDAp
KzQ0Pj4yXSYzMV0ocixhW3VdfDApfDA7dT1jW2o+PjJdfDA7Y1tqPj4yXT11KzQ7Y1t1Pj4yXT1x
O3E9bjt3aGlsZSgxKXtpZihxPj4+MD49Zj4+PjApe3k9cTt6PW47YnJlYWsgTDIzMDl9dT1hW3Fd
fDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5
NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoYTModTw8MjQ+PjI0fDAsY1syOTU4XXww
KXwwKT09MCl7eT1xO3o9bjticmVha31lbHNle3E9cSsxfDB9fX1lbHNle3c9djt4PTE5MjF9fXdo
aWxlKDApO0wyMzI0OmRve2lmKCh4fDApPT0xOTIxKXt3aGlsZSgxKXt4PTA7aWYodz4+PjA+PWY+
Pj4wKXt5PXc7ej12O2JyZWFrIEwyMzI0fXE9YVt3XXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7
aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUo
MCk7aWYoKGJIKHE8PDI0Pj4yNHwwLGNbMjk1OF18MCl8MCk9PTApe3k9dzt6PXY7YnJlYWt9ZWxz
ZXt3PXcrMXwwO3g9MTkyMX19fX13aGlsZSgwKTt4PW87dz1vO3Y9ZFt3XXwwO2lmKCh2JjF8MCk9
PTApe0E9dj4+PjF9ZWxzZXtBPWNbbys0Pj4yXXwwfWRve2lmKChBfDApPT0wKXt2PWNbaj4+Ml18
MDt1PWNbKGNbaz4+Ml18MCkrNDg+PjJdfDA7Y2FbdSYxNV0ocix6LHksdil8MDtjW2o+PjJdPShj
W2o+PjJdfDApKyh5LXo8PDIpfWVsc2V7ZG97aWYoKHp8MCkhPSh5fDApKXt2PXktMXwwO2lmKHo+
Pj4wPHY+Pj4wKXtCPXo7Qz12fWVsc2V7YnJlYWt9ZG97dj1hW0JdfDA7YVtCXT1hW0NdfDA7YVtD
XT12O0I9QisxfDA7Qz1DLTF8MDt9d2hpbGUoQj4+PjA8Qz4+PjApfX13aGlsZSgwKTtxPWIwW2Nb
KGNbcz4+Ml18MCkrMTY+PjJdJjEyN10odCl8MDtpZih6Pj4+MDx5Pj4+MCl7dj14KzF8MDt1PW8r
NHwwO249bys4fDA7cD1rO0Q9MDtFPTA7Rj16O3doaWxlKDEpe0c9KGFbd10mMSk9PTA7ZG97aWYo
KGFbKEc/djpjW24+PjJdfDApK0V8MF18MCk+MCl7aWYoKER8MCkhPShhWyhHP3Y6Y1tuPj4yXXww
KStFfDBdfDApKXtIPUU7ST1EO2JyZWFrfUo9Y1tqPj4yXXwwO2Nbaj4+Ml09Sis0O2NbSj4+Ml09
cTtKPWRbd118MDtIPShFPj4+MDwoKChKJjF8MCk9PTA/Sj4+PjE6Y1t1Pj4yXXwwKS0xfDApPj4+
MCkrRXwwO0k9MH1lbHNle0g9RTtJPUR9fXdoaWxlKDApO0c9Yl9bY1soY1twPj4yXXwwKSs0ND4+
Ml0mMzFdKHIsYVtGXXwwKXwwO0o9Y1tqPj4yXXwwO2Nbaj4+Ml09Sis0O2NbSj4+Ml09RztHPUYr
MXwwO2lmKEc+Pj4wPHk+Pj4wKXtEPUkrMXwwO0U9SDtGPUd9ZWxzZXticmVha319fUY9Zysoei1i
PDwyKXwwO0U9Y1tqPj4yXXwwO2lmKChGfDApPT0oRXwwKSl7YnJlYWt9RD1FLTR8MDtpZihGPj4+
MDxEPj4+MCl7Sz1GO0w9RH1lbHNle2JyZWFrfWRve0Q9Y1tLPj4yXXwwO2NbSz4+Ml09Y1tMPj4y
XTtjW0w+PjJdPUQ7Sz1LKzR8MDtMPUwtNHwwO313aGlsZShLPj4+MDxMPj4+MCl9fXdoaWxlKDAp
O0wyMzYzOmRve2lmKHk+Pj4wPGY+Pj4wKXtMPWs7Sz15O3doaWxlKDEpe3o9YVtLXXwwO2lmKHo8
PDI0Pj4yND09NDYpe2JyZWFrfUg9Yl9bY1soY1tMPj4yXXwwKSs0ND4+Ml0mMzFdKHIseil8MDt6
PWNbaj4+Ml18MDtjW2o+PjJdPXorNDtjW3o+PjJdPUg7SD1LKzF8MDtpZihIPj4+MDxmPj4+MCl7
Sz1IfWVsc2V7TT1IO2JyZWFrIEwyMzYzfX1MPWIwW2NbKGNbcz4+Ml18MCkrMTI+PjJdJjEyN10o
dCl8MDtIPWNbaj4+Ml18MDtjW2o+PjJdPUgrNDtjW0g+PjJdPUw7TT1LKzF8MH1lbHNle009eX19
d2hpbGUoMCk7Y2FbY1soY1trPj4yXXwwKSs0OD4+Ml0mMTVdKHIsTSxmLGNbaj4+Ml18MCl8MDty
PShjW2o+PjJdfDApKyhtLU08PDIpfDA7Y1tqPj4yXT1yO2lmKChlfDApPT0oZnwwKSl7Tj1yO2Nb
aD4+Ml09TjtkUChvKTtpPWw7cmV0dXJufU49ZysoZS1iPDwyKXwwO2NbaD4+Ml09TjtkUChvKTtp
PWw7cmV0dXJufWZ1bmN0aW9uIGd3KGIsZCxlLGYsZyxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtqPStqO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wO2Q9aTtpPWkrMzIwfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09
Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCs0MHwwO249ZCs0OHwwO289ZCsyODB8MDtwPWQrMjg4
fDA7cT1kKzI5NnwwO3I9ZCszMDR8MDtzPWQrMzEyfDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDt0
PWs7az10KzF8MDt1PWYrNHwwO3Y9Y1t1Pj4yXXwwO2lmKCh2JjIwNDh8MCk9PTApe3c9a31lbHNl
e2Fba109NDM7dz10KzJ8MH1pZigodiYxMDI0fDApPT0wKXt4PXd9ZWxzZXthW3ddPTM1O3g9dysx
fDB9dz12JjI2MDtrPXY+Pj4xNDtMMjM4NDpkb3tpZigod3wwKT09MjYwKXthW3hdPTc2O3Y9eCsx
fDA7aWYoKGsmMXwwKT09MCl7YVt2XT05Nzt5PTA7YnJlYWt9ZWxzZXthW3ZdPTY1O3k9MDticmVh
a319ZWxzZXthW3hdPTQ2O2FbeCsxfDBdPTQyO2FbeCsyfDBdPTc2O3Y9eCszfDA7c3dpdGNoKHd8
MCl7Y2FzZSAyNTY6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAxO3k9MTticmVhayBMMjM4NH1lbHNl
e2Fbdl09Njk7eT0xO2JyZWFrIEwyMzg0fWJyZWFrfTtjYXNlIDQ6e2lmKChrJjF8MCk9PTApe2Fb
dl09MTAyO3k9MTticmVhayBMMjM4NH1lbHNle2Fbdl09NzA7eT0xO2JyZWFrIEwyMzg0fWJyZWFr
fTtkZWZhdWx0OntpZigoayYxfDApPT0wKXthW3ZdPTEwMzt5PTE7YnJlYWsgTDIzODR9ZWxzZXth
W3ZdPTcxO3k9MTticmVhayBMMjM4NH19fX19d2hpbGUoMCk7az1sfDA7Y1ttPj4yXT1rO2Rve2lm
KChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygx
LDEzNDQsMCl8MH19d2hpbGUoMCk7bD1jWzI5NThdfDA7aWYoeSl7dz1nYihrLDMwLGwsdCwoej1p
LGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0E9d31l
bHNle3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrOHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtBPXd9
ZG97aWYoKEF8MCk+Mjkpe3c9KGFbMTYyNjRdfDApPT0wO2lmKHkpe2Rve2lmKHcpe2lmKChiYygx
NjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Z2go
bSxjWzI5NThdfDAsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1q
LHopfDApfDA7aT16O0I9bH1lbHNle2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFr
fWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3c9Z2gobSxjWzI5NThdfDAsdCwoej1p
LGk9aSs4fDAsaFt6Pj4zXT1qLHopfDApfDA7aT16O0I9d313PWNbbT4+Ml18MDtpZigod3wwKSE9
MCl7Qz1CO0Q9dztFPXc7YnJlYWt9a1goKTt3PWNbbT4+Ml18MDtDPUI7RD13O0U9d31lbHNle0M9
QTtEPTA7RT1jW20+PjJdfDB9fXdoaWxlKDApO0E9RStDfDA7TDI0MzM6ZG97c3dpdGNoKGNbdT4+
Ml0mMTc2fDApe2Nhc2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2Fz
ZSA0Mzp7Rj1FKzF8MDticmVhayBMMjQzMzticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEm
Qjw8MjQ+PjI0PT00OCkpe0c9MjAxODticmVhayBMMjQzM31zd2l0Y2goYVtFKzF8MF18MCl7Y2Fz
ZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MjAxODticmVhayBMMjQzM319Rj1FKzJ8
MDticmVha307Y2FzZSAzMjp7Rj1BO2JyZWFrfTtkZWZhdWx0OntHPTIwMTh9fX13aGlsZSgwKTtp
ZigoR3wwKT09MjAxOCl7Rj1FfWRve2lmKChFfDApPT0oa3wwKSl7SD1ufDA7ST0wO0o9a31lbHNl
e0c9a0ooQzw8Myl8MDt1PUc7aWYoKEd8MCkhPTApe0g9dTtJPXU7Sj1FO2JyZWFrfWtYKCk7SD11
O0k9dTtKPWNbbT4+Ml18MH19d2hpbGUoMCk7ZWoocSxmKTtndihKLEYsQSxILG8scCxxKTtkeihj
W3E+PjJdfDApfDA7cT1lfDA7Y1tzPj4yXT1jW3E+PjJdO2dxKHIscyxILGNbbz4+Ml18MCxjW3A+
PjJdfDAsZixnKTtnPWNbcj4+Ml18MDtjW3E+PjJdPWc7Y1tiPj4yXT1nO2lmKChJfDApIT0wKXtr
SyhJKX1pZigoRHwwKT09MCl7aT1kO3JldHVybn1rSyhEKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGd4
KGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTA7ZD1pO2k9aSsyMTZ8MDtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tl
Pj4yXT1jW2o+PjJdO2o9ZHwwO2s9ZCsyNHwwO2w9ZCs0OHwwO209ZCsyMDB8MDtuPWQrMjA4fDA7
bz1kKzE2fDA7YVtvXT1hWzIzOTJdfDA7YVtvKzF8MF09YVsyMzkzfDBdfDA7YVtvKzJ8MF09YVsy
Mzk0fDBdfDA7YVtvKzN8MF09YVsyMzk1fDBdfDA7YVtvKzR8MF09YVsyMzk2fDBdfDA7YVtvKzV8
MF09YVsyMzk3fDBdfDA7cD1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtxPWdiKHAsMjAs
Y1syOTU4XXwwLG8sKG89aSxpPWkrOHwwLGNbbz4+Ml09aCxvKXwwKXwwO2k9bztvPWsrcXwwO0wy
NDY0OmRve3N3aXRjaChjW2YrND4+Ml0mMTc2fDApe2Nhc2UgMTY6e2g9YVtwXXwwO3N3aXRjaCho
PDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7cj1rKzF8MDticmVhayBMMjQ2NDticmVha307ZGVm
YXVsdDp7fX1pZighKChxfDApPjEmaDw8MjQ+PjI0PT00OCkpe3M9MjA1MTticmVhayBMMjQ2NH1z
d2l0Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3M9MjA1
MTticmVhayBMMjQ2NH19cj1rKzJ8MDticmVha307Y2FzZSAzMjp7cj1vO2JyZWFrfTtkZWZhdWx0
OntzPTIwNTF9fX13aGlsZSgwKTtpZigoc3wwKT09MjA1MSl7cj1wfWVqKG0sZik7cz1tfDA7bT1j
W3M+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2o+PjJdPTE1Njg4O2Nbais0Pj4yXT0xMjtj
W2orOD4+Ml09MDtkVygxNTY4OCxqLDk2KX1qPShjWzM5MjNdfDApLTF8MDtoPWNbbSs4Pj4yXXww
O2Rve2lmKChjW20rMTI+PjJdfDApLWg+PjI+Pj4wPmo+Pj4wKXt0PWNbaCsoajw8Mik+PjJdfDA7
aWYoKHR8MCk9PTApe2JyZWFrfXU9dDt2PWNbcz4+Ml18MDtkeih2KXwwO3Y9bHwwO3c9Y1soY1t0
Pj4yXXwwKSs0OD4+Ml18MDtjYVt3JjE1XSh1LHAsbyx2KXwwO3U9bCsocTw8Mil8MDtpZigocnww
KT09KG98MCkpe3g9dTt5PWV8MDt6PWNbeT4+Ml18MDtBPW58MDtjW0E+PjJdPXo7Z3EoYixuLHYs
eCx1LGYsZyk7aT1kO3JldHVybn14PWwrKHItazw8Mil8MDt5PWV8MDt6PWNbeT4+Ml18MDtBPW58
MDtjW0E+PjJdPXo7Z3EoYixuLHYseCx1LGYsZyk7aT1kO3JldHVybn19d2hpbGUoMCk7ZD1iTyg0
KXwwO2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ3koYSl7YT1hfDA7cmV0dXJuIDJ9
ZnVuY3Rpb24gZ3ooYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZ0EoYSl7
YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZ0IoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wO2o9aTtpPWkr
MTZ8MDtrPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2s+PjJdO2s9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7bD1qKzh8MDtjW2s+PjJd
PWNbZD4+Ml07Y1tsPj4yXT1jW2U+PjJdO2dEKGEsYixrLGwsZixnLGgsMjM3NiwyMzg0KTtpPWo7
cmV0dXJufWZ1bmN0aW9uIGdDKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2s9
aTtpPWkrMTZ8MDtsPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9
ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1rfDA7bT1rKzh8MDtu
PWQrOHwwO289YjBbY1soY1tuPj4yXXwwKSsyMD4+Ml0mMTI3XShuKXwwO2NbbD4+Ml09Y1tlPj4y
XTtjW20+PjJdPWNbZj4+Ml07Zj1vO2U9YVtvXXwwO2lmKChlJjEpPT0wKXtwPWYrMXwwO3E9Zisx
fDB9ZWxzZXtmPWNbbys4Pj4yXXwwO3A9ZjtxPWZ9Zj1lJjI1NTtpZigoZiYxfDApPT0wKXtyPWY+
Pj4xfWVsc2V7cj1jW28rND4+Ml18MH1nRChiLGQsbCxtLGcsaCxqLHEscCtyfDApO2k9aztyZXR1
cm59ZnVuY3Rpb24gZ0QoZCxlLGYsZyxoLGosayxsLG0pe2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAs
Vj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTA7bj1pO2k9aSs0
OHwwO289ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbz4+Ml07bz1nO2c9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tvPj4yXTtvPW58MDtwPW4rMTZ8MDtxPW4rMjR8
MDtyPW4rMzJ8MDtzPW4rNDB8MDtlaihwLGgpO3Q9cHwwO3A9Y1t0Pj4yXXwwO2lmKChjWzM5MjRd
fDApIT0tMSl7Y1tvPj4yXT0xNTY5NjtjW28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTU2OTYs
byw5Nil9bz0oY1szOTI1XXwwKS0xfDA7dT1jW3ArOD4+Ml18MDtkb3tpZigoY1twKzEyPj4yXXww
KS11Pj4yPj4+MD5vPj4+MCl7dj1jW3UrKG88PDIpPj4yXXwwO2lmKCh2fDApPT0wKXticmVha313
PXY7eD1jW3Q+PjJdfDA7ZHooeCl8MDtjW2o+PjJdPTA7eD1mfDA7TDI1MDY6ZG97aWYoKGx8MCk9
PShtfDApKXt5PTIxNDF9ZWxzZXt6PWd8MDtBPXY7Qj12Kzh8MDtDPXY7RD1lO0U9cnwwO0Y9c3ww
O0c9cXwwO0g9bDtJPTA7TDI1MDg6d2hpbGUoMSl7Sj1JO3doaWxlKDEpe2lmKChKfDApIT0wKXt5
PTIxNDE7YnJlYWsgTDI1MDZ9Sz1jW3g+PjJdfDA7ZG97aWYoKEt8MCk9PTApe0w9MH1lbHNle2lm
KChjW0srMTI+PjJdfDApIT0oY1tLKzE2Pj4yXXwwKSl7TD1LO2JyZWFrfWlmKChiMFtjWyhjW0s+
PjJdfDApKzM2Pj4yXSYxMjddKEspfDApIT0tMSl7TD1LO2JyZWFrfWNbeD4+Ml09MDtMPTB9fXdo
aWxlKDApO0s9KEx8MCk9PTA7TT1jW3o+PjJdfDA7TDI1MTg6ZG97aWYoKE18MCk9PTApe3k9MjA5
NH1lbHNle2Rve2lmKChjW00rMTI+PjJdfDApPT0oY1tNKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNb
TT4+Ml18MCkrMzY+PjJdJjEyN10oTSl8MCkhPS0xKXticmVha31jW3o+PjJdPTA7eT0yMDk0O2Jy
ZWFrIEwyNTE4fX13aGlsZSgwKTtpZihLKXtOPU19ZWxzZXt5PTIwOTU7YnJlYWsgTDI1MDh9fX13
aGlsZSgwKTtpZigoeXwwKT09MjA5NCl7eT0wO2lmKEspe3k9MjA5NTticmVhayBMMjUwOH1lbHNl
e049MH19aWYoKGIxW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjYzXSh3LGFbSF18MCwwKXwwKTw8MjQ+
PjI0PT0zNyl7eT0yMDk4O2JyZWFrfU09YVtIXXwwO2lmKE08PDI0Pj4yND4tMSl7Tz1jW0I+PjJd
fDA7aWYoKGJbTysoTTw8MjQ+PjI0PDwxKT4+MV0mODE5MikhPTApe1A9SDt5PTIxMDk7YnJlYWt9
fVE9TCsxMnwwO009Y1tRPj4yXXwwO1I9TCsxNnwwO2lmKChNfDApPT0oY1tSPj4yXXwwKSl7Uz0o
YjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3XShMKXwwKSYyNTV9ZWxzZXtTPWFbTV18MH1NPWJf
W2NbKGNbQz4+Ml18MCkrMTI+PjJdJjMxXSh3LFMpfDA7aWYoTTw8MjQ+PjI0PT0oYl9bY1soY1tD
Pj4yXXwwKSsxMj4+Ml0mMzFdKHcsYVtIXXwwKXwwKTw8MjQ+PjI0KXt5PTIxMzY7YnJlYWt9Y1tq
Pj4yXT00O0o9NH1MMjUzNjpkb3tpZigoeXwwKT09MjEzNil7eT0wO0o9Y1tRPj4yXXwwO2lmKChK
fDApPT0oY1tSPj4yXXwwKSl7TT1jWyhjW0w+PjJdfDApKzQwPj4yXXwwO2IwW00mMTI3XShMKXww
fWVsc2V7Y1tRPj4yXT1KKzF9VD1IKzF8MH1lbHNlIGlmKCh5fDApPT0yMDk4KXt5PTA7Sj1IKzF8
MDtpZigoSnwwKT09KG18MCkpe3k9MjA5OTticmVhayBMMjUwOH1NPWIxW2NbKGNbQT4+Ml18MCkr
MzY+PjJdJjYzXSh3LGFbSl18MCwwKXwwO3N3aXRjaChNPDwyND4+MjQpe2Nhc2UgNjk6Y2FzZSA0
ODp7VT1IKzJ8MDtpZigoVXwwKT09KG18MCkpe3k9MjEwMjticmVhayBMMjUwOH1WPU07Vz1iMVtj
WyhjW0E+PjJdfDApKzM2Pj4yXSY2M10odyxhW1VdfDAsMCl8MDtYPVU7YnJlYWt9O2RlZmF1bHQ6
e1Y9MDtXPU07WD1KfX1KPWNbKGNbRD4+Ml18MCkrMzY+PjJdfDA7Y1tFPj4yXT1MO2NbRj4+Ml09
TjtiN1tKJjddKHEsZSxyLHMsaCxqLGssVyxWKTtjW3g+PjJdPWNbRz4+Ml07VD1YKzF8MH1lbHNl
IGlmKCh5fDApPT0yMTA5KXt3aGlsZSgxKXt5PTA7Sj1QKzF8MDtpZigoSnwwKT09KG18MCkpe1k9
bTticmVha31NPWFbSl18MDtpZihNPDwyND4+MjQ8PS0xKXtZPUo7YnJlYWt9aWYoKGJbTysoTTw8
MjQ+PjI0PDwxKT4+MV0mODE5Mik9PTApe1k9SjticmVha31lbHNle1A9Sjt5PTIxMDl9fUs9TDtK
PU47d2hpbGUoMSl7ZG97aWYoKEt8MCk9PTApe1o9MH1lbHNle2lmKChjW0srMTI+PjJdfDApIT0o
Y1tLKzE2Pj4yXXwwKSl7Wj1LO2JyZWFrfWlmKChiMFtjWyhjW0s+PjJdfDApKzM2Pj4yXSYxMjdd
KEspfDApIT0tMSl7Wj1LO2JyZWFrfWNbeD4+Ml09MDtaPTB9fXdoaWxlKDApO009KFp8MCk9PTA7
ZG97aWYoKEp8MCk9PTApe3k9MjEyMn1lbHNle2lmKChjW0orMTI+PjJdfDApIT0oY1tKKzE2Pj4y
XXwwKSl7aWYoTSl7Xz1KO2JyZWFrfWVsc2V7VD1ZO2JyZWFrIEwyNTM2fX1pZigoYjBbY1soY1tK
Pj4yXXwwKSszNj4+Ml0mMTI3XShKKXwwKT09LTEpe2Nbej4+Ml09MDt5PTIxMjI7YnJlYWt9ZWxz
ZXtpZihNXihKfDApPT0wKXtfPUo7YnJlYWt9ZWxzZXtUPVk7YnJlYWsgTDI1MzZ9fX19d2hpbGUo
MCk7aWYoKHl8MCk9PTIxMjIpe3k9MDtpZihNKXtUPVk7YnJlYWsgTDI1MzZ9ZWxzZXtfPTB9fVU9
WisxMnwwOyQ9Y1tVPj4yXXwwO2FhPVorMTZ8MDtpZigoJHwwKT09KGNbYWE+PjJdfDApKXthYj0o
YjBbY1soY1taPj4yXXwwKSszNj4+Ml0mMTI3XShaKXwwKSYyNTV9ZWxzZXthYj1hWyRdfDB9aWYo
YWI8PDI0Pj4yNDw9LTEpe1Q9WTticmVhayBMMjUzNn1pZigoYlsoY1tCPj4yXXwwKSsoYWI8PDI0
Pj4yNDw8MSk+PjFdJjgxOTIpPT0wKXtUPVk7YnJlYWsgTDI1MzZ9JD1jW1U+PjJdfDA7aWYoKCR8
MCk9PShjW2FhPj4yXXwwKSl7YWE9Y1soY1taPj4yXXwwKSs0MD4+Ml18MDtiMFthYSYxMjddKFop
fDA7Sz1aO0o9Xztjb250aW51ZX1lbHNle2NbVT4+Ml09JCsxO0s9WjtKPV87Y29udGludWV9fX19
d2hpbGUoMCk7aWYoKFR8MCk9PShtfDApKXt5PTIxNDE7YnJlYWsgTDI1MDZ9SD1UO0k9Y1tqPj4y
XXwwfWlmKCh5fDApPT0yMDk5KXtjW2o+PjJdPTQ7YWM9TDticmVha31lbHNlIGlmKCh5fDApPT0y
MTAyKXtjW2o+PjJdPTQ7YWM9TDticmVha31lbHNlIGlmKCh5fDApPT0yMDk1KXtjW2o+PjJdPTQ7
YWM9TDticmVha319fXdoaWxlKDApO2lmKCh5fDApPT0yMTQxKXthYz1jW3g+PjJdfDB9dz1mfDA7
ZG97aWYoKGFjfDApIT0wKXtpZigoY1thYysxMj4+Ml18MCkhPShjW2FjKzE2Pj4yXXwwKSl7YnJl
YWt9aWYoKGIwW2NbKGNbYWM+PjJdfDApKzM2Pj4yXSYxMjddKGFjKXwwKSE9LTEpe2JyZWFrfWNb
dz4+Ml09MH19d2hpbGUoMCk7eD1jW3c+PjJdfDA7dj0oeHwwKT09MDtJPWd8MDtIPWNbST4+Ml18
MDtMMjU5NDpkb3tpZigoSHwwKT09MCl7eT0yMTUxfWVsc2V7ZG97aWYoKGNbSCsxMj4+Ml18MCk9
PShjW0grMTY+PjJdfDApKXtpZigoYjBbY1soY1tIPj4yXXwwKSszNj4+Ml0mMTI3XShIKXwwKSE9
LTEpe2JyZWFrfWNbST4+Ml09MDt5PTIxNTE7YnJlYWsgTDI1OTR9fXdoaWxlKDApO2lmKCF2KXti
cmVha31hZD1kfDA7Y1thZD4+Ml09eDtpPW47cmV0dXJufX13aGlsZSgwKTtkb3tpZigoeXwwKT09
MjE1MSl7aWYodil7YnJlYWt9YWQ9ZHwwO2NbYWQ+PjJdPXg7aT1uO3JldHVybn19d2hpbGUoMCk7
Y1tqPj4yXT1jW2o+PjJdfDI7YWQ9ZHwwO2NbYWQ+PjJdPXg7aT1uO3JldHVybn19d2hpbGUoMCk7
bj1iTyg0KXwwO2txKG4pO2JsKG58MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ0UoYSxiLGQsZSxmLGcs
aCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2o9aTtpPWkrMzJ8MDtrPWQ7
ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2s+PjJdO2s9ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7bD1qKzh8MDttPWorMjR8MDtlaihtLGYp
O2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tsPj4yXT0xNTY5NjtjW2wr
ND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0oY1szOTI1XXwwKS0xfDA7bj1j
W20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1uPj4yPj4+MD5sPj4+MCl7bz1jW24rKGw8
PDIpPj4yXXwwO2lmKChvfDApPT0wKXticmVha31wPW87bz1jW2Y+PjJdfDA7ZHoobyl8MDtvPWNb
ZT4+Ml18MDtxPWIrOHwwO3I9YjBbY1tjW3E+PjJdPj4yXSYxMjddKHEpfDA7Y1trPj4yXT1vO289
KGZxKGQsayxyLHIrMTY4fDAscCxnLDApfDApLXJ8MDtpZigob3wwKT49MTY4KXtzPWR8MDt0PWNb
cz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn1jW2grMjQ+PjJdPSgob3wwKS8xMnww
fDApJTd8MDtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn19d2hp
bGUoMCk7aj1iTyg0KXwwO2txKGopO2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ0YoYSxiLGQs
ZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2o9aTtpPWkrMzJ8
MDtrPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2s+PjJdO2s9ZTtlPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7bD1qKzh8MDttPWorMjR8MDtl
aihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tsPj4yXT0xNTY5
NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0oY1szOTI1XXwwKS0x
fDA7bj1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1uPj4yPj4+MD5sPj4+MCl7bz1j
W24rKGw8PDIpPj4yXXwwO2lmKChvfDApPT0wKXticmVha31wPW87bz1jW2Y+PjJdfDA7ZHoobyl8
MDtvPWNbZT4+Ml18MDtxPWIrOHwwO3I9YjBbY1soY1txPj4yXXwwKSs0Pj4yXSYxMjddKHEpfDA7
Y1trPj4yXT1vO289KGZxKGQsayxyLHIrMjg4fDAscCxnLDApfDApLXJ8MDtpZigob3wwKT49Mjg4
KXtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn1jW2grMTY+PjJd
PSgob3wwKS8xMnwwfDApJTEyfDA7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9
ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8oNCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0
aW9uIGdHKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7Yj1pO2k9
aSszMnwwO2o9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaj4+Ml07aj1lO2U9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWJ8MDtrPWIrOHwwO2w9Yisy
NHwwO2VqKGwsZik7Zj1sfDA7bD1jW2Y+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2s+PjJd
PTE1Njk2O2Nbays0Pj4yXT0xMjtjW2srOD4+Ml09MDtkVygxNTY5NixrLDk2KX1rPShjWzM5MjVd
fDApLTF8MDttPWNbbCs4Pj4yXXwwO2Rve2lmKChjW2wrMTI+PjJdfDApLW0+PjI+Pj4wPms+Pj4w
KXtuPWNbbSsoazw8Mik+PjJdfDA7aWYoKG58MCk9PTApe2JyZWFrfW89bjtuPWNbZj4+Ml18MDtk
eihuKXwwO2Nbaj4+Ml09Y1tlPj4yXTtuPWdMKGQsaixnLG8sNCl8MDtpZigoY1tnPj4yXSY0fDAp
IT0wKXtwPWR8MDtxPWNbcD4+Ml18MDtyPWF8MDtjW3I+PjJdPXE7aT1iO3JldHVybn1pZigobnww
KTw2OSl7cz1uKzJlM3wwfWVsc2V7cz0obi02OXwwKT4+PjA8MzE/bisxOTAwfDA6bn1jW2grMjA+
PjJdPXMtMTkwMDtwPWR8MDtxPWNbcD4+Ml18MDtyPWF8MDtjW3I+PjJdPXE7aT1iO3JldHVybn19
d2hpbGUoMCk7Yj1iTyg0KXwwO2txKGIpO2JsKGJ8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ0goZCxl
LGYsZyxoKXtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wO2Q9aTtqPWY7Zj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2o+PjJdO2o9ZXwwO2U9ZnwwO2Y9aCs4fDA7TDI2NTI6d2hp
bGUoMSl7aD1jW2o+PjJdfDA7ZG97aWYoKGh8MCk9PTApe2s9MH1lbHNle2lmKChjW2grMTI+PjJd
fDApIT0oY1toKzE2Pj4yXXwwKSl7az1oO2JyZWFrfWlmKChiMFtjWyhjW2g+PjJdfDApKzM2Pj4y
XSYxMjddKGgpfDApPT0tMSl7Y1tqPj4yXT0wO2s9MDticmVha31lbHNle2s9Y1tqPj4yXXwwO2Jy
ZWFrfX19d2hpbGUoMCk7aD0oa3wwKT09MDtsPWNbZT4+Ml18MDtMMjY2MTpkb3tpZigobHwwKT09
MCl7bT0yMjA3fWVsc2V7ZG97aWYoKGNbbCsxMj4+Ml18MCk9PShjW2wrMTY+PjJdfDApKXtpZigo
YjBbY1soY1tsPj4yXXwwKSszNj4+Ml0mMTI3XShsKXwwKSE9LTEpe2JyZWFrfWNbZT4+Ml09MDtt
PTIyMDc7YnJlYWsgTDI2NjF9fXdoaWxlKDApO2lmKGgpe249bDtvPTB9ZWxzZXtwPWw7cT0wO2Jy
ZWFrIEwyNjUyfX19d2hpbGUoMCk7aWYoKG18MCk9PTIyMDcpe209MDtpZihoKXtwPTA7cT0xO2Jy
ZWFrfWVsc2V7bj0wO289MX19bD1jW2o+PjJdfDA7cj1jW2wrMTI+PjJdfDA7aWYoKHJ8MCk9PShj
W2wrMTY+PjJdfDApKXtzPShiMFtjWyhjW2w+PjJdfDApKzM2Pj4yXSYxMjddKGwpfDApJjI1NX1l
bHNle3M9YVtyXXwwfWlmKHM8PDI0Pj4yNDw9LTEpe3A9bjtxPW87YnJlYWt9aWYoKGJbKGNbZj4+
Ml18MCkrKHM8PDI0Pj4yNDw8MSk+PjFdJjgxOTIpPT0wKXtwPW47cT1vO2JyZWFrfXI9Y1tqPj4y
XXwwO2w9cisxMnwwO3Q9Y1tsPj4yXXwwO2lmKCh0fDApPT0oY1tyKzE2Pj4yXXwwKSl7dT1jWyhj
W3I+PjJdfDApKzQwPj4yXXwwO2IwW3UmMTI3XShyKXwwO2NvbnRpbnVlfWVsc2V7Y1tsPj4yXT10
KzE7Y29udGludWV9fW89Y1tqPj4yXXwwO2Rve2lmKChvfDApPT0wKXt2PTB9ZWxzZXtpZigoY1tv
KzEyPj4yXXwwKSE9KGNbbysxNj4+Ml18MCkpe3Y9bzticmVha31pZigoYjBbY1soY1tvPj4yXXww
KSszNj4+Ml0mMTI3XShvKXwwKT09LTEpe2Nbaj4+Ml09MDt2PTA7YnJlYWt9ZWxzZXt2PWNbaj4+
Ml18MDticmVha319fXdoaWxlKDApO2o9KHZ8MCk9PTA7ZG97aWYocSl7bT0yMjI2fWVsc2V7aWYo
KGNbcCsxMj4+Ml18MCkhPShjW3ArMTY+PjJdfDApKXtpZighKGpeKHB8MCk9PTApKXticmVha31p
PWQ7cmV0dXJufWlmKChiMFtjWyhjW3A+PjJdfDApKzM2Pj4yXSYxMjddKHApfDApPT0tMSl7Y1tl
Pj4yXT0wO209MjIyNjticmVha31pZighail7YnJlYWt9aT1kO3JldHVybn19d2hpbGUoMCk7ZG97
aWYoKG18MCk9PTIyMjYpe2lmKGope2JyZWFrfWk9ZDtyZXR1cm59fXdoaWxlKDApO2NbZz4+Ml09
Y1tnPj4yXXwyO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ0koYixkLGUsZixnLGgsaixrLGwpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxC
PTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9
MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFi
PTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0w
O2w9aTtpPWkrMzI4fDA7bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4y
XTttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209bHwwO249bCs4
fDA7bz1sKzE2fDA7cD1sKzI0fDA7cT1sKzMyfDA7cj1sKzQwfDA7cz1sKzQ4fDA7dD1sKzU2fDA7
dT1sKzY0fDA7dj1sKzcyfDA7dz1sKzgwfDA7eD1sKzg4fDA7eT1sKzk2fDA7ej1sKzExMnwwO0E9
bCsxMjB8MDtCPWwrMTI4fDA7Qz1sKzEzNnwwO0Q9bCsxNDR8MDtFPWwrMTUyfDA7Rj1sKzE2MHww
O0c9bCsxNjh8MDtIPWwrMTc2fDA7ST1sKzE4NHwwO0o9bCsxOTJ8MDtLPWwrMjAwfDA7TD1sKzIw
OHwwO009bCsyMTZ8MDtOPWwrMjI0fDA7Tz1sKzIzMnwwO1A9bCsyNDB8MDtRPWwrMjQ4fDA7Uj1s
KzI1NnwwO1M9bCsyNjR8MDtUPWwrMjcyfDA7VT1sKzI4MHwwO1Y9bCsyODh8MDtXPWwrMjk2fDA7
WD1sKzMwNHwwO1k9bCszMTJ8MDtaPWwrMzIwfDA7Y1toPj4yXT0wO2VqKHosZyk7Xz16fDA7ej1j
W18+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW3k+PjJdPTE1Njk2O2NbeSs0Pj4yXT0xMjtj
W3krOD4+Ml09MDtkVygxNTY5Nix5LDk2KX15PShjWzM5MjVdfDApLTF8MDskPWNbeis4Pj4yXXww
O2Rve2lmKChjW3orMTI+PjJdfDApLSQ+PjI+Pj4wPnk+Pj4wKXthYT1jWyQrKHk8PDIpPj4yXXww
O2lmKChhYXwwKT09MCl7YnJlYWt9YWI9YWE7YWE9Y1tfPj4yXXwwO2R6KGFhKXwwO0wyNzA5OmRv
e3N3aXRjaChrPDwyND4+MjR8MCl7Y2FzZSA3Mjp7Y1t1Pj4yXT1jW2Y+PjJdO2FhPWdMKGUsdSxo
LGFiLDIpfDA7YWM9Y1toPj4yXXwwO2lmKChhYyY0fDApPT0wJihhYXwwKTwyNCl7Y1tqKzg+PjJd
PWFhO2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hY3w0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNl
IDk3OmNhc2UgNjU6e2FjPWNbZj4+Ml18MDthYT1kKzh8MDthZD1iMFtjW2NbYWE+PjJdPj4yXSYx
MjddKGFhKXwwO2NbeD4+Ml09YWM7YWM9KGZxKGUseCxhZCxhZCsxNjh8MCxhYixoLDApfDApLWFk
fDA7aWYoKGFjfDApPj0xNjgpe2JyZWFrIEwyNzA5fWNbaisyND4+Ml09KChhY3wwKS8xMnwwfDAp
JTd8MDticmVha307Y2FzZSAxMDk6e2Nbcj4+Ml09Y1tmPj4yXTthYz0oZ0woZSxyLGgsYWIsMil8
MCktMXwwO2FkPWNbaD4+Ml18MDtpZigoYWQmNHwwKT09MCYoYWN8MCk8MTIpe2NbaisxNj4+Ml09
YWM7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFkfDQ7YnJlYWsgTDI3MDl9YnJlYWt9O2Nhc2Ug
MTIxOntjW24+PjJdPWNbZj4+Ml07YWQ9Z0woZSxuLGgsYWIsNCl8MDtpZigoY1toPj4yXSY0fDAp
IT0wKXticmVhayBMMjcwOX1pZigoYWR8MCk8Njkpe2FlPWFkKzJlM3wwfWVsc2V7YWU9KGFkLTY5
fDApPj4+MDwzMT9hZCsxOTAwfDA6YWR9Y1tqKzIwPj4yXT1hZS0xOTAwO2JyZWFrfTtjYXNlIDk4
OmNhc2UgNjY6Y2FzZSAxMDQ6e2FkPWNbZj4+Ml18MDthYz1kKzh8MDthYT1iMFtjWyhjW2FjPj4y
XXwwKSs0Pj4yXSYxMjddKGFjKXwwO2Nbdz4+Ml09YWQ7YWQ9KGZxKGUsdyxhYSxhYSsyODh8MCxh
YixoLDApfDApLWFhfDA7aWYoKGFkfDApPj0yODgpe2JyZWFrIEwyNzA5fWNbaisxNj4+Ml09KChh
ZHwwKS8xMnwwfDApJTEyfDA7YnJlYWt9O2Nhc2UgNzM6e2FkPWorOHwwO2NbdD4+Ml09Y1tmPj4y
XTthYT1nTChlLHQsaCxhYiwyKXwwO2FjPWNbaD4+Ml18MDtkb3tpZigoYWMmNHwwKT09MCl7aWYo
KGFhLTF8MCk+Pj4wPj0xMil7YnJlYWt9Y1thZD4+Ml09YWE7YnJlYWsgTDI3MDl9fXdoaWxlKDAp
O2NbaD4+Ml09YWN8NDticmVha307Y2FzZSAxMDY6e2Nbcz4+Ml09Y1tmPj4yXTthYT1nTChlLHMs
aCxhYiwzKXwwO2FkPWNbaD4+Ml18MDtpZigoYWQmNHwwKT09MCYoYWF8MCk8MzY2KXtjW2orMjg+
PjJdPWFhO2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hZHw0O2JyZWFrIEwyNzA5fWJyZWFrfTtj
YXNlIDY4OnthZD1lfDA7Y1tFPj4yXT1jW2FkPj4yXTtjW0Y+PjJdPWNbZj4+Ml07Z0QoRCxkLEUs
RixnLGgsaiwyMzY4LDIzNzYpO2NbYWQ+PjJdPWNbRD4+Ml07YnJlYWt9O2Nhc2UgODQ6e2FkPWV8
MDtjW1M+PjJdPWNbYWQ+PjJdO2NbVD4+Ml09Y1tmPj4yXTtnRChSLGQsUyxULGcsaCxqLDIzMjgs
MjMzNik7Y1thZD4+Ml09Y1tSPj4yXTticmVha307Y2FzZSAxMTk6e2Nbbz4+Ml09Y1tmPj4yXTth
ZD1nTChlLG8saCxhYiwxKXwwO2FhPWNbaD4+Ml18MDtpZigoYWEmNHwwKT09MCYoYWR8MCk8Nyl7
Y1tqKzI0Pj4yXT1hZDticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWF8NDticmVhayBMMjcwOX1i
cmVha307Y2FzZSA3MDp7YWE9ZXwwO2NbSD4+Ml09Y1thYT4+Ml07Y1tJPj4yXT1jW2Y+PjJdO2dE
KEcsZCxILEksZyxoLGosMjM2MCwyMzY4KTtjW2FhPj4yXT1jW0c+PjJdO2JyZWFrfTtjYXNlIDg5
OntjW20+PjJdPWNbZj4+Ml07YWE9Z0woZSxtLGgsYWIsNCl8MDtpZigoY1toPj4yXSY0fDApIT0w
KXticmVhayBMMjcwOX1jW2orMjA+PjJdPWFhLTE5MDA7YnJlYWt9O2Nhc2UgMzc6e2NbWj4+Ml09
Y1tmPj4yXTtnSygwLGUsWixoLGFiKTticmVha307Y2FzZSAxMTQ6e2FhPWV8MDtjW00+PjJdPWNb
YWE+PjJdO2NbTj4+Ml09Y1tmPj4yXTtnRChMLGQsTSxOLGcsaCxqLDIzNDQsMjM1NSk7Y1thYT4+
Ml09Y1tMPj4yXTticmVha307Y2FzZSA4Mjp7YWE9ZXwwO2NbUD4+Ml09Y1thYT4+Ml07Y1tRPj4y
XT1jW2Y+PjJdO2dEKE8sZCxQLFEsZyxoLGosMjMzNiwyMzQxKTtjW2FhPj4yXT1jW08+PjJdO2Jy
ZWFrfTtjYXNlIDk5OnthYT1kKzh8MDthZD1iMFtjWyhjW2FhPj4yXXwwKSsxMj4+Ml0mMTI3XShh
YSl8MDthYT1lfDA7Y1tCPj4yXT1jW2FhPj4yXTtjW0M+PjJdPWNbZj4+Ml07YWY9YWQ7YWc9YVth
ZF18MDtpZigoYWcmMSk9PTApe2FoPWFmKzF8MDthaT1hZisxfDB9ZWxzZXthZj1jW2FkKzg+PjJd
fDA7YWg9YWY7YWk9YWZ9YWY9YWcmMjU1O2lmKChhZiYxfDApPT0wKXthaj1hZj4+PjF9ZWxzZXth
aj1jW2FkKzQ+PjJdfDB9Z0QoQSxkLEIsQyxnLGgsaixhaSxhaCthanwwKTtjW2FhPj4yXT1jW0E+
PjJdO2JyZWFrfTtjYXNlIDgzOntjW3A+PjJdPWNbZj4+Ml07YWE9Z0woZSxwLGgsYWIsMil8MDth
ZD1jW2g+PjJdfDA7aWYoKGFkJjR8MCk9PTAmKGFhfDApPDYxKXtjW2o+PjJdPWFhO2JyZWFrIEwy
NzA5fWVsc2V7Y1toPj4yXT1hZHw0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNlIDc3OntjW3E+PjJd
PWNbZj4+Ml07YWQ9Z0woZSxxLGgsYWIsMil8MDthYT1jW2g+PjJdfDA7aWYoKGFhJjR8MCk9PTAm
KGFkfDApPDYwKXtjW2orND4+Ml09YWQ7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFhfDQ7YnJl
YWsgTDI3MDl9YnJlYWt9O2Nhc2UgMTEwOmNhc2UgMTE2OntjW0o+PjJdPWNbZj4+Ml07Z0goMCxl
LEosaCxhYik7YnJlYWt9O2Nhc2UgMTEyOntjW0s+PjJdPWNbZj4+Ml07Z0ooZCxqKzh8MCxlLEss
aCxhYik7YnJlYWt9O2Nhc2UgMTIwOnthYT1jWyhjW2Q+PjJdfDApKzIwPj4yXXwwO2NbVT4+Ml09
Y1tlPj4yXTtjW1Y+PjJdPWNbZj4+Ml07YlhbYWEmMTI3XShiLGQsVSxWLGcsaCxqKTtpPWw7cmV0
dXJufTtjYXNlIDg4OnthYT1kKzh8MDthZD1iMFtjWyhjW2FhPj4yXXwwKSsyND4+Ml0mMTI3XShh
YSl8MDthYT1lfDA7Y1tYPj4yXT1jW2FhPj4yXTtjW1k+PjJdPWNbZj4+Ml07YWY9YWQ7YWc9YVth
ZF18MDtpZigoYWcmMSk9PTApe2FrPWFmKzF8MDthbD1hZisxfDB9ZWxzZXthZj1jW2FkKzg+PjJd
fDA7YWs9YWY7YWw9YWZ9YWY9YWcmMjU1O2lmKChhZiYxfDApPT0wKXthbT1hZj4+PjF9ZWxzZXth
bT1jW2FkKzQ+PjJdfDB9Z0QoVyxkLFgsWSxnLGgsaixhbCxhaythbXwwKTtjW2FhPj4yXT1jW1c+
PjJdO2JyZWFrfTtjYXNlIDEwMDpjYXNlIDEwMTp7YWE9aisxMnwwO2Nbdj4+Ml09Y1tmPj4yXTth
ZD1nTChlLHYsaCxhYiwyKXwwO2FmPWNbaD4+Ml18MDtkb3tpZigoYWYmNHwwKT09MCl7aWYoKGFk
LTF8MCk+Pj4wPj0zMSl7YnJlYWt9Y1thYT4+Ml09YWQ7YnJlYWsgTDI3MDl9fXdoaWxlKDApO2Nb
aD4+Ml09YWZ8NDticmVha307ZGVmYXVsdDp7Y1toPj4yXT1jW2g+PjJdfDR9fX13aGlsZSgwKTtj
W2I+PjJdPWNbZT4+Ml07aT1sO3JldHVybn19d2hpbGUoMCk7bD1iTyg0KXwwO2txKGwpO2JsKGx8
MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ0ooYSxiLGUsZixnLGgpe2E9YXwwO2I9YnwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wO2o9aTtpPWkrOHwwO2s9Zjtm
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbaz4+Ml07az1qfDA7bD1hKzh8MDthPWIw
W2NbKGNbbD4+Ml18MCkrOD4+Ml0mMTI3XShsKXwwO2w9ZFthXXwwO2lmKChsJjF8MCk9PTApe209
bD4+PjF9ZWxzZXttPWNbYSs0Pj4yXXwwfWw9ZFthKzEyfDBdfDA7aWYoKGwmMXwwKT09MCl7bj1s
Pj4+MX1lbHNle249Y1thKzE2Pj4yXXwwfWlmKChtfDApPT0oLW58MCkpe2NbZz4+Ml09Y1tnPj4y
XXw0O2k9ajtyZXR1cm59Y1trPj4yXT1jW2Y+PjJdO2Y9ZnEoZSxrLGEsYSsyNHwwLGgsZywwKXww
O2c9Zi1hfDA7ZG97aWYoKGZ8MCk9PShhfDApKXtpZigoY1tiPj4yXXwwKSE9MTIpe2JyZWFrfWNb
Yj4+Ml09MDtpPWo7cmV0dXJufX13aGlsZSgwKTtpZigoZ3wwKSE9MTIpe2k9ajtyZXR1cm59Zz1j
W2I+PjJdfDA7aWYoKGd8MCk+PTEyKXtpPWo7cmV0dXJufWNbYj4+Ml09ZysxMjtpPWo7cmV0dXJu
fWZ1bmN0aW9uIGdLKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFy
IGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MDtiPWk7aD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZT4+Ml09Y1toPj4yXTtoPWR8MDtkPWNbaD4+Ml18MDtkb3tpZigoZHwwKT09MCl7aj0w
fWVsc2V7aWYoKGNbZCsxMj4+Ml18MCkhPShjW2QrMTY+PjJdfDApKXtqPWQ7YnJlYWt9aWYoKGIw
W2NbKGNbZD4+Ml18MCkrMzY+PjJdJjEyN10oZCl8MCk9PS0xKXtjW2g+PjJdPTA7aj0wO2JyZWFr
fWVsc2V7aj1jW2g+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtkPShqfDApPT0wO2o9ZXwwO2U9Y1tq
Pj4yXXwwO0wyODIyOmRve2lmKChlfDApPT0wKXtrPTIzMzd9ZWxzZXtkb3tpZigoY1tlKzEyPj4y
XXwwKT09KGNbZSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW2U+PjJdfDApKzM2Pj4yXSYxMjddKGUp
fDApIT0tMSl7YnJlYWt9Y1tqPj4yXT0wO2s9MjMzNzticmVhayBMMjgyMn19d2hpbGUoMCk7aWYo
ZCl7bD1lO209MH1lbHNle2s9MjMzOH19fXdoaWxlKDApO2lmKChrfDApPT0yMzM3KXtpZihkKXtr
PTIzMzh9ZWxzZXtsPTA7bT0xfX1pZigoa3wwKT09MjMzOCl7Y1tmPj4yXT1jW2Y+PjJdfDY7aT1i
O3JldHVybn1kPWNbaD4+Ml18MDtlPWNbZCsxMj4+Ml18MDtpZigoZXwwKT09KGNbZCsxNj4+Ml18
MCkpe249KGIwW2NbKGNbZD4+Ml18MCkrMzY+PjJdJjEyN10oZCl8MCkmMjU1fWVsc2V7bj1hW2Vd
fDB9aWYoKGIxW2NbKGNbZz4+Ml18MCkrMzY+PjJdJjYzXShnLG4sMCl8MCk8PDI0Pj4yNCE9Mzcp
e2NbZj4+Ml09Y1tmPj4yXXw0O2k9YjtyZXR1cm59bj1jW2g+PjJdfDA7Zz1uKzEyfDA7ZT1jW2c+
PjJdfDA7aWYoKGV8MCk9PShjW24rMTY+PjJdfDApKXtkPWNbKGNbbj4+Ml18MCkrNDA+PjJdfDA7
YjBbZCYxMjddKG4pfDB9ZWxzZXtjW2c+PjJdPWUrMX1lPWNbaD4+Ml18MDtkb3tpZigoZXwwKT09
MCl7bz0wfWVsc2V7aWYoKGNbZSsxMj4+Ml18MCkhPShjW2UrMTY+PjJdfDApKXtvPWU7YnJlYWt9
aWYoKGIwW2NbKGNbZT4+Ml18MCkrMzY+PjJdJjEyN10oZSl8MCk9PS0xKXtjW2g+PjJdPTA7bz0w
O2JyZWFrfWVsc2V7bz1jW2g+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtoPShvfDApPT0wO2Rve2lm
KG0pe2s9MjM1N31lbHNle2lmKChjW2wrMTI+PjJdfDApIT0oY1tsKzE2Pj4yXXwwKSl7aWYoISho
XihsfDApPT0wKSl7YnJlYWt9aT1iO3JldHVybn1pZigoYjBbY1soY1tsPj4yXXwwKSszNj4+Ml0m
MTI3XShsKXwwKT09LTEpe2Nbaj4+Ml09MDtrPTIzNTc7YnJlYWt9aWYoIWgpe2JyZWFrfWk9Yjty
ZXR1cm59fXdoaWxlKDApO2Rve2lmKChrfDApPT0yMzU3KXtpZihoKXticmVha31pPWI7cmV0dXJu
fX13aGlsZSgwKTtjW2Y+PjJdPWNbZj4+Ml18MjtpPWI7cmV0dXJufWZ1bmN0aW9uIGdMKGQsZSxm
LGcsaCl7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MDtqPWk7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtkPWNbaz4+Ml18MDtkb3tpZigoZHwwKT09MCl7bD0wfWVs
c2V7aWYoKGNbZCsxMj4+Ml18MCkhPShjW2QrMTY+PjJdfDApKXtsPWQ7YnJlYWt9aWYoKGIwW2Nb
KGNbZD4+Ml18MCkrMzY+PjJdJjEyN10oZCl8MCk9PS0xKXtjW2s+PjJdPTA7bD0wO2JyZWFrfWVs
c2V7bD1jW2s+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtkPShsfDApPT0wO2w9ZXwwO2U9Y1tsPj4y
XXwwO0wyODc2OmRve2lmKChlfDApPT0wKXttPTIzNzd9ZWxzZXtkb3tpZigoY1tlKzEyPj4yXXww
KT09KGNbZSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW2U+PjJdfDApKzM2Pj4yXSYxMjddKGUpfDAp
IT0tMSl7YnJlYWt9Y1tsPj4yXT0wO209MjM3NzticmVhayBMMjg3Nn19d2hpbGUoMCk7aWYoZCl7
bj1lfWVsc2V7bT0yMzc4fX19d2hpbGUoMCk7aWYoKG18MCk9PTIzNzcpe2lmKGQpe209MjM3OH1l
bHNle249MH19aWYoKG18MCk9PTIzNzgpe2NbZj4+Ml09Y1tmPj4yXXw2O289MDtpPWo7cmV0dXJu
IG98MH1kPWNbaz4+Ml18MDtlPWNbZCsxMj4+Ml18MDtpZigoZXwwKT09KGNbZCsxNj4+Ml18MCkp
e3A9KGIwW2NbKGNbZD4+Ml18MCkrMzY+PjJdJjEyN10oZCl8MCkmMjU1fWVsc2V7cD1hW2VdfDB9
ZG97aWYocDw8MjQ+PjI0Pi0xKXtlPWcrOHwwO2lmKChiWyhjW2U+PjJdfDApKyhwPDwyND4+MjQ8
PDEpPj4xXSYyMDQ4KT09MCl7YnJlYWt9ZD1nO3E9KGIxW2NbKGNbZD4+Ml18MCkrMzY+PjJdJjYz
XShnLHAsMCl8MCk8PDI0Pj4yNDtyPWNbaz4+Ml18MDtzPXIrMTJ8MDt0PWNbcz4+Ml18MDtpZigo
dHwwKT09KGNbcisxNj4+Ml18MCkpe3U9Y1soY1tyPj4yXXwwKSs0MD4+Ml18MDtiMFt1JjEyN10o
cil8MDt2PXE7dz1oO3g9bn1lbHNle2Nbcz4+Ml09dCsxO3Y9cTt3PWg7eD1ufXdoaWxlKDEpe3k9
di00OHwwO3E9dy0xfDA7dD1jW2s+PjJdfDA7ZG97aWYoKHR8MCk9PTApe3o9MH1lbHNle2lmKChj
W3QrMTI+PjJdfDApIT0oY1t0KzE2Pj4yXXwwKSl7ej10O2JyZWFrfWlmKChiMFtjWyhjW3Q+PjJd
fDApKzM2Pj4yXSYxMjddKHQpfDApPT0tMSl7Y1trPj4yXT0wO3o9MDticmVha31lbHNle3o9Y1tr
Pj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7dD0oenwwKT09MDtpZigoeHwwKT09MCl7QT16O0I9MH1l
bHNle2Rve2lmKChjW3grMTI+PjJdfDApPT0oY1t4KzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbeD4+
Ml18MCkrMzY+PjJdJjEyN10oeCl8MCkhPS0xKXtDPXg7YnJlYWt9Y1tsPj4yXT0wO0M9MH1lbHNl
e0M9eH19d2hpbGUoMCk7QT1jW2s+PjJdfDA7Qj1DfUQ9KEJ8MCk9PTA7aWYoISgodF5EKSYocXww
KT4wKSl7bT0yNDA3O2JyZWFrfXM9Y1tBKzEyPj4yXXwwO2lmKChzfDApPT0oY1tBKzE2Pj4yXXww
KSl7RT0oYjBbY1soY1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKSYyNTV9ZWxzZXtFPWFbc118
MH1pZihFPDwyND4+MjQ8PS0xKXtvPXk7bT0yNDIyO2JyZWFrfWlmKChiWyhjW2U+PjJdfDApKyhF
PDwyND4+MjQ8PDEpPj4xXSYyMDQ4KT09MCl7bz15O209MjQyMzticmVha31zPSgoYjFbY1soY1tk
Pj4yXXwwKSszNj4+Ml0mNjNdKGcsRSwwKXwwKTw8MjQ+PjI0KSsoeSoxMHwwKXwwO3I9Y1trPj4y
XXwwO3U9cisxMnwwO0Y9Y1t1Pj4yXXwwO2lmKChGfDApPT0oY1tyKzE2Pj4yXXwwKSl7Rz1jWyhj
W3I+PjJdfDApKzQwPj4yXXwwO2IwW0cmMTI3XShyKXwwO3Y9czt3PXE7eD1CO2NvbnRpbnVlfWVs
c2V7Y1t1Pj4yXT1GKzE7dj1zO3c9cTt4PUI7Y29udGludWV9fWlmKChtfDApPT0yNDA3KXtkb3tp
ZigoQXwwKT09MCl7SD0wfWVsc2V7aWYoKGNbQSsxMj4+Ml18MCkhPShjW0ErMTY+PjJdfDApKXtI
PUE7YnJlYWt9aWYoKGIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MCk9PS0xKXtjW2s+
PjJdPTA7SD0wO2JyZWFrfWVsc2V7SD1jW2s+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtkPShIfDAp
PT0wO0wyOTMzOmRve2lmKEQpe209MjQxN31lbHNle2Rve2lmKChjW0IrMTI+PjJdfDApPT0oY1tC
KzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXti
cmVha31jW2w+PjJdPTA7bT0yNDE3O2JyZWFrIEwyOTMzfX13aGlsZSgwKTtpZihkKXtvPXl9ZWxz
ZXticmVha31pPWo7cmV0dXJuIG98MH19d2hpbGUoMCk7ZG97aWYoKG18MCk9PTI0MTcpe2lmKGQp
e2JyZWFrfWVsc2V7bz15fWk9ajtyZXR1cm4gb3wwfX13aGlsZSgwKTtjW2Y+PjJdPWNbZj4+Ml18
MjtvPXk7aT1qO3JldHVybiBvfDB9ZWxzZSBpZigobXwwKT09MjQyMil7aT1qO3JldHVybiBvfDB9
ZWxzZSBpZigobXwwKT09MjQyMyl7aT1qO3JldHVybiBvfDB9fX13aGlsZSgwKTtjW2Y+PjJdPWNb
Zj4+Ml18NDtvPTA7aT1qO3JldHVybiBvfDB9ZnVuY3Rpb24gZ00oYSl7YT1hfDA7cmV0dXJuIDJ9
ZnVuY3Rpb24gZ04oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZ08oYSl7
YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZ1AoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wO2o9aTtpPWkr
MTZ8MDtrPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2s+PjJdO2s9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7bD1qKzh8MDtjW2s+PjJd
PWNbZD4+Ml07Y1tsPj4yXT1jW2U+PjJdO2dSKGEsYixrLGwsZixnLGgsMjI5NiwyMzI4KTtpPWo7
cmV0dXJufWZ1bmN0aW9uIGdRKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2s9
aTtpPWkrMTZ8MDtsPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9
ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1rfDA7bT1rKzh8MDtu
PWQrOHwwO289YjBbY1soY1tuPj4yXXwwKSsyMD4+Ml0mMTI3XShuKXwwO2NbbD4+Ml09Y1tlPj4y
XTtjW20+PjJdPWNbZj4+Ml07Zj1hW29dfDA7aWYoKGYmMSk9PTApe3A9bys0fDA7cT1vKzR8MH1l
bHNle2U9Y1tvKzg+PjJdfDA7cD1lO3E9ZX1lPWYmMjU1O2lmKChlJjF8MCk9PTApe3I9ZT4+PjF9
ZWxzZXtyPWNbbys0Pj4yXXwwfWdSKGIsZCxsLG0sZyxoLGoscSxwKyhyPDwyKXwwKTtpPWs7cmV0
dXJufWZ1bmN0aW9uIGdSKGEsYixkLGUsZixnLGgsaixrKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9
MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0w
LFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAs
YWU9MCxhZj0wLGFnPTA7bD1pO2k9aSs0OHwwO209ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2Q+PjJdPWNbbT4+Ml07bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4y
XTttPWx8MDtuPWwrMTZ8MDtvPWwrMjR8MDtwPWwrMzJ8MDtxPWwrNDB8MDtlaihuLGYpO3I9bnww
O249Y1tyPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1ttPj4yXT0xNTY4ODtjW20rND4+Ml09
MTI7Y1ttKzg+PjJdPTA7ZFcoMTU2ODgsbSw5Nil9bT0oY1szOTIzXXwwKS0xfDA7cz1jW24rOD4+
Ml18MDtkb3tpZigoY1tuKzEyPj4yXXwwKS1zPj4yPj4+MD5tPj4+MCl7dD1jW3MrKG08PDIpPj4y
XXwwO2lmKCh0fDApPT0wKXticmVha311PXQ7dj1jW3I+PjJdfDA7ZHoodil8MDtjW2c+PjJdPTA7
dj1kfDA7TDI5Njk6ZG97aWYoKGp8MCk9PShrfDApKXt3PTI1MDh9ZWxzZXt4PWV8MDt5PXQ7ej10
O0E9dDtCPWI7Qz1wfDA7RD1xfDA7RT1vfDA7Rj1qO0c9MDtMMjk3MTp3aGlsZSgxKXtIPUc7d2hp
bGUoMSl7aWYoKEh8MCkhPTApe3c9MjUwODticmVhayBMMjk2OX1JPWNbdj4+Ml18MDtkb3tpZigo
SXwwKT09MCl7Sj0wfWVsc2V7Sz1jW0krMTI+PjJdfDA7aWYoKEt8MCk9PShjW0krMTY+PjJdfDAp
KXtMPWIwW2NbKGNbST4+Ml18MCkrMzY+PjJdJjEyN10oSSl8MH1lbHNle0w9Y1tLPj4yXXwwfWlm
KChMfDApIT0tMSl7Sj1JO2JyZWFrfWNbdj4+Ml09MDtKPTB9fXdoaWxlKDApO0k9KEp8MCk9PTA7
Sz1jW3g+PjJdfDA7ZG97aWYoKEt8MCk9PTApe3c9MjQ2MH1lbHNle009Y1tLKzEyPj4yXXwwO2lm
KChNfDApPT0oY1tLKzE2Pj4yXXwwKSl7Tj1iMFtjWyhjW0s+PjJdfDApKzM2Pj4yXSYxMjddKEsp
fDB9ZWxzZXtOPWNbTT4+Ml18MH1pZigoTnwwKT09LTEpe2NbeD4+Ml09MDt3PTI0NjA7YnJlYWt9
ZWxzZXtpZihJXihLfDApPT0wKXtPPUs7YnJlYWt9ZWxzZXt3PTI0NjI7YnJlYWsgTDI5NzF9fX19
d2hpbGUoMCk7aWYoKHd8MCk9PTI0NjApe3c9MDtpZihJKXt3PTI0NjI7YnJlYWsgTDI5NzF9ZWxz
ZXtPPTB9fWlmKChiMVtjWyhjW3k+PjJdfDApKzUyPj4yXSY2M10odSxjW0Y+PjJdfDAsMCl8MCk8
PDI0Pj4yND09Mzcpe3c9MjQ2NTticmVha31pZihiMVtjWyhjW3o+PjJdfDApKzEyPj4yXSY2M10o
dSw4MTkyLGNbRj4+Ml18MCl8MCl7UD1GO3c9MjQ3NTticmVha31RPUorMTJ8MDtLPWNbUT4+Ml18
MDtSPUorMTZ8MDtpZigoS3wwKT09KGNbUj4+Ml18MCkpe1M9YjBbY1soY1tKPj4yXXwwKSszNj4+
Ml0mMTI3XShKKXwwfWVsc2V7Uz1jW0s+PjJdfDB9Sz1iX1tjWyhjW0E+PjJdfDApKzI4Pj4yXSYz
MV0odSxTKXwwO2lmKChLfDApPT0oYl9bY1soY1tBPj4yXXwwKSsyOD4+Ml0mMzFdKHUsY1tGPj4y
XXwwKXwwKSl7dz0yNTAzO2JyZWFrfWNbZz4+Ml09NDtIPTR9TDMwMDM6ZG97aWYoKHd8MCk9PTI1
MDMpe3c9MDtIPWNbUT4+Ml18MDtpZigoSHwwKT09KGNbUj4+Ml18MCkpe0s9Y1soY1tKPj4yXXww
KSs0MD4+Ml18MDtiMFtLJjEyN10oSil8MH1lbHNle2NbUT4+Ml09SCs0fVQ9Ris0fDB9ZWxzZSBp
Zigod3wwKT09MjQ2NSl7dz0wO0g9Ris0fDA7aWYoKEh8MCk9PShrfDApKXt3PTI0NjY7YnJlYWsg
TDI5NzF9Sz1iMVtjWyhjW3k+PjJdfDApKzUyPj4yXSY2M10odSxjW0g+PjJdfDAsMCl8MDtzd2l0
Y2goSzw8MjQ+PjI0KXtjYXNlIDY5OmNhc2UgNDg6e009Ris4fDA7aWYoKE18MCk9PShrfDApKXt3
PTI0Njk7YnJlYWsgTDI5NzF9VT1LO1Y9YjFbY1soY1t5Pj4yXXwwKSs1Mj4+Ml0mNjNdKHUsY1tN
Pj4yXXwwLDApfDA7Vz1NO2JyZWFrfTtkZWZhdWx0OntVPTA7Vj1LO1c9SH19SD1jWyhjW0I+PjJd
fDApKzM2Pj4yXXwwO2NbQz4+Ml09SjtjW0Q+PjJdPU87YjdbSCY3XShvLGIscCxxLGYsZyxoLFYs
VSk7Y1t2Pj4yXT1jW0U+PjJdO1Q9Vys0fDB9ZWxzZSBpZigod3wwKT09MjQ3NSl7d2hpbGUoMSl7
dz0wO0g9UCs0fDA7aWYoKEh8MCk9PShrfDApKXtYPWs7YnJlYWt9aWYoYjFbY1soY1t6Pj4yXXww
KSsxMj4+Ml0mNjNdKHUsODE5MixjW0g+PjJdfDApfDApe1A9SDt3PTI0NzV9ZWxzZXtYPUg7YnJl
YWt9fUk9SjtIPU87d2hpbGUoMSl7ZG97aWYoKEl8MCk9PTApe1k9MH1lbHNle0s9Y1tJKzEyPj4y
XXwwO2lmKChLfDApPT0oY1tJKzE2Pj4yXXwwKSl7Wj1iMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYx
MjddKEkpfDB9ZWxzZXtaPWNbSz4+Ml18MH1pZigoWnwwKSE9LTEpe1k9STticmVha31jW3Y+PjJd
PTA7WT0wfX13aGlsZSgwKTtLPShZfDApPT0wO2Rve2lmKChIfDApPT0wKXt3PTI0OTB9ZWxzZXtN
PWNbSCsxMj4+Ml18MDtpZigoTXwwKT09KGNbSCsxNj4+Ml18MCkpe189YjBbY1soY1tIPj4yXXww
KSszNj4+Ml0mMTI3XShIKXwwfWVsc2V7Xz1jW00+PjJdfDB9aWYoKF98MCk9PS0xKXtjW3g+PjJd
PTA7dz0yNDkwO2JyZWFrfWVsc2V7aWYoS14oSHwwKT09MCl7JD1IO2JyZWFrfWVsc2V7VD1YO2Jy
ZWFrIEwzMDAzfX19fXdoaWxlKDApO2lmKCh3fDApPT0yNDkwKXt3PTA7aWYoSyl7VD1YO2JyZWFr
IEwzMDAzfWVsc2V7JD0wfX1NPVkrMTJ8MDthYT1jW00+PjJdfDA7YWI9WSsxNnwwO2lmKChhYXww
KT09KGNbYWI+PjJdfDApKXthYz1iMFtjWyhjW1k+PjJdfDApKzM2Pj4yXSYxMjddKFkpfDB9ZWxz
ZXthYz1jW2FhPj4yXXwwfWlmKCEoYjFbY1soY1t6Pj4yXXwwKSsxMj4+Ml0mNjNdKHUsODE5Mixh
Yyl8MCkpe1Q9WDticmVhayBMMzAwM31hYT1jW00+PjJdfDA7aWYoKGFhfDApPT0oY1thYj4+Ml18
MCkpe2FiPWNbKGNbWT4+Ml18MCkrNDA+PjJdfDA7YjBbYWImMTI3XShZKXwwO0k9WTtIPSQ7Y29u
dGludWV9ZWxzZXtjW00+PjJdPWFhKzQ7ST1ZO0g9JDtjb250aW51ZX19fX13aGlsZSgwKTtpZigo
VHwwKT09KGt8MCkpe3c9MjUwODticmVhayBMMjk2OX1GPVQ7Rz1jW2c+PjJdfDB9aWYoKHd8MCk9
PTI0NjIpe2NbZz4+Ml09NDthZD1KO2JyZWFrfWVsc2UgaWYoKHd8MCk9PTI0NjYpe2NbZz4+Ml09
NDthZD1KO2JyZWFrfWVsc2UgaWYoKHd8MCk9PTI0Njkpe2NbZz4+Ml09NDthZD1KO2JyZWFrfX19
d2hpbGUoMCk7aWYoKHd8MCk9PTI1MDgpe2FkPWNbdj4+Ml18MH11PWR8MDtkb3tpZigoYWR8MCkh
PTApe3Q9Y1thZCsxMj4+Ml18MDtpZigodHwwKT09KGNbYWQrMTY+PjJdfDApKXthZT1iMFtjWyhj
W2FkPj4yXXwwKSszNj4+Ml0mMTI3XShhZCl8MH1lbHNle2FlPWNbdD4+Ml18MH1pZigoYWV8MCkh
PS0xKXticmVha31jW3U+PjJdPTB9fXdoaWxlKDApO3Y9Y1t1Pj4yXXwwO3Q9KHZ8MCk9PTA7Rz1l
fDA7Rj1jW0c+PjJdfDA7ZG97aWYoKEZ8MCk9PTApe3c9MjUyMX1lbHNle3o9Y1tGKzEyPj4yXXww
O2lmKCh6fDApPT0oY1tGKzE2Pj4yXXwwKSl7YWY9YjBbY1soY1tGPj4yXXwwKSszNj4+Ml0mMTI3
XShGKXwwfWVsc2V7YWY9Y1t6Pj4yXXwwfWlmKChhZnwwKT09LTEpe2NbRz4+Ml09MDt3PTI1MjE7
YnJlYWt9aWYoISh0XihGfDApPT0wKSl7YnJlYWt9YWc9YXwwO2NbYWc+PjJdPXY7aT1sO3JldHVy
bn19d2hpbGUoMCk7ZG97aWYoKHd8MCk9PTI1MjEpe2lmKHQpe2JyZWFrfWFnPWF8MDtjW2FnPj4y
XT12O2k9bDtyZXR1cm59fXdoaWxlKDApO2NbZz4+Ml09Y1tnPj4yXXwyO2FnPWF8MDtjW2FnPj4y
XT12O2k9bDtyZXR1cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAsODE3NiwxMzQp
fWZ1bmN0aW9uIGdTKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MDtqPWk7aT1pKzMyfDA7az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09
Y1trPj4yXTtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anww
O2w9ais4fDA7bT1qKzI0fDA7ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1szOTIyXXww
KSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4LGws
OTYpfWw9KGNbMzkyM118MCktMXwwO249Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCkt
bj4+Mj4+PjA+bD4+PjApe289Y1tuKyhsPDwyKT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1v
O289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2U+PjJdfDA7cT1iKzh8MDtyPWIwW2NbY1txPj4yXT4+
Ml0mMTI3XShxKXwwO2Nbaz4+Ml09bztvPShmUyhkLGsscixyKzE2OHwwLHAsZywwKXwwKS1yfDA7
aWYoKG98MCk+PTE2OCl7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1
cm59Y1toKzI0Pj4yXT0oKG98MCkvMTJ8MHwwKSU3fDA7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7
Y1t1Pj4yXT10O2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8oNCl8MDtrcShqKTtibChqfDAsODE3
NiwxMzQpfWZ1bmN0aW9uIGdUKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MDtqPWk7aT1pKzMyfDA7az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
ZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJd
O2s9anwwO2w9ais4fDA7bT1qKzI0fDA7ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1sz
OTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1
Njg4LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO249Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+
Ml18MCktbj4+Mj4+PjA+bD4+PjApe289Y1tuKyhsPDwyKT4+Ml18MDtpZigob3wwKT09MCl7YnJl
YWt9cD1vO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2U+PjJdfDA7cT1iKzh8MDtyPWIwW2NbKGNb
cT4+Ml18MCkrND4+Ml0mMTI3XShxKXwwO2Nbaz4+Ml09bztvPShmUyhkLGsscixyKzI4OHwwLHAs
ZywwKXwwKS1yfDA7aWYoKG98MCk+PTI4OCl7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4y
XT10O2k9ajtyZXR1cm59Y1toKzE2Pj4yXT0oKG98MCkvMTJ8MHwwKSUxMnwwO3M9ZHwwO3Q9Y1tz
Pj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eo
aik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnVShhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wO2I9aTtpPWkrMzJ8MDtqPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tkPj4yXT1jW2o+PjJdO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNb
aj4+Ml07aj1ifDA7az1iKzh8MDtsPWIrMjR8MDtlaihsLGYpO2Y9bHwwO2w9Y1tmPj4yXXwwO2lm
KChjWzM5MjJdfDApIT0tMSl7Y1trPj4yXT0xNTY4ODtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7
ZFcoMTU2ODgsayw5Nil9az0oY1szOTIzXXwwKS0xfDA7bT1jW2wrOD4+Ml18MDtkb3tpZigoY1ts
KzEyPj4yXXwwKS1tPj4yPj4+MD5rPj4+MCl7bj1jW20rKGs8PDIpPj4yXXwwO2lmKChufDApPT0w
KXticmVha31vPW47bj1jW2Y+PjJdfDA7ZHoobil8MDtjW2o+PjJdPWNbZT4+Ml07bj1oYyhkLGos
ZyxvLDQpfDA7aWYoKGNbZz4+Ml0mNHwwKSE9MCl7cD1kfDA7cT1jW3A+PjJdfDA7cj1hfDA7Y1ty
Pj4yXT1xO2k9YjtyZXR1cm59aWYoKG58MCk8Njkpe3M9bisyZTN8MH1lbHNle3M9KG4tNjl8MCk+
Pj4wPDMxP24rMTkwMHwwOm59Y1toKzIwPj4yXT1zLTE5MDA7cD1kfDA7cT1jW3A+PjJdfDA7cj1h
fDA7Y1tyPj4yXT1xO2k9YjtyZXR1cm59fXdoaWxlKDApO2I9Yk8oNCl8MDtrcShiKTtibChifDAs
ODE3NiwxMzQpfWZ1bmN0aW9uIGdWKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTA7YT1pO2c9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+
PjJdPWNbZz4+Ml07Zz1ifDA7Yj1kfDA7ZD1mO0wzMTI3OndoaWxlKDEpe2g9Y1tnPj4yXXwwO2Rv
e2lmKChofDApPT0wKXtqPTF9ZWxzZXtrPWNbaCsxMj4+Ml18MDtpZigoa3wwKT09KGNbaCsxNj4+
Ml18MCkpe2w9YjBbY1soY1toPj4yXXwwKSszNj4+Ml0mMTI3XShoKXwwfWVsc2V7bD1jW2s+PjJd
fDB9aWYoKGx8MCk9PS0xKXtjW2c+PjJdPTA7aj0xO2JyZWFrfWVsc2V7aj0oY1tnPj4yXXwwKT09
MDticmVha319fXdoaWxlKDApO2g9Y1tiPj4yXXwwO2Rve2lmKChofDApPT0wKXttPTI1ODF9ZWxz
ZXtrPWNbaCsxMj4+Ml18MDtpZigoa3wwKT09KGNbaCsxNj4+Ml18MCkpe249YjBbY1soY1toPj4y
XXwwKSszNj4+Ml0mMTI3XShoKXwwfWVsc2V7bj1jW2s+PjJdfDB9aWYoKG58MCk9PS0xKXtjW2I+
PjJdPTA7bT0yNTgxO2JyZWFrfWVsc2V7az0oaHwwKT09MDtpZihqXmspe289aDtwPWs7YnJlYWt9
ZWxzZXtxPWg7cj1rO2JyZWFrIEwzMTI3fX19fXdoaWxlKDApO2lmKChtfDApPT0yNTgxKXttPTA7
aWYoail7cT0wO3I9MTticmVha31lbHNle289MDtwPTF9fWg9Y1tnPj4yXXwwO2s9Y1toKzEyPj4y
XXwwO2lmKChrfDApPT0oY1toKzE2Pj4yXXwwKSl7cz1iMFtjWyhjW2g+PjJdfDApKzM2Pj4yXSYx
MjddKGgpfDB9ZWxzZXtzPWNbaz4+Ml18MH1pZighKGIxW2NbKGNbZD4+Ml18MCkrMTI+PjJdJjYz
XShmLDgxOTIscyl8MCkpe3E9bztyPXA7YnJlYWt9az1jW2c+PjJdfDA7aD1rKzEyfDA7dD1jW2g+
PjJdfDA7aWYoKHR8MCk9PShjW2srMTY+PjJdfDApKXt1PWNbKGNbaz4+Ml18MCkrNDA+PjJdfDA7
YjBbdSYxMjddKGspfDA7Y29udGludWV9ZWxzZXtjW2g+PjJdPXQrNDtjb250aW51ZX19cD1jW2c+
PjJdfDA7ZG97aWYoKHB8MCk9PTApe3Y9MX1lbHNle289Y1twKzEyPj4yXXwwO2lmKChvfDApPT0o
Y1twKzE2Pj4yXXwwKSl7dz1iMFtjWyhjW3A+PjJdfDApKzM2Pj4yXSYxMjddKHApfDB9ZWxzZXt3
PWNbbz4+Ml18MH1pZigod3wwKT09LTEpe2NbZz4+Ml09MDt2PTE7YnJlYWt9ZWxzZXt2PShjW2c+
PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7ZG97aWYocil7bT0yNjAzfWVsc2V7Zz1jW3ErMTI+
PjJdfDA7aWYoKGd8MCk9PShjW3ErMTY+PjJdfDApKXt4PWIwW2NbKGNbcT4+Ml18MCkrMzY+PjJd
JjEyN10ocSl8MH1lbHNle3g9Y1tnPj4yXXwwfWlmKCh4fDApPT0tMSl7Y1tiPj4yXT0wO209MjYw
MzticmVha31pZighKHZeKHF8MCk9PTApKXticmVha31pPWE7cmV0dXJufX13aGlsZSgwKTtkb3tp
ZigobXwwKT09MjYwMyl7aWYodil7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7Y1tlPj4yXT1j
W2U+PjJdfDI7aT1hO3JldHVybn1mdW5jdGlvbiBnVyhiLGQsZSxmLGcsaCxqLGssbCl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0w
LFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9
MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTA7
bD1pO2k9aSszMjh8MDttPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW20+PjJd
O209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1sfDA7bj1sKzh8
MDtvPWwrMTZ8MDtwPWwrMjR8MDtxPWwrMzJ8MDtyPWwrNDB8MDtzPWwrNDh8MDt0PWwrNTZ8MDt1
PWwrNjR8MDt2PWwrNzJ8MDt3PWwrODB8MDt4PWwrODh8MDt5PWwrOTZ8MDt6PWwrMTEyfDA7QT1s
KzEyMHwwO0I9bCsxMjh8MDtDPWwrMTM2fDA7RD1sKzE0NHwwO0U9bCsxNTJ8MDtGPWwrMTYwfDA7
Rz1sKzE2OHwwO0g9bCsxNzZ8MDtJPWwrMTg0fDA7Sj1sKzE5MnwwO0s9bCsyMDB8MDtMPWwrMjA4
fDA7TT1sKzIxNnwwO049bCsyMjR8MDtPPWwrMjMyfDA7UD1sKzI0MHwwO1E9bCsyNDh8MDtSPWwr
MjU2fDA7Uz1sKzI2NHwwO1Q9bCsyNzJ8MDtVPWwrMjgwfDA7Vj1sKzI4OHwwO1c9bCsyOTZ8MDtY
PWwrMzA0fDA7WT1sKzMxMnwwO1o9bCszMjB8MDtjW2g+PjJdPTA7ZWooeixnKTtfPXp8MDt6PWNb
Xz4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbeT4+Ml09MTU2ODg7Y1t5KzQ+PjJdPTEyO2Nb
eSs4Pj4yXT0wO2RXKDE1Njg4LHksOTYpfXk9KGNbMzkyM118MCktMXwwOyQ9Y1t6Kzg+PjJdfDA7
ZG97aWYoKGNbeisxMj4+Ml18MCktJD4+Mj4+PjA+eT4+PjApe2FhPWNbJCsoeTw8Mik+PjJdfDA7
aWYoKGFhfDApPT0wKXticmVha31hYj1hYTthYT1jW18+PjJdfDA7ZHooYWEpfDA7TDMxOTI6ZG97
c3dpdGNoKGs8PDI0Pj4yNHwwKXtjYXNlIDEwMDpjYXNlIDEwMTp7YWE9aisxMnwwO2Nbdj4+Ml09
Y1tmPj4yXTthYz1oYyhlLHYsaCxhYiwyKXwwO2FkPWNbaD4+Ml18MDtkb3tpZigoYWQmNHwwKT09
MCl7aWYoKGFjLTF8MCk+Pj4wPj0zMSl7YnJlYWt9Y1thYT4+Ml09YWM7YnJlYWsgTDMxOTJ9fXdo
aWxlKDApO2NbaD4+Ml09YWR8NDticmVha307Y2FzZSAxMTA6Y2FzZSAxMTY6e2NbSj4+Ml09Y1tm
Pj4yXTtnVigwLGUsSixoLGFiKTticmVha307Y2FzZSA4ODp7YWM9ZCs4fDA7YWE9YjBbY1soY1th
Yz4+Ml18MCkrMjQ+PjJdJjEyN10oYWMpfDA7YWM9ZXwwO2NbWD4+Ml09Y1thYz4+Ml07Y1tZPj4y
XT1jW2Y+PjJdO2FlPWFbYWFdfDA7aWYoKGFlJjEpPT0wKXthZj1hYSs0fDA7YWc9YWErNHwwfWVs
c2V7YWg9Y1thYSs4Pj4yXXwwO2FmPWFoO2FnPWFofWFoPWFlJjI1NTtpZigoYWgmMXwwKT09MCl7
YWk9YWg+Pj4xfWVsc2V7YWk9Y1thYSs0Pj4yXXwwfWdSKFcsZCxYLFksZyxoLGosYWcsYWYrKGFp
PDwyKXwwKTtjW2FjPj4yXT1jW1c+PjJdO2JyZWFrfTtjYXNlIDk4OmNhc2UgNjY6Y2FzZSAxMDQ6
e2FjPWNbZj4+Ml18MDthYT1kKzh8MDthaD1iMFtjWyhjW2FhPj4yXXwwKSs0Pj4yXSYxMjddKGFh
KXwwO2Nbdz4+Ml09YWM7YWM9KGZTKGUsdyxhaCxhaCsyODh8MCxhYixoLDApfDApLWFofDA7aWYo
KGFjfDApPj0yODgpe2JyZWFrIEwzMTkyfWNbaisxNj4+Ml09KChhY3wwKS8xMnwwfDApJTEyfDA7
YnJlYWt9O2Nhc2UgMTEyOntjW0s+PjJdPWNbZj4+Ml07Z1goZCxqKzh8MCxlLEssaCxhYik7YnJl
YWt9O2Nhc2UgMTE0OnthYz1lfDA7Y1tNPj4yXT1jW2FjPj4yXTtjW04+PjJdPWNbZj4+Ml07Z1Io
TCxkLE0sTixnLGgsaiwyMjE2LDIyNjApO2NbYWM+PjJdPWNbTD4+Ml07YnJlYWt9O2Nhc2UgMzc6
e2NbWj4+Ml09Y1tmPj4yXTtnWSgwLGUsWixoLGFiKTticmVha307Y2FzZSA2ODp7YWM9ZXwwO2Nb
RT4+Ml09Y1thYz4+Ml07Y1tGPj4yXT1jW2Y+PjJdO2dSKEQsZCxFLEYsZyxoLGosMjI2NCwyMjk2
KTtjW2FjPj4yXT1jW0Q+PjJdO2JyZWFrfTtjYXNlIDg5OntjW20+PjJdPWNbZj4+Ml07YWM9aGMo
ZSxtLGgsYWIsNCl8MDtpZigoY1toPj4yXSY0fDApIT0wKXticmVhayBMMzE5Mn1jW2orMjA+PjJd
PWFjLTE5MDA7YnJlYWt9O2Nhc2UgODI6e2FjPWV8MDtjW1A+PjJdPWNbYWM+PjJdO2NbUT4+Ml09
Y1tmPj4yXTtnUihPLGQsUCxRLGcsaCxqLDIxOTIsMjIxMik7Y1thYz4+Ml09Y1tPPj4yXTticmVh
a307Y2FzZSA4Mzp7Y1twPj4yXT1jW2Y+PjJdO2FjPWhjKGUscCxoLGFiLDIpfDA7YWg9Y1toPj4y
XXwwO2lmKChhaCY0fDApPT0wJihhY3wwKTw2MSl7Y1tqPj4yXT1hYzticmVhayBMMzE5Mn1lbHNl
e2NbaD4+Ml09YWh8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMDY6e2Nbcz4+Ml09Y1tmPj4y
XTthaD1oYyhlLHMsaCxhYiwzKXwwO2FjPWNbaD4+Ml18MDtpZigoYWMmNHwwKT09MCYoYWh8MCk8
MzY2KXtjW2orMjg+PjJdPWFoO2JyZWFrIEwzMTkyfWVsc2V7Y1toPj4yXT1hY3w0O2JyZWFrIEwz
MTkyfWJyZWFrfTtjYXNlIDk3OmNhc2UgNjU6e2FjPWNbZj4+Ml18MDthaD1kKzh8MDthYT1iMFtj
W2NbYWg+PjJdPj4yXSYxMjddKGFoKXwwO2NbeD4+Ml09YWM7YWM9KGZTKGUseCxhYSxhYSsxNjh8
MCxhYixoLDApfDApLWFhfDA7aWYoKGFjfDApPj0xNjgpe2JyZWFrIEwzMTkyfWNbaisyND4+Ml09
KChhY3wwKS8xMnwwfDApJTd8MDticmVha307Y2FzZSA5OTp7YWM9ZCs4fDA7YWE9YjBbY1soY1th
Yz4+Ml18MCkrMTI+PjJdJjEyN10oYWMpfDA7YWM9ZXwwO2NbQj4+Ml09Y1thYz4+Ml07Y1tDPj4y
XT1jW2Y+PjJdO2FoPWFbYWFdfDA7aWYoKGFoJjEpPT0wKXthaj1hYSs0fDA7YWs9YWErNHwwfWVs
c2V7YWU9Y1thYSs4Pj4yXXwwO2FqPWFlO2FrPWFlfWFlPWFoJjI1NTtpZigoYWUmMXwwKT09MCl7
YWw9YWU+Pj4xfWVsc2V7YWw9Y1thYSs0Pj4yXXwwfWdSKEEsZCxCLEMsZyxoLGosYWssYWorKGFs
PDwyKXwwKTtjW2FjPj4yXT1jW0E+PjJdO2JyZWFrfTtjYXNlIDg0OnthYz1lfDA7Y1tTPj4yXT1j
W2FjPj4yXTtjW1Q+PjJdPWNbZj4+Ml07Z1IoUixkLFMsVCxnLGgsaiwyMTYwLDIxOTIpO2NbYWM+
PjJdPWNbUj4+Ml07YnJlYWt9O2Nhc2UgNzA6e2FjPWV8MDtjW0g+PjJdPWNbYWM+PjJdO2NbST4+
Ml09Y1tmPj4yXTtnUihHLGQsSCxJLGcsaCxqLDIxMjgsMjE2MCk7Y1thYz4+Ml09Y1tHPj4yXTti
cmVha307Y2FzZSA3Mjp7Y1t1Pj4yXT1jW2Y+PjJdO2FjPWhjKGUsdSxoLGFiLDIpfDA7YWE9Y1to
Pj4yXXwwO2lmKChhYSY0fDApPT0wJihhY3wwKTwyNCl7Y1tqKzg+PjJdPWFjO2JyZWFrIEwzMTky
fWVsc2V7Y1toPj4yXT1hYXw0O2JyZWFrIEwzMTkyfWJyZWFrfTtjYXNlIDEyMTp7Y1tuPj4yXT1j
W2Y+PjJdO2FhPWhjKGUsbixoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7YnJlYWsgTDMx
OTJ9aWYoKGFhfDApPDY5KXthbT1hYSsyZTN8MH1lbHNle2FtPShhYS02OXwwKT4+PjA8MzE/YWEr
MTkwMHwwOmFhfWNbaisyMD4+Ml09YW0tMTkwMDticmVha307Y2FzZSAxMDk6e2Nbcj4+Ml09Y1tm
Pj4yXTthYT0oaGMoZSxyLGgsYWIsMil8MCktMXwwO2FjPWNbaD4+Ml18MDtpZigoYWMmNHwwKT09
MCYoYWF8MCk8MTIpe2NbaisxNj4+Ml09YWE7YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFjfDQ7
YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgNzM6e2FjPWorOHwwO2NbdD4+Ml09Y1tmPj4yXTthYT1o
YyhlLHQsaCxhYiwyKXwwO2FlPWNbaD4+Ml18MDtkb3tpZigoYWUmNHwwKT09MCl7aWYoKGFhLTF8
MCk+Pj4wPj0xMil7YnJlYWt9Y1thYz4+Ml09YWE7YnJlYWsgTDMxOTJ9fXdoaWxlKDApO2NbaD4+
Ml09YWV8NDticmVha307Y2FzZSA3Nzp7Y1txPj4yXT1jW2Y+PjJdO2FhPWhjKGUscSxoLGFiLDIp
fDA7YWM9Y1toPj4yXXwwO2lmKChhYyY0fDApPT0wJihhYXwwKTw2MCl7Y1tqKzQ+PjJdPWFhO2Jy
ZWFrIEwzMTkyfWVsc2V7Y1toPj4yXT1hY3w0O2JyZWFrIEwzMTkyfWJyZWFrfTtjYXNlIDExOTp7
Y1tvPj4yXT1jW2Y+PjJdO2FjPWhjKGUsbyxoLGFiLDEpfDA7YWE9Y1toPj4yXXwwO2lmKChhYSY0
fDApPT0wJihhY3wwKTw3KXtjW2orMjQ+PjJdPWFjO2JyZWFrIEwzMTkyfWVsc2V7Y1toPj4yXT1h
YXw0O2JyZWFrIEwzMTkyfWJyZWFrfTtjYXNlIDEyMDp7YWE9Y1soY1tkPj4yXXwwKSsyMD4+Ml18
MDtjW1U+PjJdPWNbZT4+Ml07Y1tWPj4yXT1jW2Y+PjJdO2JYW2FhJjEyN10oYixkLFUsVixnLGgs
aik7aT1sO3JldHVybn07ZGVmYXVsdDp7Y1toPj4yXT1jW2g+PjJdfDR9fX13aGlsZSgwKTtjW2I+
PjJdPWNbZT4+Ml07aT1sO3JldHVybn19d2hpbGUoMCk7bD1iTyg0KXwwO2txKGwpO2JsKGx8MCw4
MTc2LDEzNCl9ZnVuY3Rpb24gZ1goYSxiLGUsZixnLGgpe2E9YXwwO2I9YnwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wO2o9aTtpPWkrOHwwO2s9ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbaz4+Ml07az1qfDA7bD1hKzh8MDthPWIwW2Nb
KGNbbD4+Ml18MCkrOD4+Ml0mMTI3XShsKXwwO2w9ZFthXXwwO2lmKChsJjF8MCk9PTApe209bD4+
PjF9ZWxzZXttPWNbYSs0Pj4yXXwwfWw9ZFthKzEyfDBdfDA7aWYoKGwmMXwwKT09MCl7bj1sPj4+
MX1lbHNle249Y1thKzE2Pj4yXXwwfWlmKChtfDApPT0oLW58MCkpe2NbZz4+Ml09Y1tnPj4yXXw0
O2k9ajtyZXR1cm59Y1trPj4yXT1jW2Y+PjJdO2Y9ZlMoZSxrLGEsYSsyNHwwLGgsZywwKXwwO2c9
Zi1hfDA7ZG97aWYoKGZ8MCk9PShhfDApKXtpZigoY1tiPj4yXXwwKSE9MTIpe2JyZWFrfWNbYj4+
Ml09MDtpPWo7cmV0dXJufX13aGlsZSgwKTtpZigoZ3wwKSE9MTIpe2k9ajtyZXR1cm59Zz1jW2I+
PjJdfDA7aWYoKGd8MCk+PTEyKXtpPWo7cmV0dXJufWNbYj4+Ml09ZysxMjtpPWo7cmV0dXJufQot
ZnVuY3Rpb24gZ1koYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIg
Zz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7YT1pO2c9ZDtk
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbZz4+Ml07Zz1ifDA7Yj1jW2c+PjJdfDA7
ZG97aWYoKGJ8MCk9PTApe2g9MX1lbHNle2o9Y1tiKzEyPj4yXXwwO2lmKChqfDApPT0oY1tiKzE2
Pj4yXXwwKSl7az1iMFtjWyhjW2I+PjJdfDApKzM2Pj4yXSYxMjddKGIpfDB9ZWxzZXtrPWNbaj4+
Ml18MH1pZigoa3wwKT09LTEpe2NbZz4+Ml09MDtoPTE7YnJlYWt9ZWxzZXtoPShjW2c+PjJdfDAp
PT0wO2JyZWFrfX19d2hpbGUoMCk7az1kfDA7ZD1jW2s+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2w9
MjcxNn1lbHNle2I9Y1tkKzEyPj4yXXwwO2lmKChifDApPT0oY1tkKzE2Pj4yXXwwKSl7bT1iMFtj
WyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDB9ZWxzZXttPWNbYj4+Ml18MH1pZigobXwwKT09
LTEpe2Nbaz4+Ml09MDtsPTI3MTY7YnJlYWt9ZWxzZXtiPShkfDApPT0wO2lmKGheYil7bj1kO289
YjticmVha31lbHNle2w9MjcxODticmVha319fX13aGlsZSgwKTtpZigobHwwKT09MjcxNil7aWYo
aCl7bD0yNzE4fWVsc2V7bj0wO289MX19aWYoKGx8MCk9PTI3MTgpe2NbZT4+Ml09Y1tlPj4yXXw2
O2k9YTtyZXR1cm59aD1jW2c+PjJdfDA7ZD1jW2grMTI+PjJdfDA7aWYoKGR8MCk9PShjW2grMTY+
PjJdfDApKXtwPWIwW2NbKGNbaD4+Ml18MCkrMzY+PjJdJjEyN10oaCl8MH1lbHNle3A9Y1tkPj4y
XXwwfWlmKChiMVtjWyhjW2Y+PjJdfDApKzUyPj4yXSY2M10oZixwLDApfDApPDwyND4+MjQhPTM3
KXtjW2U+PjJdPWNbZT4+Ml18NDtpPWE7cmV0dXJufXA9Y1tnPj4yXXwwO2Y9cCsxMnwwO2Q9Y1tm
Pj4yXXwwO2lmKChkfDApPT0oY1twKzE2Pj4yXXwwKSl7aD1jWyhjW3A+PjJdfDApKzQwPj4yXXww
O2IwW2gmMTI3XShwKXwwfWVsc2V7Y1tmPj4yXT1kKzR9ZD1jW2c+PjJdfDA7ZG97aWYoKGR8MCk9
PTApe3E9MX1lbHNle2Y9Y1tkKzEyPj4yXXwwO2lmKChmfDApPT0oY1tkKzE2Pj4yXXwwKSl7cj1i
MFtjWyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDB9ZWxzZXtyPWNbZj4+Ml18MH1pZigocnww
KT09LTEpe2NbZz4+Ml09MDtxPTE7YnJlYWt9ZWxzZXtxPShjW2c+PjJdfDApPT0wO2JyZWFrfX19
d2hpbGUoMCk7ZG97aWYobyl7bD0yNzQwfWVsc2V7Zz1jW24rMTI+PjJdfDA7aWYoKGd8MCk9PShj
W24rMTY+PjJdfDApKXtzPWIwW2NbKGNbbj4+Ml18MCkrMzY+PjJdJjEyN10obil8MH1lbHNle3M9
Y1tnPj4yXXwwfWlmKChzfDApPT0tMSl7Y1trPj4yXT0wO2w9Mjc0MDticmVha31pZighKHFeKG58
MCk9PTApKXticmVha31pPWE7cmV0dXJufX13aGlsZSgwKTtkb3tpZigobHwwKT09Mjc0MCl7aWYo
cSl7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7Y1tlPj4yXT1jW2U+PjJdfDI7aT1hO3JldHVy
bn1mdW5jdGlvbiBnWihhKXthPWF8MDtyZXR1cm4gMTI3fWZ1bmN0aW9uIGdfKGEpe2E9YXwwO3Jl
dHVybiAxMjd9ZnVuY3Rpb24gZyQoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZzAoYSl7YT1h
fDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnMShhKXthPWF8MDtyZXR1cm4gMTI3fWZ1bmN0aW9uIGcy
KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGczKGEpe2E9YXwwO3JldHVybiAyMTQ3NDgzNjQ3
fWZ1bmN0aW9uIGc0KGEpe2E9YXwwO3JldHVybiAyMTQ3NDgzNjQ3fWZ1bmN0aW9uIGc1KGEpe2E9
YXwwO3JldHVybiAwfWZ1bmN0aW9uIGc2KGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7
YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9
Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gZzcoYixjKXtiPWJ8MDtjPWN8MDtj
PWI7Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtj
KzJ8MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBnOChiLGMp
e2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMm
MjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1
bmN0aW9uIGc5KGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+
Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1D
JjI1NTtyZXR1cm59ZnVuY3Rpb24gaGEoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDth
W2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1D
Pj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoYihiLGMpe2I9YnwwO2M9Y3wwO2M9
YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2Mr
MnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGhjKGEsYixk
LGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9
MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTA7Zz1pO2g9YjtiPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2I+PjJdPWNbaD4+Ml07aD1hfDA7YT1jW2g+PjJdfDA7ZG97aWYoKGF8MCk9PTApe2o9
MX1lbHNle2s9Y1thKzEyPj4yXXwwO2lmKChrfDApPT0oY1thKzE2Pj4yXXwwKSl7bD1iMFtjWyhj
W2E+PjJdfDApKzM2Pj4yXSYxMjddKGEpfDB9ZWxzZXtsPWNbaz4+Ml18MH1pZigobHwwKT09LTEp
e2NbaD4+Ml09MDtqPTE7YnJlYWt9ZWxzZXtqPShjW2g+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUo
MCk7bD1ifDA7Yj1jW2w+PjJdfDA7ZG97aWYoKGJ8MCk9PTApe209Mjl9ZWxzZXthPWNbYisxMj4+
Ml18MDtpZigoYXwwKT09KGNbYisxNj4+Ml18MCkpe249YjBbY1soY1tiPj4yXXwwKSszNj4+Ml0m
MTI3XShiKXwwfWVsc2V7bj1jW2E+PjJdfDB9aWYoKG58MCk9PS0xKXtjW2w+PjJdPTA7bT0yOTti
cmVha31lbHNle2lmKGpeKGJ8MCk9PTApe289YjticmVha31lbHNle209MzE7YnJlYWt9fX19d2hp
bGUoMCk7aWYoKG18MCk9PTI5KXtpZihqKXttPTMxfWVsc2V7bz0wfX1pZigobXwwKT09MzEpe2Nb
ZD4+Ml09Y1tkPj4yXXw2O3A9MDtpPWc7cmV0dXJuIHB8MH1qPWNbaD4+Ml18MDtiPWNbaisxMj4+
Ml18MDtpZigoYnwwKT09KGNbaisxNj4+Ml18MCkpe3E9YjBbY1soY1tqPj4yXXwwKSszNj4+Ml0m
MTI3XShqKXwwfWVsc2V7cT1jW2I+PjJdfDB9Yj1lO2lmKCEoYjFbY1soY1tiPj4yXXwwKSsxMj4+
Ml0mNjNdKGUsMjA0OCxxKXwwKSl7Y1tkPj4yXT1jW2Q+PjJdfDQ7cD0wO2k9ZztyZXR1cm4gcHww
fWo9ZTtuPShiMVtjWyhjW2o+PjJdfDApKzUyPj4yXSY2M10oZSxxLDApfDApPDwyND4+MjQ7cT1j
W2g+PjJdfDA7YT1xKzEyfDA7az1jW2E+PjJdfDA7aWYoKGt8MCk9PShjW3ErMTY+PjJdfDApKXty
PWNbKGNbcT4+Ml18MCkrNDA+PjJdfDA7YjBbciYxMjddKHEpfDA7cz1uO3Q9Zjt1PW99ZWxzZXtj
W2E+PjJdPWsrNDtzPW47dD1mO3U9b313aGlsZSgxKXt2PXMtNDh8MDtvPXQtMXwwO2Y9Y1toPj4y
XXwwO2Rve2lmKChmfDApPT0wKXt3PTB9ZWxzZXtuPWNbZisxMj4+Ml18MDtpZigobnwwKT09KGNb
ZisxNj4+Ml18MCkpe3g9YjBbY1soY1tmPj4yXXwwKSszNj4+Ml0mMTI3XShmKXwwfWVsc2V7eD1j
W24+PjJdfDB9aWYoKHh8MCk9PS0xKXtjW2g+PjJdPTA7dz0wO2JyZWFrfWVsc2V7dz1jW2g+PjJd
fDA7YnJlYWt9fX13aGlsZSgwKTtmPSh3fDApPT0wO2lmKCh1fDApPT0wKXt5PXc7ej0wfWVsc2V7
bj1jW3UrMTI+PjJdfDA7aWYoKG58MCk9PShjW3UrMTY+PjJdfDApKXtBPWIwW2NbKGNbdT4+Ml18
MCkrMzY+PjJdJjEyN10odSl8MH1lbHNle0E9Y1tuPj4yXXwwfWlmKChBfDApPT0tMSl7Y1tsPj4y
XT0wO0I9MH1lbHNle0I9dX15PWNbaD4+Ml18MDt6PUJ9Qz0oenwwKT09MDtpZighKChmXkMpJihv
fDApPjApKXticmVha31mPWNbeSsxMj4+Ml18MDtpZigoZnwwKT09KGNbeSsxNj4+Ml18MCkpe0Q9
YjBbY1soY1t5Pj4yXXwwKSszNj4+Ml0mMTI3XSh5KXwwfWVsc2V7RD1jW2Y+PjJdfDB9aWYoIShi
MVtjWyhjW2I+PjJdfDApKzEyPj4yXSY2M10oZSwyMDQ4LEQpfDApKXtwPXY7bT04MTticmVha31m
PSgoYjFbY1soY1tqPj4yXXwwKSs1Mj4+Ml0mNjNdKGUsRCwwKXwwKTw8MjQ+PjI0KSsodioxMHww
KXwwO249Y1toPj4yXXwwO2s9bisxMnwwO2E9Y1trPj4yXXwwO2lmKChhfDApPT0oY1tuKzE2Pj4y
XXwwKSl7cT1jWyhjW24+PjJdfDApKzQwPj4yXXwwO2IwW3EmMTI3XShuKXwwO3M9Zjt0PW87dT16
O2NvbnRpbnVlfWVsc2V7Y1trPj4yXT1hKzQ7cz1mO3Q9bzt1PXo7Y29udGludWV9fWlmKChtfDAp
PT04MSl7aT1nO3JldHVybiBwfDB9ZG97aWYoKHl8MCk9PTApe0U9MX1lbHNle3U9Y1t5KzEyPj4y
XXwwO2lmKCh1fDApPT0oY1t5KzE2Pj4yXXwwKSl7Rj1iMFtjWyhjW3k+PjJdfDApKzM2Pj4yXSYx
MjddKHkpfDB9ZWxzZXtGPWNbdT4+Ml18MH1pZigoRnwwKT09LTEpe2NbaD4+Ml09MDtFPTE7YnJl
YWt9ZWxzZXtFPShjW2g+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7ZG97aWYoQyl7bT03NX1l
bHNle2g9Y1t6KzEyPj4yXXwwO2lmKChofDApPT0oY1t6KzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW3o+
PjJdfDApKzM2Pj4yXSYxMjddKHopfDB9ZWxzZXtHPWNbaD4+Ml18MH1pZigoR3wwKT09LTEpe2Nb
bD4+Ml09MDttPTc1O2JyZWFrfWlmKEVeKHp8MCk9PTApe3A9dn1lbHNle2JyZWFrfWk9ZztyZXR1
cm4gcHwwfX13aGlsZSgwKTtkb3tpZigobXwwKT09NzUpe2lmKEUpe2JyZWFrfWVsc2V7cD12fWk9
ZztyZXR1cm4gcHwwfX13aGlsZSgwKTtjW2Q+PjJdPWNbZD4+Ml18MjtwPXY7aT1nO3JldHVybiBw
fDB9ZnVuY3Rpb24gaGQoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MDtnPWk7aT1pKzExMnwwO2Y9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2U+PjJdPWNbZj4+Ml07Zj1nfDA7bD1nKzh8MDttPWx8MDtuPWZ8MDthW25dPTM3O289ZisxfDA7
YVtvXT1qO3A9ZisyfDA7YVtwXT1rO2FbZiszfDBdPTA7aWYoazw8MjQ+PjI0IT0wKXthW29dPWs7
YVtwXT1qfWo9YmsobXwwLDEwMCxufDAsaHwwLGNbZCs4Pj4yXXwwKXwwO2Q9bCtqfDA7bD1jW2U+
PjJdfDA7aWYoKGp8MCk9PTApe3E9bDtyPWJ8MDtjW3I+PjJdPXE7aT1nO3JldHVybn1lbHNle3M9
bDt0PW19d2hpbGUoMSl7bT1hW3RdfDA7aWYoKHN8MCk9PTApe3U9MH1lbHNle2w9cysyNHwwO2o9
Y1tsPj4yXXwwO2lmKChqfDApPT0oY1tzKzI4Pj4yXXwwKSl7dj1iX1tjWyhjW3M+PjJdfDApKzUy
Pj4yXSYzMV0ocyxtJjI1NSl8MH1lbHNle2NbbD4+Ml09aisxO2Fbal09bTt2PW0mMjU1fXU9KHZ8
MCk9PS0xPzA6c31tPXQrMXwwO2lmKChtfDApPT0oZHwwKSl7cT11O2JyZWFrfWVsc2V7cz11O3Q9
bX19cj1ifDA7Y1tyPj4yXT1xO2k9ZztyZXR1cm59ZnVuY3Rpb24gaGUoYSxiLGQsZSxmLGcsaCxq
KXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtmPWk7aT1pKzQwOHwwO2U9ZDtkPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbZT4+Ml07ZT1mfDA7az1mKzQwMHwwO2w9ZXwwO2Nbaz4+
Ml09ZSs0MDA7aEMoYis4fDAsbCxrLGcsaCxqKTtqPWNbaz4+Ml18MDtrPWNbZD4+Ml18MDtpZigo
bHwwKT09KGp8MCkpe209aztuPWF8MDtjW24+PjJdPW07aT1mO3JldHVybn1lbHNle289aztwPWx9
d2hpbGUoMSl7bD1jW3A+PjJdfDA7aWYoKG98MCk9PTApe3E9MH1lbHNle2s9bysyNHwwO2Q9Y1tr
Pj4yXXwwO2lmKChkfDApPT0oY1tvKzI4Pj4yXXwwKSl7cj1iX1tjWyhjW28+PjJdfDApKzUyPj4y
XSYzMV0obyxsKXwwfWVsc2V7Y1trPj4yXT1kKzQ7Y1tkPj4yXT1sO3I9bH1xPShyfDApPT0tMT8w
Om99bD1wKzR8MDtpZigobHwwKT09KGp8MCkpe209cTticmVha31lbHNle289cTtwPWx9fW49YXww
O2Nbbj4+Ml09bTtpPWY7cmV0dXJufWZ1bmN0aW9uIGhmKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7
cmV0dXJufWZ1bmN0aW9uIGhnKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhoKGEs
Yil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoaShhLGIpe2E9YXww
O2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaGooYSxiKXthPWF8MDtiPWJ8MDtr
JChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhrKGEsYil7YT1hfDA7Yj1ifDA7ZF8oYSwxLDQ1
KTtyZXR1cm59ZnVuY3Rpb24gaGwoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24gaG0oYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaG4oYSxiKXthPWF8MDtiPWJ8
MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhvKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXww
LDAsMTIpO3JldHVybn1mdW5jdGlvbiBocChhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTty
ZXR1cm59ZnVuY3Rpb24gaHEoYSxiKXthPWF8MDtiPWJ8MDtkXyhhLDEsNDUpO3JldHVybn1mdW5j
dGlvbiBocihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBocyhhKXthPWF8
MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBodChhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEy
KTtyZXR1cm59ZnVuY3Rpb24gaHUoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJu
fWZ1bmN0aW9uIGh2KGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlv
biBodyhhLGIpe2E9YXwwO2I9YnwwO2V5KGEsMSw0NSk7cmV0dXJufWZ1bmN0aW9uIGh4KGEpe2E9
YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGh5KGIpe2I9YnwwO3ZhciBkPTAsZT0w
LGY9MCxnPTA7ZD1iO2U9Yis4fDA7Zj1jW2U+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTtpZigoZnwwKT09KGNbMjk1OF18MCkpe2c9YnwwO2RlKGcpO2tTKGQpO3JldHVybn1hNyhjW2U+
PjJdfDApO2c9YnwwO2RlKGcpO2tTKGQpO3JldHVybn1mdW5jdGlvbiBoeihiKXtiPWJ8MDt2YXIg
ZD0wLGU9MCxmPTA7ZD1iKzh8MDtlPWNbZD4+Ml18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O2lmKChlfDApPT0oY1syOTU4XXwwKSl7Zj1ifDA7ZGUoZik7cmV0dXJufWE3KGNbZD4+Ml18MCk7
Zj1ifDA7ZGUoZik7cmV0dXJufWZ1bmN0aW9uIGhBKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxn
PTA7ZD1iO2U9Yis4fDA7Zj1jW2U+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMo
MTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigo
ZnwwKT09KGNbMjk1OF18MCkpe2c9YnwwO2RlKGcpO2tTKGQpO3JldHVybn1hNyhjW2U+PjJdfDAp
O2c9YnwwO2RlKGcpO2tTKGQpO3JldHVybn1mdW5jdGlvbiBoQihiKXtiPWJ8MDt2YXIgZD0wLGU9
MCxmPTA7ZD1iKzh8MDtlPWNbZD4+Ml18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygx
NjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChl
fDApPT0oY1syOTU4XXwwKSl7Zj1ifDA7ZGUoZik7cmV0dXJufWE3KGNbZD4+Ml18MCk7Zj1ifDA7
ZGUoZik7cmV0dXJufWZ1bmN0aW9uIGhDKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MDtqPWk7
aT1pKzEyMHwwO2s9anwwO2w9aisxMTJ8MDttPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztuPWorOHww
O289a3wwO2Fbb109Mzc7cD1rKzF8MDthW3BdPWc7cT1rKzJ8MDthW3FdPWg7YVtrKzN8MF09MDtp
ZihoPDwyND4+MjQhPTApe2FbcF09aDthW3FdPWd9Zz1ifDA7YmsobnwwLDEwMCxvfDAsZnwwLGNb
Zz4+Ml18MCl8MDtjW2w+PjJdPTA7Y1tsKzQ+PjJdPTA7Y1ttPj4yXT1uO249KGNbZT4+Ml18MCkt
ZD4+MjtmPWJCKGNbZz4+Ml18MCl8MDtnPWtlKGQsbSxuLGwpfDA7aWYoKGZ8MCkhPTApe2JCKGZ8
MCl8MH1pZigoZ3wwKT09LTEpe2hWKDkwNCl9ZWxzZXtjW2U+PjJdPWQrKGc8PDIpO2k9ajtyZXR1
cm59fWZ1bmN0aW9uIGhEKGEpe2E9YXwwO3JldHVybiAyMTQ3NDgzNjQ3fWZ1bmN0aW9uIGhFKGEp
e2E9YXwwO3JldHVybiAyMTQ3NDgzNjQ3fWZ1bmN0aW9uIGhGKGEpe2E9YXwwO3JldHVybiAwfWZ1
bmN0aW9uIGhHKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBoSChiLGMpe2I9YnwwO2M9Y3wwO2M9
YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2Mr
MnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGhJKGIsYyl7
Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYy
NTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVu
Y3Rpb24gaEooYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaEsoYSxiKXthPWF8MDti
PWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhMKGEsYil7YT1hfDA7Yj1ifDA7ayQo
YXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoTShhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEy
KTtyZXR1cm59ZnVuY3Rpb24gaE4oYSxiKXthPWF8MDtiPWJ8MDtleShhLDEsNDUpO3JldHVybn1m
dW5jdGlvbiBoTyhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBoUChhKXth
PWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoUShiLGQsZSxmLGcsaCxqLGspe2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0w
LFI9MCxTPTA7ZD1pO2k9aSsyODB8MDtsPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1k
fDA7bT1kKzE2fDA7bj1kKzEyMHwwO289ZCsxMjh8MDtwPWQrMTM2fDA7cT1kKzE0NHwwO3I9ZCsx
NTJ8MDtzPWQrMTYwfDA7dD1kKzE3NnwwO3U9bnwwO2NbdT4+Ml09bTt2PW4rNHwwO2Nbdj4+Ml09
MTY2O3c9bSsxMDB8MDtlaihwLGgpO209cHwwO3g9Y1ttPj4yXXwwO2lmKChjWzM5MjRdfDApIT0t
MSl7Y1tsPj4yXT0xNTY5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9
bD0oY1szOTI1XXwwKS0xfDA7eT1jW3grOD4+Ml18MDtkb3tpZigoY1t4KzEyPj4yXXwwKS15Pj4y
Pj4+MD5sPj4+MCl7ej1jW3krKGw8PDIpPj4yXXwwO2lmKCh6fDApPT0wKXticmVha31BPXo7YVtx
XT0wO0I9ZnwwO2Nbcj4+Ml09Y1tCPj4yXTtkb3tpZihoUihlLHIsZyxwLGNbaCs0Pj4yXXwwLGos
cSxBLG4sbyx3KXwwKXtDPXN8MDtEPWNbKGNbej4+Ml18MCkrMzI+PjJdfDA7Y2FbRCYxNV0oQSwy
MTEyLDIxMjIsQyl8MDtEPXR8MDtFPWNbbz4+Ml18MDtGPWNbdT4+Ml18MDtHPUUtRnwwO2Rve2lm
KChHfDApPjk4KXtIPWtKKEcrMnwwKXwwO2lmKChIfDApIT0wKXtJPUg7Sj1IO2JyZWFrfWtYKCk7
ST0wO0o9MH1lbHNle0k9RDtKPTB9fXdoaWxlKDApO2lmKChhW3FdJjEpPT0wKXtLPUl9ZWxzZXth
W0ldPTQ1O0s9SSsxfDB9aWYoRj4+PjA8RT4+PjApe0c9cysxMHwwO0g9cztMPUs7TT1GO3doaWxl
KDEpe049Qzt3aGlsZSgxKXtpZigoTnwwKT09KEd8MCkpe089RzticmVha31pZigoYVtOXXwwKT09
KGFbTV18MCkpe089TjticmVha31lbHNle049TisxfDB9fWFbTF09YVsyMTEyKyhPLUgpfDBdfDA7
Tj1NKzF8MDtQPUwrMXwwO2lmKE4+Pj4wPChjW28+PjJdfDApPj4+MCl7TD1QO009Tn1lbHNle1E9
UDticmVha319fWVsc2V7UT1LfWFbUV09MDtNPWJEKER8MCwxNDA4LChMPWksaT1pKzh8MCxjW0w+
PjJdPWssTCl8MCl8MDtpPUw7aWYoKE18MCk9PTEpe2lmKChKfDApPT0wKXticmVha31rSyhKKTti
cmVha31NPWJPKDgpfDA7ZEUoTSwxMzY4KTtibChNfDAsODE5MiwyMil9fXdoaWxlKDApO0E9ZXww
O3o9Y1tBPj4yXXwwO2Rve2lmKCh6fDApPT0wKXtSPTB9ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9
KGNbeisxNj4+Ml18MCkpe1I9ejticmVha31pZigoYjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3
XSh6KXwwKSE9LTEpe1I9ejticmVha31jW0E+PjJdPTA7Uj0wfX13aGlsZSgwKTtBPShSfDApPT0w
O3o9Y1tCPj4yXXwwO2Rve2lmKCh6fDApPT0wKXtTPTI0NH1lbHNle2lmKChjW3orMTI+PjJdfDAp
IT0oY1t6KzE2Pj4yXXwwKSl7aWYoQSl7YnJlYWt9ZWxzZXtTPTI0NjticmVha319aWYoKGIwW2Nb
KGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCk9PS0xKXtjW0I+PjJdPTA7Uz0yNDQ7YnJlYWt9
ZWxzZXtpZihBXih6fDApPT0wKXticmVha31lbHNle1M9MjQ2O2JyZWFrfX19fXdoaWxlKDApO2lm
KChTfDApPT0yNDQpe2lmKEEpe1M9MjQ2fX1pZigoU3wwKT09MjQ2KXtjW2o+PjJdPWNbaj4+Ml18
Mn1jW2I+PjJdPVI7ej1jW20+PjJdfDA7ZHooeil8MDt6PWNbdT4+Ml18MDtjW3U+PjJdPTA7aWYo
KHp8MCk9PTApe2k9ZDtyZXR1cm59YllbY1t2Pj4yXSY1MTFdKHopO2k9ZDtyZXR1cm59fXdoaWxl
KDApO2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGhSKGUsZixnLGgs
aixrLGwsbSxuLG8scCl7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7
bT1tfDA7bj1ufDA7bz1vfDA7cD1wfDA7dmFyIHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0w
LF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9
MCxhaz0wLGFsPTAsYW09MCxhbj0wLGFvPTAsYXA9MCxhcT0wLGFyPTAsYXM9MCxhdD0wLGF1PTAs
YXY9MCxhdz0wLGF4PTAsYXk9MCxhej0wLGFBPTAsYUI9MCxhQz0wLGFEPTAsYUU9MCxhRj0wLGFH
PTAsYUg9MCxhST0wLGFKPTAsYUs9MCxhTD0wLGFNPTAsYU49MCxhTz0wLGFQPTAsYVE9MCxhUj0w
LGFTPTAsYVQ9MCxhVT0wLGFWPTAsYVc9MCxhWD0wLGFZPTAsYVo9MCxhXz0wLGEkPTAsYTA9MCxh
MT0wLGEyPTAsYTM9MCxhND0wLGE1PTAsYTY9MCxhNz0wLGE4PTAsYTk9MCxiYT0wLGJiPTAsYmM9
MCxiZD0wLGJlPTAsYmY9MCxiZz0wLGJoPTAsYmk9MCxiaj0wLGJrPTAsYmw9MCxibT0wLGJuPTAs
Ym89MCxicD0wLGJxPTAsYnI9MCxicz0wLGJ0PTAsYnU9MCxidj0wLGJ3PTAsYng9MCxieT0wLGJ6
PTAsYkE9MCxiQj0wLGJDPTAsYkQ9MCxiRT0wO3E9aTtpPWkrNDQwfDA7cj1mO2Y9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tyPj4yXTtyPXF8MDtzPXErNDAwfDA7dD1xKzQwOHwwO3U9
cSs0MTZ8MDt2PXErNDI0fDA7dz12O3g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt5PWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7ej1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8MztCPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztDPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztE
PXJ8MDtrJCh3fDAsMCwxMik7RT14O0Y9eTtHPXo7SD1BO2skKEV8MCwwLDEyKTtrJChGfDAsMCwx
Mik7ayQoR3wwLDAsMTIpO2skKEh8MCwwLDEyKTtoWChnLGgscyx0LHUsdix4LHkseixCKTtoPW58
MDtjW28+PjJdPWNbaD4+Ml07Zz1lfDA7ZT1mfDA7Zj1tKzh8MDttPXorMXwwO0k9eis0fDA7Sj16
Kzh8MDtLPXkrMXwwO0w9eSs0fDA7TT15Kzh8MDtOPShqJjUxMnwwKSE9MDtqPXgrMXwwO089eCs0
fDA7UD14Kzh8MDtRPUErMXwwO1I9QSs0fDA7Uz1BKzh8MDtUPXMrM3wwO1U9bis0fDA7bj12KzR8
MDtWPXA7cD0xNjY7Vz1EO1g9RDtEPXIrNDAwfDA7cj0wO1k9MDtMMjg2OndoaWxlKDEpe1o9Y1tn
Pj4yXXwwO2Rve2lmKChafDApPT0wKXtfPTB9ZWxzZXtpZigoY1taKzEyPj4yXXwwKSE9KGNbWisx
Nj4+Ml18MCkpe189WjticmVha31pZigoYjBbY1soY1taPj4yXXwwKSszNj4+Ml0mMTI3XShaKXww
KT09LTEpe2NbZz4+Ml09MDtfPTA7YnJlYWt9ZWxzZXtfPWNbZz4+Ml18MDticmVha319fXdoaWxl
KDApO1o9KF98MCk9PTA7JD1jW2U+PjJdfDA7ZG97aWYoKCR8MCk9PTApe2FhPTI3MX1lbHNle2lm
KChjWyQrMTI+PjJdfDApIT0oY1skKzE2Pj4yXXwwKSl7aWYoWil7YWI9JDticmVha31lbHNle2Fj
PXA7YWQ9VzthZT1YO2FmPXI7YWE9NTIzO2JyZWFrIEwyODZ9fWlmKChiMFtjWyhjWyQ+PjJdfDAp
KzM2Pj4yXSYxMjddKCQpfDApPT0tMSl7Y1tlPj4yXT0wO2FhPTI3MTticmVha31lbHNle2lmKFop
e2FiPSQ7YnJlYWt9ZWxzZXthYz1wO2FkPVc7YWU9WDthZj1yO2FhPTUyMzticmVhayBMMjg2fX19
fXdoaWxlKDApO2lmKChhYXwwKT09MjcxKXthYT0wO2lmKFope2FjPXA7YWQ9VzthZT1YO2FmPXI7
YWE9NTIzO2JyZWFrfWVsc2V7YWI9MH19TDMwODpkb3tzd2l0Y2goYVtzK1l8MF18MCl7Y2FzZSAx
OntpZigoWXwwKT09Myl7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01MjM7YnJlYWsgTDI4Nn0kPWNb
Zz4+Ml18MDthZz1jWyQrMTI+PjJdfDA7aWYoKGFnfDApPT0oY1skKzE2Pj4yXXwwKSl7YWg9KGIw
W2NbKGNbJD4+Ml18MCkrMzY+PjJdJjEyN10oJCl8MCkmMjU1fWVsc2V7YWg9YVthZ118MH1pZihh
aDw8MjQ+PjI0PD0tMSl7YWE9Mjk2O2JyZWFrIEwyODZ9aWYoKGJbKGNbZj4+Ml18MCkrKGFoPDwy
ND4+MjQ8PDEpPj4xXSY4MTkyKT09MCl7YWE9Mjk2O2JyZWFrIEwyODZ9YWc9Y1tnPj4yXXwwOyQ9
YWcrMTJ8MDthaT1jWyQ+PjJdfDA7aWYoKGFpfDApPT0oY1thZysxNj4+Ml18MCkpe2FqPShiMFtj
WyhjW2FnPj4yXXwwKSs0MD4+Ml0mMTI3XShhZyl8MCkmMjU1fWVsc2V7Y1skPj4yXT1haSsxO2Fq
PWFbYWldfDB9ZFUoQSxhaik7YWE9Mjk3O2JyZWFrfTtjYXNlIDM6e2FpPWFbRl18MDskPWFpJjI1
NTthZz0oJCYxfDApPT0wPyQ+Pj4xOmNbTD4+Ml18MDskPWFbR118MDthaz0kJjI1NTthbD0oYWsm
MXwwKT09MD9haz4+PjE6Y1tJPj4yXXwwO2lmKChhZ3wwKT09KC1hbHwwKSl7YW09cjthbj1EO2Fv
PVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1haz0oYWd8MCk9PTA7YWc9Y1tnPj4yXXwwO2Fz
PWNbYWcrMTI+PjJdfDA7YXQ9Y1thZysxNj4+Ml18MDthdT0oYXN8MCk9PShhdHwwKTtpZighKGFr
fChhbHwwKT09MCkpe2lmKGF1KXthbD0oYjBbY1soY1thZz4+Ml18MCkrMzY+PjJdJjEyN10oYWcp
fDApJjI1NTthdj1jW2c+PjJdfDA7YXc9YWw7YXg9YVtGXXwwO2F5PWF2O2F6PWNbYXYrMTI+PjJd
fDA7YUE9Y1thdisxNj4+Ml18MH1lbHNle2F3PWFbYXNdfDA7YXg9YWk7YXk9YWc7YXo9YXM7YUE9
YXR9YXQ9YXkrMTJ8MDthdj0oYXp8MCk9PShhQXwwKTtpZihhdzw8MjQ+PjI0PT0oYVsoYXgmMSk9
PTA/SzpjW00+PjJdfDBdfDApKXtpZihhdil7YWw9Y1soY1theT4+Ml18MCkrNDA+PjJdfDA7YjBb
YWwmMTI3XShheSl8MH1lbHNle2NbYXQ+PjJdPWF6KzF9YXQ9ZFtGXXwwO2FtPSgoYXQmMXwwKT09
MD9hdD4+PjE6Y1tMPj4yXXwwKT4+PjA+MT95OnI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2Jy
ZWFrIEwzMDh9aWYoYXYpe2FCPShiMFtjWyhjW2F5Pj4yXXwwKSszNj4+Ml0mMTI3XShheSl8MCkm
MjU1fWVsc2V7YUI9YVthel18MH1pZihhQjw8MjQ+PjI0IT0oYVsoYVtHXSYxKT09MD9tOmNbSj4+
Ml18MF18MCkpe2FhPTM2MzticmVhayBMMjg2fWF2PWNbZz4+Ml18MDthdD1hdisxMnwwO2FsPWNb
YXQ+PjJdfDA7aWYoKGFsfDApPT0oY1thdisxNj4+Ml18MCkpe2FDPWNbKGNbYXY+PjJdfDApKzQw
Pj4yXXwwO2IwW2FDJjEyN10oYXYpfDB9ZWxzZXtjW2F0Pj4yXT1hbCsxfWFbbF09MTthbD1kW0dd
fDA7YW09KChhbCYxfDApPT0wP2FsPj4+MTpjW0k+PjJdfDApPj4+MD4xP3o6cjthbj1EO2FvPVg7
YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1pZihhayl7aWYoYXUpe2FrPShiMFtjWyhjW2FnPj4y
XXwwKSszNj4+Ml0mMTI3XShhZyl8MCkmMjU1O2FEPWFrO2FFPWFbR118MH1lbHNle2FEPWFbYXNd
fDA7YUU9JH1pZihhRDw8MjQ+PjI0IT0oYVsoYUUmMSk9PTA/bTpjW0o+PjJdfDBdfDApKXthbT1y
O2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fSQ9Y1tnPj4yXXwwO2FrPSQrMTJ8
MDthbD1jW2FrPj4yXXwwO2lmKChhbHwwKT09KGNbJCsxNj4+Ml18MCkpe2F0PWNbKGNbJD4+Ml18
MCkrNDA+PjJdfDA7YjBbYXQmMTI3XSgkKXwwfWVsc2V7Y1thaz4+Ml09YWwrMX1hW2xdPTE7YWw9
ZFtHXXwwO2FtPSgoYWwmMXwwKT09MD9hbD4+PjE6Y1tJPj4yXXwwKT4+PjA+MT96OnI7YW49RDth
bz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9aWYoYXUpe2F1PShiMFtjWyhjW2FnPj4yXXww
KSszNj4+Ml0mMTI3XShhZyl8MCkmMjU1O2FGPWF1O2FHPWFbRl18MH1lbHNle2FGPWFbYXNdfDA7
YUc9YWl9aWYoYUY8PDI0Pj4yNCE9KGFbKGFHJjEpPT0wP0s6Y1tNPj4yXXwwXXwwKSl7YVtsXT0x
O2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9YWk9Y1tnPj4yXXwwO2Fz
PWFpKzEyfDA7YXU9Y1thcz4+Ml18MDtpZigoYXV8MCk9PShjW2FpKzE2Pj4yXXwwKSl7YWc9Y1so
Y1thaT4+Ml18MCkrNDA+PjJdfDA7YjBbYWcmMTI3XShhaSl8MH1lbHNle2NbYXM+PjJdPWF1KzF9
YXU9ZFtGXXwwO2FtPSgoYXUmMXwwKT09MD9hdT4+PjE6Y1tMPj4yXXwwKT4+PjA+MT95OnI7YW49
RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrfTtjYXNlIDA6e2FhPTI5NzticmVha307Y2FzZSAy
OntpZighKChyfDApIT0wfFk+Pj4wPDIpKXtpZigoWXwwKT09Mil7YUg9KGFbVF18MCkhPTB9ZWxz
ZXthSD0wfWlmKCEoTnxhSCkpe2FtPTA7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEwz
MDh9fWF1PWFbRV18MDthcz0oYXUmMSk9PTA/ajpjW1A+PjJdfDA7TDM4Mjpkb3tpZigoWXwwKT09
MCl7YUk9YXN9ZWxzZXtpZigoZFtzKyhZLTEpfDBdfDApPj0yKXthST1hczticmVha31haT1hdSYy
NTU7YWc9YXMrKChhaSYxfDApPT0wP2FpPj4+MTpjW08+PjJdfDApfDA7YWk9YXM7d2hpbGUoMSl7
aWYoKGFpfDApPT0oYWd8MCkpe2FKPWFnO2JyZWFrfWFsPWFbYWldfDA7aWYoYWw8PDI0Pj4yNDw9
LTEpe2FKPWFpO2JyZWFrfWlmKChiWyhjW2Y+PjJdfDApKyhhbDw8MjQ+PjI0PDwxKT4+MV0mODE5
Mik9PTApe2FKPWFpO2JyZWFrfWVsc2V7YWk9YWkrMXwwfX1haT1hSi1hc3wwO2FnPWFbSF18MDth
bD1hZyYyNTU7YWs9KGFsJjF8MCk9PTA/YWw+Pj4xOmNbUj4+Ml18MDtpZihhaT4+PjA+YWs+Pj4w
KXthST1hczticmVha31hbD0oYWcmMSk9PTA/UTpjW1M+PjJdfDA7YWc9YWwrYWt8MDtpZigoYUp8
MCk9PShhc3wwKSl7YUk9YXM7YnJlYWt9JD1hczthdD1hbCsoYWstYWkpfDA7d2hpbGUoMSl7aWYo
KGFbYXRdfDApIT0oYVskXXwwKSl7YUk9YXM7YnJlYWsgTDM4Mn1haT1hdCsxfDA7aWYoKGFpfDAp
PT0oYWd8MCkpe2FJPWFKO2JyZWFrfWVsc2V7JD0kKzF8MDthdD1haX19fX13aGlsZSgwKTthdD1h
dSYyNTU7TDM5Njpkb3tpZigoYUl8MCk9PShhcysoKGF0JjF8MCk9PTA/YXQ+Pj4xOmNbTz4+Ml18
MCl8MCkpe2FLPWFJfWVsc2V7JD1hYjthZz1hSTt3aGlsZSgxKXthaT1jW2c+PjJdfDA7ZG97aWYo
KGFpfDApPT0wKXthTD0wfWVsc2V7aWYoKGNbYWkrMTI+PjJdfDApIT0oY1thaSsxNj4+Ml18MCkp
e2FMPWFpO2JyZWFrfWlmKChiMFtjWyhjW2FpPj4yXXwwKSszNj4+Ml0mMTI3XShhaSl8MCk9PS0x
KXtjW2c+PjJdPTA7YUw9MDticmVha31lbHNle2FMPWNbZz4+Ml18MDticmVha319fXdoaWxlKDAp
O2FpPShhTHwwKT09MDtkb3tpZigoJHwwKT09MCl7YWE9MzkyfWVsc2V7aWYoKGNbJCsxMj4+Ml18
MCkhPShjWyQrMTY+PjJdfDApKXtpZihhaSl7YU09JDticmVha31lbHNle2FLPWFnO2JyZWFrIEwz
OTZ9fWlmKChiMFtjWyhjWyQ+PjJdfDApKzM2Pj4yXSYxMjddKCQpfDApPT0tMSl7Y1tlPj4yXT0w
O2FhPTM5MjticmVha31lbHNle2lmKGFpKXthTT0kO2JyZWFrfWVsc2V7YUs9YWc7YnJlYWsgTDM5
Nn19fX13aGlsZSgwKTtpZigoYWF8MCk9PTM5Mil7YWE9MDtpZihhaSl7YUs9YWc7YnJlYWsgTDM5
Nn1lbHNle2FNPTB9fWFrPWNbZz4+Ml18MDthbD1jW2FrKzEyPj4yXXwwO2lmKChhbHwwKT09KGNb
YWsrMTY+PjJdfDApKXthTj0oYjBbY1soY1thaz4+Ml18MCkrMzY+PjJdJjEyN10oYWspfDApJjI1
NX1lbHNle2FOPWFbYWxdfDB9aWYoYU48PDI0Pj4yNCE9KGFbYWddfDApKXthSz1hZzticmVhayBM
Mzk2fWFsPWNbZz4+Ml18MDthaz1hbCsxMnwwO2F2PWNbYWs+PjJdfDA7aWYoKGF2fDApPT0oY1th
bCsxNj4+Ml18MCkpe2FDPWNbKGNbYWw+PjJdfDApKzQwPj4yXXwwO2IwW2FDJjEyN10oYWwpfDB9
ZWxzZXtjW2FrPj4yXT1hdisxfWF2PWFnKzF8MDthaz1hW0VdfDA7YWw9YWsmMjU1O2lmKChhdnww
KT09KCgoYWsmMSk9PTA/ajpjW1A+PjJdfDApKygoYWwmMXwwKT09MD9hbD4+PjE6Y1tPPj4yXXww
KXwwKSl7YUs9YXY7YnJlYWt9ZWxzZXskPWFNO2FnPWF2fX19fXdoaWxlKDApO2lmKCFOKXthbT1y
O2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWF0PWFbRV18MDthcz1hdCYyNTU7
aWYoKGFLfDApPT0oKChhdCYxKT09MD9qOmNbUD4+Ml18MCkrKChhcyYxfDApPT0wP2FzPj4+MTpj
W08+PjJdfDApfDApKXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9Vn1lbHNle2FhPTQwNTti
cmVhayBMMjg2fWJyZWFrfTtjYXNlIDQ6e2FzPTA7YXQ9RDthdT1YO2FnPVc7JD1wO2F2PVY7TDQz
MTp3aGlsZSgxKXthbD1jW2c+PjJdfDA7ZG97aWYoKGFsfDApPT0wKXthTz0wfWVsc2V7aWYoKGNb
YWwrMTI+PjJdfDApIT0oY1thbCsxNj4+Ml18MCkpe2FPPWFsO2JyZWFrfWlmKChiMFtjWyhjW2Fs
Pj4yXXwwKSszNj4+Ml0mMTI3XShhbCl8MCk9PS0xKXtjW2c+PjJdPTA7YU89MDticmVha31lbHNl
e2FPPWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO2FsPShhT3wwKT09MDthaz1jW2U+PjJdfDA7
ZG97aWYoKGFrfDApPT0wKXthYT00MTh9ZWxzZXtpZigoY1thaysxMj4+Ml18MCkhPShjW2FrKzE2
Pj4yXXwwKSl7aWYoYWwpe2JyZWFrfWVsc2V7YnJlYWsgTDQzMX19aWYoKGIwW2NbKGNbYWs+PjJd
fDApKzM2Pj4yXSYxMjddKGFrKXwwKT09LTEpe2NbZT4+Ml09MDthYT00MTg7YnJlYWt9ZWxzZXtp
ZihhbCl7YnJlYWt9ZWxzZXticmVhayBMNDMxfX19fXdoaWxlKDApO2lmKChhYXwwKT09NDE4KXth
YT0wO2lmKGFsKXticmVha319YWs9Y1tnPj4yXXwwO2FDPWNbYWsrMTI+PjJdfDA7aWYoKGFDfDAp
PT0oY1thaysxNj4+Ml18MCkpe2FQPShiMFtjWyhjW2FrPj4yXXwwKSszNj4+Ml0mMTI3XShhayl8
MCkmMjU1fWVsc2V7YVA9YVthQ118MH1kb3tpZihhUDw8MjQ+PjI0Pi0xKXtpZigoYlsoY1tmPj4y
XXwwKSsoYVA8PDI0Pj4yNDw8MSk+PjFdJjIwNDgpPT0wKXthYT00Mzc7YnJlYWt9YUM9Y1tvPj4y
XXwwO2lmKChhQ3wwKT09KGF2fDApKXthaz0oY1tVPj4yXXwwKSE9MTY2O2FRPWNbaD4+Ml18MDth
Uj1hdi1hUXwwO2FTPWFSPj4+MDwyMTQ3NDgzNjQ3P2FSPDwxOi0xO2FUPWtMKGFrP2FROjAsYVMp
fDA7aWYoKGFUfDApPT0wKXtrWCgpfWRve2lmKGFrKXtjW2g+PjJdPWFUO2FVPWFUfWVsc2V7YVE9
Y1toPj4yXXwwO2NbaD4+Ml09YVQ7aWYoKGFRfDApPT0wKXthVT1hVDticmVha31iWVtjW1U+PjJd
JjUxMV0oYVEpO2FVPWNbaD4+Ml18MH19d2hpbGUoMCk7Y1tVPj4yXT04MjthVD1hVSthUnwwO2Nb
bz4+Ml09YVQ7YVY9KGNbaD4+Ml18MCkrYVN8MDthVz1hVH1lbHNle2FWPWF2O2FXPWFDfWNbbz4+
Ml09YVcrMTthW2FXXT1hUDthWD1hcysxfDA7YVk9YXQ7YVo9YXU7YV89YWc7YSQ9JDthMD1hVn1l
bHNle2FhPTQzN319d2hpbGUoMCk7aWYoKGFhfDApPT00Mzcpe2FhPTA7YWw9ZFt3XXwwO2lmKCgo
KGFsJjF8MCk9PTA/YWw+Pj4xOmNbbj4+Ml18MCl8MCk9PTB8KGFzfDApPT0wKXticmVha31pZihh
UDw8MjQ+PjI0IT0oYVt1XXwwKSl7YnJlYWt9aWYoKGF1fDApPT0oYXR8MCkpe2FsPWF1LWFnfDA7
YVQ9YWw+Pj4wPDIxNDc0ODM2NDc/YWw8PDE6LTE7aWYoKCR8MCk9PTE2Nil7YTE9MH1lbHNle2Ex
PWFnfWFrPWtMKGExLGFUKXwwO2FpPWFrO2lmKChha3wwKT09MCl7a1goKX1hMj1haSsoYVQ+Pj4y
PDwyKXwwO2EzPWFpKyhhbD4+Mjw8Mil8MDthND1haTthNT04Mn1lbHNle2EyPWF0O2EzPWF1O2E0
PWFnO2E1PSR9Y1thMz4+Ml09YXM7YVg9MDthWT1hMjthWj1hMys0fDA7YV89YTQ7YSQ9YTU7YTA9
YXZ9YWk9Y1tnPj4yXXwwO2FsPWFpKzEyfDA7YVQ9Y1thbD4+Ml18MDtpZigoYVR8MCk9PShjW2Fp
KzE2Pj4yXXwwKSl7YWs9Y1soY1thaT4+Ml18MCkrNDA+PjJdfDA7YjBbYWsmMTI3XShhaSl8MDth
cz1hWDthdD1hWTthdT1hWjthZz1hXzskPWEkO2F2PWEwO2NvbnRpbnVlfWVsc2V7Y1thbD4+Ml09
YVQrMTthcz1hWDthdD1hWTthdT1hWjthZz1hXzskPWEkO2F2PWEwO2NvbnRpbnVlfX1pZigoYWd8
MCk9PShhdXwwKXwoYXN8MCk9PTApe2E2PWF0O2E3PWF1O2E4PWFnO2E5PSR9ZWxzZXtpZigoYXV8
MCk9PShhdHwwKSl7YVQ9YXUtYWd8MDthbD1hVD4+PjA8MjE0NzQ4MzY0Nz9hVDw8MTotMTtpZigo
JHwwKT09MTY2KXtiYT0wfWVsc2V7YmE9YWd9YWk9a0woYmEsYWwpfDA7YWs9YWk7aWYoKGFpfDAp
PT0wKXtrWCgpfWJiPWFrKyhhbD4+PjI8PDIpfDA7YmM9YWsrKGFUPj4yPDwyKXwwO2JkPWFrO2Jl
PTgyfWVsc2V7YmI9YXQ7YmM9YXU7YmQ9YWc7YmU9JH1jW2JjPj4yXT1hczthNj1iYjthNz1iYys0
fDA7YTg9YmQ7YTk9YmV9aWYoKGNbQj4+Ml18MCk+MCl7YWs9Y1tnPj4yXXwwO2Rve2lmKChha3ww
KT09MCl7YmY9MH1lbHNle2lmKChjW2FrKzEyPj4yXXwwKSE9KGNbYWsrMTY+PjJdfDApKXtiZj1h
azticmVha31pZigoYjBbY1soY1thaz4+Ml18MCkrMzY+PjJdJjEyN10oYWspfDApPT0tMSl7Y1tn
Pj4yXT0wO2JmPTA7YnJlYWt9ZWxzZXtiZj1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTthaz0o
YmZ8MCk9PTA7YXM9Y1tlPj4yXXwwO2Rve2lmKChhc3wwKT09MCl7YWE9NDcwfWVsc2V7aWYoKGNb
YXMrMTI+PjJdfDApIT0oY1thcysxNj4+Ml18MCkpe2lmKGFrKXtiZz1hczticmVha31lbHNle2Fh
PTQ3NzticmVhayBMMjg2fX1pZigoYjBbY1soY1thcz4+Ml18MCkrMzY+PjJdJjEyN10oYXMpfDAp
PT0tMSl7Y1tlPj4yXT0wO2FhPTQ3MDticmVha31lbHNle2lmKGFrKXtiZz1hczticmVha31lbHNl
e2FhPTQ3NzticmVhayBMMjg2fX19fXdoaWxlKDApO2lmKChhYXwwKT09NDcwKXthYT0wO2lmKGFr
KXthYT00Nzc7YnJlYWsgTDI4Nn1lbHNle2JnPTB9fWFzPWNbZz4+Ml18MDskPWNbYXMrMTI+PjJd
fDA7aWYoKCR8MCk9PShjW2FzKzE2Pj4yXXwwKSl7Ymg9KGIwW2NbKGNbYXM+PjJdfDApKzM2Pj4y
XSYxMjddKGFzKXwwKSYyNTV9ZWxzZXtiaD1hWyRdfDB9aWYoYmg8PDI0Pj4yNCE9KGFbdF18MCkp
e2FhPTQ3NzticmVhayBMMjg2fSQ9Y1tnPj4yXXwwO2FzPSQrMTJ8MDthZz1jW2FzPj4yXXwwO2lm
KChhZ3wwKT09KGNbJCsxNj4+Ml18MCkpe2F1PWNbKGNbJD4+Ml18MCkrNDA+PjJdfDA7YjBbYXUm
MTI3XSgkKXwwO2JpPWF2O2JqPWJnfWVsc2V7Y1thcz4+Ml09YWcrMTtiaT1hdjtiaj1iZ313aGls
ZSgxKXthZz1jW2c+PjJdfDA7ZG97aWYoKGFnfDApPT0wKXtiaz0wfWVsc2V7aWYoKGNbYWcrMTI+
PjJdfDApIT0oY1thZysxNj4+Ml18MCkpe2JrPWFnO2JyZWFrfWlmKChiMFtjWyhjW2FnPj4yXXww
KSszNj4+Ml0mMTI3XShhZyl8MCk9PS0xKXtjW2c+PjJdPTA7Yms9MDticmVha31lbHNle2JrPWNb
Zz4+Ml18MDticmVha319fXdoaWxlKDApO2FnPShia3wwKT09MDtkb3tpZigoYmp8MCk9PTApe2Fh
PTQ5M31lbHNle2lmKChjW2JqKzEyPj4yXXwwKSE9KGNbYmorMTY+PjJdfDApKXtpZihhZyl7Ymw9
Ymo7YnJlYWt9ZWxzZXthYT01MDE7YnJlYWsgTDI4Nn19aWYoKGIwW2NbKGNbYmo+PjJdfDApKzM2
Pj4yXSYxMjddKGJqKXwwKT09LTEpe2NbZT4+Ml09MDthYT00OTM7YnJlYWt9ZWxzZXtpZihhZyl7
Ymw9Ymo7YnJlYWt9ZWxzZXthYT01MDE7YnJlYWsgTDI4Nn19fX13aGlsZSgwKTtpZigoYWF8MCk9
PTQ5Myl7YWE9MDtpZihhZyl7YWE9NTAxO2JyZWFrIEwyODZ9ZWxzZXtibD0wfX1hcz1jW2c+PjJd
fDA7JD1jW2FzKzEyPj4yXXwwO2lmKCgkfDApPT0oY1thcysxNj4+Ml18MCkpe2JtPShiMFtjWyhj
W2FzPj4yXXwwKSszNj4+Ml0mMTI3XShhcyl8MCkmMjU1fWVsc2V7Ym09YVskXXwwfWlmKGJtPDwy
ND4+MjQ8PS0xKXthYT01MDE7YnJlYWsgTDI4Nn1pZigoYlsoY1tmPj4yXXwwKSsoYm08PDI0Pj4y
NDw8MSk+PjFdJjIwNDgpPT0wKXthYT01MDE7YnJlYWsgTDI4Nn0kPWNbbz4+Ml18MDtpZigoJHww
KT09KGJpfDApKXthcz0oY1tVPj4yXXwwKSE9MTY2O2F1PWNbaD4+Ml18MDthdD1iaS1hdXwwO2FU
PWF0Pj4+MDwyMTQ3NDgzNjQ3P2F0PDwxOi0xO2FsPWtMKGFzP2F1OjAsYVQpfDA7aWYoKGFsfDAp
PT0wKXtrWCgpfWRve2lmKGFzKXtjW2g+PjJdPWFsO2JuPWFsfWVsc2V7YXU9Y1toPj4yXXwwO2Nb
aD4+Ml09YWw7aWYoKGF1fDApPT0wKXtibj1hbDticmVha31iWVtjW1U+PjJdJjUxMV0oYXUpO2Ju
PWNbaD4+Ml18MH19d2hpbGUoMCk7Y1tVPj4yXT04MjthbD1ibithdHwwO2Nbbz4+Ml09YWw7Ym89
KGNbaD4+Ml18MCkrYVR8MDticD1hbH1lbHNle2JvPWJpO2JwPSR9YWw9Y1tnPj4yXXwwO2FzPWNb
YWwrMTI+PjJdfDA7aWYoKGFzfDApPT0oY1thbCsxNj4+Ml18MCkpe2FnPShiMFtjWyhjW2FsPj4y
XXwwKSszNj4+Ml0mMTI3XShhbCl8MCkmMjU1O2JxPWFnO2JyPWNbbz4+Ml18MH1lbHNle2JxPWFb
YXNdfDA7YnI9YnB9Y1tvPj4yXT1icisxO2FbYnJdPWJxO2FzPShjW0I+PjJdfDApLTF8MDtjW0I+
PjJdPWFzO2FnPWNbZz4+Ml18MDthbD1hZysxMnwwO2F1PWNbYWw+PjJdfDA7aWYoKGF1fDApPT0o
Y1thZysxNj4+Ml18MCkpe2FpPWNbKGNbYWc+PjJdfDApKzQwPj4yXXwwO2IwW2FpJjEyN10oYWcp
fDB9ZWxzZXtjW2FsPj4yXT1hdSsxfWlmKChhc3wwKT4wKXtiaT1ibztiaj1ibH1lbHNle2JzPWJv
O2JyZWFrfX19ZWxzZXticz1hdn1pZigoY1tvPj4yXXwwKT09KGNbaD4+Ml18MCkpe2FhPTUyMTti
cmVhayBMMjg2fWVsc2V7YW09cjthbj1hNjthbz1hNzthcD1hODthcT1hOTthcj1ic31icmVha307
ZGVmYXVsdDp7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVZ9fX13aGlsZSgwKTtMNTg1OmRv
e2lmKChhYXwwKT09Mjk3KXthYT0wO2lmKChZfDApPT0zKXthYz1wO2FkPVc7YWU9WDthZj1yO2Fh
PTUyMzticmVhayBMMjg2fWVsc2V7YnQ9YWJ9d2hpbGUoMSl7Wj1jW2c+PjJdfDA7ZG97aWYoKFp8
MCk9PTApe2J1PTB9ZWxzZXtpZigoY1taKzEyPj4yXXwwKSE9KGNbWisxNj4+Ml18MCkpe2J1PVo7
YnJlYWt9aWYoKGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCk9PS0xKXtjW2c+PjJd
PTA7YnU9MDticmVha31lbHNle2J1PWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO1o9KGJ1fDAp
PT0wO2Rve2lmKChidHwwKT09MCl7YWE9MzEwfWVsc2V7aWYoKGNbYnQrMTI+PjJdfDApIT0oY1ti
dCsxNj4+Ml18MCkpe2lmKFope2J2PWJ0O2JyZWFrfWVsc2V7YW09cjthbj1EO2FvPVg7YXA9Vzth
cT1wO2FyPVY7YnJlYWsgTDU4NX19aWYoKGIwW2NbKGNbYnQ+PjJdfDApKzM2Pj4yXSYxMjddKGJ0
KXwwKT09LTEpe2NbZT4+Ml09MDthYT0zMTA7YnJlYWt9ZWxzZXtpZihaKXtidj1idDticmVha31l
bHNle2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEw1ODV9fX19d2hpbGUoMCk7
aWYoKGFhfDApPT0zMTApe2FhPTA7aWYoWil7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7
YnJlYWsgTDU4NX1lbHNle2J2PTB9fSQ9Y1tnPj4yXXwwO2FUPWNbJCsxMj4+Ml18MDtpZigoYVR8
MCk9PShjWyQrMTY+PjJdfDApKXtidz0oYjBbY1soY1skPj4yXXwwKSszNj4+Ml0mMTI3XSgkKXww
KSYyNTV9ZWxzZXtidz1hW2FUXXwwfWlmKGJ3PDwyND4+MjQ8PS0xKXthbT1yO2FuPUQ7YW89WDth
cD1XO2FxPXA7YXI9VjticmVhayBMNTg1fWlmKChiWyhjW2Y+PjJdfDApKyhidzw8MjQ+PjI0PDwx
KT4+MV0mODE5Mik9PTApe2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEw1ODV9
YVQ9Y1tnPj4yXXwwOyQ9YVQrMTJ8MDthdD1jWyQ+PjJdfDA7aWYoKGF0fDApPT0oY1thVCsxNj4+
Ml18MCkpe2J4PShiMFtjWyhjW2FUPj4yXXwwKSs0MD4+Ml0mMTI3XShhVCl8MCkmMjU1fWVsc2V7
Y1skPj4yXT1hdCsxO2J4PWFbYXRdfDB9ZFUoQSxieCk7YnQ9YnZ9fX13aGlsZSgwKTthdj1ZKzF8
MDtpZihhdj4+PjA8NCl7Vj1hcjtwPWFxO1c9YXA7WD1hbztEPWFuO3I9YW07WT1hdn1lbHNle2Fj
PWFxO2FkPWFwO2FlPWFvO2FmPWFtO2FhPTUyMzticmVha319TDYyMjpkb3tpZigoYWF8MCk9PTI5
Nil7Y1trPj4yXT1jW2s+PjJdfDQ7Ynk9MDtiej1XO2JBPXB9ZWxzZSBpZigoYWF8MCk9PTM2Myl7
Y1trPj4yXT1jW2s+PjJdfDQ7Ynk9MDtiej1XO2JBPXB9ZWxzZSBpZigoYWF8MCk9PTQwNSl7Y1tr
Pj4yXT1jW2s+PjJdfDQ7Ynk9MDtiej1XO2JBPXB9ZWxzZSBpZigoYWF8MCk9PTQ3Nyl7Y1trPj4y
XT1jW2s+PjJdfDQ7Ynk9MDtiej1hODtiQT1hOX1lbHNlIGlmKChhYXwwKT09NTAxKXtjW2s+PjJd
PWNbaz4+Ml18NDtieT0wO2J6PWE4O2JBPWE5fWVsc2UgaWYoKGFhfDApPT01MjEpe2Nbaz4+Ml09
Y1trPj4yXXw0O2J5PTA7Yno9YTg7YkE9YTl9ZWxzZSBpZigoYWF8MCk9PTUyMyl7TDYzMDpkb3tp
ZigoYWZ8MCkhPTApe2FtPWFmO2FvPWFmKzF8MDthcD1hZis4fDA7YXE9YWYrNHwwO1k9MTtMNjMy
OndoaWxlKDEpe3I9ZFthbV18MDtpZigociYxfDApPT0wKXtiQj1yPj4+MX1lbHNle2JCPWNbYXE+
PjJdfDB9aWYoWT4+PjA+PWJCPj4+MCl7YnJlYWsgTDYzMH1yPWNbZz4+Ml18MDtkb3tpZigocnww
KT09MCl7YkM9MH1lbHNle2lmKChjW3IrMTI+PjJdfDApIT0oY1tyKzE2Pj4yXXwwKSl7YkM9cjti
cmVha31pZigoYjBbY1soY1tyPj4yXXwwKSszNj4+Ml0mMTI3XShyKXwwKT09LTEpe2NbZz4+Ml09
MDtiQz0wO2JyZWFrfWVsc2V7YkM9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7cj0oYkN8MCk9
PTA7Wj1jW2U+PjJdfDA7ZG97aWYoKFp8MCk9PTApe2FhPTU0MX1lbHNle2lmKChjW1orMTI+PjJd
fDApIT0oY1taKzE2Pj4yXXwwKSl7aWYocil7YnJlYWt9ZWxzZXticmVhayBMNjMyfX1pZigoYjBb
Y1soY1taPj4yXXwwKSszNj4+Ml0mMTI3XShaKXwwKT09LTEpe2NbZT4+Ml09MDthYT01NDE7YnJl
YWt9ZWxzZXtpZihyKXticmVha31lbHNle2JyZWFrIEw2MzJ9fX19d2hpbGUoMCk7aWYoKGFhfDAp
PT01NDEpe2FhPTA7aWYocil7YnJlYWt9fVo9Y1tnPj4yXXwwO2FuPWNbWisxMj4+Ml18MDtpZigo
YW58MCk9PShjW1orMTY+PjJdfDApKXtiRD0oYjBbY1soY1taPj4yXXwwKSszNj4+Ml0mMTI3XSha
KXwwKSYyNTV9ZWxzZXtiRD1hW2FuXXwwfWlmKChhW2FtXSYxKT09MCl7YkU9YW99ZWxzZXtiRT1j
W2FwPj4yXXwwfWlmKGJEPDwyND4+MjQhPShhW2JFK1l8MF18MCkpe2JyZWFrfWFuPVkrMXwwO1o9
Y1tnPj4yXXwwO0Q9WisxMnwwO1g9Y1tEPj4yXXwwO2lmKChYfDApPT0oY1taKzE2Pj4yXXwwKSl7
YXI9Y1soY1taPj4yXXwwKSs0MD4+Ml18MDtiMFthciYxMjddKFopfDA7WT1hbjtjb250aW51ZX1l
bHNle2NbRD4+Ml09WCsxO1k9YW47Y29udGludWV9fWNbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9
YWQ7YkE9YWM7YnJlYWsgTDYyMn19d2hpbGUoMCk7aWYoKGFkfDApPT0oYWV8MCkpe2J5PTE7Yno9
YWU7YkE9YWM7YnJlYWt9Y1tDPj4yXT0wO2Z0KHYsYWQsYWUsQyk7aWYoKGNbQz4+Ml18MCk9PTAp
e2J5PTE7Yno9YWQ7YkE9YWM7YnJlYWt9Y1trPj4yXT1jW2s+PjJdfDQ7Ynk9MDtiej1hZDtiQT1h
Y319d2hpbGUoMCk7ZFAoQSk7ZFAoeik7ZFAoeSk7ZFAoeCk7ZFAodik7aWYoKGJ6fDApPT0wKXtp
PXE7cmV0dXJuIGJ5fDB9YllbYkEmNTExXShieik7aT1xO3JldHVybiBieXwwfWZ1bmN0aW9uIGhT
KGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0w
LG09MCxuPTA7Zj1iO2c9ZDtoPWFbZl18MDtpPWgmMjU1O2lmKChpJjF8MCk9PTApe2o9aT4+PjF9
ZWxzZXtqPWNbYis0Pj4yXXwwfWlmKChoJjEpPT0wKXtrPTEwO2w9aH1lbHNle2g9Y1tiPj4yXXww
O2s9KGgmLTIpLTF8MDtsPWgmMjU1fWg9ZS1nfDA7aWYoKGV8MCk9PShkfDApKXtyZXR1cm4gYnww
fWlmKChrLWp8MCk+Pj4wPGg+Pj4wKXtkMShiLGssaitoLWt8MCxqLGosMCwwKTttPWFbZl18MH1l
bHNle209bH1pZigobSYxKT09MCl7bj1iKzF8MH1lbHNle249Y1tiKzg+PjJdfDB9bT1lKyhqLWcp
fDA7Zz1kO2Q9bitqfDA7d2hpbGUoMSl7YVtkXT1hW2ddfDA7bD1nKzF8MDtpZigobHwwKT09KGV8
MCkpe2JyZWFrfWVsc2V7Zz1sO2Q9ZCsxfDB9fWFbbittfDBdPTA7bT1qK2h8MDtpZigoYVtmXSYx
KT09MCl7YVtmXT1tPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+PjJdPW07cmV0dXJuIGJ8
MH1yZXR1cm4gMH1mdW5jdGlvbiBoVChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5j
dGlvbiBoVShhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoVihhKXthPWF8MDt2YXIg
Yj0wO2I9Yk8oOCl8MDtkRShiLGEpO2JsKGJ8MCw4MTkyLDIyKX1mdW5jdGlvbiBoVyhiLGQsZSxm
LGcsaCxqLGspe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3ww
O3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wO2Q9aTtpPWkrMTYwfDA7bD1lO2U9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tmPj4yXT1jW2w+PjJdO2w9ZHwwO209ZCsxNnwwO249ZCsxMjB8MDtvPWQrMTI4fDA7cD1kKzEz
NnwwO3E9ZCsxNDR8MDtyPWQrMTUyfDA7cz1ufDA7Y1tzPj4yXT1tO3Q9bis0fDA7Y1t0Pj4yXT0x
NjY7dT1tKzEwMHwwO2VqKHAsaCk7bT1wfDA7dj1jW20+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0x
KXtjW2w+PjJdPTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1s
PShjWzM5MjVdfDApLTF8MDt3PWNbdis4Pj4yXXwwO2Rve2lmKChjW3YrMTI+PjJdfDApLXc+PjI+
Pj4wPmw+Pj4wKXt4PWNbdysobDw8Mik+PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDthW3Fd
PTA7ej1mfDA7QT1jW3o+PjJdfDA7Y1tyPj4yXT1BO2lmKGhSKGUscixnLHAsY1toKzQ+PjJdfDAs
aixxLHksbixvLHUpfDApe0I9aztpZigoYVtCXSYxKT09MCl7YVtrKzF8MF09MDthW0JdPTB9ZWxz
ZXthW2Nbays4Pj4yXXwwXT0wO2Nbays0Pj4yXT0wfUI9eDtpZigoYVtxXSYxKSE9MCl7ZFUoayxi
X1tjWyhjW0I+PjJdfDApKzI4Pj4yXSYzMV0oeSw0NSl8MCl9eD1iX1tjWyhjW0I+PjJdfDApKzI4
Pj4yXSYzMV0oeSw0OCl8MDt5PWNbbz4+Ml18MDtCPXktMXwwO0M9Y1tzPj4yXXwwO3doaWxlKDEp
e2lmKEM+Pj4wPj1CPj4+MCl7YnJlYWt9aWYoKGFbQ118MCk9PXg8PDI0Pj4yNCl7Qz1DKzF8MH1l
bHNle2JyZWFrfX1oUyhrLEMseSl8MH14PWV8MDtCPWNbeD4+Ml18MDtkb3tpZigoQnwwKT09MCl7
RD0wfWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtEPUI7YnJlYWt9aWYo
KGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtEPUI7YnJlYWt9Y1t4Pj4y
XT0wO0Q9MH19d2hpbGUoMCk7eD0oRHwwKT09MDtkb3tpZigoQXwwKT09MCl7RT02MjF9ZWxzZXtp
ZigoY1tBKzEyPj4yXXwwKSE9KGNbQSsxNj4+Ml18MCkpe2lmKHgpe2JyZWFrfWVsc2V7RT02MjM7
YnJlYWt9fWlmKChiMFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApPT0tMSl7Y1t6Pj4y
XT0wO0U9NjIxO2JyZWFrfWVsc2V7aWYoeF4oQXwwKT09MCl7YnJlYWt9ZWxzZXtFPTYyMzticmVh
a319fX13aGlsZSgwKTtpZigoRXwwKT09NjIxKXtpZih4KXtFPTYyM319aWYoKEV8MCk9PTYyMyl7
Y1tqPj4yXT1jW2o+PjJdfDJ9Y1tiPj4yXT1EO0E9Y1ttPj4yXXwwO2R6KEEpfDA7QT1jW3M+PjJd
fDA7Y1tzPj4yXT0wO2lmKChBfDApPT0wKXtpPWQ7cmV0dXJufWJZW2NbdD4+Ml0mNTExXShBKTtp
PWQ7cmV0dXJufX13aGlsZSgwKTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5j
dGlvbiBoWChiLGQsZSxmLGcsaCxqLGssbCxtKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTA7bj1pO2k9aSs1NnwwO289bnwwO3A9bisxNnww
O3E9biszMnwwO3I9bis0MHwwO3M9cjt0PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dT10O3Y9aTtp
PWkrMTJ8MDtpPWkrNz4+Mzw8Mzt3PXY7eD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3k9eDt6PWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Qj1BO0Q9aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0c9RjtIPWk7aT1p
KzEyfDA7aT1pKzc+PjM8PDM7ST1IO2lmKGIpe2I9Y1tkPj4yXXwwO2lmKChjWzQwNDRdfDApIT0t
MSl7Y1twPj4yXT0xNjE3NjtjW3ArND4+Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTYxNzYscCw5Nil9
cD0oY1s0MDQ1XXwwKS0xfDA7Sj1jW2IrOD4+Ml18MDtpZigoY1tiKzEyPj4yXXwwKS1KPj4yPj4+
MDw9cD4+PjApe0s9Yk8oNCl8MDtMPUs7a3EoTCk7YmwoS3wwLDgxNzYsMTM0KX1iPWNbSisocDw8
Mik+PjJdfDA7aWYoKGJ8MCk9PTApe0s9Yk8oNCl8MDtMPUs7a3EoTCk7YmwoS3wwLDgxNzYsMTM0
KX1LPWI7YlpbY1soY1tiPj4yXXwwKSs0ND4+Ml0mMTI3XShxLEspO0w9ZTtDPWNbcT4+Ml18MDth
W0xdPUMmMjU1O0M9Qz4+ODthW0wrMXwwXT1DJjI1NTtDPUM+Pjg7YVtMKzJ8MF09QyYyNTU7Qz1D
Pj44O2FbTCszfDBdPUMmMjU1O0w9YjtiWltjWyhjW0w+PjJdfDApKzMyPj4yXSYxMjddKHIsSyk7
cT1sO2lmKChhW3FdJjEpPT0wKXthW2wrMXwwXT0wO2FbcV09MH1lbHNle2FbY1tsKzg+PjJdfDBd
PTA7Y1tsKzQ+PjJdPTB9ZCQobCwwKTtjW3E+PjJdPWNbcz4+Ml07Y1txKzQ+PjJdPWNbcys0Pj4y
XTtjW3ErOD4+Ml09Y1tzKzg+PjJdO2skKHN8MCwwLDEyKTtkUChyKTtiWltjWyhjW0w+PjJdfDAp
KzI4Pj4yXSYxMjddKHQsSyk7cj1rO2lmKChhW3JdJjEpPT0wKXthW2srMXwwXT0wO2Fbcl09MH1l
bHNle2FbY1trKzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW3I+PjJdPWNbdT4+Ml07
Y1tyKzQ+PjJdPWNbdSs0Pj4yXTtjW3IrOD4+Ml09Y1t1Kzg+PjJdO2skKHV8MCwwLDEyKTtkUCh0
KTt0PWI7YVtmXT1iMFtjWyhjW3Q+PjJdfDApKzEyPj4yXSYxMjddKEspfDA7YVtnXT1iMFtjWyhj
W3Q+PjJdfDApKzE2Pj4yXSYxMjddKEspfDA7YlpbY1soY1tMPj4yXXwwKSsyMD4+Ml0mMTI3XSh2
LEspO3Q9aDtpZigoYVt0XSYxKT09MCl7YVtoKzF8MF09MDthW3RdPTB9ZWxzZXthW2NbaCs4Pj4y
XXwwXT0wO2NbaCs0Pj4yXT0wfWQkKGgsMCk7Y1t0Pj4yXT1jW3c+PjJdO2NbdCs0Pj4yXT1jW3cr
ND4+Ml07Y1t0Kzg+PjJdPWNbdys4Pj4yXTtrJCh3fDAsMCwxMik7ZFAodik7YlpbY1soY1tMPj4y
XXwwKSsyND4+Ml0mMTI3XSh4LEspO0w9ajtpZigoYVtMXSYxKT09MCl7YVtqKzF8MF09MDthW0xd
PTB9ZWxzZXthW2Nbais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1tMPj4yXT1jW3k+
PjJdO2NbTCs0Pj4yXT1jW3krND4+Ml07Y1tMKzg+PjJdPWNbeSs4Pj4yXTtrJCh5fDAsMCwxMik7
ZFAoeCk7TT1iMFtjWyhjW2I+PjJdfDApKzM2Pj4yXSYxMjddKEspfDA7Y1ttPj4yXT1NO2k9bjty
ZXR1cm59ZWxzZXtLPWNbZD4+Ml18MDtpZigoY1s0MDQ2XXwwKSE9LTEpe2Nbbz4+Ml09MTYxODQ7
Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE2MTg0LG8sOTYpfW89KGNbNDA0N118MCktMXww
O2Q9Y1tLKzg+PjJdfDA7aWYoKGNbSysxMj4+Ml18MCktZD4+Mj4+PjA8PW8+Pj4wKXtOPWJPKDQp
fDA7Tz1OO2txKE8pO2JsKE58MCw4MTc2LDEzNCl9Sz1jW2QrKG88PDIpPj4yXXwwO2lmKChLfDAp
PT0wKXtOPWJPKDQpfDA7Tz1OO2txKE8pO2JsKE58MCw4MTc2LDEzNCl9Tj1LO2JaW2NbKGNbSz4+
Ml18MCkrNDQ+PjJdJjEyN10oeixOKTtPPWU7Qz1jW3o+PjJdfDA7YVtPXT1DJjI1NTtDPUM+Pjg7
YVtPKzF8MF09QyYyNTU7Qz1DPj44O2FbTysyfDBdPUMmMjU1O0M9Qz4+ODthW08rM3wwXT1DJjI1
NTtPPUs7YlpbY1soY1tPPj4yXXwwKSszMj4+Ml0mMTI3XShBLE4pO3o9bDtpZigoYVt6XSYxKT09
MCl7YVtsKzF8MF09MDthW3pdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQk
KGwsMCk7Y1t6Pj4yXT1jW0I+PjJdO2Nbeis0Pj4yXT1jW0IrND4+Ml07Y1t6Kzg+PjJdPWNbQis4
Pj4yXTtrJChCfDAsMCwxMik7ZFAoQSk7YlpbY1soY1tPPj4yXXwwKSsyOD4+Ml0mMTI3XShELE4p
O0E9aztpZigoYVtBXSYxKT09MCl7YVtrKzF8MF09MDthW0FdPTB9ZWxzZXthW2Nbays4Pj4yXXww
XT0wO2Nbays0Pj4yXT0wfWQkKGssMCk7Y1tBPj4yXT1jW0U+PjJdO2NbQSs0Pj4yXT1jW0UrND4+
Ml07Y1tBKzg+PjJdPWNbRSs4Pj4yXTtrJChFfDAsMCwxMik7ZFAoRCk7RD1LO2FbZl09YjBbY1so
Y1tEPj4yXXwwKSsxMj4+Ml0mMTI3XShOKXwwO2FbZ109YjBbY1soY1tEPj4yXXwwKSsxNj4+Ml0m
MTI3XShOKXwwO2JaW2NbKGNbTz4+Ml18MCkrMjA+PjJdJjEyN10oRixOKTtEPWg7aWYoKGFbRF0m
MSk9PTApe2FbaCsxfDBdPTA7YVtEXT0wfWVsc2V7YVtjW2grOD4+Ml18MF09MDtjW2grND4+Ml09
MH1kJChoLDApO2NbRD4+Ml09Y1tHPj4yXTtjW0QrND4+Ml09Y1tHKzQ+PjJdO2NbRCs4Pj4yXT1j
W0crOD4+Ml07ayQoR3wwLDAsMTIpO2RQKEYpO2JaW2NbKGNbTz4+Ml18MCkrMjQ+PjJdJjEyN10o
SCxOKTtPPWo7aWYoKGFbT10mMSk9PTApe2FbaisxfDBdPTA7YVtPXT0wfWVsc2V7YVtjW2orOD4+
Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbTz4+Ml09Y1tJPj4yXTtjW08rND4+Ml09Y1tJ
KzQ+PjJdO2NbTys4Pj4yXT1jW0krOD4+Ml07ayQoSXwwLDAsMTIpO2RQKEgpO009YjBbY1soY1tL
Pj4yXXwwKSszNj4+Ml0mMTI3XShOKXwwO2NbbT4+Ml09TTtpPW47cmV0dXJufX1mdW5jdGlvbiBo
WShiLGQsZSxmLGcsaCxqLGspe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9
anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAs
Sz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtkPWk7aT1pKzYwMHww
O2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrNDE2fDA7
bz1kKzQyNHwwO3A9ZCs0MzJ8MDtxPWQrNDQwfDA7cj1kKzQ0OHwwO3M9ZCs0NTZ8MDt0PWQrNDk2
fDA7dT1ufDA7Y1t1Pj4yXT1tO3Y9bis0fDA7Y1t2Pj4yXT0xNjY7dz1tKzQwMHwwO2VqKHAsaCk7
bT1wfDA7eD1jW20+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0
Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8MDt5PWNb
eCs4Pj4yXXwwO2Rve2lmKChjW3grMTI+PjJdfDApLXk+PjI+Pj4wPmw+Pj4wKXt6PWNbeSsobDw8
Mik+PjJdfDA7aWYoKHp8MCk9PTApe2JyZWFrfUE9ejthW3FdPTA7Qj1mfDA7Y1tyPj4yXT1jW0I+
PjJdO2Rve2lmKGhaKGUscixnLHAsY1toKzQ+PjJdfDAsaixxLEEsbixvLHcpfDApe0M9c3wwO0Q9
Y1soY1t6Pj4yXXwwKSs0OD4+Ml18MDtjYVtEJjE1XShBLDIwOTYsMjEwNixDKXwwO0Q9dHwwO0U9
Y1tvPj4yXXwwO0Y9Y1t1Pj4yXXwwO0c9RS1GfDA7ZG97aWYoKEd8MCk+MzkyKXtIPWtKKChHPj4y
KSsyfDApfDA7aWYoKEh8MCkhPTApe0k9SDtKPUg7YnJlYWt9a1goKTtJPTA7Sj0wfWVsc2V7ST1E
O0o9MH19d2hpbGUoMCk7aWYoKGFbcV0mMSk9PTApe0s9SX1lbHNle2FbSV09NDU7Sz1JKzF8MH1p
ZihGPj4+MDxFPj4+MCl7Rz1zKzQwfDA7SD1zO0w9SztNPUY7d2hpbGUoMSl7Tj1DO3doaWxlKDEp
e2lmKChOfDApPT0oR3wwKSl7Tz1HO2JyZWFrfWlmKChjW04+PjJdfDApPT0oY1tNPj4yXXwwKSl7
Tz1OO2JyZWFrfWVsc2V7Tj1OKzR8MH19YVtMXT1hWzIwOTYrKE8tSD4+Mil8MF18MDtOPU0rNHww
O1A9TCsxfDA7aWYoTj4+PjA8KGNbbz4+Ml18MCk+Pj4wKXtMPVA7TT1OfWVsc2V7UT1QO2JyZWFr
fX19ZWxzZXtRPUt9YVtRXT0wO009YkQoRHwwLDE0MDgsKEw9aSxpPWkrOHwwLGNbTD4+Ml09ayxM
KXwwKXwwO2k9TDtpZigoTXwwKT09MSl7aWYoKEp8MCk9PTApe2JyZWFrfWtLKEopO2JyZWFrfU09
Yk8oOCl8MDtkRShNLDEzNjgpO2JsKE18MCw4MTkyLDIyKX19d2hpbGUoMCk7QT1lfDA7ej1jW0E+
PjJdfDA7ZG97aWYoKHp8MCk9PTApe1I9MH1lbHNle009Y1t6KzEyPj4yXXwwO2lmKChNfDApPT0o
Y1t6KzE2Pj4yXXwwKSl7Uz1iMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDB9ZWxzZXtT
PWNbTT4+Ml18MH1pZigoU3wwKSE9LTEpe1I9ejticmVha31jW0E+PjJdPTA7Uj0wfX13aGlsZSgw
KTtBPShSfDApPT0wO3o9Y1tCPj4yXXwwO2Rve2lmKCh6fDApPT0wKXtUPTczOX1lbHNle009Y1t6
KzEyPj4yXXwwO2lmKChNfDApPT0oY1t6KzE2Pj4yXXwwKSl7VT1iMFtjWyhjW3o+PjJdfDApKzM2
Pj4yXSYxMjddKHopfDB9ZWxzZXtVPWNbTT4+Ml18MH1pZigoVXwwKT09LTEpe2NbQj4+Ml09MDtU
PTczOTticmVha31lbHNle2lmKEFeKHp8MCk9PTApe2JyZWFrfWVsc2V7VD03NDE7YnJlYWt9fX19
d2hpbGUoMCk7aWYoKFR8MCk9PTczOSl7aWYoQSl7VD03NDF9fWlmKChUfDApPT03NDEpe2Nbaj4+
Ml09Y1tqPj4yXXwyfWNbYj4+Ml09Ujt6PWNbbT4+Ml18MDtkeih6KXwwO3o9Y1t1Pj4yXXwwO2Nb
dT4+Ml09MDtpZigoenwwKT09MCl7aT1kO3JldHVybn1iWVtjW3Y+PjJdJjUxMV0oeik7aT1kO3Jl
dHVybn19d2hpbGUoMCk7ZD1iTyg0KXwwO2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24g
aFooYixlLGYsZyxoLGosayxsLG0sbixvKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtq
PWp8MDtrPWt8MDtsPWx8MDttPW18MDtuPW58MDtvPW98MDt2YXIgcD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAs
Vz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9
MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MCxhbj0wLGFvPTAsYXA9MCxhcT0wLGFyPTAs
YXM9MCxhdD0wLGF1PTAsYXY9MCxhdz0wLGF4PTAsYXk9MCxhej0wLGFBPTAsYUI9MCxhQz0wLGFE
PTAsYUU9MCxhRj0wLGFHPTAsYUg9MCxhST0wLGFKPTAsYUs9MCxhTD0wLGFNPTAsYU49MCxhTz0w
LGFQPTAsYVE9MCxhUj0wLGFTPTAsYVQ9MCxhVT0wLGFWPTAsYVc9MCxhWD0wLGFZPTAsYVo9MCxh
Xz0wLGEkPTAsYTA9MCxhMT0wLGEyPTAsYTM9MCxhND0wLGE1PTAsYTY9MCxhNz0wLGE4PTAsYTk9
MCxiYT0wLGJiPTAsYmM9MCxiZD0wLGJlPTAsYmY9MCxiZz0wLGJoPTAsYmk9MCxiaj0wLGJrPTAs
Ymw9MCxibT0wLGJuPTAsYm89MCxicD0wLGJxPTAsYnI9MCxicz0wLGJ0PTAsYnU9MCxidj0wLGJ3
PTAsYng9MCxieT0wLGJ6PTAsYkE9MCxiQj0wLGJDPTAsYkQ9MDtwPWk7aT1pKzQ0OHwwO3E9ZTtl
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbcT4+Ml07cT1wfDA7cj1wKzh8MDtzPXAr
NDA4fDA7dD1wKzQxNnwwO3U9cCs0MjR8MDt2PXArNDMyfDA7dz12O3g9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8Mzt5PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7ej1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwz
O0E9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztCPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztDPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW3E+PjJdPW87bz1yfDA7ayQod3wwLDAsMTIpO0Q9eDtFPXk7Rj16
O0c9QTtrJChEfDAsMCwxMik7ayQoRXwwLDAsMTIpO2skKEZ8MCwwLDEyKTtrJChHfDAsMCwxMik7
aDIoZixnLHMsdCx1LHYseCx5LHosQik7Zz1tfDA7Y1tuPj4yXT1jW2c+PjJdO2Y9YnwwO2I9ZXww
O2U9bDtIPXorNHwwO0k9eis4fDA7Sj15KzR8MDtLPXkrOHwwO0w9KGgmNTEyfDApIT0wO2g9eCs0
fDA7TT14Kzh8MDtOPUErNHwwO089QSs4fDA7UD1zKzN8MDtRPXYrNHwwO1I9MTY2O1M9bztUPW87
bz1yKzQwMHwwO3I9MDtVPTA7TDg5MDp3aGlsZSgxKXtWPWNbZj4+Ml18MDtkb3tpZigoVnwwKT09
MCl7Vz0xfWVsc2V7WD1jW1YrMTI+PjJdfDA7aWYoKFh8MCk9PShjW1YrMTY+PjJdfDApKXtZPWIw
W2NbKGNbVj4+Ml18MCkrMzY+PjJdJjEyN10oVil8MH1lbHNle1k9Y1tYPj4yXXwwfWlmKChZfDAp
PT0tMSl7Y1tmPj4yXT0wO1c9MTticmVha31lbHNle1c9KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13
aGlsZSgwKTtWPWNbYj4+Ml18MDtkb3tpZigoVnwwKT09MCl7Wj03Njd9ZWxzZXtYPWNbVisxMj4+
Ml18MDtpZigoWHwwKT09KGNbVisxNj4+Ml18MCkpe189YjBbY1soY1tWPj4yXXwwKSszNj4+Ml0m
MTI3XShWKXwwfWVsc2V7Xz1jW1g+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2I+PjJdPTA7Wj03Njc7
YnJlYWt9ZWxzZXtpZihXXihWfDApPT0wKXskPVY7YnJlYWt9ZWxzZXthYT1SO2FiPVM7YWM9VDth
ZD1yO1o9MTAwNzticmVhayBMODkwfX19fXdoaWxlKDApO2lmKChafDApPT03Njcpe1o9MDtpZihX
KXthYT1SO2FiPVM7YWM9VDthZD1yO1o9MTAwNzticmVha31lbHNleyQ9MH19TDkxNDpkb3tzd2l0
Y2goYVtzK1V8MF18MCl7Y2FzZSAyOntpZighKChyfDApIT0wfFU+Pj4wPDIpKXtpZigoVXwwKT09
Mil7YWU9KGFbUF18MCkhPTB9ZWxzZXthZT0wfWlmKCEoTHxhZSkpe2FmPTA7YWc9bzthaD1UO2Fp
PVM7YWo9UjticmVhayBMOTE0fX1WPWFbRF18MDtYPShWJjEpPT0wP2g6Y1tNPj4yXXwwO0w5MjI6
ZG97aWYoKFV8MCk9PTApe2FrPVg7YWw9VjthbT0kfWVsc2V7aWYoKGRbcysoVS0xKXwwXXwwKTwy
KXthbj1YO2FvPVZ9ZWxzZXthaz1YO2FsPVY7YW09JDticmVha313aGlsZSgxKXthcD1hbyYyNTU7
aWYoKGFufDApPT0oKChhbyYxKT09MD9oOmNbTT4+Ml18MCkrKCgoYXAmMXwwKT09MD9hcD4+PjE6
Y1toPj4yXXwwKTw8Mil8MCkpe2FxPWFvO2JyZWFrfWlmKCEoYjFbY1soY1tlPj4yXXwwKSsxMj4+
Ml0mNjNdKGwsODE5MixjW2FuPj4yXXwwKXwwKSl7Wj04Njg7YnJlYWt9YW49YW4rNHwwO2FvPWFb
RF18MH1pZigoWnwwKT09ODY4KXtaPTA7YXE9YVtEXXwwfWFwPShhcSYxKT09MDthcj1hbi0oYXA/
aDpjW00+PjJdfDApPj4yO2FzPWFbR118MDthdD1hcyYyNTU7YXU9KGF0JjF8MCk9PTA7TDkzMjpk
b3tpZihhcj4+PjA8PShhdT9hdD4+PjE6Y1tOPj4yXXwwKT4+PjApe2F2PShhcyYxKT09MDthdz0o
YXY/TjpjW08+PjJdfDApKygoYXU/YXQ+Pj4xOmNbTj4+Ml18MCktYXI8PDIpfDA7YXg9KGF2P046
Y1tPPj4yXXwwKSsoKGF1P2F0Pj4+MTpjW04+PjJdfDApPDwyKXwwO2lmKChhd3wwKT09KGF4fDAp
KXthaz1hbjthbD1hcTthbT0kO2JyZWFrIEw5MjJ9ZWxzZXtheT1hdzthej1hcD9oOmNbTT4+Ml18
MH13aGlsZSgxKXtpZigoY1theT4+Ml18MCkhPShjW2F6Pj4yXXwwKSl7YnJlYWsgTDkzMn1hdz1h
eSs0fDA7aWYoKGF3fDApPT0oYXh8MCkpe2FrPWFuO2FsPWFxO2FtPSQ7YnJlYWsgTDkyMn1heT1h
dzthej1heis0fDB9fX13aGlsZSgwKTthaz1hcD9oOmNbTT4+Ml18MDthbD1hcTthbT0kfX13aGls
ZSgwKTtMOTM5OndoaWxlKDEpe1Y9YWwmMjU1O2lmKChha3wwKT09KCgoYWwmMSk9PTA/aDpjW00+
PjJdfDApKygoKFYmMXwwKT09MD9WPj4+MTpjW2g+PjJdfDApPDwyKXwwKSl7YnJlYWt9Vj1jW2Y+
PjJdfDA7ZG97aWYoKFZ8MCk9PTApe2FBPTF9ZWxzZXtYPWNbVisxMj4+Ml18MDtpZigoWHwwKT09
KGNbVisxNj4+Ml18MCkpe2FCPWIwW2NbKGNbVj4+Ml18MCkrMzY+PjJdJjEyN10oVil8MH1lbHNl
e2FCPWNbWD4+Ml18MH1pZigoYUJ8MCk9PS0xKXtjW2Y+PjJdPTA7YUE9MTticmVha31lbHNle2FB
PShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7ZG97aWYoKGFtfDApPT0wKXtaPTg4OX1l
bHNle1Y9Y1thbSsxMj4+Ml18MDtpZigoVnwwKT09KGNbYW0rMTY+PjJdfDApKXthQz1iMFtjWyhj
W2FtPj4yXXwwKSszNj4+Ml0mMTI3XShhbSl8MH1lbHNle2FDPWNbVj4+Ml18MH1pZigoYUN8MCk9
PS0xKXtjW2I+PjJdPTA7Wj04ODk7YnJlYWt9ZWxzZXtpZihhQV4oYW18MCk9PTApe2FEPWFtO2Jy
ZWFrfWVsc2V7YnJlYWsgTDkzOX19fX13aGlsZSgwKTtpZigoWnwwKT09ODg5KXtaPTA7aWYoYUEp
e2JyZWFrfWVsc2V7YUQ9MH19Vj1jW2Y+PjJdfDA7YXA9Y1tWKzEyPj4yXXwwO2lmKChhcHwwKT09
KGNbVisxNj4+Ml18MCkpe2FFPWIwW2NbKGNbVj4+Ml18MCkrMzY+PjJdJjEyN10oVil8MH1lbHNl
e2FFPWNbYXA+PjJdfDB9aWYoKGFFfDApIT0oY1thaz4+Ml18MCkpe2JyZWFrfWFwPWNbZj4+Ml18
MDtWPWFwKzEyfDA7WD1jW1Y+PjJdfDA7aWYoKFh8MCk9PShjW2FwKzE2Pj4yXXwwKSl7YXQ9Y1so
Y1thcD4+Ml18MCkrNDA+PjJdfDA7YjBbYXQmMTI3XShhcCl8MH1lbHNle2NbVj4+Ml09WCs0fWFr
PWFrKzR8MDthbD1hW0RdfDA7YW09YUR9aWYoIUwpe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9Ujti
cmVhayBMOTE0fVg9YVtEXXwwO1Y9WCYyNTU7aWYoKGFrfDApPT0oKChYJjEpPT0wP2g6Y1tNPj4y
XXwwKSsoKChWJjF8MCk9PTA/Vj4+PjE6Y1toPj4yXXwwKTw8Mil8MCkpe2FmPXI7YWc9bzthaD1U
O2FpPVM7YWo9Un1lbHNle1o9OTAxO2JyZWFrIEw4OTB9YnJlYWt9O2Nhc2UgNDp7Vj0wO1g9bzth
cD1UO2F0PVM7YXU9UjtMOTc1OndoaWxlKDEpe2FyPWNbZj4+Ml18MDtkb3tpZigoYXJ8MCk9PTAp
e2FGPTF9ZWxzZXthcz1jW2FyKzEyPj4yXXwwO2lmKChhc3wwKT09KGNbYXIrMTY+PjJdfDApKXth
Rz1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2FHPWNbYXM+PjJdfDB9
aWYoKGFHfDApPT0tMSl7Y1tmPj4yXT0wO2FGPTE7YnJlYWt9ZWxzZXthRj0oY1tmPj4yXXwwKT09
MDticmVha319fXdoaWxlKDApO2FyPWNbYj4+Ml18MDtkb3tpZigoYXJ8MCk9PTApe1o9OTE1fWVs
c2V7YXM9Y1thcisxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YUg9YjBbY1so
Y1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthSD1jW2FzPj4yXXwwfWlmKChhSHww
KT09LTEpe2NbYj4+Ml09MDtaPTkxNTticmVha31lbHNle2lmKGFGXihhcnwwKT09MCl7YnJlYWt9
ZWxzZXticmVhayBMOTc1fX19fXdoaWxlKDApO2lmKChafDApPT05MTUpe1o9MDtpZihhRil7YnJl
YWt9fWFyPWNbZj4+Ml18MDthcz1jW2FyKzEyPj4yXXwwO2lmKChhc3wwKT09KGNbYXIrMTY+PjJd
fDApKXthST1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2FJPWNbYXM+
PjJdfDB9aWYoYjFbY1soY1tlPj4yXXwwKSsxMj4+Ml0mNjNdKGwsMjA0OCxhSSl8MCl7YXM9Y1tu
Pj4yXXwwO2lmKChhc3wwKT09KGNbcT4+Ml18MCkpe2gzKG0sbixxKTthSj1jW24+PjJdfDB9ZWxz
ZXthSj1hc31jW24+PjJdPWFKKzQ7Y1thSj4+Ml09YUk7YUs9VisxfDA7YUw9WDthTT1hcDthTj1h
dDthTz1hdX1lbHNle2FzPWRbd118MDtpZigoKChhcyYxfDApPT0wP2FzPj4+MTpjW1E+PjJdfDAp
fDApPT0wfChWfDApPT0wKXticmVha31pZigoYUl8MCkhPShjW3U+PjJdfDApKXticmVha31pZigo
YXB8MCk9PShYfDApKXthcz0oYXV8MCkhPTE2Njthcj1hcC1hdHwwO2F4PWFyPj4+MDwyMTQ3NDgz
NjQ3P2FyPDwxOi0xO2lmKGFzKXthUD1hdH1lbHNle2FQPTB9YXM9a0woYVAsYXgpfDA7YXc9YXM7
aWYoKGFzfDApPT0wKXtrWCgpfWFRPWF3KyhheD4+PjI8PDIpfDA7YVI9YXcrKGFyPj4yPDwyKXww
O2FTPWF3O2FUPTgyfWVsc2V7YVE9WDthUj1hcDthUz1hdDthVD1hdX1jW2FSPj4yXT1WO2FLPTA7
YUw9YVE7YU09YVIrNHwwO2FOPWFTO2FPPWFUfWF3PWNbZj4+Ml18MDthcj1hdysxMnwwO2F4PWNb
YXI+PjJdfDA7aWYoKGF4fDApPT0oY1thdysxNj4+Ml18MCkpe2FzPWNbKGNbYXc+PjJdfDApKzQw
Pj4yXXwwO2IwW2FzJjEyN10oYXcpfDA7Vj1hSztYPWFMO2FwPWFNO2F0PWFOO2F1PWFPO2NvbnRp
bnVlfWVsc2V7Y1thcj4+Ml09YXgrNDtWPWFLO1g9YUw7YXA9YU07YXQ9YU47YXU9YU87Y29udGlu
dWV9fWlmKChhdHwwKT09KGFwfDApfChWfDApPT0wKXthVT1YO2FWPWFwO2FXPWF0O2FYPWF1fWVs
c2V7aWYoKGFwfDApPT0oWHwwKSl7YXg9KGF1fDApIT0xNjY7YXI9YXAtYXR8MDthdz1hcj4+PjA8
MjE0NzQ4MzY0Nz9hcjw8MTotMTtpZihheCl7YVk9YXR9ZWxzZXthWT0wfWF4PWtMKGFZLGF3KXww
O2FzPWF4O2lmKChheHwwKT09MCl7a1goKX1hWj1hcysoYXc+Pj4yPDwyKXwwO2FfPWFzKyhhcj4+
Mjw8Mil8MDthJD1hczthMD04Mn1lbHNle2FaPVg7YV89YXA7YSQ9YXQ7YTA9YXV9Y1thXz4+Ml09
VjthVT1hWjthVj1hXys0fDA7YVc9YSQ7YVg9YTB9YXM9Y1tCPj4yXXwwO2lmKChhc3wwKT4wKXth
cj1jW2Y+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXthMT0xfWVsc2V7YXc9Y1thcisxMj4+Ml18MDtp
ZigoYXd8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YTI9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEy
N10oYXIpfDB9ZWxzZXthMj1jW2F3Pj4yXXwwfWlmKChhMnwwKT09LTEpe2NbZj4+Ml09MDthMT0x
O2JyZWFrfWVsc2V7YTE9KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTthcj1jW2I+PjJd
fDA7ZG97aWYoKGFyfDApPT0wKXtaPTk2NH1lbHNle1Y9Y1thcisxMj4+Ml18MDtpZigoVnwwKT09
KGNbYXIrMTY+PjJdfDApKXthMz1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1l
bHNle2EzPWNbVj4+Ml18MH1pZigoYTN8MCk9PS0xKXtjW2I+PjJdPTA7Wj05NjQ7YnJlYWt9ZWxz
ZXtpZihhMV4oYXJ8MCk9PTApe2E0PWFyO2JyZWFrfWVsc2V7Wj05NzA7YnJlYWsgTDg5MH19fX13
aGlsZSgwKTtpZigoWnwwKT09OTY0KXtaPTA7aWYoYTEpe1o9OTcwO2JyZWFrIEw4OTB9ZWxzZXth
ND0wfX1hcj1jW2Y+PjJdfDA7Vj1jW2FyKzEyPj4yXXwwO2lmKChWfDApPT0oY1thcisxNj4+Ml18
MCkpe2E1PWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YTU9Y1tWPj4y
XXwwfWlmKChhNXwwKSE9KGNbdD4+Ml18MCkpe1o9OTcwO2JyZWFrIEw4OTB9Vj1jW2Y+PjJdfDA7
YXI9VisxMnwwO2F1PWNbYXI+PjJdfDA7aWYoKGF1fDApPT0oY1tWKzE2Pj4yXXwwKSl7YXQ9Y1so
Y1tWPj4yXXwwKSs0MD4+Ml18MDtiMFthdCYxMjddKFYpfDA7YTY9YTQ7YTc9YXN9ZWxzZXtjW2Fy
Pj4yXT1hdSs0O2E2PWE0O2E3PWFzfXdoaWxlKDEpe2F1PWNbZj4+Ml18MDtkb3tpZigoYXV8MCk9
PTApe2E4PTF9ZWxzZXthcj1jW2F1KzEyPj4yXXwwO2lmKChhcnwwKT09KGNbYXUrMTY+PjJdfDAp
KXthOT1iMFtjWyhjW2F1Pj4yXXwwKSszNj4+Ml0mMTI3XShhdSl8MH1lbHNle2E5PWNbYXI+PjJd
fDB9aWYoKGE5fDApPT0tMSl7Y1tmPj4yXT0wO2E4PTE7YnJlYWt9ZWxzZXthOD0oY1tmPj4yXXww
KT09MDticmVha319fXdoaWxlKDApO2Rve2lmKChhNnwwKT09MCl7Wj05ODd9ZWxzZXthdT1jW2E2
KzEyPj4yXXwwO2lmKChhdXwwKT09KGNbYTYrMTY+PjJdfDApKXtiYT1iMFtjWyhjW2E2Pj4yXXww
KSszNj4+Ml0mMTI3XShhNil8MH1lbHNle2JhPWNbYXU+PjJdfDB9aWYoKGJhfDApPT0tMSl7Y1ti
Pj4yXT0wO1o9OTg3O2JyZWFrfWVsc2V7aWYoYTheKGE2fDApPT0wKXtiYj1hNjticmVha31lbHNl
e1o9OTk0O2JyZWFrIEw4OTB9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTk4Nyl7Wj0wO2lmKGE4KXta
PTk5NDticmVhayBMODkwfWVsc2V7YmI9MH19YXU9Y1tmPj4yXXwwO2FyPWNbYXUrMTI+PjJdfDA7
aWYoKGFyfDApPT0oY1thdSsxNj4+Ml18MCkpe2JjPWIwW2NbKGNbYXU+PjJdfDApKzM2Pj4yXSYx
MjddKGF1KXwwfWVsc2V7YmM9Y1thcj4+Ml18MH1pZighKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJd
JjYzXShsLDIwNDgsYmMpfDApKXtaPTk5NDticmVhayBMODkwfWlmKChjW24+PjJdfDApPT0oY1tx
Pj4yXXwwKSl7aDMobSxuLHEpfWFyPWNbZj4+Ml18MDthdT1jW2FyKzEyPj4yXXwwO2lmKChhdXww
KT09KGNbYXIrMTY+PjJdfDApKXtiZD1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8
MH1lbHNle2JkPWNbYXU+PjJdfDB9YXU9Y1tuPj4yXXwwO2Nbbj4+Ml09YXUrNDtjW2F1Pj4yXT1i
ZDthdT1hNy0xfDA7Y1tCPj4yXT1hdTthcj1jW2Y+PjJdfDA7Vj1hcisxMnwwO2F0PWNbVj4+Ml18
MDtpZigoYXR8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YXA9Y1soY1thcj4+Ml18MCkrNDA+PjJdfDA7
YjBbYXAmMTI3XShhcil8MH1lbHNle2NbVj4+Ml09YXQrNH1pZigoYXV8MCk+MCl7YTY9YmI7YTc9
YXV9ZWxzZXticmVha319fWlmKChjW24+PjJdfDApPT0oY1tnPj4yXXwwKSl7Wj0xMDA1O2JyZWFr
IEw4OTB9ZWxzZXthZj1yO2FnPWFVO2FoPWFWO2FpPWFXO2FqPWFYfWJyZWFrfTtjYXNlIDE6e2lm
KChVfDApPT0zKXthYT1SO2FiPVM7YWM9VDthZD1yO1o9MTAwNzticmVhayBMODkwfWFzPWNbZj4+
Ml18MDthdT1jW2FzKzEyPj4yXXwwO2lmKChhdXwwKT09KGNbYXMrMTY+PjJdfDApKXtiZT1iMFtj
WyhjW2FzPj4yXXwwKSszNj4+Ml0mMTI3XShhcyl8MH1lbHNle2JlPWNbYXU+PjJdfDB9aWYoIShi
MVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2M10obCw4MTkyLGJlKXwwKSl7Wj03OTE7YnJlYWsgTDg5
MH1hdT1jW2Y+PjJdfDA7YXM9YXUrMTJ8MDthdD1jW2FzPj4yXXwwO2lmKChhdHwwKT09KGNbYXUr
MTY+PjJdfDApKXtiZj1iMFtjWyhjW2F1Pj4yXXwwKSs0MD4+Ml0mMTI3XShhdSl8MH1lbHNle2Nb
YXM+PjJdPWF0KzQ7YmY9Y1thdD4+Ml18MH1laChBLGJmKTtaPTc5MjticmVha307Y2FzZSAwOnta
PTc5MjticmVha307Y2FzZSAzOnthdD1hW0VdfDA7YXM9YXQmMjU1O2F1PShhcyYxfDApPT0wO1Y9
YVtGXXwwO2FyPVYmMjU1O2FwPShhciYxfDApPT0wO2lmKCgoYXU/YXM+Pj4xOmNbSj4+Ml18MCl8
MCk9PSgtKGFwP2FyPj4+MTpjW0g+PjJdfDApfDApKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7
YnJlYWsgTDkxNH1kb3tpZigoKGF1P2FzPj4+MTpjW0o+PjJdfDApfDApIT0wKXtpZigoKGFwP2Fy
Pj4+MTpjW0g+PjJdfDApfDApPT0wKXticmVha31YPWNbZj4+Ml18MDthdz1jW1grMTI+PjJdfDA7
aWYoKGF3fDApPT0oY1tYKzE2Pj4yXXwwKSl7YXg9YjBbY1soY1tYPj4yXXwwKSszNj4+Ml0mMTI3
XShYKXwwO2JnPWF4O2JoPWFbRV18MH1lbHNle2JnPWNbYXc+PjJdfDA7Ymg9YXR9YXc9Y1tmPj4y
XXwwO2F4PWF3KzEyfDA7WD1jW2F4Pj4yXXwwO2F2PShYfDApPT0oY1thdysxNj4+Ml18MCk7aWYo
KGJnfDApPT0oY1soKGJoJjEpPT0wP0o6Y1tLPj4yXXwwKT4+Ml18MCkpe2lmKGF2KXtiaT1jWyhj
W2F3Pj4yXXwwKSs0MD4+Ml18MDtiMFtiaSYxMjddKGF3KXwwfWVsc2V7Y1theD4+Ml09WCs0fWF4
PWRbRV18MDthZj0oKGF4JjF8MCk9PTA/YXg+Pj4xOmNbSj4+Ml18MCk+Pj4wPjE/eTpyO2FnPW87
YWg9VDthaT1TO2FqPVI7YnJlYWsgTDkxNH1pZihhdil7Ymo9YjBbY1soY1thdz4+Ml18MCkrMzY+
PjJdJjEyN10oYXcpfDB9ZWxzZXtiaj1jW1g+PjJdfDB9aWYoKGJqfDApIT0oY1soKGFbRl0mMSk9
PTA/SDpjW0k+PjJdfDApPj4yXXwwKSl7Wj04NTc7YnJlYWsgTDg5MH1YPWNbZj4+Ml18MDthdz1Y
KzEyfDA7YXY9Y1thdz4+Ml18MDtpZigoYXZ8MCk9PShjW1grMTY+PjJdfDApKXtheD1jWyhjW1g+
PjJdfDApKzQwPj4yXXwwO2IwW2F4JjEyN10oWCl8MH1lbHNle2NbYXc+PjJdPWF2KzR9YVtrXT0x
O2F2PWRbRl18MDthZj0oKGF2JjF8MCk9PTA/YXY+Pj4xOmNbSD4+Ml18MCk+Pj4wPjE/ejpyO2Fn
PW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDkxNH19d2hpbGUoMCk7YXI9Y1tmPj4yXXwwO2FwPWNb
YXIrMTI+PjJdfDA7YXY9KGFwfDApPT0oY1thcisxNj4+Ml18MCk7aWYoKChhdT9hcz4+PjE6Y1tK
Pj4yXXwwKXwwKT09MCl7aWYoYXYpe2F3PWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFy
KXwwO2JrPWF3O2JsPWFbRl18MH1lbHNle2JrPWNbYXA+PjJdfDA7Ymw9Vn1pZigoYmt8MCkhPShj
WygoYmwmMSk9PTA/SDpjW0k+PjJdfDApPj4yXXwwKSl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1S
O2JyZWFrIEw5MTR9YXc9Y1tmPj4yXXwwO1g9YXcrMTJ8MDtheD1jW1g+PjJdfDA7aWYoKGF4fDAp
PT0oY1thdysxNj4+Ml18MCkpe2JpPWNbKGNbYXc+PjJdfDApKzQwPj4yXXwwO2IwW2JpJjEyN10o
YXcpfDB9ZWxzZXtjW1g+PjJdPWF4KzR9YVtrXT0xO2F4PWRbRl18MDthZj0oKGF4JjF8MCk9PTA/
YXg+Pj4xOmNbSD4+Ml18MCk+Pj4wPjE/ejpyO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDkx
NH1pZihhdil7YXY9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDA7Ym09YXY7Ym49
YVtFXXwwfWVsc2V7Ym09Y1thcD4+Ml18MDtibj1hdH1pZigoYm18MCkhPShjWygoYm4mMSk9PTA/
SjpjW0s+PjJdfDApPj4yXXwwKSl7YVtrXT0xO2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVh
ayBMOTE0fWFwPWNbZj4+Ml18MDthdj1hcCsxMnwwO2FyPWNbYXY+PjJdfDA7aWYoKGFyfDApPT0o
Y1thcCsxNj4+Ml18MCkpe2F4PWNbKGNbYXA+PjJdfDApKzQwPj4yXXwwO2IwW2F4JjEyN10oYXAp
fDB9ZWxzZXtjW2F2Pj4yXT1hcis0fWFyPWRbRV18MDthZj0oKGFyJjF8MCk9PTA/YXI+Pj4xOmNb
Sj4+Ml18MCk+Pj4wPjE/eTpyO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWt9O2RlZmF1bHQ6e2Fm
PXI7YWc9bzthaD1UO2FpPVM7YWo9Un19fXdoaWxlKDApO0wxMTgzOmRve2lmKChafDApPT03OTIp
e1o9MDtpZigoVXwwKT09Myl7YWE9UjthYj1TO2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWsgTDg5MH1l
bHNle2JvPSR9d2hpbGUoMSl7YXI9Y1tmPj4yXXwwO2Rve2lmKChhcnwwKT09MCl7YnA9MX1lbHNl
e2F2PWNbYXIrMTI+PjJdfDA7aWYoKGF2fDApPT0oY1thcisxNj4+Ml18MCkpe2JxPWIwW2NbKGNb
YXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YnE9Y1thdj4+Ml18MH1pZigoYnF8MCk9
PS0xKXtjW2Y+PjJdPTA7YnA9MTticmVha31lbHNle2JwPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19
d2hpbGUoMCk7ZG97aWYoKGJvfDApPT0wKXtaPTgwNn1lbHNle2FyPWNbYm8rMTI+PjJdfDA7aWYo
KGFyfDApPT0oY1tibysxNj4+Ml18MCkpe2JyPWIwW2NbKGNbYm8+PjJdfDApKzM2Pj4yXSYxMjdd
KGJvKXwwfWVsc2V7YnI9Y1thcj4+Ml18MH1pZigoYnJ8MCk9PS0xKXtjW2I+PjJdPTA7Wj04MDY7
YnJlYWt9ZWxzZXtpZihicF4oYm98MCk9PTApe2JzPWJvO2JyZWFrfWVsc2V7YWY9cjthZz1vO2Fo
PVQ7YWk9Uzthaj1SO2JyZWFrIEwxMTgzfX19fXdoaWxlKDApO2lmKChafDApPT04MDYpe1o9MDtp
ZihicCl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEwxMTgzfWVsc2V7YnM9MH19YXI9
Y1tmPj4yXXwwO2F2PWNbYXIrMTI+PjJdfDA7aWYoKGF2fDApPT0oY1thcisxNj4+Ml18MCkpe2J0
PWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YnQ9Y1thdj4+Ml18MH1p
ZighKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJdJjYzXShsLDgxOTIsYnQpfDApKXthZj1yO2FnPW87
YWg9VDthaT1TO2FqPVI7YnJlYWsgTDExODN9YXY9Y1tmPj4yXXwwO2FyPWF2KzEyfDA7YXA9Y1th
cj4+Ml18MDtpZigoYXB8MCk9PShjW2F2KzE2Pj4yXXwwKSl7YnU9YjBbY1soY1thdj4+Ml18MCkr
NDA+PjJdJjEyN10oYXYpfDB9ZWxzZXtjW2FyPj4yXT1hcCs0O2J1PWNbYXA+PjJdfDB9ZWgoQSxi
dSk7Ym89YnN9fX13aGlsZSgwKTthdD1VKzF8MDtpZihhdD4+PjA8NCl7Uj1hajtTPWFpO1Q9YWg7
bz1hZztyPWFmO1U9YXR9ZWxzZXthYT1hajthYj1haTthYz1haDthZD1hZjtaPTEwMDc7YnJlYWt9
fUwxMjIwOmRve2lmKChafDApPT04NTcpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9UztieD1S
fWVsc2UgaWYoKFp8MCk9PTkwMSl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1TO2J4PVJ9ZWxz
ZSBpZigoWnwwKT09OTcwKXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PWFXO2J4PWFYfWVsc2Ug
aWYoKFp8MCk9PTk5NCl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlm
KChafDApPT0xMDA1KXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PWFXO2J4PWFYfWVsc2UgaWYo
KFp8MCk9PTEwMDcpe0wxMjI3OmRve2lmKChhZHwwKSE9MCl7YWY9YWQ7YWg9YWQrNHwwO2FpPWFk
Kzh8MDthaj0xO0wxMjI5OndoaWxlKDEpe1U9ZFthZl18MDtpZigoVSYxfDApPT0wKXtieT1VPj4+
MX1lbHNle2J5PWNbYWg+PjJdfDB9aWYoYWo+Pj4wPj1ieT4+PjApe2JyZWFrIEwxMjI3fVU9Y1tm
Pj4yXXwwO2Rve2lmKChVfDApPT0wKXtiej0xfWVsc2V7cj1jW1UrMTI+PjJdfDA7aWYoKHJ8MCk9
PShjW1UrMTY+PjJdfDApKXtiQT1iMFtjWyhjW1U+PjJdfDApKzM2Pj4yXSYxMjddKFUpfDB9ZWxz
ZXtiQT1jW3I+PjJdfDB9aWYoKGJBfDApPT0tMSl7Y1tmPj4yXT0wO2J6PTE7YnJlYWt9ZWxzZXti
ej0oY1tmPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO1U9Y1tiPj4yXXwwO2Rve2lmKChVfDAp
PT0wKXtaPTEwMjZ9ZWxzZXtyPWNbVSsxMj4+Ml18MDtpZigocnwwKT09KGNbVSsxNj4+Ml18MCkp
e2JCPWIwW2NbKGNbVT4+Ml18MCkrMzY+PjJdJjEyN10oVSl8MH1lbHNle2JCPWNbcj4+Ml18MH1p
ZigoYkJ8MCk9PS0xKXtjW2I+PjJdPTA7Wj0xMDI2O2JyZWFrfWVsc2V7aWYoYnpeKFV8MCk9PTAp
e2JyZWFrfWVsc2V7YnJlYWsgTDEyMjl9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTEwMjYpe1o9MDtp
Zihieil7YnJlYWt9fVU9Y1tmPj4yXXwwO3I9Y1tVKzEyPj4yXXwwO2lmKChyfDApPT0oY1tVKzE2
Pj4yXXwwKSl7YkM9YjBbY1soY1tVPj4yXXwwKSszNj4+Ml0mMTI3XShVKXwwfWVsc2V7YkM9Y1ty
Pj4yXXwwfWlmKChhW2FmXSYxKT09MCl7YkQ9YWh9ZWxzZXtiRD1jW2FpPj4yXXwwfWlmKChiQ3ww
KSE9KGNbYkQrKGFqPDwyKT4+Ml18MCkpe2JyZWFrfXI9YWorMXwwO1U9Y1tmPj4yXXwwO2FnPVUr
MTJ8MDtvPWNbYWc+PjJdfDA7aWYoKG98MCk9PShjW1UrMTY+PjJdfDApKXtUPWNbKGNbVT4+Ml18
MCkrNDA+PjJdfDA7YjBbVCYxMjddKFUpfDA7YWo9cjtjb250aW51ZX1lbHNle2NbYWc+PjJdPW8r
NDthaj1yO2NvbnRpbnVlfX1jW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PWFiO2J4PWFhO2JyZWFr
IEwxMjIwfX13aGlsZSgwKTtpZigoYWJ8MCk9PShhY3wwKSl7YnY9MTtidz1hYztieD1hYTticmVh
a31jW0M+PjJdPTA7ZnQodixhYixhYyxDKTtpZigoY1tDPj4yXXwwKT09MCl7YnY9MTtidz1hYjti
eD1hYTticmVha31jW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PWFiO2J4PWFhfWVsc2UgaWYoKFp8
MCk9PTc5MSl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1TO2J4PVJ9fXdoaWxlKDApO2VlKEEp
O2VlKHopO2VlKHkpO2VlKHgpO2RQKHYpO2lmKChid3wwKT09MCl7aT1wO3JldHVybiBidnwwfWJZ
W2J4JjUxMV0oYncpO2k9cDtyZXR1cm4gYnZ8MH1mdW5jdGlvbiBoXyhiLGQsZSl7Yj1ifDA7ZD1k
fDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MDtmPWI7
Zz1kO2g9YVtmXXwwO2k9aCYyNTU7aWYoKGkmMXwwKT09MCl7aj1pPj4+MX1lbHNle2o9Y1tiKzQ+
PjJdfDB9aWYoKGgmMSk9PTApe2s9MTtsPWh9ZWxzZXtoPWNbYj4+Ml18MDtrPShoJi0yKS0xfDA7
bD1oJjI1NX1oPWUtZz4+MjtpZigoaHwwKT09MCl7cmV0dXJuIGJ8MH1pZigoay1qfDApPj4+MDxo
Pj4+MCl7ZUIoYixrLGoraC1rfDAsaixqLDAsMCk7bT1hW2ZdfDB9ZWxzZXttPWx9aWYoKG0mMSk9
PTApe249Yis0fDB9ZWxzZXtuPWNbYis4Pj4yXXwwfW09bisoajw8Mil8MDtpZigoZHwwKT09KGV8
MCkpe289bX1lbHNle2w9aisoKGUtNCsoLWd8MCl8MCk+Pj4yKSsxfDA7Zz1kO2Q9bTt3aGlsZSgx
KXtjW2Q+PjJdPWNbZz4+Ml07bT1nKzR8MDtpZigobXwwKT09KGV8MCkpe2JyZWFrfWVsc2V7Zz1t
O2Q9ZCs0fDB9fW89bisobDw8Mil8MH1jW28+PjJdPTA7bz1qK2h8MDtpZigoYVtmXSYxKT09MCl7
YVtmXT1vPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+PjJdPW87cmV0dXJuIGJ8MH1yZXR1
cm4gMH1mdW5jdGlvbiBoJChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBo
MChhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoMShiLGQsZSxmLGcsaCxqLGspe2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAs
Qj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wO2Q9aTtpPWkrNDU2fDA7bD1lO2U9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tmPj4yXT1jW2w+PjJdO2w9ZHwwO209ZCsxNnwwO249ZCs0MTZ8MDtvPWQrNDI0fDA7cD1kKzQz
MnwwO3E9ZCs0NDB8MDtyPWQrNDQ4fDA7cz1ufDA7Y1tzPj4yXT1tO3Q9bis0fDA7Y1t0Pj4yXT0x
NjY7dT1tKzQwMHwwO2VqKHAsaCk7bT1wfDA7dj1jW20+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0x
KXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2KX1s
PShjWzM5MjNdfDApLTF8MDt3PWNbdis4Pj4yXXwwO2Rve2lmKChjW3YrMTI+PjJdfDApLXc+PjI+
Pj4wPmw+Pj4wKXt4PWNbdysobDw8Mik+PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDthW3Fd
PTA7ej1mfDA7QT1jW3o+PjJdfDA7Y1tyPj4yXT1BO2lmKGhaKGUscixnLHAsY1toKzQ+PjJdfDAs
aixxLHksbixvLHUpfDApe0I9aztpZigoYVtCXSYxKT09MCl7Y1trKzQ+PjJdPTA7YVtCXT0wfWVs
c2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJdPTB9Qj14O2lmKChhW3FdJjEpIT0wKXtlaChr
LGJfW2NbKGNbQj4+Ml18MCkrNDQ+PjJdJjMxXSh5LDQ1KXwwKX14PWJfW2NbKGNbQj4+Ml18MCkr
NDQ+PjJdJjMxXSh5LDQ4KXwwO3k9Y1tvPj4yXXwwO0I9eS00fDA7Qz1jW3M+PjJdfDA7d2hpbGUo
MSl7aWYoQz4+PjA+PUI+Pj4wKXticmVha31pZigoY1tDPj4yXXwwKT09KHh8MCkpe0M9Qys0fDB9
ZWxzZXticmVha319aF8oayxDLHkpfDB9eD1lfDA7Qj1jW3g+PjJdfDA7ZG97aWYoKEJ8MCk9PTAp
e0Q9MH1lbHNle0U9Y1tCKzEyPj4yXXwwO2lmKChFfDApPT0oY1tCKzE2Pj4yXXwwKSl7Rj1iMFtj
WyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtGPWNbRT4+Ml18MH1pZigoRnwwKSE9
LTEpe0Q9QjticmVha31jW3g+PjJdPTA7RD0wfX13aGlsZSgwKTt4PShEfDApPT0wO2Rve2lmKChB
fDApPT0wKXtHPTExMDV9ZWxzZXtCPWNbQSsxMj4+Ml18MDtpZigoQnwwKT09KGNbQSsxNj4+Ml18
MCkpe0g9YjBbY1soY1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwfWVsc2V7SD1jW0I+PjJdfDB9
aWYoKEh8MCk9PS0xKXtjW3o+PjJdPTA7Rz0xMTA1O2JyZWFrfWVsc2V7aWYoeF4oQXwwKT09MCl7
YnJlYWt9ZWxzZXtHPTExMDc7YnJlYWt9fX19d2hpbGUoMCk7aWYoKEd8MCk9PTExMDUpe2lmKHgp
e0c9MTEwN319aWYoKEd8MCk9PTExMDcpe2Nbaj4+Ml09Y1tqPj4yXXwyfWNbYj4+Ml09RDtBPWNb
bT4+Ml18MDtkeihBKXwwO0E9Y1tzPj4yXXwwO2Nbcz4+Ml09MDtpZigoQXwwKT09MCl7aT1kO3Jl
dHVybn1iWVtjW3Q+PjJdJjUxMV0oQSk7aT1kO3JldHVybn19d2hpbGUoMCk7ZD1iTyg0KXwwO2tx
KGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaDIoYixkLGUsZixnLGgsaixrLGwsbSl7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7
dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxB
PTAsQj0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wO249
aTtpPWkrNTZ8MDtvPW58MDtwPW4rMTZ8MDtxPW4rMzJ8MDtyPW4rNDB8MDtzPXI7dD1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO3U9dDt2PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dz12O3g9aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8Mzt5PXg7ej1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7QT1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7RT1EO0Y9aTtpPWkrMTJ8
MDtpPWkrNz4+Mzw8MztHPUY7SD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0k9SDtpZihiKXtiPWNb
ZD4+Ml18MDtpZigoY1s0MDQwXXwwKSE9LTEpe2NbcD4+Ml09MTYxNjA7Y1twKzQ+PjJdPTEyO2Nb
cCs4Pj4yXT0wO2RXKDE2MTYwLHAsOTYpfXA9KGNbNDA0MV18MCktMXwwO0o9Y1tiKzg+PjJdfDA7
aWYoKGNbYisxMj4+Ml18MCktSj4+Mj4+PjA8PXA+Pj4wKXtLPWJPKDQpfDA7TD1LO2txKEwpO2Js
KEt8MCw4MTc2LDEzNCl9Yj1jW0orKHA8PDIpPj4yXXwwO2lmKChifDApPT0wKXtLPWJPKDQpfDA7
TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEzNCl9Sz1iO2JaW2NbKGNbYj4+Ml18MCkrNDQ+PjJdJjEy
N10ocSxLKTtMPWU7Qz1jW3E+PjJdfDA7YVtMXT1DJjI1NTtDPUM+Pjg7YVtMKzF8MF09QyYyNTU7
Qz1DPj44O2FbTCsyfDBdPUMmMjU1O0M9Qz4+ODthW0wrM3wwXT1DJjI1NTtMPWI7YlpbY1soY1tM
Pj4yXXwwKSszMj4+Ml0mMTI3XShyLEspO3E9bDtpZigoYVtxXSYxKT09MCl7Y1tsKzQ+PjJdPTA7
YVtxXT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW3E+PjJd
PWNbcz4+Ml07Y1txKzQ+PjJdPWNbcys0Pj4yXTtjW3ErOD4+Ml09Y1tzKzg+PjJdO2skKHN8MCww
LDEyKTtlZShyKTtiWltjWyhjW0w+PjJdfDApKzI4Pj4yXSYxMjddKHQsSyk7cj1rO2lmKChhW3Jd
JjEpPT0wKXtjW2srND4+Ml09MDthW3JdPTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2srND4+
Ml09MH1leihrLDApO2Nbcj4+Ml09Y1t1Pj4yXTtjW3IrND4+Ml09Y1t1KzQ+PjJdO2Nbcis4Pj4y
XT1jW3UrOD4+Ml07ayQodXwwLDAsMTIpO2VlKHQpO3Q9YjtjW2Y+PjJdPWIwW2NbKGNbdD4+Ml18
MCkrMTI+PjJdJjEyN10oSyl8MDtjW2c+PjJdPWIwW2NbKGNbdD4+Ml18MCkrMTY+PjJdJjEyN10o
Syl8MDtiWltjWyhjW2I+PjJdfDApKzIwPj4yXSYxMjddKHYsSyk7Yj1oO2lmKChhW2JdJjEpPT0w
KXthW2grMXwwXT0wO2FbYl09MH1lbHNle2FbY1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9ZCQo
aCwwKTtjW2I+PjJdPWNbdz4+Ml07Y1tiKzQ+PjJdPWNbdys0Pj4yXTtjW2IrOD4+Ml09Y1t3Kzg+
PjJdO2skKHd8MCwwLDEyKTtkUCh2KTtiWltjWyhjW0w+PjJdfDApKzI0Pj4yXSYxMjddKHgsSyk7
TD1qO2lmKChhW0xdJjEpPT0wKXtjW2orND4+Ml09MDthW0xdPTB9ZWxzZXtjW2Nbais4Pj4yXT4+
Ml09MDtjW2orND4+Ml09MH1leihqLDApO2NbTD4+Ml09Y1t5Pj4yXTtjW0wrND4+Ml09Y1t5KzQ+
PjJdO2NbTCs4Pj4yXT1jW3krOD4+Ml07ayQoeXwwLDAsMTIpO2VlKHgpO009YjBbY1soY1t0Pj4y
XXwwKSszNj4+Ml0mMTI3XShLKXwwO2NbbT4+Ml09TTtpPW47cmV0dXJufWVsc2V7Sz1jW2Q+PjJd
fDA7aWYoKGNbNDA0Ml18MCkhPS0xKXtjW28+PjJdPTE2MTY4O2Nbbys0Pj4yXT0xMjtjW28rOD4+
Ml09MDtkVygxNjE2OCxvLDk2KX1vPShjWzQwNDNdfDApLTF8MDtkPWNbSys4Pj4yXXwwO2lmKChj
W0srMTI+PjJdfDApLWQ+PjI+Pj4wPD1vPj4+MCl7Tj1iTyg0KXwwO089TjtrcShPKTtibChOfDAs
ODE3NiwxMzQpfUs9Y1tkKyhvPDwyKT4+Ml18MDtpZigoS3wwKT09MCl7Tj1iTyg0KXwwO089Tjtr
cShPKTtibChOfDAsODE3NiwxMzQpfU49SztiWltjWyhjW0s+PjJdfDApKzQ0Pj4yXSYxMjddKHos
Tik7Tz1lO0M9Y1t6Pj4yXXwwO2FbT109QyYyNTU7Qz1DPj44O2FbTysxfDBdPUMmMjU1O0M9Qz4+
ODthW08rMnwwXT1DJjI1NTtDPUM+Pjg7YVtPKzN8MF09QyYyNTU7Tz1LO2JaW2NbKGNbTz4+Ml18
MCkrMzI+PjJdJjEyN10oQSxOKTt6PWw7aWYoKGFbel0mMSk9PTApe2NbbCs0Pj4yXT0wO2Fbel09
MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1t6Pj4yXT1jW0I+
PjJdO2Nbeis0Pj4yXT1jW0IrND4+Ml07Y1t6Kzg+PjJdPWNbQis4Pj4yXTtrJChCfDAsMCwxMik7
ZWUoQSk7YlpbY1soY1tPPj4yXXwwKSsyOD4+Ml0mMTI3XShELE4pO0E9aztpZigoYVtBXSYxKT09
MCl7Y1trKzQ+PjJdPTA7YVtBXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJdPTB9
ZXooaywwKTtjW0E+PjJdPWNbRT4+Ml07Y1tBKzQ+PjJdPWNbRSs0Pj4yXTtjW0ErOD4+Ml09Y1tF
Kzg+PjJdO2skKEV8MCwwLDEyKTtlZShEKTtEPUs7Y1tmPj4yXT1iMFtjWyhjW0Q+PjJdfDApKzEy
Pj4yXSYxMjddKE4pfDA7Y1tnPj4yXT1iMFtjWyhjW0Q+PjJdfDApKzE2Pj4yXSYxMjddKE4pfDA7
YlpbY1soY1tLPj4yXXwwKSsyMD4+Ml0mMTI3XShGLE4pO0s9aDtpZigoYVtLXSYxKT09MCl7YVto
KzF8MF09MDthW0tdPTB9ZWxzZXthW2NbaCs4Pj4yXXwwXT0wO2NbaCs0Pj4yXT0wfWQkKGgsMCk7
Y1tLPj4yXT1jW0c+PjJdO2NbSys0Pj4yXT1jW0crND4+Ml07Y1tLKzg+PjJdPWNbRys4Pj4yXTtr
JChHfDAsMCwxMik7ZFAoRik7YlpbY1soY1tPPj4yXXwwKSsyND4+Ml0mMTI3XShILE4pO089ajtp
ZigoYVtPXSYxKT09MCl7Y1tqKzQ+PjJdPTA7YVtPXT0wfWVsc2V7Y1tjW2orOD4+Ml0+PjJdPTA7
Y1tqKzQ+PjJdPTB9ZXooaiwwKTtjW08+PjJdPWNbST4+Ml07Y1tPKzQ+PjJdPWNbSSs0Pj4yXTtj
W08rOD4+Ml09Y1tJKzg+PjJdO2skKEl8MCwwLDEyKTtlZShIKTtNPWIwW2NbKGNbRD4+Ml18MCkr
MzY+PjJdJjEyN10oTil8MDtjW20+PjJdPU07aT1uO3JldHVybn19ZnVuY3Rpb24gaDMoYSxiLGQp
e2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO2U9
YSs0fDA7Zj0oY1tlPj4yXXwwKSE9MTY2O2c9YXwwO2E9Y1tnPj4yXXwwO2g9YTtpPShjW2Q+PjJd
fDApLWh8MDtqPWk+Pj4wPDIxNDc0ODM2NDc/aTw8MTotMTtpPShjW2I+PjJdfDApLWg+PjI7aWYo
Zil7az1hfWVsc2V7az0wfWE9a0woayxqKXwwO2s9YTtpZigoYXwwKT09MCl7a1goKX1kb3tpZihm
KXtjW2c+PjJdPWs7bD1rfWVsc2V7YT1jW2c+PjJdfDA7Y1tnPj4yXT1rO2lmKChhfDApPT0wKXts
PWs7YnJlYWt9YllbY1tlPj4yXSY1MTFdKGEpO2w9Y1tnPj4yXXwwfX13aGlsZSgwKTtjW2U+PjJd
PTgyO2NbYj4+Ml09bCsoaTw8Mik7Y1tkPj4yXT0oY1tnPj4yXXwwKSsoaj4+PjI8PDIpO3JldHVy
bn1mdW5jdGlvbiBoNChiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8
MDtrPWt8MDtsPStsO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxL
PTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTA7ZT1pO2k9
aSsyODB8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZXww
O249ZSsxMjB8MDtvPWUrMjMyfDA7cD1lKzI0MHwwO3E9ZSsyNDh8MDtyPWUrMjU2fDA7cz1lKzI2
NHwwO3Q9czt1PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8Mzt4PXc7eT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ej1pO2k9aSsxMDB8MDtpPWkrNz4+Mzw8
MztBPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztCPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztDPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztEPWUrMTZ8MDtjW24+PjJdPUQ7RT1lKzEyOHwwO0Y9YVooRHwwLDEw
MCwxMzYwLChEPWksaT1pKzh8MCxoW0Q+PjNdPWwsRCl8MCl8MDtpPUQ7ZG97aWYoRj4+PjA+OTkp
e2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Rz1naChuLGNbMjk1OF18MCwxMzYwLChEPWksaT1p
Kzh8MCxoW0Q+PjNdPWwsRCl8MCl8MDtpPUQ7SD1jW24+PjJdfDA7aWYoKEh8MCk9PTApe2tYKCk7
ST1jW24+PjJdfDB9ZWxzZXtJPUh9SD1rSihHKXwwO2lmKChIfDApIT0wKXtKPUg7Sz1HO0w9STtN
PUg7YnJlYWt9a1goKTtKPTA7Sz1HO0w9STtNPTB9ZWxzZXtKPUU7Sz1GO0w9MDtNPTB9fXdoaWxl
KDApO2VqKG8saik7Rj1vfDA7RT1jW0Y+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW20+PjJd
PTE1Njk2O2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTY5NixtLDk2KX1tPShjWzM5MjVd
fDApLTF8MDtJPWNbRSs4Pj4yXXwwO2Rve2lmKChjW0UrMTI+PjJdfDApLUk+PjI+Pj4wPm0+Pj4w
KXtEPWNbSSsobTw8Mik+PjJdfDA7aWYoKER8MCk9PTApe2JyZWFrfUc9RDtIPWNbbj4+Ml18MDtO
PUgrS3wwO089Y1soY1tEPj4yXXwwKSszMj4+Ml18MDtjYVtPJjE1XShHLEgsTixKKXwwO2lmKChL
fDApPT0wKXtQPTB9ZWxzZXtQPShhW2Nbbj4+Ml18MF18MCk9PTQ1fWskKHR8MCwwLDEyKTtrJCh2
fDAsMCwxMik7ayQoeHwwLDAsMTIpO2g1KGcsUCxvLHAscSxyLHMsdSx3LHkpO049enwwO0g9Y1t5
Pj4yXXwwO2lmKChLfDApPihIfDApKXtPPWRbeF18MDtpZigoTyYxfDApPT0wKXtRPU8+Pj4xfWVs
c2V7UT1jW3crND4+Ml18MH1PPWRbdl18MDtpZigoTyYxfDApPT0wKXtSPU8+Pj4xfWVsc2V7Uj1j
W3UrND4+Ml18MH1TPShLLUg8PDF8MSkrUStSfDB9ZWxzZXtPPWRbeF18MDtpZigoTyYxfDApPT0w
KXtUPU8+Pj4xfWVsc2V7VD1jW3crND4+Ml18MH1PPWRbdl18MDtpZigoTyYxfDApPT0wKXtVPU8+
Pj4xfWVsc2V7VT1jW3UrND4+Ml18MH1TPVQrMitVfDB9Tz1TK0h8MDtkb3tpZihPPj4+MD4xMDAp
e0Q9a0ooTyl8MDtpZigoRHwwKSE9MCl7Vj1EO1c9RDticmVha31rWCgpO1Y9MDtXPTB9ZWxzZXtW
PU47Vz0wfX13aGlsZSgwKTtoNihWLEEsQixjW2orND4+Ml18MCxKLEorS3wwLEcsUCxwLGFbcV18
MCxhW3JdfDAscyx1LHcsSCk7Y1tDPj4yXT1jW2Y+PjJdO2Y5KGIsQyxWLGNbQT4+Ml18MCxjW0I+
PjJdfDAsaixrKTtpZigoV3wwKSE9MCl7a0soVyl9ZFAodyk7ZFAodSk7ZFAocyk7Tj1jW0Y+PjJd
fDA7ZHooTil8MDtpZigoTXwwKSE9MCl7a0soTSl9aWYoKEx8MCk9PTApe2k9ZTtyZXR1cm59a0so
TCk7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2JsKGV8MCw4MTc2LDEzNCl9
ZnVuY3Rpb24gaDUoYixkLGUsZixnLGgsaixrLGwsbSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEQ9MCxFPTAsRj0wLEc9
MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0w
O249aTtpPWkrNDB8MDtvPW58MDtwPW4rMTZ8MDtxPW4rMzJ8MDtyPXE7cz1pO2k9aSsxMnwwO2k9
aSs3Pj4zPDwzO3Q9czt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSsxMnwwO2k9
aSs3Pj4zPDwzO3g9dzt5PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7ej15O0E9aTtpPWkrMTJ8MDtp
PWkrNz4+Mzw8MztCPUE7RD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RT1EO0Y9aTtpPWkrMTJ8MDtp
PWkrNz4+Mzw8MztHPUY7SD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ST1IO0o9aTtpPWkrMTJ8MDtp
PWkrNz4+Mzw8MztLPUo7TD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO009TDtOPWk7aT1pKzEyfDA7
aT1pKzc+PjM8PDM7Tz1OO1A9Y1tlPj4yXXwwO2lmKGIpe2lmKChjWzQwNDRdfDApIT0tMSl7Y1tw
Pj4yXT0xNjE3NjtjW3ArND4+Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTYxNzYscCw5Nil9cD0oY1s0
MDQ1XXwwKS0xfDA7Yj1jW1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1iPj4yPj4+MDw9cD4+
PjApe1E9Yk8oNCl8MDtSPVE7a3EoUik7YmwoUXwwLDgxNzYsMTM0KX1lPWNbYisocDw8Mik+PjJd
fDA7aWYoKGV8MCk9PTApe1E9Yk8oNCl8MDtSPVE7a3EoUik7YmwoUXwwLDgxNzYsMTM0KX1RPWU7
Uj1jW2U+PjJdfDA7aWYoZCl7YlpbY1tSKzQ0Pj4yXSYxMjddKHIsUSk7cj1mO0M9Y1txPj4yXXww
O2Fbcl09QyYyNTU7Qz1DPj44O2FbcisxfDBdPUMmMjU1O0M9Qz4+ODthW3IrMnwwXT1DJjI1NTtD
PUM+Pjg7YVtyKzN8MF09QyYyNTU7YlpbY1soY1tlPj4yXXwwKSszMj4+Ml0mMTI3XShzLFEpO3I9
bDtpZigoYVtyXSYxKT09MCl7YVtsKzF8MF09MDthW3JdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0w
O2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1tyPj4yXT1jW3Q+PjJdO2Nbcis0Pj4yXT1jW3QrND4+Ml07
Y1tyKzg+PjJdPWNbdCs4Pj4yXTtrJCh0fDAsMCwxMik7ZFAocyl9ZWxzZXtiWltjW1IrNDA+PjJd
JjEyN10odixRKTt2PWY7Qz1jW3U+PjJdfDA7YVt2XT1DJjI1NTtDPUM+Pjg7YVt2KzF8MF09QyYy
NTU7Qz1DPj44O2FbdisyfDBdPUMmMjU1O0M9Qz4+ODthW3YrM3wwXT1DJjI1NTtiWltjWyhjW2U+
PjJdfDApKzI4Pj4yXSYxMjddKHcsUSk7dj1sO2lmKChhW3ZdJjEpPT0wKXthW2wrMXwwXT0wO2Fb
dl09MH1lbHNle2FbY1tsKzg+PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9ZCQobCwwKTtjW3Y+PjJdPWNb
eD4+Ml07Y1t2KzQ+PjJdPWNbeCs0Pj4yXTtjW3YrOD4+Ml09Y1t4Kzg+PjJdO2skKHh8MCwwLDEy
KTtkUCh3KX13PWU7YVtnXT1iMFtjWyhjW3c+PjJdfDApKzEyPj4yXSYxMjddKFEpfDA7YVtoXT1i
MFtjWyhjW3c+PjJdfDApKzE2Pj4yXSYxMjddKFEpfDA7dz1lO2JaW2NbKGNbdz4+Ml18MCkrMjA+
PjJdJjEyN10oeSxRKTt4PWo7aWYoKGFbeF0mMSk9PTApe2FbaisxfDBdPTA7YVt4XT0wfWVsc2V7
YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbeD4+Ml09Y1t6Pj4yXTtjW3gr
ND4+Ml09Y1t6KzQ+PjJdO2NbeCs4Pj4yXT1jW3orOD4+Ml07ayQoenwwLDAsMTIpO2RQKHkpO2Ja
W2NbKGNbdz4+Ml18MCkrMjQ+PjJdJjEyN10oQSxRKTt3PWs7aWYoKGFbd10mMSk9PTApe2Fbaysx
fDBdPTA7YVt3XT0wfWVsc2V7YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1kJChrLDApO2Nb
dz4+Ml09Y1tCPj4yXTtjW3crND4+Ml09Y1tCKzQ+PjJdO2Nbdys4Pj4yXT1jW0IrOD4+Ml07ayQo
QnwwLDAsMTIpO2RQKEEpO1M9YjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShRKXwwO2NbbT4+
Ml09UztpPW47cmV0dXJufWVsc2V7aWYoKGNbNDA0Nl18MCkhPS0xKXtjW28+PjJdPTE2MTg0O2Nb
bys0Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNjE4NCxvLDk2KX1vPShjWzQwNDddfDApLTF8MDtR
PWNbUCs4Pj4yXXwwO2lmKChjW1ArMTI+PjJdfDApLVE+PjI+Pj4wPD1vPj4+MCl7VD1iTyg0KXww
O1U9VDtrcShVKTtibChUfDAsODE3NiwxMzQpfVA9Y1tRKyhvPDwyKT4+Ml18MDtpZigoUHwwKT09
MCl7VD1iTyg0KXwwO1U9VDtrcShVKTtibChUfDAsODE3NiwxMzQpfVQ9UDtVPWNbUD4+Ml18MDtp
ZihkKXtiWltjW1UrNDQ+PjJdJjEyN10oRSxUKTtFPWY7Qz1jW0Q+PjJdfDA7YVtFXT1DJjI1NTtD
PUM+Pjg7YVtFKzF8MF09QyYyNTU7Qz1DPj44O2FbRSsyfDBdPUMmMjU1O0M9Qz4+ODthW0UrM3ww
XT1DJjI1NTtiWltjWyhjW1A+PjJdfDApKzMyPj4yXSYxMjddKEYsVCk7RT1sO2lmKChhW0VdJjEp
PT0wKXthW2wrMXwwXT0wO2FbRV09MH1lbHNle2FbY1tsKzg+PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9
ZCQobCwwKTtjW0U+PjJdPWNbRz4+Ml07Y1tFKzQ+PjJdPWNbRys0Pj4yXTtjW0UrOD4+Ml09Y1tH
Kzg+PjJdO2skKEd8MCwwLDEyKTtkUChGKX1lbHNle2JaW2NbVSs0MD4+Ml0mMTI3XShJLFQpO0k9
ZjtDPWNbSD4+Ml18MDthW0ldPUMmMjU1O0M9Qz4+ODthW0krMXwwXT1DJjI1NTtDPUM+Pjg7YVtJ
KzJ8MF09QyYyNTU7Qz1DPj44O2FbSSszfDBdPUMmMjU1O2JaW2NbKGNbUD4+Ml18MCkrMjg+PjJd
JjEyN10oSixUKTtJPWw7aWYoKGFbSV0mMSk9PTApe2FbbCsxfDBdPTA7YVtJXT0wfWVsc2V7YVtj
W2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChsLDApO2NbST4+Ml09Y1tLPj4yXTtjW0krND4+
Ml09Y1tLKzQ+PjJdO2NbSSs4Pj4yXT1jW0srOD4+Ml07ayQoS3wwLDAsMTIpO2RQKEopfUo9UDth
W2ddPWIwW2NbKGNbSj4+Ml18MCkrMTI+PjJdJjEyN10oVCl8MDthW2hdPWIwW2NbKGNbSj4+Ml18
MCkrMTY+PjJdJjEyN10oVCl8MDtKPVA7YlpbY1soY1tKPj4yXXwwKSsyMD4+Ml0mMTI3XShMLFQp
O2g9ajtpZigoYVtoXSYxKT09MCl7YVtqKzF8MF09MDthW2hdPTB9ZWxzZXthW2Nbais4Pj4yXXww
XT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1toPj4yXT1jW00+PjJdO2NbaCs0Pj4yXT1jW00rND4+
Ml07Y1toKzg+PjJdPWNbTSs4Pj4yXTtrJChNfDAsMCwxMik7ZFAoTCk7YlpbY1soY1tKPj4yXXww
KSsyND4+Ml0mMTI3XShOLFQpO0o9aztpZigoYVtKXSYxKT09MCl7YVtrKzF8MF09MDthW0pdPTB9
ZWxzZXthW2Nbays4Pj4yXXwwXT0wO2Nbays0Pj4yXT0wfWQkKGssMCk7Y1tKPj4yXT1jW08+PjJd
O2NbSis0Pj4yXT1jW08rND4+Ml07Y1tKKzg+PjJdPWNbTys4Pj4yXTtrJChPfDAsMCwxMik7ZFAo
Tik7Uz1iMFtjWyhjW1A+PjJdfDApKzM2Pj4yXSYxMjddKFQpfDA7Y1ttPj4yXT1TO2k9bjtyZXR1
cm59fWZ1bmN0aW9uIGg2KGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyKXtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDtuPW58MDtv
PW98MDtwPXB8MDtxPXF8MDtyPXJ8MDt2YXIgcz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9
MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0w
LE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAs
YWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFs
PTAsYW09MCxhbj0wLGFvPTAsYXA9MCxhcT0wLGFyPTAsYXM9MCxhdD0wLGF1PTAsYXY9MCxhdz0w
LGF4PTAsYXk9MDtjW2Y+PjJdPWQ7cz1qO3Q9cTt1PXErMXwwO3Y9cSs4fDA7dz1xKzR8MDtxPXA7
eD0oZyY1MTJ8MCk9PTA7eT1wKzF8MDt6PXArNHwwO0E9cCs4fDA7cD1qKzh8MDtCPShyfDApPjA7
Qz1vO0Q9bysxfDA7RT1vKzh8MDtGPW8rNHwwO289LXJ8MDtHPWg7aD0wO3doaWxlKDEpe0wxNTgw
OmRve3N3aXRjaChhW2wraHwwXXwwKXtjYXNlIDA6e2NbZT4+Ml09Y1tmPj4yXTtIPUc7YnJlYWt9
O2Nhc2UgMTp7Y1tlPj4yXT1jW2Y+PjJdO0k9Yl9bY1soY1tzPj4yXXwwKSsyOD4+Ml0mMzFdKGos
MzIpfDA7Sj1jW2Y+PjJdfDA7Y1tmPj4yXT1KKzE7YVtKXT1JO0g9RzticmVha307Y2FzZSAzOntJ
PWFbdF18MDtKPUkmMjU1O2lmKChKJjF8MCk9PTApe0s9Sj4+PjF9ZWxzZXtLPWNbdz4+Ml18MH1p
ZigoS3wwKT09MCl7SD1HO2JyZWFrIEwxNTgwfWlmKChJJjEpPT0wKXtMPXV9ZWxzZXtMPWNbdj4+
Ml18MH1JPWFbTF18MDtKPWNbZj4+Ml18MDtjW2Y+PjJdPUorMTthW0pdPUk7SD1HO2JyZWFrfTtj
YXNlIDI6e0k9YVtxXXwwO0o9SSYyNTU7TT0oSiYxfDApPT0wO2lmKE0pe049Sj4+PjF9ZWxzZXtO
PWNbej4+Ml18MH1pZigoTnwwKT09MHx4KXtIPUc7YnJlYWsgTDE1ODB9aWYoKEkmMSk9PTApe089
eTtQPXl9ZWxzZXtJPWNbQT4+Ml18MDtPPUk7UD1JfWlmKE0pe1E9Sj4+PjF9ZWxzZXtRPWNbej4+
Ml18MH1KPU8rUXwwO009Y1tmPj4yXXwwO2lmKChQfDApPT0oSnwwKSl7Uj1NfWVsc2V7ST1QO1M9
TTt3aGlsZSgxKXthW1NdPWFbSV18MDtNPUkrMXwwO1Q9UysxfDA7aWYoKE18MCk9PShKfDApKXtS
PVQ7YnJlYWt9ZWxzZXtJPU07Uz1UfX19Y1tmPj4yXT1SO0g9RzticmVha307Y2FzZSA0OntTPWNb
Zj4+Ml18MDtJPWs/RysxfDA6RztKPUk7d2hpbGUoMSl7aWYoSj4+PjA+PWk+Pj4wKXticmVha31U
PWFbSl18MDtpZihUPDwyND4+MjQ8PS0xKXticmVha31pZigoYlsoY1twPj4yXXwwKSsoVDw8MjQ+
PjI0PDwxKT4+MV0mMjA0OCk9PTApe2JyZWFrfWVsc2V7Sj1KKzF8MH19VD1KO2lmKEIpe2lmKEo+
Pj4wPkk+Pj4wKXtNPUkrKC1UfDApfDA7VD1NPj4+MDxvPj4+MD9vOk07TT1UK3J8MDtVPUo7Vj1y
O1c9Uzt3aGlsZSgxKXtYPVUtMXwwO1k9YVtYXXwwO2NbZj4+Ml09VysxO2FbV109WTtZPVYtMXww
O1o9KFl8MCk+MDtpZighKFg+Pj4wPkk+Pj4wJlopKXticmVha31VPVg7Vj1ZO1c9Y1tmPj4yXXww
fVc9SitUfDA7aWYoWil7Xz1NOyQ9VzthYT0xMzU0fWVsc2V7YWI9MDthYz1NO2FkPVd9fWVsc2V7
Xz1yOyQ9SjthYT0xMzU0fWlmKChhYXwwKT09MTM1NCl7YWE9MDthYj1iX1tjWyhjW3M+PjJdfDAp
KzI4Pj4yXSYzMV0oaiw0OCl8MDthYz1fO2FkPSR9Vz1jW2Y+PjJdfDA7Y1tmPj4yXT1XKzE7aWYo
KGFjfDApPjApe1Y9YWM7VT1XO3doaWxlKDEpe2FbVV09YWI7WT1WLTF8MDtYPWNbZj4+Ml18MDtj
W2Y+PjJdPVgrMTtpZigoWXwwKT4wKXtWPVk7VT1YfWVsc2V7YWU9WDticmVha319fWVsc2V7YWU9
V31hW2FlXT1tO2FmPWFkfWVsc2V7YWY9Sn1pZigoYWZ8MCk9PShJfDApKXtVPWJfW2NbKGNbcz4+
Ml18MCkrMjg+PjJdJjMxXShqLDQ4KXwwO1Y9Y1tmPj4yXXwwO2NbZj4+Ml09VisxO2FbVl09VX1l
bHNle1U9YVtDXXwwO1Y9VSYyNTU7aWYoKFYmMXwwKT09MCl7YWc9Vj4+PjF9ZWxzZXthZz1jW0Y+
PjJdfDB9aWYoKGFnfDApPT0wKXthaD1hZjthaT0wO2FqPTA7YWs9LTF9ZWxzZXtpZigoVSYxKT09
MCl7YWw9RH1lbHNle2FsPWNbRT4+Ml18MH1haD1hZjthaT0wO2FqPTA7YWs9YVthbF18MH13aGls
ZSgxKXtkb3tpZigoYWl8MCk9PShha3wwKSl7VT1jW2Y+PjJdfDA7Y1tmPj4yXT1VKzE7YVtVXT1u
O1U9YWorMXwwO1Y9YVtDXXwwO009ViYyNTU7aWYoKE0mMXwwKT09MCl7YW09TT4+PjF9ZWxzZXth
bT1jW0Y+PjJdfDB9aWYoVT4+PjA+PWFtPj4+MCl7YW49YWs7YW89VTthcD0wO2JyZWFrfU09KFYm
MSk9PTA7aWYoTSl7YXE9RH1lbHNle2FxPWNbRT4+Ml18MH1pZigoYVthcStVfDBdfDApPT0xMjcp
e2FuPS0xO2FvPVU7YXA9MDticmVha31pZihNKXthcj1EfWVsc2V7YXI9Y1tFPj4yXXwwfWFuPWFb
YXIrVXwwXXwwO2FvPVU7YXA9MH1lbHNle2FuPWFrO2FvPWFqO2FwPWFpfX13aGlsZSgwKTtVPWFo
LTF8MDtNPWFbVV18MDtWPWNbZj4+Ml18MDtjW2Y+PjJdPVYrMTthW1ZdPU07aWYoKFV8MCk9PShJ
fDApKXticmVha31lbHNle2FoPVU7YWk9YXArMXwwO2FqPWFvO2FrPWFufX19Sj1jW2Y+PjJdfDA7
aWYoKFN8MCk9PShKfDApKXtIPUk7YnJlYWsgTDE1ODB9Vz1KLTF8MDtpZihTPj4+MDxXPj4+MCl7
YXM9UzthdD1XfWVsc2V7SD1JO2JyZWFrIEwxNTgwfXdoaWxlKDEpe1c9YVthc118MDthW2FzXT1h
W2F0XXwwO2FbYXRdPVc7Vz1hcysxfDA7Sj1hdC0xfDA7aWYoVz4+PjA8Sj4+PjApe2FzPVc7YXQ9
Sn1lbHNle0g9STticmVha319YnJlYWt9O2RlZmF1bHQ6e0g9R319fXdoaWxlKDApO0k9aCsxfDA7
aWYoST4+PjA8NCl7Rz1IO2g9SX1lbHNle2JyZWFrfX1oPWFbdF18MDt0PWgmMjU1O0g9KHQmMXww
KT09MDtpZihIKXthdT10Pj4+MX1lbHNle2F1PWNbdz4+Ml18MH1pZihhdT4+PjA+MSl7aWYoKGgm
MSk9PTApe2F2PXU7YXc9dX1lbHNle3U9Y1t2Pj4yXXwwO2F2PXU7YXc9dX1pZihIKXtheD10Pj4+
MX1lbHNle2F4PWNbdz4+Ml18MH13PWF2K2F4fDA7YXg9Y1tmPj4yXXwwO2F2PWF3KzF8MDtpZigo
YXZ8MCk9PSh3fDApKXtheT1heH1lbHNle2F3PWF4O2F4PWF2O3doaWxlKDEpe2FbYXddPWFbYXhd
fDA7YXY9YXcrMXwwO3Q9YXgrMXwwO2lmKCh0fDApPT0od3wwKSl7YXk9YXY7YnJlYWt9ZWxzZXth
dz1hdjtheD10fX19Y1tmPj4yXT1heX1zd2l0Y2goZyYxNzZ8MCl7Y2FzZSAxNjp7cmV0dXJufTtj
YXNlIDMyOntjW2U+PjJdPWNbZj4+Ml07cmV0dXJufTtkZWZhdWx0OntjW2U+PjJdPWQ7cmV0dXJu
fX19ZnVuY3Rpb24gaDcoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaDgo
YSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaDkoYixlLGYsZyxoLGosayl7Yj1ifDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9
MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0w
LFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MDtl
PWk7aT1pKzY0fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTts
PWV8MDttPWUrMTZ8MDtuPWUrMjR8MDtvPWUrMzJ8MDtwPWUrNDB8MDtxPWUrNDh8MDtyPXE7cz1p
O2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Q9czt1PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dj11O3c9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3g9aTtpPWkrMTAwfDA7aT1pKzc+PjM8PDM7eT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7ej1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7QT1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7ZWoobSxoKTtCPW18MDtDPWNbQj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+
Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzky
NV18MCktMXwwO0Q9Y1tDKzg+PjJdfDA7ZG97aWYoKGNbQysxMj4+Ml18MCktRD4+Mj4+PjA+bD4+
PjApe0U9Y1tEKyhsPDwyKT4+Ml18MDtpZigoRXwwKT09MCl7YnJlYWt9Rj1FO0c9aztIPWs7ST1h
W0hdfDA7Sj1JJjI1NTtpZigoSiYxfDApPT0wKXtLPUo+Pj4xfWVsc2V7Sz1jW2srND4+Ml18MH1p
ZigoS3wwKT09MCl7TD0wfWVsc2V7aWYoKEkmMSk9PTApe009RysxfDB9ZWxzZXtNPWNbays4Pj4y
XXwwfUk9YVtNXXwwO0w9STw8MjQ+PjI0PT0oYl9bY1soY1tFPj4yXXwwKSsyOD4+Ml0mMzFdKEYs
NDUpfDApPDwyND4+MjR9ayQocnwwLDAsMTIpO2skKHR8MCwwLDEyKTtrJCh2fDAsMCwxMik7aDUo
ZyxMLG0sbixvLHAscSxzLHUsdyk7RT14fDA7ST1hW0hdfDA7Sj1JJjI1NTtOPShKJjF8MCk9PTA7
aWYoTil7Tz1KPj4+MX1lbHNle089Y1trKzQ+PjJdfDB9UD1jW3c+PjJdfDA7aWYoKE98MCk+KFB8
MCkpe2lmKE4pe1E9Sj4+PjF9ZWxzZXtRPWNbays0Pj4yXXwwfUo9ZFt2XXwwO2lmKChKJjF8MCk9
PTApe1I9Sj4+PjF9ZWxzZXtSPWNbdSs0Pj4yXXwwfUo9ZFt0XXwwO2lmKChKJjF8MCk9PTApe1M9
Sj4+PjF9ZWxzZXtTPWNbcys0Pj4yXXwwfVQ9KFEtUDw8MXwxKStSK1N8MH1lbHNle0o9ZFt2XXww
O2lmKChKJjF8MCk9PTApe1U9Sj4+PjF9ZWxzZXtVPWNbdSs0Pj4yXXwwfUo9ZFt0XXwwO2lmKChK
JjF8MCk9PTApe1Y9Sj4+PjF9ZWxzZXtWPWNbcys0Pj4yXXwwfVQ9VSsyK1Z8MH1KPVQrUHwwO2Rv
e2lmKEo+Pj4wPjEwMCl7Tj1rSihKKXwwO2lmKChOfDApIT0wKXtXPU47WD1OO1k9STticmVha31r
WCgpO1c9MDtYPTA7WT1hW0hdfDB9ZWxzZXtXPUU7WD0wO1k9SX19d2hpbGUoMCk7aWYoKFkmMSk9
PTApe1o9RysxfDA7Xz1HKzF8MH1lbHNle0k9Y1trKzg+PjJdfDA7Wj1JO189SX1JPVkmMjU1O2lm
KChJJjF8MCk9PTApeyQ9ST4+PjF9ZWxzZXskPWNbays0Pj4yXXwwfWg2KFcseSx6LGNbaCs0Pj4y
XXwwLF8sWiskfDAsRixMLG4sYVtvXXwwLGFbcF18MCxxLHMsdSxQKTtjW0E+PjJdPWNbZj4+Ml07
ZjkoYixBLFcsY1t5Pj4yXXwwLGNbej4+Ml18MCxoLGopO2lmKChYfDApPT0wKXtkUCh1KTtkUChz
KTtkUChxKTthYT1jW0I+PjJdfDA7YWI9YWF8MDthYz1keihhYil8MDtpPWU7cmV0dXJufWtLKFgp
O2RQKHUpO2RQKHMpO2RQKHEpO2FhPWNbQj4+Ml18MDthYj1hYXwwO2FjPWR6KGFiKXwwO2k9ZTty
ZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1bmN0aW9u
IGlhKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3wwO2w9
K2w7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTA7ZT1pO2k9aSs1NzZ8
MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZXwwO249ZSsx
MjB8MDtvPWUrNTI4fDA7cD1lKzUzNnwwO3E9ZSs1NDR8MDtyPWUrNTUyfDA7cz1lKzU2MHwwO3Q9
czt1PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt4
PXc7eT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ej1pO2k9aSs0MDB8MDtBPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztCPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztDPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztE
PWUrMTZ8MDtjW24+PjJdPUQ7RT1lKzEyOHwwO0Y9YVooRHwwLDEwMCwxMzYwLChEPWksaT1pKzh8
MCxoW0Q+PjNdPWwsRCl8MCl8MDtpPUQ7ZG97aWYoRj4+PjA+OTkpe2Rve2lmKChhWzE2MjY0XXww
KT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19
d2hpbGUoMCk7Rz1naChuLGNbMjk1OF18MCwxMzYwLChEPWksaT1pKzh8MCxoW0Q+PjNdPWwsRCl8
MCl8MDtpPUQ7SD1jW24+PjJdfDA7aWYoKEh8MCk9PTApe2tYKCk7ST1jW24+PjJdfDB9ZWxzZXtJ
PUh9SD1rSihHPDwyKXwwO0o9SDtpZigoSHwwKSE9MCl7Sz1KO0w9RztNPUk7Tj1KO2JyZWFrfWtY
KCk7Sz1KO0w9RztNPUk7Tj1KfWVsc2V7Sz1FO0w9RjtNPTA7Tj0wfX13aGlsZSgwKTtlaihvLGop
O0Y9b3wwO0U9Y1tGPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1ttPj4yXT0xNTY4ODtjW20r
ND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTU2ODgsbSw5Nil9bT0oY1szOTIzXXwwKS0xfDA7ST1j
W0UrOD4+Ml18MDtkb3tpZigoY1tFKzEyPj4yXXwwKS1JPj4yPj4+MD5tPj4+MCl7RD1jW0krKG08
PDIpPj4yXXwwO2lmKChEfDApPT0wKXticmVha31KPUQ7Rz1jW24+PjJdfDA7SD1HK0x8MDtPPWNb
KGNbRD4+Ml18MCkrNDg+PjJdfDA7Y2FbTyYxNV0oSixHLEgsSyl8MDtpZigoTHwwKT09MCl7UD0w
fWVsc2V7UD0oYVtjW24+PjJdfDBdfDApPT00NX1rJCh0fDAsMCwxMik7ayQodnwwLDAsMTIpO2sk
KHh8MCwwLDEyKTtpYihnLFAsbyxwLHEscixzLHUsdyx5KTtIPXp8MDtHPWNbeT4+Ml18MDtpZigo
THwwKT4oR3wwKSl7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7UT1PPj4+MX1lbHNle1E9Y1t3KzQ+
PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7Uj1PPj4+MX1lbHNle1I9Y1t1KzQ+PjJdfDB9
Uz0oTC1HPDwxfDEpK1ErUnwwfWVsc2V7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7VD1PPj4+MX1l
bHNle1Q9Y1t3KzQ+PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7VT1PPj4+MX1lbHNle1U9
Y1t1KzQ+PjJdfDB9Uz1UKzIrVXwwfU89UytHfDA7ZG97aWYoTz4+PjA+MTAwKXtEPWtKKE88PDIp
fDA7Vj1EO2lmKChEfDApIT0wKXtXPVY7WD1WO2JyZWFrfWtYKCk7Vz1WO1g9Vn1lbHNle1c9SDtY
PTB9fXdoaWxlKDApO2ljKFcsQSxCLGNbais0Pj4yXXwwLEssSysoTDw8Mil8MCxKLFAscCxjW3E+
PjJdfDAsY1tyPj4yXXwwLHMsdSx3LEcpO2NbQz4+Ml09Y1tmPj4yXTtncShiLEMsVyxjW0E+PjJd
fDAsY1tCPj4yXXwwLGosayk7aWYoKFh8MCkhPTApe2tLKFgpfWVlKHcpO2VlKHUpO2RQKHMpO0g9
Y1tGPj4yXXwwO2R6KEgpfDA7aWYoKE58MCkhPTApe2tLKE4pfWlmKChNfDApPT0wKXtpPWU7cmV0
dXJufWtLKE0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtrcShlKTtibChlfDAsODE3
NiwxMzQpfWZ1bmN0aW9uIGliKGIsZCxlLGYsZyxoLGosayxsLG0pe2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MDtuPWk7aT1pKzQwfDA7bz1ufDA7cD1uKzE2fDA7cT1uKzMyfDA7cj1xO3M9aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8Mzt0PXM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8Mzt4PXc7eT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3o9eTtBPWk7aT1p
KzEyfDA7aT1pKzc+PjM8PDM7Qj1BO0Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1p
KzEyfDA7aT1pKzc+PjM8PDM7Rz1GO0g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0k9SDtKPWk7aT1p
KzEyfDA7aT1pKzc+PjM8PDM7Sz1KO0w9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztNPUw7Tj1pO2k9
aSsxMnwwO2k9aSs3Pj4zPDwzO089TjtQPWNbZT4+Ml18MDtpZihiKXtpZigoY1s0MDQwXXwwKSE9
LTEpe2NbcD4+Ml09MTYxNjA7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTYwLHAsOTYp
fXA9KGNbNDA0MV18MCktMXwwO2I9Y1tQKzg+PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktYj4+Mj4+
PjA8PXA+Pj4wKXtRPWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9ZT1jW2IrKHA8
PDIpPj4yXXwwO2lmKChlfDApPT0wKXtRPWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEz
NCl9UT1lO1I9Y1tlPj4yXXwwO2lmKGQpe2JaW2NbUis0ND4+Ml0mMTI3XShyLFEpO3I9ZjtDPWNb
cT4+Ml18MDthW3JdPUMmMjU1O0M9Qz4+ODthW3IrMXwwXT1DJjI1NTtDPUM+Pjg7YVtyKzJ8MF09
QyYyNTU7Qz1DPj44O2FbciszfDBdPUMmMjU1O2JaW2NbKGNbZT4+Ml18MCkrMzI+PjJdJjEyN10o
cyxRKTtyPWw7aWYoKGFbcl0mMSk9PTApe2NbbCs0Pj4yXT0wO2Fbcl09MH1lbHNle2NbY1tsKzg+
PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1tyPj4yXT1jW3Q+PjJdO2Nbcis0Pj4yXT1j
W3QrND4+Ml07Y1tyKzg+PjJdPWNbdCs4Pj4yXTtrJCh0fDAsMCwxMik7ZWUocyl9ZWxzZXtiWltj
W1IrNDA+PjJdJjEyN10odixRKTt2PWY7Qz1jW3U+PjJdfDA7YVt2XT1DJjI1NTtDPUM+Pjg7YVt2
KzF8MF09QyYyNTU7Qz1DPj44O2FbdisyfDBdPUMmMjU1O0M9Qz4+ODthW3YrM3wwXT1DJjI1NTti
WltjWyhjW2U+PjJdfDApKzI4Pj4yXSYxMjddKHcsUSk7dj1sO2lmKChhW3ZdJjEpPT0wKXtjW2wr
ND4+Ml09MDthW3ZdPTB9ZWxzZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDAp
O2Nbdj4+Ml09Y1t4Pj4yXTtjW3YrND4+Ml09Y1t4KzQ+PjJdO2Nbdis4Pj4yXT1jW3grOD4+Ml07
ayQoeHwwLDAsMTIpO2VlKHcpfXc9ZTtjW2c+PjJdPWIwW2NbKGNbdz4+Ml18MCkrMTI+PjJdJjEy
N10oUSl8MDtjW2g+PjJdPWIwW2NbKGNbdz4+Ml18MCkrMTY+PjJdJjEyN10oUSl8MDtiWltjWyhj
W2U+PjJdfDApKzIwPj4yXSYxMjddKHksUSk7eD1qO2lmKChhW3hdJjEpPT0wKXthW2orMXwwXT0w
O2FbeF09MH1lbHNle2FbY1tqKzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW3g+PjJd
PWNbej4+Ml07Y1t4KzQ+PjJdPWNbeis0Pj4yXTtjW3grOD4+Ml09Y1t6Kzg+PjJdO2skKHp8MCww
LDEyKTtkUCh5KTtiWltjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKEEsUSk7ZT1rO2lmKChhW2Vd
JjEpPT0wKXtjW2srND4+Ml09MDthW2VdPTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2srND4+
Ml09MH1leihrLDApO2NbZT4+Ml09Y1tCPj4yXTtjW2UrND4+Ml09Y1tCKzQ+PjJdO2NbZSs4Pj4y
XT1jW0IrOD4+Ml07ayQoQnwwLDAsMTIpO2VlKEEpO1M9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0m
MTI3XShRKXwwO2NbbT4+Ml09UztpPW47cmV0dXJufWVsc2V7aWYoKGNbNDA0Ml18MCkhPS0xKXtj
W28+PjJdPTE2MTY4O2Nbbys0Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNjE2OCxvLDk2KX1vPShj
WzQwNDNdfDApLTF8MDtRPWNbUCs4Pj4yXXwwO2lmKChjW1ArMTI+PjJdfDApLVE+PjI+Pj4wPD1v
Pj4+MCl7VD1iTyg0KXwwO1U9VDtrcShVKTtibChUfDAsODE3NiwxMzQpfVA9Y1tRKyhvPDwyKT4+
Ml18MDtpZigoUHwwKT09MCl7VD1iTyg0KXwwO1U9VDtrcShVKTtibChUfDAsODE3NiwxMzQpfVQ9
UDtVPWNbUD4+Ml18MDtpZihkKXtiWltjW1UrNDQ+PjJdJjEyN10oRSxUKTtFPWY7Qz1jW0Q+PjJd
fDA7YVtFXT1DJjI1NTtDPUM+Pjg7YVtFKzF8MF09QyYyNTU7Qz1DPj44O2FbRSsyfDBdPUMmMjU1
O0M9Qz4+ODthW0UrM3wwXT1DJjI1NTtiWltjWyhjW1A+PjJdfDApKzMyPj4yXSYxMjddKEYsVCk7
RT1sO2lmKChhW0VdJjEpPT0wKXtjW2wrND4+Ml09MDthW0VdPTB9ZWxzZXtjW2NbbCs4Pj4yXT4+
Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2NbRT4+Ml09Y1tHPj4yXTtjW0UrND4+Ml09Y1tHKzQ+
PjJdO2NbRSs4Pj4yXT1jW0crOD4+Ml07ayQoR3wwLDAsMTIpO2VlKEYpfWVsc2V7YlpbY1tVKzQw
Pj4yXSYxMjddKEksVCk7ST1mO0M9Y1tIPj4yXXwwO2FbSV09QyYyNTU7Qz1DPj44O2FbSSsxfDBd
PUMmMjU1O0M9Qz4+ODthW0krMnwwXT1DJjI1NTtDPUM+Pjg7YVtJKzN8MF09QyYyNTU7YlpbY1so
Y1tQPj4yXXwwKSsyOD4+Ml0mMTI3XShKLFQpO0k9bDtpZigoYVtJXSYxKT09MCl7Y1tsKzQ+PjJd
PTA7YVtJXT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW0k+
PjJdPWNbSz4+Ml07Y1tJKzQ+PjJdPWNbSys0Pj4yXTtjW0krOD4+Ml09Y1tLKzg+PjJdO2skKEt8
MCwwLDEyKTtlZShKKX1KPVA7Y1tnPj4yXT1iMFtjWyhjW0o+PjJdfDApKzEyPj4yXSYxMjddKFQp
fDA7Y1toPj4yXT1iMFtjWyhjW0o+PjJdfDApKzE2Pj4yXSYxMjddKFQpfDA7YlpbY1soY1tQPj4y
XXwwKSsyMD4+Ml0mMTI3XShMLFQpO2g9ajtpZigoYVtoXSYxKT09MCl7YVtqKzF8MF09MDthW2hd
PTB9ZWxzZXthW2Nbais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1toPj4yXT1jW00+
PjJdO2NbaCs0Pj4yXT1jW00rND4+Ml07Y1toKzg+PjJdPWNbTSs4Pj4yXTtrJChNfDAsMCwxMik7
ZFAoTCk7YlpbY1soY1tQPj4yXXwwKSsyND4+Ml0mMTI3XShOLFQpO1A9aztpZigoYVtQXSYxKT09
MCl7Y1trKzQ+PjJdPTA7YVtQXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJdPTB9
ZXooaywwKTtjW1A+PjJdPWNbTz4+Ml07Y1tQKzQ+PjJdPWNbTys0Pj4yXTtjW1ArOD4+Ml09Y1tP
Kzg+PjJdO2skKE98MCwwLDEyKTtlZShOKTtTPWIwW2NbKGNbSj4+Ml18MCkrMzY+PjJdJjEyN10o
VCl8MDtjW20+PjJdPVM7aT1uO3JldHVybn19ZnVuY3Rpb24gaWMoYixkLGUsZixnLGgsaSxqLGss
bCxtLG4sbyxwLHEpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9
anwwO2s9a3wwO2w9bHwwO209bXwwO249bnwwO289b3wwO3A9cHwwO3E9cXwwO3ZhciByPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxW
PTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAs
YWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MCxhbj0wLGFvPTAsYXA9MCxhcT0wLGFy
PTAsYXM9MCxhdD0wLGF1PTAsYXY9MCxhdz0wO2NbZT4+Ml09YjtyPWk7cz1wO3Q9cCs0fDA7dT1w
Kzh8MDtwPW87dj0oZiY1MTJ8MCk9PTA7dz1vKzR8MDt4PW8rOHwwO289aTt5PShxfDApPjA7ej1u
O0E9bisxfDA7Qj1uKzh8MDtDPW4rNHwwO249ZztnPTA7d2hpbGUoMSl7TDE5MDE6ZG97c3dpdGNo
KGFbaytnfDBdfDApe2Nhc2UgMDp7Y1tkPj4yXT1jW2U+PjJdO0Q9bjticmVha307Y2FzZSAxOntj
W2Q+PjJdPWNbZT4+Ml07RT1iX1tjWyhjW3I+PjJdfDApKzQ0Pj4yXSYzMV0oaSwzMil8MDtGPWNb
ZT4+Ml18MDtjW2U+PjJdPUYrNDtjW0Y+PjJdPUU7RD1uO2JyZWFrfTtjYXNlIDM6e0U9YVtzXXww
O0Y9RSYyNTU7aWYoKEYmMXwwKT09MCl7Rz1GPj4+MX1lbHNle0c9Y1t0Pj4yXXwwfWlmKChHfDAp
PT0wKXtEPW47YnJlYWsgTDE5MDF9aWYoKEUmMSk9PTApe0g9dH1lbHNle0g9Y1t1Pj4yXXwwfUU9
Y1tIPj4yXXwwO0Y9Y1tlPj4yXXwwO2NbZT4+Ml09Ris0O2NbRj4+Ml09RTtEPW47YnJlYWt9O2Nh
c2UgMjp7RT1hW3BdfDA7Rj1FJjI1NTtJPShGJjF8MCk9PTA7aWYoSSl7Sj1GPj4+MX1lbHNle0o9
Y1t3Pj4yXXwwfWlmKChKfDApPT0wfHYpe0Q9bjticmVhayBMMTkwMX1pZigoRSYxKT09MCl7Sz13
O0w9dztNPXd9ZWxzZXtFPWNbeD4+Ml18MDtLPUU7TD1FO009RX1pZihJKXtOPUY+Pj4xfWVsc2V7
Tj1jW3c+PjJdfDB9Rj1LKyhOPDwyKXwwO0k9Y1tlPj4yXXwwO2lmKChMfDApPT0oRnwwKSl7Tz1J
fWVsc2V7RT0oSysoTi0xPDwyKSsoLU18MCl8MCk+Pj4yO1A9TDtRPUk7d2hpbGUoMSl7Y1tRPj4y
XT1jW1A+PjJdO1I9UCs0fDA7aWYoKFJ8MCk9PShGfDApKXticmVha31QPVI7UT1RKzR8MH1PPUkr
KEUrMTw8Mil8MH1jW2U+PjJdPU87RD1uO2JyZWFrfTtjYXNlIDQ6e1E9Y1tlPj4yXXwwO1A9aj9u
KzR8MDpuO0Y9UDt3aGlsZSgxKXtpZihGPj4+MD49aD4+PjApe2JyZWFrfWlmKGIxW2NbKGNbbz4+
Ml18MCkrMTI+PjJdJjYzXShpLDIwNDgsY1tGPj4yXXwwKXwwKXtGPUYrNHwwfWVsc2V7YnJlYWt9
fWlmKHkpe2lmKEY+Pj4wPlA+Pj4wKXtFPUY7ST1xO2Rve0U9RS00fDA7Uj1jW0U+PjJdfDA7Uz1j
W2U+PjJdfDA7Y1tlPj4yXT1TKzQ7Y1tTPj4yXT1SO0k9SS0xfDA7VD0oSXwwKT4wO313aGlsZShF
Pj4+MD5QPj4+MCZUKTtpZihUKXtVPUk7Vj1FO1c9MTYzMH1lbHNle1g9MDtZPUk7Wj1FfX1lbHNl
e1U9cTtWPUY7Vz0xNjMwfWlmKChXfDApPT0xNjMwKXtXPTA7WD1iX1tjWyhjW3I+PjJdfDApKzQ0
Pj4yXSYzMV0oaSw0OCl8MDtZPVU7Wj1WfVI9Y1tlPj4yXXwwO2NbZT4+Ml09Uis0O2lmKChZfDAp
PjApe1M9WTtfPVI7d2hpbGUoMSl7Y1tfPj4yXT1YOyQ9Uy0xfDA7YWE9Y1tlPj4yXXwwO2NbZT4+
Ml09YWErNDtpZigoJHwwKT4wKXtTPSQ7Xz1hYX1lbHNle2FiPWFhO2JyZWFrfX19ZWxzZXthYj1S
fWNbYWI+PjJdPWw7YWM9Wn1lbHNle2FjPUZ9aWYoKGFjfDApPT0oUHwwKSl7Xz1iX1tjWyhjW3I+
PjJdfDApKzQ0Pj4yXSYzMV0oaSw0OCl8MDtTPWNbZT4+Ml18MDtjW2U+PjJdPVMrNDtjW1M+PjJd
PV99ZWxzZXtfPWFbel18MDtTPV8mMjU1O2lmKChTJjF8MCk9PTApe2FkPVM+Pj4xfWVsc2V7YWQ9
Y1tDPj4yXXwwfWlmKChhZHwwKT09MCl7YWU9YWM7YWY9MDthZz0wO2FoPS0xfWVsc2V7aWYoKF8m
MSk9PTApe2FpPUF9ZWxzZXthaT1jW0I+PjJdfDB9YWU9YWM7YWY9MDthZz0wO2FoPWFbYWldfDB9
d2hpbGUoMSl7ZG97aWYoKGFmfDApPT0oYWh8MCkpe189Y1tlPj4yXXwwO2NbZT4+Ml09Xys0O2Nb
Xz4+Ml09bTtfPWFnKzF8MDtTPWFbel18MDtFPVMmMjU1O2lmKChFJjF8MCk9PTApe2FqPUU+Pj4x
fWVsc2V7YWo9Y1tDPj4yXXwwfWlmKF8+Pj4wPj1haj4+PjApe2FrPWFoO2FsPV87YW09MDticmVh
a31FPShTJjEpPT0wO2lmKEUpe2FuPUF9ZWxzZXthbj1jW0I+PjJdfDB9aWYoKGFbYW4rX3wwXXww
KT09MTI3KXthaz0tMTthbD1fO2FtPTA7YnJlYWt9aWYoRSl7YW89QX1lbHNle2FvPWNbQj4+Ml18
MH1haz1hW2FvK198MF18MDthbD1fO2FtPTB9ZWxzZXthaz1haDthbD1hZzthbT1hZn19d2hpbGUo
MCk7Xz1hZS00fDA7RT1jW18+PjJdfDA7Uz1jW2U+PjJdfDA7Y1tlPj4yXT1TKzQ7Y1tTPj4yXT1F
O2lmKChffDApPT0oUHwwKSl7YnJlYWt9ZWxzZXthZT1fO2FmPWFtKzF8MDthZz1hbDthaD1ha319
fUY9Y1tlPj4yXXwwO2lmKChRfDApPT0oRnwwKSl7RD1QO2JyZWFrIEwxOTAxfVI9Ri00fDA7aWYo
UT4+PjA8Uj4+PjApe2FwPVE7YXE9Un1lbHNle0Q9UDticmVhayBMMTkwMX13aGlsZSgxKXtSPWNb
YXA+PjJdfDA7Y1thcD4+Ml09Y1thcT4+Ml07Y1thcT4+Ml09UjtSPWFwKzR8MDtGPWFxLTR8MDtp
ZihSPj4+MDxGPj4+MCl7YXA9UjthcT1GfWVsc2V7RD1QO2JyZWFrfX1icmVha307ZGVmYXVsdDp7
RD1ufX19d2hpbGUoMCk7UD1nKzF8MDtpZihQPj4+MDw0KXtuPUQ7Zz1QfWVsc2V7YnJlYWt9fWc9
YVtzXXwwO3M9ZyYyNTU7RD0ocyYxfDApPT0wO2lmKEQpe2FyPXM+Pj4xfWVsc2V7YXI9Y1t0Pj4y
XXwwfWlmKGFyPj4+MD4xKXtpZigoZyYxKT09MCl7YXM9dDthdD10O2F1PXR9ZWxzZXtnPWNbdT4+
Ml18MDthcz1nO2F0PWc7YXU9Z31pZihEKXthdj1zPj4+MX1lbHNle2F2PWNbdD4+Ml18MH10PWFz
Kyhhdjw8Mil8MDtzPWNbZT4+Ml18MDtEPWF0KzR8MDtpZigoRHwwKT09KHR8MCkpe2F3PXN9ZWxz
ZXthdD0oKGFzKyhhdi0yPDwyKSsoLWF1fDApfDApPj4+MikrMXwwO2F1PXM7YXY9RDt3aGlsZSgx
KXtjW2F1Pj4yXT1jW2F2Pj4yXTtEPWF2KzR8MDtpZigoRHwwKT09KHR8MCkpe2JyZWFrfWVsc2V7
YXU9YXUrNHwwO2F2PUR9fWF3PXMrKGF0PDwyKXwwfWNbZT4+Ml09YXd9c3dpdGNoKGYmMTc2fDAp
e2Nhc2UgMzI6e2NbZD4+Ml09Y1tlPj4yXTtyZXR1cm59O2Nhc2UgMTY6e3JldHVybn07ZGVmYXVs
dDp7Y1tkPj4yXT1iO3JldHVybn19fWZ1bmN0aW9uIGlkKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7
cmV0dXJufWZ1bmN0aW9uIGllKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGlnKGIs
ZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wO2lmKChhW2RdJjEpPT0wKXtmPWQrMXwwfWVs
c2V7Zj1jW2QrOD4+Ml18MH1kPWE4KGZ8MCwyMDApfDA7cmV0dXJuIGQ+Pj4oKChkfDApIT0tMXww
KT4+PjApfDB9ZnVuY3Rpb24gaWgoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MDtlPWk7aT1pKzY0fDA7bD1m
O2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWV8MDttPWUrMTZ8MDtu
PWUrMjR8MDtvPWUrMzJ8MDtwPWUrNDB8MDtxPWUrNDh8MDtyPXE7cz1pO2k9aSsxMnwwO2k9aSs3
Pj4zPDwzO3Q9czt1PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3g9aTtpPWkrNDAwfDA7eT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ej1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7QT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ZWoobSxoKTtCPW18MDtDPWNbQj4+
Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1tsKzQ+PjJdPTEyO2NbbCs4
Pj4yXT0wO2RXKDE1Njg4LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO0Q9Y1tDKzg+PjJdfDA7ZG97
aWYoKGNbQysxMj4+Ml18MCktRD4+Mj4+PjA+bD4+PjApe0U9Y1tEKyhsPDwyKT4+Ml18MDtpZigo
RXwwKT09MCl7YnJlYWt9Rj1FO0c9aztIPWFbR118MDtJPUgmMjU1O2lmKChJJjF8MCk9PTApe0o9
ST4+PjF9ZWxzZXtKPWNbays0Pj4yXXwwfWlmKChKfDApPT0wKXtLPTB9ZWxzZXtpZigoSCYxKT09
MCl7TD1rKzR8MH1lbHNle0w9Y1trKzg+PjJdfDB9SD1jW0w+PjJdfDA7Sz0oSHwwKT09KGJfW2Nb
KGNbRT4+Ml18MCkrNDQ+PjJdJjMxXShGLDQ1KXwwKX1rJChyfDAsMCwxMik7ayQodHwwLDAsMTIp
O2skKHZ8MCwwLDEyKTtpYihnLEssbSxuLG8scCxxLHMsdSx3KTtFPXh8MDtIPWFbR118MDtJPUgm
MjU1O009KEkmMXwwKT09MDtpZihNKXtOPUk+Pj4xfWVsc2V7Tj1jW2srND4+Ml18MH1PPWNbdz4+
Ml18MDtpZigoTnwwKT4oT3wwKSl7aWYoTSl7UD1JPj4+MX1lbHNle1A9Y1trKzQ+PjJdfDB9ST1k
W3ZdfDA7aWYoKEkmMXwwKT09MCl7UT1JPj4+MX1lbHNle1E9Y1t1KzQ+PjJdfDB9ST1kW3RdfDA7
aWYoKEkmMXwwKT09MCl7Uj1JPj4+MX1lbHNle1I9Y1tzKzQ+PjJdfDB9Uz0oUC1PPDwxfDEpK1Er
UnwwfWVsc2V7ST1kW3ZdfDA7aWYoKEkmMXwwKT09MCl7VD1JPj4+MX1lbHNle1Q9Y1t1KzQ+PjJd
fDB9ST1kW3RdfDA7aWYoKEkmMXwwKT09MCl7VT1JPj4+MX1lbHNle1U9Y1tzKzQ+PjJdfDB9Uz1U
KzIrVXwwfUk9UytPfDA7ZG97aWYoST4+PjA+MTAwKXtNPWtKKEk8PDIpfDA7Vj1NO2lmKChNfDAp
IT0wKXtXPVY7WD1WO1k9SDticmVha31rWCgpO1c9VjtYPVY7WT1hW0ddfDB9ZWxzZXtXPUU7WD0w
O1k9SH19d2hpbGUoMCk7aWYoKFkmMSk9PTApe1o9ays0fDA7Xz1rKzR8MH1lbHNle0g9Y1trKzg+
PjJdfDA7Wj1IO189SH1IPVkmMjU1O2lmKChIJjF8MCk9PTApeyQ9SD4+PjF9ZWxzZXskPWNbays0
Pj4yXXwwfWljKFcseSx6LGNbaCs0Pj4yXXwwLF8sWisoJDw8Mil8MCxGLEssbixjW28+PjJdfDAs
Y1twPj4yXXwwLHEscyx1LE8pO2NbQT4+Ml09Y1tmPj4yXTtncShiLEEsVyxjW3k+PjJdfDAsY1t6
Pj4yXXwwLGgsaik7aWYoKFh8MCk9PTApe2VlKHUpO2VlKHMpO2RQKHEpO2FhPWNbQj4+Ml18MDth
Yj1hYXwwO2FjPWR6KGFiKXwwO2k9ZTtyZXR1cm59a0soWCk7ZWUodSk7ZWUocyk7ZFAocSk7YWE9
Y1tCPj4yXXwwO2FiPWFhfDA7YWM9ZHooYWIpfDA7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0
KXwwO2txKGUpO2JsKGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaWkoYixkLGUsZixnLGgpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTA7ZD1pO2k9aSsxNnwwO2o9ZHwwO2s9ajtrJChr
fDAsMCwxMik7bD1iO209aDtuPWFbaF18MDtpZigobiYxKT09MCl7bz1tKzF8MDtwPW0rMXwwfWVs
c2V7bT1jW2grOD4+Ml18MDtvPW07cD1tfW09biYyNTU7aWYoKG0mMXwwKT09MCl7cT1tPj4+MX1l
bHNle3E9Y1toKzQ+PjJdfDB9aD1vK3F8MDtkb3tpZihwPj4+MDxoPj4+MCl7cT1wO2Rve2RVKGos
YVtxXXwwKTtxPXErMXwwO313aGlsZShxPj4+MDxoPj4+MCk7cT0oZXwwKT09LTE/LTE6ZTw8MTtp
ZigoYVtrXSYxKT09MCl7cj1xO3M9MTc2MjticmVha310PWNbais4Pj4yXXwwO3U9cX1lbHNle3I9
KGV8MCk9PS0xPy0xOmU8PDE7cz0xNzYyfX13aGlsZSgwKTtpZigoc3wwKT09MTc2Mil7dD1qKzF8
MDt1PXJ9cj1iTSh1fDAsZnwwLGd8MCx0fDApfDA7ayQobHwwLDAsMTIpO2w9azAocnwwKXwwO3Q9
citsfDA7aWYoKGx8MCk+MCl7dj1yfWVsc2V7ZFAoaik7aT1kO3JldHVybn1kb3tkVShiLGFbdl18
MCk7dj12KzF8MDt9d2hpbGUodj4+PjA8dD4+PjApO2RQKGopO2k9ZDtyZXR1cm59ZnVuY3Rpb24g
aWooYSxiKXthPWF8MDtiPWJ8MDthMSgoKGJ8MCk9PS0xPy0xOmI8PDEpfDApfDA7cmV0dXJufWZ1
bmN0aW9uIGlrKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlsKGEpe2E9
YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGltKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2
YXIgZj0wO2lmKChhW2RdJjEpPT0wKXtmPWQrMXwwfWVsc2V7Zj1jW2QrOD4+Ml18MH1kPWE4KGZ8
MCwyMDApfDA7cmV0dXJuIGQ+Pj4oKChkfDApIT0tMXwwKT4+PjApfDB9ZnVuY3Rpb24gaW8oYSxi
KXthPWF8MDtiPWJ8MDthMSgoKGJ8MCk9PS0xPy0xOmI8PDEpfDApfDA7cmV0dXJufWZ1bmN0aW9u
IGlwKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIg
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZD1pO2k9
aSsyMjR8MDtqPWR8MDtrPWQrOHwwO2w9ZCs0MHwwO209ZCs0OHwwO249ZCs1NnwwO289ZCs2NHww
O3A9ZCsxOTJ8MDtxPWQrMjAwfDA7cj1kKzIwOHwwO3M9cjt0PWk7aT1pKzh8MDt1PWk7aT1pKzh8
MDtrJChzfDAsMCwxMik7dj1iO3c9dHwwO2NbdCs0Pj4yXT0wO2NbdD4+Ml09NDEwNDt4PWFbaF18
MDtpZigoeCYxKT09MCl7eT1oKzR8MDt6PWgrNHwwfWVsc2V7QT1jW2grOD4+Ml18MDt5PUE7ej1B
fUE9eCYyNTU7aWYoKEEmMXwwKT09MCl7Qj1BPj4+MX1lbHNle0I9Y1toKzQ+PjJdfDB9aD15KyhC
PDwyKXwwO0wyMTM1OmRve2lmKHo+Pj4wPGg+Pj4wKXtCPXQ7eT1rfDA7QT1rKzMyfDA7eD16O0M9
NDEwNDt3aGlsZSgxKXtjW20+PjJdPXg7RD0oYjZbY1tDKzEyPj4yXSYzMV0odyxqLHgsaCxtLHks
QSxsKXwwKT09MjtFPWNbbT4+Ml18MDtpZihEfChFfDApPT0oeHwwKSl7YnJlYWt9aWYoeT4+PjA8
KGNbbD4+Ml18MCk+Pj4wKXtEPXk7ZG97ZFUocixhW0RdfDApO0Q9RCsxfDA7fXdoaWxlKEQ+Pj4w
PChjW2w+PjJdfDApPj4+MCk7Rj1jW20+PjJdfDB9ZWxzZXtGPUV9aWYoRj4+PjA+PWg+Pj4wKXti
cmVhayBMMjEzNX14PUY7Qz1jW0I+PjJdfDB9Qj1iTyg4KXwwO2RFKEIsOTA0KTtibChCfDAsODE5
MiwyMil9fXdoaWxlKDApO2RlKHR8MCk7aWYoKGFbc10mMSk9PTApe0c9cisxfDB9ZWxzZXtHPWNb
cis4Pj4yXXwwfXM9Yk0oKChlfDApPT0tMT8tMTplPDwxKXwwLGZ8MCxnfDAsR3wwKXwwO2skKHZ8
MCwwLDEyKTt2PXV8MDtjW3UrND4+Ml09MDtjW3U+PjJdPTQwNDg7Rz1rMChzfDApfDA7Zz1zK0d8
MDtpZigoR3wwKTwxKXtIPXV8MDtkZShIKTtkUChyKTtpPWQ7cmV0dXJufUc9dTtmPWc7ZT1vfDA7
dD1vKzEyOHwwO289cztzPTQwNDg7d2hpbGUoMSl7Y1txPj4yXT1vO0Y9KGI2W2NbcysxNj4+Ml0m
MzFdKHYsbixvLChmLW98MCk+MzI/byszMnwwOmcscSxlLHQscCl8MCk9PTI7aD1jW3E+PjJdfDA7
aWYoRnwoaHwwKT09KG98MCkpe2JyZWFrfWlmKGU+Pj4wPChjW3A+PjJdfDApPj4+MCl7Rj1lO2Rv
e2VoKGIsY1tGPj4yXXwwKTtGPUYrNHwwO313aGlsZShGPj4+MDwoY1twPj4yXXwwKT4+PjApO0k9
Y1txPj4yXXwwfWVsc2V7ST1ofWlmKEk+Pj4wPj1nPj4+MCl7Sj0xODI5O2JyZWFrfW89STtzPWNb
Rz4+Ml18MH1pZigoSnwwKT09MTgyOSl7SD11fDA7ZGUoSCk7ZFAocik7aT1kO3JldHVybn1kPWJP
KDgpfDA7ZEUoZCw5MDQpO2JsKGR8MCw4MTkyLDIyKX1mdW5jdGlvbiBpcShiKXtiPWJ8MDt2YXIg
ZD0wLGU9MCxmPTA7Y1tiPj4yXT0zNTY4O2Q9Yis4fDA7ZT1jW2Q+PjJdfDA7ZG97aWYoKGFbMTYy
NjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCww
KXwwfX13aGlsZSgwKTtpZigoZXwwKT09KGNbMjk1OF18MCkpe2Y9YnwwO2RlKGYpO3JldHVybn1h
NyhjW2Q+PjJdfDApO2Y9YnwwO2RlKGYpO3JldHVybn1mdW5jdGlvbiBpcihhKXthPWF8MDthPWJP
KDgpfDA7ZEEoYSwxMzUyKTtjW2E+PjJdPTI1MDQ7YmwoYXwwLDgyMDgsMzIpfWZ1bmN0aW9uIGlz
KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MDtlPWk7aT1pKzQ0OHww
O2Y9ZXwwO2c9ZSsxNnwwO2g9ZSszMnwwO2o9ZSs0OHwwO2s9ZSs2NHwwO2w9ZSs4MHwwO209ZSs5
NnwwO249ZSsxMTJ8MDtvPWUrMTI4fDA7cD1lKzE0NHwwO3E9ZSsxNjB8MDtyPWUrMTc2fDA7cz1l
KzE5MnwwO3Q9ZSsyMDh8MDt1PWUrMjI0fDA7dj1lKzI0MHwwO3c9ZSsyNTZ8MDt4PWUrMjcyfDA7
eT1lKzI4OHwwO3o9ZSszMDR8MDtBPWUrMzIwfDA7Qj1lKzMzNnwwO0M9ZSszNTJ8MDtEPWUrMzY4
fDA7RT1lKzM4NHwwO0Y9ZSs0MDB8MDtHPWUrNDE2fDA7SD1lKzQzMnwwO2NbYis0Pj4yXT1kLTE7
Y1tiPj4yXT0zODI0O2Q9Yis4fDA7ST1iKzEyfDA7YVtiKzEzNnwwXT0xO0o9YisyNHwwO0s9Sjtj
W0k+PjJdPUs7Y1tkPj4yXT1LO2NbYisxNj4+Ml09SisxMTI7Sj0yODtMPUs7ZG97aWYoKEx8MCk9
PTApe009MH1lbHNle2NbTD4+Ml09MDtNPWNbST4+Ml18MH1MPU0rNHwwO2NbST4+Ml09TDtKPUot
MXwwO313aGlsZSgoSnwwKSE9MCk7ZFooYisxNDR8MCwxMzQ0LDEpO0o9Y1tkPj4yXXwwO2Q9Y1tJ
Pj4yXXwwO2lmKChKfDApIT0oZHwwKSl7Y1tJPj4yXT1kKyh+KChkLTQrKC1KfDApfDApPj4+Mik8
PDIpfWNbMzYxN109MDtjWzM2MTZdPTM1Mjg7aWYoKGNbMzg0NF18MCkhPS0xKXtjW0g+PjJdPTE1
Mzc2O2NbSCs0Pj4yXT0xMjtjW0grOD4+Ml09MDtkVygxNTM3NixILDk2KX1pSihiLDE0NDY0LChj
WzM4NDVdfDApLTF8MCk7Y1szNjE1XT0wO2NbMzYxNF09MzQ4ODtpZigoY1szODQyXXwwKSE9LTEp
e2NbRz4+Ml09MTUzNjg7Y1tHKzQ+PjJdPTEyO2NbRys4Pj4yXT0wO2RXKDE1MzY4LEcsOTYpfWlK
KGIsMTQ0NTYsKGNbMzg0M118MCktMXwwKTtjWzM2NjddPTA7Y1szNjY2XT0zOTM2O2NbMzY2OF09
MDthWzE0Njc2XT0wO2NbMzY2OF09Y1soYTYoKXwwKT4+Ml07aWYoKGNbMzkyNF18MCkhPS0xKXtj
W0Y+PjJdPTE1Njk2O2NbRis0Pj4yXT0xMjtjW0YrOD4+Ml09MDtkVygxNTY5NixGLDk2KX1pSihi
LDE0NjY0LChjWzM5MjVdfDApLTF8MCk7Y1szNjY1XT0wO2NbMzY2NF09Mzg1NjtpZigoY1szOTIy
XXwwKSE9LTEpe2NbRT4+Ml09MTU2ODg7Y1tFKzQ+PjJdPTEyO2NbRSs4Pj4yXT0wO2RXKDE1Njg4
LEUsOTYpfWlKKGIsMTQ2NTYsKGNbMzkyM118MCktMXwwKTtjWzM2MTldPTA7Y1szNjE4XT0zNjI0
O2lmKChjWzM4NDhdfDApIT0tMSl7Y1tEPj4yXT0xNTM5MjtjW0QrND4+Ml09MTI7Y1tEKzg+PjJd
PTA7ZFcoMTUzOTIsRCw5Nil9aUooYiwxNDQ3MiwoY1szODQ5XXwwKS0xfDApO2NbNTIxXT0wO2Nb
NTIwXT0zNTY4O2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJl
YWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Y1s1MjJdPWNbMjk1OF07aWYoKGNb
Mzg0Nl18MCkhPS0xKXtjW0M+PjJdPTE1Mzg0O2NbQys0Pj4yXT0xMjtjW0MrOD4+Ml09MDtkVygx
NTM4NCxDLDk2KX1pSihiLDIwODAsKGNbMzg0N118MCktMXwwKTtjWzM2MjFdPTA7Y1szNjIwXT0z
NjgwO2lmKChjWzM4NTBdfDApIT0tMSl7Y1tCPj4yXT0xNTQwMDtjW0IrND4+Ml09MTI7Y1tCKzg+
PjJdPTA7ZFcoMTU0MDAsQiw5Nil9aUooYiwxNDQ4MCwoY1szODUxXXwwKS0xfDApO2NbMzYyM109
MDtjWzM2MjJdPTM3MzY7aWYoKGNbMzg1Ml18MCkhPS0xKXtjW0E+PjJdPTE1NDA4O2NbQSs0Pj4y
XT0xMjtjW0ErOD4+Ml09MDtkVygxNTQwOCxBLDk2KX1pSihiLDE0NDg4LChjWzM4NTNdfDApLTF8
MCk7Y1szNTk3XT0wO2NbMzU5Nl09MzAzMjthWzE0MzkyXT00NjthWzE0MzkzXT00NDtrJCgxNDM5
NiwwLDEyKTtpZigoY1szODI4XXwwKSE9LTEpe2Nbej4+Ml09MTUzMTI7Y1t6KzQ+PjJdPTEyO2Nb
eis4Pj4yXT0wO2RXKDE1MzEyLHosOTYpfWlKKGIsMTQzODQsKGNbMzgyOV18MCktMXwwKTtjWzUx
M109MDtjWzUxMl09Mjk4NDtjWzUxNF09NDY7Y1s1MTVdPTQ0O2skKDIwNjQsMCwxMik7aWYoKGNb
MzgyNl18MCkhPS0xKXtjW3k+PjJdPTE1MzA0O2NbeSs0Pj4yXT0xMjtjW3krOD4+Ml09MDtkVygx
NTMwNCx5LDk2KX1pSihiLDIwNDgsKGNbMzgyN118MCktMXwwKTtjWzM2MTNdPTA7Y1szNjEyXT0z
NDE2O2lmKChjWzM4NDBdfDApIT0tMSl7Y1t4Pj4yXT0xNTM2MDtjW3grND4+Ml09MTI7Y1t4Kzg+
PjJdPTA7ZFcoMTUzNjAseCw5Nil9aUooYiwxNDQ0OCwoY1szODQxXXwwKS0xfDApO2NbMzYxMV09
MDtjWzM2MTBdPTMzNDQ7aWYoKGNbMzgzOF18MCkhPS0xKXtjW3c+PjJdPTE1MzUyO2Nbdys0Pj4y
XT0xMjtjW3crOD4+Ml09MDtkVygxNTM1Mix3LDk2KX1pSihiLDE0NDQwLChjWzM4MzldfDApLTF8
MCk7Y1szNjA5XT0wO2NbMzYwOF09MzI4MDtpZigoY1szODM2XXwwKSE9LTEpe2Nbdj4+Ml09MTUz
NDQ7Y1t2KzQ+PjJdPTEyO2Nbdis4Pj4yXT0wO2RXKDE1MzQ0LHYsOTYpfWlKKGIsMTQ0MzIsKGNb
MzgzN118MCktMXwwKTtjWzM2MDddPTA7Y1szNjA2XT0zMjE2O2lmKChjWzM4MzRdfDApIT0tMSl7
Y1t1Pj4yXT0xNTMzNjtjW3UrND4+Ml09MTI7Y1t1Kzg+PjJdPTA7ZFcoMTUzMzYsdSw5Nil9aUoo
YiwxNDQyNCwoY1szODM1XXwwKS0xfDApO2NbMzY3N109MDtjWzM2NzZdPTQ5MTI7aWYoKGNbNDA0
Nl18MCkhPS0xKXtjW3Q+PjJdPTE2MTg0O2NbdCs0Pj4yXT0xMjtjW3QrOD4+Ml09MDtkVygxNjE4
NCx0LDk2KX1pSihiLDE0NzA0LChjWzQwNDddfDApLTF8MCk7Y1szNjc1XT0wO2NbMzY3NF09NDg0
ODtpZigoY1s0MDQ0XXwwKSE9LTEpe2Nbcz4+Ml09MTYxNzY7Y1tzKzQ+PjJdPTEyO2Nbcys4Pj4y
XT0wO2RXKDE2MTc2LHMsOTYpfWlKKGIsMTQ2OTYsKGNbNDA0NV18MCktMXwwKTtjWzM2NzNdPTA7
Y1szNjcyXT00Nzg0O2lmKChjWzQwNDJdfDApIT0tMSl7Y1tyPj4yXT0xNjE2ODtjW3IrND4+Ml09
MTI7Y1tyKzg+PjJdPTA7ZFcoMTYxNjgsciw5Nil9aUooYiwxNDY4OCwoY1s0MDQzXXwwKS0xfDAp
O2NbMzY3MV09MDtjWzM2NzBdPTQ3MjA7aWYoKGNbNDA0MF18MCkhPS0xKXtjW3E+PjJdPTE2MTYw
O2NbcSs0Pj4yXT0xMjtjW3ErOD4+Ml09MDtkVygxNjE2MCxxLDk2KX1pSihiLDE0NjgwLChjWzQw
NDFdfDApLTF8MCk7Y1szNTk1XT0wO2NbMzU5NF09MjY4ODtpZigoY1szODE2XXwwKSE9LTEpe2Nb
cD4+Ml09MTUyNjQ7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE1MjY0LHAsOTYpfWlKKGIs
MTQzNzYsKGNbMzgxN118MCktMXwwKTtjWzM1OTNdPTA7Y1szNTkyXT0yNjQ4O2lmKChjWzM4MTRd
fDApIT0tMSl7Y1tvPj4yXT0xNTI1NjtjW28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTUyNTYs
byw5Nil9aUooYiwxNDM2OCwoY1szODE1XXwwKS0xfDApO2NbMzU5MV09MDtjWzM1OTBdPTI2MDg7
aWYoKGNbMzgxMl18MCkhPS0xKXtjW24+PjJdPTE1MjQ4O2Nbbis0Pj4yXT0xMjtjW24rOD4+Ml09
MDtkVygxNTI0OCxuLDk2KX1pSihiLDE0MzYwLChjWzM4MTNdfDApLTF8MCk7Y1szNTg5XT0wO2Nb
MzU4OF09MjU2ODtpZigoY1szODEwXXwwKSE9LTEpe2NbbT4+Ml09MTUyNDA7Y1ttKzQ+PjJdPTEy
O2NbbSs4Pj4yXT0wO2RXKDE1MjQwLG0sOTYpfWlKKGIsMTQzNTIsKGNbMzgxMV18MCktMXwwKTtj
WzUwOV09MDtjWzUwOF09Mjg4ODtjWzUxMF09MjkzNjtpZigoY1szODI0XXwwKSE9LTEpe2NbbD4+
Ml09MTUyOTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Mjk2LGwsOTYpfWlKKGIsMjAz
MiwoY1szODI1XXwwKS0xfDApO2NbNTA1XT0wO2NbNTA0XT0yNzkyO2NbNTA2XT0yODQwO2lmKChj
WzM4MjJdfDApIT0tMSl7Y1trPj4yXT0xNTI4ODtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFco
MTUyODgsayw5Nil9aUooYiwyMDE2LChjWzM4MjNdfDApLTF8MCk7Y1s1MDFdPTA7Y1s1MDBdPTM3
OTI7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5
NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtjWzUwMl09Y1syOTU4XTtjWzUwMF09Mjc2MDtp
ZigoY1szODIwXXwwKSE9LTEpe2Nbaj4+Ml09MTUyODA7Y1tqKzQ+PjJdPTEyO2Nbais4Pj4yXT0w
O2RXKDE1MjgwLGosOTYpfWlKKGIsMmUzLChjWzM4MjFdfDApLTF8MCk7Y1s0OTddPTA7Y1s0OTZd
PTM3OTI7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31j
WzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtjWzQ5OF09Y1syOTU4XTtjWzQ5Nl09Mjcy
ODtpZigoY1szODE4XXwwKSE9LTEpe2NbaD4+Ml09MTUyNzI7Y1toKzQ+PjJdPTEyO2NbaCs4Pj4y
XT0wO2RXKDE1MjcyLGgsOTYpfWlKKGIsMTk4NCwoY1szODE5XXwwKS0xfDApO2NbMzYwNV09MDtj
WzM2MDRdPTMxMjA7aWYoKGNbMzgzMl18MCkhPS0xKXtjW2c+PjJdPTE1MzI4O2NbZys0Pj4yXT0x
MjtjW2crOD4+Ml09MDtkVygxNTMyOCxnLDk2KX1pSihiLDE0NDE2LChjWzM4MzNdfDApLTF8MCk7
Y1szNjAzXT0wO2NbMzYwMl09MzA4MDtpZigoY1szODMwXXwwKSE9LTEpe2NbZj4+Ml09MTUzMjA7
Y1tmKzQ+PjJdPTEyO2NbZis4Pj4yXT0wO2RXKDE1MzIwLGYsOTYpfWlKKGIsMTQ0MDgsKGNbMzgz
MV18MCktMXwwKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGl0KGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJu
IGJ8MH1mdW5jdGlvbiBpdShhLGIsZCxlLGYsZyxoLGkpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2NbZj4+Ml09ZDtjW2k+PjJdPWc7cmV0dXJuIDN9ZnVu
Y3Rpb24gaXYoYSxiLGQsZSxmLGcsaCxpKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtpPWl8MDtjW2Y+PjJdPWQ7Y1tpPj4yXT1nO3JldHVybiAzfWZ1bmN0aW9uIGl3
KGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Y1tmPj4yXT1kO3JldHVy
biAzfWZ1bmN0aW9uIGl4KGEpe2E9YXwwO3JldHVybiAxfWZ1bmN0aW9uIGl5KGEpe2E9YXwwO3Jl
dHVybiAxfWZ1bmN0aW9uIGl6KGEpe2E9YXwwO3JldHVybiAxfWZ1bmN0aW9uIGlBKGEsYil7YT1h
fDA7Yj1ifDA7cmV0dXJuIGI8PDI0Pj4yNHwwfWZ1bmN0aW9uIGlCKGEsYixjKXthPWF8MDtiPWJ8
MDtjPWN8MDtyZXR1cm4oYj4+PjA8MTI4P2ImMjU1OmMpfDB9ZnVuY3Rpb24gaUMoYSxiLGMpe2E9
YXwwO2I9YnwwO2M9Y3wwO3JldHVybihiPDwyND4+MjQ+LTE/YjpjKXwwfWZ1bmN0aW9uIGlEKGEs
YixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Yj1kLWN8MDtyZXR1cm4oYj4+
PjA8ZT4+PjA/YjplKXwwfWZ1bmN0aW9uIGlFKGEpe2E9YXwwO2NbYSs0Pj4yXT0oST1jWzM4NTRd
fDAsY1szODU0XT1JKzEsSSkrMTtyZXR1cm59ZnVuY3Rpb24gaUYoYixkLGUsZil7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wO2lmKChkfDApPT0oZXwwKSl7Zz1kO3JldHVy
biBnfDB9ZWxzZXtoPWQ7aT1mfXdoaWxlKDEpe2NbaT4+Ml09YVtoXXwwO2Y9aCsxfDA7aWYoKGZ8
MCk9PShlfDApKXtnPWU7YnJlYWt9ZWxzZXtoPWY7aT1pKzR8MH19cmV0dXJuIGd8MH1mdW5jdGlv
biBpRyhiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaT0w
LGo9MDtpZigoZHwwKT09KGV8MCkpe2g9ZDtyZXR1cm4gaHwwfWI9KChlLTQrKC1kfDApfDApPj4+
MikrMXwwO2k9ZDtqPWc7d2hpbGUoMSl7Zz1jW2k+PjJdfDA7YVtqXT1nPj4+MDwxMjg/ZyYyNTU6
ZjtnPWkrNHwwO2lmKChnfDApPT0oZXwwKSl7YnJlYWt9ZWxzZXtpPWc7aj1qKzF8MH19aD1kKyhi
PDwyKXwwO3JldHVybiBofDB9ZnVuY3Rpb24gaUgoYixjLGQsZSl7Yj1ifDA7Yz1jfDA7ZD1kfDA7
ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2lmKChjfDApPT0oZHwwKSl7Zj1jO3JldHVybiBmfDB9ZWxz
ZXtnPWM7aD1lfXdoaWxlKDEpe2FbaF09YVtnXXwwO2U9ZysxfDA7aWYoKGV8MCk9PShkfDApKXtm
PWQ7YnJlYWt9ZWxzZXtnPWU7aD1oKzF8MH19cmV0dXJuIGZ8MH1mdW5jdGlvbiBpSShiLGMsZCxl
LGYpe2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MDtpZigoY3ww
KT09KGR8MCkpe2c9YztyZXR1cm4gZ3wwfWVsc2V7aD1jO2k9Zn13aGlsZSgxKXtmPWFbaF18MDth
W2ldPWY8PDI0Pj4yND4tMT9mOmU7Zj1oKzF8MDtpZigoZnwwKT09KGR8MCkpe2c9ZDticmVha31l
bHNle2g9ZjtpPWkrMXwwfX1yZXR1cm4gZ3wwfWZ1bmN0aW9uIGlKKGEsYixkKXthPWF8MDtiPWJ8
MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2RnKGJ8
MCk7ZT1hKzh8MDtmPWErMTJ8MDthPWNbZj4+Ml18MDtnPWV8MDtoPWNbZz4+Ml18MDtpPWEtaD4+
Mjtkb3tpZihpPj4+MD5kPj4+MCl7aj1ofWVsc2V7az1kKzF8MDtpZihpPj4+MDxrPj4+MCl7ajUo
ZSxrLWl8MCk7aj1jW2c+PjJdfDA7YnJlYWt9aWYoaT4+PjA8PWs+Pj4wKXtqPWg7YnJlYWt9bD1o
KyhrPDwyKXwwO2lmKChsfDApPT0oYXwwKSl7aj1oO2JyZWFrfWNbZj4+Ml09YSsofigoYS00Kygt
bHwwKXwwKT4+PjIpPDwyKTtqPWh9fXdoaWxlKDApO2g9Y1tqKyhkPDwyKT4+Ml18MDtpZigoaHww
KT09MCl7bT1qO249bSsoZDw8Mil8MDtjW24+PjJdPWI7cmV0dXJufWR6KGh8MCl8MDttPWNbZz4+
Ml18MDtuPW0rKGQ8PDIpfDA7Y1tuPj4yXT1iO3JldHVybn1mdW5jdGlvbiBpSyhhKXthPWF8MDtp
TChhKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaUwoYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9
MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MDtjW2I+PjJdPTM4MjQ7ZD1iKzEyfDA7ZT1jW2Q+PjJd
fDA7Zj1iKzh8MDtnPWNbZj4+Ml18MDtpZigoZXwwKSE9KGd8MCkpe2g9MDtpPWc7Zz1lO3doaWxl
KDEpe2U9Y1tpKyhoPDwyKT4+Ml18MDtpZigoZXwwKT09MCl7aj1nO2s9aX1lbHNle2w9ZXwwO2R6
KGwpfDA7aj1jW2Q+PjJdfDA7az1jW2Y+PjJdfDB9bD1oKzF8MDtpZihsPj4+MDxqLWs+PjI+Pj4w
KXtoPWw7aT1rO2c9an1lbHNle2JyZWFrfX19ZFAoYisxNDR8MCk7aj1jW2Y+PjJdfDA7aWYoKGp8
MCk9PTApe209YnwwO2RlKG0pO3JldHVybn1mPWNbZD4+Ml18MDtpZigoanwwKSE9KGZ8MCkpe2Nb
ZD4+Ml09ZisofigoZi00KygtanwwKXwwKT4+PjIpPDwyKX1pZigoanwwKT09KGIrMjR8MCkpe2Fb
YisxMzZ8MF09MDttPWJ8MDtkZShtKTtyZXR1cm59ZWxzZXtrUyhqKTttPWJ8MDtkZShtKTtyZXR1
cm59fWZ1bmN0aW9uIGlNKCl7dmFyIGI9MCxkPTA7aWYoKGFbMTYyNDhdfDApIT0wKXtiPWNbMjk1
MF18MDtyZXR1cm4gYnwwfWlmKChiYygxNjI0OCl8MCk9PTApe2I9Y1syOTUwXXwwO3JldHVybiBi
fDB9ZG97aWYoKGFbMTYyNTZdfDApPT0wKXtpZigoYmMoMTYyNTYpfDApPT0wKXticmVha31pcygx
NDQ5NiwxKTtjWzI5NTRdPTE0NDk2O2NbMjk1Ml09MTE4MTZ9fXdoaWxlKDApO2Q9Y1tjWzI5NTJd
Pj4yXXwwO2NbMjk1Nl09ZDtkZyhkfDApO2NbMjk1MF09MTE4MjQ7Yj1jWzI5NTBdfDA7cmV0dXJu
IGJ8MH1mdW5jdGlvbiBpTihhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTA7ZD1jW2I+PjJdfDA7Y1th
Pj4yXT1kO2RnKGR8MCk7cmV0dXJufWZ1bmN0aW9uIGlPKGEpe2E9YXwwO2R6KGNbYT4+Ml18MCl8
MDtyZXR1cm59ZnVuY3Rpb24gaVAoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24gaVEoYSl7YT1hfDA7aWYoKGF8MCk9PTApe3JldHVybn1iWVtjWyhjW2E+PjJdfDApKzQ+PjJd
JjUxMV0oYSk7cmV0dXJufWZ1bmN0aW9uIGlSKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJu
fWZ1bmN0aW9uIGlTKGIpe2I9YnwwO3ZhciBkPTA7Y1tiPj4yXT0zOTM2O2Q9Y1tiKzg+PjJdfDA7
ZG97aWYoKGR8MCkhPTApe2lmKChhW2IrMTJ8MF0mMSk9PTApe2JyZWFrfWtUKGQpfX13aGlsZSgw
KTtkZShifDApO2tTKGIpO3JldHVybn1mdW5jdGlvbiBpVChiKXtiPWJ8MDt2YXIgZD0wO2NbYj4+
Ml09MzkzNjtkPWNbYis4Pj4yXXwwO2Rve2lmKChkfDApIT0wKXtpZigoYVtiKzEyfDBdJjEpPT0w
KXticmVha31rVChkKX19d2hpbGUoMCk7ZGUoYnwwKTtyZXR1cm59ZnVuY3Rpb24gaVUoYSl7YT1h
fDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaVYoYSl7YT1hfDA7aXEoYSk7a1MoYSk7
cmV0dXJufWZ1bmN0aW9uIGlXKGEpe2E9YXwwO3ZhciBiPTA7Yj1jWyhpTSgpfDApPj4yXXwwO2Nb
YT4+Ml09YjtkZyhifDApO3JldHVybn1mdW5jdGlvbiBpWChhLGIpe2E9YXwwO2I9YnwwO3ZhciBk
PTAsZT0wLGY9MCxnPTAsaD0wO2Q9aTtpPWkrMTZ8MDtlPWR8MDtmPWNbYT4+Ml18MDthPWJ8MDtp
ZigoY1thPj4yXXwwKSE9LTEpe2NbZT4+Ml09YjtjW2UrND4+Ml09MTI7Y1tlKzg+PjJdPTA7ZFco
YSxlLDk2KX1lPShjW2IrND4+Ml18MCktMXwwO2I9Y1tmKzg+PjJdfDA7aWYoKGNbZisxMj4+Ml18
MCktYj4+Mj4+PjA8PWU+Pj4wKXtnPWJPKDQpfDA7aD1nO2txKGgpO2JsKGd8MCw4MTc2LDEzNCk7
cmV0dXJuIDB9Zj1jW2IrKGU8PDIpPj4yXXwwO2lmKChmfDApPT0wKXtnPWJPKDQpfDA7aD1nO2tx
KGgpO2JsKGd8MCw4MTc2LDEzNCk7cmV0dXJuIDB9ZWxzZXtpPWQ7cmV0dXJuIGZ8MH1yZXR1cm4g
MH1mdW5jdGlvbiBpWShhLGQsZSl7YT1hfDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MDtpZihlPj4+MD49
MTI4KXtmPTA7cmV0dXJuIGZ8MH1mPShiWyhjWyhhNigpfDApPj4yXXwwKSsoZTw8MSk+PjFdJmQp
PDwxNj4+MTYhPTA7cmV0dXJuIGZ8MH1mdW5jdGlvbiBpWihhLGQsZSxmKXthPWF8MDtkPWR8MDtl
PWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wO2lmKChkfDApPT0oZXwwKSl7Zz1kO3JldHVy
biBnfDB9ZWxzZXtoPWQ7aT1mfXdoaWxlKDEpe2Y9Y1toPj4yXXwwO2lmKGY+Pj4wPDEyOCl7aj1i
WyhjWyhhNigpfDApPj4yXXwwKSsoZjw8MSk+PjFdfDB9ZWxzZXtqPTB9YltpPj4xXT1qO2Y9aCs0
fDA7aWYoKGZ8MCk9PShlfDApKXtnPWU7YnJlYWt9ZWxzZXtoPWY7aT1pKzJ8MH19cmV0dXJuIGd8
MH1mdW5jdGlvbiBpXyhhLGQsZSxmKXthPWF8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9
MCxpPTA7aWYoKGV8MCk9PShmfDApKXtnPWU7cmV0dXJuIGd8MH1lbHNle2g9ZX13aGlsZSgxKXtl
PWNbaD4+Ml18MDtpZihlPj4+MDwxMjgpe2lmKChiWyhjWyhhNigpfDApPj4yXXwwKSsoZTw8MSk+
PjFdJmQpPDwxNj4+MTYhPTApe2c9aDtpPTIwOTQ7YnJlYWt9fWU9aCs0fDA7aWYoKGV8MCk9PShm
fDApKXtnPWY7aT0yMDk2O2JyZWFrfWVsc2V7aD1lfX1pZigoaXwwKT09MjA5NCl7cmV0dXJuIGd8
MH1lbHNlIGlmKChpfDApPT0yMDk2KXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0aW9uIGkkKGEs
ZCxlLGYpe2E9YXwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wO2E9ZTt3aGlsZSgxKXtp
ZigoYXwwKT09KGZ8MCkpe2c9ZjtoPTIxMDQ7YnJlYWt9ZT1jW2E+PjJdfDA7aWYoZT4+PjA+PTEy
OCl7Zz1hO2g9MjEwNjticmVha31pZigoYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4xXSZk
KTw8MTY+PjE2PT0wKXtnPWE7aD0yMTA1O2JyZWFrfWVsc2V7YT1hKzR8MH19aWYoKGh8MCk9PTIx
MDQpe3JldHVybiBnfDB9ZWxzZSBpZigoaHwwKT09MjEwNSl7cmV0dXJuIGd8MH1lbHNlIGlmKCho
fDApPT0yMTA2KXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0aW9uIGkwKGEsYil7YT1hfDA7Yj1i
fDA7dmFyIGQ9MDtpZihiPj4+MD49MTI4KXtkPWI7cmV0dXJuIGR8MH1kPWNbKGNbKGJSKCl8MCk+
PjJdfDApKyhiPDwyKT4+Ml18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGkxKGEsYixkKXthPWF8MDti
PWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7aWYoKGJ8MCk9PShkfDApKXtlPWI7cmV0dXJuIGV8
MH1lbHNle2Y9Yn13aGlsZSgxKXtiPWNbZj4+Ml18MDtpZihiPj4+MDwxMjgpe2c9Y1soY1soYlIo
KXwwKT4+Ml18MCkrKGI8PDIpPj4yXXwwfWVsc2V7Zz1ifWNbZj4+Ml09ZztiPWYrNHwwO2lmKChi
fDApPT0oZHwwKSl7ZT1kO2JyZWFrfWVsc2V7Zj1ifX1yZXR1cm4gZXwwfWZ1bmN0aW9uIGkyKGEs
Yil7YT1hfDA7Yj1ifDA7dmFyIGQ9MDtpZihiPj4+MD49MTI4KXtkPWI7cmV0dXJuIGR8MH1kPWNb
KGNbKGJTKCl8MCk+PjJdfDApKyhiPDwyKT4+Ml18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGkzKGEs
YixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7aWYoKGJ8MCk9PShkfDApKXtl
PWI7cmV0dXJuIGV8MH1lbHNle2Y9Yn13aGlsZSgxKXtiPWNbZj4+Ml18MDtpZihiPj4+MDwxMjgp
e2c9Y1soY1soYlMoKXwwKT4+Ml18MCkrKGI8PDIpPj4yXXwwfWVsc2V7Zz1ifWNbZj4+Ml09Zzti
PWYrNHwwO2lmKChifDApPT0oZHwwKSl7ZT1kO2JyZWFrfWVsc2V7Zj1ifX1yZXR1cm4gZXwwfWZ1
bmN0aW9uIGk0KGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MDtpZihiPDwyND4+MjQ8PS0xKXtkPWI7
cmV0dXJuIGR8MH1kPWNbKGNbKGJSKCl8MCk+PjJdfDApKygoYiYyNTUpPDwyKT4+Ml0mMjU1O3Jl
dHVybiBkfDB9ZnVuY3Rpb24gaTUoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0w
LGg9MDtpZigoZHwwKT09KGV8MCkpe2Y9ZDtyZXR1cm4gZnwwfWVsc2V7Zz1kfXdoaWxlKDEpe2Q9
YVtnXXwwO2lmKGQ8PDI0Pj4yND4tMSl7aD1jWyhjWyhiUigpfDApPj4yXXwwKSsoZDw8MjQ+PjI0
PDwyKT4+Ml0mMjU1fWVsc2V7aD1kfWFbZ109aDtkPWcrMXwwO2lmKChkfDApPT0oZXwwKSl7Zj1l
O2JyZWFrfWVsc2V7Zz1kfX1yZXR1cm4gZnwwfWZ1bmN0aW9uIGk2KGEsYil7YT1hfDA7Yj1ifDA7
dmFyIGQ9MDtpZihiPDwyND4+MjQ8PS0xKXtkPWI7cmV0dXJuIGR8MH1kPWNbKGNbKGJTKCl8MCk+
PjJdfDApKyhiPDwyND4+MjQ8PDIpPj4yXSYyNTU7cmV0dXJuIGR8MH1mdW5jdGlvbiBpNyhiLGQs
ZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2lmKChkfDApPT0oZXwwKSl7Zj1k
O3JldHVybiBmfDB9ZWxzZXtnPWR9d2hpbGUoMSl7ZD1hW2ddfDA7aWYoZDw8MjQ+PjI0Pi0xKXto
PWNbKGNbKGJTKCl8MCk+PjJdfDApKyhkPDwyND4+MjQ8PDIpPj4yXSYyNTV9ZWxzZXtoPWR9YVtn
XT1oO2Q9ZysxfDA7aWYoKGR8MCk9PShlfDApKXtmPWU7YnJlYWt9ZWxzZXtnPWR9fXJldHVybiBm
fDB9ZnVuY3Rpb24gaTgoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gaTkoYSl7YT1hfDA7ZGUo
YXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gamEoYSxiLGQsZSxmLGcsaCxqKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MDtiPWk7aT1p
KzE2fDA7YT1ifDA7az1iKzh8MDtjW2E+PjJdPWQ7Y1trPj4yXT1nO2w9amwoZCxlLGEsZyxoLGss
MTExNDExMSwwKXwwO2NbZj4+Ml09ZCsoKGNbYT4+Ml18MCktZD4+MTw8MSk7Y1tqPj4yXT1nKygo
Y1trPj4yXXwwKS1nKTtpPWI7cmV0dXJuIGx8MH1mdW5jdGlvbiBqYihiLGQsZSxmLGcsaCxqLGsp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxB
PTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wO2w9aTtpPWkrOHwwO209
bHwwO249bTtvPWk7aT1pKzF8MDtpPWkrNz4+Mzw8MztwPWU7d2hpbGUoMSl7aWYoKHB8MCk9PShm
fDApKXtxPWY7YnJlYWt9aWYoKGNbcD4+Ml18MCk9PTApe3E9cDticmVha31lbHNle3A9cCs0fDB9
fWNbaz4+Ml09aDtjW2c+PjJdPWU7TDI1NTU6ZG97aWYoKGV8MCk9PShmfDApfChofDApPT0oanww
KSl7cj1lfWVsc2V7cD1kO3M9ajt0PWIrOHwwO3U9b3wwO3Y9aDt3PWU7eD1xO0wyNTU3OndoaWxl
KDEpe3k9Y1twKzQ+PjJdfDA7Y1ttPj4yXT1jW3A+PjJdO2NbbSs0Pj4yXT15O3k9YkIoY1t0Pj4y
XXwwKXwwO3o9a3ModixnLHgtdz4+MixzLXZ8MCxkKXwwO2lmKCh5fDApIT0wKXtiQih5fDApfDB9
c3dpdGNoKHp8MCl7Y2FzZS0xOntBPTIxODg7YnJlYWsgTDI1NTc7YnJlYWt9O2Nhc2UgMDp7Qj0x
O0E9MjIyNDticmVhayBMMjU1NzticmVha307ZGVmYXVsdDp7fX15PShjW2s+PjJdfDApK3p8MDtj
W2s+PjJdPXk7aWYoKHl8MCk9PShqfDApKXtBPTIyMjE7YnJlYWt9aWYoKHh8MCk9PShmfDApKXtD
PWY7RD15O0U9Y1tnPj4yXXwwfWVsc2V7eT1iQihjW3Q+PjJdfDApfDA7ej1rZyh1LDAsZCl8MDtp
ZigoeXwwKSE9MCl7YkIoeXwwKXwwfWlmKCh6fDApPT0tMSl7Qj0yO0E9MjIyNjticmVha315PWNb
az4+Ml18MDtpZih6Pj4+MD4ocy15fDApPj4+MCl7Qj0xO0E9MjIyNzticmVha31MMjU3NDpkb3tp
ZigoenwwKSE9MCl7Rj16O0c9dTtIPXk7d2hpbGUoMSl7ST1hW0ddfDA7Y1trPj4yXT1IKzE7YVtI
XT1JO0k9Ri0xfDA7aWYoKEl8MCk9PTApe2JyZWFrIEwyNTc0fUY9STtHPUcrMXwwO0g9Y1trPj4y
XXwwfX19d2hpbGUoMCk7eT0oY1tnPj4yXXwwKSs0fDA7Y1tnPj4yXT15O3o9eTt3aGlsZSgxKXtp
ZigoenwwKT09KGZ8MCkpe0o9ZjticmVha31pZigoY1t6Pj4yXXwwKT09MCl7Sj16O2JyZWFrfWVs
c2V7ej16KzR8MH19Qz1KO0Q9Y1trPj4yXXwwO0U9eX1pZigoRXwwKT09KGZ8MCl8KER8MCk9PShq
fDApKXtyPUU7YnJlYWsgTDI1NTV9ZWxzZXt2PUQ7dz1FO3g9Q319aWYoKEF8MCk9PTIxODgpe2Nb
az4+Ml09djtMMjU4Njpkb3tpZigod3wwKT09KGNbZz4+Ml18MCkpe0s9d31lbHNle3g9dzt1PXY7
d2hpbGUoMSl7cz1jW3g+PjJdfDA7cD1iQihjW3Q+PjJdfDApfDA7ej1rZyh1LHMsbil8MDtpZigo
cHwwKSE9MCl7YkIocHwwKXwwfWlmKCh6fDApPT0tMSl7Sz14O2JyZWFrIEwyNTg2fXA9KGNbaz4+
Ml18MCkrenwwO2Nbaz4+Ml09cDt6PXgrNHwwO2lmKCh6fDApPT0oY1tnPj4yXXwwKSl7Sz16O2Jy
ZWFrfWVsc2V7eD16O3U9cH19fX13aGlsZSgwKTtjW2c+PjJdPUs7Qj0yO2k9bDtyZXR1cm4gQnww
fWVsc2UgaWYoKEF8MCk9PTIyMjEpe3I9Y1tnPj4yXXwwO2JyZWFrfWVsc2UgaWYoKEF8MCk9PTIy
MjQpe2k9bDtyZXR1cm4gQnwwfWVsc2UgaWYoKEF8MCk9PTIyMjYpe2k9bDtyZXR1cm4gQnwwfWVs
c2UgaWYoKEF8MCk9PTIyMjcpe2k9bDtyZXR1cm4gQnwwfX19d2hpbGUoMCk7Qj0ocnwwKSE9KGZ8
MCl8MDtpPWw7cmV0dXJuIEJ8MH1mdW5jdGlvbiBqYyhiLGQsZSxmLGcsaCxqLGspe2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MDtsPWk7aT1pKzh8MDttPWx8MDtuPW07bz1lO3doaWxl
KDEpe2lmKChvfDApPT0oZnwwKSl7cD1mO2JyZWFrfWlmKChhW29dfDApPT0wKXtwPW87YnJlYWt9
ZWxzZXtvPW8rMXwwfX1jW2s+PjJdPWg7Y1tnPj4yXT1lO0wyNjA3OmRve2lmKChlfDApPT0oZnww
KXwoaHwwKT09KGp8MCkpe3E9ZX1lbHNle289ZDtyPWo7cz1iKzh8MDt0PWg7dT1lO3Y9cDtMMjYw
OTp3aGlsZSgxKXt3PWNbbys0Pj4yXXwwO2NbbT4+Ml09Y1tvPj4yXTtjW20rND4+Ml09dzt4PXY7
dz1iQihjW3M+PjJdfDApfDA7eT1rZCh0LGcseC11fDAsci10Pj4yLGQpfDA7aWYoKHd8MCkhPTAp
e2JCKHd8MCl8MH1zd2l0Y2goeXwwKXtjYXNlLTE6e3o9MjI0MzticmVhayBMMjYwOTticmVha307
Y2FzZSAwOntBPTI7ej0yMjc4O2JyZWFrIEwyNjA5O2JyZWFrfTtkZWZhdWx0Ont9fXc9KGNbaz4+
Ml18MCkrKHk8PDIpfDA7Y1trPj4yXT13O2lmKCh3fDApPT0oanwwKSl7ej0yMjc1O2JyZWFrfXk9
Y1tnPj4yXXwwO2lmKCh2fDApPT0oZnwwKSl7Qj1mO0M9dztEPXl9ZWxzZXtFPWJCKGNbcz4+Ml18
MCl8MDtGPWtjKHcseSwxLGQpfDA7aWYoKEV8MCkhPTApe2JCKEV8MCl8MH1pZigoRnwwKSE9MCl7
QT0yO3o9MjI4MjticmVha31jW2s+PjJdPShjW2s+PjJdfDApKzQ7Rj0oY1tnPj4yXXwwKSsxfDA7
Y1tnPj4yXT1GO0U9Rjt3aGlsZSgxKXtpZigoRXwwKT09KGZ8MCkpe0c9ZjticmVha31pZigoYVtF
XXwwKT09MCl7Rz1FO2JyZWFrfWVsc2V7RT1FKzF8MH19Qj1HO0M9Y1trPj4yXXwwO0Q9Rn1pZigo
RHwwKT09KGZ8MCl8KEN8MCk9PShqfDApKXtxPUQ7YnJlYWsgTDI2MDd9ZWxzZXt0PUM7dT1EO3Y9
Qn19aWYoKHp8MCk9PTIyNDMpe2Nbaz4+Ml09dDtMMjYzMTpkb3tpZigodXwwKT09KGNbZz4+Ml18
MCkpe0g9dX1lbHNle3Y9dDtyPXU7TDI2MzI6d2hpbGUoMSl7bz1iQihjW3M+PjJdfDApfDA7RT1r
Yyh2LHIseC1yfDAsbil8MDtpZigob3wwKSE9MCl7YkIob3wwKXwwfXN3aXRjaChFfDApe2Nhc2Ug
MDp7ST1yKzF8MDticmVha307Y2FzZS0xOnt6PTIyNTQ7YnJlYWsgTDI2MzI7YnJlYWt9O2Nhc2Ut
Mjp7ej0yMjU1O2JyZWFrIEwyNjMyO2JyZWFrfTtkZWZhdWx0OntJPXIrRXwwfX1FPShjW2s+PjJd
fDApKzR8MDtjW2s+PjJdPUU7aWYoKEl8MCk9PShjW2c+PjJdfDApKXtIPUk7YnJlYWsgTDI2MzF9
ZWxzZXt2PUU7cj1JfX1pZigoenwwKT09MjI1NCl7Y1tnPj4yXT1yO0E9MjtpPWw7cmV0dXJuIEF8
MH1lbHNlIGlmKCh6fDApPT0yMjU1KXtjW2c+PjJdPXI7QT0xO2k9bDtyZXR1cm4gQXwwfX19d2hp
bGUoMCk7Y1tnPj4yXT1IO0E9KEh8MCkhPShmfDApfDA7aT1sO3JldHVybiBBfDB9ZWxzZSBpZigo
enwwKT09MjI3NSl7cT1jW2c+PjJdfDA7YnJlYWt9ZWxzZSBpZigoenwwKT09MjI3OCl7aT1sO3Jl
dHVybiBBfDB9ZWxzZSBpZigoenwwKT09MjI4Mil7aT1sO3JldHVybiBBfDB9fX13aGlsZSgwKTtB
PShxfDApIT0oZnwwKXwwO2k9bDtyZXR1cm4gQXwwfWZ1bmN0aW9uIGpkKGIsZCxlLGYsZyl7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2g9
aTtpPWkrOHwwO2NbZz4+Ml09ZTtlPWh8MDtqPWJCKGNbYis4Pj4yXXwwKXwwO2I9a2coZSwwLGQp
fDA7aWYoKGp8MCkhPTApe2JCKGp8MCl8MH1zd2l0Y2goYnwwKXtjYXNlLTE6Y2FzZSAwOntrPTI7
aT1oO3JldHVybiBrfDB9O2RlZmF1bHQ6e319aj1iLTF8MDtiPWNbZz4+Ml18MDtpZihqPj4+MD4o
Zi1ifDApPj4+MCl7az0xO2k9aDtyZXR1cm4ga3wwfWlmKChqfDApPT0wKXtrPTA7aT1oO3JldHVy
biBrfDB9ZWxzZXtsPWo7bT1lO249Yn13aGlsZSgxKXtiPWFbbV18MDtjW2c+PjJdPW4rMTthW25d
PWI7Yj1sLTF8MDtpZigoYnwwKT09MCl7az0wO2JyZWFrfWw9YjttPW0rMXwwO249Y1tnPj4yXXww
fWk9aDtyZXR1cm4ga3wwfWZ1bmN0aW9uIGplKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAs
Zz0wO2I9YSs4fDA7YT1iQihjW2I+PjJdfDApfDA7ZD1rZigwLDAsMSl8MDtpZigoYXwwKSE9MCl7
YkIoYXwwKXwwfWlmKChkfDApIT0wKXtlPS0xO3JldHVybiBlfDB9ZD1jW2I+PjJdfDA7aWYoKGR8
MCk9PTApe2U9MTtyZXR1cm4gZXwwfWU9YkIoZHwwKXwwO2Q9YmQoKXwwO2lmKChlfDApPT0wKXtm
PShkfDApPT0xO2c9ZiYxO3JldHVybiBnfDB9YkIoZXwwKXwwO2Y9KGR8MCk9PTE7Zz1mJjE7cmV0
dXJuIGd8MH1mdW5jdGlvbiBqZihhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MDtpZigoZnwwKT09MHwo
ZHwwKT09KGV8MCkpe2c9MDtyZXR1cm4gZ3wwfWg9ZTtpPWErOHwwO2E9ZDtkPTA7aj0wO0wyNjkz
OndoaWxlKDEpe2s9YkIoY1tpPj4yXXwwKXwwO2w9a2IoYSxoLWF8MCxiKXwwO2lmKChrfDApIT0w
KXtiQihrfDApfDB9c3dpdGNoKGx8MCl7Y2FzZSAwOnttPTE7bj1hKzF8MDticmVha307Y2FzZS0x
OmNhc2UtMjp7Zz1kO289MjM0MzticmVhayBMMjY5MzticmVha307ZGVmYXVsdDp7bT1sO249YSts
fDB9fWw9bStkfDA7az1qKzF8MDtpZihrPj4+MD49Zj4+PjB8KG58MCk9PShlfDApKXtnPWw7bz0y
MzQ1O2JyZWFrfWVsc2V7YT1uO2Q9bDtqPWt9fWlmKChvfDApPT0yMzQ1KXtyZXR1cm4gZ3wwfWVs
c2UgaWYoKG98MCk9PTIzNDMpe3JldHVybiBnfDB9cmV0dXJuIDB9ZnVuY3Rpb24gamcoYSl7YT1h
fDA7dmFyIGI9MCxkPTAsZT0wO2I9Y1thKzg+PjJdfDA7ZG97aWYoKGJ8MCk9PTApe2Q9MX1lbHNl
e2E9YkIoYnwwKXwwO2U9YmQoKXwwO2lmKChhfDApPT0wKXtkPWU7YnJlYWt9YkIoYXwwKXwwO2Q9
ZX19d2hpbGUoMCk7cmV0dXJuIGR8MH1mdW5jdGlvbiBqaChhLGIsZCxlLGYpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2NbZj4+Ml09ZDtyZXR1cm4gM31mdW5jdGlvbiBqaShhKXthPWF8
MDtyZXR1cm4gMH1mdW5jdGlvbiBqaihhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBqayhhKXth
PWF8MDtyZXR1cm4gNH1mdW5jdGlvbiBqbChkLGYsZyxoLGksaixrLGwpe2Q9ZHwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0w
LHI9MDtjW2c+PjJdPWQ7Y1tqPj4yXT1oO2Rve2lmKChsJjJ8MCkhPTApe2lmKChpLWh8MCk8Myl7
bT0xO3JldHVybiBtfDB9ZWxzZXtjW2o+PjJdPWgrMTthW2hdPS0xNztkPWNbaj4+Ml18MDtjW2o+
PjJdPWQrMTthW2RdPS02OTtkPWNbaj4+Ml18MDtjW2o+PjJdPWQrMTthW2RdPS02NTticmVha319
fXdoaWxlKDApO2g9ZjtsPWNbZz4+Ml18MDtpZihsPj4+MD49Zj4+PjApe209MDtyZXR1cm4gbXww
fWQ9aTtpPWw7TDI3Mjc6d2hpbGUoMSl7bD1iW2k+PjFdfDA7bj1sJjY1NTM1O2lmKG4+Pj4wPms+
Pj4wKXttPTI7bz0yMzk5O2JyZWFrfWRve2lmKChsJjY1NTM1KTwxMjgpe3A9Y1tqPj4yXXwwO2lm
KChkLXB8MCk8MSl7bT0xO289MjM4ODticmVhayBMMjcyN31jW2o+PjJdPXArMTthW3BdPWwmMjU1
fWVsc2V7aWYoKGwmNjU1MzUpPDIwNDgpe3A9Y1tqPj4yXXwwO2lmKChkLXB8MCk8Mil7bT0xO289
MjM4OTticmVhayBMMjcyN31jW2o+PjJdPXArMTthW3BdPShuPj4+NnwxOTIpJjI1NTtwPWNbaj4+
Ml18MDtjW2o+PjJdPXArMTthW3BdPShuJjYzfDEyOCkmMjU1O2JyZWFrfWlmKChsJjY1NTM1KTw1
NTI5Nil7cD1jW2o+PjJdfDA7aWYoKGQtcHwwKTwzKXttPTE7bz0yMzk3O2JyZWFrIEwyNzI3fWNb
aj4+Ml09cCsxO2FbcF09KG4+Pj4xMnwyMjQpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJdPXArMTth
W3BdPShuPj4+NiY2M3wxMjgpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJdPXArMTthW3BdPShuJjYz
fDEyOCkmMjU1O2JyZWFrfWlmKChsJjY1NTM1KT49NTYzMjApe2lmKChsJjY1NTM1KTw1NzM0NCl7
bT0yO289MjM5MzticmVhayBMMjcyN31wPWNbaj4+Ml18MDtpZigoZC1wfDApPDMpe209MTtvPTIz
OTQ7YnJlYWsgTDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT0obj4+PjEyfDIyNCkmMjU1O3A9Y1tqPj4y
XXwwO2Nbaj4+Ml09cCsxO2FbcF09KG4+Pj42JjYzfDEyOCkmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+
Ml09cCsxO2FbcF09KG4mNjN8MTI4KSYyNTU7YnJlYWt9aWYoKGgtaXwwKTw0KXttPTE7bz0yMzkx
O2JyZWFrIEwyNzI3fXA9aSsyfDA7cT1lW3A+PjFdfDA7aWYoKHEmNjQ1MTJ8MCkhPTU2MzIwKXtt
PTI7bz0yMzkyO2JyZWFrIEwyNzI3fWlmKChkLShjW2o+PjJdfDApfDApPDQpe209MTtvPTIzOTg7
YnJlYWsgTDI3Mjd9cj1uJjk2MDtpZigoKHI8PDEwKSs2NTUzNnxuPDwxMCY2NDUxMnxxJjEwMjMp
Pj4+MD5rPj4+MCl7bT0yO289MjQwMDticmVhayBMMjcyN31jW2c+PjJdPXA7cD0ocj4+PjYpKzF8
MDtyPWNbaj4+Ml18MDtjW2o+PjJdPXIrMTthW3JdPShwPj4+MnwyNDApJjI1NTtyPWNbaj4+Ml18
MDtjW2o+PjJdPXIrMTthW3JdPShuPj4+MiYxNXxwPDw0JjQ4fDEyOCkmMjU1O3A9Y1tqPj4yXXww
O2Nbaj4+Ml09cCsxO2FbcF09KG48PDQmNDh8cT4+PjYmMTV8MTI4KSYyNTU7cD1jW2o+PjJdfDA7
Y1tqPj4yXT1wKzE7YVtwXT0ocSY2M3wxMjgpJjI1NX19d2hpbGUoMCk7bj0oY1tnPj4yXXwwKSsy
fDA7Y1tnPj4yXT1uO2lmKG4+Pj4wPGY+Pj4wKXtpPW59ZWxzZXttPTA7bz0yMzk1O2JyZWFrfX1p
Zigob3wwKT09MjM4OSl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzkzKXtyZXR1cm4gbXww
fWVsc2UgaWYoKG98MCk9PTIzOTQpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjQwMCl7cmV0
dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzg4KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIz
OTEpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5Mil7cmV0dXJuIG18MH1lbHNlIGlmKChv
fDApPT0yMzk1KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTcpe3JldHVybiBtfDB9ZWxz
ZSBpZigob3wwKT09MjM5OCl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzk5KXtyZXR1cm4g
bXwwfXJldHVybiAwfWZ1bmN0aW9uIGptKGUsZixnLGgsaSxqLGssbCl7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MDtjW2c+PjJdPWU7Y1tqPj4yXT1oO2g9Y1tn
Pj4yXXwwO2Rve2lmKChsJjR8MCk9PTApe209aH1lbHNle2lmKChmLWh8MCk8PTIpe209aDticmVh
a31pZigoYVtoXXwwKSE9LTE3KXttPWg7YnJlYWt9aWYoKGFbaCsxfDBdfDApIT0tNjkpe209aDti
cmVha31pZigoYVtoKzJ8MF18MCkhPS02NSl7bT1oO2JyZWFrfWU9aCszfDA7Y1tnPj4yXT1lO209
ZX19d2hpbGUoMCk7TDI3NzI6ZG97aWYobT4+PjA8Zj4+PjApe2g9ZjtsPWk7ZT1jW2o+PjJdfDA7
bj1tO0wyNzc0OndoaWxlKDEpe2lmKGU+Pj4wPj1pPj4+MCl7bz1uO2JyZWFrIEwyNzcyfXA9YVtu
XXwwO3E9cCYyNTU7aWYocT4+PjA+az4+PjApe3I9MjtzPTI0NDQ7YnJlYWt9ZG97aWYocDw8MjQ+
PjI0Pi0xKXtiW2U+PjFdPXAmMjU1O2NbZz4+Ml09KGNbZz4+Ml18MCkrMX1lbHNle2lmKChwJjI1
NSk8MTk0KXtyPTI7cz0yNDUzO2JyZWFrIEwyNzc0fWlmKChwJjI1NSk8MjI0KXtpZigoaC1ufDAp
PDIpe3I9MTtzPTI0NTQ7YnJlYWsgTDI3NzR9dD1kW24rMXwwXXwwO2lmKCh0JjE5MnwwKSE9MTI4
KXtyPTI7cz0yNDU1O2JyZWFrIEwyNzc0fXU9dCY2M3xxPDw2JjE5ODQ7aWYodT4+PjA+az4+PjAp
e3I9MjtzPTI0NTY7YnJlYWsgTDI3NzR9YltlPj4xXT11JjY1NTM1O2NbZz4+Ml09KGNbZz4+Ml18
MCkrMjticmVha31pZigocCYyNTUpPDI0MCl7aWYoKGgtbnwwKTwzKXtyPTE7cz0yNDU3O2JyZWFr
IEwyNzc0fXU9YVtuKzF8MF18MDtzd2l0Y2gocXwwKXtjYXNlIDIyNDp7aWYoKHUmLTMyKTw8MjQ+
PjI0IT0tOTYpe3I9MjtzPTI0NTA7YnJlYWsgTDI3NzR9YnJlYWt9O2Nhc2UgMjM3OntpZigodSYt
MzIpPDwyND4+MjQhPS0xMjgpe3I9MjtzPTI0NTI7YnJlYWsgTDI3NzR9YnJlYWt9O2RlZmF1bHQ6
e2lmKCh1Ji02NCk8PDI0Pj4yNCE9LTEyOCl7cj0yO3M9MjQ2MjticmVhayBMMjc3NH19fXQ9ZFtu
KzJ8MF18MDtpZigodCYxOTJ8MCkhPTEyOCl7cj0yO3M9MjQ0MzticmVhayBMMjc3NH12PSh1JjI1
NSk8PDYmNDAzMnxxPDwxMnx0JjYzO2lmKCh2JjY1NTM1KT4+PjA+az4+PjApe3I9MjtzPTI0NDI7
YnJlYWsgTDI3NzR9YltlPj4xXT12JjY1NTM1O2NbZz4+Ml09KGNbZz4+Ml18MCkrMzticmVha31p
ZigocCYyNTUpPj0yNDUpe3I9MjtzPTI0NDc7YnJlYWsgTDI3NzR9aWYoKGgtbnwwKTw0KXtyPTE7
cz0yNDU4O2JyZWFrIEwyNzc0fXY9YVtuKzF8MF18MDtzd2l0Y2gocXwwKXtjYXNlIDI0MDp7aWYo
KHYrMTEyJjI1NSk+PTQ4KXtyPTI7cz0yNDQ4O2JyZWFrIEwyNzc0fWJyZWFrfTtjYXNlIDI0NDp7
aWYoKHYmLTE2KTw8MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDU5O2JyZWFrIEwyNzc0fWJyZWFrfTtk
ZWZhdWx0OntpZigodiYtNjQpPDwyND4+MjQhPS0xMjgpe3I9MjtzPTI0NjA7YnJlYWsgTDI3NzR9
fX10PWRbbisyfDBdfDA7aWYoKHQmMTkyfDApIT0xMjgpe3I9MjtzPTI0NjE7YnJlYWsgTDI3NzR9
dT1kW24rM3wwXXwwO2lmKCh1JjE5MnwwKSE9MTI4KXtyPTI7cz0yNDQ5O2JyZWFrIEwyNzc0fWlm
KChsLWV8MCk8NCl7cj0xO3M9MjQ0NTticmVhayBMMjc3NH13PXEmNzt4PXYmMjU1O3Y9dDw8Njt5
PXUmNjM7aWYoKHg8PDEyJjI1ODA0OHx3PDwxOHx2JjQwMzJ8eSk+Pj4wPms+Pj4wKXtyPTI7cz0y
NDQ2O2JyZWFrIEwyNzc0fWJbZT4+MV09KHg8PDImNjB8dD4+PjQmM3woKHg+Pj40JjN8dzw8Mik8
PDYpKzE2MzIwfDU1Mjk2KSY2NTUzNTt3PShjW2o+PjJdfDApKzJ8MDtjW2o+PjJdPXc7Ylt3Pj4x
XT0oeXx2Jjk2MHw1NjMyMCkmNjU1MzU7Y1tnPj4yXT0oY1tnPj4yXXwwKSs0fX13aGlsZSgwKTtx
PShjW2o+PjJdfDApKzJ8MDtjW2o+PjJdPXE7cD1jW2c+PjJdfDA7aWYocD4+PjA8Zj4+PjApe2U9
cTtuPXB9ZWxzZXtvPXA7YnJlYWsgTDI3NzJ9fWlmKChzfDApPT0yNDQyKXtyZXR1cm4gcnwwfWVs
c2UgaWYoKHN8MCk9PTI0NDMpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ0NCl7cmV0dXJu
IHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ4KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDkp
e3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1MCl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDAp
PT0yNDQ1KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDYpe3JldHVybiByfDB9ZWxzZSBp
Zigoc3wwKT09MjQ0Nyl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDU2KXtyZXR1cm4gcnww
fWVsc2UgaWYoKHN8MCk9PTI0NTcpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1OCl7cmV0
dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDU5KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0
NjApe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ2MSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChz
fDApPT0yNDYyKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTIpe3JldHVybiByfDB9ZWxz
ZSBpZigoc3wwKT09MjQ1Myl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDU0KXtyZXR1cm4g
cnwwfWVsc2UgaWYoKHN8MCk9PTI0NTUpe3JldHVybiByfDB9fWVsc2V7bz1tfX13aGlsZSgwKTty
PW8+Pj4wPGY+Pj4wfDA7cmV0dXJuIHJ8MH1mdW5jdGlvbiBqbihiLGMsZSxmLGcpe2I9YnwwO2M9
Y3wwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MDtkb3tpZigoZyY0fDApPT0wKXtoPWJ9ZWxzZXtp
ZigoYy1ifDApPD0yKXtoPWI7YnJlYWt9aWYoKGFbYl18MCkhPS0xNyl7aD1iO2JyZWFrfWlmKChh
W2IrMXwwXXwwKSE9LTY5KXtoPWI7YnJlYWt9aD0oYVtiKzJ8MF18MCk9PS02NT9iKzN8MDpifX13
aGlsZSgwKTtMMjg0MTpkb3tpZihoPj4+MDxjPj4+MCYoZXwwKSE9MCl7Zz1jO2k9MDtqPWg7TDI4
NDM6d2hpbGUoMSl7az1hW2pdfDA7bD1rJjI1NTtpZihsPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwy
ODQxfWRve2lmKGs8PDI0Pj4yND4tMSl7bj1qKzF8MDtvPWl9ZWxzZXtpZigoayYyNTUpPDE5NCl7
bT1qO2JyZWFrIEwyODQxfWlmKChrJjI1NSk8MjI0KXtpZigoZy1qfDApPDIpe209ajticmVhayBM
Mjg0MX1wPWRbaisxfDBdfDA7aWYoKHAmMTkyfDApIT0xMjgpe209ajticmVhayBMMjg0MX1pZigo
cCY2M3xsPDw2JjE5ODQpPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwyODQxfW49aisyfDA7bz1pO2Jy
ZWFrfWlmKChrJjI1NSk8MjQwKXtxPWo7aWYoKGctcXwwKTwzKXttPWo7YnJlYWsgTDI4NDF9cD1h
W2orMXwwXXwwO3N3aXRjaChsfDApe2Nhc2UgMjI0OntpZigocCYtMzIpPDwyND4+MjQhPS05Nil7
cj0yNDgzO2JyZWFrIEwyODQzfWJyZWFrfTtjYXNlIDIzNzp7aWYoKHAmLTMyKTw8MjQ+PjI0IT0t
MTI4KXtyPTI0ODU7YnJlYWsgTDI4NDN9YnJlYWt9O2RlZmF1bHQ6e2lmKChwJi02NCk8PDI0Pj4y
NCE9LTEyOCl7cj0yNDg3O2JyZWFrIEwyODQzfX19cz1kW2orMnwwXXwwO2lmKChzJjE5MnwwKSE9
MTI4KXttPWo7YnJlYWsgTDI4NDF9aWYoKChwJjI1NSk8PDYmNDAzMnxsPDwxMiY2MTQ0MHxzJjYz
KT4+PjA+Zj4+PjApe209ajticmVhayBMMjg0MX1uPWorM3wwO289aTticmVha31pZigoayYyNTUp
Pj0yNDUpe209ajticmVhayBMMjg0MX10PWo7aWYoKGctdHwwKTw0KXttPWo7YnJlYWsgTDI4NDF9
aWYoKGUtaXwwKT4+PjA8Mil7bT1qO2JyZWFrIEwyODQxfXM9YVtqKzF8MF18MDtzd2l0Y2gobHww
KXtjYXNlIDI0MDp7aWYoKHMrMTEyJjI1NSk+PTQ4KXtyPTI0OTY7YnJlYWsgTDI4NDN9YnJlYWt9
O2Nhc2UgMjQ0OntpZigocyYtMTYpPDwyND4+MjQhPS0xMjgpe3I9MjQ5ODticmVhayBMMjg0M31i
cmVha307ZGVmYXVsdDp7aWYoKHMmLTY0KTw8MjQ+PjI0IT0tMTI4KXtyPTI1MDA7YnJlYWsgTDI4
NDN9fX1wPWRbaisyfDBdfDA7aWYoKHAmMTkyfDApIT0xMjgpe209ajticmVhayBMMjg0MX11PWRb
aiszfDBdfDA7aWYoKHUmMTkyfDApIT0xMjgpe209ajticmVhayBMMjg0MX1pZigoKHMmMjU1KTw8
MTImMjU4MDQ4fGw8PDE4JjE4MzUwMDh8cDw8NiY0MDMyfHUmNjMpPj4+MD5mPj4+MCl7bT1qO2Jy
ZWFrIEwyODQxfW49ais0fDA7bz1pKzF8MH19d2hpbGUoMCk7bD1vKzF8MDtpZihuPj4+MDxjPj4+
MCZsPj4+MDxlPj4+MCl7aT1sO2o9bn1lbHNle209bjticmVhayBMMjg0MX19aWYoKHJ8MCk9PTI1
MDApe3Y9dC1ifDA7cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDApPT0yNDk2KXt2PXQtYnwwO3JldHVy
biB2fDB9ZWxzZSBpZigocnwwKT09MjQ5OCl7dj10LWJ8MDtyZXR1cm4gdnwwfWVsc2UgaWYoKHJ8
MCk9PTI0ODMpe3Y9cS1ifDA7cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDApPT0yNDg1KXt2PXEtYnww
O3JldHVybiB2fDB9ZWxzZSBpZigocnwwKT09MjQ4Nyl7dj1xLWJ8MDtyZXR1cm4gdnwwfX1lbHNl
e209aH19d2hpbGUoMCk7dj1tLWJ8MDtyZXR1cm4gdnwwfWZ1bmN0aW9uIGpvKGEsYixkLGUsZixn
LGgsail7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFy
IGs9MCxsPTA7Yj1pO2k9aSsxNnwwO2E9YnwwO2s9Yis4fDA7Y1thPj4yXT1kO2Nbaz4+Ml09Zzts
PWptKGQsZSxhLGcsaCxrLDExMTQxMTEsMCl8MDtjW2Y+PjJdPWQrKChjW2E+PjJdfDApLWQpO2Nb
aj4+Ml09ZysoKGNbaz4+Ml18MCktZz4+MTw8MSk7aT1iO3JldHVybiBsfDB9ZnVuY3Rpb24ganAo
YSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtyZXR1cm4gam4oYyxkLGUs
MTExNDExMSwwKXwwfWZ1bmN0aW9uIGpxKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1
bmN0aW9uIGpyKGEsYixkLGUsZixnLGgsail7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTA7Yj1pO2k9aSsxNnwwO2E9YnwwO2s9Yis4fDA7
Y1thPj4yXT1kO2Nbaz4+Ml09ZztsPWp3KGQsZSxhLGcsaCxrLDExMTQxMTEsMCl8MDtjW2Y+PjJd
PWQrKChjW2E+PjJdfDApLWQ+PjI8PDIpO2Nbaj4+Ml09ZysoKGNbaz4+Ml18MCktZyk7aT1iO3Jl
dHVybiBsfDB9ZnVuY3Rpb24ganMoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtjW2Y+PjJdPWQ7cmV0dXJuIDN9ZnVuY3Rpb24ganQoYSl7YT1hfDA7cmV0dXJuIDB9ZnVu
Y3Rpb24ganUoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24ganYoYSl7YT1hfDA7cmV0dXJuIDR9
ZnVuY3Rpb24gancoYixkLGUsZixnLGgsaSxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtpPWl8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wO2NbZT4+Ml09YjtjW2g+PjJd
PWY7ZG97aWYoKGomMnwwKSE9MCl7aWYoKGctZnwwKTwzKXtrPTE7cmV0dXJuIGt8MH1lbHNle2Nb
aD4+Ml09ZisxO2FbZl09LTE3O2I9Y1toPj4yXXwwO2NbaD4+Ml09YisxO2FbYl09LTY5O2I9Y1to
Pj4yXXwwO2NbaD4+Ml09YisxO2FbYl09LTY1O2JyZWFrfX19d2hpbGUoMCk7Zj1jW2U+PjJdfDA7
aWYoZj4+PjA+PWQ+Pj4wKXtrPTA7cmV0dXJuIGt8MH1qPWc7Zz1mO0wyOTEyOndoaWxlKDEpe2Y9
Y1tnPj4yXXwwO2lmKChmJi0yMDQ4fDApPT01NTI5NnxmPj4+MD5pPj4+MCl7az0yO2w9MjU0ODti
cmVha31kb3tpZihmPj4+MDwxMjgpe2I9Y1toPj4yXXwwO2lmKChqLWJ8MCk8MSl7az0xO2w9MjU0
NDticmVhayBMMjkxMn1jW2g+PjJdPWIrMTthW2JdPWYmMjU1fWVsc2V7aWYoZj4+PjA8MjA0OCl7
Yj1jW2g+PjJdfDA7aWYoKGotYnwwKTwyKXtrPTE7bD0yNTQ3O2JyZWFrIEwyOTEyfWNbaD4+Ml09
YisxO2FbYl09KGY+Pj42fDE5MikmMjU1O2I9Y1toPj4yXXwwO2NbaD4+Ml09YisxO2FbYl09KGYm
NjN8MTI4KSYyNTU7YnJlYWt9Yj1jW2g+PjJdfDA7bT1qLWJ8MDtpZihmPj4+MDw2NTUzNil7aWYo
KG18MCk8Myl7az0xO2w9MjU0OTticmVhayBMMjkxMn1jW2g+PjJdPWIrMTthW2JdPShmPj4+MTJ8
MjI0KSYyNTU7bj1jW2g+PjJdfDA7Y1toPj4yXT1uKzE7YVtuXT0oZj4+PjYmNjN8MTI4KSYyNTU7
bj1jW2g+PjJdfDA7Y1toPj4yXT1uKzE7YVtuXT0oZiY2M3wxMjgpJjI1NTticmVha31lbHNle2lm
KChtfDApPDQpe2s9MTtsPTI1NDI7YnJlYWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjE4
fDI0MCkmMjU1O2I9Y1toPj4yXXwwO2NbaD4+Ml09YisxO2FbYl09KGY+Pj4xMiY2M3wxMjgpJjI1
NTtiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPShmPj4+NiY2M3wxMjgpJjI1NTtiPWNbaD4+
Ml18MDtjW2g+PjJdPWIrMTthW2JdPShmJjYzfDEyOCkmMjU1O2JyZWFrfX19d2hpbGUoMCk7Zj0o
Y1tlPj4yXXwwKSs0fDA7Y1tlPj4yXT1mO2lmKGY+Pj4wPGQ+Pj4wKXtnPWZ9ZWxzZXtrPTA7bD0y
NTQzO2JyZWFrfX1pZigobHwwKT09MjU0Myl7cmV0dXJuIGt8MH1lbHNlIGlmKChsfDApPT0yNTQy
KXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8MCk9PTI1NDQpe3JldHVybiBrfDB9ZWxzZSBpZigobHww
KT09MjU0OCl7cmV0dXJuIGt8MH1lbHNlIGlmKChsfDApPT0yNTQ5KXtyZXR1cm4ga3wwfWVsc2Ug
aWYoKGx8MCk9PTI1NDcpe3JldHVybiBrfDB9cmV0dXJuIDB9ZnVuY3Rpb24gangoYixlLGYsZyxo
LGksaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDt2
YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2NbZj4+Ml09YjtjW2k+
PjJdPWc7Zz1jW2Y+PjJdfDA7ZG97aWYoKGsmNHwwKT09MCl7bD1nfWVsc2V7aWYoKGUtZ3wwKTw9
Mil7bD1nO2JyZWFrfWlmKChhW2ddfDApIT0tMTcpe2w9ZzticmVha31pZigoYVtnKzF8MF18MCkh
PS02OSl7bD1nO2JyZWFrfWlmKChhW2crMnwwXXwwKSE9LTY1KXtsPWc7YnJlYWt9Yj1nKzN8MDtj
W2Y+PjJdPWI7bD1ifX13aGlsZSgwKTtMMjk0NDpkb3tpZihsPj4+MDxlPj4+MCl7Zz1lO2s9Y1tp
Pj4yXXwwO2I9bDtMMjk0Njp3aGlsZSgxKXtpZihrPj4+MD49aD4+PjApe209YjticmVhayBMMjk0
NH1uPWFbYl18MDtvPW4mMjU1O2Rve2lmKG48PDI0Pj4yND4tMSl7aWYobz4+PjA+aj4+PjApe3A9
MjtxPTI2MDk7YnJlYWsgTDI5NDZ9Y1trPj4yXT1vO2NbZj4+Ml09KGNbZj4+Ml18MCkrMX1lbHNl
e2lmKChuJjI1NSk8MTk0KXtwPTI7cT0yNjAyO2JyZWFrIEwyOTQ2fWlmKChuJjI1NSk8MjI0KXtp
ZigoZy1ifDApPDIpe3A9MTtxPTI2MDU7YnJlYWsgTDI5NDZ9cj1kW2IrMXwwXXwwO2lmKChyJjE5
MnwwKSE9MTI4KXtwPTI7cT0yNTk4O2JyZWFrIEwyOTQ2fXM9ciY2M3xvPDw2JjE5ODQ7aWYocz4+
PjA+aj4+PjApe3A9MjtxPTI2MDQ7YnJlYWsgTDI5NDZ9Y1trPj4yXT1zO2NbZj4+Ml09KGNbZj4+
Ml18MCkrMjticmVha31pZigobiYyNTUpPDI0MCl7aWYoKGctYnwwKTwzKXtwPTE7cT0yNjA2O2Jy
ZWFrIEwyOTQ2fXM9YVtiKzF8MF18MDtzd2l0Y2gob3wwKXtjYXNlIDIyNDp7aWYoKHMmLTMyKTw8
MjQ+PjI0IT0tOTYpe3A9MjtxPTI1OTE7YnJlYWsgTDI5NDZ9YnJlYWt9O2Nhc2UgMjM3OntpZigo
cyYtMzIpPDwyND4+MjQhPS0xMjgpe3A9MjtxPTI1OTM7YnJlYWsgTDI5NDZ9YnJlYWt9O2RlZmF1
bHQ6e2lmKChzJi02NCk8PDI0Pj4yNCE9LTEyOCl7cD0yO3E9MjYwMzticmVhayBMMjk0Nn19fXI9
ZFtiKzJ8MF18MDtpZigociYxOTJ8MCkhPTEyOCl7cD0yO3E9MjU5NDticmVhayBMMjk0Nn10PShz
JjI1NSk8PDYmNDAzMnxvPDwxMiY2MTQ0MHxyJjYzO2lmKHQ+Pj4wPmo+Pj4wKXtwPTI7cT0yNTky
O2JyZWFrIEwyOTQ2fWNbaz4+Ml09dDtjW2Y+PjJdPShjW2Y+PjJdfDApKzM7YnJlYWt9aWYoKG4m
MjU1KT49MjQ1KXtwPTI7cT0yNjA3O2JyZWFrIEwyOTQ2fWlmKChnLWJ8MCk8NCl7cD0xO3E9MjYw
ODticmVhayBMMjk0Nn10PWFbYisxfDBdfDA7c3dpdGNoKG98MCl7Y2FzZSAyNDA6e2lmKCh0KzEx
MiYyNTUpPj00OCl7cD0yO3E9MjU5MDticmVhayBMMjk0Nn1icmVha307Y2FzZSAyNDQ6e2lmKCh0
Ji0xNik8PDI0Pj4yNCE9LTEyOCl7cD0yO3E9MjU5NjticmVhayBMMjk0Nn1icmVha307ZGVmYXVs
dDp7aWYoKHQmLTY0KTw8MjQ+PjI0IT0tMTI4KXtwPTI7cT0yNTk3O2JyZWFrIEwyOTQ2fX19cj1k
W2IrMnwwXXwwO2lmKChyJjE5MnwwKSE9MTI4KXtwPTI7cT0yNTk5O2JyZWFrIEwyOTQ2fXM9ZFti
KzN8MF18MDtpZigocyYxOTJ8MCkhPTEyOCl7cD0yO3E9MjYwMTticmVhayBMMjk0Nn11PSh0JjI1
NSk8PDEyJjI1ODA0OHxvPDwxOCYxODM1MDA4fHI8PDYmNDAzMnxzJjYzO2lmKHU+Pj4wPmo+Pj4w
KXtwPTI7cT0yNjAwO2JyZWFrIEwyOTQ2fWNbaz4+Ml09dTtjW2Y+PjJdPShjW2Y+PjJdfDApKzR9
fXdoaWxlKDApO289KGNbaT4+Ml18MCkrNHwwO2NbaT4+Ml09bztuPWNbZj4+Ml18MDtpZihuPj4+
MDxlPj4+MCl7az1vO2I9bn1lbHNle209bjticmVhayBMMjk0NH19aWYoKHF8MCk9PTI1OTcpe3Jl
dHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5OCl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0y
NTk5KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDApe3JldHVybiBwfDB9ZWxzZSBpZigo
cXwwKT09MjU5Myl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTk0KXtyZXR1cm4gcHwwfWVs
c2UgaWYoKHF8MCk9PTI1OTYpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwNSl7cmV0dXJu
IHB8MH1lbHNlIGlmKChxfDApPT0yNjA2KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDcp
e3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwOCl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDAp
PT0yNjA5KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTApe3JldHVybiBwfDB9ZWxzZSBp
ZigocXwwKT09MjU5MSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTkyKXtyZXR1cm4gcHww
fWVsc2UgaWYoKHF8MCk9PTI2MDEpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwMil7cmV0
dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjAzKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2
MDQpe3JldHVybiBwfDB9fWVsc2V7bT1sfX13aGlsZSgwKTtwPW0+Pj4wPGU+Pj4wfDA7cmV0dXJu
IHB8MH1mdW5jdGlvbiBqeShiLGMsZSxmLGcpe2I9YnwwO2M9Y3wwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O3ZhciBoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wO2Rve2lmKChnJjR8MCk9PTApe2g9Yn1lbHNle2lmKChjLWJ8MCk8PTIpe2g9YjticmVha31p
ZigoYVtiXXwwKSE9LTE3KXtoPWI7YnJlYWt9aWYoKGFbYisxfDBdfDApIT0tNjkpe2g9YjticmVh
a31oPShhW2IrMnwwXXwwKT09LTY1P2IrM3wwOmJ9fXdoaWxlKDApO0wzMDExOmRve2lmKGg+Pj4w
PGM+Pj4wJihlfDApIT0wKXtnPWM7aT0xO2o9aDtMMzAxMzp3aGlsZSgxKXtrPWFbal18MDtsPWsm
MjU1O2Rve2lmKGs8PDI0Pj4yND4tMSl7aWYobD4+PjA+Zj4+PjApe209ajticmVhayBMMzAxMX1u
PWorMXwwfWVsc2V7aWYoKGsmMjU1KTwxOTQpe209ajticmVhayBMMzAxMX1pZigoayYyNTUpPDIy
NCl7aWYoKGctanwwKTwyKXttPWo7YnJlYWsgTDMwMTF9bz1kW2orMXwwXXwwO2lmKChvJjE5Mnww
KSE9MTI4KXttPWo7YnJlYWsgTDMwMTF9aWYoKG8mNjN8bDw8NiYxOTg0KT4+PjA+Zj4+PjApe209
ajticmVhayBMMzAxMX1uPWorMnwwO2JyZWFrfWlmKChrJjI1NSk8MjQwKXtwPWo7aWYoKGctcHww
KTwzKXttPWo7YnJlYWsgTDMwMTF9bz1hW2orMXwwXXwwO3N3aXRjaChsfDApe2Nhc2UgMjI0Ontp
ZigobyYtMzIpPDwyND4+MjQhPS05Nil7cT0yNjMwO2JyZWFrIEwzMDEzfWJyZWFrfTtjYXNlIDIz
Nzp7aWYoKG8mLTMyKTw8MjQ+PjI0IT0tMTI4KXtxPTI2MzI7YnJlYWsgTDMwMTN9YnJlYWt9O2Rl
ZmF1bHQ6e2lmKChvJi02NCk8PDI0Pj4yNCE9LTEyOCl7cT0yNjM0O2JyZWFrIEwzMDEzfX19cj1k
W2orMnwwXXwwO2lmKChyJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDMwMTF9aWYoKChvJjI1NSk8
PDYmNDAzMnxsPDwxMiY2MTQ0MHxyJjYzKT4+PjA+Zj4+PjApe209ajticmVhayBMMzAxMX1uPWor
M3wwO2JyZWFrfWlmKChrJjI1NSk+PTI0NSl7bT1qO2JyZWFrIEwzMDExfXM9ajtpZigoZy1zfDAp
PDQpe209ajticmVhayBMMzAxMX1yPWFbaisxfDBdfDA7c3dpdGNoKGx8MCl7Y2FzZSAyNDA6e2lm
KChyKzExMiYyNTUpPj00OCl7cT0yNjQyO2JyZWFrIEwzMDEzfWJyZWFrfTtjYXNlIDI0NDp7aWYo
KHImLTE2KTw8MjQ+PjI0IT0tMTI4KXtxPTI2NDQ7YnJlYWsgTDMwMTN9YnJlYWt9O2RlZmF1bHQ6
e2lmKChyJi02NCk8PDI0Pj4yNCE9LTEyOCl7cT0yNjQ2O2JyZWFrIEwzMDEzfX19bz1kW2orMnww
XXwwO2lmKChvJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDMwMTF9dD1kW2orM3wwXXwwO2lmKCh0
JjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDMwMTF9aWYoKChyJjI1NSk8PDEyJjI1ODA0OHxsPDwx
OCYxODM1MDA4fG88PDYmNDAzMnx0JjYzKT4+PjA+Zj4+PjApe209ajticmVhayBMMzAxMX1uPWor
NHwwfX13aGlsZSgwKTtpZighKG4+Pj4wPGM+Pj4wJmk+Pj4wPGU+Pj4wKSl7bT1uO2JyZWFrIEwz
MDExfWk9aSsxfDA7aj1ufWlmKChxfDApPT0yNjQ0KXt1PXMtYnwwO3JldHVybiB1fDB9ZWxzZSBp
ZigocXwwKT09MjY0Mil7dT1zLWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYoKHF8MCk9PTI2MzApe3U9
cC1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjMyKXt1PXAtYnwwO3JldHVybiB1fDB9
ZWxzZSBpZigocXwwKT09MjYzNCl7dT1wLWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYoKHF8MCk9PTI2
NDYpe3U9cy1ifDA7cmV0dXJuIHV8MH19ZWxzZXttPWh9fXdoaWxlKDApO3U9bS1ifDA7cmV0dXJu
IHV8MH1mdW5jdGlvbiBqeihiKXtiPWJ8MDtyZXR1cm4gYVtiKzh8MF18MH1mdW5jdGlvbiBqQShh
KXthPWF8MDtyZXR1cm4gY1thKzg+PjJdfDB9ZnVuY3Rpb24gakIoYil7Yj1ifDA7cmV0dXJuIGFb
Yis5fDBdfDB9ZnVuY3Rpb24gakMoYSl7YT1hfDA7cmV0dXJuIGNbYSsxMj4+Ml18MH1mdW5jdGlv
biBqRChhLGIsZCxlLGYsZyxoLGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2NbYT4+
Ml09ZDtjW2s+PjJdPWc7bD1qeChkLGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1kKygo
Y1thPj4yXXwwKS1kKTtjW2o+PjJdPWcrKChjW2s+PjJdfDApLWc+PjI8PDIpO2k9YjtyZXR1cm4g
bHwwfWZ1bmN0aW9uIGpFKGEsYixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7
cmV0dXJuIGp5KGMsZCxlLDExMTQxMTEsMCl8MH1mdW5jdGlvbiBqRihhKXthPWF8MDtkZShhfDAp
O2tTKGEpO3JldHVybn1mdW5jdGlvbiBqRyhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1m
dW5jdGlvbiBqSChhKXthPWF8MDtjW2E+PjJdPTMwMzI7ZFAoYSsxMnwwKTtkZShhfDApO2tTKGEp
O3JldHVybn1mdW5jdGlvbiBqSShhKXthPWF8MDtjW2E+PjJdPTMwMzI7ZFAoYSsxMnwwKTtkZShh
fDApO3JldHVybn1mdW5jdGlvbiBqSihhKXthPWF8MDtjW2E+PjJdPTI5ODQ7ZFAoYSsxNnwwKTtk
ZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBqSyhhKXthPWF8MDtjW2E+PjJdPTI5ODQ7ZFAo
YSsxNnwwKTtkZShhfDApO3JldHVybn1mdW5jdGlvbiBqTChhLGIpe2E9YXwwO2I9YnwwO2RZKGEs
YisxMnwwKTtyZXR1cm59ZnVuY3Rpb24gak0oYSxiKXthPWF8MDtiPWJ8MDtkWShhLGIrMTZ8MCk7
cmV0dXJufWZ1bmN0aW9uIGpOKGEsYil7YT1hfDA7Yj1ifDA7ZFooYSwxMjg4LDQpO3JldHVybn1m
dW5jdGlvbiBqTyhhLGIpe2E9YXwwO2I9YnwwO2V4KGEsMTI2NCxrbSgxMjY0KXwwKTtyZXR1cm59
ZnVuY3Rpb24galAoYSxiKXthPWF8MDtiPWJ8MDtkWihhLDEyNTYsNSk7cmV0dXJufWZ1bmN0aW9u
IGpRKGEsYil7YT1hfDA7Yj1ifDA7ZXgoYSwxMjMyLGttKDEyMzIpfDApO3JldHVybn1mdW5jdGlv
biBqUihiKXtiPWJ8MDt2YXIgZD0wO2lmKChhWzE2MzUyXXwwKSE9MCl7ZD1jWzM3MDJdfDA7cmV0
dXJuIGR8MH1pZigoYmMoMTYzNTIpfDApPT0wKXtkPWNbMzcwMl18MDtyZXR1cm4gZHwwfWRve2lm
KChhWzE2MjMyXXwwKT09MCl7aWYoKGJjKDE2MjMyKXwwKT09MCl7YnJlYWt9ayQoMTEzNDQsMCwx
NjgpO2EkKDI2NiwwLHV8MCl8MH19d2hpbGUoMCk7ZFEoMTEzNDQsMTUzNil8MDtkUSgxMTM1Niwx
NTI4KXwwO2RRKDExMzY4LDE1MjApfDA7ZFEoMTEzODAsMTUwNCl8MDtkUSgxMTM5MiwxNDg4KXww
O2RRKDExNDA0LDE0ODApfDA7ZFEoMTE0MTYsMTQ2NCl8MDtkUSgxMTQyOCwxNDU2KXwwO2RRKDEx
NDQwLDE0NDgpfDA7ZFEoMTE0NTIsMTQ0MCl8MDtkUSgxMTQ2NCwxNDMyKXwwO2RRKDExNDc2LDE0
MDApfDA7ZFEoMTE0ODgsMTM5Mil8MDtkUSgxMTUwMCwxMzg0KXwwO2NbMzcwMl09MTEzNDQ7ZD1j
WzM3MDJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBqUyhiKXtiPWJ8MDt2YXIgZD0wO2lmKChhWzE2
Mjk2XXwwKSE9MCl7ZD1jWzM2ODBdfDA7cmV0dXJuIGR8MH1pZigoYmMoMTYyOTYpfDApPT0wKXtk
PWNbMzY4MF18MDtyZXR1cm4gZHwwfWRve2lmKChhWzE2MjA4XXwwKT09MCl7aWYoKGJjKDE2MjA4
KXwwKT09MCl7YnJlYWt9ayQoMTA2MDAsMCwxNjgpO2EkKDE0OCwwLHV8MCl8MH19d2hpbGUoMCk7
ZWYoMTA2MDAsMTkxMil8MDtlZigxMDYxMiwxODgwKXwwO2VmKDEwNjI0LDE4NDgpfDA7ZWYoMTA2
MzYsMTgwOCl8MDtlZigxMDY0OCwxNzY4KXwwO2VmKDEwNjYwLDE3MzYpfDA7ZWYoMTA2NzIsMTY5
Nil8MDtlZigxMDY4NCwxNjgwKXwwO2VmKDEwNjk2LDE2MjQpfDA7ZWYoMTA3MDgsMTYwOCl8MDtl
ZigxMDcyMCwxNTkyKXwwO2VmKDEwNzMyLDE1NzYpfDA7ZWYoMTA3NDQsMTU2MCl8MDtlZigxMDc1
NiwxNTQ0KXwwO2NbMzY4MF09MTA2MDA7ZD1jWzM2ODBdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBq
VChiKXtiPWJ8MDt2YXIgZD0wO2lmKChhWzE2MzQ0XXwwKSE9MCl7ZD1jWzM3MDBdfDA7cmV0dXJu
IGR8MH1pZigoYmMoMTYzNDQpfDApPT0wKXtkPWNbMzcwMF18MDtyZXR1cm4gZHwwfWRve2lmKChh
WzE2MjI0XXwwKT09MCl7aWYoKGJjKDE2MjI0KXwwKT09MCl7YnJlYWt9ayQoMTEwNTYsMCwyODgp
O2EkKDE3MCwwLHV8MCl8MH19d2hpbGUoMCk7ZFEoMTEwNTYsMjg4KXwwO2RRKDExMDY4LDI3Mil8
MDtkUSgxMTA4MCwyNjQpfDA7ZFEoMTEwOTIsMjU2KXwwO2RRKDExMTA0LDI0OCl8MDtkUSgxMTEx
NiwyNDApfDA7ZFEoMTExMjgsMjMyKXwwO2RRKDExMTQwLDIyNCl8MDtkUSgxMTE1MiwxNjgpfDA7
ZFEoMTExNjQsMTYwKXwwO2RRKDExMTc2LDE0NCl8MDtkUSgxMTE4OCwxMjgpfDA7ZFEoMTEyMDAs
MTIwKXwwO2RRKDExMjEyLDExMil8MDtkUSgxMTIyNCwxMDQpfDA7ZFEoMTEyMzYsOTYpfDA7ZFEo
MTEyNDgsMjQ4KXwwO2RRKDExMjYwLDg4KXwwO2RRKDExMjcyLDgwKXwwO2RRKDExMjg0LDE5NzYp
fDA7ZFEoMTEyOTYsMTk2OCl8MDtkUSgxMTMwOCwxOTYwKXwwO2RRKDExMzIwLDE5NTIpfDA7ZFEo
MTEzMzIsMTk0NCl8MDtjWzM3MDBdPTExMDU2O2Q9Y1szNzAwXXwwO3JldHVybiBkfDB9ZnVuY3Rp
b24galUoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjI4OF18MCkhPTApe2Q9Y1szNjc4XXwwO3Jl
dHVybiBkfDB9aWYoKGJjKDE2Mjg4KXwwKT09MCl7ZD1jWzM2NzhdfDA7cmV0dXJuIGR8MH1kb3tp
ZigoYVsxNjIwMF18MCk9PTApe2lmKChiYygxNjIwMCl8MCk9PTApe2JyZWFrfWskKDEwMzEyLDAs
Mjg4KTthJCgxMjIsMCx1fDApfDB9fXdoaWxlKDApO2VmKDEwMzEyLDgyNCl8MDtlZigxMDMyNCw3
ODQpfDA7ZWYoMTAzMzYsNzYwKXwwO2VmKDEwMzQ4LDczNil8MDtlZigxMDM2MCw0MjQpfDA7ZWYo
MTAzNzIsNzEyKXwwO2VmKDEwMzg0LDY4OCl8MDtlZigxMDM5Niw2NTYpfDA7ZWYoMTA0MDgsNjE2
KXwwO2VmKDEwNDIwLDU4NCl8MDtlZigxMDQzMiw1NDQpfDA7ZWYoMTA0NDQsNTA0KXwwO2VmKDEw
NDU2LDQ4OCl8MDtlZigxMDQ2OCw0NzIpfDA7ZWYoMTA0ODAsNDU2KXwwO2VmKDEwNDkyLDQ0MCl8
MDtlZigxMDUwNCw0MjQpfDA7ZWYoMTA1MTYsNDA4KXwwO2VmKDEwNTI4LDM5Mil8MDtlZigxMDU0
MCwzNzYpfDA7ZWYoMTA1NTIsMzQ0KXwwO2VmKDEwNTY0LDMyOCl8MDtlZigxMDU3NiwzMTIpfDA7
ZWYoMTA1ODgsMjk2KXwwO2NbMzY3OF09MTAzMTI7ZD1jWzM2NzhdfDA7cmV0dXJuIGR8MH1mdW5j
dGlvbiBqVihiKXtiPWJ8MDt2YXIgZD0wO2lmKChhWzE2MzYwXXwwKSE9MCl7ZD1jWzM3MDRdfDA7
cmV0dXJuIGR8MH1pZigoYmMoMTYzNjApfDApPT0wKXtkPWNbMzcwNF18MDtyZXR1cm4gZHwwfWRv
e2lmKChhWzE2MjQwXXwwKT09MCl7aWYoKGJjKDE2MjQwKXwwKT09MCl7YnJlYWt9ayQoMTE1MTIs
MCwyODgpO2EkKDEyMCwwLHV8MCl8MH19d2hpbGUoMCk7ZFEoMTE1MTIsODY0KXwwO2RRKDExNTI0
LDg1Nil8MDtjWzM3MDRdPTExNTEyO2Q9Y1szNzA0XXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galco
Yil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjMwNF18MCkhPTApe2Q9Y1szNjgyXXwwO3JldHVybiBk
fDB9aWYoKGJjKDE2MzA0KXwwKT09MCl7ZD1jWzM2ODJdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsx
NjIxNl18MCk9PTApe2lmKChiYygxNjIxNil8MCk9PTApe2JyZWFrfWskKDEwNzY4LDAsMjg4KTth
JCgyNDAsMCx1fDApfDB9fXdoaWxlKDApO2VmKDEwNzY4LDg4OCl8MDtlZigxMDc4MCw4NzIpfDA7
Y1szNjgyXT0xMDc2ODtkPWNbMzY4Ml18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpYKGIpe2I9Ynww
O2lmKChhWzE2MzY4XXwwKSE9MCl7cmV0dXJuIDE0ODI0fWlmKChiYygxNjM2OCl8MCk9PTApe3Jl
dHVybiAxNDgyNH1kWigxNDgyNCwxMjE2LDgpO2EkKDI1OCwxNDgyNCx1fDApfDA7cmV0dXJuIDE0
ODI0fWZ1bmN0aW9uIGpZKGIpe2I9YnwwO2lmKChhWzE2MzEyXXwwKSE9MCl7cmV0dXJuIDE0NzM2
fWlmKChiYygxNjMxMil8MCk9PTApe3JldHVybiAxNDczNn1leCgxNDczNiwxMTc2LGttKDExNzYp
fDApO2EkKDE5MiwxNDczNix1fDApfDA7cmV0dXJuIDE0NzM2fWZ1bmN0aW9uIGpaKGIpe2I9Ynww
O2lmKChhWzE2MzkyXXwwKSE9MCl7cmV0dXJuIDE0ODcyfWlmKChiYygxNjM5Mil8MCk9PTApe3Jl
dHVybiAxNDg3Mn1kWigxNDg3MiwxMTQ0LDgpO2EkKDI1OCwxNDg3Mix1fDApfDA7cmV0dXJuIDE0
ODcyfWZ1bmN0aW9uIGpfKGIpe2I9YnwwO2lmKChhWzE2MzM2XXwwKSE9MCl7cmV0dXJuIDE0Nzg0
fWlmKChiYygxNjMzNil8MCk9PTApe3JldHVybiAxNDc4NH1leCgxNDc4NCwxMTA0LGttKDExMDQp
fDApO2EkKDE5MiwxNDc4NCx1fDApfDA7cmV0dXJuIDE0Nzg0fWZ1bmN0aW9uIGokKGIpe2I9Ynww
O2lmKChhWzE2Mzg0XXwwKSE9MCl7cmV0dXJuIDE0ODU2fWlmKChiYygxNjM4NCl8MCk9PTApe3Jl
dHVybiAxNDg1Nn1kWigxNDg1NiwxMDgwLDIwKTthJCgyNTgsMTQ4NTYsdXwwKXwwO3JldHVybiAx
NDg1Nn1mdW5jdGlvbiBqMChiKXtiPWJ8MDtpZigoYVsxNjMyOF18MCkhPTApe3JldHVybiAxNDc2
OH1pZigoYmMoMTYzMjgpfDApPT0wKXtyZXR1cm4gMTQ3Njh9ZXgoMTQ3NjgsOTkyLGttKDk5Mil8
MCk7YSQoMTkyLDE0NzY4LHV8MCl8MDtyZXR1cm4gMTQ3Njh9ZnVuY3Rpb24gajEoYil7Yj1ifDA7
aWYoKGFbMTYzNzZdfDApIT0wKXtyZXR1cm4gMTQ4NDB9aWYoKGJjKDE2Mzc2KXwwKT09MCl7cmV0
dXJuIDE0ODQwfWRaKDE0ODQwLDk3NiwxMSk7YSQoMjU4LDE0ODQwLHV8MCl8MDtyZXR1cm4gMTQ4
NDB9ZnVuY3Rpb24gajIoYil7Yj1ifDA7aWYoKGFbMTYzMjBdfDApIT0wKXtyZXR1cm4gMTQ3NTJ9
aWYoKGJjKDE2MzIwKXwwKT09MCl7cmV0dXJuIDE0NzUyfWV4KDE0NzUyLDkyOCxrbSg5MjgpfDAp
O2EkKDE5MiwxNDc1Mix1fDApfDA7cmV0dXJuIDE0NzUyfWZ1bmN0aW9uIGozKGEpe2E9YXwwO3Zh
ciBiPTAsZD0wLGU9MCxmPTA7Yj1hKzR8MDtkPShjW2E+PjJdfDApKyhjW2IrND4+Ml18MCl8MDth
PWQ7ZT1jW2I+PjJdfDA7aWYoKGUmMXwwKT09MCl7Zj1lO2JZW2YmNTExXShhKTtyZXR1cm59ZWxz
ZXtmPWNbKGNbZD4+Ml18MCkrKGUtMSk+PjJdfDA7YllbZiY1MTFdKGEpO3JldHVybn19ZnVuY3Rp
b24gajQoYSl7YT1hfDA7ZWUoMTEwNDQpO2VlKDExMDMyKTtlZSgxMTAyMCk7ZWUoMTEwMDgpO2Vl
KDEwOTk2KTtlZSgxMDk4NCk7ZWUoMTA5NzIpO2VlKDEwOTYwKTtlZSgxMDk0OCk7ZWUoMTA5MzYp
O2VlKDEwOTI0KTtlZSgxMDkxMik7ZWUoMTA5MDApO2VlKDEwODg4KTtlZSgxMDg3Nik7ZWUoMTA4
NjQpO2VlKDEwODUyKTtlZSgxMDg0MCk7ZWUoMTA4MjgpO2VlKDEwODE2KTtlZSgxMDgwNCk7ZWUo
MTA3OTIpO2VlKDEwNzgwKTtlZSgxMDc2OCk7cmV0dXJufWZ1bmN0aW9uIGo1KGIsZCl7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTA7ZT1iKzh8MDtmPWIrNHwwO2c9Y1tmPj4yXXwwO2g9Y1tlPj4yXXwwO2k9ZztpZiho
LWk+PjI+Pj4wPj1kPj4+MCl7aj1kO2s9Zztkb3tpZigoa3wwKT09MCl7bD0wfWVsc2V7Y1trPj4y
XT0wO2w9Y1tmPj4yXXwwfWs9bCs0fDA7Y1tmPj4yXT1rO2o9ai0xfDA7fXdoaWxlKChqfDApIT0w
KTtyZXR1cm59aj1iKzE2fDA7az1ifDA7bD1jW2s+PjJdfDA7Zz1pLWw+PjI7aT1nK2R8MDtpZihp
Pj4+MD4xMDczNzQxODIzKXtpcigwKX1tPWgtbHwwO2Rve2lmKG0+PjI+Pj4wPjUzNjg3MDkxMCl7
bj0xMDczNzQxODIzO289MjkxOX1lbHNle2w9bT4+MTtoPWw+Pj4wPGk+Pj4wP2k6bDtpZigoaHww
KT09MCl7cD0wO3E9MDticmVha31sPWIrMTI4fDA7aWYoISgoYVtsXSYxKT09MCZoPj4+MDwyOSkp
e249aDtvPTI5MTk7YnJlYWt9YVtsXT0xO3A9ajtxPWh9fXdoaWxlKDApO2lmKChvfDApPT0yOTE5
KXtwPWtPKG48PDIpfDA7cT1ufW49ZDtkPXArKGc8PDIpfDA7ZG97aWYoKGR8MCk9PTApe3I9MH1l
bHNle2NbZD4+Ml09MDtyPWR9ZD1yKzR8MDtuPW4tMXwwO313aGlsZSgobnwwKSE9MCk7bj1wKyhx
PDwyKXwwO3E9Y1trPj4yXXwwO3I9KGNbZj4+Ml18MCktcXwwO289cCsoZy0ocj4+Mik8PDIpfDA7
Zz1vO3A9cTtrWShnfDAscHwwLHIpfDA7Y1trPj4yXT1vO2NbZj4+Ml09ZDtjW2U+PjJdPW47aWYo
KHF8MCk9PTApe3JldHVybn1pZigocXwwKT09KGp8MCkpe2FbYisxMjh8MF09MDtyZXR1cm59ZWxz
ZXtrUyhwKTtyZXR1cm59fWZ1bmN0aW9uIGo2KGEpe2E9YXwwO2RQKDExNzg4KTtkUCgxMTc3Nik7
ZFAoMTE3NjQpO2RQKDExNzUyKTtkUCgxMTc0MCk7ZFAoMTE3MjgpO2RQKDExNzE2KTtkUCgxMTcw
NCk7ZFAoMTE2OTIpO2RQKDExNjgwKTtkUCgxMTY2OCk7ZFAoMTE2NTYpO2RQKDExNjQ0KTtkUCgx
MTYzMik7ZFAoMTE2MjApO2RQKDExNjA4KTtkUCgxMTU5Nik7ZFAoMTE1ODQpO2RQKDExNTcyKTtk
UCgxMTU2MCk7ZFAoMTE1NDgpO2RQKDExNTM2KTtkUCgxMTUyNCk7ZFAoMTE1MTIpO3JldHVybn1m
dW5jdGlvbiBqNyhhKXthPWF8MDtlZSgxMDU4OCk7ZWUoMTA1NzYpO2VlKDEwNTY0KTtlZSgxMDU1
Mik7ZWUoMTA1NDApO2VlKDEwNTI4KTtlZSgxMDUxNik7ZWUoMTA1MDQpO2VlKDEwNDkyKTtlZSgx
MDQ4MCk7ZWUoMTA0NjgpO2VlKDEwNDU2KTtlZSgxMDQ0NCk7ZWUoMTA0MzIpO2VlKDEwNDIwKTtl
ZSgxMDQwOCk7ZWUoMTAzOTYpO2VlKDEwMzg0KTtlZSgxMDM3Mik7ZWUoMTAzNjApO2VlKDEwMzQ4
KTtlZSgxMDMzNik7ZWUoMTAzMjQpO2VlKDEwMzEyKTtyZXR1cm59ZnVuY3Rpb24gajgoYSl7YT1h
fDA7ZFAoMTEzMzIpO2RQKDExMzIwKTtkUCgxMTMwOCk7ZFAoMTEyOTYpO2RQKDExMjg0KTtkUCgx
MTI3Mik7ZFAoMTEyNjApO2RQKDExMjQ4KTtkUCgxMTIzNik7ZFAoMTEyMjQpO2RQKDExMjEyKTtk
UCgxMTIwMCk7ZFAoMTExODgpO2RQKDExMTc2KTtkUCgxMTE2NCk7ZFAoMTExNTIpO2RQKDExMTQw
KTtkUCgxMTEyOCk7ZFAoMTExMTYpO2RQKDExMTA0KTtkUCgxMTA5Mik7ZFAoMTEwODApO2RQKDEx
MDY4KTtkUCgxMTA1Nik7cmV0dXJufWZ1bmN0aW9uIGo5KGEpe2E9YXwwO2VlKDEwNzU2KTtlZSgx
MDc0NCk7ZWUoMTA3MzIpO2VlKDEwNzIwKTtlZSgxMDcwOCk7ZWUoMTA2OTYpO2VlKDEwNjg0KTtl
ZSgxMDY3Mik7ZWUoMTA2NjApO2VlKDEwNjQ4KTtlZSgxMDYzNik7ZWUoMTA2MjQpO2VlKDEwNjEy
KTtlZSgxMDYwMCk7cmV0dXJufWZ1bmN0aW9uIGthKGEpe2E9YXwwO2RQKDExNTAwKTtkUCgxMTQ4
OCk7ZFAoMTE0NzYpO2RQKDExNDY0KTtkUCgxMTQ1Mik7ZFAoMTE0NDApO2RQKDExNDI4KTtkUCgx
MTQxNik7ZFAoMTE0MDQpO2RQKDExMzkyKTtkUCgxMTM4MCk7ZFAoMTEzNjgpO2RQKDExMzU2KTtk
UCgxMTM0NCk7cmV0dXJufWZ1bmN0aW9uIGtiKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDtyZXR1
cm4ga2MoMCxhLGIsKGN8MCkhPTA/Yzo5ODMyKXwwfWZ1bmN0aW9uIGtjKGIsZCxlLGYpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHQ9MCx1PTAsdj0wLHc9MDtnPWk7aT1pKzh8MDtoPWd8MDtjW2g+PjJdPWI7aj0o
KGZ8MCk9PTA/OTgyNDpmKXwwO2Y9Y1tqPj4yXXwwO0w3OmRve2lmKChkfDApPT0wKXtpZigoZnww
KT09MCl7az0wfWVsc2V7YnJlYWt9aT1nO3JldHVybiBrfDB9ZWxzZXtpZigoYnwwKT09MCl7bD1o
O2NbaD4+Ml09bDttPWx9ZWxzZXttPWJ9aWYoKGV8MCk9PTApe2s9LTI7aT1nO3JldHVybiBrfDB9
ZG97aWYoKGZ8MCk9PTApe2w9YVtkXXwwO249bCYyNTU7aWYobDw8MjQ+PjI0Pi0xKXtjW20+PjJd
PW47az1sPDwyND4+MjQhPTB8MDtpPWc7cmV0dXJuIGt8MH1lbHNle2w9bi0xOTR8MDtpZihsPj4+
MD41MCl7YnJlYWsgTDd9bz1kKzF8MDtwPWNbcysobDw8Mik+PjJdfDA7cT1lLTF8MDticmVha319
ZWxzZXtvPWQ7cD1mO3E9ZX19d2hpbGUoMCk7TDI1OmRve2lmKChxfDApPT0wKXtyPXB9ZWxzZXts
PWFbb118MDtuPShsJjI1NSk+Pj4zO2lmKChuLTE2fG4rKHA+PjI2KSk+Pj4wPjcpe2JyZWFrIEw3
fWVsc2V7dD1vO3U9cDt2PXE7dz1sfXdoaWxlKDEpe3Q9dCsxfDA7dT0odyYyNTUpLTEyOHx1PDw2
O3Y9di0xfDA7aWYoKHV8MCk+PTApe2JyZWFrfWlmKCh2fDApPT0wKXtyPXU7YnJlYWsgTDI1fXc9
YVt0XXwwO2lmKCgodyYyNTUpLTEyOHwwKT4+PjA+NjMpe2JyZWFrIEw3fX1jW2o+PjJdPTA7Y1tt
Pj4yXT11O2s9ZS12fDA7aT1nO3JldHVybiBrfDB9fXdoaWxlKDApO2Nbaj4+Ml09cjtrPS0yO2k9
ZztyZXR1cm4ga3wwfX13aGlsZSgwKTtjW2o+PjJdPTA7Y1soYncoKXwwKT4+Ml09MTM4O2s9LTE7
aT1nO3JldHVybiBrfDB9ZnVuY3Rpb24ga2QoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtl
PWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0w
LEc9MCxIPTAsST0wLEo9MDtnPWk7aT1pKzEwMzJ8MDtoPWd8MDtqPWcrMTAyNHwwO2s9Y1tiPj4y
XXwwO2Nbaj4+Ml09aztsPShhfDApIT0wO209bD9lOjI1NjtlPWw/YTpofDA7TDM4OmRve2lmKChr
fDApPT0wfChtfDApPT0wKXtuPTA7bz1kO3A9bTtxPWU7cj1rfWVsc2V7YT1ofDA7cz1tO3Q9ZDt1
PTA7dj1lO3c9azt3aGlsZSgxKXt4PXQ+Pj4yO3k9eD4+PjA+PXM+Pj4wO2lmKCEoeXx0Pj4+MD4x
MzEpKXtuPXU7bz10O3A9cztxPXY7cj13O2JyZWFrIEwzOH16PXk/czp4O0E9dC16fDA7eD1rZSh2
LGoseixmKXwwO2lmKCh4fDApPT0tMSl7YnJlYWt9aWYoKHZ8MCk9PShhfDApKXtCPWE7Qz1zfWVs
c2V7Qj12Kyh4PDwyKXwwO0M9cy14fDB9ej14K3V8MDt4PWNbaj4+Ml18MDtpZigoeHwwKT09MHwo
Q3wwKT09MCl7bj16O289QTtwPUM7cT1CO3I9eDticmVhayBMMzh9ZWxzZXtzPUM7dD1BO3U9ejt2
PUI7dz14fX1uPS0xO289QTtwPTA7cT12O3I9Y1tqPj4yXXwwfX13aGlsZSgwKTtMNDk6ZG97aWYo
KHJ8MCk9PTApe0Q9bn1lbHNle2lmKChwfDApPT0wfChvfDApPT0wKXtEPW47YnJlYWt9ZWxzZXtF
PXA7Rj1vO0c9bjtIPXE7ST1yfXdoaWxlKDEpe0o9a2MoSCxJLEYsZil8MDtpZigoSisyfDApPj4+
MDwzKXticmVha31BPShjW2o+PjJdfDApK0p8MDtjW2o+PjJdPUE7Qj1FLTF8MDtDPUcrMXwwO2lm
KChCfDApPT0wfChGfDApPT0oSnwwKSl7RD1DO2JyZWFrIEw0OX1lbHNle0U9QjtGPUYtSnwwO0c9
QztIPUgrNHwwO0k9QX19c3dpdGNoKEp8MCl7Y2FzZSAwOntjW2o+PjJdPTA7RD1HO2JyZWFrIEw0
OTticmVha307Y2FzZS0xOntEPS0xO2JyZWFrIEw0OTticmVha307ZGVmYXVsdDp7Y1tmPj4yXT0w
O0Q9RzticmVhayBMNDl9fX19d2hpbGUoMCk7aWYoIWwpe2k9ZztyZXR1cm4gRHwwfWNbYj4+Ml09
Y1tqPj4yXTtpPWc7cmV0dXJuIER8MH1mdW5jdGlvbiBrZShiLGUsZixnKXtiPWJ8MDtlPWV8MDtm
PWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAs
Vj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0w
O2g9Y1tlPj4yXXwwO2Rve2lmKChnfDApPT0wKXtpPTU2fWVsc2V7aj1nfDA7az1jW2o+PjJdfDA7
aWYoKGt8MCk9PTApe2k9NTY7YnJlYWt9aWYoKGJ8MCk9PTApe2w9azttPWg7bj1mO2k9Njc7YnJl
YWt9Y1tqPj4yXT0wO289aztwPWg7cT1iO3I9ZjtpPTg3fX13aGlsZSgwKTtpZigoaXwwKT09NTYp
e2lmKChifDApPT0wKXt0PWg7dT1mO2k9NTh9ZWxzZXt2PWg7dz1iO3g9ZjtpPTU3fX1MNzA6d2hp
bGUoMSl7aWYoKGl8MCk9PTg3KXtpPTA7aD1kW3BdfDA7Zz1oPj4+MztpZigoZy0xNnxnKyhvPj4y
NikpPj4+MD43KXtpPTg4O2JyZWFrfWc9cCsxfDA7eT1oLTEyOHxvPDw2O2Rve2lmKCh5fDApPDAp
e2g9KGRbZ118MCktMTI4fDA7aWYoaD4+PjA+NjMpe2k9OTE7YnJlYWsgTDcwfWs9cCsyfDA7ej1o
fHk8PDY7aWYoKHp8MCk+PTApe0E9ejtCPWs7YnJlYWt9aD0oZFtrXXwwKS0xMjh8MDtpZihoPj4+
MD42Myl7aT05NDticmVhayBMNzB9QT1ofHo8PDY7Qj1wKzN8MH1lbHNle0E9eTtCPWd9fXdoaWxl
KDApO2NbcT4+Ml09QTt2PUI7dz1xKzR8MDt4PXItMXwwO2k9NTc7Y29udGludWV9ZWxzZSBpZigo
aXwwKT09NTgpe2k9MDtnPWFbdF18MDtkb3tpZigoKGcmMjU1KS0xfDApPj4+MDwxMjcpe2lmKCh0
JjN8MCkhPTApe0M9dDtEPXU7RT1nO2JyZWFrfWg9Y1t0Pj4yXXwwO2lmKCgoaC0xNjg0MzAwOXxo
KSYtMjEzOTA2MjE0NHwwKT09MCl7Rj11O0c9dH1lbHNle0M9dDtEPXU7RT1oJjI1NTticmVha31k
b3tHPUcrNHwwO0Y9Ri00fDA7SD1jW0c+PjJdfDA7fXdoaWxlKCgoSC0xNjg0MzAwOXxIKSYtMjEz
OTA2MjE0NHwwKT09MCk7Qz1HO0Q9RjtFPUgmMjU1fWVsc2V7Qz10O0Q9dTtFPWd9fXdoaWxlKDAp
O2c9RSYyNTU7aWYoKGctMXwwKT4+PjA8MTI3KXt0PUMrMXwwO3U9RC0xfDA7aT01ODtjb250aW51
ZX1oPWctMTk0fDA7aWYoaD4+PjA+NTApe0k9RDtKPWI7Sz1DO2k9OTg7YnJlYWt9bD1jW3MrKGg8
PDIpPj4yXXwwO209QysxfDA7bj1EO2k9Njc7Y29udGludWV9ZWxzZSBpZigoaXwwKT09NTcpe2k9
MDtpZigoeHwwKT09MCl7TD1mO2k9MTA2O2JyZWFrfWVsc2V7TT14O049dztPPXZ9d2hpbGUoMSl7
aD1hW09dfDA7ZG97aWYoKChoJjI1NSktMXwwKT4+PjA8MTI3KXtpZigoTyYzfDApPT0wJk0+Pj4w
PjMpe1A9TTtRPU47Uj1PfWVsc2V7Uz1PO1Q9TjtVPU07Vj1oO2JyZWFrfXdoaWxlKDEpe1c9Y1tS
Pj4yXXwwO2lmKCgoVy0xNjg0MzAwOXxXKSYtMjEzOTA2MjE0NHwwKSE9MCl7aT04MTticmVha31j
W1E+PjJdPVcmMjU1O2NbUSs0Pj4yXT1kW1IrMXwwXXwwO2NbUSs4Pj4yXT1kW1IrMnwwXXwwO1g9
Uis0fDA7WT1RKzE2fDA7Y1tRKzEyPj4yXT1kW1IrM3wwXXwwO1o9UC00fDA7aWYoWj4+PjA+Myl7
UD1aO1E9WTtSPVh9ZWxzZXtpPTgyO2JyZWFrfX1pZigoaXwwKT09ODEpe2k9MDtTPVI7VD1RO1U9
UDtWPVcmMjU1O2JyZWFrfWVsc2UgaWYoKGl8MCk9PTgyKXtpPTA7Uz1YO1Q9WTtVPVo7Vj1hW1hd
fDA7YnJlYWt9fWVsc2V7Uz1PO1Q9TjtVPU07Vj1ofX13aGlsZSgwKTtfPVYmMjU1O2lmKChfLTF8
MCk+Pj4wPj0xMjcpe2JyZWFrfWNbVD4+Ml09XztoPVUtMXwwO2lmKChofDApPT0wKXtMPWY7aT0x
MDU7YnJlYWsgTDcwfWVsc2V7TT1oO049VCs0fDA7Tz1TKzF8MH19aD1fLTE5NHwwO2lmKGg+Pj4w
PjUwKXtJPVU7Sj1UO0s9UztpPTk4O2JyZWFrfW89Y1tzKyhoPDwyKT4+Ml18MDtwPVMrMXwwO3E9
VDtyPVU7aT04Nztjb250aW51ZX1lbHNlIGlmKChpfDApPT02Nyl7aT0wO2g9KGRbbV18MCk+Pj4z
O2lmKChoLTE2fGgrKGw+PjI2KSk+Pj4wPjcpe2k9Njg7YnJlYWt9aD1tKzF8MDtkb3tpZigobCYz
MzU1NDQzMnwwKT09MCl7JD1ofWVsc2V7aWYoKChkW2hdfDApLTEyOHwwKT4+PjA+NjMpe2k9NzE7
YnJlYWsgTDcwfWc9bSsyfDA7aWYoKGwmNTI0Mjg4fDApPT0wKXskPWc7YnJlYWt9aWYoKChkW2dd
fDApLTEyOHwwKT4+PjA+NjMpe2k9NzQ7YnJlYWsgTDcwfSQ9bSszfDB9fXdoaWxlKDApO3Q9JDt1
PW4tMXwwO2k9NTg7Y29udGludWV9fWlmKChpfDApPT03MSl7YWE9bDthYj1tLTF8MDthYz1iO2Fk
PW47aT05N31lbHNlIGlmKChpfDApPT03NCl7YWE9bDthYj1tLTF8MDthYz1iO2FkPW47aT05N31l
bHNlIGlmKChpfDApPT02OCl7YWE9bDthYj1tLTF8MDthYz1iO2FkPW47aT05N31lbHNlIGlmKChp
fDApPT04OCl7YWE9bzthYj1wLTF8MDthYz1xO2FkPXI7aT05N31lbHNlIGlmKChpfDApPT05MSl7
YWE9eTthYj1wLTF8MDthYz1xO2FkPXI7aT05N31lbHNlIGlmKChpfDApPT05NCl7YWE9ejthYj1w
LTF8MDthYz1xO2FkPXI7aT05N31lbHNlIGlmKChpfDApPT0xMDUpe3JldHVybiBMfDB9ZWxzZSBp
ZigoaXwwKT09MTA2KXtyZXR1cm4gTHwwfWlmKChpfDApPT05Nyl7aWYoKGFhfDApPT0wKXtJPWFk
O0o9YWM7Sz1hYjtpPTk4fWVsc2V7YWU9YWM7YWY9YWJ9fWRve2lmKChpfDApPT05OCl7aWYoKGFb
S118MCkhPTApe2FlPUo7YWY9SzticmVha31pZigoSnwwKSE9MCl7Y1tKPj4yXT0wO2NbZT4+Ml09
MH1MPWYtSXwwO3JldHVybiBMfDB9fXdoaWxlKDApO2NbKGJ3KCl8MCk+PjJdPTEzODtpZigoYWV8
MCk9PTApe0w9LTE7cmV0dXJuIEx8MH1jW2U+PjJdPWFmO0w9LTE7cmV0dXJuIEx8MH1mdW5jdGlv
biBrZihiLGUsZil7Yj1ifDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0w
LG49MDtnPWk7aT1pKzh8MDtoPWd8MDtjW2g+PjJdPWI7aWYoKGV8MCk9PTApe2o9MDtpPWc7cmV0
dXJuIGp8MH1kb3tpZigoZnwwKSE9MCl7aWYoKGJ8MCk9PTApe2s9aDtjW2g+PjJdPWs7bD1rfWVs
c2V7bD1ifWs9YVtlXXwwO209ayYyNTU7aWYoazw8MjQ+PjI0Pi0xKXtjW2w+PjJdPW07aj1rPDwy
ND4+MjQhPTB8MDtpPWc7cmV0dXJuIGp8MH1rPW0tMTk0fDA7aWYoaz4+PjA+NTApe2JyZWFrfW09
ZSsxfDA7bj1jW3MrKGs8PDIpPj4yXXwwO2lmKGY+Pj4wPDQpe2lmKChuJi0yMTQ3NDgzNjQ4Pj4+
KCgoZio2fDApLTZ8MCk+Pj4wKXwwKSE9MCl7YnJlYWt9fWs9ZFttXXwwO209az4+PjM7aWYoKG0t
MTZ8bSsobj4+MjYpKT4+PjA+Nyl7YnJlYWt9bT1rLTEyOHxuPDw2O2lmKChtfDApPj0wKXtjW2w+
PjJdPW07aj0yO2k9ZztyZXR1cm4ganwwfW49KGRbZSsyfDBdfDApLTEyOHwwO2lmKG4+Pj4wPjYz
KXticmVha31rPW58bTw8NjtpZigoa3wwKT49MCl7Y1tsPj4yXT1rO2o9MztpPWc7cmV0dXJuIGp8
MH1tPShkW2UrM3wwXXwwKS0xMjh8MDtpZihtPj4+MD42Myl7YnJlYWt9Y1tsPj4yXT1tfGs8PDY7
aj00O2k9ZztyZXR1cm4ganwwfX13aGlsZSgwKTtjWyhidygpfDApPj4yXT0xMzg7aj0tMTtpPWc7
cmV0dXJuIGp8MH1mdW5jdGlvbiBrZyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MDtp
ZigoYnwwKT09MCl7Zj0xO3JldHVybiBmfDB9aWYoZD4+PjA8MTI4KXthW2JdPWQmMjU1O2Y9MTty
ZXR1cm4gZnwwfWlmKGQ+Pj4wPDIwNDgpe2FbYl09KGQ+Pj42fDE5MikmMjU1O2FbYisxfDBdPShk
JjYzfDEyOCkmMjU1O2Y9MjtyZXR1cm4gZnwwfWlmKGQ+Pj4wPDU1Mjk2fChkLTU3MzQ0fDApPj4+
MDw4MTkyKXthW2JdPShkPj4+MTJ8MjI0KSYyNTU7YVtiKzF8MF09KGQ+Pj42JjYzfDEyOCkmMjU1
O2FbYisyfDBdPShkJjYzfDEyOCkmMjU1O2Y9MztyZXR1cm4gZnwwfWlmKChkLTY1NTM2fDApPj4+
MDwxMDQ4NTc2KXthW2JdPShkPj4+MTh8MjQwKSYyNTU7YVtiKzF8MF09KGQ+Pj4xMiY2M3wxMjgp
JjI1NTthW2IrMnwwXT0oZD4+PjYmNjN8MTI4KSYyNTU7YVtiKzN8MF09KGQmNjN8MTI4KSYyNTU7
Zj00O3JldHVybiBmfDB9ZWxzZXtjWyhidygpfDApPj4yXT0xMzg7Zj0tMTtyZXR1cm4gZnwwfXJl
dHVybiAwfWZ1bmN0aW9uIGtoKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBraShhKXthPWF8MDty
ZXR1cm59ZnVuY3Rpb24ga2ooYSl7YT1hfDA7cmV0dXJuIDEzMjh8MH1mdW5jdGlvbiBrayhhKXth
PWF8MDtyZXR1cm59ZnVuY3Rpb24ga2woYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGttKGEpe2E9
YXwwO3ZhciBiPTA7Yj1hO3doaWxlKDEpe2lmKChjW2I+PjJdfDApPT0wKXticmVha31lbHNle2I9
Yis0fDB9fXJldHVybiBiLWE+PjJ8MH1mdW5jdGlvbiBrbihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1k
fDA7dmFyIGU9MCxmPTAsZz0wO2lmKChkfDApPT0wKXtyZXR1cm4gYXwwfWVsc2V7ZT1iO2Y9ZDtn
PWF9d2hpbGUoMSl7ZD1mLTF8MDtjW2c+PjJdPWNbZT4+Ml07aWYoKGR8MCk9PTApe2JyZWFrfWVs
c2V7ZT1lKzR8MDtmPWQ7Zz1nKzR8MH19cmV0dXJuIGF8MH1mdW5jdGlvbiBrbyhhLGIsZCl7YT1h
fDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTA7ZT0oZHwwKT09MDtpZihhLWI+
PjI+Pj4wPGQ+Pj4wKXtpZihlKXtyZXR1cm4gYXwwfWVsc2V7Zj1kfWRve2Y9Zi0xfDA7Y1thKyhm
PDwyKT4+Ml09Y1tiKyhmPDwyKT4+Ml07fXdoaWxlKChmfDApIT0wKTtyZXR1cm4gYXwwfWVsc2V7
aWYoZSl7cmV0dXJuIGF8MH1lbHNle2c9YjtoPWQ7aT1hfXdoaWxlKDEpe2Q9aC0xfDA7Y1tpPj4y
XT1jW2c+PjJdO2lmKChkfDApPT0wKXticmVha31lbHNle2c9Zys0fDA7aD1kO2k9aSs0fDB9fXJl
dHVybiBhfDB9cmV0dXJuIDB9ZnVuY3Rpb24ga3AoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3Zh
ciBlPTAsZj0wO2lmKChkfDApPT0wKXtyZXR1cm4gYXwwfWVsc2V7ZT1kO2Y9YX13aGlsZSgxKXtk
PWUtMXwwO2NbZj4+Ml09YjtpZigoZHwwKT09MCl7YnJlYWt9ZWxzZXtlPWQ7Zj1mKzR8MH19cmV0
dXJuIGF8MH1mdW5jdGlvbiBrcShhKXthPWF8MDtjW2E+PjJdPTI0NDA7cmV0dXJufWZ1bmN0aW9u
IGtyKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTA7aWYoKGNbZCs4Pj4y
XXwwKSE9KGJ8MCkpe3JldHVybn1iPWQrMTZ8MDtnPWNbYj4+Ml18MDtpZigoZ3wwKT09MCl7Y1ti
Pj4yXT1lO2NbZCsyND4+Ml09ZjtjW2QrMzY+PjJdPTE7cmV0dXJufWlmKChnfDApIT0oZXwwKSl7
ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2NbZCsyND4+Ml09MjthW2QrNTR8MF09MTty
ZXR1cm59ZT1kKzI0fDA7aWYoKGNbZT4+Ml18MCkhPTIpe3JldHVybn1jW2U+PjJdPWY7cmV0dXJu
fWZ1bmN0aW9uIGtzKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFy
IGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wO2Y9aTtp
PWkrMjY0fDA7Zz1mfDA7aD1mKzI1NnwwO2o9Y1tiPj4yXXwwO2NbaD4+Ml09ajtrPShhfDApIT0w
O2w9az9lOjI1NjtlPWs/YTpnfDA7TDI0Mzpkb3tpZigoanwwKT09MHwobHwwKT09MCl7bT0wO249
ZDtvPWw7cD1lO3E9an1lbHNle2E9Z3wwO3I9bDtzPWQ7dD0wO3U9ZTt2PWo7d2hpbGUoMSl7dz1z
Pj4+MD49cj4+PjA7aWYoISh3fHM+Pj4wPjMyKSl7bT10O249cztvPXI7cD11O3E9djticmVhayBM
MjQzfXg9dz9yOnM7eT1zLXh8MDt3PWt0KHUsaCx4LDApfDA7aWYoKHd8MCk9PS0xKXticmVha31p
ZigodXwwKT09KGF8MCkpe3o9YTtBPXJ9ZWxzZXt6PXUrd3wwO0E9ci13fDB9eD13K3R8MDt3PWNb
aD4+Ml18MDtpZigod3wwKT09MHwoQXwwKT09MCl7bT14O249eTtvPUE7cD16O3E9dzticmVhayBM
MjQzfWVsc2V7cj1BO3M9eTt0PXg7dT16O3Y9d319bT0tMTtuPXk7bz0wO3A9dTtxPWNbaD4+Ml18
MH19d2hpbGUoMCk7TDI1NDpkb3tpZigocXwwKT09MCl7Qj1tfWVsc2V7aWYoKG98MCk9PTB8KG58
MCk9PTApe0I9bTticmVha31lbHNle0M9bztEPW47RT1tO0Y9cDtHPXF9d2hpbGUoMSl7SD1rZyhG
LGNbRz4+Ml18MCwwKXwwO2lmKChIKzF8MCk+Pj4wPDIpe2JyZWFrfXk9KGNbaD4+Ml18MCkrNHww
O2NbaD4+Ml09eTt6PUQtMXwwO0E9RSsxfDA7aWYoKEN8MCk9PShIfDApfCh6fDApPT0wKXtCPUE7
YnJlYWsgTDI1NH1lbHNle0M9Qy1IfDA7RD16O0U9QTtGPUYrSHwwO0c9eX19aWYoKEh8MCkhPTAp
e0I9LTE7YnJlYWt9Y1toPj4yXT0wO0I9RX19d2hpbGUoMCk7aWYoIWspe2k9ZjtyZXR1cm4gQnww
fWNbYj4+Ml09Y1toPj4yXTtpPWY7cmV0dXJuIEJ8MH1mdW5jdGlvbiBrdChiLGQsZSxmKXtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtmPWk7aT1pKzh8
MDtnPWZ8MDtpZigoYnwwKT09MCl7aD1jW2Q+PjJdfDA7aj1nfDA7az1jW2g+PjJdfDA7aWYoKGt8
MCk9PTApe2w9MDtpPWY7cmV0dXJuIGx8MH1lbHNle209MDtuPWg7bz1rfXdoaWxlKDEpe2lmKG8+
Pj4wPjEyNyl7az1rZyhqLG8sMCl8MDtpZigoa3wwKT09LTEpe2w9LTE7cD0yNDA7YnJlYWt9ZWxz
ZXtxPWt9fWVsc2V7cT0xfWs9cSttfDA7aD1uKzR8MDtyPWNbaD4+Ml18MDtpZigocnwwKT09MCl7
bD1rO3A9MjQxO2JyZWFrfWVsc2V7bT1rO249aDtvPXJ9fWlmKChwfDApPT0yNDApe2k9ZjtyZXR1
cm4gbHwwfWVsc2UgaWYoKHB8MCk9PTI0MSl7aT1mO3JldHVybiBsfDB9fUwyODA6ZG97aWYoZT4+
PjA+Myl7bz1lO249YjttPWNbZD4+Ml18MDt3aGlsZSgxKXtxPWNbbT4+Ml18MDtpZigocXwwKT09
MCl7cz1vO3Q9bjticmVhayBMMjgwfWlmKHE+Pj4wPjEyNyl7aj1rZyhuLHEsMCl8MDtpZigoanww
KT09LTEpe2w9LTE7YnJlYWt9dT1uK2p8MDt2PW8tanwwO3c9bX1lbHNle2Fbbl09cSYyNTU7dT1u
KzF8MDt2PW8tMXwwO3c9Y1tkPj4yXXwwfXE9dys0fDA7Y1tkPj4yXT1xO2lmKHY+Pj4wPjMpe289
djtuPXU7bT1xfWVsc2V7cz12O3Q9dTticmVhayBMMjgwfX1pPWY7cmV0dXJuIGx8MH1lbHNle3M9
ZTt0PWJ9fXdoaWxlKDApO0wyOTI6ZG97aWYoKHN8MCk9PTApe3g9MH1lbHNle2I9Z3wwO3U9czt2
PXQ7dz1jW2Q+PjJdfDA7d2hpbGUoMSl7bT1jW3c+PjJdfDA7aWYoKG18MCk9PTApe3A9MjM2O2Jy
ZWFrfWlmKG0+Pj4wPjEyNyl7bj1rZyhiLG0sMCl8MDtpZigobnwwKT09LTEpe2w9LTE7cD0yNDM7
YnJlYWt9aWYobj4+PjA+dT4+PjApe3A9MjMyO2JyZWFrfW89Y1t3Pj4yXXwwO2tnKHYsbywwKXww
O3k9ditufDA7ej11LW58MDtBPXd9ZWxzZXthW3ZdPW0mMjU1O3k9disxfDA7ej11LTF8MDtBPWNb
ZD4+Ml18MH1tPUErNHwwO2NbZD4+Ml09bTtpZigoenwwKT09MCl7eD0wO2JyZWFrIEwyOTJ9ZWxz
ZXt1PXo7dj15O3c9bX19aWYoKHB8MCk9PTIzMil7bD1lLXV8MDtpPWY7cmV0dXJuIGx8MH1lbHNl
IGlmKChwfDApPT0yMzYpe2Fbdl09MDt4PXU7YnJlYWt9ZWxzZSBpZigocHwwKT09MjQzKXtpPWY7
cmV0dXJuIGx8MH19fXdoaWxlKDApO2NbZD4+Ml09MDtsPWUteHwwO2k9ZjtyZXR1cm4gbHwwfWZ1
bmN0aW9uIGt1KGEpe2E9YXwwO2tTKGEpO3JldHVybn1mdW5jdGlvbiBrdihhKXthPWF8MDtraChh
fDApO3JldHVybn1mdW5jdGlvbiBrdyhhKXthPWF8MDtraChhfDApO2tTKGEpO3JldHVybn1mdW5j
dGlvbiBreChhKXthPWF8MDtraChhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBreShhKXthPWF8
MDtraChhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBreihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1k
fDA7dmFyIGU9MCxmPTAsZz0wLGg9MDtlPWk7aT1pKzU2fDA7Zj1lfDA7aWYoKGF8MCk9PShifDAp
KXtnPTE7aT1lO3JldHVybiBnfDB9aWYoKGJ8MCk9PTApe2c9MDtpPWU7cmV0dXJuIGd8MH1oPWtD
KGIsOTcwNCw5Njg4LC0xKXwwO2I9aDtpZigoaHwwKT09MCl7Zz0wO2k9ZTtyZXR1cm4gZ3wwfWsk
KGZ8MCwwLDU2KTtjW2Y+PjJdPWI7Y1tmKzg+PjJdPWE7Y1tmKzEyPj4yXT0tMTtjW2YrNDg+PjJd
PTE7Y2JbY1soY1toPj4yXXwwKSsyOD4+Ml0mMTVdKGIsZixjW2Q+PjJdfDAsMSk7aWYoKGNbZisy
ND4+Ml18MCkhPTEpe2c9MDtpPWU7cmV0dXJuIGd8MH1jW2Q+PjJdPWNbZisxNj4+Ml07Zz0xO2k9
ZTtyZXR1cm4gZ3wwfWZ1bmN0aW9uIGtBKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O3ZhciBnPTA7aWYoKGJ8MCkhPShjW2QrOD4+Ml18MCkpe2c9Y1tiKzg+PjJdfDA7Y2JbY1soY1tn
Pj4yXXwwKSsyOD4+Ml0mMTVdKGcsZCxlLGYpO3JldHVybn1nPWQrMTZ8MDtiPWNbZz4+Ml18MDtp
ZigoYnwwKT09MCl7Y1tnPj4yXT1lO2NbZCsyND4+Ml09ZjtjW2QrMzY+PjJdPTE7cmV0dXJufWlm
KChifDApIT0oZXwwKSl7ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2NbZCsyND4+Ml09
MjthW2QrNTR8MF09MTtyZXR1cm59ZT1kKzI0fDA7aWYoKGNbZT4+Ml18MCkhPTIpe3JldHVybn1j
W2U+PjJdPWY7cmV0dXJufWZ1bmN0aW9uIGtCKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7aWYoKGJ8MCk9PShjW2QrOD4+Ml18
MCkpe2c9ZCsxNnwwO2g9Y1tnPj4yXXwwO2lmKChofDApPT0wKXtjW2c+PjJdPWU7Y1tkKzI0Pj4y
XT1mO2NbZCszNj4+Ml09MTtyZXR1cm59aWYoKGh8MCkhPShlfDApKXtoPWQrMzZ8MDtjW2g+PjJd
PShjW2g+PjJdfDApKzE7Y1tkKzI0Pj4yXT0yO2FbZCs1NHwwXT0xO3JldHVybn1oPWQrMjR8MDtp
ZigoY1toPj4yXXwwKSE9Mil7cmV0dXJufWNbaD4+Ml09ZjtyZXR1cm59aD1jW2IrMTI+PjJdfDA7
Zz1iKzE2KyhoPDwzKXwwO2k9Y1tiKzIwPj4yXXwwO2o9aT4+ODtpZigoaSYxfDApPT0wKXtrPWp9
ZWxzZXtrPWNbKGNbZT4+Ml18MCkraj4+Ml18MH1qPWNbYisxNj4+Ml18MDtjYltjWyhjW2o+PjJd
fDApKzI4Pj4yXSYxNV0oaixkLGUra3wwLChpJjJ8MCkhPTA/ZjoyKTtpZigoaHwwKTw9MSl7cmV0
dXJufWg9ZCs1NHwwO2k9ZTtrPWIrMjR8MDt3aGlsZSgxKXtiPWNbays0Pj4yXXwwO2o9Yj4+ODtp
ZigoYiYxfDApPT0wKXtsPWp9ZWxzZXtsPWNbKGNbaT4+Ml18MCkraj4+Ml18MH1qPWNbaz4+Ml18
MDtjYltjWyhjW2o+PjJdfDApKzI4Pj4yXSYxNV0oaixkLGUrbHwwLChiJjJ8MCkhPTA/ZjoyKTtp
ZigoYVtoXSYxKSE9MCl7bT0yOTc7YnJlYWt9Yj1rKzh8MDtpZihiPj4+MDxnPj4+MCl7az1ifWVs
c2V7bT0yOTg7YnJlYWt9fWlmKChtfDApPT0yOTcpe3JldHVybn1lbHNlIGlmKChtfDApPT0yOTgp
e3JldHVybn19ZnVuY3Rpb24ga0MoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFy
IGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wO2Y9aTtpPWkrNTZ8MDtnPWZ8MDto
PWNbYT4+Ml18MDtqPWErKGNbaC04Pj4yXXwwKXwwO2s9Y1toLTQ+PjJdfDA7aD1rO2NbZz4+Ml09
ZDtjW2crND4+Ml09YTtjW2crOD4+Ml09YjtjW2crMTI+PjJdPWU7ZT1nKzE2fDA7Yj1nKzIwfDA7
YT1nKzI0fDA7bD1nKzI4fDA7bT1nKzMyfDA7bj1nKzQwfDA7ayQoZXwwLDAsMzkpO2lmKChrfDAp
PT0oZHwwKSl7Y1tnKzQ4Pj4yXT0xO2I5W2NbKGNbaz4+Ml18MCkrMjA+PjJdJjMxXShoLGcsaixq
LDEsMCk7aT1mO3JldHVybigoY1thPj4yXXwwKT09MT9qOjApfDB9YldbY1soY1trPj4yXXwwKSsy
ND4+Ml0mN10oaCxnLGosMSwwKTtzd2l0Y2goY1tnKzM2Pj4yXXwwKXtjYXNlIDE6e2Rve2lmKChj
W2E+PjJdfDApIT0xKXtpZigoY1tuPj4yXXwwKSE9MCl7bz0wO2k9ZjtyZXR1cm4gb3wwfWlmKChj
W2w+PjJdfDApIT0xKXtvPTA7aT1mO3JldHVybiBvfDB9aWYoKGNbbT4+Ml18MCk9PTEpe2JyZWFr
fWVsc2V7bz0wfWk9ZjtyZXR1cm4gb3wwfX13aGlsZSgwKTtvPWNbZT4+Ml18MDtpPWY7cmV0dXJu
IG98MH07Y2FzZSAwOntpZigoY1tuPj4yXXwwKSE9MSl7bz0wO2k9ZjtyZXR1cm4gb3wwfWlmKChj
W2w+PjJdfDApIT0xKXtvPTA7aT1mO3JldHVybiBvfDB9bz0oY1ttPj4yXXwwKT09MT9jW2I+PjJd
fDA6MDtpPWY7cmV0dXJuIG98MH07ZGVmYXVsdDp7bz0wO2k9ZjtyZXR1cm4gb3wwfX1yZXR1cm4g
MH1mdW5jdGlvbiBrRChiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2lm
KChjW2QrOD4+Ml18MCk9PShifDApKXtpZigoY1tkKzQ+PjJdfDApIT0oZXwwKSl7cmV0dXJufWc9
ZCsyOHwwO2lmKChjW2c+PjJdfDApPT0xKXtyZXR1cm59Y1tnPj4yXT1mO3JldHVybn1pZigoY1tk
Pj4yXXwwKSE9KGJ8MCkpe3JldHVybn1kb3tpZigoY1tkKzE2Pj4yXXwwKSE9KGV8MCkpe2I9ZCsy
MHwwO2lmKChjW2I+PjJdfDApPT0oZXwwKSl7YnJlYWt9Y1tkKzMyPj4yXT1mO2NbYj4+Ml09ZTti
PWQrNDB8MDtjW2I+PjJdPShjW2I+PjJdfDApKzE7ZG97aWYoKGNbZCszNj4+Ml18MCk9PTEpe2lm
KChjW2QrMjQ+PjJdfDApIT0yKXticmVha31hW2QrNTR8MF09MX19d2hpbGUoMCk7Y1tkKzQ0Pj4y
XT00O3JldHVybn19d2hpbGUoMCk7aWYoKGZ8MCkhPTEpe3JldHVybn1jW2QrMzI+PjJdPTE7cmV0
dXJufWZ1bmN0aW9uIGtFKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDt2YXIgaT0wO2lmKChjW2QrOD4+Ml18MCkhPShifDApKXtyZXR1cm59YVtkKzUzfDBd
PTE7aWYoKGNbZCs0Pj4yXXwwKSE9KGZ8MCkpe3JldHVybn1hW2QrNTJ8MF09MTtmPWQrMTZ8MDti
PWNbZj4+Ml18MDtpZigoYnwwKT09MCl7Y1tmPj4yXT1lO2NbZCsyND4+Ml09ZztjW2QrMzY+PjJd
PTE7aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYoZ3wwKT09MSkpe3JldHVybn1hW2QrNTR8MF09MTty
ZXR1cm59aWYoKGJ8MCkhPShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7YVtk
KzU0fDBdPTE7cmV0dXJufWU9ZCsyNHwwO2I9Y1tlPj4yXXwwO2lmKChifDApPT0yKXtjW2U+PjJd
PWc7aT1nfWVsc2V7aT1ifWlmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKGl8MCk9PTEpKXtyZXR1cm59
YVtkKzU0fDBdPTE7cmV0dXJufWZ1bmN0aW9uIGtGKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wO2g9YnwwO2lmKChofDApPT0oY1tkKzg+PjJdfDApKXtpZigoY1tkKzQ+PjJd
fDApIT0oZXwwKSl7cmV0dXJufWk9ZCsyOHwwO2lmKChjW2k+PjJdfDApPT0xKXtyZXR1cm59Y1tp
Pj4yXT1mO3JldHVybn1pZigoaHwwKT09KGNbZD4+Ml18MCkpe2Rve2lmKChjW2QrMTY+PjJdfDAp
IT0oZXwwKSl7aD1kKzIwfDA7aWYoKGNbaD4+Ml18MCk9PShlfDApKXticmVha31jW2QrMzI+PjJd
PWY7aT1kKzQ0fDA7aWYoKGNbaT4+Ml18MCk9PTQpe3JldHVybn1qPWNbYisxMj4+Ml18MDtrPWIr
MTYrKGo8PDMpfDA7TDQ3NDpkb3tpZigoanwwKT4wKXtsPWQrNTJ8MDttPWQrNTN8MDtuPWQrNTR8
MDtvPWIrOHwwO3A9ZCsyNHwwO3E9ZTtyPTA7cz1iKzE2fDA7dD0wO0w0NzY6d2hpbGUoMSl7YVts
XT0wO2FbbV09MDt1PWNbcys0Pj4yXXwwO3Y9dT4+ODtpZigodSYxfDApPT0wKXt3PXZ9ZWxzZXt3
PWNbKGNbcT4+Ml18MCkrdj4+Ml18MH12PWNbcz4+Ml18MDtiOVtjWyhjW3Y+PjJdfDApKzIwPj4y
XSYzMV0odixkLGUsZSt3fDAsMi0odT4+PjEmMSl8MCxnKTtpZigoYVtuXSYxKSE9MCl7eD10O3k9
cjticmVha31kb3tpZigoYVttXSYxKT09MCl7ej10O0E9cn1lbHNle2lmKChhW2xdJjEpPT0wKXtp
ZigoY1tvPj4yXSYxfDApPT0wKXt4PTE7eT1yO2JyZWFrIEw0NzZ9ZWxzZXt6PTE7QT1yO2JyZWFr
fX1pZigoY1twPj4yXXwwKT09MSl7Qj0zODU7YnJlYWsgTDQ3NH1pZigoY1tvPj4yXSYyfDApPT0w
KXtCPTM4NTticmVhayBMNDc0fWVsc2V7ej0xO0E9MX19fXdoaWxlKDApO3U9cys4fDA7aWYodT4+
PjA8az4+PjApe3I9QTtzPXU7dD16fWVsc2V7eD16O3k9QTticmVha319aWYoeSl7Qz14O0I9Mzg0
fWVsc2V7RD14O0I9MzgxfX1lbHNle0Q9MDtCPTM4MX19d2hpbGUoMCk7ZG97aWYoKEJ8MCk9PTM4
MSl7Y1toPj4yXT1lO2s9ZCs0MHwwO2Nbaz4+Ml09KGNbaz4+Ml18MCkrMTtpZigoY1tkKzM2Pj4y
XXwwKSE9MSl7Qz1EO0I9Mzg0O2JyZWFrfWlmKChjW2QrMjQ+PjJdfDApIT0yKXtDPUQ7Qj0zODQ7
YnJlYWt9YVtkKzU0fDBdPTE7aWYoRCl7Qj0zODV9ZWxzZXtCPTM4Nn19fXdoaWxlKDApO2lmKChC
fDApPT0zODQpe2lmKEMpe0I9Mzg1fWVsc2V7Qj0zODZ9fWlmKChCfDApPT0zODUpe2NbaT4+Ml09
MztyZXR1cm59ZWxzZSBpZigoQnwwKT09Mzg2KXtjW2k+PjJdPTQ7cmV0dXJufX19d2hpbGUoMCk7
aWYoKGZ8MCkhPTEpe3JldHVybn1jW2QrMzI+PjJdPTE7cmV0dXJufUM9Y1tiKzEyPj4yXXwwO0Q9
YisxNisoQzw8Myl8MDt4PWNbYisyMD4+Ml18MDt5PXg+Pjg7aWYoKHgmMXwwKT09MCl7RT15fWVs
c2V7RT1jWyhjW2U+PjJdfDApK3k+PjJdfDB9eT1jW2IrMTY+PjJdfDA7YldbY1soY1t5Pj4yXXww
KSsyND4+Ml0mN10oeSxkLGUrRXwwLCh4JjJ8MCkhPTA/ZjoyLGcpO3g9YisyNHwwO2lmKChDfDAp
PD0xKXtyZXR1cm59Qz1jW2IrOD4+Ml18MDtkb3tpZigoQyYyfDApPT0wKXtiPWQrMzZ8MDtpZigo
Y1tiPj4yXXwwKT09MSl7YnJlYWt9aWYoKEMmMXwwKT09MCl7RT1kKzU0fDA7eT1lO0E9eDt3aGls
ZSgxKXtpZigoYVtFXSYxKSE9MCl7Qj00MjU7YnJlYWt9aWYoKGNbYj4+Ml18MCk9PTEpe0I9NDI2
O2JyZWFrfXo9Y1tBKzQ+PjJdfDA7dz16Pj44O2lmKCh6JjF8MCk9PTApe0Y9d31lbHNle0Y9Y1so
Y1t5Pj4yXXwwKSt3Pj4yXXwwfXc9Y1tBPj4yXXwwO2JXW2NbKGNbdz4+Ml18MCkrMjQ+PjJdJjdd
KHcsZCxlK0Z8MCwoeiYyfDApIT0wP2Y6MixnKTt6PUErOHwwO2lmKHo+Pj4wPEQ+Pj4wKXtBPXp9
ZWxzZXtCPTQxMjticmVha319aWYoKEJ8MCk9PTQxMil7cmV0dXJufWVsc2UgaWYoKEJ8MCk9PTQy
NSl7cmV0dXJufWVsc2UgaWYoKEJ8MCk9PTQyNil7cmV0dXJufX1BPWQrMjR8MDt5PWQrNTR8MDtF
PWU7aT14O3doaWxlKDEpe2lmKChhW3ldJjEpIT0wKXtCPTQyMjticmVha31pZigoY1tiPj4yXXww
KT09MSl7aWYoKGNbQT4+Ml18MCk9PTEpe0I9NDIzO2JyZWFrfX16PWNbaSs0Pj4yXXwwO3c9ej4+
ODtpZigoeiYxfDApPT0wKXtHPXd9ZWxzZXtHPWNbKGNbRT4+Ml18MCkrdz4+Ml18MH13PWNbaT4+
Ml18MDtiV1tjWyhjW3c+PjJdfDApKzI0Pj4yXSY3XSh3LGQsZStHfDAsKHomMnwwKSE9MD9mOjIs
Zyk7ej1pKzh8MDtpZih6Pj4+MDxEPj4+MCl7aT16fWVsc2V7Qj00MjQ7YnJlYWt9fWlmKChCfDAp
PT00MjIpe3JldHVybn1lbHNlIGlmKChCfDApPT00MjMpe3JldHVybn1lbHNlIGlmKChCfDApPT00
MjQpe3JldHVybn19fXdoaWxlKDApO0c9ZCs1NHwwO0Y9ZTtDPXg7d2hpbGUoMSl7aWYoKGFbR10m
MSkhPTApe0I9NDIxO2JyZWFrfXg9Y1tDKzQ+PjJdfDA7aT14Pj44O2lmKCh4JjF8MCk9PTApe0g9
aX1lbHNle0g9Y1soY1tGPj4yXXwwKStpPj4yXXwwfWk9Y1tDPj4yXXwwO2JXW2NbKGNbaT4+Ml18
MCkrMjQ+PjJdJjddKGksZCxlK0h8MCwoeCYyfDApIT0wP2Y6MixnKTt4PUMrOHwwO2lmKHg+Pj4w
PEQ+Pj4wKXtDPXh9ZWxzZXtCPTQyMDticmVha319aWYoKEJ8MCk9PTQyMCl7cmV0dXJufWVsc2Ug
aWYoKEJ8MCk9PTQyMSl7cmV0dXJufX1mdW5jdGlvbiBrRyhiLGQsZSxmLGcpe2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTA7aD1ifDA7
aWYoKGh8MCk9PShjW2QrOD4+Ml18MCkpe2lmKChjW2QrND4+Ml18MCkhPShlfDApKXtyZXR1cm59
aT1kKzI4fDA7aWYoKGNbaT4+Ml18MCk9PTEpe3JldHVybn1jW2k+PjJdPWY7cmV0dXJufWlmKCho
fDApIT0oY1tkPj4yXXwwKSl7aD1jW2IrOD4+Ml18MDtiV1tjWyhjW2g+PjJdfDApKzI0Pj4yXSY3
XShoLGQsZSxmLGcpO3JldHVybn1kb3tpZigoY1tkKzE2Pj4yXXwwKSE9KGV8MCkpe2g9ZCsyMHww
O2lmKChjW2g+PjJdfDApPT0oZXwwKSl7YnJlYWt9Y1tkKzMyPj4yXT1mO2k9ZCs0NHwwO2lmKChj
W2k+PjJdfDApPT00KXtyZXR1cm59aj1kKzUyfDA7YVtqXT0wO2s9ZCs1M3wwO2Fba109MDtsPWNb
Yis4Pj4yXXwwO2I5W2NbKGNbbD4+Ml18MCkrMjA+PjJdJjMxXShsLGQsZSxlLDEsZyk7aWYoKGFb
a10mMSk9PTApe209MDtuPTQ0MX1lbHNle2lmKChhW2pdJjEpPT0wKXttPTE7bj00NDF9fUw1NzY6
ZG97aWYoKG58MCk9PTQ0MSl7Y1toPj4yXT1lO2o9ZCs0MHwwO2Nbaj4+Ml09KGNbaj4+Ml18MCkr
MTtkb3tpZigoY1tkKzM2Pj4yXXwwKT09MSl7aWYoKGNbZCsyND4+Ml18MCkhPTIpe249NDQ0O2Jy
ZWFrfWFbZCs1NHwwXT0xO2lmKG0pe2JyZWFrIEw1NzZ9fWVsc2V7bj00NDR9fXdoaWxlKDApO2lm
KChufDApPT00NDQpe2lmKG0pe2JyZWFrfX1jW2k+PjJdPTQ7cmV0dXJufX13aGlsZSgwKTtjW2k+
PjJdPTM7cmV0dXJufX13aGlsZSgwKTtpZigoZnwwKSE9MSl7cmV0dXJufWNbZCszMj4+Ml09MTty
ZXR1cm59ZnVuY3Rpb24ga0goYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO3ZhciBpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MDtpZigoYnwwKSE9KGNbZCs4Pj4yXXwwKSl7aT1kKzUyfDA7aj1hW2ld
JjE7az1kKzUzfDA7bD1hW2tdJjE7bT1jW2IrMTI+PjJdfDA7bj1iKzE2KyhtPDwzKXwwO2FbaV09
MDthW2tdPTA7bz1jW2IrMjA+PjJdfDA7cD1vPj44O2lmKChvJjF8MCk9PTApe3E9cH1lbHNle3E9
Y1soY1tmPj4yXXwwKStwPj4yXXwwfXA9Y1tiKzE2Pj4yXXwwO2I5W2NbKGNbcD4+Ml18MCkrMjA+
PjJdJjMxXShwLGQsZSxmK3F8MCwobyYyfDApIT0wP2c6MixoKTtMNTk4OmRve2lmKChtfDApPjEp
e289ZCsyNHwwO3E9Yis4fDA7cD1kKzU0fDA7cj1mO3M9YisyNHwwO2Rve2lmKChhW3BdJjEpIT0w
KXticmVhayBMNTk4fWRve2lmKChhW2ldJjEpPT0wKXtpZigoYVtrXSYxKT09MCl7YnJlYWt9aWYo
KGNbcT4+Ml0mMXwwKT09MCl7YnJlYWsgTDU5OH19ZWxzZXtpZigoY1tvPj4yXXwwKT09MSl7YnJl
YWsgTDU5OH1pZigoY1txPj4yXSYyfDApPT0wKXticmVhayBMNTk4fX19d2hpbGUoMCk7YVtpXT0w
O2Fba109MDt0PWNbcys0Pj4yXXwwO3U9dD4+ODtpZigodCYxfDApPT0wKXt2PXV9ZWxzZXt2PWNb
KGNbcj4+Ml18MCkrdT4+Ml18MH11PWNbcz4+Ml18MDtiOVtjWyhjW3U+PjJdfDApKzIwPj4yXSYz
MV0odSxkLGUsZit2fDAsKHQmMnwwKSE9MD9nOjIsaCk7cz1zKzh8MDt9d2hpbGUocz4+PjA8bj4+
PjApfX13aGlsZSgwKTthW2ldPWo7YVtrXT1sO3JldHVybn1hW2QrNTN8MF09MTtpZigoY1tkKzQ+
PjJdfDApIT0oZnwwKSl7cmV0dXJufWFbZCs1MnwwXT0xO2Y9ZCsxNnwwO2w9Y1tmPj4yXXwwO2lm
KChsfDApPT0wKXtjW2Y+PjJdPWU7Y1tkKzI0Pj4yXT1nO2NbZCszNj4+Ml09MTtpZighKChjW2Qr
NDg+PjJdfDApPT0xJihnfDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0xO3JldHVybn1pZigobHww
KSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTthW2QrNTR8MF09MTtyZXR1
cm59ZT1kKzI0fDA7bD1jW2U+PjJdfDA7aWYoKGx8MCk9PTIpe2NbZT4+Ml09Zzt3PWd9ZWxzZXt3
PWx9aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYod3wwKT09MSkpe3JldHVybn1hW2QrNTR8MF09MTty
ZXR1cm59ZnVuY3Rpb24ga0koYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO3ZhciBpPTAsaj0wO2lmKChifDApIT0oY1tkKzg+PjJdfDApKXtpPWNbYis4Pj4y
XXwwO2I5W2NbKGNbaT4+Ml18MCkrMjA+PjJdJjMxXShpLGQsZSxmLGcsaCk7cmV0dXJufWFbZCs1
M3wwXT0xO2lmKChjW2QrND4+Ml18MCkhPShmfDApKXtyZXR1cm59YVtkKzUyfDBdPTE7Zj1kKzE2
fDA7aD1jW2Y+PjJdfDA7aWYoKGh8MCk9PTApe2NbZj4+Ml09ZTtjW2QrMjQ+PjJdPWc7Y1tkKzM2
Pj4yXT0xO2lmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKGd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBd
PTE7cmV0dXJufWlmKChofDApIT0oZXwwKSl7ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsx
O2FbZCs1NHwwXT0xO3JldHVybn1lPWQrMjR8MDtoPWNbZT4+Ml18MDtpZigoaHwwKT09Mil7Y1tl
Pj4yXT1nO2o9Z31lbHNle2o9aH1pZighKChjW2QrNDg+PjJdfDApPT0xJihqfDApPT0xKSl7cmV0
dXJufWFbZCs1NHwwXT0xO3JldHVybn1mdW5jdGlvbiBrSihhKXthPWF8MDt2YXIgYj0wLGQ9MCxl
PTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAs
Vj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0w
LGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxh
cj0wLGFzPTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9
MCxhRD0wLGFFPTAsYUY9MCxhRz0wO2Rve2lmKGE+Pj4wPDI0NSl7aWYoYT4+PjA8MTEpe2I9MTZ9
ZWxzZXtiPWErMTEmLTh9ZD1iPj4+MztlPWNbMjQ2MF18MDtmPWU+Pj4oZD4+PjApO2lmKChmJjN8
MCkhPTApe2c9KGYmMV4xKStkfDA7aD1nPDwxO2k9OTg4MCsoaDw8Mil8MDtqPTk4ODArKGgrMjw8
Mil8MDtoPWNbaj4+Ml18MDtrPWgrOHwwO2w9Y1trPj4yXXwwO2Rve2lmKChpfDApPT0obHwwKSl7
Y1syNDYwXT1lJn4oMTw8Zyl9ZWxzZXtpZihsPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0
dXJuIDB9bT1sKzEyfDA7aWYoKGNbbT4+Ml18MCk9PShofDApKXtjW20+PjJdPWk7Y1tqPj4yXT1s
O2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDApO2w9Zzw8MztjW2grND4+Ml09bHwz
O2o9aCsobHw0KXwwO2Nbaj4+Ml09Y1tqPj4yXXwxO249aztyZXR1cm4gbnwwfWlmKGI+Pj4wPD0o
Y1syNDYyXXwwKT4+PjApe289YjticmVha31pZigoZnwwKSE9MCl7aj0yPDxkO2w9Zjw8ZCYoanwt
aik7aj0obCYtbCktMXwwO2w9aj4+PjEyJjE2O2k9aj4+PihsPj4+MCk7aj1pPj4+NSY4O209aT4+
PihqPj4+MCk7aT1tPj4+MiY0O3A9bT4+PihpPj4+MCk7bT1wPj4+MSYyO3E9cD4+PihtPj4+MCk7
cD1xPj4+MSYxO3I9KGp8bHxpfG18cCkrKHE+Pj4ocD4+PjApKXwwO3A9cjw8MTtxPTk4ODArKHA8
PDIpfDA7bT05ODgwKyhwKzI8PDIpfDA7cD1jW20+PjJdfDA7aT1wKzh8MDtsPWNbaT4+Ml18MDtk
b3tpZigocXwwKT09KGx8MCkpe2NbMjQ2MF09ZSZ+KDE8PHIpfWVsc2V7aWYobD4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWo9bCsxMnwwO2lmKChjW2o+PjJdfDApPT0ocHwwKSl7
Y1tqPj4yXT1xO2NbbT4+Ml09bDticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTts
PXI8PDM7bT1sLWJ8MDtjW3ArND4+Ml09YnwzO3E9cDtlPXErYnwwO2NbcSsoYnw0KT4+Ml09bXwx
O2NbcStsPj4yXT1tO2w9Y1syNDYyXXwwO2lmKChsfDApIT0wKXtxPWNbMjQ2NV18MDtkPWw+Pj4z
O2w9ZDw8MTtmPTk4ODArKGw8PDIpfDA7az1jWzI0NjBdfDA7aD0xPDxkO2Rve2lmKChrJmh8MCk9
PTApe2NbMjQ2MF09a3xoO3M9Zjt0PTk4ODArKGwrMjw8Mil8MH1lbHNle2Q9OTg4MCsobCsyPDwy
KXwwO2c9Y1tkPj4yXXwwO2lmKGc+Pj4wPj0oY1syNDY0XXwwKT4+PjApe3M9Zzt0PWQ7YnJlYWt9
YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7Y1t0Pj4yXT1xO2NbcysxMj4+Ml09cTtjW3ErOD4+Ml09
cztjW3ErMTI+PjJdPWZ9Y1syNDYyXT1tO2NbMjQ2NV09ZTtuPWk7cmV0dXJuIG58MH1sPWNbMjQ2
MV18MDtpZigobHwwKT09MCl7bz1iO2JyZWFrfWg9KGwmLWwpLTF8MDtsPWg+Pj4xMiYxNjtrPWg+
Pj4obD4+PjApO2g9az4+PjUmODtwPWs+Pj4oaD4+PjApO2s9cD4+PjImNDtyPXA+Pj4oaz4+PjAp
O3A9cj4+PjEmMjtkPXI+Pj4ocD4+PjApO3I9ZD4+PjEmMTtnPWNbMTAxNDQrKChofGx8a3xwfHIp
KyhkPj4+KHI+Pj4wKSk8PDIpPj4yXXwwO3I9ZztkPWc7cD0oY1tnKzQ+PjJdJi04KS1ifDA7d2hp
bGUoMSl7Zz1jW3IrMTY+PjJdfDA7aWYoKGd8MCk9PTApe2s9Y1tyKzIwPj4yXXwwO2lmKChrfDAp
PT0wKXticmVha31lbHNle3U9a319ZWxzZXt1PWd9Zz0oY1t1KzQ+PjJdJi04KS1ifDA7az1nPj4+
MDxwPj4+MDtyPXU7ZD1rP3U6ZDtwPWs/ZzpwfXI9ZDtpPWNbMjQ2NF18MDtpZihyPj4+MDxpPj4+
MCl7YkcoKTtyZXR1cm4gMH1lPXIrYnwwO209ZTtpZihyPj4+MD49ZT4+PjApe2JHKCk7cmV0dXJu
IDB9ZT1jW2QrMjQ+PjJdfDA7Zj1jW2QrMTI+PjJdfDA7ZG97aWYoKGZ8MCk9PShkfDApKXtxPWQr
MjB8MDtnPWNbcT4+Ml18MDtpZigoZ3wwKT09MCl7az1kKzE2fDA7bD1jW2s+PjJdfDA7aWYoKGx8
MCk9PTApe3Y9MDticmVha31lbHNle3c9bDt4PWt9fWVsc2V7dz1nO3g9cX13aGlsZSgxKXtxPXcr
MjB8MDtnPWNbcT4+Ml18MDtpZigoZ3wwKSE9MCl7dz1nO3g9cTtjb250aW51ZX1xPXcrMTZ8MDtn
PWNbcT4+Ml18MDtpZigoZ3wwKT09MCl7YnJlYWt9ZWxzZXt3PWc7eD1xfX1pZih4Pj4+MDxpPj4+
MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbeD4+Ml09MDt2PXc7YnJlYWt9fWVsc2V7cT1jW2QrOD4+
Ml18MDtpZihxPj4+MDxpPj4+MCl7YkcoKTtyZXR1cm4gMH1nPXErMTJ8MDtpZigoY1tnPj4yXXww
KSE9KGR8MCkpe2JHKCk7cmV0dXJuIDB9az1mKzh8MDtpZigoY1trPj4yXXwwKT09KGR8MCkpe2Nb
Zz4+Ml09ZjtjW2s+PjJdPXE7dj1mO2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDAp
O0w3NDA6ZG97aWYoKGV8MCkhPTApe2Y9ZCsyOHwwO2k9MTAxNDQrKGNbZj4+Ml08PDIpfDA7ZG97
aWYoKGR8MCk9PShjW2k+PjJdfDApKXtjW2k+PjJdPXY7aWYoKHZ8MCkhPTApe2JyZWFrfWNbMjQ2
MV09Y1syNDYxXSZ+KDE8PGNbZj4+Ml0pO2JyZWFrIEw3NDB9ZWxzZXtpZihlPj4+MDwoY1syNDY0
XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9cT1lKzE2fDA7aWYoKGNbcT4+Ml18MCk9PShkfDApKXtj
W3E+PjJdPXZ9ZWxzZXtjW2UrMjA+PjJdPXZ9aWYoKHZ8MCk9PTApe2JyZWFrIEw3NDB9fX13aGls
ZSgwKTtpZih2Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9Y1t2KzI0Pj4yXT1l
O2Y9Y1tkKzE2Pj4yXXwwO2Rve2lmKChmfDApIT0wKXtpZihmPj4+MDwoY1syNDY0XXwwKT4+PjAp
e2JHKCk7cmV0dXJuIDB9ZWxzZXtjW3YrMTY+PjJdPWY7Y1tmKzI0Pj4yXT12O2JyZWFrfX19d2hp
bGUoMCk7Zj1jW2QrMjA+PjJdfDA7aWYoKGZ8MCk9PTApe2JyZWFrfWlmKGY+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbdisyMD4+Ml09ZjtjW2YrMjQ+PjJdPXY7YnJl
YWt9fX13aGlsZSgwKTtpZihwPj4+MDwxNil7ZT1wK2J8MDtjW2QrND4+Ml09ZXwzO2Y9cisoZSs0
KXwwO2NbZj4+Ml09Y1tmPj4yXXwxfWVsc2V7Y1tkKzQ+PjJdPWJ8MztjW3IrKGJ8NCk+PjJdPXB8
MTtjW3IrKHArYik+PjJdPXA7Zj1jWzI0NjJdfDA7aWYoKGZ8MCkhPTApe2U9Y1syNDY1XXwwO2k9
Zj4+PjM7Zj1pPDwxO3E9OTg4MCsoZjw8Mil8MDtrPWNbMjQ2MF18MDtnPTE8PGk7ZG97aWYoKGsm
Z3wwKT09MCl7Y1syNDYwXT1rfGc7eT1xO3o9OTg4MCsoZisyPDwyKXwwfWVsc2V7aT05ODgwKyhm
KzI8PDIpfDA7bD1jW2k+PjJdfDA7aWYobD4+PjA+PShjWzI0NjRdfDApPj4+MCl7eT1sO3o9aTti
cmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtjW3o+PjJdPWU7Y1t5KzEyPj4yXT1lO2NbZSs4
Pj4yXT15O2NbZSsxMj4+Ml09cX1jWzI0NjJdPXA7Y1syNDY1XT1tfWY9ZCs4fDA7aWYoKGZ8MCk9
PTApe289YjticmVha31lbHNle249Zn1yZXR1cm4gbnwwfWVsc2V7aWYoYT4+PjA+NDI5NDk2NzIz
MSl7bz0tMTticmVha31mPWErMTF8MDtnPWYmLTg7az1jWzI0NjFdfDA7aWYoKGt8MCk9PTApe289
ZzticmVha31yPS1nfDA7aT1mPj4+ODtkb3tpZigoaXwwKT09MCl7QT0wfWVsc2V7aWYoZz4+PjA+
MTY3NzcyMTUpe0E9MzE7YnJlYWt9Zj0oaSsxMDQ4MzIwfDApPj4+MTYmODtsPWk8PGY7aD0obCs1
MjAxOTJ8MCk+Pj4xNiY0O2o9bDw8aDtsPShqKzI0NTc2MHwwKT4+PjE2JjI7Qj0xNC0oaHxmfGwp
KyhqPDxsPj4+MTUpfDA7QT1nPj4+KChCKzd8MCk+Pj4wKSYxfEI8PDF9fXdoaWxlKDApO2k9Y1sx
MDE0NCsoQTw8Mik+PjJdfDA7TDc4ODpkb3tpZigoaXwwKT09MCl7Qz0wO0Q9cjtFPTB9ZWxzZXtp
ZigoQXwwKT09MzEpe0Y9MH1lbHNle0Y9MjUtKEE+Pj4xKXwwfWQ9MDttPXI7cD1pO3E9Zzw8Rjtl
PTA7d2hpbGUoMSl7Qj1jW3ArND4+Ml0mLTg7bD1CLWd8MDtpZihsPj4+MDxtPj4+MCl7aWYoKEJ8
MCk9PShnfDApKXtDPXA7RD1sO0U9cDticmVhayBMNzg4fWVsc2V7Rz1wO0g9bH19ZWxzZXtHPWQ7
SD1tfWw9Y1twKzIwPj4yXXwwO0I9Y1twKzE2KyhxPj4+MzE8PDIpPj4yXXwwO2o9KGx8MCk9PTB8
KGx8MCk9PShCfDApP2U6bDtpZigoQnwwKT09MCl7Qz1HO0Q9SDtFPWo7YnJlYWt9ZWxzZXtkPUc7
bT1IO3A9QjtxPXE8PDE7ZT1qfX19fXdoaWxlKDApO2lmKChFfDApPT0wJihDfDApPT0wKXtpPTI8
PEE7cj1rJihpfC1pKTtpZigocnwwKT09MCl7bz1nO2JyZWFrfWk9KHImLXIpLTF8MDtyPWk+Pj4x
MiYxNjtlPWk+Pj4ocj4+PjApO2k9ZT4+PjUmODtxPWU+Pj4oaT4+PjApO2U9cT4+PjImNDtwPXE+
Pj4oZT4+PjApO3E9cD4+PjEmMjttPXA+Pj4ocT4+PjApO3A9bT4+PjEmMTtJPWNbMTAxNDQrKChp
fHJ8ZXxxfHApKyhtPj4+KHA+Pj4wKSk8PDIpPj4yXXwwfWVsc2V7ST1FfWlmKChJfDApPT0wKXtK
PUQ7Sz1DfWVsc2V7cD1JO209RDtxPUM7d2hpbGUoMSl7ZT0oY1twKzQ+PjJdJi04KS1nfDA7cj1l
Pj4+MDxtPj4+MDtpPXI/ZTptO2U9cj9wOnE7cj1jW3ArMTY+PjJdfDA7aWYoKHJ8MCkhPTApe3A9
cjttPWk7cT1lO2NvbnRpbnVlfXI9Y1twKzIwPj4yXXwwO2lmKChyfDApPT0wKXtKPWk7Sz1lO2Jy
ZWFrfWVsc2V7cD1yO209aTtxPWV9fX1pZigoS3wwKT09MCl7bz1nO2JyZWFrfWlmKEo+Pj4wPj0o
KGNbMjQ2Ml18MCktZ3wwKT4+PjApe289ZzticmVha31xPUs7bT1jWzI0NjRdfDA7aWYocT4+PjA8
bT4+PjApe2JHKCk7cmV0dXJuIDB9cD1xK2d8MDtrPXA7aWYocT4+PjA+PXA+Pj4wKXtiRygpO3Jl
dHVybiAwfWU9Y1tLKzI0Pj4yXXwwO2k9Y1tLKzEyPj4yXXwwO2Rve2lmKChpfDApPT0oS3wwKSl7
cj1LKzIwfDA7ZD1jW3I+PjJdfDA7aWYoKGR8MCk9PTApe2o9SysxNnwwO0I9Y1tqPj4yXXwwO2lm
KChCfDApPT0wKXtMPTA7YnJlYWt9ZWxzZXtNPUI7Tj1qfX1lbHNle009ZDtOPXJ9d2hpbGUoMSl7
cj1NKzIwfDA7ZD1jW3I+PjJdfDA7aWYoKGR8MCkhPTApe009ZDtOPXI7Y29udGludWV9cj1NKzE2
fDA7ZD1jW3I+PjJdfDA7aWYoKGR8MCk9PTApe2JyZWFrfWVsc2V7TT1kO049cn19aWYoTj4+PjA8
bT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW04+PjJdPTA7TD1NO2JyZWFrfX1lbHNle3I9Y1tL
Kzg+PjJdfDA7aWYocj4+PjA8bT4+PjApe2JHKCk7cmV0dXJuIDB9ZD1yKzEyfDA7aWYoKGNbZD4+
Ml18MCkhPShLfDApKXtiRygpO3JldHVybiAwfWo9aSs4fDA7aWYoKGNbaj4+Ml18MCk9PShLfDAp
KXtjW2Q+PjJdPWk7Y1tqPj4yXT1yO0w9aTticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGls
ZSgwKTtMODM4OmRve2lmKChlfDApIT0wKXtpPUsrMjh8MDttPTEwMTQ0KyhjW2k+PjJdPDwyKXww
O2Rve2lmKChLfDApPT0oY1ttPj4yXXwwKSl7Y1ttPj4yXT1MO2lmKChMfDApIT0wKXticmVha31j
WzI0NjFdPWNbMjQ2MV0mfigxPDxjW2k+PjJdKTticmVhayBMODM4fWVsc2V7aWYoZT4+PjA8KGNb
MjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfXI9ZSsxNnwwO2lmKChjW3I+PjJdfDApPT0oS3ww
KSl7Y1tyPj4yXT1MfWVsc2V7Y1tlKzIwPj4yXT1MfWlmKChMfDApPT0wKXticmVhayBMODM4fX19
d2hpbGUoMCk7aWYoTD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWNbTCsyND4+
Ml09ZTtpPWNbSysxNj4+Ml18MDtkb3tpZigoaXwwKSE9MCl7aWYoaT4+PjA8KGNbMjQ2NF18MCk+
Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tMKzE2Pj4yXT1pO2NbaSsyND4+Ml09TDticmVha319
fXdoaWxlKDApO2k9Y1tLKzIwPj4yXXwwO2lmKChpfDApPT0wKXticmVha31pZihpPj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW0wrMjA+PjJdPWk7Y1tpKzI0Pj4yXT1M
O2JyZWFrfX19d2hpbGUoMCk7ZG97aWYoSj4+PjA8MTYpe2U9SitnfDA7Y1tLKzQ+PjJdPWV8Mztp
PXErKGUrNCl8MDtjW2k+PjJdPWNbaT4+Ml18MX1lbHNle2NbSys0Pj4yXT1nfDM7Y1txKyhnfDQp
Pj4yXT1KfDE7Y1txKyhKK2cpPj4yXT1KO2k9Sj4+PjM7aWYoSj4+PjA8MjU2KXtlPWk8PDE7bT05
ODgwKyhlPDwyKXwwO3I9Y1syNDYwXXwwO2o9MTw8aTtkb3tpZigociZqfDApPT0wKXtjWzI0NjBd
PXJ8ajtPPW07UD05ODgwKyhlKzI8PDIpfDB9ZWxzZXtpPTk4ODArKGUrMjw8Mil8MDtkPWNbaT4+
Ml18MDtpZihkPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXtPPWQ7UD1pO2JyZWFrfWJHKCk7cmV0dXJu
IDB9fXdoaWxlKDApO2NbUD4+Ml09aztjW08rMTI+PjJdPWs7Y1txKyhnKzgpPj4yXT1PO2NbcSso
ZysxMik+PjJdPW07YnJlYWt9ZT1wO2o9Sj4+Pjg7ZG97aWYoKGp8MCk9PTApe1E9MH1lbHNle2lm
KEo+Pj4wPjE2Nzc3MjE1KXtRPTMxO2JyZWFrfXI9KGorMTA0ODMyMHwwKT4+PjE2Jjg7aT1qPDxy
O2Q9KGkrNTIwMTkyfDApPj4+MTYmNDtCPWk8PGQ7aT0oQisyNDU3NjB8MCk+Pj4xNiYyO2w9MTQt
KGR8cnxpKSsoQjw8aT4+PjE1KXwwO1E9Sj4+PigobCs3fDApPj4+MCkmMXxsPDwxfX13aGlsZSgw
KTtqPTEwMTQ0KyhRPDwyKXwwO2NbcSsoZysyOCk+PjJdPVE7Y1txKyhnKzIwKT4+Ml09MDtjW3Er
KGcrMTYpPj4yXT0wO209Y1syNDYxXXwwO2w9MTw8UTtpZigobSZsfDApPT0wKXtjWzI0NjFdPW18
bDtjW2o+PjJdPWU7Y1txKyhnKzI0KT4+Ml09ajtjW3ErKGcrMTIpPj4yXT1lO2NbcSsoZys4KT4+
Ml09ZTticmVha31pZigoUXwwKT09MzEpe1I9MH1lbHNle1I9MjUtKFE+Pj4xKXwwfWw9Sjw8Ujtt
PWNbaj4+Ml18MDt3aGlsZSgxKXtpZigoY1ttKzQ+PjJdJi04fDApPT0oSnwwKSl7YnJlYWt9Uz1t
KzE2KyhsPj4+MzE8PDIpfDA7aj1jW1M+PjJdfDA7aWYoKGp8MCk9PTApe1Q9NjYxO2JyZWFrfWVs
c2V7bD1sPDwxO209an19aWYoKFR8MCk9PTY2MSl7aWYoUz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXti
RygpO3JldHVybiAwfWVsc2V7Y1tTPj4yXT1lO2NbcSsoZysyNCk+PjJdPW07Y1txKyhnKzEyKT4+
Ml09ZTtjW3ErKGcrOCk+PjJdPWU7YnJlYWt9fWw9bSs4fDA7aj1jW2w+PjJdfDA7aT1jWzI0NjRd
fDA7aWYobT4+PjA8aT4+PjApe2JHKCk7cmV0dXJuIDB9aWYoaj4+PjA8aT4+PjApe2JHKCk7cmV0
dXJuIDB9ZWxzZXtjW2orMTI+PjJdPWU7Y1tsPj4yXT1lO2NbcSsoZys4KT4+Ml09ajtjW3ErKGcr
MTIpPj4yXT1tO2NbcSsoZysyNCk+PjJdPTA7YnJlYWt9fX13aGlsZSgwKTtxPUsrOHwwO2lmKChx
fDApPT0wKXtvPWc7YnJlYWt9ZWxzZXtuPXF9cmV0dXJuIG58MH19d2hpbGUoMCk7Sz1jWzI0NjJd
fDA7aWYobz4+PjA8PUs+Pj4wKXtTPUstb3wwO0o9Y1syNDY1XXwwO2lmKFM+Pj4wPjE1KXtSPUo7
Y1syNDY1XT1SK287Y1syNDYyXT1TO2NbUisobys0KT4+Ml09U3wxO2NbUitLPj4yXT1TO2NbSis0
Pj4yXT1vfDN9ZWxzZXtjWzI0NjJdPTA7Y1syNDY1XT0wO2NbSis0Pj4yXT1LfDM7Uz1KKyhLKzQp
fDA7Y1tTPj4yXT1jW1M+PjJdfDF9bj1KKzh8MDtyZXR1cm4gbnwwfUo9Y1syNDYzXXwwO2lmKG8+
Pj4wPEo+Pj4wKXtTPUotb3wwO2NbMjQ2M109UztKPWNbMjQ2Nl18MDtLPUo7Y1syNDY2XT1LK287
Y1tLKyhvKzQpPj4yXT1TfDE7Y1tKKzQ+PjJdPW98MztuPUorOHwwO3JldHVybiBufDB9ZG97aWYo
KGNbMjQ1MF18MCk9PTApe0o9YkUoOCl8MDtpZigoSi0xJkp8MCk9PTApe2NbMjQ1Ml09SjtjWzI0
NTFdPUo7Y1syNDUzXT0tMTtjWzI0NTRdPS0xO2NbMjQ1NV09MDtjWzI1NzFdPTA7Y1syNDUwXT0o
YlYoMCl8MCkmLTE2XjE0MzE2NTU3Njg7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUo
MCk7Sj1vKzQ4fDA7Uz1jWzI0NTJdfDA7Sz1vKzQ3fDA7Uj1TK0t8MDtRPS1TfDA7Uz1SJlE7aWYo
Uz4+PjA8PW8+Pj4wKXtuPTA7cmV0dXJuIG58MH1PPWNbMjU3MF18MDtkb3tpZigoT3wwKSE9MCl7
UD1jWzI1NjhdfDA7TD1QK1N8MDtpZihMPj4+MDw9UD4+PjB8TD4+PjA+Tz4+PjApe249MH1lbHNl
e2JyZWFrfXJldHVybiBufDB9fXdoaWxlKDApO0w5MzA6ZG97aWYoKGNbMjU3MV0mNHwwKT09MCl7
Tz1jWzI0NjZdfDA7TDkzMjpkb3tpZigoT3wwKT09MCl7VD02OTF9ZWxzZXtMPU87UD0xMDI4ODt3
aGlsZSgxKXtVPVB8MDtNPWNbVT4+Ml18MDtpZihNPj4+MDw9TD4+PjApe1Y9UCs0fDA7aWYoKE0r
KGNbVj4+Ml18MCl8MCk+Pj4wPkw+Pj4wKXticmVha319TT1jW1ArOD4+Ml18MDtpZigoTXwwKT09
MCl7VD02OTE7YnJlYWsgTDkzMn1lbHNle1A9TX19aWYoKFB8MCk9PTApe1Q9NjkxO2JyZWFrfUw9
Ui0oY1syNDYzXXwwKSZRO2lmKEw+Pj4wPj0yMTQ3NDgzNjQ3KXtXPTA7YnJlYWt9bT1idihMfDAp
fDA7ZT0obXwwKT09KChjW1U+PjJdfDApKyhjW1Y+PjJdfDApfDApO1g9ZT9tOi0xO1k9ZT9MOjA7
Wj1tO189TDtUPTcwMH19d2hpbGUoMCk7ZG97aWYoKFR8MCk9PTY5MSl7Tz1idigwKXwwO2lmKChP
fDApPT0tMSl7Vz0wO2JyZWFrfWc9TztMPWNbMjQ1MV18MDttPUwtMXwwO2lmKChtJmd8MCk9PTAp
eyQ9U31lbHNleyQ9Uy1nKyhtK2cmLUwpfDB9TD1jWzI1NjhdfDA7Zz1MKyR8MDtpZighKCQ+Pj4w
Pm8+Pj4wJiQ+Pj4wPDIxNDc0ODM2NDcpKXtXPTA7YnJlYWt9bT1jWzI1NzBdfDA7aWYoKG18MCkh
PTApe2lmKGc+Pj4wPD1MPj4+MHxnPj4+MD5tPj4+MCl7Vz0wO2JyZWFrfX1tPWJ2KCR8MCl8MDtn
PShtfDApPT0oT3wwKTtYPWc/TzotMTtZPWc/JDowO1o9bTtfPSQ7VD03MDB9fXdoaWxlKDApO0w5
NTI6ZG97aWYoKFR8MCk9PTcwMCl7bT0tX3wwO2lmKChYfDApIT0tMSl7YWE9WTthYj1YO1Q9NzEx
O2JyZWFrIEw5MzB9ZG97aWYoKFp8MCkhPS0xJl8+Pj4wPDIxNDc0ODM2NDcmXz4+PjA8Sj4+PjAp
e2c9Y1syNDUyXXwwO089Sy1fK2cmLWc7aWYoTz4+PjA+PTIxNDc0ODM2NDcpe2FjPV87YnJlYWt9
aWYoKGJ2KE98MCl8MCk9PS0xKXtidihtfDApfDA7Vz1ZO2JyZWFrIEw5NTJ9ZWxzZXthYz1PK198
MDticmVha319ZWxzZXthYz1ffX13aGlsZSgwKTtpZigoWnwwKT09LTEpe1c9WX1lbHNle2FhPWFj
O2FiPVo7VD03MTE7YnJlYWsgTDkzMH19fXdoaWxlKDApO2NbMjU3MV09Y1syNTcxXXw0O2FkPVc7
VD03MDh9ZWxzZXthZD0wO1Q9NzA4fX13aGlsZSgwKTtkb3tpZigoVHwwKT09NzA4KXtpZihTPj4+
MD49MjE0NzQ4MzY0Nyl7YnJlYWt9Vz1idihTfDApfDA7Wj1idigwKXwwO2lmKCEoKFp8MCkhPS0x
JihXfDApIT0tMSZXPj4+MDxaPj4+MCkpe2JyZWFrfWFjPVotV3wwO1o9YWM+Pj4wPihvKzQwfDAp
Pj4+MDtZPVo/VzotMTtpZigoWXwwKSE9LTEpe2FhPVo/YWM6YWQ7YWI9WTtUPTcxMX19fXdoaWxl
KDApO2Rve2lmKChUfDApPT03MTEpe2FkPShjWzI1NjhdfDApK2FhfDA7Y1syNTY4XT1hZDtpZihh
ZD4+PjA+KGNbMjU2OV18MCk+Pj4wKXtjWzI1NjldPWFkfWFkPWNbMjQ2Nl18MDtMOTcyOmRve2lm
KChhZHwwKT09MCl7Uz1jWzI0NjRdfDA7aWYoKFN8MCk9PTB8YWI+Pj4wPFM+Pj4wKXtjWzI0NjRd
PWFifWNbMjU3Ml09YWI7Y1syNTczXT1hYTtjWzI1NzVdPTA7Y1syNDY5XT1jWzI0NTBdO2NbMjQ2
OF09LTE7Uz0wO2Rve1k9Uzw8MTthYz05ODgwKyhZPDwyKXwwO2NbOTg4MCsoWSszPDwyKT4+Ml09
YWM7Y1s5ODgwKyhZKzI8PDIpPj4yXT1hYztTPVMrMXwwO313aGlsZShTPj4+MDwzMik7Uz1hYis4
fDA7aWYoKFMmN3wwKT09MCl7YWU9MH1lbHNle2FlPS1TJjd9Uz1hYS00MC1hZXwwO2NbMjQ2Nl09
YWIrYWU7Y1syNDYzXT1TO2NbYWIrKGFlKzQpPj4yXT1TfDE7Y1thYisoYWEtMzYpPj4yXT00MDtj
WzI0NjddPWNbMjQ1NF19ZWxzZXtTPTEwMjg4O3doaWxlKDEpe2FmPWNbUz4+Ml18MDthZz1TKzR8
MDthaD1jW2FnPj4yXXwwO2lmKChhYnwwKT09KGFmK2FofDApKXtUPTcyMzticmVha31hYz1jW1Mr
OD4+Ml18MDtpZigoYWN8MCk9PTApe2JyZWFrfWVsc2V7Uz1hY319ZG97aWYoKFR8MCk9PTcyMyl7
aWYoKGNbUysxMj4+Ml0mOHwwKSE9MCl7YnJlYWt9YWM9YWQ7aWYoIShhYz4+PjA+PWFmPj4+MCZh
Yz4+PjA8YWI+Pj4wKSl7YnJlYWt9Y1thZz4+Ml09YWgrYWE7YWM9Y1syNDY2XXwwO1k9KGNbMjQ2
M118MCkrYWF8MDtaPWFjO1c9YWMrOHwwO2lmKChXJjd8MCk9PTApe2FpPTB9ZWxzZXthaT0tVyY3
fVc9WS1haXwwO2NbMjQ2Nl09WithaTtjWzI0NjNdPVc7Y1taKyhhaSs0KT4+Ml09V3wxO2NbWiso
WSs0KT4+Ml09NDA7Y1syNDY3XT1jWzI0NTRdO2JyZWFrIEw5NzJ9fXdoaWxlKDApO2lmKGFiPj4+
MDwoY1syNDY0XXwwKT4+PjApe2NbMjQ2NF09YWJ9Uz1hYithYXwwO1k9MTAyODg7d2hpbGUoMSl7
YWo9WXwwO2lmKChjW2FqPj4yXXwwKT09KFN8MCkpe1Q9NzMzO2JyZWFrfVo9Y1tZKzg+PjJdfDA7
aWYoKFp8MCk9PTApe2JyZWFrfWVsc2V7WT1afX1kb3tpZigoVHwwKT09NzMzKXtpZigoY1tZKzEy
Pj4yXSY4fDApIT0wKXticmVha31jW2FqPj4yXT1hYjtTPVkrNHwwO2NbUz4+Ml09KGNbUz4+Ml18
MCkrYWE7Uz1hYis4fDA7aWYoKFMmN3wwKT09MCl7YWs9MH1lbHNle2FrPS1TJjd9Uz1hYisoYWEr
OCl8MDtpZigoUyY3fDApPT0wKXthbD0wfWVsc2V7YWw9LVMmN31TPWFiKyhhbCthYSl8MDtaPVM7
Vz1haytvfDA7YWM9YWIrV3wwO189YWM7Sz1TLShhYithayktb3wwO2NbYWIrKGFrKzQpPj4yXT1v
fDM7ZG97aWYoKFp8MCk9PShjWzI0NjZdfDApKXtKPShjWzI0NjNdfDApK0t8MDtjWzI0NjNdPUo7
Y1syNDY2XT1fO2NbYWIrKFcrNCk+PjJdPUp8MX1lbHNle2lmKChafDApPT0oY1syNDY1XXwwKSl7
Sj0oY1syNDYyXXwwKStLfDA7Y1syNDYyXT1KO2NbMjQ2NV09XztjW2FiKyhXKzQpPj4yXT1KfDE7
Y1thYisoSitXKT4+Ml09SjticmVha31KPWFhKzR8MDtYPWNbYWIrKEorYWwpPj4yXXwwO2lmKChY
JjN8MCk9PTEpeyQ9WCYtODtWPVg+Pj4zO0wxMDE3OmRve2lmKFg+Pj4wPDI1Nil7VT1jW2FiKygo
YWx8OCkrYWEpPj4yXXwwO1E9Y1thYisoYWErMTIrYWwpPj4yXXwwO1I9OTg4MCsoVjw8MTw8Mil8
MDtkb3tpZigoVXwwKSE9KFJ8MCkpe2lmKFU+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1pZigoY1tVKzEyPj4yXXwwKT09KFp8MCkpe2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxl
KDApO2lmKChRfDApPT0oVXwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8Vik7YnJlYWt9ZG97aWYo
KFF8MCk9PShSfDApKXthbT1RKzh8MH1lbHNle2lmKFE+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KTtyZXR1cm4gMH1tPVErOHwwO2lmKChjW20+PjJdfDApPT0oWnwwKSl7YW09bTticmVha31iRygp
O3JldHVybiAwfX13aGlsZSgwKTtjW1UrMTI+PjJdPVE7Y1thbT4+Ml09VX1lbHNle1I9UzttPWNb
YWIrKChhbHwyNCkrYWEpPj4yXXwwO1A9Y1thYisoYWErMTIrYWwpPj4yXXwwO2Rve2lmKChQfDAp
PT0oUnwwKSl7Tz1hbHwxNjtnPWFiKyhKK08pfDA7TD1jW2c+PjJdfDA7aWYoKEx8MCk9PTApe2U9
YWIrKE8rYWEpfDA7Tz1jW2U+PjJdfDA7aWYoKE98MCk9PTApe2FuPTA7YnJlYWt9ZWxzZXthbz1P
O2FwPWV9fWVsc2V7YW89TDthcD1nfXdoaWxlKDEpe2c9YW8rMjB8MDtMPWNbZz4+Ml18MDtpZigo
THwwKSE9MCl7YW89TDthcD1nO2NvbnRpbnVlfWc9YW8rMTZ8MDtMPWNbZz4+Ml18MDtpZigoTHww
KT09MCl7YnJlYWt9ZWxzZXthbz1MO2FwPWd9fWlmKGFwPj4+MDwoY1syNDY0XXwwKT4+PjApe2JH
KCk7cmV0dXJuIDB9ZWxzZXtjW2FwPj4yXT0wO2FuPWFvO2JyZWFrfX1lbHNle2c9Y1thYisoKGFs
fDgpK2FhKT4+Ml18MDtpZihnPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9TD1n
KzEyfDA7aWYoKGNbTD4+Ml18MCkhPShSfDApKXtiRygpO3JldHVybiAwfWU9UCs4fDA7aWYoKGNb
ZT4+Ml18MCk9PShSfDApKXtjW0w+PjJdPVA7Y1tlPj4yXT1nO2FuPVA7YnJlYWt9ZWxzZXtiRygp
O3JldHVybiAwfX19d2hpbGUoMCk7aWYoKG18MCk9PTApe2JyZWFrfVA9YWIrKGFhKzI4K2FsKXww
O1U9MTAxNDQrKGNbUD4+Ml08PDIpfDA7ZG97aWYoKFJ8MCk9PShjW1U+PjJdfDApKXtjW1U+PjJd
PWFuO2lmKChhbnwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1tQPj4yXSk7YnJl
YWsgTDEwMTd9ZWxzZXtpZihtPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9UT1t
KzE2fDA7aWYoKGNbUT4+Ml18MCk9PShSfDApKXtjW1E+PjJdPWFufWVsc2V7Y1ttKzIwPj4yXT1h
bn1pZigoYW58MCk9PTApe2JyZWFrIEwxMDE3fX19d2hpbGUoMCk7aWYoYW4+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKTtyZXR1cm4gMH1jW2FuKzI0Pj4yXT1tO1I9YWx8MTY7UD1jW2FiKyhSK2Fh
KT4+Ml18MDtkb3tpZigoUHwwKSE9MCl7aWYoUD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3Jl
dHVybiAwfWVsc2V7Y1thbisxNj4+Ml09UDtjW1ArMjQ+PjJdPWFuO2JyZWFrfX19d2hpbGUoMCk7
UD1jW2FiKyhKK1IpPj4yXXwwO2lmKChQfDApPT0wKXticmVha31pZihQPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW2FuKzIwPj4yXT1QO2NbUCsyND4+Ml09YW47YnJl
YWt9fX13aGlsZSgwKTthcT1hYisoKCR8YWwpK2FhKXwwO2FyPSQrS3wwfWVsc2V7YXE9Wjthcj1L
fUo9YXErNHwwO2NbSj4+Ml09Y1tKPj4yXSYtMjtjW2FiKyhXKzQpPj4yXT1hcnwxO2NbYWIrKGFy
K1cpPj4yXT1hcjtKPWFyPj4+MztpZihhcj4+PjA8MjU2KXtWPUo8PDE7WD05ODgwKyhWPDwyKXww
O1A9Y1syNDYwXXwwO209MTw8Sjtkb3tpZigoUCZtfDApPT0wKXtjWzI0NjBdPVB8bTthcz1YO2F0
PTk4ODArKFYrMjw8Mil8MH1lbHNle0o9OTg4MCsoVisyPDwyKXwwO1U9Y1tKPj4yXXwwO2lmKFU+
Pj4wPj0oY1syNDY0XXwwKT4+PjApe2FzPVU7YXQ9SjticmVha31iRygpO3JldHVybiAwfX13aGls
ZSgwKTtjW2F0Pj4yXT1fO2NbYXMrMTI+PjJdPV87Y1thYisoVys4KT4+Ml09YXM7Y1thYisoVysx
Mik+PjJdPVg7YnJlYWt9Vj1hYzttPWFyPj4+ODtkb3tpZigobXwwKT09MCl7YXU9MH1lbHNle2lm
KGFyPj4+MD4xNjc3NzIxNSl7YXU9MzE7YnJlYWt9UD0obSsxMDQ4MzIwfDApPj4+MTYmODskPW08
PFA7Sj0oJCs1MjAxOTJ8MCk+Pj4xNiY0O1U9JDw8SjskPShVKzI0NTc2MHwwKT4+PjE2JjI7UT0x
NC0oSnxQfCQpKyhVPDwkPj4+MTUpfDA7YXU9YXI+Pj4oKFErN3wwKT4+PjApJjF8UTw8MX19d2hp
bGUoMCk7bT0xMDE0NCsoYXU8PDIpfDA7Y1thYisoVysyOCk+PjJdPWF1O2NbYWIrKFcrMjApPj4y
XT0wO2NbYWIrKFcrMTYpPj4yXT0wO1g9Y1syNDYxXXwwO1E9MTw8YXU7aWYoKFgmUXwwKT09MCl7
Y1syNDYxXT1YfFE7Y1ttPj4yXT1WO2NbYWIrKFcrMjQpPj4yXT1tO2NbYWIrKFcrMTIpPj4yXT1W
O2NbYWIrKFcrOCk+PjJdPVY7YnJlYWt9aWYoKGF1fDApPT0zMSl7YXY9MH1lbHNle2F2PTI1LShh
dT4+PjEpfDB9UT1hcjw8YXY7WD1jW20+PjJdfDA7d2hpbGUoMSl7aWYoKGNbWCs0Pj4yXSYtOHww
KT09KGFyfDApKXticmVha31hdz1YKzE2KyhRPj4+MzE8PDIpfDA7bT1jW2F3Pj4yXXwwO2lmKCht
fDApPT0wKXtUPTgwNjticmVha31lbHNle1E9UTw8MTtYPW19fWlmKChUfDApPT04MDYpe2lmKGF3
Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW2F3Pj4yXT1WO2NbYWIr
KFcrMjQpPj4yXT1YO2NbYWIrKFcrMTIpPj4yXT1WO2NbYWIrKFcrOCk+PjJdPVY7YnJlYWt9fVE9
WCs4fDA7bT1jW1E+PjJdfDA7JD1jWzI0NjRdfDA7aWYoWD4+PjA8JD4+PjApe2JHKCk7cmV0dXJu
IDB9aWYobT4+PjA8JD4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW20rMTI+PjJdPVY7Y1tRPj4y
XT1WO2NbYWIrKFcrOCk+PjJdPW07Y1thYisoVysxMik+PjJdPVg7Y1thYisoVysyNCk+PjJdPTA7
YnJlYWt9fX13aGlsZSgwKTtuPWFiKyhha3w4KXwwO3JldHVybiBufDB9fXdoaWxlKDApO1k9YWQ7
Vz0xMDI4ODt3aGlsZSgxKXtheD1jW1c+PjJdfDA7aWYoYXg+Pj4wPD1ZPj4+MCl7YXk9Y1tXKzQ+
PjJdfDA7YXo9YXgrYXl8MDtpZihhej4+PjA+WT4+PjApe2JyZWFrfX1XPWNbVys4Pj4yXXwwfVc9
YXgrKGF5LTM5KXwwO2lmKChXJjd8MCk9PTApe2FBPTB9ZWxzZXthQT0tVyY3fVc9YXgrKGF5LTQ3
K2FBKXwwO2FjPVc+Pj4wPChhZCsxNnwwKT4+PjA/WTpXO1c9YWMrOHwwO189YWIrOHwwO2lmKChf
Jjd8MCk9PTApe2FCPTB9ZWxzZXthQj0tXyY3fV89YWEtNDAtYUJ8MDtjWzI0NjZdPWFiK2FCO2Nb
MjQ2M109XztjW2FiKyhhQis0KT4+Ml09X3wxO2NbYWIrKGFhLTM2KT4+Ml09NDA7Y1syNDY3XT1j
WzI0NTRdO2NbYWMrND4+Ml09Mjc7Y1tXPj4yXT1jWzI1NzJdO2NbVys0Pj4yXT1jWzEwMjkyPj4y
XTtjW1crOD4+Ml09Y1sxMDI5Nj4+Ml07Y1tXKzEyPj4yXT1jWzEwMzAwPj4yXTtjWzI1NzJdPWFi
O2NbMjU3M109YWE7Y1syNTc1XT0wO2NbMjU3NF09VztXPWFjKzI4fDA7Y1tXPj4yXT03O2lmKChh
YyszMnwwKT4+PjA8YXo+Pj4wKXtfPVc7d2hpbGUoMSl7Vz1fKzR8MDtjW1c+PjJdPTc7aWYoKF8r
OHwwKT4+PjA8YXo+Pj4wKXtfPVd9ZWxzZXticmVha319fWlmKChhY3wwKT09KFl8MCkpe2JyZWFr
fV89YWMtYWR8MDtXPVkrKF8rNCl8MDtjW1c+PjJdPWNbVz4+Ml0mLTI7Y1thZCs0Pj4yXT1ffDE7
Y1tZK18+PjJdPV87Vz1fPj4+MztpZihfPj4+MDwyNTYpe0s9Vzw8MTtaPTk4ODArKEs8PDIpfDA7
Uz1jWzI0NjBdfDA7bT0xPDxXO2Rve2lmKChTJm18MCk9PTApe2NbMjQ2MF09U3xtO2FDPVo7YUQ9
OTg4MCsoSysyPDwyKXwwfWVsc2V7Vz05ODgwKyhLKzI8PDIpfDA7UT1jW1c+PjJdfDA7aWYoUT4+
PjA+PShjWzI0NjRdfDApPj4+MCl7YUM9UTthRD1XO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxl
KDApO2NbYUQ+PjJdPWFkO2NbYUMrMTI+PjJdPWFkO2NbYWQrOD4+Ml09YUM7Y1thZCsxMj4+Ml09
WjticmVha31LPWFkO209Xz4+Pjg7ZG97aWYoKG18MCk9PTApe2FFPTB9ZWxzZXtpZihfPj4+MD4x
Njc3NzIxNSl7YUU9MzE7YnJlYWt9Uz0obSsxMDQ4MzIwfDApPj4+MTYmODtZPW08PFM7YWM9KFkr
NTIwMTkyfDApPj4+MTYmNDtXPVk8PGFjO1k9KFcrMjQ1NzYwfDApPj4+MTYmMjtRPTE0LShhY3xT
fFkpKyhXPDxZPj4+MTUpfDA7YUU9Xz4+PigoUSs3fDApPj4+MCkmMXxRPDwxfX13aGlsZSgwKTtt
PTEwMTQ0KyhhRTw8Mil8MDtjW2FkKzI4Pj4yXT1hRTtjW2FkKzIwPj4yXT0wO2NbYWQrMTY+PjJd
PTA7Wj1jWzI0NjFdfDA7UT0xPDxhRTtpZigoWiZRfDApPT0wKXtjWzI0NjFdPVp8UTtjW20+PjJd
PUs7Y1thZCsyND4+Ml09bTtjW2FkKzEyPj4yXT1hZDtjW2FkKzg+PjJdPWFkO2JyZWFrfWlmKChh
RXwwKT09MzEpe2FGPTB9ZWxzZXthRj0yNS0oYUU+Pj4xKXwwfVE9Xzw8YUY7Wj1jW20+PjJdfDA7
d2hpbGUoMSl7aWYoKGNbWis0Pj4yXSYtOHwwKT09KF98MCkpe2JyZWFrfWFHPVorMTYrKFE+Pj4z
MTw8Mil8MDttPWNbYUc+PjJdfDA7aWYoKG18MCk9PTApe1Q9ODQxO2JyZWFrfWVsc2V7UT1RPDwx
O1o9bX19aWYoKFR8MCk9PTg0MSl7aWYoYUc+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1lbHNle2NbYUc+PjJdPUs7Y1thZCsyND4+Ml09WjtjW2FkKzEyPj4yXT1hZDtjW2FkKzg+
PjJdPWFkO2JyZWFrfX1RPVorOHwwO189Y1tRPj4yXXwwO209Y1syNDY0XXwwO2lmKFo+Pj4wPG0+
Pj4wKXtiRygpO3JldHVybiAwfWlmKF8+Pj4wPG0+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tf
KzEyPj4yXT1LO2NbUT4+Ml09SztjW2FkKzg+PjJdPV87Y1thZCsxMj4+Ml09WjtjW2FkKzI0Pj4y
XT0wO2JyZWFrfX19d2hpbGUoMCk7YWQ9Y1syNDYzXXwwO2lmKGFkPj4+MDw9bz4+PjApe2JyZWFr
fV89YWQtb3wwO2NbMjQ2M109XzthZD1jWzI0NjZdfDA7UT1hZDtjWzI0NjZdPVErbztjW1ErKG8r
NCk+PjJdPV98MTtjW2FkKzQ+PjJdPW98MztuPWFkKzh8MDtyZXR1cm4gbnwwfX13aGlsZSgwKTtj
WyhidygpfDApPj4yXT0xMjtuPTA7cmV0dXJuIG58MH1mdW5jdGlvbiBrSyhhKXthPWF8MDt2YXIg
Yj0wLGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9
MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTA7aWYoKGF8MCk9PTApe3Jl
dHVybn1iPWEtOHwwO2Q9YjtlPWNbMjQ2NF18MDtpZihiPj4+MDxlPj4+MCl7YkcoKX1mPWNbYS00
Pj4yXXwwO2c9ZiYzO2lmKChnfDApPT0xKXtiRygpfWg9ZiYtODtpPWErKGgtOCl8MDtqPWk7TDEx
ODk6ZG97aWYoKGYmMXwwKT09MCl7az1jW2I+PjJdfDA7aWYoKGd8MCk9PTApe3JldHVybn1sPS04
LWt8MDttPWErbHwwO249bTtvPWsraHwwO2lmKG0+Pj4wPGU+Pj4wKXtiRygpfWlmKChufDApPT0o
Y1syNDY1XXwwKSl7cD1hKyhoLTQpfDA7aWYoKGNbcD4+Ml0mM3wwKSE9Myl7cT1uO3I9bzticmVh
a31jWzI0NjJdPW87Y1twPj4yXT1jW3A+PjJdJi0yO2NbYSsobCs0KT4+Ml09b3wxO2NbaT4+Ml09
bztyZXR1cm59cD1rPj4+MztpZihrPj4+MDwyNTYpe2s9Y1thKyhsKzgpPj4yXXwwO3M9Y1thKyhs
KzEyKT4+Ml18MDt0PTk4ODArKHA8PDE8PDIpfDA7ZG97aWYoKGt8MCkhPSh0fDApKXtpZihrPj4+
MDxlPj4+MCl7YkcoKX1pZigoY1trKzEyPj4yXXwwKT09KG58MCkpe2JyZWFrfWJHKCl9fXdoaWxl
KDApO2lmKChzfDApPT0oa3wwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8cCk7cT1uO3I9bzticmVh
a31kb3tpZigoc3wwKT09KHR8MCkpe3U9cys4fDB9ZWxzZXtpZihzPj4+MDxlPj4+MCl7YkcoKX12
PXMrOHwwO2lmKChjW3Y+PjJdfDApPT0obnwwKSl7dT12O2JyZWFrfWJHKCl9fXdoaWxlKDApO2Nb
aysxMj4+Ml09cztjW3U+PjJdPWs7cT1uO3I9bzticmVha310PW07cD1jW2ErKGwrMjQpPj4yXXww
O3Y9Y1thKyhsKzEyKT4+Ml18MDtkb3tpZigodnwwKT09KHR8MCkpe3c9YSsobCsyMCl8MDt4PWNb
dz4+Ml18MDtpZigoeHwwKT09MCl7eT1hKyhsKzE2KXwwO3o9Y1t5Pj4yXXwwO2lmKCh6fDApPT0w
KXtBPTA7YnJlYWt9ZWxzZXtCPXo7Qz15fX1lbHNle0I9eDtDPXd9d2hpbGUoMSl7dz1CKzIwfDA7
eD1jW3c+PjJdfDA7aWYoKHh8MCkhPTApe0I9eDtDPXc7Y29udGludWV9dz1CKzE2fDA7eD1jW3c+
PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfWVsc2V7Qj14O0M9d319aWYoQz4+PjA8ZT4+PjApe2JH
KCl9ZWxzZXtjW0M+PjJdPTA7QT1CO2JyZWFrfX1lbHNle3c9Y1thKyhsKzgpPj4yXXwwO2lmKHc+
Pj4wPGU+Pj4wKXtiRygpfXg9dysxMnwwO2lmKChjW3g+PjJdfDApIT0odHwwKSl7YkcoKX15PXYr
OHwwO2lmKChjW3k+PjJdfDApPT0odHwwKSl7Y1t4Pj4yXT12O2NbeT4+Ml09dztBPXY7YnJlYWt9
ZWxzZXtiRygpfX19d2hpbGUoMCk7aWYoKHB8MCk9PTApe3E9bjtyPW87YnJlYWt9dj1hKyhsKzI4
KXwwO209MTAxNDQrKGNbdj4+Ml08PDIpfDA7ZG97aWYoKHR8MCk9PShjW20+PjJdfDApKXtjW20+
PjJdPUE7aWYoKEF8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbdj4+Ml0pO3E9
bjtyPW87YnJlYWsgTDExODl9ZWxzZXtpZihwPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9az1w
KzE2fDA7aWYoKGNbaz4+Ml18MCk9PSh0fDApKXtjW2s+PjJdPUF9ZWxzZXtjW3ArMjA+PjJdPUF9
aWYoKEF8MCk9PTApe3E9bjtyPW87YnJlYWsgTDExODl9fX13aGlsZSgwKTtpZihBPj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCl9Y1tBKzI0Pj4yXT1wO3Q9Y1thKyhsKzE2KT4+Ml18MDtkb3tpZigo
dHwwKSE9MCl7aWYodD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tBKzE2Pj4yXT10
O2NbdCsyND4+Ml09QTticmVha319fXdoaWxlKDApO3Q9Y1thKyhsKzIwKT4+Ml18MDtpZigodHww
KT09MCl7cT1uO3I9bzticmVha31pZih0Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtj
W0ErMjA+PjJdPXQ7Y1t0KzI0Pj4yXT1BO3E9bjtyPW87YnJlYWt9fWVsc2V7cT1kO3I9aH19d2hp
bGUoMCk7ZD1xO2lmKGQ+Pj4wPj1pPj4+MCl7YkcoKX1BPWErKGgtNCl8MDtlPWNbQT4+Ml18MDtp
ZigoZSYxfDApPT0wKXtiRygpfWRve2lmKChlJjJ8MCk9PTApe2lmKChqfDApPT0oY1syNDY2XXww
KSl7Qj0oY1syNDYzXXwwKStyfDA7Y1syNDYzXT1CO2NbMjQ2Nl09cTtjW3ErND4+Ml09QnwxO2lm
KChxfDApIT0oY1syNDY1XXwwKSl7cmV0dXJufWNbMjQ2NV09MDtjWzI0NjJdPTA7cmV0dXJufWlm
KChqfDApPT0oY1syNDY1XXwwKSl7Qj0oY1syNDYyXXwwKStyfDA7Y1syNDYyXT1CO2NbMjQ2NV09
cTtjW3ErND4+Ml09QnwxO2NbZCtCPj4yXT1CO3JldHVybn1CPShlJi04KStyfDA7Qz1lPj4+MztM
MTI5Mjpkb3tpZihlPj4+MDwyNTYpe3U9Y1thK2g+PjJdfDA7Zz1jW2ErKGh8NCk+PjJdfDA7Yj05
ODgwKyhDPDwxPDwyKXwwO2Rve2lmKCh1fDApIT0oYnwwKSl7aWYodT4+PjA8KGNbMjQ2NF18MCk+
Pj4wKXtiRygpfWlmKChjW3UrMTI+PjJdfDApPT0oanwwKSl7YnJlYWt9YkcoKX19d2hpbGUoMCk7
aWYoKGd8MCk9PSh1fDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxDKTticmVha31kb3tpZigoZ3ww
KT09KGJ8MCkpe0Q9Zys4fDB9ZWxzZXtpZihnPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Zj1n
Kzh8MDtpZigoY1tmPj4yXXwwKT09KGp8MCkpe0Q9ZjticmVha31iRygpfX13aGlsZSgwKTtjW3Ur
MTI+PjJdPWc7Y1tEPj4yXT11fWVsc2V7Yj1pO2Y9Y1thKyhoKzE2KT4+Ml18MDt0PWNbYSsoaHw0
KT4+Ml18MDtkb3tpZigodHwwKT09KGJ8MCkpe3A9YSsoaCsxMil8MDt2PWNbcD4+Ml18MDtpZigo
dnwwKT09MCl7bT1hKyhoKzgpfDA7az1jW20+PjJdfDA7aWYoKGt8MCk9PTApe0U9MDticmVha31l
bHNle0Y9aztHPW19fWVsc2V7Rj12O0c9cH13aGlsZSgxKXtwPUYrMjB8MDt2PWNbcD4+Ml18MDtp
ZigodnwwKSE9MCl7Rj12O0c9cDtjb250aW51ZX1wPUYrMTZ8MDt2PWNbcD4+Ml18MDtpZigodnww
KT09MCl7YnJlYWt9ZWxzZXtGPXY7Rz1wfX1pZihHPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9
ZWxzZXtjW0c+PjJdPTA7RT1GO2JyZWFrfX1lbHNle3A9Y1thK2g+PjJdfDA7aWYocD4+PjA8KGNb
MjQ2NF18MCk+Pj4wKXtiRygpfXY9cCsxMnwwO2lmKChjW3Y+PjJdfDApIT0oYnwwKSl7YkcoKX1t
PXQrOHwwO2lmKChjW20+PjJdfDApPT0oYnwwKSl7Y1t2Pj4yXT10O2NbbT4+Ml09cDtFPXQ7YnJl
YWt9ZWxzZXtiRygpfX19d2hpbGUoMCk7aWYoKGZ8MCk9PTApe2JyZWFrfXQ9YSsoaCsyMCl8MDt1
PTEwMTQ0KyhjW3Q+PjJdPDwyKXwwO2Rve2lmKChifDApPT0oY1t1Pj4yXXwwKSl7Y1t1Pj4yXT1F
O2lmKChFfDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Q+PjJdKTticmVhayBM
MTI5Mn1lbHNle2lmKGY+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1nPWYrMTZ8MDtpZigoY1tn
Pj4yXXwwKT09KGJ8MCkpe2NbZz4+Ml09RX1lbHNle2NbZisyMD4+Ml09RX1pZigoRXwwKT09MCl7
YnJlYWsgTDEyOTJ9fX13aGlsZSgwKTtpZihFPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Y1tF
KzI0Pj4yXT1mO2I9Y1thKyhoKzgpPj4yXXwwO2Rve2lmKChifDApIT0wKXtpZihiPj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW0UrMTY+PjJdPWI7Y1tiKzI0Pj4yXT1FO2JyZWFrfX19
d2hpbGUoMCk7Yj1jW2ErKGgrMTIpPj4yXXwwO2lmKChifDApPT0wKXticmVha31pZihiPj4+MDwo
Y1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW0UrMjA+PjJdPWI7Y1tiKzI0Pj4yXT1FO2JyZWFr
fX19d2hpbGUoMCk7Y1txKzQ+PjJdPUJ8MTtjW2QrQj4+Ml09QjtpZigocXwwKSE9KGNbMjQ2NV18
MCkpe0g9QjticmVha31jWzI0NjJdPUI7cmV0dXJufWVsc2V7Y1tBPj4yXT1lJi0yO2NbcSs0Pj4y
XT1yfDE7Y1tkK3I+PjJdPXI7SD1yfX13aGlsZSgwKTtyPUg+Pj4zO2lmKEg+Pj4wPDI1Nil7ZD1y
PDwxO2U9OTg4MCsoZDw8Mil8MDtBPWNbMjQ2MF18MDtFPTE8PHI7ZG97aWYoKEEmRXwwKT09MCl7
Y1syNDYwXT1BfEU7ST1lO0o9OTg4MCsoZCsyPDwyKXwwfWVsc2V7cj05ODgwKyhkKzI8PDIpfDA7
aD1jW3I+PjJdfDA7aWYoaD4+PjA+PShjWzI0NjRdfDApPj4+MCl7ST1oO0o9cjticmVha31iRygp
fX13aGlsZSgwKTtjW0o+PjJdPXE7Y1tJKzEyPj4yXT1xO2NbcSs4Pj4yXT1JO2NbcSsxMj4+Ml09
ZTtyZXR1cm59ZT1xO0k9SD4+Pjg7ZG97aWYoKEl8MCk9PTApe0s9MH1lbHNle2lmKEg+Pj4wPjE2
Nzc3MjE1KXtLPTMxO2JyZWFrfUo9KEkrMTA0ODMyMHwwKT4+PjE2Jjg7ZD1JPDxKO0U9KGQrNTIw
MTkyfDApPj4+MTYmNDtBPWQ8PEU7ZD0oQSsyNDU3NjB8MCk+Pj4xNiYyO3I9MTQtKEV8SnxkKSso
QTw8ZD4+PjE1KXwwO0s9SD4+Pigocis3fDApPj4+MCkmMXxyPDwxfX13aGlsZSgwKTtJPTEwMTQ0
KyhLPDwyKXwwO2NbcSsyOD4+Ml09SztjW3ErMjA+PjJdPTA7Y1txKzE2Pj4yXT0wO3I9Y1syNDYx
XXwwO2Q9MTw8Sztkb3tpZigociZkfDApPT0wKXtjWzI0NjFdPXJ8ZDtjW0k+PjJdPWU7Y1txKzI0
Pj4yXT1JO2NbcSsxMj4+Ml09cTtjW3ErOD4+Ml09cX1lbHNle2lmKChLfDApPT0zMSl7TD0wfWVs
c2V7TD0yNS0oSz4+PjEpfDB9QT1IPDxMO0o9Y1tJPj4yXXwwO3doaWxlKDEpe2lmKChjW0orND4+
Ml0mLTh8MCk9PShIfDApKXticmVha31NPUorMTYrKEE+Pj4zMTw8Mil8MDtFPWNbTT4+Ml18MDtp
ZigoRXwwKT09MCl7Tj0xMDE4O2JyZWFrfWVsc2V7QT1BPDwxO0o9RX19aWYoKE58MCk9PTEwMTgp
e2lmKE0+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbTT4+Ml09ZTtjW3ErMjQ+PjJd
PUo7Y1txKzEyPj4yXT1xO2NbcSs4Pj4yXT1xO2JyZWFrfX1BPUorOHwwO0I9Y1tBPj4yXXwwO0U9
Y1syNDY0XXwwO2lmKEo+Pj4wPEU+Pj4wKXtiRygpfWlmKEI+Pj4wPEU+Pj4wKXtiRygpfWVsc2V7
Y1tCKzEyPj4yXT1lO2NbQT4+Ml09ZTtjW3ErOD4+Ml09QjtjW3ErMTI+PjJdPUo7Y1txKzI0Pj4y
XT0wO2JyZWFrfX19d2hpbGUoMCk7cT0oY1syNDY4XXwwKS0xfDA7Y1syNDY4XT1xO2lmKChxfDAp
PT0wKXtPPTEwMjk2fWVsc2V7cmV0dXJufXdoaWxlKDEpe3E9Y1tPPj4yXXwwO2lmKChxfDApPT0w
KXticmVha31lbHNle089cSs4fDB9fWNbMjQ2OF09LTE7cmV0dXJufWZ1bmN0aW9uIGtMKGEsYil7
YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MDtpZigoYXwwKT09MCl7ZD1rSihiKXwwO3Jl
dHVybiBkfDB9aWYoYj4+PjA+NDI5NDk2NzIzMSl7Y1soYncoKXwwKT4+Ml09MTI7ZD0wO3JldHVy
biBkfDB9aWYoYj4+PjA8MTEpe2U9MTZ9ZWxzZXtlPWIrMTEmLTh9Zj1rTShhLTh8MCxlKXwwO2lm
KChmfDApIT0wKXtkPWYrOHwwO3JldHVybiBkfDB9Zj1rSihiKXwwO2lmKChmfDApPT0wKXtkPTA7
cmV0dXJuIGR8MH1lPWNbYS00Pj4yXXwwO2c9KGUmLTgpLSgoZSYzfDApPT0wPzg6NCl8MDtlPWc+
Pj4wPGI+Pj4wP2c6YjtrWShmfDAsYXwwLGUpfDA7a0soYSk7ZD1mO3JldHVybiBkfDB9ZnVuY3Rp
b24ga00oYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTA7ZD1hKzR8MDtlPWNbZD4+Ml18MDtmPWUmLTg7Zz1hO2g9ZytmfDA7aT1oO2o9Y1sy
NDY0XXwwO2lmKGc+Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAwfWs9ZSYzO2lmKCEoKGt8MCkhPTEm
Zz4+PjA8aD4+PjApKXtiRygpO3JldHVybiAwfWw9ZysoZnw0KXwwO209Y1tsPj4yXXwwO2lmKCht
JjF8MCk9PTApe2JHKCk7cmV0dXJuIDB9aWYoKGt8MCk9PTApe2lmKGI+Pj4wPDI1Nil7bj0wO3Jl
dHVybiBufDB9ZG97aWYoZj4+PjA+PShiKzR8MCk+Pj4wKXtpZigoZi1ifDApPj4+MD5jWzI0NTJd
PDwxPj4+MCl7YnJlYWt9ZWxzZXtuPWF9cmV0dXJuIG58MH19d2hpbGUoMCk7bj0wO3JldHVybiBu
fDB9aWYoZj4+PjA+PWI+Pj4wKXtrPWYtYnwwO2lmKGs+Pj4wPD0xNSl7bj1hO3JldHVybiBufDB9
Y1tkPj4yXT1lJjF8YnwyO2NbZysoYis0KT4+Ml09a3wzO2NbbD4+Ml09Y1tsPj4yXXwxO2tOKGcr
YnwwLGspO249YTtyZXR1cm4gbnwwfWlmKChpfDApPT0oY1syNDY2XXwwKSl7az0oY1syNDYzXXww
KStmfDA7aWYoaz4+PjA8PWI+Pj4wKXtuPTA7cmV0dXJuIG58MH1sPWstYnwwO2NbZD4+Ml09ZSYx
fGJ8MjtjW2crKGIrNCk+PjJdPWx8MTtjWzI0NjZdPWcrYjtjWzI0NjNdPWw7bj1hO3JldHVybiBu
fDB9aWYoKGl8MCk9PShjWzI0NjVdfDApKXtsPShjWzI0NjJdfDApK2Z8MDtpZihsPj4+MDxiPj4+
MCl7bj0wO3JldHVybiBufDB9az1sLWJ8MDtpZihrPj4+MD4xNSl7Y1tkPj4yXT1lJjF8YnwyO2Nb
ZysoYis0KT4+Ml09a3wxO2NbZytsPj4yXT1rO289ZysobCs0KXwwO2Nbbz4+Ml09Y1tvPj4yXSYt
MjtwPWcrYnwwO3E9a31lbHNle2NbZD4+Ml09ZSYxfGx8MjtlPWcrKGwrNCl8MDtjW2U+PjJdPWNb
ZT4+Ml18MTtwPTA7cT0wfWNbMjQ2Ml09cTtjWzI0NjVdPXA7bj1hO3JldHVybiBufDB9aWYoKG0m
MnwwKSE9MCl7bj0wO3JldHVybiBufDB9cD0obSYtOCkrZnwwO2lmKHA+Pj4wPGI+Pj4wKXtuPTA7
cmV0dXJuIG58MH1xPXAtYnwwO2U9bT4+PjM7TDE0Nzg6ZG97aWYobT4+PjA8MjU2KXtsPWNbZyso
Zis4KT4+Ml18MDtrPWNbZysoZisxMik+PjJdfDA7bz05ODgwKyhlPDwxPDwyKXwwO2Rve2lmKChs
fDApIT0ob3wwKSl7aWYobD4+PjA8aj4+PjApe2JHKCk7cmV0dXJuIDB9aWYoKGNbbCsxMj4+Ml18
MCk9PShpfDApKXticmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtpZigoa3wwKT09KGx8MCkp
e2NbMjQ2MF09Y1syNDYwXSZ+KDE8PGUpO2JyZWFrfWRve2lmKChrfDApPT0ob3wwKSl7cj1rKzh8
MH1lbHNle2lmKGs+Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAwfXM9ays4fDA7aWYoKGNbcz4+Ml18
MCk9PShpfDApKXtyPXM7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7Y1tsKzEyPj4yXT1r
O2Nbcj4+Ml09bH1lbHNle289aDtzPWNbZysoZisyNCk+PjJdfDA7dD1jW2crKGYrMTIpPj4yXXww
O2Rve2lmKCh0fDApPT0ob3wwKSl7dT1nKyhmKzIwKXwwO3Y9Y1t1Pj4yXXwwO2lmKCh2fDApPT0w
KXt3PWcrKGYrMTYpfDA7eD1jW3c+PjJdfDA7aWYoKHh8MCk9PTApe3k9MDticmVha31lbHNle3o9
eDtBPXd9fWVsc2V7ej12O0E9dX13aGlsZSgxKXt1PXorMjB8MDt2PWNbdT4+Ml18MDtpZigodnww
KSE9MCl7ej12O0E9dTtjb250aW51ZX11PXorMTZ8MDt2PWNbdT4+Ml18MDtpZigodnwwKT09MCl7
YnJlYWt9ZWxzZXt6PXY7QT11fX1pZihBPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2Nb
QT4+Ml09MDt5PXo7YnJlYWt9fWVsc2V7dT1jW2crKGYrOCk+PjJdfDA7aWYodT4+PjA8aj4+PjAp
e2JHKCk7cmV0dXJuIDB9dj11KzEyfDA7aWYoKGNbdj4+Ml18MCkhPShvfDApKXtiRygpO3JldHVy
biAwfXc9dCs4fDA7aWYoKGNbdz4+Ml18MCk9PShvfDApKXtjW3Y+PjJdPXQ7Y1t3Pj4yXT11O3k9
dDticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtpZigoc3wwKT09MCl7YnJlYWt9
dD1nKyhmKzI4KXwwO2w9MTAxNDQrKGNbdD4+Ml08PDIpfDA7ZG97aWYoKG98MCk9PShjW2w+PjJd
fDApKXtjW2w+PjJdPXk7aWYoKHl8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNb
dD4+Ml0pO2JyZWFrIEwxNDc4fWVsc2V7aWYocz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3Jl
dHVybiAwfWs9cysxNnwwO2lmKChjW2s+PjJdfDApPT0ob3wwKSl7Y1trPj4yXT15fWVsc2V7Y1tz
KzIwPj4yXT15fWlmKCh5fDApPT0wKXticmVhayBMMTQ3OH19fXdoaWxlKDApO2lmKHk+Pj4wPChj
WzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1jW3krMjQ+PjJdPXM7bz1jW2crKGYrMTYpPj4y
XXwwO2Rve2lmKChvfDApIT0wKXtpZihvPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJu
IDB9ZWxzZXtjW3krMTY+PjJdPW87Y1tvKzI0Pj4yXT15O2JyZWFrfX19d2hpbGUoMCk7bz1jW2cr
KGYrMjApPj4yXXwwO2lmKChvfDApPT0wKXticmVha31pZihvPj4+MDwoY1syNDY0XXwwKT4+PjAp
e2JHKCk7cmV0dXJuIDB9ZWxzZXtjW3krMjA+PjJdPW87Y1tvKzI0Pj4yXT15O2JyZWFrfX19d2hp
bGUoMCk7aWYocT4+PjA8MTYpe2NbZD4+Ml09cHxjW2Q+PjJdJjF8Mjt5PWcrKHB8NCl8MDtjW3k+
PjJdPWNbeT4+Ml18MTtuPWE7cmV0dXJuIG58MH1lbHNle2NbZD4+Ml09Y1tkPj4yXSYxfGJ8Mjtj
W2crKGIrNCk+PjJdPXF8MztkPWcrKHB8NCl8MDtjW2Q+PjJdPWNbZD4+Ml18MTtrTihnK2J8MCxx
KTtuPWE7cmV0dXJuIG58MH1yZXR1cm4gMH1mdW5jdGlvbiBrTihhLGIpe2E9YXwwO2I9YnwwO3Zh
ciBkPTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wO2Q9YTtlPWQrYnwwO2Y9ZTtnPWNbYSs0Pj4yXXww
O0wxNTU0OmRve2lmKChnJjF8MCk9PTApe2g9Y1thPj4yXXwwO2lmKChnJjN8MCk9PTApe3JldHVy
bn1pPWQrKC1ofDApfDA7aj1pO2s9aCtifDA7bD1jWzI0NjRdfDA7aWYoaT4+PjA8bD4+PjApe2JH
KCl9aWYoKGp8MCk9PShjWzI0NjVdfDApKXttPWQrKGIrNCl8MDtpZigoY1ttPj4yXSYzfDApIT0z
KXtuPWo7bz1rO2JyZWFrfWNbMjQ2Ml09aztjW20+PjJdPWNbbT4+Ml0mLTI7Y1tkKyg0LWgpPj4y
XT1rfDE7Y1tlPj4yXT1rO3JldHVybn1tPWg+Pj4zO2lmKGg+Pj4wPDI1Nil7cD1jW2QrKDgtaCk+
PjJdfDA7cT1jW2QrKDEyLWgpPj4yXXwwO3I9OTg4MCsobTw8MTw8Mil8MDtkb3tpZigocHwwKSE9
KHJ8MCkpe2lmKHA+Pj4wPGw+Pj4wKXtiRygpfWlmKChjW3ArMTI+PjJdfDApPT0oanwwKSl7YnJl
YWt9YkcoKX19d2hpbGUoMCk7aWYoKHF8MCk9PShwfDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxt
KTtuPWo7bz1rO2JyZWFrfWRve2lmKChxfDApPT0ocnwwKSl7cz1xKzh8MH1lbHNle2lmKHE+Pj4w
PGw+Pj4wKXtiRygpfXQ9cSs4fDA7aWYoKGNbdD4+Ml18MCk9PShqfDApKXtzPXQ7YnJlYWt9Ykco
KX19d2hpbGUoMCk7Y1twKzEyPj4yXT1xO2Nbcz4+Ml09cDtuPWo7bz1rO2JyZWFrfXI9aTttPWNb
ZCsoMjQtaCk+PjJdfDA7dD1jW2QrKDEyLWgpPj4yXXwwO2Rve2lmKCh0fDApPT0ocnwwKSl7dT0x
Ni1ofDA7dj1kKyh1KzQpfDA7dz1jW3Y+PjJdfDA7aWYoKHd8MCk9PTApe3g9ZCt1fDA7dT1jW3g+
PjJdfDA7aWYoKHV8MCk9PTApe3k9MDticmVha31lbHNle3o9dTtBPXh9fWVsc2V7ej13O0E9dn13
aGlsZSgxKXt2PXorMjB8MDt3PWNbdj4+Ml18MDtpZigod3wwKSE9MCl7ej13O0E9djtjb250aW51
ZX12PXorMTZ8MDt3PWNbdj4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9ZWxzZXt6PXc7QT12fX1p
ZihBPj4+MDxsPj4+MCl7YkcoKX1lbHNle2NbQT4+Ml09MDt5PXo7YnJlYWt9fWVsc2V7dj1jW2Qr
KDgtaCk+PjJdfDA7aWYodj4+PjA8bD4+PjApe2JHKCl9dz12KzEyfDA7aWYoKGNbdz4+Ml18MCkh
PShyfDApKXtiRygpfXg9dCs4fDA7aWYoKGNbeD4+Ml18MCk9PShyfDApKXtjW3c+PjJdPXQ7Y1t4
Pj4yXT12O3k9dDticmVha31lbHNle2JHKCl9fX13aGlsZSgwKTtpZigobXwwKT09MCl7bj1qO289
azticmVha310PWQrKDI4LWgpfDA7bD0xMDE0NCsoY1t0Pj4yXTw8Mil8MDtkb3tpZigocnwwKT09
KGNbbD4+Ml18MCkpe2NbbD4+Ml09eTtpZigoeXwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFd
Jn4oMTw8Y1t0Pj4yXSk7bj1qO289azticmVhayBMMTU1NH1lbHNle2lmKG0+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKX1pPW0rMTZ8MDtpZigoY1tpPj4yXXwwKT09KHJ8MCkpe2NbaT4+Ml09eX1l
bHNle2NbbSsyMD4+Ml09eX1pZigoeXwwKT09MCl7bj1qO289azticmVhayBMMTU1NH19fXdoaWxl
KDApO2lmKHk+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1jW3krMjQ+PjJdPW07cj0xNi1ofDA7
dD1jW2Qrcj4+Ml18MDtkb3tpZigodHwwKSE9MCl7aWYodD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXti
RygpfWVsc2V7Y1t5KzE2Pj4yXT10O2NbdCsyND4+Ml09eTticmVha319fXdoaWxlKDApO3Q9Y1tk
KyhyKzQpPj4yXXwwO2lmKCh0fDApPT0wKXtuPWo7bz1rO2JyZWFrfWlmKHQ+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKX1lbHNle2NbeSsyMD4+Ml09dDtjW3QrMjQ+PjJdPXk7bj1qO289azticmVh
a319ZWxzZXtuPWE7bz1ifX13aGlsZSgwKTthPWNbMjQ2NF18MDtpZihlPj4+MDxhPj4+MCl7Ykco
KX15PWQrKGIrNCl8MDt6PWNbeT4+Ml18MDtkb3tpZigoeiYyfDApPT0wKXtpZigoZnwwKT09KGNb
MjQ2Nl18MCkpe0E9KGNbMjQ2M118MCkrb3wwO2NbMjQ2M109QTtjWzI0NjZdPW47Y1tuKzQ+PjJd
PUF8MTtpZigobnwwKSE9KGNbMjQ2NV18MCkpe3JldHVybn1jWzI0NjVdPTA7Y1syNDYyXT0wO3Jl
dHVybn1pZigoZnwwKT09KGNbMjQ2NV18MCkpe0E9KGNbMjQ2Ml18MCkrb3wwO2NbMjQ2Ml09QTtj
WzI0NjVdPW47Y1tuKzQ+PjJdPUF8MTtjW24rQT4+Ml09QTtyZXR1cm59QT0oeiYtOCkrb3wwO3M9
ej4+PjM7TDE2NTM6ZG97aWYoej4+PjA8MjU2KXtnPWNbZCsoYis4KT4+Ml18MDt0PWNbZCsoYisx
Mik+PjJdfDA7aD05ODgwKyhzPDwxPDwyKXwwO2Rve2lmKChnfDApIT0oaHwwKSl7aWYoZz4+PjA8
YT4+PjApe2JHKCl9aWYoKGNbZysxMj4+Ml18MCk9PShmfDApKXticmVha31iRygpfX13aGlsZSgw
KTtpZigodHwwKT09KGd8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PHMpO2JyZWFrfWRve2lmKCh0
fDApPT0oaHwwKSl7Qj10Kzh8MH1lbHNle2lmKHQ+Pj4wPGE+Pj4wKXtiRygpfW09dCs4fDA7aWYo
KGNbbT4+Ml18MCk9PShmfDApKXtCPW07YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1tnKzEyPj4yXT10
O2NbQj4+Ml09Z31lbHNle2g9ZTttPWNbZCsoYisyNCk+PjJdfDA7bD1jW2QrKGIrMTIpPj4yXXww
O2Rve2lmKChsfDApPT0oaHwwKSl7aT1kKyhiKzIwKXwwO3A9Y1tpPj4yXXwwO2lmKChwfDApPT0w
KXtxPWQrKGIrMTYpfDA7dj1jW3E+PjJdfDA7aWYoKHZ8MCk9PTApe0M9MDticmVha31lbHNle0Q9
djtFPXF9fWVsc2V7RD1wO0U9aX13aGlsZSgxKXtpPUQrMjB8MDtwPWNbaT4+Ml18MDtpZigocHww
KSE9MCl7RD1wO0U9aTtjb250aW51ZX1pPUQrMTZ8MDtwPWNbaT4+Ml18MDtpZigocHwwKT09MCl7
YnJlYWt9ZWxzZXtEPXA7RT1pfX1pZihFPj4+MDxhPj4+MCl7YkcoKX1lbHNle2NbRT4+Ml09MDtD
PUQ7YnJlYWt9fWVsc2V7aT1jW2QrKGIrOCk+PjJdfDA7aWYoaT4+PjA8YT4+PjApe2JHKCl9cD1p
KzEyfDA7aWYoKGNbcD4+Ml18MCkhPShofDApKXtiRygpfXE9bCs4fDA7aWYoKGNbcT4+Ml18MCk9
PShofDApKXtjW3A+PjJdPWw7Y1txPj4yXT1pO0M9bDticmVha31lbHNle2JHKCl9fX13aGlsZSgw
KTtpZigobXwwKT09MCl7YnJlYWt9bD1kKyhiKzI4KXwwO2c9MTAxNDQrKGNbbD4+Ml08PDIpfDA7
ZG97aWYoKGh8MCk9PShjW2c+PjJdfDApKXtjW2c+PjJdPUM7aWYoKEN8MCkhPTApe2JyZWFrfWNb
MjQ2MV09Y1syNDYxXSZ+KDE8PGNbbD4+Ml0pO2JyZWFrIEwxNjUzfWVsc2V7aWYobT4+PjA8KGNb
MjQ2NF18MCk+Pj4wKXtiRygpfXQ9bSsxNnwwO2lmKChjW3Q+PjJdfDApPT0oaHwwKSl7Y1t0Pj4y
XT1DfWVsc2V7Y1ttKzIwPj4yXT1DfWlmKChDfDApPT0wKXticmVhayBMMTY1M319fXdoaWxlKDAp
O2lmKEM+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1jW0MrMjQ+PjJdPW07aD1jW2QrKGIrMTYp
Pj4yXXwwO2Rve2lmKChofDApIT0wKXtpZihoPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxz
ZXtjW0MrMTY+PjJdPWg7Y1toKzI0Pj4yXT1DO2JyZWFrfX19d2hpbGUoMCk7aD1jW2QrKGIrMjAp
Pj4yXXwwO2lmKChofDApPT0wKXticmVha31pZihoPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9
ZWxzZXtjW0MrMjA+PjJdPWg7Y1toKzI0Pj4yXT1DO2JyZWFrfX19d2hpbGUoMCk7Y1tuKzQ+PjJd
PUF8MTtjW24rQT4+Ml09QTtpZigobnwwKSE9KGNbMjQ2NV18MCkpe0Y9QTticmVha31jWzI0NjJd
PUE7cmV0dXJufWVsc2V7Y1t5Pj4yXT16Ji0yO2Nbbis0Pj4yXT1vfDE7Y1tuK28+PjJdPW87Rj1v
fX13aGlsZSgwKTtvPUY+Pj4zO2lmKEY+Pj4wPDI1Nil7ej1vPDwxO3k9OTg4MCsoejw8Mil8MDtD
PWNbMjQ2MF18MDtiPTE8PG87ZG97aWYoKEMmYnwwKT09MCl7Y1syNDYwXT1DfGI7Rz15O0g9OTg4
MCsoeisyPDwyKXwwfWVsc2V7bz05ODgwKyh6KzI8PDIpfDA7ZD1jW28+PjJdfDA7aWYoZD4+PjA+
PShjWzI0NjRdfDApPj4+MCl7Rz1kO0g9bzticmVha31iRygpfX13aGlsZSgwKTtjW0g+PjJdPW47
Y1tHKzEyPj4yXT1uO2Nbbis4Pj4yXT1HO2NbbisxMj4+Ml09eTtyZXR1cm59eT1uO0c9Rj4+Pjg7
ZG97aWYoKEd8MCk9PTApe0k9MH1lbHNle2lmKEY+Pj4wPjE2Nzc3MjE1KXtJPTMxO2JyZWFrfUg9
KEcrMTA0ODMyMHwwKT4+PjE2Jjg7ej1HPDxIO2I9KHorNTIwMTkyfDApPj4+MTYmNDtDPXo8PGI7
ej0oQysyNDU3NjB8MCk+Pj4xNiYyO289MTQtKGJ8SHx6KSsoQzw8ej4+PjE1KXwwO0k9Rj4+Pigo
bys3fDApPj4+MCkmMXxvPDwxfX13aGlsZSgwKTtHPTEwMTQ0KyhJPDwyKXwwO2NbbisyOD4+Ml09
STtjW24rMjA+PjJdPTA7Y1tuKzE2Pj4yXT0wO289Y1syNDYxXXwwO3o9MTw8STtpZigobyZ6fDAp
PT0wKXtjWzI0NjFdPW98ejtjW0c+PjJdPXk7Y1tuKzI0Pj4yXT1HO2NbbisxMj4+Ml09bjtjW24r
OD4+Ml09bjtyZXR1cm59aWYoKEl8MCk9PTMxKXtKPTB9ZWxzZXtKPTI1LShJPj4+MSl8MH1JPUY8
PEo7Sj1jW0c+PjJdfDA7d2hpbGUoMSl7aWYoKGNbSis0Pj4yXSYtOHwwKT09KEZ8MCkpe2JyZWFr
fUs9SisxNisoST4+PjMxPDwyKXwwO0c9Y1tLPj4yXXwwO2lmKChHfDApPT0wKXtMPTEyOTg7YnJl
YWt9ZWxzZXtJPUk8PDE7Sj1HfX1pZigoTHwwKT09MTI5OCl7aWYoSz4+PjA8KGNbMjQ2NF18MCk+
Pj4wKXtiRygpfWNbSz4+Ml09eTtjW24rMjQ+PjJdPUo7Y1tuKzEyPj4yXT1uO2Nbbis4Pj4yXT1u
O3JldHVybn1LPUorOHwwO0w9Y1tLPj4yXXwwO0k9Y1syNDY0XXwwO2lmKEo+Pj4wPEk+Pj4wKXti
RygpfWlmKEw+Pj4wPEk+Pj4wKXtiRygpfWNbTCsxMj4+Ml09eTtjW0s+PjJdPXk7Y1tuKzg+PjJd
PUw7Y1tuKzEyPj4yXT1KO2NbbisyND4+Ml09MDtyZXR1cm59ZnVuY3Rpb24ga08oYSl7YT1hfDA7
dmFyIGI9MCxkPTAsZT0wO2I9KGF8MCk9PTA/MTphO3doaWxlKDEpe2Q9a0ooYil8MDtpZigoZHww
KSE9MCl7ZT0xMzQyO2JyZWFrfWE9KEk9Y1s0MDQ4XXwwLGNbNDA0OF09SSswLEkpO2lmKChhfDAp
PT0wKXticmVha31iNVthJjNdKCl9aWYoKGV8MCk9PTEzNDIpe3JldHVybiBkfDB9ZD1iTyg0KXww
O2NbZD4+Ml09MjQwODtibChkfDAsODE2MCwzMCk7cmV0dXJuIDB9ZnVuY3Rpb24ga1AoYSl7YT1h
fDA7cmV0dXJuIGtPKGEpfDB9ZnVuY3Rpb24ga1EoYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGtS
KGEpe2E9YXwwO3JldHVybiAxMTYwfDB9ZnVuY3Rpb24ga1MoYSl7YT1hfDA7aWYoKGF8MCkhPTAp
e2tLKGEpfXJldHVybn1mdW5jdGlvbiBrVChhKXthPWF8MDtrUyhhKTtyZXR1cm59ZnVuY3Rpb24g
a1UoYSl7YT1hfDA7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGtWKGIsZCl7Yj1ifDA7ZD1kfDA7dmFy
IGU9MCxmPTAsZz0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLjAscj0wLHM9
MCx0PTAsdT0wLHY9MC4wLHc9MCx4PTAseT0wLHo9MC4wLEE9MC4wLEI9MCxDPTAsRD0wLEU9MC4w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLjAsTz0wLFA9MCxRPTAuMCxSPTAu
MCxTPTAuMDtlPWI7d2hpbGUoMSl7Zj1lKzF8MDtpZigoYVAoYVtlXXwwKXwwKT09MCl7YnJlYWt9
ZWxzZXtlPWZ9fXN3aXRjaChhW2VdfDApe2Nhc2UgNDM6e2c9ZjtpPTA7YnJlYWt9O2Nhc2UgNDU6
e2c9ZjtpPTE7YnJlYWt9O2RlZmF1bHQ6e2c9ZTtpPTB9fWU9LTE7Zj0wO2o9Zzt3aGlsZSgxKXtr
PWFbal18MDtpZigoKGs8PDI0Pj4yNCktNDh8MCk+Pj4wPDEwKXtsPWV9ZWxzZXtpZihrPDwyND4+
MjQhPTQ2fChlfDApPi0xKXticmVha31lbHNle2w9Zn19ZT1sO2Y9ZisxfDA7aj1qKzF8MH1sPWor
KC1mfDApfDA7Zz0oZXwwKTwwO209KChnXjEpPDwzMT4+MzEpK2Z8MDtuPShtfDApPjE4O289KG4/
LTE4Oi1tfDApKyhnP2Y6ZSl8MDtlPW4/MTg6bTtkb3tpZigoZXwwKT09MCl7cD1iO3E9MC4wfWVs
c2V7aWYoKGV8MCk+OSl7bT1sO249ZTtmPTA7d2hpbGUoMSl7Zz1hW21dfDA7cj1tKzF8MDtpZihn
PDwyND4+MjQ9PTQ2KXtzPWFbcl18MDt0PW0rMnwwfWVsc2V7cz1nO3Q9cn11PShmKjEwfDApLTQ4
KyhzPDwyND4+MjQpfDA7cj1uLTF8MDtpZigocnwwKT45KXttPXQ7bj1yO2Y9dX1lbHNle2JyZWFr
fX12PSsodXwwKSoxLjBlOTt3PTk7eD10O3k9MTM3MH1lbHNle2lmKChlfDApPjApe3Y9MC4wO3c9
ZTt4PWw7eT0xMzcwfWVsc2V7ej0wLjA7QT0wLjB9fWlmKCh5fDApPT0xMzcwKXtmPXg7bj13O209
MDt3aGlsZSgxKXtyPWFbZl18MDtnPWYrMXwwO2lmKHI8PDI0Pj4yND09NDYpe0I9YVtnXXwwO0M9
ZisyfDB9ZWxzZXtCPXI7Qz1nfUQ9KG0qMTB8MCktNDgrKEI8PDI0Pj4yNCl8MDtnPW4tMXwwO2lm
KChnfDApPjApe2Y9QztuPWc7bT1EfWVsc2V7YnJlYWt9fXo9KyhEfDApO0E9dn1FPUErejtMMTgx
Njpkb3tzd2l0Y2goazw8MjQ+PjI0KXtjYXNlIDY5OmNhc2UgMTAxOnttPWorMXwwO3N3aXRjaChh
W21dfDApe2Nhc2UgNDU6e0Y9aisyfDA7Rz0xO2JyZWFrfTtjYXNlIDQzOntGPWorMnwwO0c9MDti
cmVha307ZGVmYXVsdDp7Rj1tO0c9MH19bT1hW0ZdfDA7aWYoKChtPDwyND4+MjQpLTQ4fDApPj4+
MDwxMCl7SD1GO0k9MDtKPW19ZWxzZXtLPTA7TD1GO009RzticmVhayBMMTgxNn13aGlsZSgxKXtt
PShJKjEwfDApLTQ4KyhKPDwyND4+MjQpfDA7bj1IKzF8MDtmPWFbbl18MDtpZigoKGY8PDI0Pj4y
NCktNDh8MCk+Pj4wPDEwKXtIPW47ST1tO0o9Zn1lbHNle0s9bTtMPW47TT1HO2JyZWFrfX1icmVh
a307ZGVmYXVsdDp7Sz0wO0w9ajtNPTB9fX13aGlsZSgwKTtuPW8rKChNfDApPT0wP0s6LUt8MCl8
MDttPShufDApPDA/LW58MDpuO2lmKChtfDApPjUxMSl7Y1soYncoKXwwKT4+Ml09MzQ7Tj0xLjA7
Tz04O1A9NTExO3k9MTM4N31lbHNle2lmKChtfDApPT0wKXtRPTEuMH1lbHNle049MS4wO089ODtQ
PW07eT0xMzg3fX1pZigoeXwwKT09MTM4Nyl7d2hpbGUoMSl7eT0wO2lmKChQJjF8MCk9PTApe1I9
Tn1lbHNle1I9TioraFtPPj4zXX1tPVA+PjE7aWYoKG18MCk9PTApe1E9UjticmVha31lbHNle049
UjtPPU8rOHwwO1A9bTt5PTEzODd9fX1pZigobnwwKT4tMSl7cD1MO3E9RSpRO2JyZWFrfWVsc2V7
cD1MO3E9RS9RO2JyZWFrfX19d2hpbGUoMCk7aWYoKGR8MCkhPTApe2NbZD4+Ml09cH1pZigoaXww
KT09MCl7Uz1xO3JldHVybitTfVM9LTAuMC1xO3JldHVybitTfWZ1bmN0aW9uIGtXKGEsYixjKXth
PWF8MDtiPWJ8MDtjPWN8MDtyZXR1cm4rKCtrVihhLGIpKX1mdW5jdGlvbiBrWCgpe3ZhciBhPTA7
YT1iTyg0KXwwO2NbYT4+Ml09MjQwODtibChhfDAsODE2MCwzMCl9ZnVuY3Rpb24ga1koYixkLGUp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7Zj1ifDA7aWYoKGImMyk9PShkJjMpKXt3aGlsZShi
JjMpe2lmKChlfDApPT0wKXJldHVybiBmfDA7YVtiXT1hW2RdfDA7Yj1iKzF8MDtkPWQrMXwwO2U9
ZS0xfDB9d2hpbGUoKGV8MCk+PTQpe2NbYj4+Ml09Y1tkPj4yXTtiPWIrNHwwO2Q9ZCs0fDA7ZT1l
LTR8MH19d2hpbGUoKGV8MCk+MCl7YVtiXT1hW2RdfDA7Yj1iKzF8MDtkPWQrMXwwO2U9ZS0xfDB9
cmV0dXJuIGZ8MH1mdW5jdGlvbiBrWihiKXtiPWJ8MDt2YXIgYz0wO2M9YVtuKyhiPj4+MjQpfDBd
fDA7aWYoKGN8MCk8OClyZXR1cm4gY3wwO2M9YVtuKyhiPj4xNiYyNTUpfDBdfDA7aWYoKGN8MCk8
OClyZXR1cm4gYys4fDA7Yz1hW24rKGI+PjgmMjU1KXwwXXwwO2lmKChjfDApPDgpcmV0dXJuIGMr
MTZ8MDtyZXR1cm4oYVtuKyhiJjI1NSl8MF18MCkrMjR8MH1mdW5jdGlvbiBrXyhiLGMsZCl7Yj1i
fDA7Yz1jfDA7ZD1kfDA7aWYoKGN8MCk8KGJ8MCkmKGJ8MCk8KGMrZHwwKSl7Yz1jK2R8MDtiPWIr
ZHwwO3doaWxlKChkfDApPjApe2I9Yi0xfDA7Yz1jLTF8MDtkPWQtMXwwO2FbYl09YVtjXXwwfX1l
bHNle2tZKGIsYyxkKXwwfX1mdW5jdGlvbiBrJChiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFy
IGY9MCxnPTAsaD0wO2Y9YitlfDA7aWYoKGV8MCk+PTIwKXtkPWQmMjU1O2U9YiYzO2c9ZHxkPDw4
fGQ8PDE2fGQ8PDI0O2g9ZiZ+MztpZihlKXtlPWIrNC1lfDA7d2hpbGUoKGJ8MCk8KGV8MCkpe2Fb
Yl09ZDtiPWIrMXwwfX13aGlsZSgoYnwwKTwoaHwwKSl7Y1tiPj4yXT1nO2I9Yis0fDB9fXdoaWxl
KChifDApPChmfDApKXthW2JdPWQ7Yj1iKzF8MH19ZnVuY3Rpb24gazAoYil7Yj1ifDA7dmFyIGM9
MDtjPWI7d2hpbGUoYVtjXXwwKXtjPWMrMXwwfXJldHVybiBjLWJ8MH1mdW5jdGlvbiBrMShhLGIs
YyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wO2U9YStjPj4+MDtyZXR1cm4oSz1i
K2QrKGU+Pj4wPGE+Pj4wfDApPj4+MCxlfDApfDB9ZnVuY3Rpb24gazIoYSxiLGMsZCl7YT1hfDA7
Yj1ifDA7Yz1jfDA7ZD1kfDA7dmFyIGU9MDtlPWItZD4+PjA7ZT1iLWQtKGM+Pj4wPmE+Pj4wfDAp
Pj4+MDtyZXR1cm4oSz1lLGEtYz4+PjB8MCl8MH1mdW5jdGlvbiBrMyhhLGIsYyl7YT1hfDA7Yj1i
fDA7Yz1jfDA7aWYoKGN8MCk8MzIpe0s9Yjw8Y3woYSYoMTw8YyktMTw8MzItYyk+Pj4zMi1jO3Jl
dHVybiBhPDxjfUs9YTw8Yy0zMjtyZXR1cm4gMH1mdW5jdGlvbiBrNChhLGIsYyl7YT1hfDA7Yj1i
fDA7Yz1jfDA7aWYoKGN8MCk8MzIpe0s9Yj4+PmM7cmV0dXJuIGE+Pj5jfChiJigxPDxjKS0xKTw8
MzItY31LPTA7cmV0dXJuIGI+Pj5jLTMyfDB9ZnVuY3Rpb24gazUoYSxiLGMpe2E9YXwwO2I9Ynww
O2M9Y3wwO2lmKChjfDApPDMyKXtLPWI+PmM7cmV0dXJuIGE+Pj5jfChiJigxPDxjKS0xKTw8MzIt
Y31LPShifDApPDA/LTE6MDtyZXR1cm4gYj4+Yy0zMnwwfWZ1bmN0aW9uIGs2KGIpe2I9YnwwO3Zh
ciBjPTA7Yz1hW20rKGImMjU1KXwwXXwwO2lmKChjfDApPDgpcmV0dXJuIGN8MDtjPWFbbSsoYj4+
OCYyNTUpfDBdfDA7aWYoKGN8MCk8OClyZXR1cm4gYys4fDA7Yz1hW20rKGI+PjE2JjI1NSl8MF18
MDtpZigoY3wwKTw4KXJldHVybiBjKzE2fDA7cmV0dXJuKGFbbSsoYj4+PjI0KXwwXXwwKSsyNHww
fWZ1bmN0aW9uIGs3KGEsYil7YT1hfDA7Yj1ifDA7dmFyIGM9MCxkPTAsZT0wLGY9MDtjPWEmNjU1
MzU7ZD1iJjY1NTM1O2U9YWcoZCxjKXwwO2Y9YT4+PjE2O2E9KGU+Pj4xNikrKGFnKGQsZil8MCl8
MDtkPWI+Pj4xNjtiPWFnKGQsYyl8MDtyZXR1cm4oSz0oYT4+PjE2KSsoYWcoZCxmKXwwKSsoKChh
JjY1NTM1KStifDApPj4+MTYpfDAsYStiPDwxNnxlJjY1NTM1fDApfDB9ZnVuY3Rpb24gazgoYSxi
LGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTA7ZT1i
Pj4zMXwoKGJ8MCk8MD8tMTowKTw8MTtmPSgoYnwwKTwwPy0xOjApPj4zMXwoKGJ8MCk8MD8tMTow
KTw8MTtnPWQ+PjMxfCgoZHwwKTwwPy0xOjApPDwxO2g9KChkfDApPDA/LTE6MCk+PjMxfCgoZHww
KTwwPy0xOjApPDwxO2k9azIoZV5hLGZeYixlLGYpfDA7Yj1LO2E9Z15lO2U9aF5mO2Y9azIoKGxk
KGksYixrMihnXmMsaF5kLGcsaCl8MCxLLDApfDApXmEsS15lLGEsZSl8MDtyZXR1cm4oSz1LLGYp
fDB9ZnVuY3Rpb24gazkoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxn
PTAsaD0wLGo9MCxrPTAsbD0wLG09MDtmPWk7aT1pKzh8MDtnPWZ8MDtoPWI+PjMxfCgoYnwwKTww
Py0xOjApPDwxO2o9KChifDApPDA/LTE6MCk+PjMxfCgoYnwwKTwwPy0xOjApPDwxO2s9ZT4+MzF8
KChlfDApPDA/LTE6MCk8PDE7bD0oKGV8MCk8MD8tMTowKT4+MzF8KChlfDApPDA/LTE6MCk8PDE7
bT1rMihoXmEsal5iLGgsail8MDtiPUs7YT1rMihrXmQsbF5lLGssbCl8MDtsZChtLGIsYSxLLGcp
fDA7YT1rMihjW2c+PjJdXmgsY1tnKzQ+PjJdXmosaCxqKXwwO2o9SztpPWY7cmV0dXJuKEs9aixh
KXwwfWZ1bmN0aW9uIGxhKGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTAs
Zj0wO2U9YTthPWM7Yz1rNyhlLGEpfDA7Zj1LO3JldHVybihLPShhZyhiLGEpfDApKyhhZyhkLGUp
fDApK2Z8ZiYwLGN8MHwwKXwwfWZ1bmN0aW9uIGxiKGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9Y3ww
O2Q9ZHwwO3ZhciBlPTA7ZT1sZChhLGIsYyxkLDApfDA7cmV0dXJuKEs9SyxlKXwwfWZ1bmN0aW9u
IGxjKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wO2Y9aTtpPWkr
OHwwO2c9ZnwwO2xkKGEsYixkLGUsZyl8MDtpPWY7cmV0dXJuKEs9Y1tnKzQ+PjJdfDAsY1tnPj4y
XXwwKXwwfWZ1bmN0aW9uIGxkKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEw9MCxNPTA7Zz1hO2g9YjtpPWg7aj1kO2s9ZTtsPWs7aWYoKGl8MCk9PTAp
e209KGZ8MCkhPTA7aWYoKGx8MCk9PTApe2lmKG0pe2NbZj4+Ml09KGc+Pj4wKSUoaj4+PjApO2Nb
Zis0Pj4yXT0wfW49MDtvPShnPj4+MCkvKGo+Pj4wKT4+PjA7cmV0dXJuKEs9bixvKXwwfWVsc2V7
aWYoIW0pe249MDtvPTA7cmV0dXJuKEs9bixvKXwwfWNbZj4+Ml09YXwwO2NbZis0Pj4yXT1iJjA7
bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9fW09KGx8MCk9PTA7ZG97aWYoKGp8MCk9PTApe2lmKG0p
e2lmKChmfDApIT0wKXtjW2Y+PjJdPShpPj4+MCklKGo+Pj4wKTtjW2YrND4+Ml09MH1uPTA7bz0o
aT4+PjApLyhqPj4+MCk+Pj4wO3JldHVybihLPW4sbyl8MH1pZigoZ3wwKT09MCl7aWYoKGZ8MCkh
PTApe2NbZj4+Ml09MDtjW2YrND4+Ml09KGk+Pj4wKSUobD4+PjApfW49MDtvPShpPj4+MCkvKGw+
Pj4wKT4+PjA7cmV0dXJuKEs9bixvKXwwfXA9bC0xfDA7aWYoKHAmbHwwKT09MCl7aWYoKGZ8MCkh
PTApe2NbZj4+Ml09YXwwO2NbZis0Pj4yXT1wJml8YiYwfW49MDtvPWk+Pj4oKGs2KGx8MCl8MCk+
Pj4wKTtyZXR1cm4oSz1uLG8pfDB9cD0oa1oobHwwKXwwKS0oa1ooaXwwKXwwKXwwO2lmKHA+Pj4w
PD0zMCl7cT1wKzF8MDtyPTMxLXB8MDtzPXE7dD1pPDxyfGc+Pj4ocT4+PjApO3U9aT4+PihxPj4+
MCk7dj0wO3c9Zzw8cjticmVha31pZigoZnwwKT09MCl7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9
Y1tmPj4yXT1hfDA7Y1tmKzQ+PjJdPWh8YiYwO249MDtvPTA7cmV0dXJuKEs9bixvKXwwfWVsc2V7
aWYoIW0pe3I9KGtaKGx8MCl8MCktKGtaKGl8MCl8MCl8MDtpZihyPj4+MDw9MzEpe3E9cisxfDA7
cD0zMS1yfDA7eD1yLTMxPj4zMTtzPXE7dD1nPj4+KHE+Pj4wKSZ4fGk8PHA7dT1pPj4+KHE+Pj4w
KSZ4O3Y9MDt3PWc8PHA7YnJlYWt9aWYoKGZ8MCk9PTApe249MDtvPTA7cmV0dXJuKEs9bixvKXww
fWNbZj4+Ml09YXwwO2NbZis0Pj4yXT1ofGImMDtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1wPWot
MXwwO2lmKChwJmp8MCkhPTApe3g9KGtaKGp8MCl8MCkrMzMtKGtaKGl8MCl8MCl8MDtxPTY0LXh8
MDtyPTMyLXh8MDt5PXI+PjMxO3o9eC0zMnwwO0E9ej4+MzE7cz14O3Q9ci0xPj4zMSZpPj4+KHo+
Pj4wKXwoaTw8cnxnPj4+KHg+Pj4wKSkmQTt1PUEmaT4+Pih4Pj4+MCk7dj1nPDxxJnk7dz0oaTw8
cXxnPj4+KHo+Pj4wKSkmeXxnPDxyJngtMzM+PjMxO2JyZWFrfWlmKChmfDApIT0wKXtjW2Y+PjJd
PXAmZztjW2YrND4+Ml09MH1pZigoanwwKT09MSl7bj1ofGImMDtvPWF8MHwwO3JldHVybihLPW4s
byl8MH1lbHNle3A9azYoanwwKXwwO249aT4+PihwPj4+MCl8MDtvPWk8PDMyLXB8Zz4+PihwPj4+
MCl8MDtyZXR1cm4oSz1uLG8pfDB9fX13aGlsZSgwKTtpZigoc3wwKT09MCl7Qj13O0M9djtEPXU7
RT10O0Y9MDtHPTB9ZWxzZXtnPWR8MHwwO2Q9a3xlJjA7ZT1rMShnLGQsLTEsLTEpfDA7az1LO2k9
dzt3PXY7dj11O3U9dDt0PXM7cz0wO3doaWxlKDEpe0g9dz4+PjMxfGk8PDE7ST1zfHc8PDE7aj11
PDwxfGk+Pj4zMXwwO2E9dT4+PjMxfHY8PDF8MDtrMihlLGssaixhKXwwO2I9SztoPWI+PjMxfCgo
YnwwKTwwPy0xOjApPDwxO0o9aCYxO0w9azIoaixhLGgmZywoKChifDApPDA/LTE6MCk+PjMxfCgo
YnwwKTwwPy0xOjApPDwxKSZkKXwwO009SztiPXQtMXwwO2lmKChifDApPT0wKXticmVha31lbHNl
e2k9SDt3PUk7dj1NO3U9TDt0PWI7cz1KfX1CPUg7Qz1JO0Q9TTtFPUw7Rj0wO0c9Sn1KPUM7Qz0w
O2lmKChmfDApIT0wKXtjW2Y+PjJdPUU7Y1tmKzQ+PjJdPUR9bj0oSnwwKT4+PjMxfChCfEMpPDwx
fChDPDwxfEo+Pj4zMSkmMHxGO289KEo8PDF8MD4+PjMxKSYtMnxHO3JldHVybihLPW4sbyl8MH1m
dW5jdGlvbiBsZSgpe2JQKCl9ZnVuY3Rpb24gbGYoYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9
Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2JXW2EmN10oYnwwLGN8MCxkfDAsZXwwLGZ8MCl9ZnVuY3Rp
b24gbGcoYSxiLGMsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDtiWFthJjEyN10oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwKX1mdW5j
dGlvbiBsaChhLGIpe2E9YXwwO2I9YnwwO2JZW2EmNTExXShifDApfWZ1bmN0aW9uIGxpKGEsYixj
KXthPWF8MDtiPWJ8MDtjPWN8MDtiWlthJjEyN10oYnwwLGN8MCl9ZnVuY3Rpb24gbGooYSxiLGMp
e2E9YXwwO2I9YnwwO2M9Y3wwO3JldHVybiBiX1thJjMxXShifDAsY3wwKXwwfWZ1bmN0aW9uIGxr
KGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtyZXR1cm4g
YiRbYSYzMV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCl8MH1mdW5jdGlvbiBsbChhLGIpe2E9YXwwO2I9
YnwwO3JldHVybiBiMFthJjEyN10oYnwwKXwwfWZ1bmN0aW9uIGxtKGEsYixjLGQpe2E9YXwwO2I9
YnwwO2M9Y3wwO2Q9ZHwwO3JldHVybiBiMVthJjYzXShifDAsY3wwLGR8MCl8MH1mdW5jdGlvbiBs
bihhLGIsYyxkLGUsZixnKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPStn
O2IyW2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCxmfDAsK2cpfWZ1bmN0aW9uIGxvKGEsYixjLGQpe2E9
YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2IzW2EmN10oYnwwLGN8MCxkfDApfWZ1bmN0aW9uIGxwKGEs
YixjLGQsZSxmLGcsaCxpKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtpPWl8MDtiNFthJjE1XShifDAsY3wwLGR8MCxlfDAsZnwwLGd8MCxofDAsaXwwKX1m
dW5jdGlvbiBscShhKXthPWF8MDtiNVthJjNdKCl9ZnVuY3Rpb24gbHIoYSxiLGMsZCxlLGYsZyxo
LGkpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXww
O3JldHVybiBiNlthJjMxXShifDAsY3wwLGR8MCxlfDAsZnwwLGd8MCxofDAsaXwwKXwwfWZ1bmN0
aW9uIGxzKGEsYixjLGQsZSxmLGcsaCxpLGope2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2I3W2EmN10oYnwwLGN8MCxkfDAsZXwwLGZ8
MCxnfDAsaHwwLGl8MCxqfDApfWZ1bmN0aW9uIGx0KGEsYixjLGQsZSxmLGcsaCl7YT1hfDA7Yj1i
fDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD0raDtiOFthJjddKGJ8MCxjfDAsZHww
LGV8MCxmfDAsZ3wwLCtoKX1mdW5jdGlvbiBsdShhLGIsYyxkLGUsZixnKXthPWF8MDtiPWJ8MDtj
PWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtiOVthJjMxXShifDAsY3wwLGR8MCxlfDAsZnww
LGd8MCl9ZnVuY3Rpb24gbHYoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8
MDtyZXR1cm4gY2FbYSYxNV0oYnwwLGN8MCxkfDAsZXwwKXwwfWZ1bmN0aW9uIGx3KGEsYixjLGQs
ZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Y2JbYSYxNV0oYnwwLGN8MCxkfDAsZXww
KX1mdW5jdGlvbiBseChhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Fo
KDApfWZ1bmN0aW9uIGx5KGEsYixjLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO2c9Z3wwO2FoKDEpfWZ1bmN0aW9uIGx6KGEpe2E9YXwwO2FoKDIpfWZ1bmN0aW9u
IGxBKGEsYil7YT1hfDA7Yj1ifDA7YWgoMyl9ZnVuY3Rpb24gbEIoYSxiKXthPWF8MDtiPWJ8MDth
aCg0KTtyZXR1cm4gMH1mdW5jdGlvbiBsQyhhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9
ZHwwO2U9ZXwwO2FoKDUpO3JldHVybiAwfWZ1bmN0aW9uIGxEKGEpe2E9YXwwO2FoKDYpO3JldHVy
biAwfWZ1bmN0aW9uIGxFKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDthaCg3KTtyZXR1cm4gMH1m
dW5jdGlvbiBsRihhLGIsYyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj0r
ZjthaCg4KX1mdW5jdGlvbiBsRyhhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7YWgoOSl9ZnVuY3Rp
b24gbEgoYSxiLGMsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDthaCgxMCl9ZnVuY3Rpb24gbEkoKXthaCgxMSl9ZnVuY3Rpb24gbEooYSxi
LGMsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDthaCgxMik7cmV0dXJuIDB9ZnVuY3Rpb24gbEsoYSxiLGMsZCxlLGYsZyxoLGkpe2E9YXww
O2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2FoKDEzKX1m
dW5jdGlvbiBsTChhLGIsYyxkLGUsZixnKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPStnO2FoKDE0KX1mdW5jdGlvbiBsTShhLGIsYyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1j
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7YWgoMTUpfWZ1bmN0aW9uIGxOKGEsYixjLGQpe2E9YXwwO2I9
YnwwO2M9Y3wwO2Q9ZHwwO2FoKDE2KTtyZXR1cm4gMH1mdW5jdGlvbiBsTyhhLGIsYyxkKXthPWF8
MDtiPWJ8MDtjPWN8MDtkPWR8MDthaCgxNyl9Ci0vLyBFTVNDUklQVEVOX0VORF9GVU5DUwotdmFy
IGJXPVtseCxseCxrRyxseCxrRCxseCxrRixseF07dmFyIGJYPVtseSxseSxnRyxseSxnUCxseSxn
UyxseSxpaCxseSxndCxseSxncixseSxoOSxseSxnQixseSxnRixseSxnVCxseSxnZixseSxmNyxs
eSxnRSxseSxmSCxseSxmWixseSxnUSxseSxnZCxseSxmJCxseSxmWCxseSxmWSxseSxmUSxseSxm
XyxseSxmVixseSxmVCxseSxmNCxseSxmMyxseSxmMCxseSxnVSxseSxmQSxseSxnQyxseSxmRSxs
eSxmdixseSxmeSxseSxmQyxseSxmcixseSxmTSxseSxmSyxseSxmcCxseSxseSxseSxseSxseSxs
eSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxs
eSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxs
eSxseSxseSxseSxseSxseSxseSxseV07dmFyIGJZPVtseixseixpayxseixmbixseixnbCxseixk
SCxseixlbixseixpRSxseixkcixseixoQSxseixmNSxseixkQixseixkRyxseixmTyxseixmYixs
eixlNyxseixrUSxseixkQyxseixpUCxseixpUyxseixnTyxseixmUCxseixrcSxseixlMSxseixp
ZSxseixpUSxseixlUyxseixmbyxseixocixseixpTCxseixqSSxseixpVSxseixrayxseixqSCxs
eixlNSxseixjNSxseixkRyxseixjdCxseixmZixseixoZyxseixqSyxseixpUixseixrSyxseixo
NyxseixqRyxseixlVixseixjNCxseixmZSxseixkQyxseixqMyxseixmNixseixkZixseixocyxs
eixlUixseixlJCxseixoeSxseixnTixseixlOCxseixobCxseixrVSxseixlbSxseixqNixseixq
NyxseixlMixseixldSxseixreCxseixpVixseixpOSxseixraSxseixlVCxseixlNixseixoTyxs
eixkZCxseixoeCxseixlMyxseixqOSxseixrbCxseixqcSxseixkYixseixpSyxseixpTyxseixo
eixseixoVSxseixrdSxseixoRyxseixoOCxseixqOCxseixoZixseixnayxseixmYSxseixkYyxs
eixmYyxseixlWCxseixkTixseixoJCxseixoVCxseixqSixseixlZSxseixkSSxseixraSxseixr
eSxseixlXyxseixkTyxseixlUSxseixlMCxseixpZCxseixlRCxseixlWixseixkcyxseixpVyxs
eixlOSxseixoSixseixneixseixobSxseixjJCxseixpcSxseixoMCxseixlVyxseixldCxseixl
WSxseixqRixseixqNCxseixnQSxseixrdyxseixpbCxseixjXyxseixrdixseixoQixseixoUCxs
eixjVyxseixkUCxseixpVCxseixkRixseixlVSxseixrYSxseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixsel07dmFyIGJaPVtsQSxsQSxqUCxsQSxjMCxsQSxo
TSxsQSxqTSxsQSxoYixsQSxqTCxsQSxpaixsQSxkOSxsQSxoayxsQSxoSCxsQSxodyxsQSxoaixs
QSxoaCxsQSxoTixsQSxpTixsQSxnOSxsQSxkbSxsQSxoSSxsQSxqTyxsQSxoSyxsQSxobyxsQSxk
RSxsQSxobixsQSxqUSxsQSxoYSxsQSxocSxsQSxqTixsQSxnOCxsQSxkMixsQSxkdCxsQSxjNixs
QSxpbyxsQSxodCxsQSxnNyxsQSxnNixsQSxoaSxsQSxodSxsQSxodixsQSxocCxsQSxoTCxsQSxs
QSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxs
QSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxs
QSxsQSxsQSxsQSxsQSxsQSxsQSxsQV07dmFyIGJfPVtsQixsQixpNCxsQixkdyxsQixpQSxsQixp
dCxsQixkOCxsQixjOSxsQixkcCxsQixpMCxsQixpNixsQixlSSxsQixpMixsQixkNyxsQixjMixs
QixlSCxsQixsQixsQl07dmFyIGIkPVtsQyxsQyxqaCxsQyxqZixsQyxqRSxsQyxpdyxsQyxpRyxs
QyxqcCxsQyxpSSxsQyxmayxsQyxpRCxsQyxqZCxsQyxlTCxsQyxqcyxsQyxsQyxsQyxsQyxsQyxs
QyxsQ107dmFyIGIwPVtsRCxsRCxqMixsRCxnNCxsRCxkNixsRCxqVSxsRCxlcixsRCxqMCxsRCxn
MCxsRCxqZSxsRCxqayxsRCxneSxsRCxqUyxsRCxkdixsRCxlTyxsRCxlRyxsRCxqWSxsRCxqVyxs
RCxqdCxsRCxraixsRCxkaSxsRCxqQyxsRCxqeixsRCxqWCxsRCxqaixsRCxqQSxsRCxkNCxsRCxo
RixsRCxqWixsRCxkdSxsRCxjMSxsRCxnMSxsRCxpOCxsRCxqMSxsRCxqdixsRCxoRCxsRCxqUixs
RCxjNyxsRCxqdSxsRCxqZyxsRCxlSixsRCxnJCxsRCxjOCxsRCxqQixsRCxkNSxsRCxlRSxsRCxk
bixsRCxnMixsRCxpeixsRCxpeSxsRCxrUixsRCxlRixsRCxnWixsRCxqVCxsRCxpeCxsRCxnXyxs
RCxkaCxsRCxnMyxsRCxnNSxsRCxqVixsRCxoRSxsRCxnTSxsRCxqJCxsRCxqXyxsRCxqaSxsRF07
dmFyIGIxPVtsRSxsRSxlTSxsRSxpNSxsRSxpMyxsRSxreixsRSxpQixsRSxmbCxsRSxkSixsRSxl
cyxsRSxlcSxsRSxpWSxsRSxlYSxsRSxpbSxsRSxpQyxsRSxpMSxsRSxlTixsRSxkbCxsRSxpNyxs
RSxpZyxsRSxkMyxsRSxlUCxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxs
RSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRV07dmFyIGIyPVtsRixsRixndyxsRixndSxsRixn
aSxsRixnZyxsRixsRixsRixsRixsRixsRixsRl07dmFyIGIzPVtsRyxsRyxkayxsRyxlNCxsRyxs
RyxsR107dmFyIGI0PVtsSCxsSCxoZSxsSCxoZCxsSCxoUSxsSCxoWSxsSCxoVyxsSCxoMSxsSCxs
SCxsSF07dmFyIGI1PVtsSSxsSSxsZSxsSV07dmFyIGI2PVtsSixsSixpdSxsSixqYyxsSixqbyxs
SixpdixsSixqcixsSixqRCxsSixqYixsSixqYSxsSixsSixsSixsSixsSixsSixsSixsSixsSixs
SixsSixsSixsSixsSixsSl07dmFyIGI3PVtsSyxsSyxnVyxsSyxnSSxsSyxsSyxsS107dmFyIGI4
PVtsTCxsTCxpYSxsTCxoNCxsTCxsTCxsTF07dmFyIGI5PVtsTSxsTSxrSCxsTSxncyxsTSxnbSxs
TSxnbyxsTSxrSSxsTSxneCxsTSxpaSxsTSxlZCxsTSxnbixsTSxnYSxsTSxnZSxsTSxmOCxsTSxr
RSxsTSxlYixsTSxpcCxsTV07dmFyIGNhPVtsTixsTixpWixsTixpXyxsTixpSCxsTixpRixsTixp
JCxsTixsTixsTixsTixsTl07dmFyIGNiPVtsTyxsTyxrQSxsTyxrQixsTyxlYyxsTyxrcixsTyxl
SyxsTyxmbSxsTyxmZCxsT107cmV0dXJue19zdHJsZW46azAsX2ZyZWU6a0ssX21haW46Y0QsX3Jl
YWxsb2M6a0wsX21lbW1vdmU6a18sX19HTE9CQUxfX0lfYTpjVCxfbWVtc2V0OmskLF9tYWxsb2M6
a0osX21lbWNweTprWSxfbGx2bV9jdGx6X2kzMjprWixfX0dMT0JBTF9fSV9hODpkeSxydW5Qb3N0
U2V0czpjcyxzdGFja0FsbG9jOmNjLHN0YWNrU2F2ZTpjZCxzdGFja1Jlc3RvcmU6Y2Usc2V0VGhy
ZXc6Y2Ysc2V0VGVtcFJldDA6Y2ksc2V0VGVtcFJldDE6Y2osc2V0VGVtcFJldDI6Y2ssc2V0VGVt
cFJldDM6Y2wsc2V0VGVtcFJldDQ6Y20sc2V0VGVtcFJldDU6Y24sc2V0VGVtcFJldDY6Y28sc2V0
VGVtcFJldDc6Y3Asc2V0VGVtcFJldDg6Y3Esc2V0VGVtcFJldDk6Y3IsZHluQ2FsbF92aWlpaWk6
bGYsZHluQ2FsbF92aWlpaWlpaTpsZyxkeW5DYWxsX3ZpOmxoLGR5bkNhbGxfdmlpOmxpLGR5bkNh
bGxfaWlpOmxqLGR5bkNhbGxfaWlpaWlpOmxrLGR5bkNhbGxfaWk6bGwsZHluQ2FsbF9paWlpOmxt
LGR5bkNhbGxfdmlpaWlpZjpsbixkeW5DYWxsX3ZpaWk6bG8sZHluQ2FsbF92aWlpaWlpaWk6bHAs
ZHluQ2FsbF92OmxxLGR5bkNhbGxfaWlpaWlpaWlpOmxyLGR5bkNhbGxfdmlpaWlpaWlpaTpscyxk
eW5DYWxsX3ZpaWlpaWlmOmx0LGR5bkNhbGxfdmlpaWlpaTpsdSxkeW5DYWxsX2lpaWlpOmx2LGR5
bkNhbGxfdmlpaWk6bHd9fSkKLS8vIEVNU0NSSVBURU5fRU5EX0FTTQotKHsgIk1hdGgiOiBNYXRo
LCAiSW50OEFycmF5IjogSW50OEFycmF5LCAiSW50MTZBcnJheSI6IEludDE2QXJyYXksICJJbnQz
MkFycmF5IjogSW50MzJBcnJheSwgIlVpbnQ4QXJyYXkiOiBVaW50OEFycmF5LCAiVWludDE2QXJy
YXkiOiBVaW50MTZBcnJheSwgIlVpbnQzMkFycmF5IjogVWludDMyQXJyYXksICJGbG9hdDMyQXJy
YXkiOiBGbG9hdDMyQXJyYXksICJGbG9hdDY0QXJyYXkiOiBGbG9hdDY0QXJyYXkgfSwgeyAiYWJv
cnQiOiBhYm9ydCwgImFzc2VydCI6IGFzc2VydCwgImFzbVByaW50SW50IjogYXNtUHJpbnRJbnQs
ICJhc21QcmludEZsb2F0IjogYXNtUHJpbnRGbG9hdCwgIm1pbiI6IE1hdGhfbWluLCAiaW52b2tl
X3ZpaWlpaSI6IGludm9rZV92aWlpaWksICJpbnZva2VfdmlpaWlpaWkiOiBpbnZva2VfdmlpaWlp
aWksICJpbnZva2VfdmkiOiBpbnZva2VfdmksICJpbnZva2VfdmlpIjogaW52b2tlX3ZpaSwgImlu
dm9rZV9paWkiOiBpbnZva2VfaWlpLCAiaW52b2tlX2lpaWlpaSI6IGludm9rZV9paWlpaWksICJp
bnZva2VfaWkiOiBpbnZva2VfaWksICJpbnZva2VfaWlpaSI6IGludm9rZV9paWlpLCAiaW52b2tl
X3ZpaWlpaWYiOiBpbnZva2VfdmlpaWlpZiwgImludm9rZV92aWlpIjogaW52b2tlX3ZpaWksICJp
bnZva2VfdmlpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlpaSwgImludm9rZV92IjogaW52b2tlX3Ys
ICJpbnZva2VfaWlpaWlpaWlpIjogaW52b2tlX2lpaWlpaWlpaSwgImludm9rZV92aWlpaWlpaWlp
IjogaW52b2tlX3ZpaWlpaWlpaWksICJpbnZva2VfdmlpaWlpaWYiOiBpbnZva2VfdmlpaWlpaWYs
ICJpbnZva2VfdmlpaWlpaSI6IGludm9rZV92aWlpaWlpLCAiaW52b2tlX2lpaWlpIjogaW52b2tl
X2lpaWlpLCAiaW52b2tlX3ZpaWlpIjogaW52b2tlX3ZpaWlpLCAiX2xsdm1fbGlmZXRpbWVfZW5k
IjogX2xsdm1fbGlmZXRpbWVfZW5kLCAiX19zY2FuU3RyaW5nIjogX19zY2FuU3RyaW5nLCAiX3B0
aHJlYWRfbXV0ZXhfbG9jayI6IF9wdGhyZWFkX211dGV4X2xvY2ssICJfX19jeGFfZW5kX2NhdGNo
IjogX19fY3hhX2VuZF9jYXRjaCwgIl9zdHJ0b3VsbCI6IF9zdHJ0b3VsbCwgIl9faXNGbG9hdCI6
IF9faXNGbG9hdCwgIl9mZmx1c2giOiBfZmZsdXNoLCAiX19pc0xlYXBZZWFyIjogX19pc0xlYXBZ
ZWFyLCAiX2Z3cml0ZSI6IF9md3JpdGUsICJfc2VuZCI6IF9zZW5kLCAiX2xsdm1fdW11bF93aXRo
X292ZXJmbG93X2kzMiI6IF9sbHZtX3VtdWxfd2l0aF9vdmVyZmxvd19pMzIsICJfaXNzcGFjZSI6
IF9pc3NwYWNlLCAiX3JlYWQiOiBfcmVhZCwgIl9fX2N4YV9ndWFyZF9hYm9ydCI6IF9fX2N4YV9n
dWFyZF9hYm9ydCwgIl9uZXdsb2NhbGUiOiBfbmV3bG9jYWxlLCAiX19fZ3h4X3BlcnNvbmFsaXR5
X3YwIjogX19fZ3h4X3BlcnNvbmFsaXR5X3YwLCAiX3B0aHJlYWRfY29uZF93YWl0IjogX3B0aHJl
YWRfY29uZF93YWl0LCAiX19fY3hhX3JldGhyb3ciOiBfX19jeGFfcmV0aHJvdywgIl9fX3Jlc3Vt
ZUV4Y2VwdGlvbiI6IF9fX3Jlc3VtZUV4Y2VwdGlvbiwgIl9sbHZtX3ZhX2VuZCI6IF9sbHZtX3Zh
X2VuZCwgIl92c3NjYW5mIjogX3Zzc2NhbmYsICJfc25wcmludGYiOiBfc25wcmludGYsICJfZmdl
dGMiOiBfZmdldGMsICJfYXRleGl0IjogX2F0ZXhpdCwgIl9fX2N4YV9mcmVlX2V4Y2VwdGlvbiI6
IF9fX2N4YV9mcmVlX2V4Y2VwdGlvbiwgIl9fWjhjYXRjbG9zZVA4X25sX2NhdGQiOiBfX1o4Y2F0
Y2xvc2VQOF9ubF9jYXRkLCAiX19fc2V0RXJyTm8iOiBfX19zZXRFcnJObywgIl9pc3hkaWdpdCI6
IF9pc3hkaWdpdCwgIl9leGl0IjogX2V4aXQsICJfc3ByaW50ZiI6IF9zcHJpbnRmLCAiX19fY3R5
cGVfYl9sb2MiOiBfX19jdHlwZV9iX2xvYywgIl9mcmVlbG9jYWxlIjogX2ZyZWVsb2NhbGUsICJf
X1o3Y2F0b3BlblBLY2kiOiBfX1o3Y2F0b3BlblBLY2ksICJfYXNwcmludGYiOiBfYXNwcmludGYs
ICJfX19jeGFfaXNfbnVtYmVyX3R5cGUiOiBfX19jeGFfaXNfbnVtYmVyX3R5cGUsICJfX19jeGFf
ZG9lc19pbmhlcml0IjogX19fY3hhX2RvZXNfaW5oZXJpdCwgIl9fX2N4YV9ndWFyZF9hY3F1aXJl
IjogX19fY3hhX2d1YXJkX2FjcXVpcmUsICJfX19sb2NhbGVfbWJfY3VyX21heCI6IF9fX2xvY2Fs
ZV9tYl9jdXJfbWF4LCAiX19fY3hhX2JlZ2luX2NhdGNoIjogX19fY3hhX2JlZ2luX2NhdGNoLCAi
X3JlY3YiOiBfcmVjdiwgIl9fcGFyc2VJbnQ2NCI6IF9fcGFyc2VJbnQ2NCwgIl9fWlN0MTh1bmNh
dWdodF9leGNlcHRpb252IjogX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYsICJfX19jeGFfY2Fs
bF91bmV4cGVjdGVkIjogX19fY3hhX2NhbGxfdW5leHBlY3RlZCwgIl9fZXhpdCI6IF9fZXhpdCwg
Il9zdHJmdGltZSI6IF9zdHJmdGltZSwgIl9fX2N4YV90aHJvdyI6IF9fX2N4YV90aHJvdywgIl9s
bHZtX2VoX2V4Y2VwdGlvbiI6IF9sbHZtX2VoX2V4Y2VwdGlvbiwgIl9wcmVhZCI6IF9wcmVhZCwg
Il9fYXJyYXlTdW0iOiBfX2FycmF5U3VtLCAiX2xvZyI6IF9sb2csICJfX19jeGFfZmluZF9tYXRj
aGluZ19jYXRjaCI6IF9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoLCAiX19mb3JtYXRTdHJpbmci
OiBfX2Zvcm1hdFN0cmluZywgIl9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0IjogX3B0aHJlYWRfY29u
ZF9icm9hZGNhc3QsICJfX1pTdDl0ZXJtaW5hdGV2IjogX19aU3Q5dGVybWluYXRldiwgIl9wdGhy
ZWFkX211dGV4X3VubG9jayI6IF9wdGhyZWFkX211dGV4X3VubG9jaywgIl9zYnJrIjogX3Nicmss
ICJfX19lcnJub19sb2NhdGlvbiI6IF9fX2Vycm5vX2xvY2F0aW9uLCAiX3N0cmVycm9yIjogX3N0
cmVycm9yLCAiX2xsdm1fbGlmZXRpbWVfc3RhcnQiOiBfbGx2bV9saWZldGltZV9zdGFydCwgIl9f
X2N4YV9ndWFyZF9yZWxlYXNlIjogX19fY3hhX2d1YXJkX3JlbGVhc2UsICJfdW5nZXRjIjogX3Vu
Z2V0YywgIl91c2Vsb2NhbGUiOiBfdXNlbG9jYWxlLCAiX3ZzbnByaW50ZiI6IF92c25wcmludGYs
ICJfc3NjYW5mIjogX3NzY2FuZiwgIl9zeXNjb25mIjogX3N5c2NvbmYsICJfZnJlYWQiOiBfZnJl
YWQsICJfYWJvcnQiOiBfYWJvcnQsICJfaXNkaWdpdCI6IF9pc2RpZ2l0LCAiX3N0cnRvbGwiOiBf
c3RydG9sbCwgIl9fYWRkRGF5cyI6IF9fYWRkRGF5cywgIl9mbG9vciI6IF9mbG9vciwgIl9fcmVh
bGx5TmVnYXRpdmUiOiBfX3JlYWxseU5lZ2F0aXZlLCAiX19aN2NhdGdldHNQOF9ubF9jYXRkaWlQ
S2MiOiBfX1o3Y2F0Z2V0c1A4X25sX2NhdGRpaVBLYywgIl93cml0ZSI6IF93cml0ZSwgIl9fX2N4
YV9hbGxvY2F0ZV9leGNlcHRpb24iOiBfX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uLCAiX19fY3hh
X3B1cmVfdmlydHVhbCI6IF9fX2N4YV9wdXJlX3ZpcnR1YWwsICJfdmFzcHJpbnRmIjogX3Zhc3By
aW50ZiwgIl9fX2N0eXBlX3RvdXBwZXJfbG9jIjogX19fY3R5cGVfdG91cHBlcl9sb2MsICJfX19j
dHlwZV90b2xvd2VyX2xvYyI6IF9fX2N0eXBlX3RvbG93ZXJfbG9jLCAiX3B3cml0ZSI6IF9wd3Jp
dGUsICJfc3RyZXJyb3JfciI6IF9zdHJlcnJvcl9yLCAiX3RpbWUiOiBfdGltZSwgIlNUQUNLVE9Q
IjogU1RBQ0tUT1AsICJTVEFDS19NQVgiOiBTVEFDS19NQVgsICJ0ZW1wRG91YmxlUHRyIjogdGVt
cERvdWJsZVB0ciwgIkFCT1JUIjogQUJPUlQsICJjdHR6X2k4IjogY3R0el9pOCwgImN0bHpfaTgi
OiBjdGx6X2k4LCAiTmFOIjogTmFOLCAiSW5maW5pdHkiOiBJbmZpbml0eSwgIl9zdGRpbiI6IF9z
dGRpbiwgIl9fWlRWTjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FIjogX19aVFZOMTBf
X2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UsICJfX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lf
Y2xhc3NfdHlwZV9pbmZvRSI6IF9fWlRWTjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2lu
Zm9FLCAiX3N0ZGVyciI6IF9zdGRlcnIsICJfX19mc211OCI6IF9fX2ZzbXU4LCAiX3N0ZG91dCI6
IF9zdGRvdXQsICJfX19kc29faGFuZGxlIjogX19fZHNvX2hhbmRsZSB9LCBidWZmZXIpOwotdmFy
IF9zdHJsZW4gPSBNb2R1bGVbIl9zdHJsZW4iXSA9IGFzbVsiX3N0cmxlbiJdOwotdmFyIF9mcmVl
ID0gTW9kdWxlWyJfZnJlZSJdID0gYXNtWyJfZnJlZSJdOwotdmFyIF9tYWluID0gTW9kdWxlWyJf
bWFpbiJdID0gYXNtWyJfbWFpbiJdOwotdmFyIF9yZWFsbG9jID0gTW9kdWxlWyJfcmVhbGxvYyJd
ID0gYXNtWyJfcmVhbGxvYyJdOwotdmFyIF9tZW1tb3ZlID0gTW9kdWxlWyJfbWVtbW92ZSJdID0g
YXNtWyJfbWVtbW92ZSJdOwotdmFyIF9fR0xPQkFMX19JX2EgPSBNb2R1bGVbIl9fR0xPQkFMX19J
X2EiXSA9IGFzbVsiX19HTE9CQUxfX0lfYSJdOwotdmFyIF9tZW1zZXQgPSBNb2R1bGVbIl9tZW1z
ZXQiXSA9IGFzbVsiX21lbXNldCJdOwotdmFyIF9tYWxsb2MgPSBNb2R1bGVbIl9tYWxsb2MiXSA9
IGFzbVsiX21hbGxvYyJdOwotdmFyIF9tZW1jcHkgPSBNb2R1bGVbIl9tZW1jcHkiXSA9IGFzbVsi
X21lbWNweSJdOwotdmFyIF9sbHZtX2N0bHpfaTMyID0gTW9kdWxlWyJfbGx2bV9jdGx6X2kzMiJd
ID0gYXNtWyJfbGx2bV9jdGx6X2kzMiJdOwotdmFyIF9fR0xPQkFMX19JX2E4ID0gTW9kdWxlWyJf
X0dMT0JBTF9fSV9hOCJdID0gYXNtWyJfX0dMT0JBTF9fSV9hOCJdOwotdmFyIHJ1blBvc3RTZXRz
ID0gTW9kdWxlWyJydW5Qb3N0U2V0cyJdID0gYXNtWyJydW5Qb3N0U2V0cyJdOwotdmFyIGR5bkNh
bGxfdmlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlp
aSJdOwotdmFyIGR5bkNhbGxfdmlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWkiXSA9
IGFzbVsiZHluQ2FsbF92aWlpaWlpaSJdOwotdmFyIGR5bkNhbGxfdmkgPSBNb2R1bGVbImR5bkNh
bGxfdmkiXSA9IGFzbVsiZHluQ2FsbF92aSJdOwotdmFyIGR5bkNhbGxfdmlpID0gTW9kdWxlWyJk
eW5DYWxsX3ZpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaSJdOwotdmFyIGR5bkNhbGxfaWlpID0gTW9k
dWxlWyJkeW5DYWxsX2lpaSJdID0gYXNtWyJkeW5DYWxsX2lpaSJdOwotdmFyIGR5bkNhbGxfaWlp
aWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaSJdID0gYXNtWyJkeW5DYWxsX2lpaWlpaSJdOwot
dmFyIGR5bkNhbGxfaWkgPSBNb2R1bGVbImR5bkNhbGxfaWkiXSA9IGFzbVsiZHluQ2FsbF9paSJd
OwotdmFyIGR5bkNhbGxfaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpIl0gPSBhc21bImR5bkNh
bGxfaWlpaSJdOwotdmFyIGR5bkNhbGxfdmlpaWlpZiA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlm
Il0gPSBhc21bImR5bkNhbGxfdmlpaWlpZiJdOwotdmFyIGR5bkNhbGxfdmlpaSA9IE1vZHVsZVsi
ZHluQ2FsbF92aWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaSJdOwotdmFyIGR5bkNhbGxfdmlpaWlp
aWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWlp
aSJdOwotdmFyIGR5bkNhbGxfdiA9IE1vZHVsZVsiZHluQ2FsbF92Il0gPSBhc21bImR5bkNhbGxf
diJdOwotdmFyIGR5bkNhbGxfaWlpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWlpaSJd
ID0gYXNtWyJkeW5DYWxsX2lpaWlpaWlpaSJdOwotdmFyIGR5bkNhbGxfdmlpaWlpaWlpaSA9IE1v
ZHVsZVsiZHluQ2FsbF92aWlpaWlpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWlpaWlpaSJdOwot
dmFyIGR5bkNhbGxfdmlpaWlpaWYgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWYiXSA9IGFzbVsi
ZHluQ2FsbF92aWlpaWlpZiJdOwotdmFyIGR5bkNhbGxfdmlpaWlpaSA9IE1vZHVsZVsiZHluQ2Fs
bF92aWlpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWlpaSJdOwotdmFyIGR5bkNhbGxfaWlpaWkg
PSBNb2R1bGVbImR5bkNhbGxfaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF9paWlpaSJdOwotdmFyIGR5
bkNhbGxfdmlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlp
aSJdOwotUnVudGltZS5zdGFja0FsbG9jID0gZnVuY3Rpb24oc2l6ZSkgeyByZXR1cm4gYXNtWydz
dGFja0FsbG9jJ10oc2l6ZSkgfTsKLVJ1bnRpbWUuc3RhY2tTYXZlID0gZnVuY3Rpb24oKSB7IHJl
dHVybiBhc21bJ3N0YWNrU2F2ZSddKCkgfTsKLVJ1bnRpbWUuc3RhY2tSZXN0b3JlID0gZnVuY3Rp
b24odG9wKSB7IGFzbVsnc3RhY2tSZXN0b3JlJ10odG9wKSB9OwotLy8gVE9ETzogc3RyaXAgb3V0
IHBhcnRzIG9mIHRoaXMgd2UgZG8gbm90IG5lZWQKLS8vPT09PT09PSBiZWdpbiBjbG9zdXJlIGk2
NCBjb2RlID09PT09PT0KLS8vIENvcHlyaWdodCAyMDA5IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0
aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBh
Y2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLS8vIHlvdSBtYXkgbm90
IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLS8v
IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotLy8KLS8vICAgICAgaHR0
cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0vLwotLy8gVW5sZXNzIHJl
cXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2Fy
ZQotLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4g
IkFTLUlTIiBCQVNJUywKLS8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFO
WSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotLy8gU2VlIHRoZSBMaWNlbnNlIGZv
ciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotLy8gbGlt
aXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgRGVmaW5l
cyBhIExvbmcgY2xhc3MgZm9yIHJlcHJlc2VudGluZyBhIDY0LWJpdCB0d28ncy1jb21wbGVtZW50
Ci0gKiBpbnRlZ2VyIHZhbHVlLCB3aGljaCBmYWl0aGZ1bGx5IHNpbXVsYXRlcyB0aGUgYmVoYXZp
b3Igb2YgYSBKYXZhICJsb25nIi4gVGhpcwotICogaW1wbGVtZW50YXRpb24gaXMgZGVyaXZlZCBm
cm9tIExvbmdMaWIgaW4gR1dULgotICoKLSAqLwotdmFyIGk2NE1hdGggPSAoZnVuY3Rpb24oKSB7
IC8vIEVtc2NyaXB0ZW4gd3JhcHBlcgotICB2YXIgZ29vZyA9IHsgbWF0aDoge30gfTsKLSAgLyoq
Ci0gICAqIENvbnN0cnVjdHMgYSA2NC1iaXQgdHdvJ3MtY29tcGxlbWVudCBpbnRlZ2VyLCBnaXZl
biBpdHMgbG93IGFuZCBoaWdoIDMyLWJpdAotICAgKiB2YWx1ZXMgYXMgKnNpZ25lZCogaW50ZWdl
cnMuICBTZWUgdGhlIGZyb20qIGZ1bmN0aW9ucyBiZWxvdyBmb3IgbW9yZQotICAgKiBjb252ZW5p
ZW50IHdheXMgb2YgY29uc3RydWN0aW5nIExvbmdzLgotICAgKgotICAgKiBUaGUgaW50ZXJuYWwg
cmVwcmVzZW50YXRpb24gb2YgYSBsb25nIGlzIHRoZSB0d28gZ2l2ZW4gc2lnbmVkLCAzMi1iaXQg
dmFsdWVzLgotICAgKiBXZSB1c2UgMzItYml0IHBpZWNlcyBiZWNhdXNlIHRoZXNlIGFyZSB0aGUg
c2l6ZSBvZiBpbnRlZ2VycyBvbiB3aGljaAotICAgKiBKYXZhc2NyaXB0IHBlcmZvcm1zIGJpdC1v
cGVyYXRpb25zLiAgRm9yIG9wZXJhdGlvbnMgbGlrZSBhZGRpdGlvbiBhbmQKLSAgICogbXVsdGlw
bGljYXRpb24sIHdlIHNwbGl0IGVhY2ggbnVtYmVyIGludG8gMTYtYml0IHBpZWNlcywgd2hpY2gg
Y2FuIGVhc2lseSBiZQotICAgKiBtdWx0aXBsaWVkIHdpdGhpbiBKYXZhc2NyaXB0J3MgZmxvYXRp
bmctcG9pbnQgcmVwcmVzZW50YXRpb24gd2l0aG91dCBvdmVyZmxvdwotICAgKiBvciBjaGFuZ2Ug
aW4gc2lnbi4KLSAgICoKLSAgICogSW4gdGhlIGFsZ29yaXRobXMgYmVsb3csIHdlIGZyZXF1ZW50
bHkgcmVkdWNlIHRoZSBuZWdhdGl2ZSBjYXNlIHRvIHRoZQotICAgKiBwb3NpdGl2ZSBjYXNlIGJ5
IG5lZ2F0aW5nIHRoZSBpbnB1dChzKSBhbmQgdGhlbiBwb3N0LXByb2Nlc3NpbmcgdGhlIHJlc3Vs
dC4KLSAgICogTm90ZSB0aGF0IHdlIG11c3QgQUxXQVlTIGNoZWNrIHNwZWNpYWxseSB3aGV0aGVy
IHRob3NlIHZhbHVlcyBhcmUgTUlOX1ZBTFVFCi0gICAqICgtMl42MykgYmVjYXVzZSAtTUlOX1ZB
TFVFID09IE1JTl9WQUxVRSAoc2luY2UgMl42MyBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYXMKLSAg
ICogYSBwb3NpdGl2ZSBudW1iZXIsIGl0IG92ZXJmbG93cyBiYWNrIGludG8gYSBuZWdhdGl2ZSku
ICBOb3QgaGFuZGxpbmcgdGhpcwotICAgKiBjYXNlIHdvdWxkIG9mdGVuIHJlc3VsdCBpbiBpbmZp
bml0ZSByZWN1cnNpb24uCi0gICAqCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBsb3cgIFRoZSBsb3cg
KHNpZ25lZCkgMzIgYml0cyBvZiB0aGUgbG9uZy4KLSAgICogQHBhcmFtIHtudW1iZXJ9IGhpZ2gg
IFRoZSBoaWdoIChzaWduZWQpIDMyIGJpdHMgb2YgdGhlIGxvbmcuCi0gICAqIEBjb25zdHJ1Y3Rv
cgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcgPSBmdW5jdGlvbihsb3csIGhpZ2gpIHsKLSAgICAv
KioKLSAgICAgKiBAdHlwZSB7bnVtYmVyfQotICAgICAqIEBwcml2YXRlCi0gICAgICovCi0gICAg
dGhpcy5sb3dfID0gbG93IHwgMDsgIC8vIGZvcmNlIGludG8gMzIgc2lnbmVkIGJpdHMuCi0gICAg
LyoqCi0gICAgICogQHR5cGUge251bWJlcn0KLSAgICAgKiBAcHJpdmF0ZQotICAgICAqLwotICAg
IHRoaXMuaGlnaF8gPSBoaWdoIHwgMDsgIC8vIGZvcmNlIGludG8gMzIgc2lnbmVkIGJpdHMuCi0g
IH07Ci0gIC8vIE5PVEU6IENvbW1vbiBjb25zdGFudCB2YWx1ZXMgWkVSTywgT05FLCBORUdfT05F
LCBldGMuIGFyZSBkZWZpbmVkIGJlbG93IHRoZQotICAvLyBmcm9tKiBtZXRob2RzIG9uIHdoaWNo
IHRoZXkgZGVwZW5kLgotICAvKioKLSAgICogQSBjYWNoZSBvZiB0aGUgTG9uZyByZXByZXNlbnRh
dGlvbnMgb2Ygc21hbGwgaW50ZWdlciB2YWx1ZXMuCi0gICAqIEB0eXBlIHshT2JqZWN0fQotICAg
KiBAcHJpdmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuSW50Q2FjaGVfID0ge307Ci0gIC8q
KgotICAgKiBSZXR1cm5zIGEgTG9uZyByZXByZXNlbnRpbmcgdGhlIGdpdmVuICgzMi1iaXQpIGlu
dGVnZXIgdmFsdWUuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgMzItYml0IGludGVn
ZXIgaW4gcXVlc3Rpb24uCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGNvcnJl
c3BvbmRpbmcgTG9uZyB2YWx1ZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLmZyb21JbnQgPSBm
dW5jdGlvbih2YWx1ZSkgewotICAgIGlmICgtMTI4IDw9IHZhbHVlICYmIHZhbHVlIDwgMTI4KSB7
Ci0gICAgICB2YXIgY2FjaGVkT2JqID0gZ29vZy5tYXRoLkxvbmcuSW50Q2FjaGVfW3ZhbHVlXTsK
LSAgICAgIGlmIChjYWNoZWRPYmopIHsKLSAgICAgICAgcmV0dXJuIGNhY2hlZE9iajsKLSAgICAg
IH0KLSAgICB9Ci0gICAgdmFyIG9iaiA9IG5ldyBnb29nLm1hdGguTG9uZyh2YWx1ZSB8IDAsIHZh
bHVlIDwgMCA/IC0xIDogMCk7Ci0gICAgaWYgKC0xMjggPD0gdmFsdWUgJiYgdmFsdWUgPCAxMjgp
IHsKLSAgICAgIGdvb2cubWF0aC5Mb25nLkludENhY2hlX1t2YWx1ZV0gPSBvYmo7Ci0gICAgfQot
ICAgIHJldHVybiBvYmo7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIGEgTG9uZyByZXByZXNl
bnRpbmcgdGhlIGdpdmVuIHZhbHVlLCBwcm92aWRlZCB0aGF0IGl0IGlzIGEgZmluaXRlCi0gICAq
IG51bWJlci4gIE90aGVyd2lzZSwgemVybyBpcyByZXR1cm5lZC4KLSAgICogQHBhcmFtIHtudW1i
ZXJ9IHZhbHVlIFRoZSBudW1iZXIgaW4gcXVlc3Rpb24uCi0gICAqIEByZXR1cm4geyFnb29nLm1h
dGguTG9uZ30gVGhlIGNvcnJlc3BvbmRpbmcgTG9uZyB2YWx1ZS4KLSAgICovCi0gIGdvb2cubWF0
aC5Mb25nLmZyb21OdW1iZXIgPSBmdW5jdGlvbih2YWx1ZSkgewotICAgIGlmIChpc05hTih2YWx1
ZSkgfHwgIWlzRmluaXRlKHZhbHVlKSkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLlpF
Uk87Ci0gICAgfSBlbHNlIGlmICh2YWx1ZSA8PSAtZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl82M19E
QkxfKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFOwotICAgIH0gZWxz
ZSBpZiAodmFsdWUgKyAxID49IGdvb2cubWF0aC5Mb25nLlRXT19QV1JfNjNfREJMXykgewotICAg
ICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLk1BWF9WQUxVRTsKLSAgICB9IGVsc2UgaWYgKHZhbHVl
IDwgMCkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIoLXZhbHVlKS5u
ZWdhdGUoKTsKLSAgICB9IGVsc2UgewotICAgICAgcmV0dXJuIG5ldyBnb29nLm1hdGguTG9uZygK
LSAgICAgICAgICAodmFsdWUgJSBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8pIHwgMCwK
LSAgICAgICAgICAodmFsdWUgLyBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8pIHwgMCk7
Ci0gICAgfQotICB9OwotICAvKioKLSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50aW5nIHRo
ZSA2NC1iaXQgaW50ZWdlciB0aGF0IGNvbWVzIGJ5IGNvbmNhdGVuYXRpbmcKLSAgICogdGhlIGdp
dmVuIGhpZ2ggYW5kIGxvdyBiaXRzLiAgRWFjaCBpcyBhc3N1bWVkIHRvIHVzZSAzMiBiaXRzLgot
ICAgKiBAcGFyYW0ge251bWJlcn0gbG93Qml0cyBUaGUgbG93IDMyLWJpdHMuCi0gICAqIEBwYXJh
bSB7bnVtYmVyfSBoaWdoQml0cyBUaGUgaGlnaCAzMi1iaXRzLgotICAgKiBAcmV0dXJuIHshZ29v
Zy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNwb25kaW5nIExvbmcgdmFsdWUuCi0gICAqLwotICBnb29n
Lm1hdGguTG9uZy5mcm9tQml0cyA9IGZ1bmN0aW9uKGxvd0JpdHMsIGhpZ2hCaXRzKSB7Ci0gICAg
cmV0dXJuIG5ldyBnb29nLm1hdGguTG9uZyhsb3dCaXRzLCBoaWdoQml0cyk7Ci0gIH07Ci0gIC8q
KgotICAgKiBSZXR1cm5zIGEgTG9uZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gc3RyaW5n
LCB3cml0dGVuIHVzaW5nIHRoZSBnaXZlbgotICAgKiByYWRpeC4KLSAgICogQHBhcmFtIHtzdHJp
bmd9IHN0ciBUaGUgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgTG9uZy4KLSAgICogQHBh
cmFtIHtudW1iZXI9fSBvcHRfcmFkaXggVGhlIHJhZGl4IGluIHdoaWNoIHRoZSB0ZXh0IGlzIHdy
aXR0ZW4uCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGNvcnJlc3BvbmRpbmcg
TG9uZyB2YWx1ZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLmZyb21TdHJpbmcgPSBmdW5jdGlv
bihzdHIsIG9wdF9yYWRpeCkgewotICAgIGlmIChzdHIubGVuZ3RoID09IDApIHsKLSAgICAgIHRo
cm93IEVycm9yKCdudW1iZXIgZm9ybWF0IGVycm9yOiBlbXB0eSBzdHJpbmcnKTsKLSAgICB9Ci0g
ICAgdmFyIHJhZGl4ID0gb3B0X3JhZGl4IHx8IDEwOwotICAgIGlmIChyYWRpeCA8IDIgfHwgMzYg
PCByYWRpeCkgewotICAgICAgdGhyb3cgRXJyb3IoJ3JhZGl4IG91dCBvZiByYW5nZTogJyArIHJh
ZGl4KTsKLSAgICB9Ci0gICAgaWYgKHN0ci5jaGFyQXQoMCkgPT0gJy0nKSB7Ci0gICAgICByZXR1
cm4gZ29vZy5tYXRoLkxvbmcuZnJvbVN0cmluZyhzdHIuc3Vic3RyaW5nKDEpLCByYWRpeCkubmVn
YXRlKCk7Ci0gICAgfSBlbHNlIGlmIChzdHIuaW5kZXhPZignLScpID49IDApIHsKLSAgICAgIHRo
cm93IEVycm9yKCdudW1iZXIgZm9ybWF0IGVycm9yOiBpbnRlcmlvciAiLSIgY2hhcmFjdGVyOiAn
ICsgc3RyKTsKLSAgICB9Ci0gICAgLy8gRG8gc2V2ZXJhbCAoOCkgZGlnaXRzIGVhY2ggdGltZSB0
aHJvdWdoIHRoZSBsb29wLCBzbyBhcyB0bwotICAgIC8vIG1pbmltaXplIHRoZSBjYWxscyB0byB0
aGUgdmVyeSBleHBlbnNpdmUgZW11bGF0ZWQgZGl2LgotICAgIHZhciByYWRpeFRvUG93ZXIgPSBn
b29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKE1hdGgucG93KHJhZGl4LCA4KSk7Ci0gICAgdmFyIHJl
c3VsdCA9IGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIu
bGVuZ3RoOyBpICs9IDgpIHsKLSAgICAgIHZhciBzaXplID0gTWF0aC5taW4oOCwgc3RyLmxlbmd0
aCAtIGkpOwotICAgICAgdmFyIHZhbHVlID0gcGFyc2VJbnQoc3RyLnN1YnN0cmluZyhpLCBpICsg
c2l6ZSksIHJhZGl4KTsKLSAgICAgIGlmIChzaXplIDwgOCkgewotICAgICAgICB2YXIgcG93ZXIg
PSBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKE1hdGgucG93KHJhZGl4LCBzaXplKSk7Ci0gICAg
ICAgIHJlc3VsdCA9IHJlc3VsdC5tdWx0aXBseShwb3dlcikuYWRkKGdvb2cubWF0aC5Mb25nLmZy
b21OdW1iZXIodmFsdWUpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJlc3VsdCA9IHJlc3Vs
dC5tdWx0aXBseShyYWRpeFRvUG93ZXIpOwotICAgICAgICByZXN1bHQgPSByZXN1bHQuYWRkKGdv
b2cubWF0aC5Mb25nLmZyb21OdW1iZXIodmFsdWUpKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmV0
dXJuIHJlc3VsdDsKLSAgfTsKLSAgLy8gTk9URTogdGhlIGNvbXBpbGVyIHNob3VsZCBpbmxpbmUg
dGhlc2UgY29uc3RhbnQgdmFsdWVzIGJlbG93IGFuZCB0aGVuIHJlbW92ZQotICAvLyB0aGVzZSB2
YXJpYWJsZXMsIHNvIHRoZXJlIHNob3VsZCBiZSBubyBydW50aW1lIHBlbmFsdHkgZm9yIHRoZXNl
LgotICAvKioKLSAgICogTnVtYmVyIHVzZWQgcmVwZWF0ZWQgYmVsb3cgaW4gY2FsY3VsYXRpb25z
LiAgVGhpcyBtdXN0IGFwcGVhciBiZWZvcmUgdGhlCi0gICAqIGZpcnN0IGNhbGwgdG8gYW55IGZy
b20qIGZ1bmN0aW9uIGJlbG93LgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQot
ICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8xNl9EQkxfID0gMSA8PCAxNjsKLSAgLyoq
Ci0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGgu
TG9uZy5UV09fUFdSXzI0X0RCTF8gPSAxIDw8IDI0OwotICAvKioKLSAgICogQHR5cGUge251bWJl
cn0KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJM
XyA9Ci0gICAgICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzE2X0RCTF8gKiBnb29nLm1hdGguTG9u
Zy5UV09fUFdSXzE2X0RCTF87Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJp
dmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMV9EQkxfID0KLSAgICAgIGdv
b2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXyAvIDI7Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVt
YmVyfQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl80OF9E
QkxfID0KLSAgICAgIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXyAqIGdvb2cubWF0aC5M
b25nLlRXT19QV1JfMTZfREJMXzsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBw
cml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzY0X0RCTF8gPQotICAgICAg
Z29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfICogZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8z
Ml9EQkxfOwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUKLSAgICov
Ci0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfNjNfREJMXyA9Ci0gICAgICBnb29nLm1hdGguTG9u
Zy5UV09fUFdSXzY0X0RCTF8gLyAyOwotICAvKiogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8K
LSAgZ29vZy5tYXRoLkxvbmcuWkVSTyA9IGdvb2cubWF0aC5Mb25nLmZyb21JbnQoMCk7Ci0gIC8q
KiBAdHlwZSB7IWdvb2cubWF0aC5Mb25nfSAqLwotICBnb29nLm1hdGguTG9uZy5PTkUgPSBnb29n
Lm1hdGguTG9uZy5mcm9tSW50KDEpOwotICAvKiogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8K
LSAgZ29vZy5tYXRoLkxvbmcuTkVHX09ORSA9IGdvb2cubWF0aC5Mb25nLmZyb21JbnQoLTEpOwot
ICAvKiogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRoLkxvbmcuTUFYX1ZB
TFVFID0KLSAgICAgIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKDB4RkZGRkZGRkYgfCAwLCAweDdG
RkZGRkZGIHwgMCk7Ci0gIC8qKiBAdHlwZSB7IWdvb2cubWF0aC5Mb25nfSAqLwotICBnb29nLm1h
dGguTG9uZy5NSU5fVkFMVUUgPSBnb29nLm1hdGguTG9uZy5mcm9tQml0cygwLCAweDgwMDAwMDAw
IHwgMCk7Ci0gIC8qKgotICAgKiBAdHlwZSB7IWdvb2cubWF0aC5Mb25nfQotICAgKiBAcHJpdmF0
ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8yNF8gPSBnb29nLm1hdGguTG9uZy5m
cm9tSW50KDEgPDwgMjQpOwotICAvKiogQHJldHVybiB7bnVtYmVyfSBUaGUgdmFsdWUsIGFzc3Vt
aW5nIGl0IGlzIGEgMzItYml0IGludGVnZXIuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlw
ZS50b0ludCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmxvd187Ci0gIH07Ci0gIC8q
KiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBjbG9zZXN0IGZsb2F0aW5nLXBvaW50IHJlcHJlc2VudGF0
aW9uIHRvIHRoaXMgdmFsdWUuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS50b051bWJl
ciA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmhpZ2hfICogZ29vZy5tYXRoLkxvbmcu
VFdPX1BXUl8zMl9EQkxfICsKLSAgICAgICAgICAgdGhpcy5nZXRMb3dCaXRzVW5zaWduZWQoKTsK
LSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7bnVtYmVyPX0gb3B0X3JhZGl4IFRoZSByYWRpeCBp
biB3aGljaCB0aGUgdGV4dCBzaG91bGQgYmUgd3JpdHRlbi4KLSAgICogQHJldHVybiB7c3RyaW5n
fSBUaGUgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHZhbHVlLgotICAgKi8KLSAgZ29v
Zy5tYXRoLkxvbmcucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24ob3B0X3JhZGl4KSB7Ci0g
ICAgdmFyIHJhZGl4ID0gb3B0X3JhZGl4IHx8IDEwOwotICAgIGlmIChyYWRpeCA8IDIgfHwgMzYg
PCByYWRpeCkgewotICAgICAgdGhyb3cgRXJyb3IoJ3JhZGl4IG91dCBvZiByYW5nZTogJyArIHJh
ZGl4KTsKLSAgICB9Ci0gICAgaWYgKHRoaXMuaXNaZXJvKCkpIHsKLSAgICAgIHJldHVybiAnMCc7
Ci0gICAgfQotICAgIGlmICh0aGlzLmlzTmVnYXRpdmUoKSkgewotICAgICAgaWYgKHRoaXMuZXF1
YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgICAgLy8gV2UgbmVlZCB0byBj
aGFuZ2UgdGhlIExvbmcgdmFsdWUgYmVmb3JlIGl0IGNhbiBiZSBuZWdhdGVkLCBzbyB3ZSByZW1v
dmUKLSAgICAgICAgLy8gdGhlIGJvdHRvbS1tb3N0IGRpZ2l0IGluIHRoaXMgYmFzZSBhbmQgdGhl
biByZWN1cnNlIHRvIGRvIHRoZSByZXN0LgotICAgICAgICB2YXIgcmFkaXhMb25nID0gZ29vZy5t
YXRoLkxvbmcuZnJvbU51bWJlcihyYWRpeCk7Ci0gICAgICAgIHZhciBkaXYgPSB0aGlzLmRpdihy
YWRpeExvbmcpOwotICAgICAgICB2YXIgcmVtID0gZGl2Lm11bHRpcGx5KHJhZGl4TG9uZykuc3Vi
dHJhY3QodGhpcyk7Ci0gICAgICAgIHJldHVybiBkaXYudG9TdHJpbmcocmFkaXgpICsgcmVtLnRv
SW50KCkudG9TdHJpbmcocmFkaXgpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuICct
JyArIHRoaXMubmVnYXRlKCkudG9TdHJpbmcocmFkaXgpOwotICAgICAgfQotICAgIH0KLSAgICAv
LyBEbyBzZXZlcmFsICg2KSBkaWdpdHMgZWFjaCB0aW1lIHRocm91Z2ggdGhlIGxvb3AsIHNvIGFz
IHRvCi0gICAgLy8gbWluaW1pemUgdGhlIGNhbGxzIHRvIHRoZSB2ZXJ5IGV4cGVuc2l2ZSBlbXVs
YXRlZCBkaXYuCi0gICAgdmFyIHJhZGl4VG9Qb3dlciA9IGdvb2cubWF0aC5Mb25nLmZyb21OdW1i
ZXIoTWF0aC5wb3cocmFkaXgsIDYpKTsKLSAgICB2YXIgcmVtID0gdGhpczsKLSAgICB2YXIgcmVz
dWx0ID0gJyc7Ci0gICAgd2hpbGUgKHRydWUpIHsKLSAgICAgIHZhciByZW1EaXYgPSByZW0uZGl2
KHJhZGl4VG9Qb3dlcik7Ci0gICAgICB2YXIgaW50dmFsID0gcmVtLnN1YnRyYWN0KHJlbURpdi5t
dWx0aXBseShyYWRpeFRvUG93ZXIpKS50b0ludCgpOwotICAgICAgdmFyIGRpZ2l0cyA9IGludHZh
bC50b1N0cmluZyhyYWRpeCk7Ci0gICAgICByZW0gPSByZW1EaXY7Ci0gICAgICBpZiAocmVtLmlz
WmVybygpKSB7Ci0gICAgICAgIHJldHVybiBkaWdpdHMgKyByZXN1bHQ7Ci0gICAgICB9IGVsc2Ug
ewotICAgICAgICB3aGlsZSAoZGlnaXRzLmxlbmd0aCA8IDYpIHsKLSAgICAgICAgICBkaWdpdHMg
PSAnMCcgKyBkaWdpdHM7Ci0gICAgICAgIH0KLSAgICAgICAgcmVzdWx0ID0gJycgKyBkaWdpdHMg
KyByZXN1bHQ7Ci0gICAgICB9Ci0gICAgfQotICB9OwotICAvKiogQHJldHVybiB7bnVtYmVyfSBU
aGUgaGlnaCAzMi1iaXRzIGFzIGEgc2lnbmVkIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5w
cm90b3R5cGUuZ2V0SGlnaEJpdHMgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdo
XzsKLSAgfTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhlIGxvdyAzMi1iaXRzIGFzIGEgc2ln
bmVkIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZ2V0TG93Qml0cyA9IGZ1
bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmxvd187Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtu
dW1iZXJ9IFRoZSBsb3cgMzItYml0cyBhcyBhbiB1bnNpZ25lZCB2YWx1ZS4gKi8KLSAgZ29vZy5t
YXRoLkxvbmcucHJvdG90eXBlLmdldExvd0JpdHNVbnNpZ25lZCA9IGZ1bmN0aW9uKCkgewotICAg
IHJldHVybiAodGhpcy5sb3dfID49IDApID8KLSAgICAgICAgdGhpcy5sb3dfIDogZ29vZy5tYXRo
LkxvbmcuVFdPX1BXUl8zMl9EQkxfICsgdGhpcy5sb3dfOwotICB9OwotICAvKioKLSAgICogQHJl
dHVybiB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYml0cyBuZWVkZWQgdG8gcmVwcmVz
ZW50IHRoZSBhYnNvbHV0ZQotICAgKiAgICAgdmFsdWUgb2YgdGhpcyBMb25nLgotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmdldE51bUJpdHNBYnMgPSBmdW5jdGlvbigpIHsKLSAg
ICBpZiAodGhpcy5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIGlmICh0aGlzLmVxdWFscyhnb29nLm1h
dGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICAgIHJldHVybiA2NDsKLSAgICAgIH0gZWxzZSB7
Ci0gICAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZSgpLmdldE51bUJpdHNBYnMoKTsKLSAgICAgIH0K
LSAgICB9IGVsc2UgewotICAgICAgdmFyIHZhbCA9IHRoaXMuaGlnaF8gIT0gMCA/IHRoaXMuaGln
aF8gOiB0aGlzLmxvd187Ci0gICAgICBmb3IgKHZhciBiaXQgPSAzMTsgYml0ID4gMDsgYml0LS0p
IHsKLSAgICAgICAgaWYgKCh2YWwgJiAoMSA8PCBiaXQpKSAhPSAwKSB7Ci0gICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiB0aGlzLmhpZ2hfICE9IDAgPyBi
aXQgKyAzMyA6IGJpdCArIDE7Ci0gICAgfQotICB9OwotICAvKiogQHJldHVybiB7Ym9vbGVhbn0g
V2hldGhlciB0aGlzIHZhbHVlIGlzIHplcm8uICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlw
ZS5pc1plcm8gPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdoXyA9PSAwICYmIHRo
aXMubG93XyA9PSAwOwotICB9OwotICAvKiogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlz
IHZhbHVlIGlzIG5lZ2F0aXZlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuaXNOZWdh
dGl2ZSA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmhpZ2hfIDwgMDsKLSAgfTsKLSAg
LyoqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyB2YWx1ZSBpcyBvZGQuICovCi0gIGdv
b2cubWF0aC5Mb25nLnByb3RvdHlwZS5pc09kZCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiAo
dGhpcy5sb3dfICYgMSkgPT0gMTsKLSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRo
Lkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29s
ZWFufSBXaGV0aGVyIHRoaXMgTG9uZyBlcXVhbHMgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5t
YXRoLkxvbmcucHJvdG90eXBlLmVxdWFscyA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJu
ICh0aGlzLmhpZ2hfID09IG90aGVyLmhpZ2hfKSAmJiAodGhpcy5sb3dfID09IG90aGVyLmxvd18p
OwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0
byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBM
b25nIGRvZXMgbm90IGVxdWFsIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnBy
b3RvdHlwZS5ub3RFcXVhbHMgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiAodGhpcy5o
aWdoXyAhPSBvdGhlci5oaWdoXykgfHwgKHRoaXMubG93XyAhPSBvdGhlci5sb3dfKTsKLSAgfTsK
LSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFy
ZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9uZyBpcyBs
ZXNzIHRoYW4gdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmxl
c3NUaGFuID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhpcy5jb21wYXJlKG90aGVy
KSA8IDA7Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBM
b25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0
aGlzIExvbmcgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBvdGhlci4KLSAgICovCi0gIGdv
b2cubWF0aC5Mb25nLnByb3RvdHlwZS5sZXNzVGhhbk9yRXF1YWwgPSBmdW5jdGlvbihvdGhlcikg
ewotICAgIHJldHVybiB0aGlzLmNvbXBhcmUob3RoZXIpIDw9IDA7Ci0gIH07Ci0gIC8qKgotICAg
KiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4K
LSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExvbmcgaXMgZ3JlYXRlciB0aGFu
IHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5ncmVhdGVyVGhh
biA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikgPiAw
OwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0
byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBM
b25nIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgb3RoZXIuCi0gICAqLwotICBnb29n
Lm1hdGguTG9uZy5wcm90b3R5cGUuZ3JlYXRlclRoYW5PckVxdWFsID0gZnVuY3Rpb24ob3RoZXIp
IHsKLSAgICByZXR1cm4gdGhpcy5jb21wYXJlKG90aGVyKSA+PSAwOwotICB9OwotICAvKioKLSAg
ICogQ29tcGFyZXMgdGhpcyBMb25nIHdpdGggdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtn
b29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1
cm4ge251bWJlcn0gMCBpZiB0aGV5IGFyZSB0aGUgc2FtZSwgMSBpZiB0aGUgdGhpcyBpcyBncmVh
dGVyLCBhbmQgLTEKLSAgICogICAgIGlmIHRoZSBnaXZlbiBvbmUgaXMgZ3JlYXRlci4KLSAgICov
Ci0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24ob3RoZXIpIHsK
LSAgICBpZiAodGhpcy5lcXVhbHMob3RoZXIpKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0g
ICAgdmFyIHRoaXNOZWcgPSB0aGlzLmlzTmVnYXRpdmUoKTsKLSAgICB2YXIgb3RoZXJOZWcgPSBv
dGhlci5pc05lZ2F0aXZlKCk7Ci0gICAgaWYgKHRoaXNOZWcgJiYgIW90aGVyTmVnKSB7Ci0gICAg
ICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGlmICghdGhpc05lZyAmJiBvdGhlck5lZykgewotICAg
ICAgcmV0dXJuIDE7Ci0gICAgfQotICAgIC8vIGF0IHRoaXMgcG9pbnQsIHRoZSBzaWducyBhcmUg
dGhlIHNhbWUsIHNvIHN1YnRyYWN0aW9uIHdpbGwgbm90IG92ZXJmbG93Ci0gICAgaWYgKHRoaXMu
c3VidHJhY3Qob3RoZXIpLmlzTmVnYXRpdmUoKSkgewotICAgICAgcmV0dXJuIC0xOwotICAgIH0g
ZWxzZSB7Ci0gICAgICByZXR1cm4gMTsKLSAgICB9Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHshZ29v
Zy5tYXRoLkxvbmd9IFRoZSBuZWdhdGlvbiBvZiB0aGlzIHZhbHVlLiAqLwotICBnb29nLm1hdGgu
TG9uZy5wcm90b3R5cGUubmVnYXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgaWYgKHRoaXMuZXF1YWxz
KGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9u
Zy5NSU5fVkFMVUU7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiB0aGlzLm5vdCgpLmFkZChn
b29nLm1hdGguTG9uZy5PTkUpOwotICAgIH0KLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhl
IHN1bSBvZiB0aGlzIGFuZCB0aGUgZ2l2ZW4gTG9uZy4KLSAgICogQHBhcmFtIHtnb29nLm1hdGgu
TG9uZ30gb3RoZXIgTG9uZyB0byBhZGQgdG8gdGhpcyBvbmUuCi0gICAqIEByZXR1cm4geyFnb29n
Lm1hdGguTG9uZ30gVGhlIHN1bSBvZiB0aGlzIGFuZCB0aGUgZ2l2ZW4gTG9uZy4KLSAgICovCi0g
IGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbihvdGhlcikgewotICAgIC8v
IERpdmlkZSBlYWNoIG51bWJlciBpbnRvIDQgY2h1bmtzIG9mIDE2IGJpdHMsIGFuZCB0aGVuIHN1
bSB0aGUgY2h1bmtzLgotICAgIHZhciBhNDggPSB0aGlzLmhpZ2hfID4+PiAxNjsKLSAgICB2YXIg
YTMyID0gdGhpcy5oaWdoXyAmIDB4RkZGRjsKLSAgICB2YXIgYTE2ID0gdGhpcy5sb3dfID4+PiAx
NjsKLSAgICB2YXIgYTAwID0gdGhpcy5sb3dfICYgMHhGRkZGOwotICAgIHZhciBiNDggPSBvdGhl
ci5oaWdoXyA+Pj4gMTY7Ci0gICAgdmFyIGIzMiA9IG90aGVyLmhpZ2hfICYgMHhGRkZGOwotICAg
IHZhciBiMTYgPSBvdGhlci5sb3dfID4+PiAxNjsKLSAgICB2YXIgYjAwID0gb3RoZXIubG93XyAm
IDB4RkZGRjsKLSAgICB2YXIgYzQ4ID0gMCwgYzMyID0gMCwgYzE2ID0gMCwgYzAwID0gMDsKLSAg
ICBjMDAgKz0gYTAwICsgYjAwOwotICAgIGMxNiArPSBjMDAgPj4+IDE2OwotICAgIGMwMCAmPSAw
eEZGRkY7Ci0gICAgYzE2ICs9IGExNiArIGIxNjsKLSAgICBjMzIgKz0gYzE2ID4+PiAxNjsKLSAg
ICBjMTYgJj0gMHhGRkZGOwotICAgIGMzMiArPSBhMzIgKyBiMzI7Ci0gICAgYzQ4ICs9IGMzMiA+
Pj4gMTY7Ci0gICAgYzMyICY9IDB4RkZGRjsKLSAgICBjNDggKz0gYTQ4ICsgYjQ4OwotICAgIGM0
OCAmPSAweEZGRkY7Ci0gICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKChjMTYgPDwg
MTYpIHwgYzAwLCAoYzQ4IDw8IDE2KSB8IGMzMik7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5z
IHRoZSBkaWZmZXJlbmNlIG9mIHRoaXMgYW5kIHRoZSBnaXZlbiBMb25nLgotICAgKiBAcGFyYW0g
e2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIHN1YnRyYWN0IGZyb20gdGhpcy4KLSAgICog
QHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgZGlmZmVyZW5jZSBvZiB0aGlzIGFuZCB0aGUg
Z2l2ZW4gTG9uZy4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5zdWJ0cmFjdCA9
IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMuYWRkKG90aGVyLm5lZ2F0ZSgpKTsK
LSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhlIHByb2R1Y3Qgb2YgdGhpcyBhbmQgdGhlIGdp
dmVuIGxvbmcuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gbXVs
dGlwbHkgd2l0aCB0aGlzLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBwcm9k
dWN0IG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3Rv
dHlwZS5tdWx0aXBseSA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgaWYgKHRoaXMuaXNaZXJvKCkp
IHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0gZWxzZSBpZiAob3Ro
ZXIuaXNaZXJvKCkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0K
LSAgICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAg
cmV0dXJuIG90aGVyLmlzT2RkKCkgPyBnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUgOiBnb29nLm1h
dGguTG9uZy5aRVJPOwotICAgIH0gZWxzZSBpZiAob3RoZXIuZXF1YWxzKGdvb2cubWF0aC5Mb25n
Lk1JTl9WQUxVRSkpIHsKLSAgICAgIHJldHVybiB0aGlzLmlzT2RkKCkgPyBnb29nLm1hdGguTG9u
Zy5NSU5fVkFMVUUgOiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0KLSAgICBpZiAodGhpcy5p
c05lZ2F0aXZlKCkpIHsKLSAgICAgIGlmIChvdGhlci5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMubmVnYXRlKCkubXVsdGlwbHkob3RoZXIubmVnYXRlKCkpOwotICAgICAgfSBl
bHNlIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmVnYXRlKCkubXVsdGlwbHkob3RoZXIpLm5lZ2F0
ZSgpOwotICAgICAgfQotICAgIH0gZWxzZSBpZiAob3RoZXIuaXNOZWdhdGl2ZSgpKSB7Ci0gICAg
ICByZXR1cm4gdGhpcy5tdWx0aXBseShvdGhlci5uZWdhdGUoKSkubmVnYXRlKCk7Ci0gICAgfQot
ICAgIC8vIElmIGJvdGggbG9uZ3MgYXJlIHNtYWxsLCB1c2UgZmxvYXQgbXVsdGlwbGljYXRpb24K
LSAgICBpZiAodGhpcy5sZXNzVGhhbihnb29nLm1hdGguTG9uZy5UV09fUFdSXzI0XykgJiYKLSAg
ICAgICAgb3RoZXIubGVzc1RoYW4oZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8yNF8pKSB7Ci0gICAg
ICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcih0aGlzLnRvTnVtYmVyKCkgKiBvdGhl
ci50b051bWJlcigpKTsKLSAgICB9Ci0gICAgLy8gRGl2aWRlIGVhY2ggbG9uZyBpbnRvIDQgY2h1
bmtzIG9mIDE2IGJpdHMsIGFuZCB0aGVuIGFkZCB1cCA0eDQgcHJvZHVjdHMuCi0gICAgLy8gV2Ug
Y2FuIHNraXAgcHJvZHVjdHMgdGhhdCB3b3VsZCBvdmVyZmxvdy4KLSAgICB2YXIgYTQ4ID0gdGhp
cy5oaWdoXyA+Pj4gMTY7Ci0gICAgdmFyIGEzMiA9IHRoaXMuaGlnaF8gJiAweEZGRkY7Ci0gICAg
dmFyIGExNiA9IHRoaXMubG93XyA+Pj4gMTY7Ci0gICAgdmFyIGEwMCA9IHRoaXMubG93XyAmIDB4
RkZGRjsKLSAgICB2YXIgYjQ4ID0gb3RoZXIuaGlnaF8gPj4+IDE2OwotICAgIHZhciBiMzIgPSBv
dGhlci5oaWdoXyAmIDB4RkZGRjsKLSAgICB2YXIgYjE2ID0gb3RoZXIubG93XyA+Pj4gMTY7Ci0g
ICAgdmFyIGIwMCA9IG90aGVyLmxvd18gJiAweEZGRkY7Ci0gICAgdmFyIGM0OCA9IDAsIGMzMiA9
IDAsIGMxNiA9IDAsIGMwMCA9IDA7Ci0gICAgYzAwICs9IGEwMCAqIGIwMDsKLSAgICBjMTYgKz0g
YzAwID4+PiAxNjsKLSAgICBjMDAgJj0gMHhGRkZGOwotICAgIGMxNiArPSBhMTYgKiBiMDA7Ci0g
ICAgYzMyICs9IGMxNiA+Pj4gMTY7Ci0gICAgYzE2ICY9IDB4RkZGRjsKLSAgICBjMTYgKz0gYTAw
ICogYjE2OwotICAgIGMzMiArPSBjMTYgPj4+IDE2OwotICAgIGMxNiAmPSAweEZGRkY7Ci0gICAg
YzMyICs9IGEzMiAqIGIwMDsKLSAgICBjNDggKz0gYzMyID4+PiAxNjsKLSAgICBjMzIgJj0gMHhG
RkZGOwotICAgIGMzMiArPSBhMTYgKiBiMTY7Ci0gICAgYzQ4ICs9IGMzMiA+Pj4gMTY7Ci0gICAg
YzMyICY9IDB4RkZGRjsKLSAgICBjMzIgKz0gYTAwICogYjMyOwotICAgIGM0OCArPSBjMzIgPj4+
IDE2OwotICAgIGMzMiAmPSAweEZGRkY7Ci0gICAgYzQ4ICs9IGE0OCAqIGIwMCArIGEzMiAqIGIx
NiArIGExNiAqIGIzMiArIGEwMCAqIGI0ODsKLSAgICBjNDggJj0gMHhGRkZGOwotICAgIHJldHVy
biBnb29nLm1hdGguTG9uZy5mcm9tQml0cygoYzE2IDw8IDE2KSB8IGMwMCwgKGM0OCA8PCAxNikg
fCBjMzIpOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGlzIExvbmcgZGl2aWRlZCBieSB0
aGUgZ2l2ZW4gb25lLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIGJ5
IHdoaWNoIHRvIGRpdmlkZS4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGlzIExv
bmcgZGl2aWRlZCBieSB0aGUgZ2l2ZW4gb25lLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJv
dG90eXBlLmRpdiA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgaWYgKG90aGVyLmlzWmVybygpKSB7
Ci0gICAgICB0aHJvdyBFcnJvcignZGl2aXNpb24gYnkgemVybycpOwotICAgIH0gZWxzZSBpZiAo
dGhpcy5pc1plcm8oKSkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAg
fQotICAgIGlmICh0aGlzLmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAg
ICBpZiAob3RoZXIuZXF1YWxzKGdvb2cubWF0aC5Mb25nLk9ORSkgfHwKLSAgICAgICAgICBvdGhl
ci5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTkVHX09ORSkpIHsKLSAgICAgICAgcmV0dXJuIGdvb2cu
bWF0aC5Mb25nLk1JTl9WQUxVRTsgIC8vIHJlY2FsbCB0aGF0IC1NSU5fVkFMVUUgPT0gTUlOX1ZB
TFVFCi0gICAgICB9IGVsc2UgaWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5fVkFM
VUUpKSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5PTkU7Ci0gICAgICB9IGVsc2Ug
ewotICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBoYXZlIHxvdGhlcnwgPj0gMiwgc28gfHRo
aXMvb3RoZXJ8IDwgfE1JTl9WQUxVRXwuCi0gICAgICAgIHZhciBoYWxmVGhpcyA9IHRoaXMuc2hp
ZnRSaWdodCgxKTsKLSAgICAgICAgdmFyIGFwcHJveCA9IGhhbGZUaGlzLmRpdihvdGhlcikuc2hp
ZnRMZWZ0KDEpOwotICAgICAgICBpZiAoYXBwcm94LmVxdWFscyhnb29nLm1hdGguTG9uZy5aRVJP
KSkgewotICAgICAgICAgIHJldHVybiBvdGhlci5pc05lZ2F0aXZlKCkgPyBnb29nLm1hdGguTG9u
Zy5PTkUgOiBnb29nLm1hdGguTG9uZy5ORUdfT05FOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgIHZhciByZW0gPSB0aGlzLnN1YnRyYWN0KG90aGVyLm11bHRpcGx5KGFwcHJveCkpOwotICAg
ICAgICAgIHZhciByZXN1bHQgPSBhcHByb3guYWRkKHJlbS5kaXYob3RoZXIpKTsKLSAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChvdGhl
ci5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgcmV0dXJuIGdvb2cu
bWF0aC5Mb25nLlpFUk87Ci0gICAgfQotICAgIGlmICh0aGlzLmlzTmVnYXRpdmUoKSkgewotICAg
ICAgaWYgKG90aGVyLmlzTmVnYXRpdmUoKSkgewotICAgICAgICByZXR1cm4gdGhpcy5uZWdhdGUo
KS5kaXYob3RoZXIubmVnYXRlKCkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMubmVnYXRlKCkuZGl2KG90aGVyKS5uZWdhdGUoKTsKLSAgICAgIH0KLSAgICB9IGVsc2UgaWYg
KG90aGVyLmlzTmVnYXRpdmUoKSkgewotICAgICAgcmV0dXJuIHRoaXMuZGl2KG90aGVyLm5lZ2F0
ZSgpKS5uZWdhdGUoKTsKLSAgICB9Ci0gICAgLy8gUmVwZWF0IHRoZSBmb2xsb3dpbmcgdW50aWwg
dGhlIHJlbWFpbmRlciBpcyBsZXNzIHRoYW4gb3RoZXI6ICBmaW5kIGEKLSAgICAvLyBmbG9hdGlu
Zy1wb2ludCB0aGF0IGFwcHJveGltYXRlcyByZW1haW5kZXIgLyBvdGhlciAqZnJvbSBiZWxvdyos
IGFkZCB0aGlzCi0gICAgLy8gaW50byB0aGUgcmVzdWx0LCBhbmQgc3VidHJhY3QgaXQgZnJvbSB0
aGUgcmVtYWluZGVyLiAgSXQgaXMgY3JpdGljYWwgdGhhdAotICAgIC8vIHRoZSBhcHByb3hpbWF0
ZSB2YWx1ZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHJlYWwgdmFsdWUgc28gdGhhdCB0
aGUKLSAgICAvLyByZW1haW5kZXIgbmV2ZXIgYmVjb21lcyBuZWdhdGl2ZS4KLSAgICB2YXIgcmVz
ID0gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB2YXIgcmVtID0gdGhpczsKLSAgICB3aGlsZSAo
cmVtLmdyZWF0ZXJUaGFuT3JFcXVhbChvdGhlcikpIHsKLSAgICAgIC8vIEFwcHJveGltYXRlIHRo
ZSByZXN1bHQgb2YgZGl2aXNpb24uIFRoaXMgbWF5IGJlIGEgbGl0dGxlIGdyZWF0ZXIgb3IKLSAg
ICAgIC8vIHNtYWxsZXIgdGhhbiB0aGUgYWN0dWFsIHZhbHVlLgotICAgICAgdmFyIGFwcHJveCA9
IE1hdGgubWF4KDEsIE1hdGguZmxvb3IocmVtLnRvTnVtYmVyKCkgLyBvdGhlci50b051bWJlcigp
KSk7Ci0gICAgICAvLyBXZSB3aWxsIHR3ZWFrIHRoZSBhcHByb3hpbWF0ZSByZXN1bHQgYnkgY2hh
bmdpbmcgaXQgaW4gdGhlIDQ4LXRoIGRpZ2l0IG9yCi0gICAgICAvLyB0aGUgc21hbGxlc3Qgbm9u
LWZyYWN0aW9uYWwgZGlnaXQsIHdoaWNoZXZlciBpcyBsYXJnZXIuCi0gICAgICB2YXIgbG9nMiA9
IE1hdGguY2VpbChNYXRoLmxvZyhhcHByb3gpIC8gTWF0aC5MTjIpOwotICAgICAgdmFyIGRlbHRh
ID0gKGxvZzIgPD0gNDgpID8gMSA6IE1hdGgucG93KDIsIGxvZzIgLSA0OCk7Ci0gICAgICAvLyBE
ZWNyZWFzZSB0aGUgYXBwcm94aW1hdGlvbiB1bnRpbCBpdCBpcyBzbWFsbGVyIHRoYW4gdGhlIHJl
bWFpbmRlci4gIE5vdGUKLSAgICAgIC8vIHRoYXQgaWYgaXQgaXMgdG9vIGxhcmdlLCB0aGUgcHJv
ZHVjdCBvdmVyZmxvd3MgYW5kIGlzIG5lZ2F0aXZlLgotICAgICAgdmFyIGFwcHJveFJlcyA9IGdv
b2cubWF0aC5Mb25nLmZyb21OdW1iZXIoYXBwcm94KTsKLSAgICAgIHZhciBhcHByb3hSZW0gPSBh
cHByb3hSZXMubXVsdGlwbHkob3RoZXIpOwotICAgICAgd2hpbGUgKGFwcHJveFJlbS5pc05lZ2F0
aXZlKCkgfHwgYXBwcm94UmVtLmdyZWF0ZXJUaGFuKHJlbSkpIHsKLSAgICAgICAgYXBwcm94IC09
IGRlbHRhOwotICAgICAgICBhcHByb3hSZXMgPSBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKGFw
cHJveCk7Ci0gICAgICAgIGFwcHJveFJlbSA9IGFwcHJveFJlcy5tdWx0aXBseShvdGhlcik7Ci0g
ICAgICB9Ci0gICAgICAvLyBXZSBrbm93IHRoZSBhbnN3ZXIgY2FuJ3QgYmUgemVyby4uLiBhbmQg
YWN0dWFsbHksIHplcm8gd291bGQgY2F1c2UKLSAgICAgIC8vIGluZmluaXRlIHJlY3Vyc2lvbiBz
aW5jZSB3ZSB3b3VsZCBtYWtlIG5vIHByb2dyZXNzLgotICAgICAgaWYgKGFwcHJveFJlcy5pc1pl
cm8oKSkgewotICAgICAgICBhcHByb3hSZXMgPSBnb29nLm1hdGguTG9uZy5PTkU7Ci0gICAgICB9
Ci0gICAgICByZXMgPSByZXMuYWRkKGFwcHJveFJlcyk7Ci0gICAgICByZW0gPSByZW0uc3VidHJh
Y3QoYXBwcm94UmVtKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlczsKLSAgfTsKLSAgLyoqCi0gICAq
IFJldHVybnMgdGhpcyBMb25nIG1vZHVsbyB0aGUgZ2l2ZW4gb25lLgotICAgKiBAcGFyYW0ge2dv
b2cubWF0aC5Mb25nfSBvdGhlciBMb25nIGJ5IHdoaWNoIHRvIG1vZC4KLSAgICogQHJldHVybiB7
IWdvb2cubWF0aC5Mb25nfSBUaGlzIExvbmcgbW9kdWxvIHRoZSBnaXZlbiBvbmUuCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUubW9kdWxvID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAg
ICByZXR1cm4gdGhpcy5zdWJ0cmFjdCh0aGlzLmRpdihvdGhlcikubXVsdGlwbHkob3RoZXIpKTsK
LSAgfTsKLSAgLyoqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGJpdHdpc2UtTk9UIG9m
IHRoaXMgdmFsdWUuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5ub3QgPSBmdW5jdGlv
bigpIHsKLSAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMofnRoaXMubG93XywgfnRo
aXMuaGlnaF8pOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUgYml0d2lzZS1BTkQgb2Yg
dGhpcyBMb25nIGFuZCB0aGUgZ2l2ZW4gb25lLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25n
fSBvdGhlciBUaGUgTG9uZyB3aXRoIHdoaWNoIHRvIEFORC4KLSAgICogQHJldHVybiB7IWdvb2cu
bWF0aC5Mb25nfSBUaGUgYml0d2lzZS1BTkQgb2YgdGhpcyBhbmQgdGhlIG90aGVyLgotICAgKi8K
LSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmFuZCA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAg
cmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKHRoaXMubG93XyAmIG90aGVyLmxvd18sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlnaF8gJiBvdGhlci5oaWdo
Xyk7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBiaXR3aXNlLU9SIG9mIHRoaXMgTG9u
ZyBhbmQgdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIg
VGhlIExvbmcgd2l0aCB3aGljaCB0byBPUi4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25n
fSBUaGUgYml0d2lzZS1PUiBvZiB0aGlzIGFuZCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1h
dGguTG9uZy5wcm90b3R5cGUub3IgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiBnb29n
Lm1hdGguTG9uZy5mcm9tQml0cyh0aGlzLmxvd18gfCBvdGhlci5sb3dfLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZ2hfIHwgb3RoZXIuaGlnaF8pOwotICB9Owot
ICAvKioKLSAgICogUmV0dXJucyB0aGUgYml0d2lzZS1YT1Igb2YgdGhpcyBMb25nIGFuZCB0aGUg
Z2l2ZW4gb25lLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBUaGUgTG9uZyB3
aXRoIHdoaWNoIHRvIFhPUi4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgYml0
d2lzZS1YT1Igb2YgdGhpcyBhbmQgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcu
cHJvdG90eXBlLnhvciA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIGdvb2cubWF0aC5M
b25nLmZyb21CaXRzKHRoaXMubG93XyBeIG90aGVyLmxvd18sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuaGlnaF8gXiBvdGhlci5oaWdoXyk7Ci0gIH07Ci0gIC8qKgot
ICAgKiBSZXR1cm5zIHRoaXMgTG9uZyB3aXRoIGJpdHMgc2hpZnRlZCB0byB0aGUgbGVmdCBieSB0
aGUgZ2l2ZW4gYW1vdW50LgotICAgKiBAcGFyYW0ge251bWJlcn0gbnVtQml0cyBUaGUgbnVtYmVy
IG9mIGJpdHMgYnkgd2hpY2ggdG8gc2hpZnQuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9u
Z30gVGhpcyBzaGlmdGVkIHRvIHRoZSBsZWZ0IGJ5IHRoZSBnaXZlbiBhbW91bnQuCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc2hpZnRMZWZ0ID0gZnVuY3Rpb24obnVtQml0cykg
ewotICAgIG51bUJpdHMgJj0gNjM7Ci0gICAgaWYgKG51bUJpdHMgPT0gMCkgewotICAgICAgcmV0
dXJuIHRoaXM7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHZhciBsb3cgPSB0aGlzLmxvd187Ci0gICAg
ICBpZiAobnVtQml0cyA8IDMyKSB7Ci0gICAgICAgIHZhciBoaWdoID0gdGhpcy5oaWdoXzsKLSAg
ICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKAotICAgICAgICAgICAgbG93IDw8
IG51bUJpdHMsCi0gICAgICAgICAgICAoaGlnaCA8PCBudW1CaXRzKSB8IChsb3cgPj4+ICgzMiAt
IG51bUJpdHMpKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxv
bmcuZnJvbUJpdHMoMCwgbG93IDw8IChudW1CaXRzIC0gMzIpKTsKLSAgICAgIH0KLSAgICB9Ci0g
IH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoaXMgTG9uZyB3aXRoIGJpdHMgc2hpZnRlZCB0byB0
aGUgcmlnaHQgYnkgdGhlIGdpdmVuIGFtb3VudC4KLSAgICogQHBhcmFtIHtudW1iZXJ9IG51bUJp
dHMgVGhlIG51bWJlciBvZiBiaXRzIGJ5IHdoaWNoIHRvIHNoaWZ0LgotICAgKiBAcmV0dXJuIHsh
Z29vZy5tYXRoLkxvbmd9IFRoaXMgc2hpZnRlZCB0byB0aGUgcmlnaHQgYnkgdGhlIGdpdmVuIGFt
b3VudC4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5zaGlmdFJpZ2h0ID0gZnVu
Y3Rpb24obnVtQml0cykgewotICAgIG51bUJpdHMgJj0gNjM7Ci0gICAgaWYgKG51bUJpdHMgPT0g
MCkgewotICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHZhciBoaWdoID0g
dGhpcy5oaWdoXzsKLSAgICAgIGlmIChudW1CaXRzIDwgMzIpIHsKLSAgICAgICAgdmFyIGxvdyA9
IHRoaXMubG93XzsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKAotICAg
ICAgICAgICAgKGxvdyA+Pj4gbnVtQml0cykgfCAoaGlnaCA8PCAoMzIgLSBudW1CaXRzKSksCi0g
ICAgICAgICAgICBoaWdoID4+IG51bUJpdHMpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0
dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKAotICAgICAgICAgICAgaGlnaCA+PiAobnVtQml0
cyAtIDMyKSwKLSAgICAgICAgICAgIGhpZ2ggPj0gMCA/IDAgOiAtMSk7Ci0gICAgICB9Ci0gICAg
fQotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGlzIExvbmcgd2l0aCBiaXRzIHNoaWZ0ZWQg
dG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZlbiBhbW91bnQsIHdpdGgKLSAgICogdGhlIG5ldyB0b3Ag
Yml0cyBtYXRjaGluZyB0aGUgY3VycmVudCBzaWduIGJpdC4KLSAgICogQHBhcmFtIHtudW1iZXJ9
IG51bUJpdHMgVGhlIG51bWJlciBvZiBiaXRzIGJ5IHdoaWNoIHRvIHNoaWZ0LgotICAgKiBAcmV0
dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoaXMgc2hpZnRlZCB0byB0aGUgcmlnaHQgYnkgdGhlIGdp
dmVuIGFtb3VudCwgd2l0aAotICAgKiAgICAgemVyb3MgcGxhY2VkIGludG8gdGhlIG5ldyBsZWFk
aW5nIGJpdHMuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc2hpZnRSaWdodFVu
c2lnbmVkID0gZnVuY3Rpb24obnVtQml0cykgewotICAgIG51bUJpdHMgJj0gNjM7Ci0gICAgaWYg
KG51bUJpdHMgPT0gMCkgewotICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgfSBlbHNlIHsKLSAgICAg
IHZhciBoaWdoID0gdGhpcy5oaWdoXzsKLSAgICAgIGlmIChudW1CaXRzIDwgMzIpIHsKLSAgICAg
ICAgdmFyIGxvdyA9IHRoaXMubG93XzsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZy
b21CaXRzKAotICAgICAgICAgICAgKGxvdyA+Pj4gbnVtQml0cykgfCAoaGlnaCA8PCAoMzIgLSBu
dW1CaXRzKSksCi0gICAgICAgICAgICBoaWdoID4+PiBudW1CaXRzKTsKLSAgICAgIH0gZWxzZSBp
ZiAobnVtQml0cyA9PSAzMikgewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJp
dHMoaGlnaCwgMCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxv
bmcuZnJvbUJpdHMoaGlnaCA+Pj4gKG51bUJpdHMgLSAzMiksIDApOwotICAgICAgfQotICAgIH0K
LSAgfTsKLSAgLy89PT09PT09IGJlZ2luIGpzYm4gPT09PT09PQotICB2YXIgbmF2aWdhdG9yID0g
eyBhcHBOYW1lOiAnTW9kZXJuIEJyb3dzZXInIH07IC8vIHBvbHlmaWxsIGEgbGl0dGxlCi0gIC8v
IENvcHlyaWdodCAoYykgMjAwNSAgVG9tIFd1Ci0gIC8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0g
IC8vIGh0dHA6Ly93d3ctY3Mtc3R1ZGVudHMuc3RhbmZvcmQuZWR1L350ancvanNibi8KLSAgLyoK
LSAgICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUgIFRvbSBXdQotICAgKiBBbGwgUmlnaHRzIFJl
c2VydmVkLgotICAgKgotICAgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m
IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKLSAgICogYSBjb3B5IG9mIHRoaXMgc29m
dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0gICAqICJTb2Z0
d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcKLSAgICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLAotICAgKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv
b3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KLSAgICogcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
Ci0gICAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAgICoKLSAgICogVGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLSAgICog
aW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m
dHdhcmUuCi0gICAqCi0gICAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMtSVMiIEFORCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCAKLSAgICogRVhQUkVTUywgSU1QTElFRCBPUiBP
VEhFUldJU0UsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSAKLSAgICogV0FSUkFO
VFkgT0YgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgCi0gICAqCi0gICAqIElOIE5PIEVWRU5UIFNIQUxMIFRPTSBXVSBCRSBMSUFCTEUgRk9SIEFO
WSBTUEVDSUFMLCBJTkNJREVOVEFMLAotICAgKiBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgT0YgQU5ZIEtJTkQsIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIKLSAgICogUkVTVUxU
SU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBPUiBOT1QgQURW
SVNFRCBPRgotICAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgREFNQUdFLCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIEFSSVNJTkcgT1VUCi0gICAqIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCi0gICAqCi0gICAqIElu
IGFkZGl0aW9uLCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbiBhcHBsaWVzOgotICAgKgotICAgKiBB
bGwgcmVkaXN0cmlidXRpb25zIG11c3QgcmV0YWluIGFuIGludGFjdCBjb3B5IG9mIHRoaXMgY29w
eXJpZ2h0IG5vdGljZQotICAgKiBhbmQgZGlzY2xhaW1lci4KLSAgICovCi0gIC8vIEJhc2ljIEph
dmFTY3JpcHQgQk4gbGlicmFyeSAtIHN1YnNldCB1c2VmdWwgZm9yIFJTQSBlbmNyeXB0aW9uLgot
ICAvLyBCaXRzIHBlciBkaWdpdAotICB2YXIgZGJpdHM7Ci0gIC8vIEphdmFTY3JpcHQgZW5naW5l
IGFuYWx5c2lzCi0gIHZhciBjYW5hcnkgPSAweGRlYWRiZWVmY2FmZTsKLSAgdmFyIGpfbG0gPSAo
KGNhbmFyeSYweGZmZmZmZik9PTB4ZWZjYWZlKTsKLSAgLy8gKHB1YmxpYykgQ29uc3RydWN0b3IK
LSAgZnVuY3Rpb24gQmlnSW50ZWdlcihhLGIsYykgewotICAgIGlmKGEgIT0gbnVsbCkKLSAgICAg
IGlmKCJudW1iZXIiID09IHR5cGVvZiBhKSB0aGlzLmZyb21OdW1iZXIoYSxiLGMpOwotICAgICAg
ZWxzZSBpZihiID09IG51bGwgJiYgInN0cmluZyIgIT0gdHlwZW9mIGEpIHRoaXMuZnJvbVN0cmlu
ZyhhLDI1Nik7Ci0gICAgICBlbHNlIHRoaXMuZnJvbVN0cmluZyhhLGIpOwotICB9Ci0gIC8vIHJl
dHVybiBuZXcsIHVuc2V0IEJpZ0ludGVnZXIKLSAgZnVuY3Rpb24gbmJpKCkgeyByZXR1cm4gbmV3
IEJpZ0ludGVnZXIobnVsbCk7IH0KLSAgLy8gYW06IENvbXB1dGUgd19qICs9ICh4KnRoaXNfaSks
IHByb3BhZ2F0ZSBjYXJyaWVzLAotICAvLyBjIGlzIGluaXRpYWwgY2FycnksIHJldHVybnMgZmlu
YWwgY2FycnkuCi0gIC8vIGMgPCAzKmR2YWx1ZSwgeCA8IDIqZHZhbHVlLCB0aGlzX2kgPCBkdmFs
dWUKLSAgLy8gV2UgbmVlZCB0byBzZWxlY3QgdGhlIGZhc3Rlc3Qgb25lIHRoYXQgd29ya3MgaW4g
dGhpcyBlbnZpcm9ubWVudC4KLSAgLy8gYW0xOiB1c2UgYSBzaW5nbGUgbXVsdCBhbmQgZGl2aWRl
IHRvIGdldCB0aGUgaGlnaCBiaXRzLAotICAvLyBtYXggZGlnaXQgYml0cyBzaG91bGQgYmUgMjYg
YmVjYXVzZQotICAvLyBtYXggaW50ZXJuYWwgdmFsdWUgPSAyKmR2YWx1ZV4yLTIqZHZhbHVlICg8
IDJeNTMpCi0gIGZ1bmN0aW9uIGFtMShpLHgsdyxqLGMsbikgewotICAgIHdoaWxlKC0tbiA+PSAw
KSB7Ci0gICAgICB2YXIgdiA9IHgqdGhpc1tpKytdK3dbal0rYzsKLSAgICAgIGMgPSBNYXRoLmZs
b29yKHYvMHg0MDAwMDAwKTsKLSAgICAgIHdbaisrXSA9IHYmMHgzZmZmZmZmOwotICAgIH0KLSAg
ICByZXR1cm4gYzsKLSAgfQotICAvLyBhbTIgYXZvaWRzIGEgYmlnIG11bHQtYW5kLWV4dHJhY3Qg
Y29tcGxldGVseS4KLSAgLy8gTWF4IGRpZ2l0IGJpdHMgc2hvdWxkIGJlIDw9IDMwIGJlY2F1c2Ug
d2UgZG8gYml0d2lzZSBvcHMKLSAgLy8gb24gdmFsdWVzIHVwIHRvIDIqaGR2YWx1ZV4yLWhkdmFs
dWUtMSAoPCAyXjMxKQotICBmdW5jdGlvbiBhbTIoaSx4LHcsaixjLG4pIHsKLSAgICB2YXIgeGwg
PSB4JjB4N2ZmZiwgeGggPSB4Pj4xNTsKLSAgICB3aGlsZSgtLW4gPj0gMCkgewotICAgICAgdmFy
IGwgPSB0aGlzW2ldJjB4N2ZmZjsKLSAgICAgIHZhciBoID0gdGhpc1tpKytdPj4xNTsKLSAgICAg
IHZhciBtID0geGgqbCtoKnhsOwotICAgICAgbCA9IHhsKmwrKChtJjB4N2ZmZik8PDE1KSt3W2pd
KyhjJjB4M2ZmZmZmZmYpOwotICAgICAgYyA9IChsPj4+MzApKyhtPj4+MTUpK3hoKmgrKGM+Pj4z
MCk7Ci0gICAgICB3W2orK10gPSBsJjB4M2ZmZmZmZmY7Ci0gICAgfQotICAgIHJldHVybiBjOwot
ICB9Ci0gIC8vIEFsdGVybmF0ZWx5LCBzZXQgbWF4IGRpZ2l0IGJpdHMgdG8gMjggc2luY2Ugc29t
ZQotICAvLyBicm93c2VycyBzbG93IGRvd24gd2hlbiBkZWFsaW5nIHdpdGggMzItYml0IG51bWJl
cnMuCi0gIGZ1bmN0aW9uIGFtMyhpLHgsdyxqLGMsbikgewotICAgIHZhciB4bCA9IHgmMHgzZmZm
LCB4aCA9IHg+PjE0OwotICAgIHdoaWxlKC0tbiA+PSAwKSB7Ci0gICAgICB2YXIgbCA9IHRoaXNb
aV0mMHgzZmZmOwotICAgICAgdmFyIGggPSB0aGlzW2krK10+PjE0OwotICAgICAgdmFyIG0gPSB4
aCpsK2gqeGw7Ci0gICAgICBsID0geGwqbCsoKG0mMHgzZmZmKTw8MTQpK3dbal0rYzsKLSAgICAg
IGMgPSAobD4+MjgpKyhtPj4xNCkreGgqaDsKLSAgICAgIHdbaisrXSA9IGwmMHhmZmZmZmZmOwot
ICAgIH0KLSAgICByZXR1cm4gYzsKLSAgfQotICBpZihqX2xtICYmIChuYXZpZ2F0b3IuYXBwTmFt
ZSA9PSAiTWljcm9zb2Z0IEludGVybmV0IEV4cGxvcmVyIikpIHsKLSAgICBCaWdJbnRlZ2VyLnBy
b3RvdHlwZS5hbSA9IGFtMjsKLSAgICBkYml0cyA9IDMwOwotICB9Ci0gIGVsc2UgaWYoal9sbSAm
JiAobmF2aWdhdG9yLmFwcE5hbWUgIT0gIk5ldHNjYXBlIikpIHsKLSAgICBCaWdJbnRlZ2VyLnBy
b3RvdHlwZS5hbSA9IGFtMTsKLSAgICBkYml0cyA9IDI2OwotICB9Ci0gIGVsc2UgeyAvLyBNb3pp
bGxhL05ldHNjYXBlIHNlZW1zIHRvIHByZWZlciBhbTMKLSAgICBCaWdJbnRlZ2VyLnByb3RvdHlw
ZS5hbSA9IGFtMzsKLSAgICBkYml0cyA9IDI4OwotICB9Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBl
LkRCID0gZGJpdHM7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLkRNID0gKCgxPDxkYml0cyktMSk7
Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLkRWID0gKDE8PGRiaXRzKTsKLSAgdmFyIEJJX0ZQID0g
NTI7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLkZWID0gTWF0aC5wb3coMixCSV9GUCk7Ci0gIEJp
Z0ludGVnZXIucHJvdG90eXBlLkYxID0gQklfRlAtZGJpdHM7Ci0gIEJpZ0ludGVnZXIucHJvdG90
eXBlLkYyID0gMipkYml0cy1CSV9GUDsKLSAgLy8gRGlnaXQgY29udmVyc2lvbnMKLSAgdmFyIEJJ
X1JNID0gIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7Ci0gIHZhciBCSV9S
QyA9IG5ldyBBcnJheSgpOwotICB2YXIgcnIsdnY7Ci0gIHJyID0gIjAiLmNoYXJDb2RlQXQoMCk7
Ci0gIGZvcih2diA9IDA7IHZ2IDw9IDk7ICsrdnYpIEJJX1JDW3JyKytdID0gdnY7Ci0gIHJyID0g
ImEiLmNoYXJDb2RlQXQoMCk7Ci0gIGZvcih2diA9IDEwOyB2diA8IDM2OyArK3Z2KSBCSV9SQ1ty
cisrXSA9IHZ2OwotICByciA9ICJBIi5jaGFyQ29kZUF0KDApOwotICBmb3IodnYgPSAxMDsgdnYg
PCAzNjsgKyt2dikgQklfUkNbcnIrK10gPSB2djsKLSAgZnVuY3Rpb24gaW50MmNoYXIobikgeyBy
ZXR1cm4gQklfUk0uY2hhckF0KG4pOyB9Ci0gIGZ1bmN0aW9uIGludEF0KHMsaSkgewotICAgIHZh
ciBjID0gQklfUkNbcy5jaGFyQ29kZUF0KGkpXTsKLSAgICByZXR1cm4gKGM9PW51bGwpPy0xOmM7
Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgY29weSB0aGlzIHRvIHIKLSAgZnVuY3Rpb24gYm5wQ29w
eVRvKHIpIHsKLSAgICBmb3IodmFyIGkgPSB0aGlzLnQtMTsgaSA+PSAwOyAtLWkpIHJbaV0gPSB0
aGlzW2ldOwotICAgIHIudCA9IHRoaXMudDsKLSAgICByLnMgPSB0aGlzLnM7Ci0gIH0KLSAgLy8g
KHByb3RlY3RlZCkgc2V0IGZyb20gaW50ZWdlciB2YWx1ZSB4LCAtRFYgPD0geCA8IERWCi0gIGZ1
bmN0aW9uIGJucEZyb21JbnQoeCkgewotICAgIHRoaXMudCA9IDE7Ci0gICAgdGhpcy5zID0gKHg8
MCk/LTE6MDsKLSAgICBpZih4ID4gMCkgdGhpc1swXSA9IHg7Ci0gICAgZWxzZSBpZih4IDwgLTEp
IHRoaXNbMF0gPSB4K0RWOwotICAgIGVsc2UgdGhpcy50ID0gMDsKLSAgfQotICAvLyByZXR1cm4g
YmlnaW50IGluaXRpYWxpemVkIHRvIHZhbHVlCi0gIGZ1bmN0aW9uIG5idihpKSB7IHZhciByID0g
bmJpKCk7IHIuZnJvbUludChpKTsgcmV0dXJuIHI7IH0KLSAgLy8gKHByb3RlY3RlZCkgc2V0IGZy
b20gc3RyaW5nIGFuZCByYWRpeAotICBmdW5jdGlvbiBibnBGcm9tU3RyaW5nKHMsYikgewotICAg
IHZhciBrOwotICAgIGlmKGIgPT0gMTYpIGsgPSA0OwotICAgIGVsc2UgaWYoYiA9PSA4KSBrID0g
MzsKLSAgICBlbHNlIGlmKGIgPT0gMjU2KSBrID0gODsgLy8gYnl0ZSBhcnJheQotICAgIGVsc2Ug
aWYoYiA9PSAyKSBrID0gMTsKLSAgICBlbHNlIGlmKGIgPT0gMzIpIGsgPSA1OwotICAgIGVsc2Ug
aWYoYiA9PSA0KSBrID0gMjsKLSAgICBlbHNlIHsgdGhpcy5mcm9tUmFkaXgocyxiKTsgcmV0dXJu
OyB9Ci0gICAgdGhpcy50ID0gMDsKLSAgICB0aGlzLnMgPSAwOwotICAgIHZhciBpID0gcy5sZW5n
dGgsIG1pID0gZmFsc2UsIHNoID0gMDsKLSAgICB3aGlsZSgtLWkgPj0gMCkgewotICAgICAgdmFy
IHggPSAoaz09OCk/c1tpXSYweGZmOmludEF0KHMsaSk7Ci0gICAgICBpZih4IDwgMCkgewotICAg
ICAgICBpZihzLmNoYXJBdChpKSA9PSAiLSIpIG1pID0gdHJ1ZTsKLSAgICAgICAgY29udGludWU7
Ci0gICAgICB9Ci0gICAgICBtaSA9IGZhbHNlOwotICAgICAgaWYoc2ggPT0gMCkKLSAgICAgICAg
dGhpc1t0aGlzLnQrK10gPSB4OwotICAgICAgZWxzZSBpZihzaCtrID4gdGhpcy5EQikgewotICAg
ICAgICB0aGlzW3RoaXMudC0xXSB8PSAoeCYoKDE8PCh0aGlzLkRCLXNoKSktMSkpPDxzaDsKLSAg
ICAgICAgdGhpc1t0aGlzLnQrK10gPSAoeD4+KHRoaXMuREItc2gpKTsKLSAgICAgIH0KLSAgICAg
IGVsc2UKLSAgICAgICAgdGhpc1t0aGlzLnQtMV0gfD0geDw8c2g7Ci0gICAgICBzaCArPSBrOwot
ICAgICAgaWYoc2ggPj0gdGhpcy5EQikgc2ggLT0gdGhpcy5EQjsKLSAgICB9Ci0gICAgaWYoayA9
PSA4ICYmIChzWzBdJjB4ODApICE9IDApIHsKLSAgICAgIHRoaXMucyA9IC0xOwotICAgICAgaWYo
c2ggPiAwKSB0aGlzW3RoaXMudC0xXSB8PSAoKDE8PCh0aGlzLkRCLXNoKSktMSk8PHNoOwotICAg
IH0KLSAgICB0aGlzLmNsYW1wKCk7Ci0gICAgaWYobWkpIEJpZ0ludGVnZXIuWkVSTy5zdWJUbyh0
aGlzLHRoaXMpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIGNsYW1wIG9mZiBleGNlc3MgaGlnaCB3
b3JkcwotICBmdW5jdGlvbiBibnBDbGFtcCgpIHsKLSAgICB2YXIgYyA9IHRoaXMucyZ0aGlzLkRN
OwotICAgIHdoaWxlKHRoaXMudCA+IDAgJiYgdGhpc1t0aGlzLnQtMV0gPT0gYykgLS10aGlzLnQ7
Ci0gIH0KLSAgLy8gKHB1YmxpYykgcmV0dXJuIHN0cmluZyByZXByZXNlbnRhdGlvbiBpbiBnaXZl
biByYWRpeAotICBmdW5jdGlvbiBiblRvU3RyaW5nKGIpIHsKLSAgICBpZih0aGlzLnMgPCAwKSBy
ZXR1cm4gIi0iK3RoaXMubmVnYXRlKCkudG9TdHJpbmcoYik7Ci0gICAgdmFyIGs7Ci0gICAgaWYo
YiA9PSAxNikgayA9IDQ7Ci0gICAgZWxzZSBpZihiID09IDgpIGsgPSAzOwotICAgIGVsc2UgaWYo
YiA9PSAyKSBrID0gMTsKLSAgICBlbHNlIGlmKGIgPT0gMzIpIGsgPSA1OwotICAgIGVsc2UgaWYo
YiA9PSA0KSBrID0gMjsKLSAgICBlbHNlIHJldHVybiB0aGlzLnRvUmFkaXgoYik7Ci0gICAgdmFy
IGttID0gKDE8PGspLTEsIGQsIG0gPSBmYWxzZSwgciA9ICIiLCBpID0gdGhpcy50OwotICAgIHZh
ciBwID0gdGhpcy5EQi0oaSp0aGlzLkRCKSVrOwotICAgIGlmKGktLSA+IDApIHsKLSAgICAgIGlm
KHAgPCB0aGlzLkRCICYmIChkID0gdGhpc1tpXT4+cCkgPiAwKSB7IG0gPSB0cnVlOyByID0gaW50
MmNoYXIoZCk7IH0KLSAgICAgIHdoaWxlKGkgPj0gMCkgewotICAgICAgICBpZihwIDwgaykgewot
ICAgICAgICAgIGQgPSAodGhpc1tpXSYoKDE8PHApLTEpKTw8KGstcCk7Ci0gICAgICAgICAgZCB8
PSB0aGlzWy0taV0+PihwKz10aGlzLkRCLWspOwotICAgICAgICB9Ci0gICAgICAgIGVsc2Ugewot
ICAgICAgICAgIGQgPSAodGhpc1tpXT4+KHAtPWspKSZrbTsKLSAgICAgICAgICBpZihwIDw9IDAp
IHsgcCArPSB0aGlzLkRCOyAtLWk7IH0KLSAgICAgICAgfQotICAgICAgICBpZihkID4gMCkgbSA9
IHRydWU7Ci0gICAgICAgIGlmKG0pIHIgKz0gaW50MmNoYXIoZCk7Ci0gICAgICB9Ci0gICAgfQot
ICAgIHJldHVybiBtP3I6IjAiOwotICB9Ci0gIC8vIChwdWJsaWMpIC10aGlzCi0gIGZ1bmN0aW9u
IGJuTmVnYXRlKCkgeyB2YXIgciA9IG5iaSgpOyBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8odGhpcyxy
KTsgcmV0dXJuIHI7IH0KLSAgLy8gKHB1YmxpYykgfHRoaXN8Ci0gIGZ1bmN0aW9uIGJuQWJzKCkg
eyByZXR1cm4gKHRoaXMuczwwKT90aGlzLm5lZ2F0ZSgpOnRoaXM7IH0KLSAgLy8gKHB1YmxpYykg
cmV0dXJuICsgaWYgdGhpcyA+IGEsIC0gaWYgdGhpcyA8IGEsIDAgaWYgZXF1YWwKLSAgZnVuY3Rp
b24gYm5Db21wYXJlVG8oYSkgewotICAgIHZhciByID0gdGhpcy5zLWEuczsKLSAgICBpZihyICE9
IDApIHJldHVybiByOwotICAgIHZhciBpID0gdGhpcy50OwotICAgIHIgPSBpLWEudDsKLSAgICBp
ZihyICE9IDApIHJldHVybiAodGhpcy5zPDApPy1yOnI7Ci0gICAgd2hpbGUoLS1pID49IDApIGlm
KChyPXRoaXNbaV0tYVtpXSkgIT0gMCkgcmV0dXJuIHI7Ci0gICAgcmV0dXJuIDA7Ci0gIH0KLSAg
Ly8gcmV0dXJucyBiaXQgbGVuZ3RoIG9mIHRoZSBpbnRlZ2VyIHgKLSAgZnVuY3Rpb24gbmJpdHMo
eCkgewotICAgIHZhciByID0gMSwgdDsKLSAgICBpZigodD14Pj4+MTYpICE9IDApIHsgeCA9IHQ7
IHIgKz0gMTY7IH0KLSAgICBpZigodD14Pj44KSAhPSAwKSB7IHggPSB0OyByICs9IDg7IH0KLSAg
ICBpZigodD14Pj40KSAhPSAwKSB7IHggPSB0OyByICs9IDQ7IH0KLSAgICBpZigodD14Pj4yKSAh
PSAwKSB7IHggPSB0OyByICs9IDI7IH0KLSAgICBpZigodD14Pj4xKSAhPSAwKSB7IHggPSB0OyBy
ICs9IDE7IH0KLSAgICByZXR1cm4gcjsKLSAgfQotICAvLyAocHVibGljKSByZXR1cm4gdGhlIG51
bWJlciBvZiBiaXRzIGluICJ0aGlzIgotICBmdW5jdGlvbiBibkJpdExlbmd0aCgpIHsKLSAgICBp
Zih0aGlzLnQgPD0gMCkgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHRoaXMuREIqKHRoaXMudC0xKStu
Yml0cyh0aGlzW3RoaXMudC0xXV4odGhpcy5zJnRoaXMuRE0pKTsKLSAgfQotICAvLyAocHJvdGVj
dGVkKSByID0gdGhpcyA8PCBuKkRCCi0gIGZ1bmN0aW9uIGJucERMU2hpZnRUbyhuLHIpIHsKLSAg
ICB2YXIgaTsKLSAgICBmb3IoaSA9IHRoaXMudC0xOyBpID49IDA7IC0taSkgcltpK25dID0gdGhp
c1tpXTsKLSAgICBmb3IoaSA9IG4tMTsgaSA+PSAwOyAtLWkpIHJbaV0gPSAwOwotICAgIHIudCA9
IHRoaXMudCtuOwotICAgIHIucyA9IHRoaXMuczsKLSAgfQotICAvLyAocHJvdGVjdGVkKSByID0g
dGhpcyA+PiBuKkRCCi0gIGZ1bmN0aW9uIGJucERSU2hpZnRUbyhuLHIpIHsKLSAgICBmb3IodmFy
IGkgPSBuOyBpIDwgdGhpcy50OyArK2kpIHJbaS1uXSA9IHRoaXNbaV07Ci0gICAgci50ID0gTWF0
aC5tYXgodGhpcy50LW4sMCk7Ci0gICAgci5zID0gdGhpcy5zOwotICB9Ci0gIC8vIChwcm90ZWN0
ZWQpIHIgPSB0aGlzIDw8IG4KLSAgZnVuY3Rpb24gYm5wTFNoaWZ0VG8obixyKSB7Ci0gICAgdmFy
IGJzID0gbiV0aGlzLkRCOwotICAgIHZhciBjYnMgPSB0aGlzLkRCLWJzOwotICAgIHZhciBibSA9
ICgxPDxjYnMpLTE7Ci0gICAgdmFyIGRzID0gTWF0aC5mbG9vcihuL3RoaXMuREIpLCBjID0gKHRo
aXMuczw8YnMpJnRoaXMuRE0sIGk7Ci0gICAgZm9yKGkgPSB0aGlzLnQtMTsgaSA+PSAwOyAtLWkp
IHsKLSAgICAgIHJbaStkcysxXSA9ICh0aGlzW2ldPj5jYnMpfGM7Ci0gICAgICBjID0gKHRoaXNb
aV0mYm0pPDxiczsKLSAgICB9Ci0gICAgZm9yKGkgPSBkcy0xOyBpID49IDA7IC0taSkgcltpXSA9
IDA7Ci0gICAgcltkc10gPSBjOwotICAgIHIudCA9IHRoaXMudCtkcysxOwotICAgIHIucyA9IHRo
aXMuczsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMgPj4g
bgotICBmdW5jdGlvbiBibnBSU2hpZnRUbyhuLHIpIHsKLSAgICByLnMgPSB0aGlzLnM7Ci0gICAg
dmFyIGRzID0gTWF0aC5mbG9vcihuL3RoaXMuREIpOwotICAgIGlmKGRzID49IHRoaXMudCkgeyBy
LnQgPSAwOyByZXR1cm47IH0KLSAgICB2YXIgYnMgPSBuJXRoaXMuREI7Ci0gICAgdmFyIGNicyA9
IHRoaXMuREItYnM7Ci0gICAgdmFyIGJtID0gKDE8PGJzKS0xOwotICAgIHJbMF0gPSB0aGlzW2Rz
XT4+YnM7Ci0gICAgZm9yKHZhciBpID0gZHMrMTsgaSA8IHRoaXMudDsgKytpKSB7Ci0gICAgICBy
W2ktZHMtMV0gfD0gKHRoaXNbaV0mYm0pPDxjYnM7Ci0gICAgICByW2ktZHNdID0gdGhpc1tpXT4+
YnM7Ci0gICAgfQotICAgIGlmKGJzID4gMCkgclt0aGlzLnQtZHMtMV0gfD0gKHRoaXMucyZibSk8
PGNiczsKLSAgICByLnQgPSB0aGlzLnQtZHM7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIC8vIChw
cm90ZWN0ZWQpIHIgPSB0aGlzIC0gYQotICBmdW5jdGlvbiBibnBTdWJUbyhhLHIpIHsKLSAgICB2
YXIgaSA9IDAsIGMgPSAwLCBtID0gTWF0aC5taW4oYS50LHRoaXMudCk7Ci0gICAgd2hpbGUoaSA8
IG0pIHsKLSAgICAgIGMgKz0gdGhpc1tpXS1hW2ldOwotICAgICAgcltpKytdID0gYyZ0aGlzLkRN
OwotICAgICAgYyA+Pj0gdGhpcy5EQjsKLSAgICB9Ci0gICAgaWYoYS50IDwgdGhpcy50KSB7Ci0g
ICAgICBjIC09IGEuczsKLSAgICAgIHdoaWxlKGkgPCB0aGlzLnQpIHsKLSAgICAgICAgYyArPSB0
aGlzW2ldOwotICAgICAgICByW2krK10gPSBjJnRoaXMuRE07Ci0gICAgICAgIGMgPj49IHRoaXMu
REI7Ci0gICAgICB9Ci0gICAgICBjICs9IHRoaXMuczsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAg
ICBjICs9IHRoaXMuczsKLSAgICAgIHdoaWxlKGkgPCBhLnQpIHsKLSAgICAgICAgYyAtPSBhW2ld
OwotICAgICAgICByW2krK10gPSBjJnRoaXMuRE07Ci0gICAgICAgIGMgPj49IHRoaXMuREI7Ci0g
ICAgICB9Ci0gICAgICBjIC09IGEuczsKLSAgICB9Ci0gICAgci5zID0gKGM8MCk/LTE6MDsKLSAg
ICBpZihjIDwgLTEpIHJbaSsrXSA9IHRoaXMuRFYrYzsKLSAgICBlbHNlIGlmKGMgPiAwKSByW2kr
K10gPSBjOwotICAgIHIudCA9IGk7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIC8vIChwcm90ZWN0
ZWQpIHIgPSB0aGlzICogYSwgciAhPSB0aGlzLGEgKEhBQyAxNC4xMikKLSAgLy8gInRoaXMiIHNo
b3VsZCBiZSB0aGUgbGFyZ2VyIG9uZSBpZiBhcHByb3ByaWF0ZS4KLSAgZnVuY3Rpb24gYm5wTXVs
dGlwbHlUbyhhLHIpIHsKLSAgICB2YXIgeCA9IHRoaXMuYWJzKCksIHkgPSBhLmFicygpOwotICAg
IHZhciBpID0geC50OwotICAgIHIudCA9IGkreS50OwotICAgIHdoaWxlKC0taSA+PSAwKSByW2ld
ID0gMDsKLSAgICBmb3IoaSA9IDA7IGkgPCB5LnQ7ICsraSkgcltpK3gudF0gPSB4LmFtKDAseVtp
XSxyLGksMCx4LnQpOwotICAgIHIucyA9IDA7Ci0gICAgci5jbGFtcCgpOwotICAgIGlmKHRoaXMu
cyAhPSBhLnMpIEJpZ0ludGVnZXIuWkVSTy5zdWJUbyhyLHIpOwotICB9Ci0gIC8vIChwcm90ZWN0
ZWQpIHIgPSB0aGlzXjIsIHIgIT0gdGhpcyAoSEFDIDE0LjE2KQotICBmdW5jdGlvbiBibnBTcXVh
cmVUbyhyKSB7Ci0gICAgdmFyIHggPSB0aGlzLmFicygpOwotICAgIHZhciBpID0gci50ID0gMip4
LnQ7Ci0gICAgd2hpbGUoLS1pID49IDApIHJbaV0gPSAwOwotICAgIGZvcihpID0gMDsgaSA8IHgu
dC0xOyArK2kpIHsKLSAgICAgIHZhciBjID0geC5hbShpLHhbaV0sciwyKmksMCwxKTsKLSAgICAg
IGlmKChyW2kreC50XSs9eC5hbShpKzEsMip4W2ldLHIsMippKzEsYyx4LnQtaS0xKSkgPj0geC5E
VikgewotICAgICAgICByW2kreC50XSAtPSB4LkRWOwotICAgICAgICByW2kreC50KzFdID0gMTsK
LSAgICAgIH0KLSAgICB9Ci0gICAgaWYoci50ID4gMCkgcltyLnQtMV0gKz0geC5hbShpLHhbaV0s
ciwyKmksMCwxKTsKLSAgICByLnMgPSAwOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJv
dGVjdGVkKSBkaXZpZGUgdGhpcyBieSBtLCBxdW90aWVudCBhbmQgcmVtYWluZGVyIHRvIHEsIHIg
KEhBQyAxNC4yMCkKLSAgLy8gciAhPSBxLCB0aGlzICE9IG0uICBxIG9yIHIgbWF5IGJlIG51bGwu
Ci0gIGZ1bmN0aW9uIGJucERpdlJlbVRvKG0scSxyKSB7Ci0gICAgdmFyIHBtID0gbS5hYnMoKTsK
LSAgICBpZihwbS50IDw9IDApIHJldHVybjsKLSAgICB2YXIgcHQgPSB0aGlzLmFicygpOwotICAg
IGlmKHB0LnQgPCBwbS50KSB7Ci0gICAgICBpZihxICE9IG51bGwpIHEuZnJvbUludCgwKTsKLSAg
ICAgIGlmKHIgIT0gbnVsbCkgdGhpcy5jb3B5VG8ocik7Ci0gICAgICByZXR1cm47Ci0gICAgfQot
ICAgIGlmKHIgPT0gbnVsbCkgciA9IG5iaSgpOwotICAgIHZhciB5ID0gbmJpKCksIHRzID0gdGhp
cy5zLCBtcyA9IG0uczsKLSAgICB2YXIgbnNoID0gdGhpcy5EQi1uYml0cyhwbVtwbS50LTFdKTsJ
Ly8gbm9ybWFsaXplIG1vZHVsdXMKLSAgICBpZihuc2ggPiAwKSB7IHBtLmxTaGlmdFRvKG5zaCx5
KTsgcHQubFNoaWZ0VG8obnNoLHIpOyB9Ci0gICAgZWxzZSB7IHBtLmNvcHlUbyh5KTsgcHQuY29w
eVRvKHIpOyB9Ci0gICAgdmFyIHlzID0geS50OwotICAgIHZhciB5MCA9IHlbeXMtMV07Ci0gICAg
aWYoeTAgPT0gMCkgcmV0dXJuOwotICAgIHZhciB5dCA9IHkwKigxPDx0aGlzLkYxKSsoKHlzPjEp
P3lbeXMtMl0+PnRoaXMuRjI6MCk7Ci0gICAgdmFyIGQxID0gdGhpcy5GVi95dCwgZDIgPSAoMTw8
dGhpcy5GMSkveXQsIGUgPSAxPDx0aGlzLkYyOwotICAgIHZhciBpID0gci50LCBqID0gaS15cywg
dCA9IChxPT1udWxsKT9uYmkoKTpxOwotICAgIHkuZGxTaGlmdFRvKGosdCk7Ci0gICAgaWYoci5j
b21wYXJlVG8odCkgPj0gMCkgewotICAgICAgcltyLnQrK10gPSAxOwotICAgICAgci5zdWJUbyh0
LHIpOwotICAgIH0KLSAgICBCaWdJbnRlZ2VyLk9ORS5kbFNoaWZ0VG8oeXMsdCk7Ci0gICAgdC5z
dWJUbyh5LHkpOwkvLyAibmVnYXRpdmUiIHkgc28gd2UgY2FuIHJlcGxhY2Ugc3ViIHdpdGggYW0g
bGF0ZXIKLSAgICB3aGlsZSh5LnQgPCB5cykgeVt5LnQrK10gPSAwOwotICAgIHdoaWxlKC0taiA+
PSAwKSB7Ci0gICAgICAvLyBFc3RpbWF0ZSBxdW90aWVudCBkaWdpdAotICAgICAgdmFyIHFkID0g
KHJbLS1pXT09eTApP3RoaXMuRE06TWF0aC5mbG9vcihyW2ldKmQxKyhyW2ktMV0rZSkqZDIpOwot
ICAgICAgaWYoKHJbaV0rPXkuYW0oMCxxZCxyLGosMCx5cykpIDwgcWQpIHsJLy8gVHJ5IGl0IG91
dAotICAgICAgICB5LmRsU2hpZnRUbyhqLHQpOwotICAgICAgICByLnN1YlRvKHQscik7Ci0gICAg
ICAgIHdoaWxlKHJbaV0gPCAtLXFkKSByLnN1YlRvKHQscik7Ci0gICAgICB9Ci0gICAgfQotICAg
IGlmKHEgIT0gbnVsbCkgewotICAgICAgci5kclNoaWZ0VG8oeXMscSk7Ci0gICAgICBpZih0cyAh
PSBtcykgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHEscSk7Ci0gICAgfQotICAgIHIudCA9IHlzOwot
ICAgIHIuY2xhbXAoKTsKLSAgICBpZihuc2ggPiAwKSByLnJTaGlmdFRvKG5zaCxyKTsJLy8gRGVu
b3JtYWxpemUgcmVtYWluZGVyCi0gICAgaWYodHMgPCAwKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8o
cixyKTsKLSAgfQotICAvLyAocHVibGljKSB0aGlzIG1vZCBhCi0gIGZ1bmN0aW9uIGJuTW9kKGEp
IHsKLSAgICB2YXIgciA9IG5iaSgpOwotICAgIHRoaXMuYWJzKCkuZGl2UmVtVG8oYSxudWxsLHIp
OwotICAgIGlmKHRoaXMucyA8IDAgJiYgci5jb21wYXJlVG8oQmlnSW50ZWdlci5aRVJPKSA+IDAp
IGEuc3ViVG8ocixyKTsKLSAgICByZXR1cm4gcjsKLSAgfQotICAvLyBNb2R1bGFyIHJlZHVjdGlv
biB1c2luZyAiY2xhc3NpYyIgYWxnb3JpdGhtCi0gIGZ1bmN0aW9uIENsYXNzaWMobSkgeyB0aGlz
Lm0gPSBtOyB9Ci0gIGZ1bmN0aW9uIGNDb252ZXJ0KHgpIHsKLSAgICBpZih4LnMgPCAwIHx8IHgu
Y29tcGFyZVRvKHRoaXMubSkgPj0gMCkgcmV0dXJuIHgubW9kKHRoaXMubSk7Ci0gICAgZWxzZSBy
ZXR1cm4geDsKLSAgfQotICBmdW5jdGlvbiBjUmV2ZXJ0KHgpIHsgcmV0dXJuIHg7IH0KLSAgZnVu
Y3Rpb24gY1JlZHVjZSh4KSB7IHguZGl2UmVtVG8odGhpcy5tLG51bGwseCk7IH0KLSAgZnVuY3Rp
b24gY011bFRvKHgseSxyKSB7IHgubXVsdGlwbHlUbyh5LHIpOyB0aGlzLnJlZHVjZShyKTsgfQot
ICBmdW5jdGlvbiBjU3FyVG8oeCxyKSB7IHguc3F1YXJlVG8ocik7IHRoaXMucmVkdWNlKHIpOyB9
Ci0gIENsYXNzaWMucHJvdG90eXBlLmNvbnZlcnQgPSBjQ29udmVydDsKLSAgQ2xhc3NpYy5wcm90
b3R5cGUucmV2ZXJ0ID0gY1JldmVydDsKLSAgQ2xhc3NpYy5wcm90b3R5cGUucmVkdWNlID0gY1Jl
ZHVjZTsKLSAgQ2xhc3NpYy5wcm90b3R5cGUubXVsVG8gPSBjTXVsVG87Ci0gIENsYXNzaWMucHJv
dG90eXBlLnNxclRvID0gY1NxclRvOwotICAvLyAocHJvdGVjdGVkKSByZXR1cm4gIi0xL3RoaXMg
JSAyXkRCIjsgdXNlZnVsIGZvciBNb250LiByZWR1Y3Rpb24KLSAgLy8ganVzdGlmaWNhdGlvbjoK
LSAgLy8gICAgICAgICB4eSA9PSAxIChtb2QgbSkKLSAgLy8gICAgICAgICB4eSA9ICAxK2ttCi0g
IC8vICAgeHkoMi14eSkgPSAoMStrbSkoMS1rbSkKLSAgLy8geFt5KDIteHkpXSA9IDEta14ybV4y
Ci0gIC8vIHhbeSgyLXh5KV0gPT0gMSAobW9kIG1eMikKLSAgLy8gaWYgeSBpcyAxL3ggbW9kIG0s
IHRoZW4geSgyLXh5KSBpcyAxL3ggbW9kIG1eMgotICAvLyBzaG91bGQgcmVkdWNlIHggYW5kIHko
Mi14eSkgYnkgbV4yIGF0IGVhY2ggc3RlcCB0byBrZWVwIHNpemUgYm91bmRlZC4KLSAgLy8gSlMg
bXVsdGlwbHkgIm92ZXJmbG93cyIgZGlmZmVyZW50bHkgZnJvbSBDL0MrKywgc28gY2FyZSBpcyBu
ZWVkZWQgaGVyZS4KLSAgZnVuY3Rpb24gYm5wSW52RGlnaXQoKSB7Ci0gICAgaWYodGhpcy50IDwg
MSkgcmV0dXJuIDA7Ci0gICAgdmFyIHggPSB0aGlzWzBdOwotICAgIGlmKCh4JjEpID09IDApIHJl
dHVybiAwOwotICAgIHZhciB5ID0geCYzOwkJLy8geSA9PSAxL3ggbW9kIDJeMgotICAgIHkgPSAo
eSooMi0oeCYweGYpKnkpKSYweGY7CS8vIHkgPT0gMS94IG1vZCAyXjQKLSAgICB5ID0gKHkqKDIt
KHgmMHhmZikqeSkpJjB4ZmY7CS8vIHkgPT0gMS94IG1vZCAyXjgKLSAgICB5ID0gKHkqKDItKCgo
eCYweGZmZmYpKnkpJjB4ZmZmZikpKSYweGZmZmY7CS8vIHkgPT0gMS94IG1vZCAyXjE2Ci0gICAg
Ly8gbGFzdCBzdGVwIC0gY2FsY3VsYXRlIGludmVyc2UgbW9kIERWIGRpcmVjdGx5OwotICAgIC8v
IGFzc3VtZXMgMTYgPCBEQiA8PSAzMiBhbmQgYXNzdW1lcyBhYmlsaXR5IHRvIGhhbmRsZSA0OC1i
aXQgaW50cwotICAgIHkgPSAoeSooMi14KnkldGhpcy5EVikpJXRoaXMuRFY7CQkvLyB5ID09IDEv
eCBtb2QgMl5kYml0cwotICAgIC8vIHdlIHJlYWxseSB3YW50IHRoZSBuZWdhdGl2ZSBpbnZlcnNl
LCBhbmQgLURWIDwgeSA8IERWCi0gICAgcmV0dXJuICh5PjApP3RoaXMuRFYteToteTsKLSAgfQot
ICAvLyBNb250Z29tZXJ5IHJlZHVjdGlvbgotICBmdW5jdGlvbiBNb250Z29tZXJ5KG0pIHsKLSAg
ICB0aGlzLm0gPSBtOwotICAgIHRoaXMubXAgPSBtLmludkRpZ2l0KCk7Ci0gICAgdGhpcy5tcGwg
PSB0aGlzLm1wJjB4N2ZmZjsKLSAgICB0aGlzLm1waCA9IHRoaXMubXA+PjE1OwotICAgIHRoaXMu
dW0gPSAoMTw8KG0uREItMTUpKS0xOwotICAgIHRoaXMubXQyID0gMiptLnQ7Ci0gIH0KLSAgLy8g
eFIgbW9kIG0KLSAgZnVuY3Rpb24gbW9udENvbnZlcnQoeCkgewotICAgIHZhciByID0gbmJpKCk7
Ci0gICAgeC5hYnMoKS5kbFNoaWZ0VG8odGhpcy5tLnQscik7Ci0gICAgci5kaXZSZW1Ubyh0aGlz
Lm0sbnVsbCxyKTsKLSAgICBpZih4LnMgPCAwICYmIHIuY29tcGFyZVRvKEJpZ0ludGVnZXIuWkVS
TykgPiAwKSB0aGlzLm0uc3ViVG8ocixyKTsKLSAgICByZXR1cm4gcjsKLSAgfQotICAvLyB4L1Ig
bW9kIG0KLSAgZnVuY3Rpb24gbW9udFJldmVydCh4KSB7Ci0gICAgdmFyIHIgPSBuYmkoKTsKLSAg
ICB4LmNvcHlUbyhyKTsKLSAgICB0aGlzLnJlZHVjZShyKTsKLSAgICByZXR1cm4gcjsKLSAgfQot
ICAvLyB4ID0geC9SIG1vZCBtIChIQUMgMTQuMzIpCi0gIGZ1bmN0aW9uIG1vbnRSZWR1Y2UoeCkg
ewotICAgIHdoaWxlKHgudCA8PSB0aGlzLm10MikJLy8gcGFkIHggc28gYW0gaGFzIGVub3VnaCBy
b29tIGxhdGVyCi0gICAgICB4W3gudCsrXSA9IDA7Ci0gICAgZm9yKHZhciBpID0gMDsgaSA8IHRo
aXMubS50OyArK2kpIHsKLSAgICAgIC8vIGZhc3RlciB3YXkgb2YgY2FsY3VsYXRpbmcgdTAgPSB4
W2ldKm1wIG1vZCBEVgotICAgICAgdmFyIGogPSB4W2ldJjB4N2ZmZjsKLSAgICAgIHZhciB1MCA9
IChqKnRoaXMubXBsKygoKGoqdGhpcy5tcGgrKHhbaV0+PjE1KSp0aGlzLm1wbCkmdGhpcy51bSk8
PDE1KSkmeC5ETTsKLSAgICAgIC8vIHVzZSBhbSB0byBjb21iaW5lIHRoZSBtdWx0aXBseS1zaGlm
dC1hZGQgaW50byBvbmUgY2FsbAotICAgICAgaiA9IGkrdGhpcy5tLnQ7Ci0gICAgICB4W2pdICs9
IHRoaXMubS5hbSgwLHUwLHgsaSwwLHRoaXMubS50KTsKLSAgICAgIC8vIHByb3BhZ2F0ZSBjYXJy
eQotICAgICAgd2hpbGUoeFtqXSA+PSB4LkRWKSB7IHhbal0gLT0geC5EVjsgeFsrK2pdKys7IH0K
LSAgICB9Ci0gICAgeC5jbGFtcCgpOwotICAgIHguZHJTaGlmdFRvKHRoaXMubS50LHgpOwotICAg
IGlmKHguY29tcGFyZVRvKHRoaXMubSkgPj0gMCkgeC5zdWJUbyh0aGlzLm0seCk7Ci0gIH0KLSAg
Ly8gciA9ICJ4XjIvUiBtb2QgbSI7IHggIT0gcgotICBmdW5jdGlvbiBtb250U3FyVG8oeCxyKSB7
IHguc3F1YXJlVG8ocik7IHRoaXMucmVkdWNlKHIpOyB9Ci0gIC8vIHIgPSAieHkvUiBtb2QgbSI7
IHgseSAhPSByCi0gIGZ1bmN0aW9uIG1vbnRNdWxUbyh4LHkscikgeyB4Lm11bHRpcGx5VG8oeSxy
KTsgdGhpcy5yZWR1Y2Uocik7IH0KLSAgTW9udGdvbWVyeS5wcm90b3R5cGUuY29udmVydCA9IG1v
bnRDb252ZXJ0OwotICBNb250Z29tZXJ5LnByb3RvdHlwZS5yZXZlcnQgPSBtb250UmV2ZXJ0Owot
ICBNb250Z29tZXJ5LnByb3RvdHlwZS5yZWR1Y2UgPSBtb250UmVkdWNlOwotICBNb250Z29tZXJ5
LnByb3RvdHlwZS5tdWxUbyA9IG1vbnRNdWxUbzsKLSAgTW9udGdvbWVyeS5wcm90b3R5cGUuc3Fy
VG8gPSBtb250U3FyVG87Ci0gIC8vIChwcm90ZWN0ZWQpIHRydWUgaWZmIHRoaXMgaXMgZXZlbgot
ICBmdW5jdGlvbiBibnBJc0V2ZW4oKSB7IHJldHVybiAoKHRoaXMudD4wKT8odGhpc1swXSYxKTp0
aGlzLnMpID09IDA7IH0KLSAgLy8gKHByb3RlY3RlZCkgdGhpc15lLCBlIDwgMl4zMiwgZG9pbmcg
c3FyIGFuZCBtdWwgd2l0aCAiciIgKEhBQyAxNC43OSkKLSAgZnVuY3Rpb24gYm5wRXhwKGUseikg
ewotICAgIGlmKGUgPiAweGZmZmZmZmZmIHx8IGUgPCAxKSByZXR1cm4gQmlnSW50ZWdlci5PTkU7
Ci0gICAgdmFyIHIgPSBuYmkoKSwgcjIgPSBuYmkoKSwgZyA9IHouY29udmVydCh0aGlzKSwgaSA9
IG5iaXRzKGUpLTE7Ci0gICAgZy5jb3B5VG8ocik7Ci0gICAgd2hpbGUoLS1pID49IDApIHsKLSAg
ICAgIHouc3FyVG8ocixyMik7Ci0gICAgICBpZigoZSYoMTw8aSkpID4gMCkgei5tdWxUbyhyMixn
LHIpOwotICAgICAgZWxzZSB7IHZhciB0ID0gcjsgciA9IHIyOyByMiA9IHQ7IH0KLSAgICB9Ci0g
ICAgcmV0dXJuIHoucmV2ZXJ0KHIpOwotICB9Ci0gIC8vIChwdWJsaWMpIHRoaXNeZSAlIG0sIDAg
PD0gZSA8IDJeMzIKLSAgZnVuY3Rpb24gYm5Nb2RQb3dJbnQoZSxtKSB7Ci0gICAgdmFyIHo7Ci0g
ICAgaWYoZSA8IDI1NiB8fCBtLmlzRXZlbigpKSB6ID0gbmV3IENsYXNzaWMobSk7IGVsc2UgeiA9
IG5ldyBNb250Z29tZXJ5KG0pOwotICAgIHJldHVybiB0aGlzLmV4cChlLHopOwotICB9Ci0gIC8v
IHByb3RlY3RlZAotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5jb3B5VG8gPSBibnBDb3B5VG87Ci0g
IEJpZ0ludGVnZXIucHJvdG90eXBlLmZyb21JbnQgPSBibnBGcm9tSW50OwotICBCaWdJbnRlZ2Vy
LnByb3RvdHlwZS5mcm9tU3RyaW5nID0gYm5wRnJvbVN0cmluZzsKLSAgQmlnSW50ZWdlci5wcm90
b3R5cGUuY2xhbXAgPSBibnBDbGFtcDsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZGxTaGlmdFRv
ID0gYm5wRExTaGlmdFRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kclNoaWZ0VG8gPSBibnBE
UlNoaWZ0VG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmxTaGlmdFRvID0gYm5wTFNoaWZ0VG87
Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLnJTaGlmdFRvID0gYm5wUlNoaWZ0VG87Ci0gIEJpZ0lu
dGVnZXIucHJvdG90eXBlLnN1YlRvID0gYm5wU3ViVG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBl
Lm11bHRpcGx5VG8gPSBibnBNdWx0aXBseVRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5zcXVh
cmVUbyA9IGJucFNxdWFyZVRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kaXZSZW1UbyA9IGJu
cERpdlJlbVRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pbnZEaWdpdCA9IGJucEludkRpZ2l0
OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc0V2ZW4gPSBibnBJc0V2ZW47Ci0gIEJpZ0ludGVn
ZXIucHJvdG90eXBlLmV4cCA9IGJucEV4cDsKLSAgLy8gcHVibGljCi0gIEJpZ0ludGVnZXIucHJv
dG90eXBlLnRvU3RyaW5nID0gYm5Ub1N0cmluZzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUubmVn
YXRlID0gYm5OZWdhdGU7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmFicyA9IGJuQWJzOwotICBC
aWdJbnRlZ2VyLnByb3RvdHlwZS5jb21wYXJlVG8gPSBibkNvbXBhcmVUbzsKLSAgQmlnSW50ZWdl
ci5wcm90b3R5cGUuYml0TGVuZ3RoID0gYm5CaXRMZW5ndGg7Ci0gIEJpZ0ludGVnZXIucHJvdG90
eXBlLm1vZCA9IGJuTW9kOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tb2RQb3dJbnQgPSBibk1v
ZFBvd0ludDsKLSAgLy8gImNvbnN0YW50cyIKLSAgQmlnSW50ZWdlci5aRVJPID0gbmJ2KDApOwot
ICBCaWdJbnRlZ2VyLk9ORSA9IG5idigxKTsKLSAgLy8ganNibjIgc3R1ZmYKLSAgLy8gKHByb3Rl
Y3RlZCkgY29udmVydCBmcm9tIHJhZGl4IHN0cmluZwotICBmdW5jdGlvbiBibnBGcm9tUmFkaXgo
cyxiKSB7Ci0gICAgdGhpcy5mcm9tSW50KDApOwotICAgIGlmKGIgPT0gbnVsbCkgYiA9IDEwOwot
ICAgIHZhciBjcyA9IHRoaXMuY2h1bmtTaXplKGIpOwotICAgIHZhciBkID0gTWF0aC5wb3coYixj
cyksIG1pID0gZmFsc2UsIGogPSAwLCB3ID0gMDsKLSAgICBmb3IodmFyIGkgPSAwOyBpIDwgcy5s
ZW5ndGg7ICsraSkgewotICAgICAgdmFyIHggPSBpbnRBdChzLGkpOwotICAgICAgaWYoeCA8IDAp
IHsKLSAgICAgICAgaWYocy5jaGFyQXQoaSkgPT0gIi0iICYmIHRoaXMuc2lnbnVtKCkgPT0gMCkg
bWkgPSB0cnVlOwotICAgICAgICBjb250aW51ZTsKLSAgICAgIH0KLSAgICAgIHcgPSBiKncreDsK
LSAgICAgIGlmKCsraiA+PSBjcykgewotICAgICAgICB0aGlzLmRNdWx0aXBseShkKTsKLSAgICAg
ICAgdGhpcy5kQWRkT2Zmc2V0KHcsMCk7Ci0gICAgICAgIGogPSAwOwotICAgICAgICB3ID0gMDsK
LSAgICAgIH0KLSAgICB9Ci0gICAgaWYoaiA+IDApIHsKLSAgICAgIHRoaXMuZE11bHRpcGx5KE1h
dGgucG93KGIsaikpOwotICAgICAgdGhpcy5kQWRkT2Zmc2V0KHcsMCk7Ci0gICAgfQotICAgIGlm
KG1pKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8odGhpcyx0aGlzKTsKLSAgfQotICAvLyAocHJvdGVj
dGVkKSByZXR1cm4geCBzLnQuIHJeeCA8IERWCi0gIGZ1bmN0aW9uIGJucENodW5rU2l6ZShyKSB7
IHJldHVybiBNYXRoLmZsb29yKE1hdGguTE4yKnRoaXMuREIvTWF0aC5sb2cocikpOyB9Ci0gIC8v
IChwdWJsaWMpIDAgaWYgdGhpcyA9PSAwLCAxIGlmIHRoaXMgPiAwCi0gIGZ1bmN0aW9uIGJuU2ln
TnVtKCkgewotICAgIGlmKHRoaXMucyA8IDApIHJldHVybiAtMTsKLSAgICBlbHNlIGlmKHRoaXMu
dCA8PSAwIHx8ICh0aGlzLnQgPT0gMSAmJiB0aGlzWzBdIDw9IDApKSByZXR1cm4gMDsKLSAgICBl
bHNlIHJldHVybiAxOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHRoaXMgKj0gbiwgdGhpcyA+PSAw
LCAxIDwgbiA8IERWCi0gIGZ1bmN0aW9uIGJucERNdWx0aXBseShuKSB7Ci0gICAgdGhpc1t0aGlz
LnRdID0gdGhpcy5hbSgwLG4tMSx0aGlzLDAsMCx0aGlzLnQpOwotICAgICsrdGhpcy50OwotICAg
IHRoaXMuY2xhbXAoKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSB0aGlzICs9IG4gPDwgdyB3b3Jk
cywgdGhpcyA+PSAwCi0gIGZ1bmN0aW9uIGJucERBZGRPZmZzZXQobix3KSB7Ci0gICAgaWYobiA9
PSAwKSByZXR1cm47Ci0gICAgd2hpbGUodGhpcy50IDw9IHcpIHRoaXNbdGhpcy50KytdID0gMDsK
LSAgICB0aGlzW3ddICs9IG47Ci0gICAgd2hpbGUodGhpc1t3XSA+PSB0aGlzLkRWKSB7Ci0gICAg
ICB0aGlzW3ddIC09IHRoaXMuRFY7Ci0gICAgICBpZigrK3cgPj0gdGhpcy50KSB0aGlzW3RoaXMu
dCsrXSA9IDA7Ci0gICAgICArK3RoaXNbd107Ci0gICAgfQotICB9Ci0gIC8vIChwcm90ZWN0ZWQp
IGNvbnZlcnQgdG8gcmFkaXggc3RyaW5nCi0gIGZ1bmN0aW9uIGJucFRvUmFkaXgoYikgewotICAg
IGlmKGIgPT0gbnVsbCkgYiA9IDEwOwotICAgIGlmKHRoaXMuc2lnbnVtKCkgPT0gMCB8fCBiIDwg
MiB8fCBiID4gMzYpIHJldHVybiAiMCI7Ci0gICAgdmFyIGNzID0gdGhpcy5jaHVua1NpemUoYik7
Ci0gICAgdmFyIGEgPSBNYXRoLnBvdyhiLGNzKTsKLSAgICB2YXIgZCA9IG5idihhKSwgeSA9IG5i
aSgpLCB6ID0gbmJpKCksIHIgPSAiIjsKLSAgICB0aGlzLmRpdlJlbVRvKGQseSx6KTsKLSAgICB3
aGlsZSh5LnNpZ251bSgpID4gMCkgewotICAgICAgciA9IChhK3ouaW50VmFsdWUoKSkudG9TdHJp
bmcoYikuc3Vic3RyKDEpICsgcjsKLSAgICAgIHkuZGl2UmVtVG8oZCx5LHopOwotICAgIH0KLSAg
ICByZXR1cm4gei5pbnRWYWx1ZSgpLnRvU3RyaW5nKGIpICsgcjsKLSAgfQotICAvLyAocHVibGlj
KSByZXR1cm4gdmFsdWUgYXMgaW50ZWdlcgotICBmdW5jdGlvbiBibkludFZhbHVlKCkgewotICAg
IGlmKHRoaXMucyA8IDApIHsKLSAgICAgIGlmKHRoaXMudCA9PSAxKSByZXR1cm4gdGhpc1swXS10
aGlzLkRWOwotICAgICAgZWxzZSBpZih0aGlzLnQgPT0gMCkgcmV0dXJuIC0xOwotICAgIH0KLSAg
ICBlbHNlIGlmKHRoaXMudCA9PSAxKSByZXR1cm4gdGhpc1swXTsKLSAgICBlbHNlIGlmKHRoaXMu
dCA9PSAwKSByZXR1cm4gMDsKLSAgICAvLyBhc3N1bWVzIDE2IDwgREIgPCAzMgotICAgIHJldHVy
biAoKHRoaXNbMV0mKCgxPDwoMzItdGhpcy5EQikpLTEpKTw8dGhpcy5EQil8dGhpc1swXTsKLSAg
fQotICAvLyAocHJvdGVjdGVkKSByID0gdGhpcyArIGEKLSAgZnVuY3Rpb24gYm5wQWRkVG8oYSxy
KSB7Ci0gICAgdmFyIGkgPSAwLCBjID0gMCwgbSA9IE1hdGgubWluKGEudCx0aGlzLnQpOwotICAg
IHdoaWxlKGkgPCBtKSB7Ci0gICAgICBjICs9IHRoaXNbaV0rYVtpXTsKLSAgICAgIHJbaSsrXSA9
IGMmdGhpcy5ETTsKLSAgICAgIGMgPj49IHRoaXMuREI7Ci0gICAgfQotICAgIGlmKGEudCA8IHRo
aXMudCkgewotICAgICAgYyArPSBhLnM7Ci0gICAgICB3aGlsZShpIDwgdGhpcy50KSB7Ci0gICAg
ICAgIGMgKz0gdGhpc1tpXTsKLSAgICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBj
ID4+PSB0aGlzLkRCOwotICAgICAgfQotICAgICAgYyArPSB0aGlzLnM7Ci0gICAgfQotICAgIGVs
c2UgewotICAgICAgYyArPSB0aGlzLnM7Ci0gICAgICB3aGlsZShpIDwgYS50KSB7Ci0gICAgICAg
IGMgKz0gYVtpXTsKLSAgICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0
aGlzLkRCOwotICAgICAgfQotICAgICAgYyArPSBhLnM7Ci0gICAgfQotICAgIHIucyA9IChjPDAp
Py0xOjA7Ci0gICAgaWYoYyA+IDApIHJbaSsrXSA9IGM7Ci0gICAgZWxzZSBpZihjIDwgLTEpIHJb
aSsrXSA9IHRoaXMuRFYrYzsKLSAgICByLnQgPSBpOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICBC
aWdJbnRlZ2VyLnByb3RvdHlwZS5mcm9tUmFkaXggPSBibnBGcm9tUmFkaXg7Ci0gIEJpZ0ludGVn
ZXIucHJvdG90eXBlLmNodW5rU2l6ZSA9IGJucENodW5rU2l6ZTsKLSAgQmlnSW50ZWdlci5wcm90
b3R5cGUuc2lnbnVtID0gYm5TaWdOdW07Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRNdWx0aXBs
eSA9IGJucERNdWx0aXBseTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZEFkZE9mZnNldCA9IGJu
cERBZGRPZmZzZXQ7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLnRvUmFkaXggPSBibnBUb1JhZGl4
OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pbnRWYWx1ZSA9IGJuSW50VmFsdWU7Ci0gIEJpZ0lu
dGVnZXIucHJvdG90eXBlLmFkZFRvID0gYm5wQWRkVG87Ci0gIC8vPT09PT09PSBlbmQganNibiA9
PT09PT09Ci0gIC8vIEVtc2NyaXB0ZW4gd3JhcHBlcgotICB2YXIgV3JhcHBlciA9IHsKLSAgICBh
YnM6IGZ1bmN0aW9uKGwsIGgpIHsKLSAgICAgIHZhciB4ID0gbmV3IGdvb2cubWF0aC5Mb25nKGws
IGgpOwotICAgICAgdmFyIHJldDsKLSAgICAgIGlmICh4LmlzTmVnYXRpdmUoKSkgewotICAgICAg
ICByZXQgPSB4Lm5lZ2F0ZSgpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0ID0geDsKLSAg
ICAgIH0KLSAgICAgIEhFQVAzMlt0ZW1wRG91YmxlUHRyPj4yXSA9IHJldC5sb3dfOwotICAgICAg
SEVBUDMyW3RlbXBEb3VibGVQdHIrND4+Ml0gPSByZXQuaGlnaF87Ci0gICAgfSwKLSAgICBlbnN1
cmVUZW1wczogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAoV3JhcHBlci5lbnN1cmVkVGVtcHMpIHJl
dHVybjsKLSAgICAgIFdyYXBwZXIuZW5zdXJlZFRlbXBzID0gdHJ1ZTsKLSAgICAgIFdyYXBwZXIu
dHdvMzIgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgV3JhcHBlci50d28zMi5mcm9tU3RyaW5n
KCc0Mjk0OTY3Mjk2JywgMTApOwotICAgICAgV3JhcHBlci50d282NCA9IG5ldyBCaWdJbnRlZ2Vy
KCk7Ci0gICAgICBXcmFwcGVyLnR3bzY0LmZyb21TdHJpbmcoJzE4NDQ2NzQ0MDczNzA5NTUxNjE2
JywgMTApOwotICAgICAgV3JhcHBlci50ZW1wMSA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBX
cmFwcGVyLnRlbXAyID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICB9LAotICAgIGxoMmJpZ251bTog
ZnVuY3Rpb24obCwgaCkgewotICAgICAgdmFyIGEgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAg
YS5mcm9tU3RyaW5nKGgudG9TdHJpbmcoKSwgMTApOwotICAgICAgdmFyIGIgPSBuZXcgQmlnSW50
ZWdlcigpOwotICAgICAgYS5tdWx0aXBseVRvKFdyYXBwZXIudHdvMzIsIGIpOwotICAgICAgdmFy
IGMgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgYy5mcm9tU3RyaW5nKGwudG9TdHJpbmcoKSwg
MTApOwotICAgICAgdmFyIGQgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgYy5hZGRUbyhiLCBk
KTsKLSAgICAgIHJldHVybiBkOwotICAgIH0sCi0gICAgc3RyaW5naWZ5OiBmdW5jdGlvbihsLCBo
LCB1bnNpZ25lZCkgewotICAgICAgdmFyIHJldCA9IG5ldyBnb29nLm1hdGguTG9uZyhsLCBoKS50
b1N0cmluZygpOwotICAgICAgaWYgKHVuc2lnbmVkICYmIHJldFswXSA9PSAnLScpIHsKLSAgICAg
ICAgLy8gdW5zaWduIHNsb3dseSB1c2luZyBqc2JuIGJpZ251bXMKLSAgICAgICAgV3JhcHBlci5l
bnN1cmVUZW1wcygpOwotICAgICAgICB2YXIgYmlnbnVtID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAg
ICAgICAgYmlnbnVtLmZyb21TdHJpbmcocmV0LCAxMCk7Ci0gICAgICAgIHJldCA9IG5ldyBCaWdJ
bnRlZ2VyKCk7Ci0gICAgICAgIFdyYXBwZXIudHdvNjQuYWRkVG8oYmlnbnVtLCByZXQpOwotICAg
ICAgICByZXQgPSByZXQudG9TdHJpbmcoMTApOwotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsK
LSAgICB9LAotICAgIGZyb21TdHJpbmc6IGZ1bmN0aW9uKHN0ciwgYmFzZSwgbWluLCBtYXgsIHVu
c2lnbmVkKSB7Ci0gICAgICBXcmFwcGVyLmVuc3VyZVRlbXBzKCk7Ci0gICAgICB2YXIgYmlnbnVt
ID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGJpZ251bS5mcm9tU3RyaW5nKHN0ciwgYmFzZSk7
Ci0gICAgICB2YXIgYmlnbWluID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGJpZ21pbi5mcm9t
U3RyaW5nKG1pbiwgMTApOwotICAgICAgdmFyIGJpZ21heCA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0g
ICAgICBiaWdtYXguZnJvbVN0cmluZyhtYXgsIDEwKTsKLSAgICAgIGlmICh1bnNpZ25lZCAmJiBi
aWdudW0uY29tcGFyZVRvKEJpZ0ludGVnZXIuWkVSTykgPCAwKSB7Ci0gICAgICAgIHZhciB0ZW1w
ID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgICAgYmlnbnVtLmFkZFRvKFdyYXBwZXIudHdvNjQs
IHRlbXApOwotICAgICAgICBiaWdudW0gPSB0ZW1wOwotICAgICAgfQotICAgICAgdmFyIGVycm9y
ID0gZmFsc2U7Ci0gICAgICBpZiAoYmlnbnVtLmNvbXBhcmVUbyhiaWdtaW4pIDwgMCkgewotICAg
ICAgICBiaWdudW0gPSBiaWdtaW47Ci0gICAgICAgIGVycm9yID0gdHJ1ZTsKLSAgICAgIH0gZWxz
ZSBpZiAoYmlnbnVtLmNvbXBhcmVUbyhiaWdtYXgpID4gMCkgewotICAgICAgICBiaWdudW0gPSBi
aWdtYXg7Ci0gICAgICAgIGVycm9yID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAgIHZhciByZXQgPSBn
b29nLm1hdGguTG9uZy5mcm9tU3RyaW5nKGJpZ251bS50b1N0cmluZygpKTsgLy8gbWluLW1heCBj
aGVja3Mgc2hvdWxkIGhhdmUgY2xhbXBlZCB0aGlzIHRvIGEgcmFuZ2UgZ29vZy5tYXRoLkxvbmcg
Y2FuIGhhbmRsZSB3ZWxsCi0gICAgICBIRUFQMzJbdGVtcERvdWJsZVB0cj4+Ml0gPSByZXQubG93
XzsKLSAgICAgIEhFQVAzMlt0ZW1wRG91YmxlUHRyKzQ+PjJdID0gcmV0LmhpZ2hfOwotICAgICAg
aWYgKGVycm9yKSB0aHJvdyAncmFuZ2UgZXJyb3InOwotICAgIH0KLSAgfTsKLSAgcmV0dXJuIFdy
YXBwZXI7Ci19KSgpOwotLy89PT09PT09IGVuZCBjbG9zdXJlIGk2NCBjb2RlID09PT09PT0KLS8v
ID09PSBBdXRvLWdlbmVyYXRlZCBwb3N0YW1ibGUgc2V0dXAgZW50cnkgc3R1ZmYgPT09Ci1mdW5j
dGlvbiBFeGl0U3RhdHVzKHN0YXR1cykgewotICB0aGlzLm5hbWUgPSAiRXhpdFN0YXR1cyI7Ci0g
IHRoaXMubWVzc2FnZSA9ICJQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCIgKyBzdGF0dXMg
KyAiKSI7Ci0gIHRoaXMuc3RhdHVzID0gc3RhdHVzOwotfTsKLUV4aXRTdGF0dXMucHJvdG90eXBl
ID0gbmV3IEVycm9yKCk7Ci1FeGl0U3RhdHVzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEV4aXRT
dGF0dXM7Ci12YXIgaW5pdGlhbFN0YWNrVG9wOwotdmFyIHByZWxvYWRTdGFydFRpbWUgPSBudWxs
OwotTW9kdWxlWydjYWxsTWFpbiddID0gTW9kdWxlLmNhbGxNYWluID0gZnVuY3Rpb24gY2FsbE1h
aW4oYXJncykgewotICBhc3NlcnQocnVuRGVwZW5kZW5jaWVzID09IDAsICdjYW5ub3QgY2FsbCBt
YWluIHdoZW4gYXN5bmMgZGVwZW5kZW5jaWVzIHJlbWFpbiEgKGxpc3RlbiBvbiBfX0FUTUFJTl9f
KScpOwotICBhc3NlcnQoX19BVFBSRVJVTl9fLmxlbmd0aCA9PSAwLCAnY2Fubm90IGNhbGwgbWFp
biB3aGVuIHByZVJ1biBmdW5jdGlvbnMgcmVtYWluIHRvIGJlIGNhbGxlZCcpOwotICBhcmdzID0g
YXJncyB8fCBbXTsKLSAgaWYgKEVOVklST05NRU5UX0lTX1dFQiAmJiBwcmVsb2FkU3RhcnRUaW1l
ICE9PSBudWxsKSB7Ci0gICAgLy9Nb2R1bGUucHJpbnRFcnIoJ3ByZWxvYWQgdGltZTogJyArIChE
YXRlLm5vdygpIC0gcHJlbG9hZFN0YXJ0VGltZSkgKyAnIG1zJyk7Ci0gIH0KLSAgZW5zdXJlSW5p
dFJ1bnRpbWUoKTsKLSAgdmFyIGFyZ2MgPSBhcmdzLmxlbmd0aCsxOwotICBmdW5jdGlvbiBwYWQo
KSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0LTE7IGkrKykgewotICAgICAgYXJndi5wdXNo
KDApOwotICAgIH0KLSAgfQotICB2YXIgYXJndiA9IFthbGxvY2F0ZShpbnRBcnJheUZyb21TdHJp
bmcoIi9iaW4vdGhpcy5wcm9ncmFtIiksICdpOCcsIEFMTE9DX05PUk1BTCkgXTsKLSAgcGFkKCk7
Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJnYy0xOyBpID0gaSArIDEpIHsKLSAgICBhcmd2LnB1
c2goYWxsb2NhdGUoaW50QXJyYXlGcm9tU3RyaW5nKGFyZ3NbaV0pLCAnaTgnLCBBTExPQ19OT1JN
QUwpKTsKLSAgICBwYWQoKTsKLSAgfQotICBhcmd2LnB1c2goMCk7Ci0gIGFyZ3YgPSBhbGxvY2F0
ZShhcmd2LCAnaTMyJywgQUxMT0NfTk9STUFMKTsKLSAgaW5pdGlhbFN0YWNrVG9wID0gU1RBQ0tU
T1A7Ci0gIHRyeSB7Ci0gICAgdmFyIHJldCA9IE1vZHVsZVsnX21haW4nXShhcmdjLCBhcmd2LCAw
KTsKLSAgICAvLyBpZiB3ZSdyZSBub3QgcnVubmluZyBhbiBldmVudGVkIG1haW4gbG9vcCwgaXQn
cyB0aW1lIHRvIGV4aXQKLSAgICBpZiAoIU1vZHVsZVsnbm9FeGl0UnVudGltZSddKSB7Ci0gICAg
ICBleGl0KHJldCk7Ci0gICAgfQotICB9Ci0gIGNhdGNoKGUpIHsKLSAgICBpZiAoZSBpbnN0YW5j
ZW9mIEV4aXRTdGF0dXMpIHsKLSAgICAgIC8vIGV4aXQoKSB0aHJvd3MgdGhpcyBvbmNlIGl0J3Mg
ZG9uZSB0byBtYWtlIHN1cmUgZXhlY3V0aW9uCi0gICAgICAvLyBoYXMgYmVlbiBzdG9wcGVkIGNv
bXBsZXRlbHkKLSAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgaWYgKGUgPT0gJ1NpbXVsYXRlSW5m
aW5pdGVMb29wJykgewotICAgICAgLy8gcnVubmluZyBhbiBldmVudGVkIG1haW4gbG9vcCwgZG9u
J3QgaW1tZWRpYXRlbHkgZXhpdAotICAgICAgTW9kdWxlWydub0V4aXRSdW50aW1lJ10gPSB0cnVl
OwotICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSB7Ci0gICAgICB0aHJvdyBlOwotICAgIH0KLSAg
fQotfQotZnVuY3Rpb24gcnVuKGFyZ3MpIHsKLSAgYXJncyA9IGFyZ3MgfHwgTW9kdWxlWydhcmd1
bWVudHMnXTsKLSAgaWYgKHByZWxvYWRTdGFydFRpbWUgPT09IG51bGwpIHByZWxvYWRTdGFydFRp
bWUgPSBEYXRlLm5vdygpOwotICBpZiAocnVuRGVwZW5kZW5jaWVzID4gMCkgewotICAgIC8vTW9k
dWxlLnByaW50RXJyKCdydW4oKSBjYWxsZWQsIGJ1dCBkZXBlbmRlbmNpZXMgcmVtYWluLCBzbyBu
b3QgcnVubmluZycpOwotICAgIHJldHVybjsKLSAgfQotICBwcmVSdW4oKTsKLSAgaWYgKHJ1bkRl
cGVuZGVuY2llcyA+IDApIHsKLSAgICAvLyBhIHByZVJ1biBhZGRlZCBhIGRlcGVuZGVuY3ksIHJ1
biB3aWxsIGJlIGNhbGxlZCBsYXRlcgotICAgIHJldHVybjsKLSAgfQotICBmdW5jdGlvbiBkb1J1
bigpIHsKLSAgICBlbnN1cmVJbml0UnVudGltZSgpOwotICAgIHByZU1haW4oKTsKLSAgICBjYWxs
ZWRSdW4gPSB0cnVlOwotICAgIGlmIChNb2R1bGVbJ19tYWluJ10gJiYgc2hvdWxkUnVuTm93KSB7
Ci0gICAgICBNb2R1bGVbJ2NhbGxNYWluJ10oYXJncyk7Ci0gICAgfQotICAgIHBvc3RSdW4oKTsK
LSAgfQotICBpZiAoTW9kdWxlWydzZXRTdGF0dXMnXSkgewotICAgIE1vZHVsZVsnc2V0U3RhdHVz
J10oJ1J1bm5pbmcuLi4nKTsKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXSgnJyk7Ci0g
ICAgICB9LCAxKTsKLSAgICAgIGlmICghQUJPUlQpIGRvUnVuKCk7Ci0gICAgfSwgMSk7Ci0gIH0g
ZWxzZSB7Ci0gICAgZG9SdW4oKTsKLSAgfQotfQotTW9kdWxlWydydW4nXSA9IE1vZHVsZS5ydW4g
PSBydW47Ci1mdW5jdGlvbiBleGl0KHN0YXR1cykgewotICBBQk9SVCA9IHRydWU7Ci0gIEVYSVRT
VEFUVVMgPSBzdGF0dXM7Ci0gIFNUQUNLVE9QID0gaW5pdGlhbFN0YWNrVG9wOwotICAvLyBleGl0
IHRoZSBydW50aW1lCi0gIGV4aXRSdW50aW1lKCk7Ci0gIC8vIHRocm93IGFuIGV4Y2VwdGlvbiB0
byBoYWx0IHRoZSBjdXJyZW50IGV4ZWN1dGlvbgotICB0aHJvdyBuZXcgRXhpdFN0YXR1cyhzdGF0
dXMpOwotfQotTW9kdWxlWydleGl0J10gPSBNb2R1bGUuZXhpdCA9IGV4aXQ7Ci1mdW5jdGlvbiBh
Ym9ydCh0ZXh0KSB7Ci0gIGlmICh0ZXh0KSB7Ci0gICAgTW9kdWxlLnByaW50KHRleHQpOwotICAg
IE1vZHVsZS5wcmludEVycih0ZXh0KTsKLSAgfQotICBBQk9SVCA9IHRydWU7Ci0gIEVYSVRTVEFU
VVMgPSAxOwotICB0aHJvdyAnYWJvcnQoKSBhdCAnICsgKG5ldyBFcnJvcigpLnN0YWNrKTsKLX0K
LU1vZHVsZVsnYWJvcnQnXSA9IE1vZHVsZS5hYm9ydCA9IGFib3J0OwotLy8ge3tQUkVfUlVOX0FE
RElUSU9OU319Ci1pZiAoTW9kdWxlWydwcmVJbml0J10pIHsKLSAgaWYgKHR5cGVvZiBNb2R1bGVb
J3ByZUluaXQnXSA9PSAnZnVuY3Rpb24nKSBNb2R1bGVbJ3ByZUluaXQnXSA9IFtNb2R1bGVbJ3By
ZUluaXQnXV07Ci0gIHdoaWxlIChNb2R1bGVbJ3ByZUluaXQnXS5sZW5ndGggPiAwKSB7Ci0gICAg
TW9kdWxlWydwcmVJbml0J10ucG9wKCkoKTsKLSAgfQotfQotLy8gc2hvdWxkUnVuTm93IHJlZmVy
cyB0byBjYWxsaW5nIG1haW4oKSwgbm90IHJ1bigpLgotdmFyIHNob3VsZFJ1bk5vdyA9IHRydWU7
Ci1pZiAoTW9kdWxlWydub0luaXRpYWxSdW4nXSkgewotICBzaG91bGRSdW5Ob3cgPSBmYWxzZTsK
LX0KLXJ1bigpOwotLy8ge3tQT1NUX1JVTl9BRERJVElPTlN9fQotLy8ge3tNT0RVTEVfQURESVRJ
T05TfX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFp
bmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFp
bmVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBmYjZmMGE4
NDJiZGIxMDc5MmI5NTVmMzEyZDZkY2Q3ODUxMzJhOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2Nv
bnRhaW5lci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1Jl
Z3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3N0ZXBhbm92X2NvbnRhaW5lci5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdGVwYW5v
dl9jb250YWluZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWI5NWY3NTIx
MjEwYzRiNjZjNzBkNzJkZTJlMjVkNTYxMTY5Nzg5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2Nv
bnRhaW5lci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RlcGFub3ZfY29udGFpbmVyLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9kZmctYWRkLW5vdC1udW1iZXIuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZn
LWFkZC1ub3QtbnVtYmVyLmpzCmluZGV4IDEyYzE0ZDA4N2ExOTQ4NDhjNDVmNTE5OTNmZTliNjA4
MDM0ZjZiNzkuLmQ0MzVjNjI2Y2YwYmY0YzVmMTZiYzJjMjEzNTBhYzI2MjEzYjQ3YWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctYWRkLW5vdC1udW1iZXIuanMK
KysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RmZy1hZGQtbm90LW51bWJlci5qcwpA
QCAtMSwzICsxLDYgQEAKKy8vIFRoaXMgdGVzdCB3b24ndCBnZXQgaW50byB0aGUgRlRMIGN1cnJl
bnRseSwgc2luY2UgdGhlIGZvbygpIGZ1bmN0aW9uIGp1c3QgZXhpdHMgYSBsb3QuCisvL0Agbm9G
VExSdW5MYXlvdXRUZXN0CisKIGRlc2NyaXB0aW9uKAogIlRlc3RzIHRoYXQgYWRkaW5nIHRoaW5n
cyB0aGF0IGFyZW4ndCBudW1iZXJzIHVzaW5nICsrIGRvZXMgbm90IGNyYXNoIG9yIGdlbmVyYXRl
IGJvZ3VzIGNvZGUuIgogKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9sYXJnZS1leHByZXNzaW9ucy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9sYXJn
ZS1leHByZXNzaW9ucy5qcwppbmRleCA1MjQ3MmJjMzFhYmViODJhZTdiMWQ2MDdlNDdiNjJhZGNl
MDg4NzUxLi40NWRiY2I3YmU0YTE2ZjJiMzIxZWI5ZWNlZjA3NjFlMzljOTA5OGYzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvbGFyZ2UtZXhwcmVzc2lvbnMuanMKKysr
IGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2xhcmdlLWV4cHJlc3Npb25zLmpzCkBAIC0z
MCw1ICszMCw1IEBAIGZ1bmN0aW9uIHJlcGVhdGVkU3RyaW5nKHZhbHVlLCBjb3VudCkKIAogc2hv
dWxkQmUoJ2V2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDApKScsICdy
ZXBlYXRlZFN0cmluZygiYSIsIDEwMCknKTsKIHNob3VsZEJlKCdldmFsKHJlcGVhdGVkRXhwcmVz
c2lvbigibGV0dGVyQSIsICIrIiwgMTAwMCkpJywgJ3JlcGVhdGVkU3RyaW5nKCJhIiwgMTAwMCkn
KTsKLXNob3VsZEJlKCdldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAw
MDApKScsICdyZXBlYXRlZFN0cmluZygiYSIsIDEwMDAwKScpOworc2hvdWxkVGhyb3coJ2V2YWwo
cmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMCkpJyk7CiBzaG91bGRUaHJv
dygnZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMDAwMCkpJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222450</attachid>
            <date>2014-01-28 08:57:16 -0800</date>
            <delta_ts>2014-01-28 10:01:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127763-20140128085709.patch</filename>
            <type>text/plain</type>
            <size>1635312</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkyMSBA
QAorMjAxNC0wMS0yNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIE1lcmdlIHRoZSBqc0NTdGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6Cisg
ICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6
aXNJbnQ3KToKKyAgICAgICAgKEpTQzo6aXNJbnQxMSk6CisgICAgICAgIChKU0M6OlBhaXJQb3N0
SW5kZXg6OlBhaXJQb3N0SW5kZXgpOgorICAgICAgICAoSlNDOjpQYWlyUG9zdEluZGV4OjpvcGVy
YXRvciBpbnQpOgorICAgICAgICAoSlNDOjpQYWlyUHJlSW5kZXg6OlBhaXJQcmVJbmRleCk6Cisg
ICAgICAgIChKU0M6OlBhaXJQcmVJbmRleDo6b3BlcmF0b3IgaW50KToKKyAgICAgICAgKEpTQzo6
QVJNNjRBc3NlbWJsZXI6Om1lbVBhaXJPZmZzZXRTaGlmdCk6CisgICAgICAgIChKU0M6OkFSTTY0
QXNzZW1ibGVyOjphZGQpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bGRwKToKKyAg
ICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OnN0cCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNz
ZW1ibGVyOjpzdWIpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFN0b3JlUmVn
aXN0ZXJQYWlyUG9zdEluZGV4KToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmxvYWRT
dG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KToKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3Nl
bWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmFkZCk6CisgICAgICAgIChK
U0M6OkFSTXY3QXNzZW1ibGVyOjpwb3ApOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6
cHVzaCk6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpBUk1JbnN0cnVjdGlvbkZvcm1h
dHRlcjo6dHdvV29yZE9wMTZJbW0xNik6CisgICAgICAgICogYXNzZW1ibGVyL0Fic3RyYWN0TWFj
cm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTGlua0J1ZmZlci5jcHA6CisgICAg
ICAgIChKU0M6OnNob3VsZFNob3dEaXNhc3NlbWJseUZvcik6CisgICAgICAgIChKU0M6OkxpbmtC
dWZmZXI6OmZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseSk6CisgICAgICAgICogYXNzZW1ibGVy
L0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZW50cnlwb2ludCk6Cisg
ICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyOjpzdG9yZVB0cik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6YWRkNjQpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpwb3BQYWlyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6cHVzaFBhaXIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmFk
ZDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6cG9wUGFpcik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnB1c2hQYWlyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk12Nzo6dGVzdDMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJDb2RlUmVmLmg6CisgICAgICAgIChKU0M6OlJldHVybkFkZHJlc3NQdHI6OmR1bXAp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVQdHI6Om9wZXJhdG9yIFVuc3BlY2lm
aWVkQm9vbFR5cGUqKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpvcGVy
YXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKik6CisgICAgICAgICogYXNzZW1ibGVyL01heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmg6IEFkZGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6dW5saW5rKToKKyAgICAg
ICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZv
OjpDYWxsTGlua0luZm8pOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcDoK
KyAgICAgICAgKEpTQzo6Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQpOgorICAgICAg
ICAoSlNDOjpDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgIChKU0M6OkNhbGxM
aW5rU3RhdHVzOjpjb21wdXRlREZHU3RhdHVzZXMpOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxM
aW5rU3RhdHVzLmg6CisgICAgICAgIChKU0M6OkNhbGxMaW5rU3RhdHVzOjptYWtlQ2xvc3VyZUNh
bGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6ZHVtcEFzc3VtaW5nSklUVHlwZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpDb2RlQmxvY2spOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmdldFN0dWJJbmZvTWFwKToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjphZGRTdHViSW5mbyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZE
RkdDb21waWxlcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Y2hlY2tJZk9wdGltaXphdGlv
blRocmVzaG9sZFJlYWNoZWQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnN0YWNrUG9pbnRl
ck9mZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6c2V0SklUQ29kZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6aml0Q29k
ZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3BlY2lhbEZhc3RDYXNlUHJvZmlsZUZvckJ5
dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpoYXNFeGl0U2l0ZSk6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6bGl2ZW5lc3NBbmFseXNpcyk6CisgICAgICAgICogYnl0
ZWNvZGUvQ29kZU9yaWdpbi5jcHA6CisgICAgICAgIChKU0M6OkNvZGVPcmlnaW46OmlzQXBwcm94
aW1hdGVseUVxdWFsVG8pOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2luOjphcHByb3hpbWF0ZUhh
c2gpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVPcmlnaW4uaDoKKyAgICAgICAgKEpTQzo6Q29k
ZU9yaWdpbjo6Q29kZU9yaWdpbik6CisgICAgICAgIChKU0M6OkNvZGVPcmlnaW46OmRlbGV0ZWRN
YXJrZXIpOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoOjpoYXNoKToK
KyAgICAgICAgKEpTQzo6Q29kZU9yaWdpbkFwcHJveGltYXRlSGFzaDo6ZXF1YWwpOgorICAgICAg
ICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0
UHJvZmlsZTo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0UHJvZmlsZTo6aGFzRXhpdFNp
dGUpOgorICAgICAgICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmg6CisgICAgICAgIChKU0M6
OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6RnJlcXVlbnRFeGl0U2l0ZSk6CisgICAgICAgIChKU0M6
OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChKU0M6OkRGRzo6
RnJlcXVlbnRFeGl0U2l0ZTo6c3Vic3VtZXMpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50
RXhpdFNpdGU6Omhhc2gpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50RXhpdFNpdGU6Ompp
dFR5cGUpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50RXhpdFNpdGU6OndpdGhKSVRUeXBl
KToKKyAgICAgICAgKEpTQzo6REZHOjpRdWVyeWFibGVFeGl0UHJvZmlsZTo6aGFzRXhpdFNpdGUp
OgorICAgICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmg6CisgICAgICAgICogYnl0ZWNvZGUvRXhp
dGluZ0pJVFR5cGUuaDogQWRkZWQuCisgICAgICAgIChKU0M6OmV4aXRpbmdKSVRUeXBlRm9yKToK
KyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0
QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUpOgorICAgICAgICAoSlNDOjpHZXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yKToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJ
bmZvKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogYnl0
ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwOgorICAgICAg
ICAoSlNDOjpQcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludDo6ZmlyZUludGVy
bmFsKToKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6UHV0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUpOgorICAgICAgICAoSlNDOjpQdXRCeUlkU3Rh
dHVzOjpjb21wdXRlRm9yKToKKyAgICAgICAgKEpTQzo6UHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
clN0dWJJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmg6CisgICAgICAg
ICogYnl0ZWNvZGUvU3RydWN0dXJlU2V0Lmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNldDo6
U3RydWN0dXJlU2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU2V0OjphZGQpOgorICAgICAg
ICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAgICAgICogYnl0ZWNvZGUvVmFs
dWVSZWNvdmVyeS5oOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5Ojp3aXRoTG9jYWxzT2Zm
c2V0KToKKyAgICAgICAgKiBieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaDoKKyAgICAgICAgKEpT
Qzo6VmlydHVhbFJlZ2lzdGVyOjpvZmZzZXRJbkJ5dGVzKToKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlckNhbGxGcmFtZS5jcHA6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6QXJyYXlNb2RlOjpyZWZpbmUpOgorICAgICAgICAqIGRmZy9ERkdB
cnJheU1vZGUuaDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjphZGRDYWxsKToKKyAgICAgICAgKEpTQzo6REZH
OjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZUlubGluaW5nKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlR2V0QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OnBhcnNlQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZSk6
CisgICAgICAgICogZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkNGR1NpbXBsaWZpY2F0aW9uUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RG
R0NTRVBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDU0VQaGFzZTo6aW52YWxpZGF0aW9u
UG9pbnRFbGltaW5hdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6Q1NFUGhhc2U6OnBlcmZvcm1O
b2RlQ1NFKToKKyAgICAgICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMu
aDoKKyAgICAgICAgKEpTQzo6REZHOjppbmxpbmVGdW5jdGlvbkZvckNhbGxDYXBhYmlsaXR5TGV2
ZWwpOgorICAgICAgICAoSlNDOjpERkc6OmlubGluZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGxDYXBh
YmlsaXR5TGV2ZWwpOgorICAgICAgICAoSlNDOjpERkc6OmlubGluZUZ1bmN0aW9uRm9yQ29uc3Ry
dWN0Q2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKEpTQzo6REZHOjppbmxpbmVGdW5jdGlvbkZv
ckNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZnL0RGR0NvbW1vbi5oOgorICAgICAgICAq
IGRmZy9ERkdDb21waWxhdGlvbk1vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjppc0ZUTCk6Cisg
ICAgICAgICogZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUlt
cGwpOgorICAgICAgICAoSlNDOjpERkc6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdEcml2
ZXIuaDoKKyAgICAgICAgKiBkZmcvREZHRmFpbGVkRmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpGYWlsZWRGaW5hbGl6ZXI6OmNvZGVTaXplKToKKyAgICAgICAgKiBkZmcvREZHRmFp
bGVkRmluYWxpemVyLmg6CisgICAgICAgICogZGZnL0RGR0ZpbmFsaXplci5oOgorICAgICAgICAq
IGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpm
aXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwU2V0TG9jYWxz
SW5CbG9jayk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBVbnR5cGVkU2V0
TG9jYWxzSW5CbG9jayk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4RWRnZSk6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6aW5zZXJ0U3RvcmVCYXJyaWVyKToKKyAg
ICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXhJbnRFZGdlKToKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjppbmplY3RJbnQzMlRvRG91YmxlTm9kZSk6CisgICAgICAgIChKU0M6
OkRGRzo6Rml4dXBQaGFzZTo6YXR0ZW1wdFRvTWFrZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAg
KEpTQzo6REZHOjpGaXh1cFBoYXNlOjphZGRQaGFudG9tc0lmTmVjZXNzYXJ5KToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjppc0xpdmVJbkJ5
dGVjb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZnJhbWVSZWdpc3RlckNvdW50KToK
KyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6c3RhY2tQb2ludGVyT2Zmc2V0KToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKiBkZmcvREZHSklUQ29kZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6SklUQ29kZTo6c2V0T3B0aW1pemF0aW9uVGhyZXNob2xkQmFzZWRPbkNvbXBp
bGF0aW9uUmVzdWx0KToKKyAgICAgICAgKiBkZmcvREZHSklUQ29kZS5oOgorICAgICAgICAqIGRm
Zy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNv
bXBpbGVFbnRyeSk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNvbXBpbGVFeGNl
cHRpb25IYW5kbGVycyk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmxpbmspOgor
ICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpjb21waWxlKToKKyAgICAgICAgKEpTQzo6
REZHOjpKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuaDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6Y3VycmVudEpTQ2Fs
bEluZGV4KToKKyAgICAgICAgKiBkZmcvREZHSklURmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpKSVRGaW5hbGl6ZXI6OmNvZGVTaXplKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRG
aW5hbGl6ZXI6OmZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRGaW5hbGl6ZXI6OmZp
bmFsaXplRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpERkc6OkpJVEZpbmFsaXplcjo6ZmluYWxp
emVDb21tb24pOgorICAgICAgICAqIGRmZy9ERkdKSVRGaW5hbGl6ZXIuaDoKKyAgICAgICAgKiBk
ZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmlzU2VtYW50aWNhbGx5U2tp
cHBhYmxlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpkdW1wTm9kZUZsYWdzKToKKyAgICAgICAgKiBkZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5h
bHlzaXNQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSQXZhaWxhYmlsaXR5QW5hbHlz
aXNQaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHT1NSRW50cnkuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OnByZXBhcmVPU1JFbnRyeSk6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5cG9p
bnRDcmVhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFbnRyeXBvaW50Q3Jl
YXRpb25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdC5oOgorICAgICAgICAo
SlNDOjpERkc6Ok9TUkV4aXQ6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKToKKyAg
ICAgICAgKiBkZmcvREZHT1NSRXhpdEJhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4
aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3cpOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0QmFzZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4aXRCYXNlOjpj
b25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZSk6CisgICAgICAgICogZGZnL0RGR09TUkV4
aXRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAg
ICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
Ok9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0
Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAoSlNDOjpERkc6OmFkanVzdEFuZEp1bXBUb1Rh
cmdldCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9E
RkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpwcm9maWxlckNvbXBpbGF0aW9uS2luZEZv
ck1vZGUpOgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OlBsYW4pOgorICAgICAgICAoSlNDOjpE
Rkc6OlBsYW46OnJlcG9ydENvbXBpbGVUaW1lcyk6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6
Y29tcGlsZUluVGhyZWFkKToKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJl
YWRJbXBsKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5oOgorICAgICAgICAqIGRmZy9ERkdTU0FM
b3dlcmluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTU0FMb3dlcmluZ1BoYXNlOjpo
YW5kbGVOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpTU0FMb3dlcmluZ1BoYXNlOjpsb3dlckJv
dW5kc0NoZWNrKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3VycmVudEJsb2NrKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6cHJlcGFyZUpJVENvZGVGb3JUaWVyVXApOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheSk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckZs
b2F0VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVBcml0aE1vZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUZyYW1lT2Zmc2V0KToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlQXJndW1lbnRTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVUYWdTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVQYXlsb2FkU2xvdCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUFyZ3VtZW50VGFnU2xvdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3Qp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsZWVGcmFtZUNhbGxlckZy
YW1lKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVGllclVwQ2hlY2tJ
bmplY3Rpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6VGllclVwQ2hlY2tJbmplY3Rp
b25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHVmFsaWRhdGUuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlZhbGlkYXRlOjp2YWxpZGF0ZSk6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxERkdXb3JrbGlzdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCk6CisgICAgICAg
IChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6
OmV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwpOgorICAgICAgICAoSlNDOjpERkc6OmVu
c3VyZUdsb2JhbFdvcmtsaXN0Rm9yKToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAg
ICAgICAgKiBkaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHA6CisgICAgICAgIChKU0M6
OkFSTTY0RGlzYXNzZW1ibGVyOjpBNjRET3Bjb2RlOjphcHBlbmRSZWdpc3Rlck5hbWUpOgorICAg
ICAgICAoSlNDOjpBUk02NERpc2Fzc2VtYmxlcjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVy
UGFpcjo6b3BOYW1lKToKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2NERPcGNv
ZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OmZvcm1hdCk6CisgICAgICAgICogZGlzYXNzZW1ibGVy
L0FSTTY0L0E2NERPcGNvZGUuaDoKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2
NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OnJ0Mik6CisgICAgICAgIChKU0M6OkFSTTY0
RGlzYXNzZW1ibGVyOjpBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyOjppbW1lZGlhdGU3
KToKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2NERPcGNvZGVMb2FkU3RvcmVS
ZWdpc3RlclBhaXI6Om9mZnNldE1vZGUpOgorICAgICAgICAoSlNDOjpBUk02NERpc2Fzc2VtYmxl
cjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpcjo6bEJpdCk6CisgICAgICAgICogZnRs
L0ZUTEFiYnJldmlhdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6RlRMOjphcnJheVR5cGUpOgorICAg
ICAgICAoSlNDOjpGVEw6OmFkZFRhcmdldERlcGVuZGVudEZ1bmN0aW9uQXR0cik6CisgICAgICAg
ICogZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6SW5kZXhlZEFi
c3RyYWN0SGVhcDo6SW5kZXhlZEFic3RyYWN0SGVhcCk6CisgICAgICAgIChKU0M6OkZUTDo6SW5k
ZXhlZEFic3RyYWN0SGVhcDo6YmFzZUluZGV4KToKKyAgICAgICAgKEpTQzo6RlRMOjpJbmRleGVk
QWJzdHJhY3RIZWFwOjppbml0aWFsaXplKToKKyAgICAgICAgKEpTQzo6RlRMOjpOdW1iZXJlZEFi
c3RyYWN0SGVhcDo6TnVtYmVyZWRBYnN0cmFjdEhlYXApOgorICAgICAgICAoSlNDOjpGVEw6OkFi
c29sdXRlQWJzdHJhY3RIZWFwOjpBYnNvbHV0ZUFic3RyYWN0SGVhcCk6CisgICAgICAgICogZnRs
L0ZUTEFic3RyYWN0SGVhcC5oOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpBYnN0
cmFjdEhlYXBSZXBvc2l0b3J5KToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpGVEw6OkF2YWlsYWJsZVJlY292ZXJ5OjpkdW1wKToKKyAgICAgICAgKiBm
dGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6QXZh
aWxhYmxlUmVjb3Zlcnk6OkF2YWlsYWJsZVJlY292ZXJ5KToKKyAgICAgICAgKEpTQzo6RlRMOjpB
dmFpbGFibGVSZWNvdmVyeTo6bm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVj
b3Zlcnk6OmZvcm1hdCk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVjb3Zlcnk6Om9w
Y29kZSk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVjb3Zlcnk6OmxlZnQpOgorICAg
ICAgICAoSlNDOjpGVEw6OkF2YWlsYWJsZVJlY292ZXJ5OjpyaWdodCk6CisgICAgICAgICogZnRs
L0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6dmVyYm9zZUNhcGFiaWxp
dGllcyk6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TENvbW1vblZhbHVlcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Q29tbW9uVmFsdWVzOjpDb21t
b25WYWx1ZXMpOgorICAgICAgICAqIGZ0bC9GVExDb21tb25WYWx1ZXMuaDoKKyAgICAgICAgKiBm
dGwvRlRMQ29tcGlsZS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6bW1BbGxvY2F0ZUNvZGVTZWN0
aW9uKToKKyAgICAgICAgKEpTQzo6RlRMOjpmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMpOgor
ICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExFeGl0VmFsdWUu
Y3BwOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6ZHVtcEluQ29udGV4dCk6CisgICAg
ICAgICogZnRsL0ZUTEV4aXRWYWx1ZS5oOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6
cmVjb3ZlcnkpOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6aXNSZWNvdmVyeSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVlOjpsZWZ0UmVjb3ZlcnlBcmd1bWVudCk6CisgICAg
ICAgIChKU0M6OkZUTDo6RXhpdFZhbHVlOjpyaWdodFJlY292ZXJ5QXJndW1lbnQpOgorICAgICAg
ICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6cmVjb3ZlcnlGb3JtYXQpOgorICAgICAgICAoSlNDOjpG
VEw6OkV4aXRWYWx1ZTo6cmVjb3ZlcnlPcGNvZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRW
YWx1ZTo6d2l0aFZpcnR1YWxSZWdpc3Rlcik6CisgICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVl
Ojp2YWx1ZUZvcm1hdCk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2l6ZU9mQ2FsbCk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNh
Y2hlU2l6ZS5oOgorICAgICAgICAqIGZ0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5Lmg6CisgICAg
ICAgICogZnRsL0ZUTEpJVENvZGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENvZGU6Omlu
aXRpYWxpemVBcml0eUNoZWNrRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29k
ZTo6aW5pdGlhbGl6ZUFkZHJlc3NGb3JDYWxsKToKKyAgICAgICAgKEpTQzo6RlRMOjpKSVRDb2Rl
OjphZGRyZXNzRm9yQ2FsbCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6ZXhlY3V0YWJs
ZUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6ZGF0YUFkZHJl
c3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6b2Zmc2V0T2YpOgorICAg
ICAgICAoSlNDOjpGVEw6OkpJVENvZGU6OnNpemUpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENv
ZGU6OmNvbnRhaW5zKToKKyAgICAgICAgKiBmdGwvRlRMSklUQ29kZS5oOgorICAgICAgICAqIGZ0
bC9GVExKSVRGaW5hbGl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJVEZpbmFsaXplcjo6
Y29kZVNpemUpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5j
dGlvbik6CisgICAgICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGZ0bC9G
VExKU0NhbGwuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpKU0NhbGw6OkpTQ2FsbCk6
CisgICAgICAgIChKU0M6OkZUTDo6SlNDYWxsOjplbWl0KToKKyAgICAgICAgKEpTQzo6RlRMOjpK
U0NhbGw6OmxpbmspOgorICAgICAgICAqIGZ0bC9GVExKU0NhbGwuaDogQWRkZWQuCisgICAgICAg
IChKU0M6OkZUTDo6SlNDYWxsOjpzdGFja21hcElEKToKKyAgICAgICAgKEpTQzo6RlRMOjpKU0Nh
bGw6Om9wZXJhdG9yPCk6CisgICAgICAgICogZnRsL0ZUTExpbmsuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OmxpbmspOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06Omxvd2VyKToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2Vy
REZHVG9MTFZNOjpjb21waWxlQXJpdGhBZGRPclN1Yik6CisgICAgICAgIChKU0M6OkZUTDo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVBcml0aE11bCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVBcml0aERpdik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVBcml0aE1vZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVBcml0aFNpbik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmNvbXBpbGVBcml0aENvcyk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVBcml0aFNxcnQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQXJpdGhOZWdhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQ2hlY2tFeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
Y29tcGlsZUdldEJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlUHV0QnlJZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVH
ZXRBcnJheUxlbmd0aCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVQ
dXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOZXdB
cnJheVdpdGhTaXplKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZVRvU3RyaW5nKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU1h
a2VSb3BlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVN0cmlu
Z0NoYXJBdCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTdHJp
bmdDaGFyQ29kZUF0KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZUdldENhbGxlZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVH
ZXRTY29wZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDYWxs
T3JDb25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxl
U3dpdGNoKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNoZWNr
QXJndW1lbnRzTm90Q3JlYXRlZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmNvbXBpbGVDb3VudEV4ZWN1dGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OnR5cGVkQXJyYXlMZW5ndGgpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZN
Ojpib29saWZ5KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29udGlndW91
c1B1dEJ5VmFsT3V0T2ZCb3VuZHMpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZN
OjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxh
dGVTdHJpbmdPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpzcGVj
dWxhdGVTdHJpbmdPclN0cmluZ09iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OnNwZWN1bGF0ZVN0cmluZ09iamVjdEZvckNlbGwpOgorICAgICAgICAoSlNDOjpGVEw6
Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JTdHJ1Y3R1cmUpOgorICAg
ICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjYWxsQ2hlY2spOgorICAgICAgICAoSlND
OjpGVEw6Okxvd2VyREZHVG9MTFZNOjphcHBlbmRPU1JFeGl0KToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6YnVpbGRFeGl0QXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y2FsbFN0YWNrbWFwKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dl
ckRGR1RvTExWTTo6YWRkRXhpdEFyZ3VtZW50Rm9yTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6
TG93ZXJERkdUb0xMVk06OmRvZXNLaWxsKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1Rv
TExWTTo6YWRkQXZhaWxhYmxlUmVjb3ZlcnkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZH
VG9MTFZNOjpwYXlsb2FkRm9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
dGFnRm9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6YWRkcmVzc0Zvcik6
CisgICAgICAgICogZnRsL0ZUTE9TUkVudHJ5LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpwcmVw
YXJlT1NSRW50cnkpOgorICAgICAgICAqIGZ0bC9GVExPU1JFeGl0Lmg6CisgICAgICAgIChKU0M6
OkZUTDo6T1NSRXhpdDo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUpOgorICAgICAg
ICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBp
bGVTdHViKToKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6
T3V0cHV0Ojpkb3VibGVTaW4pOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlQ29z
KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OmRvdWJsZVNxcnQpOgorICAgICAgICAoSlND
OjpGVEw6Ok91dHB1dDo6cHRyVG9JbnQpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YXNj
cmliZVJhbmdlKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6Om5vbk5lZ2F0aXZlMzIpOgor
ICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6bG9hZDMyTm9uTmVnYXRpdmUpOgorICAgICAgICAq
IGZ0bC9GVExSZWNvdmVyeU9wY29kZS5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpwcmludElu
dGVybmFsKToKKyAgICAgICAgKiBmdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaDogQWRkZWQuCisgICAg
ICAgICogZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6
RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpkdW1wKToKKyAgICAgICAgKiBmdGwvRlRMUmVnaXN0ZXJB
dE9mZnNldC5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpS
ZWdpc3RlckF0T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0Ojpv
cGVyYXRvciEpOgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lzdGVyQXRPZmZzZXQ6Omdwcik6Cisg
ICAgICAgIChKU0M6OkZUTDo6UmVnaXN0ZXJBdE9mZnNldDo6b2Zmc2V0KToKKyAgICAgICAgKEpT
Qzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpvcGVyYXRvcj09KToKKyAgICAgICAgKEpTQzo6RlRM
OjpSZWdpc3RlckF0T2Zmc2V0OjpvcGVyYXRvcjwpOgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lz
dGVyQXRPZmZzZXQ6OmdldEdQUik6CisgICAgICAgICogZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6c3RvcmVDb2RlT3JpZ2luKToKKyAgICAgICAgKEpTQzo6RlRM
OjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBmdGwvRlRMU2xvd1BhdGhDYWxsLmg6CisgICAg
ICAgICogZnRsL0ZUTFN0YWNrTWFwcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6U3RhY2tNYXBz
OjpSZWNvcmQ6OnBhcnNlKToKKyAgICAgICAgKiBmdGwvRlRMU3RhY2tNYXBzLmg6CisgICAgICAg
ICogZnRsL0ZUTFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpTdGF0ZTo6U3RhdGUpOgor
ICAgICAgICAqIGZ0bC9GVExTdGF0ZS5oOgorICAgICAgICAqIGZ0bC9GVExUaHVua3MuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6Om9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpGVEw6OnNsb3dQYXRoQ2FsbFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKiBm
dGwvRlRMVGh1bmtzLmg6CisgICAgICAgICogZnRsL0ZUTFVud2luZEluZm8uY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6RlRMOjpVbndpbmRJbmZvOjpVbndpbmRJbmZvKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpVbndpbmRJbmZvOjp+VW53aW5kSW5mbyk6CisgICAgICAgIChKU0M6OkZUTDo6VW53
aW5kSW5mbzo6cGFyc2UpOgorICAgICAgICAoSlNDOjpGVEw6OlVud2luZEluZm86OmR1bXApOgor
ICAgICAgICAoSlNDOjpGVEw6OlVud2luZEluZm86OmZpbmQpOgorICAgICAgICAoSlNDOjpGVEw6
OlVud2luZEluZm86OmluZGV4T2YpOgorICAgICAgICAqIGZ0bC9GVExVbndpbmRJbmZvLmg6IEFk
ZGVkLgorICAgICAgICAqIGZ0bC9GVExWYWx1ZVJhbmdlLmNwcDogQWRkZWQuCisgICAgICAgIChK
U0M6OkZUTDo6VmFsdWVSYW5nZTo6ZGVjb3JhdGVJbnN0cnVjdGlvbik6CisgICAgICAgICogZnRs
L0ZUTFZhbHVlUmFuZ2UuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6VmFsdWVSYW5nZTo6
VmFsdWVSYW5nZSk6CisgICAgICAgIChKU0M6OkZUTDo6VmFsdWVSYW5nZTo6YmVnaW4pOgorICAg
ICAgICAoSlNDOjpGVEw6OlZhbHVlUmFuZ2U6OmVuZCk6CisgICAgICAgICogaGVhcC9Db25zZXJ2
YXRpdmVSb290cy5jcHA6CisgICAgICAgIChKU0M6OkNvbnNlcnZhdGl2ZVJvb3RzOjpnZW5lcmlj
QWRkU3Bhbik6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6
bWFya1Jvb3RzKToKKyAgICAgICAgKEpTQzo6SGVhcDo6Y29sbGVjdElmTmVjZXNzYXJ5T3JEZWZl
cik6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgIChKU0M6OkhlYXA6OmlzRGVmZXJy
ZWQpOgorICAgICAgICAqIGhlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcDoKKyAgICAgICAgKEpT
Qzo6TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGhyZWFkKToKKyAgICAgICAgKEpT
Qzo6TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21PdGhlclRocmVhZCk6CisgICAgICAgIChKU0M6
Ok1hY2hpbmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgICogaGVh
cC9NYWNoaW5lU3RhY2tNYXJrZXIuaDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUu
Y3BwOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnRvcE9mRnJhbWVJbnRlcm5hbCk6CisgICAg
ICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6
dG9wT2ZGcmFtZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAg
ICAgICAoSlNDOjpzaXplRnJhbWVGb3JWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6dW53aW5kQ2Fs
bEZyYW1lKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnVud2luZCk6CisgICAgICAgIChK
U0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4
ZWN1dGVDYWxsKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3Qp
OgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJlcGFyZUZvclJlcGVhdENhbGwpOgorICAg
ICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6CisgICAgICAgIChKU0M6Ok5hdGl2ZUNh
bGxGcmFtZVRyYWNlcjo6TmF0aXZlQ2FsbEZyYW1lVHJhY2VyKToKKyAgICAgICAgKiBpbnRlcnBy
ZXRlci9KU1N0YWNrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6SlNTdGFjayk6CisgICAg
ICAgIChKU0M6OkpTU3RhY2s6On5KU1N0YWNrKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6Z3Jv
d1Nsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6Z2F0aGVyQ29uc2VydmF0aXZlUm9v
dHMpOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpzYW5pdGl6ZVN0YWNrKToKKyAgICAgICAgKEpT
Qzo6SlNTdGFjazo6cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KToKKyAgICAgICAgKEpTQzo6SlNTdGFj
azo6c2V0UmVzZXJ2ZWRab25lU2l6ZSk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6Omxvd0FkZHJl
c3MpOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpoaWdoQWRkcmVzcyk6CisgICAgICAgIChKU0M6
OkpTU3RhY2s6OmNvbW1pdHRlZEJ5dGVDb3VudCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSlNT
dGFjay5oOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpjb250YWluc0FkZHJlc3MpOgorICAgICAg
ICAoSlNDOjpKU1N0YWNrOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6
OkpTU3RhY2s6OnNhbml0aXplU3RhY2spOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjppbml0aWFs
aXplVGhyZWFkaW5nKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6YmFzZU9mU3RhY2spOgorICAg
ICAgICAoSlNDOjpKU1N0YWNrOjpsb3dBZGRyZXNzKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6
cmVzZXJ2YXRpb25Ub3ApOgorICAgICAgICAqIGludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmg6
CisgICAgICAgIChKU0M6OkpTU3RhY2s6OmVuc3VyZUNhcGFjaXR5Rm9yKToKKyAgICAgICAgKEpT
Qzo6SlNTdGFjazo6dG9wT2ZGcmFtZUZvcik6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OnRvcE9m
U3RhY2spOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpzaHJpbmspOgorICAgICAgICAoSlNDOjpK
U1N0YWNrOjpncm93KToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6c2V0U3RhY2tMaW1pdCk6Cisg
ICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpQ
cm90b0NhbGxGcmFtZTo6aW5pdCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJh
bWUuaDoKKyAgICAgICAgKEpTQzo6UHJvdG9DYWxsRnJhbWU6OnNldFBhZGRlZEFyZ0NvdW50KToK
KyAgICAgICAgKiBqaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKEpTQzo6QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6OkFyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzKToKKyAgICAgICAgKEpTQzo6QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6On5B
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcyk6CisgICAgICAgIChKU0M6OkFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzOjpyZXR1cm5QQ3NGb3IpOgorICAgICAgICAoSlNDOjpBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rczo6cmV0dXJuUENGb3IpOgorICAgICAgICAqIGppdC9Bcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcy5oOiBBZGRlZC4KKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmNw
cDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5QbGFjZSk6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0QXJndW1lbnRDb3VudFNh
bmUpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNz
ZW1ibHlIZWxwZXJzOjpjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCk6CisgICAgICAgIChKU0M6
OkFzc2VtYmx5SGVscGVyczo6cHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSk6CisgICAgICAgIChK
U0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdEZ1bmN0aW9uUHJvbG9ndWUpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmVtaXRGdW5jdGlvbkVwaWxvZ3VlKToKKyAgICAgICAgKEpTQzo6
QXNzZW1ibHlIZWxwZXJzOjplbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZSk6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFB1dFBheWxvYWRUb0NhbGxGcmFt
ZUhlYWRlckJlZm9yZVByb2xvZ3VlKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpl
bWl0UHV0VGFnVG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZSk6CisgICAgICAgIChKU0M6
OkFzc2VtYmx5SGVscGVyczo6dGFnRm9yKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpwYXlsb2FkRm9yKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRU
YWdzSW5QbGFjZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0QXJn
dW1lbnRDb3VudFNhbmUpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAg
KEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50cyk6CisgICAgICAgICogaml0L0V4ZWN1
dGFibGVBbGxvY2F0b3IuaDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjayk6CisgICAgICAgIChKU0M6OkpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUp
OgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlRXhjZXB0aW9uSGFuZGxlcnMpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZvcik6CisgICAgICAgIChKU0M6
OkpJVDo6c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVMb2FkVmFy
YXJncyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUNhbGxFdmFsKToKKyAgICAgICAgKEpT
Qzo6SklUOjpjb21waWxlQ2FsbEV2YWxTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpJVDo6Y29t
cGlsZU9wQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKToK
KyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUNsb3N1cmVDYWxsKToKKyAgICAgICAg
KiBqaXQvSklUQ2FsbDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3JldCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29t
cGlsZUNhbGxFdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlQ2FsbEV2YWxTbG93Q2Fz
ZSk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbCk6CisgICAgICAgIChKU0M6OkpJ
VDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKToKKyAgICAgICAgKiBqaXQvSklUQ29kZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVENvZGU6OmV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0
aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZik6CisgICAgICAgIChKU0M6OkpJVENvZGVXaXRo
Q29kZVJlZjo6fkpJVENvZGVXaXRoQ29kZVJlZik6CisgICAgICAgIChKU0M6OkpJVENvZGVXaXRo
Q29kZVJlZjo6ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkpJVENv
ZGVXaXRoQ29kZVJlZjo6ZGF0YUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkpJVENv
ZGVXaXRoQ29kZVJlZjo6b2Zmc2V0T2YpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0aENvZGVS
ZWY6OnNpemUpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0aENvZGVSZWY6OmNvbnRhaW5zKToK
KyAgICAgICAgKEpTQzo6RGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZSk6CisgICAgICAgIChK
U0M6OkRpcmVjdEpJVENvZGU6On5EaXJlY3RKSVRDb2RlKToKKyAgICAgICAgKEpTQzo6RGlyZWN0
SklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVSZWYpOgorICAgICAgICAoSlNDOjpEaXJlY3RKSVRDb2Rl
OjplbnN1cmVXcmFwcGVycyk6CisgICAgICAgIChKU0M6OkRpcmVjdEpJVENvZGU6OmFkZHJlc3NG
b3JDYWxsKToKKyAgICAgICAgKEpTQzo6TmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZSk6Cisg
ICAgICAgIChKU0M6Ok5hdGl2ZUpJVENvZGU6On5OYXRpdmVKSVRDb2RlKToKKyAgICAgICAgKEpT
Qzo6TmF0aXZlSklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVSZWYpOgorICAgICAgICAoSlNDOjpOYXRp
dmVKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCk6CisgICAgICAgICogaml0L0pJVENvZGUuaDoKKyAg
ICAgICAgKiBqaXQvSklURXhjZXB0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmdlbmVyaWNVbndp
bmQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9yKToKKyAgICAgICAgKiBq
aXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUR2V0QnlJZEdl
bmVyYXRvcjo6SklUR2V0QnlJZEdlbmVyYXRvcik6CisgICAgICAgICogaml0L0pJVElubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0TmFrZWRDYWxsKToKKyAgICAgICAgKEpTQzo6SklU
OjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uTm9FeGNl
cHRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZW5kKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3JldCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfY2F0Y2gpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbG9v
cF9oaW50KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQpOgorICAg
ICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZh
dGVDb21waWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lbmQp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfY2F0Y2gpOgorICAgICAgICAqIGppdC9KSVRP
cGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAo
SlNDOjpvcGVyYXRpb25MaW5rRm9yKToKKyAgICAgICAgKEpTQzo6b3BlcmF0aW9uVmlydHVhbEZv
cik6CisgICAgICAgIChKU0M6Om9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbEZvcik6CisgICAgICAg
ICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQpOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpK
SVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV9pZCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQpOgorICAgICAgICAqIGppdC9KSVRT
dHViUm91dGluZS5oOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAgICAqIGppdC9K
SVRTdHVic01TVkM2NC5hc206CisgICAgICAgICogaml0L0pJVFN0dWJzWDg2Lmg6CisgICAgICAg
ICogaml0L0pJVFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZl
VGFpbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIpOgor
ICAgICAgICAqIGppdC9KSVRUaHVua3MuaDoKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJQcmVzZXJ2
YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OnJlZ2lzdGVy
c1RvUHJlc2VydmUpOgorICAgICAgICAoSlNDOjpyZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCk6
CisgICAgICAgIChKU0M6OmdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKToKKyAg
ICAgICAgKEpTQzo6Z2VuZXJhdGVSZWdpc3RlclJlc3RvcmF0aW9uKToKKyAgICAgICAgKEpTQzo6
cmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvUmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAqIGppdC9S
ZXBhdGNoLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVQcm90b0NoYWluQWNjZXNzU3R1Yik6
CisgICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OnRyeUJ1aWxk
R2V0QnlJRExpc3QpOgorICAgICAgICAoSlNDOjpzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKToK
KyAgICAgICAgKEpTQzo6d3JpdGVCYXJyaWVyKToKKyAgICAgICAgKEpTQzo6ZW1pdFB1dFJlcGxh
Y2VTdHViKToKKyAgICAgICAgKEpTQzo6ZW1pdFB1dFRyYW5zaXRpb25TdHViKToKKyAgICAgICAg
KEpTQzo6dHJ5UmVwYXRjaEluKToKKyAgICAgICAgKEpTQzo6bGlua1Nsb3dGb3IpOgorICAgICAg
ICAoSlNDOjpsaW5rRm9yKToKKyAgICAgICAgKEpTQzo6bGlua0Nsb3N1cmVDYWxsKToKKyAgICAg
ICAgKiBqaXQvUmVwYXRjaC5oOgorICAgICAgICAqIGppdC9TcGVjaWFsaXplZFRodW5rSklULmg6
CisgICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OlNwZWNpYWxpemVkVGh1bmtKSVQp
OgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRodW5rSklUOjpyZXR1cm5KU1ZhbHVlKToKKyAg
ICAgICAgKEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmV0dXJuRG91YmxlKToKKyAgICAgICAg
KEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmV0dXJuSW50MzIpOgorICAgICAgICAoSlNDOjpT
cGVjaWFsaXplZFRodW5rSklUOjpyZXR1cm5KU0NlbGwpOgorICAgICAgICAqIGppdC9UaHVua0dl
bmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjp0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1Bh
dGhHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpzbG93UGF0aEZvcik6CisgICAgICAgIChKU0M6
OmxpbmtGb3JUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmxpbmtDYWxsVGh1bmtHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpsaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OmxpbmtDbG9zdXJlQ2FsbEZvclRodW5rR2VuZXJhdG9yKToKKyAgICAg
ICAgKEpTQzo6bGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjps
aW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6dmlydHVhbEZvclRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6dmlydHVhbENh
bGxUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDb25zdHJ1Y3RUaHVua0dl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVu
a0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVz
UmVnc1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bmF0aXZlRm9yR2VuZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6bmF0aXZlVGFpbENhbGxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjph
cml0eUZpeHVwKToKKyAgICAgICAgKEpTQzo6Y2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6Y2hhckF0VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpmcm9tQ2hh
ckNvZGVUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnNxcnRUaHVua0dlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OmZsb29yVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpjZWls
VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpyb3VuZFRodW5rR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6ZXhwVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpsb2dUaHVua0dl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OmFic1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpT
Qzo6cG93VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjppbXVsVGh1bmtHZW5lcmF0b3Ip
OgorICAgICAgICAoSlNDOjphcnJheUl0ZXJhdG9yTmV4dFRodW5rR2VuZXJhdG9yKToKKyAgICAg
ICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgIChKU0M6OmxpbmtUaHVua0dlbmVy
YXRvckZvcik6CisgICAgICAgIChKU0M6OmxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yRm9y
KToKKyAgICAgICAgKEpTQzo6dmlydHVhbFRodW5rR2VuZXJhdG9yRm9yKToKKyAgICAgICAgKiBs
bGludC9MTEludENMb29wLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkNMb29wOjppbml0aWFs
aXplKToKKyAgICAgICAgKiBsbGludC9MTEludENMb29wLmg6CisgICAgICAgICogbGxpbnQvTExJ
bnREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25z
KToKKyAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9pbnQuY3BwOgorICAgICAgICAoSlNDOjpM
TEludDo6c2V0RnVuY3Rpb25FbnRyeXBvaW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldEV2
YWxFbnRyeXBvaW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldFByb2dyYW1FbnRyeXBvaW50
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZvcik6CisgICAgICAg
ICogbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcDoKKyAgICAgICAgKiBsbGludC9MTElu
dE9wY29kZS5oOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6TExJbnQ6
OmVudHJ5T1NSKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldFVwQ2FsbCk6CisgICAgICAgIChK
U0M6OkxMSW50OjpsbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvcik6CisgICAgICAgIChK
U0M6OkxMSW50OjpsbGludF9zdGFja19jaGVja19hdF92bV9lbnRyeSk6CisgICAgICAgICogbGxp
bnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKiBsbGludC9MTEludFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OmNhbGxUb0phdmFTY3JpcHQpOgorICAgICAgICAoSlNDOjpjYWxsVG9OYXRp
dmVGdW5jdGlvbik6CisgICAgICAgICogbGxpbnQvTExJbnRUaHVua3MuaDoKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q0xvb3BSZWdpc3Rlcjo6b3BlcmF0b3IgRXhl
Y1N0YXRlKik6CisgICAgICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIEluc3RydWN0
aW9uKik6CisgICAgICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFZNKik6CisgICAg
ICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFByb3RvQ2FsbEZyYW1lKik6CisgICAg
ICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFJlZ2lzdGVyKik6CisgICAgICAgIChK
U0M6OkNMb29wOjpleGVjdXRlKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206Cisg
ICAgICAgICogbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcDoKKyAgICAgICAgKGluaXRpYWxp
emVBbmRHZXRKU0NMTFZNQVBJKToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybS5yYjoKKyAgICAg
ICAgKiBvZmZsaW5lYXNtL2FybTY0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vY2xvb3AucmI6
CisgICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS94ODYucmI6CisgICAgICAgICogcGFyc2VyL1BhcnNlckVycm9yLmg6CisgICAgICAgIChK
U0M6OlBhcnNlckVycm9yOjp0b0Vycm9yT2JqZWN0KToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlckNvbXBpbGF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZXI6OkNvbXBpbGF0aW9u
OjphZGREZXNjcmlwdGlvbik6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlv
bi5oOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcDoKKyAg
ICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJD
b21waWxhdGlvbktpbmQuaDoKKyAgICAgICAgKiBydW50aW1lL0FyaXR5Q2hlY2tNb2RlLmg6IEFk
ZGVkLgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpT
Qzo6c2V0dXBBcml0eUNoZWNrRGF0YSk6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToK
KyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAoSlNDOjpDb21t
b25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JIYW5k
bGluZ1Njb3BlLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkVycm9ySGFuZGxpbmdTY29wZTo6
RXJyb3JIYW5kbGluZ1Njb3BlKToKKyAgICAgICAgKEpTQzo6RXJyb3JIYW5kbGluZ1Njb3BlOjp+
RXJyb3JIYW5kbGluZ1Njb3BlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySGFuZGxpbmdTY29w
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAg
ICAgICAoSlNDOjp0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcik6CisgICAgICAgIChKU0M6OnRocm93
VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbik6CisgICAgICAgICogcnVudGltZS9FeGVjdXRh
YmxlLmNwcDoKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUpOgor
ICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQmFzZTo6ZHVtcCk6CisgICAgICAgICogcnVudGltZS9F
eGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVCYXNlOjplbnRyeXBvaW50Rm9y
KToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6Om9mZnNldE9mSklUQ29kZVdpdGhBcml0
eUNoZWNrRm9yKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKToKKyAg
ICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxMb2Nrcyk6CisgICAgICAg
IChKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzOjp+RHJvcEFsbExvY2tzKToKKyAgICAgICAgKiBy
dW50aW1lL0pTTG9jay5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoK
KyAgICAgICAgKEpTQzo6cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgIChKU0M6
Ok9wdGlvbnM6OmluaXRpYWxpemUpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjpzZXRPcHRpb24p
OgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Nb2RlLmg6IEFkZGVkLgorICAgICAgICAqIHJ1bnRpbWUvU3RhY2tBbGln
bm1lbnQuaDoKKyAgICAgICAgKEpTQzo6cm91bmRBcmd1bWVudENvdW50VG9BbGlnbkZyYW1lKToK
KyAgICAgICAgKEpTQzo6cm91bmRMb2NhbFJlZ2lzdGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZz
ZXQpOgorICAgICAgICAoSlNDOjpsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVycyk6CisgICAgICAg
ICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcDoKKyAgICAgICAgKEpTQzo6U3Ry
aW5nUmVjdXJzaW9uQ2hlY2tlcjo6dGhyb3dTdGFja092ZXJmbG93RXJyb3IpOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpkdW1wKToK
KyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAg
ICAgKEpTQzo6Y2xlYW5Xb3JrbGlzdCk6CisgICAgICAgIChKU0M6OlZNOjp+Vk0pOgorICAgICAg
ICAoSlNDOjpWTTo6Z2V0SG9zdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6cHJlcGFyZVRvRGlz
Y2FyZENvZGVGb3IpOgorICAgICAgICAoSlNDOjpWTTo6cHJlcGFyZVRvRGlzY2FyZENvZGUpOgor
ICAgICAgICAoSlNDOjpWTTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAoSlNDOjpWTTo6dXBk
YXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKToKKyAgICAgICAgKEpTQzo6bG9nU2Fu
aXRpemVTdGFjayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6
cmVzZXJ2ZWRab25lU2l6ZSk6CisgICAgICAgIChKU0M6OlZNOjpsYXN0U3RhY2tUb3ApOgorICAg
ICAgICAoSlNDOjpWTTo6c2V0TGFzdFN0YWNrVG9wKToKKyAgICAgICAgKEpTQzo6Vk06OnNjcmF0
Y2hCdWZmZXJGb3JTaXplKToKKyAgICAgICAgKEpTQzo6Vk06OnNldFN0YWNrTGltaXQpOgorICAg
ICAgICAoSlNDOjpzYW5pdGl6ZVN0YWNrRm9yVk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk1FbnRy
eVNjb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUpOgor
ICAgICAgICAoSlNDOjpWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUpOgorICAgICAgICAqIHJ1
bnRpbWUvVk1FbnRyeVNjb3BlLmg6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2FkZC1jb25zdGFu
dC1vdmVyZmxvdy1yZWNvdmVyeS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanM6IEFk
ZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvYWRkLWludDUyLWxh
cmdlLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2FkZC1vdmVyZmxvdy1yZWNvdmVyeS5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9hZGQtc21hbGwtY29uc3Rh
bnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KiB0ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9lbXB0eS1mdW5jdGlvbi5qczogQWRkZWQuCisgICAgICAgIChm
b28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDMyLXRvLWRvdWJsZS5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9leGl0LWFm
dGVyLWludDUyLXRvLWRvdWJsZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChtYWtlV2VpcmRPYmplY3QpOgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9leGl0LWFmdGVyLWxsdm0tZm9sZHMtbGFyZ2UtaW50LWNvbnN0YW50LmpzOiBBZGRlZC4K
KyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2V4aXQtZnJvbS1mdGwtd2l0
aC1hcml0eS1jaGVjay1mYWlsLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChi
YXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtYXJpdGhjb3MuanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc2luLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLXB1
dGJ5aWQuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVj
dC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQt
YnktaWQtdGhyb3ctZnJvbS1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorICAgICAgICAobWFrZVdpdGhHZXR0ZXIucmV0dXJuKToKKyAgICAg
ICAgKG1ha2VXaXRoR2V0dGVyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRo
cm93LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS10aGF0LWRv
ZXMtbm90LWV4aXQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKG1ha2VXaXRo
R2V0dGVyLnJldHVybik6CisgICAgICAgIChtYWtlV2l0aEdldHRlcik6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gt
b3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKG1ha2VX
aXRoR2V0dGVyLnJldHVybik6CisgICAgICAgIChtYWtlV2l0aEdldHRlcik6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL2ljLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFyYXJn
cy1hbmQtY2FsbC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAg
ICAgICAgKGJheik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3Mu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXop
OgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpzOiBBZGRlZC4K
KyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwt
aW4tYW5kLW91dC1vZi1ib3VuZHMuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWJvdW5k
cy10aGVuLWV4aXQtb3V0LW9mLWJvdW5kcy5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0
LW9mLWJvdW5kcy1ib3VuZHMtdGhlbi1kby1pbi1ib3VuZHMuanM6IEFkZGVkLgorICAgICAgICAo
Zm9vKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbnZhbGlkYXRp
b24tcG9pbnQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKFRoaW5neSk6Cisg
ICAgICAgIChUaGluZ3kucHJvdG90eXBlLmYpOgorICAgICAgICAocG9zc2libHlEb0JhZFRoaW5n
cy5UaGluZ3kucHJvdG90eXBlLmYpOgorICAgICAgICAocG9zc2libHlEb0JhZFRoaW5ncyk6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0yLmpzOiBBZGRlZC4KKyAgICAgICAgKGZv
byk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0zLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL25ldy1hcnJheS1zdG9yYWdlLWFycmF5
LXdpdGgtc2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL25ldy1hcnJheS13aXRoLXNpemUtd2l0aC1iYWQtdGltZS5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXctY29u
dGlndW91cy1hcnJheS13aXRoLXNpemUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXctZG91YmxlLWFycmF5LXdpdGgt
c2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL25ldy1pbnQzMi1hcnJheS13aXRoLXNpemUuanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXct
dW5kZWNpZGVkLWFycmF5LXdpdGgtc2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC10aHJvdy10aHJv
dWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL3JlY3Vyc2UtaW5maW5pdGVseS1vbi1nZXR0ZXIuanM6IEFkZGVkLgorICAg
ICAgICAoLnZhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3JlcGVhdGVkLWFyaXR5LWNoZWNr
LWZhaWwuanM6IEFkZGVkLgorICAgICAgICAoYmFyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
cnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAgICAg
KGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW1wbGUtcG9s
eXZhcmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgIChmdXp6KToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXoxKToKKyAgICAg
ICAgKGJhejIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtZ2V0
LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKGZ1enopOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvc2ltcGxl
LXBvbHl2YXJpYW50LXB1dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChmdXp6KToKKyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgorICAgICAg
ICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3RvLXN0cmlu
Zy1vbi1vYmplY3Qtb3Itc3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKEZvbyk6CisgICAgICAg
IChGb28ucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3QuanM6IEFkZGVkLgorICAgICAgICAoRm9vKToK
KyAgICAgICAgKEZvby5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKiB0ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vYmplY3QuanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmlu
Zy1vci1zdHJpbmctb2JqZWN0LXRoZW4tb2JqZWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgIChGb28pOgorICAgICAgICAoRm9vLnByb3RvdHlwZS50b1N0cmluZyk6CisgICAg
ICAgICogdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy90by1zdHJp
bmctb24tdmFsdWUtb3Itc3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS5qczogQWRkZWQuCisgICAgICAgIChm
b28pOgorCiAyMDE0LTAxLTI3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ1JBU0ggd2hlbiBkZWJ1Z2dlciBjbG9zZXMgcmVt
b3RlIGluc3BlY3RpbmcgSlNDb250ZXh0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI1NSw2ICsyNTUsNyBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfU09VUkNFUwogICAgIGludGVycHJldGVyL1ZNSW5zcGVjdG9yLmNwcAogCiAgICAgaml0
L0Fzc2VtYmx5SGVscGVycy5jcHAKKyAgICBqaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
Y3BwCiAgICAgaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCiAgICAgaml0L0V4ZWN1dGFi
bGVBbGxvY2F0b3IuY3BwCiAgICAgaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5j
cHAKQEAgLTI3OCw2ICsyNzksNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGpp
dC9KSVRTdHVicy5jcHAKICAgICBqaXQvSklUVGh1bmtzLmNwcAogICAgIGppdC9KSVRUb0RGR0Rl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKKyAgICBqaXQvUmVnaXN0ZXJQcmVzZXJ2YXRp
b25XcmFwcGVyR2VuZXJhdG9yLmNwcAogICAgIGppdC9SZWdpc3RlclNldC5jcHAKICAgICBqaXQv
UmVwYXRjaC5jcHAKICAgICBqaXQvVGVtcFJlZ2lzdGVyU2V0LmNwcApAQCAtMzQwLDYgKzM0Miw3
IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgcnVudGltZS9EdW1wQ29udGV4dC5j
cHAKICAgICBydW50aW1lL0Vycm9yLmNwcAogICAgIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKKyAgICBydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAKICAgICBydW50aW1lL0Vycm9y
SW5zdGFuY2UuY3BwCiAgICAgcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKICAgICBydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTkxLDYgKzkxLDcgQEAgamF2
YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL1JlcGF0Y2hCdWZmZXIuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9TSDRBc3NlbWJsZXIuaCBcCkBAIC02OTEsNiArNjkyLDggQEAgamF2
YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL1ZNSW5zcGVjdG9yLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L1ZNSW5zcGVjdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZVBy
ZWZpeC5oIFwKKyAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzLmggXAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggXApAQCAtNzQ0
LDYgKzc0Nyw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIFwKKyAgICBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIFwKKyAgICBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRv
ci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAgXApAQCAtOTA0LDYgKzkwOSw4IEBAIGphdmFzY3JpcHRj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29u
c3RydWN0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JQcm90b3R5cGUuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUub3JkZXIJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtNDk4MSw3ICs0OTgx
LDYgQEAgX2xsaW50X3Nsb3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIKIF9sbGludF9zbG93
X3BhdGhfZGVidWcKIF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwKIF9sbGludF9z
bG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbAotX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2NhbGwK
IF9sbGludF9iZWdpbgogX2xsaW50X3Byb2dyYW1fcHJvbG9ndWUKIF9sbGludF9ldmFsX3Byb2xv
Z3VlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU4OSw2ICs1ODksNyBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxEdW1wQ29udGV4dC5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JDb25zdHJ1Y3Rvci5jcHAiIC8+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvclByb3RvdHlwZS5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEV4Y2VwdGlvbkhlbHBl
cnMuY3BwIiAvPgpAQCAtNzkxLDYgKzc5Miw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxhc3NlbWJsZXJcTWFjcm9Bc3NlbWJsZXJYODYuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGFzc2VtYmxlclxNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1hY3JvQXNzZW1ibGVyWDg2XzY0LmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwuaCAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXFJlcGF0
Y2hCdWZmZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxYODZB
c3NlbWJsZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXFNjcmlw
dEZ1bmN0aW9uQ2FsbC5oIiAvPgpAQCAtMTIwNCw2ICsxMjA2LDcgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRHVtcENvbnRleHQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcRXJyb3JDb25zdHJ1Y3Rvci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JJbnN0YW5jZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxFcnJvclByb3RvdHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxFeGNlcHRpb25IZWxwZXJzLmgiIC8+CkBAIC0xNDA2LDIyICsxNDA5LDYg
QEAKICAgICAgIDxGaWxlVHlwZT5Eb2N1bWVudDwvRmlsZVR5cGU+CiAgICAgPC9Ob25lPgogICA8
L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8TUFTTSBJbmNsdWRlPSIuLlxqaXRcSklU
U3R1YnNNU1ZDNjQuYXNtIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KLSAgICA8L01BU00+Ci0gIDwvSXRlbUdyb3VwPgogICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgogICA8SW1wb3J0
R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChW
Q1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6YXRpb25zXG1hc20udGFyZ2V0cyIgLz4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAt
NTM3LDYgKzUzNyw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9y
Q29uc3RydWN0b3IuY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckhhbmRs
aW5nU2NvcGUuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckluc3RhbmNl
LmNwcCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
QEAgLTE0NDIsNiArMTQ0NSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJs
ZXJcTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCI+CiAgICAgICA8RmlsdGVyPmFzc2VtYmxlcjwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1i
bGVyXE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiPgorICAgICAgPEZpbHRlcj5hc3Nl
bWJsZXI8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGFzc2VtYmxlclxSZXBhdGNoQnVmZmVyLmgiPgogICAgICAgPEZpbHRlcj5hc3NlbWJsZXI8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTIxMjksNiArMjEzNSw5IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yQ29uc3RydWN0b3IuaCI+CiAgICAgICA8
RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiPgorICAgICAgPEZpbHRl
cj5ydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTMyOTUsOSArMzMwNCw0IEBACiAgICAgPE5v
bmUgSW5jbHVkZT0iSmF2YVNjcmlwdENvcmVQb3N0QnVpbGQuY21kIiAvPgogICAgIDxOb25lIElu
Y2x1ZGU9IkphdmFTY3JpcHRDb3JlUHJlQnVpbGQuY21kIiAvPgogICA8L0l0ZW1Hcm91cD4KLSAg
PEl0ZW1Hcm91cD4KLSAgICA8TUFTTSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YnNNU1ZDNjQuYXNt
Ij4KLSAgICAgIDxGaWx0ZXI+aml0PC9GaWx0ZXI+Ci0gICAgPC9NQVNNPgotICA8L0l0ZW1Hcm91
cD4KIDwvUHJvamVjdD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjEwLDYgKzIxMCw3IEBACiAJ
CTBGMzhCMDE5MTdDRkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzOEIwMTUxN0NGRTc1
NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uTW9kZS5jcHAgKi87IH07CiAJCTBGMzhCMDFBMTdD
RkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzhCMDE2MTdDRkU3NTUwMEIxNDREMyAvKiBE
RkdDb21waWxhdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjNBQzc1MjE4M0VBMTA0MDAzMjAyOUYgLyogU3RhY2tBbGlnbm1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0FDNzUx
MTgzRUExMDQwMDMyMDI5RiAvKiBTdGFja0FsaWdubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGM0FDNzU0MTg4RTVFQzgwMDMyMDI5RiAv
KiBFeGl0aW5nSklUVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYzQUM3NTMxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzQjNBMUEx
NTNFNjhGMjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0IzQTE3MTUzRTY4RUYwMDNF
RDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgKi87IH07CiAJCTBGM0IzQTFCMTUz
RTY4RjQwMDNFRDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzQjNBMTgxNTNFNjhFRjAwM0VEMEZG
IC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzQjNBMjcxNTQ0Qzk5NTAwM0VEMEZGIC8qIERGR0NG
R1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYzQjNBMjQxNTQ0Qzk5MTAwM0VEMEZGIC8qIERGR0NGR1NpbXBsaWZp
Y2F0aW9uUGhhc2UuY3BwICovOyB9OwpAQCAtMjM2LDYgKzIzNywxMCBAQAogCQkwRjQ2ODBENTE0
QkJEMjRCMDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8q
IEhvc3RDYWxsUmV0dXJuVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjQ4NTMyMTE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2Rl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1
MzFGMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuY3BwICovOyB9OwogCQkwRjQ4NTMy
MjE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMyMDE4Nzc1MDU2MDA4M0I2ODcgLyogREZH
QXJpdGhNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMEY0ODUzMjcxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzIz
MTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5jcHAgKi87IH07CisJCTBG
NDg1MzI4MTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjQxODdERkRFQzAw
ODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY0ODUzMjkxODdERkRFQzAwODNCNjg3IC8qIEZU
TFJlY292ZXJ5T3Bjb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNDg1MzI1MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5j
cHAgKi87IH07CisJCTBGNDg1MzJBMTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUz
MjYxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0OTNBRkExNkQwQ0FEMzAwODQ1
MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNDkzQUY4MTZEMENBRDEwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRl
ci5jcHAgKi87IH07CiAJCTBGNEI5NERDMTdCOUYwNzUwMEREMDNBNCAvKiBUeXBlZEFycmF5SW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0
Qjk0REIxN0I5RjA3NTAwREQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1NTQxQjExNjEzQzFGQjAw
Q0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTU0MUFGMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9p
bnRlci5jcHAgKi87IH07CkBAIC0yNDgsNiArMjUzLDggQEAKIAkJMEY1NkExRDUxNTAwMUNGNDAw
Mjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4ZWN1dGlv
bkNvdW50ZXIuY3BwICovOyB9OwogCQkwRjU3MkQ0RjE2ODc5RkREMDBFNTdGQkQgLyogVGh1bmtH
ZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUE1MkQwMTdBREQ3MTcw
MDhFQ0IyRCAvKiBDb3B5VG9rZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNUE1MkNGMTdBREQ3MTcwMDhFQ0IyRCAvKiBDb3B5VG9rZW4uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjVBNjI4MzE4
OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVBNjI4MTE4OEM5OEQ0MDA3MkM5REYgLyogRlRM
VmFsdWVSYW5nZS5jcHAgKi87IH07CisJCTBGNUE2Mjg0MTg4Qzk4RDQwMDcyQzlERiAvKiBGVExW
YWx1ZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjVBNjI4MjE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUVGOTFFMTY4NzhGN0Ew
MDNFNUMyNSAvKiBKSVRUaHVua3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAg
Ki87IH07CiAJCTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFDMTY4NzhGNzgw
MDNFNUMyNSAvKiBKSVRUaHVua3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjVGMDhDRjE0NkM3NjMzMDAwNDcyQTkgLyogVW5jb25kaXRpb25h
bEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY1RjA4Q0UxNDZDNzYyRjAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjY5LDYg
KzI3NiwxOCBAQAogCQkwRjY2NkVDRDE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9u
Rm9yVmFsaWRhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9y
VmFsaWRhdGlvblBoYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY2NkUxNkIxNERGM0YxNjAwQjdCMkU0IC8qIERGR0FkamFjZW5jeUxpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjZFMTY4
MTRERjNGMTMwMEI3QjJFNCAvKiBERkdBZGphY2VuY3lMaXN0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2NkUxNkMxNERGM0YxNjAwQjdCMkU0
IC8qIERGR0VkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNjZFMTY5MTRERjNGMTMwMEI3QjJFNCAvKiBERkdFZGdlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQjUxODVGQzlFOTAwODQ1
RDk3IC8qIEZUTEpTQ2FsbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjZCMUNCMzE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCAqLzsg
fTsKKwkJMEY2QjFDQjYxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQjQxODVGQzlFOTAwODQ1
RDk3IC8qIEZUTEpTQ2FsbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTBGNkIxQ0I5MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQjcx
ODYxMjQ0QzAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQkExODYxMjQ0QzAwODQ1RDk3IC8q
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQjgxODYxMjQ0QzAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTBGNkIxQ0JEMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlv
bldyYXBwZXJHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY2QjFDQkIxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0
aW9uV3JhcHBlckdlbmVyYXRvci5jcHAgKi87IH07CisJCTBGNkIxQ0JFMTg2MTI0NkEwMDg0NUQ5
NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0JDMTg2MTI0NkEwMDg0NUQ5
NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjZCMUNDMzE4NjJDNDc4MDA4
NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCRjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVn
aXN0ZXJBdE9mZnNldC5jcHAgKi87IH07CisJCTBGNkIxQ0M0MTg2MkM0NzgwMDg0NUQ5NyAvKiBG
VExSZWdpc3RlckF0T2Zmc2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjZCMUNDMDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNl
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBG
NkIxQ0M1MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0MxMTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExVbndpbmRJbmZvLmNwcCAqLzsgfTsKKwkJMEY2QjFDQzYxODYyQzQ3ODAwODQ1RDk3
IC8qIEZUTFVud2luZEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNkIxQ0MyMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQzkx
ODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0M3MTg2NDFERjgw
MDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgKi87IH07CisJCTBGNkIx
Q0NBMTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQzgxODY0MURG
ODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3MDI1QTkxNzE0QjBGQTAwMzgy
QzBFIC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjcwMjVBNzE3MTRCMEY4MDAzODJDMEUgLyogREZH
T1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcCAqLzsgfTsKIAkJMEY3MDI1QUExNzE0QjBGQzAwMzgy
QzBFIC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3MDI1QTgxNzE0QjBGODAwMzgyQzBFIC8qIERGR09T
UkV4aXRDb21waWxlckNvbW1vbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGNzE0Q0E0MTZFQTkyRjAwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQ
cm9wYWdhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNzE0Q0ExMTZFQTkyRUQwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9wYWdh
dGlvblBoYXNlLmNwcCAqLzsgfTsKQEAgLTEzNDYsNiArMTM2NSw4IEBACiAJCUZFNTkzMkE4MTgz
QzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNTkzMkE2MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5
U2NvcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGRUEwODYyMDE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVBMDg2MUUxODJCN0EwNDAwRjZEODUx
IC8qIEJyZWFrcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlGRUEwODYyMTE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUEwODYx
RjE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkVCNThDMTQxODdCOEIxNjAwOThF
RjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRUI1OEMxMjE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5k
bGluZ1Njb3BlLmNwcCAqLzsgfTsKKwkJRkVCNThDMTUxODdCOEIxNjAwOThFRjBCIC8qIEVycm9y
SGFuZGxpbmdTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkVCNThDMTMxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFRDI4N0Iy
MTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50
T3Bjb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRkVEOTRGMkUxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDk0RjJCMTcxRTNFMjMwMEJFNzdB
NCAvKiBXYXRjaGRvZy5jcHAgKi87IH07CiAJCUZFRDk0RjJGMTcxRTNFMjMwMEJFNzdBNCAvKiBX
YXRjaGRvZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkVEOTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE2MDUsNiArMTYyNiw3IEBACiAJCTBG
MzhCMDE1MTdDRkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQ29tcGlsYXRpb25Nb2RlLmNwcDsgcGF0
aCA9IGRmZy9ERkdDb21waWxhdGlvbk1vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjM4QjAxNjE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0NvbXBpbGF0aW9uTW9kZS5oOyBwYXRo
ID0gZGZnL0RGR0NvbXBpbGF0aW9uTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjNBQzc1MTE4M0VBMTA0MDAzMjAyOUYgLyogU3RhY2tBbGlnbm1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhY2tBbGlnbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEYzQUM3NTMxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4aXRpbmdKSVRUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0IzQTE3MTUzRTY4RUYwMDNFRDBGRiAvKiBE
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA7IHBhdGggPSBkZmcvREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNCM0Ex
ODE1M0U2OEVGMDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaDsgcGF0aCA9
IGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjNCM0EyNDE1NDRDOTkxMDAzRUQwRkYgLyogREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdDRkdTaW1wbGlm
aWNhdGlvblBoYXNlLmNwcDsgcGF0aCA9IGRmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MzIsNiArMTY1NCwxMCBAQAogCQkw
RjQ2ODBEMTE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIb3N0Q2FsbFJldHVyblZhbHVlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDg1MzFGMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0
aE1vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQXJpdGhN
b2RlLmNwcDsgcGF0aCA9IGRmZy9ERkdBcml0aE1vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjQ4NTMyMDE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0FyaXRoTW9kZS5oOyBwYXRoID0gZGZn
L0RGR0FyaXRoTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ4NTMyMzE4
N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwOyBwYXRoID0g
ZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEY0ODUzMjQxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5Lmg7IHBh
dGggPSBmdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEY0ODUzMjUxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFJlY292ZXJ5T3Bjb2RlLmNw
cDsgcGF0aCA9IGZ0bC9GVExSZWNvdmVyeU9wY29kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGNDg1MzI2MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExSZWNvdmVyeU9wY29kZS5oOyBw
YXRoID0gZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGNDkzQUY4MTZEMENBRDEwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VQcm92aWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNEI5NERCMTdCOUYwNzUwMEREMDNBNCAvKiBUeXBl
ZEFycmF5SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlZEFy
cmF5SW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU1NDFBRjE2MTND
MUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlY2lhbFBvaW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY0NCw2ICsxNjcwLDggQEAKIAkJMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8q
IEV4ZWN1dGlvbkNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRXhlY3V0aW9uQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUaHVua0dlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjVBNTJDRjE3QURENzE3MDA4RUNCMkQgLyogQ29weVRva2VuLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcHlUb2tlbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjVBNjI4MTE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExWYWx1ZVJhbmdlLmNw
cDsgcGF0aCA9IGZ0bC9GVExWYWx1ZVJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEY1QTYyODIxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMVmFsdWVSYW5nZS5oOyBwYXRoID0gZnRsL0ZU
TFZhbHVlUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RUY5MUIxNjg3
OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKSVRUaHVua3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpJVFRodW5rcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjVGMDhDRTE0NkM3NjJGMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjY1LDYgKzE2OTMsMTggQEAKIAkJMEY2
NjZFQ0IxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFz
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdSZXN1cnJlY3Rpb25Gb3JW
YWxpZGF0aW9uUGhhc2UuaDsgcGF0aCA9IGRmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9u
UGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2NkUxNjgxNERGM0YxMzAw
QjdCMkU0IC8qIERGR0FkamFjZW5jeUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gREZHQWRqYWNlbmN5TGlzdC5oOyBwYXRoID0gZGZnL0RGR0FkamFjZW5jeUxpc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2NkUxNjkxNERGM0YxMzAwQjdCMkU0IC8q
IERGR0VkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRWRnZS5oOyBw
YXRoID0gZGZnL0RGR0VkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFD
QjMxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBGVExKU0NhbGwuY3BwOyBwYXRoID0gZnRsL0ZUTEpTQ2FsbC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0I0MTg1RkM5RTkwMDg0NUQ5NyAv
KiBGVExKU0NhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMSlNDYWxs
Lmg7IHBhdGggPSBmdGwvRlRMSlNDYWxsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNkIxQ0I3MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBcml0eUNoZWNrTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjZCMUNCODE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lzdGVyUHJl
c2VydmF0aW9uTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCQjE4
NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZ2lzdGVyUHJlc2VydmF0
aW9uV3JhcHBlckdlbmVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
NkIxQ0JDMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5l
cmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0ZXJQcmVzZXJ2
YXRpb25XcmFwcGVyR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
NkIxQ0JGMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwOyBw
YXRoID0gZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjZCMUNDMDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExSZWdpc3RlckF0T2Zmc2V0Lmg7
IHBhdGggPSBmdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjZCMUNDMTE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExVbndpbmRJbmZvLmNwcDsgcGF0
aCA9IGZ0bC9GVExVbndpbmRJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MEY2QjFDQzIxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMVW53aW5kSW5mby5oOyBwYXRoID0gZnRsL0ZUTFVud2lu
ZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQzcxODY0MURGODAw
ODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQzgxODY0MURGODAwODQ1RDk3IC8qIEFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGNzAyNUE3MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21t
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjcwMjVBODE3MTRCMEY4MDAzODJDMEUg
LyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR09TUkV4aXRDb21waWxlckNvbW1vbi5oOyBwYXRoID0gZGZnL0RGR09TUkV4aXRD
b21waWxlckNvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjcxNENBMTE2
RUE5MkVEMDBGM0VCRUIgLyogREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBo
YXNlLmNwcDsgcGF0aCA9IGRmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMTYsNiArMjE1Niw3IEBACiAJCTY1NjBBNENG
MDRCM0IzRTcwMDhBRTk1MiAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
bmFtZSA9IENvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0NvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1
dGU+IjsgfTsKIAkJNjU2MjFFNkIwODlFODU5NzAwNzYwRjM1IC8qIFByb3BlcnR5U2xvdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
cm9wZXJ0eVNsb3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07
CiAJCTY1NjIxRTZDMDg5RTg1OTcwMDc2MEYzNSAvKiBQcm9wZXJ0eVNsb3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvcGVydHlTbG90Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJNjU4NjAxNzcxODVB
OEY1RTAwMDMwRUVFIC8qIE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1OTg3RjJDMTY3RkU4NEIwMDNDMkY4RCAv
KiBERkdPU1JFeGl0Q29tcGlsYXRpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR09TUkV4aXRDb21waWxhdGlvbkluZm8uaDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0
Q29tcGlsYXRpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1OTg3RjJG
MTY4MjhBN0UwMDNDMkY4RCAvKiBVbnVzZWRQb2ludGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFVudXNlZFBvaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNjVDMDI4NEYxNzE3OTVFMjAwMzUxRTM1IC8qIEFSTXY3RGlzYXNzZW1ibGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFSTXY3RGlzYXNzZW1ibGVyLmNwcDsg
cGF0aCA9IGRpc2Fzc2VtYmxlci9BUk12N0Rpc2Fzc2VtYmxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzgzLDYgKzI4MjQsOCBAQAogCQlGRTU5MzJBNjE4M0M1QTI2MDBB
MUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZNRW50cnlTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUEwODYxRTE4
MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQTA4
NjFGMTgyQjdBMDQwMEY2RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2ZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGVidWdnZXJQcmltaXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUZFQjU4QzEyMTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5n
U2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXJyb3JIYW5k
bGluZ1Njb3BlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVCNThDMTMxODdC
OEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBFcnJvckhhbmRsaW5nU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50T3Bjb2RlLmg7IHBhdGggPSBsbGludC9M
TEludE9wY29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5NEYyQjE3MUUz
RTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2F0Y2hkb2cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5
NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2F0Y2hkb2cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMw
MDEsNiArMzA0NCw4IEBACiAJCQkJMEZFQTBBMTgxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3Ry
YWN0SGVhcC5oICovLAogCQkJCTBGRUEwQTE5MTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5LmNwcCAqLywKIAkJCQkwRkVBMEExQTE3MDhCMDA3MDBCQjcyMkMgLyog
RlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oICovLAorCQkJCTBGNDg1MzIzMTg3REZERUMwMDgz
QjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5jcHAgKi8sCisJCQkJMEY0ODUzMjQxODdERkRF
QzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmggKi8sCiAJCQkJMEZFQTA5RkUxNzA1
MTNEQjAwQkI3MjJDIC8qIEZUTENhcGFiaWxpdGllcy5jcHAgKi8sCiAJCQkJMEZFQTA5RkYxNzA1
MTNEQjAwQkI3MjJDIC8qIEZUTENhcGFiaWxpdGllcy5oICovLAogCQkJCTBGRUEwQTI1MTcwOTYy
M0IwMEJCNzIyQyAvKiBGVExDb21tb25WYWx1ZXMuY3BwICovLApAQCAtMzAzMSw2ICszMDc2LDgg
QEAKIAkJCQkwRkVBMEEwMzE3MDUxM0RCMDBCQjcyMkMgLyogRlRMSklUQ29kZS5oICovLAogCQkJ
CUE3OEE5NzdEMTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIuY3BwICovLAogCQkJ
CUE3OEE5NzdFMTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIuaCAqLywKKwkJCQkw
RjZCMUNCMzE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCAqLywKKwkJCQkwRjZCMUNC
NDE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmggKi8sCiAJCQkJMEY4RjJCOTMxNzJFMDQ5
RTAwN0RCREE1IC8qIEZUTExpbmsuY3BwICovLAogCQkJCTBGOEYyQjk0MTcyRTA0OUUwMDdEQkRB
NSAvKiBGVExMaW5rLmggKi8sCiAJCQkJMEZDRUZBREQxODA3MzhDMDAwNDcyQ0U0IC8qIEZUTExv
Y2F0aW9uLmNwcCAqLywKQEAgLTMwNDcsNiArMzA5NCwxMCBAQAogCQkJCTBGMjM1QkNBMTcxNzhF
MUMwMDY5MEM3RiAvKiBGVExPU1JFeGl0Q29tcGlsZXIuaCAqLywKIAkJCQkwRkVBMEEyOTE3MDk2
Mjk2MDBCQjcyMkMgLyogRlRMT3V0cHV0LmNwcCAqLywKIAkJCQkwRkVBMEEwNjE3MDUxM0RCMDBC
QjcyMkMgLyogRlRMT3V0cHV0LmggKi8sCisJCQkJMEY0ODUzMjUxODdERkRFQzAwODNCNjg3IC8q
IEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCAqLywKKwkJCQkwRjQ4NTMyNjE4N0RGREVDMDA4M0I2ODcg
LyogRlRMUmVjb3ZlcnlPcGNvZGUuaCAqLywKKwkJCQkwRjZCMUNCRjE4NjJDNDc4MDA4NDVEOTcg
LyogRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAgKi8sCisJCQkJMEY2QjFDQzAxODYyQzQ3ODAwODQ1
RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuaCAqLywKIAkJCQkwRkNFRkFBOTE4MDRDMTNFMDA0
NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuY3BwICovLAogCQkJCTBGQ0VGQUFBMTgwNEMxM0UwMDQ3
MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5oICovLAogCQkJCTBGMjVGMUFBMTgxNjM1RjMwMDUyMkYz
OSAvKiBGVExTbG93UGF0aENhbGwuY3BwICovLApAQCAtMzA2MSw5ICszMTEyLDEzIEBACiAJCQkJ
MEYyMzVCQ0IxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFRodW5rcy5jcHAgKi8sCiAJCQkJMEYyMzVC
Q0MxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFRodW5rcy5oICovLAogCQkJCTBGRUEwQTFCMTcwOEIw
MDcwMEJCNzIyQyAvKiBGVExUeXBlZFBvaW50ZXIuaCAqLywKKwkJCQkwRjZCMUNDMTE4NjJDNDc4
MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5jcHAgKi8sCisJCQkJMEY2QjFDQzIxODYyQzQ3ODAw
ODQ1RDk3IC8qIEZUTFVud2luZEluZm8uaCAqLywKIAkJCQkwRjIzNUJDRDE3MTc4RTFDMDA2OTBD
N0YgLyogRlRMVmFsdWVGb3JtYXQuY3BwICovLAogCQkJCTBGMjM1QkNFMTcxNzhFMUMwMDY5MEM3
RiAvKiBGVExWYWx1ZUZvcm1hdC5oICovLAogCQkJCTBGREIyQ0M4MTczREE1MUUwMDdCM0MxQiAv
KiBGVExWYWx1ZUZyb21CbG9jay5oICovLAorCQkJCTBGNUE2MjgxMTg4Qzk4RDQwMDcyQzlERiAv
KiBGVExWYWx1ZVJhbmdlLmNwcCAqLywKKwkJCQkwRjVBNjI4MjE4OEM5OEQ0MDA3MkM5REYgLyog
RlRMVmFsdWVSYW5nZS5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBmdGw7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMzE1Miw2ICszMjA3LDggQEAKIAkJMTQyOUQ5MkMwRUQyMkQ3MDAw
Qjg5NjE5IC8qIGppdCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJMEY2QjFDQzcxODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1
bmtzLmNwcCAqLywKKwkJCQkwRjZCMUNDODE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuaCAqLywKIAkJCQkwRjI0RTUzQjE3RUE5RjU5MDBBQkIyMTcgLyogQXNz
ZW1ibHlIZWxwZXJzLmNwcCAqLywKIAkJCQkwRjI0RTUzQzE3RUE5RjU5MDBBQkIyMTcgLyogQXNz
ZW1ibHlIZWxwZXJzLmggKi8sCiAJCQkJMEYyNEU1M0QxN0VBOUY1OTAwQUJCMjE3IC8qIENDYWxs
SGVscGVycy5oICovLApAQCAtMzIwNSw2ICszMjYyLDggQEAKIAkJCQkwRkM3MTJFMTE3Q0Q4NzhG
MDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAqLywKIAkJ
CQlBNzZGNTRBMjEzQjI4QUFCMDBFRjJCQ0UgLyogSklUV3JpdGVCYXJyaWVyLmggKi8sCiAJCQkJ
QTc2QzUxNzQxMTgyNzQ4RDAwNzE1QjA1IC8qIEpTSW50ZXJmYWNlSklULmggKi8sCisJCQkJMEY2
QjFDQkIxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVy
YXRvci5jcHAgKi8sCisJCQkJMEY2QjFDQkMxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJl
c2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oICovLAogCQkJCTBGQzMxNDE0MTgxNDZENzAwMDAz
MzIzMiAvKiBSZWdpc3RlclNldC5jcHAgKi8sCiAJCQkJMEZDMzE0MTAxODE0NTU5MTAwMDMzMjMy
IC8qIFJlZ2lzdGVyU2V0LmggKi8sCiAJCQkJMEYyNEU1NDkxN0VFMjc0OTAwQUJCMjE3IC8qIFJl
cGF0Y2guY3BwICovLApAQCAtMzU1NCw2ICszNjEzLDcgQEAKIAkJCQlBNzYxNDBDODE4Mjk4MkNC
MDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5oICovLAogCQkJCUE3NjE0
MEM5MTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAgKi8s
CiAJCQkJQTc2MTQwQ0ExODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90
eXBlLmggKi8sCisJCQkJMEY2QjFDQjcxODYxMjQ0QzAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2Rl
LmggKi8sCiAJCQkJQTdBOEFGMjUxN0FEQjVGMjAwNUFCMTc0IC8qIEFycmF5QnVmZmVyLmNwcCAq
LywKIAkJCQlBN0E4QUYyNjE3QURCNUYzMDA1QUIxNzQgLyogQXJyYXlCdWZmZXIuaCAqLywKIAkJ
CQkwRkZDOTlEMjE4NEVFMzE4MDA5QzEwQUIgLyogQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBv
aW50LmNwcCAqLywKQEAgLTM2MTgsNiArMzY3OCw4IEBACiAJCQkJQkMzMDQ2MDYwRTFGNDk3RjAw
MzIzMkNGIC8qIEVycm9yLmggKi8sCiAJCQkJQkMwMkU5MDQwRTE4MzlEQjAwMEY5Mjk3IC8qIEVy
cm9yQ29uc3RydWN0b3IuY3BwICovLAogCQkJCUJDMDJFOTA1MEUxODM5REIwMDBGOTI5NyAvKiBF
cnJvckNvbnN0cnVjdG9yLmggKi8sCisJCQkJRkVCNThDMTIxODdCOEIxNjAwOThFRjBCIC8qIEVy
cm9ySGFuZGxpbmdTY29wZS5jcHAgKi8sCisJCQkJRkVCNThDMTMxODdCOEIxNjAwOThFRjBCIC8q
IEVycm9ySGFuZGxpbmdTY29wZS5oICovLAogCQkJCUJDMDJFOThBMEUxODNFMzgwMDBGOTI5NyAv
KiBFcnJvckluc3RhbmNlLmNwcCAqLywKIAkJCQlCQzAyRTk4QjBFMTgzRTM4MDAwRjkyOTcgLyog
RXJyb3JJbnN0YW5jZS5oICovLAogCQkJCUJDMDJFOTA2MEUxODM5REIwMDBGOTI5NyAvKiBFcnJv
clByb3RvdHlwZS5jcHAgKi8sCkBAIC0zODUxLDYgKzM5MTMsNyBAQAogCQkJCUY2OTJBODdDMDI1
NTU5N0QwMUZGNjBGNyAvKiBSZWdFeHBPYmplY3QuaCAqLywKIAkJCQlCQ0QyMDJCRjBFMTcwNkE3
MDAyQzdFODIgLyogUmVnRXhwUHJvdG90eXBlLmNwcCAqLywKIAkJCQlCQ0QyMDJDMDBFMTcwNkE3
MDAyQzdFODIgLyogUmVnRXhwUHJvdG90eXBlLmggKi8sCisJCQkJMEY2QjFDQjgxODYxMjQ0QzAw
ODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oICovLAogCQkJCTBGQjdGMzkxMTVF
RDhFMzgwMEYxNjdCMiAvKiBSZWplY3QuaCAqLywKIAkJCQkwRjc3MDA5MTE0MDJGRjI4MDA3OEVC
MzkgLyogU2FtcGxpbmdDb3VudGVyLmNwcCAqLywKIAkJCQkwRjc3MDA4RTE0MDJGREQ2MDA3OEVC
MzkgLyogU2FtcGxpbmdDb3VudGVyLmggKi8sCkBAIC0zOTY1LDYgKzQwMjgsOCBAQAogCQk4NkVD
OURCMzEzMjhERjQ0MDAyQjJBRDcgLyogZGZnICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkyQUNDRjNEQzE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVC
YXJyaWVyRWxpc2lvblBoYXNlLmNwcCAqLywKKwkJCQkyQUNDRjNERDE4NUZFMjZCMDA4M0UyQUQg
LyogREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmggKi8sCiAJCQkJQTc3QTQyMzYxN0EwQkJG
RDAwQThEQjgxIC8qIERGR0Fic3RyYWN0SGVhcC5jcHAgKi8sCiAJCQkJQTc3QTQyMzcxN0EwQkJG
RDAwQThEQjgxIC8qIERGR0Fic3RyYWN0SGVhcC5oICovLAogCQkJCUE3MDREOEZFMTdBMEJBQTgw
MDZCQTU1NCAvKiBERkdBYnN0cmFjdEludGVycHJldGVyLmggKi8sCkBAIC00MTUzLDggKzQyMTgs
NiBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBERkdTU0FMb3dlcmluZ1BoYXNl
LmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhh
c2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdGOCAvKiBERkdTdGFja0xheW91
dFBoYXNlLmggKi8sCi0JCQkJMkFDQ0YzREMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFy
cmllckVsaXNpb25QaGFzZS5jcHAgKi8sCi0JCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8q
IERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJCTBGQzIwQ0IzMTg1MkUyQzYw
MEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRkMyMENC
NDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5oICovLAogCQkJ
CTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmgg
Ki8sCkBAIC00MjUwLDYgKzQzMTMsNyBAQAogCQk5Njg4Q0IxMjBFRDEyQjRFMDAxRDY0OUYgLyog
YXNzZW1ibGVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQk2NTg2MDE3NzE4NUE4RjVFMDAwMzBFRUUgLyogTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwuaCAqLywKIAkJCQk4NjAxNjFERjBGM0E4M0MxMDBGODQ3MTAgLyogQWJzdHJhY3RNYWNyb0Fz
c2VtYmxlci5oICovLAogCQkJCTg2NDA5MjNCMTU2RUVEM0IwMDU2NkNCMiAvKiBBUk02NEFzc2Vt
Ymxlci5oICovLAogCQkJCTg2RDNCMkJGMTAxNTZCREUwMDI4NjVFNyAvKiBBUk1Bc3NlbWJsZXIu
Y3BwICovLApAQCAtNDMyMiw2ICs0Mzg2LDcgQEAKIAkJCQk5NjlBMDc5MjBFRDFEM0FFMDBGMUY2
ODEgLyogRXZhbENvZGVDYWNoZS5oICovLAogCQkJCTBGNTZBMUQ0MTUwMDFDRjIwMDI5OTJCMSAv
KiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLywKIAkJCQkwRjU2QTFEMTE1MDAwRjMxMDAyOTkyQjEg
LyogRXhlY3V0aW9uQ291bnRlci5oICovLAorCQkJCTBGM0FDNzUzMTg4RTVFQzgwMDMyMDI5RiAv
KiBFeGl0aW5nSklUVHlwZS5oICovLAogCQkJCTBGQjEwNTgyMTY3NTQ4MEMwMEY4QUI2RSAvKiBF
eGl0S2luZC5jcHAgKi8sCiAJCQkJMEZCMTA1ODMxNjc1NDgwQzAwRjhBQjZFIC8qIEV4aXRLaW5k
LmggKi8sCiAJCQkJMEYwQjgzQUExNEJDRjVCOTAwODg1QjRGIC8qIEV4cHJlc3Npb25SYW5nZUlu
Zm8uaCAqLywKQEAgLTQ1NDEsMTMgKzQ2MDYsMTQgQEAKIAkJCQk4NkFERDE0NTBGRERFQTk4MDAw
NkVFQzIgLyogQVJNdjdBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Q0VFRTE1MTg3
RjNCQUQwMEU1NUM5OSAvKiBJbnNwZWN0b3JBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVD
MDI4NUQxNzE3OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMkE2ODI5NUIxODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZm
ZXIuaCBpbiBIZWFkZXJzICovLAorIAkJCQkyQTY4Mjk1QjE4NzVGODA1MDBCNkMzRTIgLyogQ29w
eVdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgMkE0RUM5MEMx
ODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkU1OTMyQTgxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTUzMjQzOTMxODU2OTcwOTAwMkVENjkyIC8qIENvZGVHZW5lcmF0b3JJbnNwZWN0
b3JTdHJpbmdzLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJQTUzMjQzOTIxODU2OTcwOTAwMkVENjky
IC8qIENvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgaW4gSGVhZGVycyAqLywKKyAJCQkJQTUzMjQz
OTIxODU2OTcwOTAwMkVENjkyIC8qIENvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogVGVtcFJlZ2lzdGVyU2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxP
YmplY3RSdW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFQjU4QzE1MTg3QjhCMTYw
MDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkZG
M0MwMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdGaWx0cmF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNTg0MEUyNzE4N0M5ODFFMDA4NDNCMTAgLyogY3NzbWluLnB5IGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzJGQ0FFMTExN0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlQmFzaWNCbG9jay5o
IGluIEhlYWRlcnMgKi8sCkBAIC00NTU2LDcgKzQ2MjIsNyBAQAogCQkJCTBGODMzNUI4MTYzOUMx
RUEwMDE0NDNCNSAvKiBBcnJheUFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNTg0MEUyOTE4N0NBNUU2MDA4NDNCMTAgLyogaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVl
dHMtYW5kLXNjcmlwdHMucHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTg0MEUyQjE4N0NBNzVCMDA4
NDNCMTAgLyoganNtaW4ucHkgaW4gSGVhZGVycyAqLywKLQkJCQlBNTMyNDM5ODE4NTZBNDg5MDAy
RUQ2OTIgLyogSW5zcGVjdG9ySlMuanNvbiBpbiBIZWFkZXJzICovLAorIAkJCQlBNTMyNDM5ODE4
NTZBNDg5MDAyRUQ2OTIgLyogSW5zcGVjdG9ySlMuanNvbiBpbiBIZWFkZXJzICovLAogCQkJCUE1
ODQwRTJBMTg3Q0E3NTkwMDg0M0IxMCAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywKIAkJCQlGRUEw
ODYyMDE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTdBOEFGMzUxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyLmggaW4gSGVhZGVycyAqLywK
QEAgLTQ2MjQsNiArNDY5MCw3IEBACiAJCQkJQzJFQUEzRkExNDlBODM1RTAwRkNFMTEyIC8qIENv
cGllZFNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkM4RDAyRDE0QTNDNkUwMDA1NzhFNjUg
LyogQ29waWVkU3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVBNTJEMDE3QURE
NzE3MDA4RUNCMkQgLyogQ29weVRva2VuLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNDNjE4
NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIy
MzlEMTgxNjI2MkJERDAwNUFDNUZEIC8qIENvcHlWaXNpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDMjIzOUQxOTE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3JJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDMjE4RDE0MDE2NTVDRkQ1MDA2MkJCODEgLyogQ29weVdvcmtMaXN0Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTQ2NjUsNyArNDczMiw4IEBACiAJCQkJMEY4MzY0QjcxNjRCMEMx
MTAwNTMzMjlBIC8qIERGR0JyYW5jaERpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFB
MDA5QzAxODMxQTIyRDAwQ0Y4NzExIC8qIE1hY3JvQXNzZW1ibGVyQVJNNjQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg2RUM5REM1MTMyOERGODIwMDJCMkFENyAvKiBERkdCeXRlQ29kZVBhcnNlci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQTU5M0NGODcxODQwMzhDQTAwQkZDRTI3IC8qIEluc3BlY3Rv
ckFnZW50UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDg1MzI4MTg3REZERUMwMDgz
QjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAg
ICAgICAgQTU5M0NGODcxODQwMzhDQTAwQkZDRTI3IC8qIEluc3BlY3RvckFnZW50UmVnaXN0cnku
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjU2QzM2MTYyN0IwQUQwMDdGMjc4MyAvKiBERkdDYWxs
QXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3
QjI5NEIxNEMzQ0QyRjAwN0MzREIxIC8qIERGR0NhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZGRkM5NTgxNEVGOTBBMjAwQzcyNTMyIC8qIERGR0NGQVBoYXNlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTQ2OTksNiArNDc2Nyw3IEBACiAJCQkJMEZCQzBBRTgxNDk2QzdDNzAwRDRGQkRE
IC8qIERGR0V4aXRQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc3NTE3OTczOEI4
MDA5REY3NDQgLyogREZHRmFpbGVkRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhB
OTc3NzE3OTczOEI4MDA5REY3NDQgLyogREZHRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjZCMUNCNjE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjJCREMxNjE1MUM1RDRGMDBDRDg5MTAgLyogREZHRml4dXBQaGFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY5RDMzOTcxN0ZGQzRFNjAwNzNDMkJDIC8qIERGR0ZsdXNoZWRBdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTdEODlDRjgxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0ZsdXNoRm9y
bWF0LmggaW4gSGVhZGVycyAqLywKQEAgLTQ3MzUsNiArNDgwNCw3IEBACiAJCQkJMEZEOEEzMjYx
N0Q1MUY1NzAwQ0EyQzQwIC8qIERGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkMwOTc2QTE0NjhBNkY3MDBDRjI0NDIgLyogREZHT1NSRXhpdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZGQzk5RDExODRFQzhBRDAwOUMxMEFCIC8qIENvbnN0YW50TW9k
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQkExODYxMjQ0QzAwODQ1RDk3IC8qIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMzVCRUMxNzE3OEU3
MzAwNjkwQzdGIC8qIERGR09TUkV4aXRCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUJBMTVF
RDE4MjM0MEI0MDBBODJFNjkgLyogUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZGQjkyMUMxNkQwMkYxMTAwNTVBNURCIC8qIERGR09TUkV4aXRDb21w
aWxhdGlvbkluZm8uaCBpbiBIZWFkZXJzICovLApAQCAtNDgwMyw2ICs0ODczLDcgQEAKIAkJCQkw
RkVBMEExRjE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTU5NDU1OTMxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xvYmFsT2Jq
ZWN0RGVidWdnYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMEExNzA1MTNEQjAwQkI3
MjJDIC8qIEZUTENhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0ODUzMkExODdE
RkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkVBMEEyMzE3MDk2MDY5MDBCQjcyMkMgLyogRlRMQ29tbW9uVmFsdWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVBMEEwQzE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ29tcGlsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyMzVCRDQxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTEV4aXRBcmd1bWVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC00ODE5LDYgKzQ4OTAsNyBAQAogCQkJCTBGRUEwQTI0MTcwOTYw
NjkwMEJCNzIyQyAvKiBGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkVBMEEwRTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMSklUQ29kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTc4QTk3ODExNzk3MzhENTAwOURGNzQ0IC8qIEZUTEpJVEZpbmFsaXplci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY1QTYyODQxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEYyQjk2MTcyRTA0QTMwMDdEQkRBNSAvKiBGVExMaW5r
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNFRkFFMDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9j
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTEwMTcwNTEzREIwMEJCNzIyQyAvKiBG
VExMb3dlckRGR1RvTExWTS5oIGluIEhlYWRlcnMgKi8sCkBAIC00OTAxLDYgKzQ5NzMsNyBAQAog
CQkJCTBGQzIwQ0I2MTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkIxNEUxRjE4MTI0QUNFMDA5QjZCNEQgLyogSklUSW5s
aW5lQ2FjaGVHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2Q0M4NUExMEVFNzlBNDcw
MDI4ODY4MiAvKiBKSVRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNCRTE4NjEy
NDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjI0RTU0RDE3RUUyNzQ5MDBBQkIyMTcgLyogSklUT3BlcmF0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc5MERENzAxODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0
SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTRFMTdFRTI3NDkwMEFCQjIxNyAv
KiBKSVRPcGVyYXRpb25XcmFwcGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC00OTE2LDYgKzQ5ODks
NyBAQAogCQkJCTBGQzcxMkUzMTdDRDg3OTMwMDhDQzkzQyAvKiBKSVRUb0RGR0RlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc2RjU0QTMxM0IyOEFBQjAw
RUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MTYw
RTE2RjVDRDAwQjM0NDYwIC8qIEpTQWN0aXZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2
QjFDQjkxODYxMjQ0QzAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NDA0ODAxMzEwMjFBMUQ5MDA4RTdGMDEgLyogSlNBUElWYWx1ZVdyYXBwZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUMyQ0YzOUMyMTZFMTVBODEwMERENjlCRSAvKiBKU0FQSVdyYXBwZXJP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NjE0MEQyMTgyOTgyQ0IwMDc1MDYyNCAvKiBK
U0FyZ3VtZW50c0l0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTQ5NjksNiArNTA0Myw4IEBA
CiAJCQkJQkMxOEM0MjMwRTE2RjVDRDAwQjM0NDYwIC8qIEpTTG9jay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzI1RDcwOUMxNkRFOTlGNDAwRkNBNkJDIC8qIEpTTWFuYWdlZFZhbHVlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNzAwODc0MjE3Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGM0FDNzU0MTg4RTVFQzgwMDMyMDI5RiAvKiBFeGl0aW5nSklUVHlwZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQzQxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lz
dGVyQXRPZmZzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0ODc0QUU0MTVFQkRFNEEwMDJFMzU4
NyAvKiBKU05hbWVTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjQwRTE2RjVDRDAw
QjM0NDYwIC8qIEpTT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyNTBFMTZGNUNE
MDBCMzQ0NjAgLyogSlNPYmplY3RSZWYuaCBpbiBIZWFkZXJzICovLApAQCAtNTI3Myw2ICs1MzQ5
LDcgQEAKIAkJCQk5Njg4Q0IxNjBFRDEyQjRFMDAxRDY0OUYgLyogWDg2QXNzZW1ibGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY2NjZFQ0QxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlv
bkZvclZhbGlkYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQ0ExODY0MURG
ODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NjcwNEI4NTEyREJBMzM3MDBBOUZFN0IgLyogWWFyckludGVycHJldGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNTVEOTNBNjE4NTAxMkE4MDA0MDBERUQgLyogU2NyaXB0RnVuY3Rpb25D
YWxsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4NzEyREJBMzM3MDBBOUZFN0IgLyogWWFy
ckpJVC5oIGluIEhlYWRlcnMgKi8sCkBAIC01NzE2LDYgKzU3OTMsNyBAQAogCQkJCTE0MjlEOERE
MEVEMjIwNUIwMEI4OTYxOSAvKiBDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYw
QjgzQjAxNEJDRjcxNjAwODg1QjRGIC8qIENhbGxMaW5rSW5mby5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNTEzRTVCNzE4NUI4QkQzMDA3RTk1QUQgLyogSW5qZWN0ZWRTY3JpcHQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMEY1QTYyODMxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MzMyOUQxNENBN0RDMzAwODVGM0M2IC8qIENhbGxM
aW5rU3RhdHVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzNEN0FFMTY1QTE0MkQwMEFDQUI3
MSAvKiBDbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk2OUEw
Nzk2MEVEMUQzQUUwMEYxRjY4MSAvKiBDb2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01
NzU0LDYgKzU4MzIsNyBAQAogCQkJCTBGNjM5NDg0MTVFNDgxMTgwMDZBNTk3QyAvKiBERkdBcnJh
eU1vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEOUEyOTQxN0EwQkM3NDAwRUUyNjE4IC8q
IERGR0F0VGFpbEFic3RyYWN0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3MTRDQTQx
NkVBOTJGMDAwRjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRkVCNThDMTQxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdT
Y29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNGMjE3QTBCOENDMDA3NzNBRDggLyog
REZHQmFzaWNCbG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzBCMDgzMjE3QTBCNzlCMDBE
QUYxNEIgLyogREZHQmluYXJ5U3dpdGNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0Yz
MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCbG9ja0luc2VydGlvblNldC5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTU4MzEsOSArNTkxMCwxMSBAQAogCQkJCTg2ODgwRjREMTQzNTNCMjEwMEIwOEQ0MiAv
KiBERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0ZGMTdB
MEI4Q0MwMDc3M0FEOCAvKiBERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY5RkI0RjQxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQkQxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVy
UHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMw
OTdBMTE0NkIyOENBMDBDRjI0NDIgLyogREZHVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRDhBMzI3MTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDhBMzI5MTdENTFGNTcwMENBMkM0MCAvKiBERkdU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RjQ4NTMyNzE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZEOEEzMkIxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRm9yT1NS
RW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY2Mzk0NDAxNUM3NUYxRDAwNkE1OTdDIC8qIERGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCRTBGNzYxNkMxREIwRjAwODJDNUU4IC8qIERGR1VuaWZp
Y2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01ODkyLDkgKzU5NzMsMTEgQEAKIAkJ
CQkwRkNFRkFBQjE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYyNUYxQjExODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI1RjFCMzE4MTYzNUYzMDA1MjJGMzkgLyogRlRMU2xv
d1BhdGhDYWxsS2V5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0M1MTg2MkM0NzgwMDg0
NUQ5NyAvKiBGVExVbndpbmRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzMzlBMTgw
M0FEQjcwMDczQzJCQyAvKiBGVExTdGFja01hcHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZF
QTBBMTYxNzA2QkI5MDAwQkI3MjJDIC8qIEZUTFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTdDMDA4Q0QyMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5jdGlvbnMuY3BwIGluIFNv
dXJjZXMgKi8sCisgCQkJCTdDMDA4Q0QyMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5j
dGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQjUxODVGQzlFOTAwODQ1RDk3IC8q
IEZUTEpTQ2FsbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIzNUJFMTE3MTc4RTFDMDA2OTBD
N0YgLyogRlRMVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1OTNDRjdDMTg0MDM2MDMw
MEJGQ0UyNyAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjIzNUJFMzE3MTc4RTFDMDA2OTBDN0YgLyogRlRMVmFsdWVGb3JtYXQuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC01OTgwLDYgKzYwNjMsNyBAQAogCQkJCTE0MjgwODc1MTA3RUMxM0UwMDEz
RTdCMiAvKiBKU0xvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzI1RDcwOUIxNkRFOTlGNDAw
RkNBNkJDIC8qIEpTTWFuYWdlZFZhbHVlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcwMDg3NDEx
N0NCRThFQjAwQzNFNjQzIC8qIEpTTWFwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNDg1MzI5
MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNDg3NEFFMzE1RUJERTRBMDAyRTM1ODcgLyogSlNOYW1lU2NvcGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTcyNzAwOTAwREFDNkJCQzAwRTU0OEQ3IC8qIEpTTm90QW5PYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDQxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTT2JqZWN0
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjA5Niw2ICs2MTgwLDcgQEAKIAkJCQkwRjY2NkVDQzE4
MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGQjEwNThCMTY3NTQ4MzEwMEY4QUI2RSAvKiBQcm9maWxlck9T
UkV4aXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCMTA1OEQxNjc1NDgzNzAwRjhBQjZFIC8q
IFByb2ZpbGVyT1NSRXhpdFNpdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQzMxODYy
QzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEYxMzkxMkIxNjc3MUMzQTAwOUNDQjA3IC8qIFByb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdGQjYwQTQxMDNGN0RDMjAwMTdBMjg2IC8qIFByb3Bl
cnR5RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURFNzEwN0VDN0U3MDA2
NTA0NDYgLyogUHJvcGVydHlOYW1lQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02MTI1LDYg
KzYyMTAsNyBAQAogCQkJCTBGOEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZCMUNDOTE4
NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYwQ0Q0QzQxNUY2QjZCQjAwMzJGMUMwIC8qIFNwYXJzZUFycmF5VmFsdWVN
YXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1NTQxQjExNjEzQzFGQjAwQ0UzRTI1IC8qIFNw
ZWNpYWxQb2ludGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDgyRTg2MTQxRjNGRjEwMDE3
OUM5NCAvKiBTcGVjdWxhdGVkVHlwZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDI2IEBACiAjZGVmaW5lIERBVEFTSVpF
IERBVEFTSVpFX09GKGRhdGFzaXplKQogI2RlZmluZSBNRU1PUFNJWkUgTUVNT1BTSVpFX09GKGRh
dGFzaXplKQogI2RlZmluZSBDSEVDS19GUF9NRU1PUF9EQVRBU0laRSgpIEFTU0VSVChkYXRhc2l6
ZSA9PSA4IHx8IGRhdGFzaXplID09IDE2IHx8IGRhdGFzaXplID09IDMyIHx8IGRhdGFzaXplID09
IDY0IHx8IGRhdGFzaXplID09IDEyOCkKKyNkZWZpbmUgTUVNUEFJUk9QU0laRV9JTlQoZGF0YXNp
emUpICgoZGF0YXNpemUgPT0gNjQpID8gTWVtUGFpck9wXzY0IDogTWVtUGFpck9wXzMyKQorI2Rl
ZmluZSBNRU1QQUlST1BTSVpFX0ZQKGRhdGFzaXplKSAoKGRhdGFzaXplID09IDEyOCkgPyBNZW1Q
YWlyT3BfVjEyOCA6IChkYXRhc2l6ZSA9PSA2NCkgPyBNZW1QYWlyT3BfVjY0IDogTWVtUGFpck9w
XzMyKQogCiBuYW1lc3BhY2UgSlNDIHsKIAorQUxXQVlTX0lOTElORSBib29sIGlzSW50NyhpbnQz
Ml90IHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDI1KSA+PiAyNSk7
Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBpc0ludDkoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBy
ZXR1cm4gdmFsdWUgPT0gKCh2YWx1ZSA8PCAyMykgPj4gMjMpOwogfQogCitBTFdBWVNfSU5MSU5F
IGJvb2wgaXNJbnQxMShpbnQzMl90IHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSAoKHZh
bHVlIDw8IDIxKSA+PiAyMSk7Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBpc1VJbnQ1KGludDMy
X3QgdmFsdWUpCiB7CiAgICAgcmV0dXJuICEodmFsdWUgJiB+MHgxZik7CkBAIC0xMTksNiArMTMx
LDM0IEBAIHByaXZhdGU6CiAgICAgaW50IG1fdmFsdWU7CiB9OwogCitjbGFzcyBQYWlyUG9zdElu
ZGV4IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBQYWlyUG9zdEluZGV4KGludCB2YWx1ZSkKKyAg
ICAgICAgOiBtX3ZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW50MTEodmFs
dWUpKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBpbnQoKSB7IHJldHVybiBtX3ZhbHVlOyB9CisK
K3ByaXZhdGU6CisgICAgaW50IG1fdmFsdWU7Cit9OworCitjbGFzcyBQYWlyUHJlSW5kZXggewor
cHVibGljOgorICAgIGV4cGxpY2l0IFBhaXJQcmVJbmRleChpbnQgdmFsdWUpCisgICAgICAgIDog
bV92YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0ludDExKHZhbHVlKSk7Cisg
ICAgfQorCisgICAgb3BlcmF0b3IgaW50KCkgeyByZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRl
OgorICAgIGludCBtX3ZhbHVlOworfTsKKwogY2xhc3MgTG9naWNhbEltbWVkaWF0ZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIExvZ2ljYWxJbW1lZGlhdGUgY3JlYXRlMzIodWludDMyX3QgdmFsdWUp
CkBAIC04MjMsNiArODYzLDE2IEBAIHByaXZhdGU6CiAgICAgICAgIE1lbU9wX0xPQURfc2lnbmVk
MzIgPSAzIC8vIHNpemUgbWF5IGJlIDAgb3IgMQogICAgIH07CiAKKyAgICBlbnVtIE1lbVBhaXJP
cFNpemUgeworICAgICAgICBNZW1QYWlyT3BfMzIgPSAwLAorICAgICAgICBNZW1QYWlyT3BfTG9h
ZFNpZ25lZF8zMiA9IDEsCisgICAgICAgIE1lbVBhaXJPcF82NCA9IDIsCisKKyAgICAgICAgTWVt
UGFpck9wX1YzMiA9IE1lbVBhaXJPcF8zMiwKKyAgICAgICAgTWVtUGFpck9wX1Y2NCA9IDEsCisg
ICAgICAgIE1lbVBhaXJPcF9WMTI4ID0gMgorICAgIH07CisKICAgICBlbnVtIE1vdmVXaWRlT3Ag
ewogICAgICAgICBNb3ZlV2lkZU9wX04gPSAwLAogICAgICAgICBNb3ZlV2lkZU9wX1ogPSAyLApA
QCAtODM2LDYgKzg4NiwxNCBAQCBwcml2YXRlOgogICAgICAgICBMZHJMaXRlcmFsT3BfMTI4QklU
ID0gMgogICAgIH07CiAKKyAgICBzdGF0aWMgdW5zaWduZWQgbWVtUGFpck9mZnNldFNoaWZ0KGJv
b2wgViwgTWVtUGFpck9wU2l6ZSBzaXplKQorICAgIHsKKyAgICAgICAgLy8gcmV0dXJuIHRoZSBs
b2cyIG9mIHRoZSBzaXplIGluIGJ5dGVzLCBlLmcuIDY0IGJpdCBzaXplIHJldHVybnMgMworICAg
ICAgICBpZiAoVikKKyAgICAgICAgICAgIHJldHVybiBzaXplICsgMjsKKyAgICAgICAgcmV0dXJu
IChzaXplID4+IDEpICsgMjsKKyAgICB9CisKIHB1YmxpYzoKICAgICAvLyBJbnRlZ2VyIEluc3Ry
dWN0aW9uczoKIApAQCAtODcxLDggKzkyOSw5IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgYWRkKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNo
aWZ0VHlwZSBzaGlmdCwgaW50IGFtb3VudCkKICAgICB7CiAgICAgICAgIENIRUNLX0RBVEFTSVpF
KCk7Ci0gICAgICAgIGlmIChpc1NwKHJuKSkgeworICAgICAgICBpZiAoaXNTcChyZCkgfHwgaXNT
cChybikpIHsKICAgICAgICAgICAgIEFTU0VSVChzaGlmdCA9PSBMU0wpOworICAgICAgICAgICAg
QVNTRVJUKCFpc1NwKHJtKSk7CiAgICAgICAgICAgICBhZGQ8ZGF0YXNpemUsIHNldEZsYWdzPihy
ZCwgcm4sIHJtLCBVWFRYLCBhbW91bnQpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGlu
c24oYWRkU3VidHJhY3RTaGlmdGVkUmVnaXN0ZXIoREFUQVNJWkUsIEFkZE9wX0FERCwgc2V0Rmxh
Z3MsIHNoaWZ0LCBybSwgYW1vdW50LCBybiwgcmQpKTsKQEAgLTEyMTYsNiArMTI3NSwyMCBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19J
TkxJTkUgdm9pZCBsZHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQg
cm4sIFBhaXJQb3N0SW5kZXggc2ltbSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7
CisgICAgICAgIGluc24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1FTVBBSVJPUFNJ
WkVfSU5UKGRhdGFzaXplKSwgZmFsc2UsIE1lbU9wX0xPQUQsIHNpbW0sIHJuLCBydCwgcnQyKSk7
CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBsZHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBh
aXJQcmVJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAg
ICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNRU1QQUlST1BTSVpFX0lOVChk
YXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9MT0FELCBzaW1tLCBybiwgcnQsIHJ0MikpOworICAgIH0K
KworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbGRy
KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAg
ICAgICBsZHI8ZGF0YXNpemU+KHJ0LCBybiwgcm0sIFVYVFgsIDApOwpAQCAtMTc0OCw2ICsxODIx
LDIwIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CisgICAg
QUxXQVlTX0lOTElORSB2b2lkIHN0cChSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0MiwgUmVn
aXN0ZXJJRCBybiwgUGFpclBvc3RJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFU
QVNJWkUoKTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoTUVN
UEFJUk9QU0laRV9JTlQoZGF0YXNpemUpLCBmYWxzZSwgTWVtT3BfU1RPUkUsIHNpbW0sIHJuLCBy
dCwgcnQyKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzdHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVy
SUQgcm4sIFBhaXJQcmVJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUo
KTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNRU1QQUlST1BT
SVpFX0lOVChkYXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9TVE9SRSwgc2ltbSwgcm4sIHJ0LCBydDIp
KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CiAgICAgQUxXQVlTX0lOTElO
RSB2b2lkIHN0cihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQog
ICAgIHsKICAgICAgICAgc3RyPGRhdGFzaXplPihydCwgcm4sIHJtLCBVWFRYLCAwKTsKQEAgLTE4
NzYsOCArMTk2Myw5IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3ViKFJlZ2lz
dGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNoaWZ0VHlwZSBzaGlmdCwg
aW50IGFtb3VudCkKICAgICB7CiAgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7Ci0gICAgICAgIGlm
IChpc1NwKHJuKSkgeworICAgICAgICBpZiAoaXNTcChyZCkgfHwgaXNTcChybikpIHsKICAgICAg
ICAgICAgIEFTU0VSVChzaGlmdCA9PSBMU0wpOworICAgICAgICAgICAgQVNTRVJUKCFpc1NwKHJt
KSk7CiAgICAgICAgICAgICBzdWI8ZGF0YXNpemUsIHNldEZsYWdzPihyZCwgcm4sIHJtLCBVWFRY
LCBhbW91bnQpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGluc24oYWRkU3VidHJhY3RT
aGlmdGVkUmVnaXN0ZXIoREFUQVNJWkUsIEFkZE9wX1NVQiwgc2V0RmxhZ3MsIHNoaWZ0LCBybSwg
YW1vdW50LCBybiwgcmQpKTsKQEAgLTMzNjEsNiArMzQ0OSwyMyBAQCBwcml2YXRlOgogICAgIH0K
IAogICAgIC8vICdWJyBtZWFucyB2ZWN0b3IKKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBpbnQg
bG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1lbVBhaXJPcFNpemUgc2l6ZSwgYm9vbCBW
LCBNZW1PcCBvcGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0ZXJJRCBy
dCwgRlBSZWdpc3RlcklEIHJ0MikKKyAgICB7CisgICAgICAgIEFTU0VSVChzaXplIDwgMyk7Cisg
ICAgICAgIEFTU0VSVChvcGMgPT0gKG9wYyAmIDEpKTsgLy8gT25seSBsb2FkIG9yIHN0b3JlLCBs
b2FkIHNpZ25lZCA2NCBpcyBoYW5kbGVkIHZpYSBzaXplLgorICAgICAgICBBU1NFUlQoViB8fCAo
c2l6ZSAhPSBNZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9MT0FEKSk7
IC8vIFRoZXJlIGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgorICAgICAgICB1bnNpZ25l
ZCBpbW1lZFNoaWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUpOworICAgICAg
ICBpbnQgaW1tNyA9IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OworICAgICAgICBBU1NF
UlQoKGltbTcgPDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50NyhpbW03
KSk7CisgICAgICAgIHJldHVybiAoMHgyODgwMDAwMCB8IHNpemUgPDwgMzAgfCBWIDw8IDI2IHwg
b3BjIDw8IDIyIHwgKGltbTcgJiAweDdmKSA8PCAxNSB8IHJ0MiA8PCAxMCB8IHhPclNwKHJuKSA8
PCA1IHwgcnQpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2FkU3Rv
cmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoTWVtUGFpck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9w
IG9wYywgaW50IGltbWVkaWF0ZSwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBydCwgUmVnaXN0
ZXJJRCBydDIpCisgICAgeworICAgICAgICByZXR1cm4gbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9z
dEluZGV4KHNpemUsIFYsIG9wYywgaW1tZWRpYXRlLCBybiwgeE9yWnJBc0ZQUihydCksIHhPclpy
QXNGUFIocnQyKSk7CisgICAgfQorCisgICAgLy8gJ1YnIG1lYW5zIHZlY3RvcgogICAgIEFMV0FZ
U19JTkxJTkUgc3RhdGljIGludCBsb2FkU3RvcmVSZWdpc3RlclByZUluZGV4KE1lbU9wU2l6ZSBz
aXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGltbTksIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0
ZXJJRCBydCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghKHNpemUgJiYgViAmJiAob3BjICYgMikp
KTsgLy8gTWF4aW11bSB2ZWN0b3Igc2l6ZSBpcyAxMjggYml0cy4KQEAgLTMzNzUsNiArMzQ4MCwy
MyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIC8vICdWJyBtZWFucyB2ZWN0b3IKKyAgICBBTFdB
WVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoTWVtUGFp
ck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGltbWVkaWF0ZSwgUmVnaXN0ZXJJ
RCBybiwgRlBSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKHNpemUgPCAzKTsKKyAgICAgICAgQVNTRVJUKG9wYyA9PSAob3BjICYgMSkpOyAvLyBP
bmx5IGxvYWQgb3Igc3RvcmUsIGxvYWQgc2lnbmVkIDY0IGlzIGhhbmRsZWQgdmlhIHNpemUuCisg
ICAgICAgIEFTU0VSVChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyKSB8fCAo
b3BjID09IE1lbU9wX0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9yZSBzaWdu
ZWQuCisgICAgICAgIHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zmc2V0U2hp
ZnQoViwgc2l6ZSk7CisgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+IGltbWVkU2hpZnRB
bW91bnQ7CisgICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBpbW1l
ZGlhdGUgJiYgaXNJbnQ3KGltbTcpKTsKKyAgICAgICAgcmV0dXJuICgweDI5ODAwMDAwIHwgc2l6
ZSA8PCAzMCB8IFYgPDwgMjYgfCBvcGMgPDwgMjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1IHwgcnQy
IDw8IDEwIHwgeE9yU3Aocm4pIDw8IDUgfCBydCk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgaW50IGxvYWRTdG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KE1lbVBhaXJPcFNpemUg
c2l6ZSwgYm9vbCBWLCBNZW1PcCBvcGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIFJl
Z2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxvYWRT
dG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KHNpemUsIFYsIG9wYywgaW1tZWRpYXRlLCBybiwgeE9y
WnJBc0ZQUihydCksIHhPclpyQXNGUFIocnQyKSk7CisgICAgfQorCisgICAgLy8gJ1YnIG1lYW5z
IHZlY3RvcgogICAgIC8vICdTJyBtZWFucyBzaGlmdCBybQogICAgIEFMV0FZU19JTkxJTkUgc3Rh
dGljIGludCBsb2FkU3RvcmVSZWdpc3RlclJlZ2lzdGVyT2Zmc2V0KE1lbU9wU2l6ZSBzaXplLCBi
b29sIFYsIE1lbU9wIG9wYywgUmVnaXN0ZXJJRCBybSwgRXh0ZW5kVHlwZSBvcHRpb24sIGJvb2wg
UywgUmVnaXN0ZXJJRCBybiwgRlBSZWdpc3RlcklEIHJ0KQogICAgIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjU0LDYgKzY1NCw4IEBAIHByaXZhdGU6CiAgICAgdHlw
ZWRlZiBlbnVtIHsKICAgICAgICAgT1BfQl9UMSAgICAgICAgID0gMHhEMDAwLAogICAgICAgICBP
UF9CX1QyICAgICAgICAgPSAweEUwMDAsCisgICAgICAgIE9QX1BPUF9UMiAgICAgICA9IDB4RThC
RCwKKyAgICAgICAgT1BfUFVTSF9UMiAgICAgID0gMHhFOTJELAogICAgICAgICBPUF9BTkRfcmVn
X1QyICAgPSAweEVBMDAsCiAgICAgICAgIE9QX1RTVF9yZWdfVDIgICA9IDB4RUExMCwKICAgICAg
ICAgT1BfT1JSX3JlZ19UMiAgID0gMHhFQTQwLApAQCAtODk0LDYgKzg5NiwxMSBAQCBwdWJsaWM6
CiAgICAgLy8gTk9URTogSW4gYW4gSVQgYmxvY2ssIGFkZCBkb2Vzbid0IG1vZGlmeSB0aGUgZmxh
Z3MgcmVnaXN0ZXIuCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGFkZChSZWdpc3RlcklEIHJkLCBS
ZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKKyAgICAgICAgaWYgKHJkID09IEFS
TVJlZ2lzdGVyczo6c3ApIHsKKyAgICAgICAgICAgIG1vdihyZCwgcm4pOworICAgICAgICAgICAg
cm4gPSByZDsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChyZCA9PSBybikKICAgICAgICAgICAg
IG1fZm9ybWF0dGVyLm9uZVdvcmRPcDhSZWdSZWcxNDMoT1BfQUREX3JlZ19UMiwgcm0sIHJkKTsK
ICAgICAgICAgZWxzZSBpZiAocmQgPT0gcm0pCkBAIC0xNDg4LDYgKzE0OTUsMjIgQEAgcHVibGlj
OgogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzRGb3VyRm91cnMoT1BfUk9SX3Jl
Z19UMiwgcm4sIEZvdXJGb3VycygweGYsIHJkLCAwLCBybSkpOwogICAgIH0KIAorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBwb3AodWludDMyX3QgcmVnaXN0ZXJMaXN0KQorICAgIHsKKyAgICAgICAg
QVNTRVJUKFdURjo6Yml0Q291bnQocmVnaXN0ZXJMaXN0KSA+IDEpOworICAgICAgICBBU1NFUlQo
ISgoMSA8PCBBUk1SZWdpc3RlcnM6OnBjKSAmIHJlZ2lzdGVyTGlzdCkgfHwgISgoMSA8PCBBUk1S
ZWdpc3RlcnM6OmxyKSAmIHJlZ2lzdGVyTGlzdCkpOworICAgICAgICBBU1NFUlQoISgoMSA8PCBB
Uk1SZWdpc3RlcnM6OnNwKSAmIHJlZ2lzdGVyTGlzdCkpOworICAgICAgICBtX2Zvcm1hdHRlci50
d29Xb3JkT3AxNkltbTE2KE9QX1BPUF9UMiwgcmVnaXN0ZXJMaXN0KTsKKyAgICB9CisKKyAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgcHVzaCh1aW50MzJfdCByZWdpc3Rlckxpc3QpCisgICAgeworICAg
ICAgICBBU1NFUlQoV1RGOjpiaXRDb3VudChyZWdpc3Rlckxpc3QpID4gMSk7CisgICAgICAgIEFT
U0VSVCghKCgxIDw8IEFSTVJlZ2lzdGVyczo6cGMpICYgcmVnaXN0ZXJMaXN0KSk7CisgICAgICAg
IEFTU0VSVCghKCgxIDw8IEFSTVJlZ2lzdGVyczo6c3ApICYgcmVnaXN0ZXJMaXN0KSk7CisgICAg
ICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDE2SW1tMTYoT1BfUFVTSF9UMiwgcmVnaXN0ZXJMaXN0
KTsKKyAgICB9CisKICNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBzZGl2KFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAg
ewpAQCAtMjc5MSw2ICsyODE0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX2J1ZmZlci5w
dXRTaG9ydChvcDIpOwogICAgICAgICB9CiAKKyAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHR3
b1dvcmRPcDE2SW1tMTYoT3Bjb2RlSUQxIG9wMSwgdWludDE2X3QgaW1tKQorICAgICAgICB7Cisg
ICAgICAgICAgICBtX2J1ZmZlci5wdXRTaG9ydChvcDEpOworICAgICAgICAgICAgbV9idWZmZXIu
cHV0U2hvcnQoaW1tKTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgQUxXQVlTX0lOTElO
RSB2b2lkIHR3b1dvcmRPcDVpNkltbTRSZWc0RW5jb2RlZEltbShPcGNvZGVJRDEgb3AsIGludCBp
bW00LCBSZWdpc3RlcklEIHJkLCBBUk1UaHVtYkltbWVkaWF0ZSBpbW0pCiAgICAgICAgIHsKICAg
ICAgICAgICAgIEFSTVRodW1iSW1tZWRpYXRlIG5ld0ltbSA9IGltbTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2Vt
Ymxlci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTQwLDcgKzE0
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFz
ZSwgb2Zmc2V0ICsgYWRkaXRpb25hbE9mZnNldCk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAg
ICAgICAgUmVnaXN0ZXJJRCBiYXNlOwogICAgICAgICBpbnQzMl90IG9mZnNldDsKICAgICB9OwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3Bw
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xp
bmtCdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxMiArMjgsMjEgQEAK
IAogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAKKyNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNs
dWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCiAj
aW5jbHVkZSA8d3RmL0NvbXBpbGF0aW9uVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCiti
b29sIHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3sKKyAg
ICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGNvZGVCbG9jay0+aml0VHlwZSgpKSAmJiBP
cHRpb25zOjpzaG93REZHRGlzYXNzZW1ibHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
cmV0dXJuIE9wdGlvbnM6OnNob3dEaXNhc3NlbWJseSgpOworfQorCiBMaW5rQnVmZmVyOjpDb2Rl
UmVmIExpbmtCdWZmZXI6OmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpCiB7CiAgICAg
cGVyZm9ybUZpbmFsaXphdGlvbigpOwpAQCAtNDcsOCArNTYsNiBAQCBMaW5rQnVmZmVyOjpDb2Rl
UmVmIExpbmtCdWZmZXI6OmZpbmFsaXplCiAKIExpbmtCdWZmZXI6OkNvZGVSZWYgTGlua0J1ZmZl
cjo6ZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5KGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQog
ewotICAgIEFTU0VSVChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHkoKSB8fCBPcHRpb25zOjpzaG93
REZHRGlzYXNzZW1ibHkoKSk7Ci0gICAgCiAgICAgQ29kZVJlZiByZXN1bHQgPSBmaW5hbGl6ZUNv
ZGVXaXRob3V0RGlzYXNzZW1ibHkoKTsKIAogI2lmIEVOQUJMRShESVNBU1NFTUJMRVIpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA5LCAyMDEwLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQz
LDYgKzQzLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIENvZGVCbG9jazsKIGNsYXNz
IFZNOwogCiAvLyBMaW5rQnVmZmVyOgpAQCAtMTY0LDYgKzE2NSwxMSBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCB0byBvYnRhaW4gaGFuZGxlcyB0byBh
bGxvdyB0aGUgY29kZSB0byBiZSByZWxpbmtlZCAvIHJlcGF0Y2hlZCBsYXRlci4KKyAgICAKKyAg
ICBDb2RlTG9jYXRpb25MYWJlbCBlbnRyeXBvaW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBD
b2RlTG9jYXRpb25MYWJlbChjb2RlKCkpOworICAgIH0KIAogICAgIENvZGVMb2NhdGlvbkNhbGwg
bG9jYXRpb25PZihDYWxsIGNhbGwpCiAgICAgewpAQCAtMzAzLDYgKzMwOSwxMSBAQCBwcml2YXRl
OgogICAgICA/ICgobGlua0J1ZmZlclJlZmVyZW5jZSkuZmluYWxpemVDb2RlV2l0aERpc2Fzc2Vt
Ymx5IGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykgXAogICAgICA6IChsaW5rQnVmZmVyUmVm
ZXJlbmNlKS5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKSkKIAorYm9vbCBzaG91bGRT
aG93RGlzYXNzZW1ibHlGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spOworCisjZGVmaW5lIEZJTkFM
SVpFX0NPREVfRk9SKGNvZGVCbG9jaywgbGlua0J1ZmZlclJlZmVyZW5jZSwgZGF0YUxvZ0ZBcmd1
bWVudHNGb3JIZWFkaW5nKSAgXAorICAgIEZJTkFMSVpFX0NPREVfSUYoc2hvdWxkU2hvd0Rpc2Fz
c2VtYmx5Rm9yKGNvZGVCbG9jayksIGxpbmtCdWZmZXJSZWZlcmVuY2UsIGRhdGFMb2dGQXJndW1l
bnRzRm9ySGVhZGluZykKKwogLy8gVXNlIHRoaXMgdG8gZmluYWxpemUgY29kZSwgbGlrZSBzbzoK
IC8vCiAvLyBDb2RlUmVmIGNvZGUgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsICgibXkgc3Vw
ZXIgdGhpbmd5IG51bWJlciAlZCIsIG51bWJlcikpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OTUsNiArNTk1LDExIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihU
cnVzdGVkSW1tMzIoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVB0cihU
cnVzdGVkSW1tMzIgaW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAg
IHN0b3JlMzIoaW1tLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUHRyKFRydXN0
ZWRJbW1QdHIgaW1tLCBCYXNlSW5kZXggYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3JlMzIo
VHJ1c3RlZEltbTMyKGltbSksIGFkZHJlc3MpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHJldmlzaW9uIDE2
MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk02NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDEsNyArMjAxLDEwIEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgYWRkNjQoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAg
ICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgZGVzdCwgc3JjKTsKKyAgICAgICAgaWYgKHNy
YyA9PSBBUk02NFJlZ2lzdGVyczo6c3ApCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+
KGRlc3QsIHNyYywgZGVzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZDw2ND4oZGVzdCwgZGVzdCwgc3JjKTsKICAgICB9CiAKICAgICB2b2lkIGFkZDY0KFRydXN0
ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTE0MzcsNiArMTQ0MCwxNiBAQCBwdWJs
aWM6CiAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCisgICAgdm9pZCBwb3BQYWlyKFJlZ2lzdGVy
SUQgZGVzdDEsIFJlZ2lzdGVySUQgZGVzdDIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5s
ZHA8NjQ+KGRlc3QxLCBkZXN0MiwgQVJNNjRSZWdpc3RlcnM6OnNwLCBQYWlyUG9zdEluZGV4KDE2
KSk7CisgICAgfQorCisgICAgdm9pZCBwdXNoUGFpcihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVy
SUQgc3JjMikKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnN0cDw2ND4oc3JjMSwgc3JjMiwg
QVJNNjRSZWdpc3RlcnM6OnNwLCBQYWlyUHJlSW5kZXgoLTE2KSk7CisgICAgfQorCiAgICAgdm9p
ZCBwb3BUb1Jlc3RvcmUoUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJs
ZXIubGRyPDY0PihkZXN0LCBBUk02NFJlZ2lzdGVyczo6c3AsIFBvc3RJbmRleCgxNikpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNiAr
MTcwLDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZDMyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lz
dGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBBUk1UaHVtYkltbWVk
aWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQxMk9yRW5jb2RlZEltbShp
bW0ubV92YWx1ZSk7CisKKyAgICAgICAgLy8gRm9yIGFkZHMgd2l0aCBzdGFjayBwb2ludGVyIGRl
c3RpbmF0aW9uLCBtb3ZpbmcgdGhlIHNyYyBmaXJzdCB0byBzcCBpcworICAgICAgICAvLyBuZWVk
ZWQgdG8gYXZvaWQgdW5wcmVkaWN0YWJsZSBpbnN0cnVjdGlvbgorICAgICAgICBpZiAoZGVzdCA9
PSBBUk1SZWdpc3RlcnM6OnNwICYmIHNyYyAhPSBkZXN0KSB7CisgICAgICAgICAgICBtb3ZlKHNy
YywgQVJNUmVnaXN0ZXJzOjpzcCk7CisgICAgICAgICAgICBzcmMgPSBBUk1SZWdpc3RlcnM6OnNw
OworICAgICAgICB9CisKICAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpCiAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5hZGQoZGVzdCwgc3JjLCBhcm1JbW0pOwogICAgICAgICBlbHNlIHsKQEAg
LTExNjAsNiArMTE2OCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHB1c2goZGF0YVRlbXBSZWdpc3Rl
cik7CiAgICAgfQogCisgICAgdm9pZCBwb3BQYWlyKFJlZ2lzdGVySUQgZGVzdDEsIFJlZ2lzdGVy
SUQgZGVzdDIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5wb3AoMSA8PCBkZXN0MSB8IDEg
PDwgZGVzdDIpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHB1c2hQYWlyKFJlZ2lzdGVySUQgc3Jj
MSwgUmVnaXN0ZXJJRCBzcmMyKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucHVzaCgxIDw8
IHNyYzEgfCAxIDw8IHNyYzIpOworICAgIH0KKyAgICAKICAgICAvLyBSZWdpc3RlciBtb3ZlIG9w
ZXJhdGlvbnM6CiAgICAgLy8KICAgICAvLyBNb3ZlIHZhbHVlcyBpbiByZWdpc3RlcnMuCkBAIC0x
MjgxLDExICsxMjk5LDE5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3Qo
cmVnLCByZWcpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFSTVRodW1iSW1tZWRpYXRl
IGFybUltbSA9IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2RlZEltbShpbW0pOwotICAgICAg
ICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpCi0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIu
dHN0KHJlZywgYXJtSW1tKTsKLSAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGFy
bUltbS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVnID09IEFSTVJlZ2lzdGVy
czo6c3ApIHsKKyAgICAgICAgICAgICAgICAgICAgbW92ZShyZWcsIGFkZHJlc3NUZW1wUmVnaXN0
ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3QoYWRkcmVzc1RlbXBSZWdp
c3RlciwgYXJtSW1tKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgbV9hc3NlbWJsZXIudHN0KHJlZywgYXJtSW1tKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgbW92ZShtYXNrLCBkYXRhVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAg
ICAgICBtX2Fzc2VtYmxlci50c3QocmVnLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAg
ICAgICBpZiAocmVnID09IEFSTVJlZ2lzdGVyczo6c3ApIHsKKyAgICAgICAgICAgICAgICAgICAg
bW92ZShyZWcsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fz
c2VtYmxlci50c3QoYWRkcmVzc1RlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAg
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChy
ZWcsIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVS
ZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQ29kZVJlZi5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNTQsNiArMjU0LDExIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkKiB2YWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICAKKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QKKyAgICB7CisgICAgICAgIG91dC5wcmludChSYXdQb2ludGVyKG1fdmFsdWUp
KTsKKyAgICB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCogbV92YWx1ZTsKQEAgLTMwOSw5ICszMTQs
MTAgQEAgcHVibGljOgogICAgIHZvaWQqIGRhdGFMb2NhdGlvbigpIGNvbnN0IHsgQVNTRVJUX1ZB
TElEX0NPREVfUE9JTlRFUihtX3ZhbHVlKTsgcmV0dXJuIG1fdmFsdWU7IH0KICNlbmRpZgogCi0g
ICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdAorICAgIHR5cGVkZWYgdm9pZCogKE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGUpOworICAgIG9wZXJhdG9yIFVuc3BlY2lm
aWVkQm9vbFR5cGUqKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiAhbV92YWx1ZTsKKyAg
ICAgICAgcmV0dXJuICEhbV92YWx1ZSA/IHJlaW50ZXJwcmV0X2Nhc3Q8VW5zcGVjaWZpZWRCb29s
VHlwZSo+KDEpIDogMDsKICAgICB9CiAgICAgCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciYgb3RoZXIpIGNvbnN0CkBAIC00MzQsNyArNDQwLDExIEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIEpTQzo6dHJ5VG9EaXNhc3NlbWJsZShtX2NvZGVQdHIsIHNp
emUoKSwgcHJlZml4LCBXVEY6OmRhdGFGaWxlKCkpOwogICAgIH0KICAgICAKLSAgICBib29sIG9w
ZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX2NvZGVQdHI7IH0KKyAgICB0eXBlZGVmIHZvaWQq
IChNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OipVbnNwZWNpZmllZEJvb2xUeXBlKTsKKyAgICBvcGVy
YXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
ISFtX2NvZGVQdHIgPyByZWludGVycHJldF9jYXN0PFVuc3BlY2lmaWVkQm9vbFR5cGUqPigxKSA6
IDA7CisgICAgfQogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAog
ICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIE1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsX2gKKyNkZWZpbmUgTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGxfaAor
CisjaW5jbHVkZSAiSlNTdGFjay5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyLmgiCisjaW5jbHVkZSAi
U3RhY2tBbGlnbm1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorCituYW1lc3Bh
Y2UgSlNDIHsKKworLy8gVGhlIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsIGlzIHRoZSBt
YXggYW1vdW50IG9mIHN0YWNrIHNwYWNlIChpbiBieXRlcykKKy8vIHRoYXQgY2FuIGJlIHVzZWQg
Zm9yIG91dGdvaW5nIGFyZ3Mgd2hlbiBjYWxsaW5nIGEgc2xvdyBwYXRoIEMgZnVuY3Rpb24KKy8v
IGZyb20gSlMgY29kZS4KKworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCitzdGF0aWMgY29uc3Qg
c2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMDsKKworI2VsaWYgQ1BVKFg4
Nl82NCkgJiYgT1MoV0lORE9XUykKKy8vIDQgYXJncyBpbiByZWdpc3RlcnMsIGJ1dCBzdGFjayBz
cGFjZSBuZWVkcyB0byBiZSBhbGxvY2F0ZWQgZm9yIGFsbCBhcmdzLgorc3RhdGljIGNvbnN0IHNp
emVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDY0OworCisjZWxpZiBDUFUoWDg2
XzY0KQorLy8gQWxsIGFyZ3MgaW4gcmVnaXN0ZXJzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDA7CisKKyNlbGlmIENQVShYODYpCisvLyA3IGFy
Z3Mgb24gc3RhY2sgKDI4IGJ5dGVzKS4KK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwgPSA0MDsKKworI2VsaWYgQ1BVKEFSTTY0KQorLy8gQWxsIGFyZ3Mg
aW4gcmVnaXN0ZXJzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCA9IDA7CisKKyNlbGlmIENQVShBUk0pCisvLyBGaXJzdCBmb3VyIGFyZ3MgaW4gcmVn
aXN0ZXJzLCByZW1haW5pbmcgNCBhcmdzIG9uIHN0YWNrLgorc3RhdGljIGNvbnN0IHNpemVfdCBt
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDI0OworCisjZWxpZiBDUFUoU0g0KQorLy8g
Rmlyc3QgZm91ciBhcmdzIGluIHJlZ2lzdGVycywgcmVtYWluaW5nIDQgYXJncyBvbiBzdGFjay4K
K3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAyNDsK
KworI2VsaWYgQ1BVKE1JUFMpCisvLyBUaG91Z2ggYXJncyBhcmUgaW4gcmVnaXN0ZXJzLCB0aGVy
ZSBuZWVkIHRvIGJlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgYWxsIGFyZ3MuCitzdGF0aWMgY29u
c3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDA7CisKKyNlbHNlCisj
ZXJyb3IgIlVuc3VwcG9ydGVkIENQVTogbmVlZCB2YWx1ZSBmb3IgbWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwiCisKKyNlbmRpZgorCitDT01QSUxFX0FTU0VSVCghKG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsICUgc2l6ZW9mKFJlZ2lzdGVyKSksIGV4dGVudF9tdXN0X2JlX2luX211
bHRpcGxlc19vZl9yZWdpc3RlcnMpOworLy8gTWFrZSBzdXJlIHRoYXQgY2ZyIC0gbWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwgYnl0ZXMgd2lsbCBtYWtlIHRoZSBzdGFjayBwb2ludGVyIGFs
aWduZWQKK0NPTVBJTEVfQVNTRVJUKChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCAlIDE2
KSA9PSAxNiAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSwgZXh0ZW50X211c3RfYWxpZ25fc3Rh
Y2tfZnJvbV9jYWxsZnJhbWVfcG9pbnRlcik7CisKK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGxJblJlZ2lzdGVycyA9IG1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsIC8gc2l6ZW9mKFJlZ2lzdGVyKTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNl
bmRpZiAvLyBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbF9oCisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEy
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzcsMTUgKzM3LDE1IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjp1bmxp
bmsoVk0mIHZtLCBSZXBhdGMKIHsKICAgICBBU1NFUlQoaXNMaW5rZWQoKSk7CiAgICAgCisgICAg
aWYgKE9wdGlvbnM6OnNob3dEaXNhc3NlbWJseSgpKQorICAgICAgICBkYXRhTG9nKCJVbmxpbmtp
bmcgY2FsbCBmcm9tICIsIGNhbGxSZXR1cm5Mb2NhdGlvbiwgIiB0byAiLCBwb2ludGVyRHVtcChy
ZXBhdGNoQnVmZmVyLmNvZGVCbG9jaygpKSwgIlxuIik7CisKICAgICByZXBhdGNoQnVmZmVyLnJl
dmVydEp1bXBSZXBsYWNlbWVudFRvQnJhbmNoUHRyV2l0aFBhdGNoKFJlcGF0Y2hCdWZmZXI6OnN0
YXJ0T2ZCcmFuY2hQdHJXaXRoUGF0Y2hPblJlZ2lzdGVyKGhvdFBhdGhCZWdpbiksIHN0YXRpY19j
YXN0PE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEPihjYWxsZWVHUFIpLCAwKTsKLSAgICBpZiAo
aXNERkcpIHsKLSNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxp
bmsoY2FsbFJldHVybkxvY2F0aW9uLCAoY2FsbFR5cGUgPT0gQ29uc3RydWN0ID8gdm0uZ2V0Q1RJ
U3R1YihsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpIDogdm0uZ2V0Q1RJU3R1YihsaW5rQ2Fs
bFRodW5rR2VuZXJhdG9yKSkuY29kZSgpKTsKLSNlbHNlCi0gICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0jZW5kaWYKLSAgICB9IGVsc2UKLSAgICAgICAgcmVwYXRjaEJ1ZmZl
ci5yZWxpbmsoY2FsbFJldHVybkxvY2F0aW9uLCBjYWxsVHlwZSA9PSBDb25zdHJ1Y3QgPyB2bS5n
ZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpIDogdm0uZ2V0Q1RJ
U3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIHJlcGF0Y2hCdWZmZXIu
cmVsaW5rKAorICAgICAgICBjYWxsUmV0dXJuTG9jYXRpb24sCisgICAgICAgIHZtLmdldENUSVN0
dWIobGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgICAgICAgICAgY2FsbFR5cGUgPT0gQ29uc3Ry
dWN0ID8gQ29kZUZvckNvbnN0cnVjdCA6IENvZGVGb3JDYWxsLAorICAgICAgICAgICAgaXNGVEwg
PyBNdXN0UHJlc2VydmVSZWdpc3RlcnMgOiBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVk
KSkuY29kZSgpKTsKICAgICBoYXNTZWVuU2hvdWxkUmVwYXRjaCA9IGZhbHNlOwogICAgIGNhbGxl
ZS5jbGVhcigpOwogICAgIHN0dWIuY2xlYXIoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAkod29ya2luZyBjb3B5KQpA
QCAtNTUsOCArNTUsOCBAQCBzdHJ1Y3QgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2Vu
CiAgICAgfQogICAgICAgICAKICAgICBDYWxsTGlua0luZm8oKQotICAgICAgICA6IGhhc1NlZW5T
aG91bGRSZXBhdGNoKGZhbHNlKQotICAgICAgICAsIGlzREZHKGZhbHNlKQorICAgICAgICA6IGlz
RlRMKGZhbHNlKQorICAgICAgICAsIGhhc1NlZW5TaG91bGRSZXBhdGNoKGZhbHNlKQogICAgICAg
ICAsIGhhc1NlZW5DbG9zdXJlKGZhbHNlKQogICAgICAgICAsIGNhbGxUeXBlKE5vbmUpCiAgICAg
ewpAQCAtNzksOCArNzksOCBAQCBzdHJ1Y3QgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3
U2VuCiAgICAgSklUV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IGNhbGxlZTsKICAgICBXcml0ZUJh
cnJpZXI8SlNGdW5jdGlvbj4gbGFzdFNlZW5DYWxsZWU7CiAgICAgUmVmUHRyPENsb3N1cmVDYWxs
U3R1YlJvdXRpbmU+IHN0dWI7CisgICAgYm9vbCBpc0ZUTCA6IDE7CiAgICAgYm9vbCBoYXNTZWVu
U2hvdWxkUmVwYXRjaCA6IDE7Ci0gICAgYm9vbCBpc0RGRyA6IDE7CiAgICAgYm9vbCBoYXNTZWVu
Q2xvc3VyZSA6IDE7CiAgICAgdW5zaWduZWQgY2FsbFR5cGUgOiA1OyAvLyBDYWxsVHlwZQogICAg
IHVuc2lnbmVkIGNhbGxlZUdQUiA6IDg7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAx
MywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDEzICsyNiwxNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNhbGxMaW5rU3RhdHVzLmgiCiAKKyNpbmNsdWRlICJDYWxsTGlua0luZm8uaCIK
ICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJERkdKSVRDb2RlLmgiCiAjaW5jbHVk
ZSAiTExJbnRDYWxsTGlua0luZm8uaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIGNvbnN0
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworCiBDYWxsTGlua1N0YXR1czo6Q2FsbExpbmtTdGF0dXMo
SlNWYWx1ZSB2YWx1ZSkKICAgICA6IG1fY2FsbFRhcmdldCh2YWx1ZSkKICAgICAsIG1fZXhlY3V0
YWJsZSgwKQpAQCAtODEsMTIgKzg1LDI0IEBAIEludHJpbnNpYyBDYWxsTGlua1N0YXR1czo6aW50
cmluc2ljRm9yKEMKICAgICByZXR1cm4gbV9leGVjdXRhYmxlLT5pbnRyaW5zaWNGb3Ioa2luZCk7
CiB9CiAKLUNhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KENv
ZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKK0NhbGxMaW5r
U3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KGNvbnN0IENvbmN1cnJlbnRK
SVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRl
Y29kZUluZGV4KQogewogICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKICAgICBVTlVT
RURfUEFSQU0oYnl0ZWNvZGVJbmRleCk7CiAjaWYgRU5BQkxFKExMSU5UKQorICAgIGlmIChwcm9m
aWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRl
Y29kZUluZGV4LCBCYWRGdW5jdGlvbikpKSB7CisgICAgICAgIC8vIFdlIGNvdWxkIGZvcmNlIHRo
aXMgdG8gYmUgYSBjbG9zdXJlIGNhbGwsIGJ1dCBpbnN0ZWFkIHdlJ2xsIGp1c3QgYXNzdW1lIHRo
YXQgaXQKKyAgICAgICAgLy8gdGFrZXMgc2xvdyBwYXRoLgorICAgICAgICByZXR1cm4gdGFrZXNT
bG93UGF0aCgpOworICAgIH0KKyAgICAKKyAgICBWTSYgdm0gPSAqcHJvZmlsZWRCbG9jay0+dm0o
KTsKKyAgICAKICAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSBwcm9maWxlZEJsb2NrLT5p
bnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnl0ZWNvZGVJbmRleDsKKyAgICBPcGNvZGVJRCBvcCA9
IHZtLmludGVycHJldGVyLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvblswXS51Lm9wY29kZSk7Cisg
ICAgaWYgKG9wICE9IG9wX2NhbGwgJiYgb3AgIT0gb3BfY29uc3RydWN0KQorICAgICAgICByZXR1
cm4gQ2FsbExpbmtTdGF0dXMoKTsKKyAgICAKICAgICBMTEludENhbGxMaW5rSW5mbyogY2FsbExp
bmtJbmZvID0gaW5zdHJ1Y3Rpb25bNV0udS5jYWxsTGlua0luZm87CiAgICAgCiAgICAgcmV0dXJu
IENhbGxMaW5rU3RhdHVzKGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuZ2V0KCkpOwpAQCAt
MTAyLDI3ICsxMTgsMTE3IEBAIENhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRl
Rm8KICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CiAgICAgVU5VU0VEX1BBUkFNKGJ5
dGVjb2RlSW5kZXgpOwogI2lmIEVOQUJMRShKSVQpCisgICAgaWYgKHByb2ZpbGVkQmxvY2stPmhh
c0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJh
ZENhY2hlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBE
Rkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KSkK
KyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1
ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkRXhlY3V0YWJsZSkpKQorICAgICAgICByZXR1
cm4gdGFrZXNTbG93UGF0aCgpOworICAgIAogICAgIGlmICghcHJvZmlsZWRCbG9jay0+aGFzQmFz
ZWxpbmVKSVRQcm9maWxpbmcoKSkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJv
ZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxM
SW50KGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7CiAgICAgCiAgICAgaWYg
KHByb2ZpbGVkQmxvY2stPmNvdWxkVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpKQotICAgICAg
ICByZXR1cm4gQ2FsbExpbmtTdGF0dXM6OnRha2VzU2xvd1BhdGgoKTsKKyAgICAgICAgcmV0dXJu
IHRha2VzU2xvd1BhdGgoKTsKICAgICAKICAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9
IHByb2ZpbGVkQmxvY2stPmdldENhbGxMaW5rSW5mbyhieXRlY29kZUluZGV4KTsKKyAgICAKKyAg
ICBDYWxsTGlua1N0YXR1cyByZXN1bHQgPSBjb21wdXRlRm9yKGxvY2tlciwgY2FsbExpbmtJbmZv
KTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQobG9j
a2VyLCBwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KTsKKyAgICAKKyAgICBpZiAocHJvZmls
ZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNv
ZGVJbmRleCwgQmFkRnVuY3Rpb24pKSkKKyAgICAgICAgcmVzdWx0Lm1ha2VDbG9zdXJlQ2FsbCgp
OworICAgIAorICAgIHJldHVybiByZXN1bHQ7CisjZWxzZQorICAgIHJldHVybiBDYWxsTGlua1N0
YXR1cygpOworI2VuZGlmCit9CisKK0NhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21w
dXRlRm9yKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDYWxsTGlua0luZm8mIGNhbGxMaW5r
SW5mbykKK3sKICAgICBpZiAoY2FsbExpbmtJbmZvLnN0dWIpCiAgICAgICAgIHJldHVybiBDYWxs
TGlua1N0YXR1cyhjYWxsTGlua0luZm8uc3R1Yi0+ZXhlY3V0YWJsZSgpLCBjYWxsTGlua0luZm8u
c3R1Yi0+c3RydWN0dXJlKCkpOwogICAgIAogICAgIEpTRnVuY3Rpb24qIHRhcmdldCA9IGNhbGxM
aW5rSW5mby5sYXN0U2VlbkNhbGxlZS5nZXQoKTsKICAgICBpZiAoIXRhcmdldCkKLSAgICAgICAg
cmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7Cisg
ICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1cygpOwogICAgIAogICAgIGlmIChjYWxsTGlua0lu
Zm8uaGFzU2VlbkNsb3N1cmUpCiAgICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1cyh0YXJnZXQt
PmV4ZWN1dGFibGUoKSwgdGFyZ2V0LT5zdHJ1Y3R1cmUoKSk7CiAKICAgICByZXR1cm4gQ2FsbExp
bmtTdGF0dXModGFyZ2V0KTsKLSNlbHNlCi0gICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKCk7Ci0j
ZW5kaWYKK30KKwordm9pZCBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZURGR1N0YXR1c2VzKAorICAg
IENvZGVCbG9jayogZGZnQ29kZUJsb2NrLCBDYWxsTGlua1N0YXR1czo6Q29udGV4dE1hcCYgbWFw
KQoreworI2lmIEVOQUJMRShERkdfSklUKQorICAgIFJFTEVBU0VfQVNTRVJUKGRmZ0NvZGVCbG9j
ay0+aml0VHlwZSgpID09IEpJVENvZGU6OkRGR0pJVCk7CisgICAgQ29kZUJsb2NrKiBiYXNlbGlu
ZUNvZGVCbG9jayA9IGRmZ0NvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKTsKKyAgICBERkc6OkpJVENv
ZGUqIGppdENvZGUgPSBkZmdDb2RlQmxvY2stPmppdENvZGUoKS0+ZGZnKCk7CisgICAgUkVMRUFT
RV9BU1NFUlQoZGZnQ29kZUJsb2NrLT5udW1iZXJPZkNhbGxMaW5rSW5mb3MoKSA8PSBqaXRDb2Rl
LT5zbG93UGF0aENhbGxzLnNpemUoKSk7CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IGRmZ0Nv
ZGVCbG9jay0+bnVtYmVyT2ZDYWxsTGlua0luZm9zKCk7IGktLTspIHsKKyAgICAgICAgQ2FsbExp
bmtJbmZvJiBpbmZvID0gZGZnQ29kZUJsb2NrLT5jYWxsTGlua0luZm8oaSk7CisgICAgICAgIENv
ZGVPcmlnaW4gY29kZU9yaWdpbiA9IGluZm8uY29kZU9yaWdpbjsKKyAgICAgICAgCisgICAgICAg
IGJvb2wgdGFrZVNsb3dQYXRoOworICAgICAgICBib29sIGJhZEZ1bmN0aW9uOworICAgICAgICAK
KyAgICAgICAgLy8gQ2hlY2sgaWYgd2UgaGFkIGFscmVhZHkgcHJldmlvdXNseSBtYWRlIGEgdGVy
cmlibGUgbWlzdGFrZSBpbiB0aGUgRlRMIGZvciB0aGlzCisgICAgICAgIC8vIGNvZGUgb3JpZ2lu
LiBOb3RlIHRoYXQgdGhpcyBpcyBhcHByb3hpbWF0ZSBiZWNhdXNlIHdlIGNvdWxkIGhhdmUgYSBt
b25vdmFyaWFudAorICAgICAgICAvLyBpbmxpbmUgaW4gdGhlIEZUTCB0aGF0IGVuZGVkIHVwIGZh
aWxpbmcuIFdlIHNob3VsZCBmaXggdGhhdCBhdCBzb21lIHBvaW50IGJ5CisgICAgICAgIC8vIGhh
dmluZyBkYXRhIHN0cnVjdHVyZXMgdG8gdHJhY2sgdGhlIGNvbnRleHQgb2YgZnJlcXVlbnQgZXhp
dHMuIFRoaXMgaXMgY3VycmVudGx5CisgICAgICAgIC8vIGNoYWxsZW5naW5nIGJlY2F1c2UgaXQg
d291bGQgcmVxdWlyZSBjcmVhdGluZyBhIENvZGVPcmlnaW4tYmFzZWQgZGF0YWJhc2UgaW4KKyAg
ICAgICAgLy8gYmFzZWxpbmUgQ29kZUJsb2NrcywgYnV0IHRob3NlIENvZGVCbG9ja3MgZG9uJ3Qg
cmVhbGx5IGhhdmUgYSBwbGFjZSB0byBwdXQgdGhlCisgICAgICAgIC8vIElubGluZUNhbGxGcmFt
ZXMuCisgICAgICAgIENvZGVCbG9jayogY3VycmVudEJhc2VsaW5lID0KKyAgICAgICAgICAgIGJh
c2VsaW5lQ29kZUJsb2NrRm9yT3JpZ2luQW5kQmFzZWxpbmVDb2RlQmxvY2soY29kZU9yaWdpbiwg
YmFzZWxpbmVDb2RlQmxvY2spOworICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklU
TG9ja2VyIGxvY2tlcihjdXJyZW50QmFzZWxpbmUtPm1fbG9jayk7CisgICAgICAgICAgICB0YWtl
U2xvd1BhdGggPQorICAgICAgICAgICAgICAgIGN1cnJlbnRCYXNlbGluZS0+aGFzRXhpdFNpdGUo
bG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBC
YWRDYWNoZSwgRXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHx8IGN1cnJlbnRCYXNlbGlu
ZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5i
eXRlY29kZUluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQsIEV4aXRGcm9tRlRMKSkKKyAgICAgICAg
ICAgICAgICB8fCBjdXJyZW50QmFzZWxpbmUtPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVx
dWVudEV4aXRTaXRlKGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgQmFkRXhlY3V0YWJsZSwgRXhp
dEZyb21GVEwpKTsKKyAgICAgICAgICAgIGJhZEZ1bmN0aW9uID0KKyAgICAgICAgICAgICAgICBj
dXJyZW50QmFzZWxpbmUtPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRl
KGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgQmFkRnVuY3Rpb24sIEV4aXRGcm9tRlRMKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKGRmZ0NvZGVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIGlmICh0YWtl
U2xvd1BhdGggfHwgaml0Q29kZS0+c2xvd1BhdGhDYWxsc1tpXSA+PSBPcHRpb25zOjpjb3VsZFRh
a2VTbG93Q2FzZU1pbmltdW1Db3VudCgpKQorICAgICAgICAgICAgICAgIG1hcC5hZGQoaW5mby5j
b2RlT3JpZ2luLCB0YWtlc1Nsb3dQYXRoKCkpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgQ2FsbExpbmtTdGF0dXMgc3RhdHVzID0gY29tcHV0ZUZvcihsb2NrZXIsIGluZm8p
OworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMuaXNTZXQoKSkgeworICAgICAgICAgICAgICAg
ICAgICBpZiAoYmFkRnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMubWFr
ZUNsb3N1cmVDYWxsKCk7CisgICAgICAgICAgICAgICAgICAgIG1hcC5hZGQoaW5mby5jb2RlT3Jp
Z2luLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKyAgICAKKyAgICBpZiAodmVyYm9z
ZSkgeworICAgICAgICBkYXRhTG9nKCJDb250ZXh0IG1hcDpcbiIpOworICAgICAgICBDb250ZXh0
TWFwOjppdGVyYXRvciBpdGVyID0gbWFwLmJlZ2luKCk7CisgICAgICAgIENvbnRleHRNYXA6Oml0
ZXJhdG9yIGVuZCA9IG1hcC5lbmQoKTsKKyAgICAgICAgZm9yICg7IGl0ZXIgIT0gZW5kOyArK2l0
ZXIpIHsKKyAgICAgICAgICAgIGRhdGFMb2coIiAgICAiLCBpdGVyLT5rZXksICI6XG4iKTsKKyAg
ICAgICAgICAgIGRhdGFMb2coIiAgICAgICAgIiwgaXRlci0+dmFsdWUsICJcbiIpOworICAgICAg
ICB9CisgICAgfQorfQorCitDYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZv
cigKKyAgICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwg
Y29uc3QgQ2FsbExpbmtTdGF0dXM6OkNvbnRleHRNYXAmIG1hcCkKK3sKKyAgICBDb250ZXh0TWFw
Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbWFwLmZpbmQoY29kZU9yaWdpbik7CisgICAgaWYgKGl0
ZXIgIT0gbWFwLmVuZCgpKQorICAgICAgICByZXR1cm4gaXRlci0+dmFsdWU7CisgICAgCisgICAg
cmV0dXJuIGNvbXB1dGVGb3IocHJvZmlsZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4
KTsKIH0KIAogdm9pZCBDYWxsTGlua1N0YXR1czo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25z
dApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3Rh
dHVzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9DYWxsTGlua1N0YXR1cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw3ICsyNiw5
IEBACiAjaWZuZGVmIENhbGxMaW5rU3RhdHVzX2gKICNkZWZpbmUgQ2FsbExpbmtTdGF0dXNfaAog
CisjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktp
bmQuaCIKKyNpbmNsdWRlICJDb25jdXJyZW50SklUTG9jay5oIgogI2luY2x1ZGUgIkludHJpbnNp
Yy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKIApAQCAtMzcsNiArMzksNyBAQCBjbGFzcyBF
eGVjdXRhYmxlQmFzZTsKIGNsYXNzIEludGVybmFsRnVuY3Rpb247CiBjbGFzcyBKU0Z1bmN0aW9u
OwogY2xhc3MgU3RydWN0dXJlOworc3RydWN0IENhbGxMaW5rSW5mbzsKIAogY2xhc3MgQ2FsbExp
bmtTdGF0dXMgewogcHVibGljOgpAQCAtNzQsMzEgKzc3LDE5IEBAIHB1YmxpYzoKICAgICAKICAg
ICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqLCB1bnNpZ25lZCBi
eXRlY29kZUluZGV4KTsKICAgICAKLSAgICBDYWxsTGlua1N0YXR1cyYgc2V0SGFzQmFkRnVuY3Rp
b25FeGl0U2l0ZShib29sIGRpZEhhdmVFeGl0U2l0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCgh
bV9pc1Byb3ZlZCk7Ci0gICAgICAgIGlmIChkaWRIYXZlRXhpdFNpdGUpIHsKLSAgICAgICAgICAg
IC8vIFR1cm4gdGhpcyBpbnRvIGEgY2xvc3VyZSBjYWxsLgotICAgICAgICAgICAgbV9jYWxsVGFy
Z2V0ID0gSlNWYWx1ZSgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9
CisgICAgLy8gQ29tcHV0ZXMgdGhlIHN0YXR1cyBhc3N1bWluZyB0aGF0IHdlIG5ldmVyIHRvb2sg
c2xvdyBwYXRoIGFuZCBuZXZlciBwcmV2aW91c2x5CisgICAgLy8gZXhpdGVkLgorICAgIHN0YXRp
YyBDYWxsTGlua1N0YXR1cyBjb21wdXRlRm9yKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBD
YWxsTGlua0luZm8mKTsKKyAgICAKKyAgICB0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgQ2Fs
bExpbmtTdGF0dXMsIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g+IENvbnRleHRNYXA7CisgICAg
CisgICAgLy8gQ29tcHV0ZXMgYWxsIG9mIHRoZSBzdGF0dXNlcyBvZiB0aGUgREZHIGNvZGUgYmxv
Y2suIERvZXNuJ3QgaW5jbHVkZSBzdGF0dXNlcyB0aGF0IGhhZAorICAgIC8vIG5vIGluZm9ybWF0
aW9uLiBDdXJyZW50bHkgd2UgdXNlIHRoaXMgd2hlbiBjb21waWxpbmcgRlRMIGNvZGUsIHRvIGVu
YWJsZSBwb2x5dmFyaWFudAorICAgIC8vIGlubGluaW5nLgorICAgIHN0YXRpYyB2b2lkIGNvbXB1
dGVERkdTdGF0dXNlcyhDb2RlQmxvY2sqIGRmZ0NvZGVCbG9jaywgQ29udGV4dE1hcCYpOwogICAg
IAotICAgIENhbGxMaW5rU3RhdHVzJiBzZXRIYXNCYWRDYWNoZUV4aXRTaXRlKGJvb2wgZGlkSGF2
ZUV4aXRTaXRlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2lzUHJvdmVkKTsKLSAgICAgICAg
aWYgKGRpZEhhdmVFeGl0U2l0ZSkKLSAgICAgICAgICAgICp0aGlzID0gdGFrZXNTbG93UGF0aCgp
OwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotICAgIAotICAgIENhbGxMaW5rU3RhdHVz
JiBzZXRIYXNCYWRFeGVjdXRhYmxlRXhpdFNpdGUoYm9vbCBkaWRIYXZlRXhpdFNpdGUpCi0gICAg
ewotICAgICAgICBBU1NFUlQoIW1faXNQcm92ZWQpOwotICAgICAgICBpZiAoZGlkSGF2ZUV4aXRT
aXRlKQotICAgICAgICAgICAgKnRoaXMgPSB0YWtlc1Nsb3dQYXRoKCk7Ci0gICAgICAgIHJldHVy
biAqdGhpczsKLSAgICB9CisgICAgLy8gSGVscGVyIHRoYXQgZmlyc3QgY29uc3VsdHMgdGhlIENv
bnRleHRNYXAgYW5kIHRoZW4gZG9lcyBjb21wdXRlRm9yKCkuCisgICAgc3RhdGljIENhbGxMaW5r
U3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29uc3QgQ29udGV4dE1h
cCYpOwogICAgIAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVybiBtX2NhbGxUYXJnZXQg
fHwgbV9leGVjdXRhYmxlIHx8IG1fY291bGRUYWtlU2xvd1BhdGg7IH0KICAgICAKQEAgLTExOSw3
ICsxMTAsMTQgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0Owog
ICAgIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZyb21MTElu
dChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KTsKKyAgICB2b2lkIG1ha2VDbG9z
dXJlQ2FsbCgpCisgICAgeworICAgICAgICBBU1NFUlQoIW1faXNQcm92ZWQpOworICAgICAgICAv
LyBUdXJuIHRoaXMgaW50byBhIGNsb3N1cmUgY2FsbC4KKyAgICAgICAgbV9jYWxsVGFyZ2V0ID0g
SlNWYWx1ZSgpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0
ZUZyb21MTEludChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWdu
ZWQgYnl0ZWNvZGVJbmRleCk7CiAgICAgCiAgICAgSlNWYWx1ZSBtX2NhbGxUYXJnZXQ7CiAgICAg
RXhlY3V0YWJsZUJhc2UqIG1fZXhlY3V0YWJsZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTI5LDEwICsxMjksMTUgQEAgQ1N0cmluZyBDb2RlQmxvY2s6OnNvdXJjZUNvZGVPbk9uZUxpbmUo
KQogCiB2b2lkIENvZGVCbG9jazo6ZHVtcEFzc3VtaW5nSklUVHlwZShQcmludFN0cmVhbSYgb3V0
LCBKSVRDb2RlOjpKSVRUeXBlIGppdFR5cGUpIGNvbnN0CiB7CisgICAgb3V0LnByaW50KGluZmVy
cmVkTmFtZSgpLCAiIyIpOwogICAgIGlmIChoYXNIYXNoKCkgfHwgaXNTYWZlVG9Db21wdXRlSGFz
aCgpKQotICAgICAgICBvdXQucHJpbnQoaW5mZXJyZWROYW1lKCksICIjIiwgaGFzaCgpLCAiOlsi
LCBSYXdQb2ludGVyKHRoaXMpLCAiLT4iLCBSYXdQb2ludGVyKG93bmVyRXhlY3V0YWJsZSgpKSwg
IiwgIiwgaml0VHlwZSwgY29kZVR5cGUoKSk7CisgICAgICAgIG91dC5wcmludChoYXNoKCkpOwog
ICAgIGVsc2UKLSAgICAgICAgb3V0LnByaW50KGluZmVycmVkTmFtZSgpLCAiIzxuby1oYXNoPjpb
IiwgUmF3UG9pbnRlcih0aGlzKSwgIi0+IiwgUmF3UG9pbnRlcihvd25lckV4ZWN1dGFibGUoKSks
ICIsICIsIGppdFR5cGUsIGNvZGVUeXBlKCkpOworICAgICAgICBvdXQucHJpbnQoIjxuby1oYXNo
PiIpOworICAgIG91dC5wcmludCgiOlsiLCBSYXdQb2ludGVyKHRoaXMpLCAiLT4iKTsKKyAgICBp
ZiAoISFtX2FsdGVybmF0aXZlKQorICAgICAgICBvdXQucHJpbnQoUmF3UG9pbnRlcihtX2FsdGVy
bmF0aXZlLmdldCgpKSwgIi0+Iik7CisgICAgb3V0LnByaW50KFJhd1BvaW50ZXIob3duZXJFeGVj
dXRhYmxlKCkpLCAiLCAiLCBqaXRUeXBlLCBjb2RlVHlwZSgpKTsKIAogICAgIGlmIChjb2RlVHlw
ZSgpID09IEZ1bmN0aW9uQ29kZSkKICAgICAgICAgb3V0LnByaW50KHNwZWNpYWxpemF0aW9uS2lu
ZCgpKTsKQEAgLTE0Myw2ICsxNDgsMTAgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBBc3N1bWluZ0pJ
VFR5cGUoUHJpbgogICAgICAgICBvdXQucHJpbnQoIiAoTmV2ZXJJbmxpbmUpIik7CiAgICAgaWYg
KG93bmVyRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkKICAgICAgICAgb3V0LnByaW50KCIg
KFN0cmljdE1vZGUpIik7CisgICAgaWYgKHRoaXMtPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNl
bGluZUpJVCAmJiBtX2RpZEZhaWxGVExDb21waWxhdGlvbikKKyAgICAgICAgb3V0LnByaW50KCIg
KEZUTEZhaWwpIik7CisgICAgaWYgKHRoaXMtPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGlu
ZUpJVCAmJiBtX2hhc0JlZW5Db21waWxlZFdpdGhGVEwpCisgICAgICAgIG91dC5wcmludCgiIChI
YWRGVExSZXBsYWNlbWVudCkiKTsKICAgICBvdXQucHJpbnQoIl0iKTsKIH0KIApAQCAtNTI2LDEy
ICs1MzUsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAg
b3V0LnByaW50ZigiXG4iKTsKICAgICAKICAgICBTdHViSW5mb01hcCBzdHViSW5mb3M7Ci0jaWYg
RU5BQkxFKEpJVCkKLSAgICB7Ci0gICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1f
bG9jayk7Ci0gICAgICAgIGdldFN0dWJJbmZvTWFwKGxvY2tlciwgc3R1YkluZm9zKTsKLSAgICB9
Ci0jZW5kaWYKKyAgICBnZXRTdHViSW5mb01hcChzdHViSW5mb3MpOwogICAgIAogICAgIGNvbnN0
IEluc3RydWN0aW9uKiBiZWdpbiA9IGluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgY29uc3Qg
SW5zdHJ1Y3Rpb24qIGVuZCA9IGluc3RydWN0aW9ucygpLmVuZCgpOwpAQCAtMTQ2OSw2ICsxNDcz
LDcgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soQ29weVBhcnNlZEJsb2NrVGFnLAogICAgICwgbV9p
c0NvbnN0cnVjdG9yKG90aGVyLm1faXNDb25zdHJ1Y3RvcikKICAgICAsIG1fc2hvdWxkQWx3YXlz
QmVJbmxpbmVkKHRydWUpCiAgICAgLCBtX2RpZEZhaWxGVExDb21waWxhdGlvbihmYWxzZSkKKyAg
ICAsIG1faGFzQmVlbkNvbXBpbGVkV2l0aEZUTChmYWxzZSkKICAgICAsIG1fdW5saW5rZWRDb2Rl
KCpvdGhlci5tX3ZtLCBvdGhlci5tX293bmVyRXhlY3V0YWJsZS5nZXQoKSwgb3RoZXIubV91bmxp
bmtlZENvZGUuZ2V0KCkpCiAgICAgLCBtX3N0ZXBwaW5nTW9kZShTdGVwcGluZ01vZGVEaXNhYmxl
ZCkKICAgICAsIG1fbnVtQnJlYWtwb2ludHMoMCkKQEAgLTE1MjUsNiArMTUzMCw3IEBAIENvZGVC
bG9jazo6Q29kZUJsb2NrKFNjcmlwdEV4ZWN1dGFibGUqIG8KICAgICAsIG1faXNDb25zdHJ1Y3Rv
cih1bmxpbmtlZENvZGVCbG9jay0+aXNDb25zdHJ1Y3RvcigpKQogICAgICwgbV9zaG91bGRBbHdh
eXNCZUlubGluZWQodHJ1ZSkKICAgICAsIG1fZGlkRmFpbEZUTENvbXBpbGF0aW9uKGZhbHNlKQor
ICAgICwgbV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMKGZhbHNlKQogICAgICwgbV91bmxpbmtlZENv
ZGUobV9nbG9iYWxPYmplY3QtPnZtKCksIG93bmVyRXhlY3V0YWJsZSwgdW5saW5rZWRDb2RlQmxv
Y2spCiAgICAgLCBtX3N0ZXBwaW5nTW9kZShTdGVwcGluZ01vZGVEaXNhYmxlZCkKICAgICAsIG1f
bnVtQnJlYWtwb2ludHMoMCkKQEAgLTE4NTQsMjMgKzE4NjAsMTMgQEAgQ29kZUJsb2NrOjpDb2Rl
QmxvY2soU2NyaXB0RXhlY3V0YWJsZSogbwogCiAgICAgLy8gSWYgdGhlIGNvbmN1cnJlbnQgdGhy
ZWFkIHdpbGwgd2FudCB0aGUgY29kZSBibG9jaydzIGhhc2gsIHRoZW4gY29tcHV0ZSBpdCBoZXJl
CiAgICAgLy8gc3luY2hyb25vdXNseS4KLSAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5
KCkKLSAgICAgICAgfHwgT3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkKLSAgICAgICAgfHwg
T3B0aW9uczo6ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCkKLSAgICAgICAgfHwgT3B0aW9uczo6ZHVt
cEdyYXBoQXRFYWNoUGhhc2UoKQotICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRp
b24oKQotICAgICAgICB8fCBPcHRpb25zOjpsb2dDb21waWxhdGlvbkNoYW5nZXMoKQotICAgICAg
ICB8fCBPcHRpb25zOjp2YWxpZGF0ZUdyYXBoKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRh
dGVHcmFwaEF0RWFjaFBoYXNlKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpCi0g
ICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkKLSAgICAgICAgfHwg
T3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9z
ZUNGQSgpKQorICAgIGlmIChPcHRpb25zOjphbHdheXNDb21wdXRlSGFzaCgpKQogICAgICAgICBo
YXNoKCk7CiAKICAgICBpZiAoT3B0aW9uczo6ZHVtcEdlbmVyYXRlZEJ5dGVjb2RlcygpKQogICAg
ICAgICBkdW1wQnl0ZWNvZGUoKTsKIAorICAgIAogICAgIG1faGVhcC0+bV9jb2RlQmxvY2tzLmFk
ZCh0aGlzKTsKICAgICBtX2hlYXAtPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChzaXplb2YoQ29kZUJs
b2NrKSArIG1faW5zdHJ1Y3Rpb25zLnNpemUoKSAqIHNpemVvZihJbnN0cnVjdGlvbikpOwogfQpA
QCAtMjMzNCwxNiArMjMzMCwyNiBAQCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlv
bmFsbHkoCiAjZW5kaWYKIH0KIAordm9pZCBDb2RlQmxvY2s6OmdldFN0dWJJbmZvTWFwKGNvbnN0
IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01hcCYgcmVzdWx0KQorewogI2lmIEVOQUJM
RShKSVQpCi1TdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRTdHViSW5mbygpCisgICAg
dG9IYXNoTWFwKG1fc3R1YkluZm9zLCBnZXRTdHJ1Y3R1cmVTdHViSW5mb0NvZGVPcmlnaW4sIHJl
c3VsdCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOworI2VuZGlmCit9CisKK3Zv
aWQgQ29kZUJsb2NrOjpnZXRTdHViSW5mb01hcChTdHViSW5mb01hcCYgcmVzdWx0KQogewogICAg
IENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgcmV0dXJuIG1fc3R1Yklu
Zm9zLmFkZCgpOworICAgIGdldFN0dWJJbmZvTWFwKGxvY2tlciwgcmVzdWx0KTsKIH0KIAotdm9p
ZCBDb2RlQmxvY2s6OmdldFN0dWJJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBT
dHViSW5mb01hcCYgcmVzdWx0KQorI2lmIEVOQUJMRShKSVQpCitTdHJ1Y3R1cmVTdHViSW5mbyog
Q29kZUJsb2NrOjphZGRTdHViSW5mbygpCiB7Ci0gICAgdG9IYXNoTWFwKG1fc3R1YkluZm9zLCBn
ZXRTdHJ1Y3R1cmVTdHViSW5mb0NvZGVPcmlnaW4sIHJlc3VsdCk7CisgICAgQ29uY3VycmVudEpJ
VExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICByZXR1cm4gbV9zdHViSW5mb3MuYWRkKCk7CiB9
CiAKIHZvaWQgQ29kZUJsb2NrOjpyZXNldFN0dWIoU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZv
KQpAQCAtMjg5OSw2ICsyOTA1LDExIEBAIHZvaWQgQ29kZUJsb2NrOjpjb3VudFJlb3B0aW1pemF0
aW9uKCkKIHVuc2lnbmVkIENvZGVCbG9jazo6bnVtYmVyT2ZERkdDb21waWxlcygpCiB7CiAgICAg
QVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUoKSkpOworICAgIGlmIChPcHRp
b25zOjp0ZXN0VGhlRlRMKCkpIHsKKyAgICAgICAgaWYgKG1fZGlkRmFpbEZUTENvbXBpbGF0aW9u
KQorICAgICAgICAgICAgcmV0dXJuIDEwMDAwMDA7CisgICAgICAgIHJldHVybiAobV9oYXNCZWVu
Q29tcGlsZWRXaXRoRlRMID8gMSA6IDApICsgbV9yZW9wdGltaXphdGlvblJldHJ5Q291bnRlcjsK
KyAgICB9CiAgICAgcmV0dXJuIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQocmVwbGFjZW1lbnQo
KS0+aml0VHlwZSgpKSA/IDEgOiAwKSArIG1fcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXI7CiB9
CiAKQEAgLTMwMTAsNyArMzAyMSw3IEBAIGludDMyX3QgQ29kZUJsb2NrOjphZGp1c3RlZENvdW50
ZXJWYWx1ZSgKIGJvb2wgQ29kZUJsb2NrOjpjaGVja0lmT3B0aW1pemF0aW9uVGhyZXNob2xkUmVh
Y2hlZCgpCiB7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgaWYgKERGRzo6V29ya2xpc3QqIHdv
cmtsaXN0ID0gbV92bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAgICBpZiAoREZHOjpXb3JrbGlzdCog
d29ya2xpc3QgPSBERkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKSkgewogICAg
ICAgICBpZiAod29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUoREZHOjpDb21waWxhdGlvbktleSh0
aGlzLCBERkc6OkRGR01vZGUpKQogICAgICAgICAgICAgPT0gREZHOjpXb3JrbGlzdDo6Q29tcGls
ZWQpIHsKICAgICAgICAgICAgIG9wdGltaXplTmV4dEludm9jYXRpb24oKTsKQEAgLTMzNDEsNiAr
MzM1MiwxMSBAQCB1bnNpZ25lZCBDb2RlQmxvY2s6OmZyYW1lUmVnaXN0ZXJDb3VudCgpCiAgICAg
fQogfQogCitpbnQgQ29kZUJsb2NrOjpzdGFja1BvaW50ZXJPZmZzZXQoKQoreworICAgIHJldHVy
biB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVyQ291bnQoKSAtIDEpLm9mZnNl
dCgpOworfQorCiBzaXplX3QgQ29kZUJsb2NrOjpwcmVkaWN0ZWRNYWNoaW5lQ29kZVNpemUoKQog
ewogICAgIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgZnJvbSBDb2RlQmxvY2s6OkNvZGVCbG9jayBi
ZWZvcmUgZWl0aGVyIG1fdm0gb3IgdGhlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBleHByZXNzaW9uUmFuZ2VGb3JCeXRlY29kZU9mZnNldCh1
bnNpZ25lZCBieXRlY29kZU9mZnNldCwgaW50JiBkaXZvdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCYgc3RhcnRPZmZzZXQsIGludCYgZW5kT2Zmc2V0LCB1
bnNpZ25lZCYgbGluZSwgdW5zaWduZWQmIGNvbHVtbik7CiAKKyAgICB2b2lkIGdldFN0dWJJbmZv
TWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01hcCYgcmVzdWx0KTsKKyAg
ICB2b2lkIGdldFN0dWJJbmZvTWFwKFN0dWJJbmZvTWFwJiByZXN1bHQpOworCiAjaWYgRU5BQkxF
KEpJVCkKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1YkluZm8oKTsKICAgICBCYWc8U3Ry
dWN0dXJlU3R1YkluZm8+OjppdGVyYXRvciBiZWdpbigpIHsgcmV0dXJuIG1fc3R1YkluZm9zLmJl
Z2luKCk7IH0KQEAgLTE4Miw4ICsxODUsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0U3R1
YihTdHJ1Y3R1cmVTdHViSW5mbyYpOwogICAgIAotICAgIHZvaWQgZ2V0U3R1YkluZm9NYXAoY29u
c3QgQ29uY3VycmVudEpJVExvY2tlciYsIFN0dWJJbmZvTWFwJiByZXN1bHQpOwotCiAgICAgQnlW
YWxJbmZvJiBnZXRCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKICAgICB7CiAgICAg
ICAgIHJldHVybiAqKGJpbmFyeVNlYXJjaDxCeVZhbEluZm8sIHVuc2lnbmVkPihtX2J5VmFsSW5m
b3MsIG1fYnlWYWxJbmZvcy5zaXplKCksIGJ5dGVjb2RlSW5kZXgsIGdldEJ5VmFsSW5mb0J5dGVj
b2RlSW5kZXgpKTsKQEAgLTI1NiwxNyArMjU3LDE1IEBAIHB1YmxpYzoKICAgICAvLyBFeGFjdGx5
IGVxdWl2YWxlbnQgdG8gY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+bmV3UmVwbGFjZW1l
bnRDb2RlQmxvY2tGb3IoY29kZUJsb2NrLT5zcGVjaWFsaXphdGlvbktpbmQoKSkKICAgICBQYXNz
UmVmUHRyPENvZGVCbG9jaz4gbmV3UmVwbGFjZW1lbnQoKTsKICAgICAKLSAgICB2b2lkIHNldEpJ
VENvZGUoUGFzc1JlZlB0cjxKSVRDb2RlPiBjb2RlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29k
ZVdpdGhBcml0eUNoZWNrKQorICAgIHZvaWQgc2V0SklUQ29kZShQYXNzUmVmUHRyPEpJVENvZGU+
IGNvZGUpCiAgICAgewogICAgICAgICBBU1NFUlQobV9oZWFwLT5pc0RlZmVycmVkKCkpOwogICAg
ICAgICBtX2hlYXAtPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChjb2RlLT5zaXplKCkpOwogICAgICAg
ICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBXVEY6OnN0b3Jl
U3RvcmVGZW5jZSgpOyAvLyBUaGlzIGlzIHByb2JhYmx5IG5vdCBuZWVkZWQgYmVjYXVzZSB0aGUg
bG9jayB3aWxsIGFsc28gZG8gc29tZXRoaW5nIHNpbWlsYXIsIGJ1dCBpdCdzIGdvb2QgdG8gYmUg
cGFyYW5vaWQuCiAgICAgICAgIG1faml0Q29kZSA9IGNvZGU7Ci0gICAgICAgIG1faml0Q29kZVdp
dGhBcml0eUNoZWNrID0gY29kZVdpdGhBcml0eUNoZWNrOwogICAgIH0KICAgICBQYXNzUmVmUHRy
PEpJVENvZGU+IGppdENvZGUoKSB7IHJldHVybiBtX2ppdENvZGU7IH0KLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgaml0Q29kZVdpdGhBcml0eUNoZWNrKCkgeyByZXR1cm4gbV9qaXRDb2RlV2l0
aEFyaXR5Q2hlY2s7IH0KICAgICBKSVRDb2RlOjpKSVRUeXBlIGppdFR5cGUoKSBjb25zdAogICAg
IHsKICAgICAgICAgSklUQ29kZSogaml0Q29kZSA9IG1faml0Q29kZS5nZXQoKTsKQEAgLTQ4OSw4
ICs0ODgsOCBAQCBwdWJsaWM6CiAgICAgUmFyZUNhc2VQcm9maWxlKiBzcGVjaWFsRmFzdENhc2VQ
cm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQogICAgIHsKICAgICAg
ICAgcmV0dXJuIHRyeUJpbmFyeVNlYXJjaDxSYXJlQ2FzZVByb2ZpbGUsIGludD4oCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3BlY2lhbEZh
c3RDYXNlUHJvZmlsZXMsIG1fc3BlY2lhbEZhc3RDYXNlUHJvZmlsZXMuc2l6ZSgpLCBieXRlY29k
ZU9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQpOworICAgICAgICAgICAgbV9z
cGVjaWFsRmFzdENhc2VQcm9maWxlcywgbV9zcGVjaWFsRmFzdENhc2VQcm9maWxlcy5zaXplKCks
IGJ5dGVjb2RlT2Zmc2V0LAorICAgICAgICAgICAgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVP
ZmZzZXQpOwogICAgIH0KIAogICAgIGJvb2wgbGlrZWx5VG9UYWtlU3BlY2lhbEZhc3RDYXNlKGlu
dCBieXRlY29kZU9mZnNldCkKQEAgLTU3NiwxMSArNTc1LDE1IEBAIHB1YmxpYzoKICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgcmV0dXJuIG1fZXhp
dFByb2ZpbGUuYWRkKGxvY2tlciwgc2l0ZSk7CiAgICAgfQotICAgICAgICAKKyAgICAgCisgICAg
Ym9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGNvbnN0
IERGRzo6RnJlcXVlbnRFeGl0U2l0ZSYgc2l0ZSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBtX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKGxvY2tlciwgc2l0ZSk7CisgICAgfQogICAgIGJv
b2wgaGFzRXhpdFNpdGUoY29uc3QgREZHOjpGcmVxdWVudEV4aXRTaXRlJiBzaXRlKSBjb25zdAog
ICAgIHsKICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICAg
ICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobG9ja2VyLCBzaXRlKTsKKyAgICAg
ICAgcmV0dXJuIGhhc0V4aXRTaXRlKGxvY2tlciwgc2l0ZSk7CiAgICAgfQogCiAgICAgREZHOjpF
eGl0UHJvZmlsZSYgZXhpdFByb2ZpbGUoKSB7IHJldHVybiBtX2V4aXRQcm9maWxlOyB9CkBAIC02
NzksOSArNjgyLDE5IEBAIHB1YmxpYzoKIAogICAgIEJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcyYg
bGl2ZW5lc3NBbmFseXNpcygpCiAgICAgewotICAgICAgICBpZiAoIW1fbGl2ZW5lc3NBbmFseXNp
cykKLSAgICAgICAgICAgIG1fbGl2ZW5lc3NBbmFseXNpcyA9IHN0ZDo6bWFrZV91bmlxdWU8Qnl0
ZWNvZGVMaXZlbmVzc0FuYWx5c2lzPih0aGlzKTsKLSAgICAgICAgcmV0dXJuICptX2xpdmVuZXNz
QW5hbHlzaXM7CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKG1fbG9jayk7CisgICAgICAgICAgICBpZiAoISFtX2xpdmVuZXNzQW5hbHlzaXMpCisgICAg
ICAgICAgICAgICAgcmV0dXJuICptX2xpdmVuZXNzQW5hbHlzaXM7CisgICAgICAgIH0KKyAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPEJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcz4gYW5hbHlzaXMgPQor
ICAgICAgICAgICAgc3RkOjptYWtlX3VuaXF1ZTxCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXM+KHRo
aXMpOworICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlciht
X2xvY2spOworICAgICAgICAgICAgaWYgKCFtX2xpdmVuZXNzQW5hbHlzaXMpCisgICAgICAgICAg
ICAgICAgbV9saXZlbmVzc0FuYWx5c2lzID0gc3RkOjptb3ZlKGFuYWx5c2lzKTsKKyAgICAgICAg
ICAgIHJldHVybiAqbV9saXZlbmVzc0FuYWx5c2lzOworICAgICAgICB9CiAgICAgfQogICAgIAog
ICAgIHZvaWQgdmFsaWRhdGUoKTsKQEAgLTg2Niw2ICs4NzksNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1cGRhdGVBbGxQcmVkaWN0aW9ucygpOwogCiAgICAgdW5zaWduZWQgZnJhbWVSZWdpc3RlckNv
dW50KCk7CisgICAgaW50IHN0YWNrUG9pbnRlck9mZnNldCgpOwogCiAgICAgYm9vbCBoYXNPcERl
YnVnRm9yTGluZUFuZENvbHVtbih1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1bW4pOwogCkBA
IC04OTEsNyArOTA1LDcgQEAgcHVibGljOgogCiAgICAgaW50IG1fbnVtQ2FsbGVlUmVnaXN0ZXJz
OwogICAgIGludCBtX251bVZhcnM7Ci0gICAgYm9vbCBtX2lzQ29uc3RydWN0b3I7CisgICAgYm9v
bCBtX2lzQ29uc3RydWN0b3IgOiAxOwogICAgIAogICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxs
eSBwdWJsaWM7IGl0J3MgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIGFueW9uZSBkb2luZyBhbnkKICAg
ICAvLyBvZiB0aGUgZm9sbG93aW5nIHRvIGhvbGQgdGhlIGxvY2s6CkBAIC05MTEsMTAgKzkyNSwx
MSBAQCBwdWJsaWM6CiAgICAgLy8gY29uY3VycmVudCBjb21waWxhdGlvbiB0aHJlYWRzIGZpbmlz
aCB3aGF0IHRoZXkncmUgZG9pbmcuCiAgICAgbXV0YWJsZSBDb25jdXJyZW50SklUTG9jayBtX2xv
Y2s7CiAgICAgCi0gICAgYm9vbCBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZDsKLSAgICBib29sIG1f
YWxsVHJhbnNpdGlvbnNIYXZlQmVlbk1hcmtlZDsgLy8gSW5pdGlhbGl6ZWQgYW5kIHVzZWQgb24g
ZXZlcnkgR0MuCisgICAgYm9vbCBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZDsgLy8gTm90IGEgYml0
ZmllbGQgYmVjYXVzZSB0aGUgSklUIHdhbnRzIHRvIHN0b3JlIHRvIGl0LgorICAgIGJvb2wgbV9h
bGxUcmFuc2l0aW9uc0hhdmVCZWVuTWFya2VkIDogMTsgLy8gSW5pdGlhbGl6ZWQgYW5kIHVzZWQg
b24gZXZlcnkgR0MuCiAgICAgCi0gICAgYm9vbCBtX2RpZEZhaWxGVExDb21waWxhdGlvbjsKKyAg
ICBib29sIG1fZGlkRmFpbEZUTENvbXBpbGF0aW9uIDogMTsKKyAgICBib29sIG1faGFzQmVlbkNv
bXBpbGVkV2l0aEZUTCA6IDE7CiAKICAgICAvLyBJbnRlcm5hbCBtZXRob2RzIGZvciB1c2UgYnkg
dmFsaWRhdGlvbiBjb2RlLiBJdCB3b3VsZCBiZSBwcml2YXRlIGlmIGl0IHdhc24ndAogICAgIC8v
IGZvciB0aGUgZmFjdCB0aGF0IHdlIHVzZSBpdCBmcm9tIGFub255bW91cyBuYW1lc3BhY2VzLgpA
QCAtMTA1NCw3ICsxMDY5LDYgQEAgcHJpdmF0ZToKICAgICBTZW50aW5lbExpbmtlZExpc3Q8TExJ
bnRDYWxsTGlua0luZm8sIEJhc2ljUmF3U2VudGluZWxOb2RlPExMSW50Q2FsbExpbmtJbmZvPj4g
bV9pbmNvbWluZ0xMSW50Q2FsbHM7CiAjZW5kaWYKICAgICBSZWZQdHI8SklUQ29kZT4gbV9qaXRD
b2RlOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVXaXRoQXJpdHlDaGVjazsK
ICNpZiBFTkFCTEUoSklUKQogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7
CiAgICAgVmVjdG9yPEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmNwcAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NSw3ICs0NSw2NCBAQCB1bnNpZ25lZCBDb2RlT3JpZ2luOjppbmxpbmVEZXB0
aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlubGluZURlcHRoRm9yQ2FsbEZyYW1lKGlubGluZUNh
bGxGcmFtZSk7CiB9CisKK2Jvb2wgQ29kZU9yaWdpbjo6aXNBcHByb3hpbWF0ZWx5RXF1YWxUbyhj
b25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3QKK3sKKyAgICBDb2RlT3JpZ2luIGEgPSAqdGhp
czsKKyAgICBDb2RlT3JpZ2luIGIgPSBvdGhlcjsKKworICAgIGlmICghYS5pc1NldCgpKQorICAg
ICAgICByZXR1cm4gIWIuaXNTZXQoKTsKKyAgICBpZiAoIWIuaXNTZXQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIAorICAgIGlmIChhLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisg
ICAgICAgIHJldHVybiBiLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CisgICAgaWYgKGIuaXNI
YXNoVGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAg
IGZvciAoOzspIHsKKyAgICAgICAgQVNTRVJUKGEuaXNTZXQoKSk7CisgICAgICAgIEFTU0VSVChi
LmlzU2V0KCkpOworICAgICAgICAKKyAgICAgICAgaWYgKGEuYnl0ZWNvZGVJbmRleCAhPSBiLmJ5
dGVjb2RlSW5kZXgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAg
ICBpZiAoKCEhYS5pbmxpbmVDYWxsRnJhbWUpICE9ICghIWIuaW5saW5lQ2FsbEZyYW1lKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmICghYS5pbmxpbmVD
YWxsRnJhbWUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGlm
IChhLmlubGluZUNhbGxGcmFtZS0+ZXhlY3V0YWJsZSAhPSBiLmlubGluZUNhbGxGcmFtZS0+ZXhl
Y3V0YWJsZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGEg
PSBhLmlubGluZUNhbGxGcmFtZS0+Y2FsbGVyOworICAgICAgICBiID0gYi5pbmxpbmVDYWxsRnJh
bWUtPmNhbGxlcjsKKyAgICB9Cit9CisKK3Vuc2lnbmVkIENvZGVPcmlnaW46OmFwcHJveGltYXRl
SGFzaCgpIGNvbnN0Cit7CisgICAgaWYgKCFpc1NldCgpKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICBpZiAoaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIDE7CiAgICAg
CisgICAgdW5zaWduZWQgcmVzdWx0ID0gMjsKKyAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSAq
dGhpczsKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHJlc3VsdCArPSBjb2RlT3JpZ2luLmJ5dGVj
b2RlSW5kZXg7CisgICAgICAgIAorICAgICAgICBpZiAoIWNvZGVPcmlnaW4uaW5saW5lQ2FsbEZy
YW1lKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIHJlc3Vs
dCArPSBXVEY6OlB0ckhhc2g8SlNDZWxsKj46Omhhc2goY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJh
bWUtPmV4ZWN1dGFibGUuZ2V0KCkpOworICAgICAgICAKKyAgICAgICAgY29kZU9yaWdpbiA9IGNv
ZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7CisgICAgfQorfQorCiBWZWN0b3I8Q29k
ZU9yaWdpbj4gQ29kZU9yaWdpbjo6aW5saW5lU3RhY2soKSBjb25zdAogewogICAgIFZlY3RvcjxD
b2RlT3JpZ2luPiByZXN1bHQoaW5saW5lRGVwdGgoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYzLDcgKzYzLDcgQEAgc3RydWN0IENvZGVPcmlnaW4gewogICAgIAogICAgIENvZGVPcmlnaW4o
V1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICA6IGJ5dGVjb2RlSW5kZXgo
aW52YWxpZEJ5dGVjb2RlSW5kZXgpCi0gICAgICAgICwgaW5saW5lQ2FsbEZyYW1lKGJpdHdpc2Vf
Y2FzdDxJbmxpbmVDYWxsRnJhbWUqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEpKSkKKyAgICAg
ICAgLCBpbmxpbmVDYWxsRnJhbWUoZGVsZXRlZE1hcmtlcigpKQogICAgIHsKICAgICB9CiAgICAg
CkBAIC05NywxNSArOTcsMjcgQEAgc3RydWN0IENvZGVPcmlnaW4gewogICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3Q7CiAgICAgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IENvZGVPcmlnaW4mIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVy
KTsgfQogICAgIAorICAgIC8vIFRoaXMgY2hlY2tzIGlmIHRoZSB0d28gY29kZSBvcmlnaW5zIGNv
cnJlc3BvbmQgdG8gdGhlIHNhbWUgc3RhY2sgdHJhY2Ugc25pcHBldHMsCisgICAgLy8gYnV0IGln
bm9yZSB3aGV0aGVyIHRoZSBJbmxpbmVDYWxsRnJhbWUncyBhcmUgaWRlbnRpY2FsLgorICAgIGJv
b2wgaXNBcHByb3hpbWF0ZWx5RXF1YWxUbyhjb25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3Q7
CisgICAgCisgICAgdW5zaWduZWQgYXBwcm94aW1hdGVIYXNoKCkgY29uc3Q7CisgICAgCiAgICAg
Ly8gR2V0IHRoZSBpbmxpbmUgc3RhY2suIFRoaXMgaXMgc2xvdywgYW5kIGlzIGludGVuZGVkIGZv
ciBkZWJ1Z2dpbmcgb25seS4KICAgICBWZWN0b3I8Q29kZU9yaWdpbj4gaW5saW5lU3RhY2soKSBj
b25zdDsKICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lk
IGR1bXBJbkNvbnRleHQoUHJpbnRTdHJlYW0mLCBEdW1wQ29udGV4dCopIGNvbnN0OworCitwcml2
YXRlOgorICAgIHN0YXRpYyBJbmxpbmVDYWxsRnJhbWUqIGRlbGV0ZWRNYXJrZXIoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmxpbmVDYWxsRnJhbWUqPihzdGF0aWNfY2Fz
dDx1aW50cHRyX3Q+KDEpKTsKKyAgICB9CiB9OwogCiBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsK
LSAgICBWZWN0b3I8VmFsdWVSZWNvdmVyeT4gYXJndW1lbnRzOworICAgIFZlY3RvcjxWYWx1ZVJl
Y292ZXJ5PiBhcmd1bWVudHM7IC8vIEluY2x1ZGVzICd0aGlzJy4KICAgICBXcml0ZUJhcnJpZXI8
U2NyaXB0RXhlY3V0YWJsZT4gZXhlY3V0YWJsZTsKICAgICBWYWx1ZVJlY292ZXJ5IGNhbGxlZVJl
Y292ZXJ5OwogICAgIENvZGVPcmlnaW4gY2FsbGVyOwpAQCAtMTg1LDYgKzE5NywxMiBAQCBzdHJ1
Y3QgQ29kZU9yaWdpbkhhc2ggewogICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVU
b0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKK3N0cnVjdCBDb2RlT3JpZ2luQXBwcm94aW1h
dGVIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBDb2RlT3JpZ2luJiBrZXkp
IHsgcmV0dXJuIGtleS5hcHByb3hpbWF0ZUhhc2goKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFs
KGNvbnN0IENvZGVPcmlnaW4mIGEsIGNvbnN0IENvZGVPcmlnaW4mIGIpIHsgcmV0dXJuIGEuaXNB
cHByb3hpbWF0ZWx5RXF1YWxUbyhiKTsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0Nv
bXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKK307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwog
CiBuYW1lc3BhY2UgV1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9E
RkdFeGl0UHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzcsNiArMzcsOCBAQCBFeGl0UHJvZmlsZTo6fkV4aXRQcm9maWxlKCkgeyB9CiAKIGJvb2wg
RXhpdFByb2ZpbGU6OmFkZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgY29uc3QgRnJlcXVl
bnRFeGl0U2l0ZSYgc2l0ZSkKIHsKKyAgICBBU1NFUlQoc2l0ZS5qaXRUeXBlKCkgIT0gRXhpdEZy
b21Bbnl0aGluZyk7CisgICAgCiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgc2VlbiBhbnkgZnJlcXVl
bnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1dCB0aGlzIHNpdGUKICAgICAvLyBp
bnRvIGl0LgogICAgIGlmICghbV9mcmVxdWVudEV4aXRTaXRlcykgewpAQCAtNzgsNyArODAsNyBA
QCBib29sIEV4aXRQcm9maWxlOjpoYXNFeGl0U2l0ZShjb25zdCBDb25jCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2ZyZXF1ZW50RXhpdFNpdGVz
LT5zaXplKCk7IGktLTspIHsKLSAgICAgICAgaWYgKG1fZnJlcXVlbnRFeGl0U2l0ZXMtPmF0KGkp
ID09IHNpdGUpCisgICAgICAgIGlmIChzaXRlLnN1YnN1bWVzKG1fZnJlcXVlbnRFeGl0U2l0ZXMt
PmF0KGkpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFs
c2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFBy
b2ZpbGUuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0RGR0V4aXRQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNvbmN1cnJlbnRKSVRMb2NrLmgiCiAjaW5j
bHVkZSAiRXhpdEtpbmQuaCIKKyNpbmNsdWRlICJFeGl0aW5nSklUVHlwZS5oIgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KQEAgLTM5LDE4ICs0MCwyMiBAQCBwdWJsaWM6CiAgICAgRnJlcXVlbnRFeGl0U2l0
ZSgpCiAgICAgICAgIDogbV9ieXRlY29kZU9mZnNldCgwKSAvLyAwID0gZW1wdHkgdmFsdWUKICAg
ICAgICAgLCBtX2tpbmQoRXhpdEtpbmRVbnNldCkKKyAgICAgICAgLCBtX2ppdFR5cGUoRXhpdEZy
b21Bbnl0aGluZykKICAgICB7CiAgICAgfQogICAgIAogICAgIEZyZXF1ZW50RXhpdFNpdGUoV1RG
OjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQo
MSkgLy8gMSA9IGRlbGV0ZWQgdmFsdWUKICAgICAgICAgLCBtX2tpbmQoRXhpdEtpbmRVbnNldCkK
KyAgICAgICAgLCBtX2ppdFR5cGUoRXhpdEZyb21Bbnl0aGluZykKICAgICB7CiAgICAgfQogICAg
IAotICAgIGV4cGxpY2l0IEZyZXF1ZW50RXhpdFNpdGUodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQs
IEV4aXRLaW5kIGtpbmQpCisgICAgZXhwbGljaXQgRnJlcXVlbnRFeGl0U2l0ZSgKKyAgICAgICAg
dW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsIEV4aXRLaW5kIGtpbmQsIEV4aXRpbmdKSVRUeXBlIGpp
dFR5cGUgPSBFeGl0RnJvbUFueXRoaW5nKQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQoYnl0
ZWNvZGVPZmZzZXQpCiAgICAgICAgICwgbV9raW5kKGtpbmQpCisgICAgICAgICwgbV9qaXRUeXBl
KGppdFR5cGUpCiAgICAgewogICAgICAgICBpZiAobV9raW5kID09IEFyZ3VtZW50c0VzY2FwZWQp
IHsKICAgICAgICAgICAgIC8vIENvdW50IHRoaXMgb25lIGdsb2JhbGx5LiBJdCBkb2Vzbid0IG1h
dHRlciB3aGVyZSBpbiB0aGUgY29kZSBibG9jayB0aGUgYXJndW1lbnRzIGV4Y2FwZWQ7CkBAIC02
MSw5ICs2NiwxMCBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gVXNlIHRoaXMgY29uc3RydWN0b3Ig
aWYgeW91IHdpc2ggZm9yIHRoZSBleGl0IHNpdGUgdG8gYmUgY291bnRlZCBnbG9iYWxseSB3aXRo
aW4gaXRzCiAgICAgLy8gY29kZSBibG9jay4KLSAgICBleHBsaWNpdCBGcmVxdWVudEV4aXRTaXRl
KEV4aXRLaW5kIGtpbmQpCisgICAgZXhwbGljaXQgRnJlcXVlbnRFeGl0U2l0ZShFeGl0S2luZCBr
aW5kLCBFeGl0aW5nSklUVHlwZSBqaXRUeXBlID0gRXhpdEZyb21Bbnl0aGluZykKICAgICAgICAg
OiBtX2J5dGVjb2RlT2Zmc2V0KDApCiAgICAgICAgICwgbV9raW5kKGtpbmQpCisgICAgICAgICwg
bV9qaXRUeXBlKGppdFR5cGUpCiAgICAgewogICAgIH0KICAgICAKQEAgLTc1LDE2ICs4MSwzNiBA
QCBwdWJsaWM6CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIG90
aGVyKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXQgPT0gb3Ro
ZXIubV9ieXRlY29kZU9mZnNldAotICAgICAgICAgICAgJiYgbV9raW5kID09IG90aGVyLm1fa2lu
ZDsKKyAgICAgICAgICAgICYmIG1fa2luZCA9PSBvdGhlci5tX2tpbmQKKyAgICAgICAgICAgICYm
IG1faml0VHlwZSA9PSBvdGhlci5tX2ppdFR5cGU7CisgICAgfQorICAgIAorICAgIGJvb2wgc3Vi
c3VtZXMoY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAg
ICBpZiAobV9ieXRlY29kZU9mZnNldCAhPSBvdGhlci5tX2J5dGVjb2RlT2Zmc2V0KQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAobV9raW5kICE9IG90aGVyLm1fa2luZCkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKG1faml0VHlwZSA9PSBFeGl0
RnJvbUFueXRoaW5nKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBt
X2ppdFR5cGUgPT0gb3RoZXIubV9qaXRUeXBlOwogICAgIH0KICAgICAKICAgICB1bnNpZ25lZCBo
YXNoKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBXVEY6OmludEhhc2gobV9ieXRlY29k
ZU9mZnNldCkgKyBtX2tpbmQ7CisgICAgICAgIHJldHVybiBXVEY6OmludEhhc2gobV9ieXRlY29k
ZU9mZnNldCkgKyBtX2tpbmQgKyBtX2ppdFR5cGUgKiA3OwogICAgIH0KICAgICAKICAgICB1bnNp
Z25lZCBieXRlY29kZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXQ7IH0K
ICAgICBFeGl0S2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CisgICAgRXhpdGlu
Z0pJVFR5cGUgaml0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1faml0VHlwZTsgfQorICAgIAorICAg
IEZyZXF1ZW50RXhpdFNpdGUgd2l0aEpJVFR5cGUoRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkgY29u
c3QKKyAgICB7CisgICAgICAgIEZyZXF1ZW50RXhpdFNpdGUgcmVzdWx0ID0gKnRoaXM7CisgICAg
ICAgIHJlc3VsdC5tX2ppdFR5cGUgPSBqaXRUeXBlOworICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgIH0KIAogICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAogICAgIHsK
QEAgLTk0LDYgKzEyMCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9ieXRl
Y29kZU9mZnNldDsKICAgICBFeGl0S2luZCBtX2tpbmQ7CisgICAgRXhpdGluZ0pJVFR5cGUgbV9q
aXRUeXBlOwogfTsKIAogc3RydWN0IEZyZXF1ZW50RXhpdFNpdGVIYXNoIHsKQEAgLTE2Niw2ICsx
OTMsMTAgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBGcmVxdWVudEV4
aXRTaXRlJiBzaXRlKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKHNpdGUuaml0VHlwZSgpID09
IEV4aXRGcm9tQW55dGhpbmcpIHsKKyAgICAgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShzaXRl
LndpdGhKSVRUeXBlKEV4aXRGcm9tREZHKSkKKyAgICAgICAgICAgICAgICB8fCBoYXNFeGl0U2l0
ZShzaXRlLndpdGhKSVRUeXBlKEV4aXRGcm9tRlRMKSk7CisgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIG1fZnJlcXVlbnRFeGl0U2l0ZXMuZmluZChzaXRlKSAhPSBtX2ZyZXF1ZW50RXhpdFNpdGVz
LmVuZCgpOwogICAgIH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9FeGl0S2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9FeGl0S2luZC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdEtpbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAotZW51bSBFeGl0S2luZCB7CitlbnVtIEV4aXRLaW5kIDogdWludDhf
dCB7CiAgICAgRXhpdEtpbmRVbnNldCwKICAgICBCYWRUeXBlLCAvLyBXZSBleGl0ZWQgYmVjYXVz
ZSBhIHR5cGUgcHJlZGljdGlvbiB3YXMgd3JvbmcuCiAgICAgQmFkRnVuY3Rpb24sIC8vIFdlIGV4
aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBm
dW5jdGlvbiB3ZSB3b3VsZCBzZWUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvRXhpdGluZ0pJVFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdGluZ0pJVFR5cGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9FeGl0aW5nSklUVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBFeGl0aW5nSklUVHlwZV9oCisjZGVmaW5lIEV4aXRpbmdKSVRUeXBlX2gKKworI2lu
Y2x1ZGUgIkpJVENvZGUuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gRXhpdGluZ0pJVFR5
cGUgOiB1aW50OF90IHsKKyAgICBFeGl0RnJvbUFueXRoaW5nLAorICAgIEV4aXRGcm9tREZHLAor
ICAgIEV4aXRGcm9tRlRMCit9OworCitpbmxpbmUgRXhpdGluZ0pJVFR5cGUgZXhpdGluZ0pJVFR5
cGVGb3IoSklUQ29kZTo6SklUVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAg
IGNhc2UgSklUQ29kZTo6REZHSklUOgorICAgICAgICByZXR1cm4gRXhpdEZyb21ERkc7CisgICAg
Y2FzZSBKSVRDb2RlOjpGVExKSVQ6CisgICAgICAgIHJldHVybiBFeGl0RnJvbUZUTDsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm4gRXhpdEZyb21Bbnl0aGluZzsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQwor
CisjZW5kaWYgLy8gRXhpdGluZ0pJVFR5cGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwg
MjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDYgKzM0LDE0IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Citib29sIEdldEJ5SWRTdGF0dXM6Omhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2Nr
ZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUlu
ZGV4LCBFeGl0aW5nSklUVHlwZSBqaXRUeXBlKQoreworICAgIHJldHVybiBwcm9maWxlZEJsb2Nr
LT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4
LCBCYWRDYWNoZSwgaml0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRT
aXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hl
V2F0Y2hwb2ludCwgaml0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRT
aXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtD
b25zdGFudENhY2hlLCBqaXRUeXBlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhp
dFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkV2Vh
a0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50LCBqaXRUeXBlKSk7Cit9CisKIEdldEJ5SWRTdGF0dXMg
R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ss
IHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICBVTlVTRURf
UEFSQU0ocHJvZmlsZWRCbG9jayk7CkBAIC0xMjAsMTMgKzEyOCwyNyBAQCBHZXRCeUlkU3RhdHVz
IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCiB7CiAgICAgQ29uY3VycmVudEpJVExvY2tlciBs
b2NrZXIocHJvZmlsZWRCbG9jay0+bV9sb2NrKTsKICAgICAKLSAgICBVTlVTRURfUEFSQU0ocHJv
ZmlsZWRCbG9jayk7Ci0gICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwotICAgIFVOVVNF
RF9QQVJBTSh1aWQpOworICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJ
bmZvKAorICAgICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIG1hcC5nZXQoQ29kZU9yaWdpbihi
eXRlY29kZUluZGV4KSksIHVpZCk7CisgICAgCisgICAgaWYgKCFyZXN1bHQudGFrZXNTbG93UGF0
aCgpCisgICAgICAgICYmIChoYXNFeGl0U2l0ZShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGJ5dGVj
b2RlSW5kZXgpCisgICAgICAgICAgICB8fCBwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93
Q2FzZShieXRlY29kZUluZGV4KSkpCisgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRha2Vz
U2xvd1BhdGgsIHRydWUpOworCisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBjb21w
dXRlRnJvbUxMSW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CisgICAgCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21w
dXRlRm9yU3R1YkluZm8oCisgICAgY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9j
ayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLAorICAgIFN0cmlu
Z0ltcGwqIHVpZCkKK3sKICNpZiBFTkFCTEUoSklUKQotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbyA9IG1hcC5nZXQoQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSk7CiAgICAgaWYgKCFz
dHViSW5mbyB8fCAhc3R1YkluZm8tPnNlZW4pCi0gICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxM
SW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CisgICAgICAgIHJldHVybiBH
ZXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24pOwogICAgIAogICAgIGlmIChzdHViSW5mby0+cmVz
ZXRCeUdDKQogICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCB0cnVl
KTsKQEAgLTE1MiwxNiArMTc0LDEyIEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29t
cHV0ZUZvcigKICAgICAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE1ha2VzQ2FsbHMsIHRy
dWUpOwogICAgIH0KICAgICAKLSAgICAvLyBOZXh0IGNoZWNrIGlmIGl0IHRha2VzIHNsb3cgY2Fz
ZSwgaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHRvIGJlIGtpbmQgb2YgY2FyZWZ1bC4KLSAgICBpZiAo
cHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpCi0gICAg
ICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOwotICAgIAogICAg
IC8vIEZpbmFsbHkgZmlndXJlIG91dCBpZiB3ZSBjYW4gZGVyaXZlIGFuIGFjY2VzcyBzdHJhdGVn
eS4KICAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdDsKICAgICByZXN1bHQubV93YXNTZWVuSW5KSVQg
PSB0cnVlOyAvLyBUaGlzIGlzIGludGVyZXN0aW5nIGZvciBieXRlY29kZSBkdW1waW5nIG9ubHku
CiAgICAgc3dpdGNoIChzdHViSW5mby0+YWNjZXNzVHlwZSkgewogICAgIGNhc2UgYWNjZXNzX3Vu
c2V0OgotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBieXRl
Y29kZUluZGV4LCB1aWQpOworICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0
aW9uKTsKICAgICAgICAgCiAgICAgY2FzZSBhY2Nlc3NfZ2V0X2J5X2lkX3NlbGY6IHsKICAgICAg
ICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBzdHViSW5mby0+dS5nZXRCeUlkU2VsZi5iYXNlT2Jq
ZWN0U3RydWN0dXJlLmdldCgpOwpAQCAtMjYyLDExICsyODAsNDAgQEAgR2V0QnlJZFN0YXR1cyBH
ZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiAjZWxz
ZSAvLyBFTkFCTEUoSklUKQotICAgIFVOVVNFRF9QQVJBTShtYXApOworICAgIFVOVVNFRF9QQVJB
TShwcm9maWxlZEJsb2NrKTsKKyAgICBVTlVTRURfUEFSQU0oc3R1YkluZm8pOworICAgIFVOVVNF
RF9QQVJBTSh1aWQpOwogICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24sIGZh
bHNlKTsKICNlbmRpZiAvLyBFTkFCTEUoSklUKQogfQogCitHZXRCeUlkU3RhdHVzIEdldEJ5SWRT
dGF0dXM6OmNvbXB1dGVGb3IoCisgICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBDb2RlQmxv
Y2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVNYXAsCisgICAgU3R1YkluZm9NYXAm
IGRmZ01hcCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBTdHJpbmdJbXBsKiB1aWQpCit7CisgICAg
aWYgKGRmZ0Jsb2NrKSB7CisgICAgICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0OworICAgICAgICB7
CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihkZmdCbG9jay0+bV9sb2Nr
KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbyhsb2NrZXIsIGRmZ0Js
b2NrLCBkZmdNYXAuZ2V0KGNvZGVPcmlnaW4pLCB1aWQpOworICAgICAgICB9CisgICAgCisgICAg
ICAgIGlmIChyZXN1bHQudGFrZXNTbG93UGF0aCgpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2Nr
ZXIocHJvZmlsZWRCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIGlmIChoYXNFeGl0U2l0ZShs
b2NrZXIsIHByb2ZpbGVkQmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgRXhpdEZyb21G
VEwpKQorICAgICAgICAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgs
IHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAocmVzdWx0LmlzU2V0KCkp
CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHJldHVybiBjb21wdXRl
Rm9yKHByb2ZpbGVkQmxvY2ssIGJhc2VsaW5lTWFwLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgs
IHVpZCk7Cit9CisKIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJpbmdJbXBsKiB1aWQpCiB7CiAgICAgLy8gRm9y
IG5vdyB3ZSBvbmx5IGhhbmRsZSB0aGUgc3VwZXIgc2ltcGxlIHNlbGYgYWNjZXNzIGNhc2UuIFdl
IGNvdWxkIGhhbmRsZSB0aGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0dldEJ5SWRTdGF0dXMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjYsNiArMjYsOSBAQAogI2lmbmRlZiBHZXRCeUlkU3RhdHVzX2gKICNkZWZpbmUgR2V0QnlJ
ZFN0YXR1c19oCiAKKyNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCisjaW5jbHVkZSAiQ29uY3VycmVu
dEpJVExvY2suaCIKKyNpbmNsdWRlICJFeGl0aW5nSklUVHlwZS5oIgogI2luY2x1ZGUgIkludGVu
ZGVkU3RydWN0dXJlQ2hhaW4uaCIKICNpbmNsdWRlICJQcm9wZXJ0eU9mZnNldC5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZVNldC5oIgpAQCAtNzQsNiArNzcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqLCBTdHViSW5mb01hcCYsIHVuc2ln
bmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIEdldEJ5SWRT
dGF0dXMgY29tcHV0ZUZvcihWTSYsIFN0cnVjdHVyZSosIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAg
CisgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2VsaW5l
QmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwgU3R1
YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlkKTsKKyAgICAKICAg
ICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICAKICAgICBib29s
IGlzU2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb0luZm9ybWF0aW9uOyB9CkBAIC05
MCw2ICs5NSw4IEBAIHB1YmxpYzoKICAgICBib29sIHdhc1NlZW5JbkpJVCgpIGNvbnN0IHsgcmV0
dXJuIG1fd2FzU2VlbkluSklUOyB9CiAgICAgCiBwcml2YXRlOgorICAgIHN0YXRpYyBib29sIGhh
c0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCB1bnNpZ25l
ZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSA9IEV4aXRGcm9tQW55dGhpbmcpOworICAg
IHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50
SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8qLCBTdHJpbmdJbXBsKiB1
aWQpOwogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVGb3JDaGFpbihHZXRCeUlkU3RhdHVzJiByZXN1
bHQsIENvZGVCbG9jayosIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIEdldEJ5SWRTdGF0
dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBT
dHJpbmdJbXBsKiB1aWQpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0
aXNvbmluZ1dhdGNocG9pbnQuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00OSw3ICs0OSw5IEBAIHZvaWQgUHJvZmlsZWRDb2RlQmxvY2tK
ZXR0aXNvbmluZ1dhdGNocG8KICAgICAKICAgICBpZiAoc291cmNlQmFzZWxpbmVDb2RlQmxvY2sp
IHsKICAgICAgICAgc291cmNlQmFzZWxpbmVDb2RlQmxvY2stPmFkZEZyZXF1ZW50RXhpdFNpdGUo
Ci0gICAgICAgICAgICBERkc6OkZyZXF1ZW50RXhpdFNpdGUobV9jb2RlT3JpZ2luLmJ5dGVjb2Rl
SW5kZXgsIG1fZXhpdEtpbmQpKTsKKyAgICAgICAgICAgIERGRzo6RnJlcXVlbnRFeGl0U2l0ZSgK
KyAgICAgICAgICAgICAgICBtX2NvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgbV9leGl0S2luZCwK
KyAgICAgICAgICAgICAgICBleGl0aW5nSklUVHlwZUZvcihtX2NvZGVCbG9jay0+aml0VHlwZSgp
KSkpOwogICAgIH0KICAgICAKICAgICBtX2NvZGVCbG9jay0+amV0dGlzb24oQ291bnRSZW9wdGlt
aXphdGlvbik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0
YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1
dEJ5SWRTdGF0dXMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM1LDYgKzM1LDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitib29sIFB1dEJ5SWRTdGF0dXM6
Omhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2Nr
KiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSBl
eGl0VHlwZSkKK3sKKyAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2Vy
LCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGUsIGV4aXRUeXBl
KSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZy
ZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50LCBleGl0VHlw
ZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpG
cmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlLCBleGl0
VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZH
OjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlV2F0
Y2hwb2ludCwgZXhpdFR5cGUpKTsKK30KKwogUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpj
b21wdXRlRnJvbUxMSW50KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNv
ZGVJbmRleCwgU3RyaW5nSW1wbCogdWlkKQogewogICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJs
b2NrKTsKQEAgLTg5LDEzICs5NywyNyBAQCBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNv
bXB1dGVGb3IoCiAgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwogICAgIFVOVVNFRF9Q
QVJBTSh1aWQpOwogI2lmIEVOQUJMRShKSVQpCi0gICAgaWYgKHByb2ZpbGVkQmxvY2stPmxpa2Vs
eVRvVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpKQorICAgIGlmIChwcm9maWxlZEJsb2NrLT5s
aWtlbHlUb1Rha2VTbG93Q2FzZShieXRlY29kZUluZGV4KQorICAgICAgICB8fCBoYXNFeGl0U2l0
ZShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpKQogICAgICAgICByZXR1cm4g
UHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsKICAg
ICAKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtYXAuZ2V0KENvZGVPcmlnaW4o
Ynl0ZWNvZGVJbmRleCkpOwotICAgIGlmICghc3R1YkluZm8gfHwgIXN0dWJJbmZvLT5zZWVuKQor
ICAgIFB1dEJ5SWRTdGF0dXMgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKGxvY2tlciwgcHJv
ZmlsZWRCbG9jaywgc3R1YkluZm8sIHVpZCk7CisgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJl
dHVybiBjb21wdXRlRnJvbUxMSW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7
CiAgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKKyNlbHNlIC8vIEVOQUJMRShKSVQpCisgICAgVU5V
U0VEX1BBUkFNKG1hcCk7CisgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwg
MCwgMCwgMCwgaW52YWxpZE9mZnNldCk7CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKK30KKworUHV0
QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3Vy
cmVudEpJVExvY2tlciYsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBTdHJpbmdJbXBsKiB1aWQpCit7CisgICAgaWYgKCFzdHViSW5mbyB8fCAh
c3R1YkluZm8tPnNlZW4pCisgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKCk7CisgICAgCiAg
ICAgaWYgKHN0dWJJbmZvLT5yZXNldEJ5R0MpCiAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVz
KFRha2VzU2xvd1BhdGgsIDAsIDAsIDAsIGludmFsaWRPZmZzZXQpOwogCkBAIC0xNDIsMTAgKzE2
NCwyOCBAQCBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCiAgICAgICAg
IC8vIHdlIGNvdWxkIGRvIGFib3V0IGl0LgogICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhU
YWtlc1Nsb3dQYXRoLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsKICAgICB9Ci0jZWxzZSAvLyBF
TkFCTEUoSklUKQotICAgIFVOVVNFRF9QQVJBTShtYXApOwotICAgIHJldHVybiBQdXRCeUlkU3Rh
dHVzKE5vSW5mb3JtYXRpb24sIDAsIDAsIDAsIGludmFsaWRPZmZzZXQpOwotI2VuZGlmIC8vIEVO
QUJMRShKSVQpCit9CisKK1B1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihD
b2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFw
JiBiYXNlbGluZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2lu
LCBTdHJpbmdJbXBsKiB1aWQpCit7CisgICAgaWYgKGRmZ0Jsb2NrKSB7CisgICAgICAgIHsKKyAg
ICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGJhc2VsaW5lQmxvY2stPm1fbG9j
ayk7CisgICAgICAgICAgICBpZiAoaGFzRXhpdFNpdGUobG9ja2VyLCBiYXNlbGluZUJsb2NrLCBj
b2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEV4aXRGcm9tRlRMKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoKTsKKyAgICAgICAgfQorICAgICAgICAg
ICAgCisgICAgICAgIFB1dEJ5SWRTdGF0dXMgcmVzdWx0OworICAgICAgICB7CisgICAgICAgICAg
ICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihkZmdCbG9jay0+bV9sb2NrKTsKKyAgICAgICAg
ICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbyhsb2NrZXIsIGRmZ0Jsb2NrLCBkZmdNYXAu
Z2V0KGNvZGVPcmlnaW4pLCB1aWQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAo
cmVzdWx0LmlzU2V0KCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAK
KyAgICByZXR1cm4gY29tcHV0ZUZvcihiYXNlbGluZUJsb2NrLCBiYXNlbGluZU1hcCwgY29kZU9y
aWdpbi5ieXRlY29kZUluZGV4LCB1aWQpOwogfQogCiBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0
dXM6OmNvbXB1dGVGb3IoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgU3RyaW5nSW1wbCogdWlkLCBib29sIGlzRGlyZWN0KQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0
YXR1cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFB1dEJ5SWRT
dGF0dXNfaAogI2RlZmluZSBQdXRCeUlkU3RhdHVzX2gKIAorI2luY2x1ZGUgIkV4aXRpbmdKSVRU
eXBlLmgiCiAjaW5jbHVkZSAiSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oIgogI2luY2x1ZGUgIlBy
b3BlcnR5T2Zmc2V0LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKQEAgLTk0LDYg
Kzk1LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29k
ZUJsb2NrKiwgU3R1YkluZm9NYXAmLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBs
KiB1aWQpOwogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoVk0mLCBKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIFN0cmluZ0ltcGwqIHVpZCwgYm9vbCBpc0RpcmVjdCk7CiAg
ICAgCisgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2Vs
aW5lQmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwg
U3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlkKTsKKyAgICAK
ICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICAKICAgICBi
b29sIGlzU2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb0luZm9ybWF0aW9uOyB9CkBA
IC0xMDgsNiArMTExLDggQEAgcHVibGljOgogICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCgpIGNv
bnN0IHsgcmV0dXJuIG1fb2Zmc2V0OyB9CiAgICAgCiBwcml2YXRlOgorICAgIHN0YXRpYyBib29s
IGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCB1bnNp
Z25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSA9IEV4aXRGcm9tQW55dGhpbmcpOwor
ICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8qLCBTdHJpbmdJbXBs
KiB1aWQpOwogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGcm9tTExJbnQoQ29kZUJs
b2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgU3RyaW5nSW1wbCogdWlkKTsKICAgICAKICAg
ICBTdGF0ZSBtX3N0YXRlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0
cnVjdHVyZVNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTZXQuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3
IEBAIHB1YmxpYzoKICAgICAKICAgICBTdHJ1Y3R1cmVTZXQoU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgeworICAgICAgICBBU1NFUlQoc3RydWN0dXJlKTsKICAgICAgICAgbV9zdHJ1Y3R1cmVz
LmFwcGVuZChzdHJ1Y3R1cmUpOwogICAgIH0KICAgICAKQEAgLTU1LDYgKzU2LDcgQEAgcHVibGlj
OgogICAgIAogICAgIHZvaWQgYWRkKFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKKyAgICAg
ICAgQVNTRVJUKHN0cnVjdHVyZSk7CiAgICAgICAgIEFTU0VSVCghY29udGFpbnMoc3RydWN0dXJl
KSk7CiAgICAgICAgIG1fc3RydWN0dXJlcy5hcHBlbmQoc3RydWN0dXJlKTsKICAgICB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1N0cnVjdHVyZVN0dWJJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTIxNiw3ICsyMTYsNiBAQCBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm8gewogCiAgICAgc3Ry
dWN0IHsKICAgICAgICAgaW50OF90IHJlZ2lzdGVyc0ZsdXNoZWQ7Ci0gICAgICAgIGludDhfdCBj
YWxsRnJhbWVSZWdpc3RlcjsKICAgICAgICAgaW50OF90IGJhc2VHUFI7CiAjaWYgVVNFKEpTVkFM
VUUzMl82NCkKICAgICAgICAgaW50OF90IHZhbHVlVGFnR1BSOwpAQCAtMjkwLDcgKzI4OSw3IEBA
IGlubGluZSBDb2RlT3JpZ2luIGdldFN0cnVjdHVyZVN0dWJJbmZvQ28KICAgICByZXR1cm4gc3Ry
dWN0dXJlU3R1YkluZm8uY29kZU9yaWdpbjsKIH0KIAotdHlwZWRlZiBIYXNoTWFwPENvZGVPcmln
aW4sIFN0cnVjdHVyZVN0dWJJbmZvKj4gU3R1YkluZm9NYXA7Cit0eXBlZGVmIEhhc2hNYXA8Q29k
ZU9yaWdpbiwgU3RydWN0dXJlU3R1YkluZm8qLCBDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoPiBT
dHViSW5mb01hcDsKIAogI2Vsc2UKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1ZhbHVlUmVjb3ZlcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MzAsNiArMjMwLDI3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFZpcnR1YWxSZWdpc3Rlciht
X3NvdXJjZS52aXJ0dWFsUmVnKTsKICAgICB9CiAgICAgCisgICAgVmFsdWVSZWNvdmVyeSB3aXRo
TG9jYWxzT2Zmc2V0KGludCBvZmZzZXQpIGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKG1f
dGVjaG5pcXVlKSB7CisgICAgICAgIGNhc2UgRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBj
YXNlIEludDMyRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIERvdWJsZURpc3BsYWNl
ZEluSlNTdGFjazoKKyAgICAgICAgY2FzZSBDZWxsRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAg
ICBjYXNlIEJvb2xlYW5EaXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgSW50NTJEaXNw
bGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgU3RyaWN0SW50NTJEaXNwbGFjZWRJbkpTU3Rh
Y2s6IHsKKyAgICAgICAgICAgIFZhbHVlUmVjb3ZlcnkgcmVzdWx0OworICAgICAgICAgICAgcmVz
dWx0Lm1fdGVjaG5pcXVlID0gbV90ZWNobmlxdWU7CisgICAgICAgICAgICByZXN1bHQubV9zb3Vy
Y2UudmlydHVhbFJlZyA9IG1fc291cmNlLnZpcnR1YWxSZWcgKyBvZmZzZXQ7CisgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKICAg
ICBKU1ZhbHVlIGNvbnN0YW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3RlY2hu
aXF1ZSA9PSBDb25zdGFudCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VmlydHVhbFJlZ2lzdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1ZpcnR1YWxSZWdpc3Rlci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIGludCB0b0FyZ3VtZW50KCkgY29uc3QgeyBBU1NF
UlQoaXNBcmd1bWVudCgpKTsgcmV0dXJuIG9wZXJhbmRUb0FyZ3VtZW50KG1fdmlydHVhbFJlZ2lz
dGVyKTsgfQogICAgIGludCB0b0NvbnN0YW50SW5kZXgoKSBjb25zdCB7IEFTU0VSVChpc0NvbnN0
YW50KCkpOyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXIgLSBzX2ZpcnN0Q29uc3RhbnRSZWdpc3Rl
ckluZGV4OyB9CiAgICAgaW50IG9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lz
dGVyOyB9CisgICAgaW50IG9mZnNldEluQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZpcnR1YWxS
ZWdpc3RlciAqIHNpemVvZihSZWdpc3Rlcik7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBWaXJ0dWFsUmVnaXN0ZXIgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVy
ID09IG90aGVyLm1fdmlydHVhbFJlZ2lzdGVyOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IFZpcnR1YWxSZWdpc3RlciBvdGhlcikgY29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXIg
IT0gb3RoZXIubV92aXJ0dWFsUmVnaXN0ZXI7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYy
OTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKLSNp
bmNsdWRlICJWTUVudHJ5U2NvcGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTMxLDcgKzEzMSwxMCBAQCBBcnJheU1vZGUgQXJyYXlNb2RlOjpmcm9tT2JzZXJ2
ZWQoY29uc3QgCiAgICAgfQogfQogCi1BcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoU3BlY3Vs
YXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVl
LCBOb2RlRmxhZ3MgZmxhZ3MpIGNvbnN0CitBcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoCisg
ICAgR3JhcGgmIGdyYXBoLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sCisgICAgU3BlY3VsYXRlZFR5
cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlLAorICAg
IE5vZGVGbGFncyBmbGFncykgY29uc3QKIHsKICAgICBpZiAoIWJhc2UgfHwgIWluZGV4KSB7CiAg
ICAgICAgIC8vIEl0IGNhbiBiZSB0aGF0IHdlIGhhZCBhIGxlZ2l0aW1hdGUgYXJyYXlNb2RlIGJ1
dCBubyBpbmNvbWluZyBwcmVkaWN0aW9ucy4gVGhhdCdsbApAQCAtMTg2LDcgKzE4OSw3IEBAIEFy
cmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShTcGVjdWxhdGVkVHkKICAgICAgICAgICAgIHJldHVy
biB3aXRoQ29udmVyc2lvbihBcnJheTo6UmFnZUNvbnZlcnQpOwogICAgICAgICByZXR1cm4gKnRo
aXM7CiAgICAgICAgIAotICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6Cisg
ICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczogewogICAgICAgICBiYXNlICY9
IH5TcGVjT3RoZXI7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNTdHJpbmdTcGVjdWxhdGlvbihi
YXNlKSkKQEAgLTE5NSwzNCArMTk4LDQxIEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShT
cGVjdWxhdGVkVHkKICAgICAgICAgaWYgKGlzQXJndW1lbnRzU3BlY3VsYXRpb24oYmFzZSkpCiAg
ICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkFyZ3VtZW50cyk7CiAgICAgICAgIAor
ICAgICAgICBBcnJheU1vZGUgcmVzdWx0OworICAgICAgICBpZiAoZ3JhcGguaGFzRXhpdFNpdGUo
Y29kZU9yaWdpbiwgT3V0T2ZCb3VuZHMpKQorICAgICAgICAgICAgcmVzdWx0ID0gd2l0aFNwZWN1
bGF0aW9uKEFycmF5OjpPdXRPZkJvdW5kcyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJl
c3VsdCA9ICp0aGlzOworICAgICAgICAKICAgICAgICAgaWYgKGlzSW50OEFycmF5U3BlY3VsYXRp
b24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkludDhBcnJheSk7
CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpJbnQ4QXJyYXkpOwog
ICAgICAgICAKICAgICAgICAgaWYgKGlzSW50MTZBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAg
ICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpJbnQxNkFycmF5KTsKKyAgICAgICAgICAg
IHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6OkludDE2QXJyYXkpOwogICAgICAgICAKICAg
ICAgICAgaWYgKGlzSW50MzJBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0
dXJuIHdpdGhUeXBlKEFycmF5OjpJbnQzMkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1
bHQud2l0aFR5cGUoQXJyYXk6OkludDMyQXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlz
VWludDhBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBl
KEFycmF5OjpVaW50OEFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUo
QXJyYXk6OlVpbnQ4QXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWludDhDbGFtcGVk
QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJh
eTo6VWludDhDbGFtcGVkQXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlw
ZShBcnJheTo6VWludDhDbGFtcGVkQXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWlu
dDE2QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShB
cnJheTo6VWludDE2QXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShB
cnJheTo6VWludDE2QXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWludDMyQXJyYXlT
cGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6VWlu
dDMyQXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6VWlu
dDMyQXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzRmxvYXQzMkFycmF5U3BlY3VsYXRp
b24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkZsb2F0MzJBcnJh
eSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpGbG9hdDMyQXJy
YXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzRmxvYXQ2NEFycmF5U3BlY3VsYXRpb24oYmFz
ZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkZsb2F0NjRBcnJheSk7Cisg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpGbG9hdDY0QXJyYXkpOwog
CiAgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkdlbmVyaWMpOworICAgIH0KIAogICAg
IGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAqdGhpczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBcnJheU1vZGUuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjExLDcgKzIx
MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEFycmF5TW9kZSh0eXBlLCBhcnJheUNsYXNz
KCksIHNwZWN1bGF0aW9uKCksIGNvbnZlcnNpb24pOwogICAgIH0KICAgICAKLSAgICBBcnJheU1v
ZGUgcmVmaW5lKFNwZWN1bGF0ZWRUeXBlIGJhc2UsIFNwZWN1bGF0ZWRUeXBlIGluZGV4LCBTcGVj
dWxhdGVkVHlwZSB2YWx1ZSA9IFNwZWNOb25lLCBOb2RlRmxhZ3MgPSAwKSBjb25zdDsKKyAgICBB
cnJheU1vZGUgcmVmaW5lKEdyYXBoJiwgQ29kZU9yaWdpbiwgU3BlY3VsYXRlZFR5cGUgYmFzZSwg
U3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlID0gU3BlY05vbmUsIE5v
ZGVGbGFncyA9IDApIGNvbnN0OwogICAgIAogICAgIGJvb2wgYWxyZWFkeUNoZWNrZWQoR3JhcGgm
LCBOb2RlKiwgQWJzdHJhY3RWYWx1ZSYpIGNvbnN0OwogICAgIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlByZWNpc2VKdW1wVGFyZ2V0cy5oIgogI2luY2x1ZGUgIlB1dEJ5SWRTdGF0dXMu
aCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlN0cmluZ0NvbnN0cnVj
dG9yLmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CkBAIC0xNjAsNyArMTYxLDggQEAgcHJpdmF0ZToKICAgICBib29sIGhhbmRsZU1pbk1h
eChpbnQgcmVzdWx0T3BlcmFuZCwgTm9kZVR5cGUgb3AsIGludCByZWdpc3Rlck9mZnNldCwgaW50
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKTsKICAgICAKICAgICAvLyBIYW5kbGUgY2FsbHMu
IFRoaXMgcmVzb2x2ZXMgaXNzdWVzIHN1cnJvdW5kaW5nIGlubGluaW5nIGFuZCBpbnRyaW5zaWNz
LgotICAgIHZvaWQgaGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBO
b2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CisgICAgdm9pZCBoYW5kbGVDYWxs
KGludCByZXN1bHQsIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCB1bnNpZ25l
ZCBpbnN0cnVjdGlvblNpemUsIGludCBjYWxsZWUsIGludCBhcmdDb3VudCwgaW50IHJlZ2lzdGVy
T2Zmc2V0KTsKKyAgICB2b2lkIGhhbmRsZUNhbGwoSW5zdHJ1Y3Rpb24qIHBjLCBOb2RlVHlwZSBv
cCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKTsKICAgICB2b2lkIGVtaXRGdW5jdGlvbkNo
ZWNrcyhjb25zdCBDYWxsTGlua1N0YXR1cyYsIE5vZGUqIGNhbGxUYXJnZXQsIGludCByZWdpc3Rl
ck9mZnNldCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CiAgICAgdm9pZCBlbWl0QXJndW1lbnRQ
aGFudG9tcyhpbnQgcmVnaXN0ZXJPZmZzZXQsIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhp
cywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CiAgICAgLy8gSGFuZGxlIGlubGluaW5nLiBSZXR1
cm4gdHJ1ZSBpZiBpdCBzdWNjZWVkZWQsIGZhbHNlIGlmIHdlIG5lZWQgdG8gcGxhbnQgYSBjYWxs
LgpAQCAtNzczLDIyICs3NzUsMjEgQEAgcHJpdmF0ZToKICAgICAgICAgbV9udW1QYXNzZWRWYXJB
cmdzKys7CiAgICAgfQogICAgIAotICAgIE5vZGUqIGFkZENhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiwgTm9kZVR5cGUgb3ApCisgICAgTm9kZSogYWRkQ2FsbChpbnQgcmVzdWx0
LCBOb2RlVHlwZSBvcCwgaW50IGNhbGxlZSwgaW50IGFyZ0NvdW50LCBpbnQgcmVnaXN0ZXJPZmZz
ZXQpCiAgICAgewogICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGlj
dGlvbigpOwogICAgICAgICAKLSAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KFZpcnR1YWxSZWdp
c3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSkpOwotICAgICAgICBpbnQgYXJn
Q291bnQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgICAgICBpZiAoSlNT
dGFjazo6VGhpc0FyZ3VtZW50ICsgKHVuc2lnbmVkKWFyZ0NvdW50ID4gbV9wYXJhbWV0ZXJTbG90
cykKLSAgICAgICAgICAgIG1fcGFyYW1ldGVyU2xvdHMgPSBKU1N0YWNrOjpUaGlzQXJndW1lbnQg
KyBhcmdDb3VudDsKKyAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3Rlcihj
YWxsZWUpKSk7CisgICAgICAgIHNpemVfdCBwYXJhbWV0ZXJTbG90cyA9IEpTU3RhY2s6OkNhbGxG
cmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSArIGFyZ0NvdW50
OworICAgICAgICBpZiAocGFyYW1ldGVyU2xvdHMgPiBtX3BhcmFtZXRlclNsb3RzKQorICAgICAg
ICAgICAgbV9wYXJhbWV0ZXJTbG90cyA9IHBhcmFtZXRlclNsb3RzOwogCi0gICAgICAgIGludCBy
ZWdpc3Rlck9mZnNldCA9IC1jdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwogICAgICAg
ICBpbnQgZHVtbXlUaGlzQXJndW1lbnQgPSBvcCA9PSBDYWxsID8gMCA6IDE7CiAgICAgICAgIGZv
ciAoaW50IGkgPSAwICsgZHVtbXlUaGlzQXJndW1lbnQ7IGkgPCBhcmdDb3VudDsgKytpKQogICAg
ICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGks
IHJlZ2lzdGVyT2Zmc2V0KSkpOwogCiAgICAgICAgIE5vZGUqIGNhbGwgPSBhZGRUb0dyYXBoKE5v
ZGU6OlZhckFyZywgb3AsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pKTsKLSAgICAgICAg
c2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgY2Fs
bCk7CisgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0KSwgY2FsbCk7CiAgICAgICAg
IHJldHVybiBjYWxsOwogICAgIH0KICAgICAKQEAgLTk5Myw5ICs5OTQsMTAgQEAgcHJpdmF0ZToK
ICAgICAvLyBUaGUgbnVtYmVyIG9mIGxvY2FscyAodmFycyArIHRlbXBvcmFyaWVzKSB1c2VkIGlu
IHRoZSBmdW5jdGlvbi4KICAgICB1bnNpZ25lZCBtX251bUxvY2FsczsKICAgICAvLyBUaGUgbnVt
YmVyIG9mIHNsb3RzIChpbiB1bml0cyBvZiBzaXplb2YoUmVnaXN0ZXIpKSB0aGF0IHdlIG5lZWQg
dG8KLSAgICAvLyBwcmVhbGxvY2F0ZSBmb3IgY2FsbHMgZW1hbmF0aW5nIGZyb20gdGhpcyBmcmFt
ZS4gVGhpcyBpbmNsdWRlcyB0aGUKLSAgICAvLyBzaXplIG9mIHRoZSBDYWxsRnJhbWUsIG9ubHkg
aWYgdGhpcyBpcyBub3QgYSBsZWFmIGZ1bmN0aW9uLiAgKEkuZS4KLSAgICAvLyB0aGlzIGlzIDAg
aWYgYW5kIG9ubHkgaWYgdGhpcyBmdW5jdGlvbiBpcyBhIGxlYWYuKQorICAgIC8vIHByZWFsbG9j
YXRlIGZvciBhcmd1bWVudHMgdG8gb3V0Z29pbmcgY2FsbHMgZnJvbSB0aGlzIGZyYW1lLiBUaGlz
CisgICAgLy8gbnVtYmVyIGluY2x1ZGVzIHRoZSBDYWxsRnJhbWUgc2xvdHMgdGhhdCB3ZSBpbml0
aWFsaXplIGZvciB0aGUgY2FsbGVlCisgICAgLy8gKGJ1dCBub3QgdGhlIGNhbGxlZS1pbml0aWFs
aXplZCBDYWxsZXJGcmFtZSBhbmQgUmV0dXJuUEMgc2xvdHMpLgorICAgIC8vIFRoaXMgbnVtYmVy
IGlzIDAgaWYgYW5kIG9ubHkgaWYgdGhpcyBmdW5jdGlvbiBpcyBhIGxlYWYuCiAgICAgdW5zaWdu
ZWQgbV9wYXJhbWV0ZXJTbG90czsKICAgICAvLyBUaGUgbnVtYmVyIG9mIHZhciBhcmdzIHBhc3Nl
ZCB0byB0aGUgbmV4dCB2YXIgYXJnIG5vZGUuCiAgICAgdW5zaWduZWQgbV9udW1QYXNzZWRWYXJB
cmdzOwpAQCAtMTEzNCw2ICsxMTM2LDEwIEBAIHByaXZhdGU6CiAgICAgLy8gd29yay1hcm91bmQg
Zm9yIHRoZSBmYWN0IHRoYXQgSlNWYWx1ZU1hcCBjYW4ndCBoYW5kbGUgImVtcHR5IiB2YWx1ZXMu
CiAgICAgdW5zaWduZWQgbV9lbXB0eUpTVmFsdWVJbmRleDsKICAgICAKKyAgICBDb2RlQmxvY2sq
IG1fZGZnQ29kZUJsb2NrOworICAgIENhbGxMaW5rU3RhdHVzOjpDb250ZXh0TWFwIG1fY2FsbENv
bnRleHRNYXA7CisgICAgU3R1YkluZm9NYXAgbV9kZmdTdHViSW5mb3M7CisgICAgCiAgICAgSW5z
dHJ1Y3Rpb24qIG1fY3VycmVudEluc3RydWN0aW9uOwogfTsKIApAQCAtMTE0NSw0MyArMTE1MSw0
NSBAQCBwcml2YXRlOgogICAgIG1fY3VycmVudEluZGV4ICs9IE9QQ09ERV9MRU5HVEgobmFtZSk7
IFwKICAgICByZXR1cm4gc2hvdWxkQ29udGludWVQYXJzaW5nCiAKLQotdm9pZCBCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBOb2RlVHlw
ZSBvcCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQordm9pZCBCeXRlQ29kZVBhcnNlcjo6
aGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogcGMsIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQpCiB7CiAgICAgQVNTRVJUKE9QQ09ERV9MRU5HVEgob3BfY2FsbCkgPT0gT1BD
T0RFX0xFTkdUSChvcF9jb25zdHJ1Y3QpKTsKKyAgICBoYW5kbGVDYWxsKAorICAgICAgICBwY1sx
XS51Lm9wZXJhbmQsIG9wLCBraW5kLCBPUENPREVfTEVOR1RIKG9wX2NhbGwpLAorICAgICAgICBw
Y1syXS51Lm9wZXJhbmQsIHBjWzNdLnUub3BlcmFuZCwgLXBjWzRdLnUub3BlcmFuZCk7Cit9CisK
K3ZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNhbGwoCisgICAgaW50IHJlc3VsdCwgTm9kZVR5
cGUgb3AsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgdW5zaWduZWQgaW5zdHJ1Y3Rpb25T
aXplLAorICAgIGludCBjYWxsZWUsIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgaW50
IHJlZ2lzdGVyT2Zmc2V0KQoreworICAgIEFTU0VSVChyZWdpc3Rlck9mZnNldCA8PSAwKTsKICAg
ICAKLSAgICBOb2RlKiBjYWxsVGFyZ2V0ID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgTm9kZSogY2FsbFRhcmdldCA9IGdldChWaXJ0
dWFsUmVnaXN0ZXIoY2FsbGVlKSk7CiAgICAgCiAgICAgQ2FsbExpbmtTdGF0dXMgY2FsbExpbmtT
dGF0dXM7CiAKLSAgICBpZiAobV9ncmFwaC5pc0NvbnN0YW50KGNhbGxUYXJnZXQpKQotICAgICAg
ICBjYWxsTGlua1N0YXR1cyA9IENhbGxMaW5rU3RhdHVzKG1fZ3JhcGgudmFsdWVPZkpTQ29uc3Rh
bnQoY2FsbFRhcmdldCkpLnNldElzUHJvdmVkKHRydWUpOwotICAgIGVsc2UgewotICAgICAgICBj
YWxsTGlua1N0YXR1cyA9IENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKG1faW5saW5lU3RhY2tU
b3AtPm1fcHJvZmlsZWRCbG9jaywgbV9jdXJyZW50SW5kZXgpOwotICAgICAgICBjYWxsTGlua1N0
YXR1cy5zZXRIYXNCYWRGdW5jdGlvbkV4aXRTaXRlKG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFBy
b2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZEZ1bmN0aW9uKSk7Ci0gICAgICAg
IGNhbGxMaW5rU3RhdHVzLnNldEhhc0JhZENhY2hlRXhpdFNpdGUoCi0gICAgICAgICAgICBtX2lu
bGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBC
YWRDYWNoZSkKLSAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUu
aGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCkpOwotICAgICAg
ICBjYWxsTGlua1N0YXR1cy5zZXRIYXNCYWRFeGVjdXRhYmxlRXhpdFNpdGUobV9pbmxpbmVTdGFj
a1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkRXhlY3V0
YWJsZSkpOworICAgIGlmIChtX2dyYXBoLmlzQ29uc3RhbnQoY2FsbFRhcmdldCkpIHsKKyAgICAg
ICAgY2FsbExpbmtTdGF0dXMgPSBDYWxsTGlua1N0YXR1cygKKyAgICAgICAgICAgIG1fZ3JhcGgu
dmFsdWVPZkpTQ29uc3RhbnQoY2FsbFRhcmdldCkpLnNldElzUHJvdmVkKHRydWUpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGNhbGxMaW5rU3RhdHVzID0gQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVG
b3IoCisgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIGN1cnJl
bnRDb2RlT3JpZ2luKCksIG1fY2FsbENvbnRleHRNYXApOwogICAgIH0KICAgICAKICAgICBpZiAo
IWNhbGxMaW5rU3RhdHVzLmNhbk9wdGltaXplKCkpIHsKICAgICAgICAgLy8gT2RkbHksIHRoaXMg
Y29uZmxhdGVzIGNhbGxzIHRoYXQgaGF2ZW4ndCBleGVjdXRlZCB3aXRoIGNhbGxzIHRoYXQgYmVo
YXZlZCBzdWZmaWNpZW50bHkgcG9seW1vcnBoaWNhbGx5CiAgICAgICAgIC8vIHRoYXQgd2UgY2Fu
bm90IG9wdGltaXplIHRoZW0uCiAgICAgICAgIAotICAgICAgICBhZGRDYWxsKGN1cnJlbnRJbnN0
cnVjdGlvbiwgb3ApOworICAgICAgICBhZGRDYWxsKHJlc3VsdCwgb3AsIGNhbGxlZSwgYXJndW1l
bnRDb3VudEluY2x1ZGluZ1RoaXMsIHJlZ2lzdGVyT2Zmc2V0KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKLSAgICBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIGludCByZWdpc3Rlck9mZnNldCA9IC1jdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwotCi0gICAgaW50IHJlc3VsdE9wZXJhbmQgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwotICAgIHVuc2lnbmVkIG5leHRPZmZzZXQg
PSBtX2N1cnJlbnRJbmRleCArIE9QQ09ERV9MRU5HVEgob3BfY2FsbCk7CisgICAgdW5zaWduZWQg
bmV4dE9mZnNldCA9IG1fY3VycmVudEluZGV4ICsgaW5zdHJ1Y3Rpb25TaXplOwogICAgIFNwZWN1
bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uKCk7CiAKICAgICBpZiAoSW50ZXJu
YWxGdW5jdGlvbiogZnVuY3Rpb24gPSBjYWxsTGlua1N0YXR1cy5pbnRlcm5hbEZ1bmN0aW9uKCkp
IHsKLSAgICAgICAgaWYgKGhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbihyZXN1bHRPcGVy
YW5kLCBmdW5jdGlvbiwgcmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
LCBwcmVkaWN0aW9uLCBraW5kKSkgeworICAgICAgICBpZiAoaGFuZGxlQ29uc3RhbnRJbnRlcm5h
bEZ1bmN0aW9uKHJlc3VsdCwgZnVuY3Rpb24sIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcywgcHJlZGljdGlvbiwga2luZCkpIHsKICAgICAgICAgICAgIC8vIFRoaXMg
cGhhbnRvbWluZyBoYXMgdG8gYmUgKmFmdGVyKiB0aGUgY29kZSBmb3IgdGhlIGludHJpbnNpYywg
dG8gc2lnbmlmeSB0aGF0CiAgICAgICAgICAgICAvLyB0aGUgaW5wdXRzIG11c3QgYmUga2VwdCBh
bGl2ZSB3aGF0ZXZlciBleGl0cyB0aGUgaW50cmluc2ljIG1heSBkby4KICAgICAgICAgICAgIGFk
ZFRvR3JhcGgoUGhhbnRvbSwgY2FsbFRhcmdldCk7CkBAIC0xMTkwLDcgKzExOTgsNyBAQCB2b2lk
IEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDYWxsKEluc3RydWN0CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIC8vIENhbiBvbmx5IGhhbmRsZSB0aGlzIHVzaW5nIHRoZSBnZW5lcmljIGNhbGwg
aGFuZGxlci4KLSAgICAgICAgYWRkQ2FsbChjdXJyZW50SW5zdHJ1Y3Rpb24sIG9wKTsKKyAgICAg
ICAgYWRkQ2FsbChyZXN1bHQsIG9wLCBjYWxsZWUsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
LCByZWdpc3Rlck9mZnNldCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgICAgIApAQCAt
MTE5OCw3ICsxMjA2LDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVj
dAogICAgIGlmIChpbnRyaW5zaWMgIT0gTm9JbnRyaW5zaWMpIHsKICAgICAgICAgZW1pdEZ1bmN0
aW9uQ2hlY2tzKGNhbGxMaW5rU3RhdHVzLCBjYWxsVGFyZ2V0LCByZWdpc3Rlck9mZnNldCwga2lu
ZCk7CiAgICAgICAgICAgICAKLSAgICAgICAgaWYgKGhhbmRsZUludHJpbnNpYyhyZXN1bHRPcGVy
YW5kLCBpbnRyaW5zaWMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhp
cywgcHJlZGljdGlvbikpIHsKKyAgICAgICAgaWYgKGhhbmRsZUludHJpbnNpYyhyZXN1bHQsIGlu
dHJpbnNpYywgcmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBwcmVk
aWN0aW9uKSkgewogICAgICAgICAgICAgLy8gVGhpcyBwaGFudG9taW5nIGhhcyB0byBiZSAqYWZ0
ZXIqIHRoZSBjb2RlIGZvciB0aGUgaW50cmluc2ljLCB0byBzaWduaWZ5IHRoYXQKICAgICAgICAg
ICAgIC8vIHRoZSBpbnB1dHMgbXVzdCBiZSBrZXB0IGFsaXZlIHdoYXRldmVyIGV4aXRzIHRoZSBp
bnRyaW5zaWMgbWF5IGRvLgogICAgICAgICAgICAgYWRkVG9HcmFwaChQaGFudG9tLCBjYWxsVGFy
Z2V0KTsKQEAgLTEyMDcsMTMgKzEyMTUsMTMgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxl
Q2FsbChJbnN0cnVjdAogICAgICAgICAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90
aWNlSW5saW5lZENhbGwoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0g
ZWxzZSBpZiAoaGFuZGxlSW5saW5pbmcoY2FsbFRhcmdldCwgcmVzdWx0T3BlcmFuZCwgY2FsbExp
bmtTdGF0dXMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgbmV4
dE9mZnNldCwga2luZCkpIHsKKyAgICB9IGVsc2UgaWYgKGhhbmRsZUlubGluaW5nKGNhbGxUYXJn
ZXQsIHJlc3VsdCwgY2FsbExpbmtTdGF0dXMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcywgbmV4dE9mZnNldCwga2luZCkpIHsKICAgICAgICAgaWYgKG1fZ3JhcGgu
Y29tcGlsYXRpb24oKSkKICAgICAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNl
SW5saW5lZENhbGwoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBhZGRDYWxs
KGN1cnJlbnRJbnN0cnVjdGlvbiwgb3ApOworICAgIGFkZENhbGwocmVzdWx0LCBvcCwgY2FsbGVl
LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcmVnaXN0ZXJPZmZzZXQpOwogfQogCiB2b2lk
IEJ5dGVDb2RlUGFyc2VyOjplbWl0RnVuY3Rpb25DaGVja3MoY29uc3QgQ2FsbExpbmtTdGF0dXMm
IGNhbGxMaW5rU3RhdHVzLCBOb2RlKiBjYWxsVGFyZ2V0LCBpbnQgcmVnaXN0ZXJPZmZzZXQsIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKQEAgLTEyNTAsMzAgKzEyNTgsMzIgQEAgdm9pZCBC
eXRlQ29kZVBhcnNlcjo6ZW1pdEFyZ3VtZW50UGhhbnRvbQogCiBib29sIEJ5dGVDb2RlUGFyc2Vy
OjpoYW5kbGVJbmxpbmluZyhOb2RlKiBjYWxsVGFyZ2V0Tm9kZSwgaW50IHJlc3VsdE9wZXJhbmQs
IGNvbnN0IENhbGxMaW5rU3RhdHVzJiBjYWxsTGlua1N0YXR1cywgaW50IHJlZ2lzdGVyT2Zmc2V0
LCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHVuc2lnbmVkIG5leHRPZmZzZXQsIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CisgICAgCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIGRhdGFMb2coIkNv
bnNpZGVyaW5nIGlubGluaW5nICIsIGNhbGxMaW5rU3RhdHVzLCAiIGludG8gIiwgY3VycmVudENv
ZGVPcmlnaW4oKSwgIlxuIik7CisgICAgCiAgICAgLy8gRmlyc3QsIHRoZSByZWFsbHkgc2ltcGxl
IGNoZWNrczogZG8gd2UgaGF2ZSBhbiBhY3R1YWwgSlMgZnVuY3Rpb24/Ci0gICAgaWYgKCFjYWxs
TGlua1N0YXR1cy5leGVjdXRhYmxlKCkpCisgICAgaWYgKCFjYWxsTGlua1N0YXR1cy5leGVjdXRh
YmxlKCkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAg
RmFpbGluZyBiZWNhdXNlIHRoZXJlIGlzIG5vIGV4ZWN1dGFibGUuXG4iKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGlmIChjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCktPmlzSG9zdEZ1
bmN0aW9uKCkpCisgICAgfQorICAgIGlmIChjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCktPmlz
SG9zdEZ1bmN0aW9uKCkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRh
TG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIGl0J3MgYSBob3N0IGZ1bmN0aW9uLlxuIik7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgCiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBl
eGVjdXRhYmxlID0ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGNhbGxMaW5rU3RhdHVzLmV4
ZWN1dGFibGUoKSk7CiAgICAgCiAgICAgLy8gRG9lcyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB3
ZSdyZSBwYXNzaW5nIG1hdGNoIHRoZSBhcml0eSBvZiB0aGUgdGFyZ2V0PyBXZSBjdXJyZW50bHkK
ICAgICAvLyBpbmxpbmUgb25seSBpZiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBwYXNzZWQgaXMg
Z3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBudW1iZXIKICAgICAvLyBhcmd1bWVudHMgZXhw
ZWN0ZWQuCi0gICAgaWYgKHN0YXRpY19jYXN0PGludD4oZXhlY3V0YWJsZS0+cGFyYW1ldGVyQ291
bnQoKSkgKyAxID4gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpCisgICAgaWYgKHN0YXRpY19j
YXN0PGludD4oZXhlY3V0YWJsZS0+cGFyYW1ldGVyQ291bnQoKSkgKyAxID4gYXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRh
TG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIG9mIGFyaXR5IG1pc21hdGNoLlxuIik7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAKLSAgICAvLyBIYXZlIHdlIGV4Y2VlZGVkIGlubGluZSBzdGFj
ayBkZXB0aCwgb3IgYXJlIHdlIHRyeWluZyB0byBpbmxpbmUgYSByZWN1cnNpdmUgY2FsbD8KLSAg
ICAvLyBJZiBlaXRoZXIgb2YgdGhlc2UgYXJlIGRldGVjdGVkLCB0aGVuIGRvbid0IGlubGluZS4K
LSAgICB1bnNpZ25lZCBkZXB0aCA9IDA7Ci0gICAgZm9yIChJbmxpbmVTdGFja0VudHJ5KiBlbnRy
eSA9IG1faW5saW5lU3RhY2tUb3A7IGVudHJ5OyBlbnRyeSA9IGVudHJ5LT5tX2NhbGxlcikgewot
ICAgICAgICArK2RlcHRoOwotICAgICAgICBpZiAoZGVwdGggPj0gT3B0aW9uczo6bWF4aW11bUlu
bGluaW5nRGVwdGgoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gRGVwdGggZXhjZWVk
ZWQuCi0gICAgICAgIAotICAgICAgICBpZiAoZW50cnktPmV4ZWN1dGFibGUoKSA9PSBleGVjdXRh
YmxlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBSZWN1cnNpb24gZGV0ZWN0ZWQuCiAg
ICAgfQogICAgIAogICAgIC8vIERvIHdlIGhhdmUgYSBjb2RlIGJsb2NrLCBhbmQgZG9lcyB0aGUg
Y29kZSBibG9jaydzIHNpemUgbWF0Y2ggdGhlIGhldXJpc3RpY3MvcmVxdWlyZW1lbnRzIGZvcgpA
QCAtMTI4MywxMCArMTI5Myw1MCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmlu
ZyhOb2RlCiAgICAgLy8gZ2xvYmFsIGZ1bmN0aW9uLCB3aGVyZSB3YXRjaHBvaW50aW5nIGdpdmVz
IHVzIHN0YXRpYyBpbmZvcm1hdGlvbi4gT3ZlcmFsbCwgaXQncyBhIHJhcmUgY2FzZQogICAgIC8v
IGJlY2F1c2Ugd2UgZXhwZWN0IHRoYXQgYW55IGhvdCBjYWxsZWVzIHdvdWxkIGhhdmUgYWxyZWFk
eSBiZWVuIGNvbXBpbGVkLgogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlY3V0YWJsZS0+
YmFzZWxpbmVDb2RlQmxvY2tGb3Ioa2luZCk7Ci0gICAgaWYgKCFjb2RlQmxvY2spCisgICAgaWYg
KCFjb2RlQmxvY2spIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9n
KCIgICAgRmFpbGluZyBiZWNhdXNlIG5vIGNvZGUgYmxvY2sgYXZhaWxhYmxlLlxuIik7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWNhbklubGluZUZ1bmN0aW9uRm9yKGNvZGVCbG9j
aywga2luZCwgY2FsbExpbmtTdGF0dXMuaXNDbG9zdXJlQ2FsbCgpKSkKKyAgICB9CisgICAgQ2Fw
YWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbCA9IGlubGluZUZ1bmN0aW9uRm9yQ2FwYWJpbGl0
eUxldmVsKAorICAgICAgICBjb2RlQmxvY2ssIGtpbmQsIGNhbGxMaW5rU3RhdHVzLmlzQ2xvc3Vy
ZUNhbGwoKSk7CisgICAgaWYgKCFjYW5JbmxpbmUoY2FwYWJpbGl0eUxldmVsKSkgeworICAgICAg
ICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIGRhdGFMb2coIiAgICBGYWlsaW5nIGJlY2F1c2Ug
dGhlIGZ1bmN0aW9uIGlzIG5vdCBpbmxpbmVhYmxlLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgICAgCisgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGJlIGJldHRlciBhdCBw
cmVkaWN0aW5nIGhvdyBtdWNoIGJsb2F0IHdlIHdpbGwgaW50cm9kdWNlIGJ5IGlubGluaW5nCisg
ICAgLy8gdGhpcyBmdW5jdGlvbi4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI3NjI3CisgICAgCisgICAgLy8gSGF2ZSB3ZSBleGNlZWRlZCBpbmxpbmUg
c3RhY2sgZGVwdGgsIG9yIGFyZSB3ZSB0cnlpbmcgdG8gaW5saW5lIGEgcmVjdXJzaXZlIGNhbGwg
dG8KKyAgICAvLyB0b28gbWFueSBsZXZlbHM/IElmIGVpdGhlciBvZiB0aGVzZSBhcmUgZGV0ZWN0
ZWQsIHRoZW4gZG9uJ3QgaW5saW5lLiBXZSBhZGp1c3Qgb3VyCisgICAgLy8gaGV1cmlzdGljcyBp
ZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgZnVuY3Rpb24gdGhhdCBjYW5ub3Qgb3RoZXJ3aXNlIGJl
IGNvbXBpbGVkLgorICAgIAorICAgIHVuc2lnbmVkIGRlcHRoID0gMDsKKyAgICB1bnNpZ25lZCBy
ZWN1cnNpb24gPSAwOworICAgIAorICAgIGZvciAoSW5saW5lU3RhY2tFbnRyeSogZW50cnkgPSBt
X2lubGluZVN0YWNrVG9wOyBlbnRyeTsgZW50cnkgPSBlbnRyeS0+bV9jYWxsZXIpIHsKKyAgICAg
ICAgKytkZXB0aDsKKyAgICAgICAgaWYgKGRlcHRoID49IE9wdGlvbnM6Om1heGltdW1Jbmxpbmlu
Z0RlcHRoKCkpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRh
dGFMb2coIiAgICBGYWlsaW5nIGJlY2F1c2UgZGVwdGggZXhjZWVkZWQuXG4iKTsKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGVudHJ5
LT5leGVjdXRhYmxlKCkgPT0gZXhlY3V0YWJsZSkgeworICAgICAgICAgICAgKytyZWN1cnNpb247
CisgICAgICAgICAgICBpZiAocmVjdXJzaW9uID49IE9wdGlvbnM6Om1heGltdW1JbmxpbmluZ1Jl
Y3Vyc2lvbigpKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAg
ICAgICAgIGRhdGFMb2coIiAgICBGYWlsaW5nIGJlY2F1c2UgcmVjdXJzaW9uIGRldGVjdGVkLlxu
Iik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfQorICAgIAorICAgIGlmICh2ZXJib3NlKQorICAgICAgICBkYXRhTG9nKCIgICAg
Q29tbWl0dGluZyB0byBpbmxpbmluZy5cbiIpOwogICAgIAogICAgIC8vIE5vdyB3ZSBrbm93IHdp
dGhvdXQgYSBkb3VidCB0aGF0IHdlIGFyZSBjb21taXR0ZWQgdG8gaW5saW5pbmcuIFNvIGJlZ2lu
IHRoZSBwcm9jZXNzCiAgICAgLy8gYnkgY2hlY2tpbmcgdGhlIGNhbGxlZSAoaWYgbmVjZXNzYXJ5
KSBhbmQgbWFraW5nIHN1cmUgdGhhdCBhcmd1bWVudHMgYW5kIHRoZSBjYWxsZWUKQEAgLTE3NzMs
MTEgKzE4MjMsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVHZXRCeUlkKAogICAgIGlu
dCBkZXN0aW5hdGlvbk9wZXJhbmQsIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24sIE5vZGUqIGJh
c2UsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsCiAgICAgY29uc3QgR2V0QnlJZFN0YXR1cyYg
Z2V0QnlJZFN0YXR1cykKIHsKLSAgICBpZiAoIWdldEJ5SWRTdGF0dXMuaXNTaW1wbGUoKQotICAg
ICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3Vy
cmVudEluZGV4LCBCYWRDYWNoZSkKLSAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0
UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KQot
ICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1f
Y3VycmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZSkKLSAgICAgICAgfHwgbV9pbmxpbmVT
dGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkV2Vh
a0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50KSkgeworICAgIGlmICghZ2V0QnlJZFN0YXR1cy5pc1Np
bXBsZSgpKSB7CiAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoZGVzdGluYXRpb25PcGVyYW5k
KSwKICAgICAgICAgICAgIGFkZFRvR3JhcGgoCiAgICAgICAgICAgICAgICAgZ2V0QnlJZFN0YXR1
cy5tYWtlc0NhbGxzKCkgPyBHZXRCeUlkRmx1c2ggOiBHZXRCeUlkLApAQCAtMjQ0NCw2ICsyNDkw
LDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAg
ICAgYWRkVmFyQXJnQ2hpbGQocHJvcGVydHkpOwogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQo
dmFsdWUpOwogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoMCk7IC8vIExlYXZlIHJvb20gZm9y
IHByb3BlcnR5IHN0b3JhZ2UuCisgICAgICAgICAgICBhZGRWYXJBcmdDaGlsZCgwKTsgLy8gTGVh
dmUgcm9vbSBmb3IgbGVuZ3RoLgogICAgICAgICAgICAgYWRkVG9HcmFwaChOb2RlOjpWYXJBcmcs
IG9wY29kZUlEID09IG9wX3B1dF9ieV92YWxfZGlyZWN0ID8gUHV0QnlWYWxEaXJlY3QgOiBQdXRC
eVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbygwKSk7CiAKICAgICAgICAg
ICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9ieV92YWwpOwpAQCAtMjQ1OSw4ICsyNTA2LDkgQEAgYm9v
bCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBTdHJpbmdJbXBsKiB1aWQgPSBtX2dyYXBoLmlkZW50aWZpZXJzKClbaWRlbnRpZmll
ck51bWJlcl07CiAgICAgICAgICAgICBHZXRCeUlkU3RhdHVzIGdldEJ5SWRTdGF0dXMgPSBHZXRC
eUlkU3RhdHVzOjpjb21wdXRlRm9yKAotICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3At
Pm1fcHJvZmlsZWRCbG9jaywgbV9pbmxpbmVTdGFja1RvcC0+bV9zdHViSW5mb3MsCi0gICAgICAg
ICAgICAgICAgbV9jdXJyZW50SW5kZXgsIHVpZCk7CisgICAgICAgICAgICAgICAgbV9pbmxpbmVT
dGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCBtX2RmZ0NvZGVCbG9jaywKKyAgICAgICAgICAgICAg
ICBtX2lubGluZVN0YWNrVG9wLT5tX3N0dWJJbmZvcywgbV9kZmdTdHViSW5mb3MsCisgICAgICAg
ICAgICAgICAgY3VycmVudENvZGVPcmlnaW4oKSwgdWlkKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgaGFuZGxlR2V0QnlJZCgKICAgICAgICAgICAgICAgICBjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kLCBwcmVkaWN0aW9uLCBiYXNlLCBpZGVudGlmaWVyTnVtYmVyLCBnZXRCeUlk
U3RhdHVzKTsKQEAgLTI0NzksMjYgKzI1MjcsMjAgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFy
c2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAgYm9vbCBkaXJlY3QgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bOF0udS5vcGVyYW5kOwogCiAgICAgICAgICAgICBQdXRCeUlkU3RhdHVzIHB1dEJ5SWRT
dGF0dXMgPSBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAotICAgICAgICAgICAgICAgIG1faW5s
aW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9pbmxpbmVTdGFja1RvcC0+bV9zdHViSW5m
b3MsCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50SW5kZXgsIG1fZ3JhcGguaWRlbnRpZmllcnMo
KVtpZGVudGlmaWVyTnVtYmVyXSk7CisgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+
bV9wcm9maWxlZEJsb2NrLCBtX2RmZ0NvZGVCbG9jaywKKyAgICAgICAgICAgICAgICBtX2lubGlu
ZVN0YWNrVG9wLT5tX3N0dWJJbmZvcywgbV9kZmdTdHViSW5mb3MsCisgICAgICAgICAgICAgICAg
Y3VycmVudENvZGVPcmlnaW4oKSwgbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1i
ZXJdKTsKICAgICAgICAgICAgIGJvb2wgY2FuQ291bnRBc0lubGluZWQgPSB0cnVlOwogICAgICAg
ICAgICAgaWYgKCFwdXRCeUlkU3RhdHVzLmlzU2V0KCkpIHsKICAgICAgICAgICAgICAgICBhZGRU
b0dyYXBoKEZvcmNlT1NSRXhpdCk7CiAgICAgICAgICAgICAgICAgY2FuQ291bnRBc0lubGluZWQg
PSBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgYm9vbCBo
YXNFeGl0U2l0ZSA9Ci0gICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJv
ZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUpCi0gICAgICAgICAgICAg
ICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJl
bnRJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KQotICAgICAgICAgICAgICAgIHx8IG1faW5saW5l
U3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFdl
YWtDb25zdGFudENhY2hlKQotICAgICAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1f
ZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFdlYWtDb25zdGFudENh
Y2hlV2F0Y2hwb2ludCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghaGFzRXhpdFNp
dGUgJiYgcHV0QnlJZFN0YXR1cy5pc1NpbXBsZVJlcGxhY2UoKSkgeworICAgICAgICAgICAgaWYg
KHB1dEJ5SWRTdGF0dXMuaXNTaW1wbGVSZXBsYWNlKCkpIHsKICAgICAgICAgICAgICAgICBhZGRU
b0dyYXBoKENoZWNrU3RydWN0dXJlLCBPcEluZm8obV9ncmFwaC5hZGRTdHJ1Y3R1cmVTZXQocHV0
QnlJZFN0YXR1cy5vbGRTdHJ1Y3R1cmUoKSkpLCBiYXNlKTsKICAgICAgICAgICAgICAgICBoYW5k
bGVQdXRCeU9mZnNldChiYXNlLCBpZGVudGlmaWVyTnVtYmVyLCBwdXRCeUlkU3RhdHVzLm9mZnNl
dCgpLCB2YWx1ZSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKAotICAgICAgICAgICAgICAgICFo
YXNFeGl0U2l0ZQotICAgICAgICAgICAgICAgICYmIHB1dEJ5SWRTdGF0dXMuaXNTaW1wbGVUcmFu
c2l0aW9uKCkKKyAgICAgICAgICAgICAgICBwdXRCeUlkU3RhdHVzLmlzU2ltcGxlVHJhbnNpdGlv
bigpCiAgICAgICAgICAgICAgICAgJiYgKCFwdXRCeUlkU3RhdHVzLnN0cnVjdHVyZUNoYWluKCkK
ICAgICAgICAgICAgICAgICAgICAgfHwgcHV0QnlJZFN0YXR1cy5zdHJ1Y3R1cmVDaGFpbigpLT5p
c1N0aWxsVmFsaWQoKSkpIHsKICAgICAgICAgICAgICAgICAKQEAgLTI5NzMsMzAgKzMwMTUsNDEg
QEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAg
TkVYVF9PUENPREUob3BfY29uc3RydWN0KTsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIG9w
X2NhbGxfdmFyYXJnczogeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVj
dGlvblsxXS51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgY2FsbGVlID0gY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCB0aGlzUmVnID0gY3VycmVudElu
c3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCBhcmd1bWVudHMgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOworICAgICAgICAgICAgaW50IGZpcnN0RnJlZVJl
ZyA9IGN1cnJlbnRJbnN0cnVjdGlvbls1XS51Lm9wZXJhbmQ7CisgICAgICAgICAgICAKICAgICAg
ICAgICAgIEFTU0VSVChpbmxpbmVDYWxsRnJhbWUoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoY3Vy
cmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCA9PSBtX2lubGluZVN0YWNrVG9wLT5tX2NvZGVC
bG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKS5vZmZzZXQoKSk7CisgICAgICAgICAgICBBU1NFUlRf
VU5VU0VEKGFyZ3VtZW50cywgYXJndW1lbnRzID09IG1faW5saW5lU3RhY2tUb3AtPm1fY29kZUJs
b2NrLT5hcmd1bWVudHNSZWdpc3RlcigpLm9mZnNldCgpKTsKICAgICAgICAgICAgIEFTU0VSVCgh
bV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxvY2stPnN5bWJvbFRhYmxlKCktPnNsb3dBcmd1bWVu
dHMoKSk7Ci0gICAgICAgICAgICAvLyBJdCB3b3VsZCBiZSBjb29sIHRvIGZ1bm5lbCB0aGlzIGlu
dG8gaGFuZGxlQ2FsbCgpIHNvIHRoYXQgaXQgY2FuIGhhbmRsZQotICAgICAgICAgICAgLy8gaW5s
aW5pbmcuIEJ1dCBjdXJyZW50bHkgdGhhdCB3b24ndCBiZSBwcm9maXRhYmxlIGFueXdheSwgc2lu
Y2Ugbm9uZSBvZiB0aGUKLSAgICAgICAgICAgIC8vIHVzZXMgb2YgY2FsbF92YXJhcmdzIHdpbGwg
YmUgaW5saW5lYWJsZS4gU28gd2Ugc2V0IHRoaXMgdXAgbWFudWFsbHkgYW5kCi0gICAgICAgICAg
ICAvLyB3aXRob3V0IGlubGluZS9pbnRyaW5zaWMgZGV0ZWN0aW9uLgotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwot
ICAgICAgICAgICAgCisKICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tBcmd1bWVudHNOb3RD
cmVhdGVkKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICB1bnNpZ25lZCBhcmdDb3VudCA9
IGlubGluZUNhbGxGcmFtZSgpLT5hcmd1bWVudHMuc2l6ZSgpOwotICAgICAgICAgICAgaWYgKEpT
U3RhY2s6OlRoaXNBcmd1bWVudCArIGFyZ0NvdW50ID4gbV9wYXJhbWV0ZXJTbG90cykKLSAgICAg
ICAgICAgICAgICBtX3BhcmFtZXRlclNsb3RzID0gSlNTdGFjazo6VGhpc0FyZ3VtZW50ICsgYXJn
Q291bnQ7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKGdldChWaXJ0
dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpKTsgLy8gY2FsbGVl
Ci0gICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7IC8vIHRoaXMKKyAgICAgICAgICAgIC8vIExldCdz
IGNvbXB1dGUgdGhlIHJlZ2lzdGVyIG9mZnNldC4gV2Ugc3RhcnQgd2l0aCB0aGUgbGFzdCB1c2Vk
IHJlZ2lzdGVyLCBhbmQKKyAgICAgICAgICAgIC8vIHRoZW4gYWRqdXN0IGZvciB0aGUgdGhpbmdz
IHdlIHdhbnQgaW4gdGhlIGNhbGwgZnJhbWUuCisgICAgICAgICAgICBpbnQgcmVnaXN0ZXJPZmZz
ZXQgPSBmaXJzdEZyZWVSZWcgKyAxOworICAgICAgICAgICAgcmVnaXN0ZXJPZmZzZXQgLT0gYXJn
Q291bnQ7IC8vIFdlIHdpbGwgYmUgcGFzc2luZyBzb21lIGFyZ3VtZW50cy4KKyAgICAgICAgICAg
IHJlZ2lzdGVyT2Zmc2V0IC09IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7IC8vIFdlIHdp
bGwgcHJldGVuZCB0byBoYXZlIGEgY2FsbCBmcmFtZSBoZWFkZXIuCisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIC8vIEdldCB0aGUgYWxpZ25tZW50IHJpZ2h0LgorICAgICAgICAgICAgcmVnaXN0
ZXJPZmZzZXQgPSAtV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKAorICAgICAgICAgICAgICAgIHN0
YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksCisgICAgICAgICAgICAgICAgLXJlZ2lzdGVyT2Zmc2V0
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gVGhlIGJ5dGVjb2RlIHdvdWxkbid0IGhh
dmUgc2V0IHVwIHRoZSBhcmd1bWVudHMuIEJ1dCB3ZSdsbCBkbyBpdCBhbmQgbWFrZSBpdAorICAg
ICAgICAgICAgLy8gbG9vayBsaWtlIHRoZSBieXRlY29kZSBoYWQgZG9uZSBpdC4KKyAgICAgICAg
ICAgIGludCBuZXh0UmVnaXN0ZXIgPSByZWdpc3Rlck9mZnNldCArIEpTU3RhY2s6OkNhbGxGcmFt
ZUhlYWRlclNpemU7CisgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKG5leHRSZWdpc3Rl
cisrKSwgZ2V0KFZpcnR1YWxSZWdpc3Rlcih0aGlzUmVnKSksIEltbWVkaWF0ZVNldCk7CiAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGFyZ3VtZW50ID0gMTsgYXJndW1lbnQgPCBhcmdDb3VudDsg
Kythcmd1bWVudCkKLSAgICAgICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChnZXQodmlydHVhbFJl
Z2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksCi0g
ICAgICAgICAgICAgICAgYWRkVG9HcmFwaChOb2RlOjpWYXJBcmcsIENhbGwsIE9wSW5mbygwKSwg
T3BJbmZvKHByZWRpY3Rpb24pKSk7CisgICAgICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3Rl
cihuZXh0UmVnaXN0ZXIrKyksIGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVu
dCkpLCBJbW1lZGlhdGVTZXQpOwogICAgICAgICAgICAgCisgICAgICAgICAgICBoYW5kbGVDYWxs
KAorICAgICAgICAgICAgICAgIHJlc3VsdCwgQ2FsbCwgQ29kZUZvckNhbGwsIE9QQ09ERV9MRU5H
VEgob3BfY2FsbF92YXJhcmdzKSwKKyAgICAgICAgICAgICAgICBjYWxsZWUsIGFyZ0NvdW50LCBy
ZWdpc3Rlck9mZnNldCk7CiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9jYWxsX3ZhcmFyZ3Mp
OwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTM2NTQsNiArMzcwNywxNiBAQCBib29sIEJ5
dGVDb2RlUGFyc2VyOjpwYXJzZSgpCiAgICAgLy8gU2V0IGR1cmluZyBjb25zdHJ1Y3Rpb24uCiAg
ICAgQVNTRVJUKCFtX2N1cnJlbnRJbmRleCk7CiAgICAgCisgICAgaWYgKGlzRlRMKG1fZ3JhcGgu
bV9wbGFuLm1vZGUpKSB7CisgICAgICAgIG1fZGZnQ29kZUJsb2NrID0gbV9ncmFwaC5tX3BsYW4u
cHJvZmlsZWRERkdDb2RlQmxvY2suZ2V0KCk7CisgICAgICAgIGlmIChtX2RmZ0NvZGVCbG9jaykg
eworICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmVuYWJsZVBvbHl2YXJpYW50Q2FsbElubGluaW5n
KCkpCisgICAgICAgICAgICAgICAgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVERkdTdGF0dXNlcyht
X2RmZ0NvZGVCbG9jaywgbV9jYWxsQ29udGV4dE1hcCk7CisgICAgICAgICAgICBpZiAoT3B0aW9u
czo6ZW5hYmxlUG9seXZhcmlhbnRCeUlkSW5saW5pbmcoKSkKKyAgICAgICAgICAgICAgICBtX2Rm
Z0NvZGVCbG9jay0+Z2V0U3R1YkluZm9NYXAobV9kZmdTdHViSW5mb3MpOworICAgICAgICB9Cisg
ICAgfQorICAgIAogICAgIGlmIChtX2NvZGVCbG9jay0+Y2FwdHVyZUNvdW50KCkpIHsKICAgICAg
ICAgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlID0gbV9jb2RlQmxvY2stPnN5bWJvbFRhYmxlKCk7
CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHN5bWJvbFRhYmxlLT5tX2xvY2sp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBo
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGR1Np
bXBsaWZpY2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03OSw2ICs3OSw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgLy8gc3Vib3B0
aW1hbCwgYmVjYXVzZSBpZiBteSBzdWNjZXNzb3IgaGFzIG11bHRpcGxlIHByZWRlY2Vzc29ycyB0
aGVuIHdlJ2xsCiAgICAgICAgICAgICAgICAgICAgIC8vIGJlIGtlZXBpbmcgYWxpdmUgdGhpbmdz
IG9uIG90aGVyIHByZWRlY2Vzc29yIGVkZ2VzIHVubmVjZXNzYXJpbHkuCiAgICAgICAgICAgICAg
ICAgICAgIC8vIFdoYXQgd2UgcmVhbGx5IG5lZWQgaXMgdGhlIG5vdGlvbiBvZiBlbmQtb2YtYmxv
Y2sgZ2hvc3RpZXMhCisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBBbGxvdyBwdXR0aW5n
IHBoYW50b21zIGFmdGVyIHRlcm1pbmFscy4KKyAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjc3OAogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVk
ZSAiREZHQWJzdHJhY3RIZWFwLmgiCisjaW5jbHVkZSAiREZHQ2xvYmJlcml6ZS5oIgogI2luY2x1
ZGUgIkRGR0VkZ2VVc2VzU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAiREZHR3JhcGguaCIKICNpbmNs
dWRlICJERkdQaGFzZS5oIgpAQCAtMTAwNiw2ICsxMDA4LDE4IEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAorICAgIGJvb2wgaW52YWxpZGF0aW9uUG9pbnRF
bGltaW5hdGlvbigpCisgICAgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2luZGV4SW5C
bG9jazsgaS0tOykgeworICAgICAgICAgICAgTm9kZSogbm9kZSA9IG1fY3VycmVudEJsb2NrLT5h
dChpKTsKKyAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEludmFsaWRhdGlvblBvaW50KQor
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgaWYgKHdyaXRlc092ZXJs
YXAobV9ncmFwaCwgbm9kZSwgV2F0Y2hwb2ludF9maXJlKSkKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAogICAgIHZv
aWQgZWxpbWluYXRlSXJyZWxldmFudFBoYW50b21DaGlsZHJlbihOb2RlKiBub2RlKQogICAgIHsK
ICAgICAgICAgQVNTRVJUKG5vZGUtPm9wKCkgPT0gUGhhbnRvbSk7CkBAIC0xMzg1LDkgKzEzOTks
MTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGVsaW1pbmF0ZShwdXRCeU9mZnNldFN0b3JlRWxp
bWluYXRpb24obV9ncmFwaC5tX3N0b3JhZ2VBY2Nlc3NEYXRhW25vZGUtPnN0b3JhZ2VBY2Nlc3NE
YXRhSW5kZXgoKV0uaWRlbnRpZmllck51bWJlciwgbm9kZS0+Y2hpbGQxKCkubm9kZSgpKSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAorICAgICAgICBjYXNlIEludmFsaWRhdGlv
blBvaW50OgorICAgICAgICAgICAgaWYgKGludmFsaWRhdGlvblBvaW50RWxpbWluYXRpb24oKSkK
KyAgICAgICAgICAgICAgICBlbGltaW5hdGUoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgCiAgICAgICAgIGNhc2UgUGhhbnRvbToKICAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSBv
dWdodCB0byByZW1vdmUgUGhhbnRvbSdzIHRoYXQgaGF2ZSBubyBjaGlsZHJlbi4KLSAgICAgICAg
ICAgIAogICAgICAgICAgICAgZWxpbWluYXRlSXJyZWxldmFudFBoYW50b21DaGlsZHJlbihub2Rl
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE5OCw2ICsxOTgsOCBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVs
KE9wY29kZUlECiAgICAgY2FzZSBvcF9jYWxsX3ZhcmFyZ3M6CiAgICAgICAgIGlmIChjb2RlQmxv
Y2stPnVzZXNBcmd1bWVudHMoKSAmJiBwY1s0XS51Lm9wZXJhbmQgPT0gY29kZUJsb2NrLT5hcmd1
bWVudHNSZWdpc3RlcigpLm9mZnNldCgpKQogICAgICAgICAgICAgcmV0dXJuIENhbklubGluZTsK
KyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBoYW5kbGUgdGhpcy4KKyAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyNgogICAgICAgICByZXR1
cm4gQ2Fubm90Q29tcGlsZTsKIAogICAgIGNhc2Ugb3BfbmV3X3JlZ2V4cDogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmgJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTk2LDE5ICs5NiwyOCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGZ1bmN0
aW9uRm9yQ29uc3RyCiAgICAgcmV0dXJuIGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwogfQog
Ci1pbmxpbmUgYm9vbCBjYW5JbmxpbmVGdW5jdGlvbkZvckNhbGwoQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGlubGluZUZ1bmN0aW9uRm9yQ2FsbENhcGFiaWxp
dHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKLSAgICByZXR1cm4gbWlnaHRJbmxpbmVG
dW5jdGlvbkZvckNhbGwoY29kZUJsb2NrKSAmJiBjYW5JbmxpbmUoY2FwYWJpbGl0eUxldmVsKGNv
ZGVCbG9jaykpOworICAgIGlmICghbWlnaHRJbmxpbmVGdW5jdGlvbkZvckNhbGwoY29kZUJsb2Nr
KSkKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAgCisgICAgcmV0dXJuIGNhcGFi
aWxpdHlMZXZlbChjb2RlQmxvY2spOwogfQogCi1pbmxpbmUgYm9vbCBjYW5JbmxpbmVGdW5jdGlv
bkZvckNsb3N1cmVDYWxsKENvZGVCbG9jayogY29kZUJsb2NrKQoraW5saW5lIENhcGFiaWxpdHlM
ZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxsQ2FwYWJpbGl0eUxldmVsKENvZGVCbG9j
ayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBtaWdodElubGluZUZ1bmN0aW9uRm9yQ2xvc3Vy
ZUNhbGwoY29kZUJsb2NrKSAmJiBjYW5JbmxpbmUoY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jaykp
OworICAgIGlmICghbWlnaHRJbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxsKGNvZGVCbG9jaykp
CisgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOworICAgIAorICAgIHJldHVybiBjYXBhYmls
aXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAotaW5saW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25G
b3JDb25zdHJ1Y3QoQ29kZUJsb2NrKiBjb2RlQmxvY2spCitpbmxpbmUgQ2FwYWJpbGl0eUxldmVs
IGlubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0Q2FwYWJpbGl0eUxldmVsKENvZGVCbG9jayogY29k
ZUJsb2NrKQogewotICAgIHJldHVybiBtaWdodElubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KGNv
ZGVCbG9jaykgJiYgY2FuSW5saW5lKGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spKTsKKyAgICBp
ZiAoIW1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDb25zdHJ1Y3QoY29kZUJsb2NrKSkKKyAgICAgICAg
cmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAgCisgICAgcmV0dXJuIGNhcGFiaWxpdHlMZXZlbChj
b2RlQmxvY2spOwogfQogCiBpbmxpbmUgYm9vbCBtaWdodElubGluZUZ1bmN0aW9uRm9yKENvZGVC
bG9jayogY29kZUJsb2NrLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCkBAIC0xMjQsMTYg
KzEzMywxNiBAQCBpbmxpbmUgYm9vbCBtaWdodElubGluZUZ1bmN0aW9uKENvZGVCbG9jCiAgICAg
cmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3IoY29kZUJsb2NrLCBjb2RlQmxvY2stPnNwZWNp
YWxpemF0aW9uS2luZCgpKTsKIH0KIAotaW5saW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3Io
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgYm9vbCBp
c0Nsb3N1cmVDYWxsKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNh
cGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZVNwZWNpYWxpemF0aW9uS2lu
ZCBraW5kLCBib29sIGlzQ2xvc3VyZUNhbGwpCiB7CiAgICAgaWYgKGlzQ2xvc3VyZUNhbGwpIHsK
ICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNhbGwpOwotICAgICAgICByZXR1cm4gY2Fu
SW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChjb2RlQmxvY2spOworICAgICAgICByZXR1cm4g
aW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbENhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwog
ICAgIH0KICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKLSAgICAgICAgcmV0dXJuIGNhbklu
bGluZUZ1bmN0aW9uRm9yQ2FsbChjb2RlQmxvY2spOworICAgICAgICByZXR1cm4gaW5saW5lRnVu
Y3Rpb25Gb3JDYWxsQ2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiAgICAgQVNTRVJUKGtpbmQg
PT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgcmV0dXJuIGNhbklubGluZUZ1bmN0aW9uRm9yQ29u
c3RydWN0KGNvZGVCbG9jayk7CisgICAgcmV0dXJuIGlubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0
Q2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpE
RkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaAkocmV2aXNpb24gMTYy
OTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaAkod29ya2luZyBj
b3B5KQpAQCAtODcsMTUgKzg3LDYgQEAgaW5saW5lIGJvb2wgdmFsaWRhdGlvbkVuYWJsZWQoKQog
I2VuZGlmCiB9CiAKLWlubGluZSBib29sIGVuYWJsZUNvbmN1cnJlbnRKSVQoKQotewotI2lmIEVO
QUJMRShDT05DVVJSRU5UX0pJVCkKLSAgICByZXR1cm4gT3B0aW9uczo6ZW5hYmxlQ29uY3VycmVu
dEpJVCgpICYmIE9wdGlvbnM6Om51bWJlck9mQ29tcGlsZXJUaHJlYWRzKCk7Ci0jZWxzZQotICAg
IHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBpbmxpbmUgYm9vbCBlbmFibGVJbnQ1MigpCiB7
CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTIzNSw3ICsyMjYsMTMgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewogCiAvLyBQdXQgdGhpbmdzIGhlcmUgdGhhdCBtdXN0IGJlIGRlZmlu
ZWQgZXZlbiBpZiBFTkFCTEUoREZHX0pJVCkgaXMgZmFsc2UuCiAKLWVudW0gQ2FwYWJpbGl0eUxl
dmVsIHsgQ2Fubm90Q29tcGlsZSwgQ2FuSW5saW5lLCBDYW5Db21waWxlLCBDYW5Db21waWxlQW5k
SW5saW5lLCBDYXBhYmlsaXR5TGV2ZWxOb3RTZXQgfTsKK2VudW0gQ2FwYWJpbGl0eUxldmVsIHsK
KyAgICBDYW5ub3RDb21waWxlLAorICAgIENhbklubGluZSwKKyAgICBDYW5Db21waWxlLAorICAg
IENhbkNvbXBpbGVBbmRJbmxpbmUsCisgICAgQ2FwYWJpbGl0eUxldmVsTm90U2V0Cit9OwogCiBp
bmxpbmUgYm9vbCBjYW5Db21waWxlKENhcGFiaWxpdHlMZXZlbCBsZXZlbCkKIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tcGlsYXRpb25Nb2RlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21waWxhdGlvbk1vZGUuaAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21waWxhdGlvbk1v
ZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsMTcgQEAgZW51bSBDb21waWxhdGlvbk1v
ZGUgewogICAgIEZUTEZvck9TUkVudHJ5TW9kZQogfTsKIAoraW5saW5lIGJvb2wgaXNGVEwoQ29t
cGlsYXRpb25Nb2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBGVExN
b2RlOgorICAgIGNhc2UgRlRMRm9yT1NSRW50cnlNb2RlOgorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6REZHCiAKIG5hbWVzcGFjZSBXVEYgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC01NSw5ICs1NSw5IEBAIHVuc2lnbmVkIGdldE51bUNvbXBpbGF0aW9ucygp
CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIHN0YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21waWxl
SW1wbCgKLSAgICBWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUg
bW9kZSwgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LAotICAgIGNvbnN0IE9wZXJhbmRz
PEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzLAotICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywgV29ya2xpc3QqIHdvcmtsaXN0KQorICAgIFZNJiB2
bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ss
IENvbXBpbGF0aW9uTW9kZSBtb2RlLAorICAgIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRl
eCwgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMsCisgICAgUGFzc1Jl
ZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQogewogICAgIFNhbXBs
aW5nUmVnaW9uIHNhbXBsaW5nUmVnaW9uKCJERkcgQ29tcGlsYXRpb24gKERyaXZlcikiKTsKICAg
ICAKQEAgLTY2LDYgKzY2LDcgQEAgc3RhdGljIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBs
KAogICAgIEFTU0VSVChjb2RlQmxvY2spOwogICAgIEFTU0VSVChjb2RlQmxvY2stPmFsdGVybmF0
aXZlKCkpOwogICAgIEFTU0VSVChjb2RlQmxvY2stPmFsdGVybmF0aXZlKCktPmppdFR5cGUoKSA9
PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7CisgICAgQVNTRVJUKCFwcm9maWxlZERGR0NvZGVCbG9j
ayB8fCBwcm9maWxlZERGR0NvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVENvZGU6OkRGR0pJVCk7
CiAgICAgCiAgICAgaWYgKCFPcHRpb25zOjp1c2VERkdKSVQoKSB8fCAhTWFjcm9Bc3NlbWJsZXI6
OnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKQogICAgICAgICByZXR1cm4gQ29tcGlsYXRpb25GYWls
ZWQ7CkBAIC04MCwxNiArODEsMzEgQEAgc3RhdGljIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJ
bXBsKAogICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGFsbCBKSVQgY29kZSBnZW5lcmF0aW9uIGRvZXMg
ZmluYWxpemF0aW9uIG9uIHRoZSBtYWluIHRocmVhZC4KICAgICB2bS5nZXRDVElTdHViKG9zckV4
aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOwogICAgIHZtLmdldENUSVN0dWIodGhyb3dFeGNl
cHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHViKGxpbmtD
YWxsVGh1bmtHZW5lcmF0b3IpOwotICAgIHZtLmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5r
R2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHViKGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJh
dG9yKTsKLSAgICB2bS5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpOwotICAg
IHZtLmdldENUSVN0dWIodmlydHVhbENvbnN0cnVjdFRodW5rR2VuZXJhdG9yKTsKKyAgICBpZiAo
bW9kZSA9PSBERkdNb2RlKSB7CisgICAgICAgIHZtLmdldENUSVN0dWIobGlua0NhbGxUaHVua0dl
bmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJh
dG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRv
cik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvcik7Cisg
ICAgICAgIHZtLmdldENUSVN0dWIodmlydHVhbENvbnN0cnVjdFRodW5rR2VuZXJhdG9yKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICB2bS5nZXRDVElTdHViKGxpbmtDYWxsVGhhdFByZXNlcnZlc1Jl
Z3NUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRo
YXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElTdHViKGxp
bmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2
bS5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik7
CisgICAgICAgIHZtLmdldENUSVN0dWIodmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdz
VGh1bmtHZW5lcmF0b3IpOworICAgIH0KICAgICAKICAgICBSZWZQdHI8UGxhbj4gcGxhbiA9IGFk
b3B0UmVmKAotICAgICAgICBuZXcgUGxhbihjb2RlQmxvY2ssIG1vZGUsIG9zckVudHJ5Qnl0ZWNv
ZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcykpOworICAgICAgICBuZXcgUGxhbihjb2RlQmxvY2ss
IHByb2ZpbGVkREZHQ29kZUJsb2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RI
YW5kbGVWYWx1ZXMpKTsKICAgICAKLSAgICBpZiAod29ya2xpc3QpIHsKKyAgICBib29sIGVuYWJs
ZUNvbmN1cnJlbnRKSVQ7CisjaWYgRU5BQkxFKENPTkNVUlJFTlRfSklUKQorICAgIGVuYWJsZUNv
bmN1cnJlbnRKSVQgPSBPcHRpb25zOjplbmFibGVDb25jdXJyZW50SklUKCk7CisjZWxzZSAvLyBF
TkFCTEUoQ09OQ1VSUkVOVF9KSVQpCisgICAgZW5hYmxlQ29uY3VycmVudEpJVCA9IGZhbHNlOwor
I2VuZGlmIC8vIEVOQUJMRShDT05DVVJSRU5UX0pJVCkKKyAgICBpZiAoZW5hYmxlQ29uY3VycmVu
dEpJVCkgeworICAgICAgICBXb3JrbGlzdCogd29ya2xpc3QgPSBlbnN1cmVHbG9iYWxXb3JrbGlz
dEZvcihtb2RlKTsKICAgICAgICAgcGxhbi0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKICAgICAgICAg
aWYgKGxvZ0NvbXBpbGF0aW9uQ2hhbmdlcygpKQogICAgICAgICAgICAgZGF0YUxvZygiRGVmZXJy
aW5nIERGRyBjb21waWxhdGlvbiBvZiAiLCAqY29kZUJsb2NrLCAiIHdpdGggcXVldWUgbGVuZ3Ro
ICIsIHdvcmtsaXN0LT5xdWV1ZUxlbmd0aCgpLCAiLlxuIik7CkBAIC0xMDIsMjEgKzExOCwyMiBA
QCBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiB9CiAjZWxzZSAvLyBFTkFC
TEUoREZHX0pJVCkKIHN0YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKLSAgICBW
TSYsIENvZGVCbG9jayosIENvbXBpbGF0aW9uTW9kZSwgdW5zaWduZWQsIGNvbnN0IE9wZXJhbmRz
PEpTVmFsdWU+JiwKLSAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4s
IFdvcmtsaXN0KikKKyAgICBWTSYsIENvZGVCbG9jayosIENvZGVCbG9jayosIENvbXBpbGF0aW9u
TW9kZSwgdW5zaWduZWQsIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiwKKyAgICBQYXNzUmVmUHRy
PERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4pCiB7CiAgICAgcmV0dXJuIENvbXBpbGF0aW9u
RmFpbGVkOwogfQogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogCiBDb21waWxhdGlvblJlc3Vs
dCBjb21waWxlKAotICAgIFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvbXBpbGF0aW9u
TW9kZSBtb2RlLCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCi0gICAgY29uc3QgT3Bl
cmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMsCi0gICAgUGFzc1JlZlB0cjxEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2s+IHBhc3NlZENhbGxiYWNrLCBXb3JrbGlzdCogd29ya2xpc3Qp
CisgICAgVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUJsb2NrKiBwcm9maWxlZERG
R0NvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUsCisgICAgdW5zaWduZWQgb3NyRW50cnlC
eXRlY29kZUluZGV4LCBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcywK
KyAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gcGFzc2VkQ2FsbGJh
Y2spCiB7CiAgICAgUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY2FsbGJhY2sg
PSBwYXNzZWRDYWxsYmFjazsKICAgICBDb21waWxhdGlvblJlc3VsdCByZXN1bHQgPSBjb21waWxl
SW1wbCgKLSAgICAgICAgdm0sIGNvZGVCbG9jaywgbW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4
LCBtdXN0SGFuZGxlVmFsdWVzLCBjYWxsYmFjaywgd29ya2xpc3QpOworICAgICAgICB2bSwgY29k
ZUJsb2NrLCBwcm9maWxlZERGR0NvZGVCbG9jaywgbW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4
LCBtdXN0SGFuZGxlVmFsdWVzLAorICAgICAgICBjYWxsYmFjayk7CiAgICAgaWYgKHJlc3VsdCAh
PSBDb21waWxhdGlvbkRlZmVycmVkKQogICAgICAgICBjYWxsYmFjay0+Y29tcGlsYXRpb25EaWRD
b21wbGV0ZShjb2RlQmxvY2ssIHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNDAsMTYgKzQwLDE0IEBAIGNsYXNzIFZNOwogCiBuYW1lc3BhY2UgREZHIHsKIAotY2xh
c3MgV29ya2xpc3Q7Ci0KIEpTX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIGdldE51bUNvbXBpbGF0
aW9ucygpOwogCiAvLyBJZiB0aGUgd29ya2xpc3QgaXMgbm9uLW51bGwsIHdlIGRvIGEgY29uY3Vy
cmVudCBjb21waWxlLiBPdGhlcndpc2Ugd2UgZG8gYSBzeW5jaHJvbm91cwogLy8gY29tcGlsZS4g
RXZlbiBpZiB3ZSBkbyBhIHN5bmNocm9ub3VzIGNvbXBpbGUsIHdlIGNhbGwgdGhlIGNhbGxiYWNr
IHdpdGggdGhlIHJlc3VsdC4KIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGUoCi0gICAgVk0mLCBD
b2RlQmxvY2sqLCBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRl
eCwKLSAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcywKLSAgICBQ
YXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4sIFdvcmtsaXN0Kik7CisgICAg
Vk0mLCBDb2RlQmxvY2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxh
dGlvbk1vZGUsCisgICAgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LCBjb25zdCBPcGVy
YW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcywKKyAgICBQYXNzUmVmUHRyPERlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjaz4pOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5j
cHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFp
bGVkRmluYWxpemVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTEgQEAgRmFpbGVk
RmluYWxpemVyOjp+RmFpbGVkRmluYWxpemVyKCkKIHsKIH0KIAorc2l6ZV90IEZhaWxlZEZpbmFs
aXplcjo6Y29kZVNpemUoKQoreworICAgIHJldHVybiAwOworfQorCiBib29sIEZhaWxlZEZpbmFs
aXplcjo6ZmluYWxpemUoKQogewogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuaAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAgICAgRmFpbGVkRmluYWxpemVy
KFBsYW4mKTsKICAgICB2aXJ0dWFsIH5GYWlsZWRGaW5hbGl6ZXIoKTsKICAgICAKKyAgICB2aXJ0
dWFsIHNpemVfdCBjb2RlU2l6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6
ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZUZ1bmN0aW9uKCkgb3ZlcnJp
ZGU7CiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpbmFsaXplci5oCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpbmFsaXpl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICBGaW5hbGl6
ZXIoUGxhbiYpOwogICAgIHZpcnR1YWwgfkZpbmFsaXplcigpOwogICAgIAorICAgIHZpcnR1YWwg
c2l6ZV90IGNvZGVTaXplKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZSgpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemVGdW5jdGlvbigpID0gMDsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDAsMTIgKzEwMCwxNCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEJpdFJT
aGlmdDoKICAgICAgICAgY2FzZSBCaXRMU2hpZnQ6CiAgICAgICAgIGNhc2UgQml0VVJTaGlmdDog
ewotICAgICAgICAgICAgZml4QmluYXJ5SW50RWRnZXMoKTsKKyAgICAgICAgICAgIGZpeEludEVk
Z2Uobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4SW50RWRnZShub2RlLT5jaGlsZDIo
KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQXJpdGhJ
TXVsOiB7Ci0gICAgICAgICAgICBmaXhCaW5hcnlJbnRFZGdlcygpOworICAgICAgICAgICAgZml4
SW50RWRnZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhJbnRFZGdlKG5vZGUtPmNo
aWxkMigpKTsKICAgICAgICAgICAgIG5vZGUtPnNldE9wKEFyaXRoTXVsKTsKICAgICAgICAgICAg
IG5vZGUtPnNldEFyaXRoTW9kZShBcml0aDo6VW5jaGVja2VkKTsKICAgICAgICAgICAgIG5vZGUt
PmNoaWxkMSgpLnNldFVzZUtpbmQoSW50MzJVc2UpOwpAQCAtNDUwLDYgKzQ1Miw3IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgR2V0QnlWYWw6IHsKICAgICAgICAgICAgIG5vZGUtPnNldEFycmF5
TW9kZSgKICAgICAgICAgICAgICAgICBub2RlLT5hcnJheU1vZGUoKS5yZWZpbmUoCisgICAgICAg
ICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4sCiAgICAgICAgICAgICAgICAg
ICAgIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCksCiAgICAgICAgICAgICAgICAgICAgIG5v
ZGUtPmNoaWxkMigpLT5wcmVkaWN0aW9uKCksCiAgICAgICAgICAgICAgICAgICAgIFNwZWNOb25l
LCBub2RlLT5mbGFncygpKSk7CkBAIC01MDcsNiArNTEwLDcgQEAgcHJpdmF0ZToKIAogICAgICAg
ICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKAogICAgICAgICAgICAgICAgIG5vZGUtPmFycmF5TW9k
ZSgpLnJlZmluZSgKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaCwgbm9kZS0+Y29kZU9yaWdp
biwKICAgICAgICAgICAgICAgICAgICAgY2hpbGQxLT5wcmVkaWN0aW9uKCksCiAgICAgICAgICAg
ICAgICAgICAgIGNoaWxkMi0+cHJlZGljdGlvbigpLAogICAgICAgICAgICAgICAgICAgICBjaGls
ZDMtPnByZWRpY3Rpb24oKSkpOwpAQCAtNTkyLDYgKzU5Niw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAvLyB0aGF0IHdvdWxkIGJyZWFrIHRoaW5ncy4KICAgICAgICAgICAgIG5vZGUtPnNldEFy
cmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2RlLT5hcnJheU1vZGUoKS5yZWZpbmUoCisgICAg
ICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4sCiAgICAgICAgICAgICAg
ICAgICAgIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCkgJiBTcGVjQ2VsbCwKICAgICAgICAg
ICAgICAgICAgICAgU3BlY0ludDMyLAogICAgICAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDIo
KS0+cHJlZGljdGlvbigpKSk7CkBAIC05NDYsNyArOTUxLDYgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICBPcEluZm8obV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+Y29kZU9yaWdpbikp
KTsKICAgICAgICAgICAgIE5vZGUqIGJhcnJpZXJOb2RlID0gbV9ncmFwaC5hZGROb2RlKFNwZWNO
b25lLCBDb25kaXRpb25hbFN0b3JlQmFycmllciwgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwg
CiAgICAgICAgICAgICAgICAgRWRnZShnbG9iYWxPYmplY3ROb2RlLCBLbm93bkNlbGxVc2UpLCBF
ZGdlKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgVW50eXBlZFVzZSkpOwotICAgICAgICAgICAgZml4
dXBOb2RlKGJhcnJpZXJOb2RlKTsKICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydCht
X2luZGV4SW5CbG9jaywgYmFycmllck5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KQEAgLTk1NCw3ICs5NTgsNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFRlYXJPZmZBY3Rp
dmF0aW9uOiB7CiAgICAgICAgICAgICBOb2RlKiBiYXJyaWVyTm9kZSA9IG1fZ3JhcGguYWRkTm9k
ZShTcGVjTm9uZSwgU3RvcmVCYXJyaWVyV2l0aE51bGxDaGVjaywgbV9jdXJyZW50Tm9kZS0+Y29k
ZU9yaWdpbiwgCiAgICAgICAgICAgICAgICAgRWRnZShub2RlLT5jaGlsZDEoKS5ub2RlKCksIFVu
dHlwZWRVc2UpKTsKLSAgICAgICAgICAgIGZpeHVwTm9kZShiYXJyaWVyTm9kZSk7CiAgICAgICAg
ICAgICBtX2luc2VydGlvblNldC5pbnNlcnQobV9pbmRleEluQmxvY2ssIGJhcnJpZXJOb2RlKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMDM0LDYgKzEwMzcsMjQgQEAgcHJp
dmF0ZToKICAgICAgICAgCiAgICAgICAgIGlmICghbm9kZS0+Y29udGFpbnNNb3ZIaW50KCkpCiAg
ICAgICAgICAgICBERkdfTk9ERV9ET19UT19DSElMRFJFTihtX2dyYXBoLCBub2RlLCBvYnNlcnZl
VW50eXBlZEVkZ2UpOworICAgICAgICAKKyAgICAgICAgaWYgKG5vZGUtPmlzVGVybWluYWwoKSkg
eworICAgICAgICAgICAgLy8gVGVybWluYWwgbm9kZXMgZG9uJ3QgbmVlZCBwb3N0LXBoYW50b21z
LCBhbmQgaW5zZXJ0aW5nIHRoZW0gd291bGQgdmlvbGF0ZQorICAgICAgICAgICAgLy8gdGhlIGN1
cnJlbnQgcmVxdWlyZW1lbnQgdGhhdCBhIHRlcm1pbmFsIGlzIHRoZSBsYXN0IHRoaW5nIGluIGEg
YmxvY2suIFdlCisgICAgICAgICAgICAvLyBzaG91bGQgZXZlbnR1YWxseSBjaGFuZ2UgdGhhdCBy
ZXF1aXJlbWVudCBidXQgZXZlbiBpZiB3ZSBkaWQsIHRoaXMgd291bGQKKyAgICAgICAgICAgIC8v
IHN0aWxsIGJlIGEgdmFsaWQgb3B0aW1pemF0aW9uLiBBbGwgdGVybWluYWxzIGFjY2VwdCBqdXN0
IG9uZSBpbnB1dCwgYW5kCisgICAgICAgICAgICAvLyBpZiB0aGF0IGlucHV0IGlzIGEgY29udmVy
c2lvbiBub2RlIHRoZW4gbm8gZnVydGhlciBzcGVjdWxhdGlvbnMgd2lsbCBiZQorICAgICAgICAg
ICAgLy8gcGVyZm9ybWVkLgorICAgICAgICAgICAgLy8gRklYTUU6IEdldCByaWQgb2YgdGhpcyBi
eSBhbGxvd2luZyBQaGFudG9tcyBhZnRlciB0ZXJtaW5hbHMuCisgICAgICAgICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2Nzc4CisgICAgICAgICAgICBt
X3JlcXVpcmVkUGhhbnRvbXMucmVzaXplKDApOworICAgICAgICAvLyBTaW5jZSBTdG9yZUJhcnJp
ZXJzIGFyZSByZWN1cnNpdmVseSBmaXhlZCB1cCBzbyB0aGF0IHRoZWlyIGNoaWxkcmVuIGxvb2sg
CisgICAgICAgIC8vIGlkZW50aWNhbCB0byB0aGF0IG9mIHRoZSBub2RlIHRoZXkncmUgYmFycmll
ci1pbmcsIHdlIG5lZWQgdG8gYXZvaWQgYWRkaW5nCisgICAgICAgIC8vIGFueSBQaGFudG9tcyB3
aGVuIHByb2Nlc3NpbmcgdGhlbSBiZWNhdXNlIHRoaXMgd291bGQgaW52YWxpZGF0ZSB0aGUgCisg
ICAgICAgIC8vIEluc2VydGlvblNldCdzIGludmFyaWFudCBvZiBpbnNlcnRpbmcgdGhpbmdzIGlu
IGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nCisgICAgICAgIC8vIG9yZGVyLiBUaGlzIHNob3Vs
ZCBiZSBva2F5IGFueXdheXMgYmVjYXVzZSBTdG9yZUJhcnJpZXJzIGNhbid0IGV4aXQuIAorICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFkZFBoYW50b21zSWZOZWNlc3NhcnkoKTsKICAgICB9
CiAgICAgCiAgICAgdm9pZCBvYnNlcnZlVW50eXBlZEVkZ2UoTm9kZSosIEVkZ2UmIGVkZ2UpCkBA
IC0xMzE5LDYgKzEzNDAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CisgICAgICAgICAgICBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5KCk7CiAgICAgICAgIH0KICAgICAg
ICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0ZShibG9jayk7CiAgICAgfQpAQCAtMTMzNCw4ICsxMzU2
LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSAhPSBTZXRMb2NhbCkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYg
KG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKQorICAgICAgICAgICAgaWYg
KG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKSB7CiAgICAgICAgICAgICAg
ICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAg
YWRkUGhhbnRvbXNJZk5lY2Vzc2FyeSgpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
ICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOwogICAgIH0KQEAgLTE1MDksNiArMTUz
Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgLy8gSW50OFRvRG91YmxlIHdpbGwgY29u
dmVydCBpbnQ1MidzIHRoYXQgZml0IGluIGFuIGludDMyIGludG8gYSBkb3VibGUKICAgICAgICAg
ICAgICAgICAvLyByYXRoZXIgdGhhbiB0cnlpbmcgdG8gY3JlYXRlIGEgYm94ZWQgaW50MzIgbGlr
ZSBJbnQ1MlRvVmFsdWUgZG9lcy4KICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBt
X3JlcXVpcmVkUGhhbnRvbXMuYXBwZW5kKGVkZ2Uubm9kZSgpKTsKICAgICAgICAgICAgICAgICBO
b2RlKiByZXN1bHQgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgICAg
ICAgICBtX2luZGV4SW5CbG9jaywgU3BlY0ludDUyQXNEb3VibGUsIEludDUyVG9Eb3VibGUsCiAg
ICAgICAgICAgICAgICAgICAgIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5u
b2RlKCksIE51bWJlclVzZSkpOwpAQCAtMTU2Miw2ICsxNTg3LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIC8vCiAgICAgICAgICAgICAvLyBCdXQgdGhlIHNvbHV0aW9uIHdlIHVzZSBoYW5kbGVz
IHRoZSBhYm92ZSBncmFjZWZ1bGx5LgogICAgICAgICAgICAgCisgICAgICAgICAgICBtX3JlcXVp
cmVkUGhhbnRvbXMuYXBwZW5kKGVkZ2Uubm9kZSgpKTsKICAgICAgICAgICAgIE5vZGUqIHJlc3Vs
dCA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAgICAgICAgICAgbV9pbmRleElu
QmxvY2ssIFNwZWNJbnQ1MiwgSW50NTJUb1ZhbHVlLAogICAgICAgICAgICAgICAgIG1fY3VycmVu
dE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5ub2RlKCksIFVudHlwZWRVc2UpKTsKQEAgLTE1
ODMsMTYgKzE2MDksMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJhcnJpZXJOb2RlID0gbV9n
cmFwaC5hZGROb2RlKFNwZWNOb25lLCBDb25kaXRpb25hbFN0b3JlQmFycmllciwgbV9jdXJyZW50
Tm9kZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAgICAgICAgRWRnZShjaGlsZDEubm9kZSgpLCBj
aGlsZDEudXNlS2luZCgpKSwgRWRnZShjaGlsZDIubm9kZSgpLCBjaGlsZDIudXNlS2luZCgpKSk7
CiAgICAgICAgIH0KLSAgICAgICAgZml4dXBOb2RlKGJhcnJpZXJOb2RlKTsKICAgICAgICAgbV9p
bnNlcnRpb25TZXQuaW5zZXJ0KGluZGV4SW5CbG9jaywgYmFycmllck5vZGUpOwogICAgIH0KIAot
ICAgIGJvb2wgZml4SW50RWRnZShFZGdlJiBlZGdlKQorICAgIHZvaWQgZml4SW50RWRnZShFZGdl
JiBlZGdlKQogICAgIHsKICAgICAgICAgTm9kZSogbm9kZSA9IGVkZ2Uubm9kZSgpOwogICAgICAg
ICBpZiAobm9kZS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkgewogICAgICAgICAgICAgZml4RWRn
ZTxJbnQzMlVzZT4oZWRnZSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIFVzZUtpbmQgdXNlS2luZDsK
QEAgLTE2MTAsMjQgKzE2MzUsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgb2JzZXJ2ZVVzZUtpbmRP
bk5vZGUobm9kZSwgdXNlS2luZCk7CiAgICAgICAgIAogICAgICAgICBlZGdlID0gRWRnZShuZXdO
b2RlLCBLbm93bkludDMyVXNlKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAot
ICAgIHZvaWQgZml4QmluYXJ5SW50RWRnZXMoKQotICAgIHsKLSAgICAgICAgQWRqYWNlbmN5TGlz
dCBjaGlsZHJlbiA9IG1fY3VycmVudE5vZGUtPmNoaWxkcmVuOwotICAgICAgICAKLSAgICAgICAg
Ly8gQ2FsbCBmaXhJbnRFZGdlKCkgb24gYm90aCBlZGdlcy4KLSAgICAgICAgYm9vbCBuZWVkUGhh
bnRvbSA9Ci0gICAgICAgICAgICBmaXhJbnRFZGdlKG1fY3VycmVudE5vZGUtPmNoaWxkMSgpKSB8
IGZpeEludEVkZ2UobV9jdXJyZW50Tm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAKLSAgICAgICAg
aWYgKCFuZWVkUGhhbnRvbSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9pbnNlcnRp
b25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9jayArIDEsIFNwZWNOb25lLCBQaGFudG9tLCBt
X2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBjaGlsZHJlbik7CisgICAgICAgIG1fcmVxdWlyZWRQ
aGFudG9tcy5hcHBlbmQobm9kZSk7CiAgICAgfQogICAgIAogICAgIHZvaWQgaW5qZWN0SW50MzJU
b0RvdWJsZU5vZGUoRWRnZSYgZWRnZSwgVXNlS2luZCB1c2VLaW5kID0gTnVtYmVyVXNlKQogICAg
IHsKKyAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLmFwcGVuZChlZGdlLm5vZGUoKSk7CisgICAg
ICAgIAogICAgICAgICBOb2RlKiByZXN1bHQgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAog
ICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNJbnQ1MkFzRG91YmxlLCBJbnQzMlRvRG91
YmxlLAogICAgICAgICAgICAgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgRWRnZShlZGdlLm5v
ZGUoKSwgTnVtYmVyVXNlKSk7CkBAIC0xNzIyLDcgKzE3MzYsOCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgYXJyYXlNb2RlID0gYXJy
YXlNb2RlLnJlZmluZShub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLCBub2RlLT5wcmVkaWN0
aW9uKCkpOworICAgICAgICBhcnJheU1vZGUgPSBhcnJheU1vZGUucmVmaW5lKAorICAgICAgICAg
ICAgbV9ncmFwaCwgbm9kZS0+Y29kZU9yaWdpbiwgbm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24o
KSwgbm9kZS0+cHJlZGljdGlvbigpKTsKICAgICAgICAgICAgIAogICAgICAgICBpZiAoYXJyYXlN
b2RlLnR5cGUoKSA9PSBBcnJheTo6R2VuZXJpYykgewogICAgICAgICAgICAgLy8gQ2hlY2sgaWYg
dGhlIGlucHV0IGlzIHNvbWV0aGluZyB0aGF0IHdlIGNhbid0IGdldCBhcnJheSBsZW5ndGggZm9y
LCBidXQgZm9yIHdoaWNoIHdlCkBAIC0xODEzLDEyICsxODI4LDI3IEBAIHByaXZhdGU6CiAgICAg
ICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KKyAgICAKKyAgICB2b2lkIGFkZFBoYW50b21zSWZOZWNlc3NhcnkoKQor
ICAgIHsKKyAgICAgICAgaWYgKG1fcmVxdWlyZWRQaGFudG9tcy5pc0VtcHR5KCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3JlcXVp
cmVkUGhhbnRvbXMuc2l6ZSgpOyBpLS07KSB7CisgICAgICAgICAgICBtX2luc2VydGlvblNldC5p
bnNlcnROb2RlKAorICAgICAgICAgICAgICAgIG1faW5kZXhJbkJsb2NrICsgMSwgU3BlY05vbmUs
IFBoYW50b20sIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgRWRn
ZShtX3JlcXVpcmVkUGhhbnRvbXNbaV0sIFVudHlwZWRVc2UpKTsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLnJlc2l6ZSgwKTsKKyAgICB9CiAKICAgICBC
YXNpY0Jsb2NrKiBtX2Jsb2NrOwogICAgIHVuc2lnbmVkIG1faW5kZXhJbkJsb2NrOwogICAgIE5v
ZGUqIG1fY3VycmVudE5vZGU7CiAgICAgSW5zZXJ0aW9uU2V0IG1faW5zZXJ0aW9uU2V0OwogICAg
IGJvb2wgbV9wcm9maXRhYmlsaXR5Q2hhbmdlZDsKKyAgICBWZWN0b3I8Tm9kZSosIDM+IG1fcmVx
dWlyZWRQaGFudG9tczsKIH07CiAgICAgCiBib29sIHBlcmZvcm1GaXh1cChHcmFwaCYgZ3JhcGgp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMTYy
OTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDggKzM2LDEwIEBACiAjaW5jbHVkZSAiRnVuY3Rpb25FeGVjdXRhYmxlRHVt
cC5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgorI2luY2x1
ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3BlcmFuZHNJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25t
ZW50LmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0
RHVtcC5oPgogCkBAIC02NzgsMTAgKzY4MCwxMCBAQCBGdWxsQnl0ZWNvZGVMaXZlbmVzcyYgR3Jh
cGg6OmxpdmVuZXNzRm9yCiBib29sIEdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdp
c3RlciBvcGVyYW5kLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiB7CiAgICAgZm9yICg7Oykgewor
ICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0gVmlydHVhbFJlZ2lzdGVyKAorICAgICAgICAg
ICAgb3BlcmFuZC5vZmZzZXQoKSAtIGNvZGVPcmlnaW4uc3RhY2tPZmZzZXQoKSk7CisgICAgICAg
IAogICAgICAgICBpZiAob3BlcmFuZC5vZmZzZXQoKSA8IGNvZGVPcmlnaW4uc3RhY2tPZmZzZXQo
KSArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpIHsKLSAgICAgICAgICAgIFZpcnR1YWxS
ZWdpc3RlciByZWcgPSBWaXJ0dWFsUmVnaXN0ZXIoCi0gICAgICAgICAgICAgICAgb3BlcmFuZC5v
ZmZzZXQoKSAtIGNvZGVPcmlnaW4uc3RhY2tPZmZzZXQoKSk7Ci0gICAgICAgICAgICAKICAgICAg
ICAgICAgIGlmIChyZWcuaXNBcmd1bWVudCgpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQocmVnLm9mZnNldCgpIDwgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSk7CiAgICAg
ICAgICAgICAgICAgCkBAIC03MDAsMTAgKzcwMiwxOCBAQCBib29sIEdyYXBoOjppc0xpdmVJbkJ5
dGVjb2RlKFZpcnR1YWxSZWdpCiAgICAgICAgICAgICAgICAgcmVnLm9mZnNldCgpLCBjb2RlT3Jp
Z2luLmJ5dGVjb2RlSW5kZXgpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAoIWNv
ZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKQorICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGlu
ZUNhbGxGcmFtZSA9IGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lOworICAgICAgICBpZiAoIWlu
bGluZUNhbGxGcmFtZSkKICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIEFyZ3VtZW50
cyBhcmUgYWx3YXlzIGxpdmUuIFRoaXMgd291bGQgYmUgcmVkdW5kYW50IGlmIGl0IHdhc24ndCBm
b3Igb3VyCisgICAgICAgIC8vIG9wX2NhbGxfdmFyYXJncyBpbmxpbmluZy4KKyAgICAgICAgaWYg
KHJlZy5pc0FyZ3VtZW50KCkKKyAgICAgICAgICAgICYmIHJlZy50b0FyZ3VtZW50KCkKKyAgICAg
ICAgICAgICYmIHN0YXRpY19jYXN0PHNpemVfdD4ocmVnLnRvQXJndW1lbnQoKSkgPCBpbmxpbmVD
YWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgCi0gICAgICAgIGNvZGVPcmlnaW4gPSBjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZS0+
Y2FsbGVyOworICAgICAgICBjb2RlT3JpZ2luID0gaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7CiAg
ICAgfQogICAgIAogICAgIHJldHVybiB0cnVlOwpAQCAtNzExLDcgKzcyMSwxMyBAQCBib29sIEdy
YXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpCiAKIHVuc2lnbmVkIEdyYXBoOjpmcmFt
ZVJlZ2lzdGVyQ291bnQoKQogewotICAgIHJldHVybiBtX25leHRNYWNoaW5lTG9jYWwgKyBtX3Bh
cmFtZXRlclNsb3RzOworICAgIHVuc2lnbmVkIHJlc3VsdCA9IG1fbmV4dE1hY2hpbmVMb2NhbCAr
IHN0ZDo6bWF4KG1fcGFyYW1ldGVyU2xvdHMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJzKSk7CisgICAgcmV0dXJuIHJvdW5kTG9j
YWxSZWdpc3RlckNvdW50Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KHJlc3VsdCk7Cit9CisKK3Vuc2ln
bmVkIEdyYXBoOjpzdGFja1BvaW50ZXJPZmZzZXQoKQoreworICAgIHJldHVybiB2aXJ0dWFsUmVn
aXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVyQ291bnQoKSAtIDEpLm9mZnNldCgpOwogfQogCiB1
bnNpZ25lZCBHcmFwaDo6cmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5Myw2ICs3
OTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3Rl
ciwgQ29kZU9yaWdpbik7CiAgICAgCiAgICAgdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50KCk7
CisgICAgdW5zaWduZWQgc3RhY2tQb2ludGVyT2Zmc2V0KCk7CiAgICAgdW5zaWduZWQgcmVxdWly
ZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpOwogICAgIHVuc2lnbmVkIHJlcXVpcmVkUmVnaXN0ZXJD
b3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU2LDYgKzE1
Niw3IEBAIHZvaWQgSklUQ29kZTo6c2V0T3B0aW1pemF0aW9uVGhyZXNob2xkQmEKICAgICBzd2l0
Y2ggKHJlc3VsdCkgewogICAgIGNhc2UgQ29tcGlsYXRpb25TdWNjZXNzZnVsOgogICAgICAgICBv
cHRpbWl6ZU5leHRJbnZvY2F0aW9uKGNvZGVCbG9jayk7CisgICAgICAgIGNvZGVCbG9jay0+YmFz
ZWxpbmVWZXJzaW9uKCktPm1faGFzQmVlbkNvbXBpbGVkV2l0aEZUTCA9IHRydWU7CiAgICAgICAg
IHJldHVybjsKICAgICBjYXNlIENvbXBpbGF0aW9uRmFpbGVkOgogICAgICAgICBkb250T3B0aW1p
emVBbnl0aW1lU29vbihjb2RlQmxvY2spOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb2RlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTksNiArMTE5LDcgQEAgcHVibGljOgog
ICAgIFZlY3RvcjxERkc6Ok9TUkVudHJ5RGF0YT4gb3NyRW50cnk7CiAgICAgU2VnbWVudGVkVmVj
dG9yPERGRzo6T1NSRXhpdCwgOD4gb3NyRXhpdDsKICAgICBWZWN0b3I8REZHOjpTcGVjdWxhdGlv
blJlY292ZXJ5PiBzcGVjdWxhdGlvblJlY292ZXJ5OworICAgIFZlY3Rvcjx1bnNpZ25lZD4gc2xv
d1BhdGhDYWxsczsKICAgICBERkc6OlZhcmlhYmxlRXZlbnRTdHJlYW0gdmFyaWFibGVFdmVudFN0
cmVhbTsKICAgICBERkc6Ok1pbmlmaWVkR3JhcGggbWluaWZpZWRERkc7CiAjaWYgRU5BQkxFKEZU
TF9KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVy
LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdK
SVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVO
QUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIK
ICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdGYWlsZWRGaW5hbGl6ZXIuaCIK
ICNpbmNsdWRlICJERkdJbmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmgiCkBAIC00MCw2ICs0MSw3
IEBACiAjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVKSVQuaCIKICNpbmNsdWRlICJERkdUaHVua3Mu
aCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlICJMaW5rQnVm
ZmVyLmgiCiAKQEAgLTkyLDE1ICs5NCwxNCBAQCB2b2lkIEpJVENvbXBpbGVyOjpsaW5rT1NSRXhp
dHMoKQogdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUVudHJ5KCkKIHsKICAgICAvLyBUaGlzIGNv
ZGUgY3VycmVudGx5IG1hdGNoZXMgdGhlIG9sZCBKSVQuIEluIHRoZSBmdW5jdGlvbiBoZWFkZXIg
d2UgbmVlZCB0bwotICAgIC8vIHBvcCB0aGUgcmV0dXJuIGFkZHJlc3MgKHNpbmNlIHdlIGRvIG5v
dCBhbGxvdyBhbnkgcmVjdXJzaW9uIG9uIHRoZSBtYWNoaW5lCi0gICAgLy8gc3RhY2spLCBhbmQg
cGVyZm9ybSBhIGZhc3Qgc3RhY2sgY2hlY2suCisgICAgLy8gc2F2ZSByZXR1cm4gYWRkcmVzcyBh
bmQgY2FsbCBmcmFtZSB2aWEgdGhlIHByb2xvZ3VlIGFuZCBwZXJmb3JtIGEgZmFzdCBzdGFjayBj
aGVjay4KICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU2MjkyCiAgICAgLy8gV2UnbGwgbmVlZCB0byBjb252ZXJ0IHRoZSByZW1haW5pbmcgY3Rp
XyBzdHlsZSBjYWxscyAoc3BlY2lmaWNhbGx5IHRoZSBzdGFjawogICAgIC8vIGNoZWNrKSB3aGlj
aCB3aWxsIGJlIGRlcGVuZGVudCBvbiBzdGFjayBsYXlvdXQuIChXZSdkIG5lZWQgdG8gYWNjb3Vu
dCBmb3IgdGhpcyBpbgogICAgIC8vIGJvdGggbm9ybWFsIHJldHVybiBjb2RlIGFuZCB3aGVuIGp1
bXBpbmcgdG8gYW4gZXhjZXB0aW9uIGhhbmRsZXIpLgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVz
c0FmdGVyQ2FsbChHUFJJbmZvOjpyZWdUMik7Ci0gICAgZW1pdFB1dFJldHVyblBDVG9DYWxsRnJh
bWVIZWFkZXIoR1BSSW5mbzo6cmVnVDIpOworICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAg
ICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0YWNr
OjpDb2RlQmxvY2spOworICAgIGppdEFzc2VydFRhZ3NJblBsYWNlKCk7CiB9CiAKIHZvaWQgSklU
Q29tcGlsZXI6OmNvbXBpbGVCb2R5KCkKQEAgLTEyMSwyMiArMTIyLDI1IEBAIHZvaWQgSklUQ29t
cGlsZXI6OmNvbXBpbGVFeGNlcHRpb25IYW5kbGUKIAogICAgIGlmICghbV9leGNlcHRpb25DaGVj
a3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2suZW1wdHkoKSkgewogICAgICAgICBtX2V4Y2VwdGlvbkNo
ZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFjay5saW5rKHRoaXMpOwotICAgICAgICBlbWl0R2V0Q2Fs
bGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Cisg
ICAgICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6
YXJndW1lbnRHUFIxKTsKICAgICAgICAgZG9Mb29rdXAgPSBqdW1wKCk7CiAgICAgfQogCiAgICAg
aWYgKCFtX2V4Y2VwdGlvbkNoZWNrcy5lbXB0eSgpKQogICAgICAgICBtX2V4Y2VwdGlvbkNoZWNr
cy5saW5rKHRoaXMpOwogCi0gICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQg
b25lIGFyZ3VtZW50LCB0aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgotICAgIG1vdmUoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgLy8gbG9v
a3VwRXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQgdHdvIGFyZ3VtZW50cywgdGhlIFZNIGFuZCB0
aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgorICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAKICAgICBpZiAoZG9Mb29rdXAuaXNTZXQo
KSkKICAgICAgICAgZG9Mb29rdXAubGluayh0aGlzKTsKIAorICAgIG1vdmUoVHJ1c3RlZEltbVB0
cih2bSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKwogI2lmIENQVShYODYpCiAgICAgLy8g
RklYTUU6IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1cnJl
bnRseSBpbiB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5ZXIhCiAgICAgcG9rZShHUFJJbmZvOjphcmd1
bWVudEdQUjApOworICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCAxKTsKICNlbmRpZgog
ICAgIG1fY2FsbHMuYXBwZW5kKENhbGxMaW5rUmVjb3JkKGNhbGwoKSwgbG9va3VwRXhjZXB0aW9u
SGFuZGxlcikpOwogICAgIGp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIoKTsKQEAgLTIyOCwxMyArMjMy
LDE2IEBAIHZvaWQgSklUQ29tcGlsZXI6OmxpbmsoTGlua0J1ZmZlciYgbGlua0IKICAgICAgICAg
aW5mby5wYXRjaC5kZWx0YUNhbGxUb1Nsb3dDYXNlID0gZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRy
KGNhbGxSZXR1cm5Mb2NhdGlvbiwgbGlua0J1ZmZlci5sb2NhdGlvbk9mKG1faW5zW2ldLm1fc2xv
d1BhdGhHZW5lcmF0b3ItPmxhYmVsKCkpKTsKICAgICB9CiAgICAgCisgICAgUkVMRUFTRV9BU1NF
UlQoIW1fZ3JhcGgubV9wbGFuLndpbGxUcnlUb1RpZXJVcCB8fCBtX2ppdENvZGUtPnNsb3dQYXRo
Q2FsbHMuc2l6ZSgpID49IG1fanNDYWxscy5zaXplKCkpOwogICAgIG1fY29kZUJsb2NrLT5zZXRO
dW1iZXJPZkNhbGxMaW5rSW5mb3MobV9qc0NhbGxzLnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1fanNDYWxscy5zaXplKCk7ICsraSkgewogICAgICAgICBDYWxsTGlua0lu
Zm8mIGluZm8gPSBtX2NvZGVCbG9jay0+Y2FsbExpbmtJbmZvKGkpOwogICAgICAgICBpbmZvLmNh
bGxUeXBlID0gbV9qc0NhbGxzW2ldLm1fY2FsbFR5cGU7Ci0gICAgICAgIGluZm8uaXNERkcgPSB0
cnVlOwogICAgICAgICBpbmZvLmNvZGVPcmlnaW4gPSBtX2pzQ2FsbHNbaV0ubV9jb2RlT3JpZ2lu
OwotICAgICAgICBsaW5rQnVmZmVyLmxpbmsobV9qc0NhbGxzW2ldLm1fc2xvd0NhbGwsIEZ1bmN0
aW9uUHRyKChtX3ZtLT5nZXRDVElTdHViKGluZm8uY2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpD
b25zdHJ1Y3QgPyBsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IgOiBsaW5rQ2FsbFRodW5rR2Vu
ZXJhdG9yKSkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgVGh1bmtHZW5l
cmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgICAgICAgICAgaW5m
by5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3Qg
OiBDb2RlRm9yQ2FsbCwKKyAgICAgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWly
ZWQpOworICAgICAgICBsaW5rQnVmZmVyLmxpbmsobV9qc0NhbGxzW2ldLm1fc2xvd0NhbGwsIEZ1
bmN0aW9uUHRyKG1fdm0tPmdldENUSVN0dWIoZ2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSkpOwogICAgICAgICBpbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGxpbmtCdWZmZXIu
bG9jYXRpb25PZk5lYXJDYWxsKG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxsKTsKICAgICAgICAgaW5m
by5ob3RQYXRoQmVnaW4gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2YobV9qc0NhbGxzW2ldLm1fdGFy
Z2V0VG9DaGVjayk7CiAgICAgICAgIGluZm8uaG90UGF0aE90aGVyID0gbGlua0J1ZmZlci5sb2Nh
dGlvbk9mTmVhckNhbGwobV9qc0NhbGxzW2ldLm1fZmFzdENhbGwpOwpAQCAtMjc4LDYgKzI4NSw4
IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGUoKQogICAgIHNldFN0YXJ0T2ZDb2RlKCk7CiAg
ICAgY29tcGlsZUVudHJ5KCk7CiAgICAgbV9zcGVjdWxhdGl2ZSA9IGFkb3B0UHRyKG5ldyBTcGVj
dWxhdGl2ZUpJVCgqdGhpcykpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobV9ncmFwaC5zdGFj
a1BvaW50ZXJPZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KCk7CiAgICAgY29tcGlsZUJvZHkoKTsKICAgICBzZXRFbmRPZk1haW5QYXRoKCk7CiAK
QEAgLTMyNSwxMSArMzM0LDEyIEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVGdW5jdGlvbigp
CiAgICAgLy8gc28gZW50ZXIgYWZ0ZXIgdGhpcy4KICAgICBMYWJlbCBmcm9tQXJpdHlDaGVjayh0
aGlzKTsKICAgICAvLyBQbGFudCBhIGNoZWNrIHRoYXQgc3VmZmljaWVudCBzcGFjZSBpcyBhdmFp
bGFibGUgaW4gdGhlIEpTU3RhY2suCi0gICAgYWRkUHRyKFRydXN0ZWRJbW0zMih2aXJ0dWFsUmVn
aXN0ZXJGb3JMb2NhbChtX2dyYXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFu
ZEV4aXQoKSkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsKLSAgICBKdW1wIHN0YWNrQ2hlY2sgPSBicmFuY2hQ
dHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSks
IEdQUkluZm86OnJlZ1QxKTsKLSAgICAvLyBSZXR1cm4gaGVyZSBhZnRlciBzdGFjayBjaGVjay4K
LSAgICBMYWJlbCBmcm9tU3RhY2tDaGVjayA9IGxhYmVsKCk7CisgICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2dyYXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3Vu
dEZvckV4ZWN1dGlvbkFuZEV4aXQoKSAtIDEpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSks
IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgSnVtcCBz
dGFja092ZXJmbG93ID0gYnJhbmNoUHRyKEFib3ZlLCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+YWRk
cmVzc09mSlNTdGFja0xpbWl0KCkpLCBHUFJJbmZvOjpyZWdUMSk7CiAKKyAgICAvLyBNb3ZlIHRo
ZSBzdGFjayBwb2ludGVyIGRvd24gdG8gYWNjb21tb2RhdGUgbG9jYWxzCisgICAgYWRkUHRyKFRy
dXN0ZWRJbW0zMihtX2dyYXBoLnN0YWNrUG9pbnRlck9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVy
KSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7Cisg
ICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIC8vID09PSBGdW5jdGlvbiBi
b2R5IGNvZGUgZ2VuZXJhdGlvbiA9PT0KICAgICBtX3NwZWN1bGF0aXZlID0gYWRvcHRQdHIobmV3
IFNwZWN1bGF0aXZlSklUKCp0aGlzKSk7CkBAIC0zMzgsMTcgKzM0OCwxOSBAQCB2b2lkIEpJVENv
bXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogCiAgICAgLy8gPT09IEZ1bmN0aW9uIGZvb3RlciBj
b2RlIGdlbmVyYXRpb24gPT09CiAgICAgLy8KLSAgICAvLyBHZW5lcmF0ZSBjb2RlIHRvIHBlcmZv
cm0gdGhlIHNsb3cgc3RhY2sgY2hlY2sgKGlmIHRoZSBmYXN0IG9uZSBpbgorICAgIC8vIEdlbmVy
YXRlIGNvZGUgdG8gcGVyZm9ybSB0aGUgc3RhY2sgb3ZlcmZsb3cgaGFuZGxpbmcgKGlmIHRoZSBz
dGFjayBjaGVjayBpbgogICAgIC8vIHRoZSBmdW5jdGlvbiBoZWFkZXIgZmFpbHMpLCBhbmQgZ2Vu
ZXJhdGUgdGhlIGVudHJ5IHBvaW50IHdpdGggYXJpdHkgY2hlY2suCiAgICAgLy8KLSAgICAvLyBH
ZW5lcmF0ZSB0aGUgc3RhY2sgY2hlY2s7IGlmIHRoZSBmYXN0IGNoZWNrIGluIHRoZSBmdW5jdGlv
biBoZWFkIGZhaWxzLAotICAgIC8vIHdlIG5lZWQgdG8gY2FsbCBvdXQgdG8gYSBoZWxwZXIgZnVu
Y3Rpb24gdG8gY2hlY2sgd2hldGhlciBtb3JlIHNwYWNlIGlzIGF2YWlsYWJsZS4KLSAgICAvLyBG
SVhNRTogY2hhbmdlIHRoaXMgZnJvbSBhIGN0aSBjYWxsIHRvIGEgREZHIHN0eWxlIG9wZXJhdGlv
biAobm9ybWFsIEMgY2FsbGluZyBjb252ZW50aW9ucykuCi0gICAgc3RhY2tDaGVjay5saW5rKHRo
aXMpOworICAgIC8vIEdlbmVyYXRlIHRoZSBzdGFjayBvdmVyZmxvdyBoYW5kbGluZzsgaWYgdGhl
IHN0YWNrIGNoZWNrIGluIHRoZSBmdW5jdGlvbiBoZWFkIGZhaWxzLAorICAgIC8vIHdlIG5lZWQg
dG8gY2FsbCBvdXQgdG8gYSBoZWxwZXIgZnVuY3Rpb24gdG8gdGhyb3cgdGhlIFN0YWNrT3ZlcmZs
b3dFcnJvci4KKyAgICBzdGFja092ZXJmbG93LmxpbmsodGhpcyk7CiAKICAgICBlbWl0U3RvcmVD
b2RlT3JpZ2luKENvZGVPcmlnaW4oMCkpOwotICAgIG1fc3BlY3VsYXRpdmUtPmNhbGxPcGVyYXRp
b25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25TdGFja0NoZWNrLCBt
X2NvZGVCbG9jayk7Ci0gICAganVtcChmcm9tU3RhY2tDaGVjayk7CisKKyAgICBpZiAobWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisg
ICAgbV9zcGVjdWxhdGl2ZS0+Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhj
ZXB0aW9uKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yLCBtX2NvZGVCbG9jayk7CiAg
ICAgCiAgICAgLy8gVGhlIGZhc3QgZW50cnkgcG9pbnQgaW50byBhIGZ1bmN0aW9uIGRvZXMgbm90
IGNoZWNrIHRoZSBjb3JyZWN0IG51bWJlciBvZiBhcmd1bWVudHMKICAgICAvLyBoYXZlIGJlZW4g
cGFzc2VkIHRvIHRoZSBjYWxsICh3ZSBvbmx5IHVzZSB0aGUgZmFzdCBlbnRyeSBwb2ludCB3aGVy
ZSB3ZSBjYW4gc3RhdGljYWxseQpAQCAtMzYxLDkgKzM3MywxNSBAQCB2b2lkIEpJVENvbXBpbGVy
Ojpjb21waWxlRnVuY3Rpb24oKQogICAgIGxvYWQzMihBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRG
b3IoKFZpcnR1YWxSZWdpc3RlcilKU1N0YWNrOjpBcmd1bWVudENvdW50KSwgR1BSSW5mbzo6cmVn
VDEpOwogICAgIGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgR1BSSW5mbzo6cmVnVDEsIFRydXN0ZWRJ
bW0zMihtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSkubGlua1RvKGZyb21Bcml0eUNoZWNr
LCB0aGlzKTsKICAgICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmlnaW4oMCkpOworICAgIGlm
IChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CiAgICAgbV9zcGVjdWxhdGl2ZS0+Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFj
a09uRXhjZXB0aW9uKG1fY29kZUJsb2NrLT5tX2lzQ29uc3RydWN0b3IgPyBvcGVyYXRpb25Db25z
dHJ1Y3RBcml0eUNoZWNrIDogb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2ssIEdQUkluZm86OnJlZ1Qw
KTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CiAgICAgYnJhbmNoVGVzdDMyKFplcm8sIEdQUkluZm86OnJlZ1QwKS5saW5r
VG8oZnJvbUFyaXR5Q2hlY2ssIHRoaXMpOwogICAgIGVtaXRTdG9yZUNvZGVPcmlnaW4oQ29kZU9y
aWdpbigwKSk7CisgICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fdm0tPmFyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzLT5yZXR1cm5QQ3NGb3IoKm1fdm0sIG1fY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJz
KCkpKSwgR1BSSW5mbzo6cmVnVDUpOworICAgIGxvYWRQdHIoQmFzZUluZGV4KEdQUkluZm86OnJl
Z1Q1LCBHUFJJbmZvOjpyZWdUMCwgdGltZXNQdHIoKSksIEdQUkluZm86OnJlZ1Q1KTsKICAgICBt
X2NhbGxBcml0eUZpeHVwID0gY2FsbCgpOwogICAgIGp1bXAoZnJvbUFyaXR5Q2hlY2spOwogICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjEsNiArMjIxLDExIEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIG1faW5zLmFwcGVuZChyZWNvcmQpOwogICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBj
dXJyZW50SlNDYWxsSW5kZXgoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fanNDYWxs
cy5zaXplKCk7CisgICAgfQogCiAgICAgdm9pZCBhZGRKU0NhbGwoQ2FsbCBmYXN0Q2FsbCwgQ2Fs
bCBzbG93Q2FsbCwgRGF0YUxhYmVsUHRyIHRhcmdldFRvQ2hlY2ssIENhbGxMaW5rSW5mbzo6Q2Fs
bFR5cGUgY2FsbFR5cGUsIEdQUlJlZyBjYWxsZWUsIENvZGVPcmlnaW4gY29kZU9yaWdpbikKICAg
ICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIu
Y3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VEZpbmFsaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEwICs0NiwxNiBAQCBKSVRGaW5h
bGl6ZXI6On5KSVRGaW5hbGl6ZXIoKQogewogfQogCitzaXplX3QgSklURmluYWxpemVyOjpjb2Rl
U2l6ZSgpCit7CisgICAgcmV0dXJuIG1fbGlua0J1ZmZlci0+c2l6ZSgpOworfQorCiBib29sIEpJ
VEZpbmFsaXplcjo6ZmluYWxpemUoKQogewotICAgIG1faml0Q29kZS0+aW5pdGlhbGl6ZUNvZGVS
ZWYobV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKSk7Ci0gICAg
bV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUsIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cigpKTsKKyAgICBtX2ppdENvZGUtPmluaXRpYWxpemVDb2RlUmVmKAorICAgICAgICBtX2xp
bmtCdWZmZXItPmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpLCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIoKSk7CisgICAgbV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUp
OwogICAgIAogICAgIGZpbmFsaXplQ29tbW9uKCk7CiAgICAgCkBAIC01OSw4ICs2NSw5IEBAIGJv
b2wgSklURmluYWxpemVyOjpmaW5hbGl6ZSgpCiBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemVG
dW5jdGlvbigpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIW1fd2l0aEFyaXR5Q2hlY2suaXNFbXB0
eVZhbHVlKCkpOwotICAgIG1faml0Q29kZS0+aW5pdGlhbGl6ZUNvZGVSZWYobV9saW5rQnVmZmVy
LT5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKSk7Ci0gICAgbV9wbGFuLmNvZGVCbG9j
ay0+c2V0SklUQ29kZShtX2ppdENvZGUsIG1fd2l0aEFyaXR5Q2hlY2spOworICAgIG1faml0Q29k
ZS0+aW5pdGlhbGl6ZUNvZGVSZWYoCisgICAgICAgIG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2Rl
V2l0aG91dERpc2Fzc2VtYmx5KCksIG1fd2l0aEFyaXR5Q2hlY2spOworICAgIG1fcGxhbi5jb2Rl
QmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlKTsKICAgICAKICAgICBmaW5hbGl6ZUNvbW1vbigp
OwogICAgIApAQCAtNzUsNiArODIsOSBAQCB2b2lkIEpJVEZpbmFsaXplcjo6ZmluYWxpemVDb21t
b24oKQogICAgIAogICAgIGlmIChtX3BsYW4uY29tcGlsYXRpb24pCiAgICAgICAgIG1fcGxhbi52
bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmFkZENvbXBpbGF0aW9uKG1fcGxhbi5jb21waWxhdGlv
bik7CisgICAgCisgICAgaWYgKCFtX3BsYW4ud2lsbFRyeVRvVGllclVwKQorICAgICAgICBtX3Bs
YW4uY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKS0+bV9kaWRGYWlsRlRMQ29tcGlsYXRpb24g
PSB0cnVlOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIEpJVEZpbmFsaXplcihQbGFuJiwgUGFz
c1JlZlB0cjxKSVRDb2RlPiwgUGFzc093blB0cjxMaW5rQnVmZmVyPiwgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIHdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjo6RW1wdHlWYWx1ZSkpOwogICAgIHZpcnR1YWwgfkpJVEZpbmFsaXplcigpOwog
ICAgIAorICAgIHZpcnR1YWwgc2l6ZV90IGNvZGVTaXplKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGZpbmFsaXplRnVu
Y3Rpb24oKSBvdmVycmlkZTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTk4LDYgKzExOTgsMTEg
QEAgc3RydWN0IE5vZGUgewogICAgICAgICAgICAgcmV0dXJuIHNob3VsZEdlbmVyYXRlKCk7CiAg
ICAgICAgIH0KICAgICB9CisgICAgCisgICAgYm9vbCBpc1NlbWFudGljYWxseVNraXBwYWJsZSgp
CisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBDb3VudEV4ZWN1dGlvbjsKKyAgICB9CiAK
ICAgICB1bnNpZ25lZCByZWZDb3VudCgpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2
ICs0OSw5IEBAIHZvaWQgZHVtcE5vZGVGbGFncyhQcmludFN0cmVhbSYgYWN0dWFsT3UKICAgICAg
ICAgY2FzZSBOb2RlUmVzdWx0SW50MzI6CiAgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICJJ
bnQzMiIpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZVJlc3VsdEludDUy
OgorICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiSW50NTIiKTsKKyAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIE5vZGVSZXN1bHRCb29sZWFuOgogICAgICAgICAgICAgb3V0LnBy
aW50KGNvbW1hLCAiQm9vbGVhbiIpOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5
QW5hbHlzaXNQaGFzZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTYxLDE1ICs2MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgQXZhaWxhYmls
aXR5Ojp1bmF2YWlsYWJsZSgpLndpdGhGbHVzaCgKICAgICAgICAgICAgICAgICAgICAgRmx1c2hl
ZEF0KEZsdXNoZWRKU1ZhbHVlLCB2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkp
KTsKICAgICAgICAgfQotICAgICAgICBmb3IgKHVuc2lnbmVkIGxvY2FsID0gcm9vdC0+c3NhLT5h
dmFpbGFiaWxpdHlBdEhlYWQubnVtYmVyT2ZMb2NhbHMoKTsgbG9jYWwtLTspCi0gICAgICAgICAg
ICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxp
dHk6OnVuYXZhaWxhYmxlKCk7Ci0gICAgICAgIAorCiAgICAgICAgIGlmIChtX2dyYXBoLm1fcGxh
bi5tb2RlID09IEZUTEZvck9TUkVudHJ5TW9kZSkgewotICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBsb2NhbCA9IG1fZ3JhcGgubV9wcm9maWxlZEJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsg
bG9jYWwtLTspIHsKLSAgICAgICAgICAgICAgICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVh
ZC5sb2NhbChsb2NhbCkgPQotICAgICAgICAgICAgICAgICAgICBBdmFpbGFiaWxpdHk6OnVuYXZh
aWxhYmxlKCkud2l0aEZsdXNoKAotICAgICAgICAgICAgICAgICAgICAgICAgRmx1c2hlZEF0KEZs
dXNoZWRKU1ZhbHVlLCB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChsb2NhbCkpKTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgbG9jYWwgPSBtX2dyYXBoLm1fcHJvZmls
ZWRCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7IGxvY2FsLS07KQorICAgICAgICAgICAgICAg
IHJvb3QtPnNzYS0+YXZhaWxhYmlsaXR5QXRIZWFkLmxvY2FsKGxvY2FsKSA9IEF2YWlsYWJpbGl0
eTo6dW5hdmFpbGFibGUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAodW5z
aWduZWQgbG9jYWwgPSByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5udW1iZXJPZkxvY2Fs
cygpOyBsb2NhbC0tOykKKyAgICAgICAgICAgICAgICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0
SGVhZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCk7CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIC8vIFRoaXMgY291bGQgYmUgbWFkZSBtb3JlIGVmZmljaWVu
dCBieSBwcm9jZXNzaW5nIGJsb2NrcyBpbiByZXZlcnNlIHBvc3RvcmRlci4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDQsNyArNDQsMTAgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5KEV4ZWNTdGF0ZSogZXhl
YywgQwogICAgIEFTU0VSVChjb2RlQmxvY2stPmFsdGVybmF0aXZlKCkpOwogICAgIEFTU0VSVChj
b2RlQmxvY2stPmFsdGVybmF0aXZlKCktPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJ
VCk7CiAgICAgQVNTRVJUKCFjb2RlQmxvY2stPmppdENvZGVNYXAoKSk7Ci0gICAgCisKKyAgICBp
ZiAoIU9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5VG9ERkcoKSkKKyAgICAgICAgcmV0dXJuIDA7CisK
ICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKSB7CiAgICAgICAgIGRhdGFMb2coCiAgICAg
ICAgICAgICAiREZHIE9TUiBpbiAiLCAqY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpLCAiIC0+ICIs
ICpjb2RlQmxvY2ssCkBAIC01Miw4ICs1NSw4IEBAIHZvaWQqIHByZXBhcmVPU1JFbnRyeShFeGVj
U3RhdGUqIGV4ZWMsIEMKICAgICB9CiAgICAgCiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0g
ICAgCi0gICAgdm0tPmludGVycHJldGVyLT5zdGFjaygpLnNhbml0aXplU3RhY2soKTsKKworICAg
IHNhbml0aXplU3RhY2tGb3JWTSh2bSk7CiAgICAgCiAgICAgaWYgKGNvZGVCbG9jay0+aml0VHlw
ZSgpICE9IEpJVENvZGU6OkRGR0pJVCkgewogICAgICAgICBSRUxFQVNFX0FTU0VSVChjb2RlQmxv
Y2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpGVExKSVQpOwpAQCAtMTg1LDcgKzE4OCw3IEBAIHZv
aWQqIHByZXBhcmVPU1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIEMKICAgICAvLyAgICB3b3VsZCBo
YXZlIG90aGVyd2lzZSBqdXN0IGtlcHQgcnVubmluZyBhbGJlaXQgbGVzcyBxdWlja2x5LgogICAg
IAogICAgIHVuc2lnbmVkIGZyYW1lU2l6ZSA9IGppdENvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lz
dGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCk7Ci0gICAgaWYgKCF2bS0+aW50ZXJwcmV0ZXIt
PnN0YWNrKCkuZ3JvdygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwo
ZnJhbWVTaXplKS5vZmZzZXQoKV0pKSB7CisgICAgaWYgKCF2bS0+aW50ZXJwcmV0ZXItPnN0YWNr
KCkuZW5zdXJlQ2FwYWNpdHlGb3IoJmV4ZWMtPnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZv
ckxvY2FsKGZyYW1lU2l6ZSAtIDEpLm9mZnNldCgpXSkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6
OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAgIGRhdGFMb2dGKCIgICAgT1NSIGZhaWxlZCBiZWNh
dXNlIHN0YWNrIGdyb3d0aCBmYWlsZWQuXG4iKTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC0yMTMs
MTIgKzIxNiwxNCBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0YXRlKiBleGVjLCBDCiAg
ICAgCiAgICAgLy8gNSkgQ2xlYXIgdGhvc2UgcGFydHMgb2YgdGhlIGNhbGwgZnJhbWUgdGhhdCB0
aGUgREZHIGFpbid0IHVzaW5nLiBUaGlzIGhlbHBzIEdDIG9uIHNvbWUKICAgICAvLyAgICBwcm9n
cmFtcyBieSBlbGltaW5hdGluZyBzb21lIHN0YWxlIHBvaW50ZXIgcGF0aG9sb2dpZXMuCi0gICAg
CisKKyNpZiAwIC8vIEZJWE1FOiBDU3RhY2sgLSBUaGlzIG5lZWRzIHRvIGJlIHZlcmlmaWVkIGJl
Zm9yZSBiZWluZyBlbmFibGVkCiAgICAgZm9yICh1bnNpZ25lZCBpID0gZnJhbWVTaXplOyBpLS07
KSB7CiAgICAgICAgIGlmIChlbnRyeS0+bV9tYWNoaW5lU3RhY2tVc2VkLmdldChpKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICByZWdpc3RlcnNbdmlydHVhbFJlZ2lzdGVyRm9yTG9j
YWwoaSkub2Zmc2V0KCldID0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAgICAgfQorI2Vu
ZGlmCiAgICAgCiAgICAgLy8gNikgRml4IHRoZSBjYWxsIGZyYW1lLgogICAgIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeXBvaW50Q3JlYXRpb25QaGFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeXBvaW50
Q3JlYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC02Myw3ICs2MywxMCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9
IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAgICAgICBpZiAoIWJsb2NrKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgdW5zaWduZWQgbm9kZUluZGV4ID0g
MDsKICAgICAgICAgICAgIE5vZGUqIGZpcnN0Tm9kZSA9IGJsb2NrLT5hdCgwKTsKKyAgICAgICAg
ICAgIHdoaWxlIChmaXJzdE5vZGUtPmlzU2VtYW50aWNhbGx5U2tpcHBhYmxlKCkpCisgICAgICAg
ICAgICAgICAgZmlyc3ROb2RlID0gYmxvY2stPmF0KCsrbm9kZUluZGV4KTsKICAgICAgICAgICAg
IGlmIChmaXJzdE5vZGUtPm9wKCkgPT0gTG9vcEhpbnQKICAgICAgICAgICAgICAgICAmJiBmaXJz
dE5vZGUtPmNvZGVPcmlnaW4gPT0gQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSkgewogICAgICAg
ICAgICAgICAgIHRhcmdldCA9IGJsb2NrOwpAQCAtODMsMTcgKzg2LDYgQEAgcHVibGljOgogICAg
ICAgICBCYXNpY0Jsb2NrKiBuZXdSb290ID0gaW5zZXJ0aW9uU2V0Lmluc2VydCgwKTsKICAgICAg
ICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gdGFyZ2V0LT5hdCgwKS0+Y29kZU9yaWdpbjsKICAg
ICAgICAgCi0gICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0gMDsgYXJndW1lbnQgPCBiYXNlbGlu
ZS0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50KSB7Ci0gICAgICAgICAgICBOb2RlKiBvbGRO
b2RlID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQuYXJndW1lbnQoYXJndW1lbnQpOwotICAgICAg
ICAgICAgaWYgKCFvbGROb2RlKSB7Ci0gICAgICAgICAgICAgICAgLy8gSnVzdCBmb3Igc2FuaXR5
LCBhbHdheXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2ZW4gaWYgaXQncyBub3QgbmVlZGVkLgotICAg
ICAgICAgICAgICAgIG9sZE5vZGUgPSBtX2dyYXBoLm1fYXJndW1lbnRzW2FyZ3VtZW50XTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBuZXdSb290LT5hcHBlbmROb2Rl
KAotICAgICAgICAgICAgICAgIG1fZ3JhcGgsIFNwZWNOb25lLCBTZXRBcmd1bWVudCwgY29kZU9y
aWdpbiwKLSAgICAgICAgICAgICAgICBPcEluZm8ob2xkTm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRh
KCkpKTsKLSAgICAgICAgICAgIG1fZ3JhcGgubV9hcmd1bWVudHNbYXJndW1lbnRdID0gbm9kZTsK
LSAgICAgICAgfQogICAgICAgICBWZWN0b3I8Tm9kZSo+IGxvY2FscyhiYXNlbGluZS0+bV9udW1D
YWxsZWVSZWdpc3RlcnMpOwogICAgICAgICBmb3IgKGludCBsb2NhbCA9IDA7IGxvY2FsIDwgYmFz
ZWxpbmUtPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOyArK2xvY2FsKSB7CiAgICAgICAgICAgICBOb2Rl
KiBwcmV2aW91c0hlYWQgPSB0YXJnZXQtPnZhcmlhYmxlc0F0SGVhZC5sb2NhbChsb2NhbCk7CkBA
IC0xMDgsNiArMTAwLDE5IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBtX2dyYXBoLCBTcGVj
Tm9uZSwgTW92SGludCwgY29kZU9yaWdpbiwgT3BJbmZvKHZhcmlhYmxlLT5sb2NhbCgpLm9mZnNl
dCgpKSwKICAgICAgICAgICAgICAgICBFZGdlKGxvY2Fsc1tsb2NhbF0pKTsKICAgICAgICAgfQor
CisgICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0gMDsgYXJndW1lbnQgPCBiYXNlbGluZS0+bnVt
UGFyYW1ldGVycygpOyArK2FyZ3VtZW50KSB7CisgICAgICAgICAgICBOb2RlKiBvbGROb2RlID0g
dGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQuYXJndW1lbnQoYXJndW1lbnQpOworICAgICAgICAgICAg
aWYgKCFvbGROb2RlKSB7CisgICAgICAgICAgICAgICAgLy8gSnVzdCBmb3Igc2FuaXR5LCBhbHdh
eXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2ZW4gaWYgaXQncyBub3QgbmVlZGVkLgorICAgICAgICAg
ICAgICAgIG9sZE5vZGUgPSBtX2dyYXBoLm1fYXJndW1lbnRzW2FyZ3VtZW50XTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBuZXdSb290LT5hcHBlbmROb2RlKAorICAg
ICAgICAgICAgICAgIG1fZ3JhcGgsIFNwZWNOb25lLCBTZXRBcmd1bWVudCwgY29kZU9yaWdpbiwK
KyAgICAgICAgICAgICAgICBPcEluZm8ob2xkTm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpKTsK
KyAgICAgICAgICAgIG1fZ3JhcGgubV9hcmd1bWVudHNbYXJndW1lbnRdID0gbm9kZTsKKyAgICAg
ICAgfQorICAgICAgICAKICAgICAgICAgZm9yIChpbnQgbG9jYWwgPSAwOyBsb2NhbCA8IGJhc2Vs
aW5lLT5tX251bUNhbGxlZVJlZ2lzdGVyczsgKytsb2NhbCkgewogICAgICAgICAgICAgTm9kZSog
cHJldmlvdXNIZWFkID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQubG9jYWwobG9jYWwpOwogICAg
ICAgICAgICAgaWYgKCFwcmV2aW91c0hlYWQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09TUkV4aXQuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JFeGl0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsMTEgQEAgc3Ry
dWN0IE9TUkV4aXQgOiBwdWJsaWMgT1NSRXhpdEJhc2UgewogICAgIHVuc2lnbmVkIG1fc3RyZWFt
SW5kZXg7CiAgICAgCiAgICAgUmVmUHRyPFZhbHVlUmVjb3ZlcnlPdmVycmlkZT4gbV92YWx1ZVJl
Y292ZXJ5T3ZlcnJpZGU7CisgICAgCisgICAgYm9vbCBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRF
eGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIE9TUkV4aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZShwcm9maWxl
ZENvZGVCbG9jaywgRXhpdEZyb21ERkcpOworICAgIH0KIH07CiAKIHN0cnVjdCBTcGVjdWxhdGlv
bkZhaWx1cmVEZWJ1Z0luZm8gewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFeGl0QmFzZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3
IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAotYm9vbCBPU1JFeGl0QmFz
ZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KENvZGVCbG9jayogcHJvZmls
ZWRDb2RlQmxvY2spCitib29sIE9TUkV4aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRF
eGl0U2l0ZVNsb3coQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaywgRXhpdGluZ0pJVFR5cGUg
aml0VHlwZSkKIHsKICAgICBDb2RlQmxvY2sqIHNvdXJjZVByb2ZpbGVkQ29kZUJsb2NrID0KICAg
ICAgICAgYmFzZWxpbmVDb2RlQmxvY2tGb3JPcmlnaW5BbmRCYXNlbGluZUNvZGVCbG9jaygKQEAg
LTQzLDcgKzQzLDcgQEAgYm9vbCBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZQog
ICAgIGlmICghc291cmNlUHJvZmlsZWRDb2RlQmxvY2spCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICByZXR1cm4gc291cmNlUHJvZmlsZWRDb2RlQmxvY2stPmFkZEZyZXF1ZW50RXhpdFNpdGUo
Ci0gICAgICAgICAgICBGcmVxdWVudEV4aXRTaXRlKG1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxl
LmJ5dGVjb2RlSW5kZXgsIG1fa2luZCkpOworICAgICAgICBGcmVxdWVudEV4aXRTaXRlKG1fY29k
ZU9yaWdpbkZvckV4aXRQcm9maWxlLmJ5dGVjb2RlSW5kZXgsIG1fa2luZCwgaml0VHlwZSkpOwog
fQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDE1
ICs1OCwxNiBAQCBzdHJ1Y3QgT1NSRXhpdEJhc2UgewogICAgIENvZGVPcmlnaW4gbV9jb2RlT3Jp
Z2luOwogICAgIENvZGVPcmlnaW4gbV9jb2RlT3JpZ2luRm9yRXhpdFByb2ZpbGU7CiAKLSAgICBi
b29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKENvZGVCbG9jayogcHJvZmlsZWRD
b2RlQmxvY2spCitwcm90ZWN0ZWQ6CisgICAgYm9vbCBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRF
eGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrLCBFeGl0aW5nSklUVHlwZSBqaXRU
eXBlKQogICAgIHsKICAgICAgICAgaWYgKCFtX2NvdW50KQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICByZXR1cm4gY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93
KHByb2ZpbGVkQ29kZUJsb2NrKTsKKyAgICAgICAgcmV0dXJuIGNvbnNpZGVyQWRkaW5nQXNGcmVx
dWVudEV4aXRTaXRlU2xvdyhwcm9maWxlZENvZGVCbG9jaywgaml0VHlwZSk7CiAgICAgfQogCiBw
cml2YXRlOgotICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KENv
ZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2spOworICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0Zy
ZXF1ZW50RXhpdFNpdGVTbG93KENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRpbmdK
SVRUeXBlIGppdFR5cGUpOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIz
Ml82NC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niwx
MiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgICAgIG1f
aml0LmRlYnVnQ2FsbChkZWJ1Z09wZXJhdGlvblByaW50U3BlY3VsYXRpb25GYWlsdXJlLCBkZWJ1
Z0luZm8pOwogICAgIH0KICAgICAKKyAgICAvLyBOZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBzdGFj
ayBwb2ludGVyIGFjY291bnRzIGZvciB0aGUgd29yc3QtY2FzZSBzdGFjayB1c2FnZSBhdCBleGl0
LgorICAgIG1faml0LmFkZFB0cigKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
CisgICAgICAgICAgICAtbV9qaXQuY29kZUJsb2NrKCktPmppdENvZGUoKS0+ZGZnQ29tbW9uKCkt
PnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQgKiBzaXplb2YoUmVnaXN0ZXIpKSwKKyAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCiAgICAgLy8gMikgUGVyZm9ybSBzcGVjdWxhdGlvbiBy
ZWNvdmVyeS4gVGhpcyBvbmx5IGNvbWVzIGludG8gcGxheSB3aGVuIGFuIG9wZXJhdGlvbgogICAg
IC8vICAgIHN0YXJ0cyBtdXRhdGluZyBzdGF0ZSBiZWZvcmUgdmVyaWZ5aW5nIHRoZSBzcGVjdWxh
dGlvbiBpdCBoYXMgYWxyZWFkeSBtYWRlLgogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKIAogdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IE9TUkV4
aXQmIGV4aXQsIGNvbnN0IE9wZXJhbmRzPFZhbHVlUmVjb3Zlcnk+JiBvcGVyYW5kcywgU3BlY3Vs
YXRpb25SZWNvdmVyeSogcmVjb3ZlcnkpCiB7CisgICAgbV9qaXQuaml0QXNzZXJ0VGFnc0luUGxh
Y2UoKTsKKwogICAgIC8vIDEpIFByby1mb3JtYSBzdHVmZi4KICAgICBpZiAoT3B0aW9uczo6cHJp
bnRFYWNoT1NSRXhpdCgpKSB7CiAgICAgICAgIFNwZWN1bGF0aW9uRmFpbHVyZURlYnVnSW5mbyog
ZGVidWdJbmZvID0gbmV3IFNwZWN1bGF0aW9uRmFpbHVyZURlYnVnSW5mbzsKQEAgLTQ4LDYgKzUw
LDEyIEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCAKICAgICAgICAg
bV9qaXQuZGVidWdDYWxsKGRlYnVnT3BlcmF0aW9uUHJpbnRTcGVjdWxhdGlvbkZhaWx1cmUsIGRl
YnVnSW5mbyk7CiAgICAgfQogICAgIAorICAgIC8vIE5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIHN0
YWNrIHBvaW50ZXIgYWNjb3VudHMgZm9yIHRoZSB3b3JzdC1jYXNlIHN0YWNrIHVzYWdlIGF0IGV4
aXQuCisgICAgbV9qaXQuYWRkUHRyKAorICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MigKKyAgICAgICAgICAgIC1tX2ppdC5jb2RlQmxvY2soKS0+aml0Q29kZSgpLT5kZmdDb21tb24o
KS0+cmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCAqIHNpemVvZihSZWdpc3RlcikpLAorICAg
ICAgICBDQ2FsbEhlbHBlcnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBDQ2FsbEhlbHBlcnM6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAKICAgICAvLyAyKSBQZXJmb3JtIHNwZWN1bGF0aW9u
IHJlY292ZXJ5LiBUaGlzIG9ubHkgY29tZXMgaW50byBwbGF5IHdoZW4gYW4gb3BlcmF0aW9uCiAg
ICAgLy8gICAgc3RhcnRzIG11dGF0aW5nIHN0YXRlIGJlZm9yZSB2ZXJpZnlpbmcgdGhlIHNwZWN1
bGF0aW9uIGl0IGhhcyBhbHJlYWR5IG1hZGUuCiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBjb21waWxlT1NSRXhpdChFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIAogICAgICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2bSwg
JmppdCwgY29kZUJsb2NrKTsKICAgICAgICAgZXhpdC5tX2NvZGUgPSBGSU5BTElaRV9DT0RFX0lG
KAotICAgICAgICAgICAgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCksCisgICAgICAgICAgICBzaG91
bGRTaG93RGlzYXNzZW1ibHkoKSB8fCBPcHRpb25zOjp2ZXJib3NlT1NSKCksCiAgICAgICAgICAg
ICBwYXRjaEJ1ZmZlciwKICAgICAgICAgICAgICgiREZHIE9TUiBleGl0ICMldSAoJXMsICVzKSBm
cm9tICVzLCB3aXRoIG9wZXJhbmRzID0gJXMiLAogICAgICAgICAgICAgICAgIGV4aXRJbmRleCwg
dG9DU3RyaW5nKGV4aXQubV9jb2RlT3JpZ2luKS5kYXRhKCksCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlckNvbW1vbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkRGR09wZXJhdGlvbnMuaCIKKyNpbmNsdWRl
ICJKSVQuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKIApAQCAtMTczLDcgKzE3NCwxMSBAQCB2b2lkIGFkanVzdEFuZEp1bXBUb1Rhcmdl
dChDQ2FsbEhlbHBlcnMmCiAgICAgQVNTRVJUKG1hcHBpbmctPm1fYnl0ZWNvZGVJbmRleCA9PSBl
eGl0Lm1fY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKICAgICAKICAgICB2b2lkKiBqdW1wVGFy
Z2V0ID0gYmFzZWxpbmVDb2RlQmxvY2stPmppdENvZGUoKS0+ZXhlY3V0YWJsZUFkZHJlc3NBdE9m
ZnNldChtYXBwaW5nLT5tX21hY2hpbmVDb2RlT2Zmc2V0KTsKKworICAgIGppdC5hZGRQdHIoQXNz
ZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSklUOjpzdGFja1BvaW50ZXJPZmZzZXRGb3IoYmFz
ZWxpbmVDb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAKKyAg
ICBqaXQuaml0QXNzZXJ0VGFnc0luUGxhY2UoKTsKKwogICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbVB0cihqdW1wVGFyZ2V0KSwgR1BSSW5mbzo6cmVnVDIpOwogICAgIGpp
dC5qdW1wKEdQUkluZm86OnJlZ1QyKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0MCw3
ICsxMTQwLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIHRyaWdnZXJUaWVyVXBOb3coRXhlYwogICAg
IH0KICAgICAKICAgICBXb3JrbGlzdDo6U3RhdGUgd29ya2xpc3RTdGF0ZTsKLSAgICBpZiAoV29y
a2xpc3QqIHdvcmtsaXN0ID0gdm0tPndvcmtsaXN0LmdldCgpKSB7CisgICAgaWYgKFdvcmtsaXN0
KiB3b3JrbGlzdCA9IGV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKSkgewogICAgICAg
ICB3b3JrbGlzdFN0YXRlID0gd29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKAog
ICAgICAgICAgICAgKnZtLCBDb21waWxhdGlvbktleShjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lv
bigpLCBGVExNb2RlKSk7CiAgICAgfSBlbHNlCkBAIC0xMTY5LDggKzExNjksOCBAQCB2b2lkIEpJ
VF9PUEVSQVRJT04gdHJpZ2dlclRpZXJVcE5vdyhFeGVjCiAKICAgICAvLyBXZSBuZWVkIHRvIGNv
bXBpbGUgdGhlIGNvZGUuCiAgICAgY29tcGlsZSgKLSAgICAgICAgKnZtLCBjb2RlQmxvY2stPm5l
d1JlcGxhY2VtZW50KCkuZ2V0KCksIEZUTE1vZGUsIFVJTlRfTUFYLCBPcGVyYW5kczxKU1ZhbHVl
PigpLAotICAgICAgICBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKGNv
ZGVCbG9jayksIHZtLT5lbnN1cmVXb3JrbGlzdCgpKTsKKyAgICAgICAgKnZtLCBjb2RlQmxvY2st
Pm5ld1JlcGxhY2VtZW50KCkuZ2V0KCksIGNvZGVCbG9jaywgRlRMTW9kZSwgVUlOVF9NQVgsCisg
ICAgICAgIE9wZXJhbmRzPEpTVmFsdWU+KCksIFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrOjpjcmVhdGUoY29kZUJsb2NrKSk7CiB9CiAKIGNoYXIqIEpJVF9PUEVSQVRJT04gdHJpZ2dl
ck9TUkVudHJ5Tm93KApAQCAtMTIwMiw4ICsxMjAyLDEwIEBAIGNoYXIqIEpJVF9PUEVSQVRJT04g
dHJpZ2dlck9TUkVudHJ5Tm93KAogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCisgICAg
V29ya2xpc3QqIHdvcmtsaXN0ID0gZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVsbCgpOwor
CiAgICAgV29ya2xpc3Q6OlN0YXRlIHdvcmtsaXN0U3RhdGU7Ci0gICAgaWYgKFdvcmtsaXN0KiB3
b3JrbGlzdCA9IHZtLT53b3JrbGlzdC5nZXQoKSkgeworICAgIGlmICh3b3JrbGlzdCkgewogICAg
ICAgICB3b3JrbGlzdFN0YXRlID0gd29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZN
KAogICAgICAgICAgICAgKnZtLCBDb21waWxhdGlvbktleShjb2RlQmxvY2stPmJhc2VsaW5lVmVy
c2lvbigpLCBGVExGb3JPU1JFbnRyeU1vZGUpKTsKICAgICB9IGVsc2UKQEAgLTEyNTIsMTAgKzEy
NTQsOSBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICBPcGVy
YW5kczxKU1ZhbHVlPiBtdXN0SGFuZGxlVmFsdWVzOwogICAgIGppdENvZGUtPnJlY29uc3RydWN0
KAogICAgICAgICBleGVjLCBjb2RlQmxvY2ssIENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCksIHN0
cmVhbUluZGV4LCBtdXN0SGFuZGxlVmFsdWVzKTsKLSAgICBDb21waWxhdGlvblJlc3VsdCBmb3JF
bnRyeVJlc3VsdCA9IERGRzo6Y29tcGlsZSgKLSAgICAgICAgKnZtLCBjb2RlQmxvY2stPm5ld1Jl
cGxhY2VtZW50KCkuZ2V0KCksIEZUTEZvck9TUkVudHJ5TW9kZSwgYnl0ZWNvZGVJbmRleCwKLSAg
ICAgICAgbXVzdEhhbmRsZVZhbHVlcywgVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjazo6Y3JlYXRlKGNvZGVCbG9jayksCi0gICAgICAgIHZtLT5lbnN1cmVXb3JrbGlz
dCgpKTsKKyAgICBDb21waWxhdGlvblJlc3VsdCBmb3JFbnRyeVJlc3VsdCA9IGNvbXBpbGUoCisg
ICAgICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBjb2RlQmxvY2ss
IEZUTEZvck9TUkVudHJ5TW9kZSwgYnl0ZWNvZGVJbmRleCwKKyAgICAgICAgbXVzdEhhbmRsZVZh
bHVlcywgVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRl
KGNvZGVCbG9jaykpOwogICAgIAogICAgIC8vIEJ1dCB3ZSBhbHNvIHdhbnQgdG8gdHJpZ2dlciBh
IHJlcGxhY2VtZW50IGNvbXBpbGUuIE9mIGNvdXJzZSwgd2UgZG9uJ3Qgd2FudCB0bwogICAgIC8v
IHRyaWdnZXIgaXQgaWYgd2UgZG9uJ3QgbmVlZCB0by4gTm90ZSB0aGF0IHRoaXMgaXMga2luZCBv
ZiB3ZWlyZCBiZWNhdXNlIHdlIG1pZ2h0CkBAIC0xMjY4LDExICsxMjY5LDExIEBAIGNoYXIqIEpJ
VF9PUEVSQVRJT04gdHJpZ2dlck9TUkVudHJ5Tm93KAogICAgIENvbXBpbGF0aW9uS2V5IGtleUZv
clJlcGxhY2VtZW50KGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCksIEZUTE1vZGUpOwogICAg
IGlmIChjb2RlQmxvY2stPmNvZGVUeXBlKCkgIT0gR2xvYmFsQ29kZQogICAgICAgICAmJiAhY29k
ZUJsb2NrLT5oYXNPcHRpbWl6ZWRSZXBsYWNlbWVudCgpCi0gICAgICAgICYmICghdm0tPndvcmts
aXN0LmdldCgpCi0gICAgICAgICAgICB8fCB2bS0+d29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUo
a2V5Rm9yUmVwbGFjZW1lbnQpID09IFdvcmtsaXN0OjpOb3RLbm93bikpIHsKKyAgICAgICAgJiYg
KCF3b3JrbGlzdAorICAgICAgICAgICAgfHwgd29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUoa2V5
Rm9yUmVwbGFjZW1lbnQpID09IFdvcmtsaXN0OjpOb3RLbm93bikpIHsKICAgICAgICAgY29tcGls
ZSgKLSAgICAgICAgICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBG
VExNb2RlLCBVSU5UX01BWCwgT3BlcmFuZHM8SlNWYWx1ZT4oKSwKLSAgICAgICAgICAgIFRvRlRM
RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoY29kZUJsb2NrKSwgdm0tPmVuc3Vy
ZVdvcmtsaXN0KCkpOworICAgICAgICAgICAgKnZtLCBjb2RlQmxvY2stPm5ld1JlcGxhY2VtZW50
KCkuZ2V0KCksIGNvZGVCbG9jaywgRlRMTW9kZSwgVUlOVF9NQVgsCisgICAgICAgICAgICBPcGVy
YW5kczxKU1ZhbHVlPigpLCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRl
KGNvZGVCbG9jaykpOwogICAgIH0KICAgICAKICAgICBpZiAoZm9yRW50cnlSZXN1bHQgIT0gQ29t
cGlsYXRpb25TdWNjZXNzZnVsKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
bGFuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4u
Y3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Bs
YW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC05MCwxNyArOTAsMzcgQEAgc3RhdGljIHZvaWQgZHVtcEFu
ZFZlcmlmeUdyYXBoKEdyYXBoJiBncgogICAgICAgICB2YWxpZGF0ZShncmFwaCwgbW9kZUZvckZp
bmFsVmFsaWRhdGUpOwogfQogCitzdGF0aWMgUHJvZmlsZXI6OkNvbXBpbGF0aW9uS2luZCBwcm9m
aWxlckNvbXBpbGF0aW9uS2luZEZvck1vZGUoQ29tcGlsYXRpb25Nb2RlIG1vZGUpCit7CisgICAg
c3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBJbnZhbGlkQ29tcGlsYXRpb25Nb2RlOgorICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gUHJvZmlsZXI6
OkRGRzsKKyAgICBjYXNlIERGR01vZGU6CisgICAgICAgIHJldHVybiBQcm9maWxlcjo6REZHOwor
ICAgIGNhc2UgRlRMTW9kZToKKyAgICAgICAgcmV0dXJuIFByb2ZpbGVyOjpGVEw7CisgICAgY2Fz
ZSBGVExGb3JPU1JFbnRyeU1vZGU6CisgICAgICAgIHJldHVybiBQcm9maWxlcjo6RlRMRm9yT1NS
RW50cnk7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIFByb2ZpbGVyOjpERkc7Cit9CisKIFBsYW46OlBsYW4oCi0gICAgUGFzc1JlZlB0cjxDb2Rl
QmxvY2s+IHBhc3NlZENvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUsCi0gICAgdW5zaWdu
ZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LCBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhh
bmRsZVZhbHVlcykKKyAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gcGFzc2VkQ29kZUJsb2NrLCBD
b2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLAorICAgIENvbXBpbGF0aW9uTW9kZSBtb2Rl
LCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCisgICAgY29uc3QgT3BlcmFuZHM8SlNW
YWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMpCiAgICAgOiB2bSgqcGFzc2VkQ29kZUJsb2NrLT52bSgp
KQogICAgICwgY29kZUJsb2NrKHBhc3NlZENvZGVCbG9jaykKKyAgICAsIHByb2ZpbGVkREZHQ29k
ZUJsb2NrKHByb2ZpbGVkREZHQ29kZUJsb2NrKQogICAgICwgbW9kZShtb2RlKQogICAgICwgb3Ny
RW50cnlCeXRlY29kZUluZGV4KG9zckVudHJ5Qnl0ZWNvZGVJbmRleCkKICAgICAsIG11c3RIYW5k
bGVWYWx1ZXMobXVzdEhhbmRsZVZhbHVlcykKLSAgICAsIGNvbXBpbGF0aW9uKGNvZGVCbG9jay0+
dm0oKS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyID8gYWRvcHRSZWYobmV3IFByb2ZpbGVyOjpDb21w
aWxhdGlvbihjb2RlQmxvY2stPnZtKCktPm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+ZW5zdXJlQnl0
ZWNvZGVzRm9yKGNvZGVCbG9jay5nZXQoKSksIFByb2ZpbGVyOjpERkcpKSA6IDApCisgICAgLCBj
b21waWxhdGlvbihjb2RlQmxvY2stPnZtKCktPm1fcGVyQnl0ZWNvZGVQcm9maWxlciA/IGFkb3B0
UmVmKG5ldyBQcm9maWxlcjo6Q29tcGlsYXRpb24oY29kZUJsb2NrLT52bSgpLT5tX3BlckJ5dGVj
b2RlUHJvZmlsZXItPmVuc3VyZUJ5dGVjb2Rlc0Zvcihjb2RlQmxvY2suZ2V0KCkpLCBwcm9maWxl
ckNvbXBpbGF0aW9uS2luZEZvck1vZGUobW9kZSkpKSA6IDApCiAgICAgLCBpZGVudGlmaWVycyhj
b2RlQmxvY2suZ2V0KCkpCiAgICAgLCB3ZWFrUmVmZXJlbmNlcyhjb2RlQmxvY2suZ2V0KCkpCisg
ICAgLCB3aWxsVHJ5VG9UaWVyVXAoZmFsc2UpCiAgICAgLCBpc0NvbXBpbGVkKGZhbHNlKQogewog
fQpAQCAtMTA5LDEwICsxMjksMTYgQEAgUGxhbjo6flBsYW4oKQogewogfQogCitib29sIFBsYW46
OnJlcG9ydENvbXBpbGVUaW1lcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIE9wdGlvbnM6OnJlcG9y
dENvbXBpbGVUaW1lcygpCisgICAgICAgIHx8IChPcHRpb25zOjpyZXBvcnRGVExDb21waWxlVGlt
ZXMoKSAmJiBpc0ZUTChtb2RlKSk7Cit9CisKIHZvaWQgUGxhbjo6Y29tcGlsZUluVGhyZWFkKExv
bmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSkKIHsKICAgICBkb3VibGUgYmVmb3JlID0gMDsK
LSAgICBpZiAoT3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkpCisgICAgaWYgKHJlcG9ydENv
bXBpbGVUaW1lcygpKQogICAgICAgICBiZWZvcmUgPSBjdXJyZW50VGltZU1TKCk7CiAgICAgCiAg
ICAgU2FtcGxpbmdSZWdpb24gc2FtcGxpbmdSZWdpb24oIkRGRyBDb21waWxhdGlvbiAoUGxhbiki
KTsKQEAgLTEyNSw3ICsxNTEsNyBAQCB2b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2
ZWRTdGF0CiAKICAgICBSRUxFQVNFX0FTU0VSVChmaW5hbGl6ZXIpOwogICAgIAotICAgIGlmIChP
cHRpb25zOjpyZXBvcnRDb21waWxlVGltZXMoKSkgeworICAgIGlmIChyZXBvcnRDb21waWxlVGlt
ZXMoKSkgewogICAgICAgICBjb25zdCBjaGFyKiBwYXRoTmFtZTsKICAgICAgICAgc3dpdGNoIChw
YXRoKSB7CiAgICAgICAgIGNhc2UgRmFpbFBhdGg6CkBAIC0xNDMsNyArMTY5LDcgQEAgdm9pZCBQ
bGFuOjpjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdAogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgZG91YmxlIG5vdyA9IGN1cnJlbnRUaW1lTVMoKTsKLSAgICAgICAg
ZGF0YUxvZygiT3B0aW1pemVkICIsICpjb2RlQmxvY2stPmFsdGVybmF0aXZlKCksICIgdXNpbmcg
IiwgbW9kZSwgIiB3aXRoICIsIHBhdGhOYW1lLCAiIGluICIsIG5vdyAtIGJlZm9yZSwgIiBtcyIp
OworICAgICAgICBkYXRhTG9nKCJPcHRpbWl6ZWQgIiwgKmNvZGVCbG9jaywgIiB1c2luZyAiLCBt
b2RlLCAiIHdpdGggIiwgcGF0aE5hbWUsICIgaW50byAiLCBmaW5hbGl6ZXItPmNvZGVTaXplKCks
ICIgYnl0ZXMgaW4gIiwgbm93IC0gYmVmb3JlLCAiIG1zIik7CiAgICAgICAgIGlmIChwYXRoID09
IEZUTFBhdGgpCiAgICAgICAgICAgICBkYXRhTG9nKCIgKERGRzogIiwgYmVmb3JlRlRMIC0gYmVm
b3JlLCAiLCBMTFZNOiAiLCBub3cgLSBiZWZvcmVGVEwsICIpIik7CiAgICAgICAgIGRhdGFMb2co
Ii5cbiIpOwpAQCAtMjkyLDcgKzMxOCw3IEBAIFBsYW46OkNvbXBpbGF0aW9uUGF0aCBQbGFuOjpj
b21waWxlSW5UaHIKICAgICAgICAgRlRMOjpTdGF0ZSBzdGF0ZShkZmcpOwogICAgICAgICBGVEw6
Omxvd2VyREZHVG9MTFZNKHN0YXRlKTsKICAgICAgICAgCi0gICAgICAgIGlmIChPcHRpb25zOjpy
ZXBvcnRDb21waWxlVGltZXMoKSkKKyAgICAgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKQog
ICAgICAgICAgICAgYmVmb3JlRlRMID0gY3VycmVudFRpbWVNUygpOwogICAgICAgICAKICAgICAg
ICAgaWYgKE9wdGlvbnM6Omxsdm1BbHdheXNGYWlsc0JlZm9yZUNvbXBpbGUoKSkgewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw3ICs1NSw4
IEBAIGNsYXNzIExvbmdMaXZlZFN0YXRlOwogCiBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxQbGFuPiB7CiAgICAgUGxhbigKLSAgICAgICAgUGFzc1JlZlB0cjxDb2Rl
QmxvY2s+LCBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwK
KyAgICAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IGNvZGVCbG9ja1RvQ29tcGlsZSwgQ29kZUJs
b2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywKKyAgICAgICAgQ29tcGlsYXRpb25Nb2RlLCB1bnNp
Z25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCiAgICAgICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFs
dWU+JiBtdXN0SGFuZGxlVmFsdWVzKTsKICAgICB+UGxhbigpOwogICAgIApAQCAtNzAsNiArNzEs
NyBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAgCiAgICAg
Vk0mIHZtOwogICAgIFJlZlB0cjxDb2RlQmxvY2s+IGNvZGVCbG9jazsKKyAgICBSZWZQdHI8Q29k
ZUJsb2NrPiBwcm9maWxlZERGR0NvZGVCbG9jazsKICAgICBDb21waWxhdGlvbk1vZGUgbW9kZTsK
ICAgICBjb25zdCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXg7CiAgICAgT3BlcmFuZHM8
SlNWYWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKQEAgLTg0LDYgKzg2LDggQEAgc3RydWN0IFBsYW4g
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZQogICAgIERlc2lyZWRXZWFrUmVmZXJlbmNlcyB3
ZWFrUmVmZXJlbmNlczsKICAgICBEZXNpcmVkV3JpdGVCYXJyaWVycyB3cml0ZUJhcnJpZXJzOwog
ICAgIERlc2lyZWRUcmFuc2l0aW9ucyB0cmFuc2l0aW9uczsKKyAgICAKKyAgICBib29sIHdpbGxU
cnlUb1RpZXJVcDsKIAogICAgIGRvdWJsZSBiZWZvcmVGVEw7CiAgICAgCkBAIC05Miw2ICs5Niw4
IEBAIHN0cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGUKICAgICBSZWZQdHI8
RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjYWxsYmFjazsKIAogcHJpdmF0ZToKKyAgICBi
b29sIHJlcG9ydENvbXBpbGVUaW1lcygpIGNvbnN0OworICAgIAogICAgIGVudW0gQ29tcGlsYXRp
b25QYXRoIHsgRmFpbFBhdGgsIERGR1BhdGgsIEZUTFBhdGggfTsKICAgICBDb21waWxhdGlvblBh
dGggY29tcGlsZUluVGhyZWFkSW1wbChMb25nTGl2ZWRTdGF0ZSYpOwogICAgIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2Vy
aW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03MywyMiArNzMsMzMgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgUHV0QnlWYWw6Ci0g
ICAgICAgIGNhc2UgUHV0QnlWYWxEaXJlY3Q6Ci0gICAgICAgICAgICBsb3dlckJvdW5kc0NoZWNr
KAotICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSwKLSAgICAg
ICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSksCi0gICAgICAgICAgICAg
ICAgbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDMpKTsKKyAgICAgICAgY2FzZSBQdXRCeVZh
bERpcmVjdDogeworICAgICAgICAgICAgRWRnZSBiYXNlID0gbV9ncmFwaC52YXJBcmdDaGlsZCht
X25vZGUsIDApOworICAgICAgICAgICAgRWRnZSBpbmRleCA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bV9ub2RlLCAxKTsKKyAgICAgICAgICAgIEVkZ2Ugc3RvcmFnZSA9IG1fZ3JhcGgudmFyQXJnQ2hp
bGQobV9ub2RlLCAzKTsKKyAgICAgICAgICAgIGlmIChsb3dlckJvdW5kc0NoZWNrKGJhc2UsIGlu
ZGV4LCBzdG9yYWdlKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgaWYgKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSAhPSBOb3RU
eXBlZEFycmF5ICYmIG1fbm9kZS0+YXJyYXlNb2RlKCkuaXNPdXRPZkJvdW5kcygpKSB7CisgICAg
ICAgICAgICAgICAgTm9kZSogbGVuZ3RoID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAg
ICAgICAgICAgICAgICAgICAgbV9ub2RlSW5kZXgsIFNwZWNJbnQzMiwgR2V0QXJyYXlMZW5ndGgs
IG1fbm9kZS0+Y29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgT3BJbmZvKG1fbm9kZS0+
YXJyYXlNb2RlKCkuYXNXb3JkKCkpLCBiYXNlLCBzdG9yYWdlKTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgNCkgPSBFZGdlKGxl
bmd0aCwgS25vd25JbnQzMlVzZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KICAgICAKLSAg
ICB2b2lkIGxvd2VyQm91bmRzQ2hlY2soRWRnZSBiYXNlLCBFZGdlIGluZGV4LCBFZGdlIHN0b3Jh
Z2UpCisgICAgYm9vbCBsb3dlckJvdW5kc0NoZWNrKEVkZ2UgYmFzZSwgRWRnZSBpbmRleCwgRWRn
ZSBzdG9yYWdlKQogICAgIHsKICAgICAgICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgpLnBlcm1p
dHNCb3VuZHNDaGVja0xvd2VyaW5nKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2Rl
KCkubGVuZ3RoTmVlZHNTdG9yYWdlKCkpCiAgICAgICAgICAgICBzdG9yYWdlID0gRWRnZSgpOwpA
QCAtOTksNiArMTEwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0
Tm9kZSgKICAgICAgICAgICAgIG1fbm9kZUluZGV4LCBTcGVjSW50MzIsIENoZWNrSW5Cb3VuZHMs
IG1fbm9kZS0+Y29kZU9yaWdpbiwKICAgICAgICAgICAgIGluZGV4LCBFZGdlKGxlbmd0aCwgS25v
d25JbnQzMlVzZSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCiAgICAgSW5z
ZXJ0aW9uU2V0IG1faW5zZXJ0aW9uU2V0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDcgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6
ZmlsbEpTVmFsdWUoRWRnZSBlZAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChD
b2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlVGFnR1BST3JOb25lLCBHUFJSZWcgYmFz
ZVBheWxvYWRHUFIsIEdQUlJlZyByZXN1bHRUYWdHUFIsIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BS
LCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRh
cmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSkKIHsKICAgICBKSVRHZXRCeUlkR2Vu
ZXJhdG9yIGdlbigKLSAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRS
ZWdpc3RlcnMoKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsCisgICAgICAgIG1faml0LmNv
ZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksCiAgICAgICAgIEpTVmFsdWVS
ZWdzKGJhc2VUYWdHUFJPck5vbmUsIGJhc2VQYXlsb2FkR1BSKSwKICAgICAgICAgSlNWYWx1ZVJl
Z3MocmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSKSwgc3BpbGxNb2RlICE9IE5lZWRUb1Nw
aWxsKTsKICAgICAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNo
ZWRHZXRCeUlkKENvZGVPCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVP
cmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdmFsdWVUYWdH
UFIsIEdQUlJlZyB2YWx1ZVBheWxvYWRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBp
ZGVudGlmaWVyTnVtYmVyLCBQdXRLaW5kIHB1dEtpbmQsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQ
YXRoVGFyZ2V0KQogewogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2pp
dC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVz
ZWRSZWdpc3RlcnMoKSwKICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2VQYXls
b2FkR1BSKSwgSlNWYWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQUiksCiAgICAg
ICAgIHNjcmF0Y2hHUFIsIGZhbHNlLCBtX2ppdC5lY21hTW9kZUZvcihjb2RlT3JpZ2luKSwgcHV0
S2luZCk7CiAgICAgCkBAIC02MzEsMTAgKzYzMSw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVt
aXRDYWxsKE5vZGUqIG5vZGUKICAgICAKICAgICBpbnQgbnVtQXJncyA9IG51bVBhc3NlZEFyZ3Mg
KyBkdW1teVRoaXNBcmd1bWVudDsKIAotICAgIG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChudW1BcmdzLCBK
U1N0YWNrOjpBcmd1bWVudENvdW50KSk7Ci0gICAgbV9qaXQuc3RvcmVQdHIoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUobnVtQXJncykpOwotICAgIG1f
aml0LnN0b3JlMzIoY2FsbGVlUGF5bG9hZEdQUiwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChudW1B
cmdzLCBKU1N0YWNrOjpDYWxsZWUpKTsKLSAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVRhZ0dQUiwg
Y2FsbGVlRnJhbWVUYWdTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOworICAgIG1faml0
LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVlRnJh
bWVQYXlsb2FkU2xvdChKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7CisgICAgbV9qaXQuc3RvcmUz
MihjYWxsZWVQYXlsb2FkR1BSLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6OkNhbGxl
ZSkpOworICAgIG1faml0LnN0b3JlMzIoY2FsbGVlVGFnR1BSLCBjYWxsZWVGcmFtZVRhZ1Nsb3Qo
SlNTdGFjazo6Q2FsbGVlKSk7CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFy
Z3M7IGkrKykgewogICAgICAgICBFZGdlIGFyZ0VkZ2UgPSBtX2ppdC5ncmFwaCgpLm1fdmFyQXJn
Q2hpbGRyZW5bbm9kZS0+Zmlyc3RDaGlsZCgpICsgMSArIGldOwpAQCAtNjQzLDggKzY0Miw4IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUKICAgICAgICAgR1BSUmVn
IGFyZ1BheWxvYWRHUFIgPSBhcmcucGF5bG9hZEdQUigpOwogICAgICAgICB1c2UoYXJnRWRnZSk7
CiAKLSAgICAgICAgbV9qaXQuc3RvcmUzMihhcmdUYWdHUFIsIGNhbGxlZUFyZ3VtZW50VGFnU2xv
dChudW1BcmdzLCBpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKLSAgICAgICAgbV9qaXQuc3RvcmUz
MihhcmdQYXlsb2FkR1BSLCBjYWxsZWVBcmd1bWVudFBheWxvYWRTbG90KG51bUFyZ3MsIGkgKyBk
dW1teVRoaXNBcmd1bWVudCkpOworICAgICAgICBtX2ppdC5zdG9yZTMyKGFyZ1RhZ0dQUiwgY2Fs
bGVlQXJndW1lbnRUYWdTbG90KGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOworICAgICAgICBtX2pp
dC5zdG9yZTMyKGFyZ1BheWxvYWRHUFIsIGNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3QoaSArIGR1
bW15VGhpc0FyZ3VtZW50KSk7CiAgICAgfQogCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKQEAgLTY1
OSwxMyArNjU4LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUK
IAogICAgIG1faml0LmVtaXRTdG9yZUNvZGVPcmlnaW4obm9kZS0+Y29kZU9yaWdpbik7CiAgICAg
Ci0gICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMihjYWxsZWVGcmFtZU9mZnNldChudW1Bcmdz
KSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAKICAgICBzbG93UGF0aC5hcHBl
bmQobV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBjYWxsZWVUYWdHUFIs
IFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOwogICAgIHNsb3dQYXRoLmFwcGVuZCht
X2ppdC5icmFuY2hQdHJXaXRoUGF0Y2goTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBjYWxsZWVQ
YXlsb2FkR1BSLCB0YXJnZXRUb0NoZWNrKSk7CiAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhjYWxsZWVQYXlsb2FkR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlv
biwgbV9zY29wZSkpLCByZXN1bHRQYXlsb2FkR1BSKTsKLSAgICBtX2ppdC5zdG9yZVB0cihyZXN1
bHRQYXlsb2FkR1BSLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpTU3Rh
Y2s6OlNjb3BlQ2hhaW4gKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVn
aXN0ZXIpKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZh
bHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpKTsKKyAgICBtX2ppdC5zdG9yZVB0cihyZXN1bHRQ
YXlsb2FkR1BSLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6OlNjb3BlQ2hhaW4pKTsK
KyAgICBtX2ppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpLCBjYWxsZWVGcmFtZVRhZ1Nsb3QoSlNTdGFjazo6U2NvcGVDaGFpbikpOwogCiAg
ICAgSklUQ29tcGlsZXI6OkNhbGwgZmFzdENhbGwgPSBtX2ppdC5uZWFyQ2FsbCgpOwogCkBAIC0z
MDQ3LDEyICszMDQ0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2Rl
KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgLy8gR3JhYiB0aGUgcmV0dXJu
IGFkZHJlc3MuCi0gICAgICAgIG1faml0LmVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFk
ZXJQdHIoR1BSSW5mbzo6cmVnVDIpOwotICAgICAgICAvLyBSZXN0b3JlIG91ciBjYWxsZXIncyAi
ciIuCi0gICAgICAgIG1faml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQ
dHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgICAgICAvLyBSZXR1cm4uCi0gICAg
ICAgIG1faml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86OnJlZ1Qy
KTsKKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgbV9qaXQu
cmV0KCk7CiAgICAgICAgIAogICAgICAgICBub1Jlc3VsdChub2RlKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDggKzE5MCw4IEBAIEdQUlJlZyBTcGVjdWxh
dGl2ZUpJVDo6ZmlsbEpTVmFsdWUoRWRnZSAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdl
dEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3Vs
dEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1Bh
dGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1vZGUpCiB7CiAgICAgSklUR2V0QnlJ
ZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1
c2VkUmVnaXN0ZXJzKCksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICBKU1Zh
bHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocmVzdWx0R1BSKSwgc3BpbGxNb2RlICE9IE5l
ZWRUb1NwaWxsKTsKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRS
ZWdpc3RlcnMoKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksCisgICAgICAgIEpTVmFsdWVSZWdzKHJl
c3VsdEdQUiksIHNwaWxsTW9kZSAhPSBOZWVkVG9TcGlsbCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgobV9qaXQpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7
CkBAIC0yMTAsOSArMjEwLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChD
b2RlTwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgdmFsdWVHUFIsIEdQUlJlZyBzY3JhdGNoR1BS
LCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBQdXRLaW5kIHB1dEtpbmQsIEpJVENvbXBpbGVy
OjpKdW1wIHNsb3dQYXRoVGFyZ2V0KQogewogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAot
ICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgSlNWYWx1ZVJlZ3MoYmFzZUdQUiks
IEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgc2NyYXRjaEdQUiwgZmFsc2UsCi0gICAgICAgIG1faml0
LmVjbWFNb2RlRm9yKGNvZGVPcmlnaW4pLCBwdXRLaW5kKTsKKyAgICAgICAgbV9qaXQuY29kZUJs
b2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiks
CisgICAgICAgIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgc2NyYXRjaEdQUiwgZmFsc2UsIG1faml0
LmVjbWFNb2RlRm9yKGNvZGVPcmlnaW4pLCBwdXRLaW5kKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0
UGF0aChtX2ppdCk7CiAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsK
QEAgLTY2Myw5ICs2NjIsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBu
b2RlCiAgICAgCiAgICAgaW50IG51bUFyZ3MgPSBudW1QYXNzZWRBcmdzICsgZHVtbXlUaGlzQXJn
dW1lbnQ7CiAgICAgCi0gICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkFy
Z3VtZW50Q291bnQpKTsKLSAgICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCBjYWxsZWVGcmFtZUNhbGxlckZyYW1lKG51bUFyZ3MpKTsKLSAgICBtX2ppdC5zdG9yZTY0
KGNhbGxlZUdQUiwgY2FsbGVlRnJhbWVTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOwor
ICAgIG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwg
Y2FsbGVlRnJhbWVQYXlsb2FkU2xvdChKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7CisgICAgbV9q
aXQuc3RvcmU2NChjYWxsZWVHUFIsIGNhbGxlZUZyYW1lU2xvdChKU1N0YWNrOjpDYWxsZWUpKTsK
ICAgICAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7IGkrKykgewogICAg
ICAgICBFZGdlIGFyZ0VkZ2UgPSBtX2ppdC5ncmFwaCgpLm1fdmFyQXJnQ2hpbGRyZW5bbm9kZS0+
Zmlyc3RDaGlsZCgpICsgMSArIGldOwpAQCAtNjczLDcgKzY3MSw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUKICAgICAgICAgR1BSUmVnIGFyZ0dQUiA9IGFyZy5n
cHIoKTsKICAgICAgICAgdXNlKGFyZ0VkZ2UpOwogICAgICAgICAKLSAgICAgICAgbV9qaXQuc3Rv
cmU2NChhcmdHUFIsIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBpICsgZHVtbXlUaGlzQXJn
dW1lbnQpKTsKKyAgICAgICAgbV9qaXQuc3RvcmU2NChhcmdHUFIsIGNhbGxlZUFyZ3VtZW50U2xv
dChpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKICAgICB9CiAKICAgICBmbHVzaFJlZ2lzdGVycygp
OwpAQCAtNjgyLDIzICs2ODAsMjggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9k
ZSogbm9kZQogICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAKICAgICBKSVRD
b21waWxlcjo6RGF0YUxhYmVsUHRyIHRhcmdldFRvQ2hlY2s7Ci0gICAgSklUQ29tcGlsZXI6Okp1
bXBMaXN0IHNsb3dQYXRoOworICAgIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoOwogCiAgICAg
bV9qaXQuZW1pdFN0b3JlQ29kZU9yaWdpbihub2RlLT5jb2RlT3JpZ2luKTsKICAgICAKLSAgICBt
X2ppdC5hZGRQdHIoVHJ1c3RlZEltbTMyKGNhbGxlZUZyYW1lT2Zmc2V0KG51bUFyZ3MpKSwgR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgIAotICAgIHNsb3dQYXRoLmFwcGVuZChtX2pp
dC5icmFuY2hQdHJXaXRoUGF0Y2goTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBjYWxsZWVHUFIs
IHRhcmdldFRvQ2hlY2ssIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKDApKSk7CisgICAg
c2xvd1BhdGggPSBtX2ppdC5icmFuY2hQdHJXaXRoUGF0Y2goTWFjcm9Bc3NlbWJsZXI6Ok5vdEVx
dWFsLCBjYWxsZWVHUFIsIHRhcmdldFRvQ2hlY2ssIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKDApKTsKIAogICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2Fs
bGVlR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZSkpLCByZXN1bHRHUFIp
OwotICAgIG1faml0LnN0b3JlNjQocmVzdWx0R1BSLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2Yo
UmVnaXN0ZXIpKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pKTsKKyAgICBtX2ppdC5zdG9yZTY0KHJl
c3VsdEdQUiwgY2FsbGVlRnJhbWVTbG90KEpTU3RhY2s6OlNjb3BlQ2hhaW4pKTsKIAogICAgIEpJ
VENvbXBpbGVyOjpDYWxsIGZhc3RDYWxsID0gbV9qaXQubmVhckNhbGwoKTsKLSAgICAKKwogICAg
IEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7CiAgICAgCiAgICAgc2xvd1Bh
dGgubGluaygmbV9qaXQpOwogICAgIAorICAgIGlmIChtX2ppdC5ncmFwaCgpLm1fcGxhbi53aWxs
VHJ5VG9UaWVyVXApIHsKKyAgICAgICAgbV9qaXQuYWRkMzIoCisgICAgICAgICAgICBUcnVzdGVk
SW1tMzIoMSksCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWJzb2x1dGVBZGRyZXNzKAor
ICAgICAgICAgICAgICAgIG1faml0LmppdENvZGUoKS0+c2xvd1BhdGhDYWxscy5iZWdpbigpICsg
bV9qaXQuY3VycmVudEpTQ2FsbEluZGV4KCkpKTsKKyAgICB9CisgICAgCiAgICAgbV9qaXQubW92
ZShjYWxsZWVHUFIsIEdQUkluZm86OnJlZ1QwKTsgLy8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJl
Z1QwCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgc2xvd0NhbGwgPSBtX2ppdC5uZWFyQ2FsbCgpOwog
ICAgIApAQCAtMzIwMCw3ICszMjAzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShO
b2RlKiBub2RlKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRv
cigKICAgICAgICAgICAgICAgICBzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAgIHNs
b3dQYXRoLCB0aGlzLCBvcGVyYXRpb25BcnJheVB1c2gsIE5vUmVzdWx0LCBzdG9yYWdlTGVuZ3Ro
R1BSLAorICAgICAgICAgICAgICAgICAgICBzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uQXJyYXlQ
dXNoLCBzdG9yYWdlTGVuZ3RoR1BSLAogICAgICAgICAgICAgICAgICAgICB2YWx1ZUdQUiwgYmFz
ZUdQUikpOwogICAgICAgICAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQoc3RvcmFnZUxlbmd0
aEdQUiwgbm9kZSk7CkBAIC0zMjI0LDcgKzMyMjcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGFkZFNsb3dQYXRo
R2VuZXJhdG9yKAogICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAg
ICAgICAgc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSwgTm9SZXN1bHQs
IHN0b3JhZ2VMZW5ndGhHUFIsCisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLCB0aGlzLCBv
cGVyYXRpb25BcnJheVB1c2hEb3VibGUsIHN0b3JhZ2VMZW5ndGhHUFIsCiAgICAgICAgICAgICAg
ICAgICAgIHZhbHVlRlBSLCBiYXNlR1BSKSk7CiAgICAgICAgIAogICAgICAgICAgICAganNWYWx1
ZVJlc3VsdChzdG9yYWdlTGVuZ3RoR1BSLCBub2RlKTsKQEAgLTMzODgsMTIgKzMzOTEsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIEpTVmFsdWVP
cGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIG1faml0Lm1vdmUob3Ax
LmdwcigpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAKLSAgICAgICAgLy8gR3JhYiB0aGUg
cmV0dXJuIGFkZHJlc3MuCi0gICAgICAgIG1faml0LmVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJh
bWVIZWFkZXJQdHIoR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICAvLyBSZXN0b3JlIG91ciBjYWxs
ZXIncyAiciIuCi0gICAgICAgIG1faml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVI
ZWFkZXJQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgICAgICAvLyBSZXR1cm4u
Ci0gICAgICAgIG1faml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86
OnJlZ1QxKTsKKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAg
bV9qaXQucmV0KCk7CiAgICAgICAgIAogICAgICAgICBub1Jlc3VsdChub2RlKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM0Niw2ICsxMzQ2LDggQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUN1cnJlbnRCbG9jawogICAgIG1fc3RyZWFtLT5hcHBlbmRBbmRMb2co
VmFyaWFibGVFdmVudDo6cmVzZXQoKSk7CiAgICAgCiAgICAgbV9qaXQuaml0QXNzZXJ0SGFzVmFs
aWRDYWxsRnJhbWUoKTsKKyAgICBtX2ppdC5qaXRBc3NlcnRUYWdzSW5QbGFjZSgpOworICAgIG1f
aml0LmppdEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fYmxvY2stPnZhcmlhYmxlc0F0SGVhZC5udW1iZXJPZkFyZ3VtZW50cygpOyArK2kp
IHsKICAgICAgICAgbV9zdHJlYW0tPmFwcGVuZEFuZExvZygKQEAgLTE1MzIsMTAgKzE1MzQsNDAg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKAogICAgIG1faXNDaGVj
a2luZ0FyZ3VtZW50VHlwZXMgPSBmYWxzZTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6cHJl
cGFyZUpJVENvZGVGb3JUaWVyVXAoKQoreworICAgIHVuc2lnbmVkIG51bWJlck9mQ2FsbHMgPSAw
OworICAgIAorICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gbV9qaXQuZ3JhcGgoKS5u
dW1CbG9ja3MoKTsgYmxvY2tJbmRleC0tOykgeworICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9
IG1faml0LmdyYXBoKCkuYmxvY2soYmxvY2tJbmRleCk7CisgICAgICAgIGlmICghYmxvY2spCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAgIGZvciAodW5zaWduZWQgbm9k
ZUluZGV4ID0gYmxvY2stPnNpemUoKTsgbm9kZUluZGV4LS07KSB7CisgICAgICAgICAgICBOb2Rl
KiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRleCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgICAgICAgICAgY2FzZSBDYWxsOgorICAgICAgICAg
ICAgY2FzZSBDb25zdHJ1Y3Q6CisgICAgICAgICAgICAgICAgbnVtYmVyT2ZDYWxscysrOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKyAgICAKKyAgICBtX2ppdC5qaXRDb2RlKCktPnNsb3dQYXRoQ2FsbHMuZmlsbCgwLCBudW1i
ZXJPZkNhbGxzKTsKK30KKwogYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSgpCiB7CiAgICAg
Y2hlY2tBcmd1bWVudFR5cGVzKCk7Ci0KKyAgICAKKyAgICBpZiAobV9qaXQuZ3JhcGgoKS5tX3Bs
YW4ud2lsbFRyeVRvVGllclVwKQorICAgICAgICBwcmVwYXJlSklUQ29kZUZvclRpZXJVcCgpOwor
ICAgIAogICAgIEFTU0VSVCghbV9jdXJyZW50Tm9kZSk7CiAgICAgZm9yIChCbG9ja0luZGV4IGJs
b2NrSW5kZXggPSAwOyBibG9ja0luZGV4IDwgbV9qaXQuZ3JhcGgoKS5udW1CbG9ja3MoKTsgKyti
bG9ja0luZGV4KSB7CiAgICAgICAgIG1faml0LnNldEZvckJsb2NrSW5kZXgoYmxvY2tJbmRleCk7
CkBAIC0yMzkwLDYgKzI0MjIsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5
VmFsRm9ySQogICAgIEFTU0VSVCh2YWx1ZUdQUiAhPSBiYXNlKTsKICAgICBBU1NFUlQodmFsdWVH
UFIgIT0gc3RvcmFnZVJlZyk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMg
PSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2UsIHByb3BlcnR5KTsKKyAg
ICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpICYmIG91dE9mQm91bmRzLmlzU2V0
KCkpIHsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVNvdXJj
ZSgpLCAwLCBvdXRPZkJvdW5kcyk7CisgICAgICAgIG91dE9mQm91bmRzID0gTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAoKTsKKyAgICB9CiAKICAgICBzd2l0Y2ggKGVsZW1lbnRTaXplKHR5cGUpKSB7CiAg
ICAgY2FzZSAxOgpAQCAtMjQ2NSw2ICsyNTAxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVQdXRCeVZhbEZvckYKICAgICBBU1NFUlRfVU5VU0VEKGJhc2VVc2UsIG5vZGUtPmFycmF5
TW9kZSgpLmFscmVhZHlDaGVja2VkKG1faml0LmdyYXBoKCksIG5vZGUsIG1fc3RhdGUuZm9yTm9k
ZShiYXNlVXNlKSkpOwogICAgIAogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9mQm91bmRz
ID0ganVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhub2RlLCBiYXNlLCBwcm9wZXJ0eSk7Cisg
ICAgaWYgKG5vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSAmJiBvdXRPZkJvdW5kcy5pc1Nl
dCgpKSB7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVTb3Vy
Y2UoKSwgMCwgb3V0T2ZCb3VuZHMpOworICAgICAgICBvdXRPZkJvdW5kcyA9IE1hY3JvQXNzZW1i
bGVyOjpKdW1wKCk7CisgICAgfQogICAgIAogICAgIHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkp
IHsKICAgICBjYXNlIDQ6IHsKQEAgLTM0MjksNiArMzQ2OSwxNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlQXJpdGhNb2QoTm9kCiAgICAgICAgIEdQUlJlZyBxdW90aWVudFRoZW5SZW1h
aW5kZXJHUFIgPSBxdW90aWVudFRoZW5SZW1haW5kZXIuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyBt
dWx0aXBseUFuc3dlckdQUiA9IG11bHRpcGx5QW5zd2VyLmdwcigpOwogCisgICAgICAgIEpJVENv
bXBpbGVyOjpKdW1wTGlzdCBkb25lOworICAgICAgICAKKyAgICAgICAgaWYgKHNob3VsZENoZWNr
T3ZlcmZsb3cobm9kZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBp
bGVyOjpaZXJvLCBkaXZpc29yR1BSKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSklU
Q29tcGlsZXI6Okp1bXAgZGVub21pbmF0b3JOb3RaZXJvID0gbV9qaXQuYnJhbmNoVGVzdDMyKEpJ
VENvbXBpbGVyOjpOb25aZXJvLCBkaXZpc29yR1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUo
ZGl2aXNvckdQUiwgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BSKTsKKyAgICAgICAgICAgIGRvbmUu
YXBwZW5kKG1faml0Lmp1bXAoKSk7CisgICAgICAgICAgICBkZW5vbWluYXRvck5vdFplcm8ubGlu
aygmbV9qaXQpOworICAgICAgICB9CisKICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuc2Rpdihx
dW90aWVudFRoZW5SZW1haW5kZXJHUFIsIGRpdmlkZW5kR1BSLCBkaXZpc29yR1BSKTsKICAgICAg
ICAgLy8gRklYTUU6IEl0IHNlZW1zIGxpa2UgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHdlIGRvbid0
IG5lZWQgdGhpcz8gV2hhdCBpZiB3ZSBoYXZlCiAgICAgICAgIC8vIGFyaXRoTW9kZSgpID09IEFy
aXRoOjpVbmNoZWNrZWQ/CkBAIC0zNDQ1LDYgKzM0OTYsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQXJpdGhNb2QoTm9kCiAgICAgICAgICAgICBudW1lcmF0b3JQb3NpdGl2ZS5saW5r
KCZtX2ppdCk7CiAgICAgICAgIH0KIAorICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAg
ICAgCiAgICAgICAgIGludDMyUmVzdWx0KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgbm9kZSk7
CiAjZWxpZiBDUFUoQVJNNjQpCiAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOwpAQCAt
MzQ1NSw2ICszNTA4LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChO
b2QKICAgICAgICAgR1BSUmVnIHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiA9IHF1b3RpZW50VGhl
blJlbWFpbmRlci5ncHIoKTsKICAgICAgICAgR1BSUmVnIG11bHRpcGx5QW5zd2VyR1BSID0gbXVs
dGlwbHlBbnN3ZXIuZ3ByKCk7CiAKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IGRvbmU7
CisgICAgCisgICAgICAgIGlmIChzaG91bGRDaGVja092ZXJmbG93KG5vZGUtPmFyaXRoTW9kZSgp
KSkKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCks
IDAsIG1faml0LmJyYW5jaFRlc3QzMihKSVRDb21waWxlcjo6WmVybywgZGl2aXNvckdQUikpOwor
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGRlbm9taW5hdG9y
Tm90WmVybyA9IG1faml0LmJyYW5jaFRlc3QzMihKSVRDb21waWxlcjo6Tm9uWmVybywgZGl2aXNv
ckdQUik7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKGRpdmlzb3JHUFIsIHF1b3RpZW50VGhlblJl
bWFpbmRlckdQUik7CisgICAgICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAg
ICAgICAgICAgZGVub21pbmF0b3JOb3RaZXJvLmxpbmsoJm1faml0KTsKKyAgICAgICAgfQorCiAg
ICAgICAgIG1faml0LmFzc2VtYmxlcigpLnNkaXY8MzI+KHF1b3RpZW50VGhlblJlbWFpbmRlckdQ
UiwgZGl2aWRlbmRHUFIsIGRpdmlzb3JHUFIpOwogICAgICAgICAvLyBGSVhNRTogSXQgc2VlbXMg
bGlrZSB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgd2UgZG9uJ3QgbmVlZCB0aGlzPyBXaGF0IGlmIHdl
IGhhdmUKICAgICAgICAgLy8gYXJpdGhNb2RlKCkgPT0gQXJpdGg6OlVuY2hlY2tlZD8KQEAgLTM0
NzEsNiArMzUzNSw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2QK
ICAgICAgICAgICAgIG51bWVyYXRvclBvc2l0aXZlLmxpbmsoJm1faml0KTsKICAgICAgICAgfQog
CisgICAgICAgIGRvbmUubGluaygmbV9qaXQpOworCiAgICAgICAgIGludDMyUmVzdWx0KHF1b3Rp
ZW50VGhlblJlbWFpbmRlckdQUiwgbm9kZSk7CiAjZWxzZSAvLyBub3QgYXJjaGl0ZWN0dXJlIHRo
YXQgY2FuIGRvIGludGVnZXIgZGl2aXNpb24KICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSw5IEBAIHB1
YmxpYzoKICAgICB+U3BlY3VsYXRpdmVKSVQoKTsKIAogICAgIGJvb2wgY29tcGlsZSgpOworICAg
IAorICAgIHZvaWQgcHJlcGFyZUpJVENvZGVGb3JUaWVyVXAoKTsKKyAgICAKICAgICB2b2lkIGNy
ZWF0ZU9TUkVudHJpZXMoKTsKICAgICB2b2lkIGxpbmtPU1JFbnRyaWVzKExpbmtCdWZmZXImKTsK
IApAQCAtNzQyLDQ0ICs3NDUsNDUgQEAgcHVibGljOgogICAgIAogICAgIHB0cmRpZmZfdCBjYWxs
ZWVGcmFtZU9mZnNldChpbnQgbnVtQXJncykKICAgICB7Ci0gICAgICAgIHJldHVybiB2aXJ0dWFs
UmVnaXN0ZXJGb3JMb2NhbChtX2ppdC5ncmFwaCgpLm1fbmV4dE1hY2hpbmVMb2NhbCArIEpTU3Rh
Y2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyBudW1BcmdzKS5vZmZzZXQoKSAqIHNpemVvZihSZWdp
c3Rlcik7CisgICAgICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2ppdC5ncmFw
aCgpLm1fbmV4dE1hY2hpbmVMb2NhbCAtIDEgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXpl
ICsgbnVtQXJncykub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpOwogICAgIH0KICAgICAKICAg
ICAvLyBBY2Nlc3MgdG8gb3VyIGZpeGVkIGNhbGxlZSBDYWxsRnJhbWUuCi0gICAgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVTbG90KGludCBudW1BcmdzLCBpbnQgc2xvdCkKKyAg
ICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVNsb3QoaW50IHNsb3QpCiAgICAg
ewotICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lT2Zmc2V0KG51bUFyZ3MpICsgc2l6ZW9mKFJlZ2lzdGVy
KSAqIHNsb3QpOworICAgICAgICBBU1NFUlQoc2xvdCA+PSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFu
ZFBDU2l6ZSk7CisgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fz
c2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3RlcikgKiAoc2xvdCAt
IEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSk7CiAgICAgfQogCiAgICAgLy8gQWNjZXNz
IHRvIG91ciBmaXhlZCBjYWxsZWUgQ2FsbEZyYW1lLgotICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzIGNhbGxlZUFyZ3VtZW50U2xvdChpbnQgbnVtQXJncywgaW50IGFyZ3VtZW50KQorICAgIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50U2xvdChpbnQgYXJndW1lbnQpCiAg
ICAgewotICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KG51bUFyZ3MsIHZpcnR1YWxSZWdp
c3RlckZvckFyZ3VtZW50KGFyZ3VtZW50KS5vZmZzZXQoKSk7CisgICAgICAgIHJldHVybiBjYWxs
ZWVGcmFtZVNsb3QodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpLm9mZnNldCgp
KTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVRhZ1Ns
b3QoaW50IG51bUFyZ3MsIGludCBzbG90KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNh
bGxlZUZyYW1lVGFnU2xvdChpbnQgc2xvdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVG
cmFtZVNsb3QobnVtQXJncywgc2xvdCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOworICAgICAgICByZXR1cm4gY2FsbGVlRnJh
bWVTbG90KHNsb3QpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2Ny
aXB0b3IsIGFzQml0cy50YWcpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyBjYWxsZWVGcmFtZVBheWxvYWRTbG90KGludCBudW1BcmdzLCBpbnQgc2xvdCkKKyAgICBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVBheWxvYWRTbG90KGludCBzbG90KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdChudW1BcmdzLCBzbG90KS53aXRoT2Zm
c2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9h
ZCkpOworICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KHNsb3QpLndpdGhPZmZzZXQoT0JK
RUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CiAg
ICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRUYWdTbG90
KGludCBudW1BcmdzLCBpbnQgYXJndW1lbnQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mg
Y2FsbGVlQXJndW1lbnRUYWdTbG90KGludCBhcmd1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBjYWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywgYXJndW1lbnQpLndpdGhPZmZzZXQoT0JKRUNU
X09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKTsKKyAgICAgICAg
cmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChhcmd1bWVudCkud2l0aE9mZnNldChPQkpFQ1RfT0ZG
U0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOwogICAgIH0KIAotICAg
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3QoaW50IG51
bUFyZ3MsIGludCBhcmd1bWVudCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVB
cmd1bWVudFBheWxvYWRTbG90KGludCBhcmd1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBj
YWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywgYXJndW1lbnQpLndpdGhPZmZzZXQoT0JKRUNUX09G
RlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAg
IHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QoYXJndW1lbnQpLndpdGhPZmZzZXQoT0JKRUNUX09G
RlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CiAgICAgfQog
Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVDYWxsZXJGcmFtZShpbnQg
bnVtQXJncykKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZUNhbGxlckZy
YW1lKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QobnVtQXJncywgMCku
d2l0aE9mZnNldChDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpOworICAgICAgICByZXR1
cm4gY2FsbGVlRnJhbWVTbG90KDApLndpdGhPZmZzZXQoQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9m
ZnNldCgpKTsKICAgICB9CiAKICAgICB2b2lkIGVtaXRDYWxsKE5vZGUqKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGllclVwQ2hlY2tJbmplY3Rpb25QaGFzZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVj
dGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDks
MjcgKzQ5LDU5IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIGlmICghT3B0aW9uczo6dXNl
RXhwZXJpbWVudGFsRlRMKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KKyAgICAgICAg
CisgICAgICAgIGlmIChtX2dyYXBoLm1fcHJvZmlsZWRCbG9jay0+bV9kaWRGYWlsRlRMQ29tcGls
YXRpb24pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCiAjaWYgRU5BQkxFKEZU
TF9KSVQpCiAgICAgICAgIEZUTDo6Q2FwYWJpbGl0eUxldmVsIGxldmVsID0gRlRMOjpjYW5Db21w
aWxlKG1fZ3JhcGgpOwogICAgICAgICBpZiAobGV2ZWwgPT0gRlRMOjpDYW5ub3RDb21waWxlKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKKyAgICAgICAgaWYgKCFPcHRpb25z
OjplbmFibGVPU1JFbnRyeVRvRlRMKCkpCisgICAgICAgICAgICBsZXZlbCA9IEZUTDo6Q2FuQ29t
cGlsZTsKKyAgICAgICAgCiAgICAgICAgIEluc2VydGlvblNldCBpbnNlcnRpb25TZXQobV9ncmFw
aCk7CiAgICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gbV9ncmFwaC5udW1CbG9j
a3MoKTsgYmxvY2tJbmRleC0tOykgewogICAgICAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSBt
X2dyYXBoLmJsb2NrKGJsb2NrSW5kZXgpOwogICAgICAgICAgICAgaWYgKCFibG9jaykKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGJsb2Nr
LT5hdCgwKS0+b3AoKSA9PSBMb29wSGludCkgewotICAgICAgICAgICAgICAgIENvZGVPcmlnaW4g
Y29kZU9yaWdpbiA9IGJsb2NrLT5hdCgwKS0+Y29kZU9yaWdpbjsKLSAgICAgICAgICAgICAgICBO
b2RlVHlwZSBub2RlVHlwZTsKLSAgICAgICAgICAgICAgICBpZiAobGV2ZWwgPT0gRlRMOjpDYW5D
b21waWxlQW5kT1NSRW50ZXIgJiYgIWNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIG5vZGVUeXBlID0gQ2hlY2tUaWVyVXBBbmRPU1JFbnRlcjsKLSAgICAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoYmxvY2stPmJ5dGVjb2RlQmVnaW4gPT0gY29k
ZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgbm9kZVR5cGUgPSBDaGVja1RpZXJVcEluTG9vcDsKLSAgICAgICAgICAgICAg
ICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgxLCBTcGVjTm9uZSwgbm9kZVR5cGUsIGNvZGVPcmln
aW4pOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXgg
PCBibG9jay0+c2l6ZSgpOyArK25vZGVJbmRleCkgeworICAgICAgICAgICAgICAgIE5vZGUqIG5v
ZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3Ao
KSAhPSBMb29wSGludCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgLy8gV2Ugb25seSBwdXQgT1NSIGNoZWNrcyBmb3IgdGhl
IGZpcnN0IExvb3BIaW50IGluIHRoZSBibG9jay4gTm90ZSB0aGF0CisgICAgICAgICAgICAgICAg
Ly8gbW9yZSB0aGFuIG9uZSBMb29wSGludCBjb3VsZCBoYXBwZW4gaW4gY2FzZXMgd2hlcmUgd2Ug
ZGlkIGEgbG90IG9mIENGRworICAgICAgICAgICAgICAgIC8vIHNpbXBsaWZpY2F0aW9uIGluIHRo
ZSBieXRlY29kZSBwYXJzZXIsIGJ1dCBpdCBzaG91bGQgYmUgdmVyeSByYXJlLgorICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IG5vZGUtPmNv
ZGVPcmlnaW47CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGxldmVsICE9
IEZUTDo6Q2FuQ29tcGlsZUFuZE9TUkVudGVyIHx8IGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1l
KSB7CisgICAgICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAg
ICAgICAgICAgICAgICAgICAgbm9kZUluZGV4ICsgMSwgU3BlY05vbmUsIENoZWNrVGllclVwSW5M
b29wLCBjb2RlT3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGJvb2wgaXNBdFRvcCA9
IHRydWU7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBzdWJOb2RlSW5kZXggPSBub2Rl
SW5kZXg7IHN1Yk5vZGVJbmRleC0tOykgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWJsb2Nr
LT5hdChzdWJOb2RlSW5kZXgpLT5pc1NlbWFudGljYWxseVNraXBwYWJsZSgpKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpc0F0VG9wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIWlzQXRUb3ApIHsKKyAgICAgICAgICAg
ICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgICAgICAg
ICBub2RlSW5kZXggKyAxLCBTcGVjTm9uZSwgQ2hlY2tUaWVyVXBJbkxvb3AsIGNvZGVPcmlnaW4p
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoYmxvY2stPmJ5dGVjb2Rl
QmVnaW4gPT0gY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKKyAgICAgICAgICAgICAgICBpbnNl
cnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAgICAgICAgICAgbm9kZUluZGV4ICsgMSwg
U3BlY05vbmUsIENoZWNrVGllclVwQW5kT1NSRW50ZXIsIGNvZGVPcmlnaW4pOworICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBp
ZiAoYmxvY2stPmxhc3QoKS0+b3AoKSA9PSBSZXR1cm4pIHsKQEAgLTgwLDYgKzExMiw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIGluc2VydGlvblNldC5leGVjdXRlKGJsb2NrKTsKICAgICAgICAg
fQogICAgICAgICAKKyAgICAgICAgbV9ncmFwaC5tX3BsYW4ud2lsbFRyeVRvVGllclVwID0gdHJ1
ZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZWxzZSAvLyBFTkFCTEUoRlRMX0pJVCkKICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDYg
KzE4MiwxOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
ICAgICBWX0VRVUFMKChub2RlKSwgbm9kZS0+cmVmQ291bnQoKSwgMSk7CiAgICAgICAgICAgICB9
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwIDsgaSA8IGJsb2Nr
LT5zaXplKCkgLSAxOyArK2kpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2st
PmF0KGkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwgIW5vZGUtPmlzVGVybWlu
YWwoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgTm9k
ZSogbm9kZSA9IGJsb2NrLT5hdChpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBpZiAobm9kZS0+aGFzU3RydWN0dXJlKCkpCisgICAgICAgICAgICAgICAgICAgIFZBTElEQVRF
KChub2RlKSwgISFub2RlLT5zdHJ1Y3R1cmUoKSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIHN3aXRjaCAobV9ncmFwaC5tX2Zvcm0pIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjYxLDIzICsyNjEsNTIgQEAgdm9pZCBXb3JrbGlzdDo6dGhyZWFkRnVuY3Rpb24odm9p
ZCogYXJndQogICAgIHN0YXRpY19jYXN0PFdvcmtsaXN0Kj4oYXJndW1lbnQpLT5ydW5UaHJlYWQo
KTsKIH0KIAotc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxXb3JrbGlzdDsKK3N0YXRpYyBXb3Jr
bGlzdCogdGhlR2xvYmFsREZHV29ya2xpc3Q7CiAKLVdvcmtsaXN0KiBnbG9iYWxXb3JrbGlzdCgp
CitXb3JrbGlzdCogZW5zdXJlR2xvYmFsREZHV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNh
bGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAgICB1
bnNpZ25lZCBudW1iZXJPZlRocmVhZHM7CisgICAgICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0g
V29ya2xpc3Q6OmNyZWF0ZShPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5s
ZWFrUmVmKCk7CisgICAgfSk7CisgICAgcmV0dXJuIHRoZUdsb2JhbERGR1dvcmtsaXN0OworfQog
Ci0gICAgICAgIGlmIChPcHRpb25zOjp1c2VFeHBlcmltZW50YWxGVEwoKSkKLSAgICAgICAgICAg
IG51bWJlck9mVGhyZWFkcyA9IDE7IC8vIFdlIGRvbid0IHlldCB1c2UgTExWTSBpbiBhIHRocmVh
ZC1zYWZlIHdheS4KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbnVtYmVyT2ZUaHJlYWRzID0g
T3B0aW9uczo6bnVtYmVyT2ZDb21waWxlclRocmVhZHMoKTsKK1dvcmtsaXN0KiBleGlzdGluZ0ds
b2JhbERGR1dvcmtsaXN0T3JOdWxsKCkKK3sKKyAgICByZXR1cm4gdGhlR2xvYmFsREZHV29ya2xp
c3Q7Cit9CiAKLSAgICAgICAgdGhlR2xvYmFsV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKG51
bWJlck9mVGhyZWFkcykubGVha1JlZigpOworc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxGVExX
b3JrbGlzdDsKKworV29ya2xpc3QqIGVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KCkKK3sKKyAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWc7Cisg
ICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWcsIFtdIHsK
KyAgICAgICAgdGhlR2xvYmFsRlRMV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKE9wdGlvbnM6
Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAgICB9KTsKKyAgICBy
ZXR1cm4gdGhlR2xvYmFsRlRMV29ya2xpc3Q7Cit9CisKK1dvcmtsaXN0KiBleGlzdGluZ0dsb2Jh
bEZUTFdvcmtsaXN0T3JOdWxsKCkKK3sKKyAgICByZXR1cm4gdGhlR2xvYmFsRlRMV29ya2xpc3Q7
Cit9CiAKLSAgICByZXR1cm4gdGhlR2xvYmFsV29ya2xpc3Q7CitXb3JrbGlzdCogZW5zdXJlR2xv
YmFsV29ya2xpc3RGb3IoQ29tcGlsYXRpb25Nb2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2Rl
KSB7CisgICAgY2FzZSBJbnZhbGlkQ29tcGlsYXRpb25Nb2RlOgorICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIERGR01vZGU6
CisgICAgICAgIHJldHVybiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpOworICAgIGNhc2UgRlRM
TW9kZToKKyAgICBjYXNlIEZUTEZvck9TUkVudHJ5TW9kZToKKyAgICAgICAgcmV0dXJuIGVuc3Vy
ZUdsb2JhbEZUTFdvcmtsaXN0KCk7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtOTUsMTAgKzk1LDE1IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9udW1iZXJP
ZkFjdGl2ZVRocmVhZHM7CiB9OwogCi0vLyBGb3Igbm93IHdlIHVzZSBhIHNpbmdsZSBnbG9iYWwg
d29ya2xpc3QuIEl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcwotLy8gaXMgdGhlIHJpZ2h0IHRoaW5n
IHRvIGRvLCBidXQgaXQgaXMgd2hhdCB3ZSBkbywgZm9yIG5vdy4gVGhpcyBmdW5jdGlvbgotLy8g
d2lsbCBsYXppbHkgY3JlYXRlIG9uZSB3aGVuIGl0J3MgbmVlZGVkLgotV29ya2xpc3QqIGdsb2Jh
bFdvcmtsaXN0KCk7CisvLyBGb3IgREZHTW9kZSBjb21waWxhdGlvbnMuCitXb3JrbGlzdCogZW5z
dXJlR2xvYmFsREZHV29ya2xpc3QoKTsKK1dvcmtsaXN0KiBleGlzdGluZ0dsb2JhbERGR1dvcmts
aXN0T3JOdWxsKCk7CisKKy8vIEZvciBGVExNb2RlIGFuZCBGVExGb3JPU1JFbnRyeU1vZGUgY29t
cGlsYXRpb25zLgorV29ya2xpc3QqIGVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KCk7CitXb3JrbGlz
dCogZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVsbCgpOworCitXb3JrbGlzdCogZW5zdXJl
R2xvYmFsV29ya2xpc3RGb3IoQ29tcGlsYXRpb25Nb2RlKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkRGRwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0
L0E2NERPcGNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNh
c3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYyLDYgKzYyLDggQEAgc3RydWN0IE9wY29kZUdyb3VwSW5pdGlhbGl6ZXIg
ewogeyBncm91cEluZGV4LCBncm91cENsYXNzOjptYXNrLCBncm91cENsYXNzOjpwYXR0ZXJuLCBn
cm91cENsYXNzOjpmb3JtYXQgfQogCiBzdGF0aWMgT3Bjb2RlR3JvdXBJbml0aWFsaXplciBvcGNv
ZGVHcm91cExpc3RbXSA9IHsKKyAgICBPUENPREVfR1JPVVBfRU5UUlkoMHgwOCwgQTY0RE9wY29k
ZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciksCisgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MDksIEE2
NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIpLAogICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgw
eDBhLCBBNjRET3Bjb2RlTG9naWNhbFNoaWZ0ZWRSZWdpc3RlciksCiAgICAgT1BDT0RFX0dST1VQ
X0VOVFJZKDB4MGIsIEE2NERPcGNvZGVBZGRTdWJ0cmFjdEV4dGVuZGVkUmVnaXN0ZXIpLAogICAg
IE9QQ09ERV9HUk9VUF9FTlRSWSgweDBiLCBBNjRET3Bjb2RlQWRkU3VidHJhY3RTaGlmdGVkUmVn
aXN0ZXIpLApAQCAtMTcyLDYgKzE3NCwxMSBAQCBjb25zdCBjaGFyKiBBNjRET3Bjb2RlOjpmb3Jt
YXQoKQogCiB2b2lkIEE2NERPcGNvZGU6OmFwcGVuZFJlZ2lzdGVyTmFtZSh1bnNpZ25lZCByZWdp
c3Rlck51bWJlciwgYm9vbCBpczY0Qml0KQogeworICAgIGlmIChyZWdpc3Rlck51bWJlciA9PSAy
OSkgeworICAgICAgICBidWZmZXJQcmludGYoaXM2NEJpdCA/ICJmcCIgOiAid2ZwIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAocmVnaXN0ZXJOdW1iZXIgPT0gMzApIHsKICAg
ICAgICAgYnVmZmVyUHJpbnRmKGlzNjRCaXQgPyAibHIiIDogIndsciIpOwogICAgICAgICByZXR1
cm47CkBAIC05MzksNiArOTQ2LDYzIEBAIGNvbnN0IGNoYXIqIEE2NERPcGNvZGVMb2FkU3RvcmVS
ZWdpc3Rlck8KICAgICByZXR1cm4gbV9mb3JtYXRCdWZmZXI7CiB9CiAKK2NvbnN0IGNoYXIqIEE2
NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6Om9wTmFtZSgpCit7CisgICAgaWYgKCF2Qml0
KCkgJiYgbEJpdCgpICYmIHNpemUoKSA9PSAweDEpCisgICAgICAgIHJldHVybiAibGRwc3ciOwor
ICAgIGlmIChsQml0KCkpCisgICAgICAgIHJldHVybiAibGRwIjsKKyAgICByZXR1cm4gInN0cCI7
Cit9CisKK2NvbnN0IGNoYXIqIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OmZvcm1h
dCgpCit7CisgICAgY29uc3QgY2hhciogdGhpc09wTmFtZSA9IG9wTmFtZSgpOworICAgIAorICAg
IGlmIChzaXplKCkgPT0gMHgzKQorICAgICAgICByZXR1cm4gQTY0RE9wY29kZTo6Zm9ybWF0KCk7
CisKKyAgICBpZiAoKG9mZnNldE1vZGUoKSA8IDB4MSkgfHwgKG9mZnNldE1vZGUoKSA+IDB4Mykp
CisgICAgICAgIHJldHVybiBBNjRET3Bjb2RlOjpmb3JtYXQoKTsKKworICAgIGlmICgob2Zmc2V0
TW9kZSgpID09IDB4MSkgJiYgIXZCaXQoKSAmJiAhbEJpdCgpKQorICAgICAgICByZXR1cm4gQTY0
RE9wY29kZTo6Zm9ybWF0KCk7CisKKyAgICBhcHBlbmRJbnN0cnVjdGlvbk5hbWUodGhpc09wTmFt
ZSk7CisgICAgdW5zaWduZWQgb2Zmc2V0U2hpZnQ7CisgICAgaWYgKHZCaXQoKSkgeworICAgICAg
ICBhcHBlbmRGUFJlZ2lzdGVyTmFtZShydCgpLCBzaXplKCkpOworICAgICAgICBhcHBlbmRTZXBh
cmF0b3IoKTsKKyAgICAgICAgYXBwZW5kRlBSZWdpc3Rlck5hbWUocnQyKCksIHNpemUoKSk7Cisg
ICAgICAgIG9mZnNldFNoaWZ0ID0gc2l6ZSgpICsgMjsKKyAgICB9IGVsc2UgeworICAgICAgICBh
cHBlbmRSZWdpc3Rlck5hbWUocnQoKSwgaXM2NEJpdCgpKTsKKyAgICAgICAgYXBwZW5kU2VwYXJh
dG9yKCk7CisgICAgICAgIGFwcGVuZFJlZ2lzdGVyTmFtZShydDIoKSwgaXM2NEJpdCgpKTsKKyAg
ICAgICAgb2Zmc2V0U2hpZnQgPSAoc2l6ZSgpID4+IDEpICsgMjsKKyAgICB9CisKKyAgICBhcHBl
bmRTZXBhcmF0b3IoKTsKKyAgICBhcHBlbmRDaGFyYWN0ZXIoJ1snKTsKKyAgICBhcHBlbmRTUE9y
UmVnaXN0ZXJOYW1lKHJuKCkpOworCisgICAgaW50IG9mZnNldCA9IGltbWVkaWF0ZTcoKSA8PCBv
ZmZzZXRTaGlmdDsKKworICAgIGlmIChvZmZzZXRNb2RlKCkgPT0gMSkgeworICAgICAgICBhcHBl
bmRDaGFyYWN0ZXIoJ10nKTsKKyAgICAgICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIGFw
cGVuZFNpZ25lZEltbWVkaWF0ZShvZmZzZXQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGFwcGVu
ZFNlcGFyYXRvcigpOworICAgICAgICBhcHBlbmRTaWduZWRJbW1lZGlhdGUob2Zmc2V0KTsKKyAg
ICAgICAgYXBwZW5kQ2hhcmFjdGVyKCddJyk7CisgICAgICAgIGlmIChvZmZzZXRNb2RlKCkgPT0g
MHgzKQorICAgICAgICAgICAgYXBwZW5kQ2hhcmFjdGVyKCchJyk7CisgICAgfQorCisgICAgcmV0
dXJuIG1fZm9ybWF0QnVmZmVyOworfQorCiBjb25zdCBjaGFyKiBBNjRET3Bjb2RlTG9hZFN0b3Jl
VW5zaWduZWRJbW1lZGlhdGU6OmZvcm1hdCgpCiB7CiAgICAgY29uc3QgY2hhciogdGhpc09wTmFt
ZSA9IG9wTmFtZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9B
Uk02NC9BNjRET3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rp
c2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01NjUsNiArNTY1LDIyIEBAIHB1YmxpYzoKICAgICBpbnQgc0JpdCgpIHsgcmV0
dXJuIChtX29wY29kZSA+PiAxMikgJiAweDE7IH0KIH07CiAKK2NsYXNzIEE2NERPcGNvZGVMb2Fk
U3RvcmVSZWdpc3RlclBhaXIgOiBwdWJsaWMgQTY0RE9wY29kZUxvYWRTdG9yZSB7CitwdWJsaWM6
CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDNhMDAwMDAwOworICAgIHN0YXRp
YyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgyODAwMDAwMDsKKworICAgIERFRklORV9TVEFU
SUNfRk9STUFUKEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIsIHRoaXNPYmopOworCisg
ICAgY29uc3QgY2hhciogZm9ybWF0KCk7CisgICAgY29uc3QgY2hhciogb3BOYW1lKCk7CisKKyAg
ICB1bnNpZ25lZCBydDIoKSB7IHJldHVybiAobV9vcGNvZGUgPj4gMTApICYgMHgxZjsgfQorICAg
IGludCBpbW1lZGlhdGU3KCkgeyByZXR1cm4gKHN0YXRpY19jYXN0PGludD4oKG1fb3Bjb2RlID4+
IDE1KSAmIDB4N2YpIDw8IDI1KSA+PiAyNTsgfQorICAgIHVuc2lnbmVkIG9mZnNldE1vZGUoKSB7
IHJldHVybiAobV9vcGNvZGUgPj4gMjMpICYgMHg3OyB9CisgICAgaW50IGxCaXQoKSB7IHJldHVy
biAobV9vcGNvZGUgPj4gMjIpICYgMHgxOyB9Cit9OworCiBjbGFzcyBBNjRET3Bjb2RlTG9hZFN0
b3JlVW5zaWduZWRJbW1lZGlhdGUgOiBwdWJsaWMgQTY0RE9wY29kZUxvYWRTdG9yZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDNiMDAwMDAwOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYmJyZXZpYXRpb25zLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYmJyZXZpYXRpb25zLmgJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJicmV2aWF0aW9ucy5o
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBAIHN0YXRpYyBpbmxpbmUgTFR5cGUgZmxv
YXRUeXBlKExDb250ZXh0IGMKIHN0YXRpYyBpbmxpbmUgTFR5cGUgZG91YmxlVHlwZShMQ29udGV4
dCBjb250ZXh0KSB7IHJldHVybiBsbHZtLT5Eb3VibGVUeXBlSW5Db250ZXh0KGNvbnRleHQpOyB9
CiAKIHN0YXRpYyBpbmxpbmUgTFR5cGUgcG9pbnRlclR5cGUoTFR5cGUgdHlwZSkgeyByZXR1cm4g
bGx2bS0+UG9pbnRlclR5cGUodHlwZSwgMCk7IH0KK3N0YXRpYyBpbmxpbmUgTFR5cGUgYXJyYXlU
eXBlKExUeXBlIHR5cGUsIHVuc2lnbmVkIGNvdW50KSB7IHJldHVybiBsbHZtLT5BcnJheVR5cGUo
dHlwZSwgY291bnQpOyB9CiBzdGF0aWMgaW5saW5lIExUeXBlIHZlY3RvclR5cGUoTFR5cGUgdHlw
ZSwgdW5zaWduZWQgY291bnQpIHsgcmV0dXJuIGxsdm0tPlZlY3RvclR5cGUodHlwZSwgY291bnQp
OyB9CiAKIGVudW0gUGFja2luZ01vZGUgeyBOb3RQYWNrZWQsIFBhY2tlZCB9OwpAQCAtMTMyLDYg
KzEzMyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRNZXRhZGF0YShMVmFsdWUgaW4KIHN0YXRp
YyBpbmxpbmUgTFZhbHVlIGFkZEZ1bmN0aW9uKExNb2R1bGUgbW9kdWxlLCBjb25zdCBjaGFyKiBu
YW1lLCBMVHlwZSB0eXBlKSB7IHJldHVybiBsbHZtLT5BZGRGdW5jdGlvbihtb2R1bGUsIG5hbWUs
IHR5cGUpOyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0TGlua2FnZShMVmFsdWUgZ2xvYmFsLCBM
TGlua2FnZSBsaW5rYWdlKSB7IGxsdm0tPlNldExpbmthZ2UoZ2xvYmFsLCBsaW5rYWdlKTsgfQog
c3RhdGljIGlubGluZSB2b2lkIHNldEZ1bmN0aW9uQ2FsbGluZ0NvbnYoTFZhbHVlIGZ1bmN0aW9u
LCBMQ2FsbENvbnYgY29udmVudGlvbikgeyBsbHZtLT5TZXRGdW5jdGlvbkNhbGxDb252KGZ1bmN0
aW9uLCBjb252ZW50aW9uKTsgfQorc3RhdGljIGlubGluZSB2b2lkIGFkZFRhcmdldERlcGVuZGVu
dEZ1bmN0aW9uQXR0cihMVmFsdWUgZnVuY3Rpb24sIGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hh
ciogdmFsdWUpIHsgbGx2bS0+QWRkVGFyZ2V0RGVwZW5kZW50RnVuY3Rpb25BdHRyKGZ1bmN0aW9u
LCBrZXksIHZhbHVlKTsgfQogCiBzdGF0aWMgaW5saW5lIExWYWx1ZSBhZGRFeHRlcm5GdW5jdGlv
bihMTW9kdWxlIG1vZHVsZSwgY29uc3QgY2hhciogbmFtZSwgTFR5cGUgdHlwZSkKIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFw
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsOSArNTMsMTAgQEAgdm9pZCBBYnN0cmFjdEhlYXA6
OmRlY29yYXRlSW5zdHJ1Y3Rpb24oTAogICAgIHNldE1ldGFkYXRhKGluc3RydWN0aW9uLCByZXBv
c2l0b3J5Lm1fdGJhYUtpbmQsIHRiYWFNZXRhZGF0YShyZXBvc2l0b3J5KSk7CiB9CiAKLUluZGV4
ZWRBYnN0cmFjdEhlYXA6OkluZGV4ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQgY29udGV4dCwgQWJz
dHJhY3RIZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIqIGhlYXBOYW1lLCBzaXplX3QgZWxlbWVudFNp
emUpCitJbmRleGVkQWJzdHJhY3RIZWFwOjpJbmRleGVkQWJzdHJhY3RIZWFwKExDb250ZXh0IGNv
bnRleHQsIEFic3RyYWN0SGVhcCogcGFyZW50LCBjb25zdCBjaGFyKiBoZWFwTmFtZSwgcHRyZGlm
Zl90IG9mZnNldCwgc2l6ZV90IGVsZW1lbnRTaXplKQogICAgIDogbV9oZWFwRm9yQW55SW5kZXgo
cGFyZW50LCBoZWFwTmFtZSkKICAgICAsIG1faGVhcE5hbWVMZW5ndGgoc3RybGVuKGhlYXBOYW1l
KSkKKyAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fZWxlbWVudFNpemUoZWxlbWVudFNp
emUpCiAgICAgLCBtX3NjYWxlVGVybSgwKQogICAgICwgbV9jYW5TaGlmdChmYWxzZSkKQEAgLTkz
LDcgKzk0LDcgQEAgVHlwZWRQb2ludGVyIEluZGV4ZWRBYnN0cmFjdEhlYXA6OmJhc2VJbgogICAg
IH0gZWxzZQogICAgICAgICByZXN1bHQgPSBvdXQuYWRkKGJhc2UsIG91dC5tdWwoaW5kZXgsIG1f
c2NhbGVUZXJtKSk7CiAgICAgCi0gICAgcmV0dXJuIFR5cGVkUG9pbnRlcihhdEFueUluZGV4KCks
IG91dC5hZGRQdHIocmVzdWx0LCBvZmZzZXQpKTsKKyAgICByZXR1cm4gVHlwZWRQb2ludGVyKGF0
QW55SW5kZXgoKSwgb3V0LmFkZFB0cihyZXN1bHQsIG1fb2Zmc2V0ICsgb2Zmc2V0KSk7CiB9CiAK
IGNvbnN0IEFic3RyYWN0RmllbGQmIEluZGV4ZWRBYnN0cmFjdEhlYXA6OmF0U2xvdyhwdHJkaWZm
X3QgaW5kZXgpCkBAIC0xNjgsNyArMTY5LDcgQEAgdm9pZCBJbmRleGVkQWJzdHJhY3RIZWFwOjpp
bml0aWFsaXplKEFicwogICAgICAgICAgICAgYWNjdW11bGF0b3IgPj49IDQ7CiAgICAgICAgIH0K
ICAgICAgICAgCi0gICAgICAgIGZpZWxkLmluaXRpYWxpemUoJm1faGVhcEZvckFueUluZGV4LCBj
aGFyYWN0ZXJzLCBzaWduZWRJbmRleCAqIG1fZWxlbWVudFNpemUpOworICAgICAgICBmaWVsZC5p
bml0aWFsaXplKCZtX2hlYXBGb3JBbnlJbmRleCwgY2hhcmFjdGVycywgbV9vZmZzZXQgKyBzaWdu
ZWRJbmRleCAqIG1fZWxlbWVudFNpemUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApA
QCAtMTc3LDcgKzE3OCw3IEBAIHZvaWQgSW5kZXhlZEFic3RyYWN0SGVhcDo6aW5pdGlhbGl6ZShB
YnMKIAogTnVtYmVyZWRBYnN0cmFjdEhlYXA6Ok51bWJlcmVkQWJzdHJhY3RIZWFwKAogICAgIExD
b250ZXh0IGNvbnRleHQsIEFic3RyYWN0SGVhcCogaGVhcCwgY29uc3QgY2hhciogaGVhcE5hbWUp
Ci0gICAgOiBtX2luZGV4ZWRIZWFwKGNvbnRleHQsIGhlYXAsIGhlYXBOYW1lLCAxKQorICAgIDog
bV9pbmRleGVkSGVhcChjb250ZXh0LCBoZWFwLCBoZWFwTmFtZSwgMCwgMSkKIHsKIH0KIApAQCAt
MTg3LDcgKzE4OCw3IEBAIE51bWJlcmVkQWJzdHJhY3RIZWFwOjp+TnVtYmVyZWRBYnN0cmFjdEgK
IAogQWJzb2x1dGVBYnN0cmFjdEhlYXA6OkFic29sdXRlQWJzdHJhY3RIZWFwKAogICAgIExDb250
ZXh0IGNvbnRleHQsIEFic3RyYWN0SGVhcCogaGVhcCwgY29uc3QgY2hhciogaGVhcE5hbWUpCi0g
ICAgOiBtX2luZGV4ZWRIZWFwKGNvbnRleHQsIGhlYXAsIGhlYXBOYW1lLCAxKQorICAgIDogbV9p
bmRleGVkSGVhcChjb250ZXh0LCBoZWFwLCBoZWFwTmFtZSwgMCwgMSkKIHsKIH0KIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzksNyArMTM5LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgSW5kZXhl
ZEFic3RyYWN0SGVhcCB7CiBwdWJsaWM6Ci0gICAgSW5kZXhlZEFic3RyYWN0SGVhcChMQ29udGV4
dCwgQWJzdHJhY3RIZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIqIGhlYXBOYW1lLCBzaXplX3QgZWxl
bWVudFNpemUpOworICAgIEluZGV4ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQsIEFic3RyYWN0SGVh
cCogcGFyZW50LCBjb25zdCBjaGFyKiBoZWFwTmFtZSwgcHRyZGlmZl90IG9mZnNldCwgc2l6ZV90
IGVsZW1lbnRTaXplKTsKICAgICB+SW5kZXhlZEFic3RyYWN0SGVhcCgpOwogICAgIAogICAgIGNv
bnN0IEFic3RyYWN0SGVhcCYgYXRBbnlJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faGVhcEZvckFu
eUluZGV4OyB9CkBAIC0xNjgsNiArMTY4LDcgQEAgcHJpdmF0ZToKIAogICAgIEFic3RyYWN0SGVh
cCBtX2hlYXBGb3JBbnlJbmRleDsKICAgICBzaXplX3QgbV9oZWFwTmFtZUxlbmd0aDsKKyAgICBw
dHJkaWZmX3QgbV9vZmZzZXQ7CiAgICAgc2l6ZV90IG1fZWxlbWVudFNpemU7CiAgICAgTFZhbHVl
IG1fc2NhbGVUZXJtOwogICAgIGJvb2wgbV9jYW5TaGlmdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBBYnN0
cmFjdEhlYXBSZXBvc2l0b3J5OjpBYnN0cmFjdEhlYXBSZXBvCiAgICAgCiAgICAgLCBKU0NlbGxf
ZnJlZUxpc3ROZXh0KEpTQ2VsbF9zdHJ1Y3R1cmUpCiAgICAgCi0jZGVmaW5lIElOREVYRURfQUJT
VFJBQ1RfSEVBUF9JTklUSUFMSVpBVElPTihuYW1lLCBzaXplKSAsIG5hbWUoY29udGV4dCwgJnJv
b3QsICNuYW1lLCBzaXplKQorI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElBTEla
QVRJT04obmFtZSwgb2Zmc2V0LCBzaXplKSAsIG5hbWUoY29udGV4dCwgJnJvb3QsICNuYW1lLCBv
ZmZzZXQsIHNpemUpCiAgICAgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKElOREVYRURf
QUJTVFJBQ1RfSEVBUF9JTklUSUFMSVpBVElPTikKICN1bmRlZiBJTkRFWEVEX0FCU1RSQUNUX0hF
QVBfSU5JVElBTElaQVRJT04KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnku
aAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTEgKzQ4LDE1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgRlRMIHsKICAgICBtYWNybyhKU0FycmF5QnVmZmVyVmlld19tb2RlLCBKU0FycmF5QnVm
ZmVyVmlldzo6b2Zmc2V0T2ZNb2RlKCkpIFwKICAgICBtYWNybyhKU0FycmF5QnVmZmVyVmlld192
ZWN0b3IsIEpTQXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZlZlY3RvcigpKSBcCiAgICAgbWFjcm8o
SlNDZWxsX3N0cnVjdHVyZSwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSkgXAorICAgIG1hY3Jv
KEpTRnVuY3Rpb25fZXhlY3V0YWJsZSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkp
IFwKKyAgICBtYWNybyhKU0Z1bmN0aW9uX3Njb3BlLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNjb3Bl
Q2hhaW4oKSkgXAogICAgIG1hY3JvKEpTT2JqZWN0X2J1dHRlcmZseSwgSlNPYmplY3Q6OmJ1dHRl
cmZseU9mZnNldCgpKSBcCiAgICAgbWFjcm8oSlNTY29wZV9uZXh0LCBKU1Njb3BlOjpvZmZzZXRP
Zk5leHQoKSkgXAorICAgIG1hY3JvKEpTU3RyaW5nX2ZsYWdzLCBKU1N0cmluZzo6b2Zmc2V0T2ZG
bGFncygpKSBcCiAgICAgbWFjcm8oSlNTdHJpbmdfbGVuZ3RoLCBKU1N0cmluZzo6b2Zmc2V0T2ZM
ZW5ndGgoKSkgXAogICAgIG1hY3JvKEpTU3RyaW5nX3ZhbHVlLCBKU1N0cmluZzo6b2Zmc2V0T2ZW
YWx1ZSgpKSBcCiAgICAgbWFjcm8oSlNWYXJpYWJsZU9iamVjdF9yZWdpc3RlcnMsIEpTVmFyaWFi
bGVPYmplY3Q6Om9mZnNldE9mUmVnaXN0ZXJzKCkpIFwKKyAgICBtYWNybyhKU1dyYXBwZXJPYmpl
Y3RfaW50ZXJuYWxWYWx1ZSwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkp
IFwKICAgICBtYWNybyhNYXJrZWRBbGxvY2F0b3JfZnJlZUxpc3RIZWFkLCBNYXJrZWRBbGxvY2F0
b3I6Om9mZnNldE9mRnJlZUxpc3RIZWFkKCkpIFwKICAgICBtYWNybyhNYXJrZWRCbG9ja19tYXJr
Qml0cywgTWFya2VkQmxvY2s6Om9mZnNldE9mTWFya3MoKSkgXAogICAgIG1hY3JvKFN0cmluZ0lt
cGxfZGF0YSwgU3RyaW5nSW1wbDo6ZGF0YU9mZnNldCgpKSBcCkBAIC02NCwxNCArNjgsMTUgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV90eXBl
SW5mb1R5cGUsIFN0cnVjdHVyZTo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpCiAKICNkZWZpbmUgRk9S
X0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCi0gICAgbWFjcm8oY2hhcmFjdGVy
czgsIHNpemVvZihMQ2hhcikpIFwKLSAgICBtYWNybyhjaGFyYWN0ZXJzMTYsIHNpemVvZihVQ2hh
cikpIFwKLSAgICBtYWNybyhpbmRleGVkSW50MzJQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpT
VmFsdWUpKSBcCi0gICAgbWFjcm8oaW5kZXhlZERvdWJsZVByb3BlcnRpZXMsIHNpemVvZihkb3Vi
bGUpKSBcCi0gICAgbWFjcm8oaW5kZXhlZENvbnRpZ3VvdXNQcm9wZXJ0aWVzLCBzaXplb2YoRW5j
b2RlZEpTVmFsdWUpKSBcCi0gICAgbWFjcm8oaW5kZXhlZEFycmF5U3RvcmFnZVByb3BlcnRpZXMs
IHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKLSAgICBtYWNybyhzaW5nbGVDaGFyYWN0ZXJTdHJp
bmdzLCBzaXplb2YoSlNTdHJpbmcqKSkgXAotICAgIG1hY3JvKHZhcmlhYmxlcywgc2l6ZW9mKFJl
Z2lzdGVyKSkKKyAgICBtYWNybyhKU1JvcGVTdHJpbmdfZmliZXJzLCBKU1JvcGVTdHJpbmc6Om9m
ZnNldE9mRmliZXJzKCksIHNpemVvZihXcml0ZUJhcnJpZXI8SlNTdHJpbmc+KSkgXAorICAgIG1h
Y3JvKGNoYXJhY3RlcnM4LCAwLCBzaXplb2YoTENoYXIpKSBcCisgICAgbWFjcm8oY2hhcmFjdGVy
czE2LCAwLCBzaXplb2YoVUNoYXIpKSBcCisgICAgbWFjcm8oaW5kZXhlZEludDMyUHJvcGVydGll
cywgMCwgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKGluZGV4ZWREb3VibGVQ
cm9wZXJ0aWVzLCAwLCBzaXplb2YoZG91YmxlKSkgXAorICAgIG1hY3JvKGluZGV4ZWRDb250aWd1
b3VzUHJvcGVydGllcywgMCwgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKGlu
ZGV4ZWRBcnJheVN0b3JhZ2VQcm9wZXJ0aWVzLCAwLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBc
CisgICAgbWFjcm8oc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncywgMCwgc2l6ZW9mKEpTU3RyaW5nKikp
IFwKKyAgICBtYWNybyh2YXJpYWJsZXMsIDAsIHNpemVvZihSZWdpc3RlcikpCiAgICAgCiAjZGVm
aW5lIEZPUl9FQUNIX05VTUJFUkVEX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhw
cm9wZXJ0aWVzKQpAQCAtOTcsNyArMTAyLDcgQEAgcHVibGljOgogICAgIAogICAgIEFic3RyYWN0
RmllbGQmIEpTQ2VsbF9mcmVlTGlzdE5leHQ7CiAgICAgCi0jZGVmaW5lIElOREVYRURfQUJTVFJB
Q1RfSEVBUF9ERUNMQVJBVElPTihuYW1lLCBzaXplKSBJbmRleGVkQWJzdHJhY3RIZWFwIG5hbWU7
CisjZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElPTihuYW1lLCBvZmZzZXQs
IHNpemUpIEluZGV4ZWRBYnN0cmFjdEhlYXAgbmFtZTsKICAgICBGT1JfRUFDSF9JTkRFWEVEX0FC
U1RSQUNUX0hFQVAoSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9OKQogI3VuZGVmIElO
REVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElPTgogICAgIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJG
VExBdmFpbGFibGVSZWNvdmVyeS5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKK25hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKwordm9pZCBBdmFpbGFibGVSZWNvdmVyeTo6ZHVtcChQ
cmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIG91dC5wcmludChub2RlKCksICIgPT4gIiwg
b3Bjb2RlKCksICIsICIsIFJhd1BvaW50ZXIobV9sZWZ0KSwgIiwgIiwgUmF3UG9pbnRlcihtX3Jp
Z2h0KSwgIiwgIiwgbV9mb3JtYXQpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisK
KyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgRlRMQXZhaWxhYmxlUmVjb3ZlcnlfaAorI2RlZmluZSBGVExBdmFp
bGFibGVSZWNvdmVyeV9oCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkRGR05v
ZGUuaCIKKyNpbmNsdWRlICJGVExBYmJyZXZpYXRlZFR5cGVzLmgiCisjaW5jbHVkZSAiRlRMUmVj
b3ZlcnlPcGNvZGUuaCIKKyNpbmNsdWRlICJGVExWYWx1ZUZvcm1hdC5oIgorCituYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK2NsYXNzIEF2YWlsYWJsZVJlY292ZXJ5IHsKK3B1Ymxp
YzoKKyAgICBBdmFpbGFibGVSZWNvdmVyeSgpCisgICAgICAgIDogbV9ub2RlKDApCisgICAgICAg
ICwgbV9mb3JtYXQoSW52YWxpZFZhbHVlRm9ybWF0KQorICAgICAgICAsIG1fb3Bjb2RlKEFkZFJl
Y292ZXJ5KQorICAgICAgICAsIG1fbGVmdCgwKQorICAgICAgICAsIG1fcmlnaHQoMCkKKyAgICB7
CisgICAgfQorICAgIAorICAgIEF2YWlsYWJsZVJlY292ZXJ5KERGRzo6Tm9kZSogbm9kZSwgUmVj
b3ZlcnlPcGNvZGUgb3Bjb2RlLCBMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0LCBWYWx1ZUZvcm1h
dCBmb3JtYXQpCisgICAgICAgIDogbV9ub2RlKG5vZGUpCisgICAgICAgICwgbV9mb3JtYXQoZm9y
bWF0KQorICAgICAgICAsIG1fb3Bjb2RlKG9wY29kZSkKKyAgICAgICAgLCBtX2xlZnQobGVmdCkK
KyAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQorICAgIHsKKyAgICB9CisgICAgCisgICAgREZHOjpO
b2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4gbV9ub2RlOyB9CisgICAgVmFsdWVGb3JtYXQgZm9y
bWF0KCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXQ7IH0KKyAgICBSZWNvdmVyeU9wY29kZSBvcGNv
ZGUoKSBjb25zdCB7IHJldHVybiBtX29wY29kZTsgfQorICAgIExWYWx1ZSBsZWZ0KCkgY29uc3Qg
eyByZXR1cm4gbV9sZWZ0OyB9CisgICAgTFZhbHVlIHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9y
aWdodDsgfQorICAgIAorICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OworICAgIAor
cHJpdmF0ZToKKyAgICBERkc6Ok5vZGUqIG1fbm9kZTsKKyAgICBWYWx1ZUZvcm1hdCBtX2Zvcm1h
dDsKKyAgICBSZWNvdmVyeU9wY29kZSBtX29wY29kZTsKKyAgICBMVmFsdWUgbV9sZWZ0OworICAg
IExWYWx1ZSBtX3JpZ2h0OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5k
aWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExBdmFpbGFibGVSZWNvdmVyeV9o
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsMTEgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwogCitzdGF0aWMg
Ym9vbCB2ZXJib3NlQ2FwYWJpbGl0aWVzKCkKK3sKKyAgICByZXR1cm4gdmVyYm9zZUNvbXBpbGF0
aW9uRW5hYmxlZCgpIHx8IE9wdGlvbnM6OnZlcmJvc2VGVExGYWlsdXJlKCk7Cit9CisKIGlubGlu
ZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogewogICAgIC8vIE5PVEU6
IElmIHdlIGV2ZXIgaGF2ZSBwaGFudG9tIGFyZ3VtZW50cywgd2UgY2FuIGNvbXBpbGUgdGhlbSBi
dXQgd2UgY2Fubm90CkBAIC03Nyw2ICs4Miw5IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2Fu
Q29tcGlsZShOb2RlKiAKICAgICBjYXNlIEFyaXRoTWluOgogICAgIGNhc2UgQXJpdGhNYXg6CiAg
ICAgY2FzZSBBcml0aEFiczoKKyAgICBjYXNlIEFyaXRoU2luOgorICAgIGNhc2UgQXJpdGhDb3M6
CisgICAgY2FzZSBBcml0aFNxcnQ6CiAgICAgY2FzZSBBcml0aE5lZ2F0ZToKICAgICBjYXNlIFVJ
bnQzMlRvTnVtYmVyOgogICAgIGNhc2UgSW50MzJUb0RvdWJsZToKQEAgLTg4LDggKzk2LDYgQEAg
aW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNhc2UgVXBzaWxv
bjoKICAgICBjYXNlIEV4dHJhY3RPU1JFbnRyeUxvY2FsOgogICAgIGNhc2UgTG9vcEhpbnQ6Ci0g
ICAgY2FzZSBDYWxsOgotICAgIGNhc2UgQ29uc3RydWN0OgogICAgIGNhc2UgR2V0TXlTY29wZToK
ICAgICBjYXNlIFNraXBTY29wZToKICAgICBjYXNlIEdldENsb3N1cmVSZWdpc3RlcnM6CkBAIC0x
MDgsMTUgKzExNCwyNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSog
CiAgICAgY2FzZSBTdG9yZUJhcnJpZXI6CiAgICAgY2FzZSBDb25kaXRpb25hbFN0b3JlQmFycmll
cjoKICAgICBjYXNlIFN0b3JlQmFycmllcldpdGhOdWxsQ2hlY2s6CisgICAgY2FzZSBDYWxsOgor
ICAgIGNhc2UgQ29uc3RydWN0OgogICAgIGNhc2UgVmFsdWVUb0ludDMyOgogICAgIGNhc2UgQnJh
bmNoOgogICAgIGNhc2UgTG9naWNhbE5vdDoKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6CiAgICAg
Y2FzZSBDb25zdGFudFN0b3JhZ2VQb2ludGVyOgogICAgIGNhc2UgQ2hlY2s6CisgICAgY2FzZSBD
b3VudEV4ZWN1dGlvbjoKKyAgICBjYXNlIENoZWNrRXhlY3V0YWJsZToKKyAgICBjYXNlIEdldFNj
b3BlOgorICAgIGNhc2UgQWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50OgorICAgIGNhc2UgQ2hl
Y2tBcmd1bWVudHNOb3RDcmVhdGVkOgorICAgIGNhc2UgR2V0Q2FsbGVlOgorICAgIGNhc2UgVG9T
dHJpbmc6CisgICAgY2FzZSBNYWtlUm9wZToKKyAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6CiAg
ICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZXRCeUlk
OgorICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgIGlm
IChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMjM3LDggKzI1NSwxNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUo
Tm9kZSogCiBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3JhcGgpCiB7CiAgICAg
aWYgKGdyYXBoLm1fY29kZUJsb2NrLT5jb2RlVHlwZSgpICE9IEZ1bmN0aW9uQ29kZSkgewotICAg
ICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQotICAgICAgICAgICAgZGF0YUxv
ZygiRlRMIHJlamVjdGluZyBjb2RlIGJsb2NrIHRoYXQgZG9lc24ndCBiZWxvbmcgdG8gYSBmdW5j
dGlvbi5cbiIpOworICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxpdGllcygpKQorICAgICAgICAg
ICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyAiLCAqZ3JhcGgubV9jb2RlQmxvY2ssICIgYmVjYXVz
ZSBpdCBkb2Vzbid0IGJlbG9uZyB0byBhIGZ1bmN0aW9uLlxuIik7CisgICAgICAgIHJldHVybiBD
YW5ub3RDb21waWxlOworICAgIH0KKyAgICAKKyAgICBpZiAoZ3JhcGgubV9jb2RlQmxvY2stPm5l
ZWRzQWN0aXZhdGlvbigpKSB7CisgICAgICAgIC8vIE5lZWQgdGhpcyBiZWNhdXNlIGFsdGhvdWdo
IHdlIGFsc28gZG9uJ3Qgc3VwcG9ydAorICAgICAgICAvLyBDcmVhdGVBY3RpdmF0aW9uL1RlYXJP
ZmZBY3RpdmF0aW9uLCB3ZSBtaWdodCBub3Qgc2VlIHRob3NlIG5vZGVzIGluIGNhc2Ugb2YKKyAg
ICAgICAgLy8gT1NSIGVudHJ5LgorICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxpdGllcygpKQor
ICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyAiLCAqZ3JhcGgubV9jb2RlQmxvY2ss
ICIgYmVjYXVzZSBpdCB1c2VzIGFjdGl2YXRpb25zLlxuIik7CiAgICAgICAgIHJldHVybiBDYW5u
b3RDb21waWxlOwogICAgIH0KICAgICAKQEAgLTI3NCwxMyArMzAxLDE2IEBAIENhcGFiaWxpdHlM
ZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIE9iamVj
dFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgICAg
ICAgICAgY2FzZSBTdHJpbmdVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBLbm93blN0cmluZ1Vz
ZToKKyAgICAgICAgICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgICAg
ICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgRmlu
YWxPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg
ICAgICAgICAgICAgLy8gRG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIGFueXRoaW5nIGVsc2UuCi0g
ICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3Rpbmcgbm9kZSBiZWNhdXNl
IG9mIGJhZCB1c2Uga2luZDogIiwgZWRnZS51c2VLaW5kKCksICIgaW4gbm9kZTpcbiIpOworICAg
ICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxpdGllcygpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nIG5vZGUgaW4gIiwgKmdyYXBoLm1f
Y29kZUJsb2NrLCAiIGJlY2F1c2Ugb2YgYmFkIHVzZSBraW5kOiAiLCBlZGdlLnVzZUtpbmQoKSwg
IiBpbiBub2RlOlxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICBncmFwaC5kdW1wKFdURjo6
ZGF0YUZpbGUoKSwgIiAgICAiLCBub2RlKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKQEAgLTI4OSw4ICszMTksOCBAQCBD
YXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIHN3aXRjaCAoY2FuQ29tcGlsZShub2RlKSkgewogICAgICAgICAgICAgY2FzZSBD
YW5ub3RDb21waWxlOiAKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5h
YmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3Rpbmcgbm9k
ZTpcbiIpOworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlQ2FwYWJpbGl0aWVzKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyBub2RlIGluICIsICpncmFw
aC5tX2NvZGVCbG9jaywgIjpcbiIpOwogICAgICAgICAgICAgICAgICAgICBncmFwaC5kdW1wKFdU
Rjo6ZGF0YUZpbGUoKSwgIiAgICAiLCBub2RlKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDb21tb25WYWx1ZXMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTYxLDYgKzYxLDggQEAgQ29tbW9uVmFsdWVzOjpDb21tb25WYWx1ZXMoTENvbnRleHQgY29udAog
ICAgICwgaW50UHRyRWlnaHQoY29uc3RJbnQoaW50UHRyLCA4LCBTaWduRXh0ZW5kKSkKICAgICAs
IGludFB0clB0cihjb25zdEludChpbnRQdHIsIHNpemVvZih2b2lkKiksIFNpZ25FeHRlbmQpKQog
ICAgICwgZG91YmxlWmVybyhjb25zdFJlYWwoZG91YmxlVHlwZSwgMCkpCisgICAgLCByYW5nZUtp
bmQobWRLaW5kSUQoY29udGV4dCwgInJhbmdlIikpCisgICAgLCBub25OZWdhdGl2ZUludDMyKGNv
bnN0SW50KGludDMyLCAwLCBTaWduRXh0ZW5kKSwgY29uc3RJbnQoaW50MzIsIDFsbCA8PCAzMSwg
U2lnbkV4dGVuZCkpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fbW9kdWxlKDAp
CiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmgJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9u
VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDYgKzMxLDcgQEAKICNpZiBFTkFCTEUoRlRMX0pJ
VCkKIAogI2luY2x1ZGUgIkZUTEFiYnJldmlhdGlvbnMuaCIKKyNpbmNsdWRlICJGVExWYWx1ZVJh
bmdlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIApAQCAtNzQsNiArNzUs
MTAgQEAgcHVibGljOgogICAgIGNvbnN0IExWYWx1ZSBpbnRQdHJQdHI7CiAgICAgY29uc3QgTFZh
bHVlIGRvdWJsZVplcm87CiAgICAgCisgICAgY29uc3QgdW5zaWduZWQgcmFuZ2VLaW5kOworICAg
IAorICAgIGNvbnN0IFZhbHVlUmFuZ2Ugbm9uTmVnYXRpdmVJbnQzMjsKKyAgICAKICAgICBMQ29u
dGV4dCBjb25zdCBtX2NvbnRleHQ7CiAgICAgTE1vZHVsZSBtX21vZHVsZTsKIH07CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGVExJbmxpbmVDYWNoZVNpemUuaCIKICNpbmNs
dWRlICJGVExKSVRDb2RlLmgiCiAjaW5jbHVkZSAiRlRMVGh1bmtzLmgiCisjaW5jbHVkZSAiRlRM
VW53aW5kSW5mby5oIgogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiTExWTUFQSS5o
IgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKQEAgLTQ5LDcgKzUwLDYgQEAgdXNpbmcgbmFtZXNw
YWNlIERGRzsKIHN0YXRpYyB1aW50OF90KiBtbUFsbG9jYXRlQ29kZVNlY3Rpb24oCiAgICAgdm9p
ZCogb3BhcXVlU3RhdGUsIHVpbnRwdHJfdCBzaXplLCB1bnNpZ25lZCBhbGlnbm1lbnQsIHVuc2ln
bmVkLCBjb25zdCBjaGFyKiBzZWN0aW9uTmFtZSkKIHsKLSAgICAKICAgICBTdGF0ZSYgc3RhdGUg
PSAqc3RhdGljX2Nhc3Q8U3RhdGUqPihvcGFxdWVTdGF0ZSk7CiAgICAgCiAgICAgUkVMRUFTRV9B
U1NFUlQoYWxpZ25tZW50IDw9IGppdEFsbG9jYXRpb25HcmFudWxlKTsKQEAgLTU4LDYgKzU4LDEx
IEBAIHN0YXRpYyB1aW50OF90KiBtbUFsbG9jYXRlQ29kZVNlY3Rpb24oCiAgICAgICAgIHN0YXRl
LmdyYXBoLm1fdm0uZXhlY3V0YWJsZUFsbG9jYXRvci5hbGxvY2F0ZSgKICAgICAgICAgICAgIHN0
YXRlLmdyYXBoLm1fdm0sIHNpemUsIHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb21waWxh
dGlvbk11c3RTdWNjZWVkKTsKICAgICAKKyAgICBpZiAoIXN0cmNtcChzZWN0aW9uTmFtZSwgIl9f
Y29tcGFjdF91bndpbmQiKSkgeworICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5kID0gcmVzdWx0
LT5zdGFydCgpOworICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5kU2l6ZSA9IHJlc3VsdC0+c2l6
ZUluQnl0ZXMoKTsKKyAgICB9CisgICAgCiAgICAgc3RhdGUuaml0Q29kZS0+YWRkSGFuZGxlKHJl
c3VsdCk7CiAgICAgc3RhdGUuY29kZVNlY3Rpb25OYW1lcy5hcHBlbmQoc2VjdGlvbk5hbWUpOwog
ICAgIApAQCAtMTQ5LDggKzE1NCw2MyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25T
dGFja01hcHMoCiAgICAgU3RhdGUmIHN0YXRlLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSklUQ29k
ZSogaml0Q29kZSwgR2VuZXJhdGVkRnVuY3Rpb24gZ2VuZXJhdGVkRnVuY3Rpb24sCiAgICAgU3Rh
Y2tNYXBzOjpSZWNvcmRNYXAmIHJlY29yZE1hcCkKIHsKLSAgICBWTSYgdm0gPSBzdGF0ZS5ncmFw
aC5tX3ZtOworICAgIEdyYXBoJiBncmFwaCA9IHN0YXRlLmdyYXBoOworICAgIFZNJiB2bSA9IGdy
YXBoLm1fdm07CiAgICAgU3RhY2tNYXBzIHN0YWNrbWFwcyA9IGppdENvZGUtPnN0YWNrbWFwczsK
KyAgICAKKyAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJlY29yZE1h
cC5maW5kKHN0YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCk7CisgICAgUkVMRUFTRV9BU1NFUlQoaXRl
ciAhPSByZWNvcmRNYXAuZW5kKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXItPnZhbHVlLmxv
Y2F0aW9ucy5zaXplKCkgPT0gMSk7CisgICAgTG9jYXRpb24gY2FwdHVyZWRMb2NhdGlvbiA9Cisg
ICAgICAgIExvY2F0aW9uOjpmb3JTdGFja21hcHMoJmppdENvZGUtPnN0YWNrbWFwcywgaXRlci0+
dmFsdWUubG9jYXRpb25zWzBdKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjYXB0dXJlZExvY2F0aW9u
LmtpbmQoKSA9PSBMb2NhdGlvbjo6UmVnaXN0ZXIpOworICAgIFJFTEVBU0VfQVNTRVJUKGNhcHR1
cmVkTG9jYXRpb24uZ3ByKCkgPT0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIFJF
TEVBU0VfQVNTRVJUKCEoY2FwdHVyZWRMb2NhdGlvbi5hZGRlbmQoKSAlIHNpemVvZihSZWdpc3Rl
cikpKTsKKyAgICBpbnQzMl90IGxvY2Fsc09mZnNldCA9IGNhcHR1cmVkTG9jYXRpb24uYWRkZW5k
KCkgLyBzaXplb2YoUmVnaXN0ZXIpICsgZ3JhcGgubV9uZXh0TWFjaGluZUxvY2FsOworICAgIAor
ICAgIGZvciAodW5zaWduZWQgaSA9IGdyYXBoLm1faW5saW5lVmFyaWFibGVEYXRhLnNpemUoKTsg
aS0tOykgeworICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGdyYXBo
Lm1faW5saW5lVmFyaWFibGVEYXRhW2ldLmlubGluZUNhbGxGcmFtZTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1JlZ2lzdGVyLmlzVmFsaWQoKSkgewor
ICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNSZWdpc3RlciA9IFZpcnR1YWxS
ZWdpc3RlcigKKyAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1JlZ2lz
dGVyLm9mZnNldCgpICsgbG9jYWxzT2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgZm9yICh1bnNpZ25lZCBhcmd1bWVudCA9IGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzLnNp
emUoKTsgYXJndW1lbnQtLSA+IDE7KSB7CisgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFy
Z3VtZW50c1thcmd1bWVudF0gPQorICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+YXJn
dW1lbnRzW2FyZ3VtZW50XS53aXRoTG9jYWxzT2Zmc2V0KGxvY2Fsc09mZnNldCk7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwp
IHsKKyAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3ZlcnkgPQorICAgICAg
ICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3Zlcnkud2l0aExvY2Fsc09mZnNl
dChsb2NhbHNPZmZzZXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlmIChjb2RlQmxv
Y2stPnVzZXNBcmd1bWVudHMoKSkgeworICAgICAgICBjb2RlQmxvY2stPnNldEFyZ3VtZW50c1Jl
Z2lzdGVyKAorICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVyKGNvZGVCbG9jay0+YXJndW1lbnRz
UmVnaXN0ZXIoKS5vZmZzZXQoKSArIGxvY2Fsc09mZnNldCkpOworICAgIH0KKworICAgIHsKKyAg
ICAgICAgQ0NhbGxIZWxwZXJzIGNoZWNrSklUKCZ2bSwgY29kZUJsb2NrKTsKKyAgICAgICAgCisg
ICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgaXQncyBwZXJmZWN0bHkgZmFpciB0byBqdXN0IGJsb3cg
YXdheSBhbGwgc3RhdGUgYW5kIHJlc3RvcmUgdGhlCisgICAgICAgIC8vIEpTIEpJVCB2aWV3IG9m
IHRoZSB1bml2ZXJzZS4KKyAgICAgICAgY2hlY2tKSVQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIp
OworICAgICAgICBjaGVja0pJVC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoVGFn
TWFzayksIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CisgICAgICAgIAorICAgICAgICBjaGVj
a0pJVC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZ2bSksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CisgICAgICAgIGNoZWNrSklULm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGwgPSBjaGVja0pJVC5jYWxsKCk7CisgICAgICAgIGNoZWNrSklULmp1bXBUb0V4Y2Vw
dGlvbkhhbmRsZXIoKTsKKyAgICAgICAgCisgICAgICAgIE93blB0cjxMaW5rQnVmZmVyPiBsaW5r
QnVmZmVyID0gYWRvcHRQdHIobmV3IExpbmtCdWZmZXIoCisgICAgICAgICAgICB2bSwgJmNoZWNr
SklULCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgbGlu
a0J1ZmZlci0+bGluayhjYWxsLCBGdW5jdGlvblB0cihsb29rdXBFeGNlcHRpb25IYW5kbGVyKSk7
CisgICAgICAgIAorICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNMaW5r
QnVmZmVyID0gbGlua0J1ZmZlci5yZWxlYXNlKCk7CisgICAgfQogCiAgICAgRXhpdFRodW5rR2Vu
ZXJhdG9yIGV4aXRUaHVua0dlbmVyYXRvcihzdGF0ZSk7CiAgICAgZXhpdFRodW5rR2VuZXJhdG9y
LmVtaXRUaHVua3MoKTsKQEAgLTE2NiwxNiArMjI2LDMwIEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0
aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKE9wdGlv
bnM6OnZlcmJvc2VDb21waWxhdGlvbigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhhbmRs
aW5nIE9TUiBzdGFja21hcCAjIiwgZXhpdC5tX3N0YWNrbWFwSUQsICIgZm9yICIsIGV4aXQubV9j
b2RlT3JpZ2luLCAiXG4iKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgU3RhY2tNYXBzOjpS
ZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3RhY2ttYXBJ
RCk7CisKKyAgICAgICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3RhY2ttYXBJ
RCk7CiAgICAgICAgICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAgICAg
ICAgICAgICAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaW5mby5tX3RodW5r
QWRkcmVzcyA9IGxpbmtCdWZmZXItPmxvY2F0aW9uT2YoaW5mby5tX3RodW5rTGFiZWwpOwotICAg
ICAgICAgICAgCiAgICAgICAgICAgICBleGl0Lm1fcGF0Y2hhYmxlQ29kZU9mZnNldCA9IGxpbmtC
dWZmZXItPm9mZnNldE9mKGluZm8ubV90aHVua0p1bXApOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGogPSBleGl0Lm1fdmFsdWVzLnNpemUoKTsgai0tOykgeworICAg
ICAgICAgICAgICAgIEV4aXRWYWx1ZSB2YWx1ZSA9IGV4aXQubV92YWx1ZXNbal07CisgICAgICAg
ICAgICAgICAgaWYgKCF2YWx1ZS5pc0luSlNTdGFja1NvbWVob3coKSkKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZS52aXJ0dWFsUmVnaXN0
ZXIoKS5pc0xvY2FsKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgICAgIGV4aXQubV92YWx1ZXNbal0gPSB2YWx1ZS53aXRoVmlydHVhbFJlZ2lzdGVyKAorICAg
ICAgICAgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIodmFsdWUudmlydHVhbFJlZ2lzdGVyKCku
b2Zmc2V0KCkgKyBsb2NhbHNPZmZzZXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKSB7CisgICAgICAg
ICAgICAgICAgRHVtcENvbnRleHQgY29udGV4dDsKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIg
ICAgRXhpdCB2YWx1ZXM6ICIsIGluQ29udGV4dChleGl0Lm1fdmFsdWVzLCAmY29udGV4dCksICJc
biIpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0ZS5m
aW5hbGl6ZXItPmV4aXRUaHVua3NMaW5rQnVmZmVyID0gbGlua0J1ZmZlci5yZWxlYXNlKCk7CkBA
IC0xODQsMTMgKzI1OCwxNSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01h
cHMoCiAgICAgaWYgKCFzdGF0ZS5nZXRCeUlkcy5pc0VtcHR5KCkgfHwgIXN0YXRlLnB1dEJ5SWRz
LmlzRW1wdHkoKSkgewogICAgICAgICBDQ2FsbEhlbHBlcnMgc2xvd1BhdGhKSVQoJnZtLCBjb2Rl
QmxvY2spOwogICAgICAgICAKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBleGNlcHRp
b25UYXJnZXQ7CisgICAgICAgIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0ZS5nZXRC
eUlkcy5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgIEdldEJ5SWREZXNjcmlwdG9yJiBnZXRC
eUlkID0gc3RhdGUuZ2V0QnlJZHNbaV07CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChP
cHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJI
YW5kbGluZyBHZXRCeUlkIHN0YWNrbWFwICMiLCBnZXRCeUlkLnN0YWNrbWFwSUQoKSwgIlxuIik7
CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRv
ciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZ2V0QnlJZC5zdGFja21hcElEKCkpOworICAgICAgICAg
ICAgaXRlciA9IHJlY29yZE1hcC5maW5kKGdldEJ5SWQuc3RhY2ttYXBJRCgpKTsKICAgICAgICAg
ICAgIGlmIChpdGVyID09IHJlY29yZE1hcC5lbmQoKSkgewogICAgICAgICAgICAgICAgIC8vIEl0
IHdhcyBvcHRpbWl6ZWQgb3V0LgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjAyLDE4
ICsyNzgsMTcgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAg
ICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0OjphbGxSZWdp
c3RlcnMoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgR1BSUmVnIHJlc3VsdCA9IHJlY29y
ZC5sb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCk7Ci0gICAgICAgICAgICBHUFJSZWcgY2FsbEZyYW1l
UmVnaXN0ZXIgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwotICAgICAgICAgICAg
R1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzJdLmRpcmVjdEdQUigpOworICAgICAgICAg
ICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgICAg
ICAgICBjb2RlQmxvY2ssIGdldEJ5SWQuY29kZU9yaWdpbigpLCB1c2VkUmVnaXN0ZXJzLCBjYWxs
RnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhiYXNlKSwgSlNWYWx1
ZVJlZ3MocmVzdWx0KSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGNvZGVCbG9jaywgZ2V0QnlJ
ZC5jb2RlT3JpZ2luKCksIHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVSZWdzKGJhc2UpLAorICAgICAg
ICAgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdCksIGZhbHNlKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGJlZ2luID0gc2xvd1BhdGhKSVQubGFiZWwo
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9
IGNhbGxPcGVyYXRpb24oCi0gICAgICAgICAgICAgICAgc3RhdGUsIHVzZWRSZWdpc3RlcnMsIHNs
b3dQYXRoSklULCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIHJlc3VsdCwKLSAgICAgICAgICAg
ICAgICBjYWxsRnJhbWVSZWdpc3RlciwgZ2VuLnN0dWJJbmZvKCksIGJhc2UsIGdldEJ5SWQudWlk
KCkpOworICAgICAgICAgICAgICAgIHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93UGF0aEpJVCwg
Z2V0QnlJZC5jb2RlT3JpZ2luKCksICZleGNlcHRpb25UYXJnZXQsCisgICAgICAgICAgICAgICAg
b3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCByZXN1bHQsIGdlbi5zdHViSW5mbygpLCBiYXNlLCBn
ZXRCeUlkLnVpZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZ2VuLnJlcG9ydFNsb3dQ
YXRoQ2FsbChiZWdpbiwgY2FsbCk7CiAgICAgICAgICAgICAKQEAgLTIyNyw3ICszMDIsNyBAQCBz
dGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAgICBpZiAo
T3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygi
SGFuZGxpbmcgUHV0QnlJZCBzdGFja21hcCAjIiwgcHV0QnlJZC5zdGFja21hcElEKCksICJcbiIp
OwogICAgICAgICAgICAgCi0gICAgICAgICAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0
b3IgaXRlciA9IHJlY29yZE1hcC5maW5kKHB1dEJ5SWQuc3RhY2ttYXBJRCgpKTsKKyAgICAgICAg
ICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChwdXRCeUlkLnN0YWNrbWFwSUQoKSk7CiAgICAgICAg
ICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAgICAgICAgICAgICAvLyBJ
dCB3YXMgb3B0aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTIzOCwy
MCArMzEzLDE5IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAg
ICAgICAgICAgIC8vIEZJWE1FOiBMTFZNIHNob3VsZCB0ZWxsIHVzIHdoaWNoIHJlZ2lzdGVycyBh
cmUgbGl2ZS4KICAgICAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSBSZWdpc3Rl
clNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIEdQUlJlZyBj
YWxsRnJhbWVSZWdpc3RlciA9IHJlY29yZC5sb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCk7Ci0gICAg
ICAgICAgICBHUFJSZWcgYmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCk7Ci0g
ICAgICAgICAgICBHUFJSZWcgdmFsdWUgPSByZWNvcmQubG9jYXRpb25zWzJdLmRpcmVjdEdQUigp
OworICAgICAgICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzBdLmRpcmVjdEdQ
UigpOworICAgICAgICAgICAgR1BSUmVnIHZhbHVlID0gcmVjb3JkLmxvY2F0aW9uc1sxXS5kaXJl
Y3RHUFIoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBn
ZW4oCi0gICAgICAgICAgICAgICAgY29kZUJsb2NrLCBwdXRCeUlkLmNvZGVPcmlnaW4oKSwgdXNl
ZFJlZ2lzdGVycywgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgSlNWYWx1ZVJl
Z3MoYmFzZSksIEpTVmFsdWVSZWdzKHZhbHVlKSwgTWFjcm9Bc3NlbWJsZXI6OnNjcmF0Y2hSZWdp
c3RlciwKLSAgICAgICAgICAgICAgICBmYWxzZSwgcHV0QnlJZC5lY21hTW9kZSgpLCBwdXRCeUlk
LnB1dEtpbmQoKSk7CisgICAgICAgICAgICAgICAgY29kZUJsb2NrLCBwdXRCeUlkLmNvZGVPcmln
aW4oKSwgdXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MoYmFzZSksCisgICAgICAgICAgICAgICAg
SlNWYWx1ZVJlZ3ModmFsdWUpLCBNYWNyb0Fzc2VtYmxlcjo6c2NyYXRjaFJlZ2lzdGVyLCBmYWxz
ZSwgcHV0QnlJZC5lY21hTW9kZSgpLAorICAgICAgICAgICAgICAgIHB1dEJ5SWQucHV0S2luZCgp
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGJlZ2lu
ID0gc2xvd1BhdGhKSVQubGFiZWwoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oCi0gICAgICAgICAgICAgICAgc3Rh
dGUsIHVzZWRSZWdpc3RlcnMsIHNsb3dQYXRoSklULCBnZW4uc2xvd1BhdGhGdW5jdGlvbigpLCBj
YWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKSwgdmFsdWUs
IGJhc2UsIHB1dEJ5SWQudWlkKCkpOworICAgICAgICAgICAgICAgIHN0YXRlLCB1c2VkUmVnaXN0
ZXJzLCBzbG93UGF0aEpJVCwgcHV0QnlJZC5jb2RlT3JpZ2luKCksICZleGNlcHRpb25UYXJnZXQs
CisgICAgICAgICAgICAgICAgZ2VuLnNsb3dQYXRoRnVuY3Rpb24oKSwgZ2VuLnN0dWJJbmZvKCks
IHZhbHVlLCBiYXNlLCBwdXRCeUlkLnVpZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
Z2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChiZWdpbiwgY2FsbCk7CiAgICAgICAgICAgICAKQEAgLTI1
OSw4ICszMzMsMTMgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAog
ICAgICAgICAgICAgcHV0QnlJZC5tX2dlbmVyYXRvciA9IGdlbjsKICAgICAgICAgfQogICAgICAg
ICAKKyAgICAgICAgZXhjZXB0aW9uVGFyZ2V0LmxpbmsoJnNsb3dQYXRoSklUKTsKKyAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgZXhjZXB0aW9uSnVtcCA9IHNsb3dQYXRoSklULmp1bXAoKTsK
KyAgICAgICAgCiAgICAgICAgIHN0YXRlLmZpbmFsaXplci0+c2lkZUNvZGVMaW5rQnVmZmVyID0g
YWRvcHRQdHIoCiAgICAgICAgICAgICBuZXcgTGlua0J1ZmZlcih2bSwgJnNsb3dQYXRoSklULCBj
b2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgc3RhdGUuZmlu
YWxpemVyLT5zaWRlQ29kZUxpbmtCdWZmZXItPmxpbmsoCisgICAgICAgICAgICBleGNlcHRpb25K
dW1wLCBzdGF0ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLT5lbnRyeXBv
aW50KCkpOwogICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhdGUuZ2V0QnlJ
ZHMuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBnZW5lcmF0ZUlDRmFzdFBhdGgoCkBAIC0y
NzQsMjggKzM1Myw4MSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMo
CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVy
KGNvZGVCbG9jayk7Ci0gICAgCi0gICAgZm9yICh1bnNpZ25lZCBleGl0SW5kZXggPSBqaXRDb2Rl
LT5vc3JFeGl0LnNpemUoKTsgZXhpdEluZGV4LS07KSB7Ci0gICAgICAgIE9TUkV4aXRDb21waWxh
dGlvbkluZm8mIGluZm8gPSBzdGF0ZS5maW5hbGl6ZXItPm9zckV4aXRbZXhpdEluZGV4XTsKLSAg
ICAgICAgT1NSRXhpdCYgZXhpdCA9IGppdENvZGUtPm9zckV4aXRbZXhpdEluZGV4XTsKLSAgICAg
ICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChl
eGl0Lm1fc3RhY2ttYXBJRCk7CisgICAgLy8gSGFuZGxpbmcgSlMgY2FsbHMgaXMgd2VpcmQ6IHdl
IG5lZWQgdG8gZW5zdXJlIHRoYXQgd2Ugc29ydCB0aGVtIGJ5IHRoZSBQQyBpbiBMTFZNCisgICAg
Ly8gZ2VuZXJhdGVkIGNvZGUuIFRoYXQgaW1wbGllcyBmaXJzdCBwcnVuaW5nIHRoZSBvbmVzIHRo
YXQgTExWTSBkaWRuJ3QgZ2VuZXJhdGUuCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0
YXRlLmpzQ2FsbHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgSlNDYWxsJiBjYWxsID0gc3RhdGUu
anNDYWxsc1tpXTsKKyAgICAgICAgCisgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVy
YXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoY2FsbC5zdGFja21hcElEKCkpOwogICAgICAgICBp
ZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgY291bGQg
aGFwcGVuIGlmIExMVk0gb3B0aW1pemVzIG91dCBhbiBPU1IgZXhpdC4KKyAgICAgICAgICAgIC8v
IEl0IHdhcyBvcHRpbWl6ZWQgb3V0LiBQcnVuZSBpdC4KKyAgICAgICAgICAgIGNhbGwgPSBzdGF0
ZS5qc0NhbGxzLmxhc3QoKTsKKyAgICAgICAgICAgIHN0YXRlLmpzQ2FsbHMucmVtb3ZlTGFzdCgp
OworICAgICAgICAgICAgaS0tOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAg
ICAgICAgCisgICAgICAgIGNhbGwubV9pbnN0cnVjdGlvbk9mZnNldCA9IGl0ZXItPnZhbHVlLmlu
c3RydWN0aW9uT2Zmc2V0OworICAgIH0KKyAgICAKKyAgICBzdGQ6OnNvcnQoc3RhdGUuanNDYWxs
cy5iZWdpbigpLCBzdGF0ZS5qc0NhbGxzLmVuZCgpKTsKKyAgICAKKyAgICBjb2RlQmxvY2stPnNl
dE51bWJlck9mQ2FsbExpbmtJbmZvcyhzdGF0ZS5qc0NhbGxzLnNpemUoKSk7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gc3RhdGUuanNDYWxscy5zaXplKCk7IGktLTspIHsKKyAgICAgICAgSlNDYWxs
JiBjYWxsID0gc3RhdGUuanNDYWxsc1tpXTsKKworICAgICAgICBDQ2FsbEhlbHBlcnMgZmFzdFBh
dGhKSVQoJnZtLCBjb2RlQmxvY2spOworICAgICAgICBjYWxsLmVtaXQoZmFzdFBhdGhKSVQpOwor
ICAgICAgICAKKyAgICAgICAgY2hhciogc3RhcnRPZklDID0gYml0d2lzZV9jYXN0PGNoYXIqPihn
ZW5lcmF0ZWRGdW5jdGlvbikgKyBjYWxsLm1faW5zdHJ1Y3Rpb25PZmZzZXQ7CisgICAgICAgIAor
ICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sICZmYXN0UGF0aEpJVCwgc3RhcnRPZklD
LCBzaXplT2ZDYWxsKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChsaW5rQnVmZmVyLmlzVmFs
aWQoKSk7CisgICAgICAgIAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QXNzZW1ibGVyVHlwZV9U
OjpmaWxsTm9wcygKKyAgICAgICAgICAgIHN0YXJ0T2ZJQyArIGxpbmtCdWZmZXIuc2l6ZSgpLCBz
aXplT2ZDYWxsKCkgLSBsaW5rQnVmZmVyLnNpemUoKSk7CisgICAgICAgIAorICAgICAgICBDYWxs
TGlua0luZm8mIGluZm8gPSBjb2RlQmxvY2stPmNhbGxMaW5rSW5mbyhpKTsKKyAgICAgICAgY2Fs
bC5saW5rKHZtLCBsaW5rQnVmZmVyLCBpbmZvKTsKKyAgICB9CisgICAgCisgICAgUmVwYXRjaEJ1
ZmZlciByZXBhdGNoQnVmZmVyKGNvZGVCbG9jayk7CisgICAgCisgICAgaXRlciA9IHJlY29yZE1h
cC5maW5kKHN0YXRlLmhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQpOworICAgIC8vIEl0J3Mgc29y
dCBvZiByZW1vdGVseSBwb3NzaWJsZSB0aGF0IHdlIHdvbid0IGhhdmUgYW4gaW4tYmFuZCBleGNl
cHRpb24gaGFuZGxpbmcKKyAgICAvLyBwYXRoLCBmb3Igc29tZSBraW5kcyBvZiBmdW5jdGlvbnMu
CisgICAgaWYgKGl0ZXIgIT0gcmVjb3JkTWFwLmVuZCgpKSB7CiAgICAgICAgIFN0YWNrTWFwczo6
UmVjb3JkJiByZWNvcmQgPSBpdGVyLT52YWx1ZTsKICAgICAgICAgCiAgICAgICAgIENvZGVMb2Nh
dGlvbkxhYmVsIHNvdXJjZSA9IENvZGVMb2NhdGlvbkxhYmVsKAogICAgICAgICAgICAgYml0d2lz
ZV9jYXN0PGNoYXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyByZWNvcmQuaW5zdHJ1Y3Rpb25PZmZz
ZXQpOworCisgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKHNvdXJjZSwgc3Rh
dGUuZmluYWxpemVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+ZW50cnlwb2ludCgpKTsK
KyAgICB9CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBleGl0SW5kZXggPSAwOyBleGl0SW5kZXgg
PCBqaXRDb2RlLT5vc3JFeGl0LnNpemUoKTsgKytleGl0SW5kZXgpIHsKKyAgICAgICAgT1NSRXhp
dENvbXBpbGF0aW9uSW5mbyYgaW5mbyA9IHN0YXRlLmZpbmFsaXplci0+b3NyRXhpdFtleGl0SW5k
ZXhdOworICAgICAgICBPU1JFeGl0JiBleGl0ID0gaml0Q29kZS0+b3NyRXhpdFtleGl0SW5kZXhd
OworICAgICAgICBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZXhpdC5tX3N0YWNrbWFwSUQpOwogICAg
ICAgICAKLSAgICAgICAgaWYgKGluZm8ubV9pc0ludmFsaWRhdGlvblBvaW50KSB7Ci0gICAgICAg
ICAgICBqaXRDb2RlLT5jb21tb24uanVtcFJlcGxhY2VtZW50cy5hcHBlbmQoSnVtcFJlcGxhY2Vt
ZW50KHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVzcykpOwotICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIFZlY3Rvcjxjb25zdCB2b2lkKj4gY29kZUFkZHJlc3NlczsKKyAgICAgICAgCisg
ICAgICAgIGlmIChpdGVyICE9IHJlY29yZE1hcC5lbmQoKSkgeworICAgICAgICAgICAgU3RhY2tN
YXBzOjpSZWNvcmQmIHJlY29yZCA9IGl0ZXItPnZhbHVlOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBDb2RlTG9jYXRpb25MYWJlbCBzb3VyY2UgPSBDb2RlTG9jYXRpb25MYWJlbCgKKyAgICAg
ICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8Y2hhcio+KGdlbmVyYXRlZEZ1bmN0aW9uKSArIHJlY29y
ZC5pbnN0cnVjdGlvbk9mZnNldCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvZGVBZGRy
ZXNzZXMuYXBwZW5kKGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJhdGVkRnVuY3Rpb24pICsgcmVj
b3JkLmluc3RydWN0aW9uT2Zmc2V0ICsgTWFjcm9Bc3NlbWJsZXI6Om1heEp1bXBSZXBsYWNlbWVu
dFNpemUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbmZvLm1faXNJbnZhbGlk
YXRpb25Qb2ludCkKKyAgICAgICAgICAgICAgICBqaXRDb2RlLT5jb21tb24uanVtcFJlcGxhY2Vt
ZW50cy5hcHBlbmQoSnVtcFJlcGxhY2VtZW50KHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVzcykp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFj
ZVdpdGhKdW1wKHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVzcyk7CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKHNvdXJjZSwgaW5mby5t
X3RodW5rQWRkcmVzcyk7CisgICAgICAgIGlmIChncmFwaC5jb21waWxhdGlvbigpKQorICAgICAg
ICAgICAgZ3JhcGguY29tcGlsYXRpb24oKS0+YWRkT1NSRXhpdFNpdGUoY29kZUFkZHJlc3Nlcyk7
CiAgICAgfQogfQogCkBAIC0zNzMsNyArNTA1LDcgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0
ZSkKICAgICAgICAgICAgIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUqIGhhbmRsZSA9IHN0YXRlLmpp
dENvZGUtPmhhbmRsZXMoKVtpXS5nZXQoKTsKICAgICAgICAgICAgIGRhdGFMb2coCiAgICAgICAg
ICAgICAgICAgIkdlbmVyYXRlZCBMTFZNIGNvZGUgZm9yICIsCi0gICAgICAgICAgICAgICAgQ29k
ZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkRGR0pJ
VCksCisgICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9j
b2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCksCiAgICAgICAgICAgICAgICAgIiAjIiwgaSwgIiwg
Iiwgc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwogICAgICAgICAgICAgZGlzYXNz
ZW1ibGUoCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGhhbmRsZS0+c3Rh
cnQoKSksIGhhbmRsZS0+c2l6ZUluQnl0ZXMoKSwKQEAgLTM4NCwxNyArNTE2LDIyIEBAIHZvaWQg
Y29tcGlsZShTdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICBjb25zdCBSZWZDb3VudGVkQXJyYXk8
TFNlY3Rpb25Xb3JkPiYgc2VjdGlvbiA9IHN0YXRlLmppdENvZGUtPmRhdGFTZWN0aW9ucygpW2ld
OwogICAgICAgICAgICAgZGF0YUxvZygKICAgICAgICAgICAgICAgICAiR2VuZXJhdGVkIExMVk0g
ZGF0YSBzZWN0aW9uIGZvciAiLAotICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBl
KHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLAorICAgICAgICAgICAg
ICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2Rl
OjpGVExKSVQpLAogICAgICAgICAgICAgICAgICIgIyIsIGksICIsICIsIHN0YXRlLmRhdGFTZWN0
aW9uTmFtZXNbaV0sICI6XG4iKTsKICAgICAgICAgICAgIGR1bXBEYXRhU2VjdGlvbihzZWN0aW9u
LCAiICAgICIpOwogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHN0YXRlLmppdENvZGUtPnVu
d2luZEluZm8ucGFyc2UoCisgICAgICAgIHN0YXRlLmNvbXBhY3RVbndpbmQsIHN0YXRlLmNvbXBh
Y3RVbndpbmRTaXplLCBzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbik7CisgICAgaWYgKERGRzo6c2hv
dWxkU2hvd0Rpc2Fzc2VtYmx5KCkpCisgICAgICAgIGRhdGFMb2coIlVud2luZCBpbmZvIGZvciAi
LCBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6
RlRMSklUKSwgIjpcbiAgICAiLCBzdGF0ZS5qaXRDb2RlLT51bndpbmRJbmZvLCAiXG4iKTsKKyAg
ICAKICAgICBpZiAoc3RhdGUuc3RhY2ttYXBzU2VjdGlvbi5zaXplKCkpIHsKICAgICAgICAgaWYg
KHNob3VsZFNob3dEaXNhc3NlbWJseSgpKSB7CiAgICAgICAgICAgICBkYXRhTG9nKAogICAgICAg
ICAgICAgICAgICJHZW5lcmF0ZWQgTExWTSBzdGFja21hcHMgc2VjdGlvbiBmb3IgIiwKLSAgICAg
ICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywg
SklUQ29kZTo6REZHSklUKSwgIjpcbiIpOworICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhK
SVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiOlxuIik7
CiAgICAgICAgICAgICBkYXRhTG9nKCIgICAgUmF3IGRhdGE6XG4iKTsKICAgICAgICAgICAgIGR1
bXBEYXRhU2VjdGlvbihzdGF0ZS5zdGFja21hcHNTZWN0aW9uLCAiICAgICIpOwogICAgICAgICB9
CkBAIC00MjEsOCArNTU4LDkgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSkKICAgICAgICAg
ICAgICAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBoYW5kbGUgPSBzdGF0ZS5qaXRDb2RlLT5o
YW5kbGVzKClbaV0uZ2V0KCk7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygKICAgICAgICAgICAg
ICAgICAgICAgIkdlbmVyYXRlZCBMTFZNIGNvZGUgYWZ0ZXIgc3RhY2ttYXAtYmFzZWQgZml4LXVw
IGZvciAiLAotICAgICAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5n
cmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6REZHSklUKSwKLSAgICAgICAgICAgICAgICAgICAg
IiAjIiwgaSwgIiwgIiwgc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOworICAgICAg
ICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9j
aywgSklUQ29kZTo6RlRMSklUKSwKKyAgICAgICAgICAgICAgICAgICAgIiBpbiAiLCBzdGF0ZS5n
cmFwaC5tX3BsYW4ubW9kZSwgIiAjIiwgaSwgIiwgIiwKKyAgICAgICAgICAgICAgICAgICAgc3Rh
dGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwogICAgICAgICAgICAgICAgIGRpc2Fzc2Vt
YmxlKAogICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoaGFuZGxlLT5z
dGFydCgpKSwgaGFuZGxlLT5zaXplSW5CeXRlcygpLAogICAgICAgICAgICAgICAgICAgICAiICAg
ICIsIFdURjo6ZGF0YUZpbGUoKSwgTExWTVN1YnNldCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDYg
KzU5LDkgQEAgdm9pZCBFeGl0VmFsdWU6OmR1bXBJbkNvbnRleHQoUHJpbnRTdHJlYQogICAgIGNh
c2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGU6CiAgICAgICAgIG91dC5wcmludCgiSW5KU1N0
YWNrQXNEb3VibGU6ciIsIHZpcnR1YWxSZWdpc3RlcigpKTsKICAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgRXhpdFZhbHVlUmVjb3Zlcnk6CisgICAgICAgIG91dC5wcmludCgiUmVjb3ZlcnkoIiwg
cmVjb3ZlcnlPcGNvZGUoKSwgIiwgYXJnIiwgbGVmdFJlY292ZXJ5QXJndW1lbnQoKSwgIiwgYXJn
IiwgcmlnaHRSZWNvdmVyeUFyZ3VtZW50KCksICIsICIsIHJlY292ZXJ5Rm9ybWF0KCksICIpIik7
CisgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuaAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFs
dWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBAQAogI2lmIEVOQUJMRShGVExfSklUKQog
CiAjaW5jbHVkZSAiRlRMRXhpdEFyZ3VtZW50LmgiCisjaW5jbHVkZSAiRlRMUmVjb3ZlcnlPcGNv
ZGUuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVy
LmgiCiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CkBAIC01MSw3ICs1Miw4IEBAIGVudW0g
RXhpdFZhbHVlS2luZCB7CiAgICAgRXhpdFZhbHVlSW5KU1N0YWNrLAogICAgIEV4aXRWYWx1ZUlu
SlNTdGFja0FzSW50MzIsCiAgICAgRXhpdFZhbHVlSW5KU1N0YWNrQXNJbnQ1MiwKLSAgICBFeGl0
VmFsdWVJbkpTU3RhY2tBc0RvdWJsZQorICAgIEV4aXRWYWx1ZUluSlNTdGFja0FzRG91YmxlLAor
ICAgIEV4aXRWYWx1ZVJlY292ZXJ5CiB9OwogCiBjbGFzcyBFeGl0VmFsdWUgewpAQCAtMTE4LDYg
KzEyMCwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAor
ICAgIHN0YXRpYyBFeGl0VmFsdWUgcmVjb3ZlcnkoUmVjb3ZlcnlPcGNvZGUgb3Bjb2RlLCB1bnNp
Z25lZCBsZWZ0QXJndW1lbnQsIHVuc2lnbmVkIHJpZ2h0QXJndW1lbnQsIFZhbHVlRm9ybWF0IGZv
cm1hdCkKKyAgICB7CisgICAgICAgIEV4aXRWYWx1ZSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5t
X2tpbmQgPSBFeGl0VmFsdWVSZWNvdmVyeTsKKyAgICAgICAgcmVzdWx0LnUucmVjb3Zlcnkub3Bj
b2RlID0gb3Bjb2RlOworICAgICAgICByZXN1bHQudS5yZWNvdmVyeS5sZWZ0QXJndW1lbnQgPSBs
ZWZ0QXJndW1lbnQ7CisgICAgICAgIHJlc3VsdC51LnJlY292ZXJ5LnJpZ2h0QXJndW1lbnQgPSBy
aWdodEFyZ3VtZW50OworICAgICAgICByZXN1bHQudS5yZWNvdmVyeS5mb3JtYXQgPSBmb3JtYXQ7
CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAogICAgIEV4aXRWYWx1ZUtpbmQg
a2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQogICAgIAogICAgIGJvb2wgaXNEZWFkKCkg
Y29uc3QgeyByZXR1cm4ga2luZCgpID09IEV4aXRWYWx1ZURlYWQ7IH0KQEAgLTEzNSw2ICsxNDgs
NyBAQCBwdWJsaWM6CiAgICAgfQogICAgIGJvb2wgaXNDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJu
IGtpbmQoKSA9PSBFeGl0VmFsdWVDb25zdGFudDsgfQogICAgIGJvb2wgaXNBcmd1bWVudCgpIGNv
bnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBFeGl0VmFsdWVBcmd1bWVudDsgfQorICAgIGJvb2wgaXNS
ZWNvdmVyeSgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBFeGl0VmFsdWVSZWNvdmVyeTsgfQog
ICAgIAogICAgIEV4aXRBcmd1bWVudCBleGl0QXJndW1lbnQoKSBjb25zdAogICAgIHsKQEAgLTE0
Miw2ICsxNTYsMzAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gRXhpdEFyZ3VtZW50KHUuYXJn
dW1lbnQpOwogICAgIH0KICAgICAKKyAgICB1bnNpZ25lZCBsZWZ0UmVjb3ZlcnlBcmd1bWVudCgp
IGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNSZWNvdmVyeSgpKTsKKyAgICAgICAgcmV0
dXJuIHUucmVjb3ZlcnkubGVmdEFyZ3VtZW50OworICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBy
aWdodFJlY292ZXJ5QXJndW1lbnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzUmVj
b3ZlcnkoKSk7CisgICAgICAgIHJldHVybiB1LnJlY292ZXJ5LnJpZ2h0QXJndW1lbnQ7CisgICAg
fQorICAgIAorICAgIFZhbHVlRm9ybWF0IHJlY292ZXJ5Rm9ybWF0KCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
VmFsdWVGb3JtYXQ+KHUucmVjb3ZlcnkuZm9ybWF0KTsKKyAgICB9CisgICAgCisgICAgUmVjb3Zl
cnlPcGNvZGUgcmVjb3ZlcnlPcGNvZGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlz
UmVjb3ZlcnkoKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZWNvdmVyeU9wY29kZT4o
dS5yZWNvdmVyeS5vcGNvZGUpOworICAgIH0KKyAgICAKICAgICBKU1ZhbHVlIGNvbnN0YW50KCkg
Y29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0NvbnN0YW50KCkpOwpAQCAtMTUzLDYgKzE5
MSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChpc0luSlNTdGFja1NvbWVob3coKSk7CiAg
ICAgICAgIHJldHVybiBWaXJ0dWFsUmVnaXN0ZXIodS52aXJ0dWFsUmVnaXN0ZXIpOwogICAgIH0K
KyAgICAKKyAgICBFeGl0VmFsdWUgd2l0aFZpcnR1YWxSZWdpc3RlcihWaXJ0dWFsUmVnaXN0ZXIg
dmlydHVhbFJlZ2lzdGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW5KU1N0YWNrU29tZWhv
dygpKTsKKyAgICAgICAgRXhpdFZhbHVlIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fa2luZCA9
IG1fa2luZDsKKyAgICAgICAgcmVzdWx0LnUudmlydHVhbFJlZ2lzdGVyID0gdmlydHVhbFJlZ2lz
dGVyLm9mZnNldCgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIAogICAgIC8vIElm
IGl0J3MgaW4gdGhlIEpTU3RhY2sgc29tZWhvdywgdGhpcyB3aWxsIHRlbGwgeW91IHdoYXQgZm9y
bWF0IGl0J3MgaW4sIGluIGEgbWFubmVyCiAgICAgLy8gdGhhdCBpcyBjb21wYXRpYmxlIHdpdGgg
ZXhpdEFyZ3VtZW50KCkuZm9ybWF0KCkuIElmIGl0J3MgYSBjb25zdGFudCBvciBpdCdzIGRlYWQs
IGl0CkBAIC0xODEsNiArMjI4LDkgQEAgcHVibGljOgogICAgICAgICAgICAgCiAgICAgICAgIGNh
c2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGU6CiAgICAgICAgICAgICByZXR1cm4gVmFsdWVG
b3JtYXREb3VibGU7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBFeGl0VmFsdWVSZWNvdmVy
eToKKyAgICAgICAgICAgIHJldHVybiByZWNvdmVyeUZvcm1hdCgpOwogICAgICAgICB9CiAgICAg
ICAgIAogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTk2LDYgKzI0
NiwxMiBAQCBwcml2YXRlOgogICAgICAgICBFeGl0QXJndW1lbnRSZXByZXNlbnRhdGlvbiBhcmd1
bWVudDsKICAgICAgICAgRW5jb2RlZEpTVmFsdWUgY29uc3RhbnQ7CiAgICAgICAgIGludCB2aXJ0
dWFsUmVnaXN0ZXI7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50MTZfdCBsZWZ0
QXJndW1lbnQ7CisgICAgICAgICAgICB1aW50MTZfdCByaWdodEFyZ3VtZW50OworICAgICAgICAg
ICAgdWludDE2X3Qgb3Bjb2RlOworICAgICAgICAgICAgdWludDE2X3QgZm9ybWF0OworICAgICAg
ICB9IHJlY292ZXJ5OwogICAgIH0gdTsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDcsNiArNDcsMTEgQEAgc2l6ZV90IHNpemVPZlB1dEJ5SWQoKQogICAgIHJl
dHVybiAzMjsKIH0KIAorc2l6ZV90IHNpemVPZkNhbGwoKQoreworICAgIHJldHVybiA0MzsKK30K
KwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXpl
LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5s
aW5lQ2FjaGVTaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCiBzaXplX3Qgc2l6ZU9mR2V0QnlJZCgpOwogc2l6ZV90
IHNpemVPZlB1dEJ5SWQoKTsKK3NpemVfdCBzaXplT2ZDYWxsKCk7CiAKIH0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpGVEwKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5z
aWNSZXBvc2l0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExJbnRyaW5zaWNSZXBvc2l0b3J5LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MCwxNyArNDAsMjUgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1h
Y3JvKGFkZFdpdGhPdmVyZmxvdzMyLCAibGx2bS5zYWRkLndpdGgub3ZlcmZsb3cuaTMyIiwgZnVu
Y3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBpbnQzMiwgYm9vbGVhbiksIGludDMyLCBp
bnQzMikpIFwKICAgICBtYWNybyhhZGRXaXRoT3ZlcmZsb3c2NCwgImxsdm0uc2FkZC53aXRoLm92
ZXJmbG93Lmk2NCIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50NjQsIGJv
b2xlYW4pLCBpbnQ2NCwgaW50NjQpKSBcCiAgICAgbWFjcm8oZG91YmxlQWJzLCAibGx2bS5mYWJz
LmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkgXAorICAgIG1hY3Jv
KGRvdWJsZVNpbiwgImxsdm0uc2luLmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVUeXBlLCBkb3Vi
bGVUeXBlKSkgXAorICAgIG1hY3JvKGRvdWJsZUNvcywgImxsdm0uY29zLmY2NCIsIGZ1bmN0aW9u
VHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkgXAorICAgIG1hY3JvKGRvdWJsZVNxcnQsICJs
bHZtLnNxcnQuZjY0IiwgZnVuY3Rpb25UeXBlKGRvdWJsZVR5cGUsIGRvdWJsZVR5cGUpKSBcCisg
ICAgbWFjcm8oZnJhbWVBZGRyZXNzLCAibGx2bS5mcmFtZWFkZHJlc3MiLCBmdW5jdGlvblR5cGUo
cG9pbnRlclR5cGUoaW50OCksIGludDMyKSkgXAogICAgIG1hY3JvKG11bFdpdGhPdmVyZmxvdzMy
LCAibGx2bS5zbXVsLndpdGgub3ZlcmZsb3cuaTMyIiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUo
bV9jb250ZXh0LCBpbnQzMiwgYm9vbGVhbiksIGludDMyLCBpbnQzMikpIFwKICAgICBtYWNybyht
dWxXaXRoT3ZlcmZsb3c2NCwgImxsdm0uc211bC53aXRoLm92ZXJmbG93Lmk2NCIsIGZ1bmN0aW9u
VHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50NjQsIGJvb2xlYW4pLCBpbnQ2NCwgaW50NjQp
KSBcCi0gICAgbWFjcm8ocGF0Y2hwb2ludEludDY0LCAibGx2bS5leHBlcmltZW50YWwucGF0Y2hw
b2ludC5pNjQiLCBmdW5jdGlvblR5cGUoaW50NjQsIGludDMyLCBpbnQzMiwgcmVmOCwgaW50MzIs
IFZhcmlhZGljKSkgXAotICAgIG1hY3JvKHBhdGNocG9pbnRWb2lkLCAibGx2bS5leHBlcmltZW50
YWwucGF0Y2hwb2ludC52b2lkIiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQzMiwgaW50MzIs
IHJlZjgsIGludDMyLCBWYXJpYWRpYykpIFwKLSAgICBtYWNybyhzdGFja21hcCwgImxsdm0uZXhw
ZXJpbWVudGFsLnN0YWNrbWFwIiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQzMiwgaW50MzIs
IFZhcmlhZGljKSkgXAorICAgIG1hY3JvKHBhdGNocG9pbnRJbnQ2NCwgImxsdm0uZXhwZXJpbWVu
dGFsLnBhdGNocG9pbnQuaTY0IiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnQ2NCwgaW50MzIsIHJl
ZjgsIGludDMyLCBWYXJpYWRpYykpIFwKKyAgICBtYWNybyhwYXRjaHBvaW50Vm9pZCwgImxsdm0u
ZXhwZXJpbWVudGFsLnBhdGNocG9pbnQudm9pZCIsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50
NjQsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFkaWMpKSBcCisgICAgbWFjcm8oc3RhY2ttYXAs
ICJsbHZtLmV4cGVyaW1lbnRhbC5zdGFja21hcCIsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50
NjQsIGludDMyLCBWYXJpYWRpYykpIFwKICAgICBtYWNybyhzdWJXaXRoT3ZlcmZsb3czMiwgImxs
dm0uc3N1Yi53aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29u
dGV4dCwgaW50MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBcCiAgICAgbWFjcm8oc3ViV2l0
aE92ZXJmbG93NjQsICJsbHZtLnNzdWIud2l0aC5vdmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5cGUo
c3RydWN0VHlwZShtX2NvbnRleHQsIGludDY0LCBib29sZWFuKSwgaW50NjQsIGludDY0KSkgXAog
ICAgIG1hY3JvKHRyYXAsICJsbHZtLnRyYXAiLCBmdW5jdGlvblR5cGUodm9pZFR5cGUpKSBcCiAg
ICAgbWFjcm8oeDg2U1NFMkN2dFRTRDJTSSwgImxsdm0ueDg2LnNzZTIuY3Z0dHNkMnNpIiwgZnVu
Y3Rpb25UeXBlKGludDMyLCB2ZWN0b3JUeXBlKGRvdWJsZVR5cGUsIDIpKSkKIAogI2RlZmluZSBG
T1JfRUFDSF9GVU5DVElPTl9UWVBFKG1hY3JvKSBcCisgICAgbWFjcm8oQ19KSVRPcGVyYXRpb25f
RUMsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAorICAgIG1hY3JvKENf
SklUT3BlcmF0aW9uX0VKLCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludDY0KSkgXAor
ICAgIG1hY3JvKENfSklUT3BlcmF0aW9uX0VKc3NKc3MsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGlu
dFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCisgICAgbWFjcm8oQ19KSVRPcGVyYXRpb25fRUpzc0pz
c0pzcywgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50UHRy
KSkgXAogICAgIG1hY3JvKENfSklUT3BlcmF0aW9uX0VTdCwgZnVuY3Rpb25UeXBlKGludFB0ciwg
aW50UHRyLCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oSV9KSVRPcGVyYXRpb25fRUpzcywgZnVuY3Rp
b25UeXBlKGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oSl9KSVRPcGVyYXRp
b25fRSwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIpKSBcCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSklUQ29kZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDI3
ICs1NCwzNSBAQCB2b2lkIEpJVENvZGU6OmFkZERhdGFTZWN0aW9uKFJlZkNvdW50ZWRBCiAgICAg
bV9kYXRhU2VjdGlvbnMuYXBwZW5kKGRhdGFTZWN0aW9uKTsKIH0KIAotdm9pZCBKSVRDb2RlOjpp
bml0aWFsaXplQ29kZShDb2RlUmVmIGVudHJ5cG9pbnQpCit2b2lkIEpJVENvZGU6OmluaXRpYWxp
emVBcml0eUNoZWNrRW50cnlwb2ludChDb2RlUmVmIGVudHJ5cG9pbnQpCiB7Ci0gICAgbV9lbnRy
eXBvaW50ID0gZW50cnlwb2ludDsKKyAgICBtX2FyaXR5Q2hlY2tFbnRyeXBvaW50ID0gZW50cnlw
b2ludDsKIH0KIAotSklUQ29kZTo6Q29kZVB0ciBKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgpCit2
b2lkIEpJVENvZGU6OmluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbChDb2RlUHRyIGFkZHJlc3MpCiB7
Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLSAgICByZXR1cm4gbV9lbnRyeXBv
aW50LmNvZGUoKTsKKyAgICBtX2FkZHJlc3NGb3JDYWxsID0gYWRkcmVzczsKK30KKworSklUQ29k
ZTo6Q29kZVB0ciBKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbChWTSYsIEV4ZWN1dGFibGVCYXNlKiwg
QXJpdHlDaGVja01vZGUgYXJpdHlDaGVjaywgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKQorewor
ICAgIHN3aXRjaCAoYXJpdHlDaGVjaykgeworICAgIGNhc2UgQXJpdHlDaGVja05vdFJlcXVpcmVk
OgorICAgICAgICByZXR1cm4gbV9hZGRyZXNzRm9yQ2FsbDsKKyAgICBjYXNlIE11c3RDaGVja0Fy
aXR5OgorICAgICAgICByZXR1cm4gbV9hcml0eUNoZWNrRW50cnlwb2ludC5jb2RlKCk7CisgICAg
fQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIENvZGVQdHIo
KTsKIH0KIAogdm9pZCogSklUQ29kZTo6ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qg
b2Zmc2V0KQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1fZW50cnlwb2ludCk7Ci0gICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fZW50cnlwb2ludC5jb2RlKCkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSkgKyBvZmZzZXQ7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1f
YWRkcmVzc0ZvckNhbGwuZXhlY3V0YWJsZUFkZHJlc3MoKSkgKyBvZmZzZXQ7CiB9CiAKIHZvaWQq
IEpJVENvZGU6OmRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90KQogewotICAgIFJFTEVBU0VfQVNT
RVJUKG1fZW50cnlwb2ludCk7Ci0KICAgICAvLyBXZSBjYW4ndCBwYXRjaCBGVEwgY29kZSwgeWV0
LiBFdmVuIGlmIHdlIGRpZCwgaXQncyBub3QgY2xlYXIgdGhhdCB3ZSB3b3VsZCBkbyBzbwogICAg
IC8vIHRocm91Z2ggdGhpcyBBUEkuCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTgzLDggKzkxLDYgQEAgdm9pZCogSklUQ29kZTo6ZGF0YUFkZHJlc3NBdE9mZnNldChzaXpl
XwogCiB1bnNpZ25lZCBKSVRDb2RlOjpvZmZzZXRPZih2b2lkKikKIHsKLSAgICBSRUxFQVNFX0FT
U0VSVChtX2VudHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgY3VycmVudGx5IGRvbid0IGhhdmUgdmlz
aWJpbGl0eSBpbnRvIHRoZSBGVEwgY29kZS4KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiAwOwpAQCAtOTIsOCArOTgsNiBAQCB1bnNpZ25lZCBKSVRDb2RlOjpv
ZmZzZXRPZih2b2lkKikKIAogc2l6ZV90IEpJVENvZGU6OnNpemUoKQogewotICAgIFJFTEVBU0Vf
QVNTRVJUKG1fZW50cnlwb2ludCk7Ci0KICAgICAvLyBXZSBkb24ndCBrbm93IHRoZSBzaXplIG9m
IEZUTCBjb2RlLCB5ZXQuIE1ha2UgYSB3aWxkIGd1ZXNzLiBUaGlzIGlzIG1vc3RseSB1c2VkIGZv
cgogICAgIC8vIEdDIGxvYWQgZXN0aW1hdGVzLgogICAgIHJldHVybiAxMDAwOwpAQCAtMTAxLDgg
KzEwNSw2IEBAIHNpemVfdCBKSVRDb2RlOjpzaXplKCkKIAogYm9vbCBKSVRDb2RlOjpjb250YWlu
cyh2b2lkKikKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQpOwotCiAgICAgLy8g
V2UgaGF2ZSBubyBpZGVhIHdoYXQgYWRkcmVzc2VzIHRoZSBGVEwgY29kZSBjb250YWlucywgeWV0
LgogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiREZHQ29tbW9uRGF0YS5oIgogI2luY2x1
ZGUgIkZUTE9TUkV4aXQuaCIKICNpbmNsdWRlICJGVExTdGFja01hcHMuaCIKKyNpbmNsdWRlICJG
VExVbndpbmRJbmZvLmgiCiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkxMVk1BUEku
aCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZEFycmF5Lmg+CkBAIC00NiwxNyArNDcsMTggQEAg
cHVibGljOgogICAgIEpJVENvZGUoKTsKICAgICB+SklUQ29kZSgpOwogICAgIAotICAgIENvZGVQ
dHIgYWRkcmVzc0ZvckNhbGwoKTsKLSAgICB2b2lkKiBleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0
KHNpemVfdCBvZmZzZXQpOwotICAgIHZvaWQqIGRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9m
ZnNldCk7Ci0gICAgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCogcG9pbnRlckludG9Db2RlKTsKLSAg
ICBzaXplX3Qgc2l6ZSgpOwotICAgIGJvb2wgY29udGFpbnModm9pZCopOworICAgIENvZGVQdHIg
YWRkcmVzc0ZvckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlLCBSZWdp
c3RlclByZXNlcnZhdGlvbk1vZGUpIG92ZXJyaWRlOworICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRy
ZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CisgICAgdm9pZCogZGF0YUFkZHJl
c3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSBvdmVycmlkZTsKKyAgICB1bnNpZ25lZCBvZmZzZXRP
Zih2b2lkKiBwb2ludGVySW50b0NvZGUpIG92ZXJyaWRlOworICAgIHNpemVfdCBzaXplKCkgb3Zl
cnJpZGU7CisgICAgYm9vbCBjb250YWlucyh2b2lkKikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdm9p
ZCBpbml0aWFsaXplRXhpdFRodW5rcyhDb2RlUmVmKTsKICAgICB2b2lkIGFkZEhhbmRsZShQYXNz
UmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+KTsKICAgICB2b2lkIGFkZERhdGFTZWN0aW9u
KFJlZkNvdW50ZWRBcnJheTxMU2VjdGlvbldvcmQ+KTsKLSAgICB2b2lkIGluaXRpYWxpemVDb2Rl
KENvZGVSZWYgZW50cnlwb2ludCk7CisgICAgdm9pZCBpbml0aWFsaXplQXJpdHlDaGVja0VudHJ5
cG9pbnQoQ29kZVJlZik7CisgICAgdm9pZCBpbml0aWFsaXplQWRkcmVzc0ZvckNhbGwoQ29kZVB0
cik7CiAgICAgCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxl
Pj4mIGhhbmRsZXMoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZXM7IH0KICAgICBjb25zdCBWZWN0
b3I8UmVmQ291bnRlZEFycmF5PExTZWN0aW9uV29yZD4+JiBkYXRhU2VjdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtX2RhdGFTZWN0aW9uczsgfQpAQCAtNjksMTEgKzcxLDEzIEBAIHB1YmxpYzoKICAg
ICBERkc6OkNvbW1vbkRhdGEgY29tbW9uOwogICAgIFNlZ21lbnRlZFZlY3RvcjxPU1JFeGl0LCA4
PiBvc3JFeGl0OwogICAgIFN0YWNrTWFwcyBzdGFja21hcHM7CisgICAgVW53aW5kSW5mbyB1bndp
bmRJbmZvOwogICAgIAogcHJpdmF0ZToKICAgICBWZWN0b3I8UmVmQ291bnRlZEFycmF5PExTZWN0
aW9uV29yZD4+IG1fZGF0YVNlY3Rpb25zOwogICAgIFZlY3RvcjxSZWZQdHI8RXhlY3V0YWJsZU1l
bW9yeUhhbmRsZT4+IG1faGFuZGxlczsKLSAgICBDb2RlUmVmIG1fZW50cnlwb2ludDsKKyAgICBD
b2RlUHRyIG1fYWRkcmVzc0ZvckNhbGw7CisgICAgQ29kZVJlZiBtX2FyaXR5Q2hlY2tFbnRyeXBv
aW50OwogICAgIENvZGVSZWYgbV9leGl0VGh1bmtzOwogfTsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmNwcAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC00NSw2ICs0NSwyMiBAQCBKSVRGaW5hbGl6ZXI6On5KSVRGaW5hbGl6ZXIoKQogewog
fQogCitzaXplX3QgSklURmluYWxpemVyOjpjb2RlU2l6ZSgpCit7CisgICAgc2l6ZV90IHJlc3Vs
dCA9IDA7CisgICAgCisgICAgcmVzdWx0ICs9IGV4aXRUaHVua3NMaW5rQnVmZmVyLT5zaXplKCk7
CisgICAgcmVzdWx0ICs9IGVudHJ5cG9pbnRMaW5rQnVmZmVyLT5zaXplKCk7CisgICAgaWYgKHNp
ZGVDb2RlTGlua0J1ZmZlcikKKyAgICAgICAgcmVzdWx0ICs9IHNpZGVDb2RlTGlua0J1ZmZlci0+
c2l6ZSgpOworICAgIHJlc3VsdCArPSBoYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+c2l6ZSgp
OworICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IGppdENvZGUtPmhhbmRsZXMoKS5zaXplKCk7
IGktLTspCisgICAgICAgIHJlc3VsdCArPSBqaXRDb2RlLT5oYW5kbGVzKClbaV0tPnNpemVJbkJ5
dGVzKCk7CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogYm9vbCBKSVRGaW5hbGl6ZXI6
OmZpbmFsaXplKCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNzMs
OSArODksNyBAQCBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5jdGlvbigpCiAgICAgICAg
ICAgICBleGl0VGh1bmtzTGlua0J1ZmZlci0+bGluaygKICAgICAgICAgICAgICAgICBpbmZvLm1f
dGh1bmtKdW1wLAogICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsKAotICAgICAgICAg
ICAgICAgICAgICBtX3BsYW4udm0uZnRsVGh1bmtzLT5nZXRPU1JFeGl0R2VuZXJhdGlvblRodW5r
KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wbGFuLnZtLCBMb2NhdGlvbjo6Zm9yU3RhY2tt
YXBzKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZqaXRDb2RlLT5zdGFja21hcHMsIGl0
ZXItPnZhbHVlLmxvY2F0aW9uc1swXSkpLmNvZGUoKSkpOworICAgICAgICAgICAgICAgICAgICBt
X3BsYW4udm0uZ2V0Q1RJU3R1Yihvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKS5jb2Rl
KCkpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaml0Q29kZS0+aW5pdGlhbGl6ZUV4
aXRUaHVua3MoCkBAIC0xMDIsMTUgKzExNiwyNiBAQCBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxp
emVGdW5jdGlvbigpCiAgICAgICAgICAgICAuZXhlY3V0YWJsZU1lbW9yeSgpKTsKICAgICB9CiAg
ICAgCisgICAgaWYgKGhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyKSB7CisgICAgICAgIGppdENv
ZGUtPmFkZEhhbmRsZShGSU5BTElaRV9ERkdfQ09ERSgKKyAgICAgICAgICAgICpoYW5kbGVFeGNl
cHRpb25zTGlua0J1ZmZlciwKKyAgICAgICAgICAgICgiRlRMIGV4Y2VwdGlvbiBoYW5kbGVyIGZv
ciAlcyIsCisgICAgICAgICAgICAgICAgdG9DU3RyaW5nKENvZGVCbG9ja1dpdGhKSVRUeXBlKG1f
cGxhbi5jb2RlQmxvY2suZ2V0KCksIEpJVENvZGU6OkZUTEpJVCkpLmRhdGEoKSkpCisgICAgICAg
ICAgICAuZXhlY3V0YWJsZU1lbW9yeSgpKTsKKyAgICB9CisgICAgCiAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIHdpdGhBcml0eUNoZWNrOwogICAgIGlmIChhcml0eUNoZWNrLmlzU2V0KCkpCiAg
ICAgICAgIHdpdGhBcml0eUNoZWNrID0gZW50cnlwb2ludExpbmtCdWZmZXItPmxvY2F0aW9uT2Yo
YXJpdHlDaGVjayk7Ci0gICAgaml0Q29kZS0+aW5pdGlhbGl6ZUNvZGUoCisgICAgaml0Q29kZS0+
aW5pdGlhbGl6ZUFyaXR5Q2hlY2tFbnRyeXBvaW50KAogICAgICAgICBGSU5BTElaRV9ERkdfQ09E
RSgKICAgICAgICAgICAgICplbnRyeXBvaW50TGlua0J1ZmZlciwKICAgICAgICAgICAgICgiRlRM
IGVudHJ5cG9pbnQgdGh1bmsgZm9yICVzIHdpdGggTExWTSBnZW5lcmF0ZWQgY29kZSBhdCAlcCIs
IHRvQ1N0cmluZyhDb2RlQmxvY2tXaXRoSklUVHlwZShtX3BsYW4uY29kZUJsb2NrLmdldCgpLCBK
SVRDb2RlOjpGVExKSVQpKS5kYXRhKCksIGZ1bmN0aW9uKSkpOwogICAgIAotICAgIG1fcGxhbi5j
b2RlQmxvY2stPnNldEpJVENvZGUoaml0Q29kZSwgd2l0aEFyaXR5Q2hlY2spOworICAgIG1fcGxh
bi5jb2RlQmxvY2stPnNldEpJVENvZGUoaml0Q29kZSk7CisgICAgCisgICAgaWYgKG1fcGxhbi5j
b21waWxhdGlvbikKKyAgICAgICAgbV9wbGFuLnZtLm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+YWRk
Q29tcGlsYXRpb24obV9wbGFuLmNvbXBpbGF0aW9uKTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5h
bGl6ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsMTIgKzQ2LDE0IEBAIHB1YmxpYzoKICAgICBK
SVRGaW5hbGl6ZXIoREZHOjpQbGFuJik7CiAgICAgdmlydHVhbCB+SklURmluYWxpemVyKCk7CiAg
ICAgCi0gICAgYm9vbCBmaW5hbGl6ZSgpOwotICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigpOwor
ICAgIHNpemVfdCBjb2RlU2l6ZSgpIG92ZXJyaWRlOworICAgIGJvb2wgZmluYWxpemUoKSBvdmVy
cmlkZTsKKyAgICBib29sIGZpbmFsaXplRnVuY3Rpb24oKSBvdmVycmlkZTsKIAogICAgIE93blB0
cjxMaW5rQnVmZmVyPiBleGl0VGh1bmtzTGlua0J1ZmZlcjsKICAgICBPd25QdHI8TGlua0J1ZmZl
cj4gZW50cnlwb2ludExpbmtCdWZmZXI7CiAgICAgT3duUHRyPExpbmtCdWZmZXI+IHNpZGVDb2Rl
TGlua0J1ZmZlcjsKKyAgICBPd25QdHI8TGlua0J1ZmZlcj4gaGFuZGxlRXhjZXB0aW9uc0xpbmtC
dWZmZXI7CiAgICAgVmVjdG9yPFNsb3dQYXRoQ2FsbD4gc2xvd1BhdGhDYWxsczsgLy8gQ2FsbHMg
aW5zaWRlIHRoZSBzaWRlIGNvZGUuCiAgICAgVmVjdG9yPE9TUkV4aXRDb21waWxhdGlvbkluZm8+
IG9zckV4aXQ7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGFyaXR5Q2hlY2s7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuY3BwCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZUTEpTQ2FsbC5oIgorCisjaWYgRU5B
QkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJERkdOb2RlLmgiCisKK25hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgRlRMIHsKKworSlNDYWxsOjpKU0NhbGwodW5zaWduZWQgc3RhY2ttYXBJRCwgREZH
OjpOb2RlKiBub2RlKQorICAgIDogbV9zdGFja21hcElEKHN0YWNrbWFwSUQpCisgICAgLCBtX25v
ZGUobm9kZSkKKyAgICAsIG1faW5zdHJ1Y3Rpb25PZmZzZXQoMCkKK3sKK30KKwordm9pZCBKU0Nh
bGw6OmVtaXQoQ0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNs
b3dQYXRoID0gaml0LmJyYW5jaFB0cldpdGhQYXRjaCgKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpO
b3RFcXVhbCwgR1BSSW5mbzo6cmVnVDAsIG1fdGFyZ2V0VG9DaGVjaywKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKDApKTsKKyAgICAKKyAgICBqaXQubG9hZFB0cigKKyAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBKU0Z1bmN0aW9uOjpvZmZz
ZXRPZlNjb3BlQ2hhaW4oKSksCisgICAgICAgIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3Rv
cmU2NCgKKyAgICAgICAgR1BSSW5mbzo6cmVnVDEsCisgICAgICAgIENDYWxsSGVscGVyczo6QWRk
cmVzcygKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsCisg
ICAgICAgICAgICBzaXplb2YoUmVnaXN0ZXIpICogKEpTU3RhY2s6OlNjb3BlQ2hhaW4gLSBKU1N0
YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkpKTsKKyAgICAKKyAgICBtX2Zhc3RDYWxsID0gaml0
Lm5lYXJDYWxsKCk7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwor
ICAgIAorICAgIHNsb3dQYXRoLmxpbmsoJmppdCk7CisgICAgbV9zbG93Q2FsbCA9IGppdC5uZWFy
Q2FsbCgpOworICAgIAorICAgIGRvbmUubGluaygmaml0KTsKK30KKwordm9pZCBKU0NhbGw6Omxp
bmsoVk0mIHZtLCBMaW5rQnVmZmVyJiBsaW5rQnVmZmVyLCBDYWxsTGlua0luZm8mIGNhbGxJbmZv
KQoreworICAgIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxpbmtUaHVua0dlbmVyYXRvckZv
cigKKyAgICAgICAgbV9ub2RlLT5vcCgpID09IERGRzo6Q29uc3RydWN0ID8gQ29kZUZvckNvbnN0
cnVjdCA6IENvZGVGb3JDYWxsLAorICAgICAgICBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworICAg
IAorICAgIGxpbmtCdWZmZXIubGluaygKKyAgICAgICAgbV9zbG93Q2FsbCwgRnVuY3Rpb25QdHIo
dm0uZ2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7Cisg
ICAgCisgICAgY2FsbEluZm8uaXNGVEwgPSB0cnVlOworICAgIGNhbGxJbmZvLmNhbGxUeXBlID0g
bV9ub2RlLT5vcCgpID09IERGRzo6Q29uc3RydWN0ID8gQ2FsbExpbmtJbmZvOjpDb25zdHJ1Y3Qg
OiBDYWxsTGlua0luZm86OkNhbGw7CisgICAgY2FsbEluZm8uY29kZU9yaWdpbiA9IG1fbm9kZS0+
Y29kZU9yaWdpbjsKKyAgICBjYWxsSW5mby5jYWxsUmV0dXJuTG9jYXRpb24gPSBsaW5rQnVmZmVy
LmxvY2F0aW9uT2ZOZWFyQ2FsbChtX3Nsb3dDYWxsKTsKKyAgICBjYWxsSW5mby5ob3RQYXRoQmVn
aW4gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2YobV90YXJnZXRUb0NoZWNrKTsKKyAgICBjYWxsSW5m
by5ob3RQYXRoT3RoZXIgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbChtX2Zhc3RDYWxs
KTsKKyAgICBjYWxsSW5mby5jYWxsZWVHUFIgPSBHUFJJbmZvOjpyZWdUMDsKK30KKworfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIEZUTEpTQ2FsbF9oCisjZGVmaW5lIEZUTEpTQ2FsbF9oCisKKyNpZiBFTkFCTEUoRlRM
X0pJVCkKKworI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkNhbGxMaW5rSW5m
by5oIgorI2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisK
K25hbWVzcGFjZSBKU0MgeworCituYW1lc3BhY2UgREZHIHsKK3N0cnVjdCBOb2RlOworfQorCitu
YW1lc3BhY2UgRlRMIHsKKworY2xhc3MgSlNDYWxsIHsKK3B1YmxpYzoKKyAgICBKU0NhbGwodW5z
aWduZWQgc3RhY2ttYXBJRCwgREZHOjpOb2RlKik7CisgICAgCisgICAgdm9pZCBlbWl0KENDYWxs
SGVscGVycyYpOworICAgIHZvaWQgbGluayhWTSYsIExpbmtCdWZmZXImLCBDYWxsTGlua0luZm8m
KTsKKyAgICAKKyAgICB1bnNpZ25lZCBzdGFja21hcElEKCkgY29uc3QgeyByZXR1cm4gbV9zdGFj
a21hcElEOyB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgSlNDYWxsJiBvdGhlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2luc3RydWN0aW9uT2Zmc2V0IDwgb3RoZXIu
bV9pbnN0cnVjdGlvbk9mZnNldDsKKyAgICB9CisgICAgCitwcml2YXRlOgorICAgIHVuc2lnbmVk
IG1fc3RhY2ttYXBJRDsKKyAgICBERkc6Ok5vZGUqIG1fbm9kZTsKKyAgICBDQ2FsbEhlbHBlcnM6
OkRhdGFMYWJlbFB0ciBtX3RhcmdldFRvQ2hlY2s7CisgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIG1f
ZmFzdENhbGw7CisgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIG1fc2xvd0NhbGw7CisKK3B1YmxpYzoK
KyAgICB1aW50MzJfdCBtX2luc3RydWN0aW9uT2Zmc2V0OworfTsKKworfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExK
U0NhbGxfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCisjaW5j
bHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBl
cnMuaCIKICNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2Nr
V2l0aEpJVFR5cGUuaCIKQEAgLTM3LDEyMSArMzgsMTUwIEBACiAjaW5jbHVkZSAiSklUU3R1YnMu
aCIKICNpbmNsdWRlICJMTFZNQVBJLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1
ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCiB1c2luZyBuYW1lc3BhY2UgREZH
OwogCi1zdGF0aWMgdm9pZCBjb21waWxlRW50cnkoQ0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAg
aml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpyZWdUMik7Ci0gICAg
aml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86OnJlZ1QyKTsKLSAg
ICBqaXQuZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKGppdC5jb2RlQmxvY2soKSwg
SlNTdGFjazo6Q29kZUJsb2NrKTsKLX0KLQogdm9pZCBsaW5rKFN0YXRlJiBzdGF0ZSkKIHsKLSAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrOworICAgIEdy
YXBoJiBncmFwaCA9IHN0YXRlLmdyYXBoOworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZ3Jh
cGgubV9jb2RlQmxvY2s7CisgICAgVk0mIHZtID0gZ3JhcGgubV92bTsKICAgICAKICAgICAvLyBM
TFZNIHdpbGwgY3JlYXRlIGl0cyBvd24ganVtcCB0YWJsZXMgYXMgbmVlZGVkLgogICAgIGNvZGVC
bG9jay0+Y2xlYXJTd2l0Y2hKdW1wVGFibGVzKCk7CiAgICAgCi0gICAgc3RhdGUuaml0Q29kZS0+
Y29tbW9uLmZyYW1lUmVnaXN0ZXJDb3VudCA9IHN0YXRlLmdyYXBoLmZyYW1lUmVnaXN0ZXJDb3Vu
dCgpOwotICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JF
eGl0ID0gc3RhdGUuZ3JhcGgucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpOworICAgIC8v
IEZJWE1FOiBOZWVkIHRvIGtub3cgdGhlIHJlYWwgZnJhbWUgcmVnaXN0ZXIgY291bnQuCisgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTcyNworICAgIHN0
YXRlLmppdENvZGUtPmNvbW1vbi5mcmFtZVJlZ2lzdGVyQ291bnQgPSAxMDAwOworICAgIAorICAg
IHN0YXRlLmppdENvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ID0gZ3Jh
cGgucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpOwogICAgIAotICAgIGlmICghc3RhdGUu
Z3JhcGgubV9pbmxpbmVDYWxsRnJhbWVzLT5pc0VtcHR5KCkpCi0gICAgICAgIHN0YXRlLmppdENv
ZGUtPmNvbW1vbi5pbmxpbmVDYWxsRnJhbWVzID0gc3RkOjptb3ZlKHN0YXRlLmdyYXBoLm1faW5s
aW5lQ2FsbEZyYW1lcyk7CisgICAgaWYgKCFncmFwaC5tX2lubGluZUNhbGxGcmFtZXMtPmlzRW1w
dHkoKSkKKyAgICAgICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmlubGluZUNhbGxGcmFtZXMgPSBz
dGQ6Om1vdmUoZ3JhcGgubV9pbmxpbmVDYWxsRnJhbWVzKTsKICAgICAKICAgICAvLyBDcmVhdGUg
dGhlIGVudHJ5cG9pbnQuIE5vdGUgdGhhdCB3ZSB1c2UgdGhpcyBlbnRyeXBvaW50IHRvdGFsbHkg
ZGlmZmVyZW50bHkKICAgICAvLyBkZXBlbmRpbmcgb24gd2hldGhlciB3ZSdyZSBkb2luZyBPU1Ig
ZW50cnkgb3Igbm90LgotICAgIC8vIEZJWE1FOiBFeGNlcHQgZm9yIE9TUiBlbnRyeSwgdGhpcyBp
cyBhIHRvdGFsIGtsdWRnZSAtIExMVk0gc2hvdWxkIGp1c3QgdXNlIG91cgotICAgIC8vIGNhbGxp
bmcgY29udmVudGlvbi4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEzNjIxCi0gICAgQ0NhbGxIZWxwZXJzIGppdCgmc3RhdGUuZ3JhcGgubV92bSwgY29k
ZUJsb2NrKTsKKyAgICBDQ2FsbEhlbHBlcnMgaml0KCZ2bSwgY29kZUJsb2NrKTsKICAgICAKICAg
ICBPd25QdHI8TGlua0J1ZmZlcj4gbGlua0J1ZmZlcjsKICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVs
IGFyaXR5Q2hlY2s7Ci0gICAgc3dpdGNoIChzdGF0ZS5ncmFwaC5tX3BsYW4ubW9kZSkgewotICAg
IGNhc2UgRlRMTW9kZTogewotICAgICAgICBjb21waWxlRW50cnkoaml0KTsKKworICAgIENDYWxs
SGVscGVyczo6QWRkcmVzcyBmcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcygKKyAgICAgICAg
Q0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgLXN0YXRpY19jYXN0PGludDMyX3Q+
KHNpemVvZih2b2lkKikpKTsKICAgICAKLSAgICAgICAgLy8gVGhpcyBwYXJ0IGlzIG9ubHkgbmVj
ZXNzYXJ5IGZvciBmdW5jdGlvbnMuIFdlIGN1cnJlbnRseSBvbmx5IGNvbXBpbGUgZnVuY3Rpb25z
LgotICAgICAgICAKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBmcm9tQXJpdHlDaGVjayA9
IGppdC5sYWJlbCgpOwotICAgICAgICAKLSAgICAgICAgLy8gUGxhbnQgYSBjaGVjayB0aGF0IHN1
ZmZpY2llbnQgc3BhY2UgaXMgYXZhaWxhYmxlIGluIHRoZSBKU1N0YWNrLgotICAgICAgICAvLyBG
SVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjkxCi0gICAg
ICAgIGppdC5hZGRQdHIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMih2
aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChzdGF0ZS5qaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdp
c3RlckNvdW50Rm9yRXhpdCkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwKLSAgICAgICAg
ICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAg
IENDYWxsSGVscGVyczo6SnVtcCBzdGFja0NoZWNrID0gaml0LmJyYW5jaFB0cigKLSAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6QWJvdmUsCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFic29s
dXRlQWRkcmVzcyhzdGF0ZS5ncmFwaC5tX3ZtLmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwKLSAg
ICAgICAgICAgIEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBm
cm9tU3RhY2tDaGVjayA9IGppdC5sYWJlbCgpOwotICAgICAgICAKLSAgICAgICAgaml0LnNldHVw
QXJndW1lbnRzRXhlY1N0YXRlKCk7Ci0gICAgICAgIGppdC5tb3ZlKAotICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0YXRlLmdl
bmVyYXRlZEZ1bmN0aW9uKSksCi0gICAgICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAg
ICAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgICAgIGppdC5lbWl0R2V0
UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAg
aml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIpOwotICAgICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVS
ZXR1cm4oR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICBqaXQucmV0KCk7Ci0gICAgICAgIAotICAg
ICAgICBzdGFja0NoZWNrLmxpbmsoJmppdCk7Ci0gICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihjb2RlQmxvY2spLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAg
ICAgICBqaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICAgICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihDYWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0J5dGVjb2RlT2Zmc2V0
KDApKSwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6dGFnRm9yKHN0YXRpY19jYXN0PFZpcnR1
YWxSZWdpc3Rlcj4oSlNTdGFjazo6QXJndW1lbnRDb3VudCkpKTsKLSAgICAgICAgaml0LnN0b3Jl
UHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAmc3RhdGUuZ3JhcGgubV92bS50b3BDYWxs
RnJhbWUpOwotICAgICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbFN0YWNrQ2hlY2sgPSBqaXQu
Y2FsbCgpOwotI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICAgICAgLy8gRklYTUU6IG5lZWQgdG8g
bWFrZSB0aGlzIGNhbGwgcmVnaXN0ZXIgd2l0aCBleGNlcHRpb24gaGFuZGxpbmcgc29tZWhvdy4g
VGhpcyBpcwotICAgICAgICAvLyBwYXJ0IG9mIGEgYmlnZ2VyIHByb2JsZW06IEZUTCBzaG91bGQg
YmUgYWJsZSB0byBoYW5kbGUgZXhjZXB0aW9ucy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgotICAgICAgICAvLyBVbnRpbCB0aGVuLCB1
c2UgYSBKSVQgQVNTRVJULgotICAgICAgICBqaXQubG9hZDY0KHN0YXRlLmdyYXBoLm1fdm0uYWRk
cmVzc09mRXhjZXB0aW9uKCksIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgaml0LmppdEFzc2Vy
dElzTnVsbChHUFJJbmZvOjpyZWdUMCk7Ci0jZW5kaWYKLSAgICAgICAgaml0Lmp1bXAoZnJvbVN0
YWNrQ2hlY2spOworICAgIGlmIChQcm9maWxlcjo6Q29tcGlsYXRpb24qIGNvbXBpbGF0aW9uID0g
Z3JhcGguY29tcGlsYXRpb24oKSkgeworICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRp
b24oCisgICAgICAgICAgICBQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwKKyAgICAgICAgICAgIHRv
Q1N0cmluZygiR2VuZXJhdGVkIEZUTCBKSVQgY29kZSBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJVFR5
cGUoY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiLCBpbnN0cnVjdGlvbiBjb3VudCA9ICIs
IGdyYXBoLm1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbkNvdW50KCksICI6XG4iKSk7CisgICAgICAg
IAorICAgICAgICBncmFwaC5tX2RvbWluYXRvcnMuY29tcHV0ZUlmTmVjZXNzYXJ5KGdyYXBoKTsK
KyAgICAgICAgZ3JhcGgubV9uYXR1cmFsTG9vcHMuY29tcHV0ZUlmTmVjZXNzYXJ5KGdyYXBoKTsK
KyAgICAgICAgCisgICAgICAgIGNvbnN0IGNoYXIqIHByZWZpeCA9ICIgICAgIjsKKyAgICAgICAg
CisgICAgICAgIER1bXBDb250ZXh0IGR1bXBDb250ZXh0OworICAgICAgICBTdHJpbmdQcmludFN0
cmVhbSBvdXQ7CisgICAgICAgIE5vZGUqIGxhc3ROb2RlID0gMDsKKyAgICAgICAgZm9yIChzaXpl
X3QgYmxvY2tJbmRleCA9IDA7IGJsb2NrSW5kZXggPCBncmFwaC5udW1CbG9ja3MoKTsgKytibG9j
a0luZGV4KSB7CisgICAgICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IGdyYXBoLmJsb2NrKGJs
b2NrSW5kZXgpOworICAgICAgICAgICAgaWYgKCFibG9jaykKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZ3JhcGguZHVtcEJsb2NrSGVhZGVyKG91
dCwgcHJlZml4LCBibG9jaywgR3JhcGg6OkR1bXBMaXZlUGhpc09ubHksICZkdW1wQ29udGV4dCk7
CisgICAgICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oUHJvZmlsZXI6Ok9yaWdp
blN0YWNrKCksIG91dC50b0NTdHJpbmcoKSk7CisgICAgICAgICAgICBvdXQucmVzZXQoKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChzaXplX3Qgbm9kZUluZGV4ID0gMDsgbm9kZUlu
ZGV4IDwgYmxvY2stPnNpemUoKTsgKytub2RlSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBOb2Rl
KiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKCFub2Rl
LT53aWxsSGF2ZUNvZGVHZW5Pck9TUigpICYmICFPcHRpb25zOjpzaG93QWxsREZHTm9kZXMoKSkK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgUHJvZmlsZXI6Ok9yaWdpblN0YWNrIHN0YWNrOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIGlmIChub2RlLT5jb2RlT3JpZ2luLmlzU2V0KCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgc3RhY2sgPSBQcm9maWxlcjo6T3JpZ2luU3RhY2soCisgICAgICAgICAgICAg
ICAgICAgICAgICAqdm0ubV9wZXJCeXRlY29kZVByb2ZpbGVyLCBjb2RlQmxvY2ssIG5vZGUtPmNv
ZGVPcmlnaW4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBpZiAoZ3JhcGguZHVtcENvZGVPcmlnaW4ob3V0LCBwcmVmaXgsIGxhc3ROb2RlLCBu
b2RlLCAmZHVtcENvbnRleHQpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGF0aW9uLT5h
ZGREZXNjcmlwdGlvbihzdGFjaywgb3V0LnRvQ1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAg
ICAgb3V0LnJlc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIGdyYXBoLmR1bXAob3V0LCBwcmVmaXgsIG5vZGUsICZkdW1wQ29udGV4dCk7
CisgICAgICAgICAgICAgICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKHN0YWNrLCBvdXQu
dG9DU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIG91dC5yZXNldCgpOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIGlmIChub2RlLT5jb2RlT3JpZ2luLmlzU2V0KCkpCisgICAg
ICAgICAgICAgICAgICAgIGxhc3ROb2RlID0gbm9kZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgZHVtcENvbnRleHQuZHVtcChvdXQsIHByZWZpeCk7CisgICAg
ICAgIGNvbXBpbGF0aW9uLT5hZGREZXNjcmlwdGlvbihQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwg
b3V0LnRvQ1N0cmluZygpKTsKKyAgICAgICAgb3V0LnJlc2V0KCk7CisgICAgICAgIAorICAgICAg
ICBvdXQucHJpbnQoIiAgICBEaXNhc3NlbWJseTpcbiIpOworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgc3RhdGUuaml0Q29kZS0+aGFuZGxlcygpLnNpemUoKTsgKytpKSB7CisgICAg
ICAgICAgICBpZiAoc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSAhPSAiX190ZXh0IikKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEV4ZWN1
dGFibGVNZW1vcnlIYW5kbGUqIGhhbmRsZSA9IHN0YXRlLmppdENvZGUtPmhhbmRsZXMoKVtpXS5n
ZXQoKTsKKyAgICAgICAgICAgICAgICBkaXNhc3NlbWJsZSgKKyAgICAgICAgICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGhhbmRsZS0+c3RhcnQoKSksIGhhbmRsZS0+c2l6ZUluQnl0
ZXMoKSwKKyAgICAgICAgICAgICAgICAgICAgIiAgICAgICIsIG91dCwgTExWTVN1YnNldCk7Cisg
ICAgICAgIH0KKyAgICAgICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKFByb2ZpbGVyOjpP
cmlnaW5TdGFjaygpLCBvdXQudG9DU3RyaW5nKCkpOworICAgICAgICBvdXQucmVzZXQoKTsKICAg
ICAgICAgCi0gICAgICAgIGFyaXR5Q2hlY2sgPSBqaXQubGFiZWwoKTsKLSAgICAgICAgY29tcGls
ZUVudHJ5KGppdCk7CisgICAgICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5jb21waWxhdGlvbiA9
IGNvbXBpbGF0aW9uOworICAgIH0KKyAgICAKKyAgICBzd2l0Y2ggKGdyYXBoLm1fcGxhbi5tb2Rl
KSB7CisgICAgY2FzZSBGVExNb2RlOiB7CisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qg
bWFpblBhdGhKdW1wczsKKyAgICAKICAgICAgICAgaml0LmxvYWQzMigKLSAgICAgICAgICAgIEND
YWxsSGVscGVyczo6cGF5bG9hZEZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3Rh
Y2s6OkFyZ3VtZW50Q291bnQpKSwKKyAgICAgICAgICAgIGZyYW1lLndpdGhPZmZzZXQoc2l6ZW9m
KFJlZ2lzdGVyKSAqIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpLAogICAgICAgICAgICAgR1BSSW5m
bzo6cmVnVDEpOwotICAgICAgICBqaXQuYnJhbmNoMzIoCisgICAgICAgIG1haW5QYXRoSnVtcHMu
YXBwZW5kKGppdC5icmFuY2gzMigKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWJvdmVPckVx
dWFsLCBHUFJJbmZvOjpyZWdUMSwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSkKLSAgICAgICAgICAgIC5saW5rVG8oZnJv
bUFyaXR5Q2hlY2ssICZqaXQpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKSk7CisgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25Qcm9sb2d1ZSgpOwogICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
ciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICAgICAgaml0LnN0b3JlMzIoCiAgICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihDYWxsRnJhbWU6OkxvY2F0aW9uOjplbmNv
ZGVBc0J5dGVjb2RlT2Zmc2V0KDApKSwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6dGFnRm9y
KHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNTdGFjazo6QXJndW1lbnRDb3VudCkpKTsK
LSAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAmc3RhdGUu
Z3JhcGgubV92bS50b3BDYWxsRnJhbWUpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjp0YWdG
b3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCkpOworICAgICAgICBqaXQuc3RvcmVQdHIoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsICZ2bS50b3BDYWxsRnJhbWUpOwogICAgICAgICBDQ2FsbEhl
bHBlcnM6OkNhbGwgY2FsbEFyaXR5Q2hlY2sgPSBqaXQuY2FsbCgpOwogI2lmICFBU1NFUlRfRElT
QUJMRUQKICAgICAgICAgLy8gRklYTUU6IG5lZWQgdG8gbWFrZSB0aGlzIGNhbGwgcmVnaXN0ZXIg
d2l0aCBleGNlcHRpb24gaGFuZGxpbmcgc29tZWhvdy4gVGhpcyBpcwogICAgICAgICAvLyBwYXJ0
IG9mIGEgYmlnZ2VyIHByb2JsZW06IEZUTCBzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUgZXhjZXB0
aW9ucy4KICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMzYyMgogICAgICAgICAvLyBVbnRpbCB0aGVuLCB1c2UgYSBKSVQgQVNTRVJULgotICAgICAg
ICBqaXQubG9hZDY0KHN0YXRlLmdyYXBoLm1fdm0uYWRkcmVzc09mRXhjZXB0aW9uKCksIEdQUklu
Zm86OnJlZ1QxKTsKKyAgICAgICAgaml0LmxvYWQ2NCh2bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwg
R1BSSW5mbzo6cmVnVDEpOwogICAgICAgICBqaXQuaml0QXNzZXJ0SXNOdWxsKEdQUkluZm86OnJl
Z1QxKTsKICNlbmRpZgotICAgICAgICBpZiAoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgIT0gR1BS
SW5mbzo6cmVnVDApCi0gICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICBqaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVy
czo6WmVybywgR1BSSW5mbzo6cmVnVDApLmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgJmppdCk7Cisg
ICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdUMCk7
CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworICAgICAgICBtYWluUGF0aEp1
bXBzLmFwcGVuZChqaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6WmVybywgR1BSSW5mbzo6
cmVnVDApKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CisgICAgICAgIGpp
dC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2bS5hcml0eUNoZWNrRmFpbFJldHVy
blRodW5rcy0+cmV0dXJuUENzRm9yKHZtLCBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkpLCBH
UFJJbmZvOjpyZWdUNSk7CisgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QmFzZUlu
ZGV4KEdQUkluZm86OnJlZ1Q1LCBHUFJJbmZvOjpyZWdUMCwgQ0NhbGxIZWxwZXJzOjp0aW1lc1B0
cigpKSwgR1BSSW5mbzo6cmVnVDUpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbEFy
aXR5Rml4dXAgPSBqaXQuY2FsbCgpOwotICAgICAgICBqaXQuanVtcChmcm9tQXJpdHlDaGVjayk7
Ci0gICAgICAgIAotICAgICAgICBsaW5rQnVmZmVyID0gYWRvcHRQdHIobmV3IExpbmtCdWZmZXIo
c3RhdGUuZ3JhcGgubV92bSwgJmppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNj
ZWVkKSk7Ci0gICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbFN0YWNrQ2hlY2ssIG9wZXJhdGlv
blN0YWNrQ2hlY2spOworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAg
ICAgbWFpblBhdGhKdW1wcy5hcHBlbmQoaml0Lmp1bXAoKSk7CisKKyAgICAgICAgbGlua0J1ZmZl
ciA9IGFkb3B0UHRyKG5ldyBMaW5rQnVmZmVyKHZtLCAmaml0LCBjb2RlQmxvY2ssIEpJVENvbXBp
bGF0aW9uTXVzdFN1Y2NlZWQpKTsKICAgICAgICAgbGlua0J1ZmZlci0+bGluayhjYWxsQXJpdHlD
aGVjaywgY29kZUJsb2NrLT5tX2lzQ29uc3RydWN0b3IgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0
eUNoZWNrIDogb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2spOwotICAgICAgICBsaW5rQnVmZmVyLT5s
aW5rKGNhbGxBcml0eUZpeHVwLCBGdW5jdGlvblB0cigoc3RhdGUuZ3JhcGgubV92bS5nZXRDVElT
dHViKGFyaXR5Rml4dXApKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgICAgICBs
aW5rQnVmZmVyLT5saW5rKGNhbGxBcml0eUZpeHVwLCBGdW5jdGlvblB0cigodm0uZ2V0Q1RJU3R1
Yihhcml0eUZpeHVwKSkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgbGlu
a0J1ZmZlci0+bGluayhtYWluUGF0aEp1bXBzLCBDb2RlTG9jYXRpb25MYWJlbChiaXR3aXNlX2Nh
c3Q8dm9pZCo+KHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uKSkpOworCisgICAgICAgIHN0YXRlLmpp
dENvZGUtPmluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbChNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0
d2lzZV9jYXN0PHZvaWQqPihzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbikpKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgICAgICAKQEAgLTE2MCwxOCArMTkwLDE0IEBAIHZvaWQgbGluayhTdGF0
ZSYgc3RhdGUpCiAgICAgICAgIC8vIHZhbHVlcyBpbnRvIHRoZSBzY3JhdGNoIGJ1ZmZlci4gRXZl
cnl0aGluZyBzaG91bGQgYmUgZ29vZCB0byBnbyAtIGF0IHRoaXMKICAgICAgICAgLy8gcG9pbnQg
d2UndmUgZXZlbiBkb25lIHRoZSBzdGFjayBjaGVjay4gQmFzaWNhbGx5IHdlIGp1c3QgaGF2ZSB0
byBtYWtlIHRoZQogICAgICAgICAvLyBjYWxsIHRvIHRoZSBMTFZNLWdlbmVyYXRlZCBjb2RlLgot
ICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKLSAgICAgICAgaml0Lm1vdmUo
Ci0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24pKSwKLSAgICAgICAgICAgIEdQUkluZm86
Om5vbkFyZ0dQUjApOwotICAgICAgICBqaXQuY2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAg
ICAgICAgaml0LmVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6
cmVnVDEpOwotICAgICAgICBqaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRl
clB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgICAgIGppdC5yZXN0b3JlUmV0
dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIGppdC5yZXQo
KTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBzdGFydCA9IGppdC5sYWJlbCgpOworICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpK
dW1wIG1haW5QYXRoSnVtcCA9IGppdC5qdW1wKCk7CiAgICAgICAgIAotICAgICAgICBsaW5rQnVm
ZmVyID0gYWRvcHRQdHIobmV3IExpbmtCdWZmZXIoCi0gICAgICAgICAgICBzdGF0ZS5ncmFwaC5t
X3ZtLCAmaml0LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAg
ICAgbGlua0J1ZmZlciA9IGFkb3B0UHRyKG5ldyBMaW5rQnVmZmVyKHZtLCAmaml0LCBjb2RlQmxv
Y2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgbGlua0J1ZmZlci0+bGlu
ayhtYWluUGF0aEp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3Rh
dGUuZ2VuZXJhdGVkRnVuY3Rpb24pKSk7CisKKyAgICAgICAgc3RhdGUuaml0Q29kZS0+aW5pdGlh
bGl6ZUFkZHJlc3NGb3JDYWxsKGxpbmtCdWZmZXItPmxvY2F0aW9uT2Yoc3RhcnQpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuaCIKICNpbmNsdWRlICJGVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgiCisjaW5jbHVkZSAiRlRMQXZhaWxhYmxlUmVjb3Zlcnku
aCIKICNpbmNsdWRlICJGVExGb3JPU1JFbnRyeUpJVENvZGUuaCIKICNpbmNsdWRlICJGVExGb3Jt
YXR0ZWRWYWx1ZS5oIgogI2luY2x1ZGUgIkZUTElubGluZUNhY2hlU2l6ZS5oIgpAQCAtNTEsNiAr
NTIsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIERGRzsKIAogc3RhdGljIHN0ZDo6YXRvbWljPGludD4g
Y29tcGlsZUNvdW50ZXI7CiAKKy8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgYW5kIGludHJvZHVj
ZSBhIHJlYWwgc3RhY2sgY2hlY2suCisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI1NjUwCitzdGF0aWMgdWludHB0cl90IHN0YWNrTGltaXQ7CisKIC8vIFVzaW5n
IHRoaXMgaW5zdGVhZCBvZiB0eXBlQ2hlY2soKSBoZWxwcyB0byByZWR1Y2UgdGhlIGxvYWQgb24g
TExWTSwgYnkgY3JlYXRpbmcKIC8vIHNpZ25pZmljYW50bHkgbGVzcyBkZWFkIGNvZGUuCiAjZGVm
aW5lIEZUTF9UWVBFX0NIRUNLKGxvd1ZhbHVlLCBoaWdoVmFsdWUsIHR5cGVzUGFzc2VkVGhyb3Vn
aCwgZmFpbENvbmRpdGlvbikgZG8geyBcCkBAIC05MiwxOSArOTcsMjAgQEAgcHVibGljOgogICAg
ICAgICAgICAgbGx2bS0+TW9kdWxlQ3JlYXRlV2l0aE5hbWVJbkNvbnRleHQobmFtZS5kYXRhKCks
IG1fZnRsU3RhdGUuY29udGV4dCk7CiAgICAgICAgIAogICAgICAgICBtX2Z0bFN0YXRlLmZ1bmN0
aW9uID0gYWRkRnVuY3Rpb24oCi0gICAgICAgICAgICBtX2Z0bFN0YXRlLm1vZHVsZSwgbmFtZS5k
YXRhKCksIGZ1bmN0aW9uVHlwZShtX291dC5pbnQ2NCwgbV9vdXQuaW50UHRyKSk7CisgICAgICAg
ICAgICBtX2Z0bFN0YXRlLm1vZHVsZSwgbmFtZS5kYXRhKCksIGZ1bmN0aW9uVHlwZShtX291dC5p
bnQ2NCkpOwogICAgICAgICBzZXRGdW5jdGlvbkNhbGxpbmdDb252KG1fZnRsU3RhdGUuZnVuY3Rp
b24sIExMVk1DQ2FsbENvbnYpOworICAgICAgICBpZiAoaXNYODYoKSAmJiBPcHRpb25zOjpsbHZt
RGlzYWxsb3dBVlgoKSkgeworICAgICAgICAgICAgLy8gQVZYIG1ha2VzIFY4L3JheXRyYWNlIDgw
JSBzbG93ZXIuIEl0IG1ha2VzIEtyYWtlbi9hdWRpby1vc2NpbGxhdG9yIDQuNXgKKyAgICAgICAg
ICAgIC8vIHNsb3dlci4gSXQgc2hvdWxkIGJlIGRpc2FibGVkLgorICAgICAgICAgICAgYWRkVGFy
Z2V0RGVwZW5kZW50RnVuY3Rpb25BdHRyKG1fZnRsU3RhdGUuZnVuY3Rpb24sICJ0YXJnZXQtZmVh
dHVyZXMiLCAiLWF2eCIpOworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBtX291dC5pbml0
aWFsaXplKG1fZnRsU3RhdGUubW9kdWxlLCBtX2Z0bFN0YXRlLmZ1bmN0aW9uLCBtX2hlYXBzKTsK
ICAgICAgICAgCi0gICAgICAgIG1fcHJvbG9ndWUgPSBhcHBlbmRCYXNpY0Jsb2NrKG1fZnRsU3Rh
dGUuY29udGV4dCwgbV9mdGxTdGF0ZS5mdW5jdGlvbik7Ci0gICAgICAgIG1fb3V0LmFwcGVuZFRv
KG1fcHJvbG9ndWUpOwotICAgICAgICBjcmVhdGVQaGlWYXJpYWJsZXMoKTsKLSAgICAgICAgCi0g
ICAgICAgIG1fY2FsbEZyYW1lID0gbV9vdXQucGFyYW0oMCk7Ci0gICAgICAgIG1fdGFnVHlwZU51
bWJlciA9IG1fb3V0LmNvbnN0SW50NjQoVGFnVHlwZU51bWJlcik7Ci0gICAgICAgIG1fdGFnTWFz
ayA9IG1fb3V0LmNvbnN0SW50NjQoVGFnTWFzayk7Ci0gICAgICAgIAorICAgICAgICBtX3Byb2xv
Z3VlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJQcm9sb2d1ZSIpKTsKKyAgICAgICAgTEJhc2lj
QmxvY2sgc3RhY2tPdmVyZmxvdyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3RhY2sgb3ZlcmZs
b3ciKSk7CisgICAgICAgIG1faGFuZGxlRXhjZXB0aW9ucyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQs
ICgiSGFuZGxlIEV4Y2VwdGlvbnMiKSk7CisKICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJsb2Nr
SW5kZXggPSAwOyBibG9ja0luZGV4IDwgbV9ncmFwaC5udW1CbG9ja3MoKTsgKytibG9ja0luZGV4
KSB7CiAgICAgICAgICAgICBtX2hpZ2hCbG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7
CiAgICAgICAgICAgICBpZiAoIW1faGlnaEJsb2NrKQpAQCAtMTEyLDggKzExOCw0MiBAQCBwdWJs
aWM6CiAgICAgICAgICAgICBtX2Jsb2Nrcy5hZGQobV9oaWdoQmxvY2ssIEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiQmxvY2sgIiwgKm1faGlnaEJsb2NrKSkpOwogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICBtX291dC5hcHBlbmRUbyhtX3Byb2xvZ3VlKTsKLSAgICAgICAgbV9vdXQuanVtcChs
b3dCbG9jayhtX2dyYXBoLmJsb2NrKDApKSk7CisgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1fcHJv
bG9ndWUsIHN0YWNrT3ZlcmZsb3cpOworICAgICAgICBjcmVhdGVQaGlWYXJpYWJsZXMoKTsKKyAg
ICAgICAgTFZhbHVlIGNhcHR1cmVkQWxsb2NhID0gbV9vdXQuYWxsb2NhKGFycmF5VHlwZShtX291
dC5pbnQ2NCwgbV9ncmFwaC5tX25leHRNYWNoaW5lTG9jYWwpKTsKKyAgICAgICAgbV9jYXB0dXJl
ZCA9IG1fb3V0LmFkZCgKKyAgICAgICAgICAgIG1fb3V0LnB0clRvSW50KGNhcHR1cmVkQWxsb2Nh
LCBtX291dC5pbnRQdHIpLAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIobV9ncmFwaC5t
X25leHRNYWNoaW5lTG9jYWwgKiBzaXplb2YoUmVnaXN0ZXIpKSk7OworICAgICAgICAKKyAgICAg
ICAgLy8gV2Ugc2hvdWxkIG5vdCBjcmVhdGUgYW55IGFsbG9jYSdzIGFmdGVyIHRoaXMgcG9pbnQs
IHNpbmNlIHRoZXkgd2lsbCBjZWFzZSB0bworICAgICAgICAvLyBiZSBtZW0ycmVnIGNhbmRpZGF0
ZXMuCisgICAgICAgIAorICAgICAgICBtX2Z0bFN0YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCA9IG1f
c3RhY2ttYXBJRHMrKzsKKyAgICAgICAgbV9vdXQuY2FsbCgKKyAgICAgICAgICAgIG1fb3V0LnN0
YWNrbWFwSW50cmluc2ljKCksIG1fb3V0LmNvbnN0SW50NjQobV9mdGxTdGF0ZS5jYXB0dXJlZFN0
YWNrbWFwSUQpLAorICAgICAgICAgICAgbV9vdXQuaW50MzJaZXJvLCBjYXB0dXJlZEFsbG9jYSk7
CisgICAgICAgIAorICAgICAgICBtX2NhbGxGcmFtZSA9IG1fb3V0LnB0clRvSW50KAorICAgICAg
ICAgICAgbV9vdXQuY2FsbChtX291dC5mcmFtZUFkZHJlc3NJbnRyaW5zaWMoKSwgbV9vdXQuaW50
MzJaZXJvKSwgbV9vdXQuaW50UHRyKTsKKyAgICAgICAgbV90YWdUeXBlTnVtYmVyID0gbV9vdXQu
Y29uc3RJbnQ2NChUYWdUeXBlTnVtYmVyKTsKKyAgICAgICAgbV90YWdNYXNrID0gbV9vdXQuY29u
c3RJbnQ2NChUYWdNYXNrKTsKKyAgICAgICAgCisgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0
LmNvbnN0SW50UHRyKGNvZGVCbG9jaygpKSwgYWRkcmVzc0ZvcihKU1N0YWNrOjpDb2RlQmxvY2sp
KTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgbV9vdXQuYmVsb3cobV9jYWxs
RnJhbWUsIG1fb3V0LmxvYWRQdHIobV9vdXQuYWJzb2x1dGUoJnN0YWNrTGltaXQpKSksCisgICAg
ICAgICAgICBzdGFja092ZXJmbG93LCBsb3dCbG9jayhtX2dyYXBoLmJsb2NrKDApKSk7CisgICAg
ICAgIAorICAgICAgICBtX291dC5hcHBlbmRUbyhzdGFja092ZXJmbG93LCBtX2hhbmRsZUV4Y2Vw
dGlvbnMpOworICAgICAgICAvLyBGSVhNRTogRG8gYSByZWFsIHN0YWNrIGNoZWNrIGFuZCB0aHJv
dyB0aGUgZXhjZXB0aW9uIGFwcHJvcHJpYXRlbHkuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU2NTAKKyAgICAgICAgbV9vdXQuY3Jhc2goKTsK
KyAgICAgICAgCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1faGFuZGxlRXhjZXB0aW9ucywgbG93
QmxvY2sobV9ncmFwaC5ibG9jaygwKSkpOworICAgICAgICBtX2Z0bFN0YXRlLmhhbmRsZUV4Y2Vw
dGlvblN0YWNrbWFwSUQgPSBtX3N0YWNrbWFwSURzKys7CisgICAgICAgIG1fb3V0LmNhbGwoCisg
ICAgICAgICAgICBtX291dC5zdGFja21hcEludHJpbnNpYygpLCBtX291dC5jb25zdEludDY0KG1f
ZnRsU3RhdGUuaGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRCksCisgICAgICAgICAgICBtX291dC5j
b25zdEludDMyKE1hY3JvQXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkpKTsKKyAg
ICAgICAgbV9vdXQudW5yZWFjaGFibGUoKTsKICAgICAgICAgCiAgICAgICAgIFZlY3RvcjxCYXNp
Y0Jsb2NrKj4gZGVwdGhGaXJzdDsKICAgICAgICAgbV9ncmFwaC5nZXRCbG9ja3NJbkRlcHRoRmly
c3RPcmRlcihkZXB0aEZpcnN0KTsKQEAgLTIyNiw2ICsyNjYsOCBAQCBwcml2YXRlOgogICAgICAg
ICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQogICAgICAgICAgICAgZGF0YUxvZygi
TG93ZXJpbmcgIiwgbV9ub2RlLCAiXG4iKTsKICAgICAgICAgCisgICAgICAgIG1fYXZhaWxhYmxl
UmVjb3Zlcmllcy5yZXNpemUoMCk7CisgICAgICAgIAogICAgICAgICBib29sIHNob3VsZEV4ZWN1
dGVFZmZlY3RzID0gbV9pbnRlcnByZXRlci5zdGFydEV4ZWN1dGluZyhtX25vZGUpOwogICAgICAg
ICAKICAgICAgICAgc3dpdGNoIChtX25vZGUtPm9wKCkpIHsKQEAgLTI2NSwxOSArMzA3LDE3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBjb21waWxlVmFsdWVBZGQoKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEFyaXRoQWRkOgotICAgICAgICAgICAgY29tcGlsZUFkZFN1Yigp
OwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhTdWI6Ci0gICAgICAgICAg
ICBjb21waWxlQWRkU3ViKCk7CisgICAgICAgICAgICBjb21waWxlQXJpdGhBZGRPclN1YigpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhNdWw6CiAgICAgICAgICAgICBj
b21waWxlQXJpdGhNdWwoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRo
RGl2OgotICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKCk7CisgICAgICAgICAgICBjb21w
aWxlQXJpdGhEaXYoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTW9k
OgotICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKCk7CisgICAgICAgICAgICBjb21waWxl
QXJpdGhNb2QoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTWluOgog
ICAgICAgICBjYXNlIEFyaXRoTWF4OgpAQCAtMjg2LDYgKzMyNiwxNSBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIEFyaXRoQWJzOgogICAgICAgICAgICAgY29tcGlsZUFyaXRoQWJzKCk7CiAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcml0aFNpbjoKKyAgICAgICAgICAgIGNvbXBp
bGVBcml0aFNpbigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXJpdGhDb3M6
CisgICAgICAgICAgICBjb21waWxlQXJpdGhDb3MoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFyaXRoU3FydDoKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aFNxcnQoKTsKKyAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTmVnYXRlOgogICAgICAgICAgICAg
Y29tcGlsZUFyaXRoTmVnYXRlKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTMyMiw2ICszNzEs
OSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENoZWNrRnVuY3Rpb246CiAgICAgICAgICAgICBj
b21waWxlQ2hlY2tGdW5jdGlvbigpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q2hlY2tFeGVjdXRhYmxlOgorICAgICAgICAgICAgY29tcGlsZUNoZWNrRXhlY3V0YWJsZSgpOwor
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKICAg
ICAgICAgICAgIGNvbXBpbGVBcnJheWlmeVRvU3RydWN0dXJlKCk7CiAgICAgICAgICAgICBicmVh
azsKQEAgLTMzNCw2ICszODYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEdldEJ5SWQ6CiAg
ICAgICAgICAgICBjb21waWxlR2V0QnlJZCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgUHV0QnlJZERpcmVjdDoKICAgICAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICAgICAg
Y29tcGlsZVB1dEJ5SWQoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzcyLDkgKzQyNSwxOCBA
QCBwcml2YXRlOgogICAgICAgICBjYXNlIE5ld0FycmF5QnVmZmVyOgogICAgICAgICAgICAgY29t
cGlsZU5ld0FycmF5QnVmZmVyKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBO
ZXdBcnJheVdpdGhTaXplOgorICAgICAgICAgICAgY29tcGlsZU5ld0FycmF5V2l0aFNpemUoKTsK
KyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdl
OgogICAgICAgICAgICAgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKCk7CiAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUb1N0cmluZzoKKyAgICAgICAgICAgIGNvbXBpbGVU
b1N0cmluZygpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWFrZVJvcGU6Cisg
ICAgICAgICAgICBjb21waWxlTWFrZVJvcGUoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIFN0cmluZ0NoYXJBdDoKICAgICAgICAgICAgIGNvbXBpbGVTdHJpbmdDaGFyQXQoKTsK
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzk2LDYgKzQ1OCwxMiBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIE5vdGlmeVdyaXRlOgogICAgICAgICAgICAgY29tcGlsZU5vdGlmeVdyaXRlKCk7CiAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHZXRDYWxsZWU6CisgICAgICAgICAgICBj
b21waWxlR2V0Q2FsbGVlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHZXRT
Y29wZToKKyAgICAgICAgICAgIGNvbXBpbGVHZXRTY29wZSgpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgR2V0TXlTY29wZToKICAgICAgICAgICAgIGNvbXBpbGVHZXRNeVNjb3Bl
KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ2Niw2ICs1MzQsMTIgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBJbnQ1MlRvVmFsdWU6CiAgICAgICAgICAgICBjb21waWxlSW50NTJUb1ZhbHVl
KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVja0FyZ3VtZW50c05vdENy
ZWF0ZWQ6CisgICAgICAgICAgICBjb21waWxlQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKCk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKKyAgICAgICAg
ICAgIGNvbXBpbGVDb3VudEV4ZWN1dGlvbigpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgU3RvcmVCYXJyaWVyOgogICAgICAgICAgICAgY29tcGlsZVN0b3JlQmFycmllcigpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC00ODIsNiArNTU2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
Y2FzZSBWYXJpYWJsZVdhdGNocG9pbnQ6CiAgICAgICAgIGNhc2UgRnVuY3Rpb25SZWVudHJ5V2F0
Y2hwb2ludDoKICAgICAgICAgY2FzZSBUeXBlZEFycmF5V2F0Y2hwb2ludDoKKyAgICAgICAgY2Fz
ZSBBbGxvY2F0aW9uUHJvZmlsZVdhdGNocG9pbnQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC04MTUsMjQgKzg5MCw1MyBAQCBwcml2YXRlOgogICAgICAgICAgICAgbG93SlNWYWx1ZShtX25v
ZGUtPmNoaWxkMSgpKSwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpOwogICAgIH0KICAg
ICAKLSAgICB2b2lkIGNvbXBpbGVBZGRTdWIoKQorICAgIHZvaWQgY29tcGlsZUFyaXRoQWRkT3JT
dWIoKQogICAgIHsKICAgICAgICAgYm9vbCBpc1N1YiA9ICBtX25vZGUtPm9wKCkgPT0gQXJpdGhT
dWI7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICAgICAg
Y2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dJbnQzMihtX25v
ZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDMyKG1fbm9k
ZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGlzU3ViID8gbV9vdXQu
c3ViKGxlZnQsIHJpZ2h0KSA6IG1fb3V0LmFkZChsZWZ0LCByaWdodCk7CiAKICAgICAgICAgICAg
IGlmICghc2hvdWxkQ2hlY2tPdmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAg
ICAgICAgICAgIHNldEludDMyKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgc2V0SW50MzIoaXNT
dWIgPyBtX291dC5zdWIobGVmdCwgcmlnaHQpIDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KSk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIExWYWx1
ZSBvdmVyZmxvdyA9IGlzU3ViID8gbV9vdXQuc3ViV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQp
IDogbV9vdXQuYWRkV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgTFZh
bHVlIHJlc3VsdDsKKyAgICAgICAgICAgIGlmICghaXNTdWIpIHsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBtX291dC5hZGRXaXRoT3ZlcmZsb3czMihsZWZ0LCByaWdodCk7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQyKCkpKSB7
CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDIoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAg
ICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgbGVmdCwgVmFsdWVGb3Jt
YXRJbnQzMik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUtPmNo
aWxkMSgpKSkgeworICAgICAgICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQxKCksIFN1YlJlY292ZXJ5LAorICAg
ICAgICAgICAgICAgICAgICAgICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIHJpZ2h0
LCBWYWx1ZUZvcm1hdEludDMyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzMyKGxl
ZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG9lc0tp
bGwobV9ub2RlLT5jaGlsZDIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0ID0g
bGVmdCAtIHJpZ2h0CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCAtIGxlZnQgPSAtcmln
aHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmlnaHQgPSBsZWZ0IC0gcmVzdWx0CisgICAgICAg
ICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAg
ICAgbV9ub2RlLT5jaGlsZDIoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAg
ICBsZWZ0LCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgVmFsdWVGb3JtYXRJbnQzMik7
CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMSgpKSkg
eworICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgPSBsZWZ0IC0gcmlnaHQKKyAgICAgICAg
ICAgICAgICAgICAgLy8gcmVzdWx0ICsgcmlnaHQgPSBsZWZ0CisgICAgICAgICAgICAgICAgICAg
IGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5j
aGlsZDEoKSwgQWRkUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5leHRy
YWN0VmFsdWUocmVzdWx0LCAwKSwgcmlnaHQsIFZhbHVlRm9ybWF0SW50MzIpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93
LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvdywgMSkpOwotICAgICAg
ICAgICAgc2V0SW50MzIocmVzdWx0KTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywg
bm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAxKSk7CisgICAgICAgICAg
ICBzZXRJbnQzMihtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC04NDgsMTEgKzk1Miw0MSBAQCBwcml2
YXRlOgogICAgICAgICAgICAgCiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0ludDUyKG1f
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50NTIobV9u
b2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gaXNTdWIgPyBtX291
dC5zdWIobGVmdCwgcmlnaHQpIDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KTsKIAotICAgICAgICAg
ICAgTFZhbHVlIG92ZXJmbG93ID0gaXNTdWIgPyBtX291dC5zdWJXaXRoT3ZlcmZsb3c2NChsZWZ0
LCByaWdodCkgOiBtX291dC5hZGRXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdodCk7Ci0gICAgICAg
ICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0
VmFsdWUob3ZlcmZsb3csIDEpKTsKLSAgICAgICAgICAgIHNldEludDUyKHJlc3VsdCk7CisgICAg
ICAgICAgICBMVmFsdWUgcmVzdWx0OworICAgICAgICAgICAgaWYgKCFpc1N1YikgeworICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmFkZFdpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG9lc0tpbGwobV9ub2RlLT5j
aGlsZDIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisg
ICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBsZWZ0
LCBWYWx1ZUZvcm1hdEludDUyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxs
KG1fbm9kZS0+Y2hpbGQxKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJl
Y292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDEoKSwgU3ViUmVj
b3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0
LCAwKSwgcmlnaHQsIFZhbHVlRm9ybWF0SW50NTIpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQuc3ViV2l0aE92
ZXJmbG93NjQobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMigpKSkgeworICAgICAgICAgICAgICAgICAgICAv
LyByZXN1bHQgPSBsZWZ0IC0gcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0IC0g
bGVmdCA9IC1yaWdodAorICAgICAgICAgICAgICAgICAgICAvLyByaWdodCA9IGxlZnQgLSByZXN1
bHQKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxlZnQsIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBWYWx1ZUZv
cm1hdEludDUyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+
Y2hpbGQxKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCA9IGxlZnQgLSByaWdo
dAorICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgKyByaWdodCA9IGxlZnQKKyAgICAgICAg
ICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAg
ICBtX25vZGUtPmNoaWxkMSgpLCBBZGRSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCByaWdodCwgVmFsdWVGb3JtYXRJbnQ1Mik7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzcGVjdWxh
dGUoSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0
LCAxKSk7CisgICAgICAgICAgICBzZXRJbnQ1MihtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAw
KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC04NzYs
MTEgKzEwMTAsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAg
ICAgICAgTFZhbHVlIGxlZnQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
ICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAg
ICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0Lm11bChsZWZ0LCByaWdodCk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIExWYWx1ZSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGlmIChzaG91bGRDaGVj
a092ZXJmbG93KG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICBpZiAoIXNob3Vs
ZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpCisgICAgICAgICAgICAgICAgcmVz
dWx0ID0gbV9vdXQubXVsKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0Lm11bFdpdGhPdmVyZmxvdzMy
KGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFs
dWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAwKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNob3VsZENoZWNr
TmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CkBAIC05MDQsMTEgKzEwNDIsMTAg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIEludDUyS2luZCBraW5kOwogICAgICAgICAgICAgTFZh
bHVlIGxlZnQgPSBsb3dXaGljaGV2ZXJJbnQ1MihtX25vZGUtPmNoaWxkMSgpLCBraW5kKTsKICAg
ICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQyKCksIG9wcG9z
aXRlKGtpbmQpKTsKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5tdWwobGVmdCwg
cmlnaHQpOwotCiAKICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0Lm11
bFdpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAgIHNwZWN1bGF0ZShJbnQ1
Mk92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3Vs
dCwgMSkpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmV4dHJhY3RWYWx1ZShv
dmVyZmxvd1Jlc3VsdCwgMCk7CiAKICAgICAgICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZl
WmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IHNsb3dDYXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE11bCBzbG93IGNhc2UiKSk7
CkBAIC05MzksMTYgKzEwNzYsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH0KIAotICAg
IHZvaWQgY29tcGlsZUFyaXRoRGl2TW9kKCkKKyAgICB2b2lkIGNvbXBpbGVBcml0aERpdigpCiAg
ICAgewogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgICAg
IGNhc2UgSW50MzJVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSBudW1lcmF0b3IgPSBsb3dJbnQz
MihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSBkZW5vbWluYXRvciA9IGxv
d0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBMQmFz
aWNCbG9jayB1bnNhZmVEZW5vbWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhE
aXZNb2QgdW5zYWZlIGRlbm9taW5hdG9yIikpOwotICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29u
dGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCBjb250aW51YXRp
b24iKSk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJBcml0aERpdk1vZCBkb25lIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgdW5zYWZl
RGVub21pbmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IHVuc2FmZSBkZW5v
bWluYXRvciIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9O
RVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgY29udGludWF0aW9uIikpOworICAgICAgICAgICAg
TEJhc2ljQmxvY2sgZG9uZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgZG9uZSIp
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJvbUJsb2NrLCAzPiBy
ZXN1bHRzOwogICAgICAgICAgICAgCkBAIC05OTEsOCArMTEyOCw4IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGRvbmUpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aE1v
ZGUoKSkpIHsKLSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayB6ZXJvTnVtZXJhdG9yID0gRlRM
X05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCB6ZXJvIG51bWVyYXRvciIpKTsKLSAgICAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBudW1lcmF0b3JDb250aW51YXRpb24gPSBGVExfTkVXX0JM
T0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIG51bWVyYXRvciBjb250aW51YXRpb24iKSk7CisgICAg
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgemVyb051bWVyYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiQXJpdGhEaXYgemVybyBudW1lcmF0b3IiKSk7CisgICAgICAgICAgICAgICAgTEJhc2lj
QmxvY2sgbnVtZXJhdG9yQ29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0
aERpdiBudW1lcmF0b3IgY29udGludWF0aW9uIikpOwogICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihudW1lcmF0b3IpLCB6ZXJvTnVt
ZXJhdG9yLCBudW1lcmF0b3JDb250aW51YXRpb24pOwogICAgICAgICAgICAgICAgIApAQCAtMTAw
NiwxNyArMTE0MywxNSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRv
KG51bWVyYXRvckNvbnRpbnVhdGlvbiwgaW5uZXJMYXN0TmV4dCk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIExWYWx1ZSBkaXZNb2RSZXN1bHQgPSBtX25vZGUtPm9w
KCkgPT0gQXJpdGhEaXYKLSAgICAgICAgICAgICAgICA/IG1fb3V0LmRpdihudW1lcmF0b3IsIGRl
bm9taW5hdG9yKQotICAgICAgICAgICAgICAgIDogbV9vdXQucmVtKG51bWVyYXRvciwgZGVub21p
bmF0b3IpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmRpdihudW1lcmF0b3Is
IGRlbm9taW5hdG9yKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNob3VsZENoZWNr
T3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBzcGVjdWxh
dGUoCiAgICAgICAgICAgICAgICAgICAgIE92ZXJmbG93LCBub1ZhbHVlKCksIDAsCi0gICAgICAg
ICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKG1fb3V0Lm11bChkaXZNb2RSZXN1bHQsIGRlbm9t
aW5hdG9yKSwgbnVtZXJhdG9yKSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFs
KG1fb3V0Lm11bChyZXN1bHQsIGRlbm9taW5hdG9yKSwgbnVtZXJhdG9yKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hv
cihkaXZNb2RSZXN1bHQpKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hv
cihyZXN1bHQpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsKQEAgLTEwMjYsOSAr
MTE2MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNl
IE51bWJlclVzZTogewotICAgICAgICAgICAgTFZhbHVlIEMxID0gbG93RG91YmxlKG1fbm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIEMyID0gbG93RG91YmxlKG1fbm9kZS0+Y2hp
bGQyKCkpOwotICAgICAgICAgICAgc2V0RG91YmxlKG1fbm9kZS0+b3AoKSA9PSBBcml0aERpdiA/
IG1fb3V0LmRvdWJsZURpdihDMSwgQzIpIDogbV9vdXQuZG91YmxlUmVtKEMxLCBDMikpOworICAg
ICAgICAgICAgc2V0RG91YmxlKG1fb3V0LmRvdWJsZURpdigKKyAgICAgICAgICAgICAgICBsb3dE
b3VibGUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMTAzOCw2ICsx
MTcyLDk5IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdm9pZCBjb21w
aWxlQXJpdGhNb2QoKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChtX25vZGUtPmJpbmFyeVVzZUtp
bmQoKSkgeworICAgICAgICBjYXNlIEludDMyVXNlOiB7CisgICAgICAgICAgICBMVmFsdWUgbnVt
ZXJhdG9yID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUg
ZGVub21pbmF0b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgdW5zYWZlRGVub21pbmF0b3IgPSBGVExfTkVXX0JMT0NL
KG1fb3V0LCAoIkFyaXRoTW9kIHVuc2FmZSBkZW5vbWluYXRvciIpKTsKKyAgICAgICAgICAgIExC
YXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2Qg
Y29udGludWF0aW9uIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9uZSA9IEZUTF9ORVdf
QkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgZG9uZSIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgVmVjdG9yPFZhbHVlRnJvbUJsb2NrLCAzPiByZXN1bHRzOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBMVmFsdWUgYWRqdXN0ZWREZW5vbWluYXRvciA9IG1fb3V0LmFkZChkZW5vbWluYXRv
ciwgbV9vdXQuaW50MzJPbmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5icmFu
Y2gobV9vdXQuYWJvdmUoYWRqdXN0ZWREZW5vbWluYXRvciwgbV9vdXQuaW50MzJPbmUpLCBjb250
aW51YXRpb24sIHVuc2FmZURlbm9taW5hdG9yKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
TEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyh1bnNhZmVEZW5vbWluYXRvciwg
Y29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIG5lZzJUb1Ro
ZTMxID0gbV9vdXQuY29uc3RJbnQzMigtMjE0NzQ4MzY0Ny0xKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgLy8gRklYTUU6IC0yXjMxIC8gLTEgd2lsbCBhY3R1YWxseSB5aWVsZCBuZWdhdGl2
ZSB6ZXJvLCBzbyB3ZSBjb3VsZCBoYXZlIGEKKyAgICAgICAgICAgIC8vIHNlcGFyYXRlIGNhc2Ug
Zm9yIHRoYXQuIEJ1dCBpdCBwcm9iYWJseSBkb2Vzbid0IG1hdHRlciBzbyBtdWNoLgorICAgICAg
ICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKKyAg
ICAgICAgICAgICAgICBMVmFsdWUgY29uZCA9IG1fb3V0LmJpdE9yKG1fb3V0LmlzWmVybzMyKGRl
bm9taW5hdG9yKSwgbV9vdXQuZXF1YWwobnVtZXJhdG9yLCBuZWcyVG9UaGUzMSkpOworICAgICAg
ICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBjb25kKTsKKyAgICAg
ICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgd2UgY29udmVydCB0
aGUgcmVzdWx0IHRvIGFuIGludCBhZnRlciB3ZSdyZSBkb25lLiBTbywKKyAgICAgICAgICAgICAg
ICAvLyBpZiB0aGUgZGVub21pbmF0b3IgaXMgemVybywgdGhlbiB0aGUgcmVzdWx0IHNob3VsZCBi
ZSByZXN1bHQgc2hvdWxkIGJlIHplcm8uCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRlbm9t
aW5hdG9yIGlzIG5vdCB6ZXJvIChpLmUuIGl0J3MgLTEgYmVjYXVzZSB3ZSdyZSBndWFyZGVkIGJ5
IHRoZQorICAgICAgICAgICAgICAgIC8vIGNoZWNrIGFib3ZlKSBhbmQgdGhlIG51bWVyYXRvciBp
cyAtMl4zMSB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIC0yXjMxLgorICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG1vZEJ5WmVybyA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiQXJpdGhNb2QgbW9kdWxvIGJ5IHplcm8iKSk7CisgICAgICAgICAgICAgICAgTEJh
c2ljQmxvY2sgbm90TW9kQnlaZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBu
b3QgbW9kdWxvIGJ5IHplcm8iKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbmVnMlRv
VGhlMzFCeU5lZzEgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIC0yXjMxLy0xIikp
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5p
c1plcm8zMihkZW5vbWluYXRvciksIG1vZEJ5WmVybywgbm90TW9kQnlaZXJvKTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhtb2RCeVplcm8sIG5vdE1v
ZEJ5WmVybyk7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1f
b3V0LmludDMyWmVybykpOworICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90TW9kQnlaZXJv
LCBuZWcyVG9UaGUzMUJ5TmVnMSk7CisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0
LmVxdWFsKG51bWVyYXRvciwgbmVnMlRvVGhlMzEpLCBuZWcyVG9UaGUzMUJ5TmVnMSwgY29udGlu
dWF0aW9uKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRU
byhuZWcyVG9UaGUzMUJ5TmVnMSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICByZXN1
bHRzLmFwcGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7CisgICAgICAgICAgICAg
ICAgbV9vdXQuanVtcChkb25lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBkb25lKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgTFZhbHVlIHJlbWFpbmRlciA9IG1fb3V0LnJlbShudW1lcmF0b3IsIGRlbm9t
aW5hdG9yKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRp
dmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxv
Y2sgbmVnYXRpdmVOdW1lcmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG5l
Z2F0aXZlIG51bWVyYXRvciIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBudW1lcmF0
b3JDb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG51bWVyYXRv
ciBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9v
dXQuYnJhbmNoKAorICAgICAgICAgICAgICAgICAgICBtX291dC5sZXNzVGhhbihudW1lcmF0b3Is
IG1fb3V0LmludDMyWmVybyksCisgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlTnVtZXJhdG9y
LCBudW1lcmF0b3JDb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGlubmVyTGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhuZWdhdGl2ZU51
bWVyYXRvciwgbnVtZXJhdG9yQ29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRpdmVaZXJvLCBub1ZhbHVlKCksIDAsIG1fb3V0Lmlz
WmVybzMyKHJlbWFpbmRlcikpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1f
b3V0Lmp1bXAobnVtZXJhdG9yQ29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICBtX291dC5hcHBlbmRUbyhudW1lcmF0b3JDb250aW51YXRpb24sIGlubmVyTGFz
dE5leHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHRz
LmFwcGVuZChtX291dC5hbmNob3IocmVtYWluZGVyKSk7CisgICAgICAgICAgICBtX291dC5qdW1w
KGRvbmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhkb25lLCBs
YXN0TmV4dCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNldEludDMyKG1fb3V0LnBoaSht
X291dC5pbnQzMiwgcmVzdWx0cykpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgICAgIAorICAgICAgICBjYXNlIE51bWJlclVzZTogeworICAgICAgICAgICAgc2V0RG91
YmxlKAorICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZVJlbShsb3dEb3VibGUobV9ub2RlLT5j
aGlsZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorCiAgICAgdm9pZCBjb21waWxlQXJpdGhNaW5Pck1heCgpCiAgICAgewog
ICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CkBAIC0xMTE0LDYgKzEz
NDEsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQor
CisgICAgdm9pZCBjb21waWxlQXJpdGhTaW4oKSB7IHNldERvdWJsZShtX291dC5kb3VibGVTaW4o
bG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7IH0KKworICAgIHZvaWQgY29tcGlsZUFyaXRo
Q29zKCkgeyBzZXREb3VibGUobV9vdXQuZG91YmxlQ29zKGxvd0RvdWJsZShtX25vZGUtPmNoaWxk
MSgpKSkpOyB9CisKKyAgICB2b2lkIGNvbXBpbGVBcml0aFNxcnQoKSB7IHNldERvdWJsZShtX291
dC5kb3VibGVTcXJ0KGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSkpOyB9CiAgICAgCiAgICAg
dm9pZCBjb21waWxlQXJpdGhOZWdhdGUoKQogICAgIHsKQEAgLTExMjEsMTYgKzEzNTQsMTggQEAg
cHJpdmF0ZToKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVlIHZh
bHVlID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5uZWcodmFsdWUpOwotICAgICAgICAgICAgaWYgKHNo
b3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoIXNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhdmUgYSBuZWdhdGUtd2l0aC1vdmVyZmxv
dyBpbnRyaW5zaWMuIEhvcGVmdWxseSB0aGlzCi0gICAgICAgICAgICAgICAgICAgIC8vIGRvZXMg
dGhlIHRyaWNrLCB0aG91Z2guCi0gICAgICAgICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jl
c3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzMyKG1fb3V0LmludDMyWmVybywgdmFsdWUpOwot
ICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9v
dXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7Ci0gICAgICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAw
LCBtX291dC50ZXN0SXNaZXJvMzIodmFsdWUsIG1fb3V0LmNvbnN0SW50MzIoMHg3ZmZmZmZmZikp
KTsKLQorICAgICAgICAgICAgTFZhbHVlIHJlc3VsdDsKKyAgICAgICAgICAgIGlmICghc2hvdWxk
Q2hlY2tPdmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSBtX291dC5uZWcodmFsdWUpOworICAgICAgICAgICAgZWxzZSBpZiAoIXNob3VsZENoZWNr
TmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgLy8g
V2UgZG9uJ3QgaGF2ZSBhIG5lZ2F0ZS13aXRoLW92ZXJmbG93IGludHJpbnNpYy4gSG9wZWZ1bGx5
IHRoaXMKKyAgICAgICAgICAgICAgICAvLyBkb2VzIHRoZSB0cmljaywgdGhvdWdoLgorICAgICAg
ICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzMy
KG1fb3V0LmludDMyWmVybywgdmFsdWUpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVy
Zmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEp
KTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dS
ZXN1bHQsIDApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzcGVjdWxh
dGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQudGVzdElzWmVybzMyKHZhbHVlLCBtX291
dC5jb25zdEludDMyKDB4N2ZmZmZmZmYpKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9v
dXQubmVnKHZhbHVlKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgc2V0SW50MzIocmVz
dWx0KTsKQEAgLTExNTEsNyArMTM4Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBMVmFsdWUg
dmFsdWUgPSBsb3dJbnQ1MihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSBv
dmVyZmxvd1Jlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzY0KG1fb3V0LmludDY0WmVybywg
dmFsdWUpOwogICAgICAgICAgICAgc3BlY3VsYXRlKEludDUyT3ZlcmZsb3csIG5vVmFsdWUoKSwg
MCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7Ci0gICAgICAgICAgICBM
VmFsdWUgcmVzdWx0ID0gbV9vdXQubmVnKHZhbHVlKTsKKyAgICAgICAgICAgIExWYWx1ZSByZXN1
bHQgPSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOwogICAgICAgICAgICAg
c3BlY3VsYXRlKE5lZ2F0aXZlWmVybywgbm9WYWx1ZSgpLCAwLCBtX291dC5pc1plcm82NChyZXN1
bHQpKTsKICAgICAgICAgICAgIHNldEludDUyKHJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsK
QEAgLTEyNzUsNiArMTUxMCwxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQubm90RXF1
YWwoY2VsbCwgd2Vha1BvaW50ZXIobV9ub2RlLT5mdW5jdGlvbigpKSkpOwogICAgIH0KICAgICAK
KyAgICB2b2lkIGNvbXBpbGVDaGVja0V4ZWN1dGFibGUoKQorICAgIHsKKyAgICAgICAgTFZhbHVl
IGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAKKyAgICAgICAgc3Bl
Y3VsYXRlKAorICAgICAgICAgICAgQmFkRXhlY3V0YWJsZSwganNWYWx1ZVZhbHVlKGNlbGwpLCBt
X25vZGUtPmNoaWxkMSgpLm5vZGUoKSwKKyAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKAorICAg
ICAgICAgICAgICAgIG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5KU0Z1bmN0aW9uX2V4ZWN1
dGFibGUpLAorICAgICAgICAgICAgICAgIHdlYWtQb2ludGVyKG1fbm9kZS0+ZXhlY3V0YWJsZSgp
KSkpOworICAgIH0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVBcnJheWlmeVRvU3RydWN0dXJlKCkK
ICAgICB7CiAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsK
QEAgLTEzNzAsOCArMTYxNiw4IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBMVmFsdWUg
Y2FsbCA9IG1fb3V0LmNhbGwoCiAgICAgICAgICAgICBtX291dC5wYXRjaHBvaW50SW50NjRJbnRy
aW5zaWMoKSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoc3RhY2ttYXBJRCksIG1fb3V0
LmNvbnN0SW50MzIoc2l6ZU9mR2V0QnlJZCgpKSwKLSAgICAgICAgICAgIGNvbnN0TnVsbChtX291
dC5yZWY4KSwgbV9vdXQuY29uc3RJbnQzMigyKSwgbV9jYWxsRnJhbWUsIGJhc2UpOworICAgICAg
ICAgICAgbV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElEKSwgbV9vdXQuY29uc3RJbnQzMihzaXpl
T2ZHZXRCeUlkKCkpLAorICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5j
b25zdEludDMyKDEpLCBiYXNlKTsKICAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxsaW5nQ29udmVu
dGlvbihjYWxsLCBMTFZNQW55UmVnQ2FsbENvbnYpOwogICAgICAgICBzZXRKU1ZhbHVlKGNhbGwp
OwogICAgICAgICAKQEAgLTEzOTUsOCArMTY0MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAg
ICAgICBMVmFsdWUgY2FsbCA9IG1fb3V0LmNhbGwoCiAgICAgICAgICAgICBtX291dC5wYXRjaHBv
aW50Vm9pZEludHJpbnNpYygpLAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihzdGFja21h
cElEKSwgbV9vdXQuY29uc3RJbnQzMihzaXplT2ZQdXRCeUlkKCkpLAotICAgICAgICAgICAgY29u
c3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5jb25zdEludDMyKDMpLCBtX2NhbGxGcmFtZSwgYmFz
ZSwgdmFsdWUpOworICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElEKSwgbV9v
dXQuY29uc3RJbnQzMihzaXplT2ZQdXRCeUlkKCkpLAorICAgICAgICAgICAgY29uc3ROdWxsKG1f
b3V0LnJlZjgpLCBtX291dC5jb25zdEludDMyKDIpLCBiYXNlLCB2YWx1ZSk7CiAgICAgICAgIHNl
dEluc3RydWN0aW9uQ2FsbGluZ0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJlZ0NhbGxDb252KTsK
ICAgICAgICAgCiAgICAgICAgIG1fZnRsU3RhdGUucHV0QnlJZHMuYXBwZW5kKFB1dEJ5SWREZXNj
cmlwdG9yKApAQCAtMTQ2MywyMCArMTcwOSwyMCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFy
cmF5OjpJbnQzMjoKICAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAgICBjYXNlIEFy
cmF5OjpDb250aWd1b3VzOiB7Ci0gICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzIobG93
U3RvcmFnZShtX25vZGUtPmNoaWxkMigpKSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3Ro
KSk7CisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzJOb25OZWdhdGl2ZShsb3dTdG9y
YWdlKG1fbm9kZS0+Y2hpbGQyKCkpLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNh
c2UgQXJyYXk6OlN0cmluZzogewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd0NlbGwo
bV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzIoc3Ry
aW5nLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCkpOworICAgICAgICAgICAgc2V0SW50MzIobV9v
dXQubG9hZDMyTm9uTmVnYXRpdmUoc3RyaW5nLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCkpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIGlmIChpc1R5cGVkVmlldyhtX25vZGUtPmFycmF5TW9kZSgpLnR5
cGVkQXJyYXlUeXBlKCkpKSB7CiAgICAgICAgICAgICAgICAgc2V0SW50MzIoCi0gICAgICAgICAg
ICAgICAgICAgIG1fb3V0LmxvYWQzMihsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBz
LkpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0aCkpOworICAgICAgICAgICAgICAgICAgICBtX291dC5s
b2FkMzJOb25OZWdhdGl2ZShsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBzLkpTQXJy
YXlCdWZmZXJWaWV3X2xlbmd0aCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIApAQCAtMTUxOCw3ICsxNzY0LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fb3V0
LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihz
dG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKKyAgICAgICAgICAgICAg
ICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0
dGVyZmx5X3B1YmxpY0xlbmd0aCkpLAogICAgICAgICAgICAgICAgIHNsb3dDYXNlLCBmYXN0Q2Fz
ZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9v
dXQuYXBwZW5kVG8oZmFzdENhc2UsIHNsb3dDYXNlKTsKQEAgLTE1NjUsNyArMTgxMSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAg
ICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIGluZGV4LCBt
X291dC5sb2FkMzIoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSksCisg
ICAgICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdl
LCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKICAgICAgICAgICAgICAgICBzbG93
Q2FzZSwgaW5Cb3VuZHMpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBs
YXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGluQm91bmRzLCBib3hQYXRoKTsKQEAgLTE2ODcsNiAr
MTkzMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIEVkZ2UgY2hpbGQyID0gbV9ncmFwaC52YXJBcmdD
aGlsZChtX25vZGUsIDEpOwogICAgICAgICBFZGdlIGNoaWxkMyA9IG1fZ3JhcGgudmFyQXJnQ2hp
bGQobV9ub2RlLCAyKTsKICAgICAgICAgRWRnZSBjaGlsZDQgPSBtX2dyYXBoLnZhckFyZ0NoaWxk
KG1fbm9kZSwgMyk7CisgICAgICAgIEVkZ2UgY2hpbGQ1ID0gbV9ncmFwaC52YXJBcmdDaGlsZCht
X25vZGUsIDQpOwogICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmFycmF5TW9kZSgp
LnR5cGUoKSkgewogICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOiB7CkBAIC0xODAxLDYgKzIw
NDgsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0Lnplcm9F
eHQoaW5kZXgsIG1fb3V0LmludFB0ciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9v
dXQuY29uc3RJbnRQdHIobG9nRWxlbWVudFNpemUodHlwZSkpKSkpOwogICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIExUeXBlIHJlZlR5cGU7CisgICAgICAgICAgICAgICAgTFZhbHVl
IHZhbHVlVG9TdG9yZTsKKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoaXNJ
bnQodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgTFZhbHVlIGludFZhbHVlOwogICAgICAg
ICAgICAgICAgICAgICBzd2l0Y2ggKGNoaWxkMy51c2VLaW5kKCkpIHsKQEAgLTE4NzYsMzQgKzIx
MjYsNTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgIHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgY2Fz
ZSAxOgotICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmU4KG1fb3V0LmludENhc3Qo
aW50VmFsdWUsIG1fb3V0LmludDgpLCBwb2ludGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHZhbHVlVG9TdG9yZSA9IG1fb3V0LmludENhc3QoaW50VmFsdWUsIG1fb3V0LmludDgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZjg7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgotICAgICAgICAg
ICAgICAgICAgICAgICAgbV9vdXQuc3RvcmUxNihtX291dC5pbnRDYXN0KGludFZhbHVlLCBtX291
dC5pbnQxNiksIHBvaW50ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3Jl
ID0gbV9vdXQuaW50Q2FzdChpbnRWYWx1ZSwgbV9vdXQuaW50MTYpOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZjE2OwogICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDoKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG1fb3V0LnN0b3JlMzIoaW50VmFsdWUsIHBvaW50ZXIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsdWVUb1N0b3JlID0gaW50VmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZWZUeXBlID0gbV9vdXQucmVmMzI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9IGVsc2UgLyogIWlzSW50KHR5cGUpICovIHsKKyAgICAgICAgICAgICAgICAgICAg
TFZhbHVlIHZhbHVlID0gbG93RG91YmxlKGNoaWxkMyk7CisgICAgICAgICAgICAgICAgICAgIHN3
aXRjaCAodHlwZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVGbG9hdDMyOgorICAg
ICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3JlID0gbV9vdXQuZnBDYXN0KHZhbHVlLCBt
X291dC5mbG9hdFR5cGUpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0
LnJlZkZsb2F0OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgVHlwZUZsb2F0NjQ6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRv
U3RvcmUgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlR5cGUgPSBtX291dC5y
ZWZEb3VibGU7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgQVNTRVJUKGlzRmxvYXQodHlwZSkpOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0RvdWJsZShjaGls
ZDMpOwotICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICAgICAgICAgIGNh
c2UgVHlwZUZsb2F0MzI6Ci0gICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlRmxvYXQobV9v
dXQuZnBDYXN0KHZhbHVlLCBtX291dC5mbG9hdFR5cGUpLCBwb2ludGVyKTsKLSAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBUeXBlRmxvYXQ2NDoKLSAgICAg
ICAgICAgICAgICAgICAgbV9vdXQuc3RvcmVEb3VibGUodmFsdWUsIHBvaW50ZXIpOwotICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAg
IGlmIChtX25vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSkKKyAgICAgICAgICAgICAgICAg
ICAgbV9vdXQuc3RvcmUodmFsdWVUb1N0b3JlLCBwb2ludGVyLCByZWZUeXBlKTsKKyAgICAgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgaXNJbkJvdW5k
cyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiUHV0QnlWYWwgdHlwZWQgYXJyYXkgaW4gYm91bmRz
IGNhc2UiKSk7CisgICAgICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiUHV0QnlWYWwgdHlwZWQgYXJyYXkgY29udGludWF0aW9u
IikpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuYnJh
bmNoKAorICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKGluZGV4LCBs
b3dJbnQzMihjaGlsZDUpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbiwg
aXNJbkJvdW5kcyk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBM
QmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzSW5Cb3VuZHMsIGNvbnRpbnVh
dGlvbik7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlKHZhbHVlVG9TdG9yZSwgcG9p
bnRlciwgcmVmVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0
aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmFw
cGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAKQEAgLTIwNjAsNiArMjMyOSwxMDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50UHRyKG1fbm9kZS0+bnVtQ29uc3RhbnRzKCkpKSk7CiAgICAgfQogICAgIAor
ICAgIHZvaWQgY29tcGlsZU5ld0FycmF5V2l0aFNpemUoKQorICAgIHsKKyAgICAgICAgTFZhbHVl
IHB1YmxpY0xlbmd0aCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAKKyAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0
Rm9yKG1fbm9kZS0+Y29kZU9yaWdpbik7CisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
Z2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRp
b24oCisgICAgICAgICAgICBtX25vZGUtPmluZGV4aW5nVHlwZSgpKTsKKyAgICAgICAgCisgICAg
ICAgIGlmICghZ2xvYmFsT2JqZWN0LT5pc0hhdmluZ0FCYWRUaW1lKCkgJiYgIWhhc0FycmF5U3Rv
cmFnZShtX25vZGUtPmluZGV4aW5nVHlwZSgpKSkgeworICAgICAgICAgICAgQVNTRVJUKAorICAg
ICAgICAgICAgICAgIGhhc1VuZGVjaWRlZChzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKQorICAg
ICAgICAgICAgICAgIHx8IGhhc0ludDMyKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCisgICAg
ICAgICAgICAgICAgfHwgaGFzRG91YmxlKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCisgICAg
ICAgICAgICAgICAgfHwgaGFzQ29udGlndW91cyhzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKSk7
CisKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGZhc3RDYXNlID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJOZXdBcnJheVdpdGhTaXplIGZhc3QgY2FzZSIpKTsKKyAgICAgICAgICAgIExCYXNpY0Js
b2NrIGxhcmdlQ2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBs
YXJnZSBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZmFpbENhc2UgPSBGVExfTkVX
X0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgZmFpbCBjYXNlIikpOworICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5
V2l0aFNpemUgc2xvdyBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0
aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGNvbnRpbnVhdGlv
biIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAg
ICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbChwdWJsaWNMZW5ndGgsIG1fb3V0LmNvbnN0SW50MzIo
TUlOX1NQQVJTRV9BUlJBWV9JTkRFWCkpLAorICAgICAgICAgICAgICAgIGxhcmdlQ2FzZSwgZmFz
dENhc2UpOworCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVu
ZFRvKGZhc3RDYXNlLCBsYXJnZUNhc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBX
ZSBkb24ndCByb3VuZCB1cCB0byBCQVNFX1ZFQ1RPUl9MRU4gZm9yIG5ldyBBcnJheShibGFoKS4K
KyAgICAgICAgICAgIExWYWx1ZSB2ZWN0b3JMZW5ndGggPSBwdWJsaWNMZW5ndGg7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBwYXlsb2FkU2l6ZSA9CisgICAgICAgICAgICAgICAg
bV9vdXQuc2hsKG1fb3V0Lnplcm9FeHQodmVjdG9yTGVuZ3RoLCBtX291dC5pbnRQdHIpLCBtX291
dC5jb25zdEludFB0cigzKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBidXR0
ZXJmbHlTaXplID0gbV9vdXQuYWRkKAorICAgICAgICAgICAgICAgIHBheWxvYWRTaXplLCBtX291
dC5jb25zdEludFB0cihzaXplb2YoSW5kZXhpbmdIZWFkZXIpKSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIExWYWx1ZSBlbmRPZlN0b3JhZ2UgPSBhbGxvY2F0ZUJhc2ljU3RvcmFnZUFuZEdl
dEVuZChidXR0ZXJmbHlTaXplLCBmYWlsQ2FzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IExWYWx1ZSBidXR0ZXJmbHkgPSBtX291dC5zdWIoZW5kT2ZTdG9yYWdlLCBwYXlsb2FkU2l6ZSk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBvYmplY3QgPSBhbGxvY2F0ZU9iamVj
dDxKU0FycmF5PigKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihzdHJ1Y3R1cmUp
LCBidXR0ZXJmbHksIGZhaWxDYXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQu
c3RvcmUzMihwdWJsaWNMZW5ndGgsIGJ1dHRlcmZseSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGlj
TGVuZ3RoKTsKKyAgICAgICAgICAgIG1fb3V0LnN0b3JlMzIodmVjdG9yTGVuZ3RoLCBidXR0ZXJm
bHksIG1faGVhcHMuQnV0dGVyZmx5X3ZlY3Rvckxlbmd0aCk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIGlmIChoYXNEb3VibGUobV9ub2RlLT5pbmRleGluZ1R5cGUoKSkpIHsKKyAgICAgICAg
ICAgICAgICBMQmFzaWNCbG9jayBpbml0TG9vcCA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3
QXJyYXlXaXRoU2l6ZSBkb3VibGUgaW5pdCBsb29wIikpOworICAgICAgICAgICAgICAgIExCYXNp
Y0Jsb2NrIGluaXREb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXpl
IGRvdWJsZSBpbml0IGRvbmUiKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
VmFsdWVGcm9tQmxvY2sgb3JpZ2luYWxJbmRleCA9IG1fb3V0LmFuY2hvcih2ZWN0b3JMZW5ndGgp
OworICAgICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIG9yaWdpbmFsUG9pbnRlciA9IG1fb3V0
LmFuY2hvcihidXR0ZXJmbHkpOworICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5u
b3RaZXJvMzIodmVjdG9yTGVuZ3RoKSwgaW5pdExvb3AsIGluaXREb25lKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpbml0TGFzdE5leHQgPSBtX291dC5h
cHBlbmRUbyhpbml0TG9vcCwgaW5pdERvbmUpOworICAgICAgICAgICAgICAgIExWYWx1ZSBpbmRl
eCA9IG1fb3V0LnBoaShtX291dC5pbnQzMiwgb3JpZ2luYWxJbmRleCk7CisgICAgICAgICAgICAg
ICAgTFZhbHVlIHBvaW50ZXIgPSBtX291dC5waGkobV9vdXQuaW50UHRyLCBvcmlnaW5hbFBvaW50
ZXIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlNjQoCisg
ICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50NjQoYml0d2lzZV9jYXN0PGludDY0X3Q+
KFFOYU4pKSwKKyAgICAgICAgICAgICAgICAgICAgVHlwZWRQb2ludGVyKG1faGVhcHMuaW5kZXhl
ZERvdWJsZVByb3BlcnRpZXMuYXRBbnlJbmRleCgpLCBwb2ludGVyKSk7CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgTFZhbHVlIG5leHRJbmRleCA9IG1fb3V0LnN1YihpbmRleCwg
bV9vdXQuaW50MzJPbmUpOworICAgICAgICAgICAgICAgIGFkZEluY29taW5nKGluZGV4LCBtX291
dC5hbmNob3IobmV4dEluZGV4KSk7CisgICAgICAgICAgICAgICAgYWRkSW5jb21pbmcocG9pbnRl
ciwgbV9vdXQuYW5jaG9yKG1fb3V0LmFkZChwb2ludGVyLCBtX291dC5pbnRQdHJFaWdodCkpKTsK
KyAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQubm90WmVybzMyKG5leHRJbmRleCks
IGluaXRMb29wLCBpbml0RG9uZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oaW5pdERvbmUsIGluaXRMYXN0TmV4dCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291
dC5hbmNob3Iob2JqZWN0KTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obGFyZ2VDYXNlLCBmYWls
Q2FzZSk7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBsYXJnZVN0cnVjdHVyZSA9IG1fb3V0
LmFuY2hvcihtX291dC5jb25zdEludFB0cigKKyAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3Qt
PmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhB
cnJheVN0b3JhZ2UpKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKHNsb3dDYXNlKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZmFpbENhc2UsIHNsb3dDYXNlKTsK
KyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhaWxTdHJ1Y3R1cmUgPSBtX291dC5hbmNob3Io
bV9vdXQuY29uc3RJbnRQdHIoc3RydWN0dXJlKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKHNs
b3dDYXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Nh
c2UsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICBMVmFsdWUgc3RydWN0dXJlVmFsdWUgPSBt
X291dC5waGkoCisgICAgICAgICAgICAgICAgbV9vdXQuaW50UHRyLCBsYXJnZVN0cnVjdHVyZSwg
ZmFpbFN0cnVjdHVyZSk7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0ID0g
bV9vdXQuYW5jaG9yKHZtQ2FsbCgKKyAgICAgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3Bl
cmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSksCisgICAgICAgICAgICAgICAgbV9jYWxsRnJhbWUsIHN0
cnVjdHVyZVZhbHVlLCBwdWJsaWNMZW5ndGgpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29u
dGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29u
dGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaSht
X291dC5pbnRQdHIsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZVZhbHVlID0g
bV9vdXQuc2VsZWN0KAorICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKHB1YmxpY0xlbmd0
aCwgbV9vdXQuY29uc3RJbnQzMihNSU5fU1BBUlNFX0FSUkFZX0lOREVYKSksCisgICAgICAgICAg
ICBtX291dC5jb25zdEludFB0cigKKyAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPmFycmF5
U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhBcnJheVN0
b3JhZ2UpKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHN0cnVjdHVyZSkpOworICAg
ICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uTmV3QXJyYXlX
aXRoU2l6ZSksIG1fY2FsbEZyYW1lLCBzdHJ1Y3R1cmVWYWx1ZSwgcHVibGljTGVuZ3RoKSk7Cisg
ICAgfQorICAgIAogICAgIHZvaWQgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKCkKICAg
ICB7CiAgICAgICAgIFN0cnVjdHVyZVRyYW5zaXRpb25EYXRhJiBkYXRhID0gbV9ub2RlLT5zdHJ1
Y3R1cmVUcmFuc2l0aW9uRGF0YSgpOwpAQCAtMjEwMiw2ICsyNDc0LDE2MCBAQCBwcml2YXRlOgog
ICAgICAgICBzZXRTdG9yYWdlKHJlc3VsdCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGls
ZVRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAobV9ub2RlLT5jaGlsZDEoKS51c2VL
aW5kKCkpIHsKKyAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6IHsKKyAgICAgICAgICAgIExW
YWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIHNwZWN1
bGF0ZVN0cmluZ09iamVjdEZvckNlbGwobV9ub2RlLT5jaGlsZDEoKSwgY2VsbCk7CisgICAgICAg
ICAgICBtX2ludGVycHJldGVyLmZpbHRlcihtX25vZGUtPmNoaWxkMSgpLCBTcGVjU3RyaW5nT2Jq
ZWN0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkUHRy
KGNlbGwsIG1faGVhcHMuSlNXcmFwcGVyT2JqZWN0X2ludGVybmFsVmFsdWUpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgU3RyaW5n
T3JTdHJpbmdPYmplY3RVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbCht
X25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291dC5s
b2FkUHRyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdFN0cmluZyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgi
VG9TdHJpbmcgU3RyaW5nT3JTdHJpbmdPYmplY3Qgbm90IHN0cmluZyBjYXNlIikpOworICAgICAg
ICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJU
b1N0cmluZyBTdHJpbmdPclN0cmluZ09iamVjdCBjb250aW51YXRpb24iKSk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNpbXBsZVJlc3VsdCA9IG1fb3V0LmFuY2hv
cihjZWxsKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAgICAgICBtX291
dC5lcXVhbChzdHJ1Y3R1cmUsIG1fb3V0LmNvbnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJl
LmdldCgpKSksCisgICAgICAgICAgICAgICAgY29udGludWF0aW9uLCBub3RTdHJpbmcpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVu
ZFRvKG5vdFN0cmluZywgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmlu
Z09iamVjdEZvclN0cnVjdHVyZShtX25vZGUtPmNoaWxkMSgpLCBzdHJ1Y3R1cmUpOworICAgICAg
ICAgICAgVmFsdWVGcm9tQmxvY2sgdW5ib3hlZFJlc3VsdCA9IG1fb3V0LmFuY2hvcigKKyAgICAg
ICAgICAgICAgICBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNXcmFwcGVyT2JqZWN0X2lu
dGVybmFsVmFsdWUpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0
TmV4dCk7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShtX291dC5pbnQ2NCwgc2lt
cGxlUmVzdWx0LCB1bmJveGVkUmVzdWx0KSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1f
aW50ZXJwcmV0ZXIuZmlsdGVyKG1fbm9kZS0+Y2hpbGQxKCksIFNwZWNTdHJpbmcgfCBTcGVjU3Ry
aW5nT2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAg
CisgICAgICAgIGNhc2UgQ2VsbFVzZToKKyAgICAgICAgY2FzZSBVbnR5cGVkVXNlOiB7CisgICAg
ICAgICAgICBMVmFsdWUgdmFsdWU7CisgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51
c2VLaW5kKCkgPT0gQ2VsbFVzZSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGxvd0NlbGwobV9u
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdmFsdWUg
PSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBMQmFzaWNCbG9jayBpc0NlbGwgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIENl
bGxVc2UvVW50eXBlZFVzZSBpcyBjZWxsIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90
U3RyaW5nID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJUb1N0cmluZyBDZWxsVXNlL1VudHlwZWRV
c2Ugbm90IHN0cmluZyIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiVG9TdHJpbmcgQ2VsbFVzZS9VbnR5cGVkVXNlIGNvbnRp
bnVhdGlvbiIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGlzQ2VsbFByZWRp
Y2F0ZTsKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxs
VXNlKQorICAgICAgICAgICAgICAgIGlzQ2VsbFByZWRpY2F0ZSA9IG1fb3V0LmJvb2xlYW5UcnVl
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlzQ2VsbFByZWRpY2F0ZSA9IHRo
aXMtPmlzQ2VsbCh2YWx1ZSk7CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNDZWxsUHJlZGlj
YXRlLCBpc0NlbGwsIG5vdFN0cmluZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNp
Y0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNDZWxsLCBub3RTdHJpbmcpOworICAg
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2ltcGxlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZhbHVl
KTsKKyAgICAgICAgICAgIExWYWx1ZSBpc1N0cmluZ1ByZWRpY2F0ZTsKKyAgICAgICAgICAgIGlm
IChtX25vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCkgJiBTcGVjU3RyaW5nKSB7CisgICAgICAg
ICAgICAgICAgaXNTdHJpbmdQcmVkaWNhdGUgPSBtX291dC5lcXVhbCgKKyAgICAgICAgICAgICAg
ICAgICAgbV9vdXQubG9hZFB0cih2YWx1ZSwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlKSwKKyAg
ICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUu
Z2V0KCkpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGlzU3RyaW5nUHJl
ZGljYXRlID0gbV9vdXQuYm9vbGVhbkZhbHNlOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlz
U3RyaW5nUHJlZGljYXRlLCBjb250aW51YXRpb24sIG5vdFN0cmluZyk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGludWF0aW9uKTsKKyAg
ICAgICAgICAgIExWYWx1ZSBvcGVyYXRpb247CisgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGls
ZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBt
X291dC5vcGVyYXRpb24ob3BlcmF0aW9uVG9TdHJpbmdPbkNlbGwpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25U
b1N0cmluZyk7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBjb252ZXJ0ZWRSZXN1bHQgPSBt
X291dC5hbmNob3Iodm1DYWxsKG9wZXJhdGlvbiwgbV9jYWxsRnJhbWUsIHZhbHVlKSk7CisgICAg
ICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAgICAg
c2V0SlNWYWx1ZShtX291dC5waGkobV9vdXQuaW50NjQsIHNpbXBsZVJlc3VsdCwgY29udmVydGVk
UmVzdWx0KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIAor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQg
Y29tcGlsZU1ha2VSb3BlKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBraWRzWzNdOworICAgICAg
ICB1bnNpZ25lZCBudW1LaWRzOworICAgICAgICBraWRzWzBdID0gbG93Q2VsbChtX25vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAga2lkc1sxXSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDIoKSk7Cisg
ICAgICAgIGlmIChtX25vZGUtPmNoaWxkMygpKSB7CisgICAgICAgICAgICBraWRzWzJdID0gbG93
Q2VsbChtX25vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIG51bUtpZHMgPSAzOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAga2lkc1syXSA9IDA7CisgICAgICAgICAgICBudW1LaWRz
ID0gMjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGgg
PSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk1ha2VSb3BlIHNsb3cgcGF0aCIpKTsKKyAgICAgICAg
TEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJNYWtlUm9w
ZSBjb250aW51YXRpb24iKSk7CisgICAgICAgIAorICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4
dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShzbG93UGF0aCk7CisgICAgICAgIAorICAg
ICAgICBNYXJrZWRBbGxvY2F0b3ImIGFsbG9jYXRvciA9CisgICAgICAgICAgICB2bSgpLmhlYXAu
YWxsb2NhdG9yRm9yT2JqZWN0V2l0aEltbW9ydGFsU3RydWN0dXJlRGVzdHJ1Y3RvcihzaXplb2Yo
SlNSb3BlU3RyaW5nKSk7CisgICAgICAgIAorICAgICAgICBMVmFsdWUgcmVzdWx0ID0gYWxsb2Nh
dGVDZWxsKAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIoJmFsbG9jYXRvciksCisgICAg
ICAgICAgICBtX291dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSksCisg
ICAgICAgICAgICBzbG93UGF0aCk7CisgICAgICAgIAorICAgICAgICBtX291dC5zdG9yZVB0ciht
X291dC5pbnRQdHJaZXJvLCByZXN1bHQsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOworICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtS2lkczsgKytpKQorICAgICAgICAgICAgbV9v
dXQuc3RvcmVQdHIoa2lkc1tpXSwgcmVzdWx0LCBtX2hlYXBzLkpTUm9wZVN0cmluZ19maWJlcnNb
aV0pOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1LaWRzOyBpIDwgSlNSb3BlU3RyaW5n
OjpzX21heEludGVybmFsUm9wZUxlbmd0aDsgKytpKQorICAgICAgICAgICAgbV9vdXQuc3RvcmVQ
dHIobV9vdXQuaW50UHRyWmVybywgcmVzdWx0LCBtX2hlYXBzLkpTUm9wZVN0cmluZ19maWJlcnNb
aV0pOworICAgICAgICBMVmFsdWUgZmxhZ3MgPSBtX291dC5sb2FkMzIoa2lkc1swXSwgbV9oZWFw
cy5KU1N0cmluZ19mbGFncyk7CisgICAgICAgIExWYWx1ZSBsZW5ndGggPSBtX291dC5sb2FkMzIo
a2lkc1swXSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpOworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAxOyBpIDwgbnVtS2lkczsgKytpKSB7CisgICAgICAgICAgICBmbGFncyA9IG1fb3V0LmJp
dEFuZChmbGFncywgbV9vdXQubG9hZDMyKGtpZHNbaV0sIG1faGVhcHMuSlNTdHJpbmdfZmxhZ3Mp
KTsKKyAgICAgICAgICAgIGxlbmd0aCA9IG1fb3V0LmFkZChsZW5ndGgsIG1fb3V0LmxvYWQzMihr
aWRzW2ldLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCkpOworICAgICAgICB9CisgICAgICAgIG1f
b3V0LnN0b3JlMzIoCisgICAgICAgICAgICBtX291dC5iaXRBbmQobV9vdXQuY29uc3RJbnQzMihK
U1N0cmluZzo6SXM4Qml0KSwgZmxhZ3MpLAorICAgICAgICAgICAgcmVzdWx0LCBtX2hlYXBzLkpT
U3RyaW5nX2ZsYWdzKTsKKyAgICAgICAgbV9vdXQuc3RvcmUzMihsZW5ndGgsIHJlc3VsdCwgbV9o
ZWFwcy5KU1N0cmluZ19sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sg
ZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihyZXN1bHQpOworICAgICAgICBtX291dC5qdW1wKGNv
bnRpbnVhdGlvbik7CisgICAgICAgIAorICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwg
Y29udGludWF0aW9uKTsKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdDsKKyAgICAg
ICAgc3dpdGNoIChudW1LaWRzKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHNsb3dS
ZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxsKAorICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJh
dGlvbihvcGVyYXRpb25NYWtlUm9wZTIpLCBtX2NhbGxGcmFtZSwga2lkc1swXSwga2lkc1sxXSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHNsb3dS
ZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxsKAorICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJh
dGlvbihvcGVyYXRpb25NYWtlUm9wZTMpLCBtX2NhbGxGcmFtZSwga2lkc1swXSwga2lkc1sxXSwg
a2lkc1syXSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAKKyAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIHNl
dEpTVmFsdWUobV9vdXQucGhpKG1fb3V0LmludDY0LCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7
CisgICAgfQorICAgIAogICAgIHZvaWQgY29tcGlsZVN0cmluZ0NoYXJBdCgpCiAgICAgewogICAg
ICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC0yMTE0LDcg
KzI2NDAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgIG1fb3V0LmJyYW5jaCgK
ICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgICAgICBpbmRleCwg
bV9vdXQubG9hZDMyKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSksCisgICAgICAgICAg
ICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNTdHJp
bmdfbGVuZ3RoKSksCiAgICAgICAgICAgICBzbG93UGF0aCwgZmFzdFBhdGgpOwogICAgICAgICAg
ICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZmFzdFBh
dGgsIHNsb3dQYXRoKTsKQEAgLTIyMTAsNyArMjczNiw4IEBAIHByaXZhdGU6CiAgICAgICAgIAog
ICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAgICBVbmNvdW50YWJsZSwgbm9WYWx1ZSgpLCAw
LAotICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKGluZGV4LCBtX291dC5sb2FkMzIoYmFz
ZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpKSk7CisgICAgICAgICAgICBtX291dC5hYm92ZU9y
RXF1YWwoCisgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJh
c2UsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSkpOwogICAgICAgICAKICAgICAgICAgTFZhbHVl
IHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUp
OwogICAgICAgICAKQEAgLTIzNDUsNiArMjg3MiwxNiBAQCBwcml2YXRlOgogICAgICAgICBtX291
dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICB9CiAgICAgCisgICAgdm9p
ZCBjb21waWxlR2V0Q2FsbGVlKCkKKyAgICB7CisgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9h
ZFB0cihhZGRyZXNzRm9yKEpTU3RhY2s6OkNhbGxlZSkpKTsKKyAgICB9CisgICAgCisgICAgdm9p
ZCBjb21waWxlR2V0U2NvcGUoKQorICAgIHsKKyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2Fk
UHRyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNGdW5jdGlvbl9zY29wZSkp
OworICAgIH0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVHZXRNeVNjb3BlKCkKICAgICB7CiAgICAg
ICAgIHNldEpTVmFsdWUobV9vdXQubG9hZFB0cihhZGRyZXNzRm9yKApAQCAtMjQ4OCwzNSArMzAy
NSwzNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgY29tcGlsZUNhbGxPckNvbnN0cnVjdCgp
CiAgICAgewotICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB1bmFjY2VwdGFibHkgc2xvdy4KLSAg
ICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMQor
ICAgICAgICBpbnQgZHVtbXlUaGlzQXJndW1lbnQgPSBtX25vZGUtPm9wKCkgPT0gQ2FsbCA/IDAg
OiAxOworICAgICAgICBpbnQgbnVtUGFzc2VkQXJncyA9IG1fbm9kZS0+bnVtQ2hpbGRyZW4oKSAt
IDE7CisgICAgICAgIGludCBudW1BcmdzID0gbnVtUGFzc2VkQXJncyArIGR1bW15VGhpc0FyZ3Vt
ZW50OwogICAgICAgICAKLSAgICAgICAgSl9KSVRPcGVyYXRpb25fRSBmdW5jdGlvbiA9Ci0gICAg
ICAgICAgICBtX25vZGUtPm9wKCkgPT0gQ2FsbCA/IG9wZXJhdGlvbkZUTENhbGwgOiBvcGVyYXRp
b25GVExDb25zdHJ1Y3Q7CisgICAgICAgIExWYWx1ZSBjYWxsZWUgPSBsb3dKU1ZhbHVlKG1fZ3Jh
cGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSk7CiAgICAgICAgIAotICAgICAgICBpbnQgZHVtbXlU
aGlzQXJndW1lbnQgPSBtX25vZGUtPm9wKCkgPT0gQ2FsbCA/IDAgOiAxOworICAgICAgICB1bnNp
Z25lZCBzdGFja21hcElEID0gbV9zdGFja21hcElEcysrOwogICAgICAgICAKLSAgICAgICAgaW50
IG51bVBhc3NlZEFyZ3MgPSBtX25vZGUtPm51bUNoaWxkcmVuKCkgLSAxOworICAgICAgICBWZWN0
b3I8TFZhbHVlPiBhcmd1bWVudHM7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29u
c3RJbnQ2NChzdGFja21hcElEKSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29u
c3RJbnQzMihzaXplT2ZDYWxsKCkpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjb25zdE51
bGwobV9vdXQucmVmOCkpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50
MzIoMSArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFt
ZUFuZFBDU2l6ZSArIG51bUFyZ3MpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjYWxsZWUp
OyAvLyBjYWxsZWUgLT4gJXJheAorICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGdldFVuZGVmKG1f
b3V0LmludDY0KSk7IC8vIGNvZGUgYmxvY2sKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChnZXRV
bmRlZihtX291dC5pbnQ2NCkpOyAvLyBzY29wZSBjaGFpbgorICAgICAgICBhcmd1bWVudHMuYXBw
ZW5kKGNhbGxlZSk7IC8vIGNhbGxlZSAtPiBzdGFjaworICAgICAgICBhcmd1bWVudHMuYXBwZW5k
KG1fb3V0LmNvbnN0SW50NjQobnVtQXJncykpOyAvLyBhcmd1bWVudCBjb3VudCBhbmQgemVyb3Mg
Zm9yIHRoZSB0YWcKKyAgICAgICAgaWYgKGR1bW15VGhpc0FyZ3VtZW50KQorICAgICAgICAgICAg
YXJndW1lbnRzLmFwcGVuZChnZXRVbmRlZihtX291dC5pbnQ2NCkpOworICAgICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7ICsraSkKKyAgICAgICAgICAgIGFyZ3VtZW50cy5h
cHBlbmQobG93SlNWYWx1ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSArIGkpKSk7CiAg
ICAgICAgIAotICAgICAgICBMVmFsdWUgY2FsbGVlRnJhbWUgPSBtX291dC5hZGQoCi0gICAgICAg
ICAgICBtX2NhbGxGcmFtZSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHNpemVvZihS
ZWdpc3RlcikgKiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2dyYXBoLmZyYW1lUmVnaXN0ZXJD
b3VudCgpKS5vZmZzZXQoKSkpOworICAgICAgICBjYWxsUHJlZmxpZ2h0KCk7CiAgICAgICAgIAot
ICAgICAgICBtX291dC5zdG9yZTMyKAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihudW1Q
YXNzZWRBcmdzICsgZHVtbXlUaGlzQXJndW1lbnQpLAotICAgICAgICAgICAgcGF5bG9hZEZvcihj
YWxsZWVGcmFtZSwgSlNTdGFjazo6QXJndW1lbnRDb3VudCkpOwotICAgICAgICBtX291dC5zdG9y
ZTY0KG1fY2FsbEZyYW1lLCBjYWxsZWVGcmFtZSwgbV9oZWFwcy5DYWxsRnJhbWVfY2FsbGVyRnJh
bWUpOwotICAgICAgICBtX291dC5zdG9yZTY0KAotICAgICAgICAgICAgbG93SlNWYWx1ZShtX2dy
YXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMCkpLAotICAgICAgICAgICAgYWRkcmVzc0ZvcihjYWxs
ZWVGcmFtZSwgSlNTdGFjazo6Q2FsbGVlKSk7CisgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQu
Y2FsbChtX291dC5wYXRjaHBvaW50SW50NjRJbnRyaW5zaWMoKSwgYXJndW1lbnRzKTsKKyAgICAg
ICAgc2V0SW5zdHJ1Y3Rpb25DYWxsaW5nQ29udmVudGlvbihjYWxsLCBMTFZNV2ViS2l0SlNDYWxs
Q29udik7CiAgICAgICAgIAotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFy
Z3M7ICsraSkgewotICAgICAgICAgICAgbV9vdXQuc3RvcmU2NCgKLSAgICAgICAgICAgICAgICBs
b3dKU1ZhbHVlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxICsgaSkpLAotICAgICAgICAg
ICAgICAgIGFkZHJlc3NGb3IoY2FsbGVlRnJhbWUsIHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50
KGkgKyBkdW1teVRoaXNBcmd1bWVudCkub2Zmc2V0KCkpKTsKLSAgICAgICAgfQorICAgICAgICBt
X2Z0bFN0YXRlLmpzQ2FsbHMuYXBwZW5kKEpTQ2FsbChzdGFja21hcElELCBtX25vZGUpKTsKICAg
ICAgICAgCi0gICAgICAgIHNldEpTVmFsdWUodm1DYWxsKG1fb3V0Lm9wZXJhdGlvbihmdW5jdGlv
biksIGNhbGxlZUZyYW1lKSk7CisgICAgICAgIHNldEpTVmFsdWUoY2FsbCk7CiAgICAgfQogICAg
IAogICAgIHZvaWQgY29tcGlsZUp1bXAoKQpAQCAtMjYyNyw3ICszMTY2LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAg
IG1fb3V0Lm5vdEVxdWFsKAotICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzIoc3RyaW5n
VmFsdWUsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9v
dXQubG9hZDMyTm9uTmVnYXRpdmUoc3RyaW5nVmFsdWUsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3Ro
KSwKICAgICAgICAgICAgICAgICAgICAgbV9vdXQuaW50MzJPbmUpLAogICAgICAgICAgICAgICAg
IGxvd0Jsb2NrKGRhdGEtPmZhbGxUaHJvdWdoKSwgbGVuZ3RoSXMxKTsKICAgICAgICAgICAgIApA
QCAtMjcwOCw2ICszMjQ3LDIyIEBAIHByaXZhdGU6CiAgICAgICAgIGluZm8ubV9pc0ludmFsaWRh
dGlvblBvaW50ID0gdHJ1ZTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlQ2hlY2tBcmd1
bWVudHNOb3RDcmVhdGVkKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghaXNFbXB0eVNwZWN1bGF0
aW9uKAorICAgICAgICAgICAgbV9zdGF0ZS52YXJpYWJsZXMoKS5vcGVyYW5kKAorICAgICAgICAg
ICAgICAgIG1fZ3JhcGguYXJndW1lbnRzUmVnaXN0ZXJGb3IobV9ub2RlLT5jb2RlT3JpZ2luKSku
bV90eXBlKSk7CisgICAgICAgIAorICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0gbV9ncmFw
aC5tYWNoaW5lQXJndW1lbnRzUmVnaXN0ZXJGb3IobV9ub2RlLT5jb2RlT3JpZ2luKTsKKyAgICAg
ICAgc3BlY3VsYXRlKEFyZ3VtZW50c0VzY2FwZWQsIG5vVmFsdWUoKSwgMCwgbV9vdXQubm90WmVy
bzY0KG1fb3V0LmxvYWQ2NChhZGRyZXNzRm9yKHJlZykpKSk7CisgICAgfQorICAgIAorICAgIHZv
aWQgY29tcGlsZUNvdW50RXhlY3V0aW9uKCkKKyAgICB7CisgICAgICAgIFR5cGVkUG9pbnRlciBj
b3VudGVyID0gbV9vdXQuYWJzb2x1dGUobV9ub2RlLT5leGVjdXRpb25Db3VudGVyKCktPmFkZHJl
c3MoKSk7CisgICAgICAgIG1fb3V0LnN0b3JlNjQobV9vdXQuYWRkKG1fb3V0LmxvYWQ2NChjb3Vu
dGVyKSwgbV9vdXQuY29uc3RJbnQ2NCgxKSksIGNvdW50ZXIpOworICAgIH0KKyAgICAKICAgICBU
eXBlZFBvaW50ZXIgYmFzZUluZGV4KEluZGV4ZWRBYnN0cmFjdEhlYXAmIGhlYXAsIExWYWx1ZSBz
dG9yYWdlLCBMVmFsdWUgaW5kZXgsIEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIHJldHVybiBt
X291dC5iYXNlSW5kZXgoCkBAIC0yOTI0LDcgKzM0NzksNyBAQCBwcml2YXRlOgogICAgIHsKICAg
ICAgICAgaWYgKEpTQXJyYXlCdWZmZXJWaWV3KiB2aWV3ID0gbV9ncmFwaC50cnlHZXRGb2xkYWJs
ZVZpZXcoYmFzZUVkZ2Uubm9kZSgpLCBhcnJheU1vZGUpKQogICAgICAgICAgICAgcmV0dXJuIG1f
b3V0LmNvbnN0SW50MzIodmlldy0+bGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gbV9vdXQubG9h
ZDMyKGJhc2UsIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZpZXdfbGVuZ3RoKTsKKyAgICAgICAgcmV0
dXJuIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZp
ZXdfbGVuZ3RoKTsKICAgICB9CiAgICAgCiAgICAgTFZhbHVlIHR5cGVkQXJyYXlMZW5ndGgoRWRn
ZSBiYXNlRWRnZSwgQXJyYXlNb2RlIGFycmF5TW9kZSkKQEAgLTI5NDgsNyArMzUwMyw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbikpOwog
ICAgICAgICBjYXNlIFN0cmluZ1VzZTogewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZ1ZhbHVl
ID0gbG93U3RyaW5nKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIGxlbmd0
aCA9IG1fb3V0LmxvYWQzMihzdHJpbmdWYWx1ZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpOwor
ICAgICAgICAgICAgTFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0cmlu
Z1ZhbHVlLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCk7CiAgICAgICAgICAgICByZXR1cm4gbV9v
dXQubm90RXF1YWwobGVuZ3RoLCBtX291dC5pbnQzMlplcm8pOwogICAgICAgICB9CiAgICAgICAg
IGNhc2UgVW50eXBlZFVzZTogewpAQCAtMzA4Miw3ICszNjM3LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uKQogICAgIHsKICAgICAgICAgTFZhbHVlIGlzTm90
SW5Cb3VuZHMgPSBtX291dC5hYm92ZU9yRXF1YWwoCi0gICAgICAgICAgICBpbmRleCwgbV9vdXQu
bG9hZDMyKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpOworICAgICAg
ICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0
dGVyZmx5X3B1YmxpY0xlbmd0aCkpOwogICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCku
aXNJbkJvdW5kcygpKSB7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RJbkJvdW5kc0Nhc2Ug
PQogICAgICAgICAgICAgICAgIEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiUHV0QnlWYWwgbm90IGlu
IGJvdW5kcyIpKTsKQEAgLTMwOTQsNyArMzY0OSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBM
QmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdEluQm91bmRzQ2FzZSwgcGVy
Zm9ybVN0b3JlKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSBpc091dE9m
Qm91bmRzID0gbV9vdXQuYWJvdmVPckVxdWFsKAotICAgICAgICAgICAgICAgIGluZGV4LCBtX291
dC5sb2FkMzIoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfdmVjdG9yTGVuZ3RoKSk7CisgICAg
ICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVh
cHMuQnV0dGVyZmx5X3ZlY3Rvckxlbmd0aCkpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKSkKICAgICAgICAgICAg
ICAgICBzcGVjdWxhdGUoT3V0T2ZCb3VuZHMsIG5vVmFsdWUoKSwgMCwgaXNPdXRPZkJvdW5kcyk7
CkBAIC0zNzE4LDYgKzQyNzMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgS25vd25JbnQzMlVzZToKICAgICAgICAgY2FzZSBLbm93bk51bWJlclVzZToKKyAg
ICAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKICAgICAgICAgICAgIEFTU0VSVCghbV9pbnRlcnBy
ZXRlci5uZWVkc1R5cGVDaGVjayhlZGdlKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBJbnQzMlVzZToKQEAgLTM3NDEsNiArNDI5NywxMiBAQCBwcml2YXRlOgogICAgICAgICBj
YXNlIFN0cmluZ1VzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAg
IHNwZWN1bGF0ZVN0cmluZ09iamVjdChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlU3Ry
aW5nT3JTdHJpbmdPYmplY3QoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBSZWFsTnVtYmVyVXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlUmVhbE51bWJlcihlZGdlKTsK
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzkyOCw2ICs0NDkwLDU1IEBAIHByaXZhdGU6CiAgICAg
ICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKICAgICB9CiAgICAgCisg
ICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAg
aWYgKCFtX2ludGVycHJldGVyLm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmdPYmplY3Qp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5n
T2JqZWN0Rm9yQ2VsbChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKKyAgICAgICAgbV9pbnRlcnByZXRl
ci5maWx0ZXIoZWRnZSwgU3BlY1N0cmluZ09iamVjdCk7CisgICAgfQorICAgIAorICAgIHZvaWQg
c3BlY3VsYXRlU3RyaW5nT3JTdHJpbmdPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAg
aWYgKCFtX2ludGVycHJldGVyLm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmcgfCBTcGVj
U3RyaW5nT2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIExC
YXNpY0Jsb2NrIG5vdFN0cmluZyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3BlY3VsYXRlIFN0
cmluZ09yU3RyaW5nT2JqZWN0IG5vdCBzdHJpbmcgY2FzZSIpKTsKKyAgICAgICAgTEJhc2ljQmxv
Y2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJTcGVjdWxhdGUgU3RyaW5n
T3JTdHJpbmdPYmplY3QgY29udGludWF0aW9uIikpOworICAgICAgICAKKyAgICAgICAgTFZhbHVl
IHN0cnVjdHVyZSA9IG1fb3V0LmxvYWRQdHIobG93Q2VsbChlZGdlKSwgbV9oZWFwcy5KU0NlbGxf
c3RydWN0dXJlKTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgbV9vdXQuZXF1
YWwoc3RydWN0dXJlLCBtX291dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQo
KSkpLAorICAgICAgICAgICAgY29udGludWF0aW9uLCBub3RTdHJpbmcpOworICAgICAgICAKKyAg
ICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RTdHJpbmcsIGNv
bnRpbnVhdGlvbik7CisgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvclN0cnVjdHVyZShl
ZGdlLCBzdHJ1Y3R1cmUpOworICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAg
ICAgIAorICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAg
ICAgICAgCisgICAgICAgIG1faW50ZXJwcmV0ZXIuZmlsdGVyKGVkZ2UsIFNwZWNTdHJpbmcgfCBT
cGVjU3RyaW5nT2JqZWN0KTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdP
YmplY3RGb3JDZWxsKEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBzcGVj
dWxhdGVTdHJpbmdPYmplY3RGb3JTdHJ1Y3R1cmUoZWRnZSwgbV9vdXQubG9hZFB0cihjZWxsLCBt
X2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxh
dGVTdHJpbmdPYmplY3RGb3JTdHJ1Y3R1cmUoRWRnZSBlZGdlLCBMVmFsdWUgc3RydWN0dXJlKQor
ICAgIHsKKyAgICAgICAgU3RydWN0dXJlKiBzdHJpbmdPYmplY3RTdHJ1Y3R1cmUgPQorICAgICAg
ICAgICAgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2RlLT5jb2RlT3JpZ2luKS0+c3RyaW5n
T2JqZWN0U3RydWN0dXJlKCk7CisgICAgICAgIAorICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2Rl
KGVkZ2UpLm1fY3VycmVudEtub3duU3RydWN0dXJlLmlzU3Vic2V0T2YoU3RydWN0dXJlU2V0KHN0
cmluZ09iamVjdFN0cnVjdHVyZSkpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAg
ICAgICAgc3BlY3VsYXRlKAorICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0LCBub1ZhbHVlKCks
IDAsCisgICAgICAgICAgICBtX291dC5ub3RFcXVhbChzdHJ1Y3R1cmUsIHdlYWtQb2ludGVyKHN0
cmluZ09iamVjdFN0cnVjdHVyZSkpKTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVO
b25OdWxsT2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewogICAgICAgICBMVmFs
dWUgc3RydWN0dXJlID0gbV9vdXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1
cmUpOwpAQCAtNDEwNiwxOCArNDcxNywxMyBAQCBwcml2YXRlOgogICAgICAgICBpZiAobW9kZSA9
PSBOb0V4Y2VwdGlvbnMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgICAgICBM
QmFzaWNCbG9jayBkaWRIYXZlRXhjZXB0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJEaWQg
aGF2ZSBleGNlcHRpb24iKSk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiRXhjZXB0aW9uIGNoZWNrIGNvbnRpbnVhdGlvbiIpKTsKICAg
ICAgICAgCiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm82
NChtX291dC5sb2FkNjQobV9vdXQuYWJzb2x1dGUodm0oKS5hZGRyZXNzT2ZFeGNlcHRpb24oKSkp
KSwKLSAgICAgICAgICAgIGRpZEhhdmVFeGNlcHRpb24sIGNvbnRpbnVhdGlvbik7Ci0gICAgICAg
IAotICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGRpZEhhdmVF
eGNlcHRpb24sIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgZXhjZXB0
aW9ucy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgotICAg
ICAgICBtX291dC5jcmFzaCgpOworICAgICAgICAgICAgbV9oYW5kbGVFeGNlcHRpb25zLCBjb250
aW51YXRpb24pOwogICAgICAgICAKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9u
LCBsYXN0TmV4dCk7CisgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbik7CiAgICAg
fQogICAgIAogICAgIExCYXNpY0Jsb2NrIGxvd0Jsb2NrKEJhc2ljQmxvY2sqIGJsb2NrKQpAQCAt
NDEzMyw4ICs0NzM5LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBlbmRPU1JFeGl0KAogICAg
ICAgICBFeGl0S2luZCBraW5kLCBGb3JtYXR0ZWRWYWx1ZSBsb3dWYWx1ZSwgTm9kZSogaGlnaFZh
bHVlLCBMVmFsdWUgZmFpbENvbmRpdGlvbikKICAgICB7Ci0gICAgICAgIGlmICh2ZXJib3NlQ29t
cGlsYXRpb25FbmFibGVkKCkpCisgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVk
KCkpIHsKICAgICAgICAgICAgIGRhdGFMb2coIiAgICBPU1IgZXhpdCAjIiwgbV9mdGxTdGF0ZS5q
aXRDb2RlLT5vc3JFeGl0LnNpemUoKSwgIiB3aXRoIGF2YWlsYWJpbGl0eTogIiwgbV9hdmFpbGFi
aWxpdHksICJcbiIpOworICAgICAgICAgICAgaWYgKCFtX2F2YWlsYWJsZVJlY292ZXJpZXMuaXNF
bXB0eSgpKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICAgICAgQXZhaWxhYmxlIHJlY292
ZXJpZXM6ICIsIGxpc3REdW1wKG1fYXZhaWxhYmxlUmVjb3ZlcmllcyksICJcbiIpOworICAgICAg
ICB9CiAKICAgICAgICAgQVNTRVJUKG1fZnRsU3RhdGUuaml0Q29kZS0+b3NyRXhpdC5zaXplKCkg
PT0gbV9mdGxTdGF0ZS5maW5hbGl6ZXItPm9zckV4aXQuc2l6ZSgpKTsKICAgICAgICAgCkBAIC00
MTc4LDcgKzQ3ODcsNiBAQCBwcml2YXRlOgogICAgICAgICBPU1JFeGl0JiBleGl0LCBFeGl0QXJn
dW1lbnRMaXN0JiBhcmd1bWVudHMsIEZvcm1hdHRlZFZhbHVlIGxvd1ZhbHVlLAogICAgICAgICBD
b2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgewotICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1f
Y2FsbEZyYW1lKTsKICAgICAgICAgaWYgKCEhbG93VmFsdWUpCiAgICAgICAgICAgICBhcmd1bWVu
dHMuYXBwZW5kKGxvd1ZhbHVlLnZhbHVlKCkpOwogICAgICAgICAKQEAgLTQyNDYsNyArNDg1NCw3
IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBleGl0Lm1fc3RhY2ttYXBJRCA9IG1fc3RhY2tt
YXBJRHMrKzsKICAgICAgICAgYXJndW1lbnRzLmluc2VydCgwLCBtX291dC5jb25zdEludDMyKE1h
Y3JvQXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkpKTsKLSAgICAgICAgYXJndW1l
bnRzLmluc2VydCgwLCBtX291dC5jb25zdEludDMyKGV4aXQubV9zdGFja21hcElEKSk7CisgICAg
ICAgIGFyZ3VtZW50cy5pbnNlcnQoMCwgbV9vdXQuY29uc3RJbnQ2NChleGl0Lm1fc3RhY2ttYXBJ
RCkpOwogICAgICAgICAKICAgICAgICAgbV9vdXQuY2FsbChtX291dC5zdGFja21hcEludHJpbnNp
YygpLCBhcmd1bWVudHMpOwogICAgIH0KQEAgLTQyNjAsNiArNDg2OCwxOSBAQCBwcml2YXRlOgog
ICAgICAgICBpZiAodHJ5VG9TZXRDb25zdGFudEV4aXRBcmd1bWVudChleGl0LCBpbmRleCwgbm9k
ZSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAorICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9hdmFpbGFibGVSZWNvdmVyaWVzLnNpemUoKTsgKytpKSB7CisgICAgICAg
ICAgICBBdmFpbGFibGVSZWNvdmVyeSByZWNvdmVyeSA9IG1fYXZhaWxhYmxlUmVjb3Zlcmllc1tp
XTsKKyAgICAgICAgICAgIGlmIChyZWNvdmVyeS5ub2RlKCkgIT0gbm9kZSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZXhpdC5tX3ZhbHVlc1tp
bmRleF0gPSBFeGl0VmFsdWU6OnJlY292ZXJ5KAorICAgICAgICAgICAgICAgIHJlY292ZXJ5Lm9w
Y29kZSgpLCBhcmd1bWVudHMuc2l6ZSgpLCBhcmd1bWVudHMuc2l6ZSgpICsgMSwKKyAgICAgICAg
ICAgICAgICByZWNvdmVyeS5mb3JtYXQoKSk7CisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5k
KHJlY292ZXJ5LmxlZnQoKSk7CisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJlY292ZXJ5
LnJpZ2h0KCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAogICAg
ICAgICBMb3dlcmVkTm9kZVZhbHVlIHZhbHVlID0gbV9pbnQzMlZhbHVlcy5nZXQobm9kZSk7CiAg
ICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewogICAgICAgICAgICAgYWRkRXhpdEFyZ3VtZW50
KGV4aXQsIGFyZ3VtZW50cywgaW5kZXgsIFZhbHVlRm9ybWF0SW50MzIsIHZhbHVlLnZhbHVlKCkp
OwpAQCAtNDMyOSw2ICs0OTUwLDI5IEBAIHByaXZhdGU6CiAgICAgICAgIGFyZ3VtZW50cy5hcHBl
bmQodmFsdWUpOwogICAgIH0KICAgICAKKyAgICBib29sIGRvZXNLaWxsKEVkZ2UgZWRnZSkKKyAg
ICB7CisgICAgICAgIGlmIChlZGdlLmRvZXNOb3RLaWxsKCkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAoZWRnZS0+aGFzQ29uc3RhbnQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIHZvaWQgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgIE5vZGUqIG5vZGUs
IFJlY292ZXJ5T3Bjb2RlIG9wY29kZSwgTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCwgVmFsdWVG
b3JtYXQgZm9ybWF0KQorICAgIHsKKyAgICAgICAgbV9hdmFpbGFibGVSZWNvdmVyaWVzLmFwcGVu
ZChBdmFpbGFibGVSZWNvdmVyeShub2RlLCBvcGNvZGUsIGxlZnQsIHJpZ2h0LCBmb3JtYXQpKTsK
KyAgICB9CisgICAgCisgICAgdm9pZCBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgRWRn
ZSBlZGdlLCBSZWNvdmVyeU9wY29kZSBvcGNvZGUsIExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQs
IFZhbHVlRm9ybWF0IGZvcm1hdCkKKyAgICB7CisgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5
KGVkZ2Uubm9kZSgpLCBvcGNvZGUsIGxlZnQsIHJpZ2h0LCBmb3JtYXQpOworICAgIH0KKyAgICAK
ICAgICB2b2lkIHNldEludDMyKE5vZGUqIG5vZGUsIExWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAg
ICAgIG1faW50MzJWYWx1ZXMuc2V0KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFsdWUsIG1faGln
aEJsb2NrKSk7CkBAIC00NDMxLDM1ICs1MDc1LDM3IEBAIHByaXZhdGU6CiAgICAgfQogICAgIFR5
cGVkUG9pbnRlciBwYXlsb2FkRm9yKExWYWx1ZSBiYXNlLCBpbnQgb3BlcmFuZCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZGRyZXNzRm9yKGJhc2UsIG9wZXJhbmQsIE9CSkVDVF9PRkZTRVRPRihF
bmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpOworICAgICAgICByZXR1cm4g
YWRkcmVzc0ZvcihiYXNlLCBvcGVyYW5kLCBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CiAgICAgVHlw
ZWRQb2ludGVyIHRhZ0ZvcihMVmFsdWUgYmFzZSwgaW50IG9wZXJhbmQpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRkcmVzc0ZvcihiYXNlLCBvcGVyYW5kLCBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOworICAgICAgICByZXR1cm4gYWRkcmVzc0Zv
cihiYXNlLCBvcGVyYW5kLCBUYWdPZmZzZXQpOwogICAgIH0KLSAgICBUeXBlZFBvaW50ZXIgYWRk
cmVzc0ZvcihpbnQgb3BlcmFuZCkKKyAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0ZvcihpbnQgb3Bl
cmFuZCwgcHRyZGlmZl90IG9mZnNldCA9IDApCiAgICAgewotICAgICAgICByZXR1cm4gYWRkcmVz
c0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZCk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKFZp
cnR1YWxSZWdpc3RlcihvcGVyYW5kKSwgb2Zmc2V0KTsKICAgICB9Ci0gICAgVHlwZWRQb2ludGVy
IGFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQpCisgICAgVHlwZWRQb2ludGVyIGFk
ZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQsIHB0cmRpZmZfdCBvZmZzZXQgPSAwKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zm
c2V0KCkpOworICAgICAgICBpZiAob3BlcmFuZC5pc0xvY2FsKCkpCisgICAgICAgICAgICByZXR1
cm4gYWRkcmVzc0ZvcihtX2NhcHR1cmVkLCBvcGVyYW5kLm9mZnNldCgpLCBvZmZzZXQpOworICAg
ICAgICByZXR1cm4gYWRkcmVzc0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZC5vZmZzZXQoKSwgb2Zm
c2V0KTsKICAgICB9CiAgICAgVHlwZWRQb2ludGVyIHBheWxvYWRGb3IoaW50IG9wZXJhbmQpCiAg
ICAgewotICAgICAgICByZXR1cm4gcGF5bG9hZEZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZCk7Cisg
ICAgICAgIHJldHVybiBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKSk7CiAgICAg
fQogICAgIFR5cGVkUG9pbnRlciBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHBheWxvYWRGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zm
c2V0KCkpOworICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihvcGVyYW5kLCBQYXlsb2FkT2Zmc2V0
KTsKICAgICB9CiAgICAgVHlwZWRQb2ludGVyIHRhZ0ZvcihpbnQgb3BlcmFuZCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiB0YWdGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQpOworICAgICAgICByZXR1
cm4gdGFnRm9yKFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKSk7CiAgICAgfQogICAgIFR5cGVkUG9p
bnRlciB0YWdGb3IoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1
cm4gdGFnRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5kLm9mZnNldCgpKTsKKyAgICAgICAgcmV0dXJu
IGFkZHJlc3NGb3Iob3BlcmFuZCwgVGFnT2Zmc2V0KTsKICAgICB9CiAgICAgCiAgICAgVk0mIHZt
KCkgeyByZXR1cm4gbV9ncmFwaC5tX3ZtOyB9CkBAIC00NDcxLDkgKzUxMTcsMTEgQEAgcHJpdmF0
ZToKICAgICBPdXRwdXQgbV9vdXQ7CiAgICAgCiAgICAgTEJhc2ljQmxvY2sgbV9wcm9sb2d1ZTsK
KyAgICBMQmFzaWNCbG9jayBtX2hhbmRsZUV4Y2VwdGlvbnM7CiAgICAgSGFzaE1hcDxCYXNpY0Js
b2NrKiwgTEJhc2ljQmxvY2s+IG1fYmxvY2tzOwogICAgIAogICAgIExWYWx1ZSBtX2NhbGxGcmFt
ZTsKKyAgICBMVmFsdWUgbV9jYXB0dXJlZDsKICAgICBMVmFsdWUgbV90YWdUeXBlTnVtYmVyOwog
ICAgIExWYWx1ZSBtX3RhZ01hc2s7CiAgICAgCkBAIC00NDg5LDYgKzUxMzcsOCBAQCBwcml2YXRl
OgogICAgIAogICAgIE9wZXJhbmRzPEF2YWlsYWJpbGl0eT4gbV9hdmFpbGFiaWxpdHk7CiAgICAg
CisgICAgVmVjdG9yPEF2YWlsYWJsZVJlY292ZXJ5LCAzPiBtX2F2YWlsYWJsZVJlY292ZXJpZXM7
CisgICAgCiAgICAgSW5QbGFjZUFic3RyYWN0U3RhdGUgbV9zdGF0ZTsKICAgICBBYnN0cmFjdElu
dGVycHJldGVyPEluUGxhY2VBYnN0cmFjdFN0YXRlPiBtX2ludGVycHJldGVyOwogICAgIEJhc2lj
QmxvY2sqIG1faGlnaEJsb2NrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
U1JFbnRyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
U1JFbnRyeS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT1NSRW50cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBAIHZvaWQq
IHByZXBhcmVPU1JFbnRyeSgKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIENvZGVC
bG9jayogYmFzZWxpbmUgPSBkZmdDb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigpOworICAgIEV4
ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlID0gZGZnQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUo
KTsKICAgICBERkc6OkpJVENvZGUqIGRmZ0NvZGUgPSBkZmdDb2RlQmxvY2stPmppdENvZGUoKS0+
ZGZnKCk7CiAgICAgRm9yT1NSRW50cnlKSVRDb2RlKiBlbnRyeUNvZGUgPSBlbnRyeUNvZGVCbG9j
ay0+aml0Q29kZSgpLT5mdGxGb3JPU1JFbnRyeSgpOwogICAgIApAQCAtODAsNyArODEsNyBAQCB2
b2lkKiBwcmVwYXJlT1NSRW50cnkoCiAgICAgICAgIHNjcmF0Y2hbbG9jYWxdID0gSlNWYWx1ZTo6
ZW5jb2RlKHZhbHVlcy5sb2NhbChsb2NhbCkpOwogICAgIAogICAgIGludCBzdGFja0ZyYW1lU2l6
ZSA9IGVudHJ5Q29kZS0+Y29tbW9uLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFu
ZEV4aXQoKTsKLSAgICBpZiAoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJl
Z2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKHN0YWNrRnJhbWVTaXplKS5vZmZzZXQo
KV0pKSB7CisgICAgaWYgKCF2bS5pbnRlcnByZXRlci0+c3RhY2soKS5lbnN1cmVDYXBhY2l0eUZv
cigmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoc3RhY2tGcmFtZVNp
emUgLSAxKS5vZmZzZXQoKV0pKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkp
CiAgICAgICAgICAgICBkYXRhTG9nKCIgICAgT1NSIGZhaWxlZCBiZWNhdXNlIHN0YWNrIGdyb3d0
aCBmYWlsZWQuXG4iKTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC04OCw3ICs4OSw5IEBAIHZvaWQq
IHByZXBhcmVPU1JFbnRyeSgKICAgICAKICAgICBleGVjLT5zZXRDb2RlQmxvY2soZW50cnlDb2Rl
QmxvY2spOwogICAgIAotICAgIHZvaWQqIHJlc3VsdCA9IGVudHJ5Q29kZS0+YWRkcmVzc0ZvckNh
bGwoKS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgIHZvaWQqIHJlc3VsdCA9IGVudHJ5Q29kZS0+
YWRkcmVzc0ZvckNhbGwoCisgICAgICAgIHZtLCBleGVjdXRhYmxlLCBBcml0eUNoZWNrTm90UmVx
dWlyZWQsCisgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpLmV4ZWN1dGFi
bGVBZGRyZXNzKCk7CiAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgZGF0
YUxvZygiICAgIEVudHJ5IHdpbGwgc3VjY2VlZCwgZ29pbmcgdG8gYWRkcmVzcyIsIFJhd1BvaW50
ZXIocmVzdWx0KSwgIlxuIik7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9TUkV4aXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9TUkV4aXQuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPU1JFeGl0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsMTEgQEAgc3RydWN0
IE9TUkV4aXQgOiBwdWJsaWMgREZHOjpPU1JFeGl0QmFzZQogICAgIHVpbnQzMl90IG1fc3RhY2tt
YXBJRDsKICAgICAKICAgICBDb2RlTG9jYXRpb25KdW1wIGNvZGVMb2NhdGlvbkZvclJlcGF0Y2go
Q29kZUJsb2NrKiBmdGxDb2RlQmxvY2spIGNvbnN0OworICAgIAorICAgIGJvb2wgY29uc2lkZXJB
ZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaykKKyAg
ICB7CisgICAgICAgIHJldHVybiBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50
RXhpdFNpdGUocHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRGcm9tRlRMKTsKKyAgICB9CiB9OwogCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM1LDcgKzM1LDkgQEAKICNpbmNsdWRlICJGVExPU1JFeGl0LmgiCiAjaW5jbHVkZSAiRlRM
U2F2ZVJlc3RvcmUuaCIKICNpbmNsdWRlICJPcGVyYW5kc0lubGluZXMuaCIKKyNpbmNsdWRlICJN
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
KyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCIKICNpbmNs
dWRlICJSZXBhdGNoQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsK
QEAgLTYyLDkgKzY0LDEwIEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgIAogICAgIC8v
IFdlIG5lZWQgc2NyYXRjaCBzcGFjZSB0byBzYXZlIGFsbCByZWdpc3RlcnMgYW5kIHRvIGJ1aWxk
IHVwIHRoZSBKU1N0YWNrLgogICAgIC8vIFVzZSBhIHNjcmF0Y2ggYnVmZmVyIHRvIHRyYW5zZmVy
IGFsbCB2YWx1ZXMuCi0gICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLT5zY3Jh
dGNoQnVmZmVyRm9yU2l6ZShzaXplb2YoRW5jb2RlZEpTVmFsdWUpICogZXhpdC5tX3ZhbHVlcy5z
aXplKCkgKyByZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKTsKKyAgICBTY3JhdGNo
QnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0tPnNjcmF0Y2hCdWZmZXJGb3JTaXplKHNpemVvZihF
bmNvZGVkSlNWYWx1ZSkgKiBleGl0Lm1fdmFsdWVzLnNpemUoKSArIHJlcXVpcmVkU2NyYXRjaE1l
bW9yeVNpemVJbkJ5dGVzKCkgKyBqaXRDb2RlLT51bndpbmRJbmZvLm1fcmVnaXN0ZXJzLnNpemUo
KSAqIHNpemVvZih1aW50NjRfdCkpOwogICAgIEVuY29kZWRKU1ZhbHVlKiBzY3JhdGNoID0gc2Ny
YXRjaEJ1ZmZlciA/IHN0YXRpY19jYXN0PEVuY29kZWRKU1ZhbHVlKj4oc2NyYXRjaEJ1ZmZlci0+
ZGF0YUJ1ZmZlcigpKSA6IDA7CiAgICAgY2hhciogcmVnaXN0ZXJTY3JhdGNoID0gYml0d2lzZV9j
YXN0PGNoYXIqPihzY3JhdGNoICsgZXhpdC5tX3ZhbHVlcy5zaXplKCkpOworICAgIHVpbnQ2NF90
KiB1bndpbmRTY3JhdGNoID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4ocmVnaXN0ZXJTY3JhdGNo
ICsgcmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSk7CiAgICAgCiAgICAgLy8gTWFr
ZSBzdXJlIHRoYXQgc2F2ZUFsbFJlZ2lzdGVycygpIGhhcyBhIHBsYWNlIG9uIHRvcCBvZiB0aGUg
c3RhY2sgdG8gc3BpbGwgdGhpbmdzLiBUaGF0CiAgICAgLy8gZnVuY3Rpb24gZXhwZWN0cyB0byBi
ZSBhYmxlIHRvIHVzZSB0b3Agb2Ygc3RhY2sgZm9yIHNjcmF0Y2ggbWVtb3J5LgpAQCAtNzUsMTgg
Kzc4LDI3IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgIGppdC5wb3AoR1BSSW5mbzo6
cmVnVDApOwogICAgIGppdC5wb3AoR1BSSW5mbzo6cmVnVDApOwogICAgIAorICAgIGlmICh2bS0+
bV9wZXJCeXRlY29kZVByb2ZpbGVyICYmIGNvZGVCbG9jay0+aml0Q29kZSgpLT5kZmdDb21tb24o
KS0+Y29tcGlsYXRpb24pIHsKKyAgICAgICAgUHJvZmlsZXI6OkRhdGFiYXNlJiBkYXRhYmFzZSA9
ICp2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyOworICAgICAgICBQcm9maWxlcjo6Q29tcGlsYXRp
b24qIGNvbXBpbGF0aW9uID0gY29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5jb21w
aWxhdGlvbi5nZXQoKTsKKyAgICAgICAgCisgICAgICAgIFByb2ZpbGVyOjpPU1JFeGl0KiBwcm9m
aWxlckV4aXQgPSBjb21waWxhdGlvbi0+YWRkT1NSRXhpdCgKKyAgICAgICAgICAgIGV4aXRJRCwg
UHJvZmlsZXI6Ok9yaWdpblN0YWNrKGRhdGFiYXNlLCBjb2RlQmxvY2ssIGV4aXQubV9jb2RlT3Jp
Z2luKSwKKyAgICAgICAgICAgIGV4aXQubV9raW5kLCBpc1dhdGNocG9pbnQoZXhpdC5tX2tpbmQp
KTsKKyAgICAgICAgaml0LmFkZDY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBDQ2Fs
bEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhwcm9maWxlckV4aXQtPmNvdW50ZXJBZGRyZXNzKCkp
KTsKKyAgICB9CisKICAgICAvLyBUaGUgcmVtYWluaW5nIGNvZGUgYXNzdW1lcyB0aGF0IFNQL0ZQ
IGFyZSBpbiB0aGUgc2FtZSBzdGF0ZSB0aGF0IHRoZXkgd2VyZSBpbiB0aGUgRlRMJ3MKICAgICAv
LyBjYWxsIGZyYW1lLgogICAgIAogICAgIC8vIEdldCB0aGUgY2FsbCBmcmFtZSBhbmQgdGFnIHRo
aW5naWVzLgogICAgIC8vIFJlc3RvcmUgdGhlIGV4aXRpbmcgZnVuY3Rpb24ncyBjYWxsRnJhbWUg
dmFsdWUgaW50byBhIHJlZ1Q0Ci0gICAgcmVjb3JkLT5sb2NhdGlvbnNbMF0ucmVzdG9yZUludG8o
aml0LCBqaXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVnVDQp
OwogICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoVGFnVHlwZU51bWJl
ciksIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CiAgICAgaml0Lm1vdmUoTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW02NChUYWdNYXNrKSwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVy
KTsKICAgICAKICAgICAvLyBEbyBzb21lIHZhbHVlIHByb2ZpbGluZy4KICAgICBpZiAoZXhpdC5t
X3Byb2ZpbGVWYWx1ZUZvcm1hdCAhPSBJbnZhbGlkVmFsdWVGb3JtYXQpIHsKLSAgICAgICAgcmVj
b3JkLT5sb2NhdGlvbnNbMV0ucmVzdG9yZUludG8oaml0LCBqaXRDb2RlLT5zdGFja21hcHMsIHJl
Z2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICByZWNvcmQtPmxvY2F0aW9u
c1swXS5yZXN0b3JlSW50byhqaXQsIGppdENvZGUtPnN0YWNrbWFwcywgcmVnaXN0ZXJTY3JhdGNo
LCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgICAgIHJlYm94QWNjb3JkaW5nVG9Gb3JtYXQoCiAgICAg
ICAgICAgICBleGl0Lm1fcHJvZmlsZVZhbHVlRm9ybWF0LCBqaXQsIEdQUkluZm86OnJlZ1QwLCBH
UFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDIpOwogICAgICAgICAKQEAgLTEzMCw3ICsxNDIs
NDUgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoCiAgICAgICAgIGNhc2UgRXhpdFZhbHVlSW5K
U1N0YWNrQXNJbnQzMjoKICAgICAgICAgY2FzZSBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDUyOgog
ICAgICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzRG91YmxlOgotICAgICAgICAgICAgaml0
LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IodmFsdWUudmlydHVhbFJlZ2lzdGVy
KCksIEdQUkluZm86OnJlZ1Q0KSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgaml0Lmxv
YWQ2NChBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IodmFsdWUudmlydHVhbFJlZ2lzdGVyKCkp
LCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAg
ICAgICBjYXNlIEV4aXRWYWx1ZVJlY292ZXJ5OgorICAgICAgICAgICAgcmVjb3JkLT5sb2NhdGlv
bnNbdmFsdWUucmlnaHRSZWNvdmVyeUFyZ3VtZW50KCldLnJlc3RvcmVJbnRvKAorICAgICAgICAg
ICAgICAgIGppdCwgaml0Q29kZS0+c3RhY2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86
OnJlZ1QxKTsKKyAgICAgICAgICAgIHJlY29yZC0+bG9jYXRpb25zW3ZhbHVlLmxlZnRSZWNvdmVy
eUFyZ3VtZW50KCldLnJlc3RvcmVJbnRvKAorICAgICAgICAgICAgICAgIGppdCwgaml0Q29kZS0+
c3RhY2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAg
IHN3aXRjaCAodmFsdWUucmVjb3ZlcnlPcGNvZGUoKSkgeworICAgICAgICAgICAgY2FzZSBBZGRS
ZWNvdmVyeToKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnJlY292ZXJ5Rm9ybWF0KCkp
IHsKKyAgICAgICAgICAgICAgICBjYXNlIFZhbHVlRm9ybWF0SW50MzI6CisgICAgICAgICAgICAg
ICAgICAgIGppdC5hZGQzMihHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDApOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFZhbHVlRm9ybWF0SW50
NTI6CisgICAgICAgICAgICAgICAgICAgIGppdC5hZGQ2NChHUFJJbmZvOjpyZWdUMSwgR1BSSW5m
bzo6cmVnVDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFN1YlJlY292ZXJ5OgorICAgICAgICAg
ICAgICAgIHN3aXRjaCAodmFsdWUucmVjb3ZlcnlGb3JtYXQoKSkgeworICAgICAgICAgICAgICAg
IGNhc2UgVmFsdWVGb3JtYXRJbnQzMjoKKyAgICAgICAgICAgICAgICAgICAgaml0LnN1YjMyKEdQ
UkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVGb3JtYXRJbnQ1MjoKKyAgICAgICAgICAgICAg
ICAgICAgaml0LnN1YjY0KEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CkBAIC0xNDEsNiArMTkx
LDEzNyBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigKICAgICAgICAgaml0LnN0b3JlNjQoR1BS
SW5mbzo6cmVnVDAsIHNjcmF0Y2ggKyBpbmRleCk7CiAgICAgfQogICAgIAorICAgIC8vIEhlbmNl
Zm9ydGggd2UgbWFrZSBpdCBsb29rIGxpa2UgdGhlIGV4aXRpbmcgZnVuY3Rpb24gd2FzIGNhbGxl
ZCB0aHJvdWdoIGEgcmVnaXN0ZXIKKyAgICAvLyBwcmVzZXJ2YXRpb24gd3JhcHBlci4gVGhpcyBp
bXBsaWVzIHRoYXQgRlAgbXVzdCBiZSBudWRnZWQgZG93biBieSBhIGNlcnRhaW4gYW1vdW50LiBU
aGVuCisgICAgLy8gd2UgcmVzdG9yZSB0aGUgdmFyaW91cyB0aGluZ3MgYWNjb3JkaW5nIHRvIGVp
dGhlciBleGl0Lm1fdmFsdWVzIG9yIGJ5IGNvcHlpbmcgZnJvbSB0aGUKKyAgICAvLyBvbGQgZnJh
bWUsIGFuZCBmaW5hbGx5IHdlIHNhdmUgdGhlIHZhcmlvdXMgY2FsbGVlLXNhdmUgcmVnaXN0ZXJz
IGludG8gd2hlcmUgdGhlCisgICAgLy8gcmVzdG9yYXRpb24gdGh1bmsgd291bGQgcmVzdG9yZSB0
aGVtIGZyb20uCisgICAgCisgICAgcHRyZGlmZl90IG9mZnNldCA9IHJlZ2lzdGVyUHJlc2VydmF0
aW9uT2Zmc2V0KCk7CisgICAgUmVnaXN0ZXJTZXQgdG9TYXZlID0gcmVnaXN0ZXJzVG9QcmVzZXJ2
ZSgpOworICAgIAorICAgIC8vIEJlZm9yZSB3ZSBzdGFydCBtZXNzaW5nIHdpdGggdGhlIGZyYW1l
LCB3ZSBuZWVkIHRvIHNldCBhc2lkZSBhbnkgcmVnaXN0ZXJzIHRoYXQgdGhlCisgICAgLy8gRlRM
IGNvZGUgd2FzIHByZXNlcnZpbmcuCisgICAgZm9yICh1bnNpZ25lZCBpID0gaml0Q29kZS0+dW53
aW5kSW5mby5tX3JlZ2lzdGVycy5zaXplKCk7IGktLTspIHsKKyAgICAgICAgUmVnaXN0ZXJBdE9m
ZnNldCBlbnRyeSA9IGppdENvZGUtPnVud2luZEluZm8ubV9yZWdpc3RlcnNbaV07CisgICAgICAg
IGppdC5sb2FkNjQoCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fz
c2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIGVudHJ5Lm9mZnNldCgpKSwKKyAgICAgICAg
ICAgIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAs
IHVud2luZFNjcmF0Y2ggKyBpKTsKKyAgICB9CisgICAgCisgICAgaml0LmxvYWQzMihDQ2FsbEhl
bHBlcnM6OnBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCksIEdQUkluZm86OnJlZ1Qy
KTsKKyAgICAKKyAgICAvLyBMZXQncyBzYXkgdGhhdCB0aGUgRlRMIGZ1bmN0aW9uIGhhZCBmYWls
ZWQgaXRzIGFyaXR5IGNoZWNrLiBJbiB0aGF0IGNhc2UsIHRoZSBzdGFjayB3aWxsCisgICAgLy8g
Y29udGFpbiBzb21lIGV4dHJhIHN0dWZmLgorICAgIC8vCisgICAgLy8gRmlyc3Qgd2UgY29tcHV0
ZSB0aGUgcGFkZGVkIHN0YWNrIHNwYWNlOgorICAgIC8vCisgICAgLy8gICAgIHBhZGRlZFN0YWNr
U3BhY2UgPSByb3VuZFVwKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycyAtIHJlZ1QyICsgMSkKKyAg
ICAvLworICAgIC8vIFRoZSBzdGFjayB3aWxsIGhhdmUgcmVnVDIgKyBDYWxsRnJhbWVIZWFkZXJT
aXplIHN0dWZmLCBidXQgYWJvdmUgaXQgdGhlcmUgd2lsbCBiZQorICAgIC8vIHBhZGRlZFN0YWNr
U3BhY2UgZ3VuayB1c2VkIGJ5IHRoZSBhcml0eSBjaGVjayBmYWlsIHJlc3RvcmF0aW9uIHRodW5r
LiBXaGVuIHRoYXQgaGFwcGVucworICAgIC8vIHdlIHdhbnQgdG8gbWFrZSB0aGUgc3RhY2sgbG9v
ayBsaWtlIHRoaXMsIGZyb20gaGlnaGVyIGFkZHJlc3NlcyBkb3duOgorICAgIC8vCisgICAgLy8g
ICAgIC0gcmVnaXN0ZXIgcHJlc2VydmF0aW9uIHJldHVybiBQQworICAgIC8vICAgICAtIHByZXNl
cnZlZCByZWdpc3RlcnMKKyAgICAvLyAgICAgLSBhcml0eSBjaGVjayBmYWlsIHJldHVybiBQQwor
ICAgIC8vICAgICAtIGFyZ3VtZW50IHBhZGRpbmcKKyAgICAvLyAgICAgLSBhY3R1YWwgYXJndW1l
bnRzCisgICAgLy8gICAgIC0gY2FsbCBmcmFtZSBoZWFkZXIKKyAgICAvLworICAgIC8vIFNvIHRo
YXQgdGhlIGFjdHVhbCBjYWxsIGZyYW1lIGhlYWRlciBhcHBlYXJzIHRvIHJldHVybiB0byB0aGUg
YXJpdHkgY2hlY2sgZmFpbCByZXR1cm4KKyAgICAvLyBQQywgYW5kIHRoYXQgdGhlbiByZXR1cm5z
IHRvIHRoZSByZWdpc3RlciBwcmVzZXJ2YXRpb24gdGh1bmsuIFRoZSBhcml0eSBjaGVjayB0aHVu
ayB0aGF0CisgICAgLy8gd2UgcmV0dXJuIHRvIHdpbGwgaGF2ZSB0aGUgcGFkZGluZyBzaXplIGVu
Y29kZWQgaW50byBpdC4gSXQgd2lsbCB0aGVuIGtub3cgdG8gcmV0dXJuCisgICAgLy8gaW50byB0
aGUgcmVnaXN0ZXIgcHJlc2VydmF0aW9uIHRodW5rLCB3aGljaCB1c2VzIHRoZSBhcmd1bWVudCBj
b3VudCB0byBmaWd1cmUgb3V0IHdoZXJlCisgICAgLy8gcmVnaXN0ZXJzIGFyZSBwcmVzZXJ2ZWQu
CisKKyAgICAvLyBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBGdW5j
dGlvbkNvZGUuCisgICAgUkVMRUFTRV9BU1NFUlQoY29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1
bmN0aW9uQ29kZSk7CisgICAgCisgICAgaml0LmFkZDMyKAorICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKC1jb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSksIEdQUkluZm86OnJl
Z1QyLAorICAgICAgICBHUFJJbmZvOjpyZWdUMyk7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
YXJpdHlJbnRhY3QgPSBqaXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBHUFJJ
bmZvOjpyZWdUMyk7CisgICAgaml0Lm5lZzMyKEdQUkluZm86OnJlZ1QzKTsKKyAgICBqaXQuYWRk
MzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxICsgc3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKSAtIDEpLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgaml0LmFuZDMyKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoLXN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpLCBHUFJJbmZvOjpyZWdU
Myk7CisgICAgaml0LmFkZDMyKEdQUkluZm86OnJlZ1QzLCBHUFJJbmZvOjpyZWdUMik7CisgICAg
YXJpdHlJbnRhY3QubGluaygmaml0KTsKKworICAgIC8vIEZpcnN0IHNldCB1cCBTUCBzbyB0aGF0
IG91ciBkYXRhIGRvZXNuJ3QgZ2V0IGNsb2JiZXJlZCBieSBzaWduYWxzLgorICAgIGppdC5hZGRQ
dHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoCisgICAgICAgICAgICBX
VEY6OnJvdW5kVXBUb011bHRpcGxlT2YoCisgICAgICAgICAgICAgICAgc3RhY2tBbGlnbm1lbnRS
ZWdpc3RlcnMoKSwKKyAgICAgICAgICAgICAgICAtcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQo
KSAtIGV4aXQubV92YWx1ZXMubnVtYmVyT2ZMb2NhbHMoKSAqIHNpemVvZihSZWdpc3RlcikgLSBt
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CisgICAgCisgICAgaml0LnN1YlB0cigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMihyZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpKSwKKyAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAKKyAgICAvLyBDb3B5IHRoZSBvbGQg
ZnJhbWUgZGF0YSBpbnRvIGl0cyBuZXcgbG9jYXRpb24uCisgICAgaml0LmFkZDMyKE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIEdQUklu
Zm86OnJlZ1QyKTsKKyAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVn
aXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbG9vcCA9
IGppdC5sYWJlbCgpOworICAgIGppdC5zdWIzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KDEpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LmxvYWQ2NChNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhHUFJJbmZvOjpyZWdUMSwgb2Zmc2V0KSwgR1BSSW5mbzo6cmVnVDApOworICAgIGppdC5z
dG9yZTY0KEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LmFkZFB0cihN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpy
ZWdUMSk7CisgICAgaml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgR1BS
SW5mbzo6cmVnVDIpLmxpbmtUbyhsb29wLCAmaml0KTsKKyAgICAKKyAgICAvLyBBdCB0aGlzIHBv
aW50IHJlZ1QxIHBvaW50cyB0byB3aGVyZSB3ZSB3b3VsZCBzYXZlIG91ciByZWdpc3RlcnMuIFNh
dmUgdGhlbSBoZXJlLgorICAgIHB0cmRpZmZfdCBjdXJyZW50T2Zmc2V0ID0gMDsKKyAgICBmb3Ig
KEdQUlJlZyBncHIgPSBBc3NlbWJseUhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgZ3ByIDw9IEFz
c2VtYmx5SGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IGdwciA9IHN0YXRpY19jYXN0PEdQUlJlZz4o
Z3ByICsgMSkpIHsKKyAgICAgICAgaWYgKCF0b1NhdmUuZ2V0KGdwcikpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgY3VycmVudE9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOworICAg
ICAgICB1bnNpZ25lZCB1bndpbmRJbmRleCA9IGppdENvZGUtPnVud2luZEluZm8uaW5kZXhPZihn
cHIpOworICAgICAgICBpZiAodW53aW5kSW5kZXggPT0gVUlOVF9NQVgpIHsKKyAgICAgICAgICAg
IC8vIFRoZSBGVEwgY29tcGlsYXRpb24gZGlkbid0IHByZXNlcnZlIHRoaXMgcmVnaXN0ZXIuIFRo
aXMgbWVhbnMgdGhhdCBpdCBhbHNvCisgICAgICAgICAgICAvLyBkaWRuJ3QgdXNlIHRoZSByZWdp
c3Rlci4gU28gaXRzIHZhbHVlIGF0IHRoZSBiZWdpbm5pbmcgb2YgT1NSIGV4aXQgc2hvdWxkIGJl
CisgICAgICAgICAgICAvLyBwcmVzZXJ2ZWQgYnkgdGhlIHRodW5rLiBMdWNraWx5LCB3ZSBzYXZl
ZCBhbGwgcmVnaXN0ZXJzIGludG8gdGhlIHJlZ2lzdGVyCisgICAgICAgICAgICAvLyBzY3JhdGNo
IGJ1ZmZlciwgc28gd2UgY2FuIHJlc3RvcmUgdGhlbSBmcm9tIHRoZXJlLgorICAgICAgICAgICAg
aml0LmxvYWQ2NChyZWdpc3RlclNjcmF0Y2ggKyBvZmZzZXRPZkdQUihncHIpLCBHUFJJbmZvOjpy
ZWdUMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGUgRlRMIGNvbXBpbGF0
aW9uIHByZXNlcnZlZCB0aGUgcmVnaXN0ZXIuIEl0cyBuZXcgdmFsdWUgaXMgdGhlcmVmb3JlCisg
ICAgICAgICAgICAvLyBpcnJlbGV2YW50LCBidXQgd2UgY2FuIGdldCB0aGUgdmFsdWUgdGhhdCB3
YXMgcHJlc2VydmVkIGJ5IHVzaW5nIHRoZSB1bndpbmQKKyAgICAgICAgICAgIC8vIGRhdGEuIFdl
J3ZlIGFscmVhZHkgY29waWVkIGFsbCB1bndpbmQtYWJsZSBwcmVzZXJ2ZWQgcmVnaXN0ZXJzIGlu
dG8gdGhlIHVud2luZAorICAgICAgICAgICAgLy8gc2NyYXRjaCBidWZmZXIsIHNvIHdlIGNhbiBn
ZXQgaXQgZnJvbSB0aGVyZS4KKyAgICAgICAgICAgIGppdC5sb2FkNjQodW53aW5kU2NyYXRjaCAr
IHVud2luZEluZGV4LCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgIH0KKyAgICAgICAgaml0LnN0
b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpy
ZWdUMSwgY3VycmVudE9mZnNldCkpOworICAgIH0KKyAgICAKKyAgICAvLyBXZSBuZWVkIHRvIG1h
a2Ugc3VyZSB0aGF0IHdlIHJldHVybiBpbnRvIHRoZSByZWdpc3RlciByZXN0b3JhdGlvbiB0aHVu
ay4gVGhpcyB3b3JrcworICAgIC8vIGRpZmZlcmVudGx5IGRlcGVuZGluZyBvbiB3aGV0aGVyIG9y
IG5vdCB3ZSBoYWQgYXJpdHkgaXNzdWVzLgorICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGFyaXR5
SW50YWN0Rm9yUmV0dXJuUEMgPQorICAgICAgICBqaXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1i
bGVyOjpaZXJvLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgCisgICAgLy8gVGhlIHJldHVybiBQQyBp
biB0aGUgY2FsbCBmcmFtZSBoZWFkZXIgcG9pbnRzIGF0IGV4YWN0bHkgdGhlIHJpZ2h0IGFyaXR5
IHJlc3RvcmF0aW9uCisgICAgLy8gdGh1bmsuIFdlIGRvbid0IHdhbnQgdG8gY2hhbmdlIHRoYXQu
IEJ1dCB0aGUgYXJpdHkgcmVzdG9yYXRpb24gdGh1bmsncyBmcmFtZSBoYXMgYQorICAgIC8vIHJl
dHVybiBQQyBhbmQgd2Ugd2FudCB0byByZXJvdXRlIHRoYXQgdG8gb3VyIHJlZ2lzdGVyIHJlc3Rv
cmF0aW9uIHRodW5rLiBUaGUgYXJpdHkKKyAgICAvLyByZXN0b3JhdGlvbidzIHJldHVybiBQQyBq
dXN0IGp1c3QgYmVsb3cgcmVnVDEsIGFuZCB0aGUgcmVnaXN0ZXIgcmVzdG9yYXRpb24ncyByZXR1
cm4gUEMKKyAgICAvLyBpcyByaWdodCBhdCByZWdUMS4KKyAgICBqaXQubG9hZFB0cihNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMSwgLXN0YXRpY19jYXN0PHB0cmRpZmZfdD4o
c2l6ZW9mKFJlZ2lzdGVyKSkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgaml0LnN0b3JlUHRyKEdQ
UkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRyKAorICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cih2bS0+Z2V0Q1RJU3R1YihyZWdpc3RlclJl
c3RvcmF0aW9uVGh1bmtHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSwKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDEsIC1zdGF0aWNfY2Fz
dDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgCisgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgYXJpdHlSZXR1cm5QQ1JlYWR5ID0gaml0Lmp1bXAoKTsKKworICAgIGFyaXR5SW50
YWN0Rm9yUmV0dXJuUEMubGluaygmaml0KTsKKyAgICAKKyAgICBqaXQubG9hZFB0cihNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIENh
bGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICBqaXQuc3Rv
cmVQdHIoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3RvcmVQdHIo
CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHZtLT5nZXRDVElTdHViKHJl
Z2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNz
KCkpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJh
bWVQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworICAgIAor
ICAgIGFyaXR5UmV0dXJuUENSZWFkeS5saW5rKCZqaXQpOworICAgIAogICAgIC8vIE5vdyBnZXQg
c3RhdGUgb3V0IG9mIHRoZSBzY3JhdGNoIGJ1ZmZlciBhbmQgcGxhY2UgaXQgYmFjayBpbnRvIHRo
ZSBzdGFjay4gVGhpcyBwYXJ0IGRvZXMKICAgICAvLyBhbGwgcmVib3hpbmcuCiAgICAgZm9yICh1
bnNpZ25lZCBpbmRleCA9IGV4aXQubV92YWx1ZXMuc2l6ZSgpOyBpbmRleC0tOykgewpAQCAtMTUw
LDI2ICszMzEsMTYgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoCiAgICAgICAgIGppdC5sb2Fk
NjQoc2NyYXRjaCArIGluZGV4LCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgICAgIHJlYm94QWNjb3Jk
aW5nVG9Gb3JtYXQoCiAgICAgICAgICAgICB2YWx1ZS52YWx1ZUZvcm1hdCgpLCBqaXQsIEdQUklu
Zm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDIpOwotICAgICAgICBqaXQu
c3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKHN0YXRp
Y19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4ob3BlcmFuZCksIEdQUkluZm86OnJlZ1Q0KSk7CisgICAg
ICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NG
b3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihvcGVyYW5kKSkpOwogICAgIH0KICAgICAK
LSAgICAvLyBSZXN0b3JlIHRoZSBvbGQgc3RhY2sgcG9pbnRlciBhbmQgdGhlbiBwdXQgcmVnVDQg
aW50byBjYWxsRnJhbWVSZWdpc3Rlci4gVGhlIGlkZWEgaXMKLSAgICAvLyB0aGF0IHRoZSBGVEwg
Y2FsbCBmcmFtZSBpcyBwdXNoZWQgb250byB0aGUgSlMgY2FsbCBmcmFtZSBhbmQgd2UgY2FuIHJl
Y292ZXIgdGhlIG9sZAotICAgIC8vIHZhbHVlIG9mIHRoZSBzdGFjayBwb2ludGVyIGJ5IHBvcHBp
bmcgdGhlIEZUTCBjYWxsIGZyYW1lLiBXZSBhbHJlYWR5IGtub3cgd2hhdCB0aGUKLSAgICAvLyBm
cmFtZSBwb2ludGVyIGluIHRoZSBKUyBjYWxsIGZyYW1lIHdhcyBiZWNhdXNlIGl0IHdvdWxkIGhh
dmUgYmVlbiBwYXNzZWQgYXMgYW4gYXJndW1lbnQKLSAgICAvLyB0byB0aGUgRlRMIGNhbGwgZnJh
bWUuCi0gICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBN
YWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotICAgIGppdC5wb3AoR1BSSW5m
bzo6bm9uQXJnR1BSMCk7Ci0gICAgaml0LnBvcChHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICBq
aXQubW92ZShHUFJJbmZvOjpyZWdUNCwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAg
IAogICAgIGhhbmRsZUV4aXRDb3VudHMoaml0LCBleGl0KTsKICAgICByZWlmeUlubGluZWRDYWxs
RnJhbWVzKGppdCwgZXhpdCk7CiAgICAgYWRqdXN0QW5kSnVtcFRvVGFyZ2V0KGppdCwgZXhpdCk7
CiAgICAgCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIGNvZGVCbG9jayk7
CiAgICAgZXhpdC5tX2NvZGUgPSBGSU5BTElaRV9DT0RFX0lGKAotICAgICAgICBzaG91bGRTaG93
RGlzYXNzZW1ibHkoKSwKKyAgICAgICAgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwgT3B0aW9u
czo6dmVyYm9zZU9TUigpLAogICAgICAgICBwYXRjaEJ1ZmZlciwKICAgICAgICAgKCJGVEwgT1NS
IGV4aXQgIyV1ICglcywgJXMpIGZyb20gJXMsIHdpdGggb3BlcmFuZHMgPSAlcywgYW5kIHJlY29y
ZCA9ICVzIiwKICAgICAgICAgICAgIGV4aXRJRCwgdG9DU3RyaW5nKGV4aXQubV9jb2RlT3JpZ2lu
KS5kYXRhKCksCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTE4NCw3ICsxODQsMjMgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0
dXJuIGNhbGwoZG91YmxlQWJzSW50cmluc2ljKCksIHZhbHVlKTsKICAgICB9Ci0gICAgCisgICAg
TFZhbHVlIGRvdWJsZVNpbihMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gY2Fs
bChkb3VibGVTaW5JbnRyaW5zaWMoKSwgdmFsdWUpOworICAgIH0KKworCisgICAgTFZhbHVlIGRv
dWJsZUNvcyhMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gY2FsbChkb3VibGVD
b3NJbnRyaW5zaWMoKSwgdmFsdWUpOworICAgIH0KKworICAgIExWYWx1ZSBkb3VibGVTcXJ0KExW
YWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxsKGRvdWJsZVNxcnRJbnRyaW5z
aWMoKSwgdmFsdWUpOworICAgIH0KKworCiAgICAgc3RhdGljIGJvb2wgaGFzU2Vuc2libGVEb3Vi
bGVUb0ludCgpIHsgcmV0dXJuIGlzWDg2KCk7IH0KICAgICBMVmFsdWUgc2Vuc2libGVEb3VibGVU
b0ludChMVmFsdWUgdmFsdWUpCiAgICAgewpAQCAtMjEwLDYgKzIyNiw3IEBAIHB1YmxpYzoKICAg
ICBMVmFsdWUgY2FzdFRvSW50MzIoTFZhbHVlIHZhbHVlKSB7IHJldHVybiBpbnRDYXN0KHZhbHVl
LCBpbnQzMik7IH0KICAgICBMVmFsdWUgZnBDYXN0KExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkg
eyByZXR1cm4gYnVpbGRGUENhc3QobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0KICAgICBMVmFs
dWUgaW50VG9QdHIoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZEludFRv
UHRyKG1fYnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CisgICAgTFZhbHVlIHB0clRvSW50KExWYWx1
ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRQdHJUb0ludChtX2J1aWxkZXIsIHZh
bHVlLCB0eXBlKTsgfQogICAgIExWYWx1ZSBiaXRDYXN0KExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlw
ZSkgeyByZXR1cm4gYnVpbGRCaXRDYXN0KG1fYnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CiAgICAg
CiAgICAgTFZhbHVlIGFsbG9jYShMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZEFsbG9jYShtX2J1
aWxkZXIsIHR5cGUpOyB9CkBAIC0zMTQsNiArMzMxLDIwIEBAIHB1YmxpYzoKICAgICB2b2lkIHN0
b3JlUHRyKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0RmllbGQmIGZp
ZWxkKSB7IHN0b3JlUHRyKHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0KICAgICB2b2lk
IHN0b3JlRG91YmxlKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0Rmll
bGQmIGZpZWxkKSB7IHN0b3JlRG91YmxlKHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0K
ICAgICAKKyAgICB2b2lkIGFzY3JpYmVSYW5nZShMVmFsdWUgbG9hZEluc3RydWN0aW9uLCBjb25z
dCBWYWx1ZVJhbmdlJiByYW5nZSkKKyAgICB7CisgICAgICAgIHJhbmdlLmRlY29yYXRlSW5zdHJ1
Y3Rpb24obV9jb250ZXh0LCBsb2FkSW5zdHJ1Y3Rpb24sIHJhbmdlS2luZCk7CisgICAgfQorICAg
IAorICAgIExWYWx1ZSBub25OZWdhdGl2ZTMyKExWYWx1ZSBsb2FkSW5zdHJ1Y3Rpb24pCisgICAg
eworICAgICAgICBhc2NyaWJlUmFuZ2UobG9hZEluc3RydWN0aW9uLCBub25OZWdhdGl2ZUludDMy
KTsKKyAgICAgICAgcmV0dXJuIGxvYWRJbnN0cnVjdGlvbjsKKyAgICB9CisgICAgCisgICAgTFZh
bHVlIGxvYWQzMk5vbk5lZ2F0aXZlKFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHJldHVybiBub25O
ZWdhdGl2ZTMyKGxvYWQzMihwb2ludGVyKSk7IH0KKyAgICBMVmFsdWUgbG9hZDMyTm9uTmVnYXRp
dmUoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0RmllbGQmIGZpZWxkKSB7IHJldHVybiBub25O
ZWdhdGl2ZTMyKGxvYWQzMihiYXNlLCBmaWVsZCkpOyB9CisgICAgCiAgICAgTFZhbHVlIGljbXAo
TEludFByZWRpY2F0ZSBjb25kLCBMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBi
dWlsZElDbXAobV9idWlsZGVyLCBjb25kLCBsZWZ0LCByaWdodCk7IH0KICAgICBMVmFsdWUgZXF1
YWwoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gaWNtcChMTFZNSW50RVEsIGxl
ZnQsIHJpZ2h0KTsgfQogICAgIExWYWx1ZSBub3RFcXVhbChMVmFsdWUgbGVmdCwgTFZhbHVlIHJp
Z2h0KSB7IHJldHVybiBpY21wKExMVk1JbnRORSwgbGVmdCwgcmlnaHQpOyB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmNwcAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZU
TFJlY292ZXJ5T3Bjb2RlLmgiCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgPHd0
Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordm9pZCBwcmludEludGVybmFs
KFByaW50U3RyZWFtJiBvdXQsIEpTQzo6RlRMOjpSZWNvdmVyeU9wY29kZSBvcGNvZGUpCit7Cisg
ICAgc3dpdGNoIChvcGNvZGUpIHsKKyAgICBjYXNlIEpTQzo6RlRMOjpBZGRSZWNvdmVyeToKKyAg
ICAgICAgb3V0LnByaW50KCJBZGQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpG
VEw6OlN1YlJlY292ZXJ5OgorICAgICAgICBvdXQucHJpbnQoIlN1YiIpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZUTFJlY292ZXJ5T3Bjb2RlX2gKKyNkZWZpbmUgRlRM
UmVjb3ZlcnlPcGNvZGVfaAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKK25hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgRlRMIHsKKworZW51bSBSZWNvdmVyeU9wY29kZSB7CisgICAgQWRkUmVjb3Zl
cnksCisgICAgU3ViUmVjb3ZlcnkKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKwor
bmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFByaW50U3RyZWFtOwordm9pZCBwcmludEludGVybmFs
KFByaW50U3RyZWFtJiwgSlNDOjpGVEw6OlJlY292ZXJ5T3Bjb2RlKTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTFJlY292
ZXJ5T3Bjb2RlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3Rl
ckF0T2Zmc2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFJlZ2lzdGVyQXRPZmZzZXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExSZWdpc3RlckF0T2Zmc2V0LmgiCisKKyNp
ZiBFTkFCTEUoRlRMX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCit2
b2lkIFJlZ2lzdGVyQXRPZmZzZXQ6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAg
ICBvdXQucHJpbnQoZ3ByKCksICIgYXQgIiwgb2Zmc2V0KCkpOworfQorCit9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRlRMUmVnaXN0ZXJBdE9mZnNldF9oCisjZGVm
aW5lIEZUTFJlZ2lzdGVyQXRPZmZzZXRfaAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNs
dWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CisKK25hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworY2xhc3MgUmVnaXN0ZXJBdE9mZnNldCB7CitwdWJs
aWM6CisgICAgUmVnaXN0ZXJBdE9mZnNldCgpCisgICAgICAgIDogbV9ncHIoSW52YWxpZEdQUlJl
ZykKKyAgICAgICAgLCBtX29mZnNldCgwKQorICAgIHsKKyAgICB9CisgICAgCisgICAgUmVnaXN0
ZXJBdE9mZnNldChHUFJSZWcgZ3ByLCBwdHJkaWZmX3Qgb2Zmc2V0KQorICAgICAgICA6IG1fZ3By
KGdwcikKKyAgICAgICAgLCBtX29mZnNldChvZmZzZXQpCisgICAgeworICAgIH0KKyAgICAKKyAg
ICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuIG1fZ3ByID09IEludmFsaWRHUFJSZWc7
IH0KKyAgICAKKyAgICBHUFJSZWcgZ3ByKCkgY29uc3QgeyByZXR1cm4gbV9ncHI7IH0KKyAgICBw
dHJkaWZmX3Qgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KKyAgICAKKyAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgb3RoZXIpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gZ3ByKCkgPT0gb3RoZXIuZ3ByKCkgJiYgb2Zmc2V0KCkgPT0gb3Ro
ZXIub2Zmc2V0KCk7CisgICAgfQorICAgIAorICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFJlZ2lz
dGVyQXRPZmZzZXQmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGdwcigpICE9IG90
aGVyLmdwcigpKQorICAgICAgICAgICAgcmV0dXJuIGdwcigpIDwgb3RoZXIuZ3ByKCk7CisgICAg
ICAgIHJldHVybiBvZmZzZXQoKSA8IG90aGVyLm9mZnNldCgpOworICAgIH0KKyAgICAKKyAgICBz
dGF0aWMgR1BSUmVnIGdldEdQUihSZWdpc3RlckF0T2Zmc2V0KiB2YWx1ZSkgeyByZXR1cm4gdmFs
dWUtPmdwcigpOyB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
OworCitwcml2YXRlOgorICAgIEdQUlJlZyBtX2dwcjsKKyAgICBwdHJkaWZmX3QgbV9vZmZzZXQ7
Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRM
X0pJVCkKKworI2VuZGlmIC8vIEZUTFJlZ2lzdGVyQXRPZmZzZXRfaAorCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCShyZXZpc2lvbiAxNjI5
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAogI2luY2x1
ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNs
dWRlICJGVExTdGF0ZS5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKIApAQCAtMTM0LDExICsxMzUs
MTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU2xvd1BhdGhDYWxsS2V5KHVzZWRSZWdpc3Rl
cnMoKSwgY2FsbFRhcmdldCwgb2Zmc2V0KCkpOwogICAgIH0KICAgICAKLSAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBtYWtlQ2FsbCh2b2lkKiBjYWxsVGFyZ2V0KQorICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIG1ha2VDYWxsKHZvaWQqIGNhbGxUYXJnZXQsIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlz
dCogZXhjZXB0aW9uVGFyZ2V0KQogICAgIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
cmVzdWx0ID0gbV9qaXQuY2FsbCgpOwogICAgICAgICBtX3N0YXRlLmZpbmFsaXplci0+c2xvd1Bh
dGhDYWxscy5hcHBlbmQoU2xvd1BhdGhDYWxsKAogICAgICAgICAgICAgcmVzdWx0LCBrZXlXaXRo
VGFyZ2V0KGNhbGxUYXJnZXQpKSk7CisgICAgICAgIGlmIChleGNlcHRpb25UYXJnZXQpCisgICAg
ICAgICAgICBleGNlcHRpb25UYXJnZXQtPmFwcGVuZChtX2ppdC5lbWl0RXhjZXB0aW9uQ2hlY2so
KSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIApAQCAtMTU3LDMyICsxNjAs
NDQgQEAgcHJpdmF0ZToKIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAKK3ZvaWQgc3RvcmVD
b2RlT3JpZ2luKFN0YXRlJiBzdGF0ZSwgQ0NhbGxIZWxwZXJzJiBqaXQsIENvZGVPcmlnaW4gY29k
ZU9yaWdpbikKK3sKKyAgICBpZiAoIWNvZGVPcmlnaW4uaXNTZXQoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIHVuc2lnbmVkIGluZGV4ID0gc3RhdGUuaml0Q29kZS0+Y29tbW9uLmFkZENv
ZGVPcmlnaW4oY29kZU9yaWdpbik7CisgICAgdW5zaWduZWQgbG9jYXRpb25CaXRzID0gQ2FsbEZy
YW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNDb2RlT3JpZ2luSW5kZXgoaW5kZXgpOworICAgIGppdC5z
dG9yZTMyKAorICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMp
LAorICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0
ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7Cit9CisKIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oCi0gICAgU3RhdGUmIHN0YXRlLCBjb25zdCBSZWdpc3RlclNldCYgdXNl
ZFJlZ2lzdGVycywgQ0NhbGxIZWxwZXJzJiBqaXQsIAotICAgIEpfSklUT3BlcmF0aW9uX0VTc2lK
SSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwKLSAg
ICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEdQUlJlZyBvYmplY3QsIFN0cmluZ0ltcGwq
IHVpZCkKKyAgICBTdGF0ZSYgc3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJz
LCBDQ2FsbEhlbHBlcnMmIGppdCwKKyAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wTGlzdCogZXhjZXB0aW9uVGFyZ2V0LAorICAgIEpfSklUT3BlcmF0aW9uX0VT
c2lKSSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bywKKyAgICBHUFJSZWcgb2JqZWN0LCBTdHJpbmdJbXBsKiB1aWQpCiB7CisgICAgc3RvcmVDb2Rl
T3JpZ2luKHN0YXRlLCBqaXQsIGNvZGVPcmlnaW4pOwogICAgIENhbGxDb250ZXh0IGNvbnRleHQo
c3RhdGUsIHVzZWRSZWdpc3RlcnMsIGppdCwgNCwgcmVzdWx0KTsKLSAgICBqaXQuc2V0dXBBcmd1
bWVudHMoCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW1QdHIoc3R1YkluZm8pLCBvYmplY3QsCisgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZSgKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwgb2Jq
ZWN0LAogICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodWlkKSk7Ci0gICAgcmV0
dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb24pKTsKLSAg
ICAvLyBGSVhNRTogRlRMIHNob3VsZCBzdXBwb3J0IGV4Y2VwdGlvbnMuCi0gICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgorICAgIHJldHVybiBjb250
ZXh0Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0aW9uKSwgZXhjZXB0aW9uVGFy
Z2V0KTsKIH0KIAogTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKICAgICBTdGF0
ZSYgc3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDQ2FsbEhlbHBlcnMm
IGppdCwgCi0gICAgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBvcGVyYXRpb24sIEdQUlJlZyBjYWxs
RnJhbWVSZWdpc3RlciwKLSAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEdQUlJlZyB2
YWx1ZSwgR1BSUmVnIG9iamVjdCwgU3RyaW5nSW1wbCogdWlkKQorICAgIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0KiBleGNlcHRpb25UYXJnZXQsCisgICAg
Vl9KSVRPcGVyYXRpb25fRVNzaUpKSSBvcGVyYXRpb24sIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgR1BSUmVnIHZhbHVlLAorICAgIEdQUlJlZyBvYmplY3QsIFN0cmluZ0ltcGwqIHVpZCkK
IHsKKyAgICBzdG9yZUNvZGVPcmlnaW4oc3RhdGUsIGppdCwgY29kZU9yaWdpbik7CiAgICAgQ2Fs
bENvbnRleHQgY29udGV4dChzdGF0ZSwgdXNlZFJlZ2lzdGVycywgaml0LCA1LCBJbnZhbGlkR1BS
UmVnKTsKLSAgICBqaXQuc2V0dXBBcmd1bWVudHMoCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVy
LCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoc3R1YkluZm8pLCB2YWx1ZSwgb2JqZWN0LAor
ICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAgICAgIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihzdHViSW5mbyksIHZhbHVlLCBvYmplY3QsCiAgICAgICAgIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbVB0cih1aWQpKTsKLSAgICByZXR1cm4gY29udGV4dC5tYWtlQ2Fs
bChiaXR3aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlvbikpOwotICAgIC8vIEZJWE1FOiBGVEwgc2hv
dWxkIHN1cHBvcnQgZXhjZXB0aW9ucy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTEzNjIyCisgICAgcmV0dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lz
ZV9jYXN0PHZvaWQqPihvcGVyYXRpb24pLCBleGNlcHRpb25UYXJnZXQpOwogfQogCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6RlRMCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNs
b3dQYXRoQ2FsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
U2xvd1BhdGhDYWxsLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDEzICs1NSwxNSBAQCBw
cml2YXRlOgogICAgIFNsb3dQYXRoQ2FsbEtleSBtX2tleTsKIH07CiAKK3ZvaWQgc3RvcmVDb2Rl
T3JpZ2luKFN0YXRlJiwgQ0NhbGxIZWxwZXJzJiwgQ29kZU9yaWdpbik7CisKIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oCi0gICAgU3RhdGUmLCBjb25zdCBSZWdpc3RlclNldCYs
IENDYWxsSGVscGVycyYsIEpfSklUT3BlcmF0aW9uX0VTc2lKSSwKLSAgICBHUFJSZWcgcmVzdWx0
LCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIFN0cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnIG9i
amVjdCwKKyAgICBTdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0JiwgQ0NhbGxIZWxwZXJzJiwgQ29k
ZU9yaWdpbiwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCosCisgICAgSl9KSVRPcGVyYXRpb25fRVNz
aUpJLCBHUFJSZWcgcmVzdWx0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZyBvYmplY3QsCiAg
ICAgU3RyaW5nSW1wbCogdWlkKTsKIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Ci0gICAgU3RhdGUmLCBjb25zdCBSZWdpc3RlclNldCYsIENDYWxsSGVscGVycyYsIFZfSklUT3Bl
cmF0aW9uX0VTc2lKSkksCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEdQUlJlZyB2YWx1ZSwgR1BSUmVnIG9iamVjdCwKKyAgICBTdGF0ZSYsIGNvbnN0
IFJlZ2lzdGVyU2V0JiwgQ0NhbGxIZWxwZXJzJiwgQ29kZU9yaWdpbiwgQ0NhbGxIZWxwZXJzOjpK
dW1wTGlzdCosCisgICAgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSwgU3RydWN0dXJlU3R1YkluZm8q
LCBHUFJSZWcgdmFsdWUsIEdQUlJlZyBvYmplY3QsCiAgICAgU3RyaW5nSW1wbCogdWlkKTsKIAog
fSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExTdGFja01hcHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMU3RhY2tNYXBzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExTdGFja01hcHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw5
IEBAIHZvaWQgU3RhY2tNYXBzOjpMb2NhdGlvbjo6cmVzdG9yZUludG8oCiAKIGJvb2wgU3RhY2tN
YXBzOjpSZWNvcmQ6OnBhcnNlKERhdGFWaWV3KiB2aWV3LCB1bnNpZ25lZCYgb2Zmc2V0KQogewot
ICAgIHBhdGNocG9pbnRJRCA9IHZpZXctPnJlYWQ8dWludDMyX3Q+KG9mZnNldCwgdHJ1ZSk7Cisg
ICAgaW50NjRfdCBpZCA9IHZpZXctPnJlYWQ8aW50NjRfdD4ob2Zmc2V0LCB0cnVlKTsKKyAgICBB
U1NFUlQoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaWQpID09IGlkKTsKKyAgICBwYXRjaHBvaW50SUQg
PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oaWQpOwogICAgIGlmIChzdGF0aWNfY2FzdDxpbnQzMl90
PihwYXRjaHBvaW50SUQpIDwgMCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIApAQCAtOTAs
NiArOTIsMTMgQEAgYm9vbCBTdGFja01hcHM6OlJlY29yZDo6cGFyc2UoRGF0YVZpZXcqIAogICAg
IHdoaWxlIChsZW5ndGgtLSkKICAgICAgICAgbG9jYXRpb25zLmFwcGVuZChyZWFkT2JqZWN0PExv
Y2F0aW9uPih2aWV3LCBvZmZzZXQpKTsKICAgICAKKyAgICB1bnNpZ25lZCBudW1MaXZlT3V0cyA9
IHZpZXctPnJlYWQ8dWludDE2X3Q+KG9mZnNldCwgdHJ1ZSk7CisgICAgd2hpbGUgKG51bUxpdmVP
dXRzLS0pIHsKKyAgICAgICAgdmlldy0+cmVhZDx1aW50MTZfdD4ob2Zmc2V0LCB0cnVlKTsgLy8g
cmVnbnVtCisgICAgICAgIHZpZXctPnJlYWQ8dWludDhfdD4ob2Zmc2V0LCB0cnVlKTsgLy8gcmVz
ZXJ2ZWQKKyAgICAgICAgdmlldy0+cmVhZDx1aW50OF90PihvZmZzZXQsIHRydWUpOyAvLyBzaXpl
IGluIGJ5dGVzCisgICAgfQorICAgIAogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTYxLDcgKzYxLDcgQEAgc3RydWN0IFN0YWNrTWFwcyB7CiAgICAgICAgIHVpbnQxNl90IGR3
YXJmUmVnTnVtOyAvLyBSZXByZXNlbnRlZCBhcyBhIDEyLWJpdCBpbnQgaW4gdGhlIHNlY3Rpb24u
CiAgICAgICAgIGludDhfdCBzaXplOwogICAgICAgICBLaW5kIGtpbmQ7Ci0gICAgICAgIGludDE2
X3Qgb2Zmc2V0OworICAgICAgICBpbnQzMl90IG9mZnNldDsKICAgICAgICAgCiAgICAgICAgIHZv
aWQgcGFyc2UoRGF0YVZpZXcqLCB1bnNpZ25lZCYgb2Zmc2V0KTsKICAgICAgICAgdm9pZCBkdW1w
KFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExTdGF0ZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMU3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw4IEBAIFN0YXRlOjpT
dGF0ZShHcmFwaCYgZ3JhcGgpCiAgICAgLCBtb2R1bGUoMCkKICAgICAsIGZ1bmN0aW9uKDApCiAg
ICAgLCBnZW5lcmF0ZWRGdW5jdGlvbigwKQorICAgICwgY29tcGFjdFVud2luZCgwKQorICAgICwg
Y29tcGFjdFVud2luZFNpemUoMCkKIHsKICAgICBzd2l0Y2ggKGdyYXBoLm1fcGxhbi5tb2RlKSB7
CiAgICAgY2FzZSBGVExNb2RlOiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFN0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0
ZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJGVExJbmxpbmVD
YWNoZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJGVExKSVRDb2RlLmgiCiAjaW5jbHVkZSAiRlRM
SklURmluYWxpemVyLmgiCisjaW5jbHVkZSAiRlRMSlNDYWxsLmgiCiAjaW5jbHVkZSAiRlRMU3Rh
Y2tNYXBzLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKQEAgLTU3LDEwICs1OCwx
NSBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPEpJVENvZGU+IGppdENvZGU7CiAgICAgR2VuZXJhdGVk
RnVuY3Rpb24gZ2VuZXJhdGVkRnVuY3Rpb247CiAgICAgSklURmluYWxpemVyKiBmaW5hbGl6ZXI7
CisgICAgdW5zaWduZWQgaGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRDsKKyAgICB1bnNpZ25lZCBj
YXB0dXJlZFN0YWNrbWFwSUQ7CiAgICAgU2VnbWVudGVkVmVjdG9yPEdldEJ5SWREZXNjcmlwdG9y
PiBnZXRCeUlkczsKICAgICBTZWdtZW50ZWRWZWN0b3I8UHV0QnlJZERlc2NyaXB0b3I+IHB1dEJ5
SWRzOworICAgIFZlY3RvcjxKU0NhbGw+IGpzQ2FsbHM7CiAgICAgVmVjdG9yPENTdHJpbmc+IGNv
ZGVTZWN0aW9uTmFtZXM7CiAgICAgVmVjdG9yPENTdHJpbmc+IGRhdGFTZWN0aW9uTmFtZXM7Cisg
ICAgdm9pZCogY29tcGFjdFVud2luZDsKKyAgICBzaXplX3QgY29tcGFjdFVud2luZFNpemU7CiAg
ICAgUmVmQ291bnRlZEFycmF5PExTZWN0aW9uV29yZD4gc3RhY2ttYXBzU2VjdGlvbjsKICAgICAK
ICAgICB2b2lkIGR1bXBTdGF0ZShjb25zdCBjaGFyKiB3aGVuKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksOSAr
MzksOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBERkc7CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblRodW5rR2Vu
ZXJhdG9yKFZNJiB2bSwgY29uc3QgTG9jYXRpb24mIGxvY2F0aW9uKQorTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIEFz
c2VtYmx5SGVscGVycyBqaXQoJnZtLCAwKTsKKyAgICBBc3NlbWJseUhlbHBlcnMgaml0KHZtLCAw
KTsKICAgICAKICAgICAvLyBOb3RlIHRoYXQgdGhlICJyZXR1cm4gYWRkcmVzcyIgd2lsbCBiZSB0
aGUgT1NSIGV4aXQgSUQuCiAgICAgCkBAIC01MSw3ICs1MSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBvc3JFeGl0R2VuZXJhdGlvblQKICAgICBqaXQucHVzaChHUFJJbmZvOjpyZWdUMCk7CiAg
ICAgaml0LnB1c2goR1BSSW5mbzo6cmVnVDApOwogICAgIAotICAgIFNjcmF0Y2hCdWZmZXIqIHNj
cmF0Y2hCdWZmZXIgPSB2bS5zY3JhdGNoQnVmZmVyRm9yU2l6ZShyZXF1aXJlZFNjcmF0Y2hNZW1v
cnlTaXplSW5CeXRlcygpKTsKKyAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0t
PnNjcmF0Y2hCdWZmZXJGb3JTaXplKHJlcXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVzKCkp
OwogICAgIGNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihzY3JhdGNoQnVmZmVyLT5k
YXRhQnVmZmVyKCkpOwogICAgIAogICAgIHNhdmVBbGxSZWdpc3RlcnMoaml0LCBidWZmZXIpOwpA
QCAtNjAsNyArNjAsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25U
CiAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc2NyYXRjaEJ1ZmZl
ci0+YWN0aXZlTGVuZ3RoUHRyKCkpLCBHUFJJbmZvOjpub25BcmdHUFIxKTsKICAgICBqaXQuc3Rv
cmVQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocmVxdWlyZWRTY3JhdGNoTWVtb3J5
U2l6ZUluQnl0ZXMoKSksIEdQUkluZm86Om5vbkFyZ0dQUjEpOwogCi0gICAgbG9jYXRpb24ucmVz
dG9yZUludG8oaml0LCBidWZmZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCwgMSk7CisgICAgaml0
LmxvYWRQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgaml0LnBlZWsoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCAzKTsKICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwgPSBqaXQuY2FsbCgpOwogICAgIApAQCAtNzEsNiAr
NzEsMTAgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVAogICAgIAog
ICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdUMCk7CiAg
ICAgCisgICAgLy8gTWFrZSBzdXJlIHdlIHRlbGwgdGhlIEdDIHRoYXQgd2UncmUgbm90IHVzaW5n
IHRoZSBzY3JhdGNoIGJ1ZmZlciBhbnltb3JlLgorICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tUHRyKHNjcmF0Y2hCdWZmZXItPmFjdGl2ZUxlbmd0aFB0cigpKSwgR1BSSW5m
bzo6cmVnVDEpOworICAgIGppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
cigwKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIAogICAgIC8vIFByZXBhcmUgZm9yIHRhaWwgY2Fs
bC4KICAgICBqaXQucG9wKEdQUkluZm86OnJlZ1QxKTsKICAgICBqaXQucG9wKEdQUkluZm86OnJl
Z1QxKTsKQEAgLTgxLDE0ICs4NSwxNCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdl
bmVyYXRpb25UCiAgICAgLy8gcmVzdG9yZSBhbGwgcmVnaXN0ZXJzLgogICAgIAogICAgIGppdC5y
ZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpyZWdUMCk7Ci0gICAgCisK
ICAgICByZXN0b3JlQWxsUmVnaXN0ZXJzKGppdCwgYnVmZmVyKTsKIAogICAgIGppdC5yZXQoKTsK
ICAgICAKLSAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKHZtLCAmaml0LCBHTE9CQUxfVEhVTktf
SUQpOworICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktf
SUQpOwogICAgIHBhdGNoQnVmZmVyLmxpbmsoZnVuY3Rpb25DYWxsLCBjb21waWxlRlRMT1NSRXhp
dCk7Ci0gICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiRlRMIE9TUiBleGl0
IGdlbmVyYXRpb24gdGh1bmsgZm9yIGNhbGxGcmFtZSBhdCAlcyIsIHRvQ1N0cmluZyhsb2NhdGlv
bikuZGF0YSgpKSk7CisgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiRlRM
IE9TUiBleGl0IGdlbmVyYXRpb24gdGh1bmsiKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBzbG93UGF0aENhbGxUaHVua0dlbmVyYXRvcihWTSYgdm0sIGNvbnN0IFNsb3dQYXRoQ2FsbEtl
eSYga2V5KQpAQCAtMTE5LDExICsxMjMsMTMgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNsb3dQ
YXRoQ2FsbFRodW5rRwogICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IHNpemVvZihkb3VibGUpOwog
ICAgIH0KICAgICAKKyAgICAvLyBGSVhNRTogQ1N0YWNrIC0gTmVlZCB0byBkbyBzb2VtZXRoaW5n
IGxpa2Ugaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgaml0LnByZXNlcnZlUmV0dXJu
QWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBqaXQuc3RvcmVQdHIo
R1BSSW5mbzo6bm9uQXJnR1BSMCwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1i
bGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSk7CiAgICAgCiAgICAgSklU
Q29tcGlsZXI6OkNhbGwgY2FsbCA9IGppdC5jYWxsKCk7Ci0gICAgCisKKyAgICAvLyBGSVhNRTog
Q1N0YWNrIC0gTmVlZCB0byBkbyBzb21ldGhpbmcgbGlrZSBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICAgICBqaXQubG9hZFB0cihBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3Nl
bWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBrZXkub2Zmc2V0KCkpLCBHUFJJbmZvOjpub25Q
cmVzZXJ2ZWROb25SZXR1cm5HUFIpOwogICAgIGppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9y
ZVJldHVybihHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwogICAgIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MSw3ICs0MSw3IEBAIGNsYXNzIFZNOwogCiBuYW1lc3BhY2UgRlRMIHsKIAotTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0mLCBjb25zdCBMb2Nh
dGlvbiYpOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5l
cmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzbG93UGF0aENhbGxUaHVua0dlbmVy
YXRvcihWTSYsIGNvbnN0IFNsb3dQYXRoQ2FsbEtleSYpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBL
ZXlUeXBlQXJndW1lbnQ+CkBAIC03OCwxMiArNzgsNiBAQCB0eXBlbmFtZSBNYXBUeXBlOjpLZXlU
eXBlIGtleUZvclRodW5rKE1hCiAKIGNsYXNzIFRodW5rcyB7CiBwdWJsaWM6Ci0gICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGdldE9TUkV4aXRHZW5lcmF0aW9uVGh1bmsoVk0mIHZtLCBjb25zdCBM
b2NhdGlvbiYgbG9jYXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4gZ2VuZXJhdGVJZk5lY2Vz
c2FyeSgKLSAgICAgICAgICAgIHZtLCBtX29zckV4aXRUaHVua3MsIGxvY2F0aW9uLCBvc3JFeGl0
R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKTsKLSAgICB9Ci0gICAgCiAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIGdldFNsb3dQYXRoQ2FsbFRodW5rKFZNJiB2bSwgY29uc3QgU2xvd1BhdGhDYWxs
S2V5JiBrZXkpCiAgICAgewogICAgICAgICByZXR1cm4gZ2VuZXJhdGVJZk5lY2Vzc2FyeSgKQEAg
LTk2LDcgKzkwLDYgQEAgcHVibGljOgogICAgIH0KICAgICAKIHByaXZhdGU6Ci0gICAgVGh1bmtN
YXA8TG9jYXRpb24+IG1fb3NyRXhpdFRodW5rczsKICAgICBUaHVua01hcDxTbG93UGF0aENhbGxL
ZXk+IG1fc2xvd1BhdGhDYWxsVGh1bmtzOwogfTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExVbndpbmRJbmZvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTFVud2luZEluZm8uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExVbndpbmRJbmZvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMVW53aW5kSW5mby5oIgorCisjaWYgRU5B
QkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KKyNpbmNsdWRlIDxtYWNo
LW8vY29tcGFjdF91bndpbmRfZW5jb2RpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBGVEwgeworCitVbndpbmRJbmZvOjpVbndpbmRJbmZvKCkgeyB9CitVbndpbmRJbmZvOjp+VW53
aW5kSW5mbygpIHsgfQorCituYW1lc3BhY2UgeworCitzdHJ1Y3QgQ29tcGFjdFVud2luZCB7Cisg
ICAgdm9pZCogZnVuY3Rpb247CisgICAgdWludDMyX3Qgc2l6ZTsKKyAgICBjb21wYWN0X3Vud2lu
ZF9lbmNvZGluZ190IGVuY29kaW5nOworICAgIHZvaWQqIHBlcnNvbmFsaXR5OworICAgIHZvaWQq
IGxzZGE7Cit9OworCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwordm9pZCBVbndpbmRJbmZv
OjpwYXJzZSh2b2lkKiBzZWN0aW9uLCBzaXplX3Qgc2l6ZSwgR2VuZXJhdGVkRnVuY3Rpb24gZ2Vu
ZXJhdGVkRnVuY3Rpb24pCit7CisgICAgbV9yZWdpc3RlcnMuY2xlYXIoKTsKKyAgICAKKyAgICBS
RUxFQVNFX0FTU0VSVChzZWN0aW9uKTsKKyAgICBSRUxFQVNFX0FTU0VSVChzaXplID49IHNpemVv
ZihDb21wYWN0VW53aW5kKSk7CisgICAgCisgICAgQ29tcGFjdFVud2luZCogZGF0YSA9IGJpdHdp
c2VfY2FzdDxDb21wYWN0VW53aW5kKj4oc2VjdGlvbik7CisgICAgCisgICAgUkVMRUFTRV9BU1NF
UlQoIWRhdGEtPnBlcnNvbmFsaXR5KTsgLy8gV2UgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIHRo
aXMuCisgICAgUkVMRUFTRV9BU1NFUlQoIWRhdGEtPmxzZGEpOyAvLyBXZSBkb24ndCBrbm93IGhv
dyB0byBoYW5kbGUgdGhpcy4KKyAgICBSRUxFQVNFX0FTU0VSVChkYXRhLT5mdW5jdGlvbiA9PSBn
ZW5lcmF0ZWRGdW5jdGlvbik7IC8vIFRoZSB1bndpbmQgZGF0YSBiZXR0ZXIgYmUgZm9yIG91ciBm
dW5jdGlvbi4KKyAgICAKKyAgICBjb21wYWN0X3Vud2luZF9lbmNvZGluZ190IGVuY29kaW5nID0g
ZGF0YS0+ZW5jb2Rpbmc7CisgICAgUkVMRUFTRV9BU1NFUlQoIShlbmNvZGluZyAmIFVOV0lORF9J
U19OT1RfRlVOQ1RJT05fU1RBUlQpKTsKKyAgICBSRUxFQVNFX0FTU0VSVCghKGVuY29kaW5nICYg
VU5XSU5EX0hBU19MU0RBKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoIShlbmNvZGluZyAmIFVOV0lO
RF9QRVJTT05BTElUWV9NQVNLKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoKGVuY29kaW5nICYgVU5X
SU5EX1g4Nl82NF9NT0RFX01BU0spID09IFVOV0lORF9YODZfNjRfTU9ERV9SQlBfRlJBTUUpOwor
ICAgIAorICAgIGludDMyX3Qgb2Zmc2V0ID0gLSgoZW5jb2RpbmcgJiBVTldJTkRfWDg2XzY0X1JC
UF9GUkFNRV9PRkZTRVQpID4+IDE2KSAqIDg7CisgICAgdWludDMyX3QgbmV4dFJlZ2lzdGVycyA9
IGVuY29kaW5nOworICAgIGZvciAodW5zaWduZWQgaSA9IDU7IGktLTspIHsKKyAgICAgICAgdWlu
dDMyX3QgY3VycmVudFJlZ2lzdGVyID0gbmV4dFJlZ2lzdGVycyAmIDc7CisgICAgICAgIG5leHRS
ZWdpc3RlcnMgPj49IDM7CisgICAgICAgIAorICAgICAgICBzd2l0Y2ggKGN1cnJlbnRSZWdpc3Rl
cikgeworICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX05PTkU6CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1JCWDoK
KyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJlZ2lz
dGVyczo6ZWJ4LCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisg
ICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUjEyOgorICAgICAgICAgICAgbV9yZWdpc3Rl
cnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjpyMTIsIG9mZnNldCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBVTldJTkRfWDg2
XzY0X1JFR19SMTM6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJBdE9m
ZnNldChYODZSZWdpc3RlcnM6OnIxMywgb2Zmc2V0KSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1IxNDoKKyAgICAgICAg
ICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJlZ2lzdGVyczo6cjE0
LCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgIGNh
c2UgVU5XSU5EX1g4Nl82NF9SRUdfUjE1OgorICAgICAgICAgICAgbV9yZWdpc3RlcnMuYXBwZW5k
KFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjpyMTUsIG9mZnNldCkpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBVTldJTkRfWDg2XzY0X1JFR19S
QlA6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJBdE9mZnNldChYODZS
ZWdpc3RlcnM6OmVicCwgb2Zmc2V0KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb2Zmc2V0ICs9IDg7CisgICAgfQor
ICAgIAorICAgIHN0ZDo6c29ydChtX3JlZ2lzdGVycy5iZWdpbigpLCBtX3JlZ2lzdGVycy5lbmQo
KSk7Cit9CisKK3ZvaWQgVW53aW5kSW5mbzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAor
eworICAgIG91dC5wcmludChsaXN0RHVtcChtX3JlZ2lzdGVycykpOworfQorCitSZWdpc3RlckF0
T2Zmc2V0KiBVbndpbmRJbmZvOjpmaW5kKEdQUlJlZyBncHIpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHRyeUJpbmFyeVNlYXJjaDxSZWdpc3RlckF0T2Zmc2V0LCBHUFJSZWc+KG1fcmVnaXN0ZXJzLCBt
X3JlZ2lzdGVycy5zaXplKCksIGdwciwgUmVnaXN0ZXJBdE9mZnNldDo6Z2V0R1BSKTsKK30KKwor
dW5zaWduZWQgVW53aW5kSW5mbzo6aW5kZXhPZihHUFJSZWcgZ3ByKSBjb25zdAoreworICAgIGlm
IChSZWdpc3RlckF0T2Zmc2V0KiBwb2ludGVyID0gZmluZChncHIpKQorICAgICAgICByZXR1cm4g
cG9pbnRlciAtIG1fcmVnaXN0ZXJzLmJlZ2luKCk7CisgICAgcmV0dXJuIFVJTlRfTUFYOworfQor
Cit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExVbndpbmRJbmZvLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExVbndpbmRJbmZvLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFVud2luZEluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRlRMVW53aW5kSW5mb19oCisjZGVmaW5lIEZUTFVu
d2luZEluZm9faAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJGVExHZW5lcmF0
ZWRGdW5jdGlvbi5oIgorI2luY2x1ZGUgIkZUTFJlZ2lzdGVyQXRPZmZzZXQuaCIKKworbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitzdHJ1Y3QgVW53aW5kSW5mbyB7CisgICAgVW53
aW5kSW5mbygpOworICAgIH5VbndpbmRJbmZvKCk7CisgICAgCisgICAgdm9pZCBwYXJzZSh2b2lk
Kiwgc2l6ZV90LCBHZW5lcmF0ZWRGdW5jdGlvbik7CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJikgY29uc3Q7CisgICAgCisgICAgUmVnaXN0ZXJBdE9mZnNldCogZmluZChHUFJSZWcg
Z3ByKSBjb25zdDsKKyAgICB1bnNpZ25lZCBpbmRleE9mKEdQUlJlZyBncHIpIGNvbnN0OyAvLyBS
ZXR1cm5zIFVJTlRfTUFYIGlmIG5vdCBmb3VuZC4KKyAgICAKKyAgICBWZWN0b3I8UmVnaXN0ZXJB
dE9mZnNldD4gbV9yZWdpc3RlcnM7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisK
KyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTFVud2luZEluZm9faAor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5nZS5jcHAJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZU
TFZhbHVlUmFuZ2UuaCIKKworI2luY2x1ZGUgIkZUTEFiYnJldmlhdGlvbnMuaCIKKworI2lmIEVO
QUJMRShGVExfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK3ZvaWQg
VmFsdWVSYW5nZTo6ZGVjb3JhdGVJbnN0cnVjdGlvbigKKyAgICBMQ29udGV4dCBjb250ZXh0LCBM
VmFsdWUgbG9hZEluc3RydWN0aW9uLCB1bnNpZ25lZCByYW5nZUtpbmQpIGNvbnN0Cit7CisgICAg
aWYgKCFtX3JhbmdlTWV0YWRhdGEpCisgICAgICAgIG1fcmFuZ2VNZXRhZGF0YSA9IG1kTm9kZShj
b250ZXh0LCBtX2JlZ2luLCBtX2VuZCk7CisgICAgc2V0TWV0YWRhdGEobG9hZEluc3RydWN0aW9u
LCByYW5nZUtpbmQsIG1fcmFuZ2VNZXRhZGF0YSk7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlND
OjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgRlRMVmFsdWVSYW5nZV9oCisjZGVmaW5lIEZUTFZhbHVlUmFuZ2VfaAorCisjaWYgRU5BQkxF
KEZUTF9KSVQpCisKKyNpbmNsdWRlICJGVExBYmJyZXZpYXRlZFR5cGVzLmgiCisKK25hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworY2xhc3MgVmFsdWVSYW5nZSB7CitwdWJsaWM6Cisg
ICAgVmFsdWVSYW5nZSgpCisgICAgICAgIDogbV9iZWdpbigwKQorICAgICAgICAsIG1fZW5kKDAp
CisgICAgICAgICwgbV9yYW5nZU1ldGFkYXRhKDApCisgICAgeworICAgIH0KKyAgICAKKyAgICBW
YWx1ZVJhbmdlKExWYWx1ZSBiZWdpbiwgTFZhbHVlIGVuZCkKKyAgICAgICAgOiBtX2JlZ2luKGJl
Z2luKQorICAgICAgICAsIG1fZW5kKGVuZCkKKyAgICAgICAgLCBtX3JhbmdlTWV0YWRhdGEoMCkK
KyAgICB7CisgICAgfQorICAgIAorICAgIExWYWx1ZSBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIG1f
YmVnaW47IH0KKyAgICBMVmFsdWUgZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lbmQ7IH0KKyAgICAK
KyAgICB2b2lkIGRlY29yYXRlSW5zdHJ1Y3Rpb24oTENvbnRleHQsIExWYWx1ZSBsb2FkSW5zdHJ1
Y3Rpb24sIHVuc2lnbmVkIHJhbmdlS2luZCkgY29uc3Q7CisgICAgCitwcml2YXRlOgorICAgIExW
YWx1ZSBtX2JlZ2luOworICAgIExWYWx1ZSBtX2VuZDsKKyAgICBtdXRhYmxlIExWYWx1ZSBtX3Jh
bmdlTWV0YWRhdGE7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAv
LyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTFZhbHVlUmFuZ2VfaAorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuY3BwCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRp
dmVSb290cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDYgQEAgdm9pZCBDb25zZXJ2
YXRpdmVSb290czo6Z2VuZXJpY0FkZFNwYW4odgogICAgICAgICBlbmQgPSBzd2FwVGVtcDsKICAg
ICB9CiAKLSAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGNoYXIqPihlbmQpIC0gc3RhdGljX2Nhc3Q8
Y2hhcio+KGJlZ2luKSkgPCAweDEwMDAwMDApOwogICAgIEFTU0VSVChpc1BvaW50ZXJBbGlnbmVk
KGJlZ2luKSk7CiAgICAgQVNTRVJUKGlzUG9pbnRlckFsaWduZWQoZW5kKSk7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENv
cHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICoKICAqICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCkBAIC00NTEsMjQgKzQ1MSwyNyBAQCB2b2lkIEhlYXA6Om1hcmtSb290cygpCiAgICAgZG91
YmxlIGdjU3RhcnRUaW1lID0gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKICNl
bmRpZgogCisgICAgbV9jb2RlQmxvY2tzLmNsZWFyTWFya3MoKTsKICAgICB2b2lkKiBkdW1teTsK
LSAgICAKKwogICAgIC8vIFdlIGdhdGhlciBjb25zZXJ2YXRpdmUgcm9vdHMgYmVmb3JlIGNsZWFy
aW5nIG1hcmsgYml0cyBiZWNhdXNlIGNvbnNlcnZhdGl2ZQogICAgIC8vIGdhdGhlcmluZyB1c2Vz
IHRoZSBtYXJrIGJpdHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSByZWZlcmVuY2UgaXMgdmFsaWQu
CiAgICAgQ29uc2VydmF0aXZlUm9vdHMgbWFjaGluZVRocmVhZFJvb3RzKCZtX29iamVjdFNwYWNl
LmJsb2NrcygpLCAmbV9zdG9yYWdlU3BhY2UpOwogICAgIG1faml0U3R1YlJvdXRpbmVzLmNsZWFy
TWFya3MoKTsKICAgICB7CiAgICAgICAgIEdDUEhBU0UoR2F0aGVyQ29uc2VydmF0aXZlUm9vdHMp
OwotICAgICAgICBtX21hY2hpbmVUaHJlYWRzLmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKG1hY2hp
bmVUaHJlYWRSb290cywgJmR1bW15KTsKKyAgICAgICAgbV9tYWNoaW5lVGhyZWFkcy5nYXRoZXJD
b25zZXJ2YXRpdmVSb290cyhtYWNoaW5lVGhyZWFkUm9vdHMsIG1faml0U3R1YlJvdXRpbmVzLCBt
X2NvZGVCbG9ja3MsICZkdW1teSk7CiAgICAgfQogCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkK
ICAgICBDb25zZXJ2YXRpdmVSb290cyBzdGFja1Jvb3RzKCZtX29iamVjdFNwYWNlLmJsb2Nrcygp
LCAmbV9zdG9yYWdlU3BhY2UpOwotICAgIG1fY29kZUJsb2Nrcy5jbGVhck1hcmtzKCk7CiAgICAg
ewogICAgICAgICBHQ1BIQVNFKEdhdGhlclN0YWNrUm9vdHMpOwogICAgICAgICBzdGFjaygpLmdh
dGhlckNvbnNlcnZhdGl2ZVJvb3RzKHN0YWNrUm9vdHMsIG1faml0U3R1YlJvdXRpbmVzLCBtX2Nv
ZGVCbG9ja3MpOwotICAgICAgICBzdGFjaygpLnNhbml0aXplU3RhY2soKTsKICAgICB9CisjZW5k
aWYKKworICAgIHNhbml0aXplU3RhY2tGb3JWTShtX3ZtKTsKIAogI2lmIEVOQUJMRShERkdfSklU
KQogICAgIENvbnNlcnZhdGl2ZVJvb3RzIHNjcmF0Y2hCdWZmZXJSb290cygmbV9vYmplY3RTcGFj
ZS5ibG9ja3MoKSwgJm1fc3RvcmFnZVNwYWNlKTsKQEAgLTUwNSwxMiArNTA4LDE0IEBAIHZvaWQg
SGVhcDo6bWFya1Jvb3RzKCkKICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kKG1hY2hpbmVUaHJl
YWRSb290cyk7CiAgICAgICAgICAgICB2aXNpdG9yLmRvbmF0ZUFuZERyYWluKCk7CiAgICAgICAg
IH0KKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICAgICB7CiAgICAgICAgICAgICBHQ1BI
QVNFKFZpc2l0U3RhY2tSb290cyk7CiAgICAgICAgICAgICBNQVJLX0xPR19ST09UKHZpc2l0b3Is
ICJTdGFjayIpOwogICAgICAgICAgICAgdmlzaXRvci5hcHBlbmQoc3RhY2tSb290cyk7CiAgICAg
ICAgICAgICB2aXNpdG9yLmRvbmF0ZUFuZERyYWluKCk7CiAgICAgICAgIH0KKyNlbmRpZgogI2lm
IEVOQUJMRShERkdfSklUKQogICAgICAgICB7CiAgICAgICAgICAgICBHQ1BIQVNFKFZpc2l0U2Ny
YXRjaEJ1ZmZlclJvb3RzKTsKQEAgLTk1MiwxMiArOTU3LDEyIEBAIHZvaWQgSGVhcDo6Y29sbGVj
dCgpCiAKIGJvb2wgSGVhcDo6Y29sbGVjdElmTmVjZXNzYXJ5T3JEZWZlcigpCiB7Ci0gICAgaWYg
KG1fZGVmZXJyYWxEZXB0aCkKKyAgICBpZiAoaXNEZWZlcnJlZCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgCisKICAgICBpZiAoIXNob3VsZENvbGxlY3QoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIAorCiAgICAgY29sbGVjdCgpOwogICAgIHJldHVybiB0cnVlOwogfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsNyArMTk3
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICB2b2lkIGFkZFJlZmVyZW5j
ZShKU0NlbGwqLCBBcnJheUJ1ZmZlciopOwogICAgICAgICAKLSAgICAgICAgYm9vbCBpc0RlZmVy
cmVkKCkgY29uc3QgeyByZXR1cm4gISFtX2RlZmVycmFsRGVwdGg7IH0KKyAgICAgICAgYm9vbCBp
c0RlZmVycmVkKCkgY29uc3QgeyByZXR1cm4gISFtX2RlZmVycmFsRGVwdGggfHwgT3B0aW9uczo6
ZGlzYWJsZUdDKCk7IH0KIAogI2lmIFVTRShDRikKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gdm9pZCByZWxlYXNlU29vbihSZXRhaW5QdHI8VD4mJik7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAJKHJldmlzaW9uIDE2
MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIE1hY2hpbmVUaHJlYWRz
OjpyZW1vdmVDdXJyZW50VGhyZWFkCiAjZGVmaW5lIFJFR0lTVEVSX0JVRkZFUl9BTElHTk1FTlQK
ICNlbmRpZgogCi12b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9tQ3VycmVudFRocmVhZChD
b25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIHZvaWQqIHN0YWNrQ3VycmVudCkK
K3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGhyZWFkKENvbnNlcnZhdGl2
ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgSklUU3R1YlJvdXRpbmVTZXQmIGppdFN0dWJSb3V0
aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzLCB2b2lkKiBzdGFja0N1cnJlbnQpCiB7CiAg
ICAgLy8gc2V0am1wIGZvcmNlcyB2b2xhdGlsZSByZWdpc3RlcnMgb250byB0aGUgc3RhY2sKICAg
ICBqbXBfYnVmIHJlZ2lzdGVycyBSRUdJU1RFUl9CVUZGRVJfQUxJR05NRU5UOwpAQCAtMjQ4LDEy
ICsyNDgsMTIgQEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJvbUN1cnJlbnRUaAogICAg
IHZvaWQqIHJlZ2lzdGVyc0JlZ2luID0gJnJlZ2lzdGVyczsKICAgICB2b2lkKiByZWdpc3RlcnNF
bmQgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZih2
b2lkKik+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PigmcmVnaXN0ZXJzICsgMSkpKTsKICAg
ICBzd2FwSWZCYWNrd2FyZHMocmVnaXN0ZXJzQmVnaW4sIHJlZ2lzdGVyc0VuZCk7Ci0gICAgY29u
c2VydmF0aXZlUm9vdHMuYWRkKHJlZ2lzdGVyc0JlZ2luLCByZWdpc3RlcnNFbmQpOworICAgIGNv
bnNlcnZhdGl2ZVJvb3RzLmFkZChyZWdpc3RlcnNCZWdpbiwgcmVnaXN0ZXJzRW5kLCBqaXRTdHVi
Um91dGluZXMsIGNvZGVCbG9ja3MpOwogCiAgICAgdm9pZCogc3RhY2tCZWdpbiA9IHN0YWNrQ3Vy
cmVudDsKICAgICB2b2lkKiBzdGFja0VuZCA9IHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLm9yaWdp
bigpOwogICAgIHN3YXBJZkJhY2t3YXJkcyhzdGFja0JlZ2luLCBzdGFja0VuZCk7Ci0gICAgY29u
c2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrQmVnaW4sIHN0YWNrRW5kKTsKKyAgICBjb25zZXJ2YXRp
dmVSb290cy5hZGQoc3RhY2tCZWdpbiwgc3RhY2tFbmQsIGppdFN0dWJSb3V0aW5lcywgY29kZUJs
b2Nrcyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzdXNwZW5kVGhyZWFkKGNvbnN0IFBsYXRm
b3JtVGhyZWFkJiBwbGF0Zm9ybVRocmVhZCkKQEAgLTQzNCwyNCArNDM0LDI0IEBAIHN0YXRpYyB2
b2lkIGZyZWVQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycygKICNlbmRpZgogfQogCi12b2lkIE1hY2hp
bmVUaHJlYWRzOjpnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNl
cnZhdGl2ZVJvb3RzLCBUaHJlYWQqIHRocmVhZCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhl
ckZyb21PdGhlclRocmVhZChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIFRo
cmVhZCogdGhyZWFkLCBKSVRTdHViUm91dGluZVNldCYgaml0U3R1YlJvdXRpbmVzLCBDb2RlQmxv
Y2tTZXQmIGNvZGVCbG9ja3MpCiB7CiAgICAgUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMgcmVnczsK
ICAgICBzaXplX3QgcmVnU2l6ZSA9IGdldFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzKHRocmVhZC0+
cGxhdGZvcm1UaHJlYWQsIHJlZ3MpOwogCi0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YXRp
Y19jYXN0PHZvaWQqPigmcmVncyksIHN0YXRpY19jYXN0PHZvaWQqPihyZWludGVycHJldF9jYXN0
PGNoYXIqPigmcmVncykgKyByZWdTaXplKSk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0
YXRpY19jYXN0PHZvaWQqPigmcmVncyksIHN0YXRpY19jYXN0PHZvaWQqPihyZWludGVycHJldF9j
YXN0PGNoYXIqPigmcmVncykgKyByZWdTaXplKSwgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tz
KTsKIAogICAgIHZvaWQqIHN0YWNrUG9pbnRlciA9IG90aGVyVGhyZWFkU3RhY2tQb2ludGVyKHJl
Z3MpOwogICAgIHZvaWQqIHN0YWNrQmFzZSA9IHRocmVhZC0+c3RhY2tCYXNlOwogICAgIHN3YXBJ
ZkJhY2t3YXJkcyhzdGFja1BvaW50ZXIsIHN0YWNrQmFzZSk7Ci0gICAgY29uc2VydmF0aXZlUm9v
dHMuYWRkKHN0YWNrUG9pbnRlciwgc3RhY2tCYXNlKTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5h
ZGQoc3RhY2tQb2ludGVyLCBzdGFja0Jhc2UsIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7
CiAKICAgICBmcmVlUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMocmVncyk7CiB9CiAKLXZvaWQgTWFj
aGluZVRocmVhZHM6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBj
b25zZXJ2YXRpdmVSb290cywgdm9pZCogc3RhY2tDdXJyZW50KQordm9pZCBNYWNoaW5lVGhyZWFk
czo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2
ZVJvb3RzLCBKSVRTdHViUm91dGluZVNldCYgaml0U3R1YlJvdXRpbmVzLCBDb2RlQmxvY2tTZXQm
IGNvZGVCbG9ja3MsIHZvaWQqIHN0YWNrQ3VycmVudCkKIHsKLSAgICBnYXRoZXJGcm9tQ3VycmVu
dFRocmVhZChjb25zZXJ2YXRpdmVSb290cywgc3RhY2tDdXJyZW50KTsKKyAgICBnYXRoZXJGcm9t
Q3VycmVudFRocmVhZChjb25zZXJ2YXRpdmVSb290cywgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxv
Y2tzLCBzdGFja0N1cnJlbnQpOwogCiAgICAgaWYgKG1fdGhyZWFkU3BlY2lmaWMpIHsKICAgICAg
ICAgUGxhdGZvcm1UaHJlYWQgY3VycmVudFBsYXRmb3JtVGhyZWFkID0gZ2V0Q3VycmVudFBsYXRm
b3JtVGhyZWFkKCk7CkBAIC00NzMsNyArNDczLDcgQEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0
aGVyQ29uc2VydmF0aXZlUgogICAgICAgICAvLyBhbmQgc2luY2UgdGhpcyBpcyBhIHNoYXJlZCBo
ZWFwLCB0aGV5IGFyZSByZWFsIGxvY2tzLgogICAgICAgICBmb3IgKFRocmVhZCogdGhyZWFkID0g
bV9yZWdpc3RlcmVkVGhyZWFkczsgdGhyZWFkOyB0aHJlYWQgPSB0aHJlYWQtPm5leHQpIHsKICAg
ICAgICAgICAgIGlmICghZXF1YWxUaHJlYWQodGhyZWFkLT5wbGF0Zm9ybVRocmVhZCwgY3VycmVu
dFBsYXRmb3JtVGhyZWFkKSkKLSAgICAgICAgICAgICAgICBnYXRoZXJGcm9tT3RoZXJUaHJlYWQo
Y29uc2VydmF0aXZlUm9vdHMsIHRocmVhZCk7CisgICAgICAgICAgICAgICAgZ2F0aGVyRnJvbU90
aGVyVGhyZWFkKGNvbnNlcnZhdGl2ZVJvb3RzLCB0aHJlYWQsIGppdFN0dWJSb3V0aW5lcywgY29k
ZUJsb2Nrcyk7CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKFRocmVhZCogdGhyZWFkID0gbV9y
ZWdpc3RlcmVkVGhyZWFkczsgdGhyZWFkOyB0aHJlYWQgPSB0aHJlYWQtPm5leHQpIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5oCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3Rh
Y2tNYXJrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsMTAgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKKyAgICBjbGFzcyBDb2RlQmxvY2tTZXQ7CiAgICAgY2xhc3MgQ29uc2VydmF0aXZl
Um9vdHM7CiAgICAgY2xhc3MgSGVhcDsKKyAgICBjbGFzcyBKSVRTdHViUm91dGluZVNldDsKIAog
ICAgIGNsYXNzIE1hY2hpbmVUaHJlYWRzIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
TWFjaGluZVRocmVhZHMpOwpAQCAtMzcsMjAgKzM5LDIwIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBNYWNoaW5lVGhyZWFkcyhIZWFwKik7CiAgICAgICAgIH5NYWNoaW5lVGhyZWFkcygpOwog
Ci0gICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMm
LCB2b2lkKiBzdGFja0N1cnJlbnQpOworICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJv
b3RzKENvbnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2RlQmxvY2tTZXQm
LCB2b2lkKiBzdGFja0N1cnJlbnQpOwogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQg
bWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKTsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBhZGRDdXJyZW50VGhyZWFkKCk7IC8vIE9ubHkgbmVlZHMgdG8gYmUgY2FsbGVkIGJ5
IGNsaWVudHMgdGhhdCBjYW4gdXNlIHRoZSBzYW1lIGhlYXAgZnJvbSBtdWx0aXBsZSB0aHJlYWRz
LgogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBnYXRoZXJGcm9tQ3VycmVudFRocmVhZChD
b25zZXJ2YXRpdmVSb290cyYsIHZvaWQqIHN0YWNrQ3VycmVudCk7CisgICAgICAgIHZvaWQgZ2F0
aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmLCBKSVRTdHViUm91dGluZVNl
dCYsIENvZGVCbG9ja1NldCYsIHZvaWQqIHN0YWNrQ3VycmVudCk7CiAKICAgICAgICAgY2xhc3Mg
VGhyZWFkOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRocmVhZCh2b2lkKik7CiAgICAg
ICAgIHZvaWQgcmVtb3ZlQ3VycmVudFRocmVhZCgpOwogCi0gICAgICAgIHZvaWQgZ2F0aGVyRnJv
bU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiwgVGhyZWFkKik7CisgICAgICAgIHZvaWQg
Z2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiwgVGhyZWFkKiwgSklUU3R1
YlJvdXRpbmVTZXQmLCBDb2RlQmxvY2tTZXQmKTsKIAogICAgICAgICBNdXRleCBtX3JlZ2lzdGVy
ZWRUaHJlYWRzTXV0ZXg7CiAgICAgICAgIFRocmVhZCogbV9yZWdpc3RlcmVkVGhyZWFkczsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuY3Bw
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
Q2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDExICsxMTYsMTEgQEAgQ29kZU9y
aWdpbiBDYWxsRnJhbWU6OmNvZGVPcmlnaW4oKQogICAgIHJldHVybiBDb2RlT3JpZ2luKGxvY2F0
aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKIH0KIAotUmVnaXN0ZXIqIENhbGxGcmFtZTo6ZnJhbWVF
eHRlbnRJbnRlcm5hbCgpCitSZWdpc3RlciogQ2FsbEZyYW1lOjp0b3BPZkZyYW1lSW50ZXJuYWwo
KQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+Y29kZUJsb2NrKCk7CiAgICAg
QVNTRVJUKGNvZGVCbG9jayk7Ci0gICAgcmV0dXJuIHJlZ2lzdGVycygpICsgdmlydHVhbFJlZ2lz
dGVyRm9yTG9jYWwoY29kZUJsb2NrLT5mcmFtZVJlZ2lzdGVyQ291bnQoKSkub2Zmc2V0KCk7Cisg
ICAgcmV0dXJuIHJlZ2lzdGVycygpICsgY29kZUJsb2NrLT5zdGFja1BvaW50ZXJPZmZzZXQoKTsK
IH0KIAogSlNHbG9iYWxPYmplY3QqIENhbGxGcmFtZTo6dm1FbnRyeUdsb2JhbE9iamVjdCgpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NiwxNSArMTc2LDEzIEBAIG5hbWVzcGFjZSBK
U0MgIHsKICAgICAgICAgLy8gQ29kZU9yaWdpbigwKSBpZiB3ZSdyZSBpbiBuYXRpdmUgY29kZS4K
ICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKCk7CiAKLSAgICAgICAgUmVnaXN0ZXIqIGZy
YW1lRXh0ZW50KCkKKyAgICAgICAgUmVnaXN0ZXIqIHRvcE9mRnJhbWUoKQogICAgICAgICB7CiAg
ICAgICAgICAgICBpZiAoaXNWTUVudHJ5U2VudGluZWwoKSB8fCAhY29kZUJsb2NrKCkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdGVycygpIC0gMTsKLSAgICAgICAgICAgIHJldHVybiBm
cmFtZUV4dGVudEludGVybmFsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdGVycygp
OworICAgICAgICAgICAgcmV0dXJuIHRvcE9mRnJhbWVJbnRlcm5hbCgpOwogICAgICAgICB9CiAg
ICAgCi0gICAgICAgIFJlZ2lzdGVyKiBmcmFtZUV4dGVudEludGVybmFsKCk7Ci0KICNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQogICAgICAgICBJbnN0cnVjdGlvbiogY3VycmVudFZQQygpIGNvbnN0CiAg
ICAgICAgIHsKQEAgLTMxOCw2ICszMTYsOCBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAgICAgIEV4
ZWNTdGF0ZSgpOwogICAgICAgICB+RXhlY1N0YXRlKCk7CiAKKyAgICAgICAgUmVnaXN0ZXIqIHRv
cE9mRnJhbWVJbnRlcm5hbCgpOworCiAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlIGZvciBp
bnRlcm5hbCB1c2UgaW4gZGVidWdnaW5nIGFuZCB2ZXJpZmljYXRpb24KICAgICAgICAgLy8gY29k
ZSBvbmx5IGFuZCBub3QgbWVhbnQgYXMgYW4gQVBJIGZvciBnZW5lcmFsIHVzYWdlOgogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5j
cHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNs
dWRlICJSZWdFeHBQcm90b3R5cGUuaCIKICNpbmNsdWRlICJSZWdpc3Rlci5oIgogI2luY2x1ZGUg
IlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSAi
U3RhY2tWaXNpdG9yLmgiCiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24uaCIKICNpbmNs
dWRlICJTdHJvbmdJbmxpbmVzLmgiCkBAIC03NCw2ICs3NSw3IEBACiAjaW5jbHVkZSA8bGltaXRz
Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgorI2lu
Y2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJl
YW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1dURlRocmVh
ZERhdGEuaD4KQEAgLTg5LDIyICs5MSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVz
cGFjZSBKU0MgewogCi1JbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGU6OkVycm9ySGFuZGxp
bmdNb2RlKEV4ZWNTdGF0ZSAqZXhlYykKLSAgICA6IG1faW50ZXJwcmV0ZXIoKmV4ZWMtPmludGVy
cHJldGVyKCkpCi17Ci0gICAgaWYgKCFtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVS
ZWVudHJ5KQotICAgICAgICBtX2ludGVycHJldGVyLnN0YWNrKCkuZW5hYmxlRXJyb3JTdGFja1Jl
c2VydmUoKTsKLSAgICBtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVSZWVudHJ5Kys7
Ci19Ci0KLUludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZTo6fkVycm9ySGFuZGxpbmdNb2Rl
KCkKLXsKLSAgICBtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVSZWVudHJ5LS07Ci0g
ICAgQVNTRVJUKG1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5nTW9kZVJlZW50cnkgPj0gMCk7
Ci0gICAgaWYgKCFtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVSZWVudHJ5KQotICAg
ICAgICBtX2ludGVycHJldGVyLnN0YWNrKCkuZGlzYWJsZUVycm9yU3RhY2tSZXNlcnZlKCk7Ci19
Ci0KIEpTVmFsdWUgZXZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBpZiAoIWNhbGxG
cmFtZS0+YXJndW1lbnRDb3VudCgpKQpAQCAtMTUyLDIyICsxMzgsMjUgQEAgSlNWYWx1ZSBldmFs
KENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgIHJldHVybiBpbnRlcnByZXRlci0+ZXhlY3V0ZShl
dmFsLCBjYWxsRnJhbWUsIHRoaXNWYWx1ZSwgY2FsbGVyU2NvcGVDaGFpbik7CiB9CiAKLUNhbGxG
cmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U1N0YWNrKiBzdGFjaywgSlNWYWx1ZSBhcmd1bWVudHMsIGludCBmaXJzdEZyZWVSZWdpc3RlcikK
K0NhbGxGcmFtZSogc2l6ZUZyYW1lRm9yVmFyYXJncyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNT
dGFjayogc3RhY2ssIEpTVmFsdWUgYXJndW1lbnRzLCBpbnQgZmlyc3RGcmVlUmVnaXN0ZXIpCiB7
CiAgICAgaWYgKCFhcmd1bWVudHMpIHsgLy8gZi5hcHBseSh4LCBhcmd1bWVudHMpLCB3aXRoIGFy
Z3VtZW50cyB1bm1vZGlmaWVkLgogICAgICAgICB1bnNpZ25lZCBhcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyA9IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKTsKLSAgICAg
ICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUt
PnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSBhcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcyAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSAxKTsKLSAgICAgICAgaWYgKGFy
Z3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgKyAxIHx8
ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewotICAgICAgICAgICAg
Y2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25lZCBwYWRkZWRDYWxsZWVGcmFt
ZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVy
cygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyArIEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyAxKTsKKyAgICAgICAgQ2FsbEZyYW1lKiBuZXdD
YWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFk
ZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyArIDEgfHwgIXN0YWNrLT5lbnN1cmVDYXBh
Y2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAgICAgICAgICAgdGhyb3dT
dGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiAgICAgfQogCiAgICAgaWYgKGFy
Z3VtZW50cy5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgIENhbGxGcmFtZSogbmV3Q2Fs
bEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIGZpcnN0
RnJlZVJlZ2lzdGVyIC0gMSAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSAxKTsKLSAg
ICAgICAgaWYgKCFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewotICAg
ICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3JlYXRl
U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25lZCBhcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyA9IDE7CisgICAgICAgIHVuc2lnbmVkIHBhZGRlZENhbGxlZUZy
YW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0
ZXJzKCksICAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyAr
IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyAxKTsKKyAgICAgICAgQ2FsbEZyYW1lKiBu
ZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0g
cGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAoIXN0YWNrLT5lbnN1cmVDYXBh
Y2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAgICAgICAgICAgdGhyb3dT
dGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC0xODEsOSArMTcwLDEwIEBA
IENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKEMKICAgICBpZiAoYXNPYmpl
Y3QoYXJndW1lbnRzKS0+Y2xhc3NJbmZvKCkgPT0gQXJndW1lbnRzOjppbmZvKCkpIHsKICAgICAg
ICAgQXJndW1lbnRzKiBhcmdzT2JqZWN0ID0gYXNBcmd1bWVudHMoYXJndW1lbnRzKTsKICAgICAg
ICAgdW5zaWduZWQgYXJnQ291bnQgPSBhcmdzT2JqZWN0LT5sZW5ndGgoY2FsbEZyYW1lKTsKLSAg
ICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJh
bWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSBDYWxsRnJhbWU6Om9mZnNldEZv
cihhcmdDb3VudCArIDEpKTsKLSAgICAgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1lbnRzOjpNYXhB
cmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7Ci0g
ICAgICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjcmVh
dGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAgICAgIHVuc2lnbmVkIHBhZGRl
ZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25t
ZW50UmVnaXN0ZXJzKCksIC1maXJzdEZyZWVSZWdpc3RlciArIENhbGxGcmFtZTo6b2Zmc2V0Rm9y
KGFyZ0NvdW50ICsgMSkpOworICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxG
cmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9m
ZnNldCk7CisgICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzIHx8
ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsK
KyAgICAgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7CiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwpA
QCAtMTkyLDkgKzE4MiwxMCBAQCBDYWxsRnJhbWUqIHNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJn
cyhDCiAgICAgaWYgKGlzSlNBcnJheShhcmd1bWVudHMpKSB7CiAgICAgICAgIEpTQXJyYXkqIGFy
cmF5ID0gYXNBcnJheShhcmd1bWVudHMpOwogICAgICAgICB1bnNpZ25lZCBhcmdDb3VudCA9IGFy
cmF5LT5sZW5ndGgoKTsKLSAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJh
bWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSBD
YWxsRnJhbWU6Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsKLSAgICAgICAgaWYgKGFyZ0NvdW50
ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+
cmVnaXN0ZXJzKCkpKSB7Ci0gICAgICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRp
b24oY2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAg
ICAgIHVuc2lnbmVkIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIC1maXJzdEZyZWVSZWdpc3RlciArIENh
bGxGcmFtZTo6b2Zmc2V0Rm9yKGFyZ0NvdW50ICsgMSkpOworICAgICAgICBDYWxsRnJhbWUqIG5l
d0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgLSBw
YWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7CisgICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50
czo6TWF4QXJndW1lbnRzIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1l
LT5yZWdpc3RlcnMoKSkpIHsKKyAgICAgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNh
bGxGcmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gbmV3Q2FsbEZyYW1lOwpAQCAtMjAyLDkgKzE5MywxMCBAQCBDYWxsRnJhbWUqIHNpemVBbmRB
bGxvY0ZyYW1lRm9yVmFyYXJncyhDCiAKICAgICBKU09iamVjdCogYXJnT2JqZWN0ID0gYXNPYmpl
Y3QoYXJndW1lbnRzKTsKICAgICB1bnNpZ25lZCBhcmdDb3VudCA9IGFyZ09iamVjdC0+Z2V0KGNh
bGxGcmFtZSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKS50b1VJbnQzMihjYWxs
RnJhbWUpOwotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUo
Y2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gQ2FsbEZyYW1lOjpv
ZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7Ci0gICAgaWYgKGFyZ0NvdW50ID4gQXJndW1lbnRzOjpN
YXhBcmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7
Ci0gICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsICBjcmVh
dGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAgdW5zaWduZWQgcGFkZGVkQ2Fs
bGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRS
ZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lzdGVyICsgQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJn
Q291bnQgKyAxKSk7CisgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNy
ZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOwor
ICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzIHx8ICFzdGFjay0+ZW5z
dXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKKyAgICAgICAgdGhy
b3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC00MjEsNyArNDEzLDYgQEAgc3RhdGljIGJv
b2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrVmlzaXRvcgogewogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gdmlzaXRvci0+Y2FsbEZyYW1lKCk7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSB2
aXNpdG9yLT5jb2RlQmxvY2soKTsKLSAgICBDb2RlQmxvY2sqIG9sZENvZGVCbG9jayA9IGNvZGVC
bG9jazsKICAgICBKU1Njb3BlKiBzY29wZSA9IGNhbGxGcmFtZS0+c2NvcGUoKTsKIAogICAgIGlm
IChEZWJ1Z2dlciogZGVidWdnZXIgPSBjYWxsRnJhbWUtPnZtRW50cnlHbG9iYWxPYmplY3QoKS0+
ZGVidWdnZXIoKSkgewpAQCAtNDMyLDE2ICs0MjMsMTYgQEAgc3RhdGljIGJvb2wgdW53aW5kQ2Fs
bEZyYW1lKFN0YWNrVmlzaXRvcgogICAgIH0KIAogICAgIEpTVmFsdWUgYWN0aXZhdGlvbjsKLSAg
ICBpZiAob2xkQ29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSAmJiBvbGRDb2Rl
QmxvY2stPm5lZWRzQWN0aXZhdGlvbigpKSB7CisgICAgaWYgKGNvZGVCbG9jay0+Y29kZVR5cGUo
KSA9PSBGdW5jdGlvbkNvZGUgJiYgY29kZUJsb2NrLT5uZWVkc0FjdGl2YXRpb24oKSkgewogI2lm
IEVOQUJMRShERkdfSklUKQogICAgICAgICBSRUxFQVNFX0FTU0VSVCghdmlzaXRvci0+aXNJbmxp
bmVkRnJhbWUoKSk7CiAjZW5kaWYKLSAgICAgICAgYWN0aXZhdGlvbiA9IGNhbGxGcmFtZS0+dW5j
aGVja2VkUihvbGRDb2RlQmxvY2stPmFjdGl2YXRpb25SZWdpc3RlcigpLm9mZnNldCgpKS5qc1Zh
bHVlKCk7CisgICAgICAgIGFjdGl2YXRpb24gPSBjYWxsRnJhbWUtPnVuY2hlY2tlZFIoY29kZUJs
b2NrLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKS5vZmZzZXQoKSkuanNWYWx1ZSgpOwogICAgICAgICBp
ZiAoYWN0aXZhdGlvbikKICAgICAgICAgICAgIGpzQ2FzdDxKU0FjdGl2YXRpb24qPihhY3RpdmF0
aW9uKS0+dGVhck9mZigqc2NvcGUtPnZtKCkpOwogICAgIH0KIAotICAgIGlmIChvbGRDb2RlQmxv
Y2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlICYmIG9sZENvZGVCbG9jay0+dXNlc0FyZ3Vt
ZW50cygpKSB7CisgICAgaWYgKGNvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUg
JiYgY29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpIHsKICAgICAgICAgaWYgKEFyZ3VtZW50cyog
YXJndW1lbnRzID0gdmlzaXRvci0+ZXhpc3RpbmdBcmd1bWVudHMoKSkgewogICAgICAgICAgICAg
aWYgKGFjdGl2YXRpb24pCiAgICAgICAgICAgICAgICAgYXJndW1lbnRzLT5kaWRUZWFyT2ZmQWN0
aXZhdGlvbihjYWxsRnJhbWUsIGpzQ2FzdDxKU0FjdGl2YXRpb24qPihhY3RpdmF0aW9uKSk7CkBA
IC00NTUsMTEgKzQ0Niw3IEBAIHN0YXRpYyBib29sIHVud2luZENhbGxGcmFtZShTdGFja1Zpc2l0
b3IKICAgICB9CiAKICAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gY2FsbEZyYW1lLT5jYWxs
ZXJGcmFtZSgpOwotICAgIGlmIChjYWxsZXJGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSkgewot
ICAgICAgICBjYWxsRnJhbWUtPnZtKCkudG9wQ2FsbEZyYW1lID0gY2FsbGVyRnJhbWUtPnZtRW50
cnlTZW50aW5lbENhbGxlckZyYW1lKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0g
ICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuICFjYWxsZXJGcmFtZS0+aXNWTUVudHJ5U2VudGlu
ZWwoKTsKIH0KIAogc3RhdGljIFN0YWNrRnJhbWVDb2RlVHlwZSBnZXRTdGFja0ZyYW1lQ29kZVR5
cGUoU3RhY2tWaXNpdG9yJiB2aXNpdG9yKQpAQCAtNjYyLDcgKzY0OSwxNyBAQCBwcml2YXRlOgog
CiBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8qIEludGVycHJldGVyOjp1bndpbmQoQ2FsbEZyYW1l
KiYgY2FsbEZyYW1lLCBKU1ZhbHVlJiBleGNlcHRpb25WYWx1ZSkKIHsKKyAgICBpZiAoY2FsbEZy
YW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpKSB7CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVu
IHdlIHRocm93IHN0YWNrIG92ZXJmbG93IGluIGEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQKKyAg
ICAgICAgLy8gZGlyZWN0bHkgZnJvbSBjYWxsVG9KYXZhU2NyaXB0LiAgU3RhY2sgb3ZlcmZsb3cg
dGhyb3dzIHRoZSBleGNlcHRpb24gaW4gdGhlCisgICAgICAgIC8vIGNvbnRleHQgb2YgdGhlIGNh
bGxlci4gIEluIHRoYXQgY2FzZSB0aGUgY2FsbGVyIGlzIHRoZSBzZW50aW5lbCBmcmFtZS4gIFRo
ZQorICAgICAgICAvLyByaWdodCB0aGluZyB0byBkbyBpcyB0byBwcmV0ZW5kIHRoYXQgdGhlIGV4
Y2VwdGlvbiBpcyB1bmNhdWdodCBzbyB0aGF0IHdlCisgICAgICAgIC8vIGdvIHRvIHRoZSB1bmNh
dWdodCBleGNlcHRpb24gaGFuZGxlciwgd2hpY2ggcmV0dXJucyB0aHJvdWdoIGNhbGxUb0phdmFT
Y3JpcHQuCisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKICAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CisgICAgQVNTRVJUKGNvZGVCbG9jayk7
CiAgICAgYm9vbCBpc1Rlcm1pbmF0aW9uID0gZmFsc2U7CiAKICAgICBBU1NFUlQoIWV4Y2VwdGlv
blZhbHVlLmlzRW1wdHkoKSk7CkBAIC03NjcsNyArNzY0LDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRl
cjo6ZXhlY3V0ZShQcm9ncmFtRXhlYwogICAgIGlmICh2bS5pc0NvbGxlY3RvckJ1c3koKSkKICAg
ICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCi0gICAgVk1FbnRyeVNjb3BlIGVudHJ5U2NvcGUodm0s
IHNjb3BlLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgaWYgKCF2bS5pc1NhZmVUb1JlY3Vyc2UoKSkK
ICAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2Fs
bEZyYW1lKSk7CiAKQEAgLTg3NCw2ICs4NzAsOCBAQCBmYWlsZWRKU09OUDoKICAgICAvLyBJZiB3
ZSBnZXQgaGVyZSwgdGhlbiB3ZSBoYXZlIGFscmVhZHkgcHJvdmVuIHRoYXQgdGhlIHNjcmlwdCBp
cyBub3QgYSBKU09OCiAgICAgLy8gb2JqZWN0LgogCisgICAgVk1FbnRyeVNjb3BlIGVudHJ5U2Nv
cGUodm0sIHNjb3BlLT5nbG9iYWxPYmplY3QoKSk7CisKICAgICAvLyBDb21waWxlIHNvdXJjZSB0
byBieXRlY29kZSBpZiBuZWNlc3Nhcnk6CiAgICAgaWYgKEpTT2JqZWN0KiBlcnJvciA9IHByb2dy
YW0tPmluaXRpYWxpemVHbG9iYWxQcm9wZXJ0aWVzKHZtLCBjYWxsRnJhbWUsIHNjb3BlKSkKICAg
ICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4oY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9u
KGNhbGxGcmFtZSwgZXJyb3IpKTsKQEAgLTg4OCw5ICs4ODYsNiBAQCBmYWlsZWRKU09OUDoKIAog
ICAgIEFTU0VSVChjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSA9PSAxKTsgLy8gMSBwYXJhbWV0
ZXIgZm9yICd0aGlzJy4KIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5lbnRyeUNoZWNrKGNv
ZGVCbG9jaywgMSkpKQotICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3Zl
cmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKLQogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZy
YW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJsb2NrLCBzY29wZSwgMCwgdGhpc09i
aiwgMSk7CiAKQEAgLTkwMyw3ICs4OTgsNyBAQCBmYWlsZWRKU09OUDoKICAgICAgICAgU2FtcGxp
bmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAg
V2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cpOwogCi0gICAgICAgIHJl
c3VsdCA9IHByb2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0Nh
bGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpOworICAgICAgICByZXN1bHQgPSBwcm9n
cmFtLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwog
ICAgIH0KIAogICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJv
ZmlsZXIoKSkKQEAgLTk1MSw5ICs5NDYsNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRl
Q2FsbChDYWxsRnJhCiAgICAgaWYgKFVOTElLRUxZKHZtLndhdGNoZG9nLmRpZEZpcmUoY2FsbEZy
YW1lKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24o
Y2FsbEZyYW1lKTsKIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5lbnRyeUNoZWNrKG5ld0Nv
ZGVCbG9jaywgYXJnc0NvdW50KSkpCi0gICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93
U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwotCiAgICAgUHJvdG9DYWxsRnJhbWUgcHJv
dG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChuZXdDb2RlQmxvY2ssIHNjb3Bl
LCBmdW5jdGlvbiwgdGhpc1ZhbHVlLCBhcmdzQ291bnQsIGFyZ3MuZGF0YSgpKTsKIApAQCAtOTY3
LDkgKzk1OSwxMiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhCiAK
ICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKICAgICAgICAgaWYgKGlzSlNDYWxsKQotICAg
ICAgICAgICAgcmVzdWx0ID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0
ZWRKSVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNr
LmdldFRvcE9mU3RhY2soKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9IEpT
VmFsdWU6OmRlY29kZShjYWxsVG9OYXRpdmVGdW5jdGlvbihyZWludGVycHJldF9jYXN0PHZvaWQq
PihjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0udG9wQ2FsbEZyYW1lLCAmcHJvdG9DYWxs
RnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKSk7CisgICAgICAgICAgICByZXN1bHQgPSBj
YWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCkt
PmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOworICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9OYXRpdmVGdW5jdGlvbihyZWludGVy
cHJldF9jYXN0PHZvaWQqPihjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0sICZwcm90b0Nh
bGxGcmFtZSkpOworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS0+aGFkRXhjZXB0aW9uKCkpCisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0ganNOdWxsKCk7CisgICAgICAgIH0KICAgICB9CiAKICAg
ICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCkBA
IC0xMDE5LDkgKzEwMTQsNiBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1
Y3QoCiAgICAgaWYgKFVOTElLRUxZKHZtLndhdGNoZG9nLmRpZEZpcmUoY2FsbEZyYW1lKSkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oY2FsbEZyYW1l
KTsKIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5lbnRyeUNoZWNrKG5ld0NvZGVCbG9jaywg
YXJnc0NvdW50KSkpCi0gICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93U3RhY2tPdmVy
Zmxvd0Vycm9yKGNhbGxGcmFtZSkpOwotCiAgICAgUHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJh
bWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChuZXdDb2RlQmxvY2ssIHNjb3BlLCBjb25zdHJ1
Y3RvciwganNVbmRlZmluZWQoKSwgYXJnc0NvdW50LCBhcmdzLmRhdGEoKSk7CiAKQEAgLTEwMzUs
OSArMTAyNyw5IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgKIAog
ICAgICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlLgogICAgICAgICBpZiAoaXNKU0NvbnN0cnVjdCkK
LSAgICAgICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxl
LT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0KCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxs
RnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNv
bnN0cnVjdERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ29u
c3RydWN0KCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwogICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9OYXRpdmVGdW5jdGlv
bihyZWludGVycHJldF9jYXN0PHZvaWQqPihjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiks
ICZ2bS50b3BDYWxsRnJhbWUsICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNr
KCkpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9OYXRpdmVG
dW5jdGlvbihyZWludGVycHJldF9jYXN0PHZvaWQqPihjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5j
dGlvbiksICZ2bSwgJnByb3RvQ2FsbEZyYW1lKSk7CiAKICAgICAgICAgICAgIGlmICghY2FsbEZy
YW1lLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChyZXN1
bHQuaXNPYmplY3QoKSk7CkBAIC0xMDcyLDExICsxMDY0LDYgQEAgQ2FsbEZyYW1lQ2xvc3VyZSBJ
bnRlcnByZXRlcjo6cHJlcGFyZUZvcgogCiAgICAgc2l6ZV90IGFyZ3NDb3VudCA9IGFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzOwogCi0gICAgaWYgKFVOTElLRUxZKCFtX3N0YWNrLmVudHJ5Q2hl
Y2sobmV3Q29kZUJsb2NrLCBhcmdzQ291bnQpKSkgewotICAgICAgICB0aHJvd1N0YWNrT3ZlcmZs
b3dFcnJvcihjYWxsRnJhbWUpOwotICAgICAgICByZXR1cm4gQ2FsbEZyYW1lQ2xvc3VyZSgpOwot
ICAgIH0KLQogICAgIHByb3RvQ2FsbEZyYW1lLT5pbml0KG5ld0NvZGVCbG9jaywgc2NvcGUsIGZ1
bmN0aW9uLCBqc1VuZGVmaW5lZCgpLCBhcmdzQ291bnQsIGFyZ3MpOwogICAgIC8vIFJldHVybiB0
aGUgc3VjY2Vzc2Z1bCBjbG9zdXJlOgogICAgIENhbGxGcmFtZUNsb3N1cmUgcmVzdWx0ID0geyBj
YWxsRnJhbWUsIHByb3RvQ2FsbEZyYW1lLCBmdW5jdGlvbiwgZnVuY3Rpb25FeGVjdXRhYmxlLCAm
dm0sIHNjb3BlLCBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSwgYXJndW1lbnRDb3VudElu
Y2x1ZGluZ1RoaXMgfTsKQEAgLTExMDcsNyArMTA5NCw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6
OmV4ZWN1dGUoQ2FsbEZyYW1lQ2wKICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNh
bGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNo
ZG9nU2NvcGUodm0ud2F0Y2hkb2cpOwogCi0gICAgICAgIHJlc3VsdCA9IGNsb3N1cmUuZnVuY3Rp
b25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgY2xv
c3VyZS5wcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpOworICAgICAgICBy
ZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNh
bGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJvdG9DYWxsRnJhbWUpOwogICAgIH0KIAogICAg
IGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKQEAg
LTExNzgsOSArMTE2NSw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1
dGEKIAogICAgIEFTU0VSVChjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSA9PSAxKTsgLy8gMSBw
YXJhbWV0ZXIgZm9yICd0aGlzJy4KIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5lbnRyeUNo
ZWNrKGNvZGVCbG9jaywgMSkpKQotICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0
YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKLQogICAgIFByb3RvQ2FsbEZyYW1lIHByb3Rv
Q2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJsb2NrLCBzY29wZSwgMCwg
dGhpc1ZhbHVlLCAxKTsKIApAQCAtMTE5Myw3ICsxMTc3LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRl
cjo6ZXhlY3V0ZShFdmFsRXhlY3V0YQogICAgICAgICBTYW1wbGluZ1Rvb2w6OkNhbGxSZWNvcmQg
Y2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwogICAgICAgICBXYXRjaGRvZzo6U2NvcGUgd2F0
Y2hkb2dTY29wZSh2bS53YXRjaGRvZyk7CiAKLSAgICAgICAgcmVzdWx0ID0gZXZhbC0+Z2VuZXJh
dGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNrLmdldFRv
cE9mU3RhY2soKSk7CisgICAgICAgIHJlc3VsdCA9IGV2YWwtPmdlbmVyYXRlZEpJVENvZGUoKS0+
ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSk7CiAgICAgfQogCiAgICAgaWYgKExlZ2FjeVBy
b2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgJKHJldmlzaW9uIDE2
MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgQVNTRVJUKCFjYWxsRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkpOwogICAgICAg
ICAgICAgdm0tPnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKICAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgZW51bSBWTUVudHJ5U2VudGluZWxPS1RhZyB7IFZNRW50cnlTZW50aW5lbE9LIH07
CisgICAgICAgIEFMV0FZU19JTkxJTkUgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyKFZNKiB2bSwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIFZNRW50cnlTZW50aW5lbE9LVGFnKQorICAgICAgICB7CisgICAg
ICAgICAgICBBU1NFUlQodm0pOworICAgICAgICAgICAgQVNTRVJUKGNhbGxGcmFtZSk7CisgICAg
ICAgICAgICBpZiAoIWNhbGxGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSkKKyAgICAgICAgICAg
ICAgICB2bS0+dG9wQ2FsbEZyYW1lID0gY2FsbEZyYW1lOworICAgICAgICB9CiAgICAgfTsKIAog
ICAgIGNsYXNzIEludGVycHJldGVyIHsKQEAgLTE5MCwxNCArMTk5LDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBWTTsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgY2xh
c3MgRXJyb3JIYW5kbGluZ01vZGUgewotICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBKU19F
WFBPUlRfUFJJVkFURSBFcnJvckhhbmRsaW5nTW9kZShFeGVjU3RhdGUqKTsKLSAgICAgICAgICAg
IEpTX0VYUE9SVF9QUklWQVRFIH5FcnJvckhhbmRsaW5nTW9kZSgpOwotICAgICAgICBwcml2YXRl
OgotICAgICAgICAgICAgSW50ZXJwcmV0ZXImIG1faW50ZXJwcmV0ZXI7Ci0gICAgICAgIH07Ci0K
ICAgICAgICAgSW50ZXJwcmV0ZXIoVk0gJik7CiAgICAgICAgIH5JbnRlcnByZXRlcigpOwogICAg
ICAgICAKQEAgLTIzNyw4ICsyMzgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAg
ICAgIFNhbXBsaW5nVG9vbCogc2FtcGxlcigpIHsgcmV0dXJuIG1fc2FtcGxlci5nZXQoKTsgfQog
Ci0gICAgICAgIGJvb2wgaXNJbkVycm9ySGFuZGxpbmdNb2RlKCkgeyByZXR1cm4gbV9lcnJvckhh
bmRsaW5nTW9kZVJlZW50cnk7IH0KLQogICAgICAgICBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8q
IHVud2luZChDYWxsRnJhbWUqJiwgSlNWYWx1ZSYpOwogICAgICAgICBORVZFUl9JTkxJTkUgdm9p
ZCBkZWJ1ZyhDYWxsRnJhbWUqLCBEZWJ1Z0hvb2tJRCk7CiAgICAgICAgIEpTU3RyaW5nKiBzdGFj
a1RyYWNlQXNTdHJpbmcoRXhlY1N0YXRlKiwgVmVjdG9yPFN0YWNrRnJhbWU+KTsKQEAgLTI4Niw3
ICsyODUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB9OwogCiAgICAgSlNWYWx1ZSBldmFsKENh
bGxGcmFtZSopOwotICAgIENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENh
bGxGcmFtZSosIEpTU3RhY2sqLCBKU1ZhbHVlLCBpbnQpOworICAgIENhbGxGcmFtZSogc2l6ZUZy
YW1lRm9yVmFyYXJncyhDYWxsRnJhbWUqLCBKU1N0YWNrKiwgSlNWYWx1ZSwgaW50KTsKICAgICB2
b2lkIGxvYWRWYXJhcmdzKENhbGxGcmFtZSosIENhbGxGcmFtZSosIEpTVmFsdWUsIEpTVmFsdWUp
OwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9KU1N0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzEsOSArMzEsMTEgQEAKIAogI2luY2x1ZGUgIkNvbnNlcnZhdGl2ZVJvb3RzLmgiCiAj
aW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcHRpb25zLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKIHN0YXRpYyBzaXplX3QgY29tbWl0
dGVkQnl0ZXNDb3VudCA9IDA7CiAKIHN0YXRpYyBNdXRleCYgc3RhY2tTdGF0aXN0aWNzTXV0ZXgo
KQpAQCAtNDEsODcgKzQzLDk4IEBAIHN0YXRpYyBNdXRleCYgc3RhY2tTdGF0aXN0aWNzTXV0ZXgo
KQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHN0YXRpY011dGV4LCAoKSk7CiAgICAg
cmV0dXJuIHN0YXRpY011dGV4OwogfSAgICAKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09Q
KQogCi1KU1N0YWNrOjpKU1N0YWNrKFZNJiB2bSwgc2l6ZV90IGNhcGFjaXR5KQorSlNTdGFjazo6
SlNTdGFjayhWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQotICAgICwgbV9lbmQoMCkKICAgICAsIG1f
dG9wQ2FsbEZyYW1lKHZtLnRvcENhbGxGcmFtZSkKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQor
ICAgICwgbV9lbmQoMCkKKyAgICAsIG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzKDApCisj
ZW5kaWYKIHsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIHNpemVfdCBjYXBhY2l0eSA9
IE9wdGlvbnM6Om1heFBlclRocmVhZFN0YWNrVXNhZ2UoKTsKICAgICBBU1NFUlQoY2FwYWNpdHkg
JiYgaXNQYWdlQWxpZ25lZChjYXBhY2l0eSkpOwogCi0gICAgbV9yZXNlcnZhdGlvbiA9IFBhZ2VS
ZXNlcnZhdGlvbjo6cmVzZXJ2ZShyb3VuZFVwQWxsb2NhdGlvblNpemUoY2FwYWNpdHkgKiBzaXpl
b2YoUmVnaXN0ZXIpLCBjb21taXRTaXplKSwgT1NBbGxvY2F0b3I6OkpTVk1TdGFja1BhZ2VzKTsK
LSAgICB1cGRhdGVTdGFja0xpbWl0KGhpZ2hBZGRyZXNzKCkpOwotICAgIG1fY29tbWl0RW5kID0g
aGlnaEFkZHJlc3MoKTsKKyAgICBtX3Jlc2VydmF0aW9uID0gUGFnZVJlc2VydmF0aW9uOjpyZXNl
cnZlKFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihjb21taXRTaXplLCBjYXBhY2l0eSksIE9TQWxs
b2NhdG9yOjpKU1ZNU3RhY2tQYWdlcyk7CisgICAgc2V0U3RhY2tMaW1pdChoaWdoQWRkcmVzcygp
KTsKKyAgICBtX2NvbW1pdFRvcCA9IGhpZ2hBZGRyZXNzKCk7CiAgICAgCi0gICAgbV9sYXN0U3Rh
Y2tUb3AgPSBnZXRCYXNlT2ZTdGFjaygpOwotCi0gICAgZGlzYWJsZUVycm9yU3RhY2tSZXNlcnZl
KCk7CisgICAgbV9sYXN0U3RhY2tUb3AgPSBiYXNlT2ZTdGFjaygpOworI2VuZGlmIC8vIEVOQUJM
RShMTElOVF9DX0xPT1ApCiAKICAgICBtX3RvcENhbGxGcmFtZSA9IDA7CiB9CiAKKyNpZiBFTkFC
TEUoTExJTlRfQ19MT09QKQogSlNTdGFjazo6fkpTU3RhY2soKQogewotICAgIHZvaWQqIGhpZ2hB
ZGRyZXNzID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8Y2hhcio+KG1fcmVz
ZXJ2YXRpb24uYmFzZSgpKSArIG1fcmVzZXJ2YXRpb24uc2l6ZSgpKTsKLSAgICBtX3Jlc2VydmF0
aW9uLmRlY29tbWl0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fY29tbWl0RW5kKSwgcmVpbnRl
cnByZXRfY2FzdDxpbnRwdHJfdD4oaGlnaEFkZHJlc3MpIC0gcmVpbnRlcnByZXRfY2FzdDxpbnRw
dHJfdD4obV9jb21taXRFbmQpKTsKLSAgICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudCgtKHJlaW50
ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGhpZ2hBZGRyZXNzKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50
cHRyX3Q+KG1fY29tbWl0RW5kKSkpOworICAgIHB0cmRpZmZfdCBzaXplVG9EZWNvbW1pdCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGhpZ2hBZGRyZXNzKCkpIC0gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4obV9jb21taXRUb3ApOworICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQocmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4obV9jb21taXRUb3ApLCBzaXplVG9EZWNvbW1pdCk7CisgICAgYWRkVG9D
b21taXR0ZWRCeXRlQ291bnQoLXNpemVUb0RlY29tbWl0KTsKICAgICBtX3Jlc2VydmF0aW9uLmRl
YWxsb2NhdGUoKTsKIH0KIAotYm9vbCBKU1N0YWNrOjpncm93U2xvd0Nhc2UoUmVnaXN0ZXIqIG5l
d0VuZCkKK2Jvb2wgSlNTdGFjazo6Z3Jvd1Nsb3dDYXNlKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNr
KQogeworICAgIFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrV2l0aFJlc2VydmVkWm9uZSA9IG5ld1Rv
cE9mU3RhY2sgLSBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVyczsKKwogICAgIC8vIElmIHdl
IGhhdmUgYWxyZWFkeSBjb21taXR0ZWQgZW5vdWdoIG1lbW9yeSB0byBzYXRpc2Z5IHRoaXMgcmVx
dWVzdCwKICAgICAvLyBqdXN0IHVwZGF0ZSB0aGUgZW5kIHBvaW50ZXIgYW5kIHJldHVybi4KLSAg
ICBpZiAobmV3RW5kID49IG1fY29tbWl0RW5kKSB7Ci0gICAgICAgIHVwZGF0ZVN0YWNrTGltaXQo
bmV3RW5kKTsKKyAgICBpZiAobmV3VG9wT2ZTdGFja1dpdGhSZXNlcnZlZFpvbmUgPj0gbV9jb21t
aXRUb3ApIHsKKyAgICAgICAgc2V0U3RhY2tMaW1pdChuZXdUb3BPZlN0YWNrKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgLy8gQ29tcHV0ZSB0aGUgY2h1bmsgc2l6ZSBvZiBh
ZGRpdGlvbmFsIG1lbW9yeSB0byBjb21taXQsIGFuZCBzZWUgaWYgd2UKICAgICAvLyBoYXZlIGl0
IGlzIHN0aWxsIHdpdGhpbiBvdXIgYnVkZ2V0LiBJZiBub3QsIHdlJ2xsIGZhaWwgdG8gZ3JvdyBh
bmQKICAgICAvLyByZXR1cm4gZmFsc2UuCi0gICAgbG9uZyBkZWx0YSA9IHJvdW5kVXBBbGxvY2F0
aW9uU2l6ZShyZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVuZCkgLSByZWludGVycHJl
dF9jYXN0PGNoYXIqPihuZXdFbmQpLCBjb21taXRTaXplKTsKLSAgICBpZiAocmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4obV9jb21taXRFbmQpIC0gZGVsdGEgPD0gcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4obV91c2VhYmxlRW5kKSkKKyAgICBwdHJkaWZmX3QgZGVsdGEgPSByZWludGVycHJldF9jYXN0
PGNoYXIqPihtX2NvbW1pdFRvcCkgLSByZWludGVycHJldF9jYXN0PGNoYXIqPihuZXdUb3BPZlN0
YWNrV2l0aFJlc2VydmVkWm9uZSk7CisgICAgZGVsdGEgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxl
T2YoY29tbWl0U2l6ZSwgZGVsdGEpOworICAgIFJlZ2lzdGVyKiBuZXdDb21taXRUb3AgPSBtX2Nv
bW1pdFRvcCAtIChkZWx0YSAvIHNpemVvZihSZWdpc3RlcikpOworICAgIGlmIChuZXdDb21taXRU
b3AgPCByZXNlcnZhdGlvblRvcCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBP
dGhlcndpc2UsIHRoZSBncm93dGggaXMgc3RpbGwgd2l0aGluIG91ciBidWRnZXQuIEdvIGFoZWFk
IGFuZCBjb21taXQKICAgICAvLyBpdCBhbmQgcmV0dXJuIHRydWUuCi0gICAgbV9yZXNlcnZhdGlv
bi5jb21taXQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpIC0gZGVsdGEsIGRl
bHRhKTsKKyAgICBtX3Jlc2VydmF0aW9uLmNvbW1pdChuZXdDb21taXRUb3AsIGRlbHRhKTsKICAg
ICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChkZWx0YSk7Ci0gICAgbV9jb21taXRFbmQgPSByZWlu
dGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29t
bWl0RW5kKSAtIGRlbHRhKTsKLSAgICB1cGRhdGVTdGFja0xpbWl0KG5ld0VuZCk7CisgICAgbV9j
b21taXRUb3AgPSBuZXdDb21taXRUb3A7CisgICAgc2V0U3RhY2tMaW1pdChuZXdUb3BPZlN0YWNr
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBKU1N0YWNrOjpnYXRoZXJDb25zZXJ2YXRp
dmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMpCiB7Ci0gICAgY29u
c2VydmF0aXZlUm9vdHMuYWRkKGdldEJhc2VPZlN0YWNrKCksIGdldFRvcE9mU3RhY2soKSk7Cisg
ICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHRvcE9mU3RhY2soKSArIDEsIGhpZ2hBZGRyZXNzKCkp
OwogfQogCiB2b2lkIEpTU3RhY2s6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2
ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgSklUU3R1YlJvdXRpbmVTZXQmIGppdFN0dWJSb3V0
aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzKQogewotICAgIGNvbnNlcnZhdGl2ZVJvb3Rz
LmFkZChnZXRCYXNlT2ZTdGFjaygpLCBnZXRUb3BPZlN0YWNrKCksIGppdFN0dWJSb3V0aW5lcywg
Y29kZUJsb2Nrcyk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHRvcE9mU3RhY2soKSArIDEs
IGhpZ2hBZGRyZXNzKCksIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiB9CiAKIHZvaWQg
SlNTdGFjazo6c2FuaXRpemVTdGFjaygpCiB7Ci0gICAgQVNTRVJUKGdldFRvcE9mU3RhY2soKSA8
PSBnZXRCYXNlT2ZTdGFjaygpKTsKKyAgICBBU1NFUlQodG9wT2ZTdGFjaygpIDw9IGJhc2VPZlN0
YWNrKCkpOwogICAgIAotICAgIGlmIChtX2xhc3RTdGFja1RvcCA8IGdldFRvcE9mU3RhY2soKSkg
ewotICAgICAgICBjaGFyKiBiZWdpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fbGFzdFN0
YWNrVG9wKTsKLSAgICAgICAgY2hhciogZW5kID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oZ2V0
VG9wT2ZTdGFjaygpKTsKKyAgICBpZiAobV9sYXN0U3RhY2tUb3AgPCB0b3BPZlN0YWNrKCkpIHsK
KyAgICAgICAgY2hhciogYmVnaW4gPSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2xhc3RTdGFj
a1RvcCArIDEpOworICAgICAgICBjaGFyKiBlbmQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPih0
b3BPZlN0YWNrKCkgKyAxKTsKICAgICAgICAgbWVtc2V0KGJlZ2luLCAwLCBlbmQgLSBiZWdpbik7
CiAgICAgfQogICAgIAotICAgIG1fbGFzdFN0YWNrVG9wID0gZ2V0VG9wT2ZTdGFjaygpOworICAg
IG1fbGFzdFN0YWNrVG9wID0gdG9wT2ZTdGFjaygpOwogfQogCiB2b2lkIEpTU3RhY2s6OnJlbGVh
c2VFeGNlc3NDYXBhY2l0eSgpCiB7Ci0gICAgcHRyZGlmZl90IGRlbHRhID0gcmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KGhpZ2hBZGRyZXNzKCkpIC0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KG1fY29tbWl0RW5kKTsKLSAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KG1fY29tbWl0RW5k
LCBkZWx0YSk7CisgICAgUmVnaXN0ZXIqIGhpZ2hBZGRyZXNzV2l0aFJlc2VydmVkWm9uZSA9IGhp
Z2hBZGRyZXNzKCkgLSBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVyczsKKyAgICBwdHJkaWZm
X3QgZGVsdGEgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihoaWdoQWRkcmVzc1dpdGhSZXNlcnZl
ZFpvbmUpIC0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRUb3ApOworICAgIG1fcmVz
ZXJ2YXRpb24uZGVjb21taXQobV9jb21taXRUb3AsIGRlbHRhKTsKICAgICBhZGRUb0NvbW1pdHRl
ZEJ5dGVDb3VudCgtZGVsdGEpOwotICAgIG1fY29tbWl0RW5kID0gaGlnaEFkZHJlc3MoKTsKKyAg
ICBtX2NvbW1pdFRvcCA9IGhpZ2hBZGRyZXNzV2l0aFJlc2VydmVkWm9uZTsKIH0KIAogdm9pZCBK
U1N0YWNrOjppbml0aWFsaXplVGhyZWFkaW5nKCkKQEAgLTEyOSwxMiArMTQyLDYgQEAgdm9pZCBK
U1N0YWNrOjppbml0aWFsaXplVGhyZWFkaW5nKCkKICAgICBzdGFja1N0YXRpc3RpY3NNdXRleCgp
OwogfQogCi1zaXplX3QgSlNTdGFjazo6Y29tbWl0dGVkQnl0ZUNvdW50KCkKLXsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIoc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKSk7Ci0gICAgcmV0dXJuIGNvbW1p
dHRlZEJ5dGVzQ291bnQ7Ci19Ci0KIHZvaWQgSlNTdGFjazo6YWRkVG9Db21taXR0ZWRCeXRlQ291
bnQobG9uZyBieXRlQ291bnQpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHN0YWNrU3RhdGlz
dGljc011dGV4KCkpOwpAQCAtMTQyLDI1ICsxNDksNDEgQEAgdm9pZCBKU1N0YWNrOjphZGRUb0Nv
bW1pdHRlZEJ5dGVDb3VudChsbwogICAgIGNvbW1pdHRlZEJ5dGVzQ291bnQgKz0gYnl0ZUNvdW50
OwogfQogCi12b2lkIEpTU3RhY2s6OmVuYWJsZUVycm9yU3RhY2tSZXNlcnZlKCkKK3ZvaWQgSlNT
dGFjazo6c2V0UmVzZXJ2ZWRab25lU2l6ZShzaXplX3QgcmVzZXJ2ZWRab25lU2l6ZSkKIHsKLSAg
ICBtX3VzZWFibGVFbmQgPSByZXNlcnZhdGlvbkVuZCgpOworICAgIG1fcmVzZXJ2ZWRab25lU2l6
ZUluUmVnaXN0ZXJzID0gcmVzZXJ2ZWRab25lU2l6ZSAvIHNpemVvZihSZWdpc3Rlcik7CisgICAg
aWYgKG1fY29tbWl0VG9wID49IChtX2VuZCArIDEpIC0gbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdp
c3RlcnMpCisgICAgICAgIGdyb3dTbG93Q2FzZShtX2VuZCArIDEpOwogfQorI2VuZGlmIC8vIEVO
QUJMRShMTElOVF9DX0xPT1ApCiAKLXZvaWQgSlNTdGFjazo6ZGlzYWJsZUVycm9yU3RhY2tSZXNl
cnZlKCkKKyNpZiAhRU5BQkxFKExMSU5UX0NfTE9PUCkKK1JlZ2lzdGVyKiBKU1N0YWNrOjpsb3dB
ZGRyZXNzKCkgY29uc3QKIHsKLSAgICBjaGFyKiB1c2VhYmxlRW5kID0gcmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4ocmVzZXJ2YXRpb25FbmQoKSkgKyBjb21taXRTaXplOwotICAgIG1fdXNlYWJsZUVu
ZCA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4odXNlYWJsZUVuZCk7CisgICAgQVNT
RVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOworICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4obV92bS5zdGFja0xpbWl0KCkpOworfQog
Ci0gICAgLy8gQnkgdGhlIHRpbWUgd2UgZ2V0IGhlcmUsIHdlIGFyZSBndWFyYW50ZWVkIHRvIGJl
IGRlc3RydWN0aW5nIHRoZSBsYXN0Ci0gICAgLy8gSW50ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdN
b2RlIHRoYXQgZW5hYmxlZCB0aGlzIHJlc2VydmUgaW4gdGhlIGZpcnN0Ci0gICAgLy8gcGxhY2Uu
IFRoYXQgbWVhbnMgdGhlIHN0YWNrIHNwYWNlIGJleW9uZCBtX3VzZWFibGVFbmQgYmVmb3JlIHdl
Ci0gICAgLy8gZW5hYmxlZCB0aGUgcmVzZXJ2ZSB3YXMgbm90IHByZXZpb3VzbHkgaW4gdXNlLiBI
ZW5jZSwgaXQgaXMgc2FmZSB0bwotICAgIC8vIHNocmluayBiYWNrIHRvIHRoYXQgbV91c2VhYmxl
RW5kLgotICAgIGlmIChtX2VuZCA8IG1fdXNlYWJsZUVuZCkgewotICAgICAgICBBU1NFUlQobV90
b3BDYWxsRnJhbWUtPmZyYW1lRXh0ZW50KCkgPj0gbV91c2VhYmxlRW5kKTsKLSAgICAgICAgc2hy
aW5rKG1fdXNlYWJsZUVuZCk7Ci0gICAgfQorUmVnaXN0ZXIqIEpTU3RhY2s6OmhpZ2hBZGRyZXNz
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5n
RG93bndhcmQoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmVnaXN0ZXIqPih3dGZU
aHJlYWREYXRhKCkuc3RhY2soKS5vcmlnaW4oKSk7Cit9CisjZW5kaWYgLy8gIUVOQUJMRShMTElO
VF9DX0xPT1ApCisKK3NpemVfdCBKU1N0YWNrOjpjb21taXR0ZWRCeXRlQ291bnQoKQoreworI2lm
IEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHN0YWNrU3RhdGlz
dGljc011dGV4KCkpOworICAgIHJldHVybiBjb21taXR0ZWRCeXRlc0NvdW50OworI2Vsc2UKKyAg
ICAvLyBXaGVuIHVzaW5nIHRoZSBDIHN0YWNrLCB3ZSBkb24ndCBrbm93IGhvdyBtYW55IHN0YWNr
IHBhZ2VzIGFyZSBhY3R1YWxseQorICAgIC8vIGNvbW1pdHRlZC4gU28sIHdlIHVzZSB0aGUgY3Vy
cmVudCBzdGFjayB1c2FnZSBhcyBhbiBlc3RpbWF0ZS4KKyAgICBBU1NFUlQod3RmVGhyZWFkRGF0
YSgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CisgICAgaW50OF90KiBjdXJyZW50ID0g
cmVpbnRlcnByZXRfY2FzdDxpbnQ4X3QqPigmY3VycmVudCk7CisgICAgaW50OF90KiBoaWdoID0g
cmVpbnRlcnByZXRfY2FzdDxpbnQ4X3QqPih3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5vcmlnaW4o
KSk7CisgICAgcmV0dXJuIGhpZ2ggLSBjdXJyZW50OworI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2su
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFj
ay5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSlNTdGFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSwx
MSArMzUsNiBAQAogI2luY2x1ZGUgPHd0Zi9QYWdlUmVzZXJ2YXRpb24uaD4KICNpbmNsdWRlIDx3
dGYvVk1UYWdzLmg+CiAKLSNkZWZpbmUgRU5BQkxFX0RFQlVHX0pTU1RBQ0sgMAotI2lmICFkZWZp
bmVkKE5ERUJVRykgJiYgIWRlZmluZWQoRU5BQkxFX0RFQlVHX0pTU1RBQ0spCi0jZGVmaW5lIEVO
QUJMRV9ERUJVR19KU1NUQUNLIDEKLSNlbmRpZgotCiBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNs
YXNzIENvZGVCbG9ja1NldDsKQEAgLTYxLDcgKzU2LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTU3RhY2spOwogICAgIHB1YmxpYzoKICAgICAgICAg
ZW51bSBDYWxsRnJhbWVIZWFkZXJFbnRyeSB7Ci0gICAgICAgICAgICBDb2RlQmxvY2sgPSBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykgLyBzaXplb2YoUmVnaXN0ZXIpLAorICAgICAgICAgICAgQ2Fs
bGVyRnJhbWVBbmRQQ1NpemUgPSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykgLyBzaXplb2YoUmVn
aXN0ZXIpLAorICAgICAgICAgICAgQ29kZUJsb2NrID0gQ2FsbGVyRnJhbWVBbmRQQ1NpemUsCiAg
ICAgICAgICAgICBTY29wZUNoYWluLAogICAgICAgICAgICAgQ2FsbGVlLAogICAgICAgICAgICAg
QXJndW1lbnRDb3VudCwKQEAgLTcyLDkyICs2OCw4NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIEZpcnN0QXJndW1lbnQsCiAgICAgICAgIH07CiAKLSAgICAgICAgc3RhdGljIGNvbnN0
IHNpemVfdCBkZWZhdWx0Q2FwYWNpdHkgPSA1MTIgKiAxMDI0OwogICAgICAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IGNvbW1pdFNpemUgPSAxNiAqIDEwMjQ7CiAgICAgICAgIC8vIEFsbG93IDhrIG9m
IGV4Y2VzcyByZWdpc3RlcnMgYmVmb3JlIHdlIHN0YXJ0IHRyeWluZyB0byByZWFwIHRoZSBzdGFj
awogICAgICAgICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IG1heEV4Y2Vzc0NhcGFjaXR5ID0gOCAq
IDEwMjQ7CiAKLSAgICAgICAgSlNTdGFjayhWTSYsIHNpemVfdCBjYXBhY2l0eSA9IGRlZmF1bHRD
YXBhY2l0eSk7Ci0gICAgICAgIH5KU1N0YWNrKCk7CisgICAgICAgIEpTU3RhY2soVk0mKTsKICAg
ICAgICAgCisgICAgICAgIGJvb2wgZW5zdXJlQ2FwYWNpdHlGb3IoUmVnaXN0ZXIqIG5ld1RvcE9m
U3RhY2spOworCisgICAgICAgIGJvb2wgY29udGFpbnNBZGRyZXNzKFJlZ2lzdGVyKiBhZGRyZXNz
KSB7IHJldHVybiAobG93QWRkcmVzcygpIDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8IGhpZ2hBZGRy
ZXNzKCkpOyB9CisgICAgICAgIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0ZUNvdW50KCk7CisK
KyNpZiAhRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRp
dmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYpIHsgfQorICAgICAgICB2b2lkIGdhdGhlckNvbnNl
cnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2Rl
QmxvY2tTZXQmKSB7IH0KKyAgICAgICAgdm9pZCBzYW5pdGl6ZVN0YWNrKCkgeyB9CisgICAgICAg
IHN0YXRpYyB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKSB7IH0KKyNlbHNlCisgICAgICAgIH5K
U1N0YWNrKCk7CisKICAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2
YXRpdmVSb290cyYpOwogICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNl
cnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2RlQmxvY2tTZXQmKTsKICAgICAg
ICAgdm9pZCBzYW5pdGl6ZVN0YWNrKCk7CiAKLSAgICAgICAgUmVnaXN0ZXIqIGdldEJhc2VPZlN0
YWNrKCkgY29uc3QKKyAgICAgICAgUmVnaXN0ZXIqIGJhc2VPZlN0YWNrKCkgY29uc3QKICAgICAg
ICAgewogICAgICAgICAgICAgcmV0dXJuIGhpZ2hBZGRyZXNzKCkgLSAxOwogICAgICAgICB9CiAK
ICAgICAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBoaWdoQWRkcmVzcygpIC0gbG93
QWRkcmVzcygpOyB9CiAKLSAgICAgICAgYm9vbCBncm93KFJlZ2lzdGVyKik7Ci0gICAgICAgIAot
ICAgICAgICBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVDb3VudCgpOwogICAgICAgICBzdGF0
aWMgdm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCk7CiAKLSAgICAgICAgUmVnaXN0ZXIqIGdldFRv
cE9mRnJhbWUoQ2FsbEZyYW1lKik7Ci0gICAgICAgIFJlZ2lzdGVyKiBnZXRTdGFydE9mRnJhbWUo
Q2FsbEZyYW1lKik7Ci0gICAgICAgIFJlZ2lzdGVyKiBnZXRUb3BPZlN0YWNrKCk7Ci0KLSAgICAg
ICAgYm9vbCBlbnRyeUNoZWNrKGNsYXNzIENvZGVCbG9jayosIGludCk7CisgICAgICAgIHZvaWQg
c2V0UmVzZXJ2ZWRab25lU2l6ZShzaXplX3QpOwogCi0gICAgICAgIENhbGxGcmFtZSogcHVzaEZy
YW1lKGNsYXNzIENvZGVCbG9jayosIEpTU2NvcGUqLCBpbnQgYXJnc0NvdW50LCBKU09iamVjdCog
Y2FsbGVlKTsKLQotICAgICAgICB2b2lkIHBvcEZyYW1lKENhbGxGcmFtZSopOwotCi0gICAgICAg
IGJvb2wgY29udGFpbnNBZGRyZXNzKFJlZ2lzdGVyKiBhZGRyZXNzKSB7IHJldHVybiAobG93QWRk
cmVzcygpIDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8PSBoaWdoQWRkcmVzcygpKTsgfQotCi0gICAg
ICAgIHZvaWQgZW5hYmxlRXJyb3JTdGFja1Jlc2VydmUoKTsKLSAgICAgICAgdm9pZCBkaXNhYmxl
RXJyb3JTdGFja1Jlc2VydmUoKTsKLQotI2lmIEVOQUJMRShERUJVR19KU1NUQUNLKQotICAgICAg
ICB2b2lkIGluc3RhbGxGZW5jZShDYWxsRnJhbWUqLCBjb25zdCBjaGFyICpmdW5jdGlvbiA9ICIi
LCBpbnQgbGluZU5vID0gMCk7Ci0gICAgICAgIHZvaWQgdmFsaWRhdGVGZW5jZShDYWxsRnJhbWUq
LCBjb25zdCBjaGFyICpmdW5jdGlvbiA9ICIiLCBpbnQgbGluZU5vID0gMCk7Ci0gICAgICAgIHN0
YXRpYyBjb25zdCBpbnQgRmVuY2VTaXplID0gNDsKLSNlbHNlIC8vICFFTkFCTEUoREVCVUdfSlNT
VEFDSykKLSAgICAgICAgdm9pZCBpbnN0YWxsRmVuY2UoQ2FsbEZyYW1lKiwgY29uc3QgY2hhciog
PSAiIiwgaW50ID0gMCkgeyB9Ci0gICAgICAgIHZvaWQgdmFsaWRhdGVGZW5jZShDYWxsRnJhbWUq
LCBjb25zdCBjaGFyKiA9ICIiLCBpbnQgPSAwKSB7IH0KLSNlbmRpZiAvLyAhRU5BQkxFKERFQlVH
X0pTU1RBQ0spCisgICAgICAgIGlubGluZSBSZWdpc3RlciogdG9wT2ZTdGFjaygpOworI2VuZGlm
IC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKICAgICBwcml2YXRlOgorCisjaWYgRU5BQkxFKExM
SU5UX0NfTE9PUCkKICAgICAgICAgUmVnaXN0ZXIqIGxvd0FkZHJlc3MoKSBjb25zdAogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9lbmQ7CisgICAgICAgICAgICByZXR1cm4gbV9lbmQg
KyAxOwogICAgICAgICB9CiAKICAgICAgICAgUmVnaXN0ZXIqIGhpZ2hBZGRyZXNzKCkgY29uc3QK
ICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lz
dGVyKj4oc3RhdGljX2Nhc3Q8Y2hhcio+KG1fcmVzZXJ2YXRpb24uYmFzZSgpKSArIG1fcmVzZXJ2
YXRpb24uc2l6ZSgpKTsKICAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgUmVnaXN0ZXIqIGxvd0Fk
ZHJlc3MoKSBjb25zdDsKKyAgICAgICAgUmVnaXN0ZXIqIGhpZ2hBZGRyZXNzKCkgY29uc3Q7Cisj
ZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAotICAgICAgICBSZWdpc3RlciogcmVzZXJ2
YXRpb25FbmQoKSBjb25zdAorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgICAgIGlubGlu
ZSBSZWdpc3RlciogdG9wT2ZGcmFtZUZvcihDYWxsRnJhbWUqKTsKKworICAgICAgICBSZWdpc3Rl
ciogcmVzZXJ2YXRpb25Ub3AoKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICBjaGFyKiBy
ZXNlcnZhdGlvbkVuZCA9IHN0YXRpY19jYXN0PGNoYXIqPihtX3Jlc2VydmF0aW9uLmJhc2UoKSk7
Ci0gICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0ZXIqPihyZXNl
cnZhdGlvbkVuZCk7CisgICAgICAgICAgICBjaGFyKiByZXNlcnZhdGlvblRvcCA9IHN0YXRpY19j
YXN0PGNoYXIqPihtX3Jlc2VydmF0aW9uLmJhc2UoKSk7CisgICAgICAgICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0ZXIqPihyZXNlcnZhdGlvblRvcCk7CiAgICAgICAgIH0K
IAotI2lmIEVOQUJMRShERUJVR19KU1NUQUNLKQotICAgICAgICBzdGF0aWMgSlNWYWx1ZSBnZW5l
cmF0ZUZlbmNlVmFsdWUoc2l6ZV90IGFyZ0luZGV4KTsKLSAgICAgICAgdm9pZCBpbnN0YWxsVHJh
cHNBZnRlckZyYW1lKENhbGxGcmFtZSopOwotI2Vsc2UKLSAgICAgICAgdm9pZCBpbnN0YWxsVHJh
cHNBZnRlckZyYW1lKENhbGxGcmFtZSopIHsgfQotI2VuZGlmCi0KLSAgICAgICAgYm9vbCBncm93
U2xvd0Nhc2UoUmVnaXN0ZXIqKTsKLSAgICAgICAgdm9pZCBzaHJpbmsoUmVnaXN0ZXIqKTsKKyAg
ICAgICAgYm9vbCBncm93KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsKKyAgICAgICAgYm9vbCBn
cm93U2xvd0Nhc2UoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spOworICAgICAgICB2b2lkIHNocmlu
ayhSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CiAgICAgICAgIHZvaWQgcmVsZWFzZUV4Y2Vzc0Nh
cGFjaXR5KCk7CiAgICAgICAgIHZvaWQgYWRkVG9Db21taXR0ZWRCeXRlQ291bnQobG9uZyk7CiAK
LSAgICAgICAgdm9pZCB1cGRhdGVTdGFja0xpbWl0KFJlZ2lzdGVyKiBuZXdFbmQpOworICAgICAg
ICB2b2lkIHNldFN0YWNrTGltaXQoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spOworI2VuZGlmIC8v
IEVOQUJMRShMTElOVF9DX0xPT1ApCiAKICAgICAgICAgVk0mIG1fdm07CisgICAgICAgIENhbGxG
cmFtZSomIG1fdG9wQ2FsbEZyYW1lOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgICAg
IFJlZ2lzdGVyKiBtX2VuZDsKLSAgICAgICAgUmVnaXN0ZXIqIG1fY29tbWl0RW5kOwotICAgICAg
ICBSZWdpc3RlciogbV91c2VhYmxlRW5kOworICAgICAgICBSZWdpc3RlciogbV9jb21taXRUb3A7
CiAgICAgICAgIFBhZ2VSZXNlcnZhdGlvbiBtX3Jlc2VydmF0aW9uOwotICAgICAgICBDYWxsRnJh
bWUqJiBtX3RvcENhbGxGcmFtZTsKICAgICAgICAgUmVnaXN0ZXIqIG1fbGFzdFN0YWNrVG9wOwor
ICAgICAgICBwdHJkaWZmX3QgbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnM7CisjZW5kaWYg
Ly8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogICAgICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZz
ZXRzRXh0cmFjdG9yOwogICAgIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSlNTdGFja0lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAx
MywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDI2MiArMzMsNjUgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LWlubGluZSBSZWdpc3RlciogSlNTdGFjazo6Z2V0VG9wT2ZGcmFtZShDYWxsRnJhbWUqIGZyYW1l
KQoraW5saW5lIGJvb2wgSlNTdGFjazo6ZW5zdXJlQ2FwYWNpdHlGb3IoUmVnaXN0ZXIqIG5ld1Rv
cE9mU3RhY2spCiB7Ci0gICAgaWYgKFVOTElLRUxZKCFmcmFtZSkpCi0gICAgICAgIHJldHVybiBn
ZXRCYXNlT2ZTdGFjaygpOwotICAgIHJldHVybiBmcmFtZS0+ZnJhbWVFeHRlbnQoKTsKLX0KLQot
aW5saW5lIFJlZ2lzdGVyKiBKU1N0YWNrOjpnZXRUb3BPZlN0YWNrKCkKLXsKLSAgICByZXR1cm4g
Z2V0VG9wT2ZGcmFtZShtX3RvcENhbGxGcmFtZSk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkK
KyAgICByZXR1cm4gZ3JvdyhuZXdUb3BPZlN0YWNrKTsKKyNlbHNlCisgICAgQVNTRVJUKHd0ZlRo
cmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOworICAgIHJldHVybiBuZXdU
b3BPZlN0YWNrID49IG1fdm0uc3RhY2tMaW1pdCgpOworI2VuZGlmCiB9CiAKLWlubGluZSBSZWdp
c3RlciogSlNTdGFjazo6Z2V0U3RhcnRPZkZyYW1lKENhbGxGcmFtZSogZnJhbWUpCi17Ci0gICAg
Q2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGZyYW1lLT5jYWxsZXJGcmFtZVNraXBwaW5nVk1FbnRy
eVNlbnRpbmVsKCk7Ci0gICAgcmV0dXJuIGdldFRvcE9mRnJhbWUoY2FsbGVyRnJhbWUpOwotfQor
I2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKLWlubGluZSBib29sIEpTU3RhY2s6OmVudHJ5Q2hl
Y2soY2xhc3MgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGludCBhcmdzQ291bnQpCitpbmxpbmUgUmVn
aXN0ZXIqIEpTU3RhY2s6OnRvcE9mRnJhbWVGb3IoQ2FsbEZyYW1lKiBmcmFtZSkKIHsKLSAgICBS
ZWdpc3Rlciogb2xkRW5kID0gZ2V0VG9wT2ZTdGFjaygpOwotCi0gICAgLy8gRW5zdXJlIHRoYXQg
d2UgaGF2ZSBlbm91Z2ggc3BhY2UgZm9yIHRoZSBwYXJhbWV0ZXJzOgotICAgIHNpemVfdCBwYWRk
ZWRBcmdzQ291bnQgPSBhcmdzQ291bnQ7Ci0gICAgaWYgKGNvZGVCbG9jaykgewotICAgICAgICBz
aXplX3QgbnVtUGFyYW1ldGVycyA9IGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpOwotICAgICAg
ICBpZiAocGFkZGVkQXJnc0NvdW50IDwgbnVtUGFyYW1ldGVycykKLSAgICAgICAgICAgIHBhZGRl
ZEFyZ3NDb3VudCA9IG51bVBhcmFtZXRlcnM7Ci0gICAgfQotCi0gICAgUmVnaXN0ZXIqIG5ld0Nh
bGxGcmFtZVNsb3QgPSBvbGRFbmQgLSBwYWRkZWRBcmdzQ291bnQgLSAoMiAqIEpTU3RhY2s6OkNh
bGxGcmFtZUhlYWRlclNpemUpICsgMTsKLQotI2lmIEVOQUJMRShERUJVR19KU1NUQUNLKQotICAg
IG5ld0NhbGxGcmFtZVNsb3QgLT0gSlNTdGFjazo6RmVuY2VTaXplOworI2lmIEVOQUJMRShMTElO
VF9DX0xPT1ApCisgICAgaWYgKFVOTElLRUxZKCFmcmFtZSkpCisgICAgICAgIHJldHVybiBiYXNl
T2ZTdGFjaygpOwogI2VuZGlmCi0KLSAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3Q2FsbEZyYW1l
U2xvdDsKLSAgICBpZiAoISFjb2RlQmxvY2spCi0gICAgICAgIG5ld0VuZCArPSB2aXJ0dWFsUmVn
aXN0ZXJGb3JMb2NhbChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKTsK
LQotICAgIC8vIEVuc3VyZSB0aGF0IHdlIGhhdmUgdGhlIG5lZWRlZCBzdGFjayBjYXBhY2l0eSB0
byBwdXNoIHRoZSBuZXcgZnJhbWU6Ci0gICAgaWYgKCFncm93KG5ld0VuZCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmcmFtZS0+dG9wT2ZG
cmFtZSgpIC0gMTsKIH0KIAotaW5saW5lIENhbGxGcmFtZSogSlNTdGFjazo6cHVzaEZyYW1lKGNs
YXNzIENvZGVCbG9jayogY29kZUJsb2NrLCBKU1Njb3BlKiBzY29wZSwgaW50IGFyZ3NDb3VudCwg
SlNPYmplY3QqIGNhbGxlZSkKK2lubGluZSBSZWdpc3RlciogSlNTdGFjazo6dG9wT2ZTdGFjaygp
CiB7Ci0gICAgQVNTRVJUKCEhc2NvcGUpOwotICAgIFJlZ2lzdGVyKiBvbGRFbmQgPSBnZXRUb3BP
ZlN0YWNrKCk7Ci0KLSAgICAvLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBzcGFjZSBmb3Ig
dGhlIHBhcmFtZXRlcnM6Ci0gICAgc2l6ZV90IHBhZGRlZEFyZ3NDb3VudCA9IGFyZ3NDb3VudDsK
LSAgICBpZiAoY29kZUJsb2NrKSB7Ci0gICAgICAgIHNpemVfdCBudW1QYXJhbWV0ZXJzID0gY29k
ZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7Ci0gICAgICAgIGlmIChwYWRkZWRBcmdzQ291bnQgPCBu
dW1QYXJhbWV0ZXJzKQotICAgICAgICAgICAgcGFkZGVkQXJnc0NvdW50ID0gbnVtUGFyYW1ldGVy
czsKLSAgICB9Ci0KLSAgICBSZWdpc3RlciogbmV3Q2FsbEZyYW1lU2xvdCA9IG9sZEVuZCAtIHBh
ZGRlZEFyZ3NDb3VudCAtICgyICogSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSkgKyAxOwot
Ci0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0gICAgbmV3Q2FsbEZyYW1lU2xvdCAtPSBKU1N0
YWNrOjpGZW5jZVNpemU7Ci0jZW5kaWYKLQotICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBuZXdDYWxs
RnJhbWVTbG90OwotICAgIGlmICghIWNvZGVCbG9jaykKLSAgICAgICAgbmV3RW5kICs9IHZpcnR1
YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNvdW50KCkpLm9mZnNl
dCgpOwotCi0gICAgLy8gRW5zdXJlIHRoYXQgd2UgaGF2ZSB0aGUgbmVlZGVkIHN0YWNrIGNhcGFj
aXR5IHRvIHB1c2ggdGhlIG5ldyBmcmFtZToKLSAgICBpZiAoIWdyb3cobmV3RW5kKSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0KLSAgICAvLyBDb21wdXRlIHRoZSBhZGRyZXNzIG9mIHRoZSBuZXcgVk0g
c2VudGluZWwgZnJhbWUgZm9yIHRoaXMgaW52b2NhdGlvbjoKLSAgICBDYWxsRnJhbWUqIG5ld1ZN
RW50cnlTZW50aW5lbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobmV3Q2FsbEZyYW1lU2xvdCAr
IHBhZGRlZEFyZ3NDb3VudCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpOwotICAgIEFT
U0VSVCghIW5ld1ZNRW50cnlTZW50aW5lbEZyYW1lKTsKLQotICAgIC8vIENvbXB1dGUgdGhlIGFk
ZHJlc3Mgb2YgdGhlIG5ldyBmcmFtZSBmb3IgdGhpcyBpbnZvY2F0aW9uOgotICAgIENhbGxGcmFt
ZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobmV3Q2FsbEZyYW1lU2xvdCk7Ci0g
ICAgQVNTRVJUKCEhbmV3Q2FsbEZyYW1lKTsKLQotICAgIC8vIFRoZSBjYWxsZXIgZnJhbWUgc2hv
dWxkIGFsd2F5cyBiZSB0aGUgcmVhbCBwcmV2aW91cyBmcmFtZSBvbiB0aGUgc3RhY2ssCi0gICAg
Ly8gYW5kIG5vdCBhIHBvdGVudGlhbCBHbG9iYWxFeGVjIHRoYXQgd2FzIHBhc3NlZCBpbi4gUG9p
bnQgY2FsbGVyRnJhbWUgdG8KLSAgICAvLyB0aGUgdG9wIGZyYW1lIG9uIHRoZSBzdGFjay4KLSAg
ICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gbV90b3BDYWxsRnJhbWU7Ci0KLSAgICAvLyBJbml0
aWFsaXplIHRoZSBWTSBzZW50aW5lbCBmcmFtZSBoZWFkZXI6Ci0gICAgbmV3Vk1FbnRyeVNlbnRp
bmVsRnJhbWUtPmluaXRpYWxpemVWTUVudHJ5U2VudGluZWxGcmFtZShjYWxsZXJGcmFtZSk7Ci0K
LSAgICAvLyBJbml0aWFsaXplIHRoZSBjYWxsZWUgZnJhbWUgaGVhZGVyOgotICAgIG5ld0NhbGxG
cmFtZS0+aW5pdChjb2RlQmxvY2ssIDAsIHNjb3BlLCBuZXdWTUVudHJ5U2VudGluZWxGcmFtZSwg
YXJnc0NvdW50LCBjYWxsZWUpOwotCi0gICAgQVNTRVJUKCEhbmV3Q2FsbEZyYW1lLT5zY29wZSgp
KTsKLQotICAgIC8vIFBhZCBhZGRpdGlvbmFsIGFyZ3MgaWYgbmVlZGVkOgotICAgIC8vIE5vdGU6
IHdlIG5lZWQgdG8gc3VidHJhY3QgMSBmcm9tIGFyZ3NDb3VudCBhbmQgcGFkZGVkQXJnc0NvdW50
IHRvCi0gICAgLy8gZXhjbHVkZSB0aGUgdGhpcyBwb2ludGVyLgotICAgIGZvciAoc2l6ZV90IGkg
PSBhcmdzQ291bnQtMTsgaSA8IHBhZGRlZEFyZ3NDb3VudC0xOyArK2kpCi0gICAgICAgIG5ld0Nh
bGxGcmFtZS0+c2V0QXJndW1lbnQoaSwganNVbmRlZmluZWQoKSk7Ci0KLSAgICBpbnN0YWxsRmVu
Y2UobmV3Q2FsbEZyYW1lLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKLSAgICB2YWxpZGF0ZUZl
bmNlKG5ld0NhbGxGcmFtZSwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7Ci0gICAgaW5zdGFsbFRy
YXBzQWZ0ZXJGcmFtZShuZXdDYWxsRnJhbWUpOwotCi0gICAgLy8gUHVzaCB0aGUgbmV3IGZyYW1l
OgotICAgIG1fdG9wQ2FsbEZyYW1lID0gbmV3Q2FsbEZyYW1lOwotCi0gICAgcmV0dXJuIG5ld0Nh
bGxGcmFtZTsKLX0KLQotaW5saW5lIHZvaWQgSlNTdGFjazo6cG9wRnJhbWUoQ2FsbEZyYW1lKiBm
cmFtZSkKLXsKLSAgICB2YWxpZGF0ZUZlbmNlKGZyYW1lLCBfX0ZVTkNUSU9OX18sIF9fTElORV9f
KTsKLQotICAgIC8vIFBvcCBvZmYgdGhlIGNhbGxlZSBmcmFtZSBhbmQgdGhlIHNlbnRpbmVsIGZy
YW1lLgotICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBmcmFtZS0+Y2FsbGVyRnJhbWUoKS0+
dm1FbnRyeVNlbnRpbmVsQ2FsbGVyRnJhbWUoKTsKLQotICAgIC8vIFBvcCB0byB0aGUgY2FsbGVy
OgotICAgIG1fdG9wQ2FsbEZyYW1lID0gY2FsbGVyRnJhbWU7Ci0KLSAgICAvLyBJZiB3ZSBhcmUg
cG9wcGluZyB0aGUgdmVyeSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzdGFjayBpLmUuIG5vIG1vcmUK
LSAgICAvLyBmcmFtZXMgYmVmb3JlIHRoaXMsIHRoZW4gd2UgY2FuIG5vdyBzYWZlbHkgc2hyaW5r
IHRoZSBzdGFjay4gSW4KLSAgICAvLyB0aGlzIGNhc2UsIHdlJ3JlIHNocmlua2luZyBhbGwgdGhl
IHdheSB0byB0aGUgYmVnaW5uaW5nIHNpbmNlIHRoZXJlCi0gICAgLy8gYXJlIG5vIG1vcmUgZnJh
bWVzIG9uIHRoZSBzdGFjay4KLSAgICBpZiAoIWNhbGxlckZyYW1lKQotICAgICAgICBzaHJpbmso
Z2V0QmFzZU9mU3RhY2soKSk7Ci0KLSAgICBpbnN0YWxsVHJhcHNBZnRlckZyYW1lKGNhbGxlckZy
YW1lKTsKKyAgICByZXR1cm4gdG9wT2ZGcmFtZUZvcihtX3RvcENhbGxGcmFtZSk7CiB9CiAKLWlu
bGluZSB2b2lkIEpTU3RhY2s6OnNocmluayhSZWdpc3RlciogbmV3RW5kKQoraW5saW5lIHZvaWQg
SlNTdGFjazo6c2hyaW5rKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogeworICAgIFJlZ2lzdGVy
KiBuZXdFbmQgPSBuZXdUb3BPZlN0YWNrIC0gMTsKICAgICBpZiAobmV3RW5kID49IG1fZW5kKQog
ICAgICAgICByZXR1cm47Ci0gICAgdXBkYXRlU3RhY2tMaW1pdChuZXdFbmQpOwotICAgIGlmICht
X2VuZCA9PSBnZXRCYXNlT2ZTdGFjaygpICYmIChtX2NvbW1pdEVuZCAtIGdldEJhc2VPZlN0YWNr
KCkpID49IG1heEV4Y2Vzc0NhcGFjaXR5KQorICAgIHNldFN0YWNrTGltaXQobmV3VG9wT2ZTdGFj
ayk7CisgICAgLy8gTm90ZTogQ2xhbmcgY29tcGxhaW5zIG9mIGFuIHVucmVzb2x2ZWQgbGlua2Fn
ZSB0byBtYXhFeGNlc3NDYXBhY2l0eSBpZgorICAgIC8vIGludm9rZSBzdGQ6Om1heCgpIHdpdGgg
aXQgYXMgYW4gYXJndW1lbnQuIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHdlIGZpcnN0CisgICAgLy8g
YXNzaWduIHRoZSBjb25zdGFudCB0byBhIGxvY2FsIHZhcmlhYmxlLCBhbmQgdXNlIHRoZSBsb2Nh
bCBpbnN0ZWFkLgorICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NDYXBhY2l0eSA9IEpTU3RhY2s6Om1h
eEV4Y2Vzc0NhcGFjaXR5OworICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NJblJlZ2lzdGVycyA9IHN0
ZDo6bWF4KG1heEV4Y2Vzc0NhcGFjaXR5LCBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVycyk7
CisgICAgaWYgKG1fZW5kID09IGJhc2VPZlN0YWNrKCkgJiYgKGhpZ2hBZGRyZXNzKCkgLSBtX2Nv
bW1pdFRvcCkgPj0gbWF4RXhjZXNzSW5SZWdpc3RlcnMpCiAgICAgICAgIHJlbGVhc2VFeGNlc3ND
YXBhY2l0eSgpOwogfQogCi1pbmxpbmUgYm9vbCBKU1N0YWNrOjpncm93KFJlZ2lzdGVyKiBuZXdF
bmQpCitpbmxpbmUgYm9vbCBKU1N0YWNrOjpncm93KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQog
eworICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBuZXdUb3BPZlN0YWNrIC0gMTsKICAgICBpZiAobmV3
RW5kID49IG1fZW5kKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZ3Jvd1Nsb3dD
YXNlKG5ld0VuZCk7CisgICAgcmV0dXJuIGdyb3dTbG93Q2FzZShuZXdUb3BPZlN0YWNrKTsKIH0K
IAotaW5saW5lIHZvaWQgSlNTdGFjazo6dXBkYXRlU3RhY2tMaW1pdChSZWdpc3RlciogbmV3RW5k
KQoraW5saW5lIHZvaWQgSlNTdGFjazo6c2V0U3RhY2tMaW1pdChSZWdpc3RlciogbmV3VG9wT2ZT
dGFjaykKIHsKKyAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3VG9wT2ZTdGFjayAtIDE7CiAgICAg
bV9lbmQgPSBuZXdFbmQ7Ci0jaWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQotICAgIG1f
dm0uc2V0SlNTdGFja0xpbWl0KG5ld0VuZCk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAg
ICBtX3ZtLnNldEpTU3RhY2tMaW1pdChuZXdUb3BPZlN0YWNrKTsKICNlbmRpZgogfQogCi0jaWYg
RU5BQkxFKERFQlVHX0pTU1RBQ0spCi1pbmxpbmUgSlNWYWx1ZSBKU1N0YWNrOjpnZW5lcmF0ZUZl
bmNlVmFsdWUoc2l6ZV90IGFyZ0luZGV4KQotewotICAgIHVuc2lnbmVkIGZlbmNlQml0cyA9IDB4
ZmFjZWJhZDAgfCAoKGFyZ0luZGV4KzEpICYgMHhmKTsKLSAgICBKU1ZhbHVlIGZlbmNlVmFsdWUg
PSBKU1ZhbHVlKGZlbmNlQml0cyk7Ci0gICAgcmV0dXJuIGZlbmNlVmFsdWU7Ci19Ci0KLS8vIFRo
ZSBKU1N0YWNrIGZlbmNlcyBtZWNoYW5pc20gd29ya3MgYXMgZm9sbG93czoKLS8vIDEuIEEgZmVu
Y2UgaXMgYSBudW1iZXIgKEpTU3RhY2s6OkZlbmNlU2l6ZSkgb2YgSlNWYWx1ZXMgdGhhdCBhcmUg
aW5pdGlhbGl6ZWQKLS8vICAgIHdpdGggdmFsdWVzIGdlbmVyYXRlZCBieSBKU1N0YWNrOjpnZW5l
cmF0ZUZlbmNlVmFsdWUoKS4KLS8vIDIuIFdoZW4gcHVzaEZyYW1lKCkgaXMgY2FsbGVkLCB0aGUg
ZmVuY2UgaXMgaW5zdGFsbGVkIGFmdGVyIHRoZSBtYXggZXh0ZW50Ci0vLyAgICBvZiB0aGUgcHJl
dmlvdXMgdG9wQ2FsbEZyYW1lIGFuZCB0aGUgbGFzdCBhcmcgb2YgdGhlIG5ldyBmcmFtZToKLS8v
Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8IEZyYW1lIEhlYWRlciBv
ZiBwcmV2aW91cyBmcmFtZSAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgIHRvcENhbGxGcmFtZSAtLT4g
fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAg
ICAgICAgICB8IExvY2FscyBvZiBwcmV2aW91cyBmcmFtZSAgICAgICAgICAgICB8Ci0vLyAgICAg
ICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwK
LS8vICAgICAgICAgICAgICAgICAgICAgfCAqKiogdGhlIEZlbmNlICoqKiAgICAgICAgICAgICAg
ICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgVk0gZW50cnkgc2VudGlu
ZWwgZnJhbWUgaGVhZGVyICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8
IEFyZ3Mgb2YgbmV3IGZyYW1lICAgICAgICAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAg
ICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAg
ICAgICAgICAgICAgICAgfCBGcmFtZSBIZWFkZXIgb2YgbmV3IGZyYW1lICAgICAgICAgICAgfAot
Ly8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS18Ci0vLyAgICAgICAgICAgZnJhbWUgLS0+IHwgTG9jYWxzIG9mIG5ldyBmcmFtZSAgICAg
ICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfAotLy8KLS8vIDMuIEluIHBvcEZyYW1lKCkgYW5kIGVsc2V3
aGVyZSwgd2UgY2FuIGNhbGwgSlNTdGFjazo6dmFsaWRhdGVGZW5jZSgpIHRvCi0vLyAgICBhc3Nl
cnQgdGhhdCB0aGUgZmVuY2UgY29udGFpbnMgdGhlIHZhbHVlcyB3ZSBleHBlY3QuCi0KLWlubGlu
ZSB2b2lkIEpTU3RhY2s6Omluc3RhbGxGZW5jZShDYWxsRnJhbWUqIGZyYW1lLCBjb25zdCBjaGFy
ICpmdW5jdGlvbiwgaW50IGxpbmVObykKLXsKLSAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb24pOwot
ICAgIFVOVVNFRF9QQVJBTShsaW5lTm8pOwotICAgIFJlZ2lzdGVyKiBzdGFydE9mRnJhbWUgPSBn
ZXRTdGFydE9mRnJhbWUoZnJhbWUpOwotCi0gICAgLy8gVGhlIGxhc3QgYXJnSW5kZXggaXMgYXQ6
Ci0gICAgc2l6ZV90IG1heEluZGV4ID0gZnJhbWUtPmFyZ0luZGV4Rm9yUmVnaXN0ZXIoc3RhcnRP
ZkZyYW1lKSArIDE7Ci0gICAgc2l6ZV90IHN0YXJ0SW5kZXggPSBtYXhJbmRleCAtIEZlbmNlU2l6
ZTsKLSAgICBmb3IgKHNpemVfdCBpID0gc3RhcnRJbmRleDsgaSA8IG1heEluZGV4OyArK2kpIHsK
LSAgICAgICAgSlNWYWx1ZSBmZW5jZVZhbHVlID0gZ2VuZXJhdGVGZW5jZVZhbHVlKGkpOwotICAg
ICAgICBmcmFtZS0+c2V0QXJndW1lbnQoaSwgZmVuY2VWYWx1ZSk7Ci0gICAgfQotfQotCi1pbmxp
bmUgdm9pZCBKU1N0YWNrOjp2YWxpZGF0ZUZlbmNlKENhbGxGcmFtZSogZnJhbWUsIGNvbnN0IGNo
YXIgKmZ1bmN0aW9uLCBpbnQgbGluZU5vKQotewotICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7
Ci0gICAgVU5VU0VEX1BBUkFNKGxpbmVObyk7Ci0gICAgQVNTRVJUKCEhZnJhbWUtPnNjb3BlKCkp
OwotICAgIFJlZ2lzdGVyKiBzdGFydE9mRnJhbWUgPSBnZXRTdGFydE9mRnJhbWUoZnJhbWUpOwot
ICAgIHNpemVfdCBtYXhJbmRleCA9IGZyYW1lLT5hcmdJbmRleEZvclJlZ2lzdGVyKHN0YXJ0T2ZG
cmFtZSkgKyAxOwotICAgIHNpemVfdCBzdGFydEluZGV4ID0gbWF4SW5kZXggLSBGZW5jZVNpemU7
Ci0gICAgZm9yIChzaXplX3QgaSA9IHN0YXJ0SW5kZXg7IGkgPCBtYXhJbmRleDsgKytpKSB7Ci0g
ICAgICAgIEpTVmFsdWUgZmVuY2VWYWx1ZSA9IGdlbmVyYXRlRmVuY2VWYWx1ZShpKTsKLSAgICAg
ICAgSlNWYWx1ZSBhY3R1YWxWYWx1ZSA9IGZyYW1lLT5nZXRBcmd1bWVudFVuc2FmZShpKTsKLSAg
ICAgICAgQVNTRVJUKGZlbmNlVmFsdWUgPT0gYWN0dWFsVmFsdWUpOwotICAgIH0KLX0KLQotLy8g
V2hlbiBkZWJ1Z2dpbmcgdGhlIEpTU3RhY2ssIHdlIGluc3RhbGwgYmFkIHZhbHVlcyBhZnRlciB0
aGUgZXh0ZW50IG9mIHRoZQotLy8gdG9wQ2FsbEZyYW1lIGF0IHRoZSBlbmQgb2YgcHVzaEZyYW1l
KCkgYW5kIHBvcEZyYW1lKCkuIFRoZSBpbnRlbnRpb24gaXMKLS8vIHRvIHRyaWdnZXIgY3Jhc2hl
cyBpbiB0aGUgZXZlbnQgdGhhdCBtZW1vcnkgaW4gdGhpcyBzdXBwb3NlZGx5IHVudXNlZAotLy8g
cmVnaW9uIGlzIHJlYWQgYW5kIGNvbnN1bWVkIHdpdGhvdXQgcHJvcGVyIGluaXRpYWxpemF0aW9u
LiBBZnRlciB0aGUgdHJhcAotLy8gd29yZHMgYXJlIGluc3RhbGxlZCwgdGhlIHN0YWNrIGxvb2tz
IGxpa2UgdGhpczoKLS8vCi0vLyAgICAgICAgICAgICAgICAgICAgIHwgLi4uICAgICAgICAgICAg
ICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8IEZyYW1lIEhlYWRlciBvZiBm
cmFtZSAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLXwKLS8vICAgIHRvcENhbGxGcmFtZSAtLT4gfCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8IExvY2FscyBvZiBmcmFtZSAgICAg
ICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAqKiogVHJhcCB3b3JkcyAqKiogICAg
ICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgVW51c2VkIHNwYWNlIC4uLiAgICAgICAg
ICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAg
ICAgfAotCi1pbmxpbmUgdm9pZCBKU1N0YWNrOjppbnN0YWxsVHJhcHNBZnRlckZyYW1lKENhbGxG
cmFtZSogZnJhbWUpCi17Ci0gICAgUmVnaXN0ZXIqIHRvcE9mRnJhbWUgPSBnZXRUb3BPZkZyYW1l
KGZyYW1lKTsKLSAgICBjb25zdCBpbnQgc2l6ZU9mVHJhcCA9IDY0OwotICAgIGludDMyX3QqIHN0
YXJ0T2ZUcmFwID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4odG9wT2ZGcmFtZSk7Ci0gICAg
aW50MzJfdCogZW5kT2ZUcmFwID0gc3RhcnRPZlRyYXAgLSBzaXplT2ZUcmFwOwotICAgIGludDMy
X3QqIGVuZE9mQ29tbWl0ZWRNZW1vcnkgPSByZWludGVycHJldF9jYXN0PGludDMyX3QqPihtX2Nv
bW1pdEVuZCk7Ci0KLSAgICAvLyBNYWtlIHN1cmUgd2UncmUgbm90IGV4Y2VlZGluZyB0aGUgYW1v
dW50IG9mIGF2YWlsYWJsZSBtZW1vcnkgdG8gd3JpdGUgdG86Ci0gICAgaWYgKGVuZE9mVHJhcCA8
IGVuZE9mQ29tbWl0ZWRNZW1vcnkpCi0gICAgICAgIGVuZE9mVHJhcCA9IGVuZE9mQ29tbWl0ZWRN
ZW1vcnk7Ci0KLSAgICAvLyBMYXkgdGhlIHRyYXBzOgotICAgIGludDMyX3QqIHAgPSBzdGFydE9m
VHJhcDsKLSAgICB3aGlsZSAocCA+IGVuZE9mVHJhcCkKLSAgICAgICAgKnAtLSA9IDB4YWJhZGNh
ZmU7IC8vIEEgYmFkIHdvcmQgdG8gdHJpZ2dlciBhIGNyYXNoIGlmIGRlcmVmJ2VkLgotfQotI2Vu
ZGlmIC8vIEVOQUJMRShERUJVR19KU1NUQUNLKQorI2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xP
T1ApCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm90b0NhbGxG
cmFtZS5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1l
bnQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQzLDcgKzQ0LDkgQEAgdm9pZCBQcm90b0Nh
bGxGcmFtZTo6aW5pdChDb2RlQmxvY2sqIGNvZAogICAgICAgICBpZiAocGFkZGVkQXJnc0NvdW50
IDwgbnVtUGFyYW1ldGVycykKICAgICAgICAgICAgIHBhZGRlZEFyZ3NDb3VudCA9IG51bVBhcmFt
ZXRlcnM7CiAgICAgfQotICAgIHRoaXMtPnNldFBhZGRlZEFyZ3NDb3VudChwYWRkZWRBcmdzQ291
bnQpOworICAgIC8vIFJvdW5kIHVwIHBhZGRlZEFyZ3NDb3VudCB0byBrZWVwIHRoZSBzdGFjayBm
cmFtZSBzaXplIGFsaWduZWQuCisgICAgcGFkZGVkQXJnc0NvdW50ID0gcm91bmRBcmd1bWVudENv
dW50VG9BbGlnbkZyYW1lKHBhZGRlZEFyZ3NDb3VudCk7CisgICAgdGhpcy0+c2V0UGFkZGVkQXJn
Q291bnQocGFkZGVkQXJnc0NvdW50KTsKICAgICB0aGlzLT5jbGVhckN1cnJlbnRWUEMoKTsKICAg
ICB0aGlzLT5zZXRUaGlzVmFsdWUodGhpc1ZhbHVlKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5oCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJh
bWUuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBzdHJ1Y3QgUHJvdG9DYWxsRnJh
bWUgewogICAgIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIGNvbnN0IHsgcmV0dXJu
IGFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVlLnBheWxvYWQoKTsgfQogICAgIGludCBhcmd1bWVu
dENvdW50KCkgY29uc3QgeyByZXR1cm4gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSAtIDE7
IH0KICAgICB2b2lkIHNldEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKGludCBjb3VudCkgeyBh
cmdDb3VudEFuZENvZGVPcmlnaW5WYWx1ZS5wYXlsb2FkKCkgPSBjb3VudDsgfQotICAgIHZvaWQg
c2V0UGFkZGVkQXJnc0NvdW50KHNpemVfdCBhcmdDb3VudCkgeyBwYWRkZWRBcmdDb3VudCA9IGFy
Z0NvdW50OyB9CisgICAgdm9pZCBzZXRQYWRkZWRBcmdDb3VudChzaXplX3QgYXJnQ291bnQpIHsg
cGFkZGVkQXJnQ291bnQgPSBhcmdDb3VudDsgfQogCiAgICAgdm9pZCBjbGVhckN1cnJlbnRWUEMo
KSB7IGFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVlLnRhZygpID0gMDsgfQogICAgIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJl
dHVyblRodW5rcy5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
aCIKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJBc3NlbWJseUhlbHBlcnMuaCIKKyNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcygpCisgICAgOiBtX25leHRTaXplKDApCit7Cit9CisKK0FyaXR5Q2hlY2tG
YWlsUmV0dXJuVGh1bmtzOjp+QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKSB7IH0KKworQ29k
ZUxvY2F0aW9uTGFiZWwqIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpyZXR1cm5QQ3NGb3Io
CisgICAgVk0mIHZtLCB1bnNpZ25lZCBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMp
Cit7CisgICAgQVNTRVJUKG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyA+PSAxKTsK
KyAgICAKKyAgICBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPSBXVEY6OnJvdW5k
VXBUb011bHRpcGxlT2YoCisgICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIG51bUV4
cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyk7CisgICAgCisgICAgeworICAgICAgICBDb25j
dXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBpZiAobnVtRXhwZWN0ZWRB
cmd1bWVudHNJbmNsdWRpbmdUaGlzIDwgbV9uZXh0U2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBt
X3JldHVyblBDQXJyYXlzLmxhc3QoKS5nZXQoKTsKKyAgICB9CisgICAgCisgICAgQVNTRVJUKCFp
c0NvbXBpbGF0aW9uVGhyZWFkKCkpOworICAgIAorICAgIG51bUV4cGVjdGVkQXJndW1lbnRzSW5j
bHVkaW5nVGhpcyA9IHN0ZDo6bWF4KAorICAgICAgICBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1
ZGluZ1RoaXMsCisgICAgICAgIG1fbmV4dFNpemUgKiAyKTsKKyAgICAKKyAgICBBc3NlbWJseUhl
bHBlcnMgaml0KCZ2bSwgMCk7CisgICAgCisgICAgVmVjdG9yPEFzc2VtYmx5SGVscGVyczo6TGFi
ZWw+IGxhYmVsczsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIHNpemUgPSBtX25leHRTaXplOyBz
aXplIDw9IG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpczsgc2l6ZSArPSBzdGFja0Fs
aWdubWVudFJlZ2lzdGVycygpKSB7CisgICAgICAgIGxhYmVscy5hcHBlbmQoaml0LmxhYmVsKCkp
OworICAgICAgICAKKyAgICAgICAgaml0LmxvYWQzMigKKyAgICAgICAgICAgIEFzc2VtYmx5SGVs
cGVyczo6QWRkcmVzcygKKyAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0g
SlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVyKSArCisgICAg
ICAgICAgICAgICAgUGF5bG9hZE9mZnNldCksCisgICAgICAgICAgICBHUFJJbmZvOjpyZWdUNCk7
CisgICAgICAgIGppdC5hZGQzMigKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbTMyKAorICAgICAgICAgICAgICAgIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBK
U1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSArIHNpemUgLSAxKSwKKyAgICAgICAgICAgIEdQ
UkluZm86OnJlZ1Q0LCBHUFJJbmZvOjpyZWdUMik7CisgICAgICAgIGppdC5sc2hpZnQzMihBc3Nl
bWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigzKSwgR1BSSW5mbzo6cmVnVDIpOworICAgICAgICBq
aXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEdQUkluZm86
OnJlZ1QyKTsKKyAgICAgICAgaml0LmxvYWRQdHIoR1BSSW5mbzo6cmVnVDIsIEdQUkluZm86OnJl
Z1QyKTsKKyAgICAgICAgCisgICAgICAgIGppdC5hZGRQdHIoCisgICAgICAgICAgICBBc3NlbWJs
eUhlbHBlcnM6OlRydXN0ZWRJbW0zMihzaXplICogc2l6ZW9mKFJlZ2lzdGVyKSksCisgICAgICAg
ICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgCisg
ICAgICAgIC8vIFRodW5rcyBsaWtlIG91cnMgd2FudCB0byB1c2UgdGhlIHJldHVybiBQQyB0byBm
aWd1cmUgb3V0IHdoZXJlIHRoaW5ncworICAgICAgICAvLyB3ZXJlIHNhdmVkLiBTbywgd2UgcGF5
IGl0IGZvcndhcmQuCisgICAgICAgIGppdC5zdG9yZTMyKAorICAgICAgICAgICAgR1BSSW5mbzo6
cmVnVDQsCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAg
ICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwKKyAgICAgICAgICAg
ICAgICAoSlNTdGFjazo6QXJndW1lbnRDb3VudCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENT
aXplKSAqIHNpemVvZihSZWdpc3RlcikgKworICAgICAgICAgICAgICAgIFBheWxvYWRPZmZzZXQp
KTsKKyAgICAgICAgCisgICAgICAgIGppdC5qdW1wKEdQUkluZm86OnJlZ1QyKTsKKyAgICB9Cisg
ICAgCisgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQp
OworICAgIAorICAgIHVuc2lnbmVkIHJldHVyblBDc1NpemUgPSBudW1FeHBlY3RlZEFyZ3VtZW50
c0luY2x1ZGluZ1RoaXMgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpICsgMTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q29kZUxvY2F0aW9uTGFiZWxbXT4gcmV0dXJuUENzID0KKyAgICAgICAgc3Rk
OjptYWtlX3VuaXF1ZTxDb2RlTG9jYXRpb25MYWJlbFtdPihyZXR1cm5QQ3NTaXplKTsKKyAgICBm
b3IgKHVuc2lnbmVkIHNpemUgPSAwOyBzaXplIDw9IG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVk
aW5nVGhpczsgc2l6ZSArPSBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSB7CisgICAgICAgIHVu
c2lnbmVkIGluZGV4ID0gc2l6ZSAvIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCk7CisgICAgICAg
IFJFTEVBU0VfQVNTRVJUKGluZGV4IDwgcmV0dXJuUENzU2l6ZSk7CisgICAgICAgIGlmIChzaXpl
IDwgbV9uZXh0U2l6ZSkKKyAgICAgICAgICAgIHJldHVyblBDc1tpbmRleF0gPSBtX3JldHVyblBD
QXJyYXlzLmxhc3QoKVtpbmRleF07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVyblBD
c1tpbmRleF0gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2YobGFiZWxzWyhzaXplIC0gbV9uZXh0U2l6
ZSkgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpXSk7CisgICAgfQorCisgICAgQ29kZUxvY2F0
aW9uTGFiZWwqIHJlc3VsdCA9IHJldHVyblBDcy5nZXQoKTsKKworICAgIHsKKyAgICAgICAgQ29u
Y3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgbV9yZXR1cm5QQ0FycmF5
cy5hcHBlbmQoc3RkOjptb3ZlKHJldHVyblBDcykpOworICAgICAgICBtX3JlZnMuYXBwZW5kKEZJ
TkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJBcml0eSBjaGVjayBmYWlsIHJldHVybiB0aHVua3Mg
Zm9yIHVwIHRvIG51bUFyZ3MgPSAldSIsIG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhp
cykpKTsKKyAgICAgICAgbV9uZXh0U2l6ZSA9IG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5n
VGhpcyArIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCk7CisgICAgfQorICAgIAorICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK0NvZGVMb2NhdGlvbkxhYmVsIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1
bmtzOjpyZXR1cm5QQ0ZvcihWTSYgdm0sIHVuc2lnbmVkIHNsb3RzVG9BZGQpCit7CisgICAgcmV0
dXJuIHJldHVyblBDc0Zvcih2bSwgc2xvdHNUb0FkZClbc2xvdHNUb0FkZCAvIHN0YWNrQWxpZ25t
ZW50UmVnaXN0ZXJzKCldOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzX2gKKyNkZWZpbmUg
QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3NfaAorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1
ZGUgIkNvZGVMb2NhdGlvbi5oIgorI2luY2x1ZGUgIkNvbmN1cnJlbnRKSVRMb2NrLmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEFyaXR5Q2hl
Y2tGYWlsUmV0dXJuVGh1bmtzIHsKK3B1YmxpYzoKKyAgICBBcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcygpOworICAgIH5Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcygpOworICAgIAorICAgIC8v
IFJldHVybnMgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHJldHVybiBsYWJlbHMgaW5kZXhlZCBi
eSBtaXNzaW5nQXJncy4KKyAgICBDb2RlTG9jYXRpb25MYWJlbCogcmV0dXJuUENzRm9yKFZNJiwg
dW5zaWduZWQgbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzKTsKKyAgICAKKyAgICBD
b2RlTG9jYXRpb25MYWJlbCByZXR1cm5QQ0ZvcihWTSYsIHVuc2lnbmVkIHNsb3RzVG9BZGQpOwor
ICAgIAorcHJpdmF0ZToKKyAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENvZGVMb2NhdGlvbkxh
YmVsW10+PiBtX3JldHVyblBDQXJyYXlzOworICAgIHVuc2lnbmVkIG1fbmV4dFNpemU7CisgICAg
VmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVJlZj4gbV9yZWZzOworICAgIENvbmN1cnJlbnRKSVRM
b2NrIG1fbG9jazsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxF
KEpJVCkKKworI2VuZGlmIC8vIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzX2gKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNiArMTEwLDE3IEBAIHZvaWQgQXNzZW1ibHlIZWxw
ZXJzOjpqaXRBc3NlcnRJc0NlbGwoR1AKICAgICBicmVha3BvaW50KCk7CiAgICAgY2hlY2tDZWxs
LmxpbmsodGhpcyk7CiB9CisKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5Q
bGFjZSgpCit7CisgICAgSnVtcCBvayA9IGJyYW5jaDY0KEVxdWFsLCBHUFJJbmZvOjp0YWdUeXBl
TnVtYmVyUmVnaXN0ZXIsIFRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSk7CisgICAgYnJlYWtw
b2ludCgpOworICAgIG9rLmxpbmsodGhpcyk7CisgICAgCisgICAgb2sgPSBicmFuY2g2NChFcXVh
bCwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyLCBUcnVzdGVkSW1tNjQoVGFnTWFzaykpOworICAg
IGJyZWFrcG9pbnQoKTsKKyAgICBvay5saW5rKHRoaXMpOworfQogI2VsaWYgVVNFKEpTVkFMVUUz
Ml82NCkKIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0ludDMyKEdQUlJlZyBncHIp
CiB7CkBAIC0xNDUsNiArMTU2LDEwIEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJ
c0NlbGwoR1AKICAgICBicmVha3BvaW50KCk7CiAgICAgY2hlY2tDZWxsLmxpbmsodGhpcyk7CiB9
CisKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5QbGFjZSgpCit7Cit9CiAj
ZW5kaWYgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAogdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFz
c2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCkKQEAgLTE2MCw2ICsxNzUsMTMgQEAgdm9pZCBBc3NlbWJs
eUhlbHBlcnM6OmppdEFzc2VydElzTnVsbChHUAogICAgIGJyZWFrcG9pbnQoKTsKICAgICBjaGVj
a051bGwubGluayh0aGlzKTsKIH0KKwordm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydEFy
Z3VtZW50Q291bnRTYW5lKCkKK3sKKyAgICBKdW1wIG9rID0gYnJhbmNoMzIoQmVsb3csIHBheWxv
YWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCksIFRydXN0ZWRJbW0zMigxMDAwMDAwMCkpOwor
ICAgIGJyZWFrcG9pbnQoKTsKKyAgICBvay5saW5rKHRoaXMpOworfQogI2VuZGlmIC8vICFBU1NF
UlRfRElTQUJMRUQKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU4LDggKzU4LDM2IEBAIHB1YmxpYzoKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsgcmV0
dXJuIG1fY29kZUJsb2NrOyB9CiAgICAgVk0qIHZtKCkgeyByZXR1cm4gbV92bTsgfQogICAgIEFz
c2VtYmxlclR5cGVfVCYgYXNzZW1ibGVyKCkgeyByZXR1cm4gbV9hc3NlbWJsZXI7IH0KLSAgICAK
KworICAgIHZvaWQgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKQorICAgIHsKKyAgICAgICAg
Ly8gVGhpcyBjaGVjayBpcyBib3RoIHVubmVlZGVkIGFuZCBoYXJkZXIgdG8gd3JpdGUgY29ycmVj
dGx5IGZvciBBUk02NAorI2lmICFkZWZpbmVkKE5ERUJVRykgJiYgIUNQVShBUk02NCkKKyAgICAg
ICAgSnVtcCBzdGFja1BvaW50ZXJBbGlnbmVkID0gYnJhbmNoVGVzdFB0cihaZXJvLCBzdGFja1Bv
aW50ZXJSZWdpc3RlciwgVHJ1c3RlZEltbTMyKDB4ZikpOworICAgICAgICBicmVha3BvaW50KCk7
CisgICAgICAgIHN0YWNrUG9pbnRlckFsaWduZWQubGluayh0aGlzKTsKKyNlbmRpZgorICAgIH0K
KwogI2lmIENQVShYODZfNjQpIHx8IENQVShYODYpCisgICAgc2l6ZV90IHByb2xvZ3VlU3RhY2tQ
b2ludGVyRGVsdGEoKQorICAgIHsKKyAgICAgICAgLy8gUHJvbG9ndWUgb25seSBzYXZlcyB0aGUg
ZnJhbWVQb2ludGVyUmVnaXN0ZXIKKyAgICAgICAgcmV0dXJuIHNpemVvZih2b2lkKik7CisgICAg
fQorCisgICAgdm9pZCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAgeworICAgICAgICBwdXNo
KGZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgIH0KKworICAgIHZvaWQgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKQorICAgIHsKKyAgICAgICAgbW92ZShmcmFtZVBvaW50ZXJSZWdpc3Rlciwgc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBwb3AoZnJhbWVQb2ludGVyUmVnaXN0ZXIpOwor
ICAgIH0KKwogICAgIHZvaWQgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUlJlZyBy
ZWcpCiAgICAgewogICAgICAgICBwb3AocmVnKTsKQEAgLTc3LDYgKzEwNSwyNCBAQCBwdWJsaWM6
CiAjZW5kaWYgLy8gQ1BVKFg4Nl82NCkgfHwgQ1BVKFg4NikKIAogI2lmIENQVShBUk0pIHx8IENQ
VShBUk02NCkKKyAgICBzaXplX3QgcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpCisgICAgewor
ICAgICAgICAvLyBQcm9sb2d1ZSBzYXZlcyB0aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5kIGxp
bmtSZWdpc3RlcgorICAgICAgICByZXR1cm4gMiAqIHNpemVvZih2b2lkKik7CisgICAgfQorCisg
ICAgdm9pZCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAgeworICAgICAgICBwdXNoUGFpcihm
cmFtZVBvaW50ZXJSZWdpc3RlciwgbGlua1JlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShzdGFja1Bv
aW50ZXJSZWdpc3RlciwgZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgIH0KKworICAgIHZvaWQg
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIHsKKyAgICAgICAgbW92ZShmcmFtZVBvaW50ZXJS
ZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBwb3BQYWlyKGZyYW1lUG9p
bnRlclJlZ2lzdGVyLCBsaW5rUmVnaXN0ZXIpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoUmVnaXN0ZXJJRCByZWcpCiAgICAg
ewogICAgICAgICBtb3ZlKGxpbmtSZWdpc3RlciwgcmVnKTsKQEAgLTk0LDYgKzE0MCwxMiBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogI2lmIENQVShNSVBTKQorICAgIHNpemVfdCBwcm9sb2d1ZVN0YWNr
UG9pbnRlckRlbHRhKCkKKyAgICB7CisgICAgICAgIC8vIFByb2xvZ3VlIHNhdmVzIHRoZSBmcmFt
ZVBvaW50ZXJSZWdpc3RlciBhbmQgcmV0dXJuQWRkcmVzc1JlZ2lzdGVyCisgICAgICAgIHJldHVy
biAyICogc2l6ZW9mKHZvaWQqKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcHJl
c2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKFJlZ2lzdGVySUQgcmVnKQogICAgIHsKICAgICAg
ICAgbW92ZShyZXR1cm5BZGRyZXNzUmVnaXN0ZXIsIHJlZyk7CkBAIC0xMTEsNiArMTYzLDEyIEBA
IHB1YmxpYzoKICNlbmRpZgogCiAjaWYgQ1BVKFNINCkKKyAgICBzaXplX3QgcHJvbG9ndWVTdGFj
a1BvaW50ZXJEZWx0YSgpCisgICAgeworICAgICAgICAvLyBQcm9sb2d1ZSBzYXZlcyB0aGUgZnJh
bWVQb2ludGVyUmVnaXN0ZXIgYW5kIGxpbmsgcmVnaXN0ZXIKKyAgICAgICAgcmV0dXJuIDIgKiBz
aXplb2Yodm9pZCopOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwcmVzZXJ2ZVJl
dHVybkFkZHJlc3NBZnRlckNhbGwoUmVnaXN0ZXJJRCByZWcpCiAgICAgewogICAgICAgICBtX2Fz
c2VtYmxlci5zdHNwcihyZWcpOwpAQCAtMTUwLDEwICsyMDgsNiBAQCBwdWJsaWM6CiAgICAgICAg
IHN0b3JlUHRyKGZyb20sIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxG
cmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwogICAgIH0KIAotICAgIHZvaWQgZW1pdEdldFJl
dHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlcklEIHRvKQotICAgIHsKLSAgICAg
ICAgbG9hZFB0cihBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6
OnJldHVyblBDT2Zmc2V0KCkpLCB0byk7Ci0gICAgfQogICAgIHZvaWQgZW1pdFB1dFJldHVyblBD
VG9DYWxsRnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tKQogICAgIHsKICAgICAgICAgc3RvcmVQ
dHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpy
ZXR1cm5QQ09mZnNldCgpKSk7CkBAIC0xNjMsNiArMjE3LDI5IEBAIHB1YmxpYzoKICAgICAgICAg
c3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZy
YW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CiAgICAgfQogCisgICAgLy8gZW1pdFB1dFRvQ2FsbEZy
YW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoKSBhbmQgcmVsYXRlZCBhcmUgdXNlZCB0byBhY2Nlc3Mg
Y2FsbGVlIGZyYW1lIGhlYWRlcgorICAgIC8vIGZpZWxkcyBiZWZvcmUgdGhlIGNvZGUgZnJvbSBl
bWl0RnVuY3Rpb25Qcm9sb2d1ZSgpIGhhcyBleGVjdXRlZC4KKyAgICAvLyBGaXJzdCwgdGhlIGFj
Y2VzcyBpcyB2aWEgdGhlIHN0YWNrIHBvaW50ZXIuIFNlY29uZCwgdGhlIGFkZHJlc3MgY2FsY3Vs
YXRpb24gbXVzdCBhbHNvIHRha2UKKyAgICAvLyBpbnRvIGFjY291bnQgdGhhdCB0aGUgc3RhY2sg
cG9pbnRlciBtYXkgbm90IGhhdmUgYmVlbiBhZGp1c3RlZCBkb3duIGZvciB0aGUgcmV0dXJuIFBD
IGFuZC9vcgorICAgIC8vIGNhbGxlcidzIGZyYW1lIHBvaW50ZXIuIE9uIHNvbWUgcGxhdGZvcm1z
LCB0aGUgY2FsbGVlIGlzIHJlc3BvbnNpYmxlIGZvciBwdXNoaW5nIHRoZQorICAgIC8vICJsaW5r
IHJlZ2lzdGVyIiBjb250YWluaW5nIHRoZSByZXR1cm4gYWRkcmVzcyBpbiB0aGUgZnVuY3Rpb24g
cHJvbG9ndWUuCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICB2b2lkIGVtaXRQdXRUb0NhbGxGcmFt
ZUhlYWRlckJlZm9yZVByb2xvZ3VlKEdQUlJlZyBmcm9tLCBKU1N0YWNrOjpDYWxsRnJhbWVIZWFk
ZXJFbnRyeSBlbnRyeSkKKyAgICB7CisgICAgICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3Moc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsIGVudHJ5ICogc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2Yo
UmVnaXN0ZXIpKSAtIHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKSkpOworICAgIH0KKyNlbHNl
CisgICAgdm9pZCBlbWl0UHV0UGF5bG9hZFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUo
R1BSUmVnIGZyb20sIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVudHJ5KQorICAgIHsK
KyAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgZW50
cnkgKiBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpIC0gcHJvbG9ndWVT
dGFja1BvaW50ZXJEZWx0YSgpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0
b3IsIGFzQml0cy5wYXlsb2FkKSkpOworICAgIH0KKworICAgIHZvaWQgZW1pdFB1dFRhZ1RvQ2Fs
bEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoVHJ1c3RlZEltbTMyIHRhZywgSlNTdGFjazo6Q2Fs
bEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCisgICAgeworICAgICAgICBzdG9yZVB0cih0YWcsIEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGVudHJ5ICogc3RhdGljX2Nhc3Q8cHRyZGlmZl90
PihzaXplb2YoUmVnaXN0ZXIpKSAtIHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKSArIE9CSkVD
VF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAgIH0K
KyNlbmRpZgorCiAgICAgSnVtcCBicmFuY2hJZk5vdENlbGwoR1BSUmVnIHJlZykKICAgICB7CiAj
aWYgVVNFKEpTVkFMVUU2NCkKQEAgLTE5NCw3ICsyNzEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IEFkZHJlc3MgdGFnRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAgewog
ICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7Ci0gICAgICAgIHJldHVy
biBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zm
c2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURl
c2NyaXB0b3IsIGFzQml0cy50YWcpKTsKKyAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdp
c3RlcikgKyBUYWdPZmZzZXQpOwogICAgIH0KICAgICBzdGF0aWMgQWRkcmVzcyB0YWdGb3IoaW50
IG9wZXJhbmQpCiAgICAgewpAQCAtMjA0LDcgKzI4MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
QWRkcmVzcyBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAg
ewogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7Ci0gICAgICAgIHJl
dHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIu
b2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJldHVybiBBZGRyZXNzKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXpl
b2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCk7CiAgICAgfQogICAgIHN0YXRpYyBBZGRyZXNz
IHBheWxvYWRGb3IoaW50IG9wZXJhbmQpCiAgICAgewpAQCAtMjk4LDYgKzM3NSw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGppdEFzc2VydElzQ2VsbChHUFJSZWcpOwogICAgIHZvaWQgaml0QXNzZXJ0
SGFzVmFsaWRDYWxsRnJhbWUoKTsKICAgICB2b2lkIGppdEFzc2VydElzTnVsbChHUFJSZWcpOwor
ICAgIHZvaWQgaml0QXNzZXJ0VGFnc0luUGxhY2UoKTsKKyAgICB2b2lkIGppdEFzc2VydEFyZ3Vt
ZW50Q291bnRTYW5lKCk7CiAjZWxzZQogICAgIHZvaWQgaml0QXNzZXJ0SXNJbnQzMihHUFJSZWcp
IHsgfQogICAgIHZvaWQgaml0QXNzZXJ0SXNKU0ludDMyKEdQUlJlZykgeyB9CkBAIC0zMDYsNiAr
Mzg1LDggQEAgcHVibGljOgogICAgIHZvaWQgaml0QXNzZXJ0SXNDZWxsKEdQUlJlZykgeyB9CiAg
ICAgdm9pZCBqaXRBc3NlcnRIYXNWYWxpZENhbGxGcmFtZSgpIHsgfQogICAgIHZvaWQgaml0QXNz
ZXJ0SXNOdWxsKEdQUlJlZykgeyB9CisgICAgdm9pZCBqaXRBc3NlcnRUYWdzSW5QbGFjZSgpIHsg
fQorICAgIHZvaWQgaml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUoKSB7IH0KICNlbmRpZgogCiAg
ICAgLy8gVGhlc2UgbWV0aG9kcyBjb252ZXJ0IGJldHdlZW4gZG91YmxlcywgYW5kIGRvdWJsZXMg
Ym94ZWQgYW5kIEpTVmFsdWVzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2Fs
bEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxs
SGVscGVycy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSwxMyBAQCBwdWJsaWM6
CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcyKTsKICAgICB9CiAgICAgCisgICAgQUxXQVlT
X0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzKFRydXN0ZWRJbW1QdHIgYXJnMSwgR1BSUmVnIGFy
ZzIpCisgICAgeworICAgICAgICByZXNldENhbGxBcmd1bWVudHMoKTsKKyAgICAgICAgYWRkQ2Fs
bEFyZ3VtZW50KGFyZzEpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMik7CisgICAgfQor
ICAgIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhHUFJSZWcgYXJnMSwg
R1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQogICAgIHsKICAgICAgICAgcmVzZXRDYWxsQXJndW1l
bnRzKCk7CkBAIC05MzksNiArOTQ2LDEyIEBAIHB1YmxpYzoKICAgICAgICAgbW92ZShhcmcxLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBz
ZXR1cEFyZ3VtZW50cyhUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcyKQorICAgIHsKKyAg
ICAgICAgbW92ZShhcmcyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBtb3ZlKGFy
ZzEsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorICAgIAogICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgewog
ICAgICAgICBzZXR1cFR3b1N0dWJBcmdzR1BSPEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxPihhcmcxLCBhcmcyKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtNzgsMjEgKzc4LDYgQEAgdm9pZCByZWxlYXNlRXhlY3V0YWJsZU1lbW9yeShWTSYp
OwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgaml0QWxsb2NhdGlvbkdyYW51bGUgPSAzMjsKIAot
aW5saW5lIHNpemVfdCByb3VuZFVwQWxsb2NhdGlvblNpemUoc2l6ZV90IHJlcXVlc3QsIHNpemVf
dCBncmFudWxhcml0eSkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVCgoc3RkOjpudW1lcmljX2xpbWl0
czxzaXplX3Q+OjptYXgoKSAtIGdyYW51bGFyaXR5KSA+IHJlcXVlc3QpOwotICAgIAotICAgIC8v
IFJvdW5kIHVwIHRvIG5leHQgcGFnZSBib3VuZGFyeQotICAgIHNpemVfdCBzaXplID0gcmVxdWVz
dCArIChncmFudWxhcml0eSAtIDEpOwotICAgIHNpemUgPSBzaXplICYgfihncmFudWxhcml0eSAt
IDEpOwotICAgIEFTU0VSVChzaXplID49IHJlcXVlc3QpOwotICAgIHJldHVybiBzaXplOwotfQot
Ci19Ci0KLW5hbWVzcGFjZSBKU0MgewotCiB0eXBlZGVmIFdURjo6TWV0YUFsbG9jYXRvckhhbmRs
ZSBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOwogCiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBA
QAogSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNoZWNrU3RhdGUgSlNDOjpNYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbjo6c19zc2UyQ2hlY2tTdGF0ZSA9IE5vdENoZWNrZWRTU0UyOwog
I2VuZGlmCiAKKyNpbmNsdWRlICJBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1
ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR0NhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCkBAIC00MiwxMSArNDMsMTMgQEAgSlNDOjpNYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbjo6U1NFMkNoZWNrUwogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1
bmN0aW9uLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiU2Ft
cGxpbmdUb29sLmgiCiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgiCisjaW5jbHVkZSAiU3RhY2tB
bGlnbm1lbnQuaCIKICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTk4LDYgKzEwMSw3IEBAIHZvaWQgSklUOjpl
bWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjaygpCiAgICAgQVNTRVJUKCFtX2J5dGVjb2RlT2Zmc2V0
KTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk9wdGltaXplLCBtX2J5dGVjb2RlT2Zmc2V0
KTsKICAgICBza2lwT3B0aW1pemUuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmV0dXJuVmFs
dWVHUFIpKTsKKyAgICBtb3ZlKHJldHVyblZhbHVlR1BSMiwgc3RhY2tQb2ludGVyUmVnaXN0ZXIp
OwogICAgIGp1bXAocmV0dXJuVmFsdWVHUFIpOwogICAgIHNraXBPcHRpbWl6ZS5saW5rKHRoaXMp
OwogfQpAQCAtMTI4LDYgKzEzMiw5IEBAIHZvaWQgSklUOjplbWl0RW50ZXJPcHRpbWl6YXRpb25D
aGVjaygpCiAKIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKIHsKKyAgICBqaXRB
c3NlcnRUYWdzSW5QbGFjZSgpOworICAgIGppdEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCk7Cisg
ICAgCiAgICAgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uc0JlZ2luID0gbV9jb2RlQmxvY2stPmlu
c3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgdW5zaWduZWQgaW5zdHJ1Y3Rpb25Db3VudCA9IG1f
Y29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5zaXplKCk7CiAKQEAgLTQ5Niw4ICs1MDMsNyBAQCBD
b21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAgICAgaWYgKG1fcmFuZG9t
R2VuZXJhdG9yLmdldFVpbnQzMigpICYgMSkKICAgICAgICAgbm9wKCk7CiAKLSAgICBwcmVzZXJ2
ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDIpOwotICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2Fs
bEZyYW1lSGVhZGVyKHJlZ1QyKTsKKyAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgIGVt
aXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcihtX2NvZGVCbG9jaywgSlNTdGFjazo6Q29k
ZUJsb2NrKTsKIAogICAgIExhYmVsIGJlZ2luTGFiZWwodGhpcyk7CkBAIC01MDcsNyArNTEzLDcg
QEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSQogICAgIHNhbXBsZUlu
c3RydWN0aW9uKG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKTsKICNlbmRpZgog
Ci0gICAgSnVtcCBzdGFja0NoZWNrOworICAgIEp1bXAgc3RhY2tPdmVyZmxvdzsKICAgICBpZiAo
bV9jb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKSB7CiAgICAgICAgIEFTU0VS
VChtX2J5dGVjb2RlT2Zmc2V0ID09ICh1bnNpZ25lZCktMSk7CiAgICAgICAgIGlmIChzaG91bGRF
bWl0UHJvZmlsaW5nKCkpIHsKQEAgLTUyNywxMiArNTMzLDEzIEBAIENvbXBpbGF0aW9uUmVzdWx0
IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAg
ICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZnJhbWVSZWdp
c3RlckNvdW50Rm9yKG1fY29kZUJsb2NrKSkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwg
Y2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QxKTsKLSAgICAgICAgc3RhY2tDaGVjayA9IGJyYW5jaFB0
cihBYm92ZSwgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwg
cmVnVDEpOworICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZv
cihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHJl
Z1QxKTsKKyAgICAgICAgc3RhY2tPdmVyZmxvdyA9IGJyYW5jaFB0cihBYm92ZSwgQWJzb2x1dGVB
ZGRyZXNzKG1fdm0tPmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwgcmVnVDEpOwogICAgIH0KIAot
ICAgIExhYmVsIGZ1bmN0aW9uQm9keSA9IGxhYmVsKCk7Ci0gICAgCisgICAgYWRkUHRyKFRydXN0
ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lz
dGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hl
Y2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKwogICAgIHByaXZhdGVDb21waWxlTWFpblBhc3Mo
KTsKICAgICBwcml2YXRlQ29tcGlsZUxpbmtQYXNzKCk7CiAgICAgcHJpdmF0ZUNvbXBpbGVTbG93
Q2FzZXMoKTsKQEAgLTU0MiwxOCArNTQ5LDE1IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJp
dmF0ZUNvbXBpbGUoSkkKIAogICAgIExhYmVsIGFyaXR5Q2hlY2s7CiAgICAgaWYgKG1fY29kZUJs
b2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSkgewotICAgICAgICBzdGFja0NoZWNrLmxp
bmsodGhpcyk7CisgICAgICAgIHN0YWNrT3ZlcmZsb3cubGluayh0aGlzKTsKICAgICAgICAgbV9i
eXRlY29kZU9mZnNldCA9IDA7Ci0gICAgICAgIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9s
bGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25TdGFja0NoZWNrLCBtX2NvZGVCbG9jayk7Ci0jaWZu
ZGVmIE5ERUJVRwotICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0ID0gKHVuc2lnbmVkKS0xOyAvLyBS
ZXNldCB0aGlzLCBpbiBvcmRlciB0byBndWFyZCBpdHMgdXNlIHdpdGggQVNTRVJUcy4KLSNlbmRp
ZgotICAgICAgICBqdW1wKGZ1bmN0aW9uQm9keSk7CisgICAgICAgIGlmIChtYXhGcmFtZUV4dGVu
dEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAg
ICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9u
VGhyb3dTdGFja092ZXJmbG93RXJyb3IsIG1fY29kZUJsb2NrKTsKIAogICAgICAgICBhcml0eUNo
ZWNrID0gbGFiZWwoKTsKICAgICAgICAgc3RvcmU4KFRydXN0ZWRJbW0zMigwKSwgJm1fY29kZUJs
b2NrLT5tX3Nob3VsZEFsd2F5c0JlSW5saW5lZCk7Ci0gICAgICAgIHByZXNlcnZlUmV0dXJuQWRk
cmVzc0FmdGVyQ2FsbChyZWdUMik7Ci0gICAgICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1l
SGVhZGVyKHJlZ1QyKTsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICAgICAg
ZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0YWNrOjpD
b2RlQmxvY2spOwogCiAgICAgICAgIGxvYWQzMihwYXlsb2FkRm9yKEpTU3RhY2s6OkFyZ3VtZW50
Q291bnQpLCByZWdUMSk7CkBAIC01NjEsMTAgKzU2NSwxNiBAQCBDb21waWxhdGlvblJlc3VsdCBK
SVQ6OnByaXZhdGVDb21waWxlKEpJCiAKICAgICAgICAgbV9ieXRlY29kZU9mZnNldCA9IDA7CiAK
KyAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAg
YWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9s
bGJhY2tPbkV4Y2VwdGlvbihtX2NvZGVCbG9jay0+bV9pc0NvbnN0cnVjdG9yID8gb3BlcmF0aW9u
Q29uc3RydWN0QXJpdHlDaGVjayA6IG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrKTsKKyAgICAgICAg
aWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgYWRkUHRyKFRy
dXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKICAgICAgICAgaWYgKHJldHVyblZhbHVlR1BSICE9IHJlZ1QwKQogICAgICAgICAg
ICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgcmVnVDApOwogICAgICAgICBicmFuY2hUZXN0MzIoWmVy
bywgcmVnVDApLmxpbmtUbyhiZWdpbkxhYmVsLCB0aGlzKTsKKyAgICAgICAgbW92ZShUcnVzdGVk
SW1tUHRyKG1fdm0tPmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5QQ3NGb3IoKm1f
dm0sIG1fY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKSwgcmVnVDUpOworICAgICAgICBsb2Fk
UHRyKEJhc2VJbmRleChyZWdUNSwgcmVnVDAsIHRpbWVzUHRyKCkpLCByZWdUNSk7CiAgICAgICAg
IGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1Yihhcml0eUZpeHVwKS5jb2RlKCkpOwogCiAj
aWYgIUFTU0VSVF9ESVNBQkxFRApAQCAtNjUzLDIwICs2NjMsMTIgQEAgQ29tcGlsYXRpb25SZXN1
bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSQogICAgICAgICBpbmZvLmNhbGxlZUdQUiA9IHJlZ1Qw
OwogICAgIH0KIAotI2lmIEVOQUJMRShERkdfSklUKSB8fCBFTkFCTEUoTExJTlQpCi0gICAgaWYg
KGNhbkJlT3B0aW1pemVkT3JJbmxpbmVkKCkKLSNpZiBFTkFCTEUoTExJTlQpCi0gICAgICAgIHx8
IHRydWUKLSNlbmRpZgotICAgICAgICApIHsKLSAgICAgICAgQ29tcGFjdEpJVENvZGVNYXA6OkVu
Y29kZXIgaml0Q29kZU1hcEVuY29kZXI7Ci0gICAgICAgIGZvciAodW5zaWduZWQgYnl0ZWNvZGVP
ZmZzZXQgPSAwOyBieXRlY29kZU9mZnNldCA8IG1fbGFiZWxzLnNpemUoKTsgKytieXRlY29kZU9m
ZnNldCkgewotICAgICAgICAgICAgaWYgKG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XS5pc1NldCgp
KQotICAgICAgICAgICAgICAgIGppdENvZGVNYXBFbmNvZGVyLmFwcGVuZChieXRlY29kZU9mZnNl
dCwgcGF0Y2hCdWZmZXIub2Zmc2V0T2YobV9sYWJlbHNbYnl0ZWNvZGVPZmZzZXRdKSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgbV9jb2RlQmxvY2stPnNldEpJVENvZGVNYXAoaml0Q29kZU1hcEVuY29k
ZXIuZmluaXNoKCkpOworICAgIENvbXBhY3RKSVRDb2RlTWFwOjpFbmNvZGVyIGppdENvZGVNYXBF
bmNvZGVyOworICAgIGZvciAodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSAwOyBieXRlY29kZU9m
ZnNldCA8IG1fbGFiZWxzLnNpemUoKTsgKytieXRlY29kZU9mZnNldCkgeworICAgICAgICBpZiAo
bV9sYWJlbHNbYnl0ZWNvZGVPZmZzZXRdLmlzU2V0KCkpCisgICAgICAgICAgICBqaXRDb2RlTWFw
RW5jb2Rlci5hcHBlbmQoYnl0ZWNvZGVPZmZzZXQsIHBhdGNoQnVmZmVyLm9mZnNldE9mKG1fbGFi
ZWxzW2J5dGVjb2RlT2Zmc2V0XSkpOwogICAgIH0KLSNlbmRpZgorICAgIG1fY29kZUJsb2NrLT5z
ZXRKSVRDb2RlTWFwKGppdENvZGVNYXBFbmNvZGVyLmZpbmlzaCgpKTsKIAogICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVjazsKICAgICBpZiAobV9jb2RlQmxvY2stPmNvZGVU
eXBlKCkgPT0gRnVuY3Rpb25Db2RlKQpAQCAtNjg3LDggKzY4OSw3IEBAIENvbXBpbGF0aW9uUmVz
dWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAgICAKICAgICBtX2NvZGVCbG9jay0+c2hyaW5r
VG9GaXQoQ29kZUJsb2NrOjpMYXRlU2hyaW5rKTsKICAgICBtX2NvZGVCbG9jay0+c2V0SklUQ29k
ZSgKLSAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUocmVzdWx0LCBKSVRDb2RlOjpC
YXNlbGluZUpJVCkpLAotICAgICAgICB3aXRoQXJpdHlDaGVjayk7CisgICAgICAgIGFkb3B0UmVm
KG5ldyBEaXJlY3RKSVRDb2RlKHJlc3VsdCwgd2l0aEFyaXR5Q2hlY2ssIEpJVENvZGU6OkJhc2Vs
aW5lSklUKSkpOwogICAgIAogI2lmIEVOQUJMRShKSVRfVkVSQk9TRSkKICAgICBkYXRhTG9nRigi
SklUIGdlbmVyYXRlZCBjb2RlIGZvciAlcCBhdCBbJXAsICVwKS5cbiIsIG1fY29kZUJsb2NrLCBy
ZXN1bHQuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFydCgpLCByZXN1bHQuZXhlY3V0YWJsZU1lbW9y
eSgpLT5lbmQoKSk7CkBAIC02OTcsNDIgKzY5OCw2IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6
cHJpdmF0ZUNvbXBpbGUoSkkKICAgICByZXR1cm4gQ29tcGlsYXRpb25TdWNjZXNzZnVsOwogfQog
Ci12b2lkIEpJVDo6bGlua0ZvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRnVuY3Rpb24qIGNhbGxlZSwg
Q29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ssIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBK
SVQ6OkNvZGVQdHIgY29kZSwgQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8sIFZNKiB2bSwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQotewotICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1
ZmZlcihjYWxsZXJDb2RlQmxvY2spOwotCi0gICAgQVNTRVJUKCFjYWxsTGlua0luZm8tPmlzTGlu
a2VkKCkpOwotICAgIGNhbGxMaW5rSW5mby0+Y2FsbGVlLnNldCgqdm0sIGNhbGxMaW5rSW5mby0+
aG90UGF0aEJlZ2luLCBjYWxsZXJDb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBjYWxsZWUp
OwotICAgIGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuc2V0KCp2bSwgY2FsbGVyQ29kZUJs
b2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVlKTsKLSAgICByZXBhdGNoQnVmZmVyLnJlbGlu
ayhjYWxsTGlua0luZm8tPmhvdFBhdGhPdGhlciwgY29kZSk7Ci0KLSAgICBpZiAoY2FsbGVlQ29k
ZUJsb2NrKQotICAgICAgICBjYWxsZWVDb2RlQmxvY2stPmxpbmtJbmNvbWluZ0NhbGwoZXhlYywg
Y2FsbExpbmtJbmZvKTsKLQotICAgIC8vIFBhdGNoIHRoZSBzbG93IHBhdGNoIHNvIHdlIGRvIG5v
dCBjb250aW51ZSB0byB0cnkgdG8gbGluay4KLSAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkg
ewotICAgICAgICBBU1NFUlQoY2FsbExpbmtJbmZvLT5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86
OkNhbGwKLSAgICAgICAgICAgICAgIHx8IGNhbGxMaW5rSW5mby0+Y2FsbFR5cGUgPT0gQ2FsbExp
bmtJbmZvOjpDYWxsVmFyYXJncyk7Ci0gICAgICAgIGlmIChjYWxsTGlua0luZm8tPmNhbGxUeXBl
ID09IENhbGxMaW5rSW5mbzo6Q2FsbCkgewotICAgICAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxp
bmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRDVElTdHViKGxpbmtD
bG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0KLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5j
YWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0
b3IpLmNvZGUoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBBU1NFUlQoa2luZCA9
PSBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0lu
Zm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIodmlydHVhbENvbnN0cnVjdFRo
dW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotfQotCi12b2lkIEpJVDo6bGlua1Nsb3dDYWxsKENvZGVC
bG9jayogY2FsbGVyQ29kZUJsb2NrLCBDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbykKLXsKLSAg
ICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIoY2FsbGVyQ29kZUJsb2NrKTsKLQotICAgIHJl
cGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby0+Y2FsbFJldHVybkxvY2F0aW9uLCBjYWxs
ZXJDb2RlQmxvY2stPnZtKCktPmdldENUSVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvciku
Y29kZSgpKTsKLX0KLQogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlRXhjZXB0aW9uSGFuZGxlcnMo
KQogewogICAgIGlmIChtX2V4Y2VwdGlvbkNoZWNrcy5lbXB0eSgpICYmIG1fZXhjZXB0aW9uQ2hl
Y2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLmVtcHR5KCkpCkBAIC03NDIsNyArNzA3LDcgQEAgdm9p
ZCBKSVQ6OnByaXZhdGVDb21waWxlRXhjZXB0aW9uSGFuZGxlcgogCiAgICAgaWYgKCFtX2V4Y2Vw
dGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFjay5lbXB0eSgpKSB7CiAgICAgICAgIG1fZXhj
ZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLmxpbmsodGhpcyk7Ci0gICAgICAgIGVt
aXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKKyAgICAgICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihH
UFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgICAgICBkb0xvb2t1cCA9IGp1bXAoKTsKICAgICB9
CiAKQEAgLTc1MCwxOSArNzE1LDMzIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlv
bkhhbmRsZXIKICAgICAgICAgbV9leGNlcHRpb25DaGVja3MubGluayh0aGlzKTsKICAgICAKICAg
ICAvLyBsb29rdXBFeGNlcHRpb25IYW5kbGVyIGlzIHBhc3NlZCBvbmUgYXJndW1lbnQsIHRoZSBl
eGVjICh0aGUgQ2FsbEZyYW1lKikuCi0gICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
ciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogCiAgICAgaWYgKGRvTG9va3VwLmlzU2V0
KCkpCiAgICAgICAgIGRvTG9va3VwLmxpbmsodGhpcyk7CiAKKyAgICBtb3ZlKFRydXN0ZWRJbW1Q
dHIodm0oKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisKICNpZiBDUFUoWDg2KQogICAgIC8v
IEZJWE1FOiBzaG91bGQgdXNlIHRoZSBjYWxsIGFic3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJy
ZW50bHkgaW4gdGhlIFNwZWN1bGF0aXZlSklUIGxheWVyIQogICAgIHBva2UoR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKKyAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BSMSwgMSk7CiAjZW5kaWYK
ICAgICBtX2NhbGxzLmFwcGVuZChDYWxsUmVjb3JkKGNhbGwoKSwgKHVuc2lnbmVkKS0xLCBGdW5j
dGlvblB0cihsb29rdXBFeGNlcHRpb25IYW5kbGVyKS52YWx1ZSgpKSk7CiAgICAganVtcFRvRXhj
ZXB0aW9uSGFuZGxlcigpOwogfQogCit1bnNpZ25lZCBKSVQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZv
cihDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3sKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMpID09IFdURjo6cm91bmRVcFRvTXVs
dGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
Y29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVycykpKTsKKworICAgIHJldHVybiByb3VuZExv
Y2FsUmVnaXN0ZXJDb3VudEZvckZyYW1lUG9pbnRlck9mZnNldChjb2RlQmxvY2stPm1fbnVtQ2Fs
bGVlUmVnaXN0ZXJzICsgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGxJblJlZ2lzdGVycyk7
Cit9CisKK2ludCBKSVQ6OnN0YWNrUG9pbnRlck9mZnNldEZvcihDb2RlQmxvY2sqIGNvZGVCbG9j
aykKK3sKKyAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZnJhbWVSZWdpc3RlckNv
dW50Rm9yKGNvZGVCbG9jaykgLSAxKS5vZmZzZXQoKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgSlND
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQxLDEzICsy
NDEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBqaXQucHJpdmF0ZUNv
bXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5jKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRp
YyB2b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiwgSlNGdW5jdGlvbiogY2FsbGVlLCBDb2RlQmxvY2sq
IGNhbGxlckNvZGVCbG9jaywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssIENvZGVQdHIsIENh
bGxMaW5rSW5mbyosIFZNKiwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7Ci0gICAgICAgIHN0YXRp
YyB2b2lkIGxpbmtTbG93Q2FsbChDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jaywgQ2FsbExpbmtJ
bmZvKik7Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgdW5zaWduZWQgZnJhbWVSZWdpc3RlckNv
dW50Rm9yKENvZGVCbG9jayogY29kZUJsb2NrKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsKLSAgICAgICAgfQorICAgICAgICBz
dGF0aWMgdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50Rm9yKENvZGVCbG9jayopOworICAgICAg
ICBzdGF0aWMgaW50IHN0YWNrUG9pbnRlck9mZnNldEZvcihDb2RlQmxvY2sqKTsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIEpJVChWTSosIENvZGVCbG9jayogPSAwKTsKQEAgLTY5NywxMSArNjky
LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFdpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlvbl9FUGMsIGludCwgSW5zdHJ1
Y3Rpb24qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FWiwgaW50LCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9FSlMsIEdQUlJlZywgc2l6ZV90KTsKLSAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9F
WiwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
U19KSVRPcGVyYXRpb25fRUNDLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSiwgUmVnaXN0
ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRP
cGVyYXRpb25fRUpKLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FT0pzcywgUmVnaXN0ZXJJ
RCwgUmVnaXN0ZXJJRCk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oU3BydF9KSVRPcGVyYXRpb25fRVosIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0UpOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDLCBSZWdpc3RlcklE
KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FQ0MsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwpAQCAtNzI2LDYgKzcyMSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VQYywgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FWiwgaW50MzJfdCk7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJh
Y2tPbkV4Y2VwdGlvbihKX0pJVE9wZXJhdGlvbl9FKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soSl9KSVRPcGVyYXRpb25fRUUsIFJl
Z2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uV2l0
aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24oVl9KSVRPcGVyYXRpb25fRUNiLCBDb2RlQmxv
Y2sqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbldpdGhDYWxs
RnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKFpfSklUT3BlcmF0aW9uX0UpOwogI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQu
Y3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENh
bGwzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDYgKzM5LDcgQEAKICNp
bmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1
ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVk
ZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKIApAQCAtNTYsMTAgKzU3LDkgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfcmV0KEluc3RydWN0aW9uKiBjdXJyZQogICAgIHVuc2lnbmVkIGRzdCA9IGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAKICAgICBlbWl0TG9hZChkc3QsIHJlZ1Qx
LCByZWdUMCk7Ci0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdU
Mik7Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJh
bWVSZWdpc3Rlcik7CiAKLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdU
Mik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAgICBlbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC03MywyMCArNzMsMTYgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfcmV0X29iamVjdF9vcl90aGlzKElucwogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdU
MCwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHJlZ1QyKTsKICAgICBKdW1wIG5vdE9iamVj
dCA9IGVtaXRKdW1wSWZOb3RPYmplY3QocmVnVDIpOwogCi0gICAgZW1pdEdldFJldHVyblBDRnJv
bUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMik7Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNh
bGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KLSAgICByZXN0b3JlUmV0dXJu
QWRkcmVzc0JlZm9yZVJldHVybihyZWdUMik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1l
bnQoKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwogCiAgICAgbm90
SlNDZWxsLmxpbmsodGhpcyk7CiAgICAgbm90T2JqZWN0LmxpbmsodGhpcyk7CiAgICAgZW1pdExv
YWQodGhpc1JlZywgcmVnVDEsIHJlZ1QwKTsKIAotICAgIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxs
RnJhbWVIZWFkZXJQdHIocmVnVDIpOwotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwotCi0gICAgcmVzdG9yZVJldHVybkFkZHJl
c3NCZWZvcmVSZXR1cm4ocmVnVDIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7
CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKIH0KIApAQCAtMTUxLDgg
KzE0NywxMiBAQCB2b2lkIEpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uCiAgICAg
ICAgIC8vIHJlZ1QyOiBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcwogCiAgICAgICAgIG1vdmUo
cmVnVDIsIHJlZ1QzKTsKKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtZmlyc3RGcmVlUmVn
aXN0ZXIgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgcmVnVDMpOworICAgICAgICAv
LyByZWdUMSBub3cgaGFzIHRoZSByZXF1aXJlZCBmcmFtZSBzaXplIGluIFJlZ2lzdGVyIHVuaXRz
CisgICAgICAgIC8vIFJvdW5kIHJlZ1QxIHRvIG5leHQgbXVsdGlwbGUgb2Ygc3RhY2tBbGlnbm1l
bnRSZWdpc3RlcnMoKQorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrQWxpZ25tZW50
UmVnaXN0ZXJzKCkgLSAxKSwgcmVnVDMpOworICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbTMyKH4o
c3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSAtIDEpKSwgcmVnVDMpOwogICAgICAgICBuZWczMihy
ZWdUMyk7Ci0gICAgICAgIGFkZDMyKFRydXN0ZWRJbW0zMihmaXJzdEZyZWVSZWdpc3RlciAtIEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCByZWdUMyk7CiAgICAgICAgIGxzaGlmdDMyKFRy
dXN0ZWRJbW0zMigzKSwgcmVnVDMpOwogICAgICAgICBhZGRQdHIoY2FsbEZyYW1lUmVnaXN0ZXIs
IHJlZ1QzKTsKICAgICAgICAgLy8gcmVnVDM6IG5ld0NhbGxGcmFtZQpAQCAtMTg1LDIyICsxODUs
MzQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyhJbnN0cnVjdGlvbgogICAgICAgICBz
bG93Q2FzZS5saW5rKHRoaXMpOwogCiAgICAgZW1pdExvYWQoYXJndW1lbnRzLCByZWdUMSwgcmVn
VDApOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJh
cmdzLCByZWdUMSwgcmVnVDAsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKLSAgICBtb3ZlKHJldHVyblZh
bHVlR1BSLCByZWdUNSk7Ci0gICAgZW1pdExvYWQodGhpc1ZhbHVlLCByZWdUMSwgcmVnVDApOwor
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgcmVnVDEsIHJl
Z1QwLCBmaXJzdEZyZWVSZWdpc3Rlcik7CisgICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOworICAgIGVtaXRMb2FkKHRoaXNWYWx1ZSwgcmVnVDEsIHJlZ1Q0KTsK
ICAgICBlbWl0TG9hZChhcmd1bWVudHMsIHJlZ1QzLCByZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmVnVDUsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1Qy
KTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCByZXR1cm5WYWx1ZUdQ
UiwgcmVnVDEsIHJlZ1Q0LCByZWdUMywgcmVnVDIpOwogICAgIG1vdmUocmV0dXJuVmFsdWVHUFIs
IHJlZ1QzKTsKIAogICAgIGlmIChjYW5PcHRpbWl6ZSkKICAgICAgICAgZW5kLmxpbmsodGhpcyk7
CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJl
Z1QzLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiB9CiAKIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2
YWwoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogewotICAgIGNhbGxPcGVyYXRpb25XaXRoQ2Fs
bEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25DYWxsRXZhbCk7CisgICAgYWRkUHRy
KFRydXN0ZWRJbW0zMigtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVB
bmRQQykpKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHJlZ1QxKTsKKworICAgIGNhbGxPcGVyYXRp
b25Ob0V4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkNhbGxFdmFsLCByZWdUMSk7CisKKyAgICBKdW1w
IG5vRXhjZXB0aW9uID0gZW1pdEV4Y2VwdGlvbkNoZWNrKEludmVydGVkRXhjZXB0aW9uQ2hlY2sp
OworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJs
b2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVy
UmVnaXN0ZXIpOworICAgIGV4Y2VwdGlvbkNoZWNrKGp1bXAoKSk7CisKKyAgICBub0V4Y2VwdGlv
bi5saW5rKHRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKEVxdWFsLCByZWdUMSwgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKSk7Ci0gICAgZW1pdEdldENhbGxlckZy
YW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7CisKKyAgICBhZGRQ
dHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXpl
b2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2Nr
KG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTIxMSw4ICsyMjMsMTMgQEAgdm9pZCBKSVQ6OmNvbXBp
bGVDYWxsRXZhbFNsb3dDYXNlKEluc3RydQogewogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKIAor
ICAgIGxvYWRQdHIoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2l6ZW9mKFJlZ2lzdGVy
KSAqIEpTU3RhY2s6OkNhbGxlZSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QwKTsK
KyAgICBsb2FkUHRyKEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3Rl
cikgKiBKU1N0YWNrOjpDYWxsZWUgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMSk7
CisKICAgICBlbWl0TG9hZChKU1N0YWNrOjpDYWxsZWUsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1p
dE5ha2VkQ2FsbChtX3ZtLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNv
ZGUoKSk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9j
b2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1Bv
aW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAg
IHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgCkBAIC0yNTEsMTggKzI2OCwxNyBA
QCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJCiAgICAgICAgICAgICBk
b25lLmxpbmsodGhpcyk7CiAgICAgICAgIH0KICAgICAKLSAgICAgICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rl
ciwgcmVnVDMpOworICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICog
c2l6ZW9mKFJlZ2lzdGVyKSArIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIGNhbGxGcmFtZVJl
Z2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKLSAgICAgICAgc3RvcmUzMihUcnVzdGVk
SW1tMzIoYXJnQ291bnQpLCBwYXlsb2FkRm9yKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQsIHJlZ1Qz
KSk7Ci0gICAgfSAvLyByZWdUMyBob2xkcyBuZXdDYWxsRnJhbWUgd2l0aCBBcmd1bWVudENvdW50
IGluaXRpYWxpemVkLgorICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihhcmdDb3VudCksIEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihD
YWxsZXJGcmFtZUFuZFBDKSkpOworICAgIH0gLy8gU1AgaG9sZHMgbmV3Q2FsbEZyYW1lICsgc2l6
ZW9mKENhbGxlckZyYW1lQW5kUEMpLCB3aXRoIEFyZ3VtZW50Q291bnQgaW5pdGlhbGl6ZWQuCiAg
ICAgCiAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5j
b2RlQXNCeXRlY29kZUluc3RydWN0aW9uKGluc3RydWN0aW9uKTsKICAgICBzdG9yZTMyKFRydXN0
ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCB0YWdGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCwgY2Fs
bEZyYW1lUmVnaXN0ZXIpKTsKICAgICBlbWl0TG9hZChjYWxsZWUsIHJlZ1QxLCByZWdUMCk7IC8v
IHJlZ1QxLCByZWdUMCBob2xkcyBjYWxsZWUuCiAKLSAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdp
c3RlciwgQWRkcmVzcyhyZWdUMywgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSk7Ci0g
ICAgZW1pdFN0b3JlKEpTU3RhY2s6OkNhbGxlZSwgcmVnVDEsIHJlZ1QwLCByZWdUMyk7Ci0gICAg
bW92ZShyZWdUMywgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIHN0b3JlMzIocmVnVDAsIEFkZHJl
c3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGlu
dD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1l
QW5kUEMpKSk7CisgICAgc3RvcmUzMihyZWdUMSwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgSlNTdGFjazo6Q2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSAr
IFRhZ09mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOwogCiAgICAgaWYgKG9wY29k
ZUlEID09IG9wX2NhbGxfZXZhbCkgewogICAgICAgICBjb21waWxlQ2FsbEV2YWwoaW5zdHJ1Y3Rp
b24pOwpAQCAtMjgxLDEwICsyOTcsMTYgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoT3Bjb2Rl
SUQgb3Bjb2RlSQogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExp
bmtJbmZvSW5kZXhdLmNhbGxUeXBlID0gQ2FsbExpbmtJbmZvOjpjYWxsVHlwZUZvcihvcGNvZGVJ
RCk7CiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9J
bmRleF0uYnl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVPZmZzZXQ7CiAKLSAgICBsb2FkUHRyKEFk
ZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlZ1Qx
KTsKLSAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpTY29w
ZUNoYWluKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1
bmN0aW9uLCBtX3Njb3BlKSksIHJlZ1QyKTsKKyAgICBzdG9yZTMyKHJlZ1QyLCBBZGRyZXNzKE1h
Y3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6U2NvcGVDaGFpbiAq
IHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5k
UEMpKSk7CisgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEFkZHJl
c3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXplb2YoUmVn
aXN0ZXIpICsgVGFnT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisKKyAgICBj
aGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21w
aWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmhvdFBhdGhPdGhlciA9IGVtaXROYWtlZENh
bGwoKTsKIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1f
Y29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisKICAg
ICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIGVtaXRQdXRDYWxsUmVzdWx0KGlu
c3RydWN0aW9uKTsKIH0KQEAgLTI5OSw3ICszMjEsMTQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENh
bGxTbG93Q2FzZShPcGNvZGVJRAogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKICAgICBsaW5rU2xv
d0Nhc2UoaXRlcik7CiAKLSAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2Nh
bGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG9wY29k
ZUlEID09IG9wX2NvbnN0cnVjdCA/IG1fdm0tPmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5r
R2VuZXJhdG9yKS5jb2RlKCkgOiBtX3ZtLT5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0
b3IpLmNvZGUoKSk7CisgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2Vu
ZXJhdG9yRm9yKAorICAgICAgICBvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBDb2RlRm9yQ29u
c3RydWN0IDogQ29kZUZvckNhbGwsCisgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVx
dWlyZWQpOworICAgIAorICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2Fs
bExpbmtJbmZvSW5kZXhdLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGVtaXROYWtlZENhbGwobV92bS0+
Z2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNvZGUoKSk7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMy
KHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwg
Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNr
UG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsK
ICAgICBlbWl0UHV0Q2FsbFJlc3VsdChpbnN0cnVjdGlvbik7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2lu
Y2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5j
bHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFt
Lmg+CiAKQEAgLTcxLDEwICs3MiwxNCBAQCB2b2lkIEpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKElu
c3RydWN0aW9uCiAgICAgICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyMzIoSlNTdGFjazo6
QXJndW1lbnRDb3VudCwgcmVnVDApOwogICAgICAgICBzbG93Q2FzZS5hcHBlbmQoYnJhbmNoMzIo
QWJvdmUsIHJlZ1QwLCBUcnVzdGVkSW1tMzIoQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgKyAxKSkp
OwogICAgICAgICAvLyByZWdUMDogYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMKLQogICAgICAg
ICBtb3ZlKHJlZ1QwLCByZWdUMSk7CisgICAgICAgIGFkZDY0KFRydXN0ZWRJbW0zMigtZmlyc3RG
cmVlUmVnaXN0ZXIgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgcmVnVDEpOworICAg
ICAgICAvLyByZWdUMSBub3cgaGFzIHRoZSByZXF1aXJlZCBmcmFtZSBzaXplIGluIFJlZ2lzdGVy
IHVuaXRzCisgICAgICAgIC8vIFJvdW5kIHJlZ1QxIHRvIG5leHQgbXVsdGlwbGUgb2Ygc3RhY2tB
bGlnbm1lbnRSZWdpc3RlcnMoKQorICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIoc3RhY2tBbGln
bm1lbnRSZWdpc3RlcnMoKSAtIDEpLCByZWdUMSk7CisgICAgICAgIGFuZDY0KFRydXN0ZWRJbW0z
Mih+KHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSksIHJlZ1QxKTsKKwogICAgICAgICBu
ZWc2NChyZWdUMSk7Ci0gICAgICAgIGFkZDY0KFRydXN0ZWRJbW0zMihmaXJzdEZyZWVSZWdpc3Rl
ciAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCByZWdUMSk7CiAgICAgICAgIGxzaGlm
dDY0KFRydXN0ZWRJbW0zMigzKSwgcmVnVDEpOwogICAgICAgICBhZGRQdHIoY2FsbEZyYW1lUmVn
aXN0ZXIsIHJlZ1QxKTsKICAgICAgICAgLy8gcmVnVDE6IG5ld0NhbGxGcmFtZQpAQCAtMTA1LDcg
KzExMCw4IEBAIHZvaWQgSklUOjpjb21waWxlTG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24KICAgICAg
ICAgc2xvd0Nhc2UubGluayh0aGlzKTsKIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYXJn
dW1lbnRzLCByZWdUMSk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TaXplQW5kQWxsb2NG
cmFtZUZvclZhcmFyZ3MsIHJlZ1QxLCBmaXJzdEZyZWVSZWdpc3Rlcik7CisgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCByZWdUMSwgZmlyc3RGcmVlUmVnaXN0
ZXIpOworICAgIG1vdmUocmV0dXJuVmFsdWVHUFIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHRoaXNWYWx1ZSwgcmVnVDEpOwogICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXIoYXJndW1lbnRzLCByZWdUMik7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25Mb2FkVmFyYXJncywgcmV0dXJuVmFsdWVHUFIsIHJlZ1QxLCByZWdUMik7CkBAIC0xMTMs
MTMgKzExOSwyNCBAQCB2b2lkIEpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uCiAK
ICAgICBpZiAoY2FuT3B0aW1pemUpCiAgICAgICAgIGVuZC5saW5rKHRoaXMpOworICAgIAorICAg
IGFkZFB0cihUcnVzdGVkSW1tMzIoc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwgcmVnVDEsIHN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKIH0KIAogdm9pZCBKSVQ6OmNvbXBpbGVDYWxsRXZhbChJbnN0
cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiB7Ci0gICAgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVS
b2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbkNhbGxFdmFsKTsKKyAgICBhZGRQdHIoVHJ1c3Rl
ZEltbTMyKC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkp
LCBzdGFja1BvaW50ZXJSZWdpc3RlciwgcmVnVDEpOworICAgIGNhbGxPcGVyYXRpb25Ob0V4Y2Vw
dGlvbkNoZWNrKG9wZXJhdGlvbkNhbGxFdmFsLCByZWdUMSk7CisKKyAgICBKdW1wIG5vRXhjZXB0
aW9uID0gZW1pdEV4Y2VwdGlvbkNoZWNrKEludmVydGVkRXhjZXB0aW9uQ2hlY2spOworICAgIGFk
ZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNp
emVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIp
OyAgICAKKyAgICBleGNlcHRpb25DaGVjayhqdW1wKCkpOworCisgICAgbm9FeGNlcHRpb24ubGlu
ayh0aGlzKTsKICAgICBhZGRTbG93Q2FzZShicmFuY2g2NChFcXVhbCwgcmVnVDAsIFRydXN0ZWRJ
bW02NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKSkpKTsKLSAgICBlbWl0R2V0Q2FsbGVyRnJh
bWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKKworICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVv
ZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwor
ICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKICAgICBzYW1wbGVDb2RlQmxvY2so
bV9jb2RlQmxvY2spOwogICAgIApAQCAtMTMwLDggKzE0NywxMCBAQCB2b2lkIEpJVDo6Y29tcGls
ZUNhbGxFdmFsU2xvd0Nhc2UoSW5zdHJ1CiB7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogCi0g
ICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXI2NChKU1N0YWNrOjpDYWxsZWUsIHJlZ1QwKTsK
KyAgICBsb2FkNjQoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2l6ZW9mKFJlZ2lzdGVy
KSAqIEpTU3RhY2s6OkNhbGxlZSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QwKTsK
ICAgICBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENUSVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVy
YXRvcikuY29kZSgpKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNl
dEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIs
IHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgp
OwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTE3MCwxOCAr
MTg5LDE2IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKE9wY29kZUlEIG9wY29kZUkKICAgICAg
ICAgICAgIGRvbmUubGluayh0aGlzKTsKICAgICAgICAgfQogICAgIAotICAgICAgICBhZGRQdHIo
VHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFt
ZVJlZ2lzdGVyLCByZWdUMSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGFyZ0NvdW50
KSwgQWRkcmVzcyhyZWdUMSwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGlu
dD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3Jp
cHRvciwgYXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgfSAvLyByZWdUMSBob2xkcyBuZXdDYWxsRnJh
bWUgd2l0aCBBcmd1bWVudENvdW50IGluaXRpYWxpemVkLgorICAgICAgICBhZGRQdHIoVHJ1c3Rl
ZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lzdGVyKSArIHNpemVvZihDYWxsZXJG
cmFtZUFuZFBDKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7Cisg
ICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGFyZ0NvdW50KSwgQWRkcmVzcyhzdGFja1BvaW50
ZXJSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6
ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMp
KSk7CisgICAgfSAvLyBTUCBob2xkcyBuZXdDYWxsRnJhbWUgKyBzaXplb2YoQ2FsbGVyRnJhbWVB
bmRQQyksIHdpdGggQXJndW1lbnRDb3VudCBpbml0aWFsaXplZC4KICAgICAKICAgICB1aW50MzJf
dCBieXRlY29kZU9mZnNldCA9IGluc3RydWN0aW9uIC0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9u
cygpLmJlZ2luKCk7CiAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbEZyYW1lOjpMb2Nh
dGlvbjo6ZW5jb2RlQXNCeXRlY29kZU9mZnNldChieXRlY29kZU9mZnNldCk7Ci0gICAgc3RvcmUz
MihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3Rlciwg
SlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVy
KSkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykp
KTsKKyAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCBBZGRyZXNzKGNhbGxG
cmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc3RhdGljX2Nhc3Q8aW50Pihz
aXplb2YoUmVnaXN0ZXIpKSArIFRhZ09mZnNldCkpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIoY2FsbGVlLCByZWdUMCk7IC8vIHJlZ1QwIGhvbGRzIGNhbGxlZS4KIAotICAgIHN0b3JlNjQo
Y2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MocmVnVDEsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVP
ZmZzZXQoKSkpOwotICAgIHN0b3JlNjQocmVnVDAsIEFkZHJlc3MocmVnVDEsIEpTU3RhY2s6OkNh
bGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKLSAgICBtb3ZlKHJl
Z1QxLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgc3RvcmU2NChyZWdUMCwgQWRkcmVzcyhzdGFj
a1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6Q2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXpl
b2YoUmVnaXN0ZXIpKSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOwogCiAgICAgaWYgKG9w
Y29kZUlEID09IG9wX2NhbGxfZXZhbCkgewogICAgICAgICBjb21waWxlQ2FsbEV2YWwoaW5zdHJ1
Y3Rpb24pOwpAQCAtMTk4LDEwICsyMTUsMTQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoT3Bj
b2RlSUQgb3Bjb2RlSQogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2Fs
bExpbmtJbmZvSW5kZXhdLmNhbGxUeXBlID0gQ2FsbExpbmtJbmZvOjpjYWxsVHlwZUZvcihvcGNv
ZGVJRCk7CiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0lu
Zm9JbmRleF0uYnl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVPZmZzZXQ7CiAKLSAgICBsb2FkUHRy
KEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJl
Z1QxKTsKLSAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIEpTU3RhY2s6OlNjb3Bl
Q2hhaW4pOworICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTRnVu
Y3Rpb24sIG1fc2NvcGUpKSwgcmVnVDIpOworICAgIHN0b3JlNjQocmVnVDIsIEFkZHJlc3MoTWFj
cm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpTY29wZUNoYWluICog
c2l6ZW9mKFJlZ2lzdGVyKSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworCiAgICAgbV9j
YWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uaG90UGF0
aE90aGVyID0gZW1pdE5ha2VkQ2FsbCgpOwogCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFj
a1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxG
cmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50
ZXJBbGlnbm1lbnQoKTsKKwogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAg
CiAgICAgZW1pdFB1dENhbGxSZXN1bHQoaW5zdHJ1Y3Rpb24pOwpAQCAtMjE2LDcgKzIzNywxNCBA
QCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKE9wY29kZUlECiAKICAgICBsaW5rU2xv
d0Nhc2UoaXRlcik7CiAKLSAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2Nh
bGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG9wY29k
ZUlEID09IG9wX2NvbnN0cnVjdCA/IG1fdm0tPmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5r
R2VuZXJhdG9yKS5jb2RlKCkgOiBtX3ZtLT5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0
b3IpLmNvZGUoKSk7CisgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2Vu
ZXJhdG9yRm9yKAorICAgICAgICBvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBDb2RlRm9yQ29u
c3RydWN0IDogQ29kZUZvckNhbGwsCisgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVx
dWlyZWQpOworICAgIAorICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2Fs
bExpbmtJbmZvSW5kZXhdLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGVtaXROYWtlZENhbGwobV92bS0+
Z2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNvZGUoKSk7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMy
KHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwg
Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNr
UG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsK
ICAgICAKQEAgLTIyNiw3ICsyNTQsNyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNl
KE9wY29kZUlECiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDbG9zdXJlQ2FsbChDYWxsTGlua0lu
Zm8qIGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssIFN0cnVjdHVyZSog
ZXhwZWN0ZWRTdHJ1Y3R1cmUsIEV4ZWN1dGFibGVCYXNlKiBleHBlY3RlZEV4ZWN1dGFibGUsIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyKQogewogICAgIEp1bXBMaXN0IHNsb3dDYXNlczsK
LSAgICAKKwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0cihOb25aZXJvLCByZWdU
MCwgdGFnTWFza1JlZ2lzdGVyKSk7CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90
RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBUcnVzdGVk
SW1tUHRyKGV4cGVjdGVkU3RydWN0dXJlKSkpOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNo
UHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFi
bGUoKSksIFRydXN0ZWRJbW1QdHIoZXhwZWN0ZWRFeGVjdXRhYmxlKSkpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJMTEludFRodW5rcy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCIKICNp
bmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC00MSwxMSAr
NDIsOSBAQCBKSVRDb2RlOjp+SklUQ29kZSgpCiB7CiB9CiAKLUpTVmFsdWUgSklUQ29kZTo6ZXhl
Y3V0ZShWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSwgUmVnaXN0ZXIqIHRv
cE9mU3RhY2spCitKU1ZhbHVlIEpJVENvZGU6OmV4ZWN1dGUoVk0qIHZtLCBQcm90b0NhbGxGcmFt
ZSogcHJvdG9DYWxsRnJhbWUpCiB7Ci0gICAgQVNTRVJUKCF2bS0+dG9wQ2FsbEZyYW1lIHx8ICgo
UmVnaXN0ZXIqKSh2bS0+dG9wQ2FsbEZyYW1lKSA+PSB0b3BPZlN0YWNrKSk7Ci0KLSAgICBKU1Zh
bHVlIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9KYXZhU2NyaXB0KGV4ZWN1dGFibGVB
ZGRyZXNzKCksICZ2bS0+dG9wQ2FsbEZyYW1lLCBwcm90b0NhbGxGcmFtZSwgdG9wT2ZTdGFjaykp
OworICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxUb0phdmFTY3JpcHQo
ZXhlY3V0YWJsZUFkZHJlc3MoKSwgdm0sIHByb3RvQ2FsbEZyYW1lKSk7CiAgICAgcmV0dXJuIHZt
LT5leGNlcHRpb24oKSA/IGpzTnVsbCgpIDogcmVzdWx0OwogfQogCkBAIC03Myw1MiArNzIsMzUg
QEAgRlRMOjpGb3JPU1JFbnRyeUpJVENvZGUqIEpJVENvZGU6OmZ0bEZvcgogICAgIHJldHVybiAw
OwogfQogCi1QYXNzUmVmUHRyPEpJVENvZGU+IEpJVENvZGU6Omhvc3RGdW5jdGlvbihKSVRDb2Rl
OjpDb2RlUmVmIGNvZGUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2Rl
KGNvZGUsIEhvc3RDYWxsVGh1bmspKTsKLX0KLQotRGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29k
ZShKSVRUeXBlIGppdFR5cGUpCitKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJl
ZihKSVRUeXBlIGppdFR5cGUpCiAgICAgOiBKSVRDb2RlKGppdFR5cGUpCiB7CiB9CiAKLURpcmVj
dEpJVENvZGU6OkRpcmVjdEpJVENvZGUoY29uc3QgSklUQ29kZTo6Q29kZVJlZiByZWYsIEpJVFR5
cGUgaml0VHlwZSkKK0pJVENvZGVXaXRoQ29kZVJlZjo6SklUQ29kZVdpdGhDb2RlUmVmKENvZGVS
ZWYgcmVmLCBKSVRUeXBlIGppdFR5cGUpCiAgICAgOiBKSVRDb2RlKGppdFR5cGUpCiAgICAgLCBt
X3JlZihyZWYpCiB7CiB9CiAKLURpcmVjdEpJVENvZGU6On5EaXJlY3RKSVRDb2RlKCkKLXsKLX0K
LQotdm9pZCBEaXJlY3RKSVRDb2RlOjppbml0aWFsaXplQ29kZVJlZihjb25zdCBKSVRDb2RlOjpD
b2RlUmVmIHJlZikKK0pJVENvZGVXaXRoQ29kZVJlZjo6fkpJVENvZGVXaXRoQ29kZVJlZigpCiB7
Ci0gICAgUkVMRUFTRV9BU1NFUlQoIW1fcmVmKTsKLSAgICBtX3JlZiA9IHJlZjsKIH0KIAotSklU
Q29kZTo6Q29kZVB0ciBEaXJlY3RKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgpCi17Ci0gICAgUkVM
RUFTRV9BU1NFUlQobV9yZWYpOwotICAgIHJldHVybiBtX3JlZi5jb2RlKCk7Ci19Ci0KLXZvaWQq
IERpcmVjdEpJVENvZGU6OmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkK
K3ZvaWQqIEpJVENvZGVXaXRoQ29kZVJlZjo6ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXpl
X3Qgb2Zmc2V0KQogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsKICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4obV9yZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpICsg
b2Zmc2V0OwogfQogCi12b2lkKiBEaXJlY3RKSVRDb2RlOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNp
emVfdCBvZmZzZXQpCit2b2lkKiBKSVRDb2RlV2l0aENvZGVSZWY6OmRhdGFBZGRyZXNzQXRPZmZz
ZXQoc2l6ZV90IG9mZnNldCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgQVNT
RVJUKG9mZnNldCA8PSBzaXplKCkpOyAvLyB1c2UgPD0gaW5zdGVhZCBvZiA8IGJlY2F1c2UgaXQg
aXMgdmFsaWQgdG8gYXNrIGZvciBhbiBhZGRyZXNzIGF0IHRoZSBleGNsdXNpdmUgZW5kIG9mIHRo
ZSBjb2RlLgogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihtX3JlZi5jb2RlKCku
ZGF0YUxvY2F0aW9uKCkpICsgb2Zmc2V0OwogfQogCi11bnNpZ25lZCBEaXJlY3RKSVRDb2RlOjpv
ZmZzZXRPZih2b2lkKiBwb2ludGVySW50b0NvZGUpCit1bnNpZ25lZCBKSVRDb2RlV2l0aENvZGVS
ZWY6Om9mZnNldE9mKHZvaWQqIHBvaW50ZXJJbnRvQ29kZSkKIHsKICAgICBSRUxFQVNFX0FTU0VS
VChtX3JlZik7CiAgICAgaW50cHRyX3QgcmVzdWx0ID0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJf
dD4ocG9pbnRlckludG9Db2RlKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KG1fcmVmLmNv
ZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKQEAgLTEyNiwxOCArMTA4LDExNyBAQCB1bnNpZ25l
ZCBEaXJlY3RKSVRDb2RlOjpvZmZzZXRPZih2b2lkKiBwCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihyZXN1bHQpOwogfQogCi1zaXplX3QgRGlyZWN0SklUQ29kZTo6c2l6ZSgpCitz
aXplX3QgSklUQ29kZVdpdGhDb2RlUmVmOjpzaXplKCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVCht
X3JlZik7CiAgICAgcmV0dXJuIG1fcmVmLnNpemUoKTsKIH0KIAotYm9vbCBEaXJlY3RKSVRDb2Rl
Ojpjb250YWlucyh2b2lkKiBhZGRyZXNzKQorYm9vbCBKSVRDb2RlV2l0aENvZGVSZWY6OmNvbnRh
aW5zKHZvaWQqIGFkZHJlc3MpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIHJl
dHVybiBtX3JlZi5leGVjdXRhYmxlTWVtb3J5KCktPmNvbnRhaW5zKGFkZHJlc3MpOwogfQogCitE
aXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRDb2RlKEpJVFR5cGUgaml0VHlwZSkKKyAgICA6IEpJVENv
ZGVXaXRoQ29kZVJlZihqaXRUeXBlKQoreworfQorCitEaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRD
b2RlKAorICAgIEpJVENvZGU6OkNvZGVSZWYgcmVmLCBKSVRDb2RlOjpDb2RlUHRyIHdpdGhBcml0
eUNoZWNrLCBKSVRUeXBlIGppdFR5cGUpCisgICAgOiBKSVRDb2RlV2l0aENvZGVSZWYocmVmLCBq
aXRUeXBlKQorICAgICwgbV93aXRoQXJpdHlDaGVjayh3aXRoQXJpdHlDaGVjaykKK3sKK30KKwor
RGlyZWN0SklUQ29kZTo6fkRpcmVjdEpJVENvZGUoKQoreworfQorCit2b2lkIERpcmVjdEpJVENv
ZGU6OmluaXRpYWxpemVDb2RlUmVmKEpJVENvZGU6OkNvZGVSZWYgcmVmLCBKSVRDb2RlOjpDb2Rl
UHRyIHdpdGhBcml0eUNoZWNrKQoreworICAgIFJFTEVBU0VfQVNTRVJUKCFtX3JlZik7CisgICAg
bV9yZWYgPSByZWY7CisgICAgbV93aXRoQXJpdHlDaGVjayA9IHdpdGhBcml0eUNoZWNrOworfQor
CitEaXJlY3RKSVRDb2RlOjpSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzKiBEaXJlY3RKSVRD
b2RlOjplbnN1cmVXcmFwcGVycygpCit7CisgICAgaWYgKCFtX3dyYXBwZXJzKQorICAgICAgICBt
X3dyYXBwZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJz
PigpOworICAgIHJldHVybiBtX3dyYXBwZXJzLmdldCgpOworfQorCitKSVRDb2RlOjpDb2RlUHRy
IERpcmVjdEpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKAorICAgIFZNJiB2bSwgRXhlY3V0YWJsZUJh
c2UqIGV4ZWN1dGFibGUsIEFyaXR5Q2hlY2tNb2RlIGFyaXR5LAorICAgIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChhcml0eSkgeworICAgIGNhc2Ug
QXJpdHlDaGVja05vdFJlcXVpcmVkOgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAg
ICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVChtX3JlZik7CisgICAgICAgICAgICByZXR1cm4gbV9yZWYuY29kZSgpOwor
ICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczogeworI2lmIEVOQUJMRShKSVQpCisg
ICAgICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzKiB3cmFwcGVycyA9IGVuc3Vy
ZVdyYXBwZXJzKCk7CisgICAgICAgICAgICBpZiAoIXdyYXBwZXJzLT53aXRob3V0QXJpdHlDaGVj
aykKKyAgICAgICAgICAgICAgICB3cmFwcGVycy0+d2l0aG91dEFyaXR5Q2hlY2sgPSBnZW5lcmF0
ZVJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcih2bSwgZXhlY3V0YWJsZSwgbV9yZWYuY29kZSgp
KTsKKyAgICAgICAgICAgIHJldHVybiB3cmFwcGVycy0+d2l0aG91dEFyaXR5Q2hlY2suY29kZSgp
OworI2Vsc2UKKyAgICAgICAgICAgIFVOVVNFRF9QQVJBTSh2bSk7CisgICAgICAgICAgICBVTlVT
RURfUEFSQU0oZXhlY3V0YWJsZSk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworI2VuZGlmCisgICAgICAgIH0gfQorICAgIGNhc2UgTXVzdENoZWNrQXJpdHk6Cisg
ICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fd2l0aEFyaXR5
Q2hlY2spOworICAgICAgICAgICAgcmV0dXJuIG1fd2l0aEFyaXR5Q2hlY2s7CisgICAgICAgIGNh
c2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOiB7CisjaWYgRU5BQkxFKEpJVCkKKyAgICAgICAgICAg
IFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnMqIHdyYXBwZXJzID0gZW5zdXJlV3JhcHBlcnMo
KTsKKyAgICAgICAgICAgIGlmICghd3JhcHBlcnMtPndpdGhBcml0eUNoZWNrKQorICAgICAgICAg
ICAgICAgIHdyYXBwZXJzLT53aXRoQXJpdHlDaGVjayA9IGdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2
YXRpb25XcmFwcGVyKHZtLCBleGVjdXRhYmxlLCBtX3dpdGhBcml0eUNoZWNrKTsKKyAgICAgICAg
ICAgIHJldHVybiB3cmFwcGVycy0+d2l0aEFyaXR5Q2hlY2suY29kZSgpOworI2Vsc2UKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgfSB9
CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIENv
ZGVQdHIoKTsKK30KKworTmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZShKSVRUeXBlIGppdFR5
cGUpCisgICAgOiBKSVRDb2RlV2l0aENvZGVSZWYoaml0VHlwZSkKK3sKK30KKworTmF0aXZlSklU
Q29kZTo6TmF0aXZlSklUQ29kZShDb2RlUmVmIHJlZiwgSklUVHlwZSBqaXRUeXBlKQorICAgIDog
SklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlwZSkKK3sKK30KKworTmF0aXZlSklUQ29kZTo6
fk5hdGl2ZUpJVENvZGUoKQoreworfQorCit2b2lkIE5hdGl2ZUpJVENvZGU6OmluaXRpYWxpemVD
b2RlUmVmKENvZGVSZWYgcmVmKQoreworICAgIEFTU0VSVCghbV9yZWYpOworICAgIG1fcmVmID0g
cmVmOworfQorCitKSVRDb2RlOjpDb2RlUHRyIE5hdGl2ZUpJVENvZGU6OmFkZHJlc3NGb3JDYWxs
KAorICAgIFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9kZSwgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Nb2RlKQoreworICAgIFJFTEVBU0VfQVNTRVJUKCEhbV9yZWYpOworICAgIHJldHVy
biBtX3JlZi5jb2RlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiBuYW1lc3BhY2UgV1RG
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMjYsMTQgKzI2LDE0IEBACiAjaWZuZGVmIEpJVENvZGVfaAogI2RlZmluZSBKSVRDb2RlX2gK
IAotI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKKyNpbmNsdWRlICJBcml0eUNoZWNr
TW9kZS5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5o
IgogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1
ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgi
Ci0jZW5kaWYKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCIKIAogbmFtZXNw
YWNlIEpTQyB7CiAKQEAgLTU0LDcgKzU0LDE0IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBDb2RlUmVmOwogICAgIHR5cGVkZWYgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIENvZGVQdHI7CiAKLSAgICBlbnVtIEpJVFR5cGUgeyBOb25lLCBIb3N0Q2FsbFRodW5rLCBJ
bnRlcnByZXRlclRodW5rLCBCYXNlbGluZUpJVCwgREZHSklULCBGVExKSVQgfTsKKyAgICBlbnVt
IEpJVFR5cGUgOiB1aW50OF90IHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgSG9zdENhbGxUaHVu
aywKKyAgICAgICAgSW50ZXJwcmV0ZXJUaHVuaywKKyAgICAgICAgQmFzZWxpbmVKSVQsCisgICAg
ICAgIERGR0pJVCwKKyAgICAgICAgRlRMSklUCisgICAgfTsKICAgICAKICAgICBzdGF0aWMgSklU
VHlwZSBib3R0b21UaWVySklUKCkKICAgICB7CkBAIC0xNjQsNyArMTcxLDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gaml0Q29kZS0+aml0VHlwZSgpOwogICAgIH0KICAgICAKLSAgICB2aXJ0
dWFsIENvZGVQdHIgYWRkcmVzc0ZvckNhbGwoKSA9IDA7CisgICAgdmlydHVhbCBDb2RlUHRyIGFk
ZHJlc3NGb3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9kZSwgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Nb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkKiBleGVjdXRhYmxlQWRk
cmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpID0gMDsKICAgICB2b2lkKiBleGVjdXRhYmxlQWRk
cmVzcygpIHsgcmV0dXJuIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoMCk7IH0KICAgICB2aXJ0
dWFsIHZvaWQqIGRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgPSAwOwpAQCAtMTc1
LDcgKzE4Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEZUTDo6SklUQ29kZSogZnRsKCk7CiAg
ICAgdmlydHVhbCBGVEw6OkZvck9TUkVudHJ5SklUQ29kZSogZnRsRm9yT1NSRW50cnkoKTsKICAg
ICAKLSAgICBKU1ZhbHVlIGV4ZWN1dGUoVk0qLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKik7
CisgICAgSlNWYWx1ZSBleGVjdXRlKFZNKiwgUHJvdG9DYWxsRnJhbWUqKTsKICAgICAKICAgICB2
b2lkKiBzdGFydCgpIHsgcmV0dXJuIGRhdGFBZGRyZXNzQXRPZmZzZXQoMCk7IH0KICAgICB2aXJ0
dWFsIHNpemVfdCBzaXplKCkgPSAwOwpAQCAtMTgzLDMxICsxOTAsNjIgQEAgcHVibGljOgogICAg
IAogICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyh2b2lkKikgPSAwOwogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SklUQ29kZT4gaG9zdEZ1bmN0aW9uKENvZGVSZWYpOwotCiBwcml2YXRlOgogICAg
IEpJVFR5cGUgbV9qaXRUeXBlOwogfTsKIAotY2xhc3MgRGlyZWN0SklUQ29kZSA6IHB1YmxpYyBK
SVRDb2RlIHsKK2NsYXNzIEpJVENvZGVXaXRoQ29kZVJlZiA6IHB1YmxpYyBKSVRDb2RlIHsKK3By
b3RlY3RlZDoKKyAgICBKSVRDb2RlV2l0aENvZGVSZWYoSklUVHlwZSk7CisgICAgSklUQ29kZVdp
dGhDb2RlUmVmKENvZGVSZWYsIEpJVFR5cGUpOworCiBwdWJsaWM6Ci0gICAgRGlyZWN0SklUQ29k
ZShKSVRUeXBlKTsKLSAgICBEaXJlY3RKSVRDb2RlKGNvbnN0IENvZGVSZWYsIEpJVFR5cGUpOwot
ICAgIHZpcnR1YWwgfkRpcmVjdEpJVENvZGUoKTsKLSAgICAKLSAgICB2b2lkIGluaXRpYWxpemVD
b2RlUmVmKENvZGVSZWYgcmVmKTsKKyAgICB2aXJ0dWFsIH5KSVRDb2RlV2l0aENvZGVSZWYoKTsK
IAotICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbCgpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQqIGRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNl
dCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBvZmZzZXRPZih2b2lkKiBwb2ludGVy
SW50b0NvZGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgc2l6ZV90IHNpemUoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnModm9pZCopIG92ZXJyaWRlOwogCi1wcml2YXRlOgor
cHJvdGVjdGVkOgogICAgIENvZGVSZWYgbV9yZWY7CiB9OwogCitjbGFzcyBEaXJlY3RKSVRDb2Rl
IDogcHVibGljIEpJVENvZGVXaXRoQ29kZVJlZiB7CitwdWJsaWM6CisgICAgRGlyZWN0SklUQ29k
ZShKSVRUeXBlKTsKKyAgICBEaXJlY3RKSVRDb2RlKENvZGVSZWYsIENvZGVQdHIgd2l0aEFyaXR5
Q2hlY2ssIEpJVFR5cGUpOworICAgIHZpcnR1YWwgfkRpcmVjdEpJVENvZGUoKTsKKyAgICAKKyAg
ICB2b2lkIGluaXRpYWxpemVDb2RlUmVmKENvZGVSZWYgcmVmLCBDb2RlUHRyIHdpdGhBcml0eUNo
ZWNrKTsKKworICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbChWTSYsIEV4ZWN1dGFi
bGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkgb3ZlcnJp
ZGU7CisKK3ByaXZhdGU6CisgICAgc3RydWN0IFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnMg
eworICAgICAgICBDb2RlUmVmIHdpdGhvdXRBcml0eUNoZWNrOworICAgICAgICBDb2RlUmVmIHdp
dGhBcml0eUNoZWNrOworICAgIH07CisKKyAgICBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJz
KiBlbnN1cmVXcmFwcGVycygpOworICAgIAorICAgIENvZGVQdHIgbV93aXRoQXJpdHlDaGVjazsK
KyAgICAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycz4g
bV93cmFwcGVyczsKK307CisKK2NsYXNzIE5hdGl2ZUpJVENvZGUgOiBwdWJsaWMgSklUQ29kZVdp
dGhDb2RlUmVmIHsKK3B1YmxpYzoKKyAgICBOYXRpdmVKSVRDb2RlKEpJVFR5cGUpOworICAgIE5h
dGl2ZUpJVENvZGUoQ29kZVJlZiwgSklUVHlwZSk7CisgICAgdmlydHVhbCB+TmF0aXZlSklUQ29k
ZSgpOworICAgIAorICAgIHZvaWQgaW5pdGlhbGl6ZUNvZGVSZWYoQ29kZVJlZiByZWYpOworCisg
ICAgdmlydHVhbCBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBB
cml0eUNoZWNrTW9kZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKSBvdmVycmlkZTsKK307CisK
IH0gLy8gbmFtZXNwYWNlIEpTQwogCiBuYW1lc3BhY2UgV1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDMsNiArNDMsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgZ2VuZXJpY1Vud2lu
ZChWTSogdm0sIEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlKQog
eworICAgIGlmIChPcHRpb25zOjpicmVha09uVGhyb3coKSkgeworICAgICAgICBkYXRhTG9nKCJJ
biBjYWxsIGZyYW1lICIsIFJhd1BvaW50ZXIoY2FsbEZyYW1lKSwgIiBmb3IgY29kZSBibG9jayAi
LCAqY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgIlxuIik7CisgICAgICAgIENSQVNIKCk7CisgICAg
fQorICAgIAogICAgIFJFTEVBU0VfQVNTRVJUKGV4Y2VwdGlvblZhbHVlKTsKICAgICBIYW5kbGVy
SW5mbyogaGFuZGxlciA9IHZtLT5pbnRlcnByZXRlci0+dW53aW5kKGNhbGxGcmFtZSwgZXhjZXB0
aW9uVmFsdWUpOyAvLyBUaGlzIG1heSB1cGRhdGUgY2FsbEZyYW1lLgogCkBAIC01Niw3ICs2MSw3
IEBAIHZvaWQgZ2VuZXJpY1Vud2luZChWTSogdm0sIEV4ZWNTdGF0ZSogY2EKICAgICAgICAgY2F0
Y2hSb3V0aW5lID0gY2F0Y2hQQ0ZvckludGVycHJldGVyLT51LnBvaW50ZXI7CiAjZW5kaWYKICAg
ICB9IGVsc2UKLSAgICAgICAgY2F0Y2hSb3V0aW5lID0gTExJbnQ6OmdldENvZGVQdHIocmV0dXJu
RnJvbUphdmFTY3JpcHQpOworICAgICAgICBjYXRjaFJvdXRpbmUgPSBMTEludDo6Z2V0Q29kZVB0
cihoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbik7CiAgICAgCiAgICAgdm0tPmNhbGxGcmFtZUZvclRo
cm93ID0gY2FsbEZyYW1lOwogICAgIHZtLT50YXJnZXRNYWNoaW5lUENGb3JUaHJvdyA9IGNhdGNo
Um91dGluZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVH
ZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDksNyArNDksNyBAQCBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6SklUSW5saW5lQ2Fj
aGVHCiAKIEpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IoCiAgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVz
ZWRSZWdpc3RlcnMsCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyBi
YXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgYm9vbCByZWdpc3RlcnNGbHVzaGVkKQorICAgIEpTVmFs
dWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCiAg
ICAgOiBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVPcmlnaW4pCiAgICAg
LCBtX2Jhc2UoYmFzZSkKICAgICAsIG1fdmFsdWUodmFsdWUpCkBAIC02Miw3ICs2Miw2IEBAIEpJ
VEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IoCiAgICAgbV9zdHViSW5mby0+cGF0Y2gu
dXNlZFJlZ2lzdGVycy5zZXQoYmFzZSk7CiAgICAgbV9zdHViSW5mby0+cGF0Y2gudXNlZFJlZ2lz
dGVycy5zZXQodmFsdWUpOwogICAgIAotICAgIG1fc3R1YkluZm8tPnBhdGNoLmNhbGxGcmFtZVJl
Z2lzdGVyID0gc3RhdGljX2Nhc3Q8aW50OF90PihjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgbV9z
dHViSW5mby0+cGF0Y2guYmFzZUdQUiA9IHN0YXRpY19jYXN0PGludDhfdD4oYmFzZS5wYXlsb2Fk
R1BSKCkpOwogICAgIG1fc3R1YkluZm8tPnBhdGNoLnZhbHVlR1BSID0gc3RhdGljX2Nhc3Q8aW50
OF90Pih2YWx1ZS5wYXlsb2FkR1BSKCkpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC0xMzAs
MTEgKzEyOSw5IEBAIHZvaWQgSklUR2V0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGEKIAog
SklUUHV0QnlJZEdlbmVyYXRvcjo6SklUUHV0QnlJZEdlbmVyYXRvcigKICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNl
ZFJlZ2lzdGVycywKLSAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzIGJh
c2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwKLSAgICBib29sIHJlZ2lzdGVy
c0ZsdXNoZWQsIEVDTUFNb2RlIGVjbWFNb2RlLCBQdXRLaW5kIHB1dEtpbmQpCi0gICAgOiBKSVRC
eUlkR2VuZXJhdG9yKAotICAgICAgICBjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3Rl
cnMsIGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlLCB2YWx1ZSwKLSAgICAgICAgcmVnaXN0ZXJzRmx1
c2hlZCkKKyAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNj
cmF0Y2gsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCwKKyAgICBFQ01BTW9kZSBlY21hTW9kZSwgUHV0
S2luZCBwdXRLaW5kKQorICAgIDogSklUQnlJZEdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVPcmln
aW4sIHVzZWRSZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCByZWdpc3RlcnNGbHVzaGVkKQogICAgICwg
bV9zY3JhdGNoKHNjcmF0Y2gpCiAgICAgLCBtX2VjbWFNb2RlKGVjbWFNb2RlKQogICAgICwgbV9w
dXRLaW5kKHB1dEtpbmQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZUNhY2hlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU2LDggKzU2LDggQEAgcHJvdGVjdGVkOgogICAgIEpJVEJ5SWRHZW5lcmF0b3IoKSB7
IH0KIAogICAgIEpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIENvZGVCbG9jayosIENvZGVPcmln
aW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAg
ICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgYm9vbCByZWdpc3RlcnNGbHVz
aGVkKTsKKyAgICAgICAgQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQm
LCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwKKyAgICAgICAgYm9vbCByZWdp
c3RlcnNGbHVzaGVkKTsKICAgICAKIHB1YmxpYzoKICAgICB2b2lkIHJlcG9ydFNsb3dQYXRoQ2Fs
bChNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgc2xvd1BhdGhCZWdpbiwgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbCkKQEAgLTk2LDExICs5Niw4IEBAIHB1YmxpYzoKIAogICAgIEpJVEdldEJ5SWRHZW5l
cmF0b3IoCiAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmln
aW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAotICAgICAgICBHUFJSZWcgY2Fs
bEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLAotICAg
ICAgICBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCi0gICAgICAgIDogSklUQnlJZEdlbmVyYXRvcigK
LSAgICAgICAgICAgIGNvZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywgY2FsbEZy
YW1lUmVnaXN0ZXIsIGJhc2UsIHZhbHVlLAotICAgICAgICAgICAgcmVnaXN0ZXJzRmx1c2hlZCkK
KyAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIGJvb2wgcmVnaXN0
ZXJzRmx1c2hlZCkKKyAgICAgICAgOiBKSVRCeUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9y
aWdpbiwgdXNlZFJlZ2lzdGVycywgYmFzZSwgdmFsdWUsIHJlZ2lzdGVyc0ZsdXNoZWQpCiAgICAg
ewogICAgIH0KICAgICAKQEAgLTExMiw5ICsxMDksOCBAQCBwdWJsaWM6CiAgICAgSklUUHV0QnlJ
ZEdlbmVyYXRvcigpIHsgfQogCiAgICAgSklUUHV0QnlJZEdlbmVyYXRvcigKLSAgICAgICAgQ29k
ZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIEdQ
UlJlZyBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1
ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzY3JhdGNoLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQsCi0gICAg
ICAgIEVDTUFNb2RlLCBQdXRLaW5kKTsKKyAgICAgICAgQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwg
Y29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVSZWdzIGJhc2UsCisgICAg
ICAgIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgYm9vbCByZWdpc3RlcnNGbHVz
aGVkLCBFQ01BTW9kZSwgUHV0S2luZCk7CiAgICAgCiAgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRo
KE1hY3JvQXNzZW1ibGVyJik7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZXMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDYgQEAgQUxXQVlTX0lO
TElORSB2b2lkIEpJVDo6ZW1pdExvYWRDaGFyYWN0ZQogQUxXQVlTX0lOTElORSBKSVQ6OkNhbGwg
SklUOjplbWl0TmFrZWRDYWxsKENvZGVQdHIgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKG1fYnl0
ZWNvZGVPZmZzZXQgIT0gKHVuc2lnbmVkKS0xKTsgLy8gVGhpcyBtZXRob2Qgc2hvdWxkIG9ubHkg
YmUgY2FsbGVkIGR1cmluZyBob3QvY29sZCBwYXRoIGdlbmVyYXRpb24sIHNvIHRoYXQgbV9ieXRl
Y29kZU9mZnNldCBpcyBzZXQuCi0KICAgICBDYWxsIG5ha2VkQ2FsbCA9IG5lYXJDYWxsKCk7CiAg
ICAgbV9jYWxscy5hcHBlbmQoQ2FsbFJlY29yZChuYWtlZENhbGwsIG1fYnl0ZWNvZGVPZmZzZXQs
IGZ1bmN0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKICAgICByZXR1cm4gbmFrZWRDYWxsOwpA
QCAtMjIzLDIxICsyMjIsMjEgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJl
c3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0aW9uX0VaIG9wZXJhdGlvbiwgaW50
MzJfdCBvcCkKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3Bl
cmF0aW9uKFNfSklUT3BlcmF0aW9uX0VDQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBS
ZWdpc3RlcklEIHJlZ09wMikKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1
c3RlZEltbTMyKG9wKSk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwg
cmVnT3AyKTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRp
b24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FQ0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwg
UmVnaXN0ZXJJRCByZWdPcDIpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FT0pzcyBvcGVyYXRpb24sIFJlZ2lzdGVy
SUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMikKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUocmVnT3AxLCByZWdPcDIpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2Vw
dGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VPSnNzIG9wZXJhdGlvbiwg
UmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyKQorQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oU3BydF9KSVRPcGVyYXRpb25fRVog
b3BlcmF0aW9uLCBpbnQzMl90IG9wKQogewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShyZWdPcDEsIHJlZ09wMik7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0
ZWRJbW0zMihvcCkpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9w
ZXJhdGlvbik7CiB9CiAKQEAgLTI3Nyw2ICsyNzYsMTMgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aENhbGxGcmFtZVJv
bGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKEpfSklUT3Bl
cmF0aW9uX0VFIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcCkKK3sKKyAgICBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUocmVnT3ApOworICAgIHVwZGF0ZVRvcENhbGxGcmFtZSgpOworICAg
IHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25F
eGNlcHRpb24oVl9KSVRPcGVyYXRpb25fRUNiIG9wZXJhdGlvbiwgQ29kZUJsb2NrKiBwb2ludGVy
KQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKHBvaW50
ZXIpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2RlczMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDksIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBQYXRyaWNrIEdhbnN0
ZXJlciA8cGFyb2dhQHBhcm9nYS5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zOSw2ICszOSw3
IEBACiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTVmFy
aWFibGVPYmplY3QuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiTWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJTbG93UGF0aENhbGwuaCIKICNp
bmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKIApAQCAtNDgsNiArNDksNyBAQCBKSVQ6OkNvZGVS
ZWYgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2CiB7CiAgICAgQ2FsbCBuYXRpdmVDYWxsOwog
CisgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICBlbWl0UHV0SW1tZWRpYXRlVG9DYWxs
RnJhbWVIZWFkZXIoMCwgSlNTdGFjazo6Q29kZUJsb2NrKTsKICAgICBzdG9yZVB0cihjYWxsRnJh
bWVSZWdpc3RlciwgJm1fdm0tPnRvcENhbGxGcmFtZSk7CiAKQEAgLTU4LDIxICs2MCwxNyBAQCBK
SVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2CiAgICAgZW1pdEdldEZyb21D
YWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1QwKTsKICAg
ICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWlu
KTsKIAotICAgIHBlZWsocmVnVDEpOwotICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVh
ZGVyKHJlZ1QxKTsKLQogICAgIC8vIENhbGxpbmcgY29udmVudGlvbjogICAgICBmKGVjeCwgZWR4
LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwog
ICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWN4KTsKIAotICAgIHN1
YlB0cihUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2Yodm9pZCopKSwgc3RhY2tQb2ludGVyUmVnaXN0
ZXIpOyAvLyBBbGlnbiBzdGFjayBhZnRlciBjYWxsLgotCi0gICAgbW92ZShyZWdUMCwgY2FsbEZy
YW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRv
IGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KKyAgICBzdWJQdHIoVHJ1c3RlZEltbTMyKDgpLCBz
dGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNrIGZvciBjYWxsLgorICAgIHN0b3Jl
UHRyKFg4NlJlZ2lzdGVyczo6ZWN4LCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyKSk7CiAK
ICAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgogICAgIG5hdGl2ZUNhbGwgPSBjYWxsKCk7CiAKLSAg
ICBhZGRQdHIoVHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZvaWQqKSksIHN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDgpLCBzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CiAKICNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpIHx8IENQVShNSVBTKQogICAgIC8vIExv
YWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFtZSBzbyB0aGF0
IHdoYXRldmVyIHdlIGNhbGwgY2FuIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCkBAIC04MCw5ICs3
OCw2IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXYKICAgICBlbWl0
R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpTY29wZUNoYWluLCByZWdUMSwgcmVn
VDIpOwogICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIEpTU3RhY2s6OlNj
b3BlQ2hhaW4pOwogCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QzKTsg
Ly8gQ2FsbGVlIHByZXNlcnZlZAotICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVy
KHJlZ1QzKTsKLQogI2lmIENQVShNSVBTKQogICAgIC8vIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGZv
ciAodW51c2VkKSAxNiBieXRlcyAoOC1ieXRlIGFsaWduZWQpIGZvciA0IGFyZ3VtZW50cy4KICAg
ICBzdWJQdHIoVHJ1c3RlZEltbTMyKDE2KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtOTMs
NyArODgsNiBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2CiAgICAg
bW92ZShjYWxsRnJhbWVSZWdpc3RlciwgYXJndW1lbnRHUFIwKTsKIAogICAgIGVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwgYXJndW1lbnRHUFIxKTsKLSAgICBt
b3ZlKHJlZ1QyLCBjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIg
ZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgogICAgIGxvYWRQdHIo
QWRkcmVzcyhhcmd1bWVudEdQUjEsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX2V4ZWN1
dGFibGUpKSwgcmVnVDIpOwogCiAgICAgLy8gY2FsbCB0aGUgZnVuY3Rpb24KQEAgLTExMywzMCAr
MTA3LDI3IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXYKICAgICAv
LyBDaGVjayBmb3IgYW4gZXhjZXB0aW9uCiAgICAgSnVtcCBzYXdFeGNlcHRpb24gPSBicmFuY2gz
MihOb3RFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHZtLT5h
ZGRyZXNzT2ZFeGNlcHRpb24oKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMu
dGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7IAogCisgICAgZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAvLyBSZXR1cm4uCiAgICAgcmV0KCk7CiAKICAgICAv
LyBIYW5kbGUgYW4gZXhjZXB0aW9uCiAgICAgc2F3RXhjZXB0aW9uLmxpbmsodGhpcyk7CiAKLSAg
ICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NB
ZnRlckNhbGwocmVnVDEpOwotCi0gICAgbW92ZShUcnVzdGVkSW1tUHRyKCZ2bS0+ZXhjZXB0aW9u
TG9jYXRpb24pLCByZWdUMik7Ci0gICAgc3RvcmVQdHIocmVnVDEsIHJlZ1QyKTsKICAgICBzdG9y
ZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgJm1fdm0tPnRvcENhbGxGcmFtZSk7CiAKICNpZiBDUFUo
WDg2KQotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLTEyKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIp
OwotICAgIHB1c2goY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIo
LTQpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFt
ZVJlZ2lzdGVyKSwgWDg2UmVnaXN0ZXJzOjplY3gpOworICAgIHB1c2goWDg2UmVnaXN0ZXJzOjpl
Y3gpOwogI2Vsc2UKLSAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBhcmd1bWVudEdQUjApOwor
ICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciksIGFyZ3VtZW50R1BSMCk7CiAj
ZW5kaWYKICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoRnVuY3Rpb25QdHIob3BlcmF0aW9uVk1IYW5k
bGVFeGNlcHRpb24pLnZhbHVlKCkpLCByZWdUMyk7CiAgICAgY2FsbChyZWdUMyk7CiAKICNpZiBD
UFUoWDg2KQotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoMTYpLCBzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMig4KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwog
I2VuZGlmCiAKICAgICBqdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CkBAIC0xNzUsNyArMTY2LDcg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfZW5kKEluc3RydWN0aW9uKiBjdXJyZQogewogICAgIEFTU0VS
VChyZXR1cm5WYWx1ZUdQUiAhPSBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgZW1pdExvYWQoY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDEsIHJlZ1QwKTsKLSAgICByZXN0b3Jl
UmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxs
RnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwog
ICAgIHJldCgpOwogfQogCkBAIC05MjcsNiArOTE4LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfY2F0
Y2goSW5zdHJ1Y3Rpb24qIGN1cgogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihtX3ZtKSwgcmVnVDMp
OwogICAgIC8vIG9wZXJhdGlvblRocm93IHJldHVybnMgdGhlIGNhbGxGcmFtZSBmb3IgdGhlIGhh
bmRsZXIuCiAgICAgbG9hZDMyKEFkZHJlc3MocmVnVDMsIFZNOjpjYWxsRnJhbWVGb3JUaHJvd09m
ZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihz
dGFja1BvaW50ZXJPZmZzZXRGb3IoY29kZUJsb2NrKCkpICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNh
bGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKICAgICAvLyBOb3cgc3Rv
cmUgdGhlIGV4Y2VwdGlvbiByZXR1cm5lZCBieSBvcGVyYXRpb25UaHJvdy4KICAgICBsb2FkMzIo
QWRkcmVzcyhyZWdUMywgVk06OmV4Y2VwdGlvbk9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpT
VmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSwgcmVnVDApOwogICAgIGxvYWQzMihBZGRyZXNzKHJl
Z1QzLCBWTTo6ZXhjZXB0aW9uT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5h
c0JpdHMudGFnKSksIHJlZ1QxKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1
ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsLmgiCiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJl
Z2lzdGVyLmgiCiAKQEAgLTczLDcgKzc0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZW5kKEluc3Ry
dWN0aW9uKiBjdXJyZQogewogICAgIFJFTEVBU0VfQVNTRVJUKHJldHVyblZhbHVlR1BSICE9IGNh
bGxGcmFtZVJlZ2lzdGVyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJldHVyblZhbHVlR1BSKTsKLSAgICByZXN0b3JlUmV0dXJu
QWRkcmVzc0JlZm9yZVJldHVybihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6
OnJldHVyblBDT2Zmc2V0KCkpKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJl
dCgpOwogfQogCkBAIC0yNjIsMTQgKzI2Myw4IEBAIHZvaWQgSklUOjplbWl0X29wX3JldChJbnN0
cnVjdGlvbiogY3VycmUKICAgICAvLyBSZXR1cm4gdGhlIHJlc3VsdCBpbiAlZWF4LgogICAgIGVt
aXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmV0
dXJuVmFsdWVHUFIpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgZW1p
dEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMSk7Ci0KLSAgICAvLyBSZXN0
b3JlIG91ciBjYWxsZXIncyAiciIuCi0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFt
ZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KLSAgICAvLyBSZXR1cm4uCi0gICAgcmVz
dG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDEpOworICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KCk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsK
IH0KIApAQCAtMjg1LDE0ICsyODAsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29y
X3RoaXMoSW5zCiAgICAgbG9hZFB0cihBZGRyZXNzKHJldHVyblZhbHVlR1BSLCBKU0NlbGw6OnN0
cnVjdHVyZU9mZnNldCgpKSwgcmVnVDIpOwogICAgIEp1bXAgbm90T2JqZWN0ID0gZW1pdEp1bXBJ
Zk5vdE9iamVjdChyZWdUMik7CiAKLSAgICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAg
ICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QxKTsKLQotICAgIC8v
IFJlc3RvcmUgb3VyIGNhbGxlcidzICJyIi4KLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKLQogICAgIC8vIFJldHVybi4KLSAg
ICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMSk7CisgICAgZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKIAogICAgIC8vIFJldHVybiAndGhpcycgaW4gJWVh
eC4KQEAgLTMwMCwxNCArMjg5LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0X29iamVjdF9vcl90
aGlzKElucwogICAgIG5vdE9iamVjdC5saW5rKHRoaXMpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCwgcmV0dXJuVmFsdWVHUFIpOwog
Ci0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgZW1pdEdldFJldHVyblBDRnJv
bUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMSk7Ci0KLSAgICAvLyBSZXN0b3JlIG91ciBjYWxsZXIn
cyAiciIuCi0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxs
RnJhbWVSZWdpc3Rlcik7Ci0KICAgICAvLyBSZXR1cm4uCi0gICAgcmVzdG9yZVJldHVybkFkZHJl
c3NCZWZvcmVSZXR1cm4ocmVnVDEpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
cmV0KCk7CiB9CiAKQEAgLTY1MCw2ICs2MzMsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9jYXRjaChJ
bnN0cnVjdGlvbiogY3VyCiB7CiAgICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fdm0pLCByZWdUMyk7
CiAgICAgbG9hZDY0KEFkZHJlc3MocmVnVDMsIFZNOjpjYWxsRnJhbWVGb3JUaHJvd09mZnNldCgp
KSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1Bv
aW50ZXJPZmZzZXRGb3IoY29kZUJsb2NrKCkpICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFt
ZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKICAgICBsb2FkNjQoQWRkcmVzcyhy
ZWdUMywgVk06OmV4Y2VwdGlvbk9mZnNldCgpKSwgcmVnVDApOwogICAgIHN0b3JlNjQoVHJ1c3Rl
ZEltbTY0KEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpKSwgQWRkcmVzcyhyZWdUMywgVk06OmV4
Y2VwdGlvbk9mZnNldCgpKSk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKQEAgLTExMDMsMjAgKzEwODksOCBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9sb29wX2hpbnQoSW5zdHJ1Y3Rpb24qCiB7CiAgICAgLy8gRW1pdCB0aGUgSklUIG9w
dGltaXphdGlvbiBjaGVjazogCiAgICAgaWYgKGNhbkJlT3B0aW1pemVkKCkpIHsKLSAgICAgICAg
aWYgKE9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5SW5Mb29wcygpKSB7Ci0gICAgICAgICAgICBhZGRT
bG93Q2FzZShicmFuY2hBZGQzMihQb3NpdGl2ZU9yWmVybywgVHJ1c3RlZEltbTMyKE9wdGlvbnM6
OmV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JMb29wKCkpLAotICAgICAgICAgICAgICAgIEFi
c29sdXRlQWRkcmVzcyhtX2NvZGVCbG9jay0+YWRkcmVzc09mSklURXhlY3V0ZUNvdW50ZXIoKSkp
KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEFkZCB3aXRoIHNhdHVyYXRpb24u
Ci0gICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIobV9jb2RlQmxvY2stPmFkZHJlc3NPZkpJ
VEV4ZWN1dGVDb3VudGVyKCkpLCByZWdUMyk7Ci0gICAgICAgICAgICBsb2FkMzIocmVnVDMsIHJl
Z1QyKTsKLSAgICAgICAgICAgIEp1bXAgZG9udEFkZCA9IGJyYW5jaDMyKAotICAgICAgICAgICAg
ICAgIEdyZWF0ZXJUaGFuLCByZWdUMiwKLSAgICAgICAgICAgICAgICBUcnVzdGVkSW1tMzIoc3Rk
OjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkgLSBPcHRpb25zOjpleGVjdXRpb25Db3Vu
dGVySW5jcmVtZW50Rm9yTG9vcCgpKSk7Ci0gICAgICAgICAgICBhZGQzMihUcnVzdGVkSW1tMzIo
T3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZvckxvb3AoKSksIHJlZ1QyKTsKLSAg
ICAgICAgICAgIHN0b3JlMzIocmVnVDIsIHJlZ1QzKTsKLSAgICAgICAgICAgIGRvbnRBZGQubGlu
ayh0aGlzKTsKLSAgICAgICAgfQorICAgICAgICBhZGRTbG93Q2FzZShicmFuY2hBZGQzMihQb3Np
dGl2ZU9yWmVybywgVHJ1c3RlZEltbTMyKE9wdGlvbnM6OmV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1l
bnRGb3JMb29wKCkpLAorICAgICAgICAgICAgQWJzb2x1dGVBZGRyZXNzKG1fY29kZUJsb2NrLT5h
ZGRyZXNzT2ZKSVRFeGVjdXRlQ291bnRlcigpKSkpOwogICAgIH0KIAogICAgIC8vIEVtaXQgdGhl
IHdhdGNoZG9nIHRpbWVyIGNoZWNrOgpAQCAtMTEyOCwxMSArMTEwMiwxMiBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfbG9vcF9oaW50KEluc3RydWN0CiB7CiAjaWYgRU5BQkxFKERGR19KSVQpCiAg
ICAgLy8gRW1pdCB0aGUgc2xvdyBwYXRoIGZvciB0aGUgSklUIG9wdGltaXphdGlvbiBjaGVjazoK
LSAgICBpZiAoY2FuQmVPcHRpbWl6ZWQoKSAmJiBPcHRpb25zOjplbmFibGVPU1JFbnRyeUluTG9v
cHMoKSkgeworICAgIGlmIChjYW5CZU9wdGltaXplZCgpKSB7CiAgICAgICAgIGxpbmtTbG93Q2Fz
ZShpdGVyKTsKICAgICAgICAgCiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uT3B0aW1p
emUsIG1fYnl0ZWNvZGVPZmZzZXQpOwogICAgICAgICBKdW1wIG5vT3B0aW1pemVkRW50cnkgPSBi
cmFuY2hUZXN0UHRyKFplcm8sIHJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgbW92ZShyZXR1cm5W
YWx1ZUdQUjIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAganVtcChyZXR1cm5WYWx1
ZUdQUik7CiAgICAgICAgIG5vT3B0aW1pemVkRW50cnkubGluayh0aGlzKTsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxNjI5
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMCwxMiArMzAsMTIgQEAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNs
dWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgot
I2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkRGR0NvbXBpbGF0aW9uTW9k
ZS5oIgogI2luY2x1ZGUgIkRGR0RyaXZlci5oIgogI2luY2x1ZGUgIkRGR09TUkVudHJ5LmgiCiAj
aW5jbHVkZSAiREZHV29ya2xpc3QuaCIKICNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIkVy
cm9ySGFuZGxpbmdTY29wZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUg
Ikhvc3RDYWxsUmV0dXJuVmFsdWUuaCIKICNpbmNsdWRlICJKSVQuaCIKQEAgLTcxLDcgKzcxLDcg
QEAgdm9pZCAqIF9SZXR1cm5BZGRyZXNzKHZvaWQpOwogI2VuZGlmCiAKIAotdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblN0YWNrQ2hlY2soRXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaykKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dF
cnJvcihFeGVjU3RhdGUqIGV4ZWMsIENvZGVCbG9jayogY29kZUJsb2NrKQogewogICAgIC8vIFdl
IHBhc3MgaW4gb3VyIG93biBjb2RlIGJsb2NrLCBiZWNhdXNlIHRoZSBjYWxsZnJhbWUgaGFzbid0
IGJlZW4gcG9wdWxhdGVkLgogICAgIFZNKiB2bSA9IGNvZGVCbG9jay0+dm0oKTsKQEAgLTgwLDEx
ICs4MCw4IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25TdGFja0NoZWNrKEUKICAgICAg
ICAgY2FsbGVyRnJhbWUgPSBleGVjOwogCiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbGVyRnJhbWUpOwotCi0gICAgSlNTdGFjayYgc3RhY2sgPSB2bS0+aW50ZXJwcmV0
ZXItPnN0YWNrKCk7Ci0KLSAgICBpZiAoVU5MSUtFTFkoIXN0YWNrLmdyb3coJmV4ZWMtPnJlZ2lz
dGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNv
dW50KCkpLm9mZnNldCgpXSkpKQotICAgICAgICB2bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJh
bWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsZXJGcmFtZSkpOworICAgIEVycm9ySGFu
ZGxpbmdTY29wZSBlcnJvclNjb3BlKCp2bSk7CisgICAgdm0tPnRocm93RXhjZXB0aW9uKGNhbGxl
ckZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUpKTsKIH0KIAogaW50
MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrKEV4ZWNTdGF0ZSogZXhl
YykKQEAgLTk3LDcgKzk0LDcgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxB
cml0eQogCiAgICAgaW50MzJfdCBtaXNzaW5nQXJnQ291bnQgPSBDb21tb25TbG93UGF0aHM6OmFy
aXR5Q2hlY2tGb3IoZXhlYywgJnN0YWNrLCBDb2RlRm9yQ2FsbCk7CiAgICAgaWYgKG1pc3NpbmdB
cmdDb3VudCA8IDApCi0gICAgICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3Jl
YXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZyYW1lKSk7CisgICAgICAgIHRocm93U3RhY2tP
dmVyZmxvd0Vycm9yKGNhbGxlckZyYW1lKTsKIAogICAgIHJldHVybiBtaXNzaW5nQXJnQ291bnQ7
CiB9CkBAIC0xMTIsNyArMTA5LDcgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNv
bnN0cnVjdAogCiAgICAgaW50MzJfdCBtaXNzaW5nQXJnQ291bnQgPSBDb21tb25TbG93UGF0aHM6
OmFyaXR5Q2hlY2tGb3IoZXhlYywgJnN0YWNrLCBDb2RlRm9yQ29uc3RydWN0KTsKICAgICBpZiAo
bWlzc2luZ0FyZ0NvdW50IDwgMCkKLSAgICAgICAgdm0tPnRocm93RXhjZXB0aW9uKGNhbGxlckZy
YW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUpKTsKKyAgICAgICAgdGhy
b3dTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUpOwogCiAgICAgcmV0dXJuIG1pc3NpbmdB
cmdDb3VudDsKIH0KQEAgLTYxMiwxNSArNjA5LDEzIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25EaXJlY3RQdXRCeVYKICAgICBkaXJlY3RQdXRCeVZhbChleGVjLCBhc09iamVjdChiYXNl
VmFsdWUpLCBzdWJzY3JpcHQsIHZhbHVlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSogZXhlYywgRXhl
Y1N0YXRlKiBleGVjQ2FsbGVlKQogewotICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBleGVj
Q2FsbGVlLT5jYWxsZXJGcmFtZSgpOwotICAgIEFTU0VSVChleGVjQ2FsbGVlLT5jYWxsZXJGcmFt
ZSgpLT5jb2RlQmxvY2soKS0+Y29kZVR5cGUoKSAhPSBGdW5jdGlvbkNvZGUKLSAgICAgICAgfHwg
IWV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCktPmNvZGVCbG9jaygpLT5uZWVkc0Z1bGxTY29wZUNo
YWluKCkKLSAgICAgICAgfHwgZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+dW5jaGVja2VkUihl
eGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+YWN0aXZhdGlvblJlZ2lzdGVy
KCkub2Zmc2V0KCkpLmpzVmFsdWUoKSk7CisgICAgQVNTRVJUKGV4ZWMtPmNvZGVCbG9jaygpLT5j
b2RlVHlwZSgpICE9IEZ1bmN0aW9uQ29kZQorICAgICAgICB8fCAhZXhlYy0+Y29kZUJsb2NrKCkt
Pm5lZWRzRnVsbFNjb3BlQ2hhaW4oKQorICAgICAgICB8fCBleGVjLT51bmNoZWNrZWRSKGV4ZWMt
PmNvZGVCbG9jaygpLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKS5vZmZzZXQoKSkuanNWYWx1ZSgpKTsK
IAotICAgIGV4ZWNDYWxsZWUtPnNldFNjb3BlKGNhbGxlckZyYW1lLT5zY29wZSgpKTsKLSAgICBl
eGVjQ2FsbGVlLT5zZXRSZXR1cm5QQyhzdGF0aWNfY2FzdDxJbnN0cnVjdGlvbio+KE9VUl9SRVRV
Uk5fQUREUkVTUykpOworICAgIGV4ZWNDYWxsZWUtPnNldFNjb3BlKGV4ZWMtPnNjb3BlKCkpOwog
ICAgIGV4ZWNDYWxsZWUtPnNldENvZGVCbG9jaygwKTsKIAogICAgIGlmICghaXNIb3N0RnVuY3Rp
b24oZXhlY0NhbGxlZS0+Y2FsbGVlQXNWYWx1ZSgpLCBnbG9iYWxGdW5jRXZhbCkpCkBAIC02ODUs
NyArNjgwLDggQEAgc3RhdGljIHZvaWQqIGhhbmRsZUhvc3RDYWxsKEV4ZWNTdGF0ZSogZQogICAg
IHJldHVybiB2bS0+Z2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1BhdGhHZW5l
cmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOwogfQogCi1pbmxpbmUgY2hhciogbGlu
a0ZvcihFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkK
K2lubGluZSBjaGFyKiBsaW5rRm9yKAorICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJz
KQogewogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCk7CiAg
ICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CkBAIC03MDMsMzkgKzY5OSw1MyBAQCBpbmxpbmUgY2hh
ciogbGlua0ZvcihFeGVjU3RhdGUqIGV4ZWNDYWxsCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IGNvZGVQdHI7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAwOwogICAgIENhbGxMaW5rSW5m
byYgY2FsbExpbmtJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldENhbGxMaW5rSW5mbyhleGVj
Q2FsbGVlLT5yZXR1cm5QQygpKTsKLSAgICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24o
KSkKLSAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3Ioa2lu
ZCktPmFkZHJlc3NGb3JDYWxsKCk7Ci0gICAgZWxzZSB7CisgICAgaWYgKGV4ZWN1dGFibGUtPmlz
SG9zdEZ1bmN0aW9uKCkpIHsKKyAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUtPmVudHJ5cG9p
bnRGb3IoKnZtLCBraW5kLCBNdXN0Q2hlY2tBcml0eSwgcmVnaXN0ZXJzKTsKKyAgICB9IGVsc2Ug
ewogICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9IHN0YXRp
Y19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpOwogICAgICAgICBKU09iamVj
dCogZXJyb3IgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPnByZXBhcmVGb3JFeGVjdXRpb24oZXhlY0Nh
bGxlZSwgY2FsbGVlLT5zY29wZSgpLCBraW5kKTsKICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAg
ICAgICAgICB2bS0+dGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9y
KGV4ZWMpKTsKKyAgICAgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpOwogICAg
ICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHZtLT5nZXRDVElTdHViKHRo
cm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpOwogICAgICAgICB9CiAgICAgICAgIGNvZGVCbG9jayA9IGZ1bmN0aW9uRXhlY3V0
YWJsZS0+Y29kZUJsb2NrRm9yKGtpbmQpOworICAgICAgICBBcml0eUNoZWNrTW9kZSBhcml0eTsK
ICAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkgPCBz
dGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSB8fCBjYWxsTGlu
a0luZm8uY2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpDYWxsVmFyYXJncykKLSAgICAgICAgICAg
IGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVXaXRoQXJpdHlD
aGVja0ZvcihraW5kKTsKKyAgICAgICAgICAgIGFyaXR5ID0gTXVzdENoZWNrQXJpdHk7CiAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVy
YXRlZEpJVENvZGVGb3Ioa2luZCktPmFkZHJlc3NGb3JDYWxsKCk7CisgICAgICAgICAgICBhcml0
eSA9IEFyaXR5Q2hlY2tOb3RSZXF1aXJlZDsKKyAgICAgICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhl
Y3V0YWJsZS0+ZW50cnlwb2ludEZvcigqdm0sIGtpbmQsIGFyaXR5LCByZWdpc3RlcnMpOwogICAg
IH0KICAgICBpZiAoIWNhbGxMaW5rSW5mby5zZWVuT25jZSgpKQogICAgICAgICBjYWxsTGlua0lu
Zm8uc2V0U2VlbigpOwogICAgIGVsc2UKLSAgICAgICAgbGlua0ZvcihleGVjQ2FsbGVlLCBjYWxs
TGlua0luZm8sIGNvZGVCbG9jaywgY2FsbGVlLCBjb2RlUHRyLCBraW5kKTsKKyAgICAgICAgbGlu
a0ZvcihleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIGNvZGVCbG9jaywgY2FsbGVlLCBjb2RlUHRy
LCBraW5kLCByZWdpc3RlcnMpOwogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihj
b2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICByZXR1cm4gbGlu
a0ZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCk7CisgICAgcmV0dXJuIGxpbmtGb3IoZXhlY0Nh
bGxlZSwgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQog
CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3QoRXhlY1N0YXRlKiBl
eGVjQ2FsbGVlKQogewotICAgIHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDb25z
dHJ1Y3QpOworICAgIHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3Qs
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOworfQorCitjaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2Fs
bGVlKQoreworICAgIHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBNdXN0
UHJlc2VydmVSZWdpc3RlcnMpOwogfQogCi1pbmxpbmUgY2hhciogdmlydHVhbEZvcldpdGhGdW5j
dGlvbihFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwg
SlNDZWxsKiYgY2FsbGVlQXNGdW5jdGlvbkNlbGwpCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUp
Cit7CisgICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0cnVjdCwgTXVz
dFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KKworaW5saW5lIGNoYXIqIHZpcnR1YWxGb3JXaXRoRnVu
Y3Rpb24oCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMsCisgICAgSlNDZWxsKiYg
Y2FsbGVlQXNGdW5jdGlvbkNlbGwpCiB7CiAgICAgRXhlY1N0YXRlKiBleGVjID0gZXhlY0NhbGxl
ZS0+Y2FsbGVyRnJhbWUoKTsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKQEAgLTc1NywxNiAr
NzY3LDIwIEBAIGlubGluZSBjaGFyKiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKEV4ZWMKICAgICAg
ICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPih2bS0+Z2V0Q1RJU3R1Yih0aHJv
d0V4Y2VwdGlvbkZyb21DYWxsU2xvd1BhdGhHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4oZXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQp
LmV4ZWN1dGFibGVBZGRyZXNzKCkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIq
PihleGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9yKAorICAgICAgICAqdm0sIGtpbmQsIE11c3RDaGVj
a0FyaXR5LCByZWdpc3RlcnMpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogfQogCi1pbmxpbmUgY2hh
ciogdmlydHVhbEZvcihFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktp
bmQga2luZCkKK2lubGluZSBjaGFyKiB2aXJ0dWFsRm9yKAorICAgIEV4ZWNTdGF0ZSogZXhlY0Nh
bGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1v
ZGUgcmVnaXN0ZXJzKQogewogICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVk
OwotICAgIHJldHVybiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIGtpbmQsIGNh
bGxlZUFzRnVuY3Rpb25DZWxsSWdub3JlZCk7CisgICAgcmV0dXJuIHZpcnR1YWxGb3JXaXRoRnVu
Y3Rpb24oZXhlY0NhbGxlZSwga2luZCwgcmVnaXN0ZXJzLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbEln
bm9yZWQpOwogfQogCi1zdGF0aWMgYm9vbCBhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKEV4
ZWNTdGF0ZSogZXhlY0NhbGxlZSwgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwgQ2FsbExp
bmtJbmZvJiBjYWxsTGlua0luZm8pCitzdGF0aWMgYm9vbCBhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1
cmVDYWxsKAorICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25N
b2RlIHJlZ2lzdGVycywgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwKKyAgICBDYWxsTGlu
a0luZm8mIGNhbGxMaW5rSW5mbykKIHsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03ODAsNyArNzk0LDEwIEBAIHN0YXRpYyBib29sIGF0
dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAog
ICAgIEFTU0VSVChjYWxsZWUtPmV4ZWN1dGFibGUoKS0+aGFzSklUQ29kZUZvckNhbGwoKSk7Ci0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIgPSBjYWxsZWUtPmV4ZWN1dGFibGUoKS0+
Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+YWRkcmVzc0ZvckNhbGwoKTsKKyAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgY29kZVB0ciA9CisgICAgICAgIGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5n
ZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5hZGRyZXNzRm9yQ2FsbCgKKyAgICAgICAgICAgICpl
eGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+dm0oKSwgY2FsbGVlLT5leGVj
dXRhYmxlKCksCisgICAgICAgICAgICBBcml0eUNoZWNrTm90UmVxdWlyZWQsIHJlZ2lzdGVycyk7
CiAgICAgCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2s7CiAgICAgaWYgKGNhbGxlZS0+ZXhlY3V0
YWJsZSgpLT5pc0hvc3RGdW5jdGlvbigpKQpAQCAtNzkzLDcgKzgxMCw3IEBAIHN0YXRpYyBib29s
IGF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwKICAgICAKICAgICBsaW5rQ2xvc3VyZUNhbGwo
CiAgICAgICAgIGV4ZWNDYWxsZWUsIGNhbGxMaW5rSW5mbywgY29kZUJsb2NrLAotICAgICAgICBj
YWxsZWUtPnN0cnVjdHVyZSgpLCBjYWxsZWUtPmV4ZWN1dGFibGUoKSwgY29kZVB0cik7CisgICAg
ICAgIGNhbGxlZS0+c3RydWN0dXJlKCksIGNhbGxlZS0+ZXhlY3V0YWJsZSgpLCBjb2RlUHRyLCBy
ZWdpc3RlcnMpOwogICAgIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtODAxLDI1ICs4MTgsNDYg
QEAgc3RhdGljIGJvb2wgYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbAogY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQog
ewogICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGw7Ci0gICAgY2hhciogcmVzdWx0ID0g
dmlydHVhbEZvcldpdGhGdW5jdGlvbihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgY2FsbGVlQXNG
dW5jdGlvbkNlbGwpOworICAgIGNoYXIqIHJlc3VsdCA9IHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24o
ZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQs
IGNhbGxlZUFzRnVuY3Rpb25DZWxsKTsKICAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9
IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCktPmNvZGVCbG9jaygpLT5nZXRDYWxsTGlua0luZm8o
ZXhlY0NhbGxlZS0+cmV0dXJuUEMoKSk7CiAKLSAgICBpZiAoIWF0dGVtcHRUb09wdGltaXplQ2xv
c3VyZUNhbGwoZXhlY0NhbGxlZSwgY2FsbGVlQXNGdW5jdGlvbkNlbGwsIGNhbGxMaW5rSW5mbykp
Ci0gICAgICAgIGxpbmtTbG93Rm9yKGV4ZWNDYWxsZWUsIGNhbGxMaW5rSW5mbywgQ29kZUZvckNh
bGwpOworICAgIGlmICghYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbChleGVjQ2FsbGVlLCBS
ZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwgY2Fs
bExpbmtJbmZvKSkKKyAgICAgICAgbGlua1Nsb3dGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZv
LCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiAgICAgCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0
dWFsQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCiB7ICAgIAotICAgIHJldHVybiB2aXJ0dWFs
Rm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsKTsKKyAgICByZXR1cm4gdmlydHVhbEZvcihleGVj
Q2FsbGVlLCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9
CiAKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdChFeGVjU3Rh
dGUqIGV4ZWNDYWxsZWUpCiB7Ci0gICAgcmV0dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29k
ZUZvckNvbnN0cnVjdCk7CisgICAgcmV0dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZv
ckNvbnN0cnVjdCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9CiAKK2NoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsVGhhdFByZXNlcnZlc1JlZ3Mo
RXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNl
bGw7CisgICAgY2hhciogcmVzdWx0ID0gdmlydHVhbEZvcldpdGhGdW5jdGlvbihleGVjQ2FsbGVl
LCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzLCBjYWxsZWVBc0Z1bmN0aW9uQ2Vs
bCk7CisgICAgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8gPSBleGVjQ2FsbGVlLT5jYWxsZXJG
cmFtZSgpLT5jb2RlQmxvY2soKS0+Z2V0Q2FsbExpbmtJbmZvKGV4ZWNDYWxsZWUtPnJldHVyblBD
KCkpOworCisgICAgaWYgKCFhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKGV4ZWNDYWxsZWUs
IE11c3RQcmVzZXJ2ZVJlZ2lzdGVycywgY2FsbGVlQXNGdW5jdGlvbkNlbGwsIGNhbGxMaW5rSW5m
bykpCisgICAgICAgIGxpbmtTbG93Rm9yKGV4ZWNDYWxsZWUsIGNhbGxMaW5rSW5mbywgQ29kZUZv
ckNhbGwsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2
ZXNSZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3sgICAgCisgICAgcmV0dXJuIHZpcnR1YWxG
b3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisK
K2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2
ZXNSZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3sKKyAgICByZXR1cm4gdmlydHVhbEZvcihl
eGVjQ2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0LCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQog
CiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlTGVzcyhFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIp
CiB7CkBAIC05NzQsNyArMTAxMiw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWJ1
ZyhFeGVjU3QKIH0KIAogI2lmIEVOQUJMRShERkdfSklUKQotY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkK
K1Nsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNT
dGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4KQogewogICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAt
MTAyNCw3ICsxMDYyLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShF
eAogICAgICAgICBjb2RlQmxvY2stPnVwZGF0ZUFsbFByZWRpY3Rpb25zKCk7CiAgICAgICAgIGlm
IChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgICAgICBkYXRhTG9nKCJDaG9vc2luZyBu
b3QgdG8gb3B0aW1pemUgIiwgKmNvZGVCbG9jaywgIiB5ZXQsIGJlY2F1c2UgdGhlIHRocmVzaG9s
ZCBoYXNuJ3QgYmVlbiByZWFjaGVkLlxuIik7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgIH0KICAgICAKICAgICBpZiAoY29kZUJsb2Nr
LT5tX3Nob3VsZEFsd2F5c0JlSW5saW5lZCkgewpAQCAtMTAzMiwxOCArMTA3MCwxOSBAQCBjaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4CiAgICAgICAgIGNvZGVCbG9jay0+
b3B0aW1pemVBZnRlcldhcm1VcCgpOwogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigp
KQogICAgICAgICAgICAgZGF0YUxvZygiQ2hvb3Npbmcgbm90IHRvIG9wdGltaXplICIsICpjb2Rl
QmxvY2ssICIgeWV0LCBiZWNhdXNlIG1fc2hvdWxkQWx3YXlzQmVJbmxpbmVkID09IHRydWUuXG4i
KTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7
CiAgICAgfQogCiAgICAgLy8gV2UgY2Fubm90IGJlIGluIHRoZSBwcm9jZXNzIG9mIGFzeW5jaHJv
bm91cyBjb21waWxhdGlvbiBhbmQgYWxzbyBoYXZlIGFuIG9wdGltaXplZAogICAgIC8vIHJlcGxh
Y2VtZW50LgorICAgIERGRzo6V29ya2xpc3QqIHdvcmtsaXN0ID0gREZHOjpleGlzdGluZ0dsb2Jh
bERGR1dvcmtsaXN0T3JOdWxsKCk7CiAgICAgQVNTRVJUKAotICAgICAgICAhdm0ud29ya2xpc3QK
LSAgICAgICAgfHwgISh2bS53b3JrbGlzdC0+Y29tcGlsYXRpb25TdGF0ZShERkc6OkNvbXBpbGF0
aW9uS2V5KGNvZGVCbG9jaywgREZHOjpERkdNb2RlKSkgIT0gREZHOjpXb3JrbGlzdDo6Tm90S25v
d24KKyAgICAgICAgIXdvcmtsaXN0CisgICAgICAgIHx8ICEod29ya2xpc3QtPmNvbXBpbGF0aW9u
U3RhdGUoREZHOjpDb21waWxhdGlvbktleShjb2RlQmxvY2ssIERGRzo6REZHTW9kZSkpICE9IERG
Rzo6V29ya2xpc3Q6Ok5vdEtub3duCiAgICAgICAgICYmIGNvZGVCbG9jay0+aGFzT3B0aW1pemVk
UmVwbGFjZW1lbnQoKSkpOwogCiAgICAgREZHOjpXb3JrbGlzdDo6U3RhdGUgd29ya2xpc3RTdGF0
ZTsKLSAgICBpZiAodm0ud29ya2xpc3QpIHsKKyAgICBpZiAod29ya2xpc3QpIHsKICAgICAgICAg
Ly8gVGhlIGNhbGwgdG8gREZHOjpXb3JrbGlzdDo6Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0o
KSB3aWxsIGNvbXBsZXRlIGFsbCByZWFkeQogICAgICAgICAvLyAoaS5lLiBjb21waWxlZCkgY29k
ZSBibG9ja3MuIEJ1dCBpZiBpdCBjb21wbGV0ZXMgb3Vycywgd2UgYWxzbyBuZWVkIHRvIGtub3cK
ICAgICAgICAgLy8gd2hhdCB0aGUgcmVzdWx0IHdhcyBzbyB0aGF0IHdlIGRvbid0IHBsb3cgYWhl
YWQgYW5kIGF0dGVtcHQgT1NSIG9yIGltbWVkaWF0ZQpAQCAtMTA2Miw3ICsxMTAxLDcgQEAgY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICAvLyBwcm9iYWJs
eSBhIHdhc3RlIG9mIG1lbW9yeS4gT3VyIGdvYWwgaGVyZSBpcyB0byBjb21wbGV0ZSBjb2RlIGJs
b2NrcyBhcyBzb29uIGFzCiAgICAgICAgIC8vIHBvc3NpYmxlIGluIG9yZGVyIHRvIG1pbmltaXpl
IHRoZSBjaGFuY2VzIG9mIHVzIGV4ZWN1dGluZyBiYXNlbGluZSBjb2RlIGFmdGVyCiAgICAgICAg
IC8vIG9wdGltaXplZCBjb2RlIGlzIGFscmVhZHkgYXZhaWxhYmxlLgotICAgICAgICB3b3JrbGlz
dFN0YXRlID0gdm0ud29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKAorICAgICAg
ICB3b3JrbGlzdFN0YXRlID0gd29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKAog
ICAgICAgICAgICAgdm0sIERGRzo6Q29tcGlsYXRpb25LZXkoY29kZUJsb2NrLCBERkc6OkRGR01v
ZGUpKTsKICAgICB9IGVsc2UKICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IERGRzo6V29ya2xpc3Q6
Ok5vdEtub3duOwpAQCAtMTA3Miw3ICsxMTExLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25PcHRpbWl6ZShFeAogICAgICAgICAvLyByZXBsYWNlbWVudC4KICAgICAgICAgUkVMRUFT
RV9BU1NFUlQoIWNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKSk7CiAgICAgICAg
IGNvZGVCbG9jay0+c2V0T3B0aW1pemF0aW9uVGhyZXNob2xkQmFzZWRPbkNvbXBpbGF0aW9uUmVz
dWx0KENvbXBpbGF0aW9uRGVmZXJyZWQpOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICB9CiAKICAgICBpZiAod29ya2xpc3RTdGF0ZSA9
PSBERkc6OldvcmtsaXN0OjpDb21waWxlZCkgewpAQCAtMTA4NSw3ICsxMTI0LDcgQEAgY2hhciog
SklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICAgICAgY29kZUJsb2Nr
LT51cGRhdGVBbGxQcmVkaWN0aW9ucygpOwogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJv
c2VPU1IoKSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJDb2RlIGJsb2NrICIsICpjb2RlQmxv
Y2ssICIgd2FzIGNvbXBpbGVkIGJ1dCBpdCBkb2Vzbid0IGhhdmUgYW4gb3B0aW1pemVkIHJlcGxh
Y2VtZW50LlxuIik7Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBl
bmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGNvZGVCbG9jay0+
aGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKSkgewogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9z
ZU9TUigpKQpAQCAtMTExMCw3ICsxMTQ5LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRp
b25PcHRpbWl6ZShFeAogICAgICAgICAgICAgICAgICAgICAiKCIsICpjb2RlQmxvY2stPnJlcGxh
Y2VtZW50KCksICIpIChpbiBsb29wKS5cbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
Y29kZUJsb2NrLT5yZXBsYWNlbWVudCgpLT5qZXR0aXNvbihDb3VudFJlb3B0aW1pemF0aW9uKTsK
LSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgw
LCAwKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghY29kZUJsb2NrLT5z
aG91bGRPcHRpbWl6ZU5vdygpKSB7CkBAIC0xMTE5LDcgKzExNTgsNyBAQCBjaGFyKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4CiAgICAgICAgICAgICAgICAgICAgICJEZWxheWlu
ZyBvcHRpbWl6YXRpb24gZm9yICIsICpjb2RlQmxvY2ssCiAgICAgICAgICAgICAgICAgICAgICIg
YmVjYXVzZSBvZiBpbnN1ZmZpY2llbnQgcHJvZmlsaW5nLlxuIik7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwg
MCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQpAQCAt
MTE0NywxMiArMTE4NiwxMSBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXpl
KEV4CiAgICAgICAgIH0KIAogICAgICAgICBDb21waWxhdGlvblJlc3VsdCByZXN1bHQgPSBERkc6
OmNvbXBpbGUoCi0gICAgICAgICAgICB2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdl
dCgpLCBERkc6OkRGR01vZGUsIGJ5dGVjb2RlSW5kZXgsCi0gICAgICAgICAgICBtdXN0SGFuZGxl
VmFsdWVzLCBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKCksCi0g
ICAgICAgICAgICB2bS5lbnN1cmVXb3JrbGlzdCgpKTsKKyAgICAgICAgICAgIHZtLCBjb2RlQmxv
Y2stPm5ld1JlcGxhY2VtZW50KCkuZ2V0KCksIDAsIERGRzo6REZHTW9kZSwgYnl0ZWNvZGVJbmRl
eCwKKyAgICAgICAgICAgIG11c3RIYW5kbGVWYWx1ZXMsIEpJVFRvREZHRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrOjpjcmVhdGUoKSk7CiAgICAgICAgIAogICAgICAgICBpZiAocmVzdWx0ICE9
IENvbXBpbGF0aW9uU3VjY2Vzc2Z1bCkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAg
ICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICB9CiAgICAgCiAgICAgQ29kZUJsb2Nr
KiBvcHRpbWl6ZWRDb2RlQmxvY2sgPSBjb2RlQmxvY2stPnJlcGxhY2VtZW50KCk7CkBAIC0xMTY2
LDcgKzEyMDQsOCBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4CiAg
ICAgICAgIH0KIAogICAgICAgICBjb2RlQmxvY2stPm9wdGltaXplU29vbigpOwotICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Y2hhcio+KGFkZHJlc3MpOworICAgICAgICBBU1NFUlQoZXhlYy0+
Y29kZUJsb2NrKCkgPT0gb3B0aW1pemVkQ29kZUJsb2NrKTsKKyAgICAgICAgcmV0dXJuIGVuY29k
ZVJlc3VsdChhZGRyZXNzLCBleGVjLT50b3BPZkZyYW1lKCkpOwogICAgIH0KIAogICAgIGlmIChP
cHRpb25zOjp2ZXJib3NlT1NSKCkpIHsKQEAgLTExOTUsMTQgKzEyMzQsMTQgQEAgY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICAgICAgICAgICpjb2RlQmxv
Y2stPnJlcGxhY2VtZW50KCksICIgKGFmdGVyIE9TUiBmYWlsKS5cbiIpOwogICAgICAgICB9CiAg
ICAgICAgIG9wdGltaXplZENvZGVCbG9jay0+amV0dGlzb24oQ291bnRSZW9wdGltaXphdGlvbik7
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwog
ICAgIH0KIAogICAgIC8vIE9TUiBmYWlsZWQgdGhpcyB0aW1lLCBidXQgaXQgbWlnaHQgc3VjY2Vl
ZCBuZXh0IHRpbWUhIExldCB0aGUgY29kZSBydW4gYSBiaXQKICAgICAvLyBsb25nZXIgYW5kIHRo
ZW4gdHJ5IGFnYWluLgogICAgIGNvZGVCbG9jay0+b3B0aW1pemVBZnRlcldhcm1VcCgpOwogICAg
IAotICAgIHJldHVybiAwOworICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiB9CiAjZW5k
aWYKIApAQCAtMTUzMCwxMyArMTU2OSwxMyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkluCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVzdWx0
KSk7CiB9CiAKLUNhbGxGcmFtZSogSklUX09QRVJBVElPTiBvcGVyYXRpb25TaXplQW5kQWxsb2NG
cmFtZUZvclZhcmFyZ3MoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJn
dW1lbnRzLCBpbnQzMl90IGZpcnN0RnJlZVJlZ2lzdGVyKQorQ2FsbEZyYW1lKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3MoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IGZpcnN0RnJlZVJlZ2lzdGVyKQogewog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cigmdm0sIGV4ZWMpOwogICAgIEpTU3RhY2sqIHN0YWNrID0gJmV4ZWMtPmludGVycHJldGVyKCkt
PnN0YWNrKCk7CiAgICAgSlNWYWx1ZSBhcmd1bWVudHMgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZEFyZ3VtZW50cyk7Ci0gICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBzaXplQW5kQWxsb2NG
cmFtZUZvclZhcmFyZ3MoZXhlYywgc3RhY2ssIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIp
OworICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gc2l6ZUZyYW1lRm9yVmFyYXJncyhleGVj
LCBzdGFjaywgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3Rlcik7CiAgICAgcmV0dXJuIG5ld0Nh
bGxGcmFtZTsKIH0KIApAQCAtMTcyOSwxMiArMTc2OCwxMSBAQCB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uSW5pdEdsb2JhbENvCiAgICAgcGNbMV0udS5yZWdpc3RlclBvaW50ZXItPnNldCgq
dm0sIGV4ZWMtPmNvZGVCbG9jaygpLT5nbG9iYWxPYmplY3QoKSwgdmFsdWUpOwogfQogCi12b2lk
IEpJVF9PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9uSGFuZGxlcihFeGVjU3RhdGUqIGV4ZWMpCit2
b2lkIEpJVF9PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9uSGFuZGxlcihWTSogdm0sIEV4ZWNTdGF0
ZSogZXhlYykKIHsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBleGVjLCBOYXRpdmVDYWxsRnJhbWVUcmFjZXI6OlZNRW50cnlTZW50aW5lbE9LKTsK
IAotICAgIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUgPSBleGVjLT5leGNlcHRpb24oKTsKKyAgICBK
U1ZhbHVlIGV4Y2VwdGlvblZhbHVlID0gdm0tPmV4Y2VwdGlvbigpOwogICAgIEFTU0VSVChleGNl
cHRpb25WYWx1ZSk7CiAgICAgCiAgICAgZ2VuZXJpY1Vud2luZCh2bSwgZXhlYywgZXhjZXB0aW9u
VmFsdWUpOwpAQCAtMTc2Nyw3ICsxODA1LDYgQEAgYXNtICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RS
SU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIEhJREVfU1lNQk9MKGdldEhvc3RDYWxs
UmV0dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkg
IjoiICJcbiIKLSAgICAibW92IDAoJXJicCksICVyYnBcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6
Y2FsbGVyRnJhbWUKICAgICAibW92ICVyYnAsICVyZGlcbiIKICAgICAiam1wICIgTE9DQUxfUkVG
RVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOwpAQCAt
MTc3OCw4ICsxODE1LDExIEBAIGFzbSAoCiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0
Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVl
KSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0g
ICAgIm1vdiAwKCVlYnApLCAlZWJwXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1l
Ci0gICAgIm1vdiAlZWJwLCA0KCVlc3ApXG4iCisgICAgIm1vdiAoJWVzcCksICVlYXhcbiIKKyAg
ICAicHVzaCAlZWJwXG4iCisgICAgImxlYWwgLTQoJWVzcCksICVlc3BcbiIKKyAgICAicHVzaCAl
ZWJwXG4iCisgICAgInB1c2ggJWVheFxuIgogICAgICJqbXAgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CiAKQEAgLTE3OTIsNyAr
MTgzMiw2IEBAIEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKICIudGh1
bWIiICJcbiIKICIudGh1bWJfZnVuYyAiIFRIVU1CX0ZVTkNfUEFSQU0oZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIg
IlxuIgotICAgICJsZHIgcjcsIFtyNywgIzBdIiAiXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNh
bGxlckZyYW1lCiAgICAgIm1vdiByMCwgcjciICJcbiIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5D
RShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MDQs
NyArMTg0Myw2IEBAIGFzbSAoCiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAi
XG4iCiBJTkxJTkVfQVJNX0ZVTkNUSU9OKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpCiBTWU1CT0xf
U1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgImxkciByMTEsIFty
MTEsICMwXSIgIlxuIiAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3Yg
cjAsIHIxMSIgIlxuIgogICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOwpAQCAtMTgxNiw3ICsxODU0LDYgQEAgYXNtICgK
ICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIEhJ
REVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9TVFJJTkcoZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibGR1ciB4MjksIFt4MjksICMwXSIg
IlxuIgogICAgICAibW92IHgwLCB4MjkiICJcbiIKICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0Uo
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CkBAIC0xODI4LDcg
KzE4NjUsNiBAQCBhc20gKAogSElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxu
IgogU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgogICAgIExP
QURfRlVOQ1RJT05fVE9fVDkoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpCi0g
ICAgImx3ICRmcCwgMCgkZnApIiAiXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1l
CiAgICAgIm1vdmUgJGEwLCAkZnAiICJcbiIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRI
b3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MzksNyArMTg3
NSw2IEBAIGFzbSAoCiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKSAiXG4iCiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1C
T0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgIm1vdi5sIEBy
MTQsIHIxNCIgIlxuIiAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3Yg
cjE0LCByNCIgIlxuIgogICAgICJtb3YubCAyZiwgIiBTSDRfU0NSQVRDSF9SRUdJU1RFUiAiXG4i
CiAgICAgImJyYWYgIiBTSDRfU0NSQVRDSF9SRUdJU1RFUiAiXG4iCkBAIC0xODUyLDcgKzE4ODcs
NiBAQCBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6CiBleHRlcm4gIkMi
IHsKICAgICBfX2RlY2xzcGVjKG5ha2VkKSBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJO
X1ZBTFVFX09QVElPTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlKCkKICAgICB7Ci0gICAgICAgIF9f
YXNtIG1vdiBlYnAsIFtlYnAgKyAwXTsgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUK
ICAgICAgICAgX19hc20gbW92IFtlc3AgKyA0XSwgZWJwOwogICAgICAgICBfX2FzbSBqbXAgZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgi
CisjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiSklURXhjZXB0aW9ucy5o
IgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCkBAIC03Miw2
ICs3Myw3IEBAIGV4dGVybiAiQyIgewogICAgIFBjOiBJbnN0cnVjdGlvbiogaS5lLiBieXRlY29k
ZSBQQwogICAgIFI6IFJlZ2lzdGVyCiAgICAgUzogc2l6ZV90CisgICAgU3BydDogU2xvd1BhdGhS
ZXR1cm5UeXBlCiAgICAgU3NpOiBTdHJ1Y3R1cmVTdHViSW5mbyoKICAgICBTdDogU3RydWN0dXJl
KgogICAgIFY6IHZvaWQKQEAgLTkyLDYgKzk0LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OICgqSgogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgq
Sl9KSVRPcGVyYXRpb25fRUNJKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBTdHJpbmdJbXBsKik7CiB0
eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FQ0op
KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VEQSkoRXhlY1N0YXRlKiwgZG91
YmxlLCBKU0FycmF5Kik7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpK
X0pJVE9wZXJhdGlvbl9FRSkoRXhlY1N0YXRlKiwgRXhlY1N0YXRlKik7CiB0eXBlZGVmIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSSkoRXhlY1N0YXRlKiwg
U3RyaW5nSW1wbCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9K
SVRPcGVyYXRpb25fRUopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKQSkoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEpTQXJyYXkqKTsKQEAgLTEzMyw2ICsxMzYsNyBAQCB0eXBlZGVm
IHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVyCiB0eXBlZGVmIHNpemVfdCBKSVRfT1BF
UkFUSU9OICgqU19KSVRPcGVyYXRpb25fRUpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3Bl
cmF0aW9uX0VPSnNzKShFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTU3RyaW5nKik7CiB0eXBlZGVm
IHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVyYXRpb25fSikoRW5jb2RlZEpTVmFsdWUp
OwordHlwZWRlZiBTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiAoKlNwcnRfSklUT3Bl
cmF0aW9uX0VaKShFeGVjU3RhdGUqLCBpbnQzMl90KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRSkoRXhlY1N0YXRlKik7CiB0eXBlZGVmIHZvaWQgSklUX09Q
RVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDKShFeGVjU3RhdGUqLCBKU0NlbGwqKTsKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNiKShFeGVjU3RhdGUqLCBD
b2RlQmxvY2sqKTsKQEAgLTE3NCwxOCArMTc4LDE3IEBAIHR5cGVkZWYgY2hhciogSklUX09QRVJB
VElPTiAoKlBfSklUT3BlcmEKIHR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAoKlBfSklUT3Bl
cmF0aW9uX0VTdFBTKShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCB2b2lkKiwgc2l6ZV90KTsKIHR5
cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAoKlBfSklUT3BlcmF0aW9uX0VTdFNTKShFeGVjU3Rh
dGUqLCBTdHJ1Y3R1cmUqLCBzaXplX3QsIHNpemVfdCk7CiB0eXBlZGVmIGNoYXIqIEpJVF9PUEVS
QVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FU3RaKShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBpbnQz
Ml90KTsKLXR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAoKlBfSklUT3BlcmF0aW9uX0VaKShF
eGVjU3RhdGUqLCBpbnQzMl90KTsKIHR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAoKlBfSklU
T3BlcmF0aW9uX0VaWikoRXhlY1N0YXRlKiwgaW50MzJfdCwgaW50MzJfdCk7CiB0eXBlZGVmIFN0
cmluZ0ltcGwqIEpJVF9PUEVSQVRJT04gKCpJX0pJVE9wZXJhdGlvbl9FSnNzKShFeGVjU3RhdGUq
LCBKU1N0cmluZyopOwogdHlwZWRlZiBKU1N0cmluZyogSklUX09QRVJBVElPTiAoKkpzc19KSVRP
cGVyYXRpb25fRVopKEV4ZWNTdGF0ZSosIGludDMyX3QpOwogCiAvLyBUaGlzIG1ldGhvZCBpcyB1
c2VkIHRvIGxvb2t1cCBhbiBleGNlcHRpb24gaGFuZGVyLCBrZXllZCBieSBmYXVsdExvY2F0aW9u
LCB3aGljaCBpcwogLy8gdGhlIHJldHVybiBsb2NhdGlvbiBmcm9tIG9uZSBvZiB0aGUgY2FsbHMg
b3V0IHRvIG9uZSBvZiB0aGUgaGVscGVyIG9wZXJhdGlvbnMgYWJvdmUuCi0gICAgCi12b2lkIEpJ
VF9PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9uSGFuZGxlcihFeGVjU3RhdGUqKSBXVEZfSU5URVJO
QUw7CisKK3ZvaWQgSklUX09QRVJBVElPTiBsb29rdXBFeGNlcHRpb25IYW5kbGVyKFZNKiwgRXhl
Y1N0YXRlKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZNSGFu
ZGxlRXhjZXB0aW9uKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIAotdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblN0YWNrQ2hlY2soRXhlY1N0YXRlKiwgQ29kZUJsb2NrKikgV1RGX0lOVEVS
TkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9y
KEV4ZWNTdGF0ZSosIENvZGVCbG9jayopIFdURl9JTlRFUk5BTDsKIGludDMyX3QgSklUX09QRVJB
VElPTiBvcGVyYXRpb25DYWxsQXJpdHlDaGVjayhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBp
bnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayhFeGVjU3Rh
dGUqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkdldEJ5SWQoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwg
U3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKQEAgLTIxMywxMiArMjE2LDE4IEBAIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGUKIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqKSBX
VEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDYWxsKEV4
ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiwgRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5URVJO
QUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbChFeGVjU3Rh
dGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxD
YWxsKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmlydHVhbENvbnN0cnVjdChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3QoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFM
OworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdz
KEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
TGlua0Nsb3N1cmVDYWxsVGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFM
OworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNS
ZWdzKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSopIFdURl9JTlRF
Uk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NvbnN0cnVjdFRoYXRQcmVz
ZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKKwogc2l6ZV90IEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ29tcGFyZUxlc3MoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25D
b21wYXJlTGVzc0VxKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkg
V1RGX0lOVEVSTkFMOwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUdyZWF0
ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7CkBAIC0yNDIsNyArMjUxLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93
U3RhdGljRQogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93KEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGVidWcoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwogI2lmIEVOQUJMRShERkdf
SklUKQotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBp
bnQzMl90KSBXVEZfSU5URVJOQUw7CitTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiAjZW5k
aWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUluZGV4KEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgVVNFKEpTVkFMVUU2
NCkKQEAgLTI2Nyw3ICsyNzYsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGVhck9m
ZkFyZ3VtCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWQo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgY29uc3QgSWRlbnRpZmllciopIFdURl9J
TlRFUk5BTDsKIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQTmFtZXMoRXhlY1N0
YXRlKiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkluc3RhbmNlT2YoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIHByb3RvKSBXVEZfSU5URVJOQUw7Ci1DYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uU2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikgV1RGX0lOVEVSTkFM
OworQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3Mo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IGZpcnN0RnJlZVJl
Z2lzdGVyKSBXVEZfSU5URVJOQUw7CiBDYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
TG9hZFZhcmFyZ3MoRXhlY1N0YXRlKiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9PYmplY3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKIApAQCAtMjg3LDYgKzI5Niw2OCBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uSW5pdEdsb2JhbENvCiAKIH0gLy8gZXh0ZXJuICJDIgogCitpbmxpbmUg
UF9KSVRPcGVyYXRpb25fRSBvcGVyYXRpb25MaW5rRm9yKAorICAgIENvZGVTcGVjaWFsaXphdGlv
bktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBz
d2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIENvZGVGb3JDYWxsOgorICAgICAgICBzd2l0Y2ggKHJl
Z2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6
CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uTGlua0NhbGw7CisgICAgICAgIGNhc2UgTXVz
dFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDYWxs
VGhhdFByZXNlcnZlc1JlZ3M7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
b2RlRm9yQ29uc3RydWN0OgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBj
YXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4g
b3BlcmF0aW9uTGlua0NvbnN0cnVjdDsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3Rl
cnM6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uTGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2
ZXNSZWdzOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQorCitpbmxpbmUgUF9KSVRPcGVy
YXRpb25fRSBvcGVyYXRpb25WaXJ0dWFsRm9yKAorICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQg
a2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBzd2l0Y2gg
KGtpbmQpIHsKKyAgICBjYXNlIENvZGVGb3JDYWxsOgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVy
cykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAg
ICAgICAgICByZXR1cm4gb3BlcmF0aW9uVmlydHVhbENhbGw7CisgICAgICAgIGNhc2UgTXVzdFBy
ZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxDYWxs
VGhhdFByZXNlcnZlc1JlZ3M7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
b2RlRm9yQ29uc3RydWN0OgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBj
YXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4g
b3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdDsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdp
c3RlcnM6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdFRoYXRQ
cmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQorCitpbmxpbmUgUF9K
SVRPcGVyYXRpb25fRSBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxGb3IoUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgIGNh
c2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgcmV0dXJuIG9wZXJh
dGlvbkxpbmtDbG9zdXJlQ2FsbDsKKyAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAg
ICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzOwor
ICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4Miw3
ICs0ODIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qCiAKICAg
ICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmln
aW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCi0g
ICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDAp
LCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCB0cnVlKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3M6
OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgdHJ1ZSk7CiAg
ICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93
UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKQEAgLTUzMCw3ICs1MzAs
NyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQoSW5zdHJ1Y3Rpb24qCiAKICAgICBKSVRQ
dXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9i
eXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCi0gICAgICAg
IGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1Zh
bHVlUmVncyhyZWdUMywgcmVnVDIpLAorICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHko
cmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLAogICAgICAgICByZWdUMSwgdHJ1ZSwg
bV9jb2RlQmxvY2stPmVjbWFNb2RlKCksIGRpcmVjdCA/IERpcmVjdCA6IE5vdERpcmVjdCk7CiAg
ICAgCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMDksIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X2lkKEluc3RydWN0aW9uKgogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4o
CiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdp
c3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3Rlciwg
SlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIHRydWUpOworICAgICAgICBK
U1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgdHJ1ZSk7CiAgICAgZ2VuLmdl
bmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAo
KSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKQEAgLTU2Niw4ICs1NjYsOCBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQoSW5zdHJ1Y3Rpb24qCiAKICAgICBKSVRQdXRCeUlkR2Vu
ZXJhdG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9m
ZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCi0gICAgICAgIGNhbGxGcmFt
ZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxKSwgcmVnVDIs
IHRydWUsCi0gICAgICAgIG1fY29kZUJsb2NrLT5lY21hTW9kZSgpLCBkaXJlY3QgPyBEaXJlY3Qg
OiBOb3REaXJlY3QpOworICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJl
Z1QxKSwgcmVnVDIsIHRydWUsIG1fY29kZUJsb2NrLT5lY21hTW9kZSgpLAorICAgICAgICBkaXJl
Y3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOwogICAgIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRo
KCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwpAQCAtMTA3OCw3
ICsxMDc4LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwoQnlWYWxJbgogICAg
IHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgYnlWYWxJbmZvLT5iYWRUeXBlSnVtcC5sYWJlbEF0T2Zm
c2V0KGJ5VmFsSW5mby0+YmFkVHlwZUp1bXBUb0RvbmUpKTsKICAgICAKICAgICBieVZhbEluZm8t
PnN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKLSAgICAgICAgcGF0Y2hCdWZm
ZXIsCisgICAgICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAgKCJCYXNlbGlu
ZSBnZXRfYnlfdmFsIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCB0b0NTdHJpbmcoKm1f
Y29kZUJsb2NrKS5kYXRhKCksIHJldHVybkFkZHJlc3MudmFsdWUoKSkpOwogICAgIAogICAgIFJl
cGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CkBAIC0xMTQxLDEyICsxMTQx
LDEyIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW4KICAgICBib29s
IGlzRGlyZWN0ID0gbV9pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoY3VycmVudEluc3RydWN0aW9u
LT51Lm9wY29kZSkgPT0gb3BfcHV0X2J5X3ZhbF9kaXJlY3Q7CiAgICAgaWYgKCFpc0RpcmVjdCkg
ewogICAgICAgICBieVZhbEluZm8tPnN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RV
QigKLSAgICAgICAgICAgIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAgbV9jb2RlQmxvY2ssIHBh
dGNoQnVmZmVyLAogICAgICAgICAgICAgKCJCYXNlbGluZSBwdXRfYnlfdmFsIHN0dWIgZm9yICVz
LCByZXR1cm4gcG9pbnQgJXAiLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5kYXRhKCksIHJldHVy
bkFkZHJlc3MudmFsdWUoKSkpOwogICAgICAgICAKICAgICB9IGVsc2UgewogICAgICAgICBieVZh
bEluZm8tPnN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKLSAgICAgICAgICAg
IHBhdGNoQnVmZmVyLAorICAgICAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAogICAg
ICAgICAgICAgKCJCYXNlbGluZSBwdXRfYnlfdmFsX2RpcmVjdCBzdHViIGZvciAlcywgcmV0dXJu
IHBvaW50ICVwIiwgdG9DU3RyaW5nKCptX2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNz
LnZhbHVlKCkpKTsKICAgICB9CiAgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKG1fY29k
ZUJsb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5l
LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YlJvdXRpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTUwLDExICsxNTAsOCBAQCBwcm90ZWN0ZWQ6CiB9
OwogCiAvLyBIZWxwZXIgZm9yIHRoZSBjcmVhdGlvbiBvZiBzaW1wbGUgc3R1YiByb3V0aW5lcyB0
aGF0IG5lZWQgbm8gaGVscCBmcm9tIHRoZSBHQy4KLSNkZWZpbmUgRklOQUxJWkVfQ09ERV9GT1Jf
U1RVQihwYXRjaEJ1ZmZlciwgZGF0YUxvZ0ZBcmd1bWVudHMpIFwKLSAgICAoYWRvcHRSZWYobmV3
IEpJVFN0dWJSb3V0aW5lKEZJTkFMSVpFX0NPREUoKHBhdGNoQnVmZmVyKSwgZGF0YUxvZ0ZBcmd1
bWVudHMpKSkpCi0KLSNkZWZpbmUgRklOQUxJWkVfQ09ERV9GT1JfREZHX1NUVUIocGF0Y2hCdWZm
ZXIsIGRhdGFMb2dGQXJndW1lbnRzKSBcCi0gICAgKGFkb3B0UmVmKG5ldyBKSVRTdHViUm91dGlu
ZShGSU5BTElaRV9ERkdfQ09ERSgocGF0Y2hCdWZmZXIpLCBkYXRhTG9nRkFyZ3VtZW50cykpKSkK
KyNkZWZpbmUgRklOQUxJWkVfQ09ERV9GT1JfU1RVQihjb2RlQmxvY2ssIHBhdGNoQnVmZmVyLCBk
YXRhTG9nRkFyZ3VtZW50cykgXAorICAgIChhZG9wdFJlZihuZXcgSklUU3R1YlJvdXRpbmUoRklO
QUxJWkVfQ09ERV9GT1IoKGNvZGVCbG9jayksIChwYXRjaEJ1ZmZlciksIGRhdGFMb2dGQXJndW1l
bnRzKSkpKQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRTdHVicy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVicy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxNCArMzcsMTMgQEAgbmFtZXNw
YWNlIEpTQyB7CiAjaWYgRU5BQkxFKEpJVCkKIAogI2lmIE9TKFdJTkRPV1MpCi1jbGFzcyBFeGVj
U3RhdGU7Ci1jbGFzcyBSZWdpc3RlcjsKIHN0cnVjdCBQcm90b0NhbGxGcmFtZTsKK2NsYXNzIFZN
OwogCiBleHRlcm4gIkMiIHsKLSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZv
aWQqLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOwotICAgIHZvaWQg
cmV0dXJuRnJvbUphdmFTY3JpcHQoKTsKLSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVG
dW5jdGlvbih2b2lkKiwgRXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsK
KyAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqLCBWTSosIFByb3RvQ2Fs
bEZyYW1lKik7CisgICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCos
IFZNKiwgUHJvdG9DYWxsRnJhbWUqKTsKKyAgICB2b2lkIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9u
KCk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
c01TVkM2NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dHVic01TVkM2NC5hc20JKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnNNU1ZDNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI1NSArMCwwIEBA
Ci07LyoKLTsgQ29weXJpZ2h0IChDKSAyMDEzIERpZ2lhIFBsYy4gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCi07Ci07IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotOyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLTsgYXJlIG1ldDoKLTsgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLTsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotOyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi07ICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi07Ci07IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotOyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotOyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLTsgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLTsgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi07IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLTsgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi07IFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLTsgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi07IChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotOyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotOyovCi0KLUVYVEVSTiBnZXRIb3N0Q2FsbFJldHVy
blZhbHVlV2l0aEV4ZWNTdGF0ZSA6IG5lYXIKLQotUFVCTElDIGNhbGxUb0phdmFTY3JpcHQKLVBV
QkxJQyByZXR1cm5Gcm9tSmF2YVNjcmlwdAotUFVCTElDIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUK
LQotX1RFWFQgICBTRUdNRU5UCi0KLWNhbGxUb0phdmFTY3JpcHQgUFJPQwotICAgIDs7IFRoaXMg
ZnVuY3Rpb24gaXMgYmVsaWV2ZWQgdG8gYmUgYW4gYWNjdXJhdGUgYWRhcHRhdGlvbiBvZiB0aGUg
YXNzZW1ibHkgY3JlYXRlZCBieSB0aGUgbGxpbnQgc3R1YiBvZiB0aGUKLSAgICA7OyBzYW1lIG5h
bWUgd2l0aCBjaGFuZ2VzIGZvciBhcmd1bWVudCByZWdpc3RlciBkaWZmZXJlbmNlcy4KLSAgICBt
b3YgcjEwLCBxd29yZCBwdHJbcnNwXQotICAgIHB1c2ggcmJwCi0gICAgbW92IHJheCwgcmJwIDsg
U2F2ZSBwcmV2aW91cyBmcmFtZSBwb2ludGVyCi0gICAgbW92IHJicCwgcnNwCi0gICAgcHVzaCBy
MTIKLSAgICBwdXNoIHIxMwotICAgIHB1c2ggcjE0Ci0gICAgcHVzaCByMTUKLSAgICBwdXNoIHJi
eAotICAgIHB1c2ggcnNpCi0gICAgcHVzaCByZGkKLQotICAgIDsgSklUIG9wZXJhdGlvbnMgY2Fu
IHVzZSB1cCB0byA2IGFyZ3MgKDQgaW4gcmVnaXN0ZXJzIGFuZCAyIG9uIHRoZSBzdGFjaykuCi0g
ICAgOyBJbiBhZGRpdGlvbiwgWDg2XzY0IEFCSSBzcGVjaWZpZXMgdGhhdCB0aGUgd29yc2UgY2Fz
ZSBzdGFjayBhbGlnbm1lbnQKLSAgICA7IHJlcXVpcmVtZW50IGlzIDMyIGJ5dGVzLiBCYXNlZCBv
biB0aGVzZSBmYWN0b3JzLCB3ZSBuZWVkIHRvIHBhZCB0aGUgc3RhY2sKLSAgICA7IGFuIGFkZGl0
aW9uYWwgMjhoIGJ5dGVzLgotICAgIHN1YiByc3AsIDI4aAotCi0gICAgbW92IHJicCwgcjkKLSAg
ICBzdWIgcmJwLCA0MAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgNDBdLCAwCi0gICAgbW92IHF3
b3JkIHB0cltyYnAgKyAzMl0sIHJkeAotCi0gICAgbW92IHJheCwgcXdvcmQgcHRyW3JkeF0KLSAg
ICBtb3YgcXdvcmQgcHRyW3JicCArIDI0XSwgcmF4Ci0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAx
Nl0sIDEKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDhdLCByMTAKLSAgICBtb3YgcXdvcmQgcHRy
W3JicF0sIHJheAotICAgIG1vdiByYXgsIHJicAotCi0gICAgbW92IGVieCwgZHdvcmQgcHRyW3I4
ICsgNDBdCi0gICAgYWRkIHJieCwgNgotICAgIHNhbCByYngsIDMKLSAgICBzdWIgcmJwLCByYngK
LSAgICBtb3YgcXdvcmQgcHRyW3JicF0sIHJheAotCi0gICAgbW92IHJheCwgNQotCi1jb3B5SGVh
ZGVyTG9vcDoKLSAgICBzdWIgcmF4LCAxCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3I4ICsgcmF4
ICogOF0KLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIHJheCAqIDggKyAxNl0sIHIxMAotICAgIHRl
c3QgcmF4LCByYXgKLSAgICBqbnogY29weUhlYWRlckxvb3AKLQotICAgIG1vdiBlYngsIGR3b3Jk
IHB0cltyOCArIDI0XQotICAgIHN1YiByYngsIDEKLSAgICBtb3YgcjEwZCwgZHdvcmQgcHRyW3I4
ICsgNDBdCi0gICAgc3ViIHIxMCwgMQotICAgIGNtcCByYngsIHIxMAotICAgIGplIGNvcHlBcmdz
Ci0gICAgbW92IHJheCwgMGFoCi0KLWZpbGxFeHRyYUFyZ3NMb29wOgotICAgIHN1YiByMTAsIDEK
LSAgICBtb3YgcXdvcmQgcHRyW3JicCArIHIxMCAqIDggKyA1Nl0sIHJheAotICAgIGNtcCByYngs
IHIxMAotICAgIGpuZSBmaWxsRXh0cmFBcmdzTG9vcAotCi1jb3B5QXJnczoKLSAgICBtb3YgcmF4
LCBxd29yZCBwdHJbcjggKyA0OF0KLQotY29weUFyZ3NMb29wOgotICAgIHRlc3QgZWJ4LCBlYngK
LSAgICBqeiBjb3B5QXJnc0RvbmUKLSAgICBzdWIgZWJ4LCAxCi0gICAgbW92IHIxMCwgcXdvcmQg
cHRyW3JheCArIHJieCAqIDhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByYnggKiA4ICsgNTZd
LCByMTAKLSAgICBqbXAgY29weUFyZ3NMb29wCi0KLWNvcHlBcmdzRG9uZToKLSAgICBtb3YgcXdv
cmQgcHRyW3JkeF0sIHJicAotICAgIG1vdiByMTQsIDBGRkZGMDAwMDAwMDAwMDAwaAotICAgIG1v
diByMTUsIDBGRkZGMDAwMDAwMDAwMDAyaAotICAgIGNhbGwgcmN4Ci0gICAgY21wIHF3b3JkIHB0
cltyYnAgKyAxNl0sIDEKLSAgICBqZSBjYWxsZWVGcmFtZVBvcHBlZAotICAgIG1vdiByYnAsIHF3
b3JkIHB0cltyYnBdCi0KLWNhbGxlZUZyYW1lUG9wcGVkOgotICAgIG1vdiByYngsIHF3b3JkIHB0
cltyYnAgKyAzMl0gOyBWTS50b3BDYWxsRnJhbWUKLSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcmJw
ICsgMjRdCi0gICAgbW92IHF3b3JkIHB0cltyYnhdLCByMTAKLSAgICBhZGQgcnNwLCAyOGgKLSAg
ICBwb3AgcmRpCi0gICAgcG9wIHJzaQotICAgIHBvcCByYngKLSAgICBwb3AgcjE1Ci0gICAgcG9w
IHIxNAotICAgIHBvcCByMTMKLSAgICBwb3AgcjEyCi0gICAgcG9wIHJicAotICAgIHJldAotY2Fs
bFRvSmF2YVNjcmlwdCBFTkRQCi0KLWNhbGxUb05hdGl2ZUZ1bmN0aW9uIFBST0MKLSAgICA7OyBU
aGlzIGZ1bmN0aW9uIGlzIGJlbGlldmVkIHRvIGJlIGFuIGFjY3VyYXRlIGFkYXB0YXRpb24gb2Yg
dGhlIGFzc2VtYmx5IGNyZWF0ZWQgYnkgdGhlIGxsaW50IHN0dWIgb2YgdGhlCi0gICAgOzsgc2Ft
ZSBuYW1lIHdpdGggY2hhbmdlcyBmb3IgYXJndW1lbnQgcmVnaXN0ZXIgZGlmZmVyZW5jZXMuCi0g
ICAgbW92IHIxMCwgcXdvcmQgcHRyW3JzcF0KLSAgICBwdXNoIHJicAotICAgIG1vdiByYXgsIHJi
cCA7IFNhdmUgcHJldmlvdXMgZnJhbWUgcG9pbnRlcgotICAgIG1vdiByYnAsIHJzcAotICAgIHB1
c2ggcjEyCi0gICAgcHVzaCByMTMKLSAgICBwdXNoIHIxNAotICAgIHB1c2ggcjE1Ci0gICAgcHVz
aCByYngKLSAgICBwdXNoIHJzaQotICAgIHB1c2ggcmRpCi0KLSAgICA7IEpJVCBvcGVyYXRpb25z
IGNhbiB1c2UgdXAgdG8gNiBhcmdzICg0IGluIHJlZ2lzdGVycyBhbmQgMiBvbiB0aGUgc3RhY2sp
LgotICAgIDsgSW4gYWRkaXRpb24sIFg4Nl82NCBBQkkgc3BlY2lmaWVzIHRoYXQgdGhlIHdvcnNl
IGNhc2Ugc3RhY2sgYWxpZ25tZW50Ci0gICAgOyByZXF1aXJlbWVudCBpcyAzMiBieXRlcy4gQmFz
ZWQgb24gdGhlc2UgZmFjdG9ycywgd2UgbmVlZCB0byBwYWQgdGhlIHN0YWNrCi0gICAgOyBhbiBh
ZGRpdGlvbmFsIDI4aCBieXRlcy4KLSAgICBzdWIgcnNwLCAyOGgKLQotICAgIG1vdiByYnAsIHI5
Ci0gICAgc3ViIHJicCwgNDAKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDQwXSwgMAotICAgIG1v
diBxd29yZCBwdHJbcmJwICsgMzJdLCByZHgKLQotICAgIG1vdiByYXgsIHF3b3JkIHB0cltyZHhd
Ci0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAyNF0sIHJheAotICAgIG1vdiBxd29yZCBwdHJbcmJw
ICsgMTZdLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyA4XSwgcjEwCi0gICAgbW92IHF3b3Jk
IHB0cltyYnBdLCByYXgKLSAgICBtb3YgcmF4LCByYnAKLQotICAgIG1vdiBlYngsIGR3b3JkIHB0
cltyOCArIDQwXQotICAgIGFkZCByYngsIDYKLSAgICBzYWwgcmJ4LCAzCi0gICAgc3ViIHJicCwg
cmJ4Ci0gICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLQotICAgIG1vdiByYXgsIDUKLQotY29w
eUhlYWRlckxvb3A6Ci0gICAgc3ViIHJheCwgMQotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyOCAr
IHJheCAqIDhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByYXggKiA4ICsgMTZdLCByMTAKLSAg
ICB0ZXN0IHJheCwgcmF4Ci0gICAgam56IGNvcHlIZWFkZXJMb29wCi0KLSAgICBtb3YgZWJ4LCBk
d29yZCBwdHJbcjggKyAyNF0KLSAgICBzdWIgcmJ4LCAxCi0gICAgbW92IHIxMGQsIGR3b3JkIHB0
cltyOCArIDQwXQotICAgIHN1YiByMTAsIDEKLSAgICBjbXAgcmJ4LCByMTAKLSAgICBqZSBjb3B5
QXJncwotICAgIG1vdiByYXgsIDBhaAotCi1maWxsRXh0cmFBcmdzTG9vcDoKLSAgICBzdWIgcjEw
LCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByMTAgKiA4ICsgNTZdLCByYXgKLSAgICBjbXAg
cmJ4LCByMTAKLSAgICBqbmUgZmlsbEV4dHJhQXJnc0xvb3AKLQotY29weUFyZ3M6Ci0gICAgbW92
IHJheCwgcXdvcmQgcHRyW3I4ICsgNDhdCi0KLWNvcHlBcmdzTG9vcDoKLSAgICB0ZXN0IHJieCwg
cmJ4Ci0gICAganogY29weUFyZ3NEb25lCi0gICAgc3ViIHJieCwgMQotICAgIG1vdiByMTAsIHF3
b3JkIHB0cltyYXggKyByYnggKiA4XQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcmJ4ICogOCAr
IDU2XSwgcjEwCi0gICAgam1wIGNvcHlBcmdzTG9vcAotCi1jb3B5QXJnc0RvbmU6Ci0gICAgbW92
IHF3b3JkIHB0cltyZHhdLCByYnAKLSAgICBtb3YgcjE0LCAwRkZGRjAwMDAwMDAwMDAwMGgKLSAg
ICBtb3YgcjE1LCAwRkZGRjAwMDAwMDAwMDAwMmgKLQotICAgIG1vdiByYXgsIHJjeAotICAgIG1v
diByY3gsIHJicAotICAgIGNhbGwgcmF4Ci0KLSAgICBjbXAgcXdvcmQgcHRyW3JicCArIDE2XSwg
MQotICAgIGplIGNhbGxlZUZyYW1lUG9wcGVkCi0gICAgbW92IHJicCwgcXdvcmQgcHRyW3JicF0K
LQotY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAgbW92IHJieCwgcXdvcmQgcHRyW3JicCArIDMyXSA7
IFZNLnRvcENhbGxGcmFtZQotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyYnAgKyAyNF0KLSAgICBt
b3YgcXdvcmQgcHRyW3JieF0sIHIxMAotICAgIGFkZCByc3AsIDI4aAotICAgIHBvcCByZGkKLSAg
ICBwb3AgcnNpCi0gICAgcG9wIHJieAotICAgIHBvcCByMTUKLSAgICBwb3AgcjE0Ci0gICAgcG9w
IHIxMwotICAgIHBvcCByMTIKLSAgICBwb3AgcmJwCi0gICAgcmV0Ci1jYWxsVG9OYXRpdmVGdW5j
dGlvbiBFTkRQCi0KLXJldHVybkZyb21KYXZhU2NyaXB0IFBST0MKLSAgICBhZGQgcnNwLCAyOGgK
LSAgICBwb3AgcmRpCi0gICAgcG9wIHJzaQotICAgIHBvcCByYngKLSAgICBwb3AgcjE1Ci0gICAg
cG9wIHIxNAotICAgIHBvcCByMTMKLSAgICBwb3AgcjEyCi0gICAgcG9wIHJicAotICAgIHJldAot
cmV0dXJuRnJvbUphdmFTY3JpcHQgRU5EUAotCQotZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSBQUk9D
Ci0gICAgbW92IHJicCwgW3JicF0gOyBDYWxsRnJhbWUKLSAgICBtb3YgcmN4LCByYnAgOyByY3gg
aXMgZmlyc3QgYXJndW1lbnQgcmVnaXN0ZXIgb24gV2luZG93cwotICAgIGptcCBnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZQotZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSBFTkRQCi0K
LV9URVhUICAgRU5EUwotCi1FTkQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnNYODYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzWDg2LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnNYODYuaAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDIzMCArMjAwLDYgQEAgU1lNQk9M
X1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKQogCiAjZW5kaWYgLy8gQ09NUElMRVIo
R0NDKQogCi0jaWYgQ09NUElMRVIoTVNWQykKLQotZXh0ZXJuICJDIiB7Ci0KLSAgICAvLyBGSVhN
RTogU2luY2UgV2luZG93cyBkb2Vzbid0IHVzZSB0aGUgTExJbnQsIHdlIGhhdmUgaW5saW5lIHN0
dWJzIGhlcmUuCi0gICAgLy8gVW50aWwgdGhlIExMSW50IGlzIGNoYW5nZWQgdG8gc3VwcG9ydCBX
aW5kb3dzLCB0aGVzZSBzdHViIG5lZWRzIHRvIGJlIHVwZGF0ZWQuCi0gICAgX19kZWNsc3BlYyhu
YWtlZCkgRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiBjb2RlLCBFeGVjU3Rh
dGUqKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopCi0gICAgewotICAgICAgICBfX2FzbSB7
Ci0gICAgICAgICAgICBtb3YgZWR4LCBbZXNwXQotICAgICAgICAgICAgcHVzaCBlYnA7Ci0gICAg
ICAgICAgICBtb3YgZWF4LCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWJwLCBlc3A7Ci0gICAgICAg
ICAgICBwdXNoIGVzaTsKLSAgICAgICAgICAgIHB1c2ggZWRpOwotICAgICAgICAgICAgcHVzaCBl
Yng7Ci0gICAgICAgICAgICBzdWIgZXNwLCAweDFjOwotICAgICAgICAgICAgbW92IGVjeCwgZHdv
cmQgcHRyW2VzcCArIDB4MzRdOwotICAgICAgICAgICAgbW92IGVzaSwgZHdvcmQgcHRyW2VzcCAr
IDB4MzhdOwotICAgICAgICAgICAgbW92IGVicCwgZHdvcmQgcHRyW2VzcCArIDB4M2NdOwotICAg
ICAgICAgICAgc3ViIGVicCwgMHgyMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsg
MHgyNF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MjBdLCAwOwotICAg
ICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDFjXSwgMDsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHJbZWJwICsgMHgxOF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBlYngsIFtlY3hdOwot
ICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDE0XSwgMDsKLSAgICAgICAgICAgIG1v
diBkd29yZCBwdHJbZWJwICsgMHgxMF0sIGVieDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJb
ZWJwICsgMHhjXSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHg4XSwgMTsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHg0XSwgZWR4OwotICAgICAgICAgICAg
bW92IGR3b3JkIHB0cltlYnBdLCBlYXg7Ci0gICAgICAgICAgICBtb3YgZWF4LCBlYnA7Ci0KLSAg
ICAgICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltlc2kgKyAweDI4XTsKLSAgICAgICAgICAgIGFk
ZCBlZHgsIDU7Ci0gICAgICAgICAgICBzYWwgZWR4LCAzOwotICAgICAgICAgICAgc3ViIGVicCwg
ZWR4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnBdLCBlYXg7Ci0KLSAgICAgICAgICAg
IG1vdiBlYXgsIDU7Ci0KLSAgICAgICAgY29weUhlYWRlckxvb3A6Ci0gICAgICAgICAgICBzdWIg
ZWF4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzaSArIGVheCAqIDhdOwot
ICAgICAgICAgICAgbW92IGR3b3JkIHB0ciA4W2VicCArIGVheCAqIDhdLCBlY3g7Ci0gICAgICAg
ICAgICBtb3YgZWN4LCBkd29yZCBwdHIgNFtlc2kgKyBlYXggKiA4XTsKLSAgICAgICAgICAgIG1v
diBkd29yZCBwdHIgMTJbZWJwICsgZWF4ICogOF0sIGVjeDsKLSAgICAgICAgICAgIHRlc3QgZWF4
LCBlYXg7Ci0gICAgICAgICAgICBqbnogY29weUhlYWRlckxvb3A7Ci0KLSAgICAgICAgICAgIG1v
diBlZHgsIGR3b3JkIHB0cltlc2kgKyAweDE4XTsKLSAgICAgICAgICAgIHN1YiBlZHgsIDE7Ci0g
ICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNpICsgMHgyOF07Ci0gICAgICAgICAgICBz
dWIgZWN4LCAxOwotCi0gICAgICAgICAgICBjbXAgZWR4LCBlY3g7Ci0gICAgICAgICAgICBqZSBj
b3B5QXJnczsKLQotICAgICAgICAgICAgeG9yIGVheCwgZWF4OwotICAgICAgICAgICAgbW92IGVi
eCwgLTQ7Ci0KLSAgICAgICAgZmlsbEV4dHJhQXJnc0xvb3A6Ci0gICAgICAgICAgICBzdWIgZWN4
LCAxOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDMwW2VicCArIGVjeCAqIDhdLCBlYXg7
ICAgICAgICAgICAgCi0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzRbZWJwICsgZWN4ICog
OF0sIGVieDsKLSAgICAgICAgICAgIGNtcCBlZHgsIGVjeDsKLSAgICAgICAgICAgIGpuZSBmaWxs
RXh0cmFBcmdzTG9vcDsKLQotICAgICAgICBjb3B5QXJnczoKLSAgICAgICAgICAgIG1vdiBlYXgs
IGR3b3JkIHB0cltlc2kgKyAweDJjXTsKLQotICAgICAgICBjb3B5QXJnc0xvb3A6Ci0gICAgICAg
ICAgICB0ZXN0IGVkeCwgZWR4OwotICAgICAgICAgICAganogY29weUFyZ3NEb25lOwotICAgICAg
ICAgICAgc3ViIGVkeCwgMTsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0ciAwW2VheCAr
IGVkeCAqIDhdOwotICAgICAgICAgICAgbW92IGVieCwgZHdvcmQgcHRyIDRbZWF4ICsgZWR4ICog
OF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzBbZWJwICsgZWR4ICogOF0sIGVjeDsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzNFtlYnAgKyBlZHggKiA4XSwgZWJ4OwotICAg
ICAgICAgICAgam1wIGNvcHlBcmdzTG9vcDsKLQotICAgICAgICBjb3B5QXJnc0RvbmU6Ci0gICAg
ICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNwICsgMHgzNF07Ci0gICAgICAgICAgICBtb3Yg
ZHdvcmQgcHRyW2VjeF0sIGVicDsKLQotICAgICAgICAgICAgY2FsbCBkd29yZCBwdHJbZXNwICsg
MHgzMF07Ci0KLSAgICAgICAgICAgIGNtcCBkd29yZCBwdHJbZWJwICsgOF0sIDE7Ci0gICAgICAg
ICAgICBqZSBjYWxsZWVGcmFtZVBvcHBlZDsKLSAgICAgICAgICAgIG1vdiBlYnAsIGR3b3JkIHB0
cltlYnBdOwotCi0gICAgICAgIGNhbGxlZUZyYW1lUG9wcGVkOgotICAgICAgICAgICAgbW92IGVj
eCwgZHdvcmQgcHRyW2VicCArIDB4MThdOwotICAgICAgICAgICAgbW92IGVieCwgZHdvcmQgcHRy
W2VicCArIDB4MTBdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlY3hdLCBlYng7Ci0KLSAg
ICAgICAgICAgIGFkZCBlc3AsIDB4MWM7Ci0gICAgICAgICAgICBwb3AgZWJ4OwotICAgICAgICAg
ICAgcG9wIGVkaTsKLSAgICAgICAgICAgIHBvcCBlc2k7Ci0gICAgICAgICAgICBwb3AgZWJwOwot
ICAgICAgICAgICAgcmV0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgX19kZWNsc3BlYyhuYWtl
ZCkgdm9pZCByZXR1cm5Gcm9tSmF2YVNjcmlwdCgpCi0gICAgewotICAgICAgICBfX2FzbSB7Ci0g
ICAgICAgICAgICBhZGQgZXNwLCAweDFjOwotICAgICAgICAgICAgcG9wIGVieDsKLSAgICAgICAg
ICAgIHBvcCBlZGk7Ci0gICAgICAgICAgICBwb3AgZXNpOwotICAgICAgICAgICAgcG9wIGVicDsK
LSAgICAgICAgICAgIHJldDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF9fZGVjbHNwZWMobmFr
ZWQpIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqIGNvZGUsIEV4ZWNT
dGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKikKLSAgICB7Ci0gICAgICAgIF9fYXNt
IHsKLSAgICAgICAgICAgIG1vdiBlZHgsIFtlc3BdCi0gICAgICAgICAgICBwdXNoIGVicDsKLSAg
ICAgICAgICAgIG1vdiBlYXgsIGVicDsKLSAgICAgICAgICAgIG1vdiBlYnAsIGVzcDsKLSAgICAg
ICAgICAgIHB1c2ggZXNpOwotICAgICAgICAgICAgcHVzaCBlZGk7Ci0gICAgICAgICAgICBwdXNo
IGVieDsKLSAgICAgICAgICAgIHN1YiBlc3AsIDB4MWM7Ci0gICAgICAgICAgICBtb3YgZWN4LCBb
ZXNwICsgMHgzNF07Ci0gICAgICAgICAgICBtb3YgZXNpLCBbZXNwICsgMHgzOF07Ci0gICAgICAg
ICAgICBtb3YgZWJwLCBbZXNwICsgMHgzY107Ci0gICAgICAgICAgICBzdWIgZWJwLCAweDIwOwot
ICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDI0XSwgMDsKLSAgICAgICAgICAgIG1v
diBkd29yZCBwdHJbZWJwICsgMHgyMF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2Vi
cCArIDB4MWNdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDE4XSwgZWN4
OwotICAgICAgICAgICAgbW92IGVieCwgW2VjeF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRy
W2VicCArIDB4MTRdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDEwXSwg
ZWJ4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweGNdLCAwOwotICAgICAgICAg
ICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDhdLCAxOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0
cltlYnAgKyAweDRdLCBlZHg7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicF0sIGVheDsK
LSAgICAgICAgICAgIG1vdiBlYXgsIGVicDsKLQotICAgICAgICAgICAgbW92IGVkeCwgZHdvcmQg
cHRyW2VzaSArIDB4MjhdOwotICAgICAgICAgICAgYWRkIGVkeCwgNTsKLSAgICAgICAgICAgIHNh
bCBlZHgsIDM7Ci0gICAgICAgICAgICBzdWIgZWJwLCBlZHg7Ci0gICAgICAgICAgICBtb3YgZHdv
cmQgcHRyW2VicF0sIGVheDsKLQotICAgICAgICAgICAgbW92IGVheCwgNTsKLQotICAgICAgICBj
b3B5SGVhZGVyTG9vcDoKLSAgICAgICAgICAgIHN1YiBlYXgsIDE7Ci0gICAgICAgICAgICBtb3Yg
ZWN4LCBkd29yZCBwdHJbZXNpICsgZWF4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRy
IDhbZWJwICsgZWF4ICogOF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0ciA0
W2VzaSArIGVheCAqIDhdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAxMltlYnAgKyBlYXgg
KiA4XSwgZWN4OwotICAgICAgICAgICAgdGVzdCBlYXgsIGVheDsKLSAgICAgICAgICAgIGpueiBj
b3B5SGVhZGVyTG9vcDsKLQotICAgICAgICAgICAgbW92IGVkeCwgZHdvcmQgcHRyW2VzaSArIDB4
MThdOwotICAgICAgICAgICAgc3ViIGVkeCwgMTsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3Jk
IHB0cltlc2kgKyAweDI4XTsKLSAgICAgICAgICAgIHN1YiBlY3gsIDE7Ci0KLSAgICAgICAgICAg
IGNtcCBlZHgsIGVjeDsKLSAgICAgICAgICAgIGplIGNvcHlBcmdzOwotCi0gICAgICAgICAgICB4
b3IgZWF4LCBlYXg7Ci0gICAgICAgICAgICBtb3YgZWJ4LCAtNDsKLQotICAgICAgICBmaWxsRXh0
cmFBcmdzTG9vcDoKLSAgICAgICAgICAgIHN1YiBlY3gsIDE7Ci0gICAgICAgICAgICBtb3YgZHdv
cmQgcHRyIDB4MzBbZWJwICsgZWN4ICogOF0sIGVheDsgICAgICAgICAgICAKLSAgICAgICAgICAg
IG1vdiBkd29yZCBwdHIgMHgzNFtlYnAgKyBlY3ggKiA4XSwgZWJ4OwotICAgICAgICAgICAgY21w
IGVkeCwgZWN4OwotICAgICAgICAgICAgam5lIGZpbGxFeHRyYUFyZ3NMb29wOwotCi0gICAgICAg
IGNvcHlBcmdzOgotICAgICAgICAgICAgbW92IGVheCwgZHdvcmQgcHRyW2VzaSArIDB4MmNdOwot
Ci0gICAgICAgIGNvcHlBcmdzTG9vcDoKLSAgICAgICAgICAgIHRlc3QgZWR4LCBlZHg7Ci0gICAg
ICAgICAgICBqeiBjb3B5QXJnc0RvbmU7Ci0gICAgICAgICAgICBzdWIgZWR4LCAxOwotICAgICAg
ICAgICAgbW92IGVjeCwgZHdvcmQgcHRyIDBbZWF4ICsgZWR4ICogOF07Ci0gICAgICAgICAgICBt
b3YgZWJ4LCBkd29yZCBwdHIgNFtlYXggKyBlZHggKiA4XTsKLSAgICAgICAgICAgIG1vdiBkd29y
ZCBwdHIgMHgzMFtlYnAgKyBlZHggKiA4XSwgZWN4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0
ciAweDM0W2VicCArIGVkeCAqIDhdLCBlYng7Ci0gICAgICAgICAgICBqbXAgY29weUFyZ3NMb29w
OwotCi0gICAgICAgIGNvcHlBcmdzRG9uZToKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0
cltlc3AgKyAweDM0XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWN4XSwgZWJwOwotCi0g
ICAgICAgICAgICBtb3YgZWRpLCBkd29yZCBwdHJbZXNwICsgMHgzMF07Ci0gICAgICAgICAgICBt
b3YgZHdvcmQgcHRyW2VzcCArIDB4MzBdLCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWN4LCBlYnA7
Ci0gICAgICAgICAgICBjYWxsIGVkaTsKLQotICAgICAgICAgICAgY21wIGR3b3JkIHB0cltlYnAg
KyA4XSwgMTsKLSAgICAgICAgICAgIGplIGNhbGxlZUZyYW1lUG9wcGVkOwotICAgICAgICAgICAg
bW92IGVicCwgZHdvcmQgcHRyW2VicF07Ci0KLSAgICAgICAgY2FsbGVlRnJhbWVQb3BwZWQ6Ci0g
ICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZWJwICsgMHgxOF07Ci0gICAgICAgICAgICBt
b3YgZWJ4LCBkd29yZCBwdHJbZWJwICsgMHgxMF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRy
W2VjeF0sIGVieDsKLQotICAgICAgICAgICAgYWRkIGVzcCwgMHgxYzsKLSAgICAgICAgICAgIHBv
cCBlYng7Ci0gICAgICAgICAgICBwb3AgZWRpOwotICAgICAgICAgICAgcG9wIGVzaTsKLSAgICAg
ICAgICAgIHBvcCBlYnA7Ci0gICAgICAgICAgICByZXQ7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0K
LSNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlm
IC8vIEpJVFN0dWJzWDg2X2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1
bmtzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5r
cy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
VGh1bmtzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpCiAjZW5kaWYKICAgICByZXR1cm4gY3RpU3R1Yih2
bSwgbmF0aXZlQ2FsbEdlbmVyYXRvcikuY29kZSgpOwogfQorCiBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgSklUVGh1bmtzOjpjdGlOYXRpdmVDb25zdHJ1Y3QoVk0qIHZtKQogewogI2lmIEVOQUJMRShM
TElOVCkKQEAgLTYxLDYgKzYyLDEyIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBKSVRUaHVua3M6
OmN0aU5hdGkKICAgICByZXR1cm4gY3RpU3R1Yih2bSwgbmF0aXZlQ29uc3RydWN0R2VuZXJhdG9y
KS5jb2RlKCk7CiB9CiAKK01hY3JvQXNzZW1ibGVyQ29kZVB0ciBKSVRUaHVua3M6OmN0aU5hdGl2
ZVRhaWxDYWxsKFZNKiB2bSkKK3sKKyAgICBBU1NFUlQodm0tPmNhblVzZUpJVCgpKTsKKyAgICBy
ZXR1cm4gY3RpU3R1Yih2bSwgbmF0aXZlVGFpbENhbGxHZW5lcmF0b3IpLmNvZGUoKTsKK30KKwog
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIEpJVFRodW5rczo6Y3RpU3R1YihWTSogdm0sIFRodW5rR2Vu
ZXJhdG9yIGdlbmVyYXRvcikKIHsKICAgICBMb2NrZXIgbG9ja2VyKG1fbG9jayk7CkBAIC04MCw3
ICs4NywxMiBAQCBOYXRpdmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvCiAgICAg
aWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0
dWJNYXAtPmdldChzdGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwgY29uc3RydWN0b3IpKSkKICAgICAg
ICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CiAKLSAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRp
dmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCp2bSwgSklUOjpjb21waWxl
Q1RJTmF0aXZlQ2FsbCh2bSwgZnVuY3Rpb24pLCBmdW5jdGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0aXZlQ29uc3RydWN0KHZtKSksIGNv
bnN0cnVjdG9yLCBOb0ludHJpbnNpYyk7CisgICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhl
Y3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgKKyAgICAgICAgKnZtLAorICAgICAg
ICBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKHZt
LCBmdW5jdGlvbiksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKSwKKyAgICAgICAgZnVuY3Rpb24s
CisgICAgICAgIGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJl
Zjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCh2bSkpLCBKSVRD
b2RlOjpIb3N0Q2FsbFRodW5rKSksCisgICAgICAgIGNvbnN0cnVjdG9yLCBOb0ludHJpbnNpYyk7
CiAgICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHViTWFwLCBzdGQ6Om1ha2VfcGFpcihmdW5j
dGlvbiwgY29uc3RydWN0b3IpLCBXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFi
bGUpKTsKICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKIH0KQEAgLTkyLDE2ICsxMDQsMTgg
QEAgTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0RnVuY3RpbwogICAgIGlmIChOYXRp
dmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5n
ZXQoc3RkOjptYWtlX3BhaXIoZnVuY3Rpb24sICZjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3Rv
cikpKQogICAgICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKIAotICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBjb2RlOworICAgIFJlZlB0cjxKSVRDb2RlPiBmb3JDYWxsOwogICAgIGlmIChn
ZW5lcmF0b3IpIHsKLSAgICAgICAgaWYgKHZtLT5jYW5Vc2VKSVQoKSkKLSAgICAgICAgICAgIGNv
ZGUgPSBnZW5lcmF0b3Iodm0pOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlID0gTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmKCk7CisgICAgICAgIGlmICh2bS0+Y2FuVXNlSklUKCkpIHsKKyAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBlbnRyeSA9IGdlbmVyYXRvcih2bSk7Cisg
ICAgICAgICAgICBmb3JDYWxsID0gYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoZW50cnksIGVu
dHJ5LmNvZGUoKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpOworICAgICAgICB9CiAgICAgfSBl
bHNlCi0gICAgICAgIGNvZGUgPSBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5jdGlv
bik7Ci0KLSAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhl
Y3V0YWJsZTo6Y3JlYXRlKCp2bSwgY29kZSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJl
Zjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCh2bSkpLCBjYWxs
SG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgaW50cmluc2ljKTsKKyAgICAgICAgZm9yQ2FsbCA9
IGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2RlKEpJVDo6Y29tcGlsZUNUSU5hdGl2ZUNhbGwodm0s
IGZ1bmN0aW9uKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpOworICAgIAorICAgIFJlZlB0cjxK
SVRDb2RlPiBmb3JDb25zdHJ1Y3QgPSBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShNYWNyb0Fz
c2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1
Y3Qodm0pKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpOworICAgIAorICAgIE5hdGl2ZUV4ZWN1
dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKnZtLCBm
b3JDYWxsLCBmdW5jdGlvbiwgZm9yQ29uc3RydWN0LCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1
Y3RvciwgaW50cmluc2ljKTsKICAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIHN0
ZDo6bWFrZV9wYWlyKGZ1bmN0aW9uLCAmY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IpLCBX
ZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFibGUpKTsKICAgICByZXR1cm4gbmF0
aXZlRXhlY3V0YWJsZTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1
bmtzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3Mu
aAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVu
a3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAKICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbChWTSopOwogICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoVk0qKTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpTmF0aXZlVGFpbENhbGwoVk0qKTsgICAgCiAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY3RpU3R1YihWTSosIFRodW5rR2VuZXJhdG9yKTsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25X
cmFwcGVyR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDIyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmgiCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVk
ZSAiQXNzZW1ibHlIZWxwZXJzLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUg
IlN0YWNrQWxpZ25tZW50LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitSZWdpc3RlclNldCByZWdp
c3RlcnNUb1ByZXNlcnZlKCkKK3sKKyAgICBSZWdpc3RlclNldCBjYWxsZWVTYXZlcyA9IFJlZ2lz
dGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCk7CisgICAgCisgICAgLy8gTm8gbmVlZCB0byBw
cmVzZXJ2ZSBGUCBzaW5jZSB0aGF0IGFsd2F5cyBnZXRzIHByZXNlcnZlZCBhbnl3YXkuCisgICAg
Y2FsbGVlU2F2ZXMuY2xlYXIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIAorICAg
IHJldHVybiBjYWxsZWVTYXZlczsKK30KKworcHRyZGlmZl90IHJlZ2lzdGVyUHJlc2VydmF0aW9u
T2Zmc2V0KCkKK3sKKyAgICB1bnNpZ25lZCBudW1iZXJPZkNhbGxlZVNhdmVzID0gcmVnaXN0ZXJz
VG9QcmVzZXJ2ZSgpLm51bWJlck9mU2V0UmVnaXN0ZXJzKCk7CisgICAgCisgICAgLy8gTmVlZCB0
byBwcmVzZXJ2ZSB0aGUgb2xkIHJldHVybiBQQy4KKyAgICB1bnNpZ25lZCBudW1iZXJPZlZhbHVl
c1RvU2F2ZSA9IG51bWJlck9mQ2FsbGVlU2F2ZXMgKyAxOworICAgIAorICAgIC8vIEFsaWdubWVu
dC4gUHJlc2VydmUgdGhlIHNhbWUgYWxpZ25tZW50IGludmFyaWFudHMgdGhhdCB0aGUgY2FsbGVy
IGltcG9zZWQuCisgICAgdW5zaWduZWQgbnVtYmVyT2ZOZXdTdGFja1Nsb3RzID0KKyAgICAgICAg
V1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIG51bWJl
ck9mVmFsdWVzVG9TYXZlKTsKKyAgICAKKyAgICByZXR1cm4gc2l6ZW9mKFJlZ2lzdGVyKSAqIG51
bWJlck9mTmV3U3RhY2tTbG90czsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGdlbmVyYXRl
UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKFZNJiB2bSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1
dGFibGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB0YXJnZXQpCit7CisjaWYgRU5BQkxFKEZUTF9K
SVQpCisgICAgLy8gV2Ugc2hvdWxkbid0IGV2ZXIgYmUgZ2VuZXJhdGluZyB3cmFwcGVycyBmb3Ig
bmF0aXZlIGZ1bmN0aW9ucy4KKyAgICBSZWdpc3RlclNldCB0b1NhdmUgPSByZWdpc3RlcnNUb1By
ZXNlcnZlKCk7CisgICAgcHRyZGlmZl90IG9mZnNldCA9IHJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zm
c2V0KCk7CisgICAgCisgICAgQXNzZW1ibHlIZWxwZXJzIGppdCgmdm0sIDApOworICAgIAorICAg
IGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6cmVnVDEpOworICAg
IGppdC5sb2FkMzIoCisgICAgICAgIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcygKKyAgICAgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsCisgICAgICAgICAgICAo
SlNTdGFjazo6QXJndW1lbnRDb3VudCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSAq
IHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0KSwKKyAgICAgICAgR1BSSW5mbzo6cmVn
VDIpOworICAgIAorICAgIC8vIFBsYWNlIHRoZSBzdGFjayBwb2ludGVyIHdoZXJlIHdlIHdhbnQg
aXQgdG8gYmUuCisgICAgaml0LnN1YlB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihv
ZmZzZXQpLCBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAKKyAg
ICAvLyBDb21wdXRlIHRoZSBudW1iZXIgb2YgdGhpbmdzIHdlIHdpbGwgYmUgY29weWluZy4KKyAg
ICBqaXQuYWRkMzIoCisgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKAorICAg
ICAgICAgICAgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZy
YW1lQW5kUENTaXplKSwKKyAgICAgICAgR1BSSW5mbzo6cmVnVDIpOworCisgICAgQVNTRVJUKCF0
b1NhdmUuZ2V0KEdQUkluZm86OnJlZ1Q0KSk7CisgICAgaml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDQpOworICAgIAorICAgIEFzc2Vt
Ymx5SGVscGVyczo6TGFiZWwgbG9vcCA9IGppdC5sYWJlbCgpOworICAgIGppdC5zdWIzMihBc3Nl
bWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5s
b2FkNjQoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Q0LCBvZmZzZXQpLCBH
UFJJbmZvOjpyZWdUMCk7CisgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86
OnJlZ1Q0KTsKKyAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKHNp
emVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpyZWdUNCk7CisgICAgaml0LmJyYW5jaFRlc3QzMihB
c3NlbWJseUhlbHBlcnM6Ok5vblplcm8sIEdQUkluZm86OnJlZ1QyKS5saW5rVG8obG9vcCwgJmpp
dCk7CisKKyAgICAvLyBBdCB0aGlzIHBvaW50IHJlZ1Q0ICsgb2Zmc2V0IHBvaW50cyB0byB3aGVy
ZSB3ZSBzYXZlIHRoaW5ncy4KKyAgICBwdHJkaWZmX3QgY3VycmVudE9mZnNldCA9IDA7CisgICAg
aml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QxLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BS
SW5mbzo6cmVnVDQsIGN1cnJlbnRPZmZzZXQpKTsKKyAgICAKKyAgICBmb3IgKEdQUlJlZyBncHIg
PSBBc3NlbWJseUhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgZ3ByIDw9IEFzc2VtYmx5SGVscGVy
czo6bGFzdFJlZ2lzdGVyKCk7IGdwciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oZ3ByICsgMSkpIHsK
KyAgICAgICAgaWYgKCF0b1NhdmUuZ2V0KGdwcikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgY3VycmVudE9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOworICAgICAgICBqaXQuc3Rv
cmU2NChncHIsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUNCwgY3VycmVu
dE9mZnNldCkpOworICAgIH0KKyAgICAKKyAgICAvLyBBc3N1bWUgdGhhdCB0aGVyZSBhcmVuJ3Qg
YW55IHNhdmVkIEZQIHJlZ2lzdGVycy4KKyAgICAKKyAgICAvLyBSZXN0b3JlIHRoZSB0YWcgcmVn
aXN0ZXJzLgorICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTY0KFRhZ1R5
cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOworICAgIGppdC5hZGQ2
NChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihUYWdNYXNrIC0gVGFnVHlwZU51bWJlciks
IEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVy
KTsKKyAgICAKKyAgICBqaXQubW92ZSgKKyAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKAorICAgICAgICAgICAgdm0uZ2V0Q1RJU3R1YihyZWdpc3RlclJlc3RvcmF0aW9uVGh1
bmtHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSwKKyAgICAgICAgR1BSSW5m
bzo6bm9uQXJnR1BSMCk7CisgICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KEdQUkluZm86Om5vbkFyZ0dQUjApOworICAgIEFzc2VtYmx5SGVscGVyczo6SnVtcCBqdW1wID0g
aml0Lmp1bXAoKTsKKyAgICAKKyAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sICZqaXQsIEdM
T0JBTF9USFVOS19JRCk7CisgICAgbGlua0J1ZmZlci5saW5rKGp1bXAsIENvZGVMb2NhdGlvbkxh
YmVsKHRhcmdldCkpOworCisgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VGVExUb0pTVGh1bmsoKSkK
KyAgICAgICAgZGF0YUxvZygiTmVlZCBhIHRodW5rIGZvciBjYWxscyBmcm9tIEZUTCB0byBub24t
RlRMIHZlcnNpb24gb2YgIiwgKmV4ZWN1dGFibGUsICJcbiIpOworICAgIAorICAgIHJldHVybiBG
SU5BTElaRV9ERkdfQ09ERShsaW5rQnVmZmVyLCAoIlJlZ2lzdGVyIHByZXNlcnZhdGlvbiB3cmFw
cGVyIGZvciAlcy8lcywgJXAiLCB0b0NTdHJpbmcoZXhlY3V0YWJsZS0+aGFzaEZvcihDb2RlRm9y
Q2FsbCkpLmRhdGEoKSwgdG9DU3RyaW5nKGV4ZWN1dGFibGUtPmhhc2hGb3IoQ29kZUZvckNvbnN0
cnVjdCkpLmRhdGEoKSwgdGFyZ2V0LmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyNlbHNlIC8vIEVO
QUJMRShGVExfSklUKQorICAgIFVOVVNFRF9QQVJBTSh2bSk7CisgICAgVU5VU0VEX1BBUkFNKGV4
ZWN1dGFibGUpOworICAgIFVOVVNFRF9QQVJBTSh0YXJnZXQpOworICAgIC8vIFdlIGRvbid0IHN1
cHBvcnQgbm9uLUZUTCBidWlsZHMgZm9yIHR3byByZWFzb25zOgorICAgIC8vIC0gSXQganVzdCBz
byBoYXBwZW5zIHRoYXQgY3VycmVudGx5IG9ubHkgdGhlIEZUTCBib3R0b21zIG91dCBpbiB0aGlz
IGNvZGUuCisgICAgLy8gLSBUaGUgY29kZSBhYm92ZSB1c2VzIDY0LWJpdCBpbnN0cnVjdGlvbnMu
IEl0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgaGF2ZSB0bzsgaXQgd291bGQgYmUKKyAgICAvLyAgIGVh
c3kgdG8gY2hhbmdlIGl0IHNvIHRoYXQgaXQgZG9lc24ndC4gQnV0IG9idmlvdXNseSBtYWtpbmcg
dGhhdCBjaGFuZ2Ugd291bGQgYmUgYQorICAgIC8vICAgcHJlcmVxdWlzaXRlIHRvIHJlbW92aW5n
IHRoaXMgI2lmLgorICAgIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOworICAgIHJldHVybiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYoKTsKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKK30KKwor
c3RhdGljIHZvaWQgZ2VuZXJhdGVSZWdpc3RlclJlc3RvcmF0aW9uKEFzc2VtYmx5SGVscGVycyYg
aml0KQoreworI2lmIEVOQUJMRShGVExfSklUKQorICAgIFJlZ2lzdGVyU2V0IHRvU2F2ZSA9IHJl
Z2lzdGVyc1RvUHJlc2VydmUoKTsKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0ID0gcmVnaXN0ZXJQcmVz
ZXJ2YXRpb25PZmZzZXQoKTsKKyAgICAKKyAgICBBU1NFUlQoIXRvU2F2ZS5nZXQoR1BSSW5mbzo6
cmVnVDQpKTsKKworICAgIC8vIFdlIG5lZWQgdG8gcGxhY2UgdGhlIHN0YWNrIHBvaW50ZXIgYmFj
ayB0byB3aGVyZSB0aGUgY2FsbGVyIHRob3VnaHQgdGhleSBsZWZ0IGl0LgorICAgIC8vIEJ1dCBh
bHNvLCBpbiBvcmRlciB0byByZWNvdmVyIHRoZSByZWdpc3RlcnMsIHdlIG5lZWQgdG8gZmlndXJl
IG91dCBob3cgYmlnIHRoZQorICAgIC8vIGFyZ3VtZW50cyBhcmVhIGlzLgorICAgIAorICAgIGpp
dC5sb2FkMzIoCisgICAgICAgIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgICAg
IEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsCisgICAgICAgICAgICAoSlNT
dGFjazo6QXJndW1lbnRDb3VudCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSAqIHNp
emVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0KSwKKyAgICAgICAgR1BSSW5mbzo6cmVnVDQp
OworICAgIAorICAgIGppdC5tb3ZlKEdQUkluZm86OnJlZ1Q0LCBHUFJJbmZvOjpyZWdUMik7Cisg
ICAgaml0LmxzaGlmdDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDMpLCBHUFJJbmZv
OjpyZWdUMik7CisgICAgCisgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihvZmZzZXQpLCBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAg
ICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEdQUklu
Zm86OnJlZ1QyKTsKKyAgICAKKyAgICAvLyBXZSBzYXZlZCB0aGluZ3MgYXQ6CisgICAgLy8KKyAg
ICAvLyAgICAgYWRqU1AgKyAoSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6
OkNhbGxlckZyYW1lQW5kUENTaXplICsgTnVtQXJncykgKiA4CisgICAgLy8KKyAgICAvLyBXaGVy
ZToKKyAgICAvLworICAgIC8vICAgICBhZGpTUCA9IG9yaWdTUCAtIG9mZnNldAorICAgIC8vCisg
ICAgLy8gcmVnVDIgbm93IHBvaW50cyBhdDoKKyAgICAvLworICAgIC8vICAgICBvcmlnU1AgKyBO
dW1BcmdzICogOAorICAgIC8vICAgPSBhZGpTUCArIG9mZnNldCArIE51bUFyZ3MgKiA4CisgICAg
Ly8gCisgICAgLy8gU28gaWYgd2Ugc3VidHJhY3Qgb2Zmc2V0IGFuZCB0aGVuIGFkZCBKU1N0YWNr
OjpDYWxsRnJhbWVIZWFkZXJTaXplIGFuZCBzdWJ0cmFjdAorICAgIC8vIEpTU3RhY2s6OkNhbGxl
ckZyYW1lQW5kUENTaXplLCB3ZSdsbCBnZXQgdGhlIHRoaW5nIHdlIHdhbnQuCisgICAgcHRyZGlm
Zl90IGN1cnJlbnRPZmZzZXQgPSAtb2Zmc2V0ICsgc2l6ZW9mKFJlZ2lzdGVyKSAqICgKKyAgICAg
ICAgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5k
UENTaXplKTsKKyAgICBqaXQubG9hZFB0cihBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5m
bzo6cmVnVDIsIGN1cnJlbnRPZmZzZXQpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgCisgICAgZm9y
IChHUFJSZWcgZ3ByID0gQXNzZW1ibHlIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGdwciA8PSBB
c3NlbWJseUhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBncHIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+
KGdwciArIDEpKSB7CisgICAgICAgIGlmICghdG9TYXZlLmdldChncHIpKQorICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKKyAg
ICAgICAgaml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDIs
IGN1cnJlbnRPZmZzZXQpLCBncHIpOworICAgIH0KKyAgICAKKyAgICAvLyBUaHVua3MgbGlrZSB0
aGlzIHJlbHkgb24gdGhlIEFyZ3VtZW50Q291bnQgYmVpbmcgaW50YWN0LiBQYXkgaXQgZm9yd2Fy
ZC4KKyAgICBqaXQuc3RvcmUzMigKKyAgICAgICAgR1BSSW5mbzo6cmVnVDQsCisgICAgICAgIEFz
c2VtYmx5SGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsCisgICAgICAgICAgICAoSlNTdGFjazo6QXJndW1lbnRDb3VudCAt
IEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSAqIHNpemVvZihSZWdpc3RlcikgKyBQYXls
b2FkT2Zmc2V0KSk7CisgICAgCisgICAgaWYgKCFBU1NFUlRfRElTQUJMRUQpIHsKKyAgICAgICAg
QXNzZW1ibHlIZWxwZXJzOjpKdW1wIG9rID0gaml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgIEFz
c2VtYmx5SGVscGVyczo6QWJvdmUsIEdQUkluZm86OnJlZ1QxLCBBc3NlbWJseUhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoc3RhdGljX2Nhc3Q8c2l6ZV90PigweDEwMDApKSk7CisgICAgICAgIGppdC5i
cmVha3BvaW50KCk7CisgICAgICAgIG9rLmxpbmsoJmppdCk7CisgICAgfQorICAgIAorICAgIGpp
dC5qdW1wKEdQUkluZm86OnJlZ1QxKTsKKyNlbHNlIC8vIEVOQUJMRShGVExfSklUKQorICAgIFVO
VVNFRF9QQVJBTShqaXQpOworICAgIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOworI2VuZGlm
IC8vIEVOQUJMRShGVExfSklUKQorfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcmVnaXN0ZXJS
ZXN0b3JhdGlvblRodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICBBc3NlbWJseUhlbHBlcnMg
aml0KHZtLCAwKTsKKyAgICBnZW5lcmF0ZVJlZ2lzdGVyUmVzdG9yYXRpb24oaml0KTsKKyAgICBM
aW5rQnVmZmVyIGxpbmtCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgIHJl
dHVybiBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsICgiUmVnaXN0ZXIgcmVzdG9yYXRpb24gdGh1
bmsiKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldy
YXBwZXJHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5l
cmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25XcmFwcGVyR2VuZXJhdG9yX2gKKyNkZWZpbmUgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVy
R2VuZXJhdG9yX2gKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJBcml0eUNoZWNrTW9k
ZS5oIgorI2luY2x1ZGUgIkFzc2VtYmx5SGVscGVycy5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1i
bGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlZNLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitSZWdp
c3RlclNldCByZWdpc3RlcnNUb1ByZXNlcnZlKCk7CisKK3B0cmRpZmZfdCByZWdpc3RlclByZXNl
cnZhdGlvbk9mZnNldCgpOworCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2VuZXJhdGVSZWdpc3Rl
clByZXNlcnZhdGlvbldyYXBwZXIoVk0mLCBFeGVjdXRhYmxlQmFzZSosIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciB0YXJnZXQpOworCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcmVnaXN0ZXJSZXN0b3Jh
dGlvblRodW5rR2VuZXJhdG9yKFZNKik7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYg
Ly8gRU5BQkxFKEpJVCkKKworI2VuZGlmIC8vIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdl
bmVyYXRvcl9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsMTEgKzUxLDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAvLyB0aGF0IHdvdWxkIG9yZGluYXJpbHkgaGF2ZSB3ZWxsLWtub3duIHZh
bHVlczoKIC8vIC0gdGFnVHlwZU51bWJlclJlZ2lzdGVyCiAvLyAtIHRhZ01hc2tSZWdpc3Rlcgot
Ly8gLSBjYWxsRnJhbWVSZWdpc3RlciAqKgotLy8KLS8vIFdlIGN1cnJlbnRseSBvbmx5IHVzZSB0
aGUgY2FsbEZyYW1lUmVnaXN0ZXIgZm9yIGNsb3N1cmUgY2FsbCBwYXRjaGluZywgYW5kIHdlJ3Jl
IG5vdCBnb2luZyB0bwotLy8gZ2l2ZSB0aGUgRlRMIGNsb3N1cmUgY2FsbCBwYXRjaGluZyBzdXBw
b3J0IHVudGlsIHdlIHN3aXRjaCB0byB0aGUgQyBzdGFjayAtIGJ1dCB3aGVuIHdlIGRvIHRoYXQs
Ci0vLyBjYWxsRnJhbWVSZWdpc3RlciB3aWxsIGRpc2FwcGVhci4KIAogc3RhdGljIEZ1bmN0aW9u
UHRyIHJlYWRDYWxsVGFyZ2V0KFJlcGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIsIENvZGVMb2Nh
dGlvbkNhbGwgY2FsbCkKIHsKQEAgLTI5OCwyMyArMjkzLDIzIEBAIHN0YXRpYyBQcm90b0NoYWlu
R2VuZXJhdGlvblJlc3VsdCBnZW5lcmEKICNlbmRpZgogICAgICAgICB9CiAgICAgfQorCiAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgb3BlcmF0aW9uQ2FsbDsKICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBoYW5kbGVyQ2FsbDsKICAgICBGdW5jdGlvblB0ciBvcGVyYXRpb25GdW5jdGlvbjsKICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzLCBmYWlsOwogICAgIGlmIChpc0FjY2Vzc29y
KSB7Ci0gICAgICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IHN0YXRpY19jYXN0PEdQUlJl
Zz4oc3R1YkluZm8ucGF0Y2guY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgICAgICBpZiAoc2xvdC5p
c0NhY2hlYWJsZUdldHRlcigpKSB7Ci0gICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRz
KGNhbGxGcmFtZVJlZ2lzdGVyLCBzY3JhdGNoR1BSLCByZXN1bHRHUFIpOworICAgICAgICAgICAg
c3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoc2NyYXRjaEdQUiwgcmVzdWx0R1BS
KTsKICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEdldHRlcjsK
ICAgICAgICAgfSBlbHNlIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgLy8gRW5j
b2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgICAg
ICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihwcm90b09iamVjdCksIHNjcmF0Y2hHUFIsIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkpKTsKKyAgICAgICAgICAgIHN0
dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKHByb3RvT2JqZWN0KSwgc2NyYXRjaEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpOwogICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rp
b24gPSBGdW5jdGlvblB0cihzbG90LmN1c3RvbUdldHRlcigpKTsKICNlbHNlCiAgICAgICAgICAg
ICBzdHViSml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJvdG9PYmplY3Qp
LCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZy
YW1lUmVnaXN0ZXIsIHNjcmF0Y2hHUFIsCisgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShzY3JhdGNoR1BSLAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tUHRyKEZ1bmN0aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpLmV4ZWN1
dGFibGVBZGRyZXNzKCkpLAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkpKTsKICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0
aW9uID0gb3BlcmF0aW9uQ2FsbEN1c3RvbUdldHRlcjsKQEAgLTM1MCw5ICszNDUsMTAgQEAgc3Rh
dGljIFByb3RvQ2hhaW5HZW5lcmF0aW9uUmVzdWx0IGdlbmVyYQogICAgICAgICBwYXRjaEJ1ZmZl
ci5saW5rKG9wZXJhdGlvbkNhbGwsIG9wZXJhdGlvbkZ1bmN0aW9uKTsKICAgICAgICAgcGF0Y2hC
dWZmZXIubGluayhoYW5kbGVyQ2FsbCwgbG9va3VwRXhjZXB0aW9uSGFuZGxlcik7CiAgICAgfQot
ICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfREZHX1NUVUIoCi0gICAgICAgIHBh
dGNoQnVmZmVyLAotICAgICAgICAoIkRGRyBwcm90b3R5cGUgY2hhaW4gYWNjZXNzIHN0dWIgZm9y
ICVzLCByZXR1cm4gcG9pbnQgJXAiLAorICAgIAorICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVf
Q09ERV9GT1JfU1RVQigKKyAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVyLAor
ICAgICAgICAoIlByb3RvdHlwZSBjaGFpbiBhY2Nlc3Mgc3R1YiBmb3IgJXMsIHJldHVybiBwb2lu
dCAlcCIsCiAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9jaygpKS5kYXRhKCks
IHN1Y2Nlc3NMYWJlbC5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgcmV0dXJuIFByb3RvQ2hh
aW5HZW5lcmF0aW9uU3VjY2VlZGVkOwogfQpAQCAtNDEyLDkgKzQwOCw5IEBAIHN0YXRpYyBib29s
IHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGUKICAgICAgICAgCiAgICAgICAgIGxpbmtSZXN0
b3JlU2NyYXRjaChwYXRjaEJ1ZmZlciwgbmVlZFRvUmVzdG9yZVNjcmF0Y2gsIHN0dWJJbmZvLCBz
dWNjZXNzLCBmYWlsLCBmYWlsdXJlQ2FzZXMpOwogICAgICAgICAKLSAgICAgICAgc3R1YkluZm8u
c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdfU1RVQigKLSAgICAgICAgICAgIHBh
dGNoQnVmZmVyLAotICAgICAgICAgICAgKCJERkcgR2V0QnlJZCBhcnJheSBsZW5ndGggc3R1YiBm
b3IgJXMsIHJldHVybiBwb2ludCAlcCIsCisgICAgICAgIHN0dWJJbmZvLnN0dWJSb3V0aW5lID0g
RklOQUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBw
YXRjaEJ1ZmZlciwKKyAgICAgICAgICAgICgiR2V0QnlJZCBhcnJheSBsZW5ndGggc3R1YiBmb3Ig
JXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICAgICAgdG9DU3RyaW5nKCpleGVjLT5j
b2RlQmxvY2soKSkuZGF0YSgpLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9m
ZnNldCgKICAgICAgICAgICAgICAgICAgICAgc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9Eb25l
KS5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgICAgIApAQCAtNTcyLDcgKzU2OCw2IEBAIHN0
YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXQKICAgICAgICAgCiAgICAgICAg
IHN0dWJJbmZvLnUuZ2V0QnlJZFNlbGZMaXN0Lmxpc3RTaXplKys7CiAgICAgICAgIAotICAgICAg
ICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZv
LnBhdGNoLmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBzdGF0
aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLmJhc2VHUFIpOwogI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCiAgICAgICAgIEdQUlJlZyByZXN1bHRUYWdHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+
KHN0dWJJbmZvLnBhdGNoLnZhbHVlVGFnR1BSKTsKQEAgLTU5Niw2ICs1OTEsMTAgQEAgc3RhdGlj
IGJvb2wgdHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdAogICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBzdWNjZXNzOwogICAgICAgICAKICAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVH
ZXR0ZXIoKSB8fCBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkpIHsKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGNvZGUgc2hvdWxkbid0IGJlIGFzc3VtaW5nIHRoYXQgdGhlIHRvcCBvZiBzdGFj
ayBpcyBzZXQgdXAgZm9yIEpTQworICAgICAgICAgICAgLy8gSklULXN0eWxlIEMgY2FsbHMsIHNp
bmNlIHdlIG1heSBiZSBjdXJyZW50bHkgb24gdG9wIG9mIGFuIEZUTCBmcmFtZS4KKyAgICAgICAg
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU3MTEKKyAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVHZXR0ZXIoKSkgewog
ICAgICAgICAgICAgICAgIEFTU0VSVChzY3JhdGNoR1BSICE9IEludmFsaWRHUFJSZWcpOwogICAg
ICAgICAgICAgICAgIEFTU0VSVChiYXNlR1BSICE9IHNjcmF0Y2hHUFIpOwpAQCAtNjEzLDE2ICs2
MTIsMTYgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdAogICAgICAg
ICAgICAgICAgICAgICBzdHViSml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzY3Jh
dGNoR1BSLCBvZmZzZXRSZWxhdGl2ZVRvQmFzZShzbG90LmNhY2hlZE9mZnNldCgpKSksIHNjcmF0
Y2hHUFIpOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHN0dWJK
aXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsIHNjcmF0Y2hHUFIp
OworICAgICAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGJh
c2VHUFIsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0g
b3BlcmF0aW9uQ2FsbEdldHRlcjsKICAgICAgICAgICAgIH0gZWxzZSB7CiAjaWYgVVNFKEpTVkFM
VUU2NCkKICAgICAgICAgICAgICAgICAvLyBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYyko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1l
bnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBiYXNlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKKyAgICAgICAgICAgICAgICBzdHViSml0LnNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShiYXNlR1BSLCBiYXNlR1BSLCBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKICAgICAgICAgICAgICAgICBvcGVyYXRp
b25GdW5jdGlvbiA9IEZ1bmN0aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpOwogI2Vsc2UKLSAg
ICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKAotICAgICAgICAgICAgICAgICAg
ICBjYWxsRnJhbWVSZWdpc3RlciwgYmFzZUdQUiwKKyAgICAgICAgICAgICAgICBzdHViSml0LnNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgYmFzZUdQUiwK
ICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoRnVuY3Rp
b25QdHIoc2xvdC5jdXN0b21HZXR0ZXIoKSkuZXhlY3V0YWJsZUFkZHJlc3MoKSksCiAgICAgICAg
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSkp
OwogICAgICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEN1c3Rv
bUdldHRlcjsKQEAgLTY0NCw3ICs2NDMsNyBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURM
aXN0KEV4ZWNTdGF0CiAjZW5kaWYKICAgICAgICAgICAgIHN1Y2Nlc3MgPSBzdHViSml0LmVtaXRF
eGNlcHRpb25DaGVjayhDQ2FsbEhlbHBlcnM6OkludmVydGVkRXhjZXB0aW9uQ2hlY2spOwogICAg
ICAgICAgICAgCi0gICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7
CisgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cih2bSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICAgICAgICAgIGhh
bmRsZXJDYWxsID0gc3R1YkppdC5jYWxsKCk7CiAgICAgICAgICAgICBzdHViSml0Lmp1bXBUb0V4
Y2VwdGlvbkhhbmRsZXIoKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTY4NCw5ICs2ODMsOSBAQCBz
dGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAgICAgICAgIAogICAgICAg
ICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lID0KICAgICAgICAgICAgIGNyZWF0
ZUpJVFN0dWJSb3V0aW5lKAotICAgICAgICAgICAgICAgIEZJTkFMSVpFX0RGR19DT0RFKAotICAg
ICAgICAgICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgKCJERkcg
R2V0QnlJZCBwb2x5bW9ycGhpYyBsaXN0IGFjY2VzcyBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIs
CisgICAgICAgICAgICAgICAgRklOQUxJWkVfQ09ERV9GT1IoCisgICAgICAgICAgICAgICAgICAg
IGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgKCJH
ZXRCeUlkIHBvbHltb3JwaGljIGxpc3QgYWNjZXNzIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRh
dGEoKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9Eb25lKS5leGVj
dXRhYmxlQWRkcmVzcygpKSksCiAgICAgICAgICAgICAgICAgKnZtLApAQCAtNzc1LDcgKzc3NCw3
IEBAIHN0YXRpYyBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJIGFwcHJvcHJpYXQKIH0KIAogI2lmIEVO
QUJMRShHR0MpCi1zdGF0aWMgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgc3RvcmVUb1dyaXRlQmFycmll
ckJ1ZmZlcihDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVnIGNlbGwsIEdQUlJlZyBzY3JhdGNoMSwg
R1BSUmVnIHNjcmF0Y2gyLCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIFNjcmF0Y2hSZWdpc3Rl
ckFsbG9jYXRvciYgYWxsb2NhdG9yKQorc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHN0b3Jl
VG9Xcml0ZUJhcnJpZXJCdWZmZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBjZWxsLCBHUFJS
ZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBh
bGxvY2F0b3IpCiB7CiAgICAgQVNTRVJUKHNjcmF0Y2gxICE9IHNjcmF0Y2gyKTsKICAgICBXcml0
ZUJhcnJpZXJCdWZmZXIqIHdyaXRlQmFycmllckJ1ZmZlciA9ICZqaXQudm0oKS0+aGVhcC53cml0
ZUJhcnJpZXJCdWZmZXIoKTsKQEAgLTgwOCw3ICs4MDcsNyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgc3RvcmVUb1dyaXRlCiAgICAgaWYgKGJ5dGVzVG9TdWJ0cmFjdCkKICAgICAgICAg
aml0LnN1YlB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKGJ5dGVzVG9TdWJ0cmFjdCks
IE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7IAogCi0gICAgaml0LnNldHVw
QXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBjZWxsKTsKKyAgICBqaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGNlbGwpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBq
aXQuY2FsbCgpOwogCiAgICAgaWYgKGJ5dGVzVG9TdWJ0cmFjdCkKQEAgLTgyMCwxMyArODE5LDEz
IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBzdG9yZVRvV3JpdGUKICAgICByZXR1cm4g
Y2FsbDsKIH0KIAotc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdyaXRlQmFycmllcihDQ2Fs
bEhlbHBlcnMmIGppdCwgR1BSUmVnIG93bmVyLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3Jh
dGNoMiwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3Im
IGFsbG9jYXRvcikKK3N0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXIoQ0Nh
bGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBvd25lciwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2Ny
YXRjaDIsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciYgYWxsb2NhdG9yKQogewogICAgIEFTU0VS
VChvd25lciAhPSBzY3JhdGNoMSk7CiAgICAgQVNTRVJUKG93bmVyICE9IHNjcmF0Y2gyKTsKIAog
ICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRlZmluaXRlbHlOb3RNYXJrZWQgPSBERkc6OlNwZWN1
bGF0aXZlSklUOjpnZW5lcmljV3JpdGVCYXJyaWVyKGppdCwgb3duZXIsIHNjcmF0Y2gxLCBzY3Jh
dGNoMik7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IHN0b3JlVG9Xcml0ZUJhcnJp
ZXJCdWZmZXIoaml0LCBvd25lciwgc2NyYXRjaDEsIHNjcmF0Y2gyLCBjYWxsRnJhbWVSZWdpc3Rl
ciwgYWxsb2NhdG9yKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gc3RvcmVUb1dy
aXRlQmFycmllckJ1ZmZlcihqaXQsIG93bmVyLCBzY3JhdGNoMSwgc2NyYXRjaDIsIGFsbG9jYXRv
cik7CiAgICAgZGVmaW5pdGVseU5vdE1hcmtlZC5saW5rKCZqaXQpOwogICAgIHJldHVybiBjYWxs
OwogfQpAQCAtODQ0LDkgKzg0Myw2IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRSZXBsYWNlU3R1YigK
ICAgICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+JiBzdHViUm91dGluZSkKIHsKICAgICBWTSogdm0g
PSAmZXhlYy0+dm0oKTsKLSNpZiBFTkFCTEUoR0dDKQotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdp
c3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guY2FsbEZyYW1lUmVnaXN0
ZXIpOwotI2VuZGlmCiAgICAgR1BSUmVnIGJhc2VHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0
dWJJbmZvLnBhdGNoLmJhc2VHUFIpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgR1BSUmVn
IHZhbHVlVGFnR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1ZVRh
Z0dQUik7CkBAIC04OTMsNyArODg5LDcgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFJlcGxhY2VTdHVi
KAogI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKEdHQykKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCB3cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJpZXIoc3R1YkppdCwgYmFzZUdQUiwg
c2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBjYWxsRnJhbWVSZWdpc3RlciwgYWxsb2NhdG9yKTsK
KyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0ZUJh
cnJpZXIoc3R1YkppdCwgYmFzZUdQUiwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBhbGxvY2F0
b3IpOwogI2VuZGlmCiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzczsKQEAg
LTkxOCw5ICs5MTQsOSBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0UmVwbGFjZVN0dWIoCiAgICAgcGF0
Y2hCdWZmZXIubGluayhzdWNjZXNzLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxB
dE9mZnNldChzdHViSW5mby5wYXRjaC5kZWx0YUNhbGxUb0RvbmUpKTsKICAgICBwYXRjaEJ1ZmZl
ci5saW5rKGZhaWx1cmUsIGZhaWx1cmVMYWJlbCk7CiAgICAgICAgICAgICAKLSAgICBzdHViUm91
dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX0RGR19TVFVCKAotICAgICAgICBwYXRjaEJ1ZmZlciwK
LSAgICAgICAgKCJERkcgUHV0QnlJZCByZXBsYWNlIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQg
JXAiLAorICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAgICAg
ZXhlYy0+Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVyLAorICAgICAgICAoIlB1dEJ5SWQgcmVwbGFj
ZSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKICAgICAgICAgICAgIHRvQ1N0cmluZygq
ZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxh
YmVsQXRPZmZzZXQoCiAgICAgICAgICAgICAgICAgc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9E
b25lKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiB9CkBAIC05NDAsNyArOTM2LDYgQEAgc3RhdGlj
IHZvaWQgZW1pdFB1dFRyYW5zaXRpb25TdHViKAogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgp
OwogCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihz
dHViSW5mby5wYXRjaC5jYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgR1BSUmVnIGJhc2VHUFIgPSBz
dGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLmJhc2VHUFIpOwogI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCiAgICAgR1BSUmVnIHZhbHVlVGFnR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihz
dHViSW5mby5wYXRjaC52YWx1ZVRhZ0dQUik7CkBAIC0xMDYwLDcgKzEwNTUsNyBAQCBzdGF0aWMg
dm9pZCBlbWl0UHV0VHJhbnNpdGlvblN0dWIoCiAjZW5kaWYKICAgICAKICNpZiBFTkFCTEUoR0dD
KQotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdyaXRlQmFycmllck9wZXJhdGlvbiA9IHdyaXRl
QmFycmllcihzdHViSml0LCBiYXNlR1BSLCBzY3JhdGNoR1BSMSwgc2NyYXRjaEdQUjIsIGNhbGxG
cmFtZVJlZ2lzdGVyLCBhbGxvY2F0b3IpOworICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdyaXRl
QmFycmllck9wZXJhdGlvbiA9IHdyaXRlQmFycmllcihzdHViSml0LCBiYXNlR1BSLCBzY3JhdGNo
R1BSMSwgc2NyYXRjaEdQUjIsIGFsbG9jYXRvcik7CiAjZW5kaWYKICAgICAKICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBzdWNjZXNzOwpAQCAtMTA4Niw5ICsxMDgxLDkgQEAgc3RhdGljIHZvaWQg
ZW1pdFB1dFRyYW5zaXRpb25TdHViKAogICAgICAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVm
ZmVyID0gdm0tPnNjcmF0Y2hCdWZmZXJGb3JTaXplKGFsbG9jYXRvci5kZXNpcmVkU2NyYXRjaEJ1
ZmZlclNpemUoKSk7CiAgICAgICAgIGFsbG9jYXRvci5wcmVzZXJ2ZVVzZWRSZWdpc3RlcnNUb1Nj
cmF0Y2hCdWZmZXIoc3R1YkppdCwgc2NyYXRjaEJ1ZmZlciwgc2NyYXRjaEdQUjEpOwogI2lmIFVT
RShKU1ZBTFVFNjQpCi0gICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVn
aXN0ZXIsIGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0cnVjdHVyZSks
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRPZmZzZXQoKSksIHZhbHVl
R1BSKTsKKyAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQ
UiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMihzbG90LmNhY2hlZE9mZnNldCgpKSwgdmFsdWVHUFIpOwogI2Vsc2UK
LSAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgYmFzZUdQ
UiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMihzbG90LmNhY2hlZE9mZnNldCgpKSwgdmFsdWVHUFIsIHZhbHVlVGFn
R1BSKTsKKyAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQ
UiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMihzbG90LmNhY2hlZE9mZnNldCgpKSwgdmFsdWVHUFIsIHZhbHVlVGFn
R1BSKTsKICNlbmRpZgogICAgICAgICBvcGVyYXRpb25DYWxsID0gc3R1YkppdC5jYWxsKCk7CiAg
ICAgICAgIGFsbG9jYXRvci5yZXN0b3JlVXNlZFJlZ2lzdGVyc0Zyb21TY3JhdGNoQnVmZmVyKHN0
dWJKaXQsIHNjcmF0Y2hCdWZmZXIsIHNjcmF0Y2hHUFIxKTsKQEAgLTExMTEsOSArMTEwNiw5IEBA
IHN0YXRpYyB2b2lkIGVtaXRQdXRUcmFuc2l0aW9uU3R1YigKICAgICAKICAgICBzdHViUm91dGlu
ZSA9CiAgICAgICAgIGNyZWF0ZUpJVFN0dWJSb3V0aW5lKAotICAgICAgICAgICAgRklOQUxJWkVf
REZHX0NPREUoCi0gICAgICAgICAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICAgICAgICAg
KCJERkcgUHV0QnlJZCAlc3RyYW5zaXRpb24gc3R1YiAoJXAgLT4gJXApIGZvciAlcywgcmV0dXJu
IHBvaW50ICVwIiwKKyAgICAgICAgICAgIEZJTkFMSVpFX0NPREVfRk9SKAorICAgICAgICAgICAg
ICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAgICAgICAoIlB1
dEJ5SWQgJXN0cmFuc2l0aW9uIHN0dWIgKCVwIC0+ICVwKSBmb3IgJXMsIHJldHVybiBwb2ludCAl
cCIsCiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSAh
PSBvbGRTdHJ1Y3R1cmUtPm91dE9mTGluZUNhcGFjaXR5KCkgPyAicmVhbGxvY2F0aW5nICIgOiAi
IiwKICAgICAgICAgICAgICAgICAgICAgb2xkU3RydWN0dXJlLCBzdHJ1Y3R1cmUsCiAgICAgICAg
ICAgICAgICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwgc3R1Yklu
Zm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoCkBAIC0xMzk0LDkgKzEzODksOSBA
QCBzdGF0aWMgYm9vbCB0cnlSZXBhdGNoSW4oCiAKICAgICAgICAgbGlua1Jlc3RvcmVTY3JhdGNo
KHBhdGNoQnVmZmVyLCBuZWVkVG9SZXN0b3JlU2NyYXRjaCwgc3VjY2VzcywgZmFpbCwgZmFpbHVy
ZUNhc2VzLCBzdWNjZXNzTGFiZWwsIHNsb3dDYXNlTGFiZWwpOwogICAgICAgICAKLSAgICAgICAg
c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdfU1RVQigKLSAgICAgICAgICAgIHBh
dGNoQnVmZmVyLAotICAgICAgICAgICAgKCJERkcgSW4gKGZvdW5kID0gJXMpIHN0dWIgZm9yICVz
LCByZXR1cm4gcG9pbnQgJXAiLAorICAgICAgICBzdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVf
Rk9SX1NUVUIoCisgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisg
ICAgICAgICAgICAoIkluIChmb3VuZCA9ICVzKSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVw
IiwKICAgICAgICAgICAgICAgICB3YXNGb3VuZCA/ICJ5ZXMiIDogIm5vIiwgdG9DU3RyaW5nKCpl
eGVjLT5jb2RlQmxvY2soKSkuZGF0YSgpLAogICAgICAgICAgICAgICAgIHN1Y2Nlc3NMYWJlbC5l
eGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgfQpAQCAtMTQxOSwxNyArMTQxNCwxOSBAQCB2b2lk
IHJlcGF0Y2hJbigKICAgICByZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8u
Y2FsbFJldHVybkxvY2F0aW9uLCBvcGVyYXRpb25Jbik7CiB9CiAKLXN0YXRpYyB2b2lkIGxpbmtT
bG93Rm9yKFJlcGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIsIFZNKiB2bSwgQ2FsbExpbmtJbmZv
JiBjYWxsTGlua0luZm8sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK3N0YXRpYyB2b2lk
IGxpbmtTbG93Rm9yKAorICAgIFJlcGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIsIFZNKiB2bSwg
Q2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sCisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBr
aW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewotICAgIGlmIChraW5k
ID09IENvZGVGb3JDYWxsKSB7Ci0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5r
SW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtH
ZW5lcmF0b3IpLmNvZGUoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgQVNTRVJUKGtp
bmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExp
bmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIodmlydHVhbENvbnN0cnVj
dFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKAorICAg
ICAgICBjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLAorICAgICAgICB2bS0+Z2V0Q1RJ
U3R1Yih2aXJ0dWFsVGh1bmtHZW5lcmF0b3JGb3Ioa2luZCwgcmVnaXN0ZXJzKSkuY29kZSgpKTsK
IH0KIAotdm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlu
a0luZm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQp
Cit2b2lkIGxpbmtGb3IoCisgICAgRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxM
aW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssCisgICAgSlNGdW5jdGlvbiogY2Fs
bGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciwgQ29kZVNwZWNpYWxpemF0aW9uS2lu
ZCBraW5kLAorICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAg
QVNTRVJUKCFjYWxsTGlua0luZm8uc3R1Yik7CiAgICAgCkBAIC0xNDQ1LDMxICsxNDQyLDM4IEBA
IHZvaWQgbGlua0ZvcihFeGVjU3RhdGUqIGV4ZWMsIENhbGxMaW5rSW4KICAgICBBU1NFUlQoIWNh
bGxMaW5rSW5mby5pc0xpbmtlZCgpKTsKICAgICBjYWxsTGlua0luZm8uY2FsbGVlLnNldChleGVj
LT5jYWxsZXJGcmFtZSgpLT52bSgpLCBjYWxsTGlua0luZm8uaG90UGF0aEJlZ2luLCBjYWxsZXJD
b2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBjYWxsZWUpOwogICAgIGNhbGxMaW5rSW5mby5s
YXN0U2VlbkNhbGxlZS5zZXQoZXhlYy0+Y2FsbGVyRnJhbWUoKS0+dm0oKSwgY2FsbGVyQ29kZUJs
b2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVlKTsKKyAgICBpZiAoc2hvdWxkU2hvd0Rpc2Fz
c2VtYmx5Rm9yKGNhbGxlckNvZGVCbG9jaykpCisgICAgICAgIGRhdGFMb2coIkxpbmtpbmcgY2Fs
bCBpbiAiLCAqY2FsbGVyQ29kZUJsb2NrLCAiIGF0ICIsIGNhbGxMaW5rSW5mby5jb2RlT3JpZ2lu
LCAiIHRvICIsIHBvaW50ZXJEdW1wKGNhbGxlZUNvZGVCbG9jayksICIsIGVudHJ5cG9pbnQgYXQg
IiwgY29kZVB0ciwgIlxuIik7CiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZv
LmhvdFBhdGhPdGhlciwgY29kZVB0cik7CiAgICAgCiAgICAgaWYgKGNhbGxlZUNvZGVCbG9jaykK
ICAgICAgICAgY2FsbGVlQ29kZUJsb2NrLT5saW5rSW5jb21pbmdDYWxsKGV4ZWMtPmNhbGxlckZy
YW1lKCksICZjYWxsTGlua0luZm8pOwogICAgIAogICAgIGlmIChraW5kID09IENvZGVGb3JDYWxs
KSB7Ci0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJu
TG9jYXRpb24sIHZtLT5nZXRDVElTdHViKGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKS5j
b2RlKCkpOworICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8uY2FsbFJl
dHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRv
ckZvcihyZWdpc3RlcnMpKS5jb2RlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAog
ICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwotICAgIGxpbmtTbG93Rm9yKHJl
cGF0Y2hCdWZmZXIsIHZtLCBjYWxsTGlua0luZm8sIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIGxp
bmtTbG93Rm9yKHJlcGF0Y2hCdWZmZXIsIHZtLCBjYWxsTGlua0luZm8sIENvZGVGb3JDb25zdHJ1
Y3QsIHJlZ2lzdGVycyk7CiB9CiAKLXZvaWQgbGlua1Nsb3dGb3IoRXhlY1N0YXRlKiBleGVjLCBD
YWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQor
dm9pZCBsaW5rU2xvd0ZvcigKKyAgICBFeGVjU3RhdGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2Fs
bExpbmtJbmZvLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsCisgICAgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9j
ayA9IGV4ZWMtPmNhbGxlckZyYW1lKCktPmNvZGVCbG9jaygpOwogICAgIFZNKiB2bSA9IGNhbGxl
ckNvZGVCbG9jay0+dm0oKTsKICAgICAKICAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIo
Y2FsbGVyQ29kZUJsb2NrKTsKICAgICAKLSAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2
bSwgY2FsbExpbmtJbmZvLCBraW5kKTsKKyAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2
bSwgY2FsbExpbmtJbmZvLCBraW5kLCByZWdpc3RlcnMpOwogfQogCi12b2lkIGxpbmtDbG9zdXJl
Q2FsbChFeGVjU3RhdGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlQmxv
Y2sqIGNhbGxlZUNvZGVCbG9jaywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEV4ZWN1dGFibGVCYXNl
KiBleGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikKK3ZvaWQgbGlua0Ns
b3N1cmVDYWxsKAorICAgIEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0lu
Zm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLAorICAgIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQ
dHIsCisgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBBU1NF
UlQoIWNhbGxMaW5rSW5mby5zdHViKTsKICAgICAKQEAgLTE0ODIsNiArMTQ4NiwxNSBAQCB2b2lk
IGxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIENhCiAgICAgCiAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKICAgICAKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0VG9GcmFt
ZSA9IC1zaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyk7CisKKyAgICBpZiAoIUFTU0VSVF9ESVNBQkxF
RCkgeworICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgb2tBcmd1bWVudENvdW50ID0gc3R1Ykpp
dC5icmFuY2gzMigKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6QmVsb3csIENDYWxsSGVscGVy
czo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzdGF0aWNfY2Fz
dDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpBcmd1bWVudENvdW50KSAr
IG9mZnNldFRvRnJhbWUgKyBQYXlsb2FkT2Zmc2V0KSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoMTAwMDAwMDApKTsKKyAgICAgICAgc3R1YkppdC5icmVha3BvaW50KCk7CisgICAgICAgIG9r
QXJndW1lbnRDb3VudC5saW5rKCZzdHViSml0KTsKKyAgICB9CisgICAgICAgICAgICAKICNpZiBV
U0UoSlNWQUxVRTY0KQogICAgIC8vIFdlIGNhbiBzYWZlbHkgY2xvYmJlciBldmVyeXRoaW5nIGV4
Y2VwdCB0aGUgY2FsbGVlR1BSLiBXZSBjYW4ndCByZWx5IG9uIHRhZ01hc2tSZWdpc3RlcgogICAg
IC8vIGJlaW5nIHNldC4gU28gd2UgZG8gdGhpcyB0aGUgaGFyZCB3YXkuCkBAIC0xNTA3LDE4ICsx
NTIwLDE4IEBAIHZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2EKICAgICBz
dHViSml0LmxvYWRQdHIoCiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhjYWxsZWVHUFIs
IEpTRnVuY3Rpb246Om9mZnNldE9mU2NvcGVDaGFpbigpKSwKICAgICAgICAgR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIpOwotCisgICAgCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBzdHViSml0LnN0
b3JlNjQoCiAgICAgICAgIEdQUkluZm86OnJldHVyblZhbHVlR1BSLAotICAgICAgICBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0
cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pKSk7CisgICAg
ICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6
OlNjb3BlQ2hhaW4pICsgb2Zmc2V0VG9GcmFtZSkpOwogI2Vsc2UKICAgICBzdHViSml0LnN0b3Jl
UHRyKAogICAgICAgICBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwKLSAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSArIE9CSkVDVF9P
RkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpKTsKKyAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdp
c3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6
U2NvcGVDaGFpbikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNC
aXRzLnBheWxvYWQpICsgb2Zmc2V0VG9GcmFtZSkpOwogICAgIHN0dWJKaXQuc3RvcmUzMigKICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAg
ICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3Rh
dGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFp
bikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykp
KTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1Bv
aW50ZXJSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpICog
SlNTdGFjazo6U2NvcGVDaGFpbikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3Jp
cHRvciwgYXNCaXRzLnRhZykgKyBvZmZzZXRUb0ZyYW1lKSk7CiAjZW5kaWYKICAgICAKICAgICBB
c3NlbWJseUhlbHBlcnM6OkNhbGwgY2FsbCA9IHN0dWJKaXQubmVhckNhbGwoKTsKQEAgLTE1Mjks
MjAgKzE1NDIsMjQgQEAgdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYQog
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgc3R1YkppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBHUFJJbmZvOjpyZWdUMSk7CiAjZW5kaWYKLSAg
ICBzdHViSml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGNhbGxMaW5rSW5mby5j
YWxsUmV0dXJuTG9jYXRpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSksIEdQUkluZm86Om5vbkFyZ0dQ
UjIpOwotICAgIHN0dWJKaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5m
bzo6bm9uQXJnR1BSMik7CisgICAgc3R1YkppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cihjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkp
LCBHUFJJbmZvOjpyZWdUMik7CisgICAgCisgICAgc3R1YkppdC5yZXN0b3JlUmV0dXJuQWRkcmVz
c0JlZm9yZVJldHVybihHUFJJbmZvOjpyZWdUMik7CiAgICAgQXNzZW1ibHlIZWxwZXJzOjpKdW1w
IHNsb3cgPSBzdHViSml0Lmp1bXAoKTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVy
KCp2bSwgJnN0dWJKaXQsIGNhbGxlckNvZGVCbG9jayk7CiAgICAgCiAgICAgcGF0Y2hCdWZmZXIu
bGluayhjYWxsLCBGdW5jdGlvblB0cihjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKLSAg
ICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUsIGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24u
bGFiZWxBdE9mZnNldCgwKSk7Ci0gICAgcGF0Y2hCdWZmZXIubGluayhzbG93LCBDb2RlTG9jYXRp
b25MYWJlbCh2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkp
KTsKKyAgICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGNhbGxlckNvZGVCbG9jay0+aml0
VHlwZSgpKSkKKyAgICAgICAgcGF0Y2hCdWZmZXIubGluayhkb25lLCBjYWxsTGlua0luZm8uY2Fs
bFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoMCkpOworICAgIGVsc2UKKyAgICAgICAgcGF0
Y2hCdWZmZXIubGluayhkb25lLCBjYWxsTGlua0luZm8uaG90UGF0aE90aGVyLmxhYmVsQXRPZmZz
ZXQoMCkpOworICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvdywgQ29kZUxvY2F0aW9uTGFiZWwodm0t
PmdldENUSVN0dWIodmlydHVhbFRodW5rR2VuZXJhdG9yRm9yKENvZGVGb3JDYWxsLCByZWdpc3Rl
cnMpKS5jb2RlKCkpKTsKICAgICAKICAgICBSZWZQdHI8Q2xvc3VyZUNhbGxTdHViUm91dGluZT4g
c3R1YlJvdXRpbmUgPSBhZG9wdFJlZihuZXcgQ2xvc3VyZUNhbGxTdHViUm91dGluZSgKLSAgICAg
ICAgRklOQUxJWkVfREZHX0NPREUoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAg
ICAgICgiREZHIGNsb3N1cmUgY2FsbCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwLCB0YXJn
ZXQgJXAgKCVzKSIsCisgICAgICAgIEZJTkFMSVpFX0NPREVfRk9SKAorICAgICAgICAgICAgY2Fs
bGVyQ29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAgICgiQ2xvc3VyZSBjYWxsIHN0
dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAsIHRhcmdldCAlcCAoJXMpIiwKICAgICAgICAgICAg
ICAgICB0b0NTdHJpbmcoKmNhbGxlckNvZGVCbG9jaykuZGF0YSgpLCBjYWxsTGlua0luZm8uY2Fs
bFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoMCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwKICAg
ICAgICAgICAgICAgICBjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCksIHRvQ1N0cmluZyhwb2lu
dGVyRHVtcChjYWxsZWVDb2RlQmxvY2spKS5kYXRhKCkpKSwKICAgICAgICAgKnZtLCBjYWxsZXJD
b2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBzdHJ1Y3R1cmUsIGV4ZWN1dGFibGUsIGNhbGxM
aW5rSW5mby5jb2RlT3JpZ2luKSk7CkBAIC0xNTUyLDcgKzE1NjksNyBAQCB2b2lkIGxpbmtDbG9z
dXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIENhCiAgICAgcmVwYXRjaEJ1ZmZlci5yZXBsYWNlV2l0
aEp1bXAoCiAgICAgICAgIFJlcGF0Y2hCdWZmZXI6OnN0YXJ0T2ZCcmFuY2hQdHJXaXRoUGF0Y2hP
blJlZ2lzdGVyKGNhbGxMaW5rSW5mby5ob3RQYXRoQmVnaW4pLAogICAgICAgICBDb2RlTG9jYXRp
b25MYWJlbChzdHViUm91dGluZS0+Y29kZSgpLmNvZGUoKSkpOwotICAgIGxpbmtTbG93Rm9yKHJl
cGF0Y2hCdWZmZXIsIHZtLCBjYWxsTGlua0luZm8sIENvZGVGb3JDYWxsKTsKKyAgICBsaW5rU2xv
d0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ2FsbCwgcmVnaXN0
ZXJzKTsKICAgICAKICAgICBjYWxsTGlua0luZm8uc3R1YiA9IHN0dWJSb3V0aW5lLnJlbGVhc2Uo
KTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAkod29ya2luZyBj
b3B5KQpAQCAtNDEsOSArNDEsOSBAQCB2b2lkIGJ1aWxkR2V0QnlJRFByb3RvTGlzdChFeGVjU3Rh
dGUqLCBKCiB2b2lkIHJlcGF0Y2hQdXRCeUlEKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElk
ZW50aWZpZXImLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIFB1
dEtpbmQpOwogdm9pZCBidWlsZFB1dEJ5SWRMaXN0KEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0
IElkZW50aWZpZXImLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYs
IFB1dEtpbmQpOwogdm9pZCByZXBhdGNoSW4oRXhlY1N0YXRlKiwgSlNDZWxsKiwgY29uc3QgSWRl
bnRpZmllciYsIGJvb2wgd2FzRm91bmQsIGNvbnN0IFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0
dWJJbmZvJik7Ci12b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJs
b2NrKiwgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIsIENvZGVTcGVj
aWFsaXphdGlvbktpbmQpOwotdm9pZCBsaW5rU2xvd0ZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0lu
Zm8mLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKLXZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNT
dGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIFN0cnVjdHVyZSosIEV4ZWN1dGFibGVC
YXNlKiwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKTsKK3ZvaWQgbGlua0ZvcihFeGVjU3RhdGUqLCBD
YWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25N
b2RlKTsKK3ZvaWQgbGlua1Nsb3dGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKTsKK3ZvaWQgbGlua0Ns
b3N1cmVDYWxsKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIFN0cnVjdHVy
ZSosIEV4ZWN1dGFibGVCYXNlKiwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyLCBSZWdpc3RlclByZXNl
cnZhdGlvbk1vZGUpOwogdm9pZCByZXNldEdldEJ5SUQoUmVwYXRjaEJ1ZmZlciYsIFN0cnVjdHVy
ZVN0dWJJbmZvJik7CiB2b2lkIHJlc2V0UHV0QnlJRChSZXBhdGNoQnVmZmVyJiwgU3RydWN0dXJl
U3R1YkluZm8mKTsKIHZvaWQgcmVzZXRJbihSZXBhdGNoQnVmZmVyJiwgU3RydWN0dXJlU3R1Yklu
Zm8mKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJ
VC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRU
aHVua0pJVC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1NwZWNpYWxpemVkVGh1bmtKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3BlY2lhbGl6ZWRUaHVua0pJVChWTSogdm0sIGludCBl
eHBlY3RlZEFyZ0NvdW50KQogICAgICAgICAgICAgOiBKU0ludGVyZmFjZUpJVCh2bSkKICAgICAg
ICAgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICAgICAgICAgIC8v
IENoZWNrIHRoYXQgd2UgaGF2ZSB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIGFyZ3VtZW50cwogICAg
ICAgICAgICAgbV9mYWlsdXJlcy5hcHBlbmQoYnJhbmNoMzIoTm90RXF1YWwsIHBheWxvYWRGb3Io
SlNTdGFjazo6QXJndW1lbnRDb3VudCksIFRydXN0ZWRJbW0zMihleHBlY3RlZEFyZ0NvdW50ICsg
MSkpKTsKICAgICAgICAgfQpAQCAtNDgsNiArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgZXhwbGljaXQgU3BlY2lhbGl6ZWRUaHVua0pJVChWTSogdm0pCiAgICAgICAgICAgICA6IEpT
SW50ZXJmYWNlSklUKHZtKQogICAgICAgICB7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9s
b2d1ZSgpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB2b2lkIGxvYWREb3VibGVBcmd1
bWVudChpbnQgYXJndW1lbnQsIEZQUmVnaXN0ZXJJRCBkc3QsIFJlZ2lzdGVySUQgc2NyYXRjaCkK
QEAgLTk3LDcgKzk5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmIChzcmMgIT0gcmVnVDApCiAgICAgICAgICAgICAgICAgbW92ZShzcmMsIHJlZ1QwKTsKLSAg
ICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpj
YWxsZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgICAgICAgICAgZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIHJldCgpOwogICAgICAgICB9CiAjZWxz
ZQpAQCAtMTA1LDcgKzEwNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAg
ICAgICBBU1NFUlRfVU5VU0VEKHBheWxvYWQsIHBheWxvYWQgPT0gcmVnVDApOwogICAgICAgICAg
ICAgQVNTRVJUX1VOVVNFRCh0YWcsIHRhZyA9PSByZWdUMSk7Ci0gICAgICAgICAgICBsb2FkUHRy
KEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQo
KSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgICAgICAgICByZXQoKTsKICAgICAgICAgfQogI2VuZGlmCkBAIC0xMzYsNyArMTM4
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBsb3dOb25aZXJvLmxpbmsodGhpcyk7
CiAgICAgICAgICAgICBoaWdoTm9uWmVyby5saW5rKHRoaXMpOwogI2VuZGlmCi0gICAgICAgICAg
ICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJh
bWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQoKTsKICAgICAgICAgfQogCkBAIC0xNDUsNyAr
MTQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBpZiAoc3JjICE9IHJlZ1QwKQog
ICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdUMCk7CiAgICAgICAgICAgICB0YWdSZXR1cm5B
c0ludDMyKCk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIs
IENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAg
ICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQoKTsKICAg
ICAgICAgfQogCkBAIC0xNTQsNyArMTU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAg
ICBpZiAoc3JjICE9IHJlZ1QwKQogICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdUMCk7CiAg
ICAgICAgICAgICB0YWdSZXR1cm5Bc0pTQ2VsbCgpOwotICAgICAgICAgICAgbG9hZFB0cihBZGRy
ZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpLCBj
YWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwog
ICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEy
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNT
dGFjay5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlNwZWNpYWxpemVkVGh1bmtKSVQuaCIKICNp
bmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+CkBAIC02NiwxMCArNjcsNyBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgdGhyb3dFeGNlcHRpb25Gcm9tCiAgICAgLy8gZXZlbiB0aG91Z2ggd2Ugd29uJ3Qg
dXNlIGl0LgogICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6
bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKIAotICAgIC8vIFRoZSBDYWxsRnJhbWUgcmVnaXN0
ZXIgcG9pbnRzIHRvIHRoZSAoZmFpbGVkKSBjYWxsZWUgZnJhbWUsIHNvIHdlIG5lZWQgdG8gcG9w
IGJhY2sgb25lIGZyYW1lLgotICAgIGppdC5lbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1l
SGVhZGVyUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLQotICAgIGppdC5zZXR1cEFy
Z3VtZW50c0V4ZWNTdGF0ZSgpOworICAgIGppdC5zZXR1cEFyZ3VtZW50cyhDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIodm0pLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgaml0
Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4obG9v
a3VwRXhjZXB0aW9uSGFuZGxlcikpLCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBlbWl0UG9p
bnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBqaXQuY2FsbChH
UFJJbmZvOjpub25BcmdHUFIwKTsKQEAgLTgyLDI5ICs4MCwyOCBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgdGhyb3dFeGNlcHRpb25Gcm9tCiBzdGF0aWMgdm9pZCBzbG93UGF0aEZvcigKICAgICBD
Q2FsbEhlbHBlcnMmIGppdCwgVk0qIHZtLCBQX0pJVE9wZXJhdGlvbl9FIHNsb3dQYXRoRnVuY3Rp
b24pCiB7Ci0gICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpu
b25BcmdHUFIyKTsKLSAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpub25B
cmdHUFIyKTsKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5m
bzo6bm9uQXJnR1BSMik7CisgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgaml0
LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAmdm0tPnRvcENhbGxGcmFtZSk7
CisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICBqaXQuYWRk
UHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIGppdC5zZXR1
cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwogICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KHNsb3dQYXRoRnVuY3Rpb24pKSwgR1BSSW5mbzo6
bm9uQXJnR1BSMCk7CiAgICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9u
QXJnR1BSMCk7CiAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7CisgICAgaWYgKG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICBqaXQuYWRkUHRyKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgCiAgICAgLy8gVGhpcyBzbG93IGNh
bGwgd2lsbCByZXR1cm4gdGhlIGFkZHJlc3Mgb2Ygb25lIG9mIHRoZSBmb2xsb3dpbmc6CiAgICAg
Ly8gMSkgRXhjZXB0aW9uIHRocm93aW5nIHRodW5rLgogICAgIC8vIDIpIEhvc3QgY2FsbCByZXR1
cm4gdmFsdWUgcmV0dXJuZXIgdGhpbmd5LgogICAgIC8vIDMpIFRoZSBmdW5jdGlvbiB0byBjYWxs
LgotICAgIGppdC5lbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86
Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7Ci0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2Fs
bEZyYW1lSGVhZGVyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigwKSk7Ci0gICAgZW1pdFBv
aW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsK
LSAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6bm9uUHJl
c2VydmVkTm9uUmV0dXJuR1BSKTsKICAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgaml0Lmp1bXAoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwogfQogCiBzdGF0aWMgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGxpbmtGb3JUaHVua0dlbmVyYXRvcigKLSAgICBWTSogdm0sIENvZGVT
cGVjaWFsaXphdGlvbktpbmQga2luZCkKKyAgICBWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktp
bmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICAvLyBU
aGUgcmV0dXJuIGFkZHJlc3MgaXMgb24gdGhlIHN0YWNrIG9yIGluIHRoZSBsaW5rIHJlZ2lzdGVy
LiBXZSB3aWxsIGhlbmNlCiAgICAgLy8gc2F2ZSB0aGUgcmV0dXJuIGFkZHJlc3MgdG8gdGhlIGNh
bGwgZnJhbWUgd2hpbGUgd2UgbWFrZSBhIEMrKyBmdW5jdGlvbiBjYWxsCkBAIC0xMTQsMzggKzEx
MSw1OSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtGb3JUaHVuCiAgICAgCiAg
ICAgQ0NhbGxIZWxwZXJzIGppdCh2bSk7CiAgICAgCi0gICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwg
a2luZCA9PSBDb2RlRm9yQ2FsbCA/IG9wZXJhdGlvbkxpbmtDYWxsIDogb3BlcmF0aW9uTGlua0Nv
bnN0cnVjdCk7CisgICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwgb3BlcmF0aW9uTGlua0ZvcihraW5k
LCByZWdpc3RlcnMpKTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2bSwgJmpp
dCwgR0xPQkFMX1RIVU5LX0lEKTsKICAgICByZXR1cm4gRklOQUxJWkVfQ09ERSgKICAgICAgICAg
cGF0Y2hCdWZmZXIsCi0gICAgICAgICgiTGluayAlcyBzbG93IHBhdGggdGh1bmsiLCBraW5kID09
IENvZGVGb3JDYWxsID8gImNhbGwiIDogImNvbnN0cnVjdCIpKTsKKyAgICAgICAgKCJMaW5rICVz
JXMgc2xvdyBwYXRoIHRodW5rIiwga2luZCA9PSBDb2RlRm9yQ2FsbCA/ICJjYWxsIiA6ICJjb25z
dHJ1Y3QiLCByZWdpc3RlcnMgPT0gTXVzdFByZXNlcnZlUmVnaXN0ZXJzID8gIiB0aGF0IHByZXNl
cnZlcyByZWdpc3RlcnMiIDogIiIpKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtD
YWxsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5l
cmF0b3Iodm0sIENvZGVGb3JDYWxsKTsKKyAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9y
KHZtLCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9CiAK
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IoVk0qIHZt
KQogewotICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1
Y3QpOworICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1
Y3QsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQogCi0vLyBGb3IgY2xvc3Vy
ZSBvcHRpbWl6YXRpb25zLCB3ZSBvbmx5IGluY2x1ZGUgY2FsbHMsIHNpbmNlIGlmIHlvdSdyZSB1
c2luZyBjbG9zdXJlcyBmb3IKLS8vIG9iamVjdCBjb25zdHJ1Y3Rpb24gdGhlbiB5b3UncmUgZ29p
bmcgdG8gbG9zZSBiaWcgdGltZSBhbnl3YXkuCi1NYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0Ns
b3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxp
bmtDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0
dXJuIGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwsIE11c3RQcmVzZXJ2ZVJl
Z2lzdGVycyk7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ29uc3RydWN0VGhhdFBy
ZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIGxpbmtGb3JU
aHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJz
KTsKK30KKworc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2xvc3VyZUNhbGxGb3JU
aHVua0dlbmVyYXRvcigKKyAgICBWTSogdm0sIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdp
c3RlcnMpCiB7CiAgICAgQ0NhbGxIZWxwZXJzIGppdCh2bSk7CiAgICAgCi0gICAgc2xvd1BhdGhG
b3Ioaml0LCB2bSwgb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsKTsKKyAgICBzbG93UGF0aEZvcihq
aXQsIHZtLCBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxGb3IocmVnaXN0ZXJzKSk7CiAgICAgCiAg
ICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7Ci0g
ICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiTGluayBjbG9zdXJlIGNhbGwg
c2xvdyBwYXRoIHRodW5rIikpOworICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVy
LCAoIkxpbmsgY2xvc3VyZSBjYWxsICVzIHNsb3cgcGF0aCB0aHVuayIsIHJlZ2lzdGVycyA9PSBN
dXN0UHJlc2VydmVSZWdpc3RlcnMgPyAiIHRoYXQgcHJlc2VydmVzIHJlZ2lzdGVycyIgOiAiIikp
OworfQorCisvLyBGb3IgY2xvc3VyZSBvcHRpbWl6YXRpb25zLCB3ZSBvbmx5IGluY2x1ZGUgY2Fs
bHMsIHNpbmNlIGlmIHlvdSdyZSB1c2luZyBjbG9zdXJlcyBmb3IKKy8vIG9iamVjdCBjb25zdHJ1
Y3Rpb24gdGhlbiB5b3UncmUgZ29pbmcgdG8gbG9zZSBiaWcgdGltZSBhbnl3YXkuCitNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQorewor
ICAgIHJldHVybiBsaW5rQ2xvc3VyZUNhbGxGb3JUaHVua0dlbmVyYXRvcih2bSwgUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5r
Q2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAg
ICByZXR1cm4gbGlua0Nsb3N1cmVDYWxsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIE11c3RQcmVzZXJ2
ZVJlZ2lzdGVycyk7CiB9CiAKIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbEZv
clRodW5rR2VuZXJhdG9yKAotICAgIFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
KQorICAgIFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNl
cnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIC8vIFRoZSBjYWxsZWUgaXMgaW4gcmVnVDAg
KGZvciBKU1ZBTFVFMzJfNjQsIHRoZSB0YWcgaXMgaW4gcmVnVDEpLgogICAgIC8vIFRoZSByZXR1
cm4gYWRkcmVzcyBpcyBvbiB0aGUgc3RhY2ssIG9yIGluIHRoZSBsaW5rIHJlZ2lzdGVyLiBXZSB3
aWxsIGhlbmNlCkBAIC0xNjAsMzMgKzE3OCwzNCBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIHZpcnR1YWxGb3JUCiAgICAgLy8gdGhlIERGRyBrbm93cyB0aGF0IHRoZSB2YWx1ZSBpcyBk
ZWZpbml0ZWx5IGEgY2VsbCwgb3IgZGVmaW5pdGVseSBhIGZ1bmN0aW9uLgogICAgIAogI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoVGFn
TWFzayksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAKICAgICBzbG93Q2FzZS5hcHBlbmQoCiAgICAg
ICAgIGppdC5icmFuY2hUZXN0NjQoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vblplcm8s
IEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKKyAgICAgICAgICAg
IENDYWxsSGVscGVyczo6Tm9uWmVybywgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QyKSk7
CiAjZWxzZQogICAgIHNsb3dDYXNlLmFwcGVuZCgKICAgICAgICAgaml0LmJyYW5jaDMyKAogICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgR1BSSW5mbzo6cmVnVDEsCiAgICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOwogI2Vu
ZGlmCi0gICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Qw
LCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMik7CisgICAg
aml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBKU0NlbGw6
OnN0cnVjdHVyZU9mZnNldCgpKSwgR1BSSW5mbzo6cmVnVDIpOwogICAgIHNsb3dDYXNlLmFwcGVu
ZCgKICAgICAgICAgaml0LmJyYW5jaFB0cigKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm90
RXF1YWwsCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6bm9uQXJn
R1BSMiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSksCisgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0
KCkpLAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKEpTRnVuY3Rpb246
OmluZm8oKSkpKTsKICAgICAKICAgICAvLyBOb3cgd2Uga25vdyB3ZSBoYXZlIGEgSlNGdW5jdGlv
bi4KICAgICAKICAgICBqaXQubG9hZFB0cigKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KEdQUkluZm86OnJlZ1QwLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksCi0gICAg
ICAgIEdQUkluZm86Om5vbkFyZ0dQUjIpOwotICAgIHNsb3dDYXNlLmFwcGVuZCgKLSAgICAgICAg
aml0LmJyYW5jaDMyKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMZXNzVGhhbiwKLSAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygKLSAgICAgICAgICAgICAgICBHUFJJbmZvOjpu
b25BcmdHUFIyLCBFeGVjdXRhYmxlQmFzZTo6b2Zmc2V0T2ZOdW1QYXJhbWV0ZXJzRm9yKGtpbmQp
KSwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApKSk7CisgICAgICAg
IEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQubG9hZFB0cigKKyAgICAgICAgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKAorICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDIsIEV4ZWN1dGFibGVCYXNlOjpv
ZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5kLCByZWdpc3RlcnMpKSwKKyAgICAg
ICAgR1BSSW5mbzo6cmVnVDIpOworICAgIHNsb3dDYXNlLmFwcGVuZChqaXQuYnJhbmNoVGVzdFB0
cihDQ2FsbEhlbHBlcnM6Olplcm8sIEdQUkluZm86OnJlZ1QyKSk7CiAgICAgCiAgICAgLy8gTm93
IHdlIGtub3cgdGhhdCB3ZSBoYXZlIGEgQ29kZUJsb2NrLCBhbmQgd2UncmUgY29tbWl0dGVkIHRv
IG1ha2luZyBhIGZhc3QKICAgICAvLyBjYWxsLgpAQCAtMTk1LDYyICsyMTQsNjAgQEAgc3RhdGlj
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsRm9yVAogICAgICAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTRnVuY3Rpb246Om9mZnNldE9mU2NvcGVDaGFpbigp
KSwKICAgICAgICAgR1BSSW5mbzo6cmVnVDEpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgaml0
LnN0b3JlNjQoCi0gICAgICAgIEdQUkluZm86OnJlZ1QxLAotICAgICAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoCi0gICAgICAgICAgICBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAg
ICAgICAgIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKiBKU1N0YWNr
OjpTY29wZUNoYWluKSk7CisgICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVBy
b2xvZ3VlKEdQUkluZm86OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKICNlbHNlCi0gICAg
aml0LnN0b3JlUHRyKAotICAgICAgICBHUFJJbmZvOjpyZWdUMSwKLSAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKAotICAgICAgICAgICAgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsCi0g
ICAgICAgICAgICBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNT
dGFjazo6U2NvcGVDaGFpbiArCi0gICAgICAgICAgICBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZh
bHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgaml0LnN0b3JlMzIoCi0gICAg
ICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCi0gICAgICAgICAgICBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lz
dGVyKSkgKiBKU1N0YWNrOjpTY29wZUNoYWluICsKLSAgICAgICAgICAgIE9CSkVDVF9PRkZTRVRP
RihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAgIGppdC5lbWl0UHV0
UGF5bG9hZFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoR1BSSW5mbzo6cmVnVDEsIEpT
U3RhY2s6OlNjb3BlQ2hhaW4pOworICAgIGppdC5lbWl0UHV0VGFnVG9DYWxsRnJhbWVIZWFkZXJC
ZWZvcmVQcm9sb2d1ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSwKKyAgICAgICAgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAjZW5kaWYKICAgICAKLSAgICBqaXQu
bG9hZFB0cigKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86Om5vbkFyZ0dQ
UjIsIEV4ZWN1dGFibGVCYXNlOjpvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5k
KSksCi0gICAgICAgIEdQUkluZm86OnJlZ1QwKTsKLSAgICAKICAgICAvLyBNYWtlIGEgdGFpbCBj
YWxsLiBUaGlzIHdpbGwgcmV0dXJuIGJhY2sgdG8gSklUIGNvZGUuCi0gICAgZW1pdFBvaW50ZXJW
YWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6cmVnVDApOwotICAgIGppdC5qdW1wKEdQUkluZm86OnJl
Z1QwKTsKKyAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpyZWdUMik7Cisg
ICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDIpOwogCiAgICAgc2xvd0Nhc2UubGluaygmaml0KTsK
ICAgICAKICAgICAvLyBIZXJlIHdlIGRvbid0IGtub3cgYW55dGhpbmcsIHNvIHJldmVydCB0byB0
aGUgZnVsbCBzbG93IHBhdGguCiAgICAgCi0gICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwga2luZCA9
PSBDb2RlRm9yQ2FsbCA/IG9wZXJhdGlvblZpcnR1YWxDYWxsIDogb3BlcmF0aW9uVmlydHVhbENv
bnN0cnVjdCk7CisgICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwgb3BlcmF0aW9uVmlydHVhbEZvcihr
aW5kLCByZWdpc3RlcnMpKTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2bSwg
JmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKICAgICByZXR1cm4gRklOQUxJWkVfQ09ERSgKICAgICAg
ICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICgiVmlydHVhbCAlcyBzbG93IHBhdGggdGh1bmsiLCBr
aW5kID09IENvZGVGb3JDYWxsID8gImNhbGwiIDogImNvbnN0cnVjdCIpKTsKKyAgICAgICAgKCJW
aXJ0dWFsICVzJXMgc2xvdyBwYXRoIHRodW5rIiwga2luZCA9PSBDb2RlRm9yQ2FsbCA/ICJjYWxs
IiA6ICJjb25zdHJ1Y3QiLCByZWdpc3RlcnMgPT0gTXVzdFByZXNlcnZlUmVnaXN0ZXJzID8gIiB0
aGF0IHByZXNlcnZlcyByZWdpc3RlcnMiIDogIiIpKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiB2aXJ0
dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsKTsKKyAgICByZXR1cm4gdmlydHVh
bEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25O
b3RSZXF1aXJlZCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ29uc3RydWN0
VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5l
cmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtH
ZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVx
dWlyZWQpOwogfQogCi1zdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVy
YXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK01hY3JvQXNzZW1ibGVy
Q29kZVJlZiB2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZt
KQoreworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxs
LCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmly
dHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQorewor
ICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3Qs
IE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK2VudW0gVGh1bmtFbnRyeVR5cGUgeyBFbnRl
clZpYUNhbGwsIEVudGVyVmlhSnVtcCB9OworCitzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwg
VGh1bmtFbnRyeVR5cGUgZW50cnlUeXBlID0gRW50ZXJWaWFDYWxsKQogewogICAgIGludCBleGVj
dXRhYmxlT2Zmc2V0VG9GdW5jdGlvbiA9IE5hdGl2ZUV4ZWN1dGFibGU6Om9mZnNldE9mTmF0aXZl
RnVuY3Rpb25Gb3Ioa2luZCk7CiAgICAgCiAgICAgSlNJbnRlcmZhY2VKSVQgaml0KHZtKTsKLSAg
ICAKKworICAgIGlmIChlbnRyeVR5cGUgPT0gRW50ZXJWaWFDYWxsKQorICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uUHJvbG9ndWUoKTsKKwogICAgIGppdC5lbWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJh
bWVIZWFkZXIoMCwgSlNTdGFjazo6Q29kZUJsb2NrKTsKICAgICBqaXQuc3RvcmVQdHIoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCAmdm0tPnRvcENhbGxGcmFtZSk7CiAKQEAgLTI2
MSwyMiArMjc4LDE4IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UK
ICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFp
biwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGpp
dC5lbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNT
dGFjazo6U2NvcGVDaGFpbik7CiAKLSAgICBqaXQucGVlayhKU0ludGVyZmFjZUpJVDo6cmVnVDEp
OwotICAgIGppdC5lbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJ
VDo6cmVnVDEpOwotCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoZWN4LCBlZHgs
IC4uLik7CiAgICAgLy8gSG9zdCBmdW5jdGlvbiBzaWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CiAg
ICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3Rl
cnM6OmVjeCk7CiAKLSAgICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIo
MTYgLSBzaXplb2Yodm9pZCopKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsgLy8gQWxpZ24gc3RhY2sgYWZ0ZXIgY2FsbC4KKyAgICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNl
SklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rl
cik7IC8vIEFsaWduIHN0YWNrIGFmdGVyIHByb2xvZ3VlLgogCiAgICAgLy8gY2FsbCB0aGUgZnVu
Y3Rpb24KICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2Fs
bGVlLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwogICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNl
SklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZF
eGVjdXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5tb3ZlKEpTSW50
ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8g
RWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZy
b20gc3RhY2suCiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwogCi0gICAgaml0LmFk
ZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZvaWQqKSksIEpT
SW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihKU0lu
dGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIpOwogCiAjZWxpZiBDUFUoWDg2XzY0KQogICAgIC8vIExvYWQgY2FsbGVyIGZyYW1l
J3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFtZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNh
bGwgY2FuCkBAIC0yODQsMjMgKzI5NywxNSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IG5hdGl2ZUZvckdlCiAgICAgaml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFk
ZXJQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBK
U0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGppdC5lbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVh
ZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7Ci0KLSAgICBq
aXQucGVlayhKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5lbWl0UHV0UmV0dXJuUENU
b0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotCiAjaWYgIU9TKFdJTkRP
V1MpCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoZWRpLCBlc2ksIGVkeCwgZWN4
LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwog
ICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0
ZXJzOjplZGkpOwogCi0gICAgaml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMy
KDE2IC0gc2l6ZW9mKGludDY0X3QpKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyKTsgLy8gQWxpZ24gc3RhY2sgYWZ0ZXIgY2FsbC4KLQogICAgIGppdC5lbWl0R2V0RnJvbUNh
bGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIFg4NlJlZ2lzdGVyczo6ZXNpKTsKICAg
ICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVzaSwg
SlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBYODZSZWdpc3RlcnM6OnI5KTsKLSAg
ICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJh
bWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8g
YXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgogICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpB
ZGRyZXNzKFg4NlJlZ2lzdGVyczo6cjksIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CiAK
LSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2Yo
aW50NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2Vsc2UK
ICAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246ICAgICAgZihlY3gsIGVkeCwgcjgsIHI5LCAuLi4p
OwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwpAQCAtMzEx
LDcgKzMxNiw2IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKIAog
ICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIFg4
NlJlZ2lzdGVyczo6ZWR4KTsKICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVz
cyhYODZSZWdpc3RlcnM6OmVkeCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBY
ODZSZWdpc3RlcnM6OnI5KTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpT
SW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxs
ZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgogICAgIGppdC5j
YWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6cjksIGV4ZWN1dGFibGVP
ZmZzZXRUb0Z1bmN0aW9uKSk7CiAKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVz
dGVkSW1tMzIoNCAqIHNpemVvZihpbnQ2NF90KSArIDE2IC0gc2l6ZW9mKGludDY0X3QpKSwgSlNJ
bnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTMzMCwyOCArMzM0LDE4IEBA
IHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKICAgICBqaXQuZW1pdEdl
dEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QxLCBBUk02NFJlZ2lzdGVyczo6eDMpOwogICAgIGppdC5lbWl0UHV0Q2VsbFRvQ2Fs
bEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7
CiAKLSAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEpTSW50ZXJmYWNlSklU
OjpyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9D
YWxsRnJhbWVIZWFkZXIoQVJNNjRSZWdpc3RlcnM6OmxyKTsKLQogICAgIC8vIEhvc3QgZnVuY3Rp
b24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklU
OjpjYWxsRnJhbWVSZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6OngwKTsKIAogICAgIGppdC5lbWl0
R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIEFSTTY0UmVnaXN0ZXJz
Ojp4MSk7CiAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoQVJNNjRSZWdp
c3RlcnM6OngxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEFSTTY0UmVnaXN0
ZXJzOjp4Mik7Ci0gICAgaml0Lm1vdmUoQVJNNjRSZWdpc3RlcnM6OngzLCBKU0ludGVyZmFjZUpJ
VDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJl
Z2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBqaXQuY2FsbChKU0ludGVy
ZmFjZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVyczo6eDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1
bmN0aW9uKSk7Ci0KLSAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLQogI2VsaWYgQ1BVKEFSTSkgfHwgQ1BVKFNINCkgfHwgQ1BV
KE1JUFMpCiAgICAgLy8gTG9hZCBjYWxsZXIgZnJhbWUncyBzY29wZSBjaGFpbiBpbnRvIHRoaXMg
Y2FsbGZyYW1lIHNvIHRoYXQgd2hhdGV2ZXIgd2UgY2FsbCBjYW4gZ2V0IHRvIGl0cyBnbG9iYWwg
ZGF0YS4KICAgICBqaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihK
U0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRl
clB0cihKU1N0YWNrOjpTY29wZUNoYWluLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJm
YWNlSklUOjpyZWdUMik7CiAgICAgaml0LmVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIoSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKIAotICAgIGppdC5wcmVz
ZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsgLy8gQ2Fs
bGVlIHByZXNlcnZlZAotICAgIGppdC5lbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihK
U0ludGVyZmFjZUpJVDo6cmVnVDMpOwotCiAjaWYgQ1BVKE1JUFMpCiAgICAgLy8gQWxsb2NhdGUg
c3RhY2sgc3BhY2UgZm9yICh1bnVzZWQpIDE2IGJ5dGVzICg4LWJ5dGUgYWxpZ25lZCkgZm9yIDQg
YXJndW1lbnRzLgogICAgIGppdC5zdWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigx
NiksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CkBAIC0zNjIsNyArMzU2
LDYgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogICAgIGppdC5t
b3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OmFy
Z3VtZW50R1BSMCk7CiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNT
dGFjazo6Q2FsbGVlLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIxKTsKLSAgICBqaXQubW92
ZShKU0ludGVyZmFjZUpJVDo6cmVnVDIsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rl
cik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9h
ZGluZyBmcm9tIHN0YWNrLgogICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNz
KEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0
YWJsZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAgICBqaXQuY2FsbChKU0ludGVyZmFj
ZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1
bmN0aW9uKSk7CiAKQEAgLTM3MCw4ICszNjMsNiBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIG5hdGl2ZUZvckdlCiAgICAgLy8gUmVzdG9yZSBzdGFjayBzcGFjZQogICAgIGppdC5hZGRQ
dHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiksIEpTSW50ZXJmYWNlSklUOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAjZW5kaWYKLQotICAgIGppdC5yZXN0b3JlUmV0dXJuQWRkcmVz
c0JlZm9yZVJldHVybihKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwogI2Vsc2UKICNlcnJvciAiSklU
IG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWN1
dGFibGVPZmZzZXRUb0Z1bmN0aW9uKTsKQEAgLTM4OSwyNSArMzgwLDIxIEBAIHN0YXRpYyBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKICAgICAgICAgSlNJbnRlcmZhY2VKSVQ6OlRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7CiAjZW5kaWYKIAorICAgIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIC8vIFJldHVybi4KICAgICBqaXQucmV0KCk7CiAK
ICAgICAvLyBIYW5kbGUgYW4gZXhjZXB0aW9uCiAgICAgZXhjZXB0aW9uSGFuZGxlci5saW5rKCZq
aXQpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgaml0LnByZXNlcnZl
UmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIAotICAg
IGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tUHRyKCZ2bS0+ZXhjZXB0aW9uTG9j
YXRpb24pLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwotICAgIGppdC5zdG9yZVB0cihKU0ludGVy
ZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7Ci0KICAgICBqaXQuc3RvcmVQ
dHIoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCAmdm0tPnRvcENhbGxGcmFtZSk7
CiAKICNpZiBDUFUoWDg2KSAmJiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIGppdC5hZGRQdHIoSlNJ
bnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigtMTIpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwotICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdp
c3Rlcik7CisgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZh
Y2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKKyAgICBq
aXQucHVzaChKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogI2Vsc2UKLSAgICBqaXQubW92ZShKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQ
UjApOworICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNl
SklUOjpjYWxsRnJhbWVSZWdpc3RlciksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjApOwog
I2VuZGlmCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW1QdHIoRnVuY3Rp
b25QdHIob3BlcmF0aW9uVk1IYW5kbGVFeGNlcHRpb24pLnZhbHVlKCkpLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDMpOwogICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CkBAIC00MTgs
NyArNDA1LDcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogICAg
IGppdC5qdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CiAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVm
ZmVyKCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKLSAgICByZXR1cm4gRklOQUxJWkVfQ09E
RShwYXRjaEJ1ZmZlciwgKCJuYXRpdmUgJXMgdHJhbXBvbGluZSIsIHRvQ1N0cmluZyhraW5kKS5k
YXRhKCkpKTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgKCJuYXRpdmUg
JXMlcyB0cmFtcG9saW5lIiwgZW50cnlUeXBlID09IEVudGVyVmlhSnVtcCA/ICJUYWlsICIgOiAi
IiwgdG9DU3RyaW5nKGtpbmQpLmRhdGEoKSkpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
bmF0aXZlQ2FsbEdlbmVyYXRvcihWTSogdm0pCkBAIC00MjYsNiArNDEzLDExIEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBuYXRpdmVDYWxsR2VuZXJhdG8KICAgICByZXR1cm4gbmF0aXZlRm9yR2Vu
ZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCk7CiB9CiAKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRp
dmVUYWlsQ2FsbEdlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVy
YXRvcih2bSwgQ29kZUZvckNhbGwsIEVudGVyVmlhSnVtcCk7Cit9CisKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IoVk0qIHZtKQogewogICAgIHJldHVybiBu
YXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QpOwpAQCAtNDM1LDE0ICs0Mjcs
MTYgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZtKQogewogICAgIEpT
SW50ZXJmYWNlSklUIGppdCh2bSk7CiAKLSAgICAvLyBXZSBlbnRlciB3aXRoIGZpeHVwIGNvdW50
IGluIHJlZ1QwCisgICAgLy8gV2UgZW50ZXIgd2l0aCBmaXh1cCBjb3VudCwgaW4gYWxpZ25lZCBz
dGFjayB1bml0cywgaW4gcmVnVDAgYW5kIHRoZSByZXR1cm4gdGh1bmsgaW4KKyAgICAvLyByZWdU
NS4gV2UgdXNlIFZNOjpjdXJyZW50UmV0dXJuVGh1bmtQQyBpbnN0ZWFkIG9mIHJlZ1Q1IG9uIFg4
Ni0zMi4KICNpZiBVU0UoSlNWQUxVRTY0KQogIyAgaWYgQ1BVKFg4Nl82NCkKICAgICBqaXQucG9w
KEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CiAjICBlbmRpZgorICAgIGppdC5sc2hpZnQzMihKU0lu
dGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKGxvZ1N0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpLCBK
U0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGppdC5uZWc2NChKU0ludGVyZmFjZUpJVDo6cmVn
VDApOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLSAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRy
ZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRD
b3VudCAqIDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOworICAgIGppdC5sb2FkMzIoSlNJbnRl
cmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0
YWNrOjpBcmd1bWVudENvdW50ICogc2l6ZW9mKFJlZ2lzdGVyKSksIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMik7CiAgICAgaml0LmFkZDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoSlNTdGFj
azo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CiAKICAgICAv
LyBNb3ZlIGN1cnJlbnQgZnJhbWUgZG93biByZWdUMCBudW1iZXIgb2Ygc2xvdHMKQEAgLTQ1Miwx
NyArNDQ2LDI3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKICAg
ICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNl
SklUOjpyZWdUMyk7CiAgICAgaml0LmJyYW5jaFN1YjMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJv
LCBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIp
LmxpbmtUbyhjb3B5TG9vcCwgJmppdCk7CiAKLSAgICAvLyBGaWxsIGluIHJlZ1QwIG1pc3Npbmcg
YXJnIHNsb3RzIHdpdGggdW5kZWZpbmVkCisgICAgLy8gRmlsbCBpbiByZWdUMCAtIDEgbWlzc2lu
ZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6
cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VK
SVQ6OlRydXN0ZWRJbW02NChWYWx1ZVVuZGVmaW5lZCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7
CisgICAgaml0LmFkZDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJm
YWNlSklUOjpyZWdUMik7CiAgICAgSlNJbnRlcmZhY2VKSVQ6OkxhYmVsIGZpbGxVbmRlZmluZWRM
b29wKGppdC5sYWJlbCgpKTsKICAgICBqaXQuc3RvcmU2NChKU0ludGVyZmFjZUpJVDo6cmVnVDEs
IE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CiAgICAgaml0LmFk
ZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDMpOwogICAgIGppdC5icmFuY2hBZGQzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRl
cmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8o
ZmlsbFVuZGVmaW5lZExvb3AsICZqaXQpOwotCi0gICAgLy8gQWRqdXN0IGNhbGwgZnJhbWUgcmVn
aXN0ZXIgdG8gYWNjb3VudCBmb3IgbWlzc2luZyBhcmdzCi0gICAgaml0LmxzaGlmdDY0KEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7Ci0gICAg
aml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJh
bWVSZWdpc3Rlcik7CisgICAgCisgICAgLy8gQWRqdXN0IGNhbGwgZnJhbWUgcmVnaXN0ZXIgYW5k
IHN0YWNrIHBvaW50ZXIgdG8gYWNjb3VudCBmb3IgbWlzc2luZyBhcmdzCisgICAgaml0Lm1vdmUo
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOworICAgIGppdC5s
c2hpZnQ2NChKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDEpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFj
ZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisgICAgLy8g
U2F2ZSB0aGUgb3JpZ2luYWwgcmV0dXJuIFBDLgorICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNl
SklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1l
OjpyZXR1cm5QQ09mZnNldCgpKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5zdG9yZVB0cihH
UFJJbmZvOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6
cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQp
KTsKKyAgICAKKyAgICAvLyBJbnN0YWxsIHRoZSBuZXcgcmV0dXJuIFBDLgorICAgIGppdC5zdG9y
ZVB0cihHUFJJbmZvOjpyZWdUNSwgSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VK
SVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKIAog
IyAgaWYgQ1BVKFg4Nl82NCkKICAgICBqaXQucHVzaChKU0ludGVyZmFjZUpJVDo6cmVnVDQpOwpA
QCAtNDcyLDkgKzQ3NiwxMCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSog
dm0pCiAjICBpZiBDUFUoWDg2KQogICAgIGppdC5wb3AoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsK
ICMgIGVuZGlmCisgICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIo
bG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CiAg
ICAgaml0Lm5lZzMyKEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CiAgICAgaml0Lm1vdmUoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwotICAg
IGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxG
cmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogOCksIEpTSW50ZXJmYWNlSklU
OjpyZWdUMik7CisgICAgaml0LmxvYWQzMihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVy
ZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzaXpl
b2YoUmVnaXN0ZXIpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAgICBqaXQuYWRkMzIoSlNJ
bnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwg
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKIAogICAgIC8vIE1vdmUgY3VycmVudCBmcmFtZSBkb3du
IHJlZ1QwIG51bWJlciBvZiBzbG90cwpAQCAtNDg2LDggKzQ5MSw5IEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAgICAgaml0LmJyYW5j
aFN1YjMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZElt
bTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpLmxpbmtUbyhjb3B5TG9vcCwgJmppdCk7CiAK
LSAgICAvLyBGaWxsIGluIHJlZ1QwIG1pc3NpbmcgYXJnIHNsb3RzIHdpdGggdW5kZWZpbmVkCisg
ICAgLy8gRmlsbCBpbiByZWdUMCAtIDEgbWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQK
ICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdU
Mik7CisgICAgaml0LmFkZDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50
ZXJmYWNlSklUOjpyZWdUMik7CiAgICAgSlNJbnRlcmZhY2VKSVQ6OkxhYmVsIGZpbGxVbmRlZmlu
ZWRMb29wKGppdC5sYWJlbCgpKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3Rl
ZEltbTMyKDApLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwogICAgIGppdC5zdG9yZTMyKEpTSW50
ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJ
VDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWln
aHQpKTsKQEAgLTQ5NywxMCArNTAzLDI1IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZp
eHVwKFZNKiB2bSkKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIo
OCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAgICAgaml0LmJyYW5jaEFkZDMyKE1hY3JvQXNz
ZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDIpLmxpbmtUbyhmaWxsVW5kZWZpbmVkTG9vcCwgJmppdCk7CiAKLSAgICAv
LyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciB0byBhY2NvdW50IGZvciBtaXNzaW5nIGFyZ3MK
LSAgICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QwKTsKLSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwg
SlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLQorICAgIC8vIEFkanVzdCBjYWxs
IGZyYW1lIHJlZ2lzdGVyIGFuZCBzdGFjayBwb2ludGVyIHRvIGFjY291bnQgZm9yIG1pc3Npbmcg
YXJncworICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QxKTsKKyAgICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigz
KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklU
OjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBqaXQuYWRk
UHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKKworICAgIC8vIFNhdmUgdGhlIG9yaWdpbmFsIHJldHVybiBQQy4KKyAgICBqaXQu
bG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QxKTsK
KyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJm
YWNlSklUOjpUaW1lc0VpZ2h0KSk7CisgICAgCisgICAgLy8gSW5zdGFsbCB0aGUgbmV3IHJldHVy
biBQQy4KKyAgICAvLyBGSVhNRTogSSBkb24ndCB0aGluayBjdXJyZW50UmV0dXJuVGh1bmtQQyBp
cyB1c2VkIGFuZCBzaG91bGQgYmUgZGVsZXRlZC4KKyMgIGlmIDAKKyAgICBqaXQubG9hZFB0cigm
dm0tPmN1cnJlbnRSZXR1cm5UaHVua1BDLCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LnN0b3Jl
UHRyKEdQUkluZm86OnJlZ1QyLCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJ
VDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworIyAg
IGVsc2UKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDUsIEpTSW50ZXJmYWNlSklUOjpB
ZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1
cm5QQ09mZnNldCgpKSk7CisjICAgZW5kaWYKKyAgICAKICMgIGlmIENQVShYODYpCiAgICAgaml0
LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsKICMgIGVuZGlmCkBAIC01NTQsNyArNTc1LDcg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbgogICAgIFNwZWNpYWxp
emVkVGh1bmtKSVQgaml0KHZtLCAxKTsKICAgICBzdHJpbmdDaGFyTG9hZChqaXQsIHZtKTsKICAg
ICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwotICAgIHJldHVy
biBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImNoYXJDb2Rl
QXQiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFp
bENhbGwodm0pLCAiY2hhckNvZGVBdCIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hh
ckF0VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtNTYzLDcgKzU4NCw3IEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBjaGFyQXRUaHVua0dlbmVyYXQKICAgICBzdHJpbmdDaGFyTG9hZChqaXQsIHZt
KTsKICAgICBjaGFyVG9TdHJpbmcoaml0LCB2bSwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAs
IFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMSk7
CiAgICAgaml0LnJldHVybkpTQ2VsbChTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7Ci0gICAg
cmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiY2hh
ckF0Iik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRh
aWxDYWxsKHZtKSwgImNoYXJBdCIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZnJvbUNo
YXJDb2RlVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtNTczLDcgKzU5NCw3IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBmcm9tQ2hhckNvZGVUaHVua0cKICAgICBqaXQubG9hZEludDMyQXJndW1l
bnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGNoYXJUb1N0cmluZyhqaXQs
IHZtLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVn
VDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QxKTsKICAgICBqaXQucmV0dXJuSlNDZWxsKFNw
ZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5q
aXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJmcm9tQ2hhckNvZGUiKTsKKyAgICByZXR1cm4g
aml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiZnJvbUNo
YXJDb2RlIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzcXJ0VGh1bmtHZW5lcmF0b3Io
Vk0qIHZtKQpAQCAtNTg1LDcgKzYwNiw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzcXJ0VGh1
bmtHZW5lcmF0b3IKICAgICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1
bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuc3Fy
dERvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklU
OjpmcFJlZ1QwKTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZw
UmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVD
YWxsKHZtKSwgInNxcnQiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+
Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAic3FydCIpOwogfQogCiAKQEAgLTYxMSw3ICs2MzIsOSBA
QCBkb3VibGUganNSb3VuZChkb3VibGUgZCkKICAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJ
TkcoZnVuY3Rpb24jI1RodW5rKSAiXG4iIFwKICAgICAgICAgSElERV9TWU1CT0woZnVuY3Rpb24j
I1RodW5rKSAiXG4iIFwKICAgICAgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMjVGh1bmspICI6
IiAiXG4iIFwKKyAgICAgICAgInB1c2hxICVyYXhcbiIgXAogICAgICAgICAiY2FsbCAiIEdMT0JB
TF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJcbiIgXAorICAgICAgICAicG9wcSAlcmN4XG4iIFwKICAg
ICAgICAgInJldFxuIiBcCiAgICAgKTtcCiAgICAgZXh0ZXJuICJDIiB7IFwKQEAgLTYyNiwxMiAr
NjQ5LDEyIEBAIGRvdWJsZSBqc1JvdW5kKGRvdWJsZSBkKQogICAgICAgICAiLmdsb2JsICIgU1lN
Qk9MX1NUUklORyhmdW5jdGlvbiMjVGh1bmspICJcbiIgXAogICAgICAgICBISURFX1NZTUJPTChm
dW5jdGlvbiMjVGh1bmspICJcbiIgXAogICAgICAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uIyNU
aHVuaykgIjoiICJcbiIgXAotICAgICAgICAic3VibCAkOCwgJWVzcFxuIiBcCisgICAgICAgICJz
dWJsICQyMCwgJWVzcFxuIiBcCiAgICAgICAgICJtb3ZzZCAleG1tMCwgKCVlc3ApIFxuIiBcCiAg
ICAgICAgICJjYWxsICIgR0xPQkFMX1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIiBcCiAgICAgICAg
ICJmc3RwbCAoJWVzcCkgXG4iIFwKICAgICAgICAgIm1vdnNkICglZXNwKSwgJXhtbTAgXG4iIFwK
LSAgICAgICAgImFkZGwgJDgsICVlc3BcbiIgXAorICAgICAgICAiYWRkbCAkMjAsICVlc3BcbiIg
XAogICAgICAgICAicmV0XG4iIFwKICAgICApO1wKICAgICBleHRlcm4gIkMiIHsgXApAQCAtNzMz
LDcgKzc1Niw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBmbG9vclRodW5rR2VuZXJhdG8KICAg
ICBkb3VibGVSZXN1bHQubGluaygmaml0KTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxp
emVkVGh1bmtKSVQ6OmZwUmVnVDApOwogI2VuZGlmIC8vIENQVShBUk02NCkKLSAgICByZXR1cm4g
aml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJmbG9vciIpOwor
ICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2
bSksICJmbG9vciIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2VpbFRodW5rR2VuZXJh
dG9yKFZNKiB2bSkKQEAgLTc1Niw3ICs3NzksNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2Vp
bFRodW5rR2VuZXJhdG9yCiAgICAgaml0LnJldHVybkludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6
OnJlZ1QwKTsKICAgICBkb3VibGVSZXN1bHQubGluaygmaml0KTsKICAgICBqaXQucmV0dXJuRG91
YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxp
emUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImNlaWwiKTsKKyAgICByZXR1cm4g
aml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiY2VpbCIp
OwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcm91bmRUaHVua0dlbmVyYXRvcihWTSogdm0p
CkBAIC03OTAsNyArODEzLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5l
cmF0bwogICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAg
ICAgZG91YmxlUmVzdWx0LmxpbmsoJmppdCk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFs
aXplZFRodW5rSklUOjpmcFJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRT
dHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJyb3VuZCIpOworICAgIHJldHVybiBqaXQuZmluYWxp
emUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJyb3VuZCIpOwogfQogCiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgZXhwVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtODAzLDcg
KzgyNiw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBUaHVua0dlbmVyYXRvcigKICAgICBq
aXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNw
ZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuY2FsbERvdWJsZVRvRG91YmxlUHJl
c2VydmluZ1JldHVybihVbmFyeURvdWJsZU9wV3JhcHBlcihleHApKTsKICAgICBqaXQucmV0dXJu
RG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwotICAgIHJldHVybiBqaXQuZmlu
YWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImV4cCIpOworICAgIHJldHVy
biBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJleHAi
KTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxvZ1RodW5rR2VuZXJhdG9yKFZNKiB2bSkK
QEAgLTgxNiw3ICs4MzksNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0
b3IoCiAgICAgaml0LmxvYWREb3VibGVBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpm
cFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgaml0LmNhbGxEb3VibGVU
b0RvdWJsZVByZXNlcnZpbmdSZXR1cm4oVW5hcnlEb3VibGVPcFdyYXBwZXIobG9nKSk7CiAgICAg
aml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKLSAgICByZXR1
cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJsb2ciKTsK
KyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwo
dm0pLCAibG9nIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhYnNUaHVua0dlbmVyYXRv
cihWTSogdm0pCkBAIC04MzYsNyArODU5LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1Ro
dW5rR2VuZXJhdG9yKAogICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRU
aHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGppdC5h
YnNEb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJ
VDo6ZnBSZWdUMSk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpm
cFJlZ1QxKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZl
Q2FsbCh2bSksICJhYnMiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+
Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiYWJzIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBwb3dUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC04ODgsNyArOTExLDcgQEAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIHBvd1RodW5rR2VuZXJhdG9yKAogICAgIH0gZWxzZQogICAgICAgICBqaXQu
YXBwZW5kRmFpbHVyZShub25JbnRFeHBvbmVudCk7CiAKLSAgICByZXR1cm4gaml0LmZpbmFsaXpl
KHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJwb3ciKTsKKyAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAicG93Iik7CiB9
CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBpbXVsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAt
OTIxLDcgKzk0NCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBpbXVsVGh1bmtHZW5lcmF0b3IK
ICAgICB9IGVsc2UKICAgICAgICAgaml0LmFwcGVuZEZhaWx1cmUobm9uSW50QXJnMUp1bXApOwog
Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0p
LCAiaW11bCIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRp
dmVUYWlsQ2FsbCh2bSksICJpbXVsIik7CiB9CiAKIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgYXJyYXlJdGVyYXRvck5leHRUaHVua0dlbmVyYXRvcihWTSogdm0sIEFycmF5SXRlcmF0aW9u
S2luZCBraW5kKQpAQCAtOTYxLDcgKzk4NCw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgYXJyYXlJdGVyYXQKICAgICBpZiAoa2luZCA9PSBBcnJheUl0ZXJhdGVLZXkpIHsKICAgICAg
ICAgaml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgQWRkcmVzcyhTcGVjaWFsaXplZFRodW5rSklU
OjpyZWdUNCwgSlNBcnJheUl0ZXJhdG9yOjpvZmZzZXRPZk5leHRJbmRleCgpKSk7CiAgICAgICAg
IGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMSk7Ci0gICAgICAgIHJl
dHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImFycmF5
LWl0ZXJhdG9yLW5leHQta2V5Iik7CisgICAgICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmpp
dFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJhcnJheS1pdGVyYXRvci1uZXh0LWtleSIp
OwogICAgICAgICAKICAgICB9CiAgICAgQVNTRVJUKGtpbmQgPT0gQXJyYXlJdGVyYXRlVmFsdWUp
OwpAQCAtMTAxMiw3ICsxMDM1LDcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJh
eUl0ZXJhdAogICAgIGppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIEFkZHJlc3MoU3BlY2lhbGl6
ZWRUaHVua0pJVDo6cmVnVDQsIEpTQXJyYXlJdGVyYXRvcjo6b2Zmc2V0T2ZOZXh0SW5kZXgoKSkp
OwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7CiAg
ICAgCi0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwo
dm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4dC12YWx1ZSIpOworICAgIHJldHVybiBqaXQuZmluYWxp
emUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJhcnJheS1pdGVyYXRvci1u
ZXh0LXZhbHVlIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJhdG9yTmV4
dEtleVRodW5rR2VuZXJhdG9yKFZNKiB2bSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGh1bmtHZW5lcmF0b3JzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9UaHVua0dlbmVyYXRvcnMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiAr
MjYsOCBAQAogI2lmbmRlZiBUaHVua0dlbmVyYXRvcnNfaAogI2RlZmluZSBUaHVua0dlbmVyYXRv
cnNfaAogCisjaW5jbHVkZSAiQ29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgorI2luY2x1ZGUgIlJl
Z2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIgogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9yLmgiCiAK
ICNpZiBFTkFCTEUoSklUKQpAQCAtMzUsMTQgKzM3LDgyIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiB0aHJvd0V4Y2VwdGlvbkZyb20KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDYWxsVGh1
bmtHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ29uc3RydWN0VGh1
bmtHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRoYXRQcmVz
ZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5r
Q29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSopOworCitpbmxpbmUg
VGh1bmtHZW5lcmF0b3IgbGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgIENvZGVTcGVjaWFsaXph
dGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAg
ICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIENvZGVGb3JDYWxsOgorICAgICAgICBzd2l0Y2gg
KHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWly
ZWQ6CisgICAgICAgICAgICByZXR1cm4gbGlua0NhbGxUaHVua0dlbmVyYXRvcjsKKyAgICAgICAg
Y2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICByZXR1cm4gbGlua0NhbGxU
aGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMp
IHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAg
ICAgICAgcmV0dXJuIGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcjsKKyAgICAgICAgY2FzZSBN
dXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICByZXR1cm4gbGlua0NvbnN0cnVjdFRo
YXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3I7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7
Cit9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRv
cihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2
ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qKTsKKworaW5saW5lIFRodW5rR2VuZXJhdG9yIGxpbmtD
bG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yRm9yKFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdp
c3RlcnMpCit7CisgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICBjYXNlIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgIHJldHVybiBsaW5rQ2xvc3VyZUNhbGxUaHVu
a0dlbmVyYXRvcjsKKyAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgcmV0
dXJuIGxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3I7CisgICAg
fQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CiAK
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKFZNKik7CiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENvbnN0cnVjdFRodW5rR2VuZXJhdG9yKFZNKik7
CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5r
R2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENvbnN0cnVjdFRo
YXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qKTsKKworaW5saW5lIFRodW5rR2VuZXJh
dG9yIHZpcnR1YWxUaHVua0dlbmVyYXRvckZvcigKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNo
IChraW5kKSB7CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3Rl
cnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAg
ICAgICAgICAgcmV0dXJuIHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2Ug
TXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIHZpcnR1YWxDYWxsVGhh
dFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsK
KyAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7
CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAg
ICAgIHJldHVybiB2aXJ0dWFsQ29uc3RydWN0VGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2Ug
TXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIHZpcnR1YWxDb25zdHJ1
Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biAwOworfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlQ2FsbEdlbmVyYXRvcihWTSop
OwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNvbnN0cnVjdEdlbmVyYXRvcihWTSopOwor
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxsR2VuZXJhdG9yKFZNKik7CiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSopOwogCiBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKFZNKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRDTG9vcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1
LDcgKzM1LDcgQEAgbmFtZXNwYWNlIExMSW50IHsKIAogdm9pZCBDTG9vcDo6aW5pdGlhbGl6ZSgp
CiB7Ci0gICAgZXhlY3V0ZSgwLCBnZXRPcGNvZGUobGxpbnRfdW51c2VkKSwgdHJ1ZSk7CisgICAg
ZXhlY3V0ZShsbGludF91bnVzZWQsIDAsIDAsIDAsIHRydWUpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBMTEludApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5oCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9v
cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1l
LmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgorI2luY2x1
ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogbmFtZXNwYWNlIExMSW50
IHsKQEAgLTQwLDcgKzQxLDcgQEAgY29uc3QgT3Bjb2RlSUQgbGxpbnRfdW51c2VkID0gbGxpbnRf
ZW5kOwogY2xhc3MgQ0xvb3AgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUo
KTsKLSAgICBzdGF0aWMgSlNWYWx1ZSBleGVjdXRlKENhbGxGcmFtZSosIE9wY29kZSBlbnRyeU9w
Y29kZSwgYm9vbCBpc0luaXRpYWxpemF0aW9uUGFzcyA9IGZhbHNlKTsKKyAgICBzdGF0aWMgSlNW
YWx1ZSBleGVjdXRlKE9wY29kZUlEIGVudHJ5T3Bjb2RlSUQsIHZvaWQqIGV4ZWN1dGFibGVBZGRy
ZXNzLCBWTSosIFByb3RvQ2FsbEZyYW1lKiwgYm9vbCBpc0luaXRpYWxpemF0aW9uUGFzcyA9IGZh
bHNlKTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJKU1Nj
b3BlLmgiCiAjaW5jbHVkZSAiTExJbnRDTG9vcC5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlPZmZzZXQuaCIKIApAQCAtODcsNiArODgsNyBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRp
b25zKFZNJiB2bSkKICAgICBBU1NFUlQoSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSA9PSBD
YWxsRnJhbWVIZWFkZXJTbG90cyk7CiAKICAgICBBU1NFUlQoIUNhbGxGcmFtZTo6Y2FsbGVyRnJh
bWVPZmZzZXQoKSk7CisgICAgQVNTRVJUKEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplID09
IChQdHJTaXplICogMikgLyBTbG90U2l6ZSk7CiAgICAgQVNTRVJUKENhbGxGcmFtZTo6cmV0dXJu
UENPZmZzZXQoKSA9PSBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkgKyBQdHJTaXplKTsK
ICAgICBBU1NFUlQoSlNTdGFjazo6Q29kZUJsb2NrICogc2l6ZW9mKFJlZ2lzdGVyKSA9PSBDYWxs
RnJhbWU6OnJldHVyblBDT2Zmc2V0KCkgKyBQdHJTaXplKTsKICAgICBBU1NFUlQoSlNTdGFjazo6
U2NvcGVDaGFpbiAqIHNpemVvZihSZWdpc3RlcikgPT0gSlNTdGFjazo6Q29kZUJsb2NrICogc2l6
ZW9mKFJlZ2lzdGVyKSArIFNsb3RTaXplKTsKQEAgLTEyMyw2ICsxMjUsMTMgQEAgdm9pZCBEYXRh
OjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAgQVNTRVJUKFZhbHVlVW5kZWZpbmVkID09
IChUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRVbmRlZmluZWQpKTsKICAgICBBU1NFUlQoVmFsdWVO
dWxsID09IFRhZ0JpdFR5cGVPdGhlcik7CiAjZW5kaWYKKyNpZiBDUFUoWDg2XzY0KSB8fCBDUFUo
QVJNNjQpIHx8IEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgQVNTRVJUKG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsID09IDApOworI2VsaWYgQ1BVKEFSTSkgfHwgQ1BVKFNINCkKKyAgICBB
U1NFUlQobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPT0gMjQpOworI2VsaWYgQ1BVKFg4
NikgfHwgQ1BVKE1JUFMpCisgICAgQVNTRVJUKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
ID09IDQwKTsKKyNlbmRpZgogICAgIEFTU0VSVChTdHJpbmdUeXBlID09IDUpOwogICAgIEFTU0VS
VChPYmplY3RUeXBlID09IDE3KTsKICAgICBBU1NFUlQoRmluYWxPYmplY3RUeXBlID09IDE4KTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQu
Y3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRFbnRyeXBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1
ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiTExJbnRUaHVua3MuaCIKICNpbmNsdWRlICJMb3dM
ZXZlbEludGVycHJldGVyLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgTExJbnQgewpAQCAtNDUsMTQgKzQ3LDEyIEBAIHN0YXRp
YyB2b2lkIHNldEZ1bmN0aW9uRW50cnlwb2ludChWTSYgdm0KICAgICBpZiAodm0uY2FuVXNlSklU
KCkpIHsKICAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpIHsKICAgICAgICAgICAgIGNv
ZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0
SklUQ29kZSh2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ2FsbEVudHJ5VGh1bmtHZW5lcmF0b3Ip
LCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgICAgICAgICAgdm0uZ2V0Q1RJ
U3R1YihmdW5jdGlvbkZvckNhbGxBcml0eUNoZWNrVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7Cisg
ICAgICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1Yihm
dW5jdGlvbkZvckNhbGxFbnRyeVRodW5rR2VuZXJhdG9yKSwgdm0uZ2V0Q1RJU3R1YihmdW5jdGlv
bkZvckNhbGxBcml0eUNoZWNrVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSwgSklUQ29kZTo6SW50ZXJw
cmV0ZXJUaHVuaykpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBB
U1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKICAgICAgICAgY29kZUJsb2NrLT5zZXRK
SVRDb2RlKAotICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJ
U3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBKSVRDb2RlOjpJ
bnRlcnByZXRlclRodW5rKSksCi0gICAgICAgICAgICB2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9y
Q29uc3RydWN0QXJpdHlDaGVja1RodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgICAgICAgICAg
YWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0
cnVjdEVudHJ5VGh1bmtHZW5lcmF0b3IpLCB2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ29uc3Ry
dWN0QXJpdHlDaGVja1RodW5rR2VuZXJhdG9yKS5jb2RlKCksIEpJVENvZGU6OkludGVycHJldGVy
VGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkK
QEAgLTYwLDE0ICs2MCwxMiBAQCBzdGF0aWMgdm9pZCBzZXRGdW5jdGlvbkVudHJ5cG9pbnQoVk0m
IHZtCiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkg
ewogICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgICAgICBhZG9wdFJlZihu
ZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJl
ZihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVy
VGh1bmspKSwKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRD
b2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrKSk7CisgICAgICAgICAg
ICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0
ZUxMSW50Q29kZVJlZihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSksIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxs
X2FyaXR5X2NoZWNrKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKICAgICBj
b2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2Rl
KE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2Z1bmN0aW9u
X2Zvcl9jb25zdHJ1Y3RfcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1
bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2spKTsKKyAgICAgICAgYWRvcHRSZWYobmV3
IERpcmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYo
bGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJp
dHlfY2hlY2spLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogfQogCiBzdGF0aWMgdm9p
ZCBzZXRFdmFsRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQpAQCAtNzUs
MTYgKzczLDE0IEBAIHN0YXRpYyB2b2lkIHNldEV2YWxFbnRyeXBvaW50KFZNJiB2bSwgQ28KICNp
ZiBFTkFCTEUoSklUKQogICAgIGlmICh2bS5jYW5Vc2VKSVQoKSkgewogICAgICAgICBjb2RlQmxv
Y2stPnNldEpJVENvZGUoCi0gICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2
bS5nZXRDVElTdHViKGV2YWxFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0
ZXJUaHVuaykpLAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAg
ICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihldmFsRW50cnlU
aHVua0dlbmVyYXRvciksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnBy
ZXRlclRodW5rKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShK
SVQpCiAKICAgICBVTlVTRURfUEFSQU0odm0pOwogICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgK
LSAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
OjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZXZhbF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVy
cHJldGVyVGh1bmspKSwKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAg
ICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0
ZUxMSW50Q29kZVJlZihsbGludF9ldmFsX3Byb2xvZ3VlKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
KCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldFBy
b2dyYW1FbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC05MiwxNiAr
ODgsMTQgQEAgc3RhdGljIHZvaWQgc2V0UHJvZ3JhbUVudHJ5cG9pbnQoVk0mIHZtLAogI2lmIEVO
QUJMRShKSVQpCiAgICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGNvZGVCbG9jay0+
c2V0SklUQ29kZSgKLSAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdl
dENUSVN0dWIocHJvZ3JhbUVudHJ5VGh1bmtHZW5lcmF0b3IpLCBKSVRDb2RlOjpJbnRlcnByZXRl
clRodW5rKSksCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgICAg
ICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKHByb2dyYW1FbnRy
eVRodW5rR2VuZXJhdG9yKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCksIEpJVENvZGU6OkludGVy
cHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxF
KEpJVCkKIAogICAgIFVOVVNFRF9QQVJBTSh2bSk7CiAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2Rl
KAotICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9wcm9ncmFtX3Byb2xvZ3VlKSwgSklUQ29kZTo6
SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7Cisg
ICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6
Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X3Byb2dyYW1fcHJvbG9ndWUpLCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKIH0KIAogdm9pZCBzZXRF
bnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC0xMjMsNyArMTE3LDkg
QEAgdm9pZCBzZXRFbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjbwogCiB1bnNpZ25lZCBm
cmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCiB7Ci0gICAgcmV0dXJu
IGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSA9PSBXVEY6OnJvdW5k
VXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMpKSk7CisKKyAgICByZXR1cm4g
cm91bmRMb2NhbFJlZ2lzdGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZzZXQoY29kZUJsb2NrLT5t
X251bUNhbGxlZVJlZ2lzdGVycyArIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5SZWdp
c3RlcnMpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3Bw
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRP
ZmZzZXRzRXh0cmFjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogCiAj
aW5jbHVkZSAiQXJyYXlQcm9maWxlLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVk
ZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiRGVidWdnZXIuaCIKICNpbmNsdWRlICJF
eGVjdXRhYmxlLmgiCiAjaW5jbHVkZSAiSGVhcC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50T3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50T3Bjb2RlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludE9wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNCw3ICszNCwxOCBAQAogCiAjZGVmaW5lIEZPUl9FQUNIX0xMSU5UX05PSklUX05BVElWRV9I
RUxQRVIobWFjcm8pIFwKICAgICBtYWNybyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlLCAxKSBcCi0g
ICAgbWFjcm8ocmV0dXJuRnJvbUphdmFTY3JpcHQsIDEpCisgICAgbWFjcm8obGxpbnRfcmV0dXJu
X3RvX2hvc3QsIDEpIFwKKyAgICBtYWNybyhsbGludF9jYWxsX3RvX2phdmFzY3JpcHQsIDEpIFwK
KyAgICBtYWNybyhsbGludF9jYWxsX3RvX25hdGl2ZV9mdW5jdGlvbiwgMSkgXAorICAgIG1hY3Jv
KGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uLCAxKSBcCisgICAgXAorICAgIG1hY3JvKGxsaW50X2Ns
b29wX2RpZF9yZXR1cm5fZnJvbV9qc18xLCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlk
X3JldHVybl9mcm9tX2pzXzIsIDEpIFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJu
X2Zyb21fanNfMywgMSkgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9q
c180LCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzUsIDEp
IFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfNiwgMSkgXAorICAg
IG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc183LCAxKSBcCiAKICNlbHNlIC8v
ICFFTkFCTEUoTExJTlRfQ19MT09QKQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwg
MjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUu
aCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0
aHNFeGNlcHRpb25zLmgiCisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVk
ZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSG9zdENhbGxSZXR1cm5WYWx1ZS5oIgogI2lu
Y2x1ZGUgIkludGVycHJldGVyLmgiCkBAIC01MSw2ICs1Miw3IEBACiAjaW5jbHVkZSAiTG93TGV2
ZWxJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAi
U3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3Ry
ZWFtLmg+CiAKQEAgLTgyLDcgKzg0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTElu
dCB7CiAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoZmlyc3QsIHNlY29uZCk7ICAgICAgICBc
CiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKLSNkZWZpbmUgTExJTlRfRU5EX0lNUEwoKSBMTElOVF9S
RVRVUk5fVFdPKHBjLCBleGVjKQorI2RlZmluZSBMTElOVF9FTkRfSU1QTCgpIExMSU5UX1JFVFVS
Tl9UV08ocGMsIDApCiAKICNkZWZpbmUgTExJTlRfVEhST1coZXhjZXB0aW9uVG9UaHJvdykgZG8g
eyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgdm0udGhyb3dFeGNlcHRpb24oZXhl
YywgZXhjZXB0aW9uVG9UaHJvdyk7ICAgICAgICAgICAgICAgIFwKQEAgLTEzNywyMiArMTM5LDI4
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgTExJbnQgewogI2RlZmluZSBMTElOVF9DQUxM
X1RIUk9XKGV4ZWMsIGV4Y2VwdGlvblRvVGhyb3cpIGRvIHsgICAgICAgICAgICAgICAgICAgXAog
ICAgICAgICBFeGVjU3RhdGUqIF9fY3RfZXhlYyA9IChleGVjKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihfX2N0X2V4ZWMsIGV4
Y2VwdGlvblRvVGhyb3cpOyAgICAgICAgICAgICAgICAgXAotICAgICAgICBMTElOVF9DQUxMX0VO
RF9JTVBMKF9fY3RfZXhlYywgY2FsbFRvVGhyb3coX19jdF9leGVjKSk7ICAgICAgICAgXAorICAg
ICAgICBMTElOVF9DQUxMX0VORF9JTVBMKDAsIGNhbGxUb1Rocm93KF9fY3RfZXhlYykpOyAgICAg
ICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKGZhbHNlKQogCiAjZGVmaW5lIExMSU5UX0NBTExf
Q0hFQ0tfRVhDRVBUSU9OKGV4ZWMpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgICAgIEV4ZWNTdGF0ZSogX19jY2VfZXhlYyA9IChleGVjKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCiAgICAgICAgIGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBMTElOVF9DQUxM
X0VORF9JTVBMKF9fY2NlX2V4ZWMsIGNhbGxUb1Rocm93KF9fY2NlX2V4ZWMpKTsgICBcCisgICAg
ICAgICAgICBMTElOVF9DQUxMX0VORF9JTVBMKDAsIGNhbGxUb1Rocm93KF9fY2NlX2V4ZWMpKTsg
ICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKICNkZWZpbmUgTExJTlRfQ0FMTF9S
RVRVUk4oZXhlYywgY2FsbFRhcmdldCkgZG8geyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg
ICAgICAgRXhlY1N0YXRlKiBfX2NyX2V4ZWMgPSAoZXhlYyk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKICAgICAgICAgdm9pZCogX19jcl9jYWxsVGFyZ2V0ID0gKGNhbGxUYXJn
ZXQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgTExJTlRfQ0FMTF9DSEVD
S19FWENFUFRJT04oX19jcl9leGVjLT5jYWxsZXJGcmFtZSgpKTsgICAgICAgICAgIFwKKyAgICAg
ICAgTExJTlRfQ0FMTF9DSEVDS19FWENFUFRJT04oX19jcl9leGVjKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKICAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1QTChfX2NyX2V4ZWMsIF9fY3Jf
Y2FsbFRhcmdldCk7ICAgICAgICAgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAorI2Rl
ZmluZSBMTElOVF9SRVRVUk5fQ0FMTEVFX0ZSQU1FKGV4ZWNDYWxsZWUpIGRvIHsgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgICAgICBFeGVjU3RhdGUqIF9fcmNmX2V4ZWMgPSAoZXhlY0NhbGxl
ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBMTElOVF9SRVRVUk5fVFdP
KHBjLCBfX3JjZl9leGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0g
d2hpbGUgKGZhbHNlKQorICAgIAorCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGlu
dF90cmFjZV9vcGVyYW5kKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24qIHBjLCBpbnQgZnJv
bVdoZXJlLCBpbnQgb3BlcmFuZCkKIHsKICAgICBMTElOVF9CRUdJTigpOwpAQCAtMjQyLDYgKzI1
MCwxMCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTCh0cmFjZSkKICAgICAgICAgICAgIHN0YXRpY19j
YXN0PGludHB0cl90PihwYyAtIGV4ZWMtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpKSwKICAgICAgICAgICAgIG9wY29kZU5hbWVzW2V4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdl
dE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKV0sCiAgICAgICAgICAgICBleGVjLT5zY29wZSgpLCBw
Yyk7CisgICAgaWYgKGV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUu
b3Bjb2RlKSA9PSBvcF9lbnRlcikgeworICAgICAgICBkYXRhTG9nRigiRnJhbWUgd2lsbCBldmVu
dHVhbGx5IHJldHVybiB0byAlcFxuIiwgZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKKyAgICAg
ICAgKmJpdHdpc2VfY2FzdDx2b2xhdGlsZSBjaGFyKj4oZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgp
KTsKKyAgICB9CiAgICAgaWYgKGV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBj
WzBdLnUub3Bjb2RlKSA9PSBvcF9yZXQpIHsKICAgICAgICAgZGF0YUxvZ0YoIldpbGwgYmUgcmV0
dXJuaW5nIHRvICVwXG4iLCBleGVjLT5yZXR1cm5QQygpLnZhbHVlKCkpOwogICAgICAgICBkYXRh
TG9nRigiVGhlIG5ldyBjZnIgd2lsbCBiZSAlcFxuIiwgZXhlYy0+Y2FsbGVyRnJhbWUoKSk7CkBA
IC0zMjUsMTUgKzMzNywxNyBAQCBzdGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGVudHJ5T1NSKEV4
ZWNTCiAgICAgCiAgICAgaWYgKCFzaG91bGRKSVQoZXhlYykpIHsKICAgICAgICAgY29kZUJsb2Nr
LT5kb250SklUQW55dGltZVNvb24oKTsKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVj
KTsKKyAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsKICAgICB9CiAgICAgaWYgKCFqaXRD
b21waWxlQW5kU2V0SGV1cmlzdGljcyhjb2RlQmxvY2ssIGV4ZWMpKQotICAgICAgICBMTElOVF9S
RVRVUk5fVFdPKDAsIGV4ZWMpOworICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAg
IAogICAgIGlmIChraW5kID09IFByb2xvZ3VlKQotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKGNv
ZGVCbG9jay0+aml0Q29kZSgpLT5leGVjdXRhYmxlQWRkcmVzcygpLCBleGVjKTsKKyAgICAgICAg
TExJTlRfUkVUVVJOX1RXTyhjb2RlQmxvY2stPmppdENvZGUoKS0+ZXhlY3V0YWJsZUFkZHJlc3Mo
KSwgMCk7CiAgICAgQVNTRVJUKGtpbmQgPT0gQXJpdHlDaGVjayk7Ci0gICAgTExJTlRfUkVUVVJO
X1RXTyhjb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpLmV4ZWN1dGFibGVBZGRyZXNz
KCksIGV4ZWMpOworICAgIExMSU5UX1JFVFVSTl9UV08oY29kZUJsb2NrLT5qaXRDb2RlKCktPmFk
ZHJlc3NGb3JDYWxsKAorICAgICAgICAqY29kZUJsb2NrLT52bSgpLCBjb2RlQmxvY2stPm93bmVy
RXhlY3V0YWJsZSgpLCBNdXN0Q2hlY2tBcml0eSwKKyAgICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Ob3RSZXF1aXJlZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwgMCk7CiB9CiAjZWxzZSAvLyBFTkFC
TEUoSklUKQogc3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBlbnRyeU9TUihFeGVjU3RhdGUqIGV4
ZWMsIEluc3RydWN0aW9uKiwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IGNoYXIqLCBFbnRy
eUtpbmQpCkBAIC0zODEsMTEgKzM5NSwxMSBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChsb29wX29z
cikKICAgICAKICAgICBpZiAoIXNob3VsZEpJVChleGVjKSkgewogICAgICAgICBjb2RlQmxvY2st
PmRvbnRKSVRBbnl0aW1lU29vbigpOwotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIGV4ZWMp
OworICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAgIH0KICAgICAKICAgICBpZiAo
IWppdENvbXBpbGVBbmRTZXRIZXVyaXN0aWNzKGNvZGVCbG9jaywgZXhlYykpCi0gICAgICAgIExM
SU5UX1JFVFVSTl9UV08oMCwgZXhlYyk7CisgICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgMCk7
CiAgICAgCiAgICAgQVNTRVJUKGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2Vs
aW5lSklUKTsKICAgICAKQEAgLTM5OCwxMCArNDEyLDEwIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNM
KGxvb3Bfb3NyKQogICAgIHZvaWQqIGp1bXBUYXJnZXQgPSBjb2RlQmxvY2stPmppdENvZGUoKS0+
ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChtYXBwaW5nLT5tX21hY2hpbmVDb2RlT2Zmc2V0KTsK
ICAgICBBU1NFUlQoanVtcFRhcmdldCk7CiAgICAgCi0gICAgTExJTlRfUkVUVVJOX1RXTyhqdW1w
VGFyZ2V0LCBleGVjKTsKKyAgICBMTElOVF9SRVRVUk5fVFdPKGp1bXBUYXJnZXQsIGV4ZWMtPnRv
cE9mRnJhbWUoKSk7CiAjZWxzZSAvLyBFTkFCTEUoSklUKQogICAgIGNvZGVCbG9jay0+ZG9udEpJ
VEFueXRpbWVTb29uKCk7Ci0gICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICBMTElO
VF9SRVRVUk5fVFdPKDAsIDApOwogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiB9CiAKQEAgLTQzNywx
MyArNDUxLDM0IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHN0YWNrX2NoZWNrKQogICAgIGRhdGFM
b2dGKCJOdW0gdmFycyA9ICV1LlxuIiwgZXhlYy0+Y29kZUJsb2NrKCktPm1fbnVtVmFycyk7CiAg
ICAgZGF0YUxvZ0YoIkN1cnJlbnQgZW5kIGlzIGF0ICVwLlxuIiwgZXhlYy0+dm0oKS5pbnRlcnBy
ZXRlci0+c3RhY2soKS5lbmQoKSk7CiAjZW5kaWYKLSAgICBBU1NFUlQoIWV4ZWMtPnZtKCkuaW50
ZXJwcmV0ZXItPnN0YWNrKCkuY29udGFpbnNBZGRyZXNzKCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0
dWFsUmVnaXN0ZXJGb3JMb2NhbChleGVjLT5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3Rl
cnMpLm9mZnNldCgpXSkpOwotICAgIGlmIChVTkxJS0VMWSghdm0uaW50ZXJwcmV0ZXItPnN0YWNr
KCkuZ3JvdygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZXhlYy0+
Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKS5vZmZzZXQoKV0pKSkgewotICAgICAg
ICBleGVjID0gZXhlYy0+Y2FsbGVyRnJhbWUoKTsKLSAgICAgICAgQ29tbW9uU2xvd1BhdGhzOjpp
bnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4
ZWMpKTsKLSAgICAgICAgcGMgPSByZXR1cm5Ub1Rocm93Rm9yVGhyb3duRXhjZXB0aW9uKGV4ZWMp
OwotICAgIH0KLSAgICBMTElOVF9FTkRfSU1QTCgpOworCisgICAgLy8gVGhpcyBzdGFjayBjaGVj
ayBpcyBkb25lIGluIHRoZSBwcm9sb2d1ZSBmb3IgYSBmdW5jdGlvbiBjYWxsLCBhbmQgdGhlCisg
ICAgLy8gQ2FsbEZyYW1lIGlzIG5vdCBjb21wbGV0ZWx5IHNldCB1cCB5ZXQuIEZvciBleGFtcGxl
LCBpZiB0aGUgZnJhbWUgbmVlZHMKKyAgICAvLyBhbiBhY3RpdmF0aW9uIG9iamVjdCwgdGhlIGFj
dGl2YXRpb24gb2JqZWN0IHdpbGwgb25seSBiZSBzZXQgdXAgYWZ0ZXIKKyAgICAvLyB3ZSBzdGFy
dCBleGVjdXRpbmcgdGhlIGZ1bmN0aW9uLiBJZiB3ZSBuZWVkIHRvIHRocm93IGEgU3RhY2tPdmVy
Zmxvd0Vycm9yCisgICAgLy8gaGVyZSwgdGhlbiB3ZSBuZWVkIHRvIHRlbGwgdGhlIHByb2xvZ3Vl
IHRvIHN0YXJ0IHRoZSBzdGFjayB1bndpbmRpbmcgZnJvbQorICAgIC8vIHRoZSBjYWxsZXIgZnJh
bWUgKHdoaWNoIGlzIGZ1bGx5IHNldCB1cCkgaW5zdGVhZC4gVG8gZG8gdGhhdCwgd2UgcmV0dXJu
CisgICAgLy8gdGhlIGNhbGxlcidzIENhbGxGcmFtZSBpbiB0aGUgc2Vjb25kIHJldHVybiB2YWx1
ZS4KKyAgICAvLworICAgIC8vIElmIHRoZSBzdGFjayBjaGVjayBzdWNjZWVkcyBhbmQgd2UgZG9u
J3QgbmVlZCB0byB0aHJvdyB0aGUgZXJyb3IsIHRoZW4KKyAgICAvLyB3ZSdsbCByZXR1cm4gMCBp
bnN0ZWFkLiBUaGUgcHJvbG9ndWUgd2lsbCBjaGVjayBmb3IgYSBub24temVybyB2YWx1ZQorICAg
IC8vIHdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciB0byBzZXQgdGhlIGNhbGxGcmFtZSBvciBub3Qu
CisKKyAgICAvLyBGb3IgSklUIGVuYWJsZWQgYnVpbGRzIHdoaWNoIHVzZXMgdGhlIEMgc3RhY2ss
IHRoZSBzdGFjayBpcyBub3QgZ3Jvd2FibGUuCisgICAgLy8gSGVuY2UsIGlmIHdlIGdldCBoZXJl
LCB0aGVuIHdlIGtub3cgYSBzdGFjayBvdmVyZmxvdyBpcyBpbW1pbmVudC4gU28sIGp1c3QKKyAg
ICAvLyB0aHJvdyB0aGUgU3RhY2tPdmVyZmxvd0Vycm9yIHVuY29uZGl0aW9uYWxseS4KKyNpZiBF
TkFCTEUoTExJTlRfQ19MT09QKQorICAgIEFTU0VSVCghdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCku
Y29udGFpbnNBZGRyZXNzKGV4ZWMtPnRvcE9mRnJhbWUoKSkpOworICAgIGlmIChMSUtFTFkodm0u
aW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IoZXhlYy0+dG9wT2ZGcmFtZSgp
KSkpCisgICAgICAgIExMSU5UX1JFVFVSTl9UV08ocGMsIDApOworI2VuZGlmCisKKyAgICBleGVj
ID0gZXhlYy0+Y2FsbGVyRnJhbWUoKTsKKyAgICB2bS50b3BDYWxsRnJhbWUgPSBleGVjOworICAg
IEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKHZtKTsKKyAgICBDb21tb25TbG93UGF0aHM6
OmludGVycHJldGVyVGhyb3dJbkNhbGxlcihleGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3Io
ZXhlYykpOworICAgIHBjID0gcmV0dXJuVG9UaHJvd0ZvclRocm93bkV4Y2VwdGlvbihleGVjKTsK
KyAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCBleGVjKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX2NyZWF0ZV9hY3RpdmF0aW9uKQpAQCAtMTA0NSw3ICsxMDgwLDcgQEAgaW5s
aW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBzZXRVcENhbGwoRXhlYwogICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBjb2RlUHRyOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gMDsKICAgICBpZiAo
ZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkKLSAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFi
bGUtPmhvc3RDb2RlRW50cnlGb3Ioa2luZCk7CisgICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxl
LT5lbnRyeXBvaW50Rm9yKHZtLCBraW5kLCBNdXN0Q2hlY2tBcml0eSwgUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Ob3RSZXF1aXJlZCk7CiAgICAgZWxzZSB7CiAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJs
ZSogZnVuY3Rpb25FeGVjdXRhYmxlID0gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4o
ZXhlY3V0YWJsZSk7CiAgICAgICAgIEpTT2JqZWN0KiBlcnJvciA9IGZ1bmN0aW9uRXhlY3V0YWJs
ZS0+cHJlcGFyZUZvckV4ZWN1dGlvbihleGVjQ2FsbGVlLCBjYWxsZWUtPnNjb3BlKCksIGtpbmQp
OwpAQCAtMTA1MywxMiArMTA4OCwxNiBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHNldFVw
Q2FsbChFeGVjCiAgICAgICAgICAgICBMTElOVF9DQUxMX1RIUk9XKGV4ZWNDYWxsZWUtPmNhbGxl
ckZyYW1lKCksIGVycm9yKTsKICAgICAgICAgY29kZUJsb2NrID0gZnVuY3Rpb25FeGVjdXRhYmxl
LT5jb2RlQmxvY2tGb3Ioa2luZCk7CiAgICAgICAgIEFTU0VSVChjb2RlQmxvY2spOworICAgICAg
ICBBcml0eUNoZWNrTW9kZSBhcml0eTsKICAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVt
UGFyYW1ldGVycygpKSkKLSAgICAgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUt
PmpzQ29kZVdpdGhBcml0eUNoZWNrRW50cnlGb3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9
IE11c3RDaGVja0FyaXR5OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVu
Y3Rpb25FeGVjdXRhYmxlLT5qc0NvZGVFbnRyeUZvcihraW5kKTsKKyAgICAgICAgICAgIGFyaXR5
ID0gQXJpdHlDaGVja05vdFJlcXVpcmVkOworICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVj
dXRhYmxlLT5lbnRyeXBvaW50Rm9yKHZtLCBraW5kLCBhcml0eSwgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Ob3RSZXF1aXJlZCk7CiAgICAgfQogICAgIAorICAgIEFTU0VSVCghIWNvZGVQdHIpOworICAg
IAogICAgIGlmICghTExJTlRfQUxXQVlTX0FDQ0VTU19TTE9XICYmIGNhbGxMaW5rSW5mbykgewog
ICAgICAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZXIgPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgp
OwogICAgICAgICAKQEAgLTExMTAsMTkgKzExNDksMTkgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0wo
c2xvd19wYXRoX2NvbnN0cnVjdAogICAgIHJldHVybiBnZW5lcmljQ2FsbChleGVjLCBwYywgQ29k
ZUZvckNvbnN0cnVjdCk7CiB9CiAKLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zaXpl
X2FuZF9hbGxvY19mcmFtZV9mb3JfdmFyYXJncykKK0xMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJhcmdzKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAg
Ly8gVGhpcyBuZWVkcyB0bzoKICAgICAvLyAtIFNldCB1cCBhIGNhbGwgZnJhbWUgd2hpbGUgcmVz
cGVjdGluZyB0aGUgdmFyaWFibGUgYXJndW1lbnRzLgogICAgIAotICAgIEV4ZWNTdGF0ZSogZXhl
Y0NhbGxlZSA9IHNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhleGVjLCAmdm0uaW50ZXJwcmV0
ZXItPnN0YWNrKCksCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlID0gc2l6ZUZyYW1lRm9yVmFy
YXJncyhleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksCiAgICAgICAgIExMSU5UX09QX0Mo
NCkuanNWYWx1ZSgpLCBwY1s1XS51Lm9wZXJhbmQpOwogICAgIExMSU5UX0NBTExfQ0hFQ0tfRVhD
RVBUSU9OKGV4ZWMpOwogICAgIAogICAgIHZtLm5ld0NhbGxGcmFtZVJldHVyblZhbHVlID0gZXhl
Y0NhbGxlZTsKIAotICAgIExMSU5UX0VORCgpOworICAgIExMSU5UX1JFVFVSTl9DQUxMRUVfRlJB
TUUoZXhlY0NhbGxlZSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxs
X3ZhcmFyZ3MpCkBAIC0xMzEyLDEzICsxMzUxLDYgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xv
d19wYXRoX3Byb2ZpbGVfZAogICAgIExMSU5UX0VORCgpOwogfQogCi1MTElOVF9TTE9XX1BBVEhf
REVDTCh0aHJvd19mcm9tX25hdGl2ZV9jYWxsKQotewotICAgIExMSU5UX0JFR0lOKCk7Ci0gICAg
QVNTRVJUKHZtLmV4Y2VwdGlvbigpKTsKLSAgICBMTElOVF9FTkQoKTsKLX0KLQogTExJTlRfU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX2hhbmRsZV9leGNlcHRpb24pCiB7CiAgICAgTExJTlRfQkVH
SU5fTk9fU0VUX1BDKCk7CkBAIC0xMzg4LDYgKzE0MjAsMjMgQEAgTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX3B1dF90b19zYwogICAgIExMSU5UX0VORCgpOwogfQogCitleHRlcm4gIkMi
IFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvcihWTSog
dm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90b0ZyYW1lKQoreworICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IHZtLT50b3BDYWxsRnJhbWU7CisgICAgaWYgKCFleGVjKQorICAgICAgICBleGVjID0gcHJvdG9G
cmFtZS0+c2NvcGUoKS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKKyAgICB0aHJvd1N0
YWNrT3ZlcmZsb3dFcnJvcihleGVjKTsKKyAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwor
fQorCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5U
eXBlIGxsaW50X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5KFZNKiB2bSwgUmVnaXN0ZXIqIG5ld1Rv
cE9mU3RhY2spCit7CisgICAgYm9vbCBzdWNjZXNzID0gdm0tPmludGVycHJldGVyLT5zdGFjaygp
LmVuc3VyZUNhcGFjaXR5Rm9yKG5ld1RvcE9mU3RhY2spOworICAgIHJldHVybiBlbmNvZGVSZXN1
bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3VjY2VzcyksIDApOworfQorI2VuZGlmCisKIGV4
dGVybiAiQyIgdm9pZCBsbGludF93cml0ZV9iYXJyaWVyX3Nsb3coRXhlY1N0YXRlKiwgSlNDZWxs
KiBjZWxsKQogewogICAgIEhlYXA6OndyaXRlQmFycmllcihjZWxsKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRl
Owogc3RydWN0IEluc3RydWN0aW9uOworc3RydWN0IFByb3RvQ2FsbEZyYW1lOwogCiBuYW1lc3Bh
Y2UgTExJbnQgewogCkBAIC0xMDEsNyArMTAyLDcgQEAgTExJTlRfU0xPV19QQVRIX0hJRERFTl9E
RUNMKHNsb3dfcGF0aF9uZQogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9u
ZXdfZnVuY19leHApOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jYWxs
KTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY29uc3RydWN0KTsKLUxM
SU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVf
Zm9yX3ZhcmFyZ3MpOworTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9zaXpl
X2ZyYW1lX2Zvcl92YXJhcmdzKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfY2FsbF92YXJhcmdzKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
Y2FsbF9ldmFsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdGVhcl9v
ZmZfYWN0aXZhdGlvbik7CkBAIC0xMTksMTEgKzEyMCwxNCBAQCBMTElOVF9TTE9XX1BBVEhfSElE
REVOX0RFQ0woc2xvd19wYXRoX2hhCiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19w
YXRoX2RlYnVnKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHJvZmls
ZV93aWxsX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wcm9m
aWxlX2RpZF9jYWxsKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTCh0aHJvd19mcm9tX25h
dGl2ZV9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaGFuZGxl
X2V4Y2VwdGlvbik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Jlc29s
dmVfc2NvcGUpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfZnJv
bV9zY29wZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF90b19z
Y29wZSk7CitleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90aHJvd19zdGFja19v
dmVyZmxvd19lcnJvcihWTSosIFByb3RvQ2FsbEZyYW1lKikgV1RGX0lOVEVSTkFMOworI2lmIEVO
QUJMRShMTElOVF9DX0xPT1ApCitleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF9z
dGFja19jaGVja19hdF92bV9lbnRyeShWTSosIFJlZ2lzdGVyKikgV1RGX0lOVEVSTkFMOworI2Vu
ZGlmCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTk0LDU4ICs5NCwxNiBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcHJvZ3JhbUVudHJ5VGh1
bmtHCiAKIC8vIE5vbi1KSVQgKGkuZS4gQyBMb29wIExMSU5UKSBjYXNlOgogCi10eXBlZGVmIEpT
VmFsdWUgKCpFeGVjdXRlQ29kZSkgKENhbGxGcmFtZSosIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNz
KTsKLQotdGVtcGxhdGU8RXhlY3V0ZUNvZGUgZXhlY3V0ZT4KLUVuY29kZWRKU1ZhbHVlIGRvQ2Fs
bFRvSmF2YVNjcmlwdCh2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgUHJvdG9DYWxsRnJhbWUqIHBy
b3RvQ2FsbEZyYW1lKQorRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiBleGVj
dXRhYmxlQWRkcmVzcywgVk0qIHZtLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUpCiB7
Ci0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBwcm90b0NhbGxGcmFtZS0+Y29kZUJsb2NrKCk7
Ci0gICAgSlNTY29wZSogc2NvcGUgPSBwcm90b0NhbGxGcmFtZS0+c2NvcGUoKTsKLSAgICBKU09i
amVjdCogY2FsbGVlID0gcHJvdG9DYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGludCBhcmdDb3Vu
dEluY2x1ZGluZ1RoaXMgPSBwcm90b0NhbGxGcmFtZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMoKTsKLSAgICBpbnQgYXJnQ291bnQgPSBwcm90b0NhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgp
OwotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gcHJvdG9DYWxsRnJhbWUtPnRoaXNWYWx1ZSgpOwot
ICAgIEpTU3RhY2smIHN0YWNrID0gc2NvcGUtPnZtKCktPmludGVycHJldGVyLT5zdGFjaygpOwot
Ci0gICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBzdGFjay5wdXNoRnJhbWUoY29kZUJsb2Nr
LCBzY29wZSwgYXJnQ291bnRJbmNsdWRpbmdUaGlzLCBjYWxsZWUpOwotICAgIGlmIChVTkxJS0VM
WSghbmV3Q2FsbEZyYW1lKSkgewotICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0gc2NvcGUtPmdsb2JhbE9iamVjdCgpOwotICAgICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9i
YWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7Ci0gICAgfQotCi0gICAgLy8gU2V0IHRoZSBh
cmd1bWVudHMgZm9yIHRoZSBjYWxsZWU6Ci0gICAgbmV3Q2FsbEZyYW1lLT5zZXRUaGlzVmFsdWUo
dGhpc1ZhbHVlKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ0NvdW50OyArK2kpCi0gICAg
ICAgIG5ld0NhbGxGcmFtZS0+c2V0QXJndW1lbnQoaSwgcHJvdG9DYWxsRnJhbWUtPmFyZ3VtZW50
KGkpKTsKLQotICAgIEpTVmFsdWUgcmVzdWx0ID0gZXhlY3V0ZShuZXdDYWxsRnJhbWUsIGV4ZWN1
dGFibGVBZGRyZXNzKTsKLQotICAgIHN0YWNrLnBvcEZyYW1lKG5ld0NhbGxGcmFtZSk7Ci0KKyAg
ICBKU1ZhbHVlIHJlc3VsdCA9IENMb29wOjpleGVjdXRlKGxsaW50X2NhbGxfdG9famF2YXNjcmlw
dCwgZXhlY3V0YWJsZUFkZHJlc3MsIHZtLCBwcm90b0NhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUgZXhlY3V0
ZUpTKENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcykKLXsK
LSAgICBPcGNvZGUgZW50cnlPcGNvZGUgPSAqcmVpbnRlcnByZXRfY2FzdDxPcGNvZGUqPigmZXhl
Y3V0YWJsZUFkZHJlc3MpOwotICAgIHJldHVybiBDTG9vcDo6ZXhlY3V0ZShuZXdDYWxsRnJhbWUs
IGVudHJ5T3Bjb2RlKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lk
KiBleGVjdXRhYmxlQWRkcmVzcywgRXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiBwcm90b0Nh
bGxGcmFtZSwgUmVnaXN0ZXIqKQotewotICAgIHJldHVybiBkb0NhbGxUb0phdmFTY3JpcHQ8ZXhl
Y3V0ZUpTPihleGVjdXRhYmxlQWRkcmVzcywgcHJvdG9DYWxsRnJhbWUpOwotfQotCi1zdGF0aWMg
aW5saW5lIEpTVmFsdWUgZXhlY3V0ZU5hdGl2ZShDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgdm9p
ZCogZXhlY3V0YWJsZUFkZHJlc3MpCitFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlv
bih2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgVk0qIHZtLCBQcm90b0NhbGxGcmFtZSogcHJvdG9D
YWxsRnJhbWUpCiB7Ci0gICAgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24gPSByZWludGVycHJldF9j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihleGVjdXRhYmxlQWRkcmVzcyk7Ci0gICAgcmV0dXJuIEpTVmFs
dWU6OmRlY29kZShmdW5jdGlvbihuZXdDYWxsRnJhbWUpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUg
Y2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIEV4ZWNTdGF0ZSoq
LCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUsIFJlZ2lzdGVyKikKLXsKLSAgICByZXR1
cm4gZG9DYWxsVG9KYXZhU2NyaXB0PGV4ZWN1dGVOYXRpdmU+KGV4ZWN1dGFibGVBZGRyZXNzLCBw
cm90b0NhbGxGcmFtZSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBDTG9vcDo6ZXhlY3V0ZShsbGlu
dF9jYWxsX3RvX25hdGl2ZV9mdW5jdGlvbiwgZXhlY3V0YWJsZUFkZHJlc3MsIHZtLCBwcm90b0Nh
bGxGcmFtZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFRodW5rcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFRodW5rcy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRUaHVua3MuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTYgKzM0LDE0IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1jbGFzcyBFeGVjU3RhdGU7Ci1jbGFzcyBSZWdpc3RlcjsKIGNsYXNz
IFZNOwogc3RydWN0IFByb3RvQ2FsbEZyYW1lOwogCiBleHRlcm4gIkMiIHsKLSAgICBFbmNvZGVk
SlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJh
bWUqLCBSZWdpc3RlciopOwotICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9u
KHZvaWQqLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOworICAgIEVu
Y29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCosIFZNKiwgUHJvdG9DYWxsRnJhbWUq
KTsKKyAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiwgVk0qLCBQ
cm90b0NhbGxGcmFtZSopOwogI2lmIEVOQUJMRShKSVQpCi0gICAgdm9pZCByZXR1cm5Gcm9tSmF2
YVNjcmlwdCgpOworICAgIHZvaWQgaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24oKTsKICNlbmRpZgog
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
MiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMiw5ICsxMDIsMTEgQEAgbWFjcm8gY0NhbGwyKGZ1bmN0
aW9uLCBhcmcxLCBhcmcyKQogICAgICAgICBtb3ZlIGFyZzIsIGExCiAgICAgICAgIGNhbGwgZnVu
Y3Rpb24KICAgICBlbHNpZiBYODYKLSAgICAgICAgcG9rZSBhcmcxLCAwCi0gICAgICAgIHBva2Ug
YXJnMiwgMQorICAgICAgICBzdWJwIDgsIHNwCisgICAgICAgIHB1c2ggYXJnMgorICAgICAgICBw
dXNoIGFyZzEKICAgICAgICAgY2FsbCBmdW5jdGlvbgorICAgICAgICBhZGRwIDE2LCBzcAogICAg
IGVsc2lmIFNINAogICAgICAgICBzZXRhcmdzIGFyZzEsIGFyZzIKICAgICAgICAgY2FsbCBmdW5j
dGlvbgpAQCAtMTI0LDExICsxMjYsMTIgQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBh
cmcyLCBhcmczLAogICAgICAgICBtb3ZlIGFyZzQsIGEzCiAgICAgICAgIGNhbGwgZnVuY3Rpb24K
ICAgICBlbHNpZiBYODYKLSAgICAgICAgcG9rZSBhcmcxLCAwCi0gICAgICAgIHBva2UgYXJnMiwg
MQotICAgICAgICBwb2tlIGFyZzMsIDIKLSAgICAgICAgcG9rZSBhcmc0LCAzCisgICAgICAgIHB1
c2ggYXJnNAorICAgICAgICBwdXNoIGFyZzMKKyAgICAgICAgcHVzaCBhcmcyCisgICAgICAgIHB1
c2ggYXJnMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAgICAgIGFkZHAgMTYsIHNwCiAgICAg
ZWxzaWYgU0g0CiAgICAgICAgIHNldGFyZ3MgYXJnMSwgYXJnMiwgYXJnMywgYXJnNAogICAgICAg
ICBjYWxsIGZ1bmN0aW9uCkBAIC0xNDIsODUgKzE0NSw0MiBAQCBlbmQKIG1hY3JvIGNhbGxTbG93
UGF0aChzbG93UGF0aCkKICAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCiAgICAgbW92ZSB0
MCwgUEMKLSAgICBtb3ZlIHQxLCBjZnIKLWVuZAotCi1tYWNybyBmdW5jdGlvblByb2xvZ3VlKGV4
dHJhU3RhY2tTcGFjZSkKLSAgICBpZiBYODYKLSAgICAgICAgcHVzaCBjZnIKLSAgICAgICAgbW92
ZSBzcCwgY2ZyCi0gICAgZW5kCi0gICAgcHVzaENhbGxlZVNhdmVzCi0gICAgaWYgQVJNIG9yIEFS
TXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKLSAgICAgICAgcHVzaCBjZnIKLSAgICAg
ICAgcHVzaCBscgotICAgIGVuZAotICAgIHN1YnAgZXh0cmFTdGFja1NwYWNlLCBzcAogZW5kCiAK
LW1hY3JvIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1NwYWNlKQotICAgIGFkZHAgZXh0cmFT
dGFja1NwYWNlLCBzcAotICAgIGlmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBv
ciBNSVBTCi0gICAgICAgIHBvcCBscgotICAgICAgICBwb3AgY2ZyCi0gICAgZW5kCi0gICAgcG9w
Q2FsbGVlU2F2ZXMKK21hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCkKICAgICBpZiBY
ODYKLSAgICAgICAgcG9wIGNmcgotICAgIGVuZAotZW5kCisgICAgICAgIGNvbnN0IGVudHJ5ID0g
dDQKKyAgICAgICAgY29uc3Qgdm0gPSB0MworICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9
IHQ1CiAKLW1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXR1cm4pCi0gICAg
aWYgWDg2Ci0gICAgICAgIGNvbnN0IGVudHJ5ID0gdDUKLSAgICAgICAgY29uc3Qgdm1Ub3BDYWxs
RnJhbWUgPSB0MgotICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IHQ0Ci0KLSAgICAgICAg
Y29uc3QgZXh0cmFTdGFja1NwYWNlID0gMjgKICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0
MAogICAgICAgICBjb25zdCBwcmV2aW91c1BDID0gdDEKICAgICAgICAgY29uc3QgdGVtcDEgPSB0
MCAjIFNhbWUgYXMgcHJldmlvdXNDRlIKICAgICAgICAgY29uc3QgdGVtcDIgPSB0MSAjIFNhbWUg
YXMgcHJldmlvdXNQQwotICAgICAgICBjb25zdCB0ZW1wMyA9IHQyICMgc2FtZSBhcyB2bVRvcENh
bGxGcmFtZQotICAgICAgICBjb25zdCB0ZW1wNCA9IHQzCi0gICAgZWxzaWYgQVJNIG9yIEFSTXY3
X1RSQURJVElPTkFMCi0gICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm1U
b3BDYWxsRnJhbWUgPSBhMQotICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IGEyCi0gICAg
ICAgIGNvbnN0IHRvcE9mU3RhY2sgPSBhMwotCi0gICAgICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFj
ZSA9IDE2Ci0gICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDMKLSAgICAgICAgY29uc3QgcHJl
dmlvdXNQQyA9IGxyCi0gICAgICAgIGNvbnN0IHRlbXAxID0gdDMgIyBTYW1lIGFzIHByZXZpb3Vz
Q0ZSCi0gICAgICAgIGNvbnN0IHRlbXAyID0gYTMgIyBTYW1lIGFzIHRvcE9mU3RhY2sKLSAgICAg
ICAgY29uc3QgdGVtcDMgPSB0NAotICAgICAgICBjb25zdCB0ZW1wNCA9IHQ1Ci0gICAgZWxzaWYg
QVJNdjcKKyAgICAgICAgY29uc3QgdGVtcDMgPSB0MgorICAgICAgICBjb25zdCB0ZW1wNCA9IHQz
ICMgc2FtZSBhcyB2bQorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05B
TCBvciBDX0xPT1AKICAgICAgICAgY29uc3QgZW50cnkgPSBhMAotICAgICAgICBjb25zdCB2bVRv
cENhbGxGcmFtZSA9IGExCisgICAgICAgIGNvbnN0IHZtID0gYTEKICAgICAgICAgY29uc3QgcHJv
dG9DYWxsRnJhbWUgPSBhMgotICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gYTMKIAotICAgICAg
ICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAyOAogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9
IHQzCiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSBscgogICAgICAgICBjb25zdCB0ZW1wMSA9
IHQzICMgU2FtZSBhcyBwcmV2aW91c0NGUgotICAgICAgICBjb25zdCB0ZW1wMiA9IGEzICMgU2Ft
ZSBhcyB0b3BPZlN0YWNrCi0gICAgICAgIGNvbnN0IHRlbXAzID0gdDQKLSAgICAgICAgY29uc3Qg
dGVtcDQgPSB0NQorICAgICAgICBjb25zdCB0ZW1wMiA9IHQ0CisgICAgICAgIGNvbnN0IHRlbXAz
ID0gdDUKKyAgICAgICAgY29uc3QgdGVtcDQgPSB0NCAjIFNhbWUgYXMgdGVtcDIKICAgICBlbHNp
ZiBNSVBTCiAgICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKICAgICAgICAgY29uc3Qgdm1Ub3BDYWxs
RnJhbWUgPSBhMQogICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IGEyCiAgICAgICAgIGNv
bnN0IHRvcE9mU3RhY2sgPSBhMwogCi0gICAgICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDM2
CiAgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDIKICAgICAgICAgY29uc3QgcHJldmlvdXNQ
QyA9IGxyCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDMKLSAgICAgICAgY29uc3QgdGVtcDIgPSB0
NAotICAgICAgICBjb25zdCB0ZW1wMyA9IHQ1CisgICAgICAgIGNvbnN0IHRlbXAyID0gdDUKKyAg
ICAgICAgY29uc3QgdGVtcDMgPSB0NAogICAgICAgICBjb25zdCB0ZW1wNCA9IHQ2CiAgICAgZWxz
aWYgU0g0CiAgICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKQEAgLTIyOCw3ICsxODgsNiBAQCBtYWNy
byBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0CiAgICAgICAgIGNvbnN0IHByb3Rv
Q2FsbEZyYW1lID0gYTIKICAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAg
Y29uc3QgZXh0cmFTdGFja1NwYWNlID0gMjAKICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0
MwogICAgICAgICBjb25zdCBwcmV2aW91c1BDID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0
MyAjIFNhbWUgYXMgcHJldmlvdXNDRlIKQEAgLTIzNyw0OSArMTk2LDc4IEBAIG1hY3JvIGRvQ2Fs
bFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXQKICAgICAgICAgY29uc3QgdGVtcDQgPSB0OQog
ICAgIGVuZAogCisgICAgY2FsbFRvSmF2YVNjcmlwdFByb2xvZ3VlKCkKKwogICAgIGlmIFg4Ngot
ICAgICAgICBsb2FkcCBbc3BdLCBwcmV2aW91c1BDCi0gICAgICAgIG1vdmUgY2ZyLCBwcmV2aW91
c0NGUgotICAgIGVuZAotICAgIGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQotICAg
IGlmIFg4NgotICAgICAgICBsb2FkcCBleHRyYVN0YWNrU3BhY2UrMjBbc3BdLCBlbnRyeQotICAg
ICAgICBsb2FkcCBleHRyYVN0YWNrU3BhY2UrMjRbc3BdLCB2bVRvcENhbGxGcmFtZQotICAgICAg
ICBsb2FkcCBleHRyYVN0YWNrU3BhY2UrMjhbc3BdLCBwcm90b0NhbGxGcmFtZQotICAgICAgICBs
b2FkcCBleHRyYVN0YWNrU3BhY2UrMzJbc3BdLCBjZnIKKyAgICAgICAgbG9hZHAgMzZbc3BdLCB2
bQorICAgICAgICBsb2FkcCAzMltzcF0sIGVudHJ5CiAgICAgZWxzZQogICAgICAgICBtb3ZlIGNm
ciwgcHJldmlvdXNDRlIKLSAgICAgICAgbW92ZSB0b3BPZlN0YWNrLCBjZnIKICAgICBlbmQKIAot
ICAgIHN1YnAgKENhbGxGcmFtZUhlYWRlclNsb3RzLTEpKjgsIGNmcgotICAgIHN0b3JlcCAwLCBB
cmd1bWVudENvdW50KzRbY2ZyXQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAy
LCAweGJhZDBkYzAxKQorCisgICAgIyBUaGUgc3RhY2sgcmVzZXJ2ZWQgem9uZSBlbnN1cmVzIHRo
YXQgd2UgaGF2ZSBhZGVxdWF0ZSBzcGFjZSBmb3IgdGhlCisgICAgIyBWTUVudHJ5U2VudGluZWxG
cmFtZS4gUHJvY2VlZCB3aXRoIGFsbG9jYXRpbmcgYW5kIGluaXRpYWxpemluZyB0aGUKKyAgICAj
IHNlbnRpbmVsIGZyYW1lLgorICAgIG1vdmUgc3AsIGNmcgorICAgIHN1YnAgQ2FsbEZyYW1lSGVh
ZGVyU2xvdHMgKiA4LCBjZnIKICAgICBzdG9yZXAgMCwgQXJndW1lbnRDb3VudFtjZnJdCi0gICAg
c3RvcmVwIDAsIENhbGxlZSs0W2Nmcl0KLSAgICBzdG9yZXAgdm1Ub3BDYWxsRnJhbWUsIENhbGxl
ZVtjZnJdCi0gICAgbG9hZHAgW3ZtVG9wQ2FsbEZyYW1lXSwgdGVtcDQKLSAgICBzdG9yZXAgMCwg
U2NvcGVDaGFpbis0W2Nmcl0KLSAgICBzdG9yZXAgdGVtcDQsIFNjb3BlQ2hhaW5bY2ZyXQotICAg
IHN0b3JlcCAwLCBDb2RlQmxvY2srNFtjZnJdCisgICAgc3RvcmVwIHZtLCBDYWxsZWVbY2ZyXQor
ICAgIGxvYWRwIFZNOjp0b3BDYWxsRnJhbWVbdm1dLCB0ZW1wMgorICAgIHN0b3JlcCB0ZW1wMiwg
U2NvcGVDaGFpbltjZnJdCiAgICAgc3RvcmVwIDEsIENvZGVCbG9ja1tjZnJdCisgICAgaWYgWDg2
CisgICAgICAgIGxvYWRwIDI4W3NwXSwgcHJldmlvdXNQQworICAgICAgICBsb2FkcCAyNFtzcF0s
IHByZXZpb3VzQ0ZSCisgICAgZW5kCiAgICAgc3RvcmVwIHByZXZpb3VzUEMsIFJldHVyblBDW2Nm
cl0KICAgICBzdG9yZXAgcHJldmlvdXNDRlIsIENhbGxlckZyYW1lW2Nmcl0KLSAgICBtb3ZlIGNm
ciwgdGVtcDEKKworICAgIGlmIFg4NgorICAgICAgICBsb2FkcCA0MFtzcF0sIHByb3RvQ2FsbEZy
YW1lCisgICAgZW5kCiAKICAgICBsb2FkaSBQcm90b0NhbGxGcmFtZTo6cGFkZGVkQXJnQ291bnRb
cHJvdG9DYWxsRnJhbWVdLCB0ZW1wMgogICAgIGFkZHAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMsIHRl
bXAyLCB0ZW1wMgogICAgIGxzaGlmdHAgMywgdGVtcDIKLSAgICBzdWJwIHRlbXAyLCBjZnIKLSAg
ICBzdG9yZXAgdGVtcDEsIENhbGxlckZyYW1lW2Nmcl0KKyAgICBzdWJwIGNmciwgdGVtcDIsIHRl
bXAxCisKKyAgICAjIEVuc3VyZSB0aGF0IHdlIGhhdmUgZW5vdWdoIGFkZGl0aW9uYWwgc3RhY2sg
Y2FwYWNpdHkgZm9yIHRoZSBpbmNvbWluZyBhcmdzLAorICAgICMgYW5kIHRoZSBmcmFtZSBmb3Ig
dGhlIEpTIGNvZGUgd2UncmUgZXhlY3V0aW5nLiBXZSBuZWVkIHRvIGRvIHRoaXMgY2hlY2sKKyAg
ICAjIGJlZm9yZSB3ZSBzdGFydCBjb3B5aW5nIHRoZSBhcmdzIGZyb20gdGhlIHByb3RvQ2FsbEZy
YW1lIGJlbG93LgorICAgIGJwYWVxIHRlbXAxLCBWTTo6bV9qc1N0YWNrTGltaXRbdm1dLCAuc3Rh
Y2tIZWlnaHRPSworCisgICAgc3VicCBjZnIsIDgsIHNwCisKKyAgICBpZiBDX0xPT1AKKyAgICAg
ICAgbW92ZSBlbnRyeSwgdGVtcDIKKyAgICAgICAgbW92ZSB2bSwgdGVtcDMKKyAgICAgICAgY2xv
b3BDYWxsU2xvd1BhdGggX2xsaW50X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5LCB2bSwgdGVtcDEK
KyAgICAgICAgYnBlcSB0MCwgMCwgLnN0YWNrQ2hlY2tGYWlsZWQKKyAgICAgICAgbW92ZSB0ZW1w
MiwgZW50cnkKKyAgICAgICAgbW92ZSB0ZW1wMywgdm0KKyAgICAgICAgam1wIC5zdGFja0hlaWdo
dE9LCisKKy5zdGFja0NoZWNrRmFpbGVkOgorICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQorICAg
ICAgICBtb3ZlIHRlbXAzLCB2bQorICAgIGVuZAorCisgICAgY0NhbGwyKF9sbGludF90aHJvd19z
dGFja19vdmVyZmxvd19lcnJvciwgdm0sIHByb3RvQ2FsbEZyYW1lKQorICAgIGNhbGxUb0phdmFT
Y3JpcHRFcGlsb2d1ZSgpCisgICAgcmV0CiAKKy5zdGFja0hlaWdodE9LOgorICAgIG1vdmUgdGVt
cDEsIHNwCiAgICAgbW92ZSA1LCB0ZW1wMQogCiAuY29weUhlYWRlckxvb3A6CiAgICAgc3ViaSAx
LCB0ZW1wMQotICAgIGxvYWRwIFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMwotICAg
IHN0b3JlcCB0ZW1wMywgQ29kZUJsb2NrW2NmciwgdGVtcDEsIDhdCi0gICAgbG9hZHAgNFtwcm90
b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgQ29kZUJsb2Nr
KzRbY2ZyLCB0ZW1wMSwgOF0KKyAgICBsb2FkaSBUYWdPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHRl
bXAxLCA4XSwgdGVtcDMKKyAgICBzdG9yZWkgdGVtcDMsIFRhZ09mZnNldCArIENvZGVCbG9ja1tz
cCwgdGVtcDEsIDhdCisgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtwcm90b0NhbGxGcmFtZSwgdGVt
cDEsIDhdLCB0ZW1wMworICAgIHN0b3JlaSB0ZW1wMywgUGF5bG9hZE9mZnNldCArIENvZGVCbG9j
a1tzcCwgdGVtcDEsIDhdCiAgICAgYnRpbnogdGVtcDEsIC5jb3B5SGVhZGVyTG9vcAogCiAgICAg
bG9hZGkgUHJvdG9DYWxsRnJhbWU6OmFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVlW3Byb3RvQ2Fs
bEZyYW1lXSwgdGVtcDIKQEAgLTI4OCwxMiArMjc2LDEwIEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNj
cmlwdChtYWtlQ2FsbCwgZG9SZXQKICAgICBzdWJpIDEsIHRlbXAzCiAKICAgICBiaWVxIHRlbXAy
LCB0ZW1wMywgLmNvcHlBcmdzCi0gICAgbW92ZSAwLCB0ZW1wMQotICAgIG1vdmUgVW5kZWZpbmVk
VGFnLCB0ZW1wNAogLmZpbGxFeHRyYUFyZ3NMb29wOgogICAgIHN1YmkgMSwgdGVtcDMKLSAgICBz
dG9yZXAgdGVtcDEsIFRoaXNBcmd1bWVudE9mZnNldCs4K1BheWxvYWRPZmZzZXRbY2ZyLCB0ZW1w
MywgOF0KLSAgICBzdG9yZXAgdGVtcDQsIFRoaXNBcmd1bWVudE9mZnNldCs4K1RhZ09mZnNldFtj
ZnIsIHRlbXAzLCA4XQorICAgIHN0b3JlaSBVbmRlZmluZWRUYWcsIFRoaXNBcmd1bWVudE9mZnNl
dCArIDggKyBUYWdPZmZzZXRbc3AsIHRlbXAzLCA4XQorICAgIHN0b3JlaSAwLCBUaGlzQXJndW1l
bnRPZmZzZXQgKyA4ICsgUGF5bG9hZE9mZnNldFtzcCwgdGVtcDMsIDhdCiAgICAgYmluZXEgdGVt
cDIsIHRlbXAzLCAuZmlsbEV4dHJhQXJnc0xvb3AKIAogLmNvcHlBcmdzOgpAQCAtMzAyLDUyICsy
ODgsODcgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldAogLmNvcHlB
cmdzTG9vcDoKICAgICBidGl6IHRlbXAyLCAuY29weUFyZ3NEb25lCiAgICAgc3ViaSAxLCB0ZW1w
MgotICAgIGxvYWRwIFBheWxvYWRPZmZzZXRbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMKLSAgICBs
b2FkcCBUYWdPZmZzZXRbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDQKLSAgICBzdG9yZXAgdGVtcDMs
IFRoaXNBcmd1bWVudE9mZnNldCs4K1BheWxvYWRPZmZzZXRbY2ZyLCB0ZW1wMiwgOF0KLSAgICBz
dG9yZXAgdGVtcDQsIFRoaXNBcmd1bWVudE9mZnNldCs4K1RhZ09mZnNldFtjZnIsIHRlbXAyLCA4
XQorICAgIGxvYWRpIFRhZ09mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMworICAgIHN0b3Jl
aSB0ZW1wMywgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCArIFRhZ09mZnNldFtzcCwgdGVtcDIsIDhd
CisgICAgbG9hZGkgUGF5bG9hZE9mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMworICAgIHN0
b3JlaSB0ZW1wMywgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCArIFBheWxvYWRPZmZzZXRbc3AsIHRl
bXAyLCA4XQogICAgIGptcCAuY29weUFyZ3NMb29wCiAKIC5jb3B5QXJnc0RvbmU6Ci0gICAgaWYg
WDg2Ci0gICAgICAgIGxvYWRwIGV4dHJhU3RhY2tTcGFjZSsyNFtzcF0sIHZtVG9wQ2FsbEZyYW1l
Ci0gICAgZW5kCi0gICAgc3RvcmVwIGNmciwgW3ZtVG9wQ2FsbEZyYW1lXQorICAgIHN0b3JlcCBz
cCwgVk06OnRvcENhbGxGcmFtZVt2bV0KIAotICAgIG1ha2VDYWxsKGVudHJ5LCB0ZW1wMSkKKyAg
ICBtYWtlQ2FsbChlbnRyeSwgdGVtcDEsIHRlbXAyKQogCiAgICAgYnBlcSBDb2RlQmxvY2tbY2Zy
XSwgMSwgLmNhbGxlZUZyYW1lUG9wcGVkCiAgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2Zy
CiAKIC5jYWxsZWVGcmFtZVBvcHBlZDoKLSAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGVtcDMgIyBW
TS50b3BDYWxsRnJhbWUKLSAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHRlbXA0Ci0gICAgc3Rv
cmVwIHRlbXA0LCBbdGVtcDNdCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAzICMgVk0KKyAg
ICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHRlbXA0ICMgcHJldmlvdXMgdG9wQ2FsbEZyYW1lCisg
ICAgc3RvcmVwIHRlbXA0LCBWTTo6dG9wQ2FsbEZyYW1lW3RlbXAzXQogCi0gICAgZG9SZXR1cm4o
ZXh0cmFTdGFja1NwYWNlKQorICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisgICAgcmV0
CiBlbmQKIAotbWFjcm8gbWFrZUphdmFTY3JpcHRDYWxsKGVudHJ5LCB0ZW1wKQotICAgIGNhbGwg
ZW50cnkKK21hY3JvIG1ha2VKYXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCwgdW51c2VkKQorICAg
IGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHNwCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGln
bm1lbnQodDIsIDB4YmFkMGRjMDIpCisgICAgaWYgQ19MT09QCisgICAgICAgIGNsb29wQ2FsbEpT
RnVuY3Rpb24gZW50cnkKKyAgICBlbHNlCisgICAgICAgIGNhbGwgZW50cnkKKyAgICBlbmQKKyAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MiwgMHhiYWQwZGMwMykKKyAgICBzdWJwIENh
bGxlckZyYW1lQW5kUENTaXplLCBzcAogZW5kCiAKLW1hY3JvIG1ha2VIb3N0RnVuY3Rpb25DYWxs
KGVudHJ5LCB0ZW1wKQotICAgIG1vdmUgZW50cnksIHRlbXAKLSAgICBpZiBYODYKLSAgICAgICAg
IyBQdXQgY2ZyIG9uIHN0YWNrIGFzIGFyZzAsIGFsc28gcHV0IGl0IGluIGVjeCBmb3IgImZhc3Rj
YWxsIiB0YXJnZXRzCi0gICAgICAgIHBva2UgY2ZyLCAwCi0gICAgICAgIG1vdmUgY2ZyLCB0Mgor
bWFjcm8gbWFrZUhvc3RGdW5jdGlvbkNhbGwoZW50cnksIHRlbXAxLCB0ZW1wMikKKyAgICBtb3Zl
IGVudHJ5LCB0ZW1wMQorICAgIGlmIENfTE9PUAorICAgICAgICBtb3ZlIHNwLCBhMAorICAgICAg
ICBzdG9yZXAgY2ZyLCBbc3BdCisgICAgICAgIHN0b3JlcCBsciwgUHRyU2l6ZVtzcF0KKyAgICAg
ICAgY2xvb3BDYWxsTmF0aXZlIHRlbXAxCiAgICAgZWxzZQotICAgICAgICBtb3ZlIGNmciwgYTAK
KyAgICAgICAgaWYgWDg2CisgICAgICAgICAgICAjIFB1dCBjYWxsZWUgZnJhbWUgcG9pbnRlciBv
biBzdGFjayBhcyBhcmcwLCBhbHNvIHB1dCBpdCBpbiBlY3ggZm9yICJmYXN0Y2FsbCIgdGFyZ2V0
cworICAgICAgICAgICAgbW92ZSAwLCB0ZW1wMgorICAgICAgICAgICAgbW92ZSB0ZW1wMiwgNFtz
cF0gIyBwdXQgMCBpbiBSZXR1cm5QQworICAgICAgICAgICAgbW92ZSBjZnIsIFtzcF0gIyBwdXQg
Y2FsbGVyIGZyYW1lIHBvaW50ZXIgaW50byBjYWxsZWUgZnJhbWUgc2luY2UgY2FsbGVlIHByb2xv
Z3VlIGNhbid0CisgICAgICAgICAgICBtb3ZlIHNwLCB0MiAjIHQyIGlzIGVjeAorICAgICAgICAg
ICAgcHVzaCB0ZW1wMiAjIFB1c2ggZHVtbXkgYXJnMQorICAgICAgICAgICAgcHVzaCB0MgorICAg
ICAgICBlbHNlCisgICAgICAgICAgICBtb3ZlIHNwLCBhMAorICAgICAgICAgICAgYWRkcCBDYWxs
ZXJGcmFtZUFuZFBDU2l6ZSwgc3AKKyAgICAgICAgZW5kCisgICAgICAgIGNhbGwgdGVtcDEKKyAg
ICAgICAgaWYgWDg2CisgICAgICAgICAgICBhZGRwIDgsIHNwCisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHN1YnAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHNwCisgICAgICAgIGVuZAogICAgIGVu
ZAotICAgIGNhbGwgdGVtcAogZW5kCiAKLW1hY3JvIGRvUmV0dXJuRnJvbUphdmFTY3JpcHQoZXh0
cmFTdGFja1NwYWNlKQotX3JldHVybkZyb21KYXZhU2NyaXB0OgotICAgIGZ1bmN0aW9uRXBpbG9n
dWUoZXh0cmFTdGFja1NwYWNlKQorX2hhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgorICAgIGxvYWRw
IFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQzCisgICAgYW5kcCBNYXJrZWRCbG9j
a01hc2ssIHQzCisgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1f
dm1bdDNdLCB0MworICAgIGxvYWRwIFZNOjpjYWxsRnJhbWVGb3JUaHJvd1t0M10sIGNmcgorCisg
ICAgIyBTbyBmYXIsIHdlJ3ZlIHVud291bmQgdGhlIHN0YWNrIHRvIHRoZSBmcmFtZSBqdXN0IGJl
bG93IHRoZSBzZW50aW5lbCBmcmFtZS4KKyAgICAjIFdlIG5lZWQgdG8gcG9wIHRvIHRoZSBzZW50
aW5lbCBmcmFtZSBhbmQgZG8gdGhlIG5lY2Vzc2FyeSBjbGVhbiB1cCBmb3IKKyAgICAjIHJldHVy
bmluZyB0byB0aGUgY2FsbGVyIEMgZnJhbWUuCisgICAgbG9hZHAgQ2FsbGVyRnJhbWUgKyBQYXls
b2FkT2Zmc2V0W2Nmcl0sIGNmcgorCisgICAgbG9hZHAgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtj
ZnJdLCB0MyAjIFZNCisgICAgbG9hZHAgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2ZyXSwg
dDUgIyBwcmV2aW91cyB0b3BDYWxsRnJhbWUKKyAgICBzdG9yZXAgdDUsIFZNOjp0b3BDYWxsRnJh
bWVbdDNdCisKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQogICAgIHJldAotZW5kCiAK
IG1hY3JvIGRvUmV0dXJuRnJvbUhvc3RGdW5jdGlvbihleHRyYVN0YWNrU3BhY2UpCiAgICAgZnVu
Y3Rpb25FcGlsb2d1ZShleHRyYVN0YWNrU3BhY2UpCkBAIC0zNzcsMTQgKzM5OCwxMiBAQCBlbmQK
IG1hY3JvIGNhbGxDYWxsU2xvd1BhdGgoc2xvd1BhdGgsIGFjdGlvbikKICAgICBzdG9yZXAgUEMs
IEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgIGNDYWxsMihzbG93UGF0aCwgY2Zy
LCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBhY3Rpb24odDApCiBlbmQKIAogbWFjcm8gY2Fs
bFdhdGNoZG9nVGltZXJIYW5kbGVyKHRocm93SGFuZGxlcikKICAgICBzdG9yZWkgUEMsIEFyZ3Vt
ZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgIGNDYWxsMihfbGxpbnRfc2xvd19wYXRoX2hh
bmRsZV93YXRjaGRvZ190aW1lciwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBidHBu
eiB0MCwgdGhyb3dIYW5kbGVyCiAgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtj
ZnJdLCBQQwogZW5kCkBAIC0zOTUsOCArNDE0LDggQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZv
ckxvb3AoKQogICAgICAgICBtYWNybyAoKQogICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVu
dENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9v
c3IsIGNmciwgUEMpCi0gICAgICAgICAgICBtb3ZlIHQxLCBjZnIKICAgICAgICAgICAgIGJ0cHog
dDAsIC5yZWNvdmVyCisgICAgICAgICAgICBtb3ZlIHQxLCBzcAogICAgICAgICAgICAgam1wIHQw
CiAgICAgICAgIC5yZWNvdmVyOgogICAgICAgICAgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRh
Z09mZnNldFtjZnJdLCBQQwpAQCAtNTUzLDE4ICs1NzIsMzQgQEAgZW5kCiAjIEVudHJ5cG9pbnRz
IGludG8gdGhlIGludGVycHJldGVyCiAKICMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0
MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCi1tYWNybyBmdW5jdGlv
bkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93X3BhdGgpCittYWNybyBmdW5jdGlvbkFyaXR5Q2hl
Y2soZG9uZUxhYmVsLCBzbG93UGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1l
bnRDb3VudFtjZnJdLCB0MAogICAgIGJpYWVxIHQwLCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVy
c1t0MV0sIGRvbmVMYWJlbAotICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpICAgIyBUaGlz
IHNsb3dfcGF0aCBoYXMgYSBzaW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAg
IT0gMCA9PiBlcnJvcgotICAgIGJ0aXogdDAsIC5pc0FyaXR5Rml4dXBOZWVkZWQKKyAgICBjQ2Fs
bDIoc2xvd1BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyBhIHNpbXBsZSBwcm90
b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCisgICAgYnRpeiB0MCwg
Lm5vRXJyb3IKICAgICBtb3ZlIHQxLCBjZnIgICAjIHQxIGNvbnRhaW5zIGNhbGxlciBmcmFtZQog
ICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogCi0uaXNBcml0
eUZpeHVwTmVlZGVkOgorLm5vRXJyb3I6CisgICAgIyB0MSBwb2ludHMgdG8gQXJpdHlDaGVja0Rh
dGEuCisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6dGh1bmtUb0Nh
bGxbdDFdLCB0MgorICAgIGJ0cHogdDIsIC5wcm9jZWVkSW5saW5lCisgICAgCisgICAgbG9hZHAg
Q29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cmV0dXJuUENbdDFdLCB0NQorICAgIGxv
YWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFd
LCB0MAorICAgIGNhbGwgdDIKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBsb2FkcCBS
ZXR1cm5QQ1tjZnJdLCB0MAorICAgICAgICBsb2FkcCBbdDBdLCB0MAorICAgIGVuZAorICAgIGpt
cCAuY29udGludWUKKworLnByb2NlZWRJbmxpbmU6CisgICAgbG9hZGkgQ29tbW9uU2xvd1BhdGhz
OjpBcml0eUNoZWNrRGF0YTo6cGFkZGVkU3RhY2tTcGFjZVt0MV0sIHQxCiAgICAgYnRpeiB0MSwg
LmNvbnRpbnVlCiAKLSAgICAvLyBNb3ZlIGZyYW1lIHVwICJ0MSIgc2xvdHMKKyAgICAvLyBNb3Zl
IGZyYW1lIHVwICJ0MSAqIDIiIHNsb3RzCisgICAgbHNoaWZ0cCAxLCB0MQogICAgIG5lZ2kgdDEK
ICAgICBtb3ZlIGNmciwgdDMKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3Vu
dFtjZnJdLCB0MgpAQCAtNTg5LDYgKzYyNCw3IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhk
b25lTGFiZWwsIHNsb3cKIAogICAgIGxzaGlmdHAgMywgdDEKICAgICBhZGRwIHQxLCBjZnIKKyAg
ICBhZGRwIHQxLCBzcAogLmNvbnRpbnVlOgogICAgICMgUmVsb2FkIENvZGVCbG9jayBhbmQgUEMs
IHNpbmNlIHRoZSBzbG93X3BhdGggY2xvYmJlcmVkIGl0LgogICAgIGxvYWRwIENvZGVCbG9ja1tj
ZnJdLCB0MQpAQCAtNTk2LDcgKzYzMiw2IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25l
TGFiZWwsIHNsb3cKICAgICBqbXAgZG9uZUxhYmVsCiBlbmQKIAotCiBtYWNybyBicmFuY2hJZkV4
Y2VwdGlvbihsYWJlbCkKICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAgYW5kcCBN
YXJrZWRCbG9ja01hc2ssIHQzCkBAIC02MTEsNiArNjQ2LDcgQEAgZW5kCiAKIF9sbGludF9vcF9l
bnRlcjoKICAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1l
bnQodDIsIDB4ZGVhZDAwZTEpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyICAgICAgICAg
ICAgICAgIC8vIHQyPENvZGVCbG9jaz4gPSBjZnIuQ29kZUJsb2NrCiAgICAgbG9hZGkgQ29kZUJs
b2NrOjptX251bVZhcnNbdDJdLCB0MiAgICAgIC8vIHQyPHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+
Lm1fbnVtVmFycwogICAgIGJ0aXogdDIsIC5vcEVudGVyRG9uZQpAQCAtMTkyMCwxMiArMTk1Niwx
MSBAQCBtYWNybyBkb0NhbGwoc2xvd1BhdGgpCiAgICAgc3RvcmVpIHQwLCBTY29wZUNoYWluICsg
UGF5bG9hZE9mZnNldFt0M10KICAgICBsb2FkaSAxMltQQ10sIHQyCiAgICAgc3RvcmVpIFBDLCBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KLSAgICBzdG9yZXAgY2ZyLCBDYWxsZXJGcmFt
ZVt0M10KICAgICBzdG9yZWkgdDIsIEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W3QzXQog
ICAgIHN0b3JlaSBDZWxsVGFnLCBDYWxsZWUgKyBUYWdPZmZzZXRbdDNdCiAgICAgc3RvcmVpIENl
bGxUYWcsIFNjb3BlQ2hhaW4gKyBUYWdPZmZzZXRbdDNdCi0gICAgbW92ZSB0MywgY2ZyCi0gICAg
Y2FsbFRhcmdldEZ1bmN0aW9uKHQxKQorICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHQz
CisgICAgY2FsbFRhcmdldEZ1bmN0aW9uKHQxLCB0MykKIAogLm9wQ2FsbFNsb3c6CiAgICAgc2xv
d1BhdGhGb3JDYWxsKHNsb3dQYXRoKQpAQCAtMjAzOSwxMCArMjA3NCwxMiBAQCBfbGxpbnRfb3Bf
Y2F0Y2g6CiAgICAgIyB0aGUgaW50ZXJwcmV0ZXIncyB0aHJvdyB0cmFtcG9saW5lIChzZWUgX2xs
aW50X3Rocm93X3RyYW1wb2xpbmUpLgogICAgICMgVGhlIHRocm93aW5nIGNvZGUgbXVzdCBoYXZl
IGtub3duIHRoYXQgd2Ugd2VyZSB0aHJvd2luZyB0byB0aGUgaW50ZXJwcmV0ZXIsCiAgICAgIyBh
bmQgaGF2ZSBzZXQgVk06OnRhcmdldEludGVycHJldGVyUENGb3JUaHJvdy4KLSAgICBsb2FkcCBT
Y29wZUNoYWluW2Nmcl0sIHQzCisgICAgbG9hZHAgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRb
Y2ZyXSwgdDMKICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICBsb2FkcCBNYXJrZWRC
bG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCiAgICAgbG9hZHAgVk06OmNh
bGxGcmFtZUZvclRocm93W3QzXSwgY2ZyCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2Fs
bCgpCisKICAgICBsb2FkaSBWTTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93W3QzXSwgUEMK
ICAgICBsb2FkaSBWTTo6bV9leGNlcHRpb24gKyBQYXlsb2FkT2Zmc2V0W3QzXSwgdDAKICAgICBs
b2FkaSBWTTo6bV9leGNlcHRpb24gKyBUYWdPZmZzZXRbdDNdLCB0MQpAQCAtMjExNiw3NCArMjE1
Myw2MiBAQCBfbGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKIAogCiBtYWNybyBu
YXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKKworICAgIGZ1
bmN0aW9uUHJvbG9ndWUoKQogICAgIHN0b3JlcCAwLCBDb2RlQmxvY2tbY2ZyXQogICAgIGxvYWRw
IENhbGxlckZyYW1lW2Nmcl0sIHQwCiAgICAgbG9hZGkgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZz
ZXRbdDBdLCB0MQogICAgIHN0b3JlaSBDZWxsVGFnLCBTY29wZUNoYWluICsgVGFnT2Zmc2V0W2Nm
cl0KICAgICBzdG9yZWkgdDEsIFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0W2Nmcl0KICAgICBp
ZiBYODYKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1h
cmtlZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCAr
IFdlYWtTZXQ6Om1fdm1bdDNdLCB0MworICAgICAgICBzdWJwIDgsIHNwICMgYWxpZ24gc3RhY2sg
cG9pbnRlcgorICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAg
TWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDFdLCB0MwogICAgICAgICBz
dG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQotICAgICAgICBwZWVrIDAsIHQxCi0gICAg
ICAgIHN0b3JlcCB0MSwgUmV0dXJuUENbY2ZyXQogICAgICAgICBtb3ZlIGNmciwgdDIgICMgdDIg
PSBlY3gKLSAgICAgICAgc3VicCAxNiAtIDQsIHNwCisgICAgICAgIHN0b3JlcCB0MiwgW3NwXQog
ICAgICAgICBsb2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAgICAgIGxv
YWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCi0gICAgICAgIG1vdmUgdDAsIGNm
cgorICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKICAg
ICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgYWRkcCAx
NiAtIDQsIHNwCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5k
cCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtT
ZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJN
djdfVFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltj
ZnJdLCB0MwogICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICAgICAgbG9hZHAg
TWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgICAgICBz
dG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQotICAgICAgICBtb3ZlIHQwLCB0MgotICAg
ICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCi0gICAgICAgIHN0b3JlcCB0
MywgUmV0dXJuUENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDAKLSAgICAgICAgbG9hZGkgQ2Fs
bGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQotICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjpt
X2V4ZWN1dGFibGVbdDFdLCB0MQotICAgICAgICBtb3ZlIHQyLCBjZnIKKyAgICAgICAgYWRkcCA4
LCBzcAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBDX0xP
T1Agb3IgTUlQUyBvciBTSDQKKyAgICAgICAgc3VicCA4LCBzcCAjIGFsaWduIHN0YWNrIHBvaW50
ZXIKKyAgICAgICAgIyB0MSBhbHJlYWR5IGNvbnRhaW5zIHRoZSBTY29wZUNoYWluLgorICAgICAg
ICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1f
d2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDFdLCB0MQorICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6
dG9wQ2FsbEZyYW1lW3QxXQogICAgICAgICBpZiBNSVBTIG9yIFNINAotICAgICAgICAgICAgbW92
ZSB0MCwgYTAKKyAgICAgICAgICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtb3ZlIGNmciwgdDAKICAgICAgICAgZW5kCi0gICAgICAgIGNhbGwgZXhlY3V0YWJsZU9m
ZnNldFRvRnVuY3Rpb25bdDFdCi0gICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0
dXJuKHQzKQotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAg
TWFya2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0
ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGxvYWRw
IFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCi0g
ICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwg
dDMKLSAgICAgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KLSAgICAgICAgbW92
ZSB0MCwgdDIKLSAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAg
ICAgICBzdG9yZXAgdDMsIFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCiAgICAg
ICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKICAgICAgICAgbG9hZHAg
SlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKLSAgICAgICAgbW92ZSB0MiwgY2ZyCi0g
ICAgICAgIGNsb29wQ2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAg
ICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCisgICAgICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQwMDAxKQorICAgICAgICBpZiBDX0xPT1AK
KyAgICAgICAgICAgIGNsb29wQ2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0
MV0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5j
dGlvblt0MV0KKyAgICAgICAgZW5kCiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMK
ICAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgICAgIGxvYWRwIE1hcmtlZEJs
b2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKKyAgICAgICAgYWRkcCA4LCBz
cAogICAgIGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKLSAgICBiaW5lcSBWTTo6bV9leGNl
cHRpb24gKyBUYWdPZmZzZXRbdDNdLCBFbXB0eVZhbHVlVGFnLCAuZXhjZXB0aW9uCisgICAgCisg
ICAgZnVuY3Rpb25FcGlsb2d1ZSgpCisgICAgYmluZXEgVk06Om1fZXhjZXB0aW9uICsgVGFnT2Zm
c2V0W3QzXSwgRW1wdHlWYWx1ZVRhZywgLmhhbmRsZUV4Y2VwdGlvbgogICAgIHJldAotLmV4Y2Vw
dGlvbjoKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDEpICMgVGhpcyBpcyBy
ZWFsbHkgb25seSBuZWVkZWQgb24gWDg2Ci0gICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09m
ZnNldFtjZnJdLCBQQwotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdGhyb3dfZnJvbV9uYXRpdmVf
Y2FsbCkKKworLmhhbmRsZUV4Y2VwdGlvbjoKKyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZy
YW1lW3QzXQorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAgIGptcCBfbGxp
bnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogZW5kCiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTIsOSAr
NTIsMTAgQEAgbWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQogZW5kCiAKIG1hY3JvIGNDYWxsMihm
dW5jdGlvbiwgYXJnMSwgYXJnMikKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0NCwg
MHhiYWQwYzAwMikKICAgICBpZiBYODZfNjQKLSAgICAgICAgbW92ZSBhcmcxLCB0NQotICAgICAg
ICBtb3ZlIGFyZzIsIHQ0CisgICAgICAgIG1vdmUgYXJnMSwgdDQKKyAgICAgICAgbW92ZSBhcmcy
LCB0NQogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYgQVJNNjQKICAgICAgICAgbW92
ZSBhcmcxLCB0MApAQCAtNjksOSArNzAsMTAgQEAgZW5kCiAKICMgVGhpcyBiYXJlbHkgd29ya3Mu
IGFyZzMgYW5kIGFyZzQgc2hvdWxkIHByb2JhYmx5IGJlIGltbWVkaWF0ZXMuCiBtYWNybyBjQ2Fs
bDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCisgICAgY2hlY2tTdGFja1BvaW50
ZXJBbGlnbm1lbnQodDQsIDB4YmFkMGMwMDQpCiAgICAgaWYgWDg2XzY0Ci0gICAgICAgIG1vdmUg
YXJnMSwgdDUKLSAgICAgICAgbW92ZSBhcmcyLCB0NAorICAgICAgICBtb3ZlIGFyZzEsIHQ0Cisg
ICAgICAgIG1vdmUgYXJnMiwgdDUKICAgICAgICAgbW92ZSBhcmczLCB0MQogICAgICAgICBtb3Zl
IGFyZzQsIHQyCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KQEAgLTg4LDY2ICs5MCw0OSBAQCBtYWNy
byBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsCiAgICAgZW5kCiBlbmQKIAotbWFj
cm8gZnVuY3Rpb25Qcm9sb2d1ZShleHRyYVN0YWNrU3BhY2UpCittYWNybyBkb0NhbGxUb0phdmFT
Y3JpcHQobWFrZUNhbGwpCiAgICAgaWYgWDg2XzY0Ci0gICAgICAgIHB1c2ggY2ZyCi0gICAgICAg
IG1vdmUgc3AsIGNmcgotICAgIGVsc2lmIEFSTTY0Ci0gICAgICAgIHB1c2hMUkFuZEZQCi0gICAg
ZW5kCi0gICAgcHVzaENhbGxlZVNhdmVzCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIHN1YnAgZXh0
cmFTdGFja1NwYWNlLCBzcAotICAgIGVuZAotZW5kCi0KLW1hY3JvIGZ1bmN0aW9uRXBpbG9ndWUo
ZXh0cmFTdGFja1NwYWNlKQotICAgIGlmIFg4Nl82NAotICAgICAgICBhZGRwIGV4dHJhU3RhY2tT
cGFjZSwgc3AKLSAgICBlbmQKLSAgICBwb3BDYWxsZWVTYXZlcwotICAgIGlmIFg4Nl82NAotICAg
ICAgICBwb3AgY2ZyCi0gICAgZWxzaWYgQVJNNjQKLSAgICAgICAgcG9wTFJBbmRGUAotICAgIGVu
ZAotZW5kCi0KLW1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXR1cm4pCi0g
ICAgaWYgWDg2XzY0Ci0gICAgICAgIGNvbnN0IGVudHJ5ID0gdDUKLSAgICAgICAgY29uc3Qgdm1U
b3BDYWxsRnJhbWUgPSB0NAorICAgICAgICBjb25zdCBlbnRyeSA9IHQ0CisgICAgICAgIGNvbnN0
IHZtID0gdDUKICAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSB0MQotICAgICAgICBjb25z
dCB0b3BPZlN0YWNrID0gdDIKIAotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSA4CiAg
ICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDAKICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9
IHQ2CiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDAKICAgICAgICAgY29uc3QgdGVtcDIgPSB0Mwog
ICAgICAgICBjb25zdCB0ZW1wMyA9IHQ2Ci0gICAgZWxzaWYgQVJNNjQKKyAgICBlbHNpZiBBUk02
NCBvciBDX0xPT1AKICAgICAgICAgY29uc3QgZW50cnkgPSBhMAotICAgICAgICBjb25zdCB2bVRv
cENhbGxGcmFtZSA9IGExCisgICAgICAgIGNvbnN0IHZtID0gYTEKICAgICAgICAgY29uc3QgcHJv
dG9DYWxsRnJhbWUgPSBhMgotICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gYTMKIAotICAgICAg
ICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAwCi0gICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0g
dDQKKyAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0NQogICAgICAgICBjb25zdCBwcmV2aW91
c1BDID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MwotICAgICAgICBjb25zdCB0ZW1wMiA9
IHQ1CisgICAgICAgIGNvbnN0IHRlbXAyID0gdDQKICAgICAgICAgY29uc3QgdGVtcDMgPSB0Ngog
ICAgIGVuZAogCi0gICAgZnVuY3Rpb25Qcm9sb2d1ZShleHRyYVN0YWNrU3BhY2UpCisgICAgY2Fs
bFRvSmF2YVNjcmlwdFByb2xvZ3VlKCkKKworICAgIGlmIFg4Nl82NAorICAgICAgICBsb2FkcCA3
Kjhbc3BdLCBwcmV2aW91c1BDCisgICAgICAgIG1vdmUgNio4W3NwXSwgcHJldmlvdXNDRlIKKyAg
ICBlbHNpZiBBUk02NAorICAgICAgICBtb3ZlIGNmciwgcHJldmlvdXNDRlIKKyAgICBlbmQKKwor
ICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAyLCAweGJhZDBkYzAxKQogCi0gICAg
bW92ZSB0b3BPZlN0YWNrLCBjZnIKLSAgICBzdWJwIChDYWxsRnJhbWVIZWFkZXJTbG90cy0xKSo4
LCBjZnIKKyAgICAjIFRoZSBzdGFjayByZXNlcnZlZCB6b25lIGVuc3VyZXMgdGhhdCB3ZSBoYXZl
IGFkZXF1YXRlIHNwYWNlIGZvciB0aGUKKyAgICAjIFZNRW50cnlTZW50aW5lbEZyYW1lLiBQcm9j
ZWVkIHdpdGggYWxsb2NhdGluZyBhbmQgaW5pdGlhbGl6aW5nIHRoZQorICAgICMgc2VudGluZWwg
ZnJhbWUuCisgICAgbW92ZSBzcCwgY2ZyCisgICAgc3VicCBDYWxsRnJhbWVIZWFkZXJTbG90cyAq
IDgsIGNmcgogICAgIHN0b3JlcCAwLCBBcmd1bWVudENvdW50W2Nmcl0KLSAgICBzdG9yZXAgdm1U
b3BDYWxsRnJhbWUsIENhbGxlZVtjZnJdCi0gICAgbG9hZHAgW3ZtVG9wQ2FsbEZyYW1lXSwgdGVt
cDEKLSAgICBzdG9yZXAgdGVtcDEsIFNjb3BlQ2hhaW5bY2ZyXQorICAgIHN0b3JlcCB2bSwgQ2Fs
bGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXSwgdGVtcDIKKyAgICBzdG9y
ZXAgdGVtcDIsIFNjb3BlQ2hhaW5bY2ZyXQogICAgIHN0b3JlcCAxLCBDb2RlQmxvY2tbY2ZyXQog
ICAgIGlmIFg4Nl82NAogICAgICAgICBsb2FkcCA3Kjhbc3BdLCBwcmV2aW91c1BDCkBAIC0xNTUs
MjAgKzE0MCw0NSBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0CiAg
ICAgZW5kCiAgICAgc3RvcmVwIHByZXZpb3VzUEMsIFJldHVyblBDW2Nmcl0KICAgICBzdG9yZXAg
cHJldmlvdXNDRlIsIENhbGxlckZyYW1lW2Nmcl0KLSAgICBtb3ZlIGNmciwgdGVtcDEKIAogICAg
IGxvYWRpIFByb3RvQ2FsbEZyYW1lOjpwYWRkZWRBcmdDb3VudFtwcm90b0NhbGxGcmFtZV0sIHRl
bXAyCiAgICAgYWRkcCBDYWxsRnJhbWVIZWFkZXJTbG90cywgdGVtcDIsIHRlbXAyCiAgICAgbHNo
aWZ0cCAzLCB0ZW1wMgotICAgIHN1YnAgdGVtcDIsIGNmcgotICAgIHN0b3JlcCB0ZW1wMSwgQ2Fs
bGVyRnJhbWVbY2ZyXQorICAgIHN1YnAgY2ZyLCB0ZW1wMiwgdGVtcDEKIAorICAgICMgRW5zdXJl
IHRoYXQgd2UgaGF2ZSBlbm91Z2ggYWRkaXRpb25hbCBzdGFjayBjYXBhY2l0eSBmb3IgdGhlIGlu
Y29taW5nIGFyZ3MsCisgICAgIyBhbmQgdGhlIGZyYW1lIGZvciB0aGUgSlMgY29kZSB3ZSdyZSBl
eGVjdXRpbmcuIFdlIG5lZWQgdG8gZG8gdGhpcyBjaGVjaworICAgICMgYmVmb3JlIHdlIHN0YXJ0
IGNvcHlpbmcgdGhlIGFyZ3MgZnJvbSB0aGUgcHJvdG9DYWxsRnJhbWUgYmVsb3cuCisgICAgYnBh
ZXEgdGVtcDEsIFZNOjptX2pzU3RhY2tMaW1pdFt2bV0sIC5zdGFja0hlaWdodE9LCisKKyAgICBt
b3ZlIGNmciwgc3AKKworICAgIGlmIENfTE9PUAorICAgICAgICBtb3ZlIGVudHJ5LCB0ZW1wMgor
ICAgICAgICBtb3ZlIHZtLCB0ZW1wMworICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBfbGxpbnRf
c3RhY2tfY2hlY2tfYXRfdm1fZW50cnksIHZtLCB0ZW1wMQorICAgICAgICBicGVxIHQwLCAwLCAu
c3RhY2tDaGVja0ZhaWxlZAorICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQorICAgICAgICBtb3Zl
IHRlbXAzLCB2bQorICAgICAgICBqbXAgLnN0YWNrSGVpZ2h0T0sKKworLnN0YWNrQ2hlY2tGYWls
ZWQ6CisgICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5CisgICAgICAgIG1vdmUgdGVtcDMsIHZtCisg
ICAgZW5kCisKKyAgICBjQ2FsbDIoX2xsaW50X3Rocm93X3N0YWNrX292ZXJmbG93X2Vycm9yLCB2
bSwgcHJvdG9DYWxsRnJhbWUpCisgICAgY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKKyAgICBy
ZXQKKworLnN0YWNrSGVpZ2h0T0s6CisgICAgbW92ZSB0ZW1wMSwgc3AKICAgICBtb3ZlIDUsIHRl
bXAxCiAKIC5jb3B5SGVhZGVyTG9vcDoKICAgICBzdWJpIDEsIHRlbXAxCi0gICAgbG9hZHAgW3By
b3RvQ2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAzLCBDb2RlQmxv
Y2tbY2ZyLCB0ZW1wMSwgOF0KKyAgICBsb2FkcSBbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwg
dGVtcDMKKyAgICBzdG9yZXEgdGVtcDMsIENvZGVCbG9ja1tzcCwgdGVtcDEsIDhdCiAgICAgYnRp
bnogdGVtcDEsIC5jb3B5SGVhZGVyTG9vcAogCiAgICAgbG9hZGkgUHJvdG9DYWxsRnJhbWU6OmFy
Z0NvdW50QW5kQ29kZU9yaWdpblZhbHVlW3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDIKQEAgLTE4MCw3
ICsxOTAsNyBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0CiAgICAg
bW92ZSBWYWx1ZVVuZGVmaW5lZCwgdGVtcDEKIC5maWxsRXh0cmFBcmdzTG9vcDoKICAgICBzdWJp
IDEsIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAxLCBUaGlzQXJndW1lbnRPZmZzZXQrOFtjZnIsIHRl
bXAzLCA4XQorICAgIHN0b3JlcSB0ZW1wMSwgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOFtzcCwgdGVt
cDMsIDhdCiAgICAgYmluZXEgdGVtcDIsIHRlbXAzLCAuZmlsbEV4dHJhQXJnc0xvb3AKIAogLmNv
cHlBcmdzOgpAQCAtMTg5LDUzICsxOTksOTcgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1h
a2VDYWxsLCBkb1JldAogLmNvcHlBcmdzTG9vcDoKICAgICBidGl6IHRlbXAyLCAuY29weUFyZ3NE
b25lCiAgICAgc3ViaSAxLCB0ZW1wMgotICAgIGxvYWRwIFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1w
MwotICAgIHN0b3JlcCB0ZW1wMywgVGhpc0FyZ3VtZW50T2Zmc2V0KzhbY2ZyLCB0ZW1wMiwgOF0K
KyAgICBsb2FkcSBbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMKKyAgICBzdG9yZXEgdGVtcDMsIFRo
aXNBcmd1bWVudE9mZnNldCArIDhbc3AsIHRlbXAyLCA4XQogICAgIGptcCAuY29weUFyZ3NMb29w
CiAKIC5jb3B5QXJnc0RvbmU6Ci0gICAgc3RvcmVwIGNmciwgW3ZtVG9wQ2FsbEZyYW1lXQorICAg
IGlmIEFSTTY0CisgICAgICAgIG1vdmUgc3AsIHRlbXAyCisgICAgICAgIHN0b3JlcCB0ZW1wMiwg
Vk06OnRvcENhbGxGcmFtZVt2bV0KKyAgICBlbHNlCisgICAgICAgIHN0b3JlcCBzcCwgVk06OnRv
cENhbGxGcmFtZVt2bV0KKyAgICBlbmQKIAogICAgIG1vdmUgMHhmZmZmMDAwMDAwMDAwMDAwLCBj
c3IxCiAgICAgYWRkcCAyLCBjc3IxLCBjc3IyCiAKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdu
bWVudCh0ZW1wMywgMHhiYWQwZGMwMikKKwogICAgIG1ha2VDYWxsKGVudHJ5LCB0ZW1wMSkKIAor
ICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAzLCAweGJhZDBkYzAzKQorCiAgICAg
YnBlcSBDb2RlQmxvY2tbY2ZyXSwgMSwgLmNhbGxlZUZyYW1lUG9wcGVkCiAgICAgbG9hZHAgQ2Fs
bGVyRnJhbWVbY2ZyXSwgY2ZyCiAKIC5jYWxsZWVGcmFtZVBvcHBlZDoKLSAgICBsb2FkcCBDYWxs
ZWVbY2ZyXSwgdGVtcDIgIyBWTS50b3BDYWxsRnJhbWUKLSAgICBsb2FkcCBTY29wZUNoYWluW2Nm
cl0sIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAzLCBbdGVtcDJdCisgICAgbG9hZHAgQ2FsbGVlW2Nm
cl0sIHRlbXAyICMgVk0KKyAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHRlbXAzICMgcHJldmlv
dXMgdG9wQ2FsbEZyYW1lCisgICAgc3RvcmVwIHRlbXAzLCBWTTo6dG9wQ2FsbEZyYW1lW3RlbXAy
XQorCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDMsIDB4YmFkMGRjMDQpCiAK
LSAgICBkb1JldHVybihleHRyYVN0YWNrU3BhY2UpCisgICAgaWYgWDg2XzY0CisgICAgICAgIHBv
cCB0NQorICAgIGVuZAorICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisKKyAgICByZXQK
IGVuZAogCisKIG1hY3JvIG1ha2VKYXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCkKLSAgICBjYWxs
IGVudHJ5CisgICAgYWRkcCAxNiwgc3AKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgY2xvb3BDYWxs
SlNGdW5jdGlvbiBlbnRyeQorICAgIGVsc2UKKyAgICAgICAgY2FsbCBlbnRyeQorICAgIGVuZAor
ICAgIHN1YnAgMTYsIHNwCiBlbmQKIAorCiBtYWNybyBtYWtlSG9zdEZ1bmN0aW9uQ2FsbChlbnRy
eSwgdGVtcCkKICAgICBtb3ZlIGVudHJ5LCB0ZW1wCiAgICAgaWYgWDg2XzY0Ci0gICAgICAgIG1v
dmUgY2ZyLCB0NQorICAgICAgICBtb3ZlIHNwLCB0NAogICAgIGVsc2lmIEFSTTY0IG9yIENfTE9P
UAotICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgbW92ZSBzcCwgYTAKKyAgICBlbmQKKyAg
ICBpZiBDX0xPT1AKKyAgICAgICAgc3RvcmVwIGNmciwgW3NwXQorICAgICAgICBzdG9yZXAgbHIs
IDhbc3BdCisgICAgICAgIGNsb29wQ2FsbE5hdGl2ZSB0ZW1wCisgICAgZWxzZQorICAgICAgICBh
ZGRwIDE2LCBzcCAKKyAgICAgICAgY2FsbCB0ZW1wCisgICAgICAgIHN1YnAgMTYsIHNwCiAgICAg
ZW5kCi0gICAgY2FsbCB0ZW1wCiBlbmQKIAotbWFjcm8gZG9SZXR1cm5Gcm9tSmF2YVNjcmlwdChl
eHRyYVN0YWNrU3BhY2UpCi1fcmV0dXJuRnJvbUphdmFTY3JpcHQ6Ci0gICAgZnVuY3Rpb25FcGls
b2d1ZShleHRyYVN0YWNrU3BhY2UpCi0gICAgcmV0Ci1lbmQKIAotbWFjcm8gZG9SZXR1cm5Gcm9t
SG9zdEZ1bmN0aW9uKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBmdW5jdGlvbkVwaWxvZ3VlKGV4dHJh
U3RhY2tTcGFjZSkKK19oYW5kbGVVbmNhdWdodEV4Y2VwdGlvbjoKKyAgICBsb2FkcCBTY29wZUNo
YWluW2Nmcl0sIHQzCisgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCisgICAgbG9hZHAgTWFy
a2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MworICAgIGxvYWRwIFZN
OjpjYWxsRnJhbWVGb3JUaHJvd1t0M10sIGNmcgorCisgICAgIyBTbyBmYXIsIHdlJ3ZlIHVud291
bmQgdGhlIHN0YWNrIHRvIHRoZSBmcmFtZSBqdXN0IGJlbG93IHRoZSBzZW50aW5lbCBmcmFtZSwg
ZXhjZXB0CisgICAgIyBpbiB0aGUgY2FzZSBvZiBzdGFjayBvdmVyZmxvdyBpbiB0aGUgZmlyc3Qg
ZnVuY3Rpb24gY2FsbGVkIGZyb20gY2FsbFRvSmF2YVNjcmlwdC4KKyAgICAjIENoZWNrIGlmIHdl
IG5lZWQgdG8gcG9wIHRvIHRoZSBzZW50aW5lbCBmcmFtZSBhbmQgZG8gdGhlIG5lY2Vzc2FyeSBj
bGVhbiB1cCBmb3IKKyAgICAjIHJldHVybmluZyB0byB0aGUgY2FsbGVyIEMgZnJhbWUuCisgICAg
YnBlcSBDb2RlQmxvY2tbY2ZyXSwgMSwgLmhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uQWxyZWFkeUlz
U2VudGluZWwKKyAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIKKy5oYW5kbGVVbmNhdWdo
dEV4Y2VwdGlvbkFscmVhZHlJc1NlbnRpbmVsOgorCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQz
ICMgVk0KKyAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQ1ICMgcHJldmlvdXMgdG9wQ2FsbEZy
YW1lCisgICAgc3RvcmVwIHQ1LCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorCisgICAgY2FsbFRvSmF2
YVNjcmlwdEVwaWxvZ3VlKCkKICAgICByZXQKLWVuZAorCiAKIG1hY3JvIHByZXBhcmVTdGF0ZUZv
ckNDYWxsKCkKICAgICBsZWFwIFtQQiwgUEMsIDhdLCBQQwpAQCAtMjQ0LDcgKzI5OCw2IEBAIGVu
ZAogCiBtYWNybyByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKICAgICBtb3ZlIHQwLCBQQwotICAg
IG1vdmUgdDEsIGNmcgogICAgIG1vdmUgdDMsIFBCCiAgICAgc3VicCBQQiwgUEMKICAgICByc2hp
ZnRwIDMsIFBDCkBAIC0yNzMsNyArMzI2LDYgQEAgbWFjcm8gY2FsbENhbGxTbG93UGF0aChzbG93
UGF0aCwgYWN0aW9uKQogICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtj
ZnJdCiAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQogICAgIGNDYWxsMihzbG93UGF0aCwgY2Zy
LCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBhY3Rpb24odDApCiBlbmQKIApAQCAtMjgxLDcg
KzMzMyw2IEBAIG1hY3JvIGNhbGxXYXRjaGRvZ1RpbWVySGFuZGxlcih0aHJvd0hhbmQKICAgICBz
dG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgIHByZXBhcmVTdGF0
ZUZvckNDYWxsKCkKICAgICBjQ2FsbDIoX2xsaW50X3Nsb3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2df
dGltZXIsIGNmciwgUEMpCi0gICAgbW92ZSB0MSwgY2ZyCiAgICAgYnRwbnogdDAsIHRocm93SGFu
ZGxlcgogICAgIG1vdmUgdDMsIFBCCiAgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dFtjZnJdLCBQQwpAQCAtMjk0LDggKzM0NSw4IEBAIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JM
b29wKCkKICAgICAgICAgICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtj
ZnJdCiAgICAgICAgICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCiAgICAgICAgICAgICBjQ2Fs
bDIoX2xsaW50X2xvb3Bfb3NyLCBjZnIsIFBDKQotICAgICAgICAgICAgbW92ZSB0MSwgY2ZyCiAg
ICAgICAgICAgICBidHB6IHQwLCAucmVjb3ZlcgorICAgICAgICAgICAgbW92ZSB0MSwgc3AKICAg
ICAgICAgICAgIGptcCB0MAogICAgICAgICAucmVjb3ZlcjoKICAgICAgICAgICAgIG1vdmUgdDMs
IFBCCkBAIC0zODcsMTkgKzQzOCwzNSBAQCBlbmQKICMgRW50cnlwb2ludHMgaW50byB0aGUgaW50
ZXJwcmV0ZXIuCiAKICMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMg
d2hhdCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCi1tYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2so
ZG9uZUxhYmVsLCBzbG93X3BhdGgpCittYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVs
LCBzbG93UGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJd
LCB0MAogICAgIGJpYWVxIHQwLCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVM
YWJlbAogICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBj
ZnIsIFBDKSAgICMgVGhpcyBzbG93X3BhdGggaGFzIGEgc2ltcGxlIHByb3RvY29sOiB0MCA9IDAg
PT4gbm8gZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IKLSAgICBidGl6IHQwLCAuaXNBcml0eUZpeHVw
TmVlZGVkCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKSAgICMgVGhpcyBzbG93UGF0aCBo
YXMgdGhlIHByb3RvY29sOiB0MCA9IDAgPT4gbm8gZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IKKyAg
ICBidGl6IHQwLCAubm9FcnJvcgogICAgIG1vdmUgdDEsIGNmciAgICMgdDEgY29udGFpbnMgY2Fs
bGVyIGZyYW1lCiAgICAgam1wIF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5l
CiAKLS5pc0FyaXR5Rml4dXBOZWVkZWQ6Cisubm9FcnJvcjoKKyAgICAjIHQxIHBvaW50cyB0byBB
cml0eUNoZWNrRGF0YS4KKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRh
Ojp0aHVua1RvQ2FsbFt0MV0sIHQyCisgICAgYnRweiB0MiwgLnByb2NlZWRJbmxpbmUKKyAgICAK
KyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpyZXR1cm5QQ1t0MV0s
IHQ1CisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cGFkZGVkU3Rh
Y2tTcGFjZVt0MV0sIHQwCisgICAgY2FsbCB0MgorICAgIGlmIEFTU0VSVF9FTkFCTEVECisgICAg
ICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQwCisgICAgICAgIGxvYWRwIFt0MF0sIHQwCisgICAg
ZW5kCisgICAgam1wIC5jb250aW51ZQorCisucHJvY2VlZElubGluZToKKyAgICBsb2FkaSBDb21t
b25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3QxXSwgdDEKICAg
ICBidGl6IHQxLCAuY29udGludWUKIAotICAgIC8vIE1vdmUgZnJhbWUgdXAgInQxIiBzbG90cwor
ICAgIC8vIE1vdmUgZnJhbWUgdXAgInQxICogMiIgc2xvdHMKKyAgICBsc2hpZnRwIDEsIHQxCiAg
ICAgbmVncSB0MQogICAgIG1vdmUgY2ZyLCB0MwogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBB
cmd1bWVudENvdW50W2Nmcl0sIHQyCkBAIC00MjAsNiArNDg3LDcgQEAgbWFjcm8gZnVuY3Rpb25B
cml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvdwogCiAgICAgbHNoaWZ0cCAzLCB0MQogICAgIGFkZHAg
dDEsIGNmcgorICAgIGFkZHAgdDEsIHNwCiAKIC5jb250aW51ZToKICAgICAjIFJlbG9hZCBDb2Rl
QmxvY2sgYW5kIHJlc2V0IFBDLCBzaW5jZSB0aGUgc2xvd19wYXRoIGNsb2JiZXJlZCB0aGVtLgpA
QCAtNDI5LDcgKzQ5Nyw2IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNs
b3cKICAgICBqbXAgZG9uZUxhYmVsCiBlbmQKIAotCiBtYWNybyBicmFuY2hJZkV4Y2VwdGlvbihs
YWJlbCkKICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAgYW5kcCBNYXJrZWRCbG9j
a01hc2ssIHQzCkBAIC00NDQsNiArNTExLDcgQEAgZW5kCiAKIF9sbGludF9vcF9lbnRlcjoKICAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4
ZGVhZDAwZTEpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyICAgICAgICAgICAgICAgIC8v
IHQyPENvZGVCbG9jaz4gPSBjZnIuQ29kZUJsb2NrCiAgICAgbG9hZGkgQ29kZUJsb2NrOjptX251
bVZhcnNbdDJdLCB0MiAgICAgIC8vIHQyPHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1fbnVtVmFy
cwogICAgIGJ0aXogdDIsIC5vcEVudGVyRG9uZQpAQCAtMTcxNywxMCArMTc4NSw5IEBAIG1hY3Jv
IGRvQ2FsbChzbG93UGF0aCkKICAgICBzdG9yZXEgdDAsIFNjb3BlQ2hhaW5bdDNdCiAgICAgbG9h
ZGlzRnJvbUluc3RydWN0aW9uKDMsIHQyKQogICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCAr
IFRhZ09mZnNldFtjZnJdCi0gICAgc3RvcmVxIGNmciwgQ2FsbGVyRnJhbWVbdDNdCiAgICAgc3Rv
cmVpIHQyLCBBcmd1bWVudENvdW50ICsgUGF5bG9hZE9mZnNldFt0M10KLSAgICBtb3ZlIHQzLCBj
ZnIKLSAgICBjYWxsVGFyZ2V0RnVuY3Rpb24odDEpCisgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBD
U2l6ZSwgdDMKKyAgICBjYWxsVGFyZ2V0RnVuY3Rpb24odDEsIHQzKQogCiAub3BDYWxsU2xvdzoK
ICAgICBzbG93UGF0aEZvckNhbGwoc2xvd1BhdGgpCkBAIC0xODQwLDYgKzE5MDcsOCBAQCBfbGxp
bnRfb3BfY2F0Y2g6CiAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgbG9hZHAgTWFy
a2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwogICAgIGxvYWRwIFZN
OjpjYWxsRnJhbWVGb3JUaHJvd1t0M10sIGNmcgorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRl
ckNhbGwoKQorCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIFBCCiAgICAgbG9hZHAgQ29kZUJs
b2NrOjptX2luc3RydWN0aW9uc1tQQl0sIFBCCiAgICAgbG9hZHAgVk06OnRhcmdldEludGVycHJl
dGVyUENGb3JUaHJvd1t0M10sIFBDCkBAIC0xODc5LDYgKzE5NDgsOCBAQCBfbGxpbnRfdGhyb3df
ZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKIAogCiBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShl
eGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKKworICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQogICAg
IHN0b3JlcCAwLCBDb2RlQmxvY2tbY2ZyXQogICAgIGlmIFg4Nl82NAogICAgICAgICBsb2FkcCBT
Y29wZUNoYWluW2Nmcl0sIHQwCkBAIC0xODg4LDE5ICsxOTU5LDE1IEBAIG1hY3JvIG5hdGl2ZUNh
bGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmYKICAgICAgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2Zy
XSwgdDAKICAgICAgICAgbG9hZHEgU2NvcGVDaGFpblt0MF0sIHQxCiAgICAgICAgIHN0b3JlcSB0
MSwgU2NvcGVDaGFpbltjZnJdCi0gICAgICAgIHBlZWsgMCwgdDEKLSAgICAgICAgc3RvcmVwIHQx
LCBSZXR1cm5QQ1tjZnJdCi0gICAgICAgIG1vdmUgY2ZyLCB0NSAgIyB0NSA9IHJkaQotICAgICAg
ICBzdWJwIDE2IC0gOCwgc3AKLSAgICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQ0ICMgdDQgPSBy
c2kKLSAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Q0XSwgdDEKLSAgICAg
ICAgbW92ZSB0MCwgY2ZyICMgUmVzdG9yZSBjZnIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNr
CisgICAgICAgIG1vdmUgY2ZyLCB0NCAgIyB0NCA9IHJkaQorICAgICAgICBsb2FkcCBDYWxsZWVb
Y2ZyXSwgdDUgIyB0NSA9IHJzaQorICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFi
bGVbdDVdLCB0MQorICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFk
MDAwMSkKICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAg
ICAgYWRkcCAxNiAtIDgsIHNwCiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAg
ICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgICAgIGxvYWRwIE1hcmtlZEJsb2Nr
OjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICBlbHNpZiBBUk02NAorICAg
IGVsc2lmIEFSTTY0IG9yIENfTE9PUAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQw
CiAgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MAogICAgICAgICBsb2FkcCBNYXJrZWRC
bG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0MF0sIHQwCkBAIC0xOTE0LDMwICsxOTgx
LDExIEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmYKICAgICAgICAg
bG9hZHAgQ2FsbGVlW2Nmcl0sIHQxCiAgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0
YWJsZVt0MV0sIHQxCiAgICAgICAgIG1vdmUgdDIsIGNmciAjIFJlc3RvcmUgY2ZyIHRvIGF2b2lk
IGxvYWRpbmcgZnJvbSBzdGFjawotICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0
aW9uW3QxXQotICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKLSAg
ICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtlZEJsb2Nr
TWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6
Om1fdm1bdDNdLCB0MwotICAgIGVsc2lmIENfTE9PUAotICAgICAgICBsb2FkcCBDYWxsZXJGcmFt
ZVtjZnJdLCB0MAotICAgICAgICBsb2FkcCBTY29wZUNoYWluW3QwXSwgdDEKLSAgICAgICAgc3Rv
cmVwIHQxLCBTY29wZUNoYWluW2Nmcl0KLQotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0s
IHQzCi0gICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJr
ZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgICAgIHN0b3Jl
cCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0KLSAgICAgICAgbW92ZSB0MCwgdDIKLSAgICAg
ICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAgICBzdG9yZXAgdDMs
IFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCi0gICAgICAgIGxvYWRwIENhbGxl
ZVtjZnJdLCB0MQotICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0
MQotICAgICAgICBtb3ZlIHQyLCBjZnIKLSAgICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4ZWN1dGFi
bGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotCisgICAgICAgIGlmIENfTE9PUAorICAgICAgICAgICAg
Y2xvb3BDYWxsTmF0aXZlIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAgICAgICBl
bHNlCisgICAgICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAg
ICAgICBlbmQKICAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCiAg
ICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICAgICAgYW5kcCBNYXJrZWRCbG9j
a01hc2ssIHQzCkBAIC0xOTQ2LDE2ICsxOTk0LDE0IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9s
aW5lKGV4ZWN1dGFibGVPZmYKICAgICAgICAgZXJyb3IKICAgICBlbmQKIAotICAgIGJ0cW56IFZN
OjptX2V4Y2VwdGlvblt0M10sIC5leGNlcHRpb24KKyAgICBmdW5jdGlvbkVwaWxvZ3VlKCkKKwor
ICAgIGJ0cW56IFZNOjptX2V4Y2VwdGlvblt0M10sIC5oYW5kbGVFeGNlcHRpb24KICAgICByZXQK
LS5leGNlcHRpb246Ci0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQxKSAjIFRo
aXMgaXMgcmVhbGx5IG9ubHkgbmVlZGVkIG9uIFg4Nl82NAotICAgIGxvYWRpIEFyZ3VtZW50Q291
bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIKLSAg
ICBsb2FkcCBDb2RlQmxvY2s6Om1fdm1bUEJdLCB0MAotICAgIGxvYWRwIENvZGVCbG9jazo6bV9p
bnN0cnVjdGlvbnNbUEJdLCBQQgotICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDBd
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF90aHJvd19mcm9tX25hdGl2ZV9jYWxsKQorCisuaGFu
ZGxlRXhjZXB0aW9uOgorICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCisgICAg
cmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCiAgICAgam1wIF9sbGludF90aHJvd19mcm9t
X3Nsb3dfcGF0aF90cmFtcG9saW5lCiBlbmQKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCw5ICszOCwxMiBAQCBjb25zdCBDYWxsRnJhbWVIZWFkZXJT
bG90cyA9IDYKIGVsc2UKIGNvbnN0IFB0clNpemUgPSA0CiBjb25zdCBDYWxsRnJhbWVIZWFkZXJT
bG90cyA9IDUKK2NvbnN0IENhbGxGcmFtZUFsaWduU2xvdHMgPSAxCiBlbmQKIGNvbnN0IFNsb3RT
aXplID0gOAogCitjb25zdCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSA9IDIgKiBQdHJTaXplCisKIGNv
bnN0IENhbGxlckZyYW1lID0gMAogY29uc3QgUmV0dXJuUEMgPSBDYWxsZXJGcmFtZSArIFB0clNp
emUKIGNvbnN0IENvZGVCbG9jayA9IFJldHVyblBDICsgUHRyU2l6ZQpAQCAtNzEsNiArNzQsMTYg
QEAgY29uc3QgRGVsZXRlZFZhbHVlVGFnID0gLTcKIGNvbnN0IExvd2VzdFRhZyA9IERlbGV0ZWRW
YWx1ZVRhZwogZW5kCiAKK2lmIFg4Nl82NCBvciBBUk02NCBvciBDX0xPT1AKK2NvbnN0IG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMAorZWxzaWYgQVJNIG9yIEFSTXY3X1RSQURJVElP
TkFMIG9yIEFSTXY3IG9yIFNINAorY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwg
PSAyNAorZWxzaWYgWDg2Citjb25zdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDQw
CitlbHNpZiBNSVBTCitjb25zdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDQwCitl
bmQKKwogIyBXYXRjaHBvaW50IHN0YXRlcwogY29uc3QgQ2xlYXJXYXRjaHBvaW50ID0gMAogY29u
c3QgSXNXYXRjaGVkID0gMQpAQCAtODUsNyArOTgsNyBAQCBpZiBKU1ZBTFVFNjQKICAgICAjICAg
dG8gQyBmdW5jdGlvbnMuCiAgICAgIyAtIEMgY2FsbHMgYXJlIHN0aWxsIGdpdmVuIHRoZSBJbnN0
cnVjdGlvbiogcmF0aGVyIHRoYW4gdGhlIFBDIGluZGV4LgogICAgICMgICBUaGlzIHJlcXVpcmVz
IGFuIGFkZCBiZWZvcmUgdGhlIGNhbGwsIGFuZCBhIHN1YiBhZnRlci4KLSAgICBjb25zdCBQQyA9
IHQ0CisgICAgY29uc3QgUEMgPSB0NQogICAgIGNvbnN0IFBCID0gdDYKICAgICBjb25zdCB0YWdU
eXBlTnVtYmVyID0gY3NyMQogICAgIGNvbnN0IHRhZ01hc2sgPSBjc3IyCkBAIC0xMDMsNyArMTE2
LDcgQEAgaWYgSlNWQUxVRTY0CiAgICAgZW5kCiAKIGVsc2UKLSAgICBjb25zdCBQQyA9IHQ0Cisg
ICAgY29uc3QgUEMgPSB0NQogICAgIG1hY3JvIGxvYWRpc0Zyb21JbnN0cnVjdGlvbihvZmZzZXQs
IGRlc3QpCiAgICAgICAgIGxvYWRpcyBvZmZzZXQgKiA0W1BDXSwgZGVzdAogICAgIGVuZApAQCAt
MjEwLDYgKzIyMyw1MiBAQCBtYWNybyBhc3NlcnQoYXNzZXJ0aW9uKQogICAgIGVuZAogZW5kCiAK
K21hY3JvIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXBSZWcsIGxvY2F0aW9uKQorICAg
IGlmIEFSTTY0IG9yIENfTE9PUAorICAgICAgICAjIEFSTTY0IHdpbGwgY2hlY2sgZm9yIHVzIQor
ICAgICAgICAjIENfTE9PUCBkb2VzIG5vdCBuZWVkIHRoZSBhbGlnbm1lbnQsIGFuZCBjYW4gdXNl
IGEgbGl0dGxlIHBlcmYKKyAgICAgICAgIyBpbXByb3ZlbWVudCBmcm9tIGF2b2lkaW5nIHVzZWxl
c3Mgd29yay4KKyAgICBlbHNlCisgICAgICAgIGlmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFE
SVRJT05BTAorICAgICAgICAgICAgIyBBUk0gY2FuJ3QgZG8gbG9naWNhbCBvcHMgd2l0aCB0aGUg
c3AgYXMgYSBzb3VyY2UKKyAgICAgICAgICAgIG1vdmUgc3AsIHRlbXBSZWcKKyAgICAgICAgICAg
IGFuZHAgMHhmLCB0ZW1wUmVnCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFuZHAgc3AsIDB4
ZiwgdGVtcFJlZworICAgICAgICBlbmQKKyAgICAgICAgYnRweiB0ZW1wUmVnLCAuc3RhY2tQb2lu
dGVyT2theQorICAgICAgICBtb3ZlIGxvY2F0aW9uLCB0ZW1wUmVnCisgICAgICAgIGJyZWFrCisg
ICAgLnN0YWNrUG9pbnRlck9rYXk6CisgICAgZW5kCitlbmQKKworbWFjcm8gcHJlc2VydmVDYWxs
ZXJQQ0FuZENGUigpCisgICAgaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFE
SVRJT05BTCBvciBNSVBTIG9yIFNINAorICAgICAgICBwdXNoIGxyCisgICAgICAgIHB1c2ggY2Zy
CisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwdXNoIGNmcgorICAgIGVsc2lmIEFS
TTY0CisgICAgICAgIHB1c2hMUkFuZEZQCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVu
ZAorICAgIG1vdmUgc3AsIGNmcgorZW5kCisKK21hY3JvIHJlc3RvcmVDYWxsZXJQQ0FuZENGUigp
CisgICAgbW92ZSBjZnIsIHNwCisgICAgaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12
N19UUkFESVRJT05BTCBvciBNSVBTIG9yIFNINAorICAgICAgICBwb3AgY2ZyCisgICAgICAgIHBv
cCBscgorICAgIGVsc2lmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcG9wIGNmcgorICAgIGVsc2lm
IEFSTTY0CisgICAgICAgIHBvcExSQW5kRlAKKyAgICBlbmQKK2VuZAorCiBtYWNybyBwcmVzZXJ2
ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKICAgICBpZiBDX0xP
T1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIEFSTTY0IG9yIE1JUFMg
b3IgU0g0CiAgICAgICAgICMgSW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2VydmluZyB0
aGUgYnl0ZWNvZGUgdlBDLgpAQCAtMjMyLDMxICsyOTEsMTIyIEBAIG1hY3JvIHJlc3RvcmVSZXR1
cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHMKICAgICBlbmQKIGVuZAogCittYWNybyBmdW5jdGlvblBy
b2xvZ3VlKCkKKyAgICBpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHB1c2ggY2ZyCisgICAgZWxz
aWYgQVJNNjQKKyAgICAgICAgcHVzaExSQW5kRlAKKyAgICBlbHNpZiBDX0xPT1Agb3IgQVJNIG9y
IEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKKyAgICAgICAgcHVzaCBscgorICAg
ICAgICBwdXNoIGNmcgorICAgIGVuZAorICAgIG1vdmUgc3AsIGNmcgorZW5kCisKK21hY3JvIGZ1
bmN0aW9uRXBpbG9ndWUoKQorICAgIGlmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcG9wIGNmcgor
ICAgIGVsc2lmIEFSTTY0CisgICAgICAgIHBvcExSQW5kRlAKKyAgICBlbHNpZiBDX0xPT1Agb3Ig
QVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKKyAgICAgICAgcG9wIGNm
cgorICAgICAgICBwb3AgbHIKKyAgICBlbmQKK2VuZAorCittYWNybyBjYWxsVG9KYXZhU2NyaXB0
UHJvbG9ndWUoKQorICAgIGlmIFg4Nl82NAorICAgICAgICBwdXNoIGNmcgorICAgICAgICBwdXNo
IHQwCisgICAgZWxzaWYgWDg2CisgICAgICAgIHB1c2ggY2ZyCisgICAgZWxzaWYgQVJNNjQKKyAg
ICAgICAgcHVzaExSQW5kRlAKKyAgICBlbHNpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFS
TXY3X1RSQURJVElPTkFMIG9yIE1JUFMKKyAgICAgICAgcHVzaCBscgorICAgICAgICBwdXNoIGNm
cgorICAgIGVuZAorICAgIHB1c2hDYWxsZWVTYXZlcworICAgIGlmIFg4NgorICAgICAgICBzdWJw
IDEyLCBzcAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTAorICAg
ICAgICBzdWJwIDQsIHNwCisgICAgICAgIG1vdmUgc3AsIHQ0CisgICAgICAgIGNscmJwIHQ0LCAw
eGYsIHQ1CisgICAgICAgIG1vdmUgdDUsIHNwCisgICAgICAgIHN0b3JlcCB0NCwgW3NwXQorICAg
IGVuZAorZW5kCisKK21hY3JvIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisgICAgYWRkcCBD
YWxsRnJhbWVIZWFkZXJTbG90cyAqIDgsIGNmciwgc3AKKyAgICBsb2FkcCBDYWxsZXJGcmFtZVtj
ZnJdLCBjZnIKKworICAgIGlmIFg4NgorICAgICAgICBhZGRwIDEyLCBzcAorICAgIGVsc2lmIEFS
TSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTAorICAgICAgICBwb3AgdDQKKyAgICAgICAg
bW92ZSB0NCwgc3AKKyAgICAgICAgYWRkcCA0LCBzcAorICAgIGVuZAorCisgICAgcG9wQ2FsbGVl
U2F2ZXMKKyAgICBpZiBYODZfNjQKKyAgICAgICAgcG9wIHQyCisgICAgICAgIHBvcCBjZnIKKyAg
ICBlbHNpZiBYODYKKyAgICAgICAgcG9wIGNmcgorICAgIGVsc2lmIEFSTTY0CisgICAgICAgIHBv
cExSQW5kRlAKKyAgICBlbHNpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJ
VElPTkFMIG9yIE1JUFMKKyAgICAgICAgcG9wIGNmcgorICAgICAgICBwb3AgbHIKKyAgICBlbmQK
K2VuZAorCittYWNybyBtb3ZlU3RhY2tQb2ludGVyRm9yQ29kZUJsb2NrKGNvZGVCbG9jaywgc2Ny
YXRjaCkKKyAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2FsbGVlUmVnaXN0ZXJzW2NvZGVCbG9j
a10sIHNjcmF0Y2gKKyAgICBsc2hpZnRwIDMsIHNjcmF0Y2gKKyAgICBhZGRwIG1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsLCBzY3JhdGNoCisgICAgc3VicCBjZnIsIHNjcmF0Y2gsIHNwCitl
bmQKKworbWFjcm8gcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCisgICAgbG9hZHAgQ29k
ZUJsb2NrW2Nmcl0sIHQyCisgICAgbW92ZVN0YWNrUG9pbnRlckZvckNvZGVCbG9jayh0MiwgdDQp
CitlbmQKKwogbWFjcm8gdHJhY2VFeGVjdXRpb24oKQogICAgIGlmIEVYRUNVVElPTl9UUkFDSU5H
CiAgICAgICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdHJhY2UpCiAgICAgZW5kCiBlbmQKIAotbWFj
cm8gY2FsbFRhcmdldEZ1bmN0aW9uKGNhbGxMaW5rSW5mbykKK21hY3JvIGNhbGxUYXJnZXRGdW5j
dGlvbihjYWxsTGlua0luZm8sIGNhbGxlZUZyYW1lUHRyKQorICAgIG1vdmUgY2FsbGVlRnJhbWVQ
dHIsIHNwCiAgICAgaWYgQ19MT09QCiAgICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rpb24gTExJbnRD
YWxsTGlua0luZm86Om1hY2hpbmVDb2RlVGFyZ2V0W2NhbGxMaW5rSW5mb10KICAgICBlbHNlCiAg
ICAgICAgIGNhbGwgTExJbnRDYWxsTGlua0luZm86Om1hY2hpbmVDb2RlVGFyZ2V0W2NhbGxMaW5r
SW5mb10KLSAgICAgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQogICAgIGVuZAorICAgIHJlc3RvcmVT
dGFja1BvaW50ZXJBZnRlckNhbGwoKQorICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKIGVuZAogCiBt
YWNybyBzbG93UGF0aEZvckNhbGwoc2xvd1BhdGgpCiAgICAgY2FsbENhbGxTbG93UGF0aCgKICAg
ICAgICAgc2xvd1BhdGgsCiAgICAgICAgIG1hY3JvIChjYWxsZWUpCisgICAgICAgICAgICBidHB6
IHQxLCAuZG9udFVwZGF0ZVNQCisgICAgICAgICAgICBhZGRwIENhbGxlckZyYW1lQW5kUENTaXpl
LCB0MSwgc3AKKyAgICAgICAgLmRvbnRVcGRhdGVTUDoKICAgICAgICAgICAgIGlmIENfTE9PUAog
ICAgICAgICAgICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rpb24gY2FsbGVlCiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgY2FsbCBjYWxsZWUKLSAgICAgICAgICAgICAgICBkaXNwYXRj
aEFmdGVyQ2FsbCgpCiAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIHJlc3RvcmVTdGFja1Bv
aW50ZXJBZnRlckNhbGwoKQorICAgICAgICAgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQogICAgICAg
ICBlbmQpCiBlbmQKIApAQCAtMzI1LDI2ICs0NzUsNDggQEAgZW5kCiAjIERvIHRoZSBiYXJlIG1p
bmltdW0gcmVxdWlyZWQgdG8gZXhlY3V0ZSBjb2RlLiBTZXRzIHVwIHRoZSBQQywgbGVhdmUgdGhl
IENvZGVCbG9jayoKICMgaW4gdDEuIE1heSBhbHNvIHRyaWdnZXIgcHJvbG9ndWUgZW50cnkgT1NS
LgogbWFjcm8gcHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIG9zclNs
b3dQYXRoLCB0cmFjZVNsb3dQYXRoKQotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2Fs
bCh0MikKLSAgICAKICAgICAjIFNldCB1cCB0aGUgY2FsbCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ug
c2hvdWxkIE9TUi4KLSAgICBzdG9yZXAgdDIsIFJldHVyblBDW2Nmcl0KKyAgICBwcmVzZXJ2ZUNh
bGxlclBDQW5kQ0ZSKCkKKwogICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCisgICAgICAgIHN1YnAg
bWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwsIHNwCiAgICAgICAgIGNhbGxTbG93UGF0aCh0
cmFjZVNsb3dQYXRoKQorICAgICAgICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
LCBzcAogICAgIGVuZAogICAgIGNvZGVCbG9ja0dldHRlcih0MSkKK2lmIENfTE9PUAorZWxzZQog
ICAgIGJhZGRpcyA1LCBDb2RlQmxvY2s6Om1fbGxpbnRFeGVjdXRlQ291bnRlciArIEV4ZWN1dGlv
bkNvdW50ZXI6Om1fY291bnRlclt0MV0sIC5jb250aW51ZQotICAgIGNDYWxsMihvc3JTbG93UGF0
aCwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKKyAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAg
Y0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgIGVsc2UKKyAgICAgICAgIyBXZSBhcmUg
YWZ0ZXIgdGhlIGZ1bmN0aW9uIHByb2xvZ3VlLCBidXQgYmVmb3JlIHdlIGhhdmUgc2V0IHVwIHNw
IGZyb20gdGhlIENvZGVCbG9jay4KKyAgICAgICAgIyBUZW1wb3JhcmlseSBhbGlnbiBzdGFjayBw
b2ludGVyIGZvciB0aGlzIGNhbGwuCisgICAgICAgIHN1YnAgOCwgc3AKKyAgICAgICAgY0NhbGwy
KG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgICAgICBhZGRwIDgsIHNwCisgICAgZW5kCiAgICAg
YnRweiB0MCwgLnJlY292ZXIKLSAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgotICAgIHJlc3Rv
cmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQorICAgIG1vdmUgY2ZyLCBzcCAjIHJlc3Rv
cmUgdGhlIHByZXZpb3VzIHNwCisgICAgIyBwb3AgdGhlIGNhbGxlckZyYW1lIHNpbmNlIHdlIHdp
bGwganVtcCB0byBhIGZ1bmN0aW9uIHRoYXQgd2FudHMgdG8gc2F2ZSBpdAorICAgIGlmIEFSTTY0
CisgICAgICAgIHBvcExSQW5kRlAKKyAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJB
RElUSU9OQUwgb3IgTUlQUyBvciBTSDQKKyAgICAgICAgcG9wIGNmcgorICAgICAgICBwb3AgbHIK
KyAgICBlbHNlCisgICAgICAgIHBvcCBjZnIKKyAgICBlbmQKICAgICBqbXAgdDAKIC5yZWNvdmVy
OgogICAgIGNvZGVCbG9ja0dldHRlcih0MSkKIC5jb250aW51ZToKK2VuZAorCiAgICAgY29kZUJs
b2NrU2V0dGVyKHQxKQogICAgIAorICAgIG1vdmVTdGFja1BvaW50ZXJGb3JDb2RlQmxvY2sodDEs
IHQyKQorCiAgICAgIyBTZXQgdXAgdGhlIFBDLgogICAgIGlmIEpTVkFMVUU2NAogICAgICAgICBs
b2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3QxXSwgUEIKQEAgLTM4OSwxNCArNTYxLDE2
IEBAIG1hY3JvIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24ocHJvZmlsZUFyZ1MKICAgICAgICAgCiAg
ICAgIyBDaGVjayBzdGFjayBoZWlnaHQuCiAgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxl
ZVJlZ2lzdGVyc1t0MV0sIHQwCi0gICAgYWRkaSAxLCB0MCAjIEFjY291bnQgdGhhdCBsb2NhbDAg
Z29lcyBhdCBzbG90IC0xCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW3QxXSwgdDIKICAgICBs
c2hpZnRwIDMsIHQwCisgICAgYWRkaSBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgdDAK
ICAgICBzdWJwIGNmciwgdDAsIHQwCiAgICAgYnBiZXEgVk06Om1fanNTdGFja0xpbWl0W3QyXSwg
dDAsIC5zdGFja0hlaWdodE9LCiAKICAgICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBu
ZWVkIHRvIGNhbGwgYSBzbG93X3BhdGguCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zdGFja19j
aGVjaykKKyAgICBicGVxIHQxLCAwLCAuc3RhY2tIZWlnaHRPSworICAgIG1vdmUgdDEsIGNmcgog
LnN0YWNrSGVpZ2h0T0s6CiBlbmQKIApAQCAtNDIzLDI1ICs1OTcsNjkgQEAgbWFjcm8gYWxsb2Nh
dGVKU09iamVjdChhbGxvY2F0b3IsIHN0cnVjdAogZW5kCiAKIG1hY3JvIGRvUmV0dXJuKCkKLSAg
ICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgotICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNm
cgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQorICAgIHJlc3RvcmVD
YWxsZXJQQ0FuZENGUigpCiAgICAgcmV0CiBlbmQKIAotaWYgQ19MT09QCi1lbHNlCiAjIHN0dWIg
dG8gY2FsbCBpbnRvIEphdmFTY3JpcHQgb3IgTmF0aXZlIGZ1bmN0aW9ucwotIyBFbmNvZGVkSlNW
YWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtLCBQcm90b0Nh
bGxGcmFtZSogcHJvdG9GcmFtZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCi0jIEVuY29kZWRKU1Zh
bHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtLCBQcm90
b0NhbGxGcmFtZSogcHJvdG9GcmFtZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCisjIEVuY29kZWRK
U1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm1Ub3BDYWxs
RnJhbWUsIFByb3RvQ2FsbEZyYW1lKiBwcm90b0ZyYW1lKQorIyBFbmNvZGVkSlNWYWx1ZSBjYWxs
VG9OYXRpdmVGdW5jdGlvbih2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2bVRvcENhbGxGcmFtZSwg
UHJvdG9DYWxsRnJhbWUqIHByb3RvRnJhbWUpCiAjIE5vdGUsIGlmIHRoZXNlIHN0dWJzIG9yIG9u
ZSBvZiB0aGVpciByZWxhdGVkIG1hY3JvcyBhcmUgY2hhbmdlZCwgbWFrZSB0aGUKICMgZXF1aXZh
bGVudCBjaGFuZ2VzIGluIGppdC9KSVRTdHVic1g4Ni5oIGFuZC9vciBqaXQvSklUU3R1YnNNU1ZD
NjQuYXNtCisKK2lmIENfTE9PUAorX2xsaW50X2NhbGxfdG9famF2YXNjcmlwdDoKK2Vsc2UKIF9j
YWxsVG9KYXZhU2NyaXB0OgotICAgIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlSmF2YVNjcmlwdENh
bGwsIGRvUmV0dXJuRnJvbUphdmFTY3JpcHQpCitlbmQKKyAgICBkb0NhbGxUb0phdmFTY3JpcHQo
bWFrZUphdmFTY3JpcHRDYWxsKQorCiAKK2lmIENfTE9PUAorX2xsaW50X2NhbGxfdG9fbmF0aXZl
X2Z1bmN0aW9uOgorZWxzZQogX2NhbGxUb05hdGl2ZUZ1bmN0aW9uOgotICAgIGRvQ2FsbFRvSmF2
YVNjcmlwdChtYWtlSG9zdEZ1bmN0aW9uQ2FsbCwgZG9SZXR1cm5Gcm9tSG9zdEZ1bmN0aW9uKQog
ZW5kCisgICAgZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VIb3N0RnVuY3Rpb25DYWxsKQorCisKK2lm
IENfTE9PUAorZWxzZQorIyB2b2lkIHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qIHZtKQorX3Nh
bml0aXplU3RhY2tGb3JWTUltcGw6CisgICAgaWYgWDg2XzY0CisgICAgICAgIGNvbnN0IHZtID0g
dDQKKyAgICAgICAgY29uc3QgYWRkcmVzcyA9IHQxCisgICAgICAgIGNvbnN0IHplcm9WYWx1ZSA9
IHQwCisgICAgZWxzaWYgWDg2CisgICAgICAgIGNvbnN0IHZtID0gdDIKKyAgICAgICAgY29uc3Qg
YWRkcmVzcyA9IHQxCisgICAgICAgIGNvbnN0IHplcm9WYWx1ZSA9IHQwCisgICAgZWxzZQorICAg
ICAgICBjb25zdCB2bSA9IGEwCisgICAgICAgIGNvbnN0IGFkZHJlc3MgPSB0MQorICAgICAgICBj
b25zdCB6ZXJvVmFsdWUgPSB0MgorICAgIGVuZAorCisgICAgaWYgWDg2CisgICAgICAgIGxvYWRw
IDRbc3BdLCB2bQorICAgIGVuZAorCisgICAgbG9hZHAgVk06Om1fbGFzdFN0YWNrVG9wW3ZtXSwg
YWRkcmVzcworICAgIGJwYmVxIHNwLCBhZGRyZXNzLCAuemVyb0ZpbGxEb25lCisKKyAgICBtb3Zl
IDAsIHplcm9WYWx1ZQorLnplcm9GaWxsTG9vcDoKKyAgICBzdG9yZXAgemVyb1ZhbHVlLCBbYWRk
cmVzc10KKyAgICBhZGRwIFB0clNpemUsIGFkZHJlc3MKKyAgICBicGEgc3AsIGFkZHJlc3MsIC56
ZXJvRmlsbExvb3AKKworLnplcm9GaWxsRG9uZToKKyAgICBtb3ZlIHNwLCBhZGRyZXNzCisgICAg
c3RvcmVwIGFkZHJlc3MsIFZNOjptX2xhc3RTdGFja1RvcFt2bV0KKyAgICByZXQKK2VuZAorCiAK
ICMgSW5kaWNhdGUgdGhlIGJlZ2lubmluZyBvZiBMTEludC4KIF9sbGludF9iZWdpbjoKQEAgLTcz
MSw4ICs5NDksMTUgQEAgX2xsaW50X29wX2NvbnN0cnVjdDoKIAogX2xsaW50X29wX2NhbGxfdmFy
YXJnczoKICAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVfZm9yX3ZhcmFyZ3MpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfc2l6ZV9mcmFtZV9mb3JfdmFyYXJncykKICAgICBicmFuY2hJZkV4
Y2VwdGlvbihfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZSkKKyAgICAjIGNh
bGxlZUZyYW1lIGluIHQxCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAgIG1vdmUgdDEsIHNwCisg
ICAgZWxzZQorICAgICAgICAjIFRoZSBjYWxsZWVGcmFtZSBpcyBub3Qgc3RhY2sgYWxpZ25lZCwg
bW92ZSBkb3duIGJ5IENhbGxlckZyYW1lQW5kUENTaXplIHRvIGFsaWduCisgICAgICAgIHN1YnAg
dDEsIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAorICAgIGVuZAogICAgIHNsb3dQYXRoRm9yQ2Fs
bChfbGxpbnRfc2xvd19wYXRoX2NhbGxfdmFyYXJncykKIAogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkwLDYgKzkwLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M6OkxMSW50OwogI2RlZmluZSBPRkZMSU5FX0FTTV9CRUdJTgogI2RlZmluZSBPRkZMSU5FX0FT
TV9FTkQKIAorI2lmIEVOQUJMRShPUENPREVfVFJBQ0lORykKKyNkZWZpbmUgVFJBQ0VfT1BDT0RF
KG9wY29kZSkgZGF0YUxvZ0YoIiAgIG9wICVzXG4iLCAjb3Bjb2RlKQorI2Vsc2UKKyNkZWZpbmUg
VFJBQ0VfT1BDT0RFKG9wY29kZSkKKyNlbmRpZgorCiAvLyBUbyBrZWVwIGNvbXBpbGVycyBoYXBw
eSBpbiBjYXNlIG9mIHVudXNlZCBsYWJlbHMsIGZvcmNlIHVzYWdlIG9mIHRoZSBsYWJlbDoKICNk
ZWZpbmUgVVNFX0xBQkVMKGxhYmVsKSBcCiAgICAgZG8geyBcCkBAIC05Nyw3ICsxMDMsNyBAQCB1
c2luZyBuYW1lc3BhY2UgSlNDOjpMTEludDsKICAgICAgICAgICAgIGdvdG8gbGFiZWw7IFwKICAg
ICB9IHdoaWxlIChmYWxzZSkKIAotI2RlZmluZSBPRkZMSU5FX0FTTV9PUENPREVfTEFCRUwob3Bj
b2RlKSBERUZJTkVfT1BDT0RFKG9wY29kZSkgVVNFX0xBQkVMKG9wY29kZSk7CisjZGVmaW5lIE9G
RkxJTkVfQVNNX09QQ09ERV9MQUJFTChvcGNvZGUpIERFRklORV9PUENPREUob3Bjb2RlKSBVU0Vf
TEFCRUwob3Bjb2RlKTsgVFJBQ0VfT1BDT0RFKG9wY29kZSk7CiAKICNpZiBFTkFCTEUoQ09NUFVU
RURfR09UT19PUENPREVTKQogI2RlZmluZSBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKGxhYmVsKSAg
bGFiZWw6IFVTRV9MQUJFTChsYWJlbCk7CkBAIC0yMTIsMTAgKzIxOCwxNCBAQCBzdHJ1Y3QgQ0xv
b3BSZWdpc3RlciB7CiAjZW5kaWYgLy8gIUNQVShCSUdfRU5ESUFOKQogI2VuZGlmIC8vICFVU0Uo
SlNWQUxVRTY0KQogCisgICAgICAgIGludHB0cl90KiBpcDsKICAgICAgICAgaW50OF90KiBpOHA7
CiAgICAgICAgIHZvaWQqIHZwOworICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKICAgICAg
ICAgRXhlY1N0YXRlKiBleGVjU3RhdGU7CiAgICAgICAgIHZvaWQqIGluc3RydWN0aW9uOworICAg
ICAgICBWTSogdm07CisgICAgICAgIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZTsKICAg
ICAgICAgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuYzsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAg
ICAgICBpbnQ2NF90IGk2NDsKQEAgLTIyNiw2ICsyMzYsMTIgQEAgc3RydWN0IENMb29wUmVnaXN0
ZXIgewogICAgICAgICBPcGNvZGUgb3Bjb2RlOwogICAgIH07CiAKKyAgICBvcGVyYXRvciBFeGVj
U3RhdGUqKCkgeyByZXR1cm4gZXhlY1N0YXRlOyB9CisgICAgb3BlcmF0b3IgSW5zdHJ1Y3Rpb24q
KCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxJbnN0cnVjdGlvbio+KGluc3RydWN0aW9uKTsg
fQorICAgIG9wZXJhdG9yIFZNKigpIHsgcmV0dXJuIHZtOyB9CisgICAgb3BlcmF0b3IgUHJvdG9D
YWxsRnJhbWUqKCkgeyByZXR1cm4gcHJvdG9DYWxsRnJhbWU7IH0KKyAgICBvcGVyYXRvciBSZWdp
c3RlciooKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4odnApOyB9CisKICNp
ZiBVU0UoSlNWQUxVRTY0KQogICAgIGlubGluZSB2b2lkIGNsZWFySGlnaFdvcmQoKSB7IGkzMnBh
ZGRpbmcgPSAwOyB9CiAjZWxzZQpAQCAtMjM3LDcgKzI1Myw3IEBAIHN0cnVjdCBDTG9vcFJlZ2lz
dGVyIHsKIC8vIFRoZSBsbGludCBDKysgaW50ZXJwcmV0ZXIgbG9vcDoKIC8vCiAKLUpTVmFsdWUg
Q0xvb3A6OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIE9wY29kZSBlbnRyeU9wY29kZSwg
Ym9vbCBpc0luaXRpYWxpemF0aW9uUGFzcykKK0pTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoT3Bjb2Rl
SUQgZW50cnlPcGNvZGVJRCwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZNKiB2bSwgUHJvdG9D
YWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lLCBib29sIGlzSW5pdGlhbGl6YXRpb25QYXNzKQogewog
ICAgICNkZWZpbmUgQ0FTVCByZWludGVycHJldF9jYXN0CiAgICAgI2RlZmluZSBTSUdOX0JJVDMy
KHgpICgoeCkgJiAweDgwMDAwMDAwKQpAQCAtMjcyLDggKzI4OCw2IEBAIEpTVmFsdWUgQ0xvb3A6
OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnIKICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAg
ICB9CiAKLSAgICBBU1NFUlQoY2FsbEZyYW1lLT52bSgpLnRvcENhbGxGcmFtZSA9PSBjYWxsRnJh
bWUpOwotCiAgICAgLy8gRGVmaW5lIHRoZSBwc2V1ZG8gcmVnaXN0ZXJzIHVzZWQgYnkgdGhlIExM
SU5UIEMgTG9vcCBiYWNrZW5kOgogICAgIEFTU0VSVChzaXplb2YoQ0xvb3BSZWdpc3RlcikgPT0g
c2l6ZW9mKGludHB0cl90KSk7CiAKQEAgLTMwOCw1MCArMzIyLDQ4IEBAIEpTVmFsdWUgQ0xvb3A6
OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnIKICAgICAvLyAyLiAzMiBiaXQgcmVzdWx0IHZhbHVl
cyB3aWxsIGJlIGluIHRoZSBsb3cgMzItYml0IG9mIHQwLgogICAgIC8vIDMuIDY0IGJpdCByZXN1
bHQgdmFsdWVzIHdpbGwgYmUgaW4gdDAuCiAKLSAgICBDTG9vcFJlZ2lzdGVyIHQwLCB0MSwgdDIs
IHQzOworICAgIENMb29wUmVnaXN0ZXIgdDAsIHQxLCB0MiwgdDMsIHQ1LCBzcCwgY2ZyLCBsciwg
cGM7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBDTG9vcFJlZ2lzdGVyIHJCYXNlUEMsIHRhZ1R5
cGVOdW1iZXIsIHRhZ01hc2s7CisgICAgQ0xvb3BSZWdpc3RlciBwY0Jhc2UsIHRhZ1R5cGVOdW1i
ZXIsIHRhZ01hc2s7CiAjZW5kaWYKLSAgICBDTG9vcFJlZ2lzdGVyIHJSZXRWUEM7CiAgICAgQ0xv
b3BEb3VibGVSZWdpc3RlciBkMCwgZDE7CiAKLSAgICAvLyBLZWVwIHRoZSBjb21waWxlciBoYXBw
eS4gV2UgZG9uJ3QgcmVhbGx5IG5lZWQgdGhpcywgYnV0IHRoZSBjb21waWxlcgotICAgIC8vIHdp
bGwgY29tcGxhaW4uIFRoaXMgbWFrZXMgdGhlIHdhcm5pbmcgZ28gYXdheS4KLSAgICB0MC5pID0g
MDsKLSAgICB0MS5pID0gMDsKLQotICAgIFZNKiB2bSA9ICZjYWxsRnJhbWUtPnZtKCk7Ci0KLSAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7Ci0gICAgSW5z
dHJ1Y3Rpb24qIHZQQzsKLQotICAgIC8vIHJQQyBpcyBhbiBhbGlhcyBmb3IgdlBDLiBTZXQgdXAg
dGhlIGFsaWFzOgotICAgIENMb29wUmVnaXN0ZXImIHJQQyA9ICpDQVNUPENMb29wUmVnaXN0ZXIq
PigmdlBDKTsKKyAgICBsci5vcGNvZGUgPSBnZXRPcGNvZGUobGxpbnRfcmV0dXJuX3RvX2hvc3Qp
OworICAgIHNwLnZwID0gdm0tPmludGVycHJldGVyLT5zdGFjaygpLnRvcE9mU3RhY2soKSArIDE7
CisgICAgY2ZyLmNhbGxGcmFtZSA9IHZtLT50b3BDYWxsRnJhbWU7CisjaWZuZGVmIE5ERUJVRwor
ICAgIHZvaWQqIHN0YXJ0U1AgPSBzcC52cDsKKyAgICBDYWxsRnJhbWUqIHN0YXJ0Q0ZSID0gY2Zy
LmNhbGxGcmFtZTsKKyNlbmRpZgogCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICB2UEMgPSBj
b2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7Ci0jZWxzZSAvLyBVU0UoSlNWQUxVRTY0
KQotICAgIHZQQyA9IDA7Ci0gICAgckJhc2VQQy52cCA9IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25z
KCkuYmVnaW4oKTsKKyAgICAvLyBJbml0aWFsaXplIHRoZSBpbmNvbWluZyBhcmdzIGZvciBkb0Nh
bGxUb0phdmFTY3JpcHQ6CisgICAgdDAudnAgPSBleGVjdXRhYmxlQWRkcmVzczsKKyAgICB0MS52
bSA9IHZtOworICAgIHQyLnByb3RvQ2FsbEZyYW1lID0gcHJvdG9DYWxsRnJhbWU7CiAKKyNpZiBV
U0UoSlNWQUxVRTY0KQogICAgIC8vIEZvciB0aGUgQVNNIGxsaW50LCBKSVRTdHVicyB0YWtlcyBj
YXJlIG9mIHRoaXMgaW5pdGlhbGl6YXRpb24uIFdlIGRvCiAgICAgLy8gaXQgZXhwbGljaXRseSBo
ZXJlIGZvciB0aGUgQyBsb29wOgogICAgIHRhZ1R5cGVOdW1iZXIuaSA9IDB4RkZGRjAwMDAwMDAw
MDAwMDsKICAgICB0YWdNYXNrLmkgPSAweEZGRkYwMDAwMDAwMDAwMDI7CiAjZW5kaWYgLy8gVVNF
KEpTVkFMVUU2NCkKIAotICAgIC8vIGNmciBpcyBhbiBhbGlhcyBmb3IgY2FsbEZyYW1lLiBTZXQg
dXAgdGhpcyBhbGlhczoKLSAgICBDTG9vcFJlZ2lzdGVyJiBjZnIgPSAqQ0FTVDxDTG9vcFJlZ2lz
dGVyKj4oJmNhbGxGcmFtZSk7Ci0KLSAgICAvLyBTaW11bGF0ZSBhIG5hdGl2ZSByZXR1cm4gUEMg
d2hpY2ggc2hvdWxkIG5ldmVyIGJlIHVzZWQ6Ci0gICAgclJldFZQQy5pID0gMHhiYmFkYmVlZjsK
LQogICAgIC8vIEludGVycHJldGVyIHZhcmlhYmxlcyBmb3IgdmFsdWUgcGFzc2luZyBiZXR3ZWVu
IG9wY29kZXMgYW5kL29yIGhlbHBlcnM6CiAgICAgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuYyA9
IDA7CiAgICAgSlNWYWx1ZSBmdW5jdGlvblJldHVyblZhbHVlOwotICAgIE9wY29kZSBvcGNvZGU7
CisgICAgT3Bjb2RlIG9wY29kZSA9IGdldE9wY29kZShlbnRyeU9wY29kZUlEKTsKIAotICAgIG9w
Y29kZSA9IGVudHJ5T3Bjb2RlOworICAgICNkZWZpbmUgUFVTSChjbG9vcFJlZykgXAorICAgICAg
ICBkbyB7IFwKKyAgICAgICAgICAgIHNwLmlwLS07IFwKKyAgICAgICAgICAgICpzcC5pcCA9IGNs
b29wUmVnLmk7IFwKKyAgICAgICAgfSB3aGlsZSAoZmFsc2UpCisgICAgCisgICAgI2RlZmluZSBQ
T1AoY2xvb3BSZWcpIFwKKyAgICAgICAgZG8geyBcCisgICAgICAgICAgICBjbG9vcFJlZy5pID0g
KnNwLmlwOyBcCisgICAgICAgICAgICBzcC5pcCsrOyBcCisgICAgICAgIH0gd2hpbGUgKGZhbHNl
KQogCiAgICAgI2lmIEVOQUJMRShPUENPREVfU1RBVFMpCiAgICAgICAgICNkZWZpbmUgUkVDT1JE
X09QQ09ERV9TVEFUUyhfX29wY29kZSkgXApAQCAtMzYxLDkgKzM3Myw5IEBAIEpTVmFsdWUgQ0xv
b3A6OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnIKICAgICAjZW5kaWYKIAogICAgICNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQotICAgICAgICAjZGVmaW5lIEZFVENIX09QQ09ERSgpIHZQQy0+dS5vcGNv
ZGUKKyAgICAgICAgI2RlZmluZSBGRVRDSF9PUENPREUoKSBwYy5vcGNvZGUKICAgICAjZWxzZSAv
LyBVU0UoSlNWQUxVRTY0KQotICAgICAgICAjZGVmaW5lIEZFVENIX09QQ09ERSgpICpiaXR3aXNl
X2Nhc3Q8T3Bjb2RlKj4ockJhc2VQQy5pOHAgKyByUEMuaSAqIDgpCisgICAgICAgICNkZWZpbmUg
RkVUQ0hfT1BDT0RFKCkgKmJpdHdpc2VfY2FzdDxPcGNvZGUqPihwY0Jhc2UuaThwICsgcGMuaSAq
IDgpCiAgICAgI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAKICAgICAjZGVmaW5lIE5FWFRfSU5T
VFJVQ1RJT04oKSBcCkBAIC00MTIsMTQgKzQyNCwyMiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRl
KENhbGxGcmFtZSogY2FsbEZyCiAKICAgICAgICAgI2luY2x1ZGUgIkxMSW50QXNzZW1ibHkuaCIK
IAorICAgICAgICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKGxsaW50X3JldHVybl90b19ob3N0KQor
ICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoc3RhcnRTUCA9PSBzcC52cCk7CisgICAgICAg
ICAgICBBU1NFUlQoc3RhcnRDRlIgPT0gY2ZyLmNhbGxGcmFtZSk7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKHQxLmksIHQwLmkpOyAvLyByZXR1cm5p
bmcgSlNWYWx1ZSh0YWcsIHBheWxvYWQpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjpkZWNvZGUodDAuZW5jb2RlZEpTVmFsdWUpOworI2VuZGlmCisgICAgICAgIH0KKwogICAg
ICAgICAvLyBJbiB0aGUgQVNNIGxsaW50LCBnZXRIb3N0Q2FsbFJldHVyblZhbHVlKCkgaXMgYSBw
aWVjZSBvZiBnbHVlCi0gICAgICAgIC8vIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5IHRoZSBKSVQgKHNl
ZSBkZmcvREZHT3BlcmF0aW9ucy5jcHApLgorICAgICAgICAvLyBmdW5jdGlvbiBwcm92aWRlZCBi
eSB0aGUgSklUIChzZWUgaml0L0pJVE9wZXJhdGlvbnMuY3BwKS4KICAgICAgICAgLy8gV2Ugc2lt
dWxhdGUgaXQgaGVyZSB3aXRoIGEgcHNlZHVvLW9wY29kZSBoYW5kbGVyLgogICAgICAgICBPRkZM
SU5FX0FTTV9HTFVFX0xBQkVMKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIC8vIFRoZSBBU00gcGFydCBwb3BzIHRoZSBmcmFtZToKLSAgICAgICAgICAgIGNh
bGxGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKLQogICAgICAgICAgICAgLy8gVGhl
IHBhcnQgaW4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUoKToKICAgICAgICAg
ICAgIEpTVmFsdWUgcmVzdWx0ID0gdm0tPmhvc3RDYWxsUmV0dXJuVmFsdWU7CiAjaWYgVVNFKEpT
VkFMVUUzMl82NCkKQEAgLTQyOCwxMiArNDQ4LDggQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShD
YWxsRnJhbWUqIGNhbGxGcgogI2Vsc2UKICAgICAgICAgICAgIHQwLmVuY29kZWRKU1ZhbHVlID0g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAjZW5kaWYKLSAgICAgICAgICAgIGdvdG8gZG9SZXR1
cm5IZWxwZXI7Ci0gICAgICAgIH0KLQotICAgICAgICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKHJl
dHVybkZyb21KYXZhU2NyaXB0KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gdm0tPmV4
Y2VwdGlvbigpOworICAgICAgICAgICAgb3Bjb2RlID0gbHIub3Bjb2RlOworICAgICAgICAgICAg
RElTUEFUQ0hfT1BDT0RFKCk7CiAgICAgICAgIH0KIAogI2lmICFFTkFCTEUoQ09NUFVURURfR09U
T19PUENPREVTKQpAQCAtNDQzLDU1ICs0NTksNiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENh
bGxGcmFtZSogY2FsbEZyCiAKICAgICB9IC8vIEVORCBieXRlY29kZSBoYW5kbGVyIGNhc2VzLgog
Ci0gICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICAvLyBCeXRlY29kZSBoZWxwZXJzOgotCi0gICAg
ZG9SZXR1cm5IZWxwZXI6IHsKLSAgICAgICAgQVNTRVJUKCEhY2FsbEZyYW1lKTsKLSAgICAgICAg
aWYgKGNhbGxGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSkgewotI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSh0MS5pLCB0MC5pKTsgLy8gcmV0dXJuaW5n
IEpTVmFsdWUodGFnLCBwYXlsb2FkKTsKLSNlbHNlCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZGVjb2RlKHQwLmVuY29kZWRKU1ZhbHVlKTsKLSNlbmRpZgotICAgICAgICB9Ci0KLSAgICAg
ICAgLy8gVGhlIG5vcm1hbCBBU00gbGxpbnQgY2FsbCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRv
IHRoZSBjYWxsZXIgYXMKLSAgICAgICAgLy8gcmVjb3JkZWQgaW4gclJldFZQQywgYW5kIHRoZSBj
YWxsZXIgd291bGQgZmV0Y2ggdGhlIHJldHVybiBhZGRyZXNzCi0gICAgICAgIC8vIGZyb20gQXJn
dW1lbnRDb3VudC50YWcoKSAoc2VlIHRoZSBkaXNwYXRjaEFmdGVyQ2FsbCgpIG1hY3JvIHVzZWQg
aW4KLSAgICAgICAgLy8gdGhlIGNhbGxUYXJnZXRGdW5jdGlvbigpIG1hY3JvIGluIHRoZSBsbGlu
dCBhc20gZmlsZXMpLgotICAgICAgICAvLwotICAgICAgICAvLyBGb3IgdGhlIEMgbG9vcCwgd2Ug
ZG9uJ3QgaGF2ZSB0aGUgSklUIHN0dWIgdG8gZG8gdGhpcyB3b3JrIGZvciB1cy4gU28sCi0gICAg
ICAgIC8vIHdlIGp1bXAgdG8gbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQuCi0KLSAgICAgICAg
dlBDID0gY2FsbEZyYW1lLT5jdXJyZW50VlBDKCk7Ci0KLSNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICAvLyBCYXNlZCBvbiBMb3dMZXZlbEludGVycHJldGVyNjQuYXNtJ3MgZGlzcGF0Y2hBZnRl
ckNhbGwoKToKLQotICAgICAgICAvLyBXaGVuIHJldHVybmluZyBmcm9tIGEgbmF0aXZlIHRyYW1w
b2xpbmUgY2FsbCwgdW5saWtlIHRoZSBhc3NlbWJseQotICAgICAgICAvLyBMTEludCwgd2UgY2Fu
J3Qgc2ltcGx5IHJldHVybiB0byB0aGUgY2FsbGVyLiBJbiBvdXIgY2FzZSwgd2UgZ3JhYgotICAg
ICAgICAvLyB0aGUgY2FsbGVyJ3MgVlBDIGFuZCByZXN1bWUgZXhlY3V0aW9uIHRoZXJlLiBIb3dl
dmVyLCB0aGUgY2FsbGVyJ3MKLSAgICAgICAgLy8gVlBDIHJldHVybmVkIGJ5IGNhbGxGcmFtZS0+
Y3VycmVudFZQQygpIGlzIGluIHRoZSBmb3JtIG9mIHRoZSByZWFsCi0gICAgICAgIC8vIGFkZHJl
c3Mgb2YgdGhlIHRhcmdldCBieXRlY29kZSwgYnV0IHRoZSA2NC1iaXQgbGxpbnQgZXhwZWN0cyB0
aGUKLSAgICAgICAgLy8gVlBDIHRvIGJlIGEgYnl0ZWNvZGUgb2Zmc2V0LiBIZW5jZSwgd2UgbmVl
ZCB0byBtYXAgaXQgYmFjayB0byBhCi0gICAgICAgIC8vIGJ5dGVjb2RlIG9mZnNldCBiZWZvcmUg
d2UgZGlzcGF0Y2ggdmlhIHRoZSB1c3VhbCBkaXNwYXRjaCBtZWNoYW5pc20KLSAgICAgICAgLy8g
aS5lLiBORVhUX0lOU1RSVUNUSU9OKCk6Ci0KLSAgICAgICAgY29kZUJsb2NrID0gY2FsbEZyYW1l
LT5jb2RlQmxvY2soKTsKLSAgICAgICAgQVNTRVJUKGNvZGVCbG9jayk7Ci0gICAgICAgIHJQQy52
cCA9IGNhbGxGcmFtZS0+Y3VycmVudFZQQygpOwotICAgICAgICByUEMuaSA9IHJQQy5pOHAgLSBy
ZWludGVycHJldF9jYXN0PGludDhfdCo+KGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4o
KSk7Ci0gICAgICAgIHJQQy5pID4+PSAzOwotCi0gICAgICAgIHJCYXNlUEMudnAgPSBjb2RlQmxv
Y2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7Ci0jZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKLQot
ICAgICAgICBnb3RvIGxsaW50X2dlbmVyaWNfcmV0dXJuX3BvaW50OwotCi0gICAgfSAvLyBFTkQg
ZG9SZXR1cm5IZWxwZXIuCi0KLQogI2lmIEVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAg
ICAgLy8gS2VlcCB0aGUgY29tcGlsZXIgaGFwcHkgc28gdGhhdCBpdCBkb2Vzbid0IGNvbXBsYWlu
IGFib3V0IHVudXNlZAogICAgIC8vIGxhYmVscyBmb3IgdGhlIExMSW50IHRyYW1wb2xpbmUgZ2x1
ZS4gVGhlIGxhYmVscyBhcmUgYXV0b21hdGljYWxseQpAQCAtNTIzLDEyICs0OTAsMTIgQEAgSlNW
YWx1ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogCiAvLyBUaGVzZSBhcmUgZm9y
IGJ1aWxkaW5nIGFuIGludGVycHJldGVyIGZyb20gZ2VuZXJhdGVkIGFzc2VtYmx5IGNvZGU6CiAj
aWYgQ1BVKFg4Nl82NCkgJiYgQ09NUElMRVIoQ0xBTkcpCi0jZGVmaW5lIE9GRkxJTkVfQVNNX0JF
R0lOICAgYXNtICggXAorI2RlZmluZSBPRkZMSU5FX0FTTV9CRUdJTiAgIGFzbSAoICAgICAgICAg
ICAgICAgIFwKICAgICAiLmNmaV9zdGFydHByb2NcbiIKIAotI2RlZmluZSBPRkZMSU5FX0FTTV9F
TkQgICAgIFwKLSAgICAiLmNmaV9lbmRwcm9jXG4iIFwKLSk7CisjZGVmaW5lIE9GRkxJTkVfQVNN
X0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICIuY2ZpX2VuZHByb2NcbiIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
OwogI2Vsc2UKICNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4gICBhc20gKAogI2RlZmluZSBPRkZM
SU5FX0FTTV9FTkQgICAgICk7CkBAIC01NTEsOSArNTE4LDkgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhl
Y3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGxhYmVs
KSAiXG4iICAgICAgICAgXAogICAgIEhJREVfU1lNQk9MKGxhYmVsKSAiXG4iICAgICAgICAgICAg
ICAgICAgICAgXAogICAgIFNZTUJPTF9TVFJJTkcobGFiZWwpICI6XG4iICAgICAgICAgICAgICAg
ICAgXAotICAgICIuY2ZpX2RlZl9jZmEgcmJwLCAwXG4iICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICIuY2ZpX29mZnNldCAxNiwgOFxuIiAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICIu
Y2ZpX29mZnNldCA2LCAwXG4iCisgICAgIi5jZmlfZGVmX2NmYV9vZmZzZXQgMTZcbiIgICAgICAg
ICAgICAgICAgICBcCisgICAgIi5jZmlfb2Zmc2V0ICVyYnAsIC0xNlxuIiAgICAgICAgICAgICAg
ICAgICBcCisgICAgIi5jZmlfZGVmX2NmYV9yZWdpc3RlciByYnBcbiIKICNlbHNlCiAjZGVmaW5l
IE9GRkxJTkVfQVNNX0dMT0JBTF9MQUJFTChsYWJlbCkgICAgICAgICBcCiAgICAgIi50ZXh0XG4i
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcAkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsdm0vbGlicmFyeS9MTFZNRXhwb3J0
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDEwIEBAIGV4dGVybiAiQyIgSlNDOjpM
TFZNQVBJKiBpbml0aWFsaXplQW5kR2UKICAgICBnX2xsdm1UcmFwQ2FsbGJhY2sgPSBjYWxsYmFj
azsKICAgICAKICAgICBMTFZNSW5zdGFsbEZhdGFsRXJyb3JIYW5kbGVyKGxsdm1DcmFzaCk7CisK
KyAgICBpZiAoIUxMVk1TdGFydE11bHRpdGhyZWFkZWQoKSkKKyAgICAgICAgY2FsbGJhY2soIkNv
dWxkIG5vdCBzdGFydCBMTFZNIG11bHRpdGhyZWFkaW5nIik7CisgICAgCiAgICAgTExWTUxpbmtJ
bk1DSklUKCk7CiAgICAgTExWTUluaXRpYWxpemVOYXRpdmVUYXJnZXQoKTsKICAgICBMTFZNSW5p
dGlhbGl6ZVg4NkFzbVByaW50ZXIoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2FybTY0LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2FybTY0LnJiCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm02NC5yYgkod29ya2luZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDE0IEBA
IHJlcXVpcmUgInJpc2MiCiAjICB4MSAgPT4gdDEsIGExLCByMQogIyAgeDIgID0+IHQyLCBhMgog
IyAgeDMgID0+IGEzCisjICB4NSAgPT4gdDUKKyMgIHg2ICA9PiB0NgogIyAgeDkgID0+IChub25B
cmdHUFIxIGluIGJhc2VsaW5lKQotIyB4MTAgID0+IHQ0ICh1bnVzZWQgaW4gYmFzZWxpbmUpCi0j
IHgxMSAgPT4gdDUgKHVudXNlZCBpbiBiYXNlbGluZSkKLSMgeDEyICA9PiB0NiAodW51c2VkIGlu
IGJhc2VsaW5lKQogIyB4MTMgID0+IHNjcmF0Y2ggKHVudXNlZCBpbiBiYXNlbGluZSkKICMgeDE2
ICA9PiBzY3JhdGNoCiAjIHgxNyAgPT4gc2NyYXRjaAogIyB4MjMgID0+IHQzCisjIHgyNCAgPT4g
dDQKICMgeDI3ICA9PiBjc3IxICh0YWdUeXBlTnVtYmVyKQogIyB4MjggID0+IGNzcjIgKHRhZ01h
c2spCiAjIHgyOSAgPT4gY2ZyCkBAIC0xMTMsMTEgKzExMywxMSBAQCBjbGFzcyBSZWdpc3RlcklE
CiAgICAgICAgIHdoZW4gJ3QzJwogICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4MjMnLCBraW5k
KQogICAgICAgICB3aGVuICd0NCcKLSAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDEwJywga2lu
ZCkKKyAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDI0Jywga2luZCkKICAgICAgICAgd2hlbiAn
dDUnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gxMScsIGtpbmQpCisgICAgICAgICAgICBh
cm02NEdQUk5hbWUoJ3g1Jywga2luZCkKICAgICAgICAgd2hlbiAndDYnCi0gICAgICAgICAgICBh
cm02NEdQUk5hbWUoJ3gxMicsIGtpbmQpCisgICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3g2Jywg
a2luZCkKICAgICAgICAgd2hlbiAnY2ZyJwogICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4Mjkn
LCBraW5kKQogICAgICAgICB3aGVuICdjc3IxJwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2FybS5yYgkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vYXJtLnJiCSh3b3JraW5nIGNvcHkpCkBAIC02MDEsNiArNjAxLDggQEAg
Y2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAic211bGwgI3tvcGVyYW5k
c1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1szXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sw
XS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgd2hlbiAi
bWVtZmVuY2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImRtYiBzeSIKKyAgICAgICAgd2hlbiAi
Y2xyYnAiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJpYyAje29wZXJhbmRzWzJdLmFybU9wZXJh
bmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9
IgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBsb3dlckRlZmF1bHQKICAgICAgICAgZW5kCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIJKHdv
cmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTY4LDM0ICs2OCwyMiBAQCBDX0xPT1BfU0NSQVRDSF9GUFIgPSBTcGVjaWFsUmVnaXN0ZXIu
bmV3CiBjbGFzcyBSZWdpc3RlcklECiAgICAgZGVmIGNsRHVtcAogICAgICAgICBjYXNlIG5hbWUK
LSAgICAgICAgd2hlbiAiYTAiCi0gICAgICAgICAgICAiYTAiCi0gICAgICAgIHdoZW4gImExIgot
ICAgICAgICAgICAgImExIgotICAgICAgICB3aGVuICJhMiIKLSAgICAgICAgICAgICJhMiIKLSAg
ICAgICAgd2hlbiAiYTMiCi0gICAgICAgICAgICAiYTMiCi0gICAgICAgIHdoZW4gImE0IgotICAg
ICAgICAgICAgImE0IgotICAgICAgICB3aGVuICJhNSIKLSAgICAgICAgICAgICJhNSIKLSAgICAg
ICAgd2hlbiAiYTYiCi0gICAgICAgICAgICAiYTYiCi0gICAgICAgIHdoZW4gImE2IgotICAgICAg
ICAgICAgImE2IgotICAgICAgICB3aGVuICJ0MCIKKyAgICAgICAgIyBUaGUgY2xvb3AgaXMgbW9k
ZWxsZWQgb24gdGhlIEFSTSBpbXBsZW1lbnRhdGlvbi4gSGVuY2UsIHRoZSBhMC1hMworICAgICAg
ICAjIHJlZ2lzdGVycyBhcmUgYWxpYXNlcyBmb3IgcjAtcjMgaS5lLiB0MC10MyBpbiBvdXIgY2Fz
ZS4KKyAgICAgICAgd2hlbiAidDAiLCAiYTAiCiAgICAgICAgICAgICAidDAiCi0gICAgICAgIHdo
ZW4gInQxIgorICAgICAgICB3aGVuICJ0MSIsICJhMSIKICAgICAgICAgICAgICJ0MSIKLSAgICAg
ICAgd2hlbiAidDIiCisgICAgICAgIHdoZW4gInQyIiwgImEyIgogICAgICAgICAgICAgInQyIgot
ICAgICAgICB3aGVuICJ0MyIKKyAgICAgICAgd2hlbiAidDMiLCAiYTMiCiAgICAgICAgICAgICAi
dDMiCiAgICAgICAgIHdoZW4gInQ0IgotICAgICAgICAgICAgInJQQyIKKyAgICAgICAgICAgICJw
YyIKKyAgICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICAidDUiCiAgICAgICAgIHdoZW4gInQ2
IgotICAgICAgICAgICAgInJCYXNlUEMiCisgICAgICAgICAgICAicGNCYXNlIgogICAgICAgICB3
aGVuICJjc3IxIgogICAgICAgICAgICAgInRhZ1R5cGVOdW1iZXIiCiAgICAgICAgIHdoZW4gImNz
cjIiCkBAIC0xMDMsNyArOTEsNyBAQCBjbGFzcyBSZWdpc3RlcklECiAgICAgICAgIHdoZW4gImNm
ciIKICAgICAgICAgICAgICJjZnIiCiAgICAgICAgIHdoZW4gImxyIgotICAgICAgICAgICAgInJS
ZXRWUEMiCisgICAgICAgICAgICAibHIiCiAgICAgICAgIHdoZW4gInNwIgogICAgICAgICAgICAg
InNwIgogICAgICAgICBlbHNlCkBAIC01NTUsMTQgKzU0MywxNCBAQCBlbmQKICMgb3BlcmFuZHM6
IGNhbGxUYXJnZXQsIGN1cnJlbnRGcmFtZSwgY3VycmVudFBDCiBkZWYgY2xvb3BFbWl0Q2FsbFNs
b3dQYXRoKG9wZXJhbmRzKQogICAgICRhc20ucHV0YyAieyIKLSAgICAkYXNtLnB1dGMgIiAgICBF
eGVjU3RhdGUqIGV4ZWMgPSBDQVNUPEV4ZWNTdGF0ZSo+KCN7b3BlcmFuZHNbMV0uY2xWYWx1ZSg6
dm9pZFB0cil9KTsiCi0gICAgJGFzbS5wdXRjICIgICAgSW5zdHJ1Y3Rpb24qIHBjID0gQ0FTVDxJ
bnN0cnVjdGlvbio+KCN7b3BlcmFuZHNbMl0uY2xWYWx1ZSg6dm9pZFB0cil9KTsiCi0gICAgJGFz
bS5wdXRjICIgICAgU2xvd1BhdGhSZXR1cm5UeXBlIHJlc3VsdCA9ICN7b3BlcmFuZHNbMF0uY0xh
YmVsfShleGVjLCBwYyk7IgotICAgICRhc20ucHV0YyAiICAgIGRlY29kZVJlc3VsdChyZXN1bHQs
IHQwLmluc3RydWN0aW9uLCB0MS52cCk7IgorICAgICRhc20ucHV0YyAiICAgIFNsb3dQYXRoUmV0
dXJuVHlwZSByZXN1bHQgPSAje29wZXJhbmRzWzBdLmNMYWJlbH0oI3tvcGVyYW5kc1sxXS5jbER1
bXB9LCAje29wZXJhbmRzWzJdLmNsRHVtcH0pOyIKKyAgICAkYXNtLnB1dGMgIiAgICBkZWNvZGVS
ZXN1bHQocmVzdWx0LCB0MC52cCwgdDEudnApOyIKICAgICAkYXNtLnB1dGMgIn0iCiBlbmQKIAog
Y2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBAQGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlciA9IDAK
KwogICAgIGRlZiBsb3dlckNfTE9PUAogICAgICAgICAkYXNtLmNvZGVPcmlnaW4gY29kZU9yaWdp
blN0cmluZyBpZiAkZW5hYmxlQ29kZU9yaWdpbkNvbW1lbnRzCiAgICAgICAgICRhc20uYW5ub3Rh
dGlvbiBhbm5vdGF0aW9uIGlmICRlbmFibGVJbnN0ckFubm90YXRpb25zICYmIChvcGNvZGUgIT0g
ImNsb29wRG8iKQpAQCAtODc2LDcgKzg2NCw4IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAg
IHdoZW4gImJyZWFrIgogICAgICAgICAgICAgJGFzbS5wdXRjICJDUkFTSCgpOyAvLyBicmVhayBp
bnN0cnVjdGlvbiBub3QgaW1wbGVtZW50ZWQuIgogICAgICAgICB3aGVuICJyZXQiCi0gICAgICAg
ICAgICAkYXNtLnB1dGMgImdvdG8gZG9SZXR1cm5IZWxwZXI7IgorICAgICAgICAgICAgJGFzbS5w
dXRjICJvcGNvZGUgPSBsci5vcGNvZGU7IgorICAgICAgICAgICAgJGFzbS5wdXRjICJESVNQQVRD
SF9PUENPREUoKTsiCiAKICAgICAgICAgd2hlbiAiY2JlcSIKICAgICAgICAgICAgIGNsb29wRW1p
dENvbXBhcmVBbmRTZXQob3BlcmFuZHMsIDp1aW50OCwgIj09IikKQEAgLTEwOTcsNiArMTA4Niwx
MiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgY2xvb3BFbWl0T3BBbmRCcmFuY2go
b3BlcmFuZHMsICJ8IiwgOmludDMyLCAiIT0gMCIpCiAgICAgICAgICAgICAKICAgICAgICAgd2hl
biAibWVtZmVuY2UiCisKKyAgICAgICAgd2hlbiAicHVzaCIKKyAgICAgICAgICAgICRhc20ucHV0
YyAiUFVTSCgje29wZXJhbmRzWzBdLmNsRHVtcH0pOyIKKyAgICAgICAgd2hlbiAicG9wIgorICAg
ICAgICAgICAgJGFzbS5wdXRjICJQT1AoI3tvcGVyYW5kc1swXS5jbER1bXB9KTsiCisKICAgICAg
ICAgd2hlbiAicHVzaENhbGxlZVNhdmVzIgogICAgICAgICB3aGVuICJwb3BDYWxsZWVTYXZlcyIK
IApAQCAtMTExMyw4ICsxMTA4LDExIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICMgdXNl
IG9mIHRoZSBjYWxsIGluc3RydWN0aW9uLiBJbnN0ZWFkLCB3ZSBqdXN0IGltcGxlbWVudCBKUyBj
YWxscwogICAgICAgICAjIGFzIGFuIG9wY29kZSBkaXNwYXRjaC4KICAgICAgICAgd2hlbiAiY2xv
b3BDYWxsSlNGdW5jdGlvbiIKKyAgICAgICAgICAgIEBAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3Vu
dGVyICs9IDEKKyAgICAgICAgICAgICRhc20ucHV0YyAibHIub3Bjb2RlID0gZ2V0T3Bjb2RlKGxs
aW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc18je0BAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3Vu
dGVyfSk7IgogICAgICAgICAgICAgJGFzbS5wdXRjICJvcGNvZGUgPSAje29wZXJhbmRzWzBdLmNs
VmFsdWUoOm9wY29kZSl9OyIKICAgICAgICAgICAgICRhc20ucHV0YyAiRElTUEFUQ0hfT1BDT0RF
KCk7IgorICAgICAgICAgICAgJGFzbS5wdXRzTGFiZWwoImxsaW50X2Nsb29wX2RpZF9yZXR1cm5f
ZnJvbV9qc18je0BAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3VudGVyfSIpCiAKICAgICAgICAgIyBX
ZSBjYW4ndCBkbyBnZW5lcmljIGZ1bmN0aW9uIGNhbGxzIHdpdGggYW4gYXJiaXRyYXJ5IHNldCBv
ZiBhcmdzLCBidXQKICAgICAgICAgIyBmb3J0dW5hdGVseSB3ZSBkb24ndCBoYXZlIHRvIGhlcmUu
IEFsbCBuYXRpdmUgZnVuY3Rpb24gY2FsbHMgYWx3YXlzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIJKHdv
cmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsMTEgQEAgWDg2X0lOU1RSVUNUSU9OUyA9CiAgICAg
ICJpZGl2aSIKICAgICBdCiAKK0FSTV9JTlNUUlVDVElPTlMgPQorICAgIFsKKyAgICAgImNscmJw
IgorICAgIF0KKwogQVJNNjRfSU5TVFJVQ1RJT05TID0KICAgICBbCiAgICAgICJwb3BMUkFuZEZQ
IiwgICAjIEFSTTY0IHJlcXVpcmVzIHJlZ2lzdGVycyB0byBiZSBwdXNoZWQgYW5kIHBvcHBlZCBp
biBwYWlycywKQEAgLTMxMyw3ICszMTgsNyBAQCBDWFhfSU5TVFJVQ1RJT05TID0KICAgICAgImNs
b29wRG8iLCAgICAgICAgICAgICAgIyBubyBvcGVyYW5kcwogICAgIF0KIAotSU5TVFJVQ1RJT05T
ID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTTY0X0lOU1RSVUNU
SU9OUyArIFJJU0NfSU5TVFJVQ1RJT05TICsgTUlQU19JTlNUUlVDVElPTlMgKyBTSDRfSU5TVFJV
Q1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUworSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJ
T05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTV9JTlNUUlVDVElPTlMgKyBBUk02NF9JTlNUUlVD
VElPTlMgKyBSSVNDX0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsgU0g0X0lOU1RS
VUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKIAogSU5TVFJVQ1RJT05fUEFUVEVSTiA9IFJlZ2V4
cC5uZXcoJ1xcQSgoJyArIElOU1RSVUNUSU9OUy5qb2luKCcpfCgnKSArICcpKVxcWicpCiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgkod29ya2luZyBj
b3B5KQpAQCAtMTUwLDE1ICsxNTAsMTUgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICB3aGVu
ICJ0NCIKICAgICAgICAgICAgIGNhc2Uga2luZAogICAgICAgICAgICAgd2hlbiA6Ynl0ZQotICAg
ICAgICAgICAgICAgICIlc2lsIgorICAgICAgICAgICAgICAgICIlZGlsIgogICAgICAgICAgICAg
d2hlbiA6aGFsZgotICAgICAgICAgICAgICAgICIlc2kiCisgICAgICAgICAgICAgICAgIiVkaSIK
ICAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgICIlZXNpIgorICAgICAgICAg
ICAgICAgICIlZWRpIgogICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgaXNY
NjQgPyAiJXJzaSIgOiAiJWVzaSIKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcmRpIiA6ICIl
ZWRpIgogICAgICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVy
c2kiIDogcmFpc2UKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcmRpIiA6IHJhaXNlCiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIGVuZApAQCAt
MjA2LDE1ICsyMDYsMTUgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICB3aGVuICJ0NSIKICAg
ICAgICAgICAgIGNhc2Uga2luZAogICAgICAgICAgICAgd2hlbiA6Ynl0ZQotICAgICAgICAgICAg
ICAgICIlZGlsIgorICAgICAgICAgICAgICAgICIlc2lsIgogICAgICAgICAgICAgd2hlbiA6aGFs
ZgotICAgICAgICAgICAgICAgICIlZGkiCisgICAgICAgICAgICAgICAgIiVzaSIKICAgICAgICAg
ICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgICIlZWRpIgorICAgICAgICAgICAgICAgICIl
ZXNpIgogICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJk
aSIgOiAiJWVkaSIKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcnNpIiA6ICIlZXNpIgogICAg
ICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVyZGkiIDogcmFp
c2UKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcnNpIiA6IHJhaXNlCiAgICAgICAgICAgICBl
bmQKICAgICAgICAgd2hlbiAidDYiCiAgICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25h
bWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgUGFyc2VyRXJyb3JfaAog
CiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5nU2NvcGUuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiUGFyc2VyVG9rZW5zLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05NCw4ICs5NSwxMCBAQCBzdHJ1Y3Qg
UGFyc2VyRXJyb3IgewogICAgICAgICAgICAgcmV0dXJuIGFkZEVycm9ySW5mbyhnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSwgY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCBtX21lc3Nh
Z2UpLCBtX2xpbmUsIHNvdXJjZSk7CiAgICAgICAgIGNhc2UgRXZhbEVycm9yOgogICAgICAgICAg
ICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgbV9tZXNzYWdlKTsKLSAg
ICAgICAgY2FzZSBTdGFja092ZXJmbG93OgorICAgICAgICBjYXNlIFN0YWNrT3ZlcmZsb3c6IHsK
KyAgICAgICAgICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKGdsb2JhbE9iamVjdC0+
dm0oKSk7CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGdsb2Jh
bE9iamVjdCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBPdXRPZk1lbW9yeToKICAgICAgICAg
ICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCk7CiAgICAgICAg
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJDb21waWxhdGlvbi5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNjcsNiArNjcsMTEgQEAgdm9pZCBDb21waWxhdGlvbjo6YWRkRGVzY3JpcHRp
b24oY29uc3QgQwogICAgIG1fZGVzY3JpcHRpb25zLmFwcGVuZChjb21waWxlZEJ5dGVjb2RlKTsK
IH0KIAordm9pZCBDb21waWxhdGlvbjo6YWRkRGVzY3JpcHRpb24oY29uc3QgT3JpZ2luU3RhY2sm
IHN0YWNrLCBjb25zdCBDU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhZGREZXNjcmlwdGlv
bihDb21waWxlZEJ5dGVjb2RlKHN0YWNrLCBkZXNjcmlwdGlvbikpOworfQorCiBFeGVjdXRpb25D
b3VudGVyKiBDb21waWxhdGlvbjo6ZXhlY3V0aW9uQ291bnRlckZvcihjb25zdCBPcmlnaW5TdGFj
ayYgb3JpZ2luKQogewogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeGVjdXRpb25Db3VudGVyPiYgY291
bnRlciA9IG1fY291bnRlcnMuYWRkKG9yaWdpbiwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJD
b21waWxhdGlvbi5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICBDb21waWxhdGlvbktpbmQga2luZCgpIGNvbnN0
IHsgcmV0dXJuIG1fa2luZDsgfQogICAgIAogICAgIHZvaWQgYWRkRGVzY3JpcHRpb24oY29uc3Qg
Q29tcGlsZWRCeXRlY29kZSYpOworICAgIHZvaWQgYWRkRGVzY3JpcHRpb24oY29uc3QgT3JpZ2lu
U3RhY2smLCBjb25zdCBDU3RyaW5nJiBkZXNjcmlwdGlvbik7CiAgICAgRXhlY3V0aW9uQ291bnRl
ciogZXhlY3V0aW9uQ291bnRlckZvcihjb25zdCBPcmlnaW5TdGFjayYpOwogICAgIHZvaWQgYWRk
T1NSRXhpdFNpdGUoY29uc3QgVmVjdG9yPGNvbnN0IHZvaWQqPiYgY29kZUFkZHJlc3Nlcyk7CiAg
ICAgT1NSRXhpdCogYWRkT1NSRXhpdCh1bnNpZ25lZCBpZCwgY29uc3QgT3JpZ2luU3RhY2smLCBF
eGl0S2luZCwgYm9vbCBpc1dhdGNocG9pbnQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuY3BwCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJDb21waWxhdGlvbktpbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw2ICs0MiwxMiBAQCB2b2lk
IHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgSlNDCiAgICAgY2FzZSBKU0M6OlByb2Zp
bGVyOjpERkc6CiAgICAgICAgIG91dC5wcmludCgiREZHIik7CiAgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIEpTQzo6UHJvZmlsZXI6OkZUTDoKKyAgICAgICAgb3V0LnByaW50KCJGVEwiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQcm9maWxlcjo6RlRMRm9yT1NSRW50cnk6Cisg
ICAgICAgIG91dC5wcmludCgiRlRMRm9yT1NSRW50cnkiKTsKKyAgICAgICAgcmV0dXJuOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2luZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0
aW9uS2luZC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNyArMzEs
OSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIGVudW0gQ29tcGlsYXRp
b25LaW5kIHsKICAgICBMTEludCwKICAgICBCYXNlbGluZSwKLSAgICBERkcKKyAgICBERkcsCisg
ICAgRlRMLAorICAgIEZUTEZvck9TUkVudHJ5CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
UHJvZmlsZXIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyaXR5Q2hlY2tN
b2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJpdHlD
aGVja01vZGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FyaXR5Q2hlY2tNb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFyaXR5Q2hl
Y2tNb2RlX2gKKyNkZWZpbmUgQXJpdHlDaGVja01vZGVfaAorCituYW1lc3BhY2UgSlNDIHsKKwor
ZW51bSBBcml0eUNoZWNrTW9kZSB7CisgICAgQXJpdHlDaGVja05vdFJlcXVpcmVkLAorICAgIE11
c3RDaGVja0FyaXR5Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEFyaXR5
Q2hlY2tNb2RlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIw
MTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOSwxMCArMjksMTIgQEAKICNpZiBFTkFCTEUoSklUKSB8fCBF
TkFCTEUoTExJTlQpCiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJBcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNp
bmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlUHJvZmlsaW5nLmgiCiAjaW5jbHVk
ZSAiQ29tbW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5oIgorI2luY2x1ZGUgIkVycm9ySGFuZGxpbmdT
Y29wZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkhvc3RDYWxsUmV0
dXJuVmFsdWUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpAQCAtMTYxLDI4ICsxNjMsNDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENBTExfRU5EX0lNUEwoY3JFeGVjLCBjckNhbGxU
YXJnZXQpOyAgICAgICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKK3N0YXRpYyBD
b21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhKiBzZXR1cEFyaXR5Q2hlY2tEYXRhKFZNJiB2
bSwgaW50IHNsb3RzVG9BZGQpCit7CisgICAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0
YSogcmVzdWx0ID0gdm0uYXJpdHlDaGVja0RhdGEuZ2V0KCk7CisgICAgcmVzdWx0LT5wYWRkZWRT
dGFja1NwYWNlID0gc2xvdHNUb0FkZDsKKyNpZiBFTkFCTEUoSklUKQorICAgIGlmICh2bS5jYW5V
c2VKSVQoKSkgeworICAgICAgICByZXN1bHQtPnRodW5rVG9DYWxsID0gdm0uZ2V0Q1RJU3R1Yihh
cml0eUZpeHVwKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICAgICAgcmVzdWx0LT5y
ZXR1cm5QQyA9IHZtLmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5QQ0Zvcih2bSwg
c2xvdHNUb0FkZCAqIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpLmV4ZWN1dGFibGVBZGRyZXNz
KCk7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICB7CisgICAgICAgIHJlc3VsdC0+dGh1bmtUb0Nh
bGwgPSAwOworICAgICAgICByZXN1bHQtPnJldHVyblBDID0gMDsKKyAgICB9CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKwogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2NhbGxfYXJpdHlDaGVjaykK
IHsKICAgICBCRUdJTigpOwotICAgIGludCBTbG90c1RvQWRkID0gQ29tbW9uU2xvd1BhdGhzOjph
cml0eUNoZWNrRm9yKGV4ZWMsICZ2bS5pbnRlcnByZXRlci0+c3RhY2soKSwgQ29kZUZvckNhbGwp
OwotICAgIGlmIChTbG90c1RvQWRkIDwgMCkgeworICAgIGludCBzbG90c1RvQWRkID0gQ29tbW9u
U2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4ZWMsICZ2bS5pbnRlcnByZXRlci0+c3RhY2soKSwg
Q29kZUZvckNhbGwpOworICAgIGlmIChzbG90c1RvQWRkIDwgMCkgewogICAgICAgICBleGVjID0g
ZXhlYy0+Y2FsbGVyRnJhbWUoKTsKKyAgICAgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2Nv
cGUoZXhlYy0+dm0oKSk7CiAgICAgICAgIENvbW1vblNsb3dQYXRoczo6aW50ZXJwcmV0ZXJUaHJv
d0luQ2FsbGVyKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CiAgICAgICAg
IFJFVFVSTl9UV08oYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEp
KSwgZXhlYyk7CiAgICAgfQotICAgIFJFVFVSTl9UV08oMCwgcmVpbnRlcnByZXRfY2FzdDxFeGVj
U3RhdGUqPihTbG90c1RvQWRkKSk7CisgICAgUkVUVVJOX1RXTygwLCBzZXR1cEFyaXR5Q2hlY2tE
YXRhKHZtLCBzbG90c1RvQWRkKSk7CiB9CiAKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jb25z
dHJ1Y3RfYXJpdHlDaGVjaykKIHsKICAgICBCRUdJTigpOwotICAgIGludCBTbG90c1RvQWRkID0g
Q29tbW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4ZWMsICZ2bS5pbnRlcnByZXRlci0+c3Rh
Y2soKSwgQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgaWYgKFNsb3RzVG9BZGQgPCAwKSB7CisgICAg
aW50IHNsb3RzVG9BZGQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IoZXhlYywgJnZt
LmludGVycHJldGVyLT5zdGFjaygpLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICBpZiAoc2xvdHNU
b0FkZCA8IDApIHsKICAgICAgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7CisgICAgICAg
IEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKGV4ZWMtPnZtKCkpOwogICAgICAgICBDb21t
b25TbG93UGF0aHM6OmludGVycHJldGVyVGhyb3dJbkNhbGxlcihleGVjLCBjcmVhdGVTdGFja092
ZXJmbG93RXJyb3IoZXhlYykpOwogICAgICAgICBSRVRVUk5fVFdPKGJpdHdpc2VfY2FzdDx2b2lk
Kj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigxKSksIGV4ZWMpOwogICAgIH0KLSAgICBSRVRVUk5f
VFdPKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8RXhlY1N0YXRlKj4oU2xvdHNUb0FkZCkpOworICAgIFJF
VFVSTl9UV08oMCwgc2V0dXBBcml0eUNoZWNrRGF0YSh2bSwgc2xvdHNUb0FkZCkpOwogfQogCiBT
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfdG91Y2hfZW50cnkpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3Bh
Y2UgQ29tbW9uU2xvd1BhdGhzIHsKIAorc3RydWN0IEFyaXR5Q2hlY2tEYXRhIHsKKyAgICB1bnNp
Z25lZCBwYWRkZWRTdGFja1NwYWNlOworICAgIHZvaWQqIHRodW5rVG9DYWxsOworICAgIHZvaWQq
IHJldHVyblBDOworfTsKKwogQUxXQVlTX0lOTElORSBpbnQgYXJpdHlDaGVja0ZvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTU3RhY2sqIHN0YWNrLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7
CiAgICAgSlNGdW5jdGlvbiogY2FsbGVlID0ganNDYXN0PEpTRnVuY3Rpb24qPihleGVjLT5jYWxs
ZWUoKSk7CkBAIC01OCwxOCArNjQsMTIgQEAgQUxXQVlTX0lOTElORSBpbnQgYXJpdHlDaGVja0Zv
cihFeGVjU3RhdAogICAgIAogICAgIEFTU0VSVChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA8
IG5ld0NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKTsKICAgICBpbnQgbWlzc2luZ0FyZ3VtZW50
Q291bnQgPSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSAtIGFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzOwotICAgIGludCBwYWRkZWRNaXNzaW5nQXJndW1lbnRDb3VudCA9IFdURjo6cm91
bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBtaXNzaW5nQXJndW1l
bnRDb3VudCk7CisgICAgaW50IG5lZWRlZFN0YWNrU3BhY2UgPSBtaXNzaW5nQXJndW1lbnRDb3Vu
dCArIDE7IC8vIEFsbG93IHNwYWNlIHRvIHNhdmUgdGhlIG9yaWdpbmFsIHJldHVybiBQQy4KKyAg
ICBpbnQgcGFkZGVkU3RhY2tTcGFjZSA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0Fs
aWdubWVudFJlZ2lzdGVycygpLCBuZWVkZWRTdGFja1NwYWNlKTsKIAotI2lmIFVTRShTRVBBUkFU
RV9DX0FORF9KU19TVEFDSykKLSAgICBpZiAoIXN0YWNrLT5ncm93KGV4ZWMtPnJlZ2lzdGVycygp
IC0gcGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291bnQpKQorICAgIGlmICghc3RhY2stPmVuc3VyZUNh
cGFjaXR5Rm9yKGV4ZWMtPnJlZ2lzdGVycygpIC0gcGFkZGVkU3RhY2tTcGFjZSkpCiAgICAgICAg
IHJldHVybiAtMTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHN0YWNrKTsKLSAgICBpZiAoIWV4
ZWMtPnZtKCkuaXNTYWZlVG9SZWN1cnNlKHBhZGRlZE1pc3NpbmdBcmd1bWVudENvdW50ICogc2l6
ZW9mKFJlZ2lzdGVyKSkpCi0gICAgICAgIHJldHVybiAtMTsKLSNlbmRpZiAvLyBVU0UoU0VQQVJB
VEVfQ19BTkRfSlNfU1RBQ0spCi0KLSAgICByZXR1cm4gcGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291
bnQ7CisgICAgcmV0dXJuIHBhZGRlZFN0YWNrU3BhY2UgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVy
cygpOwogfQogCiBpbmxpbmUgYm9vbCBvcEluKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBwcm9w
TmFtZSwgSlNWYWx1ZSBiYXNlVmFsKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JIYW5kbGluZ1Njb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRs
aW5nU2NvcGUuaCIKKworI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3B0aW9u
cy5oIgorI2luY2x1ZGUgIlZNLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitFcnJvckhhbmRsaW5n
U2NvcGU6OkVycm9ySGFuZGxpbmdTY29wZShWTSYgdm0pCisgICAgOiBtX3ZtKHZtKQoreworICAg
IGlmICghbV92bS5zdGFja1BvaW50ZXJBdFZNRW50cnkpCisgICAgICAgIG1fdm0uc3RhY2tQb2lu
dGVyQXRWTUVudHJ5ID0gdGhpczsKKyAgICBzaXplX3QgbmV3UmVzZXJ2ZWRab25lU2l6ZSA9IE9w
dGlvbnM6OmVycm9yTW9kZVJlc2VydmVkWm9uZVNpemUoKTsKKyAgICBtX3NhdmVkUmVzZXJ2ZWRa
b25lU2l6ZSA9IG1fdm0udXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKG5ld1Jl
c2VydmVkWm9uZVNpemUpOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgbV92bS5pbnRl
cnByZXRlci0+c3RhY2soKS5zZXRSZXNlcnZlZFpvbmVTaXplKG5ld1Jlc2VydmVkWm9uZVNpemUp
OworI2VuZGlmCit9CisKK0Vycm9ySGFuZGxpbmdTY29wZTo6fkVycm9ySGFuZGxpbmdTY29wZSgp
Cit7CisgICAgaWYgKG1fdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5ID09IHRoaXMpCisgICAgICAg
IG1fdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbnVsbHB0cjsKKyAgICBtX3ZtLnVwZGF0ZVN0
YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSk7Cisj
aWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBtX3ZtLmludGVycHJldGVyLT5zdGFjaygpLnNl
dFJlc2VydmVkWm9uZVNpemUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOworI2VuZGlmCit9CisK
K30gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JIYW5kbGluZ1Njb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgRXJyb3JIYW5kbGluZ1Njb3BlX2gKKyNkZWZpbmUgRXJyb3JIYW5kbGlu
Z1Njb3BlX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFZNOworCitjbGFzcyBFcnJvckhh
bmRsaW5nU2NvcGUgeworcHVibGljOgorICAgIEpTX0VYUE9SVF9QUklWQVRFIEVycm9ySGFuZGxp
bmdTY29wZShWTSYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIH5FcnJvckhhbmRsaW5nU2NvcGUo
KTsKK3ByaXZhdGU6CisgICAgVk0mIG1fdm07CisgICAgc2l6ZV90IG1fc2F2ZWRSZXNlcnZlZFpv
bmVTaXplOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFcnJvckhhbmRs
aW5nU2NvcGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRp
b25IZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNhbGxG
cmFtZS5oIgorI2luY2x1ZGUgIkVycm9ySGFuZGxpbmdTY29wZS5oIgogI2luY2x1ZGUgIkVycm9y
SW5zdGFuY2UuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIgogI2luY2x1
ZGUgIkpTT2JqZWN0LmgiCkBAIC0xNjAsMTQgKzE2MSwxNiBAQCBKU09iamVjdCogdGhyb3dPdXRP
Zk1lbW9yeUVycm9yKEV4ZWNTdGF0CiAKIEpTT2JqZWN0KiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJv
cihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSW50ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2Rl
IG1vZGUoZXhlYyk7Ci0gICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywg
Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKKyAgICBWTSYgdm0gPSBleGVjLT52bSgp
OworICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKHZtKTsKKyAgICByZXR1cm4gdm0u
dGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKIH0K
IAogSlNPYmplY3QqIHRocm93VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSW50ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2RlIG1vZGUoZXhlYyk7
Ci0gICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVGVybWlu
YXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbigmZXhlYy0+dm0oKSkpOworICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CisgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUodm0pOworICAgIHJldHVy
biB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0
aW9uKCZ2bSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkxMSW50RW50cnlwb2ludC5oIgogI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29t
bWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtMTE4LDEyICsxMTksMTQgQEAgdm9pZCBTY3JpcHRFeGVj
dXRhYmxlOjppbnN0YWxsQ29kZShDb2RlQgogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2Ug
Q29kZUZvckNhbGw6CiAgICAgICAgIG1faml0Q29kZUZvckNhbGwgPSBnZW5lcmljQ29kZUJsb2Nr
LT5qaXRDb2RlKCk7Ci0gICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayA9IGdl
bmVyaWNDb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpOworICAgICAgICBtX2ppdENv
ZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKKyAgICAg
ICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzID0gTWFjcm9B
c3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgICAgIG1fbnVtUGFyYW1ldGVyc0ZvckNhbGwgPSBnZW5l
cmljQ29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q29kZUZvckNvbnN0cnVjdDoKICAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gZ2VuZXJp
Y0NvZGVCbG9jay0+aml0Q29kZSgpOwotICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRo
QXJpdHlDaGVjayA9IGdlbmVyaWNDb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpOwor
ICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IE1hY3JvQXNzZW1i
bGVyQ29kZVB0cigpOworICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVj
a0FuZFByZXNlcnZlUmVncyA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOwogICAgICAgICBtX251
bVBhcmFtZXRlcnNGb3JDb25zdHJ1Y3QgPSBnZW5lcmljQ29kZUJsb2NrLT5udW1QYXJhbWV0ZXJz
KCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTEzMyw3ICsxMzYsNiBAQCB2b2lkIFNjcmlw
dEV4ZWN1dGFibGU6Omluc3RhbGxDb2RlKENvZGVCCiAgICAgICAgIFByb2dyYW1FeGVjdXRhYmxl
KiBleGVjdXRhYmxlID0ganNDYXN0PFByb2dyYW1FeGVjdXRhYmxlKj4odGhpcyk7CiAgICAgICAg
IFByb2dyYW1Db2RlQmxvY2sqIGNvZGVCbG9jayA9IHN0YXRpY19jYXN0PFByb2dyYW1Db2RlQmxv
Y2sqPihnZW5lcmljQ29kZUJsb2NrKTsKICAgICAgICAgCi0gICAgICAgIEFTU0VSVCghY29kZUJs
b2NrLT5qaXRDb2RlV2l0aEFyaXR5Q2hlY2soKSk7CiAgICAgICAgIEFTU0VSVChraW5kID09IENv
ZGVGb3JDYWxsKTsKICAgICAgICAgCiAgICAgICAgIG9sZENvZGVCbG9jayA9IGV4ZWN1dGFibGUt
Pm1fcHJvZ3JhbUNvZGVCbG9jazsKQEAgLTE0NSw3ICsxNDcsNiBAQCB2b2lkIFNjcmlwdEV4ZWN1
dGFibGU6Omluc3RhbGxDb2RlKENvZGVCCiAgICAgICAgIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRh
YmxlID0ganNDYXN0PEV2YWxFeGVjdXRhYmxlKj4odGhpcyk7CiAgICAgICAgIEV2YWxDb2RlQmxv
Y2sqIGNvZGVCbG9jayA9IHN0YXRpY19jYXN0PEV2YWxDb2RlQmxvY2sqPihnZW5lcmljQ29kZUJs
b2NrKTsKICAgICAgICAgCi0gICAgICAgIEFTU0VSVCghY29kZUJsb2NrLT5qaXRDb2RlV2l0aEFy
aXR5Q2hlY2soKSk7CiAgICAgICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDYWxsKTsKICAgICAg
ICAgCiAgICAgICAgIG9sZENvZGVCbG9jayA9IGV4ZWN1dGFibGUtPm1fZXZhbENvZGVCbG9jazsK
QEAgLTYxMCw2ICs2MTEsNDYgQEAgU3RyaW5nIEZ1bmN0aW9uRXhlY3V0YWJsZTo6cGFyYW1TdHJp
bmcoKQogICAgIHJldHVybiBtX3VubGlua2VkRXhlY3V0YWJsZS0+cGFyYW1TdHJpbmcoKTsKIH0K
IAordm9pZCBFeGVjdXRhYmxlQmFzZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAorewor
ICAgIEV4ZWN1dGFibGVCYXNlKiByZWFsVGhpcyA9IGNvbnN0X2Nhc3Q8RXhlY3V0YWJsZUJhc2Uq
Pih0aGlzKTsKKyAgICAKKyAgICBpZiAoY2xhc3NJbmZvKCkgPT0gTmF0aXZlRXhlY3V0YWJsZTo6
aW5mbygpKSB7CisgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZSA9IGpzQ2FzdDxOYXRp
dmVFeGVjdXRhYmxlKj4ocmVhbFRoaXMpOworICAgICAgICBvdXQucHJpbnQoIk5hdGl2ZUV4ZWN1
dGFibGU6IiwgUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KG5hdGl2ZS0+ZnVuY3Rpb24o
KSkpLCAiLyIsIFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihuYXRpdmUtPmNvbnN0cnVj
dG9yKCkpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKGNsYXNzSW5m
bygpID09IEV2YWxFeGVjdXRhYmxlOjppbmZvKCkpIHsKKyAgICAgICAgRXZhbEV4ZWN1dGFibGUq
IGV2YWwgPSBqc0Nhc3Q8RXZhbEV4ZWN1dGFibGUqPihyZWFsVGhpcyk7CisgICAgICAgIGlmIChD
b2RlQmxvY2sqIGNvZGVCbG9jayA9IGV2YWwtPmNvZGVCbG9jaygpKQorICAgICAgICAgICAgb3V0
LnByaW50KCpjb2RlQmxvY2spOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXQucHJpbnQo
IkV2YWxFeGVjdXRhYmxlIHcvbyBDb2RlQmxvY2siKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAKKyAgICBpZiAoY2xhc3NJbmZvKCkgPT0gUHJvZ3JhbUV4ZWN1dGFibGU6OmluZm8oKSkg
eworICAgICAgICBQcm9ncmFtRXhlY3V0YWJsZSogZXZhbCA9IGpzQ2FzdDxQcm9ncmFtRXhlY3V0
YWJsZSo+KHJlYWxUaGlzKTsKKyAgICAgICAgaWYgKENvZGVCbG9jayogY29kZUJsb2NrID0gZXZh
bC0+Y29kZUJsb2NrKCkpCisgICAgICAgICAgICBvdXQucHJpbnQoKmNvZGVCbG9jayk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludCgiUHJvZ3JhbUV4ZWN1dGFibGUgdy9vIENv
ZGVCbG9jayIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZnVuY3Rpb24gPSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4ocmVhbFRoaXMp
OworICAgIGlmICghZnVuY3Rpb24tPmVpdGhlckNvZGVCbG9jaygpKQorICAgICAgICBvdXQucHJp
bnQoIkZ1bmN0aW9uRXhlY3V0YWJsZSB3L28gQ29kZUJsb2NrIik7CisgICAgZWxzZSB7CisgICAg
ICAgIENvbW1hUHJpbnRlciBjb21tYSgiLyIpOworICAgICAgICBpZiAoZnVuY3Rpb24tPmNvZGVC
bG9ja0ZvckNhbGwoKSkKKyAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgKmZ1bmN0aW9uLT5j
b2RlQmxvY2tGb3JDYWxsKCkpOworICAgICAgICBpZiAoZnVuY3Rpb24tPmNvZGVCbG9ja0ZvckNv
bnN0cnVjdCgpKQorICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAqZnVuY3Rpb24tPmNvZGVC
bG9ja0ZvckNvbnN0cnVjdCgpKTsKKyAgICB9Cit9CisKIENvZGVCbG9ja0hhc2ggRXhlY3V0YWJs
ZUJhc2U6Omhhc2hGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKSBjb25zdAogewogICAg
IGlmICh0aGlzLT5jbGFzc0luZm8oKSA9PSBOYXRpdmVFeGVjdXRhYmxlOjppbmZvKCkpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRXhlY3V0YWJsZV9oCiAjZGVm
aW5lIEV4ZWN1dGFibGVfaAogCisjaW5jbHVkZSAiQXJpdHlDaGVja01vZGUuaCIKICNpbmNsdWRl
ICJDYWxsRGF0YS5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja0hhc2guaCIKICNpbmNsdWRlICJDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kLmgiCkBAIC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAiSW50ZXJw
cmV0ZXIuaCIKICNpbmNsdWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3Qu
aCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCIKICNpbmNsdWRlICJTYW1w
bGluZ1Rvb2wuaCIKICNpbmNsdWRlICJTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiVW5saW5rZWRD
b2RlQmxvY2suaCIKQEAgLTE0NCwzNyArMTQ2LDk0IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJU
KGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7CiAgICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRD
b2RlRm9yQ29uc3RydWN0KCk7CiAgICAgfQotCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGdl
bmVyYXRlZEpJVENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2soKQotICAgIHsKLSAgICAgICAgQVNT
RVJUKG1faml0Q29kZUZvckNhbGwpOwotICAgICAgICBBU1NFUlQobV9qaXRDb2RlRm9yQ2FsbFdp
dGhBcml0eUNoZWNrKTsKLSAgICAgICAgcmV0dXJuIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlD
aGVjazsKLSAgICB9Ci0KLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZ2VuZXJhdGVkSklUQ29k
ZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2pp
dENvZGVGb3JDb25zdHJ1Y3QpOwotICAgICAgICBBU1NFUlQobV9qaXRDb2RlRm9yQ29uc3RydWN0
V2l0aEFyaXR5Q2hlY2spOwotICAgICAgICByZXR1cm4gbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0
aEFyaXR5Q2hlY2s7Ci0gICAgfQotICAgICAgICAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Z2VuZXJhdGVkSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQg
a2luZCkKLSAgICB7Ci0gICAgICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKQotICAgICAgICAg
ICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2soKTsKLSAgICAg
ICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgICAgIHJldHVybiBnZW5l
cmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2soKTsKLSAgICB9Ci0gICAgICAg
IAotICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Io
Q29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQorICAgIAorICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBlbnRyeXBvaW50Rm9yKAorICAgICAgICBWTSYgdm0sIENvZGVTcGVjaWFsaXphdGlvbktp
bmQga2luZCwgQXJpdHlDaGVja01vZGUgYXJpdHksIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSBy
ZWdpc3RlcnMpCiAgICAgewotICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKLSAgICAg
ICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZv
ckNhbGxXaXRoQXJpdHlDaGVjayk7Ci0gICAgICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25z
dHJ1Y3QpOwotICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBt
X2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayk7CisgICAgICAgIC8vIENoZWNrIGlm
IHdlIGhhdmUgYSBjYWNoZWQgcmVzdWx0LiBXZSBvbmx5IGhhdmUgaXQgZm9yIGFyaXR5IGNoZWNr
IGJlY2F1c2Ugd2UgdXNlIHRoZQorICAgICAgICAvLyBuby1hcml0eSBlbnRyeXBvaW50IGluIG5v
bi12aXJ0dWFsIGNhbGxzLCB3aGljaCB3aWxsICJjYWNoZSIgdGhpcyB2YWx1ZSBkaXJlY3RseSBp
bgorICAgICAgICAvLyBtYWNoaW5lIGNvZGUuCisgICAgICAgIGlmIChhcml0eSA9PSBNdXN0Q2hl
Y2tBcml0eSkgeworICAgICAgICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAgICAgICBjYXNl
IENvZGVGb3JDYWxsOgorICAgICAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAg
ICAgICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAg
ICAgICAgICAgICAgICBpZiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJlc3VsdCA9IG1faml0Q29k
ZUZvckNhbGxXaXRoQXJpdHlDaGVjaykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ug
TXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgICAgICBpZiAoTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIHJlc3VsdCA9IG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFBy
ZXNlcnZlUmVncykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgICAg
ICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgICAgIGNhc2UgUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVj
aykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJz
OgorICAgICAgICAgICAgICAgICAgICBpZiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJlc3VsdCA9
IG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQg
PQorICAgICAgICAgICAgZ2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS0+YWRkcmVzc0ZvckNhbGwo
dm0sIHRoaXMsIGFyaXR5LCByZWdpc3RlcnMpOworICAgICAgICBpZiAoYXJpdHkgPT0gTXVzdENo
ZWNrQXJpdHkpIHsKKyAgICAgICAgICAgIC8vIENhY2hlIHRoZSByZXN1bHQ7IHRoaXMgaXMgbmVj
ZXNzYXJ5IGZvciB0aGUgSklUJ3MgdmlydHVhbCBjYWxsIG9wdGltaXphdGlvbnMuCisgICAgICAg
ICAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICAgICAgICAgIGNhc2UgQ29kZUZvckNhbGw6CisgICAg
ICAgICAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgICAgIG1faml0
Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAg
ICAgICAgICAgICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZl
UmVncyA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDb2RlRm9yQ29u
c3RydWN0OgorICAgICAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAg
ICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAg
ICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IHJlc3VsdDsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBNdXN0UHJlc2Vy
dmVSZWdpc3RlcnM6CisgICAgICAgICAgICAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdp
dGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAg
ICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKAorICAg
ICAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9k
ZSByZWdpc3RlcnMpCisgICAgeworICAgICAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICAgICAgY2Fz
ZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAg
ICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrKTsKKyAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJz
OgorICAgICAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2Us
IG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncyk7CisgICAgICAg
ICAgICB9CisgICAgICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgICAgIHN3aXRj
aCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90
UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRh
YmxlQmFzZSwgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spOworICAgICAgICAg
ICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICAgICAgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFy
aXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOwogICAg
IH0KLSAgICAgICAgCisgICAgCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk51bVBhcmFt
ZXRlcnNGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQogICAgIHsKICAgICAgICAgaWYg
KGtpbmQgPT0gQ29kZUZvckNhbGwpCkBAIC0yMTAsMjIgKzI2OSw5IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIHJldHVybiBpbnRyaW5zaWMoKTsKICAgICAgICAgcmV0dXJuIE5vSW50cmluc2ljOwog
ICAgIH0KKyAgICAKKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAgICAg
Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGhvc3RDb2RlRW50cnlGb3IoQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVG
b3Ioa2luZCktPmFkZHJlc3NGb3JDYWxsKCk7Ci0gICAgfQotCi0gICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGpzQ29kZUVudHJ5Rm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2Fs
bCgpOwotICAgIH0KLQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBqc0NvZGVXaXRoQXJpdHlD
aGVja0VudHJ5Rm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCk7Ci0gICAgfQot
CiBwcm90ZWN0ZWQ6CiAgICAgRXhlY3V0YWJsZUJhc2UqIG1fcHJldjsKICAgICBFeGVjdXRhYmxl
QmFzZSogbV9uZXh0OwpAQCAtMjM0LDYgKzI4MCw4IEBAIHByb3RlY3RlZDoKICAgICBSZWZQdHI8
SklUQ29kZT4gbV9qaXRDb2RlRm9yQ29uc3RydWN0OwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2s7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrOworICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3M7
CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0
eUNoZWNrQW5kUHJlc2VydmVSZWdzOwogfTsKIAogY2xhc3MgTmF0aXZlRXhlY3V0YWJsZSA6IHB1
YmxpYyBFeGVjdXRhYmxlQmFzZSB7CkBAIC0yNDIsMTQgKzI5MCwxMSBAQCBjbGFzcyBOYXRpdmVF
eGVjdXRhYmxlIDogcHVibGljIEV4ZWN1dGFiCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBFeGVjdXRh
YmxlQmFzZSBCYXNlOwogCi0gICAgc3RhdGljIE5hdGl2ZUV4ZWN1dGFibGUqIGNyZWF0ZShWTSYg
dm0sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0
aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY29uc3RydWN0VGh1bmssIE5hdGl2ZUZ1bmN0aW9u
IGNvbnN0cnVjdG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQorICAgIHN0YXRpYyBOYXRpdmVFeGVj
dXRhYmxlKiBjcmVhdGUoVk0mIHZtLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNhbGxUaHVuaywgTmF0
aXZlRnVuY3Rpb24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8SklUQ29kZT4gY29uc3RydWN0VGh1bmss
IE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQogICAgIHsK
ICAgICAgICAgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZTsKICAgICAgICAgZXhlY3V0YWJs
ZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KHZtLmhlYXAp
KSBOYXRpdmVFeGVjdXRhYmxlKHZtLCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOwotICAgICAgICBp
ZiAoIWNhbGxUaHVuaykKLSAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKHZt
LCAwLCAwLCBpbnRyaW5zaWMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBleGVjdXRhYmxl
LT5maW5pc2hDcmVhdGlvbih2bSwgSklUQ29kZTo6aG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIEpJ
VENvZGU6Omhvc3RGdW5jdGlvbihjb25zdHJ1Y3RUaHVuayksIGludHJpbnNpYyk7CisgICAgICAg
IGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKHZtLCBjYWxsVGh1bmssIGNvbnN0cnVjdFRodW5r
LCBpbnRyaW5zaWMpOwogICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICB9CiAKQEAgLTI4
OCw4ICszMzMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IFBhc3NSZWZQdHI8SklUQ29kZT4gY2FsbFRodW5rLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNvbnN0
cnVjdFRodW5rLCBJbnRyaW5zaWMgaW50cmluc2ljKQogICAgIHsKICAgICAgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24odm0pOwotICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sg
PSBjYWxsVGh1bmsgPyBjYWxsVGh1bmstPmFkZHJlc3NGb3JDYWxsKCkgOiBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIoKTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sg
PSBjb25zdHJ1Y3RUaHVuayA/IGNvbnN0cnVjdFRodW5rLT5hZGRyZXNzRm9yQ2FsbCgpIDogTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgICAgIG1faml0Q29kZUZvckNhbGwgPSBjYWxsVGh1
bms7CiAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IGNvbnN0cnVjdFRodW5rOwogICAg
ICAgICBtX2ludHJpbnNpYyA9IGludHJpbnNpYzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtOTcsNiAr
OTcsOSBAQCB1bmlvbiBFbmNvZGVkVmFsdWVEZXNjcmlwdG9yIHsKICNlbmRpZgogfTsKIAorI2Rl
ZmluZSBUYWdPZmZzZXQgKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBh
c0JpdHMudGFnKSkKKyNkZWZpbmUgUGF5bG9hZE9mZnNldCAoT0JKRUNUX09GRlNFVE9GKEVuY29k
ZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkKKwogZW51bSBXaGljaFZhbHVlV29y
ZCB7CiAgICAgVGFnV29yZCwKICAgICBQYXlsb2FkV29yZApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0xvY2suY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNiAr
MjkwLDEwIEBAIEpTTG9jazo6RHJvcEFsbExvY2tzOjpEcm9wQWxsTG9ja3MoRXhlY1MKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZzcGluTG9jayk7CiAjZW5k
aWYKKyAgICBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fdm0tPnJlc2VydmVkWm9uZVNpemUo
KTsKKyAgICBtX3NhdmVkU3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbV92bS0+c3RhY2tQb2ludGVy
QXRWTUVudHJ5OworICAgIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG51bGxwdHI7CisK
ICAgICBpZiAoYWx3YXlzRHJvcExvY2tzKQogICAgICAgICBtX2xvY2tDb3VudCA9IG1fdm0tPmFw
aUxvY2soKS5kcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoc3BpbkxvY2spOwogICAgIGVsc2UK
QEAgLTMwNiw2ICszMTAsMTAgQEAgSlNMb2NrOjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxMb2NrcyhW
TSogdgogI2lmIFBMQVRGT1JNKElPUykKICAgICBTcGluTG9ja0hvbGRlciBob2xkZXIoJnNwaW5M
b2NrKTsKICNlbmRpZgorICAgIG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplID0gbV92bS0+cmVzZXJ2
ZWRab25lU2l6ZSgpOworICAgIG1fc2F2ZWRTdGFja1BvaW50ZXJBdFZNRW50cnkgPSBtX3ZtLT5z
dGFja1BvaW50ZXJBdFZNRW50cnk7CisgICAgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0g
bnVsbHB0cjsKKwogICAgIGlmIChhbHdheXNEcm9wTG9ja3MpCiAgICAgICAgIG1fbG9ja0NvdW50
ID0gbV92bS0+YXBpTG9jaygpLmRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseShzcGluTG9jayk7
CiAgICAgZWxzZQpAQCAtMzIxLDYgKzMyOSw5IEBAIEpTTG9jazo6RHJvcEFsbExvY2tzOjp+RHJv
cEFsbExvY2tzKCkKICAgICBTcGluTG9ja0hvbGRlciBob2xkZXIoJnNwaW5Mb2NrKTsKICNlbmRp
ZgogICAgIG1fdm0tPmFwaUxvY2soKS5ncmFiQWxsTG9ja3MobV9sb2NrQ291bnQsIHNwaW5Mb2Nr
KTsKKworICAgIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG1fc2F2ZWRTdGFja1BvaW50
ZXJBdFZNRW50cnk7CisgICAgbV92bS0+dXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVT
aXplKG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk1LDEwICs5NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTX0VYUE9S
VF9QUklWQVRFIGJvb2wgY3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKTsKIAotICAgICAgICB1
bnNpZ25lZCBkcm9wQWxsTG9ja3MoU3BpbkxvY2smKTsKLSAgICAgICAgdW5zaWduZWQgZHJvcEFs
bExvY2tzVW5jb25kaXRpb25hbGx5KFNwaW5Mb2NrJik7Ci0gICAgICAgIHZvaWQgZ3JhYkFsbExv
Y2tzKHVuc2lnbmVkIGxvY2tDb3VudCwgU3BpbkxvY2smKTsKLQogICAgICAgICB2b2lkIHdpbGxE
ZXN0cm95Vk0oVk0qKTsKIAogICAgICAgICBjbGFzcyBEcm9wQWxsTG9ja3MgewpAQCAtMTE0LDkg
KzExMCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAg
IGludHB0cl90IG1fbG9ja0NvdW50OwogICAgICAgICAgICAgUmVmUHRyPFZNPiBtX3ZtOworICAg
ICAgICAgICAgc2l6ZV90IG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplOworICAgICAgICAgICAgdm9p
ZCogbV9zYXZlZFN0YWNrUG9pbnRlckF0Vk1FbnRyeTsKICAgICAgICAgfTsKIAogICAgIHByaXZh
dGU6CisgICAgICAgIHVuc2lnbmVkIGRyb3BBbGxMb2NrcyhTcGluTG9jayYpOworICAgICAgICB1
bnNpZ25lZCBkcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoU3BpbkxvY2smKTsKKyAgICAgICAg
dm9pZCBncmFiQWxsTG9ja3ModW5zaWduZWQgbG9ja0NvdW50LCBTcGluTG9jayYpOworCiAgICAg
ICAgIFNwaW5Mb2NrIG1fc3BpbkxvY2s7CiAgICAgICAgIE11dGV4IG1fbG9jazsKICAgICAgICAg
VGhyZWFkSWRlbnRpZmllciBtX293bmVyVGhyZWFkOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NTQsNyArNjU0LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFs
dQogICAgICAgICAgICAgICAgIEFTU0VSVChpblZhbHVlLmlzT2JqZWN0KCkpOwogICAgICAgICAg
ICAgICAgIEFTU0VSVChpc0pTQXJyYXkoYXNPYmplY3QoaW5WYWx1ZSkpIHx8IGFzT2JqZWN0KGlu
VmFsdWUpLT5pbmhlcml0cyhKU0FycmF5OjppbmZvKCkpKTsKICAgICAgICAgICAgICAgICBpZiAo
b2JqZWN0U3RhY2suc2l6ZSgpICsgYXJyYXlTdGFjay5zaXplKCkgPiBtYXhpbXVtRmlsdGVyUmVj
dXJzaW9uKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9leGVjLT52bSgpLnRocm93RXhj
ZXB0aW9uKG1fZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYykpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdGhyb3dTdGFja092ZXJmbG93RXJyb3IobV9leGVjKTsKIAog
ICAgICAgICAgICAgICAgIEpTQXJyYXkqIGFycmF5ID0gYXNBcnJheShpblZhbHVlKTsKICAgICAg
ICAgICAgICAgICBhcnJheVN0YWNrLnB1c2goYXJyYXkpOwpAQCAtNzA1LDcgKzcwNSw3IEBAIE5F
VkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHUKICAgICAgICAgICAgICAgICBB
U1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoIWlzSlNB
cnJheShhc09iamVjdChpblZhbHVlKSkgJiYgIWFzT2JqZWN0KGluVmFsdWUpLT5pbmhlcml0cyhK
U0FycmF5OjppbmZvKCkpKTsKICAgICAgICAgICAgICAgICBpZiAob2JqZWN0U3RhY2suc2l6ZSgp
ICsgYXJyYXlTdGFjay5zaXplKCkgPiBtYXhpbXVtRmlsdGVyUmVjdXJzaW9uKQotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbV9leGVjLT52bSgpLnRocm93RXhjZXB0aW9uKG1fZXhlYywgY3Jl
YXRlU3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYykpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdGhyb3dTdGFja092ZXJmbG93RXJyb3IobV9leGVjKTsKIAogICAgICAgICAgICAgICAgIEpT
T2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChpblZhbHVlKTsKICAgICAgICAgICAgICAgICBvYmpl
Y3RTdGFjay5wdXNoKG9iamVjdCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+
CisjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5o
PgogI2luY2x1ZGUgPHd0Zi9QYWdlQmxvY2suaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CkBAIC0xNzUsNiArMTc2LDQ1IEBAIGNvbnN0IE9wdGlvbnM6OkVudHJ5SW5mbyBPcHRpb25z
OjpzX29wdGkKICN1bmRlZiBGT1JfRUFDSF9PUFRJT04KIH07CiAKK3N0YXRpYyB2b2lkIHJlY29t
cHV0ZURlcGVuZGVudE9wdGlvbnMoKQoreworI2lmICFFTkFCTEUoSklUKQorICAgIE9wdGlvbnM6
OnVzZUpJVCgpID0gZmFsc2U7CisgICAgT3B0aW9uczo6dXNlREZHSklUKCkgPSBmYWxzZTsKKyNl
bmRpZgorI2lmICFFTkFCTEUoWUFSUl9KSVQpCisgICAgT3B0aW9uczo6dXNlUmVnRXhwSklUKCkg
PSBmYWxzZTsKKyNlbmRpZgorICAgIAorICAgIGlmIChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHko
KQorICAgICAgICB8fCBPcHRpb25zOjpzaG93REZHRGlzYXNzZW1ibHkoKQorICAgICAgICB8fCBP
cHRpb25zOjpkdW1wQnl0ZWNvZGVBdERGR1RpbWUoKQorICAgICAgICB8fCBPcHRpb25zOjpkdW1w
R3JhcGhBdEVhY2hQaGFzZSgpCisgICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlv
bigpCisgICAgICAgIHx8IE9wdGlvbnM6OmxvZ0NvbXBpbGF0aW9uQ2hhbmdlcygpCisgICAgICAg
IHx8IE9wdGlvbnM6OnZhbGlkYXRlR3JhcGgoKQorICAgICAgICB8fCBPcHRpb25zOjp2YWxpZGF0
ZUdyYXBoQXRFYWNoUGhhc2UoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlT1NSKCkKKyAg
ICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uUXVldWUoKQorICAgICAgICB8fCBP
cHRpb25zOjpyZXBvcnRDb21waWxlVGltZXMoKQorICAgICAgICB8fCBPcHRpb25zOjpyZXBvcnRG
VExDb21waWxlVGltZXMoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ0ZBKCkKKyAgICAg
ICAgfHwgT3B0aW9uczo6dmVyYm9zZUZUTEZhaWx1cmUoKSkKKyAgICAgICAgT3B0aW9uczo6YWx3
YXlzQ29tcHV0ZUhhc2goKSA9IHRydWU7CisgICAgCisgICAgLy8gQ29tcHV0ZSB0aGUgbWF4aW11
bSB2YWx1ZSBvZiB0aGUgcmVvcHRpbWl6YXRpb24gcmV0cnkgY291bnRlci4gVGhpcyBpcyBzaW1w
bHkKKyAgICAvLyB0aGUgbGFyZ2VzdCB2YWx1ZSBhdCB3aGljaCB3ZSBkb24ndCBvdmVyZmxvdyB0
aGUgZXhlY3V0ZSBjb3VudGVyLCB3aGVuIHVzaW5nIGl0CisgICAgLy8gdG8gbGVmdC1zaGlmdCB0
aGUgZXhlY3V0aW9uIGNvdW50ZXIgYnkgdGhpcyBhbW91bnQuIEN1cnJlbnRseSB0aGUgdmFsdWUg
ZW5kcworICAgIC8vIHVwIGJlaW5nIDE4LCBzbyB0aGlzIGxvb3AgaXMgbm90IHNvIHRlcnJpYmxl
OyBpdCBwcm9iYWJseSB0YWtlcyB1cCB+MTAwIGN5Y2xlcworICAgIC8vIHRvdGFsIG9uIGEgMzIt
Yml0IHByb2Nlc3Nvci4KKyAgICBPcHRpb25zOjpyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1h
eCgpID0gMDsKKyAgICB3aGlsZSAoKHN0YXRpY19jYXN0PGludDY0X3Q+KE9wdGlvbnM6OnRocmVz
aG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IChPcHRpb25zOjpyZW9wdGltaXph
dGlvblJldHJ5Q291bnRlck1heCgpICsgMSkpIDw9IHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSkKKyAgICAgICAgT3B0aW9uczo6cmVvcHRp
bWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSsrOworCisgICAgQVNTRVJUKChzdGF0aWNfY2FzdDxp
bnQ2NF90PihPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8
PCBPcHRpb25zOjpyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpKSA+IDApOworICAgIEFT
U0VSVCgoc3RhdGljX2Nhc3Q8aW50NjRfdD4oT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVB
ZnRlckxvbmdXYXJtVXAoKSkgPDwgT3B0aW9uczo6cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJN
YXgoKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWF4KCkpKTsKK30KKwogdm9pZCBPcHRpb25zOjppbml0aWFsaXplKCkKIHsKICAgICAvLyBJ
bml0aWFsaXplIGVhY2ggb2YgdGhlIG9wdGlvbnMgd2l0aCB0aGVpciBkZWZhdWx0IHZhbHVlczoK
QEAgLTIwNCwzMCArMjQ0LDEyIEBAIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAgICAgOyAv
LyBEZWNvbmZ1c2UgZWRpdG9ycyB0aGF0IGRvIGF1dG8gaW5kZW50YXRpb24KICNlbmRpZgogICAg
IAotI2lmICFFTkFCTEUoSklUKQotICAgIHVzZUpJVCgpID0gZmFsc2U7Ci0gICAgdXNlREZHSklU
KCkgPSBmYWxzZTsKLSNlbmRpZgotI2lmICFFTkFCTEUoWUFSUl9KSVQpCi0gICAgdXNlUmVnRXhw
SklUKCkgPSBmYWxzZTsKLSNlbmRpZgorICAgIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKTsK
IAogICAgIC8vIERvIHJhbmdlIGNoZWNrcyB3aGVyZSBuZWVkZWQgYW5kIG1ha2UgY29ycmVjdGlv
bnMgdG8gdGhlIG9wdGlvbnM6Ci0gICAgQVNTRVJUKHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJM
b25nV2FybVVwKCkgPj0gdGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgpKTsKLSAgICBB
U1NFUlQodGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgpID49IHRocmVzaG9sZEZvck9w
dGltaXplU29vbigpKTsKLSAgICBBU1NFUlQodGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1V
cCgpID49IDApOwotCi0gICAgLy8gQ29tcHV0ZSB0aGUgbWF4aW11bSB2YWx1ZSBvZiB0aGUgcmVv
cHRpbWl6YXRpb24gcmV0cnkgY291bnRlci4gVGhpcyBpcyBzaW1wbHkKLSAgICAvLyB0aGUgbGFy
Z2VzdCB2YWx1ZSBhdCB3aGljaCB3ZSBkb24ndCBvdmVyZmxvdyB0aGUgZXhlY3V0ZSBjb3VudGVy
LCB3aGVuIHVzaW5nIGl0Ci0gICAgLy8gdG8gbGVmdC1zaGlmdCB0aGUgZXhlY3V0aW9uIGNvdW50
ZXIgYnkgdGhpcyBhbW91bnQuIEN1cnJlbnRseSB0aGUgdmFsdWUgZW5kcwotICAgIC8vIHVwIGJl
aW5nIDE4LCBzbyB0aGlzIGxvb3AgaXMgbm90IHNvIHRlcnJpYmxlOyBpdCBwcm9iYWJseSB0YWtl
cyB1cCB+MTAwIGN5Y2xlcwotICAgIC8vIHRvdGFsIG9uIGEgMzItYml0IHByb2Nlc3Nvci4KLSAg
ICByZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpID0gMDsKLSAgICB3aGlsZSAoKHN0YXRp
Y19jYXN0PGludDY0X3Q+KHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8
IChyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpICsgMSkpIDw9IHN0YXRpY19jYXN0PGlu
dDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzI+OjptYXgoKSkpCi0gICAgICAgIHJlb3B0
aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkrKzsKLQotICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8
aW50NjRfdD4odGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgcmVvcHRp
bWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSkgPiAwKTsKLSAgICBBU1NFUlQoKHN0YXRpY19jYXN0
PGludDY0X3Q+KHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IHJlb3B0
aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkpIDw9IHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50MzI+OjptYXgoKSkpOworICAgIEFTU0VSVChPcHRpb25zOjp0aHJl
c2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpID49IE9wdGlvbnM6OnRocmVzaG9sZEZv
ck9wdGltaXplQWZ0ZXJXYXJtVXAoKSk7CisgICAgQVNTRVJUKE9wdGlvbnM6OnRocmVzaG9sZEZv
ck9wdGltaXplQWZ0ZXJXYXJtVXAoKSA+PSBPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZVNv
b24oKSk7CisgICAgQVNTRVJUKE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJt
VXAoKSA+PSAwKTsKIH0KIAogLy8gUGFyc2VzIGEgc2luZ2xlIGNvbW1hbmQgbGluZSBvcHRpb24g
aW4gdGhlIGZvcm1hdCAiPG9wdGlvbk5hbWU+PTx2YWx1ZT4iCkBAIC0yNTEsNiArMjczLDcgQEAg
Ym9vbCBPcHRpb25zOjpzZXRPcHRpb24oY29uc3QgY2hhciogYXJnKQogICAgICAgICBib29sIHN1
Y2Nlc3MgPSBwYXJzZSh2YWx1ZVN0ciwgdmFsdWUpOyAgICAgICAgICBcCiAgICAgICAgIGlmIChz
dWNjZXNzKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAg
IG5hbWVfKCkgPSB2YWx1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg
ICAgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygpOyAgICAgICAgICAgICAgICBcCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg
ICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg
ICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBA
IC0yNTksNyArMjgyLDcgQEAgYm9vbCBPcHRpb25zOjpzZXRPcHRpb24oY29uc3QgY2hhciogYXJn
KQogICAgIEpTQ19PUFRJT05TKEZPUl9FQUNIX09QVElPTikKICN1bmRlZiBGT1JfRUFDSF9PUFRJ
T04KIAotICAgICAgICByZXR1cm4gZmFsc2U7IC8vIE5vIG9wdGlvbiBtYXRjaGVkLgorICAgIHJl
dHVybiBmYWxzZTsgLy8gTm8gb3B0aW9uIG1hdGNoZWQuCiB9CiAKIHZvaWQgT3B0aW9uczo6ZHVt
cEFsbE9wdGlvbnMoRklMRSogc3RyZWFtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNFeHBvcnRNYWNyb3MuaCIKICNpbmNsdWRlIDxz
dGRpbnQuaD4KICNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTk0LDYgKzk1LDEwIEBAIHR5cGVkZWYgT3B0aW9u
UmFuZ2Ugb3B0aW9uUmFuZ2U7CiAgICAgdihib29sLCB1c2VERkdKSVQsIHRydWUpIFwKICAgICB2
KGJvb2wsIHVzZVJlZ0V4cEpJVCwgdHJ1ZSkgXAogICAgIFwKKyAgICB2KHVuc2lnbmVkLCBtYXhQ
ZXJUaHJlYWRTdGFja1VzYWdlLCA0ICogTUIpIFwKKyAgICB2KHVuc2lnbmVkLCByZXNlcnZlZFpv
bmVTaXplLCAxMjggKiBLQikgXAorICAgIHYodW5zaWduZWQsIGVycm9yTW9kZVJlc2VydmVkWm9u
ZVNpemUsIDY0ICogS0IpIFwKKyAgICBcCiAgICAgdihib29sLCBjcmFzaElmQ2FudEFsbG9jYXRl
SklUTWVtb3J5LCBmYWxzZSkgXAogICAgIFwKICAgICB2KGJvb2wsIGZvcmNlREZHQ29kZUJsb2Nr
TGl2ZW5lc3MsIGZhbHNlKSBcCkBAIC0xMTgsMTEgKzEyMywxOSBAQCB0eXBlZGVmIE9wdGlvblJh
bmdlIG9wdGlvblJhbmdlOwogICAgIHYoYm9vbCwgdmVyYm9zZUNhbGxMaW5rLCBmYWxzZSkgXAog
ICAgIHYoYm9vbCwgdmVyYm9zZUNvbXBpbGF0aW9uUXVldWUsIGZhbHNlKSBcCiAgICAgdihib29s
LCByZXBvcnRDb21waWxlVGltZXMsIGZhbHNlKSBcCisgICAgdihib29sLCByZXBvcnRGVExDb21w
aWxlVGltZXMsIGZhbHNlKSBcCiAgICAgdihib29sLCB2ZXJib3NlQ0ZBLCBmYWxzZSkgXAorICAg
IHYoYm9vbCwgdmVyYm9zZUZUTFRvSlNUaHVuaywgZmFsc2UpIFwKKyAgICB2KGJvb2wsIHZlcmJv
c2VGVExGYWlsdXJlLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgYWx3YXlzQ29tcHV0ZUhhc2gsIGZh
bHNlKSBcCisgICAgdihib29sLCB0ZXN0VGhlRlRMLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgdmVy
Ym9zZVNhbml0aXplU3RhY2ssIGZhbHNlKSBcCiAgICAgXAotICAgIHYoYm9vbCwgZW5hYmxlT1NS
RW50cnlJbkxvb3BzLCB0cnVlKSBcCisgICAgdihib29sLCBlbmFibGVPU1JFbnRyeVRvREZHLCB0
cnVlKSBcCisgICAgdihib29sLCBlbmFibGVPU1JFbnRyeVRvRlRMLCB0cnVlKSBcCiAgICAgXAog
ICAgIHYoYm9vbCwgdXNlRXhwZXJpbWVudGFsRlRMLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgZW5h
YmxlRXhwZXJpbWVudGFsRlRMQ292ZXJhZ2UsIGZhbHNlKSBcCiAgICAgdihib29sLCB1c2VGVExU
QkFBLCB0cnVlKSBcCiAgICAgdihib29sLCBlbmFibGVMTFZNRmFzdElTZWwsIGZhbHNlKSBcCiAg
ICAgdihib29sLCB1c2VMTFZNU21hbGxDb2RlTW9kZWwsIGZhbHNlKSBcCkBAIC0xMzQsMTAgKzE0
NywxMiBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIHYodW5zaWduZWQs
IGxsdm1CYWNrZW5kT3B0aW1pemF0aW9uTGV2ZWwsIDIpIFwKICAgICB2KHVuc2lnbmVkLCBsbHZt
T3B0aW1pemF0aW9uTGV2ZWwsIDIpIFwKICAgICB2KHVuc2lnbmVkLCBsbHZtU2l6ZUxldmVsLCAw
KSBcCisgICAgdihib29sLCBsbHZtRGlzYWxsb3dBVlgsIHRydWUpIFwKICAgICB2KGJvb2wsIGZ0
bENyYXNoZXMsIGZhbHNlKSAvKiBmb29sLXByb29mIHdheSBvZiBjaGVja2luZyB0aGF0IHlvdSBl
bmRlZCB1cCBpbiB0aGUgRlRMLiA7LSkgKi9cCiAgICAgXAogICAgIHYoYm9vbCwgZW5hYmxlQ29u
Y3VycmVudEpJVCwgdHJ1ZSkgXAotICAgIHYodW5zaWduZWQsIG51bWJlck9mQ29tcGlsZXJUaHJl
YWRzLCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJlYWRzKDIpIC0gMSkgXAorICAgIHYodW5zaWdu
ZWQsIG51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzLCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJl
YWRzKDIpIC0gMSkgXAorICAgIHYodW5zaWduZWQsIG51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRz
LCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJlYWRzKDgpIC0gMSkgXAogICAgIFwKICAgICB2KGJv
b2wsIGVuYWJsZVByb2ZpbGVyLCBmYWxzZSkgXAogICAgIFwKQEAgLTE0Niw2ICsxNjEsOCBAQCB0
eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIFwKICAgICB2KGJvb2wsIGVuYWJs
ZUFyY2hpdGVjdHVyZVNwZWNpZmljT3B0aW1pemF0aW9ucywgdHJ1ZSkgXAogICAgIFwKKyAgICB2
KGJvb2wsIGJyZWFrT25UaHJvdywgZmFsc2UpIFwKKyAgICBcCiAgICAgdih1bnNpZ25lZCwgbWF4
aW11bU9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQsIDEwMDAwKSBcCiAgICAg
XAogICAgIHYodW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVJ
bnN0cnVjdGlvbkNvdW50LCAxODApIFwKQEAgLTE1NCw2ICsxNzEsMTIgQEAgdHlwZWRlZiBPcHRp
b25SYW5nZSBvcHRpb25SYW5nZTsKICAgICBcCiAgICAgLyogRGVwdGggb2YgaW5saW5lIHN0YWNr
LCBzbyAxID0gbm8gaW5saW5pbmcsIDIgPSBvbmUgbGV2ZWwsIGV0Yy4gKi8gXAogICAgIHYodW5z
aWduZWQsIG1heGltdW1JbmxpbmluZ0RlcHRoLCA1KSBcCisgICAgdih1bnNpZ25lZCwgbWF4aW11
bUlubGluaW5nUmVjdXJzaW9uLCAyKSBcCisgICAgdih1bnNpZ25lZCwgbWF4aW11bUlubGluaW5n
RGVwdGhGb3JNdXN0SW5saW5lLCA3KSBcCisgICAgdih1bnNpZ25lZCwgbWF4aW11bUlubGluaW5n
UmVjdXJzaW9uRm9yTXVzdElubGluZSwgMykgXAorICAgIFwKKyAgICB2KGJvb2wsIGVuYWJsZVBv
bHl2YXJpYW50Q2FsbElubGluaW5nLCB0cnVlKSBcCisgICAgdihib29sLCBlbmFibGVQb2x5dmFy
aWFudEJ5SWRJbmxpbmluZywgdHJ1ZSkgXAogICAgIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVt
QmluYXJ5U3RyaW5nU3dpdGNoQ2FzZUxlbmd0aCwgNTApIFwKICAgICB2KHVuc2lnbmVkLCBtYXhp
bXVtQmluYXJ5U3RyaW5nU3dpdGNoVG90YWxMZW5ndGgsIDIwMDApIFwKQEAgLTIxMCw2ICsyMzMs
NyBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIHYoYm9vbCwgc2hvd09i
amVjdFN0YXRpc3RpY3MsIGZhbHNlKSBcCiAgICAgXAogICAgIHYoYm9vbCwgbG9nR0MsIGZhbHNl
KSBcCisgICAgdihib29sLCBkaXNhYmxlR0MsIGZhbHNlKSBcCiAgICAgdih1bnNpZ25lZCwgZ2NN
YXhIZWFwU2l6ZSwgMCkgXAogICAgIHYoYm9vbCwgcmVjb3JkR0NQYXVzZVRpbWVzLCBmYWxzZSkg
XAogICAgIHYoYm9vbCwgbG9nSGVhcFN0YXRpc3RpY3NBdEV4aXQsIGZhbHNlKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Nb2RlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlX2gKKyNkZWZpbmUgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Nb2RlX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gUmVnaXN0ZXJQcmVzZXJ2YXRpb25N
b2RlIHsKKyAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkLAorICAgIE11c3RQcmVz
ZXJ2ZVJlZ2lzdGVycworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBSZWdp
c3RlclByZXNlcnZhdGlvbk1vZGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdGFja0FsaWdubWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0YWNrQWxpZ25tZW50LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrQWxpZ25tZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDggQEAKICNkZWZpbmUgU3RhY2tBbGlnbm1lbnRfaAogCiAjaW5jbHVkZSAiSlND
SlNWYWx1ZS5oIgorI2luY2x1ZGUgIkpTU3RhY2suaCIKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMzgsNiArNDAsMjUgQEAgaW5saW5lIHVuc2ln
bmVkIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKAogICAgIHJldHVybiBzdGFja0FsaWdubWVudEJ5
dGVzKCkgLyBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOwogfQogCisvLyBBbGlnbiBhcmd1bWVudCBj
b3VudCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBDYWxsRnJhbWVIZWFkZXJTaXplIG1heSBiZQor
Ly8gYW4gInVuYWxpZ25lZCIgY291bnQgb2YgcmVnaXN0ZXJzLgoraW5saW5lIHVuc2lnbmVkIHJv
dW5kQXJndW1lbnRDb3VudFRvQWxpZ25GcmFtZSh1bnNpZ25lZCBhcmd1bWVudENvdW50KQorewor
ICAgIHJldHVybiBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKSwgYXJndW1lbnRDb3VudCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpIC0gSlNT
dGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKK30KKworLy8gQWxpZ24gbG9jYWwgcmVnaXN0ZXIg
Y291bnQgdG8gbWFrZSB0aGUgbGFzdCBsb2NhbCBlbmQgb24gYSBzdGFjayBhbGlnbmVkIGFkZHJl
c3MgZ2l2ZW4gdGhlCisvLyBDYWxsRnJhbWUgaXMgYXQgYW4gYWRkcmVzcyB0aGF0IGlzIHN0YWNr
IGFsaWduZWQgbWludXMgSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUKK2lubGluZSB1bnNp
Z25lZCByb3VuZExvY2FsUmVnaXN0ZXJDb3VudEZvckZyYW1lUG9pbnRlck9mZnNldCh1bnNpZ25l
ZCBsb2NhbFJlZ2lzdGVyQ291bnQpCit7CisgICAgcmV0dXJuIFdURjo6cm91bmRVcFRvTXVsdGlw
bGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBsb2NhbFJlZ2lzdGVyQ291bnQgKyBKU1N0
YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6
ZTsKK30KKworaW5saW5lIHVuc2lnbmVkIGxvZ1N0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkKK3sK
KyAgICByZXR1cm4gV1RGOjpmYXN0TG9nMihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdGFja0FsaWdubWVudF9oCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1
cnNpb25DaGVja2VyLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIEpTVmFsdWUgU3RyaW5nUmVjdXJzaW9u
Q2hlY2tlcjo6dGhyb3dTdGFja092ZXJmbG93RXJyb3IoKQogewotICAgIHJldHVybiBtX2V4ZWMt
PnZtKCkudGhyb3dFeGNlcHRpb24obV9leGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IobV9l
eGVjKSk7CisgICAgcmV0dXJuIEpTQzo6dGhyb3dTdGFja092ZXJmbG93RXJyb3IobV9leGVjKTsK
IH0KIAogSlNWYWx1ZSBTdHJpbmdSZWN1cnNpb25DaGVja2VyOjplbXB0eVN0cmluZygpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNDgsOCArMTA0OCwxMyBAQCB2b2lkIFN0cnVjdHVyZTo6ZHVt
cChQcmludFN0cmVhbSYgb3V0KSBjCiAgICAgaWYgKHRhYmxlKSB7CiAgICAgICAgIFByb3BlcnR5
VGFibGU6Oml0ZXJhdG9yIGl0ZXIgPSB0YWJsZS0+YmVnaW4oKTsKICAgICAgICAgUHJvcGVydHlU
YWJsZTo6aXRlcmF0b3IgZW5kID0gdGFibGUtPmVuZCgpOwotICAgICAgICBmb3IgKDsgaXRlciAh
PSBlbmQ7ICsraXRlcikKKyAgICAgICAgZm9yICg7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKICAg
ICAgICAgICAgIG91dC5wcmludChjb21tYSwgaXRlci0+a2V5LCAiOiIsIHN0YXRpY19jYXN0PGlu
dD4oaXRlci0+b2Zmc2V0KSk7CisgICAgICAgICAgICBpZiAoaXRlci0+c3BlY2lmaWNWYWx1ZSkg
eworICAgICAgICAgICAgICAgIER1bXBDb250ZXh0IGR1bW15Q29udGV4dDsKKyAgICAgICAgICAg
ICAgICBvdXQucHJpbnQoIj0+IiwgUmF3UG9pbnRlcihpdGVyLT5zcGVjaWZpY1ZhbHVlLmdldCgp
KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0cnVjdHVy
ZS0+bV9sb2NrLnVubG9jaygpOwogICAgIH0KQEAgLTEwNTksNiArMTA2NCwxMCBAQCB2b2lkIFN0
cnVjdHVyZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjCiAgICAgICAgIGlmICghc3RydWN0dXJl
LT5tX25hbWVJblByZXZpb3VzKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIG91dC5w
cmludChjb21tYSwgc3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzLmdldCgpLCAiOiIsIHN0YXRp
Y19jYXN0PGludD4oc3RydWN0dXJlLT5tX29mZnNldCkpOworICAgICAgICBpZiAoc3RydWN0dXJl
LT5tX3NwZWNpZmljVmFsdWVJblByZXZpb3VzKSB7CisgICAgICAgICAgICBEdW1wQ29udGV4dCBk
dW1teUNvbnRleHQ7CisgICAgICAgICAgICBvdXQucHJpbnQoIj0+IiwgUmF3UG9pbnRlcihzdHJ1
Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuZ2V0KCkpKTsKKyAgICAgICAgfQogICAg
IH0KICAgICAKICAgICBvdXQucHJpbnQoIn0sICIsIEluZGV4aW5nVHlwZUR1bXAoaW5kZXhpbmdU
eXBlKCkpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEs
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTEgKzMwLDEzIEBACiAjaW5jbHVk
ZSAiVk0uaCIKIAogI2luY2x1ZGUgIkFyZ0xpc3QuaCIKKyNpbmNsdWRlICJBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hwb2lu
dC5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2su
aCIKICNpbmNsdWRlICJDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJDb21tb25JZGVudGlmaWVycy5o
IgorI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkRGR0xvbmdMaXZlZFN0
YXRlLmgiCiAjaW5jbHVkZSAiREZHV29ya2xpc3QuaCIKICNpbmNsdWRlICJEZWJ1Z2dlckFjdGl2
YXRpb24uaCIKQEAgLTQ5LDYgKzUxLDcgQEAKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiSW5jcmVtZW50YWxTd2VlcGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNp
bmNsdWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiSlNBUElWYWx1ZVdyYXBwZXIuaCIKICNpbmNs
dWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCkBAIC0xNjYsNiArMTY5
LDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgICwgdm1U
eXBlKHZtVHlwZSkKICAgICAsIGNsaWVudERhdGEoMCkKICAgICAsIHRvcENhbGxGcmFtZShDYWxs
RnJhbWU6Om5vQ2FsbGVyKCkpCisgICAgLCBzdGFja1BvaW50ZXJBdFZNRW50cnkoMCkKICAgICAs
IGFycmF5Q29uc3RydWN0b3JUYWJsZShhZG9wdFB0cihuZXcgSGFzaFRhYmxlKEpTQzo6YXJyYXlD
b25zdHJ1Y3RvclRhYmxlKSkpCiAgICAgLCBhcnJheVByb3RvdHlwZVRhYmxlKGFkb3B0UHRyKG5l
dyBIYXNoVGFibGUoSlNDOjphcnJheVByb3RvdHlwZVRhYmxlKSkpCiAgICAgLCBib29sZWFuUHJv
dG90eXBlVGFibGUoYWRvcHRQdHIobmV3IEhhc2hUYWJsZShKU0M6OmJvb2xlYW5Qcm90b3R5cGVU
YWJsZSkpKQpAQCAtMjE3LDcgKzIyMSw3IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlw
ZSBoZWFwVHlwZSkKICAgICAsIG1faW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3MoMCkKICNlbmRpZgog
ICAgICwgbV9zdGFja0xpbWl0KDApCi0jaWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQor
I2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgLCBtX2pzU3RhY2tMaW1pdCgwKQogI2VuZGlm
CiAgICAgLCBtX2luRGVmaW5lT3duUHJvcGVydHkoZmFsc2UpCkBAIC0yMjUsNyArMjI5LDExIEBA
IFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKIHsKICAgICBpbnRlcnBy
ZXRlciA9IG5ldyBJbnRlcnByZXRlcigqdGhpcyk7CiAgICAgU3RhY2tCb3VuZHMgc3RhY2sgPSB3
dGZUaHJlYWREYXRhKCkuc3RhY2soKTsKLSAgICBzZXRTdGFja0xpbWl0KHN0YWNrLnJlY3Vyc2lv
bkxpbWl0KCkpOworICAgIHVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShPcHRp
b25zOjpyZXNlcnZlZFpvbmVTaXplKCkpOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAg
aW50ZXJwcmV0ZXItPnN0YWNrKCkuc2V0UmVzZXJ2ZWRab25lU2l6ZShPcHRpb25zOjpyZXNlcnZl
ZFpvbmVTaXplKCkpOworI2VuZGlmCisgICAgc2V0TGFzdFN0YWNrVG9wKHN0YWNrLm9yaWdpbigp
KTsKIAogICAgIC8vIE5lZWQgdG8gYmUgY2FyZWZ1bCB0byBrZWVwIGV2ZXJ5dGhpbmcgY29uc2lz
dGVudCBoZXJlCiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodGhpcyk7CkBAIC0yNjcsNyArMjc1LDkg
QEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogCiAjaWYgRU5BQkxF
KEpJVCkKICAgICBqaXRTdHVicyA9IGFkb3B0UHRyKG5ldyBKSVRUaHVua3MoKSk7CisgICAgYXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MgPSBzdGQ6Om1ha2VfdW5pcXVlPEFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzPigpOwogI2VuZGlmCisgICAgYXJpdHlDaGVja0RhdGEgPSBzdGQ6Om1ha2Vf
dW5pcXVlPENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE+KCk7CiAKICNpZiBFTkFCTEUo
RlRMX0pJVCkKICAgICBmdGxUaHVua3MgPSBzdGQ6Om1ha2VfdW5pcXVlPEZUTDo6VGh1bmtzPigp
OwpAQCAtMjgwLDcgKzI5MCw3IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFw
VHlwZSkKICNlbmRpZgogCiAgICAgaGVhcC5ub3RpZnlJc1NhZmVUb0NvbGxlY3QoKTsKLQorICAg
IAogICAgIExMSW50OjpEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucygqdGhpcyk7CiAgICAgCiAgICAg
aWYgKE9wdGlvbnM6OmVuYWJsZVByb2ZpbGVyKCkpIHsKQEAgLTMwNiw2ICszMTYsMTYgQEAgVk06
OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIG1fdHlwZWRBcnJheUNv
bnRyb2xsZXIgPSBhZG9wdFJlZihuZXcgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKSk7CiB9
CiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKK3N0YXRpYyB2b2lkIGNsZWFuV29ya2xpc3QoVk0mIHZt
LCBERkc6OldvcmtsaXN0KiB3b3JrbGlzdCkKK3sKKyAgICBpZiAoIXdvcmtsaXN0KQorICAgICAg
ICByZXR1cm47CisgICAgd29ya2xpc3QtPndhaXRVbnRpbEFsbFBsYW5zRm9yVk1BcmVSZWFkeSh2
bSk7CisgICAgd29ya2xpc3QtPnJlbW92ZUFsbFJlYWR5UGxhbnNGb3JWTSh2bSk7Cit9CisjZW5k
aWYgLy8gRU5BQkxFKERGR19KSVQpCisKIFZNOjp+Vk0oKQogewogICAgIC8vIE5ldmVyIEdDLCBl
dmVyIGFnYWluLgpAQCAtMzE0LDEwICszMzQsOCBAQCBWTTo6flZNKCkKICNpZiBFTkFCTEUoREZH
X0pJVCkKICAgICAvLyBNYWtlIHN1cmUgY29uY3VycmVudCBjb21waWxhdGlvbnMgYXJlIGRvbmUs
IGJ1dCBkb24ndCBpbnN0YWxsIHRoZW0sIHNpbmNlIHRoZXJlIGlzCiAgICAgLy8gbm8gcG9pbnQg
dG8gZG9pbmcgc28uCi0gICAgaWYgKHdvcmtsaXN0KSB7Ci0gICAgICAgIHdvcmtsaXN0LT53YWl0
VW50aWxBbGxQbGFuc0ZvclZNQXJlUmVhZHkoKnRoaXMpOwotICAgICAgICB3b3JrbGlzdC0+cmVt
b3ZlQWxsUmVhZHlQbGFuc0ZvclZNKCp0aGlzKTsKLSAgICB9CisgICAgY2xlYW5Xb3JrbGlzdCgq
dGhpcywgREZHOjpleGlzdGluZ0dsb2JhbERGR1dvcmtsaXN0T3JOdWxsKCkpOworICAgIGNsZWFu
V29ya2xpc3QoKnRoaXMsIERGRzo6ZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVsbCgpKTsK
ICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKICAgICAKICAgICAvLyBDbGVhciB0aGlzIGZpcnN0
IHRvIGVuc3VyZSB0aGF0IG5vYm9keSB0cmllcyB0byByZW1vdmUgdGhlbXNlbHZlcyBmcm9tIGl0
LgpAQCAtNDYxLDggKzQ3OSw4IEBAIE5hdGl2ZUV4ZWN1dGFibGUqIFZNOjpnZXRIb3N0RnVuY3Rp
b24oTmEKIE5hdGl2ZUV4ZWN1dGFibGUqIFZNOjpnZXRIb3N0RnVuY3Rpb24oTmF0aXZlRnVuY3Rp
b24gZnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQogewogICAgIHJldHVybiBO
YXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKnRoaXMsCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpLCBm
dW5jdGlvbiwKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVS
ZWYobGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKSwgY29uc3RydWN0b3IsCisgICAg
ICAgIGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3Jl
YXRlTExJbnRDb2RlUmVmKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpLCBKSVRDb2RlOjpI
b3N0Q2FsbFRodW5rKSksIGZ1bmN0aW9uLAorICAgICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklU
Q29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9uYXRp
dmVfY29uc3RydWN0X3RyYW1wb2xpbmUpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksIGNvbnN0
cnVjdG9yLAogICAgICAgICBOb0ludHJpbnNpYyk7CiB9CiAKQEAgLTQ5MCwxNCArNTA4LDIxIEBA
IHZvaWQgVk06OnN0b3BTYW1wbGluZygpCiAgICAgaW50ZXJwcmV0ZXItPnN0b3BTYW1wbGluZygp
OwogfQogCi12b2lkIFZNOjpwcmVwYXJlVG9EaXNjYXJkQ29kZSgpCi17CiAjaWYgRU5BQkxFKERG
R19KSVQpCitzdGF0aWMgdm9pZCBwcmVwYXJlVG9EaXNjYXJkQ29kZUZvcihWTSYgdm0sIERGRzo6
V29ya2xpc3QqIHdvcmtsaXN0KQorewogICAgIGlmICghd29ya2xpc3QpCiAgICAgICAgIHJldHVy
bjsKLSAgICAKLSAgICB3b3JrbGlzdC0+Y29tcGxldGVBbGxQbGFuc0ZvclZNKCp0aGlzKTsKLSNl
bmRpZgorICAgIHdvcmtsaXN0LT5jb21wbGV0ZUFsbFBsYW5zRm9yVk0odm0pOworfQorI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQorCit2b2lkIFZNOjpwcmVwYXJlVG9EaXNjYXJkQ29kZSgpCit7
CisjaWYgRU5BQkxFKERGR19KSVQpCisgICAgcHJlcGFyZVRvRGlzY2FyZENvZGVGb3IoKnRoaXMs
IERGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpKTsKKyAgICBwcmVwYXJlVG9E
aXNjYXJkQ29kZUZvcigqdGhpcywgREZHOjpleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxs
KCkpOworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogfQogCiB2b2lkIFZNOjpkaXNjYXJkQWxs
Q29kZSgpCkBAIC02MzIsNiArNjU3LDExIEBAIHN0YXRpYyB2b2lkIGFwcGVuZFNvdXJjZVRvRXJy
b3IoQ2FsbEZyYW0KICAgICAKIEpTVmFsdWUgVk06OnRocm93RXhjZXB0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBlcnJvcikKIHsKKyAgICBpZiAoT3B0aW9uczo6YnJlYWtPblRocm93KCkp
IHsKKyAgICAgICAgZGF0YUxvZygiSW4gY2FsbCBmcmFtZSAiLCBSYXdQb2ludGVyKGV4ZWMpLCAi
IGZvciBjb2RlIGJsb2NrICIsICpleGVjLT5jb2RlQmxvY2soKSwgIlxuIik7CisgICAgICAgIENS
QVNIKCk7CisgICAgfQorICAgIAogICAgIEFTU0VSVChleGVjID09IHRvcENhbGxGcmFtZSB8fCBl
eGVjID09IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpIHx8IGV4ZWMg
PT0gZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCkpOwogICAgIAogICAg
IFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNlOwpAQCAtNzA2LDYgKzczNiwyNCBAQCB2b2lk
IFZNOjogY2xlYXJFeGNlcHRpb25TdGFjaygpCiAgICAgbV9leGNlcHRpb25TdGFjayA9IFJlZkNv
dW50ZWRBcnJheTxTdGFja0ZyYW1lPigpOwogfQogCitzaXplX3QgVk06OnVwZGF0ZVN0YWNrTGlt
aXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShzaXplX3QgcmVzZXJ2ZWRab25lU2l6ZSkKK3sKKyAgICBz
aXplX3Qgb2xkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fcmVzZXJ2ZWRab25lU2l6ZTsKKyAgICBtX3Jl
c2VydmVkWm9uZVNpemUgPSByZXNlcnZlZFpvbmVTaXplOworCisgICAgdm9pZCogc3RhY2tMaW1p
dDsKKyAgICBpZiAoc3RhY2tQb2ludGVyQXRWTUVudHJ5KSB7CisgICAgICAgIEFTU0VSVCh3dGZU
aHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKKyAgICAgICAgY2hhciog
c3RhcnRPZlN0YWNrID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oc3RhY2tQb2ludGVyQXRWTUVu
dHJ5KTsKKyAgICAgICAgY2hhciogZGVzaXJlZFN0YWNrTGltaXQgPSBzdGFydE9mU3RhY2sgLSBP
cHRpb25zOjptYXhQZXJUaHJlYWRTdGFja1VzYWdlKCkgKyByZXNlcnZlZFpvbmVTaXplOworICAg
ICAgICBzdGFja0xpbWl0ID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkucmVjdXJzaW9uTGltaXQo
cmVzZXJ2ZWRab25lU2l6ZSwgZGVzaXJlZFN0YWNrTGltaXQpOworICAgIH0gZWxzZQorICAgICAg
ICBzdGFja0xpbWl0ID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkucmVjdXJzaW9uTGltaXQocmVz
ZXJ2ZWRab25lU2l6ZSk7CisKKyAgICBzZXRTdGFja0xpbWl0KHN0YWNrTGltaXQpOworICAgIHJl
dHVybiBvbGRSZXNlcnZlZFpvbmVTaXplOworfQorCiB2b2lkIHJlbGVhc2VFeGVjdXRhYmxlTWVt
b3J5KFZNJiB2bSkKIHsKICAgICB2bS5yZWxlYXNlRXhlY3V0YWJsZU1lbW9yeSgpOwpAQCAtNzIy
LDE2ICs3NzAsMTkgQEAgdm9pZCBWTTo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2Vydgog
ICAgICAgICB9CiAgICAgfQogfQorI2VuZGlmCiAKLURGRzo6V29ya2xpc3QqIFZNOjplbnN1cmVX
b3JrbGlzdCgpCit2b2lkIGxvZ1Nhbml0aXplU3RhY2soVk0qIHZtKQogewotICAgIGlmICghREZH
OjplbmFibGVDb25jdXJyZW50SklUKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmICghd29y
a2xpc3QpCi0gICAgICAgIHdvcmtsaXN0ID0gREZHOjpnbG9iYWxXb3JrbGlzdCgpOwotICAgIHJl
dHVybiB3b3JrbGlzdC5nZXQoKTsKKyAgICBpZiAoT3B0aW9uczo6dmVyYm9zZVNhbml0aXplU3Rh
Y2soKSAmJiB2bS0+dG9wQ2FsbEZyYW1lKSB7CisgICAgICAgIGludCBkdW1teTsKKyAgICAgICAg
ZGF0YUxvZygKKyAgICAgICAgICAgICJTYW5pdGl6aW5nIHN0YWNrIHdpdGggdG9wIGNhbGwgZnJh
bWUgYXQgIiwgUmF3UG9pbnRlcih2bS0+dG9wQ2FsbEZyYW1lKSwKKyAgICAgICAgICAgICIsIGN1
cnJlbnQgc3RhY2sgcG9pbnRlciBhdCAiLCBSYXdQb2ludGVyKCZkdW1teSksICIsIGluICIsCisg
ICAgICAgICAgICBwb2ludGVyRHVtcCh2bS0+dG9wQ2FsbEZyYW1lLT5jb2RlQmxvY2soKSksICIg
YW5kIGxhc3QgY29kZSBvcmlnaW4gPSAiLAorICAgICAgICAgICAgdm0tPnRvcENhbGxGcmFtZS0+
Y29kZU9yaWdpbigpLCAiXG4iKTsKKyAgICB9CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShSRUdF
WFBfVFJBQ0lORykKIHZvaWQgVk06OmFkZFJlZ0V4cFRvVHJhY2UoUmVnRXhwKiByZWdFeHApCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYg
KzY4LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyAgICBjbGFzcyBBcml0eUNoZWNrRmFpbFJl
dHVyblRodW5rczsKICAgICBjbGFzcyBDb2RlQmxvY2s7CiAgICAgY2xhc3MgQ29kZUNhY2hlOwog
ICAgIGNsYXNzIENvbW1vbklkZW50aWZpZXJzOwpAQCAtMTAzLDcgKzEwNCw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogI2lmIEVOQUJMRShERkdfSklUKQogICAgIG5hbWVzcGFjZSBERkcgewogICAgIGNs
YXNzIExvbmdMaXZlZFN0YXRlOwotICAgIGNsYXNzIFdvcmtsaXN0OwogICAgIH0KICNlbmRpZiAv
LyBFTkFCTEUoREZHX0pJVCkKICNpZiBFTkFCTEUoRlRMX0pJVCkKQEAgLTExMSw2ICsxMTEsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBUaHVua3M7CiAgICAgfQogI2VuZGlmIC8vIEVO
QUJMRShGVExfSklUKQorICAgIG5hbWVzcGFjZSBDb21tb25TbG93UGF0aHMgeworICAgIHN0cnVj
dCBBcml0eUNoZWNrRGF0YTsKKyAgICB9CiAKICAgICBzdHJ1Y3QgSGFzaFRhYmxlOwogICAgIHN0
cnVjdCBJbnN0cnVjdGlvbjsKQEAgLTIwNCwxMCArMjA3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgdm9pZCBtYWtlVXNhYmxlRnJvbU11bHRpcGxlVGhyZWFkcygpIHsgaGVhcC5tYWNo
aW5lVGhyZWFkcygpLm1ha2VVc2FibGVGcm9tTXVsdGlwbGVUaHJlYWRzKCk7IH0KICAgICAgICAg
Ci0jaWYgRU5BQkxFKERGR19KSVQpCi0gICAgICAgIERGRzo6V29ya2xpc3QqIGVuc3VyZVdvcmts
aXN0KCk7Ci0jZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCi0KICAgICBwcml2YXRlOgogICAgICAg
ICBSZWZQdHI8SlNMb2NrPiBtX2FwaUxvY2s7CiAKQEAgLTIyNCwxMiArMjIzLDEyIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICAKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAgICAgT3duUHRy
PERGRzo6TG9uZ0xpdmVkU3RhdGU+IGRmZ1N0YXRlOwotICAgICAgICBSZWZQdHI8REZHOjpXb3Jr
bGlzdD4gd29ya2xpc3Q7CiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAKICAgICAgICAgVk1U
eXBlIHZtVHlwZTsKICAgICAgICAgQ2xpZW50RGF0YSogY2xpZW50RGF0YTsKICAgICAgICAgRXhl
Y1N0YXRlKiB0b3BDYWxsRnJhbWU7CisgICAgICAgIHZvaWQqIHN0YWNrUG9pbnRlckF0Vk1FbnRy
eTsKICAgICAgICAgV2F0Y2hkb2cgd2F0Y2hkb2c7CiAKICAgICAgICAgY29uc3QgT3duUHRyPGNv
bnN0IEhhc2hUYWJsZT4gYXJyYXlDb25zdHJ1Y3RvclRhYmxlOwpAQCAtMzQxLDcgKzM0MCwxMyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBqaXRTdHVicy0+Y3RpU3R1Yih0
aGlzLCBnZW5lcmF0b3IpOwogICAgICAgICB9CiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGdl
dEhvc3RGdW5jdGlvbihOYXRpdmVGdW5jdGlvbiwgSW50cmluc2ljKTsKLSNlbmRpZgorICAgICAg
ICAKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzPiBh
cml0eUNoZWNrRmFpbFJldHVyblRodW5rczsKKyNpZiBDUFUoWDg2KQorICAgICAgICB2b2lkKiBj
dXJyZW50UmV0dXJuVGh1bmtQQzsKKyNlbmRpZiAvLyBDUFUoWDg2KQorI2VuZGlmIC8vIEVOQUJM
RShKSVQpCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hl
Y2tEYXRhPiBhcml0eUNoZWNrRGF0YTsKICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEZUTDo6VGh1bmtzPiBmdGxUaHVua3M7CiAjZW5kaWYKQEAgLTM3MywxMiAr
Mzc4LDE2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1Zh
bHVlIHRocm93RXhjZXB0aW9uKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwogICAgICAgICBKU19FWFBP
UlRfUFJJVkFURSBKU09iamVjdCogdGhyb3dFeGNlcHRpb24oRXhlY1N0YXRlKiwgSlNPYmplY3Qq
KTsKICAgICAgICAgCisgICAgICAgIHNpemVfdCByZXNlcnZlZFpvbmVTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNlcnZlZFpvbmVTaXplOyB9CisgICAgICAgIHNpemVfdCB1cGRhdGVTdGFja0xp
bWl0V2l0aFJlc2VydmVkWm9uZVNpemUoc2l6ZV90IHJlc2VydmVkWm9uZVNpemUpOworCiAgICAg
ICAgIHZvaWQqKiBhZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSB7IHJldHVybiAmbV9qc1N0YWNrTGlt
aXQ7IH0KKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICAgICB2b2lkKiBqc1N0YWNrTGlt
aXQoKSB7IHJldHVybiBtX2pzU3RhY2tMaW1pdDsgfQogICAgICAgICB2b2lkIHNldEpTU3RhY2tM
aW1pdCh2b2lkKiBsaW1pdCkgeyBtX2pzU3RhY2tMaW1pdCA9IGxpbWl0OyB9Ci0KKyNlbmRpZgog
ICAgICAgICB2b2lkKiBzdGFja0xpbWl0KCkgeyByZXR1cm4gbV9zdGFja0xpbWl0OyB9Ci0gICAg
ICAgIHZvaWQgc2V0U3RhY2tMaW1pdCh2b2lkKiBsaW1pdCkgeyBtX3N0YWNrTGltaXQgPSBsaW1p
dDsgfQorCiAgICAgICAgIGJvb2wgaXNTYWZlVG9SZWN1cnNlKHNpemVfdCBuZWVkZWRTdGFja0lu
Qnl0ZXMgPSAwKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQod3RmVGhyZWFk
RGF0YSgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CkBAIC0zODcsMTAgKzM5NiwxMiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjdXJyID49IGxpbWl0ICYmIHN0
YXRpY19jYXN0PHNpemVfdD4oY3VyciAtIGxpbWl0KSA+PSBuZWVkZWRTdGFja0luQnl0ZXM7CiAg
ICAgICAgIH0KIAorICAgICAgICB2b2lkKiBsYXN0U3RhY2tUb3AoKSB7IHJldHVybiBtX2xhc3RT
dGFja1RvcDsgfQorICAgICAgICB2b2lkIHNldExhc3RTdGFja1RvcCh2b2lkKiBsYXN0U3RhY2tU
b3ApIHsgbV9sYXN0U3RhY2tUb3AgPSBsYXN0U3RhY2tUb3A7IH0KKwogICAgICAgICBjb25zdCBD
bGFzc0luZm8qIGNvbnN0IGpzQXJyYXlDbGFzc0luZm87CiAgICAgICAgIGNvbnN0IENsYXNzSW5m
byogY29uc3QganNGaW5hbE9iamVjdENsYXNzSW5mbzsKIAotICAgICAgICBSZXR1cm5BZGRyZXNz
UHRyIGV4Y2VwdGlvbkxvY2F0aW9uOwogICAgICAgICBKU1ZhbHVlIGhvc3RDYWxsUmV0dXJuVmFs
dWU7CiAgICAgICAgIEV4ZWNTdGF0ZSogbmV3Q2FsbEZyYW1lUmV0dXJuVmFsdWU7CiAgICAgICAg
IEV4ZWNTdGF0ZSogY2FsbEZyYW1lRm9yVGhyb3c7CkBAIC00MTMsNyArNDI0LDkgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgICAgICAgICAgLy8gbWF4KHNjcmF0Y2ggYnVmZmVyIHNpemUpICog
NC4KICAgICAgICAgICAgICAgICBzaXplT2ZMYXN0U2NyYXRjaEJ1ZmZlciA9IHNpemUgKiAyOwog
Ci0gICAgICAgICAgICAgICAgc2NyYXRjaEJ1ZmZlcnMuYXBwZW5kKFNjcmF0Y2hCdWZmZXI6OmNy
ZWF0ZShzaXplT2ZMYXN0U2NyYXRjaEJ1ZmZlcikpOworICAgICAgICAgICAgICAgIFNjcmF0Y2hC
dWZmZXIqIG5ld0J1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OmNyZWF0ZShzaXplT2ZMYXN0U2NyYXRj
aEJ1ZmZlcik7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobmV3QnVmZmVyKTsKKyAg
ICAgICAgICAgICAgICBzY3JhdGNoQnVmZmVycy5hcHBlbmQobmV3QnVmZmVyKTsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgU2NyYXRjaEJ1ZmZlciogcmVzdWx0ID0gc2NyYXRjaEJ1ZmZl
cnMubGFzdCgpOwpAQCAtNDk1LDYgKzUwOCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBW
TShWTVR5cGUsIEhlYXBUeXBlKTsKICAgICAgICAgc3RhdGljIFZNKiYgc2hhcmVkSW5zdGFuY2VJ
bnRlcm5hbCgpOwogICAgICAgICB2b2lkIGNyZWF0ZU5hdGl2ZVRodW5rKCk7CisKKyAgICAgICAg
dm9pZCBzZXRTdGFja0xpbWl0KHZvaWQqIGxpbWl0KSB7IG1fc3RhY2tMaW1pdCA9IGxpbWl0OyB9
CisKICNpZiBFTkFCTEUoQVNTRU1CTEVSKQogICAgICAgICBib29sIG1fY2FuVXNlQXNzZW1ibGVy
OwogI2VuZGlmCkBAIC01MDcsOCArNTIzLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxF
KEdDX1ZBTElEQVRJT04pCiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogbV9pbml0aWFsaXppbmdP
YmplY3RDbGFzczsKICNlbmRpZgotCi0jaWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQor
ICAgICAgICBzaXplX3QgbV9yZXNlcnZlZFpvbmVTaXplOworI2lmIEVOQUJMRShMTElOVF9DX0xP
T1ApCiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICB2b2lkKiBtX3N0YWNrTGltaXQ7CiAg
ICAgICAgICAgICB2b2lkKiBtX2pzU3RhY2tMaW1pdDsKQEAgLTUxOSw2ICs1MzUsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIHZvaWQqIG1fanNTdGFja0xpbWl0OwogICAgICAgICB9
OwogI2VuZGlmCisgICAgICAgIHZvaWQqIG1fbGFzdFN0YWNrVG9wOwogICAgICAgICBKU1ZhbHVl
IG1fZXhjZXB0aW9uOwogICAgICAgICBib29sIG1faW5EZWZpbmVPd25Qcm9wZXJ0eTsKICAgICAg
ICAgT3duUHRyPENvZGVDYWNoZT4gbV9jb2RlQ2FjaGU7CkBAIC01NDQsNiArNTYxLDIyIEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICByZXR1cm4gJm1fdm0tPmhlYXA7CiAgICAgfQogCisjaWYg
IUVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgZXh0ZXJuICJDIiB2b2lkIHNhbml0aXplU3RhY2tG
b3JWTUltcGwoVk0qKTsKKyNlbmRpZgorCisgICAgdm9pZCBsb2dTYW5pdGl6ZVN0YWNrKFZNKik7
CisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2FuaXRpemVTdGFja0ZvclZNKFZNKiB2bSkKKyAg
ICB7CisgICAgICAgIGxvZ1Nhbml0aXplU3RhY2sodm0pOworI2lmIEVOQUJMRShMTElOVF9DX0xP
T1ApCisgICAgICAgIHZtLT5pbnRlcnByZXRlci0+c3RhY2soKS5zYW5pdGl6ZVN0YWNrKCk7Cisj
ZWxzZQorICAgICAgICBzYW5pdGl6ZVN0YWNrRm9yVk1JbXBsKHZtKTsKKyNlbmRpZgorICAgIH0K
KwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBWTV9oCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJWTUVudHJ5U2NvcGUuaCIKIAog
I2luY2x1ZGUgIkRlYnVnZ2VyLmgiCisjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZN
LmgiCiAjaW5jbHVkZSA8d3RmL1N0YWNrQm91bmRzLmg+CiAKQEAgLTM0LDEyICszNSwxMCBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogVk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIDogbV92bSh2bSkKLSAgICAsIG1fc3RhY2so
d3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkpCiAgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmpl
Y3QpCi0gICAgLCBtX3ByZXYodm0uZW50cnlTY29wZSkKLSAgICAsIG1fcHJldlN0YWNrTGltaXQo
dm0uc3RhY2tMaW1pdCgpKQogICAgICwgbV9yZWNvbXBpbGF0aW9uTmVlZGVkKGZhbHNlKQogewor
ICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsK
ICAgICBpZiAoIXZtLmVudHJ5U2NvcGUpIHsKICNpZiBFTkFCTEUoQVNTRU1CTEVSKQogICAgICAg
ICBpZiAoRXhlY3V0YWJsZUFsbG9jYXRvcjo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpKQpAQCAtNTEs
MTcgKzUwLDI0IEBAIFZNRW50cnlTY29wZTo6Vk1FbnRyeVNjb3BlKFZNJiB2bSwgSlNHbG8KICAg
ICAgICAgLy8gb2JzZXJ2ZSB0aW1lIHhvbmUgY2hhbmdlcy4KICAgICAgICAgdm0ucmVzZXREYXRl
Q2FjaGUoKTsKICAgICB9Ci0gICAgLy8gQ2xlYXIgdGhlIGV4Y2VwdGlvbiBzdGFjayBiZXR3ZWVu
IGVudHJpZXMKLSAgICB2bS5jbGVhckV4Y2VwdGlvblN0YWNrKCk7CiAKLSAgICB2b2lkKiBsaW1p
dCA9IG1fc3RhY2sucmVjdXJzaW9uTGltaXQocmVxdWlyZWRDYXBhY2l0eSgpKTsKLSAgICB2bS5z
ZXRTdGFja0xpbWl0KGxpbWl0KTsKKyAgICBpZiAoIXZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSkg
eworICAgICAgICB2bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSB0aGlzOworICAgICAgICBtX3Nh
dmVkUmVzZXJ2ZWRab25lU2l6ZSA9IHZtLnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25l
U2l6ZShPcHRpb25zOjpyZXNlcnZlZFpvbmVTaXplKCkpOworICAgIH0KKworICAgIC8vIENsZWFy
IHRoZSBjYXB0dXJlZCBleGNlcHRpb24gc3RhY2sgYmV0d2VlbiBlbnRyaWVzCisgICAgdm0uY2xl
YXJFeGNlcHRpb25TdGFjaygpOwogfQogCiBWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUoKQog
ewotICAgIG1fdm0uZW50cnlTY29wZSA9IG1fcHJldjsKLSAgICBtX3ZtLnNldFN0YWNrTGltaXQo
bV9wcmV2U3RhY2tMaW1pdCk7CisgICAgaWYgKG1fdm0uZW50cnlTY29wZSA9PSB0aGlzKQorICAg
ICAgICBtX3ZtLmVudHJ5U2NvcGUgPSBudWxscHRyOworICAgIGlmIChtX3ZtLnN0YWNrUG9pbnRl
ckF0Vk1FbnRyeSA9PSB0aGlzKSB7CisgICAgICAgIG1fdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5
ID0gbnVsbHB0cjsKKyAgICAgICAgbV92bS51cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9u
ZVNpemUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOworICAgIH0KIAogICAgIGlmIChtX3JlY29t
cGlsYXRpb25OZWVkZWQpIHsKICAgICAgICAgaWYgKG1fdm0uZW50cnlTY29wZSkKQEAgLTczLDIz
ICs3OSw0IEBAIFZNRW50cnlTY29wZTo6flZNRW50cnlTY29wZSgpCiAgICAgfQogfQogCi1zaXpl
X3QgVk1FbnRyeVNjb3BlOjpyZXF1aXJlZENhcGFjaXR5KCkgY29uc3QKLXsKLSAgICBJbnRlcnBy
ZXRlciogaW50ZXJwcmV0ZXIgPSBtX3ZtLmludGVycHJldGVyOwotCi0gICAgLy8gV2UgcmVxdWly
ZSBhIHNtYWxsZXIgc3RhY2sgYnVkZ2V0IGZvciB0aGUgZXJyb3Igc3RhY2suIFRoaXMgaXMgdG8g
YWxsb3cKLSAgICAvLyBzb21lIG1pbmltYWwgSlMgZXhlY3V0aW9uIHRvIHByb2NlZWQgYW5kIGRv
IHRoZSB3b3JrIG9mIHRocm93aW5nIGEgc3RhY2sKLSAgICAvLyBvdmVyZmxvdyBlcnJvciBpZiBu
ZWVkZWQuIEluIGNvbnRyYXN0LCBhcmJpdHJhcnkgSlMgY29kZSB3aWxsIHJlcXVpcmUgdGhlCi0g
ICAgLy8gbW9yZSBnZW5lcm91cyBzdGFjayBidWRnZXQgaW4gb3JkZXIgdG8gcHJvY2VlZC4KLSAg
ICAvLwotICAgIC8vIFRoZXNlIHNpemVzIHdlcmUgZGVyaXZlZCBmcm9tIHRoZSBzdGFjayB1c2Fn
ZSBvZiBhIG51bWJlciBvZiBzaXRlcyB3aGVuCi0gICAgLy8gbGF5b3V0IG9jY3VycyB3aGVuIHdl
J3ZlIGFscmVhZHkgY29uc3VtZWQgbW9zdCBvZiB0aGUgQyBzdGFjay4KLSAgICBjb25zdCBzaXpl
X3QgcmVxdWlyZWRTdGFjayA9IDEyOCAqIEtCOwotICAgIGNvbnN0IHNpemVfdCBlcnJvck1vZGVS
ZXF1aXJlZFN0YWNrID0gNjQgKiBLQjsKLQotICAgIHNpemVfdCByZXF1aXJlZENhcGFjaXR5ID0g
aW50ZXJwcmV0ZXItPmlzSW5FcnJvckhhbmRsaW5nTW9kZSgpID8gZXJyb3JNb2RlUmVxdWlyZWRT
dGFjayA6IHJlcXVpcmVkU3RhY2s7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9zdGFjay5zaXplKCkg
Pj0gcmVxdWlyZWRDYXBhY2l0eSk7Ci0gICAgcmV0dXJuIHJlcXVpcmVkQ2FwYWNpdHk7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk1FbnRyeVNjb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk1FbnRyeVNjb3BlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSwxNiArNDUsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVjb21waWxhdGlvbk5lZWRlZChib29sIHJlY29tcGls
ZU5lZWRlZCkgeyBtX3JlY29tcGlsYXRpb25OZWVkZWQgPSByZWNvbXBpbGVOZWVkZWQ7IH0KIAog
cHJpdmF0ZToKLSAgICBzaXplX3QgcmVxdWlyZWRDYXBhY2l0eSgpIGNvbnN0OwotCiAgICAgVk0m
IG1fdm07CiAgICAgU3RhY2tTdGF0czo6Q2hlY2tQb2ludCBtX3N0YWNrQ2hlY2tQb2ludDsKLSAg
ICBTdGFja0JvdW5kcyBtX3N0YWNrOwogICAgIEpTR2xvYmFsT2JqZWN0KiBtX2dsb2JhbE9iamVj
dDsKLQotICAgIC8vIG1fcHJldiBhbmQgbV9wcmV2U3RhY2tMaW1pdCBtYXkgYmVsb25nIHRvIGEg
ZGlmZmVyZW50IHRocmVhZCdzIHN0YWNrLgotICAgIFZNRW50cnlTY29wZSogbV9wcmV2OwotICAg
IHZvaWQqIG1fcHJldlN0YWNrTGltaXQ7CisgICAgc2l6ZV90IG1fc2F2ZWRSZXNlcnZlZFpvbmVT
aXplOwogICAgIGJvb2wgbV9yZWNvbXBpbGF0aW9uTmVlZGVkOwogfTsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3Zl
cnkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9h
ZGQtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVy
eS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28oYSkgewor
ICAgIHJldHVybiBhLmYgKyAyMDAwMDAwMDAwOworfQorCitub0lubGluZShmb28pOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7Zjox
fSk7CisgICAgaWYgKHJlc3VsdCAhPSAyMDAwMDAwMDAxKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oe2Y6MjAwMDAw
MDAwMH0pOworaWYgKHJlc3VsdCAhPSA0MDAwMDAwMDAwKQorICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvYWRkLWludDUyLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWludDUyLWNvbnN0YW50
LW92ZXJmbG93LXJlY292ZXJ5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKGEpIHsKKyAgICBy
ZXR1cm4gYSAqIDIwOTcxNDQgKyAxMDczNzQ1OTIwOworfQorCitub0lubGluZShmb28pOworCitm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygx
MDczNzM2MzgzKTsKKyAgICBpZiAocmVzdWx0ICE9IDIyNTE3ODA4ODY5MzYwNzIpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9
IGZvbygxMDczNzQ1OTE5KTsKK2lmIChyZXN1bHQgIT0gMjI1MTgwMDg4NTMwMTI1NikKKyAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1sYXJnZS1jb25zdGFudC1vdmVyZmxvdy1y
ZWNvdmVyeS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2FkZC1pbnQ1Mi1sYXJnZS1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWludDUyLWxh
cmdlLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgcmV0dXJuIGEgKiAyMDk3MTQ0ICsgMTAw
MDAwMDAwMDA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDEwNzM3NDExNTEpOworICAgIGlmIChy
ZXN1bHQgIT0gMjI1MTc5OTgxMjM3Mjc0NCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKDEwNzM3NDExNTIpOworaWYg
KHJlc3VsdCAhPSAyMjUxNzk5ODE0NDY5ODg4KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3Vs
dDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
YWRkLW92ZXJmbG93LXJlY292ZXJ5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvYWRkLW92ZXJmbG93LXJlY292ZXJ5LmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtb3ZlcmZsb3ctcmVjb3Zl
cnkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKGEsIGIp
IHsKKyAgICByZXR1cm4gYS5mICsgYi5mOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7ZjoxfSwg
e2Y6Mn0pOworICAgIGlmIChyZXN1bHQgIT0gMykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKHtmOjIwMDAwMDAwMDB9
LCB7ZjoyMDAwMDAwMDAwfSk7CitpZiAocmVzdWx0ICE9IDQwMDAwMDAwMDApCisgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9hZGQtc21hbGwtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtc21h
bGwtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1zbWFsbC1jb25zdGFudC1vdmVyZmxvdy1y
ZWNvdmVyeS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28o
YSkgeworICAgIHJldHVybiBhLmYgKyAxMDAwOworfQorCitub0lubGluZShmb28pOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7Zjox
fSk7CisgICAgaWYgKHJlc3VsdCAhPSAxMDAxKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oe2Y6MjE0NzQ4MzE0OH0p
OworaWYgKHJlc3VsdCAhPSAyMTQ3NDg0MTQ4KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3Vs
dDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
YXJyYXktcHVzaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2FycmF5LXB1c2guanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2FycmF5LXB1c2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
OCBAQAorZnVuY3Rpb24gZm9vKCkgeworICAgIHZhciBhcnJheSA9IFtdOworICAgIHZhciByZXN1
bHQgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQyOyArK2kpCisgICAgICAgIHJlc3Vs
dC5wdXNoKGFycmF5LnB1c2goNyAtIGkpKTsKKyAgICByZXR1cm4gW2FycmF5LCByZXN1bHRdOwor
fQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7
CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChyZXN1bHRbMF0udG9TdHJpbmcoKSAh
PSAiNyw2LDUsNCwzLDIsMSwwLC0xLC0yLC0zLC00LC01LC02LC03LC04LC05LC0xMCwtMTEsLTEy
LC0xMywtMTQsLTE1LC0xNiwtMTcsLTE4LC0xOSwtMjAsLTIxLC0yMiwtMjMsLTI0LC0yNSwtMjYs
LTI3LC0yOCwtMjksLTMwLC0zMSwtMzIsLTMzLC0zNCIpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIGFycmF5OiAiICsgcmVzdWx0WzBdOworICAgIGlmIChyZXN1bHRbMV0udG9TdHJpbmcoKSAh
PSAiMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEs
MjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAs
NDEsNDIiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBhcnJheTogIiArIHJlc3VsdFsxXTsK
K30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9lbXB0eS1mdW5j
dGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2VtcHR5LWZ1bmN0aW9uLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9lbXB0eS1mdW5jdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEwIEBACitmdW5jdGlvbiBmb28oKSB7IH0KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oKTsKKyAgICBp
ZiAocmVzdWx0ICE9PSB2b2lkIDApCisgICAgICAgIHRocm93ICJZb3UgYnJva2UgSlNDIHNvIGhh
cmQgdGhhdCBldmVuIHRoZSBlbXB0eSBmdW5jdGlvbiBkb2Vzbid0IHdvcms6ICIgKyByZXN1bHQ7
Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRl
ci1pbnQzMi10by1kb3VibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDMyLXRvLWRvdWJsZS5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQzMi10
by1kb3VibGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9v
KHgsIG8pIHsKKyAgICByZXR1cm4gby5mICsgeDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oNDIu
NSwge2Y6NX0pOworICAgIGlmIChyZXN1bHQgIT0gNDcuNSkKKyAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKCI0MiIsIHtm
OjV9KTsKK2lmIChyZXN1bHQgIT0gIjU0MiIpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9l
eGl0LWFmdGVyLWludDUyLXRvLWRvdWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8tZG91YmxlLmpzCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVy
LWludDUyLXRvLWRvdWJsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitmdW5j
dGlvbiBmb28oYSwgYiwgYykgeworICAgIHJldHVybiBhLmYgKyBiLmYgKyBjLmY7Cit9CisKK25v
SW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2
YXIgcmVzdWx0ID0gZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSwge2Y6MC41fSk7
CisgICAgaWYgKHJlc3VsdCAhPSA0MDAwMDAwMDAwLjUpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyh7ZjoyMDAwMDAw
MDAwfSwge2Y6MjAwMDAwMDAwMH0sIHtmOiI0MiJ9KTsKK2lmIChyZXN1bHQgIT0gIjQwMDAwMDAw
MDA0MiIpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8t
dmFsdWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyhhLCBiLCBjKSB7Cisg
ICAgYy5mLmYgPSBhLmYgKyBiLmY7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciBjb3VudGVy
ID0gMDsKK2Z1bmN0aW9uIG1ha2VXZWlyZE9iamVjdCgpIHsKKyAgICB2YXIgcmVzdWx0ID0ge307
CisgICAgcmVzdWx0WyJibGFoIiArIChjb3VudGVyKyspXSA9IDQyOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgbyA9
IG1ha2VXZWlyZE9iamVjdCgpOworICAgIGZvbyh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAwMDAwMDAw
MH0sIHtmOm99KTsKKyAgICBpZiAoby5mICE9IDQwMDAwMDAwMDApCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHRoaW5neTsKK051bWJlci5w
cm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKHZhbHVlKSB7IHRoaW5neSA9
IHZhbHVlOyB9KTsKK2Zvbyh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAwMDAwMDAwMH0sIHtmOjQyfSk7
CitpZiAodGhpbmd5ICE9IDQwMDAwMDAwMDApCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
OiAiICsgdGhpbmd5OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9l
eGl0LWFmdGVyLWxsdm0tZm9sZHMtbGFyZ2UtaW50LWNvbnN0YW50LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1sbHZtLWZvbGRz
LWxhcmdlLWludC1jb25zdGFudC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1sbHZtLWZvbGRzLWxhcmdlLWludC1jb25zdGFu
dC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiBmb28obywgaW8p
IHsKKyAgICB2YXIgaSA9IGlvLmY7CisgICAgaWYgKGkgIT0gOTIxNjApCisgICAgICAgIG8uZyA9
IDQyOworICAgIHJldHVybiBvLmYuZiArIGk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOntm
OjQyfX0sIHtmOjkyMTYwfSk7CisgICAgaWYgKHJlc3VsdCAhPSA5MjIwMikKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9v
KHtmOntnOjIwLCBmOjIxfX0sIHtmOjkyMTYwfSk7CitpZiAocmVzdWx0ICE9IDkyMTgxKQorICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1mcm9tLWZ0bC13aXRoLWFyaXR5LWNoZWNrLWZh
aWwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9l
eGl0LWZyb20tZnRsLXdpdGgtYXJpdHktY2hlY2stZmFpbC5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1mcm9tLWZ0bC13aXRoLWFyaXR5
LWNoZWNrLWZhaWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rpb24g
Zm9vKG8sIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGopIHsKKyAgICByZXR1cm4gby5mOwor
fQorCitmdW5jdGlvbiBiYXIobykgeworICAgIHJldHVybiBmb28obyk7Cit9CisKK25vSW5saW5l
KGZvbyk7Citub0lubGluZShiYXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytp
KQorICAgIGJhcih7Zjo0Mn0pOworCit2YXIgcmVzdWx0ID0gYmFyKHtnOjI0LCBmOjQzfSk7Citp
ZiAocmVzdWx0ICE9IDQzKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhj
b3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9m
dGwtYXJpdGhjb3MuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2Z0bC1hcml0aGNvcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBA
CitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBNYXRoLmNvcyh4KTsKK30KKworbm9Jbmxp
bmUoZm9vKTsKKwordmFyIGogPSAwOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkK
KyAgICBqID0gZm9vKGkpOworCitpZiAoLTAuNTA5ODc1MzcyNDE3OTAwOSAhPSBqKXsKKyAgICB0
aHJvdyAiRXJyb3IiCit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2Z0bC1hcml0aHNpbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2Z0bC1hcml0aHNpbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc2luLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIE1hdGguc2luKHgpOwor
fQorCitub0lubGluZShmb28pOworCit2YXIgaiA9IDA7Citmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKQorICAgIGogPSBmb28oaSk7CisKK2lmICgwLjg2MDI0ODI4MDc4OTc0MiAhPSBq
KXsKKyAgICB0aHJvdyAiRXJyb3IiCit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhzcXJ0LmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhzcXJ0LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIE1h
dGguc3FydCh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFyIGogPSAwOworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICBqID0gZm9vKGkpOworCitpZiAoIDMxNi4yMjYx
ODQ4NzQwNTUgIT0gail7CisgICAgdGhyb3cgIkVycm9yIgorfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlkLmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACisKK09iamVjdC5wcm90b3R5cGUuX19kZWZp
bmVTZXR0ZXJfXygiciIsIGZ1bmN0aW9uKHZhbCl7IG8gPSB2YWwgfSkKKworZnVuY3Rpb24gZm9v
KHgpeworICAgIHZhciBuID0geyB9CisgICAgbi5yID0geDsKK30KKworbm9JbmxpbmUoZm9vKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICBmb28oaSk7CisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWRkaXJlY3QuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0
YnlpZGRpcmVjdC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZnRsLXB1dGJ5aWRkaXJlY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MiBAQAorZnVuY3Rpb24gZm9vKHgpeworICAgIHJldHVybiB7IDAgOiAxICwgYSA6IHggfQorfQor
Citub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAg
IG8gPSBmb28oaSk7CisKK2lmIChvLmEgIT0gOTk5OTkgfHwgb1swXSAhPSAxKQorICAgIHRocm93
ICJFcnJvciIKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktaWQtdGhyb3ctZnJvbS1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJv
dy1mcm9tLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS1n
ZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDM3IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvLmYgKyAxOworfQorCitub0lu
bGluZShmb28pOworCit2YXIgc2hvdWxkVGhyb3cgPSBmYWxzZTsKKworZnVuY3Rpb24gbWFrZVdp
dGhHZXR0ZXIoKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBvLl9fZGVmaW5lR2V0dGVyX18oImYi
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHNob3VsZFRocm93KQorICAgICAgICAgICAgdGhy
b3cgImhlbGxvIjsKKyAgICAgICAgcmV0dXJuIDQyOworICAgIH0pOworICAgIHJldHVybiBvOwor
fQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9
IGZvbyh7ZjoyM30pOworICAgIGlmIChyZXN1bHQgIT0gMjQpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28obWFrZVdpdGhHZXR0
ZXIoKSk7CisgICAgaWYgKHJlc3VsdCAhPSA0MykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIHNob3Vs
ZFRocm93ID0gdHJ1ZTsKKyAgICBmb28obWFrZVdpdGhHZXR0ZXIoKSk7Cit9IGNhdGNoIChlKSB7
CisgICAgZGlkVGhyb3cgPSBlOworfQorCitpZiAoZGlkVGhyb3cgIT0gImhlbGxvIikKKyAgICB0
aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBk
aWRUaHJvdzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5
LWlkLXRocm93LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS10
aGF0LWRvZXMtbm90LWV4aXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVjdGVkLWdldHRlci10aHJv
dWdoLW9wdGltaXplZC1jb2RlLXRoYXQtZG9lcy1ub3QtZXhpdC5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20t
dW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS10aGF0LWRvZXMtbm90LWV4
aXQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorZnVuY3Rpb24gZm9vKG8pIHsK
KyAgICByZXR1cm4gby5mOworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiBtYWtlV2l0
aEdldHRlcigpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8uX19kZWZpbmVHZXR0ZXJfXygiZiIs
IGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyAiaGVsbG8iOworICAgIH0pOworICAgIHJldHVy
biBvOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJl
c3VsdCA9IGZvbyh7ZjoyM30pOworICAgIGlmIChyZXN1bHQgIT0gMjMpCisgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28oe2c6MTIs
IGY6MTN9KTsKKyAgICBpZiAocmVzdWx0ICE9IDEzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gZm9vKHtnOjEyLCBoOjEzLCBmOjE0
fSk7CisgICAgaWYgKHJlc3VsdCAhPSAxNCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIGZvbyhtYWtl
V2l0aEdldHRlcigpKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lm
IChkaWRUaHJvdyAhPSAiaGVsbG8iKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9y
IHRocmV3IHdyb25nIGV4Y2VwdGlvbjogIiArIGRpZFRocm93OwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVjdGVkLWdl
dHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tdW5leHBlY3RlZC1n
ZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tdW5leHBlY3Rl
ZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDM1IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvLmYgKyAxOworfQorCitu
b0lubGluZShmb28pOworCitmdW5jdGlvbiBtYWtlV2l0aEdldHRlcigpIHsKKyAgICB2YXIgbyA9
IHt9OworICAgIG8uX19kZWZpbmVHZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKCkgeworICAgICAgICB0
aHJvdyAiaGVsbG8iOworICAgIH0pOworICAgIHJldHVybiBvOworfQorCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7ZjoyM30pOworICAg
IGlmIChyZXN1bHQgIT0gMjQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28oe2c6MTIsIGY6MTN9KTsKKyAgICBpZiAocmVzdWx0
ICE9IDE0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cisg
ICAgcmVzdWx0ID0gZm9vKHtnOjEyLCBoOjEzLCBmOjE0fSk7CisgICAgaWYgKHJlc3VsdCAhPSAx
NSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2
YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIGZvbyhtYWtlV2l0aEdldHRlcigpKTsKK30gY2F0Y2gg
KGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAhPSAiaGVsbG8iKQor
ICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4Y2VwdGlvbjog
IiArIGRpZFRocm93OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9p
Yy10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaWMtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29k
ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
aWMtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDI5IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvLmYgKyAxOworfQorCitO
dW1iZXIucHJvdG90eXBlLmYgPSA0MjsKKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oMjMpOworICAgIGlm
IChyZXN1bHQgIT0gNDMpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKKyAgICByZXN1bHQgPSBmb28oe2Y6MjV9KTsKKyAgICBpZiAocmVzdWx0ICE9IDI2KQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0
ID0gZm9vKHtnOjEyLCBmOjEzfSk7CisgICAgaWYgKHJlc3VsdCAhPSAxNCkKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgZGlkVGhyb3c7Cit0
cnkgeworICAgIGZvbyh2b2lkIDApOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsK
K30KKworaWYgKCFkaWRUaHJvdyB8fCBkaWRUaHJvdy50b1N0cmluZygpLmluZGV4T2YoIlR5cGVF
cnJvcjoiKSAhPSAwKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdy
b25nIGV4Y2VwdGlvbjogIiArIGRpZFRocm93OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLWFuZC1jYWxsLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFyYXJn
cy1hbmQtY2FsbC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFyYXJncy1hbmQtY2FsbC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiBmb28oYSwgYikgeworICAgIHJldHVybiBiYXIoYSwg
Yik7Cit9CisKK2Z1bmN0aW9uIGJhcihhLCBiKSB7CisgICAgdmFyIHggPSBiYXouYXBwbHkobnVs
bCwgYXJndW1lbnRzKTsKKyAgICB2YXIgeSA9IGJheihhLCBiKQorICAgIHJldHVybiB4ICsgeSAq
IDM7Cit9CisKK2Z1bmN0aW9uIGJheihhLCBiKSB7CisgICAgcmV0dXJuIGEgKyBiICogMjsKK30K
Kworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgewor
ICAgIHZhciByZXN1bHQgPSBmb28oNywgMTEpOworICAgIGlmIChyZXN1bHQgIT0gMTE2KQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1
bHQgPSBmb28oNSwgMjE0NzQ4MzY0Nik7CitpZiAocmVzdWx0ICE9IDE3MTc5ODY5MTg4KQorICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFyYXJncy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFy
Z3MuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2lubGluZS1jYWxsLXZhcmFyZ3MuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAor
ZnVuY3Rpb24gZm9vKGEsIGIpIHsKKyAgICByZXR1cm4gYmFyKGEsIGIpOworfQorCitmdW5jdGlv
biBiYXIoYSwgYikgeworICAgIHJldHVybiBiYXouYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKK30K
KworZnVuY3Rpb24gYmF6KGEsIGIpIHsKKyAgICByZXR1cm4gYSArIGIgKiAyOworfQorCitub0lu
bGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFy
IHJlc3VsdCA9IGZvbyg3LCAxMSk7CisgICAgaWYgKHJlc3VsdCAhPSAyOSkKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9v
KDUsIDIxNDc0ODM2NDYpOworaWYgKHJlc3VsdCAhPSA0Mjk0OTY3Mjk3KQorICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNsb3N1cmUtY2FsbC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jbG9zdXJlLWNhbGwuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1j
bG9zdXJlLWNhbGwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24g
Zm9vKHgpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oeSkgeyByZXR1cm4geCArIHk7IH0KK30KKwor
ZnVuY3Rpb24gYmFyKGEsIGIpIHsKKyAgICByZXR1cm4gZm9vKGEpKGIpOworfQorCitub0lubGlu
ZShmb28pOworbm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsr
aSkgeworICAgIHZhciByZXN1bHQgPSBiYXIoaSwgaSArIDEpOworICAgIGlmIChyZXN1bHQgIT0g
aSAqIDIgKyAxKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgZm9yICIgKyBpICsg
IjogIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1hbmQtb3V0LW9mLWJvdW5kcy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtaW4t
YW5kLW91dC1vZi1ib3VuZHMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtaW4tYW5kLW91dC1vZi1ib3VuZHMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rpb24gZm9vKGEpIHsKKyAgICBh
WzQyXSA9IDk1MDEwOworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiB0ZXN0KGxlbmd0
aCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgYSA9IG5ldyBJbnQxNkFycmF5KGxlbmd0aCk7CisgICAg
Zm9vKGEpOworICAgIHZhciByZXN1bHQgPSBhWzQyXTsKKyAgICBpZiAocmVzdWx0ICE9IGV4cGVj
dGVkKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCB2YWx1ZSBhdCBhWzQyXTogIiArIHJlc3Vs
dDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMTAs
IHZvaWQgMCk7CisgICAgdGVzdCgxMDAsIDI5NDc0KTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1ib3VuZHMtdGhlbi1leGl0
LW91dC1vZi1ib3VuZHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWJvdW5kcy10aGVuLWV4aXQtb3V0LW9mLWJv
dW5kcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1ib3VuZHMtdGhlbi1leGl0LW91dC1vZi1ib3VuZHMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gZm9vKGEpIHsKKyAgICBh
WzQyXSA9IDk1MDEwOworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiB0ZXN0KGxlbmd0
aCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgYSA9IG5ldyBJbnQxNkFycmF5KGxlbmd0aCk7CisgICAg
Zm9vKGEpOworICAgIHZhciByZXN1bHQgPSBhWzQyXTsKKyAgICBpZiAocmVzdWx0ICE9IGV4cGVj
dGVkKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCB2YWx1ZSBhdCBhWzQyXTogIiArIHJlc3Vs
dDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICB0ZXN0KDEwMCwg
Mjk0NzQpOworCit0ZXN0KDEwLCB2b2lkIDApOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0LW9mLWJvdW5kcy1ib3VuZHMtdGhl
bi1kby1pbi1ib3VuZHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLW91dC1vZi1ib3VuZHMtYm91bmRzLXRoZW4tZG8t
aW4tYm91bmRzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLW91dC1vZi1ib3VuZHMtYm91bmRzLXRoZW4tZG8taW4t
Ym91bmRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIGZvbyhh
KSB7CisgICAgYVs0Ml0gPSA5NTAxMDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24g
dGVzdChsZW5ndGgsIGV4cGVjdGVkKSB7CisgICAgdmFyIGEgPSBuZXcgSW50MTZBcnJheShsZW5n
dGgpOworICAgIGZvbyhhKTsKKyAgICB2YXIgcmVzdWx0ID0gYVs0Ml07CisgICAgaWYgKHJlc3Vs
dCAhPSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgdmFsdWUgYXQgYVs0Ml06
ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAg
dGVzdCgxMCwgdm9pZCAwKTsKKwordGVzdCgxMDAsIDI5NDc0KTsKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnZhbGlkYXRpb24tcG9pbnQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnZhbGlkYXRpb24tcG9p
bnQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2ludmFsaWRhdGlvbi1wb2ludC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI0IEBACitm
dW5jdGlvbiBmb28obywgcCkgeworICAgIHBvc3NpYmx5RG9CYWRUaGluZ3MocCk7CisgICAgcmV0
dXJuIG8uZigpOworfQorbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gVGhpbmd5KCkgeyB9CitU
aGluZ3kucHJvdG90eXBlLmYgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDQyOyB9CisKK2Z1bmN0aW9u
IHBvc3NpYmx5RG9CYWRUaGluZ3MocCkgeworICAgIGlmIChwKQorICAgICAgICBUaGluZ3kucHJv
dG90eXBlLmYgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDI0OyB9Cit9Citub0lubGluZShwb3NzaWJs
eURvQmFkVGhpbmdzKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAg
IHZhciByZXN1bHQgPSBmb28obmV3IFRoaW5neSgpLCBmYWxzZSk7CisgICAgaWYgKHJlc3VsdCAh
PSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQor
Cit2YXIgcmVzdWx0ID0gZm9vKG5ldyBUaGluZ3koKSwgdHJ1ZSk7CitpZiAocmVzdWx0ICE9IDI0
KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTIuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYWtlLXJvcGUtMi5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3Bl
LTIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gZm9vKHgpIHsK
KyAgICByZXR1cm4gImhlbGxvIiArIHg7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKCIgd29ybGQi
KTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmli
ZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgdHlwZTogIiArIHJl
c3VsdDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8gd29ybGQiKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTMuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYWtlLXJvcGUtMy5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAg
ICByZXR1cm4gImhlbGxvIiArIHggKyAiISEiOworfQorCitub0lubGluZShmb28pOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygiIHdv
cmxkIik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVz
Y3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IHR5cGU6ICIg
KyByZXN1bHQ7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIHdvcmxkISEiKQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXN0b3JhZ2UtYXJyYXkt
d2l0aC1zaXplLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbmV3LWFycmF5LXN0b3JhZ2UtYXJyYXktd2l0aC1zaXplLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktc3RvcmFnZS1h
cnJheS13aXRoLXNpemUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorZnVuY3Rp
b24gZm9vKHgpIHsKKyAgICByZXR1cm4gbmV3IEFycmF5KHgpOworfQorCitub0lubGluZShmb28p
OworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHNpemUpOwor
ICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgc2F3VGhpbmdzID0gZmFsc2U7CisgICAgZm9y
ICh2YXIgcyBpbiByZXN1bHQpCisgICAgICAgIHNhd1RoaW5ncyA9IHRydWU7CisgICAgaWYgKHNh
d1RoaW5ncykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiBiYWQgc3RhdGU6ICIg
KyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gIjQyLjUiOworICAgIGlmIChyZXN1bHRbMF0gIT0g
IjQyLjUiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIHdpZXJkIHN0YXRlOiAi
ICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAg
dGVzdCgxMDAwMDAwKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvbmV3LWFycmF5LXdpdGgtc2l6ZS13aXRoLWJhZC10aW1lLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXdpdGgtc2l6ZS13aXRo
LWJhZC10aW1lLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9uZXctYXJyYXktd2l0aC1zaXplLXdpdGgtYmFkLXRpbWUuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwzNCBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gbmV3IEFy
cmF5KHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgcG9rZTsKK0FycmF5LnByb3RvdHlw
ZS5fX2RlZmluZVNldHRlcl9fKCIxIiwgZnVuY3Rpb24oKSB7CisgICAgcG9rZSA9ICJwb2tlIjsK
K30pOworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHNpemUp
OworICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgc2F3VGhpbmdzID0gZmFsc2U7CisgICAg
Zm9yICh2YXIgcyBpbiByZXN1bHQpIHsKKyAgICAgICAgaWYgKHMgIT0gIjEiKQorICAgICAgICAg
ICAgc2F3VGhpbmdzID0gdHJ1ZTsKKyAgICB9CisgICAgaWYgKHNhd1RoaW5ncykKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gIjQyLjUiOworICAgIGlmIChyZXN1bHRbMF0gIT0gIjQyLjUiKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIHdpZXJkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIHBv
a2UgPSBudWxsOworICAgIHJlc3VsdFsxXSA9IDQyOworICAgIGlmIChwb2tlICE9ICJwb2tlIikK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBzZXR0ZXIgbm90IGNhbGxlZC4iOworfQorCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdGVzdCg0Mik7Cit9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1jb250aWd1b3VzLWFycmF5LXdpdGgt
c2l6ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L25ldy1jb250aWd1b3VzLWFycmF5LXdpdGgtc2l6ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWNvbnRpZ3VvdXMtYXJyYXktd2l0aC1z
aXplLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7
CisgICAgcmV0dXJuIG5ldyBBcnJheSh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rp
b24gdGVzdChzaXplKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVz
dWx0Lmxlbmd0aCAhPSBzaXplKSB7CisgICAgICAgIHByaW50KCJHb3QgYSB3ZWlyZCBsZW5ndGg6
ICIgKyByZXN1bHQubGVuZ3RoKTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworICAgIH0KKyAgICB2YXIgc2F3VGhpbmdzID0gZmFsc2U7CisgICAgZm9yICh2
YXIgcyBpbiByZXN1bHQpCisgICAgICAgIHNhd1RoaW5ncyA9IHRydWU7CisgICAgaWYgKHNhd1Ro
aW5ncykgeworICAgICAgICBwcmludCgiU2F3IHRoaW5ncyEiKTsKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBhcnJheSBpcyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7CisgICAgfQorICAgIHJlc3Vs
dFswXSA9ICI0Mi41IjsKKyAgICBpZiAocmVzdWx0WzBdICE9ICI0Mi41IikgeworICAgICAgICBw
cmludCgiRGlkbid0IHN0b3JlIHdoYXQgSSB0aG91Z2h0IEkgc3RvcmVkLiIpOworICAgICAgICB0
aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIHdpZXJkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIH0K
K30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMCk7Cisg
ICAgdGVzdCgxKTsKKyAgICB0ZXN0KDQyKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvbmV3LWRvdWJsZS1hcnJheS13aXRoLXNpemUuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctZG91YmxlLWFycmF5LXdp
dGgtc2l6ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbmV3LWRvdWJsZS1hcnJheS13aXRoLXNpemUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwyNSBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gbmV3IEFycmF5KHgpOwor
fQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVz
dWx0ID0gZm9vKHNpemUpOworICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgc2F3VGhpbmdz
ID0gZmFsc2U7CisgICAgZm9yICh2YXIgcyBpbiByZXN1bHQpCisgICAgICAgIHNhd1RoaW5ncyA9
IHRydWU7CisgICAgaWYgKHNhd1RoaW5ncykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBp
cyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gNDIuNTsKKyAgICBp
ZiAocmVzdWx0WzBdICE9IDQyLjUpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4g
d2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3QoMSk7CisgICAgdGVzdCg0Mik7Cit9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1pbnQzMi1hcnJheS13
aXRoLXNpemUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9uZXctaW50MzItYXJyYXktd2l0aC1zaXplLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctaW50MzItYXJyYXktd2l0aC1zaXplLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAg
cmV0dXJuIG5ldyBBcnJheSh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVz
dChzaXplKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVzdWx0Lmxl
bmd0aCAhPSBzaXplKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7CisgICAgdmFyIHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0
KQorICAgICAgICBzYXdUaGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpCisgICAgICAg
IHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IDQyOworICAgIGlmIChyZXN1bHRbMF0gIT0gNDIpCisgICAgICAgIHRocm93ICJF
cnJvcjogYXJyYXkgaXMgaW4gd2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3QoMSk7Cisg
ICAgdGVzdCg0Mik7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L25ldy11bmRlY2lkZWQtYXJyYXktd2l0aC1zaXplLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LXVuZGVjaWRlZC1hcnJheS13aXRoLXNpemUu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25l
dy11bmRlY2lkZWQtYXJyYXktd2l0aC1zaXplLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MjIgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIG5ldyBBcnJheSh4KTsKK30KKwor
bm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChzaXplKSB7CisgICAgdmFyIHJlc3VsdCA9
IGZvbyhzaXplKTsKKyAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSBzaXplKQorICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgdmFyIHNhd1RoaW5ncyA9IGZh
bHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0KQorICAgICAgICBzYXdUaGluZ3MgPSB0cnVl
OworICAgIGlmIChzYXdUaGluZ3MpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4g
YmFkIHN0YXRlOiAiICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdGVzdCgwKTsKKyAgICB0ZXN0KDEpOworICAgIHRlc3QoNDIpOworfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wdXQtYnktaWQtdGhyb3ctdGhy
b3VnaC1vcHRpbWl6ZWQtY29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wdXQt
YnktaWQtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDMzIEBACitmdW5jdGlvbiBmb28obykgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBv
LmYgPSA0MjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDA7ICsraSkgeworICAgIHZhciBvID0ge307CisgICAgZm9vKG8pOworICAgIGlmIChvLmYgIT0g
NDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIG8uZjsKKyAgICBvID0g
e2Y6MjN9OworICAgIGZvbyhvKTsKKyAgICBpZiAoby5mICE9IDQyKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBvLmY7CisgICAgbyA9IHtnOjEyfTsKKyAgICBmb28obyk7
CisgICAgaWYgKG8uZiAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgby5mOworfQorCit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIHZhciBvID0ge307CisgICAg
T2JqZWN0LmZyZWV6ZShvKTsKKyAgICBmb28obyk7Cit9IGNhdGNoIChlKSB7CisgICAgZGlkVGhy
b3cgPSBlOworfQorCitpZiAoIWRpZFRocm93IHx8IGRpZFRocm93LnRvU3RyaW5nKCkuaW5kZXhP
ZigiVHlwZUVycm9yOiIpICE9IDApCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhyb3cgb3Ig
dGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlY3Vyc2UtaW5maW5pdGVseS1vbi1nZXR0ZXIuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWN1cnNlLWlu
ZmluaXRlbHktb24tZ2V0dGVyLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9yZWN1cnNlLWluZmluaXRlbHktb24tZ2V0dGVyLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsK
KyAgICB2YXIgbyA9IHt9OworICAgIG8uX19kZWZpbmVHZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKCkg
eworICAgICAgICByZXR1cm4gby5mOworICAgIH0pOworICAgIHZhciBkaWRUaHJvdzsKKyAgICB2
YXIgcmVzdWx0OworICAgIHJlc3VsdCA9ICJub3Qgc2V0IjsKKyAgICB0cnkgeworICAgICAgICBy
ZXN1bHQgPSBvLmY7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBkaWRUaHJvdyA9IGU7Cisg
ICAgfQorICAgIGlmIChyZXN1bHQgIT0gIm5vdCBzZXQiKQorICAgICAgICB0aHJvdyAiRGlkIHNl
dCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgaWYgKCFkaWRUaHJvdyB8fCBkaWRUaHJvdy50b1N0
cmluZygpLmluZGV4T2YoIlJhbmdlRXJyb3IiKSAhPSAwKQorICAgICAgICB0aHJvdyAiQmFkIGV4
Y2VwdGlvbjogIiArIGRpZFRocm93OworfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3JlcGVhdGVkLWFyaXR5LWNoZWNrLWZhaWwuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZXBlYXRlZC1hcml0eS1jaGVjay1m
YWlsLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9yZXBlYXRlZC1hcml0eS1jaGVjay1mYWlsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
OCBAQAorZnVuY3Rpb24gYmFyKGEsYixjLGQsZSxmLGcsaCxpLGosaykgeworfQorCitub0lubGlu
ZShiYXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDAwOyArK2kpCisgICAgYmFyKCk7
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcnVudGltZS10aHJv
dy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvcnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2Rl
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9y
dW50aW1lLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzMyBAQAorZnVuY3Rpb24gZm9vKGEsIHMpIHsKKyAgICByZXR1cm4gYVtzXSArIDE7
Cit9CisKK3ZhciBzaG91bGRUaHJvdyA9IGZhbHNlOworZnVuY3Rpb24gYmFyKCkgeworICAgIGlm
IChzaG91bGRUaHJvdykKKyAgICAgICAgdGhyb3cgImhlbGxvIjsKKyAgICByZXR1cm4gNDI7Cit9
CisKK3ZhciBhID0ge307CithLl9fZGVmaW5lR2V0dGVyX18oImJhciIsIGJhcik7CisKK25vSW5s
aW5lKGZvbyk7Citub0lubGluZShiYXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhhLCAiYmFyIik7CisgICAgaWYgKHJlc3VsdCAh
PSA0MykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQor
Cit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIHNob3VsZFRocm93ID0gdHJ1ZTsKKyAgICBmb28o
YSwgImJhciIpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30KKworaWYgKGRp
ZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhyb3cgb3IgdGhy
ZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1jYWxsLWlubGluaW5nLWV4YW1w
bGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9z
aW1wbGUtcG9seXZhcmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQt
Y2FsbC1pbmxpbmluZy1leGFtcGxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAK
K2Z1bmN0aW9uIGZvbyhiYXopIHsKKyAgICByZXR1cm4gYmFyKGJheik7Cit9CisKK2Z1bmN0aW9u
IGZ1enooYmF6KSB7CisgICAgcmV0dXJuIGJhcihiYXopOworfQorCitmdW5jdGlvbiBiYXIoYmF6
KSB7CisgICAgcmV0dXJuIGJheigpOworfQorCitmdW5jdGlvbiBiYXoxKCkgeworICAgIHJldHVy
biA0MjsKK30KKworZnVuY3Rpb24gYmF6MigpIHsKKyAgICByZXR1cm4gMjQ7Cit9CisKK25vSW5s
aW5lKGZvbyk7Citub0lubGluZShmdXp6KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7
ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oYmF6MSk7CisgICAgaWYgKHJlc3VsdCAhPSA0
MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZh
ciByZXN1bHQgPSBmdXp6KGJhejIpOworICAgIGlmIChyZXN1bHQgIT0gMjQpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtZ2V0LWJ5LWlkLWlu
bGluaW5nLWV4YW1wbGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtZ2V0LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Np
bXBsZS1wb2x5dmFyaWFudC1nZXQtYnktaWQtaW5saW5pbmctZXhhbXBsZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDI0IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBiYXIo
byk7Cit9CisKK2Z1bmN0aW9uIGZ1enoobykgeworICAgIHJldHVybiBiYXIobyk7Cit9CisKK2Z1
bmN0aW9uIGJhcihvKSB7CisgICAgcmV0dXJuIG8uZjsKK30KKworbm9JbmxpbmUoZm9vKTsKK25v
SW5saW5lKGZ1enopOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAg
dmFyIHJlc3VsdCA9IGZvbyh7Zjo0Mn0pOworICAgIGlmIChyZXN1bHQgIT0gNDIpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgcmVzdWx0ID0g
ZnV6eih7ZzoyMywgZjoyNH0pOworICAgIGlmIChyZXN1bHQgIT0gMjQpCisgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtcHV0LWJ5LWlkLWlubGlu
aW5nLWV4YW1wbGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtcHV0LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbXBs
ZS1wb2x5dmFyaWFudC1wdXQtYnktaWQtaW5saW5pbmctZXhhbXBsZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDI2IEBACitmdW5jdGlvbiBmb28obykgeworICAgIGJhcihvKTsKK30KKwor
ZnVuY3Rpb24gZnV6eihvKSB7CisgICAgYmFyKG8pOworfQorCitmdW5jdGlvbiBiYXIobykgewor
ICAgIG8uZiA9IDQyOworfQorCitub0lubGluZShmb28pOworbm9JbmxpbmUoZnV6eik7CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIGZv
byhvKTsKKyAgICBpZiAoby5mICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQ6ICIgKyBvLmY7CisgICAgbyA9IHtmOjIzfTsKKyAgICB2YXIgcmVzdWx0ID0gZnV6eihvKTsK
KyAgICBpZiAoby5mICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyBvLmY7Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGhy
b3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rocm93LXRo
cm91Z2gtb3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMCBAQAor
ZnVuY3Rpb24gZm9vKGYpIHsKKyAgICByZXR1cm4gZigxKSArIDE7Cit9CisKK3ZhciBzaG91bGRU
aHJvdyA9IGZhbHNlOworZnVuY3Rpb24gYmFyKHgpIHsKKyAgICBpZiAoc2hvdWxkVGhyb3cpCisg
ICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgcmV0dXJuIDQyIC0geDsKK30KKworbm9JbmxpbmUo
Zm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kp
IHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhcik7CisgICAgaWYgKHJlc3VsdCAhPSA0MikKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgZGlk
VGhyb3c7Cit0cnkgeworICAgIHNob3VsZFRocm93ID0gdHJ1ZTsKKyAgICBmb28oYmFyKTsKK30g
Y2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAhPSAiaGVs
bG8iKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4Y2Vw
dGlvbjogIiArIGRpZFRocm93OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy90by1zdHJpbmctb24tb2JqZWN0LW9yLXN0cmluZy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3Qtb3Itc3Ry
aW5nLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy90by1zdHJpbmctb24tb2JqZWN0LW9yLXN0cmluZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDI3IEBACitmdW5jdGlvbiBGb28oKSB7IH0KKworRm9vLnByb3RvdHlwZS50b1N0cmluZyA9
IGZ1bmN0aW9uKCkgeyByZXR1cm4gImhlbGxvIiB9OworCitmdW5jdGlvbiBmb28obykgeworICAg
IHJldHVybiBTdHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBGb28oKSk7Cisg
ICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVz
dWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAg
IH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICAKKyAgICByZXN1bHQgPSBmb28oIndvcmxkIik7Cisg
ICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVz
dWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAg
IH0KKyAgICBpZiAocmVzdWx0ICE9ICJ3b3JsZCIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3QuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1v
YmplY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gRm9vKCkg
eyB9CisKK0Zvby5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgcmV0dXJuICJoZWxs
byIgfTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gU3RyaW5nKG8pOworfQorCitu
b0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAg
dmFyIHJlc3VsdCA9IGZvbyhuZXcgRm9vKCkpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJz
dHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJv
cjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVs
bG8iKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJp
bmctb2JqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vYmplY3QuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb2JqZWN0
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7Cisg
ICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28obmV3IFN0cmluZygi
aGVsbG8iKSk7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAg
ZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBz
dHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0
LXRoZW4tb2JqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0LXRoZW4tb2JqZWN0
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90
by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QtdGhlbi1vYmplY3QuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4g
U3RyaW5nKG8pOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgU3RyaW5nKCJoZWxsbyIpKTsK
KyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShy
ZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7Cisg
ICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIAorICAgIHJlc3VsdCA9IGZvbygid29ybGQiKTsK
KyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShy
ZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7Cisg
ICAgfQorICAgIGlmIChyZXN1bHQgIT0gIndvcmxkIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7IH0KKworRm9vLnBy
b3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gImhlbGxvIiB9OworCit2YXIg
cmVzdWx0ID0gZm9vKG5ldyBGb28oKSk7CitpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikg
eworICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3Qg
YSBzdHJpbmciOworfQoraWYgKHJlc3VsdCAhPSAiaGVsbG8iKQorICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0
cmluZy1vci1zdHJpbmctb2JqZWN0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3Qu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAg
ICByZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgU3RyaW5nKCJo
ZWxsbyIpKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBk
ZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0
cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIAorICAgIHJlc3VsdCA9IGZvbygi
d29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBk
ZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0
cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIndvcmxkIikKKyAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tdmFsdWUtb3Itc3RyaW5nLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9u
LXZhbHVlLW9yLXN0cmluZy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLW9yLXN0cmluZy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDIzIEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBTdHJp
bmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDQyKTsKKyAgICBpZiAodHlwZW9mIHJlc3Vs
dCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJv
dyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQg
IT0gIjQyIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
ICAgIAorICAgIHJlc3VsdCA9IGZvbygid29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAh
PSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAi
RXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0g
IndvcmxkIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24t
dmFsdWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy90by1zdHJpbmctb24tdmFsdWUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBTdHJpbmcobyk7
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kp
IHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDQyKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAi
c3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJy
b3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIjQy
IikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpJbmRl
eDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDEtMjcgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSB0aGUganNDU3RhY2sgYnJhbmNoCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3NjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9CYWdU
b0hhc2hNYXAuaDoKKyAgICAgICAgKFdURjo6dG9IYXNoTWFwKToKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm0uaDoKKyAgICAgICAgKiB3dGYvU3RhY2tCb3VuZHMuaDoKKyAgICAgICAgKFdURjo6U3Rh
Y2tCb3VuZHM6OnJlY3Vyc2lvbkxpbWl0KToKKwogMjAxNC0wMS0yNyAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkNvcmU6IEVuYWJsZSAtV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoIGFuZCBhZGQgRkFMTFRIUk9VR0ggYW5ub3RhdGlvbiB3aGVyZSBuZWVk
ZWQKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0JhZ1RvSGFzaE1hcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL0JhZ1RvSGFzaE1hcC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
V1RGL3d0Zi9CYWdUb0hhc2hNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsOCArMzIsOCBAQAogCiBu
YW1lc3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgRWxlbWVudFR5cGUsIHR5cGVuYW1l
IEtleVR5cGUsIHR5cGVuYW1lIEtleUdldHRlckZ1bmN0b3I+Ci12b2lkIHRvSGFzaE1hcChCYWc8
RWxlbWVudFR5cGU+JiBiYWcsIEtleUdldHRlckZ1bmN0b3ImIGdldEtleSwgSGFzaE1hcDxLZXlU
eXBlLCBFbGVtZW50VHlwZSo+JiByZXN1bHQpCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbGVtZW50VHlw
ZSwgdHlwZW5hbWUgS2V5VHlwZSwgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5R2V0dGVy
RnVuY3Rvcj4KK3ZvaWQgdG9IYXNoTWFwKEJhZzxFbGVtZW50VHlwZT4mIGJhZywgS2V5R2V0dGVy
RnVuY3RvciYgZ2V0S2V5LCBIYXNoTWFwPEtleVR5cGUsIEVsZW1lbnRUeXBlKiwgSGFzaEFyZz4m
IHJlc3VsdCkKIHsKICAgICBmb3IgKHR5cGVuYW1lIEJhZzxFbGVtZW50VHlwZT46Oml0ZXJhdG9y
IGl0ZXIgPSBiYWcuYmVnaW4oKTsgISFpdGVyOyArK2l0ZXIpIHsKICAgICAgICAgRWxlbWVudFR5
cGUqIGVsZW1lbnQgPSAqaXRlcjsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtNjYwLDEyICs2
NjAsMTIgQEAKICNkZWZpbmUgRU5BQkxFX0pJVCAwCiAjZW5kaWYKIAotLyogVGhlIEpJVCBpcyBl
bmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4NiwgeDg2LTY0LCBBUk0gJiBNSVBTIHBsYXRmb3Jt
cyBleGNlcHQgV2luNjQuICovCisvKiBUaGUgSklUIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBh
bGwgeDg2LCB4ODYtNjQsIEFSTSAmIE1JUFMgcGxhdGZvcm1zIGV4Y2VwdCBXaW5kb3dzLiAqLwog
I2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpIFwKICAgICAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTSkgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykpIFwKICAgICAmJiAoT1Mo
REFSV0lOKSB8fCAhQ09NUElMRVIoR0NDKSB8fCBHQ0NfVkVSU0lPTl9BVF9MRUFTVCg0LCAxLCAw
KSkgXAogICAgICYmICFPUyhXSU5DRSkgXAotICAgICYmICEoT1MoV0lORE9XUykgJiYgQ1BVKFg4
Nl82NCkpCisgICAgJiYgIU9TKFdJTkRPV1MpCiAjZGVmaW5lIEVOQUJMRV9KSVQgMQogI2VuZGlm
CiAKQEAgLTgzNSwxNCArODM1LDYgQEAKICNlbmRpZgogI2VuZGlmCiAKLS8qIEZJWE1FOiBXZSBj
dXJyZW50bHkgdW5jb25kaXRpb25hbGx5IHVzZSBzcGVhcmF0ZSBzdGFja3MuIFdoZW4gd2Ugc3dp
dGNoIHRvIHVzaW5nIHRoZQotICAgQyBzdGFjayBmb3IgSlMgZnJhbWVzLCB3ZSdsbCBuZWVkIHRv
IG1ha2UgdGhlIGZvbGxvd2luZyBjb25kaXRpb25hbCBvbiBFTkFCTEUoTExJTlRfQ0xPT1ApCi0g
ICBvbmx5LgotKi8KLSNpZiBFTkFCTEUoTExJTlRfQ0xPT1ApIHx8IDEKLSNkZWZpbmUgV1RGX1VT
RV9TRVBBUkFURV9DX0FORF9KU19TVEFDSyAxCi0jZW5kaWYKLQogLyogUGljayB3aGljaCBhbGxv
Y2F0b3IgdG8gdXNlOyB3ZSBvbmx5IG5lZWQgYW4gZXhlY3V0YWJsZSBhbGxvY2F0b3IgaWYgdGhl
IGFzc2VtYmxlciBpcyBjb21waWxlZCBpbi4KICAgIE9uIHg4Ni02NCB3ZSB1c2UgYSBzaW5nbGUg
Zml4ZWQgbW1hcCwgb24gb3RoZXIgcGxhdGZvcm1zIHdlIG1tYXAgb24gZGVtYW5kLiAqLwogI2lm
IEVOQUJMRShBU1NFTUJMRVIpCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1N0YWNrQm91bmRzLmgJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9XVEYvd3RmL1N0YWNrQm91bmRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDYgKzI3LDggQEAKICNpZm5kZWYgU3RhY2tCb3VuZHNfaAogI2RlZmluZSBTdGFja0JvdW5kc19o
CiAKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBTdGFj
a0JvdW5kcyB7CkBAIC02Nyw2ICs2OSwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxjaGFyKj4obV9ib3VuZCkgLSBtaW5BdmFpbGFibGVEZWx0YTsKICAgICB9CiAKKyAg
ICB2b2lkKiByZWN1cnNpb25MaW1pdChzaXplX3QgaG9zdFpvbmVTaXplLCB2b2lkKiBkZXNpcmVk
TGltaXQpIGNvbnN0CisgICAgeworICAgICAgICBjaGVja0NvbnNpc3RlbmN5KCk7CisgICAgICAg
IGlmIChpc0dyb3dpbmdEb3dud2FyZCgpKSB7CisgICAgICAgICAgICBjaGFyKiBlbmRPZlN0YWNr
V2l0aEhvc3Rab25lID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9ib3VuZCkgKyBob3N0Wm9u
ZVNpemU7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYXgoZGVzaXJlZExpbWl0LCByZWludGVy
cHJldF9jYXN0PHZvaWQqPihlbmRPZlN0YWNrV2l0aEhvc3Rab25lKSk7CisgICAgICAgIH0KKyAg
ICAgICAgY2hhciogZW5kT2ZTdGFja1dpdGhIb3N0Wm9uZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KG1fYm91bmQpIC0gaG9zdFpvbmVTaXplOworICAgICAgICByZXR1cm4gc3RkOjptaW4oZGVz
aXJlZExpbWl0LCByZWludGVycHJldF9jYXN0PHZvaWQqPihlbmRPZlN0YWNrV2l0aEhvc3Rab25l
KSk7CisgICAgfQorCiAgICAgYm9vbCBpc0dyb3dpbmdEb3dud2FyZCgpIGNvbnN0CiAgICAgewog
ICAgICAgICBBU1NFUlQobV9vcmlnaW4gJiYgbV9ib3VuZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMiBAQAorMjAxNC0wMS0yNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJl
cmdAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIHRoZSBqc0NTdGFjayBicmFuY2gKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc2MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAo
T09QUyEpLgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL0NvbnRlbnRT
ZWFyY2hVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3Iv
U2NyaXB0QnJlYWtwb2ludC5oOgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rv
ci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmg6CisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcnVu
dGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaDogQWRkZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hl
YWRlcnMveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5oOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24pOgorCiAyMDE0LTAxLTI3ICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBpT1Mg
YnVpbGQgZml4LiBGQUxMVEhST1VHSHMgZm9yIGlPUy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL0NvbnRl
bnRTZWFyY2hVdGlsaXRpZXMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMiwzICsyLDcgQEAKICNkZWZpbmUgV2ViQ29yZV9GV0RfQ29udGVudFNl
YXJjaFV0aWxpdGllc19oCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29udGVudFNlYXJjaFV0
aWxpdGllcy5oPgogI2VuZGlmCisjaWZuZGVmIFdlYkNvcmVfRldEX0NvbnRlbnRTZWFyY2hVdGls
aXRpZXNfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9Db250ZW50U2VhcmNoVXRpbGl0aWVzX2gKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmg+CisjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHRC
cmVha3BvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvaW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMiwzICsyLDcgQEAKICNkZWZpbmUgV2ViQ29yZV9GV0RfU2Ny
aXB0QnJlYWtwb2ludF9oCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0QnJlYWtwb2lu
dC5oPgogI2VuZGlmCisjaWZuZGVmIFdlYkNvcmVfRldEX1NjcmlwdEJyZWFrcG9pbnRfaAorI2Rl
ZmluZSBXZWJDb3JlX0ZXRF9TY3JpcHRCcmVha3BvaW50X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9TY3JpcHRCcmVha3BvaW50Lmg+CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1NjcmlwdERl
YnVnTGlzdGVuZXIuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMiwzICsyLDcgQEAKICNkZWZpbmUgV2ViQ29yZV9GV0RfU2NyaXB0RGVidWdMaXN0ZW5l
cl9oCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0RGVidWdMaXN0ZW5lci5oPgogI2Vu
ZGlmCisjaWZuZGVmIFdlYkNvcmVfRldEX1NjcmlwdERlYnVnTGlzdGVuZXJfaAorI2RlZmluZSBX
ZWJDb3JlX0ZXRF9TY3JpcHREZWJ1Z0xpc3RlbmVyX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TY3JpcHREZWJ1Z0xpc3RlbmVyLmg+CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9FcnJvckhhbmRsaW5n
U2NvcGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0Vycm9ySGFuZGxpbmdTY29wZV9oCisjZGVmaW5lIFdl
YkNvcmVfRldEX0Vycm9ySGFuZGxpbmdTY29wZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
RXJyb3JIYW5kbGluZ1Njb3BlLmg+CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Zvcndh
cmRpbmdIZWFkZXJzL3lhcnIvUmVndWxhckV4cHJlc3Npb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy95YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmgJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3lhcnIv
UmVndWxhckV4cHJlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMiwzICsyLDcgQEAKICNkZWZp
bmUgV2ViQ29yZV9GV0RfUmVndWxhckV4cHJlc3Npb25faAogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1JlZ3VsYXJFeHByZXNzaW9uLmg+CiAjZW5kaWYKKyNpZm5kZWYgV2ViQ29yZV9GV0RfUmVn
dWxhckV4cHJlc3Npb25faAorI2RlZmluZSBXZWJDb3JlX0ZXRF9SZWd1bGFyRXhwcmVzc2lvbl9o
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVndWxhckV4cHJlc3Npb24uaD4KKyNlbmRpZgpJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xODUwMiw2ICsxODUwMiw3IEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXENvbnN0cnVj
dERhdGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJz
XHJ1bnRpbWVcRGF0ZUluc3RhbmNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxG
b3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxF
cnJvclByb3RvdHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGlu
Z0hlYWRlcnNccnVudGltZVxFeGNlcHRpb25IZWxwZXJzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEV4ZWN1dGFibGUuaCIgLz4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtMTI0
OTIsNiArMTI0OTIsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hl
YWRlcnNccnVudGltZVxFcnJvci5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNc
cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUuaCI+Cisg
ICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1
bnRpbWVcRXJyb3JQcm90b3R5cGUuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJz
XHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGludGVycHJldGVyL0ludGVycHJldGVyLmg+CiAj
aW5jbHVkZSA8cnVudGltZS9EYXRlSW5zdGFuY2UuaD4KICNpbmNsdWRlIDxydW50aW1lL0Vycm9y
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaD4KICNpbmNsdWRlIDxy
dW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24u
aD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtMTU0LDcgKzE1NSw3IEBAIHZvaWQg
cmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlMKICAgICBpZiAoaXNUZXJtaW5hdGVk
RXhlY3V0aW9uRXhjZXB0aW9uKGV4Y2VwdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIElu
dGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZSBtb2RlKGV4ZWMpOworICAgIEVycm9ySGFuZGxp
bmdTY29wZSBlcnJvclNjb3BlKGV4ZWMtPnZtKCkpOwogCiAgICAgUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zyb21FeGNlcHRpb24oZXhlYywg
ZXhjZXB0aW9uLCBTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUpKTsK
ICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTE0KQorKysgVG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDEtMjcgIE1hcmsg
SGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSB0aGUg
anNDU3RhY2sgYnJhbmNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjc3NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNjcmlwdHMvZGlzcGxheS1wcm9maWxlci1vdXRwdXQ6CisgICAgICAgICogU2Ny
aXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAxNC0wMS0yNyAgRGF2aWQgRmFybGVyICA8
ZGZhcmxlckBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIER1bXBSZW5kZXJUcmVlLmFwcCBkaWVz
IGxvYWRpbmcgZm9udHMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxlci1vdXRw
dXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9kaXNwbGF5LXByb2ZpbGVyLW91dHB1dAko
cmV2aXNpb24gMTYyOTE0KQorKysgVG9vbHMvU2NyaXB0cy9kaXNwbGF5LXByb2ZpbGVyLW91dHB1
dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKICMhL3Vzci9iaW4vZW52IHJ1YnkKIAot
IyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MzcsNyArNDM3LDEx
IEBAICRjb21waWxhdGlvbnMgPSAkanNvblsiY29tcGlsYXRpb25zIl0ubWEKICAgICB8IHN1Ykpz
b24gfAogICAgIENvbXBpbGF0aW9uLm5ldyhzdWJKc29uKQogfQotJGVuZ2luZXMgPSBbIkJhc2Vs
aW5lIiwgIkRGRyJdCiskZW5naW5lcyA9IFsiQmFzZWxpbmUiLCAiREZHIiwgIkZUTCIsICJGVExG
b3JPU1JFbnRyeSJdCisKK2RlZiBpc09wdGltaXppbmcoZW5naW5lKQorICAgIGVuZ2luZSA9PSAi
REZHIiBvciBlbmdpbmUgPT0gIkZUTCIgb3IgZW5naW5lID09ICJGVExGb3JPU1JFbnRyeSIKK2Vu
ZAogCiAkc2hvd0NvdW50cyA9IHRydWUKICRzb3J0TW9kZSA9IDp0aW1lCkBAIC01NzIsOSArNTc2
LDkgQEAgZGVmIHN1bW1hcnkobW9kZSkKICAgICBpZiBtb2RlID09IDpmdWxsCiAgICAgICAgIHBy
aW50KCIgIiArICgiICIgKiBpbnN0cnVjdGlvbkNvdW50Q29scykpCiAgICAgZW5kCi0gICAgcHJp
bnQoIiAiICsgY2VudGVyKCJCYXNlL0RGRyIsIGNvdW50Q29scykpCisgICAgcHJpbnQoIiAiICsg
Y2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgY291bnRDb2xzKSkKICAgICBpZiBtb2RlID09
IDpmdWxsCi0gICAgICAgIHByaW50KCIgIiArIGNlbnRlcigiQmFzZS9ERkciLCBtYWNoaW5lQ291
bnRDb2xzKSkKKyAgICAgICAgcHJpbnQoIiAiICsgY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NS
IiwgbWFjaGluZUNvdW50Q29scykpCiAgICAgICAgIHByaW50KCIgIiArICgiICIgKiBjb21waWxh
dGlvbnNDb2xzKSkKICAgICAgICAgcHJpbnQoIiAiICsgY2VudGVyKCJTcmMvVG90YWwiLCBpbmxp
bmVzQ29scykpCiAgICAgICAgIHByaW50KCIgIiArICgiICIgKiBleGl0Q291bnRDb2xzKSkKQEAg
LTY3NCw3ICs2NzgsNyBAQCBkZWYgZXhlY3V0ZUNvbW1hbmQoKmNvbW1hbmRBcnJheSkKICAgICAg
ICAgICAgIGlmICRzaG93Q291bnRzCiAgICAgICAgICAgICAgICAgcHV0cyhjZW50ZXIoIlNvdXJj
ZSBDb3VudHMiLCBjb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJNYWNoaW5lIENvdW50cyIsIG1h
Y2hpbmVDb2xzKSArCiAgICAgICAgICAgICAgICAgICAgICAoIiAiICogcGFkKSArIGNlbnRlcigi
Qnl0ZWNvZGUgZm9yICN7Ynl0ZWNvZGVzfSIsIHNjcmVlbldpZHRoIC0gcGFkIC0gY291bnRDb2xz
IC0gMSAtIG1hY2hpbmVDb2xzKSkKLSAgICAgICAgICAgICAgICBwdXRzKGNlbnRlcigiQmFzZS9E
RkciLCBjb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RGRyIsIGNvdW50Q29scykpCisg
ICAgICAgICAgICAgICAgcHV0cyhjZW50ZXIoIkJhc2UvREZHL0ZUTC9GVExPU1IiLCBjb3VudENv
bHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgY291bnRDb2xzKSkKICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBwdXRzKCJCeXRlY29kZSBmb3IgI3tieXRl
Y29kZXN9OiIpCiAgICAgICAgICAgICBlbmQKQEAgLTg5NCw3ICs4OTgsNyBAQCBkZWYgZXhlY3V0
ZUNvbW1hbmQoKmNvbW1hbmRBcnJheSkKICAgICAgICAgICAgIHB1dHMoIkNvbXBpbGF0aW9uICN7
Y29tcGlsYXRpb259OiIpCiAgICAgICAgICAgICBpZiAkc2hvd0NvdW50cwogICAgICAgICAgICAg
ICAgIHB1dHMoY2VudGVyKCJBY3R1YWwgQ291bnRzIiwgYWN0dWFsQ291bnRDb2xzKSArICIgIiAr
IGNlbnRlcigiU291cmNlIENvdW50cyIsIHNvdXJjZUNvdW50Q29scykgKyAiICIgKyBjZW50ZXIo
IkRpc2Fzc2VtYmx5IGluICN7Y29tcGlsYXRpb24uZW5naW5lfSIsIHNjcmVlbldpZHRoIC0gMSAt
IHNvdXJjZUNvdW50Q29scyAtIDEgLSBhY3R1YWxDb3VudENvbHMpKQotICAgICAgICAgICAgICAg
IHB1dHMoKCIgIiAqIGFjdHVhbENvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJhc2UvREZHIiwg
c291cmNlQ291bnRDb2xzKSkKKyAgICAgICAgICAgICAgICBwdXRzKCgiICIgKiBhY3R1YWxDb3Vu
dENvbHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgc291cmNlQ291bnRD
b2xzKSkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBwdXRzKCJEaXNhc3NlbWJs
eSBpbiAje2NvbXBpbGF0aW9uLmVuZ2luZX0iKQogICAgICAgICAgICAgZW5kCkBAIC05MDUsMTEg
KzkwOSwxNSBAQCBkZWYgZXhlY3V0ZUNvbW1hbmQoKmNvbW1hbmRBcnJheSkKICAgICAgICAgICAg
ICAgICB8IGRlc2NyaXB0aW9uIHwKICAgICAgICAgICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQg
aGF2ZSBhIGJldHRlciB3YXkgb2YgZGV0ZWN0aW5nIHRoaW5ncyBsaWtlIENvdW50RXhlY3V0aW9u
IG5vZGVzCiAgICAgICAgICAgICAgICAgIyBhbmQgc2xvdyBwYXRoIGVudHJpZXMgaW4gdGhlIGJh
c2VsaW5lIEpJVC4KLSAgICAgICAgICAgICAgICBpZiBkZXNjcmlwdGlvbi5kZXNjcmlwdGlvbiA9
fiAvQ291bnRFeGVjdXRpb25cKC8gYW5kIGNvbXBpbGF0aW9uLmVuZ2luZSA9PSAiREZHIgorICAg
ICAgICAgICAgICAgIGlmIGRlc2NyaXB0aW9uLmRlc2NyaXB0aW9uID1+IC9Db3VudEV4ZWN1dGlv
blwoLyBhbmQgaXNPcHRpbWl6aW5nKGNvbXBpbGF0aW9uLmVuZ2luZSkKICAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlCiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgICAgICBzaG91bGRTaG93ID0gdHJ1ZQogICAgICAgICAgICAgICAgIGVuZAorICAgICAg
ICAgICAgICAgIGlmIG5vdCBkZXNjcmlwdGlvbi5vcmlnaW4uZW1wdHk/IGFuZCBub3QgZGVzY3Jp
cHRpb24ub3JpZ2luWy0xXQorICAgICAgICAgICAgICAgICAgICBwIGRlc2NyaXB0aW9uLm9yaWdp
bgorICAgICAgICAgICAgICAgICAgICBwIGRlc2NyaXB0aW9uLmRlc2NyaXB0aW9uCisgICAgICAg
ICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24ub3JpZ2luLmVtcHR5
PyBvciBub3QgZGVzY3JpcHRpb24ub3JpZ2luWy0xXS5zaG91bGRIYXZlQ291bnRzPyBvciAoY29t
cGlsYXRpb24uZW5naW5lID09ICJCYXNlbGluZSIgYW5kIGRlc2NyaXB0aW9uLmRlc2NyaXB0aW9u
ID1+IC9eXHMqXChTXCkvKQogICAgICAgICAgICAgICAgICAgICBhY3R1YWxDb3VudHNTdHJpbmcg
PSAiIgogICAgICAgICAgICAgICAgICAgICBzb3VyY2VDb3VudHNTdHJpbmcgPSAiIgpJbmRleDog
VG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCShyZXZpc2lvbiAxNjI5MTQpCisrKyBUb29scy9T
Y3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgw
LDggQEAgJG51bUZhaWx1cmVzID0gMAogCiBFQUdFUl9PUFRJT05TID0gWyItLXRocmVzaG9sZEZv
ckpJVEFmdGVyV2FybVVwPTEwIiwgIi0tdGhyZXNob2xkRm9ySklUU29vbj0xMCIsICItLXRocmVz
aG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXA9MjAiLCAiLS10aHJlc2hvbGRGb3JPcHRpbWl6ZUFm
dGVyTG9uZ1dhcm1VcD0yMCIsICItLXRocmVzaG9sZEZvck9wdGltaXplU29vbj0yMCIsICItLXRo
cmVzaG9sZEZvckZUTE9wdGltaXplQWZ0ZXJXYXJtVXA9MjAiLCAiLS10aHJlc2hvbGRGb3JGVExP
cHRpbWl6ZVNvb249MjAiXQogCitGVExfT1BUSU9OUyA9IFsiLS11c2VFeHBlcmltZW50YWxGVEw9
dHJ1ZSIsICItLWVuYWJsZUV4cGVyaW1lbnRhbEZUTENvdmVyYWdlPXRydWUiXQorCiAkcnVubGlz
dCA9IFtdCiAKIGRlZiBmcmFtZXdvcmtGcm9tSlNDUGF0aChqc2NQYXRoKQpAQCAtNTMyLDE5ICs1
MzQsMTkgQEAgZGVmIHJ1bk5vQ0pJVFZhbGlkYXRlUGhhc2VzCiBlbmQKIAogZGVmIHJ1bkRlZmF1
bHRGVEwKLSAgICBydW4oImRlZmF1bHQtZnRsIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUi
KQorICAgIHJ1bigiZGVmYXVsdC1mdGwiLCAqRlRMX09QVElPTlMpCiBlbmQKIAogZGVmIHJ1bkZU
TE5vQ0pJVAotICAgIHJ1bigiZnRsLW5vLWNqaXQiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZh
bHNlIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiKQorICAgIHJ1bigiZnRsLW5vLWNqaXQi
LCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgKkZUTF9PUFRJT05TKQogZW5kCiAKIGRl
ZiBydW5GVExOb0NKSVRWYWxpZGF0ZQotICAgIHJ1bigiZnRsLW5vLWNqaXQtdmFsaWRhdGUiLCAi
LS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUi
LCAiLS12YWxpZGF0ZUdyYXBoPXRydWUiKQorICAgIHJ1bigiZnRsLW5vLWNqaXQtdmFsaWRhdGUi
LCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVHcmFwaD10cnVlIiwg
KkZUTF9PUFRJT05TKQogZW5kCiAKIGRlZiBydW5GVExOb0NKSVRPU1JWYWxpZGF0aW9uCi0gICAg
cnVuKCJmdGwtbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9
ZmFsc2UiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIsICItLXZhbGlkYXRlRlRMT1NSRXhp
dExpdmVuZXNzPXRydWUiKQorICAgIHJ1bigiZnRsLW5vLWNqaXQtb3NyLXZhbGlkYXRpb24iLCAi
LS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVGVExPU1JFeGl0TGl2ZW5l
c3M9dHJ1ZSIsICpGVExfT1BUSU9OUykKIGVuZAogCiBkZWYgcnVuREZHRWFnZXIKQEAgLTU1Niwx
NSArNTU4LDE1IEBAIGRlZiBydW5ERkdFYWdlck5vQ0pJVFZhbGlkYXRlCiBlbmQKIAogZGVmIHJ1
bkZUTEVhZ2VyCi0gICAgcnVuKCJmdGwtZWFnZXIiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1
ZSIsICpFQUdFUl9PUFRJT05TKQorICAgIHJ1bigiZnRsLWVhZ2VyIiwgKihGVExfT1BUSU9OUyAr
IEVBR0VSX09QVElPTlMpKQogZW5kCiAKIGRlZiBydW5GVExFYWdlck5vQ0pJVFZhbGlkYXRlCi0g
ICAgcnVuKCJmdGwtZWFnZXItbm8tY2ppdCIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwg
Ii0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICpF
QUdFUl9PUFRJT05TKQorICAgIHJ1bigiZnRsLWVhZ2VyLW5vLWNqaXQiLCAiLS1lbmFibGVDb25j
dXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVHcmFwaD10cnVlIiwgKihGVExfT1BUSU9OUyAr
IEVBR0VSX09QVElPTlMpKQogZW5kCiAKIGRlZiBydW5GVExFYWdlck5vQ0pJVE9TUlZhbGlkYXRp
b24KLSAgICBydW4oImZ0bC1lYWdlci1uby1jaml0LW9zci12YWxpZGF0aW9uIiwgIi0tdXNlRXhw
ZXJpbWVudGFsRlRMPXRydWUiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFs
aWRhdGVGVExPU1JFeGl0TGl2ZW5lc3M9dHJ1ZSIsICpFQUdFUl9PUFRJT05TKQorICAgIHJ1bigi
ZnRsLWVhZ2VyLW5vLWNqaXQtb3NyLXZhbGlkYXRpb24iLCAiLS1lbmFibGVDb25jdXJyZW50SklU
PWZhbHNlIiwgIi0tdmFsaWRhdGVGVExPU1JFeGl0TGl2ZW5lc3M9dHJ1ZSIsICooRlRMX09QVElP
TlMgKyBFQUdFUl9PUFRJT05TKSkKIGVuZAogCiBkZWYgcnVuQWx3YXlzVHJpZ2dlckNvcHlQaGFz
ZQpAQCAtNjQ2LDEzICs2NDgsMzQgQEAgZGVmIHJ1bkxheW91dFRlc3RERkdFYWdlck5vQ0pJVAog
ICAgIHJ1bkxheW91dFRlc3QoImRmZy1lYWdlci1uby1jaml0IiwgIi0tZW5hYmxlQ29uY3VycmVu
dEpJVD1mYWxzZSIsICpFQUdFUl9PUFRJT05TKQogZW5kCiAKLWRlZiBkZWZhdWx0UnVuTGF5b3V0
VGVzdAorZGVmIHJ1bkxheW91dFRlc3REZWZhdWx0RlRMCisgICAgcnVuTGF5b3V0VGVzdCgiZnRs
IiwgIi0tdGVzdFRoZUZUTD10cnVlIiwgKkZUTF9PUFRJT05TKQorZW5kCisKK2RlZiBydW5MYXlv
dXRUZXN0RlRMTm9DSklUCisgICAgcnVuTGF5b3V0VGVzdCgiZnRsLW5vLWNqaXQiLCAiLS10ZXN0
VGhlRlRMPXRydWUiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgKkZUTF9PUFRJT05T
KQorZW5kCisKK2RlZiBydW5MYXlvdXRUZXN0RlRMRWFnZXJOb0NKSVQKKyAgICBydW5MYXlvdXRU
ZXN0KCJmdGwtZWFnZXItbm8tY2ppdCIsICItLXRlc3RUaGVGVEw9dHJ1ZSIsICItLWVuYWJsZUNv
bmN1cnJlbnRKSVQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgRUFHRVJfT1BUSU9OUykpCitlbmQK
KworZGVmIG5vRlRMUnVuTGF5b3V0VGVzdAogICAgIHJ1bkxheW91dFRlc3REZWZhdWx0CiAgICAg
cnVuTGF5b3V0VGVzdE5vTExJbnQKICAgICBydW5MYXlvdXRUZXN0Tm9DSklUCiAgICAgcnVuTGF5
b3V0VGVzdERGR0VhZ2VyTm9DSklUCiBlbmQKIAorZGVmIGRlZmF1bHRSdW5MYXlvdXRUZXN0Cisg
ICAgbm9GVExSdW5MYXlvdXRUZXN0CisgICAgaWYgJGVuYWJsZUZUTAorICAgICAgICBydW5MYXlv
dXRUZXN0RGVmYXVsdEZUTAorICAgICAgICBydW5MYXlvdXRUZXN0RlRMTm9DSklUCisgICAgICAg
IHJ1bkxheW91dFRlc3RGVExFYWdlck5vQ0pJVAorICAgIGVuZAorZW5kCisKIGRlZiBwcmVwYXJl
RXh0cmFSZWxhdGl2ZUZpbGVzKGV4dHJhRmlsZXMsIGRlc3RpbmF0aW9uKQogICAgIERpci5jaGRp
cigkb3V0cHV0RGlyKSB7CiAgICAgICAgIGV4dHJhRmlsZXMuZWFjaCB7CkBAIC03MDYsNiArNzI5
LDEwIEBAIGRlZiBydW5Nb3ppbGxhVGVzdERlZmF1bHQobW9kZSwgKmV4dHJhRmkKICAgICBydW5N
b3ppbGxhVGVzdChuaWwsIG1vZGUsIGV4dHJhRmlsZXMpCiBlbmQKIAorZGVmIHJ1bk1vemlsbGFU
ZXN0RGVmYXVsdEZUTChtb2RlLCAqZXh0cmFGaWxlcykKKyAgICBydW5Nb3ppbGxhVGVzdCgiZnRs
IiwgbW9kZSwgZXh0cmFGaWxlcywgKkZUTF9PUFRJT05TKQorZW5kCisKIGRlZiBydW5Nb3ppbGxh
VGVzdExMSW50KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0KCJsbGludCIs
IG1vZGUsIGV4dHJhRmlsZXMsICItLXVzZUpJVD1mYWxzZSIpCiBlbmQKQEAgLTcxOCwxMSArNzQ1
LDE5IEBAIGRlZiBydW5Nb3ppbGxhVGVzdERGR0VhZ2VyTm9DSklUVmFsaWRhdGUKICAgICBydW5N
b3ppbGxhVGVzdCgiZGZnLWVhZ2VyLW5vLWNqaXQtdmFsaWRhdGUtcGhhc2VzIiwgbW9kZSwgZXh0
cmFGaWxlcywgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlQnl0ZWNv
ZGU9dHJ1ZSIsICItLXZhbGlkYXRlR3JhcGhBdEVhY2hQaGFzZT10cnVlIiwgKkVBR0VSX09QVElP
TlMpCiBlbmQKIAorZGVmIHJ1bk1vemlsbGFUZXN0RlRMRWFnZXJOb0NKSVRWYWxpZGF0ZVBoYXNl
cyhtb2RlLCAqZXh0cmFGaWxlcykKKyAgICBydW5Nb3ppbGxhVGVzdCgiZnRsLWVhZ2VyLW5vLWNq
aXQtdmFsaWRhdGUtcGhhc2VzIiwgbW9kZSwgZXh0cmFGaWxlcywgIi0tZW5hYmxlQ29uY3VycmVu
dEpJVD1mYWxzZSIsICItLXZhbGlkYXRlQnl0ZWNvZGU9dHJ1ZSIsICItLXZhbGlkYXRlR3JhcGhB
dEVhY2hQaGFzZT10cnVlIiwgKihGVExfT1BUSU9OUyArIEVBR0VSX09QVElPTlMpKQorZW5kCisK
IGRlZiBkZWZhdWx0UnVuTW96aWxsYVRlc3QobW9kZSwgKmV4dHJhRmlsZXMpCiAgICAgcnVuTW96
aWxsYVRlc3REZWZhdWx0KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0TExJ
bnQobW9kZSwgKmV4dHJhRmlsZXMpCiAgICAgcnVuTW96aWxsYVRlc3RCYXNlbGluZUpJVChtb2Rl
LCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVzdERGR0VhZ2VyTm9DSklUVmFsaWRhdGVQ
aGFzZXMobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgaWYgJGVuYWJsZUZUTAorICAgICAgICBydW5N
b3ppbGxhVGVzdERlZmF1bHRGVEwobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgICAgIHJ1bk1vemls
bGFUZXN0RlRMRWFnZXJOb0NKSVRWYWxpZGF0ZVBoYXNlcyhtb2RlLCAqZXh0cmFGaWxlcykKKyAg
ICBlbmQKIGVuZAogCiBkZWYgc2tpcApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTE0KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQt
MDEtMjcgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAg
ICBNZXJnZSB0aGUganNDU3RhY2sgYnJhbmNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGpzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIuanM6
CisgICAgICAgICoganMvcmVncmVzcy9zdGVwYW5vdl9jb250YWluZXItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGpzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLmh0bWw6CisgICAgICAgICog
anMvc2NyaXB0LXRlc3RzL2RmZy1hZGQtbm90LW51bWJlci5qczoKKyAgICAgICAgKiBqcy9zY3Jp
cHQtdGVzdHMvbGFyZ2UtZXhwcmVzc2lvbnMuanM6CisKIDIwMTQtMDEtMjcgIEJyaWFuIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogY2xlYW4gdXAgaW5p
dGlhbGl6YXRpb24gb2YgbWFuYWdlcnMgYW5kIG9ic2VydmVycyBpbiBJbnNwZWN0b3JUZXN0Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBMYXlvdXRUZXN0cy9qcy9sYXJnZS1leHByZXNzaW9ucy1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogUEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigi
bGV0dGVyQSIsICIrIiwgMTAwKSkgaXMgcmVwZWF0ZWRTdHJpbmcoImEiLCAxMDApCiBQQVNTIGV2
YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwKSkgaXMgcmVwZWF0ZWRT
dHJpbmcoImEiLCAxMDAwKQotUEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIs
ICIrIiwgMTAwMDApKSBpcyByZXBlYXRlZFN0cmluZygiYSIsIDEwMDAwKQorUEFTUyBldmFsKHJl
cGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDApKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE91dCBvZiBtZW1vcnkuCiBQQVNTIGV2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0
ZXJBIiwgIisiLCAxMDAwMDApKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnku
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKSW5kZXg6IExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFp
bmVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jl
c3Mvc3RlcGFub3ZfY29udGFpbmVyCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1Q
QVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92
X2NvbnRhaW5lci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3Rl
cGFub3ZfY29udGFpbmVyLmh0bWwJKHJldmlzaW9uIDE2MjkxNCkKKysrIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIg
KzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RlcGFu
b3ZfY29udGFpbmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWlu
ZXIuanMJKHJldmlzaW9uIDE2MjkxNCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw2NDA0ICsw
LDAgQEAKLS8vQCBzbG93IQotLy9AIHJ1bkRlZmF1bHQKLS8vQCBydW5EZWZhdWx0RlRMIGlmICRl
bmFibGVGVEwKLQotLy8gTm90ZTogRm9yIG1heGltdW0tc3BlZWQgY29kZSwgc2VlICJPcHRpbWl6
aW5nIENvZGUiIG9uIHRoZSBFbXNjcmlwdGVuIHdpa2ksIGh0dHBzOi8vZ2l0aHViLmNvbS9rcmlw
a2VuL2Vtc2NyaXB0ZW4vd2lraS9PcHRpbWl6aW5nLUNvZGUKLS8vIE5vdGU6IFNvbWUgRW1zY3Jp
cHRlbiBzZXR0aW5ncyBtYXkgbGltaXQgdGhlIHNwZWVkIG9mIHRoZSBnZW5lcmF0ZWQgY29kZS4K
LS8vIFRoZSBNb2R1bGUgb2JqZWN0OiBPdXIgaW50ZXJmYWNlIHRvIHRoZSBvdXRzaWRlIHdvcmxk
LiBXZSBpbXBvcnQKLS8vIGFuZCBleHBvcnQgdmFsdWVzIG9uIGl0LCBhbmQgZG8gdGhlIHdvcmsg
dG8gZ2V0IHRoYXQgdGhyb3VnaAotLy8gY2xvc3VyZSBjb21waWxlciBpZiBuZWNlc3NhcnkuIFRo
ZXJlIGFyZSB2YXJpb3VzIHdheXMgTW9kdWxlIGNhbiBiZSB1c2VkOgotLy8gMS4gTm90IGRlZmlu
ZWQuIFdlIGNyZWF0ZSBpdCBoZXJlCi0vLyAyLiBBIGZ1bmN0aW9uIHBhcmFtZXRlciwgZnVuY3Rp
b24oTW9kdWxlKSB7IC4uZ2VuZXJhdGVkIGNvZGUuLiB9Ci0vLyAzLiBwcmUtcnVuIGFwcGVuZGVk
IGl0LCB2YXIgTW9kdWxlID0ge307IC4uZ2VuZXJhdGVkIGNvZGUuLgotLy8gNC4gRXh0ZXJuYWwg
c2NyaXB0IHRhZyBkZWZpbmVzIHZhciBNb2R1bGUuCi0vLyBXZSBuZWVkIHRvIGRvIGFuIGV2YWwg
aW4gb3JkZXIgdG8gaGFuZGxlIHRoZSBjbG9zdXJlIGNvbXBpbGVyCi0vLyBjYXNlLCB3aGVyZSB0
aGlzIGNvZGUgaGVyZSBpcyBtaW5pZmllZCBidXQgTW9kdWxlIHdhcyBkZWZpbmVkCi0vLyBlbHNl
d2hlcmUgKGUuZy4gY2FzZSA0IGFib3ZlKS4gV2UgYWxzbyBuZWVkIHRvIGNoZWNrIGlmIE1vZHVs
ZQotLy8gYWxyZWFkeSBleGlzdHMgKGUuZy4gY2FzZSAzIGFib3ZlKS4KLS8vIE5vdGUgdGhhdCBp
ZiB5b3Ugd2FudCB0byBydW4gY2xvc3VyZSwgYW5kIGFsc28gdG8gdXNlIE1vZHVsZQotLy8gYWZ0
ZXIgdGhlIGdlbmVyYXRlZCBjb2RlLCB5b3Ugd2lsbCBuZWVkIHRvIGRlZmluZSAgIHZhciBNb2R1
bGUgPSB7fTsKLS8vIGJlZm9yZSB0aGUgY29kZS4gVGhlbiB0aGF0IG9iamVjdCB3aWxsIGJlIHVz
ZWQgaW4gdGhlIGNvZGUsIGFuZCB5b3UKLS8vIGNhbiBjb250aW51ZSB0byB1c2UgTW9kdWxlIGFm
dGVyd2FyZHMgYXMgd2VsbC4KLXZhciBNb2R1bGU7Ci1pZiAoIU1vZHVsZSkgTW9kdWxlID0gZXZh
bCgnKGZ1bmN0aW9uKCkgeyB0cnkgeyByZXR1cm4gTW9kdWxlIHx8IHt9IH0gY2F0Y2goZSkgeyBy
ZXR1cm4ge30gfSB9KSgpJyk7Ci0vLyBTb21ldGltZXMgYW4gZXhpc3RpbmcgTW9kdWxlIG9iamVj
dCBleGlzdHMgd2l0aCBwcm9wZXJ0aWVzCi0vLyBtZWFudCB0byBvdmVyd3JpdGUgdGhlIGRlZmF1
bHQgbW9kdWxlIGZ1bmN0aW9uYWxpdHkuIEhlcmUKLS8vIHdlIGNvbGxlY3QgdGhvc2UgcHJvcGVy
dGllcyBhbmQgcmVhcHBseSBfYWZ0ZXJfIHdlIGNvbmZpZ3VyZQotLy8gdGhlIGN1cnJlbnQgZW52
aXJvbm1lbnQncyBkZWZhdWx0cyB0byBhdm9pZCBoYXZpbmcgdG8gYmUgc28KLS8vIGRlZmVuc2l2
ZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCi12YXIgbW9kdWxlT3ZlcnJpZGVzID0ge307Ci1mb3Ig
KHZhciBrZXkgaW4gTW9kdWxlKSB7Ci0gIGlmIChNb2R1bGUuaGFzT3duUHJvcGVydHkoa2V5KSkg
ewotICAgIG1vZHVsZU92ZXJyaWRlc1trZXldID0gTW9kdWxlW2tleV07Ci0gIH0KLX0KLS8vIFRo
ZSBlbnZpcm9ubWVudCBzZXR1cCBjb2RlIGJlbG93IGlzIGN1c3RvbWl6ZWQgdG8gdXNlIE1vZHVs
ZS4KLS8vICoqKiBFbnZpcm9ubWVudCBzZXR1cCBjb2RlICoqKgotdmFyIEVOVklST05NRU5UX0lT
X05PREUgPSB0eXBlb2YgcHJvY2VzcyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHJlcXVpcmUgPT09
ICdmdW5jdGlvbic7Ci12YXIgRU5WSVJPTk1FTlRfSVNfV0VCID0gdHlwZW9mIHdpbmRvdyA9PT0g
J29iamVjdCc7Ci12YXIgRU5WSVJPTk1FTlRfSVNfV09SS0VSID0gdHlwZW9mIGltcG9ydFNjcmlw
dHMgPT09ICdmdW5jdGlvbic7Ci12YXIgRU5WSVJPTk1FTlRfSVNfU0hFTEwgPSAhRU5WSVJPTk1F
TlRfSVNfV0VCICYmICFFTlZJUk9OTUVOVF9JU19OT0RFICYmICFFTlZJUk9OTUVOVF9JU19XT1JL
RVI7Ci1pZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewotICAvLyBFeHBvc2UgZnVuY3Rpb25hbGl0
eSBpbiB0aGUgc2FtZSBzaW1wbGUgd2F5IHRoYXQgdGhlIHNoZWxscyB3b3JrCi0gIC8vIE5vdGUg
dGhhdCB3ZSBwb2xsdXRlIHRoZSBnbG9iYWwgbmFtZXNwYWNlIGhlcmUsIG90aGVyd2lzZSB3ZSBi
cmVhayBpbiBub2RlCi0gIE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9uKHgpIHsKLSAgICBwcm9j
ZXNzWydzdGRvdXQnXS53cml0ZSh4ICsgJ1xuJyk7Ci0gIH07Ci0gIE1vZHVsZVsncHJpbnRFcnIn
XSA9IGZ1bmN0aW9uKHgpIHsKLSAgICBwcm9jZXNzWydzdGRlcnInXS53cml0ZSh4ICsgJ1xuJyk7
Ci0gIH07Ci0gIHZhciBub2RlRlMgPSByZXF1aXJlKCdmcycpOwotICB2YXIgbm9kZVBhdGggPSBy
ZXF1aXJlKCdwYXRoJyk7Ci0gIE1vZHVsZVsncmVhZCddID0gZnVuY3Rpb24oZmlsZW5hbWUsIGJp
bmFyeSkgewotICAgIGZpbGVuYW1lID0gbm9kZVBhdGhbJ25vcm1hbGl6ZSddKGZpbGVuYW1lKTsK
LSAgICB2YXIgcmV0ID0gbm9kZUZTWydyZWFkRmlsZVN5bmMnXShmaWxlbmFtZSk7Ci0gICAgLy8g
VGhlIHBhdGggaXMgYWJzb2x1dGUgaWYgdGhlIG5vcm1hbGl6ZWQgdmVyc2lvbiBpcyB0aGUgc2Ft
ZSBhcyB0aGUgcmVzb2x2ZWQuCi0gICAgaWYgKCFyZXQgJiYgZmlsZW5hbWUgIT0gbm9kZVBhdGhb
J3Jlc29sdmUnXShmaWxlbmFtZSkpIHsKLSAgICAgIGZpbGVuYW1lID0gcGF0aC5qb2luKF9fZGly
bmFtZSwgJy4uJywgJ3NyYycsIGZpbGVuYW1lKTsKLSAgICAgIHJldCA9IG5vZGVGU1sncmVhZEZp
bGVTeW5jJ10oZmlsZW5hbWUpOwotICAgIH0KLSAgICBpZiAocmV0ICYmICFiaW5hcnkpIHJldCA9
IHJldC50b1N0cmluZygpOwotICAgIHJldHVybiByZXQ7Ci0gIH07Ci0gIE1vZHVsZVsncmVhZEJp
bmFyeSddID0gZnVuY3Rpb24oZmlsZW5hbWUpIHsgcmV0dXJuIE1vZHVsZVsncmVhZCddKGZpbGVu
YW1lLCB0cnVlKSB9OwotICBNb2R1bGVbJ2xvYWQnXSA9IGZ1bmN0aW9uKGYpIHsKLSAgICBnbG9i
YWxFdmFsKHJlYWQoZikpOwotICB9OwotICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gcHJvY2Vzc1sn
YXJndiddLnNsaWNlKDIpOwotICBtb2R1bGUuZXhwb3J0cyA9IE1vZHVsZTsKLX0KLWVsc2UgaWYg
KEVOVklST05NRU5UX0lTX1NIRUxMKSB7Ci0gIE1vZHVsZVsncHJpbnQnXSA9IHByaW50OwotICBp
ZiAodHlwZW9mIHByaW50RXJyICE9ICd1bmRlZmluZWQnKSBNb2R1bGVbJ3ByaW50RXJyJ10gPSBw
cmludEVycjsgLy8gbm90IHByZXNlbnQgaW4gdjggb3Igb2xkZXIgc20KLSAgaWYgKHR5cGVvZiBy
ZWFkICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgTW9kdWxlWydyZWFkJ10gPSByZWFkOwotICB9IGVs
c2UgewotICAgIE1vZHVsZVsncmVhZCddID0gZnVuY3Rpb24oKSB7IHRocm93ICdubyByZWFkKCkg
YXZhaWxhYmxlIChqc2M/KScgfTsKLSAgfQotICBNb2R1bGVbJ3JlYWRCaW5hcnknXSA9IGZ1bmN0
aW9uKGYpIHsKLSAgICByZXR1cm4gcmVhZChmLCAnYmluYXJ5Jyk7Ci0gIH07Ci0gIGlmICh0eXBl
b2Ygc2NyaXB0QXJncyAhPSAndW5kZWZpbmVkJykgewotICAgIE1vZHVsZVsnYXJndW1lbnRzJ10g
PSBzY3JpcHRBcmdzOwotICB9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudHMgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gYXJndW1lbnRzOwotICB9Ci0gIHRoaXNb
J01vZHVsZSddID0gTW9kdWxlOwotfQotZWxzZSBpZiAoRU5WSVJPTk1FTlRfSVNfV0VCIHx8IEVO
VklST05NRU5UX0lTX1dPUktFUikgewotICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKHVybCkg
ewotICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub3BlbignR0VU
JywgdXJsLCBmYWxzZSk7Ci0gICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgcmV0dXJuIHhoci5yZXNw
b25zZVRleHQ7Ci0gIH07Ci0gIGlmICh0eXBlb2YgYXJndW1lbnRzICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgTW9kdWxlWydhcmd1bWVudHMnXSA9IGFyZ3VtZW50czsKLSAgfQotICBpZiAoRU5WSVJP
Tk1FTlRfSVNfV0VCKSB7Ci0gICAgTW9kdWxlWydwcmludCddID0gZnVuY3Rpb24oeCkgewotICAg
ICAgY29uc29sZS5sb2coeCk7Ci0gICAgfTsKLSAgICBNb2R1bGVbJ3ByaW50RXJyJ10gPSBmdW5j
dGlvbih4KSB7Ci0gICAgICBjb25zb2xlLmxvZyh4KTsKLSAgICB9OwotICAgIHRoaXNbJ01vZHVs
ZSddID0gTW9kdWxlOwotICB9IGVsc2UgaWYgKEVOVklST05NRU5UX0lTX1dPUktFUikgewotICAg
IC8vIFdlIGNhbiBkbyB2ZXJ5IGxpdHRsZSBoZXJlLi4uCi0gICAgdmFyIFRSWV9VU0VfRFVNUCA9
IGZhbHNlOwotICAgIE1vZHVsZVsncHJpbnQnXSA9IChUUllfVVNFX0RVTVAgJiYgKHR5cGVvZihk
dW1wKSAhPT0gInVuZGVmaW5lZCIpID8gKGZ1bmN0aW9uKHgpIHsKLSAgICAgIGR1bXAoeCk7Ci0g
ICAgfSkgOiAoZnVuY3Rpb24oeCkgewotICAgICAgLy8gc2VsZi5wb3N0TWVzc2FnZSh4KTsgLy8g
ZW5hYmxlIHRoaXMgaWYgeW91IHdhbnQgc3Rkb3V0IHRvIGJlIHNlbnQgYXMgbWVzc2FnZXMKLSAg
ICB9KSk7Ci0gICAgTW9kdWxlWydsb2FkJ10gPSBpbXBvcnRTY3JpcHRzOwotICB9Ci19Ci1lbHNl
IHsKLSAgLy8gVW5yZWFjaGFibGUgYmVjYXVzZSBTSEVMTCBpcyBkZXBlbmRhbnQgb24gdGhlIG90
aGVycwotICB0aHJvdyAnVW5rbm93biBydW50aW1lIGVudmlyb25tZW50LiBXaGVyZSBhcmUgd2U/
JzsKLX0KLWZ1bmN0aW9uIGdsb2JhbEV2YWwoeCkgewotICBldmFsLmNhbGwobnVsbCwgeCk7Ci19
Ci1pZiAoIU1vZHVsZVsnbG9hZCddID09ICd1bmRlZmluZWQnICYmIE1vZHVsZVsncmVhZCddKSB7
Ci0gIE1vZHVsZVsnbG9hZCddID0gZnVuY3Rpb24oZikgewotICAgIGdsb2JhbEV2YWwoTW9kdWxl
WydyZWFkJ10oZikpOwotICB9OwotfQotaWYgKCFNb2R1bGVbJ3ByaW50J10pIHsKLSAgTW9kdWxl
WydwcmludCddID0gZnVuY3Rpb24oKXt9OwotfQotaWYgKCFNb2R1bGVbJ3ByaW50RXJyJ10pIHsK
LSAgTW9kdWxlWydwcmludEVyciddID0gTW9kdWxlWydwcmludCddOwotfQotaWYgKCFNb2R1bGVb
J2FyZ3VtZW50cyddKSB7Ci0gIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBbXTsKLX0KLS8vICoqKiBF
bnZpcm9ubWVudCBzZXR1cCBjb2RlICoqKgotLy8gQ2xvc3VyZSBoZWxwZXJzCi1Nb2R1bGUucHJp
bnQgPSBNb2R1bGVbJ3ByaW50J107Ci1Nb2R1bGUucHJpbnRFcnIgPSBNb2R1bGVbJ3ByaW50RXJy
J107Ci0vLyBDYWxsYmFja3MKLU1vZHVsZVsncHJlUnVuJ10gPSBbXTsKLU1vZHVsZVsncG9zdFJ1
biddID0gW107Ci0vLyBNZXJnZSBiYWNrIGluIHRoZSBvdmVycmlkZXMKLWZvciAodmFyIGtleSBp
biBtb2R1bGVPdmVycmlkZXMpIHsKLSAgaWYgKG1vZHVsZU92ZXJyaWRlcy5oYXNPd25Qcm9wZXJ0
eShrZXkpKSB7Ci0gICAgTW9kdWxlW2tleV0gPSBtb2R1bGVPdmVycmlkZXNba2V5XTsKLSAgfQot
fQotLy8gPT09IEF1dG8tZ2VuZXJhdGVkIHByZWFtYmxlIGxpYnJhcnkgc3R1ZmYgPT09Ci0vLz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vIFJ1bnRpbWUgY29kZSBz
aGFyZWQgd2l0aCBjb21waWxlcgotLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci12YXIgUnVudGltZSA9IHsKLSAgc3RhY2tTYXZlOiBmdW5jdGlvbiAoKSB7Ci0gICAg
cmV0dXJuIFNUQUNLVE9QOwotICB9LAotICBzdGFja1Jlc3RvcmU6IGZ1bmN0aW9uIChzdGFja1Rv
cCkgewotICAgIFNUQUNLVE9QID0gc3RhY2tUb3A7Ci0gIH0sCi0gIGZvcmNlQWxpZ246IGZ1bmN0
aW9uICh0YXJnZXQsIHF1YW50dW0pIHsKLSAgICBxdWFudHVtID0gcXVhbnR1bSB8fCA0OwotICAg
IGlmIChxdWFudHVtID09IDEpIHJldHVybiB0YXJnZXQ7Ci0gICAgaWYgKGlzTnVtYmVyKHRhcmdl
dCkgJiYgaXNOdW1iZXIocXVhbnR1bSkpIHsKLSAgICAgIHJldHVybiBNYXRoLmNlaWwodGFyZ2V0
L3F1YW50dW0pKnF1YW50dW07Ci0gICAgfSBlbHNlIGlmIChpc051bWJlcihxdWFudHVtKSAmJiBp
c1Bvd2VyT2ZUd28ocXVhbnR1bSkpIHsKLSAgICAgIHZhciBsb2dnID0gbG9nMihxdWFudHVtKTsK
LSAgICAgIHJldHVybiAnKCgoKCcgK3RhcmdldCArICcpKycgKyAocXVhbnR1bS0xKSArICcpPj4n
ICsgbG9nZyArICcpPDwnICsgbG9nZyArICcpJzsKLSAgICB9Ci0gICAgcmV0dXJuICdNYXRoLmNl
aWwoKCcgKyB0YXJnZXQgKyAnKS8nICsgcXVhbnR1bSArICcpKicgKyBxdWFudHVtOwotICB9LAot
ICBpc051bWJlclR5cGU6IGZ1bmN0aW9uICh0eXBlKSB7Ci0gICAgcmV0dXJuIHR5cGUgaW4gUnVu
dGltZS5JTlRfVFlQRVMgfHwgdHlwZSBpbiBSdW50aW1lLkZMT0FUX1RZUEVTOwotICB9LAotICBp
c1BvaW50ZXJUeXBlOiBmdW5jdGlvbiBpc1BvaW50ZXJUeXBlKHR5cGUpIHsKLSAgcmV0dXJuIHR5
cGVbdHlwZS5sZW5ndGgtMV0gPT0gJyonOwotfSwKLSAgaXNTdHJ1Y3RUeXBlOiBmdW5jdGlvbiBp
c1N0cnVjdFR5cGUodHlwZSkgewotICBpZiAoaXNQb2ludGVyVHlwZSh0eXBlKSkgcmV0dXJuIGZh
bHNlOwotICBpZiAoaXNBcnJheVR5cGUodHlwZSkpIHJldHVybiB0cnVlOwotICBpZiAoLzw/eyA/
W159XSogP30+Py8udGVzdCh0eXBlKSkgcmV0dXJuIHRydWU7IC8vIHsgaTMyLCBpOCB9IGV0Yy4g
LSBhbm9ueW1vdXMgc3RydWN0IHR5cGVzCi0gIC8vIFNlZSBjb21tZW50IGluIGlzU3RydWN0UG9p
bnRlclR5cGUoKQotICByZXR1cm4gdHlwZVswXSA9PSAnJSc7Ci19LAotICBJTlRfVFlQRVM6IHsi
aTEiOjAsImk4IjowLCJpMTYiOjAsImkzMiI6MCwiaTY0IjowfSwKLSAgRkxPQVRfVFlQRVM6IHsi
ZmxvYXQiOjAsImRvdWJsZSI6MH0sCi0gIG9yNjQ6IGZ1bmN0aW9uICh4LCB5KSB7Ci0gICAgdmFy
IGwgPSAoeCB8IDApIHwgKHkgfCAwKTsKLSAgICB2YXIgaCA9IChNYXRoLnJvdW5kKHggLyA0Mjk0
OTY3Mjk2KSB8IE1hdGgucm91bmQoeSAvIDQyOTQ5NjcyOTYpKSAqIDQyOTQ5NjcyOTY7Ci0gICAg
cmV0dXJuIGwgKyBoOwotICB9LAotICBhbmQ2NDogZnVuY3Rpb24gKHgsIHkpIHsKLSAgICB2YXIg
bCA9ICh4IHwgMCkgJiAoeSB8IDApOwotICAgIHZhciBoID0gKE1hdGgucm91bmQoeCAvIDQyOTQ5
NjcyOTYpICYgTWF0aC5yb3VuZCh5IC8gNDI5NDk2NzI5NikpICogNDI5NDk2NzI5NjsKLSAgICBy
ZXR1cm4gbCArIGg7Ci0gIH0sCi0gIHhvcjY0OiBmdW5jdGlvbiAoeCwgeSkgewotICAgIHZhciBs
ID0gKHggfCAwKSBeICh5IHwgMCk7Ci0gICAgdmFyIGggPSAoTWF0aC5yb3VuZCh4IC8gNDI5NDk2
NzI5NikgXiBNYXRoLnJvdW5kKHkgLyA0Mjk0OTY3Mjk2KSkgKiA0Mjk0OTY3Mjk2OwotICAgIHJl
dHVybiBsICsgaDsKLSAgfSwKLSAgZ2V0TmF0aXZlVHlwZVNpemU6IGZ1bmN0aW9uICh0eXBlLCBx
dWFudHVtU2l6ZSkgewotICAgIGlmIChSdW50aW1lLlFVQU5UVU1fU0laRSA9PSAxKSByZXR1cm4g
MTsKLSAgICB2YXIgc2l6ZSA9IHsKLSAgICAgICclaTEnOiAxLAotICAgICAgJyVpOCc6IDEsCi0g
ICAgICAnJWkxNic6IDIsCi0gICAgICAnJWkzMic6IDQsCi0gICAgICAnJWk2NCc6IDgsCi0gICAg
ICAiJWZsb2F0IjogNCwKLSAgICAgICIlZG91YmxlIjogOAotICAgIH1bJyUnK3R5cGVdOyAvLyBh
ZGQgJyUnIHNpbmNlIGZsb2F0IGFuZCBkb3VibGUgY29uZnVzZSBDbG9zdXJlIGNvbXBpbGVyIGFz
IGtleXMsIGFuZCBhbHNvIHNwaWRlcm1vbmtleSBhcyBhIGNvbXBpbGVyIHdpbGwgcmVtb3ZlICdz
IGZyb20gJ19pOCcgZXRjCi0gICAgaWYgKCFzaXplKSB7Ci0gICAgICBpZiAodHlwZS5jaGFyQXQo
dHlwZS5sZW5ndGgtMSkgPT0gJyonKSB7Ci0gICAgICAgIHNpemUgPSBSdW50aW1lLlFVQU5UVU1f
U0laRTsgLy8gQSBwb2ludGVyCi0gICAgICB9IGVsc2UgaWYgKHR5cGVbMF0gPT0gJ2knKSB7Ci0g
ICAgICAgIHZhciBiaXRzID0gcGFyc2VJbnQodHlwZS5zdWJzdHIoMSkpOwotICAgICAgICBhc3Nl
cnQoYml0cyAlIDggPT0gMCk7Ci0gICAgICAgIHNpemUgPSBiaXRzLzg7Ci0gICAgICB9Ci0gICAg
fQotICAgIHJldHVybiBzaXplOwotICB9LAotICBnZXROYXRpdmVGaWVsZFNpemU6IGZ1bmN0aW9u
ICh0eXBlKSB7Ci0gICAgcmV0dXJuIE1hdGgubWF4KFJ1bnRpbWUuZ2V0TmF0aXZlVHlwZVNpemUo
dHlwZSksIFJ1bnRpbWUuUVVBTlRVTV9TSVpFKTsKLSAgfSwKLSAgZGVkdXA6IGZ1bmN0aW9uIGRl
ZHVwKGl0ZW1zLCBpZGVudCkgewotICB2YXIgc2VlbiA9IHt9OwotICBpZiAoaWRlbnQpIHsKLSAg
ICByZXR1cm4gaXRlbXMuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHsKLSAgICAgIGlmIChzZWVuW2l0
ZW1baWRlbnRdXSkgcmV0dXJuIGZhbHNlOwotICAgICAgc2VlbltpdGVtW2lkZW50XV0gPSB0cnVl
OwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSk7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIGl0
ZW1zLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7Ci0gICAgICBpZiAoc2VlbltpdGVtXSkgcmV0dXJu
IGZhbHNlOwotICAgICAgc2VlbltpdGVtXSA9IHRydWU7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICB9KTsKLSAgfQotfSwKLSAgc2V0OiBmdW5jdGlvbiBzZXQoKSB7Ci0gIHZhciBhcmdzID0gdHlw
ZW9mIGFyZ3VtZW50c1swXSA9PT0gJ29iamVjdCcgPyBhcmd1bWVudHNbMF0gOiBhcmd1bWVudHM7
Ci0gIHZhciByZXQgPSB7fTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsr
KSB7Ci0gICAgcmV0W2FyZ3NbaV1dID0gMDsKLSAgfQotICByZXR1cm4gcmV0OwotfSwKLSAgU1RB
Q0tfQUxJR046IDgsCi0gIGdldEFsaWduU2l6ZTogZnVuY3Rpb24gKHR5cGUsIHNpemUsIHZhcmFy
ZykgewotICAgIC8vIHdlIGFsaWduIGk2NHMgYW5kIGRvdWJsZXMgb24gNjQtYml0IGJvdW5kYXJp
ZXMsIHVubGlrZSB4ODYKLSAgICBpZiAodHlwZSA9PSAnaTY0JyB8fCB0eXBlID09ICdkb3VibGUn
IHx8IHZhcmFyZykgcmV0dXJuIDg7Ci0gICAgaWYgKCF0eXBlKSByZXR1cm4gTWF0aC5taW4oc2l6
ZSwgOCk7IC8vIGFsaWduIHN0cnVjdHVyZXMgaW50ZXJuYWxseSB0byA2NCBiaXRzCi0gICAgcmV0
dXJuIE1hdGgubWluKHNpemUgfHwgKHR5cGUgPyBSdW50aW1lLmdldE5hdGl2ZUZpZWxkU2l6ZSh0
eXBlKSA6IDApLCBSdW50aW1lLlFVQU5UVU1fU0laRSk7Ci0gIH0sCi0gIGNhbGN1bGF0ZVN0cnVj
dEFsaWdubWVudDogZnVuY3Rpb24gY2FsY3VsYXRlU3RydWN0QWxpZ25tZW50KHR5cGUpIHsKLSAg
ICB0eXBlLmZsYXRTaXplID0gMDsKLSAgICB0eXBlLmFsaWduU2l6ZSA9IDA7Ci0gICAgdmFyIGRp
ZmZzID0gW107Ci0gICAgdmFyIHByZXYgPSAtMTsKLSAgICB2YXIgaW5kZXggPSAwOwotICAgIHR5
cGUuZmxhdEluZGV4ZXMgPSB0eXBlLmZpZWxkcy5tYXAoZnVuY3Rpb24oZmllbGQpIHsKLSAgICAg
IGluZGV4Kys7Ci0gICAgICB2YXIgc2l6ZSwgYWxpZ25TaXplOwotICAgICAgaWYgKFJ1bnRpbWUu
aXNOdW1iZXJUeXBlKGZpZWxkKSB8fCBSdW50aW1lLmlzUG9pbnRlclR5cGUoZmllbGQpKSB7Ci0g
ICAgICAgIHNpemUgPSBSdW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKGZpZWxkKTsgLy8gcGFjayBj
aGFyOyBjaGFyOyBpbiBzdHJ1Y3RzLCBhbHNvIGNoYXJbWF1zLgotICAgICAgICBhbGlnblNpemUg
PSBSdW50aW1lLmdldEFsaWduU2l6ZShmaWVsZCwgc2l6ZSk7Ci0gICAgICB9IGVsc2UgaWYgKFJ1
bnRpbWUuaXNTdHJ1Y3RUeXBlKGZpZWxkKSkgewotICAgICAgICBpZiAoZmllbGRbMV0gPT09ICcw
JykgewotICAgICAgICAgIC8vIHRoaXMgaXMgWzAgeCBzb21ldGhpbmddLiBXaGVuIGluc2lkZSBh
bm90aGVyIHN0cnVjdHVyZSBsaWtlIGhlcmUsIGl0IG11c3QgYmUgYXQgdGhlIGVuZCwKLSAgICAg
ICAgICAvLyBhbmQgaXQgYWRkcyBubyBzaXplCi0gICAgICAgICAgLy8gWFhYIHRoaXMgaGFwcGVu
cyBpbiBqYXZhLW5ib2R5IGZvciBleGFtcGxlLi4uIGFzc2VydChpbmRleCA9PT0gdHlwZS5maWVs
ZHMubGVuZ3RoLCAnemVyby1sZW5ndGggaW4gdGhlIG1pZGRsZSEnKTsKLSAgICAgICAgICBzaXpl
ID0gMDsKLSAgICAgICAgICBhbGlnblNpemUgPSB0eXBlLmFsaWduU2l6ZSB8fCBRVUFOVFVNX1NJ
WkU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgc2l6ZSA9IFR5cGVzLnR5cGVzW2ZpZWxk
XS5mbGF0U2l6ZTsKLSAgICAgICAgICBhbGlnblNpemUgPSBSdW50aW1lLmdldEFsaWduU2l6ZShu
dWxsLCBUeXBlcy50eXBlc1tmaWVsZF0uYWxpZ25TaXplKTsKLSAgICAgICAgfQotICAgICAgfSBl
bHNlIGlmIChmaWVsZFswXSA9PSAnYicpIHsKLSAgICAgICAgLy8gYk4sIGxhcmdlIG51bWJlciBm
aWVsZCwgbGlrZSBhIFtOIHggaThdCi0gICAgICAgIHNpemUgPSBmaWVsZC5zdWJzdHIoMSl8MDsK
LSAgICAgICAgYWxpZ25TaXplID0gMTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRocm93ICdV
bmNsZWFyIHR5cGUgaW4gc3RydWN0OiAnICsgZmllbGQgKyAnLCBpbiAnICsgdHlwZS5uYW1lXyAr
ICcgOjogJyArIGR1bXAoVHlwZXMudHlwZXNbdHlwZS5uYW1lX10pOwotICAgICAgfQotICAgICAg
aWYgKHR5cGUucGFja2VkKSBhbGlnblNpemUgPSAxOwotICAgICAgdHlwZS5hbGlnblNpemUgPSBN
YXRoLm1heCh0eXBlLmFsaWduU2l6ZSwgYWxpZ25TaXplKTsKLSAgICAgIHZhciBjdXJyID0gUnVu
dGltZS5hbGlnbk1lbW9yeSh0eXBlLmZsYXRTaXplLCBhbGlnblNpemUpOyAvLyBpZiBuZWNlc3Nh
cnksIHBsYWNlIHRoaXMgb24gYWxpZ25lZCBtZW1vcnkKLSAgICAgIHR5cGUuZmxhdFNpemUgPSBj
dXJyICsgc2l6ZTsKLSAgICAgIGlmIChwcmV2ID49IDApIHsKLSAgICAgICAgZGlmZnMucHVzaChj
dXJyLXByZXYpOwotICAgICAgfQotICAgICAgcHJldiA9IGN1cnI7Ci0gICAgICByZXR1cm4gY3Vy
cjsKLSAgICB9KTsKLSAgICB0eXBlLmZsYXRTaXplID0gUnVudGltZS5hbGlnbk1lbW9yeSh0eXBl
LmZsYXRTaXplLCB0eXBlLmFsaWduU2l6ZSk7Ci0gICAgaWYgKGRpZmZzLmxlbmd0aCA9PSAwKSB7
Ci0gICAgICB0eXBlLmZsYXRGYWN0b3IgPSB0eXBlLmZsYXRTaXplOwotICAgIH0gZWxzZSBpZiAo
UnVudGltZS5kZWR1cChkaWZmcykubGVuZ3RoID09IDEpIHsKLSAgICAgIHR5cGUuZmxhdEZhY3Rv
ciA9IGRpZmZzWzBdOwotICAgIH0KLSAgICB0eXBlLm5lZWRzRmxhdHRlbmluZyA9ICh0eXBlLmZs
YXRGYWN0b3IgIT0gMSk7Ci0gICAgcmV0dXJuIHR5cGUuZmxhdEluZGV4ZXM7Ci0gIH0sCi0gIGdl
bmVyYXRlU3RydWN0SW5mbzogZnVuY3Rpb24gKHN0cnVjdCwgdHlwZU5hbWUsIG9mZnNldCkgewot
ICAgIHZhciB0eXBlLCBhbGlnbm1lbnQ7Ci0gICAgaWYgKHR5cGVOYW1lKSB7Ci0gICAgICBvZmZz
ZXQgPSBvZmZzZXQgfHwgMDsKLSAgICAgIHR5cGUgPSAodHlwZW9mIFR5cGVzID09PSAndW5kZWZp
bmVkJyA/IFJ1bnRpbWUudHlwZUluZm8gOiBUeXBlcy50eXBlcylbdHlwZU5hbWVdOwotICAgICAg
aWYgKCF0eXBlKSByZXR1cm4gbnVsbDsKLSAgICAgIGlmICh0eXBlLmZpZWxkcy5sZW5ndGggIT0g
c3RydWN0Lmxlbmd0aCkgewotICAgICAgICBwcmludEVycignTnVtYmVyIG9mIG5hbWVkIGZpZWxk
cyBtdXN0IG1hdGNoIHRoZSB0eXBlIGZvciAnICsgdHlwZU5hbWUgKyAnOiBwb3NzaWJseSBkdXBs
aWNhdGUgc3RydWN0IG5hbWVzLiBDYW5ub3QgcmV0dXJuIHN0cnVjdEluZm8nKTsKLSAgICAgICAg
cmV0dXJuIG51bGw7Ci0gICAgICB9Ci0gICAgICBhbGlnbm1lbnQgPSB0eXBlLmZsYXRJbmRleGVz
OwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgdHlwZSA9IHsgZmllbGRzOiBzdHJ1Y3QubWFwKGZ1
bmN0aW9uKGl0ZW0pIHsgcmV0dXJuIGl0ZW1bMF0gfSkgfTsKLSAgICAgIGFsaWdubWVudCA9IFJ1
bnRpbWUuY2FsY3VsYXRlU3RydWN0QWxpZ25tZW50KHR5cGUpOwotICAgIH0KLSAgICB2YXIgcmV0
ID0gewotICAgICAgX19zaXplX186IHR5cGUuZmxhdFNpemUKLSAgICB9OwotICAgIGlmICh0eXBl
TmFtZSkgewotICAgICAgc3RydWN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaSkgewotICAgICAg
ICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgcmV0W2l0ZW1dID0g
YWxpZ25tZW50W2ldICsgb2Zmc2V0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8vIGVt
YmVkZGVkIHN0cnVjdAotICAgICAgICAgIHZhciBrZXk7Ci0gICAgICAgICAgZm9yICh2YXIgayBp
biBpdGVtKSBrZXkgPSBrOwotICAgICAgICAgIHJldFtrZXldID0gUnVudGltZS5nZW5lcmF0ZVN0
cnVjdEluZm8oaXRlbVtrZXldLCB0eXBlLmZpZWxkc1tpXSwgYWxpZ25tZW50W2ldKTsKLSAgICAg
ICAgfQotICAgICAgfSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHN0cnVjdC5mb3JFYWNoKGZ1bmN0
aW9uKGl0ZW0sIGkpIHsKLSAgICAgICAgcmV0W2l0ZW1bMV1dID0gYWxpZ25tZW50W2ldOwotICAg
ICAgfSk7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0sCi0gIGR5bkNhbGw6IGZ1bmN0aW9u
IChzaWcsIHB0ciwgYXJncykgewotICAgIGlmIChhcmdzICYmIGFyZ3MubGVuZ3RoKSB7Ci0gICAg
ICBpZiAoIWFyZ3Muc3BsaWNlKSBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJn
cyk7Ci0gICAgICBhcmdzLnNwbGljZSgwLCAwLCBwdHIpOwotICAgICAgcmV0dXJuIE1vZHVsZVsn
ZHluQ2FsbF8nICsgc2lnXS5hcHBseShudWxsLCBhcmdzKTsKLSAgICB9IGVsc2UgewotICAgICAg
cmV0dXJuIE1vZHVsZVsnZHluQ2FsbF8nICsgc2lnXS5jYWxsKG51bGwsIHB0cik7Ci0gICAgfQot
ICB9LAotICBmdW5jdGlvblBvaW50ZXJzOiBbXSwKLSAgYWRkRnVuY3Rpb246IGZ1bmN0aW9uIChm
dW5jKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnMu
bGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmICghUnVudGltZS5mdW5jdGlvblBvaW50ZXJzW2ldKSB7
Ci0gICAgICAgIFJ1bnRpbWUuZnVuY3Rpb25Qb2ludGVyc1tpXSA9IGZ1bmM7Ci0gICAgICAgIHJl
dHVybiAyICsgMippOwotICAgICAgfQotICAgIH0KLSAgICB0aHJvdyAnRmluaXNoZWQgdXAgYWxs
IHJlc2VydmVkIGZ1bmN0aW9uIHBvaW50ZXJzLiBVc2UgYSBoaWdoZXIgdmFsdWUgZm9yIFJFU0VS
VkVEX0ZVTkNUSU9OX1BPSU5URVJTLic7Ci0gIH0sCi0gIHJlbW92ZUZ1bmN0aW9uOiBmdW5jdGlv
biAoaW5kZXgpIHsKLSAgICBSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnNbKGluZGV4LTIpLzJdID0g
bnVsbDsKLSAgfSwKLSAgd2Fybk9uY2U6IGZ1bmN0aW9uICh0ZXh0KSB7Ci0gICAgaWYgKCFSdW50
aW1lLndhcm5PbmNlLnNob3duKSBSdW50aW1lLndhcm5PbmNlLnNob3duID0ge307Ci0gICAgaWYg
KCFSdW50aW1lLndhcm5PbmNlLnNob3duW3RleHRdKSB7Ci0gICAgICBSdW50aW1lLndhcm5PbmNl
LnNob3duW3RleHRdID0gMTsKLSAgICAgIE1vZHVsZS5wcmludEVycih0ZXh0KTsKLSAgICB9Ci0g
IH0sCi0gIGZ1bmNXcmFwcGVyczoge30sCi0gIGdldEZ1bmNXcmFwcGVyOiBmdW5jdGlvbiAoZnVu
Yywgc2lnKSB7Ci0gICAgYXNzZXJ0KHNpZyk7Ci0gICAgaWYgKCFSdW50aW1lLmZ1bmNXcmFwcGVy
c1tmdW5jXSkgewotICAgICAgUnVudGltZS5mdW5jV3JhcHBlcnNbZnVuY10gPSBmdW5jdGlvbigp
IHsKLSAgICAgICAgcmV0dXJuIFJ1bnRpbWUuZHluQ2FsbChzaWcsIGZ1bmMsIGFyZ3VtZW50cyk7
Ci0gICAgICB9OwotICAgIH0KLSAgICByZXR1cm4gUnVudGltZS5mdW5jV3JhcHBlcnNbZnVuY107
Ci0gIH0sCi0gIFVURjhQcm9jZXNzb3I6IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgYnVmZmVyID0g
W107Ci0gICAgdmFyIG5lZWRlZCA9IDA7Ci0gICAgdGhpcy5wcm9jZXNzQ0NoYXIgPSBmdW5jdGlv
biAoY29kZSkgewotICAgICAgY29kZSA9IGNvZGUgJiAweEZGOwotICAgICAgaWYgKGJ1ZmZlci5s
ZW5ndGggPT0gMCkgewotICAgICAgICBpZiAoKGNvZGUgJiAweDgwKSA9PSAweDAwKSB7ICAgICAg
ICAvLyAweHh4eHh4eAotICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUp
OwotICAgICAgICB9Ci0gICAgICAgIGJ1ZmZlci5wdXNoKGNvZGUpOwotICAgICAgICBpZiAoKGNv
ZGUgJiAweEUwKSA9PSAweEMwKSB7ICAgICAgICAvLyAxMTB4eHh4eAotICAgICAgICAgIG5lZWRl
ZCA9IDE7Ci0gICAgICAgIH0gZWxzZSBpZiAoKGNvZGUgJiAweEYwKSA9PSAweEUwKSB7IC8vIDEx
MTB4eHh4Ci0gICAgICAgICAgbmVlZGVkID0gMjsKLSAgICAgICAgfSBlbHNlIHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gMTExMTB4eHgKLSAgICAgICAgICBuZWVkZWQgPSAzOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiAnJzsKLSAgICAgIH0KLSAgICAgIGlmIChuZWVkZWQpIHsK
LSAgICAgICAgYnVmZmVyLnB1c2goY29kZSk7Ci0gICAgICAgIG5lZWRlZC0tOwotICAgICAgICBp
ZiAobmVlZGVkID4gMCkgcmV0dXJuICcnOwotICAgICAgfQotICAgICAgdmFyIGMxID0gYnVmZmVy
WzBdOwotICAgICAgdmFyIGMyID0gYnVmZmVyWzFdOwotICAgICAgdmFyIGMzID0gYnVmZmVyWzJd
OwotICAgICAgdmFyIGM0ID0gYnVmZmVyWzNdOwotICAgICAgdmFyIHJldDsKLSAgICAgIGlmIChi
dWZmZXIubGVuZ3RoID09IDIpIHsKLSAgICAgICAgcmV0ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgo
KGMxICYgMHgxRikgPDwgNikgIHwgKGMyICYgMHgzRikpOwotICAgICAgfSBlbHNlIGlmIChidWZm
ZXIubGVuZ3RoID09IDMpIHsKLSAgICAgICAgcmV0ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMx
ICYgMHgwRikgPDwgMTIpIHwgKChjMiAmIDB4M0YpIDw8IDYpICB8IChjMyAmIDB4M0YpKTsKLSAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIGh0dHA6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2ph
dmFzY3JpcHQtZW5jb2Rpbmcjc3Vycm9nYXRlLWZvcm11bGFlCi0gICAgICAgIHZhciBjb2RlUG9p
bnQgPSAoKGMxICYgMHgwNykgPDwgMTgpIHwgKChjMiAmIDB4M0YpIDw8IDEyKSB8Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAoKGMzICYgMHgzRikgPDwgNikgIHwgKGM0ICYgMHgzRik7Ci0gICAg
ICAgIHJldCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoCi0gICAgICAgICAgTWF0aC5mbG9vcigoY29k
ZVBvaW50IC0gMHgxMDAwMCkgLyAweDQwMCkgKyAweEQ4MDAsCi0gICAgICAgICAgKGNvZGVQb2lu
dCAtIDB4MTAwMDApICUgMHg0MDAgKyAweERDMDApOwotICAgICAgfQotICAgICAgYnVmZmVyLmxl
bmd0aCA9IDA7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgICB0aGlzLnByb2Nlc3NKU1N0
cmluZyA9IGZ1bmN0aW9uKHN0cmluZykgewotICAgICAgc3RyaW5nID0gdW5lc2NhcGUoZW5jb2Rl
VVJJQ29tcG9uZW50KHN0cmluZykpOwotICAgICAgdmFyIHJldCA9IFtdOwotICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgcmV0LnB1c2goc3Ry
aW5nLmNoYXJDb2RlQXQoaSkpOwotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0g
IH0sCi0gIHN0YWNrQWxsb2M6IGZ1bmN0aW9uIChzaXplKSB7IHZhciByZXQgPSBTVEFDS1RPUDtT
VEFDS1RPUCA9IChTVEFDS1RPUCArIHNpemUpfDA7U1RBQ0tUT1AgPSAoKCgoU1RBQ0tUT1ApKzcp
Pj4zKTw8Myk7IHJldHVybiByZXQ7IH0sCi0gIHN0YXRpY0FsbG9jOiBmdW5jdGlvbiAoc2l6ZSkg
eyB2YXIgcmV0ID0gU1RBVElDVE9QO1NUQVRJQ1RPUCA9IChTVEFUSUNUT1AgKyBzaXplKXwwO1NU
QVRJQ1RPUCA9ICgoKChTVEFUSUNUT1ApKzcpPj4zKTw8Myk7IHJldHVybiByZXQ7IH0sCi0gIGR5
bmFtaWNBbGxvYzogZnVuY3Rpb24gKHNpemUpIHsgdmFyIHJldCA9IERZTkFNSUNUT1A7RFlOQU1J
Q1RPUCA9IChEWU5BTUlDVE9QICsgc2l6ZSl8MDtEWU5BTUlDVE9QID0gKCgoKERZTkFNSUNUT1Ap
KzcpPj4zKTw8Myk7IGlmIChEWU5BTUlDVE9QID49IFRPVEFMX01FTU9SWSkgZW5sYXJnZU1lbW9y
eSgpOzsgcmV0dXJuIHJldDsgfSwKLSAgYWxpZ25NZW1vcnk6IGZ1bmN0aW9uIChzaXplLHF1YW50
dW0pIHsgdmFyIHJldCA9IHNpemUgPSBNYXRoLmNlaWwoKHNpemUpLyhxdWFudHVtID8gcXVhbnR1
bSA6IDgpKSoocXVhbnR1bSA/IHF1YW50dW0gOiA4KTsgcmV0dXJuIHJldDsgfSwKLSAgbWFrZUJp
Z0ludDogZnVuY3Rpb24gKGxvdyxoaWdoLHVuc2lnbmVkKSB7IHZhciByZXQgPSAodW5zaWduZWQg
PyAoKCsoKChsb3cpPj4+KDApKSkpKygoKygoKGhpZ2gpPj4+KDApKSkpKigrKDQyOTQ5NjcyOTYp
KSkpIDogKCgrKCgobG93KT4+PigwKSkpKSsoKCsoKChoaWdoKXwoMCkpKSkqKCsoNDI5NDk2NzI5
NikpKSkpOyByZXR1cm4gcmV0OyB9LAotICBHTE9CQUxfQkFTRTogOCwKLSAgUVVBTlRVTV9TSVpF
OiA0LAotICBfX2R1bW15X186IDAKLX0KLS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLy8gUnVudGltZSBlc3NlbnRpYWxzCi0vLz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLXZhciBfX1RIUkVXX18gPSAwOyAvLyBVc2VkIGluIGNoZWNr
aW5nIGZvciB0aHJvd24gZXhjZXB0aW9ucy4KLXZhciBBQk9SVCA9IGZhbHNlOyAvLyB3aGV0aGVy
IHdlIGFyZSBxdWl0dGluZyB0aGUgYXBwbGljYXRpb24uIG5vIGNvZGUgc2hvdWxkIHJ1biBhZnRl
ciB0aGlzLiBzZXQgaW4gZXhpdCgpIGFuZCBhYm9ydCgpCi12YXIgRVhJVFNUQVRVUyA9IDA7Ci12
YXIgdW5kZWYgPSAwOwotLy8gdGVtcEludCBpcyB1c2VkIGZvciAzMi1iaXQgc2lnbmVkIHZhbHVl
cyBvciBzbWFsbGVyLiB0ZW1wQmlnSW50IGlzIHVzZWQKLS8vIGZvciAzMi1iaXQgdW5zaWduZWQg
dmFsdWVzIG9yIG1vcmUgdGhhbiAzMiBiaXRzLiBUT0RPOiBhdWRpdCBhbGwgdXNlcyBvZiB0ZW1w
SW50Ci12YXIgdGVtcFZhbHVlLCB0ZW1wSW50LCB0ZW1wQmlnSW50LCB0ZW1wSW50MiwgdGVtcEJp
Z0ludDIsIHRlbXBQYWlyLCB0ZW1wQmlnSW50SSwgdGVtcEJpZ0ludFIsIHRlbXBCaWdJbnRTLCB0
ZW1wQmlnSW50UCwgdGVtcEJpZ0ludEQ7Ci12YXIgdGVtcEk2NCwgdGVtcEk2NGI7Ci12YXIgdGVt
cFJldDAsIHRlbXBSZXQxLCB0ZW1wUmV0MiwgdGVtcFJldDMsIHRlbXBSZXQ0LCB0ZW1wUmV0NSwg
dGVtcFJldDYsIHRlbXBSZXQ3LCB0ZW1wUmV0OCwgdGVtcFJldDk7Ci1mdW5jdGlvbiBhc3NlcnQo
Y29uZGl0aW9uLCB0ZXh0KSB7Ci0gIGlmICghY29uZGl0aW9uKSB7Ci0gICAgYWJvcnQoJ0Fzc2Vy
dGlvbiBmYWlsZWQ6ICcgKyB0ZXh0KTsKLSAgfQotfQotdmFyIGdsb2JhbFNjb3BlID0gdGhpczsK
LS8vIEMgY2FsbGluZyBpbnRlcmZhY2UuIEEgY29udmVuaWVudCB3YXkgdG8gY2FsbCBDIGZ1bmN0
aW9ucyAoaW4gQyBmaWxlcywgb3IKLS8vIGRlZmluZWQgd2l0aCBleHRlcm4gIkMiKS4KLS8vCi0v
LyBOb3RlOiBMTFZNIG9wdGltaXphdGlvbnMgY2FuIGlubGluZSBhbmQgcmVtb3ZlIGZ1bmN0aW9u
cywgYWZ0ZXIgd2hpY2ggeW91IHdpbGwgbm90IGJlCi0vLyAgICAgICBhYmxlIHRvIGNhbGwgdGhl
bS4gQ2xvc3VyZSBjYW4gYWxzbyBkbyBzby4gVG8gYXZvaWQgdGhhdCwgYWRkIHlvdXIgZnVuY3Rp
b24gdG8KLS8vICAgICAgIHRoZSBleHBvcnRzIHVzaW5nIHNvbWV0aGluZyBsaWtlCi0vLwotLy8g
ICAgICAgICAtcyBFWFBPUlRFRF9GVU5DVElPTlM9J1siX21haW4iLCAiX215ZnVuYyJdJwotLy8K
LS8vIEBwYXJhbSBpZGVudCAgICAgIFRoZSBuYW1lIG9mIHRoZSBDIGZ1bmN0aW9uIChub3RlIHRo
YXQgQysrIGZ1bmN0aW9ucyB3aWxsIGJlIG5hbWUtbWFuZ2xlZCAtIHVzZSBleHRlcm4gIkMiKQot
Ly8gQHBhcmFtIHJldHVyblR5cGUgVGhlIHJldHVybiB0eXBlIG9mIHRoZSBmdW5jdGlvbiwgb25l
IG9mIHRoZSBKUyB0eXBlcyAnbnVtYmVyJywgJ3N0cmluZycgb3IgJ2FycmF5JyAodXNlICdudW1i
ZXInIGZvciBhbnkgQyBwb2ludGVyLCBhbmQKLS8vICAgICAgICAgICAgICAgICAgICdhcnJheScg
Zm9yIEphdmFTY3JpcHQgYXJyYXlzIGFuZCB0eXBlZCBhcnJheXM7IG5vdGUgdGhhdCBhcnJheXMg
YXJlIDgtYml0KS4KLS8vIEBwYXJhbSBhcmdUeXBlcyAgIEFuIGFycmF5IG9mIHRoZSB0eXBlcyBv
ZiBhcmd1bWVudHMgZm9yIHRoZSBmdW5jdGlvbiAoaWYgdGhlcmUgYXJlIG5vIGFyZ3VtZW50cywg
dGhpcyBjYW4gYmUgb21taXR0ZWQpLiBUeXBlcyBhcmUgYXMgaW4gcmV0dXJuVHlwZSwKLS8vICAg
ICAgICAgICAgICAgICAgIGV4Y2VwdCB0aGF0ICdhcnJheScgaXMgbm90IHBvc3NpYmxlICh0aGVy
ZSBpcyBubyB3YXkgZm9yIHVzIHRvIGtub3cgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkpCi0vLyBA
cGFyYW0gYXJncyAgICAgICBBbiBhcnJheSBvZiB0aGUgYXJndW1lbnRzIHRvIHRoZSBmdW5jdGlv
biwgYXMgbmF0aXZlIEpTIHZhbHVlcyAoYXMgaW4gcmV0dXJuVHlwZSkKLS8vICAgICAgICAgICAg
ICAgICAgIE5vdGUgdGhhdCBzdHJpbmcgYXJndW1lbnRzIHdpbGwgYmUgc3RvcmVkIG9uIHRoZSBz
dGFjayAodGhlIEpTIHN0cmluZyB3aWxsIGJlY29tZSBhIEMgc3RyaW5nIG9uIHRoZSBzdGFjayku
Ci0vLyBAcmV0dXJuICAgICAgICAgICBUaGUgcmV0dXJuIHZhbHVlLCBhcyBhIG5hdGl2ZSBKUyB2
YWx1ZSAoYXMgaW4gcmV0dXJuVHlwZSkKLWZ1bmN0aW9uIGNjYWxsKGlkZW50LCByZXR1cm5UeXBl
LCBhcmdUeXBlcywgYXJncykgewotICByZXR1cm4gY2NhbGxGdW5jKGdldENGdW5jKGlkZW50KSwg
cmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3MpOwotfQotTW9kdWxlWyJjY2FsbCJdID0gY2NhbGw7
Ci0vLyBSZXR1cm5zIHRoZSBDIGZ1bmN0aW9uIHdpdGggYSBzcGVjaWZpZWQgaWRlbnRpZmllciAo
Zm9yIEMrKywgeW91IG5lZWQgdG8gZG8gbWFudWFsIG5hbWUgbWFuZ2xpbmcpCi1mdW5jdGlvbiBn
ZXRDRnVuYyhpZGVudCkgewotICB0cnkgewotICAgIHZhciBmdW5jID0gTW9kdWxlWydfJyArIGlk
ZW50XTsgLy8gY2xvc3VyZSBleHBvcnRlZCBmdW5jdGlvbgotICAgIGlmICghZnVuYykgZnVuYyA9
IGV2YWwoJ18nICsgaWRlbnQpOyAvLyBleHBsaWNpdCBsb29rdXAKLSAgfSBjYXRjaChlKSB7Ci0g
IH0KLSAgYXNzZXJ0KGZ1bmMsICdDYW5ub3QgY2FsbCB1bmtub3duIGZ1bmN0aW9uICcgKyBpZGVu
dCArICcgKHBlcmhhcHMgTExWTSBvcHRpbWl6YXRpb25zIG9yIGNsb3N1cmUgcmVtb3ZlZCBpdD8p
Jyk7Ci0gIHJldHVybiBmdW5jOwotfQotLy8gSW50ZXJuYWwgZnVuY3Rpb24gdGhhdCBkb2VzIGEg
QyBjYWxsIHVzaW5nIGEgZnVuY3Rpb24sIG5vdCBhbiBpZGVudGlmaWVyCi1mdW5jdGlvbiBjY2Fs
bEZ1bmMoZnVuYywgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3MpIHsKLSAgdmFyIHN0YWNrID0g
MDsKLSAgZnVuY3Rpb24gdG9DKHZhbHVlLCB0eXBlKSB7Ci0gICAgaWYgKHR5cGUgPT0gJ3N0cmlu
ZycpIHsKLSAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8
IHZhbHVlID09PSAwKSByZXR1cm4gMDsgLy8gbnVsbCBzdHJpbmcKLSAgICAgIGlmICghc3RhY2sp
IHN0YWNrID0gUnVudGltZS5zdGFja1NhdmUoKTsKLSAgICAgIHZhciByZXQgPSBSdW50aW1lLnN0
YWNrQWxsb2ModmFsdWUubGVuZ3RoKzEpOwotICAgICAgd3JpdGVTdHJpbmdUb01lbW9yeSh2YWx1
ZSwgcmV0KTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfSBlbHNlIGlmICh0eXBlID09ICdhcnJh
eScpIHsKLSAgICAgIGlmICghc3RhY2spIHN0YWNrID0gUnVudGltZS5zdGFja1NhdmUoKTsKLSAg
ICAgIHZhciByZXQgPSBSdW50aW1lLnN0YWNrQWxsb2ModmFsdWUubGVuZ3RoKTsKLSAgICAgIHdy
aXRlQXJyYXlUb01lbW9yeSh2YWx1ZSwgcmV0KTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQot
ICAgIHJldHVybiB2YWx1ZTsKLSAgfQotICBmdW5jdGlvbiBmcm9tQyh2YWx1ZSwgdHlwZSkgewot
ICAgIGlmICh0eXBlID09ICdzdHJpbmcnKSB7Ci0gICAgICByZXR1cm4gUG9pbnRlcl9zdHJpbmdp
ZnkodmFsdWUpOwotICAgIH0KLSAgICBhc3NlcnQodHlwZSAhPSAnYXJyYXknKTsKLSAgICByZXR1
cm4gdmFsdWU7Ci0gIH0KLSAgdmFyIGkgPSAwOwotICB2YXIgY0FyZ3MgPSBhcmdzID8gYXJncy5t
YXAoZnVuY3Rpb24oYXJnKSB7Ci0gICAgcmV0dXJuIHRvQyhhcmcsIGFyZ1R5cGVzW2krK10pOwot
ICB9KSA6IFtdOwotICB2YXIgcmV0ID0gZnJvbUMoZnVuYy5hcHBseShudWxsLCBjQXJncyksIHJl
dHVyblR5cGUpOwotICBpZiAoc3RhY2spIFJ1bnRpbWUuc3RhY2tSZXN0b3JlKHN0YWNrKTsKLSAg
cmV0dXJuIHJldDsKLX0KLS8vIFJldHVybnMgYSBuYXRpdmUgSlMgd3JhcHBlciBmb3IgYSBDIGZ1
bmN0aW9uLiBUaGlzIGlzIHNpbWlsYXIgdG8gY2NhbGwsIGJ1dAotLy8gcmV0dXJucyBhIGZ1bmN0
aW9uIHlvdSBjYW4gY2FsbCByZXBlYXRlZGx5IGluIGEgbm9ybWFsIHdheS4gRm9yIGV4YW1wbGU6
Ci0vLwotLy8gICB2YXIgbXlfZnVuY3Rpb24gPSBjd3JhcCgnbXlfY19mdW5jdGlvbicsICdudW1i
ZXInLCBbJ251bWJlcicsICdudW1iZXInXSk7Ci0vLyAgIGFsZXJ0KG15X2Z1bmN0aW9uKDUsIDIy
KSk7Ci0vLyAgIGFsZXJ0KG15X2Z1bmN0aW9uKDk5LCAxMikpOwotLy8KLWZ1bmN0aW9uIGN3cmFw
KGlkZW50LCByZXR1cm5UeXBlLCBhcmdUeXBlcykgewotICB2YXIgZnVuYyA9IGdldENGdW5jKGlk
ZW50KTsKLSAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBjY2FsbEZ1bmMoZnVuYywg
cmV0dXJuVHlwZSwgYXJnVHlwZXMsIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50
cykpOwotICB9Ci19Ci1Nb2R1bGVbImN3cmFwIl0gPSBjd3JhcDsKLS8vIFNldHMgYSB2YWx1ZSBp
biBtZW1vcnkgaW4gYSBkeW5hbWljIHdheSBhdCBydW4tdGltZS4gVXNlcyB0aGUKLS8vIHR5cGUg
ZGF0YS4gVGhpcyBpcyB0aGUgc2FtZSBhcyBtYWtlU2V0VmFsdWUsIGV4Y2VwdCB0aGF0Ci0vLyBt
YWtlU2V0VmFsdWUgaXMgZG9uZSBhdCBjb21waWxlLXRpbWUgYW5kIGdlbmVyYXRlcyB0aGUgbmVl
ZGVkCi0vLyBjb2RlIHRoZW4sIHdoZXJlYXMgdGhpcyBmdW5jdGlvbiBwaWNrcyB0aGUgcmlnaHQg
Y29kZSBhdAotLy8gcnVuLXRpbWUuCi0vLyBOb3RlIHRoYXQgc2V0VmFsdWUgYW5kIGdldFZhbHVl
IG9ubHkgZG8gKmFsaWduZWQqIHdyaXRlcyBhbmQgcmVhZHMhCi0vLyBOb3RlIHRoYXQgY2NhbGwg
dXNlcyBKUyB0eXBlcyBhcyBmb3IgZGVmaW5pbmcgdHlwZXMsIHdoaWxlIHNldFZhbHVlIGFuZAot
Ly8gZ2V0VmFsdWUgbmVlZCBMTFZNIHR5cGVzICgnaTgnLCAnaTMyJykgLSB0aGlzIGlzIGEgbG93
ZXItbGV2ZWwgb3BlcmF0aW9uCi1mdW5jdGlvbiBzZXRWYWx1ZShwdHIsIHZhbHVlLCB0eXBlLCBu
b1NhZmUpIHsKLSAgdHlwZSA9IHR5cGUgfHwgJ2k4JzsKLSAgaWYgKHR5cGUuY2hhckF0KHR5cGUu
bGVuZ3RoLTEpID09PSAnKicpIHR5cGUgPSAnaTMyJzsgLy8gcG9pbnRlcnMgYXJlIDMyLWJpdAot
ICAgIHN3aXRjaCh0eXBlKSB7Ci0gICAgICBjYXNlICdpMSc6IEhFQVA4WyhwdHIpXT12YWx1ZTsg
YnJlYWs7Ci0gICAgICBjYXNlICdpOCc6IEhFQVA4WyhwdHIpXT12YWx1ZTsgYnJlYWs7Ci0gICAg
ICBjYXNlICdpMTYnOiBIRUFQMTZbKChwdHIpPj4xKV09dmFsdWU7IGJyZWFrOwotICAgICAgY2Fz
ZSAnaTMyJzogSEVBUDMyWygocHRyKT4+MildPXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2UgJ2k2
NCc6ICh0ZW1wSTY0ID0gW3ZhbHVlPj4+MCwodGVtcERvdWJsZT12YWx1ZSwoKyhNYXRoLmFicyh0
ZW1wRG91YmxlKSkpID49ICgrKDEpKSA/ICh0ZW1wRG91YmxlID4gKCsoMCkpID8gKChNYXRoLm1p
bigoKyhNYXRoLmZsb29yKCh0ZW1wRG91YmxlKS8oKyg0Mjk0OTY3Mjk2KSkpKSksICgrKDQyOTQ5
NjcyOTUpKSkpfDApPj4+MCA6ICh+figoKyhNYXRoLmNlaWwoKHRlbXBEb3VibGUgLSArKCgofn4o
dGVtcERvdWJsZSkpKT4+PjApKS8oKyg0Mjk0OTY3Mjk2KSkpKSkpKT4+PjApIDogMCldLEhFQVAz
MlsoKHB0cik+PjIpXT10ZW1wSTY0WzBdLEhFQVAzMlsoKChwdHIpKyg0KSk+PjIpXT10ZW1wSTY0
WzFdKTsgYnJlYWs7Ci0gICAgICBjYXNlICdmbG9hdCc6IEhFQVBGMzJbKChwdHIpPj4yKV09dmFs
dWU7IGJyZWFrOwotICAgICAgY2FzZSAnZG91YmxlJzogSEVBUEY2NFsoKHB0cik+PjMpXT12YWx1
ZTsgYnJlYWs7Ci0gICAgICBkZWZhdWx0OiBhYm9ydCgnaW52YWxpZCB0eXBlIGZvciBzZXRWYWx1
ZTogJyArIHR5cGUpOwotICAgIH0KLX0KLU1vZHVsZVsnc2V0VmFsdWUnXSA9IHNldFZhbHVlOwot
Ly8gUGFyYWxsZWwgdG8gc2V0VmFsdWUuCi1mdW5jdGlvbiBnZXRWYWx1ZShwdHIsIHR5cGUsIG5v
U2FmZSkgewotICB0eXBlID0gdHlwZSB8fCAnaTgnOwotICBpZiAodHlwZS5jaGFyQXQodHlwZS5s
ZW5ndGgtMSkgPT09ICcqJykgdHlwZSA9ICdpMzInOyAvLyBwb2ludGVycyBhcmUgMzItYml0Ci0g
ICAgc3dpdGNoKHR5cGUpIHsKLSAgICAgIGNhc2UgJ2kxJzogcmV0dXJuIEhFQVA4WyhwdHIpXTsK
LSAgICAgIGNhc2UgJ2k4JzogcmV0dXJuIEhFQVA4WyhwdHIpXTsKLSAgICAgIGNhc2UgJ2kxNic6
IHJldHVybiBIRUFQMTZbKChwdHIpPj4xKV07Ci0gICAgICBjYXNlICdpMzInOiByZXR1cm4gSEVB
UDMyWygocHRyKT4+MildOwotICAgICAgY2FzZSAnaTY0JzogcmV0dXJuIEhFQVAzMlsoKHB0cik+
PjIpXTsKLSAgICAgIGNhc2UgJ2Zsb2F0JzogcmV0dXJuIEhFQVBGMzJbKChwdHIpPj4yKV07Ci0g
ICAgICBjYXNlICdkb3VibGUnOiByZXR1cm4gSEVBUEY2NFsoKHB0cik+PjMpXTsKLSAgICAgIGRl
ZmF1bHQ6IGFib3J0KCdpbnZhbGlkIHR5cGUgZm9yIHNldFZhbHVlOiAnICsgdHlwZSk7Ci0gICAg
fQotICByZXR1cm4gbnVsbDsKLX0KLU1vZHVsZVsnZ2V0VmFsdWUnXSA9IGdldFZhbHVlOwotdmFy
IEFMTE9DX05PUk1BTCA9IDA7IC8vIFRyaWVzIHRvIHVzZSBfbWFsbG9jKCkKLXZhciBBTExPQ19T
VEFDSyA9IDE7IC8vIExpdmVzIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGN1cnJlbnQgZnVuY3Rp
b24gY2FsbAotdmFyIEFMTE9DX1NUQVRJQyA9IDI7IC8vIENhbm5vdCBiZSBmcmVlZAotdmFyIEFM
TE9DX0RZTkFNSUMgPSAzOyAvLyBDYW5ub3QgYmUgZnJlZWQgZXhjZXB0IHRocm91Z2ggc2Jyawot
dmFyIEFMTE9DX05PTkUgPSA0OyAvLyBEbyBub3QgYWxsb2NhdGUKLU1vZHVsZVsnQUxMT0NfTk9S
TUFMJ10gPSBBTExPQ19OT1JNQUw7Ci1Nb2R1bGVbJ0FMTE9DX1NUQUNLJ10gPSBBTExPQ19TVEFD
SzsKLU1vZHVsZVsnQUxMT0NfU1RBVElDJ10gPSBBTExPQ19TVEFUSUM7Ci1Nb2R1bGVbJ0FMTE9D
X0RZTkFNSUMnXSA9IEFMTE9DX0RZTkFNSUM7Ci1Nb2R1bGVbJ0FMTE9DX05PTkUnXSA9IEFMTE9D
X05PTkU7Ci0vLyBhbGxvY2F0ZSgpOiBUaGlzIGlzIGZvciBpbnRlcm5hbCB1c2UuIFlvdSBjYW4g
dXNlIGl0IHlvdXJzZWxmIGFzIHdlbGwsIGJ1dCB0aGUgaW50ZXJmYWNlCi0vLyAgICAgICAgICAg
ICBpcyBhIGxpdHRsZSB0cmlja3kgKHNlZSBkb2NzIHJpZ2h0IGJlbG93KS4gVGhlIHJlYXNvbiBp
cyB0aGF0IGl0IGlzIG9wdGltaXplZAotLy8gICAgICAgICAgICAgZm9yIG11bHRpcGxlIHN5bnRh
eGVzIHRvIHNhdmUgc3BhY2UgaW4gZ2VuZXJhdGVkIGNvZGUuIFNvIHlvdSBzaG91bGQKLS8vICAg
ICAgICAgICAgIG5vcm1hbGx5IG5vdCB1c2UgYWxsb2NhdGUoKSwgYW5kIGluc3RlYWQgYWxsb2Nh
dGUgbWVtb3J5IHVzaW5nIF9tYWxsb2MoKSwKLS8vICAgICAgICAgICAgIGluaXRpYWxpemUgaXQg
d2l0aCBzZXRWYWx1ZSgpLCBhbmQgc28gZm9ydGguCi0vLyBAc2xhYjogQW4gYXJyYXkgb2YgZGF0
YSwgb3IgYSBudW1iZXIuIElmIGEgbnVtYmVyLCB0aGVuIHRoZSBzaXplIG9mIHRoZSBibG9jayB0
byBhbGxvY2F0ZSwKLS8vICAgICAgICBpbiAqYnl0ZXMqIChub3RlIHRoYXQgdGhpcyBpcyBzb21l
dGltZXMgY29uZnVzaW5nOiB0aGUgbmV4dCBwYXJhbWV0ZXIgZG9lcyBub3QKLS8vICAgICAgICBh
ZmZlY3QgdGhpcyEpCi0vLyBAdHlwZXM6IEVpdGhlciBhbiBhcnJheSBvZiB0eXBlcywgb25lIGZv
ciBlYWNoIGJ5dGUgKG9yIDAgaWYgbm8gdHlwZSBhdCB0aGF0IHBvc2l0aW9uKSwKLS8vICAgICAg
ICAgb3IgYSBzaW5nbGUgdHlwZSB3aGljaCBpcyB1c2VkIGZvciB0aGUgZW50aXJlIGJsb2NrLiBU
aGlzIG9ubHkgbWF0dGVycyBpZiB0aGVyZQotLy8gICAgICAgICBpcyBpbml0aWFsIGRhdGEgLSBp
ZiBAc2xhYiBpcyBhIG51bWJlciwgdGhlbiB0aGlzIGRvZXMgbm90IG1hdHRlciBhdCBhbGwgYW5k
IGlzCi0vLyAgICAgICAgIGlnbm9yZWQuCi0vLyBAYWxsb2NhdG9yOiBIb3cgdG8gYWxsb2NhdGUg
bWVtb3J5LCBzZWUgQUxMT0NfKgotZnVuY3Rpb24gYWxsb2NhdGUoc2xhYiwgdHlwZXMsIGFsbG9j
YXRvciwgcHRyKSB7Ci0gIHZhciB6ZXJvaW5pdCwgc2l6ZTsKLSAgaWYgKHR5cGVvZiBzbGFiID09
PSAnbnVtYmVyJykgewotICAgIHplcm9pbml0ID0gdHJ1ZTsKLSAgICBzaXplID0gc2xhYjsKLSAg
fSBlbHNlIHsKLSAgICB6ZXJvaW5pdCA9IGZhbHNlOwotICAgIHNpemUgPSBzbGFiLmxlbmd0aDsK
LSAgfQotICB2YXIgc2luZ2xlVHlwZSA9IHR5cGVvZiB0eXBlcyA9PT0gJ3N0cmluZycgPyB0eXBl
cyA6IG51bGw7Ci0gIHZhciByZXQ7Ci0gIGlmIChhbGxvY2F0b3IgPT0gQUxMT0NfTk9ORSkgewot
ICAgIHJldCA9IHB0cjsKLSAgfSBlbHNlIHsKLSAgICByZXQgPSBbX21hbGxvYywgUnVudGltZS5z
dGFja0FsbG9jLCBSdW50aW1lLnN0YXRpY0FsbG9jLCBSdW50aW1lLmR5bmFtaWNBbGxvY11bYWxs
b2NhdG9yID09PSB1bmRlZmluZWQgPyBBTExPQ19TVEFUSUMgOiBhbGxvY2F0b3JdKE1hdGgubWF4
KHNpemUsIHNpbmdsZVR5cGUgPyAxIDogdHlwZXMubGVuZ3RoKSk7Ci0gIH0KLSAgaWYgKHplcm9p
bml0KSB7Ci0gICAgdmFyIHB0ciA9IHJldCwgc3RvcDsKLSAgICBhc3NlcnQoKHJldCAmIDMpID09
IDApOwotICAgIHN0b3AgPSByZXQgKyAoc2l6ZSAmIH4zKTsKLSAgICBmb3IgKDsgcHRyIDwgc3Rv
cDsgcHRyICs9IDQpIHsKLSAgICAgIEhFQVAzMlsoKHB0cik+PjIpXT0wOwotICAgIH0KLSAgICBz
dG9wID0gcmV0ICsgc2l6ZTsKLSAgICB3aGlsZSAocHRyIDwgc3RvcCkgewotICAgICAgSEVBUDhb
KChwdHIrKyl8MCldPTA7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAgaWYgKHNpbmds
ZVR5cGUgPT09ICdpOCcpIHsKLSAgICBpZiAoc2xhYi5zdWJhcnJheSB8fCBzbGFiLnNsaWNlKSB7
Ci0gICAgICBIRUFQVTguc2V0KHNsYWIsIHJldCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIEhFQVBV
OC5zZXQobmV3IFVpbnQ4QXJyYXkoc2xhYiksIHJldCk7Ci0gICAgfQotICAgIHJldHVybiByZXQ7
Ci0gIH0KLSAgdmFyIGkgPSAwLCB0eXBlLCB0eXBlU2l6ZSwgcHJldmlvdXNUeXBlOwotICB3aGls
ZSAoaSA8IHNpemUpIHsKLSAgICB2YXIgY3VyciA9IHNsYWJbaV07Ci0gICAgaWYgKHR5cGVvZiBj
dXJyID09PSAnZnVuY3Rpb24nKSB7Ci0gICAgICBjdXJyID0gUnVudGltZS5nZXRGdW5jdGlvbklu
ZGV4KGN1cnIpOwotICAgIH0KLSAgICB0eXBlID0gc2luZ2xlVHlwZSB8fCB0eXBlc1tpXTsKLSAg
ICBpZiAodHlwZSA9PT0gMCkgewotICAgICAgaSsrOwotICAgICAgY29udGludWU7Ci0gICAgfQot
ICAgIGlmICh0eXBlID09ICdpNjQnKSB0eXBlID0gJ2kzMic7IC8vIHNwZWNpYWwgY2FzZTogd2Ug
aGF2ZSBvbmUgaTMyIGhlcmUsIGFuZCBvbmUgaTMyIGxhdGVyCi0gICAgc2V0VmFsdWUocmV0K2ks
IGN1cnIsIHR5cGUpOwotICAgIC8vIG5vIG5lZWQgdG8gbG9vayB1cCBzaXplIHVubGVzcyB0eXBl
IGNoYW5nZXMsIHNvIGNhY2hlIGl0Ci0gICAgaWYgKHByZXZpb3VzVHlwZSAhPT0gdHlwZSkgewot
ICAgICAgdHlwZVNpemUgPSBSdW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKHR5cGUpOwotICAgICAg
cHJldmlvdXNUeXBlID0gdHlwZTsKLSAgICB9Ci0gICAgaSArPSB0eXBlU2l6ZTsKLSAgfQotICBy
ZXR1cm4gcmV0OwotfQotTW9kdWxlWydhbGxvY2F0ZSddID0gYWxsb2NhdGU7Ci1mdW5jdGlvbiBQ
b2ludGVyX3N0cmluZ2lmeShwdHIsIC8qIG9wdGlvbmFsICovIGxlbmd0aCkgewotICAvLyBUT0RP
OiB1c2UgVGV4dERlY29kZXIKLSAgLy8gRmluZCB0aGUgbGVuZ3RoLCBhbmQgY2hlY2sgZm9yIFVU
RiB3aGlsZSBkb2luZyBzbwotICB2YXIgaGFzVXRmID0gZmFsc2U7Ci0gIHZhciB0OwotICB2YXIg
aSA9IDA7Ci0gIHdoaWxlICgxKSB7Ci0gICAgdCA9IEhFQVBVOFsoKChwdHIpKyhpKSl8MCldOwot
ICAgIGlmICh0ID49IDEyOCkgaGFzVXRmID0gdHJ1ZTsKLSAgICBlbHNlIGlmICh0ID09IDAgJiYg
IWxlbmd0aCkgYnJlYWs7Ci0gICAgaSsrOwotICAgIGlmIChsZW5ndGggJiYgaSA9PSBsZW5ndGgp
IGJyZWFrOwotICB9Ci0gIGlmICghbGVuZ3RoKSBsZW5ndGggPSBpOwotICB2YXIgcmV0ID0gJyc7
Ci0gIGlmICghaGFzVXRmKSB7Ci0gICAgdmFyIE1BWF9DSFVOSyA9IDEwMjQ7IC8vIHNwbGl0IHVw
IGludG8gY2h1bmtzLCBiZWNhdXNlIC5hcHBseSBvbiBhIGh1Z2Ugc3RyaW5nIGNhbiBvdmVyZmxv
dyB0aGUgc3RhY2sKLSAgICB2YXIgY3VycjsKLSAgICB3aGlsZSAobGVuZ3RoID4gMCkgewotICAg
ICAgY3VyciA9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBIRUFQVTguc3ViYXJy
YXkocHRyLCBwdHIgKyBNYXRoLm1pbihsZW5ndGgsIE1BWF9DSFVOSykpKTsKLSAgICAgIHJldCA9
IHJldCA/IHJldCArIGN1cnIgOiBjdXJyOwotICAgICAgcHRyICs9IE1BWF9DSFVOSzsKLSAgICAg
IGxlbmd0aCAtPSBNQVhfQ0hVTks7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAgdmFy
IHV0ZjggPSBuZXcgUnVudGltZS5VVEY4UHJvY2Vzc29yKCk7Ci0gIGZvciAoaSA9IDA7IGkgPCBs
ZW5ndGg7IGkrKykgewotICAgIHQgPSBIRUFQVThbKCgocHRyKSsoaSkpfDApXTsKLSAgICByZXQg
Kz0gdXRmOC5wcm9jZXNzQ0NoYXIodCk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVsZVsn
UG9pbnRlcl9zdHJpbmdpZnknXSA9IFBvaW50ZXJfc3RyaW5naWZ5OwotLy8gTWVtb3J5IG1hbmFn
ZW1lbnQKLXZhciBQQUdFX1NJWkUgPSA0MDk2OwotZnVuY3Rpb24gYWxpZ25NZW1vcnlQYWdlKHgp
IHsKLSAgcmV0dXJuICgoeCs0MDk1KT4+MTIpPDwxMjsKLX0KLXZhciBIRUFQOwotdmFyIEhFQVA4
LCBIRUFQVTgsIEhFQVAxNiwgSEVBUFUxNiwgSEVBUDMyLCBIRUFQVTMyLCBIRUFQRjMyLCBIRUFQ
RjY0OwotdmFyIFNUQVRJQ19CQVNFID0gMCwgU1RBVElDVE9QID0gMCwgc3RhdGljU2VhbGVkID0g
ZmFsc2U7IC8vIHN0YXRpYyBhcmVhCi12YXIgU1RBQ0tfQkFTRSA9IDAsIFNUQUNLVE9QID0gMCwg
U1RBQ0tfTUFYID0gMDsgLy8gc3RhY2sgYXJlYQotdmFyIERZTkFNSUNfQkFTRSA9IDAsIERZTkFN
SUNUT1AgPSAwOyAvLyBkeW5hbWljIGFyZWEgaGFuZGxlZCBieSBzYnJrCi1mdW5jdGlvbiBlbmxh
cmdlTWVtb3J5KCkgewotICBhYm9ydCgnQ2Fubm90IGVubGFyZ2UgbWVtb3J5IGFycmF5cyBpbiBh
c20uanMuIEVpdGhlciAoMSkgY29tcGlsZSB3aXRoIC1zIFRPVEFMX01FTU9SWT1YIHdpdGggWCBo
aWdoZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZSwgb3IgKDIpIHNldCBNb2R1bGUuVE9UQUxfTUVN
T1JZIGJlZm9yZSB0aGUgcHJvZ3JhbSBydW5zLicpOwotfQotdmFyIFRPVEFMX1NUQUNLID0gTW9k
dWxlWydUT1RBTF9TVEFDSyddIHx8IDUyNDI4ODA7Ci12YXIgVE9UQUxfTUVNT1JZID0gTW9kdWxl
WydUT1RBTF9NRU1PUlknXSB8fCAxNjc3NzIxNjsKLXZhciBGQVNUX01FTU9SWSA9IE1vZHVsZVsn
RkFTVF9NRU1PUlknXSB8fCAyMDk3MTUyOwotLy8gSW5pdGlhbGl6ZSB0aGUgcnVudGltZSdzIG1l
bW9yeQotLy8gY2hlY2sgZm9yIGZ1bGwgZW5naW5lIHN1cHBvcnQgKHVzZSBzdHJpbmcgJ3N1YmFy
cmF5JyB0byBhdm9pZCBjbG9zdXJlIGNvbXBpbGVyIGNvbmZ1c2lvbikKLWFzc2VydCghIUludDMy
QXJyYXkgJiYgISFGbG9hdDY0QXJyYXkgJiYgISEobmV3IEludDMyQXJyYXkoMSlbJ3N1YmFycmF5
J10pICYmICEhKG5ldyBJbnQzMkFycmF5KDEpWydzZXQnXSksCi0gICAgICAgJ0Nhbm5vdCBmYWxs
YmFjayB0byBub24tdHlwZWQgYXJyYXkgY2FzZTogQ29kZSBpcyB0b28gc3BlY2lhbGl6ZWQnKTsK
LXZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoVE9UQUxfTUVNT1JZKTsKLUhFQVA4ID0gbmV3
IEludDhBcnJheShidWZmZXIpOwotSEVBUDE2ID0gbmV3IEludDE2QXJyYXkoYnVmZmVyKTsKLUhF
QVAzMiA9IG5ldyBJbnQzMkFycmF5KGJ1ZmZlcik7Ci1IRUFQVTggPSBuZXcgVWludDhBcnJheShi
dWZmZXIpOwotSEVBUFUxNiA9IG5ldyBVaW50MTZBcnJheShidWZmZXIpOwotSEVBUFUzMiA9IG5l
dyBVaW50MzJBcnJheShidWZmZXIpOwotSEVBUEYzMiA9IG5ldyBGbG9hdDMyQXJyYXkoYnVmZmVy
KTsKLUhFQVBGNjQgPSBuZXcgRmxvYXQ2NEFycmF5KGJ1ZmZlcik7Ci0vLyBFbmRpYW5uZXNzIGNo
ZWNrIChub3RlOiBhc3N1bWVzIGNvbXBpbGVyIGFyY2ggd2FzIGxpdHRsZS1lbmRpYW4pCi1IRUFQ
MzJbMF0gPSAyNTU7Ci1hc3NlcnQoSEVBUFU4WzBdID09PSAyNTUgJiYgSEVBUFU4WzNdID09PSAw
LCAnVHlwZWQgYXJyYXlzIDIgbXVzdCBiZSBydW4gb24gYSBsaXR0bGUtZW5kaWFuIHN5c3RlbScp
OwotTW9kdWxlWydIRUFQJ10gPSBIRUFQOwotTW9kdWxlWydIRUFQOCddID0gSEVBUDg7Ci1Nb2R1
bGVbJ0hFQVAxNiddID0gSEVBUDE2OwotTW9kdWxlWydIRUFQMzInXSA9IEhFQVAzMjsKLU1vZHVs
ZVsnSEVBUFU4J10gPSBIRUFQVTg7Ci1Nb2R1bGVbJ0hFQVBVMTYnXSA9IEhFQVBVMTY7Ci1Nb2R1
bGVbJ0hFQVBVMzInXSA9IEhFQVBVMzI7Ci1Nb2R1bGVbJ0hFQVBGMzInXSA9IEhFQVBGMzI7Ci1N
b2R1bGVbJ0hFQVBGNjQnXSA9IEhFQVBGNjQ7Ci1mdW5jdGlvbiBjYWxsUnVudGltZUNhbGxiYWNr
cyhjYWxsYmFja3MpIHsKLSAgd2hpbGUoY2FsbGJhY2tzLmxlbmd0aCA+IDApIHsKLSAgICB2YXIg
Y2FsbGJhY2sgPSBjYWxsYmFja3Muc2hpZnQoKTsKLSAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09
ICdmdW5jdGlvbicpIHsKLSAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICBjb250aW51ZTsKLSAgICB9
Ci0gICAgdmFyIGZ1bmMgPSBjYWxsYmFjay5mdW5jOwotICAgIGlmICh0eXBlb2YgZnVuYyA9PT0g
J251bWJlcicpIHsKLSAgICAgIGlmIChjYWxsYmFjay5hcmcgPT09IHVuZGVmaW5lZCkgewotICAg
ICAgICBSdW50aW1lLmR5bkNhbGwoJ3YnLCBmdW5jKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAg
IFJ1bnRpbWUuZHluQ2FsbCgndmknLCBmdW5jLCBbY2FsbGJhY2suYXJnXSk7Ci0gICAgICB9Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIGZ1bmMoY2FsbGJhY2suYXJnID09PSB1bmRlZmluZWQgPyBudWxs
IDogY2FsbGJhY2suYXJnKTsKLSAgICB9Ci0gIH0KLX0KLXZhciBfX0FUUFJFUlVOX18gID0gW107
IC8vIGZ1bmN0aW9ucyBjYWxsZWQgYmVmb3JlIHRoZSBydW50aW1lIGlzIGluaXRpYWxpemVkCi12
YXIgX19BVElOSVRfXyAgICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIGR1cmluZyBzdGFydHVw
Ci12YXIgX19BVE1BSU5fXyAgICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIHdoZW4gbWFpbigp
IGlzIHRvIGJlIHJ1bgotdmFyIF9fQVRFWElUX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxl
ZCBkdXJpbmcgc2h1dGRvd24KLXZhciBfX0FUUE9TVFJVTl9fID0gW107IC8vIGZ1bmN0aW9ucyBj
YWxsZWQgYWZ0ZXIgdGhlIHJ1bnRpbWUgaGFzIGV4aXRlZAotdmFyIHJ1bnRpbWVJbml0aWFsaXpl
ZCA9IGZhbHNlOwotZnVuY3Rpb24gcHJlUnVuKCkgewotICAvLyBjb21wYXRpYmlsaXR5IC0gbWVy
Z2UgaW4gYW55dGhpbmcgZnJvbSBNb2R1bGVbJ3ByZVJ1biddIGF0IHRoaXMgdGltZQotICBpZiAo
TW9kdWxlWydwcmVSdW4nXSkgewotICAgIGlmICh0eXBlb2YgTW9kdWxlWydwcmVSdW4nXSA9PSAn
ZnVuY3Rpb24nKSBNb2R1bGVbJ3ByZVJ1biddID0gW01vZHVsZVsncHJlUnVuJ11dOwotICAgIHdo
aWxlIChNb2R1bGVbJ3ByZVJ1biddLmxlbmd0aCkgewotICAgICAgYWRkT25QcmVSdW4oTW9kdWxl
WydwcmVSdW4nXS5zaGlmdCgpKTsKLSAgICB9Ci0gIH0KLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3Mo
X19BVFBSRVJVTl9fKTsKLX0KLWZ1bmN0aW9uIGVuc3VyZUluaXRSdW50aW1lKCkgewotICBpZiAo
cnVudGltZUluaXRpYWxpemVkKSByZXR1cm47Ci0gIHJ1bnRpbWVJbml0aWFsaXplZCA9IHRydWU7
Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRJTklUX18pOwotfQotZnVuY3Rpb24gcHJlTWFp
bigpIHsKLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVE1BSU5fXyk7Ci19Ci1mdW5jdGlvbiBl
eGl0UnVudGltZSgpIHsKLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVEVYSVRfXyk7Ci19Ci1m
dW5jdGlvbiBwb3N0UnVuKCkgewotICAvLyBjb21wYXRpYmlsaXR5IC0gbWVyZ2UgaW4gYW55dGhp
bmcgZnJvbSBNb2R1bGVbJ3Bvc3RSdW4nXSBhdCB0aGlzIHRpbWUKLSAgaWYgKE1vZHVsZVsncG9z
dFJ1biddKSB7Ci0gICAgaWYgKHR5cGVvZiBNb2R1bGVbJ3Bvc3RSdW4nXSA9PSAnZnVuY3Rpb24n
KSBNb2R1bGVbJ3Bvc3RSdW4nXSA9IFtNb2R1bGVbJ3Bvc3RSdW4nXV07Ci0gICAgd2hpbGUgKE1v
ZHVsZVsncG9zdFJ1biddLmxlbmd0aCkgewotICAgICAgYWRkT25Qb3N0UnVuKE1vZHVsZVsncG9z
dFJ1biddLnNoaWZ0KCkpOwotICAgIH0KLSAgfQotICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FU
UE9TVFJVTl9fKTsKLX0KLWZ1bmN0aW9uIGFkZE9uUHJlUnVuKGNiKSB7Ci0gIF9fQVRQUkVSVU5f
Xy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25QcmVSdW4nXSA9IE1vZHVsZS5hZGRPblBy
ZVJ1biA9IGFkZE9uUHJlUnVuOwotZnVuY3Rpb24gYWRkT25Jbml0KGNiKSB7Ci0gIF9fQVRJTklU
X18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uSW5pdCddID0gTW9kdWxlLmFkZE9uSW5p
dCA9IGFkZE9uSW5pdDsKLWZ1bmN0aW9uIGFkZE9uUHJlTWFpbihjYikgewotICBfX0FUTUFJTl9f
LnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPblByZU1haW4nXSA9IE1vZHVsZS5hZGRPblBy
ZU1haW4gPSBhZGRPblByZU1haW47Ci1mdW5jdGlvbiBhZGRPbkV4aXQoY2IpIHsKLSAgX19BVEVY
SVRfXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25FeGl0J10gPSBNb2R1bGUuYWRkT25F
eGl0ID0gYWRkT25FeGl0OwotZnVuY3Rpb24gYWRkT25Qb3N0UnVuKGNiKSB7Ci0gIF9fQVRQT1NU
UlVOX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uUG9zdFJ1biddID0gTW9kdWxlLmFk
ZE9uUG9zdFJ1biA9IGFkZE9uUG9zdFJ1bjsKLS8vIFRvb2xzCi0vLyBUaGlzIHByb2Nlc3NlcyBh
IEpTIHN0cmluZyBpbnRvIGEgQy1saW5lIGFycmF5IG9mIG51bWJlcnMsIDAtdGVybWluYXRlZC4K
LS8vIEZvciBMTFZNLW9yaWdpbmF0aW5nIHN0cmluZ3MsIHNlZSBwYXJzZXIuanM6cGFyc2VMTFZN
U3RyaW5nIGZ1bmN0aW9uCi1mdW5jdGlvbiBpbnRBcnJheUZyb21TdHJpbmcoc3RyaW5neSwgZG9u
dEFkZE51bGwsIGxlbmd0aCAvKiBvcHRpb25hbCAqLykgewotICB2YXIgcmV0ID0gKG5ldyBSdW50
aW1lLlVURjhQcm9jZXNzb3IoKSkucHJvY2Vzc0pTU3RyaW5nKHN0cmluZ3kpOwotICBpZiAobGVu
Z3RoKSB7Ci0gICAgcmV0Lmxlbmd0aCA9IGxlbmd0aDsKLSAgfQotICBpZiAoIWRvbnRBZGROdWxs
KSB7Ci0gICAgcmV0LnB1c2goMCk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVsZVsnaW50
QXJyYXlGcm9tU3RyaW5nJ10gPSBpbnRBcnJheUZyb21TdHJpbmc7Ci1mdW5jdGlvbiBpbnRBcnJh
eVRvU3RyaW5nKGFycmF5KSB7Ci0gIHZhciByZXQgPSBbXTsKLSAgZm9yICh2YXIgaSA9IDA7IGkg
PCBhcnJheS5sZW5ndGg7IGkrKykgewotICAgIHZhciBjaHIgPSBhcnJheVtpXTsKLSAgICBpZiAo
Y2hyID4gMHhGRikgewotICAgICAgY2hyICY9IDB4RkY7Ci0gICAgfQotICAgIHJldC5wdXNoKFN0
cmluZy5mcm9tQ2hhckNvZGUoY2hyKSk7Ci0gIH0KLSAgcmV0dXJuIHJldC5qb2luKCcnKTsKLX0K
LU1vZHVsZVsnaW50QXJyYXlUb1N0cmluZyddID0gaW50QXJyYXlUb1N0cmluZzsKLS8vIFdyaXRl
IGEgSmF2YXNjcmlwdCBhcnJheSB0byBzb21ld2hlcmUgaW4gdGhlIGhlYXAKLWZ1bmN0aW9uIHdy
aXRlU3RyaW5nVG9NZW1vcnkoc3RyaW5nLCBidWZmZXIsIGRvbnRBZGROdWxsKSB7Ci0gIHZhciBh
cnJheSA9IGludEFycmF5RnJvbVN0cmluZyhzdHJpbmcsIGRvbnRBZGROdWxsKTsKLSAgdmFyIGkg
PSAwOwotICB3aGlsZSAoaSA8IGFycmF5Lmxlbmd0aCkgewotICAgIHZhciBjaHIgPSBhcnJheVtp
XTsKLSAgICBIRUFQOFsoKChidWZmZXIpKyhpKSl8MCldPWNocgotICAgIGkgPSBpICsgMTsKLSAg
fQotfQotTW9kdWxlWyd3cml0ZVN0cmluZ1RvTWVtb3J5J10gPSB3cml0ZVN0cmluZ1RvTWVtb3J5
OwotZnVuY3Rpb24gd3JpdGVBcnJheVRvTWVtb3J5KGFycmF5LCBidWZmZXIpIHsKLSAgZm9yICh2
YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewotICAgIEhFQVA4WygoKGJ1ZmZlcikr
KGkpKXwwKV09YXJyYXlbaV07Ci0gIH0KLX0KLU1vZHVsZVsnd3JpdGVBcnJheVRvTWVtb3J5J10g
PSB3cml0ZUFycmF5VG9NZW1vcnk7Ci1mdW5jdGlvbiB1blNpZ24odmFsdWUsIGJpdHMsIGlnbm9y
ZSwgc2lnKSB7Ci0gIGlmICh2YWx1ZSA+PSAwKSB7Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9Ci0g
IHJldHVybiBiaXRzIDw9IDMyID8gMipNYXRoLmFicygxIDw8IChiaXRzLTEpKSArIHZhbHVlIC8v
IE5lZWQgc29tZSB0cmlja2VyeSwgc2luY2UgaWYgYml0cyA9PSAzMiwgd2UgYXJlIHJpZ2h0IGF0
IHRoZSBsaW1pdCBvZiB0aGUgYml0cyBKUyB1c2VzIGluIGJpdHNoaWZ0cwotICAgICAgICAgICAg
ICAgICAgICA6IE1hdGgucG93KDIsIGJpdHMpICAgICAgICAgKyB2YWx1ZTsKLX0KLWZ1bmN0aW9u
IHJlU2lnbih2YWx1ZSwgYml0cywgaWdub3JlLCBzaWcpIHsKLSAgaWYgKHZhbHVlIDw9IDApIHsK
LSAgICByZXR1cm4gdmFsdWU7Ci0gIH0KLSAgdmFyIGhhbGYgPSBiaXRzIDw9IDMyID8gTWF0aC5h
YnMoMSA8PCAoYml0cy0xKSkgLy8gYWJzIGlzIG5lZWRlZCBpZiBiaXRzID09IDMyCi0gICAgICAg
ICAgICAgICAgICAgICAgICA6IE1hdGgucG93KDIsIGJpdHMtMSk7Ci0gIGlmICh2YWx1ZSA+PSBo
YWxmICYmIChiaXRzIDw9IDMyIHx8IHZhbHVlID4gaGFsZikpIHsgLy8gZm9yIGh1Z2UgdmFsdWVz
LCB3ZSBjYW4gaGl0IHRoZSBwcmVjaXNpb24gbGltaXQgYW5kIGFsd2F5cyBnZXQgdHJ1ZSBoZXJl
LiBzbyBkb24ndCBkbyB0aGF0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gYnV0LCBpbiBnZW5lcmFsIHRoZXJlIGlzIG5vIHBlcmZlY3Qg
c29sdXRpb24gaGVyZS4gV2l0aCA2NC1iaXQgaW50cywgd2UgZ2V0IHJvdW5kaW5nIGFuZCBlcnJv
cnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBUT0RPOiBJbiBpNjQgbW9kZSAxLCByZXNpZ24gdGhlIHR3byBwYXJ0cyBzZXBhcmF0ZWx5
IGFuZCBzYWZlbHkKLSAgICB2YWx1ZSA9IC0yKmhhbGYgKyB2YWx1ZTsgLy8gQ2Fubm90IGJpdHNo
aWZ0IGhhbGYsIGFzIGl0IG1heSBiZSBhdCB0aGUgbGltaXQgb2YgdGhlIGJpdHMgSlMgdXNlcyBp
biBiaXRzaGlmdHMKLSAgfQotICByZXR1cm4gdmFsdWU7Ci19Ci1pZiAoIU1hdGhbJ2ltdWwnXSkg
TWF0aFsnaW11bCddID0gZnVuY3Rpb24oYSwgYikgewotICB2YXIgYWggID0gYSA+Pj4gMTY7Ci0g
IHZhciBhbCA9IGEgJiAweGZmZmY7Ci0gIHZhciBiaCAgPSBiID4+PiAxNjsKLSAgdmFyIGJsID0g
YiAmIDB4ZmZmZjsKLSAgcmV0dXJuIChhbCpibCArICgoYWgqYmwgKyBhbCpiaCkgPDwgMTYpKXww
OwotfTsKLU1hdGguaW11bCA9IE1hdGhbJ2ltdWwnXTsKLS8vIEEgY291bnRlciBvZiBkZXBlbmRl
bmNpZXMgZm9yIGNhbGxpbmcgcnVuKCkuIElmIHdlIG5lZWQgdG8KLS8vIGRvIGFzeW5jaHJvbm91
cyB3b3JrIGJlZm9yZSBydW5uaW5nLCBpbmNyZW1lbnQgdGhpcyBhbmQKLS8vIGRlY3JlbWVudCBp
dC4gSW5jcmVtZW50aW5nIG11c3QgaGFwcGVuIGluIGEgcGxhY2UgbGlrZQotLy8gUFJFX1JVTl9B
RERJVElPTlMgKHVzZWQgYnkgZW1jYyB0byBhZGQgZmlsZSBwcmVsb2FkaW5nKS4KLS8vIE5vdGUg
dGhhdCB5b3UgY2FuIGFkZCBkZXBlbmRlbmNpZXMgaW4gcHJlUnVuLCBldmVuIHRob3VnaAotLy8g
aXQgaGFwcGVucyByaWdodCBiZWZvcmUgcnVuIC0gcnVuIHdpbGwgYmUgcG9zdHBvbmVkIHVudGls
Ci0vLyB0aGUgZGVwZW5kZW5jaWVzIGFyZSBtZXQuCi12YXIgcnVuRGVwZW5kZW5jaWVzID0gMDsK
LXZhciBydW5EZXBlbmRlbmN5VHJhY2tpbmcgPSB7fTsKLXZhciBjYWxsZWRJbml0ID0gZmFsc2Us
IGNhbGxlZFJ1biA9IGZhbHNlOwotdmFyIHJ1bkRlcGVuZGVuY3lXYXRjaGVyID0gbnVsbDsKLWZ1
bmN0aW9uIGFkZFJ1bkRlcGVuZGVuY3koaWQpIHsKLSAgcnVuRGVwZW5kZW5jaWVzKys7Ci0gIGlm
IChNb2R1bGVbJ21vbml0b3JSdW5EZXBlbmRlbmNpZXMnXSkgewotICAgIE1vZHVsZVsnbW9uaXRv
clJ1bkRlcGVuZGVuY2llcyddKHJ1bkRlcGVuZGVuY2llcyk7Ci0gIH0KLSAgaWYgKGlkKSB7Ci0g
ICAgYXNzZXJ0KCFydW5EZXBlbmRlbmN5VHJhY2tpbmdbaWRdKTsKLSAgICBydW5EZXBlbmRlbmN5
VHJhY2tpbmdbaWRdID0gMTsKLSAgfSBlbHNlIHsKLSAgICBNb2R1bGUucHJpbnRFcnIoJ3dhcm5p
bmc6IHJ1biBkZXBlbmRlbmN5IGFkZGVkIHdpdGhvdXQgSUQnKTsKLSAgfQotfQotTW9kdWxlWydh
ZGRSdW5EZXBlbmRlbmN5J10gPSBhZGRSdW5EZXBlbmRlbmN5OwotZnVuY3Rpb24gcmVtb3ZlUnVu
RGVwZW5kZW5jeShpZCkgewotICBydW5EZXBlbmRlbmNpZXMtLTsKLSAgaWYgKE1vZHVsZVsnbW9u
aXRvclJ1bkRlcGVuZGVuY2llcyddKSB7Ci0gICAgTW9kdWxlWydtb25pdG9yUnVuRGVwZW5kZW5j
aWVzJ10ocnVuRGVwZW5kZW5jaWVzKTsKLSAgfQotICBpZiAoaWQpIHsKLSAgICBhc3NlcnQocnVu
RGVwZW5kZW5jeVRyYWNraW5nW2lkXSk7Ci0gICAgZGVsZXRlIHJ1bkRlcGVuZGVuY3lUcmFja2lu
Z1tpZF07Ci0gIH0gZWxzZSB7Ci0gICAgTW9kdWxlLnByaW50RXJyKCd3YXJuaW5nOiBydW4gZGVw
ZW5kZW5jeSByZW1vdmVkIHdpdGhvdXQgSUQnKTsKLSAgfQotICBpZiAocnVuRGVwZW5kZW5jaWVz
ID09IDApIHsKLSAgICBpZiAocnVuRGVwZW5kZW5jeVdhdGNoZXIgIT09IG51bGwpIHsKLSAgICAg
IGNsZWFySW50ZXJ2YWwocnVuRGVwZW5kZW5jeVdhdGNoZXIpOwotICAgICAgcnVuRGVwZW5kZW5j
eVdhdGNoZXIgPSBudWxsOwotICAgIH0gCi0gICAgLy8gSWYgcnVuIGhhcyBuZXZlciBiZWVuIGNh
bGxlZCwgYW5kIHdlIHNob3VsZCBjYWxsIHJ1biAoSU5WT0tFX1JVTiBpcyB0cnVlLCBhbmQgTW9k
dWxlLm5vSW5pdGlhbFJ1biBpcyBub3QgZmFsc2UpCi0gICAgaWYgKCFjYWxsZWRSdW4gJiYgc2hv
dWxkUnVuTm93KSBydW4oKTsKLSAgfQotfQotTW9kdWxlWydyZW1vdmVSdW5EZXBlbmRlbmN5J10g
PSByZW1vdmVSdW5EZXBlbmRlbmN5OwotTW9kdWxlWyJwcmVsb2FkZWRJbWFnZXMiXSA9IHt9OyAv
LyBtYXBzIHVybCB0byBpbWFnZSBkYXRhCi1Nb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdID0ge307
IC8vIG1hcHMgdXJsIHRvIGF1ZGlvIGRhdGEKLWZ1bmN0aW9uIGxvYWRNZW1vcnlJbml0aWFsaXpl
cihmaWxlbmFtZSkgewotICBmdW5jdGlvbiBhcHBseURhdGEoZGF0YSkgewotICAgIEhFQVBVOC5z
ZXQoZGF0YSwgU1RBVElDX0JBU0UpOwotICB9Ci0gIC8vIGFsd2F5cyBkbyB0aGlzIGFzeW5jaHJv
bm91c2x5LCB0byBrZWVwIHNoZWxsIGFuZCB3ZWIgYXMgc2ltaWxhciBhcyBwb3NzaWJsZQotICBh
ZGRPblByZVJ1bihmdW5jdGlvbigpIHsKLSAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSB8fCBF
TlZJUk9OTUVOVF9JU19TSEVMTCkgewotICAgICAgYXBwbHlEYXRhKE1vZHVsZVsncmVhZEJpbmFy
eSddKGZpbGVuYW1lKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIEJyb3dzZXIuYXN5bmNMb2FkKGZp
bGVuYW1lLCBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIGFwcGx5RGF0YShkYXRhKTsKLSAgICAg
IH0sIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgdGhyb3cgJ2NvdWxkIG5vdCBsb2FkIG1lbW9y
eSBpbml0aWFsaXplciAnICsgZmlsZW5hbWU7Ci0gICAgICB9KTsKLSAgICB9Ci0gIH0pOwotfQot
Ly8gPT09IEJvZHkgPT09Ci1TVEFUSUNfQkFTRSA9IDg7Ci1TVEFUSUNUT1AgPSBTVEFUSUNfQkFT
RSArIDE2MzkyOwotdmFyIF9zdGRvdXQ7Ci12YXIgX3N0ZGluOwotdmFyIF9zdGRlcnI7Ci0vKiBn
bG9iYWwgaW5pdGlhbGl6ZXJzICovIF9fQVRJTklUX18ucHVzaCh7IGZ1bmM6IGZ1bmN0aW9uKCkg
eyBydW5Qb3N0U2V0cygpIH0gfSx7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBfX0dMT0JBTF9fSV9hKCkg
fSB9LHsgZnVuYzogZnVuY3Rpb24oKSB7IF9fR0xPQkFMX19JX2E4KCkgfSB9KTsKLXZhciBfX19m
c211ODsKLXZhciBfX19kc29faGFuZGxlOwotdmFyIF9fWlRWTjEwX19jeHhhYml2MTIwX19zaV9j
bGFzc190eXBlX2luZm9FOwotdmFyIF9fWlRWTjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2lu
Zm9FOwotdmFyIF9fWk5TdDNfXzExMl9fcnNfZGVmYXVsdEQxRXY7Ci12YXIgX19aTlN0MTNydW50
aW1lX2Vycm9yQzFFUEtjOwotdmFyIF9fWk5TdDEzcnVudGltZV9lcnJvckQxRXY7Ci12YXIgX19a
TlN0MTJsZW5ndGhfZXJyb3JEMUV2OwotdmFyIF9fWk5TdDNfXzE2bG9jYWxlQzFFdjsKLXZhciBf
X1pOU3QzX18xNmxvY2FsZUMxRVJLUzBfOwotdmFyIF9fWk5TdDNfXzE2bG9jYWxlRDFFdjsKLXZh
ciBfX1pOU3Q4YmFkX2Nhc3RDMUV2OwotdmFyIF9fWk5TdDhiYWRfY2FzdEQxRXY7Ci12YXIgX3N0
ZG91dCA9IF9zdGRvdXQ9YWxsb2NhdGUoWzAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NU
QVRJQyk7Ci12YXIgX3N0ZGluID0gX3N0ZGluPWFsbG9jYXRlKFswLDAsMCwwLDAsMCwwLDBdLCAi
aTgiLCBBTExPQ19TVEFUSUMpOwotdmFyIF9zdGRlcnIgPSBfc3RkZXJyPWFsbG9jYXRlKFswLDAs
MCwwLDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOwotX19aVFZOMTBfX2N4eGFiaXYxMjBf
X3NpX2NsYXNzX3R5cGVfaW5mb0U9YWxsb2NhdGUoWzAsMCwwLDAsMjAwLDM3LDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLV9fWlRWTjEwX19jeHhhYml2
MTE3X19jbGFzc190eXBlX2luZm9FPWFsbG9jYXRlKFswLDAsMCwwLDIxNiwzNywwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci0vKiBtZW1vcnkgaW5pdGlh
bGl6ZXIgKi8gYWxsb2NhdGUoWzAsMCwwLDAsMCwwLDM2LDY0LDAsMCwwLDAsMCwwLDg5LDY0LDAs
MCwwLDAsMCwxMzYsMTk1LDY0LDAsMCwwLDAsMTMyLDIxNSwxNTEsNjUsMCwxMjgsMjI0LDU1LDEy
MSwxOTUsNjUsNjcsMjMsMTEwLDUsMTgxLDE4MSwxODQsMTQ3LDcwLDI0NSwyNDksNjMsMjMzLDMs
NzksNTYsNzcsNTAsMjksNDgsMjQ5LDcyLDExOSwxMzAsOTAsNjAsMTkxLDExNSwxMjcsMjIxLDc5
LDIxLDExNyw3NCwxMTcsMTA4LDAsMCwwLDAsMCw3NCwxMTcsMTEwLDAsMCwwLDAsMCw2NSwxMTIs
MTE0LDAsMCwwLDAsMCw3Nyw5NywxMTQsMCwwLDAsMCwwLDcwLDEwMSw5OCwwLDAsMCwwLDAsNzQs
OTcsMTEwLDAsMCwwLDAsMCw2OCwxMDEsOTksMTAxLDEwOSw5OCwxMDEsMTE0LDAsMCwwLDAsMCww
LDAsMCw3OCwxMTEsMTE4LDEwMSwxMDksOTgsMTAxLDExNCwwLDAsMCwwLDAsMCwwLDAsNzksOTks
MTE2LDExMSw5OCwxMDEsMTE0LDAsODMsMTAxLDExMiwxMTYsMTAxLDEwOSw5OCwxMDEsMTE0LDAs
MCwwLDAsMCwwLDAsMTE3LDExMCwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCwz
MiwxMDgsMTExLDk5LDk3LDEwOCwxMDEsMzIsMTAyLDExMSwxMTQsMzIsMTE1LDExNiw5NywxMTAs
MTAwLDk3LDExNCwxMDAsMzIsMTA1LDExMCwxMTIsMTE3LDExNiwwLDAsMCw2NSwxMTcsMTAzLDEx
NywxMTUsMTE2LDAsMCw3NCwxMTcsMTA4LDEyMSwwLDAsMCwwLDc0LDExNywxMTAsMTAxLDAsMCww
LDAsNzcsOTcsMTIxLDAsMCwwLDAsMCw2NSwxMTIsMTE0LDEwNSwxMDgsMCwwLDAsNzcsOTcsMTE0
LDk5LDEwNCwwLDAsMCw3MCwxMDEsOTgsMTE0LDExNyw5NywxMTQsMTIxLDAsMCwwLDAsMCwwLDAs
MCw3NCw5NywxMTAsMTE3LDk3LDExNCwxMjEsMCw2OCwwLDAsMCwxMDEsMCwwLDAsOTksMCwwLDAs
MCwwLDAsMCw3OCwwLDAsMCwxMTEsMCwwLDAsMTE4LDAsMCwwLDAsMCwwLDAsNzksMCwwLDAsOTks
MCwwLDAsMTE2LDAsMCwwLDAsMCwwLDAsODMsMCwwLDAsMTAxLDAsMCwwLDExMiwwLDAsMCwwLDAs
MCwwLDk4LDk3LDExNSwxMDUsOTksOTUsMTE1LDExNiwxMTQsMTA1LDExMCwxMDMsMCwwLDAsMCw2
NSwwLDAsMCwxMTcsMCwwLDAsMTAzLDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsMTE3LDAsMCwwLDEw
OCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMCwwLDAsMCw3Nyww
LDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCwxMTIsMCwwLDAsMTE0LDAs
MCwwLDAsMCwwLDAsNzcsMCwwLDAsOTcsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsNzAsMCwwLDAs
MTAxLDAsMCwwLDk4LDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsOTcsMCwwLDAsMTEwLDAsMCwwLDAs
MCwwLDAsNjgsMCwwLDAsMTAxLDAsMCwwLDk5LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAsOTgs
MCwwLDAsMTAxLDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzgsMCwwLDAsMTExLDAs
MCwwLDExOCwwLDAsMCwxMDEsMCwwLDAsMTA5LDAsMCwwLDk4LDAsMCwwLDEwMSwwLDAsMCwxMTQs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc5LDAsMCwwLDk5LDAsMCwwLDExNiwwLDAsMCwxMTEsMCww
LDAsOTgsMCwwLDAsMTAxLDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDEwMSwwLDAs
MCwxMTIsMCwwLDAsMTE2LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAsOTgsMCwwLDAsMTAxLDAs
MCwwLDExNCwwLDAsMCwwLDAsMCwwLDY1LDAsMCwwLDExNywwLDAsMCwxMDMsMCwwLDAsMTE3LDAs
MCwwLDExNSwwLDAsMCwxMTYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNywwLDAs
MCwxMDgsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCwxMTcsMCwwLDAs
MTEwLDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAsMTEyLDAsMCwwLDEx
NCwwLDAsMCwxMDUsMCwwLDAsMTA4LDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsOTcsMCwwLDAsMTE0
LDAsMCwwLDk5LDAsMCwwLDEwNCwwLDAsMCwwLDAsMCwwLDcwLDAsMCwwLDEwMSwwLDAsMCw5OCww
LDAsMCwxMTQsMCwwLDAsMTE3LDAsMCwwLDk3LDAsMCwwLDExNCwwLDAsMCwxMjEsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDc0LDAsMCwwLDk3LDAsMCwwLDExMCwwLDAsMCwxMTcsMCwwLDAsOTcsMCww
LDAsMTE0LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDgwLDc3LDAsMCwwLDAsMCwwLDY1LDc3LDAs
MCwwLDAsMCwwLDgwLDAsMCwwLDc3LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCw3Nyww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTA4LDExMSw5OSw5NywxMDgsMTAxLDMyLDExMCwxMTEsMTE2
LDMyLDExNSwxMTcsMTEyLDExMiwxMTEsMTE0LDExNiwxMDEsMTAwLDAsMCwwLDAsMzcsMCwwLDAs
NzMsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsODMs
MCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsMTEyLDAsMCwwLDAsMCwwLDAsMzcsNzMsNTgsMzcsNzcs
NTgsMzcsODMsMzIsMzcsMTEyLDAsMCwwLDAsMCwzNywwLDAsMCw5NywwLDAsMCwzMiwwLDAsMCwz
NywwLDAsMCw5OCwwLDAsMCwzMiwwLDAsMCwzNywwLDAsMCwxMDAsMCwwLDAsMzIsMCwwLDAsMzcs
MCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcsMCww
LDAsODMsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsODksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM3
LDk3LDMyLDM3LDk4LDMyLDM3LDEwMCwzMiwzNyw3Miw1OCwzNyw3Nyw1OCwzNyw4MywzMiwzNyw4
OSwwLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4
LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNyw3Miw1OCwzNyw3Nyw1
OCwzNyw4MywwLDAsMCwwLDAsMCwwLDAsMTE1LDExNiwxMDAsNTgsNTgsOTgsOTcsMTAwLDk1LDk3
LDEwOCwxMDgsMTExLDk5LDAsMCwzNywwLDAsMCwxMDksMCwwLDAsNDcsMCwwLDAsMzcsMCwwLDAs
MTAwLDAsMCwwLDQ3LDAsMCwwLDM3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzcs
MTA5LDQ3LDM3LDEwMCw0NywzNywxMjEsMCwwLDAsMCwwLDAsMCwwLDEwMiwwLDAsMCw5NywwLDAs
MCwxMDgsMCwwLDAsMTE1LDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDEwMiw5NywxMDgsMTE1LDEw
MSwwLDAsMCwxMTYsMCwwLDAsMTE0LDAsMCwwLDExNywwLDAsMCwxMDEsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDExNiwxMTQsMTE3LDEwMSwwLDAsMCwwLDU4LDMyLDAsMCwwLDAsMCwwLDEwNSwxMTEs
MTE1LDk1LDk4LDk3LDExNSwxMDEsNTgsNTgsOTksMTA4LDEwMSw5NywxMTQsMCwzNywxMTIsMCww
LDAsMCwwLDAsMTE1LDExNiwxMDAsNTgsNTgsOTgsOTcsMTAwLDk1LDk5LDk3LDExNSwxMTYsMCww
LDAsNjcsMCwwLDAsMCwwLDAsMCwxMTgsMTAxLDk5LDExNiwxMTEsMTE0LDAsMCwzNyw0Niw0OCw3
NiwxMDIsMCwwLDAsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiwzMiwxMDEsMTE0
LDExNCwxMTEsMTE0LDAsODMsOTcsMTE2LDAsMCwwLDAsMCw3MCwxMTQsMTA1LDAsMCwwLDAsMCw4
NCwxMDQsMTE3LDAsMCwwLDAsMCwzNyw3NiwxMDIsMCwwLDAsMCwwLDEwNSwxMTEsMTE1LDExNiwx
MTQsMTAxLDk3LDEwOSwwLDAsMCwwLDAsMCwwLDAsODcsMTAxLDEwMCwwLDAsMCwwLDAsODQsMTE3
LDEwMSwwLDAsMCwwLDAsNzcsMTExLDExMCwwLDAsMCwwLDAsODMsMTE3LDExMCwwLDAsMCwwLDAs
ODMsOTcsMTE2LDExNywxMTQsMTAwLDk3LDEyMSwwLDAsMCwwLDAsMCwwLDAsNzAsMTE0LDEwNSwx
MDAsOTcsMTIxLDAsMCw4NCwxMDQsMTE3LDExNCwxMTUsMTAwLDk3LDEyMSwwLDAsMCwwLDAsMCww
LDAsODcsMTAxLDEwMCwxMTAsMTAxLDExNSwxMDAsOTcsMTIxLDAsMCwwLDAsMCwwLDAsODQsMTE3
LDEwMSwxMTUsMTAwLDk3LDEyMSwwLDc3LDExMSwxMTAsMTAwLDk3LDEyMSwwLDAsODMsMTE3LDEx
MCwxMDAsOTcsMTIxLDAsMCw4MywwLDAsMCw5NywwLDAsMCwxMTYsMCwwLDAsMCwwLDAsMCw3MCww
LDAsMCwxMTQsMCwwLDAsMTA1LDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTA0LDAsMCwwLDExNyww
LDAsMCwwLDAsMCwwLDg3LDAsMCwwLDEwMSwwLDAsMCwxMDAsMCwwLDAsMCwwLDAsMCw4NCwwLDAs
MCwxMTcsMCwwLDAsMTAxLDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsMTExLDAsMCwwLDExMCwwLDAs
MCwwLDAsMCwwLDExNywxMTAsMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwx
MDUsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTUsOTksOTcsMTE2LDEwMSwxMDMsMTExLDEx
NCwxMjEsMzIsMTAxLDExNCwxMTQsMTExLDExNCwwLDAsMCwwLDAsODMsMCwwLDAsMTE3LDAsMCww
LDExMCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDk3LDAsMCwwLDExNiwwLDAsMCwxMTcsMCwwLDAs
MTE0LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDcw
LDAsMCwwLDExNCwwLDAsMCwxMDUsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTA0LDAsMCwwLDExNywwLDAsMCwxMTQsMCwwLDAsMTE1
LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg3LDAs
MCwwLDEwMSwwLDAsMCwxMDAsMCwwLDAsMTEwLDAsMCwwLDEwMSwwLDAsMCwxMTUsMCwwLDAsMTAw
LDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDg0LDAsMCwwLDExNywwLDAsMCwxMDEs
MCwwLDAsMTE1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw3Nyww
LDAsMCwxMTEsMCwwLDAsMTEwLDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDgzLDAsMCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMTAwLDAsMCwwLDk3LDAs
MCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjgsMTAxLDk5LDAsMCwwLDAsMCw3OCwxMTEs
MTE4LDAsMCwwLDAsMCw3OSw5OSwxMTYsMCwwLDAsMCwwLDgzLDEwMSwxMTIsMCwwLDAsMCwwLDY1
LDExNywxMDMsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsMCwwLDAsMCwwLDAs
NDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsMCwwLDAsMCwwLDAsMzcsMCwwLDAsODksMCww
LDAsNDUsMCwwLDAsMzcsMCwwLDAsMTA5LDAsMCwwLDQ1LDAsMCwwLDM3LDAsMCwwLDEwMCwwLDAs
MCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAsMCwz
NywwLDAsMCw4MywwLDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3Nyww
LDAsMCwwLDAsMCwwLDM3LDAsMCwwLDczLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCww
LDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDExMiwwLDAsMCww
LDAsMCwwLDM3LDAsMCwwLDEwOSwwLDAsMCw0NywwLDAsMCwzNywwLDAsMCwxMDAsMCwwLDAsNDcs
MCwwLDAsMzcsMCwwLDAsMTIxLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAs
MCwwLDc3LDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDM3LDcyLDU4LDM3LDc3LDU4
LDM3LDgzLDM3LDcyLDU4LDM3LDc3LDAsMCwwLDM3LDczLDU4LDM3LDc3LDU4LDM3LDgzLDMyLDM3
LDExMiwwLDAsMCwwLDAsMzcsODksNDUsMzcsMTA5LDQ1LDM3LDEwMCwzNywxMDksNDcsMzcsMTAw
LDQ3LDM3LDEyMSwzNyw3Miw1OCwzNyw3Nyw1OCwzNyw4MywzNywwLDAsMCwwLDAsMCwwLDM3LDEx
MiwwLDAsMCwwLDAsMCwwLDAsMCwwLDIyNCwzMSwwLDAsMzAsMCwwLDAsMTE2LDAsMCwwLDk4LDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQwLDMxLDAsMCwxOTYsMCwwLDAs
MTY0LDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzMiww
LDAsNzAsMCwwLDAsNiwxLDAsMCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDE2LDMyLDAsMCw5NCwwLDAsMCw4LDAsMCwwLDExMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDMyLDMyLDAsMCw5NCwwLDAsMCwyMCwwLDAsMCwxMTAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw1NiwzMiwwLDAsMTY4LDAsMCwwLDg0LDAsMCww
LDQ4LDAsMCwwLDIsMCwwLDAsOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDg4LDMyLDAsMCwyMzAsMCwwLDAsMTg2LDAsMCwwLDQ4LDAsMCwwLDQsMCwwLDAsMTQsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjAsMzIsMCwwLDE2MiwwLDAsMCwxODgs
MCwwLDAsNDgsMCwwLDAsOCwwLDAsMCwxMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDE1MiwzMiwwLDAsMjU0LDAsMCwwLDE0MCwwLDAsMCw0OCwwLDAsMCw2LDAsMCwwLDEw
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNTYsMzMsMCwwLDI1MiwwLDAs
MCwxNiwwLDAsMCw0OCwwLDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg4LDMz
LDAsMCwxNjAsMCwwLDAsMTA4LDAsMCwwLDQ4LDAsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMTIwLDMzLDAsMCwzOCwwLDAsMCwxMTAsMCwwLDAsNDgsMCwwLDAsMTIwLDAsMCww
LDQsMCwwLDAsMzIsMCwwLDAsNiwwLDAsMCwyMCwwLDAsMCw1NiwwLDAsMCwyLDAsMCwwLDI0OCwy
NTUsMjU1LDI1NSwxMjAsMzMsMCwwLDIyLDAsMCwwLDgsMCwwLDAsMzIsMCwwLDAsMTIsMCwwLDAs
MiwwLDAsMCwzMCwwLDAsMCwxMjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwxNjAsMzMsMCwwLDI0MiwwLDAsMCwyMjIsMCwwLDAsNDgsMCwwLDAsMjAsMCwwLDAsMTYsMCww
LDAsNjAsMCwwLDAsMjYsMCwwLDAsMTgsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDI0OCwyNTUsMjU1
LDI1NSwxNjAsMzMsMCwwLDcwLDAsMCwwLDEwNCwwLDAsMCwxMTYsMCwwLDAsMTIyLDAsMCwwLDY0
LDAsMCwwLDQ0LDAsMCwwLDU0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MjAwLDMzLDAsMCw3OCwwLDAsMCwxOTAsMCwwLDAsNDgsMCwwLDAsNDgsMCwwLDAsNDAsMCwwLDAs
OCwwLDAsMCwzOCwwLDAsMCw0OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMTYsMzMs
MCwwLDU4LDAsMCwwLDY0LDAsMCwwLDQ4LDAsMCwwLDQyLDAsMCwwLDg0LDAsMCwwLDEyLDAsMCww
LDU0LDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjMyLDMzLDAsMCwyNDYs
MCwwLDAsMiwwLDAsMCw0OCwwLDAsMCwyNCwwLDAsMCwzMCwwLDAsMCw2NCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCw4LDM0LDAsMCw0NiwwLDAsMCwyMDgsMCwwLDAsNDgsMCwwLDAsMzYs
MCwwLDAsMTQsMCwwLDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDAsMzQsMCww
LDIxMCwwLDAsMCwxMTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDgsMzQsMCwwLDI4
LDAsMCwwLDEzOCwwLDAsMCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDY0LDM0LDAsMCw2LDAsMCwwLDE3NCwwLDAsMCw0OCwwLDAsMCw4LDAsMCwwLDYsMCwwLDAsMTIs
MCwwLDAsNCwwLDAsMCwxMCwwLDAsMCw0LDAsMCwwLDIsMCwwLDAsMTIsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw5NiwzNCwwLDAsOTgsMCwwLDAsMTgsMCwwLDAsNDgsMCww
LDAsMjAsMCwwLDAsMjQsMCwwLDAsMzQsMCwwLDAsMjIsMCwwLDAsMjIsMCwwLDAsOCwwLDAsMCw2
LDAsMCwwLDE4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDM0LDAs
MCw0MCwwLDAsMCwyNCwwLDAsMCw0OCwwLDAsMCw0OCwwLDAsMCw0NiwwLDAsMCwzOCwwLDAsMCw0
MCwwLDAsMCwzMCwwLDAsMCw0NCwwLDAsMCwzNiwwLDAsMCw1NCwwLDAsMCw1MiwwLDAsMCw1MCww
LDAsMCwyNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjAsMzQsMCwwLDUyLDAsMCww
LDQsMCwwLDAsNDgsMCwwLDAsNzYsMCwwLDAsNzAsMCwwLDAsNjQsMCwwLDAsNjYsMCwwLDAsNTgs
MCwwLDAsNjgsMCwwLDAsNjIsMCwwLDAsMjgsMCwwLDAsNzQsMCwwLDAsNzIsMCwwLDAsNDIsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTkyLDM0LDAsMCw3NCwwLDAsMCw5MiwwLDAsMCw0
OCwwLDAsMCwxNiwwLDAsMCwxMiwwLDAsMCwxMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwyMDgsMzQsMCwwLDI2LDAsMCwwLDE3NiwwLDAsMCw0OCwwLDAsMCwyMiwwLDAsMCwxNCwwLDAs
MCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIyNCwzNCwwLDAsMjI4LDAsMCwwLDEz
MCwwLDAsMCw0OCwwLDAsMCwxNCwwLDAsMCw0LDAsMCwwLDIwLDAsMCwwLDE2LDAsMCwwLDYyLDAs
MCwwLDQsMCwwLDAsNzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNSwwLDAsMTgw
LDAsMCwwLDYwLDAsMCwwLDQ4LDAsMCwwLDIsMCwwLDAsOCwwLDAsMCw4LDAsMCwwLDEwNiwwLDAs
MCw5NiwwLDAsMCwxOCwwLDAsMCw5NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzMiwz
NSwwLDAsMTgwLDAsMCwwLDEzMiwwLDAsMCw0OCwwLDAsMCwxNiwwLDAsMCw2LDAsMCwwLDIsMCww
LDAsMTI2LDAsMCwwLDQ2LDAsMCwwLDEyLDAsMCwwLDE4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDY0LDM1LDAsMCwxODAsMCwwLDAsMTUyLDAsMCwwLDQ4LDAsMCwwLDEwLDAsMCwwLDEy
LDAsMCwwLDI0LDAsMCwwLDM0LDAsMCwwLDc0LDAsMCwwLDYsMCwwLDAsNjYsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsOTYsMzUsMCwwLDE4MCwwLDAsMCwzNCwwLDAsMCw0OCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDExMiwzNSwwLDAsNTYsMCwwLDAsMTU2LDAs
MCwwLDQ4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDM1LDAsMCwx
ODAsMCwwLDAsODAsMCwwLDAsNDgsMCwwLDAsMjAsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDEwLDAs
MCwwLDE2LDAsMCwwLDI4LDAsMCwwLDIyLDAsMCwwLDYsMCwwLDAsNiwwLDAsMCw4LDAsMCwwLDEw
LDAsMCwwLDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYwLDM1LDAs
MCw0LDEsMCwwLDM2LDAsMCwwLDQ4LDAsMCwwLDIsMCwwLDAsNCwwLDAsMCwxOCwwLDAsMCwzNCww
LDAsMCw4LDAsMCwwLDYsMCwwLDAsMjYsMCwwLDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwyMDgsMzUsMCwwLDY2LDAsMCwwLDIxOCwwLDAsMCw3OCwwLDAsMCwyLDAs
MCwwLDE0LDAsMCwwLDMyLDAsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwyMjQsMzUsMCwwLDE4MCwwLDAsMCw4NiwwLDAsMCw0OCwwLDAsMCwxMCwwLDAsMCwxMiww
LDAsMCwyNCwwLDAsMCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2LDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDI0MCwzNSwwLDAsMTgwLDAsMCwwLDIzOCwwLDAsMCw0OCwwLDAsMCwx
MCwwLDAsMCwxMiwwLDAsMCwyNCwwLDAsMCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2LDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzYsMCwwLDEyNiwwLDAsMCwyMzQsMCwwLDAs
MTYsMCwwLDAsMjIsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsODgsMCwwLDAsMTAwLDAsMCwwLDMw
LDAsMCwwLDI4LDAsMCwwLDI2LDAsMCwwLDI4LDAsMCwwLDQwLDAsMCwwLDIwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDgsMzYsMCwwLDEwLDAsMCwwLDExOCwwLDAsMCw1OCwwLDAsMCwz
OCwwLDAsMCwyOCwwLDAsMCw2LDAsMCwwLDUwLDAsMCwwLDg2LDAsMCwwLDE4LDAsMCwwLDYsMCww
LDAsMTAsMCwwLDAsMjQsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMTYsMzYsMCwwLDEwMCwwLDAsMCwxOTQsMCwwLDAsMiwwLDAsMCwyLDAsMCwwLDE0LDAs
MCwwLDMyLDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNCwwLDAsMCwwLDAs
MCwwLDU2LDM2LDAsMCw0NCwwLDAsMCwyMDYsMCwwLDAsMjUyLDI1NSwyNTUsMjU1LDI1MiwyNTUs
MjU1LDI1NSw1NiwzNiwwLDAsMTQ2LDAsMCwwLDEyNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNCww
LDAsMCwwLDAsMCwwLDgwLDM2LDAsMCwyMTIsMCwwLDAsMjM2LDAsMCwwLDI1MiwyNTUsMjU1LDI1
NSwyNTIsMjU1LDI1NSwyNTUsODAsMzYsMCwwLDEwNiwwLDAsMCwyMDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDgsMCwwLDAsMCwwLDAsMCwxMDQsMzYsMCwwLDg4LDAsMCwwLDgsMSwwLDAsMjQ4LDI1
NSwyNTUsMjU1LDI0OCwyNTUsMjU1LDI1NSwxMDQsMzYsMCwwLDE4MiwwLDAsMCwyMzIsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDgsMCwwLDAsMCwwLDAsMCwxMjgsMzYsMCwwLDEwNCwwLDAsMCwyMDQs
MCwwLDAsMjQ4LDI1NSwyNTUsMjU1LDI0OCwyNTUsMjU1LDI1NSwxMjgsMzYsMCwwLDEzNiwwLDAs
MCw1MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzYsMCwwLDIwMiwwLDAsMCwx
ODQsMCwwLDAsMzgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxOTIsMzYs
MCwwLDI0OCwwLDAsMCwyMjYsMCwwLDAsNCwwLDAsMCwyMiwwLDAsMCwxNiwwLDAsMCwxMCwwLDAs
MCw1OCwwLDAsMCwxMDAsMCwwLDAsMzAsMCwwLDAsMjgsMCwwLDAsMjYsMCwwLDAsMjgsMCwwLDAs
NDAsMCwwLDAsMjYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjA4LDM2LDAsMCwxNTQs
MCwwLDAsMTc4LDAsMCwwLDM0LDAsMCwwLDM4LDAsMCwwLDI4LDAsMCwwLDYsMCwwLDAsOTAsMCww
LDAsODYsMCwwLDAsMTgsMCwwLDAsNiwwLDAsMCwxMCwwLDAsMCwyNCwwLDAsMCwxNiwwLDAsMCwx
NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM3LDAsMCwyMjAsMCwwLDAsMTQ0LDAs
MCwwLDQ4LDAsMCwwLDY4LDAsMCwwLDExOCwwLDAsMCw0MCwwLDAsMCw4MCwwLDAsMCw2LDAsMCww
LDI4LDAsMCwwLDUyLDAsMCwwLDIwLDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDMyLDM3LDAsMCwxMDIsMCwwLDAsNTQsMCwwLDAsNDgsMCwwLDAsMTEyLDAsMCwwLDQsMCww
LDAsNjYsMCwwLDAsNzQsMCwwLDAsNzYsMCwwLDAsMjIsMCwwLDAsMTE0LDAsMCwwLDUwLDAsMCww
LDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDM3LDAsMCwyMjQsMCwwLDAsMTE0
LDAsMCwwLDQ4LDAsMCwwLDE0LDAsMCwwLDYwLDAsMCwwLDQ2LDAsMCwwLDQyLDAsMCwwLDc4LDAs
MCwwLDUyLDAsMCwwLDkyLDAsMCwwLDU2LDAsMCwwLDMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDk2LDM3LDAsMCw3NiwwLDAsMCwxNzIsMCwwLDAsNDgsMCwwLDAsMTAyLDAsMCwwLDEw
OCwwLDAsMCwyNiwwLDAsMCw3MiwwLDAsMCwyNCwwLDAsMCwxOCwwLDAsMCw4MCwwLDAsMCw3MCww
LDAsMCw2OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzcsMCwwLDkwLDAsMCww
LDY4LDAsMCwwLDYyLDAsMCwwLDIyLDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDg4LDAsMCwwLDEw
MCwwLDAsMCwzMCwwLDAsMCw3MiwwLDAsMCw4MiwwLDAsMCwxMiwwLDAsMCw0MCwwLDAsMCwyMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjgsMzcsMCwwLDE0LDAsMCwwLDIxNCwwLDAs
MCw2MCwwLDAsMCwzOCwwLDAsMCwyOCwwLDAsMCw2LDAsMCwwLDUwLDAsMCwwLDg2LDAsMCwwLDE4
LDAsMCwwLDU2LDAsMCwwLDI0LDAsMCwwLDQsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMTg0LDM3LDAsMCwyNTAsMCwwLDAsMTk4LDAsMCwwLDYyLDAsMCww
LDE1MCwwLDAsMCw4LDAsMCwwLDIsMCwwLDAsNiwwLDAsMCw0LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCw4MywxMTYsNTcsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSwwLDAsMCwwLDgz
LDExNiw1NywxMDEsMTIwLDk5LDEwMSwxMTIsMTE2LDEwNSwxMTEsMTEwLDAsMCwwLDAsODMsMTE2
LDU3LDk4LDk3LDEwMCw5NSw5NywxMDgsMTA4LDExMSw5OSwwLDAsMCwwLDgzLDExNiw1Niw5OCw5
NywxMDAsOTUsOTksOTcsMTE1LDExNiwwLDAsMCwwLDAsODMsMTE2LDQ5LDUxLDExNCwxMTcsMTEw
LDExNiwxMDUsMTA5LDEwMSw5NSwxMDEsMTE0LDExNCwxMTEsMTE0LDAsMCwwLDAsMCwwLDAsODMs
MTE2LDQ5LDUwLDEwOCwxMDEsMTEwLDEwMywxMTYsMTA0LDk1LDEwMSwxMTQsMTE0LDExMSwxMTQs
MCwwLDAsMCwwLDAsMCwwLDgzLDExNiw0OSw0OSwxMDgsMTExLDEwMywxMDUsOTksOTUsMTAxLDEx
NCwxMTQsMTExLDExNCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMTYsMTA1LDEwOSwxMDEs
OTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcs
MTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMTIsMTE3LDExNiw3MywxMTksNzgsODMsOTUsNDksNTcs
MTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQs
OTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2
LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDU3LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYsNzMs
OTksNzgsODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5
NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTks
MTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5
LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMDksMTExLDExMCwxMDEsMTIxLDk1
LDEwMywxMDEsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwxMTQsMTAxLDk3
LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3MywxMTks
NzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDcz
LDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsMTA5
LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiw3Myw5OSw3OCw4Myw5NSw0OSw1NywxMDUs
MTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5Nywx
MTYsMTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQs
OTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgsODMsMTE2LDUx
LDk1LDk1LDQ5LDU3LDk4LDk3LDExNSwxMDUsOTksOTUsMTA1LDExMSwxMTUsNzMsMTE5LDc4LDgz
LDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTks
NjksNjksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTgsOTcs
MTE1LDEwNSw5OSw5NSwxMDUsMTExLDExNSw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcs
MTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksMCwwLDAsMCww
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUsMTEyLDEx
NywxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5NSw5NSwx
MTAsMTE3LDEwOSw5NSwxMTIsMTE3LDExNiw3Myw5OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsNzMsMTE5LDY5LDY5
LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5NSw5NSwxMTAsMTE3LDEwOSw5NSwxMDMs
MTAxLDExNiw3Myw5OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2LDEw
NSwxMDksMTAxLDk1LDExMiwxMTcsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMTEsMTE1LDEx
NiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTEx
LDExNCw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEw
NSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5
NSw5NSw0OSw1NiwxMTYsMTA1LDEwOSwxMDEsOTUsMTEyLDExNywxMTYsNzMsOTksNzgsODMsOTUs
NDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEw
MSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5
NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDExNiw3
MywxMTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEw
Miw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5
LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjks
NjksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2LDEwNSwxMDksMTAx
LDk1LDEwMywxMDEsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwxMDEs
OTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDk5
LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3
Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Niwx
MTAsMTE3LDEwOSwxMTIsMTE3LDExMCw5OSwxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDU2LDExMCwxMTcsMTA5LDExMiwxMTcsMTEwLDk5LDExNiw3Myw5OSw2
OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMDksMTAxLDExNSwxMTUsOTcs
MTAzLDEwMSwxMTUsNzMsMTE5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2
LDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDExNSw3Myw5OSw2OSw2OSwwLDAsMCwwLDc4LDgz
LDExNiw1MSw5NSw5NSw0OSw1NiwxMDUsMTExLDExNSw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCww
LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDEwNSwxMTEsMTE1LDk1LDk4LDk3LDEx
NSwxMDEsNTUsMTAyLDk3LDEwNSwxMDgsMTE3LDExNCwxMDEsNjksMCwwLDAsMCwwLDAsMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywxMDksOTUsMTEyLDExNywxMTYsNzMsMTE5LDc4
LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1
LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQs
OTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5
LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywxMDksOTUsMTEyLDEx
NywxMTYsNzMsOTksNzgsODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgs
MTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUs
NDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5
LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywx
MDksOTUsMTAzLDEwMSwxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwx
MDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDcz
LDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwx
MTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUs
NDksNTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsNzMsOTksNzgsODMsOTUsNDksNTcsMTA1
LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcs
MTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0
LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwOCwxMDgsOTcsMTE2LDEwMSw3MywxMTksNjksNjks
MCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSw5OSwxMTEsMTA4LDEwOCw5NywxMTYs
MTAxLDczLDk5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTEx
LDEwMCwxMDEsOTksMTE4LDExNiw3MywxMTksOTksNDksNDgsOTUsMTA5LDk4LDExNSwxMTYsOTcs
MTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw1NSw5OSwxMTEsMTAwLDEwMSw5OSwxMTgsMTE2LDczLDk5LDk5LDQ5LDQ4LDk1LDEwOSw5OCwx
MTUsMTE2LDk3LDExNiwxMDEsOTUsMTE2LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3Myw2OCwxMTUsOTksNDks
NDgsOTUsMTA5LDk4LDExNSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCwwLDAs
MCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3Myw2
OCwxMDUsOTksNDksNDgsOTUsMTA5LDk4LDExNSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYsNjksNjks
MCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTQsMTA4LDExMSw5OSw5NywxMDgs
MTAxLDUzLDEwMiw5Nyw5OSwxMDEsMTE2LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1
NCwxMDgsMTExLDk5LDk3LDEwOCwxMDEsNTMsOTUsOTUsMTA1LDEwOSwxMTIsNjksMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDUzLDk5LDExNiwxMjEsMTEyLDEwMSw3MywxMTksNjksNjksMCww
LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTMsOTksMTE2LDEyMSwxMTIsMTAxLDcz
LDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDUwLDQ4LDk1LDk1
LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDExNiw5NSw5OSw5NSwxMTUsMTE2LDExMSwxMTQs
OTcsMTAzLDEwMSw3MywxMTksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUs
NDksNTAsNDgsOTUsOTUsMTE2LDEwNSwxMDksMTAxLDk1LDEwMywxMDEsMTE2LDk1LDk5LDk1LDEx
NSwxMTYsMTExLDExNCw5NywxMDMsMTAxLDczLDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDQ5LDU3LDk1LDk1LDEwNSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEw
OSw5NSw5OSw5NywxMTYsMTAxLDEwMywxMTEsMTE0LDEyMSw2OSwwLDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNDksNTUsOTUsOTUsMTE5LDEwNSwxMDAsMTAxLDExMCw5NSwxMDIsMTE0LDExMSwx
MDksOTUsMTE3LDExNiwxMDIsNTYsNzMsNzYsMTA2LDUxLDUwLDY5LDY5LDY5LDAsMCwwLDAsMCww
LDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1NCw5NSw5NSwxMTAsOTcsMTE0LDExNCwxMTEsMTE5
LDk1LDExNiwxMTEsOTUsMTE3LDExNiwxMDIsNTYsNzMsNzYsMTA2LDUxLDUwLDY5LDY5LDY5LDAs
MCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUzLDk4LDk3LDExNSwxMDUsOTks
OTUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDczLDExOSw3OCw4Myw5NSw0OSw0
OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5
LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTMsOTgsOTcsMTE1
LDEwNSw5OSw5NSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsNzMsOTksNzgsODMs
OTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5
LDY5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTIsMTAx
LDExNCwxMTQsMTExLDExNCw5NSw5OSw5NywxMTYsMTAxLDEwMywxMTEsMTE0LDEyMSw2OSwwLDAs
MCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUyLDk1LDk1LDExNSwxMDQsOTcs
MTE0LDEwMSwxMDAsOTUsOTksMTExLDExNywxMTAsMTE2LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNDksNTIsOTUsOTUsMTEwLDExNywxMDksOTUsMTEyLDExNywxMTYs
OTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDQ5LDUyLDk1LDk1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2LDk1LDk4LDk3LDExNSwxMDEs
NjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSwxMDksMTAxLDEx
NSwxMTUsOTcsMTAzLDEwMSwxMTUsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDc4LDgzLDExNiw1MSw5
NSw5NSw0OSw0OSw1MSw5OCw5NywxMTUsMTA1LDk5LDk1LDExMSwxMTUsMTE2LDExNCwxMDEsOTcs
MTA5LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1
LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDks
NTEsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3Myw5OSw3
OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMs
OTksNjksNjksNjksNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSw5OCw5NywxMTUs
MTA1LDk5LDk1LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDczLDExOSw3OCw4Myw5NSw0OSw0
OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5
LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTEsOTgsOTcsMTE1LDEwNSw5OSw5NSwx
MDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcs
MTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksMCwwLDc4LDgz
LDExNiw1MSw5NSw5NSw0OSw0OSw1MCwxMTUsMTIxLDExNSwxMTYsMTAxLDEwOSw5NSwxMDEsMTE0
LDExNCwxMTEsMTE0LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTAsOTksMTExLDEw
MCwxMDEsOTksMTE4LDExNiw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNDksNTAsOTUsOTUsMTAwLDExMSw5NSwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEwMSw2
OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDExNSwxMTYsMTAwLDExMSwx
MTcsMTE2LDk4LDExNywxMDIsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTE1LDExNiwxMDAsMTExLDExNywxMTYsOTgsMTE3LDEw
Miw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5
LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYsNzMsMTE5LDY5LDY5LDAs
MCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTA5LDExMSwx
MTAsMTAxLDEyMSw5NSwxMTIsMTE3LDExNiw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTAz
LDEwMSwxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUs
NDksNDksNDksOTUsOTUsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiw3Myw5OSw2
OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEs
MTEwLDEwMSwxMjEsMTEyLDExNywxMTAsOTksMTE2LDczLDExOSw3Niw5OCw0OSw2OSw2OSw2OSww
LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwxMjEs
MTEyLDExNywxMTAsOTksMTE2LDczLDExOSw3Niw5OCw0OCw2OSw2OSw2OSwwLDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwxMjEsMTEyLDExNywxMTAs
OTksMTE2LDczLDk5LDc2LDk4LDQ5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNDksNDgsMTA5LDExMSwxMTAsMTAxLDEyMSwxMTIsMTE3LDExMCw5OSwxMTYsNzMsOTks
NzYsOTgsNDgsNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCwx
MDksMTExLDExMCwxMDEsMTIxLDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNDksNDgsOTksMTE2LDEyMSwxMTIsMTAxLDk1LDk4LDk3LDExNSwxMDEsNjks
MCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsOTUsOTUsMTE2LDEwNSwxMDksMTAx
LDk1LDExMiwxMTcsMTE2LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDk1
LDk1LDExNSwxMTYsMTAwLDEwNSwxMTAsOTgsMTE3LDEwMiw3MywxMTksNjksNjksMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNDksNDgsOTUsOTUsMTE1LDExNiwxMDAsMTA1LDExMCw5OCwxMTcsMTAy
LDczLDk5LDY5LDY5LDAsNzgsNDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5
LDUwLDQ5LDk1LDk1LDExOCwxMDksMTA1LDk1LDk5LDEwOCw5NywxMTUsMTE1LDk1LDExNiwxMjEs
MTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEsNjksMCwwLDAsNzgsNDksNDgsOTUsOTUsOTksMTIw
LDEyMCw5Nyw5OCwxMDUsMTE4LDQ5LDUwLDQ4LDk1LDk1LDExNSwxMDUsOTUsOTksMTA4LDk3LDEx
NSwxMTUsOTUsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSw2OSwwLDAsMCwwLDc4
LDQ5LDQ4LDk1LDk1LDk5LDEyMCwxMjAsOTcsOTgsMTA1LDExOCw0OSw0OSw1NSw5NSw5NSw5OSwx
MDgsOTcsMTE1LDExNSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDY5LDAs
MCwwLDAsMCwwLDAsNzgsNDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5LDQ5
LDU0LDk1LDk1LDExNSwxMDQsMTA1LDEwOSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwx
MDIsMTExLDY5LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQwLDIwLDAsMCwwLDAsMCwwLDU2LDIw
LDAsMCwwLDAsMCwwLDcyLDIwLDAsMCwyMTYsMzEsMCwwLDAsMCwwLDAsMCwwLDAsMCw4OCwyMCww
LDAsMjE2LDMxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTA0LDIwLDAsMCwyMTYsMzEsMCwwLDAsMCww
LDAsMCwwLDAsMCwxMjgsMjAsMCwwLDMyLDMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDIwLDAs
MCwyMTYsMzEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjgsMjAsMCwwLDAsMjAsMCwwLDE5MiwyMCww
LDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDIyNCwzNiwwLDAsMCwwLDAsMCww
LDIwLDAsMCw4LDIxLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMjMyLDM2
LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDgwLDIxLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCww
LDIsMCwwLDAsMjQwLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDE1MiwyMSwwLDAsMCwwLDAsMCwy
LDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDI0OCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDIyNCwy
MSwwLDAsNDAsMzQsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNiwyMiwwLDAsNDAsMzQsMCwwLDAsMCww
LDAsMCwyMCwwLDAsNjQsMjIsMCwwLDAsMCwwLDAsMSwwLDAsMCwzMiwzNiwwLDAsMCwwLDAsMCww
LDIwLDAsMCw4OCwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDMyLDM2LDAsMCwwLDAsMCwwLDAsMjAs
MCwwLDExMiwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDQwLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCww
LDEzNiwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDQwLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDE2
MCwyMiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE0NCwzNywwLDAsMCw4
LDAsMCwwLDIwLDAsMCwyMzIsMjIsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAs
MCwxNDQsMzcsMCwwLDAsOCwwLDAsMCwyMCwwLDAsNDgsMjMsMCwwLDAsMCwwLDAsMywwLDAsMCw5
NiwzNSwwLDAsMiwwLDAsMCw0OCwzMiwwLDAsMiwwLDAsMCwxOTIsMzUsMCwwLDAsOCwwLDAsMCwy
MCwwLDAsMTIwLDIzLDAsMCwwLDAsMCwwLDMsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgsMzIs
MCwwLDIsMCwwLDAsMjAwLDM1LDAsMCwwLDgsMCwwLDAsMCwwLDAsMTkyLDIzLDAsMCw5NiwzNSww
LDAsMCwwLDAsMCwwLDAsMCwwLDIxNiwyMywwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwyMCwwLDAs
MjQwLDIzLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgsMzYsMCwwLDIs
MCwwLDAsMCwyMCwwLDAsOCwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCww
LDQ4LDM2LDAsMCwyLDAsMCwwLDAsMCwwLDAsMzIsMjQsMCwwLDAsMCwwLDAsNTYsMjQsMCwwLDE1
MiwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCw4OCwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1
LDAsMCwyLDAsMCwwLDIxNiwzMiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxNjAsMjQsMCwwLDAsMCww
LDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwyNDAsMzIsMCwwLDAsMCwwLDAsMCwyMCwwLDAs
MjMyLDI0LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsOCwzMywwLDAsMCww
LDAsMCwwLDIwLDAsMCw0OCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCww
LDMyLDMzLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTIwLDI1LDAsMCw5NiwzNSwwLDAsMCwwLDAsMCww
LDAsMCwwLDE0NCwyNSwwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTY4LDI1LDAsMCww
LDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTY4LDM2LDAsMCwyLDAsMCwwLDAsMjAs
MCwwLDIwOCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE2OCwzNiww
LDAsMiwwLDAsMCwwLDIwLDAsMCwyNDgsMjUsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAs
MiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMzIsMjYsMCwwLDAsMCwwLDAsMiww
LDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwwLDAsMCw3MiwyNiww
LDAsMjQsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCw5NiwyNiwwLDAsOTYsMzUsMCwwLDAsMCwwLDAs
MCwyMCwwLDAsMTIwLDI2LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTM2
LDM3LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDE0NCwyNiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1
LDAsMCwyLDAsMCwwLDEzNiwzNywwLDAsMiwwLDAsMCwwLDAsMCwwLDE2OCwyNiwwLDAsMCwwLDAs
MCwyMDgsMjYsMCwwLDAsMCwwLDAsMjQ4LDI2LDAsMCwxNzYsMzYsMCwwLDAsMCwwLDAsMCwwLDAs
MCwyNCwyNywwLDAsNjQsMzUsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwyNywwLDAsNjQsMzUsMCww
LDAsMCwwLDAsMCwwLDAsMCwxMDQsMjcsMCwwLDAsMCwwLDAsMTYwLDI3LDAsMCwwLDAsMCwwLDIx
NiwyNywwLDAsMCwwLDAsMCwyNDgsMjcsMCwwLDAsMCwwLDAsMjQsMjgsMCwwLDAsMCwwLDAsNTYs
MjgsMCwwLDAsMCwwLDAsODgsMjgsMCwwLDAsMjAsMCwwLDExMiwyOCwwLDAsMCwwLDAsMCwxLDAs
MCwwLDE4NCwzMiwwLDAsMywyNDQsMjU1LDI1NSwwLDIwLDAsMCwxNjAsMjgsMCwwLDAsMCwwLDAs
MSwwLDAsMCwyMDAsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwyMCwwLDAsMjA4LDI4LDAsMCwwLDAs
MCwwLDEsMCwwLDAsMTg0LDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMjAsMCwwLDAsMjksMCwwLDAs
MCwwLDAsMSwwLDAsMCwyMDAsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwwLDAsMCw0OCwyOSwwLDAs
MCwzMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDcyLDI5LDAsMCwwLDAsMCwwLDk2LDI5LDAsMCwxNiwz
NiwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyMCwyOSwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAsMCww
LDE1MiwyOSwwLDAsOCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDE4NCwyOSwwLDAsMCwwLDAsMCwy
MTYsMjksMCwwLDAsMCwwLDAsMjQ4LDI5LDAsMCwwLDAsMCwwLDI0LDMwLDAsMCwwLDIwLDAsMCw1
NiwzMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDEyOCwzNywwLDAsMiww
LDAsMCwwLDIwLDAsMCw4OCwzMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCww
LDEyOCwzNywwLDAsMiwwLDAsMCwwLDIwLDAsMCwxMjAsMzAsMCwwLDAsMCwwLDAsMiwwLDAsMCw5
NiwzNSwwLDAsMiwwLDAsMCwxMjgsMzcsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMTUyLDMwLDAsMCww
LDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTI4LDM3LDAsMCwyLDAsMCwwLDAsMCww
LDAsMTg0LDMwLDAsMCwwLDAsMCwwLDIwOCwzMCwwLDAsMCwwLDAsMCwyMzIsMzAsMCwwLDAsMCww
LDAsMCwzMSwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0LDMxLDAsMCw4LDM2LDAsMCww
LDAsMCwwLDAsMCwwLDAsNDgsMzEsMCwwLDIxNiwzNywwLDAsMCwwLDAsMCwwLDAsMCwwLDg4LDMx
LDAsMCwyMTYsMzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjgsMzEsMCwwLDIzMiwzNywwLDAsMCww
LDAsMCwwLDAsMCwwLDE2OCwzMSwwLDAsMjA4LDMxLDAsMCwwLDAsMCwwLDI1NSwyNTUsMjU1LDI1
NSwwLDAsMCwwLDI1NSwyNTUsMjU1LDI1NSwwLDAsMCwwLDI1NSwyNTUsMjU1LDI1NSwwLDAsMCww
LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDY1LDY2
LDY3LDY4LDY5LDcwLDEyMCw4OCw0Myw0NSwxMTIsODAsMTA1LDczLDExMCw3OCwwLDAsMCwwLDAs
MCwwLDBdLCAiaTgiLCBBTExPQ19OT05FLCBSdW50aW1lLkdMT0JBTF9CQVNFKQotdmFyIHRlbXBE
b3VibGVQdHIgPSBSdW50aW1lLmFsaWduTWVtb3J5KGFsbG9jYXRlKDEyLCAiaTgiLCBBTExPQ19T
VEFUSUMpLCA4KTsKLWFzc2VydCh0ZW1wRG91YmxlUHRyICUgOCA9PSAwKTsKLWZ1bmN0aW9uIGNv
cHlUZW1wRmxvYXQocHRyKSB7IC8vIGZ1bmN0aW9ucywgYmVjYXVzZSBpbmxpbmluZyB0aGlzIGNv
ZGUgaW5jcmVhc2VzIGNvZGUgc2l6ZSB0b28gbXVjaAotICBIRUFQOFt0ZW1wRG91YmxlUHRyXSA9
IEhFQVA4W3B0cl07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrMV0gPSBIRUFQOFtwdHIrMV07Ci0g
IEhFQVA4W3RlbXBEb3VibGVQdHIrMl0gPSBIRUFQOFtwdHIrMl07Ci0gIEhFQVA4W3RlbXBEb3Vi
bGVQdHIrM10gPSBIRUFQOFtwdHIrM107Ci19Ci1mdW5jdGlvbiBjb3B5VGVtcERvdWJsZShwdHIp
IHsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cl0gPSBIRUFQOFtwdHJdOwotICBIRUFQOFt0ZW1wRG91
YmxlUHRyKzFdID0gSEVBUDhbcHRyKzFdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzJdID0gSEVB
UDhbcHRyKzJdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzNdID0gSEVBUDhbcHRyKzNdOwotICBI
RUFQOFt0ZW1wRG91YmxlUHRyKzRdID0gSEVBUDhbcHRyKzRdOwotICBIRUFQOFt0ZW1wRG91Ymxl
UHRyKzVdID0gSEVBUDhbcHRyKzVdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzZdID0gSEVBUDhb
cHRyKzZdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzddID0gSEVBUDhbcHRyKzddOwotfQotICBm
dW5jdGlvbiBfYXRleGl0KGZ1bmMsIGFyZykgewotICAgICAgX19BVEVYSVRfXy51bnNoaWZ0KHsg
ZnVuYzogZnVuYywgYXJnOiBhcmcgfSk7Ci0gICAgfXZhciBfX19jeGFfYXRleGl0PV9hdGV4aXQ7
Ci0gIGZ1bmN0aW9uIF9sbHZtX3VtdWxfd2l0aF9vdmVyZmxvd19pMzIoeCwgeSkgewotICAgICAg
eCA9IHg+Pj4wOwotICAgICAgeSA9IHk+Pj4wOwotICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1w
UmV0MCJdKHgqeSA+IDQyOTQ5NjcyOTUpLCh4KnkpPj4+MCl8MCk7Ci0gICAgfQotICBmdW5jdGlv
biBfX19neHhfcGVyc29uYWxpdHlfdjAoKSB7Ci0gICAgfQotICBmdW5jdGlvbiBfX2V4aXQoc3Rh
dHVzKSB7Ci0gICAgICAvLyB2b2lkIF9leGl0KGludCBzdGF0dXMpOwotICAgICAgLy8gaHR0cDov
L3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZXhpdC5o
dG1sCi0gICAgICBNb2R1bGUucHJpbnQoJ2V4aXQoJyArIHN0YXR1cyArICcpIGNhbGxlZCcpOwot
ICAgICAgTW9kdWxlWydleGl0J10oc3RhdHVzKTsKLSAgICB9ZnVuY3Rpb24gX2V4aXQoc3RhdHVz
KSB7Ci0gICAgICBfX2V4aXQoc3RhdHVzKTsKLSAgICB9ZnVuY3Rpb24gX19aU3Q5dGVybWluYXRl
digpIHsKLSAgICAgIF9leGl0KC0xMjM0KTsKLSAgICB9Ci0gIE1vZHVsZVsiX21lbWNweSJdID0g
X21lbWNweTt2YXIgX2xsdm1fbWVtY3B5X3AwaThfcDBpOF9pMzI9X21lbWNweTsKLSAgdmFyIF9s
b2c9TWF0aC5sb2c7Ci0gIHZhciBfZmxvb3I9TWF0aC5mbG9vcjsKLSAgdmFyIGN0bHpfaTggPSBh
bGxvY2F0ZShbOCw3LDYsNiw1LDUsNSw1LDQsNCw0LDQsNCw0LDQsNCwzLDMsMywzLDMsMywzLDMs
MywzLDMsMywzLDMsMywzLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwy
LDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7IAotICBNb2R1bGVbIl9sbHZtX2N0bHpfaTMy
Il0gPSBfbGx2bV9jdGx6X2kzMjsKLSAgZnVuY3Rpb24gX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlv
bnYoKSB7IC8vIHN0ZDo6dW5jYXVnaHRfZXhjZXB0aW9uKCkKLSAgICAgIHJldHVybiAhIV9fWlN0
MTh1bmNhdWdodF9leGNlcHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbjsKLSAgICB9ZnVuY3Rpb24g
X19fY3hhX2JlZ2luX2NhdGNoKHB0cikgewotICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlv
bnYudW5jYXVnaHRfZXhjZXB0aW9uLS07Ci0gICAgICByZXR1cm4gcHRyOwotICAgIH0KLSAgZnVu
Y3Rpb24gX2xsdm1fZWhfZXhjZXB0aW9uKCkgewotICAgICAgcmV0dXJuIEhFQVAzMlsoKF9sbHZt
X2VoX2V4Y2VwdGlvbi5idWYpPj4yKV07Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfZnJlZV9l
eGNlcHRpb24ocHRyKSB7Ci0gICAgICB0cnkgewotICAgICAgICByZXR1cm4gX2ZyZWUocHRyKTsK
LSAgICAgIH0gY2F0Y2goZSkgeyAvLyBYWFggRklYTUUKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24g
X19fY3hhX2VuZF9jYXRjaCgpIHsKLSAgICAgIGlmIChfX19jeGFfZW5kX2NhdGNoLnJldGhyb3du
KSB7Ci0gICAgICAgIF9fX2N4YV9lbmRfY2F0Y2gucmV0aHJvd24gPSBmYWxzZTsKLSAgICAgICAg
cmV0dXJuOwotICAgICAgfQotICAgICAgLy8gQ2xlYXIgc3RhdGUgZmxhZy4KLSAgICAgIGFzbVsn
c2V0VGhyZXcnXSgwKTsKLSAgICAgIC8vIENsZWFyIHR5cGUuCi0gICAgICBIRUFQMzJbKCgoX2xs
dm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDQpKT4+MildPTAKLSAgICAgIC8vIENhbGwgZGVzdHJ1Y3Rv
ciBpZiBvbmUgaXMgcmVnaXN0ZXJlZCB0aGVuIGNsZWFyIGl0LgotICAgICAgdmFyIHB0ciA9IEhF
QVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV07Ci0gICAgICB2YXIgZGVzdHJ1Y3Rv
ciA9IEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoOCkpPj4yKV07Ci0gICAgICBp
ZiAoZGVzdHJ1Y3RvcikgewotICAgICAgICBSdW50aW1lLmR5bkNhbGwoJ3ZpJywgZGVzdHJ1Y3Rv
ciwgW3B0cl0pOwotICAgICAgICBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDgp
KT4+MildPTAKLSAgICAgIH0KLSAgICAgIC8vIEZyZWUgcHRyIGlmIGl0IGlzbid0IG51bGwuCi0g
ICAgICBpZiAocHRyKSB7Ci0gICAgICAgIF9fX2N4YV9mcmVlX2V4Y2VwdGlvbihwdHIpOwotICAg
ICAgICBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildPTAKLSAgICAgIH0KLSAg
ICB9ZnVuY3Rpb24gX19fY3hhX3JldGhyb3coKSB7Ci0gICAgICBfX19jeGFfZW5kX2NhdGNoLnJl
dGhyb3duID0gdHJ1ZTsKLSAgICAgIHRocm93IEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5i
dWYpPj4yKV0gKyAiIC0gRXhjZXB0aW9uIGNhdGNoaW5nIGlzIGRpc2FibGVkLCB0aGlzIGV4Y2Vw
dGlvbiBjYW5ub3QgYmUgY2F1Z2h0LiBDb21waWxlIHdpdGggLXMgRElTQUJMRV9FWENFUFRJT05f
Q0FUQ0hJTkc9MCBvciBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0yIHRvIGNhdGNoLiI7Owot
ICAgIH0KLSAgTW9kdWxlWyJfbWVtbW92ZSJdID0gX21lbW1vdmU7dmFyIF9sbHZtX21lbW1vdmVf
cDBpOF9wMGk4X2kzMj1fbWVtbW92ZTsKLSAgTW9kdWxlWyJfbWVtc2V0Il0gPSBfbWVtc2V0O3Zh
ciBfbGx2bV9tZW1zZXRfcDBpOF9pNjQ9X21lbXNldDsKLSAgZnVuY3Rpb24gX2xsdm1fbGlmZXRp
bWVfc3RhcnQoKSB7fQotICBmdW5jdGlvbiBfbGx2bV9saWZldGltZV9lbmQoKSB7fQotICBmdW5j
dGlvbiBfcHRocmVhZF9tdXRleF9sb2NrKCkge30KLSAgZnVuY3Rpb24gX3B0aHJlYWRfbXV0ZXhf
dW5sb2NrKCkge30KLSAgZnVuY3Rpb24gX19fY3hhX2d1YXJkX2FjcXVpcmUodmFyaWFibGUpIHsK
LSAgICAgIGlmICghSEVBUDhbKHZhcmlhYmxlKV0pIHsgLy8gaWdub3JlIFNBRkVfSEVBUCBzdHVm
ZiBiZWNhdXNlIGxsdm0gbWl4ZXMgaTY0IGFuZCBpOCBoZXJlCi0gICAgICAgIEhFQVA4Wyh2YXJp
YWJsZSldPTE7Ci0gICAgICAgIHJldHVybiAxOwotICAgICAgfQotICAgICAgcmV0dXJuIDA7Ci0g
ICAgfQotICBmdW5jdGlvbiBfX19jeGFfZ3VhcmRfcmVsZWFzZSgpIHt9Ci0gIGZ1bmN0aW9uIF9w
dGhyZWFkX2NvbmRfYnJvYWRjYXN0KCkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICBmdW5j
dGlvbiBfcHRocmVhZF9jb25kX3dhaXQoKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gIGZ1
bmN0aW9uIF9fX2N4YV9hbGxvY2F0ZV9leGNlcHRpb24oc2l6ZSkgewotICAgICAgcmV0dXJuIF9t
YWxsb2Moc2l6ZSk7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfaXNfbnVtYmVyX3R5cGUodHlw
ZSkgewotICAgICAgdmFyIGlzTnVtYmVyID0gZmFsc2U7Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9
PSBfX1pUSWkpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0
eXBlID09IF9fWlRJaikgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsg
aWYgKHR5cGUgPT0gX19aVElsKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0
cnkgeyBpZiAodHlwZSA9PSBfX1pUSW0pIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAg
ICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJeCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7
fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEl5KSBpc051bWJlciA9IHRydWUgfSBjYXRj
aChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWYpIGlzTnVtYmVyID0gdHJ1ZSB9
IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJZCkgaXNOdW1iZXIgPSB0
cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEllKSBpc051bWJl
ciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWMpIGlz
TnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJ
YSkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0g
X19aVEloKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlw
ZSA9PSBfX1pUSXMpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlm
ICh0eXBlID09IF9fWlRJdCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgcmV0
dXJuIGlzTnVtYmVyOwotICAgIH1mdW5jdGlvbiBfX19jeGFfZG9lc19pbmhlcml0KGRlZmluaXRl
VHlwZSwgcG9zc2liaWxpdHlUeXBlLCBwb3NzaWJpbGl0eSkgewotICAgICAgaWYgKHBvc3NpYmls
aXR5ID09IDApIHJldHVybiBmYWxzZTsKLSAgICAgIGlmIChwb3NzaWJpbGl0eVR5cGUgPT0gMCB8
fCBwb3NzaWJpbGl0eVR5cGUgPT0gZGVmaW5pdGVUeXBlKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgIHZhciBwb3NzaWJpbGl0eV90eXBlX2luZm87Ci0gICAgICBpZiAoX19fY3hhX2lzX251
bWJlcl90eXBlKHBvc3NpYmlsaXR5VHlwZSkpIHsKLSAgICAgICAgcG9zc2liaWxpdHlfdHlwZV9p
bmZvID0gcG9zc2liaWxpdHlUeXBlOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIHBvc3Np
YmlsaXR5X3R5cGVfaW5mb0FkZHIgPSBIRUFQMzJbKChwb3NzaWJpbGl0eVR5cGUpPj4yKV0gLSA4
OwotICAgICAgICBwb3NzaWJpbGl0eV90eXBlX2luZm8gPSBIRUFQMzJbKChwb3NzaWJpbGl0eV90
eXBlX2luZm9BZGRyKT4+MildOwotICAgICAgfQotICAgICAgc3dpdGNoIChwb3NzaWJpbGl0eV90
eXBlX2luZm8pIHsKLSAgICAgIGNhc2UgMDogLy8gcG9zc2liaWxpdHkgaXMgYSBwb2ludGVyCi0g
ICAgICAgIC8vIFNlZSBpZiBkZWZpbml0ZSB0eXBlIGlzIGEgcG9pbnRlcgotICAgICAgICB2YXIg
ZGVmaW5pdGVfdHlwZV9pbmZvQWRkciA9IEhFQVAzMlsoKGRlZmluaXRlVHlwZSk+PjIpXSAtIDg7
Ci0gICAgICAgIHZhciBkZWZpbml0ZV90eXBlX2luZm8gPSBIRUFQMzJbKChkZWZpbml0ZV90eXBl
X2luZm9BZGRyKT4+MildOwotICAgICAgICBpZiAoZGVmaW5pdGVfdHlwZV9pbmZvID09IDApIHsK
LSAgICAgICAgICAvLyBBbHNvIGEgcG9pbnRlcjsgY29tcGFyZSBiYXNlIHR5cGVzIG9mIHBvaW50
ZXJzCi0gICAgICAgICAgdmFyIGRlZlBvaW50ZXJCYXNlQWRkciA9IGRlZmluaXRlVHlwZSs4Owot
ICAgICAgICAgIHZhciBkZWZQb2ludGVyQmFzZVR5cGUgPSBIRUFQMzJbKChkZWZQb2ludGVyQmFz
ZUFkZHIpPj4yKV07Ci0gICAgICAgICAgdmFyIHBvc3NQb2ludGVyQmFzZUFkZHIgPSBwb3NzaWJp
bGl0eVR5cGUrODsKLSAgICAgICAgICB2YXIgcG9zc1BvaW50ZXJCYXNlVHlwZSA9IEhFQVAzMlso
KHBvc3NQb2ludGVyQmFzZUFkZHIpPj4yKV07Ci0gICAgICAgICAgcmV0dXJuIF9fX2N4YV9kb2Vz
X2luaGVyaXQoZGVmUG9pbnRlckJhc2VUeXBlLCBwb3NzUG9pbnRlckJhc2VUeXBlLCBwb3NzaWJp
bGl0eSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gb25lIHBv
aW50ZXIgYW5kIG9uZSBub24tcG9pbnRlcgotICAgICAgY2FzZSAxOiAvLyBjbGFzcyB3aXRoIG5v
IGJhc2UgY2xhc3MKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgY2FzZSAyOiAvLyBjbGFz
cyB3aXRoIGJhc2UgY2xhc3MKLSAgICAgICAgdmFyIHBhcmVudFR5cGVBZGRyID0gcG9zc2liaWxp
dHlUeXBlICsgODsKLSAgICAgICAgdmFyIHBhcmVudFR5cGUgPSBIRUFQMzJbKChwYXJlbnRUeXBl
QWRkcik+PjIpXTsKLSAgICAgICAgcmV0dXJuIF9fX2N4YV9kb2VzX2luaGVyaXQoZGVmaW5pdGVU
eXBlLCBwYXJlbnRUeXBlLCBwb3NzaWJpbGl0eSk7Ci0gICAgICBkZWZhdWx0OgotICAgICAgICBy
ZXR1cm4gZmFsc2U7IC8vIHNvbWUgdW5lbmNvdW50ZXJlZCB0eXBlCi0gICAgICB9Ci0gICAgfQot
ICBmdW5jdGlvbiBfX19yZXN1bWVFeGNlcHRpb24ocHRyKSB7Ci0gICAgICBpZiAoSEVBUDMyWygo
X2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXSA9PSAwKSBIRUFQMzJbKChfbGx2bV9laF9leGNl
cHRpb24uYnVmKT4+MildPXB0cjsKLSAgICAgIHRocm93IHB0ciArICIgLSBFeGNlcHRpb24gY2F0
Y2hpbmcgaXMgZGlzYWJsZWQsIHRoaXMgZXhjZXB0aW9uIGNhbm5vdCBiZSBjYXVnaHQuIENvbXBp
bGUgd2l0aCAtcyBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0wIG9yIERJU0FCTEVfRVhDRVBU
SU9OX0NBVENISU5HPTIgdG8gY2F0Y2guIjs7Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV9maW5kX21h
dGNoaW5nX2NhdGNoKHRocm93biwgdGhyb3dudHlwZSkgewotICAgICAgaWYgKHRocm93biA9PSAt
MSkgdGhyb3duID0gSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXTsKLSAgICAg
IGlmICh0aHJvd250eXBlID09IC0xKSB0aHJvd250eXBlID0gSEVBUDMyWygoKF9sbHZtX2VoX2V4
Y2VwdGlvbi5idWYpKyg0KSk+PjIpXTsKLSAgICAgIHZhciB0eXBlQXJyYXkgPSBBcnJheS5wcm90
b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpOwotICAgICAgLy8gSWYgdGhyb3dudHlwZSBp
cyBhIHBvaW50ZXIsIHRoaXMgbWVhbnMgYSBwb2ludGVyIGhhcyBiZWVuCi0gICAgICAvLyB0aHJv
d24uIFdoZW4gYSBwb2ludGVyIGlzIHRocm93biwgYWN0dWFsbHkgd2hhdCdzIHRocm93bgotICAg
ICAgLy8gaXMgYSBwb2ludGVyIHRvIHRoZSBwb2ludGVyLiBXZSdsbCBkZXJlZmVyZW5jZSBpdC4K
LSAgICAgIGlmICh0aHJvd250eXBlICE9IDAgJiYgIV9fX2N4YV9pc19udW1iZXJfdHlwZSh0aHJv
d250eXBlKSkgewotICAgICAgICB2YXIgdGhyb3dudHlwZUluZm9BZGRyPSBIRUFQMzJbKCh0aHJv
d250eXBlKT4+MildIC0gODsKLSAgICAgICAgdmFyIHRocm93bnR5cGVJbmZvPSBIRUFQMzJbKCh0
aHJvd250eXBlSW5mb0FkZHIpPj4yKV07Ci0gICAgICAgIGlmICh0aHJvd250eXBlSW5mbyA9PSAw
KQotICAgICAgICAgIHRocm93biA9IEhFQVAzMlsoKHRocm93bik+PjIpXTsKLSAgICAgIH0KLSAg
ICAgIC8vIFRoZSBkaWZmZXJlbnQgY2F0Y2ggYmxvY2tzIGFyZSBkZW5vdGVkIGJ5IGRpZmZlcmVu
dCB0eXBlcy4KLSAgICAgIC8vIER1ZSB0byBpbmhlcml0YW5jZSwgdGhvc2UgdHlwZXMgbWF5IG5v
dCBwcmVjaXNlbHkgbWF0Y2ggdGhlCi0gICAgICAvLyB0eXBlIG9mIHRoZSB0aHJvd24gb2JqZWN0
LiBGaW5kIG9uZSB3aGljaCBtYXRjaGVzLCBhbmQKLSAgICAgIC8vIHJldHVybiB0aGUgdHlwZSBv
ZiB0aGUgY2F0Y2ggYmxvY2sgd2hpY2ggc2hvdWxkIGJlIGNhbGxlZC4KLSAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdHlwZUFycmF5Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChfX19jeGFf
ZG9lc19pbmhlcml0KHR5cGVBcnJheVtpXSwgdGhyb3dudHlwZSwgdGhyb3duKSkKLSAgICAgICAg
ICByZXR1cm4gKChhc21bInNldFRlbXBSZXQwIl0odHlwZUFycmF5W2ldKSx0aHJvd24pfDApOwot
ICAgICAgfQotICAgICAgLy8gU2hvdWxkbid0IGhhcHBlbiB1bmxlc3Mgd2UgaGF2ZSBib2d1cyBk
YXRhIGluIHR5cGVBcnJheQotICAgICAgLy8gb3IgZW5jb3VudGVyIGEgdHlwZSBmb3Igd2hpY2gg
ZW1zY3JpcHRlbiBkb2Vzbid0IGhhdmUgc3VpdGFibGUKLSAgICAgIC8vIHR5cGVpbmZvIGRlZmlu
ZWQuIEJlc3QtZWZmb3J0cyBtYXRjaCBqdXN0IGluIGNhc2UuCi0gICAgICByZXR1cm4gKChhc21b
InNldFRlbXBSZXQwIl0odGhyb3dudHlwZSksdGhyb3duKXwwKTsKLSAgICB9ZnVuY3Rpb24gX19f
Y3hhX3Rocm93KHB0ciwgdHlwZSwgZGVzdHJ1Y3RvcikgewotICAgICAgaWYgKCFfX19jeGFfdGhy
b3cuaW5pdGlhbGl6ZWQpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBIRUFQMzJbKChfX1pU
Vk4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FKT4+MildPTA7IC8vIFdvcmthcm91
bmQgZm9yIGxpYmN4eGFiaSBpbnRlZ3JhdGlvbiBidWcKLSAgICAgICAgfSBjYXRjaChlKXt9Ci0g
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgSEVBUDMyWygoX19aVFZOMTBfX2N4eGFiaXYxMTdfX2Ns
YXNzX3R5cGVfaW5mb0UpPj4yKV09MTsgLy8gV29ya2Fyb3VuZCBmb3IgbGliY3h4YWJpIGludGVn
cmF0aW9uIGJ1ZwotICAgICAgICB9IGNhdGNoKGUpe30KLSAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICBIRUFQMzJbKChfX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRSk+PjIp
XT0yOyAvLyBXb3JrYXJvdW5kIGZvciBsaWJjeHhhYmkgaW50ZWdyYXRpb24gYnVnCi0gICAgICAg
IH0gY2F0Y2goZSl7fQotICAgICAgICBfX19jeGFfdGhyb3cuaW5pdGlhbGl6ZWQgPSB0cnVlOwot
ICAgICAgfQotICAgICAgSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXT1wdHIK
LSAgICAgIEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoNCkpPj4yKV09dHlwZQot
ICAgICAgSEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg4KSk+PjIpXT1kZXN0cnVj
dG9yCi0gICAgICBpZiAoISgidW5jYXVnaHRfZXhjZXB0aW9uIiBpbiBfX1pTdDE4dW5jYXVnaHRf
ZXhjZXB0aW9udikpIHsKLSAgICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYudW5jYXVn
aHRfZXhjZXB0aW9uID0gMTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIF9fWlN0MTh1bmNhdWdo
dF9leGNlcHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbisrOwotICAgICAgfQotICAgICAgdGhyb3cg
cHRyICsgIiAtIEV4Y2VwdGlvbiBjYXRjaGluZyBpcyBkaXNhYmxlZCwgdGhpcyBleGNlcHRpb24g
Y2Fubm90IGJlIGNhdWdodC4gQ29tcGlsZSB3aXRoIC1zIERJU0FCTEVfRVhDRVBUSU9OX0NBVENI
SU5HPTAgb3IgRElTQUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MiB0byBjYXRjaC4iOzsKLSAgICB9
Ci0gIHZhciBFUlJOT19DT0RFUz17RVBFUk06MSxFTk9FTlQ6MixFU1JDSDozLEVJTlRSOjQsRUlP
OjUsRU5YSU86NixFMkJJRzo3LEVOT0VYRUM6OCxFQkFERjo5LEVDSElMRDoxMCxFQUdBSU46MTEs
RVdPVUxEQkxPQ0s6MTEsRU5PTUVNOjEyLEVBQ0NFUzoxMyxFRkFVTFQ6MTQsRU5PVEJMSzoxNSxF
QlVTWToxNixFRVhJU1Q6MTcsRVhERVY6MTgsRU5PREVWOjE5LEVOT1RESVI6MjAsRUlTRElSOjIx
LEVJTlZBTDoyMixFTkZJTEU6MjMsRU1GSUxFOjI0LEVOT1RUWToyNSxFVFhUQlNZOjI2LEVGQklH
OjI3LEVOT1NQQzoyOCxFU1BJUEU6MjksRVJPRlM6MzAsRU1MSU5LOjMxLEVQSVBFOjMyLEVET006
MzMsRVJBTkdFOjM0LEVOT01TRzozNSxFSURSTTozNixFQ0hSTkc6MzcsRUwyTlNZTkM6MzgsRUwz
SExUOjM5LEVMM1JTVDo0MCxFTE5STkc6NDEsRVVOQVRDSDo0MixFTk9DU0k6NDMsRUwySExUOjQ0
LEVERUFETEs6NDUsRU5PTENLOjQ2LEVCQURFOjUwLEVCQURSOjUxLEVYRlVMTDo1MixFTk9BTk86
NTMsRUJBRFJRQzo1NCxFQkFEU0xUOjU1LEVERUFETE9DSzo1NixFQkZPTlQ6NTcsRU5PU1RSOjYw
LEVOT0RBVEE6NjEsRVRJTUU6NjIsRU5PU1I6NjMsRU5PTkVUOjY0LEVOT1BLRzo2NSxFUkVNT1RF
OjY2LEVOT0xJTks6NjcsRUFEVjo2OCxFU1JNTlQ6NjksRUNPTU06NzAsRVBST1RPOjcxLEVNVUxU
SUhPUDo3NCxFRE9URE9UOjc2LEVCQURNU0c6NzcsRU5PVFVOSVE6ODAsRUJBREZEOjgxLEVSRU1D
SEc6ODIsRUxJQkFDQzo4MyxFTElCQkFEOjg0LEVMSUJTQ046ODUsRUxJQk1BWDo4NixFTElCRVhF
Qzo4NyxFTk9TWVM6ODgsRU5PVEVNUFRZOjkwLEVOQU1FVE9PTE9ORzo5MSxFTE9PUDo5MixFT1BO
T1RTVVBQOjk1LEVQRk5PU1VQUE9SVDo5NixFQ09OTlJFU0VUOjEwNCxFTk9CVUZTOjEwNSxFQUZO
T1NVUFBPUlQ6MTA2LEVQUk9UT1RZUEU6MTA3LEVOT1RTT0NLOjEwOCxFTk9QUk9UT09QVDoxMDks
RVNIVVRET1dOOjExMCxFQ09OTlJFRlVTRUQ6MTExLEVBRERSSU5VU0U6MTEyLEVDT05OQUJPUlRF
RDoxMTMsRU5FVFVOUkVBQ0g6MTE0LEVORVRET1dOOjExNSxFVElNRURPVVQ6MTE2LEVIT1NURE9X
TjoxMTcsRUhPU1RVTlJFQUNIOjExOCxFSU5QUk9HUkVTUzoxMTksRUFMUkVBRFk6MTIwLEVERVNU
QUREUlJFUToxMjEsRU1TR1NJWkU6MTIyLEVQUk9UT05PU1VQUE9SVDoxMjMsRVNPQ0tUTk9TVVBQ
T1JUOjEyNCxFQUREUk5PVEFWQUlMOjEyNSxFTkVUUkVTRVQ6MTI2LEVJU0NPTk46MTI3LEVOT1RD
T05OOjEyOCxFVE9PTUFOWVJFRlM6MTI5LEVVU0VSUzoxMzEsRURRVU9UOjEzMixFU1RBTEU6MTMz
LEVOT1RTVVA6MTM0LEVOT01FRElVTToxMzUsRUlMU0VROjEzOCxFT1ZFUkZMT1c6MTM5LEVDQU5D
RUxFRDoxNDAsRU5PVFJFQ09WRVJBQkxFOjE0MSxFT1dORVJERUFEOjE0MixFU1RSUElQRToxNDN9
OwotICB2YXIgRVJSTk9fTUVTU0FHRVM9ezA6IlN1Y2Nlc3MiLDE6Ik5vdCBzdXBlci11c2VyIiwy
OiJObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IiwzOiJObyBzdWNoIHByb2Nlc3MiLDQ6IkludGVy
cnVwdGVkIHN5c3RlbSBjYWxsIiw1OiJJL08gZXJyb3IiLDY6Ik5vIHN1Y2ggZGV2aWNlIG9yIGFk
ZHJlc3MiLDc6IkFyZyBsaXN0IHRvbyBsb25nIiw4OiJFeGVjIGZvcm1hdCBlcnJvciIsOToiQmFk
IGZpbGUgbnVtYmVyIiwxMDoiTm8gY2hpbGRyZW4iLDExOiJObyBtb3JlIHByb2Nlc3NlcyIsMTI6
Ik5vdCBlbm91Z2ggY29yZSIsMTM6IlBlcm1pc3Npb24gZGVuaWVkIiwxNDoiQmFkIGFkZHJlc3Mi
LDE1OiJCbG9jayBkZXZpY2UgcmVxdWlyZWQiLDE2OiJNb3VudCBkZXZpY2UgYnVzeSIsMTc6IkZp
bGUgZXhpc3RzIiwxODoiQ3Jvc3MtZGV2aWNlIGxpbmsiLDE5OiJObyBzdWNoIGRldmljZSIsMjA6
Ik5vdCBhIGRpcmVjdG9yeSIsMjE6IklzIGEgZGlyZWN0b3J5IiwyMjoiSW52YWxpZCBhcmd1bWVu
dCIsMjM6IlRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtIiwyNDoiVG9vIG1hbnkgb3BlbiBm
aWxlcyIsMjU6Ik5vdCBhIHR5cGV3cml0ZXIiLDI2OiJUZXh0IGZpbGUgYnVzeSIsMjc6IkZpbGUg
dG9vIGxhcmdlIiwyODoiTm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UiLDI5OiJJbGxlZ2FsIHNlZWsi
LDMwOiJSZWFkIG9ubHkgZmlsZSBzeXN0ZW0iLDMxOiJUb28gbWFueSBsaW5rcyIsMzI6IkJyb2tl
biBwaXBlIiwzMzoiTWF0aCBhcmcgb3V0IG9mIGRvbWFpbiBvZiBmdW5jIiwzNDoiTWF0aCByZXN1
bHQgbm90IHJlcHJlc2VudGFibGUiLDM1OiJObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZSIsMzY6
IklkZW50aWZpZXIgcmVtb3ZlZCIsMzc6IkNoYW5uZWwgbnVtYmVyIG91dCBvZiByYW5nZSIsMzg6
IkxldmVsIDIgbm90IHN5bmNocm9uaXplZCIsMzk6IkxldmVsIDMgaGFsdGVkIiw0MDoiTGV2ZWwg
MyByZXNldCIsNDE6IkxpbmsgbnVtYmVyIG91dCBvZiByYW5nZSIsNDI6IlByb3RvY29sIGRyaXZl
ciBub3QgYXR0YWNoZWQiLDQzOiJObyBDU0kgc3RydWN0dXJlIGF2YWlsYWJsZSIsNDQ6IkxldmVs
IDIgaGFsdGVkIiw0NToiRGVhZGxvY2sgY29uZGl0aW9uIiw0NjoiTm8gcmVjb3JkIGxvY2tzIGF2
YWlsYWJsZSIsNTA6IkludmFsaWQgZXhjaGFuZ2UiLDUxOiJJbnZhbGlkIHJlcXVlc3QgZGVzY3Jp
cHRvciIsNTI6IkV4Y2hhbmdlIGZ1bGwiLDUzOiJObyBhbm9kZSIsNTQ6IkludmFsaWQgcmVxdWVz
dCBjb2RlIiw1NToiSW52YWxpZCBzbG90Iiw1NjoiRmlsZSBsb2NraW5nIGRlYWRsb2NrIGVycm9y
Iiw1NzoiQmFkIGZvbnQgZmlsZSBmbXQiLDYwOiJEZXZpY2Ugbm90IGEgc3RyZWFtIiw2MToiTm8g
ZGF0YSAoZm9yIG5vIGRlbGF5IGlvKSIsNjI6IlRpbWVyIGV4cGlyZWQiLDYzOiJPdXQgb2Ygc3Ry
ZWFtcyByZXNvdXJjZXMiLDY0OiJNYWNoaW5lIGlzIG5vdCBvbiB0aGUgbmV0d29yayIsNjU6IlBh
Y2thZ2Ugbm90IGluc3RhbGxlZCIsNjY6IlRoZSBvYmplY3QgaXMgcmVtb3RlIiw2NzoiVGhlIGxp
bmsgaGFzIGJlZW4gc2V2ZXJlZCIsNjg6IkFkdmVydGlzZSBlcnJvciIsNjk6IlNybW91bnQgZXJy
b3IiLDcwOiJDb21tdW5pY2F0aW9uIGVycm9yIG9uIHNlbmQiLDcxOiJQcm90b2NvbCBlcnJvciIs
NzQ6Ik11bHRpaG9wIGF0dGVtcHRlZCIsNzY6IkNyb3NzIG1vdW50IHBvaW50IChub3QgcmVhbGx5
IGVycm9yKSIsNzc6IlRyeWluZyB0byByZWFkIHVucmVhZGFibGUgbWVzc2FnZSIsODA6IkdpdmVu
IGxvZy4gbmFtZSBub3QgdW5pcXVlIiw4MToiZi5kLiBpbnZhbGlkIGZvciB0aGlzIG9wZXJhdGlv
biIsODI6IlJlbW90ZSBhZGRyZXNzIGNoYW5nZWQiLDgzOiJDYW4gICBhY2Nlc3MgYSBuZWVkZWQg
c2hhcmVkIGxpYiIsODQ6IkFjY2Vzc2luZyBhIGNvcnJ1cHRlZCBzaGFyZWQgbGliIiw4NToiLmxp
YiBzZWN0aW9uIGluIGEub3V0IGNvcnJ1cHRlZCIsODY6IkF0dGVtcHRpbmcgdG8gbGluayBpbiB0
b28gbWFueSBsaWJzIiw4NzoiQXR0ZW1wdGluZyB0byBleGVjIGEgc2hhcmVkIGxpYnJhcnkiLDg4
OiJGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQiLDkwOiJEaXJlY3Rvcnkgbm90IGVtcHR5Iiw5MToi
RmlsZSBvciBwYXRoIG5hbWUgdG9vIGxvbmciLDkyOiJUb28gbWFueSBzeW1ib2xpYyBsaW5rcyIs
OTU6Ik9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIHRyYW5zcG9ydCBlbmRwb2ludCIsOTY6IlBy
b3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkIiwxMDQ6IkNvbm5lY3Rpb24gcmVzZXQgYnkgcGVl
ciIsMTA1OiJObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlIiwxMDY6IkFkZHJlc3MgZmFtaWx5IG5v
dCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wgZmFtaWx5IiwxMDc6IlByb3RvY29sIHdyb25nIHR5cGUg
Zm9yIHNvY2tldCIsMTA4OiJTb2NrZXQgb3BlcmF0aW9uIG9uIG5vbi1zb2NrZXQiLDEwOToiUHJv
dG9jb2wgbm90IGF2YWlsYWJsZSIsMTEwOiJDYW4ndCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93
biIsMTExOiJDb25uZWN0aW9uIHJlZnVzZWQiLDExMjoiQWRkcmVzcyBhbHJlYWR5IGluIHVzZSIs
MTEzOiJDb25uZWN0aW9uIGFib3J0ZWQiLDExNDoiTmV0d29yayBpcyB1bnJlYWNoYWJsZSIsMTE1
OiJOZXR3b3JrIGludGVyZmFjZSBpcyBub3QgY29uZmlndXJlZCIsMTE2OiJDb25uZWN0aW9uIHRp
bWVkIG91dCIsMTE3OiJIb3N0IGlzIGRvd24iLDExODoiSG9zdCBpcyB1bnJlYWNoYWJsZSIsMTE5
OiJDb25uZWN0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MiLDEyMDoiU29ja2V0IGFscmVhZHkgY29u
bmVjdGVkIiwxMjE6IkRlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQiLDEyMjoiTWVzc2FnZSB0
b28gbG9uZyIsMTIzOiJVbmtub3duIHByb3RvY29sIiwxMjQ6IlNvY2tldCB0eXBlIG5vdCBzdXBw
b3J0ZWQiLDEyNToiQWRkcmVzcyBub3QgYXZhaWxhYmxlIiwxMjY6IkNvbm5lY3Rpb24gcmVzZXQg
YnkgbmV0d29yayIsMTI3OiJTb2NrZXQgaXMgYWxyZWFkeSBjb25uZWN0ZWQiLDEyODoiU29ja2V0
IGlzIG5vdCBjb25uZWN0ZWQiLDEyOToiVG9vIG1hbnkgcmVmZXJlbmNlcyIsMTMxOiJUb28gbWFu
eSB1c2VycyIsMTMyOiJRdW90YSBleGNlZWRlZCIsMTMzOiJTdGFsZSBmaWxlIGhhbmRsZSIsMTM0
OiJOb3Qgc3VwcG9ydGVkIiwxMzU6Ik5vIG1lZGl1bSAoaW4gdGFwZSBkcml2ZSkiLDEzODoiSWxs
ZWdhbCBieXRlIHNlcXVlbmNlIiwxMzk6IlZhbHVlIHRvbyBsYXJnZSBmb3IgZGVmaW5lZCBkYXRh
IHR5cGUiLDE0MDoiT3BlcmF0aW9uIGNhbmNlbGVkIiwxNDE6IlN0YXRlIG5vdCByZWNvdmVyYWJs
ZSIsMTQyOiJQcmV2aW91cyBvd25lciBkaWVkIiwxNDM6IlN0cmVhbXMgcGlwZSBlcnJvciJ9Owot
ICB2YXIgX19fZXJybm9fc3RhdGU9MDtmdW5jdGlvbiBfX19zZXRFcnJObyh2YWx1ZSkgewotICAg
ICAgLy8gRm9yIGNvbnZlbmllbnQgc2V0dGluZyBhbmQgcmV0dXJuaW5nIG9mIGVycm5vLgotICAg
ICAgSEVBUDMyWygoX19fZXJybm9fc3RhdGUpPj4yKV09dmFsdWUKLSAgICAgIHJldHVybiB2YWx1
ZTsKLSAgICB9Ci0gIHZhciBWRlM9dW5kZWZpbmVkOwotICB2YXIgUEFUSD17c3BsaXRQYXRoOmZ1
bmN0aW9uIChmaWxlbmFtZSkgewotICAgICAgICB2YXIgc3BsaXRQYXRoUmUgPSAvXihcLz98KShb
XHNcU10qPykoKD86XC57MSwyfXxbXlwvXSs/fCkoXC5bXi5cL10qfCkpKD86W1wvXSopJC87Ci0g
ICAgICAgIHJldHVybiBzcGxpdFBhdGhSZS5leGVjKGZpbGVuYW1lKS5zbGljZSgxKTsKLSAgICAg
IH0sbm9ybWFsaXplQXJyYXk6ZnVuY3Rpb24gKHBhcnRzLCBhbGxvd0Fib3ZlUm9vdCkgewotICAg
ICAgICAvLyBpZiB0aGUgcGF0aCB0cmllcyB0byBnbyBhYm92ZSB0aGUgcm9vdCwgYHVwYCBlbmRz
IHVwID4gMAotICAgICAgICB2YXIgdXAgPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gcGFydHMu
bGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKLSAgICAgICAgICB2YXIgbGFzdCA9IHBhcnRzW2ld
OwotICAgICAgICAgIGlmIChsYXN0ID09PSAnLicpIHsKLSAgICAgICAgICAgIHBhcnRzLnNwbGlj
ZShpLCAxKTsKLSAgICAgICAgICB9IGVsc2UgaWYgKGxhc3QgPT09ICcuLicpIHsKLSAgICAgICAg
ICAgIHBhcnRzLnNwbGljZShpLCAxKTsKLSAgICAgICAgICAgIHVwKys7Ci0gICAgICAgICAgfSBl
bHNlIGlmICh1cCkgewotICAgICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwotICAgICAgICAg
ICAgdXAtLTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gaWYgdGhlIHBhdGgg
aXMgYWxsb3dlZCB0byBnbyBhYm92ZSB0aGUgcm9vdCwgcmVzdG9yZSBsZWFkaW5nIC4ucwotICAg
ICAgICBpZiAoYWxsb3dBYm92ZVJvb3QpIHsKLSAgICAgICAgICBmb3IgKDsgdXAtLTsgdXApIHsK
LSAgICAgICAgICAgIHBhcnRzLnVuc2hpZnQoJy4uJyk7Ci0gICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiBwYXJ0czsKLSAgICAgIH0sbm9ybWFsaXplOmZ1bmN0aW9uIChwYXRo
KSB7Ci0gICAgICAgIHZhciBpc0Fic29sdXRlID0gcGF0aC5jaGFyQXQoMCkgPT09ICcvJywKLSAg
ICAgICAgICAgIHRyYWlsaW5nU2xhc2ggPSBwYXRoLnN1YnN0cigtMSkgPT09ICcvJzsKLSAgICAg
ICAgLy8gTm9ybWFsaXplIHRoZSBwYXRoCi0gICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6ZUFy
cmF5KHBhdGguc3BsaXQoJy8nKS5maWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJldHVy
biAhIXA7Ci0gICAgICAgIH0pLCAhaXNBYnNvbHV0ZSkuam9pbignLycpOwotICAgICAgICBpZiAo
IXBhdGggJiYgIWlzQWJzb2x1dGUpIHsKLSAgICAgICAgICBwYXRoID0gJy4nOwotICAgICAgICB9
Ci0gICAgICAgIGlmIChwYXRoICYmIHRyYWlsaW5nU2xhc2gpIHsKLSAgICAgICAgICBwYXRoICs9
ICcvJzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gKGlzQWJzb2x1dGUgPyAnLycgOiAnJykg
KyBwYXRoOwotICAgICAgfSxkaXJuYW1lOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHZhciBy
ZXN1bHQgPSBQQVRILnNwbGl0UGF0aChwYXRoKSwKLSAgICAgICAgICAgIHJvb3QgPSByZXN1bHRb
MF0sCi0gICAgICAgICAgICBkaXIgPSByZXN1bHRbMV07Ci0gICAgICAgIGlmICghcm9vdCAmJiAh
ZGlyKSB7Ci0gICAgICAgICAgLy8gTm8gZGlybmFtZSB3aGF0c29ldmVyCi0gICAgICAgICAgcmV0
dXJuICcuJzsKLSAgICAgICAgfQotICAgICAgICBpZiAoZGlyKSB7Ci0gICAgICAgICAgLy8gSXQg
aGFzIGEgZGlybmFtZSwgc3RyaXAgdHJhaWxpbmcgc2xhc2gKLSAgICAgICAgICBkaXIgPSBkaXIu
c3Vic3RyKDAsIGRpci5sZW5ndGggLSAxKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcm9v
dCArIGRpcjsKLSAgICAgIH0sYmFzZW5hbWU6ZnVuY3Rpb24gKHBhdGgsIGV4dCkgewotICAgICAg
ICAvLyBFTVNDUklQVEVOIHJldHVybiAnLycnIGZvciAnLycsIG5vdCBhbiBlbXB0eSBzdHJpbmcK
LSAgICAgICAgaWYgKHBhdGggPT09ICcvJykgcmV0dXJuICcvJzsKLSAgICAgICAgdmFyIGYgPSBQ
QVRILnNwbGl0UGF0aChwYXRoKVsyXTsKLSAgICAgICAgaWYgKGV4dCAmJiBmLnN1YnN0cigtMSAq
IGV4dC5sZW5ndGgpID09PSBleHQpIHsKLSAgICAgICAgICBmID0gZi5zdWJzdHIoMCwgZi5sZW5n
dGggLSBleHQubGVuZ3RoKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZjsKLSAgICAgIH0s
am9pbjpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBwYXRocyA9IEFycmF5LnByb3RvdHlwZS5z
bGljZS5jYWxsKGFyZ3VtZW50cywgMCk7Ci0gICAgICAgIHJldHVybiBQQVRILm5vcm1hbGl6ZShw
YXRocy5maWx0ZXIoZnVuY3Rpb24ocCwgaW5kZXgpIHsKLSAgICAgICAgICBpZiAodHlwZW9mIHAg
IT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVu
dHMgdG8gcGF0aC5qb2luIG11c3QgYmUgc3RyaW5ncycpOwotICAgICAgICAgIH0KLSAgICAgICAg
ICByZXR1cm4gcDsKLSAgICAgICAgfSkuam9pbignLycpKTsKLSAgICAgIH0scmVzb2x2ZTpmdW5j
dGlvbiAoKSB7Ci0gICAgICAgIHZhciByZXNvbHZlZFBhdGggPSAnJywKLSAgICAgICAgICByZXNv
bHZlZEFic29sdXRlID0gZmFsc2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSBhcmd1bWVudHMubGVu
Z3RoIC0gMTsgaSA+PSAtMSAmJiAhcmVzb2x2ZWRBYnNvbHV0ZTsgaS0tKSB7Ci0gICAgICAgICAg
dmFyIHBhdGggPSAoaSA+PSAwKSA/IGFyZ3VtZW50c1tpXSA6IEZTLmN3ZCgpOwotICAgICAgICAg
IC8vIFNraXAgZW1wdHkgYW5kIGludmFsaWQgZW50cmllcwotICAgICAgICAgIGlmICh0eXBlb2Yg
cGF0aCAhPT0gJ3N0cmluZycpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Fy
Z3VtZW50cyB0byBwYXRoLnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzJyk7Ci0gICAgICAgICAgfSBl
bHNlIGlmICghcGF0aCkgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIHJlc29sdmVkUGF0aCA9IHBhdGggKyAnLycgKyByZXNvbHZlZFBhdGg7Ci0gICAgICAg
ICAgcmVzb2x2ZWRBYnNvbHV0ZSA9IHBhdGguY2hhckF0KDApID09PSAnLyc7Ci0gICAgICAgIH0K
LSAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgcGF0aCBzaG91bGQgYmUgcmVzb2x2ZWQgdG8g
YSBmdWxsIGFic29sdXRlIHBhdGgsIGJ1dAotICAgICAgICAvLyBoYW5kbGUgcmVsYXRpdmUgcGF0
aHMgdG8gYmUgc2FmZSAobWlnaHQgaGFwcGVuIHdoZW4gcHJvY2Vzcy5jd2QoKSBmYWlscykKLSAg
ICAgICAgcmVzb2x2ZWRQYXRoID0gUEFUSC5ub3JtYWxpemVBcnJheShyZXNvbHZlZFBhdGguc3Bs
aXQoJy8nKS5maWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJldHVybiAhIXA7Ci0gICAg
ICAgIH0pLCAhcmVzb2x2ZWRBYnNvbHV0ZSkuam9pbignLycpOwotICAgICAgICByZXR1cm4gKChy
ZXNvbHZlZEFic29sdXRlID8gJy8nIDogJycpICsgcmVzb2x2ZWRQYXRoKSB8fCAnLic7Ci0gICAg
ICB9LHJlbGF0aXZlOmZ1bmN0aW9uIChmcm9tLCB0bykgewotICAgICAgICBmcm9tID0gUEFUSC5y
ZXNvbHZlKGZyb20pLnN1YnN0cigxKTsKLSAgICAgICAgdG8gPSBQQVRILnJlc29sdmUodG8pLnN1
YnN0cigxKTsKLSAgICAgICAgZnVuY3Rpb24gdHJpbShhcnIpIHsKLSAgICAgICAgICB2YXIgc3Rh
cnQgPSAwOwotICAgICAgICAgIGZvciAoOyBzdGFydCA8IGFyci5sZW5ndGg7IHN0YXJ0KyspIHsK
LSAgICAgICAgICAgIGlmIChhcnJbc3RhcnRdICE9PSAnJykgYnJlYWs7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIHZhciBlbmQgPSBhcnIubGVuZ3RoIC0gMTsKLSAgICAgICAgICBmb3IgKDsgZW5k
ID49IDA7IGVuZC0tKSB7Ci0gICAgICAgICAgICBpZiAoYXJyW2VuZF0gIT09ICcnKSBicmVhazsK
LSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSByZXR1cm4gW107Ci0gICAg
ICAgICAgcmV0dXJuIGFyci5zbGljZShzdGFydCwgZW5kIC0gc3RhcnQgKyAxKTsKLSAgICAgICAg
fQotICAgICAgICB2YXIgZnJvbVBhcnRzID0gdHJpbShmcm9tLnNwbGl0KCcvJykpOwotICAgICAg
ICB2YXIgdG9QYXJ0cyA9IHRyaW0odG8uc3BsaXQoJy8nKSk7Ci0gICAgICAgIHZhciBsZW5ndGgg
PSBNYXRoLm1pbihmcm9tUGFydHMubGVuZ3RoLCB0b1BhcnRzLmxlbmd0aCk7Ci0gICAgICAgIHZh
ciBzYW1lUGFydHNMZW5ndGggPSBsZW5ndGg7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICBpZiAoZnJvbVBhcnRzW2ldICE9PSB0b1BhcnRzW2ld
KSB7Ci0gICAgICAgICAgICBzYW1lUGFydHNMZW5ndGggPSBpOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHZhciBvdXRwdXRQYXJ0cyA9IFtdOwot
ICAgICAgICBmb3IgKHZhciBpID0gc2FtZVBhcnRzTGVuZ3RoOyBpIDwgZnJvbVBhcnRzLmxlbmd0
aDsgaSsrKSB7Ci0gICAgICAgICAgb3V0cHV0UGFydHMucHVzaCgnLi4nKTsKLSAgICAgICAgfQot
ICAgICAgICBvdXRwdXRQYXJ0cyA9IG91dHB1dFBhcnRzLmNvbmNhdCh0b1BhcnRzLnNsaWNlKHNh
bWVQYXJ0c0xlbmd0aCkpOwotICAgICAgICByZXR1cm4gb3V0cHV0UGFydHMuam9pbignLycpOwot
ICAgICAgfX07Ci0gIHZhciBUVFk9e3R0eXM6W10scmVnaXN0ZXI6ZnVuY3Rpb24gKGRldiwgb3Bz
KSB7Ci0gICAgICAgIFRUWS50dHlzW2Rldl0gPSB7IGlucHV0OiBbXSwgb3V0cHV0OiBbXSwgb3Bz
OiBvcHMgfTsKLSAgICAgICAgRlMucmVnaXN0ZXJEZXZpY2UoZGV2LCBUVFkuc3RyZWFtX29wcyk7
Ci0gICAgICB9LHN0cmVhbV9vcHM6e29wZW46ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAgICAg
IC8vIHRoaXMgd291bGRuJ3QgYmUgcmVxdWlyZWQgaWYgdGhlIGxpYnJhcnkgd2Fzbid0IGV2YWwn
ZCBhdCBmaXJzdC4uLgotICAgICAgICAgIGlmICghVFRZLnV0ZjgpIHsKLSAgICAgICAgICAgIFRU
WS51dGY4ID0gbmV3IFJ1bnRpbWUuVVRGOFByb2Nlc3NvcigpOwotICAgICAgICAgIH0KLSAgICAg
ICAgICB2YXIgdHR5ID0gVFRZLnR0eXNbc3RyZWFtLm5vZGUucmRldl07Ci0gICAgICAgICAgaWYg
KCF0dHkpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVOT0RFVik7Ci0gICAgICAgICAgfQotICAgICAgICAgIHN0cmVhbS50dHkgPSB0dHk7Ci0gICAg
ICAgICAgc3RyZWFtLnNlZWthYmxlID0gZmFsc2U7Ci0gICAgICAgIH0sY2xvc2U6ZnVuY3Rpb24g
KHN0cmVhbSkgewotICAgICAgICAgIC8vIGZsdXNoIGFueSBwZW5kaW5nIGxpbmUgZGF0YQotICAg
ICAgICAgIGlmIChzdHJlYW0udHR5Lm91dHB1dC5sZW5ndGgpIHsKLSAgICAgICAgICAgIHN0cmVh
bS50dHkub3BzLnB1dF9jaGFyKHN0cmVhbS50dHksIDEwKTsKLSAgICAgICAgICB9Ci0gICAgICAg
IH0scmVhZDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3MgLyog
aWdub3JlZCAqLykgewotICAgICAgICAgIGlmICghc3RyZWFtLnR0eSB8fCAhc3RyZWFtLnR0eS5v
cHMuZ2V0X2NoYXIpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVOWElPKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGJ5dGVzUmVhZCA9IDA7
Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICAg
ICAgdmFyIHJlc3VsdDsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIHJlc3VsdCA9
IHN0cmVhbS50dHkub3BzLmdldF9jaGFyKHN0cmVhbS50dHkpOwotICAgICAgICAgICAgfSBjYXRj
aCAoZSkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FSU8pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZp
bmVkICYmIGJ5dGVzUmVhZCA9PT0gMCkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FQUdBSU4pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZCkgYnJlYWs7Ci0gICAg
ICAgICAgICBieXRlc1JlYWQrKzsKLSAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQraV0gPSByZXN1
bHQ7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChieXRlc1JlYWQpIHsKLSAgICAgICAgICAg
IHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIHJldHVybiBieXRlc1JlYWQ7Ci0gICAgICAgIH0sd3JpdGU6ZnVuY3Rpb24gKHN0cmVhbSwg
YnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zKSB7Ci0gICAgICAgICAgaWYgKCFzdHJlYW0udHR5
IHx8ICFzdHJlYW0udHR5Lm9wcy5wdXRfY2hhcikgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5YSU8pOwotICAgICAgICAgIH0KLSAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB0cnkgewotICAg
ICAgICAgICAgICBzdHJlYW0udHR5Lm9wcy5wdXRfY2hhcihzdHJlYW0udHR5LCBidWZmZXJbb2Zm
c2V0K2ldKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgdGhyb3cg
bmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICB9Ci0gICAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAgc3RyZWFtLm5vZGUu
dGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGk7
Ci0gICAgICAgIH19LGRlZmF1bHRfdHR5X29wczp7Z2V0X2NoYXI6ZnVuY3Rpb24gKHR0eSkgewot
ICAgICAgICAgIGlmICghdHR5LmlucHV0Lmxlbmd0aCkgewotICAgICAgICAgICAgdmFyIHJlc3Vs
dCA9IG51bGw7Ci0gICAgICAgICAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewotICAgICAg
ICAgICAgICBpZiAocHJvY2Vzcy5zdGRpbi5kZXN0cm95ZWQpIHsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIHJlc3VsdCA9
IHByb2Nlc3Muc3RkaW4ucmVhZCgpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygd2lu
ZG93ICE9ICd1bmRlZmluZWQnICYmCi0gICAgICAgICAgICAgIHR5cGVvZiB3aW5kb3cucHJvbXB0
ID09ICdmdW5jdGlvbicpIHsKLSAgICAgICAgICAgICAgLy8gQnJvd3Nlci4KLSAgICAgICAgICAg
ICAgcmVzdWx0ID0gd2luZG93LnByb21wdCgnSW5wdXQ6ICcpOyAgLy8gcmV0dXJucyBudWxsIG9u
IGNhbmNlbAotICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7Ci0gICAgICAgICAg
ICAgICAgcmVzdWx0ICs9ICdcbic7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxz
ZSBpZiAodHlwZW9mIHJlYWRsaW5lID09ICdmdW5jdGlvbicpIHsKLSAgICAgICAgICAgICAgLy8g
Q29tbWFuZCBsaW5lLgotICAgICAgICAgICAgICByZXN1bHQgPSByZWFkbGluZSgpOwotICAgICAg
ICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ICs9
ICdcbic7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICgh
cmVzdWx0KSB7Ci0gICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgdHR5LmlucHV0ID0gaW50QXJyYXlGcm9tU3RyaW5nKHJlc3VsdCwgdHJ1ZSk7Ci0g
ICAgICAgICAgfQotICAgICAgICAgIHJldHVybiB0dHkuaW5wdXQuc2hpZnQoKTsKLSAgICAgICAg
fSxwdXRfY2hhcjpmdW5jdGlvbiAodHR5LCB2YWwpIHsKLSAgICAgICAgICBpZiAodmFsID09PSBu
dWxsIHx8IHZhbCA9PT0gMTApIHsKLSAgICAgICAgICAgIE1vZHVsZVsncHJpbnQnXSh0dHkub3V0
cHV0LmpvaW4oJycpKTsKLSAgICAgICAgICAgIHR0eS5vdXRwdXQgPSBbXTsKLSAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgdHR5Lm91dHB1dC5wdXNoKFRUWS51dGY4LnByb2Nlc3NDQ2hh
cih2YWwpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH19LGRlZmF1bHRfdHR5MV9vcHM6e3B1dF9j
aGFyOmZ1bmN0aW9uICh0dHksIHZhbCkgewotICAgICAgICAgIGlmICh2YWwgPT09IG51bGwgfHwg
dmFsID09PSAxMCkgewotICAgICAgICAgICAgTW9kdWxlWydwcmludEVyciddKHR0eS5vdXRwdXQu
am9pbignJykpOwotICAgICAgICAgICAgdHR5Lm91dHB1dCA9IFtdOwotICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICB0dHkub3V0cHV0LnB1c2goVFRZLnV0ZjgucHJvY2Vzc0NDaGFyKHZh
bCkpOwotICAgICAgICAgIH0KLSAgICAgICAgfX19OwotICB2YXIgTUVNRlM9e21vdW50OmZ1bmN0
aW9uIChtb3VudCkgewotICAgICAgICByZXR1cm4gTUVNRlMuY3JlYXRlX25vZGUobnVsbCwgJy8n
LCAwMDQwMDAwIHwgMDc3NywgMCk7Ci0gICAgICB9LGNyZWF0ZV9ub2RlOmZ1bmN0aW9uIChwYXJl
bnQsIG5hbWUsIG1vZGUsIGRldikgewotICAgICAgICBpZiAoRlMuaXNCbGtkZXYobW9kZSkgfHwg
RlMuaXNGSUZPKG1vZGUpKSB7Ci0gICAgICAgICAgLy8gbm8gc3VwcG9ydGVkCi0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0g
ICAgICAgIHZhciBub2RlID0gRlMuY3JlYXRlTm9kZShwYXJlbnQsIG5hbWUsIG1vZGUsIGRldik7
Ci0gICAgICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgbm9kZS5ub2Rl
X29wcyA9IHsKLSAgICAgICAgICAgIGdldGF0dHI6IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIsCi0g
ICAgICAgICAgICBzZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5zZXRhdHRyLAotICAgICAgICAgICAg
bG9va3VwOiBNRU1GUy5ub2RlX29wcy5sb29rdXAsCi0gICAgICAgICAgICBta25vZDogTUVNRlMu
bm9kZV9vcHMubWtub2QsCi0gICAgICAgICAgICBta25vZDogTUVNRlMubm9kZV9vcHMubWtub2Qs
Ci0gICAgICAgICAgICByZW5hbWU6IE1FTUZTLm5vZGVfb3BzLnJlbmFtZSwKLSAgICAgICAgICAg
IHVubGluazogTUVNRlMubm9kZV9vcHMudW5saW5rLAotICAgICAgICAgICAgcm1kaXI6IE1FTUZT
Lm5vZGVfb3BzLnJtZGlyLAotICAgICAgICAgICAgcmVhZGRpcjogTUVNRlMubm9kZV9vcHMucmVh
ZGRpciwKLSAgICAgICAgICAgIHN5bWxpbms6IE1FTUZTLm5vZGVfb3BzLnN5bWxpbmsKLSAgICAg
ICAgICB9OwotICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IHsKLSAgICAgICAgICAgIGxsc2Vl
azogTUVNRlMuc3RyZWFtX29wcy5sbHNlZWsKLSAgICAgICAgICB9OwotICAgICAgICAgIG5vZGUu
Y29udGVudHMgPSB7fTsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0ZpbGUobm9kZS5tb2RlKSkg
ewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBNRU1G
Uy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9vcHMu
c2V0YXR0cgotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gewotICAg
ICAgICAgICAgbGxzZWVrOiBNRU1GUy5zdHJlYW1fb3BzLmxsc2VlaywKLSAgICAgICAgICAgIHJl
YWQ6IE1FTUZTLnN0cmVhbV9vcHMucmVhZCwKLSAgICAgICAgICAgIHdyaXRlOiBNRU1GUy5zdHJl
YW1fb3BzLndyaXRlLAotICAgICAgICAgICAgYWxsb2NhdGU6IE1FTUZTLnN0cmVhbV9vcHMuYWxs
b2NhdGUsCi0gICAgICAgICAgICBtbWFwOiBNRU1GUy5zdHJlYW1fb3BzLm1tYXAKLSAgICAgICAg
ICB9OwotICAgICAgICAgIG5vZGUuY29udGVudHMgPSBbXTsKLSAgICAgICAgfSBlbHNlIGlmIChG
Uy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAg
ICAgICAgICBnZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0
YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0YXR0ciwKLSAgICAgICAgICAgIHJlYWRsaW5rOiBNRU1G
Uy5ub2RlX29wcy5yZWFkbGluawotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1f
b3BzID0ge307Ci0gICAgICAgIH0gZWxzZSBpZiAoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSkgewot
ICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBNRU1GUy5u
b2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0
YXR0cgotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gRlMuY2hyZGV2
X3N0cmVhbV9vcHM7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS50aW1lc3RhbXAgPSBEYXRlLm5v
dygpOwotICAgICAgICAvLyBhZGQgdGhlIG5ldyBub2RlIHRvIHRoZSBwYXJlbnQKLSAgICAgICAg
aWYgKHBhcmVudCkgewotICAgICAgICAgIHBhcmVudC5jb250ZW50c1tuYW1lXSA9IG5vZGU7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LG5vZGVfb3BzOntnZXRhdHRy
OmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgICAgdmFyIGF0dHIgPSB7fTsKLSAgICAgICAgICAv
LyBkZXZpY2UgbnVtYmVycyByZXVzZSBpbm9kZSBudW1iZXJzLgotICAgICAgICAgIGF0dHIuZGV2
ID0gRlMuaXNDaHJkZXYobm9kZS5tb2RlKSA/IG5vZGUuaWQgOiAxOwotICAgICAgICAgIGF0dHIu
aW5vID0gbm9kZS5pZDsKLSAgICAgICAgICBhdHRyLm1vZGUgPSBub2RlLm1vZGU7Ci0gICAgICAg
ICAgYXR0ci5ubGluayA9IDE7Ci0gICAgICAgICAgYXR0ci51aWQgPSAwOwotICAgICAgICAgIGF0
dHIuZ2lkID0gMDsKLSAgICAgICAgICBhdHRyLnJkZXYgPSBub2RlLnJkZXY7Ci0gICAgICAgICAg
aWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIGF0dHIuc2l6ZSA9IDQwOTY7
Ci0gICAgICAgICAgfSBlbHNlIGlmIChGUy5pc0ZpbGUobm9kZS5tb2RlKSkgewotICAgICAgICAg
ICAgYXR0ci5zaXplID0gbm9kZS5jb250ZW50cy5sZW5ndGg7Ci0gICAgICAgICAgfSBlbHNlIGlm
IChGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgICAgYXR0ci5zaXplID0gbm9kZS5s
aW5rLmxlbmd0aDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXR0ci5zaXplID0g
MDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgYXR0ci5hdGltZSA9IG5ldyBEYXRlKG5vZGUudGlt
ZXN0YW1wKTsKLSAgICAgICAgICBhdHRyLm10aW1lID0gbmV3IERhdGUobm9kZS50aW1lc3RhbXAp
OwotICAgICAgICAgIGF0dHIuY3RpbWUgPSBuZXcgRGF0ZShub2RlLnRpbWVzdGFtcCk7Ci0gICAg
ICAgICAgLy8gTk9URTogSW4gb3VyIGltcGxlbWVudGF0aW9uLCBzdF9ibG9ja3MgPSBNYXRoLmNl
aWwoc3Rfc2l6ZS9zdF9ibGtzaXplKSwKLSAgICAgICAgICAvLyAgICAgICBidXQgdGhpcyBpcyBu
b3QgcmVxdWlyZWQgYnkgdGhlIHN0YW5kYXJkLgotICAgICAgICAgIGF0dHIuYmxrc2l6ZSA9IDQw
OTY7Ci0gICAgICAgICAgYXR0ci5ibG9ja3MgPSBNYXRoLmNlaWwoYXR0ci5zaXplIC8gYXR0ci5i
bGtzaXplKTsKLSAgICAgICAgICByZXR1cm4gYXR0cjsKLSAgICAgICAgfSxzZXRhdHRyOmZ1bmN0
aW9uIChub2RlLCBhdHRyKSB7Ci0gICAgICAgICAgaWYgKGF0dHIubW9kZSAhPT0gdW5kZWZpbmVk
KSB7Ci0gICAgICAgICAgICBub2RlLm1vZGUgPSBhdHRyLm1vZGU7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIGlmIChhdHRyLnRpbWVzdGFtcCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICBu
b2RlLnRpbWVzdGFtcCA9IGF0dHIudGltZXN0YW1wOwotICAgICAgICAgIH0KLSAgICAgICAgICBp
ZiAoYXR0ci5zaXplICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHZhciBjb250ZW50cyA9
IG5vZGUuY29udGVudHM7Ci0gICAgICAgICAgICBpZiAoYXR0ci5zaXplIDwgY29udGVudHMubGVu
Z3RoKSBjb250ZW50cy5sZW5ndGggPSBhdHRyLnNpemU7Ci0gICAgICAgICAgICBlbHNlIHdoaWxl
IChhdHRyLnNpemUgPiBjb250ZW50cy5sZW5ndGgpIGNvbnRlbnRzLnB1c2goMCk7Ci0gICAgICAg
ICAgfQotICAgICAgICB9LGxvb2t1cDpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKTsKLSAgICAgICAg
fSxta25vZDpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpIHsKLSAgICAgICAgICBy
ZXR1cm4gTUVNRlMuY3JlYXRlX25vZGUocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpOwotICAgICAg
ICB9LHJlbmFtZTpmdW5jdGlvbiAob2xkX25vZGUsIG5ld19kaXIsIG5ld19uYW1lKSB7Ci0gICAg
ICAgICAgLy8gaWYgd2UncmUgb3ZlcndyaXRpbmcgYSBkaXJlY3RvcnkgYXQgbmV3X25hbWUsIG1h
a2Ugc3VyZSBpdCdzIGVtcHR5LgotICAgICAgICAgIGlmIChGUy5pc0RpcihvbGRfbm9kZS5tb2Rl
KSkgewotICAgICAgICAgICAgdmFyIG5ld19ub2RlOwotICAgICAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgICAgbmV3X25vZGUgPSBGUy5sb29rdXBOb2RlKG5ld19kaXIsIG5ld19uYW1lKTsKLSAg
ICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChu
ZXdfbm9kZSkgewotICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIG5ld19ub2RlLmNvbnRlbnRz
KSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RU5PVEVNUFRZKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0K
LSAgICAgICAgICAvLyBkbyB0aGUgaW50ZXJuYWwgcmV3aXJpbmcKLSAgICAgICAgICBkZWxldGUg
b2xkX25vZGUucGFyZW50LmNvbnRlbnRzW29sZF9ub2RlLm5hbWVdOwotICAgICAgICAgIG9sZF9u
b2RlLm5hbWUgPSBuZXdfbmFtZTsKLSAgICAgICAgICBuZXdfZGlyLmNvbnRlbnRzW25ld19uYW1l
XSA9IG9sZF9ub2RlOwotICAgICAgICB9LHVubGluazpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7
Ci0gICAgICAgICAgZGVsZXRlIHBhcmVudC5jb250ZW50c1tuYW1lXTsKLSAgICAgICAgfSxybWRp
cjpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAgICAgICAgdmFyIG5vZGUgPSBGUy5sb29r
dXBOb2RlKHBhcmVudCwgbmFtZSk7Ci0gICAgICAgICAgZm9yICh2YXIgaSBpbiBub2RlLmNvbnRl
bnRzKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
Tk9URU1QVFkpOwotICAgICAgICAgIH0KLSAgICAgICAgICBkZWxldGUgcGFyZW50LmNvbnRlbnRz
W25hbWVdOwotICAgICAgICB9LHJlYWRkaXI6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgICB2
YXIgZW50cmllcyA9IFsnLicsICcuLiddCi0gICAgICAgICAgZm9yICh2YXIga2V5IGluIG5vZGUu
Y29udGVudHMpIHsKLSAgICAgICAgICAgIGlmICghbm9kZS5jb250ZW50cy5oYXNPd25Qcm9wZXJ0
eShrZXkpKSB7Ci0gICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgZW50cmllcy5wdXNoKGtleSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBl
bnRyaWVzOwotICAgICAgICB9LHN5bWxpbms6ZnVuY3Rpb24gKHBhcmVudCwgbmV3bmFtZSwgb2xk
cGF0aCkgewotICAgICAgICAgIHZhciBub2RlID0gTUVNRlMuY3JlYXRlX25vZGUocGFyZW50LCBu
ZXduYW1lLCAwNzc3IHwgMDEyMDAwMCwgMCk7Ci0gICAgICAgICAgbm9kZS5saW5rID0gb2xkcGF0
aDsKLSAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgfSxyZWFkbGluazpmdW5jdGlvbiAo
bm9kZSkgewotICAgICAgICAgIGlmICghRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKLSAgICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAg
ICAgfQotICAgICAgICAgIHJldHVybiBub2RlLmxpbms7Ci0gICAgICAgIH19LHN0cmVhbV9vcHM6
e3JlYWQ6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24p
IHsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAg
ICAgICB2YXIgc2l6ZSA9IE1hdGgubWluKGNvbnRlbnRzLmxlbmd0aCAtIHBvc2l0aW9uLCBsZW5n
dGgpOwotICAgICAgICAgIGlmIChjb250ZW50cy5zdWJhcnJheSkgeyAvLyB0eXBlZCBhcnJheQot
ICAgICAgICAgICAgYnVmZmVyLnNldChjb250ZW50cy5zdWJhcnJheShwb3NpdGlvbiwgcG9zaXRp
b24gKyBzaXplKSwgb2Zmc2V0KTsKLSAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICB7Ci0gICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICAgICAgICBi
dWZmZXJbb2Zmc2V0ICsgaV0gPSBjb250ZW50c1twb3NpdGlvbiArIGldOwotICAgICAgICAgICAg
fQotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gc2l6ZTsKLSAgICAgICAgfSx3cml0ZTpm
dW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewotICAg
ICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwotICAgICAgICAgIHdo
aWxlIChjb250ZW50cy5sZW5ndGggPCBwb3NpdGlvbikgY29udGVudHMucHVzaCgwKTsKLSAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBjb250
ZW50c1twb3NpdGlvbiArIGldID0gYnVmZmVyW29mZnNldCArIGldOwotICAgICAgICAgIH0KLSAg
ICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgIHJl
dHVybiBsZW5ndGg7Ci0gICAgICAgIH0sbGxzZWVrOmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNldCwg
d2hlbmNlKSB7Ci0gICAgICAgICAgdmFyIHBvc2l0aW9uID0gb2Zmc2V0OwotICAgICAgICAgIGlm
ICh3aGVuY2UgPT09IDEpIHsgIC8vIFNFRUtfQ1VSLgotICAgICAgICAgICAgcG9zaXRpb24gKz0g
c3RyZWFtLnBvc2l0aW9uOwotICAgICAgICAgIH0gZWxzZSBpZiAod2hlbmNlID09PSAyKSB7ICAv
LyBTRUVLX0VORC4KLSAgICAgICAgICAgIGlmIChGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkp
IHsKLSAgICAgICAgICAgICAgcG9zaXRpb24gKz0gc3RyZWFtLm5vZGUuY29udGVudHMubGVuZ3Ro
OwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAocG9zaXRpb24gPCAw
KSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5W
QUwpOwotICAgICAgICAgIH0KLSAgICAgICAgICBzdHJlYW0udW5nb3R0ZW4gPSBbXTsKLSAgICAg
ICAgICBzdHJlYW0ucG9zaXRpb24gPSBwb3NpdGlvbjsKLSAgICAgICAgICByZXR1cm4gcG9zaXRp
b247Ci0gICAgICAgIH0sYWxsb2NhdGU6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCBsZW5ndGgp
IHsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAg
ICAgICB2YXIgbGltaXQgPSBvZmZzZXQgKyBsZW5ndGg7Ci0gICAgICAgICAgd2hpbGUgKGxpbWl0
ID4gY29udGVudHMubGVuZ3RoKSBjb250ZW50cy5wdXNoKDApOwotICAgICAgICB9LG1tYXA6ZnVu
Y3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24sIHByb3QsIGZs
YWdzKSB7Ci0gICAgICAgICAgaWYgKCFGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpIHsKLSAg
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVik7Ci0g
ICAgICAgICAgfQotICAgICAgICAgIHZhciBwdHI7Ci0gICAgICAgICAgdmFyIGFsbG9jYXRlZDsK
LSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAgICAg
ICAvLyBPbmx5IG1ha2UgYSBuZXcgY29weSB3aGVuIE1BUF9QUklWQVRFIGlzIHNwZWNpZmllZC4K
LSAgICAgICAgICBpZiAoIShmbGFncyAmIDB4MDIpKSB7Ci0gICAgICAgICAgICAvLyBXZSBjYW4n
dCBlbXVsYXRlIE1BUF9TSEFSRUQgd2hlbiB0aGUgZmlsZSBpcyBub3QgYmFja2VkIGJ5IHRoZSBi
dWZmZXIKLSAgICAgICAgICAgIC8vIHdlJ3JlIG1hcHBpbmcgdG8gKGUuZy4gdGhlIEhFQVAgYnVm
ZmVyKS4KLSAgICAgICAgICAgIGFzc2VydChjb250ZW50cy5idWZmZXIgPT09IGJ1ZmZlciB8fCBj
b250ZW50cy5idWZmZXIgPT09IGJ1ZmZlci5idWZmZXIpOwotICAgICAgICAgICAgYWxsb2NhdGVk
ID0gZmFsc2U7Ci0gICAgICAgICAgICBwdHIgPSBjb250ZW50cy5ieXRlT2Zmc2V0OwotICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBUcnkgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgc2xp
Y2VzLgotICAgICAgICAgICAgaWYgKHBvc2l0aW9uID4gMCB8fCBwb3NpdGlvbiArIGxlbmd0aCA8
IGNvbnRlbnRzLmxlbmd0aCkgewotICAgICAgICAgICAgICBpZiAoY29udGVudHMuc3ViYXJyYXkp
IHsKLSAgICAgICAgICAgICAgICBjb250ZW50cyA9IGNvbnRlbnRzLnN1YmFycmF5KHBvc2l0aW9u
LCBwb3NpdGlvbiArIGxlbmd0aCk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgY29udGVudHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjb250ZW50cywgcG9z
aXRpb24sIHBvc2l0aW9uICsgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotICAgICAgICAgICAgYWxsb2NhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHB0ciA9IF9tYWxs
b2MobGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICghcHRyKSB7Ci0gICAgICAgICAgICAgIHRocm93
IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT01FTSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBidWZmZXIuc2V0KGNvbnRlbnRzLCBwdHIpOwotICAgICAgICAgIH0KLSAgICAg
ICAgICByZXR1cm4geyBwdHI6IHB0ciwgYWxsb2NhdGVkOiBhbGxvY2F0ZWQgfTsKLSAgICAgICAg
fX19OwotICB2YXIgX3N0ZGluPWFsbG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElDKTsKLSAg
dmFyIF9zdGRvdXQ9YWxsb2NhdGUoMSwgImkzMioiLCBBTExPQ19TVEFUSUMpOwotICB2YXIgX3N0
ZGVycj1hbGxvY2F0ZSgxLCAiaTMyKiIsIEFMTE9DX1NUQVRJQyk7Ci0gIGZ1bmN0aW9uIF9mZmx1
c2goc3RyZWFtKSB7Ci0gICAgICAvLyBpbnQgZmZsdXNoKEZJTEUgKnN0cmVhbSk7Ci0gICAgICAv
LyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9u
cy9mZmx1c2guaHRtbAotICAgICAgLy8gd2UgZG9uJ3QgY3VycmVudGx5IHBlcmZvcm0gYW55IHVz
ZXItc3BhY2UgYnVmZmVyaW5nIG9mIGRhdGEKLSAgICB9dmFyIEZTPXtyb290Om51bGwsbm9kZXM6
W251bGxdLGRldmljZXM6W251bGxdLHN0cmVhbXM6W251bGxdLG5leHRJbm9kZToxLG5hbWVfdGFi
bGU6bnVsbCxjdXJyZW50UGF0aDoiLyIsaW5pdGlhbGl6ZWQ6ZmFsc2UsaWdub3JlUGVybWlzc2lv
bnM6dHJ1ZSxFcnJub0Vycm9yOmZ1bmN0aW9uIEVycm5vRXJyb3IoZXJybm8pIHsKLSAgICAgICAg
ICB0aGlzLmVycm5vID0gZXJybm87Ci0gICAgICAgICAgZm9yICh2YXIga2V5IGluIEVSUk5PX0NP
REVTKSB7Ci0gICAgICAgICAgICBpZiAoRVJSTk9fQ09ERVNba2V5XSA9PT0gZXJybm8pIHsKLSAg
ICAgICAgICAgICAgdGhpcy5jb2RlID0ga2V5OwotICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgdGhpcy5tZXNzYWdlID0gRVJSTk9fTUVT
U0FHRVNbZXJybm9dOwotICAgICAgICB9LGhhbmRsZUZTRXJyb3I6ZnVuY3Rpb24gKGUpIHsKLSAg
ICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSB0aHJvdyBlICsgJyA6ICcg
KyBuZXcgRXJyb3IoKS5zdGFjazsKLSAgICAgICAgcmV0dXJuIF9fX3NldEVyck5vKGUuZXJybm8p
OwotICAgICAgfSxoYXNoTmFtZTpmdW5jdGlvbiAocGFyZW50aWQsIG5hbWUpIHsKLSAgICAgICAg
dmFyIGhhc2ggPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBp
KyspIHsKLSAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCArIG5hbWUuY2hhckNv
ZGVBdChpKSkgfCAwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAoKHBhcmVudGlkICsgaGFz
aCkgPj4+IDApICUgRlMubmFtZV90YWJsZS5sZW5ndGg7Ci0gICAgICB9LGhhc2hBZGROb2RlOmZ1
bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHZhciBoYXNoID0gRlMuaGFzaE5hbWUobm9kZS5wYXJl
bnQuaWQsIG5vZGUubmFtZSk7Ci0gICAgICAgIG5vZGUubmFtZV9uZXh0ID0gRlMubmFtZV90YWJs
ZVtoYXNoXTsKLSAgICAgICAgRlMubmFtZV90YWJsZVtoYXNoXSA9IG5vZGU7Ci0gICAgICB9LGhh
c2hSZW1vdmVOb2RlOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHZhciBoYXNoID0gRlMuaGFz
aE5hbWUobm9kZS5wYXJlbnQuaWQsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmIChGUy5uYW1lX3Rh
YmxlW2hhc2hdID09PSBub2RlKSB7Ci0gICAgICAgICAgRlMubmFtZV90YWJsZVtoYXNoXSA9IG5v
ZGUubmFtZV9uZXh0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHZhciBjdXJyZW50ID0g
RlMubmFtZV90YWJsZVtoYXNoXTsKLSAgICAgICAgICB3aGlsZSAoY3VycmVudCkgewotICAgICAg
ICAgICAgaWYgKGN1cnJlbnQubmFtZV9uZXh0ID09PSBub2RlKSB7Ci0gICAgICAgICAgICAgIGN1
cnJlbnQubmFtZV9uZXh0ID0gbm9kZS5uYW1lX25leHQ7Ci0gICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmFtZV9uZXh0Owot
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSxsb29rdXBOb2RlOmZ1bmN0aW9uIChwYXJl
bnQsIG5hbWUpIHsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heUxvb2t1cChwYXJlbnQpOwotICAg
ICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsK
LSAgICAgICAgfQotICAgICAgICB2YXIgaGFzaCA9IEZTLmhhc2hOYW1lKHBhcmVudC5pZCwgbmFt
ZSk7Ci0gICAgICAgIGZvciAodmFyIG5vZGUgPSBGUy5uYW1lX3RhYmxlW2hhc2hdOyBub2RlOyBu
b2RlID0gbm9kZS5uYW1lX25leHQpIHsKLSAgICAgICAgICBpZiAobm9kZS5wYXJlbnQuaWQgPT09
IHBhcmVudC5pZCAmJiBub2RlLm5hbWUgPT09IG5hbWUpIHsKLSAgICAgICAgICAgIHJldHVybiBu
b2RlOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAvLyBpZiB3ZSBmYWlsZWQgdG8g
ZmluZCBpdCBpbiB0aGUgY2FjaGUsIGNhbGwgaW50byB0aGUgVkZTCi0gICAgICAgIHJldHVybiBG
Uy5sb29rdXAocGFyZW50LCBuYW1lKTsKLSAgICAgIH0sY3JlYXRlTm9kZTpmdW5jdGlvbiAocGFy
ZW50LCBuYW1lLCBtb2RlLCByZGV2KSB7Ci0gICAgICAgIHZhciBub2RlID0gewotICAgICAgICAg
IGlkOiBGUy5uZXh0SW5vZGUrKywKLSAgICAgICAgICBuYW1lOiBuYW1lLAotICAgICAgICAgIG1v
ZGU6IG1vZGUsCi0gICAgICAgICAgbm9kZV9vcHM6IHt9LAotICAgICAgICAgIHN0cmVhbV9vcHM6
IHt9LAotICAgICAgICAgIHJkZXY6IHJkZXYsCi0gICAgICAgICAgcGFyZW50OiBudWxsLAotICAg
ICAgICAgIG1vdW50OiBudWxsCi0gICAgICAgIH07Ci0gICAgICAgIGlmICghcGFyZW50KSB7Ci0g
ICAgICAgICAgcGFyZW50ID0gbm9kZTsgIC8vIHJvb3Qgbm9kZSBzZXRzIHBhcmVudCB0byBpdHNl
bGYKLSAgICAgICAgfQotICAgICAgICBub2RlLnBhcmVudCA9IHBhcmVudDsKLSAgICAgICAgbm9k
ZS5tb3VudCA9IHBhcmVudC5tb3VudDsKLSAgICAgICAgLy8gY29tcGF0aWJpbGl0eQotICAgICAg
ICB2YXIgcmVhZE1vZGUgPSAyOTIgfCA3MzsKLSAgICAgICAgdmFyIHdyaXRlTW9kZSA9IDE0NjsK
LSAgICAgICAgLy8gTk9URSB3ZSBtdXN0IHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydGllcyBpbnN0
ZWFkIG9mIGluZGl2aWR1YWwgY2FsbHMgdG8KLSAgICAgICAgLy8gT2JqZWN0LmRlZmluZVByb3Bl
cnR5IGluIG9yZGVyIHRvIG1ha2UgY2xvc3VyZSBjb21waWxlciBoYXBweQotICAgICAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydGllcyhub2RlLCB7Ci0gICAgICAgICAgcmVhZDogewotICAgICAgICAg
ICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChub2RlLm1vZGUgJiByZWFkTW9kZSkgPT09IHJl
YWRNb2RlOyB9LAotICAgICAgICAgICAgc2V0OiBmdW5jdGlvbih2YWwpIHsgdmFsID8gbm9kZS5t
b2RlIHw9IHJlYWRNb2RlIDogbm9kZS5tb2RlICY9IH5yZWFkTW9kZTsgfQotICAgICAgICAgIH0s
Ci0gICAgICAgICAgd3JpdGU6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVy
biAobm9kZS5tb2RlICYgd3JpdGVNb2RlKSA9PT0gd3JpdGVNb2RlOyB9LAotICAgICAgICAgICAg
c2V0OiBmdW5jdGlvbih2YWwpIHsgdmFsID8gbm9kZS5tb2RlIHw9IHdyaXRlTW9kZSA6IG5vZGUu
bW9kZSAmPSB+d3JpdGVNb2RlOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0ZvbGRlcjog
ewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIEZTLmlzRGlyKG5vZGUubW9k
ZSk7IH0sCi0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0RldmljZTogewotICAgICAgICAgICAg
Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIEZTLmlzQ2hyZGV2KG5vZGUubW9kZSk7IH0sCi0gICAg
ICAgICAgfSwKLSAgICAgICAgfSk7Ci0gICAgICAgIEZTLmhhc2hBZGROb2RlKG5vZGUpOwotICAg
ICAgICByZXR1cm4gbm9kZTsKLSAgICAgIH0sZGVzdHJveU5vZGU6ZnVuY3Rpb24gKG5vZGUpIHsK
LSAgICAgICAgRlMuaGFzaFJlbW92ZU5vZGUobm9kZSk7Ci0gICAgICB9LGlzUm9vdDpmdW5jdGlv
biAobm9kZSkgewotICAgICAgICByZXR1cm4gbm9kZSA9PT0gbm9kZS5wYXJlbnQ7Ci0gICAgICB9
LGlzTW91bnRwb2ludDpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICByZXR1cm4gbm9kZS5tb3Vu
dGVkOwotICAgICAgfSxpc0ZpbGU6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuICht
b2RlICYgMDE3MDAwMCkgPT09IDAxMDAwMDA7Ci0gICAgICB9LGlzRGlyOmZ1bmN0aW9uIChtb2Rl
KSB7Ci0gICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDQwMDAwOwotICAgICAg
fSxpc0xpbms6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAw
MCkgPT09IDAxMjAwMDA7Ci0gICAgICB9LGlzQ2hyZGV2OmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAg
ICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDIwMDAwOwotICAgICAgfSxpc0Jsa2Rl
djpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0g
MDA2MDAwMDsKLSAgICAgIH0saXNGSUZPOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJldHVy
biAobW9kZSAmIDAxNzAwMDApID09PSAwMDEwMDAwOwotICAgICAgfSxjd2Q6ZnVuY3Rpb24gKCkg
ewotICAgICAgICByZXR1cm4gRlMuY3VycmVudFBhdGg7Ci0gICAgICB9LGxvb2t1cFBhdGg6ZnVu
Y3Rpb24gKHBhdGgsIG9wdHMpIHsKLSAgICAgICAgcGF0aCA9IFBBVEgucmVzb2x2ZShGUy5jdXJy
ZW50UGF0aCwgcGF0aCk7Ci0gICAgICAgIG9wdHMgPSBvcHRzIHx8IHsgcmVjdXJzZV9jb3VudDog
MCB9OwotICAgICAgICBpZiAob3B0cy5yZWN1cnNlX2NvdW50ID4gOCkgeyAgLy8gbWF4IHJlY3Vy
c2l2ZSBsb29rdXAgb2YgOAotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVMT09QKTsKLSAgICAgICAgfQotICAgICAgICAvLyBzcGxpdCB0aGUgcGF0aAotICAg
ICAgICB2YXIgcGFydHMgPSBQQVRILm5vcm1hbGl6ZUFycmF5KHBhdGguc3BsaXQoJy8nKS5maWx0
ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJldHVybiAhIXA7Ci0gICAgICAgIH0pLCBmYWxz
ZSk7Ci0gICAgICAgIC8vIHN0YXJ0IGF0IHRoZSByb290Ci0gICAgICAgIHZhciBjdXJyZW50ID0g
RlMucm9vdDsKLSAgICAgICAgdmFyIGN1cnJlbnRfcGF0aCA9ICcvJzsKLSAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIHZhciBpc2xhc3Qg
PSAoaSA9PT0gcGFydHMubGVuZ3RoLTEpOwotICAgICAgICAgIGlmIChpc2xhc3QgJiYgb3B0cy5w
YXJlbnQpIHsKLSAgICAgICAgICAgIC8vIHN0b3AgcmVzb2x2aW5nCi0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICB9Ci0gICAgICAgICAgY3VycmVudCA9IEZTLmxvb2t1cE5vZGUoY3VycmVu
dCwgcGFydHNbaV0pOwotICAgICAgICAgIGN1cnJlbnRfcGF0aCA9IFBBVEguam9pbihjdXJyZW50
X3BhdGgsIHBhcnRzW2ldKTsKLSAgICAgICAgICAvLyBqdW1wIHRvIHRoZSBtb3VudCdzIHJvb3Qg
bm9kZSBpZiB0aGlzIGlzIGEgbW91bnRwb2ludAotICAgICAgICAgIGlmIChGUy5pc01vdW50cG9p
bnQoY3VycmVudCkpIHsKLSAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm1vdW50LnJvb3Q7
Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIGZvbGxvdyBzeW1saW5rcwotICAgICAgICAgIC8v
IGJ5IGRlZmF1bHQsIGxvb2t1cFBhdGggd2lsbCBub3QgZm9sbG93IGEgc3ltbGluayBpZiBpdCBp
cyB0aGUgZmluYWwgcGF0aCBjb21wb25lbnQuCi0gICAgICAgICAgLy8gc2V0dGluZyBvcHRzLmZv
bGxvdyA9IHRydWUgd2lsbCBvdmVycmlkZSB0aGlzIGJlaGF2aW9yLgotICAgICAgICAgIGlmICgh
aXNsYXN0IHx8IG9wdHMuZm9sbG93KSB7Ci0gICAgICAgICAgICB2YXIgY291bnQgPSAwOwotICAg
ICAgICAgICAgd2hpbGUgKEZTLmlzTGluayhjdXJyZW50Lm1vZGUpKSB7Ci0gICAgICAgICAgICAg
IHZhciBsaW5rID0gRlMucmVhZGxpbmsoY3VycmVudF9wYXRoKTsKLSAgICAgICAgICAgICAgY3Vy
cmVudF9wYXRoID0gUEFUSC5yZXNvbHZlKFBBVEguZGlybmFtZShjdXJyZW50X3BhdGgpLCBsaW5r
KTsKLSAgICAgICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgoY3VycmVudF9wYXRo
LCB7IHJlY3Vyc2VfY291bnQ6IG9wdHMucmVjdXJzZV9jb3VudCB9KTsKLSAgICAgICAgICAgICAg
Y3VycmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgICAgICBpZiAoY291bnQrKyA+IDQwKSB7
ICAvLyBsaW1pdCBtYXggY29uc2VjdXRpdmUgc3ltbGlua3MgdG8gNDAgKFNZTUxPT1BfTUFYKS4K
LSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTE9P
UCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHsgcGF0aDogY3VycmVudF9wYXRoLCBub2RlOiBjdXJyZW50IH07
Ci0gICAgICB9LGdldFBhdGg6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgdmFyIHBhdGg7Ci0g
ICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgaWYgKEZTLmlzUm9vdChub2RlKSkgewot
ICAgICAgICAgICAgcmV0dXJuIHBhdGggPyBQQVRILmpvaW4obm9kZS5tb3VudC5tb3VudHBvaW50
LCBwYXRoKSA6IG5vZGUubW91bnQubW91bnRwb2ludDsKLSAgICAgICAgICB9Ci0gICAgICAgICAg
cGF0aCA9IHBhdGggPyBQQVRILmpvaW4obm9kZS5uYW1lLCBwYXRoKSA6IG5vZGUubmFtZTsKLSAg
ICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQ7Ci0gICAgICAgIH0KLSAgICAgIH0sZmxhZ01vZGVz
OnsiciI6MCwicnMiOjgxOTIsInIrIjoyLCJ3IjoxNTM3LCJ3eCI6MzU4NSwieHciOjM1ODUsIncr
IjoxNTM4LCJ3eCsiOjM1ODYsInh3KyI6MzU4NiwiYSI6NTIxLCJheCI6MjU2OSwieGEiOjI1Njks
ImErIjo1MjIsImF4KyI6MjU3MCwieGErIjoyNTcwfSxtb2RlU3RyaW5nVG9GbGFnczpmdW5jdGlv
biAoc3RyKSB7Ci0gICAgICAgIHZhciBmbGFncyA9IEZTLmZsYWdNb2Rlc1tzdHJdOwotICAgICAg
ICBpZiAodHlwZW9mIGZsYWdzID09PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIHRocm93IG5l
dyBFcnJvcignVW5rbm93biBmaWxlIG9wZW4gbW9kZTogJyArIHN0cik7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIGZsYWdzOwotICAgICAgfSxmbGFnc1RvUGVybWlzc2lvblN0cmluZzpmdW5j
dGlvbiAoZmxhZykgewotICAgICAgICB2YXIgYWNjbW9kZSA9IGZsYWcgJiAzOwotICAgICAgICB2
YXIgcGVybXMgPSBbJ3InLCAndycsICdydyddW2FjY21vZGVdOwotICAgICAgICBpZiAoKGZsYWcg
JiAxMDI0KSkgewotICAgICAgICAgIHBlcm1zICs9ICd3JzsKLSAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gcGVybXM7Ci0gICAgICB9LG5vZGVQZXJtaXNzaW9uczpmdW5jdGlvbiAobm9kZSwgcGVy
bXMpIHsKLSAgICAgICAgaWYgKEZTLmlnbm9yZVBlcm1pc3Npb25zKSB7Ci0gICAgICAgICAgcmV0
dXJuIDA7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gcmV0dXJuIDAgaWYgYW55IHVzZXIsIGdyb3Vw
IG9yIG93bmVyIGJpdHMgYXJlIHNldC4KLSAgICAgICAgaWYgKHBlcm1zLmluZGV4T2YoJ3InKSAh
PT0gLTEgJiYgIShub2RlLm1vZGUgJiAyOTIpKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5PX0NP
REVTLkVBQ0NFUzsKLSAgICAgICAgfSBlbHNlIGlmIChwZXJtcy5pbmRleE9mKCd3JykgIT09IC0x
ICYmICEobm9kZS5tb2RlICYgMTQ2KSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5F
QUNDRVM7Ci0gICAgICAgIH0gZWxzZSBpZiAocGVybXMuaW5kZXhPZigneCcpICE9PSAtMSAmJiAh
KG5vZGUubW9kZSAmIDczKSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FQUNDRVM7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9LG1heUxvb2t1cDpmdW5jdGlv
biAoZGlyKSB7Ci0gICAgICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAneCcpOwot
ICAgICAgfSxtYXlNa25vZDpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICBzd2l0Y2ggKG1vZGUg
JiAwMTcwMDAwKSB7Ci0gICAgICAgICAgY2FzZSAwMTAwMDAwOgotICAgICAgICAgIGNhc2UgMDAy
MDAwMDoKLSAgICAgICAgICBjYXNlIDAwNjAwMDA6Ci0gICAgICAgICAgY2FzZSAwMDEwMDAwOgot
ICAgICAgICAgIGNhc2UgMDE0MDAwMDoKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUlOVkFMOwotICAgICAg
ICB9Ci0gICAgICB9LG1heUNyZWF0ZTpmdW5jdGlvbiAoZGlyLCBuYW1lKSB7Ci0gICAgICAgIHRy
eSB7Ci0gICAgICAgICAgdmFyIG5vZGUgPSBGUy5sb29rdXBOb2RlKGRpciwgbmFtZSk7Ci0gICAg
ICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVFWElTVDsKLSAgICAgICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAnd3gnKTsK
LSAgICAgIH0sbWF5RGVsZXRlOmZ1bmN0aW9uIChkaXIsIG5hbWUsIGlzZGlyKSB7Ci0gICAgICAg
IHZhciBub2RlOwotICAgICAgICB0cnkgewotICAgICAgICAgIG5vZGUgPSBGUy5sb29rdXBOb2Rl
KGRpciwgbmFtZSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICByZXR1cm4gZS5l
cnJubzsKLSAgICAgICAgfQotICAgICAgICB2YXIgZXJyID0gRlMubm9kZVBlcm1pc3Npb25zKGRp
ciwgJ3d4Jyk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICByZXR1cm4gZXJyOwotICAg
ICAgICB9Ci0gICAgICAgIGlmIChpc2RpcikgewotICAgICAgICAgIGlmICghRlMuaXNEaXIobm9k
ZS5tb2RlKSkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVOT1RESVI7Ci0gICAg
ICAgICAgfQotICAgICAgICAgIGlmIChGUy5pc1Jvb3Qobm9kZSkgfHwgRlMuZ2V0UGF0aChub2Rl
KSA9PT0gRlMuY3VycmVudFBhdGgpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5F
QlVTWTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaWYgKEZTLmlz
RGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FSVNESVI7
Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAwOwotICAgICAgfSxtYXlP
cGVuOmZ1bmN0aW9uIChub2RlLCBmbGFncykgewotICAgICAgICBpZiAoIW5vZGUpIHsKLSAgICAg
ICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRU5PRU5UOwotICAgICAgICB9Ci0gICAgICAgIGlmIChG
Uy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FTE9P
UDsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAg
aWYgKChmbGFncyAmIDMpICE9PSAwIHx8ICAvLyBvcGVuaW5nIGZvciB3cml0ZQotICAgICAgICAg
ICAgICAoZmxhZ3MgJiAxMDI0KSkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVJ
U0RJUjsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIEZTLm5vZGVQZXJt
aXNzaW9ucyhub2RlLCBGUy5mbGFnc1RvUGVybWlzc2lvblN0cmluZyhmbGFncykpOwotICAgICAg
fSxjaHJkZXZfc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbiAoc3RyZWFtKSB7Ci0gICAgICAgICAg
dmFyIGRldmljZSA9IEZTLmdldERldmljZShzdHJlYW0ubm9kZS5yZGV2KTsKLSAgICAgICAgICAv
LyBvdmVycmlkZSBub2RlJ3Mgc3RyZWFtIG9wcyB3aXRoIHRoZSBkZXZpY2UncwotICAgICAgICAg
IHN0cmVhbS5zdHJlYW1fb3BzID0gZGV2aWNlLnN0cmVhbV9vcHM7Ci0gICAgICAgICAgLy8gZm9y
d2FyZCB0aGUgb3BlbiBjYWxsCi0gICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4p
IHsKLSAgICAgICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKTsKLSAgICAgICAg
ICB9Ci0gICAgICAgIH0sbGxzZWVrOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9fSxtYWpvcjpmdW5j
dGlvbiAoZGV2KSB7Ci0gICAgICAgIHJldHVybiAoKGRldikgPj4gOCk7Ci0gICAgICB9LG1pbm9y
OmZ1bmN0aW9uIChkZXYpIHsKLSAgICAgICAgcmV0dXJuICgoZGV2KSAmIDB4ZmYpOwotICAgICAg
fSxtYWtlZGV2OmZ1bmN0aW9uIChtYSwgbWkpIHsKLSAgICAgICAgcmV0dXJuICgobWEpIDw8IDgg
fCAobWkpKTsKLSAgICAgIH0scmVnaXN0ZXJEZXZpY2U6ZnVuY3Rpb24gKGRldiwgb3BzKSB7Ci0g
ICAgICAgIEZTLmRldmljZXNbZGV2XSA9IHsgc3RyZWFtX29wczogb3BzIH07Ci0gICAgICB9LGdl
dERldmljZTpmdW5jdGlvbiAoZGV2KSB7Ci0gICAgICAgIHJldHVybiBGUy5kZXZpY2VzW2Rldl07
Ci0gICAgICB9LE1BWF9PUEVOX0ZEUzo0MDk2LG5leHRmZDpmdW5jdGlvbiAoZmRfc3RhcnQsIGZk
X2VuZCkgewotICAgICAgICBmZF9zdGFydCA9IGZkX3N0YXJ0IHx8IDE7Ci0gICAgICAgIGZkX2Vu
ZCA9IGZkX2VuZCB8fCBGUy5NQVhfT1BFTl9GRFM7Ci0gICAgICAgIGZvciAodmFyIGZkID0gZmRf
c3RhcnQ7IGZkIDw9IGZkX2VuZDsgZmQrKykgewotICAgICAgICAgIGlmICghRlMuc3RyZWFtc1tm
ZF0pIHsKLSAgICAgICAgICAgIHJldHVybiBmZDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU1GSUxFKTsKLSAgICAg
IH0sZ2V0U3RyZWFtOmZ1bmN0aW9uIChmZCkgewotICAgICAgICByZXR1cm4gRlMuc3RyZWFtc1tm
ZF07Ci0gICAgICB9LGNyZWF0ZVN0cmVhbTpmdW5jdGlvbiAoc3RyZWFtLCBmZF9zdGFydCwgZmRf
ZW5kKSB7Ci0gICAgICAgIHZhciBmZCA9IEZTLm5leHRmZChmZF9zdGFydCwgZmRfZW5kKTsKLSAg
ICAgICAgc3RyZWFtLmZkID0gZmQ7Ci0gICAgICAgIC8vIGNvbXBhdGliaWxpdHkKLSAgICAgICAg
T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoc3RyZWFtLCB7Ci0gICAgICAgICAgb2JqZWN0OiB7Ci0g
ICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gc3RyZWFtLm5vZGU7IH0sCi0gICAg
ICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbCkgeyBzdHJlYW0ubm9kZSA9IHZhbDsgfQotICAgICAg
ICAgIH0sCi0gICAgICAgICAgaXNSZWFkOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkg
eyByZXR1cm4gKHN0cmVhbS5mbGFncyAmIDMpICE9PSAxOyB9Ci0gICAgICAgICAgfSwKLSAgICAg
ICAgICBpc1dyaXRlOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gKHN0
cmVhbS5mbGFncyAmIDMpICE9PSAwOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0FwcGVu
ZDogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChzdHJlYW0uZmxhZ3Mg
JiA4KTsgfQotICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIEZTLnN0cmVhbXNbZmRd
ID0gc3RyZWFtOwotICAgICAgICByZXR1cm4gc3RyZWFtOwotICAgICAgfSxjbG9zZVN0cmVhbTpm
dW5jdGlvbiAoZmQpIHsKLSAgICAgICAgRlMuc3RyZWFtc1tmZF0gPSBudWxsOwotICAgICAgfSxn
ZXRNb2RlOmZ1bmN0aW9uIChjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgbW9kZSA9
IDA7Ci0gICAgICAgIGlmIChjYW5SZWFkKSBtb2RlIHw9IDI5MiB8IDczOwotICAgICAgICBpZiAo
Y2FuV3JpdGUpIG1vZGUgfD0gMTQ2OwotICAgICAgICByZXR1cm4gbW9kZTsKLSAgICAgIH0sam9p
blBhdGg6ZnVuY3Rpb24gKHBhcnRzLCBmb3JjZVJlbGF0aXZlKSB7Ci0gICAgICAgIHZhciBwYXRo
ID0gUEFUSC5qb2luLmFwcGx5KG51bGwsIHBhcnRzKTsKLSAgICAgICAgaWYgKGZvcmNlUmVsYXRp
dmUgJiYgcGF0aFswXSA9PSAnLycpIHBhdGggPSBwYXRoLnN1YnN0cigxKTsKLSAgICAgICAgcmV0
dXJuIHBhdGg7Ci0gICAgICB9LGFic29sdXRlUGF0aDpmdW5jdGlvbiAocmVsYXRpdmUsIGJhc2Up
IHsKLSAgICAgICAgcmV0dXJuIFBBVEgucmVzb2x2ZShiYXNlLCByZWxhdGl2ZSk7Ci0gICAgICB9
LHN0YW5kYXJkaXplUGF0aDpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICByZXR1cm4gUEFUSC5u
b3JtYWxpemUocGF0aCk7Ci0gICAgICB9LGZpbmRPYmplY3Q6ZnVuY3Rpb24gKHBhdGgsIGRvbnRS
ZXNvbHZlTGFzdExpbmspIHsKLSAgICAgICAgdmFyIHJldCA9IEZTLmFuYWx5emVQYXRoKHBhdGgs
IGRvbnRSZXNvbHZlTGFzdExpbmspOwotICAgICAgICBpZiAocmV0LmV4aXN0cykgewotICAgICAg
ICAgIHJldHVybiByZXQub2JqZWN0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIF9fX3Nl
dEVyck5vKHJldC5lcnJvcik7Ci0gICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLSAg
ICAgIH0sYW5hbHl6ZVBhdGg6ZnVuY3Rpb24gKHBhdGgsIGRvbnRSZXNvbHZlTGFzdExpbmspIHsK
LSAgICAgICAgLy8gb3BlcmF0ZSBmcm9tIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgc3ltbGlu
aydzIHRhcmdldAotICAgICAgICB0cnkgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29r
dXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udFJlc29sdmVMYXN0TGluayB9KTsKLSAgICAgICAg
ICBwYXRoID0gbG9va3VwLnBhdGg7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgfQot
ICAgICAgICB2YXIgcmV0ID0gewotICAgICAgICAgIGlzUm9vdDogZmFsc2UsIGV4aXN0czogZmFs
c2UsIGVycm9yOiAwLCBuYW1lOiBudWxsLCBwYXRoOiBudWxsLCBvYmplY3Q6IG51bGwsCi0gICAg
ICAgICAgcGFyZW50RXhpc3RzOiBmYWxzZSwgcGFyZW50UGF0aDogbnVsbCwgcGFyZW50T2JqZWN0
OiBudWxsCi0gICAgICAgIH07Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9
IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgcmV0LnBh
cmVudEV4aXN0cyA9IHRydWU7Ci0gICAgICAgICAgcmV0LnBhcmVudFBhdGggPSBsb29rdXAucGF0
aDsKLSAgICAgICAgICByZXQucGFyZW50T2JqZWN0ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAg
cmV0Lm5hbWUgPSBQQVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICAgIGxvb2t1cCA9IEZTLmxv
b2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250UmVzb2x2ZUxhc3RMaW5rIH0pOwotICAgICAg
ICAgIHJldC5leGlzdHMgPSB0cnVlOwotICAgICAgICAgIHJldC5wYXRoID0gbG9va3VwLnBhdGg7
Ci0gICAgICAgICAgcmV0Lm9iamVjdCA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgIHJldC5uYW1l
ID0gbG9va3VwLm5vZGUubmFtZTsKLSAgICAgICAgICByZXQuaXNSb290ID0gbG9va3VwLnBhdGgg
PT09ICcvJzsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHJldC5lcnJvciA9IGUu
ZXJybm87Ci0gICAgICAgIH07Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgICB9LGNyZWF0ZUZv
bGRlcjpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAg
ICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVu
dCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2RlID0gRlMuZ2V0
TW9kZShjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgIHJldHVybiBGUy5ta2RpcihwYXRoLCBt
b2RlKTsKLSAgICAgIH0sY3JlYXRlUGF0aDpmdW5jdGlvbiAocGFyZW50LCBwYXRoLCBjYW5SZWFk
LCBjYW5Xcml0ZSkgewotICAgICAgICBwYXJlbnQgPSB0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5n
JyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KTsKLSAgICAgICAgdmFyIHBhcnRzID0gcGF0
aC5zcGxpdCgnLycpLnJldmVyc2UoKTsKLSAgICAgICAgd2hpbGUgKHBhcnRzLmxlbmd0aCkgewot
ICAgICAgICAgIHZhciBwYXJ0ID0gcGFydHMucG9wKCk7Ci0gICAgICAgICAgaWYgKCFwYXJ0KSBj
b250aW51ZTsKLSAgICAgICAgICB2YXIgY3VycmVudCA9IFBBVEguam9pbihwYXJlbnQsIHBhcnQp
OwotICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBGUy5ta2RpcihjdXJyZW50LCAwNzc3KTsK
LSAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAvLyBpZ25vcmUgRUVYSVNUCi0g
ICAgICAgICAgfQotICAgICAgICAgIHBhcmVudCA9IGN1cnJlbnQ7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIGN1cnJlbnQ7Ci0gICAgICB9LGNyZWF0ZUZpbGU6ZnVuY3Rpb24gKHBhcmVudCwg
bmFtZSwgcHJvcGVydGllcywgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgdmFyIHBhdGgg
PSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBGUy5nZXRQ
YXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICB2YXIgbW9kZSA9IEZTLmdldE1vZGUoY2FuUmVh
ZCwgY2FuV3JpdGUpOwotICAgICAgICByZXR1cm4gRlMuY3JlYXRlKHBhdGgsIG1vZGUpOwotICAg
ICAgfSxjcmVhdGVEYXRhRmlsZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBkYXRhLCBjYW5SZWFk
LCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50
ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAg
ICAgIHZhciBtb2RlID0gRlMuZ2V0TW9kZShjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgIHZh
ciBub2RlID0gRlMuY3JlYXRlKHBhdGgsIG1vZGUpOwotICAgICAgICBpZiAoZGF0YSkgewotICAg
ICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICAgIHZhciBh
cnIgPSBuZXcgQXJyYXkoZGF0YS5sZW5ndGgpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAs
IGxlbiA9IGRhdGEubGVuZ3RoOyBpIDwgbGVuOyArK2kpIGFycltpXSA9IGRhdGEuY2hhckNvZGVB
dChpKTsKLSAgICAgICAgICAgIGRhdGEgPSBhcnI7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8v
IG1ha2Ugc3VyZSB3ZSBjYW4gd3JpdGUgdG8gdGhlIGZpbGUKLSAgICAgICAgICBGUy5jaG1vZChw
YXRoLCBtb2RlIHwgMTQ2KTsKLSAgICAgICAgICB2YXIgc3RyZWFtID0gRlMub3BlbihwYXRoLCAn
dycpOwotICAgICAgICAgIEZTLndyaXRlKHN0cmVhbSwgZGF0YSwgMCwgZGF0YS5sZW5ndGgsIDAp
OwotICAgICAgICAgIEZTLmNsb3NlKHN0cmVhbSk7Ci0gICAgICAgICAgRlMuY2htb2QocGF0aCwg
bW9kZSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LGNyZWF0ZURl
dmljZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBpbnB1dCwgb3V0cHV0KSB7Ci0gICAgICAgIHZh
ciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50IDog
RlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgdmFyIG1vZGUgPSBpbnB1dCAmJiBv
dXRwdXQgPyAwNzc3IDogKGlucHV0ID8gMDMzMyA6IDA1NTUpOwotICAgICAgICBpZiAoIUZTLmNy
ZWF0ZURldmljZS5tYWpvcikgRlMuY3JlYXRlRGV2aWNlLm1ham9yID0gNjQ7Ci0gICAgICAgIHZh
ciBkZXYgPSBGUy5tYWtlZGV2KEZTLmNyZWF0ZURldmljZS5tYWpvcisrLCAwKTsKLSAgICAgICAg
Ly8gQ3JlYXRlIGEgZmFrZSBkZXZpY2UgdGhhdCBhIHNldCBvZiBzdHJlYW0gb3BzIHRvIGVtdWxh
dGUKLSAgICAgICAgLy8gdGhlIG9sZCBiZWhhdmlvci4KLSAgICAgICAgRlMucmVnaXN0ZXJEZXZp
Y2UoZGV2LCB7Ci0gICAgICAgICAgb3BlbjogZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgICAgICAg
ICBzdHJlYW0uc2Vla2FibGUgPSBmYWxzZTsKLSAgICAgICAgICB9LAotICAgICAgICAgIGNsb3Nl
OiBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICAgICAgICAgIC8vIGZsdXNoIGFueSBwZW5kaW5nIGxp
bmUgZGF0YQotICAgICAgICAgICAgaWYgKG91dHB1dCAmJiBvdXRwdXQuYnVmZmVyICYmIG91dHB1
dC5idWZmZXIubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgIG91dHB1dCgxMCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICByZWFkOiBmdW5jdGlvbihzdHJlYW0sIGJ1ZmZl
ciwgb2Zmc2V0LCBsZW5ndGgsIHBvcyAvKiBpZ25vcmVkICovKSB7Ci0gICAgICAgICAgICB2YXIg
Ynl0ZXNSZWFkID0gMDsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBp
KyspIHsKLSAgICAgICAgICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgICAgICByZXN1bHQgPSBpbnB1dCgpOwotICAgICAgICAgICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RUlPKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRl
ZmluZWQgJiYgYnl0ZXNSZWFkID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHJlc3VsdCA9PT0gdW5kZWZpbmVkKSBicmVh
azsKLSAgICAgICAgICAgICAgYnl0ZXNSZWFkKys7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZz
ZXQraV0gPSByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYnl0ZXNSZWFk
KSB7Ci0gICAgICAgICAgICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gYnl0ZXNSZWFkOwotICAgICAgICAgIH0s
Ci0gICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0
aCwgcG9zKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7
Ci0gICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgb3V0cHV0KGJ1ZmZlcltvZmZz
ZXQraV0pOwotICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAgICBz
dHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuIGk7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJu
IEZTLm1rZGV2KHBhdGgsIG1vZGUsIGRldik7Ci0gICAgICB9LGNyZWF0ZUxpbms6ZnVuY3Rpb24g
KHBhcmVudCwgbmFtZSwgdGFyZ2V0LCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIg
cGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZT
LmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHJldHVybiBGUy5zeW1saW5rKHRhcmdl
dCwgcGF0aCk7Ci0gICAgICB9LGZvcmNlTG9hZEZpbGU6ZnVuY3Rpb24gKG9iaikgewotICAgICAg
ICBpZiAob2JqLmlzRGV2aWNlIHx8IG9iai5pc0ZvbGRlciB8fCBvYmoubGluayB8fCBvYmouY29u
dGVudHMpIHJldHVybiB0cnVlOwotICAgICAgICB2YXIgc3VjY2VzcyA9IHRydWU7Ci0gICAgICAg
IGlmICh0eXBlb2YgWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJMYXp5IGxvYWRpbmcgc2hvdWxkIGhhdmUgYmVlbiBwZXJmb3JtZWQg
KGNvbnRlbnRzIHNldCkgaW4gY3JlYXRlTGF6eUZpbGUsIGJ1dCBpdCB3YXMgbm90LiBMYXp5IGxv
YWRpbmcgb25seSB3b3JrcyBpbiB3ZWIgd29ya2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXBy
ZWxvYWQtZmlsZSBpbiBlbWNjIG9uIHRoZSBtYWluIHRocmVhZC4iKTsKLSAgICAgICAgfSBlbHNl
IGlmIChNb2R1bGVbJ3JlYWQnXSkgewotICAgICAgICAgIC8vIENvbW1hbmQtbGluZS4KLSAgICAg
ICAgICB0cnkgewotICAgICAgICAgICAgLy8gV0FSTklORzogQ2FuJ3QgcmVhZCBiaW5hcnkgZmls
ZXMgaW4gVjgncyBkOCBvciB0cmFjZW1vbmtleSdzIGpzLCBhcwotICAgICAgICAgICAgLy8gICAg
ICAgICAgcmVhZCgpIHdpbGwgdHJ5IHRvIHBhcnNlIFVURjguCi0gICAgICAgICAgICBvYmouY29u
dGVudHMgPSBpbnRBcnJheUZyb21TdHJpbmcoTW9kdWxlWydyZWFkJ10ob2JqLnVybCksIHRydWUp
OwotICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsK
LSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdDYW5ub3QgbG9hZCB3aXRob3V0IHJlYWQoKSBvciBYTUxIdHRwUmVxdWVzdC4nKTsKLSAgICAg
ICAgfQotICAgICAgICBpZiAoIXN1Y2Nlc3MpIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTyk7
Ci0gICAgICAgIHJldHVybiBzdWNjZXNzOwotICAgICAgfSxjcmVhdGVMYXp5RmlsZTpmdW5jdGlv
biAocGFyZW50LCBuYW1lLCB1cmwsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIGlmICh0
eXBlb2YgWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgaWYgKCFF
TlZJUk9OTUVOVF9JU19XT1JLRVIpIHRocm93ICdDYW5ub3QgZG8gc3luY2hyb25vdXMgYmluYXJ5
IFhIUnMgb3V0c2lkZSB3ZWJ3b3JrZXJzIGluIG1vZGVybiBicm93c2Vycy4gVXNlIC0tZW1iZWQt
ZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjJzsKLSAgICAgICAgICAvLyBMYXp5IGNodW5r
ZWQgVWludDhBcnJheSAoaW1wbGVtZW50cyBnZXQgYW5kIGxlbmd0aCBmcm9tIFVpbnQ4QXJyYXkp
LiBBY3R1YWwgZ2V0dGluZyBpcyBhYnN0cmFjdGVkIGF3YXkgZm9yIGV2ZW50dWFsIHJldXNlLgot
ICAgICAgICAgIHZhciBMYXp5VWludDhBcnJheSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
dGhpcy5sZW5ndGhLbm93biA9IGZhbHNlOwotICAgICAgICAgICAgdGhpcy5jaHVua3MgPSBbXTsg
Ly8gTG9hZGVkIGNodW5rcy4gSW5kZXggaXMgdGhlIGNodW5rIG51bWJlcgotICAgICAgICAgIH0K
LSAgICAgICAgICBMYXp5VWludDhBcnJheS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oaWR4KSB7
Ci0gICAgICAgICAgICBpZiAoaWR4ID4gdGhpcy5sZW5ndGgtMSB8fCBpZHggPCAwKSB7Ci0gICAg
ICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB2
YXIgY2h1bmtPZmZzZXQgPSBpZHggJSB0aGlzLmNodW5rU2l6ZTsKLSAgICAgICAgICAgIHZhciBj
aHVua051bSA9IE1hdGguZmxvb3IoaWR4IC8gdGhpcy5jaHVua1NpemUpOwotICAgICAgICAgICAg
cmV0dXJuIHRoaXMuZ2V0dGVyKGNodW5rTnVtKVtjaHVua09mZnNldF07Ci0gICAgICAgICAgfQot
ICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5zZXREYXRhR2V0dGVyID0gZnVuY3Rp
b24oZ2V0dGVyKSB7Ci0gICAgICAgICAgICB0aGlzLmdldHRlciA9IGdldHRlcjsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgTGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLmNhY2hlTGVuZ3RoID0gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgIC8vIEZpbmQgbGVuZ3RoCi0gICAgICAgICAgICAgIHZh
ciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgICAgICAgeGhyLm9wZW4oJ0hF
QUQnLCB1cmwsIGZhbHNlKTsKLSAgICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgICAg
ICAgICAgIGlmICghKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwgeGhy
LnN0YXR1cyA9PT0gMzA0KSkgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1cmwg
KyAiLiBTdGF0dXM6ICIgKyB4aHIuc3RhdHVzKTsKLSAgICAgICAgICAgICAgdmFyIGRhdGFsZW5n
dGggPSBOdW1iZXIoeGhyLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LWxlbmd0aCIpKTsKLSAg
ICAgICAgICAgICAgdmFyIGhlYWRlcjsKLSAgICAgICAgICAgICAgdmFyIGhhc0J5dGVTZXJ2aW5n
ID0gKGhlYWRlciA9IHhoci5nZXRSZXNwb25zZUhlYWRlcigiQWNjZXB0LVJhbmdlcyIpKSAmJiBo
ZWFkZXIgPT09ICJieXRlcyI7Ci0gICAgICAgICAgICAgIHZhciBjaHVua1NpemUgPSAxMDI0KjEw
MjQ7IC8vIENodW5rIHNpemUgaW4gYnl0ZXMKLSAgICAgICAgICAgICAgaWYgKCFoYXNCeXRlU2Vy
dmluZykgY2h1bmtTaXplID0gZGF0YWxlbmd0aDsKLSAgICAgICAgICAgICAgLy8gRnVuY3Rpb24g
dG8gZ2V0IGEgcmFuZ2UgZnJvbSB0aGUgcmVtb3RlIFVSTC4KLSAgICAgICAgICAgICAgdmFyIGRv
WEhSID0gKGZ1bmN0aW9uKGZyb20sIHRvKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZyb20gPiB0
bykgdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHJhbmdlICgiICsgZnJvbSArICIsICIgKyB0byAr
ICIpIG9yIG5vIGJ5dGVzIHJlcXVlc3RlZCEiKTsKLSAgICAgICAgICAgICAgICBpZiAodG8gPiBk
YXRhbGVuZ3RoLTEpIHRocm93IG5ldyBFcnJvcigib25seSAiICsgZGF0YWxlbmd0aCArICIgYnl0
ZXMgYXZhaWxhYmxlISBwcm9ncmFtbWVyIGVycm9yISIpOwotICAgICAgICAgICAgICAgIC8vIFRP
RE86IFVzZSBtb3pSZXNwb25zZUFycmF5QnVmZmVyLCByZXNwb25zZVN0cmVhbSwgZXRjLiBpZiBh
dmFpbGFibGUuCi0gICAgICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgp
OwotICAgICAgICAgICAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIGZhbHNlKTsKLSAgICAgICAg
ICAgICAgICBpZiAoZGF0YWxlbmd0aCAhPT0gY2h1bmtTaXplKSB4aHIuc2V0UmVxdWVzdEhlYWRl
cigiUmFuZ2UiLCAiYnl0ZXM9IiArIGZyb20gKyAiLSIgKyB0byk7Ci0gICAgICAgICAgICAgICAg
Ly8gU29tZSBoaW50cyB0byB0aGUgYnJvd3NlciB0aGF0IHdlIHdhbnQgYmluYXJ5IGRhdGEuCi0g
ICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBVaW50OEFycmF5ICE9ICd1bmRlZmluZWQnKSB4aHIu
cmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKLSAgICAgICAgICAgICAgICBpZiAoeGhyLm92
ZXJyaWRlTWltZVR5cGUpIHsKLSAgICAgICAgICAgICAgICAgIHhoci5vdmVycmlkZU1pbWVUeXBl
KCd0ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkJyk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIHhoci5zZW5kKG51bGwpOwotICAgICAgICAgICAgICAgIGlmICgh
KHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwgeGhyLnN0YXR1cyA9PT0g
MzA0KSkgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1cmwgKyAiLiBTdGF0dXM6
ICIgKyB4aHIuc3RhdHVzKTsKLSAgICAgICAgICAgICAgICBpZiAoeGhyLnJlc3BvbnNlICE9PSB1
bmRlZmluZWQpIHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheSh4aHIu
cmVzcG9uc2UgfHwgW10pOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICByZXR1cm4gaW50QXJyYXlGcm9tU3RyaW5nKHhoci5yZXNwb25zZVRleHQgfHwgJycsIHRy
dWUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
IHZhciBsYXp5QXJyYXkgPSB0aGlzOwotICAgICAgICAgICAgICBsYXp5QXJyYXkuc2V0RGF0YUdl
dHRlcihmdW5jdGlvbihjaHVua051bSkgewotICAgICAgICAgICAgICAgIHZhciBzdGFydCA9IGNo
dW5rTnVtICogY2h1bmtTaXplOwotICAgICAgICAgICAgICAgIHZhciBlbmQgPSAoY2h1bmtOdW0r
MSkgKiBjaHVua1NpemUgLSAxOyAvLyBpbmNsdWRpbmcgdGhpcyBieXRlCi0gICAgICAgICAgICAg
ICAgZW5kID0gTWF0aC5taW4oZW5kLCBkYXRhbGVuZ3RoLTEpOyAvLyBpZiBkYXRhbGVuZ3RoLTEg
aXMgc2VsZWN0ZWQsIHRoaXMgaXMgdGhlIGxhc3QgYmxvY2sKLSAgICAgICAgICAgICAgICBpZiAo
dHlwZW9mKGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dKSA9PT0gInVuZGVmaW5lZCIpIHsKLSAg
ICAgICAgICAgICAgICAgIGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dID0gZG9YSFIoc3RhcnQs
IGVuZCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh0eXBlb2YobGF6
eUFycmF5LmNodW5rc1tjaHVua051bV0pID09PSAidW5kZWZpbmVkIikgdGhyb3cgbmV3IEVycm9y
KCJkb1hIUiBmYWlsZWQhIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxhenlBcnJheS5jaHVu
a3NbY2h1bmtOdW1dOwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgdGhpcy5fbGVu
Z3RoID0gZGF0YWxlbmd0aDsKLSAgICAgICAgICAgICAgdGhpcy5fY2h1bmtTaXplID0gY2h1bmtT
aXplOwotICAgICAgICAgICAgICB0aGlzLmxlbmd0aEtub3duID0gdHJ1ZTsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgdmFyIGxhenlBcnJheSA9IG5ldyBMYXp5VWludDhBcnJheSgpOwotICAgICAg
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5QXJyYXksICJsZW5ndGgiLCB7Ci0gICAgICAg
ICAgICAgIGdldDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBpZighdGhpcy5sZW5n
dGhLbm93bikgewotICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVMZW5ndGgoKTsKLSAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sZW5ndGg7
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkobGF6eUFycmF5LCAiY2h1bmtTaXplIiwgewotICAgICAgICAgICAgICBnZXQ6IGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgaWYoIXRoaXMubGVuZ3RoS25vd24pIHsKLSAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLmNhY2hlTGVuZ3RoKCk7Ci0gICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fY2h1bmtTaXplOwotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSB7IGlzRGV2
aWNlOiBmYWxzZSwgY29udGVudHM6IGxhenlBcnJheSB9OwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgIHZhciBwcm9wZXJ0aWVzID0geyBpc0RldmljZTogZmFsc2UsIHVybDogdXJsIH07Ci0g
ICAgICAgIH0KLSAgICAgICAgdmFyIG5vZGUgPSBGUy5jcmVhdGVGaWxlKHBhcmVudCwgbmFtZSwg
cHJvcGVydGllcywgY2FuUmVhZCwgY2FuV3JpdGUpOwotICAgICAgICAvLyBUaGlzIGlzIGEgdG90
YWwgaGFjaywgYnV0IEkgd2FudCB0byBnZXQgdGhpcyBsYXp5IGZpbGUgY29kZSBvdXQgb2YgdGhl
Ci0gICAgICAgIC8vIGNvcmUgb2YgTUVNRlMuIElmIHdlIHdhbnQgdG8ga2VlcCB0aGlzIGxhenkg
ZmlsZSBjb25jZXB0IEkgZmVlbCBpdCBzaG91bGQKLSAgICAgICAgLy8gYmUgaXRzIG93biB0aGlu
IExBWllGUyBwcm94eWluZyBjYWxscyB0byBNRU1GUy4KLSAgICAgICAgaWYgKHByb3BlcnRpZXMu
Y29udGVudHMpIHsKLSAgICAgICAgICBub2RlLmNvbnRlbnRzID0gcHJvcGVydGllcy5jb250ZW50
czsKLSAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0aWVzLnVybCkgewotICAgICAgICAgIG5vZGUu
Y29udGVudHMgPSBudWxsOwotICAgICAgICAgIG5vZGUudXJsID0gcHJvcGVydGllcy51cmw7Ci0g
ICAgICAgIH0KLSAgICAgICAgLy8gb3ZlcnJpZGUgZWFjaCBzdHJlYW0gb3Agd2l0aCBvbmUgdGhh
dCB0cmllcyB0byBmb3JjZSBsb2FkIHRoZSBsYXp5IGZpbGUgZmlyc3QKLSAgICAgICAgdmFyIHN0
cmVhbV9vcHMgPSB7fTsKLSAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhub2RlLnN0cmVh
bV9vcHMpOwotICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7Ci0gICAgICAgICAg
dmFyIGZuID0gbm9kZS5zdHJlYW1fb3BzW2tleV07Ci0gICAgICAgICAgc3RyZWFtX29wc1trZXld
ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBpZiAoIUZTLmZvcmNlTG9hZEZpbGUobm9kZSkp
IHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlP
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShudWxsLCBhcmd1
bWVudHMpOwotICAgICAgICAgIH07Ci0gICAgICAgIH0pOwotICAgICAgICAvLyB1c2UgYSBjdXN0
b20gcmVhZCBmdW5jdGlvbgotICAgICAgICBzdHJlYW1fb3BzLnJlYWQgPSBmdW5jdGlvbihzdHJl
YW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgICAgaWYgKCFG
Uy5mb3JjZUxvYWRGaWxlKG5vZGUpKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgY29udGVu
dHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAgICAgICB2YXIgc2l6ZSA9IE1hdGgubWlu
KGNvbnRlbnRzLmxlbmd0aCAtIHBvc2l0aW9uLCBsZW5ndGgpOwotICAgICAgICAgIGlmIChjb250
ZW50cy5zbGljZSkgeyAvLyBub3JtYWwgYXJyYXkKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGNv
bnRlbnRzW3Bvc2l0aW9uICsgaV07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7IC8vIExhenlVaW50
OEFycmF5IGZyb20gc3luYyBiaW5hcnkgWEhSCi0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQg
KyBpXSA9IGNvbnRlbnRzLmdldChwb3NpdGlvbiArIGkpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgIH0KLSAgICAgICAgICByZXR1cm4gc2l6ZTsKLSAgICAgICAgfTsKLSAgICAgICAgbm9kZS5z
dHJlYW1fb3BzID0gc3RyZWFtX29wczsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LGNy
ZWF0ZVByZWxvYWRlZEZpbGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgdXJsLCBjYW5SZWFkLCBj
YW5Xcml0ZSwgb25sb2FkLCBvbmVycm9yLCBkb250Q3JlYXRlRmlsZSkgewotICAgICAgICBCcm93
c2VyLmluaXQoKTsKLSAgICAgICAgLy8gVE9ETyB3ZSBzaG91bGQgYWxsb3cgcGVvcGxlIHRvIGp1
c3QgcGFzcyBpbiBhIGNvbXBsZXRlIGZpbGVuYW1lIGluc3RlYWQKLSAgICAgICAgLy8gb2YgcGFy
ZW50IGFuZCBuYW1lIGJlaW5nIHRoYXQgd2UganVzdCBqb2luIHRoZW0gYW55d2F5cwotICAgICAg
ICB2YXIgZnVsbG5hbWUgPSBQQVRILnJlc29sdmUoUEFUSC5qb2luKHBhcmVudCwgbmFtZSkpOwot
ICAgICAgICBmdW5jdGlvbiBwcm9jZXNzRGF0YShieXRlQXJyYXkpIHsKLSAgICAgICAgICBmdW5j
dGlvbiBmaW5pc2goYnl0ZUFycmF5KSB7Ci0gICAgICAgICAgICBpZiAoIWRvbnRDcmVhdGVGaWxl
KSB7Ci0gICAgICAgICAgICAgIEZTLmNyZWF0ZURhdGFGaWxlKHBhcmVudCwgbmFtZSwgYnl0ZUFy
cmF5LCBjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo
b25sb2FkKSBvbmxvYWQoKTsKLSAgICAgICAgICAgIHJlbW92ZVJ1bkRlcGVuZGVuY3koJ2NwICcg
KyBmdWxsbmFtZSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBoYW5kbGVkID0gZmFsc2U7
Ci0gICAgICAgICAgTW9kdWxlWydwcmVsb2FkUGx1Z2lucyddLmZvckVhY2goZnVuY3Rpb24ocGx1
Z2luKSB7Ci0gICAgICAgICAgICBpZiAoaGFuZGxlZCkgcmV0dXJuOwotICAgICAgICAgICAgaWYg
KHBsdWdpblsnY2FuSGFuZGxlJ10oZnVsbG5hbWUpKSB7Ci0gICAgICAgICAgICAgIHBsdWdpblsn
aGFuZGxlJ10oYnl0ZUFycmF5LCBmdWxsbmFtZSwgZmluaXNoLCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgICAgICBpZiAob25lcnJvcikgb25lcnJvcigpOwotICAgICAgICAgICAgICAgIHJlbW92
ZVJ1bkRlcGVuZGVuY3koJ2NwICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9KTsK
LSAgICAgICAgICBpZiAoIWhhbmRsZWQpIGZpbmlzaChieXRlQXJyYXkpOwotICAgICAgICB9Ci0g
ICAgICAgIGFkZFJ1bkRlcGVuZGVuY3koJ2NwICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgIGlmICh0
eXBlb2YgdXJsID09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgQnJvd3Nlci5hc3luY0xvYWQodXJs
LCBmdW5jdGlvbihieXRlQXJyYXkpIHsKLSAgICAgICAgICAgIHByb2Nlc3NEYXRhKGJ5dGVBcnJh
eSk7Ci0gICAgICAgICAgfSwgb25lcnJvcik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
cHJvY2Vzc0RhdGEodXJsKTsKLSAgICAgICAgfQotICAgICAgfSxjcmVhdGVEZWZhdWx0RGlyZWN0
b3JpZXM6ZnVuY3Rpb24gKCkgewotICAgICAgICBGUy5ta2RpcignL3RtcCcsIDA3NzcpOwotICAg
ICAgfSxjcmVhdGVEZWZhdWx0RGV2aWNlczpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIC8vIGNyZWF0
ZSAvZGV2Ci0gICAgICAgIEZTLm1rZGlyKCcvZGV2JywgMDc3Nyk7Ci0gICAgICAgIC8vIHNldHVw
IC9kZXYvbnVsbAotICAgICAgICBGUy5yZWdpc3RlckRldmljZShGUy5tYWtlZGV2KDEsIDMpLCB7
Ci0gICAgICAgICAgcmVhZDogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9LAotICAgICAgICAgIHdy
aXRlOiBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH0KLSAgICAgICAgfSk7Ci0gICAgICAgIEZTLm1r
ZGV2KCcvZGV2L251bGwnLCAwNjY2LCBGUy5tYWtlZGV2KDEsIDMpKTsKLSAgICAgICAgLy8gc2V0
dXAgL2Rldi90dHkgYW5kIC9kZXYvdHR5MQotICAgICAgICAvLyBzdGRlcnIgbmVlZHMgdG8gcHJp
bnQgb3V0cHV0IHVzaW5nIE1vZHVsZVsncHJpbnRFcnInXQotICAgICAgICAvLyBzbyB3ZSByZWdp
c3RlciBhIHNlY29uZCB0dHkganVzdCBmb3IgaXQuCi0gICAgICAgIFRUWS5yZWdpc3RlcihGUy5t
YWtlZGV2KDUsIDApLCBUVFkuZGVmYXVsdF90dHlfb3BzKTsKLSAgICAgICAgVFRZLnJlZ2lzdGVy
KEZTLm1ha2VkZXYoNiwgMCksIFRUWS5kZWZhdWx0X3R0eTFfb3BzKTsKLSAgICAgICAgRlMubWtk
ZXYoJy9kZXYvdHR5JywgMDY2NiwgRlMubWFrZWRldig1LCAwKSk7Ci0gICAgICAgIEZTLm1rZGV2
KCcvZGV2L3R0eTEnLCAwNjY2LCBGUy5tYWtlZGV2KDYsIDApKTsKLSAgICAgICAgLy8gd2UncmUg
bm90IGdvaW5nIHRvIGVtdWxhdGUgdGhlIGFjdHVhbCBzaG0gZGV2aWNlLAotICAgICAgICAvLyBq
dXN0IGNyZWF0ZSB0aGUgdG1wIGRpcnMgdGhhdCByZXNpZGUgaW4gaXQgY29tbW9ubHkKLSAgICAg
ICAgRlMubWtkaXIoJy9kZXYvc2htJywgMDc3Nyk7Ci0gICAgICAgIEZTLm1rZGlyKCcvZGV2L3No
bS90bXAnLCAwNzc3KTsKLSAgICAgIH0sY3JlYXRlU3RhbmRhcmRTdHJlYW1zOmZ1bmN0aW9uICgp
IHsKLSAgICAgICAgLy8gVE9ETyBkZXByZWNhdGUgdGhlIG9sZCBmdW5jdGlvbmFsaXR5IG9mIGEg
c2luZ2xlCi0gICAgICAgIC8vIGlucHV0IC8gb3V0cHV0IGNhbGxiYWNrIGFuZCB0aGF0IHV0aWxp
emVzIEZTLmNyZWF0ZURldmljZQotICAgICAgICAvLyBhbmQgaW5zdGVhZCByZXF1aXJlIGEgdW5p
cXVlIHNldCBvZiBzdHJlYW0gb3BzCi0gICAgICAgIC8vIGJ5IGRlZmF1bHQsIHdlIHN5bWxpbmsg
dGhlIHN0YW5kYXJkIHN0cmVhbXMgdG8gdGhlCi0gICAgICAgIC8vIGRlZmF1bHQgdHR5IGRldmlj
ZXMuIGhvd2V2ZXIsIGlmIHRoZSBzdGFuZGFyZCBzdHJlYW1zCi0gICAgICAgIC8vIGhhdmUgYmVl
biBvdmVyd3JpdHRlbiB3ZSBjcmVhdGUgYSB1bmlxdWUgZGV2aWNlIGZvcgotICAgICAgICAvLyB0
aGVtIGluc3RlYWQuCi0gICAgICAgIGlmIChNb2R1bGVbJ3N0ZGluJ10pIHsKLSAgICAgICAgICBG
Uy5jcmVhdGVEZXZpY2UoJy9kZXYnLCAnc3RkaW4nLCBNb2R1bGVbJ3N0ZGluJ10pOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5bWxpbmsoJy9kZXYvdHR5JywgJy9kZXYvc3RkaW4n
KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoTW9kdWxlWydzdGRvdXQnXSkgewotICAgICAgICAg
IEZTLmNyZWF0ZURldmljZSgnL2RldicsICdzdGRvdXQnLCBudWxsLCBNb2R1bGVbJ3N0ZG91dCdd
KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBGUy5zeW1saW5rKCcvZGV2L3R0eScsICcv
ZGV2L3N0ZG91dCcpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChNb2R1bGVbJ3N0ZGVyciddKSB7
Ci0gICAgICAgICAgRlMuY3JlYXRlRGV2aWNlKCcvZGV2JywgJ3N0ZGVycicsIG51bGwsIE1vZHVs
ZVsnc3RkZXJyJ10pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5bWxpbmsoJy9k
ZXYvdHR5MScsICcvZGV2L3N0ZGVycicpOwotICAgICAgICB9Ci0gICAgICAgIC8vIG9wZW4gZGVm
YXVsdCBzdHJlYW1zIGZvciB0aGUgc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIGRldmljZXMKLSAg
ICAgICAgdmFyIHN0ZGluID0gRlMub3BlbignL2Rldi9zdGRpbicsICdyJyk7Ci0gICAgICAgIEhF
QVAzMlsoKF9zdGRpbik+PjIpXT1zdGRpbi5mZDsKLSAgICAgICAgYXNzZXJ0KHN0ZGluLmZkID09
PSAxLCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0ZGluICgnICsgc3RkaW4uZmQgKyAnKScpOwotICAg
ICAgICB2YXIgc3Rkb3V0ID0gRlMub3BlbignL2Rldi9zdGRvdXQnLCAndycpOwotICAgICAgICBI
RUFQMzJbKChfc3Rkb3V0KT4+MildPXN0ZG91dC5mZDsKLSAgICAgICAgYXNzZXJ0KHN0ZG91dC5m
ZCA9PT0gMiwgJ2ludmFsaWQgaGFuZGxlIGZvciBzdGRvdXQgKCcgKyBzdGRvdXQuZmQgKyAnKScp
OwotICAgICAgICB2YXIgc3RkZXJyID0gRlMub3BlbignL2Rldi9zdGRlcnInLCAndycpOwotICAg
ICAgICBIRUFQMzJbKChfc3RkZXJyKT4+MildPXN0ZGVyci5mZDsKLSAgICAgICAgYXNzZXJ0KHN0
ZGVyci5mZCA9PT0gMywgJ2ludmFsaWQgaGFuZGxlIGZvciBzdGRlcnIgKCcgKyBzdGRlcnIuZmQg
KyAnKScpOwotICAgICAgfSxzdGF0aWNJbml0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgRlMubmFt
ZV90YWJsZSA9IG5ldyBBcnJheSg0MDk2KTsKLSAgICAgICAgRlMucm9vdCA9IEZTLmNyZWF0ZU5v
ZGUobnVsbCwgJy8nLCAwMDQwMDAwIHwgMDc3NywgMCk7Ci0gICAgICAgIEZTLm1vdW50KE1FTUZT
LCB7fSwgJy8nKTsKLSAgICAgICAgRlMuY3JlYXRlRGVmYXVsdERpcmVjdG9yaWVzKCk7Ci0gICAg
ICAgIEZTLmNyZWF0ZURlZmF1bHREZXZpY2VzKCk7Ci0gICAgICB9LGluaXQ6ZnVuY3Rpb24gKGlu
cHV0LCBvdXRwdXQsIGVycm9yKSB7Ci0gICAgICAgIGFzc2VydCghRlMuaW5pdC5pbml0aWFsaXpl
ZCwgJ0ZTLmluaXQgd2FzIHByZXZpb3VzbHkgY2FsbGVkLiBJZiB5b3Ugd2FudCB0byBpbml0aWFs
aXplIGxhdGVyIHdpdGggY3VzdG9tIHBhcmFtZXRlcnMsIHJlbW92ZSBhbnkgZWFybGllciBjYWxs
cyAobm90ZSB0aGF0IG9uZSBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQg
Y29kZSknKTsKLSAgICAgICAgRlMuaW5pdC5pbml0aWFsaXplZCA9IHRydWU7Ci0gICAgICAgIC8v
IEFsbG93IE1vZHVsZS5zdGRpbiBldGMuIHRvIHByb3ZpZGUgZGVmYXVsdHMsIGlmIG5vbmUgZXhw
bGljaXRseSBwYXNzZWQgdG8gdXMgaGVyZQotICAgICAgICBNb2R1bGVbJ3N0ZGluJ10gPSBpbnB1
dCB8fCBNb2R1bGVbJ3N0ZGluJ107Ci0gICAgICAgIE1vZHVsZVsnc3Rkb3V0J10gPSBvdXRwdXQg
fHwgTW9kdWxlWydzdGRvdXQnXTsKLSAgICAgICAgTW9kdWxlWydzdGRlcnInXSA9IGVycm9yIHx8
IE1vZHVsZVsnc3RkZXJyJ107Ci0gICAgICAgIEZTLmNyZWF0ZVN0YW5kYXJkU3RyZWFtcygpOwot
ICAgICAgfSxxdWl0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgRlMuaW5pdC5pbml0aWFsaXplZCA9
IGZhbHNlOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IEZTLnN0cmVhbXMubGVuZ3RoOyBp
KyspIHsKLSAgICAgICAgICB2YXIgc3RyZWFtID0gRlMuc3RyZWFtc1tpXTsKLSAgICAgICAgICBp
ZiAoIXN0cmVhbSkgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIEZTLmNsb3NlKHN0cmVhbSk7Ci0gICAgICAgIH0KLSAgICAgIH0sbW91bnQ6ZnVuY3Rpb24g
KHR5cGUsIG9wdHMsIG1vdW50cG9pbnQpIHsKLSAgICAgICAgdmFyIG1vdW50ID0gewotICAgICAg
ICAgIHR5cGU6IHR5cGUsCi0gICAgICAgICAgb3B0czogb3B0cywKLSAgICAgICAgICBtb3VudHBv
aW50OiBtb3VudHBvaW50LAotICAgICAgICAgIHJvb3Q6IG51bGwKLSAgICAgICAgfTsKLSAgICAg
ICAgdmFyIGxvb2t1cDsKLSAgICAgICAgaWYgKG1vdW50cG9pbnQpIHsKLSAgICAgICAgICBsb29r
dXAgPSBGUy5sb29rdXBQYXRoKG1vdW50cG9pbnQsIHsgZm9sbG93OiBmYWxzZSB9KTsKLSAgICAg
ICAgfQotICAgICAgICAvLyBjcmVhdGUgYSByb290IG5vZGUgZm9yIHRoZSBmcwotICAgICAgICB2
YXIgcm9vdCA9IHR5cGUubW91bnQobW91bnQpOwotICAgICAgICByb290Lm1vdW50ID0gbW91bnQ7
Ci0gICAgICAgIG1vdW50LnJvb3QgPSByb290OwotICAgICAgICAvLyBhc3NpZ24gdGhlIG1vdW50
IGluZm8gdG8gdGhlIG1vdW50cG9pbnQncyBub2RlCi0gICAgICAgIGlmIChsb29rdXApIHsKLSAg
ICAgICAgICBsb29rdXAubm9kZS5tb3VudCA9IG1vdW50OwotICAgICAgICAgIGxvb2t1cC5ub2Rl
Lm1vdW50ZWQgPSB0cnVlOwotICAgICAgICAgIC8vIGNvbXBhdGliaWxpdHkgdXBkYXRlIEZTLnJv
b3QgaWYgd2UgbW91bnQgdG8gLwotICAgICAgICAgIGlmIChtb3VudHBvaW50ID09PSAnLycpIHsK
LSAgICAgICAgICAgIEZTLnJvb3QgPSBtb3VudC5yb290OwotICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gcm9vdDsKLSAgICAgIH0sbG9va3VwOmZ1bmN0aW9uIChwYXJlbnQs
IG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5sb29rdXAocGFyZW50LCBu
YW1lKTsKLSAgICAgIH0sbWtub2Q6ZnVuY3Rpb24gKHBhdGgsIG1vZGUsIGRldikgewotICAgICAg
ICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAg
ICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICB2YXIgbmFtZSA9IFBBVEgu
YmFzZW5hbWUocGF0aCk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlDcmVhdGUocGFyZW50LCBu
YW1lKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFwYXJlbnQubm9kZV9vcHMubWtub2Qp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5ta25vZChwYXJlbnQs
IG5hbWUsIG1vZGUsIGRldik7Ci0gICAgICB9LGNyZWF0ZTpmdW5jdGlvbiAocGF0aCwgbW9kZSkg
ewotICAgICAgICBtb2RlICY9IDQwOTU7Ci0gICAgICAgIG1vZGUgfD0gMDEwMDAwMDsKLSAgICAg
ICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIDApOwotICAgICAgfSxta2RpcjpmdW5jdGlv
biAocGF0aCwgbW9kZSkgewotICAgICAgICBtb2RlICY9IDUxMSB8IDAwMDEwMDA7Ci0gICAgICAg
IG1vZGUgfD0gMDA0MDAwMDsKLSAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIDAp
OwotICAgICAgfSxta2RldjpmdW5jdGlvbiAocGF0aCwgbW9kZSwgZGV2KSB7Ci0gICAgICAgIG1v
ZGUgfD0gMDAyMDAwMDsKLSAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIGRldik7
Ci0gICAgICB9LHN5bWxpbms6ZnVuY3Rpb24gKG9sZHBhdGgsIG5ld3BhdGgpIHsKLSAgICAgICAg
dmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobmV3cGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0g
ICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5ld25hbWUgPSBQ
QVRILmJhc2VuYW1lKG5ld3BhdGgpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5Q3JlYXRlKHBh
cmVudCwgbmV3bmFtZSk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghcGFyZW50Lm5vZGVf
b3BzLnN5bWxpbmspIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5z
eW1saW5rKHBhcmVudCwgbmV3bmFtZSwgb2xkcGF0aCk7Ci0gICAgICB9LHJlbmFtZTpmdW5jdGlv
biAob2xkX3BhdGgsIG5ld19wYXRoKSB7Ci0gICAgICAgIHZhciBvbGRfZGlybmFtZSA9IFBBVEgu
ZGlybmFtZShvbGRfcGF0aCk7Ci0gICAgICAgIHZhciBuZXdfZGlybmFtZSA9IFBBVEguZGlybmFt
ZShuZXdfcGF0aCk7Ci0gICAgICAgIHZhciBvbGRfbmFtZSA9IFBBVEguYmFzZW5hbWUob2xkX3Bh
dGgpOwotICAgICAgICB2YXIgbmV3X25hbWUgPSBQQVRILmJhc2VuYW1lKG5ld19wYXRoKTsKLSAg
ICAgICAgLy8gcGFyZW50cyBtdXN0IGV4aXN0Ci0gICAgICAgIHZhciBsb29rdXAsIG9sZF9kaXIs
IG5ld19kaXI7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbG9va3VwID0gRlMubG9va3VwUGF0
aChvbGRfcGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgb2xkX2RpciA9IGxvb2t1
cC5ub2RlOwotICAgICAgICAgIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobmV3X3BhdGgsIHsgcGFy
ZW50OiB0cnVlIH0pOwotICAgICAgICAgIG5ld19kaXIgPSBsb29rdXAubm9kZTsKLSAgICAgICAg
fSBjYXRjaCAoZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICAvLyBuZWVkIHRvIGJlIHBhcnQgb2YgdGhl
IHNhbWUgbW91bnQKLSAgICAgICAgaWYgKG9sZF9kaXIubW91bnQgIT09IG5ld19kaXIubW91bnQp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FWERFVik7
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gc291cmNlIG11c3QgZXhpc3QKLSAgICAgICAgdmFyIG9s
ZF9ub2RlID0gRlMubG9va3VwTm9kZShvbGRfZGlyLCBvbGRfbmFtZSk7Ci0gICAgICAgIC8vIG9s
ZCBwYXRoIHNob3VsZCBub3QgYmUgYW4gYW5jZXN0b3Igb2YgdGhlIG5ldyBwYXRoCi0gICAgICAg
IHZhciByZWxhdGl2ZSA9IFBBVEgucmVsYXRpdmUob2xkX3BhdGgsIG5ld19kaXJuYW1lKTsKLSAg
ICAgICAgaWYgKHJlbGF0aXZlLmNoYXJBdCgwKSAhPT0gJy4nKSB7Ci0gICAgICAgICAgdGhyb3cg
bmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAg
ICAvLyBuZXcgcGF0aCBzaG91bGQgbm90IGJlIGFuIGFuY2VzdG9yIG9mIHRoZSBvbGQgcGF0aAot
ICAgICAgICByZWxhdGl2ZSA9IFBBVEgucmVsYXRpdmUobmV3X3BhdGgsIG9sZF9kaXJuYW1lKTsK
LSAgICAgICAgaWYgKHJlbGF0aXZlLmNoYXJBdCgwKSAhPT0gJy4nKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PVEVNUFRZKTsKLSAgICAgICAgfQot
ICAgICAgICAvLyBzZWUgaWYgdGhlIG5ldyBwYXRoIGFscmVhZHkgZXhpc3RzCi0gICAgICAgIHZh
ciBuZXdfbm9kZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBuZXdfbm9kZSA9IEZTLmxvb2t1
cE5vZGUobmV3X2RpciwgbmV3X25hbWUpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
ICAgLy8gbm90IGZhdGFsCi0gICAgICAgIH0KLSAgICAgICAgLy8gZWFybHkgb3V0IGlmIG5vdGhp
bmcgbmVlZHMgdG8gY2hhbmdlCi0gICAgICAgIGlmIChvbGRfbm9kZSA9PT0gbmV3X25vZGUpIHsK
LSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgLy8gd2UnbGwgbmVlZCB0byBk
ZWxldGUgdGhlIG9sZCBlbnRyeQotICAgICAgICB2YXIgaXNkaXIgPSBGUy5pc0RpcihvbGRfbm9k
ZS5tb2RlKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShvbGRfZGlyLCBvbGRfbmFt
ZSwgaXNkaXIpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICAvLyBuZWVkIGRlbGV0ZSBwZXJtaXNz
aW9ucyBpZiB3ZSdsbCBiZSBvdmVyd3JpdGluZy4KLSAgICAgICAgLy8gbmVlZCBjcmVhdGUgcGVy
bWlzc2lvbnMgaWYgbmV3IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4KLSAgICAgICAgZXJyID0gbmV3
X25vZGUgPwotICAgICAgICAgIEZTLm1heURlbGV0ZShuZXdfZGlyLCBuZXdfbmFtZSwgaXNkaXIp
IDoKLSAgICAgICAgICBGUy5tYXlDcmVhdGUobmV3X2RpciwgbmV3X25hbWUpOwotICAgICAgICBp
ZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAg
ICAgfQotICAgICAgICBpZiAoIW9sZF9kaXIubm9kZV9vcHMucmVuYW1lKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0g
ICAgICAgIGlmIChGUy5pc01vdW50cG9pbnQob2xkX25vZGUpIHx8IChuZXdfbm9kZSAmJiBGUy5p
c01vdW50cG9pbnQobmV3X25vZGUpKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICAvLyBpZiB3ZSBhcmUg
Z29pbmcgdG8gY2hhbmdlIHRoZSBwYXJlbnQsIGNoZWNrIHdyaXRlIHBlcm1pc3Npb25zCi0gICAg
ICAgIGlmIChuZXdfZGlyICE9PSBvbGRfZGlyKSB7Ci0gICAgICAgICAgZXJyID0gRlMubm9kZVBl
cm1pc3Npb25zKG9sZF9kaXIsICd3Jyk7Ci0gICAgICAgICAgaWYgKGVycikgewotICAgICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgLy8gcmVtb3ZlIHRoZSBub2RlIGZyb20gdGhlIGxvb2t1cCBoYXNoCi0gICAgICAg
IEZTLmhhc2hSZW1vdmVOb2RlKG9sZF9ub2RlKTsKLSAgICAgICAgLy8gZG8gdGhlIHVuZGVybHlp
bmcgZnMgcmVuYW1lCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgb2xkX2Rpci5ub2RlX29wcy5y
ZW5hbWUob2xkX25vZGUsIG5ld19kaXIsIG5ld19uYW1lKTsKLSAgICAgICAgfSBjYXRjaCAoZSkg
ewotICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgLy8g
YWRkIHRoZSBub2RlIGJhY2sgdG8gdGhlIGhhc2ggKGluIGNhc2Ugbm9kZV9vcHMucmVuYW1lCi0g
ICAgICAgICAgLy8gY2hhbmdlZCBpdHMgbmFtZSkKLSAgICAgICAgICBGUy5oYXNoQWRkTm9kZShv
bGRfbm9kZSk7Ci0gICAgICAgIH0KLSAgICAgIH0scm1kaXI6ZnVuY3Rpb24gKHBhdGgpIHsKLSAg
ICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7
Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUgPSBQ
QVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUocGFy
ZW50LCBuYW1lKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5hbWUs
IHRydWUpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5v
RXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBhcmVudC5ub2RlX29wcy5ybWRp
cikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJN
KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNNb3VudHBvaW50KG5vZGUpKSB7Ci0gICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpOwotICAgICAg
ICB9Ci0gICAgICAgIHBhcmVudC5ub2RlX29wcy5ybWRpcihwYXJlbnQsIG5hbWUpOwotICAgICAg
ICBGUy5kZXN0cm95Tm9kZShub2RlKTsKLSAgICAgIH0scmVhZGRpcjpmdW5jdGlvbiAocGF0aCkg
ewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogdHJ1
ZSB9KTsKLSAgICAgICAgdmFyIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgaWYgKCFub2Rl
Lm5vZGVfb3BzLnJlYWRkaXIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihF
UlJOT19DT0RFUy5FTk9URElSKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS5ub2Rl
X29wcy5yZWFkZGlyKG5vZGUpOwotICAgICAgfSx1bmxpbms6ZnVuY3Rpb24gKHBhdGgpIHsKLSAg
ICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7
Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUgPSBQ
QVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUocGFy
ZW50LCBuYW1lKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5hbWUs
IGZhbHNlKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIC8vIFBPU0lYIHNheXMgdW5s
aW5rIHNob3VsZCBzZXQgRVBFUk0sIG5vdCBFSVNESVIKLSAgICAgICAgICBpZiAoZXJyID09PSBF
UlJOT19DT0RFUy5FSVNESVIpIGVyciA9IEVSUk5PX0NPREVTLkVQRVJNOwotICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFwYXJl
bnQubm9kZV9vcHMudW5saW5rKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
RVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5pc01vdW50cG9p
bnQobm9kZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FQlVTWSk7Ci0gICAgICAgIH0KLSAgICAgICAgcGFyZW50Lm5vZGVfb3BzLnVubGluayhwYXJl
bnQsIG5hbWUpOwotICAgICAgICBGUy5kZXN0cm95Tm9kZShub2RlKTsKLSAgICAgIH0scmVhZGxp
bms6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgo
cGF0aCwgeyBmb2xsb3c6IGZhbHNlIH0pOwotICAgICAgICB2YXIgbGluayA9IGxvb2t1cC5ub2Rl
OwotICAgICAgICBpZiAoIWxpbmsubm9kZV9vcHMucmVhZGxpbmspIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBsaW5rLm5vZGVfb3BzLnJlYWRsaW5rKGxpbmspOwotICAgICAgfSxzdGF0OmZ1
bmN0aW9uIChwYXRoLCBkb250Rm9sbG93KSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29r
dXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udEZvbGxvdyB9KTsKLSAgICAgICAgdmFyIG5vZGUg
PSBsb29rdXAubm9kZTsKLSAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLmdldGF0dHIpIHsKLSAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGUubm9kZV9vcHMuZ2V0YXR0cihub2RlKTsKLSAgICAg
IH0sbHN0YXQ6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgcmV0dXJuIEZTLnN0YXQocGF0aCwg
dHJ1ZSk7Ci0gICAgICB9LGNobW9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlLCBkb250Rm9sbG93KSB7
Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcn
KSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6
ICFkb250Rm9sbG93IH0pOwotICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICBub2RlID0gcGF0aDsKLSAgICAgICAgfQotICAgICAgICBpZiAo
IW5vZGUubm9kZV9vcHMuc2V0YXR0cikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICBub2RlLm5vZGVfb3Bz
LnNldGF0dHIobm9kZSwgewotICAgICAgICAgIG1vZGU6IChtb2RlICYgNDA5NSkgfCAobm9kZS5t
b2RlICYgfjQwOTUpLAotICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKQotICAgICAgICB9
KTsKLSAgICAgIH0sbGNobW9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlKSB7Ci0gICAgICAgIEZTLmNo
bW9kKHBhdGgsIG1vZGUsIHRydWUpOwotICAgICAgfSxmY2htb2Q6ZnVuY3Rpb24gKGZkLCBtb2Rl
KSB7Ci0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwotICAgICAgICBpZiAo
IXN0cmVhbSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBGUy5jaG1vZChzdHJlYW0ubm9kZSwgbW9kZSk7
Ci0gICAgICB9LGNob3duOmZ1bmN0aW9uIChwYXRoLCB1aWQsIGdpZCwgZG9udEZvbGxvdykgewot
ICAgICAgICB2YXIgbm9kZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykg
ewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiAh
ZG9udEZvbGxvdyB9KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgbm9kZSA9IHBhdGg7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFu
b2RlLm5vZGVfb3BzLnNldGF0dHIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS5ub2RlX29wcy5z
ZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCkKLSAgICAgICAg
ICAvLyB3ZSBpZ25vcmUgdGhlIHVpZCAvIGdpZCBmb3Igbm93Ci0gICAgICAgIH0pOwotICAgICAg
fSxsY2hvd246ZnVuY3Rpb24gKHBhdGgsIHVpZCwgZ2lkKSB7Ci0gICAgICAgIEZTLmNob3duKHBh
dGgsIHVpZCwgZ2lkLCB0cnVlKTsKLSAgICAgIH0sZmNob3duOmZ1bmN0aW9uIChmZCwgdWlkLCBn
aWQpIHsKLSAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICAgIGlm
ICghc3RyZWFtKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIEZTLmNob3duKHN0cmVhbS5ub2RlLCB1aWQs
IGdpZCk7Ci0gICAgICB9LHRydW5jYXRlOmZ1bmN0aW9uIChwYXRoLCBsZW4pIHsKLSAgICAgICAg
aWYgKGxlbiA8IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICBpZiAo
dHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxv
b2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6IHRydWUgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxvb2t1
cC5ub2RlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIG5vZGUgPSBwYXRoOwotICAgICAg
ICB9Ci0gICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAg
ICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlTRElSKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIUZT
LmlzRmlsZShub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
RVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgZXJyID0gRlMubm9k
ZVBlcm1pc3Npb25zKG5vZGUsICd3Jyk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUubm9k
ZV9vcHMuc2V0YXR0cihub2RlLCB7Ci0gICAgICAgICAgc2l6ZTogbGVuLAotICAgICAgICAgIHRp
bWVzdGFtcDogRGF0ZS5ub3coKQotICAgICAgICB9KTsKLSAgICAgIH0sZnRydW5jYXRlOmZ1bmN0
aW9uIChmZCwgbGVuKSB7Ci0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwot
ICAgICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9y
KEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5mbGFn
cyAmIDMpID09PSAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICBGUy50cnVuY2F0ZShzdHJlYW0ubm9k
ZSwgbGVuKTsKLSAgICAgIH0sdXRpbWU6ZnVuY3Rpb24gKHBhdGgsIGF0aW1lLCBtdGltZSkgewot
ICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogdHJ1ZSB9
KTsKLSAgICAgICAgdmFyIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgbm9kZS5ub2RlX29w
cy5zZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICB0aW1lc3RhbXA6IE1hdGgubWF4KGF0aW1lLCBt
dGltZSkKLSAgICAgICAgfSk7Ci0gICAgICB9LG9wZW46ZnVuY3Rpb24gKHBhdGgsIGZsYWdzLCBt
b2RlLCBmZF9zdGFydCwgZmRfZW5kKSB7Ci0gICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6ZShw
YXRoKTsKLSAgICAgICAgZmxhZ3MgPSB0eXBlb2YgZmxhZ3MgPT09ICdzdHJpbmcnID8gRlMubW9k
ZVN0cmluZ1RvRmxhZ3MoZmxhZ3MpIDogZmxhZ3M7Ci0gICAgICAgIG1vZGUgPSB0eXBlb2YgbW9k
ZSA9PT0gJ3VuZGVmaW5lZCcgPyAwNjY2IDogbW9kZTsKLSAgICAgICAgaWYgKChmbGFncyAmIDUx
MikpIHsKLSAgICAgICAgICBtb2RlID0gKG1vZGUgJiA0MDk1KSB8IDAxMDAwMDA7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgbW9kZSA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG5v
ZGU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgo
cGF0aCwgewotICAgICAgICAgICAgZm9sbG93OiAhKGZsYWdzICYgMDIwMDAwMCkKLSAgICAgICAg
ICB9KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgcGF0aCA9IGxv
b2t1cC5wYXRoOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgLy8gaWdub3JlCi0g
ICAgICAgIH0KLSAgICAgICAgLy8gcGVyaGFwcyB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgbm9kZQot
ICAgICAgICBpZiAoKGZsYWdzICYgNTEyKSkgewotICAgICAgICAgIGlmIChub2RlKSB7Ci0gICAg
ICAgICAgICAvLyBpZiBPX0NSRUFUIGFuZCBPX0VYQ0wgYXJlIHNldCwgZXJyb3Igb3V0IGlmIHRo
ZSBub2RlIGFscmVhZHkgZXhpc3RzCi0gICAgICAgICAgICBpZiAoKGZsYWdzICYgMjA0OCkpIHsK
LSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUVYSVNU
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gbm9k
ZSBkb2Vzbid0IGV4aXN0LCB0cnkgdG8gY3JlYXRlIGl0Ci0gICAgICAgICAgICBub2RlID0gRlMu
bWtub2QocGF0aCwgbW9kZSwgMCk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlm
ICghbm9kZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVOT0VOVCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gY2FuJ3QgdHJ1bmNhdGUgYSBkZXZpY2UK
LSAgICAgICAgaWYgKEZTLmlzQ2hyZGV2KG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBmbGFncyAm
PSB+MTAyNDsKLSAgICAgICAgfQotICAgICAgICAvLyBjaGVjayBwZXJtaXNzaW9ucwotICAgICAg
ICB2YXIgZXJyID0gRlMubWF5T3Blbihub2RlLCBmbGFncyk7Ci0gICAgICAgIGlmIChlcnIpIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAg
ICAgIC8vIGRvIHRydW5jYXRpb24gaWYgbmVjZXNzYXJ5Ci0gICAgICAgIGlmICgoZmxhZ3MgJiAx
MDI0KSkgewotICAgICAgICAgIEZTLnRydW5jYXRlKG5vZGUsIDApOwotICAgICAgICB9Ci0gICAg
ICAgIC8vIHJlZ2lzdGVyIHRoZSBzdHJlYW0gd2l0aCB0aGUgZmlsZXN5c3RlbQotICAgICAgICB2
YXIgc3RyZWFtID0gRlMuY3JlYXRlU3RyZWFtKHsKLSAgICAgICAgICBwYXRoOiBwYXRoLAotICAg
ICAgICAgIG5vZGU6IG5vZGUsCi0gICAgICAgICAgZmxhZ3M6IGZsYWdzLAotICAgICAgICAgIHNl
ZWthYmxlOiB0cnVlLAotICAgICAgICAgIHBvc2l0aW9uOiAwLAotICAgICAgICAgIHN0cmVhbV9v
cHM6IG5vZGUuc3RyZWFtX29wcywKLSAgICAgICAgICAvLyB1c2VkIGJ5IHRoZSBmaWxlIGZhbWls
eSBsaWJjIGNhbGxzIChmb3BlbiwgZndyaXRlLCBmZXJyb3IsIGV0Yy4pCi0gICAgICAgICAgdW5n
b3R0ZW46IFtdLAotICAgICAgICAgIGVycm9yOiBmYWxzZQotICAgICAgICB9LCBmZF9zdGFydCwg
ZmRfZW5kKTsKLSAgICAgICAgLy8gY2FsbCB0aGUgbmV3IHN0cmVhbSdzIG9wZW4gZnVuY3Rpb24K
LSAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4pIHsKLSAgICAgICAgICBzdHJlYW0u
c3RyZWFtX29wcy5vcGVuKHN0cmVhbSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN0cmVh
bTsKLSAgICAgIH0sY2xvc2U6ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAgICB0cnkgewotICAg
ICAgICAgIGlmIChzdHJlYW0uc3RyZWFtX29wcy5jbG9zZSkgewotICAgICAgICAgICAgc3RyZWFt
LnN0cmVhbV9vcHMuY2xvc2Uoc3RyZWFtKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gY2F0Y2gg
KGUpIHsKLSAgICAgICAgICB0aHJvdyBlOwotICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAg
IEZTLmNsb3NlU3RyZWFtKHN0cmVhbS5mZCk7Ci0gICAgICAgIH0KLSAgICAgIH0sbGxzZWVrOmZ1
bmN0aW9uIChzdHJlYW0sIG9mZnNldCwgd2hlbmNlKSB7Ci0gICAgICAgIGlmICghc3RyZWFtLnNl
ZWthYmxlIHx8ICFzdHJlYW0uc3RyZWFtX29wcy5sbHNlZWspIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBzdHJlYW0uc3RyZWFtX29wcy5sbHNlZWsoc3RyZWFtLCBvZmZzZXQsIHdoZW5jZSk7
Ci0gICAgICB9LHJlYWQ6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwg
cG9zaXRpb24pIHsKLSAgICAgICAgaWYgKGxlbmd0aCA8IDAgfHwgcG9zaXRpb24gPCAwKSB7Ci0g
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAxKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICB9
Ci0gICAgICAgIGlmIChGUy5pc0RpcihzdHJlYW0ubm9kZS5tb2RlKSkgewotICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJUik7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy5yZWFkKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICB2
YXIgc2Vla2luZyA9IHRydWU7Ci0gICAgICAgIGlmICh0eXBlb2YgcG9zaXRpb24gPT09ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgICAgcG9zaXRpb24gPSBzdHJlYW0ucG9zaXRpb247Ci0gICAgICAg
ICAgc2Vla2luZyA9IGZhbHNlOwotICAgICAgICB9IGVsc2UgaWYgKCFzdHJlYW0uc2Vla2FibGUp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUp
OwotICAgICAgICB9Ci0gICAgICAgIHZhciBieXRlc1JlYWQgPSBzdHJlYW0uc3RyZWFtX29wcy5y
ZWFkKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pOwotICAgICAgICBp
ZiAoIXNlZWtpbmcpIHN0cmVhbS5wb3NpdGlvbiArPSBieXRlc1JlYWQ7Ci0gICAgICAgIHJldHVy
biBieXRlc1JlYWQ7Ci0gICAgICB9LHdyaXRlOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zm
c2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgIGlmIChsZW5ndGggPCAwIHx8IHBvc2l0
aW9uIDwgMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0g
MCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURG
KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkpIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIpOwot
ICAgICAgICB9Ci0gICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUpIHsKLSAgICAg
ICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAg
ICB9Ci0gICAgICAgIHZhciBzZWVraW5nID0gdHJ1ZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwb3Np
dGlvbiA9PT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICBwb3NpdGlvbiA9IHN0cmVhbS5wb3Np
dGlvbjsKLSAgICAgICAgICBzZWVraW5nID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXN0
cmVhbS5zZWVrYWJsZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVTUElQRSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0cmVhbS5mbGFncyAmIDgp
IHsKLSAgICAgICAgICAvLyBzZWVrIHRvIHRoZSBlbmQgYmVmb3JlIHdyaXRpbmcgaW4gYXBwZW5k
IG1vZGUKLSAgICAgICAgICBGUy5sbHNlZWsoc3RyZWFtLCAwLCAyKTsKLSAgICAgICAgfQotICAg
ICAgICB2YXIgYnl0ZXNXcml0dGVuID0gc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUoc3RyZWFtLCBi
dWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbik7Ci0gICAgICAgIGlmICghc2Vla2luZykg
c3RyZWFtLnBvc2l0aW9uICs9IGJ5dGVzV3JpdHRlbjsKLSAgICAgICAgcmV0dXJuIGJ5dGVzV3Jp
dHRlbjsKLSAgICAgIH0sYWxsb2NhdGU6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCBsZW5ndGgp
IHsKLSAgICAgICAgaWYgKG9mZnNldCA8IDAgfHwgbGVuZ3RoIDw9IDApIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDApIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKCFGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkgJiYgIUZTLmlzRGlyKG5vZGUubW9kZSkp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9ERVYp
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMuYWxsb2NhdGUpIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FT1BOT1RTVVBQ
KTsKLSAgICAgICAgfQotICAgICAgICBzdHJlYW0uc3RyZWFtX29wcy5hbGxvY2F0ZShzdHJlYW0s
IG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgIH0sbW1hcDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIs
IG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbiwgcHJvdCwgZmxhZ3MpIHsKLSAgICAgICAgLy8gVE9E
TyBpZiBQUk9UIGlzIFBST1RfV1JJVEUsIG1ha2Ugc3VyZSB3ZSBoYXZlIHdyaXRlIGFjY2Vzcwot
ICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAxKSB7Ci0gICAgICAgICAgdGhyb3cg
bmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFDQ0VTKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLm1tYXApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMu
ZXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9ERVYpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBzdHJlYW0uc3RyZWFtX29wcy5tbWFwKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwg
cG9zaXRpb24sIHByb3QsIGZsYWdzKTsKLSAgICAgIH19OwotICBmdW5jdGlvbiBfc2VuZChmZCwg
YnVmLCBsZW4sIGZsYWdzKSB7Ci0gICAgICB2YXIgaW5mbyA9IEZTLmdldFN0cmVhbShmZCk7Ci0g
ICAgICBpZiAoIWluZm8pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYp
OwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoaW5mby5zb2NrZXQucmVh
ZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNMT1NJTkcgfHwgaW5mby5zb2NrZXQucmVhZHlTdGF0ZSA9
PT0gV2ViU29ja2V0LkNMT1NFRCkgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5F
Tk9UQ09OTik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0gZWxzZSBpZiAoaW5mby5zb2Nr
ZXQucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNPTk5FQ1RJTkcpIHsKLSAgICAgICAgX19fc2V0
RXJyTm8oRVJSTk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQot
ICAgICAgaW5mby5zZW5kZXIoSEVBUFU4LnN1YmFycmF5KGJ1ZiwgYnVmK2xlbikpOwotICAgICAg
cmV0dXJuIGxlbjsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9wd3JpdGUoZmlsZGVzLCBidWYsIG5ieXRl
LCBvZmZzZXQpIHsKLSAgICAgIC8vIHNzaXplX3QgcHdyaXRlKGludCBmaWxkZXMsIGNvbnN0IHZv
aWQgKmJ1Ziwgc2l6ZV90IG5ieXRlLCBvZmZfdCBvZmZzZXQpOwotICAgICAgLy8gaHR0cDovL3B1
YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvd3JpdGUuaHRt
bAotICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYgKCFz
dHJlYW0pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAg
ICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICB0cnkgewotICAgICAgICB2YXIgc2xhYiA9IEhF
QVA4OwotICAgICAgICByZXR1cm4gRlMud3JpdGUoc3RyZWFtLCBzbGFiLCBidWYsIG5ieXRlLCBv
ZmZzZXQpOwotICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBGUy5oYW5kbGVGU0Vycm9yKGUp
OwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF93cml0ZShmaWxk
ZXMsIGJ1ZiwgbmJ5dGUpIHsKLSAgICAgIC8vIHNzaXplX3Qgd3JpdGUoaW50IGZpbGRlcywgY29u
c3Qgdm9pZCAqYnVmLCBzaXplX3QgbmJ5dGUpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdy
b3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvd3JpdGUuaHRtbAotICAgICAg
dmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYgKCFzdHJlYW0pIHsK
LSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICByZXR1cm4g
LTE7Ci0gICAgICB9Ci0gICAgICBpZiAoc3RyZWFtICYmICgnc29ja2V0JyBpbiBzdHJlYW0pKSB7
Ci0gICAgICAgIHJldHVybiBfc2VuZChmaWxkZXMsIGJ1ZiwgbmJ5dGUsIDApOwotICAgICAgfQot
ICAgICAgdHJ5IHsKLSAgICAgICAgdmFyIHNsYWIgPSBIRUFQODsKLSAgICAgICAgcmV0dXJuIEZT
LndyaXRlKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0ZSk7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0g
ICAgICAgIEZTLmhhbmRsZUZTRXJyb3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0K
LSAgICB9ZnVuY3Rpb24gX2Z3cml0ZShwdHIsIHNpemUsIG5pdGVtcywgc3RyZWFtKSB7Ci0gICAg
ICAvLyBzaXplX3QgZndyaXRlKGNvbnN0IHZvaWQgKnJlc3RyaWN0IHB0ciwgc2l6ZV90IHNpemUs
IHNpemVfdCBuaXRlbXMsIEZJTEUgKnJlc3RyaWN0IHN0cmVhbSk7Ci0gICAgICAvLyBodHRwOi8v
cHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9md3JpdGUu
aHRtbAotICAgICAgdmFyIGJ5dGVzVG9Xcml0ZSA9IG5pdGVtcyAqIHNpemU7Ci0gICAgICBpZiAo
Ynl0ZXNUb1dyaXRlID09IDApIHJldHVybiAwOwotICAgICAgdmFyIGJ5dGVzV3JpdHRlbiA9IF93
cml0ZShzdHJlYW0sIHB0ciwgYnl0ZXNUb1dyaXRlKTsKLSAgICAgIGlmIChieXRlc1dyaXR0ZW4g
PT0gLTEpIHsKLSAgICAgICAgdmFyIHN0cmVhbU9iaiA9IEZTLmdldFN0cmVhbShzdHJlYW0pOwot
ICAgICAgICBpZiAoc3RyZWFtT2JqKSBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICBy
ZXR1cm4gMDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBNYXRoLmZsb29yKGJ5dGVz
V3JpdHRlbiAvIHNpemUpOwotICAgICAgfQotICAgIH0KLSAgZnVuY3Rpb24gX3VuZ2V0YyhjLCBz
dHJlYW0pIHsKLSAgICAgIC8vIGludCB1bmdldGMoaW50IGMsIEZJTEUgKnN0cmVhbSk7Ci0gICAg
ICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0
aW9ucy91bmdldGMuaHRtbAotICAgICAgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7Ci0g
ICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICBp
ZiAoYyA9PT0gLTEpIHsKLSAgICAgICAgLy8gZG8gbm90aGluZyBmb3IgRU9GIGNoYXJhY3Rlcgot
ICAgICAgICByZXR1cm4gYzsKLSAgICAgIH0KLSAgICAgIGMgPSB1blNpZ24oYyAmIDB4RkYpOwot
ICAgICAgc3RyZWFtLnVuZ290dGVuLnB1c2goYyk7Ci0gICAgICBzdHJlYW0uZW9mID0gZmFsc2U7
Ci0gICAgICByZXR1cm4gYzsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9yZWN2KGZkLCBidWYsIGxlbiwg
ZmxhZ3MpIHsKLSAgICAgIHZhciBpbmZvID0gRlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAgIGlmICgh
aW5mbykgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAg
IHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIGlmICghaW5mby5oYXNEYXRhKCkpIHsKLSAgICAg
ICAgaWYgKGluZm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TSU5HIHx8IGlu
Zm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TRUQpIHsKLSAgICAgICAgICAv
LyBzb2NrZXQgaGFzIGNsb3NlZAotICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgIC8vIGVsc2UsIG91ciBzb2NrZXQgaXMgaW4gYSB2YWxpZCBzdGF0ZSBidXQg
dHJ1bHkgaGFzIG5vdGhpbmcgYXZhaWxhYmxlCi0gICAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9f
Q09ERVMuRUFHQUlOKTsKLSAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICAgIH0K
LSAgICAgIHZhciBidWZmZXIgPSBpbmZvLmluUXVldWUuc2hpZnQoKTsKLSAgICAgIGlmIChsZW4g
PCBidWZmZXIubGVuZ3RoKSB7Ci0gICAgICAgIGlmIChpbmZvLnN0cmVhbSkgewotICAgICAgICAg
IC8vIFRoaXMgaXMgdGNwIChyZWxpYWJsZSksIHNvIGlmIG5vdCBhbGwgd2FzIHJlYWQsIGtlZXAg
aXQKLSAgICAgICAgICBpbmZvLmluUXVldWUudW5zaGlmdChidWZmZXIuc3ViYXJyYXkobGVuKSk7
Ci0gICAgICAgIH0KLSAgICAgICAgYnVmZmVyID0gYnVmZmVyLnN1YmFycmF5KDAsIGxlbik7Ci0g
ICAgICB9Ci0gICAgICBIRUFQVTguc2V0KGJ1ZmZlciwgYnVmKTsKLSAgICAgIHJldHVybiBidWZm
ZXIubGVuZ3RoOwotICAgIH0KLSAgZnVuY3Rpb24gX3ByZWFkKGZpbGRlcywgYnVmLCBuYnl0ZSwg
b2Zmc2V0KSB7Ci0gICAgICAvLyBzc2l6ZV90IHByZWFkKGludCBmaWxkZXMsIHZvaWQgKmJ1Ziwg
c2l6ZV90IG5ieXRlLCBvZmZfdCBvZmZzZXQpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdy
b3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvcmVhZC5odG1sCi0gICAgICB2
YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7Ci0gICAgICBpZiAoIXN0cmVhbSkgewot
ICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVybiAt
MTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAgICAgIHZhciBzbGFiID0gSEVBUDg7Ci0gICAg
ICAgIHJldHVybiBGUy5yZWFkKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0ZSwgb2Zmc2V0KTsKLSAg
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgRlMuaGFuZGxlRlNFcnJvcihlKTsKLSAgICAgICAg
cmV0dXJuIC0xOwotICAgICAgfQotICAgIH1mdW5jdGlvbiBfcmVhZChmaWxkZXMsIGJ1ZiwgbmJ5
dGUpIHsKLSAgICAgIC8vIHNzaXplX3QgcmVhZChpbnQgZmlsZGVzLCB2b2lkICpidWYsIHNpemVf
dCBuYnl0ZSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMv
MDAwMDk1Mzk5L2Z1bmN0aW9ucy9yZWFkLmh0bWwKLSAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRT
dHJlYW0oZmlsZGVzKTsKLSAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgIF9fX3NldEVyck5v
KEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgICAg
aWYgKHN0cmVhbSAmJiAoJ3NvY2tldCcgaW4gc3RyZWFtKSkgewotICAgICAgICByZXR1cm4gX3Jl
Y3YoZmlsZGVzLCBidWYsIG5ieXRlLCAwKTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAgICAg
IHZhciBzbGFiID0gSEVBUDg7Ci0gICAgICAgIHJldHVybiBGUy5yZWFkKHN0cmVhbSwgc2xhYiwg
YnVmLCBuYnl0ZSk7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEZTLmhhbmRsZUZTRXJy
b3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24gX2ZyZWFk
KHB0ciwgc2l6ZSwgbml0ZW1zLCBzdHJlYW0pIHsKLSAgICAgIC8vIHNpemVfdCBmcmVhZCh2b2lk
ICpyZXN0cmljdCBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbml0ZW1zLCBGSUxFICpyZXN0cmlj
dCBzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJz
LzAwMDA5NTM5OS9mdW5jdGlvbnMvZnJlYWQuaHRtbAotICAgICAgdmFyIGJ5dGVzVG9SZWFkID0g
bml0ZW1zICogc2l6ZTsKLSAgICAgIGlmIChieXRlc1RvUmVhZCA9PSAwKSB7Ci0gICAgICAgIHJl
dHVybiAwOwotICAgICAgfQotICAgICAgdmFyIGJ5dGVzUmVhZCA9IDA7Ci0gICAgICB2YXIgc3Ry
ZWFtT2JqID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7Ci0gICAgICB3aGlsZSAoc3RyZWFtT2JqLnVu
Z290dGVuLmxlbmd0aCAmJiBieXRlc1RvUmVhZCA+IDApIHsKLSAgICAgICAgSEVBUDhbKChwdHIr
Kyl8MCldPXN0cmVhbU9iai51bmdvdHRlbi5wb3AoKQotICAgICAgICBieXRlc1RvUmVhZC0tOwot
ICAgICAgICBieXRlc1JlYWQrKzsKLSAgICAgIH0KLSAgICAgIHZhciBlcnIgPSBfcmVhZChzdHJl
YW0sIHB0ciwgYnl0ZXNUb1JlYWQpOwotICAgICAgaWYgKGVyciA9PSAtMSkgewotICAgICAgICBp
ZiAoc3RyZWFtT2JqKSBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICByZXR1cm4gMDsK
LSAgICAgIH0KLSAgICAgIGJ5dGVzUmVhZCArPSBlcnI7Ci0gICAgICBpZiAoYnl0ZXNSZWFkIDwg
Ynl0ZXNUb1JlYWQpIHN0cmVhbU9iai5lb2YgPSB0cnVlOwotICAgICAgcmV0dXJuIE1hdGguZmxv
b3IoYnl0ZXNSZWFkIC8gc2l6ZSk7Ci0gICAgfWZ1bmN0aW9uIF9mZ2V0YyhzdHJlYW0pIHsKLSAg
ICAgIC8vIGludCBmZ2V0YyhGSUxFICpzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Bl
bmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZmdldGMuaHRtbAotICAg
ICAgdmFyIHN0cmVhbU9iaiA9IEZTLmdldFN0cmVhbShzdHJlYW0pOwotICAgICAgaWYgKCFzdHJl
YW1PYmopIHJldHVybiAtMTsKLSAgICAgIGlmIChzdHJlYW1PYmouZW9mIHx8IHN0cmVhbU9iai5l
cnJvcikgcmV0dXJuIC0xOwotICAgICAgdmFyIHJldCA9IF9mcmVhZChfZmdldGMucmV0LCAxLCAx
LCBzdHJlYW0pOwotICAgICAgaWYgKHJldCA9PSAwKSB7Ci0gICAgICAgIHN0cmVhbU9iai5lb2Yg
PSB0cnVlOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9IGVsc2UgaWYgKHJldCA9PSAtMSkg
ewotICAgICAgICBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICByZXR1cm4gLTE7Ci0g
ICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gSEVBUFU4WygoX2ZnZXRjLnJldCl8MCldOwot
ICAgICAgfQotICAgIH12YXIgX2dldGM9X2ZnZXRjOwotICBmdW5jdGlvbiBfX19jeGFfcHVyZV92
aXJ0dWFsKCkgewotICAgICAgQUJPUlQgPSB0cnVlOwotICAgICAgdGhyb3cgJ1B1cmUgdmlydHVh
bCBmdW5jdGlvbiBjYWxsZWQhJzsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2Vycm5vX2xvY2F0aW9u
KCkgewotICAgICAgcmV0dXJuIF9fX2Vycm5vX3N0YXRlOwotICAgIH12YXIgX19fZXJybm89X19f
ZXJybm9fbG9jYXRpb247Ci0gIHZhciBfbGx2bV9tZW1zZXRfcDBpOF9pMzI9X21lbXNldDsKLSAg
TW9kdWxlWyJfc3RybGVuIl0gPSBfc3RybGVuOwotICBmdW5jdGlvbiBfc3RyZXJyb3JfcihlcnJu
dW0sIHN0cmVycmJ1ZiwgYnVmbGVuKSB7Ci0gICAgICBpZiAoZXJybnVtIGluIEVSUk5PX01FU1NB
R0VTKSB7Ci0gICAgICAgIGlmIChFUlJOT19NRVNTQUdFU1tlcnJudW1dLmxlbmd0aCA+IGJ1Zmxl
biAtIDEpIHsKLSAgICAgICAgICByZXR1cm4gX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRVJBTkdF
KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgbXNnID0gRVJSTk9fTUVTU0FHRVNb
ZXJybnVtXTsKLSAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1zZy5sZW5ndGg7IGkrKykg
ewotICAgICAgICAgICAgSEVBUDhbKCgoc3RyZXJyYnVmKSsoaSkpfDApXT1tc2cuY2hhckNvZGVB
dChpKQotICAgICAgICAgIH0KLSAgICAgICAgICBIRUFQOFsoKChzdHJlcnJidWYpKyhpKSl8MCld
PTAKLSAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgcmV0dXJuIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICB9Ci0gICAg
fWZ1bmN0aW9uIF9zdHJlcnJvcihlcnJudW0pIHsKLSAgICAgIGlmICghX3N0cmVycm9yLmJ1ZmZl
cikgX3N0cmVycm9yLmJ1ZmZlciA9IF9tYWxsb2MoMjU2KTsKLSAgICAgIF9zdHJlcnJvcl9yKGVy
cm51bSwgX3N0cmVycm9yLmJ1ZmZlciwgMjU2KTsKLSAgICAgIHJldHVybiBfc3RyZXJyb3IuYnVm
ZmVyOwotICAgIH0KLSAgZnVuY3Rpb24gX2Fib3J0KCkgewotICAgICAgTW9kdWxlWydhYm9ydCdd
KCk7Ci0gICAgfQotICBmdW5jdGlvbiBfX3JlYWxseU5lZ2F0aXZlKHgpIHsKLSAgICAgIHJldHVy
biB4IDwgMCB8fCAoeCA9PT0gMCAmJiAoMS94KSA9PT0gLUluZmluaXR5KTsKLSAgICB9ZnVuY3Rp
b24gX19mb3JtYXRTdHJpbmcoZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAgICB2YXIgdGV4dEluZGV4
ID0gZm9ybWF0OwotICAgICAgdmFyIGFyZ0luZGV4ID0gMDsKLSAgICAgIGZ1bmN0aW9uIGdldE5l
eHRBcmcodHlwZSkgewotICAgICAgICAvLyBOT1RFOiBFeHBsaWNpdGx5IGlnbm9yaW5nIHR5cGUg
c2FmZXR5LiBPdGhlcndpc2UgdGhpcyBmYWlsczoKLSAgICAgICAgLy8gICAgICAgaW50IHggPSA0
OyBwcmludGYoIiVjXG4iLCAoY2hhcil4KTsKLSAgICAgICAgdmFyIHJldDsKLSAgICAgICAgaWYg
KHR5cGUgPT09ICdkb3VibGUnKSB7Ci0gICAgICAgICAgcmV0ID0gSEVBUEY2NFsoKCh2YXJhcmdz
KSsoYXJnSW5kZXgpKT4+MyldOwotICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2k2NCcpIHsK
LSAgICAgICAgICByZXQgPSBbSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV0sCi0g
ICAgICAgICAgICAgICAgIEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgrOCkpPj4yKV1dOwot
ICAgICAgICAgIGFyZ0luZGV4ICs9IDg7IC8vIGVhY2ggMzItYml0IGNodW5rIGlzIGluIGEgNjQt
Yml0IGJsb2NrCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdHlwZSA9ICdpMzInOyAvLyB2
YXJhcmdzIGFyZSBhbHdheXMgaTMyLCBpNjQsIG9yIGRvdWJsZQotICAgICAgICAgIHJldCA9IEhF
QVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+MildOwotICAgICAgICB9Ci0gICAgICAgIGFy
Z0luZGV4ICs9IE1hdGgubWF4KFJ1bnRpbWUuZ2V0TmF0aXZlRmllbGRTaXplKHR5cGUpLCBSdW50
aW1lLmdldEFsaWduU2l6ZSh0eXBlLCBudWxsLCB0cnVlKSk7Ci0gICAgICAgIHJldHVybiByZXQ7
Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0ID0gW107Ci0gICAgICB2YXIgY3VyciwgbmV4dCwgY3Vy
ckFyZzsKLSAgICAgIHdoaWxlKDEpIHsKLSAgICAgICAgdmFyIHN0YXJ0VGV4dEluZGV4ID0gdGV4
dEluZGV4OwotICAgICAgICBjdXJyID0gSEVBUDhbKHRleHRJbmRleCldOwotICAgICAgICBpZiAo
Y3VyciA9PT0gMCkgYnJlYWs7Ci0gICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXww
KV07Ci0gICAgICAgIGlmIChjdXJyID09IDM3KSB7Ci0gICAgICAgICAgLy8gSGFuZGxlIGZsYWdz
LgotICAgICAgICAgIHZhciBmbGFnQWx3YXlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgdmFy
IGZsYWdMZWZ0QWxpZ24gPSBmYWxzZTsKLSAgICAgICAgICB2YXIgZmxhZ0FsdGVybmF0aXZlID0g
ZmFsc2U7Ci0gICAgICAgICAgdmFyIGZsYWdaZXJvUGFkID0gZmFsc2U7Ci0gICAgICAgICAgZmxh
Z3NMb29wOiB3aGlsZSAoMSkgewotICAgICAgICAgICAgc3dpdGNoIChuZXh0KSB7Ci0gICAgICAg
ICAgICAgIGNhc2UgNDM6Ci0gICAgICAgICAgICAgICAgZmxhZ0Fsd2F5c1NpZ25lZCA9IHRydWU7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIGNhc2UgNDU6Ci0gICAgICAg
ICAgICAgICAgZmxhZ0xlZnRBbGlnbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgIGNhc2UgMzU6Ci0gICAgICAgICAgICAgICAgZmxhZ0FsdGVybmF0aXZlID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgY2FzZSA0ODoKLSAg
ICAgICAgICAgICAgICBpZiAoZmxhZ1plcm9QYWQpIHsKLSAgICAgICAgICAgICAgICAgIGJyZWFr
IGZsYWdzTG9vcDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ZmxhZ1plcm9QYWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGJyZWFrIGZs
YWdzTG9vcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAg
ICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICB9Ci0gICAg
ICAgICAgLy8gSGFuZGxlIHdpZHRoLgotICAgICAgICAgIHZhciB3aWR0aCA9IDA7Ci0gICAgICAg
ICAgaWYgKG5leHQgPT0gNDIpIHsKLSAgICAgICAgICAgIHdpZHRoID0gZ2V0TmV4dEFyZygnaTMy
Jyk7Ci0gICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgIG5leHQgPSBIRUFQOFso
KHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHdoaWxl
IChuZXh0ID49IDQ4ICYmIG5leHQgPD0gNTcpIHsKLSAgICAgICAgICAgICAgd2lkdGggPSB3aWR0
aCAqIDEwICsgKG5leHQgLSA0OCk7Ci0gICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAg
ICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgICAgfQot
ICAgICAgICAgIH0KLSAgICAgICAgICAvLyBIYW5kbGUgcHJlY2lzaW9uLgotICAgICAgICAgIHZh
ciBwcmVjaXNpb25TZXQgPSBmYWxzZTsKLSAgICAgICAgICBpZiAobmV4dCA9PSA0NikgewotICAg
ICAgICAgICAgdmFyIHByZWNpc2lvbiA9IDA7Ci0gICAgICAgICAgICBwcmVjaXNpb25TZXQgPSB0
cnVlOwotICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICBuZXh0ID0gSEVBUDhb
KCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgICAgaWYgKG5leHQgPT0gNDIpIHsKLSAgICAg
ICAgICAgICAgcHJlY2lzaW9uID0gZ2V0TmV4dEFyZygnaTMyJyk7Ci0gICAgICAgICAgICAgIHRl
eHRJbmRleCsrOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgd2hpbGUoMSkg
ewotICAgICAgICAgICAgICAgIHZhciBwcmVjaXNpb25DaHIgPSBIRUFQOFsoKHRleHRJbmRleCsx
KXwwKV07Ci0gICAgICAgICAgICAgICAgaWYgKHByZWNpc2lvbkNociA8IDQ4IHx8Ci0gICAgICAg
ICAgICAgICAgICAgIHByZWNpc2lvbkNociA+IDU3KSBicmVhazsKLSAgICAgICAgICAgICAgICBw
cmVjaXNpb24gPSBwcmVjaXNpb24gKiAxMCArIChwcmVjaXNpb25DaHIgLSA0OCk7Ci0gICAgICAg
ICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIHZhciBwcmVjaXNpb24gPSA2OyAvLyBTdGFuZGFyZCBkZWZhdWx0
LgotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBIYW5kbGUgaW50ZWdlciBzaXplcy4gV0FSTklO
RzogVGhlc2UgYXNzdW1lIGEgMzItYml0IGFyY2hpdGVjdHVyZSEKLSAgICAgICAgICB2YXIgYXJn
U2l6ZTsKLSAgICAgICAgICBzd2l0Y2ggKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpIHsKLSAg
ICAgICAgICAgIGNhc2UgJ2gnOgotICAgICAgICAgICAgICB2YXIgbmV4dE5leHQgPSBIRUFQOFso
KHRleHRJbmRleCsyKXwwKV07Ci0gICAgICAgICAgICAgIGlmIChuZXh0TmV4dCA9PSAxMDQpIHsK
LSAgICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgICBhcmdTaXplID0g
MTsgLy8gY2hhciAoYWN0dWFsbHkgaTMyIGluIHZhcmFyZ3MpCi0gICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgYXJnU2l6ZSA9IDI7IC8vIHNob3J0IChhY3R1YWxseSBpMzIg
aW4gdmFyYXJncykKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGNhc2UgJ2wnOgotICAgICAgICAgICAgICB2YXIgbmV4dE5leHQgPSBIRUFQOFsoKHRl
eHRJbmRleCsyKXwwKV07Ci0gICAgICAgICAgICAgIGlmIChuZXh0TmV4dCA9PSAxMDgpIHsKLSAg
ICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgICBhcmdTaXplID0gODsg
Ly8gbG9uZyBsb25nCi0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXJn
U2l6ZSA9IDQ7IC8vIGxvbmcKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIGNhc2UgJ0wnOiAvLyBsb25nIGxvbmcKLSAgICAgICAgICAgIGNhc2UgJ3En
OiAvLyBpbnQ2NF90Ci0gICAgICAgICAgICBjYXNlICdqJzogLy8gaW50bWF4X3QKLSAgICAgICAg
ICAgICAgYXJnU2l6ZSA9IDg7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSAneic6IC8vIHNpemVfdAotICAgICAgICAgICAgY2FzZSAndCc6IC8vIHB0cmRpZmZfdAotICAg
ICAgICAgICAgY2FzZSAnSSc6IC8vIHNpZ25lZCBwdHJkaWZmX3Qgb3IgdW5zaWduZWQgc2l6ZV90
Ci0gICAgICAgICAgICAgIGFyZ1NpemUgPSA0OwotICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgIGFyZ1NpemUgPSBudWxsOwotICAgICAgICAg
IH0KLSAgICAgICAgICBpZiAoYXJnU2l6ZSkgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgbmV4dCA9
IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICAvLyBIYW5kbGUgdHlwZSBzcGVj
aWZpZXIuCi0gICAgICAgICAgc3dpdGNoIChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKSB7Ci0g
ICAgICAgICAgICBjYXNlICdkJzogY2FzZSAnaSc6IGNhc2UgJ3UnOiBjYXNlICdvJzogY2FzZSAn
eCc6IGNhc2UgJ1gnOiBjYXNlICdwJzogewotICAgICAgICAgICAgICAvLyBJbnRlZ2VyLgotICAg
ICAgICAgICAgICB2YXIgc2lnbmVkID0gbmV4dCA9PSAxMDAgfHwgbmV4dCA9PSAxMDU7Ci0gICAg
ICAgICAgICAgIGFyZ1NpemUgPSBhcmdTaXplIHx8IDQ7Ci0gICAgICAgICAgICAgIHZhciBjdXJy
QXJnID0gZ2V0TmV4dEFyZygnaScgKyAoYXJnU2l6ZSAqIDgpKTsKLSAgICAgICAgICAgICAgdmFy
IG9yaWdBcmcgPSBjdXJyQXJnOwotICAgICAgICAgICAgICB2YXIgYXJnVGV4dDsKLSAgICAgICAg
ICAgICAgLy8gRmxhdHRlbiBpNjQtMSBbbG93LCBoaWdoXSBpbnRvIGEgKHNsaWdodGx5IHJvdW5k
ZWQpIGRvdWJsZQotICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4KSB7Ci0gICAgICAgICAg
ICAgICAgY3VyckFyZyA9IFJ1bnRpbWUubWFrZUJpZ0ludChjdXJyQXJnWzBdLCBjdXJyQXJnWzFd
LCBuZXh0ID09IDExNyk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gVHJ1bmNh
dGUgdG8gcmVxdWVzdGVkIHNpemUuCi0gICAgICAgICAgICAgIGlmIChhcmdTaXplIDw9IDQpIHsK
LSAgICAgICAgICAgICAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyNTYsIGFyZ1NpemUpIC0gMTsK
LSAgICAgICAgICAgICAgICBjdXJyQXJnID0gKHNpZ25lZCA/IHJlU2lnbiA6IHVuU2lnbikoY3Vy
ckFyZyAmIGxpbWl0LCBhcmdTaXplICogOCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgLy8gRm9ybWF0IHRoZSBudW1iZXIuCi0gICAgICAgICAgICAgIHZhciBjdXJyQWJzQXJnID0g
TWF0aC5hYnMoY3VyckFyZyk7Ci0gICAgICAgICAgICAgIHZhciBwcmVmaXggPSAnJzsKLSAgICAg
ICAgICAgICAgaWYgKG5leHQgPT0gMTAwIHx8IG5leHQgPT0gMTA1KSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGFyZ1NpemUgPT0gOCAmJiBpNjRNYXRoKSBhcmdUZXh0ID0gaTY0TWF0aC5zdHJpbmdp
Znkob3JpZ0FyZ1swXSwgb3JpZ0FyZ1sxXSwgbnVsbCk7IGVsc2UKLSAgICAgICAgICAgICAgICBh
cmdUZXh0ID0gcmVTaWduKGN1cnJBcmcsIDggKiBhcmdTaXplLCAxKS50b1N0cmluZygxMCk7Ci0g
ICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMTcpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoYXJnU2l6ZSA9PSA4ICYmIGk2NE1hdGgpIGFyZ1RleHQgPSBpNjRNYXRoLnN0cmluZ2lmeShv
cmlnQXJnWzBdLCBvcmlnQXJnWzFdLCB0cnVlKTsgZWxzZQotICAgICAgICAgICAgICAgIGFyZ1Rl
eHQgPSB1blNpZ24oY3VyckFyZywgOCAqIGFyZ1NpemUsIDEpLnRvU3RyaW5nKDEwKTsKLSAgICAg
ICAgICAgICAgICBjdXJyQXJnID0gTWF0aC5hYnMoY3VyckFyZyk7Ci0gICAgICAgICAgICAgIH0g
ZWxzZSBpZiAobmV4dCA9PSAxMTEpIHsKLSAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKGZsYWdB
bHRlcm5hdGl2ZSA/ICcwJyA6ICcnKSArIGN1cnJBYnNBcmcudG9TdHJpbmcoOCk7Ci0gICAgICAg
ICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMjAgfHwgbmV4dCA9PSA4OCkgewotICAgICAgICAg
ICAgICAgIHByZWZpeCA9IChmbGFnQWx0ZXJuYXRpdmUgJiYgY3VyckFyZyAhPSAwKSA/ICcweCcg
OiAnJzsKLSAgICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4ICYmIGk2NE1hdGgpIHsKLSAg
ICAgICAgICAgICAgICAgIGlmIChvcmlnQXJnWzFdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFy
Z1RleHQgPSAob3JpZ0FyZ1sxXT4+PjApLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAgICAgICAg
ICAgdmFyIGxvd2VyID0gKG9yaWdBcmdbMF0+Pj4wKS50b1N0cmluZygxNik7Ci0gICAgICAgICAg
ICAgICAgICAgIHdoaWxlIChsb3dlci5sZW5ndGggPCA4KSBsb3dlciA9ICcwJyArIGxvd2VyOwot
ICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9IGxvd2VyOwotICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChvcmlnQXJnWzBdPj4+MCku
dG9TdHJpbmcoMTYpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgICAgIGlmIChjdXJyQXJnIDwgMCkgewotICAgICAgICAgICAgICAgICAg
Ly8gUmVwcmVzZW50IG5lZ2F0aXZlIG51bWJlcnMgaW4gaGV4IGFzIDIncyBjb21wbGVtZW50Lgot
ICAgICAgICAgICAgICAgICAgY3VyckFyZyA9IC1jdXJyQXJnOwotICAgICAgICAgICAgICAgICAg
YXJnVGV4dCA9IChjdXJyQWJzQXJnIC0gMSkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAgICAg
ICAgdmFyIGJ1ZmZlciA9IFtdOwotICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBhcmdUZXh0Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5wdXNo
KCgweEYgLSBwYXJzZUludChhcmdUZXh0W2ldLCAxNikpLnRvU3RyaW5nKDE2KSk7Ci0gICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gYnVmZmVyLmpvaW4oJycp
OwotICAgICAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwgYXJnU2l6ZSAqIDIp
IGFyZ1RleHQgPSAnZicgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICBhcmdUZXh0ID0gY3VyckFic0FyZy50b1N0cmluZygxNik7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDg4KSB7Ci0gICAgICAgICAg
ICAgICAgICBwcmVmaXggPSBwcmVmaXgudG9VcHBlckNhc2UoKTsKLSAgICAgICAgICAgICAgICAg
IGFyZ1RleHQgPSBhcmdUZXh0LnRvVXBwZXJDYXNlKCk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTEyKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGN1cnJBYnNBcmcgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnKG5pbCkn
OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwcmVmaXggPSAn
MHgnOwotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBYnNBcmcudG9TdHJpbmcoMTYp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAo
cHJlY2lzaW9uU2V0KSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwg
cHJlY2lzaW9uKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJzAnICsgYXJnVGV4dDsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gQWRk
IHNpZ24gaWYgbmVlZGVkCi0gICAgICAgICAgICAgIGlmIChmbGFnQWx3YXlzU2lnbmVkKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKGN1cnJBcmcgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICBwcmVm
aXggPSAnLScgKyBwcmVmaXg7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgIHByZWZpeCA9ICcrJyArIHByZWZpeDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gQWRkIHBhZGRpbmcuCi0gICAgICAgICAgICAgIHdo
aWxlIChwcmVmaXgubGVuZ3RoICsgYXJnVGV4dC5sZW5ndGggPCB3aWR0aCkgewotICAgICAgICAg
ICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9
ICcgJzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgKGZs
YWdaZXJvUGFkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnMCcgKyBhcmdUZXh0
OwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcHJlZml4
ID0gJyAnICsgcHJlZml4OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBJbnNlcnQgdGhlIHJlc3VsdCBpbnRv
IHRoZSBidWZmZXIuCi0gICAgICAgICAgICAgIGFyZ1RleHQgPSBwcmVmaXggKyBhcmdUZXh0Owot
ICAgICAgICAgICAgICBhcmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNocikgewot
ICAgICAgICAgICAgICAgIHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Y2FzZSAnZic6IGNhc2UgJ0YnOiBjYXNlICdlJzogY2FzZSAnRSc6IGNhc2UgJ2cnOiBjYXNlICdH
JzogewotICAgICAgICAgICAgICAvLyBGbG9hdC4KLSAgICAgICAgICAgICAgdmFyIGN1cnJBcmcg
PSBnZXROZXh0QXJnKCdkb3VibGUnKTsKLSAgICAgICAgICAgICAgdmFyIGFyZ1RleHQ7Ci0gICAg
ICAgICAgICAgIGlmIChpc05hTihjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgIGFyZ1RleHQg
PSAnbmFuJzsKLSAgICAgICAgICAgICAgICBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKCFpc0Zpbml0ZShjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgIGFy
Z1RleHQgPSAoY3VyckFyZyA8IDAgPyAnLScgOiAnJykgKyAnaW5mJzsKLSAgICAgICAgICAgICAg
ICBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIHZhciBpc0dlbmVyYWwgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB2YXIgZWZmZWN0
aXZlUHJlY2lzaW9uID0gTWF0aC5taW4ocHJlY2lzaW9uLCAyMCk7Ci0gICAgICAgICAgICAgICAg
Ly8gQ29udmVydCBnL0cgdG8gZi9GIG9yIGUvRSwgYXMgcGVyOgotICAgICAgICAgICAgICAgIC8v
IGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L2Z1bmN0aW9u
cy9wcmludGYuaHRtbAotICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDEwMyB8fCBuZXh0ID09
IDcxKSB7Ci0gICAgICAgICAgICAgICAgICBpc0dlbmVyYWwgPSB0cnVlOwotICAgICAgICAgICAg
ICAgICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uIHx8IDE7Ci0gICAgICAgICAgICAgICAgICB2YXIg
ZXhwb25lbnQgPSBwYXJzZUludChjdXJyQXJnLnRvRXhwb25lbnRpYWwoZWZmZWN0aXZlUHJlY2lz
aW9uKS5zcGxpdCgnZScpWzFdLCAxMCk7Ci0gICAgICAgICAgICAgICAgICBpZiAocHJlY2lzaW9u
ID4gZXhwb25lbnQgJiYgZXhwb25lbnQgPj0gLTQpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV4
dCA9ICgobmV4dCA9PSAxMDMpID8gJ2YnIDogJ0YnKS5jaGFyQ29kZUF0KDApOwotICAgICAgICAg
ICAgICAgICAgICBwcmVjaXNpb24gLT0gZXhwb25lbnQgKyAxOwotICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbmV4dCA9ICgobmV4dCA9PSAxMDMpID8gJ2Un
IDogJ0UnKS5jaGFyQ29kZUF0KDApOwotICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb24tLTsK
LSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGVmZmVjdGl2ZVByZWNpc2lv
biA9IE1hdGgubWluKHByZWNpc2lvbiwgMjApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBpZiAobmV4dCA9PSAxMDEgfHwgbmV4dCA9PSA2OSkgewotICAgICAgICAgICAgICAg
ICAgYXJnVGV4dCA9IGN1cnJBcmcudG9FeHBvbmVudGlhbChlZmZlY3RpdmVQcmVjaXNpb24pOwot
ICAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBleHBvbmVudCBoYXMgYXQgbGVhc3Qg
MiBkaWdpdHMuCi0gICAgICAgICAgICAgICAgICBpZiAoL1tlRV1bLStdXGQkLy50ZXN0KGFyZ1Rl
eHQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBhcmdUZXh0LnNsaWNlKDAsIC0x
KSArICcwJyArIGFyZ1RleHQuc2xpY2UoLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMDIgfHwgbmV4dCA9PSA3MCkgewotICAgICAg
ICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBcmcudG9GaXhlZChlZmZlY3RpdmVQcmVjaXNpb24p
OwotICAgICAgICAgICAgICAgICAgaWYgKGN1cnJBcmcgPT09IDAgJiYgX19yZWFsbHlOZWdhdGl2
ZShjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJy0nICsgYXJnVGV4
dDsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgdmFyIHBhcnRzID0gYXJnVGV4dC5zcGxpdCgnZScpOwotICAgICAgICAgICAgICAgIGlmIChp
c0dlbmVyYWwgJiYgIWZsYWdBbHRlcm5hdGl2ZSkgewotICAgICAgICAgICAgICAgICAgLy8gRGlz
Y2FyZCB0cmFpbGluZyB6ZXJvcyBhbmQgcGVyaW9kcy4KLSAgICAgICAgICAgICAgICAgIHdoaWxl
IChwYXJ0c1swXS5sZW5ndGggPiAxICYmIHBhcnRzWzBdLmluZGV4T2YoJy4nKSAhPSAtMSAmJgot
ICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJ0c1swXS5zbGljZSgtMSkgPT0gJzAnIHx8IHBh
cnRzWzBdLnNsaWNlKC0xKSA9PSAnLicpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhcnRzWzBd
ID0gcGFydHNbMF0uc2xpY2UoMCwgLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSBh
IHBlcmlvZCBpbiBhbHRlcm5hdGl2ZSBtb2RlLgotICAgICAgICAgICAgICAgICAgaWYgKGZsYWdB
bHRlcm5hdGl2ZSAmJiBhcmdUZXh0LmluZGV4T2YoJy4nKSA9PSAtMSkgcGFydHNbMF0gKz0gJy4n
OwotICAgICAgICAgICAgICAgICAgLy8gWmVybyBwYWQgdW50aWwgcmVxdWlyZWQgcHJlY2lzaW9u
LgotICAgICAgICAgICAgICAgICAgd2hpbGUgKHByZWNpc2lvbiA+IGVmZmVjdGl2ZVByZWNpc2lv
bisrKSBwYXJ0c1swXSArPSAnMCc7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IGFyZ1RleHQgPSBwYXJ0c1swXSArIChwYXJ0cy5sZW5ndGggPiAxID8gJ2UnICsgcGFydHNbMV0g
OiAnJyk7Ci0gICAgICAgICAgICAgICAgLy8gQ2FwaXRhbGl6ZSAnRScgaWYgbmVlZGVkLgotICAg
ICAgICAgICAgICAgIGlmIChuZXh0ID09IDY5KSBhcmdUZXh0ID0gYXJnVGV4dC50b1VwcGVyQ2Fz
ZSgpOwotICAgICAgICAgICAgICAgIC8vIEFkZCBzaWduLgotICAgICAgICAgICAgICAgIGlmIChm
bGFnQWx3YXlzU2lnbmVkICYmIGN1cnJBcmcgPj0gMCkgewotICAgICAgICAgICAgICAgICAgYXJn
VGV4dCA9ICcrJyArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nLgotICAgICAgICAgICAgICB3aGlsZSAoYXJn
VGV4dC5sZW5ndGggPCB3aWR0aCkgewotICAgICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWdu
KSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9ICcgJzsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFkICYmIChhcmdUZXh0WzBd
ID09ICctJyB8fCBhcmdUZXh0WzBdID09ICcrJykpIHsKLSAgICAgICAgICAgICAgICAgICAgYXJn
VGV4dCA9IGFyZ1RleHRbMF0gKyAnMCcgKyBhcmdUZXh0LnNsaWNlKDEpOwotICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChmbGFnWmVyb1Bh
ZCA/ICcwJyA6ICcgJykgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBBZGp1c3QgY2FzZS4K
LSAgICAgICAgICAgICAgaWYgKG5leHQgPCA5NykgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBlckNh
c2UoKTsKLSAgICAgICAgICAgICAgLy8gSW5zZXJ0IHRoZSByZXN1bHQgaW50byB0aGUgYnVmZmVy
LgotICAgICAgICAgICAgICBhcmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNocikg
ewotICAgICAgICAgICAgICAgIHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgY2FzZSAncyc6IHsKLSAgICAgICAgICAgICAgLy8gU3RyaW5nLgotICAgICAgICAgICAgICB2
YXIgYXJnID0gZ2V0TmV4dEFyZygnaTgqJyk7Ci0gICAgICAgICAgICAgIHZhciBhcmdMZW5ndGgg
PSBhcmcgPyBfc3RybGVuKGFyZykgOiAnKG51bGwpJy5sZW5ndGg7Ci0gICAgICAgICAgICAgIGlm
IChwcmVjaXNpb25TZXQpIGFyZ0xlbmd0aCA9IE1hdGgubWluKGFyZ0xlbmd0aCwgcHJlY2lzaW9u
KTsKLSAgICAgICAgICAgICAgaWYgKCFmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAg
d2hpbGUgKGFyZ0xlbmd0aCA8IHdpZHRoLS0pIHsKLSAgICAgICAgICAgICAgICAgIHJldC5wdXNo
KDMyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
aWYgKGFyZykgewotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJnTGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKEhFQVBVOFsoKGFyZysrKXwwKV0p
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICByZXQgPSByZXQuY29uY2F0KGludEFycmF5RnJvbVN0cmluZygnKG51bGwpJy5zdWJzdHIo
MCwgYXJnTGVuZ3RoKSwgdHJ1ZSkpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlm
IChmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ0xlbmd0aCA8IHdp
ZHRoLS0pIHsKLSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKDMyKTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBjYXNlICdjJzogewotICAgICAgICAgICAgICAvLyBDaGFyYWN0ZXIuCi0g
ICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSByZXQucHVzaChnZXROZXh0QXJnKCdpOCcp
KTsKLSAgICAgICAgICAgICAgd2hpbGUgKC0td2lkdGggPiAwKSB7Ci0gICAgICAgICAgICAgICAg
cmV0LnB1c2goMzIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmICghZmxhZ0xl
ZnRBbGlnbikgcmV0LnB1c2goZ2V0TmV4dEFyZygnaTgnKSk7Ci0gICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnbic6IHsKLSAgICAgICAgICAgICAg
Ly8gV3JpdGUgdGhlIGxlbmd0aCB3cml0dGVuIHNvIGZhciB0byB0aGUgbmV4dCBwYXJhbWV0ZXIu
Ci0gICAgICAgICAgICAgIHZhciBwdHIgPSBnZXROZXh0QXJnKCdpMzIqJyk7Ci0gICAgICAgICAg
ICAgIEhFQVAzMlsoKHB0cik+PjIpXT1yZXQubGVuZ3RoCi0gICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnJSc6IHsKLSAgICAgICAgICAgICAgLy8g
TGl0ZXJhbCBwZXJjZW50IHNpZ24uCi0gICAgICAgICAgICAgIHJldC5wdXNoKGN1cnIpOwotICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRlZmF1bHQ6IHsK
LSAgICAgICAgICAgICAgLy8gVW5rbm93biBzcGVjaWZpZXJzIHJlbWFpbiB1bnRvdWNoZWQuCi0g
ICAgICAgICAgICAgIGZvciAodmFyIGkgPSBzdGFydFRleHRJbmRleDsgaSA8IHRleHRJbmRleCAr
IDI7IGkrKykgewotICAgICAgICAgICAgICAgIHJldC5wdXNoKEhFQVA4WyhpKV0pOwotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHRleHRJbmRl
eCArPSAyOwotICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQgYS9BIChoZXggZmxvYXQpIGFuZCBt
IChsYXN0IGVycm9yKSBzcGVjaWZpZXJzLgotICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQgJTEk
e3NwZWNpZmllcn0gZm9yIGFyZyBzZWxlY3Rpb24uCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgcmV0LnB1c2goY3Vycik7Ci0gICAgICAgICAgdGV4dEluZGV4ICs9IDE7Ci0gICAgICAgIH0K
LSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfWZ1bmN0aW9uIF9zbnByaW50ZihzLCBu
LCBmb3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzbnByaW50ZihjaGFyICpyZXN0cmlj
dCBzLCBzaXplX3QgbiwgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCAuLi4pOwotICAgICAg
Ly8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlv
bnMvcHJpbnRmLmh0bWwKLSAgICAgIHZhciByZXN1bHQgPSBfX2Zvcm1hdFN0cmluZyhmb3JtYXQs
IHZhcmFyZ3MpOwotICAgICAgdmFyIGxpbWl0ID0gKG4gPT09IHVuZGVmaW5lZCkgPyByZXN1bHQu
bGVuZ3RoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE1hdGgubWluKHJl
c3VsdC5sZW5ndGgsIE1hdGgubWF4KG4gLSAxLCAwKSk7Ci0gICAgICBpZiAocyA8IDApIHsKLSAg
ICAgICAgcyA9IC1zOwotICAgICAgICB2YXIgYnVmID0gX21hbGxvYyhsaW1pdCsxKTsKLSAgICAg
ICAgSEVBUDMyWygocyk+PjIpXT1idWY7Ci0gICAgICAgIHMgPSBidWY7Ci0gICAgICB9Ci0gICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbWl0OyBpKyspIHsKLSAgICAgICAgSEVBUDhbKCgocykr
KGkpKXwwKV09cmVzdWx0W2ldOwotICAgICAgfQotICAgICAgaWYgKGxpbWl0IDwgbiB8fCAobiA9
PT0gdW5kZWZpbmVkKSkgSEVBUDhbKCgocykrKGkpKXwwKV09MDsKLSAgICAgIHJldHVybiByZXN1
bHQubGVuZ3RoOwotICAgIH0KLSAgZnVuY3Rpb24gX3N5c2NvbmYobmFtZSkgewotICAgICAgLy8g
bG9uZyBzeXNjb25mKGludCBuYW1lKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5v
cmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3N5c2NvbmYuaHRtbAotICAgICAgc3dp
dGNoKG5hbWUpIHsKLSAgICAgICAgY2FzZSA4OiByZXR1cm4gUEFHRV9TSVpFOwotICAgICAgICBj
YXNlIDU0OgotICAgICAgICBjYXNlIDU2OgotICAgICAgICBjYXNlIDIxOgotICAgICAgICBjYXNl
IDYxOgotICAgICAgICBjYXNlIDYzOgotICAgICAgICBjYXNlIDIyOgotICAgICAgICBjYXNlIDY3
OgotICAgICAgICBjYXNlIDIzOgotICAgICAgICBjYXNlIDI0OgotICAgICAgICBjYXNlIDI1Ogot
ICAgICAgICBjYXNlIDI2OgotICAgICAgICBjYXNlIDI3OgotICAgICAgICBjYXNlIDY5OgotICAg
ICAgICBjYXNlIDI4OgotICAgICAgICBjYXNlIDEwMToKLSAgICAgICAgY2FzZSA3MDoKLSAgICAg
ICAgY2FzZSA3MToKLSAgICAgICAgY2FzZSAyOToKLSAgICAgICAgY2FzZSAzMDoKLSAgICAgICAg
Y2FzZSAxOTk6Ci0gICAgICAgIGNhc2UgNzU6Ci0gICAgICAgIGNhc2UgNzY6Ci0gICAgICAgIGNh
c2UgMzI6Ci0gICAgICAgIGNhc2UgNDM6Ci0gICAgICAgIGNhc2UgNDQ6Ci0gICAgICAgIGNhc2Ug
ODA6Ci0gICAgICAgIGNhc2UgNDY6Ci0gICAgICAgIGNhc2UgNDc6Ci0gICAgICAgIGNhc2UgNDU6
Ci0gICAgICAgIGNhc2UgNDg6Ci0gICAgICAgIGNhc2UgNDk6Ci0gICAgICAgIGNhc2UgNDI6Ci0g
ICAgICAgIGNhc2UgODI6Ci0gICAgICAgIGNhc2UgMzM6Ci0gICAgICAgIGNhc2UgNzoKLSAgICAg
ICAgY2FzZSAxMDg6Ci0gICAgICAgIGNhc2UgMTA5OgotICAgICAgICBjYXNlIDEwNzoKLSAgICAg
ICAgY2FzZSAxMTI6Ci0gICAgICAgIGNhc2UgMTE5OgotICAgICAgICBjYXNlIDEyMToKLSAgICAg
ICAgICByZXR1cm4gMjAwODA5OwotICAgICAgICBjYXNlIDEzOgotICAgICAgICBjYXNlIDEwNDoK
LSAgICAgICAgY2FzZSA5NDoKLSAgICAgICAgY2FzZSA5NToKLSAgICAgICAgY2FzZSAzNDoKLSAg
ICAgICAgY2FzZSAzNToKLSAgICAgICAgY2FzZSA3NzoKLSAgICAgICAgY2FzZSA4MToKLSAgICAg
ICAgY2FzZSA4MzoKLSAgICAgICAgY2FzZSA4NDoKLSAgICAgICAgY2FzZSA4NToKLSAgICAgICAg
Y2FzZSA4NjoKLSAgICAgICAgY2FzZSA4NzoKLSAgICAgICAgY2FzZSA4ODoKLSAgICAgICAgY2Fz
ZSA4OToKLSAgICAgICAgY2FzZSA5MDoKLSAgICAgICAgY2FzZSA5MToKLSAgICAgICAgY2FzZSA5
NDoKLSAgICAgICAgY2FzZSA5NToKLSAgICAgICAgY2FzZSAxMTA6Ci0gICAgICAgIGNhc2UgMTEx
OgotICAgICAgICBjYXNlIDExMzoKLSAgICAgICAgY2FzZSAxMTQ6Ci0gICAgICAgIGNhc2UgMTE1
OgotICAgICAgICBjYXNlIDExNjoKLSAgICAgICAgY2FzZSAxMTc6Ci0gICAgICAgIGNhc2UgMTE4
OgotICAgICAgICBjYXNlIDEyMDoKLSAgICAgICAgY2FzZSA0MDoKLSAgICAgICAgY2FzZSAxNjoK
LSAgICAgICAgY2FzZSA3OToKLSAgICAgICAgY2FzZSAxOToKLSAgICAgICAgICByZXR1cm4gLTE7
Ci0gICAgICAgIGNhc2UgOTI6Ci0gICAgICAgIGNhc2UgOTM6Ci0gICAgICAgIGNhc2UgNToKLSAg
ICAgICAgY2FzZSA3MjoKLSAgICAgICAgY2FzZSA2OgotICAgICAgICBjYXNlIDc0OgotICAgICAg
ICBjYXNlIDkyOgotICAgICAgICBjYXNlIDkzOgotICAgICAgICBjYXNlIDk2OgotICAgICAgICBj
YXNlIDk3OgotICAgICAgICBjYXNlIDk4OgotICAgICAgICBjYXNlIDk5OgotICAgICAgICBjYXNl
IDEwMjoKLSAgICAgICAgY2FzZSAxMDM6Ci0gICAgICAgIGNhc2UgMTA1OgotICAgICAgICAgIHJl
dHVybiAxOwotICAgICAgICBjYXNlIDM4OgotICAgICAgICBjYXNlIDY2OgotICAgICAgICBjYXNl
IDUwOgotICAgICAgICBjYXNlIDUxOgotICAgICAgICBjYXNlIDQ6Ci0gICAgICAgICAgcmV0dXJu
IDEwMjQ7Ci0gICAgICAgIGNhc2UgMTU6Ci0gICAgICAgIGNhc2UgNjQ6Ci0gICAgICAgIGNhc2Ug
NDE6Ci0gICAgICAgICAgcmV0dXJuIDMyOwotICAgICAgICBjYXNlIDU1OgotICAgICAgICBjYXNl
IDM3OgotICAgICAgICBjYXNlIDE3OgotICAgICAgICAgIHJldHVybiAyMTQ3NDgzNjQ3OwotICAg
ICAgICBjYXNlIDE4OgotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgcmV0dXJuIDQ3ODM5Owot
ICAgICAgICBjYXNlIDU5OgotICAgICAgICBjYXNlIDU3OgotICAgICAgICAgIHJldHVybiA5OTsK
LSAgICAgICAgY2FzZSA2ODoKLSAgICAgICAgY2FzZSA1ODoKLSAgICAgICAgICByZXR1cm4gMjA0
ODsKLSAgICAgICAgY2FzZSAwOiByZXR1cm4gMjA5NzE1MjsKLSAgICAgICAgY2FzZSAzOiByZXR1
cm4gNjU1MzY7Ci0gICAgICAgIGNhc2UgMTQ6IHJldHVybiAzMjc2ODsKLSAgICAgICAgY2FzZSA3
MzogcmV0dXJuIDMyNzY3OwotICAgICAgICBjYXNlIDM5OiByZXR1cm4gMTYzODQ7Ci0gICAgICAg
IGNhc2UgNjA6IHJldHVybiAxMDAwOwotICAgICAgICBjYXNlIDEwNjogcmV0dXJuIDcwMDsKLSAg
ICAgICAgY2FzZSA1MjogcmV0dXJuIDI1NjsKLSAgICAgICAgY2FzZSA2MjogcmV0dXJuIDI1NTsK
LSAgICAgICAgY2FzZSAyOiByZXR1cm4gMTAwOwotICAgICAgICBjYXNlIDY1OiByZXR1cm4gNjQ7
Ci0gICAgICAgIGNhc2UgMzY6IHJldHVybiAyMDsKLSAgICAgICAgY2FzZSAxMDA6IHJldHVybiAx
NjsKLSAgICAgICAgY2FzZSAyMDogcmV0dXJuIDY7Ci0gICAgICAgIGNhc2UgNTM6IHJldHVybiA0
OwotICAgICAgICBjYXNlIDEwOiByZXR1cm4gMTsKLSAgICAgIH0KLSAgICAgIF9fX3NldEVyck5v
KEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotICBmdW5jdGlv
biBfX19jeGFfZ3VhcmRfYWJvcnQoKSB7fQotICBmdW5jdGlvbiBfaXN4ZGlnaXQoY2hyKSB7Ci0g
ICAgICByZXR1cm4gKGNociA+PSA0OCAmJiBjaHIgPD0gNTcpIHx8Ci0gICAgICAgICAgICAgKGNo
ciA+PSA5NyAmJiBjaHIgPD0gMTAyKSB8fAotICAgICAgICAgICAgIChjaHIgPj0gNjUgJiYgY2hy
IDw9IDcwKTsKLSAgICB9dmFyIF9pc3hkaWdpdF9sPV9pc3hkaWdpdDsKLSAgZnVuY3Rpb24gX2lz
ZGlnaXQoY2hyKSB7Ci0gICAgICByZXR1cm4gY2hyID49IDQ4ICYmIGNociA8PSA1NzsKLSAgICB9
dmFyIF9pc2RpZ2l0X2w9X2lzZGlnaXQ7Ci0gIGZ1bmN0aW9uIF9faXNGbG9hdCh0ZXh0KSB7Ci0g
ICAgICByZXR1cm4gISEoL15bKy1dP1swLTldKlwuP1swLTldKyhbZUVdWystXT9bMC05XSspPyQv
LmV4ZWModGV4dCkpOwotICAgIH1mdW5jdGlvbiBfX3NjYW5TdHJpbmcoZm9ybWF0LCBnZXQsIHVu
Z2V0LCB2YXJhcmdzKSB7Ci0gICAgICBpZiAoIV9fc2NhblN0cmluZy53aGl0ZVNwYWNlKSB7Ci0g
ICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlID0ge307Ci0gICAgICAgIF9fc2NhblN0cmlu
Zy53aGl0ZVNwYWNlWzMyXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWzld
ID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTBdID0gMTsKLSAgICAgICAg
X19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTFdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndo
aXRlU3BhY2VbMTJdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTNdID0g
MTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJyAnXSA9IDE7Ci0gICAgICAgIF9f
c2NhblN0cmluZy53aGl0ZVNwYWNlWydcdCddID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndo
aXRlU3BhY2VbJ1xuJ10gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsnXHYn
XSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcZiddID0gMTsKLSAgICAg
ICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJ1xyJ10gPSAxOwotICAgICAgfQotICAgICAgLy8g
U3VwcG9ydHMgJXgsICU0eCwgJWQuJWQsICVsbGQsICVzLCAlZiwgJWxmLgotICAgICAgLy8gVE9E
TzogU3VwcG9ydCBhbGwgZm9ybWF0IHNwZWNpZmllcnMuCi0gICAgICBmb3JtYXQgPSBQb2ludGVy
X3N0cmluZ2lmeShmb3JtYXQpOwotICAgICAgdmFyIHNvRmFyID0gMDsKLSAgICAgIGlmIChmb3Jt
YXQuaW5kZXhPZignJW4nKSA+PSAwKSB7Ci0gICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgc29GYXIK
LSAgICAgICAgdmFyIF9nZXQgPSBnZXQ7Ci0gICAgICAgIGdldCA9IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIHNvRmFyKys7Ci0gICAgICAgICAgcmV0dXJuIF9nZXQoKTsKLSAgICAgICAgfQotICAg
ICAgICB2YXIgX3VuZ2V0ID0gdW5nZXQ7Ci0gICAgICAgIHVuZ2V0ID0gZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgc29GYXItLTsKLSAgICAgICAgICByZXR1cm4gX3VuZ2V0KCk7Ci0gICAgICAgIH0K
LSAgICAgIH0KLSAgICAgIHZhciBmb3JtYXRJbmRleCA9IDA7Ci0gICAgICB2YXIgYXJnc2kgPSAw
OwotICAgICAgdmFyIGZpZWxkcyA9IDA7Ci0gICAgICB2YXIgYXJnSW5kZXggPSAwOwotICAgICAg
dmFyIG5leHQ7Ci0gICAgICBtYWluTG9vcDoKLSAgICAgIGZvciAodmFyIGZvcm1hdEluZGV4ID0g
MDsgZm9ybWF0SW5kZXggPCBmb3JtYXQubGVuZ3RoOykgewotICAgICAgICBpZiAoZm9ybWF0W2Zv
cm1hdEluZGV4XSA9PT0gJyUnICYmIGZvcm1hdFtmb3JtYXRJbmRleCsxXSA9PSAnbicpIHsKLSAg
ICAgICAgICB2YXIgYXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07
Ci0gICAgICAgICAgYXJnSW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywgbnVs
bCwgdHJ1ZSk7Ci0gICAgICAgICAgSEVBUDMyWygoYXJnUHRyKT4+MildPXNvRmFyOwotICAgICAg
ICAgIGZvcm1hdEluZGV4ICs9IDI7Ci0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT09ICclJykgewotICAgICAgICAgIHZhciBu
ZXh0QyA9IGZvcm1hdC5pbmRleE9mKCdjJywgZm9ybWF0SW5kZXgrMSk7Ci0gICAgICAgICAgaWYg
KG5leHRDID4gMCkgewotICAgICAgICAgICAgdmFyIG1heHggPSAxOwotICAgICAgICAgICAgaWYg
KG5leHRDID4gZm9ybWF0SW5kZXgrMSkgewotICAgICAgICAgICAgICB2YXIgc3ViID0gZm9ybWF0
LnN1YnN0cmluZyhmb3JtYXRJbmRleCsxLCBuZXh0QykKLSAgICAgICAgICAgICAgbWF4eCA9IHBh
cnNlSW50KHN1Yik7Ci0gICAgICAgICAgICAgIGlmIChtYXh4ICE9IHN1YikgbWF4eCA9IDA7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobWF4eCkgewotICAgICAgICAgICAgICB2YXIg
YXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07Ci0gICAgICAgICAg
ICAgIGFyZ0luZGV4ICs9IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKCd2b2lkKicsIG51bGwsIHRydWUp
OwotICAgICAgICAgICAgICBmaWVsZHMrKzsKLSAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBtYXh4OyBpKyspIHsKLSAgICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAg
ICAgICAgICAgSEVBUDhbKChhcmdQdHIrKyl8MCldPW5leHQ7Ci0gICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgZm9ybWF0SW5kZXggKz0gbmV4dEMgLSBmb3JtYXRJbmRleCArIDE7Ci0gICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICAvLyByZW1vdmUgd2hpdGVzcGFjZQotICAgICAgICB3aGlsZSAoMSkgewotICAg
ICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICBpZiAobmV4dCA9PSAwKSByZXR1cm4gZmll
bGRzOwotICAgICAgICAgIGlmICghKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpKSBi
cmVhazsKLSAgICAgICAgfQotICAgICAgICB1bmdldCgpOwotICAgICAgICBpZiAoZm9ybWF0W2Zv
cm1hdEluZGV4XSA9PT0gJyUnKSB7Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAg
ICB2YXIgc3VwcHJlc3NBc3NpZ25tZW50ID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKGZvcm1hdFtm
b3JtYXRJbmRleF0gPT0gJyonKSB7Ci0gICAgICAgICAgICBzdXBwcmVzc0Fzc2lnbm1lbnQgPSB0
cnVlOwotICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICB9Ci0gICAgICAgICAg
dmFyIG1heFNwZWNpZmllclN0YXJ0ID0gZm9ybWF0SW5kZXg7Ci0gICAgICAgICAgd2hpbGUgKGZv
cm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSA+PSA0OCAmJgotICAgICAgICAgICAgICAg
ICBmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkgPD0gNTcpIHsKLSAgICAgICAgICAg
IGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBtYXhfOwotICAgICAg
ICAgIGlmIChmb3JtYXRJbmRleCAhPSBtYXhTcGVjaWZpZXJTdGFydCkgewotICAgICAgICAgICAg
bWF4XyA9IHBhcnNlSW50KGZvcm1hdC5zbGljZShtYXhTcGVjaWZpZXJTdGFydCwgZm9ybWF0SW5k
ZXgpLCAxMCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBsb25nXyA9IGZhbHNlOwotICAg
ICAgICAgIHZhciBoYWxmID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGxvbmdMb25nID0gZmFsc2U7
Ci0gICAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2wnKSB7Ci0gICAgICAgICAg
ICBsb25nXyA9IHRydWU7Ci0gICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgICAg
aWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2wnKSB7Ci0gICAgICAgICAgICAgIGxvbmdMb25n
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2gnKSB7Ci0gICAgICAg
ICAgICBoYWxmID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAg
fQotICAgICAgICAgIHZhciB0eXBlID0gZm9ybWF0W2Zvcm1hdEluZGV4XTsKLSAgICAgICAgICBm
b3JtYXRJbmRleCsrOwotICAgICAgICAgIHZhciBjdXJyID0gMDsKLSAgICAgICAgICB2YXIgYnVm
ZmVyID0gW107Ci0gICAgICAgICAgLy8gUmVhZCBjaGFyYWN0ZXJzIGFjY29yZGluZyB0byB0aGUg
Zm9ybWF0LiBmbG9hdHMgYXJlIHRyaWNraWVyLCB0aGV5IG1heSBiZSBpbiBhbiB1bmZsb2F0IHN0
YXRlIGluIHRoZSBtaWRkbGUsIHRoZW4gYmUgYSB2YWxpZCBmbG9hdCBsYXRlcgotICAgICAgICAg
IGlmICh0eXBlID09ICdmJyB8fCB0eXBlID09ICdlJyB8fCB0eXBlID09ICdnJyB8fAotICAgICAg
ICAgICAgICB0eXBlID09ICdGJyB8fCB0eXBlID09ICdFJyB8fCB0eXBlID09ICdHJykgewotICAg
ICAgICAgICAgdmFyIGxhc3QgPSAwOwotICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAg
ICAgICAgd2hpbGUgKG5leHQgPiAwKSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKFN0cmlu
Zy5mcm9tQ2hhckNvZGUobmV4dCkpOwotICAgICAgICAgICAgICBpZiAoX19pc0Zsb2F0KGJ1ZmZl
ci5qb2luKCcnKSkpIHsKLSAgICAgICAgICAgICAgICBsYXN0ID0gYnVmZmVyLmxlbmd0aDsKLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZmZlci5sZW5ndGggLSBsYXN0ICsg
MTsgaSsrKSB7Ci0gICAgICAgICAgICAgIHVuZ2V0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBidWZmZXIubGVuZ3RoID0gbGFzdDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgICAgdmFyIGZpcnN0ID0gdHJ1ZTsKLSAgICAgICAg
ICAgIHdoaWxlICgoY3VyciA8IG1heF8gfHwgaXNOYU4obWF4XykpICYmIG5leHQgPiAwKSB7Ci0g
ICAgICAgICAgICAgIGlmICghKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpICYmIC8v
IHN0b3Agb24gd2hpdGVzcGFjZQotICAgICAgICAgICAgICAgICAgKHR5cGUgPT0gJ3MnIHx8Ci0g
ICAgICAgICAgICAgICAgICAgKCh0eXBlID09PSAnZCcgfHwgdHlwZSA9PSAndScgfHwgdHlwZSA9
PSAnaScpICYmICgobmV4dCA+PSA0OCAmJiBuZXh0IDw9IDU3KSB8fAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZp
cnN0ICYmIG5leHQgPT0gNDUpKSkgfHwKLSAgICAgICAgICAgICAgICAgICAoKHR5cGUgPT09ICd4
JyB8fCB0eXBlID09PSAnWCcpICYmIChuZXh0ID49IDQ4ICYmIG5leHQgPD0gNTcgfHwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0ID49IDk3ICYmIG5leHQgPD0gMTAy
IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA+PSA2NSAmJiBu
ZXh0IDw9IDcwKSkpICYmCi0gICAgICAgICAgICAgICAgICAoZm9ybWF0SW5kZXggPj0gZm9ybWF0
Lmxlbmd0aCB8fCBuZXh0ICE9PSBmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkpKSB7
IC8vIFN0b3Agd2hlbiB3ZSByZWFkIHNvbWV0aGluZyB0aGF0IGlzIGNvbWluZyB1cAotICAgICAg
ICAgICAgICAgIGJ1ZmZlci5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpOwotICAgICAg
ICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICAgICAgICBjdXJyKys7Ci0gICAgICAg
ICAgICAgICAgZmlyc3QgPSBmYWxzZTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgdW5nZXQoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGggPT09
IDApIHJldHVybiAwOyAgLy8gRmFpbHVyZS4KLSAgICAgICAgICBpZiAoc3VwcHJlc3NBc3NpZ25t
ZW50KSBjb250aW51ZTsKLSAgICAgICAgICB2YXIgdGV4dCA9IGJ1ZmZlci5qb2luKCcnKTsKLSAg
ICAgICAgICB2YXIgYXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07
Ci0gICAgICAgICAgYXJnSW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywgbnVs
bCwgdHJ1ZSk7Ci0gICAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgICAgICBjYXNlICdk
JzogY2FzZSAndSc6IGNhc2UgJ2knOgotICAgICAgICAgICAgICBpZiAoaGFsZikgewotICAgICAg
ICAgICAgICAgIEhFQVAxNlsoKGFyZ1B0cik+PjEpXT1wYXJzZUludCh0ZXh0LCAxMCk7Ci0gICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobG9uZ0xvbmcpIHsKLSAgICAgICAgICAgICAgICAodGVtcEk2
NCA9IFtwYXJzZUludCh0ZXh0LCAxMCk+Pj4wLCh0ZW1wRG91YmxlPXBhcnNlSW50KHRleHQsIDEw
KSwoKyhNYXRoLmFicyh0ZW1wRG91YmxlKSkpID49ICgrKDEpKSA/ICh0ZW1wRG91YmxlID4gKCso
MCkpID8gKChNYXRoLm1pbigoKyhNYXRoLmZsb29yKCh0ZW1wRG91YmxlKS8oKyg0Mjk0OTY3Mjk2
KSkpKSksICgrKDQyOTQ5NjcyOTUpKSkpfDApPj4+MCA6ICh+figoKyhNYXRoLmNlaWwoKHRlbXBE
b3VibGUgLSArKCgofn4odGVtcERvdWJsZSkpKT4+PjApKS8oKyg0Mjk0OTY3Mjk2KSkpKSkpKT4+
PjApIDogMCldLEhFQVAzMlsoKGFyZ1B0cik+PjIpXT10ZW1wSTY0WzBdLEhFQVAzMlsoKChhcmdQ
dHIpKyg0KSk+PjIpXT10ZW1wSTY0WzFdKTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBIRUFQMzJbKChhcmdQdHIpPj4yKV09cGFyc2VJbnQodGV4dCwgMTApOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAnWCc6
Ci0gICAgICAgICAgICBjYXNlICd4JzoKLSAgICAgICAgICAgICAgSEVBUDMyWygoYXJnUHRyKT4+
MildPXBhcnNlSW50KHRleHQsIDE2KQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IGNhc2UgJ0YnOgotICAgICAgICAgICAgY2FzZSAnZic6Ci0gICAgICAgICAgICBjYXNlICdFJzoK
LSAgICAgICAgICAgIGNhc2UgJ2UnOgotICAgICAgICAgICAgY2FzZSAnRyc6Ci0gICAgICAgICAg
ICBjYXNlICdnJzoKLSAgICAgICAgICAgIGNhc2UgJ0UnOgotICAgICAgICAgICAgICAvLyBmYWxs
dGhyb3VnaCBpbnRlbmRlZAotICAgICAgICAgICAgICBpZiAobG9uZ18pIHsKLSAgICAgICAgICAg
ICAgICBIRUFQRjY0WygoYXJnUHRyKT4+MyldPXBhcnNlRmxvYXQodGV4dCkKLSAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBIRUFQRjMyWygoYXJnUHRyKT4+MildPXBhcnNl
RmxvYXQodGV4dCkKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGNhc2UgJ3MnOgotICAgICAgICAgICAgICB2YXIgYXJyYXkgPSBpbnRBcnJheUZyb21T
dHJpbmcodGV4dCk7Ci0gICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXJyYXkubGVu
Z3RoOyBqKyspIHsKLSAgICAgICAgICAgICAgICBIRUFQOFsoKChhcmdQdHIpKyhqKSl8MCldPWFy
cmF5W2pdCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
fQotICAgICAgICAgIGZpZWxkcysrOwotICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdFtmb3JtYXRJ
bmRleF0gaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpIHsKLSAgICAgICAgICBuZXh0ID0gZ2V0
KCk7Ci0gICAgICAgICAgd2hpbGUgKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpIHsK
LSAgICAgICAgICAgIGlmIChuZXh0IDw9IDApIGJyZWFrIG1haW5Mb29wOyAgLy8gRW5kIG9mIGlu
cHV0LgotICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgIH0KLSAgICAgICAgICB1
bmdldChuZXh0KTsKLSAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgIC8vIE5vdCBhIHNwZWNpZmllci4KLSAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0g
ICAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSAhPT0gbmV4dCkg
ewotICAgICAgICAgICAgdW5nZXQobmV4dCk7Ci0gICAgICAgICAgICBicmVhayBtYWluTG9vcDsK
LSAgICAgICAgICB9Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgfQotICAgICAg
fQotICAgICAgcmV0dXJuIGZpZWxkczsKLSAgICB9ZnVuY3Rpb24gX3NzY2FuZihzLCBmb3JtYXQs
IHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzc2NhbmYoY29uc3QgY2hhciAqcmVzdHJpY3Qgcywg
Y29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCAuLi4gKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJz
Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3NjYW5mLmh0bWwK
LSAgICAgIHZhciBpbmRleCA9IDA7Ci0gICAgICB2YXIgZ2V0ID0gZnVuY3Rpb24oKSB7IHJldHVy
biBIRUFQOFsoKChzKSsoaW5kZXgrKykpfDApXTsgfTsKLSAgICAgIHZhciB1bmdldCA9IGZ1bmN0
aW9uKCkgeyBpbmRleC0tOyB9OwotICAgICAgcmV0dXJuIF9fc2NhblN0cmluZyhmb3JtYXQsIGdl
dCwgdW5nZXQsIHZhcmFyZ3MpOwotICAgIH0KLSAgZnVuY3Rpb24gX19aN2NhdG9wZW5QS2NpKCkg
eyB0aHJvdyAnY2F0b3BlbiBub3QgaW1wbGVtZW50ZWQnIH0KLSAgZnVuY3Rpb24gX19aN2NhdGdl
dHNQOF9ubF9jYXRkaWlQS2MoKSB7IHRocm93ICdjYXRnZXRzIG5vdCBpbXBsZW1lbnRlZCcgfQot
ICBmdW5jdGlvbiBfX1o4Y2F0Y2xvc2VQOF9ubF9jYXRkKCkgeyB0aHJvdyAnY2F0Y2xvc2Ugbm90
IGltcGxlbWVudGVkJyB9Ci0gIGZ1bmN0aW9uIF9uZXdsb2NhbGUobWFzaywgbG9jYWxlLCBiYXNl
KSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9mcmVlbG9jYWxlKGxvY2Fs
ZSkge30KLSAgZnVuY3Rpb24gX19fY3R5cGVfYl9sb2MoKSB7Ci0gICAgICAvLyBodHRwOi8vcmVm
c3BlY3MuZnJlZXN0YW5kYXJkcy5vcmcvTFNCXzMuMC4wL0xTQi1Db3JlLWdlbmVyaWMvTFNCLUNv
cmUtZ2VuZXJpYy9iYXNlbGliLS0tY3R5cGUtYi1sb2MuaHRtbAotICAgICAgdmFyIG1lID0gX19f
Y3R5cGVfYl9sb2M7Ci0gICAgICBpZiAoIW1lLnJldCkgewotICAgICAgICB2YXIgdmFsdWVzID0g
WwotICAgICAgICAgIDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAgICAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsCi0gICAgICAgICAgMCwwLDAsMCwwLDAs
MCwwLDAsMCwyLDIsMiwyLDIsMiwyLDIsMiw4MTk1LDgxOTQsODE5NCw4MTk0LDgxOTQsMiwyLDIs
MiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMjQ1NzcsNDkxNTYsNDkxNTYsNDkxNTYsCi0g
ICAgICAgICAgNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYs
NDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQsNTUz
MDQsNTUzMDQsNTUzMDQsCi0gICAgICAgICAgNTUzMDQsNTUzMDQsNDkxNTYsNDkxNTYsNDkxNTYs
NDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1
MzYsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsCi0gICAgICAgICAgNTA0NDAsNTA0NDAs
NTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0
NDAsNTA0NDAsNTA0NDAsNTA0NDAsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsCi0gICAg
ICAgICAgNDkxNTYsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTA2OTYsNTA2
OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYs
NTA2OTYsNTA2OTYsCi0gICAgICAgICAgNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2
OTYsNTA2OTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLAotICAgICAgICAgIDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAgICAw
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAKLSAgICAgICAgXTsKLSAgICAgICAgdmFyIGkx
NnNpemUgPSAyOwotICAgICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICogaTE2
c2l6ZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7
Ci0gICAgICAgICAgSEVBUDE2WygoKGFycikrKGkgKiBpMTZzaXplKSk+PjEpXT12YWx1ZXNbaV0K
LSAgICAgICAgfQotICAgICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTE2c2l6
ZV0sICdpMTYqJywgQUxMT0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5yZXQ7
Ci0gICAgfQotICBmdW5jdGlvbiBfX19jdHlwZV90b2xvd2VyX2xvYygpIHsKLSAgICAgIC8vIGh0
dHA6Ly9yZWZzcGVjcy5mcmVlc3RhbmRhcmRzLm9yZy9MU0JfMy4xLjEvTFNCLUNvcmUtZ2VuZXJp
Yy9MU0ItQ29yZS1nZW5lcmljL2xpYnV0aWwtLS1jdHlwZS10b2xvd2VyLWxvYy5odG1sCi0gICAg
ICB2YXIgbWUgPSBfX19jdHlwZV90b2xvd2VyX2xvYzsKLSAgICAgIGlmICghbWUucmV0KSB7Ci0g
ICAgICAgIHZhciB2YWx1ZXMgPSBbCi0gICAgICAgICAgMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMs
MTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0Nywx
NDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsCi0gICAgICAgICAgMTU4LDE1
OSwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTcz
LDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcs
Ci0gICAgICAgICAgMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwx
OTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIx
MywyMTQsMjE1LDIxNiwyMTcsCi0gICAgICAgICAgMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0
LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgs
MjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsCi0gICAgICAgICAgMjQ4LDI0OSwy
NTAsMjUxLDI1MiwyNTMsMjU0LC0xLDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQs
MTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsCi0g
ICAgICAgICAgMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgs
NDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsOTcsOTgsOTks
MTAwLDEwMSwxMDIsMTAzLAotICAgICAgICAgIDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDExMCwx
MTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiw5MSw5Miw5Myw5
NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsCi0gICAgICAgICAgMTA0LDEwNSwxMDYs
MTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwx
MjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxMjcsMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsCi0gICAg
ICAgICAgMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2
LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAs
MTYxLDE2MiwxNjMsCi0gICAgICAgICAgMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwx
NzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4
NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsCi0gICAgICAgICAgMTk0LDE5NSwxOTYsMTk3
LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEs
MjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsCi0gICAgICAg
ICAgMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIz
NywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUx
LDI1MiwyNTMsCi0gICAgICAgICAgMjU0LDI1NQotICAgICAgICBdOwotICAgICAgICB2YXIgaTMy
c2l6ZSA9IDQ7Ci0gICAgICAgIHZhciBhcnIgPSBfbWFsbG9jKHZhbHVlcy5sZW5ndGggKiBpMzJz
aXplKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsK
LSAgICAgICAgICBIRUFQMzJbKCgoYXJyKSsoaSAqIGkzMnNpemUpKT4+MildPXZhbHVlc1tpXQot
ICAgICAgICB9Ci0gICAgICAgIG1lLnJldCA9IGFsbG9jYXRlKFthcnIgKyAxMjggKiBpMzJzaXpl
XSwgJ2kzMionLCBBTExPQ19OT1JNQUwpOwotICAgICAgfQotICAgICAgcmV0dXJuIG1lLnJldDsK
LSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N0eXBlX3RvdXBwZXJfbG9jKCkgewotICAgICAgLy8gaHR0
cDovL3JlZnNwZWNzLmZyZWVzdGFuZGFyZHMub3JnL0xTQl8zLjEuMS9MU0ItQ29yZS1nZW5lcmlj
L0xTQi1Db3JlLWdlbmVyaWMvbGlidXRpbC0tLWN0eXBlLXRvdXBwZXItbG9jLmh0bWwKLSAgICAg
IHZhciBtZSA9IF9fX2N0eXBlX3RvdXBwZXJfbG9jOwotICAgICAgaWYgKCFtZS5yZXQpIHsKLSAg
ICAgICAgdmFyIHZhbHVlcyA9IFsKLSAgICAgICAgICAxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywx
MzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0
OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywKLSAgICAgICAgICAxNTgsMTU5
LDE2MCwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzMs
MTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywK
LSAgICAgICAgICAxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5
OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEz
LDIxNCwyMTUsMjE2LDIxNywKLSAgICAgICAgICAyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQs
MjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwy
MzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywKLSAgICAgICAgICAyNDgsMjQ5LDI1
MCwyNTEsMjUyLDI1MywyNTQsLTEsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwx
NSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwKLSAg
ICAgICAgICAzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0
OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2
OCw2OSw3MCw3MSw3MiwKLSAgICAgICAgICA3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4
Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw2NSw2Niw2Nyw2OCw2OSw3
MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCwKLSAgICAgICAgICA4MSw4Miw4Myw4NCw4
NSw4Niw4Nyw4OCw4OSw5MCwxMjMsMTI0LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwxMzIs
MTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsCi0gICAgICAg
ICAgMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1
OCwxNTksMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcy
LDE3MywxNzQsCi0gICAgICAgICAgMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMs
MTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5Nywx
OTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsCi0gICAgICAgICAgMjA1LDIwNiwyMDcsMjA4LDIw
OSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIz
LDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsCi0gICAgICAgICAg
MjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwy
NDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUKLSAgICAgICAgXTsKLSAgICAgICAgdmFyIGkzMnNp
emUgPSA0OwotICAgICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICogaTMyc2l6
ZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7Ci0g
ICAgICAgICAgSEVBUDMyWygoKGFycikrKGkgKiBpMzJzaXplKSk+PjIpXT12YWx1ZXNbaV0KLSAg
ICAgICAgfQotICAgICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTMyc2l6ZV0s
ICdpMzIqJywgQUxMT0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5yZXQ7Ci0g
ICAgfQotICB2YXIgX19fdG1fc3RydWN0X2xheW91dD17X19zaXplX186NDQsdG1fc2VjOjAsdG1f
bWluOjQsdG1faG91cjo4LHRtX21kYXk6MTIsdG1fbW9uOjE2LHRtX3llYXI6MjAsdG1fd2RheToy
NCx0bV95ZGF5OjI4LHRtX2lzZHN0OjMyLHRtX2dtdG9mZjozNix0bV96b25lOjQwfTsKLSAgZnVu
Y3Rpb24gX19pc0xlYXBZZWFyKHllYXIpIHsKLSAgICAgICAgcmV0dXJuIHllYXIlNCA9PT0gMCAm
JiAoeWVhciUxMDAgIT09IDAgfHwgeWVhciU0MDAgPT09IDApOwotICAgIH0KLSAgZnVuY3Rpb24g
X19hcnJheVN1bShhcnJheSwgaW5kZXgpIHsKLSAgICAgIHZhciBzdW0gPSAwOwotICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPD0gaW5kZXg7IHN1bSArPSBhcnJheVtpKytdKTsKLSAgICAgIHJldHVy
biBzdW07Ci0gICAgfQotICB2YXIgX19NT05USF9EQVlTX0xFQVA9WzMxLDI5LDMxLDMwLDMxLDMw
LDMxLDMxLDMwLDMxLDMwLDMxXTsKLSAgdmFyIF9fTU9OVEhfREFZU19SRUdVTEFSPVszMSwyOCwz
MSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07ZnVuY3Rpb24gX19hZGREYXlzKGRhdGUsIGRh
eXMpIHsKLSAgICAgIHZhciBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpOwotICAg
ICAgd2hpbGUoZGF5cyA+IDApIHsKLSAgICAgICAgdmFyIGxlYXAgPSBfX2lzTGVhcFllYXIobmV3
RGF0ZS5nZXRGdWxsWWVhcigpKTsKLSAgICAgICAgdmFyIGN1cnJlbnRNb250aCA9IG5ld0RhdGUu
Z2V0TW9udGgoKTsKLSAgICAgICAgdmFyIGRheXNJbkN1cnJlbnRNb250aCA9IChsZWFwID8gX19N
T05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUilbY3VycmVudE1vbnRoXTsKLSAg
ICAgICAgaWYgKGRheXMgPiBkYXlzSW5DdXJyZW50TW9udGgtbmV3RGF0ZS5nZXREYXRlKCkpIHsK
LSAgICAgICAgICAvLyB3ZSBzcGlsbCBvdmVyIHRvIG5leHQgbW9udGgKLSAgICAgICAgICBkYXlz
IC09IChkYXlzSW5DdXJyZW50TW9udGgtbmV3RGF0ZS5nZXREYXRlKCkrMSk7Ci0gICAgICAgICAg
bmV3RGF0ZS5zZXREYXRlKDEpOwotICAgICAgICAgIGlmIChjdXJyZW50TW9udGggPCAxMSkgewot
ICAgICAgICAgICAgbmV3RGF0ZS5zZXRNb250aChjdXJyZW50TW9udGgrMSkKLSAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgbmV3RGF0ZS5zZXRNb250aCgwKTsKLSAgICAgICAgICAgIG5l
d0RhdGUuc2V0RnVsbFllYXIobmV3RGF0ZS5nZXRGdWxsWWVhcigpKzEpOwotICAgICAgICAgIH0K
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAvLyB3ZSBzdGF5IGluIGN1cnJlbnQgbW9udGgg
Ci0gICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKG5ld0RhdGUuZ2V0RGF0ZSgpK2RheXMpOwotICAg
ICAgICAgIHJldHVybiBuZXdEYXRlOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4g
bmV3RGF0ZTsKLSAgICB9ZnVuY3Rpb24gX3N0cmZ0aW1lKHMsIG1heHNpemUsIGZvcm1hdCwgdG0p
IHsKLSAgICAgIC8vIHNpemVfdCBzdHJmdGltZShjaGFyICpyZXN0cmljdCBzLCBzaXplX3QgbWF4
c2l6ZSwgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCBjb25zdCBzdHJ1Y3QgdG0gKnJlc3Ry
aWN0IHRpbWVwdHIpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVw
dWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvc3RyZnRpbWUuaHRtbAotICAgICAgdmFyIGRhdGUgPSB7
Ci0gICAgICAgIHRtX3NlYzogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV9z
ZWMpKT4+MildLAotICAgICAgICB0bV9taW46IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9s
YXlvdXQudG1fbWluKSk+PjIpXSwKLSAgICAgICAgdG1faG91cjogSEVBUDMyWygoKHRtKSsoX19f
dG1fc3RydWN0X2xheW91dC50bV9ob3VyKSk+PjIpXSwKLSAgICAgICAgdG1fbWRheTogSEVBUDMy
WygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV9tZGF5KSk+PjIpXSwKLSAgICAgICAgdG1f
bW9uOiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX21vbikpPj4yKV0sCi0g
ICAgICAgIHRtX3llYXI6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1feWVh
cikpPj4yKV0sCi0gICAgICAgIHRtX3dkYXk6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9s
YXlvdXQudG1fd2RheSkpPj4yKV0sCi0gICAgICAgIHRtX3lkYXk6IEhFQVAzMlsoKCh0bSkrKF9f
X3RtX3N0cnVjdF9sYXlvdXQudG1feWRheSkpPj4yKV0sCi0gICAgICAgIHRtX2lzZHN0OiBIRUFQ
MzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX2lzZHN0KSk+PjIpXQotICAgICAgfTsK
LSAgICAgIHZhciBwYXR0ZXJuID0gUG9pbnRlcl9zdHJpbmdpZnkoZm9ybWF0KTsKLSAgICAgIC8v
IGV4cGFuZCBmb3JtYXQKLSAgICAgIHZhciBFWFBBTlNJT05fUlVMRVNfMSA9IHsKLSAgICAgICAg
JyVjJzogJyVhICViICVkICVIOiVNOiVTICVZJywgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBsb2Nh
bGUncyBhcHByb3ByaWF0ZSBkYXRlIGFuZCB0aW1lIHJlcHJlc2VudGF0aW9uIC0gZS5nLiwgTW9u
IEF1ZyAgMyAxNDowMjowMSAyMDEzCi0gICAgICAgICclRCc6ICclbS8lZC8leScsICAgICAgICAg
ICAgICAgICAvLyBFcXVpdmFsZW50IHRvICVtIC8gJWQgLyAleQotICAgICAgICAnJUYnOiAnJVkt
JW0tJWQnLCAgICAgICAgICAgICAgICAgLy8gRXF1aXZhbGVudCB0byAlWSAtICVtIC0gJWQKLSAg
ICAgICAgJyVoJzogJyViJywgICAgICAgICAgICAgICAgICAgICAgIC8vIEVxdWl2YWxlbnQgdG8g
JWIKLSAgICAgICAgJyVyJzogJyVJOiVNOiVTICVwJywgICAgICAgICAgICAgIC8vIFJlcGxhY2Vk
IGJ5IHRoZSB0aW1lIGluIGEubS4gYW5kIHAubS4gbm90YXRpb24KLSAgICAgICAgJyVSJzogJyVI
OiVNJywgICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB0aW1lIGluIDI0LWhv
dXIgbm90YXRpb24KLSAgICAgICAgJyVUJzogJyVIOiVNOiVTJywgICAgICAgICAgICAgICAgIC8v
IFJlcGxhY2VkIGJ5IHRoZSB0aW1lCi0gICAgICAgICcleCc6ICclbS8lZC8leScsICAgICAgICAg
ICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgbG9jYWxlJ3MgYXBwcm9wcmlhdGUgZGF0ZSByZXBy
ZXNlbnRhdGlvbgotICAgICAgICAnJVgnOiAnJUg6JU06JVMnLCAgICAgICAgICAgICAgICAgLy8g
UmVwbGFjZWQgYnkgdGhlIGxvY2FsZSdzIGFwcHJvcHJpYXRlIGRhdGUgcmVwcmVzZW50YXRpb24K
LSAgICAgIH07Ci0gICAgICBmb3IgKHZhciBydWxlIGluIEVYUEFOU0lPTl9SVUxFU18xKSB7Ci0g
ICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UobmV3IFJlZ0V4cChydWxlLCAnZycpLCBF
WFBBTlNJT05fUlVMRVNfMVtydWxlXSk7Ci0gICAgICB9Ci0gICAgICB2YXIgV0VFS0RBWVMgPSBb
J1N1bmRheScsICdNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAn
RnJpZGF5JywgJ1NhdHVyZGF5J107Ci0gICAgICB2YXIgTU9OVEhTID0gWydKYW51YXJ5JywgJ0Zl
YnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0
JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ107Ci0gICAg
ICB2YXIgbGVhZGluZ1NvbWV0aGluZyA9IGZ1bmN0aW9uKHZhbHVlLCBkaWdpdHMsIGNoYXJhY3Rl
cikgewotICAgICAgICB2YXIgc3RyID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVl
LnRvU3RyaW5nKCkgOiAodmFsdWUgfHwgJycpOwotICAgICAgICB3aGlsZSAoc3RyLmxlbmd0aCA8
IGRpZ2l0cykgewotICAgICAgICAgIHN0ciA9IGNoYXJhY3RlclswXStzdHI7Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHN0cjsKLSAgICAgIH07Ci0gICAgICB2YXIgbGVhZGluZ051bGxzID0g
ZnVuY3Rpb24odmFsdWUsIGRpZ2l0cykgewotICAgICAgICByZXR1cm4gbGVhZGluZ1NvbWV0aGlu
Zyh2YWx1ZSwgZGlnaXRzLCAnMCcpOwotICAgICAgfTsKLSAgICAgIHZhciBjb21wYXJlQnlEYXkg
PSBmdW5jdGlvbihkYXRlMSwgZGF0ZTIpIHsKLSAgICAgICAgdmFyIHNnbiA9IGZ1bmN0aW9uKHZh
bHVlKSB7Ci0gICAgICAgICAgcmV0dXJuIHZhbHVlIDwgMCA/IC0xIDogKHZhbHVlID4gMCA/IDEg
OiAwKTsKLSAgICAgICAgfTsKLSAgICAgICAgdmFyIGNvbXBhcmU7Ci0gICAgICAgIGlmICgoY29t
cGFyZSA9IHNnbihkYXRlMS5nZXRGdWxsWWVhcigpLWRhdGUyLmdldEZ1bGxZZWFyKCkpKSA9PT0g
MCkgewotICAgICAgICAgIGlmICgoY29tcGFyZSA9IHNnbihkYXRlMS5nZXRNb250aCgpLWRhdGUy
LmdldE1vbnRoKCkpKSA9PT0gMCkgewotICAgICAgICAgICAgY29tcGFyZSA9IHNnbihkYXRlMS5n
ZXREYXRlKCktZGF0ZTIuZ2V0RGF0ZSgpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIGNvbXBhcmU7Ci0gICAgICB9OwotICAgICAgdmFyIGdldEZpcnN0V2Vla1N0YXJ0
RGF0ZSA9IGZ1bmN0aW9uKGphbkZvdXJ0aCkgewotICAgICAgICAgIHN3aXRjaCAoamFuRm91cnRo
LmdldERheSgpKSB7Ci0gICAgICAgICAgICBjYXNlIDA6IC8vIFN1bmRheQotICAgICAgICAgICAg
ICByZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwgMTEsIDI5KTsKLSAg
ICAgICAgICAgIGNhc2UgMTogLy8gTW9uZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBqYW5Gb3Vy
dGg7Ci0gICAgICAgICAgICBjYXNlIDI6IC8vIFR1ZXNkYXkKLSAgICAgICAgICAgICAgcmV0dXJu
IG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLCAwLCAzKTsKLSAgICAgICAgICAgIGNh
c2UgMzogLy8gV2VkbmVzZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3Vy
dGguZ2V0RnVsbFllYXIoKSwgMCwgMik7Ci0gICAgICAgICAgICBjYXNlIDQ6IC8vIFRodXJzZGF5
Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKSwg
MCwgMSk7Ci0gICAgICAgICAgICBjYXNlIDU6IC8vIEZyaWRheQotICAgICAgICAgICAgICByZXR1
cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwgMTEsIDMxKTsKLSAgICAgICAg
ICAgIGNhc2UgNjogLy8gU2F0dXJkYXkKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGph
bkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEsIDExLCAzMCk7Ci0gICAgICAgICAgfQotICAgICAgfTsK
LSAgICAgIHZhciBnZXRXZWVrQmFzZWRZZWFyID0gZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAg
IHZhciB0aGlzRGF0ZSA9IF9fYWRkRGF5cyhuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgMCwg
MSksIGRhdGUudG1feWRheSk7Ci0gICAgICAgICAgdmFyIGphbkZvdXJ0aFRoaXNZZWFyID0gbmV3
IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSwgMCwgNCk7Ci0gICAgICAgICAgdmFyIGphbkZv
dXJ0aE5leHRZZWFyID0gbmV3IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSsxLCAwLCA0KTsK
LSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3RhcnRUaGlzWWVhciA9IGdldEZpcnN0V2Vla1N0YXJ0
RGF0ZShqYW5Gb3VydGhUaGlzWWVhcik7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0TmV4
dFllYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpOwotICAgICAg
ICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RXZWVrU3RhcnRUaGlzWWVhciwgdGhpc0RhdGUpIDw9
IDApIHsKLSAgICAgICAgICAgIC8vIHRoaXMgZGF0ZSBpcyBhZnRlciB0aGUgc3RhcnQgb2YgdGhl
IGZpcnN0IHdlZWsgb2YgdGhpcyB5ZWFyCi0gICAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGZp
cnN0V2Vla1N0YXJ0TmV4dFllYXIsIHRoaXNEYXRlKSA8PSAwKSB7Ci0gICAgICAgICAgICAgIHJl
dHVybiB0aGlzRGF0ZS5nZXRGdWxsWWVhcigpKzE7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICByZXR1cm4gdGhpc0RhdGUuZ2V0RnVsbFllYXIoKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHJldHVybiB0aGlzRGF0ZS5nZXRGdWxs
WWVhcigpLTE7Ci0gICAgICAgICAgfQotICAgICAgfTsKLSAgICAgIHZhciBFWFBBTlNJT05fUlVM
RVNfMiA9IHsKLSAgICAgICAgJyVhJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVy
biBXRUVLREFZU1tkYXRlLnRtX3dkYXldLnN1YnN0cmluZygwLDMpOwotICAgICAgICB9LAotICAg
ICAgICAnJUEnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIFdFRUtEQVlTW2Rh
dGUudG1fd2RheV07Ci0gICAgICAgIH0sCi0gICAgICAgICclYic6IGZ1bmN0aW9uKGRhdGUpIHsK
LSAgICAgICAgICByZXR1cm4gTU9OVEhTW2RhdGUudG1fbW9uXS5zdWJzdHJpbmcoMCwzKTsKLSAg
ICAgICAgfSwKLSAgICAgICAgJyVCJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVy
biBNT05USFNbZGF0ZS50bV9tb25dOwotICAgICAgICB9LAotICAgICAgICAnJUMnOiBmdW5jdGlv
bihkYXRlKSB7Ci0gICAgICAgICAgdmFyIHllYXIgPSBkYXRlLnRtX3llYXIrMTkwMDsKLSAgICAg
ICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguZmxvb3IoeWVhci8xMDApLDIpOwotICAgICAg
ICB9LAotICAgICAgICAnJWQnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxl
YWRpbmdOdWxscyhkYXRlLnRtX21kYXksIDIpOwotICAgICAgICB9LAotICAgICAgICAnJWUnOiBm
dW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdTb21ldGhpbmcoZGF0ZS50
bV9tZGF5LCAyLCAnICcpOwotICAgICAgICB9LAotICAgICAgICAnJWcnOiBmdW5jdGlvbihkYXRl
KSB7Ci0gICAgICAgICAgLy8gJWcsICVHLCBhbmQgJVYgZ2l2ZSB2YWx1ZXMgYWNjb3JkaW5nIHRv
IHRoZSBJU08gODYwMToyMDAwIHN0YW5kYXJkIHdlZWstYmFzZWQgeWVhci4gCi0gICAgICAgICAg
Ly8gSW4gdGhpcyBzeXN0ZW0sIHdlZWtzIGJlZ2luIG9uIGEgTW9uZGF5IGFuZCB3ZWVrIDEgb2Yg
dGhlIHllYXIgaXMgdGhlIHdlZWsgdGhhdCBpbmNsdWRlcyAKLSAgICAgICAgICAvLyBKYW51YXJ5
IDR0aCwgd2hpY2ggaXMgYWxzbyB0aGUgd2VlayB0aGF0IGluY2x1ZGVzIHRoZSBmaXJzdCBUaHVy
c2RheSBvZiB0aGUgeWVhciwgYW5kIAotICAgICAgICAgIC8vIGlzIGFsc28gdGhlIGZpcnN0IHdl
ZWsgdGhhdCBjb250YWlucyBhdCBsZWFzdCBmb3VyIGRheXMgaW4gdGhlIHllYXIuIAotICAgICAg
ICAgIC8vIElmIHRoZSBmaXJzdCBNb25kYXkgb2YgSmFudWFyeSBpcyB0aGUgMm5kLCAzcmQsIG9y
IDR0aCwgdGhlIHByZWNlZGluZyBkYXlzIGFyZSBwYXJ0IG9mIAotICAgICAgICAgIC8vIHRoZSBs
YXN0IHdlZWsgb2YgdGhlIHByZWNlZGluZyB5ZWFyOyB0aHVzLCBmb3IgU2F0dXJkYXkgMm5kIEph
bnVhcnkgMTk5OSwgCi0gICAgICAgICAgLy8gJUcgaXMgcmVwbGFjZWQgYnkgMTk5OCBhbmQgJVYg
aXMgcmVwbGFjZWQgYnkgNTMuIElmIERlY2VtYmVyIDI5dGgsIDMwdGgsIAotICAgICAgICAgIC8v
IG9yIDMxc3QgaXMgYSBNb25kYXksIGl0IGFuZCBhbnkgZm9sbG93aW5nIGRheXMgYXJlIHBhcnQg
b2Ygd2VlayAxIG9mIHRoZSBmb2xsb3dpbmcgeWVhci4gCi0gICAgICAgICAgLy8gVGh1cywgZm9y
IFR1ZXNkYXkgMzB0aCBEZWNlbWJlciAxOTk3LCAlRyBpcyByZXBsYWNlZCBieSAxOTk4IGFuZCAl
ViBpcyByZXBsYWNlZCBieSAwMS4KLSAgICAgICAgICByZXR1cm4gZ2V0V2Vla0Jhc2VkWWVhcihk
YXRlKS50b1N0cmluZygpLnN1YnN0cmluZygyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVHJzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBnZXRXZWVrQmFzZWRZZWFyKGRhdGUp
OwotICAgICAgICB9LAotICAgICAgICAnJUgnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAg
cmV0dXJuIGxlYWRpbmdOdWxscyhkYXRlLnRtX2hvdXIsIDIpOwotICAgICAgICB9LAotICAgICAg
ICAnJUknOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhk
YXRlLnRtX2hvdXIgPCAxMyA/IGRhdGUudG1faG91ciA6IGRhdGUudG1faG91ci0xMiwgMik7Ci0g
ICAgICAgIH0sCi0gICAgICAgICclaic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBE
YXkgb2YgdGhlIHllYXIgKDAwMS0zNjYpCi0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhk
YXRlLnRtX21kYXkrX19hcnJheVN1bShfX2lzTGVhcFllYXIoZGF0ZS50bV95ZWFyKzE5MDApID8g
X19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZGF0ZS50bV9tb24tMSks
IDMpOwotICAgICAgICB9LAotICAgICAgICAnJW0nOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAg
ICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRlLnRtX21vbisxLCAyKTsKLSAgICAgICAgfSwKLSAg
ICAgICAgJyVNJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVs
bHMoZGF0ZS50bV9taW4sIDIpOwotICAgICAgICB9LAotICAgICAgICAnJW4nOiBmdW5jdGlvbigp
IHsKLSAgICAgICAgICByZXR1cm4gJ1xuJzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVwJzogZnVu
Y3Rpb24oZGF0ZSkgewotICAgICAgICAgIGlmIChkYXRlLnRtX2hvdXIgPiAwICYmIGRhdGUudG1f
aG91ciA8IDEzKSB7Ci0gICAgICAgICAgICByZXR1cm4gJ0FNJzsKLSAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgcmV0dXJuICdQTSc7Ci0gICAgICAgICAgfQotICAgICAgICB9LAotICAg
ICAgICAnJVMnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxs
cyhkYXRlLnRtX3NlYywgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICcldCc6IGZ1bmN0aW9uKCkg
ewotICAgICAgICAgIHJldHVybiAnXHQnOwotICAgICAgICB9LAotICAgICAgICAnJXUnOiBmdW5j
dGlvbihkYXRlKSB7Ci0gICAgICAgICAgdmFyIGRheSA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisx
OTAwLCBkYXRlLnRtX21vbisxLCBkYXRlLnRtX21kYXksIDAsIDAsIDAsIDApOwotICAgICAgICAg
IHJldHVybiBkYXkuZ2V0RGF5KCkgfHwgNzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVVJzogZnVu
Y3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVrIG51bWJlciBv
ZiB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw1M10uIAotICAgICAgICAgIC8vIFRo
ZSBmaXJzdCBTdW5kYXkgb2YgSmFudWFyeSBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgMTsgCi0g
ICAgICAgICAgLy8gZGF5cyBpbiB0aGUgbmV3IHllYXIgYmVmb3JlIHRoaXMgYXJlIGluIHdlZWsg
MC4gWyB0bV95ZWFyLCB0bV93ZGF5LCB0bV95ZGF5XQotICAgICAgICAgIHZhciBqYW5GaXJzdCA9
IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCAwLCAxKTsKLSAgICAgICAgICB2YXIgZmlyc3RT
dW5kYXkgPSBqYW5GaXJzdC5nZXREYXkoKSA9PT0gMCA/IGphbkZpcnN0IDogX19hZGREYXlzKGph
bkZpcnN0LCA3LWphbkZpcnN0LmdldERheSgpKTsKLSAgICAgICAgICB2YXIgZW5kRGF0ZSA9IG5l
dyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCBkYXRlLnRtX21vbiwgZGF0ZS50bV9tZGF5KTsKLSAg
ICAgICAgICAvLyBpcyB0YXJnZXQgZGF0ZSBhZnRlciB0aGUgZmlyc3QgU3VuZGF5PwotICAgICAg
ICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RTdW5kYXksIGVuZERhdGUpIDwgMCkgewotICAgICAg
ICAgICAgLy8gY2FsY3VsYXRlIGRpZmZlcmVuY2UgaW4gZGF5cyBiZXR3ZWVuIGZpcnN0IFN1bmRh
eSBhbmQgZW5kRGF0ZQotICAgICAgICAgICAgdmFyIGZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRo
ID0gX19hcnJheVN1bShfX2lzTGVhcFllYXIoZW5kRGF0ZS5nZXRGdWxsWWVhcigpKSA/IF9fTU9O
VEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIsIGVuZERhdGUuZ2V0TW9udGgoKS0x
KS0zMTsKLSAgICAgICAgICAgIHZhciBmaXJzdFN1bmRheVVudGlsRW5kSmFudWFyeSA9IDMxLWZp
cnN0U3VuZGF5LmdldERhdGUoKTsKLSAgICAgICAgICAgIHZhciBkYXlzID0gZmlyc3RTdW5kYXlV
bnRpbEVuZEphbnVhcnkrZmVicnVhcnlGaXJzdFVudGlsRW5kTW9udGgrZW5kRGF0ZS5nZXREYXRl
KCk7Ci0gICAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguY2VpbChkYXlzLzcpLCAy
KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGNvbXBhcmVCeURheShmaXJzdFN1bmRh
eSwgamFuRmlyc3QpID09PSAwID8gJzAxJzogJzAwJzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVW
JzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVrIG51
bWJlciBvZiB0aGUgeWVhciAoTW9uZGF5IGFzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWspIAot
ICAgICAgICAgIC8vIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAxLDUzXS4gSWYgdGhlIHdlZWsgY29u
dGFpbmluZyAxIEphbnVhcnkgaGFzIGZvdXIgCi0gICAgICAgICAgLy8gb3IgbW9yZSBkYXlzIGlu
IHRoZSBuZXcgeWVhciwgdGhlbiBpdCBpcyBjb25zaWRlcmVkIHdlZWsgMS4gCi0gICAgICAgICAg
Ly8gT3RoZXJ3aXNlLCBpdCBpcyB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmV2aW91cyB5ZWFyLCBh
bmQgdGhlIG5leHQgd2VlayBpcyB3ZWVrIDEuIAotICAgICAgICAgIC8vIEJvdGggSmFudWFyeSA0
dGggYW5kIHRoZSBmaXJzdCBUaHVyc2RheSBvZiBKYW51YXJ5IGFyZSBhbHdheXMgaW4gd2VlayAx
LiBbIHRtX3llYXIsIHRtX3dkYXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZvdXJ0aFRo
aXNZZWFyID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIDAsIDQpOwotICAgICAgICAgIHZh
ciBqYW5Gb3VydGhOZXh0WWVhciA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAxLCAwLCA0KTsK
LSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3RhcnRUaGlzWWVhciA9IGdldEZpcnN0V2Vla1N0YXJ0
RGF0ZShqYW5Gb3VydGhUaGlzWWVhcik7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0TmV4
dFllYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpOwotICAgICAg
ICAgIHZhciBlbmREYXRlID0gX19hZGREYXlzKG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCAw
LCAxKSwgZGF0ZS50bV95ZGF5KTsKLSAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGVuZERhdGUs
IGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIpIDwgMCkgewotICAgICAgICAgICAgLy8gaWYgZ2l2ZW4g
ZGF0ZSBpcyBiZWZvcmUgdGhpcyB5ZWFycyBmaXJzdCB3ZWVrLCB0aGVuIGl0IGJlbG9uZ3MgdG8g
dGhlIDUzcmQgd2VlayBvZiBsYXN0IHllYXIKLSAgICAgICAgICAgIHJldHVybiAnNTMnOwotICAg
ICAgICAgIH0gCi0gICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdFdlZWtTdGFydE5leHRZ
ZWFyLCBlbmREYXRlKSA8PSAwKSB7Ci0gICAgICAgICAgICAvLyBpZiBnaXZlbiBkYXRlIGlzIGFm
dGVyIG5leHQgeWVhcnMgZmlyc3Qgd2VlaywgdGhlbiBpdCBiZWxvbmdzIHRvIHRoZSAwMXRoIHdl
ZWsgb2YgbmV4dCB5ZWFyCi0gICAgICAgICAgICByZXR1cm4gJzAxJzsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgLy8gZ2l2ZW4gZGF0ZSBpcyBpbiBiZXR3ZWVuIENXIDAxLi41MyBvZiB0aGlzIGNh
bGVuZGFyIHllYXIKLSAgICAgICAgICB2YXIgZGF5c0RpZmZlcmVuY2U7Ci0gICAgICAgICAgaWYg
KGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIuZ2V0RnVsbFllYXIoKSA8IGRhdGUudG1feWVhcisxOTAw
KSB7Ci0gICAgICAgICAgICAvLyBmaXJzdCBDVyBvZiB0aGlzIHllYXIgc3RhcnRzIGxhc3QgeWVh
cgotICAgICAgICAgICAgZGF5c0RpZmZlcmVuY2UgPSBkYXRlLnRtX3lkYXkrMzItZmlyc3RXZWVr
U3RhcnRUaGlzWWVhci5nZXREYXRlKCkKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
Ly8gZmlyc3QgQ1cgb2YgdGhpcyB5ZWFyIHN0YXJ0cyB0aGlzIHllYXIKLSAgICAgICAgICAgIGRh
eXNEaWZmZXJlbmNlID0gZGF0ZS50bV95ZGF5KzEtZmlyc3RXZWVrU3RhcnRUaGlzWWVhci5nZXRE
YXRlKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5j
ZWlsKGRheXNEaWZmZXJlbmNlLzcpLCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyV3JzogZnVu
Y3Rpb24oZGF0ZSkgewotICAgICAgICAgIHZhciBkYXkgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIr
MTkwMCwgZGF0ZS50bV9tb24rMSwgZGF0ZS50bV9tZGF5LCAwLCAwLCAwLCAwKTsKLSAgICAgICAg
ICByZXR1cm4gZGF5LmdldERheSgpOwotICAgICAgICB9LAotICAgICAgICAnJVcnOiBmdW5jdGlv
bihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHdlZWsgbnVtYmVyIG9mIHRo
ZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAwLDUzXS4gCi0gICAgICAgICAgLy8gVGhlIGZp
cnN0IE1vbmRheSBvZiBKYW51YXJ5IGlzIHRoZSBmaXJzdCBkYXkgb2Ygd2VlayAxOyAKLSAgICAg
ICAgICAvLyBkYXlzIGluIHRoZSBuZXcgeWVhciBiZWZvcmUgdGhpcyBhcmUgaW4gd2VlayAwLiBb
IHRtX3llYXIsIHRtX3dkYXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZpcnN0ID0gbmV3
IERhdGUoZGF0ZS50bV95ZWFyLCAwLCAxKTsKLSAgICAgICAgICB2YXIgZmlyc3RNb25kYXkgPSBq
YW5GaXJzdC5nZXREYXkoKSA9PT0gMSA/IGphbkZpcnN0IDogX19hZGREYXlzKGphbkZpcnN0LCBq
YW5GaXJzdC5nZXREYXkoKSA9PT0gMCA/IDEgOiA3LWphbkZpcnN0LmdldERheSgpKzEpOwotICAg
ICAgICAgIHZhciBlbmREYXRlID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIGRhdGUudG1f
bW9uLCBkYXRlLnRtX21kYXkpOwotICAgICAgICAgIC8vIGlzIHRhcmdldCBkYXRlIGFmdGVyIHRo
ZSBmaXJzdCBNb25kYXk/Ci0gICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdE1vbmRheSwg
ZW5kRGF0ZSkgPCAwKSB7Ci0gICAgICAgICAgICB2YXIgZmVicnVhcnlGaXJzdFVudGlsRW5kTW9u
dGggPSBfX2FycmF5U3VtKF9faXNMZWFwWWVhcihlbmREYXRlLmdldEZ1bGxZZWFyKCkpID8gX19N
T05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZW5kRGF0ZS5nZXRNb250aCgp
LTEpLTMxOwotICAgICAgICAgICAgdmFyIGZpcnN0TW9uZGF5VW50aWxFbmRKYW51YXJ5ID0gMzEt
Zmlyc3RNb25kYXkuZ2V0RGF0ZSgpOwotICAgICAgICAgICAgdmFyIGRheXMgPSBmaXJzdE1vbmRh
eVVudGlsRW5kSmFudWFyeStmZWJydWFyeUZpcnN0VW50aWxFbmRNb250aCtlbmREYXRlLmdldERh
dGUoKTsKLSAgICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5jZWlsKGRheXMvNyks
IDIpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gY29tcGFyZUJ5RGF5KGZpcnN0TW9u
ZGF5LCBqYW5GaXJzdCkgPT09IDAgPyAnMDEnOiAnMDAnOwotICAgICAgICB9LAotICAgICAgICAn
JXknOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIGxhc3Qg
dHdvIGRpZ2l0cyBvZiB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw5OV0uIFsgdG1f
eWVhcl0KLSAgICAgICAgICByZXR1cm4gKGRhdGUudG1feWVhcisxOTAwKS50b1N0cmluZygpLnN1
YnN0cmluZygyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVZJzogZnVuY3Rpb24oZGF0ZSkgewot
ICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgKGZv
ciBleGFtcGxlLCAxOTk3KS4gWyB0bV95ZWFyXQotICAgICAgICAgIHJldHVybiBkYXRlLnRtX3ll
YXIrMTkwMDsKLSAgICAgICAgfSwKLSAgICAgICAgJyV6JzogZnVuY3Rpb24oZGF0ZSkgewotICAg
ICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBvZmZzZXQgZnJvbSBVVEMgaW4gdGhlIElTTyA4NjAx
OjIwMDAgc3RhbmRhcmQgZm9ybWF0ICggK2hobW0gb3IgLWhobW0gKSwKLSAgICAgICAgICAvLyBv
ciBieSBubyBjaGFyYWN0ZXJzIGlmIG5vIHRpbWV6b25lIGlzIGRldGVybWluYWJsZS4gCi0gICAg
ICAgICAgLy8gRm9yIGV4YW1wbGUsICItMDQzMCIgbWVhbnMgNCBob3VycyAzMCBtaW51dGVzIGJl
aGluZCBVVEMgKHdlc3Qgb2YgR3JlZW53aWNoKS4gCi0gICAgICAgICAgLy8gSWYgdG1faXNkc3Qg
aXMgemVybywgdGhlIHN0YW5kYXJkIHRpbWUgb2Zmc2V0IGlzIHVzZWQuIAotICAgICAgICAgIC8v
IElmIHRtX2lzZHN0IGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLCB0aGUgZGF5bGlnaHQgc2F2aW5ncyB0
aW1lIG9mZnNldCBpcyB1c2VkLiAKLSAgICAgICAgICAvLyBJZiB0bV9pc2RzdCBpcyBuZWdhdGl2
ZSwgbm8gY2hhcmFjdGVycyBhcmUgcmV0dXJuZWQuIAotICAgICAgICAgIC8vIEZJWE1FOiB3ZSBj
YW5ub3QgZGV0ZXJtaW5lIHRpbWUgem9uZSAob3IgY2FuIHdlPykKLSAgICAgICAgICByZXR1cm4g
Jyc7Ci0gICAgICAgIH0sCi0gICAgICAgICclWic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAg
ICAvLyBSZXBsYWNlZCBieSB0aGUgdGltZXpvbmUgbmFtZSBvciBhYmJyZXZpYXRpb24sIG9yIGJ5
IG5vIGJ5dGVzIGlmIG5vIHRpbWV6b25lIGluZm9ybWF0aW9uIGV4aXN0cy4gWyB0bV9pc2RzdF0K
LSAgICAgICAgICAvLyBGSVhNRTogd2UgY2Fubm90IGRldGVybWluZSB0aW1lIHpvbmUgKG9yIGNh
biB3ZT8pCi0gICAgICAgICAgcmV0dXJuICcnOwotICAgICAgICB9LAotICAgICAgICAnJSUnOiBm
dW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gJyUnOwotICAgICAgICB9Ci0gICAgICB9Owot
ICAgICAgZm9yICh2YXIgcnVsZSBpbiBFWFBBTlNJT05fUlVMRVNfMikgewotICAgICAgICBpZiAo
cGF0dGVybi5pbmRleE9mKHJ1bGUpID49IDApIHsKLSAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVy
bi5yZXBsYWNlKG5ldyBSZWdFeHAocnVsZSwgJ2cnKSwgRVhQQU5TSU9OX1JVTEVTXzJbcnVsZV0o
ZGF0ZSkpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICB2YXIgYnl0ZXMgPSBpbnRBcnJheUZy
b21TdHJpbmcocGF0dGVybiwgZmFsc2UpOwotICAgICAgaWYgKGJ5dGVzLmxlbmd0aCA+IG1heHNp
emUpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9IAotICAgICAgd3JpdGVBcnJheVRvTWVt
b3J5KGJ5dGVzLCBzKTsKLSAgICAgIHJldHVybiBieXRlcy5sZW5ndGgtMTsKLSAgICB9dmFyIF9z
dHJmdGltZV9sPV9zdHJmdGltZTsKLSAgZnVuY3Rpb24gX2lzc3BhY2UoY2hyKSB7Ci0gICAgICBy
ZXR1cm4gKGNociA9PSAzMikgfHwgKGNociA+PSA5ICYmIGNociA8PSAxMyk7Ci0gICAgfQotICBm
dW5jdGlvbiBfX3BhcnNlSW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsIG1pbiwgbWF4LCB1bnNpZ24p
IHsKLSAgICAgIHZhciBpc05lZ2F0aXZlID0gZmFsc2U7Ci0gICAgICAvLyBTa2lwIHNwYWNlLgot
ICAgICAgd2hpbGUgKF9pc3NwYWNlKEhFQVA4WyhzdHIpXSkpIHN0cisrOwotICAgICAgLy8gQ2hl
Y2sgZm9yIGEgcGx1cy9taW51cyBzaWduLgotICAgICAgaWYgKEhFQVA4WyhzdHIpXSA9PSA0NSkg
ewotICAgICAgICBzdHIrKzsKLSAgICAgICAgaXNOZWdhdGl2ZSA9IHRydWU7Ci0gICAgICB9IGVs
c2UgaWYgKEhFQVA4WyhzdHIpXSA9PSA0MykgewotICAgICAgICBzdHIrKzsKLSAgICAgIH0KLSAg
ICAgIC8vIEZpbmQgYmFzZS4KLSAgICAgIHZhciBvayA9IGZhbHNlOwotICAgICAgdmFyIGZpbmFs
QmFzZSA9IGJhc2U7Ci0gICAgICBpZiAoIWZpbmFsQmFzZSkgewotICAgICAgICBpZiAoSEVBUDhb
KHN0cildID09IDQ4KSB7Ci0gICAgICAgICAgaWYgKEhFQVA4Wygoc3RyKzEpfDApXSA9PSAxMjAg
fHwKLSAgICAgICAgICAgICAgSEVBUDhbKChzdHIrMSl8MCldID09IDg4KSB7Ci0gICAgICAgICAg
ICBmaW5hbEJhc2UgPSAxNjsKLSAgICAgICAgICAgIHN0ciArPSAyOwotICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBmaW5hbEJhc2UgPSA4OwotICAgICAgICAgICAgb2sgPSB0cnVlOyAv
LyB3ZSBzYXcgYW4gaW5pdGlhbCB6ZXJvLCBwZXJoYXBzIHRoZSBlbnRpcmUgdGhpbmcgaXMganVz
dCAiMCIKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoZmluYWxCYXNl
PT0xNikgewotICAgICAgICBpZiAoSEVBUDhbKHN0cildID09IDQ4KSB7Ci0gICAgICAgICAgaWYg
KEhFQVA4Wygoc3RyKzEpfDApXSA9PSAxMjAgfHwKLSAgICAgICAgICAgICAgSEVBUDhbKChzdHIr
MSl8MCldID09IDg4KSB7Ci0gICAgICAgICAgICBzdHIgKz0gMjsKLSAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgIH0KLSAgICAgIGlmICghZmluYWxCYXNlKSBmaW5hbEJhc2UgPSAxMDsKLSAg
ICAgIHN0YXJ0ID0gc3RyOwotICAgICAgLy8gR2V0IGRpZ2l0cy4KLSAgICAgIHZhciBjaHI7Ci0g
ICAgICB3aGlsZSAoKGNociA9IEhFQVA4WyhzdHIpXSkgIT0gMCkgewotICAgICAgICB2YXIgZGln
aXQgPSBwYXJzZUludChTdHJpbmcuZnJvbUNoYXJDb2RlKGNociksIGZpbmFsQmFzZSk7Ci0gICAg
ICAgIGlmIChpc05hTihkaWdpdCkpIHsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICBzdHIrKzsKLSAgICAgICAgICBvayA9IHRydWU7Ci0gICAgICAgIH0KLSAg
ICAgIH0KLSAgICAgIGlmICghb2spIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMu
RUlOVkFMKTsKLSAgICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKDApLDApfDApOwot
ICAgICAgfQotICAgICAgLy8gU2V0IGVuZCBwb2ludGVyLgotICAgICAgaWYgKGVuZHB0cikgewot
ICAgICAgICBIRUFQMzJbKChlbmRwdHIpPj4yKV09c3RyCi0gICAgICB9Ci0gICAgICB0cnkgewot
ICAgICAgICB2YXIgbnVtYmVyU3RyaW5nID0gaXNOZWdhdGl2ZSA/ICctJytQb2ludGVyX3N0cmlu
Z2lmeShzdGFydCwgc3RyIC0gc3RhcnQpIDogUG9pbnRlcl9zdHJpbmdpZnkoc3RhcnQsIHN0ciAt
IHN0YXJ0KTsKLSAgICAgICAgaTY0TWF0aC5mcm9tU3RyaW5nKG51bWJlclN0cmluZywgZmluYWxC
YXNlLCBtaW4sIG1heCwgdW5zaWduKTsKLSAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICBfX19z
ZXRFcnJObyhFUlJOT19DT0RFUy5FUkFOR0UpOyAvLyBub3QgcXVpdGUgY29ycmVjdAotICAgICAg
fQotICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKCgoSEVBUDMyWygoKHRlbXBEb3Vi
bGVQdHIpKyg0KSk+PjIpXSl8MCkpLCgoSEVBUDMyWygodGVtcERvdWJsZVB0cik+PjIpXSl8MCkp
fDApOwotICAgIH1mdW5jdGlvbiBfc3RydG91bGwoc3RyLCBlbmRwdHIsIGJhc2UpIHsKLSAgICAg
IHJldHVybiBfX3BhcnNlSW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsIDAsICcxODQ0Njc0NDA3Mzcw
OTU1MTYxNScsIHRydWUpOyAgLy8gVUxPTkdfTUFYLgotICAgIH12YXIgX3N0cnRvdWxsX2w9X3N0
cnRvdWxsOwotICBmdW5jdGlvbiBfc3RydG9sbChzdHIsIGVuZHB0ciwgYmFzZSkgewotICAgICAg
cmV0dXJuIF9fcGFyc2VJbnQ2NChzdHIsIGVuZHB0ciwgYmFzZSwgJy05MjIzMzcyMDM2ODU0Nzc1
ODA4JywgJzkyMjMzNzIwMzY4NTQ3NzU4MDcnKTsgIC8vIExMT05HX01JTiwgTExPTkdfTUFYLgot
ICAgIH12YXIgX3N0cnRvbGxfbD1fc3RydG9sbDsKLSAgZnVuY3Rpb24gX3VzZWxvY2FsZShsb2Nh
bGUpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAgZnVuY3Rpb24gX19fbG9jYWxlX21iX2N1
cl9tYXgoKSB7IHRocm93ICdfX2xvY2FsZV9tYl9jdXJfbWF4IG5vdCBpbXBsZW1lbnRlZCcgfQot
ICB2YXIgX2xsdm1fdmFfc3RhcnQ9dW5kZWZpbmVkOwotICBmdW5jdGlvbiBfc3ByaW50ZihzLCBm
b3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzcHJpbnRmKGNoYXIgKnJlc3RyaWN0IHMs
IGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgLi4uKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJz
Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3ByaW50Zi5odG1s
Ci0gICAgICByZXR1cm4gX3NucHJpbnRmKHMsIHVuZGVmaW5lZCwgZm9ybWF0LCB2YXJhcmdzKTsK
LSAgICB9ZnVuY3Rpb24gX2FzcHJpbnRmKHMsIGZvcm1hdCwgdmFyYXJncykgewotICAgICAgcmV0
dXJuIF9zcHJpbnRmKC1zLCBmb3JtYXQsIHZhcmFyZ3MpOwotICAgIH1mdW5jdGlvbiBfdmFzcHJp
bnRmKHMsIGZvcm1hdCwgdmFfYXJnKSB7Ci0gICAgICByZXR1cm4gX2FzcHJpbnRmKHMsIGZvcm1h
dCwgSEVBUDMyWygodmFfYXJnKT4+MildKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9sbHZtX3ZhX2Vu
ZCgpIHt9Ci0gIGZ1bmN0aW9uIF92c25wcmludGYocywgbiwgZm9ybWF0LCB2YV9hcmcpIHsKLSAg
ICAgIHJldHVybiBfc25wcmludGYocywgbiwgZm9ybWF0LCBIRUFQMzJbKCh2YV9hcmcpPj4yKV0p
OwotICAgIH0KLSAgZnVuY3Rpb24gX3Zzc2NhbmYocywgZm9ybWF0LCB2YV9hcmcpIHsKLSAgICAg
IHJldHVybiBfc3NjYW5mKHMsIGZvcm1hdCwgSEVBUDMyWygodmFfYXJnKT4+MildKTsKLSAgICB9
Ci0gIGZ1bmN0aW9uIF9zYnJrKGJ5dGVzKSB7Ci0gICAgICAvLyBJbXBsZW1lbnQgYSBMaW51eC1s
aWtlICdtZW1vcnkgYXJlYScgZm9yIG91ciAncHJvY2VzcycuCi0gICAgICAvLyBDaGFuZ2VzIHRo
ZSBzaXplIG9mIHRoZSBtZW1vcnkgYXJlYSBieSB8Ynl0ZXN8OyByZXR1cm5zIHRoZQotICAgICAg
Ly8gYWRkcmVzcyBvZiB0aGUgcHJldmlvdXMgdG9wICgnYnJlYWsnKSBvZiB0aGUgbWVtb3J5IGFy
ZWEKLSAgICAgIC8vIFdlIGNvbnRyb2wgdGhlICJkeW5hbWljIiBtZW1vcnkgLSBEWU5BTUlDX0JB
U0UgdG8gRFlOQU1JQ1RPUAotICAgICAgdmFyIHNlbGYgPSBfc2JyazsKLSAgICAgIGlmICghc2Vs
Zi5jYWxsZWQpIHsKLSAgICAgICAgRFlOQU1JQ1RPUCA9IGFsaWduTWVtb3J5UGFnZShEWU5BTUlD
VE9QKTsgLy8gbWFrZSBzdXJlIHdlIHN0YXJ0IG91dCBhbGlnbmVkCi0gICAgICAgIHNlbGYuY2Fs
bGVkID0gdHJ1ZTsKLSAgICAgICAgYXNzZXJ0KFJ1bnRpbWUuZHluYW1pY0FsbG9jKTsKLSAgICAg
ICAgc2VsZi5hbGxvYyA9IFJ1bnRpbWUuZHluYW1pY0FsbG9jOwotICAgICAgICBSdW50aW1lLmR5
bmFtaWNBbGxvYyA9IGZ1bmN0aW9uKCkgeyBhYm9ydCgnY2Fubm90IGR5bmFtaWNhbGx5IGFsbG9j
YXRlLCBzYnJrIG5vdyBoYXMgY29udHJvbCcpIH07Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0ID0g
RFlOQU1JQ1RPUDsKLSAgICAgIGlmIChieXRlcyAhPSAwKSBzZWxmLmFsbG9jKGJ5dGVzKTsKLSAg
ICAgIHJldHVybiByZXQ7ICAvLyBQcmV2aW91cyBicmVhayBsb2NhdGlvbi4KLSAgICB9Ci0gIGZ1
bmN0aW9uIF90aW1lKHB0cikgewotICAgICAgdmFyIHJldCA9IE1hdGguZmxvb3IoRGF0ZS5ub3co
KS8xMDAwKTsKLSAgICAgIGlmIChwdHIpIHsKLSAgICAgICAgSEVBUDMyWygocHRyKT4+MildPXJl
dAotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4YV9j
YWxsX3VuZXhwZWN0ZWQoZXhjZXB0aW9uKSB7Ci0gICAgICBNb2R1bGUucHJpbnRFcnIoJ1VuZXhw
ZWN0ZWQgZXhjZXB0aW9uIHRocm93biwgdGhpcyBpcyBub3QgcHJvcGVybHkgc3VwcG9ydGVkIC0g
YWJvcnRpbmcnKTsKLSAgICAgIEFCT1JUID0gdHJ1ZTsKLSAgICAgIHRocm93IGV4Y2VwdGlvbjsK
LSAgICB9Ci0gIHZhciBCcm93c2VyPXttYWluTG9vcDp7c2NoZWR1bGVyOm51bGwsc2hvdWxkUGF1
c2U6ZmFsc2UscGF1c2VkOmZhbHNlLHF1ZXVlOltdLHBhdXNlOmZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICBCcm93c2VyLm1haW5Mb29wLnNob3VsZFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgfSxyZXN1
bWU6ZnVuY3Rpb24gKCkgewotICAgICAgICAgIGlmIChCcm93c2VyLm1haW5Mb29wLnBhdXNlZCkg
ewotICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5wYXVzZWQgPSBmYWxzZTsKLSAgICAgICAg
ICAgIEJyb3dzZXIubWFpbkxvb3Auc2NoZWR1bGVyKCk7Ci0gICAgICAgICAgfQotICAgICAgICAg
IEJyb3dzZXIubWFpbkxvb3Auc2hvdWxkUGF1c2UgPSBmYWxzZTsKLSAgICAgICAgfSx1cGRhdGVT
dGF0dXM6ZnVuY3Rpb24gKCkgewotICAgICAgICAgIGlmIChNb2R1bGVbJ3NldFN0YXR1cyddKSB7
Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IE1vZHVsZVsnc3RhdHVzTWVzc2FnZSddIHx8ICdQ
bGVhc2Ugd2FpdC4uLic7Ci0gICAgICAgICAgICB2YXIgcmVtYWluaW5nID0gQnJvd3Nlci5tYWlu
TG9vcC5yZW1haW5pbmdCbG9ja2VyczsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IEJyb3dz
ZXIubWFpbkxvb3AuZXhwZWN0ZWRCbG9ja2VyczsKLSAgICAgICAgICAgIGlmIChyZW1haW5pbmcp
IHsKLSAgICAgICAgICAgICAgaWYgKHJlbWFpbmluZyA8IGV4cGVjdGVkKSB7Ci0gICAgICAgICAg
ICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXShtZXNzYWdlICsgJyAoJyArIChleHBlY3RlZCAtIHJl
bWFpbmluZykgKyAnLycgKyBleHBlY3RlZCArICcpJyk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXShtZXNzYWdlKTsKLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgTW9kdWxlWydzZXRT
dGF0dXMnXSgnJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9fSxpc0Z1
bGxTY3JlZW46ZmFsc2UscG9pbnRlckxvY2s6ZmFsc2UsbW9kdWxlQ29udGV4dENyZWF0ZWRDYWxs
YmFja3M6W10sd29ya2VyczpbXSxpbml0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgaWYgKCFNb2R1
bGVbInByZWxvYWRQbHVnaW5zIl0pIE1vZHVsZVsicHJlbG9hZFBsdWdpbnMiXSA9IFtdOyAvLyBu
ZWVkcyB0byBleGlzdCBldmVuIGluIHdvcmtlcnMKLSAgICAgICAgaWYgKEJyb3dzZXIuaW5pdHRl
ZCB8fCBFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHJldHVybjsKLSAgICAgICAgQnJvd3Nlci5pbml0
dGVkID0gdHJ1ZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBuZXcgQmxvYigpOwotICAgICAg
ICAgIEJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yID0gdHJ1ZTsKLSAgICAgICAgfSBjYXRjaChl
KSB7Ci0gICAgICAgICAgQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPSBmYWxzZTsKLSAgICAg
ICAgICBjb25zb2xlLmxvZygid2FybmluZzogbm8gYmxvYiBjb25zdHJ1Y3RvciwgY2Fubm90IGNy
ZWF0ZSBibG9icyB3aXRoIG1pbWV0eXBlcyIpOwotICAgICAgICB9Ci0gICAgICAgIEJyb3dzZXIu
QmxvYkJ1aWxkZXIgPSB0eXBlb2YgTW96QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIgPyBNb3pC
bG9iQnVpbGRlciA6ICh0eXBlb2YgV2ViS2l0QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIgPyBX
ZWJLaXRCbG9iQnVpbGRlciA6ICghQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPyBjb25zb2xl
LmxvZygid2FybmluZzogbm8gQmxvYkJ1aWxkZXIiKSA6IG51bGwpKTsKLSAgICAgICAgQnJvd3Nl
ci5VUkxPYmplY3QgPSB0eXBlb2Ygd2luZG93ICE9ICJ1bmRlZmluZWQiID8gKHdpbmRvdy5VUkwg
PyB3aW5kb3cuVVJMIDogd2luZG93LndlYmtpdFVSTCkgOiB1bmRlZmluZWQ7Ci0gICAgICAgIGlm
ICghTW9kdWxlLm5vSW1hZ2VEZWNvZGluZyAmJiB0eXBlb2YgQnJvd3Nlci5VUkxPYmplY3QgPT09
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgY29uc29sZS5sb2coIndhcm5pbmc6IEJyb3dzZXIg
ZG9lcyBub3Qgc3VwcG9ydCBjcmVhdGluZyBvYmplY3QgVVJMcy4gQnVpbHQtaW4gYnJvd3NlciBp
bWFnZSBkZWNvZGluZyB3aWxsIG5vdCBiZSBhdmFpbGFibGUuIik7Ci0gICAgICAgICAgTW9kdWxl
Lm5vSW1hZ2VEZWNvZGluZyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gU3VwcG9ydCBm
b3IgcGx1Z2lucyB0aGF0IGNhbiBwcm9jZXNzIHByZWxvYWRlZCBmaWxlcy4gWW91IGNhbiBhZGQg
bW9yZSBvZiB0aGVzZSB0bwotICAgICAgICAvLyB5b3VyIGFwcCBieSBjcmVhdGluZyBhbmQgYXBw
ZW5kaW5nIHRvIE1vZHVsZS5wcmVsb2FkUGx1Z2lucy4KLSAgICAgICAgLy8KLSAgICAgICAgLy8g
RWFjaCBwbHVnaW4gaXMgYXNrZWQgaWYgaXQgY2FuIGhhbmRsZSBhIGZpbGUgYmFzZWQgb24gdGhl
IGZpbGUncyBuYW1lLiBJZiBpdCBjYW4sCi0gICAgICAgIC8vIGl0IGlzIGdpdmVuIHRoZSBmaWxl
J3MgcmF3IGRhdGEuIFdoZW4gaXQgaXMgZG9uZSwgaXQgY2FsbHMgYSBjYWxsYmFjayB3aXRoIHRo
ZSBmaWxlJ3MKLSAgICAgICAgLy8gKHBvc3NpYmx5IG1vZGlmaWVkKSBkYXRhLiBGb3IgZXhhbXBs
ZSwgYSBwbHVnaW4gbWlnaHQgZGVjb21wcmVzcyBhIGZpbGUsIG9yIGl0Ci0gICAgICAgIC8vIG1p
Z2h0IGNyZWF0ZSBzb21lIHNpZGUgZGF0YSBzdHJ1Y3R1cmUgZm9yIHVzZSBsYXRlciAobGlrZSBh
biBJbWFnZSBlbGVtZW50LCBldGMuKS4KLSAgICAgICAgdmFyIGltYWdlUGx1Z2luID0ge307Ci0g
ICAgICAgIGltYWdlUGx1Z2luWydjYW5IYW5kbGUnXSA9IGZ1bmN0aW9uKG5hbWUpIHsKLSAgICAg
ICAgICByZXR1cm4gIU1vZHVsZS5ub0ltYWdlRGVjb2RpbmcgJiYgL1wuKGpwZ3xqcGVnfHBuZ3xi
bXApJC9pLnRlc3QobmFtZSk7Ci0gICAgICAgIH07Ci0gICAgICAgIGltYWdlUGx1Z2luWydoYW5k
bGUnXSA9IGZ1bmN0aW9uKGJ5dGVBcnJheSwgbmFtZSwgb25sb2FkLCBvbmVycm9yKSB7Ci0gICAg
ICAgICAgdmFyIGIgPSBudWxsOwotICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25zdHJ1
Y3RvcikgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgYiA9IG5ldyBCbG9iKFti
eXRlQXJyYXldLCB7IHR5cGU6IEJyb3dzZXIuZ2V0TWltZXR5cGUobmFtZSkgfSk7Ci0gICAgICAg
ICAgICAgIGlmIChiLnNpemUgIT09IGJ5dGVBcnJheS5sZW5ndGgpIHsgLy8gU2FmYXJpIGJ1ZyAj
MTE4NjMwCi0gICAgICAgICAgICAgICAgLy8gU2FmYXJpJ3MgQmxvYiBjYW4gb25seSB0YWtlIGFu
IEFycmF5QnVmZmVyCi0gICAgICAgICAgICAgICAgYiA9IG5ldyBCbG9iKFsobmV3IFVpbnQ4QXJy
YXkoYnl0ZUFycmF5KSkuYnVmZmVyXSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUp
IH0pOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAg
ICAgICAgUnVudGltZS53YXJuT25jZSgnQmxvYiBjb25zdHJ1Y3RvciBwcmVzZW50IGJ1dCBmYWls
czogJyArIGUgKyAnOyBmYWxsaW5nIGJhY2sgdG8gYmxvYiBidWlsZGVyJyk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmICghYikgewotICAgICAgICAgICAgdmFyIGJi
ID0gbmV3IEJyb3dzZXIuQmxvYkJ1aWxkZXIoKTsKLSAgICAgICAgICAgIGJiLmFwcGVuZCgobmV3
IFVpbnQ4QXJyYXkoYnl0ZUFycmF5KSkuYnVmZmVyKTsgLy8gd2UgbmVlZCB0byBwYXNzIGEgYnVm
ZmVyLCBhbmQgbXVzdCBjb3B5IHRoZSBhcnJheSB0byBnZXQgdGhlIHJpZ2h0IGRhdGEgcmFuZ2UK
LSAgICAgICAgICAgIGIgPSBiYi5nZXRCbG9iKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZh
ciB1cmwgPSBCcm93c2VyLlVSTE9iamVjdC5jcmVhdGVPYmplY3RVUkwoYik7Ci0gICAgICAgICAg
dmFyIGltZyA9IG5ldyBJbWFnZSgpOwotICAgICAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgIGFzc2VydChpbWcuY29tcGxldGUsICdJbWFnZSAnICsgbmFtZSArICcg
Y291bGQgbm90IGJlIGRlY29kZWQnKTsKLSAgICAgICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IGlt
Zy53aWR0aDsKLSAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0OwotICAgICAg
ICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwotICAgICAgICAgICAgY3R4
LmRyYXdJbWFnZShpbWcsIDAsIDApOwotICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRJbWFn
ZXMiXVtuYW1lXSA9IGNhbnZhczsKLSAgICAgICAgICAgIEJyb3dzZXIuVVJMT2JqZWN0LnJldm9r
ZU9iamVjdFVSTCh1cmwpOwotICAgICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2FkKGJ5dGVBcnJh
eSk7Ci0gICAgICAgICAgfTsKLSAgICAgICAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50
KSB7Ci0gICAgICAgICAgICBjb25zb2xlLmxvZygnSW1hZ2UgJyArIHVybCArICcgY291bGQgbm90
IGJlIGRlY29kZWQnKTsKLSAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7Ci0gICAg
ICAgICAgfTsKLSAgICAgICAgICBpbWcuc3JjID0gdXJsOwotICAgICAgICB9OwotICAgICAgICBN
b2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10ucHVzaChpbWFnZVBsdWdpbik7Ci0gICAgICAgIHZhciBh
dWRpb1BsdWdpbiA9IHt9OwotICAgICAgICBhdWRpb1BsdWdpblsnY2FuSGFuZGxlJ10gPSBmdW5j
dGlvbihuYW1lKSB7Ci0gICAgICAgICAgcmV0dXJuICFNb2R1bGUubm9BdWRpb0RlY29kaW5nICYm
IG5hbWUuc3Vic3RyKC00KSBpbiB7ICcub2dnJzogMSwgJy53YXYnOiAxLCAnLm1wMyc6IDEgfTsK
LSAgICAgICAgfTsKLSAgICAgICAgYXVkaW9QbHVnaW5bJ2hhbmRsZSddID0gZnVuY3Rpb24oYnl0
ZUFycmF5LCBuYW1lLCBvbmxvYWQsIG9uZXJyb3IpIHsKLSAgICAgICAgICB2YXIgZG9uZSA9IGZh
bHNlOwotICAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaChhdWRpbykgewotICAgICAgICAgICAgaWYg
KGRvbmUpIHJldHVybjsKLSAgICAgICAgICAgIGRvbmUgPSB0cnVlOwotICAgICAgICAgICAgTW9k
dWxlWyJwcmVsb2FkZWRBdWRpb3MiXVtuYW1lXSA9IGF1ZGlvOwotICAgICAgICAgICAgaWYgKG9u
bG9hZCkgb25sb2FkKGJ5dGVBcnJheSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGZ1bmN0aW9u
IGZhaWwoKSB7Ci0gICAgICAgICAgICBpZiAoZG9uZSkgcmV0dXJuOwotICAgICAgICAgICAgZG9u
ZSA9IHRydWU7Ci0gICAgICAgICAgICBNb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdW25hbWVdID0g
bmV3IEF1ZGlvKCk7IC8vIGVtcHR5IHNoaW0KLSAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVy
cm9yKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25zdHJ1
Y3RvcikgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgdmFyIGIgPSBuZXcgQmxv
YihbYnl0ZUFycmF5XSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpIH0pOwotICAg
ICAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWlsKCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB2YXIgdXJsID0gQnJvd3Nlci5VUkxPYmplY3QuY3JlYXRl
T2JqZWN0VVJMKGIpOyAvLyBYWFggd2UgbmV2ZXIgcmV2b2tlIHRoaXMhCi0gICAgICAgICAgICB2
YXIgYXVkaW8gPSBuZXcgQXVkaW8oKTsKLSAgICAgICAgICAgIGF1ZGlvLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NhbnBsYXl0aHJvdWdoJywgZnVuY3Rpb24oKSB7IGZpbmlzaChhdWRpbykgfSwgZmFsc2Up
OyAvLyB1c2UgYWRkRXZlbnRMaXN0ZW5lciBkdWUgdG8gY2hyb21pdW0gYnVnIDEyNDkyNgotICAg
ICAgICAgICAgYXVkaW8ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICAg
IGlmIChkb25lKSByZXR1cm47Ci0gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3YXJuaW5nOiBi
cm93c2VyIGNvdWxkIG5vdCBmdWxseSBkZWNvZGUgYXVkaW8gJyArIG5hbWUgKyAnLCB0cnlpbmcg
c2xvd2VyIGJhc2U2NCBhcHByb2FjaCcpOwotICAgICAgICAgICAgICBmdW5jdGlvbiBlbmNvZGU2
NChkYXRhKSB7Ci0gICAgICAgICAgICAgICAgdmFyIEJBU0UgPSAnQUJDREVGR0hJSktMTU5PUFFS
U1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7Ci0gICAgICAg
ICAgICAgICAgdmFyIFBBRCA9ICc9JzsKLSAgICAgICAgICAgICAgICB2YXIgcmV0ID0gJyc7Ci0g
ICAgICAgICAgICAgICAgdmFyIGxlZnRjaGFyID0gMDsKLSAgICAgICAgICAgICAgICB2YXIgbGVm
dGJpdHMgPSAwOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5n
dGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgbGVmdGNoYXIgPSAobGVmdGNoYXIgPDwgOCkg
fCBkYXRhW2ldOwotICAgICAgICAgICAgICAgICAgbGVmdGJpdHMgKz0gODsKLSAgICAgICAgICAg
ICAgICAgIHdoaWxlIChsZWZ0Yml0cyA+PSA2KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBj
dXJyID0gKGxlZnRjaGFyID4+IChsZWZ0Yml0cy02KSkgJiAweDNmOwotICAgICAgICAgICAgICAg
ICAgICBsZWZ0Yml0cyAtPSA2OwotICAgICAgICAgICAgICAgICAgICByZXQgKz0gQkFTRVtjdXJy
XTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgaWYgKGxlZnRiaXRzID09IDIpIHsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBCQVNFWyhs
ZWZ0Y2hhciYzKSA8PCA0XTsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBQQUQgKyBQQUQ7Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsZWZ0Yml0cyA9PSA0KSB7Ci0gICAgICAgICAgICAg
ICAgICByZXQgKz0gQkFTRVsobGVmdGNoYXImMHhmKSA8PCAyXTsKLSAgICAgICAgICAgICAgICAg
IHJldCArPSBQQUQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBy
ZXQ7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYXVkaW8uc3JjID0gJ2RhdGE6YXVk
aW8veC0nICsgbmFtZS5zdWJzdHIoLTMpICsgJztiYXNlNjQsJyArIGVuY29kZTY0KGJ5dGVBcnJh
eSk7Ci0gICAgICAgICAgICAgIGZpbmlzaChhdWRpbyk7IC8vIHdlIGRvbid0IHdhaXQgZm9yIGNv
bmZpcm1hdGlvbiB0aGlzIHdvcmtlZCAtIGJ1dCBpdCdzIHdvcnRoIHRyeWluZwotICAgICAgICAg
ICAgfTsKLSAgICAgICAgICAgIGF1ZGlvLnNyYyA9IHVybDsKLSAgICAgICAgICAgIC8vIHdvcmth
cm91bmQgZm9yIGNocm9tZSBidWcgMTI0OTI2IC0gd2UgZG8gbm90IGFsd2F5cyBnZXQgb25jYW5w
bGF5dGhyb3VnaCBvciBvbmVycm9yCi0gICAgICAgICAgICBCcm93c2VyLnNhZmVTZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBmaW5pc2goYXVkaW8pOyAvLyB0cnkgdG8gdXNl
IGl0IGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCBuZWNlc3NhcmlseSByZWFkeSB0byBwbGF5Ci0gICAg
ICAgICAgICB9LCAxMDAwMCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVy
biBmYWlsKCk7Ci0gICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBNb2R1bGVbJ3ByZWxv
YWRQbHVnaW5zJ10ucHVzaChhdWRpb1BsdWdpbik7Ci0gICAgICAgIC8vIENhbnZhcyBldmVudCBz
ZXR1cAotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgY2Fu
dmFzLnJlcXVlc3RQb2ludGVyTG9jayA9IGNhbnZhc1sncmVxdWVzdFBvaW50ZXJMb2NrJ10gfHwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc1snbW96UmVxdWVzdFBv
aW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZh
c1snd2Via2l0UmVxdWVzdFBvaW50ZXJMb2NrJ107Ci0gICAgICAgIGNhbnZhcy5leGl0UG9pbnRl
ckxvY2sgPSBkb2N1bWVudFsnZXhpdFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pFeGl0UG9pbnRlckxvY2snXSB8fAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ3dlYmtpdEV4aXRQb2ludGVyTG9j
ayddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpe307IC8v
IG5vLW9wIGlmIGZ1bmN0aW9uIGRvZXMgbm90IGV4aXN0Ci0gICAgICAgIGNhbnZhcy5leGl0UG9p
bnRlckxvY2sgPSBjYW52YXMuZXhpdFBvaW50ZXJMb2NrLmJpbmQoZG9jdW1lbnQpOwotICAgICAg
ICBmdW5jdGlvbiBwb2ludGVyTG9ja0NoYW5nZSgpIHsKLSAgICAgICAgICBCcm93c2VyLnBvaW50
ZXJMb2NrID0gZG9jdW1lbnRbJ3BvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXMgfHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ21velBvaW50ZXJMb2NrRWxl
bWVudCddID09PSBjYW52YXMgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnRbJ3dlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXM7Ci0gICAgICAgIH0K
LSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxvY2tjaGFuZ2UnLCBw
b2ludGVyTG9ja0NoYW5nZSwgZmFsc2UpOwotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCdtb3pwb2ludGVybG9ja2NoYW5nZScsIHBvaW50ZXJMb2NrQ2hhbmdlLCBmYWxzZSk7Ci0g
ICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdHBvaW50ZXJsb2NrY2hhbmdl
JywgcG9pbnRlckxvY2tDaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgaWYgKE1vZHVsZVsnZWxlbWVu
dFBvaW50ZXJMb2NrJ10pIHsKLSAgICAgICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBmdW5jdGlvbihldikgewotICAgICAgICAgICAgaWYgKCFCcm93c2VyLnBvaW50ZXJMb2Nr
ICYmIGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxvY2spIHsKLSAgICAgICAgICAgICAgY2FudmFzLnJl
cXVlc3RQb2ludGVyTG9jaygpOwotICAgICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgIH0sIGZhbHNlKTsKLSAgICAgICAgfQotICAgICAgfSxj
cmVhdGVDb250ZXh0OmZ1bmN0aW9uIChjYW52YXMsIHVzZVdlYkdMLCBzZXRJbk1vZHVsZSkgewot
ICAgICAgICB2YXIgY3R4OwotICAgICAgICB0cnkgewotICAgICAgICAgIGlmICh1c2VXZWJHTCkg
ewotICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJ2V4cGVyaW1lbnRhbC13ZWJn
bCcsIHsKLSAgICAgICAgICAgICAgYWxwaGE6IGZhbHNlCi0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7
Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmICghY3R4KSB0aHJvdyAnOignOwotICAgICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgICAgTW9kdWxlLnByaW50KCdDb3VsZCBub3QgY3JlYXRlIGNh
bnZhcyAtICcgKyBlKTsKLSAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotICAgICAg
ICBpZiAodXNlV2ViR0wpIHsKLSAgICAgICAgICAvLyBTZXQgdGhlIGJhY2tncm91bmQgb2YgdGhl
IFdlYkdMIGNhbnZhcyB0byBibGFjawotICAgICAgICAgIGNhbnZhcy5zdHlsZS5iYWNrZ3JvdW5k
Q29sb3IgPSAiYmxhY2siOwotICAgICAgICAgIC8vIFdhcm4gb24gY29udGV4dCBsb3NzCi0gICAg
ICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmdsY29udGV4dGxvc3QnLCBmdW5jdGlv
bihldmVudCkgewotICAgICAgICAgICAgYWxlcnQoJ1dlYkdMIGNvbnRleHQgbG9zdC4gWW91IHdp
bGwgbmVlZCB0byByZWxvYWQgdGhlIHBhZ2UuJyk7Ci0gICAgICAgICAgfSwgZmFsc2UpOwotICAg
ICAgICB9Ci0gICAgICAgIGlmIChzZXRJbk1vZHVsZSkgewotICAgICAgICAgIE1vZHVsZS5jdHgg
PSBjdHg7Ci0gICAgICAgICAgTW9kdWxlLnVzZVdlYkdMID0gdXNlV2ViR0w7Ci0gICAgICAgICAg
QnJvd3Nlci5tb2R1bGVDb250ZXh0Q3JlYXRlZENhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9uKGNh
bGxiYWNrKSB7IGNhbGxiYWNrKCkgfSk7Ci0gICAgICAgICAgQnJvd3Nlci5pbml0KCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIGN0eDsKLSAgICAgIH0sZGVzdHJveUNvbnRleHQ6ZnVuY3Rp
b24gKGNhbnZhcywgdXNlV2ViR0wsIHNldEluTW9kdWxlKSB7fSxmdWxsU2NyZWVuSGFuZGxlcnNJ
bnN0YWxsZWQ6ZmFsc2UsbG9ja1BvaW50ZXI6dW5kZWZpbmVkLHJlc2l6ZUNhbnZhczp1bmRlZmlu
ZWQscmVxdWVzdEZ1bGxTY3JlZW46ZnVuY3Rpb24gKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMp
IHsKLSAgICAgICAgQnJvd3Nlci5sb2NrUG9pbnRlciA9IGxvY2tQb2ludGVyOwotICAgICAgICBC
cm93c2VyLnJlc2l6ZUNhbnZhcyA9IHJlc2l6ZUNhbnZhczsKLSAgICAgICAgaWYgKHR5cGVvZiBC
cm93c2VyLmxvY2tQb2ludGVyID09PSAndW5kZWZpbmVkJykgQnJvd3Nlci5sb2NrUG9pbnRlciA9
IHRydWU7Ci0gICAgICAgIGlmICh0eXBlb2YgQnJvd3Nlci5yZXNpemVDYW52YXMgPT09ICd1bmRl
ZmluZWQnKSBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9IGZhbHNlOwotICAgICAgICB2YXIgY2FudmFz
ID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgZnVuY3Rpb24gZnVsbFNjcmVlbkNoYW5nZSgp
IHsKLSAgICAgICAgICBCcm93c2VyLmlzRnVsbFNjcmVlbiA9IGZhbHNlOwotICAgICAgICAgIGlm
ICgoZG9jdW1lbnRbJ3dlYmtpdEZ1bGxTY3JlZW5FbGVtZW50J10gfHwgZG9jdW1lbnRbJ3dlYmtp
dEZ1bGxzY3JlZW5FbGVtZW50J10gfHwKLSAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pGdWxs
U2NyZWVuRWxlbWVudCddIHx8IGRvY3VtZW50Wydtb3pGdWxsc2NyZWVuRWxlbWVudCddIHx8Ci0g
ICAgICAgICAgICAgICBkb2N1bWVudFsnZnVsbFNjcmVlbkVsZW1lbnQnXSB8fCBkb2N1bWVudFsn
ZnVsbHNjcmVlbkVsZW1lbnQnXSkgPT09IGNhbnZhcykgewotICAgICAgICAgICAgY2FudmFzLmNh
bmNlbEZ1bGxTY3JlZW4gPSBkb2N1bWVudFsnY2FuY2VsRnVsbFNjcmVlbiddIHx8Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pDYW5jZWxGdWxsU2Ny
ZWVuJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRb
J3dlYmtpdENhbmNlbEZ1bGxTY3JlZW4nXTsKLSAgICAgICAgICAgIGNhbnZhcy5jYW5jZWxGdWxs
U2NyZWVuID0gY2FudmFzLmNhbmNlbEZ1bGxTY3JlZW4uYmluZChkb2N1bWVudCk7Ci0gICAgICAg
ICAgICBpZiAoQnJvd3Nlci5sb2NrUG9pbnRlcikgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9jaygp
OwotICAgICAgICAgICAgQnJvd3Nlci5pc0Z1bGxTY3JlZW4gPSB0cnVlOwotICAgICAgICAgICAg
aWYgKEJyb3dzZXIucmVzaXplQ2FudmFzKSBCcm93c2VyLnNldEZ1bGxTY3JlZW5DYW52YXNTaXpl
KCk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChCcm93c2VyLnJlc2l6ZUNhbnZhcyl7Ci0gICAgICAg
ICAgICBCcm93c2VyLnNldFdpbmRvd2VkQ2FudmFzU2l6ZSgpOwotICAgICAgICAgIH0KLSAgICAg
ICAgICBpZiAoTW9kdWxlWydvbkZ1bGxTY3JlZW4nXSkgTW9kdWxlWydvbkZ1bGxTY3JlZW4nXShC
cm93c2VyLmlzRnVsbFNjcmVlbik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFCcm93c2VyLmZ1
bGxTY3JlZW5IYW5kbGVyc0luc3RhbGxlZCkgewotICAgICAgICAgIEJyb3dzZXIuZnVsbFNjcmVl
bkhhbmRsZXJzSW5zdGFsbGVkID0gdHJ1ZTsKLSAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCdmdWxsc2NyZWVuY2hhbmdlJywgZnVsbFNjcmVlbkNoYW5nZSwgZmFsc2UpOwotICAg
ICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vemZ1bGxzY3JlZW5jaGFuZ2UnLCBm
dWxsU2NyZWVuQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcignd2Via2l0ZnVsbHNjcmVlbmNoYW5nZScsIGZ1bGxTY3JlZW5DaGFuZ2UsIGZhbHNlKTsK
LSAgICAgICAgfQotICAgICAgICBjYW52YXMucmVxdWVzdEZ1bGxTY3JlZW4gPSBjYW52YXNbJ3Jl
cXVlc3RGdWxsU2NyZWVuJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2FudmFzWydtb3pSZXF1ZXN0RnVsbFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChjYW52YXNbJ3dlYmtpdFJlcXVlc3RGdWxsU2NyZWVuJ10gPyBmdW5jdGlv
bigpIHsgY2FudmFzWyd3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiddKEVsZW1lbnRbJ0FMTE9XX0tF
WUJPQVJEX0lOUFVUJ10pIH0gOiBudWxsKTsKLSAgICAgICAgY2FudmFzLnJlcXVlc3RGdWxsU2Ny
ZWVuKCk7Ci0gICAgICB9LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbiAoZnVuYykgewot
ICAgICAgICBpZiAoIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIHsKLSAgICAgICAgICB3
aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gd2luZG93WydyZXF1ZXN0QW5pbWF0aW9uRnJh
bWUnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3db
J21velJlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvd1snd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Wydtc1JlcXVl
c3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbmRvd1snb1JlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1snc2V0VGltZW91dCddOwotICAgICAg
ICB9Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuYyk7Ci0gICAgICB9
LHNhZmVDYWxsYmFjazpmdW5jdGlvbiAoZnVuYykgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgcmV0dXJuIGZ1bmMuYXBwbHkobnVsbCwgYXJndW1l
bnRzKTsKLSAgICAgICAgfTsKLSAgICAgIH0sc2FmZVJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5j
dGlvbiAoZnVuYykgewotICAgICAgICByZXR1cm4gQnJvd3Nlci5yZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOwotICAgICAgICB9
KTsKLSAgICAgIH0sc2FmZVNldFRpbWVvdXQ6ZnVuY3Rpb24gKGZ1bmMsIHRpbWVvdXQpIHsKLSAg
ICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9S
VCkgZnVuYygpOwotICAgICAgICB9LCB0aW1lb3V0KTsKLSAgICAgIH0sc2FmZVNldEludGVydmFs
OmZ1bmN0aW9uIChmdW5jLCB0aW1lb3V0KSB7Ci0gICAgICAgIHJldHVybiBzZXRJbnRlcnZhbChm
dW5jdGlvbigpIHsKLSAgICAgICAgICBpZiAoIUFCT1JUKSBmdW5jKCk7Ci0gICAgICAgIH0sIHRp
bWVvdXQpOwotICAgICAgfSxnZXRNaW1ldHlwZTpmdW5jdGlvbiAobmFtZSkgewotICAgICAgICBy
ZXR1cm4gewotICAgICAgICAgICdqcGcnOiAnaW1hZ2UvanBlZycsCi0gICAgICAgICAgJ2pwZWcn
OiAnaW1hZ2UvanBlZycsCi0gICAgICAgICAgJ3BuZyc6ICdpbWFnZS9wbmcnLAotICAgICAgICAg
ICdibXAnOiAnaW1hZ2UvYm1wJywKLSAgICAgICAgICAnb2dnJzogJ2F1ZGlvL29nZycsCi0gICAg
ICAgICAgJ3dhdic6ICdhdWRpby93YXYnLAotICAgICAgICAgICdtcDMnOiAnYXVkaW8vbXBlZycK
LSAgICAgICAgfVtuYW1lLnN1YnN0cihuYW1lLmxhc3RJbmRleE9mKCcuJykrMSldOwotICAgICAg
fSxnZXRVc2VyTWVkaWE6ZnVuY3Rpb24gKGZ1bmMpIHsKLSAgICAgICAgaWYoIXdpbmRvdy5nZXRV
c2VyTWVkaWEpIHsKLSAgICAgICAgICB3aW5kb3cuZ2V0VXNlck1lZGlhID0gbmF2aWdhdG9yWydn
ZXRVc2VyTWVkaWEnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0
b3JbJ21vekdldFVzZXJNZWRpYSddOwotICAgICAgICB9Ci0gICAgICAgIHdpbmRvdy5nZXRVc2Vy
TWVkaWEoZnVuYyk7Ci0gICAgICB9LGdldE1vdmVtZW50WDpmdW5jdGlvbiAoZXZlbnQpIHsKLSAg
ICAgICAgcmV0dXJuIGV2ZW50Wydtb3ZlbWVudFgnXSB8fAotICAgICAgICAgICAgICAgZXZlbnRb
J21vek1vdmVtZW50WCddIHx8Ci0gICAgICAgICAgICAgICBldmVudFsnd2Via2l0TW92ZW1lbnRY
J10gfHwKLSAgICAgICAgICAgICAgIDA7Ci0gICAgICB9LGdldE1vdmVtZW50WTpmdW5jdGlvbiAo
ZXZlbnQpIHsKLSAgICAgICAgcmV0dXJuIGV2ZW50Wydtb3ZlbWVudFknXSB8fAotICAgICAgICAg
ICAgICAgZXZlbnRbJ21vek1vdmVtZW50WSddIHx8Ci0gICAgICAgICAgICAgICBldmVudFsnd2Vi
a2l0TW92ZW1lbnRZJ10gfHwKLSAgICAgICAgICAgICAgIDA7Ci0gICAgICB9LG1vdXNlWDowLG1v
dXNlWTowLG1vdXNlTW92ZW1lbnRYOjAsbW91c2VNb3ZlbWVudFk6MCxjYWxjdWxhdGVNb3VzZUV2
ZW50OmZ1bmN0aW9uIChldmVudCkgeyAvLyBldmVudCBzaG91bGQgYmUgbW91c2Vtb3ZlLCBtb3Vz
ZWRvd24gb3IgbW91c2V1cAotICAgICAgICBpZiAoQnJvd3Nlci5wb2ludGVyTG9jaykgewotICAg
ICAgICAgIC8vIFdoZW4gdGhlIHBvaW50ZXIgaXMgbG9ja2VkLCBjYWxjdWxhdGUgdGhlIGNvb3Jk
aW5hdGVzCi0gICAgICAgICAgLy8gYmFzZWQgb24gdGhlIG1vdmVtZW50IG9mIHRoZSBtb3VzZS4K
LSAgICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBGaXJlZm94IGJ1ZyA3NjQ0OTgKLSAgICAgICAg
ICBpZiAoZXZlbnQudHlwZSAhPSAnbW91c2Vtb3ZlJyAmJgotICAgICAgICAgICAgICAoJ21vek1v
dmVtZW50WCcgaW4gZXZlbnQpKSB7Ci0gICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1lbnRY
ID0gQnJvd3Nlci5tb3VzZU1vdmVtZW50WSA9IDA7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFggPSBCcm93c2VyLmdldE1vdmVtZW50WChldmVu
dCk7Ci0gICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1lbnRZID0gQnJvd3Nlci5nZXRNb3Zl
bWVudFkoZXZlbnQpOwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBjaGVjayBpZiBTREwgaXMg
YXZhaWxhYmxlCi0gICAgICAgICAgaWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKLSAg
ICAgICAgICAJQnJvd3Nlci5tb3VzZVggPSBTREwubW91c2VYICsgQnJvd3Nlci5tb3VzZU1vdmVt
ZW50WDsKLSAgICAgICAgICAJQnJvd3Nlci5tb3VzZVkgPSBTREwubW91c2VZICsgQnJvd3Nlci5t
b3VzZU1vdmVtZW50WTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgIAkvLyBqdXN0IGFk
ZCB0aGUgbW91c2UgZGVsdGEgdG8gdGhlIGN1cnJlbnQgYWJzb2x1dCBtb3VzZSBwb3NpdGlvbgot
ICAgICAgICAgIAkvLyBGSVhNRTogaWRlYWxseSB0aGlzIHNob3VsZCBiZSBjbGFtcGVkIGFnYWlu
c3QgdGhlIGNhbnZhcyBzaXplIGFuZCB6ZXJvCi0gICAgICAgICAgCUJyb3dzZXIubW91c2VYICs9
IEJyb3dzZXIubW91c2VNb3ZlbWVudFg7Ci0gICAgICAgICAgCUJyb3dzZXIubW91c2VZICs9IEJy
b3dzZXIubW91c2VNb3ZlbWVudFk7Ci0gICAgICAgICAgfSAgICAgICAgCi0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgLy8gT3RoZXJ3aXNlLCBjYWxjdWxhdGUgdGhlIG1vdmVtZW50IGJhc2Vk
IG9uIHRoZSBjaGFuZ2VzCi0gICAgICAgICAgLy8gaW4gdGhlIGNvb3JkaW5hdGVzLgotICAgICAg
ICAgIHZhciByZWN0ID0gTW9kdWxlWyJjYW52YXMiXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
LSAgICAgICAgICB2YXIgeCwgeTsKLSAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PSAndG91Y2hz
dGFydCcgfHwKLSAgICAgICAgICAgICAgZXZlbnQudHlwZSA9PSAndG91Y2hlbmQnIHx8Ci0gICAg
ICAgICAgICAgIGV2ZW50LnR5cGUgPT0gJ3RvdWNobW92ZScpIHsKLSAgICAgICAgICAgIHZhciB0
ID0gZXZlbnQudG91Y2hlcy5pdGVtKDApOwotICAgICAgICAgICAgaWYgKHQpIHsKLSAgICAgICAg
ICAgICAgeCA9IHQucGFnZVggLSAod2luZG93LnNjcm9sbFggKyByZWN0LmxlZnQpOwotICAgICAg
ICAgICAgICB5ID0gdC5wYWdlWSAtICh3aW5kb3cuc2Nyb2xsWSArIHJlY3QudG9wKTsKLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgeCA9IGV2ZW50LnBhZ2VYIC0gKHdpbmRvdy5z
Y3JvbGxYICsgcmVjdC5sZWZ0KTsKLSAgICAgICAgICAgIHkgPSBldmVudC5wYWdlWSAtICh3aW5k
b3cuc2Nyb2xsWSArIHJlY3QudG9wKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gdGhlIGNh
bnZhcyBtaWdodCBiZSBDU1Mtc2NhbGVkIGNvbXBhcmVkIHRvIGl0cyBiYWNrYnVmZmVyOwotICAg
ICAgICAgIC8vIFNETC11c2luZyBjb250ZW50IHdpbGwgd2FudCBtb3VzZSBjb29yZGluYXRlcyBp
biB0ZXJtcwotICAgICAgICAgIC8vIG9mIGJhY2tidWZmZXIgdW5pdHMuCi0gICAgICAgICAgdmFy
IGN3ID0gTW9kdWxlWyJjYW52YXMiXS53aWR0aDsKLSAgICAgICAgICB2YXIgY2ggPSBNb2R1bGVb
ImNhbnZhcyJdLmhlaWdodDsKLSAgICAgICAgICB4ID0geCAqIChjdyAvIHJlY3Qud2lkdGgpOwot
ICAgICAgICAgIHkgPSB5ICogKGNoIC8gcmVjdC5oZWlnaHQpOwotICAgICAgICAgIEJyb3dzZXIu
bW91c2VNb3ZlbWVudFggPSB4IC0gQnJvd3Nlci5tb3VzZVg7Ci0gICAgICAgICAgQnJvd3Nlci5t
b3VzZU1vdmVtZW50WSA9IHkgLSBCcm93c2VyLm1vdXNlWTsKLSAgICAgICAgICBCcm93c2VyLm1v
dXNlWCA9IHg7Ci0gICAgICAgICAgQnJvd3Nlci5tb3VzZVkgPSB5OwotICAgICAgICB9Ci0gICAg
ICB9LHhockxvYWQ6ZnVuY3Rpb24gKHVybCwgb25sb2FkLCBvbmVycm9yKSB7Ci0gICAgICAgIHZh
ciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHVy
bCwgdHJ1ZSk7Ci0gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOwotICAg
ICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKHhoci5zdGF0dXMg
PT0gMjAwIHx8ICh4aHIuc3RhdHVzID09IDAgJiYgeGhyLnJlc3BvbnNlKSkgeyAvLyBmaWxlIFVS
THMgY2FuIHJldHVybiAwCi0gICAgICAgICAgICBvbmxvYWQoeGhyLnJlc3BvbnNlKTsKLSAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgb25lcnJvcigpOwotICAgICAgICAgIH0KLSAgICAg
ICAgfTsKLSAgICAgICAgeGhyLm9uZXJyb3IgPSBvbmVycm9yOwotICAgICAgICB4aHIuc2VuZChu
dWxsKTsKLSAgICAgIH0sYXN5bmNMb2FkOmZ1bmN0aW9uICh1cmwsIG9ubG9hZCwgb25lcnJvciwg
bm9SdW5EZXApIHsKLSAgICAgICAgQnJvd3Nlci54aHJMb2FkKHVybCwgZnVuY3Rpb24oYXJyYXlC
dWZmZXIpIHsKLSAgICAgICAgICBhc3NlcnQoYXJyYXlCdWZmZXIsICdMb2FkaW5nIGRhdGEgZmls
ZSAiJyArIHVybCArICciIGZhaWxlZCAobm8gYXJyYXlCdWZmZXIpLicpOwotICAgICAgICAgIG9u
bG9hZChuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikpOwotICAgICAgICAgIGlmICghbm9SdW5E
ZXApIHJlbW92ZVJ1bkRlcGVuZGVuY3koJ2FsICcgKyB1cmwpOwotICAgICAgICB9LCBmdW5jdGlv
bihldmVudCkgewotICAgICAgICAgIGlmIChvbmVycm9yKSB7Ci0gICAgICAgICAgICBvbmVycm9y
KCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRocm93ICdMb2FkaW5nIGRhdGEg
ZmlsZSAiJyArIHVybCArICciIGZhaWxlZC4nOwotICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0g
ICAgICAgIGlmICghbm9SdW5EZXApIGFkZFJ1bkRlcGVuZGVuY3koJ2FsICcgKyB1cmwpOwotICAg
ICAgfSxyZXNpemVMaXN0ZW5lcnM6W10sdXBkYXRlUmVzaXplTGlzdGVuZXJzOmZ1bmN0aW9uICgp
IHsKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIEJyb3dz
ZXIucmVzaXplTGlzdGVuZXJzLmZvckVhY2goZnVuY3Rpb24obGlzdGVuZXIpIHsKLSAgICAgICAg
ICBsaXN0ZW5lcihjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwotICAgICAgICB9KTsKLSAg
ICAgIH0sc2V0Q2FudmFzU2l6ZTpmdW5jdGlvbiAod2lkdGgsIGhlaWdodCwgbm9VcGRhdGVzKSB7
Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBjYW52YXMu
d2lkdGggPSB3aWR0aDsKLSAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDsKLSAgICAgICAg
aWYgKCFub1VwZGF0ZXMpIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7Ci0gICAgICB9
LHdpbmRvd2VkV2lkdGg6MCx3aW5kb3dlZEhlaWdodDowLHNldEZ1bGxTY3JlZW5DYW52YXNTaXpl
OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0g
ICAgICAgIHRoaXMud2luZG93ZWRXaWR0aCA9IGNhbnZhcy53aWR0aDsKLSAgICAgICAgdGhpcy53
aW5kb3dlZEhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7Ci0gICAgICAgIGNhbnZhcy53aWR0aCA9IHNj
cmVlbi53aWR0aDsKLSAgICAgICAgY2FudmFzLmhlaWdodCA9IHNjcmVlbi5oZWlnaHQ7Ci0gICAg
ICAgIC8vIGNoZWNrIGlmIFNETCBpcyBhdmFpbGFibGUgICAKLSAgICAgICAgaWYgKHR5cGVvZiBT
REwgIT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgCXZhciBmbGFncyA9IEhFQVBVMzJbKChTREwu
c2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV07Ci0gICAgICAgIAlmbGFncyA9IGZs
YWdzIHwgMHgwMDgwMDAwMDsgLy8gc2V0IFNETF9GVUxMU0NSRUVOIGZsYWcKLSAgICAgICAgCUhF
QVAzMlsoKFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXT1mbGFncwotICAg
ICAgICB9Ci0gICAgICAgIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7Ci0gICAgICB9
LHNldFdpbmRvd2VkQ2FudmFzU2l6ZTpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBjYW52YXMg
PSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBjYW52YXMud2lkdGggPSB0aGlzLndpbmRvd2Vk
V2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB0aGlzLndpbmRvd2VkSGVpZ2h0OwotICAg
ICAgICAvLyBjaGVjayBpZiBTREwgaXMgYXZhaWxhYmxlICAgICAgIAotICAgICAgICBpZiAodHlw
ZW9mIFNETCAhPSAidW5kZWZpbmVkIikgewotICAgICAgICAJdmFyIGZsYWdzID0gSEVBUFUzMlso
KFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXTsKLSAgICAgICAgCWZsYWdz
ID0gZmxhZ3MgJiB+MHgwMDgwMDAwMDsgLy8gY2xlYXIgU0RMX0ZVTExTQ1JFRU4gZmxhZwotICAg
ICAgICAJSEVBUDMyWygoU0RMLnNjcmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+MildPWZs
YWdzCi0gICAgICAgIH0KLSAgICAgICAgQnJvd3Nlci51cGRhdGVSZXNpemVMaXN0ZW5lcnMoKTsK
LSAgICAgIH19OwotX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZiA9IGFsbG9jYXRlKDEyLCAidm9pZCoi
LCBBTExPQ19TVEFUSUMpOwotRlMuc3RhdGljSW5pdCgpO19fQVRJTklUX18udW5zaGlmdCh7IGZ1
bmM6IGZ1bmN0aW9uKCkgeyBpZiAoIU1vZHVsZVsibm9GU0luaXQiXSAmJiAhRlMuaW5pdC5pbml0
aWFsaXplZCkgRlMuaW5pdCgpIH0gfSk7X19BVE1BSU5fXy5wdXNoKHsgZnVuYzogZnVuY3Rpb24o
KSB7IEZTLmlnbm9yZVBlcm1pc3Npb25zID0gZmFsc2UgfSB9KTtfX0FURVhJVF9fLnB1c2goeyBm
dW5jOiBmdW5jdGlvbigpIHsgRlMucXVpdCgpIH0gfSk7TW9kdWxlWyJGU19jcmVhdGVGb2xkZXIi
XSA9IEZTLmNyZWF0ZUZvbGRlcjtNb2R1bGVbIkZTX2NyZWF0ZVBhdGgiXSA9IEZTLmNyZWF0ZVBh
dGg7TW9kdWxlWyJGU19jcmVhdGVEYXRhRmlsZSJdID0gRlMuY3JlYXRlRGF0YUZpbGU7TW9kdWxl
WyJGU19jcmVhdGVQcmVsb2FkZWRGaWxlIl0gPSBGUy5jcmVhdGVQcmVsb2FkZWRGaWxlO01vZHVs
ZVsiRlNfY3JlYXRlTGF6eUZpbGUiXSA9IEZTLmNyZWF0ZUxhenlGaWxlO01vZHVsZVsiRlNfY3Jl
YXRlTGluayJdID0gRlMuY3JlYXRlTGluaztNb2R1bGVbIkZTX2NyZWF0ZURldmljZSJdID0gRlMu
Y3JlYXRlRGV2aWNlOwotX19fZXJybm9fc3RhdGUgPSBSdW50aW1lLnN0YXRpY0FsbG9jKDQpOyBI
RUFQMzJbKChfX19lcnJub19zdGF0ZSk+PjIpXT0wOwotX2ZnZXRjLnJldCA9IGFsbG9jYXRlKFsw
XSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLU1vZHVsZVsicmVxdWVzdEZ1bGxTY3JlZW4iXSA9IGZ1
bmN0aW9uKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMpIHsgQnJvd3Nlci5yZXF1ZXN0RnVsbFNj
cmVlbihsb2NrUG9pbnRlciwgcmVzaXplQ2FudmFzKSB9OwotICBNb2R1bGVbInJlcXVlc3RBbmlt
YXRpb25GcmFtZSJdID0gZnVuY3Rpb24oZnVuYykgeyBCcm93c2VyLnJlcXVlc3RBbmltYXRpb25G
cmFtZShmdW5jKSB9OwotICBNb2R1bGVbInNldENhbnZhc1NpemUiXSA9IGZ1bmN0aW9uKHdpZHRo
LCBoZWlnaHQsIG5vVXBkYXRlcykgeyBCcm93c2VyLnNldENhbnZhc1NpemUod2lkdGgsIGhlaWdo
dCwgbm9VcGRhdGVzKSB9OwotICBNb2R1bGVbInBhdXNlTWFpbkxvb3AiXSA9IGZ1bmN0aW9uKCkg
eyBCcm93c2VyLm1haW5Mb29wLnBhdXNlKCkgfTsKLSAgTW9kdWxlWyJyZXN1bWVNYWluTG9vcCJd
ID0gZnVuY3Rpb24oKSB7IEJyb3dzZXIubWFpbkxvb3AucmVzdW1lKCkgfTsKLSAgTW9kdWxlWyJn
ZXRVc2VyTWVkaWEiXSA9IGZ1bmN0aW9uKCkgeyBCcm93c2VyLmdldFVzZXJNZWRpYSgpIH0KLVNU
QUNLX0JBU0UgPSBTVEFDS1RPUCA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkoU1RBVElDVE9QKTsKLXN0
YXRpY1NlYWxlZCA9IHRydWU7IC8vIHNlYWwgdGhlIHN0YXRpYyBwb3J0aW9uIG9mIG1lbW9yeQot
U1RBQ0tfTUFYID0gU1RBQ0tfQkFTRSArIDUyNDI4ODA7Ci1EWU5BTUlDX0JBU0UgPSBEWU5BTUlD
VE9QID0gUnVudGltZS5hbGlnbk1lbW9yeShTVEFDS19NQVgpOwotYXNzZXJ0KERZTkFNSUNfQkFT
RSA8IFRPVEFMX01FTU9SWSk7IC8vIFN0YWNrIG11c3QgZml0IGluIFRPVEFMX01FTU9SWTsgYWxs
b2NhdGlvbnMgZnJvbSBoZXJlIG9uIG1heSBlbmxhcmdlIFRPVEFMX01FTU9SWQotIHZhciBjdHR6
X2k4ID0gYWxsb2NhdGUoWzgsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwy
LDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQs
MCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNiwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiww
LDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwzLDAs
MSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw3LDAsMSwwLDIsMCwx
LDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEs
MCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSww
LDYsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAs
MiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwz
LDAsMSwwLDIsMCwxLDBdLCAiaTgiLCBBTExPQ19EWU5BTUlDKTsKLXZhciBNYXRoX21pbiA9IE1h
dGgubWluOwotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSkgewot
ICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxh
NSk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAh
PT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQot
fQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3KSB7
Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMs
YTQsYTUsYTYsYTcpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1i
ZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwg
MCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aShpbmRleCxhMSkgewotICB0cnkgewotICAg
IE1vZHVsZVsiZHluQ2FsbF92aSJdKGluZGV4LGExKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYg
KHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAg
YXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpKGluZGV4
LGExLGEyKSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaSJdKGluZGV4LGExLGEy
KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9
PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19
Ci1mdW5jdGlvbiBpbnZva2VfaWlpKGluZGV4LGExLGEyKSB7Ci0gIHRyeSB7Ci0gICAgcmV0dXJu
IE1vZHVsZVsiZHluQ2FsbF9paWkiXShpbmRleCxhMSxhMik7Ci0gIH0gY2F0Y2goZSkgewotICAg
IGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwot
ICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lpaWlp
aShpbmRleCxhMSxhMixhMyxhNCxhNSkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5
bkNhbGxfaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUpOwotICB9IGNhdGNoKGUpIHsKLSAg
ICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsK
LSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9paShp
bmRleCxhMSkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWkiXShpbmRl
eCxhMSk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYg
ZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAg
fQotfQotZnVuY3Rpb24gaW52b2tlX2lpaWkoaW5kZXgsYTEsYTIsYTMpIHsKLSAgdHJ5IHsKLSAg
ICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXShpbmRleCxhMSxhMixhMyk7Ci0gIH0gY2F0
Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAn
KSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24g
aW52b2tlX3ZpaWlpaWYoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYpIHsKLSAgdHJ5IHsKLSAgICBN
b2R1bGVbImR5bkNhbGxfdmlpaWlpZiJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KTsKLSAgfSBj
YXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2pt
cCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlv
biBpbnZva2VfdmlpaShpbmRleCxhMSxhMixhMykgewotICB0cnkgewotICAgIE1vZHVsZVsiZHlu
Q2FsbF92aWlpIl0oaW5kZXgsYTEsYTIsYTMpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlw
ZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21b
InNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWkoaW5k
ZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNh
bGxfdmlpaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpOwotICB9IGNhdGNo
KGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykg
dGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGlu
dm9rZV92KGluZGV4KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3YiXShpbmRleCk7
Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0g
J2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQot
ZnVuY3Rpb24gaW52b2tlX2lpaWlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCkg
ewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWlpIl0oaW5kZXgs
YTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9m
IGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNl
dFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWlpKGluZGV4
LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4LGE5KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5D
YWxsX3ZpaWlpaWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSk7Ci0gIH0g
Y2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdq
bXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rp
b24gaW52b2tlX3ZpaWlpaWlmKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3KSB7Ci0gIHRyeSB7
Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlmIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYs
YTcpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUg
IT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0K
LX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KSB7Ci0g
IHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxh
NSxhNik7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYg
ZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAg
fQotfQotZnVuY3Rpb24gaW52b2tlX2lpaWlpKGluZGV4LGExLGEyLGEzLGE0KSB7Ci0gIHRyeSB7
Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaSJdKGluZGV4LGExLGEyLGEzLGE0KTsK
LSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAn
bG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1m
dW5jdGlvbiBpbnZva2VfdmlpaWkoaW5kZXgsYTEsYTIsYTMsYTQpIHsKLSAgdHJ5IHsKLSAgICBN
b2R1bGVbImR5bkNhbGxfdmlpaWkiXShpbmRleCxhMSxhMixhMyxhNCk7Ci0gIH0gY2F0Y2goZSkg
ewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJv
dyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gYXNtUHJp
bnRJbnQoeCwgeSkgewotICBNb2R1bGUucHJpbnQoJ2ludCAnICsgeCArICcsJyArIHkpOy8vICsg
JyAnICsgbmV3IEVycm9yKCkuc3RhY2spOwotfQotZnVuY3Rpb24gYXNtUHJpbnRGbG9hdCh4LCB5
KSB7Ci0gIE1vZHVsZS5wcmludCgnZmxvYXQgJyArIHggKyAnLCcgKyB5KTsvLyArICcgJyArIG5l
dyBFcnJvcigpLnN0YWNrKTsKLX0KLS8vIEVNU0NSSVBURU5fU1RBUlRfQVNNCi12YXIgYXNtPShm
dW5jdGlvbihnbG9iYWwsZW52LGJ1ZmZlcil7InVzZSBhc20iO3ZhciBhPW5ldyBnbG9iYWwuSW50
OEFycmF5KGJ1ZmZlcik7dmFyIGI9bmV3IGdsb2JhbC5JbnQxNkFycmF5KGJ1ZmZlcik7dmFyIGM9
bmV3IGdsb2JhbC5JbnQzMkFycmF5KGJ1ZmZlcik7dmFyIGQ9bmV3IGdsb2JhbC5VaW50OEFycmF5
KGJ1ZmZlcik7dmFyIGU9bmV3IGdsb2JhbC5VaW50MTZBcnJheShidWZmZXIpO3ZhciBmPW5ldyBn
bG9iYWwuVWludDMyQXJyYXkoYnVmZmVyKTt2YXIgZz1uZXcgZ2xvYmFsLkZsb2F0MzJBcnJheShi
dWZmZXIpO3ZhciBoPW5ldyBnbG9iYWwuRmxvYXQ2NEFycmF5KGJ1ZmZlcik7dmFyIGk9ZW52LlNU
QUNLVE9QfDA7dmFyIGo9ZW52LlNUQUNLX01BWHwwO3ZhciBrPWVudi50ZW1wRG91YmxlUHRyfDA7
dmFyIGw9ZW52LkFCT1JUfDA7dmFyIG09ZW52LmN0dHpfaTh8MDt2YXIgbj1lbnYuY3Rsel9pOHww
O3ZhciBvPWVudi5fc3RkaW58MDt2YXIgcD1lbnYuX19aVFZOMTBfX2N4eGFiaXYxMTdfX2NsYXNz
X3R5cGVfaW5mb0V8MDt2YXIgcT1lbnYuX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5
cGVfaW5mb0V8MDt2YXIgcj1lbnYuX3N0ZGVycnwwO3ZhciBzPWVudi5fX19mc211OHwwO3ZhciB0
PWVudi5fc3Rkb3V0fDA7dmFyIHU9ZW52Ll9fX2Rzb19oYW5kbGV8MDt2YXIgdj0rZW52Lk5hTjt2
YXIgdz0rZW52LkluZmluaXR5O3ZhciB4PTA7dmFyIHk9MDt2YXIgej0wO3ZhciBBPTA7dmFyIEI9
MCxDPTAsRD0wLEU9MCxGPTAuMCxHPTAsSD0wLEk9MCxKPTAuMDt2YXIgSz0wO3ZhciBMPTA7dmFy
IE09MDt2YXIgTj0wO3ZhciBPPTA7dmFyIFA9MDt2YXIgUT0wO3ZhciBSPTA7dmFyIFM9MDt2YXIg
VD0wO3ZhciBVPWdsb2JhbC5NYXRoLmZsb29yO3ZhciBWPWdsb2JhbC5NYXRoLmFiczt2YXIgVz1n
bG9iYWwuTWF0aC5zcXJ0O3ZhciBYPWdsb2JhbC5NYXRoLnBvdzt2YXIgWT1nbG9iYWwuTWF0aC5j
b3M7dmFyIFo9Z2xvYmFsLk1hdGguc2luO3ZhciBfPWdsb2JhbC5NYXRoLnRhbjt2YXIgJD1nbG9i
YWwuTWF0aC5hY29zO3ZhciBhYT1nbG9iYWwuTWF0aC5hc2luO3ZhciBhYj1nbG9iYWwuTWF0aC5h
dGFuO3ZhciBhYz1nbG9iYWwuTWF0aC5hdGFuMjt2YXIgYWQ9Z2xvYmFsLk1hdGguZXhwO3ZhciBh
ZT1nbG9iYWwuTWF0aC5sb2c7dmFyIGFmPWdsb2JhbC5NYXRoLmNlaWw7dmFyIGFnPWdsb2JhbC5N
YXRoLmltdWw7dmFyIGFoPWVudi5hYm9ydDt2YXIgYWk9ZW52LmFzc2VydDt2YXIgYWo9ZW52LmFz
bVByaW50SW50O3ZhciBhaz1lbnYuYXNtUHJpbnRGbG9hdDt2YXIgYWw9ZW52Lm1pbjt2YXIgYW09
ZW52Lmludm9rZV92aWlpaWk7dmFyIGFuPWVudi5pbnZva2VfdmlpaWlpaWk7dmFyIGFvPWVudi5p
bnZva2Vfdmk7dmFyIGFwPWVudi5pbnZva2VfdmlpO3ZhciBhcT1lbnYuaW52b2tlX2lpaTt2YXIg
YXI9ZW52Lmludm9rZV9paWlpaWk7dmFyIGFzPWVudi5pbnZva2VfaWk7dmFyIGF0PWVudi5pbnZv
a2VfaWlpaTt2YXIgYXU9ZW52Lmludm9rZV92aWlpaWlmO3ZhciBhdj1lbnYuaW52b2tlX3ZpaWk7
dmFyIGF3PWVudi5pbnZva2VfdmlpaWlpaWlpO3ZhciBheD1lbnYuaW52b2tlX3Y7dmFyIGF5PWVu
di5pbnZva2VfaWlpaWlpaWlpO3ZhciBhej1lbnYuaW52b2tlX3ZpaWlpaWlpaWk7dmFyIGFBPWVu
di5pbnZva2VfdmlpaWlpaWY7dmFyIGFCPWVudi5pbnZva2VfdmlpaWlpaTt2YXIgYUM9ZW52Lmlu
dm9rZV9paWlpaTt2YXIgYUQ9ZW52Lmludm9rZV92aWlpaTt2YXIgYUU9ZW52Ll9sbHZtX2xpZmV0
aW1lX2VuZDt2YXIgYUY9ZW52Ll9fc2NhblN0cmluZzt2YXIgYUc9ZW52Ll9wdGhyZWFkX211dGV4
X2xvY2s7dmFyIGFIPWVudi5fX19jeGFfZW5kX2NhdGNoO3ZhciBhST1lbnYuX3N0cnRvdWxsO3Zh
ciBhSj1lbnYuX19pc0Zsb2F0O3ZhciBhSz1lbnYuX2ZmbHVzaDt2YXIgYUw9ZW52Ll9faXNMZWFw
WWVhcjt2YXIgYU09ZW52Ll9md3JpdGU7dmFyIGFOPWVudi5fc2VuZDt2YXIgYU89ZW52Ll9sbHZt
X3VtdWxfd2l0aF9vdmVyZmxvd19pMzI7dmFyIGFQPWVudi5faXNzcGFjZTt2YXIgYVE9ZW52Ll9y
ZWFkO3ZhciBhUj1lbnYuX19fY3hhX2d1YXJkX2Fib3J0O3ZhciBhUz1lbnYuX25ld2xvY2FsZTt2
YXIgYVQ9ZW52Ll9fX2d4eF9wZXJzb25hbGl0eV92MDt2YXIgYVU9ZW52Ll9wdGhyZWFkX2NvbmRf
d2FpdDt2YXIgYVY9ZW52Ll9fX2N4YV9yZXRocm93O3ZhciBhVz1lbnYuX19fcmVzdW1lRXhjZXB0
aW9uO3ZhciBhWD1lbnYuX2xsdm1fdmFfZW5kO3ZhciBhWT1lbnYuX3Zzc2NhbmY7dmFyIGFaPWVu
di5fc25wcmludGY7dmFyIGFfPWVudi5fZmdldGM7dmFyIGEkPWVudi5fYXRleGl0O3ZhciBhMD1l
bnYuX19fY3hhX2ZyZWVfZXhjZXB0aW9uO3ZhciBhMT1lbnYuX19aOGNhdGNsb3NlUDhfbmxfY2F0
ZDt2YXIgYTI9ZW52Ll9fX3NldEVyck5vO3ZhciBhMz1lbnYuX2lzeGRpZ2l0O3ZhciBhND1lbnYu
X2V4aXQ7dmFyIGE1PWVudi5fc3ByaW50Zjt2YXIgYTY9ZW52Ll9fX2N0eXBlX2JfbG9jO3ZhciBh
Nz1lbnYuX2ZyZWVsb2NhbGU7dmFyIGE4PWVudi5fX1o3Y2F0b3BlblBLY2k7dmFyIGE5PWVudi5f
YXNwcmludGY7dmFyIGJhPWVudi5fX19jeGFfaXNfbnVtYmVyX3R5cGU7dmFyIGJiPWVudi5fX19j
eGFfZG9lc19pbmhlcml0O3ZhciBiYz1lbnYuX19fY3hhX2d1YXJkX2FjcXVpcmU7dmFyIGJkPWVu
di5fX19sb2NhbGVfbWJfY3VyX21heDt2YXIgYmU9ZW52Ll9fX2N4YV9iZWdpbl9jYXRjaDt2YXIg
YmY9ZW52Ll9yZWN2O3ZhciBiZz1lbnYuX19wYXJzZUludDY0O3ZhciBiaD1lbnYuX19aU3QxOHVu
Y2F1Z2h0X2V4Y2VwdGlvbnY7dmFyIGJpPWVudi5fX19jeGFfY2FsbF91bmV4cGVjdGVkO3ZhciBi
aj1lbnYuX19leGl0O3ZhciBiaz1lbnYuX3N0cmZ0aW1lO3ZhciBibD1lbnYuX19fY3hhX3Rocm93
O3ZhciBibT1lbnYuX2xsdm1fZWhfZXhjZXB0aW9uO3ZhciBibj1lbnYuX3ByZWFkO3ZhciBibz1l
bnYuX19hcnJheVN1bTt2YXIgYnA9ZW52Ll9sb2c7dmFyIGJxPWVudi5fX19jeGFfZmluZF9tYXRj
aGluZ19jYXRjaDt2YXIgYnI9ZW52Ll9fZm9ybWF0U3RyaW5nO3ZhciBicz1lbnYuX3B0aHJlYWRf
Y29uZF9icm9hZGNhc3Q7dmFyIGJ0PWVudi5fX1pTdDl0ZXJtaW5hdGV2O3ZhciBidT1lbnYuX3B0
aHJlYWRfbXV0ZXhfdW5sb2NrO3ZhciBidj1lbnYuX3Nicms7dmFyIGJ3PWVudi5fX19lcnJub19s
b2NhdGlvbjt2YXIgYng9ZW52Ll9zdHJlcnJvcjt2YXIgYnk9ZW52Ll9sbHZtX2xpZmV0aW1lX3N0
YXJ0O3ZhciBiej1lbnYuX19fY3hhX2d1YXJkX3JlbGVhc2U7dmFyIGJBPWVudi5fdW5nZXRjO3Zh
ciBiQj1lbnYuX3VzZWxvY2FsZTt2YXIgYkM9ZW52Ll92c25wcmludGY7dmFyIGJEPWVudi5fc3Nj
YW5mO3ZhciBiRT1lbnYuX3N5c2NvbmY7dmFyIGJGPWVudi5fZnJlYWQ7dmFyIGJHPWVudi5fYWJv
cnQ7dmFyIGJIPWVudi5faXNkaWdpdDt2YXIgYkk9ZW52Ll9zdHJ0b2xsO3ZhciBiSj1lbnYuX19h
ZGREYXlzO3ZhciBiSz1lbnYuX2Zsb29yO3ZhciBiTD1lbnYuX19yZWFsbHlOZWdhdGl2ZTt2YXIg
Yk09ZW52Ll9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtjO3ZhciBiTj1lbnYuX3dyaXRlO3ZhciBi
Tz1lbnYuX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbjt2YXIgYlA9ZW52Ll9fX2N4YV9wdXJlX3Zp
cnR1YWw7dmFyIGJRPWVudi5fdmFzcHJpbnRmO3ZhciBiUj1lbnYuX19fY3R5cGVfdG91cHBlcl9s
b2M7dmFyIGJTPWVudi5fX19jdHlwZV90b2xvd2VyX2xvYzt2YXIgYlQ9ZW52Ll9wd3JpdGU7dmFy
IGJVPWVudi5fc3RyZXJyb3Jfcjt2YXIgYlY9ZW52Ll90aW1lOwotLy8gRU1TQ1JJUFRFTl9TVEFS
VF9GVU5DUwotZnVuY3Rpb24gY2MoYSl7YT1hfDA7dmFyIGI9MDtiPWk7aT1pK2F8MDtpPWkrNz4+
Mzw8MztyZXR1cm4gYnwwfWZ1bmN0aW9uIGNkKCl7cmV0dXJuIGl8MH1mdW5jdGlvbiBjZShhKXth
PWF8MDtpPWF9ZnVuY3Rpb24gY2YoYSxiKXthPWF8MDtiPWJ8MDtpZigoeHwwKT09MCl7eD1hO3k9
Yn19ZnVuY3Rpb24gY2coYil7Yj1ifDA7YVtrXT1hW2JdO2FbaysxfDBdPWFbYisxfDBdO2Fbaysy
fDBdPWFbYisyfDBdO2FbayszfDBdPWFbYiszfDBdfWZ1bmN0aW9uIGNoKGIpe2I9YnwwO2Fba109
YVtiXTthW2srMXwwXT1hW2IrMXwwXTthW2srMnwwXT1hW2IrMnwwXTthW2srM3wwXT1hW2IrM3ww
XTthW2srNHwwXT1hW2IrNHwwXTthW2srNXwwXT1hW2IrNXwwXTthW2srNnwwXT1hW2IrNnwwXTth
W2srN3wwXT1hW2IrN3wwXX1mdW5jdGlvbiBjaShhKXthPWF8MDtLPWF9ZnVuY3Rpb24gY2ooYSl7
YT1hfDA7TD1hfWZ1bmN0aW9uIGNrKGEpe2E9YXwwO009YX1mdW5jdGlvbiBjbChhKXthPWF8MDtO
PWF9ZnVuY3Rpb24gY20oYSl7YT1hfDA7Tz1hfWZ1bmN0aW9uIGNuKGEpe2E9YXwwO1A9YX1mdW5j
dGlvbiBjbyhhKXthPWF8MDtRPWF9ZnVuY3Rpb24gY3AoYSl7YT1hfDA7Uj1hfWZ1bmN0aW9uIGNx
KGEpe2E9YXwwO1M9YX1mdW5jdGlvbiBjcihhKXthPWF8MDtUPWF9ZnVuY3Rpb24gY3MoKXtjW3Er
OD4+Ml09MjUwO2NbcSsxMj4+Ml09MTI4O2NbcSsxNj4+Ml09NjI7Y1txKzIwPj4yXT0xNTA7Y1tx
KzI0Pj4yXT04O2NbcSsyOD4+Ml09MTA7Y1txKzMyPj4yXT0yO2NbcSszNj4+Ml09MjtjW3ArOD4+
Ml09MjUwO2NbcCsxMj4+Ml09MjQ0O2NbcCsxNj4+Ml09NjI7Y1twKzIwPj4yXT0xNTA7Y1twKzI0
Pj4yXT04O2NbcCsyOD4+Ml09MjY7Y1twKzMyPj4yXT00O2NbcCszNj4+Ml09ODtjWzIwMzZdPXAr
ODtjWzIwMzhdPXArODtjWzIwNDBdPXErODtjWzIwNDRdPXErODtjWzIwNDhdPXErODtjWzIwNTJd
PXErODtjWzIwNTZdPXErODtjWzIwNjBdPXArODtjWzIwOTRdPXErODtjWzIwOThdPXErODtjWzIx
NjJdPXErODtjWzIxNjZdPXErODtjWzIxODZdPXArODtjWzIxODhdPXErODtjWzIyMjRdPXErODtj
WzIyMjhdPXErODtjWzIyNjRdPXErODtjWzIyNjhdPXErODtjWzIyODhdPXArODtjWzIyOTBdPXAr
ODtjWzIyOTJdPXErODtjWzIyOTZdPXErODtjWzIzMDBdPXErODtjWzIzMDRdPXArODtjWzIzMDZd
PXArODtjWzIzMDhdPXArODtjWzIzMTBdPXArODtjWzIzMTJdPXArODtjWzIzMTRdPXArODtjWzIz
MTZdPXArODtjWzIzNDJdPXErODtjWzIzNDZdPXArODtjWzIzNDhdPXErODtjWzIzNTJdPXErODtj
WzIzNTZdPXErODtjWzIzNjBdPXArODtjWzIzNjJdPXArODtjWzIzNjRdPXArODtjWzIzNjZdPXAr
ODtjWzI0MDBdPXArODtjWzI0MDJdPXArODtjWzI0MDRdPXArODtjWzI0MDZdPXErODtjWzI0MTBd
PXErODtjWzI0MTRdPXErODtjWzI0MThdPXErODtjWzI0MjJdPXErODtjWzI0MjZdPXErOH1mdW5j
dGlvbiBjdChhKXthPWF8MDt2YXIgYj0wLGQ9MDtiPWNbYT4+Ml18MDtpZigoYnwwKT09MCl7cmV0
dXJufWQ9YSs0fDA7YT1jW2Q+PjJdfDA7aWYoKGJ8MCkhPShhfDApKXtjW2Q+PjJdPWErKH4oKGEt
OCsoLWJ8MCl8MCk+Pj4zKTw8Myl9a1MoYik7cmV0dXJufWZ1bmN0aW9uIGN1KGEsYixkKXthPWF8
MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLjAsdz0wLHg9MCx5PTAuMCx6PTAuMDtkPWk7aT1pKzI0
fDA7ZT1kfDA7Zj1kKzh8MDtnPWZ8MDtjW2c+PjJdPTA7aj1mKzR8MDtjW2o+PjJdPTA7az1mKzh8
MDtjW2s+PjJdPTA7bD1iLWF8MDttPWw+PjM7ZG97aWYoKG18MCk9PTApe249MDtvPTB9ZWxzZXtp
ZihtPj4+MD41MzY4NzA5MTEpe2lyKGYpfXA9a08obCl8MDtjW2o+PjJdPXA7Y1tnPj4yXT1wO2Nb
az4+Ml09cCsobTw8Myk7aWYoKGF8MCk9PShifDApKXtuPXA7bz1wO2JyZWFrfWVsc2V7cT1hO3I9
cH1kb3tpZigocnwwKT09MCl7cz0wfWVsc2V7aFtyPj4zXT0raFtxPj4zXTtzPWNbaj4+Ml18MH1y
PXMrOHwwO2Nbaj4+Ml09cjtxPXErOHwwO313aGlsZSgocXwwKSE9KGJ8MCkpO249Y1tnPj4yXXww
O289cn19d2hpbGUoMCk7Y1UobixvLGUpO2U9Y1tnPj4yXXwwO289Y1tqPj4yXXwwO0wyMzpkb3tp
ZigoZXwwKT09KG98MCkpe3Q9ZX1lbHNle249ZTt3aGlsZSgxKXt1PW4rOHwwO2lmKCh1fDApPT0o
b3wwKSl7dD1lO2JyZWFrIEwyM312PStoW24+PjNdO2lmKHY9PStoW3U+PjNdKXticmVha31lbHNl
e249dX19aWYoKG58MCk9PShvfDApKXt0PWU7YnJlYWt9ZWxzZXt3PXU7eD1uO3k9dn1MMjg6d2hp
bGUoMSl7cj13O2Rve3I9cis4fDA7aWYoKHJ8MCk9PShvfDApKXticmVhayBMMjh9ej0raFtyPj4z
XTt9d2hpbGUoeT09eik7Yj14Kzh8MDtoW2I+PjNdPXo7dz1yO3g9Yjt5PXp9dD1jW2c+PjJdfDB9
fXdoaWxlKDApO2lmKCh0fDApPT0wKXtpPWQ7cmV0dXJufWc9Y1tqPj4yXXwwO2lmKCh0fDApIT0o
Z3wwKSl7Y1tqPj4yXT1nKyh+KChnLTgrKC10fDApfDApPj4+Myk8PDMpfWtTKHQpO2k9ZDtyZXR1
cm59ZnVuY3Rpb24gY3YoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLjAs
eD0wLjAseT0wLHo9MC4wO2Q9aTtpPWkrMjR8MDtlPWR8MDtmPWQrOHwwO2c9ZnwwO2NbZz4+Ml09
MDtqPWYrNHwwO2Nbaj4+Ml09MDtrPWYrOHwwO2Nbaz4+Ml09MDtsPWItYXwwO209bD4+Mztkb3tp
ZigobXwwKT09MCl7bj0wO289MH1lbHNle2lmKG0+Pj4wPjUzNjg3MDkxMSl7aXIoZil9cD1rTyhs
KXwwO2Nbaj4+Ml09cDtjW2c+PjJdPXA7Y1trPj4yXT1wKyhtPDwzKTtpZigoYXwwKT09KGJ8MCkp
e249cDtvPXA7YnJlYWt9ZWxzZXtxPWE7cj1wfWRve2lmKChyfDApPT0wKXtzPTB9ZWxzZXtoW3I+
PjNdPStoW3E+PjNdO3M9Y1tqPj4yXXwwfXI9cys4fDA7Y1tqPj4yXT1yO3E9cSs4fDA7fXdoaWxl
KChxfDApIT0oYnwwKSk7bj1jW2c+PjJdfDA7bz1yfX13aGlsZSgwKTtjVShuLG8sZSk7ZT1jW2c+
PjJdfDA7bz1jW2o+PjJdfDA7TDU4OmRve2lmKChlfDApPT0ob3wwKSl7dD1lO3U9NjJ9ZWxzZXtu
PWU7d2hpbGUoMSl7cj1uKzh8MDtpZigocnwwKT09KG98MCkpe3Y9ZTticmVhayBMNTh9aWYoK2hb
bj4+M109PStoW3I+PjNdKXt0PW47dT02MjticmVha31lbHNle249cn19fX13aGlsZSgwKTtkb3tp
ZigodXwwKT09NjIpe2lmKCh0fDApPT0ob3wwKSl7dj1lO2JyZWFrfW49dCsxNnwwO2lmKChufDAp
PT0ob3wwKSl7dj1lO2JyZWFrfXI9bjtuPXQ7dz0raFt0Pj4zXTt3aGlsZSgxKXt4PStoW3I+PjNd
O2lmKHc9PXgpe3k9bjt6PXd9ZWxzZXtiPW4rOHwwO2hbYj4+M109eDt5PWI7ej14fWI9cis4fDA7
aWYoKGJ8MCk9PShvfDApKXticmVha31lbHNle3I9YjtuPXk7dz16fX12PWNbZz4+Ml18MH19d2hp
bGUoMCk7aWYoKHZ8MCk9PTApe2k9ZDtyZXR1cm59Zz1jW2o+PjJdfDA7aWYoKHZ8MCkhPShnfDAp
KXtjW2o+PjJdPWcrKH4oKGctOCsoLXZ8MCl8MCk+Pj4zKTw8Myl9a1Modik7aT1kO3JldHVybn1m
dW5jdGlvbiBjdyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAs
JD0wLGFhPTAsYWI9MDtkPWk7aT1pKzh8MDtlPWR8MDtmPWU7Zz1pO2k9aSs4fDA7aj1nO2s9aTtp
PWkrMXwwO2k9aSs3Pj4zPDwzO2w9aTtpPWkrOHwwO209aTtpPWkrOHwwO249aTtpPWkrMXwwO2k9
aSs3Pj4zPDwzO289aTtpPWkrMjR8MDtwPWk7aT1pKzh8MDtxPWk7aT1pKzh8MDtyPWI7cz1yLWE+
PjM7aFtwPj4zXT0wLjA7dD1vfDA7dT1vKzR8MDt2PW8rOHwwO2skKG98MCwwLDI0KTtkb3tpZigo
c3wwKT09MCl7dz0wO3g9bysxNnwwO3k9MDt6PTA7QT0wO0I9MH1lbHNle2NPKG8scyxwKTtDPWNb
dT4+Ml18MDtEPW8rMTZ8MDtFPWNbRD4+Ml18MDtGPWNbdj4+Ml18MDtHPUMrKEU+Pj45PDwyKXww
O2lmKChGfDApPT0oQ3wwKSl7dz0wO3g9RDt5PUY7ej1FO0E9QztCPUc7YnJlYWt9dz0oY1tHPj4y
XXwwKSsoKEUmNTExKTw8Myl8MDt4PUQ7eT1GO3o9RTtBPUM7Qj1HfX13aGlsZSgwKTtpZigoYXww
KT09KGJ8MCkpe0g9QTtJPXo7Sj15fWVsc2V7eT1hO2E9dzt3PUI7d2hpbGUoMSl7Qj1hO3o9KGNb
dz4+Ml18MCkrNDA5Ni1CPj4zO0E9eTtwPXItQT4+MztpZigocHwwKT4oenwwKSl7Sz15Kyh6PDwz
KXwwO0w9en1lbHNle0s9YjtMPXB9a18oYXwwLHl8MCxLLUF8MCk7ZG97aWYoKEx8MCk9PTApe009
YTtOPXd9ZWxzZXtBPShCLShjW3c+PjJdfDApPj4zKStMfDA7aWYoKEF8MCk+MCl7cD13KygoKEF8
MCkvNTEyfDApPDwyKXwwO009KGNbcD4+Ml18MCkrKCgoQXwwKSU1MTJ8MCk8PDMpfDA7Tj1wO2Jy
ZWFrfWVsc2V7cD01MTEtQXwwO0E9dysoKChwfDApLy01MTJ8MCk8PDIpfDA7TT0oY1tBPj4yXXww
KSsoNTExLSgocHwwKSU1MTJ8MCk8PDMpfDA7Tj1BO2JyZWFrfX19d2hpbGUoMCk7aWYoKEt8MCk9
PShifDApKXticmVha31lbHNle3k9SzthPU07dz1OfX1IPWNbdT4+Ml18MDtJPWNbeD4+Ml18MDtK
PWNbdj4+Ml18MH1OPUgrKEk+Pj45PDwyKXwwO2lmKChKfDApPT0oSHwwKSl7Sj1vKzIwfDA7Tz0w
O1A9MDtRPTA7Uj0wO1M9SjtUPUgrKChJKyhjW0o+PjJdfDApfDApPj4+OTw8Mil8MH1lbHNle0o9
bysyMHwwO289SSsoY1tKPj4yXXwwKXwwO3c9SCsobz4+Pjk8PDIpfDA7Tz0oY1t3Pj4yXXwwKSso
KG8mNTExKTw8Myl8MDtQPTA7UT0oY1tOPj4yXXwwKSsoKEkmNTExKTw8Myl8MDtSPTA7Uz1KO1Q9
d31jW2w+PjJdPVJ8TjtjW2wrND4+Ml09UTtjW20+PjJdPVB8VDtjW20rND4+Ml09TztjSyhsLG0s
bik7bj1jW3U+PjJdfDA7bT1jW3g+PjJdfDA7bD1uKyhtPj4+OTw8Mil8MDtpZigoY1t2Pj4yXXww
KT09KG58MCkpe1U9MDtWPTA7Vz0wO1g9MDtZPW4rKChtKyhjW1M+PjJdfDApfDApPj4+OTw8Mil8
MH1lbHNle089bSsoY1tTPj4yXXwwKXwwO1Q9bisoTz4+Pjk8PDIpfDA7VT0oY1tUPj4yXXwwKSso
KE8mNTExKTw8Myl8MDtWPTA7Vz0oY1tsPj4yXXwwKSsoKG0mNTExKTw8Myl8MDtYPTA7WT1UfWNb
ZT4+Ml09WHxsO2NbZSs0Pj4yXT1XO2NbZz4+Ml09VnxZO2NbZys0Pj4yXT1VO2NJKHEsZixqLGsp
O2s9Y1t1Pj4yXXwwO2o9Y1t4Pj4yXXwwO2Y9aysoaj4+Pjk8PDIpfDA7cT1jW3Y+PjJdfDA7aWYo
KHF8MCk9PShrfDApKXtaPTA7Xz0wfWVsc2V7VT0oY1tTPj4yXXwwKStqfDA7Wj0oY1trKyhVPj4+
OTw8Mik+PjJdfDApKygoVSY1MTEpPDwzKXwwO189KGNbZj4+Ml18MCkrKChqJjUxMSk8PDMpfDB9
aj1mO2Y9XztMMTEyOndoaWxlKDEpe189Zjtkb3tpZigoX3wwKT09KFp8MCkpe2JyZWFrIEwxMTJ9
Xz1fKzh8MDt9d2hpbGUoKF8tKGNbaj4+Ml18MCl8MCkhPTQwOTYpO189ais0fDA7aj1fO2Y9Y1tf
Pj4yXXwwfWNbUz4+Ml09MDtTPXEtaz4+MjtpZihTPj4+MD4yKXtmPWs7d2hpbGUoMSl7a1MoY1tm
Pj4yXXwwKTtqPShjW3U+PjJdfDApKzR8MDtjW3U+PjJdPWo7Wj1jW3Y+PjJdfDA7Xz1aLWo+PjI7
aWYoXz4+PjA+Mil7Zj1qfWVsc2V7JD1fO2FhPWo7YWI9WjticmVha319fWVsc2V7JD1TO2FhPWs7
YWI9cX1zd2l0Y2goJHwwKXtjYXNlIDE6e2NbeD4+Ml09MjU2O2JyZWFrfTtjYXNlIDI6e2NbeD4+
Ml09NTEyO2JyZWFrfTtkZWZhdWx0Ont9fWRve2lmKChhYXwwKSE9KGFifDApKXt4PWFhO2Rve2tT
KGNbeD4+Ml18MCk7eD14KzR8MDt9d2hpbGUoKHh8MCkhPShhYnwwKSk7eD1jW3U+PjJdfDA7JD1j
W3Y+PjJdfDA7aWYoKHh8MCk9PSgkfDApKXticmVha31jW3Y+PjJdPSQrKH4oKCQtNCsoLXh8MCl8
MCk+Pj4yKTw8Mil9fXdoaWxlKDApO3Y9Y1t0Pj4yXXwwO2lmKCh2fDApPT0wKXtpPWQ7cmV0dXJu
fWtTKHYpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gY3goYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3Zh
ciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MC4wLHk9MCx6PTA7ZD1pO2k9aSs0OHwwO2U9ZHwwO2Y9ZCs4fDA7Zz1k
KzE2fDA7aj1kKzI0fDA7az1kKzMyfDA7bD1rfDA7bT1rO2NbbD4+Ml09bTtuPWsrNHwwO2Nbbj4+
Ml09bTtvPWsrOHwwO2Nbbz4+Ml09MDtpZigoYXwwKT09KGJ8MCkpe3A9bTtxPTB9ZWxzZXtrPWE7
YT1tO3I9MDt3aGlsZSgxKXtzPWtPKDE2KXwwO3Q9czt1PXMrOHwwO2lmKCh1fDApIT0wKXtoW3U+
PjNdPStoW2s+PjNdfWNbYSs0Pj4yXT10O2Nbcz4+Ml09Y1tsPj4yXTtjW2w+PjJdPXQ7Y1tzKzQ+
PjJdPW07dj0oY1tvPj4yXXwwKSsxfDA7Y1tvPj4yXT12O3M9ays4fDA7aWYoKHN8MCk9PShifDAp
KXticmVha31lbHNle2s9czthPXQ7cj12fX1wPWNbbj4+Ml18MDtxPXZ9Y1tlPj4yXT1wO2NbZj4+
Ml09bTtjSihnLGUsZixxLGopO2o9Y1tuPj4yXXwwO2lmKChqfDApIT0obXwwKSl7cT1qO3doaWxl
KDEpe2o9Y1txKzQ+PjJdfDA7TDE1MDpkb3tpZigoanwwKT09KG18MCkpe3c9bX1lbHNle3g9K2hb
cSs4Pj4zXTtmPWo7d2hpbGUoMSl7aWYoeCE9K2hbZis4Pj4zXSl7dz1mO2JyZWFrIEwxNTB9ZT1j
W2YrND4+Ml18MDtpZigoZXwwKT09KG18MCkpe3c9bTticmVha31lbHNle2Y9ZX19fX13aGlsZSgw
KTtpZigoanwwKT09KHd8MCkpe3k9an1lbHNle2Y9KGNbdz4+Ml18MCkrNHwwO2U9anwwO2NbKGNb
ZT4+Ml18MCkrND4+Ml09Y1tmPj4yXTtjW2NbZj4+Ml0+PjJdPWNbZT4+Ml07ZT1qO3doaWxlKDEp
e2Y9Y1tlKzQ+PjJdfDA7Y1tvPj4yXT0oY1tvPj4yXXwwKS0xO2tTKGUpO2lmKChmfDApPT0od3ww
KSl7eT13O2JyZWFrfWVsc2V7ZT1mfX19aWYoKHl8MCk9PShtfDApKXticmVha31lbHNle3E9eX19
fWlmKChjW28+PjJdfDApPT0wKXtpPWQ7cmV0dXJufXk9Y1tuPj4yXXwwO249KGNbbD4+Ml18MCkr
NHwwO2w9eXwwO2NbKGNbbD4+Ml18MCkrND4+Ml09Y1tuPj4yXTtjW2Nbbj4+Ml0+PjJdPWNbbD4+
Ml07Y1tvPj4yXT0wO2lmKCh5fDApPT0obXwwKSl7aT1kO3JldHVybn1lbHNle3o9eX13aGlsZSgx
KXt5PWNbeis0Pj4yXXwwO2tTKHopO2lmKCh5fDApPT0obXwwKSl7YnJlYWt9ZWxzZXt6PXl9fWk9
ZDtyZXR1cm59ZnVuY3Rpb24gY3koYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0w
LGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wO2Q9aTtpPWkr
MzJ8MDtlPWR8MDtmPWQrOHwwO2c9ZCsxNnwwO2o9Z3wwO2s9Zys0fDA7Y1trPj4yXT0wO2w9Zys4
fDA7Y1tsPj4yXT0wO209aztrPWd8MDtjW2s+PjJdPW07aWYoKGF8MCk9PShifDApKXtuPTA7Y0Uo
aixuKTtpPWQ7cmV0dXJufW89ZnwwO3A9Zys0fDA7Zz1hO2Rve2Nbbz4+Ml09bTthPWNIKGosZixl
LGcpfDA7aWYoKGNbYT4+Ml18MCk9PTApe3E9a08oMjQpfDA7cj1xKzE2fDA7aWYoKHJ8MCkhPTAp
e2hbcj4+M109K2hbZz4+M119cj1jW2U+PjJdfDA7cz1xO2NbcT4+Ml09MDtjW3ErND4+Ml09MDtj
W3ErOD4+Ml09cjtjW2E+PjJdPXM7cj1jW2Nbaz4+Ml0+PjJdfDA7aWYoKHJ8MCk9PTApe3Q9c31l
bHNle2Nbaz4+Ml09cjt0PWNbYT4+Ml18MH1jRyhjW3A+PjJdfDAsdCk7Y1tsPj4yXT0oY1tsPj4y
XXwwKSsxfWc9Zys4fDA7fXdoaWxlKChnfDApIT0oYnwwKSk7bj1jW3A+PjJdfDA7Y0UoaixuKTtp
PWQ7cmV0dXJufWZ1bmN0aW9uIGN6KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9
MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTA7ZD1pO2k9aSszMnww
O2U9ZHwwO2Y9ZCs4fDA7Zz1kKzE2fDA7aj1nfDA7az1nKzR8MDtjW2s+PjJdPTA7bD1nKzh8MDtj
W2w+PjJdPTA7bT1rO249Z3wwO2Nbbj4+Ml09bTtkb3tpZigoYXwwKSE9KGJ8MCkpe289ZnwwO3A9
Zys0fDA7cT1hO2Rve2Nbbz4+Ml09bTtyPWNDKGosZixlLHEpfDA7cz1rTygyNCl8MDt0PXMrMTZ8
MDtpZigodHwwKSE9MCl7aFt0Pj4zXT0raFtxPj4zXX10PWNbZT4+Ml18MDt1PXM7Y1tzPj4yXT0w
O2Nbcys0Pj4yXT0wO2Nbcys4Pj4yXT10O2Nbcj4+Ml09dTt0PWNbY1tuPj4yXT4+Ml18MDtpZigo
dHwwKT09MCl7dj11fWVsc2V7Y1tuPj4yXT10O3Y9Y1tyPj4yXXwwfWNHKGNbcD4+Ml18MCx2KTtj
W2w+PjJdPShjW2w+PjJdfDApKzE7cT1xKzh8MDt9d2hpbGUoKHF8MCkhPShifDApKTtxPWNbbj4+
Ml18MDtpZigocXwwKT09KG18MCkpe2JyZWFrfXA9aztvPWcrNHwwO3I9cTtMMjAyOndoaWxlKDEp
e3E9cnwwO3Q9cis0fDA7dT1yKzE2fDA7d2hpbGUoMSl7dz1jW3Q+PjJdfDA7aWYoKHd8MCk9PTAp
e3M9cTt3aGlsZSgxKXt4PWNbcys4Pj4yXXwwO2lmKChzfDApPT0oY1t4Pj4yXXwwKSl7eT14O2Jy
ZWFrfWVsc2V7cz14fX19ZWxzZXtzPXc7d2hpbGUoMSl7eD1jW3M+PjJdfDA7aWYoKHh8MCk9PTAp
e3k9czticmVha31lbHNle3M9eH19fXM9eTtpZigoeXwwKT09KHB8MCkpe3o9bztBPTIxMzticmVh
ayBMMjAyfWlmKCtoW3U+PjNdIT0raFt5KzE2Pj4zXSl7YnJlYWt9eD1jW3krND4+Ml18MDtpZigo
eHwwKT09MCl7Qj15O3doaWxlKDEpe0M9Y1tCKzg+PjJdfDA7aWYoKEJ8MCk9PShjW0M+PjJdfDAp
KXtEPUM7YnJlYWt9ZWxzZXtCPUN9fX1lbHNle0I9eDt3aGlsZSgxKXtDPWNbQj4+Ml18MDtpZigo
Q3wwKT09MCl7RD1CO2JyZWFrfWVsc2V7Qj1DfX19aWYoKGNbbj4+Ml18MCk9PShzfDApKXtjW24+
PjJdPUR9Y1tsPj4yXT0oY1tsPj4yXXwwKS0xO2NCKGNbbz4+Ml18MCx5KTtrUyh5KX1pZigod3ww
KT09MCl7dT1xO3doaWxlKDEpe3Q9Y1t1Kzg+PjJdfDA7aWYoKHV8MCk9PShjW3Q+PjJdfDApKXtF
PXQ7YnJlYWt9ZWxzZXt1PXR9fX1lbHNle3U9dzt3aGlsZSgxKXtxPWNbdT4+Ml18MDtpZigocXww
KT09MCl7RT11O2JyZWFrfWVsc2V7dT1xfX19aWYoKEV8MCk9PShwfDApKXt6PW87QT0yMTQ7YnJl
YWt9ZWxzZXtyPUV9fWlmKChBfDApPT0yMTQpe0Y9Y1t6Pj4yXXwwO0c9RjtjRShqLEcpO2k9ZDty
ZXR1cm59ZWxzZSBpZigoQXwwKT09MjEzKXtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtpPWQ7cmV0
dXJufX19d2hpbGUoMCk7ej1nKzR8MDtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtpPWQ7cmV0dXJu
fWZ1bmN0aW9uIGNBKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAuMCxnPTAsaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MC4wLHg9MCx5PTAs
ej0wLjAsQT0wLEI9MC4wLEM9MCxEPTAsRT0wLEY9MC4wLEc9MCxIPTAsST0wLjAsSj0wLjAsTD0w
LE09MCxOPTAsTz0wLFA9MDtiPWk7aT1pKzI0fDA7ZD1ifDA7ZT1iKzh8MDtmPSsoYXwwKTtnPX5+
K1UoKygxOTkzMTU2OC41NjkzMjQxNzMvKGYqKCthZSgrZikvLjY5MzE0NzE4MDU1OTk0NTMpKSkp
O2o9YTw8MTtrPWNbMjQ0Nl18MDtsPWNbMjQ0N118MDtpZigoa3wwKSE9KGx8MCkpe2NbMjQ0N109
bCsofigobC04Kygta3wwKXwwKT4+PjMpPDwzKX1rPWV8MDtjW2s+PjJdPTA7bD1lKzR8MDtjW2w+
PjJdPTA7bT1lKzh8MDtjW20+PjJdPTA7aWYoKGp8MCk9PTApe249MH1lbHNle2lmKGo+Pj4wPjUz
Njg3MDkxMSl7aXIoZSl9ZT1rTyhhPDw0KXwwO2NbbD4+Ml09ZTtjW2s+PjJdPWU7Y1ttPj4yXT1l
KyhqPDwzKTttPWo7bz1lO2Rve2lmKChvfDApPT0wKXtwPTB9ZWxzZXtoW28+PjNdPTAuMDtwPWNb
bD4+Ml18MH1vPXArOHwwO2NbbD4+Ml09bzttPW0tMXwwO313aGlsZSgobXwwKSE9MCk7bj1jW2s+
PjJdfDB9bT1uKyhqPDwzKXwwO289bisoYTw8Myl8MDtpZigoYXwwKSE9MCl7cD1uO2Y9MC4wO3do
aWxlKDEpe2U9cCs4fDA7aFtwPj4zXT1mO2lmKChlfDApPT0ob3wwKSl7YnJlYWt9ZWxzZXtwPWU7
Zj1mKzEuMH19fWlmKChqfDApIT0oYXwwKSl7aj1vO2Y9MC4wO3doaWxlKDEpe289ais4fDA7aFtq
Pj4zXT1mO2lmKChvfDApPT0obXwwKSl7YnJlYWt9ZWxzZXtqPW87Zj1mKzEuMH19fWNGKG4sbSk7
aWYoKGd8MCk+MCl7aj1hPDw0O2E9aj4+MztvPWFPKGF8MCw4KXwwO3A9bjtpZihLKXtlPWc7d2hp
bGUoMSl7cT1lLTF8MDtyPWtQKC0xKXwwO3M9cjtrWShyfDAscHwwLGopfDA7dD1zKyhhPDwzKXww
O2NVKHMsdCxkKTtMMjY4OmRve2lmKChzfDApIT0odHwwKSl7dT1zO3doaWxlKDEpe3Y9dSs4fDA7
aWYoKHZ8MCk9PSh0fDApKXticmVhayBMMjY4fXc9K2hbdT4+M107aWYodz09K2hbdj4+M10pe2Jy
ZWFrfWVsc2V7dT12fX1pZigodXwwKT09KHR8MCkpe2JyZWFrfWVsc2V7eD12O3k9dTt6PXd9d2hp
bGUoMSl7QT14O2Rve0E9QSs4fDA7aWYoKEF8MCk9PSh0fDApKXticmVhayBMMjY4fUI9K2hbQT4+
M107fXdoaWxlKHo9PUIpO0M9eSs4fDA7aFtDPj4zXT1CO3g9QTt5PUM7ej1CfX19d2hpbGUoMCk7
aWYoKHJ8MCkhPTApe2tUKHIpfWlmKChxfDApPjApe2U9cX1lbHNle0Q9ZzticmVha319fWVsc2V7
ZT1nO3doaWxlKDEpe3k9ZS0xfDA7eD1rUChvKXwwO3Y9eDtrWSh4fDAscHwwLGopfDA7dD12Kyhh
PDwzKXwwO2NVKHYsdCxkKTtMMjg3OmRve2lmKCh2fDApIT0odHwwKSl7cz12O3doaWxlKDEpe0U9
cys4fDA7aWYoKEV8MCk9PSh0fDApKXticmVhayBMMjg3fUY9K2hbcz4+M107aWYoRj09K2hbRT4+
M10pe2JyZWFrfWVsc2V7cz1FfX1pZigoc3wwKT09KHR8MCkpe2JyZWFrfWVsc2V7Rz1FO0g9cztJ
PUZ9d2hpbGUoMSl7dT1HO2Rve3U9dSs4fDA7aWYoKHV8MCk9PSh0fDApKXticmVhayBMMjg3fUo9
K2hbdT4+M107fXdoaWxlKEk9PUopO0E9SCs4fDA7aFtBPj4zXT1KO0c9dTtIPUE7ST1KfX19d2hp
bGUoMCk7aWYoKHh8MCkhPTApe2tUKHgpfWlmKCh5fDApPjApe2U9eX1lbHNle0Q9ZzticmVha319
fXdoaWxlKDEpe2U9RC0xfDA7Y3UobixtLGUpO2lmKChlfDApPjApe0Q9ZX1lbHNle0w9ZzticmVh
a319d2hpbGUoMSl7RD1MLTF8MDtjdihuLG0sRCk7aWYoKER8MCk+MCl7TD1EfWVsc2V7TT1nO2Jy
ZWFrfX13aGlsZSgxKXtMPU0tMXwwO2N3KG4sbSxMKTtpZigoTHwwKT4wKXtNPUx9ZWxzZXtOPWc7
YnJlYWt9fXdoaWxlKDEpe009Ti0xfDA7Y3gobixtLE0pO2lmKChNfDApPjApe049TX1lbHNle089
ZzticmVha319d2hpbGUoMSl7Tj1PLTF8MDtjeShuLG0sTik7aWYoKE58MCk+MCl7Tz1OfWVsc2V7
UD1nO2JyZWFrfX1kb3tQPVAtMXwwO2N6KG4sbSxQKTt9d2hpbGUoKFB8MCk+MCl9UD1jW2s+PjJd
fDA7aWYoKFB8MCk9PTApe2k9YjtyZXR1cm59az1jW2w+PjJdfDA7aWYoKFB8MCkhPShrfDApKXtj
W2w+PjJdPWsrKH4oKGstOCsoLVB8MCl8MCk+Pj4zKTw8Myl9a1MoUCk7aT1iO3JldHVybn1mdW5j
dGlvbiBjQihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2U9ZHwwO2Y9Y1tlPj4y
XXwwO2Rve2lmKChmfDApPT0wKXtnPWQ7aD0zMDF9ZWxzZXtpPWNbZCs0Pj4yXXwwO2lmKChpfDAp
PT0wKXtqPWY7az1kO2w9ZHwwO2g9MzAzO2JyZWFrfWVsc2V7bT1pO3doaWxlKDEpe2k9Y1ttPj4y
XXwwO2lmKChpfDApPT0wKXtnPW07aD0zMDE7YnJlYWt9ZWxzZXttPWl9fX19fXdoaWxlKDApO2Rv
e2lmKChofDApPT0zMDEpe2Y9Z3wwO209Y1tnKzQ+PjJdfDA7aWYoKG18MCkhPTApe2o9bTtrPWc7
bD1mO2g9MzAzO2JyZWFrfW49MDtvPTA7cD1nKzh8MDtxPWc7cj1mfX13aGlsZSgwKTtpZigoaHww
KT09MzAzKXtnPWsrOHwwO2Nbais4Pj4yXT1jW2c+PjJdO249ajtvPTE7cD1nO3E9aztyPWx9bD1j
W3A+PjJdfDA7az1sfDA7ZG97aWYoKHF8MCk9PShjW2s+PjJdfDApKXtjW2s+PjJdPW47aWYoKHF8
MCk9PShifDApKXtzPW47dD0wO2JyZWFrfXM9Yjt0PWNbKGNbcD4+Ml18MCkrND4+Ml18MH1lbHNl
e2NbbCs0Pj4yXT1uO3M9Yjt0PWNbY1twPj4yXT4+Ml18MH19d2hpbGUoMCk7Yj1xKzEyfDA7bD0o
YVtiXSYxKT09MDtpZigocXwwKT09KGR8MCkpe3U9c31lbHNle2s9ZCs4fDA7Zz1jW2s+PjJdfDA7
Y1twPj4yXT1nO2lmKChjW2Nbaz4+Ml0+PjJdfDApPT0oZHwwKSl7Y1tnPj4yXT1xfWVsc2V7Y1tn
KzQ+PjJdPXF9Zz1jW2U+PjJdfDA7Y1tyPj4yXT1nO2NbZys4Pj4yXT1xO2c9Y1tkKzQ+PjJdfDA7
Y1txKzQ+PjJdPWc7aWYoKGd8MCkhPTApe2NbZys4Pj4yXT1xfWFbYl09YVtkKzEyfDBdJjE7dT0o
c3wwKT09KGR8MCk/cTpzfWlmKGx8KHV8MCk9PTApe3JldHVybn1pZihvKXthW24rMTJ8MF09MTty
ZXR1cm59ZWxzZXt2PXU7dz10fXdoaWxlKDEpe3Q9dys4fDA7dT1jW3Q+PjJdfDA7bj13KzEyfDA7
bz0oYVtuXSYxKSE9MDtpZigod3wwKT09KGNbdT4+Ml18MCkpe2lmKG8pe3g9djt5PXd9ZWxzZXth
W25dPTE7YVt1KzEyfDBdPTA7bD1jW3Q+PjJdfDA7cz1sfDA7cT1jW3M+PjJdfDA7ZD1xKzR8MDti
PWNbZD4+Ml18MDtjW3M+PjJdPWI7aWYoKGJ8MCkhPTApe2NbYis4Pj4yXT1sfWI9bCs4fDA7Y1tx
Kzg+PjJdPWNbYj4+Ml07cz1jW2I+PjJdfDA7Zz1zfDA7aWYoKGNbZz4+Ml18MCk9PShsfDApKXtj
W2c+PjJdPXF9ZWxzZXtjW3MrND4+Ml09cX1jW2Q+PjJdPWw7Y1tiPj4yXT1xO3E9Y1t3KzQ+PjJd
fDA7eD0odnwwKT09KHF8MCk/dzp2O3k9Y1txPj4yXXwwfXo9Y1t5Pj4yXXwwO0E9KHp8MCk9PTA7
aWYoIUEpe2lmKChhW3orMTJ8MF0mMSk9PTApe2g9MzY1O2JyZWFrfX1xPWNbeSs0Pj4yXXwwO2lm
KChxfDApIT0wKXtpZigoYVtxKzEyfDBdJjEpPT0wKXtoPTM2NDticmVha319YVt5KzEyfDBdPTA7
cT1jW3krOD4+Ml18MDtCPXErMTJ8MDtpZigoYVtCXSYxKT09MHwocXwwKT09KHh8MCkpe2g9MzYx
O2JyZWFrfWI9Y1txKzg+PjJdfDA7bD1jW2I+PjJdfDA7aWYoKHF8MCkhPShsfDApKXt2PXg7dz1s
O2NvbnRpbnVlfXY9eDt3PWNbYis0Pj4yXXwwO2NvbnRpbnVlfWlmKG8pe0M9djtEPXd9ZWxzZXth
W25dPTE7YVt1KzEyfDBdPTA7dT1jW3Q+PjJdfDA7dD11KzR8MDtuPWNbdD4+Ml18MDtvPW58MDti
PWNbbz4+Ml18MDtjW3Q+PjJdPWI7aWYoKGJ8MCkhPTApe2NbYis4Pj4yXT11fWI9dSs4fDA7Y1tu
Kzg+PjJdPWNbYj4+Ml07dD1jW2I+PjJdfDA7bD10fDA7aWYoKGNbbD4+Ml18MCk9PSh1fDApKXtj
W2w+PjJdPW59ZWxzZXtjW3QrND4+Ml09bn1jW28+PjJdPXU7Y1tiPj4yXT1uO249Y1t3Pj4yXXww
O0M9KHZ8MCk9PShufDApP3c6djtEPWNbbis0Pj4yXXwwfUU9RHwwO0Y9Y1tFPj4yXXwwO2lmKChG
fDApIT0wKXtpZigoYVtGKzEyfDBdJjEpPT0wKXtoPTMzNTticmVha319bj1jW0QrND4+Ml18MDtp
ZigobnwwKSE9MCl7aWYoKGFbbisxMnwwXSYxKT09MCl7Rz1uO2g9MzM2O2JyZWFrfX1hW0QrMTJ8
MF09MDtuPWNbRCs4Pj4yXXwwO2lmKChufDApPT0oQ3wwKSl7SD1DO2g9MzMyO2JyZWFrfWlmKChh
W24rMTJ8MF0mMSk9PTApe0g9bjtoPTMzMjticmVha31iPWNbbis4Pj4yXXwwO3U9Y1tiPj4yXXww
O2lmKChufDApIT0odXwwKSl7dj1DO3c9dTtjb250aW51ZX12PUM7dz1jW2IrND4+Ml18MH1pZigo
aHwwKT09MzMyKXthW0grMTJ8MF09MTtyZXR1cm59ZWxzZSBpZigoaHwwKT09MzM1KXtIPWNbRCs0
Pj4yXXwwO2lmKChIfDApPT0wKXtoPTMzN31lbHNle0c9SDtoPTMzNn19ZWxzZSBpZigoaHwwKT09
MzYxKXthW0JdPTE7cmV0dXJufWVsc2UgaWYoKGh8MCk9PTM2NCl7aWYoQSl7aD0zNjZ9ZWxzZXto
PTM2NX19aWYoKGh8MCk9PTMzNil7aWYoKGFbRysxMnwwXSYxKT09MCl7ST1EO2g9MzQzfWVsc2V7
aD0zMzd9fWVsc2UgaWYoKGh8MCk9PTM2NSl7aWYoKGFbeisxMnwwXSYxKT09MCl7Sj15O2g9Mzcy
fWVsc2V7aD0zNjZ9fWlmKChofDApPT0zMzcpe2FbRisxMnwwXT0xO2FbRCsxMnwwXT0wO0Y9Y1tF
Pj4yXXwwO3o9Ris0fDA7Rz1jW3o+PjJdfDA7Y1tFPj4yXT1HO2lmKChHfDApIT0wKXtjW0crOD4+
Ml09RH1HPUQrOHwwO2NbRis4Pj4yXT1jW0c+PjJdO0U9Y1tHPj4yXXwwO0E9RXwwO2lmKChjW0E+
PjJdfDApPT0oRHwwKSl7Y1tBPj4yXT1GfWVsc2V7Y1tFKzQ+PjJdPUZ9Y1t6Pj4yXT1EO2NbRz4+
Ml09RjtJPUY7aD0zNDN9ZWxzZSBpZigoaHwwKT09MzY2KXtGPXkrNHwwO2FbKGNbRj4+Ml18MCkr
MTJ8MF09MTthW3krMTJ8MF09MDtHPWNbRj4+Ml18MDtEPUd8MDt6PWNbRD4+Ml18MDtjW0Y+PjJd
PXo7aWYoKHp8MCkhPTApe2Nbeis4Pj4yXT15fXo9eSs4fDA7Y1tHKzg+PjJdPWNbej4+Ml07Rj1j
W3o+PjJdfDA7RT1GfDA7aWYoKGNbRT4+Ml18MCk9PSh5fDApKXtjW0U+PjJdPUd9ZWxzZXtjW0Yr
ND4+Ml09R31jW0Q+PjJdPXk7Y1t6Pj4yXT1HO0o9RztoPTM3Mn1pZigoaHwwKT09MzQzKXtHPUkr
OHwwO3o9KGNbRz4+Ml18MCkrMTJ8MDthW0krMTJ8MF09YVt6XSYxO2Fbel09MTthWyhjW0krND4+
Ml18MCkrMTJ8MF09MTtJPWNbRz4+Ml18MDtHPUkrNHwwO3o9Y1tHPj4yXXwwO3k9enwwO0Q9Y1t5
Pj4yXXwwO2NbRz4+Ml09RDtpZigoRHwwKSE9MCl7Y1tEKzg+PjJdPUl9RD1JKzh8MDtjW3orOD4+
Ml09Y1tEPj4yXTtHPWNbRD4+Ml18MDtGPUd8MDtpZigoY1tGPj4yXXwwKT09KEl8MCkpe2NbRj4+
Ml09en1lbHNle2NbRys0Pj4yXT16fWNbeT4+Ml09STtjW0Q+PjJdPXo7cmV0dXJufWVsc2UgaWYo
KGh8MCk9PTM3Mil7aD1KKzh8MDt6PShjW2g+PjJdfDApKzEyfDA7YVtKKzEyfDBdPWFbel0mMTth
W3pdPTE7YVsoY1tKPj4yXXwwKSsxMnwwXT0xO0o9Y1toPj4yXXwwO2g9SnwwO3o9Y1toPj4yXXww
O0Q9eis0fDA7ST1jW0Q+PjJdfDA7Y1toPj4yXT1JO2lmKChJfDApIT0wKXtjW0krOD4+Ml09Sn1J
PUorOHwwO2Nbeis4Pj4yXT1jW0k+PjJdO2g9Y1tJPj4yXXwwO3k9aHwwO2lmKChjW3k+PjJdfDAp
PT0oSnwwKSl7Y1t5Pj4yXT16fWVsc2V7Y1toKzQ+PjJdPXp9Y1tEPj4yXT1KO2NbST4+Ml09ejty
ZXR1cm59fWZ1bmN0aW9uIGNDKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBm
PTAsZz0wLGo9MCxrPTAuMCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wO2Y9aTtnPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2c+PjJdO2c9YSs0
fDA7aj1jW2I+PjJdfDA7ZG97aWYoKGp8MCkhPShnfDApKXtrPStoW2U+PjNdO2lmKCtoW2orMTY+
PjNdPj1rKXticmVha31iPWd8MDtsPWNbYj4+Ml18MDtpZigobHwwKT09MCl7Y1tkPj4yXT1nO209
YjtpPWY7cmV0dXJuIG18MH1lbHNle249bH13aGlsZSgxKXtpZigraFtuKzE2Pj4zXTxrKXtvPW4r
NHwwO2w9Y1tvPj4yXXwwO2lmKChsfDApPT0wKXtwPTQwNjticmVha31lbHNle249bDtjb250aW51
ZX19ZWxzZXtxPW58MDtsPWNbcT4+Ml18MDtpZigobHwwKT09MCl7cD00MDg7YnJlYWt9ZWxzZXtu
PWw7Y29udGludWV9fX1pZigocHwwKT09NDA4KXtjW2Q+PjJdPW47bT1xO2k9ZjtyZXR1cm4gbXww
fWVsc2UgaWYoKHB8MCk9PTQwNil7Y1tkPj4yXT1uO209bztpPWY7cmV0dXJuIG18MH19fXdoaWxl
KDApO289Y1tqPj4yXXwwO2Rve2lmKChqfDApPT0oY1thPj4yXXwwKSl7cj1qfWVsc2V7aWYoKG98
MCk9PTApe249anwwO3doaWxlKDEpe3E9Y1tuKzg+PjJdfDA7aWYoKG58MCk9PShjW3E+PjJdfDAp
KXtuPXF9ZWxzZXtzPXE7YnJlYWt9fX1lbHNle249bzt3aGlsZSgxKXtxPWNbbis0Pj4yXXwwO2lm
KChxfDApPT0wKXtzPW47YnJlYWt9ZWxzZXtuPXF9fX1rPStoW2U+PjNdO2lmKGs+PStoW3MrMTY+
PjNdKXtyPXM7YnJlYWt9bj1nfDA7cT1jW24+PjJdfDA7aWYoKHF8MCk9PTApe2NbZD4+Ml09Zztt
PW47aT1mO3JldHVybiBtfDB9ZWxzZXt0PXF9d2hpbGUoMSl7aWYoazwraFt0KzE2Pj4zXSl7dT10
fDA7cT1jW3U+PjJdfDA7aWYoKHF8MCk9PTApe3A9Mzk5O2JyZWFrfWVsc2V7dD1xO2NvbnRpbnVl
fX1lbHNle3Y9dCs0fDA7cT1jW3Y+PjJdfDA7aWYoKHF8MCk9PTApe3A9NDAxO2JyZWFrfWVsc2V7
dD1xO2NvbnRpbnVlfX19aWYoKHB8MCk9PTM5OSl7Y1tkPj4yXT10O209dTtpPWY7cmV0dXJuIG18
MH1lbHNlIGlmKChwfDApPT00MDEpe2NbZD4+Ml09dDttPXY7aT1mO3JldHVybiBtfDB9fX13aGls
ZSgwKTtpZigob3wwKT09MCl7Y1tkPj4yXT1qO209anwwO2k9ZjtyZXR1cm4gbXwwfWVsc2V7Y1tk
Pj4yXT1yO209cis0fDA7aT1mO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rpb24gY0QoKXtjQSgx
ZTUpO3JldHVybiAwfWZ1bmN0aW9uIGNFKGEsYil7YT1hfDA7Yj1ifDA7aWYoKGJ8MCk9PTApe3Jl
dHVybn1lbHNle2NFKGEsY1tiPj4yXXwwKTtjRShhLGNbYis0Pj4yXXwwKTtrUyhiKTtyZXR1cm59
fWZ1bmN0aW9uIGNGKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGM9MCxkPTAsZT0wLGY9MCxnPTAsaj0w
LGs9MCxsPTAsbT0wLjA7Yz1pO2k9aSs4fDA7ZD1jfDA7ZT1iLWF8MDtpZigoZXwwKTw9OCl7aT1j
O3JldHVybn1jWShkKTtmPWItOHwwO2lmKGY+Pj4wPmE+Pj4wKXtiPWE7YT1lPj4zO3doaWxlKDEp
e2U9YS0xfDA7ZG97aWYoKGV8MCkhPTApe2lmKChhfDApPT0wKXtnPWNYKGQpfDB9ZWxzZXtqPTMy
LShrWihhfDApfDApfDA7az0oKCgtMT4+PigoMzMtanwwKT4+PjApJmF8MCk9PTApPDwzMT4+MzEp
K2p8MDtqPShrPj4+MCkvKCgoKGsmMzF8MCkhPTApKyhrPj4+NSl8MCk+Pj4wKXwwO2lmKChqfDAp
PT0wKXtsPTB9ZWxzZXtsPS0xPj4+KCgzMi1qfDApPj4+MCl9d2hpbGUoMSl7aj0oY1goZCl8MCkm
bDtpZihqPj4+MDxhPj4+MCl7Zz1qO2JyZWFrfX19aWYoKGd8MCk9PTApe2JyZWFrfWo9YisoZzw8
Myl8MDttPStoW2I+PjNdO2hbYj4+M109K2hbaj4+M107aFtqPj4zXT1tfX13aGlsZSgwKTtqPWIr
OHwwO2lmKGo+Pj4wPGY+Pj4wKXtiPWo7YT1lfWVsc2V7YnJlYWt9fX1jVyhkKTtpPWM7cmV0dXJu
fWZ1bmN0aW9uIGNHKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2U9KGR8MCk9PShifDApO2FbZCsx
MnwwXT1lJjE7aWYoZSl7cmV0dXJufWVsc2V7Zj1kfXdoaWxlKDEpe2c9Zis4fDA7aD1jW2c+PjJd
fDA7ZD1oKzEyfDA7aWYoKGFbZF0mMSkhPTApe2k9NDg3O2JyZWFrfWo9aCs4fDA7az1jW2o+PjJd
fDA7ZT1jW2s+PjJdfDA7aWYoKGh8MCk9PShlfDApKXtsPWNbays0Pj4yXXwwO2lmKChsfDApPT0w
KXtpPTQ1MjticmVha31tPWwrMTJ8MDtpZigoYVttXSYxKSE9MCl7aT00NTI7YnJlYWt9YVtkXT0x
O2FbaysxMnwwXT0oa3wwKT09KGJ8MCl8MDthW21dPTF9ZWxzZXtpZigoZXwwKT09MCl7aT00Njk7
YnJlYWt9bT1lKzEyfDA7aWYoKGFbbV0mMSkhPTApe2k9NDY5O2JyZWFrfWFbZF09MTthW2srMTJ8
MF09KGt8MCk9PShifDApfDA7YVttXT0xfWlmKChrfDApPT0oYnwwKSl7aT00ODQ7YnJlYWt9ZWxz
ZXtmPWt9fWlmKChpfDApPT00Njkpe2I9aHwwO2lmKChmfDApPT0oY1tiPj4yXXwwKSl7bT1mKzR8
MDtkPWNbbT4+Ml18MDtjW2I+PjJdPWQ7aWYoKGR8MCk9PTApe249a31lbHNle2NbZCs4Pj4yXT1o
O249Y1tqPj4yXXwwfWNbZz4+Ml09bjtuPWNbaj4+Ml18MDtkPW58MDtpZigoY1tkPj4yXXwwKT09
KGh8MCkpe2NbZD4+Ml09Zn1lbHNle2Nbbis0Pj4yXT1mfWNbbT4+Ml09aDtjW2o+PjJdPWY7bz1m
O3A9Y1tnPj4yXXwwfWVsc2V7bz1oO3A9a31hW28rMTJ8MF09MTthW3ArMTJ8MF09MDtvPXArNHww
O2c9Y1tvPj4yXXwwO209Z3wwO249Y1ttPj4yXXwwO2Nbbz4+Ml09bjtpZigobnwwKSE9MCl7Y1tu
Kzg+PjJdPXB9bj1wKzh8MDtjW2crOD4+Ml09Y1tuPj4yXTtvPWNbbj4+Ml18MDtkPW98MDtpZigo
Y1tkPj4yXXwwKT09KHB8MCkpe2NbZD4+Ml09Z31lbHNle2Nbbys0Pj4yXT1nfWNbbT4+Ml09cDtj
W24+PjJdPWc7cmV0dXJufWVsc2UgaWYoKGl8MCk9PTQ4NCl7cmV0dXJufWVsc2UgaWYoKGl8MCk9
PTQ4Nyl7cmV0dXJufWVsc2UgaWYoKGl8MCk9PTQ1Mil7aWYoKGZ8MCk9PShjW2g+PjJdfDApKXtx
PWg7cj1rfWVsc2V7Zj1oKzR8MDtpPWNbZj4+Ml18MDtnPWl8MDtuPWNbZz4+Ml18MDtjW2Y+PjJd
PW47aWYoKG58MCk9PTApe3M9a31lbHNle2Nbbis4Pj4yXT1oO3M9Y1tqPj4yXXwwfW49aSs4fDA7
Y1tuPj4yXT1zO3M9Y1tqPj4yXXwwO2s9c3wwO2lmKChjW2s+PjJdfDApPT0oaHwwKSl7Y1trPj4y
XT1pfWVsc2V7Y1tzKzQ+PjJdPWl9Y1tnPj4yXT1oO2Nbaj4+Ml09aTtxPWk7cj1jW24+PjJdfDB9
YVtxKzEyfDBdPTE7YVtyKzEyfDBdPTA7cT1yfDA7bj1jW3E+PjJdfDA7aT1uKzR8MDtqPWNbaT4+
Ml18MDtjW3E+PjJdPWo7aWYoKGp8MCkhPTApe2Nbais4Pj4yXT1yfWo9cis4fDA7Y1tuKzg+PjJd
PWNbaj4+Ml07cT1jW2o+PjJdfDA7aD1xfDA7aWYoKGNbaD4+Ml18MCk9PShyfDApKXtjW2g+PjJd
PW59ZWxzZXtjW3ErND4+Ml09bn1jW2k+PjJdPXI7Y1tqPj4yXT1uO3JldHVybn19ZnVuY3Rpb24g
Y0goYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaj0wLGs9MC4w
LGw9MC4wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wO2Y9aTtnPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2c+PjJd
O2c9YSs0fDA7aj1jW2I+PjJdfDA7ZG97aWYoKGp8MCkhPShnfDApKXtrPStoW2U+PjNdO2w9K2hb
aisxNj4+M107aWYoazxsKXticmVha31pZihsPj1rKXtjW2Q+PjJdPWo7bT1kO2k9ZjtyZXR1cm4g
bXwwfWI9ais0fDA7bj1jW2I+PjJdfDA7bz0obnwwKT09MDtpZihvKXtwPWp8MDt3aGlsZSgxKXtx
PWNbcCs4Pj4yXXwwO2lmKChwfDApPT0oY1txPj4yXXwwKSl7cj1xO2JyZWFrfWVsc2V7cD1xfX19
ZWxzZXtwPW47d2hpbGUoMSl7cT1jW3A+PjJdfDA7aWYoKHF8MCk9PTApe3I9cDticmVha31lbHNl
e3A9cX19fXA9Zztkb3tpZigocnwwKSE9KHB8MCkpe2lmKGs8K2hbcisxNj4+M10pe2JyZWFrfW49
Z3wwO3E9Y1tuPj4yXXwwO2lmKChxfDApPT0wKXtjW2Q+PjJdPXA7bT1uO2k9ZjtyZXR1cm4gbXww
fWVsc2V7cz1xfXdoaWxlKDEpe2w9K2hbcysxNj4+M107aWYoazxsKXt0PXN8MDtxPWNbdD4+Ml18
MDtpZigocXwwKT09MCl7dT01MjE7YnJlYWt9ZWxzZXtzPXE7Y29udGludWV9fWlmKGw+PWspe3U9
NTI1O2JyZWFrfXY9cys0fDA7cT1jW3Y+PjJdfDA7aWYoKHF8MCk9PTApe3U9NTI0O2JyZWFrfWVs
c2V7cz1xfX1pZigodXwwKT09NTIxKXtjW2Q+PjJdPXM7bT10O2k9ZjtyZXR1cm4gbXwwfWVsc2Ug
aWYoKHV8MCk9PTUyNCl7Y1tkPj4yXT1zO209djtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1fDAp
PT01MjUpe2NbZD4+Ml09czttPWQ7aT1mO3JldHVybiBtfDB9fX13aGlsZSgwKTtpZihvKXtjW2Q+
PjJdPWo7bT1iO2k9ZjtyZXR1cm4gbXwwfWVsc2V7Y1tkPj4yXT1yO209cnwwO2k9ZjtyZXR1cm4g
bXwwfX19d2hpbGUoMCk7cj1jW2o+PjJdfDA7ZG97aWYoKGp8MCk9PShjW2E+PjJdfDApKXt3PWp9
ZWxzZXtpZigocnwwKT09MCl7cz1qfDA7d2hpbGUoMSl7dj1jW3MrOD4+Ml18MDtpZigoc3wwKT09
KGNbdj4+Ml18MCkpe3M9dn1lbHNle3g9djticmVha319fWVsc2V7cz1yO3doaWxlKDEpe2I9Y1tz
KzQ+PjJdfDA7aWYoKGJ8MCk9PTApe3g9czticmVha31lbHNle3M9Yn19fWs9K2hbZT4+M107aWYo
K2hbeCsxNj4+M108ayl7dz14O2JyZWFrfXM9Z3wwO2I9Y1tzPj4yXXwwO2lmKChifDApPT0wKXtj
W2Q+PjJdPWc7bT1zO2k9ZjtyZXR1cm4gbXwwfWVsc2V7eT1ifXdoaWxlKDEpe2w9K2hbeSsxNj4+
M107aWYoazxsKXt6PXl8MDtiPWNbej4+Ml18MDtpZigoYnwwKT09MCl7dT01MDI7YnJlYWt9ZWxz
ZXt5PWI7Y29udGludWV9fWlmKGw+PWspe3U9NTA2O2JyZWFrfUE9eSs0fDA7Yj1jW0E+PjJdfDA7
aWYoKGJ8MCk9PTApe3U9NTA1O2JyZWFrfWVsc2V7eT1ifX1pZigodXwwKT09NTA1KXtjW2Q+PjJd
PXk7bT1BO2k9ZjtyZXR1cm4gbXwwfWVsc2UgaWYoKHV8MCk9PTUwNil7Y1tkPj4yXT15O209ZDtp
PWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1fDApPT01MDIpe2NbZD4+Ml09eTttPXo7aT1mO3JldHVy
biBtfDB9fX13aGlsZSgwKTtpZigocnwwKT09MCl7Y1tkPj4yXT1qO209anwwO2k9ZjtyZXR1cm4g
bXwwfWVsc2V7Y1tkPj4yXT13O209dys0fDA7aT1mO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rp
b24gY0koYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0w
LEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MC4wLEg9MCxJPTA7Zz1pO2o9ZDtkPWk7aT1pKzh8
MDtjW2Q+PjJdPWNbaj4+Ml07Y1tkKzQ+PjJdPWNbais0Pj4yXTtqPWU7ZT1pO2k9aSs4fDA7Y1tl
Pj4yXT1jW2o+PjJdO2NbZSs0Pj4yXT1jW2orND4+Ml07aj1mO2Y9aTtpPWkrMXwwO2k9aSs3Pj4z
PDwzO2FbZl09YVtqXXwwO2o9ZHwwO2Y9ZCs0fDA7az1jW2Y+PjJdfDA7bD1jW2U+PjJdfDA7bT1j
W2UrND4+Ml18MDtMNjU1OmRve2lmKChrfDApPT0obXwwKSl7bj1rO289bDtwPTU0OX1lbHNle2U9
Y1tqPj4yXXwwO3E9ZTtyPWs7cz1jW2U+PjJdfDA7d2hpbGUoMSl7ZT1yKzh8MDtpZigoZS1zfDAp
PT00MDk2KXt0PXErNHwwO3U9Y1t0Pj4yXXwwO3Y9dDt3PXU7eD11fWVsc2V7dj1xO3c9ZTt4PXN9
aWYoKHd8MCk9PShtfDApKXticmVha31pZigraFtyPj4zXT09K2hbdz4+M10pe249cjtvPXE7cD01
NDk7YnJlYWsgTDY1NX1lbHNle3E9djtyPXc7cz14fX1jW2o+PjJdPWw7Y1tmPj4yXT1tfX13aGls
ZSgwKTtkb3tpZigocHwwKT09NTQ5KXtjW2o+PjJdPW87Y1tmPj4yXT1uO2lmKChufDApPT0obXww
KSl7YnJlYWt9bD1uKzh8MDt4PWNbbz4+Ml18MDtpZigobC14fDApPT00MDk2KXt3PW8rNHwwO3Y9
Y1t3Pj4yXXwwO3k9dzt6PXY7QT12O0I9bjtDPW99ZWxzZXt5PW87ej1sO0E9eDtCPW47Qz1vfXdo
aWxlKDEpe3g9eis4fDA7aWYoKHgtQXwwKT09NDA5Nil7bD15KzR8MDt2PWNbbD4+Ml18MDtEPWw7
RT12O0Y9dn1lbHNle0Q9eTtFPXg7Rj1BfWlmKChFfDApPT0obXwwKSl7YnJlYWt9Rz0raFtFPj4z
XTtpZigraFtCPj4zXT09Ryl7eT1EO3o9RTtBPUY7Qj1CO0M9Qztjb250aW51ZX14PUIrOHwwO2Nb
Zj4+Ml09eDtpZigoeC0oY1tDPj4yXXwwKXwwKT09NDA5Nil7dj1DKzR8MDtjW2o+PjJdPXY7bD1j
W3Y+PjJdfDA7Y1tmPj4yXT1sO0g9djtJPWx9ZWxzZXtIPUM7ST14fWhbST4+M109Rzt5PUQ7ej1F
O0E9Y1tEPj4yXXwwO0I9STtDPUh9eD1CKzh8MDtjW2Y+PjJdPXg7aWYoKHgtKGNbQz4+Ml18MCl8
MCkhPTQwOTYpe2JyZWFrfXg9Qys0fDA7Y1tqPj4yXT14O2NbZj4+Ml09Y1t4Pj4yXX19d2hpbGUo
MCk7Zj1kO2Q9YjtiPWNbZis0Pj4yXXwwO2NbZD4+Ml09Y1tmPj4yXTtjW2QrND4+Ml09YjtpPWc7
cmV0dXJufWZ1bmN0aW9uIGNKKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7dmFyIGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MCx2PTAsdz0wLjAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAuMCxEPTA7Zz1pO2k9aSs0OHwwO2o9
YjtiPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2I+PjJdPWNbaj4+Ml07aj1kO2Q9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tqPj4yXTtqPWd8MDtrPWcrOHwwO2w9ZysxNnwwO209Zysy
NHwwO249ZyszMnwwO289Zys0MHwwO3N3aXRjaChlfDApe2Nhc2UgMjp7cD1kfDA7cT1jW2NbcD4+
Ml0+PjJdfDA7Y1twPj4yXT1xO3A9Y1tiPj4yXXwwO2lmKCtoW3ErOD4+M108K2hbcCs4Pj4zXSl7
cj1xKzR8MDtzPXF8MDtjWyhjW3M+PjJdfDApKzQ+PjJdPWNbcj4+Ml07Y1tjW3I+PjJdPj4yXT1j
W3M+PjJdO3Q9cHwwO2NbKGNbdD4+Ml18MCkrND4+Ml09cTtjW3M+PjJdPWNbdD4+Ml07Y1t0Pj4y
XT1xO2Nbcj4+Ml09cDtjW2E+PjJdPXE7aT1nO3JldHVybn1lbHNle2NbYT4+Ml09cDtpPWc7cmV0
dXJufWJyZWFrfTtjYXNlIDA6Y2FzZSAxOntjW2E+PjJdPWNbYj4+Ml07aT1nO3JldHVybn07ZGVm
YXVsdDp7cD1lPj4+MTtxPWJ8MDtiPWNbcT4+Ml18MDtpZigocHwwKT09MCl7dT1ifWVsc2V7cj1w
O3Q9Yjt3aGlsZSgxKXtzPXItMXwwO3Y9Y1t0KzQ+PjJdfDA7aWYoKHN8MCk+MCl7cj1zO3Q9dn1l
bHNle3U9djticmVha319fWNbaz4+Ml09YjtjW2w+PjJdPXU7Y0ooaixrLGwscCxmKTtsPWNbaj4+
Ml18MDtjW3E+PjJdPWw7Y1tuPj4yXT11O3U9ZHwwO2Q9Y1t1Pj4yXXwwO2Nbbz4+Ml09ZDtjSiht
LG4sbyxlLXB8MCxmKTtmPWNbbT4+Ml18MDt3PStoW2wrOD4+M107aWYoK2hbZis4Pj4zXTx3KXtt
PWNbZis0Pj4yXXwwO0w2OTc6ZG97aWYoKG18MCk9PShkfDApKXt4PWR9ZWxzZXtwPW07d2hpbGUo
MSl7aWYoK2hbcCs4Pj4zXT49dyl7eD1wO2JyZWFrIEw2OTd9ZT1jW3ArND4+Ml18MDtpZigoZXww
KT09KGR8MCkpe3g9ZDticmVha31lbHNle3A9ZX19fX13aGlsZSgwKTttPWNbeD4+Ml18MDtwPW0r
NHwwO2U9ZnwwO2NbKGNbZT4+Ml18MCkrND4+Ml09Y1twPj4yXTtjW2NbcD4+Ml0+PjJdPWNbZT4+
Ml07bz1jW2wrND4+Ml18MDtuPWx8MDtjWyhjW24+PjJdfDApKzQ+PjJdPWY7Y1tlPj4yXT1jW24+
PjJdO2Nbbj4+Ml09bTtjW3A+PjJdPWw7eT1mO3o9eDtBPW99ZWxzZXt5PWw7ej1mO0E9Y1tsKzQ+
PjJdfDB9Y1txPj4yXT1BO0w3MDQ6ZG97aWYoKEF8MCkhPSh6fDApKXtsPXo7Zj16O289QTt4PWQ7
d2hpbGUoMSl7cD1sKzh8MDtpZigobHwwKT09KHh8MCkpe2JyZWFrIEw3MDR9ZWxzZXtCPW99d2hp
bGUoMSl7Qz0raFtCKzg+PjNdO2lmKCtoW3A+PjNdPEMpe2JyZWFrfW09Y1tCKzQ+PjJdfDA7Y1tx
Pj4yXT1tO2lmKChtfDApPT0oZnwwKSl7YnJlYWsgTDcwNH1lbHNle0I9bX19cD1jW2wrND4+Ml18
MDtMNzExOmRve2lmKChwfDApPT0oeHwwKSl7RD14fWVsc2V7bT1wO3doaWxlKDEpe2lmKCtoW20r
OD4+M10+PUMpe0Q9bTticmVhayBMNzExfW49Y1ttKzQ+PjJdfDA7aWYoKG58MCk9PSh4fDApKXtE
PXg7YnJlYWt9ZWxzZXttPW59fX19d2hpbGUoMCk7cD1jW0Q+PjJdfDA7bT1wKzR8MDtuPWx8MDtj
WyhjW24+PjJdfDApKzQ+PjJdPWNbbT4+Ml07Y1tjW20+PjJdPj4yXT1jW24+PjJdO2U9Y1tCKzQ+
PjJdfDA7aj0oZnwwKT09KGx8MCk/RDpmO2s9QnwwO2NbKGNbaz4+Ml18MCkrND4+Ml09bDtjW24+
PjJdPWNbaz4+Ml07Y1trPj4yXT1wO2NbbT4+Ml09QjtjW3E+PjJdPWU7aWYoKGV8MCk9PShqfDAp
KXticmVhayBMNzA0fWw9RDtmPWo7bz1lO3g9Y1t1Pj4yXXwwfX19d2hpbGUoMCk7Y1thPj4yXT15
O2k9ZztyZXR1cm59fX1mdW5jdGlvbiBjSyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0w
LHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAs
Sj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxY
PTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9
MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAs
YXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0wLGFF
PTAsYUY9MCxhRz0wLjAsYUg9MC4wLGFJPTAuMCxhSj0wLjAsYUs9MC4wLGFMPTAsYU09MCxhTj0w
LGFPPTAsYVA9MCxhUT0wLGFSPTAsYVM9MC4wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxhWT0w
LGFaPTAsYV89MCxhJD0wLGEwPTAuMCxhMT0wLGEyPTAsYTM9MCxhND0wLGE1PTAsYTY9MCxhNz0w
LGE4PTAuMCxhOT0wLGJhPTAsYmI9MCxiYz0wLGJkPTAuMCxiZT0wLGJmPTAsYmc9MCxiaD0wLGJp
PTAsYmo9MCxiaz0wLGJsPTAsYm09MCxibj0wLGJvPTAsYnA9MCxicT0wLGJyPTAsYnM9MCxidD0w
LGJ1PTAuMCxidj0wLGJ3PTAsYng9MCxieT0wLGJ6PTAuMCxiQT0wLGJCPTAsYkM9MCxiRD0wLGJF
PTAsYkY9MCxiRz0wLGJIPTAsYkk9MCxiSj0wLGJLPTAsYkw9MCxiTT0wLGJOPTAsYk89MCxiUD0w
LGJRPTAuMCxiUj0wLGJTPTAsYlQ9MDtlPWk7aT1pKzh8MDtmPWE7YT1pO2k9aSs4fDA7Y1thPj4y
XT1jW2Y+PjJdO2NbYSs0Pj4yXT1jW2YrND4+Ml07Zj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tm
Pj4yXTtjW2IrND4+Ml09Y1tmKzQ+PjJdO2Y9ZXwwO2c9ZjtqPWk7aT1pKzh8MDtrPWo7bD1pO2k9
aSs4fDA7bT1sO249aTtpPWkrOHwwO289bjtwPWk7aT1pKzh8MDtxPXA7cj1pO2k9aSs4fDA7cz1y
O3Q9aTtpPWkrOHwwO3U9dDt2PWk7aT1pKzh8MDt3PXY7eD1pO2k9aSs4fDA7eT14O3o9aTtpPWkr
OHwwO0E9aTtpPWkrOHwwO0I9aTtpPWkrOHwwO0M9aTtpPWkrOHwwO0Q9QztFPWk7aT1pKzh8MDtG
PWk7aT1pKzh8MDtHPWk7aT1pKzh8MDtIPUc7ST1pO2k9aSs4fDA7Sj1JO0s9aTtpPWkrOHwwO0w9
aTtpPWkrOHwwO009aTtpPWkrOHwwO049TTtPPWIrNHwwO1A9Y1tPPj4yXXwwO1E9YSs0fDA7Uj1j
W1E+PjJdfDA7aWYoKFB8MCk9PShSfDApKXtpPWU7cmV0dXJufVM9YnwwO1Q9YXwwO1U9YTthPXkr
NHwwO1Y9eDtXPXp8MDtYPXorNHwwO1k9QXwwO1o9QSs0fDA7Xz1CfDA7JD1CKzR8MDthYT1FfDA7
YWI9RSs0fDA7YWM9RnwwO2FkPUYrNHwwO2FlPWI7Yj1LfDA7YWY9Sys0fDA7YWc9THwwO2FoPUwr
NHwwO2FpPVA7UD1SO0w3MjU6d2hpbGUoMSl7YWo9Y1tTPj4yXXwwO1I9Y1tUPj4yXXwwO2FrPWNb
YWo+PjJdfDA7YWw9Y1tSPj4yXXwwO2FtPVAtYWw+PjM7YW49KGFpLWFrPj4zKSsoYWotUjw8Nykt
YW18MDtzd2l0Y2goYW58MCl7Y2FzZSA1Onthbz02MzA7YnJlYWsgTDcyNTticmVha307Y2FzZSA0
Onthbz02MTA7YnJlYWsgTDcyNTticmVha307Y2FzZSAyOnthbz01OTM7YnJlYWsgTDcyNTticmVh
a307Y2FzZSAzOnthbz01OTc7YnJlYWsgTDcyNTticmVha307Y2FzZSAwOmNhc2UgMTp7YW89NzYw
O2JyZWFrIEw3MjU7YnJlYWt9O2RlZmF1bHQ6e319aWYoKGFufDApPDMxKXthbz02NDM7YnJlYWt9
aWYoKGFpfDApPT0oYWt8MCkpe2FwPWFqLTR8MDthcT1hcDthcj0oY1thcD4+Ml18MCkrNDA5Nnww
fWVsc2V7YXE9YWo7YXI9YWl9YXA9YXItOHwwO2FzPShhbnwwKS8yfDA7YXQ9KGFuKzF8MCk+Pj4w
PjI7ZG97aWYoKGFufDApPjk5OSl7ZG97aWYoYXQpe2F1PWFtK2FzfDA7aWYoKGF1fDApPjApe2F2
PVIrKCgoYXV8MCkvNTEyfDApPDwyKXwwO2F3PWNbYXY+PjJdfDA7YXg9YXcrKCgoYXV8MCklNTEy
fDApPDwzKXwwO2F5PWF2O2F6PWF3O2JyZWFrfWVsc2V7YXc9NTExLWF1fDA7YXU9UisoKChhd3ww
KS8tNTEyfDApPDwyKXwwO2F2PWNbYXU+PjJdfDA7YXg9YXYrKDUxMS0oKGF3fDApJTUxMnwwKTw8
Myl8MDtheT1hdTthej1hdjticmVha319ZWxzZXtheD1QO2F5PVI7YXo9YWx9fXdoaWxlKDApO2F2
PShhbnwwKS80fDA7YXU9Y1tVPj4yXXwwO2F3PWNbVSs0Pj4yXXwwO2Nbdj4+Ml09YXU7Y1t2KzQ+
PjJdPWF3O2NbeD4+Ml09YXU7Y1t4KzQ+PjJdPWF3O2FBPShhbiszfDApPj4+MD42O2FCPWF1O2Rv
e2lmKGFBKXthdT0oYXctKGNbYUI+PjJdfDApPj4zKSthdnwwO2lmKChhdXwwKT4wKXthQz1hQiso
KChhdXwwKS81MTJ8MCk8PDIpfDA7Y1tWPj4yXT1hQztjW2E+PjJdPShjW2FDPj4yXXwwKSsoKChh
dXwwKSU1MTJ8MCk8PDMpO2NbVz4+Ml09YXk7Y1tYPj4yXT1heDtjW1k+PjJdPWF5O2NbWj4+Ml09
YXg7aWYoIWFBKXticmVha319ZWxzZXthQz01MTEtYXV8MDthdT1hQisoKChhQ3wwKS8tNTEyfDAp
PDwyKXwwO2NbVj4+Ml09YXU7Y1thPj4yXT0oY1thdT4+Ml18MCkrKDUxMS0oKGFDfDApJTUxMnww
KTw8Myk7Y1tXPj4yXT1heTtjW1g+PjJdPWF4O2NbWT4+Ml09YXk7Y1taPj4yXT1heH1hQz0oYXgt
YXo+PjMpK2F2fDA7aWYoKGFDfDApPjApe2F1PWF5KygoKGFDfDApLzUxMnwwKTw8Mil8MDtjW1k+
PjJdPWF1O2NbWj4+Ml09KGNbYXU+PjJdfDApKygoKGFDfDApJTUxMnwwKTw8Myk7YnJlYWt9ZWxz
ZXthdT01MTEtYUN8MDthQz1heSsoKChhdXwwKS8tNTEyfDApPDwyKXwwO2NbWT4+Ml09YUM7Y1ta
Pj4yXT0oY1thQz4+Ml18MCkrKDUxMS0oKGF1fDApJTUxMnwwKTw8Myk7YnJlYWt9fWVsc2V7Y1tX
Pj4yXT1heTtjW1g+PjJdPWF4O2NbWT4+Ml09YXk7Y1taPj4yXT1heH19d2hpbGUoMCk7Y1tfPj4y
XT1hcTtjWyQ+PjJdPWFwO2FEPWNMKHcseSx6LEEsQiwwKXwwO2FFPWF4fWVsc2V7ZG97aWYoYXQp
e2F2PWFtK2FzfDA7aWYoKGF2fDApPjApe2FGPShjW1IrKCgoYXZ8MCkvNTEyfDApPDwyKT4+Ml18
MCkrKCgoYXZ8MCklNTEyfDApPDwzKXwwO2JyZWFrfWVsc2V7YUI9NTExLWF2fDA7YUY9KGNbUiso
KChhQnwwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKGFCfDApJTUxMnwwKTw8Myl8MDticmVh
a319ZWxzZXthRj1QfX13aGlsZSgwKTthQj1jW1UrND4+Ml18MDthRz0raFthRj4+M107YUg9K2hb
YUI+PjNdO2FJPStoW2FwPj4zXTthdj1hSTxhRztpZihhRz49YUgpe2lmKCFhdil7YUQ9MDthRT1h
RjticmVha31oW2FGPj4zXT1hSTtoW2FwPj4zXT1hRzthSj0raFthRj4+M107YUs9K2hbYUI+PjNd
O2lmKGFKPj1hSyl7YUQ9MTthRT1hRjticmVha31oW2FCPj4zXT1hSjtoW2FGPj4zXT1hSzthRD0y
O2FFPWFGO2JyZWFrfWlmKGF2KXtoW2FCPj4zXT1hSTtoW2FwPj4zXT1hSDthRD0xO2FFPWFGO2Jy
ZWFrfWhbYUI+PjNdPWFHO2hbYUY+PjNdPWFIO2FHPStoW2FwPj4zXTtpZihhRz49YUgpe2FEPTE7
YUU9YUY7YnJlYWt9aFthRj4+M109YUc7aFthcD4+M109YUg7YUQ9MjthRT1hRn19d2hpbGUoMCk7
Uj1jW1Q+PjJdfDA7YXM9Y1tRPj4yXXwwO2FIPStoW2FzPj4zXTthRz0raFthRT4+M107ZG97aWYo
YUg8YUcpe2FMPWFEO2FNPWFxO2FOPWFwO2FvPTcwN31lbHNle2FtPWFxO2F0PWFwO2FuPWNbYXE+
PjJdfDA7d2hpbGUoMSl7aWYoKGF0fDApPT0oYW58MCkpe2FsPWFtLTR8MDthQj1jW2FsPj4yXXww
O2FPPWFsO2FQPWFCKzQwOTZ8MDthUT1hQn1lbHNle2FPPWFtO2FQPWF0O2FRPWFufWFSPWFQLTh8
MDtpZigoYXN8MCk9PShhUnwwKSl7YnJlYWt9YVM9K2hbYVI+PjNdO2lmKGFTPGFHKXthbz03MDY7
YnJlYWt9ZWxzZXthbT1hTzthdD1hUjthbj1hUX19aWYoKGFvfDApPT03MDYpe2FvPTA7aFthcz4+
M109YVM7aFthUj4+M109YUg7YUw9YUQrMXwwO2FNPWFPO2FOPWFSO2FvPTcwNzticmVha31hbj1h
cys4fDA7YXQ9Y1tSPj4yXXwwO2lmKChhbi1hdHwwKT09NDA5Nil7YW09Uis0fDA7YUI9Y1thbT4+
Ml18MDthVD1hQjthVT1hbTthVj1hQn1lbHNle2FUPWFuO2FVPVI7YVY9YXR9YXQ9Y1tTPj4yXXww
O2FuPWNbTz4+Ml18MDtpZigoYW58MCk9PShjW2F0Pj4yXXwwKSl7YUI9YXQtNHwwO2FXPWFCO2FY
PShjW2FCPj4yXXwwKSs0MDk2fDB9ZWxzZXthVz1hdDthWD1hbn1hbj1hWC04fDA7YUk9K2hbYW4+
PjNdO2Rve2lmKGFIPGFJKXthWT1hVDthWj1hVTthXz1hVn1lbHNle2F0PWFUO2FCPWFVO2FtPWFW
O0w3ODY6d2hpbGUoMSl7YSQ9YXQ7d2hpbGUoMSl7aWYoKGEkfDApPT0oYW58MCkpe2FvPTc2Nzti
cmVhayBMNzI1fWEwPStoW2EkPj4zXTtpZihhSDxhMCl7YnJlYWsgTDc4Nn1hbD1hJCs4fDA7aWYo
KGFsLWFtfDApPT00MDk2KXticmVha31lbHNle2EkPWFsfX1hbD1hQis0fDA7YXY9Y1thbD4+Ml18
MDthdD1hdjthQj1hbDthbT1hdn1oW2EkPj4zXT1hSTtoW2FuPj4zXT1hMDthbT1hJCs4fDA7YXQ9
Y1thQj4+Ml18MDtpZigoYW0tYXR8MCkhPTQwOTYpe2FZPWFtO2FaPWFCO2FfPWF0O2JyZWFrfWF0
PWFCKzR8MDthbT1jW2F0Pj4yXXwwO2FZPWFtO2FaPWF0O2FfPWFtfX13aGlsZSgwKTtpZigoYVl8
MCk9PShhbnwwKSl7YW89NzY4O2JyZWFrIEw3MjV9ZWxzZXthMT1hWTthMj1hWjthMz1hVzthND1h
bjthNT1hX313aGlsZSgxKXthST0raFtjW1E+PjJdPj4zXTthbT1hMTthNj1hMjthdD1hNTtMNzk4
OndoaWxlKDEpe2E3PWFtO3doaWxlKDEpe2E4PStoW2E3Pj4zXTtpZihhSTxhOCl7YnJlYWsgTDc5
OH1hdj1hNys4fDA7aWYoKGF2LWF0fDApPT00MDk2KXticmVha31lbHNle2E3PWF2fX1hdj1hNis0
fDA7YWw9Y1thdj4+Ml18MDthbT1hbDthNj1hdjthdD1hbH1hdD1hMzthbT1hNDthQj1jW2EzPj4y
XXwwO3doaWxlKDEpe2lmKChhbXwwKT09KGFCfDApKXthbD1hdC00fDA7YXY9Y1thbD4+Ml18MDth
OT1hbDtiYT1hdis0MDk2fDA7YmI9YXZ9ZWxzZXthOT1hdDtiYT1hbTtiYj1hQn1iYz1iYS04fDA7
YmQ9K2hbYmM+PjNdO2lmKGFJPGJkKXthdD1hOTthbT1iYzthQj1iYn1lbHNle2JyZWFrfX1pZihh
Nj4+PjA+PWE5Pj4+MCl7aWYoYTc+Pj4wPj1iYz4+PjB8KGE2fDApIT0oYTl8MCkpe2JyZWFrfX1o
W2E3Pj4zXT1iZDtoW2JjPj4zXT1hODthQj1hNys4fDA7YW09Y1thNj4+Ml18MDtpZigoYUItYW18
MCkhPTQwOTYpe2ExPWFCO2EyPWE2O2EzPWE5O2E0PWJjO2E1PWFtO2NvbnRpbnVlfWFtPWE2KzR8
MDthQj1jW2FtPj4yXXwwO2ExPWFCO2EyPWFtO2EzPWE5O2E0PWJjO2E1PWFCfWNbVD4+Ml09YTY7
Y1tRPj4yXT1hNztiZT1hN319d2hpbGUoMCk7TDgxNjpkb3tpZigoYW98MCk9PTcwNyl7YW89MDth
cD1hcys4fDA7YW49Y1tSPj4yXXwwO2lmKChhcC1hbnwwKT09NDA5Nil7YUI9Uis0fDA7YW09Y1th
Qj4+Ml18MDtiZj1hbTtiZz1hQjtiaD1hbX1lbHNle2JmPWFwO2JnPVI7Ymg9YW59aWYoYmc+Pj4w
PGFNPj4+MCl7Ymk9YUw7Ymo9YmY7Yms9Ymc7Ymw9YUU7Ym09YU07Ym49YU47Ym89Ymg7YW89NzEx
fWVsc2V7aWYoKGJnfDApPT0oYU18MCkmYmY+Pj4wPGFOPj4+MCl7Ymk9YUw7Ymo9YmY7Yms9Ymc7
Ymw9YUU7Ym09YU07Ym49YU47Ym89Ymg7YW89NzExfWVsc2V7YnA9YUw7YnE9YmY7YnI9Ymc7YnM9
YUV9fUw4MjM6ZG97aWYoKGFvfDApPT03MTEpe3doaWxlKDEpe2FvPTA7YUg9K2hbYmw+PjNdO2Fu
PWJqO2FwPWJrO2FtPWJvO0w4MjY6d2hpbGUoMSl7YnQ9YW47d2hpbGUoMSl7YnU9K2hbYnQ+PjNd
O2lmKGJ1Pj1hSCl7YnJlYWsgTDgyNn1hQj1idCs4fDA7aWYoKGFCLWFtfDApPT00MDk2KXticmVh
a31lbHNle2J0PWFCfX1hQj1hcCs0fDA7YXQ9Y1thQj4+Ml18MDthbj1hdDthcD1hQjthbT1hdH1h
bT1ibTthbj1ibjthdD1jW2JtPj4yXXwwO3doaWxlKDEpe2lmKChhbnwwKT09KGF0fDApKXthQj1h
bS00fDA7YXY9Y1thQj4+Ml18MDtidj1hQjtidz1hdis0MDk2fDA7Yng9YXZ9ZWxzZXtidj1hbTti
dz1hbjtieD1hdH1ieT1idy04fDA7Yno9K2hbYnk+PjNdO2lmKGJ6Pj1hSCl7YW09YnY7YW49Ynk7
YXQ9Ynh9ZWxzZXticmVha319aWYoYnY+Pj4wPGFwPj4+MCl7YnA9Ymk7YnE9YnQ7YnI9YXA7YnM9
Ymw7YnJlYWsgTDgyM31pZigoYnZ8MCk9PShhcHwwKSZieT4+PjA8YnQ+Pj4wKXticD1iaTticT1i
dDticj1hcDticz1ibDticmVhayBMODIzfWhbYnQ+PjNdPWJ6O2hbYnk+PjNdPWJ1O2F0PWJpKzF8
MDthbj0oYmx8MCk9PShidHwwKT9ieTpibDthbT1idCs4fDA7YXY9Y1thcD4+Ml18MDtpZigoYW0t
YXZ8MCkhPTQwOTYpe2JpPWF0O2JqPWFtO2JrPWFwO2JsPWFuO2JtPWJ2O2JuPWJ5O2JvPWF2O2Fv
PTcxMTtjb250aW51ZX1hdj1hcCs0fDA7YW09Y1thdj4+Ml18MDtiaT1hdDtiaj1hbTtiaz1hdjti
bD1hbjtibT1idjtibj1ieTtibz1hbTthbz03MTF9fX13aGlsZSgwKTtkb3tpZigoYnF8MCk9PShi
c3wwKSl7YkE9YnB9ZWxzZXthSD0raFticz4+M107YUc9K2hbYnE+PjNdO2lmKGFIPj1hRyl7YkE9
YnA7YnJlYWt9aFticT4+M109YUg7aFticz4+M109YUc7YkE9YnArMXwwfX13aGlsZSgwKTtkb3tp
ZigoYkF8MCk9PTApe2FtPWNbVSs0Pj4yXXwwO2NbQz4+Ml09Y1tVPj4yXTtjW0MrND4+Ml09YW07
Y1thYT4+Ml09YnI7Y1thYj4+Ml09YnE7YW09Y04oRCxFLDApfDA7Y1thYz4+Ml09YnI7Y1thZD4+
Ml09YnE7YW49YnEtKGNbYnI+PjJdfDApPj4zO2F2PWFuKzF8MDtpZigoYXZ8MCk+MCl7YXQ9YnIr
KCgoYXZ8MCkvNTEyfDApPDwyKXwwO2NbYWM+PjJdPWF0O2JCPShjW2F0Pj4yXXwwKSsoKChhdnww
KSU1MTJ8MCk8PDMpfDB9ZWxzZXthdj01MTAtYW58MDthbj1icisoKChhdnwwKS8tNTEyfDApPDwy
KXwwO2NbYWM+PjJdPWFuO2JCPShjW2FuPj4yXXwwKSsoNTExLSgoYXZ8MCklNTEyfDApPDwzKXww
fWNbYWQ+PjJdPWJCO2F2PWNbYWUrND4+Ml18MDtjW0c+PjJdPWNbYWU+PjJdO2NbRys0Pj4yXT1h
djtpZihjTihGLEgsMCl8MCl7aWYoYW0pe2FvPTc3MDticmVhayBMNzI1fWNbUz4+Ml09YnI7Y1tP
Pj4yXT1icTtiZT1jW1E+PjJdfDA7YnJlYWsgTDgxNn1pZighYW0pe2JyZWFrfWFtPWJxKzh8MDtp
ZigoYW0tKGNbYnI+PjJdfDApfDApPT00MDk2KXthdj1icis0fDA7YkM9Y1thdj4+Ml18MDtiRD1h
dn1lbHNle2JDPWFtO2JEPWJyfWNbVD4+Ml09YkQ7Y1tRPj4yXT1iQztiZT1iQzticmVhayBMODE2
fX13aGlsZSgwKTthbT1jW1E+PjJdfDA7aWYoKGJxfDApPT0oYW18MCkpe2JFPTB9ZWxzZXthdj1j
W1Q+PjJdfDA7YkU9KGJxLShjW2JyPj4yXXwwKT4+MykrKGJyLWF2PDw3KS0oYW0tKGNbYXY+PjJd
fDApPj4zKXwwfWF2PWNbTz4+Ml18MDtpZigoYXZ8MCk9PShicXwwKSl7YkY9MH1lbHNle2FuPWNb
Uz4+Ml18MDtiRj0oYXYtKGNbYW4+PjJdfDApPj4zKSsoYW4tYnI8PDcpLShicS0oY1ticj4+Ml18
MCk+PjMpfDB9aWYoKGJFfDApPChiRnwwKSl7YW49Y1tVKzQ+PjJdfDA7Y1tJPj4yXT1jW1U+PjJd
O2NbSSs0Pj4yXT1hbjtjW2I+PjJdPWJyO2NbYWY+PjJdPWJxO2NLKEosSyxkKTthbj1icSs4fDA7
aWYoKGFuLShjW2JyPj4yXXwwKXwwKT09NDA5Nil7YXY9YnIrNHwwO2JHPWNbYXY+PjJdfDA7Ykg9
YXZ9ZWxzZXtiRz1hbjtiSD1icn1jW1Q+PjJdPWJIO2NbUT4+Ml09Ykc7YmU9Ykc7YnJlYWt9Y1th
Zz4+Ml09YnI7Y1thaD4+Ml09YnE7YW49YnEtKGNbYnI+PjJdfDApPj4zO2F2PWFuKzF8MDtpZigo
YXZ8MCk+MCl7YXQ9YnIrKCgoYXZ8MCkvNTEyfDApPDwyKXwwO2NbYWc+PjJdPWF0O2JJPShjW2F0
Pj4yXXwwKSsoKChhdnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXthdj01MTAtYW58MDthbj1icisoKChh
dnwwKS8tNTEyfDApPDwyKXwwO2NbYWc+PjJdPWFuO2JJPShjW2FuPj4yXXwwKSsoNTExLSgoYXZ8
MCklNTEyfDApPDwzKXwwfWNbYWg+PjJdPWJJO2F2PWNbYWUrND4+Ml18MDtjW00+PjJdPWNbYWU+
PjJdO2NbTSs0Pj4yXT1hdjtjSyhMLE4sZCk7Y1tTPj4yXT1icjtjW08+PjJdPWJxO2JlPWFtfX13
aGlsZSgwKTtSPWNbTz4+Ml18MDtpZigoUnwwKT09KGJlfDApKXthbz03Njk7YnJlYWt9ZWxzZXth
aT1SO1A9YmV9fWlmKChhb3wwKT09NjMwKXtiZT1jW1U+PjJdfDA7YnE9Y1tVKzQ+PjJdfDA7Y1tm
Pj4yXT1iZTtjW2YrND4+Ml09YnE7Y1tqPj4yXT1iZTtjW2orND4+Ml09YnE7Zj1icTticj1qO2o9
YmU7ZD1mLShjW2o+PjJdfDApPj4zO049ZCsxfDA7aWYoKE58MCk+MCl7TD1qKygoKE58MCkvNTEy
fDApPDwyKXwwO2NbYnI+PjJdPUw7Yko9KGNbTD4+Ml18MCkrKCgoTnwwKSU1MTJ8MCk8PDMpfDB9
ZWxzZXtOPTUxMC1kfDA7ZD1qKygoKE58MCkvLTUxMnwwKTw8Mil8MDtjW2JyPj4yXT1kO2JKPShj
W2Q+PjJdfDApKyg1MTEtKChOfDApJTUxMnwwKTw8Myl8MH1jW2srND4+Ml09Yko7Y1tsPj4yXT1i
ZTtjW2wrND4+Ml09YnE7Yko9bDtsPWYtKGNbaj4+Ml18MCk+PjM7Tj1sKzJ8MDtpZigoTnwwKT4w
KXtkPWorKCgoTnwwKS81MTJ8MCk8PDIpfDA7Y1tiSj4+Ml09ZDtiSz0oY1tkPj4yXXwwKSsoKChO
fDApJTUxMnwwKTw8Myl8MH1lbHNle049NTA5LWx8MDtsPWorKCgoTnwwKS8tNTEyfDApPDwyKXww
O2NbYko+PjJdPWw7Yks9KGNbbD4+Ml18MCkrKDUxMS0oKE58MCklNTEyfDApPDwzKXwwfWNbbSs0
Pj4yXT1iSztjW24+PjJdPWJlO2Nbbis0Pj4yXT1icTticT1uO249Zi0oY1tqPj4yXXwwKT4+Mztm
PW4rM3wwO2lmKChmfDApPjApe2JlPWorKCgoZnwwKS81MTJ8MCk8PDIpfDA7Y1ticT4+Ml09YmU7
Ykw9KGNbYmU+PjJdfDApKygoKGZ8MCklNTEyfDApPDwzKXwwfWVsc2V7Zj01MDgtbnwwO249aiso
KChmfDApLy01MTJ8MCk8PDIpfDA7Y1ticT4+Ml09bjtiTD0oY1tuPj4yXXwwKSsoNTExLSgoZnww
KSU1MTJ8MCk8PDMpfDB9Y1tvKzQ+PjJdPWJMO2lmKChhaXwwKT09KGFrfDApKXtiTD1hai00fDA7
Y1tTPj4yXT1iTDtmPShjW2JMPj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1mO2JNPWZ9ZWxzZXtiTT1h
aX1jW08+PjJdPWJNLTg7Yk09Y1thZSs0Pj4yXXwwO2NbcD4+Ml09Y1thZT4+Ml07Y1twKzQ+PjJd
PWJNO2NMKGcsayxtLG8scSwwKXwwO2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTYxMCl7cT1j
W1U+PjJdfDA7bz1jW1UrND4+Ml18MDttPW87az1vLShjW3E+PjJdfDApPj4zO289aysxfDA7aWYo
KG98MCk+MCl7Yk49KGNbcSsoKChvfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKG98MCklNTEyfDAp
PDwzKXwwfWVsc2V7bz01MTAta3wwO2JOPShjW3ErKCgob3wwKS8tNTEyfDApPDwyKT4+Ml18MCkr
KDUxMS0oKG98MCklNTEyfDApPDwzKXwwfW89aysyfDA7aWYoKG98MCk+MCl7Yk89KGNbcSsoKChv
fDApLzUxMnwwKTw8Mik+PjJdfDApKygoKG98MCklNTEyfDApPDwzKXwwfWVsc2V7bz01MDkta3ww
O2JPPShjW3ErKCgob3wwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKG98MCklNTEyfDApPDwz
KXwwfWlmKChhaXwwKT09KGFrfDApKXtvPWFqLTR8MDtjW1M+PjJdPW87cT0oY1tvPj4yXXwwKSs0
MDk2fDA7Y1tPPj4yXT1xO2JQPXF9ZWxzZXtiUD1haX1jW08+PjJdPWJQLTg7YlA9Y1thZSs0Pj4y
XXwwO2J1PStoW2JOPj4zXTtiej0raFttPj4zXTthOD0raFtiTz4+M107cT1hODxidTtkb3tpZihi
dTxieil7aWYocSl7aFttPj4zXT1hODtoW2JPPj4zXT1iejtiUT1iejticmVha31oW20+PjNdPWJ1
O2hbYk4+PjNdPWJ6O2JkPStoW2JPPj4zXTtpZihiZD49Ynope2JRPWJkO2JyZWFrfWhbYk4+PjNd
PWJkO2hbYk8+PjNdPWJ6O2JRPWJ6fWVsc2V7aWYoIXEpe2JRPWE4O2JyZWFrfWhbYk4+PjNdPWE4
O2hbYk8+PjNdPWJ1O2JkPStoW2JOPj4zXTthMD0raFttPj4zXTtpZihiZD49YTApe2JRPWJ1O2Jy
ZWFrfWhbbT4+M109YmQ7aFtiTj4+M109YTA7YlE9K2hbYk8+PjNdfX13aGlsZSgwKTtidT0raFti
UD4+M107aWYoYnU+PWJRKXtpPWU7cmV0dXJufWhbYk8+PjNdPWJ1O2hbYlA+PjNdPWJRO2JRPSto
W2JPPj4zXTtidT0raFtiTj4+M107aWYoYlE+PWJ1KXtpPWU7cmV0dXJufWhbYk4+PjNdPWJRO2hb
Yk8+PjNdPWJ1O2J1PStoW2JOPj4zXTtiUT0raFttPj4zXTtpZihidT49YlEpe2k9ZTtyZXR1cm59
aFttPj4zXT1idTtoW2JOPj4zXT1iUTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT02NDMpe2JO
PWNbVSs0Pj4yXXwwO2Nbcj4+Ml09Y1tVPj4yXTtjW3IrND4+Ml09Yk47Yk49Y1thZSs0Pj4yXXww
O2NbdD4+Ml09Y1thZT4+Ml07Y1t0KzQ+PjJdPWJOO2NNKHMsdSwwKTtpPWU7cmV0dXJufWVsc2Ug
aWYoKGFvfDApPT01OTMpe2lmKChhaXwwKT09KGFrfDApKXt1PWFqLTR8MDtjW1M+PjJdPXU7cz0o
Y1t1Pj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1zO2JSPXN9ZWxzZXtiUj1haX1zPWJSLTh8MDtjW08+
PjJdPXM7YlE9K2hbcz4+M107YnU9K2hbUD4+M107aWYoYlE+PWJ1KXtpPWU7cmV0dXJufWhbUD4+
M109YlE7aFtzPj4zXT1idTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT01OTcpe3M9Y1tVPj4y
XXwwO1A9Y1tVKzQ+PjJdfDA7VT1QO2JSPVAtKGNbcz4+Ml18MCk+PjM7UD1iUisxfDA7aWYoKFB8
MCk+MCl7YlM9KGNbcysoKChQfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKFB8MCklNTEyfDApPDwz
KXwwfWVsc2V7UD01MTAtYlJ8MDtiUz0oY1tzKygoKFB8MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1
MTEtKChQfDApJTUxMnwwKTw8Myl8MH1pZigoYWl8MCk9PShha3wwKSl7YWs9YWotNHwwO2NbUz4+
Ml09YWs7Uz0oY1thaz4+Ml18MCkrNDA5NnwwO2NbTz4+Ml09UztiVD1TfWVsc2V7YlQ9YWl9Y1tP
Pj4yXT1iVC04O2JUPWNbYWUrND4+Ml18MDtidT0raFtiUz4+M107YlE9K2hbVT4+M107YTg9K2hb
YlQ+PjNdO2FlPWE4PGJ1O2lmKGJ1Pj1iUSl7aWYoIWFlKXtpPWU7cmV0dXJufWhbYlM+PjNdPWE4
O2hbYlQ+PjNdPWJ1O2J6PStoW2JTPj4zXTthMD0raFtVPj4zXTtpZihiej49YTApe2k9ZTtyZXR1
cm59aFtVPj4zXT1iejtoW2JTPj4zXT1hMDtpPWU7cmV0dXJufWlmKGFlKXtoW1U+PjNdPWE4O2hb
YlQ+PjNdPWJRO2k9ZTtyZXR1cm59aFtVPj4zXT1idTtoW2JTPj4zXT1iUTtidT0raFtiVD4+M107
aWYoYnU+PWJRKXtpPWU7cmV0dXJufWhbYlM+PjNdPWJ1O2hbYlQ+PjNdPWJRO2k9ZTtyZXR1cm59
ZWxzZSBpZigoYW98MCk9PTc2MCl7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzY3KXtpPWU7
cmV0dXJufWVsc2UgaWYoKGFvfDApPT03Njgpe2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTc2
OSl7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzcwKXtpPWU7cmV0dXJufX1mdW5jdGlvbiBj
TChhLGIsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGo9
MCxrPTAsbD0wLG09MCxuPTAuMCxvPTAuMCxwPTAuMCxxPTAscj0wLHM9MC4wLHQ9MC4wLHU9MC4w
LHY9MCx3PTA7Zz1pO2o9YTthPWk7aT1pKzh8MDtjW2E+PjJdPWNbaj4+Ml07Y1thKzQ+PjJdPWNb
ais0Pj4yXTtqPWI7Yj1pO2k9aSs4fDA7Y1tiPj4yXT1jW2o+PjJdO2NbYis0Pj4yXT1jW2orND4+
Ml07aj1kO2Q9aTtpPWkrOHwwO2NbZD4+Ml09Y1tqPj4yXTtjW2QrND4+Ml09Y1tqKzQ+PjJdO2o9
ZTtlPWk7aT1pKzh8MDtjW2U+PjJdPWNbaj4+Ml07Y1tlKzQ+PjJdPWNbais0Pj4yXTtqPWY7Zj1p
O2k9aSs4fDA7Y1tmPj4yXT1jW2o+PjJdO2NbZis0Pj4yXT1jW2orND4+Ml07aj1jW2ErND4+Ml18
MDtrPWNbYis0Pj4yXXwwO2w9Y1tkKzQ+PjJdfDA7bT1jW2UrND4+Ml18MDtuPStoW2s+PjNdO289
K2hbaj4+M107cD0raFtsPj4zXTtxPXA8bjtkb3tpZihuPG8pe2lmKHEpe2hbaj4+M109cDtoW2w+
PjNdPW87cj0xO3M9bzticmVha31oW2o+PjNdPW47aFtrPj4zXT1vO3Q9K2hbbD4+M107aWYodD49
byl7cj0xO3M9dDticmVha31oW2s+PjNdPXQ7aFtsPj4zXT1vO3I9MjtzPW99ZWxzZXtpZighcSl7
cj0wO3M9cDticmVha31oW2s+PjNdPXA7aFtsPj4zXT1uO3Q9K2hbaz4+M107dT0raFtqPj4zXTtp
Zih0Pj11KXtyPTE7cz1uO2JyZWFrfWhbaj4+M109dDtoW2s+PjNdPXU7cj0yO3M9K2hbbD4+M119
fXdoaWxlKDApO249K2hbbT4+M107ZG97aWYobjxzKXtoW2w+PjNdPW47aFttPj4zXT1zO3A9K2hb
bD4+M107bz0raFtrPj4zXTtpZihwPj1vKXt2PXIrMXwwO2JyZWFrfWhbaz4+M109cDtoW2w+PjNd
PW87bz0raFtrPj4zXTtwPStoW2o+PjNdO2lmKG8+PXApe3Y9cisyfDA7YnJlYWt9aFtqPj4zXT1v
O2hbaz4+M109cDt2PXIrM3wwfWVsc2V7dj1yfX13aGlsZSgwKTtyPWNbZis0Pj4yXXwwO2Y9Y1tl
KzQ+PjJdfDA7cz0raFtyPj4zXTtuPStoW2Y+PjNdO2lmKHM+PW4pe3c9djtpPWc7cmV0dXJuIHd8
MH1oW2Y+PjNdPXM7aFtyPj4zXT1uO3I9Y1tkKzQ+PjJdfDA7bj0raFtmPj4zXTtzPStoW3I+PjNd
O2lmKG4+PXMpe3c9disxfDA7aT1nO3JldHVybiB3fDB9aFtyPj4zXT1uO2hbZj4+M109cztmPWNb
Yis0Pj4yXXwwO3M9K2hbcj4+M107bj0raFtmPj4zXTtpZihzPj1uKXt3PXYrMnwwO2k9ZztyZXR1
cm4gd3wwfWhbZj4+M109cztoW3I+PjNdPW47cj1jW2ErND4+Ml18MDtuPStoW2Y+PjNdO3M9K2hb
cj4+M107aWYobj49cyl7dz12KzN8MDtpPWc7cmV0dXJuIHd8MH1oW3I+PjNdPW47aFtmPj4zXT1z
O3c9dis0fDA7aT1nO3JldHVybiB3fDB9ZnVuY3Rpb24gY00oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MC4wLHA9MC4wLHE9MC4w
LHI9MC4wLHM9MC4wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7ZD1pO2U9YTthPWk7
aT1pKzh8MDtjW2E+PjJdPWNbZT4+Ml07Y1thKzQ+PjJdPWNbZSs0Pj4yXTtlPWI7Yj1pO2k9aSs4
fDA7Y1tiPj4yXT1jW2U+PjJdO2NbYis0Pj4yXT1jW2UrND4+Ml07ZT1jW2E+PjJdfDA7Zj1hKzR8
MDtnPShjW2Y+PjJdfDApLShjW2U+PjJdfDApPj4zO2o9ZysyfDA7aWYoKGp8MCk+MCl7az1lKygo
KGp8MCkvNTEyfDApPDwyKXwwO2w9KGNbaz4+Ml18MCkrKCgoanwwKSU1MTJ8MCk8PDMpfDA7bT1r
fWVsc2V7az01MDktZ3wwO2c9ZSsoKChrfDApLy01MTJ8MCk8PDIpfDA7bD0oY1tnPj4yXXwwKSso
NTExLSgoa3wwKSU1MTJ8MCk8PDMpfDA7bT1nfWc9YTthPWNbZz4+Ml18MDtrPWNbZys0Pj4yXXww
O2c9aztlPWstKGNbYT4+Ml18MCk+PjM7az1lKzF8MDtpZigoa3wwKT4wKXtuPShjW2ErKCgoa3ww
KS81MTJ8MCk8PDIpPj4yXXwwKSsoKChrfDApJTUxMnwwKTw8Myl8MH1lbHNle2s9NTEwLWV8MDtu
PShjW2ErKCgoa3wwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKGt8MCklNTEyfDApPDwzKXww
fW89K2hbbj4+M107cD0raFtnPj4zXTtxPStoW2w+PjNdO2s9cTxvO2Rve2lmKG88cCl7aWYoayl7
aFtnPj4zXT1xO2hbbD4+M109cDticmVha31oW2c+PjNdPW87aFtuPj4zXT1wO3I9K2hbbD4+M107
aWYocj49cCl7YnJlYWt9aFtuPj4zXT1yO2hbbD4+M109cH1lbHNle2lmKCFrKXticmVha31oW24+
PjNdPXE7aFtsPj4zXT1vO3I9K2hbbj4+M107cz0raFtnPj4zXTtpZihyPj1zKXticmVha31oW2c+
PjNdPXI7aFtuPj4zXT1zfX13aGlsZSgwKTtuPWwtKGNbbT4+Ml18MCk+PjM7Zz1uKzF8MDtpZigo
Z3wwKT4wKXtrPW0rKCgoZ3wwKS81MTJ8MCk8PDIpfDA7YT1jW2s+PjJdfDA7dD1rO3U9YSsoKChn
fDApJTUxMnwwKTw8Myl8MDt2PWF9ZWxzZXthPTUxMC1ufDA7bj1tKygoKGF8MCkvLTUxMnwwKTw8
Mil8MDtnPWNbbj4+Ml18MDt0PW47dT1nKyg1MTEtKChhfDApJTUxMnwwKTw8Myl8MDt2PWd9Zz1i
KzR8MDtiPWw7bD10O3Q9dTt1PW07bT12O0wxMDIyOndoaWxlKDEpe3Y9YjthPXQ7bj11O2s9bTt3
aGlsZSgxKXtpZigoYXwwKT09KGNbZz4+Ml18MCkpe2JyZWFrIEwxMDIyfW89K2hbYT4+M107cT0r
aFt2Pj4zXTtpZihvPHEpe2U9bjtqPXY7dz1hO3A9cTt3aGlsZSgxKXtoW3c+PjNdPXA7aWYoKGp8
MCk9PShjW2Y+PjJdfDApKXticmVha31pZigoanwwKT09KGNbZT4+Ml18MCkpe3g9ZS00fDA7eT14
O3o9KGNbeD4+Ml18MCkrNDA5NnwwfWVsc2V7eT1lO3o9an14PXotOHwwO3E9K2hbeD4+M107aWYo
bzxxKXtlPXk7dz1qO2o9eDtwPXF9ZWxzZXticmVha319aFtqPj4zXT1vO0E9Y1tsPj4yXXwwfWVs
c2V7QT1rfXc9YSs4fDA7aWYoKHctQXwwKT09NDA5Nil7YnJlYWt9ZWxzZXt2PWE7YT13O249bDtr
PUF9fWs9bCs0fDA7bj1jW2s+PjJdfDA7Yj1hO3U9bDtsPWs7dD1uO209bn1pPWQ7cmV0dXJufWZ1
bmN0aW9uIGNOKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAuMCxFPTAuMCxGPTAsRz0wLEg9MC4wLEk9MC4wLEo9MC4wLEs9
MCxMPTAsTT0wLE49MC4wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZ
PTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTA7ZD1pO2k9aSs4fDA7
ZT1hO2E9aTtpPWkrOHwwO2NbYT4+Ml09Y1tlPj4yXTtjW2ErND4+Ml09Y1tlKzQ+PjJdO2U9Yjti
PWk7aT1pKzh8MDtjW2I+PjJdPWNbZT4+Ml07Y1tiKzQ+PjJdPWNbZSs0Pj4yXTtlPWR8MDtmPWU7
Zz1pO2k9aSs4fDA7aj1nO2s9aTtpPWkrOHwwO2w9azttPWk7aT1pKzh8MDtuPW07bz1pO2k9aSs4
fDA7cD1vO3E9Yis0fDA7cj1jW3E+PjJdfDA7cz1hKzR8MDt0PWNbcz4+Ml18MDtpZigocnwwKT09
KHR8MCkpe3U9MTtpPWQ7cmV0dXJuIHV8MH12PWJ8MDt3PWNbdj4+Ml18MDt4PWNbYT4+Ml18MDt5
PWNbdz4+Ml18MDt6PXQtKGNbeD4+Ml18MCk+PjM7c3dpdGNoKChyLXk+PjMpKyh3LXg8PDcpLXp8
MCl7Y2FzZSAyOntpZigocnwwKT09KHl8MCkpe0E9dy00fDA7Y1t2Pj4yXT1BO0I9KGNbQT4+Ml18
MCkrNDA5NnwwO2NbcT4+Ml09QjtDPUJ9ZWxzZXtDPXJ9Qj1DLTh8MDtjW3E+PjJdPUI7RD0raFtC
Pj4zXTtFPStoW3Q+PjNdO2lmKEQ+PUUpe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW3Q+PjNdPUQ7aFtC
Pj4zXT1FO3U9MTtpPWQ7cmV0dXJuIHV8MH07Y2FzZSAwOmNhc2UgMTp7dT0xO2k9ZDtyZXR1cm4g
dXwwfTtjYXNlIDM6e0I9YTt0PWNbQj4+Ml18MDtDPWNbQis0Pj4yXXwwO0I9QztBPUMtKGNbdD4+
Ml18MCk+PjM7Qz1BKzF8MDtpZigoQ3wwKT4wKXtGPShjW3QrKCgoQ3wwKS81MTJ8MCk8PDIpPj4y
XXwwKSsoKChDfDApJTUxMnwwKTw8Myl8MH1lbHNle0M9NTEwLUF8MDtGPShjW3QrKCgoQ3wwKS8t
NTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKEN8MCklNTEyfDApPDwzKXwwfWlmKChyfDApPT0oeXww
KSl7Qz13LTR8MDtjW3Y+PjJdPUM7dD0oY1tDPj4yXXwwKSs0MDk2fDA7Y1txPj4yXT10O0c9dH1l
bHNle0c9cn1jW3E+PjJdPUctODtHPWNbYis0Pj4yXXwwO0U9K2hbRj4+M107RD0raFtCPj4zXTtI
PStoW0c+PjNdO3Q9SDxFO2lmKEU+PUQpe2lmKCF0KXt1PTE7aT1kO3JldHVybiB1fDB9aFtGPj4z
XT1IO2hbRz4+M109RTtJPStoW0Y+PjNdO0o9K2hbQj4+M107aWYoST49Sil7dT0xO2k9ZDtyZXR1
cm4gdXwwfWhbQj4+M109STtoW0Y+PjNdPUo7dT0xO2k9ZDtyZXR1cm4gdXwwfWlmKHQpe2hbQj4+
M109SDtoW0c+PjNdPUQ7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbQj4+M109RTtoW0Y+PjNdPUQ7RT0r
aFtHPj4zXTtpZihFPj1EKXt1PTE7aT1kO3JldHVybiB1fDB9aFtGPj4zXT1FO2hbRz4+M109RDt1
PTE7aT1kO3JldHVybiB1fDB9O2Nhc2UgNDp7Rz1hO0Y9Y1tHPj4yXXwwO0I9Y1tHKzQ+PjJdfDA7
Rz1CO3Q9Qi0oY1tGPj4yXXwwKT4+MztCPXQrMXwwO2lmKChCfDApPjApe0s9KGNbRisoKChCfDAp
LzUxMnwwKTw8Mik+PjJdfDApKygoKEJ8MCklNTEyfDApPDwzKXwwfWVsc2V7Qj01MTAtdHwwO0s9
KGNbRisoKChCfDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgoQnwwKSU1MTJ8MCk8PDMpfDB9
Qj10KzJ8MDtpZigoQnwwKT4wKXtMPShjW0YrKCgoQnwwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChC
fDApJTUxMnwwKTw8Myl8MH1lbHNle0I9NTA5LXR8MDtMPShjW0YrKCgoQnwwKS8tNTEyfDApPDwy
KT4+Ml18MCkrKDUxMS0oKEJ8MCklNTEyfDApPDwzKXwwfWlmKChyfDApPT0oeXwwKSl7Qj13LTR8
MDtjW3Y+PjJdPUI7Rj0oY1tCPj4yXXwwKSs0MDk2fDA7Y1txPj4yXT1GO009Rn1lbHNle009cn1j
W3E+PjJdPU0tODtNPWNbYis0Pj4yXXwwO0Q9K2hbSz4+M107RT0raFtHPj4zXTtIPStoW0w+PjNd
O0Y9SDxEO2Rve2lmKEQ8RSl7aWYoRil7aFtHPj4zXT1IO2hbTD4+M109RTtOPUU7YnJlYWt9aFtH
Pj4zXT1EO2hbSz4+M109RTtKPStoW0w+PjNdO2lmKEo+PUUpe049SjticmVha31oW0s+PjNdPUo7
aFtMPj4zXT1FO049RX1lbHNle2lmKCFGKXtOPUg7YnJlYWt9aFtLPj4zXT1IO2hbTD4+M109RDtK
PStoW0s+PjNdO0k9K2hbRz4+M107aWYoSj49SSl7Tj1EO2JyZWFrfWhbRz4+M109SjtoW0s+PjNd
PUk7Tj0raFtMPj4zXX19d2hpbGUoMCk7RD0raFtNPj4zXTtpZihEPj1OKXt1PTE7aT1kO3JldHVy
biB1fDB9aFtMPj4zXT1EO2hbTT4+M109TjtOPStoW0w+PjNdO0Q9K2hbSz4+M107aWYoTj49RCl7
dT0xO2k9ZDtyZXR1cm4gdXwwfWhbSz4+M109TjtoW0w+PjNdPUQ7RD0raFtLPj4zXTtOPStoW0c+
PjNdO2lmKEQ+PU4pe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0c+PjNdPUQ7aFtLPj4zXT1OO3U9MTtp
PWQ7cmV0dXJuIHV8MH07Y2FzZSA1OntLPWE7Rz1jW0s+PjJdfDA7TD1jW0srND4+Ml18MDtjW2U+
PjJdPUc7Y1tlKzQ+PjJdPUw7Y1tnPj4yXT1HO2NbZys0Pj4yXT1MO2U9TDtLPWc7Zz1HO009ZS0o
Y1tnPj4yXXwwKT4+MztGPU0rMXwwO2lmKChGfDApPjApe0I9ZysoKChGfDApLzUxMnwwKTw8Mil8
MDtjW0s+PjJdPUI7Tz0oY1tCPj4yXXwwKSsoKChGfDApJTUxMnwwKTw8Myl8MH1lbHNle0Y9NTEw
LU18MDtNPWcrKCgoRnwwKS8tNTEyfDApPDwyKXwwO2NbSz4+Ml09TTtPPShjW00+PjJdfDApKyg1
MTEtKChGfDApJTUxMnwwKTw8Myl8MH1jW2orND4+Ml09TztjW2s+PjJdPUc7Y1trKzQ+PjJdPUw7
Tz1rO2s9ZS0oY1tnPj4yXXwwKT4+MztGPWsrMnwwO2lmKChGfDApPjApe009ZysoKChGfDApLzUx
MnwwKTw8Mil8MDtjW08+PjJdPU07UD0oY1tNPj4yXXwwKSsoKChGfDApJTUxMnwwKTw8Myl8MH1l
bHNle0Y9NTA5LWt8MDtrPWcrKCgoRnwwKS8tNTEyfDApPDwyKXwwO2NbTz4+Ml09aztQPShjW2s+
PjJdfDApKyg1MTEtKChGfDApJTUxMnwwKTw8Myl8MH1jW2wrND4+Ml09UDtjW20+PjJdPUc7Y1tt
KzQ+PjJdPUw7TD1tO209ZS0oY1tnPj4yXXwwKT4+MztlPW0rM3wwO2lmKChlfDApPjApe0c9Zyso
KChlfDApLzUxMnwwKTw8Mil8MDtjW0w+PjJdPUc7UT0oY1tHPj4yXXwwKSsoKChlfDApJTUxMnww
KTw8Myl8MH1lbHNle2U9NTA4LW18MDttPWcrKCgoZXwwKS8tNTEyfDApPDwyKXwwO2NbTD4+Ml09
bTtRPShjW20+PjJdfDApKyg1MTEtKChlfDApJTUxMnwwKTw8Myl8MH1jW24rND4+Ml09UTtpZigo
cnwwKT09KHl8MCkpe3k9dy00fDA7Y1t2Pj4yXT15O3Y9KGNbeT4+Ml18MCkrNDA5NnwwO2NbcT4+
Ml09djtSPXZ9ZWxzZXtSPXJ9Y1txPj4yXT1SLTg7Uj1iO2I9Y1tSKzQ+PjJdfDA7Y1tvPj4yXT1j
W1I+PjJdO2Nbbys0Pj4yXT1iO2NMKGYsaixsLG4scCwwKXwwO3U9MTtpPWQ7cmV0dXJuIHV8MH07
ZGVmYXVsdDp7cD16KzJ8MDtpZigocHwwKT4wKXtuPXgrKCgocHwwKS81MTJ8MCk8PDIpfDA7Uz1u
O1Q9KGNbbj4+Ml18MCkrKCgocHwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtwPTUwOS16fDA7ej14Kygo
KHB8MCkvLTUxMnwwKTw8Mil8MDtTPXo7VD0oY1t6Pj4yXXwwKSsoNTExLSgocHwwKSU1MTJ8MCk8
PDMpfDB9cD1hO2E9Y1twPj4yXXwwO3o9Y1twKzQ+PjJdfDA7cD16O3g9ei0oY1thPj4yXXwwKT4+
Mzt6PXgrMXwwO2lmKCh6fDApPjApe1U9KGNbYSsoKCh6fDApLzUxMnwwKTw8Mik+PjJdfDApKygo
KHp8MCklNTEyfDApPDwzKXwwfWVsc2V7ej01MTAteHwwO1U9KGNbYSsoKCh6fDApLy01MTJ8MCk8
PDIpPj4yXXwwKSsoNTExLSgoenwwKSU1MTJ8MCk8PDMpfDB9Tj0raFtVPj4zXTtEPStoW3A+PjNd
O0g9K2hbVD4+M107ej1IPE47ZG97aWYoTjxEKXtpZih6KXtoW3A+PjNdPUg7aFtUPj4zXT1EO2Jy
ZWFrfWhbcD4+M109TjtoW1U+PjNdPUQ7RT0raFtUPj4zXTtpZihFPj1EKXticmVha31oW1U+PjNd
PUU7aFtUPj4zXT1EfWVsc2V7aWYoIXope2JyZWFrfWhbVT4+M109SDtoW1Q+PjNdPU47RT0raFtV
Pj4zXTtJPStoW3A+PjNdO2lmKEU+PUkpe2JyZWFrfWhbcD4+M109RTtoW1U+PjNdPUl9fXdoaWxl
KDApO1U9VC0oY1tTPj4yXXwwKT4+MztwPVUrMXwwO2lmKChwfDApPjApe3o9UysoKChwfDApLzUx
MnwwKTw8Mil8MDthPWNbej4+Ml18MDtWPTA7Vz1hKygoKHB8MCklNTEyfDApPDwzKXwwO1g9ejtZ
PVM7Wj1UO189YX1lbHNle2E9NTEwLVV8MDtVPVMrKCgoYXwwKS8tNTEyfDApPDwyKXwwO3o9Y1tV
Pj4yXXwwO1Y9MDtXPXorKDUxMS0oKGF8MCklNTEyfDApPDwzKXwwO1g9VTtZPVM7Wj1UO189en1M
MTA2NTp3aGlsZSgxKXt6PVY7JD1XO1Q9WTtTPVo7VT1fO3doaWxlKDEpe2lmKCgkfDApPT0oY1tx
Pj4yXXwwKSl7dT0xO2FhPTkwNjticmVhayBMMTA2NX1OPStoWyQ+PjNdO0g9K2hbUz4+M107aWYo
TjxIKXthPVQ7cD1TO3g9JDtEPUg7d2hpbGUoMSl7aFt4Pj4zXT1EO2lmKChwfDApPT0oY1tzPj4y
XXwwKSl7YnJlYWt9aWYoKHB8MCk9PShjW2E+PjJdfDApKXtuPWEtNHwwO2FiPW47YWM9KGNbbj4+
Ml18MCkrNDA5NnwwfWVsc2V7YWI9YTthYz1wfW49YWMtOHwwO0g9K2hbbj4+M107aWYoTjxIKXth
PWFiO3g9cDtwPW47RD1IfWVsc2V7YnJlYWt9fWhbcD4+M109Tjt4PXorMXwwO2lmKCh4fDApPT04
KXticmVhayBMMTA2NX1hZD14O2FlPWNbWD4+Ml18MH1lbHNle2FkPXo7YWU9VX14PSQrOHwwO2lm
KCh4LWFlfDApPT00MDk2KXticmVha31lbHNle3o9YWQ7Uz0kOyQ9eDtUPVg7VT1hZX19VT1YKzR8
MDtUPWNbVT4+Ml18MDtWPWFkO1c9VDtZPVg7WD1VO1o9JDtfPVR9aWYoKGFhfDApPT05MDYpe2k9
ZDtyZXR1cm4gdXwwfWFhPSQrOHwwO2lmKChhYS0oY1tYPj4yXXwwKXwwKT09NDA5Nil7YWY9Y1tY
KzQ+PjJdfDB9ZWxzZXthZj1hYX11PShhZnwwKT09KGNbcT4+Ml18MCk7aT1kO3JldHVybiB1fDB9
fXJldHVybiAwfWZ1bmN0aW9uIGNPKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9
MCxnPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0w
LHY9MCx3PTAseD0wLHk9MDtlPWErOHwwO2Y9Y1tlPj4yXXwwO2c9YSs0fDA7aT1jW2c+PjJdfDA7
aWYoKGZ8MCk9PShpfDApKXtqPTB9ZWxzZXtqPShmLWk8PDcpLTF8MH1rPWErMTZ8MDtsPWNbaz4+
Ml18MDttPWErMjB8MDtuPWNbbT4+Ml18MDtvPWotbC1ufDA7aWYobz4+PjA8Yj4+PjApe2NRKGEs
Yi1vfDApO3A9Y1ttPj4yXXwwO3E9Y1trPj4yXXwwO3I9Y1tnPj4yXXwwO3M9Y1tlPj4yXXwwfWVs
c2V7cD1uO3E9bDtyPWk7cz1mfWY9cStwfDA7cD1yKyhmPj4+OTw8Mil8MDtpZigoc3wwKT09KHJ8
MCkpe3Q9MH1lbHNle3Q9KGNbcD4+Ml18MCkrKChmJjUxMSk8PDMpfDB9aWYoKGJ8MCk9PTApe3Jl
dHVybn1lbHNle3U9dDt2PXA7dz1ifXdoaWxlKDEpe2lmKCh1fDApIT0wKXtoW3U+PjNdPStoW2Q+
PjNdfWI9dy0xfDA7cD11Kzh8MDtpZigocC0oY1t2Pj4yXXwwKXwwKT09NDA5Nil7dD12KzR8MDt4
PXQ7eT1jW3Q+PjJdfDB9ZWxzZXt4PXY7eT1wfWNbbT4+Ml09KGNbbT4+Ml18MCkrMTtpZigoYnww
KT09MCl7YnJlYWt9ZWxzZXt1PXk7dj14O3c9Yn19cmV0dXJufWZ1bmN0aW9uIGNQKGEsYil7YT1h
fDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTA7ZD1hKzR8MDtlPWNbZD4+Ml18MDtmPWF8MDtkb3tpZigo
ZXwwKT09KGNbZj4+Ml18MCkpe2c9YSs4fDA7aD1jW2c+PjJdfDA7aT1hKzEyfDA7aj1jW2k+PjJd
fDA7az1qO2lmKGg+Pj4wPGo+Pj4wKXtqPWg7bD0oKGstaj4+MikrMXwwKS8yfDA7bT1qLWV8MDtq
PWgrKGwtKG0+PjIpPDwyKXwwO2tfKGp8MCxlfDAsbXwwKTtjW2Q+PjJdPWo7Y1tnPj4yXT0oY1tn
Pj4yXXwwKSsobDw8Mik7bj1qO2JyZWFrfWo9ay1lPj4xO2s9KGp8MCk9PTA/MTpqO2o9a08oazw8
Mil8MDtsPWorKChrKzN8MCk+Pj4yPDwyKXwwO209aisoazw8Mil8MDtpZigoZXwwKT09KGh8MCkp
e289bDtwPWV9ZWxzZXtrPWU7cT1sO2Rve2lmKChxfDApPT0wKXtyPTB9ZWxzZXtjW3E+PjJdPWNb
az4+Ml07cj1xfXE9cis0fDA7az1rKzR8MDt9d2hpbGUoKGt8MCkhPShofDApKTtvPXE7cD1jW2Y+
PjJdfDB9Y1tmPj4yXT1qO2NbZD4+Ml09bDtjW2c+PjJdPW87Y1tpPj4yXT1tO2lmKChwfDApPT0w
KXtuPWw7YnJlYWt9a1MocCk7bj1jW2Q+PjJdfDB9ZWxzZXtuPWV9fXdoaWxlKDApO2U9bi00fDA7
aWYoKGV8MCk9PTApe3M9bjt0PXMtNHwwO2NbZD4+Ml09dDtyZXR1cm59Y1tlPj4yXT1jW2I+PjJd
O3M9Y1tkPj4yXXwwO3Q9cy00fDA7Y1tkPj4yXT10O3JldHVybn1mdW5jdGlvbiBjUShhLGIpe2E9
YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxS
PTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0w
LGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MDtkPWk7aT1pKzMyfDA7ZT1k
fDA7Zj1kKzh8MDtnPWF8MDtoPWErOHwwO2o9Y1toPj4yXXwwO2s9YSs0fDA7bD1jW2s+PjJdfDA7
bT0oKGp8MCk9PShsfDApKStifDA7Yj0oKG0mNTExfDApIT0wKSsobT4+PjkpfDA7bT1hKzE2fDA7
bj1jW20+PjJdfDA7bz1uPj4+OTtwPWI+Pj4wPG8+Pj4wP2I6bztxPWItcHwwO2lmKChifDApPT0o
cHwwKSl7Y1ttPj4yXT1uLShiPDw5KTtpZigoYnwwKT09MCl7aT1kO3JldHVybn1uPWErMTJ8MDty
PWF8MDtzPWI7dD1qO3U9bDt3aGlsZSgxKXt2PWNbdT4+Ml18MDt3PXUrNHwwO2Nbaz4+Ml09dztk
b3tpZigodHwwKT09KGNbbj4+Ml18MCkpe3g9Y1tyPj4yXXwwO2lmKHc+Pj4wPng+Pj4wKXt5PXc7
ej0oKHkteD4+MikrMXwwKS8tMnwwO0E9eisxfDA7Qj10LXl8MDtrXyh1KyhBPDwyKXwwLHd8MCxC
fDApO3k9dSsoQSsoQj4+Mik8PDIpfDA7Y1toPj4yXT15O2Nbaz4+Ml09KGNbaz4+Ml18MCkrKHo8
PDIpO0M9eTticmVha315PXQteD4+MTt6PSh5fDApPT0wPzE6eTt5PWtPKHo8PDIpfDA7Qj15Kyh6
Pj4+Mjw8Mil8MDtBPXkrKHo8PDIpfDA7aWYoKHd8MCk9PSh0fDApKXtEPUI7RT14fWVsc2V7eD13
O3o9Qjtkb3tpZigoenwwKT09MCl7Rj0wfWVsc2V7Y1t6Pj4yXT1jW3g+PjJdO0Y9en16PUYrNHww
O3g9eCs0fDA7fXdoaWxlKCh4fDApIT0odHwwKSk7RD16O0U9Y1tyPj4yXXwwfWNbcj4+Ml09eTtj
W2s+PjJdPUI7Y1toPj4yXT1EO2Nbbj4+Ml09QTtpZigoRXwwKT09MCl7Qz1EO2JyZWFrfWtTKEUp
O0M9Y1toPj4yXXwwfWVsc2V7Qz10fX13aGlsZSgwKTtpZigoQ3wwKT09MCl7Rz0wfWVsc2V7Y1tD
Pj4yXT12O0c9Y1toPj4yXXwwfXc9Rys0fDA7Y1toPj4yXT13O3g9cy0xfDA7aWYoKHh8MCk9PTAp
e2JyZWFrfXM9eDt0PXc7dT1jW2s+PjJdfDB9aT1kO3JldHVybn11PWErMTJ8MDt0PXV8MDtzPWNb
dD4+Ml18MDtHPWF8MDthPXMtKGNbRz4+Ml18MCl8MDtDPWotbD4+MjtpZihxPj4+MDw9KChhPj4y
KS1DfDApPj4+MCl7bD1xO0U9ajtqPXM7d2hpbGUoMSl7aWYoKGp8MCk9PShFfDApKXtIPTk3MTti
cmVha31zPWtPKDQwOTYpfDA7aWYoKEV8MCk9PTApe0k9MH1lbHNle2NbRT4+Ml09cztJPWNbaD4+
Ml18MH1zPUkrNHwwO2NbaD4+Ml09cztEPWwtMXwwO2lmKChEfDApPT0wKXtKPXM7SD05NzI7YnJl
YWt9bD1EO0U9cztqPWNbdD4+Ml18MH1kb3tpZigoSHwwKT09OTcxKXtpZigobHwwKT09MCl7Sj1q
O0g9OTcyO2JyZWFrfUU9fm87ST1+YjtzPUU+Pj4wPkk+Pj4wP0U6STtJPWw7ZG97Y1tlPj4yXT1r
Tyg0MDk2KXwwO2NQKGcsZSk7ST1JLTF8MDtLPWNbaD4+Ml18MDtMPShjW20+PjJdfDApKzUxMi0o
KEstKGNbaz4+Ml18MCl8MCk9PTQpfDA7Y1ttPj4yXT1MO313aGlsZSgoSXwwKSE9MCk7TT1sLTEt
c3wwO049SztPPUx9fXdoaWxlKDApO2lmKChIfDApPT05NzIpe009cDtOPUo7Tz1jW20+PjJdfDB9
Y1ttPj4yXT1PLShNPDw5KTtpZigoTXwwKT09MCl7aT1kO3JldHVybn1lbHNle1A9TTtRPU59ZG97
Tj1jW2s+PjJdfDA7TT1jW04+PjJdfDA7Tz1OKzR8MDtjW2s+PjJdPU87ZG97aWYoKFF8MCk9PShj
W3Q+PjJdfDApKXtKPWNbRz4+Ml18MDtpZihPPj4+MD5KPj4+MCl7SD1PO0w9KChILUo+PjIpKzF8
MCkvLTJ8MDtLPUwrMXwwO2w9US1IfDA7a18oTisoSzw8Mil8MCxPfDAsbHwwKTtIPU4rKEsrKGw+
PjIpPDwyKXwwO2NbaD4+Ml09SDtjW2s+PjJdPShjW2s+PjJdfDApKyhMPDwyKTtSPUg7YnJlYWt9
SD1RLUo+PjE7TD0oSHwwKT09MD8xOkg7SD1rTyhMPDwyKXwwO2w9SCsoTD4+PjI8PDIpfDA7Sz1I
KyhMPDwyKXwwO2lmKChPfDApPT0oUXwwKSl7Uz1sO1Q9Sn1lbHNle0o9TztMPWw7ZG97aWYoKEx8
MCk9PTApe1U9MH1lbHNle2NbTD4+Ml09Y1tKPj4yXTtVPUx9TD1VKzR8MDtKPUorNHwwO313aGls
ZSgoSnwwKSE9KFF8MCkpO1M9TDtUPWNbRz4+Ml18MH1jW0c+PjJdPUg7Y1trPj4yXT1sO2NbaD4+
Ml09UztjW3Q+PjJdPUs7aWYoKFR8MCk9PTApe1I9UzticmVha31rUyhUKTtSPWNbaD4+Ml18MH1l
bHNle1I9UX19d2hpbGUoMCk7aWYoKFJ8MCk9PTApe1Y9MH1lbHNle2NbUj4+Ml09TTtWPWNbaD4+
Ml18MH1RPVYrNHwwO2NbaD4+Ml09UTtQPVAtMXwwO313aGlsZSgoUHwwKSE9MCk7aT1kO3JldHVy
bn1QPXA8PDk7UT1hPj4xO2E9cStDfDA7Vj1RPj4+MDxhPj4+MD9hOlE7UT1mKzEyfDA7Y1tRPj4y
XT0wO2NbZisxNj4+Ml09dTtpZigoVnwwKT09MCl7Vz0wfWVsc2V7Vz1rTyhWPDwyKXwwfXU9Znww
O2NbdT4+Ml09VzthPVcrKEMtcDw8Mil8MDtDPWYrOHwwO2NbQz4+Ml09YTtSPWYrNHwwO2NbUj4+
Ml09YTtUPVcrKFY8PDIpfDA7Y1tRPj4yXT1UO1Y9cTtxPVc7Vz1hO1M9VDtUPWE7d2hpbGUoMSl7
YT1rTyg0MDk2KXwwO2Rve2lmKChXfDApPT0oU3wwKSl7aWYoVD4+PjA+cT4+PjApe1U9VDtPPSgo
VS1xPj4yKSsxfDApLy0yfDA7Tj1TLVV8MDtrXyhUKyhPPDwyKXwwLFR8MCxOfDApO1U9VCsoTyso
Tj4+Mik8PDIpfDA7Y1tDPj4yXT1VO049KGNbUj4+Ml18MCkrKE88PDIpfDA7Y1tSPj4yXT1OO1g9
VTtZPVM7Wj1xO189TjticmVha31OPVMtcT4+MTtVPShOfDApPT0wPzE6TjtOPWtPKFU8PDIpfDA7
Tz1OKyhVPj4+Mjw8Mil8MDtzPU4rKFU8PDIpfDA7aWYoKFR8MCk9PShTfDApKXskPU87YWE9cX1l
bHNle1U9VDtKPU87ZG97aWYoKEp8MCk9PTApe2FiPTB9ZWxzZXtjW0o+PjJdPWNbVT4+Ml07YWI9
Sn1KPWFiKzR8MDtVPVUrNHwwO313aGlsZSgoVXwwKSE9KFN8MCkpOyQ9SjthYT1jW3U+PjJdfDB9
Y1t1Pj4yXT1OO2NbUj4+Ml09TztjW0M+PjJdPSQ7Y1tRPj4yXT1zO2lmKChhYXwwKT09MCl7WD0k
O1k9cztaPU47Xz1PO2JyZWFrfWtTKGFhKTtYPSQ7WT1zO1o9TjtfPU99ZWxzZXtYPVc7WT1TO1o9
cTtfPVR9fXdoaWxlKDApO2lmKChYfDApPT0wKXthYz0wfWVsc2V7Y1tYPj4yXT1hO2FjPWNbQz4+
Ml18MH1hZD1hYys0fDA7Y1tDPj4yXT1hZDtNPVYtMXwwO2lmKChNfDApPT0wKXticmVha31lbHNl
e1Y9TTtxPVo7Vz1hZDtTPVk7VD1ffX1pZigocHwwKSE9MCl7Xz1wO3A9Y1trPj4yXXwwO1Q9YWQ7
YWQ9WTtZPVo7d2hpbGUoMSl7ZG97aWYoKFR8MCk9PShhZHwwKSl7Wj1jW1I+PjJdfDA7aWYoWj4+
PjA+WT4+PjApe1M9WjtXPSgoUy1ZPj4yKSsxfDApLy0yfDA7cT1aKyhXPDwyKXwwO1Y9YWQtU3ww
O2tfKHF8MCxafDAsVnwwKTtTPVorKFcrKFY+PjIpPDwyKXwwO2NbQz4+Ml09UztjW1I+PjJdPXE7
YWU9UzthZj1hZDthZz1ZO2JyZWFrfVM9YWQtWT4+MTtxPShTfDApPT0wPzE6UztTPWtPKHE8PDIp
fDA7Vj1TKyhxPj4+Mjw8Mil8MDtXPVMrKHE8PDIpfDA7aWYoKFp8MCk9PShhZHwwKSl7YWg9Vjth
aT1ZfWVsc2V7cT1aO1o9Vjtkb3tpZigoWnwwKT09MCl7YWo9MH1lbHNle2NbWj4+Ml09Y1txPj4y
XTthaj1afVo9YWorNHwwO3E9cSs0fDA7fXdoaWxlKChxfDApIT0oYWR8MCkpO2FoPVo7YWk9Y1t1
Pj4yXXwwfWNbdT4+Ml09UztjW1I+PjJdPVY7Y1tDPj4yXT1haDtjW1E+PjJdPVc7aWYoKGFpfDAp
PT0wKXthZT1haDthZj1XO2FnPVM7YnJlYWt9a1MoYWkpO2FlPWFoO2FmPVc7YWc9U31lbHNle2Fl
PVQ7YWY9YWQ7YWc9WX19d2hpbGUoMCk7aWYoKGFlfDApPT0wKXthaz0wfWVsc2V7Y1thZT4+Ml09
Y1twPj4yXTthaz1jW0M+PjJdfDB9YT1hays0fDA7Y1tDPj4yXT1hO3E9KGNbaz4+Ml18MCkrNHww
O2Nbaz4+Ml09cTtPPV8tMXwwO2lmKChPfDApPT0wKXticmVha31lbHNle189TztwPXE7VD1hO2Fk
PWFmO1k9YWd9fX1hZz1jW2g+PjJdfDA7d2hpbGUoMSl7aWYoKGFnfDApPT0oY1trPj4yXXwwKSl7
YnJlYWt9WT1hZy00fDA7Y1MoZixZKTthZz1ZfWY9Y1tHPj4yXXwwO2NbRz4+Ml09Y1t1Pj4yXTtj
W3U+PjJdPWY7Y1trPj4yXT1jW1I+PjJdO2NbUj4+Ml09YWc7Uj1jW2g+PjJdfDA7Y1toPj4yXT1j
W0M+PjJdO2NbQz4+Ml09UjtoPWNbdD4+Ml18MDtjW3Q+PjJdPWNbUT4+Ml07Y1tRPj4yXT1oO2Nb
bT4+Ml09KGNbbT4+Ml18MCktUDtpZigoYWd8MCkhPShSfDApKXtjW0M+PjJdPVIrKH4oKFItNCso
LWFnfDApfDApPj4+Mik8PDIpfWlmKChmfDApPT0wKXtpPWQ7cmV0dXJufWtTKGYpO2k9ZDtyZXR1
cm59ZnVuY3Rpb24gY1IoYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO3ZhciBnPTAuMCxpPTAuMCxqPTAuMCxrPTAsbD0wLjAsbT0wLjAsbj0wLjAsbz0wLHA9
MDtnPStoW2I+PjNdO2k9K2hbYT4+M107aj0raFtjPj4zXTtmPWo8Zztkb3tpZihnPGkpe2lmKGYp
e2hbYT4+M109ajtoW2M+PjNdPWk7az0xO2w9aTticmVha31oW2E+PjNdPWc7aFtiPj4zXT1pO209
K2hbYz4+M107aWYobT49aSl7az0xO2w9bTticmVha31oW2I+PjNdPW07aFtjPj4zXT1pO2s9Mjts
PWl9ZWxzZXtpZighZil7az0wO2w9ajticmVha31oW2I+PjNdPWo7aFtjPj4zXT1nO209K2hbYj4+
M107bj0raFthPj4zXTtpZihtPj1uKXtrPTE7bD1nO2JyZWFrfWhbYT4+M109bTtoW2I+PjNdPW47
az0yO2w9K2hbYz4+M119fXdoaWxlKDApO2c9K2hbZD4+M107ZG97aWYoZzxsKXtoW2M+PjNdPWc7
aFtkPj4zXT1sO2o9K2hbYz4+M107aT0raFtiPj4zXTtpZihqPj1pKXtvPWsrMXwwO2JyZWFrfWhb
Yj4+M109ajtoW2M+PjNdPWk7aT0raFtiPj4zXTtqPStoW2E+PjNdO2lmKGk8ail7aFthPj4zXT1p
O2hbYj4+M109ajtvPWsrM3wwO2JyZWFrfWVsc2V7bz1rKzJ8MDticmVha319ZWxzZXtvPWt9fXdo
aWxlKDApO2w9K2hbZT4+M107Zz0raFtkPj4zXTtpZihsPj1nKXtwPW87cmV0dXJuIHB8MH1oW2Q+
PjNdPWw7aFtlPj4zXT1nO2c9K2hbZD4+M107bD0raFtjPj4zXTtpZihnPj1sKXtwPW8rMXwwO3Jl
dHVybiBwfDB9aFtjPj4zXT1nO2hbZD4+M109bDtsPStoW2M+PjNdO2c9K2hbYj4+M107aWYobD49
Zyl7cD1vKzJ8MDtyZXR1cm4gcHwwfWhbYj4+M109bDtoW2M+PjNdPWc7Zz0raFtiPj4zXTtsPSto
W2E+PjNdO2lmKGc+PWwpe3A9byszfDA7cmV0dXJuIHB8MH1oW2E+PjNdPWc7aFtiPj4zXT1sO3A9
bys0fDA7cmV0dXJuIHB8MH1mdW5jdGlvbiBjUyhhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0w
LGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wO2Q9YSs0fDA7ZT1jW2Q+PjJdfDA7Zj1hfDA7ZG97aWYoKGV8MCk9PShjW2Y+PjJdfDApKXtn
PWErOHwwO2g9Y1tnPj4yXXwwO2k9YSsxMnwwO2o9Y1tpPj4yXXwwO2s9ajtpZihoPj4+MDxqPj4+
MCl7aj1oO2w9KChrLWo+PjIpKzF8MCkvMnwwO209ai1lfDA7aj1oKyhsLShtPj4yKTw8Mil8MDtr
XyhqfDAsZXwwLG18MCk7Y1tkPj4yXT1qO2NbZz4+Ml09KGNbZz4+Ml18MCkrKGw8PDIpO249ajti
cmVha31qPWstZT4+MTtrPShqfDApPT0wPzE6ajtqPWtPKGs8PDIpfDA7bD1qKygoayszfDApPj4+
Mjw8Mil8MDttPWorKGs8PDIpfDA7aWYoKGV8MCk9PShofDApKXtvPWw7cD1lfWVsc2V7az1lO3E9
bDtkb3tpZigocXwwKT09MCl7cj0wfWVsc2V7Y1txPj4yXT1jW2s+PjJdO3I9cX1xPXIrNHwwO2s9
ays0fDA7fXdoaWxlKChrfDApIT0oaHwwKSk7bz1xO3A9Y1tmPj4yXXwwfWNbZj4+Ml09ajtjW2Q+
PjJdPWw7Y1tnPj4yXT1vO2NbaT4+Ml09bTtpZigocHwwKT09MCl7bj1sO2JyZWFrfWtTKHApO249
Y1tkPj4yXXwwfWVsc2V7bj1lfX13aGlsZSgwKTtlPW4tNHwwO2lmKChlfDApPT0wKXtzPW47dD1z
LTR8MDtjW2Q+PjJdPXQ7cmV0dXJufWNbZT4+Ml09Y1tiPj4yXTtzPWNbZD4+Ml18MDt0PXMtNHww
O2NbZD4+Ml09dDtyZXR1cm59ZnVuY3Rpb24gY1QoKXtjWzI0NDZdPTA7Y1syNDQ3XT0wO2NbMjQ0
OF09MDthJCg3Miw5Nzg0LHV8MCl8MDtyZXR1cm59ZnVuY3Rpb24gY1UoYSxiLGMpe2E9YXwwO2I9
YnwwO2M9Y3wwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MC4wLHE9MC4wLHI9MC4wLHM9MC4wLHQ9MC4wLHU9MCx2PTAsdz0wLHg9MC4wLHk9MCx6PTAu
MCxBPTAsQj0wLEM9MCxEPTAuMCxFPTAsRj0wLEc9MC4wLEg9MCxJPTAsSj0wLEs9MC4wLEw9MCxN
PTAsTj0wLjAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAuMCxVPTAsVj0wLFc9MC4wLFg9MCxZPTAu
MDtkPWE7YT1iO0wxMzk3OndoaWxlKDEpe2I9YTtlPWEtOHwwO2Y9ZDtMMTM5OTp3aGlsZSgxKXtn
PWY7aT1iLWd8MDtqPWk+PjM7c3dpdGNoKGp8MCl7Y2FzZSAzOntrPTExMDI7YnJlYWsgTDEzOTc7
YnJlYWt9O2Nhc2UgNTp7az0xMTIyO2JyZWFrIEwxMzk3O2JyZWFrfTtjYXNlIDI6e2s9MTEwMDti
cmVhayBMMTM5NzticmVha307Y2FzZSAwOmNhc2UgMTp7az0xMTg1O2JyZWFrIEwxMzk3O2JyZWFr
fTtjYXNlIDQ6e2s9MTExMDticmVhayBMMTM5NzticmVha307ZGVmYXVsdDp7fX1pZigoaXwwKTwy
NDgpe2s9MTEyNDticmVhayBMMTM5N31sPShqfDApLzJ8MDttPWYrKGw8PDMpfDA7ZG97aWYoKGl8
MCk+Nzk5Mil7bj0oanwwKS80fDA7bz1jUihmLGYrKG48PDMpfDAsbSxmKyhuK2w8PDMpfDAsZSww
KXwwfWVsc2V7cD0raFttPj4zXTtxPStoW2Y+PjNdO3I9K2hbZT4+M107bj1yPHA7aWYocD49cSl7
aWYoIW4pe289MDticmVha31oW20+PjNdPXI7aFtlPj4zXT1wO3M9K2hbbT4+M107dD0raFtmPj4z
XTtpZihzPj10KXtvPTE7YnJlYWt9aFtmPj4zXT1zO2hbbT4+M109dDtvPTI7YnJlYWt9aWYobil7
aFtmPj4zXT1yO2hbZT4+M109cTtvPTE7YnJlYWt9aFtmPj4zXT1wO2hbbT4+M109cTtwPStoW2U+
PjNdO2lmKHA+PXEpe289MTticmVha31oW20+PjNdPXA7aFtlPj4zXT1xO289Mn19d2hpbGUoMCk7
cT0raFtmPj4zXTtwPStoW20+PjNdO2Rve2lmKHE8cCl7dT1lO3Y9b31lbHNle2w9ZTt3aGlsZSgx
KXt3PWwtOHwwO2lmKChmfDApPT0od3wwKSl7YnJlYWt9eD0raFt3Pj4zXTtpZih4PHApe2s9MTE2
MjticmVha31lbHNle2w9d319aWYoKGt8MCk9PTExNjIpe2s9MDtoW2Y+PjNdPXg7aFt3Pj4zXT1x
O3U9dzt2PW8rMXwwO2JyZWFrfWw9Zis4fDA7cj0raFtlPj4zXTtpZihxPHIpe3k9bH1lbHNle2o9
bDt3aGlsZSgxKXtpZigoanwwKT09KGV8MCkpe2s9MTE5NzticmVhayBMMTM5N316PStoW2o+PjNd
O0E9ais4fDA7aWYocTx6KXticmVha31lbHNle2o9QX19aFtqPj4zXT1yO2hbZT4+M109ejt5PUF9
aWYoKHl8MCk9PShlfDApKXtrPTExOTI7YnJlYWsgTDEzOTd9ZWxzZXtCPWU7Qz15fXdoaWxlKDEp
e3Q9K2hbZj4+M107bD1DO3doaWxlKDEpe0Q9K2hbbD4+M107RT1sKzh8MDtpZih0Pj1EKXtsPUV9
ZWxzZXtGPUI7YnJlYWt9fWRve0Y9Ri04fDA7Rz0raFtGPj4zXTt9d2hpbGUodDxHKTtpZihsPj4+
MD49Rj4+PjApe2Y9bDtjb250aW51ZSBMMTM5OX1oW2w+PjNdPUc7aFtGPj4zXT1EO0I9RjtDPUV9
fX13aGlsZSgwKTtqPWYrOHwwO0wxNDM4OmRve2lmKGo+Pj4wPHU+Pj4wKXtpPXU7bj1qO0g9djtJ
PW07d2hpbGUoMSl7cT0raFtJPj4zXTtKPW47d2hpbGUoMSl7Sz0raFtKPj4zXTtMPUorOHwwO2lm
KEs8cSl7Sj1MfWVsc2V7TT1pO2JyZWFrfX1kb3tNPU0tOHwwO049K2hbTT4+M107fXdoaWxlKE4+
PXEpO2lmKEo+Pj4wPk0+Pj4wKXtPPUo7UD1IO1E9STticmVhayBMMTQzOH1oW0o+PjNdPU47aFtN
Pj4zXT1LO2k9TTtuPUw7SD1IKzF8MDtJPShJfDApPT0oSnwwKT9NOkl9fWVsc2V7Tz1qO1A9djtR
PW19fXdoaWxlKDApO2Rve2lmKChPfDApPT0oUXwwKSl7Uj1QfWVsc2V7cT0raFtRPj4zXTtwPSto
W08+PjNdO2lmKHE+PXApe1I9UDticmVha31oW08+PjNdPXE7aFtRPj4zXT1wO1I9UCsxfDB9fXdo
aWxlKDApO2lmKChSfDApPT0wKXtTPWNWKGYsTywwKXwwO209Tys4fDA7aWYoY1YobSxhLDApfDAp
e2s9MTE3NDticmVha31pZihTKXtmPW07Y29udGludWV9fW09TztpZigobS1nfDApPj0oYi1tfDAp
KXtrPTExNzg7YnJlYWt9Y1UoZixPLGMpO2Y9Tys4fDB9aWYoKGt8MCk9PTExNzQpe2s9MDtpZihT
KXtrPTExODY7YnJlYWt9ZWxzZXtkPWY7YT1PO2NvbnRpbnVlfX1lbHNlIGlmKChrfDApPT0xMTc4
KXtrPTA7Y1UoTys4fDAsYSxjKTtkPWY7YT1PO2NvbnRpbnVlfX1pZigoa3wwKT09MTEwMil7Tz1m
Kzh8MDtLPStoW08+PjNdO049K2hbZj4+M107RD0raFtlPj4zXTtkPUQ8SztpZihLPj1OKXtpZigh
ZCl7cmV0dXJufWhbTz4+M109RDtoW2U+PjNdPUs7Rz0raFtPPj4zXTt6PStoW2Y+PjNdO2lmKEc+
PXope3JldHVybn1oW2Y+PjNdPUc7aFtPPj4zXT16O3JldHVybn1pZihkKXtoW2Y+PjNdPUQ7aFtl
Pj4zXT1OO3JldHVybn1oW2Y+PjNdPUs7aFtPPj4zXT1OO0s9K2hbZT4+M107aWYoSz49Til7cmV0
dXJufWhbTz4+M109SztoW2U+PjNdPU47cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMjIpe2NSKGYs
Zis4fDAsZisxNnwwLGYrMjR8MCxlLDApfDA7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMjQpe089
ZisxNnwwO2Q9Zis4fDA7Tj0raFtkPj4zXTtLPStoW2Y+PjNdO0Q9K2hbTz4+M107Yz1EPE47ZG97
aWYoTjxLKXtpZihjKXtoW2Y+PjNdPUQ7aFtPPj4zXT1LO1Q9SzticmVha31oW2Y+PjNdPU47aFtk
Pj4zXT1LO2lmKEQ+PUspe1Q9RDticmVha31oW2Q+PjNdPUQ7aFtPPj4zXT1LO1Q9S31lbHNle2lm
KCFjKXtUPUQ7YnJlYWt9aFtkPj4zXT1EO2hbTz4+M109TjtpZihEPj1LKXtUPU47YnJlYWt9aFtm
Pj4zXT1EO2hbZD4+M109SztUPU59fXdoaWxlKDApO2Q9ZisyNHwwO2lmKChkfDApPT0oYXwwKSl7
cmV0dXJufWVsc2V7VT1PO1Y9ZDtXPVR9d2hpbGUoMSl7VD0raFtWPj4zXTtpZihUPFcpe2Q9VTtP
PVY7Tj1XO3doaWxlKDEpe2hbTz4+M109TjtpZigoZHwwKT09KGZ8MCkpe1g9ZjticmVha31jPWQt
OHwwO0s9K2hbYz4+M107aWYoVDxLKXtPPWQ7ZD1jO049S31lbHNle1g9ZDticmVha319aFtYPj4z
XT1UfWQ9Vis4fDA7aWYoKGR8MCk9PShhfDApKXticmVha31OPStoW1Y+PjNdO1U9VjtWPWQ7Vz1O
fXJldHVybn1lbHNlIGlmKChrfDApPT0xMTk3KXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTEwMCl7
Vz0raFtlPj4zXTtOPStoW2Y+PjNdO2lmKFc+PU4pe3JldHVybn1oW2Y+PjNdPVc7aFtlPj4zXT1O
O3JldHVybn1lbHNlIGlmKChrfDApPT0xMTg1KXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTE4Nil7
cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExOTIpe3JldHVybn1lbHNlIGlmKChrfDApPT0xMTEwKXtr
PWYrOHwwO1Y9ZisxNnwwO049K2hbaz4+M107Vz0raFtmPj4zXTtLPStoW1Y+PjNdO1U9SzxOO2Rv
e2lmKE48Vyl7aWYoVSl7aFtmPj4zXT1LO2hbVj4+M109VztZPVc7YnJlYWt9aFtmPj4zXT1OO2hb
az4+M109VztpZihLPj1XKXtZPUs7YnJlYWt9aFtrPj4zXT1LO2hbVj4+M109VztZPVd9ZWxzZXtp
ZighVSl7WT1LO2JyZWFrfWhbaz4+M109SztoW1Y+PjNdPU47aWYoSz49Vyl7WT1OO2JyZWFrfWhb
Zj4+M109SztoW2s+PjNdPVc7WT1OfX13aGlsZSgwKTtOPStoW2U+PjNdO2lmKE4+PVkpe3JldHVy
bn1oW1Y+PjNdPU47aFtlPj4zXT1ZO1k9K2hbVj4+M107Tj0raFtrPj4zXTtpZihZPj1OKXtyZXR1
cm59aFtrPj4zXT1ZO2hbVj4+M109TjtOPStoW2Y+PjNdO2lmKFk+PU4pe3JldHVybn1oW2Y+PjNd
PVk7aFtrPj4zXT1OO3JldHVybn19ZnVuY3Rpb24gY1YoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3ww
O3ZhciBkPTAsZT0wLGY9MC4wLGc9MC4wLGk9MC4wLGo9MCxrPTAuMCxsPTAuMCxtPTAsbj0wLjAs
bz0wLjAscD0wLHE9MCxyPTAscz0wLjAsdD0wLHU9MCx2PTA7c3dpdGNoKGItYT4+M3wwKXtjYXNl
IDA6Y2FzZSAxOntkPTE7cmV0dXJuIGR8MH07Y2FzZSAzOntjPWErOHwwO2U9Yi04fDA7Zj0raFtj
Pj4zXTtnPStoW2E+PjNdO2k9K2hbZT4+M107aj1pPGY7aWYoZj49Zyl7aWYoIWope2Q9MTtyZXR1
cm4gZHwwfWhbYz4+M109aTtoW2U+PjNdPWY7az0raFtjPj4zXTtsPStoW2E+PjNdO2lmKGs+PWwp
e2Q9MTtyZXR1cm4gZHwwfWhbYT4+M109aztoW2M+PjNdPWw7ZD0xO3JldHVybiBkfDB9aWYoail7
aFthPj4zXT1pO2hbZT4+M109ZztkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPWY7aFtjPj4zXT1nO2Y9
K2hbZT4+M107aWYoZj49Zyl7ZD0xO3JldHVybiBkfDB9aFtjPj4zXT1mO2hbZT4+M109ZztkPTE7
cmV0dXJuIGR8MH07Y2FzZSAyOntlPWItOHwwO2c9K2hbZT4+M107Zj0raFthPj4zXTtpZihnPj1m
KXtkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPWc7aFtlPj4zXT1mO2Q9MTtyZXR1cm4gZHwwfTtjYXNl
IDQ6e2U9YSs4fDA7Yz1hKzE2fDA7aj1iLTh8MDtmPStoW2U+PjNdO2c9K2hbYT4+M107aT0raFtj
Pj4zXTttPWk8Zjtkb3tpZihmPGcpe2lmKG0pe2hbYT4+M109aTtoW2M+PjNdPWc7bj1nO2JyZWFr
fWhbYT4+M109ZjtoW2U+PjNdPWc7aWYoaT49Zyl7bj1pO2JyZWFrfWhbZT4+M109aTtoW2M+PjNd
PWc7bj1nfWVsc2V7aWYoIW0pe249aTticmVha31oW2U+PjNdPWk7aFtjPj4zXT1mO2lmKGk+PWcp
e249ZjticmVha31oW2E+PjNdPWk7aFtlPj4zXT1nO249Zn19d2hpbGUoMCk7Zj0raFtqPj4zXTtp
ZihmPj1uKXtkPTE7cmV0dXJuIGR8MH1oW2M+PjNdPWY7aFtqPj4zXT1uO249K2hbYz4+M107Zj0r
aFtlPj4zXTtpZihuPj1mKXtkPTE7cmV0dXJuIGR8MH1oW2U+PjNdPW47aFtjPj4zXT1mO2Y9K2hb
YT4+M107aWYobj49Zil7ZD0xO3JldHVybiBkfDB9aFthPj4zXT1uO2hbZT4+M109ZjtkPTE7cmV0
dXJuIGR8MH07Y2FzZSA1OntjUihhLGErOHwwLGErMTZ8MCxhKzI0fDAsYi04fDAsMCl8MDtkPTE7
cmV0dXJuIGR8MH07ZGVmYXVsdDp7ZT1hKzE2fDA7Yz1hKzh8MDtmPStoW2M+PjNdO249K2hbYT4+
M107Zz0raFtlPj4zXTtqPWc8Zjtkb3tpZihmPG4pe2lmKGope2hbYT4+M109ZztoW2U+PjNdPW47
bz1uO2JyZWFrfWhbYT4+M109ZjtoW2M+PjNdPW47aWYoZz49bil7bz1nO2JyZWFrfWhbYz4+M109
ZztoW2U+PjNdPW47bz1ufWVsc2V7aWYoIWope289ZzticmVha31oW2M+PjNdPWc7aFtlPj4zXT1m
O2lmKGc+PW4pe289ZjticmVha31oW2E+PjNdPWc7aFtjPj4zXT1uO289Zn19d2hpbGUoMCk7Yz1h
KzI0fDA7aWYoKGN8MCk9PShifDApKXtkPTE7cmV0dXJuIGR8MH1lbHNle3A9ZTtxPTA7cj1jO3M9
b313aGlsZSgxKXtvPStoW3I+PjNdO2lmKG88cyl7Yz1wO2U9cjtmPXM7d2hpbGUoMSl7aFtlPj4z
XT1mO2lmKChjfDApPT0oYXwwKSl7dD1hO2JyZWFrfWo9Yy04fDA7bj0raFtqPj4zXTtpZihvPG4p
e2U9YztjPWo7Zj1ufWVsc2V7dD1jO2JyZWFrfX1oW3Q+PjNdPW87Yz1xKzF8MDtpZigoY3wwKT09
OCl7YnJlYWt9ZWxzZXt1PWN9fWVsc2V7dT1xfWM9cis4fDA7aWYoKGN8MCk9PShifDApKXtkPTE7
dj0xMjU2O2JyZWFrfWY9K2hbcj4+M107cD1yO3E9dTtyPWM7cz1mfWlmKCh2fDApPT0xMjU2KXty
ZXR1cm4gZHwwfWQ9KHIrOHwwKT09KGJ8MCk7cmV0dXJuIGR8MH19cmV0dXJuIDB9ZnVuY3Rpb24g
Y1coYSl7YT1hfDA7dmFyIGI9MDthPShjWzQwMzhdfDApLTF8MDtjWzQwMzhdPWE7aWYoKGF8MCkh
PTApe3JldHVybn1iO3JldHVybn1mdW5jdGlvbiBjWChiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTA7
ZG97aWYoKGFbMTYyODBdfDApPT0wKXtpZigoYmMoMTYyODApfDApPT0wKXticmVha31jWzI5NjJd
PTU0ODk7Yj0xO2Q9NTQ4OTtkb3tkPShhZyhkPj4+MzBeZCwxODEyNDMzMjUzKXwwKStifDA7Y1sx
MTg0OCsoYjw8Mik+PjJdPWQ7Yj1iKzF8MDt9d2hpbGUoYj4+PjA8NjI0KTtjWzM1ODZdPTB9fXdo
aWxlKDApO2I9Y1szNTg2XXwwO2Q9KChiKzF8MCk+Pj4wKSU2MjR8MDtlPTExODQ4KyhiPDwyKXww
O2Y9Y1sxMTg0OCsoZDw8Mik+PjJdfDA7Y1tlPj4yXT0tKGYmMSkmLTE3Mjc0ODM2ODFeY1sxMTg0
OCsoKCgoYiszOTd8MCk+Pj4wKSU2MjR8MCk8PDIpPj4yXV4oZiYyMTQ3NDgzNjQ2fGNbZT4+Ml0m
LTIxNDc0ODM2NDgpPj4+MTtlPWNbMTE4NDgrKGNbMzU4Nl08PDIpPj4yXXwwO2Y9ZT4+PjExXmU7
Y1szNTg2XT1kO2Q9Zjw8NyYtMTY1ODAzODY1Nl5mO2Y9ZDw8MTUmLTI3MjIzNjU0NF5kO3JldHVy
biBmPj4+MTheZnwwfWZ1bmN0aW9uIGNZKGEpe2E9YXwwO3ZhciBiPTA7YjtjWzQwMzhdPTE7cmV0
dXJufWZ1bmN0aW9uIGNaKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAs
bD0wO2I9aTtpPWkrMzJ8MDtkPWJ8MDtlPWIrOHwwO2Y9YisxNnwwO2c9YisyNHwwO2RxKDE1MTM2
LGNbbz4+Ml18MCwxNTE5Mik7Y1s0MDE0XT00NTAwO2NbNDAxNl09NDUyMDtjWzQwMTVdPTA7aD1j
WzExMjJdfDA7ZWsoMTYwNTYraHwwLDE1MTM2KTtjW2grMTYxMjg+PjJdPTA7Y1toKzE2MTMyPj4y
XT0tMTtoPWNbdD4+Ml18MDtlcCgxNTA0MCk7Y1szNzYwXT00NjQ4O2NbMzc2OF09aDtpTihnLDE1
MDQ0KTtoPWlYKGcsMTUzOTIpfDA7aj1oO2lPKGcpO2NbMzc2OV09ajtjWzM3NzBdPTE1MjAwO2Fb
MTUwODRdPShiMFtjWyhjW2g+PjJdfDApKzI4Pj4yXSYxMjddKGopfDApJjE7Y1szOTQ4XT00NDA0
O2NbMzk0OV09NDQyNDtqPWNbMTA5OF18MDtlaygxNTc5MitqfDAsMTUwNDApO2g9ais3MnwwO2Nb
MTU3OTIraD4+Ml09MDtnPWorNzZ8MDtjWzE1NzkyK2c+PjJdPS0xO2s9Y1tyPj4yXXwwO2VwKDE1
MDg4KTtjWzM3NzJdPTQ2NDg7Y1szNzgwXT1rO2lOKGYsMTUwOTIpO2s9aVgoZiwxNTM5Mil8MDts
PWs7aU8oZik7Y1szNzgxXT1sO2NbMzc4Ml09MTUyMDg7YVsxNTEzMl09KGIwW2NbKGNbaz4+Ml18
MCkrMjg+PjJdJjEyN10obCl8MCkmMTtjWzM5OTJdPTQ0MDQ7Y1szOTkzXT00NDI0O2VrKDE1OTY4
K2p8MCwxNTA4OCk7Y1sxNTk2OCtoPj4yXT0wO2NbMTU5NjgrZz4+Ml09LTE7bD1jWyhjWyhjWzM5
OTJdfDApLTEyPj4yXXwwKSsxNTk5Mj4+Ml18MDtjWzM5NzBdPTQ0MDQ7Y1szOTcxXT00NDI0O2Vr
KDE1ODgwK2p8MCxsKTtjWzE1ODgwK2g+PjJdPTA7Y1sxNTg4MCtnPj4yXT0tMTtjWyhjWyhjWzQw
MTRdfDApLTEyPj4yXXwwKSsxNjEyOD4+Ml09MTU3OTI7Zz0oY1soY1szOTkyXXwwKS0xMj4+Ml18
MCkrMTU5NzJ8MDtjW2c+PjJdPWNbZz4+Ml18ODE5MjtjWyhjWyhjWzM5OTJdfDApLTEyPj4yXXww
KSsxNjA0MD4+Ml09MTU3OTI7YzMoMTQ5ODQsY1tvPj4yXXwwLDE1MjE2KTtjWzM5MjZdPTQ0NTI7
Y1szOTI4XT00NDcyO2NbMzkyN109MDtnPWNbMTExMF18MDtlaygxNTcwNCtnfDAsMTQ5ODQpO2Nb
ZysxNTc3Nj4+Ml09MDtjW2crMTU3ODA+PjJdPS0xO2c9Y1t0Pj4yXXwwO2V3KDE0ODg4KTtjWzM3
MjJdPTQ1NzY7Y1szNzMwXT1nO2lOKGUsMTQ4OTIpO2c9aVgoZSwxNTM4NCl8MDtoPWc7aU8oZSk7
Y1szNzMxXT1oO2NbMzczMl09MTUyMjQ7YVsxNDkzMl09KGIwW2NbKGNbZz4+Ml18MCkrMjg+PjJd
JjEyN10oaCl8MCkmMTtjWzM4NTZdPTQzNTY7Y1szODU3XT00Mzc2O2g9Y1sxMDg2XXwwO2VrKDE1
NDI0K2h8MCwxNDg4OCk7Zz1oKzcyfDA7Y1sxNTQyNCtnPj4yXT0wO2U9aCs3NnwwO2NbMTU0MjQr
ZT4+Ml09LTE7bD1jW3I+PjJdfDA7ZXcoMTQ5MzYpO2NbMzczNF09NDU3NjtjWzM3NDJdPWw7aU4o
ZCwxNDk0MCk7bD1pWChkLDE1Mzg0KXwwO2o9bDtpTyhkKTtjWzM3NDNdPWo7Y1szNzQ0XT0xNTIz
MjthWzE0OTgwXT0oYjBbY1soY1tsPj4yXXwwKSsyOD4+Ml0mMTI3XShqKXwwKSYxO2NbMzkwMF09
NDM1NjtjWzM5MDFdPTQzNzY7ZWsoMTU2MDAraHwwLDE0OTM2KTtjWzE1NjAwK2c+PjJdPTA7Y1sx
NTYwMCtlPj4yXT0tMTtqPWNbKGNbKGNbMzkwMF18MCktMTI+PjJdfDApKzE1NjI0Pj4yXXwwO2Nb
Mzg3OF09NDM1NjtjWzM4NzldPTQzNzY7ZWsoMTU1MTIraHwwLGopO2NbMTU1MTIrZz4+Ml09MDtj
WzE1NTEyK2U+PjJdPS0xO2NbKGNbKGNbMzkyNl18MCktMTI+PjJdfDApKzE1Nzc2Pj4yXT0xNTQy
NDtlPShjWyhjWzM5MDBdfDApLTEyPj4yXXwwKSsxNTYwNHwwO2NbZT4+Ml09Y1tlPj4yXXw4MTky
O2NbKGNbKGNbMzkwMF18MCktMTI+PjJdfDApKzE1NjcyPj4yXT0xNTQyNDtpPWI7cmV0dXJufWZ1
bmN0aW9uIGNfKGEpe2E9YXwwO2V2KGF8MCk7cmV0dXJufWZ1bmN0aW9uIGMkKGEpe2E9YXwwO2V2
KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGMwKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MDti
MFtjWyhjW2I+PjJdfDApKzI0Pj4yXSYxMjddKGIpfDA7ZT1pWChkLDE1Mzg0KXwwO2Q9ZTtjW2Ir
MzY+PjJdPWQ7YVtiKzQ0fDBdPShiMFtjWyhjW2U+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7
cmV0dXJufWZ1bmN0aW9uIGMxKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAsZz0wLGg9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wO2I9aTtpPWkrMTZ8MDtkPWJ8MDtlPWIrOHwwO2Y9YSszNnwwO2c9
YSs0MHwwO2g9ZHwwO2o9ZCs4fDA7az1kO2Q9YSszMnwwO0wxNjQyOndoaWxlKDEpe2E9Y1tmPj4y
XXwwO2w9YiRbY1soY1thPj4yXXwwKSsyMD4+Ml0mMzFdKGEsY1tnPj4yXXwwLGgsaixlKXwwO2E9
KGNbZT4+Ml18MCkta3wwO2lmKChhTShofDAsMSxhfDAsY1tkPj4yXXwwKXwwKSE9KGF8MCkpe209
LTE7bj0xMzA0O2JyZWFrfXN3aXRjaChsfDApe2Nhc2UgMjp7bT0tMTtuPTEzMDU7YnJlYWsgTDE2
NDI7YnJlYWt9O2Nhc2UgMTp7YnJlYWt9O2RlZmF1bHQ6e249MTMwMTticmVhayBMMTY0Mn19fWlm
KChufDApPT0xMzA0KXtpPWI7cmV0dXJuIG18MH1lbHNlIGlmKChufDApPT0xMzA1KXtpPWI7cmV0
dXJuIG18MH1lbHNlIGlmKChufDApPT0xMzAxKXttPSgoYUsoY1tkPj4yXXwwKXwwKSE9MCk8PDMx
Pj4zMTtpPWI7cmV0dXJuIG18MH1yZXR1cm4gMH1mdW5jdGlvbiBjMihiLGQpe2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUrMTZ8MDtq
PWUrMjR8MDtrPShkfDApPT0tMTtMMTY1MTpkb3tpZighayl7Y1tnPj4yXT1kO2lmKChhW2IrNDR8
MF0mMSkhPTApe2lmKChhTShnfDAsNCwxLGNbYiszMj4+Ml18MCl8MCk9PTEpe2JyZWFrfWVsc2V7
bD0tMX1pPWU7cmV0dXJuIGx8MH1tPWZ8MDtjW2g+PjJdPW07bj1nKzR8MDtvPWIrMzZ8MDtwPWIr
NDB8MDtxPWYrOHwwO3I9ZjtzPWIrMzJ8MDt0PWc7d2hpbGUoMSl7dT1jW28+PjJdfDA7dj1iNltj
WyhjW3U+PjJdfDApKzEyPj4yXSYzMV0odSxjW3A+PjJdfDAsdCxuLGosbSxxLGgpfDA7aWYoKGNb
aj4+Ml18MCk9PSh0fDApKXtsPS0xO3c9MTMyMDticmVha31pZigodnwwKT09Myl7dz0xMzEyO2Jy
ZWFrfXU9KHZ8MCk9PTE7aWYodj4+PjA+PTIpe2w9LTE7dz0xMzIyO2JyZWFrfXY9KGNbaD4+Ml18
MCktcnwwO2lmKChhTShtfDAsMSx2fDAsY1tzPj4yXXwwKXwwKSE9KHZ8MCkpe2w9LTE7dz0xMzIx
O2JyZWFrfWlmKHUpe3Q9dT9jW2o+PjJdfDA6dH1lbHNle2JyZWFrIEwxNjUxfX1pZigod3wwKT09
MTMyMSl7aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTMyMil7aT1lO3JldHVybiBsfDB9
ZWxzZSBpZigod3wwKT09MTMxMil7aWYoKGFNKHR8MCwxLDEsY1tzPj4yXXwwKXwwKT09MSl7YnJl
YWt9ZWxzZXtsPS0xfWk9ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTEzMjApe2k9ZTtyZXR1
cm4gbHwwfX19d2hpbGUoMCk7bD1rPzA6ZDtpPWU7cmV0dXJuIGx8MH1mdW5jdGlvbiBjMyhiLGQs
ZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGo9MDtmPWk7aT1pKzh8MDtnPWZ8
MDtldyhifDApO2NbYj4+Ml09NDk3NjtjW2IrMzI+PjJdPWQ7Y1tiKzQwPj4yXT1lO2NbYis0OD4+
Ml09LTE7YVtiKzUyfDBdPTA7aU4oZyxiKzR8MCk7ZT1pWChnLDE1Mzg0KXwwO2Q9ZTtoPWIrMzZ8
MDtjW2g+PjJdPWQ7aj1iKzQ0fDA7Y1tqPj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjdd
KGQpfDA7ZD1jW2g+PjJdfDA7YVtiKzUzfDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYxMjdd
KGQpfDApJjE7aWYoKGNbaj4+Ml18MCk8PTgpe2lPKGcpO2k9ZjtyZXR1cm59aFYoMTg0KTtpTyhn
KTtpPWY7cmV0dXJufWZ1bmN0aW9uIGM0KGEpe2E9YXwwO2V2KGF8MCk7cmV0dXJufWZ1bmN0aW9u
IGM1KGEpe2E9YXwwO2V2KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGM2KGIsZCl7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2U9aVgoZCwxNTM4NCl8MDtkPWU7Zj1iKzM2fDA7Y1tmPj4y
XT1kO2c9Yis0NHwwO2NbZz4+Ml09YjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShkKXwwO2Q9
Y1tmPj4yXXwwO2FbYis1M3wwXT0oYjBbY1soY1tkPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYx
O2lmKChjW2c+PjJdfDApPD04KXtyZXR1cm59aFYoMTg0KTtyZXR1cm59ZnVuY3Rpb24gYzcoYSl7
YT1hfDA7cmV0dXJuIGRhKGEsMCl8MH1mdW5jdGlvbiBjOChhKXthPWF8MDtyZXR1cm4gZGEoYSwx
KXwwfWZ1bmN0aW9uIGM5KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8
MDtoPWUrMTZ8MDtqPWUrMjR8MDtrPWIrNTJ8MDtsPShhW2tdJjEpIT0wO2lmKChkfDApPT0tMSl7
aWYobCl7bT0tMTtpPWU7cmV0dXJuIG18MH1uPWNbYis0OD4+Ml18MDthW2tdPShufDApIT0tMXww
O209bjtpPWU7cmV0dXJuIG18MH1uPWIrNDh8MDtMMTY5NDpkb3tpZihsKXtjW2g+PjJdPWNbbj4+
Ml07bz1jW2IrMzY+PjJdfDA7cD1mfDA7c3dpdGNoKGI2W2NbKGNbbz4+Ml18MCkrMTI+PjJdJjMx
XShvLGNbYis0MD4+Ml18MCxoLGgrNHwwLGoscCxmKzh8MCxnKXwwKXtjYXNlIDI6Y2FzZSAxOntt
PS0xO2k9ZTtyZXR1cm4gbXwwfTtjYXNlIDM6e2FbcF09Y1tuPj4yXSYyNTU7Y1tnPj4yXT1mKzE7
YnJlYWt9O2RlZmF1bHQ6e319bz1iKzMyfDA7d2hpbGUoMSl7cT1jW2c+PjJdfDA7aWYocT4+PjA8
PXA+Pj4wKXticmVhayBMMTY5NH1yPXEtMXwwO2NbZz4+Ml09cjtpZigoYkEoYVtyXXwwLGNbbz4+
Ml18MCl8MCk9PS0xKXttPS0xO2JyZWFrfX1pPWU7cmV0dXJuIG18MH19d2hpbGUoMCk7Y1tuPj4y
XT1kO2Fba109MTttPWQ7aT1lO3JldHVybiBtfDB9ZnVuY3Rpb24gZGEoYixkKXtiPWJ8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDto
PWUrMTZ8MDtqPWUrMjR8MDtrPWIrNTJ8MDtpZigoYVtrXSYxKSE9MCl7bD1iKzQ4fDA7bT1jW2w+
PjJdfDA7aWYoIWQpe249bTtpPWU7cmV0dXJuIG58MH1jW2w+PjJdPS0xO2Fba109MDtuPW07aT1l
O3JldHVybiBufDB9bT1jW2IrNDQ+PjJdfDA7az0obXwwKT4xP206MTtMMTcxNDpkb3tpZigoa3ww
KT4wKXttPWIrMzJ8MDtsPTA7d2hpbGUoMSl7bz1hXyhjW20+PjJdfDApfDA7aWYoKG98MCk9PS0x
KXtuPS0xO2JyZWFrfWFbZitsfDBdPW8mMjU1O2w9bCsxfDA7aWYoKGx8MCk+PShrfDApKXticmVh
ayBMMTcxNH19aT1lO3JldHVybiBufDB9fXdoaWxlKDApO0wxNzIxOmRve2lmKChhW2IrNTN8MF0m
MSk9PTApe2w9Yis0MHwwO209YiszNnwwO289ZnwwO3A9Zys0fDA7cT1iKzMyfDA7cj1rO0wxNzIz
OndoaWxlKDEpe3M9Y1tsPj4yXXwwO3Q9czt1PWNbdD4+Ml18MDt2PWNbdCs0Pj4yXXwwO3Q9Y1tt
Pj4yXXwwO3c9ZityfDA7c3dpdGNoKGI2W2NbKGNbdD4+Ml18MCkrMTY+PjJdJjMxXSh0LHMsbyx3
LGgsZyxwLGopfDApe2Nhc2UgMTp7YnJlYWt9O2Nhc2UgMjp7bj0tMTt4PTEzODA7YnJlYWsgTDE3
MjM7YnJlYWt9O2Nhc2UgMzp7eD0xMzY5O2JyZWFrIEwxNzIzO2JyZWFrfTtkZWZhdWx0Ont5PXI7
YnJlYWsgTDE3MjF9fXM9Y1tsPj4yXXwwO2Nbcz4+Ml09dTtjW3MrND4+Ml09djtpZigocnwwKT09
OCl7bj0tMTt4PTEzNzk7YnJlYWt9dj1hXyhjW3E+PjJdfDApfDA7aWYoKHZ8MCk9PS0xKXtuPS0x
O3g9MTM4NTticmVha31hW3ddPXYmMjU1O3I9cisxfDB9aWYoKHh8MCk9PTEzNzkpe2k9ZTtyZXR1
cm4gbnwwfWVsc2UgaWYoKHh8MCk9PTEzODApe2k9ZTtyZXR1cm4gbnwwfWVsc2UgaWYoKHh8MCk9
PTEzODUpe2k9ZTtyZXR1cm4gbnwwfWVsc2UgaWYoKHh8MCk9PTEzNjkpe2NbZz4+Ml09YVtvXXww
O3k9cjticmVha319ZWxzZXtjW2c+PjJdPWFbZnwwXXwwO3k9a319d2hpbGUoMCk7aWYoZCl7ZD1j
W2c+PjJdfDA7Y1tiKzQ4Pj4yXT1kO249ZDtpPWU7cmV0dXJuIG58MH1kPWIrMzJ8MDtiPXk7d2hp
bGUoMSl7aWYoKGJ8MCk8PTApe2JyZWFrfXk9Yi0xfDA7aWYoKGJBKGFbZit5fDBdfDAsY1tkPj4y
XXwwKXwwKT09LTEpe249LTE7eD0xMzgyO2JyZWFrfWVsc2V7Yj15fX1pZigoeHwwKT09MTM4Mil7
aT1lO3JldHVybiBufDB9bj1jW2c+PjJdfDA7aT1lO3JldHVybiBufDB9ZnVuY3Rpb24gZGIoYSl7
YT1hfDA7ZW8oYXwwKTtyZXR1cm59ZnVuY3Rpb24gZGMoYSl7YT1hfDA7ZW8oYXwwKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24gZGQoYSl7YT1hfDA7ZmcoMTU3OTIpfDA7ZmcoMTU4ODApfDA7ZmgoMTU0
MjQpfDA7ZmgoMTU1MTIpfDA7cmV0dXJufWZ1bmN0aW9uIGRlKGEpe2E9YXwwO3JldHVybn1mdW5j
dGlvbiBkZihhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24gZGcoYSl7YT1hfDA7dmFyIGI9MDtiPWEr
NHwwO0k9Y1tiPj4yXXwwLGNbYj4+Ml09SSsxLEk7cmV0dXJufWZ1bmN0aW9uIGRoKGEpe2E9YXww
O3JldHVybiBjW2ErND4+Ml18MH1mdW5jdGlvbiBkaShhKXthPWF8MDtyZXR1cm4gY1thKzQ+PjJd
fDB9ZnVuY3Rpb24gZGooYSl7YT1hfDA7Y1thPj4yXT00MzA0O3JldHVybn1mdW5jdGlvbiBkayhh
LGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7Y1thPj4yXT1kO2NbYSs0Pj4yXT1iO3JldHVybn1mdW5j
dGlvbiBkbChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MDtpZigoY1tiKzQ+PjJdfDAp
IT0oYXwwKSl7ZT0wO3JldHVybiBlfDB9ZT0oY1tiPj4yXXwwKT09KGR8MCk7cmV0dXJuIGV8MH1m
dW5jdGlvbiBkbShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTA7YjBbY1soY1tiPj4yXXwwKSsyND4+
Ml0mMTI3XShiKXwwO2U9aVgoZCwxNTM5Mil8MDtkPWU7Y1tiKzM2Pj4yXT1kO2FbYis0NHwwXT0o
YjBbY1soY1tlPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO3JldHVybn1mdW5jdGlvbiBkbihh
KXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MDti
PWk7aT1pKzE2fDA7ZD1ifDA7ZT1iKzh8MDtmPWErMzZ8MDtnPWErNDB8MDtoPWR8MDtqPWQrOHww
O2s9ZDtkPWErMzJ8MDtMMTc2Nzp3aGlsZSgxKXthPWNbZj4+Ml18MDtsPWIkW2NbKGNbYT4+Ml18
MCkrMjA+PjJdJjMxXShhLGNbZz4+Ml18MCxoLGosZSl8MDthPShjW2U+PjJdfDApLWt8MDtpZigo
YU0oaHwwLDEsYXwwLGNbZD4+Ml18MCl8MCkhPShhfDApKXttPS0xO249MTQxNDticmVha31zd2l0
Y2gobHwwKXtjYXNlIDI6e209LTE7bj0xNDE1O2JyZWFrIEwxNzY3O2JyZWFrfTtjYXNlIDE6e2Jy
ZWFrfTtkZWZhdWx0OntuPTE0MTE7YnJlYWsgTDE3Njd9fX1pZigobnwwKT09MTQxNSl7aT1iO3Jl
dHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTQxMSl7bT0oKGFLKGNbZD4+Ml18MCl8MCkhPTApPDwz
MT4+MzE7aT1iO3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTQxNCl7aT1iO3JldHVybiBtfDB9
cmV0dXJuIDB9ZnVuY3Rpb24gZHAoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0w
LGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTA7
ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1lKzI0fDA7az0oZHwwKT09LTE7
TDE3NzY6ZG97aWYoIWspe2FbZ109ZCYyNTU7aWYoKGFbYis0NHwwXSYxKSE9MCl7aWYoKGFNKGd8
MCwxLDEsY1tiKzMyPj4yXXwwKXwwKT09MSl7YnJlYWt9ZWxzZXtsPS0xfWk9ZTtyZXR1cm4gbHww
fW09ZnwwO2NbaD4+Ml09bTtuPWcrMXwwO289YiszNnwwO3A9Yis0MHwwO3E9Zis4fDA7cj1mO3M9
YiszMnwwO3Q9Zzt3aGlsZSgxKXt1PWNbbz4+Ml18MDt2PWI2W2NbKGNbdT4+Ml18MCkrMTI+PjJd
JjMxXSh1LGNbcD4+Ml18MCx0LG4saixtLHEsaCl8MDtpZigoY1tqPj4yXXwwKT09KHR8MCkpe2w9
LTE7dz0xNDMzO2JyZWFrfWlmKCh2fDApPT0zKXt3PTE0MjI7YnJlYWt9dT0odnwwKT09MTtpZih2
Pj4+MD49Mil7bD0tMTt3PTE0MzI7YnJlYWt9dj0oY1toPj4yXXwwKS1yfDA7aWYoKGFNKG18MCwx
LHZ8MCxjW3M+PjJdfDApfDApIT0odnwwKSl7bD0tMTt3PTE0MzA7YnJlYWt9aWYodSl7dD11P2Nb
aj4+Ml18MDp0fWVsc2V7YnJlYWsgTDE3NzZ9fWlmKCh3fDApPT0xNDMwKXtpPWU7cmV0dXJuIGx8
MH1lbHNlIGlmKCh3fDApPT0xNDIyKXtpZigoYU0odHwwLDEsMSxjW3M+PjJdfDApfDApPT0xKXti
cmVha31lbHNle2w9LTF9aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTQzMil7aT1lO3Jl
dHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTQzMyl7aT1lO3JldHVybiBsfDB9fX13aGlsZSgwKTts
PWs/MDpkO2k9ZTtyZXR1cm4gbHwwfWZ1bmN0aW9uIGRxKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8
MDt2YXIgZj0wLGc9MCxoPTAsaj0wO2Y9aTtpPWkrOHwwO2c9ZnwwO2VwKGJ8MCk7Y1tiPj4yXT01
MDQ4O2NbYiszMj4+Ml09ZDtjW2IrNDA+PjJdPWU7Y1tiKzQ4Pj4yXT0tMTthW2IrNTJ8MF09MDtp
TihnLGIrNHwwKTtlPWlYKGcsMTUzOTIpfDA7ZD1lO2g9YiszNnwwO2NbaD4+Ml09ZDtqPWIrNDR8
MDtjW2o+PjJdPWIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZCl8MDtkPWNbaD4+Ml18MDth
W2IrNTN8MF09KGIwW2NbKGNbZD4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtpZigoY1tqPj4y
XXwwKTw9OCl7aU8oZyk7aT1mO3JldHVybn1oVigxODQpO2lPKGcpO2k9ZjtyZXR1cm59ZnVuY3Rp
b24gZHIoYSl7YT1hfDA7ZW8oYXwwKTtyZXR1cm59ZnVuY3Rpb24gZHMoYSl7YT1hfDA7ZW8oYXww
KTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZHQoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxn
PTA7ZT1pWChkLDE1MzkyKXwwO2Q9ZTtmPWIrMzZ8MDtjW2Y+PjJdPWQ7Zz1iKzQ0fDA7Y1tnPj4y
XT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGQpfDA7ZD1jW2Y+PjJdfDA7YVtiKzUzfDBd
PShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7aWYoKGNbZz4+Ml18MCk8PTgp
e3JldHVybn1oVigxODQpO3JldHVybn1mdW5jdGlvbiBkdShhKXthPWF8MDtyZXR1cm4gZHgoYSww
KXwwfWZ1bmN0aW9uIGR2KGEpe2E9YXwwO3JldHVybiBkeChhLDEpfDB9ZnVuY3Rpb24gZHcoYixk
KXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtnPWUrOHwwO2g9ZSsxNnwwO2o9ZSsyNHww
O2s9Yis1MnwwO2w9KGFba10mMSkhPTA7aWYoKGR8MCk9PS0xKXtpZihsKXttPS0xO2k9ZTtyZXR1
cm4gbXwwfW49Y1tiKzQ4Pj4yXXwwO2Fba109KG58MCkhPS0xfDA7bT1uO2k9ZTtyZXR1cm4gbXww
fW49Yis0OHwwO0wxODE5OmRve2lmKGwpe2FbaF09Y1tuPj4yXSYyNTU7bz1jW2IrMzY+PjJdfDA7
cD1mfDA7c3dpdGNoKGI2W2NbKGNbbz4+Ml18MCkrMTI+PjJdJjMxXShvLGNbYis0MD4+Ml18MCxo
LGgrMXwwLGoscCxmKzh8MCxnKXwwKXtjYXNlIDM6e2FbcF09Y1tuPj4yXSYyNTU7Y1tnPj4yXT1m
KzE7YnJlYWt9O2Nhc2UgMjpjYXNlIDE6e209LTE7aT1lO3JldHVybiBtfDB9O2RlZmF1bHQ6e319
bz1iKzMyfDA7d2hpbGUoMSl7cT1jW2c+PjJdfDA7aWYocT4+PjA8PXA+Pj4wKXticmVhayBMMTgx
OX1yPXEtMXwwO2NbZz4+Ml09cjtpZigoYkEoYVtyXXwwLGNbbz4+Ml18MCl8MCk9PS0xKXttPS0x
O2JyZWFrfX1pPWU7cmV0dXJuIG18MH19d2hpbGUoMCk7Y1tuPj4yXT1kO2Fba109MTttPWQ7aT1l
O3JldHVybiBtfDB9ZnVuY3Rpb24gZHgoYixlKXtiPWJ8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAs
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTA7Zj1pO2k9aSszMnwwO2c9ZnwwO2g9Zis4fDA7aj1mKzE2fDA7az1mKzI0
fDA7bD1iKzUyfDA7aWYoKGFbbF0mMSkhPTApe209Yis0OHwwO249Y1ttPj4yXXwwO2lmKCFlKXtv
PW47aT1mO3JldHVybiBvfDB9Y1ttPj4yXT0tMTthW2xdPTA7bz1uO2k9ZjtyZXR1cm4gb3wwfW49
Y1tiKzQ0Pj4yXXwwO2w9KG58MCk+MT9uOjE7TDE4Mzk6ZG97aWYoKGx8MCk+MCl7bj1iKzMyfDA7
bT0wO3doaWxlKDEpe3A9YV8oY1tuPj4yXXwwKXwwO2lmKChwfDApPT0tMSl7bz0tMTticmVha31h
W2crbXwwXT1wJjI1NTttPW0rMXwwO2lmKChtfDApPj0obHwwKSl7YnJlYWsgTDE4Mzl9fWk9Zjty
ZXR1cm4gb3wwfX13aGlsZSgwKTtMMTg0Njpkb3tpZigoYVtiKzUzfDBdJjEpPT0wKXttPWIrNDB8
MDtuPWIrMzZ8MDtwPWd8MDtxPWgrMXwwO3I9YiszMnwwO3M9bDtMMTg0ODp3aGlsZSgxKXt0PWNb
bT4+Ml18MDt1PXQ7dj1jW3U+PjJdfDA7dz1jW3UrND4+Ml18MDt1PWNbbj4+Ml18MDt4PWcrc3ww
O3N3aXRjaChiNltjWyhjW3U+PjJdfDApKzE2Pj4yXSYzMV0odSx0LHAseCxqLGgscSxrKXwwKXtj
YXNlIDE6e2JyZWFrfTtjYXNlIDI6e289LTE7eT0xNDkwO2JyZWFrIEwxODQ4O2JyZWFrfTtjYXNl
IDM6e3k9MTQ3OTticmVhayBMMTg0ODticmVha307ZGVmYXVsdDp7ej1zO2JyZWFrIEwxODQ2fX10
PWNbbT4+Ml18MDtjW3Q+PjJdPXY7Y1t0KzQ+PjJdPXc7aWYoKHN8MCk9PTgpe289LTE7eT0xNDkx
O2JyZWFrfXc9YV8oY1tyPj4yXXwwKXwwO2lmKCh3fDApPT0tMSl7bz0tMTt5PTE0OTU7YnJlYWt9
YVt4XT13JjI1NTtzPXMrMXwwfWlmKCh5fDApPT0xNDkwKXtpPWY7cmV0dXJuIG98MH1lbHNlIGlm
KCh5fDApPT0xNDk1KXtpPWY7cmV0dXJuIG98MH1lbHNlIGlmKCh5fDApPT0xNDc5KXthW2hdPWFb
cF18MDt6PXM7YnJlYWt9ZWxzZSBpZigoeXwwKT09MTQ5MSl7aT1mO3JldHVybiBvfDB9fWVsc2V7
YVtoXT1hW2d8MF18MDt6PWx9fXdoaWxlKDApO2Rve2lmKGUpe2w9YVtoXXwwO2NbYis0OD4+Ml09
bCYyNTU7QT1sfWVsc2V7bD1iKzMyfDA7az16O3doaWxlKDEpe2lmKChrfDApPD0wKXt5PTE0ODY7
YnJlYWt9aj1rLTF8MDtpZigoYkEoZFtnK2p8MF18MHwwLGNbbD4+Ml18MCl8MCk9PS0xKXtvPS0x
O3k9MTQ5NDticmVha31lbHNle2s9an19aWYoKHl8MCk9PTE0ODYpe0E9YVtoXXwwO2JyZWFrfWVs
c2UgaWYoKHl8MCk9PTE0OTQpe2k9ZjtyZXR1cm4gb3wwfX19d2hpbGUoMCk7bz1BJjI1NTtpPWY7
cmV0dXJuIG98MH1mdW5jdGlvbiBkeSgpe2NaKDApO2EkKDE0MiwxNjE0NHwwLHV8MCl8MDtyZXR1
cm59ZnVuY3Rpb24gZHooYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hKzR8MDtpZigoKEk9Y1tiPj4y
XXwwLGNbYj4+Ml09SSsgLTEsSSl8MCkhPTApe2Q9MDtyZXR1cm4gZHwwfWJZW2NbKGNbYT4+Ml18
MCkrOD4+Ml0mNTExXShhKTtkPTE7cmV0dXJuIGR8MH1mdW5jdGlvbiBkQShhLGIpe2E9YXwwO2I9
YnwwO3ZhciBkPTAsZT0wLGY9MDtjW2E+PjJdPTI1MzY7ZD1hKzR8MDtpZigoZHwwKT09MCl7cmV0
dXJufWE9azAoYnwwKXwwO2U9YSsxfDA7Zj1rUChhKzEzfDApfDA7Y1tmKzQ+PjJdPWE7Y1tmPj4y
XT1hO2E9ZisxMnwwO2NbZD4+Ml09YTtjW2YrOD4+Ml09MDtrWShhfDAsYnwwLGUpfDA7cmV0dXJu
fWZ1bmN0aW9uIGRCKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtjW2E+PjJdPTI1MzY7Yj1hKzR8
MDtkPShjW2I+PjJdfDApLTR8MDtpZigoKEk9Y1tkPj4yXXwwLGNbZD4+Ml09SSsgLTEsSSktMXww
KT49MCl7ZT1hO2tTKGUpO3JldHVybn1kPShjW2I+PjJdfDApLTEyfDA7aWYoKGR8MCk9PTApe2U9
YTtrUyhlKTtyZXR1cm59a1QoZCk7ZT1hO2tTKGUpO3JldHVybn1mdW5jdGlvbiBkQyhhKXthPWF8
MDt2YXIgYj0wO2NbYT4+Ml09MjUzNjtiPWErNHwwO2E9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1j
W2E+PjJdfDAsY1thPj4yXT1JKyAtMSxJKS0xfDApPj0wKXtyZXR1cm59YT0oY1tiPj4yXXwwKS0x
MnwwO2lmKChhfDApPT0wKXtyZXR1cm59a1QoYSk7cmV0dXJufWZ1bmN0aW9uIGREKGIsZCl7Yj1i
fDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2NbYj4+Ml09MjQ3MjtlPWIrNHwwO2lmKChlfDApPT0w
KXtyZXR1cm59aWYoKGFbZF0mMSk9PTApe2Y9ZCsxfDB9ZWxzZXtmPWNbZCs4Pj4yXXwwfWQ9azAo
ZnwwKXwwO2I9ZCsxfDA7Zz1rUChkKzEzfDApfDA7Y1tnKzQ+PjJdPWQ7Y1tnPj4yXT1kO2Q9Zysx
MnwwO2NbZT4+Ml09ZDtjW2crOD4+Ml09MDtrWShkfDAsZnwwLGIpfDA7cmV0dXJufWZ1bmN0aW9u
IGRFKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wO2NbYT4+Ml09MjQ3MjtkPWErNHww
O2lmKChkfDApPT0wKXtyZXR1cm59YT1rMChifDApfDA7ZT1hKzF8MDtmPWtQKGErMTN8MCl8MDtj
W2YrND4+Ml09YTtjW2Y+PjJdPWE7YT1mKzEyfDA7Y1tkPj4yXT1hO2NbZis4Pj4yXT0wO2tZKGF8
MCxifDAsZSl8MDtyZXR1cm59ZnVuY3Rpb24gZEYoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2Nb
YT4+Ml09MjQ3MjtiPWErNHwwO2Q9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2Q+PjJdfDAsY1tk
Pj4yXT1JKyAtMSxJKS0xfDApPj0wKXtlPWE7a1MoZSk7cmV0dXJufWQ9KGNbYj4+Ml18MCktMTJ8
MDtpZigoZHwwKT09MCl7ZT1hO2tTKGUpO3JldHVybn1rVChkKTtlPWE7a1MoZSk7cmV0dXJufWZ1
bmN0aW9uIGRHKGEpe2E9YXwwO3ZhciBiPTA7Y1thPj4yXT0yNDcyO2I9YSs0fDA7YT0oY1tiPj4y
XXwwKS00fDA7aWYoKChJPWNbYT4+Ml18MCxjW2E+PjJdPUkrIC0xLEkpLTF8MCk+PTApe3JldHVy
bn1hPShjW2I+PjJdfDApLTEyfDA7aWYoKGF8MCk9PTApe3JldHVybn1rVChhKTtyZXR1cm59ZnVu
Y3Rpb24gZEgoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2NbYT4+Ml09MjUzNjtiPWErNHwwO2Q9
KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2Q+PjJdfDAsY1tkPj4yXT1JKyAtMSxJKS0xfDApPj0w
KXtlPWE7a1MoZSk7cmV0dXJufWQ9KGNbYj4+Ml18MCktMTJ8MDtpZigoZHwwKT09MCl7ZT1hO2tT
KGUpO3JldHVybn1rVChkKTtlPWE7a1MoZSk7cmV0dXJufWZ1bmN0aW9uIGRJKGEpe2E9YXwwO2tT
KGEpO3JldHVybn1mdW5jdGlvbiBkSihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wO2U9aTtpPWkrOHwwO2Y9ZXwwO2IzW2NbKGNbYT4+Ml18MCkrMTI+PjJdJjddKGYsYSxi
KTtpZigoY1tmKzQ+PjJdfDApIT0oY1tkKzQ+PjJdfDApKXtnPTA7aT1lO3JldHVybiBnfDB9Zz0o
Y1tmPj4yXXwwKT09KGNbZD4+Ml18MCk7aT1lO3JldHVybiBnfDB9ZnVuY3Rpb24gZEsoYSxiLGMp
e2E9YXwwO2I9YnwwO2M9Y3wwO2I9YngoY3wwKXwwO2RaKGEsYixrMChifDApfDApO3JldHVybn1m
dW5jdGlvbiBkTChiLGUsZil7Yj1ifDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zz1pO2g9ZjtqPWk7aT1pKzEyfDA7aT1pKzc+PjM8
PDM7az1lfDA7bD1jW2s+PjJdfDA7aWYoKGx8MCk9PTApe209YjtjW20+PjJdPWNbaD4+Ml07Y1tt
KzQ+PjJdPWNbaCs0Pj4yXTtjW20rOD4+Ml09Y1toKzg+PjJdO2skKGh8MCwwLDEyKTtpPWc7cmV0
dXJufW49ZFtoXXwwO2lmKChuJjF8MCk9PTApe289bj4+PjF9ZWxzZXtvPWNbZis0Pj4yXXwwfWlm
KChvfDApPT0wKXtwPWx9ZWxzZXtkVChmLDEyOTYpfDA7cD1jW2s+PjJdfDB9az1jW2UrND4+Ml18
MDtiM1tjWyhjW2s+PjJdfDApKzI0Pj4yXSY3XShqLGsscCk7cD1hW2pdfDA7aWYoKHAmMSk9PTAp
e3E9aisxfDB9ZWxzZXtxPWNbais4Pj4yXXwwfWs9cCYyNTU7aWYoKGsmMXwwKT09MCl7cj1rPj4+
MX1lbHNle3I9Y1tqKzQ+PjJdfDB9ZFYoZixxLHIpfDA7ZFAoaik7bT1iO2NbbT4+Ml09Y1toPj4y
XTtjW20rND4+Ml09Y1toKzQ+PjJdO2NbbSs4Pj4yXT1jW2grOD4+Ml07ayQoaHwwLDAsMTIpO2k9
ZztyZXR1cm59ZnVuY3Rpb24gZE0oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0w
LGc9MDtlPWk7aT1pKzMyfDA7Zj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tmPj4yXTtjW2IrND4+
Ml09Y1tmKzQ+PjJdO2Y9ZXwwO2c9ZSsxNnwwO2RaKGcsZCxrMChkfDApfDApO2RMKGYsYixnKTtk
RChhfDAsZik7ZFAoZik7ZFAoZyk7Y1thPj4yXT00NTQ0O2c9YjtiPWErOHwwO2E9Y1tnKzQ+PjJd
fDA7Y1tiPj4yXT1jW2c+PjJdO2NbYis0Pj4yXT1hO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZE4oYSl7
YT1hfDA7ZEcoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZE8oYSl7YT1hfDA7ZEcoYXwwKTty
ZXR1cm59ZnVuY3Rpb24gZFAoYil7Yj1ifDA7aWYoKGFbYl0mMSk9PTApe3JldHVybn1rUyhjW2Ir
OD4+Ml18MCk7cmV0dXJufWZ1bmN0aW9uIGRRKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAs
Zz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1rMChkfDApfDA7Zj1iO2c9YjtoPWFbZ118MDtpZigo
aCYxKT09MCl7aT0xMDtqPWh9ZWxzZXtoPWNbYj4+Ml18MDtpPShoJi0yKS0xfDA7aj1oJjI1NX1p
ZihpPj4+MDxlPj4+MCl7aD1qJjI1NTtpZigoaCYxfDApPT0wKXtrPWg+Pj4xfWVsc2V7az1jW2Ir
ND4+Ml18MH1kMChiLGksZS1pfDAsaywwLGssZSxkKTtyZXR1cm4gYnwwfWlmKChqJjEpPT0wKXts
PWYrMXwwfWVsc2V7bD1jW2IrOD4+Ml18MH1rXyhsfDAsZHwwLGV8MCk7YVtsK2V8MF09MDtpZigo
YVtnXSYxKT09MCl7YVtnXT1lPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+PjJdPWU7cmV0
dXJuIGJ8MH1yZXR1cm4gMH1mdW5jdGlvbiBkUihiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFy
IGY9MCxnPTAsaD0wLGk9MDtmPWI7Zz1hW2ZdfDA7aD1nJjI1NTtpZigoaCYxfDApPT0wKXtpPWg+
Pj4xfWVsc2V7aT1jW2IrND4+Ml18MH1pZihpPj4+MDxkPj4+MCl7aD1kLWl8MDtkUyhiLGgsZSl8
MDtyZXR1cm59aWYoKGcmMSk9PTApe2FbYisxK2R8MF09MDthW2ZdPWQ8PDEmMjU1O3JldHVybn1l
bHNle2FbKGNbYis4Pj4yXXwwKStkfDBdPTA7Y1tiKzQ+PjJdPWQ7cmV0dXJufX1mdW5jdGlvbiBk
UyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9
MDtpZigoZHwwKT09MCl7cmV0dXJuIGJ8MH1mPWI7Zz1hW2ZdfDA7aWYoKGcmMSk9PTApe2g9MTA7
aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9ZyYyNTV9Zz1pJjI1NTtpZigoZyYx
fDApPT0wKXtqPWc+Pj4xfWVsc2V7aj1jW2IrND4+Ml18MH1pZigoaC1qfDApPj4+MDxkPj4+MCl7
ZDEoYixoLGQtaCtqfDAsaixqLDAsMCk7az1hW2ZdfDB9ZWxzZXtrPWl9aWYoKGsmMSk9PTApe2w9
YisxfDB9ZWxzZXtsPWNbYis4Pj4yXXwwfWskKGwranwwLGV8MCxkfDApO2U9aitkfDA7aWYoKGFb
Zl0mMSk9PTApe2FbZl09ZTw8MSYyNTV9ZWxzZXtjW2IrND4+Ml09ZX1hW2wrZXwwXT0wO3JldHVy
biBifDB9ZnVuY3Rpb24gZFQoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4gZFYoYSxiLGswKGJ8MCl8
MCl8MH1mdW5jdGlvbiBkVShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0w
LGo9MCxrPTAsbD0wLG09MDtlPWI7Zj1hW2VdfDA7aWYoKGYmMSk9PTApe2c9KGYmMjU1KT4+PjE7
aD0xMH1lbHNle2c9Y1tiKzQ+PjJdfDA7aD0oY1tiPj4yXSYtMiktMXwwfWlmKChnfDApPT0oaHww
KSl7ZDEoYixoLDEsaCxoLDAsMCk7aT1hW2VdfDB9ZWxzZXtpPWZ9aWYoKGkmMSk9PTApe2FbZV09
KGc8PDEpKzImMjU1O2o9YisxfDA7az1nKzF8MDtsPWorZ3wwO2FbbF09ZDttPWora3wwO2FbbV09
MDtyZXR1cm59ZWxzZXtlPWNbYis4Pj4yXXwwO2k9ZysxfDA7Y1tiKzQ+PjJdPWk7aj1lO2s9aTts
PWorZ3wwO2FbbF09ZDttPWora3wwO2FbbV09MDtyZXR1cm59fWZ1bmN0aW9uIGRWKGIsZCxlKXti
PWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTA7Zj1iO2c9YVtmXXww
O2lmKChnJjEpPT0wKXtoPTEwO2k9Z31lbHNle2c9Y1tiPj4yXXwwO2g9KGcmLTIpLTF8MDtpPWcm
MjU1fWc9aSYyNTU7aWYoKGcmMXwwKT09MCl7aj1nPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9aWYo
KGgtanwwKT4+PjA8ZT4+PjApe2QwKGIsaCxlLWgranwwLGosaiwwLGUsZCk7cmV0dXJuIGJ8MH1p
ZigoZXwwKT09MCl7cmV0dXJuIGJ8MH1pZigoaSYxKT09MCl7az1iKzF8MH1lbHNle2s9Y1tiKzg+
PjJdfDB9aT1rK2p8MDtrWShpfDAsZHwwLGUpfDA7ZD1qK2V8MDtpZigoYVtmXSYxKT09MCl7YVtm
XT1kPDwxJjI1NX1lbHNle2NbYis0Pj4yXT1kfWFbaytkfDBdPTA7cmV0dXJuIGJ8MH1mdW5jdGlv
biBkVyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTA7ZTtp
ZigoY1thPj4yXXwwKT09MSl7ZG97YVUoOTczNiw5NzI4KXwwO313aGlsZSgoY1thPj4yXXwwKT09
MSl9aWYoKGNbYT4+Ml18MCkhPTApe2Y7cmV0dXJufWNbYT4+Ml09MTtnO2JZW2QmNTExXShiKTto
O2NbYT4+Ml09LTE7aTticyg5NzM2KXwwO3JldHVybn1mdW5jdGlvbiBkWChhKXthPWF8MDthPWJP
KDgpfDA7ZEEoYSwzNjApO2NbYT4+Ml09MjUwNDtibChhfDAsODIwOCwzMil9ZnVuY3Rpb24gZFko
YixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wO2U9ZDtpZigoYVtlXSYxKT09MCl7
Zj1iO2NbZj4+Ml09Y1tlPj4yXTtjW2YrND4+Ml09Y1tlKzQ+PjJdO2NbZis4Pj4yXT1jW2UrOD4+
Ml07cmV0dXJufWU9Y1tkKzg+PjJdfDA7Zj1jW2QrND4+Ml18MDtpZigoZnwwKT09LTEpe2RYKDAp
fWlmKGY+Pj4wPDExKXthW2JdPWY8PDEmMjU1O2c9YisxfDB9ZWxzZXtkPWYrMTYmLTE2O2g9a08o
ZCl8MDtjW2IrOD4+Ml09aDtjW2I+PjJdPWR8MTtjW2IrND4+Ml09ZjtnPWh9a1koZ3wwLGV8MCxm
KXwwO2FbZytmfDBdPTA7cmV0dXJufWZ1bmN0aW9uIGRaKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8
MDt2YXIgZj0wLGc9MCxoPTAsaT0wO2lmKChlfDApPT0tMSl7ZFgoMCl9aWYoZT4+PjA8MTEpe2Fb
Yl09ZTw8MSYyNTU7Zj1iKzF8MDtrWShmfDAsZHwwLGUpfDA7Zz1mK2V8MDthW2ddPTA7cmV0dXJu
fWVsc2V7aD1lKzE2Ji0xNjtpPWtPKGgpfDA7Y1tiKzg+PjJdPWk7Y1tiPj4yXT1ofDE7Y1tiKzQ+
PjJdPWU7Zj1pO2tZKGZ8MCxkfDAsZSl8MDtnPWYrZXwwO2FbZ109MDtyZXR1cm59fWZ1bmN0aW9u
IGRfKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7aWYoKGR8MCk9PS0x
KXtkWCgwKX1pZihkPj4+MDwxMSl7YVtiXT1kPDwxJjI1NTtmPWIrMXwwfWVsc2V7Zz1kKzE2Ji0x
NjtoPWtPKGcpfDA7Y1tiKzg+PjJdPWg7Y1tiPj4yXT1nfDE7Y1tiKzQ+PjJdPWQ7Zj1ofWskKGZ8
MCxlfDAsZHwwKTthW2YrZHwwXT0wO3JldHVybn1mdW5jdGlvbiBkJChiLGQpe2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wO2lmKChkfDApPT0tMSl7ZFgoMCl9ZT1iO2Y9YjtnPWFbZl18MDtpZigoZyYxKT09MCl7aD0x
MDtpPWd9ZWxzZXtnPWNbYj4+Ml18MDtoPShnJi0yKS0xfDA7aT1nJjI1NX1nPWkmMjU1O2lmKChn
JjF8MCk9PTApe2o9Zz4+PjF9ZWxzZXtqPWNbYis0Pj4yXXwwfWc9aj4+PjA+ZD4+PjA/ajpkO2lm
KGc+Pj4wPDExKXtrPTExfWVsc2V7az1nKzE2Ji0xNn1nPWstMXwwO2lmKChnfDApPT0oaHwwKSl7
cmV0dXJufWlmKChnfDApPT0xMCl7bD1lKzF8MDttPWNbYis4Pj4yXXwwO249MTtvPTB9ZWxzZXtp
ZihnPj4+MD5oPj4+MCl7cD1rTyhrKXwwfWVsc2V7cD1rTyhrKXwwfWg9aSYxO2lmKGg8PDI0Pj4y
ND09MCl7cT1lKzF8MH1lbHNle3E9Y1tiKzg+PjJdfDB9bD1wO209cTtuPWg8PDI0Pj4yNCE9MDtv
PTF9aD1pJjI1NTtpZigoaCYxfDApPT0wKXtyPWg+Pj4xfWVsc2V7cj1jW2IrND4+Ml18MH1oPXIr
MXwwO2tZKGx8MCxtfDAsaCl8MDtpZihuKXtrUyhtKX1pZihvKXtjW2I+PjJdPWt8MTtjW2IrND4+
Ml09ajtjW2IrOD4+Ml09bDtyZXR1cm59ZWxzZXthW2ZdPWo8PDEmMjU1O3JldHVybn19ZnVuY3Rp
b24gZDAoYixkLGUsZixnLGgsaSxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtpPWl8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MDtpZigoLTMtZHwwKT4+PjA8ZT4+PjApe2RYKDApfWlmKChhW2JdJjEpPT0wKXtrPWIrMXww
fWVsc2V7az1jW2IrOD4+Ml18MH1kb3tpZihkPj4+MDwyMTQ3NDgzNjMxKXtsPWUrZHwwO209ZDw8
MTtuPWw+Pj4wPG0+Pj4wP206bDtpZihuPj4+MDwxMSl7bz0xMTticmVha31vPW4rMTYmLTE2fWVs
c2V7bz0tMn19d2hpbGUoMCk7ZT1rTyhvKXwwO2lmKChnfDApIT0wKXtrWShlfDAsa3wwLGcpfDB9
aWYoKGl8MCkhPTApe249ZStnfDA7a1kobnwwLGp8MCxpKXwwfWo9Zi1ofDA7aWYoKGp8MCkhPShn
fDApKXtmPWotZ3wwO249ZSsoaStnKXwwO2w9aysoaCtnKXwwO2tZKG58MCxsfDAsZil8MH1pZigo
ZHwwKT09MTApe3A9Yis4fDA7Y1twPj4yXT1lO3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtzPWoraXww
O3Q9Yis0fDA7Y1t0Pj4yXT1zO3U9ZStzfDA7YVt1XT0wO3JldHVybn1rUyhrKTtwPWIrOHwwO2Nb
cD4+Ml09ZTtxPW98MTtyPWJ8MDtjW3I+PjJdPXE7cz1qK2l8MDt0PWIrNHwwO2NbdD4+Ml09czt1
PWUrc3wwO2FbdV09MDtyZXR1cm59ZnVuY3Rpb24gZDEoYixkLGUsZixnLGgsaSl7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTA7aWYoKC0zLWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09MCl7
aj1iKzF8MH1lbHNle2o9Y1tiKzg+PjJdfDB9ZG97aWYoZD4+PjA8MjE0NzQ4MzYzMSl7az1lK2R8
MDtsPWQ8PDE7bT1rPj4+MDxsPj4+MD9sOms7aWYobT4+PjA8MTEpe249MTE7YnJlYWt9bj1tKzE2
Ji0xNn1lbHNle249LTJ9fXdoaWxlKDApO2U9a08obil8MDtpZigoZ3wwKSE9MCl7a1koZXwwLGp8
MCxnKXwwfW09Zi1ofDA7aWYoKG18MCkhPShnfDApKXtmPW0tZ3wwO209ZSsoaStnKXwwO2k9aiso
aCtnKXwwO2tZKG18MCxpfDAsZil8MH1pZigoZHwwKT09MTApe289Yis4fDA7Y1tvPj4yXT1lO3A9
bnwxO3E9YnwwO2NbcT4+Ml09cDtyZXR1cm59a1Moaik7bz1iKzh8MDtjW28+PjJdPWU7cD1ufDE7
cT1ifDA7Y1txPj4yXT1wO3JldHVybn1mdW5jdGlvbiBkMihhLGIpe2E9YXwwO2I9YnwwO3JldHVy
bn1mdW5jdGlvbiBkMyhhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJuIGF8MH1mdW5jdGlv
biBkNChhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBkNShhKXthPWF8MDtyZXR1cm4gMH1mdW5j
dGlvbiBkNihhKXthPWF8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGQ3KGEsYil7YT1hfDA7Yj1ifDA7
cmV0dXJuLTF8MH1mdW5jdGlvbiBkOChhLGIpe2E9YXwwO2I9YnwwO3JldHVybi0xfDB9ZnVuY3Rp
b24gZDkoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm59ZnVuY3Rpb24gZWEoYSxiLGMpe2E9YXwwO2I9
YnwwO2M9Y3wwO3JldHVybiBhfDB9ZnVuY3Rpb24gZWIoYSxiLGQsZSxmLGcpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2c9YTtjW2c+PjJdPTA7Y1tnKzQ+PjJdPTA7Zz1hKzh8
MDtjW2c+PjJdPS0xO2NbZys0Pj4yXT0tMTtyZXR1cm59ZnVuY3Rpb24gZWMoYSxiLGQsZSl7YT1h
fDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7ZT1pO2I9ZDtkPWk7aT1pKzE2fDA7Y1tkPj4yXT1jW2I+PjJd
O2NbZCs0Pj4yXT1jW2IrND4+Ml07Y1tkKzg+PjJdPWNbYis4Pj4yXTtjW2QrMTI+PjJdPWNbYisx
Mj4+Ml07Yj1hO2NbYj4+Ml09MDtjW2IrND4+Ml09MDtiPWErOHwwO2NbYj4+Ml09LTE7Y1tiKzQ+
PjJdPS0xO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZWQoYSxiLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2c9YTtjW2c+PjJdPTA7Y1tnKzQ+PjJdPTA7Zz1hKzh8MDtj
W2c+PjJdPS0xO2NbZys0Pj4yXT0tMTtyZXR1cm59ZnVuY3Rpb24gZWUoYil7Yj1ifDA7aWYoKGFb
Yl0mMSk9PTApe3JldHVybn1rUyhjW2IrOD4+Ml18MCk7cmV0dXJufWZ1bmN0aW9uIGVmKGEsYil7
YT1hfDA7Yj1ifDA7cmV0dXJuIGVnKGEsYixrbShiKXwwKXwwfWZ1bmN0aW9uIGVnKGIsZCxlKXti
PWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTA7Zj1iO2c9YVtmXXww
O2lmKChnJjEpPT0wKXtoPTE7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9ZyYy
NTV9aWYoaD4+PjA8ZT4+PjApe2c9aSYyNTU7aWYoKGcmMXwwKT09MCl7aj1nPj4+MX1lbHNle2o9
Y1tiKzQ+PjJdfDB9ZUEoYixoLGUtaHwwLGosMCxqLGUsZCk7cmV0dXJuIGJ8MH1pZigoaSYxKT09
MCl7az1iKzR8MH1lbHNle2s9Y1tiKzg+PjJdfDB9a28oayxkLGUpfDA7Y1trKyhlPDwyKT4+Ml09
MDtpZigoYVtmXSYxKT09MCl7YVtmXT1lPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+PjJd
PWU7cmV0dXJuIGJ8MH1yZXR1cm4gMH1mdW5jdGlvbiBlaChiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MDtlPWI7Zj1hW2VdfDA7aWYoKGYmMSk9
PTApe2c9KGYmMjU1KT4+PjE7aD0xfWVsc2V7Zz1jW2IrND4+Ml18MDtoPShjW2I+PjJdJi0yKS0x
fDB9aWYoKGd8MCk9PShofDApKXtlQihiLGgsMSxoLGgsMCwwKTtpPWFbZV18MH1lbHNle2k9Zn1p
ZigoaSYxKT09MCl7YVtlXT0oZzw8MSkrMiYyNTU7aj1iKzR8MDtrPWcrMXwwO2w9aisoZzw8Mil8
MDtjW2w+PjJdPWQ7bT1qKyhrPDwyKXwwO2NbbT4+Ml09MDtyZXR1cm59ZWxzZXtlPWNbYis4Pj4y
XXwwO2k9ZysxfDA7Y1tiKzQ+PjJdPWk7aj1lO2s9aTtsPWorKGc8PDIpfDA7Y1tsPj4yXT1kO209
aisoazw8Mil8MDtjW20+PjJdPTA7cmV0dXJufX1mdW5jdGlvbiBlaShhKXthPWF8MDtlRChhfDAp
O3JldHVybn1mdW5jdGlvbiBlaihhLGIpe2E9YXwwO2I9YnwwO2lOKGEsYisyOHwwKTtyZXR1cm59
ZnVuY3Rpb24gZWsoYSxiKXthPWF8MDtiPWJ8MDtjW2ErMjQ+PjJdPWI7Y1thKzE2Pj4yXT0oYnww
KT09MDtjW2ErMjA+PjJdPTA7Y1thKzQ+PjJdPTQwOTg7Y1thKzEyPj4yXT0wO2NbYSs4Pj4yXT02
O2I9YSsyOHwwO2skKGErMzJ8MCwwLDQwKTtpZigoYnwwKT09MCl7cmV0dXJufWlXKGIpO3JldHVy
bn1mdW5jdGlvbiBlbChhKXthPWF8MDtlRChhfDApO3JldHVybn1mdW5jdGlvbiBlbShhKXthPWF8
MDtjW2E+PjJdPTQyMzI7aU8oYSs0fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlbihhKXthPWF8
MDtjW2E+PjJdPTQyMzI7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBlbyhhKXthPWF8MDtjW2E+
PjJdPTQyMzI7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBlcChhKXthPWF8MDtjW2E+PjJdPTQy
MzI7aVcoYSs0fDApO2skKGErOHwwLDAsMjQpO3JldHVybn1mdW5jdGlvbiBlcShiLGQsZSl7Yj1i
fDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7Zj1iO2lm
KChlfDApPD0wKXtnPTA7cmV0dXJuIGd8MH1oPWIrMTJ8MDtpPWIrMTZ8MDtqPWQ7ZD0wO3doaWxl
KDEpe2s9Y1toPj4yXXwwO2lmKGs+Pj4wPChjW2k+PjJdfDApPj4+MCl7Y1toPj4yXT1rKzE7bD1h
W2tdfDB9ZWxzZXtrPWIwW2NbKGNbZj4+Ml18MCkrNDA+PjJdJjEyN10oYil8MDtpZigoa3wwKT09
LTEpe2c9ZDttPTE4NTQ7YnJlYWt9bD1rJjI1NX1hW2pdPWw7az1kKzF8MDtpZigoa3wwKTwoZXww
KSl7aj1qKzF8MDtkPWt9ZWxzZXtnPWs7bT0xODU2O2JyZWFrfX1pZigobXwwKT09MTg1NCl7cmV0
dXJuIGd8MH1lbHNlIGlmKChtfDApPT0xODU2KXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0aW9u
IGVyKGEpe2E9YXwwO3ZhciBiPTAsZT0wO2lmKChiMFtjWyhjW2E+PjJdfDApKzM2Pj4yXSYxMjdd
KGEpfDApPT0tMSl7Yj0tMTtyZXR1cm4gYnwwfWU9YSsxMnwwO2E9Y1tlPj4yXXwwO2NbZT4+Ml09
YSsxO2I9ZFthXXwwO3JldHVybiBifDB9ZnVuY3Rpb24gZXMoYixlLGYpe2I9YnwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2c9YjtpZigoZnwwKTw9MCl7
aD0wO3JldHVybiBofDB9aT1iKzI0fDA7aj1iKzI4fDA7az0wO2w9ZTt3aGlsZSgxKXtlPWNbaT4+
Ml18MDtpZihlPj4+MDwoY1tqPj4yXXwwKT4+PjApe209YVtsXXwwO2NbaT4+Ml09ZSsxO2FbZV09
bX1lbHNle2lmKChiX1tjWyhjW2c+PjJdfDApKzUyPj4yXSYzMV0oYixkW2xdfDApfDApPT0tMSl7
aD1rO249MTg2OTticmVha319bT1rKzF8MDtpZigobXwwKTwoZnwwKSl7az1tO2w9bCsxfDB9ZWxz
ZXtoPW07bj0xODcxO2JyZWFrfX1pZigobnwwKT09MTg2OSl7cmV0dXJuIGh8MH1lbHNlIGlmKChu
fDApPT0xODcxKXtyZXR1cm4gaHwwfXJldHVybiAwfWZ1bmN0aW9uIGV0KGEpe2E9YXwwO2NbYT4+
Ml09NDE2MDtpTyhhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGV1KGEpe2E9YXwwO2NbYT4+
Ml09NDE2MDtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGV2KGEpe2E9YXwwO2NbYT4+Ml09NDE2
MDtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGV3KGEpe2E9YXwwO2NbYT4+Ml09NDE2MDtpVyhh
KzR8MCk7ayQoYSs4fDAsMCwyNCk7cmV0dXJufWZ1bmN0aW9uIGV4KGIsZCxlKXtiPWJ8MDtkPWR8
MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MDtpZihlPj4+MD4xMDczNzQxODIyKXtkWCgw
KX1pZihlPj4+MDwyKXthW2JdPWU8PDEmMjU1O2Y9Yis0fDA7Zz1rbihmLGQsZSl8MDtoPWYrKGU8
PDIpfDA7Y1toPj4yXT0wO3JldHVybn1lbHNle2k9ZSs0Ji00O2o9a08oaTw8Mil8MDtjW2IrOD4+
Ml09ajtjW2I+PjJdPWl8MTtjW2IrND4+Ml09ZTtmPWo7Zz1rbihmLGQsZSl8MDtoPWYrKGU8PDIp
fDA7Y1toPj4yXT0wO3JldHVybn19ZnVuY3Rpb24gZXkoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXww
O3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wO2lmKGQ+Pj4wPjEwNzM3NDE4MjIpe2RYKDApfWlmKGQ+
Pj4wPDIpe2FbYl09ZDw8MSYyNTU7Zj1iKzR8MDtnPWtwKGYsZSxkKXwwO2g9ZisoZDw8Mil8MDtj
W2g+PjJdPTA7cmV0dXJufWVsc2V7aT1kKzQmLTQ7aj1rTyhpPDwyKXwwO2NbYis4Pj4yXT1qO2Nb
Yj4+Ml09aXwxO2NbYis0Pj4yXT1kO2Y9ajtnPWtwKGYsZSxkKXwwO2g9ZisoZDw8Mil8MDtjW2g+
PjJdPTA7cmV0dXJufX1mdW5jdGlvbiBleihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9
MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aWYoZD4+PjA+MTA3Mzc0
MTgyMil7ZFgoMCl9ZT1iO2Y9YVtlXXwwO2lmKChmJjEpPT0wKXtnPTE7aD1mfWVsc2V7Zj1jW2I+
PjJdfDA7Zz0oZiYtMiktMXwwO2g9ZiYyNTV9Zj1oJjI1NTtpZigoZiYxfDApPT0wKXtpPWY+Pj4x
fWVsc2V7aT1jW2IrND4+Ml18MH1mPWk+Pj4wPmQ+Pj4wP2k6ZDtpZihmPj4+MDwyKXtqPTJ9ZWxz
ZXtqPWYrNCYtNH1mPWotMXwwO2lmKChmfDApPT0oZ3wwKSl7cmV0dXJufWlmKChmfDApPT0xKXtr
PWIrNHwwO2w9Y1tiKzg+PjJdfDA7bT0xO249MH1lbHNle2Q9ajw8MjtpZihmPj4+MD5nPj4+MCl7
bz1rTyhkKXwwfWVsc2V7bz1rTyhkKXwwfWQ9aCYxO2lmKGQ8PDI0Pj4yND09MCl7cD1iKzR8MH1l
bHNle3A9Y1tiKzg+PjJdfDB9az1vO2w9cDttPWQ8PDI0Pj4yNCE9MDtuPTF9ZD1rO2s9aCYyNTU7
aWYoKGsmMXwwKT09MCl7cT1rPj4+MX1lbHNle3E9Y1tiKzQ+PjJdfDB9a24oZCxsLHErMXwwKXww
O2lmKG0pe2tTKGwpfWlmKG4pe2NbYj4+Ml09anwxO2NbYis0Pj4yXT1pO2NbYis4Pj4yXT1kO3Jl
dHVybn1lbHNle2FbZV09aTw8MSYyNTU7cmV0dXJufX1mdW5jdGlvbiBlQShiLGQsZSxmLGcsaCxp
LGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO3ZhciBr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2lmKCgxMDczNzQxODIx
LWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09MCl7az1iKzR8MH1lbHNle2s9Y1ti
Kzg+PjJdfDB9ZG97aWYoZD4+PjA8NTM2ODcwODk1KXtsPWUrZHwwO209ZDw8MTtuPWw+Pj4wPG0+
Pj4wP206bDtpZihuPj4+MDwyKXtvPTI7YnJlYWt9bz1uKzQmLTR9ZWxzZXtvPTEwNzM3NDE4MjJ9
fXdoaWxlKDApO2U9a08obzw8Mil8MDtpZigoZ3wwKSE9MCl7a24oZSxrLGcpfDB9aWYoKGl8MCkh
PTApe249ZSsoZzw8Mil8MDtrbihuLGosaSl8MH1qPWYtaHwwO2lmKChqfDApIT0oZ3wwKSl7Zj1q
LWd8MDtuPWUrKGkrZzw8Mil8MDtsPWsrKGgrZzw8Mil8MDtrbihuLGwsZil8MH1pZigoZHwwKT09
MSl7cD1iKzh8MDtjW3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1iKzR8
MDtjW3Q+PjJdPXM7dT1lKyhzPDwyKXwwO2NbdT4+Ml09MDtyZXR1cm59a1Moayk7cD1iKzh8MDtj
W3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1iKzR8MDtjW3Q+PjJdPXM7
dT1lKyhzPDwyKXwwO2NbdT4+Ml09MDtyZXR1cm59ZnVuY3Rpb24gZUIoYixkLGUsZixnLGgsaSl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7dmFyIGo9MCxrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTA7aWYoKDEwNzM3NDE4MjEtZHwwKT4+PjA8ZT4+PjApe2RYKDAp
fWlmKChhW2JdJjEpPT0wKXtqPWIrNHwwfWVsc2V7aj1jW2IrOD4+Ml18MH1kb3tpZihkPj4+MDw1
MzY4NzA4OTUpe2s9ZStkfDA7bD1kPDwxO209az4+PjA8bD4+PjA/bDprO2lmKG0+Pj4wPDIpe249
MjticmVha31uPW0rNCYtNH1lbHNle249MTA3Mzc0MTgyMn19d2hpbGUoMCk7ZT1rTyhuPDwyKXww
O2lmKChnfDApIT0wKXtrbihlLGosZyl8MH1tPWYtaHwwO2lmKChtfDApIT0oZ3wwKSl7Zj1tLWd8
MDttPWUrKGkrZzw8Mil8MDtpPWorKGgrZzw8Mil8MDtrbihtLGksZil8MH1pZigoZHwwKT09MSl7
bz1iKzh8MDtjW28+PjJdPWU7cD1ufDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1rUyhqKTtvPWIr
OHwwO2Nbbz4+Ml09ZTtwPW58MTtxPWJ8MDtjW3E+PjJdPXA7cmV0dXJufWZ1bmN0aW9uIGVDKGIs
ZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2U9aTtpPWkrOHwwO2Y9ZXwwO2c9KGNbYisy
ND4+Ml18MCk9PTA7aWYoZyl7Y1tiKzE2Pj4yXT1kfDF9ZWxzZXtjW2IrMTY+PjJdPWR9aWYoKChn
JjF8ZCkmY1tiKzIwPj4yXXwwKT09MCl7aT1lO3JldHVybn1lPWJPKDE2KXwwO2Rve2lmKChhWzE2
MjcyXXwwKT09MCl7aWYoKGJjKDE2MjcyKXwwKT09MCl7YnJlYWt9ZGooMTE4NDApO2NbMjk2MF09
NGUzO2EkKDY2LDExODQwLHV8MCl8MH19d2hpbGUoMCk7Yj1rMygxMTg0MCwwLDMyKXwwO2Q9Sztj
W2Y+PjJdPWImMHwxO2NbZis0Pj4yXT1kfDA7ZE0oZSxmLDEzMDQpO2NbZT4+Ml09MzE4NDtibChl
fDAsODc1MiwyOCl9ZnVuY3Rpb24gZUQoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MDtjW2E+
PjJdPTMxNjA7Yj1jW2ErNDA+PjJdfDA7ZD1hKzMyfDA7ZT1hKzM2fDA7aWYoKGJ8MCkhPTApe2Y9
Yjtkb3tmPWYtMXwwO2IzW2NbKGNbZD4+Ml18MCkrKGY8PDIpPj4yXSY3XSgwLGEsY1soY1tlPj4y
XXwwKSsoZjw8Mik+PjJdfDApO313aGlsZSgoZnwwKSE9MCl9aU8oYSsyOHwwKTtrSyhjW2Q+PjJd
fDApO2tLKGNbZT4+Ml18MCk7a0soY1thKzQ4Pj4yXXwwKTtrSyhjW2ErNjA+PjJdfDApO3JldHVy
bn1mdW5jdGlvbiBlRShhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBlRihhKXthPWF8MDtyZXR1
cm4gMH1mdW5jdGlvbiBlRyhhKXthPWF8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGVIKGEsYil7YT1h
fDA7Yj1ifDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBlSShhLGIpe2E9YXwwO2I9YnwwO3JldHVybi0x
fDB9ZnVuY3Rpb24gZUooYSl7YT1hfDA7cmV0dXJuIDE0MTZ8MH1mdW5jdGlvbiBlSyhhLGIsZCxl
KXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtlPWk7Yj1kO2Q9aTtpPWkrMTZ8MDtjW2Q+PjJdPWNb
Yj4+Ml07Y1tkKzQ+PjJdPWNbYis0Pj4yXTtjW2QrOD4+Ml09Y1tiKzg+PjJdO2NbZCsxMj4+Ml09
Y1tiKzEyPj4yXTtiPWE7Y1tiPj4yXT0wO2NbYis0Pj4yXT0wO2I9YSs4fDA7Y1tiPj4yXT0tMTtj
W2IrND4+Ml09LTE7aT1lO3JldHVybn1mdW5jdGlvbiBlTChiLGMsZCxlLGYpe2I9YnwwO2M9Y3ww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtMMjQzNzpkb3tp
ZigoZXwwKT09KGZ8MCkpe2c9Y31lbHNle2I9YztoPWU7d2hpbGUoMSl7aWYoKGJ8MCk9PShkfDAp
KXtpPS0xO2o9MTk5MDticmVha31rPWFbYl18MDtsPWFbaF18MDtpZihrPDwyND4+MjQ8bDw8MjQ+
PjI0KXtpPS0xO2o9MTk5MzticmVha31pZihsPDwyND4+MjQ8azw8MjQ+PjI0KXtpPTE7aj0xOTky
O2JyZWFrfWs9YisxfDA7bD1oKzF8MDtpZigobHwwKT09KGZ8MCkpe2c9azticmVhayBMMjQzN31l
bHNle2I9aztoPWx9fWlmKChqfDApPT0xOTkzKXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9PTE5
OTIpe3JldHVybiBpfDB9ZWxzZSBpZigoanwwKT09MTk5MCl7cmV0dXJuIGl8MH19fXdoaWxlKDAp
O2k9KGd8MCkhPShkfDApfDA7cmV0dXJuIGl8MH1mdW5jdGlvbiBlTShiLGMsZCl7Yj1ifDA7Yz1j
fDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MDtpZigoY3wwKT09KGR8MCkpe2U9MDtyZXR1cm4g
ZXwwfWVsc2V7Zj1jO2c9MH13aGlsZSgxKXtjPShhW2ZdfDApKyhnPDw0KXwwO2I9YyYtMjY4NDM1
NDU2O2g9KGI+Pj4yNHxiKV5jO2M9ZisxfDA7aWYoKGN8MCk9PShkfDApKXtlPWg7YnJlYWt9ZWxz
ZXtmPWM7Zz1ofX1yZXR1cm4gZXwwfWZ1bmN0aW9uIGVOKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWE7aWYoKGR8MCk8PTApe2Y9
MDtyZXR1cm4gZnwwfWc9YSsxMnwwO2g9YSsxNnwwO2k9YjtiPTA7d2hpbGUoMSl7aj1jW2c+PjJd
fDA7aWYoaj4+PjA8KGNbaD4+Ml18MCk+Pj4wKXtjW2c+PjJdPWorNDtrPWNbaj4+Ml18MH1lbHNl
e2o9YjBbY1soY1tlPj4yXXwwKSs0MD4+Ml0mMTI3XShhKXwwO2lmKChqfDApPT0tMSl7Zj1iO2w9
MjAwNzticmVha31lbHNle2s9an19Y1tpPj4yXT1rO2o9YisxfDA7aWYoKGp8MCk8KGR8MCkpe2k9
aSs0fDA7Yj1qfWVsc2V7Zj1qO2w9MjAwODticmVha319aWYoKGx8MCk9PTIwMDgpe3JldHVybiBm
fDB9ZWxzZSBpZigobHwwKT09MjAwNyl7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBlTyhh
KXthPWF8MDt2YXIgYj0wLGQ9MDtpZigoYjBbY1soY1thPj4yXXwwKSszNj4+Ml0mMTI3XShhKXww
KT09LTEpe2I9LTE7cmV0dXJuIGJ8MH1kPWErMTJ8MDthPWNbZD4+Ml18MDtjW2Q+PjJdPWErNDti
PWNbYT4+Ml18MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGVQKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWE7aWYoKGR8MCk8PTApe2Y9
MDtyZXR1cm4gZnwwfWc9YSsyNHwwO2g9YSsyOHwwO2k9MDtqPWI7d2hpbGUoMSl7Yj1jW2c+PjJd
fDA7aWYoYj4+PjA8KGNbaD4+Ml18MCk+Pj4wKXtrPWNbaj4+Ml18MDtjW2c+PjJdPWIrNDtjW2I+
PjJdPWt9ZWxzZXtpZigoYl9bY1soY1tlPj4yXXwwKSs1Mj4+Ml0mMzFdKGEsY1tqPj4yXXwwKXww
KT09LTEpe2Y9aTtsPTIwMjM7YnJlYWt9fWs9aSsxfDA7aWYoKGt8MCk8KGR8MCkpe2k9aztqPWor
NHwwfWVsc2V7Zj1rO2w9MjAyMjticmVha319aWYoKGx8MCk9PTIwMjMpe3JldHVybiBmfDB9ZWxz
ZSBpZigobHwwKT09MjAyMil7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBlUShhKXthPWF8
MDtlRChhKzh8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVSKGEpe2E9YXwwO2VEKGErOHwwKTty
ZXR1cm59ZnVuY3Rpb24gZVMoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4yXXww
KS0xMj4+Ml18MDtlRChiKyhkKzgpfDApO2tTKGIrZHwwKTtyZXR1cm59ZnVuY3Rpb24gZVQoYSl7
YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJdfDApKzgpfDApO3JldHVybn1mdW5jdGlv
biBlVShhKXthPWF8MDtlRChhKzh8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVWKGEpe2E9YXww
O2VEKGErOHwwKTtyZXR1cm59ZnVuY3Rpb24gZVcoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9
Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhkKzgpfDApO2tTKGIrZHwwKTtyZXR1cm59ZnVu
Y3Rpb24gZVgoYSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJdfDApKzgpfDApO3Jl
dHVybn1mdW5jdGlvbiBlWShhKXthPWF8MDtlRChhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGVaKGEpe2E9YXwwO2VEKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZV8oYSl7YT1hfDA7dmFyIGI9
MCxkPTA7Yj1hO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhkKzQpfDApO2tTKGIrZHww
KTtyZXR1cm59ZnVuY3Rpb24gZSQoYSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJd
fDApKzQpfDApO3JldHVybn1mdW5jdGlvbiBlMChhKXthPWF8MDtlRChhKzR8MCk7a1MoYSk7cmV0
dXJufWZ1bmN0aW9uIGUxKGEpe2E9YXwwO2VEKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZTIoYSl7
YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhkKzQp
fDApO2tTKGIrZHwwKTtyZXR1cm59ZnVuY3Rpb24gZTMoYSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+
Ml18MCktMTI+PjJdfDApKzQpfDApO3JldHVybn1mdW5jdGlvbiBlNChhLGIsYyl7YT1hfDA7Yj1i
fDA7Yz1jfDA7aWYoKGN8MCk9PTEpe2RaKGEsMTY0MCwzNSk7cmV0dXJufWVsc2V7ZEsoYSxifDAs
Yyk7cmV0dXJufX1mdW5jdGlvbiBlNShhKXthPWF8MDtkZihhfDApO3JldHVybn1mdW5jdGlvbiBl
NihhKXthPWF8MDtkTyhhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlNyhhKXthPWF8MDtkTyhh
fDApO3JldHVybn1mdW5jdGlvbiBlOChhKXthPWF8MDtlRChhKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24gZTkoYSl7YT1hfDA7ZGYoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZmEoYSl7YT1hfDA7
ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZmIoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59
ZnVuY3Rpb24gZmMoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZmQoYixkLGUsZil7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTA7ZD1lO2c9Zi1k
fDA7ZG97aWYoKGd8MCk9PS0xKXtkWChiKTtoPTIwNTh9ZWxzZXtpZihnPj4+MD49MTEpe2g9MjA1
ODticmVha31hW2JdPWc8PDEmMjU1O2k9YisxfDB9fXdoaWxlKDApO2lmKChofDApPT0yMDU4KXto
PWcrMTYmLTE2O2o9a08oaCl8MDtjW2IrOD4+Ml09ajtjW2I+PjJdPWh8MTtjW2IrND4+Ml09Zztp
PWp9aWYoKGV8MCk9PShmfDApKXtrPWk7YVtrXT0wO3JldHVybn1qPWYrKC1kfDApfDA7ZD1pO2c9
ZTt3aGlsZSgxKXthW2RdPWFbZ118MDtlPWcrMXwwO2lmKChlfDApPT0oZnwwKSl7YnJlYWt9ZWxz
ZXtkPWQrMXwwO2c9ZX19az1pK2p8MDthW2tdPTA7cmV0dXJufWZ1bmN0aW9uIGZlKGEpe2E9YXww
O2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGZmKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJu
fWZ1bmN0aW9uIGZnKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTA7ZD1p
O2k9aSs4fDA7ZT1kfDA7Zj1iO2c9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtoPWI7aWYoKGNbaCso
ZysyNCk+PjJdfDApPT0wKXtpPWQ7cmV0dXJuIGJ8MH1qPWV8MDthW2pdPTA7Y1tlKzQ+PjJdPWI7
ZG97aWYoKGNbaCsoZysxNik+PjJdfDApPT0wKXtrPWNbaCsoZys3Mik+PjJdfDA7aWYoKGt8MCkh
PTApe2ZnKGspfDB9YVtqXT0xO2s9Y1toKygoY1soY1tmPj4yXXwwKS0xMj4+Ml18MCkrMjQpPj4y
XXwwO2lmKChiMFtjWyhjW2s+PjJdfDApKzI0Pj4yXSYxMjddKGspfDApIT0tMSl7YnJlYWt9az1j
WyhjW2Y+PjJdfDApLTEyPj4yXXwwO2VDKGgra3wwLGNbaCsoaysxNik+PjJdfDEpfX13aGlsZSgw
KTtmaShlKTtpPWQ7cmV0dXJuIGJ8MH1mdW5jdGlvbiBmaChiKXtiPWJ8MDt2YXIgZD0wLGU9MCxm
PTAsZz0wLGg9MCxqPTAsaz0wO2Q9aTtpPWkrOHwwO2U9ZHwwO2Y9YjtnPWNbKGNbZj4+Ml18MCkt
MTI+PjJdfDA7aD1iO2lmKChjW2grKGcrMjQpPj4yXXwwKT09MCl7aT1kO3JldHVybiBifDB9aj1l
fDA7YVtqXT0wO2NbZSs0Pj4yXT1iO2Rve2lmKChjW2grKGcrMTYpPj4yXXwwKT09MCl7az1jW2gr
KGcrNzIpPj4yXXwwO2lmKChrfDApIT0wKXtmaChrKXwwfWFbal09MTtrPWNbaCsoKGNbKGNbZj4+
Ml18MCktMTI+PjJdfDApKzI0KT4+Ml18MDtpZigoYjBbY1soY1trPj4yXXwwKSsyND4+Ml0mMTI3
XShrKXwwKSE9LTEpe2JyZWFrfWs9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtlQyhoK2t8MCxjW2gr
KGsrMTYpPj4yXXwxKX19d2hpbGUoMCk7ZmooZSk7aT1kO3JldHVybiBifDB9ZnVuY3Rpb24gZmko
YSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2I9YSs0fDA7YT1jW2I+PjJdfDA7ZD1jWyhjW2E+PjJd
fDApLTEyPj4yXXwwO2U9YTtpZigoY1tlKyhkKzI0KT4+Ml18MCk9PTApe3JldHVybn1pZigoY1tl
KyhkKzE2KT4+Ml18MCkhPTApe3JldHVybn1pZigoY1tlKyhkKzQpPj4yXSY4MTkyfDApPT0wKXty
ZXR1cm59aWYoYmgoKXwwKXtyZXR1cm59ZD1jW2I+PjJdfDA7ZT1jW2QrKChjWyhjW2Q+PjJdfDAp
LTEyPj4yXXwwKSsyNCk+PjJdfDA7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZSl8
MCkhPS0xKXtyZXR1cm59ZT1jW2I+PjJdfDA7Yj1jWyhjW2U+PjJdfDApLTEyPj4yXXwwO2Q9ZTtl
QyhkK2J8MCxjW2QrKGIrMTYpPj4yXXwxKTtyZXR1cm59ZnVuY3Rpb24gZmooYSl7YT1hfDA7dmFy
IGI9MCxkPTAsZT0wO2I9YSs0fDA7YT1jW2I+PjJdfDA7ZD1jWyhjW2E+PjJdfDApLTEyPj4yXXww
O2U9YTtpZigoY1tlKyhkKzI0KT4+Ml18MCk9PTApe3JldHVybn1pZigoY1tlKyhkKzE2KT4+Ml18
MCkhPTApe3JldHVybn1pZigoY1tlKyhkKzQpPj4yXSY4MTkyfDApPT0wKXtyZXR1cm59aWYoYmgo
KXwwKXtyZXR1cm59ZD1jW2I+PjJdfDA7ZT1jW2QrKChjWyhjW2Q+PjJdfDApLTEyPj4yXXwwKSsy
NCk+PjJdfDA7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZSl8MCkhPS0xKXtyZXR1
cm59ZT1jW2I+PjJdfDA7Yj1jWyhjW2U+PjJdfDApLTEyPj4yXXwwO2Q9ZTtlQyhkK2J8MCxjW2Qr
KGIrMTYpPj4yXXwxKTtyZXR1cm59ZnVuY3Rpb24gZmsoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7TDI1OTY6ZG97aWYo
KGV8MCk9PShmfDApKXtnPWJ9ZWxzZXthPWI7aD1lO3doaWxlKDEpe2lmKChhfDApPT0oZHwwKSl7
aT0tMTtqPTIxNDc7YnJlYWt9az1jW2E+PjJdfDA7bD1jW2g+PjJdfDA7aWYoKGt8MCk8KGx8MCkp
e2k9LTE7aj0yMTUwO2JyZWFrfWlmKChsfDApPChrfDApKXtpPTE7aj0yMTQ4O2JyZWFrfWs9YSs0
fDA7bD1oKzR8MDtpZigobHwwKT09KGZ8MCkpe2c9azticmVhayBMMjU5Nn1lbHNle2E9aztoPWx9
fWlmKChqfDApPT0yMTQ4KXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9PTIxNDcpe3JldHVybiBp
fDB9ZWxzZSBpZigoanwwKT09MjE1MCl7cmV0dXJuIGl8MH19fXdoaWxlKDApO2k9KGd8MCkhPShk
fDApfDA7cmV0dXJuIGl8MH1mdW5jdGlvbiBmbChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFy
IGU9MCxmPTAsZz0wLGg9MDtpZigoYnwwKT09KGR8MCkpe2U9MDtyZXR1cm4gZXwwfWVsc2V7Zj1i
O2c9MH13aGlsZSgxKXtiPShjW2Y+PjJdfDApKyhnPDw0KXwwO2E9YiYtMjY4NDM1NDU2O2g9KGE+
Pj4yNHxhKV5iO2I9Zis0fDA7aWYoKGJ8MCk9PShkfDApKXtlPWg7YnJlYWt9ZWxzZXtmPWI7Zz1o
fX1yZXR1cm4gZXwwfWZ1bmN0aW9uIGZtKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wO2Q9ZTtnPWYtZHwwO2g9Zz4+MjtpZihoPj4+MD4xMDcz
NzQxODIyKXtkWChiKX1pZihoPj4+MDwyKXthW2JdPWc+Pj4xJjI1NTtpPWIrNHwwfWVsc2V7Zz1o
KzQmLTQ7aj1rTyhnPDwyKXwwO2NbYis4Pj4yXT1qO2NbYj4+Ml09Z3wxO2NbYis0Pj4yXT1oO2k9
an1pZigoZXwwKT09KGZ8MCkpe2s9aTtjW2s+PjJdPTA7cmV0dXJufWo9KGYtNCsoLWR8MCl8MCk+
Pj4yO2Q9aTtoPWU7d2hpbGUoMSl7Y1tkPj4yXT1jW2g+PjJdO2U9aCs0fDA7aWYoKGV8MCk9PShm
fDApKXticmVha31lbHNle2Q9ZCs0fDA7aD1lfX1rPWkrKGorMTw8Mil8MDtjW2s+PjJdPTA7cmV0
dXJufWZ1bmN0aW9uIGZuKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGZv
KGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZwKGIsZCxlLGYsZyxoLGope2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2s9aTtp
PWkrMTEyfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209aysxNnwwO249
ayszMnwwO289ays0MHwwO3A9ays0OHwwO3E9ays1NnwwO3I9ays2NHwwO3M9ays3MnwwO3Q9ays4
MHwwO3U9aysxMDR8MDtpZigoY1tnKzQ+PjJdJjF8MCk9PTApe2Nbbj4+Ml09LTE7dj1jWyhjW2Q+
PjJdfDApKzE2Pj4yXXwwO3c9ZXwwO2NbcD4+Ml09Y1t3Pj4yXTtjW3E+PjJdPWNbZj4+Ml07Ylhb
diYxMjddKG8sZCxwLHEsZyxoLG4pO3E9Y1tvPj4yXXwwO2Nbdz4+Ml09cTtzd2l0Y2goY1tuPj4y
XXwwKXtjYXNlIDE6e2Fbal09MTticmVha307Y2FzZSAwOnthW2pdPTA7YnJlYWt9O2RlZmF1bHQ6
e2Fbal09MTtjW2g+PjJdPTR9fWNbYj4+Ml09cTtpPWs7cmV0dXJufWVqKHIsZyk7cT1yfDA7cj1j
W3E+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW20+PjJdPTE1Njk2O2NbbSs0Pj4yXT0xMjtj
W20rOD4+Ml09MDtkVygxNTY5NixtLDk2KX1tPShjWzM5MjVdfDApLTF8MDtuPWNbcis4Pj4yXXww
O2Rve2lmKChjW3IrMTI+PjJdfDApLW4+PjI+Pj4wPm0+Pj4wKXt3PWNbbisobTw8Mik+PjJdfDA7
aWYoKHd8MCk9PTApe2JyZWFrfW89dzt3PWNbcT4+Ml18MDtkeih3KXwwO2VqKHMsZyk7dz1zfDA7
cD1jW3c+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW2w+PjJdPTE1MzEyO2NbbCs0Pj4yXT0x
MjtjW2wrOD4+Ml09MDtkVygxNTMxMixsLDk2KX1kPShjWzM4MjldfDApLTF8MDt2PWNbcCs4Pj4y
XXwwO2Rve2lmKChjW3ArMTI+PjJdfDApLXY+PjI+Pj4wPmQ+Pj4wKXt4PWNbdisoZDw8Mik+PjJd
fDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDt6PWNbdz4+Ml18MDtkeih6KXwwO3o9dHwwO0E9eDti
WltjWyhjW0E+PjJdfDApKzI0Pj4yXSYxMjddKHoseSk7YlpbY1soY1tBPj4yXXwwKSsyOD4+Ml0m
MTI3XSh0KzEyfDAseSk7Y1t1Pj4yXT1jW2Y+PjJdO2Fbal09KGZxKGUsdSx6LHQrMjR8MCxvLGgs
MSl8MCk9PSh6fDApfDA7Y1tiPj4yXT1jW2U+PjJdO2RQKHQrMTJ8MCk7ZFAodHwwKTtpPWs7cmV0
dXJufX13aGlsZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7
az1iTyg0KXwwO2txKGspO2JsKGt8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZnEoYixlLGYsZyxoLGos
ayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxC
PTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9
MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wO2w9
aTtpPWkrMTA0fDA7bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4yXTtt
PShnLWZ8MCkvMTJ8MDtuPWx8MDtkb3tpZihtPj4+MD4xMDApe289a0oobSl8MDtpZigob3wwKSE9
MCl7cD1vO3E9bzticmVha31rWCgpO3A9MDtxPTB9ZWxzZXtwPW47cT0wfX13aGlsZSgwKTtuPShm
fDApPT0oZ3wwKTtpZihuKXtyPW07cz0wfWVsc2V7bz1tO209MDt0PXA7dT1mO3doaWxlKDEpe3Y9
ZFt1XXwwO2lmKCh2JjF8MCk9PTApe3c9dj4+PjF9ZWxzZXt3PWNbdSs0Pj4yXXwwfWlmKCh3fDAp
PT0wKXthW3RdPTI7eD1tKzF8MDt5PW8tMXwwfWVsc2V7YVt0XT0xO3g9bTt5PW99dj11KzEyfDA7
aWYoKHZ8MCk9PShnfDApKXtyPXk7cz14O2JyZWFrfWVsc2V7bz15O209eDt0PXQrMXwwO3U9dn19
fXU9YnwwO2I9ZXwwO2U9aDt0PTA7eD1zO3M9cjt3aGlsZSgxKXtyPWNbdT4+Ml18MDtkb3tpZigo
cnwwKT09MCl7ej0wfWVsc2V7aWYoKGNbcisxMj4+Ml18MCkhPShjW3IrMTY+PjJdfDApKXt6PXI7
YnJlYWt9aWYoKGIwW2NbKGNbcj4+Ml18MCkrMzY+PjJdJjEyN10ocil8MCk9PS0xKXtjW3U+PjJd
PTA7ej0wO2JyZWFrfWVsc2V7ej1jW3U+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtyPSh6fDApPT0w
O209Y1tiPj4yXXwwO2lmKChtfDApPT0wKXtBPXo7Qj0wfWVsc2V7ZG97aWYoKGNbbSsxMj4+Ml18
MCk9PShjW20rMTY+PjJdfDApKXtpZigoYjBbY1soY1ttPj4yXXwwKSszNj4+Ml0mMTI3XShtKXww
KSE9LTEpe0M9bTticmVha31jW2I+PjJdPTA7Qz0wfWVsc2V7Qz1tfX13aGlsZSgwKTtBPWNbdT4+
Ml18MDtCPUN9RD0oQnwwKT09MDtpZighKChyXkQpJihzfDApIT0wKSl7YnJlYWt9bT1jW0ErMTI+
PjJdfDA7aWYoKG18MCk9PShjW0ErMTY+PjJdfDApKXtFPShiMFtjWyhjW0E+PjJdfDApKzM2Pj4y
XSYxMjddKEEpfDApJjI1NX1lbHNle0U9YVttXXwwfWlmKGspe0Y9RX1lbHNle0Y9Yl9bY1soY1tl
Pj4yXXwwKSsxMj4+Ml0mMzFdKGgsRSl8MH1kb3tpZihuKXtHPXg7SD1zfWVsc2V7bT10KzF8MDtM
MjcwNzpkb3tpZihrKXt5PXM7bz14O3c9cDt2PTA7ST1mO3doaWxlKDEpe2Rve2lmKChhW3ddfDAp
PT0xKXtKPUk7aWYoKGFbSl0mMSk9PTApe0s9SSsxfDB9ZWxzZXtLPWNbSSs4Pj4yXXwwfWlmKEY8
PDI0Pj4yNCE9KGFbSyt0fDBdfDApKXthW3ddPTA7TD12O009bztOPXktMXwwO2JyZWFrfU89ZFtK
XXwwO2lmKChPJjF8MCk9PTApe1A9Tz4+PjF9ZWxzZXtQPWNbSSs0Pj4yXXwwfWlmKChQfDApIT0o
bXwwKSl7TD0xO009bztOPXk7YnJlYWt9YVt3XT0yO0w9MTtNPW8rMXwwO049eS0xfDB9ZWxzZXtM
PXY7TT1vO049eX19d2hpbGUoMCk7Tz1JKzEyfDA7aWYoKE98MCk9PShnfDApKXtRPU47Uj1NO1M9
TDticmVhayBMMjcwN315PU47bz1NO3c9dysxfDA7dj1MO0k9T319ZWxzZXtJPXM7dj14O3c9cDtv
PTA7eT1mO3doaWxlKDEpe2Rve2lmKChhW3ddfDApPT0xKXtPPXk7aWYoKGFbT10mMSk9PTApe1Q9
eSsxfDB9ZWxzZXtUPWNbeSs4Pj4yXXwwfWlmKEY8PDI0Pj4yNCE9KGJfW2NbKGNbZT4+Ml18MCkr
MTI+PjJdJjMxXShoLGFbVCt0fDBdfDApfDApPDwyND4+MjQpe2Fbd109MDtVPW87Vj12O1c9SS0x
fDA7YnJlYWt9Sj1kW09dfDA7aWYoKEomMXwwKT09MCl7WD1KPj4+MX1lbHNle1g9Y1t5KzQ+PjJd
fDB9aWYoKFh8MCkhPShtfDApKXtVPTE7Vj12O1c9STticmVha31hW3ddPTI7VT0xO1Y9disxfDA7
Vz1JLTF8MH1lbHNle1U9bztWPXY7Vz1JfX13aGlsZSgwKTtKPXkrMTJ8MDtpZigoSnwwKT09KGd8
MCkpe1E9VztSPVY7Uz1VO2JyZWFrIEwyNzA3fUk9Vzt2PVY7dz13KzF8MDtvPVU7eT1KfX19d2hp
bGUoMCk7aWYoIVMpe0c9UjtIPVE7YnJlYWt9bT1jW3U+PjJdfDA7eT1tKzEyfDA7bz1jW3k+PjJd
fDA7aWYoKG98MCk9PShjW20rMTY+PjJdfDApKXt3PWNbKGNbbT4+Ml18MCkrNDA+PjJdfDA7YjBb
dyYxMjddKG0pfDB9ZWxzZXtjW3k+PjJdPW8rMX1pZigoUitRfDApPj4+MDwyfG4pe0c9UjtIPVE7
YnJlYWt9bz10KzF8MDt5PVI7bT1wO3c9Zjt3aGlsZSgxKXtkb3tpZigoYVttXXwwKT09Mil7dj1k
W3ddfDA7aWYoKHYmMXwwKT09MCl7WT12Pj4+MX1lbHNle1k9Y1t3KzQ+PjJdfDB9aWYoKFl8MCk9
PShvfDApKXtaPXk7YnJlYWt9YVttXT0wO1o9eS0xfDB9ZWxzZXtaPXl9fXdoaWxlKDApO3Y9dysx
MnwwO2lmKCh2fDApPT0oZ3wwKSl7Rz1aO0g9UTticmVha31lbHNle3k9WjttPW0rMXwwO3c9dn19
fX13aGlsZSgwKTt0PXQrMXwwO3g9RztzPUh9ZG97aWYoKEF8MCk9PTApe189MH1lbHNle2lmKChj
W0ErMTI+PjJdfDApIT0oY1tBKzE2Pj4yXXwwKSl7Xz1BO2JyZWFrfWlmKChiMFtjWyhjW0E+PjJd
fDApKzM2Pj4yXSYxMjddKEEpfDApPT0tMSl7Y1t1Pj4yXT0wO189MDticmVha31lbHNle189Y1t1
Pj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7dT0oX3wwKT09MDtkb3tpZihEKXskPTIyOTN9ZWxzZXtp
ZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe2lmKHUpe2JyZWFrfWVsc2V7JD0yMjk1
O2JyZWFrfX1pZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKT09LTEpe2NbYj4+
Ml09MDskPTIyOTM7YnJlYWt9ZWxzZXtpZih1XihCfDApPT0wKXticmVha31lbHNleyQ9MjI5NTti
cmVha319fX13aGlsZSgwKTtpZigoJHwwKT09MjI5Myl7aWYodSl7JD0yMjk1fX1pZigoJHwwKT09
MjI5NSl7Y1tqPj4yXT1jW2o+PjJdfDJ9TDI3ODY6ZG97aWYobil7JD0yMzAwfWVsc2V7dT1mO0I9
cDt3aGlsZSgxKXtpZigoYVtCXXwwKT09Mil7YWE9dTticmVhayBMMjc4Nn1iPXUrMTJ8MDtpZigo
YnwwKT09KGd8MCkpeyQ9MjMwMDticmVhayBMMjc4Nn11PWI7Qj1CKzF8MH19fXdoaWxlKDApO2lm
KCgkfDApPT0yMzAwKXtjW2o+PjJdPWNbaj4+Ml18NDthYT1nfWlmKChxfDApPT0wKXtpPWw7cmV0
dXJuIGFhfDB9a0socSk7aT1sO3JldHVybiBhYXwwfWZ1bmN0aW9uIGZyKGIsZSxmLGcsaCxqLGsp
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAs
UT0wLFI9MCxTPTAsVD0wLFU9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1j
W2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA2NDp7dD04O2JyZWFrfTtjYXNl
IDg6e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtm
eChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9
aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9
dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6
PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMjgwOTp3aGlsZSgxKXtkb3tpZigod3ww
KT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3crMTY+PjJdfDApKXtCPXc7YnJl
YWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MCkhPS0xKXtCPXc7YnJlYWt9
Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNbZj4+Ml18MDtkb3tpZigoRHww
KT09MCl7RT0yMzI3fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShjW0QrMTY+PjJdfDApKXtpZihD
KXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsgTDI4MDl9fWlmKChiMFtjWyhj
W0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4yXT0wO0U9MjMyNzticmVha31l
bHNle0s9KER8MCk9PTA7aWYoQ15LKXtGPUQ7Rz1LO2JyZWFrfWVsc2V7SD1sO0k9RDtKPUs7YnJl
YWsgTDI4MDl9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTIzMjcpe0U9MDtpZihDKXtIPWw7ST0wO0o9
MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0s9KEQmMXwwKT09MDtpZigoKGNbcD4+Ml18
MCktbHwwKT09KChLP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEspe0w9RD4+PjE7TT1EPj4+MX1l
bHNle0Q9Y1t6Pj4yXXwwO0w9RDtNPUR9ZFIobixMPDwxLDApO2lmKChhW29dJjEpPT0wKXtOPTEw
fWVsc2V7Tj0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTiwwKTtpZigoYVtvXSYxKT09MCl7Tz14fWVs
c2V7Tz1jW3k+PjJdfDB9Y1twPj4yXT1PK007UD1PfWVsc2V7UD1sfUQ9QisxMnwwO0s9Y1tEPj4y
XXwwO1E9QisxNnwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7Uj0oYjBbY1soY1tCPj4yXXwwKSsz
Nj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtSPWFbS118MH1pZigoZnMoUix0LFAscCxzLEEsbSx2
LHIsdSl8MCkhPTApe0g9UDtJPUY7Sj1HO2JyZWFrfUs9Y1tEPj4yXXwwO2lmKChLfDApPT0oY1tR
Pj4yXXwwKSl7UT1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1EmMTI3XShCKXwwO2w9UDt3PUI7
Y29udGludWV9ZWxzZXtjW0Q+PjJdPUsrMTtsPVA7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigo
dyYxfDApPT0wKXtTPXc+Pj4xfWVsc2V7Uz1jW20rND4+Ml18MH1kb3tpZigoU3wwKSE9MCl7dz1j
W3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31QPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtj
W3c+PjJdPVB9fXdoaWxlKDApO2Nbaz4+Ml09ZnUoSCxjW3A+PjJdfDAsaix0KXwwO2Z0KG0sdixj
W3I+PjJdfDAsaik7ZG97aWYoQyl7VD0wfWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+
PjJdfDApKXtUPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkh
PS0xKXtUPUI7YnJlYWt9Y1toPj4yXT0wO1Q9MH19d2hpbGUoMCk7aD0oVHwwKT09MDtMMjg2OTpk
b3tpZihKKXtFPTIzNjh9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkp
e2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4y
XT0wO0U9MjM2ODticmVhayBMMjg2OX19d2hpbGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9
VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChF
fDApPT0yMzY4KXtpZihoKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3Jl
dHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQ
KG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZnMoYixlLGYsZyxoLGksaixrLGwsbSl7Yj1ifDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49
MCxvPTAscD0wLHE9MCxyPTAscz0wO249Y1tnPj4yXXwwO289KG58MCk9PShmfDApO2Rve2lmKG8p
e3A9KGFbbSsyNHwwXXwwKT09Yjw8MjQ+PjI0O2lmKCFwKXtpZigoYVttKzI1fDBdfDApIT1iPDwy
ND4+MjQpe2JyZWFrfX1jW2c+PjJdPWYrMTthW2ZdPXA/NDM6NDU7Y1toPj4yXT0wO3E9MDtyZXR1
cm4gcXwwfX13aGlsZSgwKTtwPWRbal18MDtpZigocCYxfDApPT0wKXtyPXA+Pj4xfWVsc2V7cj1j
W2orND4+Ml18MH1pZigocnwwKSE9MCZiPDwyND4+MjQ9PWk8PDI0Pj4yNCl7aT1jW2w+PjJdfDA7
aWYoKGkta3wwKT49MTYwKXtxPTA7cmV0dXJuIHF8MH1rPWNbaD4+Ml18MDtjW2w+PjJdPWkrNDtj
W2k+PjJdPWs7Y1toPj4yXT0wO3E9MDtyZXR1cm4gcXwwfWs9bSsyNnwwO2k9bTt3aGlsZSgxKXtp
ZigoaXwwKT09KGt8MCkpe3M9azticmVha31pZigoYVtpXXwwKT09Yjw8MjQ+PjI0KXtzPWk7YnJl
YWt9ZWxzZXtpPWkrMXwwfX1pPXMtbXwwO2lmKChpfDApPjIzKXtxPS0xO3JldHVybiBxfDB9TDI5
MDg6ZG97c3dpdGNoKGV8MCl7Y2FzZSA4OmNhc2UgMTA6e2lmKChpfDApPChlfDApKXticmVhayBM
MjkwOH1lbHNle3E9LTF9cmV0dXJuIHF8MH07Y2FzZSAxNjp7aWYoKGl8MCk8MjIpe2JyZWFrIEwy
OTA4fWlmKG8pe3E9LTE7cmV0dXJuIHF8MH1pZigobi1mfDApPj0zKXtxPS0xO3JldHVybiBxfDB9
aWYoKGFbbi0xfDBdfDApIT00OCl7cT0tMTtyZXR1cm4gcXwwfWNbaD4+Ml09MDttPWFbOTc0NCtp
fDBdfDA7cz1jW2c+PjJdfDA7Y1tnPj4yXT1zKzE7YVtzXT1tO3E9MDtyZXR1cm4gcXwwfTtkZWZh
dWx0Ont9fX13aGlsZSgwKTtmPWFbOTc0NCtpfDBdfDA7Y1tnPj4yXT1uKzE7YVtuXT1mO2NbaD4+
Ml09KGNbaD4+Ml18MCkrMTtxPTA7cmV0dXJuIHF8MH1mdW5jdGlvbiBmdChiLGQsZSxmKXtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7Zz1iO2g9YjtpPWFbaF18MDtqPWkmMjU1O2lmKChq
JjF8MCk9PTApe2s9aj4+PjF9ZWxzZXtrPWNbYis0Pj4yXXwwfWlmKChrfDApPT0wKXtyZXR1cm59
ZG97aWYoKGR8MCk9PShlfDApKXtsPWl9ZWxzZXtrPWUtNHwwO2lmKGs+Pj4wPmQ+Pj4wKXttPWQ7
bj1rfWVsc2V7bD1pO2JyZWFrfWRve2s9Y1ttPj4yXXwwO2NbbT4+Ml09Y1tuPj4yXTtjW24+PjJd
PWs7bT1tKzR8MDtuPW4tNHwwO313aGlsZShtPj4+MDxuPj4+MCk7bD1hW2hdfDB9fXdoaWxlKDAp
O2lmKChsJjEpPT0wKXtvPWcrMXwwfWVsc2V7bz1jW2IrOD4+Ml18MH1nPWwmMjU1O2lmKChnJjF8
MCk9PTApe3A9Zz4+PjF9ZWxzZXtwPWNbYis0Pj4yXXwwfWI9ZS00fDA7ZT1hW29dfDA7Zz1lPDwy
ND4+MjQ7bD1lPDwyND4+MjQ8MXxlPDwyND4+MjQ9PTEyNztMMjk0Nzpkb3tpZihiPj4+MD5kPj4+
MCl7ZT1vK3B8MDtoPW87bj1kO209ZztpPWw7d2hpbGUoMSl7aWYoIWkpe2lmKChtfDApIT0oY1tu
Pj4yXXwwKSl7YnJlYWt9fWs9KGUtaHwwKT4xP2grMXwwOmg7aj1uKzR8MDtxPWFba118MDtyPXE8
PDI0Pj4yNDtzPXE8PDI0Pj4yNDwxfHE8PDI0Pj4yND09MTI3O2lmKGo+Pj4wPGI+Pj4wKXtoPWs7
bj1qO209cjtpPXN9ZWxzZXt0PXI7dT1zO2JyZWFrIEwyOTQ3fX1jW2Y+PjJdPTQ7cmV0dXJufWVs
c2V7dD1nO3U9bH19d2hpbGUoMCk7aWYodSl7cmV0dXJufXU9Y1tiPj4yXXwwO2lmKCEodD4+PjA8
dT4+PjB8KHV8MCk9PTApKXtyZXR1cm59Y1tmPj4yXT00O3JldHVybn1mdW5jdGlvbiBmdShiLGQs
ZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MDtnPWk7
aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBq
fDB9az1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDAp
PT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13
aGlsZSgwKTtsPWJJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDApPj4y
XXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7
Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1kPS0xO2g9MDtpZigoYnwwKT09MzR8KChmfDAp
PChkfDApfChmfDApPT0oZHwwKSZsPj4+MDwtMjE0NzQ4MzY0OD4+PjApfCgoZnwwKT4oaHwwKXwo
ZnwwKT09KGh8MCkmbD4+PjA+MjE0NzQ4MzY0Nz4+PjApKXtjW2U+PjJdPTQ7ZT0wO2o9KGZ8MCk+
KGV8MCl8KGZ8MCk9PShlfDApJmw+Pj4wPjA+Pj4wPzIxNDc0ODM2NDc6LTIxNDc0ODM2NDg7aT1n
O3JldHVybiBqfDB9ZWxzZXtqPWw7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZnYo
YixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7
dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0wLE49
MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9
MTY7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2RlZmF1bHQ6
e3Q9MTB9fXU9ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigo
YVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4y
XXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9Znww
O2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wyOTk3OndoaWxl
KDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+
Ml18MCkpe0I9dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9
LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4y
XXwwO2Rve2lmKChEfDApPT0wKXtFPTI0NzZ9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsx
Nj4+Ml18MCkpe2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMjk5
N319aWYoKGIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7
RT0yNDc2O2JyZWFrfWVsc2V7TD0oRHwwKT09MDtpZihDXkwpe0Y9RDtHPUw7YnJlYWt9ZWxzZXtI
PWw7ST1EO0o9TDticmVhayBMMjk5N319fX13aGlsZSgwKTtpZigoRXwwKT09MjQ3Nil7RT0wO2lm
KEMpe0g9bDtJPTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7TD0oRCYxfDApPT0w
O2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEw/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoTCl7TT1E
Pj4+MTtOPUQ+Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TT1EO049RH1kUihuLE08PDEsMCk7aWYoKGFb
b10mMSk9PTApe089MTB9ZWxzZXtPPShjW2c+PjJdJi0yKS0xfDB9ZFIobixPLDApO2lmKChhW29d
JjEpPT0wKXtQPXh9ZWxzZXtQPWNbeT4+Ml18MH1jW3A+PjJdPVArTjtRPVB9ZWxzZXtRPWx9RD1C
KzEyfDA7TD1jW0Q+PjJdfDA7Uj1CKzE2fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtTPShiMFtj
WyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1M9YVtMXXwwfWlmKChmcyhT
LHQsUSxwLHMsQSxtLHYscix1KXwwKSE9MCl7SD1RO0k9RjtKPUc7YnJlYWt9TD1jW0Q+PjJdfDA7
aWYoKEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUiYxMjdd
KEIpfDA7bD1RO3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09TCsxO2w9UTt3PUI7Y29udGludWV9
fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Q9dz4+PjF9ZWxzZXtUPWNbbSs0Pj4yXXwwfWRve2lm
KChUfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVE9Y1tzPj4yXXww
O2Nbcj4+Ml09dys0O2Nbdz4+Ml09UX19d2hpbGUoMCk7cz1mdyhILGNbcD4+Ml18MCxqLHQpfDA7
Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VT0wfWVs
c2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtVPUI7YnJlYWt9aWYoKGIwW2Nb
KGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtVPUI7YnJlYWt9Y1toPj4yXT0wO1U9
MH19d2hpbGUoMCk7aD0oVXwwKT09MDtMMzA1Nzpkb3tpZihKKXtFPTI1MTd9ZWxzZXtkb3tpZigo
Y1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4y
XSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjUxNzticmVhayBMMzA1N319d2hp
bGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0p
O2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChFfDApPT0yNTE3KXtpZihoKXticmVha31WPWJ8
MDtjW1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+
PjJdfDI7Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZnco
YixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAs
bT0wO2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtrPTA7
aT1nO3JldHVybihLPWosayl8MH1sPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtk
b3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09
YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO209YkkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXwwO2Y9
SztiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWx9aWYoKGNb
aD4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0wO2s9MDtpPWc7cmV0dXJuKEs9aixrKXwwfWlm
KChifDApIT0zNCl7aj1mO2s9bTtpPWc7cmV0dXJuKEs9aixrKXwwfWNbZT4+Ml09NDtlPTA7Yj0o
ZnwwKT4oZXwwKXwoZnwwKT09KGV8MCkmbT4+PjA+MD4+PjA7aj1iPzIxNDc0ODM2NDc6LTIxNDc0
ODM2NDg7az1iPy0xOjA7aT1nO3JldHVybihLPWosayl8MH1mdW5jdGlvbiBmeChiLGQsZSxmKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wO2c9aTtpPWkrNDB8MDtoPWd8MDtqPWcrMTZ8MDtrPWcrMzJ8MDtlaihrLGQpO2Q9
a3wwO2s9Y1tkPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tqPj4yXT0xNTY5NjtjW2orND4+
Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTU2OTYsaiw5Nil9aj0oY1szOTI1XXwwKS0xfDA7bD1jW2sr
OD4+Ml18MDtkb3tpZigoY1trKzEyPj4yXXwwKS1sPj4yPj4+MD5qPj4+MCl7bT1jW2wrKGo8PDIp
Pj4yXXwwO2lmKChtfDApPT0wKXticmVha31uPW07bz1jWyhjW20+PjJdfDApKzMyPj4yXXwwO2Nh
W28mMTVdKG4sOTc0NCw5NzcwLGUpfDA7bj1jW2Q+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtj
W2g+PjJdPTE1MzEyO2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTMxMixoLDk2KX1vPShj
WzM4MjldfDApLTF8MDttPWNbbis4Pj4yXXwwO2Rve2lmKChjW24rMTI+PjJdfDApLW0+PjI+Pj4w
Pm8+Pj4wKXtwPWNbbSsobzw8Mik+PjJdfDA7aWYoKHB8MCk9PTApe2JyZWFrfXE9cDthW2ZdPWIw
W2NbKGNbcD4+Ml18MCkrMTY+PjJdJjEyN10ocSl8MDtiWltjWyhjW3A+PjJdfDApKzIwPj4yXSYx
MjddKGIscSk7cT1jW2Q+PjJdfDA7ZHoocSl8MDtpPWc7cmV0dXJufX13aGlsZSgwKTtvPWJPKDQp
fDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7Zz1iTyg0KXwwO2txKGcpO2JsKGd8
MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZnkoZSxmLGcsaCxqLGssbCl7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0w
O2Y9aTtpPWkrNzJ8MDttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+PjJd
O209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+Ml07bT1mKzMyfDA7bj1m
KzQwfDA7bz1mKzU2fDA7cD1vO3E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3I9aTtpPWkrMTYwfDA7
cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNb
ais0Pj4yXSY3NHwwKXtjYXNlIDA6e3U9MDticmVha307Y2FzZSA4Ont1PTE2O2JyZWFrfTtjYXNl
IDY0Ont1PTg7YnJlYWt9O2RlZmF1bHQ6e3U9MTB9fXY9ZnwwO2Z4KG4saix2LG0pO2skKHB8MCww
LDEyKTtqPW87ZFIobywxMCwwKTtpZigoYVtwXSYxKT09MCl7dz1qKzF8MDt4PXc7eT13O3o9bys4
fDB9ZWxzZXt3PW8rOHwwO3g9Y1t3Pj4yXXwwO3k9aisxfDA7ej13fWNbcT4+Ml09eDt3PXJ8MDtj
W3M+PjJdPXc7Y1t0Pj4yXT0wO2o9Z3wwO2c9aHwwO2g9b3wwO0E9bys0fDA7Qj1hW21dfDA7bT14
O3g9Y1tqPj4yXXwwO0wzMTIyOndoaWxlKDEpe2Rve2lmKCh4fDApPT0wKXtDPTB9ZWxzZXtpZigo
Y1t4KzEyPj4yXXwwKSE9KGNbeCsxNj4+Ml18MCkpe0M9eDticmVha31pZigoYjBbY1soY1t4Pj4y
XXwwKSszNj4+Ml0mMTI3XSh4KXwwKSE9LTEpe0M9eDticmVha31jW2o+PjJdPTA7Qz0wfX13aGls
ZSgwKTtEPShDfDApPT0wO0U9Y1tnPj4yXXwwO2Rve2lmKChFfDApPT0wKXtGPTI1Nzl9ZWxzZXtp
ZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe2lmKEQpe0c9RTtIPTA7YnJlYWt9ZWxz
ZXtJPW07Sj1FO0s9MDticmVhayBMMzEyMn19aWYoKGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEy
N10oRSl8MCk9PS0xKXtjW2c+PjJdPTA7Rj0yNTc5O2JyZWFrfWVsc2V7TD0oRXwwKT09MDtpZihE
Xkwpe0c9RTtIPUw7YnJlYWt9ZWxzZXtJPW07Sj1FO0s9TDticmVhayBMMzEyMn19fX13aGlsZSgw
KTtpZigoRnwwKT09MjU3OSl7Rj0wO2lmKEQpe0k9bTtKPTA7Sz0xO2JyZWFrfWVsc2V7Rz0wO0g9
MX19RT1kW3BdfDA7TD0oRSYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1tfDApPT0oKEw/RT4+PjE6
Y1tBPj4yXXwwKXwwKSl7aWYoTCl7TT1FPj4+MTtOPUU+Pj4xfWVsc2V7RT1jW0E+PjJdfDA7TT1F
O049RX1kUihvLE08PDEsMCk7aWYoKGFbcF0mMSk9PTApe089MTB9ZWxzZXtPPShjW2g+PjJdJi0y
KS0xfDB9ZFIobyxPLDApO2lmKChhW3BdJjEpPT0wKXtQPXl9ZWxzZXtQPWNbej4+Ml18MH1jW3E+
PjJdPVArTjtRPVB9ZWxzZXtRPW19RT1DKzEyfDA7TD1jW0U+PjJdfDA7Uj1DKzE2fDA7aWYoKEx8
MCk9PShjW1I+PjJdfDApKXtTPShiMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDApJjI1
NX1lbHNle1M9YVtMXXwwfWlmKChmcyhTLHUsUSxxLHQsQixuLHcscyx2KXwwKSE9MCl7ST1RO0o9
RztLPUg7YnJlYWt9TD1jW0U+PjJdfDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNbQz4+
Ml18MCkrNDA+PjJdfDA7YjBbUiYxMjddKEMpfDA7bT1RO3g9Qztjb250aW51ZX1lbHNle2NbRT4+
Ml09TCsxO209UTt4PUM7Y29udGludWV9fXg9ZFtuXXwwO2lmKCh4JjF8MCk9PTApe1Q9eD4+PjF9
ZWxzZXtUPWNbbis0Pj4yXXwwfWRve2lmKChUfDApIT0wKXt4PWNbcz4+Ml18MDtpZigoeC1yfDAp
Pj0xNjApe2JyZWFrfVE9Y1t0Pj4yXXwwO2Nbcz4+Ml09eCs0O2NbeD4+Ml09UX19d2hpbGUoMCk7
YltsPj4xXT1meihJLGNbcT4+Ml18MCxrLHUpfDA7ZnQobix3LGNbcz4+Ml18MCxrKTtkb3tpZihE
KXtVPTB9ZWxzZXtpZigoY1tDKzEyPj4yXXwwKSE9KGNbQysxNj4+Ml18MCkpe1U9QzticmVha31p
ZigoYjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwKSE9LTEpe1U9QzticmVha31jW2o+
PjJdPTA7VT0wfX13aGlsZSgwKTtqPShVfDApPT0wO0wzMTgyOmRve2lmKEspe0Y9MjYyMH1lbHNl
e2Rve2lmKChjW0orMTI+PjJdfDApPT0oY1tKKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbSj4+Ml18
MCkrMzY+PjJdJjEyN10oSil8MCkhPS0xKXticmVha31jW2c+PjJdPTA7Rj0yNjIwO2JyZWFrIEwz
MTgyfX13aGlsZSgwKTtpZighKGpeKEp8MCk9PTApKXticmVha31WPWV8MDtjW1Y+PjJdPVU7ZFAo
byk7ZFAobik7aT1mO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTI2MjApe2lmKGope2Jy
ZWFrfVY9ZXwwO2NbVj4+Ml09VTtkUChvKTtkUChuKTtpPWY7cmV0dXJufX13aGlsZSgwKTtjW2s+
PjJdPWNbaz4+Ml18MjtWPWV8MDtjW1Y+PjJdPVU7ZFAobyk7ZFAobik7aT1mO3JldHVybn1mdW5j
dGlvbiBmeihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAs
az0wLGw9MDtnPWk7aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7
aT1nO3JldHVybiBqfDB9aWYoKGFbYl18MCk9PTQ1KXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4g
anwwfWs9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXww
KT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19
d2hpbGUoMCk7bD1hSShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9Y1soYncoKXwwKT4+
Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09a31pZigoY1toPj4yXXwwKSE9KGR8MCkp
e2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9ZD0wO2lmKChifDApPT0zNHwoZj4+PjA+ZD4+
PjB8Zj4+PjA9PWQ+Pj4wJmw+Pj4wPjY1NTM1Pj4+MCkpe2NbZT4+Ml09NDtqPS0xO2k9ZztyZXR1
cm4ganwwfWVsc2V7aj1sJjY1NTM1O2k9ZztyZXR1cm4ganwwfXJldHVybiAwfWZ1bmN0aW9uIGZB
KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3ww
O3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxN
PTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtwPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA2NDp7
dD04O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA4Ont0PTE2O2JyZWFrfTtkZWZhdWx0
Ont0PTEwfX11PWV8MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYo
KGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+
Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8
MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMzIzMjp3aGls
ZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3crMTY+
PjJdfDApKXtCPXc7YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MCkh
PS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNbZj4+
Ml18MDtkb3tpZigoRHwwKT09MCl7RT0yNjY5fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShjW0Qr
MTY+PjJdfDApKXtpZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsgTDMy
MzJ9fWlmKChiMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4yXT0w
O0U9MjY2OTticmVha31lbHNle0s9KER8MCk9PTA7aWYoQ15LKXtGPUQ7Rz1LO2JyZWFrfWVsc2V7
SD1sO0k9RDtKPUs7YnJlYWsgTDMyMzJ9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTI2Njkpe0U9MDtp
ZihDKXtIPWw7ST0wO0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0s9KEQmMXwwKT09
MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChLP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEspe0w9
RD4+PjE7TT1EPj4+MX1lbHNle0Q9Y1t6Pj4yXXwwO0w9RDtNPUR9ZFIobixMPDwxLDApO2lmKChh
W29dJjEpPT0wKXtOPTEwfWVsc2V7Tj0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTiwwKTtpZigoYVtv
XSYxKT09MCl7Tz14fWVsc2V7Tz1jW3k+PjJdfDB9Y1twPj4yXT1PK007UD1PfWVsc2V7UD1sfUQ9
QisxMnwwO0s9Y1tEPj4yXXwwO1E9QisxNnwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7Uj0oYjBb
Y1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtSPWFbS118MH1pZigoZnMo
Uix0LFAscCxzLEEsbSx2LHIsdSl8MCkhPTApe0g9UDtJPUY7Sj1HO2JyZWFrfUs9Y1tEPj4yXXww
O2lmKChLfDApPT0oY1tRPj4yXXwwKSl7UT1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1EmMTI3
XShCKXwwO2w9UDt3PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUsrMTtsPVA7dz1CO2NvbnRpbnVl
fX13PWRbbV18MDtpZigodyYxfDApPT0wKXtTPXc+Pj4xfWVsc2V7Uz1jW20rND4+Ml18MH1kb3tp
ZigoU3wwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31QPWNbcz4+Ml18
MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVB9fXdoaWxlKDApO2Nbaz4+Ml09ZkIoSCxjW3A+PjJdfDAs
aix0KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VD0wfWVsc2V7aWYoKGNbQisxMj4+
Ml18MCkhPShjW0IrMTY+PjJdfDApKXtUPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+
PjJdJjEyN10oQil8MCkhPS0xKXtUPUI7YnJlYWt9Y1toPj4yXT0wO1Q9MH19d2hpbGUoMCk7aD0o
VHwwKT09MDtMMzI5Mjpkb3tpZihKKXtFPTI3MTB9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXwwKT09
KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDApIT0t
MSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjcxMDticmVhayBMMzI5Mn19d2hpbGUoMCk7aWYoIShoXihJ
fDApPT0wKSl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdo
aWxlKDApO2Rve2lmKChFfDApPT0yNzEwKXtpZihoKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAo
bik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7VT1ifDA7Y1tV
Pj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkIoYixkLGUsZil7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTA7Zz1pO2k9aSs4fDA7aD1n
fDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWlmKChhW2Jd
fDApPT00NSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1rPWNbKGJ3KCl8MCk+PjJdfDA7
Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9
PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9YUkoYnwwLGh8MCxm
fDAsY1syOTU4XXwwKXwwO2Y9SztiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3
KCl8MCk+PjJdPWt9aWYoKGNbaD4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1
cm4ganwwfWQ9MDtpZigoYnwwKT09MzR8KGY+Pj4wPmQ+Pj4wfGY+Pj4wPT1kPj4+MCZsPj4+MD4t
MT4+PjApKXtjW2U+PjJdPTQ7aj0tMTtpPWc7cmV0dXJuIGp8MH1lbHNle2o9bDtpPWc7cmV0dXJu
IGp8MH1yZXR1cm4gMH1mdW5jdGlvbiBmQyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAs
Rz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxV
PTA7ZT1pO2k9aSs3MnwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+
Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMzJ8MDtt
PWUrNDB8MDtuPWUrNTZ8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8
MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2go
Y1toKzQ+PjJdJjc0fDApe2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Nh
c2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZngobSxoLHUsbCk7ayQob3ww
LDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1u
Kzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXww
O2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWFbbF18MDts
PXc7dz1jW2g+PjJdfDA7TDMzNDI6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle2lm
KChjW3crMTI+PjJdfDApIT0oY1t3KzE2Pj4yXXwwKSl7Qj13O2JyZWFrfWlmKChiMFtjWyhjW3c+
PjJdfDApKzM2Pj4yXSYxMjddKHcpfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdo
aWxlKDApO0M9KEJ8MCk9PTA7RD1jW2Y+PjJdfDA7ZG97aWYoKER8MCk9PTApe0U9Mjc1OX1lbHNl
e2lmKChjW0QrMTI+PjJdfDApIT0oY1tEKzE2Pj4yXXwwKSl7aWYoQyl7Rj1EO0c9MDticmVha31l
bHNle0g9bDtJPUQ7Sj0wO2JyZWFrIEwzMzQyfX1pZigoYjBbY1soY1tEPj4yXXwwKSszNj4+Ml0m
MTI3XShEKXwwKT09LTEpe2NbZj4+Ml09MDtFPTI3NTk7YnJlYWt9ZWxzZXtLPShEfDApPT0wO2lm
KENeSyl7Rj1EO0c9SzticmVha31lbHNle0g9bDtJPUQ7Sj1LO2JyZWFrIEwzMzQyfX19fXdoaWxl
KDApO2lmKChFfDApPT0yNzU5KXtFPTA7aWYoQyl7SD1sO0k9MDtKPTE7YnJlYWt9ZWxzZXtGPTA7
Rz0xfX1EPWRbb118MDtLPShEJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoSz9EPj4+
MTpjW3o+PjJdfDApfDApKXtpZihLKXtMPUQ+Pj4xO009RD4+PjF9ZWxzZXtEPWNbej4+Ml18MDtM
PUQ7TT1EfWRSKG4sTDw8MSwwKTtpZigoYVtvXSYxKT09MCl7Tj0xMH1lbHNle049KGNbZz4+Ml0m
LTIpLTF8MH1kUihuLE4sMCk7aWYoKGFbb10mMSk9PTApe089eH1lbHNle089Y1t5Pj4yXXwwfWNb
cD4+Ml09TytNO1A9T31lbHNle1A9bH1EPUIrMTJ8MDtLPWNbRD4+Ml18MDtRPUIrMTZ8MDtpZigo
S3wwKT09KGNbUT4+Ml18MCkpe1I9KGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkm
MjU1fWVsc2V7Uj1hW0tdfDB9aWYoKGZzKFIsdCxQLHAscyxBLG0sdixyLHUpfDApIT0wKXtIPVA7
ST1GO0o9RzticmVha31LPWNbRD4+Ml18MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1E9Y1soY1tC
Pj4yXXwwKSs0MD4+Ml18MDtiMFtRJjEyN10oQil8MDtsPVA7dz1CO2NvbnRpbnVlfWVsc2V7Y1tE
Pj4yXT1LKzE7bD1QO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Uz13Pj4+
MX1lbHNle1M9Y1ttKzQ+PjJdfDB9ZG97aWYoKFN8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8
MCk+PTE2MCl7YnJlYWt9UD1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1QfX13aGlsZSgw
KTtjW2s+PjJdPWZEKEgsY1twPj4yXXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lm
KEMpe1Q9MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VD1CO2JyZWFr
fWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VD1CO2JyZWFrfWNb
aD4+Ml09MDtUPTB9fXdoaWxlKDApO2g9KFR8MCk9PTA7TDM0MDI6ZG97aWYoSil7RT0yODAwfWVs
c2V7ZG97aWYoKGNbSSsxMj4+Ml18MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJPj4y
XXwwKSszNj4+Ml0mMTI3XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI4MDA7YnJlYWsg
TDM0MDJ9fXdoaWxlKDApO2lmKCEoaF4oSXwwKT09MCkpe2JyZWFrfVU9YnwwO2NbVT4+Ml09VDtk
UChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRXwwKT09MjgwMCl7aWYoaCl7
YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nb
aj4+Ml09Y1tqPj4yXXwyO1U9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1
bmN0aW9uIGZEKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9
MCxrPTAsbD0wO2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9
MDtpPWc7cmV0dXJuIGp8MH1pZigoYVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVy
biBqfDB9az1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRd
fDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXww
fX13aGlsZSgwKTtsPWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDAp
Pj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0oZHww
KSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1kPTA7aWYoKGJ8MCk9PTM0fChmPj4+MD5k
Pj4+MHxmPj4+MD09ZD4+PjAmbD4+PjA+LTE+Pj4wKSl7Y1tlPj4yXT00O2o9LTE7aT1nO3JldHVy
biBqfDB9ZWxzZXtqPWw7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZkUoYixlLGYs
ZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0w
LEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0wLE49MCxPPTAs
UD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2c+PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7YnJl
YWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9
fXU9ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYx
KT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9
aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3ww
O2c9bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wzNDUyOndoaWxlKDEpe2Rv
e2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+Ml18MCkp
e0I9dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9LTEpe0I9
dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4yXXwwO2Rv
e2lmKChEfDApPT0wKXtFPTI4NDl9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsxNj4+Ml18
MCkpe2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMzQ1Mn19aWYo
KGIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7RT0yODQ5
O2JyZWFrfWVsc2V7TD0oRHwwKT09MDtpZihDXkwpe0Y9RDtHPUw7YnJlYWt9ZWxzZXtIPWw7ST1E
O0o9TDticmVhayBMMzQ1Mn19fX13aGlsZSgwKTtpZigoRXwwKT09Mjg0OSl7RT0wO2lmKEMpe0g9
bDtJPTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7TD0oRCYxfDApPT0wO2lmKCgo
Y1twPj4yXXwwKS1sfDApPT0oKEw/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoTCl7TT1EPj4+MTtO
PUQ+Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TT1EO049RH1kUihuLE08PDEsMCk7aWYoKGFbb10mMSk9
PTApe089MTB9ZWxzZXtPPShjW2c+PjJdJi0yKS0xfDB9ZFIobixPLDApO2lmKChhW29dJjEpPT0w
KXtQPXh9ZWxzZXtQPWNbeT4+Ml18MH1jW3A+PjJdPVArTjtRPVB9ZWxzZXtRPWx9RD1CKzEyfDA7
TD1jW0Q+PjJdfDA7Uj1CKzE2fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtTPShiMFtjWyhjW0I+
PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1M9YVtMXXwwfWlmKChmcyhTLHQsUSxw
LHMsQSxtLHYscix1KXwwKSE9MCl7SD1RO0k9RjtKPUc7YnJlYWt9TD1jW0Q+PjJdfDA7aWYoKEx8
MCk9PShjW1I+PjJdfDApKXtSPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUiYxMjddKEIpfDA7
bD1RO3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09TCsxO2w9UTt3PUI7Y29udGludWV9fXc9ZFtt
XXwwO2lmKCh3JjF8MCk9PTApe1Q9dz4+PjF9ZWxzZXtUPWNbbSs0Pj4yXXwwfWRve2lmKChUfDAp
IT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVE9Y1tzPj4yXXwwO2Nbcj4+
Ml09dys0O2Nbdz4+Ml09UX19d2hpbGUoMCk7cz1mRihILGNbcD4+Ml18MCxqLHQpfDA7Y1trPj4y
XT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VT0wfWVsc2V7aWYo
KGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtVPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+
Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtVPUI7YnJlYWt9Y1toPj4yXT0wO1U9MH19d2hp
bGUoMCk7aD0oVXwwKT09MDtMMzUxMjpkb3tpZihKKXtFPTI4OTB9ZWxzZXtkb3tpZigoY1tJKzEy
Pj4yXXwwKT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjdd
KEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9Mjg5MDticmVhayBMMzUxMn19d2hpbGUoMCk7
aWYoIShoXihJfDApPT0wKSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTty
ZXR1cm59fXdoaWxlKDApO2Rve2lmKChFfDApPT0yODkwKXtpZihoKXticmVha31WPWJ8MDtjW1Y+
PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7
Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkYoYixkLGUs
Zil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTA7Zz1pO2k9aSs4fDA7aD1nfDA7ZG97aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0w
O2s9MH1lbHNle2lmKChhW2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtrPTA7YnJlYWt9bD1jWyhi
dygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigo
YmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtt
PWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtuPUs7bz1jWyhidygpfDApPj4yXXwwO2lmKChv
fDApPT0wKXtjWyhidygpfDApPj4yXT1sfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00
O2o9MDtrPTA7YnJlYWt9aWYoKG98MCkhPTM0KXtqPW47az1tO2JyZWFrfWNbZT4+Ml09NDtqPS0x
O2s9LTF9fXdoaWxlKDApO2k9ZztyZXR1cm4oSz1qLGspfDB9ZnVuY3Rpb24gZkcoYixlLGYsZyxo
LGksaixrLGwsbSxuLG8pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anww
O2s9a3wwO2w9bHwwO209bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9MCxzPTAsdD0wO2lm
KGI8PDI0Pj4yND09aTw8MjQ+PjI0KXtpZigoYVtlXSYxKT09MCl7cD0tMTtyZXR1cm4gcHwwfWFb
ZV09MDtpPWNbaD4+Ml18MDtjW2g+PjJdPWkrMTthW2ldPTQ2O2k9ZFtrXXwwO2lmKChpJjF8MCk9
PTApe3E9aT4+PjF9ZWxzZXtxPWNbays0Pj4yXXwwfWlmKChxfDApPT0wKXtwPTA7cmV0dXJuIHB8
MH1xPWNbbT4+Ml18MDtpZigocS1sfDApPj0xNjApe3A9MDtyZXR1cm4gcHwwfWk9Y1tuPj4yXXww
O2NbbT4+Ml09cSs0O2NbcT4+Ml09aTtwPTA7cmV0dXJuIHB8MH1kb3tpZihiPDwyND4+MjQ9PWo8
PDI0Pj4yNCl7aT1kW2tdfDA7aWYoKGkmMXwwKT09MCl7cj1pPj4+MX1lbHNle3I9Y1trKzQ+PjJd
fDB9aWYoKHJ8MCk9PTApe2JyZWFrfWlmKChhW2VdJjEpPT0wKXtwPS0xO3JldHVybiBwfDB9aT1j
W20+PjJdfDA7aWYoKGktbHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8MH1xPWNbbj4+Ml18MDtjW20+
PjJdPWkrNDtjW2k+PjJdPXE7Y1tuPj4yXT0wO3A9MDtyZXR1cm4gcHwwfX13aGlsZSgwKTtyPW8r
MzJ8MDtqPW87d2hpbGUoMSl7aWYoKGp8MCk9PShyfDApKXtzPXI7YnJlYWt9aWYoKGFbal18MCk9
PWI8PDI0Pj4yNCl7cz1qO2JyZWFrfWVsc2V7aj1qKzF8MH19aj1zLW98MDtpZigoanwwKT4zMSl7
cD0tMTtyZXR1cm4gcHwwfW89YVs5NzQ0K2p8MF18MDtzd2l0Y2goanwwKXtjYXNlIDI1OmNhc2Ug
MjQ6e3M9Y1toPj4yXXwwO2Rve2lmKChzfDApIT0oZ3wwKSl7aWYoKGFbcy0xfDBdJjk1fDApPT0o
YVtmXSYxMjd8MCkpe2JyZWFrfWVsc2V7cD0tMX1yZXR1cm4gcHwwfX13aGlsZSgwKTtjW2g+PjJd
PXMrMTthW3NdPW87cD0wO3JldHVybiBwfDB9O2Nhc2UgMjI6Y2FzZSAyMzp7YVtmXT04MDtzPWNb
aD4+Ml18MDtjW2g+PjJdPXMrMTthW3NdPW87cD0wO3JldHVybiBwfDB9O2RlZmF1bHQ6e3M9YVtm
XXwwO2Rve2lmKChvJjk1fDApPT0oczw8MjQ+PjI0fDApKXthW2ZdPXN8LTEyODtpZigoYVtlXSYx
KT09MCl7YnJlYWt9YVtlXT0wO2c9ZFtrXXwwO2lmKChnJjF8MCk9PTApe3Q9Zz4+PjF9ZWxzZXt0
PWNbays0Pj4yXXwwfWlmKCh0fDApPT0wKXticmVha31nPWNbbT4+Ml18MDtpZigoZy1sfDApPj0x
NjApe2JyZWFrfWI9Y1tuPj4yXXwwO2NbbT4+Ml09Zys0O2NbZz4+Ml09Yn19d2hpbGUoMCk7bT1j
W2g+PjJdfDA7Y1toPj4yXT1tKzE7YVttXT1vO2lmKChqfDApPjIxKXtwPTA7cmV0dXJuIHB8MH1j
W24+PjJdPShjW24+PjJdfDApKzE7cD0wO3JldHVybiBwfDB9fXJldHVybiAwfWZ1bmN0aW9uIGZI
KGIsZSxmLGgsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHww
O3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxO
PTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrODB8MDtt
PWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209aDtoPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+Ml07bT1lKzMyfDA7bj1lKzQwfDA7bz1lKzQ4fDA7
cD1lKzY0fDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1p
Kzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZkoobyxqLHgsbSxuKTtrJChx
fDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtC
PXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1z
fDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWh8MDtoPXB8MDtD
PXArNHwwO0Q9YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+Ml18MDtMMzYxNTp3aGlsZSgxKXtk
b3tpZigoenwwKT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJdfDAp
KXtFPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0xKXtF
PXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXwwKT09MDtHPWNbZj4+Ml18MDtk
b3tpZigoR3wwKT09MCl7SD0yOTc4fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJd
fDApKXtpZihGKXtJPUc7Sj0wO2JyZWFrfWVsc2V7Sz1uO0w9RztNPTA7YnJlYWsgTDM2MTV9fWlm
KChiMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1tmPj4yXT0wO0g9Mjk3
ODticmVha31lbHNle049KEd8MCk9PTA7aWYoRl5OKXtJPUc7Sj1OO2JyZWFrfWVsc2V7Sz1uO0w9
RztNPU47YnJlYWsgTDM2MTV9fX19d2hpbGUoMCk7aWYoKEh8MCk9PTI5Nzgpe0g9MDtpZihGKXtL
PW47TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtpZigo
KGNbcj4+Ml18MCktbnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+PjE7
UD1HPj4+MX1lbHNle0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3FdJjEp
PT0wKXtRPTEwfWVsc2V7UT0oY1toPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYxKT09
MCl7Uj1BfWVsc2V7Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsxMnww
O049Y1tHPj4yXXwwO1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1soY1tF
Pj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2LHcs
UyxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+Ml18MDtp
ZigoTnwwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10o
RSl8MDtuPVM7ej1FO2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51ZX19
ej1kW29dfDA7aWYoKHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97aWYo
KFZ8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0x
NjApe2JyZWFrfVM9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7Z1ts
Pj4yXT0rZkkoSyxjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtXPTB9
ZWxzZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31pZigoYjBb
Y1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJdPTA7
Vz0wfX13aGlsZSgwKTtqPShXfDApPT0wO0wzNjc2OmRve2lmKE0pe0g9MzAyMH1lbHNle2Rve2lm
KChjW0wrMTI+PjJdfDApPT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkrMzY+
PjJdJjEyN10oTCl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7SD0zMDIwO2JyZWFrIEwzNjc2fX13
aGlsZSgwKTtpZighKGpeKEx8MCk9PTApKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAo
byk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEh8MCk9PTMwMjApe2lmKGope2JyZWFrfVg9
YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNb
az4+Ml18MjtYPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBm
SShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4wO2Y9
aTtpPWkrOHwwO2c9ZnwwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9ZjtyZXR1
cm4raH1qPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18
MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9
fXdoaWxlKDApO2s9K2tXKGIsZyxjWzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnww
KT09MCl7Y1soYncoKXwwKT4+Ml09an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDto
PTAuMDtpPWY7cmV0dXJuK2h9aWYoKGJ8MCk9PTM0KXtjW2U+PjJdPTR9aD1rO2k9ZjtyZXR1cm4r
aH1mdW5jdGlvbiBmSihiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3Zh
ciBoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2g9aTtpPWkrNDB8
MDtqPWh8MDtrPWgrMTZ8MDtsPWgrMzJ8MDtlaihsLGQpO2Q9bHwwO2w9Y1tkPj4yXXwwO2lmKChj
WzM5MjRdfDApIT0tMSl7Y1trPj4yXT0xNTY5NjtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFco
MTU2OTYsayw5Nil9az0oY1szOTI1XXwwKS0xfDA7bT1jW2wrOD4+Ml18MDtkb3tpZigoY1tsKzEy
Pj4yXXwwKS1tPj4yPj4+MD5rPj4+MCl7bj1jW20rKGs8PDIpPj4yXXwwO2lmKChufDApPT0wKXti
cmVha31vPW47cD1jWyhjW24+PjJdfDApKzMyPj4yXXwwO2NhW3AmMTVdKG8sOTc0NCw5Nzc2LGUp
fDA7bz1jW2Q+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW2o+PjJdPTE1MzEyO2Nbais0Pj4y
XT0xMjtjW2orOD4+Ml09MDtkVygxNTMxMixqLDk2KX1wPShjWzM4MjldfDApLTF8MDtuPWNbbys4
Pj4yXXwwO2Rve2lmKChjW28rMTI+PjJdfDApLW4+PjI+Pj4wPnA+Pj4wKXtxPWNbbisocDw8Mik+
PjJdfDA7aWYoKHF8MCk9PTApe2JyZWFrfXI9cTtzPXE7YVtmXT1iMFtjWyhjW3M+PjJdfDApKzEy
Pj4yXSYxMjddKHIpfDA7YVtnXT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjddKHIpfDA7Ylpb
Y1soY1txPj4yXXwwKSsyMD4+Ml0mMTI3XShiLHIpO3I9Y1tkPj4yXXwwO2R6KHIpfDA7aT1oO3Jl
dHVybn19d2hpbGUoMCk7cD1iTyg0KXwwO2txKHApO2JsKHB8MCw4MTc2LDEzNCl9fXdoaWxlKDAp
O2g9Yk8oNCl8MDtrcShoKTtibChofDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZLKGIsZSxmLGcsaixr
LGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrODB8MDttPWY7Zj1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2c+PjJdPWNbbT4+Ml07bT1lKzMyfDA7bj1lKzQwfDA7bz1lKzQ4fDA7cD1lKzY0fDA7cT1w
O3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1p
O2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZkoobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1w
O2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7
eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15
O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9YVtt
XXwwO209YVtuXXwwO249ejt6PWNbaj4+Ml18MDtMMzczNzp3aGlsZSgxKXtkb3tpZigoenwwKT09
MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJdfDApKXtFPXo7YnJlYWt9
aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0xKXtFPXo7YnJlYWt9Y1tq
Pj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXwwKT09MDtHPWNbZj4+Ml18MDtkb3tpZigoR3wwKT09
MCl7SD0zMDc5fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtpZihGKXtJ
PUc7Sj0wO2JyZWFrfWVsc2V7Sz1uO0w9RztNPTA7YnJlYWsgTDM3Mzd9fWlmKChiMFtjWyhjW0c+
PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1tmPj4yXT0wO0g9MzA3OTticmVha31lbHNl
e049KEd8MCk9PTA7aWYoRl5OKXtJPUc7Sj1OO2JyZWFrfWVsc2V7Sz1uO0w9RztNPU47YnJlYWsg
TDM3Mzd9fX19d2hpbGUoMCk7aWYoKEh8MCk9PTMwNzkpe0g9MDtpZihGKXtLPW47TD0wO009MTti
cmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtpZigoKGNbcj4+Ml18MCkt
bnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+PjE7UD1HPj4+MX1lbHNl
e0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3FdJjEpPT0wKXtRPTEwfWVs
c2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYxKT09MCl7Uj1BfWVsc2V7
Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsxMnwwO049Y1tHPj4yXXww
O1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1soY1tFPj4yXXwwKSszNj4+
Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2LHcsUyxyLEQsbSxvLHks
dCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+Ml18MDtpZigoTnwwKT09KGNb
VD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10oRSl8MDtuPVM7ej1F
O2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYo
KHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97aWYoKFZ8MCkhPTApe2lm
KChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVM9
Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7aFtsPj4zXT0rZkwoSyxj
W3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtXPTB9ZWxzZXtpZigoY1tF
KzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31pZigoYjBbY1soY1tFPj4yXXww
KSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJdPTA7Vz0wfX13aGlsZSgw
KTtqPShXfDApPT0wO0wzNzk4OmRve2lmKE0pe0g9MzEyMX1lbHNle2Rve2lmKChjW0wrMTI+PjJd
fDApPT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8
MCkhPS0xKXticmVha31jW2Y+PjJdPTA7SD0zMTIxO2JyZWFrIEwzNzk4fX13aGlsZSgwKTtpZigh
KGpeKEx8MCk9PTApKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVy
bn19d2hpbGUoMCk7ZG97aWYoKEh8MCk9PTMxMjEpe2lmKGope2JyZWFrfVg9YnwwO2NbWD4+Ml09
VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjtYPWJ8
MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmTChiLGQsZSl7Yj1i
fDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4wO2Y9aTtpPWkrOHwwO2c9
ZnwwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9ZjtyZXR1cm4raH1qPWNbKGJ3
KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChi
YygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2s9
K2tXKGIsZyxjWzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYnco
KXwwKT4+Ml09an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7cmV0
dXJuK2h9aWYoKGJ8MCkhPTM0KXtoPWs7aT1mO3JldHVybitofWNbZT4+Ml09NDtoPWs7aT1mO3Jl
dHVybitofWZ1bmN0aW9uIGZNKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0w
LEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAs
WD0wO2U9aTtpPWkrODB8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+
PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzMyfDA7
bj1lKzQwfDA7bz1lKzQ4fDA7cD1lKzY0fDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9
aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7
ZkoobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTAp
e3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXww
O0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtq
PWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+Ml18
MDtMNjp3aGlsZSgxKXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkh
PShjW3orMTY+PjJdfDApKXtFPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEy
N10oeil8MCkhPS0xKXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXwwKT09
MDtHPWNbZj4+Ml18MDtkb3tpZigoR3wwKT09MCl7SD0xN31lbHNle2lmKChjW0crMTI+PjJdfDAp
IT0oY1tHKzE2Pj4yXXwwKSl7aWYoRil7ST1HO0o9MDticmVha31lbHNle0s9bjtMPUc7TT0wO2Jy
ZWFrIEw2fX1pZigoYjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2NbZj4+
Ml09MDtIPTE3O2JyZWFrfWVsc2V7Tj0oR3wwKT09MDtpZihGXk4pe0k9RztKPU47YnJlYWt9ZWxz
ZXtLPW47TD1HO009TjticmVhayBMNn19fX13aGlsZSgwKTtpZigoSHwwKT09MTcpe0g9MDtpZihG
KXtLPW47TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtp
ZigoKGNbcj4+Ml18MCktbnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+
PjE7UD1HPj4+MX1lbHNle0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3Fd
JjEpPT0wKXtRPTEwfWVsc2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYx
KT09MCl7Uj1BfWVsc2V7Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsx
MnwwO049Y1tHPj4yXXwwO1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1so
Y1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2
LHcsUyxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+Ml18
MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEy
N10oRSl8MDtuPVM7ej1FO2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51
ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97
aWYoKFZ8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDAp
Pj0xNjApe2JyZWFrfVM9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7
aFtsPj4zXT0rZk4oSyxjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtX
PTB9ZWxzZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31pZigo
YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJd
PTA7Vz0wfX13aGlsZSgwKTtqPShXfDApPT0wO0w2Nzpkb3tpZihNKXtIPTU5fWVsc2V7ZG97aWYo
KGNbTCsxMj4+Ml18MCk9PShjW0wrMTY+PjJdfDApKXtpZigoYjBbY1soY1tMPj4yXXwwKSszNj4+
Ml0mMTI3XShMKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtIPTU5O2JyZWFrIEw2N319d2hpbGUo
MCk7aWYoIShqXihMfDApPT0wKSl7YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChIfDApPT01OSl7aWYoail7YnJlYWt9WD1ifDA7Y1tY
Pj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwy
O1g9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZOKGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAuMCxqPTAsaz0wLjA7Zj1pO2k9aSs4
fDA7Zz1mfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVybitofWo9
Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7
aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUo
MCk7az0ra1coYixnLGNbMjk1OF18MCk7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0wKXtj
WyhidygpfDApPj4yXT1qfWlmKChjW2c+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9
ZjtyZXR1cm4raH1pZigoYnwwKSE9MzQpe2g9aztpPWY7cmV0dXJuK2h9Y1tlPj4yXT00O2g9aztp
PWY7cmV0dXJuK2h9ZnVuY3Rpb24gZk8oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVu
Y3Rpb24gZlAoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZlEoYixlLGYsZyxoLGos
ayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxC
PTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9
MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MDtlPWk7aT1pKzY0fDA7bD1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tn
Pj4yXT1jW2w+PjJdO2w9ZXwwO209ZSsxNnwwO249ZSs0OHwwO289aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3A9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztyPWk7
aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2skKG58MCwwLDEyKTt1PXA7ZWoobyxoKTtoPW98MDtvPWNbaD4+Ml18MDtpZigoY1szOTI0XXww
KSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGws
OTYpfWw9KGNbMzkyNV18MCktMXwwO3Y9Y1tvKzg+PjJdfDA7ZG97aWYoKGNbbysxMj4+Ml18MCkt
dj4+Mj4+PjA+bD4+PjApe3c9Y1t2KyhsPDwyKT4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9eD13
O3k9bXwwO3o9Y1soY1t3Pj4yXXwwKSszMj4+Ml18MDtjYVt6JjE1XSh4LDk3NDQsOTc3MCx5KXww
O3g9Y1toPj4yXXwwO2R6KHgpfDA7ayQodXwwLDAsMTIpO3g9cDtkUihwLDEwLDApO2lmKChhW3Vd
JjEpPT0wKXt6PXgrMXwwO0E9ejtCPXo7Qz1wKzh8MH1lbHNle3o9cCs4fDA7QT1jW3o+PjJdfDA7
Qj14KzF8MDtDPXp9Y1txPj4yXT1BO3o9cnwwO2Nbcz4+Ml09ejtjW3Q+PjJdPTA7eD1mfDA7dz1n
fDA7RD1wfDA7RT1wKzR8MDtGPUE7Rz1jW3g+PjJdfDA7TDExNzp3aGlsZSgxKXtkb3tpZigoR3ww
KT09MCl7SD0wfWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtIPUc7YnJl
YWt9aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCkhPS0xKXtIPUc7YnJlYWt9
Y1t4Pj4yXT0wO0g9MH19d2hpbGUoMCk7ST0oSHwwKT09MDtKPWNbdz4+Ml18MDtkb3tpZigoSnww
KT09MCl7Sz0xMTB9ZWxzZXtpZigoY1tKKzEyPj4yXXwwKSE9KGNbSisxNj4+Ml18MCkpe2lmKEkp
e2JyZWFrfWVsc2V7TD1GO2JyZWFrIEwxMTd9fWlmKChiMFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYx
MjddKEopfDApPT0tMSl7Y1t3Pj4yXT0wO0s9MTEwO2JyZWFrfWVsc2V7aWYoSV4oSnwwKT09MCl7
YnJlYWt9ZWxzZXtMPUY7YnJlYWsgTDExN319fX13aGlsZSgwKTtpZigoS3wwKT09MTEwKXtLPTA7
aWYoSSl7TD1GO2JyZWFrfX1KPWRbdV18MDtNPShKJjF8MCk9PTA7aWYoKChjW3E+PjJdfDApLUZ8
MCk9PSgoTT9KPj4+MTpjW0U+PjJdfDApfDApKXtpZihNKXtOPUo+Pj4xO089Sj4+PjF9ZWxzZXtK
PWNbRT4+Ml18MDtOPUo7Tz1KfWRSKHAsTjw8MSwwKTtpZigoYVt1XSYxKT09MCl7UD0xMH1lbHNl
e1A9KGNbRD4+Ml0mLTIpLTF8MH1kUihwLFAsMCk7aWYoKGFbdV0mMSk9PTApe1E9Qn1lbHNle1E9
Y1tDPj4yXXwwfWNbcT4+Ml09UStPO1I9UX1lbHNle1I9Rn1KPUgrMTJ8MDtNPWNbSj4+Ml18MDtT
PUgrMTZ8MDtpZigoTXwwKT09KGNbUz4+Ml18MCkpe1Q9KGIwW2NbKGNbSD4+Ml18MCkrMzY+PjJd
JjEyN10oSCl8MCkmMjU1fWVsc2V7VD1hW01dfDB9aWYoKGZzKFQsMTYsUixxLHQsMCxuLHoscyx5
KXwwKSE9MCl7TD1SO2JyZWFrfU09Y1tKPj4yXXwwO2lmKChNfDApPT0oY1tTPj4yXXwwKSl7Uz1j
WyhjW0g+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShIKXwwO0Y9UjtHPUg7Y29udGludWV9ZWxz
ZXtjW0o+PjJdPU0rMTtGPVI7Rz1IO2NvbnRpbnVlfX1hW0wrM3wwXT0wO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7Rz1mUihMLGNbMjk1OF18MCwxMzIwLChGPWksaT1pKzh8MCxjW0Y+PjJdPWss
Ril8MCl8MDtpPUY7aWYoKEd8MCkhPTEpe2Nbaj4+Ml09NH1HPWNbeD4+Ml18MDtkb3tpZigoR3ww
KT09MCl7VT0wfWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtVPUc7YnJl
YWt9aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCkhPS0xKXtVPUc7YnJlYWt9
Y1t4Pj4yXT0wO1U9MH19d2hpbGUoMCk7eD0oVXwwKT09MDtHPWNbdz4+Ml18MDtkb3tpZigoR3ww
KT09MCl7Sz0xNTV9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe2lmKCF4
KXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1lO3JldHVybn1pZigoYjBbY1so
Y1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2Nbdz4+Ml09MDtLPTE1NTticmVha31p
ZighKHheKEd8MCk9PTApKXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1lO3Jl
dHVybn19d2hpbGUoMCk7ZG97aWYoKEt8MCk9PTE1NSl7aWYoeCl7YnJlYWt9Vj1ifDA7Y1tWPj4y
XT1VO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1Y9
YnwwO2NbVj4+Ml09VTtkUChwKTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7
a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmUihhLGIsZCxlKXthPWF8MDtiPWJ8MDtk
PWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7Zj1pO2k9aSsxNnwwO2c9ZnwwO2g9ZztjW2g+PjJd
PWU7Y1toKzQ+PjJdPTA7aD1iQihifDApfDA7Yj1hWShhfDAsZHwwLGd8MCl8MDtpZigoaHwwKT09
MCl7aT1mO3JldHVybiBifDB9YkIoaHwwKXwwO2k9ZjtyZXR1cm4gYnwwfWZ1bmN0aW9uIGZTKGIs
ZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3Zh
ciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAs
Tj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwk
PTAsYWE9MCxhYj0wLGFjPTAsYWQ9MDtsPWk7aT1pKzEwNHwwO209ZTtlPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07bT0oZy1mfDApLzEyfDA7bj1sfDA7ZG97aWYobT4+PjA+
MTAwKXtvPWtKKG0pfDA7aWYoKG98MCkhPTApe3A9bztxPW87YnJlYWt9a1goKTtwPTA7cT0wfWVs
c2V7cD1uO3E9MH19d2hpbGUoMCk7bj0oZnwwKT09KGd8MCk7aWYobil7cj1tO3M9MH1lbHNle289
bTttPTA7dD1wO3U9Zjt3aGlsZSgxKXt2PWRbdV18MDtpZigodiYxfDApPT0wKXt3PXY+Pj4xfWVs
c2V7dz1jW3UrND4+Ml18MH1pZigod3wwKT09MCl7YVt0XT0yO3g9bSsxfDA7eT1vLTF8MH1lbHNl
e2FbdF09MTt4PW07eT1vfXY9dSsxMnwwO2lmKCh2fDApPT0oZ3wwKSl7cj15O3M9eDticmVha31l
bHNle289eTttPXg7dD10KzF8MDt1PXZ9fX11PWJ8MDtiPWV8MDtlPWg7dD0wO3g9cztzPXI7d2hp
bGUoMSl7cj1jW3U+PjJdfDA7ZG97aWYoKHJ8MCk9PTApe3o9MH1lbHNle209Y1tyKzEyPj4yXXww
O2lmKChtfDApPT0oY1tyKzE2Pj4yXXwwKSl7QT1iMFtjWyhjW3I+PjJdfDApKzM2Pj4yXSYxMjdd
KHIpfDB9ZWxzZXtBPWNbbT4+Ml18MH1pZigoQXwwKT09LTEpe2NbdT4+Ml09MDt6PTA7YnJlYWt9
ZWxzZXt6PWNbdT4+Ml18MDticmVha319fXdoaWxlKDApO3I9KHp8MCk9PTA7bT1jW2I+PjJdfDA7
aWYoKG18MCk9PTApe0I9ejtDPTB9ZWxzZXt5PWNbbSsxMj4+Ml18MDtpZigoeXwwKT09KGNbbSsx
Nj4+Ml18MCkpe0Q9YjBbY1soY1ttPj4yXXwwKSszNj4+Ml0mMTI3XShtKXwwfWVsc2V7RD1jW3k+
PjJdfDB9aWYoKER8MCk9PS0xKXtjW2I+PjJdPTA7RT0wfWVsc2V7RT1tfUI9Y1t1Pj4yXXwwO0M9
RX1GPShDfDApPT0wO2lmKCEoKHJeRikmKHN8MCkhPTApKXticmVha31yPWNbQisxMj4+Ml18MDtp
ZigocnwwKT09KGNbQisxNj4+Ml18MCkpe0c9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShC
KXwwfWVsc2V7Rz1jW3I+PjJdfDB9aWYoayl7SD1HfWVsc2V7SD1iX1tjWyhjW2U+PjJdfDApKzI4
Pj4yXSYzMV0oaCxHKXwwfWRve2lmKG4pe0k9eDtKPXN9ZWxzZXtyPXQrMXwwO0wyNDk6ZG97aWYo
ayl7bT1zO3k9eDtvPXA7dz0wO3Y9Zjt3aGlsZSgxKXtkb3tpZigoYVtvXXwwKT09MSl7Sz12O2lm
KChhW0tdJjEpPT0wKXtMPXYrNHwwfWVsc2V7TD1jW3YrOD4+Ml18MH1pZigoSHwwKSE9KGNbTCso
dDw8Mik+PjJdfDApKXthW29dPTA7TT13O049eTtPPW0tMXwwO2JyZWFrfVA9ZFtLXXwwO2lmKChQ
JjF8MCk9PTApe1E9UD4+PjF9ZWxzZXtRPWNbdis0Pj4yXXwwfWlmKChRfDApIT0ocnwwKSl7TT0x
O049eTtPPW07YnJlYWt9YVtvXT0yO009MTtOPXkrMXwwO089bS0xfDB9ZWxzZXtNPXc7Tj15O089
bX19d2hpbGUoMCk7UD12KzEyfDA7aWYoKFB8MCk9PShnfDApKXtSPU87Uz1OO1Q9TTticmVhayBM
MjQ5fW09Tzt5PU47bz1vKzF8MDt3PU07dj1QfX1lbHNle3Y9czt3PXg7bz1wO3k9MDttPWY7d2hp
bGUoMSl7ZG97aWYoKGFbb118MCk9PTEpe1A9bTtpZigoYVtQXSYxKT09MCl7VT1tKzR8MH1lbHNl
e1U9Y1ttKzg+PjJdfDB9aWYoKEh8MCkhPShiX1tjWyhjW2U+PjJdfDApKzI4Pj4yXSYzMV0oaCxj
W1UrKHQ8PDIpPj4yXXwwKXwwKSl7YVtvXT0wO1Y9eTtXPXc7WD12LTF8MDticmVha31LPWRbUF18
MDtpZigoSyYxfDApPT0wKXtZPUs+Pj4xfWVsc2V7WT1jW20rND4+Ml18MH1pZigoWXwwKSE9KHJ8
MCkpe1Y9MTtXPXc7WD12O2JyZWFrfWFbb109MjtWPTE7Vz13KzF8MDtYPXYtMXwwfWVsc2V7Vj15
O1c9dztYPXZ9fXdoaWxlKDApO0s9bSsxMnwwO2lmKChLfDApPT0oZ3wwKSl7Uj1YO1M9VztUPVY7
YnJlYWsgTDI0OX12PVg7dz1XO289bysxfDA7eT1WO209S319fXdoaWxlKDApO2lmKCFUKXtJPVM7
Sj1SO2JyZWFrfXI9Y1t1Pj4yXXwwO209cisxMnwwO3k9Y1ttPj4yXXwwO2lmKCh5fDApPT0oY1ty
KzE2Pj4yXXwwKSl7bz1jWyhjW3I+PjJdfDApKzQwPj4yXXwwO2IwW28mMTI3XShyKXwwfWVsc2V7
Y1ttPj4yXT15KzR9aWYoKFMrUnwwKT4+PjA8MnxuKXtJPVM7Sj1SO2JyZWFrfXk9dCsxfDA7bT1T
O3I9cDtvPWY7d2hpbGUoMSl7ZG97aWYoKGFbcl18MCk9PTIpe3c9ZFtvXXwwO2lmKCh3JjF8MCk9
PTApe1o9dz4+PjF9ZWxzZXtaPWNbbys0Pj4yXXwwfWlmKChafDApPT0oeXwwKSl7Xz1tO2JyZWFr
fWFbcl09MDtfPW0tMXwwfWVsc2V7Xz1tfX13aGlsZSgwKTt3PW8rMTJ8MDtpZigod3wwKT09KGd8
MCkpe0k9XztKPVI7YnJlYWt9ZWxzZXttPV87cj1yKzF8MDtvPXd9fX19d2hpbGUoMCk7dD10KzF8
MDt4PUk7cz1KfWRve2lmKChCfDApPT0wKXskPTF9ZWxzZXtKPWNbQisxMj4+Ml18MDtpZigoSnww
KT09KGNbQisxNj4+Ml18MCkpe2FhPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1l
bHNle2FhPWNbSj4+Ml18MH1pZigoYWF8MCk9PS0xKXtjW3U+PjJdPTA7JD0xO2JyZWFrfWVsc2V7
JD0oY1t1Pj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKEYpe2FiPTI2NH1lbHNle3U9
Y1tDKzEyPj4yXXwwO2lmKCh1fDApPT0oY1tDKzE2Pj4yXXwwKSl7YWM9YjBbY1soY1tDPj4yXXww
KSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7YWM9Y1t1Pj4yXXwwfWlmKChhY3wwKT09LTEpe2NbYj4+
Ml09MDthYj0yNjQ7YnJlYWt9ZWxzZXtpZigkXihDfDApPT0wKXticmVha31lbHNle2FiPTI2Njti
cmVha319fX13aGlsZSgwKTtpZigoYWJ8MCk9PTI2NCl7aWYoJCl7YWI9MjY2fX1pZigoYWJ8MCk9
PTI2Nil7Y1tqPj4yXT1jW2o+PjJdfDJ9TDMzMDpkb3tpZihuKXthYj0yNzF9ZWxzZXskPWY7Qz1w
O3doaWxlKDEpe2lmKChhW0NdfDApPT0yKXthZD0kO2JyZWFrIEwzMzB9Yj0kKzEyfDA7aWYoKGJ8
MCk9PShnfDApKXthYj0yNzE7YnJlYWsgTDMzMH0kPWI7Qz1DKzF8MH19fXdoaWxlKDApO2lmKChh
YnwwKT09MjcxKXtjW2o+PjJdPWNbaj4+Ml18NDthZD1nfWlmKChxfDApPT0wKXtpPWw7cmV0dXJu
IGFkfDB9a0socSk7aT1sO3JldHVybiBhZHwwfWZ1bmN0aW9uIGZUKGIsZCxlLGYsZyxoLGope2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2s9
aTtpPWkrMTEyfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTts
PWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209aysxNnww
O249ayszMnwwO289ays0MHwwO3A9ays0OHwwO3E9ays1NnwwO3I9ays2NHwwO3M9ays3MnwwO3Q9
ays4MHwwO3U9aysxMDR8MDtpZigoY1tnKzQ+PjJdJjF8MCk9PTApe2Nbbj4+Ml09LTE7dj1jWyhj
W2Q+PjJdfDApKzE2Pj4yXXwwO3c9ZXwwO2NbcD4+Ml09Y1t3Pj4yXTtjW3E+PjJdPWNbZj4+Ml07
YlhbdiYxMjddKG8sZCxwLHEsZyxoLG4pO3E9Y1tvPj4yXXwwO2Nbdz4+Ml09cTtzd2l0Y2goY1tu
Pj4yXXwwKXtjYXNlIDE6e2Fbal09MTticmVha307Y2FzZSAwOnthW2pdPTA7YnJlYWt9O2RlZmF1
bHQ6e2Fbal09MTtjW2g+PjJdPTR9fWNbYj4+Ml09cTtpPWs7cmV0dXJufWVqKHIsZyk7cT1yfDA7
cj1jW3E+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW20+PjJdPTE1Njg4O2NbbSs0Pj4yXT0x
MjtjW20rOD4+Ml09MDtkVygxNTY4OCxtLDk2KX1tPShjWzM5MjNdfDApLTF8MDtuPWNbcis4Pj4y
XXwwO2Rve2lmKChjW3IrMTI+PjJdfDApLW4+PjI+Pj4wPm0+Pj4wKXt3PWNbbisobTw8Mik+PjJd
fDA7aWYoKHd8MCk9PTApe2JyZWFrfW89dzt3PWNbcT4+Ml18MDtkeih3KXwwO2VqKHMsZyk7dz1z
fDA7cD1jW3c+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0xKXtjW2w+PjJdPTE1MzA0O2NbbCs0Pj4y
XT0xMjtjW2wrOD4+Ml09MDtkVygxNTMwNCxsLDk2KX1kPShjWzM4MjddfDApLTF8MDt2PWNbcCs4
Pj4yXXwwO2Rve2lmKChjW3ArMTI+PjJdfDApLXY+PjI+Pj4wPmQ+Pj4wKXt4PWNbdisoZDw8Mik+
PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDt6PWNbdz4+Ml18MDtkeih6KXwwO3o9dHwwO0E9
eDtiWltjWyhjW0E+PjJdfDApKzI0Pj4yXSYxMjddKHoseSk7YlpbY1soY1tBPj4yXXwwKSsyOD4+
Ml0mMTI3XSh0KzEyfDAseSk7Y1t1Pj4yXT1jW2Y+PjJdO2Fbal09KGZTKGUsdSx6LHQrMjR8MCxv
LGgsMSl8MCk9PSh6fDApfDA7Y1tiPj4yXT1jW2U+PjJdO2VlKHQrMTJ8MCk7ZWUodHwwKTtpPWs7
cmV0dXJufX13aGlsZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUo
MCk7az1iTyg0KXwwO2txKGspO2JsKGt8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZlUoYixlLGYsZyxo
LGksaixrLGwsbSl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1r
fDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0wO249Y1tnPj4yXXwwO289
KG58MCk9PShmfDApO2Rve2lmKG8pe3A9KGNbbSs5Nj4+Ml18MCk9PShifDApO2lmKCFwKXtpZigo
Y1ttKzEwMD4+Ml18MCkhPShifDApKXticmVha319Y1tnPj4yXT1mKzE7YVtmXT1wPzQzOjQ1O2Nb
aD4+Ml09MDtxPTA7cmV0dXJuIHF8MH19d2hpbGUoMCk7cD1kW2pdfDA7aWYoKHAmMXwwKT09MCl7
cj1wPj4+MX1lbHNle3I9Y1tqKzQ+PjJdfDB9aWYoKHJ8MCkhPTAmKGJ8MCk9PShpfDApKXtpPWNb
bD4+Ml18MDtpZigoaS1rfDApPj0xNjApe3E9MDtyZXR1cm4gcXwwfWs9Y1toPj4yXXwwO2NbbD4+
Ml09aSs0O2NbaT4+Ml09aztjW2g+PjJdPTA7cT0wO3JldHVybiBxfDB9az1tKzEwNHwwO2k9bTt3
aGlsZSgxKXtpZigoaXwwKT09KGt8MCkpe3M9azticmVha31pZigoY1tpPj4yXXwwKT09KGJ8MCkp
e3M9aTticmVha31lbHNle2k9aSs0fDB9fWk9cy1tfDA7bT1pPj4yO2lmKChpfDApPjkyKXtxPS0x
O3JldHVybiBxfDB9TDM5ODpkb3tzd2l0Y2goZXwwKXtjYXNlIDg6Y2FzZSAxMDp7aWYoKG18MCk8
KGV8MCkpe2JyZWFrIEwzOTh9ZWxzZXtxPS0xfXJldHVybiBxfDB9O2Nhc2UgMTY6e2lmKChpfDAp
PDg4KXticmVhayBMMzk4fWlmKG8pe3E9LTE7cmV0dXJuIHF8MH1pZigobi1mfDApPj0zKXtxPS0x
O3JldHVybiBxfDB9aWYoKGFbbi0xfDBdfDApIT00OCl7cT0tMTtyZXR1cm4gcXwwfWNbaD4+Ml09
MDtzPWFbOTc0NCttfDBdfDA7Yj1jW2c+PjJdfDA7Y1tnPj4yXT1iKzE7YVtiXT1zO3E9MDtyZXR1
cm4gcXwwfTtkZWZhdWx0Ont9fX13aGlsZSgwKTtmPWFbOTc0NCttfDBdfDA7Y1tnPj4yXT1uKzE7
YVtuXT1mO2NbaD4+Ml09KGNbaD4+Ml18MCkrMTtxPTA7cmV0dXJuIHF8MH1mdW5jdGlvbiBmVihi
LGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2
YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wO2U9aTtpPWkr
MTQ0fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7
bj1lKzEyOHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+
Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7
dD04O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7
aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVs
c2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4y
XT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3
PWNbaD4+Ml18MDtMNDI2OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysx
Mj4+Ml18MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+
Ml0mMTI3XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1to
Pj4yXT0wO0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09
MCl7Rj0zNjN9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9
YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8
MCk9PS0xKXtjW2Y+PjJdPTA7Rj0zNjM7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1D
O0o9RzticmVha31lbHNle0s9bDtMPUM7TT1HO2JyZWFrIEw0MjZ9fX19d2hpbGUoMCk7aWYoKEZ8
MCk9PTM2Myl7Rj0wO2lmKEUpe0s9bDtMPTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29d
fDA7Rz0oQyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXww
KXwwKSl7aWYoRyl7Tj1DPj4+MTtPPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tj1DO089Q31kUihu
LE48PDEsMCk7aWYoKGFbb10mMSk9PTApe1A9MTB9ZWxzZXtQPShjW2c+PjJdJi0yKS0xfDB9ZFIo
bixQLDApO2lmKChhW29dJjEpPT0wKXtRPXh9ZWxzZXtRPWNbeT4+Ml18MH1jW3A+PjJdPVErTztS
PVF9ZWxzZXtSPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7Uz1CKzE2fDA7aWYoKEd8MCk9PShjW1M+
PjJdfDApKXtUPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1Q9Y1tHPj4y
XXwwfWlmKChmVShULHQsUixwLHMsQSxtLHYscix1KXwwKSE9MCl7Sz1SO0w9STtNPUo7YnJlYWt9
Rz1jW0M+PjJdfDA7aWYoKEd8MCk9PShjW1M+PjJdfDApKXtTPWNbKGNbQj4+Ml18MCkrNDA+PjJd
fDA7YjBbUyYxMjddKEIpfDA7bD1SO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Ujt3
PUI7Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1U9dz4+PjF9ZWxzZXtVPWNbbSs0
Pj4yXXwwfWRve2lmKChVfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFr
fVI9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09Un19d2hpbGUoMCk7Y1trPj4yXT1mdShL
LGNbcD4+Ml18MCxqLHQpfDA7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihFKXtWPTB9ZWxzZXty
PWNbQisxMj4+Ml18MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1c9YjBbY1soY1tCPj4yXXww
KSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7Vz1jW3I+PjJdfDB9aWYoKFd8MCkhPS0xKXtWPUI7YnJl
YWt9Y1toPj4yXT0wO1Y9MH19d2hpbGUoMCk7aD0oVnwwKT09MDtkb3tpZihNKXtGPTQwNX1lbHNl
e0I9Y1tMKzEyPj4yXXwwO2lmKChCfDApPT0oY1tMKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0w+PjJd
fDApKzM2Pj4yXSYxMjddKEwpfDB9ZWxzZXtYPWNbQj4+Ml18MH1pZigoWHwwKT09LTEpe2NbZj4+
Ml09MDtGPTQwNTticmVha31pZighKGheKEx8MCk9PTApKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7
ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTQwNSl7aWYoaCl7
YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nb
aj4+Ml09Y1tqPj4yXXwyO1k9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1
bmN0aW9uIGZXKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9
MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTA7Zj1pO2k9aSs0MHwwO2c9ZnwwO2g9ZisxNnww
O2o9ZiszMnwwO2VqKGosYik7Yj1qfDA7aj1jW2I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtj
W2g+PjJdPTE1Njg4O2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTY4OCxoLDk2KX1oPShj
WzM5MjNdfDApLTF8MDtrPWNbais4Pj4yXXwwO2Rve2lmKChjW2orMTI+PjJdfDApLWs+PjI+Pj4w
Pmg+Pj4wKXtsPWNbaysoaDw8Mik+PjJdfDA7aWYoKGx8MCk9PTApe2JyZWFrfW09bDtuPWNbKGNb
bD4+Ml18MCkrNDg+PjJdfDA7Y2FbbiYxNV0obSw5NzQ0LDk3NzAsZCl8MDttPWNbYj4+Ml18MDtp
ZigoY1szODI2XXwwKSE9LTEpe2NbZz4+Ml09MTUzMDQ7Y1tnKzQ+PjJdPTEyO2NbZys4Pj4yXT0w
O2RXKDE1MzA0LGcsOTYpfW49KGNbMzgyN118MCktMXwwO2w9Y1ttKzg+PjJdfDA7ZG97aWYoKGNb
bSsxMj4+Ml18MCktbD4+Mj4+PjA+bj4+PjApe289Y1tsKyhuPDwyKT4+Ml18MDtpZigob3wwKT09
MCl7YnJlYWt9cD1vO2NbZT4+Ml09YjBbY1soY1tvPj4yXXwwKSsxNj4+Ml0mMTI3XShwKXwwO2Ja
W2NbKGNbbz4+Ml18MCkrMjA+PjJdJjEyN10oYSxwKTtwPWNbYj4+Ml18MDtkeihwKXwwO2k9Zjty
ZXR1cm59fXdoaWxlKDApO249Yk8oNCl8MDtrcShuKTtibChufDAsODE3NiwxMzQpfX13aGlsZSgw
KTtmPWJPKDQpfDA7a3EoZik7YmwoZnwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmWChiLGUsZixnLGgs
aixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89MCxQPTAs
UT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2U9aTtpPWkrMTQ0fDA7bD1m
O2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEyOHww
O289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7
Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2JyZWFr
fTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4s
MTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8
MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+
Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+Ml18
MDtMNTM1OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18MDtp
ZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3
KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9
MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj00NTB9
ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1soY1tD
Pj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0xKXtj
W2Y+PjJdPTA7Rj00NTA7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9RzticmVh
a31lbHNle0w9bDtNPUM7Tj1HO2JyZWFrIEw1MzV9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTQ1MCl7
Rj0wO2lmKEUpe0w9bDtNPTA7Tj0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0oQyYx
fDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYo
Ryl7Tz1DPj4+MTtQPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tz1DO1A9Q31kUihuLE88PDEsMCk7
aWYoKGFbb10mMSk9PTApe1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIobixRLDApO2lm
KChhW29dJjEpPT0wKXtSPXh9ZWxzZXtSPWNbeT4+Ml18MH1jW3A+PjJdPVIrUDtTPVJ9ZWxzZXtT
PWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7VD1CKzE2fDA7aWYoKEd8MCk9PShjW1Q+PjJdfDApKXtV
PWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1U9Y1tHPj4yXXwwfWlmKChm
VShVLHQsUyxwLHMsQSxtLHYscix1KXwwKSE9MCl7TD1TO009STtOPUo7YnJlYWt9Rz1jW0M+PjJd
fDA7aWYoKEd8MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbVCYx
MjddKEIpfDA7bD1TO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Uzt3PUI7Y29udGlu
dWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Y9dz4+PjF9ZWxzZXtWPWNbbSs0Pj4yXXwwfWRv
e2lmKChWfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVM9Y1tzPj4y
XXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09U319d2hpbGUoMCk7cz1mdyhMLGNbcD4+Ml18MCxqLHQp
fDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7Vz0w
fWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtYPWIwW2NbKGNb
Qj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1g9Y1tyPj4yXXwwfWlmKChYfDApIT0tMSl7
Vz1CO2JyZWFrfWNbaD4+Ml09MDtXPTB9fXdoaWxlKDApO2g9KFd8MCk9PTA7ZG97aWYoTil7Rj00
OTJ9ZWxzZXtCPWNbTSsxMj4+Ml18MDtpZigoQnwwKT09KGNbTSsxNj4+Ml18MCkpe1k9YjBbY1so
Y1tNPj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0I+PjJdfDB9aWYoKFl8MCk9PS0x
KXtjW2Y+PjJdPTA7Rj00OTI7YnJlYWt9aWYoIShoXihNfDApPT0wKSl7YnJlYWt9Wj1ifDA7Y1ta
Pj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT00OTIp
e2lmKGgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGls
ZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1lO3Jl
dHVybn1mdW5jdGlvbiBmWShlLGYsZyxoLGosayxsKXtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtq
PWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxK
PTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9
MCxZPTAsWj0wO2Y9aTtpPWkrMTQ0fDA7bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+
Ml09Y1ttPj4yXTttPWg7aD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1toPj4yXT1jW20+PjJdO209
ZisxMDR8MDtuPWYrMTEyfDA7bz1mKzEyOHwwO3A9bztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzty
PWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3N3aXRjaChjW2orND4+Ml0mNzR8MCl7Y2FzZSA4Ont1PTE2O2JyZWFrfTtjYXNlIDY0Ont1
PTg7YnJlYWt9O2Nhc2UgMDp7dT0wO2JyZWFrfTtkZWZhdWx0Ont1PTEwfX12PWZ8MDtmVyhuLGos
dixtKTtrJChwfDAsMCwxMik7aj1vO2RSKG8sMTAsMCk7aWYoKGFbcF0mMSk9PTApe3c9aisxfDA7
eD13O3k9dzt6PW8rOHwwfWVsc2V7dz1vKzh8MDt4PWNbdz4+Ml18MDt5PWorMXwwO3o9d31jW3E+
PjJdPXg7dz1yfDA7Y1tzPj4yXT13O2NbdD4+Ml09MDtqPWd8MDtnPWh8MDtoPW98MDtBPW8rNHww
O0I9Y1ttPj4yXXwwO209eDt4PWNbaj4+Ml18MDtMNjI0OndoaWxlKDEpe2Rve2lmKCh4fDApPT0w
KXtDPTB9ZWxzZXtEPWNbeCsxMj4+Ml18MDtpZigoRHwwKT09KGNbeCsxNj4+Ml18MCkpe0U9YjBb
Y1soY1t4Pj4yXXwwKSszNj4+Ml0mMTI3XSh4KXwwfWVsc2V7RT1jW0Q+PjJdfDB9aWYoKEV8MCkh
PS0xKXtDPXg7YnJlYWt9Y1tqPj4yXT0wO0M9MH19d2hpbGUoMCk7Rj0oQ3wwKT09MDtEPWNbZz4+
Ml18MDtkb3tpZigoRHwwKT09MCl7Rz01MjB9ZWxzZXtIPWNbRCsxMj4+Ml18MDtpZigoSHwwKT09
KGNbRCsxNj4+Ml18MCkpe0k9YjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwfWVsc2V7
ST1jW0g+PjJdfDB9aWYoKEl8MCk9PS0xKXtjW2c+PjJdPTA7Rz01MjA7YnJlYWt9ZWxzZXtIPShE
fDApPT0wO2lmKEZeSCl7Sj1EO0s9SDticmVha31lbHNle0w9bTtNPUQ7Tj1IO2JyZWFrIEw2MjR9
fX19d2hpbGUoMCk7aWYoKEd8MCk9PTUyMCl7Rz0wO2lmKEYpe0w9bTtNPTA7Tj0xO2JyZWFrfWVs
c2V7Sj0wO0s9MX19RD1kW3BdfDA7SD0oRCYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1tfDApPT0o
KEg/RD4+PjE6Y1tBPj4yXXwwKXwwKSl7aWYoSCl7Tz1EPj4+MTtQPUQ+Pj4xfWVsc2V7RD1jW0E+
PjJdfDA7Tz1EO1A9RH1kUihvLE88PDEsMCk7aWYoKGFbcF0mMSk9PTApe1E9MTB9ZWxzZXtRPShj
W2g+PjJdJi0yKS0xfDB9ZFIobyxRLDApO2lmKChhW3BdJjEpPT0wKXtSPXl9ZWxzZXtSPWNbej4+
Ml18MH1jW3E+PjJdPVIrUDtTPVJ9ZWxzZXtTPW19RD1DKzEyfDA7SD1jW0Q+PjJdfDA7VD1DKzE2
fDA7aWYoKEh8MCk9PShjW1Q+PjJdfDApKXtVPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10o
Qyl8MH1lbHNle1U9Y1tIPj4yXXwwfWlmKChmVShVLHUsUyxxLHQsQixuLHcscyx2KXwwKSE9MCl7
TD1TO009SjtOPUs7YnJlYWt9SD1jW0Q+PjJdfDA7aWYoKEh8MCk9PShjW1Q+PjJdfDApKXtUPWNb
KGNbQz4+Ml18MCkrNDA+PjJdfDA7YjBbVCYxMjddKEMpfDA7bT1TO3g9Qztjb250aW51ZX1lbHNl
e2NbRD4+Ml09SCs0O209Uzt4PUM7Y29udGludWV9fXg9ZFtuXXwwO2lmKCh4JjF8MCk9PTApe1Y9
eD4+PjF9ZWxzZXtWPWNbbis0Pj4yXXwwfWRve2lmKChWfDApIT0wKXt4PWNbcz4+Ml18MDtpZigo
eC1yfDApPj0xNjApe2JyZWFrfVM9Y1t0Pj4yXXwwO2Nbcz4+Ml09eCs0O2NbeD4+Ml09U319d2hp
bGUoMCk7YltsPj4xXT1meihMLGNbcT4+Ml18MCxrLHUpfDA7ZnQobix3LGNbcz4+Ml18MCxrKTtk
b3tpZihGKXtXPTB9ZWxzZXtzPWNbQysxMj4+Ml18MDtpZigoc3wwKT09KGNbQysxNj4+Ml18MCkp
e1g9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7WD1jW3M+PjJdfDB9aWYo
KFh8MCkhPS0xKXtXPUM7YnJlYWt9Y1tqPj4yXT0wO1c9MH19d2hpbGUoMCk7aj0oV3wwKT09MDtk
b3tpZihOKXtHPTU2Mn1lbHNle0M9Y1tNKzEyPj4yXXwwO2lmKChDfDApPT0oY1tNKzE2Pj4yXXww
KSl7WT1iMFtjWyhjW00+PjJdfDApKzM2Pj4yXSYxMjddKE0pfDB9ZWxzZXtZPWNbQz4+Ml18MH1p
ZigoWXwwKT09LTEpe2NbZz4+Ml09MDtHPTU2MjticmVha31pZighKGpeKE18MCk9PTApKXticmVh
a31aPWV8MDtjW1o+PjJdPVc7ZFAobyk7ZFAobik7aT1mO3JldHVybn19d2hpbGUoMCk7ZG97aWYo
KEd8MCk9PTU2Mil7aWYoail7YnJlYWt9Wj1lfDA7Y1taPj4yXT1XO2RQKG8pO2RQKG4pO2k9Zjty
ZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwyO1o9ZXwwO2NbWj4+Ml09VztkUChvKTtk
UChuKTtpPWY7cmV0dXJufWZ1bmN0aW9uIGZaKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9
MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0w
LFU9MCxWPTAsVz0wLFg9MCxZPTA7ZT1pO2k9aSsxNDR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJd
PWNbbD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtuPWUrMTI4fDA7bz1uO3A9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7YnJlYWt9
O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9
ZXwwO2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09
MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsx
fDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9
bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9Y1toPj4yXXwwO0w3MTM6d2hpbGUoMSl7ZG97
aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEyPj4yXXwwO2lmKChDfDApPT0oY1t3KzE2Pj4y
XXwwKSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDB9ZWxzZXtEPWNbQz4+Ml18
MH1pZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtFPShCfDAp
PT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0wKXtGPTU5MH1lbHNle0c9Y1tDKzEyPj4yXXww
O2lmKChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1iMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjdd
KEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHwwKT09LTEpe2NbZj4+Ml09MDtGPTU5MDticmVh
a31lbHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7Sj1HO2JyZWFrfWVsc2V7Sz1sO0w9QztNPUc7
YnJlYWsgTDcxM319fX13aGlsZSgwKTtpZigoRnwwKT09NTkwKXtGPTA7aWYoRSl7Sz1sO0w9MDtN
PTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118MDtHPShDJjF8MCk9PTA7aWYoKChjW3A+PjJd
fDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDApfDApKXtpZihHKXtOPUM+Pj4xO089Qz4+PjF9
ZWxzZXtDPWNbej4+Ml18MDtOPUM7Tz1DfWRSKG4sTjw8MSwwKTtpZigoYVtvXSYxKT09MCl7UD0x
MH1lbHNle1A9KGNbZz4+Ml0mLTIpLTF8MH1kUihuLFAsMCk7aWYoKGFbb10mMSk9PTApe1E9eH1l
bHNle1E9Y1t5Pj4yXXwwfWNbcD4+Ml09UStPO1I9UX1lbHNle1I9bH1DPUIrMTJ8MDtHPWNbQz4+
Ml18MDtTPUIrMTZ8MDtpZigoR3wwKT09KGNbUz4+Ml18MCkpe1Q9YjBbY1soY1tCPj4yXXwwKSsz
Nj4+Ml0mMTI3XShCKXwwfWVsc2V7VD1jW0c+PjJdfDB9aWYoKGZVKFQsdCxSLHAscyxBLG0sdixy
LHUpfDApIT0wKXtLPVI7TD1JO009SjticmVha31HPWNbQz4+Ml18MDtpZigoR3wwKT09KGNbUz4+
Ml18MCkpe1M9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtTJjEyN10oQil8MDtsPVI7dz1CO2Nv
bnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1SO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcm
MXwwKT09MCl7VT13Pj4+MX1lbHNle1U9Y1ttKzQ+PjJdfDB9ZG97aWYoKFV8MCkhPTApe3c9Y1ty
Pj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9Uj1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3
Pj4yXT1SfX13aGlsZSgwKTtjW2s+PjJdPWZCKEssY1twPj4yXXwwLGosdCl8MDtmdChtLHYsY1ty
Pj4yXXwwLGopO2Rve2lmKEUpe1Y9MH1lbHNle3I9Y1tCKzEyPj4yXXwwO2lmKChyfDApPT0oY1tC
KzE2Pj4yXXwwKSl7Vz1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtXPWNb
cj4+Ml18MH1pZigoV3wwKSE9LTEpe1Y9QjticmVha31jW2g+PjJdPTA7Vj0wfX13aGlsZSgwKTto
PShWfDApPT0wO2Rve2lmKE0pe0Y9NjMyfWVsc2V7Qj1jW0wrMTI+PjJdfDA7aWYoKEJ8MCk9PShj
W0wrMTY+PjJdfDApKXtYPWIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MH1lbHNle1g9
Y1tCPj4yXXwwfWlmKChYfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NjMyO2JyZWFrfWlmKCEoaF4oTHww
KT09MCkpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGls
ZSgwKTtkb3tpZigoRnwwKT09NjMyKXtpZihoKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAobik7
ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7WT1ifDA7Y1tZPj4y
XT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZl8oYixlLGYsZyxoLGosayl7Yj1i
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0w
LEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAs
Uj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MDtlPWk7aT1pKzE0NHwwO2w9ZjtmPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzExMnwwO249ZSsxMjh8MDtvPW47cD1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgODp7
dD0xNjticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307ZGVmYXVs
dDp7dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lm
KChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+
PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1m
fDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1jW2g+PjJdfDA7TDgwMjp3
aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+PjJdfDA7aWYoKEN8MCk9
PShjW3crMTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MH1lbHNl
e0Q9Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxl
KDApO0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTApe0Y9NjYwfWVsc2V7Rz1j
W0MrMTI+PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDApKXtIPWIwW2NbKGNbQz4+Ml18MCkr
MzY+PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlmKChIfDApPT0tMSl7Y1tmPj4yXT0w
O0Y9NjYwO2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztKPUc7YnJlYWt9ZWxzZXtL
PWw7TD1DO009RzticmVhayBMODAyfX19fXdoaWxlKDApO2lmKChGfDApPT02NjApe0Y9MDtpZihF
KXtLPWw7TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUM9ZFtvXXwwO0c9KEMmMXwwKT09MDtp
ZigoKGNbcD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEcpe049Qz4+
PjE7Tz1DPj4+MX1lbHNle0M9Y1t6Pj4yXXwwO049QztPPUN9ZFIobixOPDwxLDApO2lmKChhW29d
JjEpPT0wKXtQPTEwfWVsc2V7UD0oY1tnPj4yXSYtMiktMXwwfWRSKG4sUCwwKTtpZigoYVtvXSYx
KT09MCl7UT14fWVsc2V7UT1jW3k+PjJdfDB9Y1twPj4yXT1RK087Uj1RfWVsc2V7Uj1sfUM9Qisx
MnwwO0c9Y1tDPj4yXXwwO1M9QisxNnwwO2lmKChHfDApPT0oY1tTPj4yXXwwKSl7VD1iMFtjWyhj
W0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtUPWNbRz4+Ml18MH1pZigoZlUoVCx0LFIs
cCxzLEEsbSx2LHIsdSl8MCkhPTApe0s9UjtMPUk7TT1KO2JyZWFrfUc9Y1tDPj4yXXwwO2lmKChH
fDApPT0oY1tTPj4yXXwwKSl7Uz1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShCKXww
O2w9Ujt3PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDtsPVI7dz1CO2NvbnRpbnVlfX13PWRb
bV18MDtpZigodyYxfDApPT0wKXtVPXc+Pj4xfWVsc2V7VT1jW20rND4+Ml18MH1kb3tpZigoVXww
KSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31SPWNbcz4+Ml18MDtjW3I+
PjJdPXcrNDtjW3c+PjJdPVJ9fXdoaWxlKDApO2Nbaz4+Ml09ZkQoSyxjW3A+PjJdfDAsaix0KXww
O2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7Vj0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYo
KHJ8MCk9PShjW0IrMTY+PjJdfDApKXtXPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MH1lbHNle1c9Y1tyPj4yXXwwfWlmKChXfDApIT0tMSl7Vj1CO2JyZWFrfWNbaD4+Ml09MDtWPTB9
fXdoaWxlKDApO2g9KFZ8MCk9PTA7ZG97aWYoTSl7Rj03MDJ9ZWxzZXtCPWNbTCsxMj4+Ml18MDtp
ZigoQnwwKT09KGNbTCsxNj4+Ml18MCkpe1g9YjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3XShM
KXwwfWVsc2V7WD1jW0I+PjJdfDB9aWYoKFh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj03MDI7YnJlYWt9
aWYoIShoXihMfDApPT0wKSl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTty
ZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT03MDIpe2lmKGgpe2JyZWFrfVk9YnwwO2NbWT4+
Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtZ
PWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmJChiLGUsZixn
LGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89MCxQ
PTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2U9aTtpPWkrMTQ0fDA7
bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEy
OHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8
MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2Jy
ZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RS
KG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1u
Kzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nb
cz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+
Ml18MDtMODkxOndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18
MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3
XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0w
O0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj03
MzB9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1so
Y1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0x
KXtjW2Y+PjJdPTA7Rj03MzA7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9Rzti
cmVha31lbHNle0w9bDtNPUM7Tj1HO2JyZWFrIEw4OTF9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTcz
MCl7Rj0wO2lmKEUpe0w9bDtNPTA7Tj0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0o
QyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7
aWYoRyl7Tz1DPj4+MTtQPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tz1DO1A9Q31kUihuLE88PDEs
MCk7aWYoKGFbb10mMSk9PTApe1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIobixRLDAp
O2lmKChhW29dJjEpPT0wKXtSPXh9ZWxzZXtSPWNbeT4+Ml18MH1jW3A+PjJdPVIrUDtTPVJ9ZWxz
ZXtTPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7VD1CKzE2fDA7aWYoKEd8MCk9PShjW1Q+PjJdfDAp
KXtVPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1U9Y1tHPj4yXXwwfWlm
KChmVShVLHQsUyxwLHMsQSxtLHYscix1KXwwKSE9MCl7TD1TO009STtOPUo7YnJlYWt9Rz1jW0M+
PjJdfDA7aWYoKEd8MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBb
VCYxMjddKEIpfDA7bD1TO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Uzt3PUI7Y29u
dGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Y9dz4+PjF9ZWxzZXtWPWNbbSs0Pj4yXXww
fWRve2lmKChWfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVM9Y1tz
Pj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09U319d2hpbGUoMCk7cz1mRihMLGNbcD4+Ml18MCxq
LHQpfDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7
Vz0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtYPWIwW2Nb
KGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1g9Y1tyPj4yXXwwfWlmKChYfDApIT0t
MSl7Vz1CO2JyZWFrfWNbaD4+Ml09MDtXPTB9fXdoaWxlKDApO2g9KFd8MCk9PTA7ZG97aWYoTil7
Rj03NzJ9ZWxzZXtCPWNbTSsxMj4+Ml18MDtpZigoQnwwKT09KGNbTSsxNj4+Ml18MCkpe1k9YjBb
Y1soY1tNPj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0I+PjJdfDB9aWYoKFl8MCk9
PS0xKXtjW2Y+PjJdPTA7Rj03NzI7YnJlYWt9aWYoIShoXihNfDApPT0wKSl7YnJlYWt9Wj1ifDA7
Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT03
NzIpe2lmKGgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1l
O3JldHVybn1mdW5jdGlvbiBmMChiLGUsZixoLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtoPWh8
MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9
MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0w
LFg9MCxZPTAsWj0wLF89MCwkPTA7ZT1pO2k9aSsxNzZ8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2g+PjJd
PWNbbT4+Ml07bT1lKzEyOHwwO249ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1lKzE2MHwwO3E9cDtyPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtpPWkr
MXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2YxKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtkUihw
LDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9cCs4
fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtjW3U+
PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1ofDA7aD1wfDA7Qz1wKzR8MDtEPWNbbT4+Ml18
MDttPWNbbj4+Ml18MDtuPXo7ej1jW2o+PjJdfDA7TDk3NTp3aGlsZSgxKXtkb3tpZigoenwwKT09
MCl7RT0wfWVsc2V7Rj1jW3orMTI+PjJdfDA7aWYoKEZ8MCk9PShjW3orMTY+PjJdfDApKXtHPWIw
W2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1tGPj4yXXwwfWlmKChHfDAp
IT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7Rj1jW2Y+
PjJdfDA7ZG97aWYoKEZ8MCk9PTApe0k9Nzk2fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYoKEp8MCk9
PShjW0YrMTY+PjJdfDApKXtLPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8MH1lbHNl
e0s9Y1tKPj4yXXwwfWlmKChLfDApPT0tMSl7Y1tmPj4yXT0wO0k9Nzk2O2JyZWFrfWVsc2V7Sj0o
RnwwKT09MDtpZihIXkope0w9RjtNPUo7YnJlYWt9ZWxzZXtOPW47Tz1GO1A9SjticmVhayBMOTc1
fX19fXdoaWxlKDApO2lmKChJfDApPT03OTYpe0k9MDtpZihIKXtOPW47Tz0wO1A9MTticmVha31l
bHNle0w9MDtNPTF9fUY9ZFtxXXwwO0o9KEYmMXwwKT09MDtpZigoKGNbcj4+Ml18MCktbnwwKT09
KChKP0Y+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKEope1E9Rj4+PjE7Uj1GPj4+MX1lbHNle0Y9Y1tD
Pj4yXXwwO1E9RjtSPUZ9ZFIocCxRPDwxLDApO2lmKChhW3FdJjEpPT0wKXtTPTEwfWVsc2V7Uz0o
Y1toPj4yXSYtMiktMXwwfWRSKHAsUywwKTtpZigoYVtxXSYxKT09MCl7VD1BfWVsc2V7VD1jW0I+
PjJdfDB9Y1tyPj4yXT1UK1I7VT1UfWVsc2V7VT1ufUY9RSsxMnwwO0o9Y1tGPj4yXXwwO1Y9RSsx
NnwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vz1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjdd
KEUpfDB9ZWxzZXtXPWNbSj4+Ml18MH1pZigoZjIoVyx2LHcsVSxyLEQsbSxvLHksdCx1LHgpfDAp
IT0wKXtOPVU7Tz1MO1A9TTticmVha31KPWNbRj4+Ml18MDtpZigoSnwwKT09KGNbVj4+Ml18MCkp
e1Y9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtWJjEyN10oRSl8MDtuPVU7ej1FO2NvbnRpbnVl
fWVsc2V7Y1tGPj4yXT1KKzQ7bj1VO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYoKHomMXwwKT09
MCl7WD16Pj4+MX1lbHNle1g9Y1tvKzQ+PjJdfDB9ZG97aWYoKFh8MCkhPTApe2lmKChhW3ZdJjEp
PT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVU9Y1t1Pj4yXXww
O2NbdD4+Ml09eis0O2Nbej4+Ml09VX19d2hpbGUoMCk7Z1tsPj4yXT0rZkkoTixjW3I+PjJdfDAs
ayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihIKXtZPTB9ZWxzZXt0PWNbRSsxMj4+Ml18MDtp
ZigodHwwKT09KGNbRSsxNj4+Ml18MCkpe1o9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShF
KXwwfWVsc2V7Wj1jW3Q+PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUU7YnJlYWt9Y1tqPj4yXT0wO1k9
MH19d2hpbGUoMCk7aj0oWXwwKT09MDtkb3tpZihQKXtJPTgzOX1lbHNle0U9Y1tPKzEyPj4yXXww
O2lmKChFfDApPT0oY1tPKzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW08+PjJdfDApKzM2Pj4yXSYxMjdd
KE8pfDB9ZWxzZXtfPWNbRT4+Ml18MH1pZigoX3wwKT09LTEpe2NbZj4+Ml09MDtJPTgzOTticmVh
a31pZighKGpeKE98MCk9PTApKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1l
O3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEl8MCk9PTgzOSl7aWYoail7YnJlYWt9JD1ifDA7Y1sk
Pj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwy
OyQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGYxKGEsYixk
LGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zz1pO2k9aSs0MHwwO2g9Z3wwO2o9ZysxNnwwO2s9
ZyszMnwwO2VqKGssYik7Yj1rfDA7az1jW2I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2o+
PjJdPTE1Njg4O2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTY4OCxqLDk2KX1qPShjWzM5
MjNdfDApLTF8MDtsPWNbays4Pj4yXXwwO2Rve2lmKChjW2srMTI+PjJdfDApLWw+PjI+Pj4wPmo+
Pj4wKXttPWNbbCsoajw8Mik+PjJdfDA7aWYoKG18MCk9PTApe2JyZWFrfW49bTtvPWNbKGNbbT4+
Ml18MCkrNDg+PjJdfDA7Y2FbbyYxNV0obiw5NzQ0LDk3NzYsZCl8MDtuPWNbYj4+Ml18MDtpZigo
Y1szODI2XXwwKSE9LTEpe2NbaD4+Ml09MTUzMDQ7Y1toKzQ+PjJdPTEyO2NbaCs4Pj4yXT0wO2RX
KDE1MzA0LGgsOTYpfW89KGNbMzgyN118MCktMXwwO209Y1tuKzg+PjJdfDA7ZG97aWYoKGNbbisx
Mj4+Ml18MCktbT4+Mj4+PjA+bz4+PjApe3A9Y1ttKyhvPDwyKT4+Ml18MDtpZigocHwwKT09MCl7
YnJlYWt9cT1wO3I9cDtjW2U+PjJdPWIwW2NbKGNbcj4+Ml18MCkrMTI+PjJdJjEyN10ocSl8MDtj
W2Y+PjJdPWIwW2NbKGNbcj4+Ml18MCkrMTY+PjJdJjEyN10ocSl8MDtiWltjWyhjW3A+PjJdfDAp
KzIwPj4yXSYxMjddKGEscSk7cT1jW2I+PjJdfDA7ZHoocSl8MDtpPWc7cmV0dXJufX13aGlsZSgw
KTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7Zz1iTyg0KXwwO2tx
KGcpO2JsKGd8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZjIoYixlLGYsZyxoLGksaixrLGwsbSxuLG8p
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO209
bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9MCxzPTAsdD0wO2lmKChifDApPT0oaXwwKSl7
aWYoKGFbZV0mMSk9PTApe3A9LTE7cmV0dXJuIHB8MH1hW2VdPTA7aT1jW2g+PjJdfDA7Y1toPj4y
XT1pKzE7YVtpXT00NjtpPWRba118MDtpZigoaSYxfDApPT0wKXtxPWk+Pj4xfWVsc2V7cT1jW2sr
ND4+Ml18MH1pZigocXwwKT09MCl7cD0wO3JldHVybiBwfDB9cT1jW20+PjJdfDA7aWYoKHEtbHww
KT49MTYwKXtwPTA7cmV0dXJuIHB8MH1pPWNbbj4+Ml18MDtjW20+PjJdPXErNDtjW3E+PjJdPWk7
cD0wO3JldHVybiBwfDB9ZG97aWYoKGJ8MCk9PShqfDApKXtpPWRba118MDtpZigoaSYxfDApPT0w
KXtyPWk+Pj4xfWVsc2V7cj1jW2srND4+Ml18MH1pZigocnwwKT09MCl7YnJlYWt9aWYoKGFbZV0m
MSk9PTApe3A9LTE7cmV0dXJuIHB8MH1pPWNbbT4+Ml18MDtpZigoaS1sfDApPj0xNjApe3A9MDty
ZXR1cm4gcHwwfXE9Y1tuPj4yXXwwO2NbbT4+Ml09aSs0O2NbaT4+Ml09cTtjW24+PjJdPTA7cD0w
O3JldHVybiBwfDB9fXdoaWxlKDApO3I9bysxMjh8MDtqPW87d2hpbGUoMSl7aWYoKGp8MCk9PShy
fDApKXtzPXI7YnJlYWt9aWYoKGNbaj4+Ml18MCk9PShifDApKXtzPWo7YnJlYWt9ZWxzZXtqPWor
NHwwfX1qPXMtb3wwO289aj4+MjtpZigoanwwKT4xMjQpe3A9LTE7cmV0dXJuIHB8MH1zPWFbOTc0
NCtvfDBdfDA7TDExMTU6ZG97c3dpdGNoKG98MCl7Y2FzZSAyNTpjYXNlIDI0OntiPWNbaD4+Ml18
MDtkb3tpZigoYnwwKSE9KGd8MCkpe2lmKChhW2ItMXwwXSY5NXwwKT09KGFbZl0mMTI3fDApKXti
cmVha31lbHNle3A9LTF9cmV0dXJuIHB8MH19d2hpbGUoMCk7Y1toPj4yXT1iKzE7YVtiXT1zO3A9
MDtyZXR1cm4gcHwwfTtjYXNlIDIyOmNhc2UgMjM6e2FbZl09ODA7YnJlYWt9O2RlZmF1bHQ6e3I9
YVtmXXwwO2lmKChzJjk1fDApIT0ocjw8MjQ+PjI0fDApKXticmVhayBMMTExNX1hW2ZdPXJ8LTEy
ODtpZigoYVtlXSYxKT09MCl7YnJlYWsgTDExMTV9YVtlXT0wO3I9ZFtrXXwwO2lmKChyJjF8MCk9
PTApe3Q9cj4+PjF9ZWxzZXt0PWNbays0Pj4yXXwwfWlmKCh0fDApPT0wKXticmVhayBMMTExNX1y
PWNbbT4+Ml18MDtpZigoci1sfDApPj0xNjApe2JyZWFrIEwxMTE1fXE9Y1tuPj4yXXwwO2NbbT4+
Ml09cis0O2Nbcj4+Ml09cX19fXdoaWxlKDApO209Y1toPj4yXXwwO2NbaD4+Ml09bSsxO2FbbV09
cztpZigoanwwKT44NCl7cD0wO3JldHVybiBwfDB9Y1tuPj4yXT0oY1tuPj4yXXwwKSsxO3A9MDty
ZXR1cm4gcHwwfWZ1bmN0aW9uIGYzKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxX
PTAsWD0wLFk9MCxaPTAsXz0wLCQ9MDtlPWk7aT1pKzE3NnwwO209ZjtmPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+
Ml09Y1ttPj4yXTttPWUrMTI4fDA7bj1lKzEzNnwwO289ZSsxNDR8MDtwPWUrMTYwfDA7cT1wO3I9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1pO2k9
aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZjEobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1wO2RS
KHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7eT1w
Kzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15O2Nb
dT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9Y1ttPj4y
XXwwO209Y1tuPj4yXXwwO249ejt6PWNbaj4+Ml18MDtMMTE0Mzp3aGlsZSgxKXtkb3tpZigoenww
KT09MCl7RT0wfWVsc2V7Rj1jW3orMTI+PjJdfDA7aWYoKEZ8MCk9PShjW3orMTY+PjJdfDApKXtH
PWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1tGPj4yXXwwfWlmKChH
fDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7Rj1j
W2Y+PjJdfDA7ZG97aWYoKEZ8MCk9PTApe0k9OTI5fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYoKEp8
MCk9PShjW0YrMTY+PjJdfDApKXtLPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8MH1l
bHNle0s9Y1tKPj4yXXwwfWlmKChLfDApPT0tMSl7Y1tmPj4yXT0wO0k9OTI5O2JyZWFrfWVsc2V7
Sj0oRnwwKT09MDtpZihIXkope0w9RjtNPUo7YnJlYWt9ZWxzZXtOPW47Tz1GO1A9SjticmVhayBM
MTE0M319fX13aGlsZSgwKTtpZigoSXwwKT09OTI5KXtJPTA7aWYoSCl7Tj1uO089MDtQPTE7YnJl
YWt9ZWxzZXtMPTA7TT0xfX1GPWRbcV18MDtKPShGJjF8MCk9PTA7aWYoKChjW3I+PjJdfDApLW58
MCk9PSgoSj9GPj4+MTpjW0M+PjJdfDApfDApKXtpZihKKXtRPUY+Pj4xO1I9Rj4+PjF9ZWxzZXtG
PWNbQz4+Ml18MDtRPUY7Uj1GfWRSKHAsUTw8MSwwKTtpZigoYVtxXSYxKT09MCl7Uz0xMH1lbHNl
e1M9KGNbZz4+Ml0mLTIpLTF8MH1kUihwLFMsMCk7aWYoKGFbcV0mMSk9PTApe1Q9QX1lbHNle1Q9
Y1tCPj4yXXwwfWNbcj4+Ml09VCtSO1U9VH1lbHNle1U9bn1GPUUrMTJ8MDtKPWNbRj4+Ml18MDtW
PUUrMTZ8MDtpZigoSnwwKT09KGNbVj4+Ml18MCkpe1c9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0m
MTI3XShFKXwwfWVsc2V7Vz1jW0o+PjJdfDB9aWYoKGYyKFcsdix3LFUscixELG0sbyx5LHQsdSx4
KXwwKSE9MCl7Tj1VO089TDtQPU07YnJlYWt9Sj1jW0Y+PjJdfDA7aWYoKEp8MCk9PShjW1Y+PjJd
fDApKXtWPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbViYxMjddKEUpfDA7bj1VO3o9RTtjb250
aW51ZX1lbHNle2NbRj4+Ml09Sis0O249VTt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6JjF8
MCk9PTApe1g9ej4+PjF9ZWxzZXtYPWNbbys0Pj4yXXwwfWRve2lmKChYfDApIT0wKXtpZigoYVt2
XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVha31VPWNbdT4+
Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVV9fXdoaWxlKDApO2hbbD4+M109K2ZMKE4sY1tyPj4y
XXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoSCl7WT0wfWVsc2V7dD1jW0UrMTI+PjJd
fDA7aWYoKHR8MCk9PShjW0UrMTY+PjJdfDApKXtaPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEy
N10oRSl8MH1lbHNle1o9Y1t0Pj4yXXwwfWlmKChafDApIT0tMSl7WT1FO2JyZWFrfWNbaj4+Ml09
MDtZPTB9fXdoaWxlKDApO2o9KFl8MCk9PTA7ZG97aWYoUCl7ST05NzJ9ZWxzZXtFPWNbTysxMj4+
Ml18MDtpZigoRXwwKT09KGNbTysxNj4+Ml18MCkpe189YjBbY1soY1tPPj4yXXwwKSszNj4+Ml0m
MTI3XShPKXwwfWVsc2V7Xz1jW0U+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2Y+PjJdPTA7ST05NzI7
YnJlYWt9aWYoIShqXihPfDApPT0wKSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8p
O2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChJfDApPT05NzIpe2lmKGope2JyZWFrfSQ9Ynww
O2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+
Ml18MjskPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmNChi
LGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPWx8MDt2
YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9
MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0w
LE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTA7
ZT1pO2k9aSsxNzZ8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJd
O209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzEyOHwwO249
ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1lKzE2MHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztz
PWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXww
O2YxKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEpPT0w
KXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8
MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7
aj1mfDA7Zj1nfDA7Zz1wfDA7Qz1wKzR8MDtEPWNbbT4+Ml18MDttPWNbbj4+Ml18MDtuPXo7ej1j
W2o+PjJdfDA7TDEyMjg6d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle0Y9Y1t6KzEy
Pj4yXXwwO2lmKChGfDApPT0oY1t6KzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW3o+PjJdfDApKzM2Pj4y
XSYxMjddKHopfDB9ZWxzZXtHPWNbRj4+Ml18MH1pZigoR3wwKSE9LTEpe0U9ejticmVha31jW2o+
PjJdPTA7RT0wfX13aGlsZSgwKTtIPShFfDApPT0wO0Y9Y1tmPj4yXXwwO2Rve2lmKChGfDApPT0w
KXtJPTk5Nn1lbHNle0o9Y1tGKzEyPj4yXXwwO2lmKChKfDApPT0oY1tGKzE2Pj4yXXwwKSl7Sz1i
MFtjWyhjW0Y+PjJdfDApKzM2Pj4yXSYxMjddKEYpfDB9ZWxzZXtLPWNbSj4+Ml18MH1pZigoS3ww
KT09LTEpe2NbZj4+Ml09MDtJPTk5NjticmVha31lbHNle0o9KEZ8MCk9PTA7aWYoSF5KKXtMPUY7
TT1KO2JyZWFrfWVsc2V7Tj1uO089RjtQPUo7YnJlYWsgTDEyMjh9fX19d2hpbGUoMCk7aWYoKEl8
MCk9PTk5Nil7ST0wO2lmKEgpe049bjtPPTA7UD0xO2JyZWFrfWVsc2V7TD0wO009MX19Rj1kW3Fd
fDA7Sj0oRiYxfDApPT0wO2lmKCgoY1tyPj4yXXwwKS1ufDApPT0oKEo/Rj4+PjE6Y1tDPj4yXXww
KXwwKSl7aWYoSil7UT1GPj4+MTtSPUY+Pj4xfWVsc2V7Rj1jW0M+PjJdfDA7UT1GO1I9Rn1kUihw
LFE8PDEsMCk7aWYoKGFbcV0mMSk9PTApe1M9MTB9ZWxzZXtTPShjW2c+PjJdJi0yKS0xfDB9ZFIo
cCxTLDApO2lmKChhW3FdJjEpPT0wKXtUPUF9ZWxzZXtUPWNbQj4+Ml18MH1jW3I+PjJdPVQrUjtV
PVR9ZWxzZXtVPW59Rj1FKzEyfDA7Sj1jW0Y+PjJdfDA7Vj1FKzE2fDA7aWYoKEp8MCk9PShjW1Y+
PjJdfDApKXtXPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1lbHNle1c9Y1tKPj4y
XXwwfWlmKChmMihXLHYsdyxVLHIsRCxtLG8seSx0LHUseCl8MCkhPTApe049VTtPPUw7UD1NO2Jy
ZWFrfUo9Y1tGPj4yXXwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vj1jWyhjW0U+PjJdfDApKzQw
Pj4yXXwwO2IwW1YmMTI3XShFKXwwO249VTt6PUU7Y29udGludWV9ZWxzZXtjW0Y+PjJdPUorNDtu
PVU7ej1FO2NvbnRpbnVlfX16PWRbb118MDtpZigoeiYxfDApPT0wKXtYPXo+Pj4xfWVsc2V7WD1j
W28rND4+Ml18MH1kb3tpZigoWHwwKSE9MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0Pj4y
XXwwO2lmKCh6LXN8MCk+PTE2MCl7YnJlYWt9VT1jW3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6Pj4y
XT1VfX13aGlsZSgwKTtoW2w+PjNdPStmTihOLGNbcj4+Ml18MCxrKTtmdChvLHksY1t0Pj4yXXww
LGspO2Rve2lmKEgpe1k9MH1lbHNle3Q9Y1tFKzEyPj4yXXwwO2lmKCh0fDApPT0oY1tFKzE2Pj4y
XXwwKSl7Wj1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDB9ZWxzZXtaPWNbdD4+Ml18
MH1pZigoWnwwKSE9LTEpe1k9RTticmVha31jW2o+PjJdPTA7WT0wfX13aGlsZSgwKTtqPShZfDAp
PT0wO2Rve2lmKFApe0k9MTAzOX1lbHNle0U9Y1tPKzEyPj4yXXwwO2lmKChFfDApPT0oY1tPKzE2
Pj4yXXwwKSl7Xz1iMFtjWyhjW08+PjJdfDApKzM2Pj4yXSYxMjddKE8pfDB9ZWxzZXtfPWNbRT4+
Ml18MH1pZigoX3wwKT09LTEpe2NbZj4+Ml09MDtJPTEwMzk7YnJlYWt9aWYoIShqXihPfDApPT0w
KSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Rve2lmKChJfDApPT0xMDM5KXtpZihqKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAo
byk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7JD1ifDA7Y1skPj4yXT1Z
O2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZjUoYSl7YT1hfDA7ZGUoYXwwKTtrUyhh
KTtyZXR1cm59ZnVuY3Rpb24gZjYoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZjco
YixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7
dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09
MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTA7ZT1p
O2k9aSsxMzZ8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9
ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2fDA7
bj1lKzEyMHwwO289aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3A9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8
MztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztyPWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2skKG58MCwwLDEyKTt1PXA7ZWoobyxoKTto
PW98MDtvPWNbaD4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1tsKzQ+
PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO3Y9Y1tv
Kzg+PjJdfDA7ZG97aWYoKGNbbysxMj4+Ml18MCktdj4+Mj4+PjA+bD4+PjApe3c9Y1t2KyhsPDwy
KT4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9eD13O3k9bXwwO3o9Y1soY1t3Pj4yXXwwKSs0OD4+
Ml18MDtjYVt6JjE1XSh4LDk3NDQsOTc3MCx5KXwwO3g9Y1toPj4yXXwwO2R6KHgpfDA7ayQodXww
LDAsMTIpO3g9cDtkUihwLDEwLDApO2lmKChhW3VdJjEpPT0wKXt6PXgrMXwwO0E9ejtCPXo7Qz1w
Kzh8MH1lbHNle3o9cCs4fDA7QT1jW3o+PjJdfDA7Qj14KzF8MDtDPXp9Y1txPj4yXT1BO3o9cnww
O2Nbcz4+Ml09ejtjW3Q+PjJdPTA7eD1mfDA7dz1nfDA7RD1wfDA7RT1wKzR8MDtGPUE7Rz1jW3g+
PjJdfDA7TDEzMjM6d2hpbGUoMSl7ZG97aWYoKEd8MCk9PTApe0g9MH1lbHNle0k9Y1tHKzEyPj4y
XXwwO2lmKChJfDApPT0oY1tHKzE2Pj4yXXwwKSl7Sj1iMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYx
MjddKEcpfDB9ZWxzZXtKPWNbST4+Ml18MH1pZigoSnwwKSE9LTEpe0g9RzticmVha31jW3g+PjJd
PTA7SD0wfX13aGlsZSgwKTtJPShIfDApPT0wO0s9Y1t3Pj4yXXwwO2Rve2lmKChLfDApPT0wKXtM
PTEwNzN9ZWxzZXtNPWNbSysxMj4+Ml18MDtpZigoTXwwKT09KGNbSysxNj4+Ml18MCkpe049YjBb
Y1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShLKXwwfWVsc2V7Tj1jW00+PjJdfDB9aWYoKE58MCk9
PS0xKXtjW3c+PjJdPTA7TD0xMDczO2JyZWFrfWVsc2V7aWYoSV4oS3wwKT09MCl7YnJlYWt9ZWxz
ZXtPPUY7YnJlYWsgTDEzMjN9fX19d2hpbGUoMCk7aWYoKEx8MCk9PTEwNzMpe0w9MDtpZihJKXtP
PUY7YnJlYWt9fUs9ZFt1XXwwO009KEsmMXwwKT09MDtpZigoKGNbcT4+Ml18MCktRnwwKT09KChN
P0s+Pj4xOmNbRT4+Ml18MCl8MCkpe2lmKE0pe1A9Sz4+PjE7UT1LPj4+MX1lbHNle0s9Y1tFPj4y
XXwwO1A9SztRPUt9ZFIocCxQPDwxLDApO2lmKChhW3VdJjEpPT0wKXtSPTEwfWVsc2V7Uj0oY1tE
Pj4yXSYtMiktMXwwfWRSKHAsUiwwKTtpZigoYVt1XSYxKT09MCl7Uz1CfWVsc2V7Uz1jW0M+PjJd
fDB9Y1txPj4yXT1TK1E7VD1TfWVsc2V7VD1GfUs9SCsxMnwwO009Y1tLPj4yXXwwO1U9SCsxNnww
O2lmKChNfDApPT0oY1tVPj4yXXwwKSl7Vj1iMFtjWyhjW0g+PjJdfDApKzM2Pj4yXSYxMjddKEgp
fDB9ZWxzZXtWPWNbTT4+Ml18MH1pZigoZlUoViwxNixULHEsdCwwLG4seixzLHkpfDApIT0wKXtP
PVQ7YnJlYWt9TT1jW0s+PjJdfDA7aWYoKE18MCk9PShjW1U+PjJdfDApKXtVPWNbKGNbSD4+Ml18
MCkrNDA+PjJdfDA7YjBbVSYxMjddKEgpfDA7Rj1UO0c9SDtjb250aW51ZX1lbHNle2NbSz4+Ml09
TSs0O0Y9VDtHPUg7Y29udGludWV9fWFbTyszfDBdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTtHPWZSKE8sY1syOTU4XXwwLDEzMjAsKEY9aSxpPWkrOHwwLGNbRj4+Ml09ayxGKXwwKXwwO2k9
RjtpZigoR3wwKSE9MSl7Y1tqPj4yXT00fUc9Y1t4Pj4yXXwwO2Rve2lmKChHfDApPT0wKXtXPTB9
ZWxzZXtGPWNbRysxMj4+Ml18MDtpZigoRnwwKT09KGNbRysxNj4+Ml18MCkpe1g9YjBbY1soY1tH
Pj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwfWVsc2V7WD1jW0Y+PjJdfDB9aWYoKFh8MCkhPS0xKXtX
PUc7YnJlYWt9Y1t4Pj4yXT0wO1c9MH19d2hpbGUoMCk7eD0oV3wwKT09MDtHPWNbdz4+Ml18MDtk
b3tpZigoR3wwKT09MCl7TD0xMTE4fWVsc2V7Rj1jW0crMTI+PjJdfDA7aWYoKEZ8MCk9PShjW0cr
MTY+PjJdfDApKXtZPWIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MH1lbHNle1k9Y1tG
Pj4yXXwwfWlmKChZfDApPT0tMSl7Y1t3Pj4yXT0wO0w9MTExODticmVha31pZighKHheKEd8MCk9
PTApKXticmVha31aPWJ8MDtjW1o+PjJdPVc7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUo
MCk7ZG97aWYoKEx8MCk9PTExMTgpe2lmKHgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChwKTtk
UChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+PjJd
PVc7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2JsKGV8
MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZjgoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzgwfDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWR8MDtrPWQrOHwwO2w9ZCsyNHwwO209ZCs0OHwwO249
ZCs1NnwwO289ZCs2NHwwO3A9ZCs3MnwwO3E9anwwO2FbcV09YVsyMzg0XXwwO2FbcSsxfDBdPWFb
MjM4NXwwXXwwO2FbcSsyfDBdPWFbMjM4NnwwXXwwO2FbcSszfDBdPWFbMjM4N3wwXXwwO2FbcSs0
fDBdPWFbMjM4OHwwXXwwO2FbcSs1fDBdPWFbMjM4OXwwXXwwO3I9aisxfDA7cz1mKzR8MDt0PWNb
cz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PXJ9ZWxzZXthW3JdPTQzO3U9aisyfDB9aWYoKHQm
NTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7dT12KzF8MDtMMTQx
MDpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDY0OnthW3VdPTExMTticmVha307Y2FzZSA4OntpZigo
dCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDE0MTB9ZWxzZXthW3VdPTg4O2JyZWFrIEwx
NDEwfWJyZWFrfTtkZWZhdWx0OnthW3VdPTEwMH19fXdoaWxlKDApO3U9a3wwO2Rve2lmKChhWzE2
MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7dD1nYih1LDEyLGNbMjk1OF18MCxxLChxPWksaT1pKzh8MCxjW3E+PjJd
PWgscSl8MCl8MDtpPXE7cT1rK3R8MDtMMTQyMzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2Fz
ZSAzMjp7dz1xO2JyZWFrfTtjYXNlIDE2OntoPWFbdV18MDtzd2l0Y2goaDw8MjQ+PjI0KXtjYXNl
IDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsgTDE0MjM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgo
dHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTExNDc7YnJlYWsgTDE0MjN9c3dpdGNoKGFbaysxfDBd
fDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTExNDc7YnJlYWsgTDE0MjN9
fXc9aysyfDA7YnJlYWt9O2RlZmF1bHQ6e3g9MTE0N319fXdoaWxlKDApO2lmKCh4fDApPT0xMTQ3
KXt3PXV9eD1sfDA7ZWoobyxmKTtnYyh1LHcscSx4LG0sbixvKTtkeihjW28+PjJdfDApfDA7Y1tw
Pj4yXT1jW2U+PjJdO2Y5KGIscCx4LGNbbT4+Ml18MCxjW24+PjJdfDAsZixnKTtpPWQ7cmV0dXJu
fWZ1bmN0aW9uIGY5KGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2s9aTtpPWkr
MTZ8MDtsPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2w+PjJdO2w9a3wwO209
ZHwwO2Q9Y1ttPj4yXXwwO2lmKChkfDApPT0wKXtjW2I+PjJdPTA7aT1rO3JldHVybn1uPWc7Zz1l
O289bi1nfDA7cD1oKzEyfDA7aD1jW3A+PjJdfDA7cT0oaHwwKT4ob3wwKT9oLW98MDowO289Zjto
PW8tZ3wwO2Rve2lmKChofDApPjApe2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxl
LGgpfDApPT0oaHwwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13aGls
ZSgwKTtkb3tpZigocXwwKT4wKXtkXyhsLHEsaik7aWYoKGFbbF0mMSk9PTApe3I9bCsxfDB9ZWxz
ZXtyPWNbbCs4Pj4yXXwwfWlmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxyLHEpfDAp
PT0ocXwwKSl7ZFAobCk7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtkUChsKTtpPWs7cmV0dXJu
fX13aGlsZSgwKTtsPW4tb3wwO2Rve2lmKChsfDApPjApe2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4
Pj4yXSY2M10oZCxmLGwpfDApPT0obHwwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7
cmV0dXJufX13aGlsZSgwKTtjW3A+PjJdPTA7Y1tiPj4yXT1kO2k9aztyZXR1cm59ZnVuY3Rpb24g
Z2EoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTA7aj1pO2k9aSs0OHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNb
az4+Ml07az1qfDA7bD1qKzE2fDA7bT1qKzI0fDA7bj1qKzMyfDA7aWYoKGNbZis0Pj4yXSYxfDAp
PT0wKXtvPWNbKGNbZD4+Ml18MCkrMjQ+PjJdfDA7Y1tsPj4yXT1jW2U+PjJdO2I5W28mMzFdKGIs
ZCxsLGYsZyxoJjEpO2k9ajtyZXR1cm59ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1sz
ODI4XXwwKSE9LTEpe2Nbaz4+Ml09MTUzMTI7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1
MzEyLGssOTYpfWs9KGNbMzgyOV18MCktMXwwO2c9Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+
Ml18MCktZz4+Mj4+PjA+az4+PjApe2w9Y1tnKyhrPDwyKT4+Ml18MDtpZigobHwwKT09MCl7YnJl
YWt9ZD1sO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2w+PjJdfDA7aWYoaCl7YlpbY1tvKzI0Pj4y
XSYxMjddKG4sZCl9ZWxzZXtiWltjW28rMjg+PjJdJjEyN10obixkKX1kPW47bz1uO2w9YVtvXXww
O2lmKChsJjEpPT0wKXtwPWQrMXwwO3E9cDtyPXA7cz1uKzh8MH1lbHNle3A9bis4fDA7cT1jW3A+
PjJdfDA7cj1kKzF8MDtzPXB9cD1lfDA7ZD1uKzR8MDt0PXE7dT1sO3doaWxlKDEpe2lmKCh1JjEp
PT0wKXt2PXJ9ZWxzZXt2PWNbcz4+Ml18MH1sPXUmMjU1O2lmKCh0fDApPT0odisoKGwmMXwwKT09
MD9sPj4+MTpjW2Q+PjJdfDApfDApKXticmVha31sPWFbdF18MDt3PWNbcD4+Ml18MDtkb3tpZigo
d3wwKSE9MCl7eD13KzI0fDA7eT1jW3g+PjJdfDA7aWYoKHl8MCkhPShjW3crMjg+PjJdfDApKXtj
W3g+PjJdPXkrMTthW3ldPWw7YnJlYWt9aWYoKGJfW2NbKGNbdz4+Ml18MCkrNTI+PjJdJjMxXSh3
LGwmMjU1KXwwKSE9LTEpe2JyZWFrfWNbcD4+Ml09MH19d2hpbGUoMCk7dD10KzF8MDt1PWFbb118
MH1jW2I+PjJdPWNbcD4+Ml07ZFAobik7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2tx
KGopO2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ2IoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTA7Zz1pO2k9aSsxNnwwO2g9Z3wwO2o9aDtj
W2o+PjJdPWY7Y1tqKzQ+PjJdPTA7aj1iQihkfDApfDA7ZD1iQyhhfDAsYnwwLGV8MCxofDApfDA7
aWYoKGp8MCk9PTApe2k9ZztyZXR1cm4gZHwwfWJCKGp8MCl8MDtpPWc7cmV0dXJuIGR8MH1mdW5j
dGlvbiBnYyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8
MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9
MCxMPTA7bD1pO2k9aSs0OHwwO209bHwwO249bCsxNnwwO289bCszMnwwO3A9a3wwO2s9Y1twPj4y
XXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tuPj4yXT0xNTY5NjtjW24rND4+Ml09MTI7Y1tuKzg+
PjJdPTA7ZFcoMTU2OTYsbiw5Nil9bj0oY1szOTI1XXwwKS0xfDA7cT1jW2srOD4+Ml18MDtpZigo
Y1trKzEyPj4yXXwwKS1xPj4yPj4+MDw9bj4+PjApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7Ymwocnww
LDgxNzYsMTM0KX1rPWNbcSsobjw8Mik+PjJdfDA7aWYoKGt8MCk9PTApe3I9Yk8oNCl8MDtzPXI7
a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1yPWs7cz1jW3A+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0x
KXtjW20+PjJdPTE1MzEyO2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTMxMixtLDk2KX1t
PShjWzM4MjldfDApLTF8MDtwPWNbcys4Pj4yXXwwO2lmKChjW3MrMTI+PjJdfDApLXA+PjI+Pj4w
PD1tPj4+MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXM9Y1twKyhtPDwy
KT4+Ml18MDtpZigoc3wwKT09MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQp
fXQ9cztiWltjWyhjW3M+PjJdfDApKzIwPj4yXSYxMjddKG8sdCk7dT1vO209bztwPWRbbV18MDtp
ZigocCYxfDApPT0wKXt2PXA+Pj4xfWVsc2V7dj1jW28rND4+Ml18MH1kb3tpZigodnwwKT09MCl7
cD1jWyhjW2s+PjJdfDApKzMyPj4yXXwwO2NhW3AmMTVdKHIsYixmLGcpfDA7Y1tqPj4yXT1nKyhm
LWIpfWVsc2V7Y1tqPj4yXT1nO3A9YVtiXXwwO3N3aXRjaChwPDwyND4+MjQpe2Nhc2UgNDU6Y2Fz
ZSA0Mzp7bj1iX1tjWyhjW2s+PjJdfDApKzI4Pj4yXSYzMV0ocixwKXwwO3A9Y1tqPj4yXXwwO2Nb
aj4+Ml09cCsxO2FbcF09bjt3PWIrMXwwO2JyZWFrfTtkZWZhdWx0Ont3PWJ9fUwxNTMzOmRve2lm
KChmLXd8MCk+MSl7aWYoKGFbd118MCkhPTQ4KXt4PXc7YnJlYWt9bj13KzF8MDtzd2l0Y2goYVtu
XXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD13O2JyZWFrIEwxNTMzfX1w
PWs7cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ociw0OCl8MDt5PWNbaj4+Ml18MDtjW2o+
PjJdPXkrMTthW3ldPXE7cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW25dfDApfDA7
bj1jW2o+PjJdfDA7Y1tqPj4yXT1uKzE7YVtuXT1xO3g9dysyfDB9ZWxzZXt4PXd9fXdoaWxlKDAp
O2Rve2lmKCh4fDApIT0oZnwwKSl7cT1mLTF8MDtpZih4Pj4+MDxxPj4+MCl7ej14O0E9cX1lbHNl
e2JyZWFrfWRve3E9YVt6XXwwO2Fbel09YVtBXXwwO2FbQV09cTt6PXorMXwwO0E9QS0xfDA7fXdo
aWxlKHo+Pj4wPEE+Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjdd
KHQpfDA7aWYoeD4+PjA8Zj4+PjApe249dSsxfDA7cD1rO3k9bys0fDA7Qj1vKzh8MDtDPTA7RD0w
O0U9eDt3aGlsZSgxKXtGPShhW21dJjEpPT0wO2Rve2lmKChhWyhGP246Y1tCPj4yXXwwKStEfDBd
fDApPT0wKXtHPUQ7SD1DfWVsc2V7aWYoKEN8MCkhPShhWyhGP246Y1tCPj4yXXwwKStEfDBdfDAp
KXtHPUQ7SD1DO2JyZWFrfUk9Y1tqPj4yXXwwO2Nbaj4+Ml09SSsxO2FbSV09cTtJPWRbbV18MDtH
PShEPj4+MDwoKChJJjF8MCk9PTA/ST4+PjE6Y1t5Pj4yXXwwKS0xfDApPj4+MCkrRHwwO0g9MH19
d2hpbGUoMCk7Rj1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW0VdfDApfDA7ST1jW2o+
PjJdfDA7Y1tqPj4yXT1JKzE7YVtJXT1GO0Y9RSsxfDA7aWYoRj4+PjA8Zj4+PjApe0M9SCsxfDA7
RD1HO0U9Rn1lbHNle2JyZWFrfX19RT1nKyh4LWIpfDA7RD1jW2o+PjJdfDA7aWYoKEV8MCk9PShE
fDApKXticmVha31DPUQtMXwwO2lmKEU+Pj4wPEM+Pj4wKXtKPUU7Sz1DfWVsc2V7YnJlYWt9ZG97
Qz1hW0pdfDA7YVtKXT1hW0tdfDA7YVtLXT1DO0o9SisxfDA7Sz1LLTF8MDt9d2hpbGUoSj4+PjA8
Sz4+PjApfX13aGlsZSgwKTtpZigoZXwwKT09KGZ8MCkpe0w9Y1tqPj4yXXwwO2NbaD4+Ml09TDtk
UChvKTtpPWw7cmV0dXJufWVsc2V7TD1nKyhlLWIpfDA7Y1toPj4yXT1MO2RQKG8pO2k9bDtyZXR1
cm59fWZ1bmN0aW9uIGdkKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrMTEyfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCszMnwwO249ZCs4MHwwO289ZCs4
OHwwO3A9ZCs5NnwwO3E9ZCsxMDR8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3I9aztrPXIrMXww
O3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1rfWVsc2V7YVtrXT00Mzt1
PXIrMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4
O2FbdisxfDBdPTEwODt1PXYrMnwwO0wxNTc0OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2Fb
dV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBM
MTU3NH1lbHNle2FbdV09ODg7YnJlYWsgTDE1NzR9YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAwfX19
d2hpbGUoMCk7dT1sfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0w
KXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMjIsY1syOTU4
XXwwLHIsKHI9aSxpPWkrMTZ8MCxjW3I+PjJdPWgsY1tyKzg+PjJdPWoscil8MCl8MDtpPXI7cj1s
K3R8MDtMMTU4Nzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aj1hW3VdfDA7c3dp
dGNoKGo8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWwrMXwwO2JyZWFrIEwxNTg3O2JyZWFr
fTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZqPDwyND4+MjQ9PTQ4KSl7eD0xMjg2O2JyZWFrIEwx
NTg3fXN3aXRjaChhW2wrMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7
eD0xMjg2O2JyZWFrIEwxNTg3fX13PWwrMnwwO2JyZWFrfTtjYXNlIDMyOnt3PXI7YnJlYWt9O2Rl
ZmF1bHQ6e3g9MTI4Nn19fXdoaWxlKDApO2lmKCh4fDApPT0xMjg2KXt3PXV9eD1tfDA7ZWoocCxm
KTtnYyh1LHcscix4LG4sbyxwKTtkeihjW3A+PjJdfDApfDA7Y1txPj4yXT1jW2U+PjJdO2Y5KGIs
cSx4LGNbbj4+Ml18MCxjW28+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdlKGIsZCxl
LGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9
aSs4MHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7
az1kKzh8MDtsPWQrMjR8MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8MDtwPWQrNzJ8MDtxPWp8
MDthW3FdPWFbMjM4NF18MDthW3ErMXwwXT1hWzIzODV8MF18MDthW3ErMnwwXT1hWzIzODZ8MF18
MDthW3ErM3wwXT1hWzIzODd8MF18MDthW3ErNHwwXT1hWzIzODh8MF18MDthW3ErNXwwXT1hWzIz
ODl8MF18MDtyPWorMXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1y
fWVsc2V7YVtyXT00Mzt1PWorMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2
PXUrMXwwfWFbdl09MTA4O3U9disxfDA7TDE2MDU6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA2NDp7
YVt1XT0xMTE7YnJlYWt9O2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2JyZWFr
IEwxNjA1fWVsc2V7YVt1XT04ODticmVhayBMMTYwNX1icmVha307ZGVmYXVsdDp7YVt1XT0xMTd9
fX13aGlsZSgwKTt1PWt8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9
PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwxMixjWzI5
NThdfDAscSwocT1pLGk9aSs4fDAsY1txPj4yXT1oLHEpfDApfDA7aT1xO3E9ayt0fDA7TDE2MTg6
ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMzI6e3c9cTticmVha307Y2FzZSAxNjp7aD1h
W3VdfDA7c3dpdGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWsrMXwwO2JyZWFrIEwx
NjE4O2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7eD0xMzEx
O2JyZWFrIEwxNjE4fXN3aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307
ZGVmYXVsdDp7eD0xMzExO2JyZWFrIEwxNjE4fX13PWsrMnwwO2JyZWFrfTtkZWZhdWx0Ont4PTEz
MTF9fX13aGlsZSgwKTtpZigoeHwwKT09MTMxMSl7dz11fXg9bHwwO2VqKG8sZik7Z2ModSx3LHEs
eCxtLG4sbyk7ZHooY1tvPj4yXXwwKXwwO2NbcD4+Ml09Y1tlPj4yXTtmOShiLHAseCxjW20+PjJd
fDAsY1tuPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlvbiBnZihiLGQsZSxmLGcsaCxqKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzExMnww
O2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1kKzh8
MDttPWQrMzJ8MDtuPWQrODB8MDtvPWQrODh8MDtwPWQrOTZ8MDtxPWQrMTA0fDA7Y1trPj4yXT0z
NztjW2srND4+Ml09MDtyPWs7az1yKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8
MCk9PTApe3U9a31lbHNle2Fba109NDM7dT1yKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNl
e2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODthW3YrMXwwXT0xMDg7dT12KzJ8MDtMMTYzNjpkb3tz
d2l0Y2godCY3NHwwKXtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBM
MTYzNn1lbHNle2FbdV09ODg7YnJlYWsgTDE2MzZ9YnJlYWt9O2Nhc2UgNjQ6e2FbdV09MTExO2Jy
ZWFrfTtkZWZhdWx0OnthW3VdPTExN319fXdoaWxlKDApO3U9bHwwO2Rve2lmKChhWzE2MjY0XXww
KT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19
d2hpbGUoMCk7dD1nYih1LDIzLGNbMjk1OF18MCxyLChyPWksaT1pKzE2fDAsY1tyPj4yXT1oLGNb
cis4Pj4yXT1qLHIpfDApfDA7aT1yO3I9bCt0fDA7TDE2NDk6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2
fDApe2Nhc2UgMTY6e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7
dz1sKzF8MDticmVhayBMMTY0OTticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmajw8MjQ+
PjI0PT00OCkpe3g9MTMzNjticmVhayBMMTY0OX1zd2l0Y2goYVtsKzF8MF18MCl7Y2FzZSAxMjA6
Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTMzNjticmVhayBMMTY0OX19dz1sKzJ8MDticmVh
a307Y2FzZSAzMjp7dz1yO2JyZWFrfTtkZWZhdWx0Ont4PTEzMzZ9fX13aGlsZSgwKTtpZigoeHww
KT09MTMzNil7dz11fXg9bXwwO2VqKHAsZik7Z2ModSx3LHIseCxuLG8scCk7ZHooY1twPj4yXXww
KXwwO2NbcT4+Ml09Y1tlPj4yXTtmOShiLHEseCxjW24+PjJdfDAsY1tvPj4yXXwwLGYsZyk7aT1k
O3JldHVybn1mdW5jdGlvbiBnZyhiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aj0rajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0w
LEo9MDtkPWk7aT1pKzE1MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNb
az4+Ml07az1kfDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMTEyfDA7cD1kKzEyMHww
O3E9ZCsxMjh8MDtyPWQrMTM2fDA7cz1kKzE0NHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1r
O2s9dCsxfDA7dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXth
W2tdPTQzO3c9dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXww
fXc9diYyNjA7az12Pj4+MTQ7TDE2Njc6ZG97aWYoKHd8MCk9PTI2MCl7aWYoKGsmMXwwKT09MCl7
YVt4XT05Nzt5PTA7YnJlYWt9ZWxzZXthW3hdPTY1O3k9MDticmVha319ZWxzZXthW3hdPTQ2O3Y9
eCsyfDA7YVt4KzF8MF09NDI7c3dpdGNoKHd8MCl7Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3Zd
PTEwMjt5PTE7YnJlYWsgTDE2Njd9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMTY2N31icmVha307
Y2FzZSAyNTY6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAxO3k9MTticmVhayBMMTY2N31lbHNle2Fb
dl09Njk7eT0xO2JyZWFrIEwxNjY3fWJyZWFrfTtkZWZhdWx0OntpZigoayYxfDApPT0wKXthW3Zd
PTEwMzt5PTE7YnJlYWsgTDE2Njd9ZWxzZXthW3ZdPTcxO3k9MTticmVhayBMMTY2N319fX19d2hp
bGUoMCk7az1sfDA7Y1ttPj4yXT1rO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0
KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1jWzI5NThd
fDA7aWYoeSl7dz1nYihrLDMwLGwsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhb
eis4Pj4zXT1qLHopfDApfDA7aT16O0E9d31lbHNle3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrOHww
LGhbej4+M109aix6KXwwKXwwO2k9ejtBPXd9ZG97aWYoKEF8MCk+Mjkpe3c9KGFbMTYyNjRdfDAp
PT0wO2lmKHkpe2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMo
MSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSsxNnwwLGNb
ej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9bH1lbHNle2Rve2lmKHcp
e2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxl
KDApO3c9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhb
eis4Pj4zXT1qLHopfDApfDA7aT16O0I9d313PWNbbT4+Ml18MDtpZigod3wwKSE9MCl7Qz1CO0Q9
dztFPXc7YnJlYWt9a1goKTt3PWNbbT4+Ml18MDtDPUI7RD13O0U9d31lbHNle0M9QTtEPTA7RT1j
W20+PjJdfDB9fXdoaWxlKDApO0E9RStDfDA7TDE3MTY6ZG97c3dpdGNoKGNbdT4+Ml0mMTc2fDAp
e2Nhc2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7Rj1F
KzF8MDticmVhayBMMTcxNjticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEmQjw8MjQ+PjI0
PT00OCkpe0c9MTM5MjticmVhayBMMTcxNn1zd2l0Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6Y2Fz
ZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MTM5MjticmVhayBMMTcxNn19Rj1FKzJ8MDticmVha307
Y2FzZSAzMjp7Rj1BO2JyZWFrfTtkZWZhdWx0OntHPTEzOTJ9fX13aGlsZSgwKTtpZigoR3wwKT09
MTM5Mil7Rj1FfWRve2lmKChFfDApPT0oa3wwKSl7SD1ufDA7ST0wO0o9a31lbHNle0c9a0ooQzw8
MSl8MDtpZigoR3wwKSE9MCl7SD1HO0k9RztKPUU7YnJlYWt9a1goKTtIPTA7ST0wO0o9Y1ttPj4y
XXwwfX13aGlsZSgwKTtlaihxLGYpO2dqKEosRixBLEgsbyxwLHEpO2R6KGNbcT4+Ml18MCl8MDtx
PWV8MDtjW3M+PjJdPWNbcT4+Ml07ZjkocixzLEgsY1tvPj4yXXwwLGNbcD4+Ml18MCxmLGcpO2c9
Y1tyPj4yXXwwO2NbcT4+Ml09ZztjW2I+PjJdPWc7aWYoKEl8MCkhPTApe2tLKEkpfWlmKChEfDAp
PT0wKXtpPWQ7cmV0dXJufWtLKEQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2goYSxiLGQsZSl7YT1h
fDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2Y9aTtpPWkrMTZ8MDtnPWZ8MDto
PWc7Y1toPj4yXT1lO2NbaCs0Pj4yXT0wO2g9YkIoYnwwKXwwO2I9YlEoYXwwLGR8MCxnfDApfDA7
aWYoKGh8MCk9PTApe2k9ZjtyZXR1cm4gYnwwfWJCKGh8MCl8MDtpPWY7cmV0dXJuIGJ8MH1mdW5j
dGlvbiBnaShiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj0rajt2
YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtkPWk7aT1p
KzE1MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7
bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMTEyfDA7cD1kKzEyMHwwO3E9ZCsxMjh8MDty
PWQrMTM2fDA7cz1kKzE0NHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1rO2s9dCsxfDA7dT1m
KzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXthW2tdPTQzO3c9dCsy
fDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXwwfXc9diYyNjA7az12
Pj4+MTQ7TDE3NTQ6ZG97aWYoKHd8MCk9PTI2MCl7YVt4XT03Njt2PXgrMXwwO2lmKChrJjF8MCk9
PTApe2Fbdl09OTc7eT0wO2JyZWFrfWVsc2V7YVt2XT02NTt5PTA7YnJlYWt9fWVsc2V7YVt4XT00
NjthW3grMXwwXT00MjthW3grMnwwXT03Njt2PXgrM3wwO3N3aXRjaCh3fDApe2Nhc2UgNDp7aWYo
KGsmMXwwKT09MCl7YVt2XT0xMDI7eT0xO2JyZWFrIEwxNzU0fWVsc2V7YVt2XT03MDt5PTE7YnJl
YWsgTDE3NTR9YnJlYWt9O2Nhc2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJl
YWsgTDE3NTR9ZWxzZXthW3ZdPTY5O3k9MTticmVhayBMMTc1NH1icmVha307ZGVmYXVsdDp7aWYo
KGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwxNzU0fWVsc2V7YVt2XT03MTt5PTE7YnJl
YWsgTDE3NTR9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsxNjI2NF18MCk9
PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrMTZ8MCxjW3o+
PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3PWdiKGssMzAs
bCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lmKChBfDApPjI5
KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXti
cmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1syOTU4XXwwLHQs
KHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtC
PWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEs
MTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrOHwwLGhbej4+
M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTApe0M9QjtEPXc7RT13
O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7RD0wO0U9Y1ttPj4y
XXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wxODAzOmRve3N3aXRjaChjW3U+PjJdJjE3NnwwKXtjYXNl
IDMyOntGPUE7YnJlYWt9O2Nhc2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2Ug
NDU6Y2FzZSA0Mzp7Rj1FKzF8MDticmVhayBMMTgwMzticmVha307ZGVmYXVsdDp7fX1pZighKChD
fDApPjEmQjw8MjQ+PjI0PT00OCkpe0c9MTQ3NzticmVhayBMMTgwM31zd2l0Y2goYVtFKzF8MF18
MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MTQ3NzticmVhayBMMTgwM319
Rj1FKzJ8MDticmVha307ZGVmYXVsdDp7Rz0xNDc3fX19d2hpbGUoMCk7aWYoKEd8MCk9PTE0Nzcp
e0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtHPWtKKEM8PDEpfDA7
aWYoKEd8MCkhPTApe0g9RztJPUc7Sj1FO2JyZWFrfWtYKCk7SD0wO0k9MDtKPWNbbT4+Ml18MH19
d2hpbGUoMCk7ZWoocSxmKTtnaihKLEYsQSxILG8scCxxKTtkeihjW3E+PjJdfDApfDA7cT1lfDA7
Y1tzPj4yXT1jW3E+PjJdO2Y5KHIscyxILGNbbz4+Ml18MCxjW3A+PjJdfDAsZixnKTtnPWNbcj4+
Ml18MDtjW3E+PjJdPWc7Y1tiPj4yXT1nO2lmKChJfDApIT0wKXtrSyhJKX1pZigoRHwwKT09MCl7
aT1kO3JldHVybn1rSyhEKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdqKGIsZSxmLGcsaCxqLGspe2I9
YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wO2w9aTtpPWkrNDh8
MDttPWx8MDtuPWwrMTZ8MDtvPWwrMzJ8MDtwPWt8MDtrPWNbcD4+Ml18MDtpZigoY1szOTI0XXww
KSE9LTEpe2Nbbj4+Ml09MTU2OTY7Y1tuKzQ+PjJdPTEyO2Nbbis4Pj4yXT0wO2RXKDE1Njk2LG4s
OTYpfW49KGNbMzkyNV18MCktMXwwO3E9Y1trKzg+PjJdfDA7aWYoKGNbaysxMj4+Ml18MCktcT4+
Mj4+PjA8PW4+Pj4wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9az1jW3Er
KG48PDIpPj4yXXwwO2lmKChrfDApPT0wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2
LDEzNCl9cj1rO3M9Y1twPj4yXXwwO2lmKChjWzM4MjhdfDApIT0tMSl7Y1ttPj4yXT0xNTMxMjtj
W20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTUzMTIsbSw5Nil9bT0oY1szODI5XXwwKS0xfDA7
cD1jW3MrOD4+Ml18MDtpZigoY1tzKzEyPj4yXXwwKS1wPj4yPj4+MDw9bT4+PjApe3Q9Yk8oNCl8
MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX1zPWNbcCsobTw8Mik+PjJdfDA7aWYoKHN8MCk9
PTApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX10PXM7YlpbY1soY1tzPj4y
XXwwKSsyMD4+Ml0mMTI3XShvLHQpO2Nbaj4+Ml09Zzt1PWFbYl18MDtzd2l0Y2godTw8MjQ+PjI0
KXtjYXNlIDQ1OmNhc2UgNDM6e209Yl9bY1soY1trPj4yXXwwKSsyOD4+Ml0mMzFdKHIsdSl8MDt1
PWNbaj4+Ml18MDtjW2o+PjJdPXUrMTthW3VdPW07dj1iKzF8MDticmVha307ZGVmYXVsdDp7dj1i
fX1tPWY7TDE4NTE6ZG97aWYoKG0tdnwwKT4xKXtpZigoYVt2XXwwKSE9NDgpe3c9djt4PTE1MzI7
YnJlYWt9dT12KzF8MDtzd2l0Y2goYVt1XXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVm
YXVsdDp7dz12O3g9MTUzMjticmVhayBMMTg1MX19cD1rO249Yl9bY1soY1twPj4yXXwwKSsyOD4+
Ml0mMzFdKHIsNDgpfDA7cT1jW2o+PjJdfDA7Y1tqPj4yXT1xKzE7YVtxXT1uO249disyfDA7cT1i
X1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW3VdfDApfDA7dT1jW2o+PjJdfDA7Y1tqPj4y
XT11KzE7YVt1XT1xO3E9bjt3aGlsZSgxKXtpZihxPj4+MD49Zj4+PjApe3k9cTt6PW47YnJlYWsg
TDE4NTF9dT1hW3FdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0w
KXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoYTModTw8MjQ+PjI0
fDAsY1syOTU4XXwwKXwwKT09MCl7eT1xO3o9bjticmVha31lbHNle3E9cSsxfDB9fX1lbHNle3c9
djt4PTE1MzJ9fXdoaWxlKDApO0wxODY2OmRve2lmKCh4fDApPT0xNTMyKXt3aGlsZSgxKXt4PTA7
aWYodz4+PjA+PWY+Pj4wKXt5PXc7ej12O2JyZWFrIEwxODY2fXE9YVt3XXwwO2Rve2lmKChhWzE2
MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7aWYoKGJIKHE8PDI0Pj4yNHwwLGNbMjk1OF18MCl8MCk9PTApe3k9dzt6
PXY7YnJlYWt9ZWxzZXt3PXcrMXwwO3g9MTUzMn19fX13aGlsZSgwKTt4PW87dz1vO3Y9ZFt3XXww
O2lmKCh2JjF8MCk9PTApe0E9dj4+PjF9ZWxzZXtBPWNbbys0Pj4yXXwwfWRve2lmKChBfDApPT0w
KXt2PWNbaj4+Ml18MDt1PWNbKGNbaz4+Ml18MCkrMzI+PjJdfDA7Y2FbdSYxNV0ocix6LHksdil8
MDtjW2o+PjJdPShjW2o+PjJdfDApKyh5LXopfWVsc2V7ZG97aWYoKHp8MCkhPSh5fDApKXt2PXkt
MXwwO2lmKHo+Pj4wPHY+Pj4wKXtCPXo7Qz12fWVsc2V7YnJlYWt9ZG97dj1hW0JdfDA7YVtCXT1h
W0NdfDA7YVtDXT12O0I9QisxfDA7Qz1DLTF8MDt9d2hpbGUoQj4+PjA8Qz4+PjApfX13aGlsZSgw
KTtxPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10odCl8MDtpZih6Pj4+MDx5Pj4+MCl7dj14
KzF8MDt1PW8rNHwwO249bys4fDA7cD1rO0Q9MDtFPTA7Rj16O3doaWxlKDEpe0c9KGFbd10mMSk9
PTA7ZG97aWYoKGFbKEc/djpjW24+PjJdfDApK0V8MF18MCk+MCl7aWYoKER8MCkhPShhWyhHP3Y6
Y1tuPj4yXXwwKStFfDBdfDApKXtIPUU7ST1EO2JyZWFrfUo9Y1tqPj4yXXwwO2Nbaj4+Ml09Sisx
O2FbSl09cTtKPWRbd118MDtIPShFPj4+MDwoKChKJjF8MCk9PTA/Sj4+PjE6Y1t1Pj4yXXwwKS0x
fDApPj4+MCkrRXwwO0k9MH1lbHNle0g9RTtJPUR9fXdoaWxlKDApO0c9Yl9bY1soY1twPj4yXXww
KSsyOD4+Ml0mMzFdKHIsYVtGXXwwKXwwO0o9Y1tqPj4yXXwwO2Nbaj4+Ml09SisxO2FbSl09RztH
PUYrMXwwO2lmKEc+Pj4wPHk+Pj4wKXtEPUkrMXwwO0U9SDtGPUd9ZWxzZXticmVha319fUY9Zyso
ei1iKXwwO0U9Y1tqPj4yXXwwO2lmKChGfDApPT0oRXwwKSl7YnJlYWt9RD1FLTF8MDtpZihGPj4+
MDxEPj4+MCl7Sz1GO0w9RH1lbHNle2JyZWFrfWRve0Q9YVtLXXwwO2FbS109YVtMXXwwO2FbTF09
RDtLPUsrMXwwO0w9TC0xfDA7fXdoaWxlKEs+Pj4wPEw+Pj4wKX19d2hpbGUoMCk7TDE5MDU6ZG97
aWYoeT4+PjA8Zj4+PjApe0w9aztLPXk7d2hpbGUoMSl7ej1hW0tdfDA7aWYoejw8MjQ+PjI0PT00
Nil7YnJlYWt9SD1iX1tjWyhjW0w+PjJdfDApKzI4Pj4yXSYzMV0ocix6KXwwO3o9Y1tqPj4yXXww
O2Nbaj4+Ml09eisxO2Fbel09SDtIPUsrMXwwO2lmKEg+Pj4wPGY+Pj4wKXtLPUh9ZWxzZXtNPUg7
YnJlYWsgTDE5MDV9fUw9YjBbY1soY1tzPj4yXXwwKSsxMj4+Ml0mMTI3XSh0KXwwO0g9Y1tqPj4y
XXwwO2Nbaj4+Ml09SCsxO2FbSF09TDtNPUsrMXwwfWVsc2V7TT15fX13aGlsZSgwKTtjYVtjWyhj
W2s+PjJdfDApKzMyPj4yXSYxNV0ocixNLGYsY1tqPj4yXXwwKXwwO3I9KGNbaj4+Ml18MCkrKG0t
TSl8MDtjW2o+PjJdPXI7aWYoKGV8MCk9PShmfDApKXtOPXI7Y1toPj4yXT1OO2RQKG8pO2k9bDty
ZXR1cm59Tj1nKyhlLWIpfDA7Y1toPj4yXT1OO2RQKG8pO2k9bDtyZXR1cm59ZnVuY3Rpb24gZ2so
YSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZ2woYSl7YT1hfDA7ZGUoYXww
KTtyZXR1cm59ZnVuY3Rpb24gZ20oYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzE0NHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8MDttPWQrMTEyfDA7bj1k
KzEyMHwwO289ZCsxMjh8MDtwPWQrMTM2fDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8MF09
YVsyMzg1fDBdfDA7YVtxKzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7YVtx
KzR8MF09YVsyMzg4fDBdfDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHwwO3Q9
Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1pZigo
dCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXwwO0wx
OTI4OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lm
KCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBMMTkyOH1lbHNle2FbdV09ODg7YnJlYWsg
TDE5Mjh9YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAwfX19d2hpbGUoMCk7dT1rfDA7ZG97aWYoKGFb
MTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0
NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNbcT4+
Ml09aCxxKXwwKXwwO2k9cTtxPWsrdHwwO0wxOTQxOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtj
YXNlIDMyOnt3PXE7YnJlYWt9O2Nhc2UgMTY6e2g9YVt1XXwwO3N3aXRjaChoPDwyND4+MjQpe2Nh
c2UgNDU6Y2FzZSA0Mzp7dz1rKzF8MDticmVhayBMMTk0MTticmVha307ZGVmYXVsdDp7fX1pZigh
KCh0fDApPjEmaDw8MjQ+PjI0PT00OCkpe3g9MTYwMDticmVhayBMMTk0MX1zd2l0Y2goYVtrKzF8
MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTYwMDticmVhayBMMTk0
MX19dz1rKzJ8MDticmVha307ZGVmYXVsdDp7eD0xNjAwfX19d2hpbGUoMCk7aWYoKHh8MCk9PTE2
MDApe3c9dX14PWx8MDtlaihvLGYpO2dwKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8MDtj
W3A+PjJdPWNbZT4+Ml07Z3EoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDtyZXR1
cm59ZnVuY3Rpb24gZ24oYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtkPWk7aT1pKzEwNHwwO2o9ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzI0fDA7bD1kKzQ4fDA7bT1kKzg4
fDA7bj1kKzk2fDA7bz1kKzE2fDA7YVtvXT1hWzIzOTJdfDA7YVtvKzF8MF09YVsyMzkzfDBdfDA7
YVtvKzJ8MF09YVsyMzk0fDBdfDA7YVtvKzN8MF09YVsyMzk1fDBdfDA7YVtvKzR8MF09YVsyMzk2
fDBdfDA7YVtvKzV8MF09YVsyMzk3fDBdfDA7cD1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTtxPWdiKHAsMjAsY1syOTU4XXwwLG8sKG89aSxpPWkrOHwwLGNbbz4+Ml09aCxvKXwwKXwwO2k9
bztvPWsrcXwwO0wxOTU4OmRve3N3aXRjaChjW2YrND4+Ml0mMTc2fDApe2Nhc2UgMTY6e2g9YVtw
XXwwO3N3aXRjaChoPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7cj1rKzF8MDticmVhayBMMTk1
ODticmVha307ZGVmYXVsdDp7fX1pZighKChxfDApPjEmaDw8MjQ+PjI0PT00OCkpe3M9MTYxNTti
cmVhayBMMTk1OH1zd2l0Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2Rl
ZmF1bHQ6e3M9MTYxNTticmVhayBMMTk1OH19cj1rKzJ8MDticmVha307Y2FzZSAzMjp7cj1vO2Jy
ZWFrfTtkZWZhdWx0OntzPTE2MTV9fX13aGlsZSgwKTtpZigoc3wwKT09MTYxNSl7cj1wfWVqKG0s
Zik7cz1tfDA7bT1jW3M+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2o+PjJdPTE1Njk2O2Nb
ais0Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTY5NixqLDk2KX1qPShjWzM5MjVdfDApLTF8MDto
PWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLWg+PjI+Pj4wPmo+Pj4wKXt0PWNbaCso
ajw8Mik+PjJdfDA7aWYoKHR8MCk9PTApe2JyZWFrfXU9dDt2PWNbcz4+Ml18MDtkeih2KXwwO3Y9
bHwwO3c9Y1soY1t0Pj4yXXwwKSszMj4+Ml18MDtjYVt3JjE1XSh1LHAsbyx2KXwwO3U9bCtxfDA7
aWYoKHJ8MCk9PShvfDApKXt4PXU7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16O2Y5
KGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59eD1sKyhyLWspfDA7eT1lfDA7ej1jW3k+PjJdfDA7
QT1ufDA7Y1tBPj4yXT16O2Y5KGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9
Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdvKGIsZCxlLGYsZyxoKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MDtqPWk7aT1p
KzQ4fDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDts
PWorMTZ8MDttPWorMjR8MDtuPWorMzJ8MDtpZigoY1tmKzQ+PjJdJjF8MCk9PTApe289Y1soY1tk
Pj4yXXwwKSsyND4+Ml18MDtjW2w+PjJdPWNbZT4+Ml07YjlbbyYzMV0oYixkLGwsZixnLGgmMSk7
aT1qO3JldHVybn1laihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM4MjZdfDApIT0tMSl7
Y1trPj4yXT0xNTMwNDtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTUzMDQsayw5Nil9az0o
Y1szODI3XXwwKS0xfDA7Zz1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1nPj4yPj4+
MD5rPj4+MCl7bD1jW2crKGs8PDIpPj4yXXwwO2lmKChsfDApPT0wKXticmVha31kPWw7bz1jW2Y+
PjJdfDA7ZHoobyl8MDtvPWNbbD4+Ml18MDtpZihoKXtiWltjW28rMjQ+PjJdJjEyN10obixkKX1l
bHNle2JaW2NbbysyOD4+Ml0mMTI3XShuLGQpfWQ9bjtvPWFbZF18MDtpZigobyYxKT09MCl7bD1u
KzR8MDtwPWw7cT1sO3I9bis4fDB9ZWxzZXtsPW4rOHwwO3A9Y1tsPj4yXXwwO3E9bis0fDA7cj1s
fWw9ZXwwO3M9cDt0PW87d2hpbGUoMSl7aWYoKHQmMSk9PTApe3U9cX1lbHNle3U9Y1tyPj4yXXww
fW89dCYyNTU7aWYoKG8mMXwwKT09MCl7dj1vPj4+MX1lbHNle3Y9Y1txPj4yXXwwfWlmKChzfDAp
PT0odSsodjw8Mil8MCkpe2JyZWFrfW89Y1tzPj4yXXwwO3c9Y1tsPj4yXXwwO2Rve2lmKCh3fDAp
IT0wKXt4PXcrMjR8MDt5PWNbeD4+Ml18MDtpZigoeXwwKT09KGNbdysyOD4+Ml18MCkpe3o9Yl9b
Y1soY1t3Pj4yXXwwKSs1Mj4+Ml0mMzFdKHcsbyl8MH1lbHNle2NbeD4+Ml09eSs0O2NbeT4+Ml09
bzt6PW99aWYoKHp8MCkhPS0xKXticmVha31jW2w+PjJdPTB9fXdoaWxlKDApO3M9cys0fDA7dD1h
W2RdfDB9Y1tiPj4yXT1jW2w+PjJdO2VlKG4pO2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8oNCl8
MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdwKGIsZSxmLGcsaCxqLGspe2I9Ynww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxE
PTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MDtsPWk7aT1pKzQ4fDA7bT1sfDA7bj1s
KzE2fDA7bz1sKzMyfDA7cD1rfDA7az1jW3A+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW24+
PjJdPTE1Njg4O2Nbbis0Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTY4OCxuLDk2KX1uPShjWzM5
MjNdfDApLTF8MDtxPWNbays4Pj4yXXwwO2lmKChjW2srMTI+PjJdfDApLXE+PjI+Pj4wPD1uPj4+
MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+Ml18
MDtpZigoa3wwKT09MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfXI9aztz
PWNbcD4+Ml18MDtpZigoY1szODI2XXwwKSE9LTEpe2NbbT4+Ml09MTUzMDQ7Y1ttKzQ+PjJdPTEy
O2NbbSs4Pj4yXT0wO2RXKDE1MzA0LG0sOTYpfW09KGNbMzgyN118MCktMXwwO3A9Y1tzKzg+PjJd
fDA7aWYoKGNbcysxMj4+Ml18MCktcD4+Mj4+PjA8PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2txKHUp
O2JsKHR8MCw4MTc2LDEzNCl9cz1jW3ArKG08PDIpPj4yXXwwO2lmKChzfDApPT0wKXt0PWJPKDQp
fDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+PjJd
JjEyN10obyx0KTt1PW87bT1vO3A9ZFttXXwwO2lmKChwJjF8MCk9PTApe3Y9cD4+PjF9ZWxzZXt2
PWNbbys0Pj4yXXwwfWRve2lmKCh2fDApPT0wKXtwPWNbKGNbaz4+Ml18MCkrNDg+PjJdfDA7Y2Fb
cCYxNV0ocixiLGYsZyl8MDtjW2o+PjJdPWcrKGYtYjw8Mil9ZWxzZXtjW2o+PjJdPWc7cD1hW2Jd
fDA7c3dpdGNoKHA8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntuPWJfW2NbKGNbaz4+Ml18MCkr
NDQ+PjJdJjMxXShyLHApfDA7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzQ7Y1twPj4yXT1uO3c9Yisx
fDA7YnJlYWt9O2RlZmF1bHQ6e3c9Yn19TDIwNTA6ZG97aWYoKGYtd3wwKT4xKXtpZigoYVt3XXww
KSE9NDgpe3g9dzticmVha31uPXcrMXwwO3N3aXRjaChhW25dfDApe2Nhc2UgMTIwOmNhc2UgODg6
e2JyZWFrfTtkZWZhdWx0Ont4PXc7YnJlYWsgTDIwNTB9fXA9aztxPWJfW2NbKGNbcD4+Ml18MCkr
NDQ+PjJdJjMxXShyLDQ4KXwwO3k9Y1tqPj4yXXwwO2Nbaj4+Ml09eSs0O2NbeT4+Ml09cTtxPWJf
W2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLGFbbl18MCl8MDtuPWNbaj4+Ml18MDtjW2o+PjJd
PW4rNDtjW24+PjJdPXE7eD13KzJ8MH1lbHNle3g9d319d2hpbGUoMCk7ZG97aWYoKHh8MCkhPShm
fDApKXtxPWYtMXwwO2lmKHg+Pj4wPHE+Pj4wKXt6PXg7QT1xfWVsc2V7YnJlYWt9ZG97cT1hW3pd
fDA7YVt6XT1hW0FdfDA7YVtBXT1xO3o9eisxfDA7QT1BLTF8MDt9d2hpbGUoej4+PjA8QT4+PjAp
fX13aGlsZSgwKTtxPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10odCl8MDtpZih4Pj4+MDxm
Pj4+MCl7bj11KzF8MDtwPWs7eT1vKzR8MDtCPW8rOHwwO0M9MDtEPTA7RT14O3doaWxlKDEpe0Y9
KGFbbV0mMSk9PTA7ZG97aWYoKGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCk9PTApe0c9RDtIPUN9
ZWxzZXtpZigoQ3wwKSE9KGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCkpe0c9RDtIPUM7YnJlYWt9
ST1jW2o+PjJdfDA7Y1tqPj4yXT1JKzQ7Y1tJPj4yXT1xO0k9ZFttXXwwO0c9KEQ+Pj4wPCgoKEkm
MXwwKT09MD9JPj4+MTpjW3k+PjJdfDApLTF8MCk+Pj4wKStEfDA7SD0wfX13aGlsZSgwKTtGPWJf
W2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLGFbRV18MCl8MDtJPWNbaj4+Ml18MDtjW2o+PjJd
PUkrNDtjW0k+PjJdPUY7Rj1FKzF8MDtpZihGPj4+MDxmPj4+MCl7Qz1IKzF8MDtEPUc7RT1GfWVs
c2V7YnJlYWt9fX1FPWcrKHgtYjw8Mil8MDtEPWNbaj4+Ml18MDtpZigoRXwwKT09KER8MCkpe2Jy
ZWFrfUM9RC00fDA7aWYoRT4+PjA8Qz4+PjApe0o9RTtLPUN9ZWxzZXticmVha31kb3tDPWNbSj4+
Ml18MDtjW0o+PjJdPWNbSz4+Ml07Y1tLPj4yXT1DO0o9Sis0fDA7Sz1LLTR8MDt9d2hpbGUoSj4+
PjA8Sz4+PjApfX13aGlsZSgwKTtpZigoZXwwKT09KGZ8MCkpe0w9Y1tqPj4yXXwwO2NbaD4+Ml09
TDtkUChvKTtpPWw7cmV0dXJufWVsc2V7TD1nKyhlLWI8PDIpfDA7Y1toPj4yXT1MO2RQKG8pO2k9
bDtyZXR1cm59fWZ1bmN0aW9uIGdxKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
O2s9aTtpPWkrMTZ8MDtsPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2w+PjJd
O2w9a3wwO209ZHwwO2Q9Y1ttPj4yXXwwO2lmKChkfDApPT0wKXtjW2I+PjJdPTA7aT1rO3JldHVy
bn1uPWc7Zz1lO289bi1nPj4yO3A9aCsxMnwwO2g9Y1twPj4yXXwwO3E9KGh8MCk+KG98MCk/aC1v
fDA6MDtvPWY7aD1vLWd8MDtnPWg+PjI7ZG97aWYoKGh8MCk+MCl7aWYoKGIxW2NbKGNbZD4+Ml18
MCkrNDg+PjJdJjYzXShkLGUsZyl8MCk9PShnfDApKXticmVha31jW20+PjJdPTA7Y1tiPj4yXT0w
O2k9aztyZXR1cm59fXdoaWxlKDApO2Rve2lmKChxfDApPjApe2V5KGwscSxqKTtpZigoYVtsXSYx
KT09MCl7cj1sKzR8MH1lbHNle3I9Y1tsKzg+PjJdfDB9aWYoKGIxW2NbKGNbZD4+Ml18MCkrNDg+
PjJdJjYzXShkLHIscSl8MCk9PShxfDApKXtlZShsKTticmVha31jW20+PjJdPTA7Y1tiPj4yXT0w
O2VlKGwpO2k9aztyZXR1cm59fXdoaWxlKDApO2w9bi1vfDA7bz1sPj4yO2Rve2lmKChsfDApPjAp
e2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxmLG8pfDApPT0ob3wwKSl7YnJlYWt9
Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13aGlsZSgwKTtjW3A+PjJdPTA7Y1tiPj4y
XT1kO2k9aztyZXR1cm59ZnVuY3Rpb24gZ3IoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsyMzJ8MDtrPWU7ZT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7bj1k
KzIwMHwwO289ZCsyMDh8MDtwPWQrMjE2fDA7cT1kKzIyNHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJd
PTA7cj1rO2s9cisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PWt9
ZWxzZXthW2tdPTQzO3U9cisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9
dSsxfDB9YVt2XT0xMDg7YVt2KzF8MF09MTA4O3U9disyfDA7TDIxMTk6ZG97c3dpdGNoKHQmNzR8
MCl7Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDIxMTl9ZWxzZXth
W3VdPTg4O2JyZWFrIEwyMTE5fWJyZWFrfTtjYXNlIDY0OnthW3VdPTExMTticmVha307ZGVmYXVs
dDp7YVt1XT0xMDB9fX13aGlsZSgwKTt1PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChi
YygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9
Z2IodSwyMixjWzI5NThdfDAsciwocj1pLGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09aixy
KXwwKXwwO2k9cjtyPWwrdHwwO0wyMTMyOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDMy
Ont3PXI7YnJlYWt9O2Nhc2UgMTY6e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nhc2UgNDU6
Y2FzZSA0Mzp7dz1sKzF8MDticmVhayBMMjEzMjticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDAp
PjEmajw8MjQ+PjI0PT00OCkpe3g9MTc2MDticmVhayBMMjEzMn1zd2l0Y2goYVtsKzF8MF18MCl7
Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTc2MDticmVhayBMMjEzMn19dz1s
KzJ8MDticmVha307ZGVmYXVsdDp7eD0xNzYwfX19d2hpbGUoMCk7aWYoKHh8MCk9PTE3NjApe3c9
dX14PW18MDtlaihwLGYpO2dwKHUsdyxyLHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+PjJd
PWNbZT4+Ml07Z3EoYixxLHgsY1tuPj4yXXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVu
Y3Rpb24gZ3MoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MDtkPWk7aT1pKzE0NHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8MDttPWQrMTEyfDA7bj1kKzEyMHwwO289ZCsx
Mjh8MDtwPWQrMTM2fDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8MF09YVsyMzg1fDBdfDA7
YVtxKzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7YVtxKzR8MF09YVsyMzg4
fDBdfDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lm
KCh0JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1pZigodCY1MTJ8MCk9PTAp
e3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXwwO0wyMTUwOmRve3N3aXRj
aCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0fDAp
PT0wKXthW3VdPTEyMDticmVhayBMMjE1MH1lbHNle2FbdV09ODg7YnJlYWsgTDIxNTB9YnJlYWt9
O2RlZmF1bHQ6e2FbdV09MTE3fX19d2hpbGUoMCk7dT1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0w
KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGls
ZSgwKTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNbcT4+Ml09aCxxKXwwKXww
O2k9cTtxPWsrdHwwO0wyMTYzOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2OntoPWFb
dV18MDtzd2l0Y2goaDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsgTDIx
NjM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTE3ODU7
YnJlYWsgTDIxNjN9c3dpdGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtk
ZWZhdWx0Ont4PTE3ODU7YnJlYWsgTDIxNjN9fXc9aysyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9cTti
cmVha307ZGVmYXVsdDp7eD0xNzg1fX19d2hpbGUoMCk7aWYoKHh8MCk9PTE3ODUpe3c9dX14PWx8
MDtlaihvLGYpO2dwKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8MDtjW3A+PjJdPWNbZT4+
Ml07Z3EoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24g
Z3QoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1q
fDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTA7ZD1pO2k9aSsyNDB8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1j
W2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7bj1kKzIwOHwwO289ZCsyMTZ8MDtwPWQrMjI0
fDA7cT1kKzIzMnwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7cj1rO2s9cisxfDA7cz1mKzR8MDt0
PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PWt9ZWxzZXthW2tdPTQzO3U9cisyfDB9aWYo
KHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7YVt2KzF8MF09
MTA4O3U9disyfDA7TDIxODE6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA4OntpZigodCYxNjM4NHww
KT09MCl7YVt1XT0xMjA7YnJlYWsgTDIxODF9ZWxzZXthW3VdPTg4O2JyZWFrIEwyMTgxfWJyZWFr
fTtjYXNlIDY0OnthW3VdPTExMTticmVha307ZGVmYXVsdDp7YVt1XT0xMTd9fX13aGlsZSgwKTt1
PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNb
Mjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwyMyxjWzI5NThdfDAsciwocj1p
LGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09aixyKXwwKXwwO2k9cjtyPWwrdHwwO0wyMTk0
OmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2OntqPWFbdV18MDtzd2l0Y2goajw8MjQ+
PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9bCsxfDA7YnJlYWsgTDIxOTQ7YnJlYWt9O2RlZmF1bHQ6
e319aWYoISgodHwwKT4xJmo8PDI0Pj4yND09NDgpKXt4PTE4MTA7YnJlYWsgTDIxOTR9c3dpdGNo
KGFbbCsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE4MTA7YnJl
YWsgTDIxOTR9fXc9bCsyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9cjticmVha307ZGVmYXVsdDp7eD0x
ODEwfX19d2hpbGUoMCk7aWYoKHh8MCk9PTE4MTApe3c9dX14PW18MDtlaihwLGYpO2dwKHUsdyxy
LHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+PjJdPWNbZT4+Ml07Z3EoYixxLHgsY1tuPj4y
XXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ3UoYixkLGUsZixnLGope2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9K2o7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxE
PTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZD1pO2k9aSszMjB8MDtrPWU7ZT1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzQwfDA7bj1kKzQ4
fDA7bz1kKzI4MHwwO3A9ZCsyODh8MDtxPWQrMjk2fDA7cj1kKzMwNHwwO3M9ZCszMTJ8MDtjW2s+
PjJdPTM3O2Nbays0Pj4yXT0wO3Q9aztrPXQrMXwwO3U9Zis0fDA7dj1jW3U+PjJdfDA7aWYoKHYm
MjA0OHwwKT09MCl7dz1rfWVsc2V7YVtrXT00Mzt3PXQrMnwwfWlmKCh2JjEwMjR8MCk9PTApe3g9
d31lbHNle2Fbd109MzU7eD13KzF8MH13PXYmMjYwO2s9dj4+PjE0O0wyMjEyOmRve2lmKCh3fDAp
PT0yNjApe2lmKChrJjF8MCk9PTApe2FbeF09OTc7eT0wO2JyZWFrfWVsc2V7YVt4XT02NTt5PTA7
YnJlYWt9fWVsc2V7YVt4XT00Njt2PXgrMnwwO2FbeCsxfDBdPTQyO3N3aXRjaCh3fDApe2Nhc2Ug
MjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDIyMTJ9ZWxzZXthW3ZdPTY5
O3k9MTticmVhayBMMjIxMn1icmVha307Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3ZdPTEwMjt5
PTE7YnJlYWsgTDIyMTJ9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMjIxMn1icmVha307ZGVmYXVs
dDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwyMjEyfWVsc2V7YVt2XT03MTt5
PTE7YnJlYWsgTDIyMTJ9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsxNjI2
NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDAp
fDB9fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrMTZ8
MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3PWdi
KGssMzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lmKChB
fDApPjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDAp
PT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1syOTU4
XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXww
O2k9ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThd
PWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrMTZ8
MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJd
fDA7aWYoKHd8MCkhPTApe0M9QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9
dztFPXd9ZWxzZXtDPUE7RD0wO0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wyMjYxOmRv
e3N3aXRjaChjW3U+PjJdJjE3NnwwKXtjYXNlIDMyOntGPUE7YnJlYWt9O2Nhc2UgMTY6e0I9YVtF
XXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7Rj1FKzF8MDticmVhayBMMjI2
MTticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEmQjw8MjQ+PjI0PT00OCkpe0c9MTg2Njti
cmVhayBMMjI2MX1zd2l0Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2Rl
ZmF1bHQ6e0c9MTg2NjticmVhayBMMjI2MX19Rj1FKzJ8MDticmVha307ZGVmYXVsdDp7Rz0xODY2
fX19d2hpbGUoMCk7aWYoKEd8MCk9PTE4NjYpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnww
O0k9MDtKPWt9ZWxzZXtHPWtKKEM8PDMpfDA7dT1HO2lmKChHfDApIT0wKXtIPXU7ST11O0o9RTti
cmVha31rWCgpO0g9dTtJPXU7Sj1jW20+PjJdfDB9fXdoaWxlKDApO2VqKHEsZik7Z3YoSixGLEEs
SCxvLHAscSk7ZHooY1txPj4yXXwwKXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4yXTtncShyLHMsSCxj
W28+PjJdfDAsY1twPj4yXXwwLGYsZyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09Zztp
ZigoSXwwKSE9MCl7a0soSSl9aWYoKER8MCk9PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3JldHVy
bn1mdW5jdGlvbiBndihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0w
LHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAs
Sj0wLEs9MCxMPTAsTT0wLE49MDtsPWk7aT1pKzQ4fDA7bT1sfDA7bj1sKzE2fDA7bz1sKzMyfDA7
cD1rfDA7az1jW3A+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW24+PjJdPTE1Njg4O2Nbbis0
Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTY4OCxuLDk2KX1uPShjWzM5MjNdfDApLTF8MDtxPWNb
ays4Pj4yXXwwO2lmKChjW2srMTI+PjJdfDApLXE+PjI+Pj4wPD1uPj4+MCl7cj1iTyg0KXwwO3M9
cjtrcShzKTtibChyfDAsODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+Ml18MDtpZigoa3wwKT09MCl7
cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfXI9aztzPWNbcD4+Ml18MDtpZigo
Y1szODI2XXwwKSE9LTEpe2NbbT4+Ml09MTUzMDQ7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0wO2RX
KDE1MzA0LG0sOTYpfW09KGNbMzgyN118MCktMXwwO3A9Y1tzKzg+PjJdfDA7aWYoKGNbcysxMj4+
Ml18MCktcD4+Mj4+PjA8PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEz
NCl9cz1jW3ArKG08PDIpPj4yXXwwO2lmKChzfDApPT0wKXt0PWJPKDQpfDA7dT10O2txKHUpO2Js
KHR8MCw4MTc2LDEzNCl9dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+PjJdJjEyN10obyx0KTtjW2o+
PjJdPWc7dT1hW2JdfDA7c3dpdGNoKHU8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnttPWJfW2Nb
KGNbaz4+Ml18MCkrNDQ+PjJdJjMxXShyLHUpfDA7dT1jW2o+PjJdfDA7Y1tqPj4yXT11KzQ7Y1t1
Pj4yXT1tO3Y9YisxfDA7YnJlYWt9O2RlZmF1bHQ6e3Y9Yn19bT1mO0wyMzA5OmRve2lmKChtLXZ8
MCk+MSl7aWYoKGFbdl18MCkhPTQ4KXt3PXY7eD0xOTIxO2JyZWFrfXU9disxfDA7c3dpdGNoKGFb
dV18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3c9djt4PTE5MjE7YnJlYWsg
TDIzMDl9fXA9aztuPWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLDQ4KXwwO3E9Y1tqPj4y
XXwwO2Nbaj4+Ml09cSs0O2NbcT4+Ml09bjtuPXYrMnwwO3E9Yl9bY1soY1twPj4yXXwwKSs0ND4+
Ml0mMzFdKHIsYVt1XXwwKXwwO3U9Y1tqPj4yXXwwO2Nbaj4+Ml09dSs0O2NbdT4+Ml09cTtxPW47
d2hpbGUoMSl7aWYocT4+PjA+PWY+Pj4wKXt5PXE7ej1uO2JyZWFrIEwyMzA5fXU9YVtxXXwwO2Rv
e2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1h
UygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGEzKHU8PDI0Pj4yNHwwLGNbMjk1OF18MCl8MCk9
PTApe3k9cTt6PW47YnJlYWt9ZWxzZXtxPXErMXwwfX19ZWxzZXt3PXY7eD0xOTIxfX13aGlsZSgw
KTtMMjMyNDpkb3tpZigoeHwwKT09MTkyMSl7d2hpbGUoMSl7eD0wO2lmKHc+Pj4wPj1mPj4+MCl7
eT13O3o9djticmVhayBMMjMyNH1xPWFbd118MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChi
YygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lm
KChiSChxPDwyND4+MjR8MCxjWzI5NThdfDApfDApPT0wKXt5PXc7ej12O2JyZWFrfWVsc2V7dz13
KzF8MDt4PTE5MjF9fX19d2hpbGUoMCk7eD1vO3c9bzt2PWRbd118MDtpZigodiYxfDApPT0wKXtB
PXY+Pj4xfWVsc2V7QT1jW28rND4+Ml18MH1kb3tpZigoQXwwKT09MCl7dj1jW2o+PjJdfDA7dT1j
WyhjW2s+PjJdfDApKzQ4Pj4yXXwwO2NhW3UmMTVdKHIseix5LHYpfDA7Y1tqPj4yXT0oY1tqPj4y
XXwwKSsoeS16PDwyKX1lbHNle2Rve2lmKCh6fDApIT0oeXwwKSl7dj15LTF8MDtpZih6Pj4+MDx2
Pj4+MCl7Qj16O0M9dn1lbHNle2JyZWFrfWRve3Y9YVtCXXwwO2FbQl09YVtDXXwwO2FbQ109djtC
PUIrMXwwO0M9Qy0xfDA7fXdoaWxlKEI+Pj4wPEM+Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhjW3M+
PjJdfDApKzE2Pj4yXSYxMjddKHQpfDA7aWYoej4+PjA8eT4+PjApe3Y9eCsxfDA7dT1vKzR8MDtu
PW8rOHwwO3A9aztEPTA7RT0wO0Y9ejt3aGlsZSgxKXtHPShhW3ddJjEpPT0wO2Rve2lmKChhWyhH
P3Y6Y1tuPj4yXXwwKStFfDBdfDApPjApe2lmKChEfDApIT0oYVsoRz92OmNbbj4+Ml18MCkrRXww
XXwwKSl7SD1FO0k9RDticmVha31KPWNbaj4+Ml18MDtjW2o+PjJdPUorNDtjW0o+PjJdPXE7Sj1k
W3ddfDA7SD0oRT4+PjA8KCgoSiYxfDApPT0wP0o+Pj4xOmNbdT4+Ml18MCktMXwwKT4+PjApK0V8
MDtJPTB9ZWxzZXtIPUU7ST1EfX13aGlsZSgwKTtHPWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMx
XShyLGFbRl18MCl8MDtKPWNbaj4+Ml18MDtjW2o+PjJdPUorNDtjW0o+PjJdPUc7Rz1GKzF8MDtp
ZihHPj4+MDx5Pj4+MCl7RD1JKzF8MDtFPUg7Rj1HfWVsc2V7YnJlYWt9fX1GPWcrKHotYjw8Mil8
MDtFPWNbaj4+Ml18MDtpZigoRnwwKT09KEV8MCkpe2JyZWFrfUQ9RS00fDA7aWYoRj4+PjA8RD4+
PjApe0s9RjtMPUR9ZWxzZXticmVha31kb3tEPWNbSz4+Ml18MDtjW0s+PjJdPWNbTD4+Ml07Y1tM
Pj4yXT1EO0s9Sys0fDA7TD1MLTR8MDt9d2hpbGUoSz4+PjA8TD4+PjApfX13aGlsZSgwKTtMMjM2
Mzpkb3tpZih5Pj4+MDxmPj4+MCl7TD1rO0s9eTt3aGlsZSgxKXt6PWFbS118MDtpZih6PDwyND4+
MjQ9PTQ2KXticmVha31IPWJfW2NbKGNbTD4+Ml18MCkrNDQ+PjJdJjMxXShyLHopfDA7ej1jW2o+
PjJdfDA7Y1tqPj4yXT16KzQ7Y1t6Pj4yXT1IO0g9SysxfDA7aWYoSD4+PjA8Zj4+PjApe0s9SH1l
bHNle009SDticmVhayBMMjM2M319TD1iMFtjWyhjW3M+PjJdfDApKzEyPj4yXSYxMjddKHQpfDA7
SD1jW2o+PjJdfDA7Y1tqPj4yXT1IKzQ7Y1tIPj4yXT1MO009SysxfDB9ZWxzZXtNPXl9fXdoaWxl
KDApO2NhW2NbKGNbaz4+Ml18MCkrNDg+PjJdJjE1XShyLE0sZixjW2o+PjJdfDApfDA7cj0oY1tq
Pj4yXXwwKSsobS1NPDwyKXwwO2Nbaj4+Ml09cjtpZigoZXwwKT09KGZ8MCkpe049cjtjW2g+PjJd
PU47ZFAobyk7aT1sO3JldHVybn1OPWcrKGUtYjw8Mil8MDtjW2g+PjJdPU47ZFAobyk7aT1sO3Jl
dHVybn1mdW5jdGlvbiBndyhiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aj0rajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9
MDtkPWk7aT1pKzMyMHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+
Ml07az1kfDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMjgwfDA7cD1kKzI4OHwwO3E9
ZCsyOTZ8MDtyPWQrMzA0fDA7cz1kKzMxMnwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1rO2s9
dCsxfDA7dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXthW2td
PTQzO3c9dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXwwfXc9
diYyNjA7az12Pj4+MTQ7TDIzODQ6ZG97aWYoKHd8MCk9PTI2MCl7YVt4XT03Njt2PXgrMXwwO2lm
KChrJjF8MCk9PTApe2Fbdl09OTc7eT0wO2JyZWFrfWVsc2V7YVt2XT02NTt5PTA7YnJlYWt9fWVs
c2V7YVt4XT00NjthW3grMXwwXT00MjthW3grMnwwXT03Njt2PXgrM3wwO3N3aXRjaCh3fDApe2Nh
c2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDIzODR9ZWxzZXthW3Zd
PTY5O3k9MTticmVhayBMMjM4NH1icmVha307Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3ZdPTEw
Mjt5PTE7YnJlYWsgTDIzODR9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMjM4NH1icmVha307ZGVm
YXVsdDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwyMzg0fWVsc2V7YVt2XT03
MTt5PTE7YnJlYWsgTDIzODR9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsx
NjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0
LDApfDB9fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkr
MTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3
PWdiKGssMzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lm
KChBfDApPjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1sy
OTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXww
KXwwO2k9ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5
NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkr
OHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTApe0M9
QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7RD0w
O0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wyNDMzOmRve3N3aXRjaChjW3U+PjJdJjE3
NnwwKXtjYXNlIDE2OntCPWFbRV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6
e0Y9RSsxfDA7YnJlYWsgTDI0MzM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgoQ3wwKT4xJkI8PDI0
Pj4yND09NDgpKXtHPTIwMTg7YnJlYWsgTDI0MzN9c3dpdGNoKGFbRSsxfDBdfDApe2Nhc2UgMTIw
OmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntHPTIwMTg7YnJlYWsgTDI0MzN9fUY9RSsyfDA7YnJl
YWt9O2Nhc2UgMzI6e0Y9QTticmVha307ZGVmYXVsdDp7Rz0yMDE4fX19d2hpbGUoMCk7aWYoKEd8
MCk9PTIwMTgpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtHPWtK
KEM8PDMpfDA7dT1HO2lmKChHfDApIT0wKXtIPXU7ST11O0o9RTticmVha31rWCgpO0g9dTtJPXU7
Sj1jW20+PjJdfDB9fXdoaWxlKDApO2VqKHEsZik7Z3YoSixGLEEsSCxvLHAscSk7ZHooY1txPj4y
XXwwKXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4yXTtncShyLHMsSCxjW28+PjJdfDAsY1twPj4yXXww
LGYsZyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09ZztpZigoSXwwKSE9MCl7a0soSSl9
aWYoKER8MCk9PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3JldHVybn1mdW5jdGlvbiBneChiLGQs
ZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wO2Q9aTtpPWkrMjE2fDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09
Y1tqPj4yXTtqPWR8MDtrPWQrMjR8MDtsPWQrNDh8MDttPWQrMjAwfDA7bj1kKzIwOHwwO289ZCsx
NnwwO2Fbb109YVsyMzkyXXwwO2FbbysxfDBdPWFbMjM5M3wwXXwwO2FbbysyfDBdPWFbMjM5NHww
XXwwO2FbbyszfDBdPWFbMjM5NXwwXXwwO2Fbbys0fDBdPWFbMjM5NnwwXXwwO2Fbbys1fDBdPWFb
MjM5N3wwXXwwO3A9a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09
MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7cT1nYihwLDIwLGNbMjk1
OF18MCxvLChvPWksaT1pKzh8MCxjW28+PjJdPWgsbyl8MCl8MDtpPW87bz1rK3F8MDtMMjQ2NDpk
b3tzd2l0Y2goY1tmKzQ+PjJdJjE3NnwwKXtjYXNlIDE2OntoPWFbcF18MDtzd2l0Y2goaDw8MjQ+
PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3I9aysxfDA7YnJlYWsgTDI0NjQ7YnJlYWt9O2RlZmF1bHQ6
e319aWYoISgocXwwKT4xJmg8PDI0Pj4yND09NDgpKXtzPTIwNTE7YnJlYWsgTDI0NjR9c3dpdGNo
KGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntzPTIwNTE7YnJl
YWsgTDI0NjR9fXI9aysyfDA7YnJlYWt9O2Nhc2UgMzI6e3I9bzticmVha307ZGVmYXVsdDp7cz0y
MDUxfX19d2hpbGUoMCk7aWYoKHN8MCk9PTIwNTEpe3I9cH1laihtLGYpO3M9bXwwO209Y1tzPj4y
XXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tqPj4yXT0xNTY4ODtjW2orND4+Ml09MTI7Y1tqKzg+
PjJdPTA7ZFcoMTU2ODgsaiw5Nil9aj0oY1szOTIzXXwwKS0xfDA7aD1jW20rOD4+Ml18MDtkb3tp
ZigoY1ttKzEyPj4yXXwwKS1oPj4yPj4+MD5qPj4+MCl7dD1jW2grKGo8PDIpPj4yXXwwO2lmKCh0
fDApPT0wKXticmVha311PXQ7dj1jW3M+PjJdfDA7ZHoodil8MDt2PWx8MDt3PWNbKGNbdD4+Ml18
MCkrNDg+PjJdfDA7Y2FbdyYxNV0odSxwLG8sdil8MDt1PWwrKHE8PDIpfDA7aWYoKHJ8MCk9PShv
fDApKXt4PXU7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16O2dxKGIsbix2LHgsdSxm
LGcpO2k9ZDtyZXR1cm59eD1sKyhyLWs8PDIpfDA7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tB
Pj4yXT16O2dxKGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtr
cShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGd5KGEpe2E9YXwwO3JldHVybiAyfWZ1bmN0
aW9uIGd6KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdBKGEpe2E9YXww
O2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGdCKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MDtqPWk7aT1pKzE2fDA7
az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7Y1trPj4yXT1jW2Q+
PjJdO2NbbD4+Ml09Y1tlPj4yXTtnRChhLGIsayxsLGYsZyxoLDIzNzYsMjM4NCk7aT1qO3JldHVy
bn1mdW5jdGlvbiBnQyhiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7aT1p
KzE2fDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209ays4fDA7bj1kKzh8
MDtvPWIwW2NbKGNbbj4+Ml18MCkrMjA+PjJdJjEyN10obil8MDtjW2w+PjJdPWNbZT4+Ml07Y1tt
Pj4yXT1jW2Y+PjJdO2Y9bztlPWFbb118MDtpZigoZSYxKT09MCl7cD1mKzF8MDtxPWYrMXwwfWVs
c2V7Zj1jW28rOD4+Ml18MDtwPWY7cT1mfWY9ZSYyNTU7aWYoKGYmMXwwKT09MCl7cj1mPj4+MX1l
bHNle3I9Y1tvKzQ+PjJdfDB9Z0QoYixkLGwsbSxnLGgsaixxLHArcnwwKTtpPWs7cmV0dXJufWZ1
bmN0aW9uIGdEKGQsZSxmLGcsaCxqLGssbCxtKXtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxX
PTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wO249aTtpPWkrNDh8MDtv
PWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW28+PjJdO289ZztnPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbz4+Ml07bz1ufDA7cD1uKzE2fDA7cT1uKzI0fDA7cj1u
KzMyfDA7cz1uKzQwfDA7ZWoocCxoKTt0PXB8MDtwPWNbdD4+Ml18MDtpZigoY1szOTI0XXwwKSE9
LTEpe2Nbbz4+Ml09MTU2OTY7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE1Njk2LG8sOTYp
fW89KGNbMzkyNV18MCktMXwwO3U9Y1twKzg+PjJdfDA7ZG97aWYoKGNbcCsxMj4+Ml18MCktdT4+
Mj4+PjA+bz4+PjApe3Y9Y1t1KyhvPDwyKT4+Ml18MDtpZigodnwwKT09MCl7YnJlYWt9dz12O3g9
Y1t0Pj4yXXwwO2R6KHgpfDA7Y1tqPj4yXT0wO3g9ZnwwO0wyNTA2OmRve2lmKChsfDApPT0obXww
KSl7eT0yMTQxfWVsc2V7ej1nfDA7QT12O0I9dis4fDA7Qz12O0Q9ZTtFPXJ8MDtGPXN8MDtHPXF8
MDtIPWw7ST0wO0wyNTA4OndoaWxlKDEpe0o9STt3aGlsZSgxKXtpZigoSnwwKSE9MCl7eT0yMTQx
O2JyZWFrIEwyNTA2fUs9Y1t4Pj4yXXwwO2Rve2lmKChLfDApPT0wKXtMPTB9ZWxzZXtpZigoY1tL
KzEyPj4yXXwwKSE9KGNbSysxNj4+Ml18MCkpe0w9SzticmVha31pZigoYjBbY1soY1tLPj4yXXww
KSszNj4+Ml0mMTI3XShLKXwwKSE9LTEpe0w9SzticmVha31jW3g+PjJdPTA7TD0wfX13aGlsZSgw
KTtLPShMfDApPT0wO009Y1t6Pj4yXXwwO0wyNTE4OmRve2lmKChNfDApPT0wKXt5PTIwOTR9ZWxz
ZXtkb3tpZigoY1tNKzEyPj4yXXwwKT09KGNbTSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW00+PjJd
fDApKzM2Pj4yXSYxMjddKE0pfDApIT0tMSl7YnJlYWt9Y1t6Pj4yXT0wO3k9MjA5NDticmVhayBM
MjUxOH19d2hpbGUoMCk7aWYoSyl7Tj1NfWVsc2V7eT0yMDk1O2JyZWFrIEwyNTA4fX19d2hpbGUo
MCk7aWYoKHl8MCk9PTIwOTQpe3k9MDtpZihLKXt5PTIwOTU7YnJlYWsgTDI1MDh9ZWxzZXtOPTB9
fWlmKChiMVtjWyhjW0E+PjJdfDApKzM2Pj4yXSY2M10odyxhW0hdfDAsMCl8MCk8PDI0Pj4yND09
Mzcpe3k9MjA5ODticmVha31NPWFbSF18MDtpZihNPDwyND4+MjQ+LTEpe089Y1tCPj4yXXwwO2lm
KChiW08rKE08PDI0Pj4yNDw8MSk+PjFdJjgxOTIpIT0wKXtQPUg7eT0yMTA5O2JyZWFrfX1RPUwr
MTJ8MDtNPWNbUT4+Ml18MDtSPUwrMTZ8MDtpZigoTXwwKT09KGNbUj4+Ml18MCkpe1M9KGIwW2Nb
KGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MCkmMjU1fWVsc2V7Uz1hW01dfDB9TT1iX1tjWyhj
W0M+PjJdfDApKzEyPj4yXSYzMV0odyxTKXwwO2lmKE08PDI0Pj4yND09KGJfW2NbKGNbQz4+Ml18
MCkrMTI+PjJdJjMxXSh3LGFbSF18MCl8MCk8PDI0Pj4yNCl7eT0yMTM2O2JyZWFrfWNbaj4+Ml09
NDtKPTR9TDI1MzY6ZG97aWYoKHl8MCk9PTIxMzYpe3k9MDtKPWNbUT4+Ml18MDtpZigoSnwwKT09
KGNbUj4+Ml18MCkpe009Y1soY1tMPj4yXXwwKSs0MD4+Ml18MDtiMFtNJjEyN10oTCl8MH1lbHNl
e2NbUT4+Ml09SisxfVQ9SCsxfDB9ZWxzZSBpZigoeXwwKT09MjA5OCl7eT0wO0o9SCsxfDA7aWYo
KEp8MCk9PShtfDApKXt5PTIwOTk7YnJlYWsgTDI1MDh9TT1iMVtjWyhjW0E+PjJdfDApKzM2Pj4y
XSY2M10odyxhW0pdfDAsMCl8MDtzd2l0Y2goTTw8MjQ+PjI0KXtjYXNlIDY5OmNhc2UgNDg6e1U9
SCsyfDA7aWYoKFV8MCk9PShtfDApKXt5PTIxMDI7YnJlYWsgTDI1MDh9Vj1NO1c9YjFbY1soY1tB
Pj4yXXwwKSszNj4+Ml0mNjNdKHcsYVtVXXwwLDApfDA7WD1VO2JyZWFrfTtkZWZhdWx0OntWPTA7
Vz1NO1g9Sn19Sj1jWyhjW0Q+PjJdfDApKzM2Pj4yXXwwO2NbRT4+Ml09TDtjW0Y+PjJdPU47Yjdb
SiY3XShxLGUscixzLGgsaixrLFcsVik7Y1t4Pj4yXT1jW0c+PjJdO1Q9WCsxfDB9ZWxzZSBpZigo
eXwwKT09MjEwOSl7d2hpbGUoMSl7eT0wO0o9UCsxfDA7aWYoKEp8MCk9PShtfDApKXtZPW07YnJl
YWt9TT1hW0pdfDA7aWYoTTw8MjQ+PjI0PD0tMSl7WT1KO2JyZWFrfWlmKChiW08rKE08PDI0Pj4y
NDw8MSk+PjFdJjgxOTIpPT0wKXtZPUo7YnJlYWt9ZWxzZXtQPUo7eT0yMTA5fX1LPUw7Sj1OO3do
aWxlKDEpe2Rve2lmKChLfDApPT0wKXtaPTB9ZWxzZXtpZigoY1tLKzEyPj4yXXwwKSE9KGNbSysx
Nj4+Ml18MCkpe1o9SzticmVha31pZigoYjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShLKXww
KSE9LTEpe1o9SzticmVha31jW3g+PjJdPTA7Wj0wfX13aGlsZSgwKTtNPShafDApPT0wO2Rve2lm
KChKfDApPT0wKXt5PTIxMjJ9ZWxzZXtpZigoY1tKKzEyPj4yXXwwKSE9KGNbSisxNj4+Ml18MCkp
e2lmKE0pe189SjticmVha31lbHNle1Q9WTticmVhayBMMjUzNn19aWYoKGIwW2NbKGNbSj4+Ml18
MCkrMzY+PjJdJjEyN10oSil8MCk9PS0xKXtjW3o+PjJdPTA7eT0yMTIyO2JyZWFrfWVsc2V7aWYo
TV4oSnwwKT09MCl7Xz1KO2JyZWFrfWVsc2V7VD1ZO2JyZWFrIEwyNTM2fX19fXdoaWxlKDApO2lm
KCh5fDApPT0yMTIyKXt5PTA7aWYoTSl7VD1ZO2JyZWFrIEwyNTM2fWVsc2V7Xz0wfX1VPVorMTJ8
MDskPWNbVT4+Ml18MDthYT1aKzE2fDA7aWYoKCR8MCk9PShjW2FhPj4yXXwwKSl7YWI9KGIwW2Nb
KGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCkmMjU1fWVsc2V7YWI9YVskXXwwfWlmKGFiPDwy
ND4+MjQ8PS0xKXtUPVk7YnJlYWsgTDI1MzZ9aWYoKGJbKGNbQj4+Ml18MCkrKGFiPDwyND4+MjQ8
PDEpPj4xXSY4MTkyKT09MCl7VD1ZO2JyZWFrIEwyNTM2fSQ9Y1tVPj4yXXwwO2lmKCgkfDApPT0o
Y1thYT4+Ml18MCkpe2FhPWNbKGNbWj4+Ml18MCkrNDA+PjJdfDA7YjBbYWEmMTI3XShaKXwwO0s9
WjtKPV87Y29udGludWV9ZWxzZXtjW1U+PjJdPSQrMTtLPVo7Sj1fO2NvbnRpbnVlfX19fXdoaWxl
KDApO2lmKChUfDApPT0obXwwKSl7eT0yMTQxO2JyZWFrIEwyNTA2fUg9VDtJPWNbaj4+Ml18MH1p
ZigoeXwwKT09MjA5OSl7Y1tqPj4yXT00O2FjPUw7YnJlYWt9ZWxzZSBpZigoeXwwKT09MjEwMil7
Y1tqPj4yXT00O2FjPUw7YnJlYWt9ZWxzZSBpZigoeXwwKT09MjA5NSl7Y1tqPj4yXT00O2FjPUw7
YnJlYWt9fX13aGlsZSgwKTtpZigoeXwwKT09MjE0MSl7YWM9Y1t4Pj4yXXwwfXc9ZnwwO2Rve2lm
KChhY3wwKSE9MCl7aWYoKGNbYWMrMTI+PjJdfDApIT0oY1thYysxNj4+Ml18MCkpe2JyZWFrfWlm
KChiMFtjWyhjW2FjPj4yXXwwKSszNj4+Ml0mMTI3XShhYyl8MCkhPS0xKXticmVha31jW3c+PjJd
PTB9fXdoaWxlKDApO3g9Y1t3Pj4yXXwwO3Y9KHh8MCk9PTA7ST1nfDA7SD1jW0k+PjJdfDA7TDI1
OTQ6ZG97aWYoKEh8MCk9PTApe3k9MjE1MX1lbHNle2Rve2lmKChjW0grMTI+PjJdfDApPT0oY1tI
KzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbSD4+Ml18MCkrMzY+PjJdJjEyN10oSCl8MCkhPS0xKXti
cmVha31jW0k+PjJdPTA7eT0yMTUxO2JyZWFrIEwyNTk0fX13aGlsZSgwKTtpZighdil7YnJlYWt9
YWQ9ZHwwO2NbYWQ+PjJdPXg7aT1uO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKHl8MCk9PTIxNTEp
e2lmKHYpe2JyZWFrfWFkPWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO2Nbaj4+
Ml09Y1tqPj4yXXwyO2FkPWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO249Yk8o
NCl8MDtrcShuKTtibChufDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdFKGEsYixkLGUsZixnLGgpe2E9
YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtqPWk7aT1pKzMyfDA7az1kO2Q9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7bT1qKzI0fDA7ZWoobSxmKTtmPW18
MDttPWNbZj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJd
PTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO249Y1ttKzg+
PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktbj4+Mj4+PjA+bD4+PjApe289Y1tuKyhsPDwyKT4+
Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1vO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2U+PjJd
fDA7cT1iKzh8MDtyPWIwW2NbY1txPj4yXT4+Ml0mMTI3XShxKXwwO2Nbaz4+Ml09bztvPShmcShk
LGsscixyKzE2OHwwLHAsZywwKXwwKS1yfDA7aWYoKG98MCk+PTE2OCl7cz1kfDA7dD1jW3M+PjJd
fDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59Y1toKzI0Pj4yXT0oKG98MCkvMTJ8MHwwKSU3
fDA7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59fXdoaWxlKDAp
O2o9Yk8oNCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdGKGEsYixkLGUsZixn
LGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtqPWk7aT1pKzMyfDA7az1k
O2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7bT1qKzI0fDA7ZWoobSxm
KTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1ts
KzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO249
Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktbj4+Mj4+PjA+bD4+PjApe289Y1tuKyhs
PDwyKT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1vO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1j
W2U+PjJdfDA7cT1iKzh8MDtyPWIwW2NbKGNbcT4+Ml18MCkrND4+Ml0mMTI3XShxKXwwO2Nbaz4+
Ml09bztvPShmcShkLGsscixyKzI4OHwwLHAsZywwKXwwKS1yfDA7aWYoKG98MCk+PTI4OCl7cz1k
fDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59Y1toKzE2Pj4yXT0oKG98
MCkvMTJ8MHwwKSUxMnwwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0
dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlvbiBn
RyhhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2I9aTtpPWkrMzJ8
MDtqPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2o+PjJdO2o9ZTtlPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1ifDA7az1iKzh8MDtsPWIrMjR8MDtl
aihsLGYpO2Y9bHwwO2w9Y1tmPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1trPj4yXT0xNTY5
NjtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTU2OTYsayw5Nil9az0oY1szOTI1XXwwKS0x
fDA7bT1jW2wrOD4+Ml18MDtkb3tpZigoY1tsKzEyPj4yXXwwKS1tPj4yPj4+MD5rPj4+MCl7bj1j
W20rKGs8PDIpPj4yXXwwO2lmKChufDApPT0wKXticmVha31vPW47bj1jW2Y+PjJdfDA7ZHoobil8
MDtjW2o+PjJdPWNbZT4+Ml07bj1nTChkLGosZyxvLDQpfDA7aWYoKGNbZz4+Ml0mNHwwKSE9MCl7
cD1kfDA7cT1jW3A+PjJdfDA7cj1hfDA7Y1tyPj4yXT1xO2k9YjtyZXR1cm59aWYoKG58MCk8Njkp
e3M9bisyZTN8MH1lbHNle3M9KG4tNjl8MCk+Pj4wPDMxP24rMTkwMHwwOm59Y1toKzIwPj4yXT1z
LTE5MDA7cD1kfDA7cT1jW3A+PjJdfDA7cj1hfDA7Y1tyPj4yXT1xO2k9YjtyZXR1cm59fXdoaWxl
KDApO2I9Yk8oNCl8MDtrcShiKTtibChifDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdIKGQsZSxmLGcs
aCl7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MDtkPWk7aj1mO2Y9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZj4+Ml09Y1tqPj4yXTtqPWV8MDtlPWZ8MDtmPWgrOHwwO0wyNjUyOndoaWxlKDEp
e2g9Y1tqPj4yXXwwO2Rve2lmKChofDApPT0wKXtrPTB9ZWxzZXtpZigoY1toKzEyPj4yXXwwKSE9
KGNbaCsxNj4+Ml18MCkpe2s9aDticmVha31pZigoYjBbY1soY1toPj4yXXwwKSszNj4+Ml0mMTI3
XShoKXwwKT09LTEpe2Nbaj4+Ml09MDtrPTA7YnJlYWt9ZWxzZXtrPWNbaj4+Ml18MDticmVha319
fXdoaWxlKDApO2g9KGt8MCk9PTA7bD1jW2U+PjJdfDA7TDI2NjE6ZG97aWYoKGx8MCk9PTApe209
MjIwN31lbHNle2Rve2lmKChjW2wrMTI+PjJdfDApPT0oY1tsKzE2Pj4yXXwwKSl7aWYoKGIwW2Nb
KGNbbD4+Ml18MCkrMzY+PjJdJjEyN10obCl8MCkhPS0xKXticmVha31jW2U+PjJdPTA7bT0yMjA3
O2JyZWFrIEwyNjYxfX13aGlsZSgwKTtpZihoKXtuPWw7bz0wfWVsc2V7cD1sO3E9MDticmVhayBM
MjY1Mn19fXdoaWxlKDApO2lmKChtfDApPT0yMjA3KXttPTA7aWYoaCl7cD0wO3E9MTticmVha31l
bHNle249MDtvPTF9fWw9Y1tqPj4yXXwwO3I9Y1tsKzEyPj4yXXwwO2lmKChyfDApPT0oY1tsKzE2
Pj4yXXwwKSl7cz0oYjBbY1soY1tsPj4yXXwwKSszNj4+Ml0mMTI3XShsKXwwKSYyNTV9ZWxzZXtz
PWFbcl18MH1pZihzPDwyND4+MjQ8PS0xKXtwPW47cT1vO2JyZWFrfWlmKChiWyhjW2Y+PjJdfDAp
KyhzPDwyND4+MjQ8PDEpPj4xXSY4MTkyKT09MCl7cD1uO3E9bzticmVha31yPWNbaj4+Ml18MDts
PXIrMTJ8MDt0PWNbbD4+Ml18MDtpZigodHwwKT09KGNbcisxNj4+Ml18MCkpe3U9Y1soY1tyPj4y
XXwwKSs0MD4+Ml18MDtiMFt1JjEyN10ocil8MDtjb250aW51ZX1lbHNle2NbbD4+Ml09dCsxO2Nv
bnRpbnVlfX1vPWNbaj4+Ml18MDtkb3tpZigob3wwKT09MCl7dj0wfWVsc2V7aWYoKGNbbysxMj4+
Ml18MCkhPShjW28rMTY+PjJdfDApKXt2PW87YnJlYWt9aWYoKGIwW2NbKGNbbz4+Ml18MCkrMzY+
PjJdJjEyN10obyl8MCk9PS0xKXtjW2o+PjJdPTA7dj0wO2JyZWFrfWVsc2V7dj1jW2o+PjJdfDA7
YnJlYWt9fX13aGlsZSgwKTtqPSh2fDApPT0wO2Rve2lmKHEpe209MjIyNn1lbHNle2lmKChjW3Ar
MTI+PjJdfDApIT0oY1twKzE2Pj4yXXwwKSl7aWYoIShqXihwfDApPT0wKSl7YnJlYWt9aT1kO3Jl
dHVybn1pZigoYjBbY1soY1twPj4yXXwwKSszNj4+Ml0mMTI3XShwKXwwKT09LTEpe2NbZT4+Ml09
MDttPTIyMjY7YnJlYWt9aWYoIWope2JyZWFrfWk9ZDtyZXR1cm59fXdoaWxlKDApO2Rve2lmKCht
fDApPT0yMjI2KXtpZihqKXticmVha31pPWQ7cmV0dXJufX13aGlsZSgwKTtjW2c+PjJdPWNbZz4+
Ml18MjtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdJKGIsZCxlLGYsZyxoLGosayxsKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0w
LFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFj
PTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MDtsPWk7
aT1pKzMyOHwwO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07bT1m
O2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWx8MDtuPWwrOHwwO289
bCsxNnwwO3A9bCsyNHwwO3E9bCszMnwwO3I9bCs0MHwwO3M9bCs0OHwwO3Q9bCs1NnwwO3U9bCs2
NHwwO3Y9bCs3MnwwO3c9bCs4MHwwO3g9bCs4OHwwO3k9bCs5NnwwO3o9bCsxMTJ8MDtBPWwrMTIw
fDA7Qj1sKzEyOHwwO0M9bCsxMzZ8MDtEPWwrMTQ0fDA7RT1sKzE1MnwwO0Y9bCsxNjB8MDtHPWwr
MTY4fDA7SD1sKzE3NnwwO0k9bCsxODR8MDtKPWwrMTkyfDA7Sz1sKzIwMHwwO0w9bCsyMDh8MDtN
PWwrMjE2fDA7Tj1sKzIyNHwwO089bCsyMzJ8MDtQPWwrMjQwfDA7UT1sKzI0OHwwO1I9bCsyNTZ8
MDtTPWwrMjY0fDA7VD1sKzI3MnwwO1U9bCsyODB8MDtWPWwrMjg4fDA7Vz1sKzI5NnwwO1g9bCsz
MDR8MDtZPWwrMzEyfDA7Wj1sKzMyMHwwO2NbaD4+Ml09MDtlaih6LGcpO189enwwO3o9Y1tfPj4y
XXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1t5Pj4yXT0xNTY5NjtjW3krND4+Ml09MTI7Y1t5Kzg+
PjJdPTA7ZFcoMTU2OTYseSw5Nil9eT0oY1szOTI1XXwwKS0xfDA7JD1jW3orOD4+Ml18MDtkb3tp
ZigoY1t6KzEyPj4yXXwwKS0kPj4yPj4+MD55Pj4+MCl7YWE9Y1skKyh5PDwyKT4+Ml18MDtpZigo
YWF8MCk9PTApe2JyZWFrfWFiPWFhO2FhPWNbXz4+Ml18MDtkeihhYSl8MDtMMjcwOTpkb3tzd2l0
Y2goazw8MjQ+PjI0fDApe2Nhc2UgNzI6e2NbdT4+Ml09Y1tmPj4yXTthYT1nTChlLHUsaCxhYiwy
KXwwO2FjPWNbaD4+Ml18MDtpZigoYWMmNHwwKT09MCYoYWF8MCk8MjQpe2Nbais4Pj4yXT1hYTti
cmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA5Nzpj
YXNlIDY1OnthYz1jW2Y+PjJdfDA7YWE9ZCs4fDA7YWQ9YjBbY1tjW2FhPj4yXT4+Ml0mMTI3XShh
YSl8MDtjW3g+PjJdPWFjO2FjPShmcShlLHgsYWQsYWQrMTY4fDAsYWIsaCwwKXwwKS1hZHwwO2lm
KChhY3wwKT49MTY4KXticmVhayBMMjcwOX1jW2orMjQ+PjJdPSgoYWN8MCkvMTJ8MHwwKSU3fDA7
YnJlYWt9O2Nhc2UgMTA5OntjW3I+PjJdPWNbZj4+Ml07YWM9KGdMKGUscixoLGFiLDIpfDApLTF8
MDthZD1jW2g+PjJdfDA7aWYoKGFkJjR8MCk9PTAmKGFjfDApPDEyKXtjW2orMTY+PjJdPWFjO2Jy
ZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hZHw0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNlIDEyMTp7
Y1tuPj4yXT1jW2Y+PjJdO2FkPWdMKGUsbixoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7
YnJlYWsgTDI3MDl9aWYoKGFkfDApPDY5KXthZT1hZCsyZTN8MH1lbHNle2FlPShhZC02OXwwKT4+
PjA8MzE/YWQrMTkwMHwwOmFkfWNbaisyMD4+Ml09YWUtMTkwMDticmVha307Y2FzZSA5ODpjYXNl
IDY2OmNhc2UgMTA0OnthZD1jW2Y+PjJdfDA7YWM9ZCs4fDA7YWE9YjBbY1soY1thYz4+Ml18MCkr
ND4+Ml0mMTI3XShhYyl8MDtjW3c+PjJdPWFkO2FkPShmcShlLHcsYWEsYWErMjg4fDAsYWIsaCww
KXwwKS1hYXwwO2lmKChhZHwwKT49Mjg4KXticmVhayBMMjcwOX1jW2orMTY+PjJdPSgoYWR8MCkv
MTJ8MHwwKSUxMnwwO2JyZWFrfTtjYXNlIDczOnthZD1qKzh8MDtjW3Q+PjJdPWNbZj4+Ml07YWE9
Z0woZSx0LGgsYWIsMil8MDthYz1jW2g+PjJdfDA7ZG97aWYoKGFjJjR8MCk9PTApe2lmKChhYS0x
fDApPj4+MD49MTIpe2JyZWFrfWNbYWQ+PjJdPWFhO2JyZWFrIEwyNzA5fX13aGlsZSgwKTtjW2g+
PjJdPWFjfDQ7YnJlYWt9O2Nhc2UgMTA2OntjW3M+PjJdPWNbZj4+Ml07YWE9Z0woZSxzLGgsYWIs
Myl8MDthZD1jW2g+PjJdfDA7aWYoKGFkJjR8MCk9PTAmKGFhfDApPDM2Nil7Y1tqKzI4Pj4yXT1h
YTticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA2
ODp7YWQ9ZXwwO2NbRT4+Ml09Y1thZD4+Ml07Y1tGPj4yXT1jW2Y+PjJdO2dEKEQsZCxFLEYsZyxo
LGosMjM2OCwyMzc2KTtjW2FkPj4yXT1jW0Q+PjJdO2JyZWFrfTtjYXNlIDg0OnthZD1lfDA7Y1tT
Pj4yXT1jW2FkPj4yXTtjW1Q+PjJdPWNbZj4+Ml07Z0QoUixkLFMsVCxnLGgsaiwyMzI4LDIzMzYp
O2NbYWQ+PjJdPWNbUj4+Ml07YnJlYWt9O2Nhc2UgMTE5OntjW28+PjJdPWNbZj4+Ml07YWQ9Z0wo
ZSxvLGgsYWIsMSl8MDthYT1jW2g+PjJdfDA7aWYoKGFhJjR8MCk9PTAmKGFkfDApPDcpe2Nbaisy
ND4+Ml09YWQ7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFhfDQ7YnJlYWsgTDI3MDl9YnJlYWt9
O2Nhc2UgNzA6e2FhPWV8MDtjW0g+PjJdPWNbYWE+PjJdO2NbST4+Ml09Y1tmPj4yXTtnRChHLGQs
SCxJLGcsaCxqLDIzNjAsMjM2OCk7Y1thYT4+Ml09Y1tHPj4yXTticmVha307Y2FzZSA4OTp7Y1tt
Pj4yXT1jW2Y+PjJdO2FhPWdMKGUsbSxoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7YnJl
YWsgTDI3MDl9Y1tqKzIwPj4yXT1hYS0xOTAwO2JyZWFrfTtjYXNlIDM3OntjW1o+PjJdPWNbZj4+
Ml07Z0soMCxlLFosaCxhYik7YnJlYWt9O2Nhc2UgMTE0OnthYT1lfDA7Y1tNPj4yXT1jW2FhPj4y
XTtjW04+PjJdPWNbZj4+Ml07Z0QoTCxkLE0sTixnLGgsaiwyMzQ0LDIzNTUpO2NbYWE+PjJdPWNb
TD4+Ml07YnJlYWt9O2Nhc2UgODI6e2FhPWV8MDtjW1A+PjJdPWNbYWE+PjJdO2NbUT4+Ml09Y1tm
Pj4yXTtnRChPLGQsUCxRLGcsaCxqLDIzMzYsMjM0MSk7Y1thYT4+Ml09Y1tPPj4yXTticmVha307
Y2FzZSA5OTp7YWE9ZCs4fDA7YWQ9YjBbY1soY1thYT4+Ml18MCkrMTI+PjJdJjEyN10oYWEpfDA7
YWE9ZXwwO2NbQj4+Ml09Y1thYT4+Ml07Y1tDPj4yXT1jW2Y+PjJdO2FmPWFkO2FnPWFbYWRdfDA7
aWYoKGFnJjEpPT0wKXthaD1hZisxfDA7YWk9YWYrMXwwfWVsc2V7YWY9Y1thZCs4Pj4yXXwwO2Fo
PWFmO2FpPWFmfWFmPWFnJjI1NTtpZigoYWYmMXwwKT09MCl7YWo9YWY+Pj4xfWVsc2V7YWo9Y1th
ZCs0Pj4yXXwwfWdEKEEsZCxCLEMsZyxoLGosYWksYWgrYWp8MCk7Y1thYT4+Ml09Y1tBPj4yXTti
cmVha307Y2FzZSA4Mzp7Y1twPj4yXT1jW2Y+PjJdO2FhPWdMKGUscCxoLGFiLDIpfDA7YWQ9Y1to
Pj4yXXwwO2lmKChhZCY0fDApPT0wJihhYXwwKTw2MSl7Y1tqPj4yXT1hYTticmVhayBMMjcwOX1l
bHNle2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA3Nzp7Y1txPj4yXT1jW2Y+
PjJdO2FkPWdMKGUscSxoLGFiLDIpfDA7YWE9Y1toPj4yXXwwO2lmKChhYSY0fDApPT0wJihhZHww
KTw2MCl7Y1tqKzQ+PjJdPWFkO2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hYXw0O2JyZWFrIEwy
NzA5fWJyZWFrfTtjYXNlIDExMDpjYXNlIDExNjp7Y1tKPj4yXT1jW2Y+PjJdO2dIKDAsZSxKLGgs
YWIpO2JyZWFrfTtjYXNlIDExMjp7Y1tLPj4yXT1jW2Y+PjJdO2dKKGQsais4fDAsZSxLLGgsYWIp
O2JyZWFrfTtjYXNlIDEyMDp7YWE9Y1soY1tkPj4yXXwwKSsyMD4+Ml18MDtjW1U+PjJdPWNbZT4+
Ml07Y1tWPj4yXT1jW2Y+PjJdO2JYW2FhJjEyN10oYixkLFUsVixnLGgsaik7aT1sO3JldHVybn07
Y2FzZSA4ODp7YWE9ZCs4fDA7YWQ9YjBbY1soY1thYT4+Ml18MCkrMjQ+PjJdJjEyN10oYWEpfDA7
YWE9ZXwwO2NbWD4+Ml09Y1thYT4+Ml07Y1tZPj4yXT1jW2Y+PjJdO2FmPWFkO2FnPWFbYWRdfDA7
aWYoKGFnJjEpPT0wKXthaz1hZisxfDA7YWw9YWYrMXwwfWVsc2V7YWY9Y1thZCs4Pj4yXXwwO2Fr
PWFmO2FsPWFmfWFmPWFnJjI1NTtpZigoYWYmMXwwKT09MCl7YW09YWY+Pj4xfWVsc2V7YW09Y1th
ZCs0Pj4yXXwwfWdEKFcsZCxYLFksZyxoLGosYWwsYWsrYW18MCk7Y1thYT4+Ml09Y1tXPj4yXTti
cmVha307Y2FzZSAxMDA6Y2FzZSAxMDE6e2FhPWorMTJ8MDtjW3Y+PjJdPWNbZj4+Ml07YWQ9Z0wo
ZSx2LGgsYWIsMil8MDthZj1jW2g+PjJdfDA7ZG97aWYoKGFmJjR8MCk9PTApe2lmKChhZC0xfDAp
Pj4+MD49MzEpe2JyZWFrfWNbYWE+PjJdPWFkO2JyZWFrIEwyNzA5fX13aGlsZSgwKTtjW2g+PjJd
PWFmfDQ7YnJlYWt9O2RlZmF1bHQ6e2NbaD4+Ml09Y1toPj4yXXw0fX19d2hpbGUoMCk7Y1tiPj4y
XT1jW2U+PjJdO2k9bDtyZXR1cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAsODE3
NiwxMzQpfWZ1bmN0aW9uIGdKKGEsYixlLGYsZyxoKXthPWF8MDtiPWJ8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MDtqPWk7aT1pKzh8MDtrPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2s+PjJdO2s9anwwO2w9YSs4fDA7YT1iMFtjWyhj
W2w+PjJdfDApKzg+PjJdJjEyN10obCl8MDtsPWRbYV18MDtpZigobCYxfDApPT0wKXttPWw+Pj4x
fWVsc2V7bT1jW2ErND4+Ml18MH1sPWRbYSsxMnwwXXwwO2lmKChsJjF8MCk9PTApe249bD4+PjF9
ZWxzZXtuPWNbYSsxNj4+Ml18MH1pZigobXwwKT09KC1ufDApKXtjW2c+PjJdPWNbZz4+Ml18NDtp
PWo7cmV0dXJufWNbaz4+Ml09Y1tmPj4yXTtmPWZxKGUsayxhLGErMjR8MCxoLGcsMCl8MDtnPWYt
YXwwO2Rve2lmKChmfDApPT0oYXwwKSl7aWYoKGNbYj4+Ml18MCkhPTEyKXticmVha31jW2I+PjJd
PTA7aT1qO3JldHVybn19d2hpbGUoMCk7aWYoKGd8MCkhPTEyKXtpPWo7cmV0dXJufWc9Y1tiPj4y
XXwwO2lmKChnfDApPj0xMil7aT1qO3JldHVybn1jW2I+PjJdPWcrMTI7aT1qO3JldHVybn1mdW5j
dGlvbiBnSyhiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAs
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Yj1pO2g9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2U+PjJdPWNbaD4+Ml07aD1kfDA7ZD1jW2g+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2o9MH1lbHNl
e2lmKChjW2QrMTI+PjJdfDApIT0oY1tkKzE2Pj4yXXwwKSl7aj1kO2JyZWFrfWlmKChiMFtjWyhj
W2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApPT0tMSl7Y1toPj4yXT0wO2o9MDticmVha31lbHNl
e2o9Y1toPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0oanwwKT09MDtqPWV8MDtlPWNbaj4+Ml18
MDtMMjgyMjpkb3tpZigoZXwwKT09MCl7az0yMzM3fWVsc2V7ZG97aWYoKGNbZSsxMj4+Ml18MCk9
PShjW2UrMTY+PjJdfDApKXtpZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXwwKSE9
LTEpe2JyZWFrfWNbaj4+Ml09MDtrPTIzMzc7YnJlYWsgTDI4MjJ9fXdoaWxlKDApO2lmKGQpe2w9
ZTttPTB9ZWxzZXtrPTIzMzh9fX13aGlsZSgwKTtpZigoa3wwKT09MjMzNyl7aWYoZCl7az0yMzM4
fWVsc2V7bD0wO209MX19aWYoKGt8MCk9PTIzMzgpe2NbZj4+Ml09Y1tmPj4yXXw2O2k9YjtyZXR1
cm59ZD1jW2g+PjJdfDA7ZT1jW2QrMTI+PjJdfDA7aWYoKGV8MCk9PShjW2QrMTY+PjJdfDApKXtu
PShiMFtjWyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApJjI1NX1lbHNle249YVtlXXwwfWlm
KChiMVtjWyhjW2c+PjJdfDApKzM2Pj4yXSY2M10oZyxuLDApfDApPDwyND4+MjQhPTM3KXtjW2Y+
PjJdPWNbZj4+Ml18NDtpPWI7cmV0dXJufW49Y1toPj4yXXwwO2c9bisxMnwwO2U9Y1tnPj4yXXww
O2lmKChlfDApPT0oY1tuKzE2Pj4yXXwwKSl7ZD1jWyhjW24+PjJdfDApKzQwPj4yXXwwO2IwW2Qm
MTI3XShuKXwwfWVsc2V7Y1tnPj4yXT1lKzF9ZT1jW2g+PjJdfDA7ZG97aWYoKGV8MCk9PTApe289
MH1lbHNle2lmKChjW2UrMTI+PjJdfDApIT0oY1tlKzE2Pj4yXXwwKSl7bz1lO2JyZWFrfWlmKChi
MFtjWyhjW2U+PjJdfDApKzM2Pj4yXSYxMjddKGUpfDApPT0tMSl7Y1toPj4yXT0wO289MDticmVh
a31lbHNle289Y1toPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7aD0ob3wwKT09MDtkb3tpZihtKXtr
PTIzNTd9ZWxzZXtpZigoY1tsKzEyPj4yXXwwKSE9KGNbbCsxNj4+Ml18MCkpe2lmKCEoaF4obHww
KT09MCkpe2JyZWFrfWk9YjtyZXR1cm59aWYoKGIwW2NbKGNbbD4+Ml18MCkrMzY+PjJdJjEyN10o
bCl8MCk9PS0xKXtjW2o+PjJdPTA7az0yMzU3O2JyZWFrfWlmKCFoKXticmVha31pPWI7cmV0dXJu
fX13aGlsZSgwKTtkb3tpZigoa3wwKT09MjM1Nyl7aWYoaCl7YnJlYWt9aT1iO3JldHVybn19d2hp
bGUoMCk7Y1tmPj4yXT1jW2Y+PjJdfDI7aT1iO3JldHVybn1mdW5jdGlvbiBnTChkLGUsZixnLGgp
e2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0w
LEQ9MCxFPTAsRj0wLEc9MCxIPTA7aj1pO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+
PjJdPWNbaz4+Ml07az1kfDA7ZD1jW2s+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2w9MH1lbHNle2lm
KChjW2QrMTI+PjJdfDApIT0oY1tkKzE2Pj4yXXwwKSl7bD1kO2JyZWFrfWlmKChiMFtjWyhjW2Q+
PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApPT0tMSl7Y1trPj4yXT0wO2w9MDticmVha31lbHNle2w9
Y1trPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0obHwwKT09MDtsPWV8MDtlPWNbbD4+Ml18MDtM
Mjg3Njpkb3tpZigoZXwwKT09MCl7bT0yMzc3fWVsc2V7ZG97aWYoKGNbZSsxMj4+Ml18MCk9PShj
W2UrMTY+PjJdfDApKXtpZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXwwKSE9LTEp
e2JyZWFrfWNbbD4+Ml09MDttPTIzNzc7YnJlYWsgTDI4NzZ9fXdoaWxlKDApO2lmKGQpe249ZX1l
bHNle209MjM3OH19fXdoaWxlKDApO2lmKChtfDApPT0yMzc3KXtpZihkKXttPTIzNzh9ZWxzZXtu
PTB9fWlmKChtfDApPT0yMzc4KXtjW2Y+PjJdPWNbZj4+Ml18NjtvPTA7aT1qO3JldHVybiBvfDB9
ZD1jW2s+PjJdfDA7ZT1jW2QrMTI+PjJdfDA7aWYoKGV8MCk9PShjW2QrMTY+PjJdfDApKXtwPShi
MFtjWyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApJjI1NX1lbHNle3A9YVtlXXwwfWRve2lm
KHA8PDI0Pj4yND4tMSl7ZT1nKzh8MDtpZigoYlsoY1tlPj4yXXwwKSsocDw8MjQ+PjI0PDwxKT4+
MV0mMjA0OCk9PTApe2JyZWFrfWQ9ZztxPShiMVtjWyhjW2Q+PjJdfDApKzM2Pj4yXSY2M10oZyxw
LDApfDApPDwyND4+MjQ7cj1jW2s+PjJdfDA7cz1yKzEyfDA7dD1jW3M+PjJdfDA7aWYoKHR8MCk9
PShjW3IrMTY+PjJdfDApKXt1PWNbKGNbcj4+Ml18MCkrNDA+PjJdfDA7YjBbdSYxMjddKHIpfDA7
dj1xO3c9aDt4PW59ZWxzZXtjW3M+PjJdPXQrMTt2PXE7dz1oO3g9bn13aGlsZSgxKXt5PXYtNDh8
MDtxPXctMXwwO3Q9Y1trPj4yXXwwO2Rve2lmKCh0fDApPT0wKXt6PTB9ZWxzZXtpZigoY1t0KzEy
Pj4yXXwwKSE9KGNbdCsxNj4+Ml18MCkpe3o9dDticmVha31pZigoYjBbY1soY1t0Pj4yXXwwKSsz
Nj4+Ml0mMTI3XSh0KXwwKT09LTEpe2Nbaz4+Ml09MDt6PTA7YnJlYWt9ZWxzZXt6PWNbaz4+Ml18
MDticmVha319fXdoaWxlKDApO3Q9KHp8MCk9PTA7aWYoKHh8MCk9PTApe0E9ejtCPTB9ZWxzZXtk
b3tpZigoY1t4KzEyPj4yXXwwKT09KGNbeCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW3g+PjJdfDAp
KzM2Pj4yXSYxMjddKHgpfDApIT0tMSl7Qz14O2JyZWFrfWNbbD4+Ml09MDtDPTB9ZWxzZXtDPXh9
fXdoaWxlKDApO0E9Y1trPj4yXXwwO0I9Q31EPShCfDApPT0wO2lmKCEoKHReRCkmKHF8MCk+MCkp
e209MjQwNzticmVha31zPWNbQSsxMj4+Ml18MDtpZigoc3wwKT09KGNbQSsxNj4+Ml18MCkpe0U9
KGIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MCkmMjU1fWVsc2V7RT1hW3NdfDB9aWYo
RTw8MjQ+PjI0PD0tMSl7bz15O209MjQyMjticmVha31pZigoYlsoY1tlPj4yXXwwKSsoRTw8MjQ+
PjI0PDwxKT4+MV0mMjA0OCk9PTApe289eTttPTI0MjM7YnJlYWt9cz0oKGIxW2NbKGNbZD4+Ml18
MCkrMzY+PjJdJjYzXShnLEUsMCl8MCk8PDI0Pj4yNCkrKHkqMTB8MCl8MDtyPWNbaz4+Ml18MDt1
PXIrMTJ8MDtGPWNbdT4+Ml18MDtpZigoRnwwKT09KGNbcisxNj4+Ml18MCkpe0c9Y1soY1tyPj4y
XXwwKSs0MD4+Ml18MDtiMFtHJjEyN10ocil8MDt2PXM7dz1xO3g9Qjtjb250aW51ZX1lbHNle2Nb
dT4+Ml09RisxO3Y9czt3PXE7eD1CO2NvbnRpbnVlfX1pZigobXwwKT09MjQwNyl7ZG97aWYoKEF8
MCk9PTApe0g9MH1lbHNle2lmKChjW0ErMTI+PjJdfDApIT0oY1tBKzE2Pj4yXXwwKSl7SD1BO2Jy
ZWFrfWlmKChiMFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApPT0tMSl7Y1trPj4yXT0w
O0g9MDticmVha31lbHNle0g9Y1trPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0oSHwwKT09MDtM
MjkzMzpkb3tpZihEKXttPTI0MTd9ZWxzZXtkb3tpZigoY1tCKzEyPj4yXXwwKT09KGNbQisxNj4+
Ml18MCkpe2lmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7YnJlYWt9
Y1tsPj4yXT0wO209MjQxNzticmVhayBMMjkzM319d2hpbGUoMCk7aWYoZCl7bz15fWVsc2V7YnJl
YWt9aT1qO3JldHVybiBvfDB9fXdoaWxlKDApO2Rve2lmKChtfDApPT0yNDE3KXtpZihkKXticmVh
a31lbHNle289eX1pPWo7cmV0dXJuIG98MH19d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+PjJdfDI7bz15
O2k9ajtyZXR1cm4gb3wwfWVsc2UgaWYoKG18MCk9PTI0MjIpe2k9ajtyZXR1cm4gb3wwfWVsc2Ug
aWYoKG18MCk9PTI0MjMpe2k9ajtyZXR1cm4gb3wwfX19d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+PjJd
fDQ7bz0wO2k9ajtyZXR1cm4gb3wwfWZ1bmN0aW9uIGdNKGEpe2E9YXwwO3JldHVybiAyfWZ1bmN0
aW9uIGdOKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdPKGEpe2E9YXww
O2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGdQKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MDtqPWk7aT1pKzE2fDA7
az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7Y1trPj4yXT1jW2Q+
PjJdO2NbbD4+Ml09Y1tlPj4yXTtnUihhLGIsayxsLGYsZyxoLDIyOTYsMjMyOCk7aT1qO3JldHVy
bn1mdW5jdGlvbiBnUShiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7aT1p
KzE2fDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209ays4fDA7bj1kKzh8
MDtvPWIwW2NbKGNbbj4+Ml18MCkrMjA+PjJdJjEyN10obil8MDtjW2w+PjJdPWNbZT4+Ml07Y1tt
Pj4yXT1jW2Y+PjJdO2Y9YVtvXXwwO2lmKChmJjEpPT0wKXtwPW8rNHwwO3E9bys0fDB9ZWxzZXtl
PWNbbys4Pj4yXXwwO3A9ZTtxPWV9ZT1mJjI1NTtpZigoZSYxfDApPT0wKXtyPWU+Pj4xfWVsc2V7
cj1jW28rND4+Ml18MH1nUihiLGQsbCxtLGcsaCxqLHEscCsocjw8Mil8MCk7aT1rO3JldHVybn1m
dW5jdGlvbiBnUihhLGIsZCxlLGYsZyxoLGosayl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0w
LEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAs
VT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAs
YWY9MCxhZz0wO2w9aTtpPWkrNDh8MDttPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4y
XT1jW20+PjJdO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07bT1s
fDA7bj1sKzE2fDA7bz1sKzI0fDA7cD1sKzMyfDA7cT1sKzQwfDA7ZWoobixmKTtyPW58MDtuPWNb
cj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+PjJdPTEyO2Nb
bSs4Pj4yXT0wO2RXKDE1Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO3M9Y1tuKzg+PjJdfDA7
ZG97aWYoKGNbbisxMj4+Ml18MCktcz4+Mj4+PjA+bT4+PjApe3Q9Y1tzKyhtPDwyKT4+Ml18MDtp
ZigodHwwKT09MCl7YnJlYWt9dT10O3Y9Y1tyPj4yXXwwO2R6KHYpfDA7Y1tnPj4yXT0wO3Y9ZHww
O0wyOTY5OmRve2lmKChqfDApPT0oa3wwKSl7dz0yNTA4fWVsc2V7eD1lfDA7eT10O3o9dDtBPXQ7
Qj1iO0M9cHwwO0Q9cXwwO0U9b3wwO0Y9ajtHPTA7TDI5NzE6d2hpbGUoMSl7SD1HO3doaWxlKDEp
e2lmKChIfDApIT0wKXt3PTI1MDg7YnJlYWsgTDI5Njl9ST1jW3Y+PjJdfDA7ZG97aWYoKEl8MCk9
PTApe0o9MH1lbHNle0s9Y1tJKzEyPj4yXXwwO2lmKChLfDApPT0oY1tJKzE2Pj4yXXwwKSl7TD1i
MFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDB9ZWxzZXtMPWNbSz4+Ml18MH1pZigoTHww
KSE9LTEpe0o9STticmVha31jW3Y+PjJdPTA7Sj0wfX13aGlsZSgwKTtJPShKfDApPT0wO0s9Y1t4
Pj4yXXwwO2Rve2lmKChLfDApPT0wKXt3PTI0NjB9ZWxzZXtNPWNbSysxMj4+Ml18MDtpZigoTXww
KT09KGNbSysxNj4+Ml18MCkpe049YjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShLKXwwfWVs
c2V7Tj1jW00+PjJdfDB9aWYoKE58MCk9PS0xKXtjW3g+PjJdPTA7dz0yNDYwO2JyZWFrfWVsc2V7
aWYoSV4oS3wwKT09MCl7Tz1LO2JyZWFrfWVsc2V7dz0yNDYyO2JyZWFrIEwyOTcxfX19fXdoaWxl
KDApO2lmKCh3fDApPT0yNDYwKXt3PTA7aWYoSSl7dz0yNDYyO2JyZWFrIEwyOTcxfWVsc2V7Tz0w
fX1pZigoYjFbY1soY1t5Pj4yXXwwKSs1Mj4+Ml0mNjNdKHUsY1tGPj4yXXwwLDApfDApPDwyND4+
MjQ9PTM3KXt3PTI0NjU7YnJlYWt9aWYoYjFbY1soY1t6Pj4yXXwwKSsxMj4+Ml0mNjNdKHUsODE5
MixjW0Y+PjJdfDApfDApe1A9Rjt3PTI0NzU7YnJlYWt9UT1KKzEyfDA7Sz1jW1E+PjJdfDA7Uj1K
KzE2fDA7aWYoKEt8MCk9PShjW1I+PjJdfDApKXtTPWIwW2NbKGNbSj4+Ml18MCkrMzY+PjJdJjEy
N10oSil8MH1lbHNle1M9Y1tLPj4yXXwwfUs9Yl9bY1soY1tBPj4yXXwwKSsyOD4+Ml0mMzFdKHUs
Uyl8MDtpZigoS3wwKT09KGJfW2NbKGNbQT4+Ml18MCkrMjg+PjJdJjMxXSh1LGNbRj4+Ml18MCl8
MCkpe3c9MjUwMzticmVha31jW2c+PjJdPTQ7SD00fUwzMDAzOmRve2lmKCh3fDApPT0yNTAzKXt3
PTA7SD1jW1E+PjJdfDA7aWYoKEh8MCk9PShjW1I+PjJdfDApKXtLPWNbKGNbSj4+Ml18MCkrNDA+
PjJdfDA7YjBbSyYxMjddKEopfDB9ZWxzZXtjW1E+PjJdPUgrNH1UPUYrNHwwfWVsc2UgaWYoKHd8
MCk9PTI0NjUpe3c9MDtIPUYrNHwwO2lmKChIfDApPT0oa3wwKSl7dz0yNDY2O2JyZWFrIEwyOTcx
fUs9YjFbY1soY1t5Pj4yXXwwKSs1Mj4+Ml0mNjNdKHUsY1tIPj4yXXwwLDApfDA7c3dpdGNoKEs8
PDI0Pj4yNCl7Y2FzZSA2OTpjYXNlIDQ4OntNPUYrOHwwO2lmKChNfDApPT0oa3wwKSl7dz0yNDY5
O2JyZWFrIEwyOTcxfVU9SztWPWIxW2NbKGNbeT4+Ml18MCkrNTI+PjJdJjYzXSh1LGNbTT4+Ml18
MCwwKXwwO1c9TTticmVha307ZGVmYXVsdDp7VT0wO1Y9SztXPUh9fUg9Y1soY1tCPj4yXXwwKSsz
Nj4+Ml18MDtjW0M+PjJdPUo7Y1tEPj4yXT1PO2I3W0gmN10obyxiLHAscSxmLGcsaCxWLFUpO2Nb
dj4+Ml09Y1tFPj4yXTtUPVcrNHwwfWVsc2UgaWYoKHd8MCk9PTI0NzUpe3doaWxlKDEpe3c9MDtI
PVArNHwwO2lmKChIfDApPT0oa3wwKSl7WD1rO2JyZWFrfWlmKGIxW2NbKGNbej4+Ml18MCkrMTI+
PjJdJjYzXSh1LDgxOTIsY1tIPj4yXXwwKXwwKXtQPUg7dz0yNDc1fWVsc2V7WD1IO2JyZWFrfX1J
PUo7SD1PO3doaWxlKDEpe2Rve2lmKChJfDApPT0wKXtZPTB9ZWxzZXtLPWNbSSsxMj4+Ml18MDtp
ZigoS3wwKT09KGNbSSsxNj4+Ml18MCkpe1o9YjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3XShJ
KXwwfWVsc2V7Wj1jW0s+PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUk7YnJlYWt9Y1t2Pj4yXT0wO1k9
MH19d2hpbGUoMCk7Sz0oWXwwKT09MDtkb3tpZigoSHwwKT09MCl7dz0yNDkwfWVsc2V7TT1jW0gr
MTI+PjJdfDA7aWYoKE18MCk9PShjW0grMTY+PjJdfDApKXtfPWIwW2NbKGNbSD4+Ml18MCkrMzY+
PjJdJjEyN10oSCl8MH1lbHNle189Y1tNPj4yXXwwfWlmKChffDApPT0tMSl7Y1t4Pj4yXT0wO3c9
MjQ5MDticmVha31lbHNle2lmKEteKEh8MCk9PTApeyQ9SDticmVha31lbHNle1Q9WDticmVhayBM
MzAwM319fX13aGlsZSgwKTtpZigod3wwKT09MjQ5MCl7dz0wO2lmKEspe1Q9WDticmVhayBMMzAw
M31lbHNleyQ9MH19TT1ZKzEyfDA7YWE9Y1tNPj4yXXwwO2FiPVkrMTZ8MDtpZigoYWF8MCk9PShj
W2FiPj4yXXwwKSl7YWM9YjBbY1soY1tZPj4yXXwwKSszNj4+Ml0mMTI3XShZKXwwfWVsc2V7YWM9
Y1thYT4+Ml18MH1pZighKGIxW2NbKGNbej4+Ml18MCkrMTI+PjJdJjYzXSh1LDgxOTIsYWMpfDAp
KXtUPVg7YnJlYWsgTDMwMDN9YWE9Y1tNPj4yXXwwO2lmKChhYXwwKT09KGNbYWI+PjJdfDApKXth
Yj1jWyhjW1k+PjJdfDApKzQwPj4yXXwwO2IwW2FiJjEyN10oWSl8MDtJPVk7SD0kO2NvbnRpbnVl
fWVsc2V7Y1tNPj4yXT1hYSs0O0k9WTtIPSQ7Y29udGludWV9fX19d2hpbGUoMCk7aWYoKFR8MCk9
PShrfDApKXt3PTI1MDg7YnJlYWsgTDI5Njl9Rj1UO0c9Y1tnPj4yXXwwfWlmKCh3fDApPT0yNDYy
KXtjW2c+PjJdPTQ7YWQ9SjticmVha31lbHNlIGlmKCh3fDApPT0yNDY2KXtjW2c+PjJdPTQ7YWQ9
SjticmVha31lbHNlIGlmKCh3fDApPT0yNDY5KXtjW2c+PjJdPTQ7YWQ9SjticmVha319fXdoaWxl
KDApO2lmKCh3fDApPT0yNTA4KXthZD1jW3Y+PjJdfDB9dT1kfDA7ZG97aWYoKGFkfDApIT0wKXt0
PWNbYWQrMTI+PjJdfDA7aWYoKHR8MCk9PShjW2FkKzE2Pj4yXXwwKSl7YWU9YjBbY1soY1thZD4+
Ml18MCkrMzY+PjJdJjEyN10oYWQpfDB9ZWxzZXthZT1jW3Q+PjJdfDB9aWYoKGFlfDApIT0tMSl7
YnJlYWt9Y1t1Pj4yXT0wfX13aGlsZSgwKTt2PWNbdT4+Ml18MDt0PSh2fDApPT0wO0c9ZXwwO0Y9
Y1tHPj4yXXwwO2Rve2lmKChGfDApPT0wKXt3PTI1MjF9ZWxzZXt6PWNbRisxMj4+Ml18MDtpZigo
enwwKT09KGNbRisxNj4+Ml18MCkpe2FmPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8
MH1lbHNle2FmPWNbej4+Ml18MH1pZigoYWZ8MCk9PS0xKXtjW0c+PjJdPTA7dz0yNTIxO2JyZWFr
fWlmKCEodF4oRnwwKT09MCkpe2JyZWFrfWFnPWF8MDtjW2FnPj4yXT12O2k9bDtyZXR1cm59fXdo
aWxlKDApO2Rve2lmKCh3fDApPT0yNTIxKXtpZih0KXticmVha31hZz1hfDA7Y1thZz4+Ml09djtp
PWw7cmV0dXJufX13aGlsZSgwKTtjW2c+PjJdPWNbZz4+Ml18MjthZz1hfDA7Y1thZz4+Ml09djtp
PWw7cmV0dXJufX13aGlsZSgwKTtsPWJPKDQpfDA7a3EobCk7YmwobHwwLDgxNzYsMTM0KX1mdW5j
dGlvbiBnUyhhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTA7aj1pO2k9aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+
Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWor
OHwwO209aisyNHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0x
KXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2KX1s
PShjWzM5MjNdfDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLW4+PjI+
Pj4wPmw+Pj4wKXtvPWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztvPWNb
Zj4+Ml18MDtkeihvKXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjW2NbcT4+Ml0+PjJdJjEy
N10ocSl8MDtjW2s+PjJdPW87bz0oZlMoZCxrLHIscisxNjh8MCxwLGcsMCl8MCktcnwwO2lmKChv
fDApPj0xNjgpe3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufWNb
aCsyND4+Ml09KChvfDApLzEyfDB8MCklN3wwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+
Ml09dDtpPWo7cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0
KX1mdW5jdGlvbiBnVChhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTA7aj1pO2k9aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJd
PWNbaz4+Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8
MDtsPWorOHwwO209aisyNHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzkyMl18
MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxs
LDk2KX1sPShjWzM5MjNdfDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDAp
LW4+PjI+Pj4wPmw+Pj4wKXtvPWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9
bztvPWNbZj4+Ml18MDtkeihvKXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjWyhjW3E+PjJd
fDApKzQ+PjJdJjEyN10ocSl8MDtjW2s+PjJdPW87bz0oZlMoZCxrLHIscisyODh8MCxwLGcsMCl8
MCktcnwwO2lmKChvfDApPj0yODgpe3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtp
PWo7cmV0dXJufWNbaCsxNj4+Ml09KChvfDApLzEyfDB8MCklMTJ8MDtzPWR8MDt0PWNbcz4+Ml18
MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGopO2Js
KGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ1UoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MDtiPWk7aT1pKzMyfDA7aj1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
ZD4+Ml09Y1tqPj4yXTtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJd
O2o9YnwwO2s9Yis4fDA7bD1iKzI0fDA7ZWoobCxmKTtmPWx8MDtsPWNbZj4+Ml18MDtpZigoY1sz
OTIyXXwwKSE9LTEpe2Nbaz4+Ml09MTU2ODg7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1
Njg4LGssOTYpfWs9KGNbMzkyM118MCktMXwwO209Y1tsKzg+PjJdfDA7ZG97aWYoKGNbbCsxMj4+
Ml18MCktbT4+Mj4+PjA+az4+PjApe249Y1ttKyhrPDwyKT4+Ml18MDtpZigobnwwKT09MCl7YnJl
YWt9bz1uO249Y1tmPj4yXXwwO2R6KG4pfDA7Y1tqPj4yXT1jW2U+PjJdO249aGMoZCxqLGcsbyw0
KXwwO2lmKChjW2c+PjJdJjR8MCkhPTApe3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXwwO2Nbcj4+Ml09
cTtpPWI7cmV0dXJufWlmKChufDApPDY5KXtzPW4rMmUzfDB9ZWxzZXtzPShuLTY5fDApPj4+MDwz
MT9uKzE5MDB8MDpufWNbaCsyMD4+Ml09cy0xOTAwO3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXwwO2Nb
cj4+Ml09cTtpPWI7cmV0dXJufX13aGlsZSgwKTtiPWJPKDQpfDA7a3EoYik7YmwoYnwwLDgxNzYs
MTM0KX1mdW5jdGlvbiBnVihhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wO2E9aTtnPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1j
W2c+PjJdO2c9YnwwO2I9ZHwwO2Q9ZjtMMzEyNzp3aGlsZSgxKXtoPWNbZz4+Ml18MDtkb3tpZigo
aHwwKT09MCl7aj0xfWVsc2V7az1jW2grMTI+PjJdfDA7aWYoKGt8MCk9PShjW2grMTY+PjJdfDAp
KXtsPWIwW2NbKGNbaD4+Ml18MCkrMzY+PjJdJjEyN10oaCl8MH1lbHNle2w9Y1trPj4yXXwwfWlm
KChsfDApPT0tMSl7Y1tnPj4yXT0wO2o9MTticmVha31lbHNle2o9KGNbZz4+Ml18MCk9PTA7YnJl
YWt9fX13aGlsZSgwKTtoPWNbYj4+Ml18MDtkb3tpZigoaHwwKT09MCl7bT0yNTgxfWVsc2V7az1j
W2grMTI+PjJdfDA7aWYoKGt8MCk9PShjW2grMTY+PjJdfDApKXtuPWIwW2NbKGNbaD4+Ml18MCkr
MzY+PjJdJjEyN10oaCl8MH1lbHNle249Y1trPj4yXXwwfWlmKChufDApPT0tMSl7Y1tiPj4yXT0w
O209MjU4MTticmVha31lbHNle2s9KGh8MCk9PTA7aWYoal5rKXtvPWg7cD1rO2JyZWFrfWVsc2V7
cT1oO3I9azticmVhayBMMzEyN319fX13aGlsZSgwKTtpZigobXwwKT09MjU4MSl7bT0wO2lmKGop
e3E9MDtyPTE7YnJlYWt9ZWxzZXtvPTA7cD0xfX1oPWNbZz4+Ml18MDtrPWNbaCsxMj4+Ml18MDtp
Zigoa3wwKT09KGNbaCsxNj4+Ml18MCkpe3M9YjBbY1soY1toPj4yXXwwKSszNj4+Ml0mMTI3XSho
KXwwfWVsc2V7cz1jW2s+PjJdfDB9aWYoIShiMVtjWyhjW2Q+PjJdfDApKzEyPj4yXSY2M10oZiw4
MTkyLHMpfDApKXtxPW87cj1wO2JyZWFrfWs9Y1tnPj4yXXwwO2g9aysxMnwwO3Q9Y1toPj4yXXww
O2lmKCh0fDApPT0oY1trKzE2Pj4yXXwwKSl7dT1jWyhjW2s+PjJdfDApKzQwPj4yXXwwO2IwW3Um
MTI3XShrKXwwO2NvbnRpbnVlfWVsc2V7Y1toPj4yXT10KzQ7Y29udGludWV9fXA9Y1tnPj4yXXww
O2Rve2lmKChwfDApPT0wKXt2PTF9ZWxzZXtvPWNbcCsxMj4+Ml18MDtpZigob3wwKT09KGNbcCsx
Nj4+Ml18MCkpe3c9YjBbY1soY1twPj4yXXwwKSszNj4+Ml0mMTI3XShwKXwwfWVsc2V7dz1jW28+
PjJdfDB9aWYoKHd8MCk9PS0xKXtjW2c+PjJdPTA7dj0xO2JyZWFrfWVsc2V7dj0oY1tnPj4yXXww
KT09MDticmVha319fXdoaWxlKDApO2Rve2lmKHIpe209MjYwM31lbHNle2c9Y1txKzEyPj4yXXww
O2lmKChnfDApPT0oY1txKzE2Pj4yXXwwKSl7eD1iMFtjWyhjW3E+PjJdfDApKzM2Pj4yXSYxMjdd
KHEpfDB9ZWxzZXt4PWNbZz4+Ml18MH1pZigoeHwwKT09LTEpe2NbYj4+Ml09MDttPTI2MDM7YnJl
YWt9aWYoISh2XihxfDApPT0wKSl7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKG18
MCk9PTI2MDMpe2lmKHYpe2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2NbZT4+Ml09Y1tlPj4y
XXwyO2k9YTtyZXR1cm59ZnVuY3Rpb24gZ1coYixkLGUsZixnLGgsaixrLGwpe2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0w
LEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAs
Uj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9
MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wO2w9aTtp
PWkrMzI4fDA7bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4yXTttPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209bHwwO249bCs4fDA7bz1s
KzE2fDA7cD1sKzI0fDA7cT1sKzMyfDA7cj1sKzQwfDA7cz1sKzQ4fDA7dD1sKzU2fDA7dT1sKzY0
fDA7dj1sKzcyfDA7dz1sKzgwfDA7eD1sKzg4fDA7eT1sKzk2fDA7ej1sKzExMnwwO0E9bCsxMjB8
MDtCPWwrMTI4fDA7Qz1sKzEzNnwwO0Q9bCsxNDR8MDtFPWwrMTUyfDA7Rj1sKzE2MHwwO0c9bCsx
Njh8MDtIPWwrMTc2fDA7ST1sKzE4NHwwO0o9bCsxOTJ8MDtLPWwrMjAwfDA7TD1sKzIwOHwwO009
bCsyMTZ8MDtOPWwrMjI0fDA7Tz1sKzIzMnwwO1A9bCsyNDB8MDtRPWwrMjQ4fDA7Uj1sKzI1Nnww
O1M9bCsyNjR8MDtUPWwrMjcyfDA7VT1sKzI4MHwwO1Y9bCsyODh8MDtXPWwrMjk2fDA7WD1sKzMw
NHwwO1k9bCszMTJ8MDtaPWwrMzIwfDA7Y1toPj4yXT0wO2VqKHosZyk7Xz16fDA7ej1jW18+PjJd
fDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW3k+PjJdPTE1Njg4O2NbeSs0Pj4yXT0xMjtjW3krOD4+
Ml09MDtkVygxNTY4OCx5LDk2KX15PShjWzM5MjNdfDApLTF8MDskPWNbeis4Pj4yXXwwO2Rve2lm
KChjW3orMTI+PjJdfDApLSQ+PjI+Pj4wPnk+Pj4wKXthYT1jWyQrKHk8PDIpPj4yXXwwO2lmKChh
YXwwKT09MCl7YnJlYWt9YWI9YWE7YWE9Y1tfPj4yXXwwO2R6KGFhKXwwO0wzMTkyOmRve3N3aXRj
aChrPDwyND4+MjR8MCl7Y2FzZSAxMDA6Y2FzZSAxMDE6e2FhPWorMTJ8MDtjW3Y+PjJdPWNbZj4+
Ml07YWM9aGMoZSx2LGgsYWIsMil8MDthZD1jW2g+PjJdfDA7ZG97aWYoKGFkJjR8MCk9PTApe2lm
KChhYy0xfDApPj4+MD49MzEpe2JyZWFrfWNbYWE+PjJdPWFjO2JyZWFrIEwzMTkyfX13aGlsZSgw
KTtjW2g+PjJdPWFkfDQ7YnJlYWt9O2Nhc2UgMTEwOmNhc2UgMTE2OntjW0o+PjJdPWNbZj4+Ml07
Z1YoMCxlLEosaCxhYik7YnJlYWt9O2Nhc2UgODg6e2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+PjJd
fDApKzI0Pj4yXSYxMjddKGFjKXwwO2FjPWV8MDtjW1g+PjJdPWNbYWM+PjJdO2NbWT4+Ml09Y1tm
Pj4yXTthZT1hW2FhXXwwO2lmKChhZSYxKT09MCl7YWY9YWErNHwwO2FnPWFhKzR8MH1lbHNle2Fo
PWNbYWErOD4+Ml18MDthZj1haDthZz1haH1haD1hZSYyNTU7aWYoKGFoJjF8MCk9PTApe2FpPWFo
Pj4+MX1lbHNle2FpPWNbYWErND4+Ml18MH1nUihXLGQsWCxZLGcsaCxqLGFnLGFmKyhhaTw8Mil8
MCk7Y1thYz4+Ml09Y1tXPj4yXTticmVha307Y2FzZSA5ODpjYXNlIDY2OmNhc2UgMTA0OnthYz1j
W2Y+PjJdfDA7YWE9ZCs4fDA7YWg9YjBbY1soY1thYT4+Ml18MCkrND4+Ml0mMTI3XShhYSl8MDtj
W3c+PjJdPWFjO2FjPShmUyhlLHcsYWgsYWgrMjg4fDAsYWIsaCwwKXwwKS1haHwwO2lmKChhY3ww
KT49Mjg4KXticmVhayBMMzE5Mn1jW2orMTY+PjJdPSgoYWN8MCkvMTJ8MHwwKSUxMnwwO2JyZWFr
fTtjYXNlIDExMjp7Y1tLPj4yXT1jW2Y+PjJdO2dYKGQsais4fDAsZSxLLGgsYWIpO2JyZWFrfTtj
YXNlIDExNDp7YWM9ZXwwO2NbTT4+Ml09Y1thYz4+Ml07Y1tOPj4yXT1jW2Y+PjJdO2dSKEwsZCxN
LE4sZyxoLGosMjIxNiwyMjYwKTtjW2FjPj4yXT1jW0w+PjJdO2JyZWFrfTtjYXNlIDM3OntjW1o+
PjJdPWNbZj4+Ml07Z1koMCxlLFosaCxhYik7YnJlYWt9O2Nhc2UgNjg6e2FjPWV8MDtjW0U+PjJd
PWNbYWM+PjJdO2NbRj4+Ml09Y1tmPj4yXTtnUihELGQsRSxGLGcsaCxqLDIyNjQsMjI5Nik7Y1th
Yz4+Ml09Y1tEPj4yXTticmVha307Y2FzZSA4OTp7Y1ttPj4yXT1jW2Y+PjJdO2FjPWhjKGUsbSxo
LGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7YnJlYWsgTDMxOTJ9Y1tqKzIwPj4yXT1hYy0x
OTAwO2JyZWFrfTtjYXNlIDgyOnthYz1lfDA7Y1tQPj4yXT1jW2FjPj4yXTtjW1E+PjJdPWNbZj4+
Ml07Z1IoTyxkLFAsUSxnLGgsaiwyMTkyLDIyMTIpO2NbYWM+PjJdPWNbTz4+Ml07YnJlYWt9O2Nh
c2UgODM6e2NbcD4+Ml09Y1tmPj4yXTthYz1oYyhlLHAsaCxhYiwyKXwwO2FoPWNbaD4+Ml18MDtp
ZigoYWgmNHwwKT09MCYoYWN8MCk8NjEpe2Nbaj4+Ml09YWM7YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+
PjJdPWFofDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgMTA2OntjW3M+PjJdPWNbZj4+Ml07YWg9
aGMoZSxzLGgsYWIsMyl8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAmKGFofDApPDM2Nil7
Y1tqKzI4Pj4yXT1haDticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMzE5Mn1i
cmVha307Y2FzZSA5NzpjYXNlIDY1OnthYz1jW2Y+PjJdfDA7YWg9ZCs4fDA7YWE9YjBbY1tjW2Fo
Pj4yXT4+Ml0mMTI3XShhaCl8MDtjW3g+PjJdPWFjO2FjPShmUyhlLHgsYWEsYWErMTY4fDAsYWIs
aCwwKXwwKS1hYXwwO2lmKChhY3wwKT49MTY4KXticmVhayBMMzE5Mn1jW2orMjQ+PjJdPSgoYWN8
MCkvMTJ8MHwwKSU3fDA7YnJlYWt9O2Nhc2UgOTk6e2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+PjJd
fDApKzEyPj4yXSYxMjddKGFjKXwwO2FjPWV8MDtjW0I+PjJdPWNbYWM+PjJdO2NbQz4+Ml09Y1tm
Pj4yXTthaD1hW2FhXXwwO2lmKChhaCYxKT09MCl7YWo9YWErNHwwO2FrPWFhKzR8MH1lbHNle2Fl
PWNbYWErOD4+Ml18MDthaj1hZTthaz1hZX1hZT1haCYyNTU7aWYoKGFlJjF8MCk9PTApe2FsPWFl
Pj4+MX1lbHNle2FsPWNbYWErND4+Ml18MH1nUihBLGQsQixDLGcsaCxqLGFrLGFqKyhhbDw8Mil8
MCk7Y1thYz4+Ml09Y1tBPj4yXTticmVha307Y2FzZSA4NDp7YWM9ZXwwO2NbUz4+Ml09Y1thYz4+
Ml07Y1tUPj4yXT1jW2Y+PjJdO2dSKFIsZCxTLFQsZyxoLGosMjE2MCwyMTkyKTtjW2FjPj4yXT1j
W1I+PjJdO2JyZWFrfTtjYXNlIDcwOnthYz1lfDA7Y1tIPj4yXT1jW2FjPj4yXTtjW0k+PjJdPWNb
Zj4+Ml07Z1IoRyxkLEgsSSxnLGgsaiwyMTI4LDIxNjApO2NbYWM+PjJdPWNbRz4+Ml07YnJlYWt9
O2Nhc2UgNzI6e2NbdT4+Ml09Y1tmPj4yXTthYz1oYyhlLHUsaCxhYiwyKXwwO2FhPWNbaD4+Ml18
MDtpZigoYWEmNHwwKT09MCYoYWN8MCk8MjQpe2Nbais4Pj4yXT1hYzticmVhayBMMzE5Mn1lbHNl
e2NbaD4+Ml09YWF8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMjE6e2Nbbj4+Ml09Y1tmPj4y
XTthYT1oYyhlLG4saCxhYiw0KXwwO2lmKChjW2g+PjJdJjR8MCkhPTApe2JyZWFrIEwzMTkyfWlm
KChhYXwwKTw2OSl7YW09YWErMmUzfDB9ZWxzZXthbT0oYWEtNjl8MCk+Pj4wPDMxP2FhKzE5MDB8
MDphYX1jW2orMjA+PjJdPWFtLTE5MDA7YnJlYWt9O2Nhc2UgMTA5OntjW3I+PjJdPWNbZj4+Ml07
YWE9KGhjKGUscixoLGFiLDIpfDApLTF8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAmKGFh
fDApPDEyKXtjW2orMTY+PjJdPWFhO2JyZWFrIEwzMTkyfWVsc2V7Y1toPj4yXT1hY3w0O2JyZWFr
IEwzMTkyfWJyZWFrfTtjYXNlIDczOnthYz1qKzh8MDtjW3Q+PjJdPWNbZj4+Ml07YWE9aGMoZSx0
LGgsYWIsMil8MDthZT1jW2g+PjJdfDA7ZG97aWYoKGFlJjR8MCk9PTApe2lmKChhYS0xfDApPj4+
MD49MTIpe2JyZWFrfWNbYWM+PjJdPWFhO2JyZWFrIEwzMTkyfX13aGlsZSgwKTtjW2g+PjJdPWFl
fDQ7YnJlYWt9O2Nhc2UgNzc6e2NbcT4+Ml09Y1tmPj4yXTthYT1oYyhlLHEsaCxhYiwyKXwwO2Fj
PWNbaD4+Ml18MDtpZigoYWMmNHwwKT09MCYoYWF8MCk8NjApe2Nbais0Pj4yXT1hYTticmVhayBM
MzE5Mn1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMTk6e2Nbbz4+
Ml09Y1tmPj4yXTthYz1oYyhlLG8saCxhYiwxKXwwO2FhPWNbaD4+Ml18MDtpZigoYWEmNHwwKT09
MCYoYWN8MCk8Nyl7Y1tqKzI0Pj4yXT1hYzticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWF8NDti
cmVhayBMMzE5Mn1icmVha307Y2FzZSAxMjA6e2FhPWNbKGNbZD4+Ml18MCkrMjA+PjJdfDA7Y1tV
Pj4yXT1jW2U+PjJdO2NbVj4+Ml09Y1tmPj4yXTtiWFthYSYxMjddKGIsZCxVLFYsZyxoLGopO2k9
bDtyZXR1cm59O2RlZmF1bHQ6e2NbaD4+Ml09Y1toPj4yXXw0fX19d2hpbGUoMCk7Y1tiPj4yXT1j
W2U+PjJdO2k9bDtyZXR1cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAsODE3Niwx
MzQpfWZ1bmN0aW9uIGdYKGEsYixlLGYsZyxoKXthPWF8MDtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MDtqPWk7aT1pKzh8MDtrPWY7Zj1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2s+PjJdO2s9anwwO2w9YSs4fDA7YT1iMFtjWyhjW2w+
PjJdfDApKzg+PjJdJjEyN10obCl8MDtsPWRbYV18MDtpZigobCYxfDApPT0wKXttPWw+Pj4xfWVs
c2V7bT1jW2ErND4+Ml18MH1sPWRbYSsxMnwwXXwwO2lmKChsJjF8MCk9PTApe249bD4+PjF9ZWxz
ZXtuPWNbYSsxNj4+Ml18MH1pZigobXwwKT09KC1ufDApKXtjW2c+PjJdPWNbZz4+Ml18NDtpPWo7
cmV0dXJufWNbaz4+Ml09Y1tmPj4yXTtmPWZTKGUsayxhLGErMjR8MCxoLGcsMCl8MDtnPWYtYXww
O2Rve2lmKChmfDApPT0oYXwwKSl7aWYoKGNbYj4+Ml18MCkhPTEyKXticmVha31jW2I+PjJdPTA7
aT1qO3JldHVybn19d2hpbGUoMCk7aWYoKGd8MCkhPTEyKXtpPWo7cmV0dXJufWc9Y1tiPj4yXXww
O2lmKChnfDApPj0xMil7aT1qO3JldHVybn1jW2I+PjJdPWcrMTI7aT1qO3JldHVybn0KLWZ1bmN0
aW9uIGdZKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxo
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2E9aTtnPWQ7ZD1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2c+PjJdO2c9YnwwO2I9Y1tnPj4yXXwwO2Rve2lm
KChifDApPT0wKXtoPTF9ZWxzZXtqPWNbYisxMj4+Ml18MDtpZigoanwwKT09KGNbYisxNj4+Ml18
MCkpe2s9YjBbY1soY1tiPj4yXXwwKSszNj4+Ml0mMTI3XShiKXwwfWVsc2V7az1jW2o+PjJdfDB9
aWYoKGt8MCk9PS0xKXtjW2c+PjJdPTA7aD0xO2JyZWFrfWVsc2V7aD0oY1tnPj4yXXwwKT09MDti
cmVha319fXdoaWxlKDApO2s9ZHwwO2Q9Y1trPj4yXXwwO2Rve2lmKChkfDApPT0wKXtsPTI3MTZ9
ZWxzZXtiPWNbZCsxMj4+Ml18MDtpZigoYnwwKT09KGNbZCsxNj4+Ml18MCkpe209YjBbY1soY1tk
Pj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwfWVsc2V7bT1jW2I+PjJdfDB9aWYoKG18MCk9PS0xKXtj
W2s+PjJdPTA7bD0yNzE2O2JyZWFrfWVsc2V7Yj0oZHwwKT09MDtpZihoXmIpe249ZDtvPWI7YnJl
YWt9ZWxzZXtsPTI3MTg7YnJlYWt9fX19d2hpbGUoMCk7aWYoKGx8MCk9PTI3MTYpe2lmKGgpe2w9
MjcxOH1lbHNle249MDtvPTF9fWlmKChsfDApPT0yNzE4KXtjW2U+PjJdPWNbZT4+Ml18NjtpPWE7
cmV0dXJufWg9Y1tnPj4yXXwwO2Q9Y1toKzEyPj4yXXwwO2lmKChkfDApPT0oY1toKzE2Pj4yXXww
KSl7cD1iMFtjWyhjW2g+PjJdfDApKzM2Pj4yXSYxMjddKGgpfDB9ZWxzZXtwPWNbZD4+Ml18MH1p
ZigoYjFbY1soY1tmPj4yXXwwKSs1Mj4+Ml0mNjNdKGYscCwwKXwwKTw8MjQ+PjI0IT0zNyl7Y1tl
Pj4yXT1jW2U+PjJdfDQ7aT1hO3JldHVybn1wPWNbZz4+Ml18MDtmPXArMTJ8MDtkPWNbZj4+Ml18
MDtpZigoZHwwKT09KGNbcCsxNj4+Ml18MCkpe2g9Y1soY1twPj4yXXwwKSs0MD4+Ml18MDtiMFto
JjEyN10ocCl8MH1lbHNle2NbZj4+Ml09ZCs0fWQ9Y1tnPj4yXXwwO2Rve2lmKChkfDApPT0wKXtx
PTF9ZWxzZXtmPWNbZCsxMj4+Ml18MDtpZigoZnwwKT09KGNbZCsxNj4+Ml18MCkpe3I9YjBbY1so
Y1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwfWVsc2V7cj1jW2Y+PjJdfDB9aWYoKHJ8MCk9PS0x
KXtjW2c+PjJdPTA7cT0xO2JyZWFrfWVsc2V7cT0oY1tnPj4yXXwwKT09MDticmVha319fXdoaWxl
KDApO2Rve2lmKG8pe2w9Mjc0MH1lbHNle2c9Y1tuKzEyPj4yXXwwO2lmKChnfDApPT0oY1tuKzE2
Pj4yXXwwKSl7cz1iMFtjWyhjW24+PjJdfDApKzM2Pj4yXSYxMjddKG4pfDB9ZWxzZXtzPWNbZz4+
Ml18MH1pZigoc3wwKT09LTEpe2Nbaz4+Ml09MDtsPTI3NDA7YnJlYWt9aWYoIShxXihufDApPT0w
KSl7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKGx8MCk9PTI3NDApe2lmKHEpe2Jy
ZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2NbZT4+Ml09Y1tlPj4yXXwyO2k9YTtyZXR1cm59ZnVu
Y3Rpb24gZ1ooYSl7YT1hfDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnXyhhKXthPWF8MDtyZXR1cm4g
MTI3fWZ1bmN0aW9uIGckKGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGcwKGEpe2E9YXwwO3Jl
dHVybiAxMjd9ZnVuY3Rpb24gZzEoYSl7YT1hfDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnMihhKXth
PWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBnMyhhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5j
dGlvbiBnNChhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBnNShhKXthPWF8MDty
ZXR1cm4gMH1mdW5jdGlvbiBnNihiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109
QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7
YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGc3KGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9
NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBd
PUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gZzgoYixjKXtiPWJ8
MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtD
PUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlv
biBnOShiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2Fb
YysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7
cmV0dXJufWZ1bmN0aW9uIGhhKGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1D
JjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODth
W2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gaGIoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02
NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09
QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoYyhhLGIsZCxlLGYp
e2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wO2c9aTtoPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tiPj4yXT1jW2g+PjJdO2g9YXwwO2E9Y1toPj4yXXwwO2Rve2lmKChhfDApPT0wKXtqPTF9ZWxz
ZXtrPWNbYSsxMj4+Ml18MDtpZigoa3wwKT09KGNbYSsxNj4+Ml18MCkpe2w9YjBbY1soY1thPj4y
XXwwKSszNj4+Ml0mMTI3XShhKXwwfWVsc2V7bD1jW2s+PjJdfDB9aWYoKGx8MCk9PS0xKXtjW2g+
PjJdPTA7aj0xO2JyZWFrfWVsc2V7aj0oY1toPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2w9
YnwwO2I9Y1tsPj4yXXwwO2Rve2lmKChifDApPT0wKXttPTI5fWVsc2V7YT1jW2IrMTI+PjJdfDA7
aWYoKGF8MCk9PShjW2IrMTY+PjJdfDApKXtuPWIwW2NbKGNbYj4+Ml18MCkrMzY+PjJdJjEyN10o
Yil8MH1lbHNle249Y1thPj4yXXwwfWlmKChufDApPT0tMSl7Y1tsPj4yXT0wO209Mjk7YnJlYWt9
ZWxzZXtpZihqXihifDApPT0wKXtvPWI7YnJlYWt9ZWxzZXttPTMxO2JyZWFrfX19fXdoaWxlKDAp
O2lmKChtfDApPT0yOSl7aWYoail7bT0zMX1lbHNle289MH19aWYoKG18MCk9PTMxKXtjW2Q+PjJd
PWNbZD4+Ml18NjtwPTA7aT1nO3JldHVybiBwfDB9aj1jW2g+PjJdfDA7Yj1jW2orMTI+PjJdfDA7
aWYoKGJ8MCk9PShjW2orMTY+PjJdfDApKXtxPWIwW2NbKGNbaj4+Ml18MCkrMzY+PjJdJjEyN10o
ail8MH1lbHNle3E9Y1tiPj4yXXwwfWI9ZTtpZighKGIxW2NbKGNbYj4+Ml18MCkrMTI+PjJdJjYz
XShlLDIwNDgscSl8MCkpe2NbZD4+Ml09Y1tkPj4yXXw0O3A9MDtpPWc7cmV0dXJuIHB8MH1qPWU7
bj0oYjFbY1soY1tqPj4yXXwwKSs1Mj4+Ml0mNjNdKGUscSwwKXwwKTw8MjQ+PjI0O3E9Y1toPj4y
XXwwO2E9cSsxMnwwO2s9Y1thPj4yXXwwO2lmKChrfDApPT0oY1txKzE2Pj4yXXwwKSl7cj1jWyhj
W3E+PjJdfDApKzQwPj4yXXwwO2IwW3ImMTI3XShxKXwwO3M9bjt0PWY7dT1vfWVsc2V7Y1thPj4y
XT1rKzQ7cz1uO3Q9Zjt1PW99d2hpbGUoMSl7dj1zLTQ4fDA7bz10LTF8MDtmPWNbaD4+Ml18MDtk
b3tpZigoZnwwKT09MCl7dz0wfWVsc2V7bj1jW2YrMTI+PjJdfDA7aWYoKG58MCk9PShjW2YrMTY+
PjJdfDApKXt4PWIwW2NbKGNbZj4+Ml18MCkrMzY+PjJdJjEyN10oZil8MH1lbHNle3g9Y1tuPj4y
XXwwfWlmKCh4fDApPT0tMSl7Y1toPj4yXT0wO3c9MDticmVha31lbHNle3c9Y1toPj4yXXwwO2Jy
ZWFrfX19d2hpbGUoMCk7Zj0od3wwKT09MDtpZigodXwwKT09MCl7eT13O3o9MH1lbHNle249Y1t1
KzEyPj4yXXwwO2lmKChufDApPT0oY1t1KzE2Pj4yXXwwKSl7QT1iMFtjWyhjW3U+PjJdfDApKzM2
Pj4yXSYxMjddKHUpfDB9ZWxzZXtBPWNbbj4+Ml18MH1pZigoQXwwKT09LTEpe2NbbD4+Ml09MDtC
PTB9ZWxzZXtCPXV9eT1jW2g+PjJdfDA7ej1CfUM9KHp8MCk9PTA7aWYoISgoZl5DKSYob3wwKT4w
KSl7YnJlYWt9Zj1jW3krMTI+PjJdfDA7aWYoKGZ8MCk9PShjW3krMTY+PjJdfDApKXtEPWIwW2Nb
KGNbeT4+Ml18MCkrMzY+PjJdJjEyN10oeSl8MH1lbHNle0Q9Y1tmPj4yXXwwfWlmKCEoYjFbY1so
Y1tiPj4yXXwwKSsxMj4+Ml0mNjNdKGUsMjA0OCxEKXwwKSl7cD12O209ODE7YnJlYWt9Zj0oKGIx
W2NbKGNbaj4+Ml18MCkrNTI+PjJdJjYzXShlLEQsMCl8MCk8PDI0Pj4yNCkrKHYqMTB8MCl8MDtu
PWNbaD4+Ml18MDtrPW4rMTJ8MDthPWNbaz4+Ml18MDtpZigoYXwwKT09KGNbbisxNj4+Ml18MCkp
e3E9Y1soY1tuPj4yXXwwKSs0MD4+Ml18MDtiMFtxJjEyN10obil8MDtzPWY7dD1vO3U9ejtjb250
aW51ZX1lbHNle2Nbaz4+Ml09YSs0O3M9Zjt0PW87dT16O2NvbnRpbnVlfX1pZigobXwwKT09ODEp
e2k9ZztyZXR1cm4gcHwwfWRve2lmKCh5fDApPT0wKXtFPTF9ZWxzZXt1PWNbeSsxMj4+Ml18MDtp
ZigodXwwKT09KGNbeSsxNj4+Ml18MCkpe0Y9YjBbY1soY1t5Pj4yXXwwKSszNj4+Ml0mMTI3XSh5
KXwwfWVsc2V7Rj1jW3U+PjJdfDB9aWYoKEZ8MCk9PS0xKXtjW2g+PjJdPTA7RT0xO2JyZWFrfWVs
c2V7RT0oY1toPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKEMpe209NzV9ZWxzZXto
PWNbeisxMj4+Ml18MDtpZigoaHwwKT09KGNbeisxNj4+Ml18MCkpe0c9YjBbY1soY1t6Pj4yXXww
KSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Rz1jW2g+PjJdfDB9aWYoKEd8MCk9PS0xKXtjW2w+PjJd
PTA7bT03NTticmVha31pZihFXih6fDApPT0wKXtwPXZ9ZWxzZXticmVha31pPWc7cmV0dXJuIHB8
MH19d2hpbGUoMCk7ZG97aWYoKG18MCk9PTc1KXtpZihFKXticmVha31lbHNle3A9dn1pPWc7cmV0
dXJuIHB8MH19d2hpbGUoMCk7Y1tkPj4yXT1jW2Q+PjJdfDI7cD12O2k9ZztyZXR1cm4gcHwwfWZ1
bmN0aW9uIGhkKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTA7Zz1pO2k9aSsxMTJ8MDtmPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW2Y+PjJdO2Y9Z3wwO2w9Zys4fDA7bT1sfDA7bj1mfDA7YVtuXT0zNztvPWYrMXwwO2Fbb109
ajtwPWYrMnwwO2FbcF09azthW2YrM3wwXT0wO2lmKGs8PDI0Pj4yNCE9MCl7YVtvXT1rO2FbcF09
an1qPWJrKG18MCwxMDAsbnwwLGh8MCxjW2QrOD4+Ml18MCl8MDtkPWwranwwO2w9Y1tlPj4yXXww
O2lmKChqfDApPT0wKXtxPWw7cj1ifDA7Y1tyPj4yXT1xO2k9ZztyZXR1cm59ZWxzZXtzPWw7dD1t
fXdoaWxlKDEpe209YVt0XXwwO2lmKChzfDApPT0wKXt1PTB9ZWxzZXtsPXMrMjR8MDtqPWNbbD4+
Ml18MDtpZigoanwwKT09KGNbcysyOD4+Ml18MCkpe3Y9Yl9bY1soY1tzPj4yXXwwKSs1Mj4+Ml0m
MzFdKHMsbSYyNTUpfDB9ZWxzZXtjW2w+PjJdPWorMTthW2pdPW07dj1tJjI1NX11PSh2fDApPT0t
MT8wOnN9bT10KzF8MDtpZigobXwwKT09KGR8MCkpe3E9dTticmVha31lbHNle3M9dTt0PW19fXI9
YnwwO2Nbcj4+Ml09cTtpPWc7cmV0dXJufWZ1bmN0aW9uIGhlKGEsYixkLGUsZixnLGgsail7YT1h
fDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zj1pO2k9aSs0MDh8MDtlPWQ7ZD1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tkPj4yXT1jW2U+PjJdO2U9ZnwwO2s9Zis0MDB8MDtsPWV8MDtjW2s+PjJdPWUr
NDAwO2hDKGIrOHwwLGwsayxnLGgsaik7aj1jW2s+PjJdfDA7az1jW2Q+PjJdfDA7aWYoKGx8MCk9
PShqfDApKXttPWs7bj1hfDA7Y1tuPj4yXT1tO2k9ZjtyZXR1cm59ZWxzZXtvPWs7cD1sfXdoaWxl
KDEpe2w9Y1twPj4yXXwwO2lmKChvfDApPT0wKXtxPTB9ZWxzZXtrPW8rMjR8MDtkPWNbaz4+Ml18
MDtpZigoZHwwKT09KGNbbysyOD4+Ml18MCkpe3I9Yl9bY1soY1tvPj4yXXwwKSs1Mj4+Ml0mMzFd
KG8sbCl8MH1lbHNle2Nbaz4+Ml09ZCs0O2NbZD4+Ml09bDtyPWx9cT0ocnwwKT09LTE/MDpvfWw9
cCs0fDA7aWYoKGx8MCk9PShqfDApKXttPXE7YnJlYWt9ZWxzZXtvPXE7cD1sfX1uPWF8MDtjW24+
PjJdPW07aT1mO3JldHVybn1mdW5jdGlvbiBoZihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVy
bn1mdW5jdGlvbiBoZyhhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoaChhLGIpe2E9
YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaGkoYSxiKXthPWF8MDtiPWJ8
MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhqKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXww
LDAsMTIpO3JldHVybn1mdW5jdGlvbiBoayhhLGIpe2E9YXwwO2I9YnwwO2RfKGEsMSw0NSk7cmV0
dXJufWZ1bmN0aW9uIGhsKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGht
KGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhuKGEsYil7YT1hfDA7Yj1ifDA7ayQo
YXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBobyhhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEy
KTtyZXR1cm59ZnVuY3Rpb24gaHAoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJu
fWZ1bmN0aW9uIGhxKGEsYil7YT1hfDA7Yj1ifDA7ZF8oYSwxLDQ1KTtyZXR1cm59ZnVuY3Rpb24g
aHIoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaHMoYSl7YT1hfDA7ZGUo
YXwwKTtyZXR1cm59ZnVuY3Rpb24gaHQoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0
dXJufWZ1bmN0aW9uIGh1KGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5j
dGlvbiBodihhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaHco
YSxiKXthPWF8MDtiPWJ8MDtleShhLDEsNDUpO3JldHVybn1mdW5jdGlvbiBoeChhKXthPWF8MDtk
ZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBoeShiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAs
Zz0wO2Q9YjtlPWIrOHwwO2Y9Y1tlPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJj
KDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYo
KGZ8MCk9PShjWzI5NThdfDApKXtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59YTcoY1tlPj4yXXww
KTtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59ZnVuY3Rpb24gaHooYil7Yj1ifDA7dmFyIGQ9MCxl
PTAsZj0wO2Q9Yis4fDA7ZT1jW2Q+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMo
MTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigo
ZXwwKT09KGNbMjk1OF18MCkpe2Y9YnwwO2RlKGYpO3JldHVybn1hNyhjW2Q+PjJdfDApO2Y9Ynww
O2RlKGYpO3JldHVybn1mdW5jdGlvbiBoQShiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wO2Q9
YjtlPWIrOHwwO2Y9Y1tlPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0
KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGZ8MCk9
PShjWzI5NThdfDApKXtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59YTcoY1tlPj4yXXwwKTtnPWJ8
MDtkZShnKTtrUyhkKTtyZXR1cm59ZnVuY3Rpb24gaEIoYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0w
O2Q9Yis4fDA7ZT1jW2Q+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoZXwwKT09
KGNbMjk1OF18MCkpe2Y9YnwwO2RlKGYpO3JldHVybn1hNyhjW2Q+PjJdfDApO2Y9YnwwO2RlKGYp
O3JldHVybn1mdW5jdGlvbiBoQyhiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aj1pO2k9aSsx
MjB8MDtrPWp8MDtsPWorMTEyfDA7bT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7bj1qKzh8MDtvPWt8
MDthW29dPTM3O3A9aysxfDA7YVtwXT1nO3E9aysyfDA7YVtxXT1oO2FbayszfDBdPTA7aWYoaDw8
MjQ+PjI0IT0wKXthW3BdPWg7YVtxXT1nfWc9YnwwO2JrKG58MCwxMDAsb3wwLGZ8MCxjW2c+PjJd
fDApfDA7Y1tsPj4yXT0wO2NbbCs0Pj4yXT0wO2NbbT4+Ml09bjtuPShjW2U+PjJdfDApLWQ+PjI7
Zj1iQihjW2c+PjJdfDApfDA7Zz1rZShkLG0sbixsKXwwO2lmKChmfDApIT0wKXtiQihmfDApfDB9
aWYoKGd8MCk9PS0xKXtoVig5MDQpfWVsc2V7Y1tlPj4yXT1kKyhnPDwyKTtpPWo7cmV0dXJufX1m
dW5jdGlvbiBoRChhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBoRShhKXthPWF8
MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBoRihhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlv
biBoRyhhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24gaEgoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02
NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09
QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoSShiLGMpe2I9Ynww
O2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9
Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9u
IGhKKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhLKGEsYil7YT1hfDA7Yj1ifDA7
ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoTChhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCww
LDEyKTtyZXR1cm59ZnVuY3Rpb24gaE0oYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0
dXJufWZ1bmN0aW9uIGhOKGEsYil7YT1hfDA7Yj1ifDA7ZXkoYSwxLDQ1KTtyZXR1cm59ZnVuY3Rp
b24gaE8oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaFAoYSl7YT1hfDA7
ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaFEoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtl
PWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0w
LEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAs
Uz0wO2Q9aTtpPWkrMjgwfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ts
Pj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZHwwO209
ZCsxNnwwO249ZCsxMjB8MDtvPWQrMTI4fDA7cD1kKzEzNnwwO3E9ZCsxNDR8MDtyPWQrMTUyfDA7
cz1kKzE2MHwwO3Q9ZCsxNzZ8MDt1PW58MDtjW3U+PjJdPW07dj1uKzR8MDtjW3Y+PjJdPTE2Njt3
PW0rMTAwfDA7ZWoocCxoKTttPXB8MDt4PWNbbT4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nb
bD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNb
MzkyNV18MCktMXwwO3k9Y1t4Kzg+PjJdfDA7ZG97aWYoKGNbeCsxMj4+Ml18MCkteT4+Mj4+PjA+
bD4+PjApe3o9Y1t5KyhsPDwyKT4+Ml18MDtpZigoenwwKT09MCl7YnJlYWt9QT16O2FbcV09MDtC
PWZ8MDtjW3I+PjJdPWNbQj4+Ml07ZG97aWYoaFIoZSxyLGcscCxjW2grND4+Ml18MCxqLHEsQSxu
LG8sdyl8MCl7Qz1zfDA7RD1jWyhjW3o+PjJdfDApKzMyPj4yXXwwO2NhW0QmMTVdKEEsMjExMiwy
MTIyLEMpfDA7RD10fDA7RT1jW28+PjJdfDA7Rj1jW3U+PjJdfDA7Rz1FLUZ8MDtkb3tpZigoR3ww
KT45OCl7SD1rSihHKzJ8MCl8MDtpZigoSHwwKSE9MCl7ST1IO0o9SDticmVha31rWCgpO0k9MDtK
PTB9ZWxzZXtJPUQ7Sj0wfX13aGlsZSgwKTtpZigoYVtxXSYxKT09MCl7Sz1JfWVsc2V7YVtJXT00
NTtLPUkrMXwwfWlmKEY+Pj4wPEU+Pj4wKXtHPXMrMTB8MDtIPXM7TD1LO009Rjt3aGlsZSgxKXtO
PUM7d2hpbGUoMSl7aWYoKE58MCk9PShHfDApKXtPPUc7YnJlYWt9aWYoKGFbTl18MCk9PShhW01d
fDApKXtPPU47YnJlYWt9ZWxzZXtOPU4rMXwwfX1hW0xdPWFbMjExMisoTy1IKXwwXXwwO049TSsx
fDA7UD1MKzF8MDtpZihOPj4+MDwoY1tvPj4yXXwwKT4+PjApe0w9UDtNPU59ZWxzZXtRPVA7YnJl
YWt9fX1lbHNle1E9S31hW1FdPTA7TT1iRChEfDAsMTQwOCwoTD1pLGk9aSs4fDAsY1tMPj4yXT1r
LEwpfDApfDA7aT1MO2lmKChNfDApPT0xKXtpZigoSnwwKT09MCl7YnJlYWt9a0soSik7YnJlYWt9
TT1iTyg4KXwwO2RFKE0sMTM2OCk7YmwoTXwwLDgxOTIsMjIpfX13aGlsZSgwKTtBPWV8MDt6PWNb
QT4+Ml18MDtkb3tpZigoenwwKT09MCl7Uj0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3or
MTY+PjJdfDApKXtSPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8
MCkhPS0xKXtSPXo7YnJlYWt9Y1tBPj4yXT0wO1I9MH19d2hpbGUoMCk7QT0oUnwwKT09MDt6PWNb
Qj4+Ml18MDtkb3tpZigoenwwKT09MCl7Uz0yNDR9ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9KGNb
eisxNj4+Ml18MCkpe2lmKEEpe2JyZWFrfWVsc2V7Uz0yNDY7YnJlYWt9fWlmKChiMFtjWyhjW3o+
PjJdfDApKzM2Pj4yXSYxMjddKHopfDApPT0tMSl7Y1tCPj4yXT0wO1M9MjQ0O2JyZWFrfWVsc2V7
aWYoQV4oenwwKT09MCl7YnJlYWt9ZWxzZXtTPTI0NjticmVha319fX13aGlsZSgwKTtpZigoU3ww
KT09MjQ0KXtpZihBKXtTPTI0Nn19aWYoKFN8MCk9PTI0Nil7Y1tqPj4yXT1jW2o+PjJdfDJ9Y1ti
Pj4yXT1SO3o9Y1ttPj4yXXwwO2R6KHopfDA7ej1jW3U+PjJdfDA7Y1t1Pj4yXT0wO2lmKCh6fDAp
PT0wKXtpPWQ7cmV0dXJufWJZW2Nbdj4+Ml0mNTExXSh6KTtpPWQ7cmV0dXJufX13aGlsZSgwKTtk
PWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBoUihlLGYsZyxoLGosayxs
LG0sbixvLHApe2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXww
O249bnwwO289b3wwO3A9cHwwO3ZhciBxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAs
JD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9
MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2PTAs
YXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0wLGFFPTAsYUY9MCxhRz0wLGFI
PTAsYUk9MCxhSj0wLGFLPTAsYUw9MCxhTT0wLGFOPTAsYU89MCxhUD0wLGFRPTAsYVI9MCxhUz0w
LGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxhWT0wLGFaPTAsYV89MCxhJD0wLGEwPTAsYTE9MCxh
Mj0wLGEzPTAsYTQ9MCxhNT0wLGE2PTAsYTc9MCxhOD0wLGE5PTAsYmE9MCxiYj0wLGJjPTAsYmQ9
MCxiZT0wLGJmPTAsYmc9MCxiaD0wLGJpPTAsYmo9MCxiaz0wLGJsPTAsYm09MCxibj0wLGJvPTAs
YnA9MCxicT0wLGJyPTAsYnM9MCxidD0wLGJ1PTAsYnY9MCxidz0wLGJ4PTAsYnk9MCxiej0wLGJB
PTAsYkI9MCxiQz0wLGJEPTAsYkU9MDtxPWk7aT1pKzQ0MHwwO3I9ZjtmPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2Y+PjJdPWNbcj4+Ml07cj1xfDA7cz1xKzQwMHwwO3Q9cSs0MDh8MDt1PXErNDE2
fDA7dj1xKzQyNHwwO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eT1pO2k9aSsxMnwwO2k9
aSs3Pj4zPDwzO3o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzEyfDA7aT1pKzc+PjM8
PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RD1yfDA7
ayQod3wwLDAsMTIpO0U9eDtGPXk7Rz16O0g9QTtrJChFfDAsMCwxMik7ayQoRnwwLDAsMTIpO2sk
KEd8MCwwLDEyKTtrJChIfDAsMCwxMik7aFgoZyxoLHMsdCx1LHYseCx5LHosQik7aD1ufDA7Y1tv
Pj4yXT1jW2g+PjJdO2c9ZXwwO2U9ZnwwO2Y9bSs4fDA7bT16KzF8MDtJPXorNHwwO0o9eis4fDA7
Sz15KzF8MDtMPXkrNHwwO009eSs4fDA7Tj0oaiY1MTJ8MCkhPTA7aj14KzF8MDtPPXgrNHwwO1A9
eCs4fDA7UT1BKzF8MDtSPUErNHwwO1M9QSs4fDA7VD1zKzN8MDtVPW4rNHwwO249dis0fDA7Vj1w
O3A9MTY2O1c9RDtYPUQ7RD1yKzQwMHwwO3I9MDtZPTA7TDI4Njp3aGlsZSgxKXtaPWNbZz4+Ml18
MDtkb3tpZigoWnwwKT09MCl7Xz0wfWVsc2V7aWYoKGNbWisxMj4+Ml18MCkhPShjW1orMTY+PjJd
fDApKXtfPVo7YnJlYWt9aWYoKGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCk9PS0x
KXtjW2c+PjJdPTA7Xz0wO2JyZWFrfWVsc2V7Xz1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTta
PShffDApPT0wOyQ9Y1tlPj4yXXwwO2Rve2lmKCgkfDApPT0wKXthYT0yNzF9ZWxzZXtpZigoY1sk
KzEyPj4yXXwwKSE9KGNbJCsxNj4+Ml18MCkpe2lmKFope2FiPSQ7YnJlYWt9ZWxzZXthYz1wO2Fk
PVc7YWU9WDthZj1yO2FhPTUyMzticmVhayBMMjg2fX1pZigoYjBbY1soY1skPj4yXXwwKSszNj4+
Ml0mMTI3XSgkKXwwKT09LTEpe2NbZT4+Ml09MDthYT0yNzE7YnJlYWt9ZWxzZXtpZihaKXthYj0k
O2JyZWFrfWVsc2V7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01MjM7YnJlYWsgTDI4Nn19fX13aGls
ZSgwKTtpZigoYWF8MCk9PTI3MSl7YWE9MDtpZihaKXthYz1wO2FkPVc7YWU9WDthZj1yO2FhPTUy
MzticmVha31lbHNle2FiPTB9fUwzMDg6ZG97c3dpdGNoKGFbcytZfDBdfDApe2Nhc2UgMTp7aWYo
KFl8MCk9PTMpe2FjPXA7YWQ9VzthZT1YO2FmPXI7YWE9NTIzO2JyZWFrIEwyODZ9JD1jW2c+PjJd
fDA7YWc9Y1skKzEyPj4yXXwwO2lmKChhZ3wwKT09KGNbJCsxNj4+Ml18MCkpe2FoPShiMFtjWyhj
WyQ+PjJdfDApKzM2Pj4yXSYxMjddKCQpfDApJjI1NX1lbHNle2FoPWFbYWddfDB9aWYoYWg8PDI0
Pj4yNDw9LTEpe2FhPTI5NjticmVhayBMMjg2fWlmKChiWyhjW2Y+PjJdfDApKyhhaDw8MjQ+PjI0
PDwxKT4+MV0mODE5Mik9PTApe2FhPTI5NjticmVhayBMMjg2fWFnPWNbZz4+Ml18MDskPWFnKzEy
fDA7YWk9Y1skPj4yXXwwO2lmKChhaXwwKT09KGNbYWcrMTY+PjJdfDApKXthaj0oYjBbY1soY1th
Zz4+Ml18MCkrNDA+PjJdJjEyN10oYWcpfDApJjI1NX1lbHNle2NbJD4+Ml09YWkrMTthaj1hW2Fp
XXwwfWRVKEEsYWopO2FhPTI5NzticmVha307Y2FzZSAzOnthaT1hW0ZdfDA7JD1haSYyNTU7YWc9
KCQmMXwwKT09MD8kPj4+MTpjW0w+PjJdfDA7JD1hW0ddfDA7YWs9JCYyNTU7YWw9KGFrJjF8MCk9
PTA/YWs+Pj4xOmNbST4+Ml18MDtpZigoYWd8MCk9PSgtYWx8MCkpe2FtPXI7YW49RDthbz1YO2Fw
PVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9YWs9KGFnfDApPT0wO2FnPWNbZz4+Ml18MDthcz1jW2Fn
KzEyPj4yXXwwO2F0PWNbYWcrMTY+PjJdfDA7YXU9KGFzfDApPT0oYXR8MCk7aWYoIShha3woYWx8
MCk9PTApKXtpZihhdSl7YWw9KGIwW2NbKGNbYWc+PjJdfDApKzM2Pj4yXSYxMjddKGFnKXwwKSYy
NTU7YXY9Y1tnPj4yXXwwO2F3PWFsO2F4PWFbRl18MDtheT1hdjthej1jW2F2KzEyPj4yXXwwO2FB
PWNbYXYrMTY+PjJdfDB9ZWxzZXthdz1hW2FzXXwwO2F4PWFpO2F5PWFnO2F6PWFzO2FBPWF0fWF0
PWF5KzEyfDA7YXY9KGF6fDApPT0oYUF8MCk7aWYoYXc8PDI0Pj4yND09KGFbKGF4JjEpPT0wP0s6
Y1tNPj4yXXwwXXwwKSl7aWYoYXYpe2FsPWNbKGNbYXk+PjJdfDApKzQwPj4yXXwwO2IwW2FsJjEy
N10oYXkpfDB9ZWxzZXtjW2F0Pj4yXT1heisxfWF0PWRbRl18MDthbT0oKGF0JjF8MCk9PTA/YXQ+
Pj4xOmNbTD4+Ml18MCk+Pj4wPjE/eTpyO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBM
MzA4fWlmKGF2KXthQj0oYjBbY1soY1theT4+Ml18MCkrMzY+PjJdJjEyN10oYXkpfDApJjI1NX1l
bHNle2FCPWFbYXpdfDB9aWYoYUI8PDI0Pj4yNCE9KGFbKGFbR10mMSk9PTA/bTpjW0o+PjJdfDBd
fDApKXthYT0zNjM7YnJlYWsgTDI4Nn1hdj1jW2c+PjJdfDA7YXQ9YXYrMTJ8MDthbD1jW2F0Pj4y
XXwwO2lmKChhbHwwKT09KGNbYXYrMTY+PjJdfDApKXthQz1jWyhjW2F2Pj4yXXwwKSs0MD4+Ml18
MDtiMFthQyYxMjddKGF2KXwwfWVsc2V7Y1thdD4+Ml09YWwrMX1hW2xdPTE7YWw9ZFtHXXwwO2Ft
PSgoYWwmMXwwKT09MD9hbD4+PjE6Y1tJPj4yXXwwKT4+PjA+MT96OnI7YW49RDthbz1YO2FwPVc7
YXE9cDthcj1WO2JyZWFrIEwzMDh9aWYoYWspe2lmKGF1KXthaz0oYjBbY1soY1thZz4+Ml18MCkr
MzY+PjJdJjEyN10oYWcpfDApJjI1NTthRD1hazthRT1hW0ddfDB9ZWxzZXthRD1hW2FzXXwwO2FF
PSR9aWYoYUQ8PDI0Pj4yNCE9KGFbKGFFJjEpPT0wP206Y1tKPj4yXXwwXXwwKSl7YW09cjthbj1E
O2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH0kPWNbZz4+Ml18MDthaz0kKzEyfDA7YWw9
Y1thaz4+Ml18MDtpZigoYWx8MCk9PShjWyQrMTY+PjJdfDApKXthdD1jWyhjWyQ+PjJdfDApKzQw
Pj4yXXwwO2IwW2F0JjEyN10oJCl8MH1lbHNle2NbYWs+PjJdPWFsKzF9YVtsXT0xO2FsPWRbR118
MDthbT0oKGFsJjF8MCk9PTA/YWw+Pj4xOmNbST4+Ml18MCk+Pj4wPjE/ejpyO2FuPUQ7YW89WDth
cD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWlmKGF1KXthdT0oYjBbY1soY1thZz4+Ml18MCkrMzY+
PjJdJjEyN10oYWcpfDApJjI1NTthRj1hdTthRz1hW0ZdfDB9ZWxzZXthRj1hW2FzXXwwO2FHPWFp
fWlmKGFGPDwyND4+MjQhPShhWyhhRyYxKT09MD9LOmNbTT4+Ml18MF18MCkpe2FbbF09MTthbT1y
O2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWFpPWNbZz4+Ml18MDthcz1haSsx
MnwwO2F1PWNbYXM+PjJdfDA7aWYoKGF1fDApPT0oY1thaSsxNj4+Ml18MCkpe2FnPWNbKGNbYWk+
PjJdfDApKzQwPj4yXXwwO2IwW2FnJjEyN10oYWkpfDB9ZWxzZXtjW2FzPj4yXT1hdSsxfWF1PWRb
Rl18MDthbT0oKGF1JjF8MCk9PTA/YXU+Pj4xOmNbTD4+Ml18MCk+Pj4wPjE/eTpyO2FuPUQ7YW89
WDthcD1XO2FxPXA7YXI9VjticmVha307Y2FzZSAwOnthYT0yOTc7YnJlYWt9O2Nhc2UgMjp7aWYo
ISgocnwwKSE9MHxZPj4+MDwyKSl7aWYoKFl8MCk9PTIpe2FIPShhW1RdfDApIT0wfWVsc2V7YUg9
MH1pZighKE58YUgpKXthbT0wO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fX1h
dT1hW0VdfDA7YXM9KGF1JjEpPT0wP2o6Y1tQPj4yXXwwO0wzODI6ZG97aWYoKFl8MCk9PTApe2FJ
PWFzfWVsc2V7aWYoKGRbcysoWS0xKXwwXXwwKT49Mil7YUk9YXM7YnJlYWt9YWk9YXUmMjU1O2Fn
PWFzKygoYWkmMXwwKT09MD9haT4+PjE6Y1tPPj4yXXwwKXwwO2FpPWFzO3doaWxlKDEpe2lmKChh
aXwwKT09KGFnfDApKXthSj1hZzticmVha31hbD1hW2FpXXwwO2lmKGFsPDwyND4+MjQ8PS0xKXth
Sj1haTticmVha31pZigoYlsoY1tmPj4yXXwwKSsoYWw8PDI0Pj4yNDw8MSk+PjFdJjgxOTIpPT0w
KXthSj1haTticmVha31lbHNle2FpPWFpKzF8MH19YWk9YUotYXN8MDthZz1hW0hdfDA7YWw9YWcm
MjU1O2FrPShhbCYxfDApPT0wP2FsPj4+MTpjW1I+PjJdfDA7aWYoYWk+Pj4wPmFrPj4+MCl7YUk9
YXM7YnJlYWt9YWw9KGFnJjEpPT0wP1E6Y1tTPj4yXXwwO2FnPWFsK2FrfDA7aWYoKGFKfDApPT0o
YXN8MCkpe2FJPWFzO2JyZWFrfSQ9YXM7YXQ9YWwrKGFrLWFpKXwwO3doaWxlKDEpe2lmKChhW2F0
XXwwKSE9KGFbJF18MCkpe2FJPWFzO2JyZWFrIEwzODJ9YWk9YXQrMXwwO2lmKChhaXwwKT09KGFn
fDApKXthST1hSjticmVha31lbHNleyQ9JCsxfDA7YXQ9YWl9fX19d2hpbGUoMCk7YXQ9YXUmMjU1
O0wzOTY6ZG97aWYoKGFJfDApPT0oYXMrKChhdCYxfDApPT0wP2F0Pj4+MTpjW08+PjJdfDApfDAp
KXthSz1hSX1lbHNleyQ9YWI7YWc9YUk7d2hpbGUoMSl7YWk9Y1tnPj4yXXwwO2Rve2lmKChhaXww
KT09MCl7YUw9MH1lbHNle2lmKChjW2FpKzEyPj4yXXwwKSE9KGNbYWkrMTY+PjJdfDApKXthTD1h
aTticmVha31pZigoYjBbY1soY1thaT4+Ml18MCkrMzY+PjJdJjEyN10oYWkpfDApPT0tMSl7Y1tn
Pj4yXT0wO2FMPTA7YnJlYWt9ZWxzZXthTD1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTthaT0o
YUx8MCk9PTA7ZG97aWYoKCR8MCk9PTApe2FhPTM5Mn1lbHNle2lmKChjWyQrMTI+PjJdfDApIT0o
Y1skKzE2Pj4yXXwwKSl7aWYoYWkpe2FNPSQ7YnJlYWt9ZWxzZXthSz1hZzticmVhayBMMzk2fX1p
ZigoYjBbY1soY1skPj4yXXwwKSszNj4+Ml0mMTI3XSgkKXwwKT09LTEpe2NbZT4+Ml09MDthYT0z
OTI7YnJlYWt9ZWxzZXtpZihhaSl7YU09JDticmVha31lbHNle2FLPWFnO2JyZWFrIEwzOTZ9fX19
d2hpbGUoMCk7aWYoKGFhfDApPT0zOTIpe2FhPTA7aWYoYWkpe2FLPWFnO2JyZWFrIEwzOTZ9ZWxz
ZXthTT0wfX1haz1jW2c+PjJdfDA7YWw9Y1thaysxMj4+Ml18MDtpZigoYWx8MCk9PShjW2FrKzE2
Pj4yXXwwKSl7YU49KGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXwwKSYyNTV9ZWxz
ZXthTj1hW2FsXXwwfWlmKGFOPDwyND4+MjQhPShhW2FnXXwwKSl7YUs9YWc7YnJlYWsgTDM5Nn1h
bD1jW2c+PjJdfDA7YWs9YWwrMTJ8MDthdj1jW2FrPj4yXXwwO2lmKChhdnwwKT09KGNbYWwrMTY+
PjJdfDApKXthQz1jWyhjW2FsPj4yXXwwKSs0MD4+Ml18MDtiMFthQyYxMjddKGFsKXwwfWVsc2V7
Y1thaz4+Ml09YXYrMX1hdj1hZysxfDA7YWs9YVtFXXwwO2FsPWFrJjI1NTtpZigoYXZ8MCk9PSgo
KGFrJjEpPT0wP2o6Y1tQPj4yXXwwKSsoKGFsJjF8MCk9PTA/YWw+Pj4xOmNbTz4+Ml18MCl8MCkp
e2FLPWF2O2JyZWFrfWVsc2V7JD1hTTthZz1hdn19fX13aGlsZSgwKTtpZighTil7YW09cjthbj1E
O2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1hdD1hW0VdfDA7YXM9YXQmMjU1O2lmKChh
S3wwKT09KCgoYXQmMSk9PTA/ajpjW1A+PjJdfDApKygoYXMmMXwwKT09MD9hcz4+PjE6Y1tPPj4y
XXwwKXwwKSl7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVZ9ZWxzZXthYT00MDU7YnJlYWsg
TDI4Nn1icmVha307Y2FzZSA0Onthcz0wO2F0PUQ7YXU9WDthZz1XOyQ9cDthdj1WO0w0MzE6d2hp
bGUoMSl7YWw9Y1tnPj4yXXwwO2Rve2lmKChhbHwwKT09MCl7YU89MH1lbHNle2lmKChjW2FsKzEy
Pj4yXXwwKSE9KGNbYWwrMTY+PjJdfDApKXthTz1hbDticmVha31pZigoYjBbY1soY1thbD4+Ml18
MCkrMzY+PjJdJjEyN10oYWwpfDApPT0tMSl7Y1tnPj4yXT0wO2FPPTA7YnJlYWt9ZWxzZXthTz1j
W2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTthbD0oYU98MCk9PTA7YWs9Y1tlPj4yXXwwO2Rve2lm
KChha3wwKT09MCl7YWE9NDE4fWVsc2V7aWYoKGNbYWsrMTI+PjJdfDApIT0oY1thaysxNj4+Ml18
MCkpe2lmKGFsKXticmVha31lbHNle2JyZWFrIEw0MzF9fWlmKChiMFtjWyhjW2FrPj4yXXwwKSsz
Nj4+Ml0mMTI3XShhayl8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NDE4O2JyZWFrfWVsc2V7aWYoYWwp
e2JyZWFrfWVsc2V7YnJlYWsgTDQzMX19fX13aGlsZSgwKTtpZigoYWF8MCk9PTQxOCl7YWE9MDtp
ZihhbCl7YnJlYWt9fWFrPWNbZz4+Ml18MDthQz1jW2FrKzEyPj4yXXwwO2lmKChhQ3wwKT09KGNb
YWsrMTY+PjJdfDApKXthUD0oYjBbY1soY1thaz4+Ml18MCkrMzY+PjJdJjEyN10oYWspfDApJjI1
NX1lbHNle2FQPWFbYUNdfDB9ZG97aWYoYVA8PDI0Pj4yND4tMSl7aWYoKGJbKGNbZj4+Ml18MCkr
KGFQPDwyND4+MjQ8PDEpPj4xXSYyMDQ4KT09MCl7YWE9NDM3O2JyZWFrfWFDPWNbbz4+Ml18MDtp
ZigoYUN8MCk9PShhdnwwKSl7YWs9KGNbVT4+Ml18MCkhPTE2NjthUT1jW2g+PjJdfDA7YVI9YXYt
YVF8MDthUz1hUj4+PjA8MjE0NzQ4MzY0Nz9hUjw8MTotMTthVD1rTChhaz9hUTowLGFTKXwwO2lm
KChhVHwwKT09MCl7a1goKX1kb3tpZihhayl7Y1toPj4yXT1hVDthVT1hVH1lbHNle2FRPWNbaD4+
Ml18MDtjW2g+PjJdPWFUO2lmKChhUXwwKT09MCl7YVU9YVQ7YnJlYWt9YllbY1tVPj4yXSY1MTFd
KGFRKTthVT1jW2g+PjJdfDB9fXdoaWxlKDApO2NbVT4+Ml09ODI7YVQ9YVUrYVJ8MDtjW28+PjJd
PWFUO2FWPShjW2g+PjJdfDApK2FTfDA7YVc9YVR9ZWxzZXthVj1hdjthVz1hQ31jW28+PjJdPWFX
KzE7YVthV109YVA7YVg9YXMrMXwwO2FZPWF0O2FaPWF1O2FfPWFnO2EkPSQ7YTA9YVZ9ZWxzZXth
YT00Mzd9fXdoaWxlKDApO2lmKChhYXwwKT09NDM3KXthYT0wO2FsPWRbd118MDtpZigoKChhbCYx
fDApPT0wP2FsPj4+MTpjW24+PjJdfDApfDApPT0wfChhc3wwKT09MCl7YnJlYWt9aWYoYVA8PDI0
Pj4yNCE9KGFbdV18MCkpe2JyZWFrfWlmKChhdXwwKT09KGF0fDApKXthbD1hdS1hZ3wwO2FUPWFs
Pj4+MDwyMTQ3NDgzNjQ3P2FsPDwxOi0xO2lmKCgkfDApPT0xNjYpe2ExPTB9ZWxzZXthMT1hZ31h
az1rTChhMSxhVCl8MDthaT1haztpZigoYWt8MCk9PTApe2tYKCl9YTI9YWkrKGFUPj4+Mjw8Mil8
MDthMz1haSsoYWw+PjI8PDIpfDA7YTQ9YWk7YTU9ODJ9ZWxzZXthMj1hdDthMz1hdTthND1hZzth
NT0kfWNbYTM+PjJdPWFzO2FYPTA7YVk9YTI7YVo9YTMrNHwwO2FfPWE0O2EkPWE1O2EwPWF2fWFp
PWNbZz4+Ml18MDthbD1haSsxMnwwO2FUPWNbYWw+PjJdfDA7aWYoKGFUfDApPT0oY1thaSsxNj4+
Ml18MCkpe2FrPWNbKGNbYWk+PjJdfDApKzQwPj4yXXwwO2IwW2FrJjEyN10oYWkpfDA7YXM9YVg7
YXQ9YVk7YXU9YVo7YWc9YV87JD1hJDthdj1hMDtjb250aW51ZX1lbHNle2NbYWw+PjJdPWFUKzE7
YXM9YVg7YXQ9YVk7YXU9YVo7YWc9YV87JD1hJDthdj1hMDtjb250aW51ZX19aWYoKGFnfDApPT0o
YXV8MCl8KGFzfDApPT0wKXthNj1hdDthNz1hdTthOD1hZzthOT0kfWVsc2V7aWYoKGF1fDApPT0o
YXR8MCkpe2FUPWF1LWFnfDA7YWw9YVQ+Pj4wPDIxNDc0ODM2NDc/YVQ8PDE6LTE7aWYoKCR8MCk9
PTE2Nil7YmE9MH1lbHNle2JhPWFnfWFpPWtMKGJhLGFsKXwwO2FrPWFpO2lmKChhaXwwKT09MCl7
a1goKX1iYj1haysoYWw+Pj4yPDwyKXwwO2JjPWFrKyhhVD4+Mjw8Mil8MDtiZD1haztiZT04Mn1l
bHNle2JiPWF0O2JjPWF1O2JkPWFnO2JlPSR9Y1tiYz4+Ml09YXM7YTY9YmI7YTc9YmMrNHwwO2E4
PWJkO2E5PWJlfWlmKChjW0I+PjJdfDApPjApe2FrPWNbZz4+Ml18MDtkb3tpZigoYWt8MCk9PTAp
e2JmPTB9ZWxzZXtpZigoY1thaysxMj4+Ml18MCkhPShjW2FrKzE2Pj4yXXwwKSl7YmY9YWs7YnJl
YWt9aWYoKGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXwwKT09LTEpe2NbZz4+Ml09
MDtiZj0wO2JyZWFrfWVsc2V7YmY9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7YWs9KGJmfDAp
PT0wO2FzPWNbZT4+Ml18MDtkb3tpZigoYXN8MCk9PTApe2FhPTQ3MH1lbHNle2lmKChjW2FzKzEy
Pj4yXXwwKSE9KGNbYXMrMTY+PjJdfDApKXtpZihhayl7Ymc9YXM7YnJlYWt9ZWxzZXthYT00Nzc7
YnJlYWsgTDI4Nn19aWYoKGIwW2NbKGNbYXM+PjJdfDApKzM2Pj4yXSYxMjddKGFzKXwwKT09LTEp
e2NbZT4+Ml09MDthYT00NzA7YnJlYWt9ZWxzZXtpZihhayl7Ymc9YXM7YnJlYWt9ZWxzZXthYT00
Nzc7YnJlYWsgTDI4Nn19fX13aGlsZSgwKTtpZigoYWF8MCk9PTQ3MCl7YWE9MDtpZihhayl7YWE9
NDc3O2JyZWFrIEwyODZ9ZWxzZXtiZz0wfX1hcz1jW2c+PjJdfDA7JD1jW2FzKzEyPj4yXXwwO2lm
KCgkfDApPT0oY1thcysxNj4+Ml18MCkpe2JoPShiMFtjWyhjW2FzPj4yXXwwKSszNj4+Ml0mMTI3
XShhcyl8MCkmMjU1fWVsc2V7Ymg9YVskXXwwfWlmKGJoPDwyND4+MjQhPShhW3RdfDApKXthYT00
Nzc7YnJlYWsgTDI4Nn0kPWNbZz4+Ml18MDthcz0kKzEyfDA7YWc9Y1thcz4+Ml18MDtpZigoYWd8
MCk9PShjWyQrMTY+PjJdfDApKXthdT1jWyhjWyQ+PjJdfDApKzQwPj4yXXwwO2IwW2F1JjEyN10o
JCl8MDtiaT1hdjtiaj1iZ31lbHNle2NbYXM+PjJdPWFnKzE7Ymk9YXY7Ymo9Ymd9d2hpbGUoMSl7
YWc9Y1tnPj4yXXwwO2Rve2lmKChhZ3wwKT09MCl7Yms9MH1lbHNle2lmKChjW2FnKzEyPj4yXXww
KSE9KGNbYWcrMTY+PjJdfDApKXtiaz1hZzticmVha31pZigoYjBbY1soY1thZz4+Ml18MCkrMzY+
PjJdJjEyN10oYWcpfDApPT0tMSl7Y1tnPj4yXT0wO2JrPTA7YnJlYWt9ZWxzZXtiaz1jW2c+PjJd
fDA7YnJlYWt9fX13aGlsZSgwKTthZz0oYmt8MCk9PTA7ZG97aWYoKGJqfDApPT0wKXthYT00OTN9
ZWxzZXtpZigoY1tiaisxMj4+Ml18MCkhPShjW2JqKzE2Pj4yXXwwKSl7aWYoYWcpe2JsPWJqO2Jy
ZWFrfWVsc2V7YWE9NTAxO2JyZWFrIEwyODZ9fWlmKChiMFtjWyhjW2JqPj4yXXwwKSszNj4+Ml0m
MTI3XShiail8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NDkzO2JyZWFrfWVsc2V7aWYoYWcpe2JsPWJq
O2JyZWFrfWVsc2V7YWE9NTAxO2JyZWFrIEwyODZ9fX19d2hpbGUoMCk7aWYoKGFhfDApPT00OTMp
e2FhPTA7aWYoYWcpe2FhPTUwMTticmVhayBMMjg2fWVsc2V7Ymw9MH19YXM9Y1tnPj4yXXwwOyQ9
Y1thcysxMj4+Ml18MDtpZigoJHwwKT09KGNbYXMrMTY+PjJdfDApKXtibT0oYjBbY1soY1thcz4+
Ml18MCkrMzY+PjJdJjEyN10oYXMpfDApJjI1NX1lbHNle2JtPWFbJF18MH1pZihibTw8MjQ+PjI0
PD0tMSl7YWE9NTAxO2JyZWFrIEwyODZ9aWYoKGJbKGNbZj4+Ml18MCkrKGJtPDwyND4+MjQ8PDEp
Pj4xXSYyMDQ4KT09MCl7YWE9NTAxO2JyZWFrIEwyODZ9JD1jW28+PjJdfDA7aWYoKCR8MCk9PShi
aXwwKSl7YXM9KGNbVT4+Ml18MCkhPTE2NjthdT1jW2g+PjJdfDA7YXQ9YmktYXV8MDthVD1hdD4+
PjA8MjE0NzQ4MzY0Nz9hdDw8MTotMTthbD1rTChhcz9hdTowLGFUKXwwO2lmKChhbHwwKT09MCl7
a1goKX1kb3tpZihhcyl7Y1toPj4yXT1hbDtibj1hbH1lbHNle2F1PWNbaD4+Ml18MDtjW2g+PjJd
PWFsO2lmKChhdXwwKT09MCl7Ym49YWw7YnJlYWt9YllbY1tVPj4yXSY1MTFdKGF1KTtibj1jW2g+
PjJdfDB9fXdoaWxlKDApO2NbVT4+Ml09ODI7YWw9Ym4rYXR8MDtjW28+PjJdPWFsO2JvPShjW2g+
PjJdfDApK2FUfDA7YnA9YWx9ZWxzZXtibz1iaTticD0kfWFsPWNbZz4+Ml18MDthcz1jW2FsKzEy
Pj4yXXwwO2lmKChhc3wwKT09KGNbYWwrMTY+PjJdfDApKXthZz0oYjBbY1soY1thbD4+Ml18MCkr
MzY+PjJdJjEyN10oYWwpfDApJjI1NTticT1hZzticj1jW28+PjJdfDB9ZWxzZXticT1hW2FzXXww
O2JyPWJwfWNbbz4+Ml09YnIrMTthW2JyXT1icTthcz0oY1tCPj4yXXwwKS0xfDA7Y1tCPj4yXT1h
czthZz1jW2c+PjJdfDA7YWw9YWcrMTJ8MDthdT1jW2FsPj4yXXwwO2lmKChhdXwwKT09KGNbYWcr
MTY+PjJdfDApKXthaT1jWyhjW2FnPj4yXXwwKSs0MD4+Ml18MDtiMFthaSYxMjddKGFnKXwwfWVs
c2V7Y1thbD4+Ml09YXUrMX1pZigoYXN8MCk+MCl7Ymk9Ym87Ymo9Ymx9ZWxzZXticz1ibzticmVh
a319fWVsc2V7YnM9YXZ9aWYoKGNbbz4+Ml18MCk9PShjW2g+PjJdfDApKXthYT01MjE7YnJlYWsg
TDI4Nn1lbHNle2FtPXI7YW49YTY7YW89YTc7YXA9YTg7YXE9YTk7YXI9YnN9YnJlYWt9O2RlZmF1
bHQ6e2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WfX19d2hpbGUoMCk7TDU4NTpkb3tpZigo
YWF8MCk9PTI5Nyl7YWE9MDtpZigoWXwwKT09Myl7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01MjM7
YnJlYWsgTDI4Nn1lbHNle2J0PWFifXdoaWxlKDEpe1o9Y1tnPj4yXXwwO2Rve2lmKChafDApPT0w
KXtidT0wfWVsc2V7aWYoKGNbWisxMj4+Ml18MCkhPShjW1orMTY+PjJdfDApKXtidT1aO2JyZWFr
fWlmKChiMFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFopfDApPT0tMSl7Y1tnPj4yXT0wO2J1
PTA7YnJlYWt9ZWxzZXtidT1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtaPShidXwwKT09MDtk
b3tpZigoYnR8MCk9PTApe2FhPTMxMH1lbHNle2lmKChjW2J0KzEyPj4yXXwwKSE9KGNbYnQrMTY+
PjJdfDApKXtpZihaKXtidj1idDticmVha31lbHNle2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDth
cj1WO2JyZWFrIEw1ODV9fWlmKChiMFtjWyhjW2J0Pj4yXXwwKSszNj4+Ml0mMTI3XShidCl8MCk9
PS0xKXtjW2U+PjJdPTA7YWE9MzEwO2JyZWFrfWVsc2V7aWYoWil7YnY9YnQ7YnJlYWt9ZWxzZXth
bT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1fX19fXdoaWxlKDApO2lmKChh
YXwwKT09MzEwKXthYT0wO2lmKFope2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFr
IEw1ODV9ZWxzZXtidj0wfX0kPWNbZz4+Ml18MDthVD1jWyQrMTI+PjJdfDA7aWYoKGFUfDApPT0o
Y1skKzE2Pj4yXXwwKSl7Ync9KGIwW2NbKGNbJD4+Ml18MCkrMzY+PjJdJjEyN10oJCl8MCkmMjU1
fWVsc2V7Ync9YVthVF18MH1pZihidzw8MjQ+PjI0PD0tMSl7YW09cjthbj1EO2FvPVg7YXA9Vzth
cT1wO2FyPVY7YnJlYWsgTDU4NX1pZigoYlsoY1tmPj4yXXwwKSsoYnc8PDI0Pj4yNDw8MSk+PjFd
JjgxOTIpPT0wKXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1fWFUPWNb
Zz4+Ml18MDskPWFUKzEyfDA7YXQ9Y1skPj4yXXwwO2lmKChhdHwwKT09KGNbYVQrMTY+PjJdfDAp
KXtieD0oYjBbY1soY1thVD4+Ml18MCkrNDA+PjJdJjEyN10oYVQpfDApJjI1NX1lbHNle2NbJD4+
Ml09YXQrMTtieD1hW2F0XXwwfWRVKEEsYngpO2J0PWJ2fX19d2hpbGUoMCk7YXY9WSsxfDA7aWYo
YXY+Pj4wPDQpe1Y9YXI7cD1hcTtXPWFwO1g9YW87RD1hbjtyPWFtO1k9YXZ9ZWxzZXthYz1hcTth
ZD1hcDthZT1hbzthZj1hbTthYT01MjM7YnJlYWt9fUw2MjI6ZG97aWYoKGFhfDApPT0yOTYpe2Nb
az4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT0zNjMpe2Nbaz4+
Ml09Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT00MDUpe2Nbaz4+Ml09
Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT00Nzcpe2Nbaz4+Ml09Y1tr
Pj4yXXw0O2J5PTA7Yno9YTg7YkE9YTl9ZWxzZSBpZigoYWF8MCk9PTUwMSl7Y1trPj4yXT1jW2s+
PjJdfDQ7Ynk9MDtiej1hODtiQT1hOX1lbHNlIGlmKChhYXwwKT09NTIxKXtjW2s+PjJdPWNbaz4+
Ml18NDtieT0wO2J6PWE4O2JBPWE5fWVsc2UgaWYoKGFhfDApPT01MjMpe0w2MzA6ZG97aWYoKGFm
fDApIT0wKXthbT1hZjthbz1hZisxfDA7YXA9YWYrOHwwO2FxPWFmKzR8MDtZPTE7TDYzMjp3aGls
ZSgxKXtyPWRbYW1dfDA7aWYoKHImMXwwKT09MCl7YkI9cj4+PjF9ZWxzZXtiQj1jW2FxPj4yXXww
fWlmKFk+Pj4wPj1iQj4+PjApe2JyZWFrIEw2MzB9cj1jW2c+PjJdfDA7ZG97aWYoKHJ8MCk9PTAp
e2JDPTB9ZWxzZXtpZigoY1tyKzEyPj4yXXwwKSE9KGNbcisxNj4+Ml18MCkpe2JDPXI7YnJlYWt9
aWYoKGIwW2NbKGNbcj4+Ml18MCkrMzY+PjJdJjEyN10ocil8MCk9PS0xKXtjW2c+PjJdPTA7YkM9
MDticmVha31lbHNle2JDPWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO3I9KGJDfDApPT0wO1o9
Y1tlPj4yXXwwO2Rve2lmKChafDApPT0wKXthYT01NDF9ZWxzZXtpZigoY1taKzEyPj4yXXwwKSE9
KGNbWisxNj4+Ml18MCkpe2lmKHIpe2JyZWFrfWVsc2V7YnJlYWsgTDYzMn19aWYoKGIwW2NbKGNb
Wj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NTQxO2JyZWFrfWVs
c2V7aWYocil7YnJlYWt9ZWxzZXticmVhayBMNjMyfX19fXdoaWxlKDApO2lmKChhYXwwKT09NTQx
KXthYT0wO2lmKHIpe2JyZWFrfX1aPWNbZz4+Ml18MDthbj1jW1orMTI+PjJdfDA7aWYoKGFufDAp
PT0oY1taKzE2Pj4yXXwwKSl7YkQ9KGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCkm
MjU1fWVsc2V7YkQ9YVthbl18MH1pZigoYVthbV0mMSk9PTApe2JFPWFvfWVsc2V7YkU9Y1thcD4+
Ml18MH1pZihiRDw8MjQ+PjI0IT0oYVtiRStZfDBdfDApKXticmVha31hbj1ZKzF8MDtaPWNbZz4+
Ml18MDtEPVorMTJ8MDtYPWNbRD4+Ml18MDtpZigoWHwwKT09KGNbWisxNj4+Ml18MCkpe2FyPWNb
KGNbWj4+Ml18MCkrNDA+PjJdfDA7YjBbYXImMTI3XShaKXwwO1k9YW47Y29udGludWV9ZWxzZXtj
W0Q+PjJdPVgrMTtZPWFuO2NvbnRpbnVlfX1jW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PWFkO2JB
PWFjO2JyZWFrIEw2MjJ9fXdoaWxlKDApO2lmKChhZHwwKT09KGFlfDApKXtieT0xO2J6PWFlO2JB
PWFjO2JyZWFrfWNbQz4+Ml09MDtmdCh2LGFkLGFlLEMpO2lmKChjW0M+PjJdfDApPT0wKXtieT0x
O2J6PWFkO2JBPWFjO2JyZWFrfWNbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9YWQ7YkE9YWN9fXdo
aWxlKDApO2RQKEEpO2RQKHopO2RQKHkpO2RQKHgpO2RQKHYpO2lmKChienwwKT09MCl7aT1xO3Jl
dHVybiBieXwwfWJZW2JBJjUxMV0oYnopO2k9cTtyZXR1cm4gYnl8MH1mdW5jdGlvbiBoUyhiLGQs
ZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAs
bj0wO2Y9YjtnPWQ7aD1hW2ZdfDA7aT1oJjI1NTtpZigoaSYxfDApPT0wKXtqPWk+Pj4xfWVsc2V7
aj1jW2IrND4+Ml18MH1pZigoaCYxKT09MCl7az0xMDtsPWh9ZWxzZXtoPWNbYj4+Ml18MDtrPSho
Ji0yKS0xfDA7bD1oJjI1NX1oPWUtZ3wwO2lmKChlfDApPT0oZHwwKSl7cmV0dXJuIGJ8MH1pZigo
ay1qfDApPj4+MDxoPj4+MCl7ZDEoYixrLGoraC1rfDAsaixqLDAsMCk7bT1hW2ZdfDB9ZWxzZXtt
PWx9aWYoKG0mMSk9PTApe249YisxfDB9ZWxzZXtuPWNbYis4Pj4yXXwwfW09ZSsoai1nKXwwO2c9
ZDtkPW4ranwwO3doaWxlKDEpe2FbZF09YVtnXXwwO2w9ZysxfDA7aWYoKGx8MCk9PShlfDApKXti
cmVha31lbHNle2c9bDtkPWQrMXwwfX1hW24rbXwwXT0wO209aitofDA7aWYoKGFbZl0mMSk9PTAp
e2FbZl09bTw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1tO3JldHVybiBifDB9cmV0
dXJuIDB9ZnVuY3Rpb24gaFQoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24g
aFUoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaFYoYSl7YT1hfDA7dmFyIGI9MDti
PWJPKDgpfDA7ZEUoYixhKTtibChifDAsODE5MiwyMil9ZnVuY3Rpb24gaFcoYixkLGUsZixnLGgs
aixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIg
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wLEI9MCxDPTAsRD0wLEU9MDtkPWk7aT1pKzE2MHwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+
Ml09Y1tsPj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrMTIwfDA7bz1kKzEyOHwwO3A9ZCsxMzZ8MDtx
PWQrMTQ0fDA7cj1kKzE1MnwwO3M9bnwwO2Nbcz4+Ml09bTt0PW4rNHwwO2NbdD4+Ml09MTY2O3U9
bSsxMDB8MDtlaihwLGgpO209cHwwO3Y9Y1ttPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1ts
Pj4yXT0xNTY5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0oY1sz
OTI1XXwwKS0xfDA7dz1jW3YrOD4+Ml18MDtkb3tpZigoY1t2KzEyPj4yXXwwKS13Pj4yPj4+MD5s
Pj4+MCl7eD1jW3crKGw8PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7YVtxXT0wO3o9
ZnwwO0E9Y1t6Pj4yXXwwO2Nbcj4+Ml09QTtpZihoUihlLHIsZyxwLGNbaCs0Pj4yXXwwLGoscSx5
LG4sbyx1KXwwKXtCPWs7aWYoKGFbQl0mMSk9PTApe2FbaysxfDBdPTA7YVtCXT0wfWVsc2V7YVtj
W2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1CPXg7aWYoKGFbcV0mMSkhPTApe2RVKGssYl9bY1so
Y1tCPj4yXXwwKSsyOD4+Ml0mMzFdKHksNDUpfDApfXg9Yl9bY1soY1tCPj4yXXwwKSsyOD4+Ml0m
MzFdKHksNDgpfDA7eT1jW28+PjJdfDA7Qj15LTF8MDtDPWNbcz4+Ml18MDt3aGlsZSgxKXtpZihD
Pj4+MD49Qj4+PjApe2JyZWFrfWlmKChhW0NdfDApPT14PDwyND4+MjQpe0M9QysxfDB9ZWxzZXti
cmVha319aFMoayxDLHkpfDB9eD1lfDA7Qj1jW3g+PjJdfDA7ZG97aWYoKEJ8MCk9PTApe0Q9MH1l
bHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7RD1CO2JyZWFrfWlmKChiMFtj
WyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7RD1CO2JyZWFrfWNbeD4+Ml09MDtE
PTB9fXdoaWxlKDApO3g9KER8MCk9PTA7ZG97aWYoKEF8MCk9PTApe0U9NjIxfWVsc2V7aWYoKGNb
QSsxMj4+Ml18MCkhPShjW0ErMTY+PjJdfDApKXtpZih4KXticmVha31lbHNle0U9NjIzO2JyZWFr
fX1pZigoYjBbY1soY1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKT09LTEpe2Nbej4+Ml09MDtF
PTYyMTticmVha31lbHNle2lmKHheKEF8MCk9PTApe2JyZWFrfWVsc2V7RT02MjM7YnJlYWt9fX19
d2hpbGUoMCk7aWYoKEV8MCk9PTYyMSl7aWYoeCl7RT02MjN9fWlmKChFfDApPT02MjMpe2Nbaj4+
Ml09Y1tqPj4yXXwyfWNbYj4+Ml09RDtBPWNbbT4+Ml18MDtkeihBKXwwO0E9Y1tzPj4yXXwwO2Nb
cz4+Ml09MDtpZigoQXwwKT09MCl7aT1kO3JldHVybn1iWVtjW3Q+PjJdJjUxMV0oQSk7aT1kO3Jl
dHVybn19d2hpbGUoMCk7ZD1iTyg0KXwwO2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24g
aFgoYixkLGUsZixnLGgsaixrLGwsbSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1o
fDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0w
LEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wO249aTtpPWkrNTZ8MDtvPW58MDtwPW4rMTZ8MDtxPW4r
MzJ8MDtyPW4rNDB8MDtzPXI7dD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3U9dDt2PWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7dz12O3g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt5PXg7ej1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7QT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzEyfDA7
aT1pKzc+PjM8PDM7RT1EO0Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztHPUY7SD1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO0k9SDtpZihiKXtiPWNbZD4+Ml18MDtpZigoY1s0MDQ0XXwwKSE9LTEpe2Nb
cD4+Ml09MTYxNzY7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTc2LHAsOTYpfXA9KGNb
NDA0NV18MCktMXwwO0o9Y1tiKzg+PjJdfDA7aWYoKGNbYisxMj4+Ml18MCktSj4+Mj4+PjA8PXA+
Pj4wKXtLPWJPKDQpfDA7TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEzNCl9Yj1jW0orKHA8PDIpPj4y
XXwwO2lmKChifDApPT0wKXtLPWJPKDQpfDA7TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEzNCl9Sz1i
O2JaW2NbKGNbYj4+Ml18MCkrNDQ+PjJdJjEyN10ocSxLKTtMPWU7Qz1jW3E+PjJdfDA7YVtMXT1D
JjI1NTtDPUM+Pjg7YVtMKzF8MF09QyYyNTU7Qz1DPj44O2FbTCsyfDBdPUMmMjU1O0M9Qz4+ODth
W0wrM3wwXT1DJjI1NTtMPWI7YlpbY1soY1tMPj4yXXwwKSszMj4+Ml0mMTI3XShyLEspO3E9bDtp
ZigoYVtxXSYxKT09MCl7YVtsKzF8MF09MDthW3FdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2Nb
bCs0Pj4yXT0wfWQkKGwsMCk7Y1txPj4yXT1jW3M+PjJdO2NbcSs0Pj4yXT1jW3MrND4+Ml07Y1tx
Kzg+PjJdPWNbcys4Pj4yXTtrJChzfDAsMCwxMik7ZFAocik7YlpbY1soY1tMPj4yXXwwKSsyOD4+
Ml0mMTI3XSh0LEspO3I9aztpZigoYVtyXSYxKT09MCl7YVtrKzF8MF09MDthW3JdPTB9ZWxzZXth
W2Nbays4Pj4yXXwwXT0wO2Nbays0Pj4yXT0wfWQkKGssMCk7Y1tyPj4yXT1jW3U+PjJdO2Nbcis0
Pj4yXT1jW3UrND4+Ml07Y1tyKzg+PjJdPWNbdSs4Pj4yXTtrJCh1fDAsMCwxMik7ZFAodCk7dD1i
O2FbZl09YjBbY1soY1t0Pj4yXXwwKSsxMj4+Ml0mMTI3XShLKXwwO2FbZ109YjBbY1soY1t0Pj4y
XXwwKSsxNj4+Ml0mMTI3XShLKXwwO2JaW2NbKGNbTD4+Ml18MCkrMjA+PjJdJjEyN10odixLKTt0
PWg7aWYoKGFbdF0mMSk9PTApe2FbaCsxfDBdPTA7YVt0XT0wfWVsc2V7YVtjW2grOD4+Ml18MF09
MDtjW2grND4+Ml09MH1kJChoLDApO2NbdD4+Ml09Y1t3Pj4yXTtjW3QrND4+Ml09Y1t3KzQ+PjJd
O2NbdCs4Pj4yXT1jW3crOD4+Ml07ayQod3wwLDAsMTIpO2RQKHYpO2JaW2NbKGNbTD4+Ml18MCkr
MjQ+PjJdJjEyN10oeCxLKTtMPWo7aWYoKGFbTF0mMSk9PTApe2FbaisxfDBdPTA7YVtMXT0wfWVs
c2V7YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbTD4+Ml09Y1t5Pj4yXTtj
W0wrND4+Ml09Y1t5KzQ+PjJdO2NbTCs4Pj4yXT1jW3krOD4+Ml07ayQoeXwwLDAsMTIpO2RQKHgp
O009YjBbY1soY1tiPj4yXXwwKSszNj4+Ml0mMTI3XShLKXwwO2NbbT4+Ml09TTtpPW47cmV0dXJu
fWVsc2V7Sz1jW2Q+PjJdfDA7aWYoKGNbNDA0Nl18MCkhPS0xKXtjW28+PjJdPTE2MTg0O2Nbbys0
Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNjE4NCxvLDk2KX1vPShjWzQwNDddfDApLTF8MDtkPWNb
Sys4Pj4yXXwwO2lmKChjW0srMTI+PjJdfDApLWQ+PjI+Pj4wPD1vPj4+MCl7Tj1iTyg0KXwwO089
TjtrcShPKTtibChOfDAsODE3NiwxMzQpfUs9Y1tkKyhvPDwyKT4+Ml18MDtpZigoS3wwKT09MCl7
Tj1iTyg0KXwwO089TjtrcShPKTtibChOfDAsODE3NiwxMzQpfU49SztiWltjWyhjW0s+PjJdfDAp
KzQ0Pj4yXSYxMjddKHosTik7Tz1lO0M9Y1t6Pj4yXXwwO2FbT109QyYyNTU7Qz1DPj44O2FbTysx
fDBdPUMmMjU1O0M9Qz4+ODthW08rMnwwXT1DJjI1NTtDPUM+Pjg7YVtPKzN8MF09QyYyNTU7Tz1L
O2JaW2NbKGNbTz4+Ml18MCkrMzI+PjJdJjEyN10oQSxOKTt6PWw7aWYoKGFbel0mMSk9PTApe2Fb
bCsxfDBdPTA7YVt6XT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChsLDAp
O2Nbej4+Ml09Y1tCPj4yXTtjW3orND4+Ml09Y1tCKzQ+PjJdO2Nbeis4Pj4yXT1jW0IrOD4+Ml07
ayQoQnwwLDAsMTIpO2RQKEEpO2JaW2NbKGNbTz4+Ml18MCkrMjg+PjJdJjEyN10oRCxOKTtBPWs7
aWYoKGFbQV0mMSk9PTApe2FbaysxfDBdPTA7YVtBXT0wfWVsc2V7YVtjW2srOD4+Ml18MF09MDtj
W2srND4+Ml09MH1kJChrLDApO2NbQT4+Ml09Y1tFPj4yXTtjW0ErND4+Ml09Y1tFKzQ+PjJdO2Nb
QSs4Pj4yXT1jW0UrOD4+Ml07ayQoRXwwLDAsMTIpO2RQKEQpO0Q9SzthW2ZdPWIwW2NbKGNbRD4+
Ml18MCkrMTI+PjJdJjEyN10oTil8MDthW2ddPWIwW2NbKGNbRD4+Ml18MCkrMTY+PjJdJjEyN10o
Til8MDtiWltjWyhjW08+PjJdfDApKzIwPj4yXSYxMjddKEYsTik7RD1oO2lmKChhW0RdJjEpPT0w
KXthW2grMXwwXT0wO2FbRF09MH1lbHNle2FbY1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9ZCQo
aCwwKTtjW0Q+PjJdPWNbRz4+Ml07Y1tEKzQ+PjJdPWNbRys0Pj4yXTtjW0QrOD4+Ml09Y1tHKzg+
PjJdO2skKEd8MCwwLDEyKTtkUChGKTtiWltjWyhjW08+PjJdfDApKzI0Pj4yXSYxMjddKEgsTik7
Tz1qO2lmKChhW09dJjEpPT0wKXthW2orMXwwXT0wO2FbT109MH1lbHNle2FbY1tqKzg+PjJdfDBd
PTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW08+PjJdPWNbST4+Ml07Y1tPKzQ+PjJdPWNbSSs0Pj4y
XTtjW08rOD4+Ml09Y1tJKzg+PjJdO2skKEl8MCwwLDEyKTtkUChIKTtNPWIwW2NbKGNbSz4+Ml18
MCkrMzY+PjJdJjEyN10oTil8MDtjW20+PjJdPU07aT1uO3JldHVybn19ZnVuY3Rpb24gaFkoYixk
LGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtr
PWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAs
eD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxM
PTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7ZD1pO2k9aSs2MDB8MDtsPWU7
ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1kfDA7bT1kKzE2fDA7bj1kKzQxNnwwO289ZCs0
MjR8MDtwPWQrNDMyfDA7cT1kKzQ0MHwwO3I9ZCs0NDh8MDtzPWQrNDU2fDA7dD1kKzQ5NnwwO3U9
bnwwO2NbdT4+Ml09bTt2PW4rNHwwO2Nbdj4+Ml09MTY2O3c9bSs0MDB8MDtlaihwLGgpO209cHww
O3g9Y1ttPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09
MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7eT1jW3grOD4+
Ml18MDtkb3tpZigoY1t4KzEyPj4yXXwwKS15Pj4yPj4+MD5sPj4+MCl7ej1jW3krKGw8PDIpPj4y
XXwwO2lmKCh6fDApPT0wKXticmVha31BPXo7YVtxXT0wO0I9ZnwwO2Nbcj4+Ml09Y1tCPj4yXTtk
b3tpZihoWihlLHIsZyxwLGNbaCs0Pj4yXXwwLGoscSxBLG4sbyx3KXwwKXtDPXN8MDtEPWNbKGNb
ej4+Ml18MCkrNDg+PjJdfDA7Y2FbRCYxNV0oQSwyMDk2LDIxMDYsQyl8MDtEPXR8MDtFPWNbbz4+
Ml18MDtGPWNbdT4+Ml18MDtHPUUtRnwwO2Rve2lmKChHfDApPjM5Mil7SD1rSigoRz4+MikrMnww
KXwwO2lmKChIfDApIT0wKXtJPUg7Sj1IO2JyZWFrfWtYKCk7ST0wO0o9MH1lbHNle0k9RDtKPTB9
fXdoaWxlKDApO2lmKChhW3FdJjEpPT0wKXtLPUl9ZWxzZXthW0ldPTQ1O0s9SSsxfDB9aWYoRj4+
PjA8RT4+PjApe0c9cys0MHwwO0g9cztMPUs7TT1GO3doaWxlKDEpe049Qzt3aGlsZSgxKXtpZigo
TnwwKT09KEd8MCkpe089RzticmVha31pZigoY1tOPj4yXXwwKT09KGNbTT4+Ml18MCkpe089Tjti
cmVha31lbHNle049Tis0fDB9fWFbTF09YVsyMDk2KyhPLUg+PjIpfDBdfDA7Tj1NKzR8MDtQPUwr
MXwwO2lmKE4+Pj4wPChjW28+PjJdfDApPj4+MCl7TD1QO009Tn1lbHNle1E9UDticmVha319fWVs
c2V7UT1LfWFbUV09MDtNPWJEKER8MCwxNDA4LChMPWksaT1pKzh8MCxjW0w+PjJdPWssTCl8MCl8
MDtpPUw7aWYoKE18MCk9PTEpe2lmKChKfDApPT0wKXticmVha31rSyhKKTticmVha31NPWJPKDgp
fDA7ZEUoTSwxMzY4KTtibChNfDAsODE5MiwyMil9fXdoaWxlKDApO0E9ZXwwO3o9Y1tBPj4yXXww
O2Rve2lmKCh6fDApPT0wKXtSPTB9ZWxzZXtNPWNbeisxMj4+Ml18MDtpZigoTXwwKT09KGNbeisx
Nj4+Ml18MCkpe1M9YjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Uz1jW00+
PjJdfDB9aWYoKFN8MCkhPS0xKXtSPXo7YnJlYWt9Y1tBPj4yXT0wO1I9MH19d2hpbGUoMCk7QT0o
UnwwKT09MDt6PWNbQj4+Ml18MDtkb3tpZigoenwwKT09MCl7VD03Mzl9ZWxzZXtNPWNbeisxMj4+
Ml18MDtpZigoTXwwKT09KGNbeisxNj4+Ml18MCkpe1U9YjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0m
MTI3XSh6KXwwfWVsc2V7VT1jW00+PjJdfDB9aWYoKFV8MCk9PS0xKXtjW0I+PjJdPTA7VD03Mzk7
YnJlYWt9ZWxzZXtpZihBXih6fDApPT0wKXticmVha31lbHNle1Q9NzQxO2JyZWFrfX19fXdoaWxl
KDApO2lmKChUfDApPT03Mzkpe2lmKEEpe1Q9NzQxfX1pZigoVHwwKT09NzQxKXtjW2o+PjJdPWNb
aj4+Ml18Mn1jW2I+PjJdPVI7ej1jW20+PjJdfDA7ZHooeil8MDt6PWNbdT4+Ml18MDtjW3U+PjJd
PTA7aWYoKHp8MCk9PTApe2k9ZDtyZXR1cm59YllbY1t2Pj4yXSY1MTFdKHopO2k9ZDtyZXR1cm59
fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGhaKGIs
ZSxmLGcsaCxqLGssbCxtLG4sbyl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7
az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1vfDA7dmFyIHA9MCxxPTAscj0wLHM9MCx0PTAsdT0w
LHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAs
Sj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxY
PTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9
MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAs
YXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0wLGFF
PTAsYUY9MCxhRz0wLGFIPTAsYUk9MCxhSj0wLGFLPTAsYUw9MCxhTT0wLGFOPTAsYU89MCxhUD0w
LGFRPTAsYVI9MCxhUz0wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxhWT0wLGFaPTAsYV89MCxh
JD0wLGEwPTAsYTE9MCxhMj0wLGEzPTAsYTQ9MCxhNT0wLGE2PTAsYTc9MCxhOD0wLGE5PTAsYmE9
MCxiYj0wLGJjPTAsYmQ9MCxiZT0wLGJmPTAsYmc9MCxiaD0wLGJpPTAsYmo9MCxiaz0wLGJsPTAs
Ym09MCxibj0wLGJvPTAsYnA9MCxicT0wLGJyPTAsYnM9MCxidD0wLGJ1PTAsYnY9MCxidz0wLGJ4
PTAsYnk9MCxiej0wLGJBPTAsYkI9MCxiQz0wLGJEPTA7cD1pO2k9aSs0NDh8MDtxPWU7ZT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW3E+PjJdO3E9cHwwO3I9cCs4fDA7cz1wKzQwOHww
O3Q9cCs0MTZ8MDt1PXArNDI0fDA7dj1wKzQzMnwwO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+PjM8
PDM7eT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztBPWk7
aT1pKzEyfDA7aT1pKzc+PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1txPj4yXT1vO289cnwwO2skKHd8MCwwLDEyKTtEPXg7RT15O0Y9ejtHPUE7
ayQoRHwwLDAsMTIpO2skKEV8MCwwLDEyKTtrJChGfDAsMCwxMik7ayQoR3wwLDAsMTIpO2gyKGYs
ZyxzLHQsdSx2LHgseSx6LEIpO2c9bXwwO2Nbbj4+Ml09Y1tnPj4yXTtmPWJ8MDtiPWV8MDtlPWw7
SD16KzR8MDtJPXorOHwwO0o9eSs0fDA7Sz15Kzh8MDtMPShoJjUxMnwwKSE9MDtoPXgrNHwwO009
eCs4fDA7Tj1BKzR8MDtPPUErOHwwO1A9cyszfDA7UT12KzR8MDtSPTE2NjtTPW87VD1vO289cis0
MDB8MDtyPTA7VT0wO0w4OTA6d2hpbGUoMSl7Vj1jW2Y+PjJdfDA7ZG97aWYoKFZ8MCk9PTApe1c9
MX1lbHNle1g9Y1tWKzEyPj4yXXwwO2lmKChYfDApPT0oY1tWKzE2Pj4yXXwwKSl7WT1iMFtjWyhj
W1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXtZPWNbWD4+Ml18MH1pZigoWXwwKT09LTEp
e2NbZj4+Ml09MDtXPTE7YnJlYWt9ZWxzZXtXPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUo
MCk7Vj1jW2I+PjJdfDA7ZG97aWYoKFZ8MCk9PTApe1o9NzY3fWVsc2V7WD1jW1YrMTI+PjJdfDA7
aWYoKFh8MCk9PShjW1YrMTY+PjJdfDApKXtfPWIwW2NbKGNbVj4+Ml18MCkrMzY+PjJdJjEyN10o
Vil8MH1lbHNle189Y1tYPj4yXXwwfWlmKChffDApPT0tMSl7Y1tiPj4yXT0wO1o9NzY3O2JyZWFr
fWVsc2V7aWYoV14oVnwwKT09MCl7JD1WO2JyZWFrfWVsc2V7YWE9UjthYj1TO2FjPVQ7YWQ9cjta
PTEwMDc7YnJlYWsgTDg5MH19fX13aGlsZSgwKTtpZigoWnwwKT09NzY3KXtaPTA7aWYoVyl7YWE9
UjthYj1TO2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWt9ZWxzZXskPTB9fUw5MTQ6ZG97c3dpdGNoKGFb
cytVfDBdfDApe2Nhc2UgMjp7aWYoISgocnwwKSE9MHxVPj4+MDwyKSl7aWYoKFV8MCk9PTIpe2Fl
PShhW1BdfDApIT0wfWVsc2V7YWU9MH1pZighKEx8YWUpKXthZj0wO2FnPW87YWg9VDthaT1TO2Fq
PVI7YnJlYWsgTDkxNH19Vj1hW0RdfDA7WD0oViYxKT09MD9oOmNbTT4+Ml18MDtMOTIyOmRve2lm
KChVfDApPT0wKXthaz1YO2FsPVY7YW09JH1lbHNle2lmKChkW3MrKFUtMSl8MF18MCk8Mil7YW49
WDthbz1WfWVsc2V7YWs9WDthbD1WO2FtPSQ7YnJlYWt9d2hpbGUoMSl7YXA9YW8mMjU1O2lmKChh
bnwwKT09KCgoYW8mMSk9PTA/aDpjW00+PjJdfDApKygoKGFwJjF8MCk9PTA/YXA+Pj4xOmNbaD4+
Ml18MCk8PDIpfDApKXthcT1hbzticmVha31pZighKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJdJjYz
XShsLDgxOTIsY1thbj4+Ml18MCl8MCkpe1o9ODY4O2JyZWFrfWFuPWFuKzR8MDthbz1hW0RdfDB9
aWYoKFp8MCk9PTg2OCl7Wj0wO2FxPWFbRF18MH1hcD0oYXEmMSk9PTA7YXI9YW4tKGFwP2g6Y1tN
Pj4yXXwwKT4+Mjthcz1hW0ddfDA7YXQ9YXMmMjU1O2F1PShhdCYxfDApPT0wO0w5MzI6ZG97aWYo
YXI+Pj4wPD0oYXU/YXQ+Pj4xOmNbTj4+Ml18MCk+Pj4wKXthdj0oYXMmMSk9PTA7YXc9KGF2P046
Y1tPPj4yXXwwKSsoKGF1P2F0Pj4+MTpjW04+PjJdfDApLWFyPDwyKXwwO2F4PShhdj9OOmNbTz4+
Ml18MCkrKChhdT9hdD4+PjE6Y1tOPj4yXXwwKTw8Mil8MDtpZigoYXd8MCk9PShheHwwKSl7YWs9
YW47YWw9YXE7YW09JDticmVhayBMOTIyfWVsc2V7YXk9YXc7YXo9YXA/aDpjW00+PjJdfDB9d2hp
bGUoMSl7aWYoKGNbYXk+PjJdfDApIT0oY1thej4+Ml18MCkpe2JyZWFrIEw5MzJ9YXc9YXkrNHww
O2lmKChhd3wwKT09KGF4fDApKXthaz1hbjthbD1hcTthbT0kO2JyZWFrIEw5MjJ9YXk9YXc7YXo9
YXorNHwwfX19d2hpbGUoMCk7YWs9YXA/aDpjW00+PjJdfDA7YWw9YXE7YW09JH19d2hpbGUoMCk7
TDkzOTp3aGlsZSgxKXtWPWFsJjI1NTtpZigoYWt8MCk9PSgoKGFsJjEpPT0wP2g6Y1tNPj4yXXww
KSsoKChWJjF8MCk9PTA/Vj4+PjE6Y1toPj4yXXwwKTw8Mil8MCkpe2JyZWFrfVY9Y1tmPj4yXXww
O2Rve2lmKChWfDApPT0wKXthQT0xfWVsc2V7WD1jW1YrMTI+PjJdfDA7aWYoKFh8MCk9PShjW1Yr
MTY+PjJdfDApKXthQj1iMFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXthQj1j
W1g+PjJdfDB9aWYoKGFCfDApPT0tMSl7Y1tmPj4yXT0wO2FBPTE7YnJlYWt9ZWxzZXthQT0oY1tm
Pj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKChhbXwwKT09MCl7Wj04ODl9ZWxzZXtW
PWNbYW0rMTI+PjJdfDA7aWYoKFZ8MCk9PShjW2FtKzE2Pj4yXXwwKSl7YUM9YjBbY1soY1thbT4+
Ml18MCkrMzY+PjJdJjEyN10oYW0pfDB9ZWxzZXthQz1jW1Y+PjJdfDB9aWYoKGFDfDApPT0tMSl7
Y1tiPj4yXT0wO1o9ODg5O2JyZWFrfWVsc2V7aWYoYUFeKGFtfDApPT0wKXthRD1hbTticmVha31l
bHNle2JyZWFrIEw5Mzl9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTg4OSl7Wj0wO2lmKGFBKXticmVh
a31lbHNle2FEPTB9fVY9Y1tmPj4yXXwwO2FwPWNbVisxMj4+Ml18MDtpZigoYXB8MCk9PShjW1Yr
MTY+PjJdfDApKXthRT1iMFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXthRT1j
W2FwPj4yXXwwfWlmKChhRXwwKSE9KGNbYWs+PjJdfDApKXticmVha31hcD1jW2Y+PjJdfDA7Vj1h
cCsxMnwwO1g9Y1tWPj4yXXwwO2lmKChYfDApPT0oY1thcCsxNj4+Ml18MCkpe2F0PWNbKGNbYXA+
PjJdfDApKzQwPj4yXXwwO2IwW2F0JjEyN10oYXApfDB9ZWxzZXtjW1Y+PjJdPVgrNH1haz1hays0
fDA7YWw9YVtEXXwwO2FtPWFEfWlmKCFMKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsg
TDkxNH1YPWFbRF18MDtWPVgmMjU1O2lmKChha3wwKT09KCgoWCYxKT09MD9oOmNbTT4+Ml18MCkr
KCgoViYxfDApPT0wP1Y+Pj4xOmNbaD4+Ml18MCk8PDIpfDApKXthZj1yO2FnPW87YWg9VDthaT1T
O2FqPVJ9ZWxzZXtaPTkwMTticmVhayBMODkwfWJyZWFrfTtjYXNlIDQ6e1Y9MDtYPW87YXA9VDth
dD1TO2F1PVI7TDk3NTp3aGlsZSgxKXthcj1jW2Y+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXthRj0x
fWVsc2V7YXM9Y1thcisxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YUc9YjBb
Y1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthRz1jW2FzPj4yXXwwfWlmKChh
R3wwKT09LTEpe2NbZj4+Ml09MDthRj0xO2JyZWFrfWVsc2V7YUY9KGNbZj4+Ml18MCk9PTA7YnJl
YWt9fX13aGlsZSgwKTthcj1jW2I+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXtaPTkxNX1lbHNle2Fz
PWNbYXIrMTI+PjJdfDA7aWYoKGFzfDApPT0oY1thcisxNj4+Ml18MCkpe2FIPWIwW2NbKGNbYXI+
PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YUg9Y1thcz4+Ml18MH1pZigoYUh8MCk9PS0x
KXtjW2I+PjJdPTA7Wj05MTU7YnJlYWt9ZWxzZXtpZihhRl4oYXJ8MCk9PTApe2JyZWFrfWVsc2V7
YnJlYWsgTDk3NX19fX13aGlsZSgwKTtpZigoWnwwKT09OTE1KXtaPTA7aWYoYUYpe2JyZWFrfX1h
cj1jW2Y+PjJdfDA7YXM9Y1thcisxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXwwKSl7
YUk9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthST1jW2FzPj4yXXww
fWlmKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJdJjYzXShsLDIwNDgsYUkpfDApe2FzPWNbbj4+Ml18
MDtpZigoYXN8MCk9PShjW3E+PjJdfDApKXtoMyhtLG4scSk7YUo9Y1tuPj4yXXwwfWVsc2V7YUo9
YXN9Y1tuPj4yXT1hSis0O2NbYUo+PjJdPWFJO2FLPVYrMXwwO2FMPVg7YU09YXA7YU49YXQ7YU89
YXV9ZWxzZXthcz1kW3ddfDA7aWYoKCgoYXMmMXwwKT09MD9hcz4+PjE6Y1tRPj4yXXwwKXwwKT09
MHwoVnwwKT09MCl7YnJlYWt9aWYoKGFJfDApIT0oY1t1Pj4yXXwwKSl7YnJlYWt9aWYoKGFwfDAp
PT0oWHwwKSl7YXM9KGF1fDApIT0xNjY7YXI9YXAtYXR8MDtheD1hcj4+PjA8MjE0NzQ4MzY0Nz9h
cjw8MTotMTtpZihhcyl7YVA9YXR9ZWxzZXthUD0wfWFzPWtMKGFQLGF4KXwwO2F3PWFzO2lmKChh
c3wwKT09MCl7a1goKX1hUT1hdysoYXg+Pj4yPDwyKXwwO2FSPWF3Kyhhcj4+Mjw8Mil8MDthUz1h
dzthVD04Mn1lbHNle2FRPVg7YVI9YXA7YVM9YXQ7YVQ9YXV9Y1thUj4+Ml09VjthSz0wO2FMPWFR
O2FNPWFSKzR8MDthTj1hUzthTz1hVH1hdz1jW2Y+PjJdfDA7YXI9YXcrMTJ8MDtheD1jW2FyPj4y
XXwwO2lmKChheHwwKT09KGNbYXcrMTY+PjJdfDApKXthcz1jWyhjW2F3Pj4yXXwwKSs0MD4+Ml18
MDtiMFthcyYxMjddKGF3KXwwO1Y9YUs7WD1hTDthcD1hTTthdD1hTjthdT1hTztjb250aW51ZX1l
bHNle2NbYXI+PjJdPWF4KzQ7Vj1hSztYPWFMO2FwPWFNO2F0PWFOO2F1PWFPO2NvbnRpbnVlfX1p
ZigoYXR8MCk9PShhcHwwKXwoVnwwKT09MCl7YVU9WDthVj1hcDthVz1hdDthWD1hdX1lbHNle2lm
KChhcHwwKT09KFh8MCkpe2F4PShhdXwwKSE9MTY2O2FyPWFwLWF0fDA7YXc9YXI+Pj4wPDIxNDc0
ODM2NDc/YXI8PDE6LTE7aWYoYXgpe2FZPWF0fWVsc2V7YVk9MH1heD1rTChhWSxhdyl8MDthcz1h
eDtpZigoYXh8MCk9PTApe2tYKCl9YVo9YXMrKGF3Pj4+Mjw8Mil8MDthXz1hcysoYXI+PjI8PDIp
fDA7YSQ9YXM7YTA9ODJ9ZWxzZXthWj1YO2FfPWFwO2EkPWF0O2EwPWF1fWNbYV8+PjJdPVY7YVU9
YVo7YVY9YV8rNHwwO2FXPWEkO2FYPWEwfWFzPWNbQj4+Ml18MDtpZigoYXN8MCk+MCl7YXI9Y1tm
Pj4yXXwwO2Rve2lmKChhcnwwKT09MCl7YTE9MX1lbHNle2F3PWNbYXIrMTI+PjJdfDA7aWYoKGF3
fDApPT0oY1thcisxNj4+Ml18MCkpe2EyPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFy
KXwwfWVsc2V7YTI9Y1thdz4+Ml18MH1pZigoYTJ8MCk9PS0xKXtjW2Y+PjJdPTA7YTE9MTticmVh
a31lbHNle2ExPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7YXI9Y1tiPj4yXXwwO2Rv
e2lmKChhcnwwKT09MCl7Wj05NjR9ZWxzZXtWPWNbYXIrMTI+PjJdfDA7aWYoKFZ8MCk9PShjW2Fy
KzE2Pj4yXXwwKSl7YTM9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXth
Mz1jW1Y+PjJdfDB9aWYoKGEzfDApPT0tMSl7Y1tiPj4yXT0wO1o9OTY0O2JyZWFrfWVsc2V7aWYo
YTFeKGFyfDApPT0wKXthND1hcjticmVha31lbHNle1o9OTcwO2JyZWFrIEw4OTB9fX19d2hpbGUo
MCk7aWYoKFp8MCk9PTk2NCl7Wj0wO2lmKGExKXtaPTk3MDticmVhayBMODkwfWVsc2V7YTQ9MH19
YXI9Y1tmPj4yXXwwO1Y9Y1thcisxMj4+Ml18MDtpZigoVnwwKT09KGNbYXIrMTY+PjJdfDApKXth
NT1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2E1PWNbVj4+Ml18MH1p
ZigoYTV8MCkhPShjW3Q+PjJdfDApKXtaPTk3MDticmVhayBMODkwfVY9Y1tmPj4yXXwwO2FyPVYr
MTJ8MDthdT1jW2FyPj4yXXwwO2lmKChhdXwwKT09KGNbVisxNj4+Ml18MCkpe2F0PWNbKGNbVj4+
Ml18MCkrNDA+PjJdfDA7YjBbYXQmMTI3XShWKXwwO2E2PWE0O2E3PWFzfWVsc2V7Y1thcj4+Ml09
YXUrNDthNj1hNDthNz1hc313aGlsZSgxKXthdT1jW2Y+PjJdfDA7ZG97aWYoKGF1fDApPT0wKXth
OD0xfWVsc2V7YXI9Y1thdSsxMj4+Ml18MDtpZigoYXJ8MCk9PShjW2F1KzE2Pj4yXXwwKSl7YTk9
YjBbY1soY1thdT4+Ml18MCkrMzY+PjJdJjEyN10oYXUpfDB9ZWxzZXthOT1jW2FyPj4yXXwwfWlm
KChhOXwwKT09LTEpe2NbZj4+Ml09MDthOD0xO2JyZWFrfWVsc2V7YTg9KGNbZj4+Ml18MCk9PTA7
YnJlYWt9fX13aGlsZSgwKTtkb3tpZigoYTZ8MCk9PTApe1o9OTg3fWVsc2V7YXU9Y1thNisxMj4+
Ml18MDtpZigoYXV8MCk9PShjW2E2KzE2Pj4yXXwwKSl7YmE9YjBbY1soY1thNj4+Ml18MCkrMzY+
PjJdJjEyN10oYTYpfDB9ZWxzZXtiYT1jW2F1Pj4yXXwwfWlmKChiYXwwKT09LTEpe2NbYj4+Ml09
MDtaPTk4NzticmVha31lbHNle2lmKGE4XihhNnwwKT09MCl7YmI9YTY7YnJlYWt9ZWxzZXtaPTk5
NDticmVhayBMODkwfX19fXdoaWxlKDApO2lmKChafDApPT05ODcpe1o9MDtpZihhOCl7Wj05OTQ7
YnJlYWsgTDg5MH1lbHNle2JiPTB9fWF1PWNbZj4+Ml18MDthcj1jW2F1KzEyPj4yXXwwO2lmKChh
cnwwKT09KGNbYXUrMTY+PjJdfDApKXtiYz1iMFtjWyhjW2F1Pj4yXXwwKSszNj4+Ml0mMTI3XShh
dSl8MH1lbHNle2JjPWNbYXI+PjJdfDB9aWYoIShiMVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2M10o
bCwyMDQ4LGJjKXwwKSl7Wj05OTQ7YnJlYWsgTDg5MH1pZigoY1tuPj4yXXwwKT09KGNbcT4+Ml18
MCkpe2gzKG0sbixxKX1hcj1jW2Y+PjJdfDA7YXU9Y1thcisxMj4+Ml18MDtpZigoYXV8MCk9PShj
W2FyKzE2Pj4yXXwwKSl7YmQ9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxz
ZXtiZD1jW2F1Pj4yXXwwfWF1PWNbbj4+Ml18MDtjW24+PjJdPWF1KzQ7Y1thdT4+Ml09YmQ7YXU9
YTctMXwwO2NbQj4+Ml09YXU7YXI9Y1tmPj4yXXwwO1Y9YXIrMTJ8MDthdD1jW1Y+PjJdfDA7aWYo
KGF0fDApPT0oY1thcisxNj4+Ml18MCkpe2FwPWNbKGNbYXI+PjJdfDApKzQwPj4yXXwwO2IwW2Fw
JjEyN10oYXIpfDB9ZWxzZXtjW1Y+PjJdPWF0KzR9aWYoKGF1fDApPjApe2E2PWJiO2E3PWF1fWVs
c2V7YnJlYWt9fX1pZigoY1tuPj4yXXwwKT09KGNbZz4+Ml18MCkpe1o9MTAwNTticmVhayBMODkw
fWVsc2V7YWY9cjthZz1hVTthaD1hVjthaT1hVzthaj1hWH1icmVha307Y2FzZSAxOntpZigoVXww
KT09Myl7YWE9UjthYj1TO2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWsgTDg5MH1hcz1jW2Y+PjJdfDA7
YXU9Y1thcysxMj4+Ml18MDtpZigoYXV8MCk9PShjW2FzKzE2Pj4yXXwwKSl7YmU9YjBbY1soY1th
cz4+Ml18MCkrMzY+PjJdJjEyN10oYXMpfDB9ZWxzZXtiZT1jW2F1Pj4yXXwwfWlmKCEoYjFbY1so
Y1tlPj4yXXwwKSsxMj4+Ml0mNjNdKGwsODE5MixiZSl8MCkpe1o9NzkxO2JyZWFrIEw4OTB9YXU9
Y1tmPj4yXXwwO2FzPWF1KzEyfDA7YXQ9Y1thcz4+Ml18MDtpZigoYXR8MCk9PShjW2F1KzE2Pj4y
XXwwKSl7YmY9YjBbY1soY1thdT4+Ml18MCkrNDA+PjJdJjEyN10oYXUpfDB9ZWxzZXtjW2FzPj4y
XT1hdCs0O2JmPWNbYXQ+PjJdfDB9ZWgoQSxiZik7Wj03OTI7YnJlYWt9O2Nhc2UgMDp7Wj03OTI7
YnJlYWt9O2Nhc2UgMzp7YXQ9YVtFXXwwO2FzPWF0JjI1NTthdT0oYXMmMXwwKT09MDtWPWFbRl18
MDthcj1WJjI1NTthcD0oYXImMXwwKT09MDtpZigoKGF1P2FzPj4+MTpjW0o+PjJdfDApfDApPT0o
LShhcD9hcj4+PjE6Y1tIPj4yXXwwKXwwKSl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFr
IEw5MTR9ZG97aWYoKChhdT9hcz4+PjE6Y1tKPj4yXXwwKXwwKSE9MCl7aWYoKChhcD9hcj4+PjE6
Y1tIPj4yXXwwKXwwKT09MCl7YnJlYWt9WD1jW2Y+PjJdfDA7YXc9Y1tYKzEyPj4yXXwwO2lmKChh
d3wwKT09KGNbWCsxNj4+Ml18MCkpe2F4PWIwW2NbKGNbWD4+Ml18MCkrMzY+PjJdJjEyN10oWCl8
MDtiZz1heDtiaD1hW0VdfDB9ZWxzZXtiZz1jW2F3Pj4yXXwwO2JoPWF0fWF3PWNbZj4+Ml18MDth
eD1hdysxMnwwO1g9Y1theD4+Ml18MDthdj0oWHwwKT09KGNbYXcrMTY+PjJdfDApO2lmKChiZ3ww
KT09KGNbKChiaCYxKT09MD9KOmNbSz4+Ml18MCk+PjJdfDApKXtpZihhdil7Ymk9Y1soY1thdz4+
Ml18MCkrNDA+PjJdfDA7YjBbYmkmMTI3XShhdyl8MH1lbHNle2NbYXg+PjJdPVgrNH1heD1kW0Vd
fDA7YWY9KChheCYxfDApPT0wP2F4Pj4+MTpjW0o+PjJdfDApPj4+MD4xP3k6cjthZz1vO2FoPVQ7
YWk9Uzthaj1SO2JyZWFrIEw5MTR9aWYoYXYpe2JqPWIwW2NbKGNbYXc+PjJdfDApKzM2Pj4yXSYx
MjddKGF3KXwwfWVsc2V7Ymo9Y1tYPj4yXXwwfWlmKChianwwKSE9KGNbKChhW0ZdJjEpPT0wP0g6
Y1tJPj4yXXwwKT4+Ml18MCkpe1o9ODU3O2JyZWFrIEw4OTB9WD1jW2Y+PjJdfDA7YXc9WCsxMnww
O2F2PWNbYXc+PjJdfDA7aWYoKGF2fDApPT0oY1tYKzE2Pj4yXXwwKSl7YXg9Y1soY1tYPj4yXXww
KSs0MD4+Ml18MDtiMFtheCYxMjddKFgpfDB9ZWxzZXtjW2F3Pj4yXT1hdis0fWFba109MTthdj1k
W0ZdfDA7YWY9KChhdiYxfDApPT0wP2F2Pj4+MTpjW0g+PjJdfDApPj4+MD4xP3o6cjthZz1vO2Fo
PVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9fXdoaWxlKDApO2FyPWNbZj4+Ml18MDthcD1jW2FyKzEy
Pj4yXXwwO2F2PShhcHwwKT09KGNbYXIrMTY+PjJdfDApO2lmKCgoYXU/YXM+Pj4xOmNbSj4+Ml18
MCl8MCk9PTApe2lmKGF2KXthdz1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MDti
az1hdztibD1hW0ZdfDB9ZWxzZXtiaz1jW2FwPj4yXXwwO2JsPVZ9aWYoKGJrfDApIT0oY1soKGJs
JjEpPT0wP0g6Y1tJPj4yXXwwKT4+Ml18MCkpe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVh
ayBMOTE0fWF3PWNbZj4+Ml18MDtYPWF3KzEyfDA7YXg9Y1tYPj4yXXwwO2lmKChheHwwKT09KGNb
YXcrMTY+PjJdfDApKXtiaT1jWyhjW2F3Pj4yXXwwKSs0MD4+Ml18MDtiMFtiaSYxMjddKGF3KXww
fWVsc2V7Y1tYPj4yXT1heCs0fWFba109MTtheD1kW0ZdfDA7YWY9KChheCYxfDApPT0wP2F4Pj4+
MTpjW0g+PjJdfDApPj4+MD4xP3o6cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9aWYo
YXYpe2F2PWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwO2JtPWF2O2JuPWFbRV18
MH1lbHNle2JtPWNbYXA+PjJdfDA7Ym49YXR9aWYoKGJtfDApIT0oY1soKGJuJjEpPT0wP0o6Y1tL
Pj4yXXwwKT4+Ml18MCkpe2Fba109MTthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDkx
NH1hcD1jW2Y+PjJdfDA7YXY9YXArMTJ8MDthcj1jW2F2Pj4yXXwwO2lmKChhcnwwKT09KGNbYXAr
MTY+PjJdfDApKXtheD1jWyhjW2FwPj4yXXwwKSs0MD4+Ml18MDtiMFtheCYxMjddKGFwKXwwfWVs
c2V7Y1thdj4+Ml09YXIrNH1hcj1kW0VdfDA7YWY9KChhciYxfDApPT0wP2FyPj4+MTpjW0o+PjJd
fDApPj4+MD4xP3k6cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrfTtkZWZhdWx0OnthZj1yO2Fn
PW87YWg9VDthaT1TO2FqPVJ9fX13aGlsZSgwKTtMMTE4Mzpkb3tpZigoWnwwKT09NzkyKXtaPTA7
aWYoKFV8MCk9PTMpe2FhPVI7YWI9UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrIEw4OTB9ZWxzZXti
bz0kfXdoaWxlKDEpe2FyPWNbZj4+Ml18MDtkb3tpZigoYXJ8MCk9PTApe2JwPTF9ZWxzZXthdj1j
W2FyKzEyPj4yXXwwO2lmKChhdnwwKT09KGNbYXIrMTY+PjJdfDApKXticT1iMFtjWyhjW2FyPj4y
XXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2JxPWNbYXY+PjJdfDB9aWYoKGJxfDApPT0tMSl7
Y1tmPj4yXT0wO2JwPTE7YnJlYWt9ZWxzZXticD0oY1tmPj4yXXwwKT09MDticmVha319fXdoaWxl
KDApO2Rve2lmKChib3wwKT09MCl7Wj04MDZ9ZWxzZXthcj1jW2JvKzEyPj4yXXwwO2lmKChhcnww
KT09KGNbYm8rMTY+PjJdfDApKXticj1iMFtjWyhjW2JvPj4yXXwwKSszNj4+Ml0mMTI3XShibyl8
MH1lbHNle2JyPWNbYXI+PjJdfDB9aWYoKGJyfDApPT0tMSl7Y1tiPj4yXT0wO1o9ODA2O2JyZWFr
fWVsc2V7aWYoYnBeKGJvfDApPT0wKXticz1ibzticmVha31lbHNle2FmPXI7YWc9bzthaD1UO2Fp
PVM7YWo9UjticmVhayBMMTE4M319fX13aGlsZSgwKTtpZigoWnwwKT09ODA2KXtaPTA7aWYoYnAp
e2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMMTE4M31lbHNle2JzPTB9fWFyPWNbZj4+
Ml18MDthdj1jW2FyKzEyPj4yXXwwO2lmKChhdnwwKT09KGNbYXIrMTY+PjJdfDApKXtidD1iMFtj
WyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2J0PWNbYXY+PjJdfDB9aWYoIShi
MVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2M10obCw4MTkyLGJ0KXwwKSl7YWY9cjthZz1vO2FoPVQ7
YWk9Uzthaj1SO2JyZWFrIEwxMTgzfWF2PWNbZj4+Ml18MDthcj1hdisxMnwwO2FwPWNbYXI+PjJd
fDA7aWYoKGFwfDApPT0oY1thdisxNj4+Ml18MCkpe2J1PWIwW2NbKGNbYXY+PjJdfDApKzQwPj4y
XSYxMjddKGF2KXwwfWVsc2V7Y1thcj4+Ml09YXArNDtidT1jW2FwPj4yXXwwfWVoKEEsYnUpO2Jv
PWJzfX19d2hpbGUoMCk7YXQ9VSsxfDA7aWYoYXQ+Pj4wPDQpe1I9YWo7Uz1haTtUPWFoO289YWc7
cj1hZjtVPWF0fWVsc2V7YWE9YWo7YWI9YWk7YWM9YWg7YWQ9YWY7Wj0xMDA3O2JyZWFrfX1MMTIy
MDpkb3tpZigoWnwwKT09ODU3KXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PVM7Yng9Un1lbHNl
IGlmKChafDApPT05MDEpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9UztieD1SfWVsc2UgaWYo
KFp8MCk9PTk3MCl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlmKCha
fDApPT05OTQpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YVc7Yng9YVh9ZWxzZSBpZigoWnww
KT09MTAwNSl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlmKChafDAp
PT0xMDA3KXtMMTIyNzpkb3tpZigoYWR8MCkhPTApe2FmPWFkO2FoPWFkKzR8MDthaT1hZCs4fDA7
YWo9MTtMMTIyOTp3aGlsZSgxKXtVPWRbYWZdfDA7aWYoKFUmMXwwKT09MCl7Ynk9VT4+PjF9ZWxz
ZXtieT1jW2FoPj4yXXwwfWlmKGFqPj4+MD49Ynk+Pj4wKXticmVhayBMMTIyN31VPWNbZj4+Ml18
MDtkb3tpZigoVXwwKT09MCl7Yno9MX1lbHNle3I9Y1tVKzEyPj4yXXwwO2lmKChyfDApPT0oY1tV
KzE2Pj4yXXwwKSl7YkE9YjBbY1soY1tVPj4yXXwwKSszNj4+Ml0mMTI3XShVKXwwfWVsc2V7YkE9
Y1tyPj4yXXwwfWlmKChiQXwwKT09LTEpe2NbZj4+Ml09MDtiej0xO2JyZWFrfWVsc2V7Yno9KGNb
Zj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtVPWNbYj4+Ml18MDtkb3tpZigoVXwwKT09MCl7
Wj0xMDI2fWVsc2V7cj1jW1UrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW1UrMTY+PjJdfDApKXtiQj1i
MFtjWyhjW1U+PjJdfDApKzM2Pj4yXSYxMjddKFUpfDB9ZWxzZXtiQj1jW3I+PjJdfDB9aWYoKGJC
fDApPT0tMSl7Y1tiPj4yXT0wO1o9MTAyNjticmVha31lbHNle2lmKGJ6XihVfDApPT0wKXticmVh
a31lbHNle2JyZWFrIEwxMjI5fX19fXdoaWxlKDApO2lmKChafDApPT0xMDI2KXtaPTA7aWYoYnop
e2JyZWFrfX1VPWNbZj4+Ml18MDtyPWNbVSsxMj4+Ml18MDtpZigocnwwKT09KGNbVSsxNj4+Ml18
MCkpe2JDPWIwW2NbKGNbVT4+Ml18MCkrMzY+PjJdJjEyN10oVSl8MH1lbHNle2JDPWNbcj4+Ml18
MH1pZigoYVthZl0mMSk9PTApe2JEPWFofWVsc2V7YkQ9Y1thaT4+Ml18MH1pZigoYkN8MCkhPShj
W2JEKyhhajw8Mik+PjJdfDApKXticmVha31yPWFqKzF8MDtVPWNbZj4+Ml18MDthZz1VKzEyfDA7
bz1jW2FnPj4yXXwwO2lmKChvfDApPT0oY1tVKzE2Pj4yXXwwKSl7VD1jWyhjW1U+PjJdfDApKzQw
Pj4yXXwwO2IwW1QmMTI3XShVKXwwO2FqPXI7Y29udGludWV9ZWxzZXtjW2FnPj4yXT1vKzQ7YWo9
cjtjb250aW51ZX19Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hYjtieD1hYTticmVhayBMMTIy
MH19d2hpbGUoMCk7aWYoKGFifDApPT0oYWN8MCkpe2J2PTE7Ync9YWM7Yng9YWE7YnJlYWt9Y1tD
Pj4yXT0wO2Z0KHYsYWIsYWMsQyk7aWYoKGNbQz4+Ml18MCk9PTApe2J2PTE7Ync9YWI7Yng9YWE7
YnJlYWt9Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hYjtieD1hYX1lbHNlIGlmKChafDApPT03
OTEpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9UztieD1SfX13aGlsZSgwKTtlZShBKTtlZSh6
KTtlZSh5KTtlZSh4KTtkUCh2KTtpZigoYnd8MCk9PTApe2k9cDtyZXR1cm4gYnZ8MH1iWVtieCY1
MTFdKGJ3KTtpPXA7cmV0dXJuIGJ2fDB9ZnVuY3Rpb24gaF8oYixkLGUpe2I9YnwwO2Q9ZHwwO2U9
ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Zj1iO2c9ZDto
PWFbZl18MDtpPWgmMjU1O2lmKChpJjF8MCk9PTApe2o9aT4+PjF9ZWxzZXtqPWNbYis0Pj4yXXww
fWlmKChoJjEpPT0wKXtrPTE7bD1ofWVsc2V7aD1jW2I+PjJdfDA7az0oaCYtMiktMXwwO2w9aCYy
NTV9aD1lLWc+PjI7aWYoKGh8MCk9PTApe3JldHVybiBifDB9aWYoKGstanwwKT4+PjA8aD4+PjAp
e2VCKGIsayxqK2gta3wwLGosaiwwLDApO209YVtmXXwwfWVsc2V7bT1sfWlmKChtJjEpPT0wKXtu
PWIrNHwwfWVsc2V7bj1jW2IrOD4+Ml18MH1tPW4rKGo8PDIpfDA7aWYoKGR8MCk9PShlfDApKXtv
PW19ZWxzZXtsPWorKChlLTQrKC1nfDApfDApPj4+MikrMXwwO2c9ZDtkPW07d2hpbGUoMSl7Y1tk
Pj4yXT1jW2c+PjJdO209Zys0fDA7aWYoKG18MCk9PShlfDApKXticmVha31lbHNle2c9bTtkPWQr
NHwwfX1vPW4rKGw8PDIpfDB9Y1tvPj4yXT0wO289aitofDA7aWYoKGFbZl0mMSk9PTApe2FbZl09
bzw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1vO3JldHVybiBifDB9cmV0dXJuIDB9
ZnVuY3Rpb24gaCQoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaDAoYSl7
YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaDEoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MDtkPWk7aT1pKzQ1NnwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+
Ml09Y1tsPj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrNDE2fDA7bz1kKzQyNHwwO3A9ZCs0MzJ8MDtx
PWQrNDQwfDA7cj1kKzQ0OHwwO3M9bnwwO2Nbcz4+Ml09bTt0PW4rNHwwO2NbdD4+Ml09MTY2O3U9
bSs0MDB8MDtlaihwLGgpO209cHwwO3Y9Y1ttPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1ts
Pj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1sz
OTIzXXwwKS0xfDA7dz1jW3YrOD4+Ml18MDtkb3tpZigoY1t2KzEyPj4yXXwwKS13Pj4yPj4+MD5s
Pj4+MCl7eD1jW3crKGw8PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7YVtxXT0wO3o9
ZnwwO0E9Y1t6Pj4yXXwwO2Nbcj4+Ml09QTtpZihoWihlLHIsZyxwLGNbaCs0Pj4yXXwwLGoscSx5
LG4sbyx1KXwwKXtCPWs7aWYoKGFbQl0mMSk9PTApe2Nbays0Pj4yXT0wO2FbQl09MH1lbHNle2Nb
Y1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfUI9eDtpZigoYVtxXSYxKSE9MCl7ZWgoayxiX1tj
WyhjW0I+PjJdfDApKzQ0Pj4yXSYzMV0oeSw0NSl8MCl9eD1iX1tjWyhjW0I+PjJdfDApKzQ0Pj4y
XSYzMV0oeSw0OCl8MDt5PWNbbz4+Ml18MDtCPXktNHwwO0M9Y1tzPj4yXXwwO3doaWxlKDEpe2lm
KEM+Pj4wPj1CPj4+MCl7YnJlYWt9aWYoKGNbQz4+Ml18MCk9PSh4fDApKXtDPUMrNHwwfWVsc2V7
YnJlYWt9fWhfKGssQyx5KXwwfXg9ZXwwO0I9Y1t4Pj4yXXwwO2Rve2lmKChCfDApPT0wKXtEPTB9
ZWxzZXtFPWNbQisxMj4+Ml18MDtpZigoRXwwKT09KGNbQisxNj4+Ml18MCkpe0Y9YjBbY1soY1tC
Pj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7Rj1jW0U+PjJdfDB9aWYoKEZ8MCkhPS0xKXtE
PUI7YnJlYWt9Y1t4Pj4yXT0wO0Q9MH19d2hpbGUoMCk7eD0oRHwwKT09MDtkb3tpZigoQXwwKT09
MCl7Rz0xMTA1fWVsc2V7Qj1jW0ErMTI+PjJdfDA7aWYoKEJ8MCk9PShjW0ErMTY+PjJdfDApKXtI
PWIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MH1lbHNle0g9Y1tCPj4yXXwwfWlmKChI
fDApPT0tMSl7Y1t6Pj4yXT0wO0c9MTEwNTticmVha31lbHNle2lmKHheKEF8MCk9PTApe2JyZWFr
fWVsc2V7Rz0xMTA3O2JyZWFrfX19fXdoaWxlKDApO2lmKChHfDApPT0xMTA1KXtpZih4KXtHPTEx
MDd9fWlmKChHfDApPT0xMTA3KXtjW2o+PjJdPWNbaj4+Ml18Mn1jW2I+PjJdPUQ7QT1jW20+PjJd
fDA7ZHooQSl8MDtBPWNbcz4+Ml18MDtjW3M+PjJdPTA7aWYoKEF8MCk9PTApe2k9ZDtyZXR1cm59
YllbY1t0Pj4yXSY1MTFdKEEpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShkKTti
bChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGgyKGIsZCxlLGYsZyxoLGosayxsLG0pe2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MDtuPWk7aT1p
KzU2fDA7bz1ufDA7cD1uKzE2fDA7cT1uKzMyfDA7cj1uKzQwfDA7cz1yO3Q9aTtpPWkrMTJ8MDtp
PWkrNz4+Mzw8Mzt1PXQ7dj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3c9djt4PWk7aT1pKzEyfDA7
aT1pKzc+PjM8PDM7eT14O3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8MztCPUE7RD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7Rz1GO0g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztJPUg7aWYoYil7Yj1jW2Q+PjJd
fDA7aWYoKGNbNDA0MF18MCkhPS0xKXtjW3A+PjJdPTE2MTYwO2NbcCs0Pj4yXT0xMjtjW3ArOD4+
Ml09MDtkVygxNjE2MCxwLDk2KX1wPShjWzQwNDFdfDApLTF8MDtKPWNbYis4Pj4yXXwwO2lmKChj
W2IrMTI+PjJdfDApLUo+PjI+Pj4wPD1wPj4+MCl7Sz1iTyg0KXwwO0w9SztrcShMKTtibChLfDAs
ODE3NiwxMzQpfWI9Y1tKKyhwPDwyKT4+Ml18MDtpZigoYnwwKT09MCl7Sz1iTyg0KXwwO0w9Sztr
cShMKTtibChLfDAsODE3NiwxMzQpfUs9YjtiWltjWyhjW2I+PjJdfDApKzQ0Pj4yXSYxMjddKHEs
Syk7TD1lO0M9Y1txPj4yXXwwO2FbTF09QyYyNTU7Qz1DPj44O2FbTCsxfDBdPUMmMjU1O0M9Qz4+
ODthW0wrMnwwXT1DJjI1NTtDPUM+Pjg7YVtMKzN8MF09QyYyNTU7TD1iO2JaW2NbKGNbTD4+Ml18
MCkrMzI+PjJdJjEyN10ocixLKTtxPWw7aWYoKGFbcV0mMSk9PTApe2NbbCs0Pj4yXT0wO2FbcV09
MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1txPj4yXT1jW3M+
PjJdO2NbcSs0Pj4yXT1jW3MrND4+Ml07Y1txKzg+PjJdPWNbcys4Pj4yXTtrJChzfDAsMCwxMik7
ZWUocik7YlpbY1soY1tMPj4yXXwwKSsyOD4+Ml0mMTI3XSh0LEspO3I9aztpZigoYVtyXSYxKT09
MCl7Y1trKzQ+PjJdPTA7YVtyXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJdPTB9
ZXooaywwKTtjW3I+PjJdPWNbdT4+Ml07Y1tyKzQ+PjJdPWNbdSs0Pj4yXTtjW3IrOD4+Ml09Y1t1
Kzg+PjJdO2skKHV8MCwwLDEyKTtlZSh0KTt0PWI7Y1tmPj4yXT1iMFtjWyhjW3Q+PjJdfDApKzEy
Pj4yXSYxMjddKEspfDA7Y1tnPj4yXT1iMFtjWyhjW3Q+PjJdfDApKzE2Pj4yXSYxMjddKEspfDA7
YlpbY1soY1tiPj4yXXwwKSsyMD4+Ml0mMTI3XSh2LEspO2I9aDtpZigoYVtiXSYxKT09MCl7YVto
KzF8MF09MDthW2JdPTB9ZWxzZXthW2NbaCs4Pj4yXXwwXT0wO2NbaCs0Pj4yXT0wfWQkKGgsMCk7
Y1tiPj4yXT1jW3c+PjJdO2NbYis0Pj4yXT1jW3crND4+Ml07Y1tiKzg+PjJdPWNbdys4Pj4yXTtr
JCh3fDAsMCwxMik7ZFAodik7YlpbY1soY1tMPj4yXXwwKSsyND4+Ml0mMTI3XSh4LEspO0w9ajtp
ZigoYVtMXSYxKT09MCl7Y1tqKzQ+PjJdPTA7YVtMXT0wfWVsc2V7Y1tjW2orOD4+Ml0+PjJdPTA7
Y1tqKzQ+PjJdPTB9ZXooaiwwKTtjW0w+PjJdPWNbeT4+Ml07Y1tMKzQ+PjJdPWNbeSs0Pj4yXTtj
W0wrOD4+Ml09Y1t5Kzg+PjJdO2skKHl8MCwwLDEyKTtlZSh4KTtNPWIwW2NbKGNbdD4+Ml18MCkr
MzY+PjJdJjEyN10oSyl8MDtjW20+PjJdPU07aT1uO3JldHVybn1lbHNle0s9Y1tkPj4yXXwwO2lm
KChjWzQwNDJdfDApIT0tMSl7Y1tvPj4yXT0xNjE2ODtjW28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7
ZFcoMTYxNjgsbyw5Nil9bz0oY1s0MDQzXXwwKS0xfDA7ZD1jW0srOD4+Ml18MDtpZigoY1tLKzEy
Pj4yXXwwKS1kPj4yPj4+MDw9bz4+PjApe049Yk8oNCl8MDtPPU47a3EoTyk7YmwoTnwwLDgxNzYs
MTM0KX1LPWNbZCsobzw8Mik+PjJdfDA7aWYoKEt8MCk9PTApe049Yk8oNCl8MDtPPU47a3EoTyk7
YmwoTnwwLDgxNzYsMTM0KX1OPUs7YlpbY1soY1tLPj4yXXwwKSs0ND4+Ml0mMTI3XSh6LE4pO089
ZTtDPWNbej4+Ml18MDthW09dPUMmMjU1O0M9Qz4+ODthW08rMXwwXT1DJjI1NTtDPUM+Pjg7YVtP
KzJ8MF09QyYyNTU7Qz1DPj44O2FbTyszfDBdPUMmMjU1O089SztiWltjWyhjW08+PjJdfDApKzMy
Pj4yXSYxMjddKEEsTik7ej1sO2lmKChhW3pdJjEpPT0wKXtjW2wrND4+Ml09MDthW3pdPTB9ZWxz
ZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2Nbej4+Ml09Y1tCPj4yXTtj
W3orND4+Ml09Y1tCKzQ+PjJdO2Nbeis4Pj4yXT1jW0IrOD4+Ml07ayQoQnwwLDAsMTIpO2VlKEEp
O2JaW2NbKGNbTz4+Ml18MCkrMjg+PjJdJjEyN10oRCxOKTtBPWs7aWYoKGFbQV0mMSk9PTApe2Nb
ays0Pj4yXT0wO2FbQV09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6KGss
MCk7Y1tBPj4yXT1jW0U+PjJdO2NbQSs0Pj4yXT1jW0UrND4+Ml07Y1tBKzg+PjJdPWNbRSs4Pj4y
XTtrJChFfDAsMCwxMik7ZWUoRCk7RD1LO2NbZj4+Ml09YjBbY1soY1tEPj4yXXwwKSsxMj4+Ml0m
MTI3XShOKXwwO2NbZz4+Ml09YjBbY1soY1tEPj4yXXwwKSsxNj4+Ml0mMTI3XShOKXwwO2JaW2Nb
KGNbSz4+Ml18MCkrMjA+PjJdJjEyN10oRixOKTtLPWg7aWYoKGFbS10mMSk9PTApe2FbaCsxfDBd
PTA7YVtLXT0wfWVsc2V7YVtjW2grOD4+Ml18MF09MDtjW2grND4+Ml09MH1kJChoLDApO2NbSz4+
Ml09Y1tHPj4yXTtjW0srND4+Ml09Y1tHKzQ+PjJdO2NbSys4Pj4yXT1jW0crOD4+Ml07ayQoR3ww
LDAsMTIpO2RQKEYpO2JaW2NbKGNbTz4+Ml18MCkrMjQ+PjJdJjEyN10oSCxOKTtPPWo7aWYoKGFb
T10mMSk9PTApe2Nbais0Pj4yXT0wO2FbT109MH1lbHNle2NbY1tqKzg+PjJdPj4yXT0wO2Nbais0
Pj4yXT0wfWV6KGosMCk7Y1tPPj4yXT1jW0k+PjJdO2NbTys0Pj4yXT1jW0krND4+Ml07Y1tPKzg+
PjJdPWNbSSs4Pj4yXTtrJChJfDAsMCwxMik7ZWUoSCk7TT1iMFtjWyhjW0Q+PjJdfDApKzM2Pj4y
XSYxMjddKE4pfDA7Y1ttPj4yXT1NO2k9bjtyZXR1cm59fWZ1bmN0aW9uIGgzKGEsYixkKXthPWF8
MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWErNHww
O2Y9KGNbZT4+Ml18MCkhPTE2NjtnPWF8MDthPWNbZz4+Ml18MDtoPWE7aT0oY1tkPj4yXXwwKS1o
fDA7aj1pPj4+MDwyMTQ3NDgzNjQ3P2k8PDE6LTE7aT0oY1tiPj4yXXwwKS1oPj4yO2lmKGYpe2s9
YX1lbHNle2s9MH1hPWtMKGssail8MDtrPWE7aWYoKGF8MCk9PTApe2tYKCl9ZG97aWYoZil7Y1tn
Pj4yXT1rO2w9a31lbHNle2E9Y1tnPj4yXXwwO2NbZz4+Ml09aztpZigoYXwwKT09MCl7bD1rO2Jy
ZWFrfWJZW2NbZT4+Ml0mNTExXShhKTtsPWNbZz4+Ml18MH19d2hpbGUoMCk7Y1tlPj4yXT04Mjtj
W2I+PjJdPWwrKGk8PDIpO2NbZD4+Ml09KGNbZz4+Ml18MCkrKGo+Pj4yPDwyKTtyZXR1cm59ZnVu
Y3Rpb24gaDQoYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7az1r
fDA7bD0rbDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wO2U9aTtpPWkrMjgw
fDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWV8MDtuPWUr
MTIwfDA7bz1lKzIzMnwwO3A9ZSsyNDB8MDtxPWUrMjQ4fDA7cj1lKzI1NnwwO3M9ZSsyNjR8MDt0
PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7
eD13O3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTAwfDA7aT1pKzc+PjM8PDM7QT1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7RD1lKzE2fDA7Y1tuPj4yXT1EO0U9ZSsxMjh8MDtGPWFaKER8MCwxMDAsMTM2
MCwoRD1pLGk9aSs4fDAsaFtEPj4zXT1sLEQpfDApfDA7aT1EO2Rve2lmKEY+Pj4wPjk5KXtkb3tp
ZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMo
MSwxMzQ0LDApfDB9fXdoaWxlKDApO0c9Z2gobixjWzI5NThdfDAsMTM2MCwoRD1pLGk9aSs4fDAs
aFtEPj4zXT1sLEQpfDApfDA7aT1EO0g9Y1tuPj4yXXwwO2lmKChIfDApPT0wKXtrWCgpO0k9Y1tu
Pj4yXXwwfWVsc2V7ST1IfUg9a0ooRyl8MDtpZigoSHwwKSE9MCl7Sj1IO0s9RztMPUk7TT1IO2Jy
ZWFrfWtYKCk7Sj0wO0s9RztMPUk7TT0wfWVsc2V7Sj1FO0s9RjtMPTA7TT0wfX13aGlsZSgwKTtl
aihvLGopO0Y9b3wwO0U9Y1tGPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1ttPj4yXT0xNTY5
NjtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTU2OTYsbSw5Nil9bT0oY1szOTI1XXwwKS0x
fDA7ST1jW0UrOD4+Ml18MDtkb3tpZigoY1tFKzEyPj4yXXwwKS1JPj4yPj4+MD5tPj4+MCl7RD1j
W0krKG08PDIpPj4yXXwwO2lmKChEfDApPT0wKXticmVha31HPUQ7SD1jW24+PjJdfDA7Tj1IK0t8
MDtPPWNbKGNbRD4+Ml18MCkrMzI+PjJdfDA7Y2FbTyYxNV0oRyxILE4sSil8MDtpZigoS3wwKT09
MCl7UD0wfWVsc2V7UD0oYVtjW24+PjJdfDBdfDApPT00NX1rJCh0fDAsMCwxMik7ayQodnwwLDAs
MTIpO2skKHh8MCwwLDEyKTtoNShnLFAsbyxwLHEscixzLHUsdyx5KTtOPXp8MDtIPWNbeT4+Ml18
MDtpZigoS3wwKT4oSHwwKSl7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7UT1PPj4+MX1lbHNle1E9
Y1t3KzQ+PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7Uj1PPj4+MX1lbHNle1I9Y1t1KzQ+
PjJdfDB9Uz0oSy1IPDwxfDEpK1ErUnwwfWVsc2V7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7VD1P
Pj4+MX1lbHNle1Q9Y1t3KzQ+PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7VT1PPj4+MX1l
bHNle1U9Y1t1KzQ+PjJdfDB9Uz1UKzIrVXwwfU89UytIfDA7ZG97aWYoTz4+PjA+MTAwKXtEPWtK
KE8pfDA7aWYoKER8MCkhPTApe1Y9RDtXPUQ7YnJlYWt9a1goKTtWPTA7Vz0wfWVsc2V7Vj1OO1c9
MH19d2hpbGUoMCk7aDYoVixBLEIsY1tqKzQ+PjJdfDAsSixKK0t8MCxHLFAscCxhW3FdfDAsYVty
XXwwLHMsdSx3LEgpO2NbQz4+Ml09Y1tmPj4yXTtmOShiLEMsVixjW0E+PjJdfDAsY1tCPj4yXXww
LGosayk7aWYoKFd8MCkhPTApe2tLKFcpfWRQKHcpO2RQKHUpO2RQKHMpO049Y1tGPj4yXXwwO2R6
KE4pfDA7aWYoKE18MCkhPTApe2tLKE0pfWlmKChMfDApPT0wKXtpPWU7cmV0dXJufWtLKEwpO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1bmN0
aW9uIGg1KGIsZCxlLGYsZyxoLGosayxsLG0pe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtuPWk7
aT1pKzQwfDA7bz1ufDA7cD1uKzE2fDA7cT1uKzMyfDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8Mzt0PXM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8Mzt4PXc7eT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3o9eTtBPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7Qj1BO0Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7Rz1GO0g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0k9SDtKPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7Sz1KO0w9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztNPUw7Tj1pO2k9aSsxMnwwO2k9aSs3
Pj4zPDwzO089TjtQPWNbZT4+Ml18MDtpZihiKXtpZigoY1s0MDQ0XXwwKSE9LTEpe2NbcD4+Ml09
MTYxNzY7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTc2LHAsOTYpfXA9KGNbNDA0NV18
MCktMXwwO2I9Y1tQKzg+PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktYj4+Mj4+PjA8PXA+Pj4wKXtR
PWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9ZT1jW2IrKHA8PDIpPj4yXXwwO2lm
KChlfDApPT0wKXtRPWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9UT1lO1I9Y1tl
Pj4yXXwwO2lmKGQpe2JaW2NbUis0ND4+Ml0mMTI3XShyLFEpO3I9ZjtDPWNbcT4+Ml18MDthW3Jd
PUMmMjU1O0M9Qz4+ODthW3IrMXwwXT1DJjI1NTtDPUM+Pjg7YVtyKzJ8MF09QyYyNTU7Qz1DPj44
O2FbciszfDBdPUMmMjU1O2JaW2NbKGNbZT4+Ml18MCkrMzI+PjJdJjEyN10ocyxRKTtyPWw7aWYo
KGFbcl0mMSk9PTApe2FbbCsxfDBdPTA7YVtyXT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wr
ND4+Ml09MH1kJChsLDApO2Nbcj4+Ml09Y1t0Pj4yXTtjW3IrND4+Ml09Y1t0KzQ+PjJdO2Nbcis4
Pj4yXT1jW3QrOD4+Ml07ayQodHwwLDAsMTIpO2RQKHMpfWVsc2V7YlpbY1tSKzQwPj4yXSYxMjdd
KHYsUSk7dj1mO0M9Y1t1Pj4yXXwwO2Fbdl09QyYyNTU7Qz1DPj44O2FbdisxfDBdPUMmMjU1O0M9
Qz4+ODthW3YrMnwwXT1DJjI1NTtDPUM+Pjg7YVt2KzN8MF09QyYyNTU7YlpbY1soY1tlPj4yXXww
KSsyOD4+Ml0mMTI3XSh3LFEpO3Y9bDtpZigoYVt2XSYxKT09MCl7YVtsKzF8MF09MDthW3ZdPTB9
ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1t2Pj4yXT1jW3g+PjJd
O2Nbdis0Pj4yXT1jW3grND4+Ml07Y1t2Kzg+PjJdPWNbeCs4Pj4yXTtrJCh4fDAsMCwxMik7ZFAo
dyl9dz1lO2FbZ109YjBbY1soY1t3Pj4yXXwwKSsxMj4+Ml0mMTI3XShRKXwwO2FbaF09YjBbY1so
Y1t3Pj4yXXwwKSsxNj4+Ml0mMTI3XShRKXwwO3c9ZTtiWltjWyhjW3c+PjJdfDApKzIwPj4yXSYx
MjddKHksUSk7eD1qO2lmKChhW3hdJjEpPT0wKXthW2orMXwwXT0wO2FbeF09MH1lbHNle2FbY1tq
Kzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW3g+PjJdPWNbej4+Ml07Y1t4KzQ+PjJd
PWNbeis0Pj4yXTtjW3grOD4+Ml09Y1t6Kzg+PjJdO2skKHp8MCwwLDEyKTtkUCh5KTtiWltjWyhj
W3c+PjJdfDApKzI0Pj4yXSYxMjddKEEsUSk7dz1rO2lmKChhW3ddJjEpPT0wKXthW2srMXwwXT0w
O2Fbd109MH1lbHNle2FbY1trKzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW3c+PjJd
PWNbQj4+Ml07Y1t3KzQ+PjJdPWNbQis0Pj4yXTtjW3crOD4+Ml09Y1tCKzg+PjJdO2skKEJ8MCww
LDEyKTtkUChBKTtTPWIwW2NbKGNbZT4+Ml18MCkrMzY+PjJdJjEyN10oUSl8MDtjW20+PjJdPVM7
aT1uO3JldHVybn1lbHNle2lmKChjWzQwNDZdfDApIT0tMSl7Y1tvPj4yXT0xNjE4NDtjW28rND4+
Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxODQsbyw5Nil9bz0oY1s0MDQ3XXwwKS0xfDA7UT1jW1Ar
OD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1RPj4yPj4+MDw9bz4+PjApe1Q9Yk8oNCl8MDtVPVQ7
a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1QPWNbUSsobzw8Mik+PjJdfDA7aWYoKFB8MCk9PTApe1Q9
Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1UPVA7VT1jW1A+PjJdfDA7aWYoZCl7
YlpbY1tVKzQ0Pj4yXSYxMjddKEUsVCk7RT1mO0M9Y1tEPj4yXXwwO2FbRV09QyYyNTU7Qz1DPj44
O2FbRSsxfDBdPUMmMjU1O0M9Qz4+ODthW0UrMnwwXT1DJjI1NTtDPUM+Pjg7YVtFKzN8MF09QyYy
NTU7YlpbY1soY1tQPj4yXXwwKSszMj4+Ml0mMTI3XShGLFQpO0U9bDtpZigoYVtFXSYxKT09MCl7
YVtsKzF8MF09MDthW0VdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQkKGws
MCk7Y1tFPj4yXT1jW0c+PjJdO2NbRSs0Pj4yXT1jW0crND4+Ml07Y1tFKzg+PjJdPWNbRys4Pj4y
XTtrJChHfDAsMCwxMik7ZFAoRil9ZWxzZXtiWltjW1UrNDA+PjJdJjEyN10oSSxUKTtJPWY7Qz1j
W0g+PjJdfDA7YVtJXT1DJjI1NTtDPUM+Pjg7YVtJKzF8MF09QyYyNTU7Qz1DPj44O2FbSSsyfDBd
PUMmMjU1O0M9Qz4+ODthW0krM3wwXT1DJjI1NTtiWltjWyhjW1A+PjJdfDApKzI4Pj4yXSYxMjdd
KEosVCk7ST1sO2lmKChhW0ldJjEpPT0wKXthW2wrMXwwXT0wO2FbSV09MH1lbHNle2FbY1tsKzg+
PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9ZCQobCwwKTtjW0k+PjJdPWNbSz4+Ml07Y1tJKzQ+PjJdPWNb
Sys0Pj4yXTtjW0krOD4+Ml09Y1tLKzg+PjJdO2skKEt8MCwwLDEyKTtkUChKKX1KPVA7YVtnXT1i
MFtjWyhjW0o+PjJdfDApKzEyPj4yXSYxMjddKFQpfDA7YVtoXT1iMFtjWyhjW0o+PjJdfDApKzE2
Pj4yXSYxMjddKFQpfDA7Sj1QO2JaW2NbKGNbSj4+Ml18MCkrMjA+PjJdJjEyN10oTCxUKTtoPWo7
aWYoKGFbaF0mMSk9PTApe2FbaisxfDBdPTA7YVtoXT0wfWVsc2V7YVtjW2orOD4+Ml18MF09MDtj
W2orND4+Ml09MH1kJChqLDApO2NbaD4+Ml09Y1tNPj4yXTtjW2grND4+Ml09Y1tNKzQ+PjJdO2Nb
aCs4Pj4yXT1jW00rOD4+Ml07ayQoTXwwLDAsMTIpO2RQKEwpO2JaW2NbKGNbSj4+Ml18MCkrMjQ+
PjJdJjEyN10oTixUKTtKPWs7aWYoKGFbSl0mMSk9PTApe2FbaysxfDBdPTA7YVtKXT0wfWVsc2V7
YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1kJChrLDApO2NbSj4+Ml09Y1tPPj4yXTtjW0or
ND4+Ml09Y1tPKzQ+PjJdO2NbSis4Pj4yXT1jW08rOD4+Ml07ayQoT3wwLDAsMTIpO2RQKE4pO1M9
YjBbY1soY1tQPj4yXXwwKSszNj4+Ml0mMTI3XShUKXwwO2NbbT4+Ml09UztpPW47cmV0dXJufX1m
dW5jdGlvbiBoNihkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscil7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1vfDA7
cD1wfDA7cT1xfDA7cj1yfDA7dmFyIHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAs
UD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAs
YWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFt
PTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0w
LGF5PTA7Y1tmPj4yXT1kO3M9ajt0PXE7dT1xKzF8MDt2PXErOHwwO3c9cSs0fDA7cT1wO3g9KGcm
NTEyfDApPT0wO3k9cCsxfDA7ej1wKzR8MDtBPXArOHwwO3A9ais4fDA7Qj0ocnwwKT4wO0M9bztE
PW8rMXwwO0U9bys4fDA7Rj1vKzR8MDtvPS1yfDA7Rz1oO2g9MDt3aGlsZSgxKXtMMTU4MDpkb3tz
d2l0Y2goYVtsK2h8MF18MCl7Y2FzZSAwOntjW2U+PjJdPWNbZj4+Ml07SD1HO2JyZWFrfTtjYXNl
IDE6e2NbZT4+Ml09Y1tmPj4yXTtJPWJfW2NbKGNbcz4+Ml18MCkrMjg+PjJdJjMxXShqLDMyKXww
O0o9Y1tmPj4yXXwwO2NbZj4+Ml09SisxO2FbSl09STtIPUc7YnJlYWt9O2Nhc2UgMzp7ST1hW3Rd
fDA7Sj1JJjI1NTtpZigoSiYxfDApPT0wKXtLPUo+Pj4xfWVsc2V7Sz1jW3c+PjJdfDB9aWYoKEt8
MCk9PTApe0g9RzticmVhayBMMTU4MH1pZigoSSYxKT09MCl7TD11fWVsc2V7TD1jW3Y+PjJdfDB9
ST1hW0xdfDA7Sj1jW2Y+PjJdfDA7Y1tmPj4yXT1KKzE7YVtKXT1JO0g9RzticmVha307Y2FzZSAy
OntJPWFbcV18MDtKPUkmMjU1O009KEomMXwwKT09MDtpZihNKXtOPUo+Pj4xfWVsc2V7Tj1jW3o+
PjJdfDB9aWYoKE58MCk9PTB8eCl7SD1HO2JyZWFrIEwxNTgwfWlmKChJJjEpPT0wKXtPPXk7UD15
fWVsc2V7ST1jW0E+PjJdfDA7Tz1JO1A9SX1pZihNKXtRPUo+Pj4xfWVsc2V7UT1jW3o+PjJdfDB9
Sj1PK1F8MDtNPWNbZj4+Ml18MDtpZigoUHwwKT09KEp8MCkpe1I9TX1lbHNle0k9UDtTPU07d2hp
bGUoMSl7YVtTXT1hW0ldfDA7TT1JKzF8MDtUPVMrMXwwO2lmKChNfDApPT0oSnwwKSl7Uj1UO2Jy
ZWFrfWVsc2V7ST1NO1M9VH19fWNbZj4+Ml09UjtIPUc7YnJlYWt9O2Nhc2UgNDp7Uz1jW2Y+PjJd
fDA7ST1rP0crMXwwOkc7Sj1JO3doaWxlKDEpe2lmKEo+Pj4wPj1pPj4+MCl7YnJlYWt9VD1hW0pd
fDA7aWYoVDw8MjQ+PjI0PD0tMSl7YnJlYWt9aWYoKGJbKGNbcD4+Ml18MCkrKFQ8PDI0Pj4yNDw8
MSk+PjFdJjIwNDgpPT0wKXticmVha31lbHNle0o9SisxfDB9fVQ9SjtpZihCKXtpZihKPj4+MD5J
Pj4+MCl7TT1JKygtVHwwKXwwO1Q9TT4+PjA8bz4+PjA/bzpNO009VCtyfDA7VT1KO1Y9cjtXPVM7
d2hpbGUoMSl7WD1VLTF8MDtZPWFbWF18MDtjW2Y+PjJdPVcrMTthW1ddPVk7WT1WLTF8MDtaPShZ
fDApPjA7aWYoIShYPj4+MD5JPj4+MCZaKSl7YnJlYWt9VT1YO1Y9WTtXPWNbZj4+Ml18MH1XPUor
VHwwO2lmKFope189TTskPVc7YWE9MTM1NH1lbHNle2FiPTA7YWM9TTthZD1XfX1lbHNle189cjsk
PUo7YWE9MTM1NH1pZigoYWF8MCk9PTEzNTQpe2FhPTA7YWI9Yl9bY1soY1tzPj4yXXwwKSsyOD4+
Ml0mMzFdKGosNDgpfDA7YWM9XzthZD0kfVc9Y1tmPj4yXXwwO2NbZj4+Ml09VysxO2lmKChhY3ww
KT4wKXtWPWFjO1U9Vzt3aGlsZSgxKXthW1VdPWFiO1k9Vi0xfDA7WD1jW2Y+PjJdfDA7Y1tmPj4y
XT1YKzE7aWYoKFl8MCk+MCl7Vj1ZO1U9WH1lbHNle2FlPVg7YnJlYWt9fX1lbHNle2FlPVd9YVth
ZV09bTthZj1hZH1lbHNle2FmPUp9aWYoKGFmfDApPT0oSXwwKSl7VT1iX1tjWyhjW3M+PjJdfDAp
KzI4Pj4yXSYzMV0oaiw0OCl8MDtWPWNbZj4+Ml18MDtjW2Y+PjJdPVYrMTthW1ZdPVV9ZWxzZXtV
PWFbQ118MDtWPVUmMjU1O2lmKChWJjF8MCk9PTApe2FnPVY+Pj4xfWVsc2V7YWc9Y1tGPj4yXXww
fWlmKChhZ3wwKT09MCl7YWg9YWY7YWk9MDthaj0wO2FrPS0xfWVsc2V7aWYoKFUmMSk9PTApe2Fs
PUR9ZWxzZXthbD1jW0U+PjJdfDB9YWg9YWY7YWk9MDthaj0wO2FrPWFbYWxdfDB9d2hpbGUoMSl7
ZG97aWYoKGFpfDApPT0oYWt8MCkpe1U9Y1tmPj4yXXwwO2NbZj4+Ml09VSsxO2FbVV09bjtVPWFq
KzF8MDtWPWFbQ118MDtNPVYmMjU1O2lmKChNJjF8MCk9PTApe2FtPU0+Pj4xfWVsc2V7YW09Y1tG
Pj4yXXwwfWlmKFU+Pj4wPj1hbT4+PjApe2FuPWFrO2FvPVU7YXA9MDticmVha31NPShWJjEpPT0w
O2lmKE0pe2FxPUR9ZWxzZXthcT1jW0U+PjJdfDB9aWYoKGFbYXErVXwwXXwwKT09MTI3KXthbj0t
MTthbz1VO2FwPTA7YnJlYWt9aWYoTSl7YXI9RH1lbHNle2FyPWNbRT4+Ml18MH1hbj1hW2FyK1V8
MF18MDthbz1VO2FwPTB9ZWxzZXthbj1hazthbz1hajthcD1haX19d2hpbGUoMCk7VT1haC0xfDA7
TT1hW1VdfDA7Vj1jW2Y+PjJdfDA7Y1tmPj4yXT1WKzE7YVtWXT1NO2lmKChVfDApPT0oSXwwKSl7
YnJlYWt9ZWxzZXthaD1VO2FpPWFwKzF8MDthaj1hbzthaz1hbn19fUo9Y1tmPj4yXXwwO2lmKChT
fDApPT0oSnwwKSl7SD1JO2JyZWFrIEwxNTgwfVc9Si0xfDA7aWYoUz4+PjA8Vz4+PjApe2FzPVM7
YXQ9V31lbHNle0g9STticmVhayBMMTU4MH13aGlsZSgxKXtXPWFbYXNdfDA7YVthc109YVthdF18
MDthW2F0XT1XO1c9YXMrMXwwO0o9YXQtMXwwO2lmKFc+Pj4wPEo+Pj4wKXthcz1XO2F0PUp9ZWxz
ZXtIPUk7YnJlYWt9fWJyZWFrfTtkZWZhdWx0OntIPUd9fX13aGlsZSgwKTtJPWgrMXwwO2lmKEk+
Pj4wPDQpe0c9SDtoPUl9ZWxzZXticmVha319aD1hW3RdfDA7dD1oJjI1NTtIPSh0JjF8MCk9PTA7
aWYoSCl7YXU9dD4+PjF9ZWxzZXthdT1jW3c+PjJdfDB9aWYoYXU+Pj4wPjEpe2lmKChoJjEpPT0w
KXthdj11O2F3PXV9ZWxzZXt1PWNbdj4+Ml18MDthdj11O2F3PXV9aWYoSCl7YXg9dD4+PjF9ZWxz
ZXtheD1jW3c+PjJdfDB9dz1hditheHwwO2F4PWNbZj4+Ml18MDthdj1hdysxfDA7aWYoKGF2fDAp
PT0od3wwKSl7YXk9YXh9ZWxzZXthdz1heDtheD1hdjt3aGlsZSgxKXthW2F3XT1hW2F4XXwwO2F2
PWF3KzF8MDt0PWF4KzF8MDtpZigodHwwKT09KHd8MCkpe2F5PWF2O2JyZWFrfWVsc2V7YXc9YXY7
YXg9dH19fWNbZj4+Ml09YXl9c3dpdGNoKGcmMTc2fDApe2Nhc2UgMTY6e3JldHVybn07Y2FzZSAz
Mjp7Y1tlPj4yXT1jW2Y+PjJdO3JldHVybn07ZGVmYXVsdDp7Y1tlPj4yXT1kO3JldHVybn19fWZ1
bmN0aW9uIGg3KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGg4KGEpe2E9
YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGg5KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTA7ZT1pO2k9
aSs2NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1lfDA7
bT1lKzE2fDA7bj1lKzI0fDA7bz1lKzMyfDA7cD1lKzQwfDA7cT1lKzQ4fDA7cj1xO3M9aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8Mzt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1p
KzR8MDtpPWkrNz4+Mzw8Mzt4PWk7aT1pKzEwMHwwO2k9aSs3Pj4zPDwzO3k9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2VqKG0saCk7Qj1tfDA7Qz1jW0I+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJdPTE1
Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVdfDAp
LTF8MDtEPWNbQys4Pj4yXXwwO2Rve2lmKChjW0MrMTI+PjJdfDApLUQ+PjI+Pj4wPmw+Pj4wKXtF
PWNbRCsobDw8Mik+PjJdfDA7aWYoKEV8MCk9PTApe2JyZWFrfUY9RTtHPWs7SD1rO0k9YVtIXXww
O0o9SSYyNTU7aWYoKEomMXwwKT09MCl7Sz1KPj4+MX1lbHNle0s9Y1trKzQ+PjJdfDB9aWYoKEt8
MCk9PTApe0w9MH1lbHNle2lmKChJJjEpPT0wKXtNPUcrMXwwfWVsc2V7TT1jW2srOD4+Ml18MH1J
PWFbTV18MDtMPUk8PDI0Pj4yND09KGJfW2NbKGNbRT4+Ml18MCkrMjg+PjJdJjMxXShGLDQ1KXww
KTw8MjQ+PjI0fWskKHJ8MCwwLDEyKTtrJCh0fDAsMCwxMik7ayQodnwwLDAsMTIpO2g1KGcsTCxt
LG4sbyxwLHEscyx1LHcpO0U9eHwwO0k9YVtIXXwwO0o9SSYyNTU7Tj0oSiYxfDApPT0wO2lmKE4p
e089Sj4+PjF9ZWxzZXtPPWNbays0Pj4yXXwwfVA9Y1t3Pj4yXXwwO2lmKChPfDApPihQfDApKXtp
ZihOKXtRPUo+Pj4xfWVsc2V7UT1jW2srND4+Ml18MH1KPWRbdl18MDtpZigoSiYxfDApPT0wKXtS
PUo+Pj4xfWVsc2V7Uj1jW3UrND4+Ml18MH1KPWRbdF18MDtpZigoSiYxfDApPT0wKXtTPUo+Pj4x
fWVsc2V7Uz1jW3MrND4+Ml18MH1UPShRLVA8PDF8MSkrUitTfDB9ZWxzZXtKPWRbdl18MDtpZigo
SiYxfDApPT0wKXtVPUo+Pj4xfWVsc2V7VT1jW3UrND4+Ml18MH1KPWRbdF18MDtpZigoSiYxfDAp
PT0wKXtWPUo+Pj4xfWVsc2V7Vj1jW3MrND4+Ml18MH1UPVUrMitWfDB9Sj1UK1B8MDtkb3tpZihK
Pj4+MD4xMDApe049a0ooSil8MDtpZigoTnwwKSE9MCl7Vz1OO1g9TjtZPUk7YnJlYWt9a1goKTtX
PTA7WD0wO1k9YVtIXXwwfWVsc2V7Vz1FO1g9MDtZPUl9fXdoaWxlKDApO2lmKChZJjEpPT0wKXta
PUcrMXwwO189RysxfDB9ZWxzZXtJPWNbays4Pj4yXXwwO1o9STtfPUl9ST1ZJjI1NTtpZigoSSYx
fDApPT0wKXskPUk+Pj4xfWVsc2V7JD1jW2srND4+Ml18MH1oNihXLHkseixjW2grND4+Ml18MCxf
LForJHwwLEYsTCxuLGFbb118MCxhW3BdfDAscSxzLHUsUCk7Y1tBPj4yXT1jW2Y+PjJdO2Y5KGIs
QSxXLGNbeT4+Ml18MCxjW3o+PjJdfDAsaCxqKTtpZigoWHwwKT09MCl7ZFAodSk7ZFAocyk7ZFAo
cSk7YWE9Y1tCPj4yXXwwO2FiPWFhfDA7YWM9ZHooYWIpfDA7aT1lO3JldHVybn1rSyhYKTtkUCh1
KTtkUChzKTtkUChxKTthYT1jW0I+PjJdfDA7YWI9YWF8MDthYz1keihhYil8MDtpPWU7cmV0dXJu
fX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBpYShi
LGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPStsO3Zh
ciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0w
LEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAs
Tz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrNTc2fDA7bT1m
O2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWV8MDtuPWUrMTIwfDA7
bz1lKzUyOHwwO3A9ZSs1MzZ8MDtxPWUrNTQ0fDA7cj1lKzU1MnwwO3M9ZSs1NjB8MDt0PXM7dT1p
O2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eD13O3k9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrNDAwfDA7QT1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RD1lKzE2
fDA7Y1tuPj4yXT1EO0U9ZSsxMjh8MDtGPWFaKER8MCwxMDAsMTM2MCwoRD1pLGk9aSs4fDAsaFtE
Pj4zXT1sLEQpfDApfDA7aT1EO2Rve2lmKEY+Pj4wPjk5KXtkb3tpZigoYVsxNjI2NF18MCk9PTAp
e2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxl
KDApO0c9Z2gobixjWzI5NThdfDAsMTM2MCwoRD1pLGk9aSs4fDAsaFtEPj4zXT1sLEQpfDApfDA7
aT1EO0g9Y1tuPj4yXXwwO2lmKChIfDApPT0wKXtrWCgpO0k9Y1tuPj4yXXwwfWVsc2V7ST1IfUg9
a0ooRzw8Mil8MDtKPUg7aWYoKEh8MCkhPTApe0s9SjtMPUc7TT1JO049SjticmVha31rWCgpO0s9
SjtMPUc7TT1JO049Sn1lbHNle0s9RTtMPUY7TT0wO049MH19d2hpbGUoMCk7ZWoobyxqKTtGPW98
MDtFPWNbRj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+PjJd
PTEyO2NbbSs4Pj4yXT0wO2RXKDE1Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO0k9Y1tFKzg+
PjJdfDA7ZG97aWYoKGNbRSsxMj4+Ml18MCktST4+Mj4+PjA+bT4+PjApe0Q9Y1tJKyhtPDwyKT4+
Ml18MDtpZigoRHwwKT09MCl7YnJlYWt9Sj1EO0c9Y1tuPj4yXXwwO0g9RytMfDA7Tz1jWyhjW0Q+
PjJdfDApKzQ4Pj4yXXwwO2NhW08mMTVdKEosRyxILEspfDA7aWYoKEx8MCk9PTApe1A9MH1lbHNl
e1A9KGFbY1tuPj4yXXwwXXwwKT09NDV9ayQodHwwLDAsMTIpO2skKHZ8MCwwLDEyKTtrJCh4fDAs
MCwxMik7aWIoZyxQLG8scCxxLHIscyx1LHcseSk7SD16fDA7Rz1jW3k+PjJdfDA7aWYoKEx8MCk+
KEd8MCkpe089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1E9Tz4+PjF9ZWxzZXtRPWNbdys0Pj4yXXww
fU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1I9Tz4+PjF9ZWxzZXtSPWNbdSs0Pj4yXXwwfVM9KEwt
Rzw8MXwxKStRK1J8MH1lbHNle089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1Q9Tz4+PjF9ZWxzZXtU
PWNbdys0Pj4yXXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1U9Tz4+PjF9ZWxzZXtVPWNbdSs0
Pj4yXXwwfVM9VCsyK1V8MH1PPVMrR3wwO2Rve2lmKE8+Pj4wPjEwMCl7RD1rSihPPDwyKXwwO1Y9
RDtpZigoRHwwKSE9MCl7Vz1WO1g9VjticmVha31rWCgpO1c9VjtYPVZ9ZWxzZXtXPUg7WD0wfX13
aGlsZSgwKTtpYyhXLEEsQixjW2orND4+Ml18MCxLLEsrKEw8PDIpfDAsSixQLHAsY1txPj4yXXww
LGNbcj4+Ml18MCxzLHUsdyxHKTtjW0M+PjJdPWNbZj4+Ml07Z3EoYixDLFcsY1tBPj4yXXwwLGNb
Qj4+Ml18MCxqLGspO2lmKChYfDApIT0wKXtrSyhYKX1lZSh3KTtlZSh1KTtkUChzKTtIPWNbRj4+
Ml18MDtkeihIKXwwO2lmKChOfDApIT0wKXtrSyhOKX1pZigoTXwwKT09MCl7aT1lO3JldHVybn1r
SyhNKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0
KX1mdW5jdGlvbiBpYihiLGQsZSxmLGcsaCxqLGssbCxtKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsRD0wLEU9MCxGPTAs
Rz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxV
PTA7bj1pO2k9aSs0MHwwO289bnwwO3A9bisxNnwwO3E9biszMnwwO3I9cTtzPWk7aT1pKzEyfDA7
aT1pKzc+PjM8PDM7dD1zO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7
aT1pKzc+PjM8PDM7eD13O3k9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PXk7QT1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO0c9RjtIPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztJPUg7Sj1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO0s9SjtMPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7TT1MO049aTtpPWkrMTJ8
MDtpPWkrNz4+Mzw8MztPPU47UD1jW2U+PjJdfDA7aWYoYil7aWYoKGNbNDA0MF18MCkhPS0xKXtj
W3A+PjJdPTE2MTYwO2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNjE2MCxwLDk2KX1wPShj
WzQwNDFdfDApLTF8MDtiPWNbUCs4Pj4yXXwwO2lmKChjW1ArMTI+PjJdfDApLWI+PjI+Pj4wPD1w
Pj4+MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQpfWU9Y1tiKyhwPDwyKT4+
Ml18MDtpZigoZXwwKT09MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQpfVE9
ZTtSPWNbZT4+Ml18MDtpZihkKXtiWltjW1IrNDQ+PjJdJjEyN10ocixRKTtyPWY7Qz1jW3E+PjJd
fDA7YVtyXT1DJjI1NTtDPUM+Pjg7YVtyKzF8MF09QyYyNTU7Qz1DPj44O2FbcisyfDBdPUMmMjU1
O0M9Qz4+ODthW3IrM3wwXT1DJjI1NTtiWltjWyhjW2U+PjJdfDApKzMyPj4yXSYxMjddKHMsUSk7
cj1sO2lmKChhW3JdJjEpPT0wKXtjW2wrND4+Ml09MDthW3JdPTB9ZWxzZXtjW2NbbCs4Pj4yXT4+
Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2Nbcj4+Ml09Y1t0Pj4yXTtjW3IrND4+Ml09Y1t0KzQ+
PjJdO2Nbcis4Pj4yXT1jW3QrOD4+Ml07ayQodHwwLDAsMTIpO2VlKHMpfWVsc2V7YlpbY1tSKzQw
Pj4yXSYxMjddKHYsUSk7dj1mO0M9Y1t1Pj4yXXwwO2Fbdl09QyYyNTU7Qz1DPj44O2FbdisxfDBd
PUMmMjU1O0M9Qz4+ODthW3YrMnwwXT1DJjI1NTtDPUM+Pjg7YVt2KzN8MF09QyYyNTU7YlpbY1so
Y1tlPj4yXXwwKSsyOD4+Ml0mMTI3XSh3LFEpO3Y9bDtpZigoYVt2XSYxKT09MCl7Y1tsKzQ+PjJd
PTA7YVt2XT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW3Y+
PjJdPWNbeD4+Ml07Y1t2KzQ+PjJdPWNbeCs0Pj4yXTtjW3YrOD4+Ml09Y1t4Kzg+PjJdO2skKHh8
MCwwLDEyKTtlZSh3KX13PWU7Y1tnPj4yXT1iMFtjWyhjW3c+PjJdfDApKzEyPj4yXSYxMjddKFEp
fDA7Y1toPj4yXT1iMFtjWyhjW3c+PjJdfDApKzE2Pj4yXSYxMjddKFEpfDA7YlpbY1soY1tlPj4y
XXwwKSsyMD4+Ml0mMTI3XSh5LFEpO3g9ajtpZigoYVt4XSYxKT09MCl7YVtqKzF8MF09MDthW3hd
PTB9ZWxzZXthW2Nbais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1t4Pj4yXT1jW3o+
PjJdO2NbeCs0Pj4yXT1jW3orND4+Ml07Y1t4Kzg+PjJdPWNbeis4Pj4yXTtrJCh6fDAsMCwxMik7
ZFAoeSk7YlpbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShBLFEpO2U9aztpZigoYVtlXSYxKT09
MCl7Y1trKzQ+PjJdPTA7YVtlXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJdPTB9
ZXooaywwKTtjW2U+PjJdPWNbQj4+Ml07Y1tlKzQ+PjJdPWNbQis0Pj4yXTtjW2UrOD4+Ml09Y1tC
Kzg+PjJdO2skKEJ8MCwwLDEyKTtlZShBKTtTPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10o
USl8MDtjW20+PjJdPVM7aT1uO3JldHVybn1lbHNle2lmKChjWzQwNDJdfDApIT0tMSl7Y1tvPj4y
XT0xNjE2ODtjW28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxNjgsbyw5Nil9bz0oY1s0MDQz
XXwwKS0xfDA7UT1jW1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1RPj4yPj4+MDw9bz4+PjAp
e1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1QPWNbUSsobzw8Mik+PjJdfDA7
aWYoKFB8MCk9PTApe1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1UPVA7VT1j
W1A+PjJdfDA7aWYoZCl7YlpbY1tVKzQ0Pj4yXSYxMjddKEUsVCk7RT1mO0M9Y1tEPj4yXXwwO2Fb
RV09QyYyNTU7Qz1DPj44O2FbRSsxfDBdPUMmMjU1O0M9Qz4+ODthW0UrMnwwXT1DJjI1NTtDPUM+
Pjg7YVtFKzN8MF09QyYyNTU7YlpbY1soY1tQPj4yXXwwKSszMj4+Ml0mMTI3XShGLFQpO0U9bDtp
ZigoYVtFXSYxKT09MCl7Y1tsKzQ+PjJdPTA7YVtFXT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJdPTA7
Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW0U+PjJdPWNbRz4+Ml07Y1tFKzQ+PjJdPWNbRys0Pj4yXTtj
W0UrOD4+Ml09Y1tHKzg+PjJdO2skKEd8MCwwLDEyKTtlZShGKX1lbHNle2JaW2NbVSs0MD4+Ml0m
MTI3XShJLFQpO0k9ZjtDPWNbSD4+Ml18MDthW0ldPUMmMjU1O0M9Qz4+ODthW0krMXwwXT1DJjI1
NTtDPUM+Pjg7YVtJKzJ8MF09QyYyNTU7Qz1DPj44O2FbSSszfDBdPUMmMjU1O2JaW2NbKGNbUD4+
Ml18MCkrMjg+PjJdJjEyN10oSixUKTtJPWw7aWYoKGFbSV0mMSk9PTApe2NbbCs0Pj4yXT0wO2Fb
SV09MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1tJPj4yXT1j
W0s+PjJdO2NbSSs0Pj4yXT1jW0srND4+Ml07Y1tJKzg+PjJdPWNbSys4Pj4yXTtrJChLfDAsMCwx
Mik7ZWUoSil9Sj1QO2NbZz4+Ml09YjBbY1soY1tKPj4yXXwwKSsxMj4+Ml0mMTI3XShUKXwwO2Nb
aD4+Ml09YjBbY1soY1tKPj4yXXwwKSsxNj4+Ml0mMTI3XShUKXwwO2JaW2NbKGNbUD4+Ml18MCkr
MjA+PjJdJjEyN10oTCxUKTtoPWo7aWYoKGFbaF0mMSk9PTApe2FbaisxfDBdPTA7YVtoXT0wfWVs
c2V7YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbaD4+Ml09Y1tNPj4yXTtj
W2grND4+Ml09Y1tNKzQ+PjJdO2NbaCs4Pj4yXT1jW00rOD4+Ml07ayQoTXwwLDAsMTIpO2RQKEwp
O2JaW2NbKGNbUD4+Ml18MCkrMjQ+PjJdJjEyN10oTixUKTtQPWs7aWYoKGFbUF0mMSk9PTApe2Nb
ays0Pj4yXT0wO2FbUF09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6KGss
MCk7Y1tQPj4yXT1jW08+PjJdO2NbUCs0Pj4yXT1jW08rND4+Ml07Y1tQKzg+PjJdPWNbTys4Pj4y
XTtrJChPfDAsMCwxMik7ZWUoTik7Uz1iMFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYxMjddKFQpfDA7
Y1ttPj4yXT1TO2k9bjtyZXR1cm59fWZ1bmN0aW9uIGljKGIsZCxlLGYsZyxoLGksaixrLGwsbSxu
LG8scCxxKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtr
PWt8MDtsPWx8MDttPW18MDtuPW58MDtvPW98MDtwPXB8MDtxPXF8MDt2YXIgcj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9
MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAs
YWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFz
PTAsYXQ9MCxhdT0wLGF2PTAsYXc9MDtjW2U+PjJdPWI7cj1pO3M9cDt0PXArNHwwO3U9cCs4fDA7
cD1vO3Y9KGYmNTEyfDApPT0wO3c9bys0fDA7eD1vKzh8MDtvPWk7eT0ocXwwKT4wO3o9bjtBPW4r
MXwwO0I9bis4fDA7Qz1uKzR8MDtuPWc7Zz0wO3doaWxlKDEpe0wxOTAxOmRve3N3aXRjaChhW2sr
Z3wwXXwwKXtjYXNlIDA6e2NbZD4+Ml09Y1tlPj4yXTtEPW47YnJlYWt9O2Nhc2UgMTp7Y1tkPj4y
XT1jW2U+PjJdO0U9Yl9bY1soY1tyPj4yXXwwKSs0ND4+Ml0mMzFdKGksMzIpfDA7Rj1jW2U+PjJd
fDA7Y1tlPj4yXT1GKzQ7Y1tGPj4yXT1FO0Q9bjticmVha307Y2FzZSAzOntFPWFbc118MDtGPUUm
MjU1O2lmKChGJjF8MCk9PTApe0c9Rj4+PjF9ZWxzZXtHPWNbdD4+Ml18MH1pZigoR3wwKT09MCl7
RD1uO2JyZWFrIEwxOTAxfWlmKChFJjEpPT0wKXtIPXR9ZWxzZXtIPWNbdT4+Ml18MH1FPWNbSD4+
Ml18MDtGPWNbZT4+Ml18MDtjW2U+PjJdPUYrNDtjW0Y+PjJdPUU7RD1uO2JyZWFrfTtjYXNlIDI6
e0U9YVtwXXwwO0Y9RSYyNTU7ST0oRiYxfDApPT0wO2lmKEkpe0o9Rj4+PjF9ZWxzZXtKPWNbdz4+
Ml18MH1pZigoSnwwKT09MHx2KXtEPW47YnJlYWsgTDE5MDF9aWYoKEUmMSk9PTApe0s9dztMPXc7
TT13fWVsc2V7RT1jW3g+PjJdfDA7Sz1FO0w9RTtNPUV9aWYoSSl7Tj1GPj4+MX1lbHNle049Y1t3
Pj4yXXwwfUY9SysoTjw8Mil8MDtJPWNbZT4+Ml18MDtpZigoTHwwKT09KEZ8MCkpe089SX1lbHNl
e0U9KEsrKE4tMTw8MikrKC1NfDApfDApPj4+MjtQPUw7UT1JO3doaWxlKDEpe2NbUT4+Ml09Y1tQ
Pj4yXTtSPVArNHwwO2lmKChSfDApPT0oRnwwKSl7YnJlYWt9UD1SO1E9USs0fDB9Tz1JKyhFKzE8
PDIpfDB9Y1tlPj4yXT1PO0Q9bjticmVha307Y2FzZSA0OntRPWNbZT4+Ml18MDtQPWo/bis0fDA6
bjtGPVA7d2hpbGUoMSl7aWYoRj4+PjA+PWg+Pj4wKXticmVha31pZihiMVtjWyhjW28+PjJdfDAp
KzEyPj4yXSY2M10oaSwyMDQ4LGNbRj4+Ml18MCl8MCl7Rj1GKzR8MH1lbHNle2JyZWFrfX1pZih5
KXtpZihGPj4+MD5QPj4+MCl7RT1GO0k9cTtkb3tFPUUtNHwwO1I9Y1tFPj4yXXwwO1M9Y1tlPj4y
XXwwO2NbZT4+Ml09Uys0O2NbUz4+Ml09UjtJPUktMXwwO1Q9KEl8MCk+MDt9d2hpbGUoRT4+PjA+
UD4+PjAmVCk7aWYoVCl7VT1JO1Y9RTtXPTE2MzB9ZWxzZXtYPTA7WT1JO1o9RX19ZWxzZXtVPXE7
Vj1GO1c9MTYzMH1pZigoV3wwKT09MTYzMCl7Vz0wO1g9Yl9bY1soY1tyPj4yXXwwKSs0ND4+Ml0m
MzFdKGksNDgpfDA7WT1VO1o9Vn1SPWNbZT4+Ml18MDtjW2U+PjJdPVIrNDtpZigoWXwwKT4wKXtT
PVk7Xz1SO3doaWxlKDEpe2NbXz4+Ml09WDskPVMtMXwwO2FhPWNbZT4+Ml18MDtjW2U+PjJdPWFh
KzQ7aWYoKCR8MCk+MCl7Uz0kO189YWF9ZWxzZXthYj1hYTticmVha319fWVsc2V7YWI9Un1jW2Fi
Pj4yXT1sO2FjPVp9ZWxzZXthYz1GfWlmKChhY3wwKT09KFB8MCkpe189Yl9bY1soY1tyPj4yXXww
KSs0ND4+Ml0mMzFdKGksNDgpfDA7Uz1jW2U+PjJdfDA7Y1tlPj4yXT1TKzQ7Y1tTPj4yXT1ffWVs
c2V7Xz1hW3pdfDA7Uz1fJjI1NTtpZigoUyYxfDApPT0wKXthZD1TPj4+MX1lbHNle2FkPWNbQz4+
Ml18MH1pZigoYWR8MCk9PTApe2FlPWFjO2FmPTA7YWc9MDthaD0tMX1lbHNle2lmKChfJjEpPT0w
KXthaT1BfWVsc2V7YWk9Y1tCPj4yXXwwfWFlPWFjO2FmPTA7YWc9MDthaD1hW2FpXXwwfXdoaWxl
KDEpe2Rve2lmKChhZnwwKT09KGFofDApKXtfPWNbZT4+Ml18MDtjW2U+PjJdPV8rNDtjW18+PjJd
PW07Xz1hZysxfDA7Uz1hW3pdfDA7RT1TJjI1NTtpZigoRSYxfDApPT0wKXthaj1FPj4+MX1lbHNl
e2FqPWNbQz4+Ml18MH1pZihfPj4+MD49YWo+Pj4wKXthaz1haDthbD1fO2FtPTA7YnJlYWt9RT0o
UyYxKT09MDtpZihFKXthbj1BfWVsc2V7YW49Y1tCPj4yXXwwfWlmKChhW2FuK198MF18MCk9PTEy
Nyl7YWs9LTE7YWw9XzthbT0wO2JyZWFrfWlmKEUpe2FvPUF9ZWxzZXthbz1jW0I+PjJdfDB9YWs9
YVthbytffDBdfDA7YWw9XzthbT0wfWVsc2V7YWs9YWg7YWw9YWc7YW09YWZ9fXdoaWxlKDApO189
YWUtNHwwO0U9Y1tfPj4yXXwwO1M9Y1tlPj4yXXwwO2NbZT4+Ml09Uys0O2NbUz4+Ml09RTtpZigo
X3wwKT09KFB8MCkpe2JyZWFrfWVsc2V7YWU9XzthZj1hbSsxfDA7YWc9YWw7YWg9YWt9fX1GPWNb
ZT4+Ml18MDtpZigoUXwwKT09KEZ8MCkpe0Q9UDticmVhayBMMTkwMX1SPUYtNHwwO2lmKFE+Pj4w
PFI+Pj4wKXthcD1RO2FxPVJ9ZWxzZXtEPVA7YnJlYWsgTDE5MDF9d2hpbGUoMSl7Uj1jW2FwPj4y
XXwwO2NbYXA+PjJdPWNbYXE+PjJdO2NbYXE+PjJdPVI7Uj1hcCs0fDA7Rj1hcS00fDA7aWYoUj4+
PjA8Rj4+PjApe2FwPVI7YXE9Rn1lbHNle0Q9UDticmVha319YnJlYWt9O2RlZmF1bHQ6e0Q9bn19
fXdoaWxlKDApO1A9ZysxfDA7aWYoUD4+PjA8NCl7bj1EO2c9UH1lbHNle2JyZWFrfX1nPWFbc118
MDtzPWcmMjU1O0Q9KHMmMXwwKT09MDtpZihEKXthcj1zPj4+MX1lbHNle2FyPWNbdD4+Ml18MH1p
Zihhcj4+PjA+MSl7aWYoKGcmMSk9PTApe2FzPXQ7YXQ9dDthdT10fWVsc2V7Zz1jW3U+PjJdfDA7
YXM9ZzthdD1nO2F1PWd9aWYoRCl7YXY9cz4+PjF9ZWxzZXthdj1jW3Q+PjJdfDB9dD1hcysoYXY8
PDIpfDA7cz1jW2U+PjJdfDA7RD1hdCs0fDA7aWYoKER8MCk9PSh0fDApKXthdz1zfWVsc2V7YXQ9
KChhcysoYXYtMjw8MikrKC1hdXwwKXwwKT4+PjIpKzF8MDthdT1zO2F2PUQ7d2hpbGUoMSl7Y1th
dT4+Ml09Y1thdj4+Ml07RD1hdis0fDA7aWYoKER8MCk9PSh0fDApKXticmVha31lbHNle2F1PWF1
KzR8MDthdj1EfX1hdz1zKyhhdDw8Mil8MH1jW2U+PjJdPWF3fXN3aXRjaChmJjE3NnwwKXtjYXNl
IDMyOntjW2Q+PjJdPWNbZT4+Ml07cmV0dXJufTtjYXNlIDE2OntyZXR1cm59O2RlZmF1bHQ6e2Nb
ZD4+Ml09YjtyZXR1cm59fX1mdW5jdGlvbiBpZChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVy
bn1mdW5jdGlvbiBpZShhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBpZyhiLGQsZSl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MDtpZigoYVtkXSYxKT09MCl7Zj1kKzF8MH1lbHNle2Y9
Y1tkKzg+PjJdfDB9ZD1hOChmfDAsMjAwKXwwO3JldHVybiBkPj4+KCgoZHwwKSE9LTF8MCk+Pj4w
KXwwfWZ1bmN0aW9uIGloKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9
aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9
MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0w
LFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTA7ZT1pO2k9aSs2NHwwO2w9ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2fDA7bj1lKzI0
fDA7bz1lKzMyfDA7cD1lKzQwfDA7cT1lKzQ4fDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8
Mzt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzR8MDtpPWkrNz4+Mzw8
Mzt4PWk7aT1pKzQwMHwwO3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO0E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2VqKG0saCk7Qj1tfDA7Qz1jW0I+PjJdfDA7
aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09
MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8MDtEPWNbQys4Pj4yXXwwO2Rve2lmKChj
W0MrMTI+PjJdfDApLUQ+PjI+Pj4wPmw+Pj4wKXtFPWNbRCsobDw8Mik+PjJdfDA7aWYoKEV8MCk9
PTApe2JyZWFrfUY9RTtHPWs7SD1hW0ddfDA7ST1IJjI1NTtpZigoSSYxfDApPT0wKXtKPUk+Pj4x
fWVsc2V7Sj1jW2srND4+Ml18MH1pZigoSnwwKT09MCl7Sz0wfWVsc2V7aWYoKEgmMSk9PTApe0w9
ays0fDB9ZWxzZXtMPWNbays4Pj4yXXwwfUg9Y1tMPj4yXXwwO0s9KEh8MCk9PShiX1tjWyhjW0U+
PjJdfDApKzQ0Pj4yXSYzMV0oRiw0NSl8MCl9ayQocnwwLDAsMTIpO2skKHR8MCwwLDEyKTtrJCh2
fDAsMCwxMik7aWIoZyxLLG0sbixvLHAscSxzLHUsdyk7RT14fDA7SD1hW0ddfDA7ST1IJjI1NTtN
PShJJjF8MCk9PTA7aWYoTSl7Tj1JPj4+MX1lbHNle049Y1trKzQ+PjJdfDB9Tz1jW3c+PjJdfDA7
aWYoKE58MCk+KE98MCkpe2lmKE0pe1A9ST4+PjF9ZWxzZXtQPWNbays0Pj4yXXwwfUk9ZFt2XXww
O2lmKChJJjF8MCk9PTApe1E9ST4+PjF9ZWxzZXtRPWNbdSs0Pj4yXXwwfUk9ZFt0XXwwO2lmKChJ
JjF8MCk9PTApe1I9ST4+PjF9ZWxzZXtSPWNbcys0Pj4yXXwwfVM9KFAtTzw8MXwxKStRK1J8MH1l
bHNle0k9ZFt2XXwwO2lmKChJJjF8MCk9PTApe1Q9ST4+PjF9ZWxzZXtUPWNbdSs0Pj4yXXwwfUk9
ZFt0XXwwO2lmKChJJjF8MCk9PTApe1U9ST4+PjF9ZWxzZXtVPWNbcys0Pj4yXXwwfVM9VCsyK1V8
MH1JPVMrT3wwO2Rve2lmKEk+Pj4wPjEwMCl7TT1rSihJPDwyKXwwO1Y9TTtpZigoTXwwKSE9MCl7
Vz1WO1g9VjtZPUg7YnJlYWt9a1goKTtXPVY7WD1WO1k9YVtHXXwwfWVsc2V7Vz1FO1g9MDtZPUh9
fXdoaWxlKDApO2lmKChZJjEpPT0wKXtaPWsrNHwwO189ays0fDB9ZWxzZXtIPWNbays4Pj4yXXww
O1o9SDtfPUh9SD1ZJjI1NTtpZigoSCYxfDApPT0wKXskPUg+Pj4xfWVsc2V7JD1jW2srND4+Ml18
MH1pYyhXLHkseixjW2grND4+Ml18MCxfLForKCQ8PDIpfDAsRixLLG4sY1tvPj4yXXwwLGNbcD4+
Ml18MCxxLHMsdSxPKTtjW0E+PjJdPWNbZj4+Ml07Z3EoYixBLFcsY1t5Pj4yXXwwLGNbej4+Ml18
MCxoLGopO2lmKChYfDApPT0wKXtlZSh1KTtlZShzKTtkUChxKTthYT1jW0I+PjJdfDA7YWI9YWF8
MDthYz1keihhYil8MDtpPWU7cmV0dXJufWtLKFgpO2VlKHUpO2VlKHMpO2RQKHEpO2FhPWNbQj4+
Ml18MDthYj1hYXwwO2FjPWR6KGFiKXwwO2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtr
cShlKTtibChlfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGlpKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wO2Q9aTtpPWkrMTZ8MDtqPWR8MDtrPWo7ayQoa3wwLDAs
MTIpO2w9YjttPWg7bj1hW2hdfDA7aWYoKG4mMSk9PTApe289bSsxfDA7cD1tKzF8MH1lbHNle209
Y1toKzg+PjJdfDA7bz1tO3A9bX1tPW4mMjU1O2lmKChtJjF8MCk9PTApe3E9bT4+PjF9ZWxzZXtx
PWNbaCs0Pj4yXXwwfWg9bytxfDA7ZG97aWYocD4+PjA8aD4+PjApe3E9cDtkb3tkVShqLGFbcV18
MCk7cT1xKzF8MDt9d2hpbGUocT4+PjA8aD4+PjApO3E9KGV8MCk9PS0xPy0xOmU8PDE7aWYoKGFb
a10mMSk9PTApe3I9cTtzPTE3NjI7YnJlYWt9dD1jW2orOD4+Ml18MDt1PXF9ZWxzZXtyPShlfDAp
PT0tMT8tMTplPDwxO3M9MTc2Mn19d2hpbGUoMCk7aWYoKHN8MCk9PTE3NjIpe3Q9aisxfDA7dT1y
fXI9Yk0odXwwLGZ8MCxnfDAsdHwwKXwwO2skKGx8MCwwLDEyKTtsPWswKHJ8MCl8MDt0PXIrbHww
O2lmKChsfDApPjApe3Y9cn1lbHNle2RQKGopO2k9ZDtyZXR1cm59ZG97ZFUoYixhW3ZdfDApO3Y9
disxfDA7fXdoaWxlKHY+Pj4wPHQ+Pj4wKTtkUChqKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGlqKGEs
Yil7YT1hfDA7Yj1ifDA7YTEoKChifDApPT0tMT8tMTpiPDwxKXwwKXwwO3JldHVybn1mdW5jdGlv
biBpayhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpbChhKXthPWF8MDtk
ZShhfDApO3JldHVybn1mdW5jdGlvbiBpbShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9
MDtpZigoYVtkXSYxKT09MCl7Zj1kKzF8MH1lbHNle2Y9Y1tkKzg+PjJdfDB9ZD1hOChmfDAsMjAw
KXwwO3JldHVybiBkPj4+KCgoZHwwKSE9LTF8MCk+Pj4wKXwwfWZ1bmN0aW9uIGlvKGEsYil7YT1h
fDA7Yj1ifDA7YTEoKChifDApPT0tMT8tMTpiPDwxKXwwKXwwO3JldHVybn1mdW5jdGlvbiBpcChi
LGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2Q9aTtpPWkrMjI0
fDA7aj1kfDA7az1kKzh8MDtsPWQrNDB8MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8MDtwPWQr
MTkyfDA7cT1kKzIwMHwwO3I9ZCsyMDh8MDtzPXI7dD1pO2k9aSs4fDA7dT1pO2k9aSs4fDA7ayQo
c3wwLDAsMTIpO3Y9Yjt3PXR8MDtjW3QrND4+Ml09MDtjW3Q+PjJdPTQxMDQ7eD1hW2hdfDA7aWYo
KHgmMSk9PTApe3k9aCs0fDA7ej1oKzR8MH1lbHNle0E9Y1toKzg+PjJdfDA7eT1BO3o9QX1BPXgm
MjU1O2lmKChBJjF8MCk9PTApe0I9QT4+PjF9ZWxzZXtCPWNbaCs0Pj4yXXwwfWg9eSsoQjw8Mil8
MDtMMjEzNTpkb3tpZih6Pj4+MDxoPj4+MCl7Qj10O3k9a3wwO0E9ayszMnwwO3g9ejtDPTQxMDQ7
d2hpbGUoMSl7Y1ttPj4yXT14O0Q9KGI2W2NbQysxMj4+Ml0mMzFdKHcsaix4LGgsbSx5LEEsbCl8
MCk9PTI7RT1jW20+PjJdfDA7aWYoRHwoRXwwKT09KHh8MCkpe2JyZWFrfWlmKHk+Pj4wPChjW2w+
PjJdfDApPj4+MCl7RD15O2Rve2RVKHIsYVtEXXwwKTtEPUQrMXwwO313aGlsZShEPj4+MDwoY1ts
Pj4yXXwwKT4+PjApO0Y9Y1ttPj4yXXwwfWVsc2V7Rj1FfWlmKEY+Pj4wPj1oPj4+MCl7YnJlYWsg
TDIxMzV9eD1GO0M9Y1tCPj4yXXwwfUI9Yk8oOCl8MDtkRShCLDkwNCk7YmwoQnwwLDgxOTIsMjIp
fX13aGlsZSgwKTtkZSh0fDApO2lmKChhW3NdJjEpPT0wKXtHPXIrMXwwfWVsc2V7Rz1jW3IrOD4+
Ml18MH1zPWJNKCgoZXwwKT09LTE/LTE6ZTw8MSl8MCxmfDAsZ3wwLEd8MCl8MDtrJCh2fDAsMCwx
Mik7dj11fDA7Y1t1KzQ+PjJdPTA7Y1t1Pj4yXT00MDQ4O0c9azAoc3wwKXwwO2c9cytHfDA7aWYo
KEd8MCk8MSl7SD11fDA7ZGUoSCk7ZFAocik7aT1kO3JldHVybn1HPXU7Zj1nO2U9b3wwO3Q9bysx
Mjh8MDtvPXM7cz00MDQ4O3doaWxlKDEpe2NbcT4+Ml09bztGPShiNltjW3MrMTY+PjJdJjMxXSh2
LG4sbywoZi1vfDApPjMyP28rMzJ8MDpnLHEsZSx0LHApfDApPT0yO2g9Y1txPj4yXXwwO2lmKEZ8
KGh8MCk9PShvfDApKXticmVha31pZihlPj4+MDwoY1twPj4yXXwwKT4+PjApe0Y9ZTtkb3tlaChi
LGNbRj4+Ml18MCk7Rj1GKzR8MDt9d2hpbGUoRj4+PjA8KGNbcD4+Ml18MCk+Pj4wKTtJPWNbcT4+
Ml18MH1lbHNle0k9aH1pZihJPj4+MD49Zz4+PjApe0o9MTgyOTticmVha31vPUk7cz1jW0c+PjJd
fDB9aWYoKEp8MCk9PTE4Mjkpe0g9dXwwO2RlKEgpO2RQKHIpO2k9ZDtyZXR1cm59ZD1iTyg4KXww
O2RFKGQsOTA0KTtibChkfDAsODE5MiwyMil9ZnVuY3Rpb24gaXEoYil7Yj1ifDA7dmFyIGQ9MCxl
PTAsZj0wO2NbYj4+Ml09MzU2ODtkPWIrOHwwO2U9Y1tkPj4yXXwwO2Rve2lmKChhWzE2MjY0XXww
KT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19
d2hpbGUoMCk7aWYoKGV8MCk9PShjWzI5NThdfDApKXtmPWJ8MDtkZShmKTtyZXR1cm59YTcoY1tk
Pj4yXXwwKTtmPWJ8MDtkZShmKTtyZXR1cm59ZnVuY3Rpb24gaXIoYSl7YT1hfDA7YT1iTyg4KXww
O2RBKGEsMTM1Mik7Y1thPj4yXT0yNTA0O2JsKGF8MCw4MjA4LDMyKX1mdW5jdGlvbiBpcyhiLGQp
e2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxE
PTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTA7ZT1pO2k9aSs0NDh8MDtmPWV8
MDtnPWUrMTZ8MDtoPWUrMzJ8MDtqPWUrNDh8MDtrPWUrNjR8MDtsPWUrODB8MDttPWUrOTZ8MDtu
PWUrMTEyfDA7bz1lKzEyOHwwO3A9ZSsxNDR8MDtxPWUrMTYwfDA7cj1lKzE3NnwwO3M9ZSsxOTJ8
MDt0PWUrMjA4fDA7dT1lKzIyNHwwO3Y9ZSsyNDB8MDt3PWUrMjU2fDA7eD1lKzI3MnwwO3k9ZSsy
ODh8MDt6PWUrMzA0fDA7QT1lKzMyMHwwO0I9ZSszMzZ8MDtDPWUrMzUyfDA7RD1lKzM2OHwwO0U9
ZSszODR8MDtGPWUrNDAwfDA7Rz1lKzQxNnwwO0g9ZSs0MzJ8MDtjW2IrND4+Ml09ZC0xO2NbYj4+
Ml09MzgyNDtkPWIrOHwwO0k9YisxMnwwO2FbYisxMzZ8MF09MTtKPWIrMjR8MDtLPUo7Y1tJPj4y
XT1LO2NbZD4+Ml09SztjW2IrMTY+PjJdPUorMTEyO0o9Mjg7TD1LO2Rve2lmKChMfDApPT0wKXtN
PTB9ZWxzZXtjW0w+PjJdPTA7TT1jW0k+PjJdfDB9TD1NKzR8MDtjW0k+PjJdPUw7Sj1KLTF8MDt9
d2hpbGUoKEp8MCkhPTApO2RaKGIrMTQ0fDAsMTM0NCwxKTtKPWNbZD4+Ml18MDtkPWNbST4+Ml18
MDtpZigoSnwwKSE9KGR8MCkpe2NbST4+Ml09ZCsofigoZC00KygtSnwwKXwwKT4+PjIpPDwyKX1j
WzM2MTddPTA7Y1szNjE2XT0zNTI4O2lmKChjWzM4NDRdfDApIT0tMSl7Y1tIPj4yXT0xNTM3Njtj
W0grND4+Ml09MTI7Y1tIKzg+PjJdPTA7ZFcoMTUzNzYsSCw5Nil9aUooYiwxNDQ2NCwoY1szODQ1
XXwwKS0xfDApO2NbMzYxNV09MDtjWzM2MTRdPTM0ODg7aWYoKGNbMzg0Ml18MCkhPS0xKXtjW0c+
PjJdPTE1MzY4O2NbRys0Pj4yXT0xMjtjW0crOD4+Ml09MDtkVygxNTM2OCxHLDk2KX1pSihiLDE0
NDU2LChjWzM4NDNdfDApLTF8MCk7Y1szNjY3XT0wO2NbMzY2Nl09MzkzNjtjWzM2NjhdPTA7YVsx
NDY3Nl09MDtjWzM2NjhdPWNbKGE2KCl8MCk+PjJdO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tGPj4y
XT0xNTY5NjtjW0YrND4+Ml09MTI7Y1tGKzg+PjJdPTA7ZFcoMTU2OTYsRiw5Nil9aUooYiwxNDY2
NCwoY1szOTI1XXwwKS0xfDApO2NbMzY2NV09MDtjWzM2NjRdPTM4NTY7aWYoKGNbMzkyMl18MCkh
PS0xKXtjW0U+PjJdPTE1Njg4O2NbRSs0Pj4yXT0xMjtjW0UrOD4+Ml09MDtkVygxNTY4OCxFLDk2
KX1pSihiLDE0NjU2LChjWzM5MjNdfDApLTF8MCk7Y1szNjE5XT0wO2NbMzYxOF09MzYyNDtpZigo
Y1szODQ4XXwwKSE9LTEpe2NbRD4+Ml09MTUzOTI7Y1tEKzQ+PjJdPTEyO2NbRCs4Pj4yXT0wO2RX
KDE1MzkyLEQsOTYpfWlKKGIsMTQ0NzIsKGNbMzg0OV18MCktMXwwKTtjWzUyMV09MDtjWzUyMF09
MzU2ODtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNb
Mjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2NbNTIyXT1jWzI5NThdO2lmKChjWzM4NDZd
fDApIT0tMSl7Y1tDPj4yXT0xNTM4NDtjW0MrND4+Ml09MTI7Y1tDKzg+PjJdPTA7ZFcoMTUzODQs
Qyw5Nil9aUooYiwyMDgwLChjWzM4NDddfDApLTF8MCk7Y1szNjIxXT0wO2NbMzYyMF09MzY4MDtp
ZigoY1szODUwXXwwKSE9LTEpe2NbQj4+Ml09MTU0MDA7Y1tCKzQ+PjJdPTEyO2NbQis4Pj4yXT0w
O2RXKDE1NDAwLEIsOTYpfWlKKGIsMTQ0ODAsKGNbMzg1MV18MCktMXwwKTtjWzM2MjNdPTA7Y1sz
NjIyXT0zNzM2O2lmKChjWzM4NTJdfDApIT0tMSl7Y1tBPj4yXT0xNTQwODtjW0ErND4+Ml09MTI7
Y1tBKzg+PjJdPTA7ZFcoMTU0MDgsQSw5Nil9aUooYiwxNDQ4OCwoY1szODUzXXwwKS0xfDApO2Nb
MzU5N109MDtjWzM1OTZdPTMwMzI7YVsxNDM5Ml09NDY7YVsxNDM5M109NDQ7ayQoMTQzOTYsMCwx
Mik7aWYoKGNbMzgyOF18MCkhPS0xKXtjW3o+PjJdPTE1MzEyO2Nbeis0Pj4yXT0xMjtjW3orOD4+
Ml09MDtkVygxNTMxMix6LDk2KX1pSihiLDE0Mzg0LChjWzM4MjldfDApLTF8MCk7Y1s1MTNdPTA7
Y1s1MTJdPTI5ODQ7Y1s1MTRdPTQ2O2NbNTE1XT00NDtrJCgyMDY0LDAsMTIpO2lmKChjWzM4MjZd
fDApIT0tMSl7Y1t5Pj4yXT0xNTMwNDtjW3krND4+Ml09MTI7Y1t5Kzg+PjJdPTA7ZFcoMTUzMDQs
eSw5Nil9aUooYiwyMDQ4LChjWzM4MjddfDApLTF8MCk7Y1szNjEzXT0wO2NbMzYxMl09MzQxNjtp
ZigoY1szODQwXXwwKSE9LTEpe2NbeD4+Ml09MTUzNjA7Y1t4KzQ+PjJdPTEyO2NbeCs4Pj4yXT0w
O2RXKDE1MzYwLHgsOTYpfWlKKGIsMTQ0NDgsKGNbMzg0MV18MCktMXwwKTtjWzM2MTFdPTA7Y1sz
NjEwXT0zMzQ0O2lmKChjWzM4MzhdfDApIT0tMSl7Y1t3Pj4yXT0xNTM1MjtjW3crND4+Ml09MTI7
Y1t3Kzg+PjJdPTA7ZFcoMTUzNTIsdyw5Nil9aUooYiwxNDQ0MCwoY1szODM5XXwwKS0xfDApO2Nb
MzYwOV09MDtjWzM2MDhdPTMyODA7aWYoKGNbMzgzNl18MCkhPS0xKXtjW3Y+PjJdPTE1MzQ0O2Nb
dis0Pj4yXT0xMjtjW3YrOD4+Ml09MDtkVygxNTM0NCx2LDk2KX1pSihiLDE0NDMyLChjWzM4Mzdd
fDApLTF8MCk7Y1szNjA3XT0wO2NbMzYwNl09MzIxNjtpZigoY1szODM0XXwwKSE9LTEpe2NbdT4+
Ml09MTUzMzY7Y1t1KzQ+PjJdPTEyO2NbdSs4Pj4yXT0wO2RXKDE1MzM2LHUsOTYpfWlKKGIsMTQ0
MjQsKGNbMzgzNV18MCktMXwwKTtjWzM2NzddPTA7Y1szNjc2XT00OTEyO2lmKChjWzQwNDZdfDAp
IT0tMSl7Y1t0Pj4yXT0xNjE4NDtjW3QrND4+Ml09MTI7Y1t0Kzg+PjJdPTA7ZFcoMTYxODQsdCw5
Nil9aUooYiwxNDcwNCwoY1s0MDQ3XXwwKS0xfDApO2NbMzY3NV09MDtjWzM2NzRdPTQ4NDg7aWYo
KGNbNDA0NF18MCkhPS0xKXtjW3M+PjJdPTE2MTc2O2Nbcys0Pj4yXT0xMjtjW3MrOD4+Ml09MDtk
VygxNjE3NixzLDk2KX1pSihiLDE0Njk2LChjWzQwNDVdfDApLTF8MCk7Y1szNjczXT0wO2NbMzY3
Ml09NDc4NDtpZigoY1s0MDQyXXwwKSE9LTEpe2Nbcj4+Ml09MTYxNjg7Y1tyKzQ+PjJdPTEyO2Nb
cis4Pj4yXT0wO2RXKDE2MTY4LHIsOTYpfWlKKGIsMTQ2ODgsKGNbNDA0M118MCktMXwwKTtjWzM2
NzFdPTA7Y1szNjcwXT00NzIwO2lmKChjWzQwNDBdfDApIT0tMSl7Y1txPj4yXT0xNjE2MDtjW3Er
ND4+Ml09MTI7Y1txKzg+PjJdPTA7ZFcoMTYxNjAscSw5Nil9aUooYiwxNDY4MCwoY1s0MDQxXXww
KS0xfDApO2NbMzU5NV09MDtjWzM1OTRdPTI2ODg7aWYoKGNbMzgxNl18MCkhPS0xKXtjW3A+PjJd
PTE1MjY0O2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNTI2NCxwLDk2KX1pSihiLDE0Mzc2
LChjWzM4MTddfDApLTF8MCk7Y1szNTkzXT0wO2NbMzU5Ml09MjY0ODtpZigoY1szODE0XXwwKSE9
LTEpe2Nbbz4+Ml09MTUyNTY7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE1MjU2LG8sOTYp
fWlKKGIsMTQzNjgsKGNbMzgxNV18MCktMXwwKTtjWzM1OTFdPTA7Y1szNTkwXT0yNjA4O2lmKChj
WzM4MTJdfDApIT0tMSl7Y1tuPj4yXT0xNTI0ODtjW24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7ZFco
MTUyNDgsbiw5Nil9aUooYiwxNDM2MCwoY1szODEzXXwwKS0xfDApO2NbMzU4OV09MDtjWzM1ODhd
PTI1Njg7aWYoKGNbMzgxMF18MCkhPS0xKXtjW20+PjJdPTE1MjQwO2NbbSs0Pj4yXT0xMjtjW20r
OD4+Ml09MDtkVygxNTI0MCxtLDk2KX1pSihiLDE0MzUyLChjWzM4MTFdfDApLTF8MCk7Y1s1MDld
PTA7Y1s1MDhdPTI4ODg7Y1s1MTBdPTI5MzY7aWYoKGNbMzgyNF18MCkhPS0xKXtjW2w+PjJdPTE1
Mjk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTI5NixsLDk2KX1pSihiLDIwMzIsKGNb
MzgyNV18MCktMXwwKTtjWzUwNV09MDtjWzUwNF09Mjc5MjtjWzUwNl09Mjg0MDtpZigoY1szODIy
XXwwKSE9LTEpe2Nbaz4+Ml09MTUyODg7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1Mjg4
LGssOTYpfWlKKGIsMjAxNiwoY1szODIzXXwwKS0xfDApO2NbNTAxXT0wO2NbNTAwXT0zNzkyO2Rv
e2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1h
UygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Y1s1MDJdPWNbMjk1OF07Y1s1MDBdPTI3NjA7aWYoKGNb
MzgyMF18MCkhPS0xKXtjW2o+PjJdPTE1MjgwO2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygx
NTI4MCxqLDk2KX1pSihiLDJlMywoY1szODIxXXwwKS0xfDApO2NbNDk3XT0wO2NbNDk2XT0zNzky
O2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Y1s0OThdPWNbMjk1OF07Y1s0OTZdPTI3Mjg7aWYo
KGNbMzgxOF18MCkhPS0xKXtjW2g+PjJdPTE1MjcyO2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtk
VygxNTI3MixoLDk2KX1pSihiLDE5ODQsKGNbMzgxOV18MCktMXwwKTtjWzM2MDVdPTA7Y1szNjA0
XT0zMTIwO2lmKChjWzM4MzJdfDApIT0tMSl7Y1tnPj4yXT0xNTMyODtjW2crND4+Ml09MTI7Y1tn
Kzg+PjJdPTA7ZFcoMTUzMjgsZyw5Nil9aUooYiwxNDQxNiwoY1szODMzXXwwKS0xfDApO2NbMzYw
M109MDtjWzM2MDJdPTMwODA7aWYoKGNbMzgzMF18MCkhPS0xKXtjW2Y+PjJdPTE1MzIwO2NbZis0
Pj4yXT0xMjtjW2YrOD4+Ml09MDtkVygxNTMyMCxmLDk2KX1pSihiLDE0NDA4LChjWzM4MzFdfDAp
LTF8MCk7aT1lO3JldHVybn1mdW5jdGlvbiBpdChhLGIpe2E9YXwwO2I9YnwwO3JldHVybiBifDB9
ZnVuY3Rpb24gaXUoYSxiLGQsZSxmLGcsaCxpKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDtpPWl8MDtjW2Y+PjJdPWQ7Y1tpPj4yXT1nO3JldHVybiAzfWZ1bmN0aW9u
IGl2KGEsYixkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aT1pfDA7Y1tmPj4yXT1kO2NbaT4+Ml09ZztyZXR1cm4gM31mdW5jdGlvbiBpdyhhLGIs
ZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2NbZj4+Ml09ZDtyZXR1cm4gM31m
dW5jdGlvbiBpeChhKXthPWF8MDtyZXR1cm4gMX1mdW5jdGlvbiBpeShhKXthPWF8MDtyZXR1cm4g
MX1mdW5jdGlvbiBpeihhKXthPWF8MDtyZXR1cm4gMX1mdW5jdGlvbiBpQShhLGIpe2E9YXwwO2I9
YnwwO3JldHVybiBiPDwyND4+MjR8MH1mdW5jdGlvbiBpQihhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1j
fDA7cmV0dXJuKGI+Pj4wPDEyOD9iJjI1NTpjKXwwfWZ1bmN0aW9uIGlDKGEsYixjKXthPWF8MDti
PWJ8MDtjPWN8MDtyZXR1cm4oYjw8MjQ+PjI0Pi0xP2I6Yyl8MH1mdW5jdGlvbiBpRChhLGIsYyxk
LGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2I9ZC1jfDA7cmV0dXJuKGI+Pj4wPGU+
Pj4wP2I6ZSl8MH1mdW5jdGlvbiBpRShhKXthPWF8MDtjW2ErND4+Ml09KEk9Y1szODU0XXwwLGNb
Mzg1NF09SSsxLEkpKzE7cmV0dXJufWZ1bmN0aW9uIGlGKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MDtpZigoZHwwKT09KGV8MCkpe2c9ZDtyZXR1cm4gZ3ww
fWVsc2V7aD1kO2k9Zn13aGlsZSgxKXtjW2k+PjJdPWFbaF18MDtmPWgrMXwwO2lmKChmfDApPT0o
ZXwwKSl7Zz1lO2JyZWFrfWVsc2V7aD1mO2k9aSs0fDB9fXJldHVybiBnfDB9ZnVuY3Rpb24gaUco
YixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTA7
aWYoKGR8MCk9PShlfDApKXtoPWQ7cmV0dXJuIGh8MH1iPSgoZS00KygtZHwwKXwwKT4+PjIpKzF8
MDtpPWQ7aj1nO3doaWxlKDEpe2c9Y1tpPj4yXXwwO2Fbal09Zz4+PjA8MTI4P2cmMjU1OmY7Zz1p
KzR8MDtpZigoZ3wwKT09KGV8MCkpe2JyZWFrfWVsc2V7aT1nO2o9aisxfDB9fWg9ZCsoYjw8Mil8
MDtyZXR1cm4gaHwwfWZ1bmN0aW9uIGlIKGIsYyxkLGUpe2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXww
O3ZhciBmPTAsZz0wLGg9MDtpZigoY3wwKT09KGR8MCkpe2Y9YztyZXR1cm4gZnwwfWVsc2V7Zz1j
O2g9ZX13aGlsZSgxKXthW2hdPWFbZ118MDtlPWcrMXwwO2lmKChlfDApPT0oZHwwKSl7Zj1kO2Jy
ZWFrfWVsc2V7Zz1lO2g9aCsxfDB9fXJldHVybiBmfDB9ZnVuY3Rpb24gaUkoYixjLGQsZSxmKXti
PWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTA7aWYoKGN8MCk9PShk
fDApKXtnPWM7cmV0dXJuIGd8MH1lbHNle2g9YztpPWZ9d2hpbGUoMSl7Zj1hW2hdfDA7YVtpXT1m
PDwyND4+MjQ+LTE/ZjplO2Y9aCsxfDA7aWYoKGZ8MCk9PShkfDApKXtnPWQ7YnJlYWt9ZWxzZXto
PWY7aT1pKzF8MH19cmV0dXJuIGd8MH1mdW5jdGlvbiBpSihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1k
fDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtkZyhifDApO2U9
YSs4fDA7Zj1hKzEyfDA7YT1jW2Y+PjJdfDA7Zz1lfDA7aD1jW2c+PjJdfDA7aT1hLWg+PjI7ZG97
aWYoaT4+PjA+ZD4+PjApe2o9aH1lbHNle2s9ZCsxfDA7aWYoaT4+PjA8az4+PjApe2o1KGUsay1p
fDApO2o9Y1tnPj4yXXwwO2JyZWFrfWlmKGk+Pj4wPD1rPj4+MCl7aj1oO2JyZWFrfWw9aCsoazw8
Mil8MDtpZigobHwwKT09KGF8MCkpe2o9aDticmVha31jW2Y+PjJdPWErKH4oKGEtNCsoLWx8MCl8
MCk+Pj4yKTw8Mik7aj1ofX13aGlsZSgwKTtoPWNbaisoZDw8Mik+PjJdfDA7aWYoKGh8MCk9PTAp
e209ajtuPW0rKGQ8PDIpfDA7Y1tuPj4yXT1iO3JldHVybn1keihofDApfDA7bT1jW2c+PjJdfDA7
bj1tKyhkPDwyKXwwO2Nbbj4+Ml09YjtyZXR1cm59ZnVuY3Rpb24gaUsoYSl7YT1hfDA7aUwoYSk7
a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlMKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0w
LGk9MCxqPTAsaz0wLGw9MCxtPTA7Y1tiPj4yXT0zODI0O2Q9YisxMnwwO2U9Y1tkPj4yXXwwO2Y9
Yis4fDA7Zz1jW2Y+PjJdfDA7aWYoKGV8MCkhPShnfDApKXtoPTA7aT1nO2c9ZTt3aGlsZSgxKXtl
PWNbaSsoaDw8Mik+PjJdfDA7aWYoKGV8MCk9PTApe2o9ZztrPWl9ZWxzZXtsPWV8MDtkeihsKXww
O2o9Y1tkPj4yXXwwO2s9Y1tmPj4yXXwwfWw9aCsxfDA7aWYobD4+PjA8ai1rPj4yPj4+MCl7aD1s
O2k9aztnPWp9ZWxzZXticmVha319fWRQKGIrMTQ0fDApO2o9Y1tmPj4yXXwwO2lmKChqfDApPT0w
KXttPWJ8MDtkZShtKTtyZXR1cm59Zj1jW2Q+PjJdfDA7aWYoKGp8MCkhPShmfDApKXtjW2Q+PjJd
PWYrKH4oKGYtNCsoLWp8MCl8MCk+Pj4yKTw8Mil9aWYoKGp8MCk9PShiKzI0fDApKXthW2IrMTM2
fDBdPTA7bT1ifDA7ZGUobSk7cmV0dXJufWVsc2V7a1Moaik7bT1ifDA7ZGUobSk7cmV0dXJufX1m
dW5jdGlvbiBpTSgpe3ZhciBiPTAsZD0wO2lmKChhWzE2MjQ4XXwwKSE9MCl7Yj1jWzI5NTBdfDA7
cmV0dXJuIGJ8MH1pZigoYmMoMTYyNDgpfDApPT0wKXtiPWNbMjk1MF18MDtyZXR1cm4gYnwwfWRv
e2lmKChhWzE2MjU2XXwwKT09MCl7aWYoKGJjKDE2MjU2KXwwKT09MCl7YnJlYWt9aXMoMTQ0OTYs
MSk7Y1syOTU0XT0xNDQ5NjtjWzI5NTJdPTExODE2fX13aGlsZSgwKTtkPWNbY1syOTUyXT4+Ml18
MDtjWzI5NTZdPWQ7ZGcoZHwwKTtjWzI5NTBdPTExODI0O2I9Y1syOTUwXXwwO3JldHVybiBifDB9
ZnVuY3Rpb24gaU4oYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wO2Q9Y1tiPj4yXXwwO2NbYT4+Ml09
ZDtkZyhkfDApO3JldHVybn1mdW5jdGlvbiBpTyhhKXthPWF8MDtkeihjW2E+PjJdfDApfDA7cmV0
dXJufWZ1bmN0aW9uIGlQKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlR
KGEpe2E9YXwwO2lmKChhfDApPT0wKXtyZXR1cm59YllbY1soY1thPj4yXXwwKSs0Pj4yXSY1MTFd
KGEpO3JldHVybn1mdW5jdGlvbiBpUihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5j
dGlvbiBpUyhiKXtiPWJ8MDt2YXIgZD0wO2NbYj4+Ml09MzkzNjtkPWNbYis4Pj4yXXwwO2Rve2lm
KChkfDApIT0wKXtpZigoYVtiKzEyfDBdJjEpPT0wKXticmVha31rVChkKX19d2hpbGUoMCk7ZGUo
YnwwKTtrUyhiKTtyZXR1cm59ZnVuY3Rpb24gaVQoYil7Yj1ifDA7dmFyIGQ9MDtjW2I+PjJdPTM5
MzY7ZD1jW2IrOD4+Ml18MDtkb3tpZigoZHwwKSE9MCl7aWYoKGFbYisxMnwwXSYxKT09MCl7YnJl
YWt9a1QoZCl9fXdoaWxlKDApO2RlKGJ8MCk7cmV0dXJufWZ1bmN0aW9uIGlVKGEpe2E9YXwwO2Rl
KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlWKGEpe2E9YXwwO2lxKGEpO2tTKGEpO3JldHVy
bn1mdW5jdGlvbiBpVyhhKXthPWF8MDt2YXIgYj0wO2I9Y1soaU0oKXwwKT4+Ml18MDtjW2E+PjJd
PWI7ZGcoYnwwKTtyZXR1cm59ZnVuY3Rpb24gaVgoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9
MCxmPTAsZz0wLGg9MDtkPWk7aT1pKzE2fDA7ZT1kfDA7Zj1jW2E+PjJdfDA7YT1ifDA7aWYoKGNb
YT4+Ml18MCkhPS0xKXtjW2U+PjJdPWI7Y1tlKzQ+PjJdPTEyO2NbZSs4Pj4yXT0wO2RXKGEsZSw5
Nil9ZT0oY1tiKzQ+PjJdfDApLTF8MDtiPWNbZis4Pj4yXXwwO2lmKChjW2YrMTI+PjJdfDApLWI+
PjI+Pj4wPD1lPj4+MCl7Zz1iTyg0KXwwO2g9ZztrcShoKTtibChnfDAsODE3NiwxMzQpO3JldHVy
biAwfWY9Y1tiKyhlPDwyKT4+Ml18MDtpZigoZnwwKT09MCl7Zz1iTyg0KXwwO2g9ZztrcShoKTti
bChnfDAsODE3NiwxMzQpO3JldHVybiAwfWVsc2V7aT1kO3JldHVybiBmfDB9cmV0dXJuIDB9ZnVu
Y3Rpb24gaVkoYSxkLGUpe2E9YXwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYoZT4+PjA+PTEyOCl7
Zj0wO3JldHVybiBmfDB9Zj0oYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4xXSZkKTw8MTY+
PjE2IT0wO3JldHVybiBmfDB9ZnVuY3Rpb24gaVooYSxkLGUsZil7YT1hfDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MDtpZigoZHwwKT09KGV8MCkpe2c9ZDtyZXR1cm4gZ3ww
fWVsc2V7aD1kO2k9Zn13aGlsZSgxKXtmPWNbaD4+Ml18MDtpZihmPj4+MDwxMjgpe2o9YlsoY1so
YTYoKXwwKT4+Ml18MCkrKGY8PDEpPj4xXXwwfWVsc2V7aj0wfWJbaT4+MV09ajtmPWgrNHwwO2lm
KChmfDApPT0oZXwwKSl7Zz1lO2JyZWFrfWVsc2V7aD1mO2k9aSsyfDB9fXJldHVybiBnfDB9ZnVu
Y3Rpb24gaV8oYSxkLGUsZil7YT1hfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0w
O2lmKChlfDApPT0oZnwwKSl7Zz1lO3JldHVybiBnfDB9ZWxzZXtoPWV9d2hpbGUoMSl7ZT1jW2g+
PjJdfDA7aWYoZT4+PjA8MTI4KXtpZigoYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4xXSZk
KTw8MTY+PjE2IT0wKXtnPWg7aT0yMDk0O2JyZWFrfX1lPWgrNHwwO2lmKChlfDApPT0oZnwwKSl7
Zz1mO2k9MjA5NjticmVha31lbHNle2g9ZX19aWYoKGl8MCk9PTIwOTQpe3JldHVybiBnfDB9ZWxz
ZSBpZigoaXwwKT09MjA5Nil7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBpJChhLGQsZSxm
KXthPWF8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MDthPWU7d2hpbGUoMSl7aWYoKGF8
MCk9PShmfDApKXtnPWY7aD0yMTA0O2JyZWFrfWU9Y1thPj4yXXwwO2lmKGU+Pj4wPj0xMjgpe2c9
YTtoPTIxMDY7YnJlYWt9aWYoKGJbKGNbKGE2KCl8MCk+PjJdfDApKyhlPDwxKT4+MV0mZCk8PDE2
Pj4xNj09MCl7Zz1hO2g9MjEwNTticmVha31lbHNle2E9YSs0fDB9fWlmKChofDApPT0yMTA0KXty
ZXR1cm4gZ3wwfWVsc2UgaWYoKGh8MCk9PTIxMDUpe3JldHVybiBnfDB9ZWxzZSBpZigoaHwwKT09
MjEwNil7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBpMChhLGIpe2E9YXwwO2I9YnwwO3Zh
ciBkPTA7aWYoYj4+PjA+PTEyOCl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhiUigpfDApPj4yXXww
KSsoYjw8Mik+PjJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBpMShhLGIsZCl7YT1hfDA7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2lmKChifDApPT0oZHwwKSl7ZT1iO3JldHVybiBlfDB9ZWxz
ZXtmPWJ9d2hpbGUoMSl7Yj1jW2Y+PjJdfDA7aWYoYj4+PjA8MTI4KXtnPWNbKGNbKGJSKCl8MCk+
PjJdfDApKyhiPDwyKT4+Ml18MH1lbHNle2c9Yn1jW2Y+PjJdPWc7Yj1mKzR8MDtpZigoYnwwKT09
KGR8MCkpe2U9ZDticmVha31lbHNle2Y9Yn19cmV0dXJuIGV8MH1mdW5jdGlvbiBpMihhLGIpe2E9
YXwwO2I9YnwwO3ZhciBkPTA7aWYoYj4+PjA+PTEyOCl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhi
UygpfDApPj4yXXwwKSsoYjw8Mik+PjJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBpMyhhLGIsZCl7
YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2lmKChifDApPT0oZHwwKSl7ZT1iO3Jl
dHVybiBlfDB9ZWxzZXtmPWJ9d2hpbGUoMSl7Yj1jW2Y+PjJdfDA7aWYoYj4+PjA8MTI4KXtnPWNb
KGNbKGJTKCl8MCk+PjJdfDApKyhiPDwyKT4+Ml18MH1lbHNle2c9Yn1jW2Y+PjJdPWc7Yj1mKzR8
MDtpZigoYnwwKT09KGR8MCkpe2U9ZDticmVha31lbHNle2Y9Yn19cmV0dXJuIGV8MH1mdW5jdGlv
biBpNChhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTA7aWYoYjw8MjQ+PjI0PD0tMSl7ZD1iO3JldHVy
biBkfDB9ZD1jWyhjWyhiUigpfDApPj4yXXwwKSsoKGImMjU1KTw8Mik+PjJdJjI1NTtyZXR1cm4g
ZHwwfWZ1bmN0aW9uIGk1KGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7
aWYoKGR8MCk9PShlfDApKXtmPWQ7cmV0dXJuIGZ8MH1lbHNle2c9ZH13aGlsZSgxKXtkPWFbZ118
MDtpZihkPDwyND4+MjQ+LTEpe2g9Y1soY1soYlIoKXwwKT4+Ml18MCkrKGQ8PDI0Pj4yNDw8Mik+
PjJdJjI1NX1lbHNle2g9ZH1hW2ddPWg7ZD1nKzF8MDtpZigoZHwwKT09KGV8MCkpe2Y9ZTticmVh
a31lbHNle2c9ZH19cmV0dXJuIGZ8MH1mdW5jdGlvbiBpNihhLGIpe2E9YXwwO2I9YnwwO3ZhciBk
PTA7aWYoYjw8MjQ+PjI0PD0tMSl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhiUygpfDApPj4yXXww
KSsoYjw8MjQ+PjI0PDwyKT4+Ml0mMjU1O3JldHVybiBkfDB9ZnVuY3Rpb24gaTcoYixkLGUpe2I9
YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtpZigoZHwwKT09KGV8MCkpe2Y9ZDtyZXR1
cm4gZnwwfWVsc2V7Zz1kfXdoaWxlKDEpe2Q9YVtnXXwwO2lmKGQ8PDI0Pj4yND4tMSl7aD1jWyhj
WyhiUygpfDApPj4yXXwwKSsoZDw8MjQ+PjI0PDwyKT4+Ml0mMjU1fWVsc2V7aD1kfWFbZ109aDtk
PWcrMXwwO2lmKChkfDApPT0oZXwwKSl7Zj1lO2JyZWFrfWVsc2V7Zz1kfX1yZXR1cm4gZnwwfWZ1
bmN0aW9uIGk4KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGk5KGEpe2E9YXwwO2RlKGF8MCk7
a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGphKGEsYixkLGUsZixnLGgsail7YT1hfDA7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTA7Yj1pO2k9aSsxNnww
O2E9YnwwO2s9Yis4fDA7Y1thPj4yXT1kO2Nbaz4+Ml09ZztsPWpsKGQsZSxhLGcsaCxrLDExMTQx
MTEsMCl8MDtjW2Y+PjJdPWQrKChjW2E+PjJdfDApLWQ+PjE8PDEpO2Nbaj4+Ml09ZysoKGNbaz4+
Ml18MCktZyk7aT1iO3JldHVybiBsfDB9ZnVuY3Rpb24gamIoYixkLGUsZixnLGgsaixrKXtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MDtsPWk7aT1pKzh8MDttPWx8MDtu
PW07bz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7cD1lO3doaWxlKDEpe2lmKChwfDApPT0oZnwwKSl7
cT1mO2JyZWFrfWlmKChjW3A+PjJdfDApPT0wKXtxPXA7YnJlYWt9ZWxzZXtwPXArNHwwfX1jW2s+
PjJdPWg7Y1tnPj4yXT1lO0wyNTU1OmRve2lmKChlfDApPT0oZnwwKXwoaHwwKT09KGp8MCkpe3I9
ZX1lbHNle3A9ZDtzPWo7dD1iKzh8MDt1PW98MDt2PWg7dz1lO3g9cTtMMjU1Nzp3aGlsZSgxKXt5
PWNbcCs0Pj4yXXwwO2NbbT4+Ml09Y1twPj4yXTtjW20rND4+Ml09eTt5PWJCKGNbdD4+Ml18MCl8
MDt6PWtzKHYsZyx4LXc+PjIscy12fDAsZCl8MDtpZigoeXwwKSE9MCl7YkIoeXwwKXwwfXN3aXRj
aCh6fDApe2Nhc2UtMTp7QT0yMTg4O2JyZWFrIEwyNTU3O2JyZWFrfTtjYXNlIDA6e0I9MTtBPTIy
MjQ7YnJlYWsgTDI1NTc7YnJlYWt9O2RlZmF1bHQ6e319eT0oY1trPj4yXXwwKSt6fDA7Y1trPj4y
XT15O2lmKCh5fDApPT0oanwwKSl7QT0yMjIxO2JyZWFrfWlmKCh4fDApPT0oZnwwKSl7Qz1mO0Q9
eTtFPWNbZz4+Ml18MH1lbHNle3k9YkIoY1t0Pj4yXXwwKXwwO3o9a2codSwwLGQpfDA7aWYoKHl8
MCkhPTApe2JCKHl8MCl8MH1pZigoenwwKT09LTEpe0I9MjtBPTIyMjY7YnJlYWt9eT1jW2s+PjJd
fDA7aWYoej4+PjA+KHMteXwwKT4+PjApe0I9MTtBPTIyMjc7YnJlYWt9TDI1NzQ6ZG97aWYoKHp8
MCkhPTApe0Y9ejtHPXU7SD15O3doaWxlKDEpe0k9YVtHXXwwO2Nbaz4+Ml09SCsxO2FbSF09STtJ
PUYtMXwwO2lmKChJfDApPT0wKXticmVhayBMMjU3NH1GPUk7Rz1HKzF8MDtIPWNbaz4+Ml18MH19
fXdoaWxlKDApO3k9KGNbZz4+Ml18MCkrNHwwO2NbZz4+Ml09eTt6PXk7d2hpbGUoMSl7aWYoKHp8
MCk9PShmfDApKXtKPWY7YnJlYWt9aWYoKGNbej4+Ml18MCk9PTApe0o9ejticmVha31lbHNle3o9
eis0fDB9fUM9SjtEPWNbaz4+Ml18MDtFPXl9aWYoKEV8MCk9PShmfDApfChEfDApPT0oanwwKSl7
cj1FO2JyZWFrIEwyNTU1fWVsc2V7dj1EO3c9RTt4PUN9fWlmKChBfDApPT0yMTg4KXtjW2s+PjJd
PXY7TDI1ODY6ZG97aWYoKHd8MCk9PShjW2c+PjJdfDApKXtLPXd9ZWxzZXt4PXc7dT12O3doaWxl
KDEpe3M9Y1t4Pj4yXXwwO3A9YkIoY1t0Pj4yXXwwKXwwO3o9a2codSxzLG4pfDA7aWYoKHB8MCkh
PTApe2JCKHB8MCl8MH1pZigoenwwKT09LTEpe0s9eDticmVhayBMMjU4Nn1wPShjW2s+PjJdfDAp
K3p8MDtjW2s+PjJdPXA7ej14KzR8MDtpZigoenwwKT09KGNbZz4+Ml18MCkpe0s9ejticmVha31l
bHNle3g9ejt1PXB9fX19d2hpbGUoMCk7Y1tnPj4yXT1LO0I9MjtpPWw7cmV0dXJuIEJ8MH1lbHNl
IGlmKChBfDApPT0yMjIxKXtyPWNbZz4+Ml18MDticmVha31lbHNlIGlmKChBfDApPT0yMjI0KXtp
PWw7cmV0dXJuIEJ8MH1lbHNlIGlmKChBfDApPT0yMjI2KXtpPWw7cmV0dXJuIEJ8MH1lbHNlIGlm
KChBfDApPT0yMjI3KXtpPWw7cmV0dXJuIEJ8MH19fXdoaWxlKDApO0I9KHJ8MCkhPShmfDApfDA7
aT1sO3JldHVybiBCfDB9ZnVuY3Rpb24gamMoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtl
PWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0w
LEU9MCxGPTAsRz0wLEg9MCxJPTA7bD1pO2k9aSs4fDA7bT1sfDA7bj1tO289ZTt3aGlsZSgxKXtp
Zigob3wwKT09KGZ8MCkpe3A9ZjticmVha31pZigoYVtvXXwwKT09MCl7cD1vO2JyZWFrfWVsc2V7
bz1vKzF8MH19Y1trPj4yXT1oO2NbZz4+Ml09ZTtMMjYwNzpkb3tpZigoZXwwKT09KGZ8MCl8KGh8
MCk9PShqfDApKXtxPWV9ZWxzZXtvPWQ7cj1qO3M9Yis4fDA7dD1oO3U9ZTt2PXA7TDI2MDk6d2hp
bGUoMSl7dz1jW28rND4+Ml18MDtjW20+PjJdPWNbbz4+Ml07Y1ttKzQ+PjJdPXc7eD12O3c9YkIo
Y1tzPj4yXXwwKXwwO3k9a2QodCxnLHgtdXwwLHItdD4+MixkKXwwO2lmKCh3fDApIT0wKXtiQih3
fDApfDB9c3dpdGNoKHl8MCl7Y2FzZS0xOnt6PTIyNDM7YnJlYWsgTDI2MDk7YnJlYWt9O2Nhc2Ug
MDp7QT0yO3o9MjI3ODticmVhayBMMjYwOTticmVha307ZGVmYXVsdDp7fX13PShjW2s+PjJdfDAp
Kyh5PDwyKXwwO2Nbaz4+Ml09dztpZigod3wwKT09KGp8MCkpe3o9MjI3NTticmVha315PWNbZz4+
Ml18MDtpZigodnwwKT09KGZ8MCkpe0I9ZjtDPXc7RD15fWVsc2V7RT1iQihjW3M+PjJdfDApfDA7
Rj1rYyh3LHksMSxkKXwwO2lmKChFfDApIT0wKXtiQihFfDApfDB9aWYoKEZ8MCkhPTApe0E9Mjt6
PTIyODI7YnJlYWt9Y1trPj4yXT0oY1trPj4yXXwwKSs0O0Y9KGNbZz4+Ml18MCkrMXwwO2NbZz4+
Ml09RjtFPUY7d2hpbGUoMSl7aWYoKEV8MCk9PShmfDApKXtHPWY7YnJlYWt9aWYoKGFbRV18MCk9
PTApe0c9RTticmVha31lbHNle0U9RSsxfDB9fUI9RztDPWNbaz4+Ml18MDtEPUZ9aWYoKER8MCk9
PShmfDApfChDfDApPT0oanwwKSl7cT1EO2JyZWFrIEwyNjA3fWVsc2V7dD1DO3U9RDt2PUJ9fWlm
KCh6fDApPT0yMjQzKXtjW2s+PjJdPXQ7TDI2MzE6ZG97aWYoKHV8MCk9PShjW2c+PjJdfDApKXtI
PXV9ZWxzZXt2PXQ7cj11O0wyNjMyOndoaWxlKDEpe289YkIoY1tzPj4yXXwwKXwwO0U9a2Modixy
LHgtcnwwLG4pfDA7aWYoKG98MCkhPTApe2JCKG98MCl8MH1zd2l0Y2goRXwwKXtjYXNlIDA6e0k9
cisxfDA7YnJlYWt9O2Nhc2UtMTp7ej0yMjU0O2JyZWFrIEwyNjMyO2JyZWFrfTtjYXNlLTI6e3o9
MjI1NTticmVhayBMMjYzMjticmVha307ZGVmYXVsdDp7ST1yK0V8MH19RT0oY1trPj4yXXwwKSs0
fDA7Y1trPj4yXT1FO2lmKChJfDApPT0oY1tnPj4yXXwwKSl7SD1JO2JyZWFrIEwyNjMxfWVsc2V7
dj1FO3I9SX19aWYoKHp8MCk9PTIyNTQpe2NbZz4+Ml09cjtBPTI7aT1sO3JldHVybiBBfDB9ZWxz
ZSBpZigoenwwKT09MjI1NSl7Y1tnPj4yXT1yO0E9MTtpPWw7cmV0dXJuIEF8MH19fXdoaWxlKDAp
O2NbZz4+Ml09SDtBPShIfDApIT0oZnwwKXwwO2k9bDtyZXR1cm4gQXwwfWVsc2UgaWYoKHp8MCk9
PTIyNzUpe3E9Y1tnPj4yXXwwO2JyZWFrfWVsc2UgaWYoKHp8MCk9PTIyNzgpe2k9bDtyZXR1cm4g
QXwwfWVsc2UgaWYoKHp8MCk9PTIyODIpe2k9bDtyZXR1cm4gQXwwfX19d2hpbGUoMCk7QT0ocXww
KSE9KGZ8MCl8MDtpPWw7cmV0dXJuIEF8MH1mdW5jdGlvbiBqZChiLGQsZSxmLGcpe2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtoPWk7aT1p
Kzh8MDtjW2c+PjJdPWU7ZT1ofDA7aj1iQihjW2IrOD4+Ml18MCl8MDtiPWtnKGUsMCxkKXwwO2lm
KChqfDApIT0wKXtiQihqfDApfDB9c3dpdGNoKGJ8MCl7Y2FzZS0xOmNhc2UgMDp7az0yO2k9aDty
ZXR1cm4ga3wwfTtkZWZhdWx0Ont9fWo9Yi0xfDA7Yj1jW2c+PjJdfDA7aWYoaj4+PjA+KGYtYnww
KT4+PjApe2s9MTtpPWg7cmV0dXJuIGt8MH1pZigoanwwKT09MCl7az0wO2k9aDtyZXR1cm4ga3ww
fWVsc2V7bD1qO209ZTtuPWJ9d2hpbGUoMSl7Yj1hW21dfDA7Y1tnPj4yXT1uKzE7YVtuXT1iO2I9
bC0xfDA7aWYoKGJ8MCk9PTApe2s9MDticmVha31sPWI7bT1tKzF8MDtuPWNbZz4+Ml18MH1pPWg7
cmV0dXJuIGt8MH1mdW5jdGlvbiBqZShhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9MDti
PWErOHwwO2E9YkIoY1tiPj4yXXwwKXwwO2Q9a2YoMCwwLDEpfDA7aWYoKGF8MCkhPTApe2JCKGF8
MCl8MH1pZigoZHwwKSE9MCl7ZT0tMTtyZXR1cm4gZXwwfWQ9Y1tiPj4yXXwwO2lmKChkfDApPT0w
KXtlPTE7cmV0dXJuIGV8MH1lPWJCKGR8MCl8MDtkPWJkKCl8MDtpZigoZXwwKT09MCl7Zj0oZHww
KT09MTtnPWYmMTtyZXR1cm4gZ3wwfWJCKGV8MCl8MDtmPShkfDApPT0xO2c9ZiYxO3JldHVybiBn
fDB9ZnVuY3Rpb24gamYoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2
YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7aWYoKGZ8MCk9PTB8KGR8MCk9
PShlfDApKXtnPTA7cmV0dXJuIGd8MH1oPWU7aT1hKzh8MDthPWQ7ZD0wO2o9MDtMMjY5Mzp3aGls
ZSgxKXtrPWJCKGNbaT4+Ml18MCl8MDtsPWtiKGEsaC1hfDAsYil8MDtpZigoa3wwKSE9MCl7YkIo
a3wwKXwwfXN3aXRjaChsfDApe2Nhc2UgMDp7bT0xO249YSsxfDA7YnJlYWt9O2Nhc2UtMTpjYXNl
LTI6e2c9ZDtvPTIzNDM7YnJlYWsgTDI2OTM7YnJlYWt9O2RlZmF1bHQ6e209bDtuPWErbHwwfX1s
PW0rZHwwO2s9aisxfDA7aWYoaz4+PjA+PWY+Pj4wfChufDApPT0oZXwwKSl7Zz1sO289MjM0NTti
cmVha31lbHNle2E9bjtkPWw7aj1rfX1pZigob3wwKT09MjM0NSl7cmV0dXJuIGd8MH1lbHNlIGlm
KChvfDApPT0yMzQzKXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0aW9uIGpnKGEpe2E9YXwwO3Zh
ciBiPTAsZD0wLGU9MDtiPWNbYSs4Pj4yXXwwO2Rve2lmKChifDApPT0wKXtkPTF9ZWxzZXthPWJC
KGJ8MCl8MDtlPWJkKCl8MDtpZigoYXwwKT09MCl7ZD1lO2JyZWFrfWJCKGF8MCl8MDtkPWV9fXdo
aWxlKDApO3JldHVybiBkfDB9ZnVuY3Rpb24gamgoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtjW2Y+PjJdPWQ7cmV0dXJuIDN9ZnVuY3Rpb24gamkoYSl7YT1hfDA7cmV0
dXJuIDB9ZnVuY3Rpb24gamooYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gamsoYSl7YT1hfDA7
cmV0dXJuIDR9ZnVuY3Rpb24gamwoZCxmLGcsaCxpLGosayxsKXtkPWR8MDtmPWZ8MDtnPWd8MDto
PWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7
Y1tnPj4yXT1kO2Nbaj4+Ml09aDtkb3tpZigobCYyfDApIT0wKXtpZigoaS1ofDApPDMpe209MTty
ZXR1cm4gbXwwfWVsc2V7Y1tqPj4yXT1oKzE7YVtoXT0tMTc7ZD1jW2o+PjJdfDA7Y1tqPj4yXT1k
KzE7YVtkXT0tNjk7ZD1jW2o+PjJdfDA7Y1tqPj4yXT1kKzE7YVtkXT0tNjU7YnJlYWt9fX13aGls
ZSgwKTtoPWY7bD1jW2c+PjJdfDA7aWYobD4+PjA+PWY+Pj4wKXttPTA7cmV0dXJuIG18MH1kPWk7
aT1sO0wyNzI3OndoaWxlKDEpe2w9YltpPj4xXXwwO249bCY2NTUzNTtpZihuPj4+MD5rPj4+MCl7
bT0yO289MjM5OTticmVha31kb3tpZigobCY2NTUzNSk8MTI4KXtwPWNbaj4+Ml18MDtpZigoZC1w
fDApPDEpe209MTtvPTIzODg7YnJlYWsgTDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT1sJjI1NX1lbHNl
e2lmKChsJjY1NTM1KTwyMDQ4KXtwPWNbaj4+Ml18MDtpZigoZC1wfDApPDIpe209MTtvPTIzODk7
YnJlYWsgTDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT0obj4+PjZ8MTkyKSYyNTU7cD1jW2o+PjJdfDA7
Y1tqPj4yXT1wKzE7YVtwXT0obiY2M3wxMjgpJjI1NTticmVha31pZigobCY2NTUzNSk8NTUyOTYp
e3A9Y1tqPj4yXXwwO2lmKChkLXB8MCk8Myl7bT0xO289MjM5NzticmVhayBMMjcyN31jW2o+PjJd
PXArMTthW3BdPShuPj4+MTJ8MjI0KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtwXT0o
bj4+PjYmNjN8MTI4KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtwXT0obiY2M3wxMjgp
JjI1NTticmVha31pZigobCY2NTUzNSk+PTU2MzIwKXtpZigobCY2NTUzNSk8NTczNDQpe209Mjtv
PTIzOTM7YnJlYWsgTDI3Mjd9cD1jW2o+PjJdfDA7aWYoKGQtcHwwKTwzKXttPTE7bz0yMzk0O2Jy
ZWFrIEwyNzI3fWNbaj4+Ml09cCsxO2FbcF09KG4+Pj4xMnwyMjQpJjI1NTtwPWNbaj4+Ml18MDtj
W2o+PjJdPXArMTthW3BdPShuPj4+NiY2M3wxMjgpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJdPXAr
MTthW3BdPShuJjYzfDEyOCkmMjU1O2JyZWFrfWlmKChoLWl8MCk8NCl7bT0xO289MjM5MTticmVh
ayBMMjcyN31wPWkrMnwwO3E9ZVtwPj4xXXwwO2lmKChxJjY0NTEyfDApIT01NjMyMCl7bT0yO289
MjM5MjticmVhayBMMjcyN31pZigoZC0oY1tqPj4yXXwwKXwwKTw0KXttPTE7bz0yMzk4O2JyZWFr
IEwyNzI3fXI9biY5NjA7aWYoKChyPDwxMCkrNjU1MzZ8bjw8MTAmNjQ1MTJ8cSYxMDIzKT4+PjA+
az4+PjApe209MjtvPTI0MDA7YnJlYWsgTDI3Mjd9Y1tnPj4yXT1wO3A9KHI+Pj42KSsxfDA7cj1j
W2o+PjJdfDA7Y1tqPj4yXT1yKzE7YVtyXT0ocD4+PjJ8MjQwKSYyNTU7cj1jW2o+PjJdfDA7Y1tq
Pj4yXT1yKzE7YVtyXT0obj4+PjImMTV8cDw8NCY0OHwxMjgpJjI1NTtwPWNbaj4+Ml18MDtjW2o+
PjJdPXArMTthW3BdPShuPDw0JjQ4fHE+Pj42JjE1fDEyOCkmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+
Ml09cCsxO2FbcF09KHEmNjN8MTI4KSYyNTV9fXdoaWxlKDApO249KGNbZz4+Ml18MCkrMnwwO2Nb
Zz4+Ml09bjtpZihuPj4+MDxmPj4+MCl7aT1ufWVsc2V7bT0wO289MjM5NTticmVha319aWYoKG98
MCk9PTIzODkpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5Myl7cmV0dXJuIG18MH1lbHNl
IGlmKChvfDApPT0yMzk0KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTI0MDApe3JldHVybiBt
fDB9ZWxzZSBpZigob3wwKT09MjM4OCl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzkxKXty
ZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTIpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09
MjM5NSl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzk3KXtyZXR1cm4gbXwwfWVsc2UgaWYo
KG98MCk9PTIzOTgpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5OSl7cmV0dXJuIG18MH1y
ZXR1cm4gMH1mdW5jdGlvbiBqbShlLGYsZyxoLGksaixrLGwpe2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9
aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTA7Y1tnPj4yXT1lO2Nbaj4+Ml09aDtoPWNbZz4+Ml18
MDtkb3tpZigobCY0fDApPT0wKXttPWh9ZWxzZXtpZigoZi1ofDApPD0yKXttPWg7YnJlYWt9aWYo
KGFbaF18MCkhPS0xNyl7bT1oO2JyZWFrfWlmKChhW2grMXwwXXwwKSE9LTY5KXttPWg7YnJlYWt9
aWYoKGFbaCsyfDBdfDApIT0tNjUpe209aDticmVha31lPWgrM3wwO2NbZz4+Ml09ZTttPWV9fXdo
aWxlKDApO0wyNzcyOmRve2lmKG0+Pj4wPGY+Pj4wKXtoPWY7bD1pO2U9Y1tqPj4yXXwwO249bTtM
Mjc3NDp3aGlsZSgxKXtpZihlPj4+MD49aT4+PjApe289bjticmVhayBMMjc3Mn1wPWFbbl18MDtx
PXAmMjU1O2lmKHE+Pj4wPms+Pj4wKXtyPTI7cz0yNDQ0O2JyZWFrfWRve2lmKHA8PDI0Pj4yND4t
MSl7YltlPj4xXT1wJjI1NTtjW2c+PjJdPShjW2c+PjJdfDApKzF9ZWxzZXtpZigocCYyNTUpPDE5
NCl7cj0yO3M9MjQ1MzticmVhayBMMjc3NH1pZigocCYyNTUpPDIyNCl7aWYoKGgtbnwwKTwyKXty
PTE7cz0yNDU0O2JyZWFrIEwyNzc0fXQ9ZFtuKzF8MF18MDtpZigodCYxOTJ8MCkhPTEyOCl7cj0y
O3M9MjQ1NTticmVhayBMMjc3NH11PXQmNjN8cTw8NiYxOTg0O2lmKHU+Pj4wPms+Pj4wKXtyPTI7
cz0yNDU2O2JyZWFrIEwyNzc0fWJbZT4+MV09dSY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDApKzI7
YnJlYWt9aWYoKHAmMjU1KTwyNDApe2lmKChoLW58MCk8Myl7cj0xO3M9MjQ1NzticmVhayBMMjc3
NH11PWFbbisxfDBdfDA7c3dpdGNoKHF8MCl7Y2FzZSAyMjQ6e2lmKCh1Ji0zMik8PDI0Pj4yNCE9
LTk2KXtyPTI7cz0yNDUwO2JyZWFrIEwyNzc0fWJyZWFrfTtjYXNlIDIzNzp7aWYoKHUmLTMyKTw8
MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDUyO2JyZWFrIEwyNzc0fWJyZWFrfTtkZWZhdWx0OntpZigo
dSYtNjQpPDwyND4+MjQhPS0xMjgpe3I9MjtzPTI0NjI7YnJlYWsgTDI3NzR9fX10PWRbbisyfDBd
fDA7aWYoKHQmMTkyfDApIT0xMjgpe3I9MjtzPTI0NDM7YnJlYWsgTDI3NzR9dj0odSYyNTUpPDw2
JjQwMzJ8cTw8MTJ8dCY2MztpZigodiY2NTUzNSk+Pj4wPms+Pj4wKXtyPTI7cz0yNDQyO2JyZWFr
IEwyNzc0fWJbZT4+MV09diY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDApKzM7YnJlYWt9aWYoKHAm
MjU1KT49MjQ1KXtyPTI7cz0yNDQ3O2JyZWFrIEwyNzc0fWlmKChoLW58MCk8NCl7cj0xO3M9MjQ1
ODticmVhayBMMjc3NH12PWFbbisxfDBdfDA7c3dpdGNoKHF8MCl7Y2FzZSAyNDA6e2lmKCh2KzEx
MiYyNTUpPj00OCl7cj0yO3M9MjQ0ODticmVhayBMMjc3NH1icmVha307Y2FzZSAyNDQ6e2lmKCh2
Ji0xNik8PDI0Pj4yNCE9LTEyOCl7cj0yO3M9MjQ1OTticmVhayBMMjc3NH1icmVha307ZGVmYXVs
dDp7aWYoKHYmLTY0KTw8MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDYwO2JyZWFrIEwyNzc0fX19dD1k
W24rMnwwXXwwO2lmKCh0JjE5MnwwKSE9MTI4KXtyPTI7cz0yNDYxO2JyZWFrIEwyNzc0fXU9ZFtu
KzN8MF18MDtpZigodSYxOTJ8MCkhPTEyOCl7cj0yO3M9MjQ0OTticmVhayBMMjc3NH1pZigobC1l
fDApPDQpe3I9MTtzPTI0NDU7YnJlYWsgTDI3NzR9dz1xJjc7eD12JjI1NTt2PXQ8PDY7eT11JjYz
O2lmKCh4PDwxMiYyNTgwNDh8dzw8MTh8diY0MDMyfHkpPj4+MD5rPj4+MCl7cj0yO3M9MjQ0Njti
cmVhayBMMjc3NH1iW2U+PjFdPSh4PDwyJjYwfHQ+Pj40JjN8KCh4Pj4+NCYzfHc8PDIpPDw2KSsx
NjMyMHw1NTI5NikmNjU1MzU7dz0oY1tqPj4yXXwwKSsyfDA7Y1tqPj4yXT13O2Jbdz4+MV09KHl8
diY5NjB8NTYzMjApJjY1NTM1O2NbZz4+Ml09KGNbZz4+Ml18MCkrNH19d2hpbGUoMCk7cT0oY1tq
Pj4yXXwwKSsyfDA7Y1tqPj4yXT1xO3A9Y1tnPj4yXXwwO2lmKHA+Pj4wPGY+Pj4wKXtlPXE7bj1w
fWVsc2V7bz1wO2JyZWFrIEwyNzcyfX1pZigoc3wwKT09MjQ0Mil7cmV0dXJuIHJ8MH1lbHNlIGlm
KChzfDApPT0yNDQzKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDQpe3JldHVybiByfDB9
ZWxzZSBpZigoc3wwKT09MjQ0OCl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ5KXtyZXR1
cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTApe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ0
NSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ2KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8
MCk9PTI0NDcpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1Nil7cmV0dXJuIHJ8MH1lbHNl
IGlmKChzfDApPT0yNDU3KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTgpe3JldHVybiBy
fDB9ZWxzZSBpZigoc3wwKT09MjQ1OSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDYwKXty
ZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NjEpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09
MjQ2Mil7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDUyKXtyZXR1cm4gcnwwfWVsc2UgaWYo
KHN8MCk9PTI0NTMpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1NCl7cmV0dXJuIHJ8MH1l
bHNlIGlmKChzfDApPT0yNDU1KXtyZXR1cm4gcnwwfX1lbHNle289bX19d2hpbGUoMCk7cj1vPj4+
MDxmPj4+MHwwO3JldHVybiByfDB9ZnVuY3Rpb24gam4oYixjLGUsZixnKXtiPWJ8MDtjPWN8MDtl
PWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MCx2PTA7ZG97aWYoKGcmNHwwKT09MCl7aD1ifWVsc2V7aWYoKGMt
YnwwKTw9Mil7aD1iO2JyZWFrfWlmKChhW2JdfDApIT0tMTcpe2g9YjticmVha31pZigoYVtiKzF8
MF18MCkhPS02OSl7aD1iO2JyZWFrfWg9KGFbYisyfDBdfDApPT0tNjU/YiszfDA6Yn19d2hpbGUo
MCk7TDI4NDE6ZG97aWYoaD4+PjA8Yz4+PjAmKGV8MCkhPTApe2c9YztpPTA7aj1oO0wyODQzOndo
aWxlKDEpe2s9YVtqXXwwO2w9ayYyNTU7aWYobD4+PjA+Zj4+PjApe209ajticmVhayBMMjg0MX1k
b3tpZihrPDwyND4+MjQ+LTEpe249aisxfDA7bz1pfWVsc2V7aWYoKGsmMjU1KTwxOTQpe209ajti
cmVhayBMMjg0MX1pZigoayYyNTUpPDIyNCl7aWYoKGctanwwKTwyKXttPWo7YnJlYWsgTDI4NDF9
cD1kW2orMXwwXXwwO2lmKChwJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9aWYoKHAmNjN8
bDw8NiYxOTg0KT4+PjA+Zj4+PjApe209ajticmVhayBMMjg0MX1uPWorMnwwO289aTticmVha31p
ZigoayYyNTUpPDI0MCl7cT1qO2lmKChnLXF8MCk8Myl7bT1qO2JyZWFrIEwyODQxfXA9YVtqKzF8
MF18MDtzd2l0Y2gobHwwKXtjYXNlIDIyNDp7aWYoKHAmLTMyKTw8MjQ+PjI0IT0tOTYpe3I9MjQ4
MzticmVhayBMMjg0M31icmVha307Y2FzZSAyMzc6e2lmKChwJi0zMik8PDI0Pj4yNCE9LTEyOCl7
cj0yNDg1O2JyZWFrIEwyODQzfWJyZWFrfTtkZWZhdWx0OntpZigocCYtNjQpPDwyND4+MjQhPS0x
Mjgpe3I9MjQ4NzticmVhayBMMjg0M319fXM9ZFtqKzJ8MF18MDtpZigocyYxOTJ8MCkhPTEyOCl7
bT1qO2JyZWFrIEwyODQxfWlmKCgocCYyNTUpPDw2JjQwMzJ8bDw8MTImNjE0NDB8cyY2Myk+Pj4w
PmY+Pj4wKXttPWo7YnJlYWsgTDI4NDF9bj1qKzN8MDtvPWk7YnJlYWt9aWYoKGsmMjU1KT49MjQ1
KXttPWo7YnJlYWsgTDI4NDF9dD1qO2lmKChnLXR8MCk8NCl7bT1qO2JyZWFrIEwyODQxfWlmKChl
LWl8MCk+Pj4wPDIpe209ajticmVhayBMMjg0MX1zPWFbaisxfDBdfDA7c3dpdGNoKGx8MCl7Y2Fz
ZSAyNDA6e2lmKChzKzExMiYyNTUpPj00OCl7cj0yNDk2O2JyZWFrIEwyODQzfWJyZWFrfTtjYXNl
IDI0NDp7aWYoKHMmLTE2KTw8MjQ+PjI0IT0tMTI4KXtyPTI0OTg7YnJlYWsgTDI4NDN9YnJlYWt9
O2RlZmF1bHQ6e2lmKChzJi02NCk8PDI0Pj4yNCE9LTEyOCl7cj0yNTAwO2JyZWFrIEwyODQzfX19
cD1kW2orMnwwXXwwO2lmKChwJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9dT1kW2orM3ww
XXwwO2lmKCh1JjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9aWYoKChzJjI1NSk8PDEyJjI1
ODA0OHxsPDwxOCYxODM1MDA4fHA8PDYmNDAzMnx1JjYzKT4+PjA+Zj4+PjApe209ajticmVhayBM
Mjg0MX1uPWorNHwwO289aSsxfDB9fXdoaWxlKDApO2w9bysxfDA7aWYobj4+PjA8Yz4+PjAmbD4+
PjA8ZT4+PjApe2k9bDtqPW59ZWxzZXttPW47YnJlYWsgTDI4NDF9fWlmKChyfDApPT0yNTAwKXt2
PXQtYnwwO3JldHVybiB2fDB9ZWxzZSBpZigocnwwKT09MjQ5Nil7dj10LWJ8MDtyZXR1cm4gdnww
fWVsc2UgaWYoKHJ8MCk9PTI0OTgpe3Y9dC1ifDA7cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDApPT0y
NDgzKXt2PXEtYnwwO3JldHVybiB2fDB9ZWxzZSBpZigocnwwKT09MjQ4NSl7dj1xLWJ8MDtyZXR1
cm4gdnwwfWVsc2UgaWYoKHJ8MCk9PTI0ODcpe3Y9cS1ifDA7cmV0dXJuIHZ8MH19ZWxzZXttPWh9
fXdoaWxlKDApO3Y9bS1ifDA7cmV0dXJuIHZ8MH1mdW5jdGlvbiBqbyhhLGIsZCxlLGYsZyxoLGop
e2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAs
bD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2NbYT4+Ml09ZDtjW2s+PjJdPWc7bD1qbShk
LGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1kKygoY1thPj4yXXwwKS1kKTtjW2o+PjJd
PWcrKChjW2s+PjJdfDApLWc+PjE8PDEpO2k9YjtyZXR1cm4gbHwwfWZ1bmN0aW9uIGpwKGEsYixj
LGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7cmV0dXJuIGpuKGMsZCxlLDExMTQx
MTEsMCl8MH1mdW5jdGlvbiBqcShhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlv
biBqcihhLGIsZCxlLGYsZyxoLGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2NbYT4+
Ml09ZDtjW2s+PjJdPWc7bD1qdyhkLGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1kKygo
Y1thPj4yXXwwKS1kPj4yPDwyKTtjW2o+PjJdPWcrKChjW2s+PjJdfDApLWcpO2k9YjtyZXR1cm4g
bHwwfWZ1bmN0aW9uIGpzKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Y1tmPj4yXT1kO3JldHVybiAzfWZ1bmN0aW9uIGp0KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9u
IGp1KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGp2KGEpe2E9YXwwO3JldHVybiA0fWZ1bmN0
aW9uIGp3KGIsZCxlLGYsZyxoLGksail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1o
fDA7aT1pfDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MDtjW2U+PjJdPWI7Y1toPj4yXT1mO2Rv
e2lmKChqJjJ8MCkhPTApe2lmKChnLWZ8MCk8Myl7az0xO3JldHVybiBrfDB9ZWxzZXtjW2g+PjJd
PWYrMTthW2ZdPS0xNztiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPS02OTtiPWNbaD4+Ml18
MDtjW2g+PjJdPWIrMTthW2JdPS02NTticmVha319fXdoaWxlKDApO2Y9Y1tlPj4yXXwwO2lmKGY+
Pj4wPj1kPj4+MCl7az0wO3JldHVybiBrfDB9aj1nO2c9ZjtMMjkxMjp3aGlsZSgxKXtmPWNbZz4+
Ml18MDtpZigoZiYtMjA0OHwwKT09NTUyOTZ8Zj4+PjA+aT4+PjApe2s9MjtsPTI1NDg7YnJlYWt9
ZG97aWYoZj4+PjA8MTI4KXtiPWNbaD4+Ml18MDtpZigoai1ifDApPDEpe2s9MTtsPTI1NDQ7YnJl
YWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT1mJjI1NX1lbHNle2lmKGY+Pj4wPDIwNDgpe2I9Y1to
Pj4yXXwwO2lmKChqLWJ8MCk8Mil7az0xO2w9MjU0NzticmVhayBMMjkxMn1jW2g+PjJdPWIrMTth
W2JdPShmPj4+NnwxOTIpJjI1NTtiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPShmJjYzfDEy
OCkmMjU1O2JyZWFrfWI9Y1toPj4yXXwwO209ai1ifDA7aWYoZj4+PjA8NjU1MzYpe2lmKChtfDAp
PDMpe2s9MTtsPTI1NDk7YnJlYWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjEyfDIyNCkm
MjU1O249Y1toPj4yXXwwO2NbaD4+Ml09bisxO2Fbbl09KGY+Pj42JjYzfDEyOCkmMjU1O249Y1to
Pj4yXXwwO2NbaD4+Ml09bisxO2Fbbl09KGYmNjN8MTI4KSYyNTU7YnJlYWt9ZWxzZXtpZigobXww
KTw0KXtrPTE7bD0yNTQyO2JyZWFrIEwyOTEyfWNbaD4+Ml09YisxO2FbYl09KGY+Pj4xOHwyNDAp
JjI1NTtiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPShmPj4+MTImNjN8MTI4KSYyNTU7Yj1j
W2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjYmNjN8MTI4KSYyNTU7Yj1jW2g+PjJdfDA7
Y1toPj4yXT1iKzE7YVtiXT0oZiY2M3wxMjgpJjI1NTticmVha319fXdoaWxlKDApO2Y9KGNbZT4+
Ml18MCkrNHwwO2NbZT4+Ml09ZjtpZihmPj4+MDxkPj4+MCl7Zz1mfWVsc2V7az0wO2w9MjU0Mzti
cmVha319aWYoKGx8MCk9PTI1NDMpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0Mil7cmV0
dXJuIGt8MH1lbHNlIGlmKChsfDApPT0yNTQ0KXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8MCk9PTI1
NDgpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0OSl7cmV0dXJuIGt8MH1lbHNlIGlmKChs
fDApPT0yNTQ3KXtyZXR1cm4ga3wwfXJldHVybiAwfWZ1bmN0aW9uIGp4KGIsZSxmLGcsaCxpLGos
ayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7dmFyIGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtjW2Y+PjJdPWI7Y1tpPj4yXT1n
O2c9Y1tmPj4yXXwwO2Rve2lmKChrJjR8MCk9PTApe2w9Z31lbHNle2lmKChlLWd8MCk8PTIpe2w9
ZzticmVha31pZigoYVtnXXwwKSE9LTE3KXtsPWc7YnJlYWt9aWYoKGFbZysxfDBdfDApIT0tNjkp
e2w9ZzticmVha31pZigoYVtnKzJ8MF18MCkhPS02NSl7bD1nO2JyZWFrfWI9ZyszfDA7Y1tmPj4y
XT1iO2w9Yn19d2hpbGUoMCk7TDI5NDQ6ZG97aWYobD4+PjA8ZT4+PjApe2c9ZTtrPWNbaT4+Ml18
MDtiPWw7TDI5NDY6d2hpbGUoMSl7aWYoaz4+PjA+PWg+Pj4wKXttPWI7YnJlYWsgTDI5NDR9bj1h
W2JdfDA7bz1uJjI1NTtkb3tpZihuPDwyND4+MjQ+LTEpe2lmKG8+Pj4wPmo+Pj4wKXtwPTI7cT0y
NjA5O2JyZWFrIEwyOTQ2fWNbaz4+Ml09bztjW2Y+PjJdPShjW2Y+PjJdfDApKzF9ZWxzZXtpZigo
biYyNTUpPDE5NCl7cD0yO3E9MjYwMjticmVhayBMMjk0Nn1pZigobiYyNTUpPDIyNCl7aWYoKGct
YnwwKTwyKXtwPTE7cT0yNjA1O2JyZWFrIEwyOTQ2fXI9ZFtiKzF8MF18MDtpZigociYxOTJ8MCkh
PTEyOCl7cD0yO3E9MjU5ODticmVhayBMMjk0Nn1zPXImNjN8bzw8NiYxOTg0O2lmKHM+Pj4wPmo+
Pj4wKXtwPTI7cT0yNjA0O2JyZWFrIEwyOTQ2fWNbaz4+Ml09cztjW2Y+PjJdPShjW2Y+PjJdfDAp
KzI7YnJlYWt9aWYoKG4mMjU1KTwyNDApe2lmKChnLWJ8MCk8Myl7cD0xO3E9MjYwNjticmVhayBM
Mjk0Nn1zPWFbYisxfDBdfDA7c3dpdGNoKG98MCl7Y2FzZSAyMjQ6e2lmKChzJi0zMik8PDI0Pj4y
NCE9LTk2KXtwPTI7cT0yNTkxO2JyZWFrIEwyOTQ2fWJyZWFrfTtjYXNlIDIzNzp7aWYoKHMmLTMy
KTw8MjQ+PjI0IT0tMTI4KXtwPTI7cT0yNTkzO2JyZWFrIEwyOTQ2fWJyZWFrfTtkZWZhdWx0Ontp
ZigocyYtNjQpPDwyND4+MjQhPS0xMjgpe3A9MjtxPTI2MDM7YnJlYWsgTDI5NDZ9fX1yPWRbYisy
fDBdfDA7aWYoKHImMTkyfDApIT0xMjgpe3A9MjtxPTI1OTQ7YnJlYWsgTDI5NDZ9dD0ocyYyNTUp
PDw2JjQwMzJ8bzw8MTImNjE0NDB8ciY2MztpZih0Pj4+MD5qPj4+MCl7cD0yO3E9MjU5MjticmVh
ayBMMjk0Nn1jW2s+PjJdPXQ7Y1tmPj4yXT0oY1tmPj4yXXwwKSszO2JyZWFrfWlmKChuJjI1NSk+
PTI0NSl7cD0yO3E9MjYwNzticmVhayBMMjk0Nn1pZigoZy1ifDApPDQpe3A9MTtxPTI2MDg7YnJl
YWsgTDI5NDZ9dD1hW2IrMXwwXXwwO3N3aXRjaChvfDApe2Nhc2UgMjQwOntpZigodCsxMTImMjU1
KT49NDgpe3A9MjtxPTI1OTA7YnJlYWsgTDI5NDZ9YnJlYWt9O2Nhc2UgMjQ0OntpZigodCYtMTYp
PDwyND4+MjQhPS0xMjgpe3A9MjtxPTI1OTY7YnJlYWsgTDI5NDZ9YnJlYWt9O2RlZmF1bHQ6e2lm
KCh0Ji02NCk8PDI0Pj4yNCE9LTEyOCl7cD0yO3E9MjU5NzticmVhayBMMjk0Nn19fXI9ZFtiKzJ8
MF18MDtpZigociYxOTJ8MCkhPTEyOCl7cD0yO3E9MjU5OTticmVhayBMMjk0Nn1zPWRbYiszfDBd
fDA7aWYoKHMmMTkyfDApIT0xMjgpe3A9MjtxPTI2MDE7YnJlYWsgTDI5NDZ9dT0odCYyNTUpPDwx
MiYyNTgwNDh8bzw8MTgmMTgzNTAwOHxyPDw2JjQwMzJ8cyY2MztpZih1Pj4+MD5qPj4+MCl7cD0y
O3E9MjYwMDticmVhayBMMjk0Nn1jW2s+PjJdPXU7Y1tmPj4yXT0oY1tmPj4yXXwwKSs0fX13aGls
ZSgwKTtvPShjW2k+PjJdfDApKzR8MDtjW2k+PjJdPW87bj1jW2Y+PjJdfDA7aWYobj4+PjA8ZT4+
PjApe2s9bztiPW59ZWxzZXttPW47YnJlYWsgTDI5NDR9fWlmKChxfDApPT0yNTk3KXtyZXR1cm4g
cHwwfWVsc2UgaWYoKHF8MCk9PTI1OTgpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5OSl7
cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjAwKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9
PTI1OTMpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5NCl7cmV0dXJuIHB8MH1lbHNlIGlm
KChxfDApPT0yNTk2KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDUpe3JldHVybiBwfDB9
ZWxzZSBpZigocXwwKT09MjYwNil7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA3KXtyZXR1
cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDgpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYw
OSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTkwKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8
MCk9PTI1OTEpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5Mil7cmV0dXJuIHB8MH1lbHNl
IGlmKChxfDApPT0yNjAxKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDIpe3JldHVybiBw
fDB9ZWxzZSBpZigocXwwKT09MjYwMyl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA0KXty
ZXR1cm4gcHwwfX1lbHNle209bH19d2hpbGUoMCk7cD1tPj4+MDxlPj4+MHwwO3JldHVybiBwfDB9
ZnVuY3Rpb24gankoYixjLGUsZixnKXtiPWJ8MDtjPWN8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIg
aD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtk
b3tpZigoZyY0fDApPT0wKXtoPWJ9ZWxzZXtpZigoYy1ifDApPD0yKXtoPWI7YnJlYWt9aWYoKGFb
Yl18MCkhPS0xNyl7aD1iO2JyZWFrfWlmKChhW2IrMXwwXXwwKSE9LTY5KXtoPWI7YnJlYWt9aD0o
YVtiKzJ8MF18MCk9PS02NT9iKzN8MDpifX13aGlsZSgwKTtMMzAxMTpkb3tpZihoPj4+MDxjPj4+
MCYoZXwwKSE9MCl7Zz1jO2k9MTtqPWg7TDMwMTM6d2hpbGUoMSl7az1hW2pdfDA7bD1rJjI1NTtk
b3tpZihrPDwyND4+MjQ+LTEpe2lmKGw+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzF8
MH1lbHNle2lmKChrJjI1NSk8MTk0KXttPWo7YnJlYWsgTDMwMTF9aWYoKGsmMjU1KTwyMjQpe2lm
KChnLWp8MCk8Mil7bT1qO2JyZWFrIEwzMDExfW89ZFtqKzF8MF18MDtpZigobyYxOTJ8MCkhPTEy
OCl7bT1qO2JyZWFrIEwzMDExfWlmKChvJjYzfGw8PDYmMTk4NCk+Pj4wPmY+Pj4wKXttPWo7YnJl
YWsgTDMwMTF9bj1qKzJ8MDticmVha31pZigoayYyNTUpPDI0MCl7cD1qO2lmKChnLXB8MCk8Myl7
bT1qO2JyZWFrIEwzMDExfW89YVtqKzF8MF18MDtzd2l0Y2gobHwwKXtjYXNlIDIyNDp7aWYoKG8m
LTMyKTw8MjQ+PjI0IT0tOTYpe3E9MjYzMDticmVhayBMMzAxM31icmVha307Y2FzZSAyMzc6e2lm
KChvJi0zMik8PDI0Pj4yNCE9LTEyOCl7cT0yNjMyO2JyZWFrIEwzMDEzfWJyZWFrfTtkZWZhdWx0
OntpZigobyYtNjQpPDwyND4+MjQhPS0xMjgpe3E9MjYzNDticmVhayBMMzAxM319fXI9ZFtqKzJ8
MF18MDtpZigociYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKCgobyYyNTUpPDw2JjQw
MzJ8bDw8MTImNjE0NDB8ciY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzN8MDti
cmVha31pZigoayYyNTUpPj0yNDUpe209ajticmVhayBMMzAxMX1zPWo7aWYoKGctc3wwKTw0KXtt
PWo7YnJlYWsgTDMwMTF9cj1hW2orMXwwXXwwO3N3aXRjaChsfDApe2Nhc2UgMjQwOntpZigocisx
MTImMjU1KT49NDgpe3E9MjY0MjticmVhayBMMzAxM31icmVha307Y2FzZSAyNDQ6e2lmKChyJi0x
Nik8PDI0Pj4yNCE9LTEyOCl7cT0yNjQ0O2JyZWFrIEwzMDEzfWJyZWFrfTtkZWZhdWx0OntpZigo
ciYtNjQpPDwyND4+MjQhPS0xMjgpe3E9MjY0NjticmVhayBMMzAxM319fW89ZFtqKzJ8MF18MDtp
ZigobyYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfXQ9ZFtqKzN8MF18MDtpZigodCYxOTJ8
MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKCgociYyNTUpPDwxMiYyNTgwNDh8bDw8MTgmMTgz
NTAwOHxvPDw2JjQwMzJ8dCY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzR8MH19
d2hpbGUoMCk7aWYoIShuPj4+MDxjPj4+MCZpPj4+MDxlPj4+MCkpe209bjticmVhayBMMzAxMX1p
PWkrMXwwO2o9bn1pZigocXwwKT09MjY0NCl7dT1zLWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYoKHF8
MCk9PTI2NDIpe3U9cy1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjMwKXt1PXAtYnww
O3JldHVybiB1fDB9ZWxzZSBpZigocXwwKT09MjYzMil7dT1wLWJ8MDtyZXR1cm4gdXwwfWVsc2Ug
aWYoKHF8MCk9PTI2MzQpe3U9cC1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjQ2KXt1
PXMtYnwwO3JldHVybiB1fDB9fWVsc2V7bT1ofX13aGlsZSgwKTt1PW0tYnwwO3JldHVybiB1fDB9
ZnVuY3Rpb24ganooYil7Yj1ifDA7cmV0dXJuIGFbYis4fDBdfDB9ZnVuY3Rpb24gakEoYSl7YT1h
fDA7cmV0dXJuIGNbYSs4Pj4yXXwwfWZ1bmN0aW9uIGpCKGIpe2I9YnwwO3JldHVybiBhW2IrOXww
XXwwfWZ1bmN0aW9uIGpDKGEpe2E9YXwwO3JldHVybiBjW2ErMTI+PjJdfDB9ZnVuY3Rpb24gakQo
YSxiLGQsZSxmLGcsaCxqKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtqPWp8MDt2YXIgaz0wLGw9MDtiPWk7aT1pKzE2fDA7YT1ifDA7az1iKzh8MDtjW2E+PjJdPWQ7
Y1trPj4yXT1nO2w9angoZCxlLGEsZyxoLGssMTExNDExMSwwKXwwO2NbZj4+Ml09ZCsoKGNbYT4+
Ml18MCktZCk7Y1tqPj4yXT1nKygoY1trPj4yXXwwKS1nPj4yPDwyKTtpPWI7cmV0dXJuIGx8MH1m
dW5jdGlvbiBqRShhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO3JldHVy
biBqeShjLGQsZSwxMTE0MTExLDApfDB9ZnVuY3Rpb24gakYoYSl7YT1hfDA7ZGUoYXwwKTtrUyhh
KTtyZXR1cm59ZnVuY3Rpb24gakcoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24gakgoYSl7YT1hfDA7Y1thPj4yXT0zMDMyO2RQKGErMTJ8MCk7ZGUoYXwwKTtrUyhhKTtyZXR1
cm59ZnVuY3Rpb24gakkoYSl7YT1hfDA7Y1thPj4yXT0zMDMyO2RQKGErMTJ8MCk7ZGUoYXwwKTty
ZXR1cm59ZnVuY3Rpb24gakooYSl7YT1hfDA7Y1thPj4yXT0yOTg0O2RQKGErMTZ8MCk7ZGUoYXww
KTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaksoYSl7YT1hfDA7Y1thPj4yXT0yOTg0O2RQKGErMTZ8
MCk7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gakwoYSxiKXthPWF8MDtiPWJ8MDtkWShhLGIrMTJ8
MCk7cmV0dXJufWZ1bmN0aW9uIGpNKGEsYil7YT1hfDA7Yj1ifDA7ZFkoYSxiKzE2fDApO3JldHVy
bn1mdW5jdGlvbiBqTihhLGIpe2E9YXwwO2I9YnwwO2RaKGEsMTI4OCw0KTtyZXR1cm59ZnVuY3Rp
b24gak8oYSxiKXthPWF8MDtiPWJ8MDtleChhLDEyNjQsa20oMTI2NCl8MCk7cmV0dXJufWZ1bmN0
aW9uIGpQKGEsYil7YT1hfDA7Yj1ifDA7ZFooYSwxMjU2LDUpO3JldHVybn1mdW5jdGlvbiBqUShh
LGIpe2E9YXwwO2I9YnwwO2V4KGEsMTIzMixrbSgxMjMyKXwwKTtyZXR1cm59ZnVuY3Rpb24galIo
Yil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM1Ml18MCkhPTApe2Q9Y1szNzAyXXwwO3JldHVybiBk
fDB9aWYoKGJjKDE2MzUyKXwwKT09MCl7ZD1jWzM3MDJdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsx
NjIzMl18MCk9PTApe2lmKChiYygxNjIzMil8MCk9PTApe2JyZWFrfWskKDExMzQ0LDAsMTY4KTth
JCgyNjYsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExMzQ0LDE1MzYpfDA7ZFEoMTEzNTYsMTUyOCl8
MDtkUSgxMTM2OCwxNTIwKXwwO2RRKDExMzgwLDE1MDQpfDA7ZFEoMTEzOTIsMTQ4OCl8MDtkUSgx
MTQwNCwxNDgwKXwwO2RRKDExNDE2LDE0NjQpfDA7ZFEoMTE0MjgsMTQ1Nil8MDtkUSgxMTQ0MCwx
NDQ4KXwwO2RRKDExNDUyLDE0NDApfDA7ZFEoMTE0NjQsMTQzMil8MDtkUSgxMTQ3NiwxNDAwKXww
O2RRKDExNDg4LDEzOTIpfDA7ZFEoMTE1MDAsMTM4NCl8MDtjWzM3MDJdPTExMzQ0O2Q9Y1szNzAy
XXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galMoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjI5Nl18
MCkhPTApe2Q9Y1szNjgwXXwwO3JldHVybiBkfDB9aWYoKGJjKDE2Mjk2KXwwKT09MCl7ZD1jWzM2
ODBdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsxNjIwOF18MCk9PTApe2lmKChiYygxNjIwOCl8MCk9
PTApe2JyZWFrfWskKDEwNjAwLDAsMTY4KTthJCgxNDgsMCx1fDApfDB9fXdoaWxlKDApO2VmKDEw
NjAwLDE5MTIpfDA7ZWYoMTA2MTIsMTg4MCl8MDtlZigxMDYyNCwxODQ4KXwwO2VmKDEwNjM2LDE4
MDgpfDA7ZWYoMTA2NDgsMTc2OCl8MDtlZigxMDY2MCwxNzM2KXwwO2VmKDEwNjcyLDE2OTYpfDA7
ZWYoMTA2ODQsMTY4MCl8MDtlZigxMDY5NiwxNjI0KXwwO2VmKDEwNzA4LDE2MDgpfDA7ZWYoMTA3
MjAsMTU5Mil8MDtlZigxMDczMiwxNTc2KXwwO2VmKDEwNzQ0LDE1NjApfDA7ZWYoMTA3NTYsMTU0
NCl8MDtjWzM2ODBdPTEwNjAwO2Q9Y1szNjgwXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galQoYil7
Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM0NF18MCkhPTApe2Q9Y1szNzAwXXwwO3JldHVybiBkfDB9
aWYoKGJjKDE2MzQ0KXwwKT09MCl7ZD1jWzM3MDBdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsxNjIy
NF18MCk9PTApe2lmKChiYygxNjIyNCl8MCk9PTApe2JyZWFrfWskKDExMDU2LDAsMjg4KTthJCgx
NzAsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExMDU2LDI4OCl8MDtkUSgxMTA2OCwyNzIpfDA7ZFEo
MTEwODAsMjY0KXwwO2RRKDExMDkyLDI1Nil8MDtkUSgxMTEwNCwyNDgpfDA7ZFEoMTExMTYsMjQw
KXwwO2RRKDExMTI4LDIzMil8MDtkUSgxMTE0MCwyMjQpfDA7ZFEoMTExNTIsMTY4KXwwO2RRKDEx
MTY0LDE2MCl8MDtkUSgxMTE3NiwxNDQpfDA7ZFEoMTExODgsMTI4KXwwO2RRKDExMjAwLDEyMCl8
MDtkUSgxMTIxMiwxMTIpfDA7ZFEoMTEyMjQsMTA0KXwwO2RRKDExMjM2LDk2KXwwO2RRKDExMjQ4
LDI0OCl8MDtkUSgxMTI2MCw4OCl8MDtkUSgxMTI3Miw4MCl8MDtkUSgxMTI4NCwxOTc2KXwwO2RR
KDExMjk2LDE5NjgpfDA7ZFEoMTEzMDgsMTk2MCl8MDtkUSgxMTMyMCwxOTUyKXwwO2RRKDExMzMy
LDE5NDQpfDA7Y1szNzAwXT0xMTA1NjtkPWNbMzcwMF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpV
KGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYyODhdfDApIT0wKXtkPWNbMzY3OF18MDtyZXR1cm4g
ZHwwfWlmKChiYygxNjI4OCl8MCk9PTApe2Q9Y1szNjc4XXwwO3JldHVybiBkfDB9ZG97aWYoKGFb
MTYyMDBdfDApPT0wKXtpZigoYmMoMTYyMDApfDApPT0wKXticmVha31rJCgxMDMxMiwwLDI4OCk7
YSQoMTIyLDAsdXwwKXwwfX13aGlsZSgwKTtlZigxMDMxMiw4MjQpfDA7ZWYoMTAzMjQsNzg0KXww
O2VmKDEwMzM2LDc2MCl8MDtlZigxMDM0OCw3MzYpfDA7ZWYoMTAzNjAsNDI0KXwwO2VmKDEwMzcy
LDcxMil8MDtlZigxMDM4NCw2ODgpfDA7ZWYoMTAzOTYsNjU2KXwwO2VmKDEwNDA4LDYxNil8MDtl
ZigxMDQyMCw1ODQpfDA7ZWYoMTA0MzIsNTQ0KXwwO2VmKDEwNDQ0LDUwNCl8MDtlZigxMDQ1Niw0
ODgpfDA7ZWYoMTA0NjgsNDcyKXwwO2VmKDEwNDgwLDQ1Nil8MDtlZigxMDQ5Miw0NDApfDA7ZWYo
MTA1MDQsNDI0KXwwO2VmKDEwNTE2LDQwOCl8MDtlZigxMDUyOCwzOTIpfDA7ZWYoMTA1NDAsMzc2
KXwwO2VmKDEwNTUyLDM0NCl8MDtlZigxMDU2NCwzMjgpfDA7ZWYoMTA1NzYsMzEyKXwwO2VmKDEw
NTg4LDI5Nil8MDtjWzM2NzhdPTEwMzEyO2Q9Y1szNjc4XXwwO3JldHVybiBkfDB9ZnVuY3Rpb24g
alYoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM2MF18MCkhPTApe2Q9Y1szNzA0XXwwO3JldHVy
biBkfDB9aWYoKGJjKDE2MzYwKXwwKT09MCl7ZD1jWzM3MDRdfDA7cmV0dXJuIGR8MH1kb3tpZigo
YVsxNjI0MF18MCk9PTApe2lmKChiYygxNjI0MCl8MCk9PTApe2JyZWFrfWskKDExNTEyLDAsMjg4
KTthJCgxMjAsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExNTEyLDg2NCl8MDtkUSgxMTUyNCw4NTYp
fDA7Y1szNzA0XT0xMTUxMjtkPWNbMzcwNF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpXKGIpe2I9
YnwwO3ZhciBkPTA7aWYoKGFbMTYzMDRdfDApIT0wKXtkPWNbMzY4Ml18MDtyZXR1cm4gZHwwfWlm
KChiYygxNjMwNCl8MCk9PTApe2Q9Y1szNjgyXXwwO3JldHVybiBkfDB9ZG97aWYoKGFbMTYyMTZd
fDApPT0wKXtpZigoYmMoMTYyMTYpfDApPT0wKXticmVha31rJCgxMDc2OCwwLDI4OCk7YSQoMjQw
LDAsdXwwKXwwfX13aGlsZSgwKTtlZigxMDc2OCw4ODgpfDA7ZWYoMTA3ODAsODcyKXwwO2NbMzY4
Ml09MTA3Njg7ZD1jWzM2ODJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBqWChiKXtiPWJ8MDtpZigo
YVsxNjM2OF18MCkhPTApe3JldHVybiAxNDgyNH1pZigoYmMoMTYzNjgpfDApPT0wKXtyZXR1cm4g
MTQ4MjR9ZFooMTQ4MjQsMTIxNiw4KTthJCgyNTgsMTQ4MjQsdXwwKXwwO3JldHVybiAxNDgyNH1m
dW5jdGlvbiBqWShiKXtiPWJ8MDtpZigoYVsxNjMxMl18MCkhPTApe3JldHVybiAxNDczNn1pZigo
YmMoMTYzMTIpfDApPT0wKXtyZXR1cm4gMTQ3MzZ9ZXgoMTQ3MzYsMTE3NixrbSgxMTc2KXwwKTth
JCgxOTIsMTQ3MzYsdXwwKXwwO3JldHVybiAxNDczNn1mdW5jdGlvbiBqWihiKXtiPWJ8MDtpZigo
YVsxNjM5Ml18MCkhPTApe3JldHVybiAxNDg3Mn1pZigoYmMoMTYzOTIpfDApPT0wKXtyZXR1cm4g
MTQ4NzJ9ZFooMTQ4NzIsMTE0NCw4KTthJCgyNTgsMTQ4NzIsdXwwKXwwO3JldHVybiAxNDg3Mn1m
dW5jdGlvbiBqXyhiKXtiPWJ8MDtpZigoYVsxNjMzNl18MCkhPTApe3JldHVybiAxNDc4NH1pZigo
YmMoMTYzMzYpfDApPT0wKXtyZXR1cm4gMTQ3ODR9ZXgoMTQ3ODQsMTEwNCxrbSgxMTA0KXwwKTth
JCgxOTIsMTQ3ODQsdXwwKXwwO3JldHVybiAxNDc4NH1mdW5jdGlvbiBqJChiKXtiPWJ8MDtpZigo
YVsxNjM4NF18MCkhPTApe3JldHVybiAxNDg1Nn1pZigoYmMoMTYzODQpfDApPT0wKXtyZXR1cm4g
MTQ4NTZ9ZFooMTQ4NTYsMTA4MCwyMCk7YSQoMjU4LDE0ODU2LHV8MCl8MDtyZXR1cm4gMTQ4NTZ9
ZnVuY3Rpb24gajAoYil7Yj1ifDA7aWYoKGFbMTYzMjhdfDApIT0wKXtyZXR1cm4gMTQ3Njh9aWYo
KGJjKDE2MzI4KXwwKT09MCl7cmV0dXJuIDE0NzY4fWV4KDE0NzY4LDk5MixrbSg5OTIpfDApO2Ek
KDE5MiwxNDc2OCx1fDApfDA7cmV0dXJuIDE0NzY4fWZ1bmN0aW9uIGoxKGIpe2I9YnwwO2lmKChh
WzE2Mzc2XXwwKSE9MCl7cmV0dXJuIDE0ODQwfWlmKChiYygxNjM3Nil8MCk9PTApe3JldHVybiAx
NDg0MH1kWigxNDg0MCw5NzYsMTEpO2EkKDI1OCwxNDg0MCx1fDApfDA7cmV0dXJuIDE0ODQwfWZ1
bmN0aW9uIGoyKGIpe2I9YnwwO2lmKChhWzE2MzIwXXwwKSE9MCl7cmV0dXJuIDE0NzUyfWlmKChi
YygxNjMyMCl8MCk9PTApe3JldHVybiAxNDc1Mn1leCgxNDc1Miw5Mjgsa20oOTI4KXwwKTthJCgx
OTIsMTQ3NTIsdXwwKXwwO3JldHVybiAxNDc1Mn1mdW5jdGlvbiBqMyhhKXthPWF8MDt2YXIgYj0w
LGQ9MCxlPTAsZj0wO2I9YSs0fDA7ZD0oY1thPj4yXXwwKSsoY1tiKzQ+PjJdfDApfDA7YT1kO2U9
Y1tiPj4yXXwwO2lmKChlJjF8MCk9PTApe2Y9ZTtiWVtmJjUxMV0oYSk7cmV0dXJufWVsc2V7Zj1j
WyhjW2Q+PjJdfDApKyhlLTEpPj4yXXwwO2JZW2YmNTExXShhKTtyZXR1cm59fWZ1bmN0aW9uIGo0
KGEpe2E9YXwwO2VlKDExMDQ0KTtlZSgxMTAzMik7ZWUoMTEwMjApO2VlKDExMDA4KTtlZSgxMDk5
Nik7ZWUoMTA5ODQpO2VlKDEwOTcyKTtlZSgxMDk2MCk7ZWUoMTA5NDgpO2VlKDEwOTM2KTtlZSgx
MDkyNCk7ZWUoMTA5MTIpO2VlKDEwOTAwKTtlZSgxMDg4OCk7ZWUoMTA4NzYpO2VlKDEwODY0KTtl
ZSgxMDg1Mik7ZWUoMTA4NDApO2VlKDEwODI4KTtlZSgxMDgxNik7ZWUoMTA4MDQpO2VlKDEwNzky
KTtlZSgxMDc4MCk7ZWUoMTA3NjgpO3JldHVybn1mdW5jdGlvbiBqNShiLGQpe2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wO2U9Yis4fDA7Zj1iKzR8MDtnPWNbZj4+Ml18MDtoPWNbZT4+Ml18MDtpPWc7aWYoaC1pPj4y
Pj4+MD49ZD4+PjApe2o9ZDtrPWc7ZG97aWYoKGt8MCk9PTApe2w9MH1lbHNle2Nbaz4+Ml09MDts
PWNbZj4+Ml18MH1rPWwrNHwwO2NbZj4+Ml09aztqPWotMXwwO313aGlsZSgoanwwKSE9MCk7cmV0
dXJufWo9YisxNnwwO2s9YnwwO2w9Y1trPj4yXXwwO2c9aS1sPj4yO2k9ZytkfDA7aWYoaT4+PjA+
MTA3Mzc0MTgyMyl7aXIoMCl9bT1oLWx8MDtkb3tpZihtPj4yPj4+MD41MzY4NzA5MTApe249MTA3
Mzc0MTgyMztvPTI5MTl9ZWxzZXtsPW0+PjE7aD1sPj4+MDxpPj4+MD9pOmw7aWYoKGh8MCk9PTAp
e3A9MDtxPTA7YnJlYWt9bD1iKzEyOHwwO2lmKCEoKGFbbF0mMSk9PTAmaD4+PjA8MjkpKXtuPWg7
bz0yOTE5O2JyZWFrfWFbbF09MTtwPWo7cT1ofX13aGlsZSgwKTtpZigob3wwKT09MjkxOSl7cD1r
TyhuPDwyKXwwO3E9bn1uPWQ7ZD1wKyhnPDwyKXwwO2Rve2lmKChkfDApPT0wKXtyPTB9ZWxzZXtj
W2Q+PjJdPTA7cj1kfWQ9cis0fDA7bj1uLTF8MDt9d2hpbGUoKG58MCkhPTApO249cCsocTw8Mil8
MDtxPWNbaz4+Ml18MDtyPShjW2Y+PjJdfDApLXF8MDtvPXArKGctKHI+PjIpPDwyKXwwO2c9bztw
PXE7a1koZ3wwLHB8MCxyKXwwO2Nbaz4+Ml09bztjW2Y+PjJdPWQ7Y1tlPj4yXT1uO2lmKChxfDAp
PT0wKXtyZXR1cm59aWYoKHF8MCk9PShqfDApKXthW2IrMTI4fDBdPTA7cmV0dXJufWVsc2V7a1Mo
cCk7cmV0dXJufX1mdW5jdGlvbiBqNihhKXthPWF8MDtkUCgxMTc4OCk7ZFAoMTE3NzYpO2RQKDEx
NzY0KTtkUCgxMTc1Mik7ZFAoMTE3NDApO2RQKDExNzI4KTtkUCgxMTcxNik7ZFAoMTE3MDQpO2RQ
KDExNjkyKTtkUCgxMTY4MCk7ZFAoMTE2NjgpO2RQKDExNjU2KTtkUCgxMTY0NCk7ZFAoMTE2MzIp
O2RQKDExNjIwKTtkUCgxMTYwOCk7ZFAoMTE1OTYpO2RQKDExNTg0KTtkUCgxMTU3Mik7ZFAoMTE1
NjApO2RQKDExNTQ4KTtkUCgxMTUzNik7ZFAoMTE1MjQpO2RQKDExNTEyKTtyZXR1cm59ZnVuY3Rp
b24gajcoYSl7YT1hfDA7ZWUoMTA1ODgpO2VlKDEwNTc2KTtlZSgxMDU2NCk7ZWUoMTA1NTIpO2Vl
KDEwNTQwKTtlZSgxMDUyOCk7ZWUoMTA1MTYpO2VlKDEwNTA0KTtlZSgxMDQ5Mik7ZWUoMTA0ODAp
O2VlKDEwNDY4KTtlZSgxMDQ1Nik7ZWUoMTA0NDQpO2VlKDEwNDMyKTtlZSgxMDQyMCk7ZWUoMTA0
MDgpO2VlKDEwMzk2KTtlZSgxMDM4NCk7ZWUoMTAzNzIpO2VlKDEwMzYwKTtlZSgxMDM0OCk7ZWUo
MTAzMzYpO2VlKDEwMzI0KTtlZSgxMDMxMik7cmV0dXJufWZ1bmN0aW9uIGo4KGEpe2E9YXwwO2RQ
KDExMzMyKTtkUCgxMTMyMCk7ZFAoMTEzMDgpO2RQKDExMjk2KTtkUCgxMTI4NCk7ZFAoMTEyNzIp
O2RQKDExMjYwKTtkUCgxMTI0OCk7ZFAoMTEyMzYpO2RQKDExMjI0KTtkUCgxMTIxMik7ZFAoMTEy
MDApO2RQKDExMTg4KTtkUCgxMTE3Nik7ZFAoMTExNjQpO2RQKDExMTUyKTtkUCgxMTE0MCk7ZFAo
MTExMjgpO2RQKDExMTE2KTtkUCgxMTEwNCk7ZFAoMTEwOTIpO2RQKDExMDgwKTtkUCgxMTA2OCk7
ZFAoMTEwNTYpO3JldHVybn1mdW5jdGlvbiBqOShhKXthPWF8MDtlZSgxMDc1Nik7ZWUoMTA3NDQp
O2VlKDEwNzMyKTtlZSgxMDcyMCk7ZWUoMTA3MDgpO2VlKDEwNjk2KTtlZSgxMDY4NCk7ZWUoMTA2
NzIpO2VlKDEwNjYwKTtlZSgxMDY0OCk7ZWUoMTA2MzYpO2VlKDEwNjI0KTtlZSgxMDYxMik7ZWUo
MTA2MDApO3JldHVybn1mdW5jdGlvbiBrYShhKXthPWF8MDtkUCgxMTUwMCk7ZFAoMTE0ODgpO2RQ
KDExNDc2KTtkUCgxMTQ2NCk7ZFAoMTE0NTIpO2RQKDExNDQwKTtkUCgxMTQyOCk7ZFAoMTE0MTYp
O2RQKDExNDA0KTtkUCgxMTM5Mik7ZFAoMTEzODApO2RQKDExMzY4KTtkUCgxMTM1Nik7ZFAoMTEz
NDQpO3JldHVybn1mdW5jdGlvbiBrYihhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJuIGtj
KDAsYSxiLChjfDApIT0wP2M6OTgzMil8MH1mdW5jdGlvbiBrYyhiLGQsZSxmKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCx0PTAsdT0wLHY9MCx3PTA7Zz1pO2k9aSs4fDA7aD1nfDA7Y1toPj4yXT1iO2o9KChmfDAp
PT0wPzk4MjQ6Zil8MDtmPWNbaj4+Ml18MDtMNzpkb3tpZigoZHwwKT09MCl7aWYoKGZ8MCk9PTAp
e2s9MH1lbHNle2JyZWFrfWk9ZztyZXR1cm4ga3wwfWVsc2V7aWYoKGJ8MCk9PTApe2w9aDtjW2g+
PjJdPWw7bT1sfWVsc2V7bT1ifWlmKChlfDApPT0wKXtrPS0yO2k9ZztyZXR1cm4ga3wwfWRve2lm
KChmfDApPT0wKXtsPWFbZF18MDtuPWwmMjU1O2lmKGw8PDI0Pj4yND4tMSl7Y1ttPj4yXT1uO2s9
bDw8MjQ+PjI0IT0wfDA7aT1nO3JldHVybiBrfDB9ZWxzZXtsPW4tMTk0fDA7aWYobD4+PjA+NTAp
e2JyZWFrIEw3fW89ZCsxfDA7cD1jW3MrKGw8PDIpPj4yXXwwO3E9ZS0xfDA7YnJlYWt9fWVsc2V7
bz1kO3A9ZjtxPWV9fXdoaWxlKDApO0wyNTpkb3tpZigocXwwKT09MCl7cj1wfWVsc2V7bD1hW29d
fDA7bj0obCYyNTUpPj4+MztpZigobi0xNnxuKyhwPj4yNikpPj4+MD43KXticmVhayBMN31lbHNl
e3Q9bzt1PXA7dj1xO3c9bH13aGlsZSgxKXt0PXQrMXwwO3U9KHcmMjU1KS0xMjh8dTw8Njt2PXYt
MXwwO2lmKCh1fDApPj0wKXticmVha31pZigodnwwKT09MCl7cj11O2JyZWFrIEwyNX13PWFbdF18
MDtpZigoKHcmMjU1KS0xMjh8MCk+Pj4wPjYzKXticmVhayBMN319Y1tqPj4yXT0wO2NbbT4+Ml09
dTtrPWUtdnwwO2k9ZztyZXR1cm4ga3wwfX13aGlsZSgwKTtjW2o+PjJdPXI7az0tMjtpPWc7cmV0
dXJuIGt8MH19d2hpbGUoMCk7Y1tqPj4yXT0wO2NbKGJ3KCl8MCk+PjJdPTEzODtrPS0xO2k9Zzty
ZXR1cm4ga3wwfWZ1bmN0aW9uIGtkKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTA7Zz1pO2k9aSsxMDMyfDA7aD1nfDA7aj1nKzEwMjR8MDtrPWNbYj4+Ml18MDtj
W2o+PjJdPWs7bD0oYXwwKSE9MDttPWw/ZToyNTY7ZT1sP2E6aHwwO0wzODpkb3tpZigoa3wwKT09
MHwobXwwKT09MCl7bj0wO289ZDtwPW07cT1lO3I9a31lbHNle2E9aHwwO3M9bTt0PWQ7dT0wO3Y9
ZTt3PWs7d2hpbGUoMSl7eD10Pj4+Mjt5PXg+Pj4wPj1zPj4+MDtpZighKHl8dD4+PjA+MTMxKSl7
bj11O289dDtwPXM7cT12O3I9dzticmVhayBMMzh9ej15P3M6eDtBPXQtenwwO3g9a2UodixqLHos
Zil8MDtpZigoeHwwKT09LTEpe2JyZWFrfWlmKCh2fDApPT0oYXwwKSl7Qj1hO0M9c31lbHNle0I9
disoeDw8Mil8MDtDPXMteHwwfXo9eCt1fDA7eD1jW2o+PjJdfDA7aWYoKHh8MCk9PTB8KEN8MCk9
PTApe249ejtvPUE7cD1DO3E9QjtyPXg7YnJlYWsgTDM4fWVsc2V7cz1DO3Q9QTt1PXo7dj1CO3c9
eH19bj0tMTtvPUE7cD0wO3E9djtyPWNbaj4+Ml18MH19d2hpbGUoMCk7TDQ5OmRve2lmKChyfDAp
PT0wKXtEPW59ZWxzZXtpZigocHwwKT09MHwob3wwKT09MCl7RD1uO2JyZWFrfWVsc2V7RT1wO0Y9
bztHPW47SD1xO0k9cn13aGlsZSgxKXtKPWtjKEgsSSxGLGYpfDA7aWYoKEorMnwwKT4+PjA8Myl7
YnJlYWt9QT0oY1tqPj4yXXwwKStKfDA7Y1tqPj4yXT1BO0I9RS0xfDA7Qz1HKzF8MDtpZigoQnww
KT09MHwoRnwwKT09KEp8MCkpe0Q9QzticmVhayBMNDl9ZWxzZXtFPUI7Rj1GLUp8MDtHPUM7SD1I
KzR8MDtJPUF9fXN3aXRjaChKfDApe2Nhc2UgMDp7Y1tqPj4yXT0wO0Q9RzticmVhayBMNDk7YnJl
YWt9O2Nhc2UtMTp7RD0tMTticmVhayBMNDk7YnJlYWt9O2RlZmF1bHQ6e2NbZj4+Ml09MDtEPUc7
YnJlYWsgTDQ5fX19fXdoaWxlKDApO2lmKCFsKXtpPWc7cmV0dXJuIER8MH1jW2I+PjJdPWNbaj4+
Ml07aT1nO3JldHVybiBEfDB9ZnVuY3Rpb24ga2UoYixlLGYsZyl7Yj1ifDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxX
PTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MDtoPWNb
ZT4+Ml18MDtkb3tpZigoZ3wwKT09MCl7aT01Nn1lbHNle2o9Z3wwO2s9Y1tqPj4yXXwwO2lmKChr
fDApPT0wKXtpPTU2O2JyZWFrfWlmKChifDApPT0wKXtsPWs7bT1oO249ZjtpPTY3O2JyZWFrfWNb
aj4+Ml09MDtvPWs7cD1oO3E9YjtyPWY7aT04N319d2hpbGUoMCk7aWYoKGl8MCk9PTU2KXtpZigo
YnwwKT09MCl7dD1oO3U9ZjtpPTU4fWVsc2V7dj1oO3c9Yjt4PWY7aT01N319TDcwOndoaWxlKDEp
e2lmKChpfDApPT04Nyl7aT0wO2g9ZFtwXXwwO2c9aD4+PjM7aWYoKGctMTZ8Zysobz4+MjYpKT4+
PjA+Nyl7aT04ODticmVha31nPXArMXwwO3k9aC0xMjh8bzw8Njtkb3tpZigoeXwwKTwwKXtoPShk
W2ddfDApLTEyOHwwO2lmKGg+Pj4wPjYzKXtpPTkxO2JyZWFrIEw3MH1rPXArMnwwO3o9aHx5PDw2
O2lmKCh6fDApPj0wKXtBPXo7Qj1rO2JyZWFrfWg9KGRba118MCktMTI4fDA7aWYoaD4+PjA+NjMp
e2k9OTQ7YnJlYWsgTDcwfUE9aHx6PDw2O0I9cCszfDB9ZWxzZXtBPXk7Qj1nfX13aGlsZSgwKTtj
W3E+PjJdPUE7dj1CO3c9cSs0fDA7eD1yLTF8MDtpPTU3O2NvbnRpbnVlfWVsc2UgaWYoKGl8MCk9
PTU4KXtpPTA7Zz1hW3RdfDA7ZG97aWYoKChnJjI1NSktMXwwKT4+PjA8MTI3KXtpZigodCYzfDAp
IT0wKXtDPXQ7RD11O0U9ZzticmVha31oPWNbdD4+Ml18MDtpZigoKGgtMTY4NDMwMDl8aCkmLTIx
MzkwNjIxNDR8MCk9PTApe0Y9dTtHPXR9ZWxzZXtDPXQ7RD11O0U9aCYyNTU7YnJlYWt9ZG97Rz1H
KzR8MDtGPUYtNHwwO0g9Y1tHPj4yXXwwO313aGlsZSgoKEgtMTY4NDMwMDl8SCkmLTIxMzkwNjIx
NDR8MCk9PTApO0M9RztEPUY7RT1IJjI1NX1lbHNle0M9dDtEPXU7RT1nfX13aGlsZSgwKTtnPUUm
MjU1O2lmKChnLTF8MCk+Pj4wPDEyNyl7dD1DKzF8MDt1PUQtMXwwO2k9NTg7Y29udGludWV9aD1n
LTE5NHwwO2lmKGg+Pj4wPjUwKXtJPUQ7Sj1iO0s9QztpPTk4O2JyZWFrfWw9Y1tzKyhoPDwyKT4+
Ml18MDttPUMrMXwwO249RDtpPTY3O2NvbnRpbnVlfWVsc2UgaWYoKGl8MCk9PTU3KXtpPTA7aWYo
KHh8MCk9PTApe0w9ZjtpPTEwNjticmVha31lbHNle009eDtOPXc7Tz12fXdoaWxlKDEpe2g9YVtP
XXwwO2Rve2lmKCgoaCYyNTUpLTF8MCk+Pj4wPDEyNyl7aWYoKE8mM3wwKT09MCZNPj4+MD4zKXtQ
PU07UT1OO1I9T31lbHNle1M9TztUPU47VT1NO1Y9aDticmVha313aGlsZSgxKXtXPWNbUj4+Ml18
MDtpZigoKFctMTY4NDMwMDl8VykmLTIxMzkwNjIxNDR8MCkhPTApe2k9ODE7YnJlYWt9Y1tRPj4y
XT1XJjI1NTtjW1ErND4+Ml09ZFtSKzF8MF18MDtjW1ErOD4+Ml09ZFtSKzJ8MF18MDtYPVIrNHww
O1k9USsxNnwwO2NbUSsxMj4+Ml09ZFtSKzN8MF18MDtaPVAtNHwwO2lmKFo+Pj4wPjMpe1A9WjtR
PVk7Uj1YfWVsc2V7aT04MjticmVha319aWYoKGl8MCk9PTgxKXtpPTA7Uz1SO1Q9UTtVPVA7Vj1X
JjI1NTticmVha31lbHNlIGlmKChpfDApPT04Mil7aT0wO1M9WDtUPVk7VT1aO1Y9YVtYXXwwO2Jy
ZWFrfX1lbHNle1M9TztUPU47VT1NO1Y9aH19d2hpbGUoMCk7Xz1WJjI1NTtpZigoXy0xfDApPj4+
MD49MTI3KXticmVha31jW1Q+PjJdPV87aD1VLTF8MDtpZigoaHwwKT09MCl7TD1mO2k9MTA1O2Jy
ZWFrIEw3MH1lbHNle009aDtOPVQrNHwwO089UysxfDB9fWg9Xy0xOTR8MDtpZihoPj4+MD41MCl7
ST1VO0o9VDtLPVM7aT05ODticmVha31vPWNbcysoaDw8Mik+PjJdfDA7cD1TKzF8MDtxPVQ7cj1V
O2k9ODc7Y29udGludWV9ZWxzZSBpZigoaXwwKT09Njcpe2k9MDtoPShkW21dfDApPj4+MztpZigo
aC0xNnxoKyhsPj4yNikpPj4+MD43KXtpPTY4O2JyZWFrfWg9bSsxfDA7ZG97aWYoKGwmMzM1NTQ0
MzJ8MCk9PTApeyQ9aH1lbHNle2lmKCgoZFtoXXwwKS0xMjh8MCk+Pj4wPjYzKXtpPTcxO2JyZWFr
IEw3MH1nPW0rMnwwO2lmKChsJjUyNDI4OHwwKT09MCl7JD1nO2JyZWFrfWlmKCgoZFtnXXwwKS0x
Mjh8MCk+Pj4wPjYzKXtpPTc0O2JyZWFrIEw3MH0kPW0rM3wwfX13aGlsZSgwKTt0PSQ7dT1uLTF8
MDtpPTU4O2NvbnRpbnVlfX1pZigoaXwwKT09NzEpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9
OTd9ZWxzZSBpZigoaXwwKT09NzQpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9OTd9ZWxzZSBp
ZigoaXwwKT09Njgpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9OTd9ZWxzZSBpZigoaXwwKT09
ODgpe2FhPW87YWI9cC0xfDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09OTEpe2FhPXk7
YWI9cC0xfDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09OTQpe2FhPXo7YWI9cC0xfDA7
YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09MTA1KXtyZXR1cm4gTHwwfWVsc2UgaWYoKGl8
MCk9PTEwNil7cmV0dXJuIEx8MH1pZigoaXwwKT09OTcpe2lmKChhYXwwKT09MCl7ST1hZDtKPWFj
O0s9YWI7aT05OH1lbHNle2FlPWFjO2FmPWFifX1kb3tpZigoaXwwKT09OTgpe2lmKChhW0tdfDAp
IT0wKXthZT1KO2FmPUs7YnJlYWt9aWYoKEp8MCkhPTApe2NbSj4+Ml09MDtjW2U+PjJdPTB9TD1m
LUl8MDtyZXR1cm4gTHwwfX13aGlsZSgwKTtjWyhidygpfDApPj4yXT0xMzg7aWYoKGFlfDApPT0w
KXtMPS0xO3JldHVybiBMfDB9Y1tlPj4yXT1hZjtMPS0xO3JldHVybiBMfDB9ZnVuY3Rpb24ga2Yo
YixlLGYpe2I9YnwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTA7
Zz1pO2k9aSs4fDA7aD1nfDA7Y1toPj4yXT1iO2lmKChlfDApPT0wKXtqPTA7aT1nO3JldHVybiBq
fDB9ZG97aWYoKGZ8MCkhPTApe2lmKChifDApPT0wKXtrPWg7Y1toPj4yXT1rO2w9a31lbHNle2w9
Yn1rPWFbZV18MDttPWsmMjU1O2lmKGs8PDI0Pj4yND4tMSl7Y1tsPj4yXT1tO2o9azw8MjQ+PjI0
IT0wfDA7aT1nO3JldHVybiBqfDB9az1tLTE5NHwwO2lmKGs+Pj4wPjUwKXticmVha31tPWUrMXww
O249Y1tzKyhrPDwyKT4+Ml18MDtpZihmPj4+MDw0KXtpZigobiYtMjE0NzQ4MzY0OD4+PigoKGYq
NnwwKS02fDApPj4+MCl8MCkhPTApe2JyZWFrfX1rPWRbbV18MDttPWs+Pj4zO2lmKChtLTE2fG0r
KG4+PjI2KSk+Pj4wPjcpe2JyZWFrfW09ay0xMjh8bjw8NjtpZigobXwwKT49MCl7Y1tsPj4yXT1t
O2o9MjtpPWc7cmV0dXJuIGp8MH1uPShkW2UrMnwwXXwwKS0xMjh8MDtpZihuPj4+MD42Myl7YnJl
YWt9az1ufG08PDY7aWYoKGt8MCk+PTApe2NbbD4+Ml09aztqPTM7aT1nO3JldHVybiBqfDB9bT0o
ZFtlKzN8MF18MCktMTI4fDA7aWYobT4+PjA+NjMpe2JyZWFrfWNbbD4+Ml09bXxrPDw2O2o9NDtp
PWc7cmV0dXJuIGp8MH19d2hpbGUoMCk7Y1soYncoKXwwKT4+Ml09MTM4O2o9LTE7aT1nO3JldHVy
biBqfDB9ZnVuY3Rpb24ga2coYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYoKGJ8
MCk9PTApe2Y9MTtyZXR1cm4gZnwwfWlmKGQ+Pj4wPDEyOCl7YVtiXT1kJjI1NTtmPTE7cmV0dXJu
IGZ8MH1pZihkPj4+MDwyMDQ4KXthW2JdPShkPj4+NnwxOTIpJjI1NTthW2IrMXwwXT0oZCY2M3wx
MjgpJjI1NTtmPTI7cmV0dXJuIGZ8MH1pZihkPj4+MDw1NTI5NnwoZC01NzM0NHwwKT4+PjA8ODE5
Mil7YVtiXT0oZD4+PjEyfDIyNCkmMjU1O2FbYisxfDBdPShkPj4+NiY2M3wxMjgpJjI1NTthW2Ir
MnwwXT0oZCY2M3wxMjgpJjI1NTtmPTM7cmV0dXJuIGZ8MH1pZigoZC02NTUzNnwwKT4+PjA8MTA0
ODU3Nil7YVtiXT0oZD4+PjE4fDI0MCkmMjU1O2FbYisxfDBdPShkPj4+MTImNjN8MTI4KSYyNTU7
YVtiKzJ8MF09KGQ+Pj42JjYzfDEyOCkmMjU1O2FbYiszfDBdPShkJjYzfDEyOCkmMjU1O2Y9NDty
ZXR1cm4gZnwwfWVsc2V7Y1soYncoKXwwKT4+Ml09MTM4O2Y9LTE7cmV0dXJuIGZ8MH1yZXR1cm4g
MH1mdW5jdGlvbiBraChhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24ga2koYSl7YT1hfDA7cmV0dXJu
fWZ1bmN0aW9uIGtqKGEpe2E9YXwwO3JldHVybiAxMzI4fDB9ZnVuY3Rpb24ga2soYSl7YT1hfDA7
cmV0dXJufWZ1bmN0aW9uIGtsKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBrbShhKXthPWF8MDt2
YXIgYj0wO2I9YTt3aGlsZSgxKXtpZigoY1tiPj4yXXwwKT09MCl7YnJlYWt9ZWxzZXtiPWIrNHww
fX1yZXR1cm4gYi1hPj4yfDB9ZnVuY3Rpb24ga24oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3Zh
ciBlPTAsZj0wLGc9MDtpZigoZHwwKT09MCl7cmV0dXJuIGF8MH1lbHNle2U9YjtmPWQ7Zz1hfXdo
aWxlKDEpe2Q9Zi0xfDA7Y1tnPj4yXT1jW2U+PjJdO2lmKChkfDApPT0wKXticmVha31lbHNle2U9
ZSs0fDA7Zj1kO2c9Zys0fDB9fXJldHVybiBhfDB9ZnVuY3Rpb24ga28oYSxiLGQpe2E9YXwwO2I9
YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wO2U9KGR8MCk9PTA7aWYoYS1iPj4yPj4+
MDxkPj4+MCl7aWYoZSl7cmV0dXJuIGF8MH1lbHNle2Y9ZH1kb3tmPWYtMXwwO2NbYSsoZjw8Mik+
PjJdPWNbYisoZjw8Mik+PjJdO313aGlsZSgoZnwwKSE9MCk7cmV0dXJuIGF8MH1lbHNle2lmKGUp
e3JldHVybiBhfDB9ZWxzZXtnPWI7aD1kO2k9YX13aGlsZSgxKXtkPWgtMXwwO2NbaT4+Ml09Y1tn
Pj4yXTtpZigoZHwwKT09MCl7YnJlYWt9ZWxzZXtnPWcrNHwwO2g9ZDtpPWkrNHwwfX1yZXR1cm4g
YXwwfXJldHVybiAwfWZ1bmN0aW9uIGtwKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0w
LGY9MDtpZigoZHwwKT09MCl7cmV0dXJuIGF8MH1lbHNle2U9ZDtmPWF9d2hpbGUoMSl7ZD1lLTF8
MDtjW2Y+PjJdPWI7aWYoKGR8MCk9PTApe2JyZWFrfWVsc2V7ZT1kO2Y9Zis0fDB9fXJldHVybiBh
fDB9ZnVuY3Rpb24ga3EoYSl7YT1hfDA7Y1thPj4yXT0yNDQwO3JldHVybn1mdW5jdGlvbiBrcihi
LGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wO2lmKChjW2QrOD4+Ml18MCkh
PShifDApKXtyZXR1cm59Yj1kKzE2fDA7Zz1jW2I+PjJdfDA7aWYoKGd8MCk9PTApe2NbYj4+Ml09
ZTtjW2QrMjQ+PjJdPWY7Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigoZ3wwKSE9KGV8MCkpe2U9ZCsz
NnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7YVtkKzU0fDBdPTE7cmV0dXJu
fWU9ZCsyNHwwO2lmKChjW2U+PjJdfDApIT0yKXtyZXR1cm59Y1tlPj4yXT1mO3JldHVybn1mdW5j
dGlvbiBrcyhhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAs
aD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MDtmPWk7aT1pKzI2
NHwwO2c9ZnwwO2g9ZisyNTZ8MDtqPWNbYj4+Ml18MDtjW2g+PjJdPWo7az0oYXwwKSE9MDtsPWs/
ZToyNTY7ZT1rP2E6Z3wwO0wyNDM6ZG97aWYoKGp8MCk9PTB8KGx8MCk9PTApe209MDtuPWQ7bz1s
O3A9ZTtxPWp9ZWxzZXthPWd8MDtyPWw7cz1kO3Q9MDt1PWU7dj1qO3doaWxlKDEpe3c9cz4+PjA+
PXI+Pj4wO2lmKCEod3xzPj4+MD4zMikpe209dDtuPXM7bz1yO3A9dTtxPXY7YnJlYWsgTDI0M314
PXc/cjpzO3k9cy14fDA7dz1rdCh1LGgseCwwKXwwO2lmKCh3fDApPT0tMSl7YnJlYWt9aWYoKHV8
MCk9PShhfDApKXt6PWE7QT1yfWVsc2V7ej11K3d8MDtBPXItd3wwfXg9dyt0fDA7dz1jW2g+PjJd
fDA7aWYoKHd8MCk9PTB8KEF8MCk9PTApe209eDtuPXk7bz1BO3A9ejtxPXc7YnJlYWsgTDI0M31l
bHNle3I9QTtzPXk7dD14O3U9ejt2PXd9fW09LTE7bj15O289MDtwPXU7cT1jW2g+PjJdfDB9fXdo
aWxlKDApO0wyNTQ6ZG97aWYoKHF8MCk9PTApe0I9bX1lbHNle2lmKChvfDApPT0wfChufDApPT0w
KXtCPW07YnJlYWt9ZWxzZXtDPW87RD1uO0U9bTtGPXA7Rz1xfXdoaWxlKDEpe0g9a2coRixjW0c+
PjJdfDAsMCl8MDtpZigoSCsxfDApPj4+MDwyKXticmVha315PShjW2g+PjJdfDApKzR8MDtjW2g+
PjJdPXk7ej1ELTF8MDtBPUUrMXwwO2lmKChDfDApPT0oSHwwKXwoenwwKT09MCl7Qj1BO2JyZWFr
IEwyNTR9ZWxzZXtDPUMtSHwwO0Q9ejtFPUE7Rj1GK0h8MDtHPXl9fWlmKChIfDApIT0wKXtCPS0x
O2JyZWFrfWNbaD4+Ml09MDtCPUV9fXdoaWxlKDApO2lmKCFrKXtpPWY7cmV0dXJuIEJ8MH1jW2I+
PjJdPWNbaD4+Ml07aT1mO3JldHVybiBCfDB9ZnVuY3Rpb24ga3QoYixkLGUsZil7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7Zj1pO2k9aSs4fDA7Zz1m
fDA7aWYoKGJ8MCk9PTApe2g9Y1tkPj4yXXwwO2o9Z3wwO2s9Y1toPj4yXXwwO2lmKChrfDApPT0w
KXtsPTA7aT1mO3JldHVybiBsfDB9ZWxzZXttPTA7bj1oO289a313aGlsZSgxKXtpZihvPj4+MD4x
Mjcpe2s9a2coaixvLDApfDA7aWYoKGt8MCk9PS0xKXtsPS0xO3A9MjQwO2JyZWFrfWVsc2V7cT1r
fX1lbHNle3E9MX1rPXErbXwwO2g9bis0fDA7cj1jW2g+PjJdfDA7aWYoKHJ8MCk9PTApe2w9aztw
PTI0MTticmVha31lbHNle209aztuPWg7bz1yfX1pZigocHwwKT09MjQwKXtpPWY7cmV0dXJuIGx8
MH1lbHNlIGlmKChwfDApPT0yNDEpe2k9ZjtyZXR1cm4gbHwwfX1MMjgwOmRve2lmKGU+Pj4wPjMp
e289ZTtuPWI7bT1jW2Q+PjJdfDA7d2hpbGUoMSl7cT1jW20+PjJdfDA7aWYoKHF8MCk9PTApe3M9
bzt0PW47YnJlYWsgTDI4MH1pZihxPj4+MD4xMjcpe2o9a2cobixxLDApfDA7aWYoKGp8MCk9PS0x
KXtsPS0xO2JyZWFrfXU9bitqfDA7dj1vLWp8MDt3PW19ZWxzZXthW25dPXEmMjU1O3U9bisxfDA7
dj1vLTF8MDt3PWNbZD4+Ml18MH1xPXcrNHwwO2NbZD4+Ml09cTtpZih2Pj4+MD4zKXtvPXY7bj11
O209cX1lbHNle3M9djt0PXU7YnJlYWsgTDI4MH19aT1mO3JldHVybiBsfDB9ZWxzZXtzPWU7dD1i
fX13aGlsZSgwKTtMMjkyOmRve2lmKChzfDApPT0wKXt4PTB9ZWxzZXtiPWd8MDt1PXM7dj10O3c9
Y1tkPj4yXXwwO3doaWxlKDEpe209Y1t3Pj4yXXwwO2lmKChtfDApPT0wKXtwPTIzNjticmVha31p
ZihtPj4+MD4xMjcpe249a2coYixtLDApfDA7aWYoKG58MCk9PS0xKXtsPS0xO3A9MjQzO2JyZWFr
fWlmKG4+Pj4wPnU+Pj4wKXtwPTIzMjticmVha31vPWNbdz4+Ml18MDtrZyh2LG8sMCl8MDt5PXYr
bnwwO3o9dS1ufDA7QT13fWVsc2V7YVt2XT1tJjI1NTt5PXYrMXwwO3o9dS0xfDA7QT1jW2Q+PjJd
fDB9bT1BKzR8MDtjW2Q+PjJdPW07aWYoKHp8MCk9PTApe3g9MDticmVhayBMMjkyfWVsc2V7dT16
O3Y9eTt3PW19fWlmKChwfDApPT0yMzIpe2w9ZS11fDA7aT1mO3JldHVybiBsfDB9ZWxzZSBpZigo
cHwwKT09MjM2KXthW3ZdPTA7eD11O2JyZWFrfWVsc2UgaWYoKHB8MCk9PTI0Myl7aT1mO3JldHVy
biBsfDB9fX13aGlsZSgwKTtjW2Q+PjJdPTA7bD1lLXh8MDtpPWY7cmV0dXJuIGx8MH1mdW5jdGlv
biBrdShhKXthPWF8MDtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3YoYSl7YT1hfDA7a2goYXwwKTty
ZXR1cm59ZnVuY3Rpb24ga3coYSl7YT1hfDA7a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24g
a3goYSl7YT1hfDA7a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3koYSl7YT1hfDA7a2go
YXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3ooYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3Zh
ciBlPTAsZj0wLGc9MCxoPTA7ZT1pO2k9aSs1NnwwO2Y9ZXwwO2lmKChhfDApPT0oYnwwKSl7Zz0x
O2k9ZTtyZXR1cm4gZ3wwfWlmKChifDApPT0wKXtnPTA7aT1lO3JldHVybiBnfDB9aD1rQyhiLDk3
MDQsOTY4OCwtMSl8MDtiPWg7aWYoKGh8MCk9PTApe2c9MDtpPWU7cmV0dXJuIGd8MH1rJChmfDAs
MCw1Nik7Y1tmPj4yXT1iO2NbZis4Pj4yXT1hO2NbZisxMj4+Ml09LTE7Y1tmKzQ4Pj4yXT0xO2Ni
W2NbKGNbaD4+Ml18MCkrMjg+PjJdJjE1XShiLGYsY1tkPj4yXXwwLDEpO2lmKChjW2YrMjQ+PjJd
fDApIT0xKXtnPTA7aT1lO3JldHVybiBnfDB9Y1tkPj4yXT1jW2YrMTY+PjJdO2c9MTtpPWU7cmV0
dXJuIGd8MH1mdW5jdGlvbiBrQShiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIg
Zz0wO2lmKChifDApIT0oY1tkKzg+PjJdfDApKXtnPWNbYis4Pj4yXXwwO2NiW2NbKGNbZz4+Ml18
MCkrMjg+PjJdJjE1XShnLGQsZSxmKTtyZXR1cm59Zz1kKzE2fDA7Yj1jW2c+PjJdfDA7aWYoKGJ8
MCk9PTApe2NbZz4+Ml09ZTtjW2QrMjQ+PjJdPWY7Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigoYnww
KSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7YVtk
KzU0fDBdPTE7cmV0dXJufWU9ZCsyNHwwO2lmKChjW2U+PjJdfDApIT0yKXtyZXR1cm59Y1tlPj4y
XT1mO3JldHVybn1mdW5jdGlvbiBrQihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2
YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wO2lmKChifDApPT0oY1tkKzg+PjJdfDApKXtn
PWQrMTZ8MDtoPWNbZz4+Ml18MDtpZigoaHwwKT09MCl7Y1tnPj4yXT1lO2NbZCsyND4+Ml09Zjtj
W2QrMzY+PjJdPTE7cmV0dXJufWlmKChofDApIT0oZXwwKSl7aD1kKzM2fDA7Y1toPj4yXT0oY1to
Pj4yXXwwKSsxO2NbZCsyND4+Ml09MjthW2QrNTR8MF09MTtyZXR1cm59aD1kKzI0fDA7aWYoKGNb
aD4+Ml18MCkhPTIpe3JldHVybn1jW2g+PjJdPWY7cmV0dXJufWg9Y1tiKzEyPj4yXXwwO2c9Yisx
NisoaDw8Myl8MDtpPWNbYisyMD4+Ml18MDtqPWk+Pjg7aWYoKGkmMXwwKT09MCl7az1qfWVsc2V7
az1jWyhjW2U+PjJdfDApK2o+PjJdfDB9aj1jW2IrMTY+PjJdfDA7Y2JbY1soY1tqPj4yXXwwKSsy
OD4+Ml0mMTVdKGosZCxlK2t8MCwoaSYyfDApIT0wP2Y6Mik7aWYoKGh8MCk8PTEpe3JldHVybn1o
PWQrNTR8MDtpPWU7az1iKzI0fDA7d2hpbGUoMSl7Yj1jW2srND4+Ml18MDtqPWI+Pjg7aWYoKGIm
MXwwKT09MCl7bD1qfWVsc2V7bD1jWyhjW2k+PjJdfDApK2o+PjJdfDB9aj1jW2s+PjJdfDA7Y2Jb
Y1soY1tqPj4yXXwwKSsyOD4+Ml0mMTVdKGosZCxlK2x8MCwoYiYyfDApIT0wP2Y6Mik7aWYoKGFb
aF0mMSkhPTApe209Mjk3O2JyZWFrfWI9ays4fDA7aWYoYj4+PjA8Zz4+PjApe2s9Yn1lbHNle209
Mjk4O2JyZWFrfX1pZigobXwwKT09Mjk3KXtyZXR1cm59ZWxzZSBpZigobXwwKT09Mjk4KXtyZXR1
cm59fWZ1bmN0aW9uIGtDKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAs
Zz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MDtmPWk7aT1pKzU2fDA7Zz1mfDA7aD1jW2E+
PjJdfDA7aj1hKyhjW2gtOD4+Ml18MCl8MDtrPWNbaC00Pj4yXXwwO2g9aztjW2c+PjJdPWQ7Y1tn
KzQ+PjJdPWE7Y1tnKzg+PjJdPWI7Y1tnKzEyPj4yXT1lO2U9ZysxNnwwO2I9ZysyMHwwO2E9Zysy
NHwwO2w9ZysyOHwwO209ZyszMnwwO249Zys0MHwwO2skKGV8MCwwLDM5KTtpZigoa3wwKT09KGR8
MCkpe2NbZys0OD4+Ml09MTtiOVtjWyhjW2s+PjJdfDApKzIwPj4yXSYzMV0oaCxnLGosaiwxLDAp
O2k9ZjtyZXR1cm4oKGNbYT4+Ml18MCk9PTE/ajowKXwwfWJXW2NbKGNbaz4+Ml18MCkrMjQ+PjJd
JjddKGgsZyxqLDEsMCk7c3dpdGNoKGNbZyszNj4+Ml18MCl7Y2FzZSAxOntkb3tpZigoY1thPj4y
XXwwKSE9MSl7aWYoKGNbbj4+Ml18MCkhPTApe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1tsPj4y
XXwwKSE9MSl7bz0wO2k9ZjtyZXR1cm4gb3wwfWlmKChjW20+PjJdfDApPT0xKXticmVha31lbHNl
e289MH1pPWY7cmV0dXJuIG98MH19d2hpbGUoMCk7bz1jW2U+PjJdfDA7aT1mO3JldHVybiBvfDB9
O2Nhc2UgMDp7aWYoKGNbbj4+Ml18MCkhPTEpe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1tsPj4y
XXwwKSE9MSl7bz0wO2k9ZjtyZXR1cm4gb3wwfW89KGNbbT4+Ml18MCk9PTE/Y1tiPj4yXXwwOjA7
aT1mO3JldHVybiBvfDB9O2RlZmF1bHQ6e289MDtpPWY7cmV0dXJuIG98MH19cmV0dXJuIDB9ZnVu
Y3Rpb24ga0QoYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtpZigoY1tk
Kzg+PjJdfDApPT0oYnwwKSl7aWYoKGNbZCs0Pj4yXXwwKSE9KGV8MCkpe3JldHVybn1nPWQrMjh8
MDtpZigoY1tnPj4yXXwwKT09MSl7cmV0dXJufWNbZz4+Ml09ZjtyZXR1cm59aWYoKGNbZD4+Ml18
MCkhPShifDApKXtyZXR1cm59ZG97aWYoKGNbZCsxNj4+Ml18MCkhPShlfDApKXtiPWQrMjB8MDtp
ZigoY1tiPj4yXXwwKT09KGV8MCkpe2JyZWFrfWNbZCszMj4+Ml09ZjtjW2I+PjJdPWU7Yj1kKzQw
fDA7Y1tiPj4yXT0oY1tiPj4yXXwwKSsxO2Rve2lmKChjW2QrMzY+PjJdfDApPT0xKXtpZigoY1tk
KzI0Pj4yXXwwKSE9Mil7YnJlYWt9YVtkKzU0fDBdPTF9fXdoaWxlKDApO2NbZCs0ND4+Ml09NDty
ZXR1cm59fXdoaWxlKDApO2lmKChmfDApIT0xKXtyZXR1cm59Y1tkKzMyPj4yXT0xO3JldHVybn1m
dW5jdGlvbiBrRShiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1o
fDA7dmFyIGk9MDtpZigoY1tkKzg+PjJdfDApIT0oYnwwKSl7cmV0dXJufWFbZCs1M3wwXT0xO2lm
KChjW2QrND4+Ml18MCkhPShmfDApKXtyZXR1cm59YVtkKzUyfDBdPTE7Zj1kKzE2fDA7Yj1jW2Y+
PjJdfDA7aWYoKGJ8MCk9PTApe2NbZj4+Ml09ZTtjW2QrMjQ+PjJdPWc7Y1tkKzM2Pj4yXT0xO2lm
KCEoKGNbZCs0OD4+Ml18MCk9PTEmKGd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0dXJu
fWlmKChifDApIT0oZXwwKSl7ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2FbZCs1NHww
XT0xO3JldHVybn1lPWQrMjR8MDtiPWNbZT4+Ml18MDtpZigoYnwwKT09Mil7Y1tlPj4yXT1nO2k9
Z31lbHNle2k9Yn1pZighKChjW2QrNDg+PjJdfDApPT0xJihpfDApPT0xKSl7cmV0dXJufWFbZCs1
NHwwXT0xO3JldHVybn1mdW5jdGlvbiBrRihiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO3ZhciBoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAs
Rz0wLEg9MDtoPWJ8MDtpZigoaHwwKT09KGNbZCs4Pj4yXXwwKSl7aWYoKGNbZCs0Pj4yXXwwKSE9
KGV8MCkpe3JldHVybn1pPWQrMjh8MDtpZigoY1tpPj4yXXwwKT09MSl7cmV0dXJufWNbaT4+Ml09
ZjtyZXR1cm59aWYoKGh8MCk9PShjW2Q+PjJdfDApKXtkb3tpZigoY1tkKzE2Pj4yXXwwKSE9KGV8
MCkpe2g9ZCsyMHwwO2lmKChjW2g+PjJdfDApPT0oZXwwKSl7YnJlYWt9Y1tkKzMyPj4yXT1mO2k9
ZCs0NHwwO2lmKChjW2k+PjJdfDApPT00KXtyZXR1cm59aj1jW2IrMTI+PjJdfDA7az1iKzE2Kyhq
PDwzKXwwO0w0NzQ6ZG97aWYoKGp8MCk+MCl7bD1kKzUyfDA7bT1kKzUzfDA7bj1kKzU0fDA7bz1i
Kzh8MDtwPWQrMjR8MDtxPWU7cj0wO3M9YisxNnwwO3Q9MDtMNDc2OndoaWxlKDEpe2FbbF09MDth
W21dPTA7dT1jW3MrND4+Ml18MDt2PXU+Pjg7aWYoKHUmMXwwKT09MCl7dz12fWVsc2V7dz1jWyhj
W3E+PjJdfDApK3Y+PjJdfDB9dj1jW3M+PjJdfDA7YjlbY1soY1t2Pj4yXXwwKSsyMD4+Ml0mMzFd
KHYsZCxlLGUrd3wwLDItKHU+Pj4xJjEpfDAsZyk7aWYoKGFbbl0mMSkhPTApe3g9dDt5PXI7YnJl
YWt9ZG97aWYoKGFbbV0mMSk9PTApe3o9dDtBPXJ9ZWxzZXtpZigoYVtsXSYxKT09MCl7aWYoKGNb
bz4+Ml0mMXwwKT09MCl7eD0xO3k9cjticmVhayBMNDc2fWVsc2V7ej0xO0E9cjticmVha319aWYo
KGNbcD4+Ml18MCk9PTEpe0I9Mzg1O2JyZWFrIEw0NzR9aWYoKGNbbz4+Ml0mMnwwKT09MCl7Qj0z
ODU7YnJlYWsgTDQ3NH1lbHNle3o9MTtBPTF9fX13aGlsZSgwKTt1PXMrOHwwO2lmKHU+Pj4wPGs+
Pj4wKXtyPUE7cz11O3Q9en1lbHNle3g9ejt5PUE7YnJlYWt9fWlmKHkpe0M9eDtCPTM4NH1lbHNl
e0Q9eDtCPTM4MX19ZWxzZXtEPTA7Qj0zODF9fXdoaWxlKDApO2Rve2lmKChCfDApPT0zODEpe2Nb
aD4+Ml09ZTtrPWQrNDB8MDtjW2s+PjJdPShjW2s+PjJdfDApKzE7aWYoKGNbZCszNj4+Ml18MCkh
PTEpe0M9RDtCPTM4NDticmVha31pZigoY1tkKzI0Pj4yXXwwKSE9Mil7Qz1EO0I9Mzg0O2JyZWFr
fWFbZCs1NHwwXT0xO2lmKEQpe0I9Mzg1fWVsc2V7Qj0zODZ9fX13aGlsZSgwKTtpZigoQnwwKT09
Mzg0KXtpZihDKXtCPTM4NX1lbHNle0I9Mzg2fX1pZigoQnwwKT09Mzg1KXtjW2k+PjJdPTM7cmV0
dXJufWVsc2UgaWYoKEJ8MCk9PTM4Nil7Y1tpPj4yXT00O3JldHVybn19fXdoaWxlKDApO2lmKChm
fDApIT0xKXtyZXR1cm59Y1tkKzMyPj4yXT0xO3JldHVybn1DPWNbYisxMj4+Ml18MDtEPWIrMTYr
KEM8PDMpfDA7eD1jW2IrMjA+PjJdfDA7eT14Pj44O2lmKCh4JjF8MCk9PTApe0U9eX1lbHNle0U9
Y1soY1tlPj4yXXwwKSt5Pj4yXXwwfXk9Y1tiKzE2Pj4yXXwwO2JXW2NbKGNbeT4+Ml18MCkrMjQ+
PjJdJjddKHksZCxlK0V8MCwoeCYyfDApIT0wP2Y6MixnKTt4PWIrMjR8MDtpZigoQ3wwKTw9MSl7
cmV0dXJufUM9Y1tiKzg+PjJdfDA7ZG97aWYoKEMmMnwwKT09MCl7Yj1kKzM2fDA7aWYoKGNbYj4+
Ml18MCk9PTEpe2JyZWFrfWlmKChDJjF8MCk9PTApe0U9ZCs1NHwwO3k9ZTtBPXg7d2hpbGUoMSl7
aWYoKGFbRV0mMSkhPTApe0I9NDI1O2JyZWFrfWlmKChjW2I+PjJdfDApPT0xKXtCPTQyNjticmVh
a316PWNbQSs0Pj4yXXwwO3c9ej4+ODtpZigoeiYxfDApPT0wKXtGPXd9ZWxzZXtGPWNbKGNbeT4+
Ml18MCkrdz4+Ml18MH13PWNbQT4+Ml18MDtiV1tjWyhjW3c+PjJdfDApKzI0Pj4yXSY3XSh3LGQs
ZStGfDAsKHomMnwwKSE9MD9mOjIsZyk7ej1BKzh8MDtpZih6Pj4+MDxEPj4+MCl7QT16fWVsc2V7
Qj00MTI7YnJlYWt9fWlmKChCfDApPT00MTIpe3JldHVybn1lbHNlIGlmKChCfDApPT00MjUpe3Jl
dHVybn1lbHNlIGlmKChCfDApPT00MjYpe3JldHVybn19QT1kKzI0fDA7eT1kKzU0fDA7RT1lO2k9
eDt3aGlsZSgxKXtpZigoYVt5XSYxKSE9MCl7Qj00MjI7YnJlYWt9aWYoKGNbYj4+Ml18MCk9PTEp
e2lmKChjW0E+PjJdfDApPT0xKXtCPTQyMzticmVha319ej1jW2krND4+Ml18MDt3PXo+Pjg7aWYo
KHomMXwwKT09MCl7Rz13fWVsc2V7Rz1jWyhjW0U+PjJdfDApK3c+PjJdfDB9dz1jW2k+PjJdfDA7
YldbY1soY1t3Pj4yXXwwKSsyND4+Ml0mN10odyxkLGUrR3wwLCh6JjJ8MCkhPTA/ZjoyLGcpO3o9
aSs4fDA7aWYoej4+PjA8RD4+PjApe2k9en1lbHNle0I9NDI0O2JyZWFrfX1pZigoQnwwKT09NDIy
KXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDIzKXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDI0KXty
ZXR1cm59fX13aGlsZSgwKTtHPWQrNTR8MDtGPWU7Qz14O3doaWxlKDEpe2lmKChhW0ddJjEpIT0w
KXtCPTQyMTticmVha314PWNbQys0Pj4yXXwwO2k9eD4+ODtpZigoeCYxfDApPT0wKXtIPWl9ZWxz
ZXtIPWNbKGNbRj4+Ml18MCkraT4+Ml18MH1pPWNbQz4+Ml18MDtiV1tjWyhjW2k+PjJdfDApKzI0
Pj4yXSY3XShpLGQsZStIfDAsKHgmMnwwKSE9MD9mOjIsZyk7eD1DKzh8MDtpZih4Pj4+MDxEPj4+
MCl7Qz14fWVsc2V7Qj00MjA7YnJlYWt9fWlmKChCfDApPT00MjApe3JldHVybn1lbHNlIGlmKChC
fDApPT00MjEpe3JldHVybn19ZnVuY3Rpb24ga0coYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2g9YnwwO2lmKCho
fDApPT0oY1tkKzg+PjJdfDApKXtpZigoY1tkKzQ+PjJdfDApIT0oZXwwKSl7cmV0dXJufWk9ZCsy
OHwwO2lmKChjW2k+PjJdfDApPT0xKXtyZXR1cm59Y1tpPj4yXT1mO3JldHVybn1pZigoaHwwKSE9
KGNbZD4+Ml18MCkpe2g9Y1tiKzg+PjJdfDA7YldbY1soY1toPj4yXXwwKSsyND4+Ml0mN10oaCxk
LGUsZixnKTtyZXR1cm59ZG97aWYoKGNbZCsxNj4+Ml18MCkhPShlfDApKXtoPWQrMjB8MDtpZigo
Y1toPj4yXXwwKT09KGV8MCkpe2JyZWFrfWNbZCszMj4+Ml09ZjtpPWQrNDR8MDtpZigoY1tpPj4y
XXwwKT09NCl7cmV0dXJufWo9ZCs1MnwwO2Fbal09MDtrPWQrNTN8MDthW2tdPTA7bD1jW2IrOD4+
Ml18MDtiOVtjWyhjW2w+PjJdfDApKzIwPj4yXSYzMV0obCxkLGUsZSwxLGcpO2lmKChhW2tdJjEp
PT0wKXttPTA7bj00NDF9ZWxzZXtpZigoYVtqXSYxKT09MCl7bT0xO249NDQxfX1MNTc2OmRve2lm
KChufDApPT00NDEpe2NbaD4+Ml09ZTtqPWQrNDB8MDtjW2o+PjJdPShjW2o+PjJdfDApKzE7ZG97
aWYoKGNbZCszNj4+Ml18MCk9PTEpe2lmKChjW2QrMjQ+PjJdfDApIT0yKXtuPTQ0NDticmVha31h
W2QrNTR8MF09MTtpZihtKXticmVhayBMNTc2fX1lbHNle249NDQ0fX13aGlsZSgwKTtpZigobnww
KT09NDQ0KXtpZihtKXticmVha319Y1tpPj4yXT00O3JldHVybn19d2hpbGUoMCk7Y1tpPj4yXT0z
O3JldHVybn19d2hpbGUoMCk7aWYoKGZ8MCkhPTEpe3JldHVybn1jW2QrMzI+PjJdPTE7cmV0dXJu
fWZ1bmN0aW9uIGtIKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDt2YXIgaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTA7aWYoKGJ8MCkhPShjW2QrOD4+Ml18MCkpe2k9ZCs1MnwwO2o9YVtpXSYxO2s9
ZCs1M3wwO2w9YVtrXSYxO209Y1tiKzEyPj4yXXwwO249YisxNisobTw8Myl8MDthW2ldPTA7YVtr
XT0wO289Y1tiKzIwPj4yXXwwO3A9bz4+ODtpZigobyYxfDApPT0wKXtxPXB9ZWxzZXtxPWNbKGNb
Zj4+Ml18MCkrcD4+Ml18MH1wPWNbYisxNj4+Ml18MDtiOVtjWyhjW3A+PjJdfDApKzIwPj4yXSYz
MV0ocCxkLGUsZitxfDAsKG8mMnwwKSE9MD9nOjIsaCk7TDU5ODpkb3tpZigobXwwKT4xKXtvPWQr
MjR8MDtxPWIrOHwwO3A9ZCs1NHwwO3I9ZjtzPWIrMjR8MDtkb3tpZigoYVtwXSYxKSE9MCl7YnJl
YWsgTDU5OH1kb3tpZigoYVtpXSYxKT09MCl7aWYoKGFba10mMSk9PTApe2JyZWFrfWlmKChjW3E+
PjJdJjF8MCk9PTApe2JyZWFrIEw1OTh9fWVsc2V7aWYoKGNbbz4+Ml18MCk9PTEpe2JyZWFrIEw1
OTh9aWYoKGNbcT4+Ml0mMnwwKT09MCl7YnJlYWsgTDU5OH19fXdoaWxlKDApO2FbaV09MDthW2td
PTA7dD1jW3MrND4+Ml18MDt1PXQ+Pjg7aWYoKHQmMXwwKT09MCl7dj11fWVsc2V7dj1jWyhjW3I+
PjJdfDApK3U+PjJdfDB9dT1jW3M+PjJdfDA7YjlbY1soY1t1Pj4yXXwwKSsyMD4+Ml0mMzFdKHUs
ZCxlLGYrdnwwLCh0JjJ8MCkhPTA/ZzoyLGgpO3M9cys4fDA7fXdoaWxlKHM+Pj4wPG4+Pj4wKX19
d2hpbGUoMCk7YVtpXT1qO2Fba109bDtyZXR1cm59YVtkKzUzfDBdPTE7aWYoKGNbZCs0Pj4yXXww
KSE9KGZ8MCkpe3JldHVybn1hW2QrNTJ8MF09MTtmPWQrMTZ8MDtsPWNbZj4+Ml18MDtpZigobHww
KT09MCl7Y1tmPj4yXT1lO2NbZCsyND4+Ml09ZztjW2QrMzY+PjJdPTE7aWYoISgoY1tkKzQ4Pj4y
XXwwKT09MSYoZ3wwKT09MSkpe3JldHVybn1hW2QrNTR8MF09MTtyZXR1cm59aWYoKGx8MCkhPShl
fDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7YVtkKzU0fDBdPTE7cmV0dXJufWU9
ZCsyNHwwO2w9Y1tlPj4yXXwwO2lmKChsfDApPT0yKXtjW2U+PjJdPWc7dz1nfWVsc2V7dz1sfWlm
KCEoKGNbZCs0OD4+Ml18MCk9PTEmKHd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0dXJu
fWZ1bmN0aW9uIGtJKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDt2YXIgaT0wLGo9MDtpZigoYnwwKSE9KGNbZCs4Pj4yXXwwKSl7aT1jW2IrOD4+Ml18MDti
OVtjWyhjW2k+PjJdfDApKzIwPj4yXSYzMV0oaSxkLGUsZixnLGgpO3JldHVybn1hW2QrNTN8MF09
MTtpZigoY1tkKzQ+PjJdfDApIT0oZnwwKSl7cmV0dXJufWFbZCs1MnwwXT0xO2Y9ZCsxNnwwO2g9
Y1tmPj4yXXwwO2lmKChofDApPT0wKXtjW2Y+PjJdPWU7Y1tkKzI0Pj4yXT1nO2NbZCszNj4+Ml09
MTtpZighKChjW2QrNDg+PjJdfDApPT0xJihnfDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0xO3Jl
dHVybn1pZigoaHwwKSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTthW2Qr
NTR8MF09MTtyZXR1cm59ZT1kKzI0fDA7aD1jW2U+PjJdfDA7aWYoKGh8MCk9PTIpe2NbZT4+Ml09
ZztqPWd9ZWxzZXtqPWh9aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYoanwwKT09MSkpe3JldHVybn1h
W2QrNTR8MF09MTtyZXR1cm59ZnVuY3Rpb24ga0ooYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9
MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxX
PTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0w
LGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9MCxh
cz0wLGF0PTAsYXU9MCxhdj0wLGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0wLGFDPTAsYUQ9
MCxhRT0wLGFGPTAsYUc9MDtkb3tpZihhPj4+MDwyNDUpe2lmKGE+Pj4wPDExKXtiPTE2fWVsc2V7
Yj1hKzExJi04fWQ9Yj4+PjM7ZT1jWzI0NjBdfDA7Zj1lPj4+KGQ+Pj4wKTtpZigoZiYzfDApIT0w
KXtnPShmJjFeMSkrZHwwO2g9Zzw8MTtpPTk4ODArKGg8PDIpfDA7aj05ODgwKyhoKzI8PDIpfDA7
aD1jW2o+PjJdfDA7az1oKzh8MDtsPWNbaz4+Ml18MDtkb3tpZigoaXwwKT09KGx8MCkpe2NbMjQ2
MF09ZSZ+KDE8PGcpfWVsc2V7aWYobD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAw
fW09bCsxMnwwO2lmKChjW20+PjJdfDApPT0oaHwwKSl7Y1ttPj4yXT1pO2Nbaj4+Ml09bDticmVh
a31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtsPWc8PDM7Y1toKzQ+PjJdPWx8MztqPWgr
KGx8NCl8MDtjW2o+PjJdPWNbaj4+Ml18MTtuPWs7cmV0dXJuIG58MH1pZihiPj4+MDw9KGNbMjQ2
Ml18MCk+Pj4wKXtvPWI7YnJlYWt9aWYoKGZ8MCkhPTApe2o9Mjw8ZDtsPWY8PGQmKGp8LWopO2o9
KGwmLWwpLTF8MDtsPWo+Pj4xMiYxNjtpPWo+Pj4obD4+PjApO2o9aT4+PjUmODttPWk+Pj4oaj4+
PjApO2k9bT4+PjImNDtwPW0+Pj4oaT4+PjApO209cD4+PjEmMjtxPXA+Pj4obT4+PjApO3A9cT4+
PjEmMTtyPShqfGx8aXxtfHApKyhxPj4+KHA+Pj4wKSl8MDtwPXI8PDE7cT05ODgwKyhwPDwyKXww
O209OTg4MCsocCsyPDwyKXwwO3A9Y1ttPj4yXXwwO2k9cCs4fDA7bD1jW2k+PjJdfDA7ZG97aWYo
KHF8MCk9PShsfDApKXtjWzI0NjBdPWUmfigxPDxyKX1lbHNle2lmKGw+Pj4wPChjWzI0NjRdfDAp
Pj4+MCl7YkcoKTtyZXR1cm4gMH1qPWwrMTJ8MDtpZigoY1tqPj4yXXwwKT09KHB8MCkpe2Nbaj4+
Ml09cTtjW20+PjJdPWw7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7bD1yPDwz
O209bC1ifDA7Y1twKzQ+PjJdPWJ8MztxPXA7ZT1xK2J8MDtjW3ErKGJ8NCk+PjJdPW18MTtjW3Er
bD4+Ml09bTtsPWNbMjQ2Ml18MDtpZigobHwwKSE9MCl7cT1jWzI0NjVdfDA7ZD1sPj4+MztsPWQ8
PDE7Zj05ODgwKyhsPDwyKXwwO2s9Y1syNDYwXXwwO2g9MTw8ZDtkb3tpZigoayZofDApPT0wKXtj
WzI0NjBdPWt8aDtzPWY7dD05ODgwKyhsKzI8PDIpfDB9ZWxzZXtkPTk4ODArKGwrMjw8Mil8MDtn
PWNbZD4+Ml18MDtpZihnPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXtzPWc7dD1kO2JyZWFrfWJHKCk7
cmV0dXJuIDB9fXdoaWxlKDApO2NbdD4+Ml09cTtjW3MrMTI+PjJdPXE7Y1txKzg+PjJdPXM7Y1tx
KzEyPj4yXT1mfWNbMjQ2Ml09bTtjWzI0NjVdPWU7bj1pO3JldHVybiBufDB9bD1jWzI0NjFdfDA7
aWYoKGx8MCk9PTApe289YjticmVha31oPShsJi1sKS0xfDA7bD1oPj4+MTImMTY7az1oPj4+KGw+
Pj4wKTtoPWs+Pj41Jjg7cD1rPj4+KGg+Pj4wKTtrPXA+Pj4yJjQ7cj1wPj4+KGs+Pj4wKTtwPXI+
Pj4xJjI7ZD1yPj4+KHA+Pj4wKTtyPWQ+Pj4xJjE7Zz1jWzEwMTQ0KygoaHxsfGt8cHxyKSsoZD4+
PihyPj4+MCkpPDwyKT4+Ml18MDtyPWc7ZD1nO3A9KGNbZys0Pj4yXSYtOCktYnwwO3doaWxlKDEp
e2c9Y1tyKzE2Pj4yXXwwO2lmKChnfDApPT0wKXtrPWNbcisyMD4+Ml18MDtpZigoa3wwKT09MCl7
YnJlYWt9ZWxzZXt1PWt9fWVsc2V7dT1nfWc9KGNbdSs0Pj4yXSYtOCktYnwwO2s9Zz4+PjA8cD4+
PjA7cj11O2Q9az91OmQ7cD1rP2c6cH1yPWQ7aT1jWzI0NjRdfDA7aWYocj4+PjA8aT4+PjApe2JH
KCk7cmV0dXJuIDB9ZT1yK2J8MDttPWU7aWYocj4+PjA+PWU+Pj4wKXtiRygpO3JldHVybiAwfWU9
Y1tkKzI0Pj4yXXwwO2Y9Y1tkKzEyPj4yXXwwO2Rve2lmKChmfDApPT0oZHwwKSl7cT1kKzIwfDA7
Zz1jW3E+PjJdfDA7aWYoKGd8MCk9PTApe2s9ZCsxNnwwO2w9Y1trPj4yXXwwO2lmKChsfDApPT0w
KXt2PTA7YnJlYWt9ZWxzZXt3PWw7eD1rfX1lbHNle3c9Zzt4PXF9d2hpbGUoMSl7cT13KzIwfDA7
Zz1jW3E+PjJdfDA7aWYoKGd8MCkhPTApe3c9Zzt4PXE7Y29udGludWV9cT13KzE2fDA7Zz1jW3E+
PjJdfDA7aWYoKGd8MCk9PTApe2JyZWFrfWVsc2V7dz1nO3g9cX19aWYoeD4+PjA8aT4+PjApe2JH
KCk7cmV0dXJuIDB9ZWxzZXtjW3g+PjJdPTA7dj13O2JyZWFrfX1lbHNle3E9Y1tkKzg+PjJdfDA7
aWYocT4+PjA8aT4+PjApe2JHKCk7cmV0dXJuIDB9Zz1xKzEyfDA7aWYoKGNbZz4+Ml18MCkhPShk
fDApKXtiRygpO3JldHVybiAwfWs9Zis4fDA7aWYoKGNbaz4+Ml18MCk9PShkfDApKXtjW2c+PjJd
PWY7Y1trPj4yXT1xO3Y9ZjticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtMNzQw
OmRve2lmKChlfDApIT0wKXtmPWQrMjh8MDtpPTEwMTQ0KyhjW2Y+PjJdPDwyKXwwO2Rve2lmKChk
fDApPT0oY1tpPj4yXXwwKSl7Y1tpPj4yXT12O2lmKCh2fDApIT0wKXticmVha31jWzI0NjFdPWNb
MjQ2MV0mfigxPDxjW2Y+PjJdKTticmVhayBMNzQwfWVsc2V7aWYoZT4+PjA8KGNbMjQ2NF18MCk+
Pj4wKXtiRygpO3JldHVybiAwfXE9ZSsxNnwwO2lmKChjW3E+PjJdfDApPT0oZHwwKSl7Y1txPj4y
XT12fWVsc2V7Y1tlKzIwPj4yXT12fWlmKCh2fDApPT0wKXticmVhayBMNzQwfX19d2hpbGUoMCk7
aWYodj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWNbdisyND4+Ml09ZTtmPWNb
ZCsxNj4+Ml18MDtkb3tpZigoZnwwKSE9MCl7aWYoZj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygp
O3JldHVybiAwfWVsc2V7Y1t2KzE2Pj4yXT1mO2NbZisyND4+Ml09djticmVha319fXdoaWxlKDAp
O2Y9Y1tkKzIwPj4yXXwwO2lmKChmfDApPT0wKXticmVha31pZihmPj4+MDwoY1syNDY0XXwwKT4+
PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW3YrMjA+PjJdPWY7Y1tmKzI0Pj4yXT12O2JyZWFrfX19
d2hpbGUoMCk7aWYocD4+PjA8MTYpe2U9cCtifDA7Y1tkKzQ+PjJdPWV8MztmPXIrKGUrNCl8MDtj
W2Y+PjJdPWNbZj4+Ml18MX1lbHNle2NbZCs0Pj4yXT1ifDM7Y1tyKyhifDQpPj4yXT1wfDE7Y1ty
KyhwK2IpPj4yXT1wO2Y9Y1syNDYyXXwwO2lmKChmfDApIT0wKXtlPWNbMjQ2NV18MDtpPWY+Pj4z
O2Y9aTw8MTtxPTk4ODArKGY8PDIpfDA7az1jWzI0NjBdfDA7Zz0xPDxpO2Rve2lmKChrJmd8MCk9
PTApe2NbMjQ2MF09a3xnO3k9cTt6PTk4ODArKGYrMjw8Mil8MH1lbHNle2k9OTg4MCsoZisyPDwy
KXwwO2w9Y1tpPj4yXXwwO2lmKGw+Pj4wPj0oY1syNDY0XXwwKT4+PjApe3k9bDt6PWk7YnJlYWt9
YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7Y1t6Pj4yXT1lO2NbeSsxMj4+Ml09ZTtjW2UrOD4+Ml09
eTtjW2UrMTI+PjJdPXF9Y1syNDYyXT1wO2NbMjQ2NV09bX1mPWQrOHwwO2lmKChmfDApPT0wKXtv
PWI7YnJlYWt9ZWxzZXtuPWZ9cmV0dXJuIG58MH1lbHNle2lmKGE+Pj4wPjQyOTQ5NjcyMzEpe289
LTE7YnJlYWt9Zj1hKzExfDA7Zz1mJi04O2s9Y1syNDYxXXwwO2lmKChrfDApPT0wKXtvPWc7YnJl
YWt9cj0tZ3wwO2k9Zj4+Pjg7ZG97aWYoKGl8MCk9PTApe0E9MH1lbHNle2lmKGc+Pj4wPjE2Nzc3
MjE1KXtBPTMxO2JyZWFrfWY9KGkrMTA0ODMyMHwwKT4+PjE2Jjg7bD1pPDxmO2g9KGwrNTIwMTky
fDApPj4+MTYmNDtqPWw8PGg7bD0oaisyNDU3NjB8MCk+Pj4xNiYyO0I9MTQtKGh8ZnxsKSsoajw8
bD4+PjE1KXwwO0E9Zz4+PigoQis3fDApPj4+MCkmMXxCPDwxfX13aGlsZSgwKTtpPWNbMTAxNDQr
KEE8PDIpPj4yXXwwO0w3ODg6ZG97aWYoKGl8MCk9PTApe0M9MDtEPXI7RT0wfWVsc2V7aWYoKEF8
MCk9PTMxKXtGPTB9ZWxzZXtGPTI1LShBPj4+MSl8MH1kPTA7bT1yO3A9aTtxPWc8PEY7ZT0wO3do
aWxlKDEpe0I9Y1twKzQ+PjJdJi04O2w9Qi1nfDA7aWYobD4+PjA8bT4+PjApe2lmKChCfDApPT0o
Z3wwKSl7Qz1wO0Q9bDtFPXA7YnJlYWsgTDc4OH1lbHNle0c9cDtIPWx9fWVsc2V7Rz1kO0g9bX1s
PWNbcCsyMD4+Ml18MDtCPWNbcCsxNisocT4+PjMxPDwyKT4+Ml18MDtqPShsfDApPT0wfChsfDAp
PT0oQnwwKT9lOmw7aWYoKEJ8MCk9PTApe0M9RztEPUg7RT1qO2JyZWFrfWVsc2V7ZD1HO209SDtw
PUI7cT1xPDwxO2U9an19fX13aGlsZSgwKTtpZigoRXwwKT09MCYoQ3wwKT09MCl7aT0yPDxBO3I9
ayYoaXwtaSk7aWYoKHJ8MCk9PTApe289ZzticmVha31pPShyJi1yKS0xfDA7cj1pPj4+MTImMTY7
ZT1pPj4+KHI+Pj4wKTtpPWU+Pj41Jjg7cT1lPj4+KGk+Pj4wKTtlPXE+Pj4yJjQ7cD1xPj4+KGU+
Pj4wKTtxPXA+Pj4xJjI7bT1wPj4+KHE+Pj4wKTtwPW0+Pj4xJjE7ST1jWzEwMTQ0KygoaXxyfGV8
cXxwKSsobT4+PihwPj4+MCkpPDwyKT4+Ml18MH1lbHNle0k9RX1pZigoSXwwKT09MCl7Sj1EO0s9
Q31lbHNle3A9STttPUQ7cT1DO3doaWxlKDEpe2U9KGNbcCs0Pj4yXSYtOCktZ3wwO3I9ZT4+PjA8
bT4+PjA7aT1yP2U6bTtlPXI/cDpxO3I9Y1twKzE2Pj4yXXwwO2lmKChyfDApIT0wKXtwPXI7bT1p
O3E9ZTtjb250aW51ZX1yPWNbcCsyMD4+Ml18MDtpZigocnwwKT09MCl7Sj1pO0s9ZTticmVha31l
bHNle3A9cjttPWk7cT1lfX19aWYoKEt8MCk9PTApe289ZzticmVha31pZihKPj4+MD49KChjWzI0
NjJdfDApLWd8MCk+Pj4wKXtvPWc7YnJlYWt9cT1LO209Y1syNDY0XXwwO2lmKHE+Pj4wPG0+Pj4w
KXtiRygpO3JldHVybiAwfXA9cStnfDA7az1wO2lmKHE+Pj4wPj1wPj4+MCl7YkcoKTtyZXR1cm4g
MH1lPWNbSysyND4+Ml18MDtpPWNbSysxMj4+Ml18MDtkb3tpZigoaXwwKT09KEt8MCkpe3I9Sysy
MHwwO2Q9Y1tyPj4yXXwwO2lmKChkfDApPT0wKXtqPUsrMTZ8MDtCPWNbaj4+Ml18MDtpZigoQnww
KT09MCl7TD0wO2JyZWFrfWVsc2V7TT1CO049an19ZWxzZXtNPWQ7Tj1yfXdoaWxlKDEpe3I9TSsy
MHwwO2Q9Y1tyPj4yXXwwO2lmKChkfDApIT0wKXtNPWQ7Tj1yO2NvbnRpbnVlfXI9TSsxNnwwO2Q9
Y1tyPj4yXXwwO2lmKChkfDApPT0wKXticmVha31lbHNle009ZDtOPXJ9fWlmKE4+Pj4wPG0+Pj4w
KXtiRygpO3JldHVybiAwfWVsc2V7Y1tOPj4yXT0wO0w9TTticmVha319ZWxzZXtyPWNbSys4Pj4y
XXwwO2lmKHI+Pj4wPG0+Pj4wKXtiRygpO3JldHVybiAwfWQ9cisxMnwwO2lmKChjW2Q+PjJdfDAp
IT0oS3wwKSl7YkcoKTtyZXR1cm4gMH1qPWkrOHwwO2lmKChjW2o+PjJdfDApPT0oS3wwKSl7Y1tk
Pj4yXT1pO2Nbaj4+Ml09cjtMPWk7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7
TDgzODpkb3tpZigoZXwwKSE9MCl7aT1LKzI4fDA7bT0xMDE0NCsoY1tpPj4yXTw8Mil8MDtkb3tp
ZigoS3wwKT09KGNbbT4+Ml18MCkpe2NbbT4+Ml09TDtpZigoTHwwKSE9MCl7YnJlYWt9Y1syNDYx
XT1jWzI0NjFdJn4oMTw8Y1tpPj4yXSk7YnJlYWsgTDgzOH1lbHNle2lmKGU+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKTtyZXR1cm4gMH1yPWUrMTZ8MDtpZigoY1tyPj4yXXwwKT09KEt8MCkpe2Nb
cj4+Ml09TH1lbHNle2NbZSsyMD4+Ml09TH1pZigoTHwwKT09MCl7YnJlYWsgTDgzOH19fXdoaWxl
KDApO2lmKEw+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1jW0wrMjQ+PjJdPWU7
aT1jW0srMTY+PjJdfDA7ZG97aWYoKGl8MCkhPTApe2lmKGk+Pj4wPChjWzI0NjRdfDApPj4+MCl7
YkcoKTtyZXR1cm4gMH1lbHNle2NbTCsxNj4+Ml09aTtjW2krMjQ+PjJdPUw7YnJlYWt9fX13aGls
ZSgwKTtpPWNbSysyMD4+Ml18MDtpZigoaXwwKT09MCl7YnJlYWt9aWYoaT4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tMKzIwPj4yXT1pO2NbaSsyND4+Ml09TDticmVh
a319fXdoaWxlKDApO2Rve2lmKEo+Pj4wPDE2KXtlPUorZ3wwO2NbSys0Pj4yXT1lfDM7aT1xKyhl
KzQpfDA7Y1tpPj4yXT1jW2k+PjJdfDF9ZWxzZXtjW0srND4+Ml09Z3wzO2NbcSsoZ3w0KT4+Ml09
SnwxO2NbcSsoSitnKT4+Ml09SjtpPUo+Pj4zO2lmKEo+Pj4wPDI1Nil7ZT1pPDwxO209OTg4MCso
ZTw8Mil8MDtyPWNbMjQ2MF18MDtqPTE8PGk7ZG97aWYoKHImanwwKT09MCl7Y1syNDYwXT1yfGo7
Tz1tO1A9OTg4MCsoZSsyPDwyKXwwfWVsc2V7aT05ODgwKyhlKzI8PDIpfDA7ZD1jW2k+PjJdfDA7
aWYoZD4+PjA+PShjWzI0NjRdfDApPj4+MCl7Tz1kO1A9aTticmVha31iRygpO3JldHVybiAwfX13
aGlsZSgwKTtjW1A+PjJdPWs7Y1tPKzEyPj4yXT1rO2NbcSsoZys4KT4+Ml09TztjW3ErKGcrMTIp
Pj4yXT1tO2JyZWFrfWU9cDtqPUo+Pj44O2Rve2lmKChqfDApPT0wKXtRPTB9ZWxzZXtpZihKPj4+
MD4xNjc3NzIxNSl7UT0zMTticmVha31yPShqKzEwNDgzMjB8MCk+Pj4xNiY4O2k9ajw8cjtkPShp
KzUyMDE5MnwwKT4+PjE2JjQ7Qj1pPDxkO2k9KEIrMjQ1NzYwfDApPj4+MTYmMjtsPTE0LShkfHJ8
aSkrKEI8PGk+Pj4xNSl8MDtRPUo+Pj4oKGwrN3wwKT4+PjApJjF8bDw8MX19d2hpbGUoMCk7aj0x
MDE0NCsoUTw8Mil8MDtjW3ErKGcrMjgpPj4yXT1RO2NbcSsoZysyMCk+PjJdPTA7Y1txKyhnKzE2
KT4+Ml09MDttPWNbMjQ2MV18MDtsPTE8PFE7aWYoKG0mbHwwKT09MCl7Y1syNDYxXT1tfGw7Y1tq
Pj4yXT1lO2NbcSsoZysyNCk+PjJdPWo7Y1txKyhnKzEyKT4+Ml09ZTtjW3ErKGcrOCk+PjJdPWU7
YnJlYWt9aWYoKFF8MCk9PTMxKXtSPTB9ZWxzZXtSPTI1LShRPj4+MSl8MH1sPUo8PFI7bT1jW2o+
PjJdfDA7d2hpbGUoMSl7aWYoKGNbbSs0Pj4yXSYtOHwwKT09KEp8MCkpe2JyZWFrfVM9bSsxNiso
bD4+PjMxPDwyKXwwO2o9Y1tTPj4yXXwwO2lmKChqfDApPT0wKXtUPTY2MTticmVha31lbHNle2w9
bDw8MTttPWp9fWlmKChUfDApPT02NjEpe2lmKFM+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTty
ZXR1cm4gMH1lbHNle2NbUz4+Ml09ZTtjW3ErKGcrMjQpPj4yXT1tO2NbcSsoZysxMik+PjJdPWU7
Y1txKyhnKzgpPj4yXT1lO2JyZWFrfX1sPW0rOHwwO2o9Y1tsPj4yXXwwO2k9Y1syNDY0XXwwO2lm
KG0+Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAwfWlmKGo+Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAw
fWVsc2V7Y1tqKzEyPj4yXT1lO2NbbD4+Ml09ZTtjW3ErKGcrOCk+PjJdPWo7Y1txKyhnKzEyKT4+
Ml09bTtjW3ErKGcrMjQpPj4yXT0wO2JyZWFrfX19d2hpbGUoMCk7cT1LKzh8MDtpZigocXwwKT09
MCl7bz1nO2JyZWFrfWVsc2V7bj1xfXJldHVybiBufDB9fXdoaWxlKDApO0s9Y1syNDYyXXwwO2lm
KG8+Pj4wPD1LPj4+MCl7Uz1LLW98MDtKPWNbMjQ2NV18MDtpZihTPj4+MD4xNSl7Uj1KO2NbMjQ2
NV09UitvO2NbMjQ2Ml09UztjW1IrKG8rNCk+PjJdPVN8MTtjW1IrSz4+Ml09UztjW0orND4+Ml09
b3wzfWVsc2V7Y1syNDYyXT0wO2NbMjQ2NV09MDtjW0orND4+Ml09S3wzO1M9SisoSys0KXwwO2Nb
Uz4+Ml09Y1tTPj4yXXwxfW49Sis4fDA7cmV0dXJuIG58MH1KPWNbMjQ2M118MDtpZihvPj4+MDxK
Pj4+MCl7Uz1KLW98MDtjWzI0NjNdPVM7Sj1jWzI0NjZdfDA7Sz1KO2NbMjQ2Nl09SytvO2NbSyso
bys0KT4+Ml09U3wxO2NbSis0Pj4yXT1vfDM7bj1KKzh8MDtyZXR1cm4gbnwwfWRve2lmKChjWzI0
NTBdfDApPT0wKXtKPWJFKDgpfDA7aWYoKEotMSZKfDApPT0wKXtjWzI0NTJdPUo7Y1syNDUxXT1K
O2NbMjQ1M109LTE7Y1syNDU0XT0tMTtjWzI0NTVdPTA7Y1syNTcxXT0wO2NbMjQ1MF09KGJWKDAp
fDApJi0xNl4xNDMxNjU1NzY4O2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDApO0o9
bys0OHwwO1M9Y1syNDUyXXwwO0s9bys0N3wwO1I9UytLfDA7UT0tU3wwO1M9UiZRO2lmKFM+Pj4w
PD1vPj4+MCl7bj0wO3JldHVybiBufDB9Tz1jWzI1NzBdfDA7ZG97aWYoKE98MCkhPTApe1A9Y1sy
NTY4XXwwO0w9UCtTfDA7aWYoTD4+PjA8PVA+Pj4wfEw+Pj4wPk8+Pj4wKXtuPTB9ZWxzZXticmVh
a31yZXR1cm4gbnwwfX13aGlsZSgwKTtMOTMwOmRve2lmKChjWzI1NzFdJjR8MCk9PTApe089Y1sy
NDY2XXwwO0w5MzI6ZG97aWYoKE98MCk9PTApe1Q9NjkxfWVsc2V7TD1PO1A9MTAyODg7d2hpbGUo
MSl7VT1QfDA7TT1jW1U+PjJdfDA7aWYoTT4+PjA8PUw+Pj4wKXtWPVArNHwwO2lmKChNKyhjW1Y+
PjJdfDApfDApPj4+MD5MPj4+MCl7YnJlYWt9fU09Y1tQKzg+PjJdfDA7aWYoKE18MCk9PTApe1Q9
NjkxO2JyZWFrIEw5MzJ9ZWxzZXtQPU19fWlmKChQfDApPT0wKXtUPTY5MTticmVha31MPVItKGNb
MjQ2M118MCkmUTtpZihMPj4+MD49MjE0NzQ4MzY0Nyl7Vz0wO2JyZWFrfW09YnYoTHwwKXwwO2U9
KG18MCk9PSgoY1tVPj4yXXwwKSsoY1tWPj4yXXwwKXwwKTtYPWU/bTotMTtZPWU/TDowO1o9bTtf
PUw7VD03MDB9fXdoaWxlKDApO2Rve2lmKChUfDApPT02OTEpe089YnYoMCl8MDtpZigoT3wwKT09
LTEpe1c9MDticmVha31nPU87TD1jWzI0NTFdfDA7bT1MLTF8MDtpZigobSZnfDApPT0wKXskPVN9
ZWxzZXskPVMtZysobStnJi1MKXwwfUw9Y1syNTY4XXwwO2c9TCskfDA7aWYoISgkPj4+MD5vPj4+
MCYkPj4+MDwyMTQ3NDgzNjQ3KSl7Vz0wO2JyZWFrfW09Y1syNTcwXXwwO2lmKChtfDApIT0wKXtp
ZihnPj4+MDw9TD4+PjB8Zz4+PjA+bT4+PjApe1c9MDticmVha319bT1idigkfDApfDA7Zz0obXww
KT09KE98MCk7WD1nP086LTE7WT1nPyQ6MDtaPW07Xz0kO1Q9NzAwfX13aGlsZSgwKTtMOTUyOmRv
e2lmKChUfDApPT03MDApe209LV98MDtpZigoWHwwKSE9LTEpe2FhPVk7YWI9WDtUPTcxMTticmVh
ayBMOTMwfWRve2lmKChafDApIT0tMSZfPj4+MDwyMTQ3NDgzNjQ3Jl8+Pj4wPEo+Pj4wKXtnPWNb
MjQ1Ml18MDtPPUstXytnJi1nO2lmKE8+Pj4wPj0yMTQ3NDgzNjQ3KXthYz1fO2JyZWFrfWlmKChi
dihPfDApfDApPT0tMSl7YnYobXwwKXwwO1c9WTticmVhayBMOTUyfWVsc2V7YWM9TytffDA7YnJl
YWt9fWVsc2V7YWM9X319d2hpbGUoMCk7aWYoKFp8MCk9PS0xKXtXPVl9ZWxzZXthYT1hYzthYj1a
O1Q9NzExO2JyZWFrIEw5MzB9fX13aGlsZSgwKTtjWzI1NzFdPWNbMjU3MV18NDthZD1XO1Q9NzA4
fWVsc2V7YWQ9MDtUPTcwOH19d2hpbGUoMCk7ZG97aWYoKFR8MCk9PTcwOCl7aWYoUz4+PjA+PTIx
NDc0ODM2NDcpe2JyZWFrfVc9YnYoU3wwKXwwO1o9YnYoMCl8MDtpZighKChafDApIT0tMSYoV3ww
KSE9LTEmVz4+PjA8Wj4+PjApKXticmVha31hYz1aLVd8MDtaPWFjPj4+MD4obys0MHwwKT4+PjA7
WT1aP1c6LTE7aWYoKFl8MCkhPS0xKXthYT1aP2FjOmFkO2FiPVk7VD03MTF9fX13aGlsZSgwKTtk
b3tpZigoVHwwKT09NzExKXthZD0oY1syNTY4XXwwKSthYXwwO2NbMjU2OF09YWQ7aWYoYWQ+Pj4w
PihjWzI1NjldfDApPj4+MCl7Y1syNTY5XT1hZH1hZD1jWzI0NjZdfDA7TDk3Mjpkb3tpZigoYWR8
MCk9PTApe1M9Y1syNDY0XXwwO2lmKChTfDApPT0wfGFiPj4+MDxTPj4+MCl7Y1syNDY0XT1hYn1j
WzI1NzJdPWFiO2NbMjU3M109YWE7Y1syNTc1XT0wO2NbMjQ2OV09Y1syNDUwXTtjWzI0NjhdPS0x
O1M9MDtkb3tZPVM8PDE7YWM9OTg4MCsoWTw8Mil8MDtjWzk4ODArKFkrMzw8Mik+PjJdPWFjO2Nb
OTg4MCsoWSsyPDwyKT4+Ml09YWM7Uz1TKzF8MDt9d2hpbGUoUz4+PjA8MzIpO1M9YWIrOHwwO2lm
KChTJjd8MCk9PTApe2FlPTB9ZWxzZXthZT0tUyY3fVM9YWEtNDAtYWV8MDtjWzI0NjZdPWFiK2Fl
O2NbMjQ2M109UztjW2FiKyhhZSs0KT4+Ml09U3wxO2NbYWIrKGFhLTM2KT4+Ml09NDA7Y1syNDY3
XT1jWzI0NTRdfWVsc2V7Uz0xMDI4ODt3aGlsZSgxKXthZj1jW1M+PjJdfDA7YWc9Uys0fDA7YWg9
Y1thZz4+Ml18MDtpZigoYWJ8MCk9PShhZithaHwwKSl7VD03MjM7YnJlYWt9YWM9Y1tTKzg+PjJd
fDA7aWYoKGFjfDApPT0wKXticmVha31lbHNle1M9YWN9fWRve2lmKChUfDApPT03MjMpe2lmKChj
W1MrMTI+PjJdJjh8MCkhPTApe2JyZWFrfWFjPWFkO2lmKCEoYWM+Pj4wPj1hZj4+PjAmYWM+Pj4w
PGFiPj4+MCkpe2JyZWFrfWNbYWc+PjJdPWFoK2FhO2FjPWNbMjQ2Nl18MDtZPShjWzI0NjNdfDAp
K2FhfDA7Wj1hYztXPWFjKzh8MDtpZigoVyY3fDApPT0wKXthaT0wfWVsc2V7YWk9LVcmN31XPVkt
YWl8MDtjWzI0NjZdPVorYWk7Y1syNDYzXT1XO2NbWisoYWkrNCk+PjJdPVd8MTtjW1orKFkrNCk+
PjJdPTQwO2NbMjQ2N109Y1syNDU0XTticmVhayBMOTcyfX13aGlsZSgwKTtpZihhYj4+PjA8KGNb
MjQ2NF18MCk+Pj4wKXtjWzI0NjRdPWFifVM9YWIrYWF8MDtZPTEwMjg4O3doaWxlKDEpe2FqPVl8
MDtpZigoY1thaj4+Ml18MCk9PShTfDApKXtUPTczMzticmVha31aPWNbWSs4Pj4yXXwwO2lmKCha
fDApPT0wKXticmVha31lbHNle1k9Wn19ZG97aWYoKFR8MCk9PTczMyl7aWYoKGNbWSsxMj4+Ml0m
OHwwKSE9MCl7YnJlYWt9Y1thaj4+Ml09YWI7Uz1ZKzR8MDtjW1M+PjJdPShjW1M+PjJdfDApK2Fh
O1M9YWIrOHwwO2lmKChTJjd8MCk9PTApe2FrPTB9ZWxzZXthaz0tUyY3fVM9YWIrKGFhKzgpfDA7
aWYoKFMmN3wwKT09MCl7YWw9MH1lbHNle2FsPS1TJjd9Uz1hYisoYWwrYWEpfDA7Wj1TO1c9YWsr
b3wwO2FjPWFiK1d8MDtfPWFjO0s9Uy0oYWIrYWspLW98MDtjW2FiKyhhays0KT4+Ml09b3wzO2Rv
e2lmKChafDApPT0oY1syNDY2XXwwKSl7Sj0oY1syNDYzXXwwKStLfDA7Y1syNDYzXT1KO2NbMjQ2
Nl09XztjW2FiKyhXKzQpPj4yXT1KfDF9ZWxzZXtpZigoWnwwKT09KGNbMjQ2NV18MCkpe0o9KGNb
MjQ2Ml18MCkrS3wwO2NbMjQ2Ml09SjtjWzI0NjVdPV87Y1thYisoVys0KT4+Ml09SnwxO2NbYWIr
KEorVyk+PjJdPUo7YnJlYWt9Sj1hYSs0fDA7WD1jW2FiKyhKK2FsKT4+Ml18MDtpZigoWCYzfDAp
PT0xKXskPVgmLTg7Vj1YPj4+MztMMTAxNzpkb3tpZihYPj4+MDwyNTYpe1U9Y1thYisoKGFsfDgp
K2FhKT4+Ml18MDtRPWNbYWIrKGFhKzEyK2FsKT4+Ml18MDtSPTk4ODArKFY8PDE8PDIpfDA7ZG97
aWYoKFV8MCkhPShSfDApKXtpZihVPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9
aWYoKGNbVSsxMj4+Ml18MCk9PShafDApKXticmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtp
ZigoUXwwKT09KFV8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PFYpO2JyZWFrfWRve2lmKChRfDAp
PT0oUnwwKSl7YW09USs4fDB9ZWxzZXtpZihRPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0
dXJuIDB9bT1RKzh8MDtpZigoY1ttPj4yXXwwKT09KFp8MCkpe2FtPW07YnJlYWt9YkcoKTtyZXR1
cm4gMH19d2hpbGUoMCk7Y1tVKzEyPj4yXT1RO2NbYW0+PjJdPVV9ZWxzZXtSPVM7bT1jW2FiKygo
YWx8MjQpK2FhKT4+Ml18MDtQPWNbYWIrKGFhKzEyK2FsKT4+Ml18MDtkb3tpZigoUHwwKT09KFJ8
MCkpe089YWx8MTY7Zz1hYisoSitPKXwwO0w9Y1tnPj4yXXwwO2lmKChMfDApPT0wKXtlPWFiKyhP
K2FhKXwwO089Y1tlPj4yXXwwO2lmKChPfDApPT0wKXthbj0wO2JyZWFrfWVsc2V7YW89TzthcD1l
fX1lbHNle2FvPUw7YXA9Z313aGlsZSgxKXtnPWFvKzIwfDA7TD1jW2c+PjJdfDA7aWYoKEx8MCkh
PTApe2FvPUw7YXA9Zztjb250aW51ZX1nPWFvKzE2fDA7TD1jW2c+PjJdfDA7aWYoKEx8MCk9PTAp
e2JyZWFrfWVsc2V7YW89TDthcD1nfX1pZihhcD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3Jl
dHVybiAwfWVsc2V7Y1thcD4+Ml09MDthbj1hbzticmVha319ZWxzZXtnPWNbYWIrKChhbHw4KSth
YSk+PjJdfDA7aWYoZz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfUw9ZysxMnww
O2lmKChjW0w+PjJdfDApIT0oUnwwKSl7YkcoKTtyZXR1cm4gMH1lPVArOHwwO2lmKChjW2U+PjJd
fDApPT0oUnwwKSl7Y1tMPj4yXT1QO2NbZT4+Ml09Zzthbj1QO2JyZWFrfWVsc2V7YkcoKTtyZXR1
cm4gMH19fXdoaWxlKDApO2lmKChtfDApPT0wKXticmVha31QPWFiKyhhYSsyOCthbCl8MDtVPTEw
MTQ0KyhjW1A+PjJdPDwyKXwwO2Rve2lmKChSfDApPT0oY1tVPj4yXXwwKSl7Y1tVPj4yXT1hbjtp
ZigoYW58MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbUD4+Ml0pO2JyZWFrIEwx
MDE3fWVsc2V7aWYobT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfVE9bSsxNnww
O2lmKChjW1E+PjJdfDApPT0oUnwwKSl7Y1tRPj4yXT1hbn1lbHNle2NbbSsyMD4+Ml09YW59aWYo
KGFufDApPT0wKXticmVhayBMMTAxN319fXdoaWxlKDApO2lmKGFuPj4+MDwoY1syNDY0XXwwKT4+
PjApe2JHKCk7cmV0dXJuIDB9Y1thbisyND4+Ml09bTtSPWFsfDE2O1A9Y1thYisoUithYSk+PjJd
fDA7ZG97aWYoKFB8MCkhPTApe2lmKFA+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4g
MH1lbHNle2NbYW4rMTY+PjJdPVA7Y1tQKzI0Pj4yXT1hbjticmVha319fXdoaWxlKDApO1A9Y1th
YisoSitSKT4+Ml18MDtpZigoUHwwKT09MCl7YnJlYWt9aWYoUD4+PjA8KGNbMjQ2NF18MCk+Pj4w
KXtiRygpO3JldHVybiAwfWVsc2V7Y1thbisyMD4+Ml09UDtjW1ArMjQ+PjJdPWFuO2JyZWFrfX19
d2hpbGUoMCk7YXE9YWIrKCgkfGFsKSthYSl8MDthcj0kK0t8MH1lbHNle2FxPVo7YXI9S31KPWFx
KzR8MDtjW0o+PjJdPWNbSj4+Ml0mLTI7Y1thYisoVys0KT4+Ml09YXJ8MTtjW2FiKyhhcitXKT4+
Ml09YXI7Sj1hcj4+PjM7aWYoYXI+Pj4wPDI1Nil7Vj1KPDwxO1g9OTg4MCsoVjw8Mil8MDtQPWNb
MjQ2MF18MDttPTE8PEo7ZG97aWYoKFAmbXwwKT09MCl7Y1syNDYwXT1QfG07YXM9WDthdD05ODgw
KyhWKzI8PDIpfDB9ZWxzZXtKPTk4ODArKFYrMjw8Mil8MDtVPWNbSj4+Ml18MDtpZihVPj4+MD49
KGNbMjQ2NF18MCk+Pj4wKXthcz1VO2F0PUo7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7
Y1thdD4+Ml09XztjW2FzKzEyPj4yXT1fO2NbYWIrKFcrOCk+PjJdPWFzO2NbYWIrKFcrMTIpPj4y
XT1YO2JyZWFrfVY9YWM7bT1hcj4+Pjg7ZG97aWYoKG18MCk9PTApe2F1PTB9ZWxzZXtpZihhcj4+
PjA+MTY3NzcyMTUpe2F1PTMxO2JyZWFrfVA9KG0rMTA0ODMyMHwwKT4+PjE2Jjg7JD1tPDxQO0o9
KCQrNTIwMTkyfDApPj4+MTYmNDtVPSQ8PEo7JD0oVSsyNDU3NjB8MCk+Pj4xNiYyO1E9MTQtKEp8
UHwkKSsoVTw8JD4+PjE1KXwwO2F1PWFyPj4+KChRKzd8MCk+Pj4wKSYxfFE8PDF9fXdoaWxlKDAp
O209MTAxNDQrKGF1PDwyKXwwO2NbYWIrKFcrMjgpPj4yXT1hdTtjW2FiKyhXKzIwKT4+Ml09MDtj
W2FiKyhXKzE2KT4+Ml09MDtYPWNbMjQ2MV18MDtRPTE8PGF1O2lmKChYJlF8MCk9PTApe2NbMjQ2
MV09WHxRO2NbbT4+Ml09VjtjW2FiKyhXKzI0KT4+Ml09bTtjW2FiKyhXKzEyKT4+Ml09VjtjW2Fi
KyhXKzgpPj4yXT1WO2JyZWFrfWlmKChhdXwwKT09MzEpe2F2PTB9ZWxzZXthdj0yNS0oYXU+Pj4x
KXwwfVE9YXI8PGF2O1g9Y1ttPj4yXXwwO3doaWxlKDEpe2lmKChjW1grND4+Ml0mLTh8MCk9PShh
cnwwKSl7YnJlYWt9YXc9WCsxNisoUT4+PjMxPDwyKXwwO209Y1thdz4+Ml18MDtpZigobXwwKT09
MCl7VD04MDY7YnJlYWt9ZWxzZXtRPVE8PDE7WD1tfX1pZigoVHwwKT09ODA2KXtpZihhdz4+PjA8
KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1thdz4+Ml09VjtjW2FiKyhXKzI0
KT4+Ml09WDtjW2FiKyhXKzEyKT4+Ml09VjtjW2FiKyhXKzgpPj4yXT1WO2JyZWFrfX1RPVgrOHww
O209Y1tRPj4yXXwwOyQ9Y1syNDY0XXwwO2lmKFg+Pj4wPCQ+Pj4wKXtiRygpO3JldHVybiAwfWlm
KG0+Pj4wPCQ+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1ttKzEyPj4yXT1WO2NbUT4+Ml09Vjtj
W2FiKyhXKzgpPj4yXT1tO2NbYWIrKFcrMTIpPj4yXT1YO2NbYWIrKFcrMjQpPj4yXT0wO2JyZWFr
fX19d2hpbGUoMCk7bj1hYisoYWt8OCl8MDtyZXR1cm4gbnwwfX13aGlsZSgwKTtZPWFkO1c9MTAy
ODg7d2hpbGUoMSl7YXg9Y1tXPj4yXXwwO2lmKGF4Pj4+MDw9WT4+PjApe2F5PWNbVys0Pj4yXXww
O2F6PWF4K2F5fDA7aWYoYXo+Pj4wPlk+Pj4wKXticmVha319Vz1jW1crOD4+Ml18MH1XPWF4Kyhh
eS0zOSl8MDtpZigoVyY3fDApPT0wKXthQT0wfWVsc2V7YUE9LVcmN31XPWF4KyhheS00NythQSl8
MDthYz1XPj4+MDwoYWQrMTZ8MCk+Pj4wP1k6VztXPWFjKzh8MDtfPWFiKzh8MDtpZigoXyY3fDAp
PT0wKXthQj0wfWVsc2V7YUI9LV8mN31fPWFhLTQwLWFCfDA7Y1syNDY2XT1hYithQjtjWzI0NjNd
PV87Y1thYisoYUIrNCk+PjJdPV98MTtjW2FiKyhhYS0zNik+PjJdPTQwO2NbMjQ2N109Y1syNDU0
XTtjW2FjKzQ+PjJdPTI3O2NbVz4+Ml09Y1syNTcyXTtjW1crND4+Ml09Y1sxMDI5Mj4+Ml07Y1tX
Kzg+PjJdPWNbMTAyOTY+PjJdO2NbVysxMj4+Ml09Y1sxMDMwMD4+Ml07Y1syNTcyXT1hYjtjWzI1
NzNdPWFhO2NbMjU3NV09MDtjWzI1NzRdPVc7Vz1hYysyOHwwO2NbVz4+Ml09NztpZigoYWMrMzJ8
MCk+Pj4wPGF6Pj4+MCl7Xz1XO3doaWxlKDEpe1c9Xys0fDA7Y1tXPj4yXT03O2lmKChfKzh8MCk+
Pj4wPGF6Pj4+MCl7Xz1XfWVsc2V7YnJlYWt9fX1pZigoYWN8MCk9PShZfDApKXticmVha31fPWFj
LWFkfDA7Vz1ZKyhfKzQpfDA7Y1tXPj4yXT1jW1c+PjJdJi0yO2NbYWQrND4+Ml09X3wxO2NbWStf
Pj4yXT1fO1c9Xz4+PjM7aWYoXz4+PjA8MjU2KXtLPVc8PDE7Wj05ODgwKyhLPDwyKXwwO1M9Y1sy
NDYwXXwwO209MTw8Vztkb3tpZigoUyZtfDApPT0wKXtjWzI0NjBdPVN8bTthQz1aO2FEPTk4ODAr
KEsrMjw8Mil8MH1lbHNle1c9OTg4MCsoSysyPDwyKXwwO1E9Y1tXPj4yXXwwO2lmKFE+Pj4wPj0o
Y1syNDY0XXwwKT4+PjApe2FDPVE7YUQ9VzticmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtj
W2FEPj4yXT1hZDtjW2FDKzEyPj4yXT1hZDtjW2FkKzg+PjJdPWFDO2NbYWQrMTI+PjJdPVo7YnJl
YWt9Sz1hZDttPV8+Pj44O2Rve2lmKChtfDApPT0wKXthRT0wfWVsc2V7aWYoXz4+PjA+MTY3Nzcy
MTUpe2FFPTMxO2JyZWFrfVM9KG0rMTA0ODMyMHwwKT4+PjE2Jjg7WT1tPDxTO2FjPShZKzUyMDE5
MnwwKT4+PjE2JjQ7Vz1ZPDxhYztZPShXKzI0NTc2MHwwKT4+PjE2JjI7UT0xNC0oYWN8U3xZKSso
Vzw8WT4+PjE1KXwwO2FFPV8+Pj4oKFErN3wwKT4+PjApJjF8UTw8MX19d2hpbGUoMCk7bT0xMDE0
NCsoYUU8PDIpfDA7Y1thZCsyOD4+Ml09YUU7Y1thZCsyMD4+Ml09MDtjW2FkKzE2Pj4yXT0wO1o9
Y1syNDYxXXwwO1E9MTw8YUU7aWYoKFomUXwwKT09MCl7Y1syNDYxXT1afFE7Y1ttPj4yXT1LO2Nb
YWQrMjQ+PjJdPW07Y1thZCsxMj4+Ml09YWQ7Y1thZCs4Pj4yXT1hZDticmVha31pZigoYUV8MCk9
PTMxKXthRj0wfWVsc2V7YUY9MjUtKGFFPj4+MSl8MH1RPV88PGFGO1o9Y1ttPj4yXXwwO3doaWxl
KDEpe2lmKChjW1orND4+Ml0mLTh8MCk9PShffDApKXticmVha31hRz1aKzE2KyhRPj4+MzE8PDIp
fDA7bT1jW2FHPj4yXXwwO2lmKChtfDApPT0wKXtUPTg0MTticmVha31lbHNle1E9UTw8MTtaPW19
fWlmKChUfDApPT04NDEpe2lmKGFHPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9
ZWxzZXtjW2FHPj4yXT1LO2NbYWQrMjQ+PjJdPVo7Y1thZCsxMj4+Ml09YWQ7Y1thZCs4Pj4yXT1h
ZDticmVha319UT1aKzh8MDtfPWNbUT4+Ml18MDttPWNbMjQ2NF18MDtpZihaPj4+MDxtPj4+MCl7
YkcoKTtyZXR1cm4gMH1pZihfPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbXysxMj4+
Ml09SztjW1E+PjJdPUs7Y1thZCs4Pj4yXT1fO2NbYWQrMTI+PjJdPVo7Y1thZCsyND4+Ml09MDti
cmVha319fXdoaWxlKDApO2FkPWNbMjQ2M118MDtpZihhZD4+PjA8PW8+Pj4wKXticmVha31fPWFk
LW98MDtjWzI0NjNdPV87YWQ9Y1syNDY2XXwwO1E9YWQ7Y1syNDY2XT1RK287Y1tRKyhvKzQpPj4y
XT1ffDE7Y1thZCs0Pj4yXT1vfDM7bj1hZCs4fDA7cmV0dXJuIG58MH19d2hpbGUoMCk7Y1soYnco
KXwwKT4+Ml09MTI7bj0wO3JldHVybiBufDB9ZnVuY3Rpb24ga0soYSl7YT1hfDA7dmFyIGI9MCxk
PTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0w
LEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wO2lmKChhfDApPT0wKXtyZXR1cm59
Yj1hLTh8MDtkPWI7ZT1jWzI0NjRdfDA7aWYoYj4+PjA8ZT4+PjApe2JHKCl9Zj1jW2EtND4+Ml18
MDtnPWYmMztpZigoZ3wwKT09MSl7YkcoKX1oPWYmLTg7aT1hKyhoLTgpfDA7aj1pO0wxMTg5OmRv
e2lmKChmJjF8MCk9PTApe2s9Y1tiPj4yXXwwO2lmKChnfDApPT0wKXtyZXR1cm59bD0tOC1rfDA7
bT1hK2x8MDtuPW07bz1rK2h8MDtpZihtPj4+MDxlPj4+MCl7YkcoKX1pZigobnwwKT09KGNbMjQ2
NV18MCkpe3A9YSsoaC00KXwwO2lmKChjW3A+PjJdJjN8MCkhPTMpe3E9bjtyPW87YnJlYWt9Y1sy
NDYyXT1vO2NbcD4+Ml09Y1twPj4yXSYtMjtjW2ErKGwrNCk+PjJdPW98MTtjW2k+PjJdPW87cmV0
dXJufXA9az4+PjM7aWYoaz4+PjA8MjU2KXtrPWNbYSsobCs4KT4+Ml18MDtzPWNbYSsobCsxMik+
PjJdfDA7dD05ODgwKyhwPDwxPDwyKXwwO2Rve2lmKChrfDApIT0odHwwKSl7aWYoaz4+PjA8ZT4+
PjApe2JHKCl9aWYoKGNbaysxMj4+Ml18MCk9PShufDApKXticmVha31iRygpfX13aGlsZSgwKTtp
Zigoc3wwKT09KGt8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PHApO3E9bjtyPW87YnJlYWt9ZG97
aWYoKHN8MCk9PSh0fDApKXt1PXMrOHwwfWVsc2V7aWYocz4+PjA8ZT4+PjApe2JHKCl9dj1zKzh8
MDtpZigoY1t2Pj4yXXwwKT09KG58MCkpe3U9djticmVha31iRygpfX13aGlsZSgwKTtjW2srMTI+
PjJdPXM7Y1t1Pj4yXT1rO3E9bjtyPW87YnJlYWt9dD1tO3A9Y1thKyhsKzI0KT4+Ml18MDt2PWNb
YSsobCsxMik+PjJdfDA7ZG97aWYoKHZ8MCk9PSh0fDApKXt3PWErKGwrMjApfDA7eD1jW3c+PjJd
fDA7aWYoKHh8MCk9PTApe3k9YSsobCsxNil8MDt6PWNbeT4+Ml18MDtpZigoenwwKT09MCl7QT0w
O2JyZWFrfWVsc2V7Qj16O0M9eX19ZWxzZXtCPXg7Qz13fXdoaWxlKDEpe3c9QisyMHwwO3g9Y1t3
Pj4yXXwwO2lmKCh4fDApIT0wKXtCPXg7Qz13O2NvbnRpbnVlfXc9QisxNnwwO3g9Y1t3Pj4yXXww
O2lmKCh4fDApPT0wKXticmVha31lbHNle0I9eDtDPXd9fWlmKEM+Pj4wPGU+Pj4wKXtiRygpfWVs
c2V7Y1tDPj4yXT0wO0E9QjticmVha319ZWxzZXt3PWNbYSsobCs4KT4+Ml18MDtpZih3Pj4+MDxl
Pj4+MCl7YkcoKX14PXcrMTJ8MDtpZigoY1t4Pj4yXXwwKSE9KHR8MCkpe2JHKCl9eT12Kzh8MDtp
ZigoY1t5Pj4yXXwwKT09KHR8MCkpe2NbeD4+Ml09djtjW3k+PjJdPXc7QT12O2JyZWFrfWVsc2V7
YkcoKX19fXdoaWxlKDApO2lmKChwfDApPT0wKXtxPW47cj1vO2JyZWFrfXY9YSsobCsyOCl8MDtt
PTEwMTQ0KyhjW3Y+PjJdPDwyKXwwO2Rve2lmKCh0fDApPT0oY1ttPj4yXXwwKSl7Y1ttPj4yXT1B
O2lmKChBfDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Y+PjJdKTtxPW47cj1v
O2JyZWFrIEwxMTg5fWVsc2V7aWYocD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWs9cCsxNnww
O2lmKChjW2s+PjJdfDApPT0odHwwKSl7Y1trPj4yXT1BfWVsc2V7Y1twKzIwPj4yXT1BfWlmKChB
fDApPT0wKXtxPW47cj1vO2JyZWFrIEwxMTg5fX19d2hpbGUoMCk7aWYoQT4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpfWNbQSsyND4+Ml09cDt0PWNbYSsobCsxNik+PjJdfDA7ZG97aWYoKHR8MCkh
PTApe2lmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbQSsxNj4+Ml09dDtjW3Qr
MjQ+PjJdPUE7YnJlYWt9fX13aGlsZSgwKTt0PWNbYSsobCsyMCk+PjJdfDA7aWYoKHR8MCk9PTAp
e3E9bjtyPW87YnJlYWt9aWYodD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tBKzIw
Pj4yXT10O2NbdCsyND4+Ml09QTtxPW47cj1vO2JyZWFrfX1lbHNle3E9ZDtyPWh9fXdoaWxlKDAp
O2Q9cTtpZihkPj4+MD49aT4+PjApe2JHKCl9QT1hKyhoLTQpfDA7ZT1jW0E+PjJdfDA7aWYoKGUm
MXwwKT09MCl7YkcoKX1kb3tpZigoZSYyfDApPT0wKXtpZigoanwwKT09KGNbMjQ2Nl18MCkpe0I9
KGNbMjQ2M118MCkrcnwwO2NbMjQ2M109QjtjWzI0NjZdPXE7Y1txKzQ+PjJdPUJ8MTtpZigocXww
KSE9KGNbMjQ2NV18MCkpe3JldHVybn1jWzI0NjVdPTA7Y1syNDYyXT0wO3JldHVybn1pZigoanww
KT09KGNbMjQ2NV18MCkpe0I9KGNbMjQ2Ml18MCkrcnwwO2NbMjQ2Ml09QjtjWzI0NjVdPXE7Y1tx
KzQ+PjJdPUJ8MTtjW2QrQj4+Ml09QjtyZXR1cm59Qj0oZSYtOCkrcnwwO0M9ZT4+PjM7TDEyOTI6
ZG97aWYoZT4+PjA8MjU2KXt1PWNbYStoPj4yXXwwO2c9Y1thKyhofDQpPj4yXXwwO2I9OTg4MCso
Qzw8MTw8Mil8MDtkb3tpZigodXwwKSE9KGJ8MCkpe2lmKHU+Pj4wPChjWzI0NjRdfDApPj4+MCl7
YkcoKX1pZigoY1t1KzEyPj4yXXwwKT09KGp8MCkpe2JyZWFrfWJHKCl9fXdoaWxlKDApO2lmKChn
fDApPT0odXwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8Qyk7YnJlYWt9ZG97aWYoKGd8MCk9PShi
fDApKXtEPWcrOHwwfWVsc2V7aWYoZz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWY9Zys4fDA7
aWYoKGNbZj4+Ml18MCk9PShqfDApKXtEPWY7YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1t1KzEyPj4y
XT1nO2NbRD4+Ml09dX1lbHNle2I9aTtmPWNbYSsoaCsxNik+PjJdfDA7dD1jW2ErKGh8NCk+PjJd
fDA7ZG97aWYoKHR8MCk9PShifDApKXtwPWErKGgrMTIpfDA7dj1jW3A+PjJdfDA7aWYoKHZ8MCk9
PTApe209YSsoaCs4KXwwO2s9Y1ttPj4yXXwwO2lmKChrfDApPT0wKXtFPTA7YnJlYWt9ZWxzZXtG
PWs7Rz1tfX1lbHNle0Y9djtHPXB9d2hpbGUoMSl7cD1GKzIwfDA7dj1jW3A+PjJdfDA7aWYoKHZ8
MCkhPTApe0Y9djtHPXA7Y29udGludWV9cD1GKzE2fDA7dj1jW3A+PjJdfDA7aWYoKHZ8MCk9PTAp
e2JyZWFrfWVsc2V7Rj12O0c9cH19aWYoRz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7
Y1tHPj4yXT0wO0U9RjticmVha319ZWxzZXtwPWNbYStoPj4yXXwwO2lmKHA+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKX12PXArMTJ8MDtpZigoY1t2Pj4yXXwwKSE9KGJ8MCkpe2JHKCl9bT10Kzh8
MDtpZigoY1ttPj4yXXwwKT09KGJ8MCkpe2Nbdj4+Ml09dDtjW20+PjJdPXA7RT10O2JyZWFrfWVs
c2V7YkcoKX19fXdoaWxlKDApO2lmKChmfDApPT0wKXticmVha310PWErKGgrMjApfDA7dT0xMDE0
NCsoY1t0Pj4yXTw8Mil8MDtkb3tpZigoYnwwKT09KGNbdT4+Ml18MCkpe2NbdT4+Ml09RTtpZigo
RXwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1t0Pj4yXSk7YnJlYWsgTDEyOTJ9
ZWxzZXtpZihmPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Zz1mKzE2fDA7aWYoKGNbZz4+Ml18
MCk9PShifDApKXtjW2c+PjJdPUV9ZWxzZXtjW2YrMjA+PjJdPUV9aWYoKEV8MCk9PTApe2JyZWFr
IEwxMjkyfX19d2hpbGUoMCk7aWYoRT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWNbRSsyND4+
Ml09ZjtiPWNbYSsoaCs4KT4+Ml18MDtkb3tpZigoYnwwKSE9MCl7aWYoYj4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpfWVsc2V7Y1tFKzE2Pj4yXT1iO2NbYisyND4+Ml09RTticmVha319fXdoaWxl
KDApO2I9Y1thKyhoKzEyKT4+Ml18MDtpZigoYnwwKT09MCl7YnJlYWt9aWYoYj4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tFKzIwPj4yXT1iO2NbYisyND4+Ml09RTticmVha319fXdo
aWxlKDApO2NbcSs0Pj4yXT1CfDE7Y1tkK0I+PjJdPUI7aWYoKHF8MCkhPShjWzI0NjVdfDApKXtI
PUI7YnJlYWt9Y1syNDYyXT1CO3JldHVybn1lbHNle2NbQT4+Ml09ZSYtMjtjW3ErND4+Ml09cnwx
O2NbZCtyPj4yXT1yO0g9cn19d2hpbGUoMCk7cj1IPj4+MztpZihIPj4+MDwyNTYpe2Q9cjw8MTtl
PTk4ODArKGQ8PDIpfDA7QT1jWzI0NjBdfDA7RT0xPDxyO2Rve2lmKChBJkV8MCk9PTApe2NbMjQ2
MF09QXxFO0k9ZTtKPTk4ODArKGQrMjw8Mil8MH1lbHNle3I9OTg4MCsoZCsyPDwyKXwwO2g9Y1ty
Pj4yXXwwO2lmKGg+Pj4wPj0oY1syNDY0XXwwKT4+PjApe0k9aDtKPXI7YnJlYWt9YkcoKX19d2hp
bGUoMCk7Y1tKPj4yXT1xO2NbSSsxMj4+Ml09cTtjW3ErOD4+Ml09STtjW3ErMTI+PjJdPWU7cmV0
dXJufWU9cTtJPUg+Pj44O2Rve2lmKChJfDApPT0wKXtLPTB9ZWxzZXtpZihIPj4+MD4xNjc3NzIx
NSl7Sz0zMTticmVha31KPShJKzEwNDgzMjB8MCk+Pj4xNiY4O2Q9STw8SjtFPShkKzUyMDE5Mnww
KT4+PjE2JjQ7QT1kPDxFO2Q9KEErMjQ1NzYwfDApPj4+MTYmMjtyPTE0LShFfEp8ZCkrKEE8PGQ+
Pj4xNSl8MDtLPUg+Pj4oKHIrN3wwKT4+PjApJjF8cjw8MX19d2hpbGUoMCk7ST0xMDE0NCsoSzw8
Mil8MDtjW3ErMjg+PjJdPUs7Y1txKzIwPj4yXT0wO2NbcSsxNj4+Ml09MDtyPWNbMjQ2MV18MDtk
PTE8PEs7ZG97aWYoKHImZHwwKT09MCl7Y1syNDYxXT1yfGQ7Y1tJPj4yXT1lO2NbcSsyND4+Ml09
STtjW3ErMTI+PjJdPXE7Y1txKzg+PjJdPXF9ZWxzZXtpZigoS3wwKT09MzEpe0w9MH1lbHNle0w9
MjUtKEs+Pj4xKXwwfUE9SDw8TDtKPWNbST4+Ml18MDt3aGlsZSgxKXtpZigoY1tKKzQ+PjJdJi04
fDApPT0oSHwwKSl7YnJlYWt9TT1KKzE2KyhBPj4+MzE8PDIpfDA7RT1jW00+PjJdfDA7aWYoKEV8
MCk9PTApe049MTAxODticmVha31lbHNle0E9QTw8MTtKPUV9fWlmKChOfDApPT0xMDE4KXtpZihN
Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW00+PjJdPWU7Y1txKzI0Pj4yXT1KO2Nb
cSsxMj4+Ml09cTtjW3ErOD4+Ml09cTticmVha319QT1KKzh8MDtCPWNbQT4+Ml18MDtFPWNbMjQ2
NF18MDtpZihKPj4+MDxFPj4+MCl7YkcoKX1pZihCPj4+MDxFPj4+MCl7YkcoKX1lbHNle2NbQisx
Mj4+Ml09ZTtjW0E+PjJdPWU7Y1txKzg+PjJdPUI7Y1txKzEyPj4yXT1KO2NbcSsyND4+Ml09MDti
cmVha319fXdoaWxlKDApO3E9KGNbMjQ2OF18MCktMXwwO2NbMjQ2OF09cTtpZigocXwwKT09MCl7
Tz0xMDI5Nn1lbHNle3JldHVybn13aGlsZSgxKXtxPWNbTz4+Ml18MDtpZigocXwwKT09MCl7YnJl
YWt9ZWxzZXtPPXErOHwwfX1jWzI0NjhdPS0xO3JldHVybn1mdW5jdGlvbiBrTChhLGIpe2E9YXww
O2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTA7aWYoKGF8MCk9PTApe2Q9a0ooYil8MDtyZXR1cm4g
ZHwwfWlmKGI+Pj4wPjQyOTQ5NjcyMzEpe2NbKGJ3KCl8MCk+PjJdPTEyO2Q9MDtyZXR1cm4gZHww
fWlmKGI+Pj4wPDExKXtlPTE2fWVsc2V7ZT1iKzExJi04fWY9a00oYS04fDAsZSl8MDtpZigoZnww
KSE9MCl7ZD1mKzh8MDtyZXR1cm4gZHwwfWY9a0ooYil8MDtpZigoZnwwKT09MCl7ZD0wO3JldHVy
biBkfDB9ZT1jW2EtND4+Ml18MDtnPShlJi04KS0oKGUmM3wwKT09MD84OjQpfDA7ZT1nPj4+MDxi
Pj4+MD9nOmI7a1koZnwwLGF8MCxlKXwwO2tLKGEpO2Q9ZjtyZXR1cm4gZHwwfWZ1bmN0aW9uIGtN
KGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wO2Q9YSs0fDA7ZT1jW2Q+PjJdfDA7Zj1lJi04O2c9YTtoPWcrZnwwO2k9aDtqPWNbMjQ2NF18
MDtpZihnPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1rPWUmMztpZighKChrfDApIT0xJmc+Pj4w
PGg+Pj4wKSl7YkcoKTtyZXR1cm4gMH1sPWcrKGZ8NCl8MDttPWNbbD4+Ml18MDtpZigobSYxfDAp
PT0wKXtiRygpO3JldHVybiAwfWlmKChrfDApPT0wKXtpZihiPj4+MDwyNTYpe249MDtyZXR1cm4g
bnwwfWRve2lmKGY+Pj4wPj0oYis0fDApPj4+MCl7aWYoKGYtYnwwKT4+PjA+Y1syNDUyXTw8MT4+
PjApe2JyZWFrfWVsc2V7bj1hfXJldHVybiBufDB9fXdoaWxlKDApO249MDtyZXR1cm4gbnwwfWlm
KGY+Pj4wPj1iPj4+MCl7az1mLWJ8MDtpZihrPj4+MDw9MTUpe249YTtyZXR1cm4gbnwwfWNbZD4+
Ml09ZSYxfGJ8MjtjW2crKGIrNCk+PjJdPWt8MztjW2w+PjJdPWNbbD4+Ml18MTtrTihnK2J8MCxr
KTtuPWE7cmV0dXJuIG58MH1pZigoaXwwKT09KGNbMjQ2Nl18MCkpe2s9KGNbMjQ2M118MCkrZnww
O2lmKGs+Pj4wPD1iPj4+MCl7bj0wO3JldHVybiBufDB9bD1rLWJ8MDtjW2Q+PjJdPWUmMXxifDI7
Y1tnKyhiKzQpPj4yXT1sfDE7Y1syNDY2XT1nK2I7Y1syNDYzXT1sO249YTtyZXR1cm4gbnwwfWlm
KChpfDApPT0oY1syNDY1XXwwKSl7bD0oY1syNDYyXXwwKStmfDA7aWYobD4+PjA8Yj4+PjApe249
MDtyZXR1cm4gbnwwfWs9bC1ifDA7aWYoaz4+PjA+MTUpe2NbZD4+Ml09ZSYxfGJ8MjtjW2crKGIr
NCk+PjJdPWt8MTtjW2crbD4+Ml09aztvPWcrKGwrNCl8MDtjW28+PjJdPWNbbz4+Ml0mLTI7cD1n
K2J8MDtxPWt9ZWxzZXtjW2Q+PjJdPWUmMXxsfDI7ZT1nKyhsKzQpfDA7Y1tlPj4yXT1jW2U+PjJd
fDE7cD0wO3E9MH1jWzI0NjJdPXE7Y1syNDY1XT1wO249YTtyZXR1cm4gbnwwfWlmKChtJjJ8MCkh
PTApe249MDtyZXR1cm4gbnwwfXA9KG0mLTgpK2Z8MDtpZihwPj4+MDxiPj4+MCl7bj0wO3JldHVy
biBufDB9cT1wLWJ8MDtlPW0+Pj4zO0wxNDc4OmRve2lmKG0+Pj4wPDI1Nil7bD1jW2crKGYrOCk+
PjJdfDA7az1jW2crKGYrMTIpPj4yXXwwO289OTg4MCsoZTw8MTw8Mil8MDtkb3tpZigobHwwKSE9
KG98MCkpe2lmKGw+Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAwfWlmKChjW2wrMTI+PjJdfDApPT0o
aXwwKSl7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7aWYoKGt8MCk9PShsfDApKXtjWzI0
NjBdPWNbMjQ2MF0mfigxPDxlKTticmVha31kb3tpZigoa3wwKT09KG98MCkpe3I9ays4fDB9ZWxz
ZXtpZihrPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1zPWsrOHwwO2lmKChjW3M+PjJdfDApPT0o
aXwwKSl7cj1zO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2NbbCsxMj4+Ml09aztjW3I+
PjJdPWx9ZWxzZXtvPWg7cz1jW2crKGYrMjQpPj4yXXwwO3Q9Y1tnKyhmKzEyKT4+Ml18MDtkb3tp
ZigodHwwKT09KG98MCkpe3U9ZysoZisyMCl8MDt2PWNbdT4+Ml18MDtpZigodnwwKT09MCl7dz1n
KyhmKzE2KXwwO3g9Y1t3Pj4yXXwwO2lmKCh4fDApPT0wKXt5PTA7YnJlYWt9ZWxzZXt6PXg7QT13
fX1lbHNle3o9djtBPXV9d2hpbGUoMSl7dT16KzIwfDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCkhPTAp
e3o9djtBPXU7Y29udGludWV9dT16KzE2fDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCk9PTApe2JyZWFr
fWVsc2V7ej12O0E9dX19aWYoQT4+PjA8aj4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW0E+PjJd
PTA7eT16O2JyZWFrfX1lbHNle3U9Y1tnKyhmKzgpPj4yXXwwO2lmKHU+Pj4wPGo+Pj4wKXtiRygp
O3JldHVybiAwfXY9dSsxMnwwO2lmKChjW3Y+PjJdfDApIT0ob3wwKSl7YkcoKTtyZXR1cm4gMH13
PXQrOHwwO2lmKChjW3c+PjJdfDApPT0ob3wwKSl7Y1t2Pj4yXT10O2Nbdz4+Ml09dTt5PXQ7YnJl
YWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7aWYoKHN8MCk9PTApe2JyZWFrfXQ9Zyso
ZisyOCl8MDtsPTEwMTQ0KyhjW3Q+PjJdPDwyKXwwO2Rve2lmKChvfDApPT0oY1tsPj4yXXwwKSl7
Y1tsPj4yXT15O2lmKCh5fDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Q+PjJd
KTticmVhayBMMTQ3OH1lbHNle2lmKHM+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4g
MH1rPXMrMTZ8MDtpZigoY1trPj4yXXwwKT09KG98MCkpe2Nbaz4+Ml09eX1lbHNle2NbcysyMD4+
Ml09eX1pZigoeXwwKT09MCl7YnJlYWsgTDE0Nzh9fX13aGlsZSgwKTtpZih5Pj4+MDwoY1syNDY0
XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9Y1t5KzI0Pj4yXT1zO289Y1tnKyhmKzE2KT4+Ml18MDtk
b3tpZigob3wwKSE9MCl7aWYobz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVs
c2V7Y1t5KzE2Pj4yXT1vO2NbbysyND4+Ml09eTticmVha319fXdoaWxlKDApO289Y1tnKyhmKzIw
KT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9aWYobz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygp
O3JldHVybiAwfWVsc2V7Y1t5KzIwPj4yXT1vO2NbbysyND4+Ml09eTticmVha319fXdoaWxlKDAp
O2lmKHE+Pj4wPDE2KXtjW2Q+PjJdPXB8Y1tkPj4yXSYxfDI7eT1nKyhwfDQpfDA7Y1t5Pj4yXT1j
W3k+PjJdfDE7bj1hO3JldHVybiBufDB9ZWxzZXtjW2Q+PjJdPWNbZD4+Ml0mMXxifDI7Y1tnKyhi
KzQpPj4yXT1xfDM7ZD1nKyhwfDQpfDA7Y1tkPj4yXT1jW2Q+PjJdfDE7a04oZytifDAscSk7bj1h
O3JldHVybiBufDB9cmV0dXJuIDB9ZnVuY3Rpb24ga04oYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0w
LGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wLEk9MCxKPTAsSz0wLEw9MDtkPWE7ZT1kK2J8MDtmPWU7Zz1jW2ErND4+Ml18MDtMMTU1
NDpkb3tpZigoZyYxfDApPT0wKXtoPWNbYT4+Ml18MDtpZigoZyYzfDApPT0wKXtyZXR1cm59aT1k
KygtaHwwKXwwO2o9aTtrPWgrYnwwO2w9Y1syNDY0XXwwO2lmKGk+Pj4wPGw+Pj4wKXtiRygpfWlm
KChqfDApPT0oY1syNDY1XXwwKSl7bT1kKyhiKzQpfDA7aWYoKGNbbT4+Ml0mM3wwKSE9Myl7bj1q
O289azticmVha31jWzI0NjJdPWs7Y1ttPj4yXT1jW20+PjJdJi0yO2NbZCsoNC1oKT4+Ml09a3wx
O2NbZT4+Ml09aztyZXR1cm59bT1oPj4+MztpZihoPj4+MDwyNTYpe3A9Y1tkKyg4LWgpPj4yXXww
O3E9Y1tkKygxMi1oKT4+Ml18MDtyPTk4ODArKG08PDE8PDIpfDA7ZG97aWYoKHB8MCkhPShyfDAp
KXtpZihwPj4+MDxsPj4+MCl7YkcoKX1pZigoY1twKzEyPj4yXXwwKT09KGp8MCkpe2JyZWFrfWJH
KCl9fXdoaWxlKDApO2lmKChxfDApPT0ocHwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8bSk7bj1q
O289azticmVha31kb3tpZigocXwwKT09KHJ8MCkpe3M9cSs4fDB9ZWxzZXtpZihxPj4+MDxsPj4+
MCl7YkcoKX10PXErOHwwO2lmKChjW3Q+PjJdfDApPT0oanwwKSl7cz10O2JyZWFrfWJHKCl9fXdo
aWxlKDApO2NbcCsxMj4+Ml09cTtjW3M+PjJdPXA7bj1qO289azticmVha31yPWk7bT1jW2QrKDI0
LWgpPj4yXXwwO3Q9Y1tkKygxMi1oKT4+Ml18MDtkb3tpZigodHwwKT09KHJ8MCkpe3U9MTYtaHww
O3Y9ZCsodSs0KXwwO3c9Y1t2Pj4yXXwwO2lmKCh3fDApPT0wKXt4PWQrdXwwO3U9Y1t4Pj4yXXww
O2lmKCh1fDApPT0wKXt5PTA7YnJlYWt9ZWxzZXt6PXU7QT14fX1lbHNle3o9dztBPXZ9d2hpbGUo
MSl7dj16KzIwfDA7dz1jW3Y+PjJdfDA7aWYoKHd8MCkhPTApe3o9dztBPXY7Y29udGludWV9dj16
KzE2fDA7dz1jW3Y+PjJdfDA7aWYoKHd8MCk9PTApe2JyZWFrfWVsc2V7ej13O0E9dn19aWYoQT4+
PjA8bD4+PjApe2JHKCl9ZWxzZXtjW0E+PjJdPTA7eT16O2JyZWFrfX1lbHNle3Y9Y1tkKyg4LWgp
Pj4yXXwwO2lmKHY+Pj4wPGw+Pj4wKXtiRygpfXc9disxMnwwO2lmKChjW3c+PjJdfDApIT0ocnww
KSl7YkcoKX14PXQrOHwwO2lmKChjW3g+PjJdfDApPT0ocnwwKSl7Y1t3Pj4yXT10O2NbeD4+Ml09
djt5PXQ7YnJlYWt9ZWxzZXtiRygpfX19d2hpbGUoMCk7aWYoKG18MCk9PTApe249ajtvPWs7YnJl
YWt9dD1kKygyOC1oKXwwO2w9MTAxNDQrKGNbdD4+Ml08PDIpfDA7ZG97aWYoKHJ8MCk9PShjW2w+
PjJdfDApKXtjW2w+PjJdPXk7aWYoKHl8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8
PGNbdD4+Ml0pO249ajtvPWs7YnJlYWsgTDE1NTR9ZWxzZXtpZihtPj4+MDwoY1syNDY0XXwwKT4+
PjApe2JHKCl9aT1tKzE2fDA7aWYoKGNbaT4+Ml18MCk9PShyfDApKXtjW2k+PjJdPXl9ZWxzZXtj
W20rMjA+PjJdPXl9aWYoKHl8MCk9PTApe249ajtvPWs7YnJlYWsgTDE1NTR9fX13aGlsZSgwKTtp
Zih5Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Y1t5KzI0Pj4yXT1tO3I9MTYtaHwwO3Q9Y1tk
K3I+PjJdfDA7ZG97aWYoKHR8MCkhPTApe2lmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1l
bHNle2NbeSsxNj4+Ml09dDtjW3QrMjQ+PjJdPXk7YnJlYWt9fX13aGlsZSgwKTt0PWNbZCsocis0
KT4+Ml18MDtpZigodHwwKT09MCl7bj1qO289azticmVha31pZih0Pj4+MDwoY1syNDY0XXwwKT4+
PjApe2JHKCl9ZWxzZXtjW3krMjA+PjJdPXQ7Y1t0KzI0Pj4yXT15O249ajtvPWs7YnJlYWt9fWVs
c2V7bj1hO289Yn19d2hpbGUoMCk7YT1jWzI0NjRdfDA7aWYoZT4+PjA8YT4+PjApe2JHKCl9eT1k
KyhiKzQpfDA7ej1jW3k+PjJdfDA7ZG97aWYoKHomMnwwKT09MCl7aWYoKGZ8MCk9PShjWzI0NjZd
fDApKXtBPShjWzI0NjNdfDApK298MDtjWzI0NjNdPUE7Y1syNDY2XT1uO2Nbbis0Pj4yXT1BfDE7
aWYoKG58MCkhPShjWzI0NjVdfDApKXtyZXR1cm59Y1syNDY1XT0wO2NbMjQ2Ml09MDtyZXR1cm59
aWYoKGZ8MCk9PShjWzI0NjVdfDApKXtBPShjWzI0NjJdfDApK298MDtjWzI0NjJdPUE7Y1syNDY1
XT1uO2Nbbis0Pj4yXT1BfDE7Y1tuK0E+PjJdPUE7cmV0dXJufUE9KHomLTgpK298MDtzPXo+Pj4z
O0wxNjUzOmRve2lmKHo+Pj4wPDI1Nil7Zz1jW2QrKGIrOCk+PjJdfDA7dD1jW2QrKGIrMTIpPj4y
XXwwO2g9OTg4MCsoczw8MTw8Mil8MDtkb3tpZigoZ3wwKSE9KGh8MCkpe2lmKGc+Pj4wPGE+Pj4w
KXtiRygpfWlmKChjW2crMTI+PjJdfDApPT0oZnwwKSl7YnJlYWt9YkcoKX19d2hpbGUoMCk7aWYo
KHR8MCk9PShnfDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxzKTticmVha31kb3tpZigodHwwKT09
KGh8MCkpe0I9dCs4fDB9ZWxzZXtpZih0Pj4+MDxhPj4+MCl7YkcoKX1tPXQrOHwwO2lmKChjW20+
PjJdfDApPT0oZnwwKSl7Qj1tO2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbZysxMj4+Ml09dDtjW0I+
PjJdPWd9ZWxzZXtoPWU7bT1jW2QrKGIrMjQpPj4yXXwwO2w9Y1tkKyhiKzEyKT4+Ml18MDtkb3tp
ZigobHwwKT09KGh8MCkpe2k9ZCsoYisyMCl8MDtwPWNbaT4+Ml18MDtpZigocHwwKT09MCl7cT1k
KyhiKzE2KXwwO3Y9Y1txPj4yXXwwO2lmKCh2fDApPT0wKXtDPTA7YnJlYWt9ZWxzZXtEPXY7RT1x
fX1lbHNle0Q9cDtFPWl9d2hpbGUoMSl7aT1EKzIwfDA7cD1jW2k+PjJdfDA7aWYoKHB8MCkhPTAp
e0Q9cDtFPWk7Y29udGludWV9aT1EKzE2fDA7cD1jW2k+PjJdfDA7aWYoKHB8MCk9PTApe2JyZWFr
fWVsc2V7RD1wO0U9aX19aWYoRT4+PjA8YT4+PjApe2JHKCl9ZWxzZXtjW0U+PjJdPTA7Qz1EO2Jy
ZWFrfX1lbHNle2k9Y1tkKyhiKzgpPj4yXXwwO2lmKGk+Pj4wPGE+Pj4wKXtiRygpfXA9aSsxMnww
O2lmKChjW3A+PjJdfDApIT0oaHwwKSl7YkcoKX1xPWwrOHwwO2lmKChjW3E+PjJdfDApPT0oaHww
KSl7Y1twPj4yXT1sO2NbcT4+Ml09aTtDPWw7YnJlYWt9ZWxzZXtiRygpfX19d2hpbGUoMCk7aWYo
KG18MCk9PTApe2JyZWFrfWw9ZCsoYisyOCl8MDtnPTEwMTQ0KyhjW2w+PjJdPDwyKXwwO2Rve2lm
KChofDApPT0oY1tnPj4yXXwwKSl7Y1tnPj4yXT1DO2lmKChDfDApIT0wKXticmVha31jWzI0NjFd
PWNbMjQ2MV0mfigxPDxjW2w+PjJdKTticmVhayBMMTY1M31lbHNle2lmKG0+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKX10PW0rMTZ8MDtpZigoY1t0Pj4yXXwwKT09KGh8MCkpe2NbdD4+Ml09Q31l
bHNle2NbbSsyMD4+Ml09Q31pZigoQ3wwKT09MCl7YnJlYWsgTDE2NTN9fX13aGlsZSgwKTtpZihD
Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Y1tDKzI0Pj4yXT1tO2g9Y1tkKyhiKzE2KT4+Ml18
MDtkb3tpZigoaHwwKSE9MCl7aWYoaD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tD
KzE2Pj4yXT1oO2NbaCsyND4+Ml09QzticmVha319fXdoaWxlKDApO2g9Y1tkKyhiKzIwKT4+Ml18
MDtpZigoaHwwKT09MCl7YnJlYWt9aWYoaD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7
Y1tDKzIwPj4yXT1oO2NbaCsyND4+Ml09QzticmVha319fXdoaWxlKDApO2Nbbis0Pj4yXT1BfDE7
Y1tuK0E+PjJdPUE7aWYoKG58MCkhPShjWzI0NjVdfDApKXtGPUE7YnJlYWt9Y1syNDYyXT1BO3Jl
dHVybn1lbHNle2NbeT4+Ml09eiYtMjtjW24rND4+Ml09b3wxO2NbbitvPj4yXT1vO0Y9b319d2hp
bGUoMCk7bz1GPj4+MztpZihGPj4+MDwyNTYpe3o9bzw8MTt5PTk4ODArKHo8PDIpfDA7Qz1jWzI0
NjBdfDA7Yj0xPDxvO2Rve2lmKChDJmJ8MCk9PTApe2NbMjQ2MF09Q3xiO0c9eTtIPTk4ODArKHor
Mjw8Mil8MH1lbHNle289OTg4MCsoeisyPDwyKXwwO2Q9Y1tvPj4yXXwwO2lmKGQ+Pj4wPj0oY1sy
NDY0XXwwKT4+PjApe0c9ZDtIPW87YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1tIPj4yXT1uO2NbRysx
Mj4+Ml09bjtjW24rOD4+Ml09RztjW24rMTI+PjJdPXk7cmV0dXJufXk9bjtHPUY+Pj44O2Rve2lm
KChHfDApPT0wKXtJPTB9ZWxzZXtpZihGPj4+MD4xNjc3NzIxNSl7ST0zMTticmVha31IPShHKzEw
NDgzMjB8MCk+Pj4xNiY4O3o9Rzw8SDtiPSh6KzUyMDE5MnwwKT4+PjE2JjQ7Qz16PDxiO3o9KEMr
MjQ1NzYwfDApPj4+MTYmMjtvPTE0LShifEh8eikrKEM8PHo+Pj4xNSl8MDtJPUY+Pj4oKG8rN3ww
KT4+PjApJjF8bzw8MX19d2hpbGUoMCk7Rz0xMDE0NCsoSTw8Mil8MDtjW24rMjg+PjJdPUk7Y1tu
KzIwPj4yXT0wO2NbbisxNj4+Ml09MDtvPWNbMjQ2MV18MDt6PTE8PEk7aWYoKG8menwwKT09MCl7
Y1syNDYxXT1vfHo7Y1tHPj4yXT15O2NbbisyND4+Ml09RztjW24rMTI+PjJdPW47Y1tuKzg+PjJd
PW47cmV0dXJufWlmKChJfDApPT0zMSl7Sj0wfWVsc2V7Sj0yNS0oST4+PjEpfDB9ST1GPDxKO0o9
Y1tHPj4yXXwwO3doaWxlKDEpe2lmKChjW0orND4+Ml0mLTh8MCk9PShGfDApKXticmVha31LPUor
MTYrKEk+Pj4zMTw8Mil8MDtHPWNbSz4+Ml18MDtpZigoR3wwKT09MCl7TD0xMjk4O2JyZWFrfWVs
c2V7ST1JPDwxO0o9R319aWYoKEx8MCk9PTEyOTgpe2lmKEs+Pj4wPChjWzI0NjRdfDApPj4+MCl7
YkcoKX1jW0s+PjJdPXk7Y1tuKzI0Pj4yXT1KO2NbbisxMj4+Ml09bjtjW24rOD4+Ml09bjtyZXR1
cm59Sz1KKzh8MDtMPWNbSz4+Ml18MDtJPWNbMjQ2NF18MDtpZihKPj4+MDxJPj4+MCl7YkcoKX1p
ZihMPj4+MDxJPj4+MCl7YkcoKX1jW0wrMTI+PjJdPXk7Y1tLPj4yXT15O2Nbbis4Pj4yXT1MO2Nb
bisxMj4+Ml09SjtjW24rMjQ+PjJdPTA7cmV0dXJufWZ1bmN0aW9uIGtPKGEpe2E9YXwwO3ZhciBi
PTAsZD0wLGU9MDtiPShhfDApPT0wPzE6YTt3aGlsZSgxKXtkPWtKKGIpfDA7aWYoKGR8MCkhPTAp
e2U9MTM0MjticmVha31hPShJPWNbNDA0OF18MCxjWzQwNDhdPUkrMCxJKTtpZigoYXwwKT09MCl7
YnJlYWt9YjVbYSYzXSgpfWlmKChlfDApPT0xMzQyKXtyZXR1cm4gZHwwfWQ9Yk8oNCl8MDtjW2Q+
PjJdPTI0MDg7YmwoZHwwLDgxNjAsMzApO3JldHVybiAwfWZ1bmN0aW9uIGtQKGEpe2E9YXwwO3Jl
dHVybiBrTyhhKXwwfWZ1bmN0aW9uIGtRKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBrUihhKXth
PWF8MDtyZXR1cm4gMTE2MHwwfWZ1bmN0aW9uIGtTKGEpe2E9YXwwO2lmKChhfDApIT0wKXtrSyhh
KX1yZXR1cm59ZnVuY3Rpb24ga1QoYSl7YT1hfDA7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGtVKGEp
e2E9YXwwO2tTKGEpO3JldHVybn1mdW5jdGlvbiBrVihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MC4wLHI9MCxzPTAsdD0w
LHU9MCx2PTAuMCx3PTAseD0wLHk9MCx6PTAuMCxBPTAuMCxCPTAsQz0wLEQ9MCxFPTAuMCxGPTAs
Rz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MC4wLE89MCxQPTAsUT0wLjAsUj0wLjAsUz0w
LjA7ZT1iO3doaWxlKDEpe2Y9ZSsxfDA7aWYoKGFQKGFbZV18MCl8MCk9PTApe2JyZWFrfWVsc2V7
ZT1mfX1zd2l0Y2goYVtlXXwwKXtjYXNlIDQzOntnPWY7aT0wO2JyZWFrfTtjYXNlIDQ1OntnPWY7
aT0xO2JyZWFrfTtkZWZhdWx0OntnPWU7aT0wfX1lPS0xO2Y9MDtqPWc7d2hpbGUoMSl7az1hW2pd
fDA7aWYoKChrPDwyND4+MjQpLTQ4fDApPj4+MDwxMCl7bD1lfWVsc2V7aWYoazw8MjQ+PjI0IT00
NnwoZXwwKT4tMSl7YnJlYWt9ZWxzZXtsPWZ9fWU9bDtmPWYrMXwwO2o9aisxfDB9bD1qKygtZnww
KXwwO2c9KGV8MCk8MDttPSgoZ14xKTw8MzE+PjMxKStmfDA7bj0obXwwKT4xODtvPShuPy0xODot
bXwwKSsoZz9mOmUpfDA7ZT1uPzE4Om07ZG97aWYoKGV8MCk9PTApe3A9YjtxPTAuMH1lbHNle2lm
KChlfDApPjkpe209bDtuPWU7Zj0wO3doaWxlKDEpe2c9YVttXXwwO3I9bSsxfDA7aWYoZzw8MjQ+
PjI0PT00Nil7cz1hW3JdfDA7dD1tKzJ8MH1lbHNle3M9Zzt0PXJ9dT0oZioxMHwwKS00OCsoczw8
MjQ+PjI0KXwwO3I9bi0xfDA7aWYoKHJ8MCk+OSl7bT10O249cjtmPXV9ZWxzZXticmVha319dj0r
KHV8MCkqMS4wZTk7dz05O3g9dDt5PTEzNzB9ZWxzZXtpZigoZXwwKT4wKXt2PTAuMDt3PWU7eD1s
O3k9MTM3MH1lbHNle3o9MC4wO0E9MC4wfX1pZigoeXwwKT09MTM3MCl7Zj14O249dzttPTA7d2hp
bGUoMSl7cj1hW2ZdfDA7Zz1mKzF8MDtpZihyPDwyND4+MjQ9PTQ2KXtCPWFbZ118MDtDPWYrMnww
fWVsc2V7Qj1yO0M9Z31EPShtKjEwfDApLTQ4KyhCPDwyND4+MjQpfDA7Zz1uLTF8MDtpZigoZ3ww
KT4wKXtmPUM7bj1nO209RH1lbHNle2JyZWFrfX16PSsoRHwwKTtBPXZ9RT1BK3o7TDE4MTY6ZG97
c3dpdGNoKGs8PDI0Pj4yNCl7Y2FzZSA2OTpjYXNlIDEwMTp7bT1qKzF8MDtzd2l0Y2goYVttXXww
KXtjYXNlIDQ1OntGPWorMnwwO0c9MTticmVha307Y2FzZSA0Mzp7Rj1qKzJ8MDtHPTA7YnJlYWt9
O2RlZmF1bHQ6e0Y9bTtHPTB9fW09YVtGXXwwO2lmKCgobTw8MjQ+PjI0KS00OHwwKT4+PjA8MTAp
e0g9RjtJPTA7Sj1tfWVsc2V7Sz0wO0w9RjtNPUc7YnJlYWsgTDE4MTZ9d2hpbGUoMSl7bT0oSSox
MHwwKS00OCsoSjw8MjQ+PjI0KXwwO249SCsxfDA7Zj1hW25dfDA7aWYoKChmPDwyND4+MjQpLTQ4
fDApPj4+MDwxMCl7SD1uO0k9bTtKPWZ9ZWxzZXtLPW07TD1uO009RzticmVha319YnJlYWt9O2Rl
ZmF1bHQ6e0s9MDtMPWo7TT0wfX19d2hpbGUoMCk7bj1vKygoTXwwKT09MD9LOi1LfDApfDA7bT0o
bnwwKTwwPy1ufDA6bjtpZigobXwwKT41MTEpe2NbKGJ3KCl8MCk+PjJdPTM0O049MS4wO089ODtQ
PTUxMTt5PTEzODd9ZWxzZXtpZigobXwwKT09MCl7UT0xLjB9ZWxzZXtOPTEuMDtPPTg7UD1tO3k9
MTM4N319aWYoKHl8MCk9PTEzODcpe3doaWxlKDEpe3k9MDtpZigoUCYxfDApPT0wKXtSPU59ZWxz
ZXtSPU4qK2hbTz4+M119bT1QPj4xO2lmKChtfDApPT0wKXtRPVI7YnJlYWt9ZWxzZXtOPVI7Tz1P
Kzh8MDtQPW07eT0xMzg3fX19aWYoKG58MCk+LTEpe3A9TDtxPUUqUTticmVha31lbHNle3A9TDtx
PUUvUTticmVha319fXdoaWxlKDApO2lmKChkfDApIT0wKXtjW2Q+PjJdPXB9aWYoKGl8MCk9PTAp
e1M9cTtyZXR1cm4rU31TPS0wLjAtcTtyZXR1cm4rU31mdW5jdGlvbiBrVyhhLGIsYyl7YT1hfDA7
Yj1ifDA7Yz1jfDA7cmV0dXJuKygra1YoYSxiKSl9ZnVuY3Rpb24ga1goKXt2YXIgYT0wO2E9Yk8o
NCl8MDtjW2E+PjJdPTI0MDg7YmwoYXwwLDgxNjAsMzApfWZ1bmN0aW9uIGtZKGIsZCxlKXtiPWJ8
MDtkPWR8MDtlPWV8MDt2YXIgZj0wO2Y9YnwwO2lmKChiJjMpPT0oZCYzKSl7d2hpbGUoYiYzKXtp
ZigoZXwwKT09MClyZXR1cm4gZnwwO2FbYl09YVtkXXwwO2I9YisxfDA7ZD1kKzF8MDtlPWUtMXww
fXdoaWxlKChlfDApPj00KXtjW2I+PjJdPWNbZD4+Ml07Yj1iKzR8MDtkPWQrNHwwO2U9ZS00fDB9
fXdoaWxlKChlfDApPjApe2FbYl09YVtkXXwwO2I9YisxfDA7ZD1kKzF8MDtlPWUtMXwwfXJldHVy
biBmfDB9ZnVuY3Rpb24ga1ooYil7Yj1ifDA7dmFyIGM9MDtjPWFbbisoYj4+PjI0KXwwXXwwO2lm
KChjfDApPDgpcmV0dXJuIGN8MDtjPWFbbisoYj4+MTYmMjU1KXwwXXwwO2lmKChjfDApPDgpcmV0
dXJuIGMrOHwwO2M9YVtuKyhiPj44JjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjKzE2fDA7
cmV0dXJuKGFbbisoYiYyNTUpfDBdfDApKzI0fDB9ZnVuY3Rpb24ga18oYixjLGQpe2I9YnwwO2M9
Y3wwO2Q9ZHwwO2lmKChjfDApPChifDApJihifDApPChjK2R8MCkpe2M9YytkfDA7Yj1iK2R8MDt3
aGlsZSgoZHwwKT4wKXtiPWItMXwwO2M9Yy0xfDA7ZD1kLTF8MDthW2JdPWFbY118MH19ZWxzZXtr
WShiLGMsZCl8MH19ZnVuY3Rpb24gayQoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAs
Zz0wLGg9MDtmPWIrZXwwO2lmKChlfDApPj0yMCl7ZD1kJjI1NTtlPWImMztnPWR8ZDw8OHxkPDwx
NnxkPDwyNDtoPWYmfjM7aWYoZSl7ZT1iKzQtZXwwO3doaWxlKChifDApPChlfDApKXthW2JdPWQ7
Yj1iKzF8MH19d2hpbGUoKGJ8MCk8KGh8MCkpe2NbYj4+Ml09ZztiPWIrNHwwfX13aGlsZSgoYnww
KTwoZnwwKSl7YVtiXT1kO2I9YisxfDB9fWZ1bmN0aW9uIGswKGIpe2I9YnwwO3ZhciBjPTA7Yz1i
O3doaWxlKGFbY118MCl7Yz1jKzF8MH1yZXR1cm4gYy1ifDB9ZnVuY3Rpb24gazEoYSxiLGMsZCl7
YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7dmFyIGU9MDtlPWErYz4+PjA7cmV0dXJuKEs9YitkKyhl
Pj4+MDxhPj4+MHwwKT4+PjAsZXwwKXwwfWZ1bmN0aW9uIGsyKGEsYixjLGQpe2E9YXwwO2I9Ynww
O2M9Y3wwO2Q9ZHwwO3ZhciBlPTA7ZT1iLWQ+Pj4wO2U9Yi1kLShjPj4+MD5hPj4+MHwwKT4+PjA7
cmV0dXJuKEs9ZSxhLWM+Pj4wfDApfDB9ZnVuY3Rpb24gazMoYSxiLGMpe2E9YXwwO2I9YnwwO2M9
Y3wwO2lmKChjfDApPDMyKXtLPWI8PGN8KGEmKDE8PGMpLTE8PDMyLWMpPj4+MzItYztyZXR1cm4g
YTw8Y31LPWE8PGMtMzI7cmV0dXJuIDB9ZnVuY3Rpb24gazQoYSxiLGMpe2E9YXwwO2I9YnwwO2M9
Y3wwO2lmKChjfDApPDMyKXtLPWI+Pj5jO3JldHVybiBhPj4+Y3woYiYoMTw8YyktMSk8PDMyLWN9
Sz0wO3JldHVybiBiPj4+Yy0zMnwwfWZ1bmN0aW9uIGs1KGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8
MDtpZigoY3wwKTwzMil7Sz1iPj5jO3JldHVybiBhPj4+Y3woYiYoMTw8YyktMSk8PDMyLWN9Sz0o
YnwwKTwwPy0xOjA7cmV0dXJuIGI+PmMtMzJ8MH1mdW5jdGlvbiBrNihiKXtiPWJ8MDt2YXIgYz0w
O2M9YVttKyhiJjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjfDA7Yz1hW20rKGI+PjgmMjU1
KXwwXXwwO2lmKChjfDApPDgpcmV0dXJuIGMrOHwwO2M9YVttKyhiPj4xNiYyNTUpfDBdfDA7aWYo
KGN8MCk8OClyZXR1cm4gYysxNnwwO3JldHVybihhW20rKGI+Pj4yNCl8MF18MCkrMjR8MH1mdW5j
dGlvbiBrNyhhLGIpe2E9YXwwO2I9YnwwO3ZhciBjPTAsZD0wLGU9MCxmPTA7Yz1hJjY1NTM1O2Q9
YiY2NTUzNTtlPWFnKGQsYyl8MDtmPWE+Pj4xNjthPShlPj4+MTYpKyhhZyhkLGYpfDApfDA7ZD1i
Pj4+MTY7Yj1hZyhkLGMpfDA7cmV0dXJuKEs9KGE+Pj4xNikrKGFnKGQsZil8MCkrKCgoYSY2NTUz
NSkrYnwwKT4+PjE2KXwwLGErYjw8MTZ8ZSY2NTUzNXwwKXwwfWZ1bmN0aW9uIGs4KGEsYixjLGQp
e2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wO2U9Yj4+MzF8
KChifDApPDA/LTE6MCk8PDE7Zj0oKGJ8MCk8MD8tMTowKT4+MzF8KChifDApPDA/LTE6MCk8PDE7
Zz1kPj4zMXwoKGR8MCk8MD8tMTowKTw8MTtoPSgoZHwwKTwwPy0xOjApPj4zMXwoKGR8MCk8MD8t
MTowKTw8MTtpPWsyKGVeYSxmXmIsZSxmKXwwO2I9SzthPWdeZTtlPWheZjtmPWsyKChsZChpLGIs
azIoZ15jLGheZCxnLGgpfDAsSywwKXwwKV5hLEteZSxhLGUpfDA7cmV0dXJuKEs9SyxmKXwwfWZ1
bmN0aW9uIGs5KGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9
MCxqPTAsaz0wLGw9MCxtPTA7Zj1pO2k9aSs4fDA7Zz1mfDA7aD1iPj4zMXwoKGJ8MCk8MD8tMTow
KTw8MTtqPSgoYnwwKTwwPy0xOjApPj4zMXwoKGJ8MCk8MD8tMTowKTw8MTtrPWU+PjMxfCgoZXww
KTwwPy0xOjApPDwxO2w9KChlfDApPDA/LTE6MCk+PjMxfCgoZXwwKTwwPy0xOjApPDwxO209azIo
aF5hLGpeYixoLGopfDA7Yj1LO2E9azIoa15kLGxeZSxrLGwpfDA7bGQobSxiLGEsSyxnKXwwO2E9
azIoY1tnPj4yXV5oLGNbZys0Pj4yXV5qLGgsail8MDtqPUs7aT1mO3JldHVybihLPWosYSl8MH1m
dW5jdGlvbiBsYShhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wLGY9MDtl
PWE7YT1jO2M9azcoZSxhKXwwO2Y9SztyZXR1cm4oSz0oYWcoYixhKXwwKSsoYWcoZCxlKXwwKStm
fGYmMCxjfDB8MCl8MH1mdW5jdGlvbiBsYihhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8
MDt2YXIgZT0wO2U9bGQoYSxiLGMsZCwwKXwwO3JldHVybihLPUssZSl8MH1mdW5jdGlvbiBsYyhh
LGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MDtmPWk7aT1pKzh8MDtn
PWZ8MDtsZChhLGIsZCxlLGcpfDA7aT1mO3JldHVybihLPWNbZys0Pj4yXXwwLGNbZz4+Ml18MCl8
MH1mdW5jdGlvbiBsZChhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3Zh
ciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxMPTAsTT0wO2c9YTtoPWI7aT1oO2o9ZDtrPWU7bD1rO2lmKChpfDApPT0wKXttPShm
fDApIT0wO2lmKChsfDApPT0wKXtpZihtKXtjW2Y+PjJdPShnPj4+MCklKGo+Pj4wKTtjW2YrND4+
Ml09MH1uPTA7bz0oZz4+PjApLyhqPj4+MCk+Pj4wO3JldHVybihLPW4sbyl8MH1lbHNle2lmKCFt
KXtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1jW2Y+PjJdPWF8MDtjW2YrND4+Ml09YiYwO249MDtv
PTA7cmV0dXJuKEs9bixvKXwwfX1tPShsfDApPT0wO2Rve2lmKChqfDApPT0wKXtpZihtKXtpZigo
ZnwwKSE9MCl7Y1tmPj4yXT0oaT4+PjApJShqPj4+MCk7Y1tmKzQ+PjJdPTB9bj0wO289KGk+Pj4w
KS8oaj4+PjApPj4+MDtyZXR1cm4oSz1uLG8pfDB9aWYoKGd8MCk9PTApe2lmKChmfDApIT0wKXtj
W2Y+PjJdPTA7Y1tmKzQ+PjJdPShpPj4+MCklKGw+Pj4wKX1uPTA7bz0oaT4+PjApLyhsPj4+MCk+
Pj4wO3JldHVybihLPW4sbyl8MH1wPWwtMXwwO2lmKChwJmx8MCk9PTApe2lmKChmfDApIT0wKXtj
W2Y+PjJdPWF8MDtjW2YrND4+Ml09cCZpfGImMH1uPTA7bz1pPj4+KChrNihsfDApfDApPj4+MCk7
cmV0dXJuKEs9bixvKXwwfXA9KGtaKGx8MCl8MCktKGtaKGl8MCl8MCl8MDtpZihwPj4+MDw9MzAp
e3E9cCsxfDA7cj0zMS1wfDA7cz1xO3Q9aTw8cnxnPj4+KHE+Pj4wKTt1PWk+Pj4ocT4+PjApO3Y9
MDt3PWc8PHI7YnJlYWt9aWYoKGZ8MCk9PTApe249MDtvPTA7cmV0dXJuKEs9bixvKXwwfWNbZj4+
Ml09YXwwO2NbZis0Pj4yXT1ofGImMDtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1lbHNle2lmKCFt
KXtyPShrWihsfDApfDApLShrWihpfDApfDApfDA7aWYocj4+PjA8PTMxKXtxPXIrMXwwO3A9MzEt
cnwwO3g9ci0zMT4+MzE7cz1xO3Q9Zz4+PihxPj4+MCkmeHxpPDxwO3U9aT4+PihxPj4+MCkmeDt2
PTA7dz1nPDxwO2JyZWFrfWlmKChmfDApPT0wKXtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1jW2Y+
PjJdPWF8MDtjW2YrND4+Ml09aHxiJjA7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9cD1qLTF8MDtp
ZigocCZqfDApIT0wKXt4PShrWihqfDApfDApKzMzLShrWihpfDApfDApfDA7cT02NC14fDA7cj0z
Mi14fDA7eT1yPj4zMTt6PXgtMzJ8MDtBPXo+PjMxO3M9eDt0PXItMT4+MzEmaT4+Pih6Pj4+MCl8
KGk8PHJ8Zz4+Pih4Pj4+MCkpJkE7dT1BJmk+Pj4oeD4+PjApO3Y9Zzw8cSZ5O3c9KGk8PHF8Zz4+
Pih6Pj4+MCkpJnl8Zzw8ciZ4LTMzPj4zMTticmVha31pZigoZnwwKSE9MCl7Y1tmPj4yXT1wJmc7
Y1tmKzQ+PjJdPTB9aWYoKGp8MCk9PTEpe249aHxiJjA7bz1hfDB8MDtyZXR1cm4oSz1uLG8pfDB9
ZWxzZXtwPWs2KGp8MCl8MDtuPWk+Pj4ocD4+PjApfDA7bz1pPDwzMi1wfGc+Pj4ocD4+PjApfDA7
cmV0dXJuKEs9bixvKXwwfX19d2hpbGUoMCk7aWYoKHN8MCk9PTApe0I9dztDPXY7RD11O0U9dDtG
PTA7Rz0wfWVsc2V7Zz1kfDB8MDtkPWt8ZSYwO2U9azEoZyxkLC0xLC0xKXwwO2s9SztpPXc7dz12
O3Y9dTt1PXQ7dD1zO3M9MDt3aGlsZSgxKXtIPXc+Pj4zMXxpPDwxO0k9c3x3PDwxO2o9dTw8MXxp
Pj4+MzF8MDthPXU+Pj4zMXx2PDwxfDA7azIoZSxrLGosYSl8MDtiPUs7aD1iPj4zMXwoKGJ8MCk8
MD8tMTowKTw8MTtKPWgmMTtMPWsyKGosYSxoJmcsKCgoYnwwKTwwPy0xOjApPj4zMXwoKGJ8MCk8
MD8tMTowKTw8MSkmZCl8MDtNPUs7Yj10LTF8MDtpZigoYnwwKT09MCl7YnJlYWt9ZWxzZXtpPUg7
dz1JO3Y9TTt1PUw7dD1iO3M9Sn19Qj1IO0M9STtEPU07RT1MO0Y9MDtHPUp9Sj1DO0M9MDtpZigo
ZnwwKSE9MCl7Y1tmPj4yXT1FO2NbZis0Pj4yXT1EfW49KEp8MCk+Pj4zMXwoQnxDKTw8MXwoQzw8
MXxKPj4+MzEpJjB8RjtvPShKPDwxfDA+Pj4zMSkmLTJ8RztyZXR1cm4oSz1uLG8pfDB9ZnVuY3Rp
b24gbGUoKXtiUCgpfWZ1bmN0aW9uIGxmKGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtiV1thJjddKGJ8MCxjfDAsZHwwLGV8MCxmfDApfWZ1bmN0aW9uIGxn
KGEsYixjLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7YlhbYSYxMjddKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8MCl9ZnVuY3Rpb24g
bGgoYSxiKXthPWF8MDtiPWJ8MDtiWVthJjUxMV0oYnwwKX1mdW5jdGlvbiBsaShhLGIsYyl7YT1h
fDA7Yj1ifDA7Yz1jfDA7YlpbYSYxMjddKGJ8MCxjfDApfWZ1bmN0aW9uIGxqKGEsYixjKXthPWF8
MDtiPWJ8MDtjPWN8MDtyZXR1cm4gYl9bYSYzMV0oYnwwLGN8MCl8MH1mdW5jdGlvbiBsayhhLGIs
YyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7cmV0dXJuIGIkW2Em
MzFdKGJ8MCxjfDAsZHwwLGV8MCxmfDApfDB9ZnVuY3Rpb24gbGwoYSxiKXthPWF8MDtiPWJ8MDty
ZXR1cm4gYjBbYSYxMjddKGJ8MCl8MH1mdW5jdGlvbiBsbShhLGIsYyxkKXthPWF8MDtiPWJ8MDtj
PWN8MDtkPWR8MDtyZXR1cm4gYjFbYSY2M10oYnwwLGN8MCxkfDApfDB9ZnVuY3Rpb24gbG4oYSxi
LGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz0rZztiMlth
JjE1XShifDAsY3wwLGR8MCxlfDAsZnwwLCtnKX1mdW5jdGlvbiBsbyhhLGIsYyxkKXthPWF8MDti
PWJ8MDtjPWN8MDtkPWR8MDtiM1thJjddKGJ8MCxjfDAsZHwwKX1mdW5jdGlvbiBscChhLGIsYyxk
LGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1o
fDA7aT1pfDA7YjRbYSYxNV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwLGl8MCl9ZnVuY3Rp
b24gbHEoYSl7YT1hfDA7YjVbYSYzXSgpfWZ1bmN0aW9uIGxyKGEsYixjLGQsZSxmLGcsaCxpKXth
PWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtyZXR1
cm4gYjZbYSYzMV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwLGl8MCl8MH1mdW5jdGlvbiBs
cyhhLGIsYyxkLGUsZixnLGgsaSxqKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtiN1thJjddKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3ww
LGh8MCxpfDAsanwwKX1mdW5jdGlvbiBsdChhLGIsYyxkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2M9
Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9K2g7YjhbYSY3XShifDAsY3wwLGR8MCxlfDAs
ZnwwLGd8MCwraCl9ZnVuY3Rpb24gbHUoYSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7YjlbYSYzMV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAp
fWZ1bmN0aW9uIGx2KGEsYixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7cmV0
dXJuIGNhW2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCl8MH1mdW5jdGlvbiBsdyhhLGIsYyxkLGUpe2E9
YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2NiW2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCl9ZnVu
Y3Rpb24gbHgoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDthaCgwKX1m
dW5jdGlvbiBseShhLGIsYyxkLGUsZixnKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDthaCgxKX1mdW5jdGlvbiBseihhKXthPWF8MDthaCgyKX1mdW5jdGlvbiBsQShh
LGIpe2E9YXwwO2I9YnwwO2FoKDMpfWZ1bmN0aW9uIGxCKGEsYil7YT1hfDA7Yj1ifDA7YWgoNCk7
cmV0dXJuIDB9ZnVuY3Rpb24gbEMoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtl
PWV8MDthaCg1KTtyZXR1cm4gMH1mdW5jdGlvbiBsRChhKXthPWF8MDthaCg2KTtyZXR1cm4gMH1m
dW5jdGlvbiBsRShhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7YWgoNyk7cmV0dXJuIDB9ZnVuY3Rp
b24gbEYoYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9K2Y7YWgo
OCl9ZnVuY3Rpb24gbEcoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2FoKDkpfWZ1bmN0aW9uIGxI
KGEsYixjLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7YWgoMTApfWZ1bmN0aW9uIGxJKCl7YWgoMTEpfWZ1bmN0aW9uIGxKKGEsYixjLGQs
ZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
YWgoMTIpO3JldHVybiAwfWZ1bmN0aW9uIGxLKGEsYixjLGQsZSxmLGcsaCxpKXthPWF8MDtiPWJ8
MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDthaCgxMyl9ZnVuY3Rp
b24gbEwoYSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz0rZzthaCgxNCl9ZnVuY3Rpb24gbE0oYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2FoKDE1KX1mdW5jdGlvbiBsTihhLGIsYyxkKXthPWF8MDtiPWJ8MDtj
PWN8MDtkPWR8MDthaCgxNik7cmV0dXJuIDB9ZnVuY3Rpb24gbE8oYSxiLGMsZCl7YT1hfDA7Yj1i
fDA7Yz1jfDA7ZD1kfDA7YWgoMTcpfQotLy8gRU1TQ1JJUFRFTl9FTkRfRlVOQ1MKLXZhciBiVz1b
bHgsbHgsa0csbHgsa0QsbHgsa0YsbHhdO3ZhciBiWD1bbHksbHksZ0csbHksZ1AsbHksZ1MsbHks
aWgsbHksZ3QsbHksZ3IsbHksaDksbHksZ0IsbHksZ0YsbHksZ1QsbHksZ2YsbHksZjcsbHksZ0Us
bHksZkgsbHksZlosbHksZ1EsbHksZ2QsbHksZiQsbHksZlgsbHksZlksbHksZlEsbHksZl8sbHks
ZlYsbHksZlQsbHksZjQsbHksZjMsbHksZjAsbHksZ1UsbHksZkEsbHksZ0MsbHksZkUsbHksZnYs
bHksZnksbHksZkMsbHksZnIsbHksZk0sbHksZkssbHksZnAsbHksbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHldO3ZhciBiWT1bbHosbHosaWssbHosZm4sbHosZ2wsbHosZEgsbHos
ZW4sbHosaUUsbHosZHIsbHosaEEsbHosZjUsbHosZEIsbHosZEcsbHosZk8sbHosZmIsbHosZTcs
bHosa1EsbHosZEMsbHosaVAsbHosaVMsbHosZ08sbHosZlAsbHosa3EsbHosZTEsbHosaWUsbHos
aVEsbHosZVMsbHosZm8sbHosaHIsbHosaUwsbHosakksbHosaVUsbHosa2ssbHosakgsbHosZTUs
bHosYzUsbHosZEcsbHosY3QsbHosZmYsbHosaGcsbHosakssbHosaVIsbHosa0ssbHosaDcsbHos
akcsbHosZVYsbHosYzQsbHosZmUsbHosZEMsbHosajMsbHosZjYsbHosZGYsbHosaHMsbHosZVIs
bHosZSQsbHosaHksbHosZ04sbHosZTgsbHosaGwsbHosa1UsbHosZW0sbHosajYsbHosajcsbHos
ZTIsbHosZXUsbHosa3gsbHosaVYsbHosaTksbHosa2ksbHosZVQsbHosZTYsbHosaE8sbHosZGQs
bHosaHgsbHosZTMsbHosajksbHosa2wsbHosanEsbHosZGIsbHosaUssbHosaU8sbHosaHosbHos
aFUsbHosa3UsbHosaEcsbHosaDgsbHosajgsbHosaGYsbHosZ2ssbHosZmEsbHosZGMsbHosZmMs
bHosZVgsbHosZE4sbHosaCQsbHosaFQsbHosakosbHosZWUsbHosZEksbHosa2ksbHosa3ksbHos
ZV8sbHosZE8sbHosZVEsbHosZTAsbHosaWQsbHosZUQsbHosZVosbHosZHMsbHosaVcsbHosZTks
bHosaEosbHosZ3osbHosaG0sbHosYyQsbHosaXEsbHosaDAsbHosZVcsbHosZXQsbHosZVksbHos
akYsbHosajQsbHosZ0EsbHosa3csbHosaWwsbHosY18sbHosa3YsbHosaEIsbHosaFAsbHosY1cs
bHosZFAsbHosaVQsbHosZEYsbHosZVUsbHosa2EsbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHpdO3ZhciBiWj1bbEEsbEEsalAsbEEsYzAsbEEsaE0sbEEs
ak0sbEEsaGIsbEEsakwsbEEsaWosbEEsZDksbEEsaGssbEEsaEgsbEEsaHcsbEEsaGosbEEsaGgs
bEEsaE4sbEEsaU4sbEEsZzksbEEsZG0sbEEsaEksbEEsak8sbEEsaEssbEEsaG8sbEEsZEUsbEEs
aG4sbEEsalEsbEEsaGEsbEEsaHEsbEEsak4sbEEsZzgsbEEsZDIsbEEsZHQsbEEsYzYsbEEsaW8s
bEEsaHQsbEEsZzcsbEEsZzYsbEEsaGksbEEsaHUsbEEsaHYsbEEsaHAsbEEsaEwsbEEsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEFdO3ZhciBiXz1bbEIsbEIsaTQsbEIsZHcsbEIsaUEsbEIsaXQsbEIs
ZDgsbEIsYzksbEIsZHAsbEIsaTAsbEIsaTYsbEIsZUksbEIsaTIsbEIsZDcsbEIsYzIsbEIsZUgs
bEIsbEIsbEJdO3ZhciBiJD1bbEMsbEMsamgsbEMsamYsbEMsakUsbEMsaXcsbEMsaUcsbEMsanAs
bEMsaUksbEMsZmssbEMsaUQsbEMsamQsbEMsZUwsbEMsanMsbEMsbEMsbEMsbEMsbEMsbEMsbENd
O3ZhciBiMD1bbEQsbEQsajIsbEQsZzQsbEQsZDYsbEQsalUsbEQsZXIsbEQsajAsbEQsZzAsbEQs
amUsbEQsamssbEQsZ3ksbEQsalMsbEQsZHYsbEQsZU8sbEQsZUcsbEQsalksbEQsalcsbEQsanQs
bEQsa2osbEQsZGksbEQsakMsbEQsanosbEQsalgsbEQsamosbEQsakEsbEQsZDQsbEQsaEYsbEQs
alosbEQsZHUsbEQsYzEsbEQsZzEsbEQsaTgsbEQsajEsbEQsanYsbEQsaEQsbEQsalIsbEQsYzcs
bEQsanUsbEQsamcsbEQsZUosbEQsZyQsbEQsYzgsbEQsakIsbEQsZDUsbEQsZUUsbEQsZG4sbEQs
ZzIsbEQsaXosbEQsaXksbEQsa1IsbEQsZUYsbEQsZ1osbEQsalQsbEQsaXgsbEQsZ18sbEQsZGgs
bEQsZzMsbEQsZzUsbEQsalYsbEQsaEUsbEQsZ00sbEQsaiQsbEQsal8sbEQsamksbERdO3ZhciBi
MT1bbEUsbEUsZU0sbEUsaTUsbEUsaTMsbEUsa3osbEUsaUIsbEUsZmwsbEUsZEosbEUsZXMsbEUs
ZXEsbEUsaVksbEUsZWEsbEUsaW0sbEUsaUMsbEUsaTEsbEUsZU4sbEUsZGwsbEUsaTcsbEUsaWcs
bEUsZDMsbEUsZVAsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUs
bEUsbEUsbEUsbEUsbEUsbEUsbEUsbEVdO3ZhciBiMj1bbEYsbEYsZ3csbEYsZ3UsbEYsZ2ksbEYs
Z2csbEYsbEYsbEYsbEYsbEYsbEYsbEZdO3ZhciBiMz1bbEcsbEcsZGssbEcsZTQsbEcsbEcsbEdd
O3ZhciBiND1bbEgsbEgsaGUsbEgsaGQsbEgsaFEsbEgsaFksbEgsaFcsbEgsaDEsbEgsbEgsbEhd
O3ZhciBiNT1bbEksbEksbGUsbEldO3ZhciBiNj1bbEosbEosaXUsbEosamMsbEosam8sbEosaXYs
bEosanIsbEosakQsbEosamIsbEosamEsbEosbEosbEosbEosbEosbEosbEosbEosbEosbEosbEos
bEosbEosbEosbEpdO3ZhciBiNz1bbEssbEssZ1csbEssZ0ksbEssbEssbEtdO3ZhciBiOD1bbEws
bEwsaWEsbEwsaDQsbEwsbEwsbExdO3ZhciBiOT1bbE0sbE0sa0gsbE0sZ3MsbE0sZ20sbE0sZ28s
bE0sa0ksbE0sZ3gsbE0saWksbE0sZWQsbE0sZ24sbE0sZ2EsbE0sZ2UsbE0sZjgsbE0sa0UsbE0s
ZWIsbE0saXAsbE1dO3ZhciBjYT1bbE4sbE4saVosbE4saV8sbE4saUgsbE4saUYsbE4saSQsbE4s
bE4sbE4sbE4sbE5dO3ZhciBjYj1bbE8sbE8sa0EsbE8sa0IsbE8sZWMsbE8sa3IsbE8sZUssbE8s
Zm0sbE8sZmQsbE9dO3JldHVybntfc3RybGVuOmswLF9mcmVlOmtLLF9tYWluOmNELF9yZWFsbG9j
OmtMLF9tZW1tb3ZlOmtfLF9fR0xPQkFMX19JX2E6Y1QsX21lbXNldDprJCxfbWFsbG9jOmtKLF9t
ZW1jcHk6a1ksX2xsdm1fY3Rsel9pMzI6a1osX19HTE9CQUxfX0lfYTg6ZHkscnVuUG9zdFNldHM6
Y3Msc3RhY2tBbGxvYzpjYyxzdGFja1NhdmU6Y2Qsc3RhY2tSZXN0b3JlOmNlLHNldFRocmV3OmNm
LHNldFRlbXBSZXQwOmNpLHNldFRlbXBSZXQxOmNqLHNldFRlbXBSZXQyOmNrLHNldFRlbXBSZXQz
OmNsLHNldFRlbXBSZXQ0OmNtLHNldFRlbXBSZXQ1OmNuLHNldFRlbXBSZXQ2OmNvLHNldFRlbXBS
ZXQ3OmNwLHNldFRlbXBSZXQ4OmNxLHNldFRlbXBSZXQ5OmNyLGR5bkNhbGxfdmlpaWlpOmxmLGR5
bkNhbGxfdmlpaWlpaWk6bGcsZHluQ2FsbF92aTpsaCxkeW5DYWxsX3ZpaTpsaSxkeW5DYWxsX2lp
aTpsaixkeW5DYWxsX2lpaWlpaTpsayxkeW5DYWxsX2lpOmxsLGR5bkNhbGxfaWlpaTpsbSxkeW5D
YWxsX3ZpaWlpaWY6bG4sZHluQ2FsbF92aWlpOmxvLGR5bkNhbGxfdmlpaWlpaWlpOmxwLGR5bkNh
bGxfdjpscSxkeW5DYWxsX2lpaWlpaWlpaTpscixkeW5DYWxsX3ZpaWlpaWlpaWk6bHMsZHluQ2Fs
bF92aWlpaWlpZjpsdCxkeW5DYWxsX3ZpaWlpaWk6bHUsZHluQ2FsbF9paWlpaTpsdixkeW5DYWxs
X3ZpaWlpOmx3fX0pCi0vLyBFTVNDUklQVEVOX0VORF9BU00KLSh7ICJNYXRoIjogTWF0aCwgIklu
dDhBcnJheSI6IEludDhBcnJheSwgIkludDE2QXJyYXkiOiBJbnQxNkFycmF5LCAiSW50MzJBcnJh
eSI6IEludDMyQXJyYXksICJVaW50OEFycmF5IjogVWludDhBcnJheSwgIlVpbnQxNkFycmF5Ijog
VWludDE2QXJyYXksICJVaW50MzJBcnJheSI6IFVpbnQzMkFycmF5LCAiRmxvYXQzMkFycmF5Ijog
RmxvYXQzMkFycmF5LCAiRmxvYXQ2NEFycmF5IjogRmxvYXQ2NEFycmF5IH0sIHsgImFib3J0Ijog
YWJvcnQsICJhc3NlcnQiOiBhc3NlcnQsICJhc21QcmludEludCI6IGFzbVByaW50SW50LCAiYXNt
UHJpbnRGbG9hdCI6IGFzbVByaW50RmxvYXQsICJtaW4iOiBNYXRoX21pbiwgImludm9rZV92aWlp
aWkiOiBpbnZva2VfdmlpaWlpLCAiaW52b2tlX3ZpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlpLCAi
aW52b2tlX3ZpIjogaW52b2tlX3ZpLCAiaW52b2tlX3ZpaSI6IGludm9rZV92aWksICJpbnZva2Vf
aWlpIjogaW52b2tlX2lpaSwgImludm9rZV9paWlpaWkiOiBpbnZva2VfaWlpaWlpLCAiaW52b2tl
X2lpIjogaW52b2tlX2lpLCAiaW52b2tlX2lpaWkiOiBpbnZva2VfaWlpaSwgImludm9rZV92aWlp
aWlmIjogaW52b2tlX3ZpaWlpaWYsICJpbnZva2VfdmlpaSI6IGludm9rZV92aWlpLCAiaW52b2tl
X3ZpaWlpaWlpaSI6IGludm9rZV92aWlpaWlpaWksICJpbnZva2VfdiI6IGludm9rZV92LCAiaW52
b2tlX2lpaWlpaWlpaSI6IGludm9rZV9paWlpaWlpaWksICJpbnZva2VfdmlpaWlpaWlpaSI6IGlu
dm9rZV92aWlpaWlpaWlpLCAiaW52b2tlX3ZpaWlpaWlmIjogaW52b2tlX3ZpaWlpaWlmLCAiaW52
b2tlX3ZpaWlpaWkiOiBpbnZva2VfdmlpaWlpaSwgImludm9rZV9paWlpaSI6IGludm9rZV9paWlp
aSwgImludm9rZV92aWlpaSI6IGludm9rZV92aWlpaSwgIl9sbHZtX2xpZmV0aW1lX2VuZCI6IF9s
bHZtX2xpZmV0aW1lX2VuZCwgIl9fc2NhblN0cmluZyI6IF9fc2NhblN0cmluZywgIl9wdGhyZWFk
X211dGV4X2xvY2siOiBfcHRocmVhZF9tdXRleF9sb2NrLCAiX19fY3hhX2VuZF9jYXRjaCI6IF9f
X2N4YV9lbmRfY2F0Y2gsICJfc3RydG91bGwiOiBfc3RydG91bGwsICJfX2lzRmxvYXQiOiBfX2lz
RmxvYXQsICJfZmZsdXNoIjogX2ZmbHVzaCwgIl9faXNMZWFwWWVhciI6IF9faXNMZWFwWWVhciwg
Il9md3JpdGUiOiBfZndyaXRlLCAiX3NlbmQiOiBfc2VuZCwgIl9sbHZtX3VtdWxfd2l0aF9vdmVy
Zmxvd19pMzIiOiBfbGx2bV91bXVsX3dpdGhfb3ZlcmZsb3dfaTMyLCAiX2lzc3BhY2UiOiBfaXNz
cGFjZSwgIl9yZWFkIjogX3JlYWQsICJfX19jeGFfZ3VhcmRfYWJvcnQiOiBfX19jeGFfZ3VhcmRf
YWJvcnQsICJfbmV3bG9jYWxlIjogX25ld2xvY2FsZSwgIl9fX2d4eF9wZXJzb25hbGl0eV92MCI6
IF9fX2d4eF9wZXJzb25hbGl0eV92MCwgIl9wdGhyZWFkX2NvbmRfd2FpdCI6IF9wdGhyZWFkX2Nv
bmRfd2FpdCwgIl9fX2N4YV9yZXRocm93IjogX19fY3hhX3JldGhyb3csICJfX19yZXN1bWVFeGNl
cHRpb24iOiBfX19yZXN1bWVFeGNlcHRpb24sICJfbGx2bV92YV9lbmQiOiBfbGx2bV92YV9lbmQs
ICJfdnNzY2FuZiI6IF92c3NjYW5mLCAiX3NucHJpbnRmIjogX3NucHJpbnRmLCAiX2ZnZXRjIjog
X2ZnZXRjLCAiX2F0ZXhpdCI6IF9hdGV4aXQsICJfX19jeGFfZnJlZV9leGNlcHRpb24iOiBfX19j
eGFfZnJlZV9leGNlcHRpb24sICJfX1o4Y2F0Y2xvc2VQOF9ubF9jYXRkIjogX19aOGNhdGNsb3Nl
UDhfbmxfY2F0ZCwgIl9fX3NldEVyck5vIjogX19fc2V0RXJyTm8sICJfaXN4ZGlnaXQiOiBfaXN4
ZGlnaXQsICJfZXhpdCI6IF9leGl0LCAiX3NwcmludGYiOiBfc3ByaW50ZiwgIl9fX2N0eXBlX2Jf
bG9jIjogX19fY3R5cGVfYl9sb2MsICJfZnJlZWxvY2FsZSI6IF9mcmVlbG9jYWxlLCAiX19aN2Nh
dG9wZW5QS2NpIjogX19aN2NhdG9wZW5QS2NpLCAiX2FzcHJpbnRmIjogX2FzcHJpbnRmLCAiX19f
Y3hhX2lzX251bWJlcl90eXBlIjogX19fY3hhX2lzX251bWJlcl90eXBlLCAiX19fY3hhX2RvZXNf
aW5oZXJpdCI6IF9fX2N4YV9kb2VzX2luaGVyaXQsICJfX19jeGFfZ3VhcmRfYWNxdWlyZSI6IF9f
X2N4YV9ndWFyZF9hY3F1aXJlLCAiX19fbG9jYWxlX21iX2N1cl9tYXgiOiBfX19sb2NhbGVfbWJf
Y3VyX21heCwgIl9fX2N4YV9iZWdpbl9jYXRjaCI6IF9fX2N4YV9iZWdpbl9jYXRjaCwgIl9yZWN2
IjogX3JlY3YsICJfX3BhcnNlSW50NjQiOiBfX3BhcnNlSW50NjQsICJfX1pTdDE4dW5jYXVnaHRf
ZXhjZXB0aW9udiI6IF9fWlN0MTh1bmNhdWdodF9leGNlcHRpb252LCAiX19fY3hhX2NhbGxfdW5l
eHBlY3RlZCI6IF9fX2N4YV9jYWxsX3VuZXhwZWN0ZWQsICJfX2V4aXQiOiBfX2V4aXQsICJfc3Ry
ZnRpbWUiOiBfc3RyZnRpbWUsICJfX19jeGFfdGhyb3ciOiBfX19jeGFfdGhyb3csICJfbGx2bV9l
aF9leGNlcHRpb24iOiBfbGx2bV9laF9leGNlcHRpb24sICJfcHJlYWQiOiBfcHJlYWQsICJfX2Fy
cmF5U3VtIjogX19hcnJheVN1bSwgIl9sb2ciOiBfbG9nLCAiX19fY3hhX2ZpbmRfbWF0Y2hpbmdf
Y2F0Y2giOiBfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaCwgIl9fZm9ybWF0U3RyaW5nIjogX19m
b3JtYXRTdHJpbmcsICJfcHRocmVhZF9jb25kX2Jyb2FkY2FzdCI6IF9wdGhyZWFkX2NvbmRfYnJv
YWRjYXN0LCAiX19aU3Q5dGVybWluYXRldiI6IF9fWlN0OXRlcm1pbmF0ZXYsICJfcHRocmVhZF9t
dXRleF91bmxvY2siOiBfcHRocmVhZF9tdXRleF91bmxvY2ssICJfc2JyayI6IF9zYnJrLCAiX19f
ZXJybm9fbG9jYXRpb24iOiBfX19lcnJub19sb2NhdGlvbiwgIl9zdHJlcnJvciI6IF9zdHJlcnJv
ciwgIl9sbHZtX2xpZmV0aW1lX3N0YXJ0IjogX2xsdm1fbGlmZXRpbWVfc3RhcnQsICJfX19jeGFf
Z3VhcmRfcmVsZWFzZSI6IF9fX2N4YV9ndWFyZF9yZWxlYXNlLCAiX3VuZ2V0YyI6IF91bmdldGMs
ICJfdXNlbG9jYWxlIjogX3VzZWxvY2FsZSwgIl92c25wcmludGYiOiBfdnNucHJpbnRmLCAiX3Nz
Y2FuZiI6IF9zc2NhbmYsICJfc3lzY29uZiI6IF9zeXNjb25mLCAiX2ZyZWFkIjogX2ZyZWFkLCAi
X2Fib3J0IjogX2Fib3J0LCAiX2lzZGlnaXQiOiBfaXNkaWdpdCwgIl9zdHJ0b2xsIjogX3N0cnRv
bGwsICJfX2FkZERheXMiOiBfX2FkZERheXMsICJfZmxvb3IiOiBfZmxvb3IsICJfX3JlYWxseU5l
Z2F0aXZlIjogX19yZWFsbHlOZWdhdGl2ZSwgIl9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtjIjog
X19aN2NhdGdldHNQOF9ubF9jYXRkaWlQS2MsICJfd3JpdGUiOiBfd3JpdGUsICJfX19jeGFfYWxs
b2NhdGVfZXhjZXB0aW9uIjogX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbiwgIl9fX2N4YV9wdXJl
X3ZpcnR1YWwiOiBfX19jeGFfcHVyZV92aXJ0dWFsLCAiX3Zhc3ByaW50ZiI6IF92YXNwcmludGYs
ICJfX19jdHlwZV90b3VwcGVyX2xvYyI6IF9fX2N0eXBlX3RvdXBwZXJfbG9jLCAiX19fY3R5cGVf
dG9sb3dlcl9sb2MiOiBfX19jdHlwZV90b2xvd2VyX2xvYywgIl9wd3JpdGUiOiBfcHdyaXRlLCAi
X3N0cmVycm9yX3IiOiBfc3RyZXJyb3JfciwgIl90aW1lIjogX3RpbWUsICJTVEFDS1RPUCI6IFNU
QUNLVE9QLCAiU1RBQ0tfTUFYIjogU1RBQ0tfTUFYLCAidGVtcERvdWJsZVB0ciI6IHRlbXBEb3Vi
bGVQdHIsICJBQk9SVCI6IEFCT1JULCAiY3R0el9pOCI6IGN0dHpfaTgsICJjdGx6X2k4IjogY3Rs
el9pOCwgIk5hTiI6IE5hTiwgIkluZmluaXR5IjogSW5maW5pdHksICJfc3RkaW4iOiBfc3RkaW4s
ICJfX1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRSI6IF9fWlRWTjEwX19jeHhh
Yml2MTE3X19jbGFzc190eXBlX2luZm9FLCAiX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNz
X3R5cGVfaW5mb0UiOiBfX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRSwg
Il9zdGRlcnIiOiBfc3RkZXJyLCAiX19fZnNtdTgiOiBfX19mc211OCwgIl9zdGRvdXQiOiBfc3Rk
b3V0LCAiX19fZHNvX2hhbmRsZSI6IF9fX2Rzb19oYW5kbGUgfSwgYnVmZmVyKTsKLXZhciBfc3Ry
bGVuID0gTW9kdWxlWyJfc3RybGVuIl0gPSBhc21bIl9zdHJsZW4iXTsKLXZhciBfZnJlZSA9IE1v
ZHVsZVsiX2ZyZWUiXSA9IGFzbVsiX2ZyZWUiXTsKLXZhciBfbWFpbiA9IE1vZHVsZVsiX21haW4i
XSA9IGFzbVsiX21haW4iXTsKLXZhciBfcmVhbGxvYyA9IE1vZHVsZVsiX3JlYWxsb2MiXSA9IGFz
bVsiX3JlYWxsb2MiXTsKLXZhciBfbWVtbW92ZSA9IE1vZHVsZVsiX21lbW1vdmUiXSA9IGFzbVsi
X21lbW1vdmUiXTsKLXZhciBfX0dMT0JBTF9fSV9hID0gTW9kdWxlWyJfX0dMT0JBTF9fSV9hIl0g
PSBhc21bIl9fR0xPQkFMX19JX2EiXTsKLXZhciBfbWVtc2V0ID0gTW9kdWxlWyJfbWVtc2V0Il0g
PSBhc21bIl9tZW1zZXQiXTsKLXZhciBfbWFsbG9jID0gTW9kdWxlWyJfbWFsbG9jIl0gPSBhc21b
Il9tYWxsb2MiXTsKLXZhciBfbWVtY3B5ID0gTW9kdWxlWyJfbWVtY3B5Il0gPSBhc21bIl9tZW1j
cHkiXTsKLXZhciBfbGx2bV9jdGx6X2kzMiA9IE1vZHVsZVsiX2xsdm1fY3Rsel9pMzIiXSA9IGFz
bVsiX2xsdm1fY3Rsel9pMzIiXTsKLXZhciBfX0dMT0JBTF9fSV9hOCA9IE1vZHVsZVsiX19HTE9C
QUxfX0lfYTgiXSA9IGFzbVsiX19HTE9CQUxfX0lfYTgiXTsKLXZhciBydW5Qb3N0U2V0cyA9IE1v
ZHVsZVsicnVuUG9zdFNldHMiXSA9IGFzbVsicnVuUG9zdFNldHMiXTsKLXZhciBkeW5DYWxsX3Zp
aWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWkiXTsK
LXZhciBkeW5DYWxsX3ZpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpIl0gPSBhc21b
ImR5bkNhbGxfdmlpaWlpaWkiXTsKLXZhciBkeW5DYWxsX3ZpID0gTW9kdWxlWyJkeW5DYWxsX3Zp
Il0gPSBhc21bImR5bkNhbGxfdmkiXTsKLXZhciBkeW5DYWxsX3ZpaSA9IE1vZHVsZVsiZHluQ2Fs
bF92aWkiXSA9IGFzbVsiZHluQ2FsbF92aWkiXTsKLXZhciBkeW5DYWxsX2lpaSA9IE1vZHVsZVsi
ZHluQ2FsbF9paWkiXSA9IGFzbVsiZHluQ2FsbF9paWkiXTsKLXZhciBkeW5DYWxsX2lpaWlpaSA9
IE1vZHVsZVsiZHluQ2FsbF9paWlpaWkiXSA9IGFzbVsiZHluQ2FsbF9paWlpaWkiXTsKLXZhciBk
eW5DYWxsX2lpID0gTW9kdWxlWyJkeW5DYWxsX2lpIl0gPSBhc21bImR5bkNhbGxfaWkiXTsKLXZh
ciBkeW5DYWxsX2lpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdID0gYXNtWyJkeW5DYWxsX2lp
aWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWYgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZiJdID0g
YXNtWyJkeW5DYWxsX3ZpaWlpaWYiXTsKLXZhciBkeW5DYWxsX3ZpaWkgPSBNb2R1bGVbImR5bkNh
bGxfdmlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlpaSA9
IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWlpaWkiXTsK
LXZhciBkeW5DYWxsX3YgPSBNb2R1bGVbImR5bkNhbGxfdiJdID0gYXNtWyJkeW5DYWxsX3YiXTsK
LXZhciBkeW5DYWxsX2lpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWkiXSA9IGFz
bVsiZHluQ2FsbF9paWlpaWlpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlpaWkgPSBNb2R1bGVb
ImR5bkNhbGxfdmlpaWlpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWlpaWkiXTsKLXZhciBk
eW5DYWxsX3ZpaWlpaWlmID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlmIl0gPSBhc21bImR5bkNh
bGxfdmlpaWlpaWYiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlp
aWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWkiXTsKLXZhciBkeW5DYWxsX2lpaWlpID0gTW9k
dWxlWyJkeW5DYWxsX2lpaWlpIl0gPSBhc21bImR5bkNhbGxfaWlpaWkiXTsKLXZhciBkeW5DYWxs
X3ZpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWkiXTsK
LVJ1bnRpbWUuc3RhY2tBbGxvYyA9IGZ1bmN0aW9uKHNpemUpIHsgcmV0dXJuIGFzbVsnc3RhY2tB
bGxvYyddKHNpemUpIH07Ci1SdW50aW1lLnN0YWNrU2F2ZSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4g
YXNtWydzdGFja1NhdmUnXSgpIH07Ci1SdW50aW1lLnN0YWNrUmVzdG9yZSA9IGZ1bmN0aW9uKHRv
cCkgeyBhc21bJ3N0YWNrUmVzdG9yZSddKHRvcCkgfTsKLS8vIFRPRE86IHN0cmlwIG91dCBwYXJ0
cyBvZiB0aGlzIHdlIGRvIG5vdCBuZWVkCi0vLz09PT09PT0gYmVnaW4gY2xvc3VyZSBpNjQgY29k
ZSA9PT09PT09Ci0vLyBDb3B5cmlnaHQgMjAwOSBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBM
aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1c2Ug
dGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZb3Ug
bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyAgICAgIGh0dHA6Ly93
d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLy8KLS8vIFVubGVzcyByZXF1aXJl
ZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLS8v
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUy1J
UyIgQkFTSVMsCi0vLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lO
RCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhl
IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS8vIGxpbWl0YXRp
b25zIHVuZGVyIHRoZSBMaWNlbnNlLgotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IERlZmluZXMgYSBM
b25nIGNsYXNzIGZvciByZXByZXNlbnRpbmcgYSA2NC1iaXQgdHdvJ3MtY29tcGxlbWVudAotICog
aW50ZWdlciB2YWx1ZSwgd2hpY2ggZmFpdGhmdWxseSBzaW11bGF0ZXMgdGhlIGJlaGF2aW9yIG9m
IGEgSmF2YSAibG9uZyIuIFRoaXMKLSAqIGltcGxlbWVudGF0aW9uIGlzIGRlcml2ZWQgZnJvbSBM
b25nTGliIGluIEdXVC4KLSAqCi0gKi8KLXZhciBpNjRNYXRoID0gKGZ1bmN0aW9uKCkgeyAvLyBF
bXNjcmlwdGVuIHdyYXBwZXIKLSAgdmFyIGdvb2cgPSB7IG1hdGg6IHt9IH07Ci0gIC8qKgotICAg
KiBDb25zdHJ1Y3RzIGEgNjQtYml0IHR3bydzLWNvbXBsZW1lbnQgaW50ZWdlciwgZ2l2ZW4gaXRz
IGxvdyBhbmQgaGlnaCAzMi1iaXQKLSAgICogdmFsdWVzIGFzICpzaWduZWQqIGludGVnZXJzLiAg
U2VlIHRoZSBmcm9tKiBmdW5jdGlvbnMgYmVsb3cgZm9yIG1vcmUKLSAgICogY29udmVuaWVudCB3
YXlzIG9mIGNvbnN0cnVjdGluZyBMb25ncy4KLSAgICoKLSAgICogVGhlIGludGVybmFsIHJlcHJl
c2VudGF0aW9uIG9mIGEgbG9uZyBpcyB0aGUgdHdvIGdpdmVuIHNpZ25lZCwgMzItYml0IHZhbHVl
cy4KLSAgICogV2UgdXNlIDMyLWJpdCBwaWVjZXMgYmVjYXVzZSB0aGVzZSBhcmUgdGhlIHNpemUg
b2YgaW50ZWdlcnMgb24gd2hpY2gKLSAgICogSmF2YXNjcmlwdCBwZXJmb3JtcyBiaXQtb3BlcmF0
aW9ucy4gIEZvciBvcGVyYXRpb25zIGxpa2UgYWRkaXRpb24gYW5kCi0gICAqIG11bHRpcGxpY2F0
aW9uLCB3ZSBzcGxpdCBlYWNoIG51bWJlciBpbnRvIDE2LWJpdCBwaWVjZXMsIHdoaWNoIGNhbiBl
YXNpbHkgYmUKLSAgICogbXVsdGlwbGllZCB3aXRoaW4gSmF2YXNjcmlwdCdzIGZsb2F0aW5nLXBv
aW50IHJlcHJlc2VudGF0aW9uIHdpdGhvdXQgb3ZlcmZsb3cKLSAgICogb3IgY2hhbmdlIGluIHNp
Z24uCi0gICAqCi0gICAqIEluIHRoZSBhbGdvcml0aG1zIGJlbG93LCB3ZSBmcmVxdWVudGx5IHJl
ZHVjZSB0aGUgbmVnYXRpdmUgY2FzZSB0byB0aGUKLSAgICogcG9zaXRpdmUgY2FzZSBieSBuZWdh
dGluZyB0aGUgaW5wdXQocykgYW5kIHRoZW4gcG9zdC1wcm9jZXNzaW5nIHRoZSByZXN1bHQuCi0g
ICAqIE5vdGUgdGhhdCB3ZSBtdXN0IEFMV0FZUyBjaGVjayBzcGVjaWFsbHkgd2hldGhlciB0aG9z
ZSB2YWx1ZXMgYXJlIE1JTl9WQUxVRQotICAgKiAoLTJeNjMpIGJlY2F1c2UgLU1JTl9WQUxVRSA9
PSBNSU5fVkFMVUUgKHNpbmNlIDJeNjMgY2Fubm90IGJlIHJlcHJlc2VudGVkIGFzCi0gICAqIGEg
cG9zaXRpdmUgbnVtYmVyLCBpdCBvdmVyZmxvd3MgYmFjayBpbnRvIGEgbmVnYXRpdmUpLiAgTm90
IGhhbmRsaW5nIHRoaXMKLSAgICogY2FzZSB3b3VsZCBvZnRlbiByZXN1bHQgaW4gaW5maW5pdGUg
cmVjdXJzaW9uLgotICAgKgotICAgKiBAcGFyYW0ge251bWJlcn0gbG93ICBUaGUgbG93IChzaWdu
ZWQpIDMyIGJpdHMgb2YgdGhlIGxvbmcuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBoaWdoICBUaGUg
aGlnaCAoc2lnbmVkKSAzMiBiaXRzIG9mIHRoZSBsb25nLgotICAgKiBAY29uc3RydWN0b3IKLSAg
ICovCi0gIGdvb2cubWF0aC5Mb25nID0gZnVuY3Rpb24obG93LCBoaWdoKSB7Ci0gICAgLyoqCi0g
ICAgICogQHR5cGUge251bWJlcn0KLSAgICAgKiBAcHJpdmF0ZQotICAgICAqLwotICAgIHRoaXMu
bG93XyA9IGxvdyB8IDA7ICAvLyBmb3JjZSBpbnRvIDMyIHNpZ25lZCBiaXRzLgotICAgIC8qKgot
ICAgICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAgICogQHByaXZhdGUKLSAgICAgKi8KLSAgICB0aGlz
LmhpZ2hfID0gaGlnaCB8IDA7ICAvLyBmb3JjZSBpbnRvIDMyIHNpZ25lZCBiaXRzLgotICB9Owot
ICAvLyBOT1RFOiBDb21tb24gY29uc3RhbnQgdmFsdWVzIFpFUk8sIE9ORSwgTkVHX09ORSwgZXRj
LiBhcmUgZGVmaW5lZCBiZWxvdyB0aGUKLSAgLy8gZnJvbSogbWV0aG9kcyBvbiB3aGljaCB0aGV5
IGRlcGVuZC4KLSAgLyoqCi0gICAqIEEgY2FjaGUgb2YgdGhlIExvbmcgcmVwcmVzZW50YXRpb25z
IG9mIHNtYWxsIGludGVnZXIgdmFsdWVzLgotICAgKiBAdHlwZSB7IU9iamVjdH0KLSAgICogQHBy
aXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLkludENhY2hlXyA9IHt9OwotICAvKioKLSAg
ICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50aW5nIHRoZSBnaXZlbiAoMzItYml0KSBpbnRlZ2Vy
IHZhbHVlLgotICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVGhlIDMyLWJpdCBpbnRlZ2VyIGlu
IHF1ZXN0aW9uLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNwb25k
aW5nIExvbmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5mcm9tSW50ID0gZnVuY3Rp
b24odmFsdWUpIHsKLSAgICBpZiAoLTEyOCA8PSB2YWx1ZSAmJiB2YWx1ZSA8IDEyOCkgewotICAg
ICAgdmFyIGNhY2hlZE9iaiA9IGdvb2cubWF0aC5Mb25nLkludENhY2hlX1t2YWx1ZV07Ci0gICAg
ICBpZiAoY2FjaGVkT2JqKSB7Ci0gICAgICAgIHJldHVybiBjYWNoZWRPYmo7Ci0gICAgICB9Ci0g
ICAgfQotICAgIHZhciBvYmogPSBuZXcgZ29vZy5tYXRoLkxvbmcodmFsdWUgfCAwLCB2YWx1ZSA8
IDAgPyAtMSA6IDApOwotICAgIGlmICgtMTI4IDw9IHZhbHVlICYmIHZhbHVlIDwgMTI4KSB7Ci0g
ICAgICBnb29nLm1hdGguTG9uZy5JbnRDYWNoZV9bdmFsdWVdID0gb2JqOwotICAgIH0KLSAgICBy
ZXR1cm4gb2JqOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50aW5n
IHRoZSBnaXZlbiB2YWx1ZSwgcHJvdmlkZWQgdGhhdCBpdCBpcyBhIGZpbml0ZQotICAgKiBudW1i
ZXIuICBPdGhlcndpc2UsIHplcm8gaXMgcmV0dXJuZWQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSB2
YWx1ZSBUaGUgbnVtYmVyIGluIHF1ZXN0aW9uLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxv
bmd9IFRoZSBjb3JyZXNwb25kaW5nIExvbmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9u
Zy5mcm9tTnVtYmVyID0gZnVuY3Rpb24odmFsdWUpIHsKLSAgICBpZiAoaXNOYU4odmFsdWUpIHx8
ICFpc0Zpbml0ZSh2YWx1ZSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwot
ICAgIH0gZWxzZSBpZiAodmFsdWUgPD0gLWdvb2cubWF0aC5Mb25nLlRXT19QV1JfNjNfREJMXykg
ewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRTsKLSAgICB9IGVsc2UgaWYg
KHZhbHVlICsgMSA+PSBnb29nLm1hdGguTG9uZy5UV09fUFdSXzYzX0RCTF8pIHsKLSAgICAgIHJl
dHVybiBnb29nLm1hdGguTG9uZy5NQVhfVkFMVUU7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZSA8IDAp
IHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKC12YWx1ZSkubmVnYXRl
KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBuZXcgZ29vZy5tYXRoLkxvbmcoCi0gICAg
ICAgICAgKHZhbHVlICUgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfKSB8IDAsCi0gICAg
ICAgICAgKHZhbHVlIC8gZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfKSB8IDApOwotICAg
IH0KLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBMb25nIHJlcHJlc2VudGluZyB0aGUgNjQt
Yml0IGludGVnZXIgdGhhdCBjb21lcyBieSBjb25jYXRlbmF0aW5nCi0gICAqIHRoZSBnaXZlbiBo
aWdoIGFuZCBsb3cgYml0cy4gIEVhY2ggaXMgYXNzdW1lZCB0byB1c2UgMzIgYml0cy4KLSAgICog
QHBhcmFtIHtudW1iZXJ9IGxvd0JpdHMgVGhlIGxvdyAzMi1iaXRzLgotICAgKiBAcGFyYW0ge251
bWJlcn0gaGlnaEJpdHMgVGhlIGhpZ2ggMzItYml0cy4KLSAgICogQHJldHVybiB7IWdvb2cubWF0
aC5Mb25nfSBUaGUgY29ycmVzcG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8KLSAgZ29vZy5tYXRo
LkxvbmcuZnJvbUJpdHMgPSBmdW5jdGlvbihsb3dCaXRzLCBoaWdoQml0cykgewotICAgIHJldHVy
biBuZXcgZ29vZy5tYXRoLkxvbmcobG93Qml0cywgaGlnaEJpdHMpOwotICB9OwotICAvKioKLSAg
ICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIHN0cmluZywgd3Jp
dHRlbiB1c2luZyB0aGUgZ2l2ZW4KLSAgICogcmFkaXguCi0gICAqIEBwYXJhbSB7c3RyaW5nfSBz
dHIgVGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmcuCi0gICAqIEBwYXJhbSB7
bnVtYmVyPX0gb3B0X3JhZGl4IFRoZSByYWRpeCBpbiB3aGljaCB0aGUgdGV4dCBpcyB3cml0dGVu
LgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNwb25kaW5nIExvbmcg
dmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5mcm9tU3RyaW5nID0gZnVuY3Rpb24oc3Ry
LCBvcHRfcmFkaXgpIHsKLSAgICBpZiAoc3RyLmxlbmd0aCA9PSAwKSB7Ci0gICAgICB0aHJvdyBF
cnJvcignbnVtYmVyIGZvcm1hdCBlcnJvcjogZW1wdHkgc3RyaW5nJyk7Ci0gICAgfQotICAgIHZh
ciByYWRpeCA9IG9wdF9yYWRpeCB8fCAxMDsKLSAgICBpZiAocmFkaXggPCAyIHx8IDM2IDwgcmFk
aXgpIHsKLSAgICAgIHRocm93IEVycm9yKCdyYWRpeCBvdXQgb2YgcmFuZ2U6ICcgKyByYWRpeCk7
Ci0gICAgfQotICAgIGlmIChzdHIuY2hhckF0KDApID09ICctJykgewotICAgICAgcmV0dXJuIGdv
b2cubWF0aC5Mb25nLmZyb21TdHJpbmcoc3RyLnN1YnN0cmluZygxKSwgcmFkaXgpLm5lZ2F0ZSgp
OwotICAgIH0gZWxzZSBpZiAoc3RyLmluZGV4T2YoJy0nKSA+PSAwKSB7Ci0gICAgICB0aHJvdyBF
cnJvcignbnVtYmVyIGZvcm1hdCBlcnJvcjogaW50ZXJpb3IgIi0iIGNoYXJhY3RlcjogJyArIHN0
cik7Ci0gICAgfQotICAgIC8vIERvIHNldmVyYWwgKDgpIGRpZ2l0cyBlYWNoIHRpbWUgdGhyb3Vn
aCB0aGUgbG9vcCwgc28gYXMgdG8KLSAgICAvLyBtaW5pbWl6ZSB0aGUgY2FsbHMgdG8gdGhlIHZl
cnkgZXhwZW5zaXZlIGVtdWxhdGVkIGRpdi4KLSAgICB2YXIgcmFkaXhUb1Bvd2VyID0gZ29vZy5t
YXRoLkxvbmcuZnJvbU51bWJlcihNYXRoLnBvdyhyYWRpeCwgOCkpOwotICAgIHZhciByZXN1bHQg
PSBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0
aDsgaSArPSA4KSB7Ci0gICAgICB2YXIgc2l6ZSA9IE1hdGgubWluKDgsIHN0ci5sZW5ndGggLSBp
KTsKLSAgICAgIHZhciB2YWx1ZSA9IHBhcnNlSW50KHN0ci5zdWJzdHJpbmcoaSwgaSArIHNpemUp
LCByYWRpeCk7Ci0gICAgICBpZiAoc2l6ZSA8IDgpIHsKLSAgICAgICAgdmFyIHBvd2VyID0gZ29v
Zy5tYXRoLkxvbmcuZnJvbU51bWJlcihNYXRoLnBvdyhyYWRpeCwgc2l6ZSkpOwotICAgICAgICBy
ZXN1bHQgPSByZXN1bHQubXVsdGlwbHkocG93ZXIpLmFkZChnb29nLm1hdGguTG9uZy5mcm9tTnVt
YmVyKHZhbHVlKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXN1bHQgPSByZXN1bHQubXVs
dGlwbHkocmFkaXhUb1Bvd2VyKTsKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmFkZChnb29nLm1h
dGguTG9uZy5mcm9tTnVtYmVyKHZhbHVlKSk7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiBy
ZXN1bHQ7Ci0gIH07Ci0gIC8vIE5PVEU6IHRoZSBjb21waWxlciBzaG91bGQgaW5saW5lIHRoZXNl
IGNvbnN0YW50IHZhbHVlcyBiZWxvdyBhbmQgdGhlbiByZW1vdmUKLSAgLy8gdGhlc2UgdmFyaWFi
bGVzLCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gcnVudGltZSBwZW5hbHR5IGZvciB0aGVzZS4KLSAg
LyoqCi0gICAqIE51bWJlciB1c2VkIHJlcGVhdGVkIGJlbG93IGluIGNhbGN1bGF0aW9ucy4gIFRo
aXMgbXVzdCBhcHBlYXIgYmVmb3JlIHRoZQotICAgKiBmaXJzdCBjYWxsIHRvIGFueSBmcm9tKiBm
dW5jdGlvbiBiZWxvdy4KLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUKLSAgICov
Ci0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMTZfREJMXyA9IDEgPDwgMTY7Ci0gIC8qKgotICAg
KiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcu
VFdPX1BXUl8yNF9EQkxfID0gMSA8PCAyNDsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0g
ICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gPQot
ICAgICAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8xNl9EQkxfICogZ29vZy5tYXRoLkxvbmcuVFdP
X1BXUl8xNl9EQkxfOwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUK
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzFfREJMXyA9Ci0gICAgICBnb29nLm1h
dGguTG9uZy5UV09fUFdSXzMyX0RCTF8gLyAyOwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0K
LSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfNDhfREJMXyA9
Ci0gICAgICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gKiBnb29nLm1hdGguTG9uZy5U
V09fUFdSXzE2X0RCTF87Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0
ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl82NF9EQkxfID0KLSAgICAgIGdvb2cu
bWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXyAqIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJM
XzsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBn
b29nLm1hdGguTG9uZy5UV09fUFdSXzYzX0RCTF8gPQotICAgICAgZ29vZy5tYXRoLkxvbmcuVFdP
X1BXUl82NF9EQkxfIC8gMjsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdv
b2cubWF0aC5Mb25nLlpFUk8gPSBnb29nLm1hdGguTG9uZy5mcm9tSW50KDApOwotICAvKiogQHR5
cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRoLkxvbmcuT05FID0gZ29vZy5tYXRo
LkxvbmcuZnJvbUludCgxKTsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdv
b2cubWF0aC5Mb25nLk5FR19PTkUgPSBnb29nLm1hdGguTG9uZy5mcm9tSW50KC0xKTsKLSAgLyoq
IEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdvb2cubWF0aC5Mb25nLk1BWF9WQUxVRSA9
Ci0gICAgICBnb29nLm1hdGguTG9uZy5mcm9tQml0cygweEZGRkZGRkZGIHwgMCwgMHg3RkZGRkZG
RiB8IDApOwotICAvKiogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRoLkxv
bmcuTUlOX1ZBTFVFID0gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoMCwgMHg4MDAwMDAwMCB8IDAp
OwotICAvKioKLSAgICogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30KLSAgICogQHByaXZhdGUKLSAg
ICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfID0gZ29vZy5tYXRoLkxvbmcuZnJvbUlu
dCgxIDw8IDI0KTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhlIHZhbHVlLCBhc3N1bWluZyBp
dCBpcyBhIDMyLWJpdCBpbnRlZ2VyLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUudG9J
bnQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5sb3dfOwotICB9OwotICAvKiogQHJl
dHVybiB7bnVtYmVyfSBUaGUgY2xvc2VzdCBmbG9hdGluZy1wb2ludCByZXByZXNlbnRhdGlvbiB0
byB0aGlzIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUudG9OdW1iZXIgPSBm
dW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdoXyAqIGdvb2cubWF0aC5Mb25nLlRXT19Q
V1JfMzJfREJMXyArCi0gICAgICAgICAgIHRoaXMuZ2V0TG93Qml0c1Vuc2lnbmVkKCk7Ci0gIH07
Ci0gIC8qKgotICAgKiBAcGFyYW0ge251bWJlcj19IG9wdF9yYWRpeCBUaGUgcmFkaXggaW4gd2hp
Y2ggdGhlIHRleHQgc2hvdWxkIGJlIHdyaXR0ZW4uCi0gICAqIEByZXR1cm4ge3N0cmluZ30gVGhl
IHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB2YWx1ZS4KLSAgICovCi0gIGdvb2cubWF0
aC5Mb25nLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKG9wdF9yYWRpeCkgewotICAgIHZh
ciByYWRpeCA9IG9wdF9yYWRpeCB8fCAxMDsKLSAgICBpZiAocmFkaXggPCAyIHx8IDM2IDwgcmFk
aXgpIHsKLSAgICAgIHRocm93IEVycm9yKCdyYWRpeCBvdXQgb2YgcmFuZ2U6ICcgKyByYWRpeCk7
Ci0gICAgfQotICAgIGlmICh0aGlzLmlzWmVybygpKSB7Ci0gICAgICByZXR1cm4gJzAnOwotICAg
IH0KLSAgICBpZiAodGhpcy5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIGlmICh0aGlzLmVxdWFscyhn
b29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICAgIC8vIFdlIG5lZWQgdG8gY2hhbmdl
IHRoZSBMb25nIHZhbHVlIGJlZm9yZSBpdCBjYW4gYmUgbmVnYXRlZCwgc28gd2UgcmVtb3ZlCi0g
ICAgICAgIC8vIHRoZSBib3R0b20tbW9zdCBkaWdpdCBpbiB0aGlzIGJhc2UgYW5kIHRoZW4gcmVj
dXJzZSB0byBkbyB0aGUgcmVzdC4KLSAgICAgICAgdmFyIHJhZGl4TG9uZyA9IGdvb2cubWF0aC5M
b25nLmZyb21OdW1iZXIocmFkaXgpOwotICAgICAgICB2YXIgZGl2ID0gdGhpcy5kaXYocmFkaXhM
b25nKTsKLSAgICAgICAgdmFyIHJlbSA9IGRpdi5tdWx0aXBseShyYWRpeExvbmcpLnN1YnRyYWN0
KHRoaXMpOwotICAgICAgICByZXR1cm4gZGl2LnRvU3RyaW5nKHJhZGl4KSArIHJlbS50b0ludCgp
LnRvU3RyaW5nKHJhZGl4KTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiAnLScgKyB0
aGlzLm5lZ2F0ZSgpLnRvU3RyaW5nKHJhZGl4KTsKLSAgICAgIH0KLSAgICB9Ci0gICAgLy8gRG8g
c2V2ZXJhbCAoNikgZGlnaXRzIGVhY2ggdGltZSB0aHJvdWdoIHRoZSBsb29wLCBzbyBhcyB0bwot
ICAgIC8vIG1pbmltaXplIHRoZSBjYWxscyB0byB0aGUgdmVyeSBleHBlbnNpdmUgZW11bGF0ZWQg
ZGl2LgotICAgIHZhciByYWRpeFRvUG93ZXIgPSBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKE1h
dGgucG93KHJhZGl4LCA2KSk7Ci0gICAgdmFyIHJlbSA9IHRoaXM7Ci0gICAgdmFyIHJlc3VsdCA9
ICcnOwotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICB2YXIgcmVtRGl2ID0gcmVtLmRpdihyYWRp
eFRvUG93ZXIpOwotICAgICAgdmFyIGludHZhbCA9IHJlbS5zdWJ0cmFjdChyZW1EaXYubXVsdGlw
bHkocmFkaXhUb1Bvd2VyKSkudG9JbnQoKTsKLSAgICAgIHZhciBkaWdpdHMgPSBpbnR2YWwudG9T
dHJpbmcocmFkaXgpOwotICAgICAgcmVtID0gcmVtRGl2OwotICAgICAgaWYgKHJlbS5pc1plcm8o
KSkgewotICAgICAgICByZXR1cm4gZGlnaXRzICsgcmVzdWx0OwotICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgd2hpbGUgKGRpZ2l0cy5sZW5ndGggPCA2KSB7Ci0gICAgICAgICAgZGlnaXRzID0gJzAn
ICsgZGlnaXRzOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdCA9ICcnICsgZGlnaXRzICsgcmVz
dWx0OwotICAgICAgfQotICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhlIGhp
Z2ggMzItYml0cyBhcyBhIHNpZ25lZCB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90
eXBlLmdldEhpZ2hCaXRzID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF87Ci0g
IH07Ci0gIC8qKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBsb3cgMzItYml0cyBhcyBhIHNpZ25lZCB2
YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmdldExvd0JpdHMgPSBmdW5jdGlv
bigpIHsKLSAgICByZXR1cm4gdGhpcy5sb3dfOwotICB9OwotICAvKiogQHJldHVybiB7bnVtYmVy
fSBUaGUgbG93IDMyLWJpdHMgYXMgYW4gdW5zaWduZWQgdmFsdWUuICovCi0gIGdvb2cubWF0aC5M
b25nLnByb3RvdHlwZS5nZXRMb3dCaXRzVW5zaWduZWQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1
cm4gKHRoaXMubG93XyA+PSAwKSA/Ci0gICAgICAgIHRoaXMubG93XyA6IGdvb2cubWF0aC5Mb25n
LlRXT19QV1JfMzJfREJMXyArIHRoaXMubG93XzsKLSAgfTsKLSAgLyoqCi0gICAqIEByZXR1cm4g
e251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJpdHMgbmVlZGVkIHRvIHJlcHJlc2VudCB0
aGUgYWJzb2x1dGUKLSAgICogICAgIHZhbHVlIG9mIHRoaXMgTG9uZy4KLSAgICovCi0gIGdvb2cu
bWF0aC5Mb25nLnByb3RvdHlwZS5nZXROdW1CaXRzQWJzID0gZnVuY3Rpb24oKSB7Ci0gICAgaWYg
KHRoaXMuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRoLkxv
bmcuTUlOX1ZBTFVFKSkgewotICAgICAgICByZXR1cm4gNjQ7Ci0gICAgICB9IGVsc2UgewotICAg
ICAgICByZXR1cm4gdGhpcy5uZWdhdGUoKS5nZXROdW1CaXRzQWJzKCk7Ci0gICAgICB9Ci0gICAg
fSBlbHNlIHsKLSAgICAgIHZhciB2YWwgPSB0aGlzLmhpZ2hfICE9IDAgPyB0aGlzLmhpZ2hfIDog
dGhpcy5sb3dfOwotICAgICAgZm9yICh2YXIgYml0ID0gMzE7IGJpdCA+IDA7IGJpdC0tKSB7Ci0g
ICAgICAgIGlmICgodmFsICYgKDEgPDwgYml0KSkgIT0gMCkgewotICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdGhpcy5oaWdoXyAhPSAwID8gYml0ICsg
MzMgOiBiaXQgKyAxOwotICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRo
ZXIgdGhpcyB2YWx1ZSBpcyB6ZXJvLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuaXNa
ZXJvID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF8gPT0gMCAmJiB0aGlzLmxv
d18gPT0gMDsKLSAgfTsKLSAgLyoqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyB2YWx1
ZSBpcyBuZWdhdGl2ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmlzTmVnYXRpdmUg
PSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdoXyA8IDA7Ci0gIH07Ci0gIC8qKiBA
cmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgdmFsdWUgaXMgb2RkLiAqLwotICBnb29nLm1h
dGguTG9uZy5wcm90b3R5cGUuaXNPZGQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gKHRoaXMu
bG93XyAmIDEpID09IDE7Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25n
fSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0g
V2hldGhlciB0aGlzIExvbmcgZXF1YWxzIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5M
b25nLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiAodGhp
cy5oaWdoXyA9PSBvdGhlci5oaWdoXykgJiYgKHRoaXMubG93XyA9PSBvdGhlci5sb3dfKTsKLSAg
fTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29t
cGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9uZyBk
b2VzIG5vdCBlcXVhbCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5
cGUubm90RXF1YWxzID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gKHRoaXMuaGlnaF8g
IT0gb3RoZXIuaGlnaF8pIHx8ICh0aGlzLmxvd18gIT0gb3RoZXIubG93Xyk7Ci0gIH07Ci0gIC8q
KgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdh
aW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExvbmcgaXMgbGVzcyB0
aGFuIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5sZXNzVGhh
biA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikgPCAw
OwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0
byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBM
b25nIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1h
dGguTG9uZy5wcm90b3R5cGUubGVzc1RoYW5PckVxdWFsID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAg
ICByZXR1cm4gdGhpcy5jb21wYXJlKG90aGVyKSA8PSAwOwotICB9OwotICAvKioKLSAgICogQHBh
cmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFnYWluc3QuCi0gICAq
IEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBMb25nIGlzIGdyZWF0ZXIgdGhhbiB0aGUg
b3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZ3JlYXRlclRoYW4gPSBm
dW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLmNvbXBhcmUob3RoZXIpID4gMDsKLSAg
fTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29t
cGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9uZyBp
cyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRo
LkxvbmcucHJvdG90eXBlLmdyZWF0ZXJUaGFuT3JFcXVhbCA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0g
ICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikgPj0gMDsKLSAgfTsKLSAgLyoqCi0gICAqIENv
bXBhcmVzIHRoaXMgTG9uZyB3aXRoIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5t
YXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtu
dW1iZXJ9IDAgaWYgdGhleSBhcmUgdGhlIHNhbWUsIDEgaWYgdGhlIHRoaXMgaXMgZ3JlYXRlciwg
YW5kIC0xCi0gICAqICAgICBpZiB0aGUgZ2l2ZW4gb25lIGlzIGdyZWF0ZXIuCi0gICAqLwotICBn
b29nLm1hdGguTG9uZy5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAg
aWYgKHRoaXMuZXF1YWxzKG90aGVyKSkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIHZh
ciB0aGlzTmVnID0gdGhpcy5pc05lZ2F0aXZlKCk7Ci0gICAgdmFyIG90aGVyTmVnID0gb3RoZXIu
aXNOZWdhdGl2ZSgpOwotICAgIGlmICh0aGlzTmVnICYmICFvdGhlck5lZykgewotICAgICAgcmV0
dXJuIC0xOwotICAgIH0KLSAgICBpZiAoIXRoaXNOZWcgJiYgb3RoZXJOZWcpIHsKLSAgICAgIHJl
dHVybiAxOwotICAgIH0KLSAgICAvLyBhdCB0aGlzIHBvaW50LCB0aGUgc2lnbnMgYXJlIHRoZSBz
YW1lLCBzbyBzdWJ0cmFjdGlvbiB3aWxsIG5vdCBvdmVyZmxvdwotICAgIGlmICh0aGlzLnN1YnRy
YWN0KG90aGVyKS5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9IGVsc2Ug
ewotICAgICAgcmV0dXJuIDE7Ci0gICAgfQotICB9OwotICAvKiogQHJldHVybiB7IWdvb2cubWF0
aC5Mb25nfSBUaGUgbmVnYXRpb24gb2YgdGhpcyB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcu
cHJvdG90eXBlLm5lZ2F0ZSA9IGZ1bmN0aW9uKCkgewotICAgIGlmICh0aGlzLmVxdWFscyhnb29n
Lm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuTUlO
X1ZBTFVFOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gdGhpcy5ub3QoKS5hZGQoZ29vZy5t
YXRoLkxvbmcuT05FKTsKLSAgICB9Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBzdW0g
b2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9
IG90aGVyIExvbmcgdG8gYWRkIHRvIHRoaXMgb25lLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRo
Lkxvbmd9IFRoZSBzdW0gb2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqLwotICBnb29n
Lm1hdGguTG9uZy5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICAvLyBEaXZp
ZGUgZWFjaCBudW1iZXIgaW50byA0IGNodW5rcyBvZiAxNiBiaXRzLCBhbmQgdGhlbiBzdW0gdGhl
IGNodW5rcy4KLSAgICB2YXIgYTQ4ID0gdGhpcy5oaWdoXyA+Pj4gMTY7Ci0gICAgdmFyIGEzMiA9
IHRoaXMuaGlnaF8gJiAweEZGRkY7Ci0gICAgdmFyIGExNiA9IHRoaXMubG93XyA+Pj4gMTY7Ci0g
ICAgdmFyIGEwMCA9IHRoaXMubG93XyAmIDB4RkZGRjsKLSAgICB2YXIgYjQ4ID0gb3RoZXIuaGln
aF8gPj4+IDE2OwotICAgIHZhciBiMzIgPSBvdGhlci5oaWdoXyAmIDB4RkZGRjsKLSAgICB2YXIg
YjE2ID0gb3RoZXIubG93XyA+Pj4gMTY7Ci0gICAgdmFyIGIwMCA9IG90aGVyLmxvd18gJiAweEZG
RkY7Ci0gICAgdmFyIGM0OCA9IDAsIGMzMiA9IDAsIGMxNiA9IDAsIGMwMCA9IDA7Ci0gICAgYzAw
ICs9IGEwMCArIGIwMDsKLSAgICBjMTYgKz0gYzAwID4+PiAxNjsKLSAgICBjMDAgJj0gMHhGRkZG
OwotICAgIGMxNiArPSBhMTYgKyBiMTY7Ci0gICAgYzMyICs9IGMxNiA+Pj4gMTY7Ci0gICAgYzE2
ICY9IDB4RkZGRjsKLSAgICBjMzIgKz0gYTMyICsgYjMyOwotICAgIGM0OCArPSBjMzIgPj4+IDE2
OwotICAgIGMzMiAmPSAweEZGRkY7Ci0gICAgYzQ4ICs9IGE0OCArIGI0ODsKLSAgICBjNDggJj0g
MHhGRkZGOwotICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygoYzE2IDw8IDE2KSB8
IGMwMCwgKGM0OCA8PCAxNikgfCBjMzIpOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUg
ZGlmZmVyZW5jZSBvZiB0aGlzIGFuZCB0aGUgZ2l2ZW4gTG9uZy4KLSAgICogQHBhcmFtIHtnb29n
Lm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBzdWJ0cmFjdCBmcm9tIHRoaXMuCi0gICAqIEByZXR1
cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGRpZmZlcmVuY2Ugb2YgdGhpcyBhbmQgdGhlIGdpdmVu
IExvbmcuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc3VidHJhY3QgPSBmdW5j
dGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLmFkZChvdGhlci5uZWdhdGUoKSk7Ci0gIH07
Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBwcm9kdWN0IG9mIHRoaXMgYW5kIHRoZSBnaXZlbiBs
b25nLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIG11bHRpcGx5
IHdpdGggdGhpcy4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgcHJvZHVjdCBv
ZiB0aGlzIGFuZCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUu
bXVsdGlwbHkgPSBmdW5jdGlvbihvdGhlcikgewotICAgIGlmICh0aGlzLmlzWmVybygpKSB7Ci0g
ICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9IGVsc2UgaWYgKG90aGVyLmlz
WmVybygpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0gICAg
aWYgKHRoaXMuZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJldHVy
biBvdGhlci5pc09kZCgpID8gZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFIDogZ29vZy5tYXRoLkxv
bmcuWkVSTzsKLSAgICB9IGVsc2UgaWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5f
VkFMVUUpKSB7Ci0gICAgICByZXR1cm4gdGhpcy5pc09kZCgpID8gZ29vZy5tYXRoLkxvbmcuTUlO
X1ZBTFVFIDogZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0gICAgaWYgKHRoaXMuaXNOZWdh
dGl2ZSgpKSB7Ci0gICAgICBpZiAob3RoZXIuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICAgIHJldHVy
biB0aGlzLm5lZ2F0ZSgpLm11bHRpcGx5KG90aGVyLm5lZ2F0ZSgpKTsKLSAgICAgIH0gZWxzZSB7
Ci0gICAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZSgpLm11bHRpcGx5KG90aGVyKS5uZWdhdGUoKTsK
LSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG90aGVyLmlzTmVnYXRpdmUoKSkgewotICAgICAgcmV0
dXJuIHRoaXMubXVsdGlwbHkob3RoZXIubmVnYXRlKCkpLm5lZ2F0ZSgpOwotICAgIH0KLSAgICAv
LyBJZiBib3RoIGxvbmdzIGFyZSBzbWFsbCwgdXNlIGZsb2F0IG11bHRpcGxpY2F0aW9uCi0gICAg
aWYgKHRoaXMubGVzc1RoYW4oZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8yNF8pICYmCi0gICAgICAg
IG90aGVyLmxlc3NUaGFuKGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfKSkgewotICAgICAgcmV0
dXJuIGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIodGhpcy50b051bWJlcigpICogb3RoZXIudG9O
dW1iZXIoKSk7Ci0gICAgfQotICAgIC8vIERpdmlkZSBlYWNoIGxvbmcgaW50byA0IGNodW5rcyBv
ZiAxNiBiaXRzLCBhbmQgdGhlbiBhZGQgdXAgNHg0IHByb2R1Y3RzLgotICAgIC8vIFdlIGNhbiBz
a2lwIHByb2R1Y3RzIHRoYXQgd291bGQgb3ZlcmZsb3cuCi0gICAgdmFyIGE0OCA9IHRoaXMuaGln
aF8gPj4+IDE2OwotICAgIHZhciBhMzIgPSB0aGlzLmhpZ2hfICYgMHhGRkZGOwotICAgIHZhciBh
MTYgPSB0aGlzLmxvd18gPj4+IDE2OwotICAgIHZhciBhMDAgPSB0aGlzLmxvd18gJiAweEZGRkY7
Ci0gICAgdmFyIGI0OCA9IG90aGVyLmhpZ2hfID4+PiAxNjsKLSAgICB2YXIgYjMyID0gb3RoZXIu
aGlnaF8gJiAweEZGRkY7Ci0gICAgdmFyIGIxNiA9IG90aGVyLmxvd18gPj4+IDE2OwotICAgIHZh
ciBiMDAgPSBvdGhlci5sb3dfICYgMHhGRkZGOwotICAgIHZhciBjNDggPSAwLCBjMzIgPSAwLCBj
MTYgPSAwLCBjMDAgPSAwOwotICAgIGMwMCArPSBhMDAgKiBiMDA7Ci0gICAgYzE2ICs9IGMwMCA+
Pj4gMTY7Ci0gICAgYzAwICY9IDB4RkZGRjsKLSAgICBjMTYgKz0gYTE2ICogYjAwOwotICAgIGMz
MiArPSBjMTYgPj4+IDE2OwotICAgIGMxNiAmPSAweEZGRkY7Ci0gICAgYzE2ICs9IGEwMCAqIGIx
NjsKLSAgICBjMzIgKz0gYzE2ID4+PiAxNjsKLSAgICBjMTYgJj0gMHhGRkZGOwotICAgIGMzMiAr
PSBhMzIgKiBiMDA7Ci0gICAgYzQ4ICs9IGMzMiA+Pj4gMTY7Ci0gICAgYzMyICY9IDB4RkZGRjsK
LSAgICBjMzIgKz0gYTE2ICogYjE2OwotICAgIGM0OCArPSBjMzIgPj4+IDE2OwotICAgIGMzMiAm
PSAweEZGRkY7Ci0gICAgYzMyICs9IGEwMCAqIGIzMjsKLSAgICBjNDggKz0gYzMyID4+PiAxNjsK
LSAgICBjMzIgJj0gMHhGRkZGOwotICAgIGM0OCArPSBhNDggKiBiMDAgKyBhMzIgKiBiMTYgKyBh
MTYgKiBiMzIgKyBhMDAgKiBiNDg7Ci0gICAgYzQ4ICY9IDB4RkZGRjsKLSAgICByZXR1cm4gZ29v
Zy5tYXRoLkxvbmcuZnJvbUJpdHMoKGMxNiA8PCAxNikgfCBjMDAsIChjNDggPDwgMTYpIHwgYzMy
KTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBMb25nIGRpdmlkZWQgYnkgdGhlIGdp
dmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyBieSB3aGlj
aCB0byBkaXZpZGUuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhpcyBMb25nIGRp
dmlkZWQgYnkgdGhlIGdpdmVuIG9uZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlw
ZS5kaXYgPSBmdW5jdGlvbihvdGhlcikgewotICAgIGlmIChvdGhlci5pc1plcm8oKSkgewotICAg
ICAgdGhyb3cgRXJyb3IoJ2RpdmlzaW9uIGJ5IHplcm8nKTsKLSAgICB9IGVsc2UgaWYgKHRoaXMu
aXNaZXJvKCkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0KLSAg
ICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgaWYg
KG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5PTkUpIHx8Ci0gICAgICAgICAgb3RoZXIuZXF1
YWxzKGdvb2cubWF0aC5Mb25nLk5FR19PTkUpKSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGgu
TG9uZy5NSU5fVkFMVUU7ICAvLyByZWNhbGwgdGhhdCAtTUlOX1ZBTFVFID09IE1JTl9WQUxVRQot
ICAgICAgfSBlbHNlIGlmIChvdGhlci5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkg
ewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuT05FOwotICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2UgaGF2ZSB8b3RoZXJ8ID49IDIsIHNvIHx0aGlzL290
aGVyfCA8IHxNSU5fVkFMVUV8LgotICAgICAgICB2YXIgaGFsZlRoaXMgPSB0aGlzLnNoaWZ0Umln
aHQoMSk7Ci0gICAgICAgIHZhciBhcHByb3ggPSBoYWxmVGhpcy5kaXYob3RoZXIpLnNoaWZ0TGVm
dCgxKTsKLSAgICAgICAgaWYgKGFwcHJveC5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuWkVSTykpIHsK
LSAgICAgICAgICByZXR1cm4gb3RoZXIuaXNOZWdhdGl2ZSgpID8gZ29vZy5tYXRoLkxvbmcuT05F
IDogZ29vZy5tYXRoLkxvbmcuTkVHX09ORTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2
YXIgcmVtID0gdGhpcy5zdWJ0cmFjdChvdGhlci5tdWx0aXBseShhcHByb3gpKTsKLSAgICAgICAg
ICB2YXIgcmVzdWx0ID0gYXBwcm94LmFkZChyZW0uZGl2KG90aGVyKSk7Ci0gICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0gZWxzZSBpZiAob3RoZXIuZXF1
YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGgu
TG9uZy5aRVJPOwotICAgIH0KLSAgICBpZiAodGhpcy5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIGlm
IChvdGhlci5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmVnYXRlKCkuZGl2
KG90aGVyLm5lZ2F0ZSgpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5l
Z2F0ZSgpLmRpdihvdGhlcikubmVnYXRlKCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChvdGhl
ci5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIHJldHVybiB0aGlzLmRpdihvdGhlci5uZWdhdGUoKSku
bmVnYXRlKCk7Ci0gICAgfQotICAgIC8vIFJlcGVhdCB0aGUgZm9sbG93aW5nIHVudGlsIHRoZSBy
ZW1haW5kZXIgaXMgbGVzcyB0aGFuIG90aGVyOiAgZmluZCBhCi0gICAgLy8gZmxvYXRpbmctcG9p
bnQgdGhhdCBhcHByb3hpbWF0ZXMgcmVtYWluZGVyIC8gb3RoZXIgKmZyb20gYmVsb3cqLCBhZGQg
dGhpcwotICAgIC8vIGludG8gdGhlIHJlc3VsdCwgYW5kIHN1YnRyYWN0IGl0IGZyb20gdGhlIHJl
bWFpbmRlci4gIEl0IGlzIGNyaXRpY2FsIHRoYXQKLSAgICAvLyB0aGUgYXBwcm94aW1hdGUgdmFs
dWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSByZWFsIHZhbHVlIHNvIHRoYXQgdGhlCi0g
ICAgLy8gcmVtYWluZGVyIG5ldmVyIGJlY29tZXMgbmVnYXRpdmUuCi0gICAgdmFyIHJlcyA9IGdv
b2cubWF0aC5Mb25nLlpFUk87Ci0gICAgdmFyIHJlbSA9IHRoaXM7Ci0gICAgd2hpbGUgKHJlbS5n
cmVhdGVyVGhhbk9yRXF1YWwob3RoZXIpKSB7Ci0gICAgICAvLyBBcHByb3hpbWF0ZSB0aGUgcmVz
dWx0IG9mIGRpdmlzaW9uLiBUaGlzIG1heSBiZSBhIGxpdHRsZSBncmVhdGVyIG9yCi0gICAgICAv
LyBzbWFsbGVyIHRoYW4gdGhlIGFjdHVhbCB2YWx1ZS4KLSAgICAgIHZhciBhcHByb3ggPSBNYXRo
Lm1heCgxLCBNYXRoLmZsb29yKHJlbS50b051bWJlcigpIC8gb3RoZXIudG9OdW1iZXIoKSkpOwot
ICAgICAgLy8gV2Ugd2lsbCB0d2VhayB0aGUgYXBwcm94aW1hdGUgcmVzdWx0IGJ5IGNoYW5naW5n
IGl0IGluIHRoZSA0OC10aCBkaWdpdCBvcgotICAgICAgLy8gdGhlIHNtYWxsZXN0IG5vbi1mcmFj
dGlvbmFsIGRpZ2l0LCB3aGljaGV2ZXIgaXMgbGFyZ2VyLgotICAgICAgdmFyIGxvZzIgPSBNYXRo
LmNlaWwoTWF0aC5sb2coYXBwcm94KSAvIE1hdGguTE4yKTsKLSAgICAgIHZhciBkZWx0YSA9IChs
b2cyIDw9IDQ4KSA/IDEgOiBNYXRoLnBvdygyLCBsb2cyIC0gNDgpOwotICAgICAgLy8gRGVjcmVh
c2UgdGhlIGFwcHJveGltYXRpb24gdW50aWwgaXQgaXMgc21hbGxlciB0aGFuIHRoZSByZW1haW5k
ZXIuICBOb3RlCi0gICAgICAvLyB0aGF0IGlmIGl0IGlzIHRvbyBsYXJnZSwgdGhlIHByb2R1Y3Qg
b3ZlcmZsb3dzIGFuZCBpcyBuZWdhdGl2ZS4KLSAgICAgIHZhciBhcHByb3hSZXMgPSBnb29nLm1h
dGguTG9uZy5mcm9tTnVtYmVyKGFwcHJveCk7Ci0gICAgICB2YXIgYXBwcm94UmVtID0gYXBwcm94
UmVzLm11bHRpcGx5KG90aGVyKTsKLSAgICAgIHdoaWxlIChhcHByb3hSZW0uaXNOZWdhdGl2ZSgp
IHx8IGFwcHJveFJlbS5ncmVhdGVyVGhhbihyZW0pKSB7Ci0gICAgICAgIGFwcHJveCAtPSBkZWx0
YTsKLSAgICAgICAgYXBwcm94UmVzID0gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcihhcHByb3gp
OwotICAgICAgICBhcHByb3hSZW0gPSBhcHByb3hSZXMubXVsdGlwbHkob3RoZXIpOwotICAgICAg
fQotICAgICAgLy8gV2Uga25vdyB0aGUgYW5zd2VyIGNhbid0IGJlIHplcm8uLi4gYW5kIGFjdHVh
bGx5LCB6ZXJvIHdvdWxkIGNhdXNlCi0gICAgICAvLyBpbmZpbml0ZSByZWN1cnNpb24gc2luY2Ug
d2Ugd291bGQgbWFrZSBubyBwcm9ncmVzcy4KLSAgICAgIGlmIChhcHByb3hSZXMuaXNaZXJvKCkp
IHsKLSAgICAgICAgYXBwcm94UmVzID0gZ29vZy5tYXRoLkxvbmcuT05FOwotICAgICAgfQotICAg
ICAgcmVzID0gcmVzLmFkZChhcHByb3hSZXMpOwotICAgICAgcmVtID0gcmVtLnN1YnRyYWN0KGFw
cHJveFJlbSk7Ci0gICAgfQotICAgIHJldHVybiByZXM7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1
cm5zIHRoaXMgTG9uZyBtb2R1bG8gdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1h
dGguTG9uZ30gb3RoZXIgTG9uZyBieSB3aGljaCB0byBtb2QuCi0gICAqIEByZXR1cm4geyFnb29n
Lm1hdGguTG9uZ30gVGhpcyBMb25nIG1vZHVsbyB0aGUgZ2l2ZW4gb25lLgotICAgKi8KLSAgZ29v
Zy5tYXRoLkxvbmcucHJvdG90eXBlLm1vZHVsbyA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0
dXJuIHRoaXMuc3VidHJhY3QodGhpcy5kaXYob3RoZXIpLm11bHRpcGx5KG90aGVyKSk7Ci0gIH07
Ci0gIC8qKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBiaXR3aXNlLU5PVCBvZiB0aGlz
IHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUubm90ID0gZnVuY3Rpb24oKSB7
Ci0gICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKH50aGlzLmxvd18sIH50aGlzLmhp
Z2hfKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhlIGJpdHdpc2UtQU5EIG9mIHRoaXMg
TG9uZyBhbmQgdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3Ro
ZXIgVGhlIExvbmcgd2l0aCB3aGljaCB0byBBTkQuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGgu
TG9uZ30gVGhlIGJpdHdpc2UtQU5EIG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0gIGdv
b2cubWF0aC5Mb25nLnByb3RvdHlwZS5hbmQgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVy
biBnb29nLm1hdGguTG9uZy5mcm9tQml0cyh0aGlzLmxvd18gJiBvdGhlci5sb3dfLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZ2hfICYgb3RoZXIuaGlnaF8pOwot
ICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUgYml0d2lzZS1PUiBvZiB0aGlzIExvbmcgYW5k
IHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIFRoZSBM
b25nIHdpdGggd2hpY2ggdG8gT1IuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhl
IGJpdHdpc2UtT1Igb2YgdGhpcyBhbmQgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxv
bmcucHJvdG90eXBlLm9yID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gZ29vZy5tYXRo
LkxvbmcuZnJvbUJpdHModGhpcy5sb3dfIHwgb3RoZXIubG93XywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpcy5oaWdoXyB8IG90aGVyLmhpZ2hfKTsKLSAgfTsKLSAgLyoq
Ci0gICAqIFJldHVybnMgdGhlIGJpdHdpc2UtWE9SIG9mIHRoaXMgTG9uZyBhbmQgdGhlIGdpdmVu
IG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgVGhlIExvbmcgd2l0aCB3
aGljaCB0byBYT1IuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGJpdHdpc2Ut
WE9SIG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3Rv
dHlwZS54b3IgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5m
cm9tQml0cyh0aGlzLmxvd18gXiBvdGhlci5sb3dfLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzLmhpZ2hfIF4gb3RoZXIuaGlnaF8pOwotICB9OwotICAvKioKLSAgICog
UmV0dXJucyB0aGlzIExvbmcgd2l0aCBiaXRzIHNoaWZ0ZWQgdG8gdGhlIGxlZnQgYnkgdGhlIGdp
dmVuIGFtb3VudC4KLSAgICogQHBhcmFtIHtudW1iZXJ9IG51bUJpdHMgVGhlIG51bWJlciBvZiBi
aXRzIGJ5IHdoaWNoIHRvIHNoaWZ0LgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRo
aXMgc2hpZnRlZCB0byB0aGUgbGVmdCBieSB0aGUgZ2l2ZW4gYW1vdW50LgotICAgKi8KLSAgZ29v
Zy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0TGVmdCA9IGZ1bmN0aW9uKG51bUJpdHMpIHsKLSAg
ICBudW1CaXRzICY9IDYzOwotICAgIGlmIChudW1CaXRzID09IDApIHsKLSAgICAgIHJldHVybiB0
aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgbG93ID0gdGhpcy5sb3dfOwotICAgICAgaWYg
KG51bUJpdHMgPCAzMikgewotICAgICAgICB2YXIgaGlnaCA9IHRoaXMuaGlnaF87Ci0gICAgICAg
IHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAgICAgICAgIGxvdyA8PCBudW1C
aXRzLAotICAgICAgICAgICAgKGhpZ2ggPDwgbnVtQml0cykgfCAobG93ID4+PiAoMzIgLSBudW1C
aXRzKSkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZy
b21CaXRzKDAsIGxvdyA8PCAobnVtQml0cyAtIDMyKSk7Ci0gICAgICB9Ci0gICAgfQotICB9Owot
ICAvKioKLSAgICogUmV0dXJucyB0aGlzIExvbmcgd2l0aCBiaXRzIHNoaWZ0ZWQgdG8gdGhlIHJp
Z2h0IGJ5IHRoZSBnaXZlbiBhbW91bnQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1CaXRzIFRo
ZSBudW1iZXIgb2YgYml0cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVybiB7IWdvb2cu
bWF0aC5Mb25nfSBUaGlzIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZlbiBhbW91bnQu
Ci0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc2hpZnRSaWdodCA9IGZ1bmN0aW9u
KG51bUJpdHMpIHsKLSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChudW1CaXRzID09IDApIHsK
LSAgICAgIHJldHVybiB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgaGlnaCA9IHRoaXMu
aGlnaF87Ci0gICAgICBpZiAobnVtQml0cyA8IDMyKSB7Ci0gICAgICAgIHZhciBsb3cgPSB0aGlz
Lmxvd187Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAgICAg
ICAgIChsb3cgPj4+IG51bUJpdHMpIHwgKGhpZ2ggPDwgKDMyIC0gbnVtQml0cykpLAotICAgICAg
ICAgICAgaGlnaCA+PiBudW1CaXRzKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBn
b29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAgICAgICAgIGhpZ2ggPj4gKG51bUJpdHMgLSAz
MiksCi0gICAgICAgICAgICBoaWdoID49IDAgPyAwIDogLTEpOwotICAgICAgfQotICAgIH0KLSAg
fTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBMb25nIHdpdGggYml0cyBzaGlmdGVkIHRvIHRo
ZSByaWdodCBieSB0aGUgZ2l2ZW4gYW1vdW50LCB3aXRoCi0gICAqIHRoZSBuZXcgdG9wIGJpdHMg
bWF0Y2hpbmcgdGhlIGN1cnJlbnQgc2lnbiBiaXQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1C
aXRzIFRoZSBudW1iZXIgb2YgYml0cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVybiB7
IWdvb2cubWF0aC5Mb25nfSBUaGlzIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZlbiBh
bW91bnQsIHdpdGgKLSAgICogICAgIHplcm9zIHBsYWNlZCBpbnRvIHRoZSBuZXcgbGVhZGluZyBi
aXRzLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0UmlnaHRVbnNpZ25l
ZCA9IGZ1bmN0aW9uKG51bUJpdHMpIHsKLSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChudW1C
aXRzID09IDApIHsKLSAgICAgIHJldHVybiB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIg
aGlnaCA9IHRoaXMuaGlnaF87Ci0gICAgICBpZiAobnVtQml0cyA8IDMyKSB7Ci0gICAgICAgIHZh
ciBsb3cgPSB0aGlzLmxvd187Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0
cygKLSAgICAgICAgICAgIChsb3cgPj4+IG51bUJpdHMpIHwgKGhpZ2ggPDwgKDMyIC0gbnVtQml0
cykpLAotICAgICAgICAgICAgaGlnaCA+Pj4gbnVtQml0cyk7Ci0gICAgICB9IGVsc2UgaWYgKG51
bUJpdHMgPT0gMzIpIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKGhp
Z2gsIDApOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZy
b21CaXRzKGhpZ2ggPj4+IChudW1CaXRzIC0gMzIpLCAwKTsKLSAgICAgIH0KLSAgICB9Ci0gIH07
Ci0gIC8vPT09PT09PSBiZWdpbiBqc2JuID09PT09PT0KLSAgdmFyIG5hdmlnYXRvciA9IHsgYXBw
TmFtZTogJ01vZGVybiBCcm93c2VyJyB9OyAvLyBwb2x5ZmlsbCBhIGxpdHRsZQotICAvLyBDb3B5
cmlnaHQgKGMpIDIwMDUgIFRvbSBXdQotICAvLyBBbGwgUmlnaHRzIFJlc2VydmVkLgotICAvLyBo
dHRwOi8vd3d3LWNzLXN0dWRlbnRzLnN0YW5mb3JkLmVkdS9+dGp3L2pzYm4vCi0gIC8qCi0gICAq
IENvcHlyaWdodCAoYykgMjAwMy0yMDA1ICBUb20gV3UKLSAgICogQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLSAgICoKLSAgICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCi0gICAqIGEgY29weSBvZiB0aGlzIHNvZnR3YXJl
IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotICAgKiAiU29mdHdhcmUi
KSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n
Ci0gICAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5
LCBtZXJnZSwgcHVibGlzaCwKLSAgICogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCi0gICAqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotICAg
KiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gICAqCi0gICAqIFRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCi0gICAqIGluY2x1
ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJl
LgotICAgKgotICAgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTLUlTIiBBTkQgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgCi0gICAqIEVYUFJFU1MsIElNUExJRUQgT1IgT1RIRVJX
SVNFLCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgCi0gICAqIFdBUlJBTlRZIE9G
IE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIAot
ICAgKgotICAgKiBJTiBOTyBFVkVOVCBTSEFMTCBUT00gV1UgQkUgTElBQkxFIEZPUiBBTlkgU1BF
Q0lBTCwgSU5DSURFTlRBTCwKLSAgICogSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IE9GIEFOWSBLSU5ELCBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSCi0gICAqIFJFU1VMVElORyBG
Uk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgT1IgTk9UIEFEVklTRUQg
T0YKLSAgICogVEhFIFBPU1NJQklMSVRZIE9GIERBTUFHRSwgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBBUklTSU5HIE9VVAotICAgKiBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
IFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgotICAgKgotICAgKiBJbiBhZGRp
dGlvbiwgdGhlIGZvbGxvd2luZyBjb25kaXRpb24gYXBwbGllczoKLSAgICoKLSAgICogQWxsIHJl
ZGlzdHJpYnV0aW9ucyBtdXN0IHJldGFpbiBhbiBpbnRhY3QgY29weSBvZiB0aGlzIGNvcHlyaWdo
dCBub3RpY2UKLSAgICogYW5kIGRpc2NsYWltZXIuCi0gICAqLwotICAvLyBCYXNpYyBKYXZhU2Ny
aXB0IEJOIGxpYnJhcnkgLSBzdWJzZXQgdXNlZnVsIGZvciBSU0EgZW5jcnlwdGlvbi4KLSAgLy8g
Qml0cyBwZXIgZGlnaXQKLSAgdmFyIGRiaXRzOwotICAvLyBKYXZhU2NyaXB0IGVuZ2luZSBhbmFs
eXNpcwotICB2YXIgY2FuYXJ5ID0gMHhkZWFkYmVlZmNhZmU7Ci0gIHZhciBqX2xtID0gKChjYW5h
cnkmMHhmZmZmZmYpPT0weGVmY2FmZSk7Ci0gIC8vIChwdWJsaWMpIENvbnN0cnVjdG9yCi0gIGZ1
bmN0aW9uIEJpZ0ludGVnZXIoYSxiLGMpIHsKLSAgICBpZihhICE9IG51bGwpCi0gICAgICBpZigi
bnVtYmVyIiA9PSB0eXBlb2YgYSkgdGhpcy5mcm9tTnVtYmVyKGEsYixjKTsKLSAgICAgIGVsc2Ug
aWYoYiA9PSBudWxsICYmICJzdHJpbmciICE9IHR5cGVvZiBhKSB0aGlzLmZyb21TdHJpbmcoYSwy
NTYpOwotICAgICAgZWxzZSB0aGlzLmZyb21TdHJpbmcoYSxiKTsKLSAgfQotICAvLyByZXR1cm4g
bmV3LCB1bnNldCBCaWdJbnRlZ2VyCi0gIGZ1bmN0aW9uIG5iaSgpIHsgcmV0dXJuIG5ldyBCaWdJ
bnRlZ2VyKG51bGwpOyB9Ci0gIC8vIGFtOiBDb21wdXRlIHdfaiArPSAoeCp0aGlzX2kpLCBwcm9w
YWdhdGUgY2FycmllcywKLSAgLy8gYyBpcyBpbml0aWFsIGNhcnJ5LCByZXR1cm5zIGZpbmFsIGNh
cnJ5LgotICAvLyBjIDwgMypkdmFsdWUsIHggPCAyKmR2YWx1ZSwgdGhpc19pIDwgZHZhbHVlCi0g
IC8vIFdlIG5lZWQgdG8gc2VsZWN0IHRoZSBmYXN0ZXN0IG9uZSB0aGF0IHdvcmtzIGluIHRoaXMg
ZW52aXJvbm1lbnQuCi0gIC8vIGFtMTogdXNlIGEgc2luZ2xlIG11bHQgYW5kIGRpdmlkZSB0byBn
ZXQgdGhlIGhpZ2ggYml0cywKLSAgLy8gbWF4IGRpZ2l0IGJpdHMgc2hvdWxkIGJlIDI2IGJlY2F1
c2UKLSAgLy8gbWF4IGludGVybmFsIHZhbHVlID0gMipkdmFsdWVeMi0yKmR2YWx1ZSAoPCAyXjUz
KQotICBmdW5jdGlvbiBhbTEoaSx4LHcsaixjLG4pIHsKLSAgICB3aGlsZSgtLW4gPj0gMCkgewot
ICAgICAgdmFyIHYgPSB4KnRoaXNbaSsrXSt3W2pdK2M7Ci0gICAgICBjID0gTWF0aC5mbG9vcih2
LzB4NDAwMDAwMCk7Ci0gICAgICB3W2orK10gPSB2JjB4M2ZmZmZmZjsKLSAgICB9Ci0gICAgcmV0
dXJuIGM7Ci0gIH0KLSAgLy8gYW0yIGF2b2lkcyBhIGJpZyBtdWx0LWFuZC1leHRyYWN0IGNvbXBs
ZXRlbHkuCi0gIC8vIE1heCBkaWdpdCBiaXRzIHNob3VsZCBiZSA8PSAzMCBiZWNhdXNlIHdlIGRv
IGJpdHdpc2Ugb3BzCi0gIC8vIG9uIHZhbHVlcyB1cCB0byAyKmhkdmFsdWVeMi1oZHZhbHVlLTEg
KDwgMl4zMSkKLSAgZnVuY3Rpb24gYW0yKGkseCx3LGosYyxuKSB7Ci0gICAgdmFyIHhsID0geCYw
eDdmZmYsIHhoID0geD4+MTU7Ci0gICAgd2hpbGUoLS1uID49IDApIHsKLSAgICAgIHZhciBsID0g
dGhpc1tpXSYweDdmZmY7Ci0gICAgICB2YXIgaCA9IHRoaXNbaSsrXT4+MTU7Ci0gICAgICB2YXIg
bSA9IHhoKmwraCp4bDsKLSAgICAgIGwgPSB4bCpsKygobSYweDdmZmYpPDwxNSkrd1tqXSsoYyYw
eDNmZmZmZmZmKTsKLSAgICAgIGMgPSAobD4+PjMwKSsobT4+PjE1KSt4aCpoKyhjPj4+MzApOwot
ICAgICAgd1tqKytdID0gbCYweDNmZmZmZmZmOwotICAgIH0KLSAgICByZXR1cm4gYzsKLSAgfQot
ICAvLyBBbHRlcm5hdGVseSwgc2V0IG1heCBkaWdpdCBiaXRzIHRvIDI4IHNpbmNlIHNvbWUKLSAg
Ly8gYnJvd3NlcnMgc2xvdyBkb3duIHdoZW4gZGVhbGluZyB3aXRoIDMyLWJpdCBudW1iZXJzLgot
ICBmdW5jdGlvbiBhbTMoaSx4LHcsaixjLG4pIHsKLSAgICB2YXIgeGwgPSB4JjB4M2ZmZiwgeGgg
PSB4Pj4xNDsKLSAgICB3aGlsZSgtLW4gPj0gMCkgewotICAgICAgdmFyIGwgPSB0aGlzW2ldJjB4
M2ZmZjsKLSAgICAgIHZhciBoID0gdGhpc1tpKytdPj4xNDsKLSAgICAgIHZhciBtID0geGgqbCto
KnhsOwotICAgICAgbCA9IHhsKmwrKChtJjB4M2ZmZik8PDE0KSt3W2pdK2M7Ci0gICAgICBjID0g
KGw+PjI4KSsobT4+MTQpK3hoKmg7Ci0gICAgICB3W2orK10gPSBsJjB4ZmZmZmZmZjsKLSAgICB9
Ci0gICAgcmV0dXJuIGM7Ci0gIH0KLSAgaWYoal9sbSAmJiAobmF2aWdhdG9yLmFwcE5hbWUgPT0g
Ik1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpKSB7Ci0gICAgQmlnSW50ZWdlci5wcm90b3R5
cGUuYW0gPSBhbTI7Ci0gICAgZGJpdHMgPSAzMDsKLSAgfQotICBlbHNlIGlmKGpfbG0gJiYgKG5h
dmlnYXRvci5hcHBOYW1lICE9ICJOZXRzY2FwZSIpKSB7Ci0gICAgQmlnSW50ZWdlci5wcm90b3R5
cGUuYW0gPSBhbTE7Ci0gICAgZGJpdHMgPSAyNjsKLSAgfQotICBlbHNlIHsgLy8gTW96aWxsYS9O
ZXRzY2FwZSBzZWVtcyB0byBwcmVmZXIgYW0zCi0gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuYW0g
PSBhbTM7Ci0gICAgZGJpdHMgPSAyODsKLSAgfQotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5EQiA9
IGRiaXRzOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ETSA9ICgoMTw8ZGJpdHMpLTEpOwotICBC
aWdJbnRlZ2VyLnByb3RvdHlwZS5EViA9ICgxPDxkYml0cyk7Ci0gIHZhciBCSV9GUCA9IDUyOwot
ICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5GViA9IE1hdGgucG93KDIsQklfRlApOwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5GMSA9IEJJX0ZQLWRiaXRzOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5G
MiA9IDIqZGJpdHMtQklfRlA7Ci0gIC8vIERpZ2l0IGNvbnZlcnNpb25zCi0gIHZhciBCSV9STSA9
ICIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiOwotICB2YXIgQklfUkMgPSBu
ZXcgQXJyYXkoKTsKLSAgdmFyIHJyLHZ2OwotICByciA9ICIwIi5jaGFyQ29kZUF0KDApOwotICBm
b3IodnYgPSAwOyB2diA8PSA5OyArK3Z2KSBCSV9SQ1tycisrXSA9IHZ2OwotICByciA9ICJhIi5j
aGFyQ29kZUF0KDApOwotICBmb3IodnYgPSAxMDsgdnYgPCAzNjsgKyt2dikgQklfUkNbcnIrK10g
PSB2djsKLSAgcnIgPSAiQSIuY2hhckNvZGVBdCgwKTsKLSAgZm9yKHZ2ID0gMTA7IHZ2IDwgMzY7
ICsrdnYpIEJJX1JDW3JyKytdID0gdnY7Ci0gIGZ1bmN0aW9uIGludDJjaGFyKG4pIHsgcmV0dXJu
IEJJX1JNLmNoYXJBdChuKTsgfQotICBmdW5jdGlvbiBpbnRBdChzLGkpIHsKLSAgICB2YXIgYyA9
IEJJX1JDW3MuY2hhckNvZGVBdChpKV07Ci0gICAgcmV0dXJuIChjPT1udWxsKT8tMTpjOwotICB9
Ci0gIC8vIChwcm90ZWN0ZWQpIGNvcHkgdGhpcyB0byByCi0gIGZ1bmN0aW9uIGJucENvcHlUbyhy
KSB7Ci0gICAgZm9yKHZhciBpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSByW2ldID0gdGhpc1tp
XTsKLSAgICByLnQgPSB0aGlzLnQ7Ci0gICAgci5zID0gdGhpcy5zOwotICB9Ci0gIC8vIChwcm90
ZWN0ZWQpIHNldCBmcm9tIGludGVnZXIgdmFsdWUgeCwgLURWIDw9IHggPCBEVgotICBmdW5jdGlv
biBibnBGcm9tSW50KHgpIHsKLSAgICB0aGlzLnQgPSAxOwotICAgIHRoaXMucyA9ICh4PDApPy0x
OjA7Ci0gICAgaWYoeCA+IDApIHRoaXNbMF0gPSB4OwotICAgIGVsc2UgaWYoeCA8IC0xKSB0aGlz
WzBdID0geCtEVjsKLSAgICBlbHNlIHRoaXMudCA9IDA7Ci0gIH0KLSAgLy8gcmV0dXJuIGJpZ2lu
dCBpbml0aWFsaXplZCB0byB2YWx1ZQotICBmdW5jdGlvbiBuYnYoaSkgeyB2YXIgciA9IG5iaSgp
OyByLmZyb21JbnQoaSk7IHJldHVybiByOyB9Ci0gIC8vIChwcm90ZWN0ZWQpIHNldCBmcm9tIHN0
cmluZyBhbmQgcmFkaXgKLSAgZnVuY3Rpb24gYm5wRnJvbVN0cmluZyhzLGIpIHsKLSAgICB2YXIg
azsKLSAgICBpZihiID09IDE2KSBrID0gNDsKLSAgICBlbHNlIGlmKGIgPT0gOCkgayA9IDM7Ci0g
ICAgZWxzZSBpZihiID09IDI1NikgayA9IDg7IC8vIGJ5dGUgYXJyYXkKLSAgICBlbHNlIGlmKGIg
PT0gMikgayA9IDE7Ci0gICAgZWxzZSBpZihiID09IDMyKSBrID0gNTsKLSAgICBlbHNlIGlmKGIg
PT0gNCkgayA9IDI7Ci0gICAgZWxzZSB7IHRoaXMuZnJvbVJhZGl4KHMsYik7IHJldHVybjsgfQot
ICAgIHRoaXMudCA9IDA7Ci0gICAgdGhpcy5zID0gMDsKLSAgICB2YXIgaSA9IHMubGVuZ3RoLCBt
aSA9IGZhbHNlLCBzaCA9IDA7Ci0gICAgd2hpbGUoLS1pID49IDApIHsKLSAgICAgIHZhciB4ID0g
KGs9PTgpP3NbaV0mMHhmZjppbnRBdChzLGkpOwotICAgICAgaWYoeCA8IDApIHsKLSAgICAgICAg
aWYocy5jaGFyQXQoaSkgPT0gIi0iKSBtaSA9IHRydWU7Ci0gICAgICAgIGNvbnRpbnVlOwotICAg
ICAgfQotICAgICAgbWkgPSBmYWxzZTsKLSAgICAgIGlmKHNoID09IDApCi0gICAgICAgIHRoaXNb
dGhpcy50KytdID0geDsKLSAgICAgIGVsc2UgaWYoc2grayA+IHRoaXMuREIpIHsKLSAgICAgICAg
dGhpc1t0aGlzLnQtMV0gfD0gKHgmKCgxPDwodGhpcy5EQi1zaCkpLTEpKTw8c2g7Ci0gICAgICAg
IHRoaXNbdGhpcy50KytdID0gKHg+Pih0aGlzLkRCLXNoKSk7Ci0gICAgICB9Ci0gICAgICBlbHNl
Ci0gICAgICAgIHRoaXNbdGhpcy50LTFdIHw9IHg8PHNoOwotICAgICAgc2ggKz0gazsKLSAgICAg
IGlmKHNoID49IHRoaXMuREIpIHNoIC09IHRoaXMuREI7Ci0gICAgfQotICAgIGlmKGsgPT0gOCAm
JiAoc1swXSYweDgwKSAhPSAwKSB7Ci0gICAgICB0aGlzLnMgPSAtMTsKLSAgICAgIGlmKHNoID4g
MCkgdGhpc1t0aGlzLnQtMV0gfD0gKCgxPDwodGhpcy5EQi1zaCkpLTEpPDxzaDsKLSAgICB9Ci0g
ICAgdGhpcy5jbGFtcCgpOwotICAgIGlmKG1pKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8odGhpcyx0
aGlzKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSBjbGFtcCBvZmYgZXhjZXNzIGhpZ2ggd29yZHMK
LSAgZnVuY3Rpb24gYm5wQ2xhbXAoKSB7Ci0gICAgdmFyIGMgPSB0aGlzLnMmdGhpcy5ETTsKLSAg
ICB3aGlsZSh0aGlzLnQgPiAwICYmIHRoaXNbdGhpcy50LTFdID09IGMpIC0tdGhpcy50OwotICB9
Ci0gIC8vIChwdWJsaWMpIHJldHVybiBzdHJpbmcgcmVwcmVzZW50YXRpb24gaW4gZ2l2ZW4gcmFk
aXgKLSAgZnVuY3Rpb24gYm5Ub1N0cmluZyhiKSB7Ci0gICAgaWYodGhpcy5zIDwgMCkgcmV0dXJu
ICItIit0aGlzLm5lZ2F0ZSgpLnRvU3RyaW5nKGIpOwotICAgIHZhciBrOwotICAgIGlmKGIgPT0g
MTYpIGsgPSA0OwotICAgIGVsc2UgaWYoYiA9PSA4KSBrID0gMzsKLSAgICBlbHNlIGlmKGIgPT0g
MikgayA9IDE7Ci0gICAgZWxzZSBpZihiID09IDMyKSBrID0gNTsKLSAgICBlbHNlIGlmKGIgPT0g
NCkgayA9IDI7Ci0gICAgZWxzZSByZXR1cm4gdGhpcy50b1JhZGl4KGIpOwotICAgIHZhciBrbSA9
ICgxPDxrKS0xLCBkLCBtID0gZmFsc2UsIHIgPSAiIiwgaSA9IHRoaXMudDsKLSAgICB2YXIgcCA9
IHRoaXMuREItKGkqdGhpcy5EQiklazsKLSAgICBpZihpLS0gPiAwKSB7Ci0gICAgICBpZihwIDwg
dGhpcy5EQiAmJiAoZCA9IHRoaXNbaV0+PnApID4gMCkgeyBtID0gdHJ1ZTsgciA9IGludDJjaGFy
KGQpOyB9Ci0gICAgICB3aGlsZShpID49IDApIHsKLSAgICAgICAgaWYocCA8IGspIHsKLSAgICAg
ICAgICBkID0gKHRoaXNbaV0mKCgxPDxwKS0xKSk8PChrLXApOwotICAgICAgICAgIGQgfD0gdGhp
c1stLWldPj4ocCs9dGhpcy5EQi1rKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICBkID0gKHRoaXNbaV0+PihwLT1rKSkma207Ci0gICAgICAgICAgaWYocCA8PSAwKSB7IHAg
Kz0gdGhpcy5EQjsgLS1pOyB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYoZCA+IDApIG0gPSB0cnVl
OwotICAgICAgICBpZihtKSByICs9IGludDJjaGFyKGQpOwotICAgICAgfQotICAgIH0KLSAgICBy
ZXR1cm4gbT9yOiIwIjsKLSAgfQotICAvLyAocHVibGljKSAtdGhpcwotICBmdW5jdGlvbiBibk5l
Z2F0ZSgpIHsgdmFyIHIgPSBuYmkoKTsgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHRoaXMscik7IHJl
dHVybiByOyB9Ci0gIC8vIChwdWJsaWMpIHx0aGlzfAotICBmdW5jdGlvbiBibkFicygpIHsgcmV0
dXJuICh0aGlzLnM8MCk/dGhpcy5uZWdhdGUoKTp0aGlzOyB9Ci0gIC8vIChwdWJsaWMpIHJldHVy
biArIGlmIHRoaXMgPiBhLCAtIGlmIHRoaXMgPCBhLCAwIGlmIGVxdWFsCi0gIGZ1bmN0aW9uIGJu
Q29tcGFyZVRvKGEpIHsKLSAgICB2YXIgciA9IHRoaXMucy1hLnM7Ci0gICAgaWYociAhPSAwKSBy
ZXR1cm4gcjsKLSAgICB2YXIgaSA9IHRoaXMudDsKLSAgICByID0gaS1hLnQ7Ci0gICAgaWYociAh
PSAwKSByZXR1cm4gKHRoaXMuczwwKT8tcjpyOwotICAgIHdoaWxlKC0taSA+PSAwKSBpZigocj10
aGlzW2ldLWFbaV0pICE9IDApIHJldHVybiByOwotICAgIHJldHVybiAwOwotICB9Ci0gIC8vIHJl
dHVybnMgYml0IGxlbmd0aCBvZiB0aGUgaW50ZWdlciB4Ci0gIGZ1bmN0aW9uIG5iaXRzKHgpIHsK
LSAgICB2YXIgciA9IDEsIHQ7Ci0gICAgaWYoKHQ9eD4+PjE2KSAhPSAwKSB7IHggPSB0OyByICs9
IDE2OyB9Ci0gICAgaWYoKHQ9eD4+OCkgIT0gMCkgeyB4ID0gdDsgciArPSA4OyB9Ci0gICAgaWYo
KHQ9eD4+NCkgIT0gMCkgeyB4ID0gdDsgciArPSA0OyB9Ci0gICAgaWYoKHQ9eD4+MikgIT0gMCkg
eyB4ID0gdDsgciArPSAyOyB9Ci0gICAgaWYoKHQ9eD4+MSkgIT0gMCkgeyB4ID0gdDsgciArPSAx
OyB9Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8gKHB1YmxpYykgcmV0dXJuIHRoZSBudW1iZXIg
b2YgYml0cyBpbiAidGhpcyIKLSAgZnVuY3Rpb24gYm5CaXRMZW5ndGgoKSB7Ci0gICAgaWYodGhp
cy50IDw9IDApIHJldHVybiAwOwotICAgIHJldHVybiB0aGlzLkRCKih0aGlzLnQtMSkrbmJpdHMo
dGhpc1t0aGlzLnQtMV1eKHRoaXMucyZ0aGlzLkRNKSk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkg
ciA9IHRoaXMgPDwgbipEQgotICBmdW5jdGlvbiBibnBETFNoaWZ0VG8obixyKSB7Ci0gICAgdmFy
IGk7Ci0gICAgZm9yKGkgPSB0aGlzLnQtMTsgaSA+PSAwOyAtLWkpIHJbaStuXSA9IHRoaXNbaV07
Ci0gICAgZm9yKGkgPSBuLTE7IGkgPj0gMDsgLS1pKSByW2ldID0gMDsKLSAgICByLnQgPSB0aGlz
LnQrbjsKLSAgICByLnMgPSB0aGlzLnM7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMg
Pj4gbipEQgotICBmdW5jdGlvbiBibnBEUlNoaWZ0VG8obixyKSB7Ci0gICAgZm9yKHZhciBpID0g
bjsgaSA8IHRoaXMudDsgKytpKSByW2ktbl0gPSB0aGlzW2ldOwotICAgIHIudCA9IE1hdGgubWF4
KHRoaXMudC1uLDApOwotICAgIHIucyA9IHRoaXMuczsKLSAgfQotICAvLyAocHJvdGVjdGVkKSBy
ID0gdGhpcyA8PCBuCi0gIGZ1bmN0aW9uIGJucExTaGlmdFRvKG4scikgewotICAgIHZhciBicyA9
IG4ldGhpcy5EQjsKLSAgICB2YXIgY2JzID0gdGhpcy5EQi1iczsKLSAgICB2YXIgYm0gPSAoMTw8
Y2JzKS0xOwotICAgIHZhciBkcyA9IE1hdGguZmxvb3Iobi90aGlzLkRCKSwgYyA9ICh0aGlzLnM8
PGJzKSZ0aGlzLkRNLCBpOwotICAgIGZvcihpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSB7Ci0g
ICAgICByW2krZHMrMV0gPSAodGhpc1tpXT4+Y2JzKXxjOwotICAgICAgYyA9ICh0aGlzW2ldJmJt
KTw8YnM7Ci0gICAgfQotICAgIGZvcihpID0gZHMtMTsgaSA+PSAwOyAtLWkpIHJbaV0gPSAwOwot
ICAgIHJbZHNdID0gYzsKLSAgICByLnQgPSB0aGlzLnQrZHMrMTsKLSAgICByLnMgPSB0aGlzLnM7
Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlzID4+IG4KLSAg
ZnVuY3Rpb24gYm5wUlNoaWZ0VG8obixyKSB7Ci0gICAgci5zID0gdGhpcy5zOwotICAgIHZhciBk
cyA9IE1hdGguZmxvb3Iobi90aGlzLkRCKTsKLSAgICBpZihkcyA+PSB0aGlzLnQpIHsgci50ID0g
MDsgcmV0dXJuOyB9Ci0gICAgdmFyIGJzID0gbiV0aGlzLkRCOwotICAgIHZhciBjYnMgPSB0aGlz
LkRCLWJzOwotICAgIHZhciBibSA9ICgxPDxicyktMTsKLSAgICByWzBdID0gdGhpc1tkc10+PmJz
OwotICAgIGZvcih2YXIgaSA9IGRzKzE7IGkgPCB0aGlzLnQ7ICsraSkgewotICAgICAgcltpLWRz
LTFdIHw9ICh0aGlzW2ldJmJtKTw8Y2JzOwotICAgICAgcltpLWRzXSA9IHRoaXNbaV0+PmJzOwot
ICAgIH0KLSAgICBpZihicyA+IDApIHJbdGhpcy50LWRzLTFdIHw9ICh0aGlzLnMmYm0pPDxjYnM7
Ci0gICAgci50ID0gdGhpcy50LWRzOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJvdGVj
dGVkKSByID0gdGhpcyAtIGEKLSAgZnVuY3Rpb24gYm5wU3ViVG8oYSxyKSB7Ci0gICAgdmFyIGkg
PSAwLCBjID0gMCwgbSA9IE1hdGgubWluKGEudCx0aGlzLnQpOwotICAgIHdoaWxlKGkgPCBtKSB7
Ci0gICAgICBjICs9IHRoaXNbaV0tYVtpXTsKLSAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAg
ICAgIGMgPj49IHRoaXMuREI7Ci0gICAgfQotICAgIGlmKGEudCA8IHRoaXMudCkgewotICAgICAg
YyAtPSBhLnM7Ci0gICAgICB3aGlsZShpIDwgdGhpcy50KSB7Ci0gICAgICAgIGMgKz0gdGhpc1tp
XTsKLSAgICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRCOwot
ICAgICAgfQotICAgICAgYyArPSB0aGlzLnM7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgYyAr
PSB0aGlzLnM7Ci0gICAgICB3aGlsZShpIDwgYS50KSB7Ci0gICAgICAgIGMgLT0gYVtpXTsKLSAg
ICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRCOwotICAgICAg
fQotICAgICAgYyAtPSBhLnM7Ci0gICAgfQotICAgIHIucyA9IChjPDApPy0xOjA7Ci0gICAgaWYo
YyA8IC0xKSByW2krK10gPSB0aGlzLkRWK2M7Ci0gICAgZWxzZSBpZihjID4gMCkgcltpKytdID0g
YzsKLSAgICByLnQgPSBpOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSBy
ID0gdGhpcyAqIGEsIHIgIT0gdGhpcyxhIChIQUMgMTQuMTIpCi0gIC8vICJ0aGlzIiBzaG91bGQg
YmUgdGhlIGxhcmdlciBvbmUgaWYgYXBwcm9wcmlhdGUuCi0gIGZ1bmN0aW9uIGJucE11bHRpcGx5
VG8oYSxyKSB7Ci0gICAgdmFyIHggPSB0aGlzLmFicygpLCB5ID0gYS5hYnMoKTsKLSAgICB2YXIg
aSA9IHgudDsKLSAgICByLnQgPSBpK3kudDsKLSAgICB3aGlsZSgtLWkgPj0gMCkgcltpXSA9IDA7
Ci0gICAgZm9yKGkgPSAwOyBpIDwgeS50OyArK2kpIHJbaSt4LnRdID0geC5hbSgwLHlbaV0scixp
LDAseC50KTsKLSAgICByLnMgPSAwOwotICAgIHIuY2xhbXAoKTsKLSAgICBpZih0aGlzLnMgIT0g
YS5zKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8ocixyKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSBy
ID0gdGhpc14yLCByICE9IHRoaXMgKEhBQyAxNC4xNikKLSAgZnVuY3Rpb24gYm5wU3F1YXJlVG8o
cikgewotICAgIHZhciB4ID0gdGhpcy5hYnMoKTsKLSAgICB2YXIgaSA9IHIudCA9IDIqeC50Owot
ICAgIHdoaWxlKC0taSA+PSAwKSByW2ldID0gMDsKLSAgICBmb3IoaSA9IDA7IGkgPCB4LnQtMTsg
KytpKSB7Ci0gICAgICB2YXIgYyA9IHguYW0oaSx4W2ldLHIsMippLDAsMSk7Ci0gICAgICBpZigo
cltpK3gudF0rPXguYW0oaSsxLDIqeFtpXSxyLDIqaSsxLGMseC50LWktMSkpID49IHguRFYpIHsK
LSAgICAgICAgcltpK3gudF0gLT0geC5EVjsKLSAgICAgICAgcltpK3gudCsxXSA9IDE7Ci0gICAg
ICB9Ci0gICAgfQotICAgIGlmKHIudCA+IDApIHJbci50LTFdICs9IHguYW0oaSx4W2ldLHIsMipp
LDAsMSk7Ci0gICAgci5zID0gMDsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3RlY3Rl
ZCkgZGl2aWRlIHRoaXMgYnkgbSwgcXVvdGllbnQgYW5kIHJlbWFpbmRlciB0byBxLCByIChIQUMg
MTQuMjApCi0gIC8vIHIgIT0gcSwgdGhpcyAhPSBtLiAgcSBvciByIG1heSBiZSBudWxsLgotICBm
dW5jdGlvbiBibnBEaXZSZW1UbyhtLHEscikgewotICAgIHZhciBwbSA9IG0uYWJzKCk7Ci0gICAg
aWYocG0udCA8PSAwKSByZXR1cm47Ci0gICAgdmFyIHB0ID0gdGhpcy5hYnMoKTsKLSAgICBpZihw
dC50IDwgcG0udCkgewotICAgICAgaWYocSAhPSBudWxsKSBxLmZyb21JbnQoMCk7Ci0gICAgICBp
ZihyICE9IG51bGwpIHRoaXMuY29weVRvKHIpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBp
ZihyID09IG51bGwpIHIgPSBuYmkoKTsKLSAgICB2YXIgeSA9IG5iaSgpLCB0cyA9IHRoaXMucywg
bXMgPSBtLnM7Ci0gICAgdmFyIG5zaCA9IHRoaXMuREItbmJpdHMocG1bcG0udC0xXSk7CS8vIG5v
cm1hbGl6ZSBtb2R1bHVzCi0gICAgaWYobnNoID4gMCkgeyBwbS5sU2hpZnRUbyhuc2gseSk7IHB0
LmxTaGlmdFRvKG5zaCxyKTsgfQotICAgIGVsc2UgeyBwbS5jb3B5VG8oeSk7IHB0LmNvcHlUbyhy
KTsgfQotICAgIHZhciB5cyA9IHkudDsKLSAgICB2YXIgeTAgPSB5W3lzLTFdOwotICAgIGlmKHkw
ID09IDApIHJldHVybjsKLSAgICB2YXIgeXQgPSB5MCooMTw8dGhpcy5GMSkrKCh5cz4xKT95W3lz
LTJdPj50aGlzLkYyOjApOwotICAgIHZhciBkMSA9IHRoaXMuRlYveXQsIGQyID0gKDE8PHRoaXMu
RjEpL3l0LCBlID0gMTw8dGhpcy5GMjsKLSAgICB2YXIgaSA9IHIudCwgaiA9IGkteXMsIHQgPSAo
cT09bnVsbCk/bmJpKCk6cTsKLSAgICB5LmRsU2hpZnRUbyhqLHQpOwotICAgIGlmKHIuY29tcGFy
ZVRvKHQpID49IDApIHsKLSAgICAgIHJbci50KytdID0gMTsKLSAgICAgIHIuc3ViVG8odCxyKTsK
LSAgICB9Ci0gICAgQmlnSW50ZWdlci5PTkUuZGxTaGlmdFRvKHlzLHQpOwotICAgIHQuc3ViVG8o
eSx5KTsJLy8gIm5lZ2F0aXZlIiB5IHNvIHdlIGNhbiByZXBsYWNlIHN1YiB3aXRoIGFtIGxhdGVy
Ci0gICAgd2hpbGUoeS50IDwgeXMpIHlbeS50KytdID0gMDsKLSAgICB3aGlsZSgtLWogPj0gMCkg
ewotICAgICAgLy8gRXN0aW1hdGUgcXVvdGllbnQgZGlnaXQKLSAgICAgIHZhciBxZCA9IChyWy0t
aV09PXkwKT90aGlzLkRNOk1hdGguZmxvb3IocltpXSpkMSsocltpLTFdK2UpKmQyKTsKLSAgICAg
IGlmKChyW2ldKz15LmFtKDAscWQscixqLDAseXMpKSA8IHFkKSB7CS8vIFRyeSBpdCBvdXQKLSAg
ICAgICAgeS5kbFNoaWZ0VG8oaix0KTsKLSAgICAgICAgci5zdWJUbyh0LHIpOwotICAgICAgICB3
aGlsZShyW2ldIDwgLS1xZCkgci5zdWJUbyh0LHIpOwotICAgICAgfQotICAgIH0KLSAgICBpZihx
ICE9IG51bGwpIHsKLSAgICAgIHIuZHJTaGlmdFRvKHlzLHEpOwotICAgICAgaWYodHMgIT0gbXMp
IEJpZ0ludGVnZXIuWkVSTy5zdWJUbyhxLHEpOwotICAgIH0KLSAgICByLnQgPSB5czsKLSAgICBy
LmNsYW1wKCk7Ci0gICAgaWYobnNoID4gMCkgci5yU2hpZnRUbyhuc2gscik7CS8vIERlbm9ybWFs
aXplIHJlbWFpbmRlcgotICAgIGlmKHRzIDwgMCkgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHIscik7
Ci0gIH0KLSAgLy8gKHB1YmxpYykgdGhpcyBtb2QgYQotICBmdW5jdGlvbiBibk1vZChhKSB7Ci0g
ICAgdmFyIHIgPSBuYmkoKTsKLSAgICB0aGlzLmFicygpLmRpdlJlbVRvKGEsbnVsbCxyKTsKLSAg
ICBpZih0aGlzLnMgPCAwICYmIHIuY29tcGFyZVRvKEJpZ0ludGVnZXIuWkVSTykgPiAwKSBhLnN1
YlRvKHIscik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8gTW9kdWxhciByZWR1Y3Rpb24gdXNp
bmcgImNsYXNzaWMiIGFsZ29yaXRobQotICBmdW5jdGlvbiBDbGFzc2ljKG0pIHsgdGhpcy5tID0g
bTsgfQotICBmdW5jdGlvbiBjQ29udmVydCh4KSB7Ci0gICAgaWYoeC5zIDwgMCB8fCB4LmNvbXBh
cmVUbyh0aGlzLm0pID49IDApIHJldHVybiB4Lm1vZCh0aGlzLm0pOwotICAgIGVsc2UgcmV0dXJu
IHg7Ci0gIH0KLSAgZnVuY3Rpb24gY1JldmVydCh4KSB7IHJldHVybiB4OyB9Ci0gIGZ1bmN0aW9u
IGNSZWR1Y2UoeCkgeyB4LmRpdlJlbVRvKHRoaXMubSxudWxsLHgpOyB9Ci0gIGZ1bmN0aW9uIGNN
dWxUbyh4LHkscikgeyB4Lm11bHRpcGx5VG8oeSxyKTsgdGhpcy5yZWR1Y2Uocik7IH0KLSAgZnVu
Y3Rpb24gY1NxclRvKHgscikgeyB4LnNxdWFyZVRvKHIpOyB0aGlzLnJlZHVjZShyKTsgfQotICBD
bGFzc2ljLnByb3RvdHlwZS5jb252ZXJ0ID0gY0NvbnZlcnQ7Ci0gIENsYXNzaWMucHJvdG90eXBl
LnJldmVydCA9IGNSZXZlcnQ7Ci0gIENsYXNzaWMucHJvdG90eXBlLnJlZHVjZSA9IGNSZWR1Y2U7
Ci0gIENsYXNzaWMucHJvdG90eXBlLm11bFRvID0gY011bFRvOwotICBDbGFzc2ljLnByb3RvdHlw
ZS5zcXJUbyA9IGNTcXJUbzsKLSAgLy8gKHByb3RlY3RlZCkgcmV0dXJuICItMS90aGlzICUgMl5E
QiI7IHVzZWZ1bCBmb3IgTW9udC4gcmVkdWN0aW9uCi0gIC8vIGp1c3RpZmljYXRpb246Ci0gIC8v
ICAgICAgICAgeHkgPT0gMSAobW9kIG0pCi0gIC8vICAgICAgICAgeHkgPSAgMStrbQotICAvLyAg
IHh5KDIteHkpID0gKDEra20pKDEta20pCi0gIC8vIHhbeSgyLXh5KV0gPSAxLWteMm1eMgotICAv
LyB4W3koMi14eSldID09IDEgKG1vZCBtXjIpCi0gIC8vIGlmIHkgaXMgMS94IG1vZCBtLCB0aGVu
IHkoMi14eSkgaXMgMS94IG1vZCBtXjIKLSAgLy8gc2hvdWxkIHJlZHVjZSB4IGFuZCB5KDIteHkp
IGJ5IG1eMiBhdCBlYWNoIHN0ZXAgdG8ga2VlcCBzaXplIGJvdW5kZWQuCi0gIC8vIEpTIG11bHRp
cGx5ICJvdmVyZmxvd3MiIGRpZmZlcmVudGx5IGZyb20gQy9DKyssIHNvIGNhcmUgaXMgbmVlZGVk
IGhlcmUuCi0gIGZ1bmN0aW9uIGJucEludkRpZ2l0KCkgewotICAgIGlmKHRoaXMudCA8IDEpIHJl
dHVybiAwOwotICAgIHZhciB4ID0gdGhpc1swXTsKLSAgICBpZigoeCYxKSA9PSAwKSByZXR1cm4g
MDsKLSAgICB2YXIgeSA9IHgmMzsJCS8vIHkgPT0gMS94IG1vZCAyXjIKLSAgICB5ID0gKHkqKDIt
KHgmMHhmKSp5KSkmMHhmOwkvLyB5ID09IDEveCBtb2QgMl40Ci0gICAgeSA9ICh5KigyLSh4JjB4
ZmYpKnkpKSYweGZmOwkvLyB5ID09IDEveCBtb2QgMl44Ci0gICAgeSA9ICh5KigyLSgoKHgmMHhm
ZmZmKSp5KSYweGZmZmYpKSkmMHhmZmZmOwkvLyB5ID09IDEveCBtb2QgMl4xNgotICAgIC8vIGxh
c3Qgc3RlcCAtIGNhbGN1bGF0ZSBpbnZlcnNlIG1vZCBEViBkaXJlY3RseTsKLSAgICAvLyBhc3N1
bWVzIDE2IDwgREIgPD0gMzIgYW5kIGFzc3VtZXMgYWJpbGl0eSB0byBoYW5kbGUgNDgtYml0IGlu
dHMKLSAgICB5ID0gKHkqKDIteCp5JXRoaXMuRFYpKSV0aGlzLkRWOwkJLy8geSA9PSAxL3ggbW9k
IDJeZGJpdHMKLSAgICAvLyB3ZSByZWFsbHkgd2FudCB0aGUgbmVnYXRpdmUgaW52ZXJzZSwgYW5k
IC1EViA8IHkgPCBEVgotICAgIHJldHVybiAoeT4wKT90aGlzLkRWLXk6LXk7Ci0gIH0KLSAgLy8g
TW9udGdvbWVyeSByZWR1Y3Rpb24KLSAgZnVuY3Rpb24gTW9udGdvbWVyeShtKSB7Ci0gICAgdGhp
cy5tID0gbTsKLSAgICB0aGlzLm1wID0gbS5pbnZEaWdpdCgpOwotICAgIHRoaXMubXBsID0gdGhp
cy5tcCYweDdmZmY7Ci0gICAgdGhpcy5tcGggPSB0aGlzLm1wPj4xNTsKLSAgICB0aGlzLnVtID0g
KDE8PChtLkRCLTE1KSktMTsKLSAgICB0aGlzLm10MiA9IDIqbS50OwotICB9Ci0gIC8vIHhSIG1v
ZCBtCi0gIGZ1bmN0aW9uIG1vbnRDb252ZXJ0KHgpIHsKLSAgICB2YXIgciA9IG5iaSgpOwotICAg
IHguYWJzKCkuZGxTaGlmdFRvKHRoaXMubS50LHIpOwotICAgIHIuZGl2UmVtVG8odGhpcy5tLG51
bGwscik7Ci0gICAgaWYoeC5zIDwgMCAmJiByLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpFUk8pID4g
MCkgdGhpcy5tLnN1YlRvKHIscik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8geC9SIG1vZCBt
Ci0gIGZ1bmN0aW9uIG1vbnRSZXZlcnQoeCkgewotICAgIHZhciByID0gbmJpKCk7Ci0gICAgeC5j
b3B5VG8ocik7Ci0gICAgdGhpcy5yZWR1Y2Uocik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8g
eCA9IHgvUiBtb2QgbSAoSEFDIDE0LjMyKQotICBmdW5jdGlvbiBtb250UmVkdWNlKHgpIHsKLSAg
ICB3aGlsZSh4LnQgPD0gdGhpcy5tdDIpCS8vIHBhZCB4IHNvIGFtIGhhcyBlbm91Z2ggcm9vbSBs
YXRlcgotICAgICAgeFt4LnQrK10gPSAwOwotICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0aGlzLm0u
dDsgKytpKSB7Ci0gICAgICAvLyBmYXN0ZXIgd2F5IG9mIGNhbGN1bGF0aW5nIHUwID0geFtpXSpt
cCBtb2QgRFYKLSAgICAgIHZhciBqID0geFtpXSYweDdmZmY7Ci0gICAgICB2YXIgdTAgPSAoaip0
aGlzLm1wbCsoKChqKnRoaXMubXBoKyh4W2ldPj4xNSkqdGhpcy5tcGwpJnRoaXMudW0pPDwxNSkp
JnguRE07Ci0gICAgICAvLyB1c2UgYW0gdG8gY29tYmluZSB0aGUgbXVsdGlwbHktc2hpZnQtYWRk
IGludG8gb25lIGNhbGwKLSAgICAgIGogPSBpK3RoaXMubS50OwotICAgICAgeFtqXSArPSB0aGlz
Lm0uYW0oMCx1MCx4LGksMCx0aGlzLm0udCk7Ci0gICAgICAvLyBwcm9wYWdhdGUgY2FycnkKLSAg
ICAgIHdoaWxlKHhbal0gPj0geC5EVikgeyB4W2pdIC09IHguRFY7IHhbKytqXSsrOyB9Ci0gICAg
fQotICAgIHguY2xhbXAoKTsKLSAgICB4LmRyU2hpZnRUbyh0aGlzLm0udCx4KTsKLSAgICBpZih4
LmNvbXBhcmVUbyh0aGlzLm0pID49IDApIHguc3ViVG8odGhpcy5tLHgpOwotICB9Ci0gIC8vIHIg
PSAieF4yL1IgbW9kIG0iOyB4ICE9IHIKLSAgZnVuY3Rpb24gbW9udFNxclRvKHgscikgeyB4LnNx
dWFyZVRvKHIpOyB0aGlzLnJlZHVjZShyKTsgfQotICAvLyByID0gInh5L1IgbW9kIG0iOyB4LHkg
IT0gcgotICBmdW5jdGlvbiBtb250TXVsVG8oeCx5LHIpIHsgeC5tdWx0aXBseVRvKHkscik7IHRo
aXMucmVkdWNlKHIpOyB9Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLmNvbnZlcnQgPSBtb250Q29u
dmVydDsKLSAgTW9udGdvbWVyeS5wcm90b3R5cGUucmV2ZXJ0ID0gbW9udFJldmVydDsKLSAgTW9u
dGdvbWVyeS5wcm90b3R5cGUucmVkdWNlID0gbW9udFJlZHVjZTsKLSAgTW9udGdvbWVyeS5wcm90
b3R5cGUubXVsVG8gPSBtb250TXVsVG87Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLnNxclRvID0g
bW9udFNxclRvOwotICAvLyAocHJvdGVjdGVkKSB0cnVlIGlmZiB0aGlzIGlzIGV2ZW4KLSAgZnVu
Y3Rpb24gYm5wSXNFdmVuKCkgeyByZXR1cm4gKCh0aGlzLnQ+MCk/KHRoaXNbMF0mMSk6dGhpcy5z
KSA9PSAwOyB9Ci0gIC8vIChwcm90ZWN0ZWQpIHRoaXNeZSwgZSA8IDJeMzIsIGRvaW5nIHNxciBh
bmQgbXVsIHdpdGggInIiIChIQUMgMTQuNzkpCi0gIGZ1bmN0aW9uIGJucEV4cChlLHopIHsKLSAg
ICBpZihlID4gMHhmZmZmZmZmZiB8fCBlIDwgMSkgcmV0dXJuIEJpZ0ludGVnZXIuT05FOwotICAg
IHZhciByID0gbmJpKCksIHIyID0gbmJpKCksIGcgPSB6LmNvbnZlcnQodGhpcyksIGkgPSBuYml0
cyhlKS0xOwotICAgIGcuY29weVRvKHIpOwotICAgIHdoaWxlKC0taSA+PSAwKSB7Ci0gICAgICB6
LnNxclRvKHIscjIpOwotICAgICAgaWYoKGUmKDE8PGkpKSA+IDApIHoubXVsVG8ocjIsZyxyKTsK
LSAgICAgIGVsc2UgeyB2YXIgdCA9IHI7IHIgPSByMjsgcjIgPSB0OyB9Ci0gICAgfQotICAgIHJl
dHVybiB6LnJldmVydChyKTsKLSAgfQotICAvLyAocHVibGljKSB0aGlzXmUgJSBtLCAwIDw9IGUg
PCAyXjMyCi0gIGZ1bmN0aW9uIGJuTW9kUG93SW50KGUsbSkgewotICAgIHZhciB6OwotICAgIGlm
KGUgPCAyNTYgfHwgbS5pc0V2ZW4oKSkgeiA9IG5ldyBDbGFzc2ljKG0pOyBlbHNlIHogPSBuZXcg
TW9udGdvbWVyeShtKTsKLSAgICByZXR1cm4gdGhpcy5leHAoZSx6KTsKLSAgfQotICAvLyBwcm90
ZWN0ZWQKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuY29weVRvID0gYm5wQ29weVRvOwotICBCaWdJ
bnRlZ2VyLnByb3RvdHlwZS5mcm9tSW50ID0gYm5wRnJvbUludDsKLSAgQmlnSW50ZWdlci5wcm90
b3R5cGUuZnJvbVN0cmluZyA9IGJucEZyb21TdHJpbmc7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBl
LmNsYW1wID0gYm5wQ2xhbXA7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRsU2hpZnRUbyA9IGJu
cERMU2hpZnRUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZHJTaGlmdFRvID0gYm5wRFJTaGlm
dFRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5sU2hpZnRUbyA9IGJucExTaGlmdFRvOwotICBC
aWdJbnRlZ2VyLnByb3RvdHlwZS5yU2hpZnRUbyA9IGJucFJTaGlmdFRvOwotICBCaWdJbnRlZ2Vy
LnByb3RvdHlwZS5zdWJUbyA9IGJucFN1YlRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tdWx0
aXBseVRvID0gYm5wTXVsdGlwbHlUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuc3F1YXJlVG8g
PSBibnBTcXVhcmVUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZGl2UmVtVG8gPSBibnBEaXZS
ZW1UbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuaW52RGlnaXQgPSBibnBJbnZEaWdpdDsKLSAg
QmlnSW50ZWdlci5wcm90b3R5cGUuaXNFdmVuID0gYm5wSXNFdmVuOwotICBCaWdJbnRlZ2VyLnBy
b3RvdHlwZS5leHAgPSBibnBFeHA7Ci0gIC8vIHB1YmxpYwotICBCaWdJbnRlZ2VyLnByb3RvdHlw
ZS50b1N0cmluZyA9IGJuVG9TdHJpbmc7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLm5lZ2F0ZSA9
IGJuTmVnYXRlOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hYnMgPSBibkFiczsKLSAgQmlnSW50
ZWdlci5wcm90b3R5cGUuY29tcGFyZVRvID0gYm5Db21wYXJlVG87Ci0gIEJpZ0ludGVnZXIucHJv
dG90eXBlLmJpdExlbmd0aCA9IGJuQml0TGVuZ3RoOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5t
b2QgPSBibk1vZDsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUubW9kUG93SW50ID0gYm5Nb2RQb3dJ
bnQ7Ci0gIC8vICJjb25zdGFudHMiCi0gIEJpZ0ludGVnZXIuWkVSTyA9IG5idigwKTsKLSAgQmln
SW50ZWdlci5PTkUgPSBuYnYoMSk7Ci0gIC8vIGpzYm4yIHN0dWZmCi0gIC8vIChwcm90ZWN0ZWQp
IGNvbnZlcnQgZnJvbSByYWRpeCBzdHJpbmcKLSAgZnVuY3Rpb24gYm5wRnJvbVJhZGl4KHMsYikg
ewotICAgIHRoaXMuZnJvbUludCgwKTsKLSAgICBpZihiID09IG51bGwpIGIgPSAxMDsKLSAgICB2
YXIgY3MgPSB0aGlzLmNodW5rU2l6ZShiKTsKLSAgICB2YXIgZCA9IE1hdGgucG93KGIsY3MpLCBt
aSA9IGZhbHNlLCBqID0gMCwgdyA9IDA7Ci0gICAgZm9yKHZhciBpID0gMDsgaSA8IHMubGVuZ3Ro
OyArK2kpIHsKLSAgICAgIHZhciB4ID0gaW50QXQocyxpKTsKLSAgICAgIGlmKHggPCAwKSB7Ci0g
ICAgICAgIGlmKHMuY2hhckF0KGkpID09ICItIiAmJiB0aGlzLnNpZ251bSgpID09IDApIG1pID0g
dHJ1ZTsKLSAgICAgICAgY29udGludWU7Ci0gICAgICB9Ci0gICAgICB3ID0gYip3K3g7Ci0gICAg
ICBpZigrK2ogPj0gY3MpIHsKLSAgICAgICAgdGhpcy5kTXVsdGlwbHkoZCk7Ci0gICAgICAgIHRo
aXMuZEFkZE9mZnNldCh3LDApOwotICAgICAgICBqID0gMDsKLSAgICAgICAgdyA9IDA7Ci0gICAg
ICB9Ci0gICAgfQotICAgIGlmKGogPiAwKSB7Ci0gICAgICB0aGlzLmRNdWx0aXBseShNYXRoLnBv
dyhiLGopKTsKLSAgICAgIHRoaXMuZEFkZE9mZnNldCh3LDApOwotICAgIH0KLSAgICBpZihtaSkg
QmlnSW50ZWdlci5aRVJPLnN1YlRvKHRoaXMsdGhpcyk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkg
cmV0dXJuIHggcy50LiByXnggPCBEVgotICBmdW5jdGlvbiBibnBDaHVua1NpemUocikgeyByZXR1
cm4gTWF0aC5mbG9vcihNYXRoLkxOMip0aGlzLkRCL01hdGgubG9nKHIpKTsgfQotICAvLyAocHVi
bGljKSAwIGlmIHRoaXMgPT0gMCwgMSBpZiB0aGlzID4gMAotICBmdW5jdGlvbiBiblNpZ051bSgp
IHsKLSAgICBpZih0aGlzLnMgPCAwKSByZXR1cm4gLTE7Ci0gICAgZWxzZSBpZih0aGlzLnQgPD0g
MCB8fCAodGhpcy50ID09IDEgJiYgdGhpc1swXSA8PSAwKSkgcmV0dXJuIDA7Ci0gICAgZWxzZSBy
ZXR1cm4gMTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSB0aGlzICo9IG4sIHRoaXMgPj0gMCwgMSA8
IG4gPCBEVgotICBmdW5jdGlvbiBibnBETXVsdGlwbHkobikgewotICAgIHRoaXNbdGhpcy50XSA9
IHRoaXMuYW0oMCxuLTEsdGhpcywwLDAsdGhpcy50KTsKLSAgICArK3RoaXMudDsKLSAgICB0aGlz
LmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgdGhpcyArPSBuIDw8IHcgd29yZHMsIHRo
aXMgPj0gMAotICBmdW5jdGlvbiBibnBEQWRkT2Zmc2V0KG4sdykgewotICAgIGlmKG4gPT0gMCkg
cmV0dXJuOwotICAgIHdoaWxlKHRoaXMudCA8PSB3KSB0aGlzW3RoaXMudCsrXSA9IDA7Ci0gICAg
dGhpc1t3XSArPSBuOwotICAgIHdoaWxlKHRoaXNbd10gPj0gdGhpcy5EVikgewotICAgICAgdGhp
c1t3XSAtPSB0aGlzLkRWOwotICAgICAgaWYoKyt3ID49IHRoaXMudCkgdGhpc1t0aGlzLnQrK10g
PSAwOwotICAgICAgKyt0aGlzW3ddOwotICAgIH0KLSAgfQotICAvLyAocHJvdGVjdGVkKSBjb252
ZXJ0IHRvIHJhZGl4IHN0cmluZwotICBmdW5jdGlvbiBibnBUb1JhZGl4KGIpIHsKLSAgICBpZihi
ID09IG51bGwpIGIgPSAxMDsKLSAgICBpZih0aGlzLnNpZ251bSgpID09IDAgfHwgYiA8IDIgfHwg
YiA+IDM2KSByZXR1cm4gIjAiOwotICAgIHZhciBjcyA9IHRoaXMuY2h1bmtTaXplKGIpOwotICAg
IHZhciBhID0gTWF0aC5wb3coYixjcyk7Ci0gICAgdmFyIGQgPSBuYnYoYSksIHkgPSBuYmkoKSwg
eiA9IG5iaSgpLCByID0gIiI7Ci0gICAgdGhpcy5kaXZSZW1UbyhkLHkseik7Ci0gICAgd2hpbGUo
eS5zaWdudW0oKSA+IDApIHsKLSAgICAgIHIgPSAoYSt6LmludFZhbHVlKCkpLnRvU3RyaW5nKGIp
LnN1YnN0cigxKSArIHI7Ci0gICAgICB5LmRpdlJlbVRvKGQseSx6KTsKLSAgICB9Ci0gICAgcmV0
dXJuIHouaW50VmFsdWUoKS50b1N0cmluZyhiKSArIHI7Ci0gIH0KLSAgLy8gKHB1YmxpYykgcmV0
dXJuIHZhbHVlIGFzIGludGVnZXIKLSAgZnVuY3Rpb24gYm5JbnRWYWx1ZSgpIHsKLSAgICBpZih0
aGlzLnMgPCAwKSB7Ci0gICAgICBpZih0aGlzLnQgPT0gMSkgcmV0dXJuIHRoaXNbMF0tdGhpcy5E
VjsKLSAgICAgIGVsc2UgaWYodGhpcy50ID09IDApIHJldHVybiAtMTsKLSAgICB9Ci0gICAgZWxz
ZSBpZih0aGlzLnQgPT0gMSkgcmV0dXJuIHRoaXNbMF07Ci0gICAgZWxzZSBpZih0aGlzLnQgPT0g
MCkgcmV0dXJuIDA7Ci0gICAgLy8gYXNzdW1lcyAxNiA8IERCIDwgMzIKLSAgICByZXR1cm4gKCh0
aGlzWzFdJigoMTw8KDMyLXRoaXMuREIpKS0xKSk8PHRoaXMuREIpfHRoaXNbMF07Ci0gIH0KLSAg
Ly8gKHByb3RlY3RlZCkgciA9IHRoaXMgKyBhCi0gIGZ1bmN0aW9uIGJucEFkZFRvKGEscikgewot
ICAgIHZhciBpID0gMCwgYyA9IDAsIG0gPSBNYXRoLm1pbihhLnQsdGhpcy50KTsKLSAgICB3aGls
ZShpIDwgbSkgewotICAgICAgYyArPSB0aGlzW2ldK2FbaV07Ci0gICAgICByW2krK10gPSBjJnRo
aXMuRE07Ci0gICAgICBjID4+PSB0aGlzLkRCOwotICAgIH0KLSAgICBpZihhLnQgPCB0aGlzLnQp
IHsKLSAgICAgIGMgKz0gYS5zOwotICAgICAgd2hpbGUoaSA8IHRoaXMudCkgewotICAgICAgICBj
ICs9IHRoaXNbaV07Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0g
dGhpcy5EQjsKLSAgICAgIH0KLSAgICAgIGMgKz0gdGhpcy5zOwotICAgIH0KLSAgICBlbHNlIHsK
LSAgICAgIGMgKz0gdGhpcy5zOwotICAgICAgd2hpbGUoaSA8IGEudCkgewotICAgICAgICBjICs9
IGFbaV07Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0gdGhpcy5E
QjsKLSAgICAgIH0KLSAgICAgIGMgKz0gYS5zOwotICAgIH0KLSAgICByLnMgPSAoYzwwKT8tMTow
OwotICAgIGlmKGMgPiAwKSByW2krK10gPSBjOwotICAgIGVsc2UgaWYoYyA8IC0xKSByW2krK10g
PSB0aGlzLkRWK2M7Ci0gICAgci50ID0gaTsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgQmlnSW50
ZWdlci5wcm90b3R5cGUuZnJvbVJhZGl4ID0gYm5wRnJvbVJhZGl4OwotICBCaWdJbnRlZ2VyLnBy
b3RvdHlwZS5jaHVua1NpemUgPSBibnBDaHVua1NpemU7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBl
LnNpZ251bSA9IGJuU2lnTnVtOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kTXVsdGlwbHkgPSBi
bnBETXVsdGlwbHk7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRBZGRPZmZzZXQgPSBibnBEQWRk
T2Zmc2V0OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS50b1JhZGl4ID0gYm5wVG9SYWRpeDsKLSAg
QmlnSW50ZWdlci5wcm90b3R5cGUuaW50VmFsdWUgPSBibkludFZhbHVlOwotICBCaWdJbnRlZ2Vy
LnByb3RvdHlwZS5hZGRUbyA9IGJucEFkZFRvOwotICAvLz09PT09PT0gZW5kIGpzYm4gPT09PT09
PQotICAvLyBFbXNjcmlwdGVuIHdyYXBwZXIKLSAgdmFyIFdyYXBwZXIgPSB7Ci0gICAgYWJzOiBm
dW5jdGlvbihsLCBoKSB7Ci0gICAgICB2YXIgeCA9IG5ldyBnb29nLm1hdGguTG9uZyhsLCBoKTsK
LSAgICAgIHZhciByZXQ7Ci0gICAgICBpZiAoeC5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAgcmV0
ID0geC5uZWdhdGUoKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldCA9IHg7Ci0gICAgICB9
Ci0gICAgICBIRUFQMzJbdGVtcERvdWJsZVB0cj4+Ml0gPSByZXQubG93XzsKLSAgICAgIEhFQVAz
Mlt0ZW1wRG91YmxlUHRyKzQ+PjJdID0gcmV0LmhpZ2hfOwotICAgIH0sCi0gICAgZW5zdXJlVGVt
cHM6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKFdyYXBwZXIuZW5zdXJlZFRlbXBzKSByZXR1cm47
Ci0gICAgICBXcmFwcGVyLmVuc3VyZWRUZW1wcyA9IHRydWU7Ci0gICAgICBXcmFwcGVyLnR3bzMy
ID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIFdyYXBwZXIudHdvMzIuZnJvbVN0cmluZygnNDI5
NDk2NzI5NicsIDEwKTsKLSAgICAgIFdyYXBwZXIudHdvNjQgPSBuZXcgQmlnSW50ZWdlcigpOwot
ICAgICAgV3JhcHBlci50d282NC5mcm9tU3RyaW5nKCcxODQ0Njc0NDA3MzcwOTU1MTYxNicsIDEw
KTsKLSAgICAgIFdyYXBwZXIudGVtcDEgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgV3JhcHBl
ci50ZW1wMiA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgfSwKLSAgICBsaDJiaWdudW06IGZ1bmN0
aW9uKGwsIGgpIHsKLSAgICAgIHZhciBhID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGEuZnJv
bVN0cmluZyhoLnRvU3RyaW5nKCksIDEwKTsKLSAgICAgIHZhciBiID0gbmV3IEJpZ0ludGVnZXIo
KTsKLSAgICAgIGEubXVsdGlwbHlUbyhXcmFwcGVyLnR3bzMyLCBiKTsKLSAgICAgIHZhciBjID0g
bmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGMuZnJvbVN0cmluZyhsLnRvU3RyaW5nKCksIDEwKTsK
LSAgICAgIHZhciBkID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGMuYWRkVG8oYiwgZCk7Ci0g
ICAgICByZXR1cm4gZDsKLSAgICB9LAotICAgIHN0cmluZ2lmeTogZnVuY3Rpb24obCwgaCwgdW5z
aWduZWQpIHsKLSAgICAgIHZhciByZXQgPSBuZXcgZ29vZy5tYXRoLkxvbmcobCwgaCkudG9TdHJp
bmcoKTsKLSAgICAgIGlmICh1bnNpZ25lZCAmJiByZXRbMF0gPT0gJy0nKSB7Ci0gICAgICAgIC8v
IHVuc2lnbiBzbG93bHkgdXNpbmcganNibiBiaWdudW1zCi0gICAgICAgIFdyYXBwZXIuZW5zdXJl
VGVtcHMoKTsKLSAgICAgICAgdmFyIGJpZ251bSA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICAg
IGJpZ251bS5mcm9tU3RyaW5nKHJldCwgMTApOwotICAgICAgICByZXQgPSBuZXcgQmlnSW50ZWdl
cigpOwotICAgICAgICBXcmFwcGVyLnR3bzY0LmFkZFRvKGJpZ251bSwgcmV0KTsKLSAgICAgICAg
cmV0ID0gcmV0LnRvU3RyaW5nKDEwKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAg
fSwKLSAgICBmcm9tU3RyaW5nOiBmdW5jdGlvbihzdHIsIGJhc2UsIG1pbiwgbWF4LCB1bnNpZ25l
ZCkgewotICAgICAgV3JhcHBlci5lbnN1cmVUZW1wcygpOwotICAgICAgdmFyIGJpZ251bSA9IG5l
dyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBiaWdudW0uZnJvbVN0cmluZyhzdHIsIGJhc2UpOwotICAg
ICAgdmFyIGJpZ21pbiA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBiaWdtaW4uZnJvbVN0cmlu
ZyhtaW4sIDEwKTsKLSAgICAgIHZhciBiaWdtYXggPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAg
YmlnbWF4LmZyb21TdHJpbmcobWF4LCAxMCk7Ci0gICAgICBpZiAodW5zaWduZWQgJiYgYmlnbnVt
LmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpFUk8pIDwgMCkgewotICAgICAgICB2YXIgdGVtcCA9IG5l
dyBCaWdJbnRlZ2VyKCk7Ci0gICAgICAgIGJpZ251bS5hZGRUbyhXcmFwcGVyLnR3bzY0LCB0ZW1w
KTsKLSAgICAgICAgYmlnbnVtID0gdGVtcDsKLSAgICAgIH0KLSAgICAgIHZhciBlcnJvciA9IGZh
bHNlOwotICAgICAgaWYgKGJpZ251bS5jb21wYXJlVG8oYmlnbWluKSA8IDApIHsKLSAgICAgICAg
YmlnbnVtID0gYmlnbWluOwotICAgICAgICBlcnJvciA9IHRydWU7Ci0gICAgICB9IGVsc2UgaWYg
KGJpZ251bS5jb21wYXJlVG8oYmlnbWF4KSA+IDApIHsKLSAgICAgICAgYmlnbnVtID0gYmlnbWF4
OwotICAgICAgICBlcnJvciA9IHRydWU7Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0ID0gZ29vZy5t
YXRoLkxvbmcuZnJvbVN0cmluZyhiaWdudW0udG9TdHJpbmcoKSk7IC8vIG1pbi1tYXggY2hlY2tz
IHNob3VsZCBoYXZlIGNsYW1wZWQgdGhpcyB0byBhIHJhbmdlIGdvb2cubWF0aC5Mb25nIGNhbiBo
YW5kbGUgd2VsbAotICAgICAgSEVBUDMyW3RlbXBEb3VibGVQdHI+PjJdID0gcmV0Lmxvd187Ci0g
ICAgICBIRUFQMzJbdGVtcERvdWJsZVB0cis0Pj4yXSA9IHJldC5oaWdoXzsKLSAgICAgIGlmIChl
cnJvcikgdGhyb3cgJ3JhbmdlIGVycm9yJzsKLSAgICB9Ci0gIH07Ci0gIHJldHVybiBXcmFwcGVy
OwotfSkoKTsKLS8vPT09PT09PSBlbmQgY2xvc3VyZSBpNjQgY29kZSA9PT09PT09Ci0vLyA9PT0g
QXV0by1nZW5lcmF0ZWQgcG9zdGFtYmxlIHNldHVwIGVudHJ5IHN0dWZmID09PQotZnVuY3Rpb24g
RXhpdFN0YXR1cyhzdGF0dXMpIHsKLSAgdGhpcy5uYW1lID0gIkV4aXRTdGF0dXMiOwotICB0aGlz
Lm1lc3NhZ2UgPSAiUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggZXhpdCgiICsgc3RhdHVzICsgIiki
OwotICB0aGlzLnN0YXR1cyA9IHN0YXR1czsKLX07Ci1FeGl0U3RhdHVzLnByb3RvdHlwZSA9IG5l
dyBFcnJvcigpOwotRXhpdFN0YXR1cy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBFeGl0U3RhdHVz
OwotdmFyIGluaXRpYWxTdGFja1RvcDsKLXZhciBwcmVsb2FkU3RhcnRUaW1lID0gbnVsbDsKLU1v
ZHVsZVsnY2FsbE1haW4nXSA9IE1vZHVsZS5jYWxsTWFpbiA9IGZ1bmN0aW9uIGNhbGxNYWluKGFy
Z3MpIHsKLSAgYXNzZXJ0KHJ1bkRlcGVuZGVuY2llcyA9PSAwLCAnY2Fubm90IGNhbGwgbWFpbiB3
aGVuIGFzeW5jIGRlcGVuZGVuY2llcyByZW1haW4hIChsaXN0ZW4gb24gX19BVE1BSU5fXyknKTsK
LSAgYXNzZXJ0KF9fQVRQUkVSVU5fXy5sZW5ndGggPT0gMCwgJ2Nhbm5vdCBjYWxsIG1haW4gd2hl
biBwcmVSdW4gZnVuY3Rpb25zIHJlbWFpbiB0byBiZSBjYWxsZWQnKTsKLSAgYXJncyA9IGFyZ3Mg
fHwgW107Ci0gIGlmIChFTlZJUk9OTUVOVF9JU19XRUIgJiYgcHJlbG9hZFN0YXJ0VGltZSAhPT0g
bnVsbCkgewotICAgIC8vTW9kdWxlLnByaW50RXJyKCdwcmVsb2FkIHRpbWU6ICcgKyAoRGF0ZS5u
b3coKSAtIHByZWxvYWRTdGFydFRpbWUpICsgJyBtcycpOwotICB9Ci0gIGVuc3VyZUluaXRSdW50
aW1lKCk7Ci0gIHZhciBhcmdjID0gYXJncy5sZW5ndGgrMTsKLSAgZnVuY3Rpb24gcGFkKCkgewot
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNC0xOyBpKyspIHsKLSAgICAgIGFyZ3YucHVzaCgwKTsK
LSAgICB9Ci0gIH0KLSAgdmFyIGFyZ3YgPSBbYWxsb2NhdGUoaW50QXJyYXlGcm9tU3RyaW5nKCIv
YmluL3RoaXMucHJvZ3JhbSIpLCAnaTgnLCBBTExPQ19OT1JNQUwpIF07Ci0gIHBhZCgpOwotICBm
b3IgKHZhciBpID0gMDsgaSA8IGFyZ2MtMTsgaSA9IGkgKyAxKSB7Ci0gICAgYXJndi5wdXNoKGFs
bG9jYXRlKGludEFycmF5RnJvbVN0cmluZyhhcmdzW2ldKSwgJ2k4JywgQUxMT0NfTk9STUFMKSk7
Ci0gICAgcGFkKCk7Ci0gIH0KLSAgYXJndi5wdXNoKDApOwotICBhcmd2ID0gYWxsb2NhdGUoYXJn
diwgJ2kzMicsIEFMTE9DX05PUk1BTCk7Ci0gIGluaXRpYWxTdGFja1RvcCA9IFNUQUNLVE9QOwot
ICB0cnkgewotICAgIHZhciByZXQgPSBNb2R1bGVbJ19tYWluJ10oYXJnYywgYXJndiwgMCk7Ci0g
ICAgLy8gaWYgd2UncmUgbm90IHJ1bm5pbmcgYW4gZXZlbnRlZCBtYWluIGxvb3AsIGl0J3MgdGlt
ZSB0byBleGl0Ci0gICAgaWYgKCFNb2R1bGVbJ25vRXhpdFJ1bnRpbWUnXSkgewotICAgICAgZXhp
dChyZXQpOwotICAgIH0KLSAgfQotICBjYXRjaChlKSB7Ci0gICAgaWYgKGUgaW5zdGFuY2VvZiBF
eGl0U3RhdHVzKSB7Ci0gICAgICAvLyBleGl0KCkgdGhyb3dzIHRoaXMgb25jZSBpdCdzIGRvbmUg
dG8gbWFrZSBzdXJlIGV4ZWN1dGlvbgotICAgICAgLy8gaGFzIGJlZW4gc3RvcHBlZCBjb21wbGV0
ZWx5Ci0gICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChlID09ICdTaW11bGF0ZUluZmluaXRl
TG9vcCcpIHsKLSAgICAgIC8vIHJ1bm5pbmcgYW4gZXZlbnRlZCBtYWluIGxvb3AsIGRvbid0IGlt
bWVkaWF0ZWx5IGV4aXQKLSAgICAgIE1vZHVsZVsnbm9FeGl0UnVudGltZSddID0gdHJ1ZTsKLSAg
ICAgIHJldHVybjsKLSAgICB9IGVsc2UgewotICAgICAgdGhyb3cgZTsKLSAgICB9Ci0gIH0KLX0K
LWZ1bmN0aW9uIHJ1bihhcmdzKSB7Ci0gIGFyZ3MgPSBhcmdzIHx8IE1vZHVsZVsnYXJndW1lbnRz
J107Ci0gIGlmIChwcmVsb2FkU3RhcnRUaW1lID09PSBudWxsKSBwcmVsb2FkU3RhcnRUaW1lID0g
RGF0ZS5ub3coKTsKLSAgaWYgKHJ1bkRlcGVuZGVuY2llcyA+IDApIHsKLSAgICAvL01vZHVsZS5w
cmludEVycigncnVuKCkgY2FsbGVkLCBidXQgZGVwZW5kZW5jaWVzIHJlbWFpbiwgc28gbm90IHJ1
bm5pbmcnKTsKLSAgICByZXR1cm47Ci0gIH0KLSAgcHJlUnVuKCk7Ci0gIGlmIChydW5EZXBlbmRl
bmNpZXMgPiAwKSB7Ci0gICAgLy8gYSBwcmVSdW4gYWRkZWQgYSBkZXBlbmRlbmN5LCBydW4gd2ls
bCBiZSBjYWxsZWQgbGF0ZXIKLSAgICByZXR1cm47Ci0gIH0KLSAgZnVuY3Rpb24gZG9SdW4oKSB7
Ci0gICAgZW5zdXJlSW5pdFJ1bnRpbWUoKTsKLSAgICBwcmVNYWluKCk7Ci0gICAgY2FsbGVkUnVu
ID0gdHJ1ZTsKLSAgICBpZiAoTW9kdWxlWydfbWFpbiddICYmIHNob3VsZFJ1bk5vdykgewotICAg
ICAgTW9kdWxlWydjYWxsTWFpbiddKGFyZ3MpOwotICAgIH0KLSAgICBwb3N0UnVuKCk7Ci0gIH0K
LSAgaWYgKE1vZHVsZVsnc2V0U3RhdHVzJ10pIHsKLSAgICBNb2R1bGVbJ3NldFN0YXR1cyddKCdS
dW5uaW5nLi4uJyk7Ci0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10oJycpOwotICAgICAg
fSwgMSk7Ci0gICAgICBpZiAoIUFCT1JUKSBkb1J1bigpOwotICAgIH0sIDEpOwotICB9IGVsc2Ug
ewotICAgIGRvUnVuKCk7Ci0gIH0KLX0KLU1vZHVsZVsncnVuJ10gPSBNb2R1bGUucnVuID0gcnVu
OwotZnVuY3Rpb24gZXhpdChzdGF0dXMpIHsKLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RBVFVT
ID0gc3RhdHVzOwotICBTVEFDS1RPUCA9IGluaXRpYWxTdGFja1RvcDsKLSAgLy8gZXhpdCB0aGUg
cnVudGltZQotICBleGl0UnVudGltZSgpOwotICAvLyB0aHJvdyBhbiBleGNlcHRpb24gdG8gaGFs
dCB0aGUgY3VycmVudCBleGVjdXRpb24KLSAgdGhyb3cgbmV3IEV4aXRTdGF0dXMoc3RhdHVzKTsK
LX0KLU1vZHVsZVsnZXhpdCddID0gTW9kdWxlLmV4aXQgPSBleGl0OwotZnVuY3Rpb24gYWJvcnQo
dGV4dCkgewotICBpZiAodGV4dCkgewotICAgIE1vZHVsZS5wcmludCh0ZXh0KTsKLSAgICBNb2R1
bGUucHJpbnRFcnIodGV4dCk7Ci0gIH0KLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RBVFVTID0g
MTsKLSAgdGhyb3cgJ2Fib3J0KCkgYXQgJyArIChuZXcgRXJyb3IoKS5zdGFjayk7Ci19Ci1Nb2R1
bGVbJ2Fib3J0J10gPSBNb2R1bGUuYWJvcnQgPSBhYm9ydDsKLS8vIHt7UFJFX1JVTl9BRERJVElP
TlN9fQotaWYgKE1vZHVsZVsncHJlSW5pdCddKSB7Ci0gIGlmICh0eXBlb2YgTW9kdWxlWydwcmVJ
bml0J10gPT0gJ2Z1bmN0aW9uJykgTW9kdWxlWydwcmVJbml0J10gPSBbTW9kdWxlWydwcmVJbml0
J11dOwotICB3aGlsZSAoTW9kdWxlWydwcmVJbml0J10ubGVuZ3RoID4gMCkgewotICAgIE1vZHVs
ZVsncHJlSW5pdCddLnBvcCgpKCk7Ci0gIH0KLX0KLS8vIHNob3VsZFJ1bk5vdyByZWZlcnMgdG8g
Y2FsbGluZyBtYWluKCksIG5vdCBydW4oKS4KLXZhciBzaG91bGRSdW5Ob3cgPSB0cnVlOwotaWYg
KE1vZHVsZVsnbm9Jbml0aWFsUnVuJ10pIHsKLSAgc2hvdWxkUnVuTm93ID0gZmFsc2U7Ci19Ci1y
dW4oKTsKLS8vIHt7UE9TVF9SVU5fQURESVRJT05TfX0KLS8vIHt7TU9EVUxFX0FERElUSU9OU319
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWFkZC1ub3QtbnVtYmVyLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctYWRkLW5vdC1u
dW1iZXIuanMJKHJldmlzaW9uIDE2MjkxNCkKKysrIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9kZmctYWRkLW5vdC1udW1iZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2IEBACisv
LyBUaGlzIHRlc3Qgd29uJ3QgZ2V0IGludG8gdGhlIEZUTCBjdXJyZW50bHksIHNpbmNlIHRoZSBm
b28oKSBmdW5jdGlvbiBqdXN0IGV4aXRzIGEgbG90LgorLy9AIG5vRlRMUnVuTGF5b3V0VGVzdAor
CiBkZXNjcmlwdGlvbigKICJUZXN0cyB0aGF0IGFkZGluZyB0aGluZ3MgdGhhdCBhcmVuJ3QgbnVt
YmVycyB1c2luZyArKyBkb2VzIG5vdCBjcmFzaCBvciBnZW5lcmF0ZSBib2d1cyBjb2RlLiIKICk7
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvbGFyZ2UtZXhwcmVzc2lvbnMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2xhcmdlLWV4cHJlc3Np
b25zLmpzCShyZXZpc2lvbiAxNjI5MTQpCisrKyBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
bGFyZ2UtZXhwcmVzc2lvbnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDUgKzMwLDUgQEAgZnVu
Y3Rpb24gcmVwZWF0ZWRTdHJpbmcodmFsdWUsIGNvdW50KQogCiBzaG91bGRCZSgnZXZhbChyZXBl
YXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMCkpJywgJ3JlcGVhdGVkU3RyaW5nKCJh
IiwgMTAwKScpOwogc2hvdWxkQmUoJ2V2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwg
IisiLCAxMDAwKSknLCAncmVwZWF0ZWRTdHJpbmcoImEiLCAxMDAwKScpOwotc2hvdWxkQmUoJ2V2
YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMCkpJywgJ3JlcGVhdGVk
U3RyaW5nKCJhIiwgMTAwMDApJyk7CitzaG91bGRUaHJvdygnZXZhbChyZXBlYXRlZEV4cHJlc3Np
b24oImxldHRlckEiLCAiKyIsIDEwMDAwKSknKTsKIHNob3VsZFRocm93KCdldmFsKHJlcGVhdGVk
RXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDAwKSknKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222463</attachid>
            <date>2014-01-28 10:01:52 -0800</date>
            <delta_ts>2014-01-28 11:22:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127763-20140128100145.patch</filename>
            <type>text/plain</type>
            <size>1634232</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkyMSBA
QAorMjAxNC0wMS0yNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIE1lcmdlIHRoZSBqc0NTdGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6Cisg
ICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6
aXNJbnQ3KToKKyAgICAgICAgKEpTQzo6aXNJbnQxMSk6CisgICAgICAgIChKU0M6OlBhaXJQb3N0
SW5kZXg6OlBhaXJQb3N0SW5kZXgpOgorICAgICAgICAoSlNDOjpQYWlyUG9zdEluZGV4OjpvcGVy
YXRvciBpbnQpOgorICAgICAgICAoSlNDOjpQYWlyUHJlSW5kZXg6OlBhaXJQcmVJbmRleCk6Cisg
ICAgICAgIChKU0M6OlBhaXJQcmVJbmRleDo6b3BlcmF0b3IgaW50KToKKyAgICAgICAgKEpTQzo6
QVJNNjRBc3NlbWJsZXI6Om1lbVBhaXJPZmZzZXRTaGlmdCk6CisgICAgICAgIChKU0M6OkFSTTY0
QXNzZW1ibGVyOjphZGQpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bGRwKToKKyAg
ICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OnN0cCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNz
ZW1ibGVyOjpzdWIpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFN0b3JlUmVn
aXN0ZXJQYWlyUG9zdEluZGV4KToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmxvYWRT
dG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KToKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3Nl
bWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmFkZCk6CisgICAgICAgIChK
U0M6OkFSTXY3QXNzZW1ibGVyOjpwb3ApOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6
cHVzaCk6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpBUk1JbnN0cnVjdGlvbkZvcm1h
dHRlcjo6dHdvV29yZE9wMTZJbW0xNik6CisgICAgICAgICogYXNzZW1ibGVyL0Fic3RyYWN0TWFj
cm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTGlua0J1ZmZlci5jcHA6CisgICAg
ICAgIChKU0M6OnNob3VsZFNob3dEaXNhc3NlbWJseUZvcik6CisgICAgICAgIChKU0M6OkxpbmtC
dWZmZXI6OmZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseSk6CisgICAgICAgICogYXNzZW1ibGVy
L0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZW50cnlwb2ludCk6Cisg
ICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyOjpzdG9yZVB0cik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6YWRkNjQpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpwb3BQYWlyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6cHVzaFBhaXIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmFk
ZDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6cG9wUGFpcik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnB1c2hQYWlyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk12Nzo6dGVzdDMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJDb2RlUmVmLmg6CisgICAgICAgIChKU0M6OlJldHVybkFkZHJlc3NQdHI6OmR1bXAp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVQdHI6Om9wZXJhdG9yIFVuc3BlY2lm
aWVkQm9vbFR5cGUqKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpvcGVy
YXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKik6CisgICAgICAgICogYXNzZW1ibGVyL01heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmg6IEFkZGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6dW5saW5rKToKKyAgICAg
ICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZv
OjpDYWxsTGlua0luZm8pOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcDoK
KyAgICAgICAgKEpTQzo6Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQpOgorICAgICAg
ICAoSlNDOjpDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgIChKU0M6OkNhbGxM
aW5rU3RhdHVzOjpjb21wdXRlREZHU3RhdHVzZXMpOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxM
aW5rU3RhdHVzLmg6CisgICAgICAgIChKU0M6OkNhbGxMaW5rU3RhdHVzOjptYWtlQ2xvc3VyZUNh
bGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6ZHVtcEFzc3VtaW5nSklUVHlwZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpDb2RlQmxvY2spOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmdldFN0dWJJbmZvTWFwKToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjphZGRTdHViSW5mbyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZE
RkdDb21waWxlcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Y2hlY2tJZk9wdGltaXphdGlv
blRocmVzaG9sZFJlYWNoZWQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnN0YWNrUG9pbnRl
ck9mZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6c2V0SklUQ29kZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6aml0Q29k
ZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3BlY2lhbEZhc3RDYXNlUHJvZmlsZUZvckJ5
dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpoYXNFeGl0U2l0ZSk6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6bGl2ZW5lc3NBbmFseXNpcyk6CisgICAgICAgICogYnl0
ZWNvZGUvQ29kZU9yaWdpbi5jcHA6CisgICAgICAgIChKU0M6OkNvZGVPcmlnaW46OmlzQXBwcm94
aW1hdGVseUVxdWFsVG8pOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2luOjphcHByb3hpbWF0ZUhh
c2gpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVPcmlnaW4uaDoKKyAgICAgICAgKEpTQzo6Q29k
ZU9yaWdpbjo6Q29kZU9yaWdpbik6CisgICAgICAgIChKU0M6OkNvZGVPcmlnaW46OmRlbGV0ZWRN
YXJrZXIpOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoOjpoYXNoKToK
KyAgICAgICAgKEpTQzo6Q29kZU9yaWdpbkFwcHJveGltYXRlSGFzaDo6ZXF1YWwpOgorICAgICAg
ICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0
UHJvZmlsZTo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0UHJvZmlsZTo6aGFzRXhpdFNp
dGUpOgorICAgICAgICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmg6CisgICAgICAgIChKU0M6
OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6RnJlcXVlbnRFeGl0U2l0ZSk6CisgICAgICAgIChKU0M6
OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChKU0M6OkRGRzo6
RnJlcXVlbnRFeGl0U2l0ZTo6c3Vic3VtZXMpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50
RXhpdFNpdGU6Omhhc2gpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50RXhpdFNpdGU6Ompp
dFR5cGUpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50RXhpdFNpdGU6OndpdGhKSVRUeXBl
KToKKyAgICAgICAgKEpTQzo6REZHOjpRdWVyeWFibGVFeGl0UHJvZmlsZTo6aGFzRXhpdFNpdGUp
OgorICAgICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmg6CisgICAgICAgICogYnl0ZWNvZGUvRXhp
dGluZ0pJVFR5cGUuaDogQWRkZWQuCisgICAgICAgIChKU0M6OmV4aXRpbmdKSVRUeXBlRm9yKToK
KyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0
QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUpOgorICAgICAgICAoSlNDOjpHZXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yKToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJ
bmZvKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogYnl0
ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwOgorICAgICAg
ICAoSlNDOjpQcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludDo6ZmlyZUludGVy
bmFsKToKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6UHV0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUpOgorICAgICAgICAoSlNDOjpQdXRCeUlkU3Rh
dHVzOjpjb21wdXRlRm9yKToKKyAgICAgICAgKEpTQzo6UHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
clN0dWJJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmg6CisgICAgICAg
ICogYnl0ZWNvZGUvU3RydWN0dXJlU2V0Lmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNldDo6
U3RydWN0dXJlU2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU2V0OjphZGQpOgorICAgICAg
ICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAgICAgICogYnl0ZWNvZGUvVmFs
dWVSZWNvdmVyeS5oOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5Ojp3aXRoTG9jYWxzT2Zm
c2V0KToKKyAgICAgICAgKiBieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaDoKKyAgICAgICAgKEpT
Qzo6VmlydHVhbFJlZ2lzdGVyOjpvZmZzZXRJbkJ5dGVzKToKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlckNhbGxGcmFtZS5jcHA6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6QXJyYXlNb2RlOjpyZWZpbmUpOgorICAgICAgICAqIGRmZy9ERkdB
cnJheU1vZGUuaDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjphZGRDYWxsKToKKyAgICAgICAgKEpTQzo6REZH
OjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZUlubGluaW5nKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlR2V0QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OnBhcnNlQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZSk6
CisgICAgICAgICogZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkNGR1NpbXBsaWZpY2F0aW9uUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RG
R0NTRVBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDU0VQaGFzZTo6aW52YWxpZGF0aW9u
UG9pbnRFbGltaW5hdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6Q1NFUGhhc2U6OnBlcmZvcm1O
b2RlQ1NFKToKKyAgICAgICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMu
aDoKKyAgICAgICAgKEpTQzo6REZHOjppbmxpbmVGdW5jdGlvbkZvckNhbGxDYXBhYmlsaXR5TGV2
ZWwpOgorICAgICAgICAoSlNDOjpERkc6OmlubGluZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGxDYXBh
YmlsaXR5TGV2ZWwpOgorICAgICAgICAoSlNDOjpERkc6OmlubGluZUZ1bmN0aW9uRm9yQ29uc3Ry
dWN0Q2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKEpTQzo6REZHOjppbmxpbmVGdW5jdGlvbkZv
ckNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZnL0RGR0NvbW1vbi5oOgorICAgICAgICAq
IGRmZy9ERkdDb21waWxhdGlvbk1vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjppc0ZUTCk6Cisg
ICAgICAgICogZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUlt
cGwpOgorICAgICAgICAoSlNDOjpERkc6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdEcml2
ZXIuaDoKKyAgICAgICAgKiBkZmcvREZHRmFpbGVkRmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpGYWlsZWRGaW5hbGl6ZXI6OmNvZGVTaXplKToKKyAgICAgICAgKiBkZmcvREZHRmFp
bGVkRmluYWxpemVyLmg6CisgICAgICAgICogZGZnL0RGR0ZpbmFsaXplci5oOgorICAgICAgICAq
IGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpm
aXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwU2V0TG9jYWxz
SW5CbG9jayk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBVbnR5cGVkU2V0
TG9jYWxzSW5CbG9jayk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4RWRnZSk6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6aW5zZXJ0U3RvcmVCYXJyaWVyKToKKyAg
ICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXhJbnRFZGdlKToKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjppbmplY3RJbnQzMlRvRG91YmxlTm9kZSk6CisgICAgICAgIChKU0M6
OkRGRzo6Rml4dXBQaGFzZTo6YXR0ZW1wdFRvTWFrZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAg
KEpTQzo6REZHOjpGaXh1cFBoYXNlOjphZGRQaGFudG9tc0lmTmVjZXNzYXJ5KToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjppc0xpdmVJbkJ5
dGVjb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZnJhbWVSZWdpc3RlckNvdW50KToK
KyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6c3RhY2tQb2ludGVyT2Zmc2V0KToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKiBkZmcvREZHSklUQ29kZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6SklUQ29kZTo6c2V0T3B0aW1pemF0aW9uVGhyZXNob2xkQmFzZWRPbkNvbXBp
bGF0aW9uUmVzdWx0KToKKyAgICAgICAgKiBkZmcvREZHSklUQ29kZS5oOgorICAgICAgICAqIGRm
Zy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNv
bXBpbGVFbnRyeSk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNvbXBpbGVFeGNl
cHRpb25IYW5kbGVycyk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmxpbmspOgor
ICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpjb21waWxlKToKKyAgICAgICAgKEpTQzo6
REZHOjpKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuaDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6Y3VycmVudEpTQ2Fs
bEluZGV4KToKKyAgICAgICAgKiBkZmcvREZHSklURmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpKSVRGaW5hbGl6ZXI6OmNvZGVTaXplKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRG
aW5hbGl6ZXI6OmZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRGaW5hbGl6ZXI6OmZp
bmFsaXplRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpERkc6OkpJVEZpbmFsaXplcjo6ZmluYWxp
emVDb21tb24pOgorICAgICAgICAqIGRmZy9ERkdKSVRGaW5hbGl6ZXIuaDoKKyAgICAgICAgKiBk
ZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmlzU2VtYW50aWNhbGx5U2tp
cHBhYmxlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpkdW1wTm9kZUZsYWdzKToKKyAgICAgICAgKiBkZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5h
bHlzaXNQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSQXZhaWxhYmlsaXR5QW5hbHlz
aXNQaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHT1NSRW50cnkuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OnByZXBhcmVPU1JFbnRyeSk6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5cG9p
bnRDcmVhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFbnRyeXBvaW50Q3Jl
YXRpb25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdC5oOgorICAgICAgICAo
SlNDOjpERkc6Ok9TUkV4aXQ6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKToKKyAg
ICAgICAgKiBkZmcvREZHT1NSRXhpdEJhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4
aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3cpOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0QmFzZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4aXRCYXNlOjpj
b25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZSk6CisgICAgICAgICogZGZnL0RGR09TUkV4
aXRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAg
ICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
Ok9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0
Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAoSlNDOjpERkc6OmFkanVzdEFuZEp1bXBUb1Rh
cmdldCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9E
RkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpwcm9maWxlckNvbXBpbGF0aW9uS2luZEZv
ck1vZGUpOgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OlBsYW4pOgorICAgICAgICAoSlNDOjpE
Rkc6OlBsYW46OnJlcG9ydENvbXBpbGVUaW1lcyk6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6
Y29tcGlsZUluVGhyZWFkKToKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJl
YWRJbXBsKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5oOgorICAgICAgICAqIGRmZy9ERkdTU0FM
b3dlcmluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTU0FMb3dlcmluZ1BoYXNlOjpo
YW5kbGVOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpTU0FMb3dlcmluZ1BoYXNlOjpsb3dlckJv
dW5kc0NoZWNrKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3VycmVudEJsb2NrKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6cHJlcGFyZUpJVENvZGVGb3JUaWVyVXApOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheSk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckZs
b2F0VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVBcml0aE1vZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUZyYW1lT2Zmc2V0KToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlQXJndW1lbnRTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVUYWdTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVQYXlsb2FkU2xvdCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUFyZ3VtZW50VGFnU2xvdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3Qp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsZWVGcmFtZUNhbGxlckZy
YW1lKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVGllclVwQ2hlY2tJ
bmplY3Rpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6VGllclVwQ2hlY2tJbmplY3Rp
b25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHVmFsaWRhdGUuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlZhbGlkYXRlOjp2YWxpZGF0ZSk6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxERkdXb3JrbGlzdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCk6CisgICAgICAg
IChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6
OmV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwpOgorICAgICAgICAoSlNDOjpERkc6OmVu
c3VyZUdsb2JhbFdvcmtsaXN0Rm9yKToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAg
ICAgICAgKiBkaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHA6CisgICAgICAgIChKU0M6
OkFSTTY0RGlzYXNzZW1ibGVyOjpBNjRET3Bjb2RlOjphcHBlbmRSZWdpc3Rlck5hbWUpOgorICAg
ICAgICAoSlNDOjpBUk02NERpc2Fzc2VtYmxlcjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVy
UGFpcjo6b3BOYW1lKToKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2NERPcGNv
ZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OmZvcm1hdCk6CisgICAgICAgICogZGlzYXNzZW1ibGVy
L0FSTTY0L0E2NERPcGNvZGUuaDoKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2
NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OnJ0Mik6CisgICAgICAgIChKU0M6OkFSTTY0
RGlzYXNzZW1ibGVyOjpBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyOjppbW1lZGlhdGU3
KToKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2NERPcGNvZGVMb2FkU3RvcmVS
ZWdpc3RlclBhaXI6Om9mZnNldE1vZGUpOgorICAgICAgICAoSlNDOjpBUk02NERpc2Fzc2VtYmxl
cjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpcjo6bEJpdCk6CisgICAgICAgICogZnRs
L0ZUTEFiYnJldmlhdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6RlRMOjphcnJheVR5cGUpOgorICAg
ICAgICAoSlNDOjpGVEw6OmFkZFRhcmdldERlcGVuZGVudEZ1bmN0aW9uQXR0cik6CisgICAgICAg
ICogZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6SW5kZXhlZEFi
c3RyYWN0SGVhcDo6SW5kZXhlZEFic3RyYWN0SGVhcCk6CisgICAgICAgIChKU0M6OkZUTDo6SW5k
ZXhlZEFic3RyYWN0SGVhcDo6YmFzZUluZGV4KToKKyAgICAgICAgKEpTQzo6RlRMOjpJbmRleGVk
QWJzdHJhY3RIZWFwOjppbml0aWFsaXplKToKKyAgICAgICAgKEpTQzo6RlRMOjpOdW1iZXJlZEFi
c3RyYWN0SGVhcDo6TnVtYmVyZWRBYnN0cmFjdEhlYXApOgorICAgICAgICAoSlNDOjpGVEw6OkFi
c29sdXRlQWJzdHJhY3RIZWFwOjpBYnNvbHV0ZUFic3RyYWN0SGVhcCk6CisgICAgICAgICogZnRs
L0ZUTEFic3RyYWN0SGVhcC5oOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpBYnN0
cmFjdEhlYXBSZXBvc2l0b3J5KToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpGVEw6OkF2YWlsYWJsZVJlY292ZXJ5OjpkdW1wKToKKyAgICAgICAgKiBm
dGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6QXZh
aWxhYmxlUmVjb3Zlcnk6OkF2YWlsYWJsZVJlY292ZXJ5KToKKyAgICAgICAgKEpTQzo6RlRMOjpB
dmFpbGFibGVSZWNvdmVyeTo6bm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVj
b3Zlcnk6OmZvcm1hdCk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVjb3Zlcnk6Om9w
Y29kZSk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVjb3Zlcnk6OmxlZnQpOgorICAg
ICAgICAoSlNDOjpGVEw6OkF2YWlsYWJsZVJlY292ZXJ5OjpyaWdodCk6CisgICAgICAgICogZnRs
L0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6dmVyYm9zZUNhcGFiaWxp
dGllcyk6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TENvbW1vblZhbHVlcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Q29tbW9uVmFsdWVzOjpDb21t
b25WYWx1ZXMpOgorICAgICAgICAqIGZ0bC9GVExDb21tb25WYWx1ZXMuaDoKKyAgICAgICAgKiBm
dGwvRlRMQ29tcGlsZS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6bW1BbGxvY2F0ZUNvZGVTZWN0
aW9uKToKKyAgICAgICAgKEpTQzo6RlRMOjpmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMpOgor
ICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExFeGl0VmFsdWUu
Y3BwOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6ZHVtcEluQ29udGV4dCk6CisgICAg
ICAgICogZnRsL0ZUTEV4aXRWYWx1ZS5oOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6
cmVjb3ZlcnkpOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6aXNSZWNvdmVyeSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVlOjpsZWZ0UmVjb3ZlcnlBcmd1bWVudCk6CisgICAg
ICAgIChKU0M6OkZUTDo6RXhpdFZhbHVlOjpyaWdodFJlY292ZXJ5QXJndW1lbnQpOgorICAgICAg
ICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6cmVjb3ZlcnlGb3JtYXQpOgorICAgICAgICAoSlNDOjpG
VEw6OkV4aXRWYWx1ZTo6cmVjb3ZlcnlPcGNvZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRW
YWx1ZTo6d2l0aFZpcnR1YWxSZWdpc3Rlcik6CisgICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVl
Ojp2YWx1ZUZvcm1hdCk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2l6ZU9mQ2FsbCk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNh
Y2hlU2l6ZS5oOgorICAgICAgICAqIGZ0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5Lmg6CisgICAg
ICAgICogZnRsL0ZUTEpJVENvZGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENvZGU6Omlu
aXRpYWxpemVBcml0eUNoZWNrRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29k
ZTo6aW5pdGlhbGl6ZUFkZHJlc3NGb3JDYWxsKToKKyAgICAgICAgKEpTQzo6RlRMOjpKSVRDb2Rl
OjphZGRyZXNzRm9yQ2FsbCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6ZXhlY3V0YWJs
ZUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6ZGF0YUFkZHJl
c3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6b2Zmc2V0T2YpOgorICAg
ICAgICAoSlNDOjpGVEw6OkpJVENvZGU6OnNpemUpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENv
ZGU6OmNvbnRhaW5zKToKKyAgICAgICAgKiBmdGwvRlRMSklUQ29kZS5oOgorICAgICAgICAqIGZ0
bC9GVExKSVRGaW5hbGl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJVEZpbmFsaXplcjo6
Y29kZVNpemUpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5j
dGlvbik6CisgICAgICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGZ0bC9G
VExKU0NhbGwuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpKU0NhbGw6OkpTQ2FsbCk6
CisgICAgICAgIChKU0M6OkZUTDo6SlNDYWxsOjplbWl0KToKKyAgICAgICAgKEpTQzo6RlRMOjpK
U0NhbGw6OmxpbmspOgorICAgICAgICAqIGZ0bC9GVExKU0NhbGwuaDogQWRkZWQuCisgICAgICAg
IChKU0M6OkZUTDo6SlNDYWxsOjpzdGFja21hcElEKToKKyAgICAgICAgKEpTQzo6RlRMOjpKU0Nh
bGw6Om9wZXJhdG9yPCk6CisgICAgICAgICogZnRsL0ZUTExpbmsuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OmxpbmspOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06Omxvd2VyKToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2Vy
REZHVG9MTFZNOjpjb21waWxlQXJpdGhBZGRPclN1Yik6CisgICAgICAgIChKU0M6OkZUTDo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVBcml0aE11bCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVBcml0aERpdik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVBcml0aE1vZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVBcml0aFNpbik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmNvbXBpbGVBcml0aENvcyk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVBcml0aFNxcnQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQXJpdGhOZWdhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQ2hlY2tFeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
Y29tcGlsZUdldEJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlUHV0QnlJZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVH
ZXRBcnJheUxlbmd0aCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVQ
dXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOZXdB
cnJheVdpdGhTaXplKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZVRvU3RyaW5nKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU1h
a2VSb3BlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVN0cmlu
Z0NoYXJBdCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTdHJp
bmdDaGFyQ29kZUF0KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZUdldENhbGxlZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVH
ZXRTY29wZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDYWxs
T3JDb25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxl
U3dpdGNoKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNoZWNr
QXJndW1lbnRzTm90Q3JlYXRlZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmNvbXBpbGVDb3VudEV4ZWN1dGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OnR5cGVkQXJyYXlMZW5ndGgpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZN
Ojpib29saWZ5KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29udGlndW91
c1B1dEJ5VmFsT3V0T2ZCb3VuZHMpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZN
OjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxh
dGVTdHJpbmdPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpzcGVj
dWxhdGVTdHJpbmdPclN0cmluZ09iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OnNwZWN1bGF0ZVN0cmluZ09iamVjdEZvckNlbGwpOgorICAgICAgICAoSlNDOjpGVEw6
Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JTdHJ1Y3R1cmUpOgorICAg
ICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjYWxsQ2hlY2spOgorICAgICAgICAoSlND
OjpGVEw6Okxvd2VyREZHVG9MTFZNOjphcHBlbmRPU1JFeGl0KToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6YnVpbGRFeGl0QXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y2FsbFN0YWNrbWFwKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dl
ckRGR1RvTExWTTo6YWRkRXhpdEFyZ3VtZW50Rm9yTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6
TG93ZXJERkdUb0xMVk06OmRvZXNLaWxsKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1Rv
TExWTTo6YWRkQXZhaWxhYmxlUmVjb3ZlcnkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZH
VG9MTFZNOjpwYXlsb2FkRm9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
dGFnRm9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6YWRkcmVzc0Zvcik6
CisgICAgICAgICogZnRsL0ZUTE9TUkVudHJ5LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpwcmVw
YXJlT1NSRW50cnkpOgorICAgICAgICAqIGZ0bC9GVExPU1JFeGl0Lmg6CisgICAgICAgIChKU0M6
OkZUTDo6T1NSRXhpdDo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUpOgorICAgICAg
ICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBp
bGVTdHViKToKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6
T3V0cHV0Ojpkb3VibGVTaW4pOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlQ29z
KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OmRvdWJsZVNxcnQpOgorICAgICAgICAoSlND
OjpGVEw6Ok91dHB1dDo6cHRyVG9JbnQpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YXNj
cmliZVJhbmdlKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6Om5vbk5lZ2F0aXZlMzIpOgor
ICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6bG9hZDMyTm9uTmVnYXRpdmUpOgorICAgICAgICAq
IGZ0bC9GVExSZWNvdmVyeU9wY29kZS5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpwcmludElu
dGVybmFsKToKKyAgICAgICAgKiBmdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaDogQWRkZWQuCisgICAg
ICAgICogZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6
RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpkdW1wKToKKyAgICAgICAgKiBmdGwvRlRMUmVnaXN0ZXJB
dE9mZnNldC5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpS
ZWdpc3RlckF0T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0Ojpv
cGVyYXRvciEpOgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lzdGVyQXRPZmZzZXQ6Omdwcik6Cisg
ICAgICAgIChKU0M6OkZUTDo6UmVnaXN0ZXJBdE9mZnNldDo6b2Zmc2V0KToKKyAgICAgICAgKEpT
Qzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpvcGVyYXRvcj09KToKKyAgICAgICAgKEpTQzo6RlRM
OjpSZWdpc3RlckF0T2Zmc2V0OjpvcGVyYXRvcjwpOgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lz
dGVyQXRPZmZzZXQ6OmdldEdQUik6CisgICAgICAgICogZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6c3RvcmVDb2RlT3JpZ2luKToKKyAgICAgICAgKEpTQzo6RlRM
OjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBmdGwvRlRMU2xvd1BhdGhDYWxsLmg6CisgICAg
ICAgICogZnRsL0ZUTFN0YWNrTWFwcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6U3RhY2tNYXBz
OjpSZWNvcmQ6OnBhcnNlKToKKyAgICAgICAgKiBmdGwvRlRMU3RhY2tNYXBzLmg6CisgICAgICAg
ICogZnRsL0ZUTFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpTdGF0ZTo6U3RhdGUpOgor
ICAgICAgICAqIGZ0bC9GVExTdGF0ZS5oOgorICAgICAgICAqIGZ0bC9GVExUaHVua3MuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6Om9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpGVEw6OnNsb3dQYXRoQ2FsbFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKiBm
dGwvRlRMVGh1bmtzLmg6CisgICAgICAgICogZnRsL0ZUTFVud2luZEluZm8uY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6RlRMOjpVbndpbmRJbmZvOjpVbndpbmRJbmZvKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpVbndpbmRJbmZvOjp+VW53aW5kSW5mbyk6CisgICAgICAgIChKU0M6OkZUTDo6VW53
aW5kSW5mbzo6cGFyc2UpOgorICAgICAgICAoSlNDOjpGVEw6OlVud2luZEluZm86OmR1bXApOgor
ICAgICAgICAoSlNDOjpGVEw6OlVud2luZEluZm86OmZpbmQpOgorICAgICAgICAoSlNDOjpGVEw6
OlVud2luZEluZm86OmluZGV4T2YpOgorICAgICAgICAqIGZ0bC9GVExVbndpbmRJbmZvLmg6IEFk
ZGVkLgorICAgICAgICAqIGZ0bC9GVExWYWx1ZVJhbmdlLmNwcDogQWRkZWQuCisgICAgICAgIChK
U0M6OkZUTDo6VmFsdWVSYW5nZTo6ZGVjb3JhdGVJbnN0cnVjdGlvbik6CisgICAgICAgICogZnRs
L0ZUTFZhbHVlUmFuZ2UuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6VmFsdWVSYW5nZTo6
VmFsdWVSYW5nZSk6CisgICAgICAgIChKU0M6OkZUTDo6VmFsdWVSYW5nZTo6YmVnaW4pOgorICAg
ICAgICAoSlNDOjpGVEw6OlZhbHVlUmFuZ2U6OmVuZCk6CisgICAgICAgICogaGVhcC9Db25zZXJ2
YXRpdmVSb290cy5jcHA6CisgICAgICAgIChKU0M6OkNvbnNlcnZhdGl2ZVJvb3RzOjpnZW5lcmlj
QWRkU3Bhbik6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6
bWFya1Jvb3RzKToKKyAgICAgICAgKEpTQzo6SGVhcDo6Y29sbGVjdElmTmVjZXNzYXJ5T3JEZWZl
cik6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgIChKU0M6OkhlYXA6OmlzRGVmZXJy
ZWQpOgorICAgICAgICAqIGhlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcDoKKyAgICAgICAgKEpT
Qzo6TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGhyZWFkKToKKyAgICAgICAgKEpT
Qzo6TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21PdGhlclRocmVhZCk6CisgICAgICAgIChKU0M6
Ok1hY2hpbmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgICogaGVh
cC9NYWNoaW5lU3RhY2tNYXJrZXIuaDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUu
Y3BwOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnRvcE9mRnJhbWVJbnRlcm5hbCk6CisgICAg
ICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6
dG9wT2ZGcmFtZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAg
ICAgICAoSlNDOjpzaXplRnJhbWVGb3JWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6dW53aW5kQ2Fs
bEZyYW1lKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnVud2luZCk6CisgICAgICAgIChK
U0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4
ZWN1dGVDYWxsKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3Qp
OgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJlcGFyZUZvclJlcGVhdENhbGwpOgorICAg
ICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6CisgICAgICAgIChKU0M6Ok5hdGl2ZUNh
bGxGcmFtZVRyYWNlcjo6TmF0aXZlQ2FsbEZyYW1lVHJhY2VyKToKKyAgICAgICAgKiBpbnRlcnBy
ZXRlci9KU1N0YWNrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6SlNTdGFjayk6CisgICAg
ICAgIChKU0M6OkpTU3RhY2s6On5KU1N0YWNrKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6Z3Jv
d1Nsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6Z2F0aGVyQ29uc2VydmF0aXZlUm9v
dHMpOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpzYW5pdGl6ZVN0YWNrKToKKyAgICAgICAgKEpT
Qzo6SlNTdGFjazo6cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KToKKyAgICAgICAgKEpTQzo6SlNTdGFj
azo6c2V0UmVzZXJ2ZWRab25lU2l6ZSk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6Omxvd0FkZHJl
c3MpOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpoaWdoQWRkcmVzcyk6CisgICAgICAgIChKU0M6
OkpTU3RhY2s6OmNvbW1pdHRlZEJ5dGVDb3VudCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSlNT
dGFjay5oOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpjb250YWluc0FkZHJlc3MpOgorICAgICAg
ICAoSlNDOjpKU1N0YWNrOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6
OkpTU3RhY2s6OnNhbml0aXplU3RhY2spOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjppbml0aWFs
aXplVGhyZWFkaW5nKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6YmFzZU9mU3RhY2spOgorICAg
ICAgICAoSlNDOjpKU1N0YWNrOjpsb3dBZGRyZXNzKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6
cmVzZXJ2YXRpb25Ub3ApOgorICAgICAgICAqIGludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmg6
CisgICAgICAgIChKU0M6OkpTU3RhY2s6OmVuc3VyZUNhcGFjaXR5Rm9yKToKKyAgICAgICAgKEpT
Qzo6SlNTdGFjazo6dG9wT2ZGcmFtZUZvcik6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OnRvcE9m
U3RhY2spOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpzaHJpbmspOgorICAgICAgICAoSlNDOjpK
U1N0YWNrOjpncm93KToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6c2V0U3RhY2tMaW1pdCk6Cisg
ICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpQ
cm90b0NhbGxGcmFtZTo6aW5pdCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJh
bWUuaDoKKyAgICAgICAgKEpTQzo6UHJvdG9DYWxsRnJhbWU6OnNldFBhZGRlZEFyZ0NvdW50KToK
KyAgICAgICAgKiBqaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKEpTQzo6QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6OkFyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzKToKKyAgICAgICAgKEpTQzo6QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6On5B
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcyk6CisgICAgICAgIChKU0M6OkFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzOjpyZXR1cm5QQ3NGb3IpOgorICAgICAgICAoSlNDOjpBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rczo6cmV0dXJuUENGb3IpOgorICAgICAgICAqIGppdC9Bcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcy5oOiBBZGRlZC4KKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmNw
cDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5QbGFjZSk6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0QXJndW1lbnRDb3VudFNh
bmUpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNz
ZW1ibHlIZWxwZXJzOjpjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCk6CisgICAgICAgIChKU0M6
OkFzc2VtYmx5SGVscGVyczo6cHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSk6CisgICAgICAgIChK
U0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdEZ1bmN0aW9uUHJvbG9ndWUpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmVtaXRGdW5jdGlvbkVwaWxvZ3VlKToKKyAgICAgICAgKEpTQzo6
QXNzZW1ibHlIZWxwZXJzOjplbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZSk6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFB1dFBheWxvYWRUb0NhbGxGcmFt
ZUhlYWRlckJlZm9yZVByb2xvZ3VlKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpl
bWl0UHV0VGFnVG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZSk6CisgICAgICAgIChKU0M6
OkFzc2VtYmx5SGVscGVyczo6dGFnRm9yKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpwYXlsb2FkRm9yKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRU
YWdzSW5QbGFjZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0QXJn
dW1lbnRDb3VudFNhbmUpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAg
KEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50cyk6CisgICAgICAgICogaml0L0V4ZWN1
dGFibGVBbGxvY2F0b3IuaDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjayk6CisgICAgICAgIChKU0M6OkpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUp
OgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlRXhjZXB0aW9uSGFuZGxlcnMpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZvcik6CisgICAgICAgIChKU0M6
OkpJVDo6c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVMb2FkVmFy
YXJncyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUNhbGxFdmFsKToKKyAgICAgICAgKEpT
Qzo6SklUOjpjb21waWxlQ2FsbEV2YWxTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpJVDo6Y29t
cGlsZU9wQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKToK
KyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUNsb3N1cmVDYWxsKToKKyAgICAgICAg
KiBqaXQvSklUQ2FsbDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3JldCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29t
cGlsZUNhbGxFdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlQ2FsbEV2YWxTbG93Q2Fz
ZSk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbCk6CisgICAgICAgIChKU0M6OkpJ
VDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKToKKyAgICAgICAgKiBqaXQvSklUQ29kZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVENvZGU6OmV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0
aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZik6CisgICAgICAgIChKU0M6OkpJVENvZGVXaXRo
Q29kZVJlZjo6fkpJVENvZGVXaXRoQ29kZVJlZik6CisgICAgICAgIChKU0M6OkpJVENvZGVXaXRo
Q29kZVJlZjo6ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkpJVENv
ZGVXaXRoQ29kZVJlZjo6ZGF0YUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkpJVENv
ZGVXaXRoQ29kZVJlZjo6b2Zmc2V0T2YpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0aENvZGVS
ZWY6OnNpemUpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0aENvZGVSZWY6OmNvbnRhaW5zKToK
KyAgICAgICAgKEpTQzo6RGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZSk6CisgICAgICAgIChK
U0M6OkRpcmVjdEpJVENvZGU6On5EaXJlY3RKSVRDb2RlKToKKyAgICAgICAgKEpTQzo6RGlyZWN0
SklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVSZWYpOgorICAgICAgICAoSlNDOjpEaXJlY3RKSVRDb2Rl
OjplbnN1cmVXcmFwcGVycyk6CisgICAgICAgIChKU0M6OkRpcmVjdEpJVENvZGU6OmFkZHJlc3NG
b3JDYWxsKToKKyAgICAgICAgKEpTQzo6TmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZSk6Cisg
ICAgICAgIChKU0M6Ok5hdGl2ZUpJVENvZGU6On5OYXRpdmVKSVRDb2RlKToKKyAgICAgICAgKEpT
Qzo6TmF0aXZlSklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVSZWYpOgorICAgICAgICAoSlNDOjpOYXRp
dmVKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCk6CisgICAgICAgICogaml0L0pJVENvZGUuaDoKKyAg
ICAgICAgKiBqaXQvSklURXhjZXB0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmdlbmVyaWNVbndp
bmQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9yKToKKyAgICAgICAgKiBq
aXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUR2V0QnlJZEdl
bmVyYXRvcjo6SklUR2V0QnlJZEdlbmVyYXRvcik6CisgICAgICAgICogaml0L0pJVElubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0TmFrZWRDYWxsKToKKyAgICAgICAgKEpTQzo6SklU
OjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uTm9FeGNl
cHRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZW5kKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3JldCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfY2F0Y2gpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbG9v
cF9oaW50KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQpOgorICAg
ICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZh
dGVDb21waWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lbmQp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfY2F0Y2gpOgorICAgICAgICAqIGppdC9KSVRP
cGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAo
SlNDOjpvcGVyYXRpb25MaW5rRm9yKToKKyAgICAgICAgKEpTQzo6b3BlcmF0aW9uVmlydHVhbEZv
cik6CisgICAgICAgIChKU0M6Om9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbEZvcik6CisgICAgICAg
ICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQpOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpK
SVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV9pZCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQpOgorICAgICAgICAqIGppdC9KSVRT
dHViUm91dGluZS5oOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAgICAqIGppdC9K
SVRTdHVic01TVkM2NC5hc206CisgICAgICAgICogaml0L0pJVFN0dWJzWDg2Lmg6CisgICAgICAg
ICogaml0L0pJVFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZl
VGFpbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIpOgor
ICAgICAgICAqIGppdC9KSVRUaHVua3MuaDoKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJQcmVzZXJ2
YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OnJlZ2lzdGVy
c1RvUHJlc2VydmUpOgorICAgICAgICAoSlNDOjpyZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCk6
CisgICAgICAgIChKU0M6OmdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKToKKyAg
ICAgICAgKEpTQzo6Z2VuZXJhdGVSZWdpc3RlclJlc3RvcmF0aW9uKToKKyAgICAgICAgKEpTQzo6
cmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvUmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAqIGppdC9S
ZXBhdGNoLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVQcm90b0NoYWluQWNjZXNzU3R1Yik6
CisgICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OnRyeUJ1aWxk
R2V0QnlJRExpc3QpOgorICAgICAgICAoSlNDOjpzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKToK
KyAgICAgICAgKEpTQzo6d3JpdGVCYXJyaWVyKToKKyAgICAgICAgKEpTQzo6ZW1pdFB1dFJlcGxh
Y2VTdHViKToKKyAgICAgICAgKEpTQzo6ZW1pdFB1dFRyYW5zaXRpb25TdHViKToKKyAgICAgICAg
KEpTQzo6dHJ5UmVwYXRjaEluKToKKyAgICAgICAgKEpTQzo6bGlua1Nsb3dGb3IpOgorICAgICAg
ICAoSlNDOjpsaW5rRm9yKToKKyAgICAgICAgKEpTQzo6bGlua0Nsb3N1cmVDYWxsKToKKyAgICAg
ICAgKiBqaXQvUmVwYXRjaC5oOgorICAgICAgICAqIGppdC9TcGVjaWFsaXplZFRodW5rSklULmg6
CisgICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OlNwZWNpYWxpemVkVGh1bmtKSVQp
OgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRodW5rSklUOjpyZXR1cm5KU1ZhbHVlKToKKyAg
ICAgICAgKEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmV0dXJuRG91YmxlKToKKyAgICAgICAg
KEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmV0dXJuSW50MzIpOgorICAgICAgICAoSlNDOjpT
cGVjaWFsaXplZFRodW5rSklUOjpyZXR1cm5KU0NlbGwpOgorICAgICAgICAqIGppdC9UaHVua0dl
bmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjp0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1Bh
dGhHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpzbG93UGF0aEZvcik6CisgICAgICAgIChKU0M6
OmxpbmtGb3JUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmxpbmtDYWxsVGh1bmtHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpsaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OmxpbmtDbG9zdXJlQ2FsbEZvclRodW5rR2VuZXJhdG9yKToKKyAgICAg
ICAgKEpTQzo6bGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjps
aW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6dmlydHVhbEZvclRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6dmlydHVhbENh
bGxUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDb25zdHJ1Y3RUaHVua0dl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVu
a0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVz
UmVnc1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bmF0aXZlRm9yR2VuZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6bmF0aXZlVGFpbENhbGxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjph
cml0eUZpeHVwKToKKyAgICAgICAgKEpTQzo6Y2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6Y2hhckF0VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpmcm9tQ2hh
ckNvZGVUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnNxcnRUaHVua0dlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OmZsb29yVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpjZWls
VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpyb3VuZFRodW5rR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6ZXhwVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpsb2dUaHVua0dl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OmFic1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpT
Qzo6cG93VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjppbXVsVGh1bmtHZW5lcmF0b3Ip
OgorICAgICAgICAoSlNDOjphcnJheUl0ZXJhdG9yTmV4dFRodW5rR2VuZXJhdG9yKToKKyAgICAg
ICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgIChKU0M6OmxpbmtUaHVua0dlbmVy
YXRvckZvcik6CisgICAgICAgIChKU0M6OmxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yRm9y
KToKKyAgICAgICAgKEpTQzo6dmlydHVhbFRodW5rR2VuZXJhdG9yRm9yKToKKyAgICAgICAgKiBs
bGludC9MTEludENMb29wLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkNMb29wOjppbml0aWFs
aXplKToKKyAgICAgICAgKiBsbGludC9MTEludENMb29wLmg6CisgICAgICAgICogbGxpbnQvTExJ
bnREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25z
KToKKyAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9pbnQuY3BwOgorICAgICAgICAoSlNDOjpM
TEludDo6c2V0RnVuY3Rpb25FbnRyeXBvaW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldEV2
YWxFbnRyeXBvaW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldFByb2dyYW1FbnRyeXBvaW50
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZvcik6CisgICAgICAg
ICogbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcDoKKyAgICAgICAgKiBsbGludC9MTElu
dE9wY29kZS5oOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6TExJbnQ6
OmVudHJ5T1NSKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldFVwQ2FsbCk6CisgICAgICAgIChK
U0M6OkxMSW50OjpsbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvcik6CisgICAgICAgIChK
U0M6OkxMSW50OjpsbGludF9zdGFja19jaGVja19hdF92bV9lbnRyeSk6CisgICAgICAgICogbGxp
bnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKiBsbGludC9MTEludFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OmNhbGxUb0phdmFTY3JpcHQpOgorICAgICAgICAoSlNDOjpjYWxsVG9OYXRp
dmVGdW5jdGlvbik6CisgICAgICAgICogbGxpbnQvTExJbnRUaHVua3MuaDoKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q0xvb3BSZWdpc3Rlcjo6b3BlcmF0b3IgRXhl
Y1N0YXRlKik6CisgICAgICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIEluc3RydWN0
aW9uKik6CisgICAgICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFZNKik6CisgICAg
ICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFByb3RvQ2FsbEZyYW1lKik6CisgICAg
ICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFJlZ2lzdGVyKik6CisgICAgICAgIChK
U0M6OkNMb29wOjpleGVjdXRlKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206Cisg
ICAgICAgICogbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcDoKKyAgICAgICAgKGluaXRpYWxp
emVBbmRHZXRKU0NMTFZNQVBJKToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybS5yYjoKKyAgICAg
ICAgKiBvZmZsaW5lYXNtL2FybTY0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vY2xvb3AucmI6
CisgICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS94ODYucmI6CisgICAgICAgICogcGFyc2VyL1BhcnNlckVycm9yLmg6CisgICAgICAgIChK
U0M6OlBhcnNlckVycm9yOjp0b0Vycm9yT2JqZWN0KToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlckNvbXBpbGF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZXI6OkNvbXBpbGF0aW9u
OjphZGREZXNjcmlwdGlvbik6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlv
bi5oOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcDoKKyAg
ICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJD
b21waWxhdGlvbktpbmQuaDoKKyAgICAgICAgKiBydW50aW1lL0FyaXR5Q2hlY2tNb2RlLmg6IEFk
ZGVkLgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpT
Qzo6c2V0dXBBcml0eUNoZWNrRGF0YSk6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToK
KyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAoSlNDOjpDb21t
b25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JIYW5k
bGluZ1Njb3BlLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkVycm9ySGFuZGxpbmdTY29wZTo6
RXJyb3JIYW5kbGluZ1Njb3BlKToKKyAgICAgICAgKEpTQzo6RXJyb3JIYW5kbGluZ1Njb3BlOjp+
RXJyb3JIYW5kbGluZ1Njb3BlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySGFuZGxpbmdTY29w
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAg
ICAgICAoSlNDOjp0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcik6CisgICAgICAgIChKU0M6OnRocm93
VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbik6CisgICAgICAgICogcnVudGltZS9FeGVjdXRh
YmxlLmNwcDoKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUpOgor
ICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQmFzZTo6ZHVtcCk6CisgICAgICAgICogcnVudGltZS9F
eGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVCYXNlOjplbnRyeXBvaW50Rm9y
KToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6Om9mZnNldE9mSklUQ29kZVdpdGhBcml0
eUNoZWNrRm9yKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKToKKyAg
ICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxMb2Nrcyk6CisgICAgICAg
IChKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzOjp+RHJvcEFsbExvY2tzKToKKyAgICAgICAgKiBy
dW50aW1lL0pTTG9jay5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoK
KyAgICAgICAgKEpTQzo6cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgIChKU0M6
Ok9wdGlvbnM6OmluaXRpYWxpemUpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjpzZXRPcHRpb24p
OgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Nb2RlLmg6IEFkZGVkLgorICAgICAgICAqIHJ1bnRpbWUvU3RhY2tBbGln
bm1lbnQuaDoKKyAgICAgICAgKEpTQzo6cm91bmRBcmd1bWVudENvdW50VG9BbGlnbkZyYW1lKToK
KyAgICAgICAgKEpTQzo6cm91bmRMb2NhbFJlZ2lzdGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZz
ZXQpOgorICAgICAgICAoSlNDOjpsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVycyk6CisgICAgICAg
ICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcDoKKyAgICAgICAgKEpTQzo6U3Ry
aW5nUmVjdXJzaW9uQ2hlY2tlcjo6dGhyb3dTdGFja092ZXJmbG93RXJyb3IpOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpkdW1wKToK
KyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAg
ICAgKEpTQzo6Y2xlYW5Xb3JrbGlzdCk6CisgICAgICAgIChKU0M6OlZNOjp+Vk0pOgorICAgICAg
ICAoSlNDOjpWTTo6Z2V0SG9zdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6cHJlcGFyZVRvRGlz
Y2FyZENvZGVGb3IpOgorICAgICAgICAoSlNDOjpWTTo6cHJlcGFyZVRvRGlzY2FyZENvZGUpOgor
ICAgICAgICAoSlNDOjpWTTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAoSlNDOjpWTTo6dXBk
YXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKToKKyAgICAgICAgKEpTQzo6bG9nU2Fu
aXRpemVTdGFjayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6
cmVzZXJ2ZWRab25lU2l6ZSk6CisgICAgICAgIChKU0M6OlZNOjpsYXN0U3RhY2tUb3ApOgorICAg
ICAgICAoSlNDOjpWTTo6c2V0TGFzdFN0YWNrVG9wKToKKyAgICAgICAgKEpTQzo6Vk06OnNjcmF0
Y2hCdWZmZXJGb3JTaXplKToKKyAgICAgICAgKEpTQzo6Vk06OnNldFN0YWNrTGltaXQpOgorICAg
ICAgICAoSlNDOjpzYW5pdGl6ZVN0YWNrRm9yVk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk1FbnRy
eVNjb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUpOgor
ICAgICAgICAoSlNDOjpWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUpOgorICAgICAgICAqIHJ1
bnRpbWUvVk1FbnRyeVNjb3BlLmg6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2FkZC1jb25zdGFu
dC1vdmVyZmxvdy1yZWNvdmVyeS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanM6IEFk
ZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvYWRkLWludDUyLWxh
cmdlLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2FkZC1vdmVyZmxvdy1yZWNvdmVyeS5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9hZGQtc21hbGwtY29uc3Rh
bnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KiB0ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9lbXB0eS1mdW5jdGlvbi5qczogQWRkZWQuCisgICAgICAgIChm
b28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDMyLXRvLWRvdWJsZS5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9leGl0LWFm
dGVyLWludDUyLXRvLWRvdWJsZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChtYWtlV2VpcmRPYmplY3QpOgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9leGl0LWFmdGVyLWxsdm0tZm9sZHMtbGFyZ2UtaW50LWNvbnN0YW50LmpzOiBBZGRlZC4K
KyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2V4aXQtZnJvbS1mdGwtd2l0
aC1hcml0eS1jaGVjay1mYWlsLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChi
YXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtYXJpdGhjb3MuanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc2luLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLXB1
dGJ5aWQuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVj
dC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQt
YnktaWQtdGhyb3ctZnJvbS1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorICAgICAgICAobWFrZVdpdGhHZXR0ZXIucmV0dXJuKToKKyAgICAg
ICAgKG1ha2VXaXRoR2V0dGVyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRo
cm93LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS10aGF0LWRv
ZXMtbm90LWV4aXQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKG1ha2VXaXRo
R2V0dGVyLnJldHVybik6CisgICAgICAgIChtYWtlV2l0aEdldHRlcik6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gt
b3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKG1ha2VX
aXRoR2V0dGVyLnJldHVybik6CisgICAgICAgIChtYWtlV2l0aEdldHRlcik6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL2ljLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFyYXJn
cy1hbmQtY2FsbC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAg
ICAgICAgKGJheik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3Mu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXop
OgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpzOiBBZGRlZC4K
KyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwt
aW4tYW5kLW91dC1vZi1ib3VuZHMuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWJvdW5k
cy10aGVuLWV4aXQtb3V0LW9mLWJvdW5kcy5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0
LW9mLWJvdW5kcy1ib3VuZHMtdGhlbi1kby1pbi1ib3VuZHMuanM6IEFkZGVkLgorICAgICAgICAo
Zm9vKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbnZhbGlkYXRp
b24tcG9pbnQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKFRoaW5neSk6Cisg
ICAgICAgIChUaGluZ3kucHJvdG90eXBlLmYpOgorICAgICAgICAocG9zc2libHlEb0JhZFRoaW5n
cy5UaGluZ3kucHJvdG90eXBlLmYpOgorICAgICAgICAocG9zc2libHlEb0JhZFRoaW5ncyk6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0yLmpzOiBBZGRlZC4KKyAgICAgICAgKGZv
byk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0zLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL25ldy1hcnJheS1zdG9yYWdlLWFycmF5
LXdpdGgtc2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL25ldy1hcnJheS13aXRoLXNpemUtd2l0aC1iYWQtdGltZS5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXctY29u
dGlndW91cy1hcnJheS13aXRoLXNpemUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXctZG91YmxlLWFycmF5LXdpdGgt
c2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL25ldy1pbnQzMi1hcnJheS13aXRoLXNpemUuanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXct
dW5kZWNpZGVkLWFycmF5LXdpdGgtc2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC10aHJvdy10aHJv
dWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL3JlY3Vyc2UtaW5maW5pdGVseS1vbi1nZXR0ZXIuanM6IEFkZGVkLgorICAg
ICAgICAoLnZhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3JlcGVhdGVkLWFyaXR5LWNoZWNr
LWZhaWwuanM6IEFkZGVkLgorICAgICAgICAoYmFyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
cnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAgICAg
KGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW1wbGUtcG9s
eXZhcmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgIChmdXp6KToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXoxKToKKyAgICAg
ICAgKGJhejIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtZ2V0
LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKGZ1enopOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvc2ltcGxl
LXBvbHl2YXJpYW50LXB1dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChmdXp6KToKKyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgorICAgICAg
ICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3RvLXN0cmlu
Zy1vbi1vYmplY3Qtb3Itc3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKEZvbyk6CisgICAgICAg
IChGb28ucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3QuanM6IEFkZGVkLgorICAgICAgICAoRm9vKToK
KyAgICAgICAgKEZvby5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKiB0ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vYmplY3QuanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmlu
Zy1vci1zdHJpbmctb2JqZWN0LXRoZW4tb2JqZWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgIChGb28pOgorICAgICAgICAoRm9vLnByb3RvdHlwZS50b1N0cmluZyk6CisgICAg
ICAgICogdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy90by1zdHJp
bmctb24tdmFsdWUtb3Itc3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS5qczogQWRkZWQuCisgICAgICAgIChm
b28pOgorCiAyMDE0LTAxLTI3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ1JBU0ggd2hlbiBkZWJ1Z2dlciBjbG9zZXMgcmVt
b3RlIGluc3BlY3RpbmcgSlNDb250ZXh0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI1NSw2ICsyNTUsNyBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfU09VUkNFUwogICAgIGludGVycHJldGVyL1ZNSW5zcGVjdG9yLmNwcAogCiAgICAgaml0
L0Fzc2VtYmx5SGVscGVycy5jcHAKKyAgICBqaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
Y3BwCiAgICAgaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCiAgICAgaml0L0V4ZWN1dGFi
bGVBbGxvY2F0b3IuY3BwCiAgICAgaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5j
cHAKQEAgLTI3OCw2ICsyNzksNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGpp
dC9KSVRTdHVicy5jcHAKICAgICBqaXQvSklUVGh1bmtzLmNwcAogICAgIGppdC9KSVRUb0RGR0Rl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKKyAgICBqaXQvUmVnaXN0ZXJQcmVzZXJ2YXRp
b25XcmFwcGVyR2VuZXJhdG9yLmNwcAogICAgIGppdC9SZWdpc3RlclNldC5jcHAKICAgICBqaXQv
UmVwYXRjaC5jcHAKICAgICBqaXQvVGVtcFJlZ2lzdGVyU2V0LmNwcApAQCAtMzQwLDYgKzM0Miw3
IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgcnVudGltZS9EdW1wQ29udGV4dC5j
cHAKICAgICBydW50aW1lL0Vycm9yLmNwcAogICAgIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKKyAgICBydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAKICAgICBydW50aW1lL0Vycm9y
SW5zdGFuY2UuY3BwCiAgICAgcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKICAgICBydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTkxLDYgKzkxLDcgQEAgamF2
YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL1JlcGF0Y2hCdWZmZXIuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9TSDRBc3NlbWJsZXIuaCBcCkBAIC02OTEsNiArNjkyLDggQEAgamF2
YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL1ZNSW5zcGVjdG9yLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L1ZNSW5zcGVjdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZVBy
ZWZpeC5oIFwKKyAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzLmggXAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggXApAQCAtNzQ0
LDYgKzc0Nyw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIFwKKyAgICBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIFwKKyAgICBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRv
ci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAgXApAQCAtOTA0LDYgKzkwOSw4IEBAIGphdmFzY3JpcHRj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29u
c3RydWN0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JQcm90b3R5cGUuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUub3JkZXIJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtNDk4MSw3ICs0OTgx
LDYgQEAgX2xsaW50X3Nsb3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIKIF9sbGludF9zbG93
X3BhdGhfZGVidWcKIF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwKIF9sbGludF9z
bG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbAotX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2NhbGwK
IF9sbGludF9iZWdpbgogX2xsaW50X3Byb2dyYW1fcHJvbG9ndWUKIF9sbGludF9ldmFsX3Byb2xv
Z3VlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU4OSw2ICs1ODksNyBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxEdW1wQ29udGV4dC5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JDb25zdHJ1Y3Rvci5jcHAiIC8+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvclByb3RvdHlwZS5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEV4Y2VwdGlvbkhlbHBl
cnMuY3BwIiAvPgpAQCAtNzkxLDYgKzc5Miw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxhc3NlbWJsZXJcTWFjcm9Bc3NlbWJsZXJYODYuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGFzc2VtYmxlclxNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1hY3JvQXNzZW1ibGVyWDg2XzY0LmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwuaCAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXFJlcGF0
Y2hCdWZmZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxYODZB
c3NlbWJsZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXFNjcmlw
dEZ1bmN0aW9uQ2FsbC5oIiAvPgpAQCAtMTIwNCw2ICsxMjA2LDcgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRHVtcENvbnRleHQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcRXJyb3JDb25zdHJ1Y3Rvci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JJbnN0YW5jZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxFcnJvclByb3RvdHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxFeGNlcHRpb25IZWxwZXJzLmgiIC8+CkBAIC0xNDA2LDIyICsxNDA5LDYg
QEAKICAgICAgIDxGaWxlVHlwZT5Eb2N1bWVudDwvRmlsZVR5cGU+CiAgICAgPC9Ob25lPgogICA8
L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8TUFTTSBJbmNsdWRlPSIuLlxqaXRcSklU
U3R1YnNNU1ZDNjQuYXNtIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KLSAgICA8L01BU00+Ci0gIDwvSXRlbUdyb3VwPgogICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgogICA8SW1wb3J0
R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChW
Q1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6YXRpb25zXG1hc20udGFyZ2V0cyIgLz4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAt
NTM3LDYgKzUzNyw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9y
Q29uc3RydWN0b3IuY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckhhbmRs
aW5nU2NvcGUuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckluc3RhbmNl
LmNwcCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
QEAgLTE0NDIsNiArMTQ0NSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJs
ZXJcTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCI+CiAgICAgICA8RmlsdGVyPmFzc2VtYmxlcjwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1i
bGVyXE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiPgorICAgICAgPEZpbHRlcj5hc3Nl
bWJsZXI8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGFzc2VtYmxlclxSZXBhdGNoQnVmZmVyLmgiPgogICAgICAgPEZpbHRlcj5hc3NlbWJsZXI8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTIxMjksNiArMjEzNSw5IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yQ29uc3RydWN0b3IuaCI+CiAgICAgICA8
RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiPgorICAgICAgPEZpbHRl
cj5ydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTMyOTUsOSArMzMwNCw0IEBACiAgICAgPE5v
bmUgSW5jbHVkZT0iSmF2YVNjcmlwdENvcmVQb3N0QnVpbGQuY21kIiAvPgogICAgIDxOb25lIElu
Y2x1ZGU9IkphdmFTY3JpcHRDb3JlUHJlQnVpbGQuY21kIiAvPgogICA8L0l0ZW1Hcm91cD4KLSAg
PEl0ZW1Hcm91cD4KLSAgICA8TUFTTSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YnNNU1ZDNjQuYXNt
Ij4KLSAgICAgIDxGaWx0ZXI+aml0PC9GaWx0ZXI+Ci0gICAgPC9NQVNNPgotICA8L0l0ZW1Hcm91
cD4KIDwvUHJvamVjdD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjEwLDYgKzIxMCw3IEBACiAJ
CTBGMzhCMDE5MTdDRkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzOEIwMTUxN0NGRTc1
NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uTW9kZS5jcHAgKi87IH07CiAJCTBGMzhCMDFBMTdD
RkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzhCMDE2MTdDRkU3NTUwMEIxNDREMyAvKiBE
RkdDb21waWxhdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjNBQzc1MjE4M0VBMTA0MDAzMjAyOUYgLyogU3RhY2tBbGlnbm1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0FDNzUx
MTgzRUExMDQwMDMyMDI5RiAvKiBTdGFja0FsaWdubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGM0FDNzU0MTg4RTVFQzgwMDMyMDI5RiAv
KiBFeGl0aW5nSklUVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYzQUM3NTMxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzQjNBMUEx
NTNFNjhGMjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0IzQTE3MTUzRTY4RUYwMDNF
RDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgKi87IH07CiAJCTBGM0IzQTFCMTUz
RTY4RjQwMDNFRDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzQjNBMTgxNTNFNjhFRjAwM0VEMEZG
IC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzQjNBMjcxNTQ0Qzk5NTAwM0VEMEZGIC8qIERGR0NG
R1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYzQjNBMjQxNTQ0Qzk5MTAwM0VEMEZGIC8qIERGR0NGR1NpbXBsaWZp
Y2F0aW9uUGhhc2UuY3BwICovOyB9OwpAQCAtMjM2LDYgKzIzNywxMCBAQAogCQkwRjQ2ODBENTE0
QkJEMjRCMDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8q
IEhvc3RDYWxsUmV0dXJuVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjQ4NTMyMTE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2Rl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1
MzFGMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuY3BwICovOyB9OwogCQkwRjQ4NTMy
MjE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMyMDE4Nzc1MDU2MDA4M0I2ODcgLyogREZH
QXJpdGhNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMEY0ODUzMjcxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzIz
MTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5jcHAgKi87IH07CisJCTBG
NDg1MzI4MTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjQxODdERkRFQzAw
ODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY0ODUzMjkxODdERkRFQzAwODNCNjg3IC8qIEZU
TFJlY292ZXJ5T3Bjb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNDg1MzI1MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5j
cHAgKi87IH07CisJCTBGNDg1MzJBMTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUz
MjYxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0OTNBRkExNkQwQ0FEMzAwODQ1
MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNDkzQUY4MTZEMENBRDEwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRl
ci5jcHAgKi87IH07CiAJCTBGNEI5NERDMTdCOUYwNzUwMEREMDNBNCAvKiBUeXBlZEFycmF5SW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0
Qjk0REIxN0I5RjA3NTAwREQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1NTQxQjExNjEzQzFGQjAw
Q0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTU0MUFGMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9p
bnRlci5jcHAgKi87IH07CkBAIC0yNDgsNiArMjUzLDggQEAKIAkJMEY1NkExRDUxNTAwMUNGNDAw
Mjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4ZWN1dGlv
bkNvdW50ZXIuY3BwICovOyB9OwogCQkwRjU3MkQ0RjE2ODc5RkREMDBFNTdGQkQgLyogVGh1bmtH
ZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUE1MkQwMTdBREQ3MTcw
MDhFQ0IyRCAvKiBDb3B5VG9rZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNUE1MkNGMTdBREQ3MTcwMDhFQ0IyRCAvKiBDb3B5VG9rZW4uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjVBNjI4MzE4
OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVBNjI4MTE4OEM5OEQ0MDA3MkM5REYgLyogRlRM
VmFsdWVSYW5nZS5jcHAgKi87IH07CisJCTBGNUE2Mjg0MTg4Qzk4RDQwMDcyQzlERiAvKiBGVExW
YWx1ZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjVBNjI4MjE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUVGOTFFMTY4NzhGN0Ew
MDNFNUMyNSAvKiBKSVRUaHVua3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY1RUY5MUIxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAg
Ki87IH07CiAJCTBGNUVGOTFGMTY4NzhGN0QwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFDMTY4NzhGNzgw
MDNFNUMyNSAvKiBKSVRUaHVua3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjVGMDhDRjE0NkM3NjMzMDAwNDcyQTkgLyogVW5jb25kaXRpb25h
bEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY1RjA4Q0UxNDZDNzYyRjAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjY5LDYg
KzI3NiwxOCBAQAogCQkwRjY2NkVDRDE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9u
Rm9yVmFsaWRhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9y
VmFsaWRhdGlvblBoYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY2NkUxNkIxNERGM0YxNjAwQjdCMkU0IC8qIERGR0FkamFjZW5jeUxpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjZFMTY4
MTRERjNGMTMwMEI3QjJFNCAvKiBERkdBZGphY2VuY3lMaXN0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2NkUxNkMxNERGM0YxNjAwQjdCMkU0
IC8qIERGR0VkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNjZFMTY5MTRERjNGMTMwMEI3QjJFNCAvKiBERkdFZGdlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQjUxODVGQzlFOTAwODQ1
RDk3IC8qIEZUTEpTQ2FsbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjZCMUNCMzE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCAqLzsg
fTsKKwkJMEY2QjFDQjYxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQjQxODVGQzlFOTAwODQ1
RDk3IC8qIEZUTEpTQ2FsbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTBGNkIxQ0I5MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQjcx
ODYxMjQ0QzAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQkExODYxMjQ0QzAwODQ1RDk3IC8q
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQjgxODYxMjQ0QzAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTBGNkIxQ0JEMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlv
bldyYXBwZXJHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY2QjFDQkIxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0
aW9uV3JhcHBlckdlbmVyYXRvci5jcHAgKi87IH07CisJCTBGNkIxQ0JFMTg2MTI0NkEwMDg0NUQ5
NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0JDMTg2MTI0NkEwMDg0NUQ5
NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjZCMUNDMzE4NjJDNDc4MDA4
NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCRjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVn
aXN0ZXJBdE9mZnNldC5jcHAgKi87IH07CisJCTBGNkIxQ0M0MTg2MkM0NzgwMDg0NUQ5NyAvKiBG
VExSZWdpc3RlckF0T2Zmc2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjZCMUNDMDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNl
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBG
NkIxQ0M1MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0MxMTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExVbndpbmRJbmZvLmNwcCAqLzsgfTsKKwkJMEY2QjFDQzYxODYyQzQ3ODAwODQ1RDk3
IC8qIEZUTFVud2luZEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNkIxQ0MyMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQzkx
ODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0M3MTg2NDFERjgw
MDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgKi87IH07CisJCTBGNkIx
Q0NBMTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQzgxODY0MURG
ODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3MDI1QTkxNzE0QjBGQTAwMzgy
QzBFIC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjcwMjVBNzE3MTRCMEY4MDAzODJDMEUgLyogREZH
T1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcCAqLzsgfTsKIAkJMEY3MDI1QUExNzE0QjBGQzAwMzgy
QzBFIC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3MDI1QTgxNzE0QjBGODAwMzgyQzBFIC8qIERGR09T
UkV4aXRDb21waWxlckNvbW1vbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGNzE0Q0E0MTZFQTkyRjAwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQ
cm9wYWdhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNzE0Q0ExMTZFQTkyRUQwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9wYWdh
dGlvblBoYXNlLmNwcCAqLzsgfTsKQEAgLTEzNDYsNiArMTM2NSw4IEBACiAJCUZFNTkzMkE4MTgz
QzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNTkzMkE2MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5
U2NvcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGRUEwODYyMDE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVBMDg2MUUxODJCN0EwNDAwRjZEODUx
IC8qIEJyZWFrcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlGRUEwODYyMTE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUEwODYx
RjE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkVCNThDMTQxODdCOEIxNjAwOThF
RjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRUI1OEMxMjE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5k
bGluZ1Njb3BlLmNwcCAqLzsgfTsKKwkJRkVCNThDMTUxODdCOEIxNjAwOThFRjBCIC8qIEVycm9y
SGFuZGxpbmdTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkVCNThDMTMxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFRDI4N0Iy
MTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50
T3Bjb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRkVEOTRGMkUxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDk0RjJCMTcxRTNFMjMwMEJFNzdB
NCAvKiBXYXRjaGRvZy5jcHAgKi87IH07CiAJCUZFRDk0RjJGMTcxRTNFMjMwMEJFNzdBNCAvKiBX
YXRjaGRvZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkVEOTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE2MDUsNiArMTYyNiw3IEBACiAJCTBG
MzhCMDE1MTdDRkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQ29tcGlsYXRpb25Nb2RlLmNwcDsgcGF0
aCA9IGRmZy9ERkdDb21waWxhdGlvbk1vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjM4QjAxNjE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0NvbXBpbGF0aW9uTW9kZS5oOyBwYXRo
ID0gZGZnL0RGR0NvbXBpbGF0aW9uTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjNBQzc1MTE4M0VBMTA0MDAzMjAyOUYgLyogU3RhY2tBbGlnbm1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhY2tBbGlnbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEYzQUM3NTMxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4aXRpbmdKSVRUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0IzQTE3MTUzRTY4RUYwMDNFRDBGRiAvKiBE
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA7IHBhdGggPSBkZmcvREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNCM0Ex
ODE1M0U2OEVGMDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaDsgcGF0aCA9
IGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjNCM0EyNDE1NDRDOTkxMDAzRUQwRkYgLyogREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdDRkdTaW1wbGlm
aWNhdGlvblBoYXNlLmNwcDsgcGF0aCA9IGRmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MzIsNiArMTY1NCwxMCBAQAogCQkw
RjQ2ODBEMTE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIb3N0Q2FsbFJldHVyblZhbHVlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDg1MzFGMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0
aE1vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQXJpdGhN
b2RlLmNwcDsgcGF0aCA9IGRmZy9ERkdBcml0aE1vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjQ4NTMyMDE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0FyaXRoTW9kZS5oOyBwYXRoID0gZGZn
L0RGR0FyaXRoTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ4NTMyMzE4
N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwOyBwYXRoID0g
ZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEY0ODUzMjQxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5Lmg7IHBh
dGggPSBmdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEY0ODUzMjUxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFJlY292ZXJ5T3Bjb2RlLmNw
cDsgcGF0aCA9IGZ0bC9GVExSZWNvdmVyeU9wY29kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGNDg1MzI2MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExSZWNvdmVyeU9wY29kZS5oOyBw
YXRoID0gZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGNDkzQUY4MTZEMENBRDEwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VQcm92aWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNEI5NERCMTdCOUYwNzUwMEREMDNBNCAvKiBUeXBl
ZEFycmF5SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlZEFy
cmF5SW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU1NDFBRjE2MTND
MUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlY2lhbFBvaW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY0NCw2ICsxNjcwLDggQEAKIAkJMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8q
IEV4ZWN1dGlvbkNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRXhlY3V0aW9uQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUaHVua0dlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjVBNTJDRjE3QURENzE3MDA4RUNCMkQgLyogQ29weVRva2VuLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcHlUb2tlbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjVBNjI4MTE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExWYWx1ZVJhbmdlLmNw
cDsgcGF0aCA9IGZ0bC9GVExWYWx1ZVJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEY1QTYyODIxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMVmFsdWVSYW5nZS5oOyBwYXRoID0gZnRsL0ZU
TFZhbHVlUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RUY5MUIxNjg3
OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKSVRUaHVua3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjVFRjkxQzE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpJVFRodW5rcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjVGMDhDRTE0NkM3NjJGMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjY1LDYgKzE2OTMsMTggQEAKIAkJMEY2
NjZFQ0IxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFz
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdSZXN1cnJlY3Rpb25Gb3JW
YWxpZGF0aW9uUGhhc2UuaDsgcGF0aCA9IGRmZy9ERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9u
UGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2NkUxNjgxNERGM0YxMzAw
QjdCMkU0IC8qIERGR0FkamFjZW5jeUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gREZHQWRqYWNlbmN5TGlzdC5oOyBwYXRoID0gZGZnL0RGR0FkamFjZW5jeUxpc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2NkUxNjkxNERGM0YxMzAwQjdCMkU0IC8q
IERGR0VkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRWRnZS5oOyBw
YXRoID0gZGZnL0RGR0VkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFD
QjMxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBGVExKU0NhbGwuY3BwOyBwYXRoID0gZnRsL0ZUTEpTQ2FsbC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0I0MTg1RkM5RTkwMDg0NUQ5NyAv
KiBGVExKU0NhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMSlNDYWxs
Lmg7IHBhdGggPSBmdGwvRlRMSlNDYWxsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNkIxQ0I3MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBcml0eUNoZWNrTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjZCMUNCODE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lzdGVyUHJl
c2VydmF0aW9uTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCQjE4
NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZ2lzdGVyUHJlc2VydmF0
aW9uV3JhcHBlckdlbmVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
NkIxQ0JDMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5l
cmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0ZXJQcmVzZXJ2
YXRpb25XcmFwcGVyR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
NkIxQ0JGMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwOyBw
YXRoID0gZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjZCMUNDMDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExSZWdpc3RlckF0T2Zmc2V0Lmg7
IHBhdGggPSBmdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjZCMUNDMTE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExVbndpbmRJbmZvLmNwcDsgcGF0
aCA9IGZ0bC9GVExVbndpbmRJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MEY2QjFDQzIxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMVW53aW5kSW5mby5oOyBwYXRoID0gZnRsL0ZUTFVud2lu
ZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQzcxODY0MURGODAw
ODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQzgxODY0MURGODAwODQ1RDk3IC8qIEFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGNzAyNUE3MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21t
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjcwMjVBODE3MTRCMEY4MDAzODJDMEUg
LyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR09TUkV4aXRDb21waWxlckNvbW1vbi5oOyBwYXRoID0gZGZnL0RGR09TUkV4aXRD
b21waWxlckNvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjcxNENBMTE2
RUE5MkVEMDBGM0VCRUIgLyogREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBo
YXNlLmNwcDsgcGF0aCA9IGRmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMTYsNiArMjE1Niw3IEBACiAJCTY1NjBBNENG
MDRCM0IzRTcwMDhBRTk1MiAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
bmFtZSA9IENvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0NvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1
dGU+IjsgfTsKIAkJNjU2MjFFNkIwODlFODU5NzAwNzYwRjM1IC8qIFByb3BlcnR5U2xvdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
cm9wZXJ0eVNsb3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07
CiAJCTY1NjIxRTZDMDg5RTg1OTcwMDc2MEYzNSAvKiBQcm9wZXJ0eVNsb3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvcGVydHlTbG90Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJNjU4NjAxNzcxODVB
OEY1RTAwMDMwRUVFIC8qIE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1OTg3RjJDMTY3RkU4NEIwMDNDMkY4RCAv
KiBERkdPU1JFeGl0Q29tcGlsYXRpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR09TUkV4aXRDb21waWxhdGlvbkluZm8uaDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0
Q29tcGlsYXRpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1OTg3RjJG
MTY4MjhBN0UwMDNDMkY4RCAvKiBVbnVzZWRQb2ludGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFVudXNlZFBvaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNjVDMDI4NEYxNzE3OTVFMjAwMzUxRTM1IC8qIEFSTXY3RGlzYXNzZW1ibGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFSTXY3RGlzYXNzZW1ibGVyLmNwcDsg
cGF0aCA9IGRpc2Fzc2VtYmxlci9BUk12N0Rpc2Fzc2VtYmxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzgzLDYgKzI4MjQsOCBAQAogCQlGRTU5MzJBNjE4M0M1QTI2MDBB
MUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZNRW50cnlTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUEwODYxRTE4
MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQTA4
NjFGMTgyQjdBMDQwMEY2RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2ZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGVidWdnZXJQcmltaXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUZFQjU4QzEyMTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5n
U2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXJyb3JIYW5k
bGluZ1Njb3BlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVCNThDMTMxODdC
OEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBFcnJvckhhbmRsaW5nU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRkVEMjg3QjExNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50T3Bjb2RlLmg7IHBhdGggPSBsbGludC9M
TEludE9wY29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5NEYyQjE3MUUz
RTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2F0Y2hkb2cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQ5
NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2F0Y2hkb2cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMw
MDEsNiArMzA0NCw4IEBACiAJCQkJMEZFQTBBMTgxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3Ry
YWN0SGVhcC5oICovLAogCQkJCTBGRUEwQTE5MTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5LmNwcCAqLywKIAkJCQkwRkVBMEExQTE3MDhCMDA3MDBCQjcyMkMgLyog
RlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oICovLAorCQkJCTBGNDg1MzIzMTg3REZERUMwMDgz
QjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5jcHAgKi8sCisJCQkJMEY0ODUzMjQxODdERkRF
QzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmggKi8sCiAJCQkJMEZFQTA5RkUxNzA1
MTNEQjAwQkI3MjJDIC8qIEZUTENhcGFiaWxpdGllcy5jcHAgKi8sCiAJCQkJMEZFQTA5RkYxNzA1
MTNEQjAwQkI3MjJDIC8qIEZUTENhcGFiaWxpdGllcy5oICovLAogCQkJCTBGRUEwQTI1MTcwOTYy
M0IwMEJCNzIyQyAvKiBGVExDb21tb25WYWx1ZXMuY3BwICovLApAQCAtMzAzMSw2ICszMDc2LDgg
QEAKIAkJCQkwRkVBMEEwMzE3MDUxM0RCMDBCQjcyMkMgLyogRlRMSklUQ29kZS5oICovLAogCQkJ
CUE3OEE5NzdEMTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIuY3BwICovLAogCQkJ
CUE3OEE5NzdFMTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIuaCAqLywKKwkJCQkw
RjZCMUNCMzE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCAqLywKKwkJCQkwRjZCMUNC
NDE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmggKi8sCiAJCQkJMEY4RjJCOTMxNzJFMDQ5
RTAwN0RCREE1IC8qIEZUTExpbmsuY3BwICovLAogCQkJCTBGOEYyQjk0MTcyRTA0OUUwMDdEQkRB
NSAvKiBGVExMaW5rLmggKi8sCiAJCQkJMEZDRUZBREQxODA3MzhDMDAwNDcyQ0U0IC8qIEZUTExv
Y2F0aW9uLmNwcCAqLywKQEAgLTMwNDcsNiArMzA5NCwxMCBAQAogCQkJCTBGMjM1QkNBMTcxNzhF
MUMwMDY5MEM3RiAvKiBGVExPU1JFeGl0Q29tcGlsZXIuaCAqLywKIAkJCQkwRkVBMEEyOTE3MDk2
Mjk2MDBCQjcyMkMgLyogRlRMT3V0cHV0LmNwcCAqLywKIAkJCQkwRkVBMEEwNjE3MDUxM0RCMDBC
QjcyMkMgLyogRlRMT3V0cHV0LmggKi8sCisJCQkJMEY0ODUzMjUxODdERkRFQzAwODNCNjg3IC8q
IEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCAqLywKKwkJCQkwRjQ4NTMyNjE4N0RGREVDMDA4M0I2ODcg
LyogRlRMUmVjb3ZlcnlPcGNvZGUuaCAqLywKKwkJCQkwRjZCMUNCRjE4NjJDNDc4MDA4NDVEOTcg
LyogRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAgKi8sCisJCQkJMEY2QjFDQzAxODYyQzQ3ODAwODQ1
RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuaCAqLywKIAkJCQkwRkNFRkFBOTE4MDRDMTNFMDA0
NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuY3BwICovLAogCQkJCTBGQ0VGQUFBMTgwNEMxM0UwMDQ3
MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5oICovLAogCQkJCTBGMjVGMUFBMTgxNjM1RjMwMDUyMkYz
OSAvKiBGVExTbG93UGF0aENhbGwuY3BwICovLApAQCAtMzA2MSw5ICszMTEyLDEzIEBACiAJCQkJ
MEYyMzVCQ0IxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFRodW5rcy5jcHAgKi8sCiAJCQkJMEYyMzVC
Q0MxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFRodW5rcy5oICovLAogCQkJCTBGRUEwQTFCMTcwOEIw
MDcwMEJCNzIyQyAvKiBGVExUeXBlZFBvaW50ZXIuaCAqLywKKwkJCQkwRjZCMUNDMTE4NjJDNDc4
MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5jcHAgKi8sCisJCQkJMEY2QjFDQzIxODYyQzQ3ODAw
ODQ1RDk3IC8qIEZUTFVud2luZEluZm8uaCAqLywKIAkJCQkwRjIzNUJDRDE3MTc4RTFDMDA2OTBD
N0YgLyogRlRMVmFsdWVGb3JtYXQuY3BwICovLAogCQkJCTBGMjM1QkNFMTcxNzhFMUMwMDY5MEM3
RiAvKiBGVExWYWx1ZUZvcm1hdC5oICovLAogCQkJCTBGREIyQ0M4MTczREE1MUUwMDdCM0MxQiAv
KiBGVExWYWx1ZUZyb21CbG9jay5oICovLAorCQkJCTBGNUE2MjgxMTg4Qzk4RDQwMDcyQzlERiAv
KiBGVExWYWx1ZVJhbmdlLmNwcCAqLywKKwkJCQkwRjVBNjI4MjE4OEM5OEQ0MDA3MkM5REYgLyog
RlRMVmFsdWVSYW5nZS5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBmdGw7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMzE1Miw2ICszMjA3LDggQEAKIAkJMTQyOUQ5MkMwRUQyMkQ3MDAw
Qjg5NjE5IC8qIGppdCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJMEY2QjFDQzcxODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1
bmtzLmNwcCAqLywKKwkJCQkwRjZCMUNDODE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuaCAqLywKIAkJCQkwRjI0RTUzQjE3RUE5RjU5MDBBQkIyMTcgLyogQXNz
ZW1ibHlIZWxwZXJzLmNwcCAqLywKIAkJCQkwRjI0RTUzQzE3RUE5RjU5MDBBQkIyMTcgLyogQXNz
ZW1ibHlIZWxwZXJzLmggKi8sCiAJCQkJMEYyNEU1M0QxN0VBOUY1OTAwQUJCMjE3IC8qIENDYWxs
SGVscGVycy5oICovLApAQCAtMzIwNSw2ICszMjYyLDggQEAKIAkJCQkwRkM3MTJFMTE3Q0Q4NzhG
MDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAqLywKIAkJ
CQlBNzZGNTRBMjEzQjI4QUFCMDBFRjJCQ0UgLyogSklUV3JpdGVCYXJyaWVyLmggKi8sCiAJCQkJ
QTc2QzUxNzQxMTgyNzQ4RDAwNzE1QjA1IC8qIEpTSW50ZXJmYWNlSklULmggKi8sCisJCQkJMEY2
QjFDQkIxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVy
YXRvci5jcHAgKi8sCisJCQkJMEY2QjFDQkMxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJl
c2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oICovLAogCQkJCTBGQzMxNDE0MTgxNDZENzAwMDAz
MzIzMiAvKiBSZWdpc3RlclNldC5jcHAgKi8sCiAJCQkJMEZDMzE0MTAxODE0NTU5MTAwMDMzMjMy
IC8qIFJlZ2lzdGVyU2V0LmggKi8sCiAJCQkJMEYyNEU1NDkxN0VFMjc0OTAwQUJCMjE3IC8qIFJl
cGF0Y2guY3BwICovLApAQCAtMzU1NCw2ICszNjEzLDcgQEAKIAkJCQlBNzYxNDBDODE4Mjk4MkNC
MDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5oICovLAogCQkJCUE3NjE0
MEM5MTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclByb3RvdHlwZS5jcHAgKi8s
CiAJCQkJQTc2MTQwQ0ExODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90
eXBlLmggKi8sCisJCQkJMEY2QjFDQjcxODYxMjQ0QzAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2Rl
LmggKi8sCiAJCQkJQTdBOEFGMjUxN0FEQjVGMjAwNUFCMTc0IC8qIEFycmF5QnVmZmVyLmNwcCAq
LywKIAkJCQlBN0E4QUYyNjE3QURCNUYzMDA1QUIxNzQgLyogQXJyYXlCdWZmZXIuaCAqLywKIAkJ
CQkwRkZDOTlEMjE4NEVFMzE4MDA5QzEwQUIgLyogQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBv
aW50LmNwcCAqLywKQEAgLTM2MTgsNiArMzY3OCw4IEBACiAJCQkJQkMzMDQ2MDYwRTFGNDk3RjAw
MzIzMkNGIC8qIEVycm9yLmggKi8sCiAJCQkJQkMwMkU5MDQwRTE4MzlEQjAwMEY5Mjk3IC8qIEVy
cm9yQ29uc3RydWN0b3IuY3BwICovLAogCQkJCUJDMDJFOTA1MEUxODM5REIwMDBGOTI5NyAvKiBF
cnJvckNvbnN0cnVjdG9yLmggKi8sCisJCQkJRkVCNThDMTIxODdCOEIxNjAwOThFRjBCIC8qIEVy
cm9ySGFuZGxpbmdTY29wZS5jcHAgKi8sCisJCQkJRkVCNThDMTMxODdCOEIxNjAwOThFRjBCIC8q
IEVycm9ySGFuZGxpbmdTY29wZS5oICovLAogCQkJCUJDMDJFOThBMEUxODNFMzgwMDBGOTI5NyAv
KiBFcnJvckluc3RhbmNlLmNwcCAqLywKIAkJCQlCQzAyRTk4QjBFMTgzRTM4MDAwRjkyOTcgLyog
RXJyb3JJbnN0YW5jZS5oICovLAogCQkJCUJDMDJFOTA2MEUxODM5REIwMDBGOTI5NyAvKiBFcnJv
clByb3RvdHlwZS5jcHAgKi8sCkBAIC0zODUxLDYgKzM5MTMsNyBAQAogCQkJCUY2OTJBODdDMDI1
NTU5N0QwMUZGNjBGNyAvKiBSZWdFeHBPYmplY3QuaCAqLywKIAkJCQlCQ0QyMDJCRjBFMTcwNkE3
MDAyQzdFODIgLyogUmVnRXhwUHJvdG90eXBlLmNwcCAqLywKIAkJCQlCQ0QyMDJDMDBFMTcwNkE3
MDAyQzdFODIgLyogUmVnRXhwUHJvdG90eXBlLmggKi8sCisJCQkJMEY2QjFDQjgxODYxMjQ0QzAw
ODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oICovLAogCQkJCTBGQjdGMzkxMTVF
RDhFMzgwMEYxNjdCMiAvKiBSZWplY3QuaCAqLywKIAkJCQkwRjc3MDA5MTE0MDJGRjI4MDA3OEVC
MzkgLyogU2FtcGxpbmdDb3VudGVyLmNwcCAqLywKIAkJCQkwRjc3MDA4RTE0MDJGREQ2MDA3OEVC
MzkgLyogU2FtcGxpbmdDb3VudGVyLmggKi8sCkBAIC0zOTY1LDYgKzQwMjgsOCBAQAogCQk4NkVD
OURCMzEzMjhERjQ0MDAyQjJBRDcgLyogZGZnICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkyQUNDRjNEQzE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVC
YXJyaWVyRWxpc2lvblBoYXNlLmNwcCAqLywKKwkJCQkyQUNDRjNERDE4NUZFMjZCMDA4M0UyQUQg
LyogREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmggKi8sCiAJCQkJQTc3QTQyMzYxN0EwQkJG
RDAwQThEQjgxIC8qIERGR0Fic3RyYWN0SGVhcC5jcHAgKi8sCiAJCQkJQTc3QTQyMzcxN0EwQkJG
RDAwQThEQjgxIC8qIERGR0Fic3RyYWN0SGVhcC5oICovLAogCQkJCUE3MDREOEZFMTdBMEJBQTgw
MDZCQTU1NCAvKiBERkdBYnN0cmFjdEludGVycHJldGVyLmggKi8sCkBAIC00MTUzLDggKzQyMTgs
NiBAQAogCQkJCTBGQzIwQ0I4MTg1NTZBMzUwMEM5RTk1NCAvKiBERkdTU0FMb3dlcmluZ1BoYXNl
LmggKi8sCiAJCQkJMEY5RkI0RjIxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhh
c2UuY3BwICovLAogCQkJCTBGOUZCNEYzMTdGQ0I5MTcwMENCNjdGOCAvKiBERkdTdGFja0xheW91
dFBoYXNlLmggKi8sCi0JCQkJMkFDQ0YzREMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3JlQmFy
cmllckVsaXNpb25QaGFzZS5jcHAgKi8sCi0JCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFEIC8q
IERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJCTBGQzIwQ0IzMTg1MkUyQzYw
MEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRkMyMENC
NDE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5oICovLAogCQkJ
CTBGNjM5NDc2MTVEQ0UzNDcwMDZBNTk3QyAvKiBERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmgg
Ki8sCkBAIC00MjUwLDYgKzQzMTMsNyBAQAogCQk5Njg4Q0IxMjBFRDEyQjRFMDAxRDY0OUYgLyog
YXNzZW1ibGVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQk2NTg2MDE3NzE4NUE4RjVFMDAwMzBFRUUgLyogTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwuaCAqLywKIAkJCQk4NjAxNjFERjBGM0E4M0MxMDBGODQ3MTAgLyogQWJzdHJhY3RNYWNyb0Fz
c2VtYmxlci5oICovLAogCQkJCTg2NDA5MjNCMTU2RUVEM0IwMDU2NkNCMiAvKiBBUk02NEFzc2Vt
Ymxlci5oICovLAogCQkJCTg2RDNCMkJGMTAxNTZCREUwMDI4NjVFNyAvKiBBUk1Bc3NlbWJsZXIu
Y3BwICovLApAQCAtNDMyMiw2ICs0Mzg2LDcgQEAKIAkJCQk5NjlBMDc5MjBFRDFEM0FFMDBGMUY2
ODEgLyogRXZhbENvZGVDYWNoZS5oICovLAogCQkJCTBGNTZBMUQ0MTUwMDFDRjIwMDI5OTJCMSAv
KiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLywKIAkJCQkwRjU2QTFEMTE1MDAwRjMxMDAyOTkyQjEg
LyogRXhlY3V0aW9uQ291bnRlci5oICovLAorCQkJCTBGM0FDNzUzMTg4RTVFQzgwMDMyMDI5RiAv
KiBFeGl0aW5nSklUVHlwZS5oICovLAogCQkJCTBGQjEwNTgyMTY3NTQ4MEMwMEY4QUI2RSAvKiBF
eGl0S2luZC5jcHAgKi8sCiAJCQkJMEZCMTA1ODMxNjc1NDgwQzAwRjhBQjZFIC8qIEV4aXRLaW5k
LmggKi8sCiAJCQkJMEYwQjgzQUExNEJDRjVCOTAwODg1QjRGIC8qIEV4cHJlc3Npb25SYW5nZUlu
Zm8uaCAqLywKQEAgLTQ1NDEsMTMgKzQ2MDYsMTQgQEAKIAkJCQk4NkFERDE0NTBGRERFQTk4MDAw
NkVFQzIgLyogQVJNdjdBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Q0VFRTE1MTg3
RjNCQUQwMEU1NUM5OSAvKiBJbnNwZWN0b3JBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVD
MDI4NUQxNzE3OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMkE2ODI5NUIxODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZm
ZXIuaCBpbiBIZWFkZXJzICovLAorIAkJCQkyQTY4Mjk1QjE4NzVGODA1MDBCNkMzRTIgLyogQ29w
eVdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgMkE0RUM5MEMx
ODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkU1OTMyQTgxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTUzMjQzOTMxODU2OTcwOTAwMkVENjkyIC8qIENvZGVHZW5lcmF0b3JJbnNwZWN0
b3JTdHJpbmdzLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJQTUzMjQzOTIxODU2OTcwOTAwMkVENjky
IC8qIENvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgaW4gSGVhZGVycyAqLywKKyAJCQkJQTUzMjQz
OTIxODU2OTcwOTAwMkVENjkyIC8qIENvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogVGVtcFJlZ2lzdGVyU2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxP
YmplY3RSdW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFQjU4QzE1MTg3QjhCMTYw
MDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkZG
M0MwMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdGaWx0cmF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNTg0MEUyNzE4N0M5ODFFMDA4NDNCMTAgLyogY3NzbWluLnB5IGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzJGQ0FFMTExN0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlQmFzaWNCbG9jay5o
IGluIEhlYWRlcnMgKi8sCkBAIC00NTU2LDcgKzQ2MjIsNyBAQAogCQkJCTBGODMzNUI4MTYzOUMx
RUEwMDE0NDNCNSAvKiBBcnJheUFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNTg0MEUyOTE4N0NBNUU2MDA4NDNCMTAgLyogaW5saW5lLWFuZC1taW5pZnktc3R5bGVzaGVl
dHMtYW5kLXNjcmlwdHMucHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTg0MEUyQjE4N0NBNzVCMDA4
NDNCMTAgLyoganNtaW4ucHkgaW4gSGVhZGVycyAqLywKLQkJCQlBNTMyNDM5ODE4NTZBNDg5MDAy
RUQ2OTIgLyogSW5zcGVjdG9ySlMuanNvbiBpbiBIZWFkZXJzICovLAorIAkJCQlBNTMyNDM5ODE4
NTZBNDg5MDAyRUQ2OTIgLyogSW5zcGVjdG9ySlMuanNvbiBpbiBIZWFkZXJzICovLAogCQkJCUE1
ODQwRTJBMTg3Q0E3NTkwMDg0M0IxMCAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywKIAkJCQlGRUEw
ODYyMDE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTdBOEFGMzUxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyLmggaW4gSGVhZGVycyAqLywK
QEAgLTQ2MjQsNiArNDY5MCw3IEBACiAJCQkJQzJFQUEzRkExNDlBODM1RTAwRkNFMTEyIC8qIENv
cGllZFNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkM4RDAyRDE0QTNDNkUwMDA1NzhFNjUg
LyogQ29waWVkU3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVBNTJEMDE3QURE
NzE3MDA4RUNCMkQgLyogQ29weVRva2VuLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNDNjE4
NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIy
MzlEMTgxNjI2MkJERDAwNUFDNUZEIC8qIENvcHlWaXNpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDMjIzOUQxOTE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3JJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDMjE4RDE0MDE2NTVDRkQ1MDA2MkJCODEgLyogQ29weVdvcmtMaXN0Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTQ2NjUsNyArNDczMiw4IEBACiAJCQkJMEY4MzY0QjcxNjRCMEMx
MTAwNTMzMjlBIC8qIERGR0JyYW5jaERpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFB
MDA5QzAxODMxQTIyRDAwQ0Y4NzExIC8qIE1hY3JvQXNzZW1ibGVyQVJNNjQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg2RUM5REM1MTMyOERGODIwMDJCMkFENyAvKiBERkdCeXRlQ29kZVBhcnNlci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQTU5M0NGODcxODQwMzhDQTAwQkZDRTI3IC8qIEluc3BlY3Rv
ckFnZW50UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDg1MzI4MTg3REZERUMwMDgz
QjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAg
ICAgICAgQTU5M0NGODcxODQwMzhDQTAwQkZDRTI3IC8qIEluc3BlY3RvckFnZW50UmVnaXN0cnku
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjU2QzM2MTYyN0IwQUQwMDdGMjc4MyAvKiBERkdDYWxs
QXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3
QjI5NEIxNEMzQ0QyRjAwN0MzREIxIC8qIERGR0NhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZGRkM5NTgxNEVGOTBBMjAwQzcyNTMyIC8qIERGR0NGQVBoYXNlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTQ2OTksNiArNDc2Nyw3IEBACiAJCQkJMEZCQzBBRTgxNDk2QzdDNzAwRDRGQkRE
IC8qIERGR0V4aXRQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc3NTE3OTczOEI4
MDA5REY3NDQgLyogREZHRmFpbGVkRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhB
OTc3NzE3OTczOEI4MDA5REY3NDQgLyogREZHRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjZCMUNCNjE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjJCREMxNjE1MUM1RDRGMDBDRDg5MTAgLyogREZHRml4dXBQaGFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY5RDMzOTcxN0ZGQzRFNjAwNzNDMkJDIC8qIERGR0ZsdXNoZWRBdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTdEODlDRjgxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0ZsdXNoRm9y
bWF0LmggaW4gSGVhZGVycyAqLywKQEAgLTQ3MzUsNiArNDgwNCw3IEBACiAJCQkJMEZEOEEzMjYx
N0Q1MUY1NzAwQ0EyQzQwIC8qIERGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkMwOTc2QTE0NjhBNkY3MDBDRjI0NDIgLyogREZHT1NSRXhpdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZGQzk5RDExODRFQzhBRDAwOUMxMEFCIC8qIENvbnN0YW50TW9k
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQkExODYxMjQ0QzAwODQ1RDk3IC8qIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMzVCRUMxNzE3OEU3
MzAwNjkwQzdGIC8qIERGR09TUkV4aXRCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUJBMTVF
RDE4MjM0MEI0MDBBODJFNjkgLyogUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZGQjkyMUMxNkQwMkYxMTAwNTVBNURCIC8qIERGR09TUkV4aXRDb21w
aWxhdGlvbkluZm8uaCBpbiBIZWFkZXJzICovLApAQCAtNDgwMyw2ICs0ODczLDcgQEAKIAkJCQkw
RkVBMEExRjE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTU5NDU1OTMxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xvYmFsT2Jq
ZWN0RGVidWdnYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMEExNzA1MTNEQjAwQkI3
MjJDIC8qIEZUTENhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0ODUzMkExODdE
RkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkVBMEEyMzE3MDk2MDY5MDBCQjcyMkMgLyogRlRMQ29tbW9uVmFsdWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVBMEEwQzE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ29tcGlsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyMzVCRDQxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTEV4aXRBcmd1bWVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC00ODE5LDYgKzQ4OTAsNyBAQAogCQkJCTBGRUEwQTI0MTcwOTYw
NjkwMEJCNzIyQyAvKiBGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkVBMEEwRTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMSklUQ29kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTc4QTk3ODExNzk3MzhENTAwOURGNzQ0IC8qIEZUTEpJVEZpbmFsaXplci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY1QTYyODQxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEYyQjk2MTcyRTA0QTMwMDdEQkRBNSAvKiBGVExMaW5r
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNFRkFFMDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9j
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTEwMTcwNTEzREIwMEJCNzIyQyAvKiBG
VExMb3dlckRGR1RvTExWTS5oIGluIEhlYWRlcnMgKi8sCkBAIC00OTAxLDYgKzQ5NzMsNyBAQAog
CQkJCTBGQzIwQ0I2MTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkIxNEUxRjE4MTI0QUNFMDA5QjZCNEQgLyogSklUSW5s
aW5lQ2FjaGVHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2Q0M4NUExMEVFNzlBNDcw
MDI4ODY4MiAvKiBKSVRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNCRTE4NjEy
NDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjI0RTU0RDE3RUUyNzQ5MDBBQkIyMTcgLyogSklUT3BlcmF0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc5MERENzAxODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0
SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTRFMTdFRTI3NDkwMEFCQjIxNyAv
KiBKSVRPcGVyYXRpb25XcmFwcGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC00OTE2LDYgKzQ5ODks
NyBAQAogCQkJCTBGQzcxMkUzMTdDRDg3OTMwMDhDQzkzQyAvKiBKSVRUb0RGR0RlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc2RjU0QTMxM0IyOEFBQjAw
RUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MTYw
RTE2RjVDRDAwQjM0NDYwIC8qIEpTQWN0aXZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2
QjFDQjkxODYxMjQ0QzAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NDA0ODAxMzEwMjFBMUQ5MDA4RTdGMDEgLyogSlNBUElWYWx1ZVdyYXBwZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUMyQ0YzOUMyMTZFMTVBODEwMERENjlCRSAvKiBKU0FQSVdyYXBwZXJP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NjE0MEQyMTgyOTgyQ0IwMDc1MDYyNCAvKiBK
U0FyZ3VtZW50c0l0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTQ5NjksNiArNTA0Myw4IEBA
CiAJCQkJQkMxOEM0MjMwRTE2RjVDRDAwQjM0NDYwIC8qIEpTTG9jay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzI1RDcwOUMxNkRFOTlGNDAwRkNBNkJDIC8qIEpTTWFuYWdlZFZhbHVlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNzAwODc0MjE3Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGM0FDNzU0MTg4RTVFQzgwMDMyMDI5RiAvKiBFeGl0aW5nSklUVHlwZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQzQxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lz
dGVyQXRPZmZzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0ODc0QUU0MTVFQkRFNEEwMDJFMzU4
NyAvKiBKU05hbWVTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjQwRTE2RjVDRDAw
QjM0NDYwIC8qIEpTT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyNTBFMTZGNUNE
MDBCMzQ0NjAgLyogSlNPYmplY3RSZWYuaCBpbiBIZWFkZXJzICovLApAQCAtNTI3Myw2ICs1MzQ5
LDcgQEAKIAkJCQk5Njg4Q0IxNjBFRDEyQjRFMDAxRDY0OUYgLyogWDg2QXNzZW1ibGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY2NjZFQ0QxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlv
bkZvclZhbGlkYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQ0ExODY0MURG
ODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NjcwNEI4NTEyREJBMzM3MDBBOUZFN0IgLyogWWFyckludGVycHJldGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNTVEOTNBNjE4NTAxMkE4MDA0MDBERUQgLyogU2NyaXB0RnVuY3Rpb25D
YWxsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4NzEyREJBMzM3MDBBOUZFN0IgLyogWWFy
ckpJVC5oIGluIEhlYWRlcnMgKi8sCkBAIC01NzE2LDYgKzU3OTMsNyBAQAogCQkJCTE0MjlEOERE
MEVEMjIwNUIwMEI4OTYxOSAvKiBDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYw
QjgzQjAxNEJDRjcxNjAwODg1QjRGIC8qIENhbGxMaW5rSW5mby5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNTEzRTVCNzE4NUI4QkQzMDA3RTk1QUQgLyogSW5qZWN0ZWRTY3JpcHQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMEY1QTYyODMxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MzMyOUQxNENBN0RDMzAwODVGM0M2IC8qIENhbGxM
aW5rU3RhdHVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzNEN0FFMTY1QTE0MkQwMEFDQUI3
MSAvKiBDbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk2OUEw
Nzk2MEVEMUQzQUUwMEYxRjY4MSAvKiBDb2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01
NzU0LDYgKzU4MzIsNyBAQAogCQkJCTBGNjM5NDg0MTVFNDgxMTgwMDZBNTk3QyAvKiBERkdBcnJh
eU1vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEOUEyOTQxN0EwQkM3NDAwRUUyNjE4IC8q
IERGR0F0VGFpbEFic3RyYWN0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3MTRDQTQx
NkVBOTJGMDAwRjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRkVCNThDMTQxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdT
Y29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNGMjE3QTBCOENDMDA3NzNBRDggLyog
REZHQmFzaWNCbG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzBCMDgzMjE3QTBCNzlCMDBE
QUYxNEIgLyogREZHQmluYXJ5U3dpdGNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0Yz
MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCbG9ja0luc2VydGlvblNldC5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTU4MzEsOSArNTkxMCwxMSBAQAogCQkJCTg2ODgwRjREMTQzNTNCMjEwMEIwOEQ0MiAv
KiBERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0ZGMTdB
MEI4Q0MwMDc3M0FEOCAvKiBERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY5RkI0RjQxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQkQxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVy
UHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMw
OTdBMTE0NkIyOENBMDBDRjI0NDIgLyogREZHVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRDhBMzI3MTdENTFGNTcwMENBMkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDhBMzI5MTdENTFGNTcwMENBMkM0MCAvKiBERkdU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RjQ4NTMyNzE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZEOEEzMkIxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRm9yT1NS
RW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY2Mzk0NDAxNUM3NUYxRDAwNkE1OTdDIC8qIERGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCRTBGNzYxNkMxREIwRjAwODJDNUU4IC8qIERGR1VuaWZp
Y2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01ODkyLDkgKzU5NzMsMTEgQEAKIAkJ
CQkwRkNFRkFBQjE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYyNUYxQjExODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI1RjFCMzE4MTYzNUYzMDA1MjJGMzkgLyogRlRMU2xv
d1BhdGhDYWxsS2V5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0M1MTg2MkM0NzgwMDg0
NUQ5NyAvKiBGVExVbndpbmRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzMzlBMTgw
M0FEQjcwMDczQzJCQyAvKiBGVExTdGFja01hcHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZF
QTBBMTYxNzA2QkI5MDAwQkI3MjJDIC8qIEZUTFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTdDMDA4Q0QyMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5jdGlvbnMuY3BwIGluIFNv
dXJjZXMgKi8sCisgCQkJCTdDMDA4Q0QyMTg2RjhBOTMwMDk1NUMyNCAvKiBKU1Byb21pc2VGdW5j
dGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQjUxODVGQzlFOTAwODQ1RDk3IC8q
IEZUTEpTQ2FsbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIzNUJFMTE3MTc4RTFDMDA2OTBD
N0YgLyogRlRMVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1OTNDRjdDMTg0MDM2MDMw
MEJGQ0UyNyAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjIzNUJFMzE3MTc4RTFDMDA2OTBDN0YgLyogRlRMVmFsdWVGb3JtYXQuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC01OTgwLDYgKzYwNjMsNyBAQAogCQkJCTE0MjgwODc1MTA3RUMxM0UwMDEz
RTdCMiAvKiBKU0xvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzI1RDcwOUIxNkRFOTlGNDAw
RkNBNkJDIC8qIEpTTWFuYWdlZFZhbHVlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcwMDg3NDEx
N0NCRThFQjAwQzNFNjQzIC8qIEpTTWFwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNDg1MzI5
MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNDg3NEFFMzE1RUJERTRBMDAyRTM1ODcgLyogSlNOYW1lU2NvcGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTcyNzAwOTAwREFDNkJCQzAwRTU0OEQ3IC8qIEpTTm90QW5PYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDQxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTT2JqZWN0
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjA5Niw2ICs2MTgwLDcgQEAKIAkJCQkwRjY2NkVDQzE4
MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGQjEwNThCMTY3NTQ4MzEwMEY4QUI2RSAvKiBQcm9maWxlck9T
UkV4aXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCMTA1OEQxNjc1NDgzNzAwRjhBQjZFIC8q
IFByb2ZpbGVyT1NSRXhpdFNpdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQzMxODYy
QzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEYxMzkxMkIxNjc3MUMzQTAwOUNDQjA3IC8qIFByb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdGQjYwQTQxMDNGN0RDMjAwMTdBMjg2IC8qIFByb3Bl
cnR5RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURFNzEwN0VDN0U3MDA2
NTA0NDYgLyogUHJvcGVydHlOYW1lQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02MTI1LDYg
KzYyMTAsNyBAQAogCQkJCTBGOEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZCMUNDOTE4
NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYwQ0Q0QzQxNUY2QjZCQjAwMzJGMUMwIC8qIFNwYXJzZUFycmF5VmFsdWVN
YXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1NTQxQjExNjEzQzFGQjAwQ0UzRTI1IC8qIFNw
ZWNpYWxQb2ludGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDgyRTg2MTQxRjNGRjEwMDE3
OUM5NCAvKiBTcGVjdWxhdGVkVHlwZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDI2IEBACiAjZGVmaW5lIERBVEFTSVpF
IERBVEFTSVpFX09GKGRhdGFzaXplKQogI2RlZmluZSBNRU1PUFNJWkUgTUVNT1BTSVpFX09GKGRh
dGFzaXplKQogI2RlZmluZSBDSEVDS19GUF9NRU1PUF9EQVRBU0laRSgpIEFTU0VSVChkYXRhc2l6
ZSA9PSA4IHx8IGRhdGFzaXplID09IDE2IHx8IGRhdGFzaXplID09IDMyIHx8IGRhdGFzaXplID09
IDY0IHx8IGRhdGFzaXplID09IDEyOCkKKyNkZWZpbmUgTUVNUEFJUk9QU0laRV9JTlQoZGF0YXNp
emUpICgoZGF0YXNpemUgPT0gNjQpID8gTWVtUGFpck9wXzY0IDogTWVtUGFpck9wXzMyKQorI2Rl
ZmluZSBNRU1QQUlST1BTSVpFX0ZQKGRhdGFzaXplKSAoKGRhdGFzaXplID09IDEyOCkgPyBNZW1Q
YWlyT3BfVjEyOCA6IChkYXRhc2l6ZSA9PSA2NCkgPyBNZW1QYWlyT3BfVjY0IDogTWVtUGFpck9w
XzMyKQogCiBuYW1lc3BhY2UgSlNDIHsKIAorQUxXQVlTX0lOTElORSBib29sIGlzSW50NyhpbnQz
Ml90IHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDI1KSA+PiAyNSk7
Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBpc0ludDkoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBy
ZXR1cm4gdmFsdWUgPT0gKCh2YWx1ZSA8PCAyMykgPj4gMjMpOwogfQogCitBTFdBWVNfSU5MSU5F
IGJvb2wgaXNJbnQxMShpbnQzMl90IHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSAoKHZh
bHVlIDw8IDIxKSA+PiAyMSk7Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBpc1VJbnQ1KGludDMy
X3QgdmFsdWUpCiB7CiAgICAgcmV0dXJuICEodmFsdWUgJiB+MHgxZik7CkBAIC0xMTksNiArMTMx
LDM0IEBAIHByaXZhdGU6CiAgICAgaW50IG1fdmFsdWU7CiB9OwogCitjbGFzcyBQYWlyUG9zdElu
ZGV4IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBQYWlyUG9zdEluZGV4KGludCB2YWx1ZSkKKyAg
ICAgICAgOiBtX3ZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW50MTEodmFs
dWUpKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBpbnQoKSB7IHJldHVybiBtX3ZhbHVlOyB9CisK
K3ByaXZhdGU6CisgICAgaW50IG1fdmFsdWU7Cit9OworCitjbGFzcyBQYWlyUHJlSW5kZXggewor
cHVibGljOgorICAgIGV4cGxpY2l0IFBhaXJQcmVJbmRleChpbnQgdmFsdWUpCisgICAgICAgIDog
bV92YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0ludDExKHZhbHVlKSk7Cisg
ICAgfQorCisgICAgb3BlcmF0b3IgaW50KCkgeyByZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRl
OgorICAgIGludCBtX3ZhbHVlOworfTsKKwogY2xhc3MgTG9naWNhbEltbWVkaWF0ZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIExvZ2ljYWxJbW1lZGlhdGUgY3JlYXRlMzIodWludDMyX3QgdmFsdWUp
CkBAIC04MjMsNiArODYzLDE2IEBAIHByaXZhdGU6CiAgICAgICAgIE1lbU9wX0xPQURfc2lnbmVk
MzIgPSAzIC8vIHNpemUgbWF5IGJlIDAgb3IgMQogICAgIH07CiAKKyAgICBlbnVtIE1lbVBhaXJP
cFNpemUgeworICAgICAgICBNZW1QYWlyT3BfMzIgPSAwLAorICAgICAgICBNZW1QYWlyT3BfTG9h
ZFNpZ25lZF8zMiA9IDEsCisgICAgICAgIE1lbVBhaXJPcF82NCA9IDIsCisKKyAgICAgICAgTWVt
UGFpck9wX1YzMiA9IE1lbVBhaXJPcF8zMiwKKyAgICAgICAgTWVtUGFpck9wX1Y2NCA9IDEsCisg
ICAgICAgIE1lbVBhaXJPcF9WMTI4ID0gMgorICAgIH07CisKICAgICBlbnVtIE1vdmVXaWRlT3Ag
ewogICAgICAgICBNb3ZlV2lkZU9wX04gPSAwLAogICAgICAgICBNb3ZlV2lkZU9wX1ogPSAyLApA
QCAtODM2LDYgKzg4NiwxNCBAQCBwcml2YXRlOgogICAgICAgICBMZHJMaXRlcmFsT3BfMTI4QklU
ID0gMgogICAgIH07CiAKKyAgICBzdGF0aWMgdW5zaWduZWQgbWVtUGFpck9mZnNldFNoaWZ0KGJv
b2wgViwgTWVtUGFpck9wU2l6ZSBzaXplKQorICAgIHsKKyAgICAgICAgLy8gcmV0dXJuIHRoZSBs
b2cyIG9mIHRoZSBzaXplIGluIGJ5dGVzLCBlLmcuIDY0IGJpdCBzaXplIHJldHVybnMgMworICAg
ICAgICBpZiAoVikKKyAgICAgICAgICAgIHJldHVybiBzaXplICsgMjsKKyAgICAgICAgcmV0dXJu
IChzaXplID4+IDEpICsgMjsKKyAgICB9CisKIHB1YmxpYzoKICAgICAvLyBJbnRlZ2VyIEluc3Ry
dWN0aW9uczoKIApAQCAtODcxLDggKzkyOSw5IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgYWRkKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNo
aWZ0VHlwZSBzaGlmdCwgaW50IGFtb3VudCkKICAgICB7CiAgICAgICAgIENIRUNLX0RBVEFTSVpF
KCk7Ci0gICAgICAgIGlmIChpc1NwKHJuKSkgeworICAgICAgICBpZiAoaXNTcChyZCkgfHwgaXNT
cChybikpIHsKICAgICAgICAgICAgIEFTU0VSVChzaGlmdCA9PSBMU0wpOworICAgICAgICAgICAg
QVNTRVJUKCFpc1NwKHJtKSk7CiAgICAgICAgICAgICBhZGQ8ZGF0YXNpemUsIHNldEZsYWdzPihy
ZCwgcm4sIHJtLCBVWFRYLCBhbW91bnQpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGlu
c24oYWRkU3VidHJhY3RTaGlmdGVkUmVnaXN0ZXIoREFUQVNJWkUsIEFkZE9wX0FERCwgc2V0Rmxh
Z3MsIHNoaWZ0LCBybSwgYW1vdW50LCBybiwgcmQpKTsKQEAgLTEyMTYsNiArMTI3NSwyMCBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19J
TkxJTkUgdm9pZCBsZHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQg
cm4sIFBhaXJQb3N0SW5kZXggc2ltbSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7
CisgICAgICAgIGluc24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1FTVBBSVJPUFNJ
WkVfSU5UKGRhdGFzaXplKSwgZmFsc2UsIE1lbU9wX0xPQUQsIHNpbW0sIHJuLCBydCwgcnQyKSk7
CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBsZHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBh
aXJQcmVJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAg
ICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNRU1QQUlST1BTSVpFX0lOVChk
YXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9MT0FELCBzaW1tLCBybiwgcnQsIHJ0MikpOworICAgIH0K
KworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbGRy
KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAg
ICAgICBsZHI8ZGF0YXNpemU+KHJ0LCBybiwgcm0sIFVYVFgsIDApOwpAQCAtMTc0OCw2ICsxODIx
LDIwIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CisgICAg
QUxXQVlTX0lOTElORSB2b2lkIHN0cChSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0MiwgUmVn
aXN0ZXJJRCBybiwgUGFpclBvc3RJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFU
QVNJWkUoKTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoTUVN
UEFJUk9QU0laRV9JTlQoZGF0YXNpemUpLCBmYWxzZSwgTWVtT3BfU1RPUkUsIHNpbW0sIHJuLCBy
dCwgcnQyKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzdHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVy
SUQgcm4sIFBhaXJQcmVJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUo
KTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNRU1QQUlST1BT
SVpFX0lOVChkYXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9TVE9SRSwgc2ltbSwgcm4sIHJ0LCBydDIp
KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CiAgICAgQUxXQVlTX0lOTElO
RSB2b2lkIHN0cihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQog
ICAgIHsKICAgICAgICAgc3RyPGRhdGFzaXplPihydCwgcm4sIHJtLCBVWFRYLCAwKTsKQEAgLTE4
NzYsOCArMTk2Myw5IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3ViKFJlZ2lz
dGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNoaWZ0VHlwZSBzaGlmdCwg
aW50IGFtb3VudCkKICAgICB7CiAgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7Ci0gICAgICAgIGlm
IChpc1NwKHJuKSkgeworICAgICAgICBpZiAoaXNTcChyZCkgfHwgaXNTcChybikpIHsKICAgICAg
ICAgICAgIEFTU0VSVChzaGlmdCA9PSBMU0wpOworICAgICAgICAgICAgQVNTRVJUKCFpc1NwKHJt
KSk7CiAgICAgICAgICAgICBzdWI8ZGF0YXNpemUsIHNldEZsYWdzPihyZCwgcm4sIHJtLCBVWFRY
LCBhbW91bnQpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGluc24oYWRkU3VidHJhY3RT
aGlmdGVkUmVnaXN0ZXIoREFUQVNJWkUsIEFkZE9wX1NVQiwgc2V0RmxhZ3MsIHNoaWZ0LCBybSwg
YW1vdW50LCBybiwgcmQpKTsKQEAgLTMzNjEsNiArMzQ0OSwyMyBAQCBwcml2YXRlOgogICAgIH0K
IAogICAgIC8vICdWJyBtZWFucyB2ZWN0b3IKKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBpbnQg
bG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1lbVBhaXJPcFNpemUgc2l6ZSwgYm9vbCBW
LCBNZW1PcCBvcGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0ZXJJRCBy
dCwgRlBSZWdpc3RlcklEIHJ0MikKKyAgICB7CisgICAgICAgIEFTU0VSVChzaXplIDwgMyk7Cisg
ICAgICAgIEFTU0VSVChvcGMgPT0gKG9wYyAmIDEpKTsgLy8gT25seSBsb2FkIG9yIHN0b3JlLCBs
b2FkIHNpZ25lZCA2NCBpcyBoYW5kbGVkIHZpYSBzaXplLgorICAgICAgICBBU1NFUlQoViB8fCAo
c2l6ZSAhPSBNZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9MT0FEKSk7
IC8vIFRoZXJlIGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgorICAgICAgICB1bnNpZ25l
ZCBpbW1lZFNoaWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUpOworICAgICAg
ICBpbnQgaW1tNyA9IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OworICAgICAgICBBU1NF
UlQoKGltbTcgPDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50NyhpbW03
KSk7CisgICAgICAgIHJldHVybiAoMHgyODgwMDAwMCB8IHNpemUgPDwgMzAgfCBWIDw8IDI2IHwg
b3BjIDw8IDIyIHwgKGltbTcgJiAweDdmKSA8PCAxNSB8IHJ0MiA8PCAxMCB8IHhPclNwKHJuKSA8
PCA1IHwgcnQpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2FkU3Rv
cmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoTWVtUGFpck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9w
IG9wYywgaW50IGltbWVkaWF0ZSwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBydCwgUmVnaXN0
ZXJJRCBydDIpCisgICAgeworICAgICAgICByZXR1cm4gbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9z
dEluZGV4KHNpemUsIFYsIG9wYywgaW1tZWRpYXRlLCBybiwgeE9yWnJBc0ZQUihydCksIHhPclpy
QXNGUFIocnQyKSk7CisgICAgfQorCisgICAgLy8gJ1YnIG1lYW5zIHZlY3RvcgogICAgIEFMV0FZ
U19JTkxJTkUgc3RhdGljIGludCBsb2FkU3RvcmVSZWdpc3RlclByZUluZGV4KE1lbU9wU2l6ZSBz
aXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGltbTksIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0
ZXJJRCBydCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghKHNpemUgJiYgViAmJiAob3BjICYgMikp
KTsgLy8gTWF4aW11bSB2ZWN0b3Igc2l6ZSBpcyAxMjggYml0cy4KQEAgLTMzNzUsNiArMzQ4MCwy
MyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIC8vICdWJyBtZWFucyB2ZWN0b3IKKyAgICBBTFdB
WVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoTWVtUGFp
ck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGltbWVkaWF0ZSwgUmVnaXN0ZXJJ
RCBybiwgRlBSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKHNpemUgPCAzKTsKKyAgICAgICAgQVNTRVJUKG9wYyA9PSAob3BjICYgMSkpOyAvLyBP
bmx5IGxvYWQgb3Igc3RvcmUsIGxvYWQgc2lnbmVkIDY0IGlzIGhhbmRsZWQgdmlhIHNpemUuCisg
ICAgICAgIEFTU0VSVChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyKSB8fCAo
b3BjID09IE1lbU9wX0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9yZSBzaWdu
ZWQuCisgICAgICAgIHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zmc2V0U2hp
ZnQoViwgc2l6ZSk7CisgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+IGltbWVkU2hpZnRB
bW91bnQ7CisgICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBpbW1l
ZGlhdGUgJiYgaXNJbnQ3KGltbTcpKTsKKyAgICAgICAgcmV0dXJuICgweDI5ODAwMDAwIHwgc2l6
ZSA8PCAzMCB8IFYgPDwgMjYgfCBvcGMgPDwgMjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1IHwgcnQy
IDw8IDEwIHwgeE9yU3Aocm4pIDw8IDUgfCBydCk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgaW50IGxvYWRTdG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KE1lbVBhaXJPcFNpemUg
c2l6ZSwgYm9vbCBWLCBNZW1PcCBvcGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIFJl
Z2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxvYWRT
dG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KHNpemUsIFYsIG9wYywgaW1tZWRpYXRlLCBybiwgeE9y
WnJBc0ZQUihydCksIHhPclpyQXNGUFIocnQyKSk7CisgICAgfQorCisgICAgLy8gJ1YnIG1lYW5z
IHZlY3RvcgogICAgIC8vICdTJyBtZWFucyBzaGlmdCBybQogICAgIEFMV0FZU19JTkxJTkUgc3Rh
dGljIGludCBsb2FkU3RvcmVSZWdpc3RlclJlZ2lzdGVyT2Zmc2V0KE1lbU9wU2l6ZSBzaXplLCBi
b29sIFYsIE1lbU9wIG9wYywgUmVnaXN0ZXJJRCBybSwgRXh0ZW5kVHlwZSBvcHRpb24sIGJvb2wg
UywgUmVnaXN0ZXJJRCBybiwgRlBSZWdpc3RlcklEIHJ0KQogICAgIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjU0LDYgKzY1NCw4IEBAIHByaXZhdGU6CiAgICAgdHlw
ZWRlZiBlbnVtIHsKICAgICAgICAgT1BfQl9UMSAgICAgICAgID0gMHhEMDAwLAogICAgICAgICBP
UF9CX1QyICAgICAgICAgPSAweEUwMDAsCisgICAgICAgIE9QX1BPUF9UMiAgICAgICA9IDB4RThC
RCwKKyAgICAgICAgT1BfUFVTSF9UMiAgICAgID0gMHhFOTJELAogICAgICAgICBPUF9BTkRfcmVn
X1QyICAgPSAweEVBMDAsCiAgICAgICAgIE9QX1RTVF9yZWdfVDIgICA9IDB4RUExMCwKICAgICAg
ICAgT1BfT1JSX3JlZ19UMiAgID0gMHhFQTQwLApAQCAtODk0LDYgKzg5NiwxMSBAQCBwdWJsaWM6
CiAgICAgLy8gTk9URTogSW4gYW4gSVQgYmxvY2ssIGFkZCBkb2Vzbid0IG1vZGlmeSB0aGUgZmxh
Z3MgcmVnaXN0ZXIuCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGFkZChSZWdpc3RlcklEIHJkLCBS
ZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKKyAgICAgICAgaWYgKHJkID09IEFS
TVJlZ2lzdGVyczo6c3ApIHsKKyAgICAgICAgICAgIG1vdihyZCwgcm4pOworICAgICAgICAgICAg
cm4gPSByZDsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChyZCA9PSBybikKICAgICAgICAgICAg
IG1fZm9ybWF0dGVyLm9uZVdvcmRPcDhSZWdSZWcxNDMoT1BfQUREX3JlZ19UMiwgcm0sIHJkKTsK
ICAgICAgICAgZWxzZSBpZiAocmQgPT0gcm0pCkBAIC0xNDg4LDYgKzE0OTUsMjIgQEAgcHVibGlj
OgogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzRGb3VyRm91cnMoT1BfUk9SX3Jl
Z19UMiwgcm4sIEZvdXJGb3VycygweGYsIHJkLCAwLCBybSkpOwogICAgIH0KIAorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBwb3AodWludDMyX3QgcmVnaXN0ZXJMaXN0KQorICAgIHsKKyAgICAgICAg
QVNTRVJUKFdURjo6Yml0Q291bnQocmVnaXN0ZXJMaXN0KSA+IDEpOworICAgICAgICBBU1NFUlQo
ISgoMSA8PCBBUk1SZWdpc3RlcnM6OnBjKSAmIHJlZ2lzdGVyTGlzdCkgfHwgISgoMSA8PCBBUk1S
ZWdpc3RlcnM6OmxyKSAmIHJlZ2lzdGVyTGlzdCkpOworICAgICAgICBBU1NFUlQoISgoMSA8PCBB
Uk1SZWdpc3RlcnM6OnNwKSAmIHJlZ2lzdGVyTGlzdCkpOworICAgICAgICBtX2Zvcm1hdHRlci50
d29Xb3JkT3AxNkltbTE2KE9QX1BPUF9UMiwgcmVnaXN0ZXJMaXN0KTsKKyAgICB9CisKKyAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgcHVzaCh1aW50MzJfdCByZWdpc3Rlckxpc3QpCisgICAgeworICAg
ICAgICBBU1NFUlQoV1RGOjpiaXRDb3VudChyZWdpc3Rlckxpc3QpID4gMSk7CisgICAgICAgIEFT
U0VSVCghKCgxIDw8IEFSTVJlZ2lzdGVyczo6cGMpICYgcmVnaXN0ZXJMaXN0KSk7CisgICAgICAg
IEFTU0VSVCghKCgxIDw8IEFSTVJlZ2lzdGVyczo6c3ApICYgcmVnaXN0ZXJMaXN0KSk7CisgICAg
ICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDE2SW1tMTYoT1BfUFVTSF9UMiwgcmVnaXN0ZXJMaXN0
KTsKKyAgICB9CisKICNpZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBzZGl2KFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAg
ewpAQCAtMjc5MSw2ICsyODE0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX2J1ZmZlci5w
dXRTaG9ydChvcDIpOwogICAgICAgICB9CiAKKyAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHR3
b1dvcmRPcDE2SW1tMTYoT3Bjb2RlSUQxIG9wMSwgdWludDE2X3QgaW1tKQorICAgICAgICB7Cisg
ICAgICAgICAgICBtX2J1ZmZlci5wdXRTaG9ydChvcDEpOworICAgICAgICAgICAgbV9idWZmZXIu
cHV0U2hvcnQoaW1tKTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgQUxXQVlTX0lOTElO
RSB2b2lkIHR3b1dvcmRPcDVpNkltbTRSZWc0RW5jb2RlZEltbShPcGNvZGVJRDEgb3AsIGludCBp
bW00LCBSZWdpc3RlcklEIHJkLCBBUk1UaHVtYkltbWVkaWF0ZSBpbW0pCiAgICAgICAgIHsKICAg
ICAgICAgICAgIEFSTVRodW1iSW1tZWRpYXRlIG5ld0ltbSA9IGltbTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2Vt
Ymxlci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTQwLDcgKzE0
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFz
ZSwgb2Zmc2V0ICsgYWRkaXRpb25hbE9mZnNldCk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAg
ICAgICAgUmVnaXN0ZXJJRCBiYXNlOwogICAgICAgICBpbnQzMl90IG9mZnNldDsKICAgICB9OwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3Bw
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xp
bmtCdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxMiArMjgsMjEgQEAK
IAogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAKKyNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNs
dWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCiAj
aW5jbHVkZSA8d3RmL0NvbXBpbGF0aW9uVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCiti
b29sIHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3sKKyAg
ICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGNvZGVCbG9jay0+aml0VHlwZSgpKSAmJiBP
cHRpb25zOjpzaG93REZHRGlzYXNzZW1ibHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
cmV0dXJuIE9wdGlvbnM6OnNob3dEaXNhc3NlbWJseSgpOworfQorCiBMaW5rQnVmZmVyOjpDb2Rl
UmVmIExpbmtCdWZmZXI6OmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpCiB7CiAgICAg
cGVyZm9ybUZpbmFsaXphdGlvbigpOwpAQCAtNDcsOCArNTYsNiBAQCBMaW5rQnVmZmVyOjpDb2Rl
UmVmIExpbmtCdWZmZXI6OmZpbmFsaXplCiAKIExpbmtCdWZmZXI6OkNvZGVSZWYgTGlua0J1ZmZl
cjo6ZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5KGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQog
ewotICAgIEFTU0VSVChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHkoKSB8fCBPcHRpb25zOjpzaG93
REZHRGlzYXNzZW1ibHkoKSk7Ci0gICAgCiAgICAgQ29kZVJlZiByZXN1bHQgPSBmaW5hbGl6ZUNv
ZGVXaXRob3V0RGlzYXNzZW1ibHkoKTsKIAogI2lmIEVOQUJMRShESVNBU1NFTUJMRVIpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA5LCAyMDEwLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQz
LDYgKzQzLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIENvZGVCbG9jazsKIGNsYXNz
IFZNOwogCiAvLyBMaW5rQnVmZmVyOgpAQCAtMTY0LDYgKzE2NSwxMSBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCB0byBvYnRhaW4gaGFuZGxlcyB0byBh
bGxvdyB0aGUgY29kZSB0byBiZSByZWxpbmtlZCAvIHJlcGF0Y2hlZCBsYXRlci4KKyAgICAKKyAg
ICBDb2RlTG9jYXRpb25MYWJlbCBlbnRyeXBvaW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBD
b2RlTG9jYXRpb25MYWJlbChjb2RlKCkpOworICAgIH0KIAogICAgIENvZGVMb2NhdGlvbkNhbGwg
bG9jYXRpb25PZihDYWxsIGNhbGwpCiAgICAgewpAQCAtMzAzLDYgKzMwOSwxMSBAQCBwcml2YXRl
OgogICAgICA/ICgobGlua0J1ZmZlclJlZmVyZW5jZSkuZmluYWxpemVDb2RlV2l0aERpc2Fzc2Vt
Ymx5IGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykgXAogICAgICA6IChsaW5rQnVmZmVyUmVm
ZXJlbmNlKS5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKSkKIAorYm9vbCBzaG91bGRT
aG93RGlzYXNzZW1ibHlGb3IoQ29kZUJsb2NrKik7CisKKyNkZWZpbmUgRklOQUxJWkVfQ09ERV9G
T1IoY29kZUJsb2NrLCBsaW5rQnVmZmVyUmVmZXJlbmNlLCBkYXRhTG9nRkFyZ3VtZW50c0Zvckhl
YWRpbmcpICBcCisgICAgRklOQUxJWkVfQ09ERV9JRihzaG91bGRTaG93RGlzYXNzZW1ibHlGb3Io
Y29kZUJsb2NrKSwgbGlua0J1ZmZlclJlZmVyZW5jZSwgZGF0YUxvZ0ZBcmd1bWVudHNGb3JIZWFk
aW5nKQorCiAvLyBVc2UgdGhpcyB0byBmaW5hbGl6ZSBjb2RlLCBsaWtlIHNvOgogLy8KIC8vIENv
ZGVSZWYgY29kZSA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJteSBzdXBlciB0aGluZ3kg
bnVtYmVyICVkIiwgbnVtYmVyKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU5NSw2ICs1OTUsMTEgQEAgcHVibGljOgogICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0z
MihpbW0pLCBhZGRyZXNzKTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUHRyKFRydXN0ZWRJbW0z
MiBpbW0sIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgc3RvcmUzMihp
bW0sIGFkZHJlc3MpOworICAgIH0KKwogICAgIHZvaWQgc3RvcmVQdHIoVHJ1c3RlZEltbVB0ciBp
bW0sIEJhc2VJbmRleCBhZGRyZXNzKQogICAgIHsKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1t
MzIoaW1tKSwgYWRkcmVzcyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNpb24gMTYyOTE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTIwMSw3ICsyMDEsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGQ2
NChSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbV9hc3Nl
bWJsZXIuYWRkPDY0PihkZXN0LCBkZXN0LCBzcmMpOworICAgICAgICBpZiAoc3JjID09IEFSTTY0
UmVnaXN0ZXJzOjpzcCkKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgc3Jj
LCBkZXN0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0Pihk
ZXN0LCBkZXN0LCBzcmMpOwogICAgIH0KIAogICAgIHZvaWQgYWRkNjQoVHJ1c3RlZEltbTMyIGlt
bSwgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtMTQzNyw2ICsxNDQwLDE2IEBAIHB1YmxpYzoKICAgICAg
ICAgQ1JBU0goKTsKICAgICB9CiAKKyAgICB2b2lkIHBvcFBhaXIoUmVnaXN0ZXJJRCBkZXN0MSwg
UmVnaXN0ZXJJRCBkZXN0MikKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmxkcDw2ND4oZGVz
dDEsIGRlc3QyLCBBUk02NFJlZ2lzdGVyczo6c3AsIFBhaXJQb3N0SW5kZXgoMTYpKTsKKyAgICB9
CisKKyAgICB2b2lkIHB1c2hQYWlyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyKQor
ICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3RwPDY0PihzcmMxLCBzcmMyLCBBUk02NFJlZ2lz
dGVyczo6c3AsIFBhaXJQcmVJbmRleCgtMTYpKTsKKyAgICB9CisKICAgICB2b2lkIHBvcFRvUmVz
dG9yZShSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZHI8NjQ+
KGRlc3QsIEFSTTY0UmVnaXN0ZXJzOjpzcCwgUG9zdEluZGV4KDE2KSk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcu
aAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTXY3LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MCw2ICsxNzAsMTQgQEAg
cHVibGljOgogICAgIHZvaWQgYWRkMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmMs
IFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIEFSTVRodW1iSW1tZWRpYXRlIGFybUlt
bSA9IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlVUludDEyT3JFbmNvZGVkSW1tKGltbS5tX3ZhbHVl
KTsKKworICAgICAgICAvLyBGb3IgYWRkcyB3aXRoIHN0YWNrIHBvaW50ZXIgZGVzdGluYXRpb24s
IG1vdmluZyB0aGUgc3JjIGZpcnN0IHRvIHNwIGlzCisgICAgICAgIC8vIG5lZWRlZCB0byBhdm9p
ZCB1bnByZWRpY3RhYmxlIGluc3RydWN0aW9uCisgICAgICAgIGlmIChkZXN0ID09IEFSTVJlZ2lz
dGVyczo6c3AgJiYgc3JjICE9IGRlc3QpIHsKKyAgICAgICAgICAgIG1vdmUoc3JjLCBBUk1SZWdp
c3RlcnM6OnNwKTsKKyAgICAgICAgICAgIHNyYyA9IEFSTVJlZ2lzdGVyczo6c3A7CisgICAgICAg
IH0KKwogICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkKICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmFkZChkZXN0LCBzcmMsIGFybUltbSk7CiAgICAgICAgIGVsc2UgewpAQCAtMTE2MCw2ICsx
MTY4LDE2IEBAIHB1YmxpYzoKICAgICAgICAgcHVzaChkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICB9
CiAKKyAgICB2b2lkIHBvcFBhaXIoUmVnaXN0ZXJJRCBkZXN0MSwgUmVnaXN0ZXJJRCBkZXN0MikK
KyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnBvcCgxIDw8IGRlc3QxIHwgMSA8PCBkZXN0Mik7
CisgICAgfQorICAgIAorICAgIHZvaWQgcHVzaFBhaXIoUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3Rl
cklEIHNyYzIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5wdXNoKDEgPDwgc3JjMSB8IDEg
PDwgc3JjMik7CisgICAgfQorICAgIAogICAgIC8vIFJlZ2lzdGVyIG1vdmUgb3BlcmF0aW9uczoK
ICAgICAvLwogICAgIC8vIE1vdmUgdmFsdWVzIGluIHJlZ2lzdGVycy4KQEAgLTEyODEsMTEgKzEy
OTksMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIHJlZyk7
CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0g
QVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNvZGVkSW1tKGltbSk7Ci0gICAgICAgICAgICBpZiAo
YXJtSW1tLmlzVmFsaWQoKSkKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3QocmVnLCBh
cm1JbW0pOwotICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoYXJtSW1tLmlzVmFs
aWQoKSkgeworICAgICAgICAgICAgICAgIGlmIChyZWcgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgewor
ICAgICAgICAgICAgICAgICAgICBtb3ZlKHJlZywgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAg
ICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBhcm1J
bW0pOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci50c3QocmVnLCBhcm1JbW0pOworICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICBtb3ZlKG1hc2ssIGRhdGFUZW1wUmVnaXN0ZXIpOwotICAgICAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLnRzdChyZWcsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIGlmIChy
ZWcgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgeworICAgICAgICAgICAgICAgICAgICBtb3ZlKHJlZywg
YWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRz
dChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0KHJlZywgZGF0YVRl
bXBSZWdpc3Rlcik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw2ICsy
NTQsMTEgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZvaWQqIHZhbHVlKCkgY29uc3QgeyByZXR1
cm4gbV92YWx1ZTsgfQorICAgIAorICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25z
dAorICAgIHsKKyAgICAgICAgb3V0LnByaW50KFJhd1BvaW50ZXIobV92YWx1ZSkpOworICAgIH0K
IAogcHJpdmF0ZToKICAgICB2b2lkKiBtX3ZhbHVlOwpAQCAtMzA5LDkgKzMxNCwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCogZGF0YUxvY2F0aW9uKCkgY29uc3QgeyBBU1NFUlRfVkFMSURfQ09ERV9Q
T0lOVEVSKG1fdmFsdWUpOyByZXR1cm4gbV92YWx1ZTsgfQogI2VuZGlmCiAKLSAgICBib29sIG9w
ZXJhdG9yISgpIGNvbnN0CisgICAgdHlwZWRlZiB2b2lkKiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
OjoqVW5zcGVjaWZpZWRCb29sVHlwZSk7CisgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlw
ZSooKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuICFtX3ZhbHVlOworICAgICAgICByZXR1
cm4gISFtX3ZhbHVlID8gcmVpbnRlcnByZXRfY2FzdDxVbnNwZWNpZmllZEJvb2xUeXBlKj4oMSkg
OiAwOwogICAgIH0KICAgICAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyJiBvdGhlcikgY29uc3QKQEAgLTQzNCw3ICs0NDAsMTEgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gSlNDOjp0cnlUb0Rpc2Fzc2VtYmxlKG1fY29kZVB0ciwgc2l6ZSgpLCBwcmVm
aXgsIFdURjo6ZGF0YUZpbGUoKSk7CiAgICAgfQogICAgIAotICAgIGJvb2wgb3BlcmF0b3IhKCkg
Y29uc3QgeyByZXR1cm4gIW1fY29kZVB0cjsgfQorICAgIHR5cGVkZWYgdm9pZCogKE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjo6KlVuc3BlY2lmaWVkQm9vbFR5cGUpOworICAgIG9wZXJhdG9yIFVuc3Bl
Y2lmaWVkQm9vbFR5cGUqKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhIW1fY29kZVB0
ciA/IHJlaW50ZXJwcmV0X2Nhc3Q8VW5zcGVjaWZpZWRCb29sVHlwZSo+KDEpIDogMDsKKyAgICB9
CiAgICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGxfaAorI2RlZmluZSBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbF9oCisKKyNpbmNsdWRl
ICJKU1N0YWNrLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXIuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdu
bWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisKK25hbWVzcGFjZSBKU0Mgewor
CisvLyBUaGUgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgaXMgdGhlIG1heCBhbW91bnQg
b2Ygc3RhY2sgc3BhY2UgKGluIGJ5dGVzKQorLy8gdGhhdCBjYW4gYmUgdXNlZCBmb3Igb3V0Z29p
bmcgYXJncyB3aGVuIGNhbGxpbmcgYSBzbG93IHBhdGggQyBmdW5jdGlvbgorLy8gZnJvbSBKUyBj
b2RlLgorCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAwOworCisjZWxpZiBDUFUoWDg2XzY0KSAmJiBP
UyhXSU5ET1dTKQorLy8gNCBhcmdzIGluIHJlZ2lzdGVycywgYnV0IHN0YWNrIHNwYWNlIG5lZWRz
IHRvIGJlIGFsbG9jYXRlZCBmb3IgYWxsIGFyZ3MuCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNjQ7CisKKyNlbGlmIENQVShYODZfNjQpCisvLyBB
bGwgYXJncyBpbiByZWdpc3RlcnMuCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsID0gMDsKKworI2VsaWYgQ1BVKFg4NikKKy8vIDcgYXJncyBvbiBzdGFj
ayAoMjggYnl0ZXMpLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCA9IDQwOworCisjZWxpZiBDUFUoQVJNNjQpCisvLyBBbGwgYXJncyBpbiByZWdpc3Rl
cnMuCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0g
MDsKKworI2VsaWYgQ1BVKEFSTSkKKy8vIEZpcnN0IGZvdXIgYXJncyBpbiByZWdpc3RlcnMsIHJl
bWFpbmluZyA0IGFyZ3Mgb24gc3RhY2suCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsID0gMjQ7CisKKyNlbGlmIENQVShTSDQpCisvLyBGaXJzdCBmb3Vy
IGFyZ3MgaW4gcmVnaXN0ZXJzLCByZW1haW5pbmcgNCBhcmdzIG9uIHN0YWNrLgorc3RhdGljIGNv
bnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDI0OworCisjZWxpZiBD
UFUoTUlQUykKKy8vIFRob3VnaCBhcmdzIGFyZSBpbiByZWdpc3RlcnMsIHRoZXJlIG5lZWQgdG8g
YmUgc3BhY2Ugb24gdGhlIHN0YWNrIGZvciBhbGwgYXJncy4KK3N0YXRpYyBjb25zdCBzaXplX3Qg
bWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA0MDsKKworI2Vsc2UKKyNlcnJvciAiVW5z
dXBwb3J0ZWQgQ1BVOiBuZWVkIHZhbHVlIGZvciBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCIKKworI2VuZGlmCisKK0NPTVBJTEVfQVNTRVJUKCEobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwgJSBzaXplb2YoUmVnaXN0ZXIpKSwgZXh0ZW50X211c3RfYmVfaW5fbXVsdGlwbGVzX29m
X3JlZ2lzdGVycyk7CisvLyBNYWtlIHN1cmUgdGhhdCBjZnIgLSBtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCBieXRlcyB3aWxsIG1ha2UgdGhlIHN0YWNrIHBvaW50ZXIgYWxpZ25lZAorQ09N
UElMRV9BU1NFUlQoKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsICUgMTYpID09IDE2IC0g
c2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpLCBleHRlbnRfbXVzdF9hbGlnbl9zdGFja19mcm9tX2Nh
bGxmcmFtZV9wb2ludGVyKTsKKworc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJzID0gbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwg
LyBzaXplb2YoUmVnaXN0ZXIpOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIE1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNywxNSArMzcsMTUgQEAgdm9pZCBDYWxsTGlua0luZm86OnVubGluayhWTSYgdm0s
IFJlcGF0YwogewogICAgIEFTU0VSVChpc0xpbmtlZCgpKTsKICAgICAKKyAgICBpZiAoT3B0aW9u
czo6c2hvd0Rpc2Fzc2VtYmx5KCkpCisgICAgICAgIGRhdGFMb2coIlVubGlua2luZyBjYWxsIGZy
b20gIiwgY2FsbFJldHVybkxvY2F0aW9uLCAiIHRvICIsIHBvaW50ZXJEdW1wKHJlcGF0Y2hCdWZm
ZXIuY29kZUJsb2NrKCkpLCAiXG4iKTsKKwogICAgIHJlcGF0Y2hCdWZmZXIucmV2ZXJ0SnVtcFJl
cGxhY2VtZW50VG9CcmFuY2hQdHJXaXRoUGF0Y2goUmVwYXRjaEJ1ZmZlcjo6c3RhcnRPZkJyYW5j
aFB0cldpdGhQYXRjaE9uUmVnaXN0ZXIoaG90UGF0aEJlZ2luKSwgc3RhdGljX2Nhc3Q8TWFjcm9B
c3NlbWJsZXI6OlJlZ2lzdGVySUQ+KGNhbGxlZUdQUiksIDApOwotICAgIGlmIChpc0RGRykgewot
I2lmIEVOQUJMRShERkdfSklUKQotICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsUmV0
dXJuTG9jYXRpb24sIChjYWxsVHlwZSA9PSBDb25zdHJ1Y3QgPyB2bS5nZXRDVElTdHViKGxpbmtD
b25zdHJ1Y3RUaHVua0dlbmVyYXRvcikgOiB2bS5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5l
cmF0b3IpKS5jb2RlKCkpOwotI2Vsc2UKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSNlbmRpZgotICAgIH0gZWxzZQotICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhj
YWxsUmV0dXJuTG9jYXRpb24sIGNhbGxUeXBlID09IENvbnN0cnVjdCA/IHZtLmdldENUSVN0dWIo
bGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5jb2RlKCkgOiB2bS5nZXRDVElTdHViKGxpbmtD
YWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoCisg
ICAgICAgIGNhbGxSZXR1cm5Mb2NhdGlvbiwKKyAgICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rVGh1
bmtHZW5lcmF0b3JGb3IoCisgICAgICAgICAgICBjYWxsVHlwZSA9PSBDb25zdHJ1Y3QgPyBDb2Rl
Rm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisgICAgICAgICAgICBpc0ZUTCA/IE11c3RQcmVz
ZXJ2ZVJlZ2lzdGVycyA6IFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpKS5jb2RlKCkp
OwogICAgIGhhc1NlZW5TaG91bGRSZXBhdGNoID0gZmFsc2U7CiAgICAgY2FsbGVlLmNsZWFyKCk7
CiAgICAgc3R1Yi5jbGVhcigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsTGlua0luZm8uaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw4ICs1
NSw4IEBAIHN0cnVjdCBDYWxsTGlua0luZm8gOiBwdWJsaWMgQmFzaWNSYXdTZW4KICAgICB9CiAg
ICAgICAgIAogICAgIENhbGxMaW5rSW5mbygpCi0gICAgICAgIDogaGFzU2VlblNob3VsZFJlcGF0
Y2goZmFsc2UpCi0gICAgICAgICwgaXNERkcoZmFsc2UpCisgICAgICAgIDogaXNGVEwoZmFsc2Up
CisgICAgICAgICwgaGFzU2VlblNob3VsZFJlcGF0Y2goZmFsc2UpCiAgICAgICAgICwgaGFzU2Vl
bkNsb3N1cmUoZmFsc2UpCiAgICAgICAgICwgY2FsbFR5cGUoTm9uZSkKICAgICB7CkBAIC03OSw4
ICs3OSw4IEBAIHN0cnVjdCBDYWxsTGlua0luZm8gOiBwdWJsaWMgQmFzaWNSYXdTZW4KICAgICBK
SVRXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gY2FsbGVlOwogICAgIFdyaXRlQmFycmllcjxKU0Z1
bmN0aW9uPiBsYXN0U2VlbkNhbGxlZTsKICAgICBSZWZQdHI8Q2xvc3VyZUNhbGxTdHViUm91dGlu
ZT4gc3R1YjsKKyAgICBib29sIGlzRlRMIDogMTsKICAgICBib29sIGhhc1NlZW5TaG91bGRSZXBh
dGNoIDogMTsKLSAgICBib29sIGlzREZHIDogMTsKICAgICBib29sIGhhc1NlZW5DbG9zdXJlIDog
MTsKICAgICB1bnNpZ25lZCBjYWxsVHlwZSA6IDU7IC8vIENhbGxUeXBlCiAgICAgdW5zaWduZWQg
Y2FsbGVlR1BSIDogODsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxs
TGlua1N0YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rU3RhdHVzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjYsMTMgKzI2LDE3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
Q2FsbExpbmtTdGF0dXMuaCIKIAorI2luY2x1ZGUgIkNhbGxMaW5rSW5mby5oIgogI2luY2x1ZGUg
IkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJMTEludENh
bGxMaW5rSW5mby5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvQ29t
bWFQcmludGVyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CisKIENhbGxMaW5rU3RhdHVzOjpDYWxsTGlua1N0YXR1cyhKU1ZhbHVlIHZh
bHVlKQogICAgIDogbV9jYWxsVGFyZ2V0KHZhbHVlKQogICAgICwgbV9leGVjdXRhYmxlKDApCkBA
IC04MSwxMiArODUsMjQgQEAgSW50cmluc2ljIENhbGxMaW5rU3RhdHVzOjppbnRyaW5zaWNGb3Io
QwogICAgIHJldHVybiBtX2V4ZWN1dGFibGUtPmludHJpbnNpY0ZvcihraW5kKTsKIH0KIAotQ2Fs
bExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiBw
cm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KQorQ2FsbExpbmtTdGF0dXMgQ2Fs
bExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYg
bG9ja2VyLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHByb2ZpbGVkQmxvY2spOwogICAgIFVOVVNFRF9QQVJBTShi
eXRlY29kZUluZGV4KTsKICNpZiBFTkFCTEUoTExJTlQpCisgICAgaWYgKHByb2ZpbGVkQmxvY2st
Pmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgs
IEJhZEZ1bmN0aW9uKSkpIHsKKyAgICAgICAgLy8gV2UgY291bGQgZm9yY2UgdGhpcyB0byBiZSBh
IGNsb3N1cmUgY2FsbCwgYnV0IGluc3RlYWQgd2UnbGwganVzdCBhc3N1bWUgdGhhdCBpdAorICAg
ICAgICAvLyB0YWtlcyBzbG93IHBhdGguCisgICAgICAgIHJldHVybiB0YWtlc1Nsb3dQYXRoKCk7
CisgICAgfQorICAgIAorICAgIFZNJiB2bSA9ICpwcm9maWxlZEJsb2NrLT52bSgpOworICAgIAog
ICAgIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiA9IHByb2ZpbGVkQmxvY2stPmluc3RydWN0aW9u
cygpLmJlZ2luKCkgKyBieXRlY29kZUluZGV4OworICAgIE9wY29kZUlEIG9wID0gdm0uaW50ZXJw
cmV0ZXItPmdldE9wY29kZUlEKGluc3RydWN0aW9uWzBdLnUub3Bjb2RlKTsKKyAgICBpZiAob3Ag
IT0gb3BfY2FsbCAmJiBvcCAhPSBvcF9jb25zdHJ1Y3QpCisgICAgICAgIHJldHVybiBDYWxsTGlu
a1N0YXR1cygpOworICAgIAogICAgIExMSW50Q2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8gPSBp
bnN0cnVjdGlvbls1XS51LmNhbGxMaW5rSW5mbzsKICAgICAKICAgICByZXR1cm4gQ2FsbExpbmtT
dGF0dXMoY2FsbExpbmtJbmZvLT5sYXN0U2VlbkNhbGxlZS5nZXQoKSk7CkBAIC0xMDIsMjcgKzEx
OCwxMTcgQEAgQ2FsbExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGbwogICAgIFVO
VVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKICAgICBVTlVTRURfUEFSQU0oYnl0ZWNvZGVJbmRl
eCk7CiAjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUo
bG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGUpKQor
ICAgICAgICB8fCBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVl
bnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQpKQorICAgICAgICB8
fCBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0
ZShieXRlY29kZUluZGV4LCBCYWRFeGVjdXRhYmxlKSkpCisgICAgICAgIHJldHVybiB0YWtlc1Ns
b3dQYXRoKCk7CisgICAgCiAgICAgaWYgKCFwcm9maWxlZEJsb2NrLT5oYXNCYXNlbGluZUpJVFBy
b2ZpbGluZygpKQotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxlZEJsb2Nr
LCBieXRlY29kZUluZGV4KTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQobG9ja2Vy
LCBwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KTsKICAgICAKICAgICBpZiAocHJvZmlsZWRC
bG9jay0+Y291bGRUYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpCi0gICAgICAgIHJldHVybiBD
YWxsTGlua1N0YXR1czo6dGFrZXNTbG93UGF0aCgpOworICAgICAgICByZXR1cm4gdGFrZXNTbG93
UGF0aCgpOwogICAgIAogICAgIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvID0gcHJvZmlsZWRC
bG9jay0+Z2V0Q2FsbExpbmtJbmZvKGJ5dGVjb2RlSW5kZXgpOworICAgIAorICAgIENhbGxMaW5r
U3RhdHVzIHJlc3VsdCA9IGNvbXB1dGVGb3IobG9ja2VyLCBjYWxsTGlua0luZm8pOworICAgIGlm
ICghcmVzdWx0KQorICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChsb2NrZXIsIHByb2Zp
bGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpOworICAgIAorICAgIGlmIChwcm9maWxlZEJsb2NrLT5o
YXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBC
YWRGdW5jdGlvbikpKQorICAgICAgICByZXN1bHQubWFrZUNsb3N1cmVDYWxsKCk7CisgICAgCisg
ICAgcmV0dXJuIHJlc3VsdDsKKyNlbHNlCisgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKCk7Cisj
ZW5kaWYKK30KKworQ2FsbExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3IoY29u
c3QgQ29uY3VycmVudEpJVExvY2tlciYsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQorewog
ICAgIGlmIChjYWxsTGlua0luZm8uc3R1YikKICAgICAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVz
KGNhbGxMaW5rSW5mby5zdHViLT5leGVjdXRhYmxlKCksIGNhbGxMaW5rSW5mby5zdHViLT5zdHJ1
Y3R1cmUoKSk7CiAgICAgCiAgICAgSlNGdW5jdGlvbiogdGFyZ2V0ID0gY2FsbExpbmtJbmZvLmxh
c3RTZWVuQ2FsbGVlLmdldCgpOwogICAgIGlmICghdGFyZ2V0KQotICAgICAgICByZXR1cm4gY29t
cHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KTsKKyAgICAgICAgcmV0
dXJuIENhbGxMaW5rU3RhdHVzKCk7CiAgICAgCiAgICAgaWYgKGNhbGxMaW5rSW5mby5oYXNTZWVu
Q2xvc3VyZSkKICAgICAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKHRhcmdldC0+ZXhlY3V0YWJs
ZSgpLCB0YXJnZXQtPnN0cnVjdHVyZSgpKTsKIAogICAgIHJldHVybiBDYWxsTGlua1N0YXR1cyh0
YXJnZXQpOwotI2Vsc2UKLSAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXMoKTsKLSNlbmRpZgorfQor
Cit2b2lkIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlREZHU3RhdHVzZXMoCisgICAgQ29kZUJsb2Nr
KiBkZmdDb2RlQmxvY2ssIENhbGxMaW5rU3RhdHVzOjpDb250ZXh0TWFwJiBtYXApCit7CisjaWYg
RU5BQkxFKERGR19KSVQpCisgICAgUkVMRUFTRV9BU1NFUlQoZGZnQ29kZUJsb2NrLT5qaXRUeXBl
KCkgPT0gSklUQ29kZTo6REZHSklUKTsKKyAgICBDb2RlQmxvY2sqIGJhc2VsaW5lQ29kZUJsb2Nr
ID0gZGZnQ29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpOworICAgIERGRzo6SklUQ29kZSogaml0Q29k
ZSA9IGRmZ0NvZGVCbG9jay0+aml0Q29kZSgpLT5kZmcoKTsKKyAgICBSRUxFQVNFX0FTU0VSVChk
ZmdDb2RlQmxvY2stPm51bWJlck9mQ2FsbExpbmtJbmZvcygpIDw9IGppdENvZGUtPnNsb3dQYXRo
Q2FsbHMuc2l6ZSgpKTsKKyAgICAKKyAgICBmb3IgKHNpemVfdCBpID0gZGZnQ29kZUJsb2NrLT5u
dW1iZXJPZkNhbGxMaW5rSW5mb3MoKTsgaS0tOykgeworICAgICAgICBDYWxsTGlua0luZm8mIGlu
Zm8gPSBkZmdDb2RlQmxvY2stPmNhbGxMaW5rSW5mbyhpKTsKKyAgICAgICAgQ29kZU9yaWdpbiBj
b2RlT3JpZ2luID0gaW5mby5jb2RlT3JpZ2luOworICAgICAgICAKKyAgICAgICAgYm9vbCB0YWtl
U2xvd1BhdGg7CisgICAgICAgIGJvb2wgYmFkRnVuY3Rpb247CisgICAgICAgIAorICAgICAgICAv
LyBDaGVjayBpZiB3ZSBoYWQgYWxyZWFkeSBwcmV2aW91c2x5IG1hZGUgYSB0ZXJyaWJsZSBtaXN0
YWtlIGluIHRoZSBGVEwgZm9yIHRoaXMKKyAgICAgICAgLy8gY29kZSBvcmlnaW4uIE5vdGUgdGhh
dCB0aGlzIGlzIGFwcHJveGltYXRlIGJlY2F1c2Ugd2UgY291bGQgaGF2ZSBhIG1vbm92YXJpYW50
CisgICAgICAgIC8vIGlubGluZSBpbiB0aGUgRlRMIHRoYXQgZW5kZWQgdXAgZmFpbGluZy4gV2Ug
c2hvdWxkIGZpeCB0aGF0IGF0IHNvbWUgcG9pbnQgYnkKKyAgICAgICAgLy8gaGF2aW5nIGRhdGEg
c3RydWN0dXJlcyB0byB0cmFjayB0aGUgY29udGV4dCBvZiBmcmVxdWVudCBleGl0cy4gVGhpcyBp
cyBjdXJyZW50bHkKKyAgICAgICAgLy8gY2hhbGxlbmdpbmcgYmVjYXVzZSBpdCB3b3VsZCByZXF1
aXJlIGNyZWF0aW5nIGEgQ29kZU9yaWdpbi1iYXNlZCBkYXRhYmFzZSBpbgorICAgICAgICAvLyBi
YXNlbGluZSBDb2RlQmxvY2tzLCBidXQgdGhvc2UgQ29kZUJsb2NrcyBkb24ndCByZWFsbHkgaGF2
ZSBhIHBsYWNlIHRvIHB1dCB0aGUKKyAgICAgICAgLy8gSW5saW5lQ2FsbEZyYW1lcy4KKyAgICAg
ICAgQ29kZUJsb2NrKiBjdXJyZW50QmFzZWxpbmUgPQorICAgICAgICAgICAgYmFzZWxpbmVDb2Rl
QmxvY2tGb3JPcmlnaW5BbmRCYXNlbGluZUNvZGVCbG9jayhjb2RlT3JpZ2luLCBiYXNlbGluZUNv
ZGVCbG9jayk7CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKGN1cnJlbnRCYXNlbGluZS0+bV9sb2NrKTsKKyAgICAgICAgICAgIHRha2VTbG93UGF0aCA9
CisgICAgICAgICAgICAgICAgY3VycmVudEJhc2VsaW5lLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERG
Rzo6RnJlcXVlbnRFeGl0U2l0ZShjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlLCBF
eGl0RnJvbUZUTCkpCisgICAgICAgICAgICAgICAgfHwgY3VycmVudEJhc2VsaW5lLT5oYXNFeGl0
U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShjb2RlT3JpZ2luLmJ5dGVjb2RlSW5k
ZXgsIEJhZENhY2hlV2F0Y2hwb2ludCwgRXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHx8
IGN1cnJlbnRCYXNlbGluZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNp
dGUoY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBCYWRFeGVjdXRhYmxlLCBFeGl0RnJvbUZUTCkp
OworICAgICAgICAgICAgYmFkRnVuY3Rpb24gPQorICAgICAgICAgICAgICAgIGN1cnJlbnRCYXNl
bGluZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdp
bi5ieXRlY29kZUluZGV4LCBCYWRGdW5jdGlvbiwgRXhpdEZyb21GVEwpKTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2Nr
ZXIoZGZnQ29kZUJsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgaWYgKHRha2VTbG93UGF0aCB8
fCBqaXRDb2RlLT5zbG93UGF0aENhbGxzW2ldID49IE9wdGlvbnM6OmNvdWxkVGFrZVNsb3dDYXNl
TWluaW11bUNvdW50KCkpCisgICAgICAgICAgICAgICAgbWFwLmFkZChpbmZvLmNvZGVPcmlnaW4s
IHRha2VzU2xvd1BhdGgoKSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBD
YWxsTGlua1N0YXR1cyBzdGF0dXMgPSBjb21wdXRlRm9yKGxvY2tlciwgaW5mbyk7CisgICAgICAg
ICAgICAgICAgaWYgKHN0YXR1cy5pc1NldCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChi
YWRGdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy5tYWtlQ2xvc3VyZUNh
bGwoKTsKKyAgICAgICAgICAgICAgICAgICAgbWFwLmFkZChpbmZvLmNvZGVPcmlnaW4sIHN0YXR1
cyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
I2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorICAgIAorICAgIGlmICh2ZXJib3NlKSB7CisgICAg
ICAgIGRhdGFMb2coIkNvbnRleHQgbWFwOlxuIik7CisgICAgICAgIENvbnRleHRNYXA6Oml0ZXJh
dG9yIGl0ZXIgPSBtYXAuYmVnaW4oKTsKKyAgICAgICAgQ29udGV4dE1hcDo6aXRlcmF0b3IgZW5k
ID0gbWFwLmVuZCgpOworICAgICAgICBmb3IgKDsgaXRlciAhPSBlbmQ7ICsraXRlcikgeworICAg
ICAgICAgICAgZGF0YUxvZygiICAgICIsIGl0ZXItPmtleSwgIjpcbiIpOworICAgICAgICAgICAg
ZGF0YUxvZygiICAgICAgICAiLCBpdGVyLT52YWx1ZSwgIlxuIik7CisgICAgICAgIH0KKyAgICB9
Cit9CisKK0NhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKAorICAgIENv
ZGVCbG9jayogcHJvZmlsZWRCbG9jaywgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBDYWxs
TGlua1N0YXR1czo6Q29udGV4dE1hcCYgbWFwKQoreworICAgIENvbnRleHRNYXA6OmNvbnN0X2l0
ZXJhdG9yIGl0ZXIgPSBtYXAuZmluZChjb2RlT3JpZ2luKTsKKyAgICBpZiAoaXRlciAhPSBtYXAu
ZW5kKCkpCisgICAgICAgIHJldHVybiBpdGVyLT52YWx1ZTsKKyAgICAKKyAgICByZXR1cm4gY29t
cHV0ZUZvcihwcm9maWxlZEJsb2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwogfQogCiB2
b2lkIENhbGxMaW5rU3RhdHVzOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuaAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5r
U3RhdHVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDcgKzI2LDkgQEAKICNpZm5k
ZWYgQ2FsbExpbmtTdGF0dXNfaAogI2RlZmluZSBDYWxsTGlua1N0YXR1c19oCiAKKyNpbmNsdWRl
ICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVkZSAiQ29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgorI2lu
Y2x1ZGUgIkNvbmN1cnJlbnRKSVRMb2NrLmgiCiAjaW5jbHVkZSAiSW50cmluc2ljLmgiCiAjaW5j
bHVkZSAiSlNDSlNWYWx1ZS5oIgogCkBAIC0zNyw2ICszOSw3IEBAIGNsYXNzIEV4ZWN1dGFibGVC
YXNlOwogY2xhc3MgSW50ZXJuYWxGdW5jdGlvbjsKIGNsYXNzIEpTRnVuY3Rpb247CiBjbGFzcyBT
dHJ1Y3R1cmU7CitzdHJ1Y3QgQ2FsbExpbmtJbmZvOwogCiBjbGFzcyBDYWxsTGlua1N0YXR1cyB7
CiBwdWJsaWM6CkBAIC03NCwzMSArNzcsMTkgQEAgcHVibGljOgogICAgIAogICAgIHN0YXRpYyBD
YWxsTGlua1N0YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5k
ZXgpOwogICAgIAotICAgIENhbGxMaW5rU3RhdHVzJiBzZXRIYXNCYWRGdW5jdGlvbkV4aXRTaXRl
KGJvb2wgZGlkSGF2ZUV4aXRTaXRlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2lzUHJvdmVk
KTsKLSAgICAgICAgaWYgKGRpZEhhdmVFeGl0U2l0ZSkgewotICAgICAgICAgICAgLy8gVHVybiB0
aGlzIGludG8gYSBjbG9zdXJlIGNhbGwuCi0gICAgICAgICAgICBtX2NhbGxUYXJnZXQgPSBKU1Zh
bHVlKCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KKyAgICAvLyBD
b21wdXRlcyB0aGUgc3RhdHVzIGFzc3VtaW5nIHRoYXQgd2UgbmV2ZXIgdG9vayBzbG93IHBhdGgg
YW5kIG5ldmVyIHByZXZpb3VzbHkKKyAgICAvLyBleGl0ZWQuCisgICAgc3RhdGljIENhbGxMaW5r
U3RhdHVzIGNvbXB1dGVGb3IoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENhbGxMaW5rSW5m
byYpOworICAgIAorICAgIHR5cGVkZWYgSGFzaE1hcDxDb2RlT3JpZ2luLCBDYWxsTGlua1N0YXR1
cywgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQ29udGV4dE1hcDsKKyAgICAKKyAgICAvLyBD
b21wdXRlcyBhbGwgb2YgdGhlIHN0YXR1c2VzIG9mIHRoZSBERkcgY29kZSBibG9jay4gRG9lc24n
dCBpbmNsdWRlIHN0YXR1c2VzIHRoYXQgaGFkCisgICAgLy8gbm8gaW5mb3JtYXRpb24uIEN1cnJl
bnRseSB3ZSB1c2UgdGhpcyB3aGVuIGNvbXBpbGluZyBGVEwgY29kZSwgdG8gZW5hYmxlIHBvbHl2
YXJpYW50CisgICAgLy8gaW5saW5pbmcuCisgICAgc3RhdGljIHZvaWQgY29tcHV0ZURGR1N0YXR1
c2VzKENvZGVCbG9jayogZGZnQ29kZUJsb2NrLCBDb250ZXh0TWFwJik7CiAgICAgCi0gICAgQ2Fs
bExpbmtTdGF0dXMmIHNldEhhc0JhZENhY2hlRXhpdFNpdGUoYm9vbCBkaWRIYXZlRXhpdFNpdGUp
Ci0gICAgewotICAgICAgICBBU1NFUlQoIW1faXNQcm92ZWQpOwotICAgICAgICBpZiAoZGlkSGF2
ZUV4aXRTaXRlKQotICAgICAgICAgICAgKnRoaXMgPSB0YWtlc1Nsb3dQYXRoKCk7Ci0gICAgICAg
IHJldHVybiAqdGhpczsKLSAgICB9Ci0gICAgCi0gICAgQ2FsbExpbmtTdGF0dXMmIHNldEhhc0Jh
ZEV4ZWN1dGFibGVFeGl0U2l0ZShib29sIGRpZEhhdmVFeGl0U2l0ZSkKLSAgICB7Ci0gICAgICAg
IEFTU0VSVCghbV9pc1Byb3ZlZCk7Ci0gICAgICAgIGlmIChkaWRIYXZlRXhpdFNpdGUpCi0gICAg
ICAgICAgICAqdGhpcyA9IHRha2VzU2xvd1BhdGgoKTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwot
ICAgIH0KKyAgICAvLyBIZWxwZXIgdGhhdCBmaXJzdCBjb25zdWx0cyB0aGUgQ29udGV4dE1hcCBh
bmQgdGhlbiBkb2VzIGNvbXB1dGVGb3IoKS4KKyAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29t
cHV0ZUZvcihDb2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBDb250ZXh0TWFwJik7CiAgICAg
CiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbFRhcmdldCB8fCBtX2V4ZWN1
dGFibGUgfHwgbV9jb3VsZFRha2VTbG93UGF0aDsgfQogICAgIApAQCAtMTE5LDcgKzExMCwxNCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCiBwcml2
YXRlOgotICAgIHN0YXRpYyBDYWxsTGlua1N0YXR1cyBjb21wdXRlRnJvbUxMSW50KENvZGVCbG9j
ayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpOworICAgIHZvaWQgbWFrZUNsb3N1cmVDYWxsKCkK
KyAgICB7CisgICAgICAgIEFTU0VSVCghbV9pc1Byb3ZlZCk7CisgICAgICAgIC8vIFR1cm4gdGhp
cyBpbnRvIGEgY2xvc3VyZSBjYWxsLgorICAgICAgICBtX2NhbGxUYXJnZXQgPSBKU1ZhbHVlKCk7
CisgICAgfQorICAgIAorICAgIHN0YXRpYyBDYWxsTGlua1N0YXR1cyBjb21wdXRlRnJvbUxMSW50
KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29k
ZUluZGV4KTsKICAgICAKICAgICBKU1ZhbHVlIG1fY2FsbFRhcmdldDsKICAgICBFeGVjdXRhYmxl
QmFzZSogbV9leGVjdXRhYmxlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksMTAgKzEy
OSwxNSBAQCBDU3RyaW5nIENvZGVCbG9jazo6c291cmNlQ29kZU9uT25lTGluZSgpCiAKIHZvaWQg
Q29kZUJsb2NrOjpkdW1wQXNzdW1pbmdKSVRUeXBlKFByaW50U3RyZWFtJiBvdXQsIEpJVENvZGU6
OkpJVFR5cGUgaml0VHlwZSkgY29uc3QKIHsKKyAgICBvdXQucHJpbnQoaW5mZXJyZWROYW1lKCks
ICIjIik7CiAgICAgaWYgKGhhc0hhc2goKSB8fCBpc1NhZmVUb0NvbXB1dGVIYXNoKCkpCi0gICAg
ICAgIG91dC5wcmludChpbmZlcnJlZE5hbWUoKSwgIiMiLCBoYXNoKCksICI6WyIsIFJhd1BvaW50
ZXIodGhpcyksICItPiIsIFJhd1BvaW50ZXIob3duZXJFeGVjdXRhYmxlKCkpLCAiLCAiLCBqaXRU
eXBlLCBjb2RlVHlwZSgpKTsKKyAgICAgICAgb3V0LnByaW50KGhhc2goKSk7CiAgICAgZWxzZQot
ICAgICAgICBvdXQucHJpbnQoaW5mZXJyZWROYW1lKCksICIjPG5vLWhhc2g+OlsiLCBSYXdQb2lu
dGVyKHRoaXMpLCAiLT4iLCBSYXdQb2ludGVyKG93bmVyRXhlY3V0YWJsZSgpKSwgIiwgIiwgaml0
VHlwZSwgY29kZVR5cGUoKSk7CisgICAgICAgIG91dC5wcmludCgiPG5vLWhhc2g+Iik7CisgICAg
b3V0LnByaW50KCI6WyIsIFJhd1BvaW50ZXIodGhpcyksICItPiIpOworICAgIGlmICghIW1fYWx0
ZXJuYXRpdmUpCisgICAgICAgIG91dC5wcmludChSYXdQb2ludGVyKG1fYWx0ZXJuYXRpdmUuZ2V0
KCkpLCAiLT4iKTsKKyAgICBvdXQucHJpbnQoUmF3UG9pbnRlcihvd25lckV4ZWN1dGFibGUoKSks
ICIsICIsIGppdFR5cGUsIGNvZGVUeXBlKCkpOwogCiAgICAgaWYgKGNvZGVUeXBlKCkgPT0gRnVu
Y3Rpb25Db2RlKQogICAgICAgICBvdXQucHJpbnQoc3BlY2lhbGl6YXRpb25LaW5kKCkpOwpAQCAt
MTQzLDYgKzE0OCwxMCBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEFzc3VtaW5nSklUVHlwZShQcmlu
CiAgICAgICAgIG91dC5wcmludCgiIChOZXZlcklubGluZSkiKTsKICAgICBpZiAob3duZXJFeGVj
dXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpKQogICAgICAgICBvdXQucHJpbnQoIiAoU3RyaWN0TW9k
ZSkiKTsKKyAgICBpZiAodGhpcy0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2VsaW5lSklUICYm
IG1fZGlkRmFpbEZUTENvbXBpbGF0aW9uKQorICAgICAgICBvdXQucHJpbnQoIiAoRlRMRmFpbCki
KTsKKyAgICBpZiAodGhpcy0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2VsaW5lSklUICYmIG1f
aGFzQmVlbkNvbXBpbGVkV2l0aEZUTCkKKyAgICAgICAgb3V0LnByaW50KCIgKEhhZEZUTFJlcGxh
Y2VtZW50KSIpOwogICAgIG91dC5wcmludCgiXSIpOwogfQogCkBAIC01MjYsMTIgKzUzNSw3IEBA
IHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICBvdXQucHJpbnRm
KCJcbiIpOwogICAgIAogICAgIFN0dWJJbmZvTWFwIHN0dWJJbmZvczsKLSNpZiBFTkFCTEUoSklU
KQotICAgIHsKLSAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAg
ICAgICAgZ2V0U3R1YkluZm9NYXAobG9ja2VyLCBzdHViSW5mb3MpOwotICAgIH0KLSNlbmRpZgor
ICAgIGdldFN0dWJJbmZvTWFwKHN0dWJJbmZvcyk7CiAgICAgCiAgICAgY29uc3QgSW5zdHJ1Y3Rp
b24qIGJlZ2luID0gaW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKICAgICBjb25zdCBJbnN0cnVjdGlv
biogZW5kID0gaW5zdHJ1Y3Rpb25zKCkuZW5kKCk7CkBAIC0xNDY5LDYgKzE0NzMsNyBAQCBDb2Rl
QmxvY2s6OkNvZGVCbG9jayhDb3B5UGFyc2VkQmxvY2tUYWcsCiAgICAgLCBtX2lzQ29uc3RydWN0
b3Iob3RoZXIubV9pc0NvbnN0cnVjdG9yKQogICAgICwgbV9zaG91bGRBbHdheXNCZUlubGluZWQo
dHJ1ZSkKICAgICAsIG1fZGlkRmFpbEZUTENvbXBpbGF0aW9uKGZhbHNlKQorICAgICwgbV9oYXNC
ZWVuQ29tcGlsZWRXaXRoRlRMKGZhbHNlKQogICAgICwgbV91bmxpbmtlZENvZGUoKm90aGVyLm1f
dm0sIG90aGVyLm1fb3duZXJFeGVjdXRhYmxlLmdldCgpLCBvdGhlci5tX3VubGlua2VkQ29kZS5n
ZXQoKSkKICAgICAsIG1fc3RlcHBpbmdNb2RlKFN0ZXBwaW5nTW9kZURpc2FibGVkKQogICAgICwg
bV9udW1CcmVha3BvaW50cygwKQpAQCAtMTUyNSw2ICsxNTMwLDcgQEAgQ29kZUJsb2NrOjpDb2Rl
QmxvY2soU2NyaXB0RXhlY3V0YWJsZSogbwogICAgICwgbV9pc0NvbnN0cnVjdG9yKHVubGlua2Vk
Q29kZUJsb2NrLT5pc0NvbnN0cnVjdG9yKCkpCiAgICAgLCBtX3Nob3VsZEFsd2F5c0JlSW5saW5l
ZCh0cnVlKQogICAgICwgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb24oZmFsc2UpCisgICAgLCBtX2hh
c0JlZW5Db21waWxlZFdpdGhGVEwoZmFsc2UpCiAgICAgLCBtX3VubGlua2VkQ29kZShtX2dsb2Jh
bE9iamVjdC0+dm0oKSwgb3duZXJFeGVjdXRhYmxlLCB1bmxpbmtlZENvZGVCbG9jaykKICAgICAs
IG1fc3RlcHBpbmdNb2RlKFN0ZXBwaW5nTW9kZURpc2FibGVkKQogICAgICwgbV9udW1CcmVha3Bv
aW50cygwKQpAQCAtMTg1NCwyMyArMTg2MCwxMyBAQCBDb2RlQmxvY2s6OkNvZGVCbG9jayhTY3Jp
cHRFeGVjdXRhYmxlKiBvCiAKICAgICAvLyBJZiB0aGUgY29uY3VycmVudCB0aHJlYWQgd2lsbCB3
YW50IHRoZSBjb2RlIGJsb2NrJ3MgaGFzaCwgdGhlbiBjb21wdXRlIGl0IGhlcmUKICAgICAvLyBz
eW5jaHJvbm91c2x5LgotICAgIGlmIChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHkoKQotICAgICAg
ICB8fCBPcHRpb25zOjpzaG93REZHRGlzYXNzZW1ibHkoKQotICAgICAgICB8fCBPcHRpb25zOjpk
dW1wQnl0ZWNvZGVBdERGR1RpbWUoKQotICAgICAgICB8fCBPcHRpb25zOjpkdW1wR3JhcGhBdEVh
Y2hQaGFzZSgpCi0gICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpCi0gICAg
ICAgIHx8IE9wdGlvbnM6OmxvZ0NvbXBpbGF0aW9uQ2hhbmdlcygpCi0gICAgICAgIHx8IE9wdGlv
bnM6OnZhbGlkYXRlR3JhcGgoKQotICAgICAgICB8fCBPcHRpb25zOjp2YWxpZGF0ZUdyYXBoQXRF
YWNoUGhhc2UoKQotICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlT1NSKCkKLSAgICAgICAgfHwg
T3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uUXVldWUoKQotICAgICAgICB8fCBPcHRpb25zOjpy
ZXBvcnRDb21waWxlVGltZXMoKQotICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ0ZBKCkpCisg
ICAgaWYgKE9wdGlvbnM6OmFsd2F5c0NvbXB1dGVIYXNoKCkpCiAgICAgICAgIGhhc2goKTsKIAog
ICAgIGlmIChPcHRpb25zOjpkdW1wR2VuZXJhdGVkQnl0ZWNvZGVzKCkpCiAgICAgICAgIGR1bXBC
eXRlY29kZSgpOwogCisgICAgCiAgICAgbV9oZWFwLT5tX2NvZGVCbG9ja3MuYWRkKHRoaXMpOwog
ICAgIG1faGVhcC0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KHNpemVvZihDb2RlQmxvY2spICsgbV9p
bnN0cnVjdGlvbnMuc2l6ZSgpICogc2l6ZW9mKEluc3RydWN0aW9uKSk7CiB9CkBAIC0yMzM0LDE2
ICsyMzMwLDI2IEBAIHZvaWQgQ29kZUJsb2NrOjpmaW5hbGl6ZVVuY29uZGl0aW9uYWxseSgKICNl
bmRpZgogfQogCit2b2lkIENvZGVCbG9jazo6Z2V0U3R1YkluZm9NYXAoY29uc3QgQ29uY3VycmVu
dEpJVExvY2tlciYsIFN0dWJJbmZvTWFwJiByZXN1bHQpCit7CiAjaWYgRU5BQkxFKEpJVCkKLVN0
cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmFkZFN0dWJJbmZvKCkKKyAgICB0b0hhc2hNYXAo
bV9zdHViSW5mb3MsIGdldFN0cnVjdHVyZVN0dWJJbmZvQ29kZU9yaWdpbiwgcmVzdWx0KTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwordm9pZCBDb2RlQmxv
Y2s6OmdldFN0dWJJbmZvTWFwKFN0dWJJbmZvTWFwJiByZXN1bHQpCiB7CiAgICAgQ29uY3VycmVu
dEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICByZXR1cm4gbV9zdHViSW5mb3MuYWRkKCk7
CisgICAgZ2V0U3R1YkluZm9NYXAobG9ja2VyLCByZXN1bHQpOwogfQogCi12b2lkIENvZGVCbG9j
azo6Z2V0U3R1YkluZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIFN0dWJJbmZvTWFw
JiByZXN1bHQpCisjaWYgRU5BQkxFKEpJVCkKK1N0cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6
OmFkZFN0dWJJbmZvKCkKIHsKLSAgICB0b0hhc2hNYXAobV9zdHViSW5mb3MsIGdldFN0cnVjdHVy
ZVN0dWJJbmZvQ29kZU9yaWdpbiwgcmVzdWx0KTsKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2xvY2spOworICAgIHJldHVybiBtX3N0dWJJbmZvcy5hZGQoKTsKIH0KIAogdm9pZCBD
b2RlQmxvY2s6OnJlc2V0U3R1YihTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8pCkBAIC0yODk5
LDYgKzI5MDUsMTEgQEAgdm9pZCBDb2RlQmxvY2s6OmNvdW50UmVvcHRpbWl6YXRpb24oKQogdW5z
aWduZWQgQ29kZUJsb2NrOjpudW1iZXJPZkRGR0NvbXBpbGVzKCkKIHsKICAgICBBU1NFUlQoSklU
Q29kZTo6aXNCYXNlbGluZUNvZGUoaml0VHlwZSgpKSk7CisgICAgaWYgKE9wdGlvbnM6OnRlc3RU
aGVGVEwoKSkgeworICAgICAgICBpZiAobV9kaWRGYWlsRlRMQ29tcGlsYXRpb24pCisgICAgICAg
ICAgICByZXR1cm4gMTAwMDAwMDsKKyAgICAgICAgcmV0dXJuIChtX2hhc0JlZW5Db21waWxlZFdp
dGhGVEwgPyAxIDogMCkgKyBtX3Jlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyOworICAgIH0KICAg
ICByZXR1cm4gKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChyZXBsYWNlbWVudCgpLT5qaXRUeXBl
KCkpID8gMSA6IDApICsgbV9yZW9wdGltaXphdGlvblJldHJ5Q291bnRlcjsKIH0KIApAQCAtMzAx
MCw3ICszMDIxLDcgQEAgaW50MzJfdCBDb2RlQmxvY2s6OmFkanVzdGVkQ291bnRlclZhbHVlKAog
Ym9vbCBDb2RlQmxvY2s6OmNoZWNrSWZPcHRpbWl6YXRpb25UaHJlc2hvbGRSZWFjaGVkKCkKIHsK
ICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICBpZiAoREZHOjpXb3JrbGlzdCogd29ya2xpc3QgPSBt
X3ZtLT53b3JrbGlzdC5nZXQoKSkgeworICAgIGlmIChERkc6OldvcmtsaXN0KiB3b3JrbGlzdCA9
IERGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpKSB7CiAgICAgICAgIGlmICh3
b3JrbGlzdC0+Y29tcGlsYXRpb25TdGF0ZShERkc6OkNvbXBpbGF0aW9uS2V5KHRoaXMsIERGRzo6
REZHTW9kZSkpCiAgICAgICAgICAgICA9PSBERkc6OldvcmtsaXN0OjpDb21waWxlZCkgewogICAg
ICAgICAgICAgb3B0aW1pemVOZXh0SW52b2NhdGlvbigpOwpAQCAtMzM0MSw2ICszMzUyLDExIEBA
IHVuc2lnbmVkIENvZGVCbG9jazo6ZnJhbWVSZWdpc3RlckNvdW50KCkKICAgICB9CiB9CiAKK2lu
dCBDb2RlQmxvY2s6OnN0YWNrUG9pbnRlck9mZnNldCgpCit7CisgICAgcmV0dXJuIHZpcnR1YWxS
ZWdpc3RlckZvckxvY2FsKGZyYW1lUmVnaXN0ZXJDb3VudCgpIC0gMSkub2Zmc2V0KCk7Cit9CisK
IHNpemVfdCBDb2RlQmxvY2s6OnByZWRpY3RlZE1hY2hpbmVDb2RlU2l6ZSgpCiB7CiAgICAgLy8g
VGhpcyB3aWxsIGJlIGNhbGxlZCBmcm9tIENvZGVCbG9jazo6Q29kZUJsb2NrIGJlZm9yZSBlaXRo
ZXIgbV92bSBvciB0aGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDYgKzE3NSw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGV4cHJlc3Npb25SYW5nZUZvckJ5dGVjb2RlT2Zmc2V0KHVuc2lnbmVkIGJ5
dGVjb2RlT2Zmc2V0LCBpbnQmIGRpdm90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50JiBzdGFydE9mZnNldCwgaW50JiBlbmRPZmZzZXQsIHVuc2lnbmVkJiBs
aW5lLCB1bnNpZ25lZCYgY29sdW1uKTsKIAorICAgIHZvaWQgZ2V0U3R1YkluZm9NYXAoY29uc3Qg
Q29uY3VycmVudEpJVExvY2tlciYsIFN0dWJJbmZvTWFwJiByZXN1bHQpOworICAgIHZvaWQgZ2V0
U3R1YkluZm9NYXAoU3R1YkluZm9NYXAmIHJlc3VsdCk7CisKICNpZiBFTkFCTEUoSklUKQogICAg
IFN0cnVjdHVyZVN0dWJJbmZvKiBhZGRTdHViSW5mbygpOwogICAgIEJhZzxTdHJ1Y3R1cmVTdHVi
SW5mbz46Oml0ZXJhdG9yIGJlZ2luKCkgeyByZXR1cm4gbV9zdHViSW5mb3MuYmVnaW4oKTsgfQpA
QCAtMTgyLDggKzE4NSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVzZXRTdHViKFN0cnVjdHVy
ZVN0dWJJbmZvJik7CiAgICAgCi0gICAgdm9pZCBnZXRTdHViSW5mb01hcChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgU3R1YkluZm9NYXAmIHJlc3VsdCk7Ci0KICAgICBCeVZhbEluZm8mIGdl
dEJ5VmFsSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4KQogICAgIHsKICAgICAgICAgcmV0dXJu
ICooYmluYXJ5U2VhcmNoPEJ5VmFsSW5mbywgdW5zaWduZWQ+KG1fYnlWYWxJbmZvcywgbV9ieVZh
bEluZm9zLnNpemUoKSwgYnl0ZWNvZGVJbmRleCwgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleCkp
OwpAQCAtMjU2LDE3ICsyNTcsMTUgQEAgcHVibGljOgogICAgIC8vIEV4YWN0bHkgZXF1aXZhbGVu
dCB0byBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLT5uZXdSZXBsYWNlbWVudENvZGVCbG9j
a0Zvcihjb2RlQmxvY2stPnNwZWNpYWxpemF0aW9uS2luZCgpKQogICAgIFBhc3NSZWZQdHI8Q29k
ZUJsb2NrPiBuZXdSZXBsYWNlbWVudCgpOwogICAgIAotICAgIHZvaWQgc2V0SklUQ29kZShQYXNz
UmVmUHRyPEpJVENvZGU+IGNvZGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlV2l0aEFyaXR5
Q2hlY2spCisgICAgdm9pZCBzZXRKSVRDb2RlKFBhc3NSZWZQdHI8SklUQ29kZT4gY29kZSkKICAg
ICB7CiAgICAgICAgIEFTU0VSVChtX2hlYXAtPmlzRGVmZXJyZWQoKSk7CiAgICAgICAgIG1faGVh
cC0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KGNvZGUtPnNpemUoKSk7CiAgICAgICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgIFdURjo6c3RvcmVTdG9yZUZlbmNl
KCk7IC8vIFRoaXMgaXMgcHJvYmFibHkgbm90IG5lZWRlZCBiZWNhdXNlIHRoZSBsb2NrIHdpbGwg
YWxzbyBkbyBzb21ldGhpbmcgc2ltaWxhciwgYnV0IGl0J3MgZ29vZCB0byBiZSBwYXJhbm9pZC4K
ICAgICAgICAgbV9qaXRDb2RlID0gY29kZTsKLSAgICAgICAgbV9qaXRDb2RlV2l0aEFyaXR5Q2hl
Y2sgPSBjb2RlV2l0aEFyaXR5Q2hlY2s7CiAgICAgfQogICAgIFBhc3NSZWZQdHI8SklUQ29kZT4g
aml0Q29kZSgpIHsgcmV0dXJuIG1faml0Q29kZTsgfQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBqaXRDb2RlV2l0aEFyaXR5Q2hlY2soKSB7IHJldHVybiBtX2ppdENvZGVXaXRoQXJpdHlDaGVj
azsgfQogICAgIEpJVENvZGU6OkpJVFR5cGUgaml0VHlwZSgpIGNvbnN0CiAgICAgewogICAgICAg
ICBKSVRDb2RlKiBqaXRDb2RlID0gbV9qaXRDb2RlLmdldCgpOwpAQCAtNDg5LDggKzQ4OCw4IEBA
IHB1YmxpYzoKICAgICBSYXJlQ2FzZVByb2ZpbGUqIHNwZWNpYWxGYXN0Q2FzZVByb2ZpbGVGb3JC
eXRlY29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpCiAgICAgewogICAgICAgICByZXR1cm4g
dHJ5QmluYXJ5U2VhcmNoPFJhcmVDYXNlUHJvZmlsZSwgaW50PigKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zcGVjaWFsRmFzdENhc2VQcm9m
aWxlcywgbV9zcGVjaWFsRmFzdENhc2VQcm9maWxlcy5zaXplKCksIGJ5dGVjb2RlT2Zmc2V0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRS
YXJlQ2FzZVByb2ZpbGVCeXRlY29kZU9mZnNldCk7CisgICAgICAgICAgICBtX3NwZWNpYWxGYXN0
Q2FzZVByb2ZpbGVzLCBtX3NwZWNpYWxGYXN0Q2FzZVByb2ZpbGVzLnNpemUoKSwgYnl0ZWNvZGVP
ZmZzZXQsCisgICAgICAgICAgICBnZXRSYXJlQ2FzZVByb2ZpbGVCeXRlY29kZU9mZnNldCk7CiAg
ICAgfQogCiAgICAgYm9vbCBsaWtlbHlUb1Rha2VTcGVjaWFsRmFzdENhc2UoaW50IGJ5dGVjb2Rl
T2Zmc2V0KQpAQCAtNTc2LDExICs1NzUsMTUgQEAgcHVibGljOgogICAgICAgICBDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5h
ZGQobG9ja2VyLCBzaXRlKTsKICAgICB9Ci0gICAgICAgIAorCisgICAgYm9vbCBoYXNFeGl0U2l0
ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGNvbnN0IERGRzo6RnJlcXVlbnRF
eGl0U2l0ZSYgc2l0ZSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2V4aXRQcm9maWxl
Lmhhc0V4aXRTaXRlKGxvY2tlciwgc2l0ZSk7CisgICAgfQogICAgIGJvb2wgaGFzRXhpdFNpdGUo
Y29uc3QgREZHOjpGcmVxdWVudEV4aXRTaXRlJiBzaXRlKSBjb25zdAogICAgIHsKICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICAgICAgcmV0dXJuIG1fZXhp
dFByb2ZpbGUuaGFzRXhpdFNpdGUobG9ja2VyLCBzaXRlKTsKKyAgICAgICAgcmV0dXJuIGhhc0V4
aXRTaXRlKGxvY2tlciwgc2l0ZSk7CiAgICAgfQogCiAgICAgREZHOjpFeGl0UHJvZmlsZSYgZXhp
dFByb2ZpbGUoKSB7IHJldHVybiBtX2V4aXRQcm9maWxlOyB9CkBAIC02NzksOSArNjgyLDE5IEBA
IHB1YmxpYzoKIAogICAgIEJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcyYgbGl2ZW5lc3NBbmFseXNp
cygpCiAgICAgewotICAgICAgICBpZiAoIW1fbGl2ZW5lc3NBbmFseXNpcykKLSAgICAgICAgICAg
IG1fbGl2ZW5lc3NBbmFseXNpcyA9IHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNvZGVMaXZlbmVzc0Fu
YWx5c2lzPih0aGlzKTsKLSAgICAgICAgcmV0dXJuICptX2xpdmVuZXNzQW5hbHlzaXM7CisgICAg
ICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Cisg
ICAgICAgICAgICBpZiAoISFtX2xpdmVuZXNzQW5hbHlzaXMpCisgICAgICAgICAgICAgICAgcmV0
dXJuICptX2xpdmVuZXNzQW5hbHlzaXM7CisgICAgICAgIH0KKyAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPEJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcz4gYW5hbHlzaXMgPQorICAgICAgICAgICAgc3Rk
OjptYWtlX3VuaXF1ZTxCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXM+KHRoaXMpOworICAgICAgICB7
CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAg
ICAgICAgaWYgKCFtX2xpdmVuZXNzQW5hbHlzaXMpCisgICAgICAgICAgICAgICAgbV9saXZlbmVz
c0FuYWx5c2lzID0gc3RkOjptb3ZlKGFuYWx5c2lzKTsKKyAgICAgICAgICAgIHJldHVybiAqbV9s
aXZlbmVzc0FuYWx5c2lzOworICAgICAgICB9CiAgICAgfQogICAgIAogICAgIHZvaWQgdmFsaWRh
dGUoKTsKQEAgLTg2Niw2ICs4NzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVBbGxQcmVk
aWN0aW9ucygpOwogCiAgICAgdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50KCk7CisgICAgaW50
IHN0YWNrUG9pbnRlck9mZnNldCgpOwogCiAgICAgYm9vbCBoYXNPcERlYnVnRm9yTGluZUFuZENv
bHVtbih1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1bW4pOwogCkBAIC04OTEsNyArOTA1LDcg
QEAgcHVibGljOgogCiAgICAgaW50IG1fbnVtQ2FsbGVlUmVnaXN0ZXJzOwogICAgIGludCBtX251
bVZhcnM7Ci0gICAgYm9vbCBtX2lzQ29uc3RydWN0b3I7CisgICAgYm9vbCBtX2lzQ29uc3RydWN0
b3IgOiAxOwogICAgIAogICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwdWJsaWM7IGl0J3Mg
dGhlIHJlc3BvbnNpYmlsaXR5IG9mIGFueW9uZSBkb2luZyBhbnkKICAgICAvLyBvZiB0aGUgZm9s
bG93aW5nIHRvIGhvbGQgdGhlIGxvY2s6CkBAIC05MTEsMTAgKzkyNSwxMSBAQCBwdWJsaWM6CiAg
ICAgLy8gY29uY3VycmVudCBjb21waWxhdGlvbiB0aHJlYWRzIGZpbmlzaCB3aGF0IHRoZXkncmUg
ZG9pbmcuCiAgICAgbXV0YWJsZSBDb25jdXJyZW50SklUTG9jayBtX2xvY2s7CiAgICAgCi0gICAg
Ym9vbCBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZDsKLSAgICBib29sIG1fYWxsVHJhbnNpdGlvbnNI
YXZlQmVlbk1hcmtlZDsgLy8gSW5pdGlhbGl6ZWQgYW5kIHVzZWQgb24gZXZlcnkgR0MuCisgICAg
Ym9vbCBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZDsgLy8gTm90IGEgYml0ZmllbGQgYmVjYXVzZSB0
aGUgSklUIHdhbnRzIHRvIHN0b3JlIHRvIGl0LgorICAgIGJvb2wgbV9hbGxUcmFuc2l0aW9uc0hh
dmVCZWVuTWFya2VkIDogMTsgLy8gSW5pdGlhbGl6ZWQgYW5kIHVzZWQgb24gZXZlcnkgR0MuCiAg
ICAgCi0gICAgYm9vbCBtX2RpZEZhaWxGVExDb21waWxhdGlvbjsKKyAgICBib29sIG1fZGlkRmFp
bEZUTENvbXBpbGF0aW9uIDogMTsKKyAgICBib29sIG1faGFzQmVlbkNvbXBpbGVkV2l0aEZUTCA6
IDE7CiAKICAgICAvLyBJbnRlcm5hbCBtZXRob2RzIGZvciB1c2UgYnkgdmFsaWRhdGlvbiBjb2Rl
LiBJdCB3b3VsZCBiZSBwcml2YXRlIGlmIGl0IHdhc24ndAogICAgIC8vIGZvciB0aGUgZmFjdCB0
aGF0IHdlIHVzZSBpdCBmcm9tIGFub255bW91cyBuYW1lc3BhY2VzLgpAQCAtMTA1NCw3ICsxMDY5
LDYgQEAgcHJpdmF0ZToKICAgICBTZW50aW5lbExpbmtlZExpc3Q8TExJbnRDYWxsTGlua0luZm8s
IEJhc2ljUmF3U2VudGluZWxOb2RlPExMSW50Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWluZ0xMSW50
Q2FsbHM7CiAjZW5kaWYKICAgICBSZWZQdHI8SklUQ29kZT4gbV9qaXRDb2RlOwotICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVXaXRoQXJpdHlDaGVjazsKICNpZiBFTkFCTEUoSklU
KQogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7CiAgICAgVmVjdG9yPEJ5
VmFsSW5mbz4gbV9ieVZhbEluZm9zOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlT3JpZ2luLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3
ICs0NSw2NCBAQCB1bnNpZ25lZCBDb2RlT3JpZ2luOjppbmxpbmVEZXB0aCgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIGlubGluZURlcHRoRm9yQ2FsbEZyYW1lKGlubGluZUNhbGxGcmFtZSk7CiB9CisK
K2Jvb2wgQ29kZU9yaWdpbjo6aXNBcHByb3hpbWF0ZWx5RXF1YWxUbyhjb25zdCBDb2RlT3JpZ2lu
JiBvdGhlcikgY29uc3QKK3sKKyAgICBDb2RlT3JpZ2luIGEgPSAqdGhpczsKKyAgICBDb2RlT3Jp
Z2luIGIgPSBvdGhlcjsKKworICAgIGlmICghYS5pc1NldCgpKQorICAgICAgICByZXR1cm4gIWIu
aXNTZXQoKTsKKyAgICBpZiAoIWIuaXNTZXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IAorICAgIGlmIChhLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisgICAgICAgIHJldHVybiBi
LmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CisgICAgaWYgKGIuaXNIYXNoVGFibGVEZWxldGVk
VmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGZvciAoOzspIHsKKyAg
ICAgICAgQVNTRVJUKGEuaXNTZXQoKSk7CisgICAgICAgIEFTU0VSVChiLmlzU2V0KCkpOworICAg
ICAgICAKKyAgICAgICAgaWYgKGEuYnl0ZWNvZGVJbmRleCAhPSBiLmJ5dGVjb2RlSW5kZXgpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAoKCEhYS5pbmxp
bmVDYWxsRnJhbWUpICE9ICghIWIuaW5saW5lQ2FsbEZyYW1lKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmICghYS5pbmxpbmVDYWxsRnJhbWUpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChhLmlubGluZUNhbGxG
cmFtZS0+ZXhlY3V0YWJsZSAhPSBiLmlubGluZUNhbGxGcmFtZS0+ZXhlY3V0YWJsZSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGEgPSBhLmlubGluZUNhbGxG
cmFtZS0+Y2FsbGVyOworICAgICAgICBiID0gYi5pbmxpbmVDYWxsRnJhbWUtPmNhbGxlcjsKKyAg
ICB9Cit9CisKK3Vuc2lnbmVkIENvZGVPcmlnaW46OmFwcHJveGltYXRlSGFzaCgpIGNvbnN0Cit7
CisgICAgaWYgKCFpc1NldCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoaXNIYXNoVGFi
bGVEZWxldGVkVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIDE7CiAgICAgCisgICAgdW5zaWduZWQg
cmVzdWx0ID0gMjsKKyAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSAqdGhpczsKKyAgICBmb3Ig
KDs7KSB7CisgICAgICAgIHJlc3VsdCArPSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXg7CisgICAg
ICAgIAorICAgICAgICBpZiAoIWNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKQorICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIHJlc3VsdCArPSBXVEY6OlB0ckhh
c2g8SlNDZWxsKj46Omhhc2goY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUtPmV4ZWN1dGFibGUu
Z2V0KCkpOworICAgICAgICAKKyAgICAgICAgY29kZU9yaWdpbiA9IGNvZGVPcmlnaW4uaW5saW5l
Q2FsbEZyYW1lLT5jYWxsZXI7CisgICAgfQorfQorCiBWZWN0b3I8Q29kZU9yaWdpbj4gQ29kZU9y
aWdpbjo6aW5saW5lU3RhY2soKSBjb25zdAogewogICAgIFZlY3RvcjxDb2RlT3JpZ2luPiByZXN1
bHQoaW5saW5lRGVwdGgoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlT3JpZ2luLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAg
c3RydWN0IENvZGVPcmlnaW4gewogICAgIAogICAgIENvZGVPcmlnaW4oV1RGOjpIYXNoVGFibGVE
ZWxldGVkVmFsdWVUeXBlKQogICAgICAgICA6IGJ5dGVjb2RlSW5kZXgoaW52YWxpZEJ5dGVjb2Rl
SW5kZXgpCi0gICAgICAgICwgaW5saW5lQ2FsbEZyYW1lKGJpdHdpc2VfY2FzdDxJbmxpbmVDYWxs
RnJhbWUqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEpKSkKKyAgICAgICAgLCBpbmxpbmVDYWxs
RnJhbWUoZGVsZXRlZE1hcmtlcigpKQogICAgIHsKICAgICB9CiAgICAgCkBAIC05NywxNSArOTcs
MjcgQEAgc3RydWN0IENvZGVPcmlnaW4gewogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDb2Rl
T3JpZ2luJiBvdGhlcikgY29uc3Q7CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IENvZGVPcmln
aW4mIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQogICAgIAorICAg
IC8vIFRoaXMgY2hlY2tzIGlmIHRoZSB0d28gY29kZSBvcmlnaW5zIGNvcnJlc3BvbmQgdG8gdGhl
IHNhbWUgc3RhY2sgdHJhY2Ugc25pcHBldHMsCisgICAgLy8gYnV0IGlnbm9yZSB3aGV0aGVyIHRo
ZSBJbmxpbmVDYWxsRnJhbWUncyBhcmUgaWRlbnRpY2FsLgorICAgIGJvb2wgaXNBcHByb3hpbWF0
ZWx5RXF1YWxUbyhjb25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3Q7CisgICAgCisgICAgdW5z
aWduZWQgYXBwcm94aW1hdGVIYXNoKCkgY29uc3Q7CisgICAgCiAgICAgLy8gR2V0IHRoZSBpbmxp
bmUgc3RhY2suIFRoaXMgaXMgc2xvdywgYW5kIGlzIGludGVuZGVkIGZvciBkZWJ1Z2dpbmcgb25s
eS4KICAgICBWZWN0b3I8Q29kZU9yaWdpbj4gaW5saW5lU3RhY2soKSBjb25zdDsKICAgICAKICAg
ICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGR1bXBJbkNvbnRleHQo
UHJpbnRTdHJlYW0mLCBEdW1wQ29udGV4dCopIGNvbnN0OworCitwcml2YXRlOgorICAgIHN0YXRp
YyBJbmxpbmVDYWxsRnJhbWUqIGRlbGV0ZWRNYXJrZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGJpdHdpc2VfY2FzdDxJbmxpbmVDYWxsRnJhbWUqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEp
KTsKKyAgICB9CiB9OwogCiBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsKLSAgICBWZWN0b3I8VmFs
dWVSZWNvdmVyeT4gYXJndW1lbnRzOworICAgIFZlY3RvcjxWYWx1ZVJlY292ZXJ5PiBhcmd1bWVu
dHM7IC8vIEluY2x1ZGVzICd0aGlzJy4KICAgICBXcml0ZUJhcnJpZXI8U2NyaXB0RXhlY3V0YWJs
ZT4gZXhlY3V0YWJsZTsKICAgICBWYWx1ZVJlY292ZXJ5IGNhbGxlZVJlY292ZXJ5OwogICAgIENv
ZGVPcmlnaW4gY2FsbGVyOwpAQCAtMTg1LDYgKzE5NywxMiBAQCBzdHJ1Y3QgQ29kZU9yaWdpbkhh
c2ggewogICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gdHJ1ZTsKIH07CiAKK3N0cnVjdCBDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoIHsKKyAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBDb2RlT3JpZ2luJiBrZXkpIHsgcmV0dXJuIGtleS5h
cHByb3hpbWF0ZUhhc2goKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IENvZGVPcmln
aW4mIGEsIGNvbnN0IENvZGVPcmlnaW4mIGIpIHsgcmV0dXJuIGEuaXNBcHByb3hpbWF0ZWx5RXF1
YWxUbyhiKTsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkID0gdHJ1ZTsKK307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiBuYW1lc3BhY2UgV1RG
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQ
cm9maWxlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsOCBA
QCBFeGl0UHJvZmlsZTo6fkV4aXRQcm9maWxlKCkgeyB9CiAKIGJvb2wgRXhpdFByb2ZpbGU6OmFk
ZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYgc2l0
ZSkKIHsKKyAgICBBU1NFUlQoc2l0ZS5qaXRUeXBlKCkgIT0gRXhpdEZyb21Bbnl0aGluZyk7Cisg
ICAgCiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgc2VlbiBhbnkgZnJlcXVlbnQgZXhpdHMgdGhlbiBj
cmVhdGUgdGhlIGxpc3QgYW5kIHB1dCB0aGlzIHNpdGUKICAgICAvLyBpbnRvIGl0LgogICAgIGlm
ICghbV9mcmVxdWVudEV4aXRTaXRlcykgewpAQCAtNzgsNyArODAsNyBAQCBib29sIEV4aXRQcm9m
aWxlOjpoYXNFeGl0U2l0ZShjb25zdCBDb25jCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2ZyZXF1ZW50RXhpdFNpdGVzLT5zaXplKCk7IGktLTsp
IHsKLSAgICAgICAgaWYgKG1fZnJlcXVlbnRFeGl0U2l0ZXMtPmF0KGkpID09IHNpdGUpCisgICAg
ICAgIGlmIChzaXRlLnN1YnN1bWVzKG1fZnJlcXVlbnRFeGl0U2l0ZXMtPmF0KGkpKSkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9m
aWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIkNvbmN1cnJlbnRKSVRMb2NrLmgiCiAjaW5jbHVkZSAiRXhpdEtpbmQu
aCIKKyNpbmNsdWRlICJFeGl0aW5nSklUVHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM5
LDE4ICs0MCwyMSBAQCBwdWJsaWM6CiAgICAgRnJlcXVlbnRFeGl0U2l0ZSgpCiAgICAgICAgIDog
bV9ieXRlY29kZU9mZnNldCgwKSAvLyAwID0gZW1wdHkgdmFsdWUKICAgICAgICAgLCBtX2tpbmQo
RXhpdEtpbmRVbnNldCkKKyAgICAgICAgLCBtX2ppdFR5cGUoRXhpdEZyb21Bbnl0aGluZykKICAg
ICB7CiAgICAgfQogICAgIAogICAgIEZyZXF1ZW50RXhpdFNpdGUoV1RGOjpIYXNoVGFibGVEZWxl
dGVkVmFsdWVUeXBlKQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQoMSkgLy8gMSA9IGRlbGV0
ZWQgdmFsdWUKICAgICAgICAgLCBtX2tpbmQoRXhpdEtpbmRVbnNldCkKKyAgICAgICAgLCBtX2pp
dFR5cGUoRXhpdEZyb21Bbnl0aGluZykKICAgICB7CiAgICAgfQogICAgIAotICAgIGV4cGxpY2l0
IEZyZXF1ZW50RXhpdFNpdGUodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsIEV4aXRLaW5kIGtpbmQp
CisgICAgZXhwbGljaXQgRnJlcXVlbnRFeGl0U2l0ZSh1bnNpZ25lZCBieXRlY29kZU9mZnNldCwg
RXhpdEtpbmQga2luZCwgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSA9IEV4aXRGcm9tQW55dGhpbmcp
CiAgICAgICAgIDogbV9ieXRlY29kZU9mZnNldChieXRlY29kZU9mZnNldCkKICAgICAgICAgLCBt
X2tpbmQoa2luZCkKKyAgICAgICAgLCBtX2ppdFR5cGUoaml0VHlwZSkKICAgICB7CiAgICAgICAg
IGlmIChtX2tpbmQgPT0gQXJndW1lbnRzRXNjYXBlZCkgewogICAgICAgICAgICAgLy8gQ291bnQg
dGhpcyBvbmUgZ2xvYmFsbHkuIEl0IGRvZXNuJ3QgbWF0dGVyIHdoZXJlIGluIHRoZSBjb2RlIGJs
b2NrIHRoZSBhcmd1bWVudHMgZXhjYXBlZDsKQEAgLTYxLDkgKzY1LDEwIEBAIHB1YmxpYzoKICAg
ICAKICAgICAvLyBVc2UgdGhpcyBjb25zdHJ1Y3RvciBpZiB5b3Ugd2lzaCBmb3IgdGhlIGV4aXQg
c2l0ZSB0byBiZSBjb3VudGVkIGdsb2JhbGx5IHdpdGhpbiBpdHMKICAgICAvLyBjb2RlIGJsb2Nr
LgotICAgIGV4cGxpY2l0IEZyZXF1ZW50RXhpdFNpdGUoRXhpdEtpbmQga2luZCkKKyAgICBleHBs
aWNpdCBGcmVxdWVudEV4aXRTaXRlKEV4aXRLaW5kIGtpbmQsIEV4aXRpbmdKSVRUeXBlIGppdFR5
cGUgPSBFeGl0RnJvbUFueXRoaW5nKQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQoMCkKICAg
ICAgICAgLCBtX2tpbmQoa2luZCkKKyAgICAgICAgLCBtX2ppdFR5cGUoaml0VHlwZSkKICAgICB7
CiAgICAgfQogICAgIApAQCAtNzUsMTYgKzgwLDM2IEBAIHB1YmxpYzoKICAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAg
ICByZXR1cm4gbV9ieXRlY29kZU9mZnNldCA9PSBvdGhlci5tX2J5dGVjb2RlT2Zmc2V0Ci0gICAg
ICAgICAgICAmJiBtX2tpbmQgPT0gb3RoZXIubV9raW5kOworICAgICAgICAgICAgJiYgbV9raW5k
ID09IG90aGVyLm1fa2luZAorICAgICAgICAgICAgJiYgbV9qaXRUeXBlID09IG90aGVyLm1faml0
VHlwZTsKKyAgICB9CisgICAgCisgICAgYm9vbCBzdWJzdW1lcyhjb25zdCBGcmVxdWVudEV4aXRT
aXRlJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChtX2J5dGVjb2RlT2Zmc2V0ICE9
IG90aGVyLm1fYnl0ZWNvZGVPZmZzZXQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGlmIChtX2tpbmQgIT0gb3RoZXIubV9raW5kKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBpZiAobV9qaXRUeXBlID09IEV4aXRGcm9tQW55dGhpbmcpCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIG1faml0VHlwZSA9PSBvdGhlci5tX2ppdFR5
cGU7CiAgICAgfQogICAgIAogICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIFdURjo6aW50SGFzaChtX2J5dGVjb2RlT2Zmc2V0KSArIG1fa2luZDsKKyAgICAg
ICAgcmV0dXJuIFdURjo6aW50SGFzaChtX2J5dGVjb2RlT2Zmc2V0KSArIG1fa2luZCArIG1faml0
VHlwZSAqIDc7CiAgICAgfQogICAgIAogICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KCkgY29u
c3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNldDsgfQogICAgIEV4aXRLaW5kIGtpbmQoKSBjb25z
dCB7IHJldHVybiBtX2tpbmQ7IH0KKyAgICBFeGl0aW5nSklUVHlwZSBqaXRUeXBlKCkgY29uc3Qg
eyByZXR1cm4gbV9qaXRUeXBlOyB9CisgICAgCisgICAgRnJlcXVlbnRFeGl0U2l0ZSB3aXRoSklU
VHlwZShFeGl0aW5nSklUVHlwZSBqaXRUeXBlKSBjb25zdAorICAgIHsKKyAgICAgICAgRnJlcXVl
bnRFeGl0U2l0ZSByZXN1bHQgPSAqdGhpczsKKyAgICAgICAgcmVzdWx0Lm1faml0VHlwZSA9IGpp
dFR5cGU7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQogCiAgICAgYm9vbCBpc0hhc2hU
YWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0CiAgICAgewpAQCAtOTQsNiArMTE5LDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2J5dGVjb2RlT2Zmc2V0OwogICAgIEV4aXRLaW5k
IG1fa2luZDsKKyAgICBFeGl0aW5nSklUVHlwZSBtX2ppdFR5cGU7CiB9OwogCiBzdHJ1Y3QgRnJl
cXVlbnRFeGl0U2l0ZUhhc2ggewpAQCAtMTY2LDYgKzE5MiwxMCBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGhhc0V4aXRTaXRlKGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpIGNvbnN0CiAgICAg
eworICAgICAgICBpZiAoc2l0ZS5qaXRUeXBlKCkgPT0gRXhpdEZyb21Bbnl0aGluZykgeworICAg
ICAgICAgICAgcmV0dXJuIGhhc0V4aXRTaXRlKHNpdGUud2l0aEpJVFR5cGUoRXhpdEZyb21ERkcp
KQorICAgICAgICAgICAgICAgIHx8IGhhc0V4aXRTaXRlKHNpdGUud2l0aEpJVFR5cGUoRXhpdEZy
b21GVEwpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9mcmVxdWVudEV4aXRTaXRlcy5m
aW5kKHNpdGUpICE9IG1fZnJlcXVlbnRFeGl0U2l0ZXMuZW5kKCk7CiAgICAgfQogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgJKHJldmlzaW9uIDE2
MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1lbnVtIEV4
aXRLaW5kIHsKK2VudW0gRXhpdEtpbmQgOiB1aW50OF90IHsKICAgICBFeGl0S2luZFVuc2V0LAog
ICAgIEJhZFR5cGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGEgdHlwZSBwcmVkaWN0aW9uIHdhcyB3
cm9uZy4KICAgICBCYWRGdW5jdGlvbiwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBp
bmNvcnJlY3QgYXNzdW1wdGlvbiBhYm91dCB3aGF0IGZ1bmN0aW9uIHdlIHdvdWxkIHNlZS4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0aW5nSklUVHlwZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0aW5nSklUVHlwZS5o
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRpbmdK
SVRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEV4aXRpbmdKSVRUeXBlX2gK
KyNkZWZpbmUgRXhpdGluZ0pJVFR5cGVfaAorCisjaW5jbHVkZSAiSklUQ29kZS5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworZW51bSBFeGl0aW5nSklUVHlwZSA6IHVpbnQ4X3QgeworICAgIEV4aXRG
cm9tQW55dGhpbmcsCisgICAgRXhpdEZyb21ERkcsCisgICAgRXhpdEZyb21GVEwKK307CisKK2lu
bGluZSBFeGl0aW5nSklUVHlwZSBleGl0aW5nSklUVHlwZUZvcihKSVRDb2RlOjpKSVRUeXBlIHR5
cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBKSVRDb2RlOjpERkdKSVQ6Cisg
ICAgICAgIHJldHVybiBFeGl0RnJvbURGRzsKKyAgICBjYXNlIEpJVENvZGU6OkZUTEpJVDoKKyAg
ICAgICAgcmV0dXJuIEV4aXRGcm9tRlRMOworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBFeGl0RnJvbUFueXRoaW5nOwor
ICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFeGl0aW5nSklUVHlw
ZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJ
ZFN0YXR1cy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQs
NiArMzQsMTQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2Jvb2wgR2V0QnlJZFN0YXR1czo6aGFz
RXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIHBy
b2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIEV4aXRpbmdKSVRUeXBlIGppdFR5
cGUpCit7CisgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZH
OjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlLCBqaXRUeXBlKSkKKyAg
ICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50
RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50LCBqaXRUeXBlKSkKKyAg
ICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50
RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGUsIGppdFR5cGUpKQor
ICAgICAgICB8fCBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVl
bnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZVdhdGNocG9pbnQs
IGppdFR5cGUpKTsKK30KKwogR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRnJv
bUxMSW50KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwg
U3RyaW5nSW1wbCogdWlkKQogewogICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKQEAg
LTEyMCwxMyArMTI4LDI3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
cigKIHsKICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihwcm9maWxlZEJsb2NrLT5tX2xv
Y2spOwogICAgIAotICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKLSAgICBVTlVTRURf
UEFSQU0oYnl0ZWNvZGVJbmRleCk7Ci0gICAgVU5VU0VEX1BBUkFNKHVpZCk7CisgICAgR2V0QnlJ
ZFN0YXR1cyByZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm8oCisgICAgICAgIGxvY2tlciwgcHJv
ZmlsZWRCbG9jaywgbWFwLmdldChDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgpKSwgdWlkKTsKKyAg
ICAKKyAgICBpZiAoIXJlc3VsdC50YWtlc1Nsb3dQYXRoKCkKKyAgICAgICAgJiYgKGhhc0V4aXRT
aXRlKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgICAgIHx8
IHByb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpKSkKKyAg
ICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgdHJ1ZSk7CisKKyAgICBp
ZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9j
aywgYnl0ZWNvZGVJbmRleCwgdWlkKTsKKyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitH
ZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbygKKyAgICBjb25z
dCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1
cmVTdHViSW5mbyogc3R1YkluZm8sCisgICAgU3RyaW5nSW1wbCogdWlkKQorewogI2lmIEVOQUJM
RShKSVQpCi0gICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbWFwLmdldChDb2RlT3Jp
Z2luKGJ5dGVjb2RlSW5kZXgpKTsKICAgICBpZiAoIXN0dWJJbmZvIHx8ICFzdHViSW5mby0+c2Vl
bikKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0ZWNv
ZGVJbmRleCwgdWlkKTsKKyAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlv
bik7CiAgICAgCiAgICAgaWYgKHN0dWJJbmZvLT5yZXNldEJ5R0MpCiAgICAgICAgIHJldHVybiBH
ZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOwpAQCAtMTUyLDE2ICsxNzQsMTIgQEAg
R2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAogICAgICAgICAgICAgcmV0
dXJuIEdldEJ5SWRTdGF0dXMoTWFrZXNDYWxscywgdHJ1ZSk7CiAgICAgfQogICAgIAotICAgIC8v
IE5leHQgY2hlY2sgaWYgaXQgdGFrZXMgc2xvdyBjYXNlLCBpbiB3aGljaCBjYXNlIHdlIHdhbnQg
dG8gYmUga2luZCBvZiBjYXJlZnVsLgotICAgIGlmIChwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rh
a2VTbG93Q2FzZShieXRlY29kZUluZGV4KSkKLSAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMo
VGFrZXNTbG93UGF0aCwgdHJ1ZSk7Ci0gICAgCiAgICAgLy8gRmluYWxseSBmaWd1cmUgb3V0IGlm
IHdlIGNhbiBkZXJpdmUgYW4gYWNjZXNzIHN0cmF0ZWd5LgogICAgIEdldEJ5SWRTdGF0dXMgcmVz
dWx0OwogICAgIHJlc3VsdC5tX3dhc1NlZW5JbkpJVCA9IHRydWU7IC8vIFRoaXMgaXMgaW50ZXJl
c3RpbmcgZm9yIGJ5dGVjb2RlIGR1bXBpbmcgb25seS4KICAgICBzd2l0Y2ggKHN0dWJJbmZvLT5h
Y2Nlc3NUeXBlKSB7CiAgICAgY2FzZSBhY2Nlc3NfdW5zZXQ6Ci0gICAgICAgIHJldHVybiBjb21w
dXRlRnJvbUxMSW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CisgICAgICAg
IHJldHVybiBHZXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24pOwogICAgICAgICAKICAgICBjYXNl
IGFjY2Vzc19nZXRfYnlfaWRfc2VsZjogewogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IHN0dWJJbmZvLT51LmdldEJ5SWRTZWxmLmJhc2VPYmplY3RTdHJ1Y3R1cmUuZ2V0KCk7CkBAIC0y
NjIsMTEgKzI4MCw0MCBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3Io
CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKICNlbHNlIC8vIEVOQUJMRShKSVQpCi0gICAgVU5V
U0VEX1BBUkFNKG1hcCk7CisgICAgVU5VU0VEX1BBUkFNKHByb2ZpbGVkQmxvY2spOworICAgIFVO
VVNFRF9QQVJBTShzdHViSW5mbyk7CisgICAgVU5VU0VEX1BBUkFNKHVpZCk7CiAgICAgcmV0dXJu
IEdldEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgZmFsc2UpOwogI2VuZGlmIC8vIEVOQUJMRShK
SVQpCiB9CiAKK0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKKyAgICBD
b2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFw
JiBiYXNlbGluZU1hcCwKKyAgICBTdHViSW5mb01hcCYgZGZnTWFwLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIFN0cmluZ0ltcGwqIHVpZCkKK3sKKyAgICBpZiAoZGZnQmxvY2spIHsKKyAgICAgICAg
R2V0QnlJZFN0YXR1cyByZXN1bHQ7CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRK
SVRMb2NrZXIgbG9ja2VyKGRmZ0Jsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgcmVzdWx0ID0g
Y29tcHV0ZUZvclN0dWJJbmZvKGxvY2tlciwgZGZnQmxvY2ssIGRmZ01hcC5nZXQoY29kZU9yaWdp
biksIHVpZCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKHJlc3VsdC50YWtlc1Nsb3dQ
YXRoKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIAorICAgICAgICB7CisgICAg
ICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihwcm9maWxlZEJsb2NrLT5tX2xvY2sp
OworICAgICAgICAgICAgaWYgKGhhc0V4aXRTaXRlKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgY29k
ZU9yaWdpbi5ieXRlY29kZUluZGV4LCBFeGl0RnJvbUZUTCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIEdldEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIGlmIChyZXN1bHQuaXNTZXQoKSkKKyAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfQorCisgICAgcmV0dXJuIGNvbXB1dGVGb3IocHJvZmlsZWRCbG9jaywgYmFzZWxp
bmVNYXAsIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgdWlkKTsKK30KKwogR2V0QnlJZFN0YXR1
cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICAvLyBGb3Igbm93IHdlIG9ubHkgaGFuZGxlIHRoZSBz
dXBlciBzaW1wbGUgc2VsZiBhY2Nlc3MgY2FzZS4gV2UgY291bGQgaGFuZGxlIHRoZQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0
YXR1cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiw5IEBACiAjaWZuZGVm
IEdldEJ5SWRTdGF0dXNfaAogI2RlZmluZSBHZXRCeUlkU3RhdHVzX2gKIAorI2luY2x1ZGUgIkNv
ZGVPcmlnaW4uaCIKKyNpbmNsdWRlICJDb25jdXJyZW50SklUTG9jay5oIgorI2luY2x1ZGUgIkV4
aXRpbmdKSVRUeXBlLmgiCiAjaW5jbHVkZSAiSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oIgogI2lu
Y2x1ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU2V0LmgiCkBAIC03
NCw2ICs3Nyw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9y
KENvZGVCbG9jayosIFN0dWJJbmZvTWFwJiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgU3RyaW5n
SW1wbCogdWlkKTsKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yKFZNJiwgU3Ry
dWN0dXJlKiwgU3RyaW5nSW1wbCogdWlkKTsKICAgICAKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1
cyBjb21wdXRlRm9yKENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgQ29kZUJsb2NrKiBkZmdCbG9j
aywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLCBTdHViSW5mb01hcCYgZGZnTWFwLCBDb2RlT3Jp
Z2luLCBTdHJpbmdJbXBsKiB1aWQpOworICAgIAogICAgIFN0YXRlIHN0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGF0ZTsgfQogICAgIAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVybiBt
X3N0YXRlICE9IE5vSW5mb3JtYXRpb247IH0KQEAgLTkwLDYgKzk1LDggQEAgcHVibGljOgogICAg
IGJvb2wgd2FzU2VlbkluSklUKCkgY29uc3QgeyByZXR1cm4gbV93YXNTZWVuSW5KSVQ7IH0KICAg
ICAKIHByaXZhdGU6CisgICAgc3RhdGljIGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVu
dEpJVExvY2tlciYsIENvZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIEV4aXRpbmdK
SVRUeXBlID0gRXhpdEZyb21Bbnl0aGluZyk7CisgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29t
cHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIHZvaWQgY29t
cHV0ZUZvckNoYWluKEdldEJ5SWRTdGF0dXMmIHJlc3VsdCwgQ29kZUJsb2NrKiwgU3RyaW5nSW1w
bCogdWlkKTsKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRnJvbUxMSW50KENvZGVC
bG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0
aXNvbmluZ1dhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxl
ZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ5LDcg
KzQ5LDkgQEAgdm9pZCBQcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwbwogICAgIAog
ICAgIGlmIChzb3VyY2VCYXNlbGluZUNvZGVCbG9jaykgewogICAgICAgICBzb3VyY2VCYXNlbGlu
ZUNvZGVCbG9jay0+YWRkRnJlcXVlbnRFeGl0U2l0ZSgKLSAgICAgICAgICAgIERGRzo6RnJlcXVl
bnRFeGl0U2l0ZShtX2NvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgbV9leGl0S2luZCkpOworICAg
ICAgICAgICAgREZHOjpGcmVxdWVudEV4aXRTaXRlKAorICAgICAgICAgICAgICAgIG1fY29kZU9y
aWdpbi5ieXRlY29kZUluZGV4LCBtX2V4aXRLaW5kLAorICAgICAgICAgICAgICAgIGV4aXRpbmdK
SVRUeXBlRm9yKG1fY29kZUJsb2NrLT5qaXRUeXBlKCkpKSk7CiAgICAgfQogICAgIAogICAgIG1f
Y29kZUJsb2NrLT5qZXR0aXNvbihDb3VudFJlb3B0aW1pemF0aW9uKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNiArMzUsMTQgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKK2Jvb2wgUHV0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUoY29uc3QgQ29uY3Vy
cmVudEpJVExvY2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVk
IGJ5dGVjb2RlSW5kZXgsIEV4aXRpbmdKSVRUeXBlIGV4aXRUeXBlKQoreworICAgIHJldHVybiBw
cm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShi
eXRlY29kZUluZGV4LCBCYWRDYWNoZSwgZXhpdFR5cGUpKQorICAgICAgICB8fCBwcm9maWxlZEJs
b2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUlu
ZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQsIGV4aXRUeXBlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRC
bG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJ
bmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGUsIGV4aXRUeXBlKSkKKyAgICAgICAgfHwgcHJvZmls
ZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNv
ZGVJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50LCBleGl0VHlwZSkpOworfQor
CiBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2Nr
KiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHByb2ZpbGVkQmxvY2spOwpAQCAtODksMTMgKzk3LDI3IEBA
IFB1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICBVTlVTRURfUEFS
QU0oYnl0ZWNvZGVJbmRleCk7CiAgICAgVU5VU0VEX1BBUkFNKHVpZCk7CiAjaWYgRU5BQkxFKEpJ
VCkKLSAgICBpZiAocHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJ
bmRleCkpCisgICAgaWYgKHByb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKGJ5dGVj
b2RlSW5kZXgpCisgICAgICAgIHx8IGhhc0V4aXRTaXRlKGxvY2tlciwgcHJvZmlsZWRCbG9jaywg
Ynl0ZWNvZGVJbmRleCkpCiAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1Bh
dGgsIDAsIDAsIDAsIGludmFsaWRPZmZzZXQpOwogICAgIAogICAgIFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbyA9IG1hcC5nZXQoQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSk7Ci0gICAgaWYg
KCFzdHViSW5mbyB8fCAhc3R1YkluZm8tPnNlZW4pCisgICAgUHV0QnlJZFN0YXR1cyByZXN1bHQg
PSBjb21wdXRlRm9yU3R1YkluZm8obG9ja2VyLCBwcm9maWxlZEJsb2NrLCBzdHViSW5mbywgdWlk
KTsKKyAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJv
ZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCwgdWlkKTsKICAgICAKKyAgICByZXR1cm4gcmVzdWx0
OworI2Vsc2UgLy8gRU5BQkxFKEpJVCkKKyAgICBVTlVTRURfUEFSQU0obWFwKTsKKyAgICByZXR1
cm4gUHV0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsK
KyNlbmRpZiAvLyBFTkFCTEUoSklUKQorfQorCitQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6
OmNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2Nr
KiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIFN0cmluZ0ltcGwq
IHVpZCkKK3sKKyAgICBpZiAoIXN0dWJJbmZvIHx8ICFzdHViSW5mby0+c2VlbikKKyAgICAgICAg
cmV0dXJuIFB1dEJ5SWRTdGF0dXMoKTsKKyAgICAKICAgICBpZiAoc3R1YkluZm8tPnJlc2V0QnlH
QykKICAgICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgMCwgMCwgMCwg
aW52YWxpZE9mZnNldCk7CiAKQEAgLTE0MiwxMCArMTY0LDI4IEBAIFB1dEJ5SWRTdGF0dXMgUHV0
QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICAgICAgLy8gd2UgY291bGQgZG8gYWJvdXQgaXQu
CiAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIDAsIDAsIDAsIGlu
dmFsaWRPZmZzZXQpOwogICAgIH0KLSNlbHNlIC8vIEVOQUJMRShKSVQpCi0gICAgVU5VU0VEX1BB
UkFNKG1hcCk7Ci0gICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgMCwgMCwg
MCwgaW52YWxpZE9mZnNldCk7Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKK30KKworUHV0QnlJZFN0
YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywg
Q29kZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLCBTdHViSW5mb01h
cCYgZGZnTWFwLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIFN0cmluZ0ltcGwqIHVpZCkKK3sKKyAg
ICBpZiAoZGZnQmxvY2spIHsKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExv
Y2tlciBsb2NrZXIoYmFzZWxpbmVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIGlmIChoYXNF
eGl0U2l0ZShsb2NrZXIsIGJhc2VsaW5lQmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwg
RXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2Vz
U2xvd1BhdGgpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgUHV0QnlJZFN0YXR1
cyByZXN1bHQ7CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKGRmZ0Jsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0
dWJJbmZvKGxvY2tlciwgZGZnQmxvY2ssIGRmZ01hcC5nZXQoY29kZU9yaWdpbiksIHVpZCk7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQuaXNTZXQoKSkKKyAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHJldHVybiBjb21wdXRlRm9yKGJh
c2VsaW5lQmxvY2ssIGJhc2VsaW5lTWFwLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIHVpZCk7
CiB9CiAKIFB1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJpbmdJ
bXBsKiB1aWQsIGJvb2wgaXNEaXJlY3QpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgUHV0QnlJZFN0YXR1c19oCiAjZGVmaW5lIFB1dEJ5SWRT
dGF0dXNfaAogCisjaW5jbHVkZSAiRXhpdGluZ0pJVFR5cGUuaCIKICNpbmNsdWRlICJJbnRlbmRl
ZFN0cnVjdHVyZUNoYWluLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKICNpbmNsdWRl
ICJTdHJ1Y3R1cmVTdHViSW5mby5oIgpAQCAtOTQsNiArOTUsOCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqLCBTdHViSW5mb01hcCYsIHVu
c2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIFB1dEJ5
SWRTdGF0dXMgY29tcHV0ZUZvcihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgU3Ry
aW5nSW1wbCogdWlkLCBib29sIGlzRGlyZWN0KTsKICAgICAKKyAgICBzdGF0aWMgUHV0QnlJZFN0
YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgQ29kZUJsb2NrKiBkZmdC
bG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLCBTdHViSW5mb01hcCYgZGZnTWFwLCBDb2Rl
T3JpZ2luLCBTdHJpbmdJbXBsKiB1aWQpOworICAgIAogICAgIFN0YXRlIHN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9zdGF0ZTsgfQogICAgIAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVy
biBtX3N0YXRlICE9IE5vSW5mb3JtYXRpb247IH0KQEAgLTEwOCw2ICsxMTEsOCBAQCBwdWJsaWM6
CiAgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0K
ICAgICAKIHByaXZhdGU6CisgICAgc3RhdGljIGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29uY3Vy
cmVudEpJVExvY2tlciYsIENvZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIEV4aXRp
bmdKSVRUeXBlID0gRXhpdEZyb21Bbnl0aGluZyk7CisgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMg
Y29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sq
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIFB1dEJ5
SWRTdGF0dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUlu
ZGV4LCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIAogICAgIFN0YXRlIG1fc3RhdGU7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5oCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgogICAgIAogICAgIFN0
cnVjdHVyZVNldChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CisgICAgICAgIEFTU0VSVChz
dHJ1Y3R1cmUpOwogICAgICAgICBtX3N0cnVjdHVyZXMuYXBwZW5kKHN0cnVjdHVyZSk7CiAgICAg
fQogICAgIApAQCAtNTUsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBhZGQoU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgeworICAgICAgICBBU1NFUlQoc3RydWN0dXJlKTsKICAg
ICAgICAgQVNTRVJUKCFjb250YWlucyhzdHJ1Y3R1cmUpKTsKICAgICAgICAgbV9zdHJ1Y3R1cmVz
LmFwcGVuZChzdHJ1Y3R1cmUpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjE2LDcgKzIxNiw2IEBAIHN0cnVj
dCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAKICAgICBzdHJ1Y3QgewogICAgICAgICBpbnQ4X3QgcmVn
aXN0ZXJzRmx1c2hlZDsKLSAgICAgICAgaW50OF90IGNhbGxGcmFtZVJlZ2lzdGVyOwogICAgICAg
ICBpbnQ4X3QgYmFzZUdQUjsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBpbnQ4X3Qg
dmFsdWVUYWdHUFI7CkBAIC0yOTAsNyArMjg5LDcgQEAgaW5saW5lIENvZGVPcmlnaW4gZ2V0U3Ry
dWN0dXJlU3R1YkluZm9DbwogICAgIHJldHVybiBzdHJ1Y3R1cmVTdHViSW5mby5jb2RlT3JpZ2lu
OwogfQogCi10eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgU3RydWN0dXJlU3R1YkluZm8qPiBT
dHViSW5mb01hcDsKK3R5cGVkZWYgSGFzaE1hcDxDb2RlT3JpZ2luLCBTdHJ1Y3R1cmVTdHViSW5m
byosIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g+IFN0dWJJbmZvTWFwOwogCiAjZWxzZQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1
ZVJlY292ZXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw2ICsyMzAsMjcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gVmlydHVhbFJlZ2lzdGVyKG1fc291cmNlLnZpcnR1YWxSZWcpOwogICAg
IH0KICAgICAKKyAgICBWYWx1ZVJlY292ZXJ5IHdpdGhMb2NhbHNPZmZzZXQoaW50IG9mZnNldCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHN3aXRjaCAobV90ZWNobmlxdWUpIHsKKyAgICAgICAgY2Fz
ZSBEaXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgSW50MzJEaXNwbGFjZWRJbkpTU3Rh
Y2s6CisgICAgICAgIGNhc2UgRG91YmxlRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNl
IENlbGxEaXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgQm9vbGVhbkRpc3BsYWNlZElu
SlNTdGFjazoKKyAgICAgICAgY2FzZSBJbnQ1MkRpc3BsYWNlZEluSlNTdGFjazoKKyAgICAgICAg
Y2FzZSBTdHJpY3RJbnQ1MkRpc3BsYWNlZEluSlNTdGFjazogeworICAgICAgICAgICAgVmFsdWVS
ZWNvdmVyeSByZXN1bHQ7CisgICAgICAgICAgICByZXN1bHQubV90ZWNobmlxdWUgPSBtX3RlY2hu
aXF1ZTsKKyAgICAgICAgICAgIHJlc3VsdC5tX3NvdXJjZS52aXJ0dWFsUmVnID0gbV9zb3VyY2Uu
dmlydHVhbFJlZyArIG9mZnNldDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
IH0KKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuICp0
aGlzOworICAgICAgICB9CisgICAgfQorICAgIAogICAgIEpTVmFsdWUgY29uc3RhbnQoKSBjb25z
dAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09IENvbnN0YW50KTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0
dWFsUmVnaXN0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAg
ICAgaW50IHRvQXJndW1lbnQoKSBjb25zdCB7IEFTU0VSVChpc0FyZ3VtZW50KCkpOyByZXR1cm4g
b3BlcmFuZFRvQXJndW1lbnQobV92aXJ0dWFsUmVnaXN0ZXIpOyB9CiAgICAgaW50IHRvQ29uc3Rh
bnRJbmRleCgpIGNvbnN0IHsgQVNTRVJUKGlzQ29uc3RhbnQoKSk7IHJldHVybiBtX3ZpcnR1YWxS
ZWdpc3RlciAtIHNfZmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXg7IH0KICAgICBpbnQgb2Zmc2V0
KCkgY29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXI7IH0KKyAgICBpbnQgb2Zmc2V0SW5C
eXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVyICogc2l6ZW9mKFJlZ2lzdGVy
KTsgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZpcnR1YWxSZWdpc3RlciBvdGhlcikg
Y29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXIgPT0gb3RoZXIubV92aXJ0dWFsUmVnaXN0
ZXI7IH0KICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgVmlydHVhbFJlZ2lzdGVyIG90aGVyKSBj
b25zdCB7IHJldHVybiBtX3ZpcnR1YWxSZWdpc3RlciAhPSBvdGhlci5tX3ZpcnR1YWxSZWdpc3Rl
cjsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZy
YW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJDYWxsRnJhbWUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSw3ICszNSw2IEBACiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5o
IgogI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5oIgotI2luY2x1ZGUgIlZNRW50cnlTY29wZS5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
cnJheU1vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QXJyYXlNb2RlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheU1vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNyArMTMxLDEwIEBA
IEFycmF5TW9kZSBBcnJheU1vZGU6OmZyb21PYnNlcnZlZChjb25zdCAKICAgICB9CiB9CiAKLUFy
cmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVk
VHlwZSBpbmRleCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUsIE5vZGVGbGFncyBmbGFncykgY29uc3QK
K0FycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZSgKKyAgICBHcmFwaCYgZ3JhcGgsIENvZGVPcmln
aW4gY29kZU9yaWdpbiwKKyAgICBTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBp
bmRleCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUsCisgICAgTm9kZUZsYWdzIGZsYWdzKSBjb25zdAog
ewogICAgIGlmICghYmFzZSB8fCAhaW5kZXgpIHsKICAgICAgICAgLy8gSXQgY2FuIGJlIHRoYXQg
d2UgaGFkIGEgbGVnaXRpbWF0ZSBhcnJheU1vZGUgYnV0IG5vIGluY29taW5nIHByZWRpY3Rpb25z
LiBUaGF0J2xsCkBAIC0xODYsNyArMTg5LDcgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5l
KFNwZWN1bGF0ZWRUeQogICAgICAgICAgICAgcmV0dXJuIHdpdGhDb252ZXJzaW9uKEFycmF5OjpS
YWdlQ29udmVydCk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICAgICAgCi0gICAgY2FzZSBB
cnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKKyAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2lu
Z1ByZWRpY3Rpb25zOiB7CiAgICAgICAgIGJhc2UgJj0gflNwZWNPdGhlcjsKICAgICAgICAgCiAg
ICAgICAgIGlmIChpc1N0cmluZ1NwZWN1bGF0aW9uKGJhc2UpKQpAQCAtMTk1LDM0ICsxOTgsNDEg
QEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5lKFNwZWN1bGF0ZWRUeQogICAgICAgICBpZiAo
aXNBcmd1bWVudHNTcGVjdWxhdGlvbihiYXNlKSkKICAgICAgICAgICAgIHJldHVybiB3aXRoVHlw
ZShBcnJheTo6QXJndW1lbnRzKTsKICAgICAgICAgCisgICAgICAgIEFycmF5TW9kZSByZXN1bHQ7
CisgICAgICAgIGlmIChncmFwaC5oYXNFeGl0U2l0ZShjb2RlT3JpZ2luLCBPdXRPZkJvdW5kcykp
CisgICAgICAgICAgICByZXN1bHQgPSB3aXRoU3BlY3VsYXRpb24oQXJyYXk6Ok91dE9mQm91bmRz
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gKnRoaXM7CisgICAgICAgIAog
ICAgICAgICBpZiAoaXNJbnQ4QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJl
dHVybiB3aXRoVHlwZShBcnJheTo6SW50OEFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1
bHQud2l0aFR5cGUoQXJyYXk6OkludDhBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNJ
bnQxNkFycmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUo
QXJyYXk6OkludDE2QXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShB
cnJheTo6SW50MTZBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNJbnQzMkFycmF5U3Bl
Y3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkludDMy
QXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6SW50MzJB
cnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNVaW50OEFycmF5U3BlY3VsYXRpb24oYmFz
ZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OlVpbnQ4QXJyYXkpOworICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6VWludDhBcnJheSk7CiAgICAg
ICAgIAogICAgICAgICBpZiAoaXNVaW50OENsYW1wZWRBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQot
ICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50OENsYW1wZWRBcnJheSk7Cisg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpVaW50OENsYW1wZWRBcnJh
eSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNVaW50MTZBcnJheVNwZWN1bGF0aW9uKGJhc2Up
KQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50MTZBcnJheSk7CisgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpVaW50MTZBcnJheSk7CiAgICAg
ICAgIAogICAgICAgICBpZiAoaXNVaW50MzJBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAg
ICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50MzJBcnJheSk7CisgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpVaW50MzJBcnJheSk7CiAgICAgICAgIAogICAg
ICAgICBpZiAoaXNGbG9hdDMyQXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJl
dHVybiB3aXRoVHlwZShBcnJheTo6RmxvYXQzMkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQud2l0aFR5cGUoQXJyYXk6OkZsb2F0MzJBcnJheSk7CiAgICAgICAgIAogICAgICAgICBp
ZiAoaXNGbG9hdDY0QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3
aXRoVHlwZShBcnJheTo6RmxvYXQ2NEFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQu
d2l0aFR5cGUoQXJyYXk6OkZsb2F0NjRBcnJheSk7CiAKICAgICAgICAgcmV0dXJuIEFycmF5TW9k
ZShBcnJheTo6R2VuZXJpYyk7CisgICAgfQogCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJu
ICp0aGlzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9k
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTEsNyArMjExLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gQXJyYXlNb2RlKHR5cGUsIGFycmF5Q2xhc3MoKSwgc3BlY3VsYXRpb24oKSwgY29udmVy
c2lvbik7CiAgICAgfQogICAgIAotICAgIEFycmF5TW9kZSByZWZpbmUoU3BlY3VsYXRlZFR5cGUg
YmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlID0gU3BlY05v
bmUsIE5vZGVGbGFncyA9IDApIGNvbnN0OworICAgIEFycmF5TW9kZSByZWZpbmUoR3JhcGgmLCBD
b2RlT3JpZ2luLCBTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRleCwgU3Bl
Y3VsYXRlZFR5cGUgdmFsdWUgPSBTcGVjTm9uZSwgTm9kZUZsYWdzID0gMCkgY29uc3Q7CiAgICAg
CiAgICAgYm9vbCBhbHJlYWR5Q2hlY2tlZChHcmFwaCYsIE5vZGUqLCBBYnN0cmFjdFZhbHVlJikg
Y29uc3Q7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJlY2lzZUp1bXBUYXJn
ZXRzLmgiCiAjaW5jbHVkZSAiUHV0QnlJZFN0YXR1cy5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25t
ZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlIDx3dGYvQ29t
bWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTE2MCw3ICsxNjEsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlTWluTWF4KGludCByZXN1bHRPcGVyYW5kLCBOb2Rl
VHlwZSBvcCwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMpOwogICAgIAogICAgIC8vIEhhbmRsZSBjYWxscy4gVGhpcyByZXNvbHZlcyBpc3N1ZXMgc3Vy
cm91bmRpbmcgaW5saW5pbmcgYW5kIGludHJpbnNpY3MuCi0gICAgdm9pZCBoYW5kbGVDYWxsKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kKTsKKyAgICB2b2lkIGhhbmRsZUNhbGwoaW50IHJlc3VsdCwgTm9kZVR5cGUgb3As
IENvZGVTcGVjaWFsaXphdGlvbktpbmQsIHVuc2lnbmVkIGluc3RydWN0aW9uU2l6ZSwgaW50IGNh
bGxlZSwgaW50IGFyZ0NvdW50LCBpbnQgcmVnaXN0ZXJPZmZzZXQpOworICAgIHZvaWQgaGFuZGxl
Q2FsbChJbnN0cnVjdGlvbiogcGMsIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
KTsKICAgICB2b2lkIGVtaXRGdW5jdGlvbkNoZWNrcyhjb25zdCBDYWxsTGlua1N0YXR1cyYsIE5v
ZGUqIGNhbGxUYXJnZXQsIGludCByZWdpc3Rlck9mZnNldCwgQ29kZVNwZWNpYWxpemF0aW9uS2lu
ZCk7CiAgICAgdm9pZCBlbWl0QXJndW1lbnRQaGFudG9tcyhpbnQgcmVnaXN0ZXJPZmZzZXQsIGlu
dCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CiAg
ICAgLy8gSGFuZGxlIGlubGluaW5nLiBSZXR1cm4gdHJ1ZSBpZiBpdCBzdWNjZWVkZWQsIGZhbHNl
IGlmIHdlIG5lZWQgdG8gcGxhbnQgYSBjYWxsLgpAQCAtNzczLDIyICs3NzUsMjEgQEAgcHJpdmF0
ZToKICAgICAgICAgbV9udW1QYXNzZWRWYXJBcmdzKys7CiAgICAgfQogICAgIAotICAgIE5vZGUq
IGFkZENhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgTm9kZVR5cGUgb3ApCisg
ICAgTm9kZSogYWRkQ2FsbChpbnQgcmVzdWx0LCBOb2RlVHlwZSBvcCwgaW50IGNhbGxlZSwgaW50
IGFyZ0NvdW50LCBpbnQgcmVnaXN0ZXJPZmZzZXQpCiAgICAgewogICAgICAgICBTcGVjdWxhdGVk
VHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwogICAgICAgICAKLSAgICAgICAgYWRk
VmFyQXJnQ2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKSkpOwotICAgICAgICBpbnQgYXJnQ291bnQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kOwotICAgICAgICBpZiAoSlNTdGFjazo6VGhpc0FyZ3VtZW50ICsgKHVuc2lnbmVk
KWFyZ0NvdW50ID4gbV9wYXJhbWV0ZXJTbG90cykKLSAgICAgICAgICAgIG1fcGFyYW1ldGVyU2xv
dHMgPSBKU1N0YWNrOjpUaGlzQXJndW1lbnQgKyBhcmdDb3VudDsKKyAgICAgICAgYWRkVmFyQXJn
Q2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3RlcihjYWxsZWUpKSk7CisgICAgICAgIHNpemVfdCBwYXJh
bWV0ZXJTbG90cyA9IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxs
ZXJGcmFtZUFuZFBDU2l6ZSArIGFyZ0NvdW50OworICAgICAgICBpZiAocGFyYW1ldGVyU2xvdHMg
PiBtX3BhcmFtZXRlclNsb3RzKQorICAgICAgICAgICAgbV9wYXJhbWV0ZXJTbG90cyA9IHBhcmFt
ZXRlclNsb3RzOwogCi0gICAgICAgIGludCByZWdpc3Rlck9mZnNldCA9IC1jdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kOwogICAgICAgICBpbnQgZHVtbXlUaGlzQXJndW1lbnQgPSBvcCA9
PSBDYWxsID8gMCA6IDE7CiAgICAgICAgIGZvciAoaW50IGkgPSAwICsgZHVtbXlUaGlzQXJndW1l
bnQ7IGkgPCBhcmdDb3VudDsgKytpKQogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KHZp
cnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGksIHJlZ2lzdGVyT2Zmc2V0KSkpOwogCiAgICAgICAg
IE5vZGUqIGNhbGwgPSBhZGRUb0dyYXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5mbygwKSwgT3BJ
bmZvKHByZWRpY3Rpb24pKTsKLSAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgY2FsbCk7CisgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0
ZXIocmVzdWx0KSwgY2FsbCk7CiAgICAgICAgIHJldHVybiBjYWxsOwogICAgIH0KICAgICAKQEAg
LTk5Myw5ICs5OTQsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgbnVtYmVyIG9mIGxvY2FscyAo
dmFycyArIHRlbXBvcmFyaWVzKSB1c2VkIGluIHRoZSBmdW5jdGlvbi4KICAgICB1bnNpZ25lZCBt
X251bUxvY2FsczsKICAgICAvLyBUaGUgbnVtYmVyIG9mIHNsb3RzIChpbiB1bml0cyBvZiBzaXpl
b2YoUmVnaXN0ZXIpKSB0aGF0IHdlIG5lZWQgdG8KLSAgICAvLyBwcmVhbGxvY2F0ZSBmb3IgY2Fs
bHMgZW1hbmF0aW5nIGZyb20gdGhpcyBmcmFtZS4gVGhpcyBpbmNsdWRlcyB0aGUKLSAgICAvLyBz
aXplIG9mIHRoZSBDYWxsRnJhbWUsIG9ubHkgaWYgdGhpcyBpcyBub3QgYSBsZWFmIGZ1bmN0aW9u
LiAgKEkuZS4KLSAgICAvLyB0aGlzIGlzIDAgaWYgYW5kIG9ubHkgaWYgdGhpcyBmdW5jdGlvbiBp
cyBhIGxlYWYuKQorICAgIC8vIHByZWFsbG9jYXRlIGZvciBhcmd1bWVudHMgdG8gb3V0Z29pbmcg
Y2FsbHMgZnJvbSB0aGlzIGZyYW1lLiBUaGlzCisgICAgLy8gbnVtYmVyIGluY2x1ZGVzIHRoZSBD
YWxsRnJhbWUgc2xvdHMgdGhhdCB3ZSBpbml0aWFsaXplIGZvciB0aGUgY2FsbGVlCisgICAgLy8g
KGJ1dCBub3QgdGhlIGNhbGxlZS1pbml0aWFsaXplZCBDYWxsZXJGcmFtZSBhbmQgUmV0dXJuUEMg
c2xvdHMpLgorICAgIC8vIFRoaXMgbnVtYmVyIGlzIDAgaWYgYW5kIG9ubHkgaWYgdGhpcyBmdW5j
dGlvbiBpcyBhIGxlYWYuCiAgICAgdW5zaWduZWQgbV9wYXJhbWV0ZXJTbG90czsKICAgICAvLyBU
aGUgbnVtYmVyIG9mIHZhciBhcmdzIHBhc3NlZCB0byB0aGUgbmV4dCB2YXIgYXJnIG5vZGUuCiAg
ICAgdW5zaWduZWQgbV9udW1QYXNzZWRWYXJBcmdzOwpAQCAtMTEzNCw2ICsxMTM2LDEwIEBAIHBy
aXZhdGU6CiAgICAgLy8gd29yay1hcm91bmQgZm9yIHRoZSBmYWN0IHRoYXQgSlNWYWx1ZU1hcCBj
YW4ndCBoYW5kbGUgImVtcHR5IiB2YWx1ZXMuCiAgICAgdW5zaWduZWQgbV9lbXB0eUpTVmFsdWVJ
bmRleDsKICAgICAKKyAgICBDb2RlQmxvY2sqIG1fZGZnQ29kZUJsb2NrOworICAgIENhbGxMaW5r
U3RhdHVzOjpDb250ZXh0TWFwIG1fY2FsbENvbnRleHRNYXA7CisgICAgU3R1YkluZm9NYXAgbV9k
ZmdTdHViSW5mb3M7CisgICAgCiAgICAgSW5zdHJ1Y3Rpb24qIG1fY3VycmVudEluc3RydWN0aW9u
OwogfTsKIApAQCAtMTE0NSw0MyArMTE1MSw0NSBAQCBwcml2YXRlOgogICAgIG1fY3VycmVudElu
ZGV4ICs9IE9QQ09ERV9MRU5HVEgobmFtZSk7IFwKICAgICByZXR1cm4gc2hvdWxkQ29udGludWVQ
YXJzaW5nCiAKLQotdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBOb2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBr
aW5kKQordm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogcGMsIE5v
ZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7CiAgICAgQVNTRVJUKE9Q
Q09ERV9MRU5HVEgob3BfY2FsbCkgPT0gT1BDT0RFX0xFTkdUSChvcF9jb25zdHJ1Y3QpKTsKKyAg
ICBoYW5kbGVDYWxsKAorICAgICAgICBwY1sxXS51Lm9wZXJhbmQsIG9wLCBraW5kLCBPUENPREVf
TEVOR1RIKG9wX2NhbGwpLAorICAgICAgICBwY1syXS51Lm9wZXJhbmQsIHBjWzNdLnUub3BlcmFu
ZCwgLXBjWzRdLnUub3BlcmFuZCk7Cit9CisKK3ZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNh
bGwoCisgICAgaW50IHJlc3VsdCwgTm9kZVR5cGUgb3AsIENvZGVTcGVjaWFsaXphdGlvbktpbmQg
a2luZCwgdW5zaWduZWQgaW5zdHJ1Y3Rpb25TaXplLAorICAgIGludCBjYWxsZWUsIGludCBhcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcywgaW50IHJlZ2lzdGVyT2Zmc2V0KQoreworICAgIEFTU0VS
VChyZWdpc3Rlck9mZnNldCA8PSAwKTsKICAgICAKLSAgICBOb2RlKiBjYWxsVGFyZ2V0ID0gZ2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAg
Tm9kZSogY2FsbFRhcmdldCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY2FsbGVlKSk7CiAgICAgCiAg
ICAgQ2FsbExpbmtTdGF0dXMgY2FsbExpbmtTdGF0dXM7CiAKLSAgICBpZiAobV9ncmFwaC5pc0Nv
bnN0YW50KGNhbGxUYXJnZXQpKQotICAgICAgICBjYWxsTGlua1N0YXR1cyA9IENhbGxMaW5rU3Rh
dHVzKG1fZ3JhcGgudmFsdWVPZkpTQ29uc3RhbnQoY2FsbFRhcmdldCkpLnNldElzUHJvdmVkKHRy
dWUpOwotICAgIGVsc2UgewotICAgICAgICBjYWxsTGlua1N0YXR1cyA9IENhbGxMaW5rU3RhdHVz
Ojpjb21wdXRlRm9yKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9jdXJyZW50
SW5kZXgpOwotICAgICAgICBjYWxsTGlua1N0YXR1cy5zZXRIYXNCYWRGdW5jdGlvbkV4aXRTaXRl
KG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5k
ZXgsIEJhZEZ1bmN0aW9uKSk7Ci0gICAgICAgIGNhbGxMaW5rU3RhdHVzLnNldEhhc0JhZENhY2hl
RXhpdFNpdGUoCi0gICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhh
c0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkKLSAgICAgICAgICAgIHx8IG1faW5s
aW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJh
ZENhY2hlV2F0Y2hwb2ludCkpOwotICAgICAgICBjYWxsTGlua1N0YXR1cy5zZXRIYXNCYWRFeGVj
dXRhYmxlRXhpdFNpdGUobV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0
ZShtX2N1cnJlbnRJbmRleCwgQmFkRXhlY3V0YWJsZSkpOworICAgIGlmIChtX2dyYXBoLmlzQ29u
c3RhbnQoY2FsbFRhcmdldCkpIHsKKyAgICAgICAgY2FsbExpbmtTdGF0dXMgPSBDYWxsTGlua1N0
YXR1cygKKyAgICAgICAgICAgIG1fZ3JhcGgudmFsdWVPZkpTQ29uc3RhbnQoY2FsbFRhcmdldCkp
LnNldElzUHJvdmVkKHRydWUpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNhbGxMaW5rU3RhdHVz
ID0gQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3IoCisgICAgICAgICAgICBtX2lubGluZVN0YWNr
VG9wLT5tX3Byb2ZpbGVkQmxvY2ssIGN1cnJlbnRDb2RlT3JpZ2luKCksIG1fY2FsbENvbnRleHRN
YXApOwogICAgIH0KICAgICAKICAgICBpZiAoIWNhbGxMaW5rU3RhdHVzLmNhbk9wdGltaXplKCkp
IHsKICAgICAgICAgLy8gT2RkbHksIHRoaXMgY29uZmxhdGVzIGNhbGxzIHRoYXQgaGF2ZW4ndCBl
eGVjdXRlZCB3aXRoIGNhbGxzIHRoYXQgYmVoYXZlZCBzdWZmaWNpZW50bHkgcG9seW1vcnBoaWNh
bGx5CiAgICAgICAgIC8vIHRoYXQgd2UgY2Fubm90IG9wdGltaXplIHRoZW0uCiAgICAgICAgIAot
ICAgICAgICBhZGRDYWxsKGN1cnJlbnRJbnN0cnVjdGlvbiwgb3ApOworICAgICAgICBhZGRDYWxs
KHJlc3VsdCwgb3AsIGNhbGxlZSwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHJlZ2lzdGVy
T2Zmc2V0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBpbnQgYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAg
IGludCByZWdpc3Rlck9mZnNldCA9IC1jdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwot
Ci0gICAgaW50IHJlc3VsdE9wZXJhbmQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
OwotICAgIHVuc2lnbmVkIG5leHRPZmZzZXQgPSBtX2N1cnJlbnRJbmRleCArIE9QQ09ERV9MRU5H
VEgob3BfY2FsbCk7CisgICAgdW5zaWduZWQgbmV4dE9mZnNldCA9IG1fY3VycmVudEluZGV4ICsg
aW5zdHJ1Y3Rpb25TaXplOwogICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVk
aWN0aW9uKCk7CiAKICAgICBpZiAoSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24gPSBjYWxsTGlu
a1N0YXR1cy5pbnRlcm5hbEZ1bmN0aW9uKCkpIHsKLSAgICAgICAgaWYgKGhhbmRsZUNvbnN0YW50
SW50ZXJuYWxGdW5jdGlvbihyZXN1bHRPcGVyYW5kLCBmdW5jdGlvbiwgcmVnaXN0ZXJPZmZzZXQs
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBwcmVkaWN0aW9uLCBraW5kKSkgeworICAgICAg
ICBpZiAoaGFuZGxlQ29uc3RhbnRJbnRlcm5hbEZ1bmN0aW9uKHJlc3VsdCwgZnVuY3Rpb24sIHJl
Z2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcHJlZGljdGlvbiwga2lu
ZCkpIHsKICAgICAgICAgICAgIC8vIFRoaXMgcGhhbnRvbWluZyBoYXMgdG8gYmUgKmFmdGVyKiB0
aGUgY29kZSBmb3IgdGhlIGludHJpbnNpYywgdG8gc2lnbmlmeSB0aGF0CiAgICAgICAgICAgICAv
LyB0aGUgaW5wdXRzIG11c3QgYmUga2VwdCBhbGl2ZSB3aGF0ZXZlciBleGl0cyB0aGUgaW50cmlu
c2ljIG1heSBkby4KICAgICAgICAgICAgIGFkZFRvR3JhcGgoUGhhbnRvbSwgY2FsbFRhcmdldCk7
CkBAIC0xMTkwLDcgKzExOTgsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDYWxsKElu
c3RydWN0CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIENhbiBvbmx5IGhhbmRsZSB0
aGlzIHVzaW5nIHRoZSBnZW5lcmljIGNhbGwgaGFuZGxlci4KLSAgICAgICAgYWRkQ2FsbChjdXJy
ZW50SW5zdHJ1Y3Rpb24sIG9wKTsKKyAgICAgICAgYWRkQ2FsbChyZXN1bHQsIG9wLCBjYWxsZWUs
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCByZWdpc3Rlck9mZnNldCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgICAgIApAQCAtMTE5OCw3ICsxMjA2LDcgQEAgdm9pZCBCeXRlQ29k
ZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdAogICAgIGlmIChpbnRyaW5zaWMgIT0gTm9JbnRy
aW5zaWMpIHsKICAgICAgICAgZW1pdEZ1bmN0aW9uQ2hlY2tzKGNhbGxMaW5rU3RhdHVzLCBjYWxs
VGFyZ2V0LCByZWdpc3Rlck9mZnNldCwga2luZCk7CiAgICAgICAgICAgICAKLSAgICAgICAgaWYg
KGhhbmRsZUludHJpbnNpYyhyZXN1bHRPcGVyYW5kLCBpbnRyaW5zaWMsIHJlZ2lzdGVyT2Zmc2V0
LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcHJlZGljdGlvbikpIHsKKyAgICAgICAgaWYg
KGhhbmRsZUludHJpbnNpYyhyZXN1bHQsIGludHJpbnNpYywgcmVnaXN0ZXJPZmZzZXQsIGFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzLCBwcmVkaWN0aW9uKSkgewogICAgICAgICAgICAgLy8gVGhp
cyBwaGFudG9taW5nIGhhcyB0byBiZSAqYWZ0ZXIqIHRoZSBjb2RlIGZvciB0aGUgaW50cmluc2lj
LCB0byBzaWduaWZ5IHRoYXQKICAgICAgICAgICAgIC8vIHRoZSBpbnB1dHMgbXVzdCBiZSBrZXB0
IGFsaXZlIHdoYXRldmVyIGV4aXRzIHRoZSBpbnRyaW5zaWMgbWF5IGRvLgogICAgICAgICAgICAg
YWRkVG9HcmFwaChQaGFudG9tLCBjYWxsVGFyZ2V0KTsKQEAgLTEyMDcsMTMgKzEyMTUsMTMgQEAg
dm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdAogICAgICAgICAgICAgICAg
IG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwoKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoaGFuZGxlSW5saW5pbmcoY2FsbFRh
cmdldCwgcmVzdWx0T3BlcmFuZCwgY2FsbExpbmtTdGF0dXMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcywgbmV4dE9mZnNldCwga2luZCkpIHsKKyAgICB9IGVsc2Ug
aWYgKGhhbmRsZUlubGluaW5nKGNhbGxUYXJnZXQsIHJlc3VsdCwgY2FsbExpbmtTdGF0dXMsIHJl
Z2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgbmV4dE9mZnNldCwga2lu
ZCkpIHsKICAgICAgICAgaWYgKG1fZ3JhcGguY29tcGlsYXRpb24oKSkKICAgICAgICAgICAgIG1f
Z3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAKLSAgICBhZGRDYWxsKGN1cnJlbnRJbnN0cnVjdGlvbiwgb3ApOworICAg
IGFkZENhbGwocmVzdWx0LCBvcCwgY2FsbGVlLCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywg
cmVnaXN0ZXJPZmZzZXQpOwogfQogCiB2b2lkIEJ5dGVDb2RlUGFyc2VyOjplbWl0RnVuY3Rpb25D
aGVja3MoY29uc3QgQ2FsbExpbmtTdGF0dXMmIGNhbGxMaW5rU3RhdHVzLCBOb2RlKiBjYWxsVGFy
Z2V0LCBpbnQgcmVnaXN0ZXJPZmZzZXQsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKQEAg
LTEyNTAsMzAgKzEyNTgsMzIgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6ZW1pdEFyZ3VtZW50UGhh
bnRvbQogCiBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhOb2RlKiBjYWxsVGFy
Z2V0Tm9kZSwgaW50IHJlc3VsdE9wZXJhbmQsIGNvbnN0IENhbGxMaW5rU3RhdHVzJiBjYWxsTGlu
a1N0YXR1cywgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMsIHVuc2lnbmVkIG5leHRPZmZzZXQsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsK
KyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgIGRhdGFMb2coIkNvbnNpZGVyaW5nIGlubGluaW5nICIsIGNhbGxMaW5r
U3RhdHVzLCAiIGludG8gIiwgY3VycmVudENvZGVPcmlnaW4oKSwgIlxuIik7CisgICAgCiAgICAg
Ly8gRmlyc3QsIHRoZSByZWFsbHkgc2ltcGxlIGNoZWNrczogZG8gd2UgaGF2ZSBhbiBhY3R1YWwg
SlMgZnVuY3Rpb24/Ci0gICAgaWYgKCFjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCkpCisgICAg
aWYgKCFjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2Up
CisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIHRoZXJlIGlzIG5vIGV4
ZWN1dGFibGUuXG4iKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChjYWxsTGlua1N0
YXR1cy5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpCisgICAgfQorICAgIGlmIChjYWxs
TGlua1N0YXR1cy5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpIHsKKyAgICAgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIGl0J3Mg
YSBob3N0IGZ1bmN0aW9uLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAg
CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0ganNDYXN0PEZ1bmN0aW9uRXhl
Y3V0YWJsZSo+KGNhbGxMaW5rU3RhdHVzLmV4ZWN1dGFibGUoKSk7CiAgICAgCiAgICAgLy8gRG9l
cyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB3ZSdyZSBwYXNzaW5nIG1hdGNoIHRoZSBhcml0eSBv
ZiB0aGUgdGFyZ2V0PyBXZSBjdXJyZW50bHkKICAgICAvLyBpbmxpbmUgb25seSBpZiB0aGUgbnVt
YmVyIG9mIGFyZ3VtZW50cyBwYXNzZWQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBu
dW1iZXIKICAgICAvLyBhcmd1bWVudHMgZXhwZWN0ZWQuCi0gICAgaWYgKHN0YXRpY19jYXN0PGlu
dD4oZXhlY3V0YWJsZS0+cGFyYW1ldGVyQ291bnQoKSkgKyAxID4gYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMpCisgICAgaWYgKHN0YXRpY19jYXN0PGludD4oZXhlY3V0YWJsZS0+cGFyYW1ldGVy
Q291bnQoKSkgKyAxID4gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpIHsKKyAgICAgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIG9mIGFy
aXR5IG1pc21hdGNoLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICAvLyBI
YXZlIHdlIGV4Y2VlZGVkIGlubGluZSBzdGFjayBkZXB0aCwgb3IgYXJlIHdlIHRyeWluZyB0byBp
bmxpbmUgYSByZWN1cnNpdmUgY2FsbD8KLSAgICAvLyBJZiBlaXRoZXIgb2YgdGhlc2UgYXJlIGRl
dGVjdGVkLCB0aGVuIGRvbid0IGlubGluZS4KLSAgICB1bnNpZ25lZCBkZXB0aCA9IDA7Ci0gICAg
Zm9yIChJbmxpbmVTdGFja0VudHJ5KiBlbnRyeSA9IG1faW5saW5lU3RhY2tUb3A7IGVudHJ5OyBl
bnRyeSA9IGVudHJ5LT5tX2NhbGxlcikgewotICAgICAgICArK2RlcHRoOwotICAgICAgICBpZiAo
ZGVwdGggPj0gT3B0aW9uczo6bWF4aW11bUlubGluaW5nRGVwdGgoKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsgLy8gRGVwdGggZXhjZWVkZWQuCi0gICAgICAgIAotICAgICAgICBpZiAoZW50
cnktPmV4ZWN1dGFibGUoKSA9PSBleGVjdXRhYmxlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OyAvLyBSZWN1cnNpb24gZGV0ZWN0ZWQuCiAgICAgfQogICAgIAogICAgIC8vIERvIHdlIGhhdmUg
YSBjb2RlIGJsb2NrLCBhbmQgZG9lcyB0aGUgY29kZSBibG9jaydzIHNpemUgbWF0Y2ggdGhlIGhl
dXJpc3RpY3MvcmVxdWlyZW1lbnRzIGZvcgpAQCAtMTI4MywxMCArMTI5Myw1MCBAQCBib29sIEJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhOb2RlCiAgICAgLy8gZ2xvYmFsIGZ1bmN0aW9u
LCB3aGVyZSB3YXRjaHBvaW50aW5nIGdpdmVzIHVzIHN0YXRpYyBpbmZvcm1hdGlvbi4gT3ZlcmFs
bCwgaXQncyBhIHJhcmUgY2FzZQogICAgIC8vIGJlY2F1c2Ugd2UgZXhwZWN0IHRoYXQgYW55IGhv
dCBjYWxsZWVzIHdvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIGNvbXBpbGVkLgogICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gZXhlY3V0YWJsZS0+YmFzZWxpbmVDb2RlQmxvY2tGb3Ioa2luZCk7Ci0g
ICAgaWYgKCFjb2RlQmxvY2spCisgICAgaWYgKCFjb2RlQmxvY2spIHsKKyAgICAgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIG5vIGNvZGUg
YmxvY2sgYXZhaWxhYmxlLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWNh
bklubGluZUZ1bmN0aW9uRm9yKGNvZGVCbG9jaywga2luZCwgY2FsbExpbmtTdGF0dXMuaXNDbG9z
dXJlQ2FsbCgpKSkKKyAgICB9CisgICAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbCA9
IGlubGluZUZ1bmN0aW9uRm9yQ2FwYWJpbGl0eUxldmVsKAorICAgICAgICBjb2RlQmxvY2ssIGtp
bmQsIGNhbGxMaW5rU3RhdHVzLmlzQ2xvc3VyZUNhbGwoKSk7CisgICAgaWYgKCFjYW5JbmxpbmUo
Y2FwYWJpbGl0eUxldmVsKSkgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIGRh
dGFMb2coIiAgICBGYWlsaW5nIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIGlzIG5vdCBpbmxpbmVhYmxl
LlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgLy8gRklYTUU6
IHRoaXMgc2hvdWxkIGJlIGJldHRlciBhdCBwcmVkaWN0aW5nIGhvdyBtdWNoIGJsb2F0IHdlIHdp
bGwgaW50cm9kdWNlIGJ5IGlubGluaW5nCisgICAgLy8gdGhpcyBmdW5jdGlvbi4KKyAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjI3CisgICAgCisgICAg
Ly8gSGF2ZSB3ZSBleGNlZWRlZCBpbmxpbmUgc3RhY2sgZGVwdGgsIG9yIGFyZSB3ZSB0cnlpbmcg
dG8gaW5saW5lIGEgcmVjdXJzaXZlIGNhbGwgdG8KKyAgICAvLyB0b28gbWFueSBsZXZlbHM/IElm
IGVpdGhlciBvZiB0aGVzZSBhcmUgZGV0ZWN0ZWQsIHRoZW4gZG9uJ3QgaW5saW5lLiBXZSBhZGp1
c3Qgb3VyCisgICAgLy8gaGV1cmlzdGljcyBpZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgZnVuY3Rp
b24gdGhhdCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIGNvbXBpbGVkLgorICAgIAorICAgIHVuc2lnbmVk
IGRlcHRoID0gMDsKKyAgICB1bnNpZ25lZCByZWN1cnNpb24gPSAwOworICAgIAorICAgIGZvciAo
SW5saW5lU3RhY2tFbnRyeSogZW50cnkgPSBtX2lubGluZVN0YWNrVG9wOyBlbnRyeTsgZW50cnkg
PSBlbnRyeS0+bV9jYWxsZXIpIHsKKyAgICAgICAgKytkZXB0aDsKKyAgICAgICAgaWYgKGRlcHRo
ID49IE9wdGlvbnM6Om1heGltdW1JbmxpbmluZ0RlcHRoKCkpIHsKKyAgICAgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBGYWlsaW5nIGJlY2F1c2UgZGVw
dGggZXhjZWVkZWQuXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgaWYgKGVudHJ5LT5leGVjdXRhYmxlKCkgPT0gZXhlY3V0YWJsZSkg
eworICAgICAgICAgICAgKytyZWN1cnNpb247CisgICAgICAgICAgICBpZiAocmVjdXJzaW9uID49
IE9wdGlvbnM6Om1heGltdW1JbmxpbmluZ1JlY3Vyc2lvbigpKSB7CisgICAgICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBGYWlsaW5nIGJl
Y2F1c2UgcmVjdXJzaW9uIGRldGVjdGVkLlxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICBkYXRhTG9nKCIgICAgQ29tbWl0dGluZyB0byBpbmxpbmluZy5cbiIpOwog
ICAgIAogICAgIC8vIE5vdyB3ZSBrbm93IHdpdGhvdXQgYSBkb3VidCB0aGF0IHdlIGFyZSBjb21t
aXR0ZWQgdG8gaW5saW5pbmcuIFNvIGJlZ2luIHRoZSBwcm9jZXNzCiAgICAgLy8gYnkgY2hlY2tp
bmcgdGhlIGNhbGxlZSAoaWYgbmVjZXNzYXJ5KSBhbmQgbWFraW5nIHN1cmUgdGhhdCBhcmd1bWVu
dHMgYW5kIHRoZSBjYWxsZWUKQEAgLTE3NzMsMTEgKzE4MjMsNyBAQCB2b2lkIEJ5dGVDb2RlUGFy
c2VyOjpoYW5kbGVHZXRCeUlkKAogICAgIGludCBkZXN0aW5hdGlvbk9wZXJhbmQsIFNwZWN1bGF0
ZWRUeXBlIHByZWRpY3Rpb24sIE5vZGUqIGJhc2UsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIs
CiAgICAgY29uc3QgR2V0QnlJZFN0YXR1cyYgZ2V0QnlJZFN0YXR1cykKIHsKLSAgICBpZiAoIWdl
dEJ5SWRTdGF0dXMuaXNTaW1wbGUoKQotICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4
aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkKLSAgICAgICAg
fHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJ
bmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KQotICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5t
X2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRD
YWNoZSkKLSAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0
U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50KSkgewor
ICAgIGlmICghZ2V0QnlJZFN0YXR1cy5pc1NpbXBsZSgpKSB7CiAgICAgICAgIHNldChWaXJ0dWFs
UmVnaXN0ZXIoZGVzdGluYXRpb25PcGVyYW5kKSwKICAgICAgICAgICAgIGFkZFRvR3JhcGgoCiAg
ICAgICAgICAgICAgICAgZ2V0QnlJZFN0YXR1cy5tYWtlc0NhbGxzKCkgPyBHZXRCeUlkRmx1c2gg
OiBHZXRCeUlkLApAQCAtMjQ0NCw2ICsyNDkwLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFy
c2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQocHJvcGVydHkpOwog
ICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQodmFsdWUpOwogICAgICAgICAgICAgYWRkVmFyQXJn
Q2hpbGQoMCk7IC8vIExlYXZlIHJvb20gZm9yIHByb3BlcnR5IHN0b3JhZ2UuCisgICAgICAgICAg
ICBhZGRWYXJBcmdDaGlsZCgwKTsgLy8gTGVhdmUgcm9vbSBmb3IgbGVuZ3RoLgogICAgICAgICAg
ICAgYWRkVG9HcmFwaChOb2RlOjpWYXJBcmcsIG9wY29kZUlEID09IG9wX3B1dF9ieV92YWxfZGly
ZWN0ID8gUHV0QnlWYWxEaXJlY3QgOiBQdXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQo
KSksIE9wSW5mbygwKSk7CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9ieV92YWwp
OwpAQCAtMjQ1OSw4ICsyNTA2LDkgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1
bnNpZ25lZAogICAgICAgICAgICAgCiAgICAgICAgICAgICBTdHJpbmdJbXBsKiB1aWQgPSBtX2dy
YXBoLmlkZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJlcl07CiAgICAgICAgICAgICBHZXRCeUlk
U3RhdHVzIGdldEJ5SWRTdGF0dXMgPSBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAotICAgICAg
ICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9pbmxpbmVTdGFj
a1RvcC0+bV9zdHViSW5mb3MsCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50SW5kZXgsIHVpZCk7
CisgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCBtX2Rm
Z0NvZGVCbG9jaywKKyAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3N0dWJJbmZv
cywgbV9kZmdTdHViSW5mb3MsCisgICAgICAgICAgICAgICAgY3VycmVudENvZGVPcmlnaW4oKSwg
dWlkKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaGFuZGxlR2V0QnlJZCgKICAgICAgICAg
ICAgICAgICBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBwcmVkaWN0aW9uLCBiYXNl
LCBpZGVudGlmaWVyTnVtYmVyLCBnZXRCeUlkU3RhdHVzKTsKQEAgLTI0NzksMjYgKzI1MjcsMjAg
QEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAg
Ym9vbCBkaXJlY3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bOF0udS5vcGVyYW5kOwogCiAgICAgICAg
ICAgICBQdXRCeUlkU3RhdHVzIHB1dEJ5SWRTdGF0dXMgPSBQdXRCeUlkU3RhdHVzOjpjb21wdXRl
Rm9yKAotICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywg
bV9pbmxpbmVTdGFja1RvcC0+bV9zdHViSW5mb3MsCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50
SW5kZXgsIG1fZ3JhcGguaWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVtYmVyXSk7CisgICAgICAg
ICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCBtX2RmZ0NvZGVCbG9j
aywKKyAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3N0dWJJbmZvcywgbV9kZmdT
dHViSW5mb3MsCisgICAgICAgICAgICAgICAgY3VycmVudENvZGVPcmlnaW4oKSwgbV9ncmFwaC5p
ZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdKTsKICAgICAgICAgICAgIGJvb2wgY2FuQ291
bnRBc0lubGluZWQgPSB0cnVlOwogICAgICAgICAgICAgaWYgKCFwdXRCeUlkU3RhdHVzLmlzU2V0
KCkpIHsKICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKEZvcmNlT1NSRXhpdCk7CiAgICAgICAg
ICAgICAgICAgY2FuQ291bnRBc0lubGluZWQgPSBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIAotICAgICAgICAgICAgYm9vbCBoYXNFeGl0U2l0ZSA9Ci0gICAgICAgICAgICAgICAg
bV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRl
eCwgQmFkQ2FjaGUpCi0gICAgICAgICAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0
UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KQot
ICAgICAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhp
dFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlKQotICAgICAgICAgICAg
ICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJy
ZW50SW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2ludCk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIGlmICghaGFzRXhpdFNpdGUgJiYgcHV0QnlJZFN0YXR1cy5pc1NpbXBsZVJl
cGxhY2UoKSkgeworICAgICAgICAgICAgaWYgKHB1dEJ5SWRTdGF0dXMuaXNTaW1wbGVSZXBsYWNl
KCkpIHsKICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrU3RydWN0dXJlLCBPcEluZm8o
bV9ncmFwaC5hZGRTdHJ1Y3R1cmVTZXQocHV0QnlJZFN0YXR1cy5vbGRTdHJ1Y3R1cmUoKSkpLCBi
YXNlKTsKICAgICAgICAgICAgICAgICBoYW5kbGVQdXRCeU9mZnNldChiYXNlLCBpZGVudGlmaWVy
TnVtYmVyLCBwdXRCeUlkU3RhdHVzLm9mZnNldCgpLCB2YWx1ZSk7CiAgICAgICAgICAgICB9IGVs
c2UgaWYgKAotICAgICAgICAgICAgICAgICFoYXNFeGl0U2l0ZQotICAgICAgICAgICAgICAgICYm
IHB1dEJ5SWRTdGF0dXMuaXNTaW1wbGVUcmFuc2l0aW9uKCkKKyAgICAgICAgICAgICAgICBwdXRC
eUlkU3RhdHVzLmlzU2ltcGxlVHJhbnNpdGlvbigpCiAgICAgICAgICAgICAgICAgJiYgKCFwdXRC
eUlkU3RhdHVzLnN0cnVjdHVyZUNoYWluKCkKICAgICAgICAgICAgICAgICAgICAgfHwgcHV0QnlJ
ZFN0YXR1cy5zdHJ1Y3R1cmVDaGFpbigpLT5pc1N0aWxsVmFsaWQoKSkpIHsKICAgICAgICAgICAg
ICAgICAKQEAgLTI5NzMsMzAgKzMwMTUsNDEgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VC
bG9jayh1bnNpZ25lZAogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY29uc3RydWN0KTsKICAg
ICAgICAgICAgIAogICAgICAgICBjYXNlIG9wX2NhbGxfdmFyYXJnczogeworICAgICAgICAgICAg
aW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgICAgICAg
ICBpbnQgY2FsbGVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICAgICAg
ICAgIGludCB0aGlzUmVnID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICAg
ICAgICAgIGludCBhcmd1bWVudHMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwor
ICAgICAgICAgICAgaW50IGZpcnN0RnJlZVJlZyA9IGN1cnJlbnRJbnN0cnVjdGlvbls1XS51Lm9w
ZXJhbmQ7CisgICAgICAgICAgICAKICAgICAgICAgICAgIEFTU0VSVChpbmxpbmVDYWxsRnJhbWUo
KSk7Ci0gICAgICAgICAgICBBU1NFUlQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCA9
PSBtX2lubGluZVN0YWNrVG9wLT5tX2NvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKS5vZmZz
ZXQoKSk7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGFyZ3VtZW50cywgYXJndW1lbnRzID09
IG1faW5saW5lU3RhY2tUb3AtPm1fY29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpLm9mZnNl
dCgpKTsKICAgICAgICAgICAgIEFTU0VSVCghbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxvY2st
PnN5bWJvbFRhYmxlKCktPnNsb3dBcmd1bWVudHMoKSk7Ci0gICAgICAgICAgICAvLyBJdCB3b3Vs
ZCBiZSBjb29sIHRvIGZ1bm5lbCB0aGlzIGludG8gaGFuZGxlQ2FsbCgpIHNvIHRoYXQgaXQgY2Fu
IGhhbmRsZQotICAgICAgICAgICAgLy8gaW5saW5pbmcuIEJ1dCBjdXJyZW50bHkgdGhhdCB3b24n
dCBiZSBwcm9maXRhYmxlIGFueXdheSwgc2luY2Ugbm9uZSBvZiB0aGUKLSAgICAgICAgICAgIC8v
IHVzZXMgb2YgY2FsbF92YXJhcmdzIHdpbGwgYmUgaW5saW5lYWJsZS4gU28gd2Ugc2V0IHRoaXMg
dXAgbWFudWFsbHkgYW5kCi0gICAgICAgICAgICAvLyB3aXRob3V0IGlubGluZS9pbnRyaW5zaWMg
ZGV0ZWN0aW9uLgotICAgICAgICAgICAgCi0gICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVk
aWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGFk
ZFRvR3JhcGgoQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKTsKLSAgICAgICAgICAgIAorCiAgICAg
ICAgICAgICB1bnNpZ25lZCBhcmdDb3VudCA9IGlubGluZUNhbGxGcmFtZSgpLT5hcmd1bWVudHMu
c2l6ZSgpOwotICAgICAgICAgICAgaWYgKEpTU3RhY2s6OlRoaXNBcmd1bWVudCArIGFyZ0NvdW50
ID4gbV9wYXJhbWV0ZXJTbG90cykKLSAgICAgICAgICAgICAgICBtX3BhcmFtZXRlclNsb3RzID0g
SlNTdGFjazo6VGhpc0FyZ3VtZW50ICsgYXJnQ291bnQ7CiAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIGFkZFZhckFyZ0NoaWxkKGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZCkpKTsgLy8gY2FsbGVlCi0gICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChn
ZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7IC8v
IHRoaXMKKyAgICAgICAgICAgIC8vIExldCdzIGNvbXB1dGUgdGhlIHJlZ2lzdGVyIG9mZnNldC4g
V2Ugc3RhcnQgd2l0aCB0aGUgbGFzdCB1c2VkIHJlZ2lzdGVyLCBhbmQKKyAgICAgICAgICAgIC8v
IHRoZW4gYWRqdXN0IGZvciB0aGUgdGhpbmdzIHdlIHdhbnQgaW4gdGhlIGNhbGwgZnJhbWUuCisg
ICAgICAgICAgICBpbnQgcmVnaXN0ZXJPZmZzZXQgPSBmaXJzdEZyZWVSZWcgKyAxOworICAgICAg
ICAgICAgcmVnaXN0ZXJPZmZzZXQgLT0gYXJnQ291bnQ7IC8vIFdlIHdpbGwgYmUgcGFzc2luZyBz
b21lIGFyZ3VtZW50cy4KKyAgICAgICAgICAgIHJlZ2lzdGVyT2Zmc2V0IC09IEpTU3RhY2s6OkNh
bGxGcmFtZUhlYWRlclNpemU7IC8vIFdlIHdpbGwgcHJldGVuZCB0byBoYXZlIGEgY2FsbCBmcmFt
ZSBoZWFkZXIuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEdldCB0aGUgYWxpZ25tZW50
IHJpZ2h0LgorICAgICAgICAgICAgcmVnaXN0ZXJPZmZzZXQgPSAtV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mKAorICAgICAgICAgICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksCisgICAg
ICAgICAgICAgICAgLXJlZ2lzdGVyT2Zmc2V0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
Ly8gVGhlIGJ5dGVjb2RlIHdvdWxkbid0IGhhdmUgc2V0IHVwIHRoZSBhcmd1bWVudHMuIEJ1dCB3
ZSdsbCBkbyBpdCBhbmQgbWFrZSBpdAorICAgICAgICAgICAgLy8gbG9vayBsaWtlIHRoZSBieXRl
Y29kZSBoYWQgZG9uZSBpdC4KKyAgICAgICAgICAgIGludCBuZXh0UmVnaXN0ZXIgPSByZWdpc3Rl
ck9mZnNldCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7CisgICAgICAgICAgICBzZXQo
VmlydHVhbFJlZ2lzdGVyKG5leHRSZWdpc3RlcisrKSwgZ2V0KFZpcnR1YWxSZWdpc3Rlcih0aGlz
UmVnKSksIEltbWVkaWF0ZVNldCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGFyZ3VtZW50
ID0gMTsgYXJndW1lbnQgPCBhcmdDb3VudDsgKythcmd1bWVudCkKLSAgICAgICAgICAgICAgICBh
ZGRWYXJBcmdDaGlsZChnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpKSk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZCksCi0gICAgICAgICAgICAgICAgYWRkVG9HcmFwaChOb2Rl
OjpWYXJBcmcsIENhbGwsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pKSk7CisgICAgICAg
ICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihuZXh0UmVnaXN0ZXIrKyksIGdldCh2aXJ0dWFs
UmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkpLCBJbW1lZGlhdGVTZXQpOwogICAgICAgICAg
ICAgCisgICAgICAgICAgICBoYW5kbGVDYWxsKAorICAgICAgICAgICAgICAgIHJlc3VsdCwgQ2Fs
bCwgQ29kZUZvckNhbGwsIE9QQ09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKSwKKyAgICAgICAg
ICAgICAgICBjYWxsZWUsIGFyZ0NvdW50LCByZWdpc3Rlck9mZnNldCk7CiAgICAgICAgICAgICBO
RVhUX09QQ09ERShvcF9jYWxsX3ZhcmFyZ3MpOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAg
LTM2NTQsNiArMzcwNywxNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZSgpCiAgICAgLy8g
U2V0IGR1cmluZyBjb25zdHJ1Y3Rpb24uCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRJbmRleCk7CiAg
ICAgCisgICAgaWYgKGlzRlRMKG1fZ3JhcGgubV9wbGFuLm1vZGUpKSB7CisgICAgICAgIG1fZGZn
Q29kZUJsb2NrID0gbV9ncmFwaC5tX3BsYW4ucHJvZmlsZWRERkdDb2RlQmxvY2suZ2V0KCk7Cisg
ICAgICAgIGlmIChtX2RmZ0NvZGVCbG9jaykgeworICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmVu
YWJsZVBvbHl2YXJpYW50Q2FsbElubGluaW5nKCkpCisgICAgICAgICAgICAgICAgQ2FsbExpbmtT
dGF0dXM6OmNvbXB1dGVERkdTdGF0dXNlcyhtX2RmZ0NvZGVCbG9jaywgbV9jYWxsQ29udGV4dE1h
cCk7CisgICAgICAgICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlUG9seXZhcmlhbnRCeUlkSW5saW5p
bmcoKSkKKyAgICAgICAgICAgICAgICBtX2RmZ0NvZGVCbG9jay0+Z2V0U3R1YkluZm9NYXAobV9k
ZmdTdHViSW5mb3MpOworICAgICAgICB9CisgICAgfQorICAgIAogICAgIGlmIChtX2NvZGVCbG9j
ay0+Y2FwdHVyZUNvdW50KCkpIHsKICAgICAgICAgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlID0g
bV9jb2RlQmxvY2stPnN5bWJvbFRhYmxlKCk7CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKHN5bWJvbFRhYmxlLT5tX2xvY2spOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0
aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSw4IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICAgICAgICAgLy8gc3Vib3B0aW1hbCwgYmVjYXVzZSBpZiBteSBzdWNjZXNzb3Ig
aGFzIG11bHRpcGxlIHByZWRlY2Vzc29ycyB0aGVuIHdlJ2xsCiAgICAgICAgICAgICAgICAgICAg
IC8vIGJlIGtlZXBpbmcgYWxpdmUgdGhpbmdzIG9uIG90aGVyIHByZWRlY2Vzc29yIGVkZ2VzIHVu
bmVjZXNzYXJpbHkuCiAgICAgICAgICAgICAgICAgICAgIC8vIFdoYXQgd2UgcmVhbGx5IG5lZWQg
aXMgdGhlIG5vdGlvbiBvZiBlbmQtb2YtYmxvY2sgZ2hvc3RpZXMhCisgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBBbGxvdyBwdXR0aW5nIHBoYW50b21zIGFmdGVyIHRlcm1pbmFscy4KKyAg
ICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNjc3OAogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NT
RVBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NT
RVBoYXNlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDU0VQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lm
IEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiREZHQWJzdHJhY3RIZWFwLmgiCisjaW5jbHVk
ZSAiREZHQ2xvYmJlcml6ZS5oIgogI2luY2x1ZGUgIkRGR0VkZ2VVc2VzU3RydWN0dXJlLmgiCiAj
aW5jbHVkZSAiREZHR3JhcGguaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgpAQCAtMTAwNiw2ICsx
MDA4LDE4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAor
ICAgIGJvb2wgaW52YWxpZGF0aW9uUG9pbnRFbGltaW5hdGlvbigpCisgICAgeworICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSBtX2luZGV4SW5CbG9jazsgaS0tOykgeworICAgICAgICAgICAgTm9k
ZSogbm9kZSA9IG1fY3VycmVudEJsb2NrLT5hdChpKTsKKyAgICAgICAgICAgIGlmIChub2RlLT5v
cCgpID09IEludmFsaWRhdGlvblBvaW50KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgaWYgKHdyaXRlc092ZXJsYXAobV9ncmFwaCwgbm9kZSwgV2F0Y2hwb2ludF9m
aXJlKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIAogICAgIHZvaWQgZWxpbWluYXRlSXJyZWxldmFudFBoYW50b21D
aGlsZHJlbihOb2RlKiBub2RlKQogICAgIHsKICAgICAgICAgQVNTRVJUKG5vZGUtPm9wKCkgPT0g
UGhhbnRvbSk7CkBAIC0xMzg1LDkgKzEzOTksMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGVs
aW1pbmF0ZShwdXRCeU9mZnNldFN0b3JlRWxpbWluYXRpb24obV9ncmFwaC5tX3N0b3JhZ2VBY2Nl
c3NEYXRhW25vZGUtPnN0b3JhZ2VBY2Nlc3NEYXRhSW5kZXgoKV0uaWRlbnRpZmllck51bWJlciwg
bm9kZS0+Y2hpbGQxKCkubm9kZSgpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IAorICAgICAgICBjYXNlIEludmFsaWRhdGlvblBvaW50OgorICAgICAgICAgICAgaWYgKGludmFs
aWRhdGlvblBvaW50RWxpbWluYXRpb24oKSkKKyAgICAgICAgICAgICAgICBlbGltaW5hdGUoKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgUGhhbnRvbToK
ICAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSBvdWdodCB0byByZW1vdmUgUGhhbnRvbSdzIHRoYXQg
aGF2ZSBubyBjaGlsZHJlbi4KLSAgICAgICAgICAgIAogICAgICAgICAgICAgZWxpbWluYXRlSXJy
ZWxldmFudFBoYW50b21DaGlsZHJlbihub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRp
ZXMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw2ICsxOTgsOCBAQCBDYXBh
YmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlECiAgICAgY2FzZSBvcF9jYWxsX3Zh
cmFyZ3M6CiAgICAgICAgIGlmIChjb2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSAmJiBwY1s0XS51
Lm9wZXJhbmQgPT0gY29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpLm9mZnNldCgpKQogICAg
ICAgICAgICAgcmV0dXJuIENhbklubGluZTsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBo
YW5kbGUgdGhpcy4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNzYyNgogICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKIAogICAgIGNhc2Ug
b3BfbmV3X3JlZ2V4cDogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFi
aWxpdGllcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2Fw
YWJpbGl0aWVzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2FwYWJpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDE5ICs5NiwyOCBAQCBp
bmxpbmUgQ2FwYWJpbGl0eUxldmVsIGZ1bmN0aW9uRm9yQ29uc3RyCiAgICAgcmV0dXJuIGNhcGFi
aWxpdHlMZXZlbChjb2RlQmxvY2spOwogfQogCi1pbmxpbmUgYm9vbCBjYW5JbmxpbmVGdW5jdGlv
bkZvckNhbGwoQ29kZUJsb2NrKiBjb2RlQmxvY2spCitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGlu
bGluZUZ1bmN0aW9uRm9yQ2FsbENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaykK
IHsKLSAgICByZXR1cm4gbWlnaHRJbmxpbmVGdW5jdGlvbkZvckNhbGwoY29kZUJsb2NrKSAmJiBj
YW5JbmxpbmUoY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jaykpOworICAgIGlmICghbWlnaHRJbmxp
bmVGdW5jdGlvbkZvckNhbGwoY29kZUJsb2NrKSkKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBp
bGU7CisgICAgCisgICAgcmV0dXJuIGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwogfQogCi1p
bmxpbmUgYm9vbCBjYW5JbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxsKENvZGVCbG9jayogY29k
ZUJsb2NrKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVD
YWxsQ2FwYWJpbGl0eUxldmVsKENvZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBt
aWdodElubGluZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGwoY29kZUJsb2NrKSAmJiBjYW5JbmxpbmUo
Y2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jaykpOworICAgIGlmICghbWlnaHRJbmxpbmVGdW5jdGlv
bkZvckNsb3N1cmVDYWxsKGNvZGVCbG9jaykpCisgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxl
OworICAgIAorICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAotaW5s
aW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3JDb25zdHJ1Y3QoQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGlubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0Q2Fw
YWJpbGl0eUxldmVsKENvZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBtaWdodElu
bGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KGNvZGVCbG9jaykgJiYgY2FuSW5saW5lKGNhcGFiaWxp
dHlMZXZlbChjb2RlQmxvY2spKTsKKyAgICBpZiAoIW1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDb25z
dHJ1Y3QoY29kZUJsb2NrKSkKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAgCisg
ICAgcmV0dXJuIGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwogfQogCiBpbmxpbmUgYm9vbCBt
aWdodElubGluZUZ1bmN0aW9uRm9yKENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGtpbmQpCkBAIC0xMjQsMTYgKzEzMywxNiBAQCBpbmxpbmUgYm9vbCBtaWdodElu
bGluZUZ1bmN0aW9uKENvZGVCbG9jCiAgICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3Io
Y29kZUJsb2NrLCBjb2RlQmxvY2stPnNwZWNpYWxpemF0aW9uS2luZCgpKTsKIH0KIAotaW5saW5l
IGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVTcGVj
aWFsaXphdGlvbktpbmQga2luZCwgYm9vbCBpc0Nsb3N1cmVDYWxsKQoraW5saW5lIENhcGFiaWxp
dHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBib29sIGlzQ2xvc3VyZUNhbGwpCiB7
CiAgICAgaWYgKGlzQ2xvc3VyZUNhbGwpIHsKICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZv
ckNhbGwpOwotICAgICAgICByZXR1cm4gY2FuSW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChj
b2RlQmxvY2spOworICAgICAgICByZXR1cm4gaW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbENh
cGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwogICAgIH0KICAgICBpZiAoa2luZCA9PSBDb2RlRm9y
Q2FsbCkKLSAgICAgICAgcmV0dXJuIGNhbklubGluZUZ1bmN0aW9uRm9yQ2FsbChjb2RlQmxvY2sp
OworICAgICAgICByZXR1cm4gaW5saW5lRnVuY3Rpb25Gb3JDYWxsQ2FwYWJpbGl0eUxldmVsKGNv
ZGVCbG9jayk7CiAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgcmV0
dXJuIGNhbklubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KGNvZGVCbG9jayk7CisgICAgcmV0dXJu
IGlubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0Q2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiB9
CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDb21tb24uaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtODcsMTUgKzg3LDYgQEAgaW5saW5l
IGJvb2wgdmFsaWRhdGlvbkVuYWJsZWQoKQogI2VuZGlmCiB9CiAKLWlubGluZSBib29sIGVuYWJs
ZUNvbmN1cnJlbnRKSVQoKQotewotI2lmIEVOQUJMRShDT05DVVJSRU5UX0pJVCkKLSAgICByZXR1
cm4gT3B0aW9uczo6ZW5hYmxlQ29uY3VycmVudEpJVCgpICYmIE9wdGlvbnM6Om51bWJlck9mQ29t
cGlsZXJUaHJlYWRzKCk7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBp
bmxpbmUgYm9vbCBlbmFibGVJbnQ1MigpCiB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTIzNSw3
ICsyMjYsMTMgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiAvLyBQdXQgdGhp
bmdzIGhlcmUgdGhhdCBtdXN0IGJlIGRlZmluZWQgZXZlbiBpZiBFTkFCTEUoREZHX0pJVCkgaXMg
ZmFsc2UuCiAKLWVudW0gQ2FwYWJpbGl0eUxldmVsIHsgQ2Fubm90Q29tcGlsZSwgQ2FuSW5saW5l
LCBDYW5Db21waWxlLCBDYW5Db21waWxlQW5kSW5saW5lLCBDYXBhYmlsaXR5TGV2ZWxOb3RTZXQg
fTsKK2VudW0gQ2FwYWJpbGl0eUxldmVsIHsKKyAgICBDYW5ub3RDb21waWxlLAorICAgIENhbklu
bGluZSwKKyAgICBDYW5Db21waWxlLAorICAgIENhbkNvbXBpbGVBbmRJbmxpbmUsCisgICAgQ2Fw
YWJpbGl0eUxldmVsTm90U2V0Cit9OwogCiBpbmxpbmUgYm9vbCBjYW5Db21waWxlKENhcGFiaWxp
dHlMZXZlbCBsZXZlbCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29t
cGlsYXRpb25Nb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb21waWxhdGlvbk1vZGUuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDb21waWxhdGlvbk1vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsMTcgQEAgZW51bSBDb21waWxhdGlvbk1vZGUgewogICAgIEZUTEZvck9TUkVudHJ5TW9kZQog
fTsKIAoraW5saW5lIGJvb2wgaXNGVEwoQ29tcGlsYXRpb25Nb2RlIG1vZGUpCit7CisgICAgc3dp
dGNoIChtb2RlKSB7CisgICAgY2FzZSBGVExNb2RlOgorICAgIGNhc2UgRlRMRm9yT1NSRW50cnlN
b2RlOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKIG5hbWVzcGFj
ZSBXVEYgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw5ICs1NSw5IEBAIHVu
c2lnbmVkIGdldE51bUNvbXBpbGF0aW9ucygpCiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIHN0YXRp
YyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKLSAgICBWTSYgdm0sIENvZGVCbG9jayog
Y29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9kZSwgdW5zaWduZWQgb3NyRW50cnlCeXRlY29k
ZUluZGV4LAotICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzLAot
ICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywgV29y
a2xpc3QqIHdvcmtsaXN0KQorICAgIFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVC
bG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0aW9uTW9kZSBtb2RlLAorICAgIHVu
c2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11
c3RIYW5kbGVWYWx1ZXMsCisgICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJh
Y2s+IGNhbGxiYWNrKQogewogICAgIFNhbXBsaW5nUmVnaW9uIHNhbXBsaW5nUmVnaW9uKCJERkcg
Q29tcGlsYXRpb24gKERyaXZlcikiKTsKICAgICAKQEAgLTY2LDYgKzY2LDcgQEAgc3RhdGljIENv
bXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAogICAgIEFTU0VSVChjb2RlQmxvY2spOwogICAg
IEFTU0VSVChjb2RlQmxvY2stPmFsdGVybmF0aXZlKCkpOwogICAgIEFTU0VSVChjb2RlQmxvY2st
PmFsdGVybmF0aXZlKCktPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7CisgICAg
QVNTRVJUKCFwcm9maWxlZERGR0NvZGVCbG9jayB8fCBwcm9maWxlZERGR0NvZGVCbG9jay0+aml0
VHlwZSgpID09IEpJVENvZGU6OkRGR0pJVCk7CiAgICAgCiAgICAgaWYgKCFPcHRpb25zOjp1c2VE
RkdKSVQoKSB8fCAhTWFjcm9Bc3NlbWJsZXI6OnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKQogICAg
ICAgICByZXR1cm4gQ29tcGlsYXRpb25GYWlsZWQ7CkBAIC04MCwxNiArODEsMzEgQEAgc3RhdGlj
IENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAogICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGFs
bCBKSVQgY29kZSBnZW5lcmF0aW9uIGRvZXMgZmluYWxpemF0aW9uIG9uIHRoZSBtYWluIHRocmVh
ZC4KICAgICB2bS5nZXRDVElTdHViKG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOwog
ICAgIHZtLmdldENUSVN0dWIodGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9y
KTsKLSAgICB2bS5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpOwotICAgIHZtLmdl
dENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHVi
KGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHViKHZpcnR1
YWxDYWxsVGh1bmtHZW5lcmF0b3IpOwotICAgIHZtLmdldENUSVN0dWIodmlydHVhbENvbnN0cnVj
dFRodW5rR2VuZXJhdG9yKTsKKyAgICBpZiAobW9kZSA9PSBERkdNb2RlKSB7CisgICAgICAgIHZt
LmdldENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0
dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1Yihs
aW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmly
dHVhbENhbGxUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmlydHVhbENv
bnN0cnVjdFRodW5rR2VuZXJhdG9yKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2bS5nZXRDVElT
dHViKGxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZt
LmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3Ip
OworICAgICAgICB2bS5nZXRDVElTdHViKGxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdz
VGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGhhdFBy
ZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmlydHVh
bENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAgIH0KICAgICAK
ICAgICBSZWZQdHI8UGxhbj4gcGxhbiA9IGFkb3B0UmVmKAotICAgICAgICBuZXcgUGxhbihjb2Rl
QmxvY2ssIG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcykpOwor
ICAgICAgICBuZXcgUGxhbihjb2RlQmxvY2ssIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBtb2RlLCBv
c3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RIYW5kbGVWYWx1ZXMpKTsKICAgICAKLSAgICBpZiAo
d29ya2xpc3QpIHsKKyAgICBib29sIGVuYWJsZUNvbmN1cnJlbnRKSVQ7CisjaWYgRU5BQkxFKENP
TkNVUlJFTlRfSklUKQorICAgIGVuYWJsZUNvbmN1cnJlbnRKSVQgPSBPcHRpb25zOjplbmFibGVD
b25jdXJyZW50SklUKCk7CisjZWxzZSAvLyBFTkFCTEUoQ09OQ1VSUkVOVF9KSVQpCisgICAgZW5h
YmxlQ29uY3VycmVudEpJVCA9IGZhbHNlOworI2VuZGlmIC8vIEVOQUJMRShDT05DVVJSRU5UX0pJ
VCkKKyAgICBpZiAoZW5hYmxlQ29uY3VycmVudEpJVCkgeworICAgICAgICBXb3JrbGlzdCogd29y
a2xpc3QgPSBlbnN1cmVHbG9iYWxXb3JrbGlzdEZvcihtb2RlKTsKICAgICAgICAgcGxhbi0+Y2Fs
bGJhY2sgPSBjYWxsYmFjazsKICAgICAgICAgaWYgKGxvZ0NvbXBpbGF0aW9uQ2hhbmdlcygpKQog
ICAgICAgICAgICAgZGF0YUxvZygiRGVmZXJyaW5nIERGRyBjb21waWxhdGlvbiBvZiAiLCAqY29k
ZUJsb2NrLCAiIHdpdGggcXVldWUgbGVuZ3RoICIsIHdvcmtsaXN0LT5xdWV1ZUxlbmd0aCgpLCAi
LlxuIik7CkBAIC0xMDIsMjEgKzExOCwyMiBAQCBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29t
cGlsZUltcGwoCiB9CiAjZWxzZSAvLyBFTkFCTEUoREZHX0pJVCkKIHN0YXRpYyBDb21waWxhdGlv
blJlc3VsdCBjb21waWxlSW1wbCgKLSAgICBWTSYsIENvZGVCbG9jayosIENvbXBpbGF0aW9uTW9k
ZSwgdW5zaWduZWQsIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiwKLSAgICBQYXNzUmVmUHRyPERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4sIFdvcmtsaXN0KikKKyAgICBWTSYsIENvZGVCbG9j
ayosIENvZGVCbG9jayosIENvbXBpbGF0aW9uTW9kZSwgdW5zaWduZWQsIGNvbnN0IE9wZXJhbmRz
PEpTVmFsdWU+JiwKKyAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4p
CiB7CiAgICAgcmV0dXJuIENvbXBpbGF0aW9uRmFpbGVkOwogfQogI2VuZGlmIC8vIEVOQUJMRShE
RkdfSklUKQogCiBDb21waWxhdGlvblJlc3VsdCBjb21waWxlKAotICAgIFZNJiB2bSwgQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIENvbXBpbGF0aW9uTW9kZSBtb2RlLCB1bnNpZ25lZCBvc3JFbnRyeUJ5
dGVjb2RlSW5kZXgsCi0gICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1
ZXMsCi0gICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IHBhc3NlZENh
bGxiYWNrLCBXb3JrbGlzdCogd29ya2xpc3QpCisgICAgVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1v
ZGUsCisgICAgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LCBjb25zdCBPcGVyYW5kczxK
U1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcywKKyAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjaz4gcGFzc2VkQ2FsbGJhY2spCiB7CiAgICAgUmVmUHRyPERlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjaz4gY2FsbGJhY2sgPSBwYXNzZWRDYWxsYmFjazsKICAgICBDb21waWxh
dGlvblJlc3VsdCByZXN1bHQgPSBjb21waWxlSW1wbCgKLSAgICAgICAgdm0sIGNvZGVCbG9jaywg
bW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFsdWVzLCBjYWxsYmFjaywg
d29ya2xpc3QpOworICAgICAgICB2bSwgY29kZUJsb2NrLCBwcm9maWxlZERGR0NvZGVCbG9jaywg
bW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFsdWVzLAorICAgICAgICBj
YWxsYmFjayk7CiAgICAgaWYgKHJlc3VsdCAhPSBDb21waWxhdGlvbkRlZmVycmVkKQogICAgICAg
ICBjYWxsYmFjay0+Y29tcGlsYXRpb25EaWRDb21wbGV0ZShjb2RlQmxvY2ssIHJlc3VsdCk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJp
dmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIu
aAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsMTYgKzQwLDE0IEBAIGNsYXNzIFZN
OwogCiBuYW1lc3BhY2UgREZHIHsKIAotY2xhc3MgV29ya2xpc3Q7Ci0KIEpTX0VYUE9SVF9QUklW
QVRFIHVuc2lnbmVkIGdldE51bUNvbXBpbGF0aW9ucygpOwogCiAvLyBJZiB0aGUgd29ya2xpc3Qg
aXMgbm9uLW51bGwsIHdlIGRvIGEgY29uY3VycmVudCBjb21waWxlLiBPdGhlcndpc2Ugd2UgZG8g
YSBzeW5jaHJvbm91cwogLy8gY29tcGlsZS4gRXZlbiBpZiB3ZSBkbyBhIHN5bmNocm9ub3VzIGNv
bXBpbGUsIHdlIGNhbGwgdGhlIGNhbGxiYWNrIHdpdGggdGhlIHJlc3VsdC4KIENvbXBpbGF0aW9u
UmVzdWx0IGNvbXBpbGUoCi0gICAgVk0mLCBDb2RlQmxvY2sqLCBDb21waWxhdGlvbk1vZGUsIHVu
c2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKLSAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVl
PiYgbXVzdEhhbmRsZVZhbHVlcywKLSAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjaz4sIFdvcmtsaXN0Kik7CisgICAgVk0mLCBDb2RlQmxvY2sqLCBDb2RlQmxvY2sqIHBy
b2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUsCisgICAgdW5zaWduZWQgb3NyRW50
cnlCeXRlY29kZUluZGV4LCBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVl
cywKKyAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4pOwogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6REZHCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRmFpbGVkRmluYWxpemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzksNiArMzksMTEgQEAgRmFpbGVkRmluYWxpemVyOjp+RmFpbGVkRmluYWxpemVyKCkK
IHsKIH0KIAorc2l6ZV90IEZhaWxlZEZpbmFsaXplcjo6Y29kZVNpemUoKQoreworICAgIHJldHVy
biAwOworfQorCiBib29sIEZhaWxlZEZpbmFsaXplcjo6ZmluYWxpemUoKQogewogICAgIHJldHVy
biBmYWxzZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxp
emVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRG
aW5hbGl6ZXIuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGYWlsZWRGaW5hbGl6ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQCBw
dWJsaWM6CiAgICAgRmFpbGVkRmluYWxpemVyKFBsYW4mKTsKICAgICB2aXJ0dWFsIH5GYWlsZWRG
aW5hbGl6ZXIoKTsKICAgICAKKyAgICB2aXJ0dWFsIHNpemVfdCBjb2RlU2l6ZSgpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBmaW5hbGl6ZUZ1bmN0aW9uKCkgb3ZlcnJpZGU7CiB9OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpbmFsaXplci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpbmFsaXplci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0
Niw3IEBAIHB1YmxpYzoKICAgICBGaW5hbGl6ZXIoUGxhbiYpOwogICAgIHZpcnR1YWwgfkZpbmFs
aXplcigpOwogICAgIAorICAgIHZpcnR1YWwgc2l6ZV90IGNvZGVTaXplKCkgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBmaW5hbGl6ZSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemVGdW5j
dGlvbigpID0gMDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBo
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTIgKzEwMCwxNCBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIEJpdFJTaGlmdDoKICAgICAgICAgY2FzZSBCaXRMU2hpZnQ6
CiAgICAgICAgIGNhc2UgQml0VVJTaGlmdDogewotICAgICAgICAgICAgZml4QmluYXJ5SW50RWRn
ZXMoKTsKKyAgICAgICAgICAgIGZpeEludEVkZ2Uobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAg
ICAgZml4SW50RWRnZShub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogCiAgICAgICAgIGNhc2UgQXJpdGhJTXVsOiB7Ci0gICAgICAgICAgICBmaXhCaW5hcnlJ
bnRFZGdlcygpOworICAgICAgICAgICAgZml4SW50RWRnZShub2RlLT5jaGlsZDEoKSk7CisgICAg
ICAgICAgICBmaXhJbnRFZGdlKG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIG5vZGUtPnNl
dE9wKEFyaXRoTXVsKTsKICAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShBcml0aDo6VW5j
aGVja2VkKTsKICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoSW50MzJVc2Up
OwpAQCAtNDUwLDYgKzQ1Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgR2V0QnlWYWw6IHsK
ICAgICAgICAgICAgIG5vZGUtPnNldEFycmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2RlLT5h
cnJheU1vZGUoKS5yZWZpbmUoCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNv
ZGVPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9u
KCksCiAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMigpLT5wcmVkaWN0aW9uKCksCiAg
ICAgICAgICAgICAgICAgICAgIFNwZWNOb25lLCBub2RlLT5mbGFncygpKSk7CkBAIC01MDcsNiAr
NTEwLDcgQEAgcHJpdmF0ZToKIAogICAgICAgICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKAogICAg
ICAgICAgICAgICAgIG5vZGUtPmFycmF5TW9kZSgpLnJlZmluZSgKKyAgICAgICAgICAgICAgICAg
ICAgbV9ncmFwaCwgbm9kZS0+Y29kZU9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgY2hpbGQx
LT5wcmVkaWN0aW9uKCksCiAgICAgICAgICAgICAgICAgICAgIGNoaWxkMi0+cHJlZGljdGlvbigp
LAogICAgICAgICAgICAgICAgICAgICBjaGlsZDMtPnByZWRpY3Rpb24oKSkpOwpAQCAtNTkyLDYg
KzU5Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyB0aGF0IHdvdWxkIGJyZWFrIHRoaW5n
cy4KICAgICAgICAgICAgIG5vZGUtPnNldEFycmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2Rl
LT5hcnJheU1vZGUoKS5yZWZpbmUoCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUt
PmNvZGVPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0
aW9uKCkgJiBTcGVjQ2VsbCwKICAgICAgICAgICAgICAgICAgICAgU3BlY0ludDMyLAogICAgICAg
ICAgICAgICAgICAgICBub2RlLT5jaGlsZDIoKS0+cHJlZGljdGlvbigpKSk7CkBAIC05NDYsNyAr
OTUxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBPcEluZm8obV9ncmFwaC5nbG9iYWxP
YmplY3RGb3Iobm9kZS0+Y29kZU9yaWdpbikpKTsKICAgICAgICAgICAgIE5vZGUqIGJhcnJpZXJO
b2RlID0gbV9ncmFwaC5hZGROb2RlKFNwZWNOb25lLCBDb25kaXRpb25hbFN0b3JlQmFycmllciwg
bV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAgICAgICAgRWRnZShnbG9iYWxP
YmplY3ROb2RlLCBLbm93bkNlbGxVc2UpLCBFZGdlKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgVW50
eXBlZFVzZSkpOwotICAgICAgICAgICAgZml4dXBOb2RlKGJhcnJpZXJOb2RlKTsKICAgICAgICAg
ICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydChtX2luZGV4SW5CbG9jaywgYmFycmllck5vZGUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTk1NCw3ICs5NTgsNiBAQCBwcml2YXRl
OgogICAgICAgICBjYXNlIFRlYXJPZmZBY3RpdmF0aW9uOiB7CiAgICAgICAgICAgICBOb2RlKiBi
YXJyaWVyTm9kZSA9IG1fZ3JhcGguYWRkTm9kZShTcGVjTm9uZSwgU3RvcmVCYXJyaWVyV2l0aE51
bGxDaGVjaywgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAgICAgICAgRWRn
ZShub2RlLT5jaGlsZDEoKS5ub2RlKCksIFVudHlwZWRVc2UpKTsKLSAgICAgICAgICAgIGZpeHVw
Tm9kZShiYXJyaWVyTm9kZSk7CiAgICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnQobV9p
bmRleEluQmxvY2ssIGJhcnJpZXJOb2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CkBAIC0xMDM0LDYgKzEwMzcsMjQgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIGlmICgh
bm9kZS0+Y29udGFpbnNNb3ZIaW50KCkpCiAgICAgICAgICAgICBERkdfTk9ERV9ET19UT19DSElM
RFJFTihtX2dyYXBoLCBub2RlLCBvYnNlcnZlVW50eXBlZEVkZ2UpOworICAgICAgICAKKyAgICAg
ICAgaWYgKG5vZGUtPmlzVGVybWluYWwoKSkgeworICAgICAgICAgICAgLy8gVGVybWluYWwgbm9k
ZXMgZG9uJ3QgbmVlZCBwb3N0LXBoYW50b21zLCBhbmQgaW5zZXJ0aW5nIHRoZW0gd291bGQgdmlv
bGF0ZQorICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgcmVxdWlyZW1lbnQgdGhhdCBhIHRlcm1p
bmFsIGlzIHRoZSBsYXN0IHRoaW5nIGluIGEgYmxvY2suIFdlCisgICAgICAgICAgICAvLyBzaG91
bGQgZXZlbnR1YWxseSBjaGFuZ2UgdGhhdCByZXF1aXJlbWVudCBidXQgZXZlbiBpZiB3ZSBkaWQs
IHRoaXMgd291bGQKKyAgICAgICAgICAgIC8vIHN0aWxsIGJlIGEgdmFsaWQgb3B0aW1pemF0aW9u
LiBBbGwgdGVybWluYWxzIGFjY2VwdCBqdXN0IG9uZSBpbnB1dCwgYW5kCisgICAgICAgICAgICAv
LyBpZiB0aGF0IGlucHV0IGlzIGEgY29udmVyc2lvbiBub2RlIHRoZW4gbm8gZnVydGhlciBzcGVj
dWxhdGlvbnMgd2lsbCBiZQorICAgICAgICAgICAgLy8gcGVyZm9ybWVkLgorICAgICAgICAgICAg
Ly8gRklYTUU6IEdldCByaWQgb2YgdGhpcyBieSBhbGxvd2luZyBQaGFudG9tcyBhZnRlciB0ZXJt
aW5hbHMuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI2Nzc4CisgICAgICAgICAgICBtX3JlcXVpcmVkUGhhbnRvbXMucmVzaXplKDApOwor
ICAgICAgICAvLyBTaW5jZSBTdG9yZUJhcnJpZXJzIGFyZSByZWN1cnNpdmVseSBmaXhlZCB1cCBz
byB0aGF0IHRoZWlyIGNoaWxkcmVuIGxvb2sgCisgICAgICAgIC8vIGlkZW50aWNhbCB0byB0aGF0
IG9mIHRoZSBub2RlIHRoZXkncmUgYmFycmllci1pbmcsIHdlIG5lZWQgdG8gYXZvaWQgYWRkaW5n
CisgICAgICAgIC8vIGFueSBQaGFudG9tcyB3aGVuIHByb2Nlc3NpbmcgdGhlbSBiZWNhdXNlIHRo
aXMgd291bGQgaW52YWxpZGF0ZSB0aGUgCisgICAgICAgIC8vIEluc2VydGlvblNldCdzIGludmFy
aWFudCBvZiBpbnNlcnRpbmcgdGhpbmdzIGluIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nCisg
ICAgICAgIC8vIG9yZGVyLiBUaGlzIHNob3VsZCBiZSBva2F5IGFueXdheXMgYmVjYXVzZSBTdG9y
ZUJhcnJpZXJzIGNhbid0IGV4aXQuIAorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFkZFBo
YW50b21zSWZOZWNlc3NhcnkoKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBvYnNlcnZlVW50eXBl
ZEVkZ2UoTm9kZSosIEVkZ2UmIGVkZ2UpCkBAIC0xMzE5LDYgKzEzNDAsNyBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBhZGRQaGFudG9tc0lmTmVj
ZXNzYXJ5KCk7CiAgICAgICAgIH0KICAgICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0ZShibG9j
ayk7CiAgICAgfQpAQCAtMTMzNCw4ICsxMzU2LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBp
ZiAobm9kZS0+b3AoKSAhPSBTZXRMb2NhbCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBV
bnR5cGVkVXNlKQorICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBV
bnR5cGVkVXNlKSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgICAgICAgICAgYWRkUGhhbnRvbXNJZk5lY2Vzc2FyeSgpOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxv
Y2spOwogICAgIH0KQEAgLTE1MDksNiArMTUzMyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgLy8gSW50OFRvRG91YmxlIHdpbGwgY29udmVydCBpbnQ1MidzIHRoYXQgZml0IGluIGFuIGlu
dDMyIGludG8gYSBkb3VibGUKICAgICAgICAgICAgICAgICAvLyByYXRoZXIgdGhhbiB0cnlpbmcg
dG8gY3JlYXRlIGEgYm94ZWQgaW50MzIgbGlrZSBJbnQ1MlRvVmFsdWUgZG9lcy4KICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBtX3JlcXVpcmVkUGhhbnRvbXMuYXBwZW5kKGVkZ2Uu
bm9kZSgpKTsKICAgICAgICAgICAgICAgICBOb2RlKiByZXN1bHQgPSBtX2luc2VydGlvblNldC5p
bnNlcnROb2RlKAogICAgICAgICAgICAgICAgICAgICBtX2luZGV4SW5CbG9jaywgU3BlY0ludDUy
QXNEb3VibGUsIEludDUyVG9Eb3VibGUsCiAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudE5v
ZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5ub2RlKCksIE51bWJlclVzZSkpOwpAQCAtMTU2Miw2
ICsxNTg3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAvLyBCdXQg
dGhlIHNvbHV0aW9uIHdlIHVzZSBoYW5kbGVzIHRoZSBhYm92ZSBncmFjZWZ1bGx5LgogICAgICAg
ICAgICAgCisgICAgICAgICAgICBtX3JlcXVpcmVkUGhhbnRvbXMuYXBwZW5kKGVkZ2Uubm9kZSgp
KTsKICAgICAgICAgICAgIE5vZGUqIHJlc3VsdCA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUo
CiAgICAgICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNJbnQ1MiwgSW50NTJUb1ZhbHVl
LAogICAgICAgICAgICAgICAgIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5u
b2RlKCksIFVudHlwZWRVc2UpKTsKQEAgLTE1ODMsMTYgKzE2MDksMTUgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGJhcnJpZXJOb2RlID0gbV9ncmFwaC5hZGROb2RlKFNwZWNOb25lLCBDb25kaXRp
b25hbFN0b3JlQmFycmllciwgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAg
ICAgICAgRWRnZShjaGlsZDEubm9kZSgpLCBjaGlsZDEudXNlS2luZCgpKSwgRWRnZShjaGlsZDIu
bm9kZSgpLCBjaGlsZDIudXNlS2luZCgpKSk7CiAgICAgICAgIH0KLSAgICAgICAgZml4dXBOb2Rl
KGJhcnJpZXJOb2RlKTsKICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0KGluZGV4SW5CbG9j
aywgYmFycmllck5vZGUpOwogICAgIH0KIAotICAgIGJvb2wgZml4SW50RWRnZShFZGdlJiBlZGdl
KQorICAgIHZvaWQgZml4SW50RWRnZShFZGdlJiBlZGdlKQogICAgIHsKICAgICAgICAgTm9kZSog
bm9kZSA9IGVkZ2Uubm9kZSgpOwogICAgICAgICBpZiAobm9kZS0+c2hvdWxkU3BlY3VsYXRlSW50
MzIoKSkgewogICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4oZWRnZSk7Ci0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIFVzZUtpbmQgdXNlS2luZDsKQEAgLTE2MTAsMjQgKzE2MzUsMTMgQEAgcHJpdmF0
ZToKICAgICAgICAgb2JzZXJ2ZVVzZUtpbmRPbk5vZGUobm9kZSwgdXNlS2luZCk7CiAgICAgICAg
IAogICAgICAgICBlZGdlID0gRWRnZShuZXdOb2RlLCBLbm93bkludDMyVXNlKTsKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAotICAgIHZvaWQgZml4QmluYXJ5SW50RWRnZXMoKQot
ICAgIHsKLSAgICAgICAgQWRqYWNlbmN5TGlzdCBjaGlsZHJlbiA9IG1fY3VycmVudE5vZGUtPmNo
aWxkcmVuOwotICAgICAgICAKLSAgICAgICAgLy8gQ2FsbCBmaXhJbnRFZGdlKCkgb24gYm90aCBl
ZGdlcy4KLSAgICAgICAgYm9vbCBuZWVkUGhhbnRvbSA9Ci0gICAgICAgICAgICBmaXhJbnRFZGdl
KG1fY3VycmVudE5vZGUtPmNoaWxkMSgpKSB8IGZpeEludEVkZ2UobV9jdXJyZW50Tm9kZS0+Y2hp
bGQyKCkpOwotICAgICAgICAKLSAgICAgICAgaWYgKCFuZWVkUGhhbnRvbSkKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9j
ayArIDEsIFNwZWNOb25lLCBQaGFudG9tLCBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBjaGls
ZHJlbik7CisgICAgICAgIG1fcmVxdWlyZWRQaGFudG9tcy5hcHBlbmQobm9kZSk7CiAgICAgfQog
ICAgIAogICAgIHZvaWQgaW5qZWN0SW50MzJUb0RvdWJsZU5vZGUoRWRnZSYgZWRnZSwgVXNlS2lu
ZCB1c2VLaW5kID0gTnVtYmVyVXNlKQogICAgIHsKKyAgICAgICAgbV9yZXF1aXJlZFBoYW50b21z
LmFwcGVuZChlZGdlLm5vZGUoKSk7CisgICAgICAgIAogICAgICAgICBOb2RlKiByZXN1bHQgPSBt
X2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNw
ZWNJbnQ1MkFzRG91YmxlLCBJbnQzMlRvRG91YmxlLAogICAgICAgICAgICAgbV9jdXJyZW50Tm9k
ZS0+Y29kZU9yaWdpbiwgRWRnZShlZGdlLm5vZGUoKSwgTnVtYmVyVXNlKSk7CkBAIC0xNzIyLDcg
KzE3MzYsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgICAg
ICAKLSAgICAgICAgYXJyYXlNb2RlID0gYXJyYXlNb2RlLnJlZmluZShub2RlLT5jaGlsZDEoKS0+
cHJlZGljdGlvbigpLCBub2RlLT5wcmVkaWN0aW9uKCkpOworICAgICAgICBhcnJheU1vZGUgPSBh
cnJheU1vZGUucmVmaW5lKAorICAgICAgICAgICAgbV9ncmFwaCwgbm9kZS0+Y29kZU9yaWdpbiwg
bm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSwgbm9kZS0+cHJlZGljdGlvbigpKTsKICAgICAg
ICAgICAgIAogICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6R2VuZXJpYykg
ewogICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGlucHV0IGlzIHNvbWV0aGluZyB0aGF0IHdl
IGNhbid0IGdldCBhcnJheSBsZW5ndGggZm9yLCBidXQgZm9yIHdoaWNoIHdlCkBAIC0xODEzLDEy
ICsxODI4LDI3IEBAIHByaXZhdGU6CiAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICAKKyAgICB2b2lk
IGFkZFBoYW50b21zSWZOZWNlc3NhcnkoKQorICAgIHsKKyAgICAgICAgaWYgKG1fcmVxdWlyZWRQ
aGFudG9tcy5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSBtX3JlcXVpcmVkUGhhbnRvbXMuc2l6ZSgpOyBpLS07KSB7Cisg
ICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAgIG1f
aW5kZXhJbkJsb2NrICsgMSwgU3BlY05vbmUsIFBoYW50b20sIG1fY3VycmVudE5vZGUtPmNvZGVP
cmlnaW4sCisgICAgICAgICAgICAgICAgRWRnZShtX3JlcXVpcmVkUGhhbnRvbXNbaV0sIFVudHlw
ZWRVc2UpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV9yZXF1aXJlZFBoYW50b21z
LnJlc2l6ZSgwKTsKKyAgICB9CiAKICAgICBCYXNpY0Jsb2NrKiBtX2Jsb2NrOwogICAgIHVuc2ln
bmVkIG1faW5kZXhJbkJsb2NrOwogICAgIE5vZGUqIG1fY3VycmVudE5vZGU7CiAgICAgSW5zZXJ0
aW9uU2V0IG1faW5zZXJ0aW9uU2V0OwogICAgIGJvb2wgbV9wcm9maXRhYmlsaXR5Q2hhbmdlZDsK
KyAgICBWZWN0b3I8Tm9kZSosIDM+IG1fcmVxdWlyZWRQaGFudG9tczsKIH07CiAgICAgCiBib29s
IHBlcmZvcm1GaXh1cChHcmFwaCYgZ3JhcGgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDggKzM2LDEwIEBACiAjaW5j
bHVkZSAiRnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1
ZGUgIkpTQWN0aXZhdGlvbi5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsLmgiCiAjaW5jbHVkZSAiT3BlcmFuZHNJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJp
bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogCkBAIC02NzgsMTAgKzY4MCwxMCBA
QCBGdWxsQnl0ZWNvZGVMaXZlbmVzcyYgR3JhcGg6OmxpdmVuZXNzRm9yCiBib29sIEdyYXBoOjpp
c0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4pCiB7CiAgICAgZm9yICg7OykgeworICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0g
VmlydHVhbFJlZ2lzdGVyKAorICAgICAgICAgICAgb3BlcmFuZC5vZmZzZXQoKSAtIGNvZGVPcmln
aW4uc3RhY2tPZmZzZXQoKSk7CisgICAgICAgIAogICAgICAgICBpZiAob3BlcmFuZC5vZmZzZXQo
KSA8IGNvZGVPcmlnaW4uc3RhY2tPZmZzZXQoKSArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNp
emUpIHsKLSAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciByZWcgPSBWaXJ0dWFsUmVnaXN0ZXIo
Ci0gICAgICAgICAgICAgICAgb3BlcmFuZC5vZmZzZXQoKSAtIGNvZGVPcmlnaW4uc3RhY2tPZmZz
ZXQoKSk7Ci0gICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChyZWcuaXNBcmd1bWVudCgpKSB7
CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVnLm9mZnNldCgpIDwgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSk7CiAgICAgICAgICAgICAgICAgCkBAIC03MDAsMTAgKzcwMiwx
OCBAQCBib29sIEdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpCiAgICAgICAgICAg
ICAgICAgcmVnLm9mZnNldCgpLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwogICAgICAgICB9
CiAgICAgICAgIAotICAgICAgICBpZiAoIWNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKQorICAg
ICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGNvZGVPcmlnaW4uaW5saW5l
Q2FsbEZyYW1lOworICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZSkKICAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgIC8vIEFyZ3VtZW50cyBhcmUgYWx3YXlzIGxpdmUuIFRoaXMgd291bGQg
YmUgcmVkdW5kYW50IGlmIGl0IHdhc24ndCBmb3Igb3VyCisgICAgICAgIC8vIG9wX2NhbGxfdmFy
YXJncyBpbmxpbmluZy4KKyAgICAgICAgaWYgKHJlZy5pc0FyZ3VtZW50KCkKKyAgICAgICAgICAg
ICYmIHJlZy50b0FyZ3VtZW50KCkKKyAgICAgICAgICAgICYmIHN0YXRpY19jYXN0PHNpemVfdD4o
cmVnLnRvQXJndW1lbnQoKSkgPCBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgCi0gICAgICAgIGNvZGVPcmlnaW4gPSBj
b2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZS0+Y2FsbGVyOworICAgICAgICBjb2RlT3JpZ2luID0g
aW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7CiAgICAgfQogICAgIAogICAgIHJldHVybiB0cnVlOwpA
QCAtNzExLDcgKzcyMSwxMyBAQCBib29sIEdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxS
ZWdpCiAKIHVuc2lnbmVkIEdyYXBoOjpmcmFtZVJlZ2lzdGVyQ291bnQoKQogewotICAgIHJldHVy
biBtX25leHRNYWNoaW5lTG9jYWwgKyBtX3BhcmFtZXRlclNsb3RzOworICAgIHVuc2lnbmVkIHJl
c3VsdCA9IG1fbmV4dE1hY2hpbmVMb2NhbCArIHN0ZDo6bWF4KG1fcGFyYW1ldGVyU2xvdHMsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0
ZXJzKSk7CisgICAgcmV0dXJuIHJvdW5kTG9jYWxSZWdpc3RlckNvdW50Rm9yRnJhbWVQb2ludGVy
T2Zmc2V0KHJlc3VsdCk7Cit9CisKK3Vuc2lnbmVkIEdyYXBoOjpzdGFja1BvaW50ZXJPZmZzZXQo
KQoreworICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVyQ291
bnQoKSAtIDEpLm9mZnNldCgpOwogfQogCiB1bnNpZ25lZCBHcmFwaDo6cmVxdWlyZWRSZWdpc3Rl
ckNvdW50Rm9yRXhpdCgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBo
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc5Myw2ICs3OTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xp
dmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3RlciwgQ29kZU9yaWdpbik7CiAgICAgCiAgICAgdW5z
aWduZWQgZnJhbWVSZWdpc3RlckNvdW50KCk7CisgICAgdW5zaWduZWQgc3RhY2tQb2ludGVyT2Zm
c2V0KCk7CiAgICAgdW5zaWduZWQgcmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpOwogICAg
IHVuc2lnbmVkIHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKTsKICAg
ICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTU2LDYgKzE1Niw3IEBAIHZvaWQgSklUQ29kZTo6c2V0T3B0aW1p
emF0aW9uVGhyZXNob2xkQmEKICAgICBzd2l0Y2ggKHJlc3VsdCkgewogICAgIGNhc2UgQ29tcGls
YXRpb25TdWNjZXNzZnVsOgogICAgICAgICBvcHRpbWl6ZU5leHRJbnZvY2F0aW9uKGNvZGVCbG9j
ayk7CisgICAgICAgIGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCktPm1faGFzQmVlbkNvbXBp
bGVkV2l0aEZUTCA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbXBpbGF0aW9u
RmFpbGVkOgogICAgICAgICBkb250T3B0aW1pemVBbnl0aW1lU29vbihjb2RlQmxvY2spOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgJKHJldmlzaW9uIDE2MjkxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xMTksNiArMTE5LDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxERkc6Ok9TUkVudHJ5RGF0YT4g
b3NyRW50cnk7CiAgICAgU2VnbWVudGVkVmVjdG9yPERGRzo6T1NSRXhpdCwgOD4gb3NyRXhpdDsK
ICAgICBWZWN0b3I8REZHOjpTcGVjdWxhdGlvblJlY292ZXJ5PiBzcGVjdWxhdGlvblJlY292ZXJ5
OworICAgIFZlY3Rvcjx1bnNpZ25lZD4gc2xvd1BhdGhDYWxsczsKICAgICBERkc6OlZhcmlhYmxl
RXZlbnRTdHJlYW0gdmFyaWFibGVFdmVudFN0cmVhbTsKICAgICBERkc6Ok1pbmlmaWVkR3JhcGgg
bWluaWZpZWRERkc7CiAjaWYgRU5BQkxFKEZUTF9KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNs
dWRlICJERkdGYWlsZWRGaW5hbGl6ZXIuaCIKICNpbmNsdWRlICJERkdJbmxpbmVDYWNoZVdyYXBw
ZXJJbmxpbmVzLmgiCkBAIC00MCw2ICs0MSw3IEBACiAjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVK
SVQuaCIKICNpbmNsdWRlICJERkdUaHVua3MuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5l
cy5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVk
ZSAiVk0uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKQEAgLTkyLDE1ICs5NCwxNCBAQCB2
b2lkIEpJVENvbXBpbGVyOjpsaW5rT1NSRXhpdHMoKQogdm9pZCBKSVRDb21waWxlcjo6Y29tcGls
ZUVudHJ5KCkKIHsKICAgICAvLyBUaGlzIGNvZGUgY3VycmVudGx5IG1hdGNoZXMgdGhlIG9sZCBK
SVQuIEluIHRoZSBmdW5jdGlvbiBoZWFkZXIgd2UgbmVlZCB0bwotICAgIC8vIHBvcCB0aGUgcmV0
dXJuIGFkZHJlc3MgKHNpbmNlIHdlIGRvIG5vdCBhbGxvdyBhbnkgcmVjdXJzaW9uIG9uIHRoZSBt
YWNoaW5lCi0gICAgLy8gc3RhY2spLCBhbmQgcGVyZm9ybSBhIGZhc3Qgc3RhY2sgY2hlY2suCisg
ICAgLy8gc2F2ZSByZXR1cm4gYWRkcmVzcyBhbmQgY2FsbCBmcmFtZSB2aWEgdGhlIHByb2xvZ3Vl
IGFuZCBwZXJmb3JtIGEgZmFzdCBzdGFjayBjaGVjay4KICAgICAvLyBGSVhNRTogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjkyCiAgICAgLy8gV2UnbGwgbmVlZCB0
byBjb252ZXJ0IHRoZSByZW1haW5pbmcgY3RpXyBzdHlsZSBjYWxscyAoc3BlY2lmaWNhbGx5IHRo
ZSBzdGFjawogICAgIC8vIGNoZWNrKSB3aGljaCB3aWxsIGJlIGRlcGVuZGVudCBvbiBzdGFjayBs
YXlvdXQuIChXZSdkIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhpcyBpbgogICAgIC8vIGJvdGggbm9y
bWFsIHJldHVybiBjb2RlIGFuZCB3aGVuIGp1bXBpbmcgdG8gYW4gZXhjZXB0aW9uIGhhbmRsZXIp
LgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpyZWdUMik7Ci0g
ICAgZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6cmVnVDIpOworICAg
IGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1l
SGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0YWNrOjpDb2RlQmxvY2spOworICAgIGppdEFzc2VydFRh
Z3NJblBsYWNlKCk7CiB9CiAKIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVCb2R5KCkKQEAgLTEy
MSwyMiArMTIyLDI1IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVFeGNlcHRpb25IYW5kbGUK
IAogICAgIGlmICghbV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2suZW1wdHko
KSkgewogICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFjay5saW5r
KHRoaXMpOwotICAgICAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRy
KEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21D
YWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICAgICAgZG9Mb29r
dXAgPSBqdW1wKCk7CiAgICAgfQogCiAgICAgaWYgKCFtX2V4Y2VwdGlvbkNoZWNrcy5lbXB0eSgp
KQogICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrcy5saW5rKHRoaXMpOwogCi0gICAgLy8gbG9va3Vw
RXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQgb25lIGFyZ3VtZW50LCB0aGUgZXhlYyAodGhlIENh
bGxGcmFtZSopLgotICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CisgICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQg
dHdvIGFyZ3VtZW50cywgdGhlIFZNIGFuZCB0aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgorICAg
IG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7
CiAKICAgICBpZiAoZG9Mb29rdXAuaXNTZXQoKSkKICAgICAgICAgZG9Mb29rdXAubGluayh0aGlz
KTsKIAorICAgIG1vdmUoVHJ1c3RlZEltbVB0cih2bSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKKwogI2lmIENQVShYODYpCiAgICAgLy8gRklYTUU6IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJz
dHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBpbiB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5
ZXIhCiAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIHBva2UoR1BSSW5mbzo6
YXJndW1lbnRHUFIxLCAxKTsKICNlbmRpZgogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxMaW5rUmVj
b3JkKGNhbGwoKSwgbG9va3VwRXhjZXB0aW9uSGFuZGxlcikpOwogICAgIGp1bXBUb0V4Y2VwdGlv
bkhhbmRsZXIoKTsKQEAgLTIyOCwxMyArMjMyLDE2IEBAIHZvaWQgSklUQ29tcGlsZXI6Omxpbmso
TGlua0J1ZmZlciYgbGlua0IKICAgICAgICAgaW5mby5wYXRjaC5kZWx0YUNhbGxUb1Nsb3dDYXNl
ID0gZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGNhbGxSZXR1cm5Mb2NhdGlvbiwgbGlua0J1ZmZl
ci5sb2NhdGlvbk9mKG1faW5zW2ldLm1fc2xvd1BhdGhHZW5lcmF0b3ItPmxhYmVsKCkpKTsKICAg
ICB9CiAgICAgCisgICAgUkVMRUFTRV9BU1NFUlQoIW1fZ3JhcGgubV9wbGFuLndpbGxUcnlUb1Rp
ZXJVcCB8fCBtX2ppdENvZGUtPnNsb3dQYXRoQ2FsbHMuc2l6ZSgpID49IG1fanNDYWxscy5zaXpl
KCkpOwogICAgIG1fY29kZUJsb2NrLT5zZXROdW1iZXJPZkNhbGxMaW5rSW5mb3MobV9qc0NhbGxz
LnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fanNDYWxscy5zaXplKCk7
ICsraSkgewogICAgICAgICBDYWxsTGlua0luZm8mIGluZm8gPSBtX2NvZGVCbG9jay0+Y2FsbExp
bmtJbmZvKGkpOwogICAgICAgICBpbmZvLmNhbGxUeXBlID0gbV9qc0NhbGxzW2ldLm1fY2FsbFR5
cGU7Ci0gICAgICAgIGluZm8uaXNERkcgPSB0cnVlOwogICAgICAgICBpbmZvLmNvZGVPcmlnaW4g
PSBtX2pzQ2FsbHNbaV0ubV9jb2RlT3JpZ2luOwotICAgICAgICBsaW5rQnVmZmVyLmxpbmsobV9q
c0NhbGxzW2ldLm1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKChtX3ZtLT5nZXRDVElTdHViKGluZm8u
Y2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpDb25zdHJ1Y3QgPyBsaW5rQ29uc3RydWN0VGh1bmtH
ZW5lcmF0b3IgOiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKSkuY29kZSgpLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpKTsKKyAgICAgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2Vu
ZXJhdG9yRm9yKAorICAgICAgICAgICAgaW5mby5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNv
bnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwKKyAgICAgICAgICAgIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOworICAgICAgICBsaW5rQnVmZmVyLmxpbmso
bV9qc0NhbGxzW2ldLm1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKG1fdm0tPmdldENUSVN0dWIoZ2Vu
ZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgICAgICBpbmZvLmNhbGxS
ZXR1cm5Mb2NhdGlvbiA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fanNDYWxsc1tp
XS5tX3Nsb3dDYWxsKTsKICAgICAgICAgaW5mby5ob3RQYXRoQmVnaW4gPSBsaW5rQnVmZmVyLmxv
Y2F0aW9uT2YobV9qc0NhbGxzW2ldLm1fdGFyZ2V0VG9DaGVjayk7CiAgICAgICAgIGluZm8uaG90
UGF0aE90aGVyID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9qc0NhbGxzW2ldLm1f
ZmFzdENhbGwpOwpAQCAtMjc4LDYgKzI4NSw4IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGUo
KQogICAgIHNldFN0YXJ0T2ZDb2RlKCk7CiAgICAgY29tcGlsZUVudHJ5KCk7CiAgICAgbV9zcGVj
dWxhdGl2ZSA9IGFkb3B0UHRyKG5ldyBTcGVjdWxhdGl2ZUpJVCgqdGhpcykpOworICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIobV9ncmFwaC5zdGFja1BvaW50ZXJPZmZzZXQoKSAqIHNpemVvZihSZWdp
c3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIp
OworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAgICAgY29tcGlsZUJvZHkoKTsK
ICAgICBzZXRFbmRPZk1haW5QYXRoKCk7CiAKQEAgLTMyNSwxMSArMzM0LDEyIEBAIHZvaWQgSklU
Q29tcGlsZXI6OmNvbXBpbGVGdW5jdGlvbigpCiAgICAgLy8gc28gZW50ZXIgYWZ0ZXIgdGhpcy4K
ICAgICBMYWJlbCBmcm9tQXJpdHlDaGVjayh0aGlzKTsKICAgICAvLyBQbGFudCBhIGNoZWNrIHRo
YXQgc3VmZmljaWVudCBzcGFjZSBpcyBhdmFpbGFibGUgaW4gdGhlIEpTU3RhY2suCi0gICAgYWRk
UHRyKFRydXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2dyYXBoLnJlcXVpcmVk
UmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKSkub2Zmc2V0KCkgKiBzaXplb2YoUmVn
aXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsKLSAg
ICBKdW1wIHN0YWNrQ2hlY2sgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3Zt
LT5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksIEdQUkluZm86OnJlZ1QxKTsKLSAgICAvLyBSZXR1
cm4gaGVyZSBhZnRlciBzdGFjayBjaGVjay4KLSAgICBMYWJlbCBmcm9tU3RhY2tDaGVjayA9IGxh
YmVsKCk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbCht
X2dyYXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKSAtIDEpLm9m
ZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBH
UFJJbmZvOjpyZWdUMSk7CisgICAgSnVtcCBzdGFja092ZXJmbG93ID0gYnJhbmNoUHRyKEFib3Zl
LCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCBHUFJJbmZv
OjpyZWdUMSk7CiAKKyAgICAvLyBNb3ZlIHRoZSBzdGFjayBwb2ludGVyIGRvd24gdG8gYWNjb21t
b2RhdGUgbG9jYWxzCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtX2dyYXBoLnN0YWNrUG9pbnRl
ck9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQo
KTsKIAogICAgIC8vID09PSBGdW5jdGlvbiBib2R5IGNvZGUgZ2VuZXJhdGlvbiA9PT0KICAgICBt
X3NwZWN1bGF0aXZlID0gYWRvcHRQdHIobmV3IFNwZWN1bGF0aXZlSklUKCp0aGlzKSk7CkBAIC0z
MzgsMTcgKzM0OCwxOSBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogCiAg
ICAgLy8gPT09IEZ1bmN0aW9uIGZvb3RlciBjb2RlIGdlbmVyYXRpb24gPT09CiAgICAgLy8KLSAg
ICAvLyBHZW5lcmF0ZSBjb2RlIHRvIHBlcmZvcm0gdGhlIHNsb3cgc3RhY2sgY2hlY2sgKGlmIHRo
ZSBmYXN0IG9uZSBpbgorICAgIC8vIEdlbmVyYXRlIGNvZGUgdG8gcGVyZm9ybSB0aGUgc3RhY2sg
b3ZlcmZsb3cgaGFuZGxpbmcgKGlmIHRoZSBzdGFjayBjaGVjayBpbgogICAgIC8vIHRoZSBmdW5j
dGlvbiBoZWFkZXIgZmFpbHMpLCBhbmQgZ2VuZXJhdGUgdGhlIGVudHJ5IHBvaW50IHdpdGggYXJp
dHkgY2hlY2suCiAgICAgLy8KLSAgICAvLyBHZW5lcmF0ZSB0aGUgc3RhY2sgY2hlY2s7IGlmIHRo
ZSBmYXN0IGNoZWNrIGluIHRoZSBmdW5jdGlvbiBoZWFkIGZhaWxzLAotICAgIC8vIHdlIG5lZWQg
dG8gY2FsbCBvdXQgdG8gYSBoZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgd2hldGhlciBtb3JlIHNw
YWNlIGlzIGF2YWlsYWJsZS4KLSAgICAvLyBGSVhNRTogY2hhbmdlIHRoaXMgZnJvbSBhIGN0aSBj
YWxsIHRvIGEgREZHIHN0eWxlIG9wZXJhdGlvbiAobm9ybWFsIEMgY2FsbGluZyBjb252ZW50aW9u
cykuCi0gICAgc3RhY2tDaGVjay5saW5rKHRoaXMpOworICAgIC8vIEdlbmVyYXRlIHRoZSBzdGFj
ayBvdmVyZmxvdyBoYW5kbGluZzsgaWYgdGhlIHN0YWNrIGNoZWNrIGluIHRoZSBmdW5jdGlvbiBo
ZWFkIGZhaWxzLAorICAgIC8vIHdlIG5lZWQgdG8gY2FsbCBvdXQgdG8gYSBoZWxwZXIgZnVuY3Rp
b24gdG8gdGhyb3cgdGhlIFN0YWNrT3ZlcmZsb3dFcnJvci4KKyAgICBzdGFja092ZXJmbG93Lmxp
bmsodGhpcyk7CiAKICAgICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmlnaW4oMCkpOwotICAg
IG1fc3BlY3VsYXRpdmUtPmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2Vw
dGlvbihvcGVyYXRpb25TdGFja0NoZWNrLCBtX2NvZGVCbG9jayk7Ci0gICAganVtcChmcm9tU3Rh
Y2tDaGVjayk7CisKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAg
ICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwg
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisgICAgbV9zcGVjdWxhdGl2ZS0+Y2FsbE9wZXJhdGlv
bldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvblRocm93U3RhY2tPdmVy
Zmxvd0Vycm9yLCBtX2NvZGVCbG9jayk7CiAgICAgCiAgICAgLy8gVGhlIGZhc3QgZW50cnkgcG9p
bnQgaW50byBhIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSBjb3JyZWN0IG51bWJlciBvZiBh
cmd1bWVudHMKICAgICAvLyBoYXZlIGJlZW4gcGFzc2VkIHRvIHRoZSBjYWxsICh3ZSBvbmx5IHVz
ZSB0aGUgZmFzdCBlbnRyeSBwb2ludCB3aGVyZSB3ZSBjYW4gc3RhdGljYWxseQpAQCAtMzYxLDkg
KzM3MywxNSBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogICAgIGxvYWQz
MihBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdpc3RlcilKU1N0YWNrOjpB
cmd1bWVudENvdW50KSwgR1BSSW5mbzo6cmVnVDEpOwogICAgIGJyYW5jaDMyKEFib3ZlT3JFcXVh
bCwgR1BSSW5mbzo6cmVnVDEsIFRydXN0ZWRJbW0zMihtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVy
cygpKSkubGlua1RvKGZyb21Bcml0eUNoZWNrLCB0aGlzKTsKICAgICBlbWl0U3RvcmVDb2RlT3Jp
Z2luKENvZGVPcmlnaW4oMCkpOworICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCkKKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgbV9zcGVjdWxhdGl2ZS0+Y2FsbE9w
ZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG1fY29kZUJsb2NrLT5tX2lz
Q29uc3RydWN0b3IgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrIDogb3BlcmF0aW9uQ2Fs
bEFyaXR5Q2hlY2ssIEdQUkluZm86OnJlZ1QwKTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgYnJhbmNoVGVzdDMy
KFplcm8sIEdQUkluZm86OnJlZ1QwKS5saW5rVG8oZnJvbUFyaXR5Q2hlY2ssIHRoaXMpOwogICAg
IGVtaXRTdG9yZUNvZGVPcmlnaW4oQ29kZU9yaWdpbigwKSk7CisgICAgbW92ZShUcnVzdGVkSW1t
UHRyKG1fdm0tPmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5QQ3NGb3IoKm1fdm0s
IG1fY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKSwgR1BSSW5mbzo6cmVnVDUpOworICAgIGxv
YWRQdHIoQmFzZUluZGV4KEdQUkluZm86OnJlZ1Q1LCBHUFJJbmZvOjpyZWdUMCwgdGltZXNQdHIo
KSksIEdQUkluZm86OnJlZ1Q1KTsKICAgICBtX2NhbGxBcml0eUZpeHVwID0gY2FsbCgpOwogICAg
IGp1bXAoZnJvbUFyaXR5Q2hlY2spOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRDb21waWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjEsNiAr
MjIxLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1faW5zLmFwcGVuZChyZWNvcmQpOwog
ICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBjdXJyZW50SlNDYWxsSW5kZXgoKSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1fanNDYWxscy5zaXplKCk7CisgICAgfQogCiAgICAgdm9pZCBh
ZGRKU0NhbGwoQ2FsbCBmYXN0Q2FsbCwgQ2FsbCBzbG93Q2FsbCwgRGF0YUxhYmVsUHRyIHRhcmdl
dFRvQ2hlY2ssIENhbGxMaW5rSW5mbzo6Q2FsbFR5cGUgY2FsbFR5cGUsIEdQUlJlZyBjYWxsZWUs
IENvZGVPcmlnaW4gY29kZU9yaWdpbikKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDEwICs0NiwxNiBAQCBKSVRGaW5hbGl6ZXI6On5KSVRGaW5hbGl6ZXIoKQogewogfQog
CitzaXplX3QgSklURmluYWxpemVyOjpjb2RlU2l6ZSgpCit7CisgICAgcmV0dXJuIG1fbGlua0J1
ZmZlci0+c2l6ZSgpOworfQorCiBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemUoKQogewotICAg
IG1faml0Q29kZS0+aW5pdGlhbGl6ZUNvZGVSZWYobV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVX
aXRob3V0RGlzYXNzZW1ibHkoKSk7Ci0gICAgbV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZSht
X2ppdENvZGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICBtX2ppdENvZGUtPmluaXRp
YWxpemVDb2RlUmVmKAorICAgICAgICBtX2xpbmtCdWZmZXItPmZpbmFsaXplQ29kZVdpdGhvdXRE
aXNhc3NlbWJseSgpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgbV9wbGFuLmNvZGVC
bG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUpOwogICAgIAogICAgIGZpbmFsaXplQ29tbW9uKCk7
CiAgICAgCkBAIC01OSw4ICs2NSw5IEBAIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZSgpCiBi
b29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5jdGlvbigpCiB7CiAgICAgUkVMRUFTRV9BU1NF
UlQoIW1fd2l0aEFyaXR5Q2hlY2suaXNFbXB0eVZhbHVlKCkpOwotICAgIG1faml0Q29kZS0+aW5p
dGlhbGl6ZUNvZGVSZWYobV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1i
bHkoKSk7Ci0gICAgbV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUsIG1fd2l0
aEFyaXR5Q2hlY2spOworICAgIG1faml0Q29kZS0+aW5pdGlhbGl6ZUNvZGVSZWYoCisgICAgICAg
IG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2VtYmx5KCksIG1fd2l0aEFy
aXR5Q2hlY2spOworICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlKTsK
ICAgICAKICAgICBmaW5hbGl6ZUNvbW1vbigpOwogICAgIApAQCAtNzUsNiArODIsOSBAQCB2b2lk
IEpJVEZpbmFsaXplcjo6ZmluYWxpemVDb21tb24oKQogICAgIAogICAgIGlmIChtX3BsYW4uY29t
cGlsYXRpb24pCiAgICAgICAgIG1fcGxhbi52bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmFkZENv
bXBpbGF0aW9uKG1fcGxhbi5jb21waWxhdGlvbik7CisgICAgCisgICAgaWYgKCFtX3BsYW4ud2ls
bFRyeVRvVGllclVwKQorICAgICAgICBtX3BsYW4uY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24o
KS0+bV9kaWRGYWlsRlRMQ29tcGlsYXRpb24gPSB0cnVlOwogfQogCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXpl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxp
emVyLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklURmluYWxpemVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgog
ICAgIEpJVEZpbmFsaXplcihQbGFuJiwgUGFzc1JlZlB0cjxKSVRDb2RlPiwgUGFzc093blB0cjxM
aW5rQnVmZmVyPiwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHdpdGhBcml0eUNoZWNrID0gTWFjcm9B
c3NlbWJsZXJDb2RlUHRyKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6RW1wdHlWYWx1ZSkpOwogICAg
IHZpcnR1YWwgfkpJVEZpbmFsaXplcigpOwogICAgIAorICAgIHZpcnR1YWwgc2l6ZV90IGNvZGVT
aXplKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGZpbmFsaXplRnVuY3Rpb24oKSBvdmVycmlkZTsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0xMTk4LDYgKzExOTgsMTEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICAgICAg
cmV0dXJuIHNob3VsZEdlbmVyYXRlKCk7CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAgYm9v
bCBpc1NlbWFudGljYWxseVNraXBwYWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9
PSBDb3VudEV4ZWN1dGlvbjsKKyAgICB9CiAKICAgICB1bnNpZ25lZCByZWZDb3VudCgpCiAgICAg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw5IEBAIHZvaWQgZHVtcE5vZGVGbGFncyhQ
cmludFN0cmVhbSYgYWN0dWFsT3UKICAgICAgICAgY2FzZSBOb2RlUmVzdWx0SW50MzI6CiAgICAg
ICAgICAgICBvdXQucHJpbnQoY29tbWEsICJJbnQzMiIpOwogICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTm9kZVJlc3VsdEludDUyOgorICAgICAgICAgICAgb3V0LnByaW50KGNvbW1h
LCAiSW50NTIiKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGVSZXN1bHRC
b29sZWFuOgogICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiQm9vbGVhbiIpOwogICAgICAg
ICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWls
YWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAJKHJldmlzaW9uIDE2
MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5h
bHlzaXNQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDE1ICs2MSwxMyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICAgICAgQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpLndpdGhGbHVzaCgK
ICAgICAgICAgICAgICAgICAgICAgRmx1c2hlZEF0KEZsdXNoZWRKU1ZhbHVlLCB2aXJ0dWFsUmVn
aXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkpKTsKICAgICAgICAgfQotICAgICAgICBmb3IgKHVu
c2lnbmVkIGxvY2FsID0gcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubnVtYmVyT2ZMb2Nh
bHMoKTsgbG9jYWwtLTspCi0gICAgICAgICAgICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVh
ZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCk7Ci0gICAgICAgIAor
CiAgICAgICAgIGlmIChtX2dyYXBoLm1fcGxhbi5tb2RlID09IEZUTEZvck9TUkVudHJ5TW9kZSkg
ewotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBsb2NhbCA9IG1fZ3JhcGgubV9wcm9maWxlZEJs
b2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsgbG9jYWwtLTspIHsKLSAgICAgICAgICAgICAgICBy
b290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPQotICAgICAgICAgICAg
ICAgICAgICBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCkud2l0aEZsdXNoKAotICAgICAgICAg
ICAgICAgICAgICAgICAgRmx1c2hlZEF0KEZsdXNoZWRKU1ZhbHVlLCB2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChsb2NhbCkpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgbG9jYWwgPSBtX2dyYXBoLm1fcHJvZmlsZWRCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7
IGxvY2FsLS07KQorICAgICAgICAgICAgICAgIHJvb3QtPnNzYS0+YXZhaWxhYmlsaXR5QXRIZWFk
LmxvY2FsKGxvY2FsKSA9IEF2YWlsYWJpbGl0eTo6dW5hdmFpbGFibGUoKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgbG9jYWwgPSByb290LT5zc2EtPmF2YWls
YWJpbGl0eUF0SGVhZC5udW1iZXJPZkxvY2FscygpOyBsb2NhbC0tOykKKyAgICAgICAgICAgICAg
ICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxp
dHk6OnVuYXZhaWxhYmxlKCk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFRoaXMg
Y291bGQgYmUgbWFkZSBtb3JlIGVmZmljaWVudCBieSBwcm9jZXNzaW5nIGJsb2NrcyBpbiByZXZl
cnNlIHBvc3RvcmRlci4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50
cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50
cnkuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkVudHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsMTAgQEAgdm9pZCogcHJl
cGFyZU9TUkVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgQwogICAgIEFTU0VSVChjb2RlQmxvY2stPmFs
dGVybmF0aXZlKCkpOwogICAgIEFTU0VSVChjb2RlQmxvY2stPmFsdGVybmF0aXZlKCktPmppdFR5
cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7CiAgICAgQVNTRVJUKCFjb2RlQmxvY2stPmpp
dENvZGVNYXAoKSk7Ci0gICAgCisKKyAgICBpZiAoIU9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5VG9E
RkcoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigp
KSB7CiAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAiREZHIE9TUiBpbiAiLCAqY29kZUJs
b2NrLT5hbHRlcm5hdGl2ZSgpLCAiIC0+ICIsICpjb2RlQmxvY2ssCkBAIC01Miw4ICs1NSw4IEBA
IHZvaWQqIHByZXBhcmVPU1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIEMKICAgICB9CiAgICAgCiAg
ICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0gICAgCi0gICAgdm0tPmludGVycHJldGVyLT5zdGFj
aygpLnNhbml0aXplU3RhY2soKTsKKworICAgIHNhbml0aXplU3RhY2tGb3JWTSh2bSk7CiAgICAg
CiAgICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpICE9IEpJVENvZGU6OkRGR0pJVCkgewogICAg
ICAgICBSRUxFQVNFX0FTU0VSVChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpGVExK
SVQpOwpAQCAtMTg1LDcgKzE4OCw3IEBAIHZvaWQqIHByZXBhcmVPU1JFbnRyeShFeGVjU3RhdGUq
IGV4ZWMsIEMKICAgICAvLyAgICB3b3VsZCBoYXZlIG90aGVyd2lzZSBqdXN0IGtlcHQgcnVubmlu
ZyBhbGJlaXQgbGVzcyBxdWlja2x5LgogICAgIAogICAgIHVuc2lnbmVkIGZyYW1lU2l6ZSA9IGpp
dENvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCk7
Ci0gICAgaWYgKCF2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuZ3JvdygmZXhlYy0+cmVnaXN0ZXJz
KClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZnJhbWVTaXplKS5vZmZzZXQoKV0pKSB7CisgICAg
aWYgKCF2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IoJmV4ZWMtPnJl
Z2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lU2l6ZSAtIDEpLm9mZnNldCgp
XSkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAgIGRh
dGFMb2dGKCIgICAgT1NSIGZhaWxlZCBiZWNhdXNlIHN0YWNrIGdyb3d0aCBmYWlsZWQuXG4iKTsK
ICAgICAgICAgcmV0dXJuIDA7CkBAIC0yMTMsMTIgKzIxNiwxNCBAQCB2b2lkKiBwcmVwYXJlT1NS
RW50cnkoRXhlY1N0YXRlKiBleGVjLCBDCiAgICAgCiAgICAgLy8gNSkgQ2xlYXIgdGhvc2UgcGFy
dHMgb2YgdGhlIGNhbGwgZnJhbWUgdGhhdCB0aGUgREZHIGFpbid0IHVzaW5nLiBUaGlzIGhlbHBz
IEdDIG9uIHNvbWUKICAgICAvLyAgICBwcm9ncmFtcyBieSBlbGltaW5hdGluZyBzb21lIHN0YWxl
IHBvaW50ZXIgcGF0aG9sb2dpZXMuCi0gICAgCisKKyNpZiAwIC8vIEZJWE1FOiBDU3RhY2sgLSBU
aGlzIG5lZWRzIHRvIGJlIHZlcmlmaWVkIGJlZm9yZSBiZWluZyBlbmFibGVkCiAgICAgZm9yICh1
bnNpZ25lZCBpID0gZnJhbWVTaXplOyBpLS07KSB7CiAgICAgICAgIGlmIChlbnRyeS0+bV9tYWNo
aW5lU3RhY2tVc2VkLmdldChpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICByZWdp
c3RlcnNbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSkub2Zmc2V0KCldID0gSlNWYWx1ZTo6ZW5j
b2RlKEpTVmFsdWUoKSk7CiAgICAgfQorI2VuZGlmCiAgICAgCiAgICAgLy8gNikgRml4IHRoZSBj
YWxsIGZyYW1lLgogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
bnRyeXBvaW50Q3JlYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFbnRyeXBvaW50Q3JlYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDE2
MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlwb2ludENyZWF0
aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Myw3ICs2MywxMCBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAg
ICAgICAgICAgICBpZiAoIWJsb2NrKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgdW5zaWduZWQgbm9kZUluZGV4ID0gMDsKICAgICAgICAgICAgIE5vZGUqIGZpcnN0Tm9k
ZSA9IGJsb2NrLT5hdCgwKTsKKyAgICAgICAgICAgIHdoaWxlIChmaXJzdE5vZGUtPmlzU2VtYW50
aWNhbGx5U2tpcHBhYmxlKCkpCisgICAgICAgICAgICAgICAgZmlyc3ROb2RlID0gYmxvY2stPmF0
KCsrbm9kZUluZGV4KTsKICAgICAgICAgICAgIGlmIChmaXJzdE5vZGUtPm9wKCkgPT0gTG9vcEhp
bnQKICAgICAgICAgICAgICAgICAmJiBmaXJzdE5vZGUtPmNvZGVPcmlnaW4gPT0gQ29kZU9yaWdp
bihieXRlY29kZUluZGV4KSkgewogICAgICAgICAgICAgICAgIHRhcmdldCA9IGJsb2NrOwpAQCAt
ODMsMTcgKzg2LDYgQEAgcHVibGljOgogICAgICAgICBCYXNpY0Jsb2NrKiBuZXdSb290ID0gaW5z
ZXJ0aW9uU2V0Lmluc2VydCgwKTsKICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gdGFy
Z2V0LT5hdCgwKS0+Y29kZU9yaWdpbjsKICAgICAgICAgCi0gICAgICAgIGZvciAoaW50IGFyZ3Vt
ZW50ID0gMDsgYXJndW1lbnQgPCBiYXNlbGluZS0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50
KSB7Ci0gICAgICAgICAgICBOb2RlKiBvbGROb2RlID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQu
YXJndW1lbnQoYXJndW1lbnQpOwotICAgICAgICAgICAgaWYgKCFvbGROb2RlKSB7Ci0gICAgICAg
ICAgICAgICAgLy8gSnVzdCBmb3Igc2FuaXR5LCBhbHdheXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2
ZW4gaWYgaXQncyBub3QgbmVlZGVkLgotICAgICAgICAgICAgICAgIG9sZE5vZGUgPSBtX2dyYXBo
Lm1fYXJndW1lbnRzW2FyZ3VtZW50XTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIE5vZGUq
IG5vZGUgPSBuZXdSb290LT5hcHBlbmROb2RlKAotICAgICAgICAgICAgICAgIG1fZ3JhcGgsIFNw
ZWNOb25lLCBTZXRBcmd1bWVudCwgY29kZU9yaWdpbiwKLSAgICAgICAgICAgICAgICBPcEluZm8o
b2xkTm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpKTsKLSAgICAgICAgICAgIG1fZ3JhcGgubV9h
cmd1bWVudHNbYXJndW1lbnRdID0gbm9kZTsKLSAgICAgICAgfQogICAgICAgICBWZWN0b3I8Tm9k
ZSo+IGxvY2FscyhiYXNlbGluZS0+bV9udW1DYWxsZWVSZWdpc3RlcnMpOwogICAgICAgICBmb3Ig
KGludCBsb2NhbCA9IDA7IGxvY2FsIDwgYmFzZWxpbmUtPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOyAr
K2xvY2FsKSB7CiAgICAgICAgICAgICBOb2RlKiBwcmV2aW91c0hlYWQgPSB0YXJnZXQtPnZhcmlh
Ymxlc0F0SGVhZC5sb2NhbChsb2NhbCk7CkBAIC0xMDgsNiArMTAwLDE5IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICAgICBtX2dyYXBoLCBTcGVjTm9uZSwgTW92SGludCwgY29kZU9yaWdpbiwgT3BJ
bmZvKHZhcmlhYmxlLT5sb2NhbCgpLm9mZnNldCgpKSwKICAgICAgICAgICAgICAgICBFZGdlKGxv
Y2Fsc1tsb2NhbF0pKTsKICAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0g
MDsgYXJndW1lbnQgPCBiYXNlbGluZS0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50KSB7Cisg
ICAgICAgICAgICBOb2RlKiBvbGROb2RlID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQuYXJndW1l
bnQoYXJndW1lbnQpOworICAgICAgICAgICAgaWYgKCFvbGROb2RlKSB7CisgICAgICAgICAgICAg
ICAgLy8gSnVzdCBmb3Igc2FuaXR5LCBhbHdheXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2ZW4gaWYg
aXQncyBub3QgbmVlZGVkLgorICAgICAgICAgICAgICAgIG9sZE5vZGUgPSBtX2dyYXBoLm1fYXJn
dW1lbnRzW2FyZ3VtZW50XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE5vZGUqIG5vZGUg
PSBuZXdSb290LT5hcHBlbmROb2RlKAorICAgICAgICAgICAgICAgIG1fZ3JhcGgsIFNwZWNOb25l
LCBTZXRBcmd1bWVudCwgY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICBPcEluZm8ob2xkTm9k
ZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpKTsKKyAgICAgICAgICAgIG1fZ3JhcGgubV9hcmd1bWVu
dHNbYXJndW1lbnRdID0gbm9kZTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgZm9yIChp
bnQgbG9jYWwgPSAwOyBsb2NhbCA8IGJhc2VsaW5lLT5tX251bUNhbGxlZVJlZ2lzdGVyczsgKyts
b2NhbCkgewogICAgICAgICAgICAgTm9kZSogcHJldmlvdXNIZWFkID0gdGFyZ2V0LT52YXJpYWJs
ZXNBdEhlYWQubG9jYWwobG9jYWwpOwogICAgICAgICAgICAgaWYgKCFwcmV2aW91c0hlYWQpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEwNSw2ICsxMDUsMTEgQEAgc3RydWN0IE9TUkV4aXQgOiBwdWJsaWMgT1NSRXhpdEJh
c2UgewogICAgIHVuc2lnbmVkIG1fc3RyZWFtSW5kZXg7CiAgICAgCiAgICAgUmVmUHRyPFZhbHVl
UmVjb3ZlcnlPdmVycmlkZT4gbV92YWx1ZVJlY292ZXJ5T3ZlcnJpZGU7CisgICAgCisgICAgYm9v
bCBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29k
ZUJsb2NrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9TUkV4aXRCYXNlOjpjb25zaWRlckFkZGlu
Z0FzRnJlcXVlbnRFeGl0U2l0ZShwcm9maWxlZENvZGVCbG9jaywgRXhpdEZyb21ERkcpOworICAg
IH0KIH07CiAKIHN0cnVjdCBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0luZm8gewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5jcHAJKHJldmlzaW9uIDE2
MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKIAotYm9vbCBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhp
dFNpdGVTbG93KENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2spCitib29sIE9TUkV4aXRCYXNl
Ojpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3coQ29kZUJsb2NrKiBwcm9maWxl
ZENvZGVCbG9jaywgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkKIHsKICAgICBDb2RlQmxvY2sqIHNv
dXJjZVByb2ZpbGVkQ29kZUJsb2NrID0KICAgICAgICAgYmFzZWxpbmVDb2RlQmxvY2tGb3JPcmln
aW5BbmRCYXNlbGluZUNvZGVCbG9jaygKQEAgLTQzLDcgKzQzLDcgQEAgYm9vbCBPU1JFeGl0QmFz
ZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZQogICAgIGlmICghc291cmNlUHJvZmlsZWRDb2RlQmxv
Y2spCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gc291cmNlUHJvZmlsZWRDb2Rl
QmxvY2stPmFkZEZyZXF1ZW50RXhpdFNpdGUoCi0gICAgICAgICAgICBGcmVxdWVudEV4aXRTaXRl
KG1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxlLmJ5dGVjb2RlSW5kZXgsIG1fa2luZCkpOworICAg
ICAgICBGcmVxdWVudEV4aXRTaXRlKG1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxlLmJ5dGVjb2Rl
SW5kZXgsIG1fa2luZCwgaml0VHlwZSkpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZH
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5oCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDE1ICs1OCwxNiBAQCBzdHJ1Y3QgT1NSRXhpdEJhc2Ug
ewogICAgIENvZGVPcmlnaW4gbV9jb2RlT3JpZ2luOwogICAgIENvZGVPcmlnaW4gbV9jb2RlT3Jp
Z2luRm9yRXhpdFByb2ZpbGU7CiAKLSAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4
aXRTaXRlKENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2spCitwcm90ZWN0ZWQ6CisgICAgYm9v
bCBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29k
ZUJsb2NrLCBFeGl0aW5nSklUVHlwZSBqaXRUeXBlKQogICAgIHsKICAgICAgICAgaWYgKCFtX2Nv
dW50KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gY29uc2lkZXJB
ZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KHByb2ZpbGVkQ29kZUJsb2NrKTsKKyAgICAgICAg
cmV0dXJuIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhwcm9maWxlZENvZGVC
bG9jaywgaml0VHlwZSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGJvb2wgY29uc2lkZXJBZGRp
bmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2spOwor
ICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KENvZGVCbG9jayog
cHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRpbmdKSVRUeXBlKTsKIH07CiAKIH0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDYsNiArNDYsMTIgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0
KGNvbnN0IAogICAgICAgICBtX2ppdC5kZWJ1Z0NhbGwoZGVidWdPcGVyYXRpb25QcmludFNwZWN1
bGF0aW9uRmFpbHVyZSwgZGVidWdJbmZvKTsKICAgICB9CiAgICAgCisgICAgLy8gTmVlZCB0byBl
bnN1cmUgdGhhdCB0aGUgc3RhY2sgcG9pbnRlciBhY2NvdW50cyBmb3IgdGhlIHdvcnN0LWNhc2Ug
c3RhY2sgdXNhZ2UgYXQgZXhpdC4KKyAgICBtX2ppdC5hZGRQdHIoCisgICAgICAgIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgLW1faml0LmNvZGVCbG9jaygpLT5qaXRD
b2RlKCktPmRmZ0NvbW1vbigpLT5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ICogc2l6ZW9m
KFJlZ2lzdGVyKSksCisgICAgICAgIENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIs
IENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIAogICAgIC8vIDIpIFBl
cmZvcm0gc3BlY3VsYXRpb24gcmVjb3ZlcnkuIFRoaXMgb25seSBjb21lcyBpbnRvIHBsYXkgd2hl
biBhbiBvcGVyYXRpb24KICAgICAvLyAgICBzdGFydHMgbXV0YXRpbmcgc3RhdGUgYmVmb3JlIHZl
cmlmeWluZyB0aGUgc3BlY3VsYXRpb24gaXQgaGFzIGFscmVhZHkgbWFkZS4KICAgICAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQu
Y3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkV4aXRDb21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsOCBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21w
aWxlRXhpdChjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdCBPcGVyYW5kczxWYWx1ZVJlY292ZXJ5
PiYgb3BlcmFuZHMsIFNwZWN1bGF0aW9uUmVjb3ZlcnkqIHJlY292ZXJ5KQogeworICAgIG1faml0
LmppdEFzc2VydFRhZ3NJblBsYWNlKCk7CisKICAgICAvLyAxKSBQcm8tZm9ybWEgc3R1ZmYuCiAg
ICAgaWYgKE9wdGlvbnM6OnByaW50RWFjaE9TUkV4aXQoKSkgewogICAgICAgICBTcGVjdWxhdGlv
bkZhaWx1cmVEZWJ1Z0luZm8qIGRlYnVnSW5mbyA9IG5ldyBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1
Z0luZm87CkBAIC00OCw2ICs1MCwxMiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4
aXQoY29uc3QgCiAgICAgICAgIG1faml0LmRlYnVnQ2FsbChkZWJ1Z09wZXJhdGlvblByaW50U3Bl
Y3VsYXRpb25GYWlsdXJlLCBkZWJ1Z0luZm8pOwogICAgIH0KICAgICAKKyAgICAvLyBOZWVkIHRv
IGVuc3VyZSB0aGF0IHRoZSBzdGFjayBwb2ludGVyIGFjY291bnRzIGZvciB0aGUgd29yc3QtY2Fz
ZSBzdGFjayB1c2FnZSBhdCBleGl0LgorICAgIG1faml0LmFkZFB0cigKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoCisgICAgICAgICAgICAtbV9qaXQuY29kZUJsb2NrKCktPmpp
dENvZGUoKS0+ZGZnQ29tbW9uKCktPnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQgKiBzaXpl
b2YoUmVnaXN0ZXIpKSwKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3Rl
ciwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCiAgICAgLy8gMikg
UGVyZm9ybSBzcGVjdWxhdGlvbiByZWNvdmVyeS4gVGhpcyBvbmx5IGNvbWVzIGludG8gcGxheSB3
aGVuIGFuIG9wZXJhdGlvbgogICAgIC8vICAgIHN0YXJ0cyBtdXRhdGluZyBzdGF0ZSBiZWZvcmUg
dmVyaWZ5aW5nIHRoZSBzcGVjdWxhdGlvbiBpdCBoYXMgYWxyZWFkeSBtYWRlLgogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNw
cAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
eGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgY29t
cGlsZU9TUkV4aXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAKICAgICAgICAgTGlua0J1ZmZl
ciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIGNvZGVCbG9jayk7CiAgICAgICAgIGV4aXQubV9jb2Rl
ID0gRklOQUxJWkVfQ09ERV9JRigKLSAgICAgICAgICAgIHNob3VsZFNob3dEaXNhc3NlbWJseSgp
LAorICAgICAgICAgICAgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6dmVyYm9z
ZU9TUigpLAogICAgICAgICAgICAgcGF0Y2hCdWZmZXIsCiAgICAgICAgICAgICAoIkRGRyBPU1Ig
ZXhpdCAjJXUgKCVzLCAlcykgZnJvbSAlcywgd2l0aCBvcGVyYW5kcyA9ICVzIiwKICAgICAgICAg
ICAgICAgICBleGl0SW5kZXgsIHRvQ1N0cmluZyhleGl0Lm1fY29kZU9yaWdpbikuZGF0YSgpLApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJERkdPcGVy
YXRpb25zLmgiCisjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMu
aCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKQEAgLTE3Myw3ICsxNzQsMTEgQEAgdm9pZCBh
ZGp1c3RBbmRKdW1wVG9UYXJnZXQoQ0NhbGxIZWxwZXJzJgogICAgIEFTU0VSVChtYXBwaW5nLT5t
X2J5dGVjb2RlSW5kZXggPT0gZXhpdC5tX2NvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCk7CiAgICAg
CiAgICAgdm9pZCoganVtcFRhcmdldCA9IGJhc2VsaW5lQ29kZUJsb2NrLT5qaXRDb2RlKCktPmV4
ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQobWFwcGluZy0+bV9tYWNoaW5lQ29kZU9mZnNldCk7CisK
KyAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpJVDo6c3RhY2tQ
b2ludGVyT2Zmc2V0Rm9yKGJhc2VsaW5lQ29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CiAgICAgCisgICAgaml0LmppdEFzc2VydFRhZ3NJblBsYWNlKCk7CisKICAgICBq
aXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoanVtcFRhcmdldCksIEdQUklu
Zm86OnJlZ1QyKTsKICAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMik7CiB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExNDAsNyArMTE0MCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiB0cmlnZ2Vy
VGllclVwTm93KEV4ZWMKICAgICB9CiAgICAgCiAgICAgV29ya2xpc3Q6OlN0YXRlIHdvcmtsaXN0
U3RhdGU7Ci0gICAgaWYgKFdvcmtsaXN0KiB3b3JrbGlzdCA9IHZtLT53b3JrbGlzdC5nZXQoKSkg
eworICAgIGlmIChXb3JrbGlzdCogd29ya2xpc3QgPSBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0
T3JOdWxsKCkpIHsKICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0ZUFs
bFJlYWR5UGxhbnNGb3JWTSgKICAgICAgICAgICAgICp2bSwgQ29tcGlsYXRpb25LZXkoY29kZUJs
b2NrLT5iYXNlbGluZVZlcnNpb24oKSwgRlRMTW9kZSkpOwogICAgIH0gZWxzZQpAQCAtMTE2OSw4
ICsxMTY5LDggQEAgdm9pZCBKSVRfT1BFUkFUSU9OIHRyaWdnZXJUaWVyVXBOb3coRXhlYwogCiAg
ICAgLy8gV2UgbmVlZCB0byBjb21waWxlIHRoZSBjb2RlLgogICAgIGNvbXBpbGUoCi0gICAgICAg
ICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBGVExNb2RlLCBVSU5UX01B
WCwgT3BlcmFuZHM8SlNWYWx1ZT4oKSwKLSAgICAgICAgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spLCB2bS0+ZW5zdXJlV29ya2xpc3QoKSk7CisgICAg
ICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBjb2RlQmxvY2ssIEZU
TE1vZGUsIFVJTlRfTUFYLAorICAgICAgICBPcGVyYW5kczxKU1ZhbHVlPigpLCBUb0ZUTERlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKGNvZGVCbG9jaykpOwogfQogCiBjaGFyKiBK
SVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKQEAgLTEyMDIsOCArMTIwMiwxMCBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQogICAgIAorICAgIFdvcmtsaXN0KiB3b3JrbGlzdCA9IGV4aXN0aW5nR2xvYmFsRlRM
V29ya2xpc3RPck51bGwoKTsKKwogICAgIFdvcmtsaXN0OjpTdGF0ZSB3b3JrbGlzdFN0YXRlOwot
ICAgIGlmIChXb3JrbGlzdCogd29ya2xpc3QgPSB2bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAgICBp
ZiAod29ya2xpc3QpIHsKICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0
ZUFsbFJlYWR5UGxhbnNGb3JWTSgKICAgICAgICAgICAgICp2bSwgQ29tcGlsYXRpb25LZXkoY29k
ZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKSwgRlRMRm9yT1NSRW50cnlNb2RlKSk7CiAgICAgfSBl
bHNlCkBAIC0xMjUyLDEwICsxMjU0LDkgQEAgY2hhciogSklUX09QRVJBVElPTiB0cmlnZ2VyT1NS
RW50cnlOb3coCiAgICAgT3BlcmFuZHM8SlNWYWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKICAgICBq
aXRDb2RlLT5yZWNvbnN0cnVjdCgKICAgICAgICAgZXhlYywgY29kZUJsb2NrLCBDb2RlT3JpZ2lu
KGJ5dGVjb2RlSW5kZXgpLCBzdHJlYW1JbmRleCwgbXVzdEhhbmRsZVZhbHVlcyk7Ci0gICAgQ29t
cGlsYXRpb25SZXN1bHQgZm9yRW50cnlSZXN1bHQgPSBERkc6OmNvbXBpbGUoCi0gICAgICAgICp2
bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBGVExGb3JPU1JFbnRyeU1vZGUs
IGJ5dGVjb2RlSW5kZXgsCi0gICAgICAgIG11c3RIYW5kbGVWYWx1ZXMsIFRvRlRMRm9yT1NSRW50
cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spLAotICAgICAg
ICB2bS0+ZW5zdXJlV29ya2xpc3QoKSk7CisgICAgQ29tcGlsYXRpb25SZXN1bHQgZm9yRW50cnlS
ZXN1bHQgPSBjb21waWxlKAorICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQo
KS5nZXQoKSwgY29kZUJsb2NrLCBGVExGb3JPU1JFbnRyeU1vZGUsIGJ5dGVjb2RlSW5kZXgsCisg
ICAgICAgIG11c3RIYW5kbGVWYWx1ZXMsIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0
aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spKTsKICAgICAKICAgICAvLyBCdXQgd2UgYWxz
byB3YW50IHRvIHRyaWdnZXIgYSByZXBsYWNlbWVudCBjb21waWxlLiBPZiBjb3Vyc2UsIHdlIGRv
bid0IHdhbnQgdG8KICAgICAvLyB0cmlnZ2VyIGl0IGlmIHdlIGRvbid0IG5lZWQgdG8uIE5vdGUg
dGhhdCB0aGlzIGlzIGtpbmQgb2Ygd2VpcmQgYmVjYXVzZSB3ZSBtaWdodApAQCAtMTI2OCwxMSAr
MTI2OSwxMSBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICBD
b21waWxhdGlvbktleSBrZXlGb3JSZXBsYWNlbWVudChjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lv
bigpLCBGVExNb2RlKTsKICAgICBpZiAoY29kZUJsb2NrLT5jb2RlVHlwZSgpICE9IEdsb2JhbENv
ZGUKICAgICAgICAgJiYgIWNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKQotICAg
ICAgICAmJiAoIXZtLT53b3JrbGlzdC5nZXQoKQotICAgICAgICAgICAgfHwgdm0tPndvcmtsaXN0
LT5jb21waWxhdGlvblN0YXRlKGtleUZvclJlcGxhY2VtZW50KSA9PSBXb3JrbGlzdDo6Tm90S25v
d24pKSB7CisgICAgICAgICYmICghd29ya2xpc3QKKyAgICAgICAgICAgIHx8IHdvcmtsaXN0LT5j
b21waWxhdGlvblN0YXRlKGtleUZvclJlcGxhY2VtZW50KSA9PSBXb3JrbGlzdDo6Tm90S25vd24p
KSB7CiAgICAgICAgIGNvbXBpbGUoCi0gICAgICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVw
bGFjZW1lbnQoKS5nZXQoKSwgRlRMTW9kZSwgVUlOVF9NQVgsIE9wZXJhbmRzPEpTVmFsdWU+KCks
Ci0gICAgICAgICAgICBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKGNv
ZGVCbG9jayksIHZtLT5lbnN1cmVXb3JrbGlzdCgpKTsKKyAgICAgICAgICAgICp2bSwgY29kZUJs
b2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBjb2RlQmxvY2ssIEZUTE1vZGUsIFVJTlRfTUFY
LAorICAgICAgICAgICAgT3BlcmFuZHM8SlNWYWx1ZT4oKSwgVG9GVExEZWZlcnJlZENvbXBpbGF0
aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spKTsKICAgICB9CiAgICAgCiAgICAgaWYgKGZv
ckVudHJ5UmVzdWx0ICE9IENvbXBpbGF0aW9uU3VjY2Vzc2Z1bCkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTAsMTcgKzkwLDM2IEBA
IHN0YXRpYyB2b2lkIGR1bXBBbmRWZXJpZnlHcmFwaChHcmFwaCYgZ3IKICAgICAgICAgdmFsaWRh
dGUoZ3JhcGgsIG1vZGVGb3JGaW5hbFZhbGlkYXRlKTsKIH0KIAotUGxhbjo6UGxhbigKLSAgICBQ
YXNzUmVmUHRyPENvZGVCbG9jaz4gcGFzc2VkQ29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9k
ZSwKLSAgICB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIGNvbnN0IE9wZXJhbmRzPEpT
VmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzKQorc3RhdGljIFByb2ZpbGVyOjpDb21waWxhdGlvbktp
bmQgcHJvZmlsZXJDb21waWxhdGlvbktpbmRGb3JNb2RlKENvbXBpbGF0aW9uTW9kZSBtb2RlKQor
eworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgSW52YWxpZENvbXBpbGF0aW9uTW9kZToK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFBy
b2ZpbGVyOjpERkc7CisgICAgY2FzZSBERkdNb2RlOgorICAgICAgICByZXR1cm4gUHJvZmlsZXI6
OkRGRzsKKyAgICBjYXNlIEZUTE1vZGU6CisgICAgICAgIHJldHVybiBQcm9maWxlcjo6RlRMOwor
ICAgIGNhc2UgRlRMRm9yT1NSRW50cnlNb2RlOgorICAgICAgICByZXR1cm4gUHJvZmlsZXI6OkZU
TEZvck9TUkVudHJ5OworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBQcm9maWxlcjo6REZHOworfQorCitQbGFuOjpQbGFuKFBhc3NSZWZQdHI8Q29k
ZUJsb2NrPiBwYXNzZWRDb2RlQmxvY2ssIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ss
CisgICAgQ29tcGlsYXRpb25Nb2RlIG1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRl
eCwKKyAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcykKICAgICA6
IHZtKCpwYXNzZWRDb2RlQmxvY2stPnZtKCkpCiAgICAgLCBjb2RlQmxvY2socGFzc2VkQ29kZUJs
b2NrKQorICAgICwgcHJvZmlsZWRERkdDb2RlQmxvY2socHJvZmlsZWRERkdDb2RlQmxvY2spCiAg
ICAgLCBtb2RlKG1vZGUpCiAgICAgLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgob3NyRW50cnlCeXRl
Y29kZUluZGV4KQogICAgICwgbXVzdEhhbmRsZVZhbHVlcyhtdXN0SGFuZGxlVmFsdWVzKQotICAg
ICwgY29tcGlsYXRpb24oY29kZUJsb2NrLT52bSgpLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIgPyBh
ZG9wdFJlZihuZXcgUHJvZmlsZXI6OkNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9wZXJC
eXRlY29kZVByb2ZpbGVyLT5lbnN1cmVCeXRlY29kZXNGb3IoY29kZUJsb2NrLmdldCgpKSwgUHJv
ZmlsZXI6OkRGRykpIDogMCkKKyAgICAsIGNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9w
ZXJCeXRlY29kZVByb2ZpbGVyID8gYWRvcHRSZWYobmV3IFByb2ZpbGVyOjpDb21waWxhdGlvbihj
b2RlQmxvY2stPnZtKCktPm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+ZW5zdXJlQnl0ZWNvZGVzRm9y
KGNvZGVCbG9jay5nZXQoKSksIHByb2ZpbGVyQ29tcGlsYXRpb25LaW5kRm9yTW9kZShtb2RlKSkp
IDogMCkKICAgICAsIGlkZW50aWZpZXJzKGNvZGVCbG9jay5nZXQoKSkKICAgICAsIHdlYWtSZWZl
cmVuY2VzKGNvZGVCbG9jay5nZXQoKSkKKyAgICAsIHdpbGxUcnlUb1RpZXJVcChmYWxzZSkKICAg
ICAsIGlzQ29tcGlsZWQoZmFsc2UpCiB7CiB9CkBAIC0xMDksMTAgKzEyOCwxNiBAQCBQbGFuOjp+
UGxhbigpCiB7CiB9CiAKK2Jvb2wgUGxhbjo6cmVwb3J0Q29tcGlsZVRpbWVzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gT3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkKKyAgICAgICAgfHwgKE9w
dGlvbnM6OnJlcG9ydEZUTENvbXBpbGVUaW1lcygpICYmIGlzRlRMKG1vZGUpKTsKK30KKwogdm9p
ZCBQbGFuOjpjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQog
ewogICAgIGRvdWJsZSBiZWZvcmUgPSAwOwotICAgIGlmIChPcHRpb25zOjpyZXBvcnRDb21waWxl
VGltZXMoKSkKKyAgICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgIGJlZm9yZSA9
IGN1cnJlbnRUaW1lTVMoKTsKICAgICAKICAgICBTYW1wbGluZ1JlZ2lvbiBzYW1wbGluZ1JlZ2lv
bigiREZHIENvbXBpbGF0aW9uIChQbGFuKSIpOwpAQCAtMTI1LDcgKzE1MCw3IEBAIHZvaWQgUGxh
bjo6Y29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXQKIAogICAgIFJFTEVBU0VfQVNTRVJUKGZp
bmFsaXplcik7CiAgICAgCi0gICAgaWYgKE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1lcygpKSB7
CisgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIHBh
dGhOYW1lOwogICAgICAgICBzd2l0Y2ggKHBhdGgpIHsKICAgICAgICAgY2FzZSBGYWlsUGF0aDoK
QEAgLTE0Myw3ICsxNjgsNyBAQCB2b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRT
dGF0CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkb3VibGUgbm93ID0g
Y3VycmVudFRpbWVNUygpOwotICAgICAgICBkYXRhTG9nKCJPcHRpbWl6ZWQgIiwgKmNvZGVCbG9j
ay0+YWx0ZXJuYXRpdmUoKSwgIiB1c2luZyAiLCBtb2RlLCAiIHdpdGggIiwgcGF0aE5hbWUsICIg
aW4gIiwgbm93IC0gYmVmb3JlLCAiIG1zIik7CisgICAgICAgIGRhdGFMb2coIk9wdGltaXplZCAi
LCAqY29kZUJsb2NrLCAiIHVzaW5nICIsIG1vZGUsICIgd2l0aCAiLCBwYXRoTmFtZSwgIiBpbnRv
ICIsIGZpbmFsaXplci0+Y29kZVNpemUoKSwgIiBieXRlcyBpbiAiLCBub3cgLSBiZWZvcmUsICIg
bXMiKTsKICAgICAgICAgaWYgKHBhdGggPT0gRlRMUGF0aCkKICAgICAgICAgICAgIGRhdGFMb2co
IiAoREZHOiAiLCBiZWZvcmVGVEwgLSBiZWZvcmUsICIsIExMVk06ICIsIG5vdyAtIGJlZm9yZUZU
TCwgIikiKTsKICAgICAgICAgZGF0YUxvZygiLlxuIik7CkBAIC0yOTIsNyArMzE3LDcgQEAgUGxh
bjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJblRocgogICAgICAgICBGVEw6OlN0YXRl
IHN0YXRlKGRmZyk7CiAgICAgICAgIEZUTDo6bG93ZXJERkdUb0xMVk0oc3RhdGUpOwogICAgICAg
ICAKLSAgICAgICAgaWYgKE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1lcygpKQorICAgICAgICBp
ZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgICAgICBiZWZvcmVGVEwgPSBjdXJyZW50
VGltZU1TKCk7CiAgICAgICAgIAogICAgICAgICBpZiAoT3B0aW9uczo6bGx2bUFsd2F5c0ZhaWxz
QmVmb3JlQ29tcGlsZSgpKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Bs
YW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTU1LDcgKzU1LDggQEAgY2xhc3MgTG9uZ0xpdmVkU3RhdGU7CiAKIHN0
cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBsYW4+IHsKICAgICBQbGFu
KAotICAgICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4sIENvbXBpbGF0aW9uTW9kZSwgdW5zaWdu
ZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LAorICAgICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4g
Y29kZUJsb2NrVG9Db21waWxlLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLAorICAg
ICAgICBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKICAg
ICAgICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMpOwogICAgIH5Q
bGFuKCk7CiAgICAgCkBAIC03MCw2ICs3MSw3IEBAIHN0cnVjdCBQbGFuIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGUKICAgICAKICAgICBWTSYgdm07CiAgICAgUmVmUHRyPENvZGVCbG9jaz4g
Y29kZUJsb2NrOworICAgIFJlZlB0cjxDb2RlQmxvY2s+IHByb2ZpbGVkREZHQ29kZUJsb2NrOwog
ICAgIENvbXBpbGF0aW9uTW9kZSBtb2RlOwogICAgIGNvbnN0IHVuc2lnbmVkIG9zckVudHJ5Qnl0
ZWNvZGVJbmRleDsKICAgICBPcGVyYW5kczxKU1ZhbHVlPiBtdXN0SGFuZGxlVmFsdWVzOwpAQCAt
ODQsNiArODYsOCBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAg
ICAgRGVzaXJlZFdlYWtSZWZlcmVuY2VzIHdlYWtSZWZlcmVuY2VzOwogICAgIERlc2lyZWRXcml0
ZUJhcnJpZXJzIHdyaXRlQmFycmllcnM7CiAgICAgRGVzaXJlZFRyYW5zaXRpb25zIHRyYW5zaXRp
b25zOworICAgIAorICAgIGJvb2wgd2lsbFRyeVRvVGllclVwOwogCiAgICAgZG91YmxlIGJlZm9y
ZUZUTDsKICAgICAKQEAgLTkyLDYgKzk2LDggQEAgc3RydWN0IFBsYW4gOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZQogICAgIFJlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNh
bGxiYWNrOwogCiBwcml2YXRlOgorICAgIGJvb2wgcmVwb3J0Q29tcGlsZVRpbWVzKCkgY29uc3Q7
CisgICAgCiAgICAgZW51bSBDb21waWxhdGlvblBhdGggeyBGYWlsUGF0aCwgREZHUGF0aCwgRlRM
UGF0aCB9OwogICAgIENvbXBpbGF0aW9uUGF0aCBjb21waWxlSW5UaHJlYWRJbXBsKExvbmdMaXZl
ZFN0YXRlJik7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxv
d2VyaW5nUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU1NBTG93ZXJpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcz
LDIyICs3MywzMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAK
ICAgICAgICAgY2FzZSBQdXRCeVZhbDoKLSAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKLSAg
ICAgICAgICAgIGxvd2VyQm91bmRzQ2hlY2soCi0gICAgICAgICAgICAgICAgbV9ncmFwaC52YXJB
cmdDaGlsZChtX25vZGUsIDApLAotICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bV9ub2RlLCAxKSwKLSAgICAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwg
MykpOworICAgICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OiB7CisgICAgICAgICAgICBFZGdlIGJh
c2UgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMCk7CisgICAgICAgICAgICBFZGdlIGlu
ZGV4ID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpOworICAgICAgICAgICAgRWRnZSBz
dG9yYWdlID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDMpOworICAgICAgICAgICAgaWYg
KGxvd2VyQm91bmRzQ2hlY2soYmFzZSwgaW5kZXgsIHN0b3JhZ2UpKQorICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1vZGUo
KS50eXBlZEFycmF5VHlwZSgpICE9IE5vdFR5cGVkQXJyYXkgJiYgbV9ub2RlLT5hcnJheU1vZGUo
KS5pc091dE9mQm91bmRzKCkpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBsZW5ndGggPSBtX2lu
c2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAgICAgICBtX25vZGVJbmRleCwg
U3BlY0ludDMyLCBHZXRBcnJheUxlbmd0aCwgbV9ub2RlLT5jb2RlT3JpZ2luLAorICAgICAgICAg
ICAgICAgICAgICBPcEluZm8obV9ub2RlLT5hcnJheU1vZGUoKS5hc1dvcmQoKSksIGJhc2UsIHN0
b3JhZ2UpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJn
Q2hpbGQobV9ub2RlLCA0KSA9IEVkZ2UobGVuZ3RoLCBLbm93bkludDMyVXNlKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHZvaWQgbG93ZXJCb3VuZHNDaGVjayhFZGdlIGJh
c2UsIEVkZ2UgaW5kZXgsIEVkZ2Ugc3RvcmFnZSkKKyAgICBib29sIGxvd2VyQm91bmRzQ2hlY2so
RWRnZSBiYXNlLCBFZGdlIGluZGV4LCBFZGdlIHN0b3JhZ2UpCiAgICAgewogICAgICAgICBpZiAo
IW1fbm9kZS0+YXJyYXlNb2RlKCkucGVybWl0c0JvdW5kc0NoZWNrTG93ZXJpbmcoKSkKLSAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCiAgICAg
ICAgIGlmICghbV9ub2RlLT5hcnJheU1vZGUoKS5sZW5ndGhOZWVkc1N0b3JhZ2UoKSkKICAgICAg
ICAgICAgIHN0b3JhZ2UgPSBFZGdlKCk7CkBAIC05OSw2ICsxMTAsNyBAQCBwcml2YXRlOgogICAg
ICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgbV9ub2RlSW5kZXgs
IFNwZWNJbnQzMiwgQ2hlY2tJbkJvdW5kcywgbV9ub2RlLT5jb2RlT3JpZ2luLAogICAgICAgICAg
ICAgaW5kZXgsIEVkZ2UobGVuZ3RoLCBLbm93bkludDMyVXNlKSk7CisgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICAgICAKICAgICBJbnNlcnRpb25TZXQgbV9pbnNlcnRpb25TZXQ7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw3ICsxNzIs
NyBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkCiB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJh
c2VUYWdHUFJPck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQ
UiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJ
VENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxN
b2RlKQogewogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2Rl
QmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdp
c3RlcnMoKSwKICAgICAgICAgSlNWYWx1ZVJlZ3MoYmFzZVRhZ0dQUk9yTm9uZSwgYmFzZVBheWxv
YWRHUFIpLAogICAgICAgICBKU1ZhbHVlUmVncyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRH
UFIpLCBzcGlsbE1vZGUgIT0gTmVlZFRvU3BpbGwpOwogICAgIApAQCAtMjA0LDcgKzIwNCw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU8KIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNhY2hlZFB1dEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVBh
eWxvYWRHUFIsIEdQUlJlZyB2YWx1ZVRhZ0dQUiwgR1BSUmVnIHZhbHVlUGF5bG9hZEdQUiwgR1BS
UmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQgcHV0S2lu
ZCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpCiB7CiAgICAgSklUUHV0QnlJZEdl
bmVyYXRvciBnZW4oCi0gICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2Vk
UmVnaXN0ZXJzKCksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAorICAgICAgICBtX2ppdC5j
b2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLAogICAgICAgICBKU1ZhbHVl
UmVnczo6cGF5bG9hZE9ubHkoYmFzZVBheWxvYWRHUFIpLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ0dQ
UiwgdmFsdWVQYXlsb2FkR1BSKSwKICAgICAgICAgc2NyYXRjaEdQUiwgZmFsc2UsIG1faml0LmVj
bWFNb2RlRm9yKGNvZGVPcmlnaW4pLCBwdXRLaW5kKTsKICAgICAKQEAgLTYzMSwxMCArNjMxLDkg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZQogICAgIAogICAgIGlu
dCBudW1BcmdzID0gbnVtUGFzc2VkQXJncyArIGR1bW15VGhpc0FyZ3VtZW50OwogCi0gICAgbV9q
aXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG51bUFyZ3MpLCBjYWxsZWVG
cmFtZVBheWxvYWRTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKTsKLSAgICBt
X2ppdC5zdG9yZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgY2FsbGVlRnJhbWVDYWxs
ZXJGcmFtZShudW1BcmdzKSk7Ci0gICAgbV9qaXQuc3RvcmUzMihjYWxsZWVQYXlsb2FkR1BSLCBj
YWxsZWVGcmFtZVBheWxvYWRTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOwotICAgIG1f
aml0LnN0b3JlMzIoY2FsbGVlVGFnR1BSLCBjYWxsZWVGcmFtZVRhZ1Nsb3QobnVtQXJncywgSlNT
dGFjazo6Q2FsbGVlKSk7CisgICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6OkFyZ3VtZW50
Q291bnQpKTsKKyAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVBheWxvYWRHUFIsIGNhbGxlZUZyYW1l
UGF5bG9hZFNsb3QoSlNTdGFjazo6Q2FsbGVlKSk7CisgICAgbV9qaXQuc3RvcmUzMihjYWxsZWVU
YWdHUFIsIGNhbGxlZUZyYW1lVGFnU2xvdChKU1N0YWNrOjpDYWxsZWUpKTsKIAogICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgbnVtUGFzc2VkQXJnczsgaSsrKSB7CiAgICAgICAgIEVkZ2UgYXJnRWRn
ZSA9IG1faml0LmdyYXBoKCkubV92YXJBcmdDaGlsZHJlbltub2RlLT5maXJzdENoaWxkKCkgKyAx
ICsgaV07CkBAIC02NDMsOCArNjQyLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwo
Tm9kZSogbm9kZQogICAgICAgICBHUFJSZWcgYXJnUGF5bG9hZEdQUiA9IGFyZy5wYXlsb2FkR1BS
KCk7CiAgICAgICAgIHVzZShhcmdFZGdlKTsKIAotICAgICAgICBtX2ppdC5zdG9yZTMyKGFyZ1Rh
Z0dQUiwgY2FsbGVlQXJndW1lbnRUYWdTbG90KG51bUFyZ3MsIGkgKyBkdW1teVRoaXNBcmd1bWVu
dCkpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKGFyZ1BheWxvYWRHUFIsIGNhbGxlZUFyZ3VtZW50
UGF5bG9hZFNsb3QobnVtQXJncywgaSArIGR1bW15VGhpc0FyZ3VtZW50KSk7CisgICAgICAgIG1f
aml0LnN0b3JlMzIoYXJnVGFnR1BSLCBjYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaSArIGR1bW15VGhp
c0FyZ3VtZW50KSk7CisgICAgICAgIG1faml0LnN0b3JlMzIoYXJnUGF5bG9hZEdQUiwgY2FsbGVl
QXJndW1lbnRQYXlsb2FkU2xvdChpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKICAgICB9CiAKICAg
ICBmbHVzaFJlZ2lzdGVycygpOwpAQCAtNjU5LDEzICs2NTgsMTEgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZQogCiAgICAgbV9qaXQuZW1pdFN0b3JlQ29kZU9yaWdp
bihub2RlLT5jb2RlT3JpZ2luKTsKICAgICAKLSAgICBtX2ppdC5hZGRQdHIoVHJ1c3RlZEltbTMy
KGNhbGxlZUZyYW1lT2Zmc2V0KG51bUFyZ3MpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIp
OwotICAgIAogICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxl
cjo6Tm90RXF1YWwsIGNhbGxlZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcp
KSk7CiAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIGNhbGxlZVBheWxvYWRHUFIsIHRhcmdldFRvQ2hlY2spKTsKICAg
ICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNhbGxlZVBheWxvYWRHUFIs
IE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlc3VsdFBheWxvYWRHUFIp
OwotICAgIG1faml0LnN0b3JlUHRyKHJlc3VsdFBheWxvYWRHUFIsIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+
KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbiArIE9CSkVDVF9PRkZTRVRP
RihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpKTsKLSAgICBtX2ppdC5z
dG9yZTMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNf
Y2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbiAr
IE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOwor
ICAgIG1faml0LnN0b3JlUHRyKHJlc3VsdFBheWxvYWRHUFIsIGNhbGxlZUZyYW1lUGF5bG9hZFNs
b3QoSlNTdGFjazo6U2NvcGVDaGFpbikpOworICAgIG1faml0LnN0b3JlUHRyKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGNhbGxlZUZyYW1lVGFnU2xvdChK
U1N0YWNrOjpTY29wZUNoYWluKSk7CiAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBmYXN0Q2FsbCA9
IG1faml0Lm5lYXJDYWxsKCk7CiAKQEAgLTMwNDcsMTIgKzMwNDQsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAot
ICAgICAgICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICAgICAgbV9qaXQuZW1pdEdl
dFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMik7Ci0gICAgICAg
IC8vIFJlc3RvcmUgb3VyIGNhbGxlcidzICJyIi4KLSAgICAgICAgbV9qaXQuZW1pdEdldENhbGxl
ckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7
Ci0gICAgICAgIC8vIFJldHVybi4KLSAgICAgICAgbV9qaXQucmVzdG9yZVJldHVybkFkZHJlc3NC
ZWZvcmVSZXR1cm4oR1BSSW5mbzo6cmVnVDIpOworICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgICAgICBtX2ppdC5yZXQoKTsKICAgICAgICAgCiAgICAgICAgIG5vUmVz
dWx0KG5vZGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAs
OCArMTkwLDggQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIAogdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQ
UlJlZyBiYXNlR1BSLCBHUFJSZWcgcmVzdWx0R1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVy
LCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNw
aWxsTW9kZSkKIHsKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9qaXQu
Y29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsCi0gICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVlUmVncyhy
ZXN1bHRHUFIpLCBzcGlsbE1vZGUgIT0gTmVlZFRvU3BpbGwpOworICAgICAgICBtX2ppdC5jb2Rl
QmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBKU1ZhbHVlUmVncyhiYXNlR1BS
KSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVzdWx0R1BSKSwgc3BpbGxNb2RlICE9IE5lZWRUb1Nw
aWxsKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CiAgICAgCiAgICAgSklUQ29t
cGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKQEAgLTIxMCw5ICsyMTAsOCBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNo
ZWRQdXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB2
YWx1ZUdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1
dEtpbmQgcHV0S2luZCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpCiB7CiAgICAg
SklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2Rl
T3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAg
ICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBzY3JhdGNo
R1BSLCBmYWxzZSwKLSAgICAgICAgbV9qaXQuZWNtYU1vZGVGb3IoY29kZU9yaWdpbiksIHB1dEtp
bmQpOworICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVy
cygpLCBKU1ZhbHVlUmVncyhiYXNlR1BSKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVHUFIp
LCBzY3JhdGNoR1BSLCBmYWxzZSwgbV9qaXQuZWNtYU1vZGVGb3IoY29kZU9yaWdpbiksIHB1dEtp
bmQpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKICAgICAKICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwpAQCAtNjYzLDkgKzY2Miw4IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUKICAgICAKICAgICBpbnQgbnVtQXJncyA9IG51
bVBhc3NlZEFyZ3MgKyBkdW1teVRoaXNBcmd1bWVudDsKICAgICAKLSAgICBtX2ppdC5zdG9yZTMy
KE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIobnVtQXJncyksIGNhbGxlZUZyYW1lUGF5bG9h
ZFNsb3QobnVtQXJncywgSlNTdGFjazo6QXJndW1lbnRDb3VudCkpOwotICAgIG1faml0LnN0b3Jl
NjQoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUobnVt
QXJncykpOwotICAgIG1faml0LnN0b3JlNjQoY2FsbGVlR1BSLCBjYWxsZWVGcmFtZVNsb3QobnVt
QXJncywgSlNTdGFjazo6Q2FsbGVlKSk7CisgICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6
OkFyZ3VtZW50Q291bnQpKTsKKyAgICBtX2ppdC5zdG9yZTY0KGNhbGxlZUdQUiwgY2FsbGVlRnJh
bWVTbG90KEpTU3RhY2s6OkNhbGxlZSkpOwogICAgIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
bnVtUGFzc2VkQXJnczsgaSsrKSB7CiAgICAgICAgIEVkZ2UgYXJnRWRnZSA9IG1faml0LmdyYXBo
KCkubV92YXJBcmdDaGlsZHJlbltub2RlLT5maXJzdENoaWxkKCkgKyAxICsgaV07CkBAIC02NzMs
NyArNjcxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZQogICAg
ICAgICBHUFJSZWcgYXJnR1BSID0gYXJnLmdwcigpOwogICAgICAgICB1c2UoYXJnRWRnZSk7CiAg
ICAgICAgIAotICAgICAgICBtX2ppdC5zdG9yZTY0KGFyZ0dQUiwgY2FsbGVlQXJndW1lbnRTbG90
KG51bUFyZ3MsIGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOworICAgICAgICBtX2ppdC5zdG9yZTY0
KGFyZ0dQUiwgY2FsbGVlQXJndW1lbnRTbG90KGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOwogICAg
IH0KIAogICAgIGZsdXNoUmVnaXN0ZXJzKCk7CkBAIC02ODIsMjMgKzY4MCwyOCBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBub2RlCiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9
IHJlc3VsdC5ncHIoKTsKIAogICAgIEpJVENvbXBpbGVyOjpEYXRhTGFiZWxQdHIgdGFyZ2V0VG9D
aGVjazsKLSAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd1BhdGg7CisgICAgSklUQ29tcGls
ZXI6Okp1bXAgc2xvd1BhdGg7CiAKICAgICBtX2ppdC5lbWl0U3RvcmVDb2RlT3JpZ2luKG5vZGUt
PmNvZGVPcmlnaW4pOwogICAgIAotICAgIG1faml0LmFkZFB0cihUcnVzdGVkSW1tMzIoY2FsbGVl
RnJhbWVPZmZzZXQobnVtQXJncykpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAg
Ci0gICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fzc2Vt
Ymxlcjo6Tm90RXF1YWwsIGNhbGxlZUdQUiwgdGFyZ2V0VG9DaGVjaywgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIoMCkpKTsKKyAgICBzbG93UGF0aCA9IG1faml0LmJyYW5jaFB0cldpdGhQ
YXRjaChNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGNhbGxlZUdQUiwgdGFyZ2V0VG9DaGVjaywg
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoMCkpOwogCiAgICAgbV9qaXQubG9hZFB0cihN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjYWxsZWVHUFIsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0
aW9uLCBtX3Njb3BlKSksIHJlc3VsdEdQUik7Ci0gICAgbV9qaXQuc3RvcmU2NChyZXN1bHRHUFIs
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0
aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFp
bikpOworICAgIG1faml0LnN0b3JlNjQocmVzdWx0R1BSLCBjYWxsZWVGcmFtZVNsb3QoSlNTdGFj
azo6U2NvcGVDaGFpbikpOwogCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgZmFzdENhbGwgPSBtX2pp
dC5uZWFyQ2FsbCgpOwotICAgIAorCiAgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0
Lmp1bXAoKTsKICAgICAKICAgICBzbG93UGF0aC5saW5rKCZtX2ppdCk7CiAgICAgCisgICAgaWYg
KG1faml0LmdyYXBoKCkubV9wbGFuLndpbGxUcnlUb1RpZXJVcCkgeworICAgICAgICBtX2ppdC5h
ZGQzMigKKyAgICAgICAgICAgIFRydXN0ZWRJbW0zMigxKSwKKyAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBYnNvbHV0ZUFkZHJlc3MoCisgICAgICAgICAgICAgICAgbV9qaXQuaml0Q29kZSgp
LT5zbG93UGF0aENhbGxzLmJlZ2luKCkgKyBtX2ppdC5jdXJyZW50SlNDYWxsSW5kZXgoKSkpOwor
ICAgIH0KKyAgICAKICAgICBtX2ppdC5tb3ZlKGNhbGxlZUdQUiwgR1BSSW5mbzo6cmVnVDApOyAv
LyBDYWxsZWUgbmVlZHMgdG8gYmUgaW4gcmVnVDAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBzbG93
Q2FsbCA9IG1faml0Lm5lYXJDYWxsKCk7CiAgICAgCkBAIC0zMjAwLDcgKzMyMDMsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAogICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2Fs
bCgKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5UHVz
aCwgTm9SZXN1bHQsIHN0b3JhZ2VMZW5ndGhHUFIsCisgICAgICAgICAgICAgICAgICAgIHNsb3dQ
YXRoLCB0aGlzLCBvcGVyYXRpb25BcnJheVB1c2gsIHN0b3JhZ2VMZW5ndGhHUFIsCiAgICAgICAg
ICAgICAgICAgICAgIHZhbHVlR1BSLCBiYXNlR1BSKSk7CiAgICAgICAgIAogICAgICAgICAgICAg
anNWYWx1ZVJlc3VsdChzdG9yYWdlTGVuZ3RoR1BSLCBub2RlKTsKQEAgLTMyMjQsNyArMzIyNyw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAg
IAogICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgICAgICAgICAgc2xv
d1BhdGhDYWxsKAotICAgICAgICAgICAgICAgICAgICBzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9u
QXJyYXlQdXNoRG91YmxlLCBOb1Jlc3VsdCwgc3RvcmFnZUxlbmd0aEdQUiwKKyAgICAgICAgICAg
ICAgICAgICAgc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSwgc3RvcmFn
ZUxlbmd0aEdQUiwKICAgICAgICAgICAgICAgICAgICAgdmFsdWVGUFIsIGJhc2VHUFIpKTsKICAg
ICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHN0b3JhZ2VMZW5ndGhHUFIsIG5vZGUp
OwpAQCAtMzM4OCwxMiArMzM5MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgbV9qaXQubW92ZShvcDEuZ3ByKCksIEdQUkluZm86OnJldHVyblZhbHVlR1BS
KTsKIAotICAgICAgICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICAgICAgbV9qaXQu
ZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMSk7Ci0g
ICAgICAgIC8vIFJlc3RvcmUgb3VyIGNhbGxlcidzICJyIi4KLSAgICAgICAgbV9qaXQuZW1pdEdl
dENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3Rlcik7Ci0gICAgICAgIC8vIFJldHVybi4KLSAgICAgICAgbV9qaXQucmVzdG9yZVJldHVybkFk
ZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6cmVnVDEpOworICAgICAgICBtX2ppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICBtX2ppdC5yZXQoKTsKICAgICAgICAgCiAgICAgICAg
IG5vUmVzdWx0KG5vZGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQ2
LDYgKzEzNDYsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3VycmVudEJsb2NrCiAg
ICAgbV9zdHJlYW0tPmFwcGVuZEFuZExvZyhWYXJpYWJsZUV2ZW50OjpyZXNldCgpKTsKICAgICAK
ICAgICBtX2ppdC5qaXRBc3NlcnRIYXNWYWxpZENhbGxGcmFtZSgpOworICAgIG1faml0LmppdEFz
c2VydFRhZ3NJblBsYWNlKCk7CisgICAgbV9qaXQuaml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUo
KTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ibG9jay0+dmFyaWFibGVzQXRIZWFk
Lm51bWJlck9mQXJndW1lbnRzKCk7ICsraSkgewogICAgICAgICBtX3N0cmVhbS0+YXBwZW5kQW5k
TG9nKApAQCAtMTUzMiwxMCArMTUzNCw0MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0Fy
Z3VtZW50VHlwZXMoCiAgICAgbV9pc0NoZWNraW5nQXJndW1lbnRUeXBlcyA9IGZhbHNlOwogfQog
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpwcmVwYXJlSklUQ29kZUZvclRpZXJVcCgpCit7CisgICAg
dW5zaWduZWQgbnVtYmVyT2ZDYWxscyA9IDA7CisgICAgCisgICAgZm9yIChCbG9ja0luZGV4IGJs
b2NrSW5kZXggPSBtX2ppdC5ncmFwaCgpLm51bUJsb2NrcygpOyBibG9ja0luZGV4LS07KSB7Cisg
ICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9qaXQuZ3JhcGgoKS5ibG9jayhibG9ja0luZGV4
KTsKKyAgICAgICAgaWYgKCFibG9jaykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBub2RlSW5kZXggPSBibG9jay0+c2l6ZSgpOyBub2RlSW5k
ZXgtLTspIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CisgICAgICAg
ICAgICBjYXNlIENhbGw6CisgICAgICAgICAgICBjYXNlIENvbnN0cnVjdDoKKyAgICAgICAgICAg
ICAgICBudW1iZXJPZkNhbGxzKys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIG1faml0LmppdENvZGUoKS0+
c2xvd1BhdGhDYWxscy5maWxsKDAsIG51bWJlck9mQ2FsbHMpOworfQorCiBib29sIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKCkKIHsKICAgICBjaGVja0FyZ3VtZW50VHlwZXMoKTsKLQorICAgIAor
ICAgIGlmIChtX2ppdC5ncmFwaCgpLm1fcGxhbi53aWxsVHJ5VG9UaWVyVXApCisgICAgICAgIHBy
ZXBhcmVKSVRDb2RlRm9yVGllclVwKCk7CisgICAgCiAgICAgQVNTRVJUKCFtX2N1cnJlbnROb2Rl
KTsKICAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IDA7IGJsb2NrSW5kZXggPCBtX2pp
dC5ncmFwaCgpLm51bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgpIHsKICAgICAgICAgbV9qaXQuc2V0
Rm9yQmxvY2tJbmRleChibG9ja0luZGV4KTsKQEAgLTIzOTAsNiArMjQyMiwxMCBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJCiAgICAgQVNTRVJUKHZhbHVlR1BSICE9
IGJhc2UpOwogICAgIEFTU0VSVCh2YWx1ZUdQUiAhPSBzdG9yYWdlUmVnKTsKICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9IGp1bXBGb3JUeXBlZEFycmF5T3V0T2ZCb3VuZHMo
bm9kZSwgYmFzZSwgcHJvcGVydHkpOworICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5pc0luQm91
bmRzKCkgJiYgb3V0T2ZCb3VuZHMuaXNTZXQoKSkgeworICAgICAgICBzcGVjdWxhdGlvbkNoZWNr
KE91dE9mQm91bmRzLCBKU1ZhbHVlU291cmNlKCksIDAsIG91dE9mQm91bmRzKTsKKyAgICAgICAg
b3V0T2ZCb3VuZHMgPSBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpOworICAgIH0KIAogICAgIHN3aXRj
aCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICBjYXNlIDE6CkBAIC0yNDY1LDYgKzI1MDEsMTAg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yRgogICAgIEFTU0VSVF9V
TlVTRUQoYmFzZVVzZSwgbm9kZS0+YXJyYXlNb2RlKCkuYWxyZWFkeUNoZWNrZWQobV9qaXQuZ3Jh
cGgoKSwgbm9kZSwgbV9zdGF0ZS5mb3JOb2RlKGJhc2VVc2UpKSk7CiAgICAgCiAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRz
KG5vZGUsIGJhc2UsIHByb3BlcnR5KTsKKyAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJv
dW5kcygpICYmIG91dE9mQm91bmRzLmlzU2V0KCkpIHsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdXRPZkJvdW5kcywgSlNWYWx1ZVNvdXJjZSgpLCAwLCBvdXRPZkJvdW5kcyk7CisgICAgICAg
IG91dE9mQm91bmRzID0gTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKKyAgICB9CiAgICAgCiAgICAg
c3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgNDogewpAQCAtMzQyOSw2ICsz
NDY5LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2QKICAgICAg
ICAgR1BSUmVnIHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiA9IHF1b3RpZW50VGhlblJlbWFpbmRl
ci5ncHIoKTsKICAgICAgICAgR1BSUmVnIG11bHRpcGx5QW5zd2VyR1BSID0gbXVsdGlwbHlBbnN3
ZXIuZ3ByKCk7CiAKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IGRvbmU7CisgICAgICAg
IAorICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxvdyhub2RlLT5hcml0aE1vZGUoKSkpCisg
ICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLCBt
X2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Olplcm8sIGRpdmlzb3JHUFIpKTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBkZW5vbWluYXRvck5vdFpl
cm8gPSBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Ok5vblplcm8sIGRpdmlzb3JHUFIp
OworICAgICAgICAgICAgbV9qaXQubW92ZShkaXZpc29yR1BSLCBxdW90aWVudFRoZW5SZW1haW5k
ZXJHUFIpOworICAgICAgICAgICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKKyAgICAgICAg
ICAgIGRlbm9taW5hdG9yTm90WmVyby5saW5rKCZtX2ppdCk7CisgICAgICAgIH0KKwogICAgICAg
ICBtX2ppdC5hc3NlbWJsZXIoKS5zZGl2KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgZGl2aWRl
bmRHUFIsIGRpdmlzb3JHUFIpOwogICAgICAgICAvLyBGSVhNRTogSXQgc2VlbXMgbGlrZSB0aGVy
ZSBhcmUgY2FzZXMgd2hlcmUgd2UgZG9uJ3QgbmVlZCB0aGlzPyBXaGF0IGlmIHdlIGhhdmUKICAg
ICAgICAgLy8gYXJpdGhNb2RlKCkgPT0gQXJpdGg6OlVuY2hlY2tlZD8KQEAgLTM0NDUsNiArMzQ5
Niw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2QKICAgICAgICAg
ICAgIG51bWVyYXRvclBvc2l0aXZlLmxpbmsoJm1faml0KTsKICAgICAgICAgfQogCisgICAgICAg
IGRvbmUubGluaygmbV9qaXQpOworICAgICAgICAKICAgICAgICAgaW50MzJSZXN1bHQocXVvdGll
bnRUaGVuUmVtYWluZGVyR1BSLCBub2RlKTsKICNlbGlmIENQVShBUk02NCkKICAgICAgICAgR1BS
VGVtcG9yYXJ5IHRlbXAodGhpcyk7CkBAIC0zNDU1LDYgKzM1MDgsMTcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKE5vZAogICAgICAgICBHUFJSZWcgcXVvdGllbnRUaGVu
UmVtYWluZGVyR1BSID0gcXVvdGllbnRUaGVuUmVtYWluZGVyLmdwcigpOwogICAgICAgICBHUFJS
ZWcgbXVsdGlwbHlBbnN3ZXJHUFIgPSBtdWx0aXBseUFuc3dlci5ncHIoKTsKIAorICAgICAgICBK
SVRDb21waWxlcjo6SnVtcExpc3QgZG9uZTsKKyAgICAKKyAgICAgICAgaWYgKHNob3VsZENoZWNr
T3ZlcmZsb3cobm9kZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBp
bGVyOjpaZXJvLCBkaXZpc29yR1BSKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSklU
Q29tcGlsZXI6Okp1bXAgZGVub21pbmF0b3JOb3RaZXJvID0gbV9qaXQuYnJhbmNoVGVzdDMyKEpJ
VENvbXBpbGVyOjpOb25aZXJvLCBkaXZpc29yR1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUo
ZGl2aXNvckdQUiwgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BSKTsKKyAgICAgICAgICAgIGRvbmUu
YXBwZW5kKG1faml0Lmp1bXAoKSk7CisgICAgICAgICAgICBkZW5vbWluYXRvck5vdFplcm8ubGlu
aygmbV9qaXQpOworICAgICAgICB9CisKICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuc2Rpdjwz
Mj4ocXVvdGllbnRUaGVuUmVtYWluZGVyR1BSLCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7CiAg
ICAgICAgIC8vIEZJWE1FOiBJdCBzZWVtcyBsaWtlIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB3ZSBk
b24ndCBuZWVkIHRoaXM/IFdoYXQgaWYgd2UgaGF2ZQogICAgICAgICAvLyBhcml0aE1vZGUoKSA9
PSBBcml0aDo6VW5jaGVja2VkPwpAQCAtMzQ3MSw2ICszNTM1LDggQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKE5vZAogICAgICAgICAgICAgbnVtZXJhdG9yUG9zaXRpdmUu
bGluaygmbV9qaXQpOwogICAgICAgICB9CiAKKyAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CisK
ICAgICAgICAgaW50MzJSZXN1bHQocXVvdGllbnRUaGVuUmVtYWluZGVyR1BSLCBub2RlKTsKICNl
bHNlIC8vIG5vdCBhcmNoaXRlY3R1cmUgdGhhdCBjYW4gZG8gaW50ZWdlciBkaXZpc2lvbgogICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMTYyOTE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTksNiArMTE5LDkgQEAgcHVibGljOgogICAgIH5TcGVjdWxhdGl2ZUpJVCgpOwog
CiAgICAgYm9vbCBjb21waWxlKCk7CisgICAgCisgICAgdm9pZCBwcmVwYXJlSklUQ29kZUZvclRp
ZXJVcCgpOworICAgIAogICAgIHZvaWQgY3JlYXRlT1NSRW50cmllcygpOwogICAgIHZvaWQgbGlu
a09TUkVudHJpZXMoTGlua0J1ZmZlciYpOwogCkBAIC03NDIsNDQgKzc0NSw0NSBAQCBwdWJsaWM6
CiAgICAgCiAgICAgcHRyZGlmZl90IGNhbGxlZUZyYW1lT2Zmc2V0KGludCBudW1BcmdzKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKG1faml0LmdyYXBoKCku
bV9uZXh0TWFjaGluZUxvY2FsICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIG51bUFy
Z3MpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIHZpcnR1YWxS
ZWdpc3RlckZvckxvY2FsKG1faml0LmdyYXBoKCkubV9uZXh0TWFjaGluZUxvY2FsIC0gMSArIEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyBudW1BcmdzKS5vZmZzZXQoKSAqIHNpemVvZihS
ZWdpc3Rlcik7CiAgICAgfQogICAgIAogICAgIC8vIEFjY2VzcyB0byBvdXIgZml4ZWQgY2FsbGVl
IENhbGxGcmFtZS4KLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVNsb3Qo
aW50IG51bUFyZ3MsIGludCBzbG90KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxl
ZUZyYW1lU2xvdChpbnQgc2xvdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgY2FsbGVlRnJhbWVPZmZzZXQo
bnVtQXJncykgKyBzaXplb2YoUmVnaXN0ZXIpICogc2xvdCk7CisgICAgICAgIEFTU0VSVChzbG90
ID49IEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKTsKKyAgICAgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwg
c2l6ZW9mKFJlZ2lzdGVyKSAqIChzbG90IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUp
KTsKICAgICB9CiAKICAgICAvLyBBY2Nlc3MgdG8gb3VyIGZpeGVkIGNhbGxlZSBDYWxsRnJhbWUu
Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRTbG90KGludCBudW1B
cmdzLCBpbnQgYXJndW1lbnQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJn
dW1lbnRTbG90KGludCBhcmd1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVGcmFt
ZVNsb3QobnVtQXJncywgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpLm9mZnNl
dCgpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdCh2aXJ0dWFsUmVnaXN0ZXJGb3JB
cmd1bWVudChhcmd1bWVudCkub2Zmc2V0KCkpOwogICAgIH0KIAotICAgIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzIGNhbGxlZUZyYW1lVGFnU2xvdChpbnQgbnVtQXJncywgaW50IHNsb3QpCisgICAg
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVUYWdTbG90KGludCBzbG90KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdChudW1BcmdzLCBzbG90KS53aXRoT2Zm
c2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7
CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3Qoc2xvdCkud2l0aE9mZnNldChPQkpFQ1Rf
T0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOwogICAgIH0KIAot
ICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoaW50IG51
bUFyZ3MsIGludCBzbG90KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1l
UGF5bG9hZFNsb3QoaW50IHNsb3QpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVT
bG90KG51bUFyZ3MsIHNsb3QpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFt
ZVNsb3Qoc2xvdCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3Jp
cHRvciwgYXNCaXRzLnBheWxvYWQpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyBjYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaW50IG51bUFyZ3MsIGludCBhcmd1bWVudCkKKyAg
ICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaW50IGFyZ3Vt
ZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBh
cmd1bWVudCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnRhZykpOworICAgICAgICByZXR1cm4gY2FsbGVlQXJndW1lbnRTbG90KGFyZ3Vt
ZW50KS53aXRoT2Zmc2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBh
c0JpdHMudGFnKSk7CiAgICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVl
QXJndW1lbnRQYXlsb2FkU2xvdChpbnQgbnVtQXJncywgaW50IGFyZ3VtZW50KQorICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3QoaW50IGFyZ3VtZW50
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBhcmd1
bWVudCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnBheWxvYWQpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChhcmd1
bWVudCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnBheWxvYWQpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBj
YWxsZWVGcmFtZUNhbGxlckZyYW1lKGludCBudW1BcmdzKQorICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNh
bGxlZUZyYW1lU2xvdChudW1BcmdzLCAwKS53aXRoT2Zmc2V0KENhbGxGcmFtZTo6Y2FsbGVyRnJh
bWVPZmZzZXQoKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QoMCkud2l0aE9mZnNl
dChDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpOwogICAgIH0KIAogICAgIHZvaWQgZW1p
dENhbGwoTm9kZSopOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBD
aGVja0luamVjdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhh
c2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00OSwyNyArNDksNTkgQEAgcHVibGljOgogICAgICAgICAK
ICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VFeHBlcmltZW50YWxGVEwoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLQorICAgICAgICAKKyAgICAgICAgaWYgKG1fZ3JhcGgubV9wcm9maWxl
ZEJsb2NrLT5tX2RpZEZhaWxGVExDb21waWxhdGlvbikKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAKICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgRlRMOjpDYXBhYmlsaXR5
TGV2ZWwgbGV2ZWwgPSBGVEw6OmNhbkNvbXBpbGUobV9ncmFwaCk7CiAgICAgICAgIGlmIChsZXZl
bCA9PSBGVEw6OkNhbm5vdENvbXBpbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIAorICAgICAgICBpZiAoIU9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5VG9GVEwoKSkKKyAgICAg
ICAgICAgIGxldmVsID0gRlRMOjpDYW5Db21waWxlOworICAgICAgICAKICAgICAgICAgSW5zZXJ0
aW9uU2V0IGluc2VydGlvblNldChtX2dyYXBoKTsKICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJs
b2NrSW5kZXggPSBtX2dyYXBoLm51bUJsb2NrcygpOyBibG9ja0luZGV4LS07KSB7CiAgICAgICAg
ICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAg
ICAgICAgICBpZiAoIWJsb2NrKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgCi0gICAgICAgICAgICBpZiAoYmxvY2stPmF0KDApLT5vcCgpID09IExvb3BIaW50KSB7Ci0g
ICAgICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gYmxvY2stPmF0KDApLT5jb2Rl
T3JpZ2luOwotICAgICAgICAgICAgICAgIE5vZGVUeXBlIG5vZGVUeXBlOwotICAgICAgICAgICAg
ICAgIGlmIChsZXZlbCA9PSBGVEw6OkNhbkNvbXBpbGVBbmRPU1JFbnRlciAmJiAhY29kZU9yaWdp
bi5pbmxpbmVDYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgbm9kZVR5cGUgPSBDaGVj
a1RpZXJVcEFuZE9TUkVudGVyOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChi
bG9jay0+Ynl0ZWNvZGVCZWdpbiA9PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwotICAgICAg
ICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBub2RlVHlwZSA9IENoZWNrVGll
clVwSW5Mb29wOwotICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKDEsIFNw
ZWNOb25lLCBub2RlVHlwZSwgY29kZU9yaWdpbik7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsrbm9kZUluZGV4KSB7
CisgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOworICAg
ICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpICE9IExvb3BIaW50KQorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBXZSBv
bmx5IHB1dCBPU1IgY2hlY2tzIGZvciB0aGUgZmlyc3QgTG9vcEhpbnQgaW4gdGhlIGJsb2NrLiBO
b3RlIHRoYXQKKyAgICAgICAgICAgICAgICAvLyBtb3JlIHRoYW4gb25lIExvb3BIaW50IGNvdWxk
IGhhcHBlbiBpbiBjYXNlcyB3aGVyZSB3ZSBkaWQgYSBsb3Qgb2YgQ0ZHCisgICAgICAgICAgICAg
ICAgLy8gc2ltcGxpZmljYXRpb24gaW4gdGhlIGJ5dGVjb2RlIHBhcnNlciwgYnV0IGl0IHNob3Vs
ZCBiZSB2ZXJ5IHJhcmUuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQ29kZU9y
aWdpbiBjb2RlT3JpZ2luID0gbm9kZS0+Y29kZU9yaWdpbjsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBpZiAobGV2ZWwgIT0gRlRMOjpDYW5Db21waWxlQW5kT1NSRW50ZXIgfHwg
Y29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0
aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXggKyAx
LCBTcGVjTm9uZSwgQ2hlY2tUaWVyVXBJbkxvb3AsIGNvZGVPcmlnaW4pOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgYm9vbCBpc0F0VG9wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIHN1Yk5vZGVJbmRleCA9IG5vZGVJbmRleDsgc3ViTm9kZUluZGV4LS07KSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghYmxvY2stPmF0KHN1Yk5vZGVJbmRleCktPmlzU2VtYW50aWNh
bGx5U2tpcHBhYmxlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzQXRUb3AgPSBmYWxz
ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlm
ICghaXNBdFRvcCkgeworICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9k
ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJbmRleCArIDEsIFNwZWNOb25lLCBDaGVj
a1RpZXJVcEluTG9vcCwgY29kZU9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChibG9jay0+Ynl0ZWNvZGVCZWdpbiA9PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5k
ZXgpOworICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAg
ICAgICAgICAgICBub2RlSW5kZXggKyAxLCBTcGVjTm9uZSwgQ2hlY2tUaWVyVXBBbmRPU1JFbnRl
ciwgY29kZU9yaWdpbik7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLT5vcCgpID09IFJldHVy
bikgewpAQCAtODAsNiArMTEyLDcgQEAgcHVibGljOgogICAgICAgICAgICAgaW5zZXJ0aW9uU2V0
LmV4ZWN1dGUoYmxvY2spOwogICAgICAgICB9CiAgICAgICAgIAorICAgICAgICBtX2dyYXBoLm1f
cGxhbi53aWxsVHJ5VG9UaWVyVXAgPSB0cnVlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbHNl
IC8vIEVOQUJMRShGVExfSklUKQogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xODIsNiArMTgyLDE4IEBAIHB1YmxpYzoKICAgICAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFZfRVFVQUwoKG5vZGUpLCBub2RlLT5yZWZD
b3VudCgpLCAxKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDAgOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICAg
ICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQoaSk7CisgICAgICAgICAgICAgICAgVkFMSURB
VEUoKG5vZGUpLCAhbm9kZS0+aXNUZXJtaW5hbCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KGkpOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChub2RlLT5oYXNTdHJ1Y3R1cmUoKSkKKyAg
ICAgICAgICAgICAgICAgICAgVkFMSURBVEUoKG5vZGUpLCAhIW5vZGUtPnN0cnVjdHVyZSgpKTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX2dy
YXBoLm1fZm9ybSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlz
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlz
dC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEsMjMgKzI2MSw1MiBAQCB2b2lkIFdv
cmtsaXN0Ojp0aHJlYWRGdW5jdGlvbih2b2lkKiBhcmd1CiAgICAgc3RhdGljX2Nhc3Q8V29ya2xp
c3QqPihhcmd1bWVudCktPnJ1blRocmVhZCgpOwogfQogCi1zdGF0aWMgV29ya2xpc3QqIHRoZUds
b2JhbFdvcmtsaXN0Oworc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxERkdXb3JrbGlzdDsKIAot
V29ya2xpc3QqIGdsb2JhbFdvcmtsaXN0KCkKK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxERkdXb3Jr
bGlzdCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3Jr
bGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlz
dE9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkczsKKyAgICAg
ICAgdGhlR2xvYmFsREZHV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKE9wdGlvbnM6Om51bWJl
ck9mREZHQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKKyAgICB9KTsKKyAgICByZXR1cm4g
dGhlR2xvYmFsREZHV29ya2xpc3Q7Cit9CiAKLSAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUV4cGVy
aW1lbnRhbEZUTCgpKQotICAgICAgICAgICAgbnVtYmVyT2ZUaHJlYWRzID0gMTsgLy8gV2UgZG9u
J3QgeWV0IHVzZSBMTFZNIGluIGEgdGhyZWFkLXNhZmUgd2F5LgotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBudW1iZXJPZlRocmVhZHMgPSBPcHRpb25zOjpudW1iZXJPZkNvbXBpbGVyVGhyZWFk
cygpOworV29ya2xpc3QqIGV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKQoreworICAg
IHJldHVybiB0aGVHbG9iYWxERkdXb3JrbGlzdDsKK30KIAotICAgICAgICB0aGVHbG9iYWxXb3Jr
bGlzdCA9IFdvcmtsaXN0OjpjcmVhdGUobnVtYmVyT2ZUaHJlYWRzKS5sZWFrUmVmKCk7CitzdGF0
aWMgV29ya2xpc3QqIHRoZUdsb2JhbEZUTFdvcmtsaXN0OworCitXb3JrbGlzdCogZW5zdXJlR2xv
YmFsRlRMV29ya2xpc3QoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXpl
R2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xv
YmFsV29ya2xpc3RPbmNlRmxhZywgW10geworICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9
IFdvcmtsaXN0OjpjcmVhdGUoT3B0aW9uczo6bnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMoKSku
bGVha1JlZigpOwogICAgIH0pOworICAgIHJldHVybiB0aGVHbG9iYWxGVExXb3JrbGlzdDsKK30K
KworV29ya2xpc3QqIGV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKQoreworICAgIHJl
dHVybiB0aGVHbG9iYWxGVExXb3JrbGlzdDsKK30KIAotICAgIHJldHVybiB0aGVHbG9iYWxXb3Jr
bGlzdDsKK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxXb3JrbGlzdEZvcihDb21waWxhdGlvbk1vZGUg
bW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEludmFsaWRDb21waWxhdGlv
bk1vZGU6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybiAwOworICAgIGNhc2UgREZHTW9kZToKKyAgICAgICAgcmV0dXJuIGVuc3VyZUdsb2JhbERG
R1dvcmtsaXN0KCk7CisgICAgY2FzZSBGVExNb2RlOgorICAgIGNhc2UgRlRMRm9yT1NSRW50cnlN
b2RlOgorICAgICAgICByZXR1cm4gZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKTsKKyAgICB9Cisg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdXb3JrbGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdXb3JrbGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSwxMCArOTUsMTUgQEAgcHJpdmF0
ZToKICAgICB1bnNpZ25lZCBtX251bWJlck9mQWN0aXZlVGhyZWFkczsKIH07CiAKLS8vIEZvciBu
b3cgd2UgdXNlIGEgc2luZ2xlIGdsb2JhbCB3b3JrbGlzdC4gSXQncyBub3QgY2xlYXIgdGhhdCB0
aGlzCi0vLyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8sIGJ1dCBpdCBpcyB3aGF0IHdlIGRvLCBm
b3Igbm93LiBUaGlzIGZ1bmN0aW9uCi0vLyB3aWxsIGxhemlseSBjcmVhdGUgb25lIHdoZW4gaXQn
cyBuZWVkZWQuCi1Xb3JrbGlzdCogZ2xvYmFsV29ya2xpc3QoKTsKKy8vIEZvciBERkdNb2RlIGNv
bXBpbGF0aW9ucy4KK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpOworV29ya2xp
c3QqIGV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKTsKKworLy8gRm9yIEZUTE1vZGUg
YW5kIEZUTEZvck9TUkVudHJ5TW9kZSBjb21waWxhdGlvbnMuCitXb3JrbGlzdCogZW5zdXJlR2xv
YmFsRlRMV29ya2xpc3QoKTsKK1dvcmtsaXN0KiBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JO
dWxsKCk7CisKK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxXb3JrbGlzdEZvcihDb21waWxhdGlvbk1v
ZGUpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmNwcAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9B
Uk02NC9BNjRET3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsOCBAQCBzdHJ1
Y3QgT3Bjb2RlR3JvdXBJbml0aWFsaXplciB7CiB7IGdyb3VwSW5kZXgsIGdyb3VwQ2xhc3M6Om1h
c2ssIGdyb3VwQ2xhc3M6OnBhdHRlcm4sIGdyb3VwQ2xhc3M6OmZvcm1hdCB9CiAKIHN0YXRpYyBP
cGNvZGVHcm91cEluaXRpYWxpemVyIG9wY29kZUdyb3VwTGlzdFtdID0geworICAgIE9QQ09ERV9H
Uk9VUF9FTlRSWSgweDA4LCBBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyKSwKKyAgICBP
UENPREVfR1JPVVBfRU5UUlkoMHgwOSwgQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciks
CiAgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MGEsIEE2NERPcGNvZGVMb2dpY2FsU2hpZnRlZFJl
Z2lzdGVyKSwKICAgICBPUENPREVfR1JPVVBfRU5UUlkoMHgwYiwgQTY0RE9wY29kZUFkZFN1YnRy
YWN0RXh0ZW5kZWRSZWdpc3RlciksCiAgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MGIsIEE2NERP
cGNvZGVBZGRTdWJ0cmFjdFNoaWZ0ZWRSZWdpc3RlciksCkBAIC0xNzIsNiArMTc0LDExIEBAIGNv
bnN0IGNoYXIqIEE2NERPcGNvZGU6OmZvcm1hdCgpCiAKIHZvaWQgQTY0RE9wY29kZTo6YXBwZW5k
UmVnaXN0ZXJOYW1lKHVuc2lnbmVkIHJlZ2lzdGVyTnVtYmVyLCBib29sIGlzNjRCaXQpCiB7Cisg
ICAgaWYgKHJlZ2lzdGVyTnVtYmVyID09IDI5KSB7CisgICAgICAgIGJ1ZmZlclByaW50ZihpczY0
Qml0ID8gImZwIiA6ICJ3ZnAiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChy
ZWdpc3Rlck51bWJlciA9PSAzMCkgewogICAgICAgICBidWZmZXJQcmludGYoaXM2NEJpdCA/ICJs
ciIgOiAid2xyIik7CiAgICAgICAgIHJldHVybjsKQEAgLTkzOSw2ICs5NDYsNjMgQEAgY29uc3Qg
Y2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyTwogICAgIHJldHVybiBtX2Zvcm1hdEJ1
ZmZlcjsKIH0KIAorY29uc3QgY2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpcjo6
b3BOYW1lKCkKK3sKKyAgICBpZiAoIXZCaXQoKSAmJiBsQml0KCkgJiYgc2l6ZSgpID09IDB4MSkK
KyAgICAgICAgcmV0dXJuICJsZHBzdyI7CisgICAgaWYgKGxCaXQoKSkKKyAgICAgICAgcmV0dXJu
ICJsZHAiOworICAgIHJldHVybiAic3RwIjsKK30KKworY29uc3QgY2hhciogQTY0RE9wY29kZUxv
YWRTdG9yZVJlZ2lzdGVyUGFpcjo6Zm9ybWF0KCkKK3sKKyAgICBjb25zdCBjaGFyKiB0aGlzT3BO
YW1lID0gb3BOYW1lKCk7CisgICAgCisgICAgaWYgKHNpemUoKSA9PSAweDMpCisgICAgICAgIHJl
dHVybiBBNjRET3Bjb2RlOjpmb3JtYXQoKTsKKworICAgIGlmICgob2Zmc2V0TW9kZSgpIDwgMHgx
KSB8fCAob2Zmc2V0TW9kZSgpID4gMHgzKSkKKyAgICAgICAgcmV0dXJuIEE2NERPcGNvZGU6OmZv
cm1hdCgpOworCisgICAgaWYgKChvZmZzZXRNb2RlKCkgPT0gMHgxKSAmJiAhdkJpdCgpICYmICFs
Qml0KCkpCisgICAgICAgIHJldHVybiBBNjRET3Bjb2RlOjpmb3JtYXQoKTsKKworICAgIGFwcGVu
ZEluc3RydWN0aW9uTmFtZSh0aGlzT3BOYW1lKTsKKyAgICB1bnNpZ25lZCBvZmZzZXRTaGlmdDsK
KyAgICBpZiAodkJpdCgpKSB7CisgICAgICAgIGFwcGVuZEZQUmVnaXN0ZXJOYW1lKHJ0KCksIHNp
emUoKSk7CisgICAgICAgIGFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICBhcHBlbmRGUFJlZ2lz
dGVyTmFtZShydDIoKSwgc2l6ZSgpKTsKKyAgICAgICAgb2Zmc2V0U2hpZnQgPSBzaXplKCkgKyAy
OworICAgIH0gZWxzZSB7CisgICAgICAgIGFwcGVuZFJlZ2lzdGVyTmFtZShydCgpLCBpczY0Qml0
KCkpOworICAgICAgICBhcHBlbmRTZXBhcmF0b3IoKTsKKyAgICAgICAgYXBwZW5kUmVnaXN0ZXJO
YW1lKHJ0MigpLCBpczY0Qml0KCkpOworICAgICAgICBvZmZzZXRTaGlmdCA9IChzaXplKCkgPj4g
MSkgKyAyOworICAgIH0KKworICAgIGFwcGVuZFNlcGFyYXRvcigpOworICAgIGFwcGVuZENoYXJh
Y3RlcignWycpOworICAgIGFwcGVuZFNQT3JSZWdpc3Rlck5hbWUocm4oKSk7CisKKyAgICBpbnQg
b2Zmc2V0ID0gaW1tZWRpYXRlNygpIDw8IG9mZnNldFNoaWZ0OworCisgICAgaWYgKG9mZnNldE1v
ZGUoKSA9PSAxKSB7CisgICAgICAgIGFwcGVuZENoYXJhY3RlcignXScpOworICAgICAgICBhcHBl
bmRTZXBhcmF0b3IoKTsKKyAgICAgICAgYXBwZW5kU2lnbmVkSW1tZWRpYXRlKG9mZnNldCk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIGFwcGVuZFNp
Z25lZEltbWVkaWF0ZShvZmZzZXQpOworICAgICAgICBhcHBlbmRDaGFyYWN0ZXIoJ10nKTsKKyAg
ICAgICAgaWYgKG9mZnNldE1vZGUoKSA9PSAweDMpCisgICAgICAgICAgICBhcHBlbmRDaGFyYWN0
ZXIoJyEnKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9mb3JtYXRCdWZmZXI7Cit9CisKIGNvbnN0
IGNoYXIqIEE2NERPcGNvZGVMb2FkU3RvcmVVbnNpZ25lZEltbWVkaWF0ZTo6Zm9ybWF0KCkKIHsK
ICAgICBjb25zdCBjaGFyKiB0aGlzT3BOYW1lID0gb3BOYW1lKCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuaAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9B
Uk02NC9BNjRET3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2NSw2ICs1NjUsMjIgQEAgcHVi
bGljOgogICAgIGludCBzQml0KCkgeyByZXR1cm4gKG1fb3Bjb2RlID4+IDEyKSAmIDB4MTsgfQog
fTsKIAorY2xhc3MgQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciA6IHB1YmxpYyBBNjRE
T3Bjb2RlTG9hZFN0b3JlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFz
ayA9IDB4M2EwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDI4
MDAwMDAwOworCisgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUxvYWRTdG9yZVJl
Z2lzdGVyUGFpciwgdGhpc09iaik7CisKKyAgICBjb25zdCBjaGFyKiBmb3JtYXQoKTsKKyAgICBj
b25zdCBjaGFyKiBvcE5hbWUoKTsKKworICAgIHVuc2lnbmVkIHJ0MigpIHsgcmV0dXJuIChtX29w
Y29kZSA+PiAxMCkgJiAweDFmOyB9CisgICAgaW50IGltbWVkaWF0ZTcoKSB7IHJldHVybiAoc3Rh
dGljX2Nhc3Q8aW50PigobV9vcGNvZGUgPj4gMTUpICYgMHg3ZikgPDwgMjUpID4+IDI1OyB9Cisg
ICAgdW5zaWduZWQgb2Zmc2V0TW9kZSgpIHsgcmV0dXJuIChtX29wY29kZSA+PiAyMykgJiAweDc7
IH0KKyAgICBpbnQgbEJpdCgpIHsgcmV0dXJuIChtX29wY29kZSA+PiAyMikgJiAweDE7IH0KK307
CisKIGNsYXNzIEE2NERPcGNvZGVMb2FkU3RvcmVVbnNpZ25lZEltbWVkaWF0ZSA6IHB1YmxpYyBB
NjRET3Bjb2RlTG9hZFN0b3JlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
bWFzayA9IDB4M2IwMDAwMDA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFi
YnJldmlhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEFiYnJldmlhdGlvbnMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYmJyZXZpYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcg
QEAgc3RhdGljIGlubGluZSBMVHlwZSBmbG9hdFR5cGUoTENvbnRleHQgYwogc3RhdGljIGlubGlu
ZSBMVHlwZSBkb3VibGVUeXBlKExDb250ZXh0IGNvbnRleHQpIHsgcmV0dXJuIGxsdm0tPkRvdWJs
ZVR5cGVJbkNvbnRleHQoY29udGV4dCk7IH0KIAogc3RhdGljIGlubGluZSBMVHlwZSBwb2ludGVy
VHlwZShMVHlwZSB0eXBlKSB7IHJldHVybiBsbHZtLT5Qb2ludGVyVHlwZSh0eXBlLCAwKTsgfQor
c3RhdGljIGlubGluZSBMVHlwZSBhcnJheVR5cGUoTFR5cGUgdHlwZSwgdW5zaWduZWQgY291bnQp
IHsgcmV0dXJuIGxsdm0tPkFycmF5VHlwZSh0eXBlLCBjb3VudCk7IH0KIHN0YXRpYyBpbmxpbmUg
TFR5cGUgdmVjdG9yVHlwZShMVHlwZSB0eXBlLCB1bnNpZ25lZCBjb3VudCkgeyByZXR1cm4gbGx2
bS0+VmVjdG9yVHlwZSh0eXBlLCBjb3VudCk7IH0KIAogZW51bSBQYWNraW5nTW9kZSB7IE5vdFBh
Y2tlZCwgUGFja2VkIH07CkBAIC0xMzIsNiArMTMzLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNl
dE1ldGFkYXRhKExWYWx1ZSBpbgogc3RhdGljIGlubGluZSBMVmFsdWUgYWRkRnVuY3Rpb24oTE1v
ZHVsZSBtb2R1bGUsIGNvbnN0IGNoYXIqIG5hbWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGxsdm0t
PkFkZEZ1bmN0aW9uKG1vZHVsZSwgbmFtZSwgdHlwZSk7IH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBz
ZXRMaW5rYWdlKExWYWx1ZSBnbG9iYWwsIExMaW5rYWdlIGxpbmthZ2UpIHsgbGx2bS0+U2V0TGlu
a2FnZShnbG9iYWwsIGxpbmthZ2UpOyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0RnVuY3Rpb25D
YWxsaW5nQ29udihMVmFsdWUgZnVuY3Rpb24sIExDYWxsQ29udiBjb252ZW50aW9uKSB7IGxsdm0t
PlNldEZ1bmN0aW9uQ2FsbENvbnYoZnVuY3Rpb24sIGNvbnZlbnRpb24pOyB9CitzdGF0aWMgaW5s
aW5lIHZvaWQgYWRkVGFyZ2V0RGVwZW5kZW50RnVuY3Rpb25BdHRyKExWYWx1ZSBmdW5jdGlvbiwg
Y29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFyKiB2YWx1ZSkgeyBsbHZtLT5BZGRUYXJnZXREZXBl
bmRlbnRGdW5jdGlvbkF0dHIoZnVuY3Rpb24sIGtleSwgdmFsdWUpOyB9CiAKIHN0YXRpYyBpbmxp
bmUgTFZhbHVlIGFkZEV4dGVybkZ1bmN0aW9uKExNb2R1bGUgbW9kdWxlLCBjb25zdCBjaGFyKiBu
YW1lLCBMVHlwZSB0eXBlKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YnN0cmFjdEhlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQWJzdHJhY3RIZWFwLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw5ICs1
MywxMCBAQCB2b2lkIEFic3RyYWN0SGVhcDo6ZGVjb3JhdGVJbnN0cnVjdGlvbihMCiAgICAgc2V0
TWV0YWRhdGEoaW5zdHJ1Y3Rpb24sIHJlcG9zaXRvcnkubV90YmFhS2luZCwgdGJhYU1ldGFkYXRh
KHJlcG9zaXRvcnkpKTsKIH0KIAotSW5kZXhlZEFic3RyYWN0SGVhcDo6SW5kZXhlZEFic3RyYWN0
SGVhcChMQ29udGV4dCBjb250ZXh0LCBBYnN0cmFjdEhlYXAqIHBhcmVudCwgY29uc3QgY2hhciog
aGVhcE5hbWUsIHNpemVfdCBlbGVtZW50U2l6ZSkKK0luZGV4ZWRBYnN0cmFjdEhlYXA6OkluZGV4
ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBwYXJlbnQsIGNv
bnN0IGNoYXIqIGhlYXBOYW1lLCBwdHJkaWZmX3Qgb2Zmc2V0LCBzaXplX3QgZWxlbWVudFNpemUp
CiAgICAgOiBtX2hlYXBGb3JBbnlJbmRleChwYXJlbnQsIGhlYXBOYW1lKQogICAgICwgbV9oZWFw
TmFtZUxlbmd0aChzdHJsZW4oaGVhcE5hbWUpKQorICAgICwgbV9vZmZzZXQob2Zmc2V0KQogICAg
ICwgbV9lbGVtZW50U2l6ZShlbGVtZW50U2l6ZSkKICAgICAsIG1fc2NhbGVUZXJtKDApCiAgICAg
LCBtX2NhblNoaWZ0KGZhbHNlKQpAQCAtOTMsNyArOTQsNyBAQCBUeXBlZFBvaW50ZXIgSW5kZXhl
ZEFic3RyYWN0SGVhcDo6YmFzZUluCiAgICAgfSBlbHNlCiAgICAgICAgIHJlc3VsdCA9IG91dC5h
ZGQoYmFzZSwgb3V0Lm11bChpbmRleCwgbV9zY2FsZVRlcm0pKTsKICAgICAKLSAgICByZXR1cm4g
VHlwZWRQb2ludGVyKGF0QW55SW5kZXgoKSwgb3V0LmFkZFB0cihyZXN1bHQsIG9mZnNldCkpOwor
ICAgIHJldHVybiBUeXBlZFBvaW50ZXIoYXRBbnlJbmRleCgpLCBvdXQuYWRkUHRyKHJlc3VsdCwg
bV9vZmZzZXQgKyBvZmZzZXQpKTsKIH0KIAogY29uc3QgQWJzdHJhY3RGaWVsZCYgSW5kZXhlZEFi
c3RyYWN0SGVhcDo6YXRTbG93KHB0cmRpZmZfdCBpbmRleCkKQEAgLTE2OCwxNiArMTY5LDE1IEBA
IHZvaWQgSW5kZXhlZEFic3RyYWN0SGVhcDo6aW5pdGlhbGl6ZShBYnMKICAgICAgICAgICAgIGFj
Y3VtdWxhdG9yID4+PSA0OwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBmaWVsZC5pbml0
aWFsaXplKCZtX2hlYXBGb3JBbnlJbmRleCwgY2hhcmFjdGVycywgc2lnbmVkSW5kZXggKiBtX2Vs
ZW1lbnRTaXplKTsKKyAgICAgICAgZmllbGQuaW5pdGlhbGl6ZSgmbV9oZWFwRm9yQW55SW5kZXgs
IGNoYXJhY3RlcnMsIG1fb2Zmc2V0ICsgc2lnbmVkSW5kZXggKiBtX2VsZW1lbnRTaXplKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogfQogCi1OdW1iZXJlZEFic3RyYWN0SGVhcDo6TnVtYmVyZWRBYnN0cmFjdEhlYXAoCi0g
ICAgTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBoZWFwLCBjb25zdCBjaGFyKiBoZWFw
TmFtZSkKLSAgICA6IG1faW5kZXhlZEhlYXAoY29udGV4dCwgaGVhcCwgaGVhcE5hbWUsIDEpCitO
dW1iZXJlZEFic3RyYWN0SGVhcDo6TnVtYmVyZWRBYnN0cmFjdEhlYXAoTENvbnRleHQgY29udGV4
dCwgQWJzdHJhY3RIZWFwKiBoZWFwLCBjb25zdCBjaGFyKiBoZWFwTmFtZSkKKyAgICA6IG1faW5k
ZXhlZEhlYXAoY29udGV4dCwgaGVhcCwgaGVhcE5hbWUsIDAsIDEpCiB7CiB9CiAKQEAgLTE4NSw5
ICsxODUsOCBAQCBOdW1iZXJlZEFic3RyYWN0SGVhcDo6fk51bWJlcmVkQWJzdHJhY3RICiB7CiB9
CiAKLUFic29sdXRlQWJzdHJhY3RIZWFwOjpBYnNvbHV0ZUFic3RyYWN0SGVhcCgKLSAgICBMQ29u
dGV4dCBjb250ZXh0LCBBYnN0cmFjdEhlYXAqIGhlYXAsIGNvbnN0IGNoYXIqIGhlYXBOYW1lKQot
ICAgIDogbV9pbmRleGVkSGVhcChjb250ZXh0LCBoZWFwLCBoZWFwTmFtZSwgMSkKK0Fic29sdXRl
QWJzdHJhY3RIZWFwOjpBYnNvbHV0ZUFic3RyYWN0SGVhcChMQ29udGV4dCBjb250ZXh0LCBBYnN0
cmFjdEhlYXAqIGhlYXAsIGNvbnN0IGNoYXIqIGhlYXBOYW1lKQorICAgIDogbV9pbmRleGVkSGVh
cChjb250ZXh0LCBoZWFwLCBoZWFwTmFtZSwgMCwgMSkKIHsKIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzksNyArMTM5LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgSW5kZXhlZEFic3RyYWN0
SGVhcCB7CiBwdWJsaWM6Ci0gICAgSW5kZXhlZEFic3RyYWN0SGVhcChMQ29udGV4dCwgQWJzdHJh
Y3RIZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIqIGhlYXBOYW1lLCBzaXplX3QgZWxlbWVudFNpemUp
OworICAgIEluZGV4ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQsIEFic3RyYWN0SGVhcCogcGFyZW50
LCBjb25zdCBjaGFyKiBoZWFwTmFtZSwgcHRyZGlmZl90IG9mZnNldCwgc2l6ZV90IGVsZW1lbnRT
aXplKTsKICAgICB+SW5kZXhlZEFic3RyYWN0SGVhcCgpOwogICAgIAogICAgIGNvbnN0IEFic3Ry
YWN0SGVhcCYgYXRBbnlJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faGVhcEZvckFueUluZGV4OyB9
CkBAIC0xNjgsNiArMTY4LDcgQEAgcHJpdmF0ZToKIAogICAgIEFic3RyYWN0SGVhcCBtX2hlYXBG
b3JBbnlJbmRleDsKICAgICBzaXplX3QgbV9oZWFwTmFtZUxlbmd0aDsKKyAgICBwdHJkaWZmX3Qg
bV9vZmZzZXQ7CiAgICAgc2l6ZV90IG1fZWxlbWVudFNpemU7CiAgICAgTFZhbHVlIG1fc2NhbGVU
ZXJtOwogICAgIGJvb2wgbV9jYW5TaGlmdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5OjpBYnN0cmFjdEhlYXBSZXBvCiAgICAgCiAgICAgLCBKU0NlbGxfZnJlZUxpc3RO
ZXh0KEpTQ2VsbF9zdHJ1Y3R1cmUpCiAgICAgCi0jZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVB
UF9JTklUSUFMSVpBVElPTihuYW1lLCBzaXplKSAsIG5hbWUoY29udGV4dCwgJnJvb3QsICNuYW1l
LCBzaXplKQorI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElBTElaQVRJT04obmFt
ZSwgb2Zmc2V0LCBzaXplKSAsIG5hbWUoY29udGV4dCwgJnJvb3QsICNuYW1lLCBvZmZzZXQsIHNp
emUpCiAgICAgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKElOREVYRURfQUJTVFJBQ1Rf
SEVBUF9JTklUSUFMSVpBVElPTikKICN1bmRlZiBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElB
TElaQVRJT04KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDgsMTEgKzQ4LDE1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRM
IHsKICAgICBtYWNybyhKU0FycmF5QnVmZmVyVmlld19tb2RlLCBKU0FycmF5QnVmZmVyVmlldzo6
b2Zmc2V0T2ZNb2RlKCkpIFwKICAgICBtYWNybyhKU0FycmF5QnVmZmVyVmlld192ZWN0b3IsIEpT
QXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZlZlY3RvcigpKSBcCiAgICAgbWFjcm8oSlNDZWxsX3N0
cnVjdHVyZSwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSkgXAorICAgIG1hY3JvKEpTRnVuY3Rp
b25fZXhlY3V0YWJsZSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpIFwKKyAgICBt
YWNybyhKU0Z1bmN0aW9uX3Njb3BlLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNjb3BlQ2hhaW4oKSkg
XAogICAgIG1hY3JvKEpTT2JqZWN0X2J1dHRlcmZseSwgSlNPYmplY3Q6OmJ1dHRlcmZseU9mZnNl
dCgpKSBcCiAgICAgbWFjcm8oSlNTY29wZV9uZXh0LCBKU1Njb3BlOjpvZmZzZXRPZk5leHQoKSkg
XAorICAgIG1hY3JvKEpTU3RyaW5nX2ZsYWdzLCBKU1N0cmluZzo6b2Zmc2V0T2ZGbGFncygpKSBc
CiAgICAgbWFjcm8oSlNTdHJpbmdfbGVuZ3RoLCBKU1N0cmluZzo6b2Zmc2V0T2ZMZW5ndGgoKSkg
XAogICAgIG1hY3JvKEpTU3RyaW5nX3ZhbHVlLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSBc
CiAgICAgbWFjcm8oSlNWYXJpYWJsZU9iamVjdF9yZWdpc3RlcnMsIEpTVmFyaWFibGVPYmplY3Q6
Om9mZnNldE9mUmVnaXN0ZXJzKCkpIFwKKyAgICBtYWNybyhKU1dyYXBwZXJPYmplY3RfaW50ZXJu
YWxWYWx1ZSwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkpIFwKICAgICBt
YWNybyhNYXJrZWRBbGxvY2F0b3JfZnJlZUxpc3RIZWFkLCBNYXJrZWRBbGxvY2F0b3I6Om9mZnNl
dE9mRnJlZUxpc3RIZWFkKCkpIFwKICAgICBtYWNybyhNYXJrZWRCbG9ja19tYXJrQml0cywgTWFy
a2VkQmxvY2s6Om9mZnNldE9mTWFya3MoKSkgXAogICAgIG1hY3JvKFN0cmluZ0ltcGxfZGF0YSwg
U3RyaW5nSW1wbDo6ZGF0YU9mZnNldCgpKSBcCkBAIC02NCwxNCArNjgsMTUgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV90eXBlSW5mb1R5cGUs
IFN0cnVjdHVyZTo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpCiAKICNkZWZpbmUgRk9SX0VBQ0hfSU5E
RVhFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCi0gICAgbWFjcm8oY2hhcmFjdGVyczgsIHNpemVv
ZihMQ2hhcikpIFwKLSAgICBtYWNybyhjaGFyYWN0ZXJzMTYsIHNpemVvZihVQ2hhcikpIFwKLSAg
ICBtYWNybyhpbmRleGVkSW50MzJQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBc
Ci0gICAgbWFjcm8oaW5kZXhlZERvdWJsZVByb3BlcnRpZXMsIHNpemVvZihkb3VibGUpKSBcCi0g
ICAgbWFjcm8oaW5kZXhlZENvbnRpZ3VvdXNQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpTVmFs
dWUpKSBcCi0gICAgbWFjcm8oaW5kZXhlZEFycmF5U3RvcmFnZVByb3BlcnRpZXMsIHNpemVvZihF
bmNvZGVkSlNWYWx1ZSkpIFwKLSAgICBtYWNybyhzaW5nbGVDaGFyYWN0ZXJTdHJpbmdzLCBzaXpl
b2YoSlNTdHJpbmcqKSkgXAotICAgIG1hY3JvKHZhcmlhYmxlcywgc2l6ZW9mKFJlZ2lzdGVyKSkK
KyAgICBtYWNybyhKU1JvcGVTdHJpbmdfZmliZXJzLCBKU1JvcGVTdHJpbmc6Om9mZnNldE9mRmli
ZXJzKCksIHNpemVvZihXcml0ZUJhcnJpZXI8SlNTdHJpbmc+KSkgXAorICAgIG1hY3JvKGNoYXJh
Y3RlcnM4LCAwLCBzaXplb2YoTENoYXIpKSBcCisgICAgbWFjcm8oY2hhcmFjdGVyczE2LCAwLCBz
aXplb2YoVUNoYXIpKSBcCisgICAgbWFjcm8oaW5kZXhlZEludDMyUHJvcGVydGllcywgMCwgc2l6
ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKGluZGV4ZWREb3VibGVQcm9wZXJ0aWVz
LCAwLCBzaXplb2YoZG91YmxlKSkgXAorICAgIG1hY3JvKGluZGV4ZWRDb250aWd1b3VzUHJvcGVy
dGllcywgMCwgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKGluZGV4ZWRBcnJh
eVN0b3JhZ2VQcm9wZXJ0aWVzLCAwLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCisgICAgbWFj
cm8oc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncywgMCwgc2l6ZW9mKEpTU3RyaW5nKikpIFwKKyAgICBt
YWNybyh2YXJpYWJsZXMsIDAsIHNpemVvZihSZWdpc3RlcikpCiAgICAgCiAjZGVmaW5lIEZPUl9F
QUNIX05VTUJFUkVEX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhwcm9wZXJ0aWVz
KQpAQCAtOTcsNyArMTAyLDcgQEAgcHVibGljOgogICAgIAogICAgIEFic3RyYWN0RmllbGQmIEpT
Q2VsbF9mcmVlTGlzdE5leHQ7CiAgICAgCi0jZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVBUF9E
RUNMQVJBVElPTihuYW1lLCBzaXplKSBJbmRleGVkQWJzdHJhY3RIZWFwIG5hbWU7CisjZGVmaW5l
IElOREVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElPTihuYW1lLCBvZmZzZXQsIHNpemUpIElu
ZGV4ZWRBYnN0cmFjdEhlYXAgbmFtZTsKICAgICBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hF
QVAoSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9OKQogI3VuZGVmIElOREVYRURfQUJT
VFJBQ1RfSEVBUF9ERUNMQVJBVElPTgogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExBdmFpbGFi
bGVSZWNvdmVyeS5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKK25hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgRlRMIHsKKwordm9pZCBBdmFpbGFibGVSZWNvdmVyeTo6ZHVtcChQcmludFN0cmVh
bSYgb3V0KSBjb25zdAoreworICAgIG91dC5wcmludChub2RlKCksICIgPT4gIiwgb3Bjb2RlKCks
ICIsICIsIFJhd1BvaW50ZXIobV9sZWZ0KSwgIiwgIiwgUmF3UG9pbnRlcihtX3JpZ2h0KSwgIiwg
IiwgbV9mb3JtYXQpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAv
LyBFTkFCTEUoRlRMX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
dmFpbGFibGVSZWNvdmVyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgRlRMQXZhaWxhYmxlUmVjb3ZlcnlfaAorI2RlZmluZSBGVExBdmFpbGFibGVSZWNv
dmVyeV9oCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkRGR05vZGUuaCIKKyNp
bmNsdWRlICJGVExBYmJyZXZpYXRlZFR5cGVzLmgiCisjaW5jbHVkZSAiRlRMUmVjb3ZlcnlPcGNv
ZGUuaCIKKyNpbmNsdWRlICJGVExWYWx1ZUZvcm1hdC5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEZUTCB7CisKK2NsYXNzIEF2YWlsYWJsZVJlY292ZXJ5IHsKK3B1YmxpYzoKKyAgICBB
dmFpbGFibGVSZWNvdmVyeSgpCisgICAgICAgIDogbV9ub2RlKDApCisgICAgICAgICwgbV9mb3Jt
YXQoSW52YWxpZFZhbHVlRm9ybWF0KQorICAgICAgICAsIG1fb3Bjb2RlKEFkZFJlY292ZXJ5KQor
ICAgICAgICAsIG1fbGVmdCgwKQorICAgICAgICAsIG1fcmlnaHQoMCkKKyAgICB7CisgICAgfQor
ICAgIAorICAgIEF2YWlsYWJsZVJlY292ZXJ5KERGRzo6Tm9kZSogbm9kZSwgUmVjb3ZlcnlPcGNv
ZGUgb3Bjb2RlLCBMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0LCBWYWx1ZUZvcm1hdCBmb3JtYXQp
CisgICAgICAgIDogbV9ub2RlKG5vZGUpCisgICAgICAgICwgbV9mb3JtYXQoZm9ybWF0KQorICAg
ICAgICAsIG1fb3Bjb2RlKG9wY29kZSkKKyAgICAgICAgLCBtX2xlZnQobGVmdCkKKyAgICAgICAg
LCBtX3JpZ2h0KHJpZ2h0KQorICAgIHsKKyAgICB9CisgICAgCisgICAgREZHOjpOb2RlKiBub2Rl
KCkgY29uc3QgeyByZXR1cm4gbV9ub2RlOyB9CisgICAgVmFsdWVGb3JtYXQgZm9ybWF0KCkgY29u
c3QgeyByZXR1cm4gbV9mb3JtYXQ7IH0KKyAgICBSZWNvdmVyeU9wY29kZSBvcGNvZGUoKSBjb25z
dCB7IHJldHVybiBtX29wY29kZTsgfQorICAgIExWYWx1ZSBsZWZ0KCkgY29uc3QgeyByZXR1cm4g
bV9sZWZ0OyB9CisgICAgTFZhbHVlIHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yaWdodDsgfQor
ICAgIAorICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OworICAgIAorcHJpdmF0ZToK
KyAgICBERkc6Ok5vZGUqIG1fbm9kZTsKKyAgICBWYWx1ZUZvcm1hdCBtX2Zvcm1hdDsKKyAgICBS
ZWNvdmVyeU9wY29kZSBtX29wY29kZTsKKyAgICBMVmFsdWUgbV9sZWZ0OworICAgIExWYWx1ZSBt
X3JpZ2h0OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5B
QkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExBdmFpbGFibGVSZWNvdmVyeV9oCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsMTEgQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBGVEwgewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwogCitzdGF0aWMgYm9vbCB2ZXJi
b3NlQ2FwYWJpbGl0aWVzKCkKK3sKKyAgICByZXR1cm4gdmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxl
ZCgpIHx8IE9wdGlvbnM6OnZlcmJvc2VGVExGYWlsdXJlKCk7Cit9CisKIGlubGluZSBDYXBhYmls
aXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogewogICAgIC8vIE5PVEU6IElmIHdlIGV2
ZXIgaGF2ZSBwaGFudG9tIGFyZ3VtZW50cywgd2UgY2FuIGNvbXBpbGUgdGhlbSBidXQgd2UgY2Fu
bm90CkBAIC03Nyw2ICs4Miw5IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShO
b2RlKiAKICAgICBjYXNlIEFyaXRoTWluOgogICAgIGNhc2UgQXJpdGhNYXg6CiAgICAgY2FzZSBB
cml0aEFiczoKKyAgICBjYXNlIEFyaXRoU2luOgorICAgIGNhc2UgQXJpdGhDb3M6CisgICAgY2Fz
ZSBBcml0aFNxcnQ6CiAgICAgY2FzZSBBcml0aE5lZ2F0ZToKICAgICBjYXNlIFVJbnQzMlRvTnVt
YmVyOgogICAgIGNhc2UgSW50MzJUb0RvdWJsZToKQEAgLTg4LDggKzk2LDYgQEAgaW5saW5lIENh
cGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNhc2UgVXBzaWxvbjoKICAgICBj
YXNlIEV4dHJhY3RPU1JFbnRyeUxvY2FsOgogICAgIGNhc2UgTG9vcEhpbnQ6Ci0gICAgY2FzZSBD
YWxsOgotICAgIGNhc2UgQ29uc3RydWN0OgogICAgIGNhc2UgR2V0TXlTY29wZToKICAgICBjYXNl
IFNraXBTY29wZToKICAgICBjYXNlIEdldENsb3N1cmVSZWdpc3RlcnM6CkBAIC0xMDgsMTUgKzEx
NCwyNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogCiAgICAgY2Fz
ZSBTdG9yZUJhcnJpZXI6CiAgICAgY2FzZSBDb25kaXRpb25hbFN0b3JlQmFycmllcjoKICAgICBj
YXNlIFN0b3JlQmFycmllcldpdGhOdWxsQ2hlY2s6CisgICAgY2FzZSBDYWxsOgorICAgIGNhc2Ug
Q29uc3RydWN0OgogICAgIGNhc2UgVmFsdWVUb0ludDMyOgogICAgIGNhc2UgQnJhbmNoOgogICAg
IGNhc2UgTG9naWNhbE5vdDoKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6CiAgICAgY2FzZSBDb25z
dGFudFN0b3JhZ2VQb2ludGVyOgogICAgIGNhc2UgQ2hlY2s6CisgICAgY2FzZSBDb3VudEV4ZWN1
dGlvbjoKKyAgICBjYXNlIENoZWNrRXhlY3V0YWJsZToKKyAgICBjYXNlIEdldFNjb3BlOgorICAg
IGNhc2UgQWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50OgorICAgIGNhc2UgQ2hlY2tBcmd1bWVu
dHNOb3RDcmVhdGVkOgorICAgIGNhc2UgR2V0Q2FsbGVlOgorICAgIGNhc2UgVG9TdHJpbmc6Cisg
ICAgY2FzZSBNYWtlUm9wZToKKyAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6CiAgICAgICAgIC8v
IFRoZXNlIGFyZSBPSy4KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZXRCeUlkOgorICAgIGNh
c2UgUHV0QnlJZERpcmVjdDoKICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgIGlmIChub2RlLT5j
aGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjM3
LDggKzI1NSwxNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogCiBD
YXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3JhcGgpCiB7CiAgICAgaWYgKGdyYXBo
Lm1fY29kZUJsb2NrLT5jb2RlVHlwZSgpICE9IEZ1bmN0aW9uQ29kZSkgewotICAgICAgICBpZiAo
dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQotICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJl
amVjdGluZyBjb2RlIGJsb2NrIHRoYXQgZG9lc24ndCBiZWxvbmcgdG8gYSBmdW5jdGlvbi5cbiIp
OworICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxpdGllcygpKQorICAgICAgICAgICAgZGF0YUxv
ZygiRlRMIHJlamVjdGluZyAiLCAqZ3JhcGgubV9jb2RlQmxvY2ssICIgYmVjYXVzZSBpdCBkb2Vz
bid0IGJlbG9uZyB0byBhIGZ1bmN0aW9uLlxuIik7CisgICAgICAgIHJldHVybiBDYW5ub3RDb21w
aWxlOworICAgIH0KKyAgICAKKyAgICBpZiAoZ3JhcGgubV9jb2RlQmxvY2stPm5lZWRzQWN0aXZh
dGlvbigpKSB7CisgICAgICAgIC8vIE5lZWQgdGhpcyBiZWNhdXNlIGFsdGhvdWdoIHdlIGFsc28g
ZG9uJ3Qgc3VwcG9ydAorICAgICAgICAvLyBDcmVhdGVBY3RpdmF0aW9uL1RlYXJPZmZBY3RpdmF0
aW9uLCB3ZSBtaWdodCBub3Qgc2VlIHRob3NlIG5vZGVzIGluIGNhc2Ugb2YKKyAgICAgICAgLy8g
T1NSIGVudHJ5LgorICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxpdGllcygpKQorICAgICAgICAg
ICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyAiLCAqZ3JhcGgubV9jb2RlQmxvY2ssICIgYmVjYXVz
ZSBpdCB1c2VzIGFjdGl2YXRpb25zLlxuIik7CiAgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxl
OwogICAgIH0KICAgICAKQEAgLTI3NCwxMyArMzAxLDE2IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5D
b21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIE9iamVjdFVzZToKICAg
ICAgICAgICAgICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgICAgICAgICAgY2Fz
ZSBTdHJpbmdVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKKyAgICAg
ICAgICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIFN0
cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgRmluYWxPYmplY3RV
c2U6CiAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAg
ICAgLy8gRG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIGFueXRoaW5nIGVsc2UuCi0gICAgICAgICAg
ICAgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3Rpbmcgbm9kZSBiZWNhdXNlIG9mIGJhZCB1
c2Uga2luZDogIiwgZWRnZS51c2VLaW5kKCksICIgaW4gbm9kZTpcbiIpOworICAgICAgICAgICAg
ICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxpdGllcygpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nIG5vZGUgaW4gIiwgKmdyYXBoLm1fY29kZUJsb2Nr
LCAiIGJlY2F1c2Ugb2YgYmFkIHVzZSBraW5kOiAiLCBlZGdlLnVzZUtpbmQoKSwgIiBpbiBub2Rl
OlxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICBncmFwaC5kdW1wKFdURjo6ZGF0YUZpbGUo
KSwgIiAgICAiLCBub2RlKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKQEAgLTI4OSw4ICszMTksOCBAQCBDYXBhYmlsaXR5
TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgICAgICAKICAgICAgICAgICAg
IHN3aXRjaCAoY2FuQ29tcGlsZShub2RlKSkgewogICAgICAgICAgICAgY2FzZSBDYW5ub3RDb21w
aWxlOiAKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3Rpbmcgbm9kZTpcbiIpOwor
ICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlQ2FwYWJpbGl0aWVzKCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyBub2RlIGluICIsICpncmFwaC5tX2NvZGVC
bG9jaywgIjpcbiIpOwogICAgICAgICAgICAgICAgICAgICBncmFwaC5kdW1wKFdURjo6ZGF0YUZp
bGUoKSwgIiAgICAiLCBub2RlKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
cmV0dXJuIENhbm5vdENvbXBpbGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENvbW1vblZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDb21tb25WYWx1ZXMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYxLDYgKzYx
LDggQEAgQ29tbW9uVmFsdWVzOjpDb21tb25WYWx1ZXMoTENvbnRleHQgY29udAogICAgICwgaW50
UHRyRWlnaHQoY29uc3RJbnQoaW50UHRyLCA4LCBTaWduRXh0ZW5kKSkKICAgICAsIGludFB0clB0
cihjb25zdEludChpbnRQdHIsIHNpemVvZih2b2lkKiksIFNpZ25FeHRlbmQpKQogICAgICwgZG91
YmxlWmVybyhjb25zdFJlYWwoZG91YmxlVHlwZSwgMCkpCisgICAgLCByYW5nZUtpbmQobWRLaW5k
SUQoY29udGV4dCwgInJhbmdlIikpCisgICAgLCBub25OZWdhdGl2ZUludDMyKGNvbnN0SW50KGlu
dDMyLCAwLCBTaWduRXh0ZW5kKSwgY29uc3RJbnQoaW50MzIsIDFsbCA8PCAzMSwgU2lnbkV4dGVu
ZCkpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fbW9kdWxlKDApCiB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmgJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMxLDYgKzMxLDcgQEAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAogI2lu
Y2x1ZGUgIkZUTEFiYnJldmlhdGlvbnMuaCIKKyNpbmNsdWRlICJGVExWYWx1ZVJhbmdlLmgiCiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIApAQCAtNzQsNiArNzUsMTAgQEAgcHVi
bGljOgogICAgIGNvbnN0IExWYWx1ZSBpbnRQdHJQdHI7CiAgICAgY29uc3QgTFZhbHVlIGRvdWJs
ZVplcm87CiAgICAgCisgICAgY29uc3QgdW5zaWduZWQgcmFuZ2VLaW5kOworICAgIAorICAgIGNv
bnN0IFZhbHVlUmFuZ2Ugbm9uTmVnYXRpdmVJbnQzMjsKKyAgICAKICAgICBMQ29udGV4dCBjb25z
dCBtX2NvbnRleHQ7CiAgICAgTE1vZHVsZSBtX21vZHVsZTsKIH07CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDYg
KzM3LDcgQEAKICNpbmNsdWRlICJGVExJbmxpbmVDYWNoZVNpemUuaCIKICNpbmNsdWRlICJGVExK
SVRDb2RlLmgiCiAjaW5jbHVkZSAiRlRMVGh1bmtzLmgiCisjaW5jbHVkZSAiRlRMVW53aW5kSW5m
by5oIgogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiTExWTUFQSS5oIgogI2luY2x1
ZGUgIkxpbmtCdWZmZXIuaCIKQEAgLTQ5LDcgKzUwLDYgQEAgdXNpbmcgbmFtZXNwYWNlIERGRzsK
IHN0YXRpYyB1aW50OF90KiBtbUFsbG9jYXRlQ29kZVNlY3Rpb24oCiAgICAgdm9pZCogb3BhcXVl
U3RhdGUsIHVpbnRwdHJfdCBzaXplLCB1bnNpZ25lZCBhbGlnbm1lbnQsIHVuc2lnbmVkLCBjb25z
dCBjaGFyKiBzZWN0aW9uTmFtZSkKIHsKLSAgICAKICAgICBTdGF0ZSYgc3RhdGUgPSAqc3RhdGlj
X2Nhc3Q8U3RhdGUqPihvcGFxdWVTdGF0ZSk7CiAgICAgCiAgICAgUkVMRUFTRV9BU1NFUlQoYWxp
Z25tZW50IDw9IGppdEFsbG9jYXRpb25HcmFudWxlKTsKQEAgLTU4LDYgKzU4LDExIEBAIHN0YXRp
YyB1aW50OF90KiBtbUFsbG9jYXRlQ29kZVNlY3Rpb24oCiAgICAgICAgIHN0YXRlLmdyYXBoLm1f
dm0uZXhlY3V0YWJsZUFsbG9jYXRvci5hbGxvY2F0ZSgKICAgICAgICAgICAgIHN0YXRlLmdyYXBo
Lm1fdm0sIHNpemUsIHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RT
dWNjZWVkKTsKICAgICAKKyAgICBpZiAoIXN0cmNtcChzZWN0aW9uTmFtZSwgIl9fY29tcGFjdF91
bndpbmQiKSkgeworICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5kID0gcmVzdWx0LT5zdGFydCgp
OworICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5kU2l6ZSA9IHJlc3VsdC0+c2l6ZUluQnl0ZXMo
KTsKKyAgICB9CisgICAgCiAgICAgc3RhdGUuaml0Q29kZS0+YWRkSGFuZGxlKHJlc3VsdCk7CiAg
ICAgc3RhdGUuY29kZVNlY3Rpb25OYW1lcy5hcHBlbmQoc2VjdGlvbk5hbWUpOwogICAgIApAQCAt
MTQ5LDggKzE1NCw2MyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMo
CiAgICAgU3RhdGUmIHN0YXRlLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSklUQ29kZSogaml0Q29k
ZSwgR2VuZXJhdGVkRnVuY3Rpb24gZ2VuZXJhdGVkRnVuY3Rpb24sCiAgICAgU3RhY2tNYXBzOjpS
ZWNvcmRNYXAmIHJlY29yZE1hcCkKIHsKLSAgICBWTSYgdm0gPSBzdGF0ZS5ncmFwaC5tX3ZtOwor
ICAgIEdyYXBoJiBncmFwaCA9IHN0YXRlLmdyYXBoOworICAgIFZNJiB2bSA9IGdyYXBoLm1fdm07
CiAgICAgU3RhY2tNYXBzIHN0YWNrbWFwcyA9IGppdENvZGUtPnN0YWNrbWFwczsKKyAgICAKKyAg
ICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJlY29yZE1hcC5maW5kKHN0
YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCk7CisgICAgUkVMRUFTRV9BU1NFUlQoaXRlciAhPSByZWNv
cmRNYXAuZW5kKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXItPnZhbHVlLmxvY2F0aW9ucy5z
aXplKCkgPT0gMSk7CisgICAgTG9jYXRpb24gY2FwdHVyZWRMb2NhdGlvbiA9CisgICAgICAgIExv
Y2F0aW9uOjpmb3JTdGFja21hcHMoJmppdENvZGUtPnN0YWNrbWFwcywgaXRlci0+dmFsdWUubG9j
YXRpb25zWzBdKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjYXB0dXJlZExvY2F0aW9uLmtpbmQoKSA9
PSBMb2NhdGlvbjo6UmVnaXN0ZXIpOworICAgIFJFTEVBU0VfQVNTRVJUKGNhcHR1cmVkTG9jYXRp
b24uZ3ByKCkgPT0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIFJFTEVBU0VfQVNT
RVJUKCEoY2FwdHVyZWRMb2NhdGlvbi5hZGRlbmQoKSAlIHNpemVvZihSZWdpc3RlcikpKTsKKyAg
ICBpbnQzMl90IGxvY2Fsc09mZnNldCA9IGNhcHR1cmVkTG9jYXRpb24uYWRkZW5kKCkgLyBzaXpl
b2YoUmVnaXN0ZXIpICsgZ3JhcGgubV9uZXh0TWFjaGluZUxvY2FsOworICAgIAorICAgIGZvciAo
dW5zaWduZWQgaSA9IGdyYXBoLm1faW5saW5lVmFyaWFibGVEYXRhLnNpemUoKTsgaS0tOykgewor
ICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGdyYXBoLm1faW5saW5l
VmFyaWFibGVEYXRhW2ldLmlubGluZUNhbGxGcmFtZTsKKyAgICAgICAgCisgICAgICAgIGlmIChp
bmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1JlZ2lzdGVyLmlzVmFsaWQoKSkgeworICAgICAgICAg
ICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNSZWdpc3RlciA9IFZpcnR1YWxSZWdpc3RlcigK
KyAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1JlZ2lzdGVyLm9mZnNl
dCgpICsgbG9jYWxzT2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yICh1
bnNpZ25lZCBhcmd1bWVudCA9IGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKTsgYXJn
dW1lbnQtLSA+IDE7KSB7CisgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1th
cmd1bWVudF0gPQorICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzW2Fy
Z3VtZW50XS53aXRoTG9jYWxzT2Zmc2V0KGxvY2Fsc09mZnNldCk7CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwpIHsKKyAgICAg
ICAgICAgIGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3ZlcnkgPQorICAgICAgICAgICAgICAg
IGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3Zlcnkud2l0aExvY2Fsc09mZnNldChsb2NhbHNP
ZmZzZXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlmIChjb2RlQmxvY2stPnVzZXNB
cmd1bWVudHMoKSkgeworICAgICAgICBjb2RlQmxvY2stPnNldEFyZ3VtZW50c1JlZ2lzdGVyKAor
ICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVyKGNvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIo
KS5vZmZzZXQoKSArIGxvY2Fsc09mZnNldCkpOworICAgIH0KKworICAgIHsKKyAgICAgICAgQ0Nh
bGxIZWxwZXJzIGNoZWNrSklUKCZ2bSwgY29kZUJsb2NrKTsKKyAgICAgICAgCisgICAgICAgIC8v
IEF0IHRoaXMgcG9pbnQgaXQncyBwZXJmZWN0bHkgZmFpciB0byBqdXN0IGJsb3cgYXdheSBhbGwg
c3RhdGUgYW5kIHJlc3RvcmUgdGhlCisgICAgICAgIC8vIEpTIEpJVCB2aWV3IG9mIHRoZSB1bml2
ZXJzZS4KKyAgICAgICAgY2hlY2tKSVQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0
KFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOworICAgICAg
ICBjaGVja0pJVC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoVGFnTWFzayksIEdQ
UkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CisgICAgICAgIAorICAgICAgICBjaGVja0pJVC5tb3Zl
KE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZ2bSksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CisgICAgICAgIGNoZWNrSklULm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwg
PSBjaGVja0pJVC5jYWxsKCk7CisgICAgICAgIGNoZWNrSklULmp1bXBUb0V4Y2VwdGlvbkhhbmRs
ZXIoKTsKKyAgICAgICAgCisgICAgICAgIE93blB0cjxMaW5rQnVmZmVyPiBsaW5rQnVmZmVyID0g
YWRvcHRQdHIobmV3IExpbmtCdWZmZXIoCisgICAgICAgICAgICB2bSwgJmNoZWNrSklULCBjb2Rl
QmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgbGlua0J1ZmZlci0+
bGluayhjYWxsLCBGdW5jdGlvblB0cihsb29rdXBFeGNlcHRpb25IYW5kbGVyKSk7CisgICAgICAg
IAorICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyID0g
bGlua0J1ZmZlci5yZWxlYXNlKCk7CisgICAgfQogCiAgICAgRXhpdFRodW5rR2VuZXJhdG9yIGV4
aXRUaHVua0dlbmVyYXRvcihzdGF0ZSk7CiAgICAgZXhpdFRodW5rR2VuZXJhdG9yLmVtaXRUaHVu
a3MoKTsKQEAgLTE2NiwxNiArMjI2LDMwIEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRP
blN0YWNrTWFwcygKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJv
c2VDb21waWxhdGlvbigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhhbmRsaW5nIE9TUiBz
dGFja21hcCAjIiwgZXhpdC5tX3N0YWNrbWFwSUQsICIgZm9yICIsIGV4aXQubV9jb2RlT3JpZ2lu
LCAiXG4iKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6
Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3RhY2ttYXBJRCk7CisKKyAg
ICAgICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3RhY2ttYXBJRCk7CiAgICAg
ICAgICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAgICAgICAgICAgICAv
LyBJdCB3YXMgb3B0aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaW5mby5tX3RodW5rQWRkcmVzcyA9
IGxpbmtCdWZmZXItPmxvY2F0aW9uT2YoaW5mby5tX3RodW5rTGFiZWwpOwotICAgICAgICAgICAg
CiAgICAgICAgICAgICBleGl0Lm1fcGF0Y2hhYmxlQ29kZU9mZnNldCA9IGxpbmtCdWZmZXItPm9m
ZnNldE9mKGluZm8ubV90aHVua0p1bXApOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGogPSBleGl0Lm1fdmFsdWVzLnNpemUoKTsgai0tOykgeworICAgICAgICAgICAg
ICAgIEV4aXRWYWx1ZSB2YWx1ZSA9IGV4aXQubV92YWx1ZXNbal07CisgICAgICAgICAgICAgICAg
aWYgKCF2YWx1ZS5pc0luSlNTdGFja1NvbWVob3coKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZS52aXJ0dWFsUmVnaXN0ZXIoKS5pc0xv
Y2FsKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGV4
aXQubV92YWx1ZXNbal0gPSB2YWx1ZS53aXRoVmlydHVhbFJlZ2lzdGVyKAorICAgICAgICAgICAg
ICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIodmFsdWUudmlydHVhbFJlZ2lzdGVyKCkub2Zmc2V0KCkg
KyBsb2NhbHNPZmZzZXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKSB7CisgICAgICAgICAgICAgICAg
RHVtcENvbnRleHQgY29udGV4dDsKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgRXhpdCB2
YWx1ZXM6ICIsIGluQ29udGV4dChleGl0Lm1fdmFsdWVzLCAmY29udGV4dCksICJcbiIpOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0ZS5maW5hbGl6ZXIt
PmV4aXRUaHVua3NMaW5rQnVmZmVyID0gbGlua0J1ZmZlci5yZWxlYXNlKCk7CkBAIC0xODQsMTMg
KzI1OCwxNSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAg
aWYgKCFzdGF0ZS5nZXRCeUlkcy5pc0VtcHR5KCkgfHwgIXN0YXRlLnB1dEJ5SWRzLmlzRW1wdHko
KSkgewogICAgICAgICBDQ2FsbEhlbHBlcnMgc2xvd1BhdGhKSVQoJnZtLCBjb2RlQmxvY2spOwog
ICAgICAgICAKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBleGNlcHRpb25UYXJnZXQ7
CisgICAgICAgIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0ZS5nZXRCeUlkcy5zaXpl
KCk7IGktLTspIHsKICAgICAgICAgICAgIEdldEJ5SWREZXNjcmlwdG9yJiBnZXRCeUlkID0gc3Rh
dGUuZ2V0QnlJZHNbaV07CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2
ZXJib3NlQ29tcGlsYXRpb24oKSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJIYW5kbGluZyBH
ZXRCeUlkIHN0YWNrbWFwICMiLCBnZXRCeUlkLnN0YWNrbWFwSUQoKSwgIlxuIik7CiAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVyID0g
cmVjb3JkTWFwLmZpbmQoZ2V0QnlJZC5zdGFja21hcElEKCkpOworICAgICAgICAgICAgaXRlciA9
IHJlY29yZE1hcC5maW5kKGdldEJ5SWQuc3RhY2ttYXBJRCgpKTsKICAgICAgICAgICAgIGlmIChp
dGVyID09IHJlY29yZE1hcC5lbmQoKSkgewogICAgICAgICAgICAgICAgIC8vIEl0IHdhcyBvcHRp
bWl6ZWQgb3V0LgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjAyLDE4ICsyNzgsMTcg
QEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAgICAg
UmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0OjphbGxSZWdpc3RlcnMoKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgR1BSUmVnIHJlc3VsdCA9IHJlY29yZC5sb2NhdGlv
bnNbMF0uZGlyZWN0R1BSKCk7Ci0gICAgICAgICAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIg
PSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwotICAgICAgICAgICAgR1BSUmVnIGJh
c2UgPSByZWNvcmQubG9jYXRpb25zWzJdLmRpcmVjdEdQUigpOworICAgICAgICAgICAgR1BSUmVn
IGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgICAgICAgICBjb2Rl
QmxvY2ssIGdldEJ5SWQuY29kZU9yaWdpbigpLCB1c2VkUmVnaXN0ZXJzLCBjYWxsRnJhbWVSZWdp
c3RlciwKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhiYXNlKSwgSlNWYWx1ZVJlZ3MocmVz
dWx0KSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGNvZGVCbG9jaywgZ2V0QnlJZC5jb2RlT3Jp
Z2luKCksIHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVSZWdzKGJhc2UpLAorICAgICAgICAgICAgICAg
IEpTVmFsdWVSZWdzKHJlc3VsdCksIGZhbHNlKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGJlZ2luID0gc2xvd1BhdGhKSVQubGFiZWwoKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IGNhbGxPcGVy
YXRpb24oCi0gICAgICAgICAgICAgICAgc3RhdGUsIHVzZWRSZWdpc3RlcnMsIHNsb3dQYXRoSklU
LCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIHJlc3VsdCwKLSAgICAgICAgICAgICAgICBjYWxs
RnJhbWVSZWdpc3RlciwgZ2VuLnN0dWJJbmZvKCksIGJhc2UsIGdldEJ5SWQudWlkKCkpOworICAg
ICAgICAgICAgICAgIHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93UGF0aEpJVCwgZ2V0QnlJZC5j
b2RlT3JpZ2luKCksICZleGNlcHRpb25UYXJnZXQsCisgICAgICAgICAgICAgICAgb3BlcmF0aW9u
R2V0QnlJZE9wdGltaXplLCByZXN1bHQsIGdlbi5zdHViSW5mbygpLCBiYXNlLCBnZXRCeUlkLnVp
ZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChi
ZWdpbiwgY2FsbCk7CiAgICAgICAgICAgICAKQEAgLTIyNyw3ICszMDIsNyBAQCBzdGF0aWMgdm9p
ZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6
dmVyYm9zZUNvbXBpbGF0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiSGFuZGxpbmcg
UHV0QnlJZCBzdGFja21hcCAjIiwgcHV0QnlJZC5zdGFja21hcElEKCksICJcbiIpOwogICAgICAg
ICAgICAgCi0gICAgICAgICAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9
IHJlY29yZE1hcC5maW5kKHB1dEJ5SWQuc3RhY2ttYXBJRCgpKTsKKyAgICAgICAgICAgIGl0ZXIg
PSByZWNvcmRNYXAuZmluZChwdXRCeUlkLnN0YWNrbWFwSUQoKSk7CiAgICAgICAgICAgICBpZiAo
aXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAgICAgICAgICAgICAvLyBJdCB3YXMgb3B0
aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTIzOCwyMCArMzEzLDE5
IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAg
IC8vIEZJWE1FOiBMTFZNIHNob3VsZCB0ZWxsIHVzIHdoaWNoIHJlZ2lzdGVycyBhcmUgbGl2ZS4K
ICAgICAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSBSZWdpc3RlclNldDo6YWxs
UmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIEdQUlJlZyBjYWxsRnJhbWVS
ZWdpc3RlciA9IHJlY29yZC5sb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCk7Ci0gICAgICAgICAgICBH
UFJSZWcgYmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCk7Ci0gICAgICAgICAg
ICBHUFJSZWcgdmFsdWUgPSByZWNvcmQubG9jYXRpb25zWzJdLmRpcmVjdEdQUigpOworICAgICAg
ICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzBdLmRpcmVjdEdQUigpOworICAg
ICAgICAgICAgR1BSUmVnIHZhbHVlID0gcmVjb3JkLmxvY2F0aW9uc1sxXS5kaXJlY3RHUFIoKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAg
ICAgICAgICAgICAgY29kZUJsb2NrLCBwdXRCeUlkLmNvZGVPcmlnaW4oKSwgdXNlZFJlZ2lzdGVy
cywgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MoYmFzZSks
IEpTVmFsdWVSZWdzKHZhbHVlKSwgTWFjcm9Bc3NlbWJsZXI6OnNjcmF0Y2hSZWdpc3RlciwKLSAg
ICAgICAgICAgICAgICBmYWxzZSwgcHV0QnlJZC5lY21hTW9kZSgpLCBwdXRCeUlkLnB1dEtpbmQo
KSk7CisgICAgICAgICAgICAgICAgY29kZUJsb2NrLCBwdXRCeUlkLmNvZGVPcmlnaW4oKSwgdXNl
ZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MoYmFzZSksCisgICAgICAgICAgICAgICAgSlNWYWx1ZVJl
Z3ModmFsdWUpLCBNYWNyb0Fzc2VtYmxlcjo6c2NyYXRjaFJlZ2lzdGVyLCBmYWxzZSwgcHV0QnlJ
ZC5lY21hTW9kZSgpLAorICAgICAgICAgICAgICAgIHB1dEJ5SWQucHV0S2luZCgpKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGJlZ2luID0gc2xvd1Bh
dGhKSVQubGFiZWwoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oCi0gICAgICAgICAgICAgICAgc3RhdGUsIHVzZWRS
ZWdpc3RlcnMsIHNsb3dQYXRoSklULCBnZW4uc2xvd1BhdGhGdW5jdGlvbigpLCBjYWxsRnJhbWVS
ZWdpc3RlciwKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKSwgdmFsdWUsIGJhc2UsIHB1
dEJ5SWQudWlkKCkpOworICAgICAgICAgICAgICAgIHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93
UGF0aEpJVCwgcHV0QnlJZC5jb2RlT3JpZ2luKCksICZleGNlcHRpb25UYXJnZXQsCisgICAgICAg
ICAgICAgICAgZ2VuLnNsb3dQYXRoRnVuY3Rpb24oKSwgZ2VuLnN0dWJJbmZvKCksIHZhbHVlLCBi
YXNlLCBwdXRCeUlkLnVpZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZ2VuLnJlcG9y
dFNsb3dQYXRoQ2FsbChiZWdpbiwgY2FsbCk7CiAgICAgICAgICAgICAKQEAgLTI1OSw4ICszMzMs
MTMgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAg
ICAgcHV0QnlJZC5tX2dlbmVyYXRvciA9IGdlbjsKICAgICAgICAgfQogICAgICAgICAKKyAgICAg
ICAgZXhjZXB0aW9uVGFyZ2V0LmxpbmsoJnNsb3dQYXRoSklUKTsKKyAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgZXhjZXB0aW9uSnVtcCA9IHNsb3dQYXRoSklULmp1bXAoKTsKKyAgICAgICAg
CiAgICAgICAgIHN0YXRlLmZpbmFsaXplci0+c2lkZUNvZGVMaW5rQnVmZmVyID0gYWRvcHRQdHIo
CiAgICAgICAgICAgICBuZXcgTGlua0J1ZmZlcih2bSwgJnNsb3dQYXRoSklULCBjb2RlQmxvY2ss
IEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgc3RhdGUuZmluYWxpemVyLT5z
aWRlQ29kZUxpbmtCdWZmZXItPmxpbmsoCisgICAgICAgICAgICBleGNlcHRpb25KdW1wLCBzdGF0
ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLT5lbnRyeXBvaW50KCkpOwog
ICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhdGUuZ2V0QnlJZHMuc2l6ZSgp
OyBpLS07KSB7CiAgICAgICAgICAgICBnZW5lcmF0ZUlDRmFzdFBhdGgoCkBAIC0yNzQsMjggKzM1
Myw4MSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAg
IH0KICAgICB9CiAgICAgCi0gICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNvZGVCbG9j
ayk7Ci0gICAgCi0gICAgZm9yICh1bnNpZ25lZCBleGl0SW5kZXggPSBqaXRDb2RlLT5vc3JFeGl0
LnNpemUoKTsgZXhpdEluZGV4LS07KSB7Ci0gICAgICAgIE9TUkV4aXRDb21waWxhdGlvbkluZm8m
IGluZm8gPSBzdGF0ZS5maW5hbGl6ZXItPm9zckV4aXRbZXhpdEluZGV4XTsKLSAgICAgICAgT1NS
RXhpdCYgZXhpdCA9IGppdENvZGUtPm9zckV4aXRbZXhpdEluZGV4XTsKLSAgICAgICAgU3RhY2tN
YXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3Rh
Y2ttYXBJRCk7CisgICAgLy8gSGFuZGxpbmcgSlMgY2FsbHMgaXMgd2VpcmQ6IHdlIG5lZWQgdG8g
ZW5zdXJlIHRoYXQgd2Ugc29ydCB0aGVtIGJ5IHRoZSBQQyBpbiBMTFZNCisgICAgLy8gZ2VuZXJh
dGVkIGNvZGUuIFRoYXQgaW1wbGllcyBmaXJzdCBwcnVuaW5nIHRoZSBvbmVzIHRoYXQgTExWTSBk
aWRuJ3QgZ2VuZXJhdGUuCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRlLmpzQ2Fs
bHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgSlNDYWxsJiBjYWxsID0gc3RhdGUuanNDYWxsc1tp
XTsKKyAgICAgICAgCisgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVy
ID0gcmVjb3JkTWFwLmZpbmQoY2FsbC5zdGFja21hcElEKCkpOwogICAgICAgICBpZiAoaXRlciA9
PSByZWNvcmRNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgY291bGQgaGFwcGVuIGlm
IExMVk0gb3B0aW1pemVzIG91dCBhbiBPU1IgZXhpdC4KKyAgICAgICAgICAgIC8vIEl0IHdhcyBv
cHRpbWl6ZWQgb3V0LiBQcnVuZSBpdC4KKyAgICAgICAgICAgIGNhbGwgPSBzdGF0ZS5qc0NhbGxz
Lmxhc3QoKTsKKyAgICAgICAgICAgIHN0YXRlLmpzQ2FsbHMucmVtb3ZlTGFzdCgpOworICAgICAg
ICAgICAgaS0tOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgCisg
ICAgICAgIGNhbGwubV9pbnN0cnVjdGlvbk9mZnNldCA9IGl0ZXItPnZhbHVlLmluc3RydWN0aW9u
T2Zmc2V0OworICAgIH0KKyAgICAKKyAgICBzdGQ6OnNvcnQoc3RhdGUuanNDYWxscy5iZWdpbigp
LCBzdGF0ZS5qc0NhbGxzLmVuZCgpKTsKKyAgICAKKyAgICBjb2RlQmxvY2stPnNldE51bWJlck9m
Q2FsbExpbmtJbmZvcyhzdGF0ZS5qc0NhbGxzLnNpemUoKSk7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gc3RhdGUuanNDYWxscy5zaXplKCk7IGktLTspIHsKKyAgICAgICAgSlNDYWxsJiBjYWxsID0g
c3RhdGUuanNDYWxsc1tpXTsKKworICAgICAgICBDQ2FsbEhlbHBlcnMgZmFzdFBhdGhKSVQoJnZt
LCBjb2RlQmxvY2spOworICAgICAgICBjYWxsLmVtaXQoZmFzdFBhdGhKSVQpOworICAgICAgICAK
KyAgICAgICAgY2hhciogc3RhcnRPZklDID0gYml0d2lzZV9jYXN0PGNoYXIqPihnZW5lcmF0ZWRG
dW5jdGlvbikgKyBjYWxsLm1faW5zdHJ1Y3Rpb25PZmZzZXQ7CisgICAgICAgIAorICAgICAgICBM
aW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sICZmYXN0UGF0aEpJVCwgc3RhcnRPZklDLCBzaXplT2ZD
YWxsKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChsaW5rQnVmZmVyLmlzVmFsaWQoKSk7Cisg
ICAgICAgIAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QXNzZW1ibGVyVHlwZV9UOjpmaWxsTm9w
cygKKyAgICAgICAgICAgIHN0YXJ0T2ZJQyArIGxpbmtCdWZmZXIuc2l6ZSgpLCBzaXplT2ZDYWxs
KCkgLSBsaW5rQnVmZmVyLnNpemUoKSk7CisgICAgICAgIAorICAgICAgICBDYWxsTGlua0luZm8m
IGluZm8gPSBjb2RlQmxvY2stPmNhbGxMaW5rSW5mbyhpKTsKKyAgICAgICAgY2FsbC5saW5rKHZt
LCBsaW5rQnVmZmVyLCBpbmZvKTsKKyAgICB9CisgICAgCisgICAgUmVwYXRjaEJ1ZmZlciByZXBh
dGNoQnVmZmVyKGNvZGVCbG9jayk7CisgICAgCisgICAgaXRlciA9IHJlY29yZE1hcC5maW5kKHN0
YXRlLmhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQpOworICAgIC8vIEl0J3Mgc29ydCBvZiByZW1v
dGVseSBwb3NzaWJsZSB0aGF0IHdlIHdvbid0IGhhdmUgYW4gaW4tYmFuZCBleGNlcHRpb24gaGFu
ZGxpbmcKKyAgICAvLyBwYXRoLCBmb3Igc29tZSBraW5kcyBvZiBmdW5jdGlvbnMuCisgICAgaWYg
KGl0ZXIgIT0gcmVjb3JkTWFwLmVuZCgpKSB7CiAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkJiBy
ZWNvcmQgPSBpdGVyLT52YWx1ZTsKICAgICAgICAgCiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVs
IHNvdXJjZSA9IENvZGVMb2NhdGlvbkxhYmVsKAogICAgICAgICAgICAgYml0d2lzZV9jYXN0PGNo
YXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyByZWNvcmQuaW5zdHJ1Y3Rpb25PZmZzZXQpOworCisg
ICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKHNvdXJjZSwgc3RhdGUuZmluYWxp
emVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+ZW50cnlwb2ludCgpKTsKKyAgICB9Cisg
ICAgCisgICAgZm9yICh1bnNpZ25lZCBleGl0SW5kZXggPSAwOyBleGl0SW5kZXggPCBqaXRDb2Rl
LT5vc3JFeGl0LnNpemUoKTsgKytleGl0SW5kZXgpIHsKKyAgICAgICAgT1NSRXhpdENvbXBpbGF0
aW9uSW5mbyYgaW5mbyA9IHN0YXRlLmZpbmFsaXplci0+b3NyRXhpdFtleGl0SW5kZXhdOworICAg
ICAgICBPU1JFeGl0JiBleGl0ID0gaml0Q29kZS0+b3NyRXhpdFtleGl0SW5kZXhdOworICAgICAg
ICBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZXhpdC5tX3N0YWNrbWFwSUQpOwogICAgICAgICAKLSAg
ICAgICAgaWYgKGluZm8ubV9pc0ludmFsaWRhdGlvblBvaW50KSB7Ci0gICAgICAgICAgICBqaXRD
b2RlLT5jb21tb24uanVtcFJlcGxhY2VtZW50cy5hcHBlbmQoSnVtcFJlcGxhY2VtZW50KHNvdXJj
ZSwgaW5mby5tX3RodW5rQWRkcmVzcykpOwotICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IFZlY3Rvcjxjb25zdCB2b2lkKj4gY29kZUFkZHJlc3NlczsKKyAgICAgICAgCisgICAgICAgIGlm
IChpdGVyICE9IHJlY29yZE1hcC5lbmQoKSkgeworICAgICAgICAgICAgU3RhY2tNYXBzOjpSZWNv
cmQmIHJlY29yZCA9IGl0ZXItPnZhbHVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBDb2Rl
TG9jYXRpb25MYWJlbCBzb3VyY2UgPSBDb2RlTG9jYXRpb25MYWJlbCgKKyAgICAgICAgICAgICAg
ICBiaXR3aXNlX2Nhc3Q8Y2hhcio+KGdlbmVyYXRlZEZ1bmN0aW9uKSArIHJlY29yZC5pbnN0cnVj
dGlvbk9mZnNldCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvZGVBZGRyZXNzZXMuYXBw
ZW5kKGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJhdGVkRnVuY3Rpb24pICsgcmVjb3JkLmluc3Ry
dWN0aW9uT2Zmc2V0ICsgTWFjcm9Bc3NlbWJsZXI6Om1heEp1bXBSZXBsYWNlbWVudFNpemUoKSk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbmZvLm1faXNJbnZhbGlkYXRpb25Qb2lu
dCkKKyAgICAgICAgICAgICAgICBqaXRDb2RlLT5jb21tb24uanVtcFJlcGxhY2VtZW50cy5hcHBl
bmQoSnVtcFJlcGxhY2VtZW50KHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVzcykpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1w
KHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVzcyk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKHNvdXJjZSwgaW5mby5tX3RodW5rQWRk
cmVzcyk7CisgICAgICAgIGlmIChncmFwaC5jb21waWxhdGlvbigpKQorICAgICAgICAgICAgZ3Jh
cGguY29tcGlsYXRpb24oKS0+YWRkT1NSRXhpdFNpdGUoY29kZUFkZHJlc3Nlcyk7CiAgICAgfQog
fQogCkBAIC0zNzMsNyArNTA1LDcgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSkKICAgICAg
ICAgICAgIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUqIGhhbmRsZSA9IHN0YXRlLmppdENvZGUtPmhh
bmRsZXMoKVtpXS5nZXQoKTsKICAgICAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAgICAg
IkdlbmVyYXRlZCBMTFZNIGNvZGUgZm9yICIsCi0gICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0
aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkRGR0pJVCksCisgICAg
ICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ss
IEpJVENvZGU6OkZUTEpJVCksCiAgICAgICAgICAgICAgICAgIiAjIiwgaSwgIiwgIiwgc3RhdGUu
Y29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwogICAgICAgICAgICAgZGlzYXNzZW1ibGUoCiAg
ICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGhhbmRsZS0+c3RhcnQoKSksIGhh
bmRsZS0+c2l6ZUluQnl0ZXMoKSwKQEAgLTM4NCwxNyArNTE2LDIyIEBAIHZvaWQgY29tcGlsZShT
dGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICBjb25zdCBSZWZDb3VudGVkQXJyYXk8TFNlY3Rpb25X
b3JkPiYgc2VjdGlvbiA9IHN0YXRlLmppdENvZGUtPmRhdGFTZWN0aW9ucygpW2ldOwogICAgICAg
ICAgICAgZGF0YUxvZygKICAgICAgICAgICAgICAgICAiR2VuZXJhdGVkIExMVk0gZGF0YSBzZWN0
aW9uIGZvciAiLAotICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdy
YXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLAorICAgICAgICAgICAgICAgIENvZGVC
bG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQp
LAogICAgICAgICAgICAgICAgICIgIyIsIGksICIsICIsIHN0YXRlLmRhdGFTZWN0aW9uTmFtZXNb
aV0sICI6XG4iKTsKICAgICAgICAgICAgIGR1bXBEYXRhU2VjdGlvbihzZWN0aW9uLCAiICAgICIp
OwogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHN0YXRlLmppdENvZGUtPnVud2luZEluZm8u
cGFyc2UoCisgICAgICAgIHN0YXRlLmNvbXBhY3RVbndpbmQsIHN0YXRlLmNvbXBhY3RVbndpbmRT
aXplLCBzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbik7CisgICAgaWYgKERGRzo6c2hvdWxkU2hvd0Rp
c2Fzc2VtYmx5KCkpCisgICAgICAgIGRhdGFMb2coIlVud2luZCBpbmZvIGZvciAiLCBDb2RlQmxv
Y2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6RlRMSklUKSwg
IjpcbiAgICAiLCBzdGF0ZS5qaXRDb2RlLT51bndpbmRJbmZvLCAiXG4iKTsKKyAgICAKICAgICBp
ZiAoc3RhdGUuc3RhY2ttYXBzU2VjdGlvbi5zaXplKCkpIHsKICAgICAgICAgaWYgKHNob3VsZFNo
b3dEaXNhc3NlbWJseSgpKSB7CiAgICAgICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgICAg
ICJHZW5lcmF0ZWQgTExWTSBzdGFja21hcHMgc2VjdGlvbiBmb3IgIiwKLSAgICAgICAgICAgICAg
ICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6
REZHSklUKSwgIjpcbiIpOworICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0
YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiOlxuIik7CiAgICAgICAg
ICAgICBkYXRhTG9nKCIgICAgUmF3IGRhdGE6XG4iKTsKICAgICAgICAgICAgIGR1bXBEYXRhU2Vj
dGlvbihzdGF0ZS5zdGFja21hcHNTZWN0aW9uLCAiICAgICIpOwogICAgICAgICB9CkBAIC00MjEs
OCArNTU4LDkgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSkKICAgICAgICAgICAgICAgICBF
eGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBoYW5kbGUgPSBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKClb
aV0uZ2V0KCk7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygKICAgICAgICAgICAgICAgICAgICAg
IkdlbmVyYXRlZCBMTFZNIGNvZGUgYWZ0ZXIgc3RhY2ttYXAtYmFzZWQgZml4LXVwIGZvciAiLAot
ICAgICAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2Nv
ZGVCbG9jaywgSklUQ29kZTo6REZHSklUKSwKLSAgICAgICAgICAgICAgICAgICAgIiAjIiwgaSwg
IiwgIiwgc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOworICAgICAgICAgICAgICAg
ICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29k
ZTo6RlRMSklUKSwKKyAgICAgICAgICAgICAgICAgICAgIiBpbiAiLCBzdGF0ZS5ncmFwaC5tX3Bs
YW4ubW9kZSwgIiAjIiwgaSwgIiwgIiwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuY29kZVNl
Y3Rpb25OYW1lc1tpXSwgIjpcbiIpOwogICAgICAgICAgICAgICAgIGRpc2Fzc2VtYmxlKAogICAg
ICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoaGFuZGxlLT5zdGFydCgpKSwg
aGFuZGxlLT5zaXplSW5CeXRlcygpLAogICAgICAgICAgICAgICAgICAgICAiICAgICIsIFdURjo6
ZGF0YUZpbGUoKSwgTExWTVN1YnNldCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEV4aXRWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExFeGl0VmFsdWUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDYgKzU5LDkgQEAg
dm9pZCBFeGl0VmFsdWU6OmR1bXBJbkNvbnRleHQoUHJpbnRTdHJlYQogICAgIGNhc2UgRXhpdFZh
bHVlSW5KU1N0YWNrQXNEb3VibGU6CiAgICAgICAgIG91dC5wcmludCgiSW5KU1N0YWNrQXNEb3Vi
bGU6ciIsIHZpcnR1YWxSZWdpc3RlcigpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRXhp
dFZhbHVlUmVjb3Zlcnk6CisgICAgICAgIG91dC5wcmludCgiUmVjb3ZlcnkoIiwgcmVjb3ZlcnlP
cGNvZGUoKSwgIiwgYXJnIiwgbGVmdFJlY292ZXJ5QXJndW1lbnQoKSwgIiwgYXJnIiwgcmlnaHRS
ZWNvdmVyeUFyZ3VtZW50KCksICIsICIsIHJlY292ZXJ5Rm9ybWF0KCksICIpIik7CisgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuaAkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBAQAogI2lmIEVOQUJMRShGVExfSklUKQogCiAjaW5jbHVk
ZSAiRlRMRXhpdEFyZ3VtZW50LmgiCisjaW5jbHVkZSAiRlRMUmVjb3ZlcnlPcGNvZGUuaCIKICNp
bmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAjaW5j
bHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CkBAIC01MSw3ICs1Miw4IEBAIGVudW0gRXhpdFZhbHVl
S2luZCB7CiAgICAgRXhpdFZhbHVlSW5KU1N0YWNrLAogICAgIEV4aXRWYWx1ZUluSlNTdGFja0Fz
SW50MzIsCiAgICAgRXhpdFZhbHVlSW5KU1N0YWNrQXNJbnQ1MiwKLSAgICBFeGl0VmFsdWVJbkpT
U3RhY2tBc0RvdWJsZQorICAgIEV4aXRWYWx1ZUluSlNTdGFja0FzRG91YmxlLAorICAgIEV4aXRW
YWx1ZVJlY292ZXJ5CiB9OwogCiBjbGFzcyBFeGl0VmFsdWUgewpAQCAtMTE4LDYgKzEyMCwxNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAorICAgIHN0YXRp
YyBFeGl0VmFsdWUgcmVjb3ZlcnkoUmVjb3ZlcnlPcGNvZGUgb3Bjb2RlLCB1bnNpZ25lZCBsZWZ0
QXJndW1lbnQsIHVuc2lnbmVkIHJpZ2h0QXJndW1lbnQsIFZhbHVlRm9ybWF0IGZvcm1hdCkKKyAg
ICB7CisgICAgICAgIEV4aXRWYWx1ZSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBF
eGl0VmFsdWVSZWNvdmVyeTsKKyAgICAgICAgcmVzdWx0LnUucmVjb3Zlcnkub3Bjb2RlID0gb3Bj
b2RlOworICAgICAgICByZXN1bHQudS5yZWNvdmVyeS5sZWZ0QXJndW1lbnQgPSBsZWZ0QXJndW1l
bnQ7CisgICAgICAgIHJlc3VsdC51LnJlY292ZXJ5LnJpZ2h0QXJndW1lbnQgPSByaWdodEFyZ3Vt
ZW50OworICAgICAgICByZXN1bHQudS5yZWNvdmVyeS5mb3JtYXQgPSBmb3JtYXQ7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAogICAgIEV4aXRWYWx1ZUtpbmQga2luZCgpIGNv
bnN0IHsgcmV0dXJuIG1fa2luZDsgfQogICAgIAogICAgIGJvb2wgaXNEZWFkKCkgY29uc3QgeyBy
ZXR1cm4ga2luZCgpID09IEV4aXRWYWx1ZURlYWQ7IH0KQEAgLTEzNSw2ICsxNDgsNyBAQCBwdWJs
aWM6CiAgICAgfQogICAgIGJvb2wgaXNDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9
PSBFeGl0VmFsdWVDb25zdGFudDsgfQogICAgIGJvb2wgaXNBcmd1bWVudCgpIGNvbnN0IHsgcmV0
dXJuIGtpbmQoKSA9PSBFeGl0VmFsdWVBcmd1bWVudDsgfQorICAgIGJvb2wgaXNSZWNvdmVyeSgp
IGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBFeGl0VmFsdWVSZWNvdmVyeTsgfQogICAgIAogICAg
IEV4aXRBcmd1bWVudCBleGl0QXJndW1lbnQoKSBjb25zdAogICAgIHsKQEAgLTE0Miw2ICsxNTYs
MzAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gRXhpdEFyZ3VtZW50KHUuYXJndW1lbnQpOwog
ICAgIH0KICAgICAKKyAgICB1bnNpZ25lZCBsZWZ0UmVjb3ZlcnlBcmd1bWVudCgpIGNvbnN0Cisg
ICAgeworICAgICAgICBBU1NFUlQoaXNSZWNvdmVyeSgpKTsKKyAgICAgICAgcmV0dXJuIHUucmVj
b3ZlcnkubGVmdEFyZ3VtZW50OworICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCByaWdodFJlY292
ZXJ5QXJndW1lbnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzUmVjb3ZlcnkoKSk7
CisgICAgICAgIHJldHVybiB1LnJlY292ZXJ5LnJpZ2h0QXJndW1lbnQ7CisgICAgfQorICAgIAor
ICAgIFZhbHVlRm9ybWF0IHJlY292ZXJ5Rm9ybWF0KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFT
U0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmFsdWVGb3Jt
YXQ+KHUucmVjb3ZlcnkuZm9ybWF0KTsKKyAgICB9CisgICAgCisgICAgUmVjb3ZlcnlPcGNvZGUg
cmVjb3ZlcnlPcGNvZGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzUmVjb3Zlcnko
KSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZWNvdmVyeU9wY29kZT4odS5yZWNvdmVy
eS5vcGNvZGUpOworICAgIH0KKyAgICAKICAgICBKU1ZhbHVlIGNvbnN0YW50KCkgY29uc3QKICAg
ICB7CiAgICAgICAgIEFTU0VSVChpc0NvbnN0YW50KCkpOwpAQCAtMTUzLDYgKzE5MSwxNSBAQCBw
dWJsaWM6CiAgICAgICAgIEFTU0VSVChpc0luSlNTdGFja1NvbWVob3coKSk7CiAgICAgICAgIHJl
dHVybiBWaXJ0dWFsUmVnaXN0ZXIodS52aXJ0dWFsUmVnaXN0ZXIpOwogICAgIH0KKyAgICAKKyAg
ICBFeGl0VmFsdWUgd2l0aFZpcnR1YWxSZWdpc3RlcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJl
Z2lzdGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW5KU1N0YWNrU29tZWhvdygpKTsKKyAg
ICAgICAgRXhpdFZhbHVlIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fa2luZCA9IG1fa2luZDsK
KyAgICAgICAgcmVzdWx0LnUudmlydHVhbFJlZ2lzdGVyID0gdmlydHVhbFJlZ2lzdGVyLm9mZnNl
dCgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIAogICAgIC8vIElmIGl0J3MgaW4g
dGhlIEpTU3RhY2sgc29tZWhvdywgdGhpcyB3aWxsIHRlbGwgeW91IHdoYXQgZm9ybWF0IGl0J3Mg
aW4sIGluIGEgbWFubmVyCiAgICAgLy8gdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggZXhpdEFyZ3Vt
ZW50KCkuZm9ybWF0KCkuIElmIGl0J3MgYSBjb25zdGFudCBvciBpdCdzIGRlYWQsIGl0CkBAIC0x
ODEsNiArMjI4LDkgQEAgcHVibGljOgogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgRXhpdFZh
bHVlSW5KU1N0YWNrQXNEb3VibGU6CiAgICAgICAgICAgICByZXR1cm4gVmFsdWVGb3JtYXREb3Vi
bGU7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBFeGl0VmFsdWVSZWNvdmVyeToKKyAgICAg
ICAgICAgIHJldHVybiByZWNvdmVyeUZvcm1hdCgpOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTk2LDYgKzI0NiwxMiBAQCBw
cml2YXRlOgogICAgICAgICBFeGl0QXJndW1lbnRSZXByZXNlbnRhdGlvbiBhcmd1bWVudDsKICAg
ICAgICAgRW5jb2RlZEpTVmFsdWUgY29uc3RhbnQ7CiAgICAgICAgIGludCB2aXJ0dWFsUmVnaXN0
ZXI7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50MTZfdCBsZWZ0QXJndW1lbnQ7
CisgICAgICAgICAgICB1aW50MTZfdCByaWdodEFyZ3VtZW50OworICAgICAgICAgICAgdWludDE2
X3Qgb3Bjb2RlOworICAgICAgICAgICAgdWludDE2X3QgZm9ybWF0OworICAgICAgICB9IHJlY292
ZXJ5OwogICAgIH0gdTsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW5saW5lQ2FjaGVTaXplLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDcsNiArNDcsMTEgQEAgc2l6ZV90IHNpemVPZlB1dEJ5SWQoKQogICAgIHJldHVybiAzMjsK
IH0KIAorc2l6ZV90IHNpemVPZkNhbGwoKQoreworICAgIHJldHVybiA0MzsKK30KKwogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkZUTAogCiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmgJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVT
aXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBGVEwgewogCiBzaXplX3Qgc2l6ZU9mR2V0QnlJZCgpOwogc2l6ZV90IHNpemVPZlB1
dEJ5SWQoKTsKK3NpemVfdCBzaXplT2ZDYWxsKCk7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpG
VEwKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0
b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5z
aWNSZXBvc2l0b3J5LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNyAr
NDAsMjUgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKGFkZFdp
dGhPdmVyZmxvdzMyLCAibGx2bS5zYWRkLndpdGgub3ZlcmZsb3cuaTMyIiwgZnVuY3Rpb25UeXBl
KHN0cnVjdFR5cGUobV9jb250ZXh0LCBpbnQzMiwgYm9vbGVhbiksIGludDMyLCBpbnQzMikpIFwK
ICAgICBtYWNybyhhZGRXaXRoT3ZlcmZsb3c2NCwgImxsdm0uc2FkZC53aXRoLm92ZXJmbG93Lmk2
NCIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50NjQsIGJvb2xlYW4pLCBp
bnQ2NCwgaW50NjQpKSBcCiAgICAgbWFjcm8oZG91YmxlQWJzLCAibGx2bS5mYWJzLmY2NCIsIGZ1
bmN0aW9uVHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkgXAorICAgIG1hY3JvKGRvdWJsZVNp
biwgImxsdm0uc2luLmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkg
XAorICAgIG1hY3JvKGRvdWJsZUNvcywgImxsdm0uY29zLmY2NCIsIGZ1bmN0aW9uVHlwZShkb3Vi
bGVUeXBlLCBkb3VibGVUeXBlKSkgXAorICAgIG1hY3JvKGRvdWJsZVNxcnQsICJsbHZtLnNxcnQu
ZjY0IiwgZnVuY3Rpb25UeXBlKGRvdWJsZVR5cGUsIGRvdWJsZVR5cGUpKSBcCisgICAgbWFjcm8o
ZnJhbWVBZGRyZXNzLCAibGx2bS5mcmFtZWFkZHJlc3MiLCBmdW5jdGlvblR5cGUocG9pbnRlclR5
cGUoaW50OCksIGludDMyKSkgXAogICAgIG1hY3JvKG11bFdpdGhPdmVyZmxvdzMyLCAibGx2bS5z
bXVsLndpdGgub3ZlcmZsb3cuaTMyIiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0
LCBpbnQzMiwgYm9vbGVhbiksIGludDMyLCBpbnQzMikpIFwKICAgICBtYWNybyhtdWxXaXRoT3Zl
cmZsb3c2NCwgImxsdm0uc211bC53aXRoLm92ZXJmbG93Lmk2NCIsIGZ1bmN0aW9uVHlwZShzdHJ1
Y3RUeXBlKG1fY29udGV4dCwgaW50NjQsIGJvb2xlYW4pLCBpbnQ2NCwgaW50NjQpKSBcCi0gICAg
bWFjcm8ocGF0Y2hwb2ludEludDY0LCAibGx2bS5leHBlcmltZW50YWwucGF0Y2hwb2ludC5pNjQi
LCBmdW5jdGlvblR5cGUoaW50NjQsIGludDMyLCBpbnQzMiwgcmVmOCwgaW50MzIsIFZhcmlhZGlj
KSkgXAotICAgIG1hY3JvKHBhdGNocG9pbnRWb2lkLCAibGx2bS5leHBlcmltZW50YWwucGF0Y2hw
b2ludC52b2lkIiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQzMiwgaW50MzIsIHJlZjgsIGlu
dDMyLCBWYXJpYWRpYykpIFwKLSAgICBtYWNybyhzdGFja21hcCwgImxsdm0uZXhwZXJpbWVudGFs
LnN0YWNrbWFwIiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQzMiwgaW50MzIsIFZhcmlhZGlj
KSkgXAorICAgIG1hY3JvKHBhdGNocG9pbnRJbnQ2NCwgImxsdm0uZXhwZXJpbWVudGFsLnBhdGNo
cG9pbnQuaTY0IiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnQ2NCwgaW50MzIsIHJlZjgsIGludDMy
LCBWYXJpYWRpYykpIFwKKyAgICBtYWNybyhwYXRjaHBvaW50Vm9pZCwgImxsdm0uZXhwZXJpbWVu
dGFsLnBhdGNocG9pbnQudm9pZCIsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50NjQsIGludDMy
LCByZWY4LCBpbnQzMiwgVmFyaWFkaWMpKSBcCisgICAgbWFjcm8oc3RhY2ttYXAsICJsbHZtLmV4
cGVyaW1lbnRhbC5zdGFja21hcCIsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50NjQsIGludDMy
LCBWYXJpYWRpYykpIFwKICAgICBtYWNybyhzdWJXaXRoT3ZlcmZsb3czMiwgImxsdm0uc3N1Yi53
aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50
MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBcCiAgICAgbWFjcm8oc3ViV2l0aE92ZXJmbG93
NjQsICJsbHZtLnNzdWIud2l0aC5vdmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlw
ZShtX2NvbnRleHQsIGludDY0LCBib29sZWFuKSwgaW50NjQsIGludDY0KSkgXAogICAgIG1hY3Jv
KHRyYXAsICJsbHZtLnRyYXAiLCBmdW5jdGlvblR5cGUodm9pZFR5cGUpKSBcCiAgICAgbWFjcm8o
eDg2U1NFMkN2dFRTRDJTSSwgImxsdm0ueDg2LnNzZTIuY3Z0dHNkMnNpIiwgZnVuY3Rpb25UeXBl
KGludDMyLCB2ZWN0b3JUeXBlKGRvdWJsZVR5cGUsIDIpKSkKIAogI2RlZmluZSBGT1JfRUFDSF9G
VU5DVElPTl9UWVBFKG1hY3JvKSBcCisgICAgbWFjcm8oQ19KSVRPcGVyYXRpb25fRUMsIGZ1bmN0
aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAorICAgIG1hY3JvKENfSklUT3BlcmF0
aW9uX0VKLCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludDY0KSkgXAorICAgIG1hY3Jv
KENfSklUT3BlcmF0aW9uX0VKc3NKc3MsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50
UHRyLCBpbnRQdHIpKSBcCisgICAgbWFjcm8oQ19KSVRPcGVyYXRpb25fRUpzc0pzc0pzcywgZnVu
Y3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAogICAg
IG1hY3JvKENfSklUT3BlcmF0aW9uX0VTdCwgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBp
bnRQdHIpKSBcCiAgICAgbWFjcm8oSV9KSVRPcGVyYXRpb25fRUpzcywgZnVuY3Rpb25UeXBlKGlu
dFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRSwgZnVu
Y3Rpb25UeXBlKGludDY0LCBpbnRQdHIpKSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEpJVENvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMSklUQ29kZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSklUQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDI3ICs1NCwzNSBA
QCB2b2lkIEpJVENvZGU6OmFkZERhdGFTZWN0aW9uKFJlZkNvdW50ZWRBCiAgICAgbV9kYXRhU2Vj
dGlvbnMuYXBwZW5kKGRhdGFTZWN0aW9uKTsKIH0KIAotdm9pZCBKSVRDb2RlOjppbml0aWFsaXpl
Q29kZShDb2RlUmVmIGVudHJ5cG9pbnQpCit2b2lkIEpJVENvZGU6OmluaXRpYWxpemVBcml0eUNo
ZWNrRW50cnlwb2ludChDb2RlUmVmIGVudHJ5cG9pbnQpCiB7Ci0gICAgbV9lbnRyeXBvaW50ID0g
ZW50cnlwb2ludDsKKyAgICBtX2FyaXR5Q2hlY2tFbnRyeXBvaW50ID0gZW50cnlwb2ludDsKIH0K
IAotSklUQ29kZTo6Q29kZVB0ciBKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgpCit2b2lkIEpJVENv
ZGU6OmluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbChDb2RlUHRyIGFkZHJlc3MpCiB7Ci0gICAgUkVM
RUFTRV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLSAgICByZXR1cm4gbV9lbnRyeXBvaW50LmNvZGUo
KTsKKyAgICBtX2FkZHJlc3NGb3JDYWxsID0gYWRkcmVzczsKK30KKworSklUQ29kZTo6Q29kZVB0
ciBKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbChWTSYsIEV4ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVj
a01vZGUgYXJpdHlDaGVjaywgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKQoreworICAgIHN3aXRj
aCAoYXJpdHlDaGVjaykgeworICAgIGNhc2UgQXJpdHlDaGVja05vdFJlcXVpcmVkOgorICAgICAg
ICByZXR1cm4gbV9hZGRyZXNzRm9yQ2FsbDsKKyAgICBjYXNlIE11c3RDaGVja0FyaXR5OgorICAg
ICAgICByZXR1cm4gbV9hcml0eUNoZWNrRW50cnlwb2ludC5jb2RlKCk7CisgICAgfQorICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIENvZGVQdHIoKTsKIH0KIAog
dm9pZCogSklUQ29kZTo6ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KQog
ewotICAgIFJFTEVBU0VfQVNTRVJUKG1fZW50cnlwb2ludCk7Ci0gICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KG1fZW50cnlwb2ludC5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkg
KyBvZmZzZXQ7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fYWRkcmVzc0Zv
ckNhbGwuZXhlY3V0YWJsZUFkZHJlc3MoKSkgKyBvZmZzZXQ7CiB9CiAKIHZvaWQqIEpJVENvZGU6
OmRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90KQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1fZW50
cnlwb2ludCk7Ci0KICAgICAvLyBXZSBjYW4ndCBwYXRjaCBGVEwgY29kZSwgeWV0LiBFdmVuIGlm
IHdlIGRpZCwgaXQncyBub3QgY2xlYXIgdGhhdCB3ZSB3b3VsZCBkbyBzbwogICAgIC8vIHRocm91
Z2ggdGhpcyBBUEkuCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTgzLDgg
KzkxLDYgQEAgdm9pZCogSklUQ29kZTo6ZGF0YUFkZHJlc3NBdE9mZnNldChzaXplXwogCiB1bnNp
Z25lZCBKSVRDb2RlOjpvZmZzZXRPZih2b2lkKikKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2Vu
dHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgY3VycmVudGx5IGRvbid0IGhhdmUgdmlzaWJpbGl0eSBp
bnRvIHRoZSBGVEwgY29kZS4KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IHJldHVybiAwOwpAQCAtOTIsOCArOTgsNiBAQCB1bnNpZ25lZCBKSVRDb2RlOjpvZmZzZXRPZih2
b2lkKikKIAogc2l6ZV90IEpJVENvZGU6OnNpemUoKQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1f
ZW50cnlwb2ludCk7Ci0KICAgICAvLyBXZSBkb24ndCBrbm93IHRoZSBzaXplIG9mIEZUTCBjb2Rl
LCB5ZXQuIE1ha2UgYSB3aWxkIGd1ZXNzLiBUaGlzIGlzIG1vc3RseSB1c2VkIGZvcgogICAgIC8v
IEdDIGxvYWQgZXN0aW1hdGVzLgogICAgIHJldHVybiAxMDAwOwpAQCAtMTAxLDggKzEwNSw2IEBA
IHNpemVfdCBKSVRDb2RlOjpzaXplKCkKIAogYm9vbCBKSVRDb2RlOjpjb250YWlucyh2b2lkKikK
IHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgaGF2ZSBu
byBpZGVhIHdoYXQgYWRkcmVzc2VzIHRoZSBGVEwgY29kZSBjb250YWlucywgeWV0LgogICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiREZHQ29tbW9uRGF0YS5oIgogI2luY2x1ZGUgIkZUTE9T
UkV4aXQuaCIKICNpbmNsdWRlICJGVExTdGFja01hcHMuaCIKKyNpbmNsdWRlICJGVExVbndpbmRJ
bmZvLmgiCiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkxMVk1BUEkuaCIKICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZEFycmF5Lmg+CkBAIC00NiwxNyArNDcsMTggQEAgcHVibGljOgog
ICAgIEpJVENvZGUoKTsKICAgICB+SklUQ29kZSgpOwogICAgIAotICAgIENvZGVQdHIgYWRkcmVz
c0ZvckNhbGwoKTsKLSAgICB2b2lkKiBleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBv
ZmZzZXQpOwotICAgIHZvaWQqIGRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCk7Ci0g
ICAgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCogcG9pbnRlckludG9Db2RlKTsKLSAgICBzaXplX3Qg
c2l6ZSgpOwotICAgIGJvb2wgY29udGFpbnModm9pZCopOworICAgIENvZGVQdHIgYWRkcmVzc0Zv
ckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlLCBSZWdpc3RlclByZXNl
cnZhdGlvbk1vZGUpIG92ZXJyaWRlOworICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZz
ZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CisgICAgdm9pZCogZGF0YUFkZHJlc3NBdE9mZnNl
dChzaXplX3Qgb2Zmc2V0KSBvdmVycmlkZTsKKyAgICB1bnNpZ25lZCBvZmZzZXRPZih2b2lkKiBw
b2ludGVySW50b0NvZGUpIG92ZXJyaWRlOworICAgIHNpemVfdCBzaXplKCkgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBjb250YWlucyh2b2lkKikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdm9pZCBpbml0aWFs
aXplRXhpdFRodW5rcyhDb2RlUmVmKTsKICAgICB2b2lkIGFkZEhhbmRsZShQYXNzUmVmUHRyPEV4
ZWN1dGFibGVNZW1vcnlIYW5kbGU+KTsKICAgICB2b2lkIGFkZERhdGFTZWN0aW9uKFJlZkNvdW50
ZWRBcnJheTxMU2VjdGlvbldvcmQ+KTsKLSAgICB2b2lkIGluaXRpYWxpemVDb2RlKENvZGVSZWYg
ZW50cnlwb2ludCk7CisgICAgdm9pZCBpbml0aWFsaXplQXJpdHlDaGVja0VudHJ5cG9pbnQoQ29k
ZVJlZik7CisgICAgdm9pZCBpbml0aWFsaXplQWRkcmVzc0ZvckNhbGwoQ29kZVB0cik7CiAgICAg
CiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPj4mIGhhbmRs
ZXMoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZXM7IH0KICAgICBjb25zdCBWZWN0b3I8UmVmQ291
bnRlZEFycmF5PExTZWN0aW9uV29yZD4+JiBkYXRhU2VjdGlvbnMoKSBjb25zdCB7IHJldHVybiBt
X2RhdGFTZWN0aW9uczsgfQpAQCAtNjksMTEgKzcxLDEzIEBAIHB1YmxpYzoKICAgICBERkc6OkNv
bW1vbkRhdGEgY29tbW9uOwogICAgIFNlZ21lbnRlZFZlY3RvcjxPU1JFeGl0LCA4PiBvc3JFeGl0
OwogICAgIFN0YWNrTWFwcyBzdGFja21hcHM7CisgICAgVW53aW5kSW5mbyB1bndpbmRJbmZvOwog
ICAgIAogcHJpdmF0ZToKICAgICBWZWN0b3I8UmVmQ291bnRlZEFycmF5PExTZWN0aW9uV29yZD4+
IG1fZGF0YVNlY3Rpb25zOwogICAgIFZlY3RvcjxSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRs
ZT4+IG1faGFuZGxlczsKLSAgICBDb2RlUmVmIG1fZW50cnlwb2ludDsKKyAgICBDb2RlUHRyIG1f
YWRkcmVzc0ZvckNhbGw7CisgICAgQ29kZVJlZiBtX2FyaXR5Q2hlY2tFbnRyeXBvaW50OwogICAg
IENvZGVSZWYgbV9leGl0VGh1bmtzOwogfTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExKSVRGaW5hbGl6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
NSw2ICs0NSwyMiBAQCBKSVRGaW5hbGl6ZXI6On5KSVRGaW5hbGl6ZXIoKQogewogfQogCitzaXpl
X3QgSklURmluYWxpemVyOjpjb2RlU2l6ZSgpCit7CisgICAgc2l6ZV90IHJlc3VsdCA9IDA7Cisg
ICAgCisgICAgcmVzdWx0ICs9IGV4aXRUaHVua3NMaW5rQnVmZmVyLT5zaXplKCk7CisgICAgcmVz
dWx0ICs9IGVudHJ5cG9pbnRMaW5rQnVmZmVyLT5zaXplKCk7CisgICAgaWYgKHNpZGVDb2RlTGlu
a0J1ZmZlcikKKyAgICAgICAgcmVzdWx0ICs9IHNpZGVDb2RlTGlua0J1ZmZlci0+c2l6ZSgpOwor
ICAgIHJlc3VsdCArPSBoYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+c2l6ZSgpOworICAgIAor
ICAgIGZvciAodW5zaWduZWQgaSA9IGppdENvZGUtPmhhbmRsZXMoKS5zaXplKCk7IGktLTspCisg
ICAgICAgIHJlc3VsdCArPSBqaXRDb2RlLT5oYW5kbGVzKClbaV0tPnNpemVJbkJ5dGVzKCk7Cisg
ICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXpl
KCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNzMsOSArODksNyBA
QCBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5jdGlvbigpCiAgICAgICAgICAgICBleGl0
VGh1bmtzTGlua0J1ZmZlci0+bGluaygKICAgICAgICAgICAgICAgICBpbmZvLm1fdGh1bmtKdW1w
LAogICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsKAotICAgICAgICAgICAgICAgICAg
ICBtX3BsYW4udm0uZnRsVGh1bmtzLT5nZXRPU1JFeGl0R2VuZXJhdGlvblRodW5rKAotICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wbGFuLnZtLCBMb2NhdGlvbjo6Zm9yU3RhY2ttYXBzKAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZqaXRDb2RlLT5zdGFja21hcHMsIGl0ZXItPnZhbHVl
LmxvY2F0aW9uc1swXSkpLmNvZGUoKSkpOworICAgICAgICAgICAgICAgICAgICBtX3BsYW4udm0u
Z2V0Q1RJU3R1Yihvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKS5jb2RlKCkpKTsKICAg
ICAgICAgfQogICAgICAgICAKICAgICAgICAgaml0Q29kZS0+aW5pdGlhbGl6ZUV4aXRUaHVua3Mo
CkBAIC0xMDIsMTUgKzExNiwyNiBAQCBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5jdGlv
bigpCiAgICAgICAgICAgICAuZXhlY3V0YWJsZU1lbW9yeSgpKTsKICAgICB9CiAgICAgCisgICAg
aWYgKGhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyKSB7CisgICAgICAgIGppdENvZGUtPmFkZEhh
bmRsZShGSU5BTElaRV9ERkdfQ09ERSgKKyAgICAgICAgICAgICpoYW5kbGVFeGNlcHRpb25zTGlu
a0J1ZmZlciwKKyAgICAgICAgICAgICgiRlRMIGV4Y2VwdGlvbiBoYW5kbGVyIGZvciAlcyIsCisg
ICAgICAgICAgICAgICAgdG9DU3RyaW5nKENvZGVCbG9ja1dpdGhKSVRUeXBlKG1fcGxhbi5jb2Rl
QmxvY2suZ2V0KCksIEpJVENvZGU6OkZUTEpJVCkpLmRhdGEoKSkpCisgICAgICAgICAgICAuZXhl
Y3V0YWJsZU1lbW9yeSgpKTsKKyAgICB9CisgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IHdpdGhBcml0eUNoZWNrOwogICAgIGlmIChhcml0eUNoZWNrLmlzU2V0KCkpCiAgICAgICAgIHdp
dGhBcml0eUNoZWNrID0gZW50cnlwb2ludExpbmtCdWZmZXItPmxvY2F0aW9uT2YoYXJpdHlDaGVj
ayk7Ci0gICAgaml0Q29kZS0+aW5pdGlhbGl6ZUNvZGUoCisgICAgaml0Q29kZS0+aW5pdGlhbGl6
ZUFyaXR5Q2hlY2tFbnRyeXBvaW50KAogICAgICAgICBGSU5BTElaRV9ERkdfQ09ERSgKICAgICAg
ICAgICAgICplbnRyeXBvaW50TGlua0J1ZmZlciwKICAgICAgICAgICAgICgiRlRMIGVudHJ5cG9p
bnQgdGh1bmsgZm9yICVzIHdpdGggTExWTSBnZW5lcmF0ZWQgY29kZSBhdCAlcCIsIHRvQ1N0cmlu
ZyhDb2RlQmxvY2tXaXRoSklUVHlwZShtX3BsYW4uY29kZUJsb2NrLmdldCgpLCBKSVRDb2RlOjpG
VExKSVQpKS5kYXRhKCksIGZ1bmN0aW9uKSkpOwogICAgIAotICAgIG1fcGxhbi5jb2RlQmxvY2st
PnNldEpJVENvZGUoaml0Q29kZSwgd2l0aEFyaXR5Q2hlY2spOworICAgIG1fcGxhbi5jb2RlQmxv
Y2stPnNldEpJVENvZGUoaml0Q29kZSk7CisgICAgCisgICAgaWYgKG1fcGxhbi5jb21waWxhdGlv
bikKKyAgICAgICAgbV9wbGFuLnZtLm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+YWRkQ29tcGlsYXRp
b24obV9wbGFuLmNvbXBpbGF0aW9uKTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNDYsMTIgKzQ2LDE0IEBAIHB1YmxpYzoKICAgICBKSVRGaW5hbGl6
ZXIoREZHOjpQbGFuJik7CiAgICAgdmlydHVhbCB+SklURmluYWxpemVyKCk7CiAgICAgCi0gICAg
Ym9vbCBmaW5hbGl6ZSgpOwotICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigpOworICAgIHNpemVf
dCBjb2RlU2l6ZSgpIG92ZXJyaWRlOworICAgIGJvb2wgZmluYWxpemUoKSBvdmVycmlkZTsKKyAg
ICBib29sIGZpbmFsaXplRnVuY3Rpb24oKSBvdmVycmlkZTsKIAogICAgIE93blB0cjxMaW5rQnVm
ZmVyPiBleGl0VGh1bmtzTGlua0J1ZmZlcjsKICAgICBPd25QdHI8TGlua0J1ZmZlcj4gZW50cnlw
b2ludExpbmtCdWZmZXI7CiAgICAgT3duUHRyPExpbmtCdWZmZXI+IHNpZGVDb2RlTGlua0J1ZmZl
cjsKKyAgICBPd25QdHI8TGlua0J1ZmZlcj4gaGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXI7CiAg
ICAgVmVjdG9yPFNsb3dQYXRoQ2FsbD4gc2xvd1BhdGhDYWxsczsgLy8gQ2FsbHMgaW5zaWRlIHRo
ZSBzaWRlIGNvZGUuCiAgICAgVmVjdG9yPE9TUkV4aXRDb21waWxhdGlvbkluZm8+IG9zckV4aXQ7
CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGFyaXR5Q2hlY2s7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZUTEpTQ2FsbC5oIgorCisjaWYgRU5BQkxFKEZUTF9K
SVQpCisKKyNpbmNsdWRlICJERkdOb2RlLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
RlRMIHsKKworSlNDYWxsOjpKU0NhbGwodW5zaWduZWQgc3RhY2ttYXBJRCwgREZHOjpOb2RlKiBu
b2RlKQorICAgIDogbV9zdGFja21hcElEKHN0YWNrbWFwSUQpCisgICAgLCBtX25vZGUobm9kZSkK
KyAgICAsIG1faW5zdHJ1Y3Rpb25PZmZzZXQoMCkKK3sKK30KKwordm9pZCBKU0NhbGw6OmVtaXQo
Q0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoID0g
aml0LmJyYW5jaFB0cldpdGhQYXRjaCgKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwg
R1BSSW5mbzo6cmVnVDAsIG1fdGFyZ2V0VG9DaGVjaywKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKDApKTsKKyAgICAKKyAgICBqaXQubG9hZFB0cigKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNjb3Bl
Q2hhaW4oKSksCisgICAgICAgIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3RvcmU2NCgKKyAg
ICAgICAgR1BSSW5mbzo6cmVnVDEsCisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygKKyAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsCisgICAgICAgICAg
ICBzaXplb2YoUmVnaXN0ZXIpICogKEpTU3RhY2s6OlNjb3BlQ2hhaW4gLSBKU1N0YWNrOjpDYWxs
ZXJGcmFtZUFuZFBDU2l6ZSkpKTsKKyAgICAKKyAgICBtX2Zhc3RDYWxsID0gaml0Lm5lYXJDYWxs
KCk7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOworICAgIAorICAg
IHNsb3dQYXRoLmxpbmsoJmppdCk7CisgICAgbV9zbG93Q2FsbCA9IGppdC5uZWFyQ2FsbCgpOwor
ICAgIAorICAgIGRvbmUubGluaygmaml0KTsKK30KKwordm9pZCBKU0NhbGw6OmxpbmsoVk0mIHZt
LCBMaW5rQnVmZmVyJiBsaW5rQnVmZmVyLCBDYWxsTGlua0luZm8mIGNhbGxJbmZvKQoreworICAg
IFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxpbmtUaHVua0dlbmVyYXRvckZvcigKKyAgICAg
ICAgbV9ub2RlLT5vcCgpID09IERGRzo6Q29uc3RydWN0ID8gQ29kZUZvckNvbnN0cnVjdCA6IENv
ZGVGb3JDYWxsLAorICAgICAgICBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworICAgIAorICAgIGxp
bmtCdWZmZXIubGluaygKKyAgICAgICAgbV9zbG93Q2FsbCwgRnVuY3Rpb25QdHIodm0uZ2V0Q1RJ
U3R1YihnZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7CisgICAgCisgICAg
Y2FsbEluZm8uaXNGVEwgPSB0cnVlOworICAgIGNhbGxJbmZvLmNhbGxUeXBlID0gbV9ub2RlLT5v
cCgpID09IERGRzo6Q29uc3RydWN0ID8gQ2FsbExpbmtJbmZvOjpDb25zdHJ1Y3QgOiBDYWxsTGlu
a0luZm86OkNhbGw7CisgICAgY2FsbEluZm8uY29kZU9yaWdpbiA9IG1fbm9kZS0+Y29kZU9yaWdp
bjsKKyAgICBjYWxsSW5mby5jYWxsUmV0dXJuTG9jYXRpb24gPSBsaW5rQnVmZmVyLmxvY2F0aW9u
T2ZOZWFyQ2FsbChtX3Nsb3dDYWxsKTsKKyAgICBjYWxsSW5mby5ob3RQYXRoQmVnaW4gPSBsaW5r
QnVmZmVyLmxvY2F0aW9uT2YobV90YXJnZXRUb0NoZWNrKTsKKyAgICBjYWxsSW5mby5ob3RQYXRo
T3RoZXIgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbChtX2Zhc3RDYWxsKTsKKyAgICBj
YWxsSW5mby5jYWxsZWVHUFIgPSBHUFJJbmZvOjpyZWdUMDsKK30KKworfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSlNDYWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZU
TEpTQ2FsbF9oCisjZGVmaW5lIEZUTEpTQ2FsbF9oCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKwor
I2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkNhbGxMaW5rSW5mby5oIgorI2lu
Y2x1ZGUgIkNvZGVPcmlnaW4uaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisKK25hbWVzcGFj
ZSBKU0MgeworCituYW1lc3BhY2UgREZHIHsKK3N0cnVjdCBOb2RlOworfQorCituYW1lc3BhY2Ug
RlRMIHsKKworY2xhc3MgSlNDYWxsIHsKK3B1YmxpYzoKKyAgICBKU0NhbGwodW5zaWduZWQgc3Rh
Y2ttYXBJRCwgREZHOjpOb2RlKik7CisgICAgCisgICAgdm9pZCBlbWl0KENDYWxsSGVscGVycyYp
OworICAgIHZvaWQgbGluayhWTSYsIExpbmtCdWZmZXImLCBDYWxsTGlua0luZm8mKTsKKyAgICAK
KyAgICB1bnNpZ25lZCBzdGFja21hcElEKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja21hcElEOyB9
CisgICAgCisgICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgSlNDYWxsJiBvdGhlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2luc3RydWN0aW9uT2Zmc2V0IDwgb3RoZXIubV9pbnN0cnVj
dGlvbk9mZnNldDsKKyAgICB9CisgICAgCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1fc3RhY2tt
YXBJRDsKKyAgICBERkc6Ok5vZGUqIG1fbm9kZTsKKyAgICBDQ2FsbEhlbHBlcnM6OkRhdGFMYWJl
bFB0ciBtX3RhcmdldFRvQ2hlY2s7CisgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIG1fZmFzdENhbGw7
CisgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIG1fc2xvd0NhbGw7CisKK3B1YmxpYzoKKyAgICB1aW50
MzJfdCBtX2luc3RydWN0aW9uT2Zmc2V0OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZU
TAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExKU0NhbGxfaAor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCisjaW5jbHVkZSAiQXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNp
bmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5
cGUuaCIKQEAgLTM3LDEyMSArMzgsMTUwIEBACiAjaW5jbHVkZSAiSklUU3R1YnMuaCIKICNpbmNs
dWRlICJMTFZNQVBJLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIlByb2Zp
bGVyQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKIAogbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwogCi1zdGF0
aWMgdm9pZCBjb21waWxlRW50cnkoQ0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0LnByZXNl
cnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpyZWdUMik7Ci0gICAgaml0LmVtaXRQ
dXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86OnJlZ1QyKTsKLSAgICBqaXQuZW1p
dFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKGppdC5jb2RlQmxvY2soKSwgSlNTdGFjazo6
Q29kZUJsb2NrKTsKLX0KLQogdm9pZCBsaW5rKFN0YXRlJiBzdGF0ZSkKIHsKLSAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jayA9IHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrOworICAgIEdyYXBoJiBncmFw
aCA9IHN0YXRlLmdyYXBoOworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZ3JhcGgubV9jb2Rl
QmxvY2s7CisgICAgVk0mIHZtID0gZ3JhcGgubV92bTsKICAgICAKICAgICAvLyBMTFZNIHdpbGwg
Y3JlYXRlIGl0cyBvd24ganVtcCB0YWJsZXMgYXMgbmVlZGVkLgogICAgIGNvZGVCbG9jay0+Y2xl
YXJTd2l0Y2hKdW1wVGFibGVzKCk7CiAgICAgCi0gICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmZy
YW1lUmVnaXN0ZXJDb3VudCA9IHN0YXRlLmdyYXBoLmZyYW1lUmVnaXN0ZXJDb3VudCgpOwotICAg
IHN0YXRlLmppdENvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ID0gc3Rh
dGUuZ3JhcGgucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpOworICAgIC8vIEZJWE1FOiBO
ZWVkIHRvIGtub3cgdGhlIHJlYWwgZnJhbWUgcmVnaXN0ZXIgY291bnQuCisgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTcyNworICAgIHN0YXRlLmppdENv
ZGUtPmNvbW1vbi5mcmFtZVJlZ2lzdGVyQ291bnQgPSAxMDAwOworICAgIAorICAgIHN0YXRlLmpp
dENvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ID0gZ3JhcGgucmVxdWly
ZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpOwogICAgIAotICAgIGlmICghc3RhdGUuZ3JhcGgubV9p
bmxpbmVDYWxsRnJhbWVzLT5pc0VtcHR5KCkpCi0gICAgICAgIHN0YXRlLmppdENvZGUtPmNvbW1v
bi5pbmxpbmVDYWxsRnJhbWVzID0gc3RkOjptb3ZlKHN0YXRlLmdyYXBoLm1faW5saW5lQ2FsbEZy
YW1lcyk7CisgICAgaWYgKCFncmFwaC5tX2lubGluZUNhbGxGcmFtZXMtPmlzRW1wdHkoKSkKKyAg
ICAgICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmlubGluZUNhbGxGcmFtZXMgPSBzdGQ6Om1vdmUo
Z3JhcGgubV9pbmxpbmVDYWxsRnJhbWVzKTsKICAgICAKICAgICAvLyBDcmVhdGUgdGhlIGVudHJ5
cG9pbnQuIE5vdGUgdGhhdCB3ZSB1c2UgdGhpcyBlbnRyeXBvaW50IHRvdGFsbHkgZGlmZmVyZW50
bHkKICAgICAvLyBkZXBlbmRpbmcgb24gd2hldGhlciB3ZSdyZSBkb2luZyBPU1IgZW50cnkgb3Ig
bm90LgotICAgIC8vIEZJWE1FOiBFeGNlcHQgZm9yIE9TUiBlbnRyeSwgdGhpcyBpcyBhIHRvdGFs
IGtsdWRnZSAtIExMVk0gc2hvdWxkIGp1c3QgdXNlIG91cgotICAgIC8vIGNhbGxpbmcgY29udmVu
dGlvbi4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEz
NjIxCi0gICAgQ0NhbGxIZWxwZXJzIGppdCgmc3RhdGUuZ3JhcGgubV92bSwgY29kZUJsb2NrKTsK
KyAgICBDQ2FsbEhlbHBlcnMgaml0KCZ2bSwgY29kZUJsb2NrKTsKICAgICAKICAgICBPd25QdHI8
TGlua0J1ZmZlcj4gbGlua0J1ZmZlcjsKICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGFyaXR5Q2hl
Y2s7Ci0gICAgc3dpdGNoIChzdGF0ZS5ncmFwaC5tX3BsYW4ubW9kZSkgewotICAgIGNhc2UgRlRM
TW9kZTogewotICAgICAgICBjb21waWxlRW50cnkoaml0KTsKKworICAgIENDYWxsSGVscGVyczo6
QWRkcmVzcyBmcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgLXN0YXRpY19jYXN0PGludDMyX3Q+KHNpemVvZih2
b2lkKikpKTsKICAgICAKLSAgICAgICAgLy8gVGhpcyBwYXJ0IGlzIG9ubHkgbmVjZXNzYXJ5IGZv
ciBmdW5jdGlvbnMuIFdlIGN1cnJlbnRseSBvbmx5IGNvbXBpbGUgZnVuY3Rpb25zLgotICAgICAg
ICAKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBmcm9tQXJpdHlDaGVjayA9IGppdC5sYWJl
bCgpOwotICAgICAgICAKLSAgICAgICAgLy8gUGxhbnQgYSBjaGVjayB0aGF0IHN1ZmZpY2llbnQg
c3BhY2UgaXMgYXZhaWxhYmxlIGluIHRoZSBKU1N0YWNrLgotICAgICAgICAvLyBGSVhNRTogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjkxCi0gICAgICAgIGppdC5h
ZGRQdHIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMih2aXJ0dWFsUmVn
aXN0ZXJGb3JMb2NhbChzdGF0ZS5qaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50
Rm9yRXhpdCkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwKLSAgICAgICAgICAgIEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIENDYWxsSGVs
cGVyczo6SnVtcCBzdGFja0NoZWNrID0gaml0LmJyYW5jaFB0cigKLSAgICAgICAgICAgIENDYWxs
SGVscGVyczo6QWJvdmUsCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVz
cyhzdGF0ZS5ncmFwaC5tX3ZtLmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwKLSAgICAgICAgICAg
IEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBmcm9tU3RhY2tD
aGVjayA9IGppdC5sYWJlbCgpOwotICAgICAgICAKLSAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
RXhlY1N0YXRlKCk7Ci0gICAgICAgIGppdC5tb3ZlKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0YXRlLmdlbmVyYXRlZEZ1
bmN0aW9uKSksCi0gICAgICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICAgICAgaml0
LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgICAgIGppdC5lbWl0R2V0UmV0dXJuUENG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0LmVtaXRH
ZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIpOwotICAgICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BS
SW5mbzo6cmVnVDEpOwotICAgICAgICBqaXQucmV0KCk7Ci0gICAgICAgIAotICAgICAgICBzdGFj
a0NoZWNrLmxpbmsoJmppdCk7Ci0gICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cihjb2RlQmxvY2spLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgICAgICBqaXQu
bW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
LSAgICAgICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihDYWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0J5dGVjb2RlT2Zmc2V0KDApKSwKLSAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6dGFnRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rl
cj4oSlNTdGFjazo6QXJndW1lbnRDb3VudCkpKTsKLSAgICAgICAgaml0LnN0b3JlUHRyKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAmc3RhdGUuZ3JhcGgubV92bS50b3BDYWxsRnJhbWUpOwot
ICAgICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbFN0YWNrQ2hlY2sgPSBqaXQuY2FsbCgpOwot
I2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICAgICAgLy8gRklYTUU6IG5lZWQgdG8gbWFrZSB0aGlz
IGNhbGwgcmVnaXN0ZXIgd2l0aCBleGNlcHRpb24gaGFuZGxpbmcgc29tZWhvdy4gVGhpcyBpcwot
ICAgICAgICAvLyBwYXJ0IG9mIGEgYmlnZ2VyIHByb2JsZW06IEZUTCBzaG91bGQgYmUgYWJsZSB0
byBoYW5kbGUgZXhjZXB0aW9ucy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMzYyMgotICAgICAgICAvLyBVbnRpbCB0aGVuLCB1c2UgYSBKSVQg
QVNTRVJULgotICAgICAgICBqaXQubG9hZDY0KHN0YXRlLmdyYXBoLm1fdm0uYWRkcmVzc09mRXhj
ZXB0aW9uKCksIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgaml0LmppdEFzc2VydElzTnVsbChH
UFJJbmZvOjpyZWdUMCk7Ci0jZW5kaWYKLSAgICAgICAgaml0Lmp1bXAoZnJvbVN0YWNrQ2hlY2sp
OworICAgIGlmIChQcm9maWxlcjo6Q29tcGlsYXRpb24qIGNvbXBpbGF0aW9uID0gZ3JhcGguY29t
cGlsYXRpb24oKSkgeworICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oCisgICAg
ICAgICAgICBQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwKKyAgICAgICAgICAgIHRvQ1N0cmluZygi
R2VuZXJhdGVkIEZUTCBKSVQgY29kZSBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUoY29kZUJs
b2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiLCBpbnN0cnVjdGlvbiBjb3VudCA9ICIsIGdyYXBoLm1f
Y29kZUJsb2NrLT5pbnN0cnVjdGlvbkNvdW50KCksICI6XG4iKSk7CisgICAgICAgIAorICAgICAg
ICBncmFwaC5tX2RvbWluYXRvcnMuY29tcHV0ZUlmTmVjZXNzYXJ5KGdyYXBoKTsKKyAgICAgICAg
Z3JhcGgubV9uYXR1cmFsTG9vcHMuY29tcHV0ZUlmTmVjZXNzYXJ5KGdyYXBoKTsKKyAgICAgICAg
CisgICAgICAgIGNvbnN0IGNoYXIqIHByZWZpeCA9ICIgICAgIjsKKyAgICAgICAgCisgICAgICAg
IER1bXBDb250ZXh0IGR1bXBDb250ZXh0OworICAgICAgICBTdHJpbmdQcmludFN0cmVhbSBvdXQ7
CisgICAgICAgIE5vZGUqIGxhc3ROb2RlID0gMDsKKyAgICAgICAgZm9yIChzaXplX3QgYmxvY2tJ
bmRleCA9IDA7IGJsb2NrSW5kZXggPCBncmFwaC5udW1CbG9ja3MoKTsgKytibG9ja0luZGV4KSB7
CisgICAgICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IGdyYXBoLmJsb2NrKGJsb2NrSW5kZXgp
OworICAgICAgICAgICAgaWYgKCFibG9jaykKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgZ3JhcGguZHVtcEJsb2NrSGVhZGVyKG91dCwgcHJlZml4
LCBibG9jaywgR3JhcGg6OkR1bXBMaXZlUGhpc09ubHksICZkdW1wQ29udGV4dCk7CisgICAgICAg
ICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oUHJvZmlsZXI6Ok9yaWdpblN0YWNrKCks
IG91dC50b0NTdHJpbmcoKSk7CisgICAgICAgICAgICBvdXQucmVzZXQoKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgZm9yIChzaXplX3Qgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgYmxv
Y2stPnNpemUoKTsgKytub2RlSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0g
YmxvY2stPmF0KG5vZGVJbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKCFub2RlLT53aWxsSGF2
ZUNvZGVHZW5Pck9TUigpICYmICFPcHRpb25zOjpzaG93QWxsREZHTm9kZXMoKSkKKyAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
UHJvZmlsZXI6Ok9yaWdpblN0YWNrIHN0YWNrOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIGlmIChub2RlLT5jb2RlT3JpZ2luLmlzU2V0KCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgc3RhY2sgPSBQcm9maWxlcjo6T3JpZ2luU3RhY2soCisgICAgICAgICAgICAgICAgICAgICAg
ICAqdm0ubV9wZXJCeXRlY29kZVByb2ZpbGVyLCBjb2RlQmxvY2ssIG5vZGUtPmNvZGVPcmlnaW4p
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBp
ZiAoZ3JhcGguZHVtcENvZGVPcmlnaW4ob3V0LCBwcmVmaXgsIGxhc3ROb2RlLCBub2RlLCAmZHVt
cENvbnRleHQpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGF0aW9uLT5hZGREZXNjcmlw
dGlvbihzdGFjaywgb3V0LnRvQ1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnJl
c2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIGdyYXBoLmR1bXAob3V0LCBwcmVmaXgsIG5vZGUsICZkdW1wQ29udGV4dCk7CisgICAgICAg
ICAgICAgICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKHN0YWNrLCBvdXQudG9DU3RyaW5n
KCkpOworICAgICAgICAgICAgICAgIG91dC5yZXNldCgpOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIGlmIChub2RlLT5jb2RlT3JpZ2luLmlzU2V0KCkpCisgICAgICAgICAgICAg
ICAgICAgIGxhc3ROb2RlID0gbm9kZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgZHVtcENvbnRleHQuZHVtcChvdXQsIHByZWZpeCk7CisgICAgICAgIGNvbXBp
bGF0aW9uLT5hZGREZXNjcmlwdGlvbihQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwgb3V0LnRvQ1N0
cmluZygpKTsKKyAgICAgICAgb3V0LnJlc2V0KCk7CisgICAgICAgIAorICAgICAgICBvdXQucHJp
bnQoIiAgICBEaXNhc3NlbWJseTpcbiIpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgc3RhdGUuaml0Q29kZS0+aGFuZGxlcygpLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBp
ZiAoc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSAhPSAiX190ZXh0IikKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEV4ZWN1dGFibGVNZW1v
cnlIYW5kbGUqIGhhbmRsZSA9IHN0YXRlLmppdENvZGUtPmhhbmRsZXMoKVtpXS5nZXQoKTsKKyAg
ICAgICAgICAgICAgICBkaXNhc3NlbWJsZSgKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyKGhhbmRsZS0+c3RhcnQoKSksIGhhbmRsZS0+c2l6ZUluQnl0ZXMoKSwKKyAg
ICAgICAgICAgICAgICAgICAgIiAgICAgICIsIG91dCwgTExWTVN1YnNldCk7CisgICAgICAgIH0K
KyAgICAgICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKFByb2ZpbGVyOjpPcmlnaW5TdGFj
aygpLCBvdXQudG9DU3RyaW5nKCkpOworICAgICAgICBvdXQucmVzZXQoKTsKICAgICAgICAgCi0g
ICAgICAgIGFyaXR5Q2hlY2sgPSBqaXQubGFiZWwoKTsKLSAgICAgICAgY29tcGlsZUVudHJ5KGpp
dCk7CisgICAgICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5jb21waWxhdGlvbiA9IGNvbXBpbGF0
aW9uOworICAgIH0KKyAgICAKKyAgICBzd2l0Y2ggKGdyYXBoLm1fcGxhbi5tb2RlKSB7CisgICAg
Y2FzZSBGVExNb2RlOiB7CisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbWFpblBhdGhK
dW1wczsKKyAgICAKICAgICAgICAgaml0LmxvYWQzMigKLSAgICAgICAgICAgIENDYWxsSGVscGVy
czo6cGF5bG9hZEZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQpKSwKKyAgICAgICAgICAgIGZyYW1lLndpdGhPZmZzZXQoc2l6ZW9mKFJlZ2lzdGVy
KSAqIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpLAogICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDEp
OwotICAgICAgICBqaXQuYnJhbmNoMzIoCisgICAgICAgIG1haW5QYXRoSnVtcHMuYXBwZW5kKGpp
dC5icmFuY2gzMigKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWJvdmVPckVxdWFsLCBHUFJJ
bmZvOjpyZWdUMSwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGNvZGVC
bG9jay0+bnVtUGFyYW1ldGVycygpKSkKLSAgICAgICAgICAgIC5saW5rVG8oZnJvbUFyaXR5Q2hl
Y2ssICZqaXQpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY29kZUJs
b2NrLT5udW1QYXJhbWV0ZXJzKCkpKSk7CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1
ZSgpOwogICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICAgICAgaml0LnN0b3JlMzIoCiAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihDYWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0J5dGVj
b2RlT2Zmc2V0KDApKSwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6dGFnRm9yKHN0YXRpY19j
YXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNTdGFjazo6QXJndW1lbnRDb3VudCkpKTsKLSAgICAgICAg
aml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAmc3RhdGUuZ3JhcGgubV92
bS50b3BDYWxsRnJhbWUpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjp0YWdGb3IoSlNTdGFj
azo6QXJndW1lbnRDb3VudCkpOworICAgICAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsICZ2bS50b3BDYWxsRnJhbWUpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6OkNh
bGwgY2FsbEFyaXR5Q2hlY2sgPSBqaXQuY2FsbCgpOwogI2lmICFBU1NFUlRfRElTQUJMRUQKICAg
ICAgICAgLy8gRklYTUU6IG5lZWQgdG8gbWFrZSB0aGlzIGNhbGwgcmVnaXN0ZXIgd2l0aCBleGNl
cHRpb24gaGFuZGxpbmcgc29tZWhvdy4gVGhpcyBpcwogICAgICAgICAvLyBwYXJ0IG9mIGEgYmln
Z2VyIHByb2JsZW06IEZUTCBzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUgZXhjZXB0aW9ucy4KICAg
ICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgog
ICAgICAgICAvLyBVbnRpbCB0aGVuLCB1c2UgYSBKSVQgQVNTRVJULgotICAgICAgICBqaXQubG9h
ZDY0KHN0YXRlLmdyYXBoLm1fdm0uYWRkcmVzc09mRXhjZXB0aW9uKCksIEdQUkluZm86OnJlZ1Qx
KTsKKyAgICAgICAgaml0LmxvYWQ2NCh2bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwgR1BSSW5mbzo6
cmVnVDEpOwogICAgICAgICBqaXQuaml0QXNzZXJ0SXNOdWxsKEdQUkluZm86OnJlZ1QxKTsKICNl
bmRpZgotICAgICAgICBpZiAoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgIT0gR1BSSW5mbzo6cmVn
VDApCi0gICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5m
bzo6cmVnVDApOwotICAgICAgICBqaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6WmVybywg
R1BSSW5mbzo6cmVnVDApLmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgJmppdCk7CisgICAgICAgIGpp
dC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAg
IGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworICAgICAgICBtYWluUGF0aEp1bXBzLmFwcGVu
ZChqaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6WmVybywgR1BSSW5mbzo6cmVnVDApKTsK
KyAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CisgICAgICAgIGppdC5tb3ZlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2bS5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+
cmV0dXJuUENzRm9yKHZtLCBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkpLCBHUFJJbmZvOjpy
ZWdUNSk7CisgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QmFzZUluZGV4KEdQUklu
Zm86OnJlZ1Q1LCBHUFJJbmZvOjpyZWdUMCwgQ0NhbGxIZWxwZXJzOjp0aW1lc1B0cigpKSwgR1BS
SW5mbzo6cmVnVDUpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbEFyaXR5Rml4dXAg
PSBqaXQuY2FsbCgpOwotICAgICAgICBqaXQuanVtcChmcm9tQXJpdHlDaGVjayk7Ci0gICAgICAg
IAotICAgICAgICBsaW5rQnVmZmVyID0gYWRvcHRQdHIobmV3IExpbmtCdWZmZXIoc3RhdGUuZ3Jh
cGgubV92bSwgJmppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7Ci0g
ICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbFN0YWNrQ2hlY2ssIG9wZXJhdGlvblN0YWNrQ2hl
Y2spOworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAgICAgbWFpblBh
dGhKdW1wcy5hcHBlbmQoaml0Lmp1bXAoKSk7CisKKyAgICAgICAgbGlua0J1ZmZlciA9IGFkb3B0
UHRyKG5ldyBMaW5rQnVmZmVyKHZtLCAmaml0LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVz
dFN1Y2NlZWQpKTsKICAgICAgICAgbGlua0J1ZmZlci0+bGluayhjYWxsQXJpdHlDaGVjaywgY29k
ZUJsb2NrLT5tX2lzQ29uc3RydWN0b3IgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrIDog
b3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2spOwotICAgICAgICBsaW5rQnVmZmVyLT5saW5rKGNhbGxB
cml0eUZpeHVwLCBGdW5jdGlvblB0cigoc3RhdGUuZ3JhcGgubV92bS5nZXRDVElTdHViKGFyaXR5
Rml4dXApKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgICAgICBsaW5rQnVmZmVy
LT5saW5rKGNhbGxBcml0eUZpeHVwLCBGdW5jdGlvblB0cigodm0uZ2V0Q1RJU3R1Yihhcml0eUZp
eHVwKSkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgbGlua0J1ZmZlci0+
bGluayhtYWluUGF0aEp1bXBzLCBDb2RlTG9jYXRpb25MYWJlbChiaXR3aXNlX2Nhc3Q8dm9pZCo+
KHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uKSkpOworCisgICAgICAgIHN0YXRlLmppdENvZGUtPmlu
aXRpYWxpemVBZGRyZXNzRm9yQ2FsbChNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0
PHZvaWQqPihzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbikpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgICAgICAKQEAgLTE2MCwxOCArMTkwLDE0IEBAIHZvaWQgbGluayhTdGF0ZSYgc3RhdGUp
CiAgICAgICAgIC8vIHZhbHVlcyBpbnRvIHRoZSBzY3JhdGNoIGJ1ZmZlci4gRXZlcnl0aGluZyBz
aG91bGQgYmUgZ29vZCB0byBnbyAtIGF0IHRoaXMKICAgICAgICAgLy8gcG9pbnQgd2UndmUgZXZl
biBkb25lIHRoZSBzdGFjayBjaGVjay4gQmFzaWNhbGx5IHdlIGp1c3QgaGF2ZSB0byBtYWtlIHRo
ZQogICAgICAgICAvLyBjYWxsIHRvIHRoZSBMTFZNLWdlbmVyYXRlZCBjb2RlLgotICAgICAgICBq
aXQuc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKLSAgICAgICAgaml0Lm1vdmUoCi0gICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
c3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24pKSwKLSAgICAgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQ
UjApOwotICAgICAgICBqaXQuY2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICAgICAgaml0
LmVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6cmVnVDEpOwot
ICAgICAgICBqaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgICAgIGppdC5yZXN0b3JlUmV0dXJuQWRkcmVz
c0JlZm9yZVJldHVybihHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIGppdC5yZXQoKTsKKyAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBzdGFydCA9IGppdC5sYWJlbCgpOworICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG1haW5Q
YXRoSnVtcCA9IGppdC5qdW1wKCk7CiAgICAgICAgIAotICAgICAgICBsaW5rQnVmZmVyID0gYWRv
cHRQdHIobmV3IExpbmtCdWZmZXIoCi0gICAgICAgICAgICBzdGF0ZS5ncmFwaC5tX3ZtLCAmaml0
LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgbGlua0J1
ZmZlciA9IGFkb3B0UHRyKG5ldyBMaW5rQnVmZmVyKHZtLCAmaml0LCBjb2RlQmxvY2ssIEpJVENv
bXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgbGlua0J1ZmZlci0+bGluayhtYWluUGF0
aEp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGUuZ2VuZXJh
dGVkRnVuY3Rpb24pKSk7CisKKyAgICAgICAgc3RhdGUuaml0Q29kZS0+aW5pdGlhbGl6ZUFkZHJl
c3NGb3JDYWxsKGxpbmtCdWZmZXItPmxvY2F0aW9uT2Yoc3RhcnQpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgIkRGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuaCIKICNpbmNsdWRlICJGVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmgiCisjaW5jbHVkZSAiRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCIKICNpbmNs
dWRlICJGVExGb3JPU1JFbnRyeUpJVENvZGUuaCIKICNpbmNsdWRlICJGVExGb3JtYXR0ZWRWYWx1
ZS5oIgogI2luY2x1ZGUgIkZUTElubGluZUNhY2hlU2l6ZS5oIgpAQCAtNTEsNiArNTIsMTAgQEAg
dXNpbmcgbmFtZXNwYWNlIERGRzsKIAogc3RhdGljIHN0ZDo6YXRvbWljPGludD4gY29tcGlsZUNv
dW50ZXI7CiAKKy8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgYW5kIGludHJvZHVjZSBhIHJlYWwg
c3RhY2sgY2hlY2suCisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI1NjUwCitzdGF0aWMgdWludHB0cl90IHN0YWNrTGltaXQ7CisKIC8vIFVzaW5nIHRoaXMgaW5z
dGVhZCBvZiB0eXBlQ2hlY2soKSBoZWxwcyB0byByZWR1Y2UgdGhlIGxvYWQgb24gTExWTSwgYnkg
Y3JlYXRpbmcKIC8vIHNpZ25pZmljYW50bHkgbGVzcyBkZWFkIGNvZGUuCiAjZGVmaW5lIEZUTF9U
WVBFX0NIRUNLKGxvd1ZhbHVlLCBoaWdoVmFsdWUsIHR5cGVzUGFzc2VkVGhyb3VnaCwgZmFpbENv
bmRpdGlvbikgZG8geyBcCkBAIC05MiwxOSArOTcsMjAgQEAgcHVibGljOgogICAgICAgICAgICAg
bGx2bS0+TW9kdWxlQ3JlYXRlV2l0aE5hbWVJbkNvbnRleHQobmFtZS5kYXRhKCksIG1fZnRsU3Rh
dGUuY29udGV4dCk7CiAgICAgICAgIAogICAgICAgICBtX2Z0bFN0YXRlLmZ1bmN0aW9uID0gYWRk
RnVuY3Rpb24oCi0gICAgICAgICAgICBtX2Z0bFN0YXRlLm1vZHVsZSwgbmFtZS5kYXRhKCksIGZ1
bmN0aW9uVHlwZShtX291dC5pbnQ2NCwgbV9vdXQuaW50UHRyKSk7CisgICAgICAgICAgICBtX2Z0
bFN0YXRlLm1vZHVsZSwgbmFtZS5kYXRhKCksIGZ1bmN0aW9uVHlwZShtX291dC5pbnQ2NCkpOwog
ICAgICAgICBzZXRGdW5jdGlvbkNhbGxpbmdDb252KG1fZnRsU3RhdGUuZnVuY3Rpb24sIExMVk1D
Q2FsbENvbnYpOworICAgICAgICBpZiAoaXNYODYoKSAmJiBPcHRpb25zOjpsbHZtRGlzYWxsb3dB
VlgoKSkgeworICAgICAgICAgICAgLy8gQVZYIG1ha2VzIFY4L3JheXRyYWNlIDgwJSBzbG93ZXIu
IEl0IG1ha2VzIEtyYWtlbi9hdWRpby1vc2NpbGxhdG9yIDQuNXgKKyAgICAgICAgICAgIC8vIHNs
b3dlci4gSXQgc2hvdWxkIGJlIGRpc2FibGVkLgorICAgICAgICAgICAgYWRkVGFyZ2V0RGVwZW5k
ZW50RnVuY3Rpb25BdHRyKG1fZnRsU3RhdGUuZnVuY3Rpb24sICJ0YXJnZXQtZmVhdHVyZXMiLCAi
LWF2eCIpOworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBtX291dC5pbml0aWFsaXplKG1f
ZnRsU3RhdGUubW9kdWxlLCBtX2Z0bFN0YXRlLmZ1bmN0aW9uLCBtX2hlYXBzKTsKICAgICAgICAg
Ci0gICAgICAgIG1fcHJvbG9ndWUgPSBhcHBlbmRCYXNpY0Jsb2NrKG1fZnRsU3RhdGUuY29udGV4
dCwgbV9mdGxTdGF0ZS5mdW5jdGlvbik7Ci0gICAgICAgIG1fb3V0LmFwcGVuZFRvKG1fcHJvbG9n
dWUpOwotICAgICAgICBjcmVhdGVQaGlWYXJpYWJsZXMoKTsKLSAgICAgICAgCi0gICAgICAgIG1f
Y2FsbEZyYW1lID0gbV9vdXQucGFyYW0oMCk7Ci0gICAgICAgIG1fdGFnVHlwZU51bWJlciA9IG1f
b3V0LmNvbnN0SW50NjQoVGFnVHlwZU51bWJlcik7Ci0gICAgICAgIG1fdGFnTWFzayA9IG1fb3V0
LmNvbnN0SW50NjQoVGFnTWFzayk7Ci0gICAgICAgIAorICAgICAgICBtX3Byb2xvZ3VlID0gRlRM
X05FV19CTE9DSyhtX291dCwgKCJQcm9sb2d1ZSIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgc3Rh
Y2tPdmVyZmxvdyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3RhY2sgb3ZlcmZsb3ciKSk7Cisg
ICAgICAgIG1faGFuZGxlRXhjZXB0aW9ucyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiSGFuZGxl
IEV4Y2VwdGlvbnMiKSk7CisKICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSAw
OyBibG9ja0luZGV4IDwgbV9ncmFwaC5udW1CbG9ja3MoKTsgKytibG9ja0luZGV4KSB7CiAgICAg
ICAgICAgICBtX2hpZ2hCbG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAg
ICAgICBpZiAoIW1faGlnaEJsb2NrKQpAQCAtMTEyLDggKzExOCw0MiBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBtX2Jsb2Nrcy5hZGQobV9oaWdoQmxvY2ssIEZUTF9ORVdfQkxPQ0sobV9vdXQsICgi
QmxvY2sgIiwgKm1faGlnaEJsb2NrKSkpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBt
X291dC5hcHBlbmRUbyhtX3Byb2xvZ3VlKTsKLSAgICAgICAgbV9vdXQuanVtcChsb3dCbG9jayht
X2dyYXBoLmJsb2NrKDApKSk7CisgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1fcHJvbG9ndWUsIHN0
YWNrT3ZlcmZsb3cpOworICAgICAgICBjcmVhdGVQaGlWYXJpYWJsZXMoKTsKKyAgICAgICAgTFZh
bHVlIGNhcHR1cmVkQWxsb2NhID0gbV9vdXQuYWxsb2NhKGFycmF5VHlwZShtX291dC5pbnQ2NCwg
bV9ncmFwaC5tX25leHRNYWNoaW5lTG9jYWwpKTsKKyAgICAgICAgbV9jYXB0dXJlZCA9IG1fb3V0
LmFkZCgKKyAgICAgICAgICAgIG1fb3V0LnB0clRvSW50KGNhcHR1cmVkQWxsb2NhLCBtX291dC5p
bnRQdHIpLAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIobV9ncmFwaC5tX25leHRNYWNo
aW5lTG9jYWwgKiBzaXplb2YoUmVnaXN0ZXIpKSk7CisgICAgICAgIAorICAgICAgICAvLyBXZSBz
aG91bGQgbm90IGNyZWF0ZSBhbnkgYWxsb2NhJ3MgYWZ0ZXIgdGhpcyBwb2ludCwgc2luY2UgdGhl
eSB3aWxsIGNlYXNlIHRvCisgICAgICAgIC8vIGJlIG1lbTJyZWcgY2FuZGlkYXRlcy4KKyAgICAg
ICAgCisgICAgICAgIG1fZnRsU3RhdGUuY2FwdHVyZWRTdGFja21hcElEID0gbV9zdGFja21hcElE
cysrOworICAgICAgICBtX291dC5jYWxsKAorICAgICAgICAgICAgbV9vdXQuc3RhY2ttYXBJbnRy
aW5zaWMoKSwgbV9vdXQuY29uc3RJbnQ2NChtX2Z0bFN0YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCks
CisgICAgICAgICAgICBtX291dC5pbnQzMlplcm8sIGNhcHR1cmVkQWxsb2NhKTsKKyAgICAgICAg
CisgICAgICAgIG1fY2FsbEZyYW1lID0gbV9vdXQucHRyVG9JbnQoCisgICAgICAgICAgICBtX291
dC5jYWxsKG1fb3V0LmZyYW1lQWRkcmVzc0ludHJpbnNpYygpLCBtX291dC5pbnQzMlplcm8pLCBt
X291dC5pbnRQdHIpOworICAgICAgICBtX3RhZ1R5cGVOdW1iZXIgPSBtX291dC5jb25zdEludDY0
KFRhZ1R5cGVOdW1iZXIpOworICAgICAgICBtX3RhZ01hc2sgPSBtX291dC5jb25zdEludDY0KFRh
Z01hc2spOworICAgICAgICAKKyAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuY29uc3RJbnRQ
dHIoY29kZUJsb2NrKCkpLCBhZGRyZXNzRm9yKEpTU3RhY2s6OkNvZGVCbG9jaykpOworICAgICAg
ICBtX291dC5icmFuY2goCisgICAgICAgICAgICBtX291dC5iZWxvdyhtX2NhbGxGcmFtZSwgbV9v
dXQubG9hZFB0cihtX291dC5hYnNvbHV0ZSgmc3RhY2tMaW1pdCkpKSwKKyAgICAgICAgICAgIHN0
YWNrT3ZlcmZsb3csIGxvd0Jsb2NrKG1fZ3JhcGguYmxvY2soMCkpKTsKKyAgICAgICAgCisgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKHN0YWNrT3ZlcmZsb3csIG1faGFuZGxlRXhjZXB0aW9ucyk7Cisg
ICAgICAgIC8vIEZJWE1FOiBEbyBhIHJlYWwgc3RhY2sgY2hlY2sgYW5kIHRocm93IHRoZSBleGNl
cHRpb24gYXBwcm9wcmlhdGVseS4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNTY1MAorICAgICAgICBtX291dC5jcmFzaCgpOworICAgICAgICAK
KyAgICAgICAgbV9vdXQuYXBwZW5kVG8obV9oYW5kbGVFeGNlcHRpb25zLCBsb3dCbG9jayhtX2dy
YXBoLmJsb2NrKDApKSk7CisgICAgICAgIG1fZnRsU3RhdGUuaGFuZGxlRXhjZXB0aW9uU3RhY2tt
YXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsKKyAgICAgICAgbV9vdXQuY2FsbCgKKyAgICAgICAgICAg
IG1fb3V0LnN0YWNrbWFwSW50cmluc2ljKCksIG1fb3V0LmNvbnN0SW50NjQobV9mdGxTdGF0ZS5o
YW5kbGVFeGNlcHRpb25TdGFja21hcElEKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIo
TWFjcm9Bc3NlbWJsZXI6Om1heEp1bXBSZXBsYWNlbWVudFNpemUoKSkpOworICAgICAgICBtX291
dC51bnJlYWNoYWJsZSgpOwogICAgICAgICAKICAgICAgICAgVmVjdG9yPEJhc2ljQmxvY2sqPiBk
ZXB0aEZpcnN0OwogICAgICAgICBtX2dyYXBoLmdldEJsb2Nrc0luRGVwdGhGaXJzdE9yZGVyKGRl
cHRoRmlyc3QpOwpAQCAtMjI2LDYgKzI2Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICh2ZXJi
b3NlQ29tcGlsYXRpb25FbmFibGVkKCkpCiAgICAgICAgICAgICBkYXRhTG9nKCJMb3dlcmluZyAi
LCBtX25vZGUsICJcbiIpOwogICAgICAgICAKKyAgICAgICAgbV9hdmFpbGFibGVSZWNvdmVyaWVz
LnJlc2l6ZSgwKTsKKyAgICAgICAgCiAgICAgICAgIGJvb2wgc2hvdWxkRXhlY3V0ZUVmZmVjdHMg
PSBtX2ludGVycHJldGVyLnN0YXJ0RXhlY3V0aW5nKG1fbm9kZSk7CiAgICAgICAgIAogICAgICAg
ICBzd2l0Y2ggKG1fbm9kZS0+b3AoKSkgewpAQCAtMjY1LDE5ICszMDcsMTcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIGNvbXBpbGVWYWx1ZUFkZCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQXJpdGhBZGQ6Ci0gICAgICAgICAgICBjb21waWxlQWRkU3ViKCk7Ci0gICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcml0aFN1YjoKLSAgICAgICAgICAgIGNvbXBpbGVB
ZGRTdWIoKTsKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aEFkZE9yU3ViKCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBBcml0aE11bDoKICAgICAgICAgICAgIGNvbXBpbGVBcml0
aE11bCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhEaXY6Ci0gICAg
ICAgICAgICBjb21waWxlQXJpdGhEaXZNb2QoKTsKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aERp
digpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhNb2Q6Ci0gICAgICAg
ICAgICBjb21waWxlQXJpdGhEaXZNb2QoKTsKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aE1vZCgp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhNaW46CiAgICAgICAgIGNh
c2UgQXJpdGhNYXg6CkBAIC0yODYsNiArMzI2LDE1IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2Ug
QXJpdGhBYnM6CiAgICAgICAgICAgICBjb21waWxlQXJpdGhBYnMoKTsKICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFyaXRoU2luOgorICAgICAgICAgICAgY29tcGlsZUFyaXRoU2lu
KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcml0aENvczoKKyAgICAgICAg
ICAgIGNvbXBpbGVBcml0aENvcygpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QXJpdGhTcXJ0OgorICAgICAgICAgICAgY29tcGlsZUFyaXRoU3FydCgpOworICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6CiAgICAgICAgICAgICBjb21waWxlQXJp
dGhOZWdhdGUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzIyLDYgKzM3MSw5IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgQ2hlY2tGdW5jdGlvbjoKICAgICAgICAgICAgIGNvbXBpbGVDaGVj
a0Z1bmN0aW9uKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVja0V4ZWN1
dGFibGU6CisgICAgICAgICAgICBjb21waWxlQ2hlY2tFeGVjdXRhYmxlKCk7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgogICAgICAgICAgICAg
Y29tcGlsZUFycmF5aWZ5VG9TdHJ1Y3R1cmUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzM0
LDYgKzM4Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgR2V0QnlJZDoKICAgICAgICAgICAg
IGNvbXBpbGVHZXRCeUlkKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQdXRC
eUlkRGlyZWN0OgogICAgICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgICAgICBjb21waWxlUHV0
QnlJZCgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zNzIsOSArNDI1LDE4IEBAIHByaXZhdGU6
CiAgICAgICAgIGNhc2UgTmV3QXJyYXlCdWZmZXI6CiAgICAgICAgICAgICBjb21waWxlTmV3QXJy
YXlCdWZmZXIoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5ld0FycmF5V2l0
aFNpemU6CisgICAgICAgICAgICBjb21waWxlTmV3QXJyYXlXaXRoU2l6ZSgpOworICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgICAg
ICAgICBjb21waWxlQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoKTsKICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIFRvU3RyaW5nOgorICAgICAgICAgICAgY29tcGlsZVRvU3RyaW5nKCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNYWtlUm9wZToKKyAgICAgICAgICAg
IGNvbXBpbGVNYWtlUm9wZSgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3Ry
aW5nQ2hhckF0OgogICAgICAgICAgICAgY29tcGlsZVN0cmluZ0NoYXJBdCgpOwogICAgICAgICAg
ICAgYnJlYWs7CkBAIC0zOTYsNiArNDU4LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgTm90
aWZ5V3JpdGU6CiAgICAgICAgICAgICBjb21waWxlTm90aWZ5V3JpdGUoKTsKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEdldENhbGxlZToKKyAgICAgICAgICAgIGNvbXBpbGVHZXRD
YWxsZWUoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdldFNjb3BlOgorICAg
ICAgICAgICAgY29tcGlsZUdldFNjb3BlKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBHZXRNeVNjb3BlOgogICAgICAgICAgICAgY29tcGlsZUdldE15U2NvcGUoKTsKICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtNDY2LDYgKzUzNCwxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IEludDUyVG9WYWx1ZToKICAgICAgICAgICAgIGNvbXBpbGVJbnQ1MlRvVmFsdWUoKTsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENoZWNrQXJndW1lbnRzTm90Q3JlYXRlZDoKKyAg
ICAgICAgICAgIGNvbXBpbGVDaGVja0FyZ3VtZW50c05vdENyZWF0ZWQoKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENvdW50RXhlY3V0aW9uOgorICAgICAgICAgICAgY29tcGls
ZUNvdW50RXhlY3V0aW9uKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdG9y
ZUJhcnJpZXI6CiAgICAgICAgICAgICBjb21waWxlU3RvcmVCYXJyaWVyKCk7CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTQ4Miw2ICs1NTYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFZhcmlh
YmxlV2F0Y2hwb2ludDoKICAgICAgICAgY2FzZSBGdW5jdGlvblJlZW50cnlXYXRjaHBvaW50Ogog
ICAgICAgICBjYXNlIFR5cGVkQXJyYXlXYXRjaHBvaW50OgorICAgICAgICBjYXNlIEFsbG9jYXRp
b25Qcm9maWxlV2F0Y2hwb2ludDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTgxNSwyNCAr
ODkwLDUzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQx
KCkpLCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CiAgICAgfQogICAgIAotICAgIHZv
aWQgY29tcGlsZUFkZFN1YigpCisgICAgdm9pZCBjb21waWxlQXJpdGhBZGRPclN1YigpCiAgICAg
ewogICAgICAgICBib29sIGlzU3ViID0gIG1fbm9kZS0+b3AoKSA9PSBBcml0aFN1YjsKICAgICAg
ICAgc3dpdGNoIChtX25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewogICAgICAgICBjYXNlIEludDMy
VXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIo
KSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gaXNTdWIgPyBtX291dC5zdWIobGVmdCwg
cmlnaHQpIDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KTsKIAogICAgICAgICAgICAgaWYgKCFzaG91
bGRDaGVja092ZXJmbG93KG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAg
c2V0SW50MzIocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBzZXRJbnQzMihpc1N1YiA/IG1fb3V0
LnN1YihsZWZ0LCByaWdodCkgOiBtX291dC5hZGQobGVmdCwgcmlnaHQpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93
ID0gaXNTdWIgPyBtX291dC5zdWJXaXRoT3ZlcmZsb3czMihsZWZ0LCByaWdodCkgOiBtX291dC5h
ZGRXaXRoT3ZlcmZsb3czMihsZWZ0LCByaWdodCk7CisgICAgICAgICAgICBMVmFsdWUgcmVzdWx0
OworICAgICAgICAgICAgaWYgKCFpc1N1YikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1f
b3V0LmFkZFdpdGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDIoKSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAg
ICBtX25vZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBsZWZ0LCBWYWx1ZUZvcm1hdEludDMyKTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkpKSB7
CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDEoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAg
ICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgcmlnaHQsIFZhbHVlRm9y
bWF0SW50MzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQuc3ViV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQp
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkb2VzS2lsbChtX25vZGUt
PmNoaWxkMigpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgPSBsZWZ0IC0gcmln
aHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0IC0gbGVmdCA9IC1yaWdodAorICAgICAg
ICAgICAgICAgICAgICAvLyByaWdodCA9IGxlZnQgLSByZXN1bHQKKyAgICAgICAgICAgICAgICAg
ICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUt
PmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQsIG1f
b3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBWYWx1ZUZvcm1hdEludDMyKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkpKSB7CisgICAgICAg
ICAgICAgICAgICAgIC8vIHJlc3VsdCA9IGxlZnQgLSByaWdodAorICAgICAgICAgICAgICAgICAg
ICAvLyByZXN1bHQgKyByaWdodCA9IGxlZnQKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxh
YmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgpLCBB
ZGRSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShy
ZXN1bHQsIDApLCByaWdodCwgVmFsdWVGb3JtYXRJbnQzMik7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUo
KSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93LCAxKSk7Ci0gICAgICAgICAgICBzZXRJ
bnQzMihyZXN1bHQpOworICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCks
IDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDEpKTsKKyAgICAgICAgICAgIHNldEludDMy
KG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgICAgICAKQEAgLTg0OCwxMSArOTUyLDQxIEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SW50NTIobV9ub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dJbnQ1MihtX25vZGUtPmNoaWxk
MigpKTsKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBpc1N1YiA/IG1fb3V0LnN1YihsZWZ0
LCByaWdodCkgOiBtX291dC5hZGQobGVmdCwgcmlnaHQpOwogCi0gICAgICAgICAgICBMVmFsdWUg
b3ZlcmZsb3cgPSBpc1N1YiA/IG1fb3V0LnN1YldpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KSA6
IG1fb3V0LmFkZFdpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KTsKLSAgICAgICAgICAgIHNwZWN1
bGF0ZShJbnQ1Mk92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVy
ZmxvdywgMSkpOwotICAgICAgICAgICAgc2V0SW50NTIocmVzdWx0KTsKKyAgICAgICAgICAgIExW
YWx1ZSByZXN1bHQ7CisgICAgICAgICAgICBpZiAoIWlzU3ViKSB7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9vdXQuYWRkV2l0aE92ZXJmbG93NjQobGVmdCwgcmlnaHQpOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMigpKSkg
eworICAgICAgICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQyKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIGxlZnQsIFZhbHVlRm9y
bWF0SW50NTIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9lc0tpbGwobV9ub2RlLT5j
aGlsZDEoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisg
ICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgpLCBTdWJSZWNvdmVyeSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCByaWdo
dCwgVmFsdWVGb3JtYXRJbnQ1Mik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5zdWJXaXRoT3ZlcmZsb3c2NChs
ZWZ0LCByaWdodCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRvZXNL
aWxsKG1fbm9kZS0+Y2hpbGQyKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCA9
IGxlZnQgLSByaWdodAorICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgLSBsZWZ0ID0gLXJp
Z2h0CisgICAgICAgICAgICAgICAgICAgIC8vIHJpZ2h0ID0gbGVmdCAtIHJlc3VsdAorICAgICAg
ICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1fbm9kZS0+Y2hpbGQyKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgbGVmdCwgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIFZhbHVlRm9ybWF0SW50NTIp
OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDEoKSkp
IHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0ID0gbGVmdCAtIHJpZ2h0CisgICAgICAg
ICAgICAgICAgICAgIC8vIHJlc3VsdCArIHJpZ2h0ID0gbGVmdAorICAgICAgICAgICAgICAgICAg
ICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+
Y2hpbGQxKCksIEFkZFJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuZXh0
cmFjdFZhbHVlKHJlc3VsdCwgMCksIHJpZ2h0LCBWYWx1ZUZvcm1hdEludDUyKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNwZWN1bGF0ZShJbnQ1Mk92
ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDEpKTsKKyAg
ICAgICAgICAgIHNldEludDUyKG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTg3NiwxMSArMTAxMCwx
NSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEludDMyVXNlOiB7CiAgICAgICAgICAgICBMVmFs
dWUgbGVmdCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVl
IHJpZ2h0ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBMVmFsdWUg
cmVzdWx0ID0gbV9vdXQubXVsKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgTFZhbHVlIHJlc3VsdDsKIAotICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3co
bV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAgIGlmICghc2hvdWxkQ2hlY2tPdmVy
ZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291
dC5tdWwobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAg
TFZhbHVlIG92ZXJmbG93UmVzdWx0ID0gbV9vdXQubXVsV2l0aE92ZXJmbG93MzIobGVmdCwgcmln
aHQpOwogICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBt
X291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVpl
cm8obV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKQEAgLTkwNCwxMSArMTA0MiwxMCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgSW50NTJLaW5kIGtpbmQ7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9
IGxvd1doaWNoZXZlckludDUyKG1fbm9kZS0+Y2hpbGQxKCksIGtpbmQpOwogICAgICAgICAgICAg
TFZhbHVlIHJpZ2h0ID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDIoKSwgb3Bwb3NpdGUoa2luZCkp
OwotICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0Lm11bChsZWZ0LCByaWdodCk7Ci0K
IAogICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93UmVzdWx0ID0gbV9vdXQubXVsV2l0aE92ZXJm
bG93NjQobGVmdCwgcmlnaHQpOwogICAgICAgICAgICAgc3BlY3VsYXRlKEludDUyT3ZlcmZsb3cs
IG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7Cisg
ICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVz
dWx0LCAwKTsKIAogICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9k
ZS0+YXJpdGhNb2RlKCkpKSB7CiAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2Ug
PSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTXVsIHNsb3cgY2FzZSIpKTsKQEAgLTkzOSwx
NiArMTA3NiwxNiBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBjb21w
aWxlQXJpdGhEaXZNb2QoKQorICAgIHZvaWQgY29tcGlsZUFyaXRoRGl2KCkKICAgICB7CiAgICAg
ICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBJbnQz
MlVzZTogewogICAgICAgICAgICAgTFZhbHVlIG51bWVyYXRvciA9IGxvd0ludDMyKG1fbm9kZS0+
Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIGRlbm9taW5hdG9yID0gbG93SW50MzIobV9u
b2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIHVu
c2FmZURlbm9taW5hdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCB1bnNh
ZmUgZGVub21pbmF0b3IiKSk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24g
PSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIGNvbnRpbnVhdGlvbiIpKTsKLSAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIGRvbmUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRo
RGl2TW9kIGRvbmUiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayB1bnNhZmVEZW5vbWluYXRv
ciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgdW5zYWZlIGRlbm9taW5hdG9yIikp
OworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyht
X291dCwgKCJBcml0aERpdiBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9j
ayBkb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiBkb25lIikpOwogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDM+IHJlc3VsdHM7CiAg
ICAgICAgICAgICAKQEAgLTk5MSw4ICsxMTI4LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgZG9uZSk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewot
ICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHplcm9OdW1lcmF0b3IgPSBGVExfTkVXX0JMT0NL
KG1fb3V0LCAoIkFyaXRoRGl2TW9kIHplcm8gbnVtZXJhdG9yIikpOwotICAgICAgICAgICAgICAg
IExCYXNpY0Jsb2NrIG51bWVyYXRvckNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQs
ICgiQXJpdGhEaXZNb2QgbnVtZXJhdG9yIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgICAg
ICBMQmFzaWNCbG9jayB6ZXJvTnVtZXJhdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0
aERpdiB6ZXJvIG51bWVyYXRvciIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBudW1l
cmF0b3JDb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IG51bWVy
YXRvciBjb250aW51YXRpb24iKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
bV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVybzMyKG51bWVyYXRvciksIHplcm9OdW1lcmF0b3IsIG51
bWVyYXRvckNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICAgICAgCkBAIC0xMDA2LDE3ICsxMTQz
LDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obnVtZXJhdG9y
Q29udGludWF0aW9uLCBpbm5lckxhc3ROZXh0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IAotICAgICAgICAgICAgTFZhbHVlIGRpdk1vZFJlc3VsdCA9IG1fbm9kZS0+b3AoKSA9PSBBcml0
aERpdgotICAgICAgICAgICAgICAgID8gbV9vdXQuZGl2KG51bWVyYXRvciwgZGVub21pbmF0b3Ip
Ci0gICAgICAgICAgICAgICAgOiBtX291dC5yZW0obnVtZXJhdG9yLCBkZW5vbWluYXRvcik7Cisg
ICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuZGl2KG51bWVyYXRvciwgZGVub21pbmF0
b3IpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxvdyht
X25vZGUtPmFyaXRoTW9kZSgpKSkgewogICAgICAgICAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAg
ICAgICAgICAgICAgICAgT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwKLSAgICAgICAgICAgICAgICAg
ICAgbV9vdXQubm90RXF1YWwobV9vdXQubXVsKGRpdk1vZFJlc3VsdCwgZGVub21pbmF0b3IpLCBu
dW1lcmF0b3IpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQubm90RXF1YWwobV9vdXQubXVs
KHJlc3VsdCwgZGVub21pbmF0b3IpLCBudW1lcmF0b3IpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIAotICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKGRpdk1vZFJl
c3VsdCkpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHJlc3VsdCkp
OwogICAgICAgICAgICAgbV9vdXQuanVtcChkb25lKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8oZG9uZSwgbGFzdE5leHQpOwpAQCAtMTAyNiw5ICsxMTYxLDggQEAg
cHJpdmF0ZToKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgTnVtYmVyVXNl
OiB7Ci0gICAgICAgICAgICBMVmFsdWUgQzEgPSBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSk7
Ci0gICAgICAgICAgICBMVmFsdWUgQzIgPSBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSk7Ci0g
ICAgICAgICAgICBzZXREb3VibGUobV9ub2RlLT5vcCgpID09IEFyaXRoRGl2ID8gbV9vdXQuZG91
YmxlRGl2KEMxLCBDMikgOiBtX291dC5kb3VibGVSZW0oQzEsIEMyKSk7CisgICAgICAgICAgICBz
ZXREb3VibGUobV9vdXQuZG91YmxlRGl2KAorICAgICAgICAgICAgICAgIGxvd0RvdWJsZShtX25v
ZGUtPmNoaWxkMSgpKSwgbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC0xMDM4LDYgKzExNzIsOTkgQEAg
cHJpdmF0ZToKICAgICAgICAgfQogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVBcml0aE1v
ZCgpCisgICAgeworICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7Cisg
ICAgICAgIGNhc2UgSW50MzJVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSBudW1lcmF0b3IgPSBs
b3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBkZW5vbWluYXRv
ciA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBMQmFzaWNCbG9jayB1bnNhZmVEZW5vbWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgi
QXJpdGhNb2QgdW5zYWZlIGRlbm9taW5hdG9yIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sg
Y29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBjb250aW51YXRp
b24iKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJBcml0aE1vZCBkb25lIikpOworICAgICAgICAgICAgCisgICAgICAgICAgICBWZWN0b3I8
VmFsdWVGcm9tQmxvY2ssIDM+IHJlc3VsdHM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExW
YWx1ZSBhZGp1c3RlZERlbm9taW5hdG9yID0gbV9vdXQuYWRkKGRlbm9taW5hdG9yLCBtX291dC5p
bnQzMk9uZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5h
Ym92ZShhZGp1c3RlZERlbm9taW5hdG9yLCBtX291dC5pbnQzMk9uZSksIGNvbnRpbnVhdGlvbiwg
dW5zYWZlRGVub21pbmF0b3IpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9j
ayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKHVuc2FmZURlbm9taW5hdG9yLCBjb250aW51YXRp
b24pOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgbmVnMlRvVGhlMzEgPSBtX291
dC5jb25zdEludDMyKC0yMTQ3NDgzNjQ3LTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICAv
LyBGSVhNRTogLTJeMzEgLyAtMSB3aWxsIGFjdHVhbGx5IHlpZWxkIG5lZ2F0aXZlIHplcm8sIHNv
IHdlIGNvdWxkIGhhdmUgYQorICAgICAgICAgICAgLy8gc2VwYXJhdGUgY2FzZSBmb3IgdGhhdC4g
QnV0IGl0IHByb2JhYmx5IGRvZXNuJ3QgbWF0dGVyIHNvIG11Y2guCisgICAgICAgICAgICBpZiAo
c2hvdWxkQ2hlY2tPdmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgeworICAgICAgICAgICAg
ICAgIExWYWx1ZSBjb25kID0gbV9vdXQuYml0T3IobV9vdXQuaXNaZXJvMzIoZGVub21pbmF0b3Ip
LCBtX291dC5lcXVhbChudW1lcmF0b3IsIG5lZzJUb1RoZTMxKSk7CisgICAgICAgICAgICAgICAg
c3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIGNvbmQpOworICAgICAgICAgICAgICAg
IG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgLy8gVGhpcyBpcyB0aGUgY2FzZSB3aGVyZSB3ZSBjb252ZXJ0IHRoZSByZXN1bHQg
dG8gYW4gaW50IGFmdGVyIHdlJ3JlIGRvbmUuIFNvLAorICAgICAgICAgICAgICAgIC8vIGlmIHRo
ZSBkZW5vbWluYXRvciBpcyB6ZXJvLCB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIHJlc3VsdCBz
aG91bGQgYmUgemVyby4KKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZGVub21pbmF0b3IgaXMg
bm90IHplcm8gKGkuZS4gaXQncyAtMSBiZWNhdXNlIHdlJ3JlIGd1YXJkZWQgYnkgdGhlCisgICAg
ICAgICAgICAgICAgLy8gY2hlY2sgYWJvdmUpIGFuZCB0aGUgbnVtZXJhdG9yIGlzIC0yXjMxIHRo
ZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUgLTJeMzEuCisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgbW9kQnlaZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJB
cml0aE1vZCBtb2R1bG8gYnkgemVybyIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBu
b3RNb2RCeVplcm8gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG5vdCBtb2R1bG8g
YnkgemVybyIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBuZWcyVG9UaGUzMUJ5TmVn
MSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgLTJeMzEvLTEiKSk7CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVybzMyKGRl
bm9taW5hdG9yKSwgbW9kQnlaZXJvLCBub3RNb2RCeVplcm8pOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1vZEJ5WmVybywgbm90TW9kQnlaZXJvKTsK
KyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJa
ZXJvKSk7CisgICAgICAgICAgICAgICAgbV9vdXQuanVtcChkb25lKTsKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3RNb2RCeVplcm8sIG5lZzJUb1Ro
ZTMxQnlOZWcxKTsKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwobnVt
ZXJhdG9yLCBuZWcyVG9UaGUzMSksIG5lZzJUb1RoZTMxQnlOZWcxLCBjb250aW51YXRpb24pOwor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5lZzJUb1Ro
ZTMxQnlOZWcxLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5k
KG1fb3V0LmFuY2hvcihtX291dC5pbnQzMlplcm8pKTsKKyAgICAgICAgICAgICAgICBtX291dC5q
dW1wKGRvbmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGRvbmUpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBMVmFsdWUgcmVtYWluZGVyID0gbV9vdXQucmVtKG51bWVyYXRvciwgZGVub21pbmF0b3IpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9u
b2RlLT5hcml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBuZWdhdGl2
ZU51bWVyYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbmVnYXRpdmUgbnVt
ZXJhdG9yIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG51bWVyYXRvckNvbnRpbnVh
dGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbnVtZXJhdG9yIGNvbnRpbnVh
dGlvbiIpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2go
CisgICAgICAgICAgICAgICAgICAgIG1fb3V0Lmxlc3NUaGFuKG51bWVyYXRvciwgbV9vdXQuaW50
MzJaZXJvKSwKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVOdW1lcmF0b3IsIG51bWVyYXRv
ckNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgTEJhc2lj
QmxvY2sgaW5uZXJMYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5lZ2F0aXZlTnVtZXJhdG9yLCBu
dW1lcmF0b3JDb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IHNwZWN1bGF0ZShOZWdhdGl2ZVplcm8sIG5vVmFsdWUoKSwgMCwgbV9vdXQuaXNaZXJvMzIocmVt
YWluZGVyKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuanVtcChu
dW1lcmF0b3JDb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IG1fb3V0LmFwcGVuZFRvKG51bWVyYXRvckNvbnRpbnVhdGlvbiwgaW5uZXJMYXN0TmV4dCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1f
b3V0LmFuY2hvcihyZW1haW5kZXIpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgc2V0SW50MzIobV9vdXQucGhpKG1fb3V0LmludDMy
LCByZXN1bHRzKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAgICAg
CisgICAgICAgIGNhc2UgTnVtYmVyVXNlOiB7CisgICAgICAgICAgICBzZXREb3VibGUoCisgICAg
ICAgICAgICAgICAgbV9vdXQuZG91YmxlUmVtKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSwg
bG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKICAgICB2b2lkIGNvbXBpbGVBcml0aE1pbk9yTWF4KCkKICAgICB7CiAgICAgICAgIHN3
aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKQEAgLTExMTQsNiArMTM0MSwxMiBAQCBw
cml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisKKyAgICB2b2lk
IGNvbXBpbGVBcml0aFNpbigpIHsgc2V0RG91YmxlKG1fb3V0LmRvdWJsZVNpbihsb3dEb3VibGUo
bV9ub2RlLT5jaGlsZDEoKSkpKTsgfQorCisgICAgdm9pZCBjb21waWxlQXJpdGhDb3MoKSB7IHNl
dERvdWJsZShtX291dC5kb3VibGVDb3MobG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7IH0K
KworICAgIHZvaWQgY29tcGlsZUFyaXRoU3FydCgpIHsgc2V0RG91YmxlKG1fb3V0LmRvdWJsZVNx
cnQobG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7IH0KICAgICAKICAgICB2b2lkIGNvbXBp
bGVBcml0aE5lZ2F0ZSgpCiAgICAgewpAQCAtMTEyMSwxNiArMTM1NCwxOCBAQCBwcml2YXRlOgog
ICAgICAgICBjYXNlIEludDMyVXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dJ
bnQzMihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgTFZhbHVl
IHJlc3VsdCA9IG1fb3V0Lm5lZyh2YWx1ZSk7Ci0gICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tP
dmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAgICAgICAgICAgIGlmICghc2hv
dWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIG5lZ2F0ZS13aXRoLW92ZXJmbG93IGludHJpbnNp
Yy4gSG9wZWZ1bGx5IHRoaXMKLSAgICAgICAgICAgICAgICAgICAgLy8gZG9lcyB0aGUgdHJpY2ss
IHRob3VnaC4KLSAgICAgICAgICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93UmVzdWx0ID0gbV9v
dXQuc3ViV2l0aE92ZXJmbG93MzIobV9vdXQuaW50MzJaZXJvLCB2YWx1ZSk7Ci0gICAgICAgICAg
ICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0
VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LnRl
c3RJc1plcm8zMih2YWx1ZSwgbV9vdXQuY29uc3RJbnQzMigweDdmZmZmZmZmKSkpOwotCisgICAg
ICAgICAgICBMVmFsdWUgcmVzdWx0OworICAgICAgICAgICAgaWYgKCFzaG91bGRDaGVja092ZXJm
bG93KG1fbm9kZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0
Lm5lZyh2YWx1ZSk7CisgICAgICAgICAgICBlbHNlIGlmICghc2hvdWxkQ2hlY2tOZWdhdGl2ZVpl
cm8obV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBo
YXZlIGEgbmVnYXRlLXdpdGgtb3ZlcmZsb3cgaW50cmluc2ljLiBIb3BlZnVsbHkgdGhpcworICAg
ICAgICAgICAgICAgIC8vIGRvZXMgdGhlIHRyaWNrLCB0aG91Z2guCisgICAgICAgICAgICAgICAg
TFZhbHVlIG92ZXJmbG93UmVzdWx0ID0gbV9vdXQuc3ViV2l0aE92ZXJmbG93MzIobV9vdXQuaW50
MzJaZXJvLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1Zh
bHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMSkpOworICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMCk7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxv
dywgbm9WYWx1ZSgpLCAwLCBtX291dC50ZXN0SXNaZXJvMzIodmFsdWUsIG1fb3V0LmNvbnN0SW50
MzIoMHg3ZmZmZmZmZikpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5uZWcodmFs
dWUpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBzZXRJbnQzMihyZXN1bHQpOwpAQCAt
MTE1MSw3ICsxMzg2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxv
d0ludDUyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93UmVz
dWx0ID0gbV9vdXQuc3ViV2l0aE92ZXJmbG93NjQobV9vdXQuaW50NjRaZXJvLCB2YWx1ZSk7CiAg
ICAgICAgICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5l
eHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKLSAgICAgICAgICAgIExWYWx1ZSByZXN1
bHQgPSBtX291dC5uZWcodmFsdWUpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0
LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMCk7CiAgICAgICAgICAgICBzcGVjdWxhdGUo
TmVnYXRpdmVaZXJvLCBub1ZhbHVlKCksIDAsIG1fb3V0LmlzWmVybzY0KHJlc3VsdCkpOwogICAg
ICAgICAgICAgc2V0SW50NTIocmVzdWx0KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTI3NSw2
ICsxNTEwLDE3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChjZWxsLCB3
ZWFrUG9pbnRlcihtX25vZGUtPmZ1bmN0aW9uKCkpKSk7CiAgICAgfQogICAgIAorICAgIHZvaWQg
Y29tcGlsZUNoZWNrRXhlY3V0YWJsZSgpCisgICAgeworICAgICAgICBMVmFsdWUgY2VsbCA9IGxv
d0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIAorICAgICAgICBzcGVjdWxhdGUoCisg
ICAgICAgICAgICBCYWRFeGVjdXRhYmxlLCBqc1ZhbHVlVmFsdWUoY2VsbCksIG1fbm9kZS0+Y2hp
bGQxKCkubm9kZSgpLAorICAgICAgICAgICAgbV9vdXQubm90RXF1YWwoCisgICAgICAgICAgICAg
ICAgbV9vdXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTRnVuY3Rpb25fZXhlY3V0YWJsZSksCisg
ICAgICAgICAgICAgICAgd2Vha1BvaW50ZXIobV9ub2RlLT5leGVjdXRhYmxlKCkpKSk7CisgICAg
fQorICAgIAogICAgIHZvaWQgY29tcGlsZUFycmF5aWZ5VG9TdHJ1Y3R1cmUoKQogICAgIHsKICAg
ICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwpAQCAtMTM3MCw4
ICsxNjE2LDggQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIExWYWx1ZSBjYWxsID0gbV9v
dXQuY2FsbCgKICAgICAgICAgICAgIG1fb3V0LnBhdGNocG9pbnRJbnQ2NEludHJpbnNpYygpLAot
ICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihzdGFja21hcElEKSwgbV9vdXQuY29uc3RJbnQz
MihzaXplT2ZHZXRCeUlkKCkpLAotICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgpLCBt
X291dC5jb25zdEludDMyKDIpLCBtX2NhbGxGcmFtZSwgYmFzZSk7CisgICAgICAgICAgICBtX291
dC5jb25zdEludDY0KHN0YWNrbWFwSUQpLCBtX291dC5jb25zdEludDMyKHNpemVPZkdldEJ5SWQo
KSksCisgICAgICAgICAgICBjb25zdE51bGwobV9vdXQucmVmOCksIG1fb3V0LmNvbnN0SW50MzIo
MSksIGJhc2UpOwogICAgICAgICBzZXRJbnN0cnVjdGlvbkNhbGxpbmdDb252ZW50aW9uKGNhbGws
IExMVk1BbnlSZWdDYWxsQ29udik7CiAgICAgICAgIHNldEpTVmFsdWUoY2FsbCk7CiAgICAgICAg
IApAQCAtMTM5NSw4ICsxNjQxLDggQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIExWYWx1
ZSBjYWxsID0gbV9vdXQuY2FsbCgKICAgICAgICAgICAgIG1fb3V0LnBhdGNocG9pbnRWb2lkSW50
cmluc2ljKCksCi0gICAgICAgICAgICBtX291dC5jb25zdEludDMyKHN0YWNrbWFwSUQpLCBtX291
dC5jb25zdEludDMyKHNpemVPZlB1dEJ5SWQoKSksCi0gICAgICAgICAgICBjb25zdE51bGwobV9v
dXQucmVmOCksIG1fb3V0LmNvbnN0SW50MzIoMyksIG1fY2FsbEZyYW1lLCBiYXNlLCB2YWx1ZSk7
CisgICAgICAgICAgICBtX291dC5jb25zdEludDY0KHN0YWNrbWFwSUQpLCBtX291dC5jb25zdElu
dDMyKHNpemVPZlB1dEJ5SWQoKSksCisgICAgICAgICAgICBjb25zdE51bGwobV9vdXQucmVmOCks
IG1fb3V0LmNvbnN0SW50MzIoMiksIGJhc2UsIHZhbHVlKTsKICAgICAgICAgc2V0SW5zdHJ1Y3Rp
b25DYWxsaW5nQ29udmVudGlvbihjYWxsLCBMTFZNQW55UmVnQ2FsbENvbnYpOwogICAgICAgICAK
ICAgICAgICAgbV9mdGxTdGF0ZS5wdXRCeUlkcy5hcHBlbmQoUHV0QnlJZERlc2NyaXB0b3IoCkBA
IC0xNDYzLDIwICsxNzA5LDIwIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJyYXk6OkludDMy
OgogICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6CiAgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRp
Z3VvdXM6IHsKLSAgICAgICAgICAgIHNldEludDMyKG1fb3V0LmxvYWQzMihsb3dTdG9yYWdlKG1f
bm9kZS0+Y2hpbGQyKCkpLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsKKyAgICAg
ICAgICAgIHNldEludDMyKG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGxvd1N0b3JhZ2UobV9ub2Rl
LT5jaGlsZDIoKSksIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheTo6
U3RyaW5nOiB7CiAgICAgICAgICAgICBMVmFsdWUgc3RyaW5nID0gbG93Q2VsbChtX25vZGUtPmNo
aWxkMSgpKTsKLSAgICAgICAgICAgIHNldEludDMyKG1fb3V0LmxvYWQzMihzdHJpbmcsIG1faGVh
cHMuSlNTdHJpbmdfbGVuZ3RoKSk7CisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzJO
b25OZWdhdGl2ZShzdHJpbmcsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgaWYgKGlzVHlwZWRWaWV3KG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5
cGUoKSkpIHsKICAgICAgICAgICAgICAgICBzZXRJbnQzMigKLSAgICAgICAgICAgICAgICAgICAg
bV9vdXQubG9hZDMyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNBcnJheUJ1
ZmZlclZpZXdfbGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMk5vbk5l
Z2F0aXZlKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZp
ZXdfbGVuZ3RoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgCkBAIC0xNTE4LDcgKzE3NjQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVx
dWFsKAotICAgICAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyKHN0b3JhZ2UsIG1f
aGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpLAorICAgICAgICAgICAgICAgICAgICBpbmRl
eCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVi
bGljTGVuZ3RoKSksCiAgICAgICAgICAgICAgICAgc2xvd0Nhc2UsIGZhc3RDYXNlKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRU
byhmYXN0Q2FzZSwgc2xvd0Nhc2UpOwpAQCAtMTU2NSw3ICsxODExLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1f
b3V0LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQz
MihzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKKyAgICAgICAgICAg
ICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMu
QnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpLAogICAgICAgICAgICAgICAgIHNsb3dDYXNlLCBpbkJv
dW5kcyk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0g
bV9vdXQuYXBwZW5kVG8oaW5Cb3VuZHMsIGJveFBhdGgpOwpAQCAtMTY4Nyw2ICsxOTMzLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgRWRnZSBjaGlsZDIgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9k
ZSwgMSk7CiAgICAgICAgIEVkZ2UgY2hpbGQzID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUs
IDIpOwogICAgICAgICBFZGdlIGNoaWxkNCA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAz
KTsKKyAgICAgICAgRWRnZSBjaGlsZDUgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgNCk7
CiAgICAgICAgIAogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7
CiAgICAgICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKQEAgLTE4MDEsNiArMjA0OCw5IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuemVyb0V4dChpbmRleCwg
bV9vdXQuaW50UHRyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5jb25zdElu
dFB0cihsb2dFbGVtZW50U2l6ZSh0eXBlKSkpKSk7CiAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgTFR5cGUgcmVmVHlwZTsKKyAgICAgICAgICAgICAgICBMVmFsdWUgdmFsdWVUb1N0
b3JlOworICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChpc0ludCh0eXBlKSkg
ewogICAgICAgICAgICAgICAgICAgICBMVmFsdWUgaW50VmFsdWU7CiAgICAgICAgICAgICAgICAg
ICAgIHN3aXRjaCAoY2hpbGQzLnVzZUtpbmQoKSkgewpAQCAtMTg3NiwzNCArMjEyNiw1MyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgc3dpdGNo
IChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIDE6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBtX291dC5zdG9yZTgobV9vdXQuaW50Q2FzdChpbnRWYWx1ZSwg
bV9vdXQuaW50OCksIHBvaW50ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0
b3JlID0gbV9vdXQuaW50Q2FzdChpbnRWYWx1ZSwgbV9vdXQuaW50OCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZWZUeXBlID0gbV9vdXQucmVmODsKICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBtX291dC5zdG9yZTE2KG1fb3V0LmludENhc3QoaW50VmFsdWUsIG1fb3V0LmludDE2KSwg
cG9pbnRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvU3RvcmUgPSBtX291dC5p
bnRDYXN0KGludFZhbHVlLCBtX291dC5pbnQxNik7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZWZUeXBlID0gbV9vdXQucmVmMTY7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICAgICAgY2FzZSA0OgotICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQu
c3RvcmUzMihpbnRWYWx1ZSwgcG9pbnRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1
ZVRvU3RvcmUgPSBpbnRWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlR5cGUgPSBt
X291dC5yZWYzMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0g
ZWxzZSAvKiAhaXNJbnQodHlwZSkgKi8geworICAgICAgICAgICAgICAgICAgICBMVmFsdWUgdmFs
dWUgPSBsb3dEb3VibGUoY2hpbGQzKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBl
KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUZsb2F0MzI6CisgICAgICAgICAgICAg
ICAgICAgICAgICB2YWx1ZVRvU3RvcmUgPSBtX291dC5mcENhc3QodmFsdWUsIG1fb3V0LmZsb2F0
VHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZUeXBlID0gbV9vdXQucmVmRmxvYXQ7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBUeXBlRmxvYXQ2NDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9TdG9yZSA9IHZh
bHVlOworICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZkRvdWJsZTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBBU1NFUlQoaXNGbG9hdCh0eXBlKSk7Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKGNoaWxkMyk7Ci0gICAg
ICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBUeXBlRmxv
YXQzMjoKLSAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmVGbG9hdChtX291dC5mcENhc3Qo
dmFsdWUsIG1fb3V0LmZsb2F0VHlwZSksIHBvaW50ZXIpOwotICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFR5cGVGbG9hdDY0OgotICAgICAgICAgICAgICAg
ICAgICBtX291dC5zdG9yZURvdWJsZSh2YWx1ZSwgcG9pbnRlcik7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgaWYgKG1fbm9k
ZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKQorICAgICAgICAgICAgICAgICAgICBtX291dC5z
dG9yZSh2YWx1ZVRvU3RvcmUsIHBvaW50ZXIsIHJlZlR5cGUpOworICAgICAgICAgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpc0luQm91bmRzID0gRlRMX05F
V19CTE9DSyhtX291dCwgKCJQdXRCeVZhbCB0eXBlZCBhcnJheSBpbiBib3VuZHMgY2FzZSIpKTsK
KyAgICAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJQdXRCeVZhbCB0eXBlZCBhcnJheSBjb250aW51YXRpb24iKSk7CisgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAg
ICAgICAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoaW5kZXgsIGxvd0ludDMyKGNo
aWxkNSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWF0aW9uLCBpc0luQm91bmRz
KTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNJbkJvdW5kcywgY29udGludWF0aW9uKTsKKyAg
ICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmUodmFsdWVUb1N0b3JlLCBwb2ludGVyLCByZWZU
eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29u
dGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApA
QCAtMjA2MCw2ICsyMzI5LDEwOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQuY29uc3RJ
bnRQdHIobV9ub2RlLT5udW1Db25zdGFudHMoKSkpKTsKICAgICB9CiAgICAgCisgICAgdm9pZCBj
b21waWxlTmV3QXJyYXlXaXRoU2l6ZSgpCisgICAgeworICAgICAgICBMVmFsdWUgcHVibGljTGVu
Z3RoID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIAorICAgICAgICBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2Rl
LT5jb2RlT3JpZ2luKTsKKyAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmpl
Y3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbigKKyAgICAg
ICAgICAgIG1fbm9kZS0+aW5kZXhpbmdUeXBlKCkpOworICAgICAgICAKKyAgICAgICAgaWYgKCFn
bG9iYWxPYmplY3QtPmlzSGF2aW5nQUJhZFRpbWUoKSAmJiAhaGFzQXJyYXlTdG9yYWdlKG1fbm9k
ZS0+aW5kZXhpbmdUeXBlKCkpKSB7CisgICAgICAgICAgICBBU1NFUlQoCisgICAgICAgICAgICAg
ICAgaGFzVW5kZWNpZGVkKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCisgICAgICAgICAgICAg
ICAgfHwgaGFzSW50MzIoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkKKyAgICAgICAgICAgICAg
ICB8fCBoYXNEb3VibGUoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkKKyAgICAgICAgICAgICAg
ICB8fCBoYXNDb250aWd1b3VzKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpKTsKKworICAgICAg
ICAgICAgTEJhc2ljQmxvY2sgZmFzdENhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0Fy
cmF5V2l0aFNpemUgZmFzdCBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFyZ2VD
YXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGxhcmdlIGNhc2Ui
KSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBmYWlsQ2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBmYWlsIGNhc2UiKSk7CisgICAgICAgICAgICBMQmFzaWNC
bG9jayBzbG93Q2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBz
bG93IGNhc2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgY29udGludWF0aW9uIikpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICAgICAgbV9v
dXQuYWJvdmVPckVxdWFsKHB1YmxpY0xlbmd0aCwgbV9vdXQuY29uc3RJbnQzMihNSU5fU1BBUlNF
X0FSUkFZX0lOREVYKSksCisgICAgICAgICAgICAgICAgbGFyZ2VDYXNlLCBmYXN0Q2FzZSk7CisK
KyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZmFzdENh
c2UsIGxhcmdlQ2FzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFdlIGRvbid0IHJv
dW5kIHVwIHRvIEJBU0VfVkVDVE9SX0xFTiBmb3IgbmV3IEFycmF5KGJsYWgpLgorICAgICAgICAg
ICAgTFZhbHVlIHZlY3Rvckxlbmd0aCA9IHB1YmxpY0xlbmd0aDsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgTFZhbHVlIHBheWxvYWRTaXplID0KKyAgICAgICAgICAgICAgICBtX291dC5zaGwo
bV9vdXQuemVyb0V4dCh2ZWN0b3JMZW5ndGgsIG1fb3V0LmludFB0ciksIG1fb3V0LmNvbnN0SW50
UHRyKDMpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGJ1dHRlcmZseVNpemUg
PSBtX291dC5hZGQoCisgICAgICAgICAgICAgICAgcGF5bG9hZFNpemUsIG1fb3V0LmNvbnN0SW50
UHRyKHNpemVvZihJbmRleGluZ0hlYWRlcikpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
TFZhbHVlIGVuZE9mU3RvcmFnZSA9IGFsbG9jYXRlQmFzaWNTdG9yYWdlQW5kR2V0RW5kKGJ1dHRl
cmZseVNpemUsIGZhaWxDYXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGJ1
dHRlcmZseSA9IG1fb3V0LnN1YihlbmRPZlN0b3JhZ2UsIHBheWxvYWRTaXplKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgTFZhbHVlIG9iamVjdCA9IGFsbG9jYXRlT2JqZWN0PEpTQXJyYXk+
KAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHN0cnVjdHVyZSksIGJ1dHRlcmZs
eSwgZmFpbENhc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5zdG9yZTMyKHB1
YmxpY0xlbmd0aCwgYnV0dGVyZmx5LCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpOwor
ICAgICAgICAgICAgbV9vdXQuc3RvcmUzMih2ZWN0b3JMZW5ndGgsIGJ1dHRlcmZseSwgbV9oZWFw
cy5CdXR0ZXJmbHlfdmVjdG9yTGVuZ3RoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYg
KGhhc0RvdWJsZShtX25vZGUtPmluZGV4aW5nVHlwZSgpKSkgeworICAgICAgICAgICAgICAgIExC
YXNpY0Jsb2NrIGluaXRMb29wID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhT
aXplIGRvdWJsZSBpbml0IGxvb3AiKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgaW5p
dERvbmUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgZG91YmxlIGlu
aXQgZG9uZSIpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWYWx1ZUZyb21C
bG9jayBvcmlnaW5hbEluZGV4ID0gbV9vdXQuYW5jaG9yKHZlY3Rvckxlbmd0aCk7CisgICAgICAg
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgb3JpZ2luYWxQb2ludGVyID0gbV9vdXQuYW5jaG9yKGJ1
dHRlcmZseSk7CisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdFplcm8zMih2
ZWN0b3JMZW5ndGgpLCBpbml0TG9vcCwgaW5pdERvbmUpOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGluaXRMYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlu
aXRMb29wLCBpbml0RG9uZSk7CisgICAgICAgICAgICAgICAgTFZhbHVlIGluZGV4ID0gbV9vdXQu
cGhpKG1fb3V0LmludDMyLCBvcmlnaW5hbEluZGV4KTsKKyAgICAgICAgICAgICAgICBMVmFsdWUg
cG9pbnRlciA9IG1fb3V0LnBoaShtX291dC5pbnRQdHIsIG9yaWdpbmFsUG9pbnRlcik7CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmU2NCgKKyAgICAgICAgICAg
ICAgICAgICAgbV9vdXQuY29uc3RJbnQ2NChiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oUU5hTikpLAor
ICAgICAgICAgICAgICAgICAgICBUeXBlZFBvaW50ZXIobV9oZWFwcy5pbmRleGVkRG91YmxlUHJv
cGVydGllcy5hdEFueUluZGV4KCksIHBvaW50ZXIpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICBMVmFsdWUgbmV4dEluZGV4ID0gbV9vdXQuc3ViKGluZGV4LCBtX291dC5pbnQz
Mk9uZSk7CisgICAgICAgICAgICAgICAgYWRkSW5jb21pbmcoaW5kZXgsIG1fb3V0LmFuY2hvcihu
ZXh0SW5kZXgpKTsKKyAgICAgICAgICAgICAgICBhZGRJbmNvbWluZyhwb2ludGVyLCBtX291dC5h
bmNob3IobV9vdXQuYWRkKHBvaW50ZXIsIG1fb3V0LmludFB0ckVpZ2h0KSkpOworICAgICAgICAg
ICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3RaZXJvMzIobmV4dEluZGV4KSwgaW5pdExvb3As
IGluaXREb25lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhpbml0RG9uZSwgaW5pdExhc3ROZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihv
YmplY3QpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhsYXJnZUNhc2UsIGZhaWxDYXNlKTsKKyAg
ICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGxhcmdlU3RydWN0dXJlID0gbV9vdXQuYW5jaG9yKG1f
b3V0LmNvbnN0SW50UHRyKAorICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1
Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aEFycmF5U3RvcmFn
ZSkpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoc2xvd0Nhc2UpOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBtX291dC5hcHBlbmRUbyhmYWlsQ2FzZSwgc2xvd0Nhc2UpOworICAgICAgICAg
ICAgVmFsdWVGcm9tQmxvY2sgZmFpbFN0cnVjdHVyZSA9IG1fb3V0LmFuY2hvcihtX291dC5jb25z
dEludFB0cihzdHJ1Y3R1cmUpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoc2xvd0Nhc2UpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGlu
dWF0aW9uKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVWYWx1ZSA9IG1fb3V0LnBoaSgK
KyAgICAgICAgICAgICAgICBtX291dC5pbnRQdHIsIGxhcmdlU3RydWN0dXJlLCBmYWlsU3RydWN0
dXJlKTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNo
b3Iodm1DYWxsKAorICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25OZXdB
cnJheVdpdGhTaXplKSwKKyAgICAgICAgICAgICAgICBtX2NhbGxGcmFtZSwgc3RydWN0dXJlVmFs
dWUsIHB1YmxpY0xlbmd0aCkpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24p
OworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24s
IGxhc3ROZXh0KTsKKyAgICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKG1fb3V0LmludFB0
ciwgZmFzdFJlc3VsdCwgc2xvd1Jlc3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBMVmFsdWUgc3RydWN0dXJlVmFsdWUgPSBtX291dC5zZWxl
Y3QoCisgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwocHVibGljTGVuZ3RoLCBtX291dC5j
b25zdEludDMyKE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpKSwKKyAgICAgICAgICAgIG1fb3V0LmNv
bnN0SW50UHRyKAorICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVG
b3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aEFycmF5U3RvcmFnZSkpLAor
ICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIoc3RydWN0dXJlKSk7CisgICAgICAgIHNldEpT
VmFsdWUodm1DYWxsKG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplKSwg
bV9jYWxsRnJhbWUsIHN0cnVjdHVyZVZhbHVlLCBwdWJsaWNMZW5ndGgpKTsKKyAgICB9CisgICAg
CiAgICAgdm9pZCBjb21waWxlQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoKQogICAgIHsKICAgICAg
ICAgU3RydWN0dXJlVHJhbnNpdGlvbkRhdGEmIGRhdGEgPSBtX25vZGUtPnN0cnVjdHVyZVRyYW5z
aXRpb25EYXRhKCk7CkBAIC0yMTAyLDYgKzI0NzQsMTYwIEBAIHByaXZhdGU6CiAgICAgICAgIHNl
dFN0b3JhZ2UocmVzdWx0KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlVG9TdHJpbmco
KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgewor
ICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZTogeworICAgICAgICAgICAgTFZhbHVlIGNlbGwg
PSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5n
T2JqZWN0Rm9yQ2VsbChtX25vZGUtPmNoaWxkMSgpLCBjZWxsKTsKKyAgICAgICAgICAgIG1faW50
ZXJwcmV0ZXIuZmlsdGVyKG1fbm9kZS0+Y2hpbGQxKCksIFNwZWNTdHJpbmdPYmplY3QpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9o
ZWFwcy5KU1dyYXBwZXJPYmplY3RfaW50ZXJuYWxWYWx1ZSkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09i
amVjdFVzZTogeworICAgICAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hp
bGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IG1fb3V0LmxvYWRQdHIoY2Vs
bCwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
TEJhc2ljQmxvY2sgbm90U3RyaW5nID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJUb1N0cmluZyBT
dHJpbmdPclN0cmluZ09iamVjdCBub3Qgc3RyaW5nIGNhc2UiKSk7CisgICAgICAgICAgICBMQmFz
aWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIFN0
cmluZ09yU3RyaW5nT2JqZWN0IGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgVmFsdWVGcm9tQmxvY2sgc2ltcGxlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGNlbGwpOwor
ICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgIG1fb3V0LmVxdWFsKHN0
cnVjdHVyZSwgbV9vdXQuY29uc3RJbnRQdHIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSwK
KyAgICAgICAgICAgICAgICBjb250aW51YXRpb24sIG5vdFN0cmluZyk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90U3Ry
aW5nLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9y
U3RydWN0dXJlKG1fbm9kZS0+Y2hpbGQxKCksIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBWYWx1
ZUZyb21CbG9jayB1bmJveGVkUmVzdWx0ID0gbV9vdXQuYW5jaG9yKAorICAgICAgICAgICAgICAg
IG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5KU1dyYXBwZXJPYmplY3RfaW50ZXJuYWxWYWx1
ZSkpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAg
CisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAg
ICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKG1fb3V0LmludDY0LCBzaW1wbGVSZXN1bHQs
IHVuYm94ZWRSZXN1bHQpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9pbnRlcnByZXRl
ci5maWx0ZXIobV9ub2RlLT5jaGlsZDEoKSwgU3BlY1N0cmluZyB8IFNwZWNTdHJpbmdPYmplY3Qp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAg
Y2FzZSBDZWxsVXNlOgorICAgICAgICBjYXNlIFVudHlwZWRVc2U6IHsKKyAgICAgICAgICAgIExW
YWx1ZSB2YWx1ZTsKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9
PSBDZWxsVXNlKQorICAgICAgICAgICAgICAgIHZhbHVlID0gbG93Q2VsbChtX25vZGUtPmNoaWxk
MSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGxvd0pTVmFs
dWUobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Js
b2NrIGlzQ2VsbCA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiVG9TdHJpbmcgQ2VsbFVzZS9VbnR5
cGVkVXNlIGlzIGNlbGwiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RTdHJpbmcgPSBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIENlbGxVc2UvVW50eXBlZFVzZSBub3Qgc3Ry
aW5nIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJUb1N0cmluZyBDZWxsVXNlL1VudHlwZWRVc2UgY29udGludWF0aW9uIikp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgaXNDZWxsUHJlZGljYXRlOworICAg
ICAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UpCisgICAg
ICAgICAgICAgICAgaXNDZWxsUHJlZGljYXRlID0gbV9vdXQuYm9vbGVhblRydWU7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgaXNDZWxsUHJlZGljYXRlID0gdGhpcy0+aXNDZWxs
KHZhbHVlKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0NlbGxQcmVkaWNhdGUsIGlzQ2Vs
bCwgbm90U3RyaW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFz
dE5leHQgPSBtX291dC5hcHBlbmRUbyhpc0NlbGwsIG5vdFN0cmluZyk7CisgICAgICAgICAgICBW
YWx1ZUZyb21CbG9jayBzaW1wbGVSZXN1bHQgPSBtX291dC5hbmNob3IodmFsdWUpOworICAgICAg
ICAgICAgTFZhbHVlIGlzU3RyaW5nUHJlZGljYXRlOworICAgICAgICAgICAgaWYgKG1fbm9kZS0+
Y2hpbGQxKCktPnByZWRpY3Rpb24oKSAmIFNwZWNTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICBp
c1N0cmluZ1ByZWRpY2F0ZSA9IG1fb3V0LmVxdWFsKAorICAgICAgICAgICAgICAgICAgICBtX291
dC5sb2FkUHRyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUpLAorICAgICAgICAgICAg
ICAgICAgICBtX291dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOwor
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgaXNTdHJpbmdQcmVkaWNhdGUgPSBt
X291dC5ib29sZWFuRmFsc2U7CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNTdHJpbmdQcmVk
aWNhdGUsIGNvbnRpbnVhdGlvbiwgbm90U3RyaW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8obm90U3RyaW5nLCBjb250aW51YXRpb24pOworICAgICAgICAgICAg
TFZhbHVlIG9wZXJhdGlvbjsKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBDZWxsVXNlKQorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IG1fb3V0Lm9wZXJh
dGlvbihvcGVyYXRpb25Ub1N0cmluZ09uQ2VsbCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgb3BlcmF0aW9uID0gbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvblRvU3RyaW5nKTsK
KyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNvbnZlcnRlZFJlc3VsdCA9IG1fb3V0LmFuY2hv
cih2bUNhbGwob3BlcmF0aW9uLCBtX2NhbGxGcmFtZSwgdmFsdWUpKTsKKyAgICAgICAgICAgIG1f
b3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgICAgICBzZXRKU1ZhbHVl
KG1fb3V0LnBoaShtX291dC5pbnQ2NCwgc2ltcGxlUmVzdWx0LCBjb252ZXJ0ZWRSZXN1bHQpKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCBjb21waWxlTWFr
ZVJvcGUoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGtpZHNbM107CisgICAgICAgIHVuc2lnbmVk
IG51bUtpZHM7CisgICAgICAgIGtpZHNbMF0gPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwor
ICAgICAgICBraWRzWzFdID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgaWYg
KG1fbm9kZS0+Y2hpbGQzKCkpIHsKKyAgICAgICAgICAgIGtpZHNbMl0gPSBsb3dDZWxsKG1fbm9k
ZS0+Y2hpbGQzKCkpOworICAgICAgICAgICAgbnVtS2lkcyA9IDM7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBraWRzWzJdID0gMDsKKyAgICAgICAgICAgIG51bUtpZHMgPSAyOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBMQmFzaWNCbG9jayBzbG93UGF0aCA9IEZUTF9ORVdf
QkxPQ0sobV9vdXQsICgiTWFrZVJvcGUgc2xvdyBwYXRoIikpOworICAgICAgICBMQmFzaWNCbG9j
ayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk1ha2VSb3BlIGNvbnRpbnVh
dGlvbiIpKTsKKyAgICAgICAgCisgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQu
aW5zZXJ0TmV3QmxvY2tzQmVmb3JlKHNsb3dQYXRoKTsKKyAgICAgICAgCisgICAgICAgIE1hcmtl
ZEFsbG9jYXRvciYgYWxsb2NhdG9yID0KKyAgICAgICAgICAgIHZtKCkuaGVhcC5hbGxvY2F0b3JG
b3JPYmplY3RXaXRoSW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemVvZihKU1JvcGVTdHJp
bmcpKTsKKyAgICAgICAgCisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBhbGxvY2F0ZUNlbGwoCisg
ICAgICAgICAgICBtX291dC5jb25zdEludFB0cigmYWxsb2NhdG9yKSwKKyAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJlLmdldCgpKSwKKyAgICAgICAgICAg
IHNsb3dQYXRoKTsKKyAgICAgICAgCisgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmludFB0
clplcm8sIHJlc3VsdCwgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBudW1LaWRzOyArK2kpCisgICAgICAgICAgICBtX291dC5zdG9yZVB0
cihraWRzW2ldLCByZXN1bHQsIG1faGVhcHMuSlNSb3BlU3RyaW5nX2ZpYmVyc1tpXSk7CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IG51bUtpZHM7IGkgPCBKU1JvcGVTdHJpbmc6OnNfbWF4SW50
ZXJuYWxSb3BlTGVuZ3RoOyArK2kpCisgICAgICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5p
bnRQdHJaZXJvLCByZXN1bHQsIG1faGVhcHMuSlNSb3BlU3RyaW5nX2ZpYmVyc1tpXSk7CisgICAg
ICAgIExWYWx1ZSBmbGFncyA9IG1fb3V0LmxvYWQzMihraWRzWzBdLCBtX2hlYXBzLkpTU3RyaW5n
X2ZsYWdzKTsKKyAgICAgICAgTFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMihraWRzWzBdLCBt
X2hlYXBzLkpTU3RyaW5nX2xlbmd0aCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkg
PCBudW1LaWRzOyArK2kpIHsKKyAgICAgICAgICAgIGZsYWdzID0gbV9vdXQuYml0QW5kKGZsYWdz
LCBtX291dC5sb2FkMzIoa2lkc1tpXSwgbV9oZWFwcy5KU1N0cmluZ19mbGFncykpOworICAgICAg
ICAgICAgbGVuZ3RoID0gbV9vdXQuYWRkKGxlbmd0aCwgbV9vdXQubG9hZDMyKGtpZHNbaV0sIG1f
aGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSk7CisgICAgICAgIH0KKyAgICAgICAgbV9vdXQuc3RvcmUz
MigKKyAgICAgICAgICAgIG1fb3V0LmJpdEFuZChtX291dC5jb25zdEludDMyKEpTU3RyaW5nOjpJ
czhCaXQpLCBmbGFncyksCisgICAgICAgICAgICByZXN1bHQsIG1faGVhcHMuSlNTdHJpbmdfZmxh
Z3MpOworICAgICAgICBtX291dC5zdG9yZTMyKGxlbmd0aCwgcmVzdWx0LCBtX2hlYXBzLkpTU3Ry
aW5nX2xlbmd0aCk7CisgICAgICAgIAorICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0
ID0gbV9vdXQuYW5jaG9yKHJlc3VsdCk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9u
KTsKKyAgICAgICAgCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dQYXRoLCBjb250aW51YXRp
b24pOworICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0OworICAgICAgICBzd2l0Y2gg
KG51bUtpZHMpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgc2xvd1Jlc3VsdCA9IG1f
b3V0LmFuY2hvcih2bUNhbGwoCisgICAgICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG9wZXJh
dGlvbk1ha2VSb3BlMiksIG1fY2FsbEZyYW1lLCBraWRzWzBdLCBraWRzWzFdKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgc2xvd1Jlc3VsdCA9IG1f
b3V0LmFuY2hvcih2bUNhbGwoCisgICAgICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG9wZXJh
dGlvbk1ha2VSb3BlMyksIG1fY2FsbEZyYW1lLCBraWRzWzBdLCBraWRzWzFdLCBraWRzWzJdKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgIAorICAgICAgICBtX291
dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgc2V0SlNWYWx1ZSht
X291dC5waGkobV9vdXQuaW50NjQsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpKTsKKyAgICB9Cisg
ICAgCiAgICAgdm9pZCBjb21waWxlU3RyaW5nQ2hhckF0KCkKICAgICB7CiAgICAgICAgIExWYWx1
ZSBiYXNlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKQEAgLTIxMTQsNyArMjY0MCw3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAg
ICAgbV9vdXQuYWJvdmVPckVxdWFsKAotICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2Fk
MzIoYmFzZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpKSwKKyAgICAgICAgICAgICAgICBpbmRl
eCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgp
KSwKICAgICAgICAgICAgIHNsb3dQYXRoLCBmYXN0UGF0aCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhmYXN0UGF0aCwgc2xvd1Bh
dGgpOwpAQCAtMjIxMCw3ICsyNzM2LDggQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIHNw
ZWN1bGF0ZSgKICAgICAgICAgICAgIFVuY291bnRhYmxlLCBub1ZhbHVlKCksIDAsCi0gICAgICAg
ICAgICBtX291dC5hYm92ZU9yRXF1YWwoaW5kZXgsIG1fb3V0LmxvYWQzMihiYXNlLCBtX2hlYXBz
LkpTU3RyaW5nX2xlbmd0aCkpKTsKKyAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKKyAg
ICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFw
cy5KU1N0cmluZ19sZW5ndGgpKSk7CiAgICAgICAgIAogICAgICAgICBMVmFsdWUgc3RyaW5nSW1w
bCA9IG1fb3V0LmxvYWRQdHIoYmFzZSwgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7CiAgICAgICAg
IApAQCAtMjM0NSw2ICsyODcyLDE2IEBAIHByaXZhdGU6CiAgICAgICAgIG1fb3V0LmFwcGVuZFRv
KGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVH
ZXRDYWxsZWUoKQorICAgIHsKKyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkUHRyKGFkZHJl
c3NGb3IoSlNTdGFjazo6Q2FsbGVlKSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGNvbXBpbGVH
ZXRTY29wZSgpCisgICAgeworICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWRQdHIobG93Q2Vs
bChtX25vZGUtPmNoaWxkMSgpKSwgbV9oZWFwcy5KU0Z1bmN0aW9uX3Njb3BlKSk7CisgICAgfQor
ICAgIAogICAgIHZvaWQgY29tcGlsZUdldE15U2NvcGUoKQogICAgIHsKICAgICAgICAgc2V0SlNW
YWx1ZShtX291dC5sb2FkUHRyKGFkZHJlc3NGb3IoCkBAIC0yNDg4LDM1ICszMDI1LDM3IEBAIHBy
aXZhdGU6CiAgICAgCiAgICAgdm9pZCBjb21waWxlQ2FsbE9yQ29uc3RydWN0KCkKICAgICB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHVuYWNjZXB0YWJseSBzbG93LgotICAgICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIxCisgICAgICAgIGlu
dCBkdW1teVRoaXNBcmd1bWVudCA9IG1fbm9kZS0+b3AoKSA9PSBDYWxsID8gMCA6IDE7CisgICAg
ICAgIGludCBudW1QYXNzZWRBcmdzID0gbV9ub2RlLT5udW1DaGlsZHJlbigpIC0gMTsKKyAgICAg
ICAgaW50IG51bUFyZ3MgPSBudW1QYXNzZWRBcmdzICsgZHVtbXlUaGlzQXJndW1lbnQ7CiAgICAg
ICAgIAotICAgICAgICBKX0pJVE9wZXJhdGlvbl9FIGZ1bmN0aW9uID0KLSAgICAgICAgICAgIG1f
bm9kZS0+b3AoKSA9PSBDYWxsID8gb3BlcmF0aW9uRlRMQ2FsbCA6IG9wZXJhdGlvbkZUTENvbnN0
cnVjdDsKKyAgICAgICAgTFZhbHVlIGNhbGxlZSA9IGxvd0pTVmFsdWUobV9ncmFwaC52YXJBcmdD
aGlsZChtX25vZGUsIDApKTsKICAgICAgICAgCi0gICAgICAgIGludCBkdW1teVRoaXNBcmd1bWVu
dCA9IG1fbm9kZS0+b3AoKSA9PSBDYWxsID8gMCA6IDE7CisgICAgICAgIHVuc2lnbmVkIHN0YWNr
bWFwSUQgPSBtX3N0YWNrbWFwSURzKys7CiAgICAgICAgIAotICAgICAgICBpbnQgbnVtUGFzc2Vk
QXJncyA9IG1fbm9kZS0+bnVtQ2hpbGRyZW4oKSAtIDE7CisgICAgICAgIFZlY3RvcjxMVmFsdWU+
IGFyZ3VtZW50czsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDY0KHN0
YWNrbWFwSUQpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDMyKHNp
emVPZkNhbGwoKSkpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGNvbnN0TnVsbChtX291dC5y
ZWY4KSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQzMigxICsgSlNT
dGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXpl
ICsgbnVtQXJncykpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGNhbGxlZSk7IC8vIGNhbGxl
ZSAtPiAlcmF4CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoZ2V0VW5kZWYobV9vdXQuaW50NjQp
KTsgLy8gY29kZSBibG9jaworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGdldFVuZGVmKG1fb3V0
LmludDY0KSk7IC8vIHNjb3BlIGNoYWluCisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoY2FsbGVl
KTsgLy8gY2FsbGVlIC0+IHN0YWNrCisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29u
c3RJbnQ2NChudW1BcmdzKSk7IC8vIGFyZ3VtZW50IGNvdW50IGFuZCB6ZXJvcyBmb3IgdGhlIHRh
ZworICAgICAgICBpZiAoZHVtbXlUaGlzQXJndW1lbnQpCisgICAgICAgICAgICBhcmd1bWVudHMu
YXBwZW5kKGdldFVuZGVmKG1fb3V0LmludDY0KSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbnVtUGFzc2VkQXJnczsgKytpKQorICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChsb3dK
U1ZhbHVlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxICsgaSkpKTsKICAgICAgICAgCi0g
ICAgICAgIExWYWx1ZSBjYWxsZWVGcmFtZSA9IG1fb3V0LmFkZCgKLSAgICAgICAgICAgIG1fY2Fs
bEZyYW1lLAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIoc2l6ZW9mKFJlZ2lzdGVyKSAq
IHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKG1fZ3JhcGguZnJhbWVSZWdpc3RlckNvdW50KCkpLm9m
ZnNldCgpKSk7CisgICAgICAgIGNhbGxQcmVmbGlnaHQoKTsKICAgICAgICAgCi0gICAgICAgIG1f
b3V0LnN0b3JlMzIoCi0gICAgICAgICAgICBtX291dC5jb25zdEludDMyKG51bVBhc3NlZEFyZ3Mg
KyBkdW1teVRoaXNBcmd1bWVudCksCi0gICAgICAgICAgICBwYXlsb2FkRm9yKGNhbGxlZUZyYW1l
LCBKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7Ci0gICAgICAgIG1fb3V0LnN0b3JlNjQobV9jYWxs
RnJhbWUsIGNhbGxlZUZyYW1lLCBtX2hlYXBzLkNhbGxGcmFtZV9jYWxsZXJGcmFtZSk7Ci0gICAg
ICAgIG1fb3V0LnN0b3JlNjQoCi0gICAgICAgICAgICBsb3dKU1ZhbHVlKG1fZ3JhcGgudmFyQXJn
Q2hpbGQobV9ub2RlLCAwKSksCi0gICAgICAgICAgICBhZGRyZXNzRm9yKGNhbGxlZUZyYW1lLCBK
U1N0YWNrOjpDYWxsZWUpKTsKKyAgICAgICAgTFZhbHVlIGNhbGwgPSBtX291dC5jYWxsKG1fb3V0
LnBhdGNocG9pbnRJbnQ2NEludHJpbnNpYygpLCBhcmd1bWVudHMpOworICAgICAgICBzZXRJbnN0
cnVjdGlvbkNhbGxpbmdDb252ZW50aW9uKGNhbGwsIExMVk1XZWJLaXRKU0NhbGxDb252KTsKICAg
ICAgICAgCi0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUGFzc2VkQXJnczsgKytpKSB7
Ci0gICAgICAgICAgICBtX291dC5zdG9yZTY0KAotICAgICAgICAgICAgICAgIGxvd0pTVmFsdWUo
bV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEgKyBpKSksCi0gICAgICAgICAgICAgICAgYWRk
cmVzc0ZvcihjYWxsZWVGcmFtZSwgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoaSArIGR1bW15
VGhpc0FyZ3VtZW50KS5vZmZzZXQoKSkpOwotICAgICAgICB9CisgICAgICAgIG1fZnRsU3RhdGUu
anNDYWxscy5hcHBlbmQoSlNDYWxsKHN0YWNrbWFwSUQsIG1fbm9kZSkpOwogICAgICAgICAKLSAg
ICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwobV9vdXQub3BlcmF0aW9uKGZ1bmN0aW9uKSwgY2FsbGVl
RnJhbWUpKTsKKyAgICAgICAgc2V0SlNWYWx1ZShjYWxsKTsKICAgICB9CiAgICAgCiAgICAgdm9p
ZCBjb21waWxlSnVtcCgpCkBAIC0yNjI3LDcgKzMxNjYsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgbV9vdXQubm90
RXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMihzdHJpbmdWYWx1ZSwgbV9o
ZWFwcy5KU1N0cmluZ19sZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzJO
b25OZWdhdGl2ZShzdHJpbmdWYWx1ZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpLAogICAgICAg
ICAgICAgICAgICAgICBtX291dC5pbnQzMk9uZSksCiAgICAgICAgICAgICAgICAgbG93QmxvY2so
ZGF0YS0+ZmFsbFRocm91Z2gpLCBsZW5ndGhJczEpOwogICAgICAgICAgICAgCkBAIC0yNzA4LDYg
KzMyNDcsMjIgQEAgcHJpdmF0ZToKICAgICAgICAgaW5mby5tX2lzSW52YWxpZGF0aW9uUG9pbnQg
PSB0cnVlOwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVDaGVja0FyZ3VtZW50c05vdENy
ZWF0ZWQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFpc0VtcHR5U3BlY3VsYXRpb24oCisgICAg
ICAgICAgICBtX3N0YXRlLnZhcmlhYmxlcygpLm9wZXJhbmQoCisgICAgICAgICAgICAgICAgbV9n
cmFwaC5hcmd1bWVudHNSZWdpc3RlckZvcihtX25vZGUtPmNvZGVPcmlnaW4pKS5tX3R5cGUpKTsK
KyAgICAgICAgCisgICAgICAgIFZpcnR1YWxSZWdpc3RlciByZWcgPSBtX2dyYXBoLm1hY2hpbmVB
cmd1bWVudHNSZWdpc3RlckZvcihtX25vZGUtPmNvZGVPcmlnaW4pOworICAgICAgICBzcGVjdWxh
dGUoQXJndW1lbnRzRXNjYXBlZCwgbm9WYWx1ZSgpLCAwLCBtX291dC5ub3RaZXJvNjQobV9vdXQu
bG9hZDY0KGFkZHJlc3NGb3IocmVnKSkpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBjb21waWxl
Q291bnRFeGVjdXRpb24oKQorICAgIHsKKyAgICAgICAgVHlwZWRQb2ludGVyIGNvdW50ZXIgPSBt
X291dC5hYnNvbHV0ZShtX25vZGUtPmV4ZWN1dGlvbkNvdW50ZXIoKS0+YWRkcmVzcygpKTsKKyAg
ICAgICAgbV9vdXQuc3RvcmU2NChtX291dC5hZGQobV9vdXQubG9hZDY0KGNvdW50ZXIpLCBtX291
dC5jb25zdEludDY0KDEpKSwgY291bnRlcik7CisgICAgfQorICAgIAogICAgIFR5cGVkUG9pbnRl
ciBiYXNlSW5kZXgoSW5kZXhlZEFic3RyYWN0SGVhcCYgaGVhcCwgTFZhbHVlIHN0b3JhZ2UsIExW
YWx1ZSBpbmRleCwgRWRnZSBlZGdlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb3V0LmJhc2VJ
bmRleCgKQEAgLTI5MjQsNyArMzQ3OSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBpZiAo
SlNBcnJheUJ1ZmZlclZpZXcqIHZpZXcgPSBtX2dyYXBoLnRyeUdldEZvbGRhYmxlVmlldyhiYXNl
RWRnZS5ub2RlKCksIGFycmF5TW9kZSkpCiAgICAgICAgICAgICByZXR1cm4gbV9vdXQuY29uc3RJ
bnQzMih2aWV3LT5sZW5ndGgoKSk7Ci0gICAgICAgIHJldHVybiBtX291dC5sb2FkMzIoYmFzZSwg
bV9oZWFwcy5KU0FycmF5QnVmZmVyVmlld19sZW5ndGgpOworICAgICAgICByZXR1cm4gbV9vdXQu
bG9hZDMyTm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFwcy5KU0FycmF5QnVmZmVyVmlld19sZW5ndGgp
OwogICAgIH0KICAgICAKICAgICBMVmFsdWUgdHlwZWRBcnJheUxlbmd0aChFZGdlIGJhc2VFZGdl
LCBBcnJheU1vZGUgYXJyYXlNb2RlKQpAQCAtMjk0OCw3ICszNTAzLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICAgICAgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKSk7CiAgICAgICAgIGNh
c2UgU3RyaW5nVXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUgc3RyaW5nVmFsdWUgPSBsb3dTdHJp
bmcobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgbGVuZ3RoID0gbV9vdXQu
bG9hZDMyKHN0cmluZ1ZhbHVlLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCk7CisgICAgICAgICAg
ICBMVmFsdWUgbGVuZ3RoID0gbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RyaW5nVmFsdWUsIG1f
aGVhcHMuSlNTdHJpbmdfbGVuZ3RoKTsKICAgICAgICAgICAgIHJldHVybiBtX291dC5ub3RFcXVh
bChsZW5ndGgsIG1fb3V0LmludDMyWmVybyk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBVbnR5
cGVkVXNlOiB7CkBAIC0zMDgyLDcgKzM2MzcsNyBAQCBwcml2YXRlOgogICAgICAgICBMQmFzaWNC
bG9jayBjb250aW51YXRpb24pCiAgICAgewogICAgICAgICBMVmFsdWUgaXNOb3RJbkJvdW5kcyA9
IG1fb3V0LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIoc3Rv
cmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSk7CisgICAgICAgICAgICBpbmRl
eCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVi
bGljTGVuZ3RoKSk7CiAgICAgICAgIGlmICghbV9ub2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRz
KCkpIHsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdEluQm91bmRzQ2FzZSA9CiAgICAgICAg
ICAgICAgICAgRlRMX05FV19CTE9DSyhtX291dCwgKCJQdXRCeVZhbCBub3QgaW4gYm91bmRzIikp
OwpAQCAtMzA5NCw3ICszNjQ5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90SW5Cb3VuZHNDYXNlLCBwZXJmb3JtU3RvcmUp
OwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIGlzT3V0T2ZCb3VuZHMgPSBt
X291dC5hYm92ZU9yRXF1YWwoCi0gICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihz
dG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV92ZWN0b3JMZW5ndGgpKTsKKyAgICAgICAgICAgICAg
ICBpbmRleCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJm
bHlfdmVjdG9yTGVuZ3RoKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIW1f
bm9kZS0+YXJyYXlNb2RlKCkuaXNPdXRPZkJvdW5kcygpKQogICAgICAgICAgICAgICAgIHNwZWN1
bGF0ZShPdXRPZkJvdW5kcywgbm9WYWx1ZSgpLCAwLCBpc091dE9mQm91bmRzKTsKQEAgLTM3MTgs
NiArNDI3Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBL
bm93bkludDMyVXNlOgogICAgICAgICBjYXNlIEtub3duTnVtYmVyVXNlOgorICAgICAgICBjYXNl
IEtub3duU3RyaW5nVXNlOgogICAgICAgICAgICAgQVNTRVJUKCFtX2ludGVycHJldGVyLm5lZWRz
VHlwZUNoZWNrKGVkZ2UpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEludDMy
VXNlOgpAQCAtMzc0MSw2ICs0Mjk3LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgU3RyaW5n
VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKGVkZ2UpOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgorICAgICAgICAgICAgc3BlY3VsYXRl
U3RyaW5nT2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU3Ry
aW5nT3JTdHJpbmdPYmplY3RVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdPclN0cmlu
Z09iamVjdChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJlYWxOdW1i
ZXJVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVSZWFsTnVtYmVyKGVkZ2UpOwogICAgICAgICAg
ICAgYnJlYWs7CkBAIC0zOTI4LDYgKzQ0OTAsNTUgQEAgcHJpdmF0ZToKICAgICAgICAgc3BlY3Vs
YXRlU3RyaW5nKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOwogICAgIH0KICAgICAKKyAgICB2b2lkIHNw
ZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBpZiAoIW1faW50
ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1N0cmluZ09iamVjdCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JD
ZWxsKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgICAgICBtX2ludGVycHJldGVyLmZpbHRlcihl
ZGdlLCBTcGVjU3RyaW5nT2JqZWN0KTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVT
dHJpbmdPclN0cmluZ09iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBpZiAoIW1faW50
ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1N0cmluZyB8IFNwZWNTdHJpbmdPYmpl
Y3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sg
bm90U3RyaW5nID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJTcGVjdWxhdGUgU3RyaW5nT3JTdHJp
bmdPYmplY3Qgbm90IHN0cmluZyBjYXNlIikpOworICAgICAgICBMQmFzaWNCbG9jayBjb250aW51
YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlNwZWN1bGF0ZSBTdHJpbmdPclN0cmluZ09i
amVjdCBjb250aW51YXRpb24iKSk7CisgICAgICAgIAorICAgICAgICBMVmFsdWUgc3RydWN0dXJl
ID0gbV9vdXQubG9hZFB0cihsb3dDZWxsKGVkZ2UpLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUp
OworICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICBtX291dC5lcXVhbChzdHJ1Y3R1
cmUsIG1fb3V0LmNvbnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJlLmdldCgpKSksCisgICAg
ICAgICAgICBjb250aW51YXRpb24sIG5vdFN0cmluZyk7CisgICAgICAgIAorICAgICAgICBMQmFz
aWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGludWF0aW9u
KTsKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yU3RydWN0dXJlKGVkZ2UsIHN0cnVj
dHVyZSk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgCisgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAKKyAg
ICAgICAgbV9pbnRlcnByZXRlci5maWx0ZXIoZWRnZSwgU3BlY1N0cmluZyB8IFNwZWNTdHJpbmdP
YmplY3QpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvckNl
bGwoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZVN0cmlu
Z09iamVjdEZvclN0cnVjdHVyZShlZGdlLCBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlND
ZWxsX3N0cnVjdHVyZSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09i
amVjdEZvclN0cnVjdHVyZShFZGdlIGVkZ2UsIExWYWx1ZSBzdHJ1Y3R1cmUpCisgICAgeworICAg
ICAgICBTdHJ1Y3R1cmUqIHN0cmluZ09iamVjdFN0cnVjdHVyZSA9CisgICAgICAgICAgICBtX2dy
YXBoLmdsb2JhbE9iamVjdEZvcihtX25vZGUtPmNvZGVPcmlnaW4pLT5zdHJpbmdPYmplY3RTdHJ1
Y3R1cmUoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUoZWRnZSkubV9j
dXJyZW50S25vd25TdHJ1Y3R1cmUuaXNTdWJzZXRPZihTdHJ1Y3R1cmVTZXQoc3RyaW5nT2JqZWN0
U3RydWN0dXJlKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBzcGVj
dWxhdGUoCisgICAgICAgICAgICBOb3RTdHJpbmdPYmplY3QsIG5vVmFsdWUoKSwgMCwKKyAgICAg
ICAgICAgIG1fb3V0Lm5vdEVxdWFsKHN0cnVjdHVyZSwgd2Vha1BvaW50ZXIoc3RyaW5nT2JqZWN0
U3RydWN0dXJlKSkpOworICAgIH0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZU5vbk51bGxPYmpl
Y3QoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1
cmUgPSBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSk7CkBAIC00
MTA2LDE4ICs0NzE3LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIGlmIChtb2RlID09IE5vRXhjZXB0
aW9ucykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgICAgIExCYXNpY0Jsb2Nr
IGRpZEhhdmVFeGNlcHRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkRpZCBoYXZlIGV4Y2Vw
dGlvbiIpKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9D
SyhtX291dCwgKCJFeGNlcHRpb24gY2hlY2sgY29udGludWF0aW9uIikpOwogICAgICAgICAKICAg
ICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgbV9vdXQubm90WmVybzY0KG1fb3V0Lmxv
YWQ2NChtX291dC5hYnNvbHV0ZSh2bSgpLmFkZHJlc3NPZkV4Y2VwdGlvbigpKSkpLAotICAgICAg
ICAgICAgZGlkSGF2ZUV4Y2VwdGlvbiwgY29udGludWF0aW9uKTsKLSAgICAgICAgCi0gICAgICAg
IExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZGlkSGF2ZUV4Y2VwdGlvbiwg
Y29udGludWF0aW9uKTsKLSAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBleGNlcHRpb25zLiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIyCi0gICAgICAgIG1fb3V0
LmNyYXNoKCk7CisgICAgICAgICAgICBtX2hhbmRsZUV4Y2VwdGlvbnMsIGNvbnRpbnVhdGlvbik7
CiAgICAgICAgIAotICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0
KTsKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uKTsKICAgICB9CiAgICAgCiAg
ICAgTEJhc2ljQmxvY2sgbG93QmxvY2soQmFzaWNCbG9jayogYmxvY2spCkBAIC00MTMzLDggKzQ3
MzksMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGVuZE9TUkV4aXQoCiAgICAgICAgIEV4aXRL
aW5kIGtpbmQsIEZvcm1hdHRlZFZhbHVlIGxvd1ZhbHVlLCBOb2RlKiBoaWdoVmFsdWUsIExWYWx1
ZSBmYWlsQ29uZGl0aW9uKQogICAgIHsKLSAgICAgICAgaWYgKHZlcmJvc2VDb21waWxhdGlvbkVu
YWJsZWQoKSkKKyAgICAgICAgaWYgKHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkgewogICAg
ICAgICAgICAgZGF0YUxvZygiICAgIE9TUiBleGl0ICMiLCBtX2Z0bFN0YXRlLmppdENvZGUtPm9z
ckV4aXQuc2l6ZSgpLCAiIHdpdGggYXZhaWxhYmlsaXR5OiAiLCBtX2F2YWlsYWJpbGl0eSwgIlxu
Iik7CisgICAgICAgICAgICBpZiAoIW1fYXZhaWxhYmxlUmVjb3Zlcmllcy5pc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAgZGF0YUxvZygiICAgICAgICBBdmFpbGFibGUgcmVjb3ZlcmllczogIiwg
bGlzdER1bXAobV9hdmFpbGFibGVSZWNvdmVyaWVzKSwgIlxuIik7CisgICAgICAgIH0KIAogICAg
ICAgICBBU1NFUlQobV9mdGxTdGF0ZS5qaXRDb2RlLT5vc3JFeGl0LnNpemUoKSA9PSBtX2Z0bFN0
YXRlLmZpbmFsaXplci0+b3NyRXhpdC5zaXplKCkpOwogICAgICAgICAKQEAgLTQxNzgsNyArNDc4
Nyw2IEBAIHByaXZhdGU6CiAgICAgICAgIE9TUkV4aXQmIGV4aXQsIEV4aXRBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgRm9ybWF0dGVkVmFsdWUgbG93VmFsdWUsCiAgICAgICAgIENvZGVPcmlnaW4g
Y29kZU9yaWdpbikKICAgICB7Ci0gICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9jYWxsRnJhbWUp
OwogICAgICAgICBpZiAoISFsb3dWYWx1ZSkKICAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQo
bG93VmFsdWUudmFsdWUoKSk7CiAgICAgICAgIApAQCAtNDI0Niw3ICs0ODU0LDcgQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgICAgIGV4aXQubV9zdGFja21hcElEID0gbV9zdGFja21hcElEcysrOwog
ICAgICAgICBhcmd1bWVudHMuaW5zZXJ0KDAsIG1fb3V0LmNvbnN0SW50MzIoTWFjcm9Bc3NlbWJs
ZXI6Om1heEp1bXBSZXBsYWNlbWVudFNpemUoKSkpOwotICAgICAgICBhcmd1bWVudHMuaW5zZXJ0
KDAsIG1fb3V0LmNvbnN0SW50MzIoZXhpdC5tX3N0YWNrbWFwSUQpKTsKKyAgICAgICAgYXJndW1l
bnRzLmluc2VydCgwLCBtX291dC5jb25zdEludDY0KGV4aXQubV9zdGFja21hcElEKSk7CiAgICAg
ICAgIAogICAgICAgICBtX291dC5jYWxsKG1fb3V0LnN0YWNrbWFwSW50cmluc2ljKCksIGFyZ3Vt
ZW50cyk7CiAgICAgfQpAQCAtNDI2MCw2ICs0ODY4LDE5IEBAIHByaXZhdGU6CiAgICAgICAgIGlm
ICh0cnlUb1NldENvbnN0YW50RXhpdEFyZ3VtZW50KGV4aXQsIGluZGV4LCBub2RlKSkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX2F2YWlsYWJsZVJlY292ZXJpZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIEF2YWls
YWJsZVJlY292ZXJ5IHJlY292ZXJ5ID0gbV9hdmFpbGFibGVSZWNvdmVyaWVzW2ldOworICAgICAg
ICAgICAgaWYgKHJlY292ZXJ5Lm5vZGUoKSAhPSBub2RlKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBleGl0Lm1fdmFsdWVzW2luZGV4XSA9IEV4
aXRWYWx1ZTo6cmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgcmVjb3Zlcnkub3Bjb2RlKCksIGFy
Z3VtZW50cy5zaXplKCksIGFyZ3VtZW50cy5zaXplKCkgKyAxLAorICAgICAgICAgICAgICAgIHJl
Y292ZXJ5LmZvcm1hdCgpKTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQocmVjb3Zlcnku
bGVmdCgpKTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQocmVjb3ZlcnkucmlnaHQoKSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIExvd2Vy
ZWROb2RlVmFsdWUgdmFsdWUgPSBtX2ludDMyVmFsdWVzLmdldChub2RlKTsKICAgICAgICAgaWYg
KGlzVmFsaWQodmFsdWUpKSB7CiAgICAgICAgICAgICBhZGRFeGl0QXJndW1lbnQoZXhpdCwgYXJn
dW1lbnRzLCBpbmRleCwgVmFsdWVGb3JtYXRJbnQzMiwgdmFsdWUudmFsdWUoKSk7CkBAIC00MzI5
LDYgKzQ5NTAsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgYXJndW1lbnRzLmFwcGVuZCh2YWx1ZSk7
CiAgICAgfQogICAgIAorICAgIGJvb2wgZG9lc0tpbGwoRWRnZSBlZGdlKQorICAgIHsKKyAgICAg
ICAgaWYgKGVkZ2UuZG9lc05vdEtpbGwoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgCisgICAgICAgIGlmIChlZGdlLT5oYXNDb25zdGFudCgpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
dm9pZCBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgTm9kZSogbm9kZSwgUmVjb3ZlcnlP
cGNvZGUgb3Bjb2RlLCBMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0LCBWYWx1ZUZvcm1hdCBmb3Jt
YXQpCisgICAgeworICAgICAgICBtX2F2YWlsYWJsZVJlY292ZXJpZXMuYXBwZW5kKEF2YWlsYWJs
ZVJlY292ZXJ5KG5vZGUsIG9wY29kZSwgbGVmdCwgcmlnaHQsIGZvcm1hdCkpOworICAgIH0KKyAg
ICAKKyAgICB2b2lkIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICBFZGdlIGVkZ2UsIFJl
Y292ZXJ5T3Bjb2RlIG9wY29kZSwgTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCwgVmFsdWVGb3Jt
YXQgZm9ybWF0KQorICAgIHsKKyAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoZWRnZS5ub2Rl
KCksIG9wY29kZSwgbGVmdCwgcmlnaHQsIGZvcm1hdCk7CisgICAgfQorICAgIAogICAgIHZvaWQg
c2V0SW50MzIoTm9kZSogbm9kZSwgTFZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgbV9pbnQz
MlZhbHVlcy5zZXQobm9kZSwgTG93ZXJlZE5vZGVWYWx1ZSh2YWx1ZSwgbV9oaWdoQmxvY2spKTsK
QEAgLTQ0MzEsMzUgKzUwNzUsMzcgQEAgcHJpdmF0ZToKICAgICB9CiAgICAgVHlwZWRQb2ludGVy
IHBheWxvYWRGb3IoTFZhbHVlIGJhc2UsIGludCBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkZHJlc3NGb3IoYmFzZSwgb3BlcmFuZCwgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9y
KGJhc2UsIG9wZXJhbmQsIFBheWxvYWRPZmZzZXQpOwogICAgIH0KICAgICBUeXBlZFBvaW50ZXIg
dGFnRm9yKExWYWx1ZSBiYXNlLCBpbnQgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZGRyZXNzRm9yKGJhc2UsIG9wZXJhbmQsIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNj
cmlwdG9yLCBhc0JpdHMudGFnKSk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKGJhc2UsIG9w
ZXJhbmQsIFRhZ09mZnNldCk7CiAgICAgfQotICAgIFR5cGVkUG9pbnRlciBhZGRyZXNzRm9yKGlu
dCBvcGVyYW5kKQorICAgIFR5cGVkUG9pbnRlciBhZGRyZXNzRm9yKGludCBvcGVyYW5kLCBwdHJk
aWZmX3Qgb2Zmc2V0ID0gMCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZGRyZXNzRm9yKG1fY2Fs
bEZyYW1lLCBvcGVyYW5kKTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IoVmlydHVhbFJlZ2lz
dGVyKG9wZXJhbmQpLCBvZmZzZXQpOwogICAgIH0KLSAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0Zv
cihWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCkKKyAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0ZvcihW
aXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCwgcHRyZGlmZl90IG9mZnNldCA9IDApCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRkcmVzc0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZC5vZmZzZXQoKSk7Cisg
ICAgICAgIGlmIChvcGVyYW5kLmlzTG9jYWwoKSkKKyAgICAgICAgICAgIHJldHVybiBhZGRyZXNz
Rm9yKG1fY2FwdHVyZWQsIG9wZXJhbmQub2Zmc2V0KCksIG9mZnNldCk7CisgICAgICAgIHJldHVy
biBhZGRyZXNzRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5kLm9mZnNldCgpLCBvZmZzZXQpOwogICAg
IH0KICAgICBUeXBlZFBvaW50ZXIgcGF5bG9hZEZvcihpbnQgb3BlcmFuZCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBwYXlsb2FkRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5kKTsKKyAgICAgICAgcmV0
dXJuIHBheWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVyKG9wZXJhbmQpKTsKICAgICB9CiAgICAgVHlw
ZWRQb2ludGVyIHBheWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQpCiAgICAgewotICAg
ICAgICByZXR1cm4gcGF5bG9hZEZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZC5vZmZzZXQoKSk7Cisg
ICAgICAgIHJldHVybiBhZGRyZXNzRm9yKG9wZXJhbmQsIFBheWxvYWRPZmZzZXQpOwogICAgIH0K
ICAgICBUeXBlZFBvaW50ZXIgdGFnRm9yKGludCBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHRhZ0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZCk7CisgICAgICAgIHJldHVybiB0YWdGb3Io
VmlydHVhbFJlZ2lzdGVyKG9wZXJhbmQpKTsKICAgICB9CiAgICAgVHlwZWRQb2ludGVyIHRhZ0Zv
cihWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0YWdGb3Io
bV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zmc2V0KCkpOworICAgICAgICByZXR1cm4gYWRkcmVzc0Zv
cihvcGVyYW5kLCBUYWdPZmZzZXQpOwogICAgIH0KICAgICAKICAgICBWTSYgdm0oKSB7IHJldHVy
biBtX2dyYXBoLm1fdm07IH0KQEAgLTQ0NzEsOSArNTExNywxMSBAQCBwcml2YXRlOgogICAgIE91
dHB1dCBtX291dDsKICAgICAKICAgICBMQmFzaWNCbG9jayBtX3Byb2xvZ3VlOworICAgIExCYXNp
Y0Jsb2NrIG1faGFuZGxlRXhjZXB0aW9uczsKICAgICBIYXNoTWFwPEJhc2ljQmxvY2sqLCBMQmFz
aWNCbG9jaz4gbV9ibG9ja3M7CiAgICAgCiAgICAgTFZhbHVlIG1fY2FsbEZyYW1lOworICAgIExW
YWx1ZSBtX2NhcHR1cmVkOwogICAgIExWYWx1ZSBtX3RhZ1R5cGVOdW1iZXI7CiAgICAgTFZhbHVl
IG1fdGFnTWFzazsKICAgICAKQEAgLTQ0ODksNiArNTEzNyw4IEBAIHByaXZhdGU6CiAgICAgCiAg
ICAgT3BlcmFuZHM8QXZhaWxhYmlsaXR5PiBtX2F2YWlsYWJpbGl0eTsKICAgICAKKyAgICBWZWN0
b3I8QXZhaWxhYmxlUmVjb3ZlcnksIDM+IG1fYXZhaWxhYmxlUmVjb3ZlcmllczsKKyAgICAKICAg
ICBJblBsYWNlQWJzdHJhY3RTdGF0ZSBtX3N0YXRlOwogICAgIEFic3RyYWN0SW50ZXJwcmV0ZXI8
SW5QbGFjZUFic3RyYWN0U3RhdGU+IG1faW50ZXJwcmV0ZXI7CiAgICAgQmFzaWNCbG9jayogbV9o
aWdoQmxvY2s7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNw
cAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JF
bnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAgdm9pZCogcHJlcGFyZU9T
UkVudHJ5KAogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgQ29kZUJsb2NrKiBiYXNl
bGluZSA9IGRmZ0NvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCk7CisgICAgRXhlY3V0YWJsZUJh
c2UqIGV4ZWN1dGFibGUgPSBkZmdDb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpOwogICAgIERG
Rzo6SklUQ29kZSogZGZnQ29kZSA9IGRmZ0NvZGVCbG9jay0+aml0Q29kZSgpLT5kZmcoKTsKICAg
ICBGb3JPU1JFbnRyeUpJVENvZGUqIGVudHJ5Q29kZSA9IGVudHJ5Q29kZUJsb2NrLT5qaXRDb2Rl
KCktPmZ0bEZvck9TUkVudHJ5KCk7CiAgICAgCkBAIC04MCw3ICs4MSw3IEBAIHZvaWQqIHByZXBh
cmVPU1JFbnRyeSgKICAgICAgICAgc2NyYXRjaFtsb2NhbF0gPSBKU1ZhbHVlOjplbmNvZGUodmFs
dWVzLmxvY2FsKGxvY2FsKSk7CiAgICAgCiAgICAgaW50IHN0YWNrRnJhbWVTaXplID0gZW50cnlD
b2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhpdCgpOwot
ICAgIGlmICghdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCkuZ3JvdygmZXhlYy0+cmVnaXN0ZXJzKClb
dmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoc3RhY2tGcmFtZVNpemUpLm9mZnNldCgpXSkpIHsKKyAg
ICBpZiAoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKCZleGVjLT5y
ZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChzdGFja0ZyYW1lU2l6ZSAtIDEpLm9m
ZnNldCgpXSkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAg
ICAgIGRhdGFMb2coIiAgICBPU1IgZmFpbGVkIGJlY2F1c2Ugc3RhY2sgZ3Jvd3RoIGZhaWxlZC5c
biIpOwogICAgICAgICByZXR1cm4gMDsKQEAgLTg4LDcgKzg5LDkgQEAgdm9pZCogcHJlcGFyZU9T
UkVudHJ5KAogICAgIAogICAgIGV4ZWMtPnNldENvZGVCbG9jayhlbnRyeUNvZGVCbG9jayk7CiAg
ICAgCi0gICAgdm9pZCogcmVzdWx0ID0gZW50cnlDb2RlLT5hZGRyZXNzRm9yQ2FsbCgpLmV4ZWN1
dGFibGVBZGRyZXNzKCk7CisgICAgdm9pZCogcmVzdWx0ID0gZW50cnlDb2RlLT5hZGRyZXNzRm9y
Q2FsbCgKKyAgICAgICAgdm0sIGV4ZWN1dGFibGUsIEFyaXR5Q2hlY2tOb3RSZXF1aXJlZCwKKyAg
ICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KTsKICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICBkYXRhTG9nKCIgICAg
RW50cnkgd2lsbCBzdWNjZWVkLCBnb2luZyB0byBhZGRyZXNzIiwgUmF3UG9pbnRlcihyZXN1bHQp
LCAiXG4iKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhp
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdC5o
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4
aXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYgKzE2NiwxMSBAQCBzdHJ1Y3QgT1NSRXhpdCA6
IHB1YmxpYyBERkc6Ok9TUkV4aXRCYXNlCiAgICAgdWludDMyX3QgbV9zdGFja21hcElEOwogICAg
IAogICAgIENvZGVMb2NhdGlvbkp1bXAgY29kZUxvY2F0aW9uRm9yUmVwYXRjaChDb2RlQmxvY2sq
IGZ0bENvZGVCbG9jaykgY29uc3Q7CisgICAgCisgICAgYm9vbCBjb25zaWRlckFkZGluZ0FzRnJl
cXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIE9TUkV4aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZShw
cm9maWxlZENvZGVCbG9jaywgRXhpdEZyb21GVEwpOworICAgIH0KIH07CiAKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpGVEwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhp
dENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsOCAr
MzQsMTAgQEAKICNpbmNsdWRlICJGVExKSVRDb2RlLmgiCiAjaW5jbHVkZSAiRlRMT1NSRXhpdC5o
IgogI2luY2x1ZGUgIkZUTFNhdmVSZXN0b3JlLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYW5kc0lubGluZXMuaCIKICNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2Vu
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEZUTCB7CkBAIC02Miw5ICs2NCwxMCBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1
YigKICAgICAKICAgICAvLyBXZSBuZWVkIHNjcmF0Y2ggc3BhY2UgdG8gc2F2ZSBhbGwgcmVnaXN0
ZXJzIGFuZCB0byBidWlsZCB1cCB0aGUgSlNTdGFjay4KICAgICAvLyBVc2UgYSBzY3JhdGNoIGJ1
ZmZlciB0byB0cmFuc2ZlciBhbGwgdmFsdWVzLgotICAgIFNjcmF0Y2hCdWZmZXIqIHNjcmF0Y2hC
dWZmZXIgPSB2bS0+c2NyYXRjaEJ1ZmZlckZvclNpemUoc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSAq
IGV4aXQubV92YWx1ZXMuc2l6ZSgpICsgcmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMo
KSk7CisgICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVy
Rm9yU2l6ZShzaXplb2YoRW5jb2RlZEpTVmFsdWUpICogZXhpdC5tX3ZhbHVlcy5zaXplKCkgKyBy
ZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpICsgaml0Q29kZS0+dW53aW5kSW5mby5t
X3JlZ2lzdGVycy5zaXplKCkgKiBzaXplb2YodWludDY0X3QpKTsKICAgICBFbmNvZGVkSlNWYWx1
ZSogc2NyYXRjaCA9IHNjcmF0Y2hCdWZmZXIgPyBzdGF0aWNfY2FzdDxFbmNvZGVkSlNWYWx1ZSo+
KHNjcmF0Y2hCdWZmZXItPmRhdGFCdWZmZXIoKSkgOiAwOwogICAgIGNoYXIqIHJlZ2lzdGVyU2Ny
YXRjaCA9IGJpdHdpc2VfY2FzdDxjaGFyKj4oc2NyYXRjaCArIGV4aXQubV92YWx1ZXMuc2l6ZSgp
KTsKKyAgICB1aW50NjRfdCogdW53aW5kU2NyYXRjaCA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+
KHJlZ2lzdGVyU2NyYXRjaCArIHJlcXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVzKCkpOwog
ICAgIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHNhdmVBbGxSZWdpc3RlcnMoKSBoYXMgYSBwbGFj
ZSBvbiB0b3Agb2YgdGhlIHN0YWNrIHRvIHNwaWxsIHRoaW5ncy4gVGhhdAogICAgIC8vIGZ1bmN0
aW9uIGV4cGVjdHMgdG8gYmUgYWJsZSB0byB1c2UgdG9wIG9mIHN0YWNrIGZvciBzY3JhdGNoIG1l
bW9yeS4KQEAgLTc1LDE4ICs3OCwyNyBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigKICAgICBq
aXQucG9wKEdQUkluZm86OnJlZ1QwKTsKICAgICBqaXQucG9wKEdQUkluZm86OnJlZ1QwKTsKICAg
ICAKKyAgICBpZiAodm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlciAmJiBjb2RlQmxvY2stPmppdENv
ZGUoKS0+ZGZnQ29tbW9uKCktPmNvbXBpbGF0aW9uKSB7CisgICAgICAgIFByb2ZpbGVyOjpEYXRh
YmFzZSYgZGF0YWJhc2UgPSAqdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlcjsKKyAgICAgICAgUHJv
ZmlsZXI6OkNvbXBpbGF0aW9uKiBjb21waWxhdGlvbiA9IGNvZGVCbG9jay0+aml0Q29kZSgpLT5k
ZmdDb21tb24oKS0+Y29tcGlsYXRpb24uZ2V0KCk7CisgICAgICAgIAorICAgICAgICBQcm9maWxl
cjo6T1NSRXhpdCogcHJvZmlsZXJFeGl0ID0gY29tcGlsYXRpb24tPmFkZE9TUkV4aXQoCisgICAg
ICAgICAgICBleGl0SUQsIFByb2ZpbGVyOjpPcmlnaW5TdGFjayhkYXRhYmFzZSwgY29kZUJsb2Nr
LCBleGl0Lm1fY29kZU9yaWdpbiksCisgICAgICAgICAgICBleGl0Lm1fa2luZCwgaXNXYXRjaHBv
aW50KGV4aXQubV9raW5kKSk7CisgICAgICAgIGppdC5hZGQ2NChDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMigxKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MocHJvZmlsZXJFeGl0LT5j
b3VudGVyQWRkcmVzcygpKSk7CisgICAgfQorCiAgICAgLy8gVGhlIHJlbWFpbmluZyBjb2RlIGFz
c3VtZXMgdGhhdCBTUC9GUCBhcmUgaW4gdGhlIHNhbWUgc3RhdGUgdGhhdCB0aGV5IHdlcmUgaW4g
dGhlIEZUTCdzCiAgICAgLy8gY2FsbCBmcmFtZS4KICAgICAKICAgICAvLyBHZXQgdGhlIGNhbGwg
ZnJhbWUgYW5kIHRhZyB0aGluZ2llcy4KICAgICAvLyBSZXN0b3JlIHRoZSBleGl0aW5nIGZ1bmN0
aW9uJ3MgY2FsbEZyYW1lIHZhbHVlIGludG8gYSByZWdUNAotICAgIHJlY29yZC0+bG9jYXRpb25z
WzBdLnJlc3RvcmVJbnRvKGppdCwgaml0Q29kZS0+c3RhY2ttYXBzLCByZWdpc3RlclNjcmF0Y2gs
IEdQUkluZm86OnJlZ1Q0KTsKICAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTY0KFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwogICAg
IGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoVGFnTWFzayksIEdQUkluZm86
OnRhZ01hc2tSZWdpc3Rlcik7CiAgICAgCiAgICAgLy8gRG8gc29tZSB2YWx1ZSBwcm9maWxpbmcu
CiAgICAgaWYgKGV4aXQubV9wcm9maWxlVmFsdWVGb3JtYXQgIT0gSW52YWxpZFZhbHVlRm9ybWF0
KSB7Ci0gICAgICAgIHJlY29yZC0+bG9jYXRpb25zWzFdLnJlc3RvcmVJbnRvKGppdCwgaml0Q29k
ZS0+c3RhY2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAg
cmVjb3JkLT5sb2NhdGlvbnNbMF0ucmVzdG9yZUludG8oaml0LCBqaXRDb2RlLT5zdGFja21hcHMs
IHJlZ2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVnVDApOwogICAgICAgICByZWJveEFjY29yZGlu
Z1RvRm9ybWF0KAogICAgICAgICAgICAgZXhpdC5tX3Byb2ZpbGVWYWx1ZUZvcm1hdCwgaml0LCBH
UFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1QyKTsKICAgICAgICAg
CkBAIC0xMzAsNyArMTQyLDQ1IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgICAgICBj
YXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzSW50MzI6CiAgICAgICAgIGNhc2UgRXhpdFZhbHVlSW5K
U1N0YWNrQXNJbnQ1MjoKICAgICAgICAgY2FzZSBFeGl0VmFsdWVJbkpTU3RhY2tBc0RvdWJsZToK
LSAgICAgICAgICAgIGppdC5sb2FkNjQoQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKHZhbHVl
LnZpcnR1YWxSZWdpc3RlcigpLCBHUFJJbmZvOjpyZWdUNCksIEdQUkluZm86OnJlZ1QwKTsKKyAg
ICAgICAgICAgIGppdC5sb2FkNjQoQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKHZhbHVlLnZp
cnR1YWxSZWdpc3RlcigpKSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAKKyAgICAgICAgY2FzZSBFeGl0VmFsdWVSZWNvdmVyeToKKyAgICAgICAgICAg
IHJlY29yZC0+bG9jYXRpb25zW3ZhbHVlLnJpZ2h0UmVjb3ZlcnlBcmd1bWVudCgpXS5yZXN0b3Jl
SW50bygKKyAgICAgICAgICAgICAgICBqaXQsIGppdENvZGUtPnN0YWNrbWFwcywgcmVnaXN0ZXJT
Y3JhdGNoLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgICAgICAgICByZWNvcmQtPmxvY2F0aW9uc1t2
YWx1ZS5sZWZ0UmVjb3ZlcnlBcmd1bWVudCgpXS5yZXN0b3JlSW50bygKKyAgICAgICAgICAgICAg
ICBqaXQsIGppdENvZGUtPnN0YWNrbWFwcywgcmVnaXN0ZXJTY3JhdGNoLCBHUFJJbmZvOjpyZWdU
MCk7CisgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnJlY292ZXJ5T3Bjb2RlKCkpIHsKKyAgICAg
ICAgICAgIGNhc2UgQWRkUmVjb3Zlcnk6CisgICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS5y
ZWNvdmVyeUZvcm1hdCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZUZvcm1hdEludDMy
OgorICAgICAgICAgICAgICAgICAgICBqaXQuYWRkMzIoR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86
OnJlZ1QwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2Fz
ZSBWYWx1ZUZvcm1hdEludDUyOgorICAgICAgICAgICAgICAgICAgICBqaXQuYWRkNjQoR1BSSW5m
bzo6cmVnVDEsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTdWJSZWNv
dmVyeToKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnJlY292ZXJ5Rm9ybWF0KCkpIHsK
KyAgICAgICAgICAgICAgICBjYXNlIFZhbHVlRm9ybWF0SW50MzI6CisgICAgICAgICAgICAgICAg
ICAgIGppdC5zdWIzMihHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFZhbHVlRm9ybWF0SW50NTI6
CisgICAgICAgICAgICAgICAgICAgIGppdC5zdWI2NChHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6
cmVnVDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0
OgpAQCAtMTQxLDYgKzE5MSwxMzcgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoCiAgICAgICAg
IGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBzY3JhdGNoICsgaW5kZXgpOwogICAgIH0KICAg
ICAKKyAgICAvLyBIZW5jZWZvcnRoIHdlIG1ha2UgaXQgbG9vayBsaWtlIHRoZSBleGl0aW5nIGZ1
bmN0aW9uIHdhcyBjYWxsZWQgdGhyb3VnaCBhIHJlZ2lzdGVyCisgICAgLy8gcHJlc2VydmF0aW9u
IHdyYXBwZXIuIFRoaXMgaW1wbGllcyB0aGF0IEZQIG11c3QgYmUgbnVkZ2VkIGRvd24gYnkgYSBj
ZXJ0YWluIGFtb3VudC4gVGhlbgorICAgIC8vIHdlIHJlc3RvcmUgdGhlIHZhcmlvdXMgdGhpbmdz
IGFjY29yZGluZyB0byBlaXRoZXIgZXhpdC5tX3ZhbHVlcyBvciBieSBjb3B5aW5nIGZyb20gdGhl
CisgICAgLy8gb2xkIGZyYW1lLCBhbmQgZmluYWxseSB3ZSBzYXZlIHRoZSB2YXJpb3VzIGNhbGxl
ZS1zYXZlIHJlZ2lzdGVycyBpbnRvIHdoZXJlIHRoZQorICAgIC8vIHJlc3RvcmF0aW9uIHRodW5r
IHdvdWxkIHJlc3RvcmUgdGhlbSBmcm9tLgorICAgIAorICAgIHB0cmRpZmZfdCBvZmZzZXQgPSBy
ZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpOworICAgIFJlZ2lzdGVyU2V0IHRvU2F2ZSA9IHJl
Z2lzdGVyc1RvUHJlc2VydmUoKTsKKyAgICAKKyAgICAvLyBCZWZvcmUgd2Ugc3RhcnQgbWVzc2lu
ZyB3aXRoIHRoZSBmcmFtZSwgd2UgbmVlZCB0byBzZXQgYXNpZGUgYW55IHJlZ2lzdGVycyB0aGF0
IHRoZQorICAgIC8vIEZUTCBjb2RlIHdhcyBwcmVzZXJ2aW5nLgorICAgIGZvciAodW5zaWduZWQg
aSA9IGppdENvZGUtPnVud2luZEluZm8ubV9yZWdpc3RlcnMuc2l6ZSgpOyBpLS07KSB7CisgICAg
ICAgIFJlZ2lzdGVyQXRPZmZzZXQgZW50cnkgPSBqaXRDb2RlLT51bndpbmRJbmZvLm1fcmVnaXN0
ZXJzW2ldOworICAgICAgICBqaXQubG9hZDY0KAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBlbnRyeS5vZmZz
ZXQoKSksCisgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgIGppdC5zdG9yZTY0
KEdQUkluZm86OnJlZ1QwLCB1bndpbmRTY3JhdGNoICsgaSk7CisgICAgfQorICAgIAorICAgIGpp
dC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpwYXlsb2FkRm9yKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQp
LCBHUFJJbmZvOjpyZWdUMik7CisgICAgCisgICAgLy8gTGV0J3Mgc2F5IHRoYXQgdGhlIEZUTCBm
dW5jdGlvbiBoYWQgZmFpbGVkIGl0cyBhcml0eSBjaGVjay4gSW4gdGhhdCBjYXNlLCB0aGUgc3Rh
Y2sgd2lsbAorICAgIC8vIGNvbnRhaW4gc29tZSBleHRyYSBzdHVmZi4KKyAgICAvLworICAgIC8v
IEZpcnN0IHdlIGNvbXB1dGUgdGhlIHBhZGRlZCBzdGFjayBzcGFjZToKKyAgICAvLworICAgIC8v
ICAgICBwYWRkZWRTdGFja1NwYWNlID0gcm91bmRVcChjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMg
LSByZWdUMiArIDEpCisgICAgLy8KKyAgICAvLyBUaGUgc3RhY2sgd2lsbCBoYXZlIHJlZ1QyICsg
Q2FsbEZyYW1lSGVhZGVyU2l6ZSBzdHVmZiwgYnV0IGFib3ZlIGl0IHRoZXJlIHdpbGwgYmUKKyAg
ICAvLyBwYWRkZWRTdGFja1NwYWNlIGd1bmsgdXNlZCBieSB0aGUgYXJpdHkgY2hlY2sgZmFpbCBy
ZXN0b3JhdGlvbiB0aHVuay4gV2hlbiB0aGF0IGhhcHBlbnMKKyAgICAvLyB3ZSB3YW50IHRvIG1h
a2UgdGhlIHN0YWNrIGxvb2sgbGlrZSB0aGlzLCBmcm9tIGhpZ2hlciBhZGRyZXNzZXMgZG93bjoK
KyAgICAvLworICAgIC8vICAgICAtIHJlZ2lzdGVyIHByZXNlcnZhdGlvbiByZXR1cm4gUEMKKyAg
ICAvLyAgICAgLSBwcmVzZXJ2ZWQgcmVnaXN0ZXJzCisgICAgLy8gICAgIC0gYXJpdHkgY2hlY2sg
ZmFpbCByZXR1cm4gUEMKKyAgICAvLyAgICAgLSBhcmd1bWVudCBwYWRkaW5nCisgICAgLy8gICAg
IC0gYWN0dWFsIGFyZ3VtZW50cworICAgIC8vICAgICAtIGNhbGwgZnJhbWUgaGVhZGVyCisgICAg
Ly8KKyAgICAvLyBTbyB0aGF0IHRoZSBhY3R1YWwgY2FsbCBmcmFtZSBoZWFkZXIgYXBwZWFycyB0
byByZXR1cm4gdG8gdGhlIGFyaXR5IGNoZWNrIGZhaWwgcmV0dXJuCisgICAgLy8gUEMsIGFuZCB0
aGF0IHRoZW4gcmV0dXJucyB0byB0aGUgcmVnaXN0ZXIgcHJlc2VydmF0aW9uIHRodW5rLiBUaGUg
YXJpdHkgY2hlY2sgdGh1bmsgdGhhdAorICAgIC8vIHdlIHJldHVybiB0byB3aWxsIGhhdmUgdGhl
IHBhZGRpbmcgc2l6ZSBlbmNvZGVkIGludG8gaXQuIEl0IHdpbGwgdGhlbiBrbm93IHRvIHJldHVy
bgorICAgIC8vIGludG8gdGhlIHJlZ2lzdGVyIHByZXNlcnZhdGlvbiB0aHVuaywgd2hpY2ggdXNl
cyB0aGUgYXJndW1lbnQgY291bnQgdG8gZmlndXJlIG91dCB3aGVyZQorICAgIC8vIHJlZ2lzdGVy
cyBhcmUgcHJlc2VydmVkLgorCisgICAgLy8gVGhpcyBjb2RlIGFzc3VtZXMgdGhhdCB3ZSdyZSBk
ZWFsaW5nIHdpdGggRnVuY3Rpb25Db2RlLgorICAgIFJFTEVBU0VfQVNTRVJUKGNvZGVCbG9jay0+
Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpOworICAgIAorICAgIGppdC5hZGQzMigKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJz
KCkpLCBHUFJJbmZvOjpyZWdUMiwKKyAgICAgICAgR1BSSW5mbzo6cmVnVDMpOworICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGFyaXR5SW50YWN0ID0gaml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2Vt
Ymxlcjo6WmVybywgR1BSSW5mbzo6cmVnVDMpOworICAgIGppdC5uZWczMihHUFJJbmZvOjpyZWdU
Myk7CisgICAgaml0LmFkZDMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMSArIHN0YWNr
QWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSwgR1BSSW5mbzo6cmVnVDMpOworICAgIGppdC5hbmQz
MihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1zdGFja0FsaWdubWVudFJlZ2lzdGVycygp
KSwgR1BSSW5mbzo6cmVnVDMpOworICAgIGppdC5hZGQzMihHUFJJbmZvOjpyZWdUMywgR1BSSW5m
bzo6cmVnVDIpOworICAgIGFyaXR5SW50YWN0LmxpbmsoJmppdCk7CisKKyAgICAvLyBGaXJzdCBz
ZXQgdXAgU1Agc28gdGhhdCBvdXIgZGF0YSBkb2Vzbid0IGdldCBjbG9iYmVyZWQgYnkgc2lnbmFs
cy4KKyAgICBqaXQuYWRkUHRyKAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KAorICAgICAgICAgICAgV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKAorICAgICAgICAgICAgICAg
IHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksCisgICAgICAgICAgICAgICAgLXJlZ2lzdGVyUHJl
c2VydmF0aW9uT2Zmc2V0KCkgLSBleGl0Lm1fdmFsdWVzLm51bWJlck9mTG9jYWxzKCkgKiBzaXpl
b2YoUmVnaXN0ZXIpIC0gbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpKSwKKyAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOworICAgIAorICAgIGppdC5zdWJQdHIoCisgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIocmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKSksCisg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CisgICAgCisgICAg
Ly8gQ29weSB0aGUgb2xkIGZyYW1lIGRhdGEgaW50byBpdHMgbmV3IGxvY2F0aW9uLgorICAgIGpp
dC5hZGQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhl
YWRlclNpemUpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6
OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgTWFjcm9Bc3NlbWJs
ZXI6OkxhYmVsIGxvb3AgPSBqaXQubGFiZWwoKTsKKyAgICBqaXQuc3ViMzIoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5sb2FkNjQoTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDEsIG9mZnNldCksIEdQUkluZm86OnJl
Z1QwKTsKKyAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEpOwor
ICAgIGppdC5hZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzaXplb2YoUmVnaXN0
ZXIpKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vblplcm8sIEdQUkluZm86OnJlZ1QyKS5saW5rVG8obG9vcCwgJmppdCk7CisgICAgCisg
ICAgLy8gQXQgdGhpcyBwb2ludCByZWdUMSBwb2ludHMgdG8gd2hlcmUgd2Ugd291bGQgc2F2ZSBv
dXIgcmVnaXN0ZXJzLiBTYXZlIHRoZW0gaGVyZS4KKyAgICBwdHJkaWZmX3QgY3VycmVudE9mZnNl
dCA9IDA7CisgICAgZm9yIChHUFJSZWcgZ3ByID0gQXNzZW1ibHlIZWxwZXJzOjpmaXJzdFJlZ2lz
dGVyKCk7IGdwciA8PSBBc3NlbWJseUhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBncHIgPSBzdGF0
aWNfY2FzdDxHUFJSZWc+KGdwciArIDEpKSB7CisgICAgICAgIGlmICghdG9TYXZlLmdldChncHIp
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gc2l6ZW9m
KFJlZ2lzdGVyKTsKKyAgICAgICAgdW5zaWduZWQgdW53aW5kSW5kZXggPSBqaXRDb2RlLT51bndp
bmRJbmZvLmluZGV4T2YoZ3ByKTsKKyAgICAgICAgaWYgKHVud2luZEluZGV4ID09IFVJTlRfTUFY
KSB7CisgICAgICAgICAgICAvLyBUaGUgRlRMIGNvbXBpbGF0aW9uIGRpZG4ndCBwcmVzZXJ2ZSB0
aGlzIHJlZ2lzdGVyLiBUaGlzIG1lYW5zIHRoYXQgaXQgYWxzbworICAgICAgICAgICAgLy8gZGlk
bid0IHVzZSB0aGUgcmVnaXN0ZXIuIFNvIGl0cyB2YWx1ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIE9T
UiBleGl0IHNob3VsZCBiZQorICAgICAgICAgICAgLy8gcHJlc2VydmVkIGJ5IHRoZSB0aHVuay4g
THVja2lseSwgd2Ugc2F2ZWQgYWxsIHJlZ2lzdGVycyBpbnRvIHRoZSByZWdpc3RlcgorICAgICAg
ICAgICAgLy8gc2NyYXRjaCBidWZmZXIsIHNvIHdlIGNhbiByZXN0b3JlIHRoZW0gZnJvbSB0aGVy
ZS4KKyAgICAgICAgICAgIGppdC5sb2FkNjQocmVnaXN0ZXJTY3JhdGNoICsgb2Zmc2V0T2ZHUFIo
Z3ByKSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8g
VGhlIEZUTCBjb21waWxhdGlvbiBwcmVzZXJ2ZWQgdGhlIHJlZ2lzdGVyLiBJdHMgbmV3IHZhbHVl
IGlzIHRoZXJlZm9yZQorICAgICAgICAgICAgLy8gaXJyZWxldmFudCwgYnV0IHdlIGNhbiBnZXQg
dGhlIHZhbHVlIHRoYXQgd2FzIHByZXNlcnZlZCBieSB1c2luZyB0aGUgdW53aW5kCisgICAgICAg
ICAgICAvLyBkYXRhLiBXZSd2ZSBhbHJlYWR5IGNvcGllZCBhbGwgdW53aW5kLWFibGUgcHJlc2Vy
dmVkIHJlZ2lzdGVycyBpbnRvIHRoZSB1bndpbmQKKyAgICAgICAgICAgIC8vIHNjcmF0Y2ggYnVm
ZmVyLCBzbyB3ZSBjYW4gZ2V0IGl0IGZyb20gdGhlcmUuCisgICAgICAgICAgICBqaXQubG9hZDY0
KHVud2luZFNjcmF0Y2ggKyB1bndpbmRJbmRleCwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICB9
CisgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBBc3NlbWJseUhlbHBlcnM6OkFk
ZHJlc3MoR1BSSW5mbzo6cmVnVDEsIGN1cnJlbnRPZmZzZXQpKTsKKyAgICB9CisgICAgCisgICAg
Ly8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSByZXR1cm4gaW50byB0aGUgcmVnaXN0ZXIg
cmVzdG9yYXRpb24gdGh1bmsuIFRoaXMgd29ya3MKKyAgICAvLyBkaWZmZXJlbnRseSBkZXBlbmRp
bmcgb24gd2hldGhlciBvciBub3Qgd2UgaGFkIGFyaXR5IGlzc3Vlcy4KKyAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBhcml0eUludGFjdEZvclJldHVyblBDID0KKyAgICAgICAgaml0LmJyYW5jaFRl
c3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgR1BSSW5mbzo6cmVnVDMpOworICAgIAorICAgIC8v
IFRoZSByZXR1cm4gUEMgaW4gdGhlIGNhbGwgZnJhbWUgaGVhZGVyIHBvaW50cyBhdCBleGFjdGx5
IHRoZSByaWdodCBhcml0eSByZXN0b3JhdGlvbgorICAgIC8vIHRodW5rLiBXZSBkb24ndCB3YW50
IHRvIGNoYW5nZSB0aGF0LiBCdXQgdGhlIGFyaXR5IHJlc3RvcmF0aW9uIHRodW5rJ3MgZnJhbWUg
aGFzIGEKKyAgICAvLyByZXR1cm4gUEMgYW5kIHdlIHdhbnQgdG8gcmVyb3V0ZSB0aGF0IHRvIG91
ciByZWdpc3RlciByZXN0b3JhdGlvbiB0aHVuay4gVGhlIGFyaXR5CisgICAgLy8gcmVzdG9yYXRp
b24ncyByZXR1cm4gUEMganVzdCBqdXN0IGJlbG93IHJlZ1QxLCBhbmQgdGhlIHJlZ2lzdGVyIHJl
c3RvcmF0aW9uJ3MgcmV0dXJuIFBDCisgICAgLy8gaXMgcmlnaHQgYXQgcmVnVDEuCisgICAgaml0
LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDEsIC1zdGF0aWNf
Y2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpKSwgR1BSSW5mbzo6cmVnVDApOworICAg
IGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5z
dG9yZVB0cigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIodm0tPmdldENU
SVN0dWIocmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSksCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OnJl
Z1QxLCAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAgIAor
ICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGFyaXR5UmV0dXJuUENSZWFkeSA9IGppdC5qdW1wKCk7
CisKKyAgICBhcml0eUludGFjdEZvclJldHVyblBDLmxpbmsoJmppdCk7CisgICAgCisgICAgaml0
LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9p
bnRlclJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpLCBHUFJJbmZvOjpyZWdU
MCk7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSk7Cisg
ICAgaml0LnN0b3JlUHRyKAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cih2
bS0+Z2V0Q1RJU3R1YihyZWdpc3RlclJlc3RvcmF0aW9uVGh1bmtHZW5lcmF0b3IpLmNvZGUoKS5l
eGVjdXRhYmxlQWRkcmVzcygpKSwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFj
cm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zm
c2V0KCkpKTsKKyAgICAKKyAgICBhcml0eVJldHVyblBDUmVhZHkubGluaygmaml0KTsKKyAgICAK
ICAgICAvLyBOb3cgZ2V0IHN0YXRlIG91dCBvZiB0aGUgc2NyYXRjaCBidWZmZXIgYW5kIHBsYWNl
IGl0IGJhY2sgaW50byB0aGUgc3RhY2suIFRoaXMgcGFydCBkb2VzCiAgICAgLy8gYWxsIHJlYm94
aW5nLgogICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBleGl0Lm1fdmFsdWVzLnNpemUoKTsgaW5k
ZXgtLTspIHsKQEAgLTE1MCwyNiArMzMxLDE2IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAog
ICAgICAgICBqaXQubG9hZDY0KHNjcmF0Y2ggKyBpbmRleCwgR1BSSW5mbzo6cmVnVDApOwogICAg
ICAgICByZWJveEFjY29yZGluZ1RvRm9ybWF0KAogICAgICAgICAgICAgdmFsdWUudmFsdWVGb3Jt
YXQoKSwgaml0LCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1Qy
KTsKLSAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6
YWRkcmVzc0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KG9wZXJhbmQpLCBHUFJJbmZv
OjpyZWdUNCkpOworICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlI
ZWxwZXJzOjphZGRyZXNzRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4ob3BlcmFuZCkp
KTsKICAgICB9CiAgICAgCi0gICAgLy8gUmVzdG9yZSB0aGUgb2xkIHN0YWNrIHBvaW50ZXIgYW5k
IHRoZW4gcHV0IHJlZ1Q0IGludG8gY2FsbEZyYW1lUmVnaXN0ZXIuIFRoZSBpZGVhIGlzCi0gICAg
Ly8gdGhhdCB0aGUgRlRMIGNhbGwgZnJhbWUgaXMgcHVzaGVkIG9udG8gdGhlIEpTIGNhbGwgZnJh
bWUgYW5kIHdlIGNhbiByZWNvdmVyIHRoZSBvbGQKLSAgICAvLyB2YWx1ZSBvZiB0aGUgc3RhY2sg
cG9pbnRlciBieSBwb3BwaW5nIHRoZSBGVEwgY2FsbCBmcmFtZS4gV2UgYWxyZWFkeSBrbm93IHdo
YXQgdGhlCi0gICAgLy8gZnJhbWUgcG9pbnRlciBpbiB0aGUgSlMgY2FsbCBmcmFtZSB3YXMgYmVj
YXVzZSBpdCB3b3VsZCBoYXZlIGJlZW4gcGFzc2VkIGFzIGFuIGFyZ3VtZW50Ci0gICAgLy8gdG8g
dGhlIEZUTCBjYWxsIGZyYW1lLgotICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBv
aW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAg
ICBqaXQucG9wKEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgIGppdC5wb3AoR1BSSW5mbzo6bm9u
QXJnR1BSMCk7Ci0gICAgaml0Lm1vdmUoR1BSSW5mbzo6cmVnVDQsIEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyKTsKLSAgICAKICAgICBoYW5kbGVFeGl0Q291bnRzKGppdCwgZXhpdCk7CiAgICAg
cmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhqaXQsIGV4aXQpOwogICAgIGFkanVzdEFuZEp1bXBUb1Rh
cmdldChqaXQsIGV4aXQpOwogICAgIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAm
aml0LCBjb2RlQmxvY2spOwogICAgIGV4aXQubV9jb2RlID0gRklOQUxJWkVfQ09ERV9JRigKLSAg
ICAgICAgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCksCisgICAgICAgIHNob3VsZFNob3dEaXNhc3Nl
bWJseSgpIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwKICAgICAgICAgcGF0Y2hCdWZmZXIsCiAg
ICAgICAgICgiRlRMIE9TUiBleGl0ICMldSAoJXMsICVzKSBmcm9tICVzLCB3aXRoIG9wZXJhbmRz
ID0gJXMsIGFuZCByZWNvcmQgPSAlcyIsCiAgICAgICAgICAgICBleGl0SUQsIHRvQ1N0cmluZyhl
eGl0Lm1fY29kZU9yaWdpbikuZGF0YSgpLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPdXRwdXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE91dHB1dC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE91dHB1dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODQsNyArMTg0LDIzIEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIHJldHVybiBjYWxsKGRvdWJsZUFic0ludHJpbnNpYygpLCB2YWx1ZSk7CiAg
ICAgfQotICAgIAorICAgIExWYWx1ZSBkb3VibGVTaW4oTFZhbHVlIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGNhbGwoZG91YmxlU2luSW50cmluc2ljKCksIHZhbHVlKTsKKyAgICB9CisK
KworICAgIExWYWx1ZSBkb3VibGVDb3MoTFZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGNhbGwoZG91YmxlQ29zSW50cmluc2ljKCksIHZhbHVlKTsKKyAgICB9CisKKyAgICBMVmFs
dWUgZG91YmxlU3FydChMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gY2FsbChk
b3VibGVTcXJ0SW50cmluc2ljKCksIHZhbHVlKTsKKyAgICB9CisKKwogICAgIHN0YXRpYyBib29s
IGhhc1NlbnNpYmxlRG91YmxlVG9JbnQoKSB7IHJldHVybiBpc1g4NigpOyB9CiAgICAgTFZhbHVl
IHNlbnNpYmxlRG91YmxlVG9JbnQoTFZhbHVlIHZhbHVlKQogICAgIHsKQEAgLTIxMCw2ICsyMjYs
NyBAQCBwdWJsaWM6CiAgICAgTFZhbHVlIGNhc3RUb0ludDMyKExWYWx1ZSB2YWx1ZSkgeyByZXR1
cm4gaW50Q2FzdCh2YWx1ZSwgaW50MzIpOyB9CiAgICAgTFZhbHVlIGZwQ2FzdChMVmFsdWUgdmFs
dWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxkRlBDYXN0KG1fYnVpbGRlciwgdmFsdWUsIHR5
cGUpOyB9CiAgICAgTFZhbHVlIGludFRvUHRyKExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyBy
ZXR1cm4gYnVpbGRJbnRUb1B0cihtX2J1aWxkZXIsIHZhbHVlLCB0eXBlKTsgfQorICAgIExWYWx1
ZSBwdHJUb0ludChMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxkUHRyVG9J
bnQobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0KICAgICBMVmFsdWUgYml0Q2FzdChMVmFsdWUg
dmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxkQml0Q2FzdChtX2J1aWxkZXIsIHZhbHVl
LCB0eXBlKTsgfQogICAgIAogICAgIExWYWx1ZSBhbGxvY2EoTFR5cGUgdHlwZSkgeyByZXR1cm4g
YnVpbGRBbGxvY2EobV9idWlsZGVyLCB0eXBlKTsgfQpAQCAtMzE0LDYgKzMzMSwyMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzdG9yZVB0cihMVmFsdWUgdmFsdWUsIExWYWx1ZSBiYXNlLCBjb25zdCBB
YnN0cmFjdEZpZWxkJiBmaWVsZCkgeyBzdG9yZVB0cih2YWx1ZSwgYWRkcmVzcyhiYXNlLCBmaWVs
ZCkpOyB9CiAgICAgdm9pZCBzdG9yZURvdWJsZShMVmFsdWUgdmFsdWUsIExWYWx1ZSBiYXNlLCBj
b25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyBzdG9yZURvdWJsZSh2YWx1ZSwgYWRkcmVzcyhi
YXNlLCBmaWVsZCkpOyB9CiAgICAgCisgICAgdm9pZCBhc2NyaWJlUmFuZ2UoTFZhbHVlIGxvYWRJ
bnN0cnVjdGlvbiwgY29uc3QgVmFsdWVSYW5nZSYgcmFuZ2UpCisgICAgeworICAgICAgICByYW5n
ZS5kZWNvcmF0ZUluc3RydWN0aW9uKG1fY29udGV4dCwgbG9hZEluc3RydWN0aW9uLCByYW5nZUtp
bmQpOworICAgIH0KKyAgICAKKyAgICBMVmFsdWUgbm9uTmVnYXRpdmUzMihMVmFsdWUgbG9hZElu
c3RydWN0aW9uKQorICAgIHsKKyAgICAgICAgYXNjcmliZVJhbmdlKGxvYWRJbnN0cnVjdGlvbiwg
bm9uTmVnYXRpdmVJbnQzMik7CisgICAgICAgIHJldHVybiBsb2FkSW5zdHJ1Y3Rpb247CisgICAg
fQorICAgIAorICAgIExWYWx1ZSBsb2FkMzJOb25OZWdhdGl2ZShUeXBlZFBvaW50ZXIgcG9pbnRl
cikgeyByZXR1cm4gbm9uTmVnYXRpdmUzMihsb2FkMzIocG9pbnRlcikpOyB9CisgICAgTFZhbHVl
IGxvYWQzMk5vbk5lZ2F0aXZlKExWYWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxkJiBmaWVs
ZCkgeyByZXR1cm4gbm9uTmVnYXRpdmUzMihsb2FkMzIoYmFzZSwgZmllbGQpKTsgfQorICAgIAog
ICAgIExWYWx1ZSBpY21wKExJbnRQcmVkaWNhdGUgY29uZCwgTFZhbHVlIGxlZnQsIExWYWx1ZSBy
aWdodCkgeyByZXR1cm4gYnVpbGRJQ21wKG1fYnVpbGRlciwgY29uZCwgbGVmdCwgcmlnaHQpOyB9
CiAgICAgTFZhbHVlIGVxdWFsKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIGlj
bXAoTExWTUludEVRLCBsZWZ0LCByaWdodCk7IH0KICAgICBMVmFsdWUgbm90RXF1YWwoTFZhbHVl
IGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gaWNtcChMTFZNSW50TkUsIGxlZnQsIHJpZ2h0
KTsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWNvdmVyeU9wY29kZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWNvdmVyeU9w
Y29kZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJl
Y292ZXJ5T3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJGVExSZWNvdmVyeU9wY29kZS5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQp
CisKKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3Zv
aWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OkZUTDo6UmVjb3ZlcnlPcGNv
ZGUgb3Bjb2RlKQoreworICAgIHN3aXRjaCAob3Bjb2RlKSB7CisgICAgY2FzZSBKU0M6OkZUTDo6
QWRkUmVjb3Zlcnk6CisgICAgICAgIG91dC5wcmludCgiQWRkIik7CisgICAgICAgIHJldHVybjsK
KyAgICBjYXNlIEpTQzo6RlRMOjpTdWJSZWNvdmVyeToKKyAgICAgICAgb3V0LnByaW50KCJTdWIi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklU
KQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWNvdmVyeU9wY29k
ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWNvdmVy
eU9wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBGVExSZWNvdmVyeU9wY29k
ZV9oCisjZGVmaW5lIEZUTFJlY292ZXJ5T3Bjb2RlX2gKKworI2lmIEVOQUJMRShGVExfSklUKQor
CituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK2VudW0gUmVjb3ZlcnlPcGNvZGUg
eworICAgIEFkZFJlY292ZXJ5LAorICAgIFN1YlJlY292ZXJ5Cit9OworCit9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6RlRMCisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBQcmludFN0cmVhbTsKK3Zv
aWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6RlRMOjpSZWNvdmVyeU9wY29kZSk7
CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNl
bmRpZiAvLyBGVExSZWNvdmVyeU9wY29kZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmNwcAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMUmVnaXN0ZXJB
dE9mZnNldC5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKK25hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgRlRMIHsKKwordm9pZCBSZWdpc3RlckF0T2Zmc2V0OjpkdW1wKFByaW50U3RyZWFtJiBv
dXQpIGNvbnN0Cit7CisgICAgb3V0LnByaW50KGdwcigpLCAiIGF0ICIsIG9mZnNldCgpKTsKK30K
KworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQp
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVnaXN0ZXJBdE9m
ZnNldC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdp
c3RlckF0T2Zmc2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZUTFJlZ2lzdGVy
QXRPZmZzZXRfaAorI2RlZmluZSBGVExSZWdpc3RlckF0T2Zmc2V0X2gKKworI2lmIEVOQUJMRShG
VExfSklUKQorCisjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVh
bS5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK2NsYXNzIFJlZ2lzdGVy
QXRPZmZzZXQgeworcHVibGljOgorICAgIFJlZ2lzdGVyQXRPZmZzZXQoKQorICAgICAgICA6IG1f
Z3ByKEludmFsaWRHUFJSZWcpCisgICAgICAgICwgbV9vZmZzZXQoMCkKKyAgICB7CisgICAgfQor
ICAgIAorICAgIFJlZ2lzdGVyQXRPZmZzZXQoR1BSUmVnIGdwciwgcHRyZGlmZl90IG9mZnNldCkK
KyAgICAgICAgOiBtX2dwcihncHIpCisgICAgICAgICwgbV9vZmZzZXQob2Zmc2V0KQorICAgIHsK
KyAgICB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiBtX2dwciA9
PSBJbnZhbGlkR1BSUmVnOyB9CisgICAgCisgICAgR1BSUmVnIGdwcigpIGNvbnN0IHsgcmV0dXJu
IG1fZ3ByOyB9CisgICAgcHRyZGlmZl90IG9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0
OyB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXQmIG90
aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGdwcigpID09IG90aGVyLmdwcigpICYm
IG9mZnNldCgpID09IG90aGVyLm9mZnNldCgpOworICAgIH0KKyAgICAKKyAgICBib29sIG9wZXJh
dG9yPChjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAg
IGlmIChncHIoKSAhPSBvdGhlci5ncHIoKSkKKyAgICAgICAgICAgIHJldHVybiBncHIoKSA8IG90
aGVyLmdwcigpOworICAgICAgICByZXR1cm4gb2Zmc2V0KCkgPCBvdGhlci5vZmZzZXQoKTsKKyAg
ICB9CisgICAgCisgICAgc3RhdGljIEdQUlJlZyBnZXRHUFIoUmVnaXN0ZXJBdE9mZnNldCogdmFs
dWUpIHsgcmV0dXJuIHZhbHVlLT5ncHIoKTsgfQorICAgIAorICAgIHZvaWQgZHVtcChQcmludFN0
cmVhbSYgb3V0KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBHUFJSZWcgbV9ncHI7CisgICAgcHRy
ZGlmZl90IG1fb2Zmc2V0OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5k
aWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExSZWdpc3RlckF0T2Zmc2V0X2gK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNw
cAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93
UGF0aENhbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEZU
TF9KSVQpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJDYWxsRnJhbWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiRlRMU3RhdGUuaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCiAK
QEAgLTEzNCwxMSArMTM1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFNsb3dQYXRoQ2Fs
bEtleSh1c2VkUmVnaXN0ZXJzKCksIGNhbGxUYXJnZXQsIG9mZnNldCgpKTsKICAgICB9CiAgICAg
Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgbWFrZUNhbGwodm9pZCogY2FsbFRhcmdldCkKKyAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBtYWtlQ2FsbCh2b2lkKiBjYWxsVGFyZ2V0LCBNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3QqIGV4Y2VwdGlvblRhcmdldCkKICAgICB7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIHJlc3VsdCA9IG1faml0LmNhbGwoKTsKICAgICAgICAgbV9zdGF0ZS5m
aW5hbGl6ZXItPnNsb3dQYXRoQ2FsbHMuYXBwZW5kKFNsb3dQYXRoQ2FsbCgKICAgICAgICAgICAg
IHJlc3VsdCwga2V5V2l0aFRhcmdldChjYWxsVGFyZ2V0KSkpOworICAgICAgICBpZiAoZXhjZXB0
aW9uVGFyZ2V0KQorICAgICAgICAgICAgZXhjZXB0aW9uVGFyZ2V0LT5hcHBlbmQobV9qaXQuZW1p
dEV4Y2VwdGlvbkNoZWNrKCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAK
QEAgLTE1NywzMiArMTYwLDQ0IEBAIHByaXZhdGU6CiAKIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFj
ZQogCit2b2lkIHN0b3JlQ29kZU9yaWdpbihTdGF0ZSYgc3RhdGUsIENDYWxsSGVscGVycyYgaml0
LCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCit7CisgICAgaWYgKCFjb2RlT3JpZ2luLmlzU2V0KCkp
CisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICB1bnNpZ25lZCBpbmRleCA9IHN0YXRlLmppdENv
ZGUtPmNvbW1vbi5hZGRDb2RlT3JpZ2luKGNvZGVPcmlnaW4pOworICAgIHVuc2lnbmVkIGxvY2F0
aW9uQml0cyA9IENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFzQ29kZU9yaWdpbkluZGV4KGlu
ZGV4KTsKKyAgICBqaXQuc3RvcmUzMigKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIobG9jYXRpb25CaXRzKSwKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjp0YWdGb3Ioc3RhdGljX2Nh
c3Q8VmlydHVhbFJlZ2lzdGVyPihKU1N0YWNrOjpBcmd1bWVudENvdW50KSkpOworfQorCiBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKAotICAgIFN0YXRlJiBzdGF0ZSwgY29uc3Qg
UmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENDYWxsSGVscGVycyYgaml0LCAKLSAgICBKX0pJ
VE9wZXJhdGlvbl9FU3NpSkkgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgY2FsbEZy
YW1lUmVnaXN0ZXIsCi0gICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBHUFJSZWcgb2Jq
ZWN0LCBTdHJpbmdJbXBsKiB1aWQpCisgICAgU3RhdGUmIHN0YXRlLCBjb25zdCBSZWdpc3RlclNl
dCYgdXNlZFJlZ2lzdGVycywgQ0NhbGxIZWxwZXJzJiBqaXQsCisgICAgQ29kZU9yaWdpbiBjb2Rl
T3JpZ2luLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QqIGV4Y2VwdGlvblRhcmdldCwKKyAgICBK
X0pJVE9wZXJhdGlvbl9FU3NpSkkgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sCisgICAgR1BSUmVnIG9iamVjdCwgU3RyaW5nSW1wbCogdWlkKQog
eworICAgIHN0b3JlQ29kZU9yaWdpbihzdGF0ZSwgaml0LCBjb2RlT3JpZ2luKTsKICAgICBDYWxs
Q29udGV4dCBjb250ZXh0KHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBqaXQsIDQsIHJlc3VsdCk7Ci0g
ICAgaml0LnNldHVwQXJndW1lbnRzKAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwgb2JqZWN0LAorICAgIGppdC5zZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihzdHViSW5mbyksIG9iamVjdCwKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KHVpZCkpOwotICAgIHJldHVybiBjb250ZXh0Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lkKj4o
b3BlcmF0aW9uKSk7Ci0gICAgLy8gRklYTUU6IEZUTCBzaG91bGQgc3VwcG9ydCBleGNlcHRpb25z
LgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjIK
KyAgICByZXR1cm4gY29udGV4dC5tYWtlQ2FsbChiaXR3aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlv
biksIGV4Y2VwdGlvblRhcmdldCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oCiAgICAgU3RhdGUmIHN0YXRlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVy
cywgQ0NhbGxIZWxwZXJzJiBqaXQsIAotICAgIFZfSklUT3BlcmF0aW9uX0VTc2lKSkkgb3BlcmF0
aW9uLCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBHUFJSZWcgdmFsdWUsIEdQUlJlZyBvYmplY3QsIFN0cmluZ0ltcGwqIHVpZCkKKyAg
ICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCogZXhjZXB0
aW9uVGFyZ2V0LAorICAgIFZfSklUT3BlcmF0aW9uX0VTc2lKSkkgb3BlcmF0aW9uLCBTdHJ1Y3R1
cmVTdHViSW5mbyogc3R1YkluZm8sIEdQUlJlZyB2YWx1ZSwKKyAgICBHUFJSZWcgb2JqZWN0LCBT
dHJpbmdJbXBsKiB1aWQpCiB7CisgICAgc3RvcmVDb2RlT3JpZ2luKHN0YXRlLCBqaXQsIGNvZGVP
cmlnaW4pOwogICAgIENhbGxDb250ZXh0IGNvbnRleHQoc3RhdGUsIHVzZWRSZWdpc3RlcnMsIGpp
dCwgNSwgSW52YWxpZEdQUlJlZyk7Ci0gICAgaml0LnNldHVwQXJndW1lbnRzKAotICAgICAgICBj
YWxsRnJhbWVSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwg
dmFsdWUsIG9iamVjdCwKKyAgICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKAorICAg
ICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoc3R1YkluZm8pLCB2YWx1ZSwgb2JqZWN0
LAogICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodWlkKSk7Ci0gICAgcmV0dXJu
IGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb24pKTsKLSAgICAv
LyBGSVhNRTogRlRMIHNob3VsZCBzdXBwb3J0IGV4Y2VwdGlvbnMuCi0gICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgorICAgIHJldHVybiBjb250ZXh0
Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0aW9uKSwgZXhjZXB0aW9uVGFyZ2V0
KTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01
NSwxMyArNTUsMTUgQEAgcHJpdmF0ZToKICAgICBTbG93UGF0aENhbGxLZXkgbV9rZXk7CiB9Owog
Cit2b2lkIHN0b3JlQ29kZU9yaWdpbihTdGF0ZSYsIENDYWxsSGVscGVycyYsIENvZGVPcmlnaW4p
OworCiBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKAotICAgIFN0YXRlJiwgY29u
c3QgUmVnaXN0ZXJTZXQmLCBDQ2FsbEhlbHBlcnMmLCBKX0pJVE9wZXJhdGlvbl9FU3NpSkksCi0g
ICAgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEdQUlJlZyBvYmplY3QsCisgICAgU3RhdGUmLCBjb25zdCBSZWdpc3RlclNldCYsIEND
YWxsSGVscGVycyYsIENvZGVPcmlnaW4sIENDYWxsSGVscGVyczo6SnVtcExpc3QqLAorICAgIEpf
SklUT3BlcmF0aW9uX0VTc2lKSSwgR1BSUmVnIHJlc3VsdCwgU3RydWN0dXJlU3R1YkluZm8qLCBH
UFJSZWcgb2JqZWN0LAogICAgIFN0cmluZ0ltcGwqIHVpZCk7CiBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKAotICAgIFN0YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmLCBDQ2FsbEhl
bHBlcnMmLCBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJLAotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdp
c3RlciwgU3RydWN0dXJlU3R1YkluZm8qLCBHUFJSZWcgdmFsdWUsIEdQUlJlZyBvYmplY3QsCisg
ICAgU3RhdGUmLCBjb25zdCBSZWdpc3RlclNldCYsIENDYWxsSGVscGVycyYsIENvZGVPcmlnaW4s
IENDYWxsSGVscGVyczo6SnVtcExpc3QqLAorICAgIFZfSklUT3BlcmF0aW9uX0VTc2lKSkksIFN0
cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnIHZhbHVlLCBHUFJSZWcgb2JqZWN0LAogICAgIFN0cmlu
Z0ltcGwqIHVpZCk7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzksNyArNzksOSBAQCB2b2lkIFN0YWNrTWFwczo6TG9jYXRpb246OnJlc3RvcmVJbnRv
KAogCiBib29sIFN0YWNrTWFwczo6UmVjb3JkOjpwYXJzZShEYXRhVmlldyogdmlldywgdW5zaWdu
ZWQmIG9mZnNldCkKIHsKLSAgICBwYXRjaHBvaW50SUQgPSB2aWV3LT5yZWFkPHVpbnQzMl90Pihv
ZmZzZXQsIHRydWUpOworICAgIGludDY0X3QgaWQgPSB2aWV3LT5yZWFkPGludDY0X3Q+KG9mZnNl
dCwgdHJ1ZSk7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PGludDMyX3Q+KGlkKSA9PSBpZCk7Cisg
ICAgcGF0Y2hwb2ludElEID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGlkKTsKICAgICBpZiAoc3Rh
dGljX2Nhc3Q8aW50MzJfdD4ocGF0Y2hwb2ludElEKSA8IDApCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAKQEAgLTkwLDYgKzkyLDEzIEBAIGJvb2wgU3RhY2tNYXBzOjpSZWNvcmQ6OnBhcnNl
KERhdGFWaWV3KiAKICAgICB3aGlsZSAobGVuZ3RoLS0pCiAgICAgICAgIGxvY2F0aW9ucy5hcHBl
bmQocmVhZE9iamVjdDxMb2NhdGlvbj4odmlldywgb2Zmc2V0KSk7CiAgICAgCisgICAgdW5zaWdu
ZWQgbnVtTGl2ZU91dHMgPSB2aWV3LT5yZWFkPHVpbnQxNl90PihvZmZzZXQsIHRydWUpOworICAg
IHdoaWxlIChudW1MaXZlT3V0cy0tKSB7CisgICAgICAgIHZpZXctPnJlYWQ8dWludDE2X3Q+KG9m
ZnNldCwgdHJ1ZSk7IC8vIHJlZ251bQorICAgICAgICB2aWV3LT5yZWFkPHVpbnQ4X3Q+KG9mZnNl
dCwgdHJ1ZSk7IC8vIHJlc2VydmVkCisgICAgICAgIHZpZXctPnJlYWQ8dWludDhfdD4ob2Zmc2V0
LCB0cnVlKTsgLy8gc2l6ZSBpbiBieXRlcworICAgIH0KKyAgICAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5oCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIHN0cnVjdCBTdGFja01hcHMgewogICAg
ICAgICB1aW50MTZfdCBkd2FyZlJlZ051bTsgLy8gUmVwcmVzZW50ZWQgYXMgYSAxMi1iaXQgaW50
IGluIHRoZSBzZWN0aW9uLgogICAgICAgICBpbnQ4X3Qgc2l6ZTsKICAgICAgICAgS2luZCBraW5k
OwotICAgICAgICBpbnQxNl90IG9mZnNldDsKKyAgICAgICAgaW50MzJfdCBvZmZzZXQ7CiAgICAg
ICAgIAogICAgICAgICB2b2lkIHBhcnNlKERhdGFWaWV3KiwgdW5zaWduZWQmIG9mZnNldCk7CiAg
ICAgICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiAr
NDMsOCBAQCBTdGF0ZTo6U3RhdGUoR3JhcGgmIGdyYXBoKQogICAgICwgbW9kdWxlKDApCiAgICAg
LCBmdW5jdGlvbigwKQogICAgICwgZ2VuZXJhdGVkRnVuY3Rpb24oMCkKKyAgICAsIGNvbXBhY3RV
bndpbmQoMCkKKyAgICAsIGNvbXBhY3RVbndpbmRTaXplKDApCiB7CiAgICAgc3dpdGNoIChncmFw
aC5tX3BsYW4ubW9kZSkgewogICAgIGNhc2UgRlRMTW9kZTogewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMU3RhdGUuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExTdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiRlRMSklUQ29kZS5o
IgogI2luY2x1ZGUgIkZUTEpJVEZpbmFsaXplci5oIgorI2luY2x1ZGUgIkZUTEpTQ2FsbC5oIgog
I2luY2x1ZGUgIkZUTFN0YWNrTWFwcy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgog
CkBAIC01NywxMCArNTgsMTUgQEAgcHVibGljOgogICAgIFJlZlB0cjxKSVRDb2RlPiBqaXRDb2Rl
OwogICAgIEdlbmVyYXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0aW9uOwogICAgIEpJVEZpbmFs
aXplciogZmluYWxpemVyOworICAgIHVuc2lnbmVkIGhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQ7
CisgICAgdW5zaWduZWQgY2FwdHVyZWRTdGFja21hcElEOwogICAgIFNlZ21lbnRlZFZlY3RvcjxH
ZXRCeUlkRGVzY3JpcHRvcj4gZ2V0QnlJZHM7CiAgICAgU2VnbWVudGVkVmVjdG9yPFB1dEJ5SWRE
ZXNjcmlwdG9yPiBwdXRCeUlkczsKKyAgICBWZWN0b3I8SlNDYWxsPiBqc0NhbGxzOwogICAgIFZl
Y3RvcjxDU3RyaW5nPiBjb2RlU2VjdGlvbk5hbWVzOwogICAgIFZlY3RvcjxDU3RyaW5nPiBkYXRh
U2VjdGlvbk5hbWVzOworICAgIHZvaWQqIGNvbXBhY3RVbndpbmQ7CisgICAgc2l6ZV90IGNvbXBh
Y3RVbndpbmRTaXplOwogICAgIFJlZkNvdW50ZWRBcnJheTxMU2VjdGlvbldvcmQ+IHN0YWNrbWFw
c1NlY3Rpb247CiAgICAgCiAgICAgdm9pZCBkdW1wU3RhdGUoY29uc3QgY2hhciogd2hlbik7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCShyZXZpc2lvbiAxNjI5
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewog
CiB1c2luZyBuYW1lc3BhY2UgREZHOwogCi1NYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdl
bmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSYgdm0sIGNvbnN0IExvY2F0aW9uJiBsb2NhdGlvbikK
K01hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZN
KiB2bSkKIHsKLSAgICBBc3NlbWJseUhlbHBlcnMgaml0KCZ2bSwgMCk7CisgICAgQXNzZW1ibHlI
ZWxwZXJzIGppdCh2bSwgMCk7CiAgICAgCiAgICAgLy8gTm90ZSB0aGF0IHRoZSAicmV0dXJuIGFk
ZHJlc3MiIHdpbGwgYmUgdGhlIE9TUiBleGl0IElELgogICAgIApAQCAtNTEsNyArNTEsNyBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25UCiAgICAgaml0LnB1c2goR1BS
SW5mbzo6cmVnVDApOwogICAgIGppdC5wdXNoKEdQUkluZm86OnJlZ1QwKTsKICAgICAKLSAgICBT
Y3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0uc2NyYXRjaEJ1ZmZlckZvclNpemUocmVx
dWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSk7CisgICAgU2NyYXRjaEJ1ZmZlciogc2Ny
YXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6ZShyZXF1aXJlZFNjcmF0Y2hNZW1v
cnlTaXplSW5CeXRlcygpKTsKICAgICBjaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4o
c2NyYXRjaEJ1ZmZlci0+ZGF0YUJ1ZmZlcigpKTsKICAgICAKICAgICBzYXZlQWxsUmVnaXN0ZXJz
KGppdCwgYnVmZmVyKTsKQEAgLTYwLDcgKzYwLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9z
ckV4aXRHZW5lcmF0aW9uVAogICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKHNjcmF0Y2hCdWZmZXItPmFjdGl2ZUxlbmd0aFB0cigpKSwgR1BSSW5mbzo6bm9uQXJnR1BS
MSk7CiAgICAgaml0LnN0b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHJlcXVp
cmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVzKCkpLCBHUFJJbmZvOjpub25BcmdHUFIxKTsKIAot
ICAgIGxvY2F0aW9uLnJlc3RvcmVJbnRvKGppdCwgYnVmZmVyLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjAsIDEpOworICAgIGppdC5sb2FkUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5wZWVrKEdQUkluZm86OmFyZ3VtZW50R1BSMSwg
Myk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgZnVuY3Rpb25DYWxsID0gaml0LmNhbGwoKTsK
ICAgICAKQEAgLTcxLDYgKzcxLDEwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2Vu
ZXJhdGlvblQKICAgICAKICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BS
SW5mbzo6cmVnVDApOwogICAgIAorICAgIC8vIE1ha2Ugc3VyZSB3ZSB0ZWxsIHRoZSBHQyB0aGF0
IHdlJ3JlIG5vdCB1c2luZyB0aGUgc2NyYXRjaCBidWZmZXIgYW55bW9yZS4KKyAgICBqaXQubW92
ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzY3JhdGNoQnVmZmVyLT5hY3RpdmVMZW5n
dGhQdHIoKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3RvcmVQdHIoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIoMCksIEdQUkluZm86OnJlZ1QxKTsKKyAgICAKICAgICAvLyBQcmVw
YXJlIGZvciB0YWlsIGNhbGwuCiAgICAgaml0LnBvcChHUFJJbmZvOjpyZWdUMSk7CiAgICAgaml0
LnBvcChHUFJJbmZvOjpyZWdUMSk7CkBAIC04MSwxNCArODUsMTQgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVAogICAgIC8vIHJlc3RvcmUgYWxsIHJlZ2lzdGVycy4K
ICAgICAKICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6
cmVnVDApOwotICAgIAorCiAgICAgcmVzdG9yZUFsbFJlZ2lzdGVycyhqaXQsIGJ1ZmZlcik7CiAK
ICAgICBqaXQucmV0KCk7CiAgICAgCi0gICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcih2bSwgJmpp
dCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2bSwgJmpp
dCwgR0xPQkFMX1RIVU5LX0lEKTsKICAgICBwYXRjaEJ1ZmZlci5saW5rKGZ1bmN0aW9uQ2FsbCwg
Y29tcGlsZUZUTE9TUkV4aXQpOwotICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVy
LCAoIkZUTCBPU1IgZXhpdCBnZW5lcmF0aW9uIHRodW5rIGZvciBjYWxsRnJhbWUgYXQgJXMiLCB0
b0NTdHJpbmcobG9jYXRpb24pLmRhdGEoKSkpOworICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBh
dGNoQnVmZmVyLCAoIkZUTCBPU1IgZXhpdCBnZW5lcmF0aW9uIHRodW5rIikpOwogfQogCiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IoVk0mIHZtLCBjb25z
dCBTbG93UGF0aENhbGxLZXkmIGtleSkKQEAgLTExOSwxMSArMTIzLDEzIEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBzbG93UGF0aENhbGxUaHVua0cKICAgICAgICAgY3VycmVudE9mZnNldCArPSBz
aXplb2YoZG91YmxlKTsKICAgICB9CiAgICAgCisgICAgLy8gRklYTUU6IENTdGFjayAtIE5lZWQg
dG8gZG8gc29lbWV0aGluZyBsaWtlIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgIGpp
dC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAg
ICAgaml0LnN0b3JlUHRyKEdQUkluZm86Om5vbkFyZ0dQUjAsIEFzc2VtYmx5SGVscGVyczo6QWRk
cmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGtleS5vZmZzZXQoKSkp
OwogICAgIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgpOwotICAgIAor
CisgICAgLy8gRklYTUU6IENTdGFjayAtIE5lZWQgdG8gZG8gc29tZXRoaW5nIGxpa2Ugaml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgaml0LmxvYWRQdHIoQXNzZW1ibHlIZWxwZXJzOjpB
ZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgp
KSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKICAgICBqaXQucmVzdG9yZVJl
dHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BS
KTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuaAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuaAkod29y
a2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBWTTsKIAogbmFtZXNwYWNlIEZUTCB7
CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9y
KFZNJiwgY29uc3QgTG9jYXRpb24mKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2Vu
ZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1Bh
dGhDYWxsVGh1bmtHZW5lcmF0b3IoVk0mLCBjb25zdCBTbG93UGF0aENhbGxLZXkmKTsKIAogdGVt
cGxhdGU8dHlwZW5hbWUgS2V5VHlwZUFyZ3VtZW50PgpAQCAtNzgsMTIgKzc4LDYgQEAgdHlwZW5h
bWUgTWFwVHlwZTo6S2V5VHlwZSBrZXlGb3JUaHVuayhNYQogCiBjbGFzcyBUaHVua3MgewogcHVi
bGljOgotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZXRPU1JFeGl0R2VuZXJhdGlvblRodW5r
KFZNJiB2bSwgY29uc3QgTG9jYXRpb24mIGxvY2F0aW9uKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGdlbmVyYXRlSWZOZWNlc3NhcnkoCi0gICAgICAgICAgICB2bSwgbV9vc3JFeGl0VGh1bmtzLCBs
b2NhdGlvbiwgb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcik7Ci0gICAgfQotICAgIAog
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZXRTbG93UGF0aENhbGxUaHVuayhWTSYgdm0sIGNv
bnN0IFNsb3dQYXRoQ2FsbEtleSYga2V5KQogICAgIHsKICAgICAgICAgcmV0dXJuIGdlbmVyYXRl
SWZOZWNlc3NhcnkoCkBAIC05Niw3ICs5MCw2IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2
YXRlOgotICAgIFRodW5rTWFwPExvY2F0aW9uPiBtX29zckV4aXRUaHVua3M7CiAgICAgVGh1bmtN
YXA8U2xvd1BhdGhDYWxsS2V5PiBtX3Nsb3dQYXRoQ2FsbFRodW5rczsKIH07CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53aW5kSW5mby5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExVbndpbmRJbmZvLmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53aW5kSW5mby5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZUTFVud2luZElu
Zm8uaCIKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSA8bWFjaC1vL2NvbXBhY3Rf
dW53aW5kX2VuY29kaW5nLmg+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CisKK25hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworVW53aW5kSW5mbzo6VW53aW5kSW5mbygpIHsgfQor
VW53aW5kSW5mbzo6flVud2luZEluZm8oKSB7IH0KKworbmFtZXNwYWNlIHsKKworc3RydWN0IENv
bXBhY3RVbndpbmQgeworICAgIHZvaWQqIGZ1bmN0aW9uOworICAgIHVpbnQzMl90IHNpemU7Cisg
ICAgY29tcGFjdF91bndpbmRfZW5jb2RpbmdfdCBlbmNvZGluZzsKKyAgICB2b2lkKiBwZXJzb25h
bGl0eTsKKyAgICB2b2lkKiBsc2RhOworfTsKKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisK
K3ZvaWQgVW53aW5kSW5mbzo6cGFyc2Uodm9pZCogc2VjdGlvbiwgc2l6ZV90IHNpemUsIEdlbmVy
YXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0aW9uKQoreworICAgIG1fcmVnaXN0ZXJzLmNsZWFy
KCk7CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlQoc2VjdGlvbik7CisgICAgUkVMRUFTRV9BU1NF
UlQoc2l6ZSA+PSBzaXplb2YoQ29tcGFjdFVud2luZCkpOworICAgIAorICAgIENvbXBhY3RVbndp
bmQqIGRhdGEgPSBiaXR3aXNlX2Nhc3Q8Q29tcGFjdFVud2luZCo+KHNlY3Rpb24pOworICAgIAor
ICAgIFJFTEVBU0VfQVNTRVJUKCFkYXRhLT5wZXJzb25hbGl0eSk7IC8vIFdlIGRvbid0IGtub3cg
aG93IHRvIGhhbmRsZSB0aGlzLgorICAgIFJFTEVBU0VfQVNTRVJUKCFkYXRhLT5sc2RhKTsgLy8g
V2UgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIHRoaXMuCisgICAgUkVMRUFTRV9BU1NFUlQoZGF0
YS0+ZnVuY3Rpb24gPT0gZ2VuZXJhdGVkRnVuY3Rpb24pOyAvLyBUaGUgdW53aW5kIGRhdGEgYmV0
dGVyIGJlIGZvciBvdXIgZnVuY3Rpb24uCisgICAgCisgICAgY29tcGFjdF91bndpbmRfZW5jb2Rp
bmdfdCBlbmNvZGluZyA9IGRhdGEtPmVuY29kaW5nOworICAgIFJFTEVBU0VfQVNTRVJUKCEoZW5j
b2RpbmcgJiBVTldJTkRfSVNfTk9UX0ZVTkNUSU9OX1NUQVJUKSk7CisgICAgUkVMRUFTRV9BU1NF
UlQoIShlbmNvZGluZyAmIFVOV0lORF9IQVNfTFNEQSkpOworICAgIFJFTEVBU0VfQVNTRVJUKCEo
ZW5jb2RpbmcgJiBVTldJTkRfUEVSU09OQUxJVFlfTUFTSykpOworICAgIFJFTEVBU0VfQVNTRVJU
KChlbmNvZGluZyAmIFVOV0lORF9YODZfNjRfTU9ERV9NQVNLKSA9PSBVTldJTkRfWDg2XzY0X01P
REVfUkJQX0ZSQU1FKTsKKyAgICAKKyAgICBpbnQzMl90IG9mZnNldCA9IC0oKGVuY29kaW5nICYg
VU5XSU5EX1g4Nl82NF9SQlBfRlJBTUVfT0ZGU0VUKSA+PiAxNikgKiA4OworICAgIHVpbnQzMl90
IG5leHRSZWdpc3RlcnMgPSBlbmNvZGluZzsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSA1OyBpLS07
KSB7CisgICAgICAgIHVpbnQzMl90IGN1cnJlbnRSZWdpc3RlciA9IG5leHRSZWdpc3RlcnMgJiA3
OworICAgICAgICBuZXh0UmVnaXN0ZXJzID4+PSAzOworICAgICAgICAKKyAgICAgICAgc3dpdGNo
IChjdXJyZW50UmVnaXN0ZXIpIHsKKyAgICAgICAgY2FzZSBVTldJTkRfWDg2XzY0X1JFR19OT05F
OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBVTldJTkRf
WDg2XzY0X1JFR19SQlg6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJB
dE9mZnNldChYODZSZWdpc3RlcnM6OmVieCwgb2Zmc2V0KSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1IxMjoKKyAgICAg
ICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJlZ2lzdGVyczo6
cjEyLCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAg
IGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUjEzOgorICAgICAgICAgICAgbV9yZWdpc3RlcnMuYXBw
ZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjpyMTMsIG9mZnNldCkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBVTldJTkRfWDg2XzY0X1JF
R19SMTQ6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJBdE9mZnNldChY
ODZSZWdpc3RlcnM6OnIxNCwgb2Zmc2V0KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1IxNToKKyAgICAgICAgICAgIG1f
cmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJlZ2lzdGVyczo6cjE1LCBvZmZz
ZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgVU5X
SU5EX1g4Nl82NF9SRUdfUkJQOgorICAgICAgICAgICAgbV9yZWdpc3RlcnMuYXBwZW5kKFJlZ2lz
dGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjplYnAsIG9mZnNldCkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG9mZnNl
dCArPSA4OworICAgIH0KKyAgICAKKyAgICBzdGQ6OnNvcnQobV9yZWdpc3RlcnMuYmVnaW4oKSwg
bV9yZWdpc3RlcnMuZW5kKCkpOworfQorCit2b2lkIFVud2luZEluZm86OmR1bXAoUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKK3sKKyAgICBvdXQucHJpbnQobGlzdER1bXAobV9yZWdpc3RlcnMpKTsK
K30KKworUmVnaXN0ZXJBdE9mZnNldCogVW53aW5kSW5mbzo6ZmluZChHUFJSZWcgZ3ByKSBjb25z
dAoreworICAgIHJldHVybiB0cnlCaW5hcnlTZWFyY2g8UmVnaXN0ZXJBdE9mZnNldCwgR1BSUmVn
PihtX3JlZ2lzdGVycywgbV9yZWdpc3RlcnMuc2l6ZSgpLCBncHIsIFJlZ2lzdGVyQXRPZmZzZXQ6
OmdldEdQUik7Cit9CisKK3Vuc2lnbmVkIFVud2luZEluZm86OmluZGV4T2YoR1BSUmVnIGdwcikg
Y29uc3QKK3sKKyAgICBpZiAoUmVnaXN0ZXJBdE9mZnNldCogcG9pbnRlciA9IGZpbmQoZ3ByKSkK
KyAgICAgICAgcmV0dXJuIHBvaW50ZXIgLSBtX3JlZ2lzdGVycy5iZWdpbigpOworICAgIHJldHVy
biBVSU5UX01BWDsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8g
RU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53
aW5kSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53
aW5kSW5mby5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExV
bndpbmRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZUTFVud2luZEluZm9f
aAorI2RlZmluZSBGVExVbndpbmRJbmZvX2gKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5j
bHVkZSAiRlRMR2VuZXJhdGVkRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJGVExSZWdpc3RlckF0T2Zm
c2V0LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworc3RydWN0IFVud2lu
ZEluZm8geworICAgIFVud2luZEluZm8oKTsKKyAgICB+VW53aW5kSW5mbygpOworICAgIAorICAg
IHZvaWQgcGFyc2Uodm9pZCosIHNpemVfdCwgR2VuZXJhdGVkRnVuY3Rpb24pOworICAgIAorICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OworICAgIAorICAgIFJlZ2lzdGVyQXRPZmZz
ZXQqIGZpbmQoR1BSUmVnKSBjb25zdDsKKyAgICB1bnNpZ25lZCBpbmRleE9mKEdQUlJlZykgY29u
c3Q7IC8vIFJldHVybnMgVUlOVF9NQVggaWYgbm90IGZvdW5kLgorICAgIAorICAgIFZlY3RvcjxS
ZWdpc3RlckF0T2Zmc2V0PiBtX3JlZ2lzdGVyczsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlND
OjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMVW53aW5k
SW5mb19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5nZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdl
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVS
YW5nZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRlRMVmFsdWVSYW5nZS5oIgorCisjaW5jbHVkZSAiRlRMQWJicmV2aWF0aW9ucy5oIgor
CisjaWYgRU5BQkxFKEZUTF9KSVQpCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsK
Kwordm9pZCBWYWx1ZVJhbmdlOjpkZWNvcmF0ZUluc3RydWN0aW9uKAorICAgIExDb250ZXh0IGNv
bnRleHQsIExWYWx1ZSBsb2FkSW5zdHJ1Y3Rpb24sIHVuc2lnbmVkIHJhbmdlS2luZCkgY29uc3QK
K3sKKyAgICBpZiAoIW1fcmFuZ2VNZXRhZGF0YSkKKyAgICAgICAgbV9yYW5nZU1ldGFkYXRhID0g
bWROb2RlKGNvbnRleHQsIG1fYmVnaW4sIG1fZW5kKTsKKyAgICBzZXRNZXRhZGF0YShsb2FkSW5z
dHJ1Y3Rpb24sIHJhbmdlS2luZCwgbV9yYW5nZU1ldGFkYXRhKTsKK30KKworfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5nZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBGVExWYWx1ZVJhbmdlX2gKKyNkZWZpbmUgRlRMVmFsdWVSYW5nZV9oCisKKyNp
ZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkZUTEFiYnJldmlhdGVkVHlwZXMuaCIKKwor
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitjbGFzcyBWYWx1ZVJhbmdlIHsKK3B1
YmxpYzoKKyAgICBWYWx1ZVJhbmdlKCkKKyAgICAgICAgOiBtX2JlZ2luKDApCisgICAgICAgICwg
bV9lbmQoMCkKKyAgICAgICAgLCBtX3JhbmdlTWV0YWRhdGEoMCkKKyAgICB7CisgICAgfQorICAg
IAorICAgIFZhbHVlUmFuZ2UoTFZhbHVlIGJlZ2luLCBMVmFsdWUgZW5kKQorICAgICAgICA6IG1f
YmVnaW4oYmVnaW4pCisgICAgICAgICwgbV9lbmQoZW5kKQorICAgICAgICAsIG1fcmFuZ2VNZXRh
ZGF0YSgwKQorICAgIHsKKyAgICB9CisgICAgCisgICAgTFZhbHVlIGJlZ2luKCkgY29uc3QgeyBy
ZXR1cm4gbV9iZWdpbjsgfQorICAgIExWYWx1ZSBlbmQoKSBjb25zdCB7IHJldHVybiBtX2VuZDsg
fQorICAgIAorICAgIHZvaWQgZGVjb3JhdGVJbnN0cnVjdGlvbihMQ29udGV4dCwgTFZhbHVlIGxv
YWRJbnN0cnVjdGlvbiwgdW5zaWduZWQgcmFuZ2VLaW5kKSBjb25zdDsKKyAgICAKK3ByaXZhdGU6
CisgICAgTFZhbHVlIG1fYmVnaW47CisgICAgTFZhbHVlIG1fZW5kOworICAgIG11dGFibGUgTFZh
bHVlIG1fcmFuZ2VNZXRhZGF0YTsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKwor
I2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMVmFsdWVSYW5nZV9oCisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290
cy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
bnNlcnZhdGl2ZVJvb3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksNiBAQCB2b2lk
IENvbnNlcnZhdGl2ZVJvb3RzOjpnZW5lcmljQWRkU3Bhbih2CiAgICAgICAgIGVuZCA9IHN3YXBU
ZW1wOwogICAgIH0KIAotICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8Y2hhcio+KGVuZCkgLSBzdGF0
aWNfY2FzdDxjaGFyKj4oYmVnaW4pKSA8IDB4MTAwMDAwMCk7CiAgICAgQVNTRVJUKGlzUG9pbnRl
ckFsaWduZWQoYmVnaW4pKTsKICAgICBBU1NFUlQoaXNQb2ludGVyQWxpZ25lZChlbmQpKTsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDksIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAg
KgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKQEAgLTQ1MSwyNCArNDUxLDI3IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKCkK
ICAgICBkb3VibGUgZ2NTdGFydFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpOwogI2VuZGlmCiAKKyAgICBtX2NvZGVCbG9ja3MuY2xlYXJNYXJrcygpOwogICAgIHZvaWQq
IGR1bW15OwotICAgIAorCiAgICAgLy8gV2UgZ2F0aGVyIGNvbnNlcnZhdGl2ZSByb290cyBiZWZv
cmUgY2xlYXJpbmcgbWFyayBiaXRzIGJlY2F1c2UgY29uc2VydmF0aXZlCiAgICAgLy8gZ2F0aGVy
aW5nIHVzZXMgdGhlIG1hcmsgYml0cyB0byBkZXRlcm1pbmUgd2hldGhlciBhIHJlZmVyZW5jZSBp
cyB2YWxpZC4KICAgICBDb25zZXJ2YXRpdmVSb290cyBtYWNoaW5lVGhyZWFkUm9vdHMoJm1fb2Jq
ZWN0U3BhY2UuYmxvY2tzKCksICZtX3N0b3JhZ2VTcGFjZSk7CiAgICAgbV9qaXRTdHViUm91dGlu
ZXMuY2xlYXJNYXJrcygpOwogICAgIHsKICAgICAgICAgR0NQSEFTRShHYXRoZXJDb25zZXJ2YXRp
dmVSb290cyk7Ci0gICAgICAgIG1fbWFjaGluZVRocmVhZHMuZ2F0aGVyQ29uc2VydmF0aXZlUm9v
dHMobWFjaGluZVRocmVhZFJvb3RzLCAmZHVtbXkpOworICAgICAgICBtX21hY2hpbmVUaHJlYWRz
LmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKG1hY2hpbmVUaHJlYWRSb290cywgbV9qaXRTdHViUm91
dGluZXMsIG1fY29kZUJsb2NrcywgJmR1bW15KTsKICAgICB9CiAKKyNpZiBFTkFCTEUoTExJTlRf
Q19MT09QKQogICAgIENvbnNlcnZhdGl2ZVJvb3RzIHN0YWNrUm9vdHMoJm1fb2JqZWN0U3BhY2Uu
YmxvY2tzKCksICZtX3N0b3JhZ2VTcGFjZSk7Ci0gICAgbV9jb2RlQmxvY2tzLmNsZWFyTWFya3Mo
KTsKICAgICB7CiAgICAgICAgIEdDUEhBU0UoR2F0aGVyU3RhY2tSb290cyk7CiAgICAgICAgIHN0
YWNrKCkuZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoc3RhY2tSb290cywgbV9qaXRTdHViUm91dGlu
ZXMsIG1fY29kZUJsb2Nrcyk7Ci0gICAgICAgIHN0YWNrKCkuc2FuaXRpemVTdGFjaygpOwogICAg
IH0KKyNlbmRpZgorCisgICAgc2FuaXRpemVTdGFja0ZvclZNKG1fdm0pOwogCiAjaWYgRU5BQkxF
KERGR19KSVQpCiAgICAgQ29uc2VydmF0aXZlUm9vdHMgc2NyYXRjaEJ1ZmZlclJvb3RzKCZtX29i
amVjdFNwYWNlLmJsb2NrcygpLCAmbV9zdG9yYWdlU3BhY2UpOwpAQCAtNTA1LDEyICs1MDgsMTQg
QEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoKQogICAgICAgICAgICAgdmlzaXRvci5hcHBlbmQobWFj
aGluZVRocmVhZFJvb3RzKTsKICAgICAgICAgICAgIHZpc2l0b3IuZG9uYXRlQW5kRHJhaW4oKTsK
ICAgICAgICAgfQorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgICAgIHsKICAgICAgICAg
ICAgIEdDUEhBU0UoVmlzaXRTdGFja1Jvb3RzKTsKICAgICAgICAgICAgIE1BUktfTE9HX1JPT1Qo
dmlzaXRvciwgIlN0YWNrIik7CiAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZChzdGFja1Jvb3Rz
KTsKICAgICAgICAgICAgIHZpc2l0b3IuZG9uYXRlQW5kRHJhaW4oKTsKICAgICAgICAgfQorI2Vu
ZGlmCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgICAgIHsKICAgICAgICAgICAgIEdDUEhBU0Uo
VmlzaXRTY3JhdGNoQnVmZmVyUm9vdHMpOwpAQCAtOTUyLDEyICs5NTcsMTIgQEAgdm9pZCBIZWFw
Ojpjb2xsZWN0KCkKIAogYm9vbCBIZWFwOjpjb2xsZWN0SWZOZWNlc3NhcnlPckRlZmVyKCkKIHsK
LSAgICBpZiAobV9kZWZlcnJhbERlcHRoKQorICAgIGlmIChpc0RlZmVycmVkKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIGlmICghc2hvdWxkQ29sbGVjdCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBjb2xsZWN0KCk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5
Nyw3ICsxOTcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIHZvaWQgYWRk
UmVmZXJlbmNlKEpTQ2VsbCosIEFycmF5QnVmZmVyKik7CiAgICAgICAgIAotICAgICAgICBib29s
IGlzRGVmZXJyZWQoKSBjb25zdCB7IHJldHVybiAhIW1fZGVmZXJyYWxEZXB0aDsgfQorICAgICAg
ICBib29sIGlzRGVmZXJyZWQoKSBjb25zdCB7IHJldHVybiAhIW1fZGVmZXJyYWxEZXB0aCB8fCBP
cHRpb25zOjpkaXNhYmxlR0MoKTsgfQogCiAjaWYgVVNFKENGKQogICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiB2b2lkIHJlbGVhc2VTb29uKFJldGFpblB0cjxUPiYmKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNr
TWFya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgTWFjaGlu
ZVRocmVhZHM6OnJlbW92ZUN1cnJlbnRUaHJlYWQKICNkZWZpbmUgUkVHSVNURVJfQlVGRkVSX0FM
SUdOTUVOVAogI2VuZGlmCiAKLXZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50
VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgdm9pZCogc3RhY2tD
dXJyZW50KQordm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29u
c2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBKSVRTdHViUm91dGluZVNldCYgaml0
U3R1YlJvdXRpbmVzLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3MsIHZvaWQqIHN0YWNrQ3VycmVu
dCkKIHsKICAgICAvLyBzZXRqbXAgZm9yY2VzIHZvbGF0aWxlIHJlZ2lzdGVycyBvbnRvIHRoZSBz
dGFjawogICAgIGptcF9idWYgcmVnaXN0ZXJzIFJFR0lTVEVSX0JVRkZFUl9BTElHTk1FTlQ7CkBA
IC0yNDgsMTIgKzI0OCwxMiBAQCB2b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9tQ3VycmVu
dFRoCiAgICAgdm9pZCogcmVnaXN0ZXJzQmVnaW4gPSAmcmVnaXN0ZXJzOwogICAgIHZvaWQqIHJl
Z2lzdGVyc0VuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJvdW5kVXBUb011bHRpcGxlT2Y8
c2l6ZW9mKHZvaWQqKT4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KCZyZWdpc3RlcnMgKyAx
KSkpOwogICAgIHN3YXBJZkJhY2t3YXJkcyhyZWdpc3RlcnNCZWdpbiwgcmVnaXN0ZXJzRW5kKTsK
LSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQocmVnaXN0ZXJzQmVnaW4sIHJlZ2lzdGVyc0VuZCk7
CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHJlZ2lzdGVyc0JlZ2luLCByZWdpc3RlcnNFbmQs
IGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiAKICAgICB2b2lkKiBzdGFja0JlZ2luID0g
c3RhY2tDdXJyZW50OwogICAgIHZvaWQqIHN0YWNrRW5kID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNr
KCkub3JpZ2luKCk7CiAgICAgc3dhcElmQmFja3dhcmRzKHN0YWNrQmVnaW4sIHN0YWNrRW5kKTsK
LSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoc3RhY2tCZWdpbiwgc3RhY2tFbmQpOworICAgIGNv
bnNlcnZhdGl2ZVJvb3RzLmFkZChzdGFja0JlZ2luLCBzdGFja0VuZCwgaml0U3R1YlJvdXRpbmVz
LCBjb2RlQmxvY2tzKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHN1c3BlbmRUaHJlYWQoY29u
c3QgUGxhdGZvcm1UaHJlYWQmIHBsYXRmb3JtVGhyZWFkKQpAQCAtNDM0LDI0ICs0MzQsMjQgQEAg
c3RhdGljIHZvaWQgZnJlZVBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzKAogI2VuZGlmCiB9CiAKLXZv
aWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21PdGhlclRocmVhZChDb25zZXJ2YXRpdmVSb290
cyYgY29uc2VydmF0aXZlUm9vdHMsIFRocmVhZCogdGhyZWFkKQordm9pZCBNYWNoaW5lVGhyZWFk
czo6Z2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVS
b290cywgVGhyZWFkKiB0aHJlYWQsIEpJVFN0dWJSb3V0aW5lU2V0JiBqaXRTdHViUm91dGluZXMs
IENvZGVCbG9ja1NldCYgY29kZUJsb2NrcykKIHsKICAgICBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVy
cyByZWdzOwogICAgIHNpemVfdCByZWdTaXplID0gZ2V0UGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMo
dGhyZWFkLT5wbGF0Zm9ybVRocmVhZCwgcmVncyk7CiAKLSAgICBjb25zZXJ2YXRpdmVSb290cy5h
ZGQoc3RhdGljX2Nhc3Q8dm9pZCo+KCZyZWdzKSwgc3RhdGljX2Nhc3Q8dm9pZCo+KHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KCZyZWdzKSArIHJlZ1NpemUpKTsKKyAgICBjb25zZXJ2YXRpdmVSb290
cy5hZGQoc3RhdGljX2Nhc3Q8dm9pZCo+KCZyZWdzKSwgc3RhdGljX2Nhc3Q8dm9pZCo+KHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZyZWdzKSArIHJlZ1NpemUpLCBqaXRTdHViUm91dGluZXMsIGNv
ZGVCbG9ja3MpOwogCiAgICAgdm9pZCogc3RhY2tQb2ludGVyID0gb3RoZXJUaHJlYWRTdGFja1Bv
aW50ZXIocmVncyk7CiAgICAgdm9pZCogc3RhY2tCYXNlID0gdGhyZWFkLT5zdGFja0Jhc2U7CiAg
ICAgc3dhcElmQmFja3dhcmRzKHN0YWNrUG9pbnRlciwgc3RhY2tCYXNlKTsKLSAgICBjb25zZXJ2
YXRpdmVSb290cy5hZGQoc3RhY2tQb2ludGVyLCBzdGFja0Jhc2UpOworICAgIGNvbnNlcnZhdGl2
ZVJvb3RzLmFkZChzdGFja1BvaW50ZXIsIHN0YWNrQmFzZSwgaml0U3R1YlJvdXRpbmVzLCBjb2Rl
QmxvY2tzKTsKIAogICAgIGZyZWVQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyhyZWdzKTsKIH0KIAot
dm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZl
Um9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCB2b2lkKiBzdGFja0N1cnJlbnQpCit2b2lkIE1hY2hp
bmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29u
c2VydmF0aXZlUm9vdHMsIEpJVFN0dWJSb3V0aW5lU2V0JiBqaXRTdHViUm91dGluZXMsIENvZGVC
bG9ja1NldCYgY29kZUJsb2Nrcywgdm9pZCogc3RhY2tDdXJyZW50KQogewotICAgIGdhdGhlckZy
b21DdXJyZW50VGhyZWFkKGNvbnNlcnZhdGl2ZVJvb3RzLCBzdGFja0N1cnJlbnQpOworICAgIGdh
dGhlckZyb21DdXJyZW50VGhyZWFkKGNvbnNlcnZhdGl2ZVJvb3RzLCBqaXRTdHViUm91dGluZXMs
IGNvZGVCbG9ja3MsIHN0YWNrQ3VycmVudCk7CiAKICAgICBpZiAobV90aHJlYWRTcGVjaWZpYykg
ewogICAgICAgICBQbGF0Zm9ybVRocmVhZCBjdXJyZW50UGxhdGZvcm1UaHJlYWQgPSBnZXRDdXJy
ZW50UGxhdGZvcm1UaHJlYWQoKTsKQEAgLTQ3Myw3ICs0NzMsNyBAQCB2b2lkIE1hY2hpbmVUaHJl
YWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSCiAgICAgICAgIC8vIGFuZCBzaW5jZSB0aGlzIGlzIGEg
c2hhcmVkIGhlYXAsIHRoZXkgYXJlIHJlYWwgbG9ja3MuCiAgICAgICAgIGZvciAoVGhyZWFkKiB0
aHJlYWQgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOyB0aHJlYWQ7IHRocmVhZCA9IHRocmVhZC0+bmV4
dCkgewogICAgICAgICAgICAgaWYgKCFlcXVhbFRocmVhZCh0aHJlYWQtPnBsYXRmb3JtVGhyZWFk
LCBjdXJyZW50UGxhdGZvcm1UaHJlYWQpKQotICAgICAgICAgICAgICAgIGdhdGhlckZyb21PdGhl
clRocmVhZChjb25zZXJ2YXRpdmVSb290cywgdGhyZWFkKTsKKyAgICAgICAgICAgICAgICBnYXRo
ZXJGcm9tT3RoZXJUaHJlYWQoY29uc2VydmF0aXZlUm9vdHMsIHRocmVhZCwgaml0U3R1YlJvdXRp
bmVzLCBjb2RlQmxvY2tzKTsKICAgICAgICAgfQogCiAgICAgICAgIGZvciAoVGhyZWFkKiB0aHJl
YWQgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOyB0aHJlYWQ7IHRocmVhZCA9IHRocmVhZC0+bmV4dCkg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFy
a2VyLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
Y2hpbmVTdGFja01hcmtlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCwxMCBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAorICAgIGNsYXNzIENvZGVCbG9ja1NldDsKICAgICBjbGFzcyBDb25z
ZXJ2YXRpdmVSb290czsKICAgICBjbGFzcyBIZWFwOworICAgIGNsYXNzIEpJVFN0dWJSb3V0aW5l
U2V0OwogCiAgICAgY2xhc3MgTWFjaGluZVRocmVhZHMgewogICAgICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShNYWNoaW5lVGhyZWFkcyk7CkBAIC0zNywyMCArMzksMjAgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIE1hY2hpbmVUaHJlYWRzKEhlYXAqKTsKICAgICAgICAgfk1hY2hpbmVUaHJl
YWRzKCk7CiAKLSAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRp
dmVSb290cyYsIHZvaWQqIHN0YWNrQ3VycmVudCk7CisgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2Vy
dmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmLCBKSVRTdHViUm91dGluZVNldCYsIENvZGVC
bG9ja1NldCYsIHZvaWQqIHN0YWNrQ3VycmVudCk7CiAKICAgICAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBtYWtlVXNhYmxlRnJvbU11bHRpcGxlVGhyZWFkcygpOwogICAgICAgICBKU19FWFBP
UlRfUFJJVkFURSB2b2lkIGFkZEN1cnJlbnRUaHJlYWQoKTsgLy8gT25seSBuZWVkcyB0byBiZSBj
YWxsZWQgYnkgY2xpZW50cyB0aGF0IGNhbiB1c2UgdGhlIHNhbWUgaGVhcCBmcm9tIG11bHRpcGxl
IHRocmVhZHMuCiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGdhdGhlckZyb21DdXJyZW50
VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiwgdm9pZCogc3RhY2tDdXJyZW50KTsKKyAgICAgICAg
dm9pZCBnYXRoZXJGcm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYsIEpJVFN0dWJS
b3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jiwgdm9pZCogc3RhY2tDdXJyZW50KTsKIAogICAgICAg
ICBjbGFzcyBUaHJlYWQ7CiAKICAgICAgICAgc3RhdGljIHZvaWQgcmVtb3ZlVGhyZWFkKHZvaWQq
KTsKICAgICAgICAgdm9pZCByZW1vdmVDdXJyZW50VGhyZWFkKCk7CiAKLSAgICAgICAgdm9pZCBn
YXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmLCBUaHJlYWQqKTsKKyAgICAg
ICAgdm9pZCBnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmLCBUaHJlYWQq
LCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYpOwogCiAgICAgICAgIE11dGV4IG1f
cmVnaXN0ZXJlZFRocmVhZHNNdXRleDsKICAgICAgICAgVGhyZWFkKiBtX3JlZ2lzdGVyZWRUaHJl
YWRzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxG
cmFtZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9DYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsMTEgKzExNiwxMSBA
QCBDb2RlT3JpZ2luIENhbGxGcmFtZTo6Y29kZU9yaWdpbigpCiAgICAgcmV0dXJuIENvZGVPcmln
aW4obG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOwogfQogCi1SZWdpc3RlciogQ2FsbEZyYW1l
OjpmcmFtZUV4dGVudEludGVybmFsKCkKK1JlZ2lzdGVyKiBDYWxsRnJhbWU6OnRvcE9mRnJhbWVJ
bnRlcm5hbCgpCiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSB0aGlzLT5jb2RlQmxvY2so
KTsKICAgICBBU1NFUlQoY29kZUJsb2NrKTsKLSAgICByZXR1cm4gcmVnaXN0ZXJzKCkgKyB2aXJ0
dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZz
ZXQoKTsKKyAgICByZXR1cm4gcmVnaXN0ZXJzKCkgKyBjb2RlQmxvY2stPnN0YWNrUG9pbnRlck9m
ZnNldCgpOwogfQogCiBKU0dsb2JhbE9iamVjdCogQ2FsbEZyYW1lOjp2bUVudHJ5R2xvYmFsT2Jq
ZWN0KCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZy
YW1lLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTc2LDE1ICsxNzYsMTMgQEAgbmFt
ZXNwYWNlIEpTQyAgewogICAgICAgICAvLyBDb2RlT3JpZ2luKDApIGlmIHdlJ3JlIGluIG5hdGl2
ZSBjb2RlLgogICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4oKTsKIAotICAgICAgICBSZWdp
c3RlciogZnJhbWVFeHRlbnQoKQorICAgICAgICBSZWdpc3RlciogdG9wT2ZGcmFtZSgpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGlmIChpc1ZNRW50cnlTZW50aW5lbCgpIHx8ICFjb2RlQmxvY2so
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0ZXJzKCkgLSAxOwotICAgICAgICAgICAg
cmV0dXJuIGZyYW1lRXh0ZW50SW50ZXJuYWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVn
aXN0ZXJzKCk7CisgICAgICAgICAgICByZXR1cm4gdG9wT2ZGcmFtZUludGVybmFsKCk7CiAgICAg
ICAgIH0KICAgICAKLSAgICAgICAgUmVnaXN0ZXIqIGZyYW1lRXh0ZW50SW50ZXJuYWwoKTsKLQog
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgICAgIEluc3RydWN0aW9uKiBjdXJyZW50VlBDKCkg
Y29uc3QKICAgICAgICAgewpAQCAtMzE4LDYgKzMxNiw4IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAg
ICAgICAgRXhlY1N0YXRlKCk7CiAgICAgICAgIH5FeGVjU3RhdGUoKTsKIAorICAgICAgICBSZWdp
c3RlciogdG9wT2ZGcmFtZUludGVybmFsKCk7CisKICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBh
cmUgZm9yIGludGVybmFsIHVzZSBpbiBkZWJ1Z2dpbmcgYW5kIHZlcmlmaWNhdGlvbgogICAgICAg
ICAvLyBjb2RlIG9ubHkgYW5kIG5vdCBtZWFudCBhcyBhbiBBUEkgZm9yIGdlbmVyYWwgdXNhZ2U6
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVy
cHJldGVyLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBA
QAogI2luY2x1ZGUgIlJlZ0V4cFByb3RvdHlwZS5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyLmgiCiAj
aW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNp
bmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKICNpbmNsdWRlICJTdHJpY3RFdmFsQWN0aXZhdGlvbi5o
IgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKQEAgLTc0LDYgKzc1LDcgQEAKICNpbmNsdWRl
IDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRz
Lmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQ
cmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYv
V1RGVGhyZWFkRGF0YS5oPgpAQCAtODksMjIgKzkxLDYgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLUludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZTo6RXJy
b3JIYW5kbGluZ01vZGUoRXhlY1N0YXRlICpleGVjKQotICAgIDogbV9pbnRlcnByZXRlcigqZXhl
Yy0+aW50ZXJwcmV0ZXIoKSkKLXsKLSAgICBpZiAoIW1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRs
aW5nTW9kZVJlZW50cnkpCi0gICAgICAgIG1faW50ZXJwcmV0ZXIuc3RhY2soKS5lbmFibGVFcnJv
clN0YWNrUmVzZXJ2ZSgpOwotICAgIG1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5nTW9kZVJl
ZW50cnkrKzsKLX0KLQotSW50ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2RlOjp+RXJyb3JIYW5k
bGluZ01vZGUoKQotewotICAgIG1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5nTW9kZVJlZW50
cnktLTsKLSAgICBBU1NFUlQobV9pbnRlcnByZXRlci5tX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRy
eSA+PSAwKTsKLSAgICBpZiAoIW1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5nTW9kZVJlZW50
cnkpCi0gICAgICAgIG1faW50ZXJwcmV0ZXIuc3RhY2soKS5kaXNhYmxlRXJyb3JTdGFja1Jlc2Vy
dmUoKTsKLX0KLQogSlNWYWx1ZSBldmFsKENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIGlm
ICghY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkpCkBAIC0xNTIsMjIgKzEzOCwyNSBAQCBKU1Zh
bHVlIGV2YWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAgcmV0dXJuIGludGVycHJldGVyLT5l
eGVjdXRlKGV2YWwsIGNhbGxGcmFtZSwgdGhpc1ZhbHVlLCBjYWxsZXJTY29wZUNoYWluKTsKIH0K
IAotQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIEpTU3RhY2sqIHN0YWNrLCBKU1ZhbHVlIGFyZ3VtZW50cywgaW50IGZpcnN0RnJlZVJl
Z2lzdGVyKQorQ2FsbEZyYW1lKiBzaXplRnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBKU1N0YWNrKiBzdGFjaywgSlNWYWx1ZSBhcmd1bWVudHMsIGludCBmaXJzdEZyZWVSZWdp
c3RlcikKIHsKICAgICBpZiAoIWFyZ3VtZW50cykgeyAvLyBmLmFwcGx5KHgsIGFyZ3VtZW50cyks
IHdpdGggYXJndW1lbnRzIHVubW9kaWZpZWQuCiAgICAgICAgIHVuc2lnbmVkIGFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzID0gY2FsbEZyYW1lLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygp
OwotICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNh
bGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBmaXJzdEZyZWVSZWdpc3RlciAtIGFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzIC0gSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIDEpOwotICAgICAg
ICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50
cyArIDEgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7Ci0gICAg
ICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjcmVhdGVT
dGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAgICAgIHVuc2lnbmVkIHBhZGRlZENh
bGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50
UmVnaXN0ZXJzKCksIC1maXJzdEZyZWVSZWdpc3RlciArIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIDEpOworICAgICAgICBDYWxsRnJh
bWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJz
KCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7CisgICAgICAgIGlmIChhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcyA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzICsgMSB8fCAhc3RhY2stPmVu
c3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAgICAgICAg
ICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICAgICAgcmV0dXJu
IDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKICAgICB9CiAKICAg
ICBpZiAoYXJndW1lbnRzLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgQ2FsbEZyYW1l
KiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygp
ICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSAxIC0gSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAt
IDEpOwotICAgICAgICBpZiAoIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkp
KSB7Ci0gICAgICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1l
LCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAgICAgIHVuc2lnbmVk
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID0gMTsKKyAgICAgICAgdW5zaWduZWQgcGFkZGVk
Q2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1l
bnRSZWdpc3RlcnMoKSwgIC1maXJzdEZyZWVSZWdpc3RlciArIGFyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIDEpOworICAgICAgICBDYWxs
RnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0
ZXJzKCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7CisgICAgICAgIGlmICghc3RhY2stPmVu
c3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAgICAgICAg
ICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICAgICAgcmV0dXJu
IDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKQEAgLTE4MSw5ICsx
NzAsMTAgQEAgQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoQwogICAgIGlm
IChhc09iamVjdChhcmd1bWVudHMpLT5jbGFzc0luZm8oKSA9PSBBcmd1bWVudHM6OmluZm8oKSkg
ewogICAgICAgICBBcmd1bWVudHMqIGFyZ3NPYmplY3QgPSBhc0FyZ3VtZW50cyhhcmd1bWVudHMp
OwogICAgICAgICB1bnNpZ25lZCBhcmdDb3VudCA9IGFyZ3NPYmplY3QtPmxlbmd0aChjYWxsRnJh
bWUpOwotICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRl
KGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBmaXJzdEZyZWVSZWdpc3RlciAtIENhbGxGcmFtZTo6
b2Zmc2V0Rm9yKGFyZ0NvdW50ICsgMSkpOwotICAgICAgICBpZiAoYXJnQ291bnQgPiBBcmd1bWVu
dHM6Ok1heEFyZ3VtZW50cyB8fCAhc3RhY2stPmdyb3cobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMo
KSkpIHsKLSAgICAgICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJh
bWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKKyAgICAgICAgdW5zaWdu
ZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3Rh
Y2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lzdGVyICsgQ2FsbEZyYW1lOjpv
ZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7CisgICAgICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1l
ID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIHBhZGRlZENhbGxl
ZUZyYW1lT2Zmc2V0KTsKKyAgICAgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1lbnRzOjpNYXhBcmd1
bWVudHMgfHwgIXN0YWNrLT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVy
cygpKSkgeworICAgICAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsK
ICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxs
RnJhbWU7CkBAIC0xOTIsOSArMTgyLDEwIEBAIENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVG
b3JWYXJhcmdzKEMKICAgICBpZiAoaXNKU0FycmF5KGFyZ3VtZW50cykpIHsKICAgICAgICAgSlNB
cnJheSogYXJyYXkgPSBhc0FycmF5KGFyZ3VtZW50cyk7CiAgICAgICAgIHVuc2lnbmVkIGFyZ0Nv
dW50ID0gYXJyYXktPmxlbmd0aCgpOwotICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9
IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBmaXJzdEZyZWVSZWdp
c3RlciAtIENhbGxGcmFtZTo6b2Zmc2V0Rm9yKGFyZ0NvdW50ICsgMSkpOwotICAgICAgICBpZiAo
YXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3RhY2stPmdyb3cobmV3Q2Fs
bEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKLSAgICAgICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJv
d0V4Y2VwdGlvbihjYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUp
KTsKKyAgICAgICAgdW5zaWduZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5k
VXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lz
dGVyICsgQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7CisgICAgICAgIENhbGxG
cmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3Rl
cnMoKSAtIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0KTsKKyAgICAgICAgaWYgKGFyZ0NvdW50ID4g
QXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5lbnN1cmVDYXBhY2l0eUZvcihuZXdD
YWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAgICAgICAgICAgdGhyb3dTdGFja092ZXJmbG93
RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC0yMDIsOSArMTkzLDEwIEBAIENhbGxGcmFtZSog
c2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKEMKIAogICAgIEpTT2JqZWN0KiBhcmdPYmplY3Qg
PSBhc09iamVjdChhcmd1bWVudHMpOwogICAgIHVuc2lnbmVkIGFyZ0NvdW50ID0gYXJnT2JqZWN0
LT5nZXQoY2FsbEZyYW1lLCBjYWxsRnJhbWUtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRvVUlu
dDMyKGNhbGxGcmFtZSk7Ci0gICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6
OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSBDYWxs
RnJhbWU6Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsKLSAgICBpZiAoYXJnQ291bnQgPiBBcmd1
bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3RhY2stPmdyb3cobmV3Q2FsbEZyYW1lLT5yZWdpc3Rl
cnMoKSkpIHsKLSAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFt
ZSwgIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKKyAgICB1bnNpZ25lZCBw
YWRkZWRDYWxsZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0Fs
aWdubWVudFJlZ2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBDYWxsRnJhbWU6Om9mZnNl
dEZvcihhcmdDb3VudCArIDEpKTsKKyAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxG
cmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9m
ZnNldCk7CisgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0
YWNrLT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAg
ICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKQEAgLTQyMSw3ICs0MTMsNiBAQCBz
dGF0aWMgYm9vbCB1bndpbmRDYWxsRnJhbWUoU3RhY2tWaXNpdG9yCiB7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSB2aXNpdG9yLT5jYWxsRnJhbWUoKTsKICAgICBDb2RlQmxvY2sqIGNvZGVC
bG9jayA9IHZpc2l0b3ItPmNvZGVCbG9jaygpOwotICAgIENvZGVCbG9jayogb2xkQ29kZUJsb2Nr
ID0gY29kZUJsb2NrOwogICAgIEpTU2NvcGUqIHNjb3BlID0gY2FsbEZyYW1lLT5zY29wZSgpOwog
CiAgICAgaWYgKERlYnVnZ2VyKiBkZWJ1Z2dlciA9IGNhbGxGcmFtZS0+dm1FbnRyeUdsb2JhbE9i
amVjdCgpLT5kZWJ1Z2dlcigpKSB7CkBAIC00MzIsMTYgKzQyMywxNiBAQCBzdGF0aWMgYm9vbCB1
bndpbmRDYWxsRnJhbWUoU3RhY2tWaXNpdG9yCiAgICAgfQogCiAgICAgSlNWYWx1ZSBhY3RpdmF0
aW9uOwotICAgIGlmIChvbGRDb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlICYm
IG9sZENvZGVCbG9jay0+bmVlZHNBY3RpdmF0aW9uKCkpIHsKKyAgICBpZiAoY29kZUJsb2NrLT5j
b2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSAmJiBjb2RlQmxvY2stPm5lZWRzQWN0aXZhdGlvbigp
KSB7CiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCF2aXNpdG9y
LT5pc0lubGluZWRGcmFtZSgpKTsKICNlbmRpZgotICAgICAgICBhY3RpdmF0aW9uID0gY2FsbEZy
YW1lLT51bmNoZWNrZWRSKG9sZENvZGVCbG9jay0+YWN0aXZhdGlvblJlZ2lzdGVyKCkub2Zmc2V0
KCkpLmpzVmFsdWUoKTsKKyAgICAgICAgYWN0aXZhdGlvbiA9IGNhbGxGcmFtZS0+dW5jaGVja2Vk
Uihjb2RlQmxvY2stPmFjdGl2YXRpb25SZWdpc3RlcigpLm9mZnNldCgpKS5qc1ZhbHVlKCk7CiAg
ICAgICAgIGlmIChhY3RpdmF0aW9uKQogICAgICAgICAgICAganNDYXN0PEpTQWN0aXZhdGlvbio+
KGFjdGl2YXRpb24pLT50ZWFyT2ZmKCpzY29wZS0+dm0oKSk7CiAgICAgfQogCi0gICAgaWYgKG9s
ZENvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUgJiYgb2xkQ29kZUJsb2NrLT51
c2VzQXJndW1lbnRzKCkpIHsKKyAgICBpZiAoY29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0
aW9uQ29kZSAmJiBjb2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSkgewogICAgICAgICBpZiAoQXJn
dW1lbnRzKiBhcmd1bWVudHMgPSB2aXNpdG9yLT5leGlzdGluZ0FyZ3VtZW50cygpKSB7CiAgICAg
ICAgICAgICBpZiAoYWN0aXZhdGlvbikKICAgICAgICAgICAgICAgICBhcmd1bWVudHMtPmRpZFRl
YXJPZmZBY3RpdmF0aW9uKGNhbGxGcmFtZSwganNDYXN0PEpTQWN0aXZhdGlvbio+KGFjdGl2YXRp
b24pKTsKQEAgLTQ1NSwxMSArNDQ2LDcgQEAgc3RhdGljIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0
YWNrVmlzaXRvcgogICAgIH0KIAogICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBjYWxsRnJh
bWUtPmNhbGxlckZyYW1lKCk7Ci0gICAgaWYgKGNhbGxlckZyYW1lLT5pc1ZNRW50cnlTZW50aW5l
bCgpKSB7Ci0gICAgICAgIGNhbGxGcmFtZS0+dm0oKS50b3BDYWxsRnJhbWUgPSBjYWxsZXJGcmFt
ZS0+dm1FbnRyeVNlbnRpbmVsQ2FsbGVyRnJhbWUoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gIWNhbGxlckZyYW1lLT5pc1ZNRW50
cnlTZW50aW5lbCgpOwogfQogCiBzdGF0aWMgU3RhY2tGcmFtZUNvZGVUeXBlIGdldFN0YWNrRnJh
bWVDb2RlVHlwZShTdGFja1Zpc2l0b3ImIHZpc2l0b3IpCkBAIC02NjIsNyArNjQ5LDE3IEBAIHBy
aXZhdGU6CiAKIE5FVkVSX0lOTElORSBIYW5kbGVySW5mbyogSW50ZXJwcmV0ZXI6OnVud2luZChD
YWxsRnJhbWUqJiBjYWxsRnJhbWUsIEpTVmFsdWUmIGV4Y2VwdGlvblZhbHVlKQogeworICAgIGlm
IChjYWxsRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkpIHsKKyAgICAgICAgLy8gVGhpcyBoYXBw
ZW5zIHdoZW4gd2UgdGhyb3cgc3RhY2sgb3ZlcmZsb3cgaW4gYSBmdW5jdGlvbiB0aGF0IGlzIGNh
bGxlZAorICAgICAgICAvLyBkaXJlY3RseSBmcm9tIGNhbGxUb0phdmFTY3JpcHQuIFN0YWNrIG92
ZXJmbG93IHRocm93cyB0aGUgZXhjZXB0aW9uIGluIHRoZQorICAgICAgICAvLyBjb250ZXh0IG9m
IHRoZSBjYWxsZXIuIEluIHRoYXQgY2FzZSB0aGUgY2FsbGVyIGlzIHRoZSBzZW50aW5lbCBmcmFt
ZS4gVGhlCisgICAgICAgIC8vIHJpZ2h0IHRoaW5nIHRvIGRvIGlzIHRvIHByZXRlbmQgdGhhdCB0
aGUgZXhjZXB0aW9uIGlzIHVuY2F1Z2h0IHNvIHRoYXQgd2UKKyAgICAgICAgLy8gZ28gdG8gdGhl
IHVuY2F1Z2h0IGV4Y2VwdGlvbiBoYW5kbGVyLCB3aGljaCByZXR1cm5zIHRocm91Z2ggY2FsbFRv
SmF2YVNjcmlwdC4KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAogICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKKyAgICBBU1NFUlQoY29kZUJs
b2NrKTsKICAgICBib29sIGlzVGVybWluYXRpb24gPSBmYWxzZTsKIAogICAgIEFTU0VSVCghZXhj
ZXB0aW9uVmFsdWUuaXNFbXB0eSgpKTsKQEAgLTc2Nyw3ICs3NjQsNiBAQCBKU1ZhbHVlIEludGVy
cHJldGVyOjpleGVjdXRlKFByb2dyYW1FeGVjCiAgICAgaWYgKHZtLmlzQ29sbGVjdG9yQnVzeSgp
KQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAKLSAgICBWTUVudHJ5U2NvcGUgZW50cnlTY29w
ZSh2bSwgc2NvcGUtPmdsb2JhbE9iamVjdCgpKTsKICAgICBpZiAoIXZtLmlzU2FmZVRvUmVjdXJz
ZSgpKQogICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJv
cihjYWxsRnJhbWUpKTsKIApAQCAtODc0LDYgKzg3MCw4IEBAIGZhaWxlZEpTT05QOgogICAgIC8v
IElmIHdlIGdldCBoZXJlLCB0aGVuIHdlIGhhdmUgYWxyZWFkeSBwcm92ZW4gdGhhdCB0aGUgc2Ny
aXB0IGlzIG5vdCBhIEpTT04KICAgICAvLyBvYmplY3QuCiAKKyAgICBWTUVudHJ5U2NvcGUgZW50
cnlTY29wZSh2bSwgc2NvcGUtPmdsb2JhbE9iamVjdCgpKTsKKwogICAgIC8vIENvbXBpbGUgc291
cmNlIHRvIGJ5dGVjb2RlIGlmIG5lY2Vzc2FyeToKICAgICBpZiAoSlNPYmplY3QqIGVycm9yID0g
cHJvZ3JhbS0+aW5pdGlhbGl6ZUdsb2JhbFByb3BlcnRpZXModm0sIGNhbGxGcmFtZSwgc2NvcGUp
KQogICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybihjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNl
cHRpb24oY2FsbEZyYW1lLCBlcnJvcikpOwpAQCAtODg4LDkgKzg4Niw2IEBAIGZhaWxlZEpTT05Q
OgogCiAgICAgQVNTRVJUKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpID09IDEpOyAvLyAxIHBh
cmFtZXRlciBmb3IgJ3RoaXMnLgogCi0gICAgaWYgKFVOTElLRUxZKCFtX3N0YWNrLmVudHJ5Q2hl
Y2soY29kZUJsb2NrLCAxKSkpCi0gICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93U3Rh
Y2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwotCiAgICAgUHJvdG9DYWxsRnJhbWUgcHJvdG9D
YWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChjb2RlQmxvY2ssIHNjb3BlLCAwLCB0
aGlzT2JqLCAxKTsKIApAQCAtOTAzLDcgKzg5OCw3IEBAIGZhaWxlZEpTT05QOgogICAgICAgICBT
YW1wbGluZ1Rvb2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwogICAg
ICAgICBXYXRjaGRvZzo6U2NvcGUgd2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZyk7CiAKLSAgICAg
ICAgcmVzdWx0ID0gcHJvZ3JhbS0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnBy
b3RvQ2FsbEZyYW1lLCBtX3N0YWNrLmdldFRvcE9mU3RhY2soKSk7CisgICAgICAgIHJlc3VsdCA9
IHByb2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFt
ZSk7CiAgICAgfQogCiAgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJs
ZWRQcm9maWxlcigpKQpAQCAtOTUxLDkgKzk0Niw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4
ZWN1dGVDYWxsKENhbGxGcmEKICAgICBpZiAoVU5MSUtFTFkodm0ud2F0Y2hkb2cuZGlkRmlyZShj
YWxsRnJhbWUpKSkKICAgICAgICAgcmV0dXJuIHRocm93VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2Vw
dGlvbihjYWxsRnJhbWUpOwogCi0gICAgaWYgKFVOTElLRUxZKCFtX3N0YWNrLmVudHJ5Q2hlY2so
bmV3Q29kZUJsb2NrLCBhcmdzQ291bnQpKSkKLSAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4o
dGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7Ci0KICAgICBQcm90b0NhbGxGcmFt
ZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KG5ld0NvZGVCbG9jaywg
c2NvcGUsIGZ1bmN0aW9uLCB0aGlzVmFsdWUsIGFyZ3NDb3VudCwgYXJncy5kYXRhKCkpOwogCkBA
IC05NjcsOSArOTU5LDEyIEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxG
cmEKIAogICAgICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlOgogICAgICAgICBpZiAoaXNKU0NhbGwp
Ci0gICAgICAgICAgICByZXN1bHQgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdl
bmVyYXRlZEpJVENvZGVGb3JDYWxsKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUsIG1f
c3RhY2suZ2V0VG9wT2ZTdGFjaygpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0
ID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiksICZ2bS50b3BDYWxsRnJhbWUsICZwcm90
b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpKTsKKyAgICAgICAgICAgIHJlc3Vs
dCA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNh
bGwoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSk7CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiksICZ2bSwgJnBy
b3RvQ2FsbEZyYW1lKSk7CisgICAgICAgICAgICBpZiAoY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24o
KSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBqc051bGwoKTsKKyAgICAgICAgfQogICAgIH0K
IAogICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIo
KSkKQEAgLTEwMTksOSArMTAxNCw2IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNv
bnN0cnVjdCgKICAgICBpZiAoVU5MSUtFTFkodm0ud2F0Y2hkb2cuZGlkRmlyZShjYWxsRnJhbWUp
KSkKICAgICAgICAgcmV0dXJuIHRocm93VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihjYWxs
RnJhbWUpOwogCi0gICAgaWYgKFVOTElLRUxZKCFtX3N0YWNrLmVudHJ5Q2hlY2sobmV3Q29kZUJs
b2NrLCBhcmdzQ291bnQpKSkKLSAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFj
a092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7Ci0KICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0Nh
bGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KG5ld0NvZGVCbG9jaywgc2NvcGUsIGNv
bnN0cnVjdG9yLCBqc1VuZGVmaW5lZCgpLCBhcmdzQ291bnQsIGFyZ3MuZGF0YSgpKTsKIApAQCAt
MTAzNSw5ICsxMDI3LDkgQEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0
KAogCiAgICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGUuCiAgICAgICAgIGlmIChpc0pTQ29uc3Ry
dWN0KQotICAgICAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0RGF0YS5qcy5mdW5jdGlvbkV4ZWN1
dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3QoKS0+ZXhlY3V0ZSgmdm0sICZwcm90
b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpOworICAgICAgICAgICAgcmVzdWx0
ID0gY29uc3RydWN0RGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVG
b3JDb25zdHJ1Y3QoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSk7CiAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxUb05hdGl2ZUZ1
bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0
aW9uKSwgJnZtLnRvcENhbGxGcmFtZSwgJnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNrLmdldFRvcE9m
U3RhY2soKSkpOworICAgICAgICAgICAgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxUb05h
dGl2ZUZ1bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uKSwgJnZtLCAmcHJvdG9DYWxsRnJhbWUpKTsKIAogICAgICAgICAgICAgaWYgKCFj
YWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHJlc3VsdC5pc09iamVjdCgpKTsKQEAgLTEwNzIsMTEgKzEwNjQsNiBAQCBDYWxsRnJhbWVDbG9z
dXJlIEludGVycHJldGVyOjpwcmVwYXJlRm9yCiAKICAgICBzaXplX3QgYXJnc0NvdW50ID0gYXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXM7CiAKLSAgICBpZiAoVU5MSUtFTFkoIW1fc3RhY2suZW50
cnlDaGVjayhuZXdDb2RlQmxvY2ssIGFyZ3NDb3VudCkpKSB7Ci0gICAgICAgIHRocm93U3RhY2tP
dmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7Ci0gICAgICAgIHJldHVybiBDYWxsRnJhbWVDbG9zdXJl
KCk7Ci0gICAgfQotCiAgICAgcHJvdG9DYWxsRnJhbWUtPmluaXQobmV3Q29kZUJsb2NrLCBzY29w
ZSwgZnVuY3Rpb24sIGpzVW5kZWZpbmVkKCksIGFyZ3NDb3VudCwgYXJncyk7CiAgICAgLy8gUmV0
dXJuIHRoZSBzdWNjZXNzZnVsIGNsb3N1cmU6CiAgICAgQ2FsbEZyYW1lQ2xvc3VyZSByZXN1bHQg
PSB7IGNhbGxGcmFtZSwgcHJvdG9DYWxsRnJhbWUsIGZ1bmN0aW9uLCBmdW5jdGlvbkV4ZWN1dGFi
bGUsICZ2bSwgc2NvcGUsIG5ld0NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpLCBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcyB9OwpAQCAtMTEwNyw3ICsxMDk0LDcgQEAgSlNWYWx1ZSBJbnRlcnBy
ZXRlcjo6ZXhlY3V0ZShDYWxsRnJhbWVDbAogICAgICAgICBTYW1wbGluZ1Rvb2w6OkNhbGxSZWNv
cmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwogICAgICAgICBXYXRjaGRvZzo6U2NvcGUg
d2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZyk7CiAKLSAgICAgICAgcmVzdWx0ID0gY2xvc3VyZS5m
dW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCktPmV4ZWN1dGUoJnZt
LCBjbG9zdXJlLnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNrLmdldFRvcE9mU3RhY2soKSk7CisgICAg
ICAgIHJlc3VsdCA9IGNsb3N1cmUuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2Rl
Rm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgY2xvc3VyZS5wcm90b0NhbGxGcmFtZSk7CiAgICAgfQog
CiAgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigp
KQpAQCAtMTE3OCw5ICsxMTY1LDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFs
RXhlY3V0YQogCiAgICAgQVNTRVJUKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpID09IDEpOyAv
LyAxIHBhcmFtZXRlciBmb3IgJ3RoaXMnLgogCi0gICAgaWYgKFVOTElLRUxZKCFtX3N0YWNrLmVu
dHJ5Q2hlY2soY29kZUJsb2NrLCAxKSkpCi0gICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHRo
cm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwotCiAgICAgUHJvdG9DYWxsRnJhbWUg
cHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChjb2RlQmxvY2ssIHNjb3Bl
LCAwLCB0aGlzVmFsdWUsIDEpOwogCkBAIC0xMTkzLDcgKzExNzcsNyBAQCBKU1ZhbHVlIEludGVy
cHJldGVyOjpleGVjdXRlKEV2YWxFeGVjdXRhCiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJl
Y29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgIFdhdGNoZG9nOjpTY29w
ZSB3YXRjaGRvZ1Njb3BlKHZtLndhdGNoZG9nKTsKIAotICAgICAgICByZXN1bHQgPSBldmFsLT5n
ZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUsIG1fc3RhY2su
Z2V0VG9wT2ZTdGFjaygpKTsKKyAgICAgICAgcmVzdWx0ID0gZXZhbC0+Z2VuZXJhdGVkSklUQ29k
ZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKICAgICBpZiAoTGVn
YWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4MCw2ICsxODAsMTUgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgICAgICBBU1NFUlQoIWNhbGxGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSk7CiAg
ICAgICAgICAgICB2bS0+dG9wQ2FsbEZyYW1lID0gY2FsbEZyYW1lOwogICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBlbnVtIFZNRW50cnlTZW50aW5lbE9LVGFnIHsgVk1FbnRyeVNlbnRpbmVs
T0sgfTsKKyAgICAgICAgQUxXQVlTX0lOTElORSBOYXRpdmVDYWxsRnJhbWVUcmFjZXIoVk0qIHZt
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgVk1FbnRyeVNlbnRpbmVsT0tUYWcpCisgICAgICAgIHsK
KyAgICAgICAgICAgIEFTU0VSVCh2bSk7CisgICAgICAgICAgICBBU1NFUlQoY2FsbEZyYW1lKTsK
KyAgICAgICAgICAgIGlmICghY2FsbEZyYW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpKQorICAgICAg
ICAgICAgICAgIHZtLT50b3BDYWxsRnJhbWUgPSBjYWxsRnJhbWU7CisgICAgICAgIH0KICAgICB9
OwogCiAgICAgY2xhc3MgSW50ZXJwcmV0ZXIgewpAQCAtMTkwLDE0ICsxOTksNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIFZNOwogCiAgICAgcHVibGljOgotICAgICAg
ICBjbGFzcyBFcnJvckhhbmRsaW5nTW9kZSB7Ci0gICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAg
IEpTX0VYUE9SVF9QUklWQVRFIEVycm9ySGFuZGxpbmdNb2RlKEV4ZWNTdGF0ZSopOwotICAgICAg
ICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgfkVycm9ySGFuZGxpbmdNb2RlKCk7Ci0gICAgICAgIHBy
aXZhdGU6Ci0gICAgICAgICAgICBJbnRlcnByZXRlciYgbV9pbnRlcnByZXRlcjsKLSAgICAgICAg
fTsKLQogICAgICAgICBJbnRlcnByZXRlcihWTSAmKTsKICAgICAgICAgfkludGVycHJldGVyKCk7
CiAgICAgICAgIApAQCAtMjM3LDggKzIzOCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAK
ICAgICAgICAgU2FtcGxpbmdUb29sKiBzYW1wbGVyKCkgeyByZXR1cm4gbV9zYW1wbGVyLmdldCgp
OyB9CiAKLSAgICAgICAgYm9vbCBpc0luRXJyb3JIYW5kbGluZ01vZGUoKSB7IHJldHVybiBtX2Vy
cm9ySGFuZGxpbmdNb2RlUmVlbnRyeTsgfQotCiAgICAgICAgIE5FVkVSX0lOTElORSBIYW5kbGVy
SW5mbyogdW53aW5kKENhbGxGcmFtZSomLCBKU1ZhbHVlJik7CiAgICAgICAgIE5FVkVSX0lOTElO
RSB2b2lkIGRlYnVnKENhbGxGcmFtZSosIERlYnVnSG9va0lEKTsKICAgICAgICAgSlNTdHJpbmcq
IHN0YWNrVHJhY2VBc1N0cmluZyhFeGVjU3RhdGUqLCBWZWN0b3I8U3RhY2tGcmFtZT4pOwpAQCAt
Mjg2LDcgKzI4NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIH07CiAKICAgICBKU1ZhbHVlIGV2
YWwoQ2FsbEZyYW1lKik7Ci0gICAgQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFy
Z3MoQ2FsbEZyYW1lKiwgSlNTdGFjayosIEpTVmFsdWUsIGludCk7CisgICAgQ2FsbEZyYW1lKiBz
aXplRnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZSosIEpTU3RhY2sqLCBKU1ZhbHVlLCBpbnQpOwog
ICAgIHZvaWQgbG9hZFZhcmFyZ3MoQ2FsbEZyYW1lKiwgQ2FsbEZyYW1lKiwgSlNWYWx1ZSwgSlNW
YWx1ZSk7CiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0pTU3RhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMSw5ICszMSwxMSBAQAogCiAjaW5jbHVkZSAiQ29uc2VydmF0aXZlUm9vdHMu
aCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogc3RhdGljIHNpemVfdCBj
b21taXR0ZWRCeXRlc0NvdW50ID0gMDsKIAogc3RhdGljIE11dGV4JiBzdGFja1N0YXRpc3RpY3NN
dXRleCgpCkBAIC00MSw4NyArNDMsOTggQEAgc3RhdGljIE11dGV4JiBzdGFja1N0YXRpc3RpY3NN
dXRleCgpCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc3RhdGljTXV0ZXgsICgpKTsK
ICAgICByZXR1cm4gc3RhdGljTXV0ZXg7CiB9ICAgIAorI2VuZGlmIC8vIEVOQUJMRShMTElOVF9D
X0xPT1ApCiAKLUpTU3RhY2s6OkpTU3RhY2soVk0mIHZtLCBzaXplX3QgY2FwYWNpdHkpCitKU1N0
YWNrOjpKU1N0YWNrKFZNJiB2bSkKICAgICA6IG1fdm0odm0pCi0gICAgLCBtX2VuZCgwKQogICAg
ICwgbV90b3BDYWxsRnJhbWUodm0udG9wQ2FsbEZyYW1lKQorI2lmIEVOQUJMRShMTElOVF9DX0xP
T1ApCisgICAgLCBtX2VuZCgwKQorICAgICwgbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnMo
MCkKKyNlbmRpZgogeworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgc2l6ZV90IGNhcGFj
aXR5ID0gT3B0aW9uczo6bWF4UGVyVGhyZWFkU3RhY2tVc2FnZSgpOwogICAgIEFTU0VSVChjYXBh
Y2l0eSAmJiBpc1BhZ2VBbGlnbmVkKGNhcGFjaXR5KSk7CiAKLSAgICBtX3Jlc2VydmF0aW9uID0g
UGFnZVJlc2VydmF0aW9uOjpyZXNlcnZlKHJvdW5kVXBBbGxvY2F0aW9uU2l6ZShjYXBhY2l0eSAq
IHNpemVvZihSZWdpc3RlciksIGNvbW1pdFNpemUpLCBPU0FsbG9jYXRvcjo6SlNWTVN0YWNrUGFn
ZXMpOwotICAgIHVwZGF0ZVN0YWNrTGltaXQoaGlnaEFkZHJlc3MoKSk7Ci0gICAgbV9jb21taXRF
bmQgPSBoaWdoQWRkcmVzcygpOworICAgIG1fcmVzZXJ2YXRpb24gPSBQYWdlUmVzZXJ2YXRpb246
OnJlc2VydmUoV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKGNvbW1pdFNpemUsIGNhcGFjaXR5KSwg
T1NBbGxvY2F0b3I6OkpTVk1TdGFja1BhZ2VzKTsKKyAgICBzZXRTdGFja0xpbWl0KGhpZ2hBZGRy
ZXNzKCkpOworICAgIG1fY29tbWl0VG9wID0gaGlnaEFkZHJlc3MoKTsKICAgICAKLSAgICBtX2xh
c3RTdGFja1RvcCA9IGdldEJhc2VPZlN0YWNrKCk7Ci0KLSAgICBkaXNhYmxlRXJyb3JTdGFja1Jl
c2VydmUoKTsKKyAgICBtX2xhc3RTdGFja1RvcCA9IGJhc2VPZlN0YWNrKCk7CisjZW5kaWYgLy8g
RU5BQkxFKExMSU5UX0NfTE9PUCkKIAogICAgIG1fdG9wQ2FsbEZyYW1lID0gMDsKIH0KIAorI2lm
IEVOQUJMRShMTElOVF9DX0xPT1ApCiBKU1N0YWNrOjp+SlNTdGFjaygpCiB7Ci0gICAgdm9pZCog
aGlnaEFkZHJlc3MgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxjaGFyKj4o
bV9yZXNlcnZhdGlvbi5iYXNlKCkpICsgbV9yZXNlcnZhdGlvbi5zaXplKCkpOwotICAgIG1fcmVz
ZXJ2YXRpb24uZGVjb21taXQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9jb21taXRFbmQpLCBy
ZWludGVycHJldF9jYXN0PGludHB0cl90PihoaWdoQWRkcmVzcykgLSByZWludGVycHJldF9jYXN0
PGludHB0cl90PihtX2NvbW1pdEVuZCkpOwotICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KC0o
cmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oaGlnaEFkZHJlc3MpIC0gcmVpbnRlcnByZXRfY2Fz
dDxpbnRwdHJfdD4obV9jb21taXRFbmQpKSk7CisgICAgcHRyZGlmZl90IHNpemVUb0RlY29tbWl0
ID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaGlnaEFkZHJlc3MoKSkgLSByZWludGVycHJldF9j
YXN0PGNoYXIqPihtX2NvbW1pdFRvcCk7CisgICAgbV9yZXNlcnZhdGlvbi5kZWNvbW1pdChyZWlu
dGVycHJldF9jYXN0PHZvaWQqPihtX2NvbW1pdFRvcCksIHNpemVUb0RlY29tbWl0KTsKKyAgICBh
ZGRUb0NvbW1pdHRlZEJ5dGVDb3VudCgtc2l6ZVRvRGVjb21taXQpOwogICAgIG1fcmVzZXJ2YXRp
b24uZGVhbGxvY2F0ZSgpOwogfQogCi1ib29sIEpTU3RhY2s6Omdyb3dTbG93Q2FzZShSZWdpc3Rl
ciogbmV3RW5kKQorYm9vbCBKU1N0YWNrOjpncm93U2xvd0Nhc2UoUmVnaXN0ZXIqIG5ld1RvcE9m
U3RhY2spCiB7CisgICAgUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lID0g
bmV3VG9wT2ZTdGFjayAtIG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzOworCiAgICAgLy8g
SWYgd2UgaGF2ZSBhbHJlYWR5IGNvbW1pdHRlZCBlbm91Z2ggbWVtb3J5IHRvIHNhdGlzZnkgdGhp
cyByZXF1ZXN0LAogICAgIC8vIGp1c3QgdXBkYXRlIHRoZSBlbmQgcG9pbnRlciBhbmQgcmV0dXJu
LgotICAgIGlmIChuZXdFbmQgPj0gbV9jb21taXRFbmQpIHsKLSAgICAgICAgdXBkYXRlU3RhY2tM
aW1pdChuZXdFbmQpOworICAgIGlmIChuZXdUb3BPZlN0YWNrV2l0aFJlc2VydmVkWm9uZSA+PSBt
X2NvbW1pdFRvcCkgeworICAgICAgICBzZXRTdGFja0xpbWl0KG5ld1RvcE9mU3RhY2spOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICAvLyBDb21wdXRlIHRoZSBjaHVuayBzaXpl
IG9mIGFkZGl0aW9uYWwgbWVtb3J5IHRvIGNvbW1pdCwgYW5kIHNlZSBpZiB3ZQogICAgIC8vIGhh
dmUgaXQgaXMgc3RpbGwgd2l0aGluIG91ciBidWRnZXQuIElmIG5vdCwgd2UnbGwgZmFpbCB0byBn
cm93IGFuZAogICAgIC8vIHJldHVybiBmYWxzZS4KLSAgICBsb25nIGRlbHRhID0gcm91bmRVcEFs
bG9jYXRpb25TaXplKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0RW5kKSAtIHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KG5ld0VuZCksIGNvbW1pdFNpemUpOwotICAgIGlmIChyZWludGVy
cHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVuZCkgLSBkZWx0YSA8PSByZWludGVycHJldF9jYXN0
PGNoYXIqPihtX3VzZWFibGVFbmQpKQorICAgIHB0cmRpZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KG1fY29tbWl0VG9wKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG5ld1Rv
cE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lKTsKKyAgICBkZWx0YSA9IFdURjo6cm91bmRVcFRvTXVs
dGlwbGVPZihjb21taXRTaXplLCBkZWx0YSk7CisgICAgUmVnaXN0ZXIqIG5ld0NvbW1pdFRvcCA9
IG1fY29tbWl0VG9wIC0gKGRlbHRhIC8gc2l6ZW9mKFJlZ2lzdGVyKSk7CisgICAgaWYgKG5ld0Nv
bW1pdFRvcCA8IHJlc2VydmF0aW9uVG9wKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IC8vIE90aGVyd2lzZSwgdGhlIGdyb3d0aCBpcyBzdGlsbCB3aXRoaW4gb3VyIGJ1ZGdldC4gR28g
YWhlYWQgYW5kIGNvbW1pdAogICAgIC8vIGl0IGFuZCByZXR1cm4gdHJ1ZS4KLSAgICBtX3Jlc2Vy
dmF0aW9uLmNvbW1pdChyZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVuZCkgLSBkZWx0
YSwgZGVsdGEpOworICAgIG1fcmVzZXJ2YXRpb24uY29tbWl0KG5ld0NvbW1pdFRvcCwgZGVsdGEp
OwogICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGRlbHRhKTsKLSAgICBtX2NvbW1pdEVuZCA9
IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
bV9jb21taXRFbmQpIC0gZGVsdGEpOwotICAgIHVwZGF0ZVN0YWNrTGltaXQobmV3RW5kKTsKKyAg
ICBtX2NvbW1pdFRvcCA9IG5ld0NvbW1pdFRvcDsKKyAgICBzZXRTdGFja0xpbWl0KG5ld1RvcE9m
U3RhY2spOwogICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIEpTU3RhY2s6OmdhdGhlckNvbnNl
cnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cykKIHsKLSAg
ICBjb25zZXJ2YXRpdmVSb290cy5hZGQoZ2V0QmFzZU9mU3RhY2soKSwgZ2V0VG9wT2ZTdGFjaygp
KTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQodG9wT2ZTdGFjaygpICsgMSwgaGlnaEFkZHJl
c3MoKSk7CiB9CiAKIHZvaWQgSlNTdGFjazo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2Vy
dmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBKSVRTdHViUm91dGluZVNldCYgaml0U3R1
YlJvdXRpbmVzLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3MpCiB7Ci0gICAgY29uc2VydmF0aXZl
Um9vdHMuYWRkKGdldEJhc2VPZlN0YWNrKCksIGdldFRvcE9mU3RhY2soKSwgaml0U3R1YlJvdXRp
bmVzLCBjb2RlQmxvY2tzKTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQodG9wT2ZTdGFjaygp
ICsgMSwgaGlnaEFkZHJlc3MoKSwgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKIH0KIAog
dm9pZCBKU1N0YWNrOjpzYW5pdGl6ZVN0YWNrKCkKIHsKLSAgICBBU1NFUlQoZ2V0VG9wT2ZTdGFj
aygpIDw9IGdldEJhc2VPZlN0YWNrKCkpOworICAgIEFTU0VSVCh0b3BPZlN0YWNrKCkgPD0gYmFz
ZU9mU3RhY2soKSk7CiAgICAgCi0gICAgaWYgKG1fbGFzdFN0YWNrVG9wIDwgZ2V0VG9wT2ZTdGFj
aygpKSB7Ci0gICAgICAgIGNoYXIqIGJlZ2luID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9s
YXN0U3RhY2tUb3ApOwotICAgICAgICBjaGFyKiBlbmQgPSByZWludGVycHJldF9jYXN0PGNoYXIq
PihnZXRUb3BPZlN0YWNrKCkpOworICAgIGlmIChtX2xhc3RTdGFja1RvcCA8IHRvcE9mU3RhY2so
KSkgeworICAgICAgICBjaGFyKiBiZWdpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fbGFz
dFN0YWNrVG9wICsgMSk7CisgICAgICAgIGNoYXIqIGVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KHRvcE9mU3RhY2soKSArIDEpOwogICAgICAgICBtZW1zZXQoYmVnaW4sIDAsIGVuZCAtIGJl
Z2luKTsKICAgICB9CiAgICAgCi0gICAgbV9sYXN0U3RhY2tUb3AgPSBnZXRUb3BPZlN0YWNrKCk7
CisgICAgbV9sYXN0U3RhY2tUb3AgPSB0b3BPZlN0YWNrKCk7CiB9CiAKIHZvaWQgSlNTdGFjazo6
cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KCkKIHsKLSAgICBwdHJkaWZmX3QgZGVsdGEgPSByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oaGlnaEFkZHJlc3MoKSkgLSByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4obV9jb21taXRFbmQpOwotICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQobV9jb21t
aXRFbmQsIGRlbHRhKTsKKyAgICBSZWdpc3RlciogaGlnaEFkZHJlc3NXaXRoUmVzZXJ2ZWRab25l
ID0gaGlnaEFkZHJlc3MoKSAtIG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzOworICAgIHB0
cmRpZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGhpZ2hBZGRyZXNzV2l0aFJl
c2VydmVkWm9uZSkgLSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdFRvcCk7CisgICAg
bV9yZXNlcnZhdGlvbi5kZWNvbW1pdChtX2NvbW1pdFRvcCwgZGVsdGEpOwogICAgIGFkZFRvQ29t
bWl0dGVkQnl0ZUNvdW50KC1kZWx0YSk7Ci0gICAgbV9jb21taXRFbmQgPSBoaWdoQWRkcmVzcygp
OworICAgIG1fY29tbWl0VG9wID0gaGlnaEFkZHJlc3NXaXRoUmVzZXJ2ZWRab25lOwogfQogCiB2
b2lkIEpTU3RhY2s6OmluaXRpYWxpemVUaHJlYWRpbmcoKQpAQCAtMTI5LDEyICsxNDIsNiBAQCB2
b2lkIEpTU3RhY2s6OmluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHN0YWNrU3RhdGlzdGljc011
dGV4KCk7CiB9CiAKLXNpemVfdCBKU1N0YWNrOjpjb21taXR0ZWRCeXRlQ291bnQoKQotewotICAg
IE11dGV4TG9ja2VyIGxvY2tlcihzdGFja1N0YXRpc3RpY3NNdXRleCgpKTsKLSAgICByZXR1cm4g
Y29tbWl0dGVkQnl0ZXNDb3VudDsKLX0KLQogdm9pZCBKU1N0YWNrOjphZGRUb0NvbW1pdHRlZEJ5
dGVDb3VudChsb25nIGJ5dGVDb3VudCkKIHsKICAgICBNdXRleExvY2tlciBsb2NrZXIoc3RhY2tT
dGF0aXN0aWNzTXV0ZXgoKSk7CkBAIC0xNDIsMjUgKzE0OSw0MSBAQCB2b2lkIEpTU3RhY2s6OmFk
ZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGxvCiAgICAgY29tbWl0dGVkQnl0ZXNDb3VudCArPSBieXRl
Q291bnQ7CiB9CiAKLXZvaWQgSlNTdGFjazo6ZW5hYmxlRXJyb3JTdGFja1Jlc2VydmUoKQordm9p
ZCBKU1N0YWNrOjpzZXRSZXNlcnZlZFpvbmVTaXplKHNpemVfdCByZXNlcnZlZFpvbmVTaXplKQog
ewotICAgIG1fdXNlYWJsZUVuZCA9IHJlc2VydmF0aW9uRW5kKCk7CisgICAgbV9yZXNlcnZlZFpv
bmVTaXplSW5SZWdpc3RlcnMgPSByZXNlcnZlZFpvbmVTaXplIC8gc2l6ZW9mKFJlZ2lzdGVyKTsK
KyAgICBpZiAobV9jb21taXRUb3AgPj0gKG1fZW5kICsgMSkgLSBtX3Jlc2VydmVkWm9uZVNpemVJ
blJlZ2lzdGVycykKKyAgICAgICAgZ3Jvd1Nsb3dDYXNlKG1fZW5kICsgMSk7CiB9CisjZW5kaWYg
Ly8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAotdm9pZCBKU1N0YWNrOjpkaXNhYmxlRXJyb3JTdGFj
a1Jlc2VydmUoKQorI2lmICFFTkFCTEUoTExJTlRfQ19MT09QKQorUmVnaXN0ZXIqIEpTU3RhY2s6
Omxvd0FkZHJlc3MoKSBjb25zdAogewotICAgIGNoYXIqIHVzZWFibGVFbmQgPSByZWludGVycHJl
dF9jYXN0PGNoYXIqPihyZXNlcnZhdGlvbkVuZCgpKSArIGNvbW1pdFNpemU7Ci0gICAgbV91c2Vh
YmxlRW5kID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0ZXIqPih1c2VhYmxlRW5kKTsKKyAg
ICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7Cisg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmVnaXN0ZXIqPihtX3ZtLnN0YWNrTGltaXQoKSk7
Cit9CiAKLSAgICAvLyBCeSB0aGUgdGltZSB3ZSBnZXQgaGVyZSwgd2UgYXJlIGd1YXJhbnRlZWQg
dG8gYmUgZGVzdHJ1Y3RpbmcgdGhlIGxhc3QKLSAgICAvLyBJbnRlcnByZXRlcjo6RXJyb3JIYW5k
bGluZ01vZGUgdGhhdCBlbmFibGVkIHRoaXMgcmVzZXJ2ZSBpbiB0aGUgZmlyc3QKLSAgICAvLyBw
bGFjZS4gVGhhdCBtZWFucyB0aGUgc3RhY2sgc3BhY2UgYmV5b25kIG1fdXNlYWJsZUVuZCBiZWZv
cmUgd2UKLSAgICAvLyBlbmFibGVkIHRoZSByZXNlcnZlIHdhcyBub3QgcHJldmlvdXNseSBpbiB1
c2UuIEhlbmNlLCBpdCBpcyBzYWZlIHRvCi0gICAgLy8gc2hyaW5rIGJhY2sgdG8gdGhhdCBtX3Vz
ZWFibGVFbmQuCi0gICAgaWYgKG1fZW5kIDwgbV91c2VhYmxlRW5kKSB7Ci0gICAgICAgIEFTU0VS
VChtX3RvcENhbGxGcmFtZS0+ZnJhbWVFeHRlbnQoKSA+PSBtX3VzZWFibGVFbmQpOwotICAgICAg
ICBzaHJpbmsobV91c2VhYmxlRW5kKTsKLSAgICB9CitSZWdpc3RlciogSlNTdGFjazo6aGlnaEFk
ZHJlc3MoKSBjb25zdAoreworICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dy
b3dpbmdEb3dud2FyZCgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxSZWdpc3Rlcio+
KHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLm9yaWdpbigpKTsKK30KKyNlbmRpZiAvLyAhRU5BQkxF
KExMSU5UX0NfTE9PUCkKKworc2l6ZV90IEpTU3RhY2s6OmNvbW1pdHRlZEJ5dGVDb3VudCgpCit7
CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBNdXRleExvY2tlciBsb2NrZXIoc3RhY2tT
dGF0aXN0aWNzTXV0ZXgoKSk7CisgICAgcmV0dXJuIGNvbW1pdHRlZEJ5dGVzQ291bnQ7CisjZWxz
ZQorICAgIC8vIFdoZW4gdXNpbmcgdGhlIEMgc3RhY2ssIHdlIGRvbid0IGtub3cgaG93IG1hbnkg
c3RhY2sgcGFnZXMgYXJlIGFjdHVhbGx5CisgICAgLy8gY29tbWl0dGVkLiBTbywgd2UgdXNlIHRo
ZSBjdXJyZW50IHN0YWNrIHVzYWdlIGFzIGFuIGVzdGltYXRlLgorICAgIEFTU0VSVCh3dGZUaHJl
YWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKKyAgICBpbnQ4X3QqIGN1cnJl
bnQgPSByZWludGVycHJldF9jYXN0PGludDhfdCo+KCZjdXJyZW50KTsKKyAgICBpbnQ4X3QqIGhp
Z2ggPSByZWludGVycHJldF9jYXN0PGludDhfdCo+KHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLm9y
aWdpbigpKTsKKyAgICByZXR1cm4gaGlnaCAtIGN1cnJlbnQ7CisjZW5kaWYKIH0KIAogfSAvLyBu
YW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNT
dGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9K
U1N0YWNrLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9KU1N0YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM1LDExICszNSw2IEBACiAjaW5jbHVkZSA8d3RmL1BhZ2VSZXNlcnZhdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9WTVRhZ3MuaD4KIAotI2RlZmluZSBFTkFCTEVfREVCVUdfSlNTVEFDSyAwCi0jaWYg
IWRlZmluZWQoTkRFQlVHKSAmJiAhZGVmaW5lZChFTkFCTEVfREVCVUdfSlNTVEFDSykKLSNkZWZp
bmUgRU5BQkxFX0RFQlVHX0pTU1RBQ0sgMQotI2VuZGlmCi0KIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgY2xhc3MgQ29kZUJsb2NrU2V0OwpAQCAtNjEsNyArNTYsOCBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNTdGFjayk7CiAgICAgcHVibGljOgogICAg
ICAgICBlbnVtIENhbGxGcmFtZUhlYWRlckVudHJ5IHsKLSAgICAgICAgICAgIENvZGVCbG9jayA9
IHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSAvIHNpemVvZihSZWdpc3RlciksCisgICAgICAgICAg
ICBDYWxsZXJGcmFtZUFuZFBDU2l6ZSA9IHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSAvIHNpemVv
ZihSZWdpc3RlciksCisgICAgICAgICAgICBDb2RlQmxvY2sgPSBDYWxsZXJGcmFtZUFuZFBDU2l6
ZSwKICAgICAgICAgICAgIFNjb3BlQ2hhaW4sCiAgICAgICAgICAgICBDYWxsZWUsCiAgICAgICAg
ICAgICBBcmd1bWVudENvdW50LApAQCAtNzIsOTIgKzY4LDg3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgRmlyc3RBcmd1bWVudCwKICAgICAgICAgfTsKIAotICAgICAgICBzdGF0aWMg
Y29uc3Qgc2l6ZV90IGRlZmF1bHRDYXBhY2l0eSA9IDUxMiAqIDEwMjQ7CiAgICAgICAgIHN0YXRp
YyBjb25zdCBzaXplX3QgY29tbWl0U2l6ZSA9IDE2ICogMTAyNDsKICAgICAgICAgLy8gQWxsb3cg
OGsgb2YgZXhjZXNzIHJlZ2lzdGVycyBiZWZvcmUgd2Ugc3RhcnQgdHJ5aW5nIHRvIHJlYXAgdGhl
IHN0YWNrCiAgICAgICAgIHN0YXRpYyBjb25zdCBwdHJkaWZmX3QgbWF4RXhjZXNzQ2FwYWNpdHkg
PSA4ICogMTAyNDsKIAotICAgICAgICBKU1N0YWNrKFZNJiwgc2l6ZV90IGNhcGFjaXR5ID0gZGVm
YXVsdENhcGFjaXR5KTsKLSAgICAgICAgfkpTU3RhY2soKTsKKyAgICAgICAgSlNTdGFjayhWTSYp
OwogICAgICAgICAKKyAgICAgICAgYm9vbCBlbnN1cmVDYXBhY2l0eUZvcihSZWdpc3RlciogbmV3
VG9wT2ZTdGFjayk7CisKKyAgICAgICAgYm9vbCBjb250YWluc0FkZHJlc3MoUmVnaXN0ZXIqIGFk
ZHJlc3MpIHsgcmV0dXJuIChsb3dBZGRyZXNzKCkgPD0gYWRkcmVzcyAmJiBhZGRyZXNzIDwgaGln
aEFkZHJlc3MoKSk7IH0KKyAgICAgICAgc3RhdGljIHNpemVfdCBjb21taXR0ZWRCeXRlQ291bnQo
KTsKKworI2lmICFFTkFCTEUoTExJTlRfQ19MT09QKQorICAgICAgICB2b2lkIGdhdGhlckNvbnNl
cnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJikgeyB9CisgICAgICAgIHZvaWQgZ2F0aGVy
Q29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmLCBKSVRTdHViUm91dGluZVNldCYs
IENvZGVCbG9ja1NldCYpIHsgfQorICAgICAgICB2b2lkIHNhbml0aXplU3RhY2soKSB7IH0KKyAg
ICAgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpIHsgfQorI2Vsc2UKKyAgICAg
ICAgfkpTU3RhY2soKTsKKwogICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENv
bnNlcnZhdGl2ZVJvb3RzJik7CiAgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMo
Q29uc2VydmF0aXZlUm9vdHMmLCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYpOwog
ICAgICAgICB2b2lkIHNhbml0aXplU3RhY2soKTsKIAotICAgICAgICBSZWdpc3RlciogZ2V0QmFz
ZU9mU3RhY2soKSBjb25zdAorICAgICAgICBSZWdpc3RlciogYmFzZU9mU3RhY2soKSBjb25zdAog
ICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gaGlnaEFkZHJlc3MoKSAtIDE7CiAgICAgICAg
IH0KIAogICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGhpZ2hBZGRyZXNzKCkg
LSBsb3dBZGRyZXNzKCk7IH0KIAotICAgICAgICBib29sIGdyb3coUmVnaXN0ZXIqKTsKLSAgICAg
ICAgCi0gICAgICAgIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0ZUNvdW50KCk7CiAgICAgICAg
IHN0YXRpYyB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKTsKIAotICAgICAgICBSZWdpc3Rlciog
Z2V0VG9wT2ZGcmFtZShDYWxsRnJhbWUqKTsKLSAgICAgICAgUmVnaXN0ZXIqIGdldFN0YXJ0T2ZG
cmFtZShDYWxsRnJhbWUqKTsKLSAgICAgICAgUmVnaXN0ZXIqIGdldFRvcE9mU3RhY2soKTsKLQot
ICAgICAgICBib29sIGVudHJ5Q2hlY2soY2xhc3MgQ29kZUJsb2NrKiwgaW50KTsKKyAgICAgICAg
dm9pZCBzZXRSZXNlcnZlZFpvbmVTaXplKHNpemVfdCk7CiAKLSAgICAgICAgQ2FsbEZyYW1lKiBw
dXNoRnJhbWUoY2xhc3MgQ29kZUJsb2NrKiwgSlNTY29wZSosIGludCBhcmdzQ291bnQsIEpTT2Jq
ZWN0KiBjYWxsZWUpOwotCi0gICAgICAgIHZvaWQgcG9wRnJhbWUoQ2FsbEZyYW1lKik7Ci0KLSAg
ICAgICAgYm9vbCBjb250YWluc0FkZHJlc3MoUmVnaXN0ZXIqIGFkZHJlc3MpIHsgcmV0dXJuIChs
b3dBZGRyZXNzKCkgPD0gYWRkcmVzcyAmJiBhZGRyZXNzIDw9IGhpZ2hBZGRyZXNzKCkpOyB9Ci0K
LSAgICAgICAgdm9pZCBlbmFibGVFcnJvclN0YWNrUmVzZXJ2ZSgpOwotICAgICAgICB2b2lkIGRp
c2FibGVFcnJvclN0YWNrUmVzZXJ2ZSgpOwotCi0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0g
ICAgICAgIHZvaWQgaW5zdGFsbEZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIgKmZ1bmN0aW9u
ID0gIiIsIGludCBsaW5lTm8gPSAwKTsKLSAgICAgICAgdm9pZCB2YWxpZGF0ZUZlbmNlKENhbGxG
cmFtZSosIGNvbnN0IGNoYXIgKmZ1bmN0aW9uID0gIiIsIGludCBsaW5lTm8gPSAwKTsKLSAgICAg
ICAgc3RhdGljIGNvbnN0IGludCBGZW5jZVNpemUgPSA0OwotI2Vsc2UgLy8gIUVOQUJMRShERUJV
R19KU1NUQUNLKQotICAgICAgICB2b2lkIGluc3RhbGxGZW5jZShDYWxsRnJhbWUqLCBjb25zdCBj
aGFyKiA9ICIiLCBpbnQgPSAwKSB7IH0KLSAgICAgICAgdm9pZCB2YWxpZGF0ZUZlbmNlKENhbGxG
cmFtZSosIGNvbnN0IGNoYXIqID0gIiIsIGludCA9IDApIHsgfQotI2VuZGlmIC8vICFFTkFCTEUo
REVCVUdfSlNTVEFDSykKKyAgICAgICAgaW5saW5lIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKCk7Cisj
ZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogICAgIHByaXZhdGU6CisKKyNpZiBFTkFC
TEUoTExJTlRfQ19MT09QKQogICAgICAgICBSZWdpc3RlciogbG93QWRkcmVzcygpIGNvbnN0CiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX2VuZDsKKyAgICAgICAgICAgIHJldHVybiBt
X2VuZCArIDE7CiAgICAgICAgIH0KIAogICAgICAgICBSZWdpc3RlciogaGlnaEFkZHJlc3MoKSBj
b25zdAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdF9wdHI8
UmVnaXN0ZXIqPihzdGF0aWNfY2FzdDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpICsgbV9y
ZXNlcnZhdGlvbi5zaXplKCkpOwogICAgICAgICB9CisjZWxzZQorICAgICAgICBSZWdpc3Rlciog
bG93QWRkcmVzcygpIGNvbnN0OworICAgICAgICBSZWdpc3RlciogaGlnaEFkZHJlc3MoKSBjb25z
dDsKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09QKQogCi0gICAgICAgIFJlZ2lzdGVyKiBy
ZXNlcnZhdGlvbkVuZCgpIGNvbnN0CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICAgICAg
aW5saW5lIFJlZ2lzdGVyKiB0b3BPZkZyYW1lRm9yKENhbGxGcmFtZSopOworCisgICAgICAgIFJl
Z2lzdGVyKiByZXNlcnZhdGlvblRvcCgpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGNo
YXIqIHJlc2VydmF0aW9uRW5kID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1fcmVzZXJ2YXRpb24uYmFz
ZSgpKTsKLSAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+
KHJlc2VydmF0aW9uRW5kKTsKKyAgICAgICAgICAgIGNoYXIqIHJlc2VydmF0aW9uVG9wID0gc3Rh
dGljX2Nhc3Q8Y2hhcio+KG1fcmVzZXJ2YXRpb24uYmFzZSgpKTsKKyAgICAgICAgICAgIHJldHVy
biByZWludGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHJlc2VydmF0aW9uVG9wKTsKICAgICAg
ICAgfQogCi0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0gICAgICAgIHN0YXRpYyBKU1ZhbHVl
IGdlbmVyYXRlRmVuY2VWYWx1ZShzaXplX3QgYXJnSW5kZXgpOwotICAgICAgICB2b2lkIGluc3Rh
bGxUcmFwc0FmdGVyRnJhbWUoQ2FsbEZyYW1lKik7Ci0jZWxzZQotICAgICAgICB2b2lkIGluc3Rh
bGxUcmFwc0FmdGVyRnJhbWUoQ2FsbEZyYW1lKikgeyB9Ci0jZW5kaWYKLQotICAgICAgICBib29s
IGdyb3dTbG93Q2FzZShSZWdpc3RlciopOwotICAgICAgICB2b2lkIHNocmluayhSZWdpc3Rlciop
OworICAgICAgICBib29sIGdyb3coUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spOworICAgICAgICBi
b29sIGdyb3dTbG93Q2FzZShSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CisgICAgICAgIHZvaWQg
c2hyaW5rKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsKICAgICAgICAgdm9pZCByZWxlYXNlRXhj
ZXNzQ2FwYWNpdHkoKTsKICAgICAgICAgdm9pZCBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChsb25n
KTsKIAotICAgICAgICB2b2lkIHVwZGF0ZVN0YWNrTGltaXQoUmVnaXN0ZXIqIG5ld0VuZCk7Cisg
ICAgICAgIHZvaWQgc2V0U3RhY2tMaW1pdChSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CisjZW5k
aWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogICAgICAgICBWTSYgbV92bTsKKyAgICAgICAg
Q2FsbEZyYW1lKiYgbV90b3BDYWxsRnJhbWU7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKICAg
ICAgICAgUmVnaXN0ZXIqIG1fZW5kOwotICAgICAgICBSZWdpc3RlciogbV9jb21taXRFbmQ7Ci0g
ICAgICAgIFJlZ2lzdGVyKiBtX3VzZWFibGVFbmQ7CisgICAgICAgIFJlZ2lzdGVyKiBtX2NvbW1p
dFRvcDsKICAgICAgICAgUGFnZVJlc2VydmF0aW9uIG1fcmVzZXJ2YXRpb247Ci0gICAgICAgIENh
bGxGcmFtZSomIG1fdG9wQ2FsbEZyYW1lOwogICAgICAgICBSZWdpc3RlciogbV9sYXN0U3RhY2tU
b3A7CisgICAgICAgIHB0cmRpZmZfdCBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVyczsKKyNl
bmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09QKQogCiAgICAgICAgIGZyaWVuZCBjbGFzcyBMTElu
dE9mZnNldHNFeHRyYWN0b3I7CiAgICAgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9KU1N0YWNrSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrSW5saW5lcy5oCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEy
LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMjYyICszMyw2NSBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotaW5saW5lIFJlZ2lzdGVyKiBKU1N0YWNrOjpnZXRUb3BPZkZyYW1lKENhbGxGcmFtZSog
ZnJhbWUpCitpbmxpbmUgYm9vbCBKU1N0YWNrOjplbnN1cmVDYXBhY2l0eUZvcihSZWdpc3Rlciog
bmV3VG9wT2ZTdGFjaykKIHsKLSAgICBpZiAoVU5MSUtFTFkoIWZyYW1lKSkKLSAgICAgICAgcmV0
dXJuIGdldEJhc2VPZlN0YWNrKCk7Ci0gICAgcmV0dXJuIGZyYW1lLT5mcmFtZUV4dGVudCgpOwot
fQotCi1pbmxpbmUgUmVnaXN0ZXIqIEpTU3RhY2s6OmdldFRvcE9mU3RhY2soKQotewotICAgIHJl
dHVybiBnZXRUb3BPZkZyYW1lKG1fdG9wQ2FsbEZyYW1lKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19M
T09QKQorICAgIHJldHVybiBncm93KG5ld1RvcE9mU3RhY2spOworI2Vsc2UKKyAgICBBU1NFUlQo
d3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CisgICAgcmV0dXJu
IG5ld1RvcE9mU3RhY2sgPj0gbV92bS5zdGFja0xpbWl0KCk7CisjZW5kaWYKIH0KIAotaW5saW5l
IFJlZ2lzdGVyKiBKU1N0YWNrOjpnZXRTdGFydE9mRnJhbWUoQ2FsbEZyYW1lKiBmcmFtZSkKLXsK
LSAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gZnJhbWUtPmNhbGxlckZyYW1lU2tpcHBpbmdW
TUVudHJ5U2VudGluZWwoKTsKLSAgICByZXR1cm4gZ2V0VG9wT2ZGcmFtZShjYWxsZXJGcmFtZSk7
Ci19CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKIAotaW5saW5lIGJvb2wgSlNTdGFjazo6ZW50
cnlDaGVjayhjbGFzcyBDb2RlQmxvY2sqIGNvZGVCbG9jaywgaW50IGFyZ3NDb3VudCkKK2lubGlu
ZSBSZWdpc3RlciogSlNTdGFjazo6dG9wT2ZGcmFtZUZvcihDYWxsRnJhbWUqIGZyYW1lKQogewot
ICAgIFJlZ2lzdGVyKiBvbGRFbmQgPSBnZXRUb3BPZlN0YWNrKCk7Ci0KLSAgICAvLyBFbnN1cmUg
dGhhdCB3ZSBoYXZlIGVub3VnaCBzcGFjZSBmb3IgdGhlIHBhcmFtZXRlcnM6Ci0gICAgc2l6ZV90
IHBhZGRlZEFyZ3NDb3VudCA9IGFyZ3NDb3VudDsKLSAgICBpZiAoY29kZUJsb2NrKSB7Ci0gICAg
ICAgIHNpemVfdCBudW1QYXJhbWV0ZXJzID0gY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7Ci0g
ICAgICAgIGlmIChwYWRkZWRBcmdzQ291bnQgPCBudW1QYXJhbWV0ZXJzKQotICAgICAgICAgICAg
cGFkZGVkQXJnc0NvdW50ID0gbnVtUGFyYW1ldGVyczsKLSAgICB9Ci0KLSAgICBSZWdpc3Rlciog
bmV3Q2FsbEZyYW1lU2xvdCA9IG9sZEVuZCAtIHBhZGRlZEFyZ3NDb3VudCAtICgyICogSlNTdGFj
azo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSkgKyAxOwotCi0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0sp
Ci0gICAgbmV3Q2FsbEZyYW1lU2xvdCAtPSBKU1N0YWNrOjpGZW5jZVNpemU7CisjaWYgRU5BQkxF
KExMSU5UX0NfTE9PUCkKKyAgICBpZiAoVU5MSUtFTFkoIWZyYW1lKSkKKyAgICAgICAgcmV0dXJu
IGJhc2VPZlN0YWNrKCk7CiAjZW5kaWYKLQotICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBuZXdDYWxs
RnJhbWVTbG90OwotICAgIGlmICghIWNvZGVCbG9jaykKLSAgICAgICAgbmV3RW5kICs9IHZpcnR1
YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNvdW50KCkpLm9mZnNl
dCgpOwotCi0gICAgLy8gRW5zdXJlIHRoYXQgd2UgaGF2ZSB0aGUgbmVlZGVkIHN0YWNrIGNhcGFj
aXR5IHRvIHB1c2ggdGhlIG5ldyBmcmFtZToKLSAgICBpZiAoIWdyb3cobmV3RW5kKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZyYW1lLT50
b3BPZkZyYW1lKCkgLSAxOwogfQogCi1pbmxpbmUgQ2FsbEZyYW1lKiBKU1N0YWNrOjpwdXNoRnJh
bWUoY2xhc3MgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpTU2NvcGUqIHNjb3BlLCBpbnQgYXJnc0Nv
dW50LCBKU09iamVjdCogY2FsbGVlKQoraW5saW5lIFJlZ2lzdGVyKiBKU1N0YWNrOjp0b3BPZlN0
YWNrKCkKIHsKLSAgICBBU1NFUlQoISFzY29wZSk7Ci0gICAgUmVnaXN0ZXIqIG9sZEVuZCA9IGdl
dFRvcE9mU3RhY2soKTsKLQotICAgIC8vIEVuc3VyZSB0aGF0IHdlIGhhdmUgZW5vdWdoIHNwYWNl
IGZvciB0aGUgcGFyYW1ldGVyczoKLSAgICBzaXplX3QgcGFkZGVkQXJnc0NvdW50ID0gYXJnc0Nv
dW50OwotICAgIGlmIChjb2RlQmxvY2spIHsKLSAgICAgICAgc2l6ZV90IG51bVBhcmFtZXRlcnMg
PSBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKTsKLSAgICAgICAgaWYgKHBhZGRlZEFyZ3NDb3Vu
dCA8IG51bVBhcmFtZXRlcnMpCi0gICAgICAgICAgICBwYWRkZWRBcmdzQ291bnQgPSBudW1QYXJh
bWV0ZXJzOwotICAgIH0KLQotICAgIFJlZ2lzdGVyKiBuZXdDYWxsRnJhbWVTbG90ID0gb2xkRW5k
IC0gcGFkZGVkQXJnc0NvdW50IC0gKDIgKiBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSAr
IDE7Ci0KLSNpZiBFTkFCTEUoREVCVUdfSlNTVEFDSykKLSAgICBuZXdDYWxsRnJhbWVTbG90IC09
IEpTU3RhY2s6OkZlbmNlU2l6ZTsKLSNlbmRpZgotCi0gICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG5l
d0NhbGxGcmFtZVNsb3Q7Ci0gICAgaWYgKCEhY29kZUJsb2NrKQotICAgICAgICBuZXdFbmQgKz0g
dmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29kZUJsb2NrLT5mcmFtZVJlZ2lzdGVyQ291bnQoKSku
b2Zmc2V0KCk7Ci0KLSAgICAvLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIHRoZSBuZWVkZWQgc3RhY2sg
Y2FwYWNpdHkgdG8gcHVzaCB0aGUgbmV3IGZyYW1lOgotICAgIGlmICghZ3JvdyhuZXdFbmQpKQot
ICAgICAgICByZXR1cm4gMDsKLQotICAgIC8vIENvbXB1dGUgdGhlIGFkZHJlc3Mgb2YgdGhlIG5l
dyBWTSBzZW50aW5lbCBmcmFtZSBmb3IgdGhpcyBpbnZvY2F0aW9uOgotICAgIENhbGxGcmFtZSog
bmV3Vk1FbnRyeVNlbnRpbmVsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShuZXdDYWxsRnJhbWVT
bG90ICsgcGFkZGVkQXJnc0NvdW50ICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSk7Ci0g
ICAgQVNTRVJUKCEhbmV3Vk1FbnRyeVNlbnRpbmVsRnJhbWUpOwotCi0gICAgLy8gQ29tcHV0ZSB0
aGUgYWRkcmVzcyBvZiB0aGUgbmV3IGZyYW1lIGZvciB0aGlzIGludm9jYXRpb246Ci0gICAgQ2Fs
bEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShuZXdDYWxsRnJhbWVTbG90
KTsKLSAgICBBU1NFUlQoISFuZXdDYWxsRnJhbWUpOwotCi0gICAgLy8gVGhlIGNhbGxlciBmcmFt
ZSBzaG91bGQgYWx3YXlzIGJlIHRoZSByZWFsIHByZXZpb3VzIGZyYW1lIG9uIHRoZSBzdGFjaywK
LSAgICAvLyBhbmQgbm90IGEgcG90ZW50aWFsIEdsb2JhbEV4ZWMgdGhhdCB3YXMgcGFzc2VkIGlu
LiBQb2ludCBjYWxsZXJGcmFtZSB0bwotICAgIC8vIHRoZSB0b3AgZnJhbWUgb24gdGhlIHN0YWNr
LgotICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBtX3RvcENhbGxGcmFtZTsKLQotICAgIC8v
IEluaXRpYWxpemUgdGhlIFZNIHNlbnRpbmVsIGZyYW1lIGhlYWRlcjoKLSAgICBuZXdWTUVudHJ5
U2VudGluZWxGcmFtZS0+aW5pdGlhbGl6ZVZNRW50cnlTZW50aW5lbEZyYW1lKGNhbGxlckZyYW1l
KTsKLQotICAgIC8vIEluaXRpYWxpemUgdGhlIGNhbGxlZSBmcmFtZSBoZWFkZXI6Ci0gICAgbmV3
Q2FsbEZyYW1lLT5pbml0KGNvZGVCbG9jaywgMCwgc2NvcGUsIG5ld1ZNRW50cnlTZW50aW5lbEZy
YW1lLCBhcmdzQ291bnQsIGNhbGxlZSk7Ci0KLSAgICBBU1NFUlQoISFuZXdDYWxsRnJhbWUtPnNj
b3BlKCkpOwotCi0gICAgLy8gUGFkIGFkZGl0aW9uYWwgYXJncyBpZiBuZWVkZWQ6Ci0gICAgLy8g
Tm90ZTogd2UgbmVlZCB0byBzdWJ0cmFjdCAxIGZyb20gYXJnc0NvdW50IGFuZCBwYWRkZWRBcmdz
Q291bnQgdG8KLSAgICAvLyBleGNsdWRlIHRoZSB0aGlzIHBvaW50ZXIuCi0gICAgZm9yIChzaXpl
X3QgaSA9IGFyZ3NDb3VudC0xOyBpIDwgcGFkZGVkQXJnc0NvdW50LTE7ICsraSkKLSAgICAgICAg
bmV3Q2FsbEZyYW1lLT5zZXRBcmd1bWVudChpLCBqc1VuZGVmaW5lZCgpKTsKLQotICAgIGluc3Rh
bGxGZW5jZShuZXdDYWxsRnJhbWUsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwotICAgIHZhbGlk
YXRlRmVuY2UobmV3Q2FsbEZyYW1lLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKLSAgICBpbnN0
YWxsVHJhcHNBZnRlckZyYW1lKG5ld0NhbGxGcmFtZSk7Ci0KLSAgICAvLyBQdXNoIHRoZSBuZXcg
ZnJhbWU6Ci0gICAgbV90b3BDYWxsRnJhbWUgPSBuZXdDYWxsRnJhbWU7Ci0KLSAgICByZXR1cm4g
bmV3Q2FsbEZyYW1lOwotfQotCi1pbmxpbmUgdm9pZCBKU1N0YWNrOjpwb3BGcmFtZShDYWxsRnJh
bWUqIGZyYW1lKQotewotICAgIHZhbGlkYXRlRmVuY2UoZnJhbWUsIF9fRlVOQ1RJT05fXywgX19M
SU5FX18pOwotCi0gICAgLy8gUG9wIG9mZiB0aGUgY2FsbGVlIGZyYW1lIGFuZCB0aGUgc2VudGlu
ZWwgZnJhbWUuCi0gICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGZyYW1lLT5jYWxsZXJGcmFt
ZSgpLT52bUVudHJ5U2VudGluZWxDYWxsZXJGcmFtZSgpOwotCi0gICAgLy8gUG9wIHRvIHRoZSBj
YWxsZXI6Ci0gICAgbV90b3BDYWxsRnJhbWUgPSBjYWxsZXJGcmFtZTsKLQotICAgIC8vIElmIHdl
IGFyZSBwb3BwaW5nIHRoZSB2ZXJ5IGZpcnN0IGZyYW1lIGZyb20gdGhlIHN0YWNrIGkuZS4gbm8g
bW9yZQotICAgIC8vIGZyYW1lcyBiZWZvcmUgdGhpcywgdGhlbiB3ZSBjYW4gbm93IHNhZmVseSBz
aHJpbmsgdGhlIHN0YWNrLiBJbgotICAgIC8vIHRoaXMgY2FzZSwgd2UncmUgc2hyaW5raW5nIGFs
bCB0aGUgd2F5IHRvIHRoZSBiZWdpbm5pbmcgc2luY2UgdGhlcmUKLSAgICAvLyBhcmUgbm8gbW9y
ZSBmcmFtZXMgb24gdGhlIHN0YWNrLgotICAgIGlmICghY2FsbGVyRnJhbWUpCi0gICAgICAgIHNo
cmluayhnZXRCYXNlT2ZTdGFjaygpKTsKLQotICAgIGluc3RhbGxUcmFwc0FmdGVyRnJhbWUoY2Fs
bGVyRnJhbWUpOworICAgIHJldHVybiB0b3BPZkZyYW1lRm9yKG1fdG9wQ2FsbEZyYW1lKTsKIH0K
IAotaW5saW5lIHZvaWQgSlNTdGFjazo6c2hyaW5rKFJlZ2lzdGVyKiBuZXdFbmQpCitpbmxpbmUg
dm9pZCBKU1N0YWNrOjpzaHJpbmsoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7CisgICAgUmVn
aXN0ZXIqIG5ld0VuZCA9IG5ld1RvcE9mU3RhY2sgLSAxOwogICAgIGlmIChuZXdFbmQgPj0gbV9l
bmQpCiAgICAgICAgIHJldHVybjsKLSAgICB1cGRhdGVTdGFja0xpbWl0KG5ld0VuZCk7Ci0gICAg
aWYgKG1fZW5kID09IGdldEJhc2VPZlN0YWNrKCkgJiYgKG1fY29tbWl0RW5kIC0gZ2V0QmFzZU9m
U3RhY2soKSkgPj0gbWF4RXhjZXNzQ2FwYWNpdHkpCisgICAgc2V0U3RhY2tMaW1pdChuZXdUb3BP
ZlN0YWNrKTsKKyAgICAvLyBOb3RlOiBDbGFuZyBjb21wbGFpbnMgb2YgYW4gdW5yZXNvbHZlZCBs
aW5rYWdlIHRvIG1heEV4Y2Vzc0NhcGFjaXR5IGlmCisgICAgLy8gaW52b2tlIHN0ZDo6bWF4KCkg
d2l0aCBpdCBhcyBhbiBhcmd1bWVudC4gVG8gd29yayBhcm91bmQgdGhpcywgd2UgZmlyc3QKKyAg
ICAvLyBhc3NpZ24gdGhlIGNvbnN0YW50IHRvIGEgbG9jYWwgdmFyaWFibGUsIGFuZCB1c2UgdGhl
IGxvY2FsIGluc3RlYWQuCisgICAgcHRyZGlmZl90IG1heEV4Y2Vzc0NhcGFjaXR5ID0gSlNTdGFj
azo6bWF4RXhjZXNzQ2FwYWNpdHk7CisgICAgcHRyZGlmZl90IG1heEV4Y2Vzc0luUmVnaXN0ZXJz
ID0gc3RkOjptYXgobWF4RXhjZXNzQ2FwYWNpdHksIG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0
ZXJzKTsKKyAgICBpZiAobV9lbmQgPT0gYmFzZU9mU3RhY2soKSAmJiAoaGlnaEFkZHJlc3MoKSAt
IG1fY29tbWl0VG9wKSA+PSBtYXhFeGNlc3NJblJlZ2lzdGVycykKICAgICAgICAgcmVsZWFzZUV4
Y2Vzc0NhcGFjaXR5KCk7CiB9CiAKLWlubGluZSBib29sIEpTU3RhY2s6Omdyb3coUmVnaXN0ZXIq
IG5ld0VuZCkKK2lubGluZSBib29sIEpTU3RhY2s6Omdyb3coUmVnaXN0ZXIqIG5ld1RvcE9mU3Rh
Y2spCiB7CisgICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG5ld1RvcE9mU3RhY2sgLSAxOwogICAgIGlm
IChuZXdFbmQgPj0gbV9lbmQpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBncm93
U2xvd0Nhc2UobmV3RW5kKTsKKyAgICByZXR1cm4gZ3Jvd1Nsb3dDYXNlKG5ld1RvcE9mU3RhY2sp
OwogfQogCi1pbmxpbmUgdm9pZCBKU1N0YWNrOjp1cGRhdGVTdGFja0xpbWl0KFJlZ2lzdGVyKiBu
ZXdFbmQpCitpbmxpbmUgdm9pZCBKU1N0YWNrOjpzZXRTdGFja0xpbWl0KFJlZ2lzdGVyKiBuZXdU
b3BPZlN0YWNrKQogeworICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBuZXdUb3BPZlN0YWNrIC0gMTsK
ICAgICBtX2VuZCA9IG5ld0VuZDsKLSNpZiBVU0UoU0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0spCi0g
ICAgbV92bS5zZXRKU1N0YWNrTGltaXQobmV3RW5kKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09Q
KQorICAgIG1fdm0uc2V0SlNTdGFja0xpbWl0KG5ld1RvcE9mU3RhY2spOwogI2VuZGlmCiB9CiAK
LSNpZiBFTkFCTEUoREVCVUdfSlNTVEFDSykKLWlubGluZSBKU1ZhbHVlIEpTU3RhY2s6OmdlbmVy
YXRlRmVuY2VWYWx1ZShzaXplX3QgYXJnSW5kZXgpCi17Ci0gICAgdW5zaWduZWQgZmVuY2VCaXRz
ID0gMHhmYWNlYmFkMCB8ICgoYXJnSW5kZXgrMSkgJiAweGYpOwotICAgIEpTVmFsdWUgZmVuY2VW
YWx1ZSA9IEpTVmFsdWUoZmVuY2VCaXRzKTsKLSAgICByZXR1cm4gZmVuY2VWYWx1ZTsKLX0KLQot
Ly8gVGhlIEpTU3RhY2sgZmVuY2VzIG1lY2hhbmlzbSB3b3JrcyBhcyBmb2xsb3dzOgotLy8gMS4g
QSBmZW5jZSBpcyBhIG51bWJlciAoSlNTdGFjazo6RmVuY2VTaXplKSBvZiBKU1ZhbHVlcyB0aGF0
IGFyZSBpbml0aWFsaXplZAotLy8gICAgd2l0aCB2YWx1ZXMgZ2VuZXJhdGVkIGJ5IEpTU3RhY2s6
OmdlbmVyYXRlRmVuY2VWYWx1ZSgpLgotLy8gMi4gV2hlbiBwdXNoRnJhbWUoKSBpcyBjYWxsZWQs
IHRoZSBmZW5jZSBpcyBpbnN0YWxsZWQgYWZ0ZXIgdGhlIG1heCBleHRlbnQKLS8vICAgIG9mIHRo
ZSBwcmV2aW91cyB0b3BDYWxsRnJhbWUgYW5kIHRoZSBsYXN0IGFyZyBvZiB0aGUgbmV3IGZyYW1l
OgotLy8KLS8vICAgICAgICAgICAgICAgICAgICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgRnJhbWUgSGVh
ZGVyIG9mIHByZXZpb3VzIGZyYW1lICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgdG9wQ2FsbEZyYW1l
IC0tPiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0vLyAgICAgICAg
ICAgICAgICAgICAgIHwgTG9jYWxzIG9mIHByZXZpb3VzIGZyYW1lICAgICAgICAgICAgIHwKLS8v
ICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8ICoqKiB0aGUgRmVuY2UgKioqICAgICAgICAg
ICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCBWTSBlbnRyeSBz
ZW50aW5lbCBmcmFtZSBoZWFkZXIgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAgICAg
ICAgIHwgQXJncyBvZiBuZXcgZnJhbWUgICAgICAgICAgICAgICAgICAgIHwKLS8vICAgICAgICAg
ICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8g
ICAgICAgICAgICAgICAgICAgICB8IEZyYW1lIEhlYWRlciBvZiBuZXcgZnJhbWUgICAgICAgICAg
ICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLXwKLS8vICAgICAgICAgICBmcmFtZSAtLT4gfCBMb2NhbHMgb2YgbmV3IGZyYW1l
ICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0vLwotLy8gMy4gSW4gcG9wRnJhbWUoKSBhbmQg
ZWxzZXdoZXJlLCB3ZSBjYW4gY2FsbCBKU1N0YWNrOjp2YWxpZGF0ZUZlbmNlKCkgdG8KLS8vICAg
IGFzc2VydCB0aGF0IHRoZSBmZW5jZSBjb250YWlucyB0aGUgdmFsdWVzIHdlIGV4cGVjdC4KLQot
aW5saW5lIHZvaWQgSlNTdGFjazo6aW5zdGFsbEZlbmNlKENhbGxGcmFtZSogZnJhbWUsIGNvbnN0
IGNoYXIgKmZ1bmN0aW9uLCBpbnQgbGluZU5vKQotewotICAgIFVOVVNFRF9QQVJBTShmdW5jdGlv
bik7Ci0gICAgVU5VU0VEX1BBUkFNKGxpbmVObyk7Ci0gICAgUmVnaXN0ZXIqIHN0YXJ0T2ZGcmFt
ZSA9IGdldFN0YXJ0T2ZGcmFtZShmcmFtZSk7Ci0KLSAgICAvLyBUaGUgbGFzdCBhcmdJbmRleCBp
cyBhdDoKLSAgICBzaXplX3QgbWF4SW5kZXggPSBmcmFtZS0+YXJnSW5kZXhGb3JSZWdpc3Rlcihz
dGFydE9mRnJhbWUpICsgMTsKLSAgICBzaXplX3Qgc3RhcnRJbmRleCA9IG1heEluZGV4IC0gRmVu
Y2VTaXplOwotICAgIGZvciAoc2l6ZV90IGkgPSBzdGFydEluZGV4OyBpIDwgbWF4SW5kZXg7ICsr
aSkgewotICAgICAgICBKU1ZhbHVlIGZlbmNlVmFsdWUgPSBnZW5lcmF0ZUZlbmNlVmFsdWUoaSk7
Ci0gICAgICAgIGZyYW1lLT5zZXRBcmd1bWVudChpLCBmZW5jZVZhbHVlKTsKLSAgICB9Ci19Ci0K
LWlubGluZSB2b2lkIEpTU3RhY2s6OnZhbGlkYXRlRmVuY2UoQ2FsbEZyYW1lKiBmcmFtZSwgY29u
c3QgY2hhciAqZnVuY3Rpb24sIGludCBsaW5lTm8pCi17Ci0gICAgVU5VU0VEX1BBUkFNKGZ1bmN0
aW9uKTsKLSAgICBVTlVTRURfUEFSQU0obGluZU5vKTsKLSAgICBBU1NFUlQoISFmcmFtZS0+c2Nv
cGUoKSk7Ci0gICAgUmVnaXN0ZXIqIHN0YXJ0T2ZGcmFtZSA9IGdldFN0YXJ0T2ZGcmFtZShmcmFt
ZSk7Ci0gICAgc2l6ZV90IG1heEluZGV4ID0gZnJhbWUtPmFyZ0luZGV4Rm9yUmVnaXN0ZXIoc3Rh
cnRPZkZyYW1lKSArIDE7Ci0gICAgc2l6ZV90IHN0YXJ0SW5kZXggPSBtYXhJbmRleCAtIEZlbmNl
U2l6ZTsKLSAgICBmb3IgKHNpemVfdCBpID0gc3RhcnRJbmRleDsgaSA8IG1heEluZGV4OyArK2kp
IHsKLSAgICAgICAgSlNWYWx1ZSBmZW5jZVZhbHVlID0gZ2VuZXJhdGVGZW5jZVZhbHVlKGkpOwot
ICAgICAgICBKU1ZhbHVlIGFjdHVhbFZhbHVlID0gZnJhbWUtPmdldEFyZ3VtZW50VW5zYWZlKGkp
OwotICAgICAgICBBU1NFUlQoZmVuY2VWYWx1ZSA9PSBhY3R1YWxWYWx1ZSk7Ci0gICAgfQotfQot
Ci0vLyBXaGVuIGRlYnVnZ2luZyB0aGUgSlNTdGFjaywgd2UgaW5zdGFsbCBiYWQgdmFsdWVzIGFm
dGVyIHRoZSBleHRlbnQgb2YgdGhlCi0vLyB0b3BDYWxsRnJhbWUgYXQgdGhlIGVuZCBvZiBwdXNo
RnJhbWUoKSBhbmQgcG9wRnJhbWUoKS4gVGhlIGludGVudGlvbiBpcwotLy8gdG8gdHJpZ2dlciBj
cmFzaGVzIGluIHRoZSBldmVudCB0aGF0IG1lbW9yeSBpbiB0aGlzIHN1cHBvc2VkbHkgdW51c2Vk
Ci0vLyByZWdpb24gaXMgcmVhZCBhbmQgY29uc3VtZWQgd2l0aG91dCBwcm9wZXIgaW5pdGlhbGl6
YXRpb24uIEFmdGVyIHRoZSB0cmFwCi0vLyB3b3JkcyBhcmUgaW5zdGFsbGVkLCB0aGUgc3RhY2sg
bG9va3MgbGlrZSB0aGlzOgotLy8KLS8vICAgICAgICAgICAgICAgICAgICAgfCAuLi4gICAgICAg
ICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgRnJhbWUgSGVhZGVy
IG9mIGZyYW1lICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tfAotLy8gICAgdG9wQ2FsbEZyYW1lIC0tPiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgTG9jYWxzIG9mIGZyYW1l
ICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8ICoqKiBUcmFwIHdvcmRzICoq
KiAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCBVbnVzZWQgc3BhY2UgLi4uICAg
ICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8IC4uLiAgICAgICAgICAgICAgICAg
ICAgICAgICB8Ci0KLWlubGluZSB2b2lkIEpTU3RhY2s6Omluc3RhbGxUcmFwc0FmdGVyRnJhbWUo
Q2FsbEZyYW1lKiBmcmFtZSkKLXsKLSAgICBSZWdpc3RlciogdG9wT2ZGcmFtZSA9IGdldFRvcE9m
RnJhbWUoZnJhbWUpOwotICAgIGNvbnN0IGludCBzaXplT2ZUcmFwID0gNjQ7Ci0gICAgaW50MzJf
dCogc3RhcnRPZlRyYXAgPSByZWludGVycHJldF9jYXN0PGludDMyX3QqPih0b3BPZkZyYW1lKTsK
LSAgICBpbnQzMl90KiBlbmRPZlRyYXAgPSBzdGFydE9mVHJhcCAtIHNpemVPZlRyYXA7Ci0gICAg
aW50MzJfdCogZW5kT2ZDb21taXRlZE1lbW9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdCo+
KG1fY29tbWl0RW5kKTsKLQotICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBub3QgZXhjZWVkaW5nIHRo
ZSBhbW91bnQgb2YgYXZhaWxhYmxlIG1lbW9yeSB0byB3cml0ZSB0bzoKLSAgICBpZiAoZW5kT2ZU
cmFwIDwgZW5kT2ZDb21taXRlZE1lbW9yeSkKLSAgICAgICAgZW5kT2ZUcmFwID0gZW5kT2ZDb21t
aXRlZE1lbW9yeTsKLQotICAgIC8vIExheSB0aGUgdHJhcHM6Ci0gICAgaW50MzJfdCogcCA9IHN0
YXJ0T2ZUcmFwOwotICAgIHdoaWxlIChwID4gZW5kT2ZUcmFwKQotICAgICAgICAqcC0tID0gMHhh
YmFkY2FmZTsgLy8gQSBiYWQgd29yZCB0byB0cmlnZ2VyIGEgY3Jhc2ggaWYgZGVyZWYnZWQuCi19
Ci0jZW5kaWYgLy8gRU5BQkxFKERFQlVHX0pTU1RBQ0spCisjZW5kaWYgLy8gRU5BQkxFKExMSU5U
X0NfTE9PUCkKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZy
YW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlByb3Rv
Q2FsbEZyYW1lLmgiCiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJTdGFja0Fs
aWdubWVudC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDMsNyArNDQsOSBAQCB2b2lkIFBy
b3RvQ2FsbEZyYW1lOjppbml0KENvZGVCbG9jayogY29kCiAgICAgICAgIGlmIChwYWRkZWRBcmdz
Q291bnQgPCBudW1QYXJhbWV0ZXJzKQogICAgICAgICAgICAgcGFkZGVkQXJnc0NvdW50ID0gbnVt
UGFyYW1ldGVyczsKICAgICB9Ci0gICAgdGhpcy0+c2V0UGFkZGVkQXJnc0NvdW50KHBhZGRlZEFy
Z3NDb3VudCk7CisgICAgLy8gUm91bmQgdXAgcGFkZGVkQXJnc0NvdW50IHRvIGtlZXAgdGhlIHN0
YWNrIGZyYW1lIHNpemUgYWxpZ25lZC4KKyAgICBwYWRkZWRBcmdzQ291bnQgPSByb3VuZEFyZ3Vt
ZW50Q291bnRUb0FsaWduRnJhbWUocGFkZGVkQXJnc0NvdW50KTsKKyAgICB0aGlzLT5zZXRQYWRk
ZWRBcmdDb3VudChwYWRkZWRBcmdzQ291bnQpOwogICAgIHRoaXMtPmNsZWFyQ3VycmVudFZQQygp
OwogICAgIHRoaXMtPnNldFRoaXNWYWx1ZSh0aGlzVmFsdWUpOwogfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmgJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0Nh
bGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHN0cnVjdCBQcm90b0Nh
bGxGcmFtZSB7CiAgICAgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkgY29uc3QgeyBy
ZXR1cm4gYXJnQ291bnRBbmRDb2RlT3JpZ2luVmFsdWUucGF5bG9hZCgpOyB9CiAgICAgaW50IGFy
Z3VtZW50Q291bnQoKSBjb25zdCB7IHJldHVybiBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygp
IC0gMTsgfQogICAgIHZvaWQgc2V0QXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoaW50IGNvdW50
KSB7IGFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVlLnBheWxvYWQoKSA9IGNvdW50OyB9Ci0gICAg
dm9pZCBzZXRQYWRkZWRBcmdzQ291bnQoc2l6ZV90IGFyZ0NvdW50KSB7IHBhZGRlZEFyZ0NvdW50
ID0gYXJnQ291bnQ7IH0KKyAgICB2b2lkIHNldFBhZGRlZEFyZ0NvdW50KHNpemVfdCBhcmdDb3Vu
dCkgeyBwYWRkZWRBcmdDb3VudCA9IGFyZ0NvdW50OyB9CiAKICAgICB2b2lkIGNsZWFyQ3VycmVu
dFZQQygpIHsgYXJnQ291bnRBbmRDb2RlT3JpZ2luVmFsdWUudGFnKCkgPSAwOyB9CiAgICAgCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tG
YWlsUmV0dXJuVGh1bmtzLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcy5oIgorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkFzc2VtYmx5SGVscGVycy5o
IgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgor
CituYW1lc3BhY2UgSlNDIHsKKworQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6OkFyaXR5Q2hl
Y2tGYWlsUmV0dXJuVGh1bmtzKCkKKyAgICA6IG1fbmV4dFNpemUoMCkKK3sKK30KKworQXJpdHlD
aGVja0ZhaWxSZXR1cm5UaHVua3M6On5Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcygpIHsgfQor
CitDb2RlTG9jYXRpb25MYWJlbCogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6OnJldHVyblBD
c0ZvcigKKyAgICBWTSYgdm0sIHVuc2lnbmVkIG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5n
VGhpcykKK3sKKyAgICBBU1NFUlQobnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzID49
IDEpOworICAgIAorICAgIG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyA9IFdURjo6
cm91bmRVcFRvTXVsdGlwbGVPZigKKyAgICAgICAgc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwg
bnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzKTsKKyAgICAKKyAgICB7CisgICAgICAg
IENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIGlmIChudW1FeHBl
Y3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPCBtX25leHRTaXplKQorICAgICAgICAgICAgcmV0
dXJuIG1fcmV0dXJuUENBcnJheXMubGFzdCgpLmdldCgpOworICAgIH0KKyAgICAKKyAgICBBU1NF
UlQoIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7CisgICAgCisgICAgbnVtRXhwZWN0ZWRBcmd1bWVu
dHNJbmNsdWRpbmdUaGlzID0gc3RkOjptYXgobnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdU
aGlzLCBtX25leHRTaXplICogMik7CisgICAgCisgICAgQXNzZW1ibHlIZWxwZXJzIGppdCgmdm0s
IDApOworICAgIAorICAgIFZlY3RvcjxBc3NlbWJseUhlbHBlcnM6OkxhYmVsPiBsYWJlbHM7Cisg
ICAgCisgICAgZm9yICh1bnNpZ25lZCBzaXplID0gbV9uZXh0U2l6ZTsgc2l6ZSA8PSBudW1FeHBl
Y3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXM7IHNpemUgKz0gc3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKSkgeworICAgICAgICBsYWJlbHMuYXBwZW5kKGppdC5sYWJlbCgpKTsKKyAgICAgICAgCisg
ICAgICAgIGppdC5sb2FkMzIoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3Mo
CisgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwK
KyAgICAgICAgICAgICAgICAoSlNTdGFjazo6QXJndW1lbnRDb3VudCAtIEpTU3RhY2s6OkNhbGxl
ckZyYW1lQW5kUENTaXplKSAqIHNpemVvZihSZWdpc3RlcikgKworICAgICAgICAgICAgICAgIFBh
eWxvYWRPZmZzZXQpLAorICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDQpOworICAgICAgICBqaXQu
YWRkMzIoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigKKyAgICAg
ICAgICAgICAgICBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVy
RnJhbWVBbmRQQ1NpemUgKyBzaXplIC0gMSksCisgICAgICAgICAgICBHUFJJbmZvOjpyZWdUNCwg
R1BSSW5mbzo6cmVnVDIpOworICAgICAgICBqaXQubHNoaWZ0MzIoQXNzZW1ibHlIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoMyksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAgICAgaml0LmFkZFB0cihBc3Nl
bWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMik7CisgICAg
ICAgIGppdC5sb2FkUHRyKEdQUkluZm86OnJlZ1QyLCBHUFJJbmZvOjpyZWdUMik7CisgICAgICAg
IAorICAgICAgICBqaXQuYWRkUHRyKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoc2l6ZSAqIHNpemVvZihSZWdpc3RlcikpLAorICAgICAgICAgICAgQXNzZW1ibHlI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIAorICAgICAgICAvLyBUaHVu
a3MgbGlrZSBvdXJzIHdhbnQgdG8gdXNlIHRoZSByZXR1cm4gUEMgdG8gZmlndXJlIG91dCB3aGVy
ZSB0aGluZ3MKKyAgICAgICAgLy8gd2VyZSBzYXZlZC4gU28sIHdlIHBheSBpdCBmb3J3YXJkLgor
ICAgICAgICBqaXQuc3RvcmUzMigKKyAgICAgICAgICAgIEdQUkluZm86OnJlZ1Q0LAorICAgICAg
ICAgICAgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKAorICAgICAgICAgICAgICAgIEFzc2VtYmx5
SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsCisgICAgICAgICAgICAgICAgKEpTU3RhY2s6
OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXplb2Yo
UmVnaXN0ZXIpICsKKyAgICAgICAgICAgICAgICBQYXlsb2FkT2Zmc2V0KSk7CisgICAgICAgIAor
ICAgICAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMik7CisgICAgfQorICAgIAorICAgIExpbmtC
dWZmZXIgbGlua0J1ZmZlcih2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICAKKyAgICB1
bnNpZ25lZCByZXR1cm5QQ3NTaXplID0gbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlz
IC8gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSArIDE7CisgICAgc3RkOjp1bmlxdWVfcHRyPENv
ZGVMb2NhdGlvbkxhYmVsW10+IHJldHVyblBDcyA9CisgICAgICAgIHN0ZDo6bWFrZV91bmlxdWU8
Q29kZUxvY2F0aW9uTGFiZWxbXT4ocmV0dXJuUENzU2l6ZSk7CisgICAgZm9yICh1bnNpZ25lZCBz
aXplID0gMDsgc2l6ZSA8PSBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXM7IHNpemUg
Kz0gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSkgeworICAgICAgICB1bnNpZ25lZCBpbmRleCA9
IHNpemUgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VChpbmRleCA8IHJldHVyblBDc1NpemUpOworICAgICAgICBpZiAoc2l6ZSA8IG1fbmV4dFNpemUp
CisgICAgICAgICAgICByZXR1cm5QQ3NbaW5kZXhdID0gbV9yZXR1cm5QQ0FycmF5cy5sYXN0KClb
aW5kZXhdOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm5QQ3NbaW5kZXhdID0gbGlu
a0J1ZmZlci5sb2NhdGlvbk9mKGxhYmVsc1soc2l6ZSAtIG1fbmV4dFNpemUpIC8gc3RhY2tBbGln
bm1lbnRSZWdpc3RlcnMoKV0pOworICAgIH0KKworICAgIENvZGVMb2NhdGlvbkxhYmVsKiByZXN1
bHQgPSByZXR1cm5QQ3MuZ2V0KCk7CisKKyAgICB7CisgICAgICAgIENvbmN1cnJlbnRKSVRMb2Nr
ZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIG1fcmV0dXJuUENBcnJheXMuYXBwZW5kKHN0ZDo6
bW92ZShyZXR1cm5QQ3MpKTsKKyAgICAgICAgbV9yZWZzLmFwcGVuZChGSU5BTElaRV9DT0RFKGxp
bmtCdWZmZXIsICgiQXJpdHkgY2hlY2sgZmFpbCByZXR1cm4gdGh1bmtzIGZvciB1cCB0byBudW1B
cmdzID0gJXUiLCBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMpKSk7CisgICAgICAg
IG1fbmV4dFNpemUgPSBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgKyBzdGFja0Fs
aWdubWVudFJlZ2lzdGVycygpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CitDb2RlTG9jYXRpb25MYWJlbCBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rczo6cmV0dXJuUENG
b3IoVk0mIHZtLCB1bnNpZ25lZCBzbG90c1RvQWRkKQoreworICAgIHJldHVybiByZXR1cm5QQ3NG
b3Iodm0sIHNsb3RzVG9BZGQpW3Nsb3RzVG9BZGQgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygp
XTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rc19oCisjZGVmaW5lIEFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzX2gKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDb2RlTG9jYXRp
b24uaCIKKyNpbmNsdWRlICJDb25jdXJyZW50SklUTG9jay5oIgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBBcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcyB7CitwdWJsaWM6CisgICAgQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKTsKKyAgICB+
QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKTsKKyAgICAKKyAgICAvLyBSZXR1cm5zIGEgcG9p
bnRlciB0byBhbiBhcnJheSBvZiByZXR1cm4gbGFiZWxzIGluZGV4ZWQgYnkgbWlzc2luZ0FyZ3Mu
CisgICAgQ29kZUxvY2F0aW9uTGFiZWwqIHJldHVyblBDc0ZvcihWTSYsIHVuc2lnbmVkIG51bUV4
cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyk7CisgICAgCisgICAgQ29kZUxvY2F0aW9uTGFi
ZWwgcmV0dXJuUENGb3IoVk0mLCB1bnNpZ25lZCBzbG90c1RvQWRkKTsKKyAgICAKK3ByaXZhdGU6
CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDb2RlTG9jYXRpb25MYWJlbFtdPj4gbV9yZXR1
cm5QQ0FycmF5czsKKyAgICB1bnNpZ25lZCBtX25leHRTaXplOworICAgIFZlY3RvcjxNYWNyb0Fz
c2VtYmxlckNvZGVSZWY+IG1fcmVmczsKKyAgICBDb25jdXJyZW50SklUTG9jayBtX2xvY2s7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNlbmRp
ZiAvLyBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rc19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTEwLDYgKzExMCwxNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0
SXNDZWxsKEdQCiAgICAgYnJlYWtwb2ludCgpOwogICAgIGNoZWNrQ2VsbC5saW5rKHRoaXMpOwog
fQorCit2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0VGFnc0luUGxhY2UoKQoreworICAg
IEp1bXAgb2sgPSBicmFuY2g2NChFcXVhbCwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
LCBUcnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlcikpOworICAgIGJyZWFrcG9pbnQoKTsKKyAgICBv
ay5saW5rKHRoaXMpOworICAgIAorICAgIG9rID0gYnJhbmNoNjQoRXF1YWwsIEdQUkluZm86OnRh
Z01hc2tSZWdpc3RlciwgVHJ1c3RlZEltbTY0KFRhZ01hc2spKTsKKyAgICBicmVha3BvaW50KCk7
CisgICAgb2subGluayh0aGlzKTsKK30KICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCiB2b2lkIEFz
c2VtYmx5SGVscGVyczo6aml0QXNzZXJ0SXNJbnQzMihHUFJSZWcgZ3ByKQogewpAQCAtMTQ1LDYg
KzE1NiwxMCBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0SXNDZWxsKEdQCiAgICAg
YnJlYWtwb2ludCgpOwogICAgIGNoZWNrQ2VsbC5saW5rKHRoaXMpOwogfQorCit2b2lkIEFzc2Vt
Ymx5SGVscGVyczo6aml0QXNzZXJ0VGFnc0luUGxhY2UoKQoreworfQogI2VuZGlmIC8vIFVTRShK
U1ZBTFVFMzJfNjQpCiAKIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRIYXNWYWxpZENh
bGxGcmFtZSgpCkBAIC0xNjAsNiArMTc1LDEzIEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRB
c3NlcnRJc051bGwoR1AKICAgICBicmVha3BvaW50KCk7CiAgICAgY2hlY2tOdWxsLmxpbmsodGhp
cyk7CiB9CisKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRBcmd1bWVudENvdW50U2Fu
ZSgpCit7CisgICAgSnVtcCBvayA9IGJyYW5jaDMyKEJlbG93LCBwYXlsb2FkRm9yKEpTU3RhY2s6
OkFyZ3VtZW50Q291bnQpLCBUcnVzdGVkSW1tMzIoMTAwMDAwMDApKTsKKyAgICBicmVha3BvaW50
KCk7CisgICAgb2subGluayh0aGlzKTsKK30KICNlbmRpZiAvLyAhQVNTRVJUX0RJU0FCTEVECiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fz
c2VtYmx5SGVscGVycy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw4ICs1OCwzNiBA
QCBwdWJsaWM6CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSB7IHJldHVybiBtX2NvZGVCbG9j
azsgfQogICAgIFZNKiB2bSgpIHsgcmV0dXJuIG1fdm07IH0KICAgICBBc3NlbWJsZXJUeXBlX1Qm
IGFzc2VtYmxlcigpIHsgcmV0dXJuIG1fYXNzZW1ibGVyOyB9Ci0gICAgCisKKyAgICB2b2lkIGNo
ZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCkKKyAgICB7CisgICAgICAgIC8vIFRoaXMgY2hlY2sg
aXMgYm90aCB1bm5lZWRlZCBhbmQgaGFyZGVyIHRvIHdyaXRlIGNvcnJlY3RseSBmb3IgQVJNNjQK
KyNpZiAhZGVmaW5lZChOREVCVUcpICYmICFDUFUoQVJNNjQpCisgICAgICAgIEp1bXAgc3RhY2tQ
b2ludGVyQWxpZ25lZCA9IGJyYW5jaFRlc3RQdHIoWmVybywgc3RhY2tQb2ludGVyUmVnaXN0ZXIs
IFRydXN0ZWRJbW0zMigweGYpKTsKKyAgICAgICAgYnJlYWtwb2ludCgpOworICAgICAgICBzdGFj
a1BvaW50ZXJBbGlnbmVkLmxpbmsodGhpcyk7CisjZW5kaWYKKyAgICB9CisKICNpZiBDUFUoWDg2
XzY0KSB8fCBDUFUoWDg2KQorICAgIHNpemVfdCBwcm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkK
KyAgICB7CisgICAgICAgIC8vIFByb2xvZ3VlIG9ubHkgc2F2ZXMgdGhlIGZyYW1lUG9pbnRlclJl
Z2lzdGVyCisgICAgICAgIHJldHVybiBzaXplb2Yodm9pZCopOworICAgIH0KKworICAgIHZvaWQg
ZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKQorICAgIHsKKyAgICAgICAgcHVzaChmcmFtZVBvaW50ZXJS
ZWdpc3Rlcik7CisgICAgICAgIG1vdmUoc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGZyYW1lUG9pbnRl
clJlZ2lzdGVyKTsKKyAgICB9CisKKyAgICB2b2lkIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCkKKyAg
ICB7CisgICAgICAgIG1vdmUoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lz
dGVyKTsKKyAgICAgICAgcG9wKGZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICB9CisKICAgICB2
b2lkIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJSZWcgcmVnKQogICAgIHsKICAg
ICAgICAgcG9wKHJlZyk7CkBAIC03Nyw2ICsxMDUsMjQgQEAgcHVibGljOgogI2VuZGlmIC8vIENQ
VShYODZfNjQpIHx8IENQVShYODYpCiAKICNpZiBDUFUoQVJNKSB8fCBDUFUoQVJNNjQpCisgICAg
c2l6ZV90IHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKQorICAgIHsKKyAgICAgICAgLy8gUHJv
bG9ndWUgc2F2ZXMgdGhlIGZyYW1lUG9pbnRlclJlZ2lzdGVyIGFuZCBsaW5rUmVnaXN0ZXIKKyAg
ICAgICAgcmV0dXJuIDIgKiBzaXplb2Yodm9pZCopOworICAgIH0KKworICAgIHZvaWQgZW1pdEZ1
bmN0aW9uUHJvbG9ndWUoKQorICAgIHsKKyAgICAgICAgcHVzaFBhaXIoZnJhbWVQb2ludGVyUmVn
aXN0ZXIsIGxpbmtSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoc3RhY2tQb2ludGVyUmVnaXN0ZXIs
IGZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICB9CisKKyAgICB2b2lkIGVtaXRGdW5jdGlvbkVw
aWxvZ3VlKCkKKyAgICB7CisgICAgICAgIG1vdmUoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIHN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgcG9wUGFpcihmcmFtZVBvaW50ZXJSZWdpc3Rlciwg
bGlua1JlZ2lzdGVyKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcHJlc2VydmVS
ZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKFJlZ2lzdGVySUQgcmVnKQogICAgIHsKICAgICAgICAgbW92
ZShsaW5rUmVnaXN0ZXIsIHJlZyk7CkBAIC05NCw2ICsxNDAsMTIgQEAgcHVibGljOgogI2VuZGlm
CiAKICNpZiBDUFUoTUlQUykKKyAgICBzaXplX3QgcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgp
CisgICAgeworICAgICAgICAvLyBQcm9sb2d1ZSBzYXZlcyB0aGUgZnJhbWVQb2ludGVyUmVnaXN0
ZXIgYW5kIHJldHVybkFkZHJlc3NSZWdpc3RlcgorICAgICAgICByZXR1cm4gMiAqIHNpemVvZih2
b2lkKik7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHByZXNlcnZlUmV0dXJuQWRk
cmVzc0FmdGVyQ2FsbChSZWdpc3RlcklEIHJlZykKICAgICB7CiAgICAgICAgIG1vdmUocmV0dXJu
QWRkcmVzc1JlZ2lzdGVyLCByZWcpOwpAQCAtMTExLDYgKzE2MywxMiBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogI2lmIENQVShTSDQpCisgICAgc2l6ZV90IHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEo
KQorICAgIHsKKyAgICAgICAgLy8gUHJvbG9ndWUgc2F2ZXMgdGhlIGZyYW1lUG9pbnRlclJlZ2lz
dGVyIGFuZCBsaW5rIHJlZ2lzdGVyCisgICAgICAgIHJldHVybiAyICogc2l6ZW9mKHZvaWQqKTsK
KyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0
ZXJDYWxsKFJlZ2lzdGVySUQgcmVnKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3RzcHIo
cmVnKTsKQEAgLTE1MCwxMCArMjA4LDYgQEAgcHVibGljOgogICAgICAgICBzdG9yZVB0cihmcm9t
LCBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZy
YW1lT2Zmc2V0KCkpKTsKICAgICB9CiAKLSAgICB2b2lkIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxs
RnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJJRCB0bykKLSAgICB7Ci0gICAgICAgIGxvYWRQdHIoQWRk
cmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNl
dCgpKSwgdG8pOwotICAgIH0KICAgICB2b2lkIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVh
ZGVyKFJlZ2lzdGVySUQgZnJvbSkKICAgICB7CiAgICAgICAgIHN0b3JlUHRyKGZyb20sIEFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQo
KSkpOwpAQCAtMTYzLDYgKzIxNywyOSBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlUHRyKGZyb20s
IEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENP
ZmZzZXQoKSkpOwogICAgIH0KIAorICAgIC8vIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlckJlZm9y
ZVByb2xvZ3VlKCkgYW5kIHJlbGF0ZWQgYXJlIHVzZWQgdG8gYWNjZXNzIGNhbGxlZSBmcmFtZSBo
ZWFkZXIKKyAgICAvLyBmaWVsZHMgYmVmb3JlIHRoZSBjb2RlIGZyb20gZW1pdEZ1bmN0aW9uUHJv
bG9ndWUoKSBoYXMgZXhlY3V0ZWQuCisgICAgLy8gRmlyc3QsIHRoZSBhY2Nlc3MgaXMgdmlhIHRo
ZSBzdGFjayBwb2ludGVyLiBTZWNvbmQsIHRoZSBhZGRyZXNzIGNhbGN1bGF0aW9uIG11c3QgYWxz
byB0YWtlCisgICAgLy8gaW50byBhY2NvdW50IHRoYXQgdGhlIHN0YWNrIHBvaW50ZXIgbWF5IG5v
dCBoYXZlIGJlZW4gYWRqdXN0ZWQgZG93biBmb3IgdGhlIHJldHVybiBQQyBhbmQvb3IKKyAgICAv
LyBjYWxsZXIncyBmcmFtZSBwb2ludGVyLiBPbiBzb21lIHBsYXRmb3JtcywgdGhlIGNhbGxlZSBp
cyByZXNwb25zaWJsZSBmb3IgcHVzaGluZyB0aGUKKyAgICAvLyAibGluayByZWdpc3RlciIgY29u
dGFpbmluZyB0aGUgcmV0dXJuIGFkZHJlc3MgaW4gdGhlIGZ1bmN0aW9uIHByb2xvZ3VlLgorI2lm
IFVTRShKU1ZBTFVFNjQpCisgICAgdm9pZCBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQ
cm9sb2d1ZShHUFJSZWcgZnJvbSwgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkp
CisgICAgeworICAgICAgICBzdG9yZVB0cihmcm9tLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lz
dGVyLCBlbnRyeSAqIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBw
cm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkpKTsKKyAgICB9CisjZWxzZQorICAgIHZvaWQgZW1p
dFB1dFBheWxvYWRUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKEdQUlJlZyBmcm9tLCBK
U1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSkKKyAgICB7CisgICAgICAgIHN0b3Jl
UHRyKGZyb20sIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGVudHJ5ICogc3RhdGljX2Nh
c3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAtIHByb2xvZ3VlU3RhY2tQb2ludGVyRGVs
dGEoKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5
bG9hZCkpKTsKKyAgICB9CisKKyAgICB2b2lkIGVtaXRQdXRUYWdUb0NhbGxGcmFtZUhlYWRlckJl
Zm9yZVByb2xvZ3VlKFRydXN0ZWRJbW0zMiB0YWcsIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlckVu
dHJ5IGVudHJ5KQorICAgIHsKKyAgICAgICAgc3RvcmVQdHIodGFnLCBBZGRyZXNzKHN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBlbnRyeSAqIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lz
dGVyKSkgLSBwcm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5j
b2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpKTsKKyAgICB9CisjZW5kaWYKKwogICAg
IEp1bXAgYnJhbmNoSWZOb3RDZWxsKEdQUlJlZyByZWcpCiAgICAgewogI2lmIFVTRShKU1ZBTFVF
NjQpCkBAIC0xOTQsNyArMjcxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBBZGRyZXNzIHRhZ0Zv
cihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyKQogICAgIHsKICAgICAgICAgQVNTRVJU
KHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwotICAgICAgICByZXR1cm4gQWRkcmVzcyhHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9m
KFJlZ2lzdGVyKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0Jp
dHMudGFnKSk7CisgICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgVGFnT2Zm
c2V0KTsKICAgICB9CiAgICAgc3RhdGljIEFkZHJlc3MgdGFnRm9yKGludCBvcGVyYW5kKQogICAg
IHsKQEAgLTIwNCw3ICsyODEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEFkZHJlc3MgcGF5bG9h
ZEZvcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyKQogICAgIHsKICAgICAgICAgQVNT
RVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwotICAgICAgICByZXR1cm4gQWRkcmVzcyhH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6
ZW9mKFJlZ2lzdGVyKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBh
c0JpdHMucGF5bG9hZCkpOworICAgICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSAr
IFBheWxvYWRPZmZzZXQpOwogICAgIH0KICAgICBzdGF0aWMgQWRkcmVzcyBwYXlsb2FkRm9yKGlu
dCBvcGVyYW5kKQogICAgIHsKQEAgLTI5OCw2ICszNzUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBq
aXRBc3NlcnRJc0NlbGwoR1BSUmVnKTsKICAgICB2b2lkIGppdEFzc2VydEhhc1ZhbGlkQ2FsbEZy
YW1lKCk7CiAgICAgdm9pZCBqaXRBc3NlcnRJc051bGwoR1BSUmVnKTsKKyAgICB2b2lkIGppdEFz
c2VydFRhZ3NJblBsYWNlKCk7CisgICAgdm9pZCBqaXRBc3NlcnRBcmd1bWVudENvdW50U2FuZSgp
OwogI2Vsc2UKICAgICB2b2lkIGppdEFzc2VydElzSW50MzIoR1BSUmVnKSB7IH0KICAgICB2b2lk
IGppdEFzc2VydElzSlNJbnQzMihHUFJSZWcpIHsgfQpAQCAtMzA2LDYgKzM4NSw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGppdEFzc2VydElzQ2VsbChHUFJSZWcpIHsgfQogICAgIHZvaWQgaml0QXNz
ZXJ0SGFzVmFsaWRDYWxsRnJhbWUoKSB7IH0KICAgICB2b2lkIGppdEFzc2VydElzTnVsbChHUFJS
ZWcpIHsgfQorICAgIHZvaWQgaml0QXNzZXJ0VGFnc0luUGxhY2UoKSB7IH0KKyAgICB2b2lkIGpp
dEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCkgeyB9CiAjZW5kaWYKIAogICAgIC8vIFRoZXNlIG1l
dGhvZHMgY29udmVydCBiZXR3ZWVuIGRvdWJsZXMsIGFuZCBkb3VibGVzIGJveGVkIGFuZCBKU1Zh
bHVlcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMu
aAkod29ya2luZyBjb3B5KQpAQCAtOTUsNiArOTUsMTMgQEAgcHVibGljOgogICAgICAgICBhZGRD
YWxsQXJndW1lbnQoYXJnMik7CiAgICAgfQogICAgIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBz
ZXR1cEFyZ3VtZW50cyhUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcyKQorICAgIHsKKyAg
ICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcx
KTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOworICAgIH0KKyAgICAKICAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBH
UFJSZWcgYXJnMykKICAgICB7CiAgICAgICAgIHJlc2V0Q2FsbEFyZ3VtZW50cygpOwpAQCAtOTM5
LDYgKzk0NiwxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1vdmUoYXJnMSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHMo
VHJ1c3RlZEltbVB0ciBhcmcxLCBHUFJSZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1vdmUoYXJn
MiwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgbW92ZShhcmcxLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOworICAgIH0KKyAgICAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBB
cmd1bWVudHMoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQogICAgIHsKICAgICAgICAgc2V0dXBU
d29TdHViQXJnc0dQUjxHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BS
MT4oYXJnMSwgYXJnMik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFi
bGVBbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4
ZWN1dGFibGVBbGxvY2F0b3IuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDIx
ICs3OCw2IEBAIHZvaWQgcmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoVk0mKTsKIAogc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGppdEFsbG9jYXRpb25HcmFudWxlID0gMzI7CiAKLWlubGluZSBzaXplX3Qg
cm91bmRVcEFsbG9jYXRpb25TaXplKHNpemVfdCByZXF1ZXN0LCBzaXplX3QgZ3JhbnVsYXJpdHkp
Ci17Ci0gICAgUkVMRUFTRV9BU1NFUlQoKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4
KCkgLSBncmFudWxhcml0eSkgPiByZXF1ZXN0KTsKLSAgICAKLSAgICAvLyBSb3VuZCB1cCB0byBu
ZXh0IHBhZ2UgYm91bmRhcnkKLSAgICBzaXplX3Qgc2l6ZSA9IHJlcXVlc3QgKyAoZ3JhbnVsYXJp
dHkgLSAxKTsKLSAgICBzaXplID0gc2l6ZSAmIH4oZ3JhbnVsYXJpdHkgLSAxKTsKLSAgICBBU1NF
UlQoc2l6ZSA+PSByZXF1ZXN0KTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQotfQotCi1uYW1lc3Bh
Y2UgSlNDIHsKLQogdHlwZWRlZiBXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGUgRXhlY3V0YWJsZU1l
bW9yeUhhbmRsZTsKIAogI2lmIEVOQUJMRShBU1NFTUJMRVIpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKIEpTQzo6TWFjcm9B
c3NlbWJsZXJYODZDb21tb246OlNTRTJDaGVja1N0YXRlIEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZD
b21tb246OnNfc3NlMkNoZWNrU3RhdGUgPSBOb3RDaGVja2VkU1NFMjsKICNlbmRpZgogCisjaW5j
bHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDb2RlQmxvY2su
aCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5o
IgpAQCAtNDIsMTEgKzQzLDEzIEBAIEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OlNTRTJD
aGVja1MKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2lu
Y2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVy
LmgiCiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgog
I2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAj
aW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBzdGQ7CkBAIC05OCw2ICsxMDEsNyBAQCB2b2lkIEpJVDo6ZW1pdEVudGVyT3B0aW1p
emF0aW9uQ2hlY2soKQogICAgIEFTU0VSVCghbV9ieXRlY29kZU9mZnNldCk7CiAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25PcHRpbWl6ZSwgbV9ieXRlY29kZU9mZnNldCk7CiAgICAgc2tpcE9w
dGltaXplLmFwcGVuZChicmFuY2hUZXN0UHRyKFplcm8sIHJldHVyblZhbHVlR1BSKSk7CisgICAg
bW92ZShyZXR1cm5WYWx1ZUdQUjIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBqdW1wKHJl
dHVyblZhbHVlR1BSKTsKICAgICBza2lwT3B0aW1pemUubGluayh0aGlzKTsKIH0KQEAgLTEyOCw2
ICsxMzIsOSBAQCB2b2lkIEpJVDo6ZW1pdEVudGVyT3B0aW1pemF0aW9uQ2hlY2soKQogCiB2b2lk
IEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiB7CisgICAgaml0QXNzZXJ0VGFnc0luUGxh
Y2UoKTsKKyAgICBqaXRBc3NlcnRBcmd1bWVudENvdW50U2FuZSgpOworICAgIAogICAgIEluc3Ry
dWN0aW9uKiBpbnN0cnVjdGlvbnNCZWdpbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5i
ZWdpbigpOwogICAgIHVuc2lnbmVkIGluc3RydWN0aW9uQ291bnQgPSBtX2NvZGVCbG9jay0+aW5z
dHJ1Y3Rpb25zKCkuc2l6ZSgpOwogCkBAIC00OTYsOCArNTAzLDcgQEAgQ29tcGlsYXRpb25SZXN1
bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSQogICAgIGlmIChtX3JhbmRvbUdlbmVyYXRvci5nZXRV
aW50MzIoKSAmIDEpCiAgICAgICAgIG5vcCgpOwogCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNz
QWZ0ZXJDYWxsKHJlZ1QyKTsKLSAgICBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihy
ZWdUMik7CisgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICBlbWl0UHV0SW1tZWRpYXRl
VG9DYWxsRnJhbWVIZWFkZXIobV9jb2RlQmxvY2ssIEpTU3RhY2s6OkNvZGVCbG9jayk7CiAKICAg
ICBMYWJlbCBiZWdpbkxhYmVsKHRoaXMpOwpAQCAtNTA3LDcgKzUxMyw3IEBAIENvbXBpbGF0aW9u
UmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAgICBzYW1wbGVJbnN0cnVjdGlvbihtX2Nv
ZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSk7CiAjZW5kaWYKIAotICAgIEp1bXAgc3Rh
Y2tDaGVjazsKKyAgICBKdW1wIHN0YWNrT3ZlcmZsb3c7CiAgICAgaWYgKG1fY29kZUJsb2NrLT5j
b2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSkgewogICAgICAgICBBU1NFUlQobV9ieXRlY29kZU9m
ZnNldCA9PSAodW5zaWduZWQpLTEpOwogICAgICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygp
KSB7CkBAIC01MjcsMTIgKzUzMywxMyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVD
b21waWxlKEpJCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBhZGRQdHIoVHJ1
c3RlZEltbTMyKHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lUmVnaXN0ZXJDb3VudEZvciht
X2NvZGVCbG9jaykpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lz
dGVyLCByZWdUMSk7Ci0gICAgICAgIHN0YWNrQ2hlY2sgPSBicmFuY2hQdHIoQWJvdmUsIEFic29s
dXRlQWRkcmVzcyhtX3ZtLT5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksIHJlZ1QxKTsKKyAgICAg
ICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2sp
ICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7CisgICAgICAg
IHN0YWNrT3ZlcmZsb3cgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5h
ZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksIHJlZ1QxKTsKICAgICB9CiAKLSAgICBMYWJlbCBmdW5j
dGlvbkJvZHkgPSBsYWJlbCgpOwotICAgIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQ
b2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJh
bWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVy
QWxpZ25tZW50KCk7CisKICAgICBwcml2YXRlQ29tcGlsZU1haW5QYXNzKCk7CiAgICAgcHJpdmF0
ZUNvbXBpbGVMaW5rUGFzcygpOwogICAgIHByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCk7CkBAIC01
NDIsMTggKzU0OSwxNSBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJ
CiAKICAgICBMYWJlbCBhcml0eUNoZWNrOwogICAgIGlmIChtX2NvZGVCbG9jay0+Y29kZVR5cGUo
KSA9PSBGdW5jdGlvbkNvZGUpIHsKLSAgICAgICAgc3RhY2tDaGVjay5saW5rKHRoaXMpOworICAg
ICAgICBzdGFja092ZXJmbG93LmxpbmsodGhpcyk7CiAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXQg
PSAwOwotICAgICAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRp
b24ob3BlcmF0aW9uU3RhY2tDaGVjaywgbV9jb2RlQmxvY2spOwotI2lmbmRlZiBOREVCVUcKLSAg
ICAgICAgbV9ieXRlY29kZU9mZnNldCA9ICh1bnNpZ25lZCktMTsgLy8gUmVzZXQgdGhpcywgaW4g
b3JkZXIgdG8gZ3VhcmQgaXRzIHVzZSB3aXRoIEFTU0VSVHMuCi0jZW5kaWYKLSAgICAgICAganVt
cChmdW5jdGlvbkJvZHkpOworICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwpCisgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgY2FsbE9wZXJhdGlv
bldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvblRocm93U3RhY2tPdmVy
Zmxvd0Vycm9yLCBtX2NvZGVCbG9jayk7CiAKICAgICAgICAgYXJpdHlDaGVjayA9IGxhYmVsKCk7
CiAgICAgICAgIHN0b3JlOChUcnVzdGVkSW1tMzIoMCksICZtX2NvZGVCbG9jay0+bV9zaG91bGRB
bHdheXNCZUlubGluZWQpOwotICAgICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwo
cmVnVDIpOwotICAgICAgICBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihyZWdUMik7
CisgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgICAgIGVtaXRQdXRJbW1lZGlh
dGVUb0NhbGxGcmFtZUhlYWRlcihtX2NvZGVCbG9jaywgSlNTdGFjazo6Q29kZUJsb2NrKTsKIAog
ICAgICAgICBsb2FkMzIocGF5bG9hZEZvcihKU1N0YWNrOjpBcmd1bWVudENvdW50KSwgcmVnVDEp
OwpAQCAtNTYxLDEwICs1NjUsMTYgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29t
cGlsZShKSQogCiAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXQgPSAwOwogCisgICAgICAgIGlmICht
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0cihUcnVzdGVk
SW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwogICAgICAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRp
b24obV9jb2RlQmxvY2stPm1faXNDb25zdHJ1Y3RvciA/IG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5
Q2hlY2sgOiBvcGVyYXRpb25DYWxsQXJpdHlDaGVjayk7CisgICAgICAgIGlmIChtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAg
ICAgIGlmIChyZXR1cm5WYWx1ZUdQUiAhPSByZWdUMCkKICAgICAgICAgICAgIG1vdmUocmV0dXJu
VmFsdWVHUFIsIHJlZ1QwKTsKICAgICAgICAgYnJhbmNoVGVzdDMyKFplcm8sIHJlZ1QwKS5saW5r
VG8oYmVnaW5MYWJlbCwgdGhpcyk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihtX3ZtLT5h
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENzRm9yKCptX3ZtLCBtX2NvZGVCbG9j
ay0+bnVtUGFyYW1ldGVycygpKSksIHJlZ1Q1KTsKKyAgICAgICAgbG9hZFB0cihCYXNlSW5kZXgo
cmVnVDUsIHJlZ1QwLCB0aW1lc1B0cigpKSwgcmVnVDUpOwogICAgICAgICBlbWl0TmFrZWRDYWxs
KG1fdm0tPmdldENUSVN0dWIoYXJpdHlGaXh1cCkuY29kZSgpKTsKIAogI2lmICFBU1NFUlRfRElT
QUJMRUQKQEAgLTY1MywyMCArNjYzLDEyIEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0
ZUNvbXBpbGUoSkkKICAgICAgICAgaW5mby5jYWxsZWVHUFIgPSByZWdUMDsKICAgICB9CiAKLSNp
ZiBFTkFCTEUoREZHX0pJVCkgfHwgRU5BQkxFKExMSU5UKQotICAgIGlmIChjYW5CZU9wdGltaXpl
ZE9ySW5saW5lZCgpCi0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICB8fCB0cnVlCi0jZW5kaWYK
LSAgICAgICAgKSB7Ci0gICAgICAgIENvbXBhY3RKSVRDb2RlTWFwOjpFbmNvZGVyIGppdENvZGVN
YXBFbmNvZGVyOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gMDsgYnl0
ZWNvZGVPZmZzZXQgPCBtX2xhYmVscy5zaXplKCk7ICsrYnl0ZWNvZGVPZmZzZXQpIHsKLSAgICAg
ICAgICAgIGlmIChtX2xhYmVsc1tieXRlY29kZU9mZnNldF0uaXNTZXQoKSkKLSAgICAgICAgICAg
ICAgICBqaXRDb2RlTWFwRW5jb2Rlci5hcHBlbmQoYnl0ZWNvZGVPZmZzZXQsIHBhdGNoQnVmZmVy
Lm9mZnNldE9mKG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XSkpOwotICAgICAgICB9Ci0gICAgICAg
IG1fY29kZUJsb2NrLT5zZXRKSVRDb2RlTWFwKGppdENvZGVNYXBFbmNvZGVyLmZpbmlzaCgpKTsK
KyAgICBDb21wYWN0SklUQ29kZU1hcDo6RW5jb2RlciBqaXRDb2RlTWFwRW5jb2RlcjsKKyAgICBm
b3IgKHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gMDsgYnl0ZWNvZGVPZmZzZXQgPCBtX2xhYmVs
cy5zaXplKCk7ICsrYnl0ZWNvZGVPZmZzZXQpIHsKKyAgICAgICAgaWYgKG1fbGFiZWxzW2J5dGVj
b2RlT2Zmc2V0XS5pc1NldCgpKQorICAgICAgICAgICAgaml0Q29kZU1hcEVuY29kZXIuYXBwZW5k
KGJ5dGVjb2RlT2Zmc2V0LCBwYXRjaEJ1ZmZlci5vZmZzZXRPZihtX2xhYmVsc1tieXRlY29kZU9m
ZnNldF0pKTsKICAgICB9Ci0jZW5kaWYKKyAgICBtX2NvZGVCbG9jay0+c2V0SklUQ29kZU1hcChq
aXRDb2RlTWFwRW5jb2Rlci5maW5pc2goKSk7CiAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
d2l0aEFyaXR5Q2hlY2s7CiAgICAgaWYgKG1fY29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0
aW9uQ29kZSkKQEAgLTY4Nyw4ICs2ODksNyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZh
dGVDb21waWxlKEpJCiAgICAgCiAgICAgbV9jb2RlQmxvY2stPnNocmlua1RvRml0KENvZGVCbG9j
azo6TGF0ZVNocmluayk7CiAgICAgbV9jb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgIGFk
b3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHJlc3VsdCwgSklUQ29kZTo6QmFzZWxpbmVKSVQpKSwK
LSAgICAgICAgd2l0aEFyaXR5Q2hlY2spOworICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklU
Q29kZShyZXN1bHQsIHdpdGhBcml0eUNoZWNrLCBKSVRDb2RlOjpCYXNlbGluZUpJVCkpKTsKICAg
ICAKICNpZiBFTkFCTEUoSklUX1ZFUkJPU0UpCiAgICAgZGF0YUxvZ0YoIkpJVCBnZW5lcmF0ZWQg
Y29kZSBmb3IgJXAgYXQgWyVwLCAlcCkuXG4iLCBtX2NvZGVCbG9jaywgcmVzdWx0LmV4ZWN1dGFi
bGVNZW1vcnkoKS0+c3RhcnQoKSwgcmVzdWx0LmV4ZWN1dGFibGVNZW1vcnkoKS0+ZW5kKCkpOwpA
QCAtNjk3LDQyICs2OTgsNiBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxl
KEpJCiAgICAgcmV0dXJuIENvbXBpbGF0aW9uU3VjY2Vzc2Z1bDsKIH0KIAotdm9pZCBKSVQ6Omxp
bmtGb3IoRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIENvZGVCbG9jayogY2Fs
bGVyQ29kZUJsb2NrLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywgSklUOjpDb2RlUHRyIGNv
ZGUsIENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvLCBWTSogdm0sIENvZGVTcGVjaWFsaXphdGlv
bktpbmQga2luZCkKLXsKLSAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIoY2FsbGVyQ29k
ZUJsb2NrKTsKLQotICAgIEFTU0VSVCghY2FsbExpbmtJbmZvLT5pc0xpbmtlZCgpKTsKLSAgICBj
YWxsTGlua0luZm8tPmNhbGxlZS5zZXQoKnZtLCBjYWxsTGlua0luZm8tPmhvdFBhdGhCZWdpbiwg
Y2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVlKTsKLSAgICBjYWxsTGlu
a0luZm8tPmxhc3RTZWVuQ2FsbGVlLnNldCgqdm0sIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVj
dXRhYmxlKCksIGNhbGxlZSk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZv
LT5ob3RQYXRoT3RoZXIsIGNvZGUpOwotCi0gICAgaWYgKGNhbGxlZUNvZGVCbG9jaykKLSAgICAg
ICAgY2FsbGVlQ29kZUJsb2NrLT5saW5rSW5jb21pbmdDYWxsKGV4ZWMsIGNhbGxMaW5rSW5mbyk7
Ci0KLSAgICAvLyBQYXRjaCB0aGUgc2xvdyBwYXRjaCBzbyB3ZSBkbyBub3QgY29udGludWUgdG8g
dHJ5IHRvIGxpbmsuCi0gICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpIHsKLSAgICAgICAgQVNT
RVJUKGNhbGxMaW5rSW5mby0+Y2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpDYWxsCi0gICAgICAg
ICAgICAgICB8fCBjYWxsTGlua0luZm8tPmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2FsbFZh
cmFyZ3MpOwotICAgICAgICBpZiAoY2FsbExpbmtJbmZvLT5jYWxsVHlwZSA9PSBDYWxsTGlua0lu
Zm86OkNhbGwpIHsKLSAgICAgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5m
by0+Y2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaHVu
a0dlbmVyYXRvcikuY29kZSgpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0g
ICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby0+Y2FsbFJldHVybkxvY2F0
aW9uLCB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0
cnVjdCk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJu
TG9jYXRpb24sIHZtLT5nZXRDVElTdHViKHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvciku
Y29kZSgpKTsKLX0KLQotdm9pZCBKSVQ6OmxpbmtTbG93Q2FsbChDb2RlQmxvY2sqIGNhbGxlckNv
ZGVCbG9jaywgQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8pCi17Ci0gICAgUmVwYXRjaEJ1ZmZl
ciByZXBhdGNoQnVmZmVyKGNhbGxlckNvZGVCbG9jayk7Ci0KLSAgICByZXBhdGNoQnVmZmVyLnJl
bGluayhjYWxsTGlua0luZm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiwgY2FsbGVyQ29kZUJsb2NrLT52
bSgpLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7Ci19Ci0K
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKIHsKICAgICBpZiAo
bV9leGNlcHRpb25DaGVja3MuZW1wdHkoKSAmJiBtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJh
bWVSb2xsYmFjay5lbXB0eSgpKQpAQCAtNzQyLDcgKzcwNyw3IEBAIHZvaWQgSklUOjpwcml2YXRl
Q29tcGlsZUV4Y2VwdGlvbkhhbmRsZXIKIAogICAgIGlmICghbV9leGNlcHRpb25DaGVja3NXaXRo
Q2FsbEZyYW1lUm9sbGJhY2suZW1wdHkoKSkgewogICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrc1dp
dGhDYWxsRnJhbWVSb2xsYmFjay5saW5rKHRoaXMpOwotICAgICAgICBlbWl0R2V0Q2FsbGVyRnJh
bWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAg
IGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6YXJndW1l
bnRHUFIxKTsKICAgICAgICAgZG9Mb29rdXAgPSBqdW1wKCk7CiAgICAgfQogCkBAIC03NTAsMTkg
KzcxNSwzMyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVyCiAgICAg
ICAgIG1fZXhjZXB0aW9uQ2hlY2tzLmxpbmsodGhpcyk7CiAgICAgCiAgICAgLy8gbG9va3VwRXhj
ZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQgb25lIGFyZ3VtZW50LCB0aGUgZXhlYyAodGhlIENhbGxG
cmFtZSopLgotICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CisgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKTsKIAogICAgIGlmIChkb0xvb2t1cC5pc1NldCgpKQogICAgICAgICBk
b0xvb2t1cC5saW5rKHRoaXMpOwogCisgICAgbW92ZShUcnVzdGVkSW1tUHRyKHZtKCkpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOworCiAjaWYgQ1BVKFg4NikKICAgICAvLyBGSVhNRTogc2hvdWxk
IHVzZSB0aGUgY2FsbCBhYnN0cmFjdGlvbiwgYnV0IHRoaXMgaXMgY3VycmVudGx5IGluIHRoZSBT
cGVjdWxhdGl2ZUpJVCBsYXllciEKICAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Cisg
ICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjEsIDEpOwogI2VuZGlmCiAgICAgbV9jYWxscy5h
cHBlbmQoQ2FsbFJlY29yZChjYWxsKCksICh1bnNpZ25lZCktMSwgRnVuY3Rpb25QdHIobG9va3Vw
RXhjZXB0aW9uSGFuZGxlcikudmFsdWUoKSkpOwogICAgIGp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIo
KTsKIH0KIAordW5zaWduZWQgSklUOjpmcmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2NrKiBj
b2RlQmxvY2spCit7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb2RlQmxvY2st
Pm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSA9PSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tB
bGlnbm1lbnRSZWdpc3RlcnMoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNvZGVCbG9jay0+bV9u
dW1DYWxsZWVSZWdpc3RlcnMpKSk7CisKKyAgICByZXR1cm4gcm91bmRMb2NhbFJlZ2lzdGVyQ291
bnRGb3JGcmFtZVBvaW50ZXJPZmZzZXQoY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVycyAr
IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5SZWdpc3RlcnMpOworfQorCitpbnQgSklU
OjpzdGFja1BvaW50ZXJPZmZzZXRGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCit7CisgICAgcmV0
dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lUmVnaXN0ZXJDb3VudEZvcihjb2RlQmxv
Y2spIC0gMSkub2Zmc2V0KCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTI0MSwxMyArMjQxLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gaml0LnByaXZhdGVDb21waWxlQ1RJTmF0aXZl
Q2FsbCh2bSwgZnVuYyk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgdm9pZCBsaW5rRm9y
KEV4ZWNTdGF0ZSosIEpTRnVuY3Rpb24qIGNhbGxlZSwgQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxv
Y2ssIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBDb2RlUHRyLCBDYWxsTGlua0luZm8qLCBW
TSosIENvZGVTcGVjaWFsaXphdGlvbktpbmQpOwotICAgICAgICBzdGF0aWMgdm9pZCBsaW5rU2xv
d0NhbGwoQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ssIENhbGxMaW5rSW5mbyopOwotICAgICAg
ICAKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxv
Y2sqIGNvZGVCbG9jaykKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGNvZGVCbG9jay0+
bV9udW1DYWxsZWVSZWdpc3RlcnM7Ci0gICAgICAgIH0KKyAgICAgICAgc3RhdGljIHVuc2lnbmVk
IGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqKTsKKyAgICAgICAgc3RhdGljIGludCBz
dGFja1BvaW50ZXJPZmZzZXRGb3IoQ29kZUJsb2NrKik7CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBKSVQoVk0qLCBDb2RlQmxvY2sqID0gMCk7CkBAIC02OTcsMTEgKzY5MiwxMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihXaXRo
UHJvZmlsZVRhZywgSl9KSVRPcGVyYXRpb25fRVBjLCBpbnQsIEluc3RydWN0aW9uKik7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVos
IGludCwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oUF9KSVRPcGVyYXRpb25fRUpTLCBHUFJSZWcsIHNpemVfdCk7Ci0gICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oUF9KSVRPcGVyYXRpb25fRVosIGludDMyX3QpOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9u
X0VDQywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQpOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKSiwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRU9Kc3MsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQp
OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNwcnRfSklUT3Bl
cmF0aW9uX0VaLCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQywgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNDLCBSZWdp
c3RlcklELCBSZWdpc3RlcklEKTsKQEAgLTcyNiw2ICs3MjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FUGMsIEluc3RydWN0aW9uKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVosIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24o
Sl9KSVRPcGVyYXRpb25fRSk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb25Ob0V4Y2VwdGlvbkNoZWNrKEpfSklUT3BlcmF0aW9uX0VFLCBSZWdpc3RlcklEKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xs
YmFja09uRXhjZXB0aW9uKFZfSklUT3BlcmF0aW9uX0VDYiwgQ29kZUJsb2NrKik7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tP
bkV4Y2VwdGlvbihaX0pJVE9wZXJhdGlvbl9FKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUmVwYXRj
aEJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rv
b2wuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQ
cmludFN0cmVhbS5oPgogCiAKQEAgLTU2LDEwICs1Nyw5IEBAIHZvaWQgSklUOjplbWl0X29wX3Jl
dChJbnN0cnVjdGlvbiogY3VycmUKICAgICB1bnNpZ25lZCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOwogCiAgICAgZW1pdExvYWQoZHN0LCByZWdUMSwgcmVnVDApOwotICAg
IGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVnVDIpOwotICAgIGVtaXRH
ZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwog
Ci0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDIpOworICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAg
ICByZXQoKTsKIH0KIApAQCAtNzMsMjAgKzczLDE2IEBAIHZvaWQgSklUOjplbWl0X29wX3JldF9v
YmplY3Rfb3JfdGhpcyhJbnMKICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3Ry
dWN0dXJlT2Zmc2V0KCkpLCByZWdUMik7CiAgICAgSnVtcCBub3RPYmplY3QgPSBlbWl0SnVtcElm
Tm90T2JqZWN0KHJlZ1QyKTsKIAotICAgIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFk
ZXJQdHIocmVnVDIpOwotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQ
dHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwotCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVS
ZXR1cm4ocmVnVDIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisgICAgZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKIAogICAgIG5vdEpTQ2VsbC5saW5rKHRo
aXMpOwogICAgIG5vdE9iamVjdC5saW5rKHRoaXMpOwogICAgIGVtaXRMb2FkKHRoaXNSZWcsIHJl
Z1QxLCByZWdUMCk7CiAKLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRy
KHJlZ1QyKTsKLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNh
bGxGcmFtZVJlZ2lzdGVyKTsKLQotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KHJlZ1QyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVtaXRGdW5j
dGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTE1MSw4ICsxNDcsMTIgQEAgdm9p
ZCBKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyhJbnN0cnVjdGlvbgogICAgICAgICAvLyByZWdUMjog
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMKIAogICAgICAgICBtb3ZlKHJlZ1QyLCByZWdUMyk7
CisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLWZpcnN0RnJlZVJlZ2lzdGVyICsgSlNTdGFj
azo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIHJlZ1QzKTsKKyAgICAgICAgLy8gcmVnVDEgbm93IGhh
cyB0aGUgcmVxdWlyZWQgZnJhbWUgc2l6ZSBpbiBSZWdpc3RlciB1bml0cworICAgICAgICAvLyBS
b3VuZCByZWdUMSB0byBuZXh0IG11bHRpcGxlIG9mIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkK
KyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpIC0g
MSksIHJlZ1QzKTsKKyAgICAgICAgYW5kUHRyKFRydXN0ZWRJbW0zMih+KHN0YWNrQWxpZ25tZW50
UmVnaXN0ZXJzKCkgLSAxKSksIHJlZ1QzKTsKICAgICAgICAgbmVnMzIocmVnVDMpOwotICAgICAg
ICBhZGQzMihUcnVzdGVkSW1tMzIoZmlyc3RGcmVlUmVnaXN0ZXIgLSBKU1N0YWNrOjpDYWxsRnJh
bWVIZWFkZXJTaXplKSwgcmVnVDMpOwogICAgICAgICBsc2hpZnQzMihUcnVzdGVkSW1tMzIoMyks
IHJlZ1QzKTsKICAgICAgICAgYWRkUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMyk7CiAgICAg
ICAgIC8vIHJlZ1QzOiBuZXdDYWxsRnJhbWUKQEAgLTE4NSwyMiArMTg1LDM0IEBAIHZvaWQgSklU
Ojpjb21waWxlTG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24KICAgICAgICAgc2xvd0Nhc2UubGluayh0
aGlzKTsKIAogICAgIGVtaXRMb2FkKGFyZ3VtZW50cywgcmVnVDEsIHJlZ1QwKTsKLSAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvblNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncywgcmVnVDEsIHJl
Z1QwLCBmaXJzdEZyZWVSZWdpc3Rlcik7Ci0gICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgcmVnVDUp
OwotICAgIGVtaXRMb2FkKHRoaXNWYWx1ZSwgcmVnVDEsIHJlZ1QwKTsKKyAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3MsIHJlZ1QxLCByZWdUMCwgZmlyc3RGcmVl
UmVnaXN0ZXIpOworICAgIG1vdmUocmV0dXJuVmFsdWVHUFIsIHN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKKyAgICBlbWl0TG9hZCh0aGlzVmFsdWUsIHJlZ1QxLCByZWdUNCk7CiAgICAgZW1pdExvYWQo
YXJndW1lbnRzLCByZWdUMywgcmVnVDIpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTG9h
ZFZhcmFyZ3MsIHJlZ1Q1LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMik7CisgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmV0dXJuVmFsdWVHUFIsIHJlZ1QxLCByZWdU
NCwgcmVnVDMsIHJlZ1QyKTsKICAgICBtb3ZlKHJldHVyblZhbHVlR1BSLCByZWdUMyk7CiAKICAg
ICBpZiAoY2FuT3B0aW1pemUpCiAgICAgICAgIGVuZC5saW5rKHRoaXMpOworCisgICAgYWRkUHRy
KFRydXN0ZWRJbW0zMihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMywgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwogfQogCiB2b2lkIEpJVDo6Y29tcGlsZUNhbGxFdmFsKEluc3RydWN0aW9u
KiBpbnN0cnVjdGlvbikKIHsKLSAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNr
T25FeGNlcHRpb24ob3BlcmF0aW9uQ2FsbEV2YWwpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIo
LXN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSksIHN0YWNr
UG9pbnRlclJlZ2lzdGVyLCByZWdUMSk7CisKKyAgICBjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25D
aGVjayhvcGVyYXRpb25DYWxsRXZhbCwgcmVnVDEpOworCisgICAgSnVtcCBub0V4Y2VwdGlvbiA9
IGVtaXRFeGNlcHRpb25DaGVjayhJbnZlcnRlZEV4Y2VwdGlvbkNoZWNrKTsKKyAgICBhZGRQdHIo
VHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2Yo
UmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAg
ICBleGNlcHRpb25DaGVjayhqdW1wKCkpOworCisgICAgbm9FeGNlcHRpb24ubGluayh0aGlzKTsK
ICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihFcXVhbCwgcmVnVDEsIFRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpFbXB0eVZhbHVlVGFnKSkpOwotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0z
MihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSks
IGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFj
a1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7
CiAgICAgCkBAIC0yMTEsOCArMjIzLDEzIEBAIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2YWxTbG93
Q2FzZShJbnN0cnUKIHsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKKyAgICBsb2FkUHRyKEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpD
YWxsZWUgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMCk7CisgICAgbG9hZFB0cihB
ZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6
Q2FsbGVlIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwgcmVnVDEpOworCiAgICAgZW1pdExv
YWQoSlNTdGFjazo6Q2FsbGVlLCByZWdUMSwgcmVnVDApOwogICAgIGVtaXROYWtlZENhbGwobV92
bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIGFk
ZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNp
emVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIp
OworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKICAgICBzYW1wbGVDb2RlQmxv
Y2sobV9jb2RlQmxvY2spOwogICAgIApAQCAtMjUxLDE4ICsyNjgsMTcgQEAgdm9pZCBKSVQ6OmNv
bXBpbGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSQogICAgICAgICAgICAgZG9uZS5saW5rKHRoaXMp
OwogICAgICAgICB9CiAgICAgCi0gICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIocmVnaXN0ZXJP
ZmZzZXQgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QzKTsKKyAg
ICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3Rl
cikgKyBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOwogCi0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGFyZ0NvdW50
KSwgcGF5bG9hZEZvcihKU1N0YWNrOjpBcmd1bWVudENvdW50LCByZWdUMykpOwotICAgIH0gLy8g
cmVnVDMgaG9sZHMgbmV3Q2FsbEZyYW1lIHdpdGggQXJndW1lbnRDb3VudCBpbml0aWFsaXplZC4K
KyAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoYXJnQ291bnQpLCBBZGRyZXNzKHN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc3RhdGljX2Nhc3Q8aW50Pihz
aXplb2YoUmVnaXN0ZXIpKSArIFBheWxvYWRPZmZzZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQ
QykpKTsKKyAgICB9IC8vIFNQIGhvbGRzIG5ld0NhbGxGcmFtZSArIHNpemVvZihDYWxsZXJGcmFt
ZUFuZFBDKSwgd2l0aCBBcmd1bWVudENvdW50IGluaXRpYWxpemVkLgogICAgIAogICAgIHVpbnQz
Ml90IGxvY2F0aW9uQml0cyA9IENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0ZWNvZGVJ
bnN0cnVjdGlvbihpbnN0cnVjdGlvbik7CiAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRp
b25CaXRzKSwgdGFnRm9yKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQsIGNhbGxGcmFtZVJlZ2lzdGVy
KSk7CiAgICAgZW1pdExvYWQoY2FsbGVlLCByZWdUMSwgcmVnVDApOyAvLyByZWdUMSwgcmVnVDAg
aG9sZHMgY2FsbGVlLgogCi0gICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3Mo
cmVnVDMsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwotICAgIGVtaXRTdG9yZShK
U1N0YWNrOjpDYWxsZWUsIHJlZ1QxLCByZWdUMCwgcmVnVDMpOwotICAgIG1vdmUocmVnVDMsIGNh
bGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBzdG9yZTMyKHJlZ1QwLCBBZGRyZXNzKHN0YWNrUG9pbnRl
clJlZ2lzdGVyLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdp
c3RlcikpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworICAg
IHN0b3JlMzIocmVnVDEsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNh
bGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBUYWdPZmZzZXQgLSBz
aXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKIAogICAgIGlmIChvcGNvZGVJRCA9PSBvcF9jYWxs
X2V2YWwpIHsKICAgICAgICAgY29tcGlsZUNhbGxFdmFsKGluc3RydWN0aW9uKTsKQEAgLTI4MSwx
MCArMjk3LDE2IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKE9wY29kZUlEIG9wY29kZUkKICAg
ICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5j
YWxsVHlwZSA9IENhbGxMaW5rSW5mbzo6Y2FsbFR5cGVGb3Iob3Bjb2RlSUQpOwogICAgIG1fY2Fs
bFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmJ5dGVjb2Rl
SW5kZXggPSBtX2J5dGVjb2RlT2Zmc2V0OwogCi0gICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBP
QkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZSkpLCByZWdUMSk7Ci0gICAgZW1pdFB1
dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CisgICAg
bG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29w
ZSkpLCByZWdUMik7CisgICAgc3RvcmUzMihyZWdUMiwgQWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXplb2YoUmVnaXN0
ZXIpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworICAgIHN0
b3JlMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBZGRyZXNzKHN0YWNrUG9pbnRl
clJlZ2lzdGVyLCBKU1N0YWNrOjpTY29wZUNoYWluICogc2l6ZW9mKFJlZ2lzdGVyKSArIFRhZ09m
ZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworCisgICAgY2hlY2tTdGFja1BvaW50
ZXJBbGlnbm1lbnQoKTsKICAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2Nh
bGxMaW5rSW5mb0luZGV4XS5ob3RQYXRoT3RoZXIgPSBlbWl0TmFrZWRDYWxsKCk7CiAKKyAgICBh
ZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBz
aXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworCiAgICAgc2FtcGxlQ29kZUJs
b2NrKG1fY29kZUJsb2NrKTsKICAgICBlbWl0UHV0Q2FsbFJlc3VsdChpbnN0cnVjdGlvbik7CiB9
CkBAIC0yOTksNyArMzIxLDE0IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UoT3Bj
b2RlSUQKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwog
Ci0gICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRl
eF0uY2FsbFJldHVybkxvY2F0aW9uID0gZW1pdE5ha2VkQ2FsbChvcGNvZGVJRCA9PSBvcF9jb25z
dHJ1Y3QgPyBtX3ZtLT5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29k
ZSgpIDogbV92bS0+Z2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwor
ICAgIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxpbmtUaHVua0dlbmVyYXRvckZvcigKKyAg
ICAgICAgb3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gQ29kZUZvckNvbnN0cnVjdCA6IENvZGVG
b3JDYWxsLAorICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKKyAgICAK
KyAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4
XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENUSVN0dWIoZ2Vu
ZXJhdG9yKS5jb2RlKCkpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJP
ZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lz
dGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1l
bnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgZW1pdFB1dENh
bGxSZXN1bHQoaW5zdHJ1Y3Rpb24pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRDYWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENh
bGwuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUmVw
YXRjaEJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGlu
Z1Rvb2wuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlRodW5rR2Vu
ZXJhdG9ycy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCkBAIC03MSwx
MCArNzIsMTQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyhJbnN0cnVjdGlvbgogICAg
ICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQs
IHJlZ1QwKTsKICAgICAgICAgc2xvd0Nhc2UuYXBwZW5kKGJyYW5jaDMyKEFib3ZlLCByZWdUMCwg
VHJ1c3RlZEltbTMyKEFyZ3VtZW50czo6TWF4QXJndW1lbnRzICsgMSkpKTsKICAgICAgICAgLy8g
cmVnVDA6IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzCi0KICAgICAgICAgbW92ZShyZWdUMCwg
cmVnVDEpOworICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIoLWZpcnN0RnJlZVJlZ2lzdGVyICsg
SlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIHJlZ1QxKTsKKyAgICAgICAgLy8gcmVnVDEg
bm93IGhhcyB0aGUgcmVxdWlyZWQgZnJhbWUgc2l6ZSBpbiBSZWdpc3RlciB1bml0cworICAgICAg
ICAvLyBSb3VuZCByZWdUMSB0byBuZXh0IG11bHRpcGxlIG9mIHN0YWNrQWxpZ25tZW50UmVnaXN0
ZXJzKCkKKyAgICAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJz
KCkgLSAxKSwgcmVnVDEpOworICAgICAgICBhbmQ2NChUcnVzdGVkSW1tMzIofihzdGFja0FsaWdu
bWVudFJlZ2lzdGVycygpIC0gMSkpLCByZWdUMSk7CisKICAgICAgICAgbmVnNjQocmVnVDEpOwot
ICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIoZmlyc3RGcmVlUmVnaXN0ZXIgLSBKU1N0YWNrOjpD
YWxsRnJhbWVIZWFkZXJTaXplKSwgcmVnVDEpOwogICAgICAgICBsc2hpZnQ2NChUcnVzdGVkSW1t
MzIoMyksIHJlZ1QxKTsKICAgICAgICAgYWRkUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7
CiAgICAgICAgIC8vIHJlZ1QxOiBuZXdDYWxsRnJhbWUKQEAgLTEwNSw3ICsxMTAsOCBAQCB2b2lk
IEpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uCiAgICAgICAgIHNsb3dDYXNlLmxp
bmsodGhpcyk7CiAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGFyZ3VtZW50cywgcmVnVDEp
OwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdz
LCByZWdUMSwgZmlyc3RGcmVlUmVnaXN0ZXIpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
U2l6ZUZyYW1lRm9yVmFyYXJncywgcmVnVDEsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKKyAgICBtb3Zl
KHJldHVyblZhbHVlR1BSLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3Rlcih0aGlzVmFsdWUsIHJlZ1QxKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KGFyZ3VtZW50cywgcmVnVDIpOwogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTG9hZFZhcmFy
Z3MsIHJldHVyblZhbHVlR1BSLCByZWdUMSwgcmVnVDIpOwpAQCAtMTEzLDEzICsxMTksMjQgQEAg
dm9pZCBKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyhJbnN0cnVjdGlvbgogCiAgICAgaWYgKGNhbk9w
dGltaXplKQogICAgICAgICBlbmQubGluayh0aGlzKTsKKyAgICAKKyAgICBhZGRQdHIoVHJ1c3Rl
ZEltbTMyKHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QxLCBzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CiB9CiAKIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2YWwoSW5zdHJ1Y3Rpb24qIGluc3Ry
dWN0aW9uKQogewotICAgIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2Vw
dGlvbihvcGVyYXRpb25DYWxsRXZhbCk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtc3RhdGlj
X2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKSwgc3RhY2tQb2ludGVy
UmVnaXN0ZXIsIHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhvcGVy
YXRpb25DYWxsRXZhbCwgcmVnVDEpOworCisgICAgSnVtcCBub0V4Y2VwdGlvbiA9IGVtaXRFeGNl
cHRpb25DaGVjayhJbnZlcnRlZEV4Y2VwdGlvbkNoZWNrKTsKKyAgICBhZGRQdHIoVHJ1c3RlZElt
bTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIp
KSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgICAgCisgICAgZXhj
ZXB0aW9uQ2hlY2soanVtcCgpKTsKKworICAgIG5vRXhjZXB0aW9uLmxpbmsodGhpcyk7CiAgICAg
YWRkU2xvd0Nhc2UoYnJhbmNoNjQoRXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6
ZW5jb2RlKEpTVmFsdWUoKSkpKSk7Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFt
ZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMy
KHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwg
Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNr
UG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsK
ICAgICAKQEAgLTEzMCw4ICsxNDcsMTAgQEAgdm9pZCBKSVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dD
YXNlKEluc3RydQogewogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKIAotICAgIGVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyNjQoSlNTdGFjazo6Q2FsbGVlLCByZWdUMCk7CisgICAgbG9hZDY0KEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpD
YWxsZWUgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMCk7CiAgICAgZW1pdE5ha2Vk
Q2FsbChtX3ZtLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7
CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxv
Y2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNhbXBs
ZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgCkBAIC0xNzAsMTggKzE4OSwxNiBAQCB2b2lk
IEpJVDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJCiAgICAgICAgICAgICBkb25lLmxp
bmsodGhpcyk7CiAgICAgICAgIH0KICAgICAKLSAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihy
ZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3RlciwgcmVn
VDEpOwotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihhcmdDb3VudCksIEFkZHJlc3MocmVn
VDEsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdp
c3RlcikpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5w
YXlsb2FkKSkpOwotICAgIH0gLy8gcmVnVDEgaG9sZHMgbmV3Q2FsbEZyYW1lIHdpdGggQXJndW1l
bnRDb3VudCBpbml0aWFsaXplZC4KKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rl
ck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikgKyBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCBj
YWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBzdG9yZTMy
KFRydXN0ZWRJbW0zMihhcmdDb3VudCksIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpT
U3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3Rlcikp
ICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworICAgIH0gLy8g
U1AgaG9sZHMgbmV3Q2FsbEZyYW1lICsgc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpLCB3aXRoIEFy
Z3VtZW50Q291bnQgaW5pdGlhbGl6ZWQuCiAgICAgCiAgICAgdWludDMyX3QgYnl0ZWNvZGVPZmZz
ZXQgPSBpbnN0cnVjdGlvbiAtIG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwog
ICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFz
Qnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOwotICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMy
KGxvY2F0aW9uQml0cyksIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgT0JKRUNUX09G
RlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSk7CisgICAgc3RvcmUz
MihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3Rlciwg
SlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVy
KSkgKyBUYWdPZmZzZXQpKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGNhbGxlZSwgcmVn
VDApOyAvLyByZWdUMCBob2xkcyBjYWxsZWUuCiAKLSAgICBzdG9yZTY0KGNhbGxGcmFtZVJlZ2lz
dGVyLCBBZGRyZXNzKHJlZ1QxLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpKTsKLSAg
ICBzdG9yZTY0KHJlZ1QwLCBBZGRyZXNzKHJlZ1QxLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7Ci0gICAgbW92ZShyZWdUMSwgY2FsbEZyYW1l
UmVnaXN0ZXIpOworICAgIHN0b3JlNjQocmVnVDAsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0
ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkg
LSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKIAogICAgIGlmIChvcGNvZGVJRCA9PSBvcF9j
YWxsX2V2YWwpIHsKICAgICAgICAgY29tcGlsZUNhbGxFdmFsKGluc3RydWN0aW9uKTsKQEAgLTE5
OCwxMCArMjE1LDE0IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKE9wY29kZUlEIG9wY29kZUkK
ICAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4
XS5jYWxsVHlwZSA9IENhbGxMaW5rSW5mbzo6Y2FsbFR5cGVGb3Iob3Bjb2RlSUQpOwogICAgIG1f
Y2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmJ5dGVj
b2RlSW5kZXggPSBtX2J5dGVjb2RlT2Zmc2V0OwogCi0gICAgbG9hZFB0cihBZGRyZXNzKHJlZ1Qw
LCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZSkpLCByZWdUMSk7Ci0gICAgZW1p
dFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKKyAgICBs
b2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3Bl
KSksIHJlZ1QyKTsKKyAgICBzdG9yZTY0KHJlZ1QyLCBBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6U2NvcGVDaGFpbiAqIHNpemVvZihSZWdpc3Rl
cikgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKwogICAgIG1fY2FsbFN0cnVjdHVyZVN0
dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmhvdFBhdGhPdGhlciA9IGVtaXRO
YWtlZENhbGwoKTsKIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0
Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwg
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7
CisKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIAogICAgIGVtaXRQdXRD
YWxsUmVzdWx0KGluc3RydWN0aW9uKTsKQEAgLTIxNiw3ICsyMzcsMTQgQEAgdm9pZCBKSVQ6OmNv
bXBpbGVPcENhbGxTbG93Q2FzZShPcGNvZGVJRAogCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwog
Ci0gICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRl
eF0uY2FsbFJldHVybkxvY2F0aW9uID0gZW1pdE5ha2VkQ2FsbChvcGNvZGVJRCA9PSBvcF9jb25z
dHJ1Y3QgPyBtX3ZtLT5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29k
ZSgpIDogbV92bS0+Z2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwor
ICAgIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxpbmtUaHVua0dlbmVyYXRvckZvcigKKyAg
ICAgICAgb3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gQ29kZUZvckNvbnN0cnVjdCA6IENvZGVG
b3JDYWxsLAorICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKKyAgICAK
KyAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4
XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENUSVN0dWIoZ2Vu
ZXJhdG9yKS5jb2RlKCkpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJP
ZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lz
dGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1l
bnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgCkBAIC0yMjYs
NyArMjU0LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGxTbG93Q2FzZShPcGNvZGVJRAogdm9p
ZCBKSVQ6OnByaXZhdGVDb21waWxlQ2xvc3VyZUNhbGwoQ2FsbExpbmtJbmZvKiBjYWxsTGlua0lu
Zm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBTdHJ1Y3R1cmUqIGV4cGVjdGVkU3RydWN0
dXJlLCBFeGVjdXRhYmxlQmFzZSogZXhwZWN0ZWRFeGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY29kZVB0cikKIHsKICAgICBKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgCisKICAgICBz
bG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoTm9uWmVybywgcmVnVDAsIHRhZ01hc2tSZWdp
c3RlcikpOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNz
KHJlZ1QwLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgVHJ1c3RlZEltbVB0cihleHBlY3Rl
ZFN0cnVjdHVyZSkpKTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwg
QWRkcmVzcyhyZWdUMCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBUcnVzdGVk
SW1tUHRyKGV4cGVjdGVkRXhlY3V0YWJsZSkpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRDb2RlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRDb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5j
bHVkZSAiTExJbnRUaHVua3MuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAi
UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL1By
aW50U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDEsMTEgKzQyLDkgQEAgSklUQ29k
ZTo6fkpJVENvZGUoKQogewogfQogCi1KU1ZhbHVlIEpJVENvZGU6OmV4ZWN1dGUoVk0qIHZtLCBQ
cm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUsIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKQorSlNW
YWx1ZSBKSVRDb2RlOjpleGVjdXRlKFZNKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZy
YW1lKQogewotICAgIEFTU0VSVCghdm0tPnRvcENhbGxGcmFtZSB8fCAoKFJlZ2lzdGVyKikodm0t
PnRvcENhbGxGcmFtZSkgPj0gdG9wT2ZTdGFjaykpOwotCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBK
U1ZhbHVlOjpkZWNvZGUoY2FsbFRvSmF2YVNjcmlwdChleGVjdXRhYmxlQWRkcmVzcygpLCAmdm0t
PnRvcENhbGxGcmFtZSwgcHJvdG9DYWxsRnJhbWUsIHRvcE9mU3RhY2spKTsKKyAgICBKU1ZhbHVl
IHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9KYXZhU2NyaXB0KGV4ZWN1dGFibGVBZGRy
ZXNzKCksIHZtLCBwcm90b0NhbGxGcmFtZSkpOwogICAgIHJldHVybiB2bS0+ZXhjZXB0aW9uKCkg
PyBqc051bGwoKSA6IHJlc3VsdDsKIH0KIApAQCAtNzMsNTIgKzcyLDM1IEBAIEZUTDo6Rm9yT1NS
RW50cnlKSVRDb2RlKiBKSVRDb2RlOjpmdGxGb3IKICAgICByZXR1cm4gMDsKIH0KIAotUGFzc1Jl
ZlB0cjxKSVRDb2RlPiBKSVRDb2RlOjpob3N0RnVuY3Rpb24oSklUQ29kZTo6Q29kZVJlZiBjb2Rl
KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShjb2RlLCBIb3N0Q2Fs
bFRodW5rKSk7Ci19Ci0KLURpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENvZGUoSklUVHlwZSBqaXRU
eXBlKQorSklUQ29kZVdpdGhDb2RlUmVmOjpKSVRDb2RlV2l0aENvZGVSZWYoSklUVHlwZSBqaXRU
eXBlKQogICAgIDogSklUQ29kZShqaXRUeXBlKQogewogfQogCi1EaXJlY3RKSVRDb2RlOjpEaXJl
Y3RKSVRDb2RlKGNvbnN0IEpJVENvZGU6OkNvZGVSZWYgcmVmLCBKSVRUeXBlIGppdFR5cGUpCitK
SVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZihDb2RlUmVmIHJlZiwgSklUVHlw
ZSBqaXRUeXBlKQogICAgIDogSklUQ29kZShqaXRUeXBlKQogICAgICwgbV9yZWYocmVmKQogewog
fQogCi1EaXJlY3RKSVRDb2RlOjp+RGlyZWN0SklUQ29kZSgpCi17Ci19Ci0KLXZvaWQgRGlyZWN0
SklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVSZWYoY29uc3QgSklUQ29kZTo6Q29kZVJlZiByZWYpCitK
SVRDb2RlV2l0aENvZGVSZWY6On5KSVRDb2RlV2l0aENvZGVSZWYoKQogewotICAgIFJFTEVBU0Vf
QVNTRVJUKCFtX3JlZik7Ci0gICAgbV9yZWYgPSByZWY7CiB9CiAKLUpJVENvZGU6OkNvZGVQdHIg
RGlyZWN0SklUQ29kZTo6YWRkcmVzc0ZvckNhbGwoKQotewotICAgIFJFTEVBU0VfQVNTRVJUKG1f
cmVmKTsKLSAgICByZXR1cm4gbV9yZWYuY29kZSgpOwotfQotCi12b2lkKiBEaXJlY3RKSVRDb2Rl
OjpleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCit2b2lkKiBKSVRDb2Rl
V2l0aENvZGVSZWY6OmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkKIHsK
ICAgICBSRUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KG1fcmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSArIG9mZnNldDsKIH0KIAot
dm9pZCogRGlyZWN0SklUQ29kZTo6ZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KQor
dm9pZCogSklUQ29kZVdpdGhDb2RlUmVmOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZz
ZXQpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIEFTU0VSVChvZmZzZXQgPD0g
c2l6ZSgpKTsgLy8gdXNlIDw9IGluc3RlYWQgb2YgPCBiZWNhdXNlIGl0IGlzIHZhbGlkIHRvIGFz
ayBmb3IgYW4gYWRkcmVzcyBhdCB0aGUgZXhjbHVzaXZlIGVuZCBvZiB0aGUgY29kZS4KICAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9yZWYuY29kZSgpLmRhdGFMb2NhdGlvbigp
KSArIG9mZnNldDsKIH0KIAotdW5zaWduZWQgRGlyZWN0SklUQ29kZTo6b2Zmc2V0T2Yodm9pZCog
cG9pbnRlckludG9Db2RlKQordW5zaWduZWQgSklUQ29kZVdpdGhDb2RlUmVmOjpvZmZzZXRPZih2
b2lkKiBwb2ludGVySW50b0NvZGUpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAg
IGludHB0cl90IHJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXJJbnRv
Q29kZSkgLSByZWludGVycHJldF9jYXN0PGludHB0cl90PihtX3JlZi5jb2RlKCkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSk7CkBAIC0xMjYsMTggKzEwOCwxMTYgQEAgdW5zaWduZWQgRGlyZWN0SklUQ29k
ZTo6b2Zmc2V0T2Yodm9pZCogcAogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVz
dWx0KTsKIH0KIAotc2l6ZV90IERpcmVjdEpJVENvZGU6OnNpemUoKQorc2l6ZV90IEpJVENvZGVX
aXRoQ29kZVJlZjo6c2l6ZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIHJl
dHVybiBtX3JlZi5zaXplKCk7CiB9CiAKLWJvb2wgRGlyZWN0SklUQ29kZTo6Y29udGFpbnModm9p
ZCogYWRkcmVzcykKK2Jvb2wgSklUQ29kZVdpdGhDb2RlUmVmOjpjb250YWlucyh2b2lkKiBhZGRy
ZXNzKQogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsKICAgICByZXR1cm4gbV9yZWYuZXhl
Y3V0YWJsZU1lbW9yeSgpLT5jb250YWlucyhhZGRyZXNzKTsKIH0KIAorRGlyZWN0SklUQ29kZTo6
RGlyZWN0SklUQ29kZShKSVRUeXBlIGppdFR5cGUpCisgICAgOiBKSVRDb2RlV2l0aENvZGVSZWYo
aml0VHlwZSkKK3sKK30KKworRGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZShKSVRDb2RlOjpD
b2RlUmVmIHJlZiwgSklUQ29kZTo6Q29kZVB0ciB3aXRoQXJpdHlDaGVjaywgSklUVHlwZSBqaXRU
eXBlKQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlwZSkKKyAgICAsIG1fd2l0
aEFyaXR5Q2hlY2sod2l0aEFyaXR5Q2hlY2spCit7Cit9CisKK0RpcmVjdEpJVENvZGU6On5EaXJl
Y3RKSVRDb2RlKCkKK3sKK30KKwordm9pZCBEaXJlY3RKSVRDb2RlOjppbml0aWFsaXplQ29kZVJl
ZihKSVRDb2RlOjpDb2RlUmVmIHJlZiwgSklUQ29kZTo6Q29kZVB0ciB3aXRoQXJpdHlDaGVjaykK
K3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9yZWYpOworICAgIG1fcmVmID0gcmVmOworICAgIG1f
d2l0aEFyaXR5Q2hlY2sgPSB3aXRoQXJpdHlDaGVjazsKK30KKworRGlyZWN0SklUQ29kZTo6UmVn
aXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyogRGlyZWN0SklUQ29kZTo6ZW5zdXJlV3JhcHBlcnMo
KQoreworICAgIGlmICghbV93cmFwcGVycykKKyAgICAgICAgbV93cmFwcGVycyA9IHN0ZDo6bWFr
ZV91bmlxdWU8UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycz4oKTsKKyAgICByZXR1cm4gbV93
cmFwcGVycy5nZXQoKTsKK30KKworSklUQ29kZTo6Q29kZVB0ciBEaXJlY3RKSVRDb2RlOjphZGRy
ZXNzRm9yQ2FsbCgKKyAgICBWTSYgdm0sIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlLCBBcml0
eUNoZWNrTW9kZSBhcml0eSwKKyAgICBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJz
KQoreworICAgIHN3aXRjaCAoYXJpdHkpIHsKKyAgICBjYXNlIEFyaXR5Q2hlY2tOb3RSZXF1aXJl
ZDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclBy
ZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYp
OworICAgICAgICAgICAgcmV0dXJuIG1fcmVmLmNvZGUoKTsKKyAgICAgICAgY2FzZSBNdXN0UHJl
c2VydmVSZWdpc3RlcnM6IHsKKyNpZiBFTkFCTEUoSklUKQorICAgICAgICAgICAgUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25XcmFwcGVycyogd3JhcHBlcnMgPSBlbnN1cmVXcmFwcGVycygpOworICAgICAg
ICAgICAgaWYgKCF3cmFwcGVycy0+d2l0aG91dEFyaXR5Q2hlY2spCisgICAgICAgICAgICAgICAg
d3JhcHBlcnMtPndpdGhvdXRBcml0eUNoZWNrID0gZ2VuZXJhdGVSZWdpc3RlclByZXNlcnZhdGlv
bldyYXBwZXIodm0sIGV4ZWN1dGFibGUsIG1fcmVmLmNvZGUoKSk7CisgICAgICAgICAgICByZXR1
cm4gd3JhcHBlcnMtPndpdGhvdXRBcml0eUNoZWNrLmNvZGUoKTsKKyNlbHNlCisgICAgICAgICAg
ICBVTlVTRURfUEFSQU0odm0pOworICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGV4ZWN1dGFibGUp
OworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAg
ICAgICB9IH0KKyAgICBjYXNlIE11c3RDaGVja0FyaXR5OgorICAgICAgICBzd2l0Y2ggKHJlZ2lz
dGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6Cisg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dpdGhBcml0eUNoZWNrKTsKKyAgICAgICAgICAg
IHJldHVybiBtX3dpdGhBcml0eUNoZWNrOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lz
dGVyczogeworI2lmIEVOQUJMRShKSVQpCisgICAgICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlv
bldyYXBwZXJzKiB3cmFwcGVycyA9IGVuc3VyZVdyYXBwZXJzKCk7CisgICAgICAgICAgICBpZiAo
IXdyYXBwZXJzLT53aXRoQXJpdHlDaGVjaykKKyAgICAgICAgICAgICAgICB3cmFwcGVycy0+d2l0
aEFyaXR5Q2hlY2sgPSBnZW5lcmF0ZVJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcih2bSwgZXhl
Y3V0YWJsZSwgbV93aXRoQXJpdHlDaGVjayk7CisgICAgICAgICAgICByZXR1cm4gd3JhcHBlcnMt
PndpdGhBcml0eUNoZWNrLmNvZGUoKTsKKyNlbHNlCisgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIH0gfQorICAgIH0KKyAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBDb2RlUHRyKCk7Cit9CisKK05hdGl2
ZUpJVENvZGU6Ok5hdGl2ZUpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQorICAgIDogSklUQ29kZVdp
dGhDb2RlUmVmKGppdFR5cGUpCit7Cit9CisKK05hdGl2ZUpJVENvZGU6Ok5hdGl2ZUpJVENvZGUo
Q29kZVJlZiByZWYsIEpJVFR5cGUgaml0VHlwZSkKKyAgICA6IEpJVENvZGVXaXRoQ29kZVJlZihy
ZWYsIGppdFR5cGUpCit7Cit9CisKK05hdGl2ZUpJVENvZGU6On5OYXRpdmVKSVRDb2RlKCkKK3sK
K30KKwordm9pZCBOYXRpdmVKSVRDb2RlOjppbml0aWFsaXplQ29kZVJlZihDb2RlUmVmIHJlZikK
K3sKKyAgICBBU1NFUlQoIW1fcmVmKTsKKyAgICBtX3JlZiA9IHJlZjsKK30KKworSklUQ29kZTo6
Q29kZVB0ciBOYXRpdmVKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgKKyAgICBWTSYsIEV4ZWN1dGFi
bGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkKK3sKKyAg
ICBSRUxFQVNFX0FTU0VSVCghIW1fcmVmKTsKKyAgICByZXR1cm4gbV9yZWYuY29kZSgpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNlIFdURiB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVENvZGUuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE0ICsyNiwxNCBAQAog
I2lmbmRlZiBKSVRDb2RlX2gKICNkZWZpbmUgSklUQ29kZV9oCiAKLSNpZiBFTkFCTEUoSklUKSB8
fCBFTkFCTEUoTExJTlQpCisjaW5jbHVkZSAiQXJpdHlDaGVja01vZGUuaCIKICNpbmNsdWRlICJD
YWxsRnJhbWUuaCIKICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJKSVRTdHVi
cy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlICJMZWdhY3lQcm9maWxlci5o
IgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgotI2VuZGlmCisjaW5jbHVkZSAi
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC01NCw3
ICs1NCwxNCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgQ29k
ZVJlZjsKICAgICB0eXBlZGVmIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBDb2RlUHRyOwogCi0gICAg
ZW51bSBKSVRUeXBlIHsgTm9uZSwgSG9zdENhbGxUaHVuaywgSW50ZXJwcmV0ZXJUaHVuaywgQmFz
ZWxpbmVKSVQsIERGR0pJVCwgRlRMSklUIH07CisgICAgZW51bSBKSVRUeXBlIDogdWludDhfdCB7
CisgICAgICAgIE5vbmUsCisgICAgICAgIEhvc3RDYWxsVGh1bmssCisgICAgICAgIEludGVycHJl
dGVyVGh1bmssCisgICAgICAgIEJhc2VsaW5lSklULAorICAgICAgICBERkdKSVQsCisgICAgICAg
IEZUTEpJVAorICAgIH07CiAgICAgCiAgICAgc3RhdGljIEpJVFR5cGUgYm90dG9tVGllckpJVCgp
CiAgICAgewpAQCAtMTY0LDcgKzE3MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGppdENv
ZGUtPmppdFR5cGUoKTsKICAgICB9CiAgICAgCi0gICAgdmlydHVhbCBDb2RlUHRyIGFkZHJlc3NG
b3JDYWxsKCkgPSAwOworICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbChWTSYsIEV4
ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qg
b2Zmc2V0KSA9IDA7CiAgICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MoKSB7IHJldHVybiBleGVj
dXRhYmxlQWRkcmVzc0F0T2Zmc2V0KDApOyB9CiAgICAgdmlydHVhbCB2b2lkKiBkYXRhQWRkcmVz
c0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpID0gMDsKQEAgLTE3NSw3ICsxODIsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBGVEw6OkpJVENvZGUqIGZ0bCgpOwogICAgIHZpcnR1YWwgRlRMOjpGb3JP
U1JFbnRyeUpJVENvZGUqIGZ0bEZvck9TUkVudHJ5KCk7CiAgICAgCi0gICAgSlNWYWx1ZSBleGVj
dXRlKFZNKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOworICAgIEpTVmFsdWUgZXhlY3V0
ZShWTSosIFByb3RvQ2FsbEZyYW1lKik7CiAgICAgCiAgICAgdm9pZCogc3RhcnQoKSB7IHJldHVy
biBkYXRhQWRkcmVzc0F0T2Zmc2V0KDApOyB9CiAgICAgdmlydHVhbCBzaXplX3Qgc2l6ZSgpID0g
MDsKQEAgLTE4MywzMSArMTkwLDYyIEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wg
Y29udGFpbnModm9pZCopID0gMDsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpJVENvZGU+IGhv
c3RGdW5jdGlvbihDb2RlUmVmKTsKLQogcHJpdmF0ZToKICAgICBKSVRUeXBlIG1faml0VHlwZTsK
IH07CiAKLWNsYXNzIERpcmVjdEpJVENvZGUgOiBwdWJsaWMgSklUQ29kZSB7CitjbGFzcyBKSVRD
b2RlV2l0aENvZGVSZWYgOiBwdWJsaWMgSklUQ29kZSB7Citwcm90ZWN0ZWQ6CisgICAgSklUQ29k
ZVdpdGhDb2RlUmVmKEpJVFR5cGUpOworICAgIEpJVENvZGVXaXRoQ29kZVJlZihDb2RlUmVmLCBK
SVRUeXBlKTsKKwogcHVibGljOgotICAgIERpcmVjdEpJVENvZGUoSklUVHlwZSk7Ci0gICAgRGly
ZWN0SklUQ29kZShjb25zdCBDb2RlUmVmLCBKSVRUeXBlKTsKLSAgICB2aXJ0dWFsIH5EaXJlY3RK
SVRDb2RlKCk7Ci0gICAgCi0gICAgdm9pZCBpbml0aWFsaXplQ29kZVJlZihDb2RlUmVmIHJlZik7
CisgICAgdmlydHVhbCB+SklUQ29kZVdpdGhDb2RlUmVmKCk7CiAKLSAgICB2aXJ0dWFsIENvZGVQ
dHIgYWRkcmVzc0ZvckNhbGwoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQqIGV4ZWN1dGFi
bGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCogcG9pbnRlckludG9Db2RlKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHNpemVfdCBzaXplKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNv
bnRhaW5zKHZvaWQqKSBvdmVycmlkZTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBDb2Rl
UmVmIG1fcmVmOwogfTsKIAorY2xhc3MgRGlyZWN0SklUQ29kZSA6IHB1YmxpYyBKSVRDb2RlV2l0
aENvZGVSZWYgeworcHVibGljOgorICAgIERpcmVjdEpJVENvZGUoSklUVHlwZSk7CisgICAgRGly
ZWN0SklUQ29kZShDb2RlUmVmLCBDb2RlUHRyIHdpdGhBcml0eUNoZWNrLCBKSVRUeXBlKTsKKyAg
ICB2aXJ0dWFsIH5EaXJlY3RKSVRDb2RlKCk7CisgICAgCisgICAgdm9pZCBpbml0aWFsaXplQ29k
ZVJlZihDb2RlUmVmLCBDb2RlUHRyIHdpdGhBcml0eUNoZWNrKTsKKworICAgIHZpcnR1YWwgQ29k
ZVB0ciBhZGRyZXNzRm9yQ2FsbChWTSYsIEV4ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUs
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgc3Ry
dWN0IFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnMgeworICAgICAgICBDb2RlUmVmIHdpdGhv
dXRBcml0eUNoZWNrOworICAgICAgICBDb2RlUmVmIHdpdGhBcml0eUNoZWNrOworICAgIH07CisK
KyAgICBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzKiBlbnN1cmVXcmFwcGVycygpOworICAg
IAorICAgIENvZGVQdHIgbV93aXRoQXJpdHlDaGVjazsKKyAgICAKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycz4gbV93cmFwcGVyczsKK307CisKK2NsYXNz
IE5hdGl2ZUpJVENvZGUgOiBwdWJsaWMgSklUQ29kZVdpdGhDb2RlUmVmIHsKK3B1YmxpYzoKKyAg
ICBOYXRpdmVKSVRDb2RlKEpJVFR5cGUpOworICAgIE5hdGl2ZUpJVENvZGUoQ29kZVJlZiwgSklU
VHlwZSk7CisgICAgdmlydHVhbCB+TmF0aXZlSklUQ29kZSgpOworICAgIAorICAgIHZvaWQgaW5p
dGlhbGl6ZUNvZGVSZWYoQ29kZVJlZik7CisKKyAgICB2aXJ0dWFsIENvZGVQdHIgYWRkcmVzc0Zv
ckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlLCBSZWdpc3RlclByZXNl
cnZhdGlvbk1vZGUpIG92ZXJyaWRlOworfTsKKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKIG5hbWVz
cGFjZSBXVEYgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25z
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlv
bnMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VEV4Y2VwdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0MywxMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogdm9pZCBnZW5lcmljVW53aW5kKFZNKiB2bSwgRXhlY1N0YXRlKiBjYWxsRnJh
bWUsIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUpCiB7CisgICAgaWYgKE9wdGlvbnM6OmJyZWFrT25U
aHJvdygpKSB7CisgICAgICAgIGRhdGFMb2coIkluIGNhbGwgZnJhbWUgIiwgUmF3UG9pbnRlcihj
YWxsRnJhbWUpLCAiIGZvciBjb2RlIGJsb2NrICIsICpjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCAi
XG4iKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CisgICAgCiAgICAgUkVMRUFTRV9BU1NFUlQo
ZXhjZXB0aW9uVmFsdWUpOwogICAgIEhhbmRsZXJJbmZvKiBoYW5kbGVyID0gdm0tPmludGVycHJl
dGVyLT51bndpbmQoY2FsbEZyYW1lLCBleGNlcHRpb25WYWx1ZSk7IC8vIFRoaXMgbWF5IHVwZGF0
ZSBjYWxsRnJhbWUuCiAKQEAgLTU2LDcgKzYxLDcgQEAgdm9pZCBnZW5lcmljVW53aW5kKFZNKiB2
bSwgRXhlY1N0YXRlKiBjYQogICAgICAgICBjYXRjaFJvdXRpbmUgPSBjYXRjaFBDRm9ySW50ZXJw
cmV0ZXItPnUucG9pbnRlcjsKICNlbmRpZgogICAgIH0gZWxzZQotICAgICAgICBjYXRjaFJvdXRp
bmUgPSBMTEludDo6Z2V0Q29kZVB0cihyZXR1cm5Gcm9tSmF2YVNjcmlwdCk7CisgICAgICAgIGNh
dGNoUm91dGluZSA9IExMSW50OjpnZXRDb2RlUHRyKGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uKTsK
ICAgICAKICAgICB2bS0+Y2FsbEZyYW1lRm9yVGhyb3cgPSBjYWxsRnJhbWU7CiAgICAgdm0tPnRh
cmdldE1hY2hpbmVQQ0ZvclRocm93ID0gY2F0Y2hSb3V0aW5lOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIEpJVElubGlu
ZUNhY2hlR2VuZXJhdG9yOjpKSVRJbmxpbmVDYWNoZUcKIAogSklUQnlJZEdlbmVyYXRvcjo6SklU
QnlJZEdlbmVyYXRvcigKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2Rl
T3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKLSAgICBHUFJSZWcgY2Fs
bEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBib29s
IHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFs
dWUsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICA6IEpJVElubGluZUNhY2hlR2VuZXJhdG9y
KGNvZGVCbG9jaywgY29kZU9yaWdpbikKICAgICAsIG1fYmFzZShiYXNlKQogICAgICwgbV92YWx1
ZSh2YWx1ZSkKQEAgLTYyLDcgKzYyLDYgQEAgSklUQnlJZEdlbmVyYXRvcjo6SklUQnlJZEdlbmVy
YXRvcigKICAgICBtX3N0dWJJbmZvLT5wYXRjaC51c2VkUmVnaXN0ZXJzLnNldChiYXNlKTsKICAg
ICBtX3N0dWJJbmZvLT5wYXRjaC51c2VkUmVnaXN0ZXJzLnNldCh2YWx1ZSk7CiAgICAgCi0gICAg
bV9zdHViSW5mby0+cGF0Y2guY2FsbEZyYW1lUmVnaXN0ZXIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+
KGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBtX3N0dWJJbmZvLT5wYXRjaC5iYXNlR1BSID0gc3Rh
dGljX2Nhc3Q8aW50OF90PihiYXNlLnBheWxvYWRHUFIoKSk7CiAgICAgbV9zdHViSW5mby0+cGF0
Y2gudmFsdWVHUFIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KHZhbHVlLnBheWxvYWRHUFIoKSk7CiAj
aWYgVVNFKEpTVkFMVUUzMl82NCkKQEAgLTEzMCwxMSArMTI5LDkgQEAgdm9pZCBKSVRHZXRCeUlk
R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYQogCiBKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRC
eUlkR2VuZXJhdG9yKAogICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAotICAgIEdQUlJlZyBjYWxs
RnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJl
ZyBzY3JhdGNoLAotICAgIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCwgRUNNQU1vZGUgZWNtYU1vZGUs
IFB1dEtpbmQgcHV0S2luZCkKLSAgICA6IEpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIGNvZGVC
bG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywgY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2Us
IHZhbHVlLAotICAgICAgICByZWdpc3RlcnNGbHVzaGVkKQorICAgIEpTVmFsdWVSZWdzIGJhc2Us
IEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgYm9vbCByZWdpc3RlcnNGbHVzaGVk
LAorICAgIEVDTUFNb2RlIGVjbWFNb2RlLCBQdXRLaW5kIHB1dEtpbmQpCisgICAgOiBKSVRCeUlk
R2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywgYmFzZSwgdmFs
dWUsIHJlZ2lzdGVyc0ZsdXNoZWQpCiAgICAgLCBtX3NjcmF0Y2goc2NyYXRjaCkKICAgICAsIG1f
ZWNtYU1vZGUoZWNtYU1vZGUpCiAgICAgLCBtX3B1dEtpbmQocHV0S2luZCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
Q2FjaGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsOCArNTYsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgSklUQnlJZEdlbmVyYXRvcigpIHsgfQogCiAgICAgSklUQnlJZEdlbmVyYXRvcigK
LSAgICAgICAgQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmLCBHUFJS
ZWcgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVS
ZWdzIHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpOworICAgICAgICBDb2RlQmxvY2sqLCBD
b2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYsIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVS
ZWdzIHZhbHVlLAorICAgICAgICBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpOwogICAgIAogcHVibGlj
OgogICAgIHZvaWQgcmVwb3J0U2xvd1BhdGhDYWxsKE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBzbG93
UGF0aEJlZ2luLCBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsKQpAQCAtOTYsMTEgKzk2LDggQEAg
cHVibGljOgogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvcigKICAgICAgICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRS
ZWdpc3RlcnMsCi0gICAgICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3Mg
YmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsCi0gICAgICAgIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkK
LSAgICAgICAgOiBKSVRCeUlkR2VuZXJhdG9yKAotICAgICAgICAgICAgY29kZUJsb2NrLCBjb2Rl
T3JpZ2luLCB1c2VkUmVnaXN0ZXJzLCBjYWxsRnJhbWVSZWdpc3RlciwgYmFzZSwgdmFsdWUsCi0g
ICAgICAgICAgICByZWdpc3RlcnNGbHVzaGVkKQorICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBK
U1ZhbHVlUmVncyB2YWx1ZSwgYm9vbCByZWdpc3RlcnNGbHVzaGVkKQorICAgICAgICA6IEpJVEJ5
SWRHZW5lcmF0b3IoY29kZUJsb2NrLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzLCBiYXNlLCB2
YWx1ZSwgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICB7CiAgICAgfQogICAgIApAQCAtMTEyLDkgKzEw
OSw4IEBAIHB1YmxpYzoKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yKCkgeyB9CiAKICAgICBKSVRQ
dXRCeUlkR2VuZXJhdG9yKAotICAgICAgICBDb2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBS
ZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAg
ICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gs
IGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCwKLSAgICAgICAgRUNNQU1vZGUsIFB1dEtpbmQpOworICAg
ICAgICBDb2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lz
dGVycywgSlNWYWx1ZVJlZ3MgYmFzZSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJl
ZyBzY3JhdGNoLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQsIEVDTUFNb2RlLCBQdXRLaW5kKTsKICAg
ICAKICAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKICAgICAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtOTMsNyArOTMsNiBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjplbWl0TG9hZENoYXJh
Y3RlCiBBTFdBWVNfSU5MSU5FIEpJVDo6Q2FsbCBKSVQ6OmVtaXROYWtlZENhbGwoQ29kZVB0ciBm
dW5jdGlvbikKIHsKICAgICBBU1NFUlQobV9ieXRlY29kZU9mZnNldCAhPSAodW5zaWduZWQpLTEp
OyAvLyBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQgZHVyaW5nIGhvdC9jb2xkIHBh
dGggZ2VuZXJhdGlvbiwgc28gdGhhdCBtX2J5dGVjb2RlT2Zmc2V0IGlzIHNldC4KLQogICAgIENh
bGwgbmFrZWRDYWxsID0gbmVhckNhbGwoKTsKICAgICBtX2NhbGxzLmFwcGVuZChDYWxsUmVjb3Jk
KG5ha2VkQ2FsbCwgbV9ieXRlY29kZU9mZnNldCwgZnVuY3Rpb24uZXhlY3V0YWJsZUFkZHJlc3Mo
KSkpOwogICAgIHJldHVybiBuYWtlZENhbGw7CkBAIC0yMjMsMjEgKzIyMiwyMSBAQCBBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAot
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oUF9K
SVRPcGVyYXRpb25fRVogb3BlcmF0aW9uLCBpbnQzMl90IG9wKQorQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUNDIG9w
ZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyKQogewotICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIob3ApKTsKKyAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIpOwogICAgIHJldHVybiBhcHBlbmRD
YWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VDQyBv
cGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMikKK0FMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0
aW9uX0VPSnNzIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3Ay
KQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMik7CiAg
ICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAot
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oU19K
SVRPcGVyYXRpb25fRU9Kc3Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJ
RCByZWdPcDIpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihTcHJ0X0pJVE9wZXJhdGlvbl9FWiBvcGVyYXRpb24sIGludDMyX3Qgb3ApCiB7Ci0g
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyKTsKKyAgICBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKG9wKSk7CiAgICAgcmV0dXJuIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIApAQCAtMjc3LDYgKzI3
NiwxMyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb24p
OwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbk5vRXhjZXB0aW9uQ2hlY2soSl9KSVRPcGVyYXRpb25fRUUgb3BlcmF0aW9uLCBSZWdpc3Rl
cklEIHJlZ09wKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcCk7Cisg
ICAgdXBkYXRlVG9wQ2FsbEZyYW1lKCk7CisgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9u
KTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihWX0pJVE9wZXJhdGlvbl9FQ2Ig
b3BlcmF0aW9uLCBDb2RlQmxvY2sqIHBvaW50ZXIpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIocG9pbnRlcikpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMiwgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDks
IDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJKU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNWYXJpYWJsZU9iamVjdC5oIgogI2luY2x1ZGUgIkxp
bmtCdWZmZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgog
I2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgog
CkBAIC00OCw2ICs0OSw3IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0
aXYKIHsKICAgICBDYWxsIG5hdGl2ZUNhbGw7CiAKKyAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgp
OwogICAgIGVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcigwLCBKU1N0YWNrOjpDb2Rl
QmxvY2spOwogICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCAmbV92bS0+dG9wQ2FsbEZy
YW1lKTsKIApAQCAtNTgsMjEgKzYwLDE3IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnByaXZhdGVDb21w
aWxlQ1RJTmF0aXYKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpT
Y29wZUNoYWluLCByZWdUMSwgcmVnVDApOwogICAgIGVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFk
ZXIocmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogCi0gICAgcGVlayhyZWdUMSk7Ci0gICAg
ZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEpOwotCiAgICAgLy8gQ2FsbGlu
ZyBjb252ZW50aW9uOiAgICAgIGYoZWN4LCBlZHgsIC4uLik7CiAgICAgLy8gSG9zdCBmdW5jdGlv
biBzaWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CiAgICAgbW92ZShjYWxsRnJhbWVSZWdpc3Rlciwg
WDg2UmVnaXN0ZXJzOjplY3gpOwogCi0gICAgc3ViUHRyKFRydXN0ZWRJbW0zMigxNiAtIHNpemVv
Zih2b2lkKikpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNrIGFmdGVyIGNh
bGwuCi0KLSAgICBtb3ZlKHJlZ1QwLCBjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVz
dG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgor
ICAgIHN1YlB0cihUcnVzdGVkSW1tMzIoOCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgLy8gQWxp
Z24gc3RhY2sgZm9yIGNhbGwuCisgICAgc3RvcmVQdHIoWDg2UmVnaXN0ZXJzOjplY3gsIEFkZHJl
c3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIpKTsKIAogICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAg
ICAgbmF0aXZlQ2FsbCA9IGNhbGwoKTsKIAotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoMTYgLSBz
aXplb2Yodm9pZCopKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGFkZFB0cihUcnVzdGVk
SW1tMzIoOCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAogI2VsaWYgQ1BVKEFSTSkgfHwgQ1BV
KFNINCkgfHwgQ1BVKE1JUFMpCiAgICAgLy8gTG9hZCBjYWxsZXIgZnJhbWUncyBzY29wZSBjaGFp
biBpbnRvIHRoaXMgY2FsbGZyYW1lIHNvIHRoYXQgd2hhdGV2ZXIgd2UgY2FsbCBjYW4gZ2V0IHRv
IGl0cyBnbG9iYWwgZGF0YS4KQEAgLTgwLDkgKzc4LDYgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJp
dmF0ZUNvbXBpbGVDVElOYXRpdgogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpT
U3RhY2s6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMik7CiAgICAgZW1pdFB1dENlbGxUb0NhbGxG
cmFtZUhlYWRlcihyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAKLSAgICBwcmVzZXJ2ZVJl
dHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDMpOyAvLyBDYWxsZWUgcHJlc2VydmVkCi0gICAgZW1p
dFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIocmVnVDMpOwotCiAjaWYgQ1BVKE1JUFMpCiAg
ICAgLy8gQWxsb2NhdGUgc3RhY2sgc3BhY2UgZm9yICh1bnVzZWQpIDE2IGJ5dGVzICg4LWJ5dGUg
YWxpZ25lZCkgZm9yIDQgYXJndW1lbnRzLgogICAgIHN1YlB0cihUcnVzdGVkSW1tMzIoMTYpLCBz
dGFja1BvaW50ZXJSZWdpc3Rlcik7CkBAIC05Myw3ICs4OCw2IEBAIEpJVDo6Q29kZVJlZiBKSVQ6
OnByaXZhdGVDb21waWxlQ1RJTmF0aXYKICAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBhcmd1
bWVudEdQUjApOwogCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6
Q2FsbGVlLCBhcmd1bWVudEdQUjEpOwotICAgIG1vdmUocmVnVDIsIGNhbGxGcmFtZVJlZ2lzdGVy
KTsgLy8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2Fk
aW5nIGZyb20gc3RhY2suCiAgICAgbG9hZFB0cihBZGRyZXNzKGFyZ3VtZW50R1BSMSwgT0JKRUNU
X09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fZXhlY3V0YWJsZSkpLCByZWdUMik7CiAKICAgICAvLyBj
YWxsIHRoZSBmdW5jdGlvbgpAQCAtMTEzLDMwICsxMDcsMjcgQEAgSklUOjpDb2RlUmVmIEpJVDo6
cHJpdmF0ZUNvbXBpbGVDVElOYXRpdgogICAgIC8vIENoZWNrIGZvciBhbiBleGNlcHRpb24KICAg
ICBKdW1wIHNhd0V4Y2VwdGlvbiA9IGJyYW5jaDMyKE5vdEVxdWFsLCBBYnNvbHV0ZUFkZHJlc3Mo
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odm0tPmFkZHJlc3NPZkV4Y2VwdGlvbigpKSArIE9CSkVD
VF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkVtcHR5VmFsdWVUYWcpKTsgCiAKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIC8v
IFJldHVybi4KICAgICByZXQoKTsKIAogICAgIC8vIEhhbmRsZSBhbiBleGNlcHRpb24KICAgICBz
YXdFeGNlcHRpb24ubGluayh0aGlzKTsKIAotICAgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNz
LgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMSk7Ci0KLSAgICBtb3Zl
KFRydXN0ZWRJbW1QdHIoJnZtLT5leGNlcHRpb25Mb2NhdGlvbiksIHJlZ1QyKTsKLSAgICBzdG9y
ZVB0cihyZWdUMSwgcmVnVDIpOwogICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCAmbV92
bS0+dG9wQ2FsbEZyYW1lKTsKIAogI2lmIENQVShYODYpCi0gICAgYWRkUHRyKFRydXN0ZWRJbW0z
MigtMTIpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0gICAgcHVzaChjYWxsRnJhbWVSZWdpc3Rl
cik7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtNCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
KyAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIpLCBYODZSZWdpc3RlcnM6OmVj
eCk7CisgICAgcHVzaChYODZSZWdpc3RlcnM6OmVjeCk7CiAjZWxzZQotICAgIG1vdmUoY2FsbEZy
YW1lUmVnaXN0ZXIsIGFyZ3VtZW50R1BSMCk7CisgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFt
ZVJlZ2lzdGVyKSwgYXJndW1lbnRHUFIwKTsKICNlbmRpZgogICAgIG1vdmUoVHJ1c3RlZEltbVB0
cihGdW5jdGlvblB0cihvcGVyYXRpb25WTUhhbmRsZUV4Y2VwdGlvbikudmFsdWUoKSksIHJlZ1Qz
KTsKICAgICBjYWxsKHJlZ1QzKTsKIAogI2lmIENQVShYODYpCi0gICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMigxNiksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMy
KDgpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAjZW5kaWYKIAogICAgIGp1bXBUb0V4Y2VwdGlv
bkhhbmRsZXIoKTsKQEAgLTE3NSw3ICsxNjYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9lbmQoSW5z
dHJ1Y3Rpb24qIGN1cnJlCiB7CiAgICAgQVNTRVJUKHJldHVyblZhbHVlR1BSICE9IGNhbGxGcmFt
ZVJlZ2lzdGVyKTsKICAgICBlbWl0TG9hZChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
LCByZWdUMSwgcmVnVDApOwotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEFk
ZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOwor
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTkyNyw2ICs5
MTgsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9jYXRjaChJbnN0cnVjdGlvbiogY3VyCiAgICAgbW92
ZShUcnVzdGVkSW1tUHRyKG1fdm0pLCByZWdUMyk7CiAgICAgLy8gb3BlcmF0aW9uVGhyb3cgcmV0
dXJucyB0aGUgY2FsbEZyYW1lIGZvciB0aGUgaGFuZGxlci4KICAgICBsb2FkMzIoQWRkcmVzcyhy
ZWdUMywgVk06OmNhbGxGcmFtZUZvclRocm93T2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7
CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihjb2RlQmxv
Y2soKSkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKKwogICAgIC8vIE5vdyBzdG9yZSB0aGUgZXhjZXB0aW9uIHJldHVybmVkIGJ5
IG9wZXJhdGlvblRocm93LgogICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QzLCBWTTo6ZXhjZXB0aW9u
T2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpLCBy
ZWdUMCk7CiAgICAgbG9hZDMyKEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSAr
IE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgcmVnVDEpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5j
bHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJTbG93UGF0
aENhbGwuaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKIApAQCAtNzMsNyArNzQsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9lbmQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiB7CiAgICAgUkVMRUFT
RV9BU1NFUlQocmV0dXJuVmFsdWVHUFIgIT0gY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmV0dXJu
VmFsdWVHUFIpOwotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEFkZHJlc3Mo
Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworICAgIGVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTI2MiwxNCArMjYzLDgg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0KEluc3RydWN0aW9uKiBjdXJyZQogICAgIC8vIFJldHVy
biB0aGUgcmVzdWx0IGluICVlYXguCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZXR1cm5WYWx1ZUdQUik7CiAKLSAgICAvLyBHcmFi
IHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVh
ZGVyUHRyKHJlZ1QxKTsKLQotICAgIC8vIFJlc3RvcmUgb3VyIGNhbGxlcidzICJyIi4KLSAgICBl
bWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVy
KTsKLQotICAgIC8vIFJldHVybi4KLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVy
bihyZWdUMSk7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAgICBlbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC0yODUsMTQgKzI4MCw4IEBAIHZv
aWQgSklUOjplbWl0X29wX3JldF9vYmplY3Rfb3JfdGhpcyhJbnMKICAgICBsb2FkUHRyKEFkZHJl
c3MocmV0dXJuVmFsdWVHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCByZWdUMik7CiAg
ICAgSnVtcCBub3RPYmplY3QgPSBlbWl0SnVtcElmTm90T2JqZWN0KHJlZ1QyKTsKIAotICAgIC8v
IEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJh
bWVIZWFkZXJQdHIocmVnVDEpOwotCi0gICAgLy8gUmVzdG9yZSBvdXIgY2FsbGVyJ3MgInIiLgot
ICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVn
aXN0ZXIpOwotCiAgICAgLy8gUmV0dXJuLgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3Jl
UmV0dXJuKHJlZ1QxKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwog
CiAgICAgLy8gUmV0dXJuICd0aGlzJyBpbiAlZWF4LgpAQCAtMzAwLDE0ICsyODksOCBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMoSW5zCiAgICAgbm90T2JqZWN0Lmxpbmso
dGhpcyk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kLCByZXR1cm5WYWx1ZUdQUik7CiAKLSAgICAvLyBHcmFiIHRoZSByZXR1cm4gYWRk
cmVzcy4KLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QxKTsK
LQotICAgIC8vIFJlc3RvcmUgb3VyIGNhbGxlcidzICJyIi4KLSAgICBlbWl0R2V0Q2FsbGVyRnJh
bWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKLQogICAgIC8vIFJl
dHVybi4KLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMSk7CisgICAg
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKIH0KIApAQCAtNjUwLDYgKzYzMyw5
IEBAIHZvaWQgSklUOjplbWl0X29wX2NhdGNoKEluc3RydWN0aW9uKiBjdXIKIHsKICAgICBtb3Zl
KFRydXN0ZWRJbW1QdHIobV92bSksIHJlZ1QzKTsKICAgICBsb2FkNjQoQWRkcmVzcyhyZWdUMywg
Vk06OmNhbGxGcmFtZUZvclRocm93T2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisKKyAg
ICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihjb2RlQmxvY2soKSkg
KiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lz
dGVyKTsKKwogICAgIGxvYWQ2NChBZGRyZXNzKHJlZ1QzLCBWTTo6ZXhjZXB0aW9uT2Zmc2V0KCkp
LCByZWdUMCk7CiAgICAgc3RvcmU2NChUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKEpTVmFs
dWUoKSkpLCBBZGRyZXNzKHJlZ1QzLCBWTTo6ZXhjZXB0aW9uT2Zmc2V0KCkpKTsKICAgICBlbWl0
UHV0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwpAQCAt
MTEwMywyMCArMTA4OSw4IEBAIHZvaWQgSklUOjplbWl0X29wX2xvb3BfaGludChJbnN0cnVjdGlv
bioKIHsKICAgICAvLyBFbWl0IHRoZSBKSVQgb3B0aW1pemF0aW9uIGNoZWNrOiAKICAgICBpZiAo
Y2FuQmVPcHRpbWl6ZWQoKSkgewotICAgICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlT1NSRW50cnlJ
bkxvb3BzKCkpIHsKLSAgICAgICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaEFkZDMyKFBvc2l0aXZl
T3JaZXJvLCBUcnVzdGVkSW1tMzIoT3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZv
ckxvb3AoKSksCi0gICAgICAgICAgICAgICAgQWJzb2x1dGVBZGRyZXNzKG1fY29kZUJsb2NrLT5h
ZGRyZXNzT2ZKSVRFeGVjdXRlQ291bnRlcigpKSkpOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgLy8gQWRkIHdpdGggc2F0dXJhdGlvbi4KLSAgICAgICAgICAgIG1vdmUoVHJ1c3RlZElt
bVB0cihtX2NvZGVCbG9jay0+YWRkcmVzc09mSklURXhlY3V0ZUNvdW50ZXIoKSksIHJlZ1QzKTsK
LSAgICAgICAgICAgIGxvYWQzMihyZWdUMywgcmVnVDIpOwotICAgICAgICAgICAgSnVtcCBkb250
QWRkID0gYnJhbmNoMzIoCi0gICAgICAgICAgICAgICAgR3JlYXRlclRoYW4sIHJlZ1QyLAotICAg
ICAgICAgICAgICAgIFRydXN0ZWRJbW0zMihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+Ojpt
YXgoKSAtIE9wdGlvbnM6OmV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JMb29wKCkpKTsKLSAg
ICAgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0zMihPcHRpb25zOjpleGVjdXRpb25Db3VudGVySW5j
cmVtZW50Rm9yTG9vcCgpKSwgcmVnVDIpOwotICAgICAgICAgICAgc3RvcmUzMihyZWdUMiwgcmVn
VDMpOwotICAgICAgICAgICAgZG9udEFkZC5saW5rKHRoaXMpOwotICAgICAgICB9CisgICAgICAg
IGFkZFNsb3dDYXNlKGJyYW5jaEFkZDMyKFBvc2l0aXZlT3JaZXJvLCBUcnVzdGVkSW1tMzIoT3B0
aW9uczo6ZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZvckxvb3AoKSksCisgICAgICAgICAgICBB
YnNvbHV0ZUFkZHJlc3MobV9jb2RlQmxvY2stPmFkZHJlc3NPZkpJVEV4ZWN1dGVDb3VudGVyKCkp
KSk7CiAgICAgfQogCiAgICAgLy8gRW1pdCB0aGUgd2F0Y2hkb2cgdGltZXIgY2hlY2s6CkBAIC0x
MTI4LDExICsxMTAyLDEyIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQoSW5zdHJ1
Y3QKIHsKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAvLyBFbWl0IHRoZSBzbG93IHBhdGggZm9y
IHRoZSBKSVQgb3B0aW1pemF0aW9uIGNoZWNrOgotICAgIGlmIChjYW5CZU9wdGltaXplZCgpICYm
IE9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5SW5Mb29wcygpKSB7CisgICAgaWYgKGNhbkJlT3B0aW1p
emVkKCkpIHsKICAgICAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogICAgICAgICAKICAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25PcHRpbWl6ZSwgbV9ieXRlY29kZU9mZnNldCk7CiAgICAg
ICAgIEp1bXAgbm9PcHRpbWl6ZWRFbnRyeSA9IGJyYW5jaFRlc3RQdHIoWmVybywgcmV0dXJuVmFs
dWVHUFIpOworICAgICAgICBtb3ZlKHJldHVyblZhbHVlR1BSMiwgc3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwogICAgICAgICBqdW1wKHJldHVyblZhbHVlR1BSKTsKICAgICAgICAgbm9PcHRpbWl6ZWRF
bnRyeS5saW5rKHRoaXMpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDEyICszMCwxMiBAQAog
I2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNp
bmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCi0jaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgi
CiAjaW5jbHVkZSAiREZHQ29tcGlsYXRpb25Nb2RlLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVyLmgi
CiAjaW5jbHVkZSAiREZHT1NSRW50cnkuaCIKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2lu
Y2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVk
ZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSG9zdENhbGxSZXR1cm5WYWx1ZS5oIgogI2lu
Y2x1ZGUgIkpJVC5oIgpAQCAtNzEsNyArNzEsNyBAQCB2b2lkICogX1JldHVybkFkZHJlc3Modm9p
ZCk7CiAjZW5kaWYKIAogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RhY2tDaGVjayhF
eGVjU3RhdGUqIGV4ZWMsIENvZGVCbG9jayogY29kZUJsb2NrKQordm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJs
b2NrKiBjb2RlQmxvY2spCiB7CiAgICAgLy8gV2UgcGFzcyBpbiBvdXIgb3duIGNvZGUgYmxvY2ss
IGJlY2F1c2UgdGhlIGNhbGxmcmFtZSBoYXNuJ3QgYmVlbiBwb3B1bGF0ZWQuCiAgICAgVk0qIHZt
ID0gY29kZUJsb2NrLT52bSgpOwpAQCAtODAsMTEgKzgwLDggQEAgdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblN0YWNrQ2hlY2soRQogICAgICAgICBjYWxsZXJGcmFtZSA9IGV4ZWM7CiAKICAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsZXJGcmFtZSk7Ci0KLSAgICBK
U1N0YWNrJiBzdGFjayA9IHZtLT5pbnRlcnByZXRlci0+c3RhY2soKTsKLQotICAgIGlmIChVTkxJ
S0VMWSghc3RhY2suZ3JvdygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9j
YWwoY29kZUJsb2NrLT5mcmFtZVJlZ2lzdGVyQ291bnQoKSkub2Zmc2V0KCldKSkpCi0gICAgICAg
IHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9y
KGNhbGxlckZyYW1lKSk7CisgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUoKnZtKTsK
KyAgICB2bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dF
cnJvcihjYWxsZXJGcmFtZSkpOwogfQogCiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
Q2FsbEFyaXR5Q2hlY2soRXhlY1N0YXRlKiBleGVjKQpAQCAtOTcsNyArOTQsNyBAQCBpbnQzMl90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5CiAKICAgICBpbnQzMl90IG1pc3NpbmdB
cmdDb3VudCA9IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmc3RhY2ssIENv
ZGVGb3JDYWxsKTsKICAgICBpZiAobWlzc2luZ0FyZ0NvdW50IDwgMCkKLSAgICAgICAgdm0tPnRo
cm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbGVy
RnJhbWUpKTsKKyAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUpOwog
CiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0KQEAgLTExMiw3ICsxMDksNyBAQCBpbnQz
Ml90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29uc3RydWN0CiAKICAgICBpbnQzMl90IG1pc3Np
bmdBcmdDb3VudCA9IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmc3RhY2ss
IENvZGVGb3JDb25zdHJ1Y3QpOwogICAgIGlmIChtaXNzaW5nQXJnQ291bnQgPCAwKQotICAgICAg
ICB2bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJv
cihjYWxsZXJGcmFtZSkpOworICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsZXJG
cmFtZSk7CiAKICAgICByZXR1cm4gbWlzc2luZ0FyZ0NvdW50OwogfQpAQCAtNjEyLDE1ICs2MDks
MTMgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VgogICAgIGRpcmVj
dFB1dEJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJhc2VWYWx1ZSksIHN1YnNjcmlwdCwgdmFsdWUpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNT
dGF0ZSogZXhlY0NhbGxlZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
Q2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjLCBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCiB7Ci0gICAg
Q2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCk7Ci0gICAg
QVNTRVJUKGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCktPmNvZGVCbG9jaygpLT5jb2RlVHlwZSgp
ICE9IEZ1bmN0aW9uQ29kZQotICAgICAgICB8fCAhZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+
Y29kZUJsb2NrKCktPm5lZWRzRnVsbFNjb3BlQ2hhaW4oKQotICAgICAgICB8fCBleGVjQ2FsbGVl
LT5jYWxsZXJGcmFtZSgpLT51bmNoZWNrZWRSKGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCktPmNv
ZGVCbG9jaygpLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKS5vZmZzZXQoKSkuanNWYWx1ZSgpKTsKKyAg
ICBBU1NFUlQoZXhlYy0+Y29kZUJsb2NrKCktPmNvZGVUeXBlKCkgIT0gRnVuY3Rpb25Db2RlCisg
ICAgICAgIHx8ICFleGVjLT5jb2RlQmxvY2soKS0+bmVlZHNGdWxsU2NvcGVDaGFpbigpCisgICAg
ICAgIHx8IGV4ZWMtPnVuY2hlY2tlZFIoZXhlYy0+Y29kZUJsb2NrKCktPmFjdGl2YXRpb25SZWdp
c3RlcigpLm9mZnNldCgpKS5qc1ZhbHVlKCkpOwogCi0gICAgZXhlY0NhbGxlZS0+c2V0U2NvcGUo
Y2FsbGVyRnJhbWUtPnNjb3BlKCkpOwotICAgIGV4ZWNDYWxsZWUtPnNldFJldHVyblBDKHN0YXRp
Y19jYXN0PEluc3RydWN0aW9uKj4oT1VSX1JFVFVSTl9BRERSRVNTKSk7CisgICAgZXhlY0NhbGxl
ZS0+c2V0U2NvcGUoZXhlYy0+c2NvcGUoKSk7CiAgICAgZXhlY0NhbGxlZS0+c2V0Q29kZUJsb2Nr
KDApOwogCiAgICAgaWYgKCFpc0hvc3RGdW5jdGlvbihleGVjQ2FsbGVlLT5jYWxsZWVBc1ZhbHVl
KCksIGdsb2JhbEZ1bmNFdmFsKSkKQEAgLTY4NSw3ICs2ODAsOCBAQCBzdGF0aWMgdm9pZCogaGFu
ZGxlSG9zdENhbGwoRXhlY1N0YXRlKiBlCiAgICAgcmV0dXJuIHZtLT5nZXRDVElTdHViKHRocm93
RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRy
ZXNzKCk7CiB9CiAKLWlubGluZSBjaGFyKiBsaW5rRm9yKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwg
Q29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQoraW5saW5lIGNoYXIqIGxpbmtGb3IoCisgICAg
RXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgRXhlY1N0YXRlKiBleGVjID0g
ZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKQEAg
LTcwNCwzOCArNzAwLDUyIEBAIGlubGluZSBjaGFyKiBsaW5rRm9yKEV4ZWNTdGF0ZSogZXhlY0Nh
bGwKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IDA7CiAgICAgQ2FsbExpbmtJbmZvJiBjYWxs
TGlua0luZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0Q2FsbExpbmtJbmZvKGV4ZWNDYWxsZWUt
PnJldHVyblBDKCkpOwogICAgIGlmIChleGVjdXRhYmxlLT5pc0hvc3RGdW5jdGlvbigpKQotICAg
ICAgICBjb2RlUHRyID0gZXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS0+YWRk
cmVzc0ZvckNhbGwoKTsKKyAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUtPmVudHJ5cG9pbnRG
b3IoKnZtLCBraW5kLCBNdXN0Q2hlY2tBcml0eSwgcmVnaXN0ZXJzKTsKICAgICBlbHNlIHsKICAg
ICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNfY2Fz
dDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlKTsKICAgICAgICAgSlNPYmplY3QqIGVy
cm9yID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5wcmVwYXJlRm9yRXhlY3V0aW9uKGV4ZWNDYWxsZWUs
IGNhbGxlZS0+c2NvcGUoKSwga2luZCk7CiAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAg
ICAgdm0tPnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVj
KSk7CisgICAgICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihleGVjKTsKICAgICAgICAg
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPih2bS0+Z2V0Q1RJU3R1Yih0aHJvd0V4
Y2VwdGlvbkZyb21DYWxsU2xvd1BhdGhHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVz
cygpKTsKICAgICAgICAgfQogICAgICAgICBjb2RlQmxvY2sgPSBmdW5jdGlvbkV4ZWN1dGFibGUt
PmNvZGVCbG9ja0ZvcihraW5kKTsKKyAgICAgICAgQXJpdHlDaGVja01vZGUgYXJpdHk7CiAgICAg
ICAgIGlmIChleGVjQ2FsbGVlLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIDwgc3RhdGlj
X2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkgfHwgY2FsbExpbmtJbmZv
LmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2FsbFZhcmFyZ3MpCi0gICAgICAgICAgICBjb2Rl
UHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tG
b3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9IE11c3RDaGVja0FyaXR5OwogICAgICAgICBl
bHNlCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRK
SVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2FsbCgpOworICAgICAgICAgICAgYXJpdHkgPSBB
cml0eUNoZWNrTm90UmVxdWlyZWQ7CisgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFi
bGUtPmVudHJ5cG9pbnRGb3IoKnZtLCBraW5kLCBhcml0eSwgcmVnaXN0ZXJzKTsKICAgICB9CiAg
ICAgaWYgKCFjYWxsTGlua0luZm8uc2Vlbk9uY2UoKSkKICAgICAgICAgY2FsbExpbmtJbmZvLnNl
dFNlZW4oKTsKICAgICBlbHNlCi0gICAgICAgIGxpbmtGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJ
bmZvLCBjb2RlQmxvY2ssIGNhbGxlZSwgY29kZVB0ciwga2luZCk7CisgICAgICAgIGxpbmtGb3Io
ZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBjb2RlQmxvY2ssIGNhbGxlZSwgY29kZVB0ciwga2lu
ZCwgcmVnaXN0ZXJzKTsKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29kZVB0
ci5leGVjdXRhYmxlQWRkcmVzcygpKTsKIH0KIAogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRp
b25MaW5rQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCiB7Ci0gICAgcmV0dXJuIGxpbmtGb3Io
ZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwpOworICAgIHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUs
IENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAogY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlY0Nh
bGxlZSkKIHsKLSAgICByZXR1cm4gbGlua0ZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0
KTsKKyAgICByZXR1cm4gbGlua0ZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0LCBSZWdp
c3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKK30KKworY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25MaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkK
K3sKKyAgICByZXR1cm4gbGlua0ZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNl
cnZlUmVnaXN0ZXJzKTsKIH0KIAotaW5saW5lIGNoYXIqIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24o
RXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIEpTQ2Vs
bComIGNhbGxlZUFzRnVuY3Rpb25DZWxsKQorY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25M
aW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQorewor
ICAgIHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QsIE11c3RQcmVz
ZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK2lubGluZSBjaGFyKiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9u
KAorICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
LCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzLAorICAgIEpTQ2VsbComIGNhbGxl
ZUFzRnVuY3Rpb25DZWxsKQogewogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGV4ZWNDYWxsZWUtPmNh
bGxlckZyYW1lKCk7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CkBAIC03NTcsMTYgKzc2Nywy
MCBAQCBpbmxpbmUgY2hhciogdmlydHVhbEZvcldpdGhGdW5jdGlvbihFeGVjCiAgICAgICAgICAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odm0tPmdldENUSVN0dWIodGhyb3dFeGNl
cHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KGV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5kKS5leGVj
dXRhYmxlQWRkcmVzcygpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oZXhl
Y3V0YWJsZS0+ZW50cnlwb2ludEZvcigKKyAgICAgICAgKnZtLCBraW5kLCBNdXN0Q2hlY2tBcml0
eSwgcmVnaXN0ZXJzKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKIH0KIAotaW5saW5lIGNoYXIqIHZp
cnR1YWxGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtp
bmQpCitpbmxpbmUgY2hhciogdmlydHVhbEZvcigKKyAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUs
IENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJl
Z2lzdGVycykKIHsKICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsSWdub3JlZDsKLSAg
ICByZXR1cm4gdmlydHVhbEZvcldpdGhGdW5jdGlvbihleGVjQ2FsbGVlLCBraW5kLCBjYWxsZWVB
c0Z1bmN0aW9uQ2VsbElnbm9yZWQpOworICAgIHJldHVybiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9u
KGV4ZWNDYWxsZWUsIGtpbmQsIHJlZ2lzdGVycywgY2FsbGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVk
KTsKIH0KIAotc3RhdGljIGJvb2wgYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbChFeGVjU3Rh
dGUqIGV4ZWNDYWxsZWUsIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGwsIENhbGxMaW5rSW5m
byYgY2FsbExpbmtJbmZvKQorc3RhdGljIGJvb2wgYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2Fs
bCgKKyAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSBy
ZWdpc3RlcnMsIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGwsCisgICAgQ2FsbExpbmtJbmZv
JiBjYWxsTGlua0luZm8pCiB7CiAgICAgaWYgKCFjYWxsZWVBc0Z1bmN0aW9uQ2VsbCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtNzgwLDcgKzc5NCwxMCBAQCBzdGF0aWMgYm9vbCBhdHRlbXB0
VG9PcHRpbWl6ZUNsb3N1cmVDYWxsCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBB
U1NFUlQoY2FsbGVlLT5leGVjdXRhYmxlKCktPmhhc0pJVENvZGVGb3JDYWxsKCkpOwotICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyID0gY2FsbGVlLT5leGVjdXRhYmxlKCktPmdlbmVy
YXRlZEpJVENvZGVGb3JDYWxsKCktPmFkZHJlc3NGb3JDYWxsKCk7CisgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGNvZGVQdHIgPQorICAgICAgICBjYWxsZWUtPmV4ZWN1dGFibGUoKS0+Z2VuZXJh
dGVkSklUQ29kZUZvckNhbGwoKS0+YWRkcmVzc0ZvckNhbGwoCisgICAgICAgICAgICAqZXhlY0Nh
bGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPnZtKCksIGNhbGxlZS0+ZXhlY3V0YWJs
ZSgpLAorICAgICAgICAgICAgQXJpdHlDaGVja05vdFJlcXVpcmVkLCByZWdpc3RlcnMpOwogICAg
IAogICAgIENvZGVCbG9jayogY29kZUJsb2NrOwogICAgIGlmIChjYWxsZWUtPmV4ZWN1dGFibGUo
KS0+aXNIb3N0RnVuY3Rpb24oKSkKQEAgLTc5Myw3ICs4MTAsNyBAQCBzdGF0aWMgYm9vbCBhdHRl
bXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsCiAgICAgCiAgICAgbGlua0Nsb3N1cmVDYWxsKAogICAg
ICAgICBleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIGNvZGVCbG9jaywKLSAgICAgICAgY2FsbGVl
LT5zdHJ1Y3R1cmUoKSwgY2FsbGVlLT5leGVjdXRhYmxlKCksIGNvZGVQdHIpOworICAgICAgICBj
YWxsZWUtPnN0cnVjdHVyZSgpLCBjYWxsZWUtPmV4ZWN1dGFibGUoKSwgY29kZVB0ciwgcmVnaXN0
ZXJzKTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTgwMSwyNSArODE4LDQ2IEBAIHN0
YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwKIGNoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKICAg
ICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsOwotICAgIGNoYXIqIHJlc3VsdCA9IHZpcnR1
YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIGNhbGxlZUFzRnVuY3Rp
b25DZWxsKTsKKyAgICBjaGFyKiByZXN1bHQgPSB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKGV4ZWND
YWxsZWUsIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkLCBjYWxs
ZWVBc0Z1bmN0aW9uQ2VsbCk7CiAgICAgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8gPSBleGVj
Q2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+Z2V0Q2FsbExpbmtJbmZvKGV4ZWND
YWxsZWUtPnJldHVyblBDKCkpOwogCi0gICAgaWYgKCFhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVD
YWxsKGV4ZWNDYWxsZWUsIGNhbGxlZUFzRnVuY3Rpb25DZWxsLCBjYWxsTGlua0luZm8pKQotICAg
ICAgICBsaW5rU2xvd0ZvcihleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIENvZGVGb3JDYWxsKTsK
KyAgICBpZiAoIWF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwoZXhlY0NhbGxlZSwgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCwgY2FsbGVlQXNGdW5jdGlvbkNlbGwsIGNhbGxMaW5r
SW5mbykpCisgICAgICAgIGxpbmtTbG93Rm9yKGV4ZWNDYWxsZWUsIGNhbGxMaW5rSW5mbywgQ29k
ZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogICAgIAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENh
bGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogeyAgICAKLSAgICByZXR1cm4gdmlydHVhbEZvcihl
eGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCk7CisgICAgcmV0dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxl
ZSwgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQogCiBj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3QoRXhlY1N0YXRlKiBl
eGVjQ2FsbGVlKQogewotICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JD
b25zdHJ1Y3QpOworICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDb25z
dHJ1Y3QsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQogCitjaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNT
dGF0ZSogZXhlY0NhbGxlZSkKK3sKKyAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsOwor
ICAgIGNoYXIqIHJlc3VsdCA9IHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwgQ29k
ZUZvckNhbGwsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycywgY2FsbGVlQXNGdW5jdGlvbkNlbGwpOwor
ICAgIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUo
KS0+Y29kZUJsb2NrKCktPmdldENhbGxMaW5rSW5mbyhleGVjQ2FsbGVlLT5yZXR1cm5QQygpKTsK
KworICAgIGlmICghYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbChleGVjQ2FsbGVlLCBNdXN0
UHJlc2VydmVSZWdpc3RlcnMsIGNhbGxlZUFzRnVuY3Rpb25DZWxsLCBjYWxsTGlua0luZm8pKQor
ICAgICAgICBsaW5rU2xvd0ZvcihleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIENvZGVGb3JDYWxs
LCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENhbGxUaGF0UHJlc2VydmVzUmVn
cyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCit7ICAgIAorICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4
ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitjaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVn
cyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCit7CisgICAgcmV0dXJuIHZpcnR1YWxGb3IoZXhlY0Nh
bGxlZSwgQ29kZUZvckNvbnN0cnVjdCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KIAogc2l6
ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUxlc3MoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogewpA
QCAtOTc0LDcgKzEwMTIsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVidWcoRXhl
Y1N0CiB9CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBpbnQzMl90IGJ5dGVjb2RlSW5kZXgpCitTbG93
UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUq
IGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTEwMjQs
NyArMTA2Miw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAg
ICAgICAgY29kZUJsb2NrLT51cGRhdGVBbGxQcmVkaWN0aW9ucygpOwogICAgICAgICBpZiAoT3B0
aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAgICAgZGF0YUxvZygiQ2hvb3Npbmcgbm90IHRv
IG9wdGltaXplICIsICpjb2RlQmxvY2ssICIgeWV0LCBiZWNhdXNlIHRoZSB0aHJlc2hvbGQgaGFz
bid0IGJlZW4gcmVhY2hlZC5cbiIpOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICB9CiAgICAgCiAgICAgaWYgKGNvZGVCbG9jay0+bV9z
aG91bGRBbHdheXNCZUlubGluZWQpIHsKQEAgLTEwMzIsMTggKzEwNzAsMTkgQEAgY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICBjb2RlQmxvY2stPm9wdGlt
aXplQWZ0ZXJXYXJtVXAoKTsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAg
ICAgICAgICAgIGRhdGFMb2coIkNob29zaW5nIG5vdCB0byBvcHRpbWl6ZSAiLCAqY29kZUJsb2Nr
LCAiIHlldCwgYmVjYXVzZSBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZCA9PSB0cnVlLlxuIik7Ci0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAg
IH0KIAogICAgIC8vIFdlIGNhbm5vdCBiZSBpbiB0aGUgcHJvY2VzcyBvZiBhc3luY2hyb25vdXMg
Y29tcGlsYXRpb24gYW5kIGFsc28gaGF2ZSBhbiBvcHRpbWl6ZWQKICAgICAvLyByZXBsYWNlbWVu
dC4KKyAgICBERkc6OldvcmtsaXN0KiB3b3JrbGlzdCA9IERGRzo6ZXhpc3RpbmdHbG9iYWxERkdX
b3JrbGlzdE9yTnVsbCgpOwogICAgIEFTU0VSVCgKLSAgICAgICAgIXZtLndvcmtsaXN0Ci0gICAg
ICAgIHx8ICEodm0ud29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUoREZHOjpDb21waWxhdGlvbktl
eShjb2RlQmxvY2ssIERGRzo6REZHTW9kZSkpICE9IERGRzo6V29ya2xpc3Q6Ok5vdEtub3duCisg
ICAgICAgICF3b3JrbGlzdAorICAgICAgICB8fCAhKHdvcmtsaXN0LT5jb21waWxhdGlvblN0YXRl
KERGRzo6Q29tcGlsYXRpb25LZXkoY29kZUJsb2NrLCBERkc6OkRGR01vZGUpKSAhPSBERkc6Oldv
cmtsaXN0OjpOb3RLbm93bgogICAgICAgICAmJiBjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxh
Y2VtZW50KCkpKTsKIAogICAgIERGRzo6V29ya2xpc3Q6OlN0YXRlIHdvcmtsaXN0U3RhdGU7Ci0g
ICAgaWYgKHZtLndvcmtsaXN0KSB7CisgICAgaWYgKHdvcmtsaXN0KSB7CiAgICAgICAgIC8vIFRo
ZSBjYWxsIHRvIERGRzo6V29ya2xpc3Q6OmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKCkgd2ls
bCBjb21wbGV0ZSBhbGwgcmVhZHkKICAgICAgICAgLy8gKGkuZS4gY29tcGlsZWQpIGNvZGUgYmxv
Y2tzLiBCdXQgaWYgaXQgY29tcGxldGVzIG91cnMsIHdlIGFsc28gbmVlZCB0byBrbm93CiAgICAg
ICAgIC8vIHdoYXQgdGhlIHJlc3VsdCB3YXMgc28gdGhhdCB3ZSBkb24ndCBwbG93IGFoZWFkIGFu
ZCBhdHRlbXB0IE9TUiBvciBpbW1lZGlhdGUKQEAgLTEwNjIsNyArMTEwMSw3IEBAIGNoYXIqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAgICAgLy8gcHJvYmFibHkgYSB3
YXN0ZSBvZiBtZW1vcnkuIE91ciBnb2FsIGhlcmUgaXMgdG8gY29tcGxldGUgY29kZSBibG9ja3Mg
YXMgc29vbiBhcwogICAgICAgICAvLyBwb3NzaWJsZSBpbiBvcmRlciB0byBtaW5pbWl6ZSB0aGUg
Y2hhbmNlcyBvZiB1cyBleGVjdXRpbmcgYmFzZWxpbmUgY29kZSBhZnRlcgogICAgICAgICAvLyBv
cHRpbWl6ZWQgY29kZSBpcyBhbHJlYWR5IGF2YWlsYWJsZS4KLSAgICAgICAgd29ya2xpc3RTdGF0
ZSA9IHZtLndvcmtsaXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSgKKyAgICAgICAgd29y
a2xpc3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSgKICAgICAg
ICAgICAgIHZtLCBERkc6OkNvbXBpbGF0aW9uS2V5KGNvZGVCbG9jaywgREZHOjpERkdNb2RlKSk7
CiAgICAgfSBlbHNlCiAgICAgICAgIHdvcmtsaXN0U3RhdGUgPSBERkc6OldvcmtsaXN0OjpOb3RL
bm93bjsKQEAgLTEwNzIsNyArMTExMSw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
T3B0aW1pemUoRXgKICAgICAgICAgLy8gcmVwbGFjZW1lbnQuCiAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKCFjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxhY2VtZW50KCkpOwogICAgICAgICBjb2Rl
QmxvY2stPnNldE9wdGltaXphdGlvblRocmVzaG9sZEJhc2VkT25Db21waWxhdGlvblJlc3VsdChD
b21waWxhdGlvbkRlZmVycmVkKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBl
bmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgfQogCiAgICAgaWYgKHdvcmtsaXN0U3RhdGUgPT0gREZH
OjpXb3JrbGlzdDo6Q29tcGlsZWQpIHsKQEAgLTEwODUsNyArMTEyNCw3IEBAIGNoYXIqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAgICAgICAgIGNvZGVCbG9jay0+dXBk
YXRlQWxsUHJlZGljdGlvbnMoKTsKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NS
KCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ29kZSBibG9jayAiLCAqY29kZUJsb2NrLCAi
IHdhcyBjb21waWxlZCBidXQgaXQgZG9lc24ndCBoYXZlIGFuIG9wdGltaXplZCByZXBsYWNlbWVu
dC5cbiIpOwotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gZW5jb2Rl
UmVzdWx0KDAsIDApOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChjb2RlQmxvY2stPmhhc09w
dGltaXplZFJlcGxhY2VtZW50KCkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1Io
KSkKQEAgLTExMTAsNyArMTE0OSw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0
aW1pemUoRXgKICAgICAgICAgICAgICAgICAgICAgIigiLCAqY29kZUJsb2NrLT5yZXBsYWNlbWVu
dCgpLCAiKSAoaW4gbG9vcCkuXG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvZGVC
bG9jay0+cmVwbGFjZW1lbnQoKS0+amV0dGlzb24oQ291bnRSZW9wdGltaXphdGlvbik7Ci0gICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIWNvZGVCbG9jay0+c2hvdWxk
T3B0aW1pemVOb3coKSkgewpAQCAtMTExOSw3ICsxMTU4LDcgQEAgY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICAgICAgICAgICAgICAiRGVsYXlpbmcgb3B0
aW1pemF0aW9uIGZvciAiLCAqY29kZUJsb2NrLAogICAgICAgICAgICAgICAgICAgICAiIGJlY2F1
c2Ugb2YgaW5zdWZmaWNpZW50IHByb2ZpbGluZy5cbiIpOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKQEAgLTExNDcs
MTIgKzExODYsMTEgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAog
ICAgICAgICB9CiAKICAgICAgICAgQ29tcGlsYXRpb25SZXN1bHQgcmVzdWx0ID0gREZHOjpjb21w
aWxlKAotICAgICAgICAgICAgdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwg
REZHOjpERkdNb2RlLCBieXRlY29kZUluZGV4LAotICAgICAgICAgICAgbXVzdEhhbmRsZVZhbHVl
cywgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSgpLAotICAgICAg
ICAgICAgdm0uZW5zdXJlV29ya2xpc3QoKSk7CisgICAgICAgICAgICB2bSwgY29kZUJsb2NrLT5u
ZXdSZXBsYWNlbWVudCgpLmdldCgpLCAwLCBERkc6OkRGR01vZGUsIGJ5dGVjb2RlSW5kZXgsCisg
ICAgICAgICAgICBtdXN0SGFuZGxlVmFsdWVzLCBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6Y3JlYXRlKCkpOwogICAgICAgICAKICAgICAgICAgaWYgKHJlc3VsdCAhPSBDb21w
aWxhdGlvblN1Y2Nlc3NmdWwpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJl
dHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgfQogICAgIAogICAgIENvZGVCbG9jayogb3B0
aW1pemVkQ29kZUJsb2NrID0gY29kZUJsb2NrLT5yZXBsYWNlbWVudCgpOwpAQCAtMTE2Niw3ICsx
MjA0LDggQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAg
ICB9CiAKICAgICAgICAgY29kZUJsb2NrLT5vcHRpbWl6ZVNvb24oKTsKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNoYXIqPihhZGRyZXNzKTsKKyAgICAgICAgQVNTRVJUKGV4ZWMtPmNvZGVC
bG9jaygpID09IG9wdGltaXplZENvZGVCbG9jayk7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1
bHQoYWRkcmVzcywgZXhlYy0+dG9wT2ZGcmFtZSgpKTsKICAgICB9CiAKICAgICBpZiAoT3B0aW9u
czo6dmVyYm9zZU9TUigpKSB7CkBAIC0xMTk1LDE0ICsxMjM0LDE0IEBAIGNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAgICAgICAgICAgICAqY29kZUJsb2NrLT5y
ZXBsYWNlbWVudCgpLCAiIChhZnRlciBPU1IgZmFpbCkuXG4iKTsKICAgICAgICAgfQogICAgICAg
ICBvcHRpbWl6ZWRDb2RlQmxvY2stPmpldHRpc29uKENvdW50UmVvcHRpbWl6YXRpb24pOwotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICB9
CiAKICAgICAvLyBPU1IgZmFpbGVkIHRoaXMgdGltZSwgYnV0IGl0IG1pZ2h0IHN1Y2NlZWQgbmV4
dCB0aW1lISBMZXQgdGhlIGNvZGUgcnVuIGEgYml0CiAgICAgLy8gbG9uZ2VyIGFuZCB0aGVuIHRy
eSBhZ2Fpbi4KICAgICBjb2RlQmxvY2stPm9wdGltaXplQWZ0ZXJXYXJtVXAoKTsKICAgICAKLSAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogfQogI2VuZGlmCiAK
QEAgLTE1MzAsMTMgKzE1NjksMTMgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25JbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlc3VsdCkpOwog
fQogCi1DYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZUFuZEFsbG9jRnJhbWVG
b3JWYXJhcmdzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50
cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikKK0NhbGxGcmFtZSogSklUX09QRVJBVElPTiBv
cGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEFyZ3VtZW50cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikKIHsKICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZt
LCBleGVjKTsKICAgICBKU1N0YWNrKiBzdGFjayA9ICZleGVjLT5pbnRlcnByZXRlcigpLT5zdGFj
aygpOwogICAgIEpTVmFsdWUgYXJndW1lbnRzID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1
bWVudHMpOwotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gc2l6ZUFuZEFsbG9jRnJhbWVG
b3JWYXJhcmdzKGV4ZWMsIHN0YWNrLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKKyAg
ICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IHNpemVGcmFtZUZvclZhcmFyZ3MoZXhlYywgc3Rh
Y2ssIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIpOwogICAgIHJldHVybiBuZXdDYWxsRnJh
bWU7CiB9CiAKQEAgLTE3MjksMTIgKzE3NjgsMTEgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkluaXRHbG9iYWxDbwogICAgIHBjWzFdLnUucmVnaXN0ZXJQb2ludGVyLT5zZXQoKnZtLCBl
eGVjLT5jb2RlQmxvY2soKS0+Z2xvYmFsT2JqZWN0KCksIHZhbHVlKTsKIH0KIAotdm9pZCBKSVRf
T1BFUkFUSU9OIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIoRXhlY1N0YXRlKiBleGVjKQordm9pZCBK
SVRfT1BFUkFUSU9OIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIoVk0qIHZtLCBFeGVjU3RhdGUqIGV4
ZWMpCiB7Ci0gICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgZXhlYywgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyOjpWTUVudHJ5U2VudGluZWxPSyk7CiAKLSAg
ICBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlID0gZXhlYy0+ZXhjZXB0aW9uKCk7CisgICAgSlNWYWx1
ZSBleGNlcHRpb25WYWx1ZSA9IHZtLT5leGNlcHRpb24oKTsKICAgICBBU1NFUlQoZXhjZXB0aW9u
VmFsdWUpOwogICAgIAogICAgIGdlbmVyaWNVbndpbmQodm0sIGV4ZWMsIGV4Y2VwdGlvblZhbHVl
KTsKQEAgLTE3NjcsNyArMTgwNSw2IEBAIGFzbSAoCiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVy
blZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAi
XG4iCi0gICAgIm1vdiAwKCVyYnApLCAlcmJwXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxl
ckZyYW1lCiAgICAgIm1vdiAlcmJwLCAlcmRpXG4iCiAgICAgImptcCAiIExPQ0FMX1JFRkVSRU5D
RShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE3Nzgs
OCArMTgxNSwxMSBAQCBhc20gKAogIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZSkgIlxuIgogSElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxu
IgogU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgotICAgICJt
b3YgMCglZWJwKSwgJWVicFxuIiAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQotICAg
ICJtb3YgJWVicCwgNCglZXNwKVxuIgorICAgICJtb3YgKCVlc3ApLCAlZWF4XG4iCisgICAgInB1
c2ggJWVicFxuIgorICAgICJsZWFsIC00KCVlc3ApLCAlZXNwXG4iCisgICAgInB1c2ggJWVicFxu
IgorICAgICJwdXNoICVlYXhcbiIKICAgICAiam1wICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOwogCkBAIC0xNzkyLDcgKzE4MzIs
NiBAQCBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiAiLnRodW1iIiAi
XG4iCiAiLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5DX1BBUkFNKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUpICJcbiIKIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIK
LSAgICAibGRyIHI3LCBbcjcsICMwXSIgIlxuIiAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJG
cmFtZQogICAgICJtb3YgcjAsIHI3IiAiXG4iCiAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CkBAIC0xODA0LDcgKzE4
NDMsNiBAQCBhc20gKAogSElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgog
SU5MSU5FX0FSTV9GVU5DVElPTihnZXRIb3N0Q2FsbFJldHVyblZhbHVlKQogU1lNQk9MX1NUUklO
RyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgotICAgICJsZHIgcjExLCBbcjExLCAj
MF0iICJcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAibW92IHIwLCBy
MTEiICJcbiIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVl
V2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MTYsNyArMTg1NCw2IEBAIGFzbSAoCiAiLmds
b2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURFX1NZ
TUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgImxkdXIgeDI5LCBbeDI5LCAjMF0iICJcbiIK
ICAgICAgIm1vdiB4MCwgeDI5IiAiXG4iCiAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOwpAQCAtMTgyOCw3ICsxODY1
LDYgQEAgYXNtICgKIEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZ
TUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKICAgICBMT0FEX0ZV
TkNUSU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKQotICAgICJs
dyAkZnAsIDAoJGZwKSIgIlxuIiAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAg
ICJtb3ZlICRhMCwgJGZwIiAiXG4iCiAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CkBAIC0xODM5LDcgKzE4NzUsNiBA
QCBhc20gKAogIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkg
IlxuIgogSElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NU
UklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgotICAgICJtb3YubCBAcjE0LCBy
MTQiICJcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAibW92IHIxNCwg
cjQiICJcbiIKICAgICAibW92LmwgMmYsICIgU0g0X1NDUkFUQ0hfUkVHSVNURVIgIlxuIgogICAg
ICJicmFmICIgU0g0X1NDUkFUQ0hfUkVHSVNURVIgIlxuIgpAQCAtMTg1Miw3ICsxODg3LDYgQEAg
U1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOgogZXh0ZXJuICJDIiB7CiAg
ICAgX19kZWNsc3BlYyhuYWtlZCkgRW5jb2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxV
RV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSgpCiAgICAgewotICAgICAgICBfX2FzbSBt
b3YgZWJwLCBbZWJwICsgMF07IC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAg
ICAgIF9fYXNtIG1vdiBbZXNwICsgNF0sIGVicDsKICAgICAgICAgX19hc20gam1wIGdldEhvc3RD
YWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlCiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2
ICsyOSw3IEBACiAjaWYgRU5BQkxFKEpJVCkKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2lu
Y2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNp
bmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgpAQCAtNzIsNiArNzMs
NyBAQCBleHRlcm4gIkMiIHsKICAgICBQYzogSW5zdHJ1Y3Rpb24qIGkuZS4gYnl0ZWNvZGUgUEMK
ICAgICBSOiBSZWdpc3RlcgogICAgIFM6IHNpemVfdAorICAgIFNwcnQ6IFNsb3dQYXRoUmV0dXJu
VHlwZQogICAgIFNzaTogU3RydWN0dXJlU3R1YkluZm8qCiAgICAgU3Q6IFN0cnVjdHVyZSoKICAg
ICBWOiB2b2lkCkBAIC05Miw2ICs5NCw3IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiAoKkoKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklU
T3BlcmF0aW9uX0VDSSkoRXhlY1N0YXRlKiwgSlNDZWxsKiwgU3RyaW5nSW1wbCopOwogdHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUNKKShFeGVj
U3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FREEpKEV4ZWNTdGF0ZSosIGRvdWJsZSwg
SlNBcnJheSopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRP
cGVyYXRpb25fRUUpKEV4ZWNTdGF0ZSosIEV4ZWNTdGF0ZSopOwogdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUkpKEV4ZWNTdGF0ZSosIFN0cmlu
Z0ltcGwqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3Bl
cmF0aW9uX0VKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkEpKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBKU0FycmF5Kik7CkBAIC0xMzMsNiArMTM2LDcgQEAgdHlwZWRlZiBzaXpl
X3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcgogdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElP
TiAoKlNfSklUT3BlcmF0aW9uX0VKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKTsKIHR5cGVkZWYgc2l6ZV90IEpJVF9PUEVSQVRJT04gKCpTX0pJVE9wZXJhdGlv
bl9FT0pzcykoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1N0cmluZyopOwogdHlwZWRlZiBzaXpl
X3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0aW9uX0opKEVuY29kZWRKU1ZhbHVlKTsKK3R5
cGVkZWYgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gKCpTcHJ0X0pJVE9wZXJhdGlv
bl9FWikoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAo
KlZfSklUT3BlcmF0aW9uX0UpKEV4ZWNTdGF0ZSopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJ
T04gKCpWX0pJVE9wZXJhdGlvbl9FQykoRXhlY1N0YXRlKiwgSlNDZWxsKik7CiB0eXBlZGVmIHZv
aWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDYikoRXhlY1N0YXRlKiwgQ29kZUJs
b2NrKik7CkBAIC0xNzQsMTggKzE3OCwxNyBAQCB0eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04g
KCpQX0pJVE9wZXJhCiB0eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlv
bl9FU3RQUykoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgdm9pZCosIHNpemVfdCk7CiB0eXBlZGVm
IGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FU3RTUykoRXhlY1N0YXRlKiwg
U3RydWN0dXJlKiwgc2l6ZV90LCBzaXplX3QpOwogdHlwZWRlZiBjaGFyKiBKSVRfT1BFUkFUSU9O
ICgqUF9KSVRPcGVyYXRpb25fRVN0WikoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgaW50MzJfdCk7
Ci10eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FWikoRXhlY1N0
YXRlKiwgaW50MzJfdCk7CiB0eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJh
dGlvbl9FWlopKEV4ZWNTdGF0ZSosIGludDMyX3QsIGludDMyX3QpOwogdHlwZWRlZiBTdHJpbmdJ
bXBsKiBKSVRfT1BFUkFUSU9OICgqSV9KSVRPcGVyYXRpb25fRUpzcykoRXhlY1N0YXRlKiwgSlNT
dHJpbmcqKTsKIHR5cGVkZWYgSlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gKCpKc3NfSklUT3BlcmF0
aW9uX0VaKShFeGVjU3RhdGUqLCBpbnQzMl90KTsKIAogLy8gVGhpcyBtZXRob2QgaXMgdXNlZCB0
byBsb29rdXAgYW4gZXhjZXB0aW9uIGhhbmRlciwga2V5ZWQgYnkgZmF1bHRMb2NhdGlvbiwgd2hp
Y2ggaXMKIC8vIHRoZSByZXR1cm4gbG9jYXRpb24gZnJvbSBvbmUgb2YgdGhlIGNhbGxzIG91dCB0
byBvbmUgb2YgdGhlIGhlbHBlciBvcGVyYXRpb25zIGFib3ZlLgotICAgIAotdm9pZCBKSVRfT1BF
UkFUSU9OIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwor
Cit2b2lkIEpJVF9PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9uSGFuZGxlcihWTSosIEV4ZWNTdGF0
ZSopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25WTUhhbmRsZUV4
Y2VwdGlvbihFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiAKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25TdGFja0NoZWNrKEV4ZWNTdGF0ZSosIENvZGVCbG9jayopIFdURl9JTlRFUk5BTDsK
K3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihFeGVj
U3RhdGUqLCBDb2RlQmxvY2sqKSBXVEZfSU5URVJOQUw7CiBpbnQzMl90IEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2soRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogaW50MzJf
dCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2soRXhlY1N0YXRlKikg
V1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRC
eUlkKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIFN0cmlu
Z0ltcGwqKSBXVEZfSU5URVJOQUw7CkBAIC0yMTMsMTIgKzIxNiwxOCBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGlyZWN0UHV0QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKikgV1RGX0lO
VEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbChFeGVjU3Rh
dGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNhbGxFdmFsKEV4ZWNTdGF0ZSosIEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwog
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKikg
V1RGX0lOVEVSTkFMOworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbChF
eGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZp
cnR1YWxDb25zdHJ1Y3QoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09QRVJB
VElPTiBvcGVyYXRpb25MaW5rQ29uc3RydWN0KEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2No
YXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVj
U3RhdGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtD
bG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2No
YXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENhbGxUaGF0UHJlc2VydmVzUmVncyhF
eGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZp
cnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7
CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVz
UmVncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CisKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNvbXBhcmVMZXNzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSkgV1RGX0lOVEVSTkFMOwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFy
ZUxlc3NFcShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9J
TlRFUk5BTDsKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwpA
QCAtMjQyLDcgKzI1MSw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YXRp
Y0UKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvdyhFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlYnVn
KEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKICNpZiBFTkFCTEUoREZHX0pJVCkK
LWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0YXRlKiwgaW50MzJf
dCkgV1RGX0lOVEVSTkFMOworU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uT3B0aW1pemUoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwogI2VuZGlmCiB2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJbmRleChFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUpOwogI2lmIFVTRShKU1ZBTFVFNjQpCkBA
IC0yNjcsNyArMjc2LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRlYXJPZmZBcmd1
bQogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeUlkKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIGNvbnN0IElkZW50aWZpZXIqKSBXVEZfSU5URVJO
QUw7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UE5hbWVzKEV4ZWNTdGF0ZSos
IEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25JbnN0YW5jZU9mKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBwcm90bykgV1RGX0lOVEVSTkFMOwotQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBhcmd1bWVudHMsIGludDMyX3QgZmlyc3RGcmVlUmVnaXN0ZXIpIFdURl9JTlRFUk5BTDsKK0Nh
bGxGcmFtZSogSklUX09QRVJBVElPTiBvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3Rl
cikgV1RGX0lOVEVSTkFMOwogQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxvYWRW
YXJhcmdzKEV4ZWNTdGF0ZSosIENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvT2JqZWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
KSBXVEZfSU5URVJOQUw7CiAKQEAgLTI4Nyw2ICsyOTYsNjggQEAgdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkluaXRHbG9iYWxDbwogCiB9IC8vIGV4dGVybiAiQyIKIAoraW5saW5lIFBfSklU
T3BlcmF0aW9uX0Ugb3BlcmF0aW9uTGlua0ZvcigKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNo
IChraW5kKSB7CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3Rl
cnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAg
ICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDYWxsOworICAgICAgICBjYXNlIE11c3RQcmVz
ZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiBvcGVyYXRpb25MaW5rQ2FsbFRoYXRQ
cmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29kZUZv
ckNvbnN0cnVjdDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBS
ZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJh
dGlvbkxpbmtDb25zdHJ1Y3Q7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgor
ICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVn
czsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW5saW5lIFBfSklUT3BlcmF0aW9u
X0Ugb3BlcmF0aW9uVmlydHVhbEZvcigKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQs
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChraW5k
KSB7CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsK
KyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAg
ICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxDYWxsOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2
ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiBvcGVyYXRpb25WaXJ0dWFsQ2FsbFRoYXRQ
cmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29kZUZv
ckNvbnN0cnVjdDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBS
ZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJh
dGlvblZpcnR1YWxDb25zdHJ1Y3Q7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJz
OgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2Vy
dmVzUmVnczsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW5saW5lIFBfSklUT3Bl
cmF0aW9uX0Ugb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsRm9yKFJlZ2lzdGVyUHJlc2VydmF0aW9u
TW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICBjYXNlIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgIHJldHVybiBvcGVyYXRpb25M
aW5rQ2xvc3VyZUNhbGw7CisgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAg
IHJldHVybiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnczsKKyAgICB9
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKwog
fSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3Bw
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00ODIsNyArNDgy
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkKEluc3RydWN0aW9uKgogCiAgICAgSklU
R2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1f
Ynl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAg
ICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNW
YWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgdHJ1ZSk7CisgICAgICAgIEpTVmFsdWVSZWdzOjpwYXls
b2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIHRydWUpOwogICAgIGdl
bi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhK
dW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7CkBAIC01MzAsNyArNTMwLDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKEluc3RydWN0aW9uKgogCiAgICAgSklUUHV0QnlJ
ZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNv
ZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAgICBjYWxs
RnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJl
Z3MocmVnVDMsIHJlZ1QyKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1Qw
KSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwKICAgICAgICAgcmVnVDEsIHRydWUsIG1fY29k
ZUJsb2NrLT5lY21hTW9kZSgpLCBkaXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOwogICAgIAog
ICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDA5LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNTIwLDcgKzUyMCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dl
dF9ieV9pZChJbnN0cnVjdGlvbioKIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAg
ICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJT
ZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKLSAgICAgICAgY2FsbEZyYW1lUmVnaXN0ZXIsIEpTVmFs
dWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCB0cnVlKTsKKyAgICAgICAgSlNWYWx1
ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIHRydWUpOwogICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwog
ICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7CkBAIC01NjYsOCArNTY2LDggQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfcHV0X2J5X2lkKEluc3RydWN0aW9uKgogCiAgICAgSklUUHV0QnlJZEdlbmVyYXRv
ciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQp
LCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdp
c3RlciwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSksIHJlZ1QyLCB0cnVl
LAotICAgICAgICBtX2NvZGVCbG9jay0+ZWNtYU1vZGUoKSwgZGlyZWN0ID8gRGlyZWN0IDogTm90
RGlyZWN0KTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSks
IHJlZ1QyLCB0cnVlLCBtX2NvZGVCbG9jay0+ZWNtYU1vZGUoKSwKKyAgICAgICAgZGlyZWN0ID8g
RGlyZWN0IDogTm90RGlyZWN0KTsKICAgICAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhp
cyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKQEAgLTEwNzgsNyArMTA3
OCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW4KICAgICBwYXRj
aEJ1ZmZlci5saW5rKGRvbmUsIGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxBdE9mZnNldChi
eVZhbEluZm8tPmJhZFR5cGVKdW1wVG9Eb25lKSk7CiAgICAgCiAgICAgYnlWYWxJbmZvLT5zdHVi
Um91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCi0gICAgICAgIHBhdGNoQnVmZmVyLAor
ICAgICAgICBtX2NvZGVCbG9jaywgcGF0Y2hCdWZmZXIsCiAgICAgICAgICgiQmFzZWxpbmUgZ2V0
X2J5X3ZhbCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwgdG9DU3RyaW5nKCptX2NvZGVC
bG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKICAgICAKICAgICBSZXBhdGNo
QnVmZmVyIHJlcGF0Y2hCdWZmZXIobV9jb2RlQmxvY2spOwpAQCAtMTE0MSwxMiArMTE0MSwxMiBA
QCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVQdXRCeVZhbChCeVZhbEluCiAgICAgYm9vbCBpc0Rp
cmVjdCA9IG1faW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5v
cGNvZGUpID09IG9wX3B1dF9ieV92YWxfZGlyZWN0OwogICAgIGlmICghaXNEaXJlY3QpIHsKICAg
ICAgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCi0g
ICAgICAgICAgICBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1
ZmZlciwKICAgICAgICAgICAgICgiQmFzZWxpbmUgcHV0X2J5X3ZhbCBzdHViIGZvciAlcywgcmV0
dXJuIHBvaW50ICVwIiwgdG9DU3RyaW5nKCptX2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRy
ZXNzLnZhbHVlKCkpKTsKICAgICAgICAgCiAgICAgfSBlbHNlIHsKICAgICAgICAgYnlWYWxJbmZv
LT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCi0gICAgICAgICAgICBwYXRj
aEJ1ZmZlciwKKyAgICAgICAgICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAg
ICAgICgiQmFzZWxpbmUgcHV0X2J5X3ZhbF9kaXJlY3Qgc3R1YiBmb3IgJXMsIHJldHVybiBwb2lu
dCAlcCIsIHRvQ1N0cmluZygqbV9jb2RlQmxvY2spLmRhdGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1
ZSgpKSk7CiAgICAgfQogICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9j
ayk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0
aW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTE1MCwxMSArMTUwLDggQEAgcHJvdGVjdGVkOgogfTsKIAog
Ly8gSGVscGVyIGZvciB0aGUgY3JlYXRpb24gb2Ygc2ltcGxlIHN0dWIgcm91dGluZXMgdGhhdCBu
ZWVkIG5vIGhlbHAgZnJvbSB0aGUgR0MuCi0jZGVmaW5lIEZJTkFMSVpFX0NPREVfRk9SX1NUVUIo
cGF0Y2hCdWZmZXIsIGRhdGFMb2dGQXJndW1lbnRzKSBcCi0gICAgKGFkb3B0UmVmKG5ldyBKSVRT
dHViUm91dGluZShGSU5BTElaRV9DT0RFKChwYXRjaEJ1ZmZlciksIGRhdGFMb2dGQXJndW1lbnRz
KSkpKQotCi0jZGVmaW5lIEZJTkFMSVpFX0NPREVfRk9SX0RGR19TVFVCKHBhdGNoQnVmZmVyLCBk
YXRhTG9nRkFyZ3VtZW50cykgXAotICAgIChhZG9wdFJlZihuZXcgSklUU3R1YlJvdXRpbmUoRklO
QUxJWkVfREZHX0NPREUoKHBhdGNoQnVmZmVyKSwgZGF0YUxvZ0ZBcmd1bWVudHMpKSkpCisjZGVm
aW5lIEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwgZGF0YUxv
Z0ZBcmd1bWVudHMpIFwKKyAgICAoYWRvcHRSZWYobmV3IEpJVFN0dWJSb3V0aW5lKEZJTkFMSVpF
X0NPREVfRk9SKChjb2RlQmxvY2spLCAocGF0Y2hCdWZmZXIpLCBkYXRhTG9nRkFyZ3VtZW50cykp
KSkKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFN0dWJzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTQgKzM3LDEzIEBAIG5hbWVzcGFjZSBK
U0MgewogI2lmIEVOQUJMRShKSVQpCiAKICNpZiBPUyhXSU5ET1dTKQotY2xhc3MgRXhlY1N0YXRl
OwotY2xhc3MgUmVnaXN0ZXI7CiBzdHJ1Y3QgUHJvdG9DYWxsRnJhbWU7CitjbGFzcyBWTTsKIAog
ZXh0ZXJuICJDIiB7Ci0gICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwg
RXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKLSAgICB2b2lkIHJldHVy
bkZyb21KYXZhU2NyaXB0KCk7Ci0gICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rp
b24odm9pZCosIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKik7CisgICAg
RW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwgVk0qLCBQcm90b0NhbGxGcmFt
ZSopOworICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqLCBWTSos
IFByb3RvQ2FsbEZyYW1lKik7CisgICAgdm9pZCBoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbigpOwog
fQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZD
NjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNN
U1ZDNjQuYXNtCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFN0dWJzTVNWQzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMSwyNTUgKzAsMCBAQAotOy8q
Ci07IENvcHlyaWdodCAoQykgMjAxMyBEaWdpYSBQbGMuIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQotOwotOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLTsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi07IGFyZSBtZXQ6Ci07IDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci07ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLTsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotOyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotOwotOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLTsgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLTsgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi07IFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi07IENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
OyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi07IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotOyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi07IE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotOyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLTsgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLTsqLwotCi1FWFRFUk4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1
ZVdpdGhFeGVjU3RhdGUgOiBuZWFyCi0KLVBVQkxJQyBjYWxsVG9KYXZhU2NyaXB0Ci1QVUJMSUMg
cmV0dXJuRnJvbUphdmFTY3JpcHQKLVBVQkxJQyBnZXRIb3N0Q2FsbFJldHVyblZhbHVlCi0KLV9U
RVhUICAgU0VHTUVOVAotCi1jYWxsVG9KYXZhU2NyaXB0IFBST0MKLSAgICA7OyBUaGlzIGZ1bmN0
aW9uIGlzIGJlbGlldmVkIHRvIGJlIGFuIGFjY3VyYXRlIGFkYXB0YXRpb24gb2YgdGhlIGFzc2Vt
Ymx5IGNyZWF0ZWQgYnkgdGhlIGxsaW50IHN0dWIgb2YgdGhlCi0gICAgOzsgc2FtZSBuYW1lIHdp
dGggY2hhbmdlcyBmb3IgYXJndW1lbnQgcmVnaXN0ZXIgZGlmZmVyZW5jZXMuCi0gICAgbW92IHIx
MCwgcXdvcmQgcHRyW3JzcF0KLSAgICBwdXNoIHJicAotICAgIG1vdiByYXgsIHJicCA7IFNhdmUg
cHJldmlvdXMgZnJhbWUgcG9pbnRlcgotICAgIG1vdiByYnAsIHJzcAotICAgIHB1c2ggcjEyCi0g
ICAgcHVzaCByMTMKLSAgICBwdXNoIHIxNAotICAgIHB1c2ggcjE1Ci0gICAgcHVzaCByYngKLSAg
ICBwdXNoIHJzaQotICAgIHB1c2ggcmRpCi0KLSAgICA7IEpJVCBvcGVyYXRpb25zIGNhbiB1c2Ug
dXAgdG8gNiBhcmdzICg0IGluIHJlZ2lzdGVycyBhbmQgMiBvbiB0aGUgc3RhY2spLgotICAgIDsg
SW4gYWRkaXRpb24sIFg4Nl82NCBBQkkgc3BlY2lmaWVzIHRoYXQgdGhlIHdvcnNlIGNhc2Ugc3Rh
Y2sgYWxpZ25tZW50Ci0gICAgOyByZXF1aXJlbWVudCBpcyAzMiBieXRlcy4gQmFzZWQgb24gdGhl
c2UgZmFjdG9ycywgd2UgbmVlZCB0byBwYWQgdGhlIHN0YWNrCi0gICAgOyBhbiBhZGRpdGlvbmFs
IDI4aCBieXRlcy4KLSAgICBzdWIgcnNwLCAyOGgKLQotICAgIG1vdiByYnAsIHI5Ci0gICAgc3Vi
IHJicCwgNDAKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDQwXSwgMAotICAgIG1vdiBxd29yZCBw
dHJbcmJwICsgMzJdLCByZHgKLQotICAgIG1vdiByYXgsIHF3b3JkIHB0cltyZHhdCi0gICAgbW92
IHF3b3JkIHB0cltyYnAgKyAyNF0sIHJheAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMTZdLCAx
Ci0gICAgbW92IHF3b3JkIHB0cltyYnAgKyA4XSwgcjEwCi0gICAgbW92IHF3b3JkIHB0cltyYnBd
LCByYXgKLSAgICBtb3YgcmF4LCByYnAKLQotICAgIG1vdiBlYngsIGR3b3JkIHB0cltyOCArIDQw
XQotICAgIGFkZCByYngsIDYKLSAgICBzYWwgcmJ4LCAzCi0gICAgc3ViIHJicCwgcmJ4Ci0gICAg
bW92IHF3b3JkIHB0cltyYnBdLCByYXgKLQotICAgIG1vdiByYXgsIDUKLQotY29weUhlYWRlckxv
b3A6Ci0gICAgc3ViIHJheCwgMQotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyOCArIHJheCAqIDhd
Ci0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByYXggKiA4ICsgMTZdLCByMTAKLSAgICB0ZXN0IHJh
eCwgcmF4Ci0gICAgam56IGNvcHlIZWFkZXJMb29wCi0KLSAgICBtb3YgZWJ4LCBkd29yZCBwdHJb
cjggKyAyNF0KLSAgICBzdWIgcmJ4LCAxCi0gICAgbW92IHIxMGQsIGR3b3JkIHB0cltyOCArIDQw
XQotICAgIHN1YiByMTAsIDEKLSAgICBjbXAgcmJ4LCByMTAKLSAgICBqZSBjb3B5QXJncwotICAg
IG1vdiByYXgsIDBhaAotCi1maWxsRXh0cmFBcmdzTG9vcDoKLSAgICBzdWIgcjEwLCAxCi0gICAg
bW92IHF3b3JkIHB0cltyYnAgKyByMTAgKiA4ICsgNTZdLCByYXgKLSAgICBjbXAgcmJ4LCByMTAK
LSAgICBqbmUgZmlsbEV4dHJhQXJnc0xvb3AKLQotY29weUFyZ3M6Ci0gICAgbW92IHJheCwgcXdv
cmQgcHRyW3I4ICsgNDhdCi0KLWNvcHlBcmdzTG9vcDoKLSAgICB0ZXN0IGVieCwgZWJ4Ci0gICAg
anogY29weUFyZ3NEb25lCi0gICAgc3ViIGVieCwgMQotICAgIG1vdiByMTAsIHF3b3JkIHB0clty
YXggKyByYnggKiA4XQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcmJ4ICogOCArIDU2XSwgcjEw
Ci0gICAgam1wIGNvcHlBcmdzTG9vcAotCi1jb3B5QXJnc0RvbmU6Ci0gICAgbW92IHF3b3JkIHB0
cltyZHhdLCByYnAKLSAgICBtb3YgcjE0LCAwRkZGRjAwMDAwMDAwMDAwMGgKLSAgICBtb3YgcjE1
LCAwRkZGRjAwMDAwMDAwMDAwMmgKLSAgICBjYWxsIHJjeAotICAgIGNtcCBxd29yZCBwdHJbcmJw
ICsgMTZdLCAxCi0gICAgamUgY2FsbGVlRnJhbWVQb3BwZWQKLSAgICBtb3YgcmJwLCBxd29yZCBw
dHJbcmJwXQotCi1jYWxsZWVGcmFtZVBvcHBlZDoKLSAgICBtb3YgcmJ4LCBxd29yZCBwdHJbcmJw
ICsgMzJdIDsgVk0udG9wQ2FsbEZyYW1lCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3JicCArIDI0
XQotICAgIG1vdiBxd29yZCBwdHJbcmJ4XSwgcjEwCi0gICAgYWRkIHJzcCwgMjhoCi0gICAgcG9w
IHJkaQotICAgIHBvcCByc2kKLSAgICBwb3AgcmJ4Ci0gICAgcG9wIHIxNQotICAgIHBvcCByMTQK
LSAgICBwb3AgcjEzCi0gICAgcG9wIHIxMgotICAgIHBvcCByYnAKLSAgICByZXQKLWNhbGxUb0ph
dmFTY3JpcHQgRU5EUAotCi1jYWxsVG9OYXRpdmVGdW5jdGlvbiBQUk9DCi0gICAgOzsgVGhpcyBm
dW5jdGlvbiBpcyBiZWxpZXZlZCB0byBiZSBhbiBhY2N1cmF0ZSBhZGFwdGF0aW9uIG9mIHRoZSBh
c3NlbWJseSBjcmVhdGVkIGJ5IHRoZSBsbGludCBzdHViIG9mIHRoZQotICAgIDs7IHNhbWUgbmFt
ZSB3aXRoIGNoYW5nZXMgZm9yIGFyZ3VtZW50IHJlZ2lzdGVyIGRpZmZlcmVuY2VzLgotICAgIG1v
diByMTAsIHF3b3JkIHB0cltyc3BdCi0gICAgcHVzaCByYnAKLSAgICBtb3YgcmF4LCByYnAgOyBT
YXZlIHByZXZpb3VzIGZyYW1lIHBvaW50ZXIKLSAgICBtb3YgcmJwLCByc3AKLSAgICBwdXNoIHIx
MgotICAgIHB1c2ggcjEzCi0gICAgcHVzaCByMTQKLSAgICBwdXNoIHIxNQotICAgIHB1c2ggcmJ4
Ci0gICAgcHVzaCByc2kKLSAgICBwdXNoIHJkaQotCi0gICAgOyBKSVQgb3BlcmF0aW9ucyBjYW4g
dXNlIHVwIHRvIDYgYXJncyAoNCBpbiByZWdpc3RlcnMgYW5kIDIgb24gdGhlIHN0YWNrKS4KLSAg
ICA7IEluIGFkZGl0aW9uLCBYODZfNjQgQUJJIHNwZWNpZmllcyB0aGF0IHRoZSB3b3JzZSBjYXNl
IHN0YWNrIGFsaWdubWVudAotICAgIDsgcmVxdWlyZW1lbnQgaXMgMzIgYnl0ZXMuIEJhc2VkIG9u
IHRoZXNlIGZhY3RvcnMsIHdlIG5lZWQgdG8gcGFkIHRoZSBzdGFjawotICAgIDsgYW4gYWRkaXRp
b25hbCAyOGggYnl0ZXMuCi0gICAgc3ViIHJzcCwgMjhoCi0KLSAgICBtb3YgcmJwLCByOQotICAg
IHN1YiByYnAsIDQwCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyA0MF0sIDAKLSAgICBtb3YgcXdv
cmQgcHRyW3JicCArIDMyXSwgcmR4Ci0KLSAgICBtb3YgcmF4LCBxd29yZCBwdHJbcmR4XQotICAg
IG1vdiBxd29yZCBwdHJbcmJwICsgMjRdLCByYXgKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDE2
XSwgMQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgOF0sIHIxMAotICAgIG1vdiBxd29yZCBwdHJb
cmJwXSwgcmF4Ci0gICAgbW92IHJheCwgcmJwCi0KLSAgICBtb3YgZWJ4LCBkd29yZCBwdHJbcjgg
KyA0MF0KLSAgICBhZGQgcmJ4LCA2Ci0gICAgc2FsIHJieCwgMwotICAgIHN1YiByYnAsIHJieAot
ICAgIG1vdiBxd29yZCBwdHJbcmJwXSwgcmF4Ci0KLSAgICBtb3YgcmF4LCA1Ci0KLWNvcHlIZWFk
ZXJMb29wOgotICAgIHN1YiByYXgsIDEKLSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcjggKyByYXgg
KiA4XQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcmF4ICogOCArIDE2XSwgcjEwCi0gICAgdGVz
dCByYXgsIHJheAotICAgIGpueiBjb3B5SGVhZGVyTG9vcAotCi0gICAgbW92IGVieCwgZHdvcmQg
cHRyW3I4ICsgMjRdCi0gICAgc3ViIHJieCwgMQotICAgIG1vdiByMTBkLCBkd29yZCBwdHJbcjgg
KyA0MF0KLSAgICBzdWIgcjEwLCAxCi0gICAgY21wIHJieCwgcjEwCi0gICAgamUgY29weUFyZ3MK
LSAgICBtb3YgcmF4LCAwYWgKLQotZmlsbEV4dHJhQXJnc0xvb3A6Ci0gICAgc3ViIHIxMCwgMQot
ICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcjEwICogOCArIDU2XSwgcmF4Ci0gICAgY21wIHJieCwg
cjEwCi0gICAgam5lIGZpbGxFeHRyYUFyZ3NMb29wCi0KLWNvcHlBcmdzOgotICAgIG1vdiByYXgs
IHF3b3JkIHB0cltyOCArIDQ4XQotCi1jb3B5QXJnc0xvb3A6Ci0gICAgdGVzdCByYngsIHJieAot
ICAgIGp6IGNvcHlBcmdzRG9uZQotICAgIHN1YiByYngsIDEKLSAgICBtb3YgcjEwLCBxd29yZCBw
dHJbcmF4ICsgcmJ4ICogOF0KLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIHJieCAqIDggKyA1Nl0s
IHIxMAotICAgIGptcCBjb3B5QXJnc0xvb3AKLQotY29weUFyZ3NEb25lOgotICAgIG1vdiBxd29y
ZCBwdHJbcmR4XSwgcmJwCi0gICAgbW92IHIxNCwgMEZGRkYwMDAwMDAwMDAwMDBoCi0gICAgbW92
IHIxNSwgMEZGRkYwMDAwMDAwMDAwMDJoCi0KLSAgICBtb3YgcmF4LCByY3gKLSAgICBtb3YgcmN4
LCByYnAKLSAgICBjYWxsIHJheAotCi0gICAgY21wIHF3b3JkIHB0cltyYnAgKyAxNl0sIDEKLSAg
ICBqZSBjYWxsZWVGcmFtZVBvcHBlZAotICAgIG1vdiByYnAsIHF3b3JkIHB0cltyYnBdCi0KLWNh
bGxlZUZyYW1lUG9wcGVkOgotICAgIG1vdiByYngsIHF3b3JkIHB0cltyYnAgKyAzMl0gOyBWTS50
b3BDYWxsRnJhbWUKLSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcmJwICsgMjRdCi0gICAgbW92IHF3
b3JkIHB0cltyYnhdLCByMTAKLSAgICBhZGQgcnNwLCAyOGgKLSAgICBwb3AgcmRpCi0gICAgcG9w
IHJzaQotICAgIHBvcCByYngKLSAgICBwb3AgcjE1Ci0gICAgcG9wIHIxNAotICAgIHBvcCByMTMK
LSAgICBwb3AgcjEyCi0gICAgcG9wIHJicAotICAgIHJldAotY2FsbFRvTmF0aXZlRnVuY3Rpb24g
RU5EUAotCi1yZXR1cm5Gcm9tSmF2YVNjcmlwdCBQUk9DCi0gICAgYWRkIHJzcCwgMjhoCi0gICAg
cG9wIHJkaQotICAgIHBvcCByc2kKLSAgICBwb3AgcmJ4Ci0gICAgcG9wIHIxNQotICAgIHBvcCBy
MTQKLSAgICBwb3AgcjEzCi0gICAgcG9wIHIxMgotICAgIHBvcCByYnAKLSAgICByZXQKLXJldHVy
bkZyb21KYXZhU2NyaXB0IEVORFAKLQkKLWdldEhvc3RDYWxsUmV0dXJuVmFsdWUgUFJPQwotICAg
IG1vdiByYnAsIFtyYnBdIDsgQ2FsbEZyYW1lCi0gICAgbW92IHJjeCwgcmJwIDsgcmN4IGlzIGZp
cnN0IGFyZ3VtZW50IHJlZ2lzdGVyIG9uIFdpbmRvd3MKLSAgICBqbXAgZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLWdldEhvc3RDYWxsUmV0dXJuVmFsdWUgRU5EUAotCi1fVEVY
VCAgIEVORFMKLQotRU5ECkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
WDg2LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic1g4
Ni5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzWDg2LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMCwyMzAgKzIwMCw2IEBAIFNZTUJPTF9TVFJJ
TkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUVuZCkKIAogI2VuZGlmIC8vIENPTVBJTEVSKEdDQykK
IAotI2lmIENPTVBJTEVSKE1TVkMpCi0KLWV4dGVybiAiQyIgewotCi0gICAgLy8gRklYTUU6IFNp
bmNlIFdpbmRvd3MgZG9lc24ndCB1c2UgdGhlIExMSW50LCB3ZSBoYXZlIGlubGluZSBzdHVicyBo
ZXJlLgotICAgIC8vIFVudGlsIHRoZSBMTEludCBpcyBjaGFuZ2VkIHRvIHN1cHBvcnQgV2luZG93
cywgdGhlc2Ugc3R1YiBuZWVkcyB0byBiZSB1cGRhdGVkLgotICAgIF9fZGVjbHNwZWMobmFrZWQp
IEVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogY29kZSwgRXhlY1N0YXRlKios
IFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKQotICAgIHsKLSAgICAgICAgX19hc20gewotICAg
ICAgICAgICAgbW92IGVkeCwgW2VzcF0KLSAgICAgICAgICAgIHB1c2ggZWJwOwotICAgICAgICAg
ICAgbW92IGVheCwgZWJwOwotICAgICAgICAgICAgbW92IGVicCwgZXNwOwotICAgICAgICAgICAg
cHVzaCBlc2k7Ci0gICAgICAgICAgICBwdXNoIGVkaTsKLSAgICAgICAgICAgIHB1c2ggZWJ4Owot
ICAgICAgICAgICAgc3ViIGVzcCwgMHgxYzsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0
cltlc3AgKyAweDM0XTsKLSAgICAgICAgICAgIG1vdiBlc2ksIGR3b3JkIHB0cltlc3AgKyAweDM4
XTsKLSAgICAgICAgICAgIG1vdiBlYnAsIGR3b3JkIHB0cltlc3AgKyAweDNjXTsKLSAgICAgICAg
ICAgIHN1YiBlYnAsIDB4MjA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MjRd
LCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDIwXSwgMDsKLSAgICAgICAg
ICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxY10sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQg
cHRyW2VicCArIDB4MThdLCBlY3g7Ci0gICAgICAgICAgICBtb3YgZWJ4LCBbZWN4XTsKLSAgICAg
ICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxNF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdv
cmQgcHRyW2VicCArIDB4MTBdLCBlYng7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCAr
IDB4Y10sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4OF0sIDE7Ci0gICAg
ICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4NF0sIGVkeDsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHJbZWJwXSwgZWF4OwotICAgICAgICAgICAgbW92IGVheCwgZWJwOwotCi0gICAgICAg
ICAgICBtb3YgZWR4LCBkd29yZCBwdHJbZXNpICsgMHgyOF07Ci0gICAgICAgICAgICBhZGQgZWR4
LCA1OwotICAgICAgICAgICAgc2FsIGVkeCwgMzsKLSAgICAgICAgICAgIHN1YiBlYnAsIGVkeDsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwXSwgZWF4OwotCi0gICAgICAgICAgICBtb3Yg
ZWF4LCA1OwotCi0gICAgICAgIGNvcHlIZWFkZXJMb29wOgotICAgICAgICAgICAgc3ViIGVheCwg
MTsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc2kgKyBlYXggKiA4XTsKLSAgICAg
ICAgICAgIG1vdiBkd29yZCBwdHIgOFtlYnAgKyBlYXggKiA4XSwgZWN4OwotICAgICAgICAgICAg
bW92IGVjeCwgZHdvcmQgcHRyIDRbZXNpICsgZWF4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdv
cmQgcHRyIDEyW2VicCArIGVheCAqIDhdLCBlY3g7Ci0gICAgICAgICAgICB0ZXN0IGVheCwgZWF4
OwotICAgICAgICAgICAgam56IGNvcHlIZWFkZXJMb29wOwotCi0gICAgICAgICAgICBtb3YgZWR4
LCBkd29yZCBwdHJbZXNpICsgMHgxOF07Ci0gICAgICAgICAgICBzdWIgZWR4LCAxOwotICAgICAg
ICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzaSArIDB4MjhdOwotICAgICAgICAgICAgc3ViIGVj
eCwgMTsKLQotICAgICAgICAgICAgY21wIGVkeCwgZWN4OwotICAgICAgICAgICAgamUgY29weUFy
Z3M7Ci0KLSAgICAgICAgICAgIHhvciBlYXgsIGVheDsKLSAgICAgICAgICAgIG1vdiBlYngsIC00
OwotCi0gICAgICAgIGZpbGxFeHRyYUFyZ3NMb29wOgotICAgICAgICAgICAgc3ViIGVjeCwgMTsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzMFtlYnAgKyBlY3ggKiA4XSwgZWF4OyAgICAg
ICAgICAgIAotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDM0W2VicCArIGVjeCAqIDhdLCBl
Yng7Ci0gICAgICAgICAgICBjbXAgZWR4LCBlY3g7Ci0gICAgICAgICAgICBqbmUgZmlsbEV4dHJh
QXJnc0xvb3A7Ci0KLSAgICAgICAgY29weUFyZ3M6Ci0gICAgICAgICAgICBtb3YgZWF4LCBkd29y
ZCBwdHJbZXNpICsgMHgyY107Ci0KLSAgICAgICAgY29weUFyZ3NMb29wOgotICAgICAgICAgICAg
dGVzdCBlZHgsIGVkeDsKLSAgICAgICAgICAgIGp6IGNvcHlBcmdzRG9uZTsKLSAgICAgICAgICAg
IHN1YiBlZHgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHIgMFtlYXggKyBlZHgg
KiA4XTsKLSAgICAgICAgICAgIG1vdiBlYngsIGR3b3JkIHB0ciA0W2VheCArIGVkeCAqIDhdOwot
ICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDMwW2VicCArIGVkeCAqIDhdLCBlY3g7Ci0gICAg
ICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzRbZWJwICsgZWR4ICogOF0sIGVieDsKLSAgICAgICAg
ICAgIGptcCBjb3B5QXJnc0xvb3A7Ci0KLSAgICAgICAgY29weUFyZ3NEb25lOgotICAgICAgICAg
ICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzcCArIDB4MzRdOwotICAgICAgICAgICAgbW92IGR3b3Jk
IHB0cltlY3hdLCBlYnA7Ci0KLSAgICAgICAgICAgIGNhbGwgZHdvcmQgcHRyW2VzcCArIDB4MzBd
OwotCi0gICAgICAgICAgICBjbXAgZHdvcmQgcHRyW2VicCArIDhdLCAxOwotICAgICAgICAgICAg
amUgY2FsbGVlRnJhbWVQb3BwZWQ7Ci0gICAgICAgICAgICBtb3YgZWJwLCBkd29yZCBwdHJbZWJw
XTsKLQotICAgICAgICBjYWxsZWVGcmFtZVBvcHBlZDoKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3
b3JkIHB0cltlYnAgKyAweDE4XTsKLSAgICAgICAgICAgIG1vdiBlYngsIGR3b3JkIHB0cltlYnAg
KyAweDEwXTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWN4XSwgZWJ4OwotCi0gICAgICAg
ICAgICBhZGQgZXNwLCAweDFjOwotICAgICAgICAgICAgcG9wIGVieDsKLSAgICAgICAgICAgIHBv
cCBlZGk7Ci0gICAgICAgICAgICBwb3AgZXNpOwotICAgICAgICAgICAgcG9wIGVicDsKLSAgICAg
ICAgICAgIHJldDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF9fZGVjbHNwZWMobmFrZWQpIHZv
aWQgcmV0dXJuRnJvbUphdmFTY3JpcHQoKQotICAgIHsKLSAgICAgICAgX19hc20gewotICAgICAg
ICAgICAgYWRkIGVzcCwgMHgxYzsKLSAgICAgICAgICAgIHBvcCBlYng7Ci0gICAgICAgICAgICBw
b3AgZWRpOwotICAgICAgICAgICAgcG9wIGVzaTsKLSAgICAgICAgICAgIHBvcCBlYnA7Ci0gICAg
ICAgICAgICByZXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfX2RlY2xzcGVjKG5ha2VkKSBF
bmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiBjb2RlLCBFeGVjU3RhdGUq
KiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopCi0gICAgewotICAgICAgICBfX2FzbSB7Ci0g
ICAgICAgICAgICBtb3YgZWR4LCBbZXNwXQotICAgICAgICAgICAgcHVzaCBlYnA7Ci0gICAgICAg
ICAgICBtb3YgZWF4LCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWJwLCBlc3A7Ci0gICAgICAgICAg
ICBwdXNoIGVzaTsKLSAgICAgICAgICAgIHB1c2ggZWRpOwotICAgICAgICAgICAgcHVzaCBlYng7
Ci0gICAgICAgICAgICBzdWIgZXNwLCAweDFjOwotICAgICAgICAgICAgbW92IGVjeCwgW2VzcCAr
IDB4MzRdOwotICAgICAgICAgICAgbW92IGVzaSwgW2VzcCArIDB4MzhdOwotICAgICAgICAgICAg
bW92IGVicCwgW2VzcCArIDB4M2NdOwotICAgICAgICAgICAgc3ViIGVicCwgMHgyMDsKLSAgICAg
ICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgyNF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdv
cmQgcHRyW2VicCArIDB4MjBdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAw
eDFjXSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxOF0sIGVjeDsKLSAg
ICAgICAgICAgIG1vdiBlYngsIFtlY3hdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAg
KyAweDE0XSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxMF0sIGVieDsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHhjXSwgMDsKLSAgICAgICAgICAgIG1v
diBkd29yZCBwdHJbZWJwICsgMHg4XSwgMTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJw
ICsgMHg0XSwgZWR4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnBdLCBlYXg7Ci0gICAg
ICAgICAgICBtb3YgZWF4LCBlYnA7Ci0KLSAgICAgICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltl
c2kgKyAweDI4XTsKLSAgICAgICAgICAgIGFkZCBlZHgsIDU7Ci0gICAgICAgICAgICBzYWwgZWR4
LCAzOwotICAgICAgICAgICAgc3ViIGVicCwgZWR4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0
cltlYnBdLCBlYXg7Ci0KLSAgICAgICAgICAgIG1vdiBlYXgsIDU7Ci0KLSAgICAgICAgY29weUhl
YWRlckxvb3A6Ci0gICAgICAgICAgICBzdWIgZWF4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwg
ZHdvcmQgcHRyW2VzaSArIGVheCAqIDhdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciA4W2Vi
cCArIGVheCAqIDhdLCBlY3g7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHIgNFtlc2kg
KyBlYXggKiA4XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMTJbZWJwICsgZWF4ICogOF0s
IGVjeDsKLSAgICAgICAgICAgIHRlc3QgZWF4LCBlYXg7Ci0gICAgICAgICAgICBqbnogY29weUhl
YWRlckxvb3A7Ci0KLSAgICAgICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltlc2kgKyAweDE4XTsK
LSAgICAgICAgICAgIHN1YiBlZHgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJb
ZXNpICsgMHgyOF07Ci0gICAgICAgICAgICBzdWIgZWN4LCAxOwotCi0gICAgICAgICAgICBjbXAg
ZWR4LCBlY3g7Ci0gICAgICAgICAgICBqZSBjb3B5QXJnczsKLQotICAgICAgICAgICAgeG9yIGVh
eCwgZWF4OwotICAgICAgICAgICAgbW92IGVieCwgLTQ7Ci0KLSAgICAgICAgZmlsbEV4dHJhQXJn
c0xvb3A6Ci0gICAgICAgICAgICBzdWIgZWN4LCAxOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0
ciAweDMwW2VicCArIGVjeCAqIDhdLCBlYXg7ICAgICAgICAgICAgCi0gICAgICAgICAgICBtb3Yg
ZHdvcmQgcHRyIDB4MzRbZWJwICsgZWN4ICogOF0sIGVieDsKLSAgICAgICAgICAgIGNtcCBlZHgs
IGVjeDsKLSAgICAgICAgICAgIGpuZSBmaWxsRXh0cmFBcmdzTG9vcDsKLQotICAgICAgICBjb3B5
QXJnczoKLSAgICAgICAgICAgIG1vdiBlYXgsIGR3b3JkIHB0cltlc2kgKyAweDJjXTsKLQotICAg
ICAgICBjb3B5QXJnc0xvb3A6Ci0gICAgICAgICAgICB0ZXN0IGVkeCwgZWR4OwotICAgICAgICAg
ICAganogY29weUFyZ3NEb25lOwotICAgICAgICAgICAgc3ViIGVkeCwgMTsKLSAgICAgICAgICAg
IG1vdiBlY3gsIGR3b3JkIHB0ciAwW2VheCArIGVkeCAqIDhdOwotICAgICAgICAgICAgbW92IGVi
eCwgZHdvcmQgcHRyIDRbZWF4ICsgZWR4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRy
IDB4MzBbZWJwICsgZWR4ICogOF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgz
NFtlYnAgKyBlZHggKiA4XSwgZWJ4OwotICAgICAgICAgICAgam1wIGNvcHlBcmdzTG9vcDsKLQot
ICAgICAgICBjb3B5QXJnc0RvbmU6Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNw
ICsgMHgzNF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VjeF0sIGVicDsKLQotICAgICAg
ICAgICAgbW92IGVkaSwgZHdvcmQgcHRyW2VzcCArIDB4MzBdOwotICAgICAgICAgICAgbW92IGR3
b3JkIHB0cltlc3AgKyAweDMwXSwgZWJwOwotICAgICAgICAgICAgbW92IGVjeCwgZWJwOwotICAg
ICAgICAgICAgY2FsbCBlZGk7Ci0KLSAgICAgICAgICAgIGNtcCBkd29yZCBwdHJbZWJwICsgOF0s
IDE7Ci0gICAgICAgICAgICBqZSBjYWxsZWVGcmFtZVBvcHBlZDsKLSAgICAgICAgICAgIG1vdiBl
YnAsIGR3b3JkIHB0cltlYnBdOwotCi0gICAgICAgIGNhbGxlZUZyYW1lUG9wcGVkOgotICAgICAg
ICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VicCArIDB4MThdOwotICAgICAgICAgICAgbW92IGVi
eCwgZHdvcmQgcHRyW2VicCArIDB4MTBdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlY3hd
LCBlYng7Ci0KLSAgICAgICAgICAgIGFkZCBlc3AsIDB4MWM7Ci0gICAgICAgICAgICBwb3AgZWJ4
OwotICAgICAgICAgICAgcG9wIGVkaTsKLSAgICAgICAgICAgIHBvcCBlc2k7Ci0gICAgICAgICAg
ICBwb3AgZWJwOwotICAgICAgICAgICAgcmV0OwotICAgICAgICB9Ci0gICAgfQotfQotCi0jZW5k
aWYgLy8gQ09NUElMRVIoTVNWQykKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBK
SVRTdHVic1g4Nl9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3Bw
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5r
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIEpJVFRodW5rczo6Y3RpTmF0aQogI2VuZGlmCiAgICAgcmV0dXJuIGN0aVN0dWIodm0sIG5h
dGl2ZUNhbGxHZW5lcmF0b3IpLmNvZGUoKTsKIH0KKwogTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJ
VFRodW5rczo6Y3RpTmF0aXZlQ29uc3RydWN0KFZNKiB2bSkKIHsKICNpZiBFTkFCTEUoTExJTlQp
CkBAIC02MSw2ICs2MiwxMiBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlO
YXRpCiAgICAgcmV0dXJuIGN0aVN0dWIodm0sIG5hdGl2ZUNvbnN0cnVjdEdlbmVyYXRvcikuY29k
ZSgpOwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVUYWls
Q2FsbChWTSogdm0pCit7CisgICAgQVNTRVJUKHZtLT5jYW5Vc2VKSVQoKSk7CisgICAgcmV0dXJu
IGN0aVN0dWIodm0sIG5hdGl2ZVRhaWxDYWxsR2VuZXJhdG9yKS5jb2RlKCk7Cit9CisKIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoVk0qIHZtLCBUaHVua0dlbmVyYXRv
ciBnZW5lcmF0b3IpCiB7CiAgICAgTG9ja2VyIGxvY2tlcihtX2xvY2spOwpAQCAtODAsNyArODcs
MTIgQEAgTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0RnVuY3RpbwogICAgIGlmIChO
YXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHViTWFw
LT5nZXQoc3RkOjptYWtlX3BhaXIoZnVuY3Rpb24sIGNvbnN0cnVjdG9yKSkpCiAgICAgICAgIHJl
dHVybiBuYXRpdmVFeGVjdXRhYmxlOwogCi0gICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhl
Y3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqdm0sIEpJVDo6Y29tcGlsZUNUSU5h
dGl2ZUNhbGwodm0sIGZ1bmN0aW9uKSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6
Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCh2bSkpLCBjb25zdHJ1
Y3RvciwgTm9JbnRyaW5zaWMpOworICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFi
bGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoCisgICAgICAgICp2bSwKKyAgICAgICAgYWRv
cHRSZWYobmV3IE5hdGl2ZUpJVENvZGUoSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVu
Y3Rpb24pLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksCisgICAgICAgIGZ1bmN0aW9uLAorICAg
ICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNy
ZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3Qodm0pKSwgSklUQ29kZTo6
SG9zdENhbGxUaHVuaykpLAorICAgICAgICBjb25zdHJ1Y3RvciwgTm9JbnRyaW5zaWMpOwogICAg
IHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1Yk1hcCwgc3RkOjptYWtlX3BhaXIoZnVuY3Rpb24s
IGNvbnN0cnVjdG9yKSwgV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7
CiAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CiB9CkBAIC05MiwxNiArMTA0LDE4IEBAIE5h
dGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW8KICAgICBpZiAoTmF0aXZlRXhl
Y3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0KHN0
ZDo6bWFrZV9wYWlyKGZ1bmN0aW9uLCAmY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IpKSkK
ICAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CiAKLSAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgY29kZTsKKyAgICBSZWZQdHI8SklUQ29kZT4gZm9yQ2FsbDsKICAgICBpZiAoZ2VuZXJh
dG9yKSB7Ci0gICAgICAgIGlmICh2bS0+Y2FuVXNlSklUKCkpCi0gICAgICAgICAgICBjb2RlID0g
Z2VuZXJhdG9yKHZtKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29kZSA9IE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZigpOworICAgICAgICBpZiAodm0tPmNhblVzZUpJVCgpKSB7CisgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZW50cnkgPSBnZW5lcmF0b3Iodm0pOworICAgICAg
ICAgICAgZm9yQ2FsbCA9IGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKGVudHJ5LCBlbnRyeS5j
b2RlKCksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsKKyAgICAgICAgfQogICAgIH0gZWxzZQot
ICAgICAgICBjb2RlID0gSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVuY3Rpb24pOwot
Ci0gICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFi
bGU6OmNyZWF0ZSgqdm0sIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNy
ZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3Qodm0pKSwgY2FsbEhvc3RG
dW5jdGlvbkFzQ29uc3RydWN0b3IsIGludHJpbnNpYyk7CisgICAgICAgIGZvckNhbGwgPSBhZG9w
dFJlZihuZXcgTmF0aXZlSklUQ29kZShKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5j
dGlvbiksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsKKyAgICAKKyAgICBSZWZQdHI8SklUQ29k
ZT4gZm9yQ29uc3RydWN0ID0gYWRvcHRSZWYobmV3IE5hdGl2ZUpJVENvZGUoTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0aXZlQ29uc3RydWN0KHZt
KSksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsKKyAgICAKKyAgICBOYXRpdmVFeGVjdXRhYmxl
KiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCp2bSwgZm9yQ2Fs
bCwgZnVuY3Rpb24sIGZvckNvbnN0cnVjdCwgY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3Is
IGludHJpbnNpYyk7CiAgICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHViTWFwLCBzdGQ6Om1h
a2VfcGFpcihmdW5jdGlvbiwgJmNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9yKSwgV2VhazxO
YXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CiAgICAgcmV0dXJuIG5hdGl2ZUV4
ZWN1dGFibGU7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogCiAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGwoVk0qKTsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY3RpTmF0aXZlQ29uc3RydWN0KFZNKik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aU5hdGl2ZVRhaWxDYWxsKFZNKik7ICAgIAogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGN0
aVN0dWIoVk0qLCBUaHVua0dlbmVyYXRvcik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwyMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyUHJlc2VydmF0
aW9uV3JhcHBlckdlbmVyYXRvci5oIgorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkFz
c2VtYmx5SGVscGVycy5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJTdGFj
a0FsaWdubWVudC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworUmVnaXN0ZXJTZXQgcmVnaXN0ZXJz
VG9QcmVzZXJ2ZSgpCit7CisgICAgUmVnaXN0ZXJTZXQgY2FsbGVlU2F2ZXMgPSBSZWdpc3RlclNl
dDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpOworICAgIAorICAgIC8vIE5vIG5lZWQgdG8gcHJlc2Vy
dmUgRlAgc2luY2UgdGhhdCBhbHdheXMgZ2V0cyBwcmVzZXJ2ZWQgYW55d2F5LgorICAgIGNhbGxl
ZVNhdmVzLmNsZWFyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAKKyAgICByZXR1
cm4gY2FsbGVlU2F2ZXM7Cit9CisKK3B0cmRpZmZfdCByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNl
dCgpCit7CisgICAgdW5zaWduZWQgbnVtYmVyT2ZDYWxsZWVTYXZlcyA9IHJlZ2lzdGVyc1RvUHJl
c2VydmUoKS5udW1iZXJPZlNldFJlZ2lzdGVycygpOworICAgIAorICAgIC8vIE5lZWQgdG8gcHJl
c2VydmUgdGhlIG9sZCByZXR1cm4gUEMuCisgICAgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXNUb1Nh
dmUgPSBudW1iZXJPZkNhbGxlZVNhdmVzICsgMTsKKyAgICAKKyAgICAvLyBBbGlnbm1lbnQuIFBy
ZXNlcnZlIHRoZSBzYW1lIGFsaWdubWVudCBpbnZhcmlhbnRzIHRoYXQgdGhlIGNhbGxlciBpbXBv
c2VkLgorICAgIHVuc2lnbmVkIG51bWJlck9mTmV3U3RhY2tTbG90cyA9CisgICAgICAgIFdURjo6
cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBudW1iZXJPZlZh
bHVlc1RvU2F2ZSk7CisgICAgCisgICAgcmV0dXJuIHNpemVvZihSZWdpc3RlcikgKiBudW1iZXJP
Zk5ld1N0YWNrU2xvdHM7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZW5lcmF0ZVJlZ2lz
dGVyUHJlc2VydmF0aW9uV3JhcHBlcihWTSYgdm0sIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxl
LCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgdGFyZ2V0KQoreworI2lmIEVOQUJMRShGVExfSklUKQor
ICAgIC8vIFdlIHNob3VsZG4ndCBldmVyIGJlIGdlbmVyYXRpbmcgd3JhcHBlcnMgZm9yIG5hdGl2
ZSBmdW5jdGlvbnMuCisgICAgUmVnaXN0ZXJTZXQgdG9TYXZlID0gcmVnaXN0ZXJzVG9QcmVzZXJ2
ZSgpOworICAgIHB0cmRpZmZfdCBvZmZzZXQgPSByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgp
OworICAgIAorICAgIEFzc2VtYmx5SGVscGVycyBqaXQoJnZtLCAwKTsKKyAgICAKKyAgICBqaXQu
cHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQu
bG9hZDMyKAorICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICBB
c3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgKEpTU3Rh
Y2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXpl
b2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCksCisgICAgICAgIEdQUkluZm86OnJlZ1QyKTsK
KyAgICAKKyAgICAvLyBQbGFjZSB0aGUgc3RhY2sgcG9pbnRlciB3aGVyZSB3ZSB3YW50IGl0IHRv
IGJlLgorICAgIGppdC5zdWJQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIob2Zmc2V0
KSwgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCisgICAgLy8g
Q29tcHV0ZSB0aGUgbnVtYmVyIG9mIHRoaW5ncyB3ZSB3aWxsIGJlIGNvcHlpbmcuCisgICAgaml0
LmFkZDMyKAorICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigKKyAgICAgICAg
ICAgIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFu
ZFBDU2l6ZSksCisgICAgICAgIEdQUkluZm86OnJlZ1QyKTsKKworICAgIEFTU0VSVCghdG9TYXZl
LmdldChHUFJJbmZvOjpyZWdUNCkpOworICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1Q0KTsKKyAgICAKKyAgICBBc3NlbWJseUhl
bHBlcnM6OkxhYmVsIGxvb3AgPSBqaXQubGFiZWwoKTsKKyAgICBqaXQuc3ViMzIoQXNzZW1ibHlI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQubG9hZDY0
KEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUNCwgb2Zmc2V0KSwgR1BSSW5m
bzo6cmVnVDApOworICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdU
NCk7CisgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihzaXplb2Yo
UmVnaXN0ZXIpKSwgR1BSSW5mbzo6cmVnVDQpOworICAgIGppdC5icmFuY2hUZXN0MzIoQXNzZW1i
bHlIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMikubGlua1RvKGxvb3AsICZqaXQpOwor
CisgICAgLy8gQXQgdGhpcyBwb2ludCByZWdUNCArIG9mZnNldCBwb2ludHMgdG8gd2hlcmUgd2Ug
c2F2ZSB0aGluZ3MuCisgICAgcHRyZGlmZl90IGN1cnJlbnRPZmZzZXQgPSAwOworICAgIGppdC5z
dG9yZVB0cihHUFJJbmZvOjpyZWdUMSwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OnJlZ1Q0LCBjdXJyZW50T2Zmc2V0KSk7CisgICAgCisgICAgZm9yIChHUFJSZWcgZ3ByID0gQXNz
ZW1ibHlIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGdwciA8PSBBc3NlbWJseUhlbHBlcnM6Omxh
c3RSZWdpc3RlcigpOyBncHIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KGdwciArIDEpKSB7CisgICAg
ICAgIGlmICghdG9TYXZlLmdldChncHIpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGN1cnJlbnRPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICAgICAgaml0LnN0b3JlNjQo
Z3ByLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDQsIGN1cnJlbnRPZmZz
ZXQpKTsKKyAgICB9CisgICAgCisgICAgLy8gQXNzdW1lIHRoYXQgdGhlcmUgYXJlbid0IGFueSBz
YXZlZCBGUCByZWdpc3RlcnMuCisgICAgCisgICAgLy8gUmVzdG9yZSB0aGUgdGFnIHJlZ2lzdGVy
cy4KKyAgICBqaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVt
YmVyKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkNjQoQXNz
ZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoVGFnTWFzayAtIFRhZ1R5cGVOdW1iZXIpLCBHUFJJ
bmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7Cisg
ICAgCisgICAgaml0Lm1vdmUoCisgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0
cigKKyAgICAgICAgICAgIHZtLmdldENUSVN0dWIocmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2Vu
ZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSksCisgICAgICAgIEdQUkluZm86Om5v
bkFyZ0dQUjApOworICAgIGppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJ
bmZvOjpub25BcmdHUFIwKTsKKyAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAganVtcCA9IGppdC5q
dW1wKCk7CisgICAgCisgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCAmaml0LCBHTE9CQUxf
VEhVTktfSUQpOworICAgIGxpbmtCdWZmZXIubGluayhqdW1wLCBDb2RlTG9jYXRpb25MYWJlbCh0
YXJnZXQpKTsKKworICAgIGlmIChPcHRpb25zOjp2ZXJib3NlRlRMVG9KU1RodW5rKCkpCisgICAg
ICAgIGRhdGFMb2coIk5lZWQgYSB0aHVuayBmb3IgY2FsbHMgZnJvbSBGVEwgdG8gbm9uLUZUTCB2
ZXJzaW9uIG9mICIsICpleGVjdXRhYmxlLCAiXG4iKTsKKyAgICAKKyAgICByZXR1cm4gRklOQUxJ
WkVfREZHX0NPREUobGlua0J1ZmZlciwgKCJSZWdpc3RlciBwcmVzZXJ2YXRpb24gd3JhcHBlciBm
b3IgJXMvJXMsICVwIiwgdG9DU3RyaW5nKGV4ZWN1dGFibGUtPmhhc2hGb3IoQ29kZUZvckNhbGwp
KS5kYXRhKCksIHRvQ1N0cmluZyhleGVjdXRhYmxlLT5oYXNoRm9yKENvZGVGb3JDb25zdHJ1Y3Qp
KS5kYXRhKCksIHRhcmdldC5leGVjdXRhYmxlQWRkcmVzcygpKSk7CisjZWxzZSAvLyBFTkFCTEUo
RlRMX0pJVCkKKyAgICBVTlVTRURfUEFSQU0odm0pOworICAgIFVOVVNFRF9QQVJBTShleGVjdXRh
YmxlKTsKKyAgICBVTlVTRURfUEFSQU0odGFyZ2V0KTsKKyAgICAvLyBXZSBkb24ndCBzdXBwb3J0
IG5vbi1GVEwgYnVpbGRzIGZvciB0d28gcmVhc29uczoKKyAgICAvLyAtIEl0IGp1c3Qgc28gaGFw
cGVucyB0aGF0IGN1cnJlbnRseSBvbmx5IHRoZSBGVEwgYm90dG9tcyBvdXQgaW4gdGhpcyBjb2Rl
LgorICAgIC8vIC0gVGhlIGNvZGUgYWJvdmUgdXNlcyA2NC1iaXQgaW5zdHJ1Y3Rpb25zLiBJdCBk
b2Vzbid0IG5lY2Vzc2FyaWx5IGhhdmUgdG87IGl0IHdvdWxkIGJlCisgICAgLy8gICBlYXN5IHRv
IGNoYW5nZSBpdCBzbyB0aGF0IGl0IGRvZXNuJ3QuIEJ1dCBvYnZpb3VzbHkgbWFraW5nIHRoYXQg
Y2hhbmdlIHdvdWxkIGJlIGEKKyAgICAvLyAgIHByZXJlcXVpc2l0ZSB0byByZW1vdmluZyB0aGlz
ICNpZi4KKyAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKKyAgICByZXR1cm4gTWFjcm9B
c3NlbWJsZXJDb2RlUmVmKCk7CisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCit9CisKK3N0YXRp
YyB2b2lkIGdlbmVyYXRlUmVnaXN0ZXJSZXN0b3JhdGlvbihBc3NlbWJseUhlbHBlcnMmIGppdCkK
K3sKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKyAgICBSZWdpc3RlclNldCB0b1NhdmUgPSByZWdpc3Rl
cnNUb1ByZXNlcnZlKCk7CisgICAgcHRyZGlmZl90IG9mZnNldCA9IHJlZ2lzdGVyUHJlc2VydmF0
aW9uT2Zmc2V0KCk7CisgICAgCisgICAgQVNTRVJUKCF0b1NhdmUuZ2V0KEdQUkluZm86OnJlZ1Q0
KSk7CisKKyAgICAvLyBXZSBuZWVkIHRvIHBsYWNlIHRoZSBzdGFjayBwb2ludGVyIGJhY2sgdG8g
d2hlcmUgdGhlIGNhbGxlciB0aG91Z2h0IHRoZXkgbGVmdCBpdC4KKyAgICAvLyBCdXQgYWxzbywg
aW4gb3JkZXIgdG8gcmVjb3ZlciB0aGUgcmVnaXN0ZXJzLCB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQg
aG93IGJpZyB0aGUKKyAgICAvLyBhcmd1bWVudHMgYXJlYSBpcy4KKyAgICAKKyAgICBqaXQubG9h
ZDMyKAorICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICBBc3Nl
bWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgKEpTU3RhY2s6
OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXplb2Yo
UmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCksCisgICAgICAgIEdQUkluZm86OnJlZ1Q0KTsKKyAg
ICAKKyAgICBqaXQubW92ZShHUFJJbmZvOjpyZWdUNCwgR1BSSW5mbzo6cmVnVDIpOworICAgIGpp
dC5sc2hpZnQzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigzKSwgR1BSSW5mbzo6cmVn
VDIpOworICAgIAorICAgIGppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
b2Zmc2V0KSwgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgaml0
LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpy
ZWdUMik7CisgICAgCisgICAgLy8gV2Ugc2F2ZWQgdGhpbmdzIGF0OgorICAgIC8vCisgICAgLy8g
ICAgIGFkalNQICsgKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxs
ZXJGcmFtZUFuZFBDU2l6ZSArIE51bUFyZ3MpICogOAorICAgIC8vCisgICAgLy8gV2hlcmU6Cisg
ICAgLy8KKyAgICAvLyAgICAgYWRqU1AgPSBvcmlnU1AgLSBvZmZzZXQKKyAgICAvLworICAgIC8v
IHJlZ1QyIG5vdyBwb2ludHMgYXQ6CisgICAgLy8KKyAgICAvLyAgICAgb3JpZ1NQICsgTnVtQXJn
cyAqIDgKKyAgICAvLyAgID0gYWRqU1AgKyBvZmZzZXQgKyBOdW1BcmdzICogOAorICAgIC8vIAor
ICAgIC8vIFNvIGlmIHdlIHN1YnRyYWN0IG9mZnNldCBhbmQgdGhlbiBhZGQgSlNTdGFjazo6Q2Fs
bEZyYW1lSGVhZGVyU2l6ZSBhbmQgc3VidHJhY3QKKyAgICAvLyBKU1N0YWNrOjpDYWxsZXJGcmFt
ZUFuZFBDU2l6ZSwgd2UnbGwgZ2V0IHRoZSB0aGluZyB3ZSB3YW50LgorICAgIHB0cmRpZmZfdCBj
dXJyZW50T2Zmc2V0ID0gLW9mZnNldCArIHNpemVvZihSZWdpc3RlcikgKiAoCisgICAgICAgIEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6
ZSk7CisgICAgaml0LmxvYWRQdHIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJl
Z1QyLCBjdXJyZW50T2Zmc2V0KSwgR1BSSW5mbzo6cmVnVDEpOworICAgIAorICAgIGZvciAoR1BS
UmVnIGdwciA9IEFzc2VtYmx5SGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBncHIgPD0gQXNzZW1i
bHlIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgZ3ByID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihncHIg
KyAxKSkgeworICAgICAgICBpZiAoIXRvU2F2ZS5nZXQoZ3ByKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CisgICAgICAg
IGppdC5sb2FkNjQoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QyLCBjdXJy
ZW50T2Zmc2V0KSwgZ3ByKTsKKyAgICB9CisgICAgCisgICAgLy8gVGh1bmtzIGxpa2UgdGhpcyBy
ZWx5IG9uIHRoZSBBcmd1bWVudENvdW50IGJlaW5nIGludGFjdC4gUGF5IGl0IGZvcndhcmQuCisg
ICAgaml0LnN0b3JlMzIoCisgICAgICAgIEdQUkluZm86OnJlZ1Q0LAorICAgICAgICBBc3NlbWJs
eUhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0
YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9m
ZnNldCkpOworICAgIAorICAgIGlmICghQVNTRVJUX0RJU0FCTEVEKSB7CisgICAgICAgIEFzc2Vt
Ymx5SGVscGVyczo6SnVtcCBvayA9IGppdC5icmFuY2hQdHIoCisgICAgICAgICAgICBBc3NlbWJs
eUhlbHBlcnM6OkFib3ZlLCBHUFJJbmZvOjpyZWdUMSwgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKHN0YXRpY19jYXN0PHNpemVfdD4oMHgxMDAwKSkpOworICAgICAgICBqaXQuYnJlYWtw
b2ludCgpOworICAgICAgICBvay5saW5rKCZqaXQpOworICAgIH0KKyAgICAKKyAgICBqaXQuanVt
cChHUFJJbmZvOjpyZWdUMSk7CisjZWxzZSAvLyBFTkFCTEUoRlRMX0pJVCkKKyAgICBVTlVTRURf
UEFSQU0oaml0KTsKKyAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKKyNlbmRpZiAvLyBF
TkFCTEUoRlRMX0pJVCkKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJlZ2lzdGVyUmVzdG9y
YXRpb25UaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgQXNzZW1ibHlIZWxwZXJzIGppdCh2
bSwgMCk7CisgICAgZ2VuZXJhdGVSZWdpc3RlclJlc3RvcmF0aW9uKGppdCk7CisgICAgTGlua0J1
ZmZlciBsaW5rQnVmZmVyKCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICByZXR1cm4g
RklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCAoIlJlZ2lzdGVyIHJlc3RvcmF0aW9uIHRodW5rIikp
OworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVy
R2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3Jh
cHBlckdlbmVyYXRvcl9oCisjZGVmaW5lIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVy
YXRvcl9oCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAiQXJpdHlDaGVja01vZGUuaCIK
KyNpbmNsdWRlICJBc3NlbWJseUhlbHBlcnMuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYuaCIKKyNpbmNsdWRlICJWTS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworUmVnaXN0ZXJT
ZXQgcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpOworCitwdHJkaWZmX3QgcmVnaXN0ZXJQcmVzZXJ2YXRp
b25PZmZzZXQoKTsKKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGdlbmVyYXRlUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25XcmFwcGVyKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgdGFyZ2V0KTsKKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJlZ2lzdGVyUmVzdG9yYXRpb25U
aHVua0dlbmVyYXRvcihWTSopOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKSVQpCisKKyNlbmRpZiAvLyBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0
b3JfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEy
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUxLDExICs1MSw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogLy8gdGhhdCB3b3VsZCBvcmRpbmFyaWx5IGhhdmUgd2VsbC1rbm93biB2YWx1ZXM6
CiAvLyAtIHRhZ1R5cGVOdW1iZXJSZWdpc3RlcgogLy8gLSB0YWdNYXNrUmVnaXN0ZXIKLS8vIC0g
Y2FsbEZyYW1lUmVnaXN0ZXIgKioKLS8vCi0vLyBXZSBjdXJyZW50bHkgb25seSB1c2UgdGhlIGNh
bGxGcmFtZVJlZ2lzdGVyIGZvciBjbG9zdXJlIGNhbGwgcGF0Y2hpbmcsIGFuZCB3ZSdyZSBub3Qg
Z29pbmcgdG8KLS8vIGdpdmUgdGhlIEZUTCBjbG9zdXJlIGNhbGwgcGF0Y2hpbmcgc3VwcG9ydCB1
bnRpbCB3ZSBzd2l0Y2ggdG8gdGhlIEMgc3RhY2sgLSBidXQgd2hlbiB3ZSBkbyB0aGF0LAotLy8g
Y2FsbEZyYW1lUmVnaXN0ZXIgd2lsbCBkaXNhcHBlYXIuCiAKIHN0YXRpYyBGdW5jdGlvblB0ciBy
ZWFkQ2FsbFRhcmdldChSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVyLCBDb2RlTG9jYXRpb25D
YWxsIGNhbGwpCiB7CkBAIC0yOTgsMjMgKzI5MywyMyBAQCBzdGF0aWMgUHJvdG9DaGFpbkdlbmVy
YXRpb25SZXN1bHQgZ2VuZXJhCiAjZW5kaWYKICAgICAgICAgfQogICAgIH0KKwogICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIG9wZXJhdGlvbkNhbGw7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
aGFuZGxlckNhbGw7CiAgICAgRnVuY3Rpb25QdHIgb3BlcmF0aW9uRnVuY3Rpb247CiAgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzcywgZmFpbDsKICAgICBpZiAoaXNBY2Nlc3Nvcikgewot
ICAgICAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0
dWJJbmZvLnBhdGNoLmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICAgICAgaWYgKHNsb3QuaXNDYWNo
ZWFibGVHZXR0ZXIoKSkgewotICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxs
RnJhbWVSZWdpc3Rlciwgc2NyYXRjaEdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIHN0dWJK
aXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHNjcmF0Y2hHUFIsIHJlc3VsdEdQUik7CiAg
ICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxHZXR0ZXI7CiAgICAg
ICAgIH0gZWxzZSB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIC8vIEVuY29kZWRK
U1ZhbHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFz
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgICAgICAgICAg
c3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIocHJvdG9PYmplY3QpLCBzY3JhdGNoR1BSLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSk7CisgICAgICAgICAgICBzdHViSml0
LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
cihwcm90b09iamVjdCksIHNjcmF0Y2hHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRy
KHByb3BlcnR5TmFtZS5pbXBsKCkpKTsKICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0g
RnVuY3Rpb25QdHIoc2xvdC5jdXN0b21HZXR0ZXIoKSk7CiAjZWxzZQogICAgICAgICAgICAgc3R1
YkppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3RvT2JqZWN0KSwgc2Ny
YXRjaEdQUik7Ci0gICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJl
Z2lzdGVyLCBzY3JhdGNoR1BSLAorICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoc2NyYXRjaEdQUiwKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbVB0cihGdW5jdGlvblB0cihzbG90LmN1c3RvbUdldHRlcigpKS5leGVjdXRhYmxl
QWRkcmVzcygpKSwKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSk7CiAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9
IG9wZXJhdGlvbkNhbGxDdXN0b21HZXR0ZXI7CkBAIC0zNTAsOSArMzQ1LDEwIEBAIHN0YXRpYyBQ
cm90b0NoYWluR2VuZXJhdGlvblJlc3VsdCBnZW5lcmEKICAgICAgICAgcGF0Y2hCdWZmZXIubGlu
ayhvcGVyYXRpb25DYWxsLCBvcGVyYXRpb25GdW5jdGlvbik7CiAgICAgICAgIHBhdGNoQnVmZmVy
LmxpbmsoaGFuZGxlckNhbGwsIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpOwogICAgIH0KLSAgICBz
dHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX0RGR19TVFVCKAotICAgICAgICBwYXRjaEJ1
ZmZlciwKLSAgICAgICAgKCJERkcgcHJvdG90eXBlIGNoYWluIGFjY2VzcyBzdHViIGZvciAlcywg
cmV0dXJuIHBvaW50ICVwIiwKKyAgICAKKyAgICBzdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVf
Rk9SX1NUVUIoCisgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZlciwKKyAgICAg
ICAgKCJQcm90b3R5cGUgY2hhaW4gYWNjZXNzIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAi
LAogICAgICAgICAgICAgdG9DU3RyaW5nKCpleGVjLT5jb2RlQmxvY2soKSkuZGF0YSgpLCBzdWNj
ZXNzTGFiZWwuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgIHJldHVybiBQcm90b0NoYWluR2Vu
ZXJhdGlvblN1Y2NlZWRlZDsKIH0KQEAgLTQxMiw5ICs0MDgsOSBAQCBzdGF0aWMgYm9vbCB0cnlD
YWNoZUdldEJ5SUQoRXhlY1N0YXRlKiBlCiAgICAgICAgIAogICAgICAgICBsaW5rUmVzdG9yZVNj
cmF0Y2gocGF0Y2hCdWZmZXIsIG5lZWRUb1Jlc3RvcmVTY3JhdGNoLCBzdHViSW5mbywgc3VjY2Vz
cywgZmFpbCwgZmFpbHVyZUNhc2VzKTsKICAgICAgICAgCi0gICAgICAgIHN0dWJJbmZvLnN0dWJS
b3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfREZHX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1
ZmZlciwKLSAgICAgICAgICAgICgiREZHIEdldEJ5SWQgYXJyYXkgbGVuZ3RoIHN0dWIgZm9yICVz
LCByZXR1cm4gcG9pbnQgJXAiLAorICAgICAgICBzdHViSW5mby5zdHViUm91dGluZSA9IEZJTkFM
SVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hC
dWZmZXIsCisgICAgICAgICAgICAoIkdldEJ5SWQgYXJyYXkgbGVuZ3RoIHN0dWIgZm9yICVzLCBy
ZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJs
b2NrKCkpLmRhdGEoKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQo
CiAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSkpOwogICAgICAgICAKQEAgLTU3Miw3ICs1NjgsNiBAQCBzdGF0aWMg
Ym9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAgICAgICAgIAogICAgICAgICBzdHVi
SW5mby51LmdldEJ5SWRTZWxmTGlzdC5saXN0U2l6ZSsrOwogICAgICAgICAKLSAgICAgICAgR1BS
UmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRj
aC5jYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gc3RhdGljX2Nh
c3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5iYXNlR1BSKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0
KQogICAgICAgICBHUFJSZWcgcmVzdWx0VGFnR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHVi
SW5mby5wYXRjaC52YWx1ZVRhZ0dQUik7CkBAIC01OTYsNiArNTkxLDEwIEBAIHN0YXRpYyBib29s
IHRyeUJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXQKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgc3VjY2VzczsKICAgICAgICAgCiAgICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlR2V0dGVy
KCkgfHwgc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTog
VGhpcyBjb2RlIHNob3VsZG4ndCBiZSBhc3N1bWluZyB0aGF0IHRoZSB0b3Agb2Ygc3RhY2sgaXMg
c2V0IHVwIGZvciBKU0MKKyAgICAgICAgICAgIC8vIEpJVC1zdHlsZSBDIGNhbGxzLCBzaW5jZSB3
ZSBtYXkgYmUgY3VycmVudGx5IG9uIHRvcCBvZiBhbiBGVEwgZnJhbWUuCisgICAgICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NzExCisgICAgICAg
ICAgICAKICAgICAgICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlR2V0dGVyKCkpIHsKICAgICAg
ICAgICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKICAgICAgICAg
ICAgICAgICBBU1NFUlQoYmFzZUdQUiAhPSBzY3JhdGNoR1BSKTsKQEAgLTYxMywxNiArNjEyLDE2
IEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXQKICAgICAgICAgICAg
ICAgICAgICAgc3R1YkppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc2NyYXRjaEdQ
Uiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2Uoc2xvdC5jYWNoZWRPZmZzZXQoKSkpLCBzY3JhdGNoR1BS
KTsKICNlbmRpZgogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdHViSml0LnNl
dHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBzY3JhdGNoR1BSKTsKKyAg
ICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShiYXNlR1BS
LCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IG9wZXJh
dGlvbkNhbGxHZXR0ZXI7CiAgICAgICAgICAgICB9IGVsc2UgewogI2lmIFVTRShKU1ZBTFVFNjQp
CiAgICAgICAgICAgICAgICAgLy8gRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSk7Ci0gICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhj
YWxsRnJhbWVSZWdpc3RlciwgYmFzZUdQUiwgYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CisgICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQUiwgYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CiAgICAgICAgICAgICAgICAgb3BlcmF0aW9uRnVu
Y3Rpb24gPSBGdW5jdGlvblB0cihzbG90LmN1c3RvbUdldHRlcigpKTsKICNlbHNlCi0gICAgICAg
ICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cygKLSAgICAgICAgICAgICAgICAgICAgY2Fs
bEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsCisgICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAgICAgICAgICAgICAgICAgIGJhc2VHUFIsCiAgICAg
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEZ1bmN0aW9uUHRy
KHNsb3QuY3VzdG9tR2V0dGVyKCkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLAogICAgICAgICAgICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKICAg
ICAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxDdXN0b21HZXR0
ZXI7CkBAIC02NDQsNyArNjQzLDcgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRCeUlETGlzdChF
eGVjU3RhdAogI2VuZGlmCiAgICAgICAgICAgICBzdWNjZXNzID0gc3R1YkppdC5lbWl0RXhjZXB0
aW9uQ2hlY2soQ0NhbGxIZWxwZXJzOjpJbnZlcnRlZEV4Y2VwdGlvbkNoZWNrKTsKICAgICAgICAg
ICAgIAotICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOworICAg
ICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIodm0pLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgICAgICBoYW5kbGVy
Q2FsbCA9IHN0dWJKaXQuY2FsbCgpOwogICAgICAgICAgICAgc3R1YkppdC5qdW1wVG9FeGNlcHRp
b25IYW5kbGVyKCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC02ODQsOSArNjgzLDkgQEAgc3RhdGlj
IGJvb2wgdHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdAogICAgICAgICAKICAgICAgICAgUmVm
UHRyPEpJVFN0dWJSb3V0aW5lPiBzdHViUm91dGluZSA9CiAgICAgICAgICAgICBjcmVhdGVKSVRT
dHViUm91dGluZSgKLSAgICAgICAgICAgICAgICBGSU5BTElaRV9ERkdfQ09ERSgKLSAgICAgICAg
ICAgICAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICgiREZHIEdldEJ5
SWQgcG9seW1vcnBoaWMgbGlzdCBhY2Nlc3MgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAorICAg
ICAgICAgICAgICAgIEZJTkFMSVpFX0NPREVfRk9SKAorICAgICAgICAgICAgICAgICAgICBleGVj
LT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICgiR2V0QnlJ
ZCBwb2x5bW9ycGhpYyBsaXN0IGFjY2VzcyBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9jaygpKS5kYXRhKCks
IHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSkpLAogICAgICAgICAgICAgICAgICp2bSwKQEAgLTc3NSw3ICs3NzQsNyBAQCBz
dGF0aWMgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBhcHByb3ByaWF0CiB9CiAKICNpZiBFTkFCTEUo
R0dDKQotc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZm
ZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBjZWxsLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJl
ZyBzY3JhdGNoMiwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBTY3JhdGNoUmVnaXN0ZXJBbGxv
Y2F0b3ImIGFsbG9jYXRvcikKK3N0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBzdG9yZVRvV3Jp
dGVCYXJyaWVyQnVmZmVyKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgY2VsbCwgR1BSUmVnIHNj
cmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciYgYWxsb2Nh
dG9yKQogewogICAgIEFTU0VSVChzY3JhdGNoMSAhPSBzY3JhdGNoMik7CiAgICAgV3JpdGVCYXJy
aWVyQnVmZmVyKiB3cml0ZUJhcnJpZXJCdWZmZXIgPSAmaml0LnZtKCktPmhlYXAud3JpdGVCYXJy
aWVyQnVmZmVyKCk7CkBAIC04MDgsNyArODA3LDcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIHN0b3JlVG9Xcml0ZQogICAgIGlmIChieXRlc1RvU3VidHJhY3QpCiAgICAgICAgIGppdC5z
dWJQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihieXRlc1RvU3VidHJhY3QpLCBNYWNy
b0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAKIAotICAgIGppdC5zZXR1cEFyZ3Vt
ZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgY2VsbCk7CisgICAgaml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShjZWxsKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gaml0LmNh
bGwoKTsKIAogICAgIGlmIChieXRlc1RvU3VidHJhY3QpCkBAIC04MjAsMTMgKzgxOSwxMyBAQCBz
dGF0aWMgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgc3RvcmVUb1dyaXRlCiAgICAgcmV0dXJuIGNhbGw7
CiB9CiAKLXN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXIoQ0NhbGxIZWxw
ZXJzJiBqaXQsIEdQUlJlZyBvd25lciwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIs
IEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBhbGxv
Y2F0b3IpCitzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyKENDYWxsSGVs
cGVycyYgaml0LCBHUFJSZWcgb3duZXIsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gy
LCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3ImIGFsbG9jYXRvcikKIHsKICAgICBBU1NFUlQob3du
ZXIgIT0gc2NyYXRjaDEpOwogICAgIEFTU0VSVChvd25lciAhPSBzY3JhdGNoMik7CiAKICAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBkZWZpbml0ZWx5Tm90TWFya2VkID0gREZHOjpTcGVjdWxhdGl2
ZUpJVDo6Z2VuZXJpY1dyaXRlQmFycmllcihqaXQsIG93bmVyLCBzY3JhdGNoMSwgc2NyYXRjaDIp
OwotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBzdG9yZVRvV3JpdGVCYXJyaWVyQnVm
ZmVyKGppdCwgb3duZXIsIHNjcmF0Y2gxLCBzY3JhdGNoMiwgY2FsbEZyYW1lUmVnaXN0ZXIsIGFs
bG9jYXRvcik7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IHN0b3JlVG9Xcml0ZUJh
cnJpZXJCdWZmZXIoaml0LCBvd25lciwgc2NyYXRjaDEsIHNjcmF0Y2gyLCBhbGxvY2F0b3IpOwog
ICAgIGRlZmluaXRlbHlOb3RNYXJrZWQubGluaygmaml0KTsKICAgICByZXR1cm4gY2FsbDsKIH0K
QEAgLTg0NCw5ICs4NDMsNiBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0UmVwbGFjZVN0dWIoCiAgICAg
UmVmUHRyPEpJVFN0dWJSb3V0aW5lPiYgc3R1YlJvdXRpbmUpCiB7CiAgICAgVk0qIHZtID0gJmV4
ZWMtPnZtKCk7Ci0jaWYgRU5BQkxFKEdHQykKLSAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIg
PSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLmNhbGxGcmFtZVJlZ2lzdGVyKTsK
LSNlbmRpZgogICAgIEdQUlJlZyBiYXNlR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5m
by5wYXRjaC5iYXNlR1BSKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIEdQUlJlZyB2YWx1
ZVRhZ0dQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2gudmFsdWVUYWdHUFIp
OwpAQCAtODkzLDcgKzg4OSw3IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRSZXBsYWNlU3R1YigKICNl
bmRpZgogICAgIAogI2lmIEVOQUJMRShHR0MpCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3Jp
dGVCYXJyaWVyT3BlcmF0aW9uID0gd3JpdGVCYXJyaWVyKHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0
Y2hHUFIxLCBzY3JhdGNoR1BSMiwgY2FsbEZyYW1lUmVnaXN0ZXIsIGFsbG9jYXRvcik7CisgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyT3BlcmF0aW9uID0gd3JpdGVCYXJyaWVy
KHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0Y2hHUFIxLCBzY3JhdGNoR1BSMiwgYWxsb2NhdG9yKTsK
ICNlbmRpZgogICAgIAogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHN1Y2Nlc3M7CkBAIC05MTgs
OSArOTE0LDkgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFJlcGxhY2VTdHViKAogICAgIHBhdGNoQnVm
ZmVyLmxpbmsoc3VjY2Vzcywgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZz
ZXQoc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9Eb25lKSk7CiAgICAgcGF0Y2hCdWZmZXIubGlu
ayhmYWlsdXJlLCBmYWlsdXJlTGFiZWwpOwogICAgICAgICAgICAgCi0gICAgc3R1YlJvdXRpbmUg
PSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdfU1RVQigKLSAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAg
ICAgICgiREZHIFB1dEJ5SWQgcmVwbGFjZSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwK
KyAgICBzdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgIGV4ZWMt
PmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgKCJQdXRCeUlkIHJlcGxhY2Ugc3R1
YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMt
PmNvZGVCbG9jaygpKS5kYXRhKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0
T2Zmc2V0KAogICAgICAgICAgICAgICAgIHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSku
ZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogfQpAQCAtOTQwLDcgKzkzNiw2IEBAIHN0YXRpYyB2b2lk
IGVtaXRQdXRUcmFuc2l0aW9uU3R1YigKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKIAot
ICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1Yklu
Zm8ucGF0Y2guY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIEdQUlJlZyBiYXNlR1BSID0gc3RhdGlj
X2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5iYXNlR1BSKTsKICNpZiBVU0UoSlNWQUxVRTMy
XzY0KQogICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1Yklu
Zm8ucGF0Y2gudmFsdWVUYWdHUFIpOwpAQCAtMTA2MCw3ICsxMDU1LDcgQEAgc3RhdGljIHZvaWQg
ZW1pdFB1dFRyYW5zaXRpb25TdHViKAogI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKEdHQykKLSAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJp
ZXIoc3R1YkppdCwgYmFzZUdQUiwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBjYWxsRnJhbWVS
ZWdpc3RlciwgYWxsb2NhdG9yKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJp
ZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJpZXIoc3R1YkppdCwgYmFzZUdQUiwgc2NyYXRjaEdQUjEs
IHNjcmF0Y2hHUFIyLCBhbGxvY2F0b3IpOwogI2VuZGlmCiAgICAgCiAgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgc3VjY2VzczsKQEAgLTEwODYsOSArMTA4MSw5IEBAIHN0YXRpYyB2b2lkIGVtaXRQ
dXRUcmFuc2l0aW9uU3R1YigKICAgICAgICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9
IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6ZShhbGxvY2F0b3IuZGVzaXJlZFNjcmF0Y2hCdWZmZXJT
aXplKCkpOwogICAgICAgICBhbGxvY2F0b3IucHJlc2VydmVVc2VkUmVnaXN0ZXJzVG9TY3JhdGNo
QnVmZmVyKHN0dWJKaXQsIHNjcmF0Y2hCdWZmZXIsIHNjcmF0Y2hHUFIxKTsKICNpZiBVU0UoSlNW
QUxVRTY0KQotICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVy
LCBiYXNlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHNsb3QuY2FjaGVkT2Zmc2V0KCkpLCB2YWx1ZUdQUik7
CisgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIsIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRPZmZzZXQoKSksIHZhbHVlR1BSKTsKICNlbHNlCi0gICAg
ICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRPZmZzZXQoKSksIHZhbHVlR1BSLCB2YWx1ZVRhZ0dQUik7
CisgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIsIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRPZmZzZXQoKSksIHZhbHVlR1BSLCB2YWx1ZVRhZ0dQUik7
CiAjZW5kaWYKICAgICAgICAgb3BlcmF0aW9uQ2FsbCA9IHN0dWJKaXQuY2FsbCgpOwogICAgICAg
ICBhbGxvY2F0b3IucmVzdG9yZVVzZWRSZWdpc3RlcnNGcm9tU2NyYXRjaEJ1ZmZlcihzdHViSml0
LCBzY3JhdGNoQnVmZmVyLCBzY3JhdGNoR1BSMSk7CkBAIC0xMTExLDkgKzExMDYsOSBAQCBzdGF0
aWMgdm9pZCBlbWl0UHV0VHJhbnNpdGlvblN0dWIoCiAgICAgCiAgICAgc3R1YlJvdXRpbmUgPQog
ICAgICAgICBjcmVhdGVKSVRTdHViUm91dGluZSgKLSAgICAgICAgICAgIEZJTkFMSVpFX0RGR19D
T0RFKAotICAgICAgICAgICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAgICAgICAgICgiREZH
IFB1dEJ5SWQgJXN0cmFuc2l0aW9uIHN0dWIgKCVwIC0+ICVwKSBmb3IgJXMsIHJldHVybiBwb2lu
dCAlcCIsCisgICAgICAgICAgICBGSU5BTElaRV9DT0RFX0ZPUigKKyAgICAgICAgICAgICAgICBl
eGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisgICAgICAgICAgICAgICAgKCJQdXRCeUlk
ICVzdHJhbnNpdGlvbiBzdHViICglcCAtPiAlcCkgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAog
ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUtPm91dE9mTGluZUNhcGFjaXR5KCkgIT0gb2xk
U3RydWN0dXJlLT5vdXRPZkxpbmVDYXBhY2l0eSgpID8gInJlYWxsb2NhdGluZyAiIDogIiIsCiAg
ICAgICAgICAgICAgICAgICAgIG9sZFN0cnVjdHVyZSwgc3RydWN0dXJlLAogICAgICAgICAgICAg
ICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9jaygpKS5kYXRhKCksIHN0dWJJbmZvLmNh
bGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KApAQCAtMTM5NCw5ICsxMzg5LDkgQEAgc3Rh
dGljIGJvb2wgdHJ5UmVwYXRjaEluKAogCiAgICAgICAgIGxpbmtSZXN0b3JlU2NyYXRjaChwYXRj
aEJ1ZmZlciwgbmVlZFRvUmVzdG9yZVNjcmF0Y2gsIHN1Y2Nlc3MsIGZhaWwsIGZhaWx1cmVDYXNl
cywgc3VjY2Vzc0xhYmVsLCBzbG93Q2FzZUxhYmVsKTsKICAgICAgICAgCi0gICAgICAgIHN0dWJS
b3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfREZHX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1
ZmZlciwKLSAgICAgICAgICAgICgiREZHIEluIChmb3VuZCA9ICVzKSBzdHViIGZvciAlcywgcmV0
dXJuIHBvaW50ICVwIiwKKyAgICAgICAgc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9T
VFVCKAorICAgICAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVyLAorICAgICAg
ICAgICAgKCJJbiAoZm91bmQgPSAlcykgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCiAg
ICAgICAgICAgICAgICAgd2FzRm91bmQgPyAieWVzIiA6ICJubyIsIHRvQ1N0cmluZygqZXhlYy0+
Y29kZUJsb2NrKCkpLmRhdGEoKSwKICAgICAgICAgICAgICAgICBzdWNjZXNzTGFiZWwuZXhlY3V0
YWJsZUFkZHJlc3MoKSkpOwogICAgIH0KQEAgLTE0MTksMTcgKzE0MTQsMTkgQEAgdm9pZCByZXBh
dGNoSW4oCiAgICAgcmVwYXRjaENhbGwoZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLmNhbGxS
ZXR1cm5Mb2NhdGlvbiwgb3BlcmF0aW9uSW4pOwogfQogCi1zdGF0aWMgdm9pZCBsaW5rU2xvd0Zv
cihSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVyLCBWTSogdm0sIENhbGxMaW5rSW5mbyYgY2Fs
bExpbmtJbmZvLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCitzdGF0aWMgdm9pZCBsaW5r
U2xvd0ZvcigKKyAgICBSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVyLCBWTSogdm0sIENhbGxM
aW5rSW5mbyYgY2FsbExpbmtJbmZvLAorICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwg
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKLSAgICBpZiAoa2luZCA9PSBD
b2RlRm9yQ2FsbCkgewotICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8u
Y2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJh
dG9yKS5jb2RlKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEFTU0VSVChraW5kID09
IENvZGVGb3JDb25zdHJ1Y3QpOwotICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5m
by5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRDVElTdHViKHZpcnR1YWxDb25zdHJ1Y3RUaHVu
a0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGluaygKKyAgICAgICAg
Y2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwKKyAgICAgICAgdm0tPmdldENUSVN0dWIo
dmlydHVhbFRodW5rR2VuZXJhdG9yRm9yKGtpbmQsIHJlZ2lzdGVycykpLmNvZGUoKSk7CiB9CiAK
LXZvaWQgbGlua0ZvcihFeGVjU3RhdGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZv
LCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgY29kZVB0ciwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQordm9p
ZCBsaW5rRm9yKAorICAgIEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0lu
Zm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLAorICAgIEpTRnVuY3Rpb24qIGNhbGxlZSwg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2lu
ZCwKKyAgICBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIEFTU0VS
VCghY2FsbExpbmtJbmZvLnN0dWIpOwogICAgIApAQCAtMTQ0NSwzMSArMTQ0MiwzOCBAQCB2b2lk
IGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luCiAgICAgQVNTRVJUKCFjYWxsTGlu
a0luZm8uaXNMaW5rZWQoKSk7CiAgICAgY2FsbExpbmtJbmZvLmNhbGxlZS5zZXQoZXhlYy0+Y2Fs
bGVyRnJhbWUoKS0+dm0oKSwgY2FsbExpbmtJbmZvLmhvdFBhdGhCZWdpbiwgY2FsbGVyQ29kZUJs
b2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVlKTsKICAgICBjYWxsTGlua0luZm8ubGFzdFNl
ZW5DYWxsZWUuc2V0KGV4ZWMtPmNhbGxlckZyYW1lKCktPnZtKCksIGNhbGxlckNvZGVCbG9jay0+
b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7CisgICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJs
eUZvcihjYWxsZXJDb2RlQmxvY2spKQorICAgICAgICBkYXRhTG9nKCJMaW5raW5nIGNhbGwgaW4g
IiwgKmNhbGxlckNvZGVCbG9jaywgIiBhdCAiLCBjYWxsTGlua0luZm8uY29kZU9yaWdpbiwgIiB0
byAiLCBwb2ludGVyRHVtcChjYWxsZWVDb2RlQmxvY2spLCAiLCBlbnRyeXBvaW50IGF0ICIsIGNv
ZGVQdHIsICJcbiIpOwogICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5ob3RQ
YXRoT3RoZXIsIGNvZGVQdHIpOwogICAgIAogICAgIGlmIChjYWxsZWVDb2RlQmxvY2spCiAgICAg
ICAgIGNhbGxlZUNvZGVCbG9jay0+bGlua0luY29taW5nQ2FsbChleGVjLT5jYWxsZXJGcmFtZSgp
LCAmY2FsbExpbmtJbmZvKTsKICAgICAKICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewot
ICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0
aW9uLCB2bS0+Z2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcikuY29kZSgp
KTsKKyAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5M
b2NhdGlvbiwgdm0tPmdldENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3JGb3Io
cmVnaXN0ZXJzKSkuY29kZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICBB
U1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICBsaW5rU2xvd0ZvcihyZXBhdGNo
QnVmZmVyLCB2bSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICBsaW5rU2xv
d0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ29uc3RydWN0LCBy
ZWdpc3RlcnMpOwogfQogCi12b2lkIGxpbmtTbG93Rm9yKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExp
bmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK3ZvaWQg
bGlua1Nsb3dGb3IoCisgICAgRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5r
SW5mbywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLAorICAgIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2sgPSBl
eGVjLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKTsKICAgICBWTSogdm0gPSBjYWxsZXJDb2Rl
QmxvY2stPnZtKCk7CiAgICAgCiAgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNhbGxl
ckNvZGVCbG9jayk7CiAgICAgCi0gICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNh
bGxMaW5rSW5mbywga2luZCk7CisgICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNh
bGxMaW5rSW5mbywga2luZCwgcmVnaXN0ZXJzKTsKIH0KIAotdm9pZCBsaW5rQ2xvc3VyZUNhbGwo
RXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBj
YWxsZWVDb2RlQmxvY2ssIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFeGVjdXRhYmxlQmFzZSogZXhl
Y3V0YWJsZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIpCit2b2lkIGxpbmtDbG9zdXJl
Q2FsbCgKKyAgICBFeGVjU3RhdGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBD
b2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXhl
Y3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyLAor
ICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgQVNTRVJUKCFj
YWxsTGlua0luZm8uc3R1Yik7CiAgICAgCkBAIC0xNDgyLDYgKzE0ODYsMTUgQEAgdm9pZCBsaW5r
Q2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYQogICAgIAogICAgIENDYWxsSGVscGVyczo6
SnVtcExpc3Qgc2xvd1BhdGg7CiAgICAgCisgICAgcHRyZGlmZl90IG9mZnNldFRvRnJhbWUgPSAt
c2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpOworCisgICAgaWYgKCFBU1NFUlRfRElTQUJMRUQpIHsK
KyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG9rQXJndW1lbnRDb3VudCA9IHN0dWJKaXQuYnJh
bmNoMzIoCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkJlbG93LCBDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRy
ZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6QXJndW1lbnRDb3VudCkgKyBvZmZz
ZXRUb0ZyYW1lICsgUGF5bG9hZE9mZnNldCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEw
MDAwMDAwKSk7CisgICAgICAgIHN0dWJKaXQuYnJlYWtwb2ludCgpOworICAgICAgICBva0FyZ3Vt
ZW50Q291bnQubGluaygmc3R1YkppdCk7CisgICAgfQorCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAg
ICAvLyBXZSBjYW4gc2FmZWx5IGNsb2JiZXIgZXZlcnl0aGluZyBleGNlcHQgdGhlIGNhbGxlZUdQ
Ui4gV2UgY2FuJ3QgcmVseSBvbiB0YWdNYXNrUmVnaXN0ZXIKICAgICAvLyBiZWluZyBzZXQuIFNv
IHdlIGRvIHRoaXMgdGhlIGhhcmQgd2F5LgpAQCAtMTUwNywxOCArMTUyMCwxOCBAQCB2b2lkIGxp
bmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIENhCiAgICAgc3R1YkppdC5sb2FkUHRyKAog
ICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY2FsbGVlR1BSLCBKU0Z1bmN0aW9uOjpvZmZz
ZXRPZlNjb3BlQ2hhaW4oKSksCiAgICAgICAgIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKLQor
ICAgIAogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3R1YkppdC5zdG9yZTY0KAogICAgICAgICBH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihS
ZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSkpOworICAgICAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzdGF0aWNfY2Fz
dDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSArIG9m
ZnNldFRvRnJhbWUpKTsKICNlbHNlCiAgICAgc3R1YkppdC5zdG9yZVB0cigKICAgICAgICAgR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIsCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVn
aXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZh
bHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7CisgICAgICAgIENDYWxsSGVscGVyczo6
QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19jYXN0
PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JK
RUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSArIG9m
ZnNldFRvRnJhbWUpKTsKICAgICBzdHViSml0LnN0b3JlMzIoCiAgICAgICAgIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZf
dD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JKRUNUX09GRlNF
VE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSk7CisgICAgICAgIENDYWxs
SGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0
YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hh
aW4pICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcp
ICsgb2Zmc2V0VG9GcmFtZSkpOwogI2VuZGlmCiAgICAgCiAgICAgQXNzZW1ibHlIZWxwZXJzOjpD
YWxsIGNhbGwgPSBzdHViSml0Lm5lYXJDYWxsKCk7CkBAIC0xNTI5LDIwICsxNTQyLDI0IEBAIHZv
aWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2EKICNpZiBVU0UoSlNWQUxVRTMy
XzY0KQogICAgIHN0dWJKaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpDZWxsVGFnKSwgR1BSSW5mbzo6cmVnVDEpOwogI2VuZGlmCi0gICAgc3R1YkppdC5tb3ZlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9u
LmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBHUFJJbmZvOjpub25BcmdHUFIyKTsKLSAgICBzdHViSml0
LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86Om5vbkFyZ0dQUjIpOwor
ICAgIHN0dWJKaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoY2FsbExpbmtJbmZv
LmNhbGxSZXR1cm5Mb2NhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSwgR1BSSW5mbzo6cmVnVDIp
OworICAgIAorICAgIHN0dWJKaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BS
SW5mbzo6cmVnVDIpOwogICAgIEFzc2VtYmx5SGVscGVyczo6SnVtcCBzbG93ID0gc3R1YkppdC5q
dW1wKCk7CiAgICAgCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZzdHViSml0LCBj
YWxsZXJDb2RlQmxvY2spOwogICAgIAogICAgIHBhdGNoQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rp
b25QdHIoY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpKSk7Ci0gICAgcGF0Y2hCdWZmZXIubGlu
ayhkb25lLCBjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoMCkp
OwotICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvdywgQ29kZUxvY2F0aW9uTGFiZWwodm0tPmdldENU
SVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKSk7CisgICAgaWYgKEpJVENv
ZGU6OmlzT3B0aW1pemluZ0pJVChjYWxsZXJDb2RlQmxvY2stPmppdFR5cGUoKSkpCisgICAgICAg
IHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5s
YWJlbEF0T2Zmc2V0KDApKTsKKyAgICBlbHNlCisgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9u
ZSwgY2FsbExpbmtJbmZvLmhvdFBhdGhPdGhlci5sYWJlbEF0T2Zmc2V0KDApKTsKKyAgICBwYXRj
aEJ1ZmZlci5saW5rKHNsb3csIENvZGVMb2NhdGlvbkxhYmVsKHZtLT5nZXRDVElTdHViKHZpcnR1
YWxUaHVua0dlbmVyYXRvckZvcihDb2RlRm9yQ2FsbCwgcmVnaXN0ZXJzKSkuY29kZSgpKSk7CiAg
ICAgCiAgICAgUmVmUHRyPENsb3N1cmVDYWxsU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lID0gYWRv
cHRSZWYobmV3IENsb3N1cmVDYWxsU3R1YlJvdXRpbmUoCi0gICAgICAgIEZJTkFMSVpFX0RGR19D
T0RFKAotICAgICAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICAgICAoIkRGRyBjbG9zdXJl
IGNhbGwgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCwgdGFyZ2V0ICVwICglcykiLAorICAg
ICAgICBGSU5BTElaRV9DT0RFX0ZPUigKKyAgICAgICAgICAgIGNhbGxlckNvZGVCbG9jaywgcGF0
Y2hCdWZmZXIsCisgICAgICAgICAgICAoIkNsb3N1cmUgY2FsbCBzdHViIGZvciAlcywgcmV0dXJu
IHBvaW50ICVwLCB0YXJnZXQgJXAgKCVzKSIsCiAgICAgICAgICAgICAgICAgdG9DU3RyaW5nKCpj
YWxsZXJDb2RlQmxvY2spLmRhdGEoKSwgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5s
YWJlbEF0T2Zmc2V0KDApLmV4ZWN1dGFibGVBZGRyZXNzKCksCiAgICAgICAgICAgICAgICAgY29k
ZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpLCB0b0NTdHJpbmcocG9pbnRlckR1bXAoY2FsbGVlQ29k
ZUJsb2NrKSkuZGF0YSgpKSksCiAgICAgICAgICp2bSwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4
ZWN1dGFibGUoKSwgc3RydWN0dXJlLCBleGVjdXRhYmxlLCBjYWxsTGlua0luZm8uY29kZU9yaWdp
bikpOwpAQCAtMTU1Miw3ICsxNTY5LDcgQEAgdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRl
KiBleGVjLCBDYQogICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKAogICAgICAgICBS
ZXBhdGNoQnVmZmVyOjpzdGFydE9mQnJhbmNoUHRyV2l0aFBhdGNoT25SZWdpc3RlcihjYWxsTGlu
a0luZm8uaG90UGF0aEJlZ2luKSwKICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwoc3R1YlJvdXRp
bmUtPmNvZGUoKS5jb2RlKCkpKTsKLSAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwg
Y2FsbExpbmtJbmZvLCBDb2RlRm9yQ2FsbCk7CisgICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZl
ciwgdm0sIGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwsIHJlZ2lzdGVycyk7CiAgICAgCiAgICAg
Y2FsbExpbmtJbmZvLnN0dWIgPSBzdHViUm91dGluZS5yZWxlYXNlKCk7CiAgICAgCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDkgKzQx
LDkgQEAgdm9pZCBidWlsZEdldEJ5SURQcm90b0xpc3QoRXhlY1N0YXRlKiwgSgogdm9pZCByZXBh
dGNoUHV0QnlJRChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3Qg
UHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsKIHZvaWQgYnVp
bGRQdXRCeUlkTGlzdChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiwgY29u
c3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsKIHZvaWQg
cmVwYXRjaEluKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIGNvbnN0IElkZW50aWZpZXImLCBib29sIHdh
c0ZvdW5kLCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwotdm9pZCBs
aW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIEpTRnVuY3Rpb24q
IGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsK
LXZvaWQgbGlua1Nsb3dGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCk7Ci12b2lkIGxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqLCBDYWxsTGlua0lu
Zm8mLCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBFeGVjdXRhYmxlQmFzZSosIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cik7Cit2b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29k
ZUJsb2NrKiwgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIsIENvZGVT
cGVjaWFsaXphdGlvbktpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSk7Cit2b2lkIGxpbmtT
bG93Rm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVTcGVjaWFsaXphdGlvbktpbmQs
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSk7Cit2b2lkIGxpbmtDbG9zdXJlQ2FsbChFeGVjU3Rh
dGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBFeGVjdXRhYmxlQmFz
ZSosIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKTsKIHZv
aWQgcmVzZXRHZXRCeUlEKFJlcGF0Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9p
ZCByZXNldFB1dEJ5SUQoUmVwYXRjaEJ1ZmZlciYsIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lk
IHJlc2V0SW4oUmVwYXRjaEJ1ZmZlciYsIFN0cnVjdHVyZVN0dWJJbmZvJik7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5r
SklULmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIFNwZWNpYWxpemVkVGh1bmtKSVQoVk0qIHZtLCBpbnQgZXhwZWN0ZWRBcmdDb3VudCkK
ICAgICAgICAgICAgIDogSlNJbnRlcmZhY2VKSVQodm0pCiAgICAgICAgIHsKKyAgICAgICAgICAg
IGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHdlIGhh
dmUgdGhlIGV4cGVjdGVkIG51bWJlciBvZiBhcmd1bWVudHMKICAgICAgICAgICAgIG1fZmFpbHVy
ZXMuYXBwZW5kKGJyYW5jaDMyKE5vdEVxdWFsLCBwYXlsb2FkRm9yKEpTU3RhY2s6OkFyZ3VtZW50
Q291bnQpLCBUcnVzdGVkSW1tMzIoZXhwZWN0ZWRBcmdDb3VudCArIDEpKSk7CiAgICAgICAgIH0K
QEAgLTQ4LDYgKzQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGV4cGxpY2l0IFNwZWNp
YWxpemVkVGh1bmtKSVQoVk0qIHZtKQogICAgICAgICAgICAgOiBKU0ludGVyZmFjZUpJVCh2bSkK
ICAgICAgICAgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICAgICAg
fQogICAgICAgICAKICAgICAgICAgdm9pZCBsb2FkRG91YmxlQXJndW1lbnQoaW50IGFyZ3VtZW50
LCBGUFJlZ2lzdGVySUQgZHN0LCBSZWdpc3RlcklEIHNjcmF0Y2gpCkBAIC05Nyw3ICs5OSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoc3JjICE9IHJlZ1Qw
KQogICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdUMCk7Ci0gICAgICAgICAgICBsb2FkUHRy
KEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQo
KSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgICAgICAgICByZXQoKTsKICAgICAgICAgfQogI2Vsc2UKQEAgLTEwNSw3ICsxMDcs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUX1VOVVNF
RChwYXlsb2FkLCBwYXlsb2FkID09IHJlZ1QwKTsKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQo
dGFnLCB0YWcgPT0gcmVnVDEpOwotICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFt
ZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdp
c3Rlcik7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAg
cmV0KCk7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtMTM2LDcgKzEzOCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICAgICAgbG93Tm9uWmVyby5saW5rKHRoaXMpOwogICAgICAgICAgICAgaGln
aE5vblplcm8ubGluayh0aGlzKTsKICNlbmRpZgotICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNz
KGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpLCBjYWxs
RnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
ICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KIApAQCAtMTQ1LDcgKzE0Nyw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICAgICAgaWYgKHNyYyAhPSByZWdUMCkKICAgICAgICAgICAgICAgICBt
b3ZlKHNyYywgcmVnVDApOwogICAgICAgICAgICAgdGFnUmV0dXJuQXNJbnQzMigpOwotICAgICAg
ICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxl
ckZyYW1lT2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAgICBlbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KIApAQCAtMTU0
LDcgKzE1Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgaWYgKHNyYyAhPSByZWdU
MCkKICAgICAgICAgICAgICAgICBtb3ZlKHNyYywgcmVnVDApOwogICAgICAgICAgICAgdGFnUmV0
dXJuQXNKU0NlbGwoKTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdp
c3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIp
OworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIHJldCgp
OwogICAgICAgICB9CiAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9U
aHVua0dlbmVyYXRvcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIsIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2lu
Y2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTU3RhY2suaCIKKyNpbmNsdWRl
ICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJTcGVjaWFsaXplZFRodW5rSklULmgiCiAjaW5jbHVkZSA8d3RmL0lubGlu
ZUFTTS5oPgpAQCAtNjYsMTAgKzY3LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHRocm93RXhj
ZXB0aW9uRnJvbQogICAgIC8vIGV2ZW4gdGhvdWdoIHdlIHdvbid0IHVzZSBpdC4KICAgICBqaXQu
cHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJl
dHVybkdQUik7CiAKLSAgICAvLyBUaGUgQ2FsbEZyYW1lIHJlZ2lzdGVyIHBvaW50cyB0byB0aGUg
KGZhaWxlZCkgY2FsbGVlIGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHBvcCBiYWNrIG9uZSBmcmFtZS4K
LSAgICBqaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KLSAgICBqaXQuc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUo
KTsKKyAgICBqaXQuc2V0dXBBcmd1bWVudHMoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZt
KSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIGppdC5tb3ZlKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGxvb2t1cEV4Y2VwdGlvbkhhbmRs
ZXIpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGpp
dCwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BS
MCk7CkBAIC04MiwyOSArODAsMjggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHRocm93RXhjZXB0
aW9uRnJvbQogc3RhdGljIHZvaWQgc2xvd1BhdGhGb3IoCiAgICAgQ0NhbGxIZWxwZXJzJiBqaXQs
IFZNKiB2bSwgUF9KSVRPcGVyYXRpb25fRSBzbG93UGF0aEZ1bmN0aW9uKQogewotICAgIGppdC5w
cmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMik7Ci0gICAg
ZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMik7Ci0gICAgaml0
LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86Om5vbkFyZ0dQUjIpOwor
ICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgIGppdC5zdG9yZVB0cihHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3RlciwgJnZtLT50b3BDYWxsRnJhbWUpOworICAgIGlmIChtYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBqaXQuc2V0dXBBcmd1bWVudHNFeGVjU3Rh
dGUoKTsKICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYml0d2lzZV9j
YXN0PHZvaWQqPihzbG93UGF0aEZ1bmN0aW9uKSksIEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAg
IGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAgIGpp
dC5jYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOworICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCkKKyAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwogICAgIAogICAgIC8vIFRoaXMgc2xvdyBjYWxsIHdpbGwgcmV0dXJuIHRo
ZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUgZm9sbG93aW5nOgogICAgIC8vIDEpIEV4Y2VwdGlvbiB0
aHJvd2luZyB0aHVuay4KICAgICAvLyAyKSBIb3N0IGNhbGwgcmV0dXJuIHZhbHVlIHJldHVybmVy
IHRoaW5neS4KICAgICAvLyAzKSBUaGUgZnVuY3Rpb24gdG8gY2FsbC4KLSAgICBqaXQuZW1pdEdl
dFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25S
ZXR1cm5HUFIpOwotICAgIGppdC5lbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoMCkpOwotICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihq
aXQsIEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7Ci0gICAgaml0LnJlc3RvcmVS
ZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQ
Uik7CiAgICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpOworICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIGppdC5qdW1wKEdQUklu
Zm86OnJldHVyblZhbHVlR1BSKTsKIH0KIAogc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBs
aW5rRm9yVGh1bmtHZW5lcmF0b3IoCi0gICAgVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQpCisgICAgVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgLy8gVGhlIHJldHVybiBhZGRyZXNz
IGlzIG9uIHRoZSBzdGFjayBvciBpbiB0aGUgbGluayByZWdpc3Rlci4gV2Ugd2lsbCBoZW5jZQog
ICAgIC8vIHNhdmUgdGhlIHJldHVybiBhZGRyZXNzIHRvIHRoZSBjYWxsIGZyYW1lIHdoaWxlIHdl
IG1ha2UgYSBDKysgZnVuY3Rpb24gY2FsbApAQCAtMTE0LDM4ICsxMTEsNTkgQEAgc3RhdGljIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rRm9yVGh1bgogICAgIAogICAgIENDYWxsSGVscGVycyBq
aXQodm0pOwogICAgIAotICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIGtpbmQgPT0gQ29kZUZvckNh
bGwgPyBvcGVyYXRpb25MaW5rQ2FsbCA6IG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3QpOworICAgIHNs
b3dQYXRoRm9yKGppdCwgdm0sIG9wZXJhdGlvbkxpbmtGb3Ioa2luZCwgcmVnaXN0ZXJzKSk7CiAg
ICAgCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIEdMT0JBTF9USFVOS19J
RCk7CiAgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUoCiAgICAgICAgIHBhdGNoQnVmZmVyLAotICAg
ICAgICAoIkxpbmsgJXMgc2xvdyBwYXRoIHRodW5rIiwga2luZCA9PSBDb2RlRm9yQ2FsbCA/ICJj
YWxsIiA6ICJjb25zdHJ1Y3QiKSk7CisgICAgICAgICgiTGluayAlcyVzIHNsb3cgcGF0aCB0aHVu
ayIsIGtpbmQgPT0gQ29kZUZvckNhbGwgPyAiY2FsbCIgOiAiY29uc3RydWN0IiwgcmVnaXN0ZXJz
ID09IE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyA/ICIgdGhhdCBwcmVzZXJ2ZXMgcmVnaXN0ZXJzIiA6
ICIiKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9y
KFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9y
Q2FsbCk7CisgICAgcmV0dXJuIGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNhbGws
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgbGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4g
bGlua0ZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4g
bGlua0ZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0LCBSZWdpc3RlclByZXNl
cnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAotLy8gRm9yIGNsb3N1cmUgb3B0aW1pemF0aW9ucywg
d2Ugb25seSBpbmNsdWRlIGNhbGxzLCBzaW5jZSBpZiB5b3UncmUgdXNpbmcgY2xvc3VyZXMgZm9y
Ci0vLyBvYmplY3QgY29uc3RydWN0aW9uIHRoZW4geW91J3JlIGdvaW5nIHRvIGxvc2UgYmlnIHRp
bWUgYW55d2F5LgotTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbFRodW5rR2Vu
ZXJhdG9yKFZNKiB2bSkKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRoYXRQcmVzZXJ2
ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBsaW5rRm9yVGh1bmtH
ZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtH
ZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0s
IENvZGVGb3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK3N0YXRpYyBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsRm9yVGh1bmtHZW5lcmF0b3IoCisg
ICAgVk0qIHZtLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIEND
YWxsSGVscGVycyBqaXQodm0pOwogICAgIAotICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIG9wZXJh
dGlvbkxpbmtDbG9zdXJlQ2FsbCk7CisgICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwgb3BlcmF0aW9u
TGlua0Nsb3N1cmVDYWxsRm9yKHJlZ2lzdGVycykpOwogICAgIAogICAgIExpbmtCdWZmZXIgcGF0
Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOwotICAgIHJldHVybiBGSU5BTEla
RV9DT0RFKHBhdGNoQnVmZmVyLCAoIkxpbmsgY2xvc3VyZSBjYWxsIHNsb3cgcGF0aCB0aHVuayIp
KTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgKCJMaW5rIGNsb3N1cmUg
Y2FsbCAlcyBzbG93IHBhdGggdGh1bmsiLCByZWdpc3RlcnMgPT0gTXVzdFByZXNlcnZlUmVnaXN0
ZXJzID8gIiB0aGF0IHByZXNlcnZlcyByZWdpc3RlcnMiIDogIiIpKTsKK30KKworLy8gRm9yIGNs
b3N1cmUgb3B0aW1pemF0aW9ucywgd2Ugb25seSBpbmNsdWRlIGNhbGxzLCBzaW5jZSBpZiB5b3Un
cmUgdXNpbmcgY2xvc3VyZXMgZm9yCisvLyBvYmplY3QgY29uc3RydWN0aW9uIHRoZW4geW91J3Jl
IGdvaW5nIHRvIGxvc2UgYmlnIHRpbWUgYW55d2F5LgorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxp
bmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0Ns
b3N1cmVDYWxsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVx
dWlyZWQpOworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsVGhhdFBy
ZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIGxpbmtDbG9z
dXJlQ2FsbEZvclRodW5rR2VuZXJhdG9yKHZtLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOwogfQog
CiBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcigK
LSAgICBWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKKyAgICBWTSogdm0sIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lz
dGVycykKIHsKICAgICAvLyBUaGUgY2FsbGVlIGlzIGluIHJlZ1QwIChmb3IgSlNWQUxVRTMyXzY0
LCB0aGUgdGFnIGlzIGluIHJlZ1QxKS4KICAgICAvLyBUaGUgcmV0dXJuIGFkZHJlc3MgaXMgb24g
dGhlIHN0YWNrLCBvciBpbiB0aGUgbGluayByZWdpc3Rlci4gV2Ugd2lsbCBoZW5jZQpAQCAtMTYw
LDMzICsxNzgsMzQgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsRm9yVAog
ICAgIC8vIHRoZSBERkcga25vd3MgdGhhdCB0aGUgdmFsdWUgaXMgZGVmaW5pdGVseSBhIGNlbGws
IG9yIGRlZmluaXRlbHkgYSBmdW5jdGlvbi4KICAgICAKICNpZiBVU0UoSlNWQUxVRTY0KQorICAg
IGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KFRhZ01hc2spLCBHUFJJbmZvOjpy
ZWdUMik7CisgICAgCiAgICAgc2xvd0Nhc2UuYXBwZW5kKAogICAgICAgICBqaXQuYnJhbmNoVGVz
dDY0KAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMCwg
R1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5v
blplcm8sIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMikpOwogI2Vsc2UKICAgICBzbG93
Q2FzZS5hcHBlbmQoCiAgICAgICAgIGppdC5icmFuY2gzMigKICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6Tm90RXF1YWwsIEdQUkluZm86OnJlZ1QxLAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKICNlbmRpZgotICAgIGppdC5sb2Fk
UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1
cmVPZmZzZXQoKSksIEdQUkluZm86Om5vbkFyZ0dQUjIpOworICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQo
KSksIEdQUkluZm86OnJlZ1QyKTsKICAgICBzbG93Q2FzZS5hcHBlbmQoCiAgICAgICAgIGppdC5i
cmFuY2hQdHIoCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLAotICAgICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86Om5vbkFyZ0dQUjIsIFN0cnVjdHVyZTo6
Y2xhc3NJbmZvT2Zmc2V0KCkpLAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQ
UkluZm86OnJlZ1QyLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwKICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihKU0Z1bmN0aW9uOjppbmZvKCkpKSk7CiAgICAg
CiAgICAgLy8gTm93IHdlIGtub3cgd2UgaGF2ZSBhIEpTRnVuY3Rpb24uCiAgICAgCiAgICAgaml0
LmxvYWRQdHIoCiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwg
SlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLAotICAgICAgICBHUFJJbmZvOjpub25B
cmdHUFIyKTsKLSAgICBzbG93Q2FzZS5hcHBlbmQoCi0gICAgICAgIGppdC5icmFuY2gzMigKLSAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6TGVzc1RoYW4sCi0gICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BSMiwgRXhlY3V0
YWJsZUJhc2U6Om9mZnNldE9mTnVtUGFyYW1ldGVyc0ZvcihraW5kKSksCi0gICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSkpOworICAgICAgICBHUFJJbmZvOjpyZWdUMik7
CisgICAgaml0LmxvYWRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygKKyAgICAg
ICAgICAgIEdQUkluZm86OnJlZ1QyLCBFeGVjdXRhYmxlQmFzZTo6b2Zmc2V0T2ZKSVRDb2RlV2l0
aEFyaXR5Q2hlY2tGb3Ioa2luZCwgcmVnaXN0ZXJzKSksCisgICAgICAgIEdQUkluZm86OnJlZ1Qy
KTsKKyAgICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpa
ZXJvLCBHUFJJbmZvOjpyZWdUMikpOwogICAgIAogICAgIC8vIE5vdyB3ZSBrbm93IHRoYXQgd2Ug
aGF2ZSBhIENvZGVCbG9jaywgYW5kIHdlJ3JlIGNvbW1pdHRlZCB0byBtYWtpbmcgYSBmYXN0CiAg
ICAgLy8gY2FsbC4KQEAgLTE5NSw2MiArMjE0LDYwIEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgdmlydHVhbEZvclQKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OnJlZ1QwLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNjb3BlQ2hhaW4oKSksCiAgICAgICAgIEdQUklu
Zm86OnJlZ1QxKTsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIGppdC5zdG9yZTY0KAotICAgICAg
ICBHUFJJbmZvOjpyZWdUMSwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKAotICAgICAg
ICAgICAgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICBzdGF0aWNfY2Fz
dDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbikpOwor
ICAgIGppdC5lbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZShHUFJJbmZvOjpy
ZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAjZWxzZQotICAgIGppdC5zdG9yZVB0cigKLSAg
ICAgICAgR1BSSW5mbzo6cmVnVDEsCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygKLSAg
ICAgICAgICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4g
KwotICAgICAgICAgICAgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFz
Qml0cy5wYXlsb2FkKSkpOwotICAgIGppdC5zdG9yZTMyKAotICAgICAgICBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKAotICAgICAgICAgICAgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAg
ICAgICBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6
U2NvcGVDaGFpbiArCi0gICAgICAgICAgICBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVz
Y3JpcHRvciwgYXNCaXRzLnRhZykpKTsKKyAgICBqaXQuZW1pdFB1dFBheWxvYWRUb0NhbGxGcmFt
ZUhlYWRlckJlZm9yZVByb2xvZ3VlKEdQUkluZm86OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWlu
KTsKKyAgICBqaXQuZW1pdFB1dFRhZ1RvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCisgICAgICAgIEpTU3Rh
Y2s6OlNjb3BlQ2hhaW4pOwogI2VuZGlmCiAgICAgCi0gICAgaml0LmxvYWRQdHIoCi0gICAgICAg
IENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpub25BcmdHUFIyLCBFeGVjdXRhYmxlQmFz
ZTo6b2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCkpLAotICAgICAgICBHUFJJ
bmZvOjpyZWdUMCk7Ci0gICAgCiAgICAgLy8gTWFrZSBhIHRhaWwgY2FsbC4gVGhpcyB3aWxsIHJl
dHVybiBiYWNrIHRvIEpJVCBjb2RlLgotICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQ
UkluZm86OnJlZ1QwKTsKLSAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMCk7CisgICAgZW1pdFBv
aW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5qdW1wKEdQUklu
Zm86OnJlZ1QyKTsKIAogICAgIHNsb3dDYXNlLmxpbmsoJmppdCk7CiAgICAgCiAgICAgLy8gSGVy
ZSB3ZSBkb24ndCBrbm93IGFueXRoaW5nLCBzbyByZXZlcnQgdG8gdGhlIGZ1bGwgc2xvdyBwYXRo
LgogICAgIAotICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIGtpbmQgPT0gQ29kZUZvckNhbGwgPyBv
cGVyYXRpb25WaXJ0dWFsQ2FsbCA6IG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3QpOworICAgIHNs
b3dQYXRoRm9yKGppdCwgdm0sIG9wZXJhdGlvblZpcnR1YWxGb3Ioa2luZCwgcmVnaXN0ZXJzKSk7
CiAgICAgCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIEdMT0JBTF9USFVO
S19JRCk7CiAgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUoCiAgICAgICAgIHBhdGNoQnVmZmVyLAot
ICAgICAgICAoIlZpcnR1YWwgJXMgc2xvdyBwYXRoIHRodW5rIiwga2luZCA9PSBDb2RlRm9yQ2Fs
bCA/ICJjYWxsIiA6ICJjb25zdHJ1Y3QiKSk7CisgICAgICAgICgiVmlydHVhbCAlcyVzIHNsb3cg
cGF0aCB0aHVuayIsIGtpbmQgPT0gQ29kZUZvckNhbGwgPyAiY2FsbCIgOiAiY29uc3RydWN0Iiwg
cmVnaXN0ZXJzID09IE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyA/ICIgdGhhdCBwcmVzZXJ2ZXMgcmVn
aXN0ZXJzIiA6ICIiKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ2FsbFRo
dW5rR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gdmlydHVhbEZvclRodW5rR2VuZXJh
dG9yKHZtLCBDb2RlRm9yQ2FsbCk7CisgICAgcmV0dXJuIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRv
cih2bSwgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQog
CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENvbnN0cnVjdFRodW5rR2VuZXJhdG9yKFZN
KiB2bSkKIHsKLSAgICByZXR1cm4gdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9y
Q29uc3RydWN0KTsKKyAgICByZXR1cm4gdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2Rl
Rm9yQ29uc3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAotc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENh
bGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4g
dmlydHVhbEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVn
aXN0ZXJzKTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDb25zdHJ1Y3RUaGF0
UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gdmlydHVh
bEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0LCBNdXN0UHJlc2VydmVSZWdp
c3RlcnMpOworfQorCitlbnVtIFRodW5rRW50cnlUeXBlIHsgRW50ZXJWaWFDYWxsLCBFbnRlclZp
YUp1bXAgfTsKKworc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0
b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFRodW5rRW50cnlUeXBlIGVu
dHJ5VHlwZSA9IEVudGVyVmlhQ2FsbCkKIHsKICAgICBpbnQgZXhlY3V0YWJsZU9mZnNldFRvRnVu
Y3Rpb24gPSBOYXRpdmVFeGVjdXRhYmxlOjpvZmZzZXRPZk5hdGl2ZUZ1bmN0aW9uRm9yKGtpbmQp
OwogICAgIAogICAgIEpTSW50ZXJmYWNlSklUIGppdCh2bSk7Ci0gICAgCisKKyAgICBpZiAoZW50
cnlUeXBlID09IEVudGVyVmlhQ2FsbCkKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3Vl
KCk7CisKICAgICBqaXQuZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKDAsIEpTU3Rh
Y2s6OkNvZGVCbG9jayk7CiAgICAgaml0LnN0b3JlUHRyKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJh
bWVSZWdpc3RlciwgJnZtLT50b3BDYWxsRnJhbWUpOwogCkBAIC0yNjEsMjIgKzI3OCwxOCBAQCBz
dGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgaml0LmVtaXRHZXRG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIEpTSW50ZXJmYWNlSklU
OjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQuZW1pdFB1dENlbGxUb0Nh
bGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4p
OwogCi0gICAgaml0LnBlZWsoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuZW1pdFB1
dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLQogICAg
IC8vIENhbGxpbmcgY29udmVudGlvbjogICAgICBmKGVjeCwgZWR4LCAuLi4pOwogICAgIC8vIEhv
c3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwogICAgIGppdC5tb3ZlKEpTSW50
ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplY3gpOwogCi0gICAg
aml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZvaWQq
KSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNr
IGFmdGVyIGNhbGwuCisgICAgaml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMy
KDgpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFj
ayBhZnRlciBwcm9sb2d1ZS4KIAogICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgaml0LmVt
aXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QxKTsKICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0lu
dGVyZmFjZUpJVDo6cmVnVDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAs
IEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBj
YWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgogICAgIGpp
dC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgZXhl
Y3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIAotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VK
SVQ6OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZih2b2lkKikpLCBKU0ludGVyZmFjZUpJVDo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0
ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAogI2Vs
aWYgQ1BVKFg4Nl82NCkKICAgICAvLyBMb2FkIGNhbGxlciBmcmFtZSdzIHNjb3BlIGNoYWluIGlu
dG8gdGhpcyBjYWxsZnJhbWUgc28gdGhhdCB3aGF0ZXZlciB3ZSBjYWxsIGNhbgpAQCAtMjg0LDIz
ICsyOTcsMTUgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogICAg
IGppdC5lbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTSW50ZXJmYWNl
SklUOjpyZWdUMCk7CiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3Rh
Y2s6OlNjb3BlQ2hhaW4sIEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QwKTsKICAgICBqaXQuZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJ
VDo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwotCi0gICAgaml0LnBlZWsoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIo
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLQogI2lmICFPUyhXSU5ET1dTKQogICAgIC8vIENhbGxp
bmcgY29udmVudGlvbjogICAgICBmKGVkaSwgZXNpLCBlZHgsIGVjeCwgLi4uKTsKICAgICAvLyBI
b3N0IGZ1bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsKICAgICBqaXQubW92ZShKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWRpKTsKIAotICAg
IGppdC5zdWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZihpbnQ2
NF90KSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0
YWNrIGFmdGVyIGNhbGwuCi0KICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIo
SlNTdGFjazo6Q2FsbGVlLCBYODZSZWdpc3RlcnM6OmVzaSk7CiAgICAgaml0LmxvYWRQdHIoSlNJ
bnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplc2ksIEpTRnVuY3Rpb246Om9mZnNl
dE9mRXhlY3V0YWJsZSgpKSwgWDg2UmVnaXN0ZXJzOjpyOSk7Ci0gICAgaml0Lm1vdmUoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBF
YWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJv
bSBzdGFjay4KICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3Rl
cnM6OnI5LCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwogCi0gICAgaml0LmFkZFB0cihK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKGludDY0X3QpKSwgSlNJbnRl
cmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICNlbHNlCiAgICAgLy8gQ2FsbGluZyBj
b252ZW50aW9uOiAgICAgIGYoZWN4LCBlZHgsIHI4LCByOSwgLi4uKTsKICAgICAvLyBIb3N0IGZ1
bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsKQEAgLTMxMSw3ICszMTYsNiBAQCBzdGF0
aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAKICAgICBqaXQuZW1pdEdldEZy
b21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBYODZSZWdpc3RlcnM6OmVkeCk7
CiAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjpl
ZHgsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgWDg2UmVnaXN0ZXJzOjpyOSk7
Ci0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6Y2Fs
bEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVy
IHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJ
VDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5LCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikp
OwogCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDQgKiBzaXpl
b2YoaW50NjRfdCkgKyAxNiAtIHNpemVvZihpbnQ2NF90KSksIEpTSW50ZXJmYWNlSklUOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CkBAIC0zMzAsMjggKzMzNCwxOCBAQCBzdGF0aWMgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVh
ZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgQVJNNjRS
ZWdpc3RlcnM6OngzKTsKICAgICBqaXQuZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihKU0lu
dGVyZmFjZUpJVDo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogCi0gICAgaml0LnByZXNl
cnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMpOyAvLyBDYWxs
ZWUgcHJlc2VydmVkCi0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEFS
TTY0UmVnaXN0ZXJzOjpscik7Ci0KICAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25hdHVyZTogZihF
eGVjU3RhdGUqKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIEFSTTY0UmVnaXN0ZXJzOjp4MCk7CiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVI
ZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBBUk02NFJlZ2lzdGVyczo6eDEpOwogICAgIGppdC5s
b2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4MSwgSlNGdW5j
dGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBBUk02NFJlZ2lzdGVyczo6eDIpOwotICAgIGpp
dC5tb3ZlKEFSTTY0UmVnaXN0ZXJzOjp4MywgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lz
dGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBs
b2FkaW5nIGZyb20gc3RhY2suCiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3Mo
QVJNNjRSZWdpc3RlcnM6OngyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwotCi0gICAg
aml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEpTSW50ZXJmYWNlSklUOjpyZWdU
Myk7Ci0KICNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpIHx8IENQVShNSVBTKQogICAgIC8vIExv
YWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFtZSBzbyB0aGF0
IHdoYXRldmVyIHdlIGNhbGwgY2FuIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCiAgICAgaml0LmVt
aXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QyKTsKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2Nv
cGVDaGFpbiwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwog
ICAgIGppdC5lbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdU
MSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAKLSAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNz
QWZ0ZXJDYWxsKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKLSAg
ICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QzKTsKLQogI2lmIENQVShNSVBTKQogICAgIC8vIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGZvciAo
dW51c2VkKSAxNiBieXRlcyAoOC1ieXRlIGFsaWduZWQpIGZvciA0IGFyZ3VtZW50cy4KICAgICBq
aXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYpLCBKU0ludGVyZmFjZUpJ
VDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMzYyLDcgKzM1Niw2IEBAIHN0YXRpYyBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJ
VDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjApOwogCiAg
ICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwgSlNJ
bnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMSk7Ci0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QyLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJl
c3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4K
ICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6
YXJndW1lbnRHUFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJm
YWNlSklUOjpyZWdUMik7CiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwogCkBAIC0z
NzAsOCArMzYzLDYgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZQog
ICAgIC8vIFJlc3RvcmUgc3RhY2sgc3BhY2UKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIoMTYpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIp
OwogI2VuZGlmCi0KLSAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICNlbHNlCiAjZXJyb3IgIkpJVCBub3Qgc3VwcG9ydGVkIG9u
IHRoaXMgcGxhdGZvcm0uIgogICAgIFVOVVNFRF9QQVJBTShleGVjdXRhYmxlT2Zmc2V0VG9GdW5j
dGlvbik7CkBAIC0zODksMjUgKzM4MCwyMSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IG5hdGl2ZUZvckdlCiAgICAgICAgIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6RW1wdHlWYWx1ZVRhZykpOwogI2VuZGlmCiAKKyAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICAgICAvLyBSZXR1cm4uCiAgICAgaml0LnJldCgpOwogCiAgICAgLy8gSGFuZGxlIGFu
IGV4Y2VwdGlvbgogICAgIGV4Y2VwdGlvbkhhbmRsZXIubGluaygmaml0KTsKIAotICAgIC8vIEdy
YWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRl
ckNhbGwoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICAKLSAgICBqaXQubW92ZShKU0ludGVy
ZmFjZUpJVDo6VHJ1c3RlZEltbVB0cigmdm0tPmV4Y2VwdGlvbkxvY2F0aW9uKSwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQuc3RvcmVQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBK
U0ludGVyZmFjZUpJVDo6cmVnVDIpOwotCiAgICAgaml0LnN0b3JlUHRyKEpTSW50ZXJmYWNlSklU
OjpjYWxsRnJhbWVSZWdpc3RlciwgJnZtLT50b3BDYWxsRnJhbWUpOwogCiAjaWYgQ1BVKFg4Nikg
JiYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVz
dGVkSW1tMzIoLTEyKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAg
ICBqaXQucHVzaChKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGppdC5s
b2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVS
ZWdpc3RlciksIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CisgICAgaml0LnB1c2goSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QwKTsKICNlbHNlCi0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxG
cmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKKyAgICBqaXQubG9h
ZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVn
aXN0ZXIpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKICNlbmRpZgogICAgIGppdC5t
b3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tUHRyKEZ1bmN0aW9uUHRyKG9wZXJhdGlvblZN
SGFuZGxlRXhjZXB0aW9uKS52YWx1ZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBq
aXQuY2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwpAQCAtNDE4LDcgKzQwNSw3IEBAIHN0YXRp
YyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKICAgICBqaXQuanVtcFRvRXhjZXB0
aW9uSGFuZGxlcigpOwogCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIEdM
T0JBTF9USFVOS19JRCk7Ci0gICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgi
bmF0aXZlICVzIHRyYW1wb2xpbmUiLCB0b0NTdHJpbmcoa2luZCkuZGF0YSgpKSk7CisgICAgcmV0
dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgibmF0aXZlICVzJXMgdHJhbXBvbGluZSIs
IGVudHJ5VHlwZSA9PSBFbnRlclZpYUp1bXAgPyAiVGFpbCAiIDogIiIsIHRvQ1N0cmluZyhraW5k
KS5kYXRhKCkpKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNhbGxHZW5lcmF0
b3IoVk0qIHZtKQpAQCAtNDI2LDYgKzQxMywxMSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0
aXZlQ2FsbEdlbmVyYXRvCiAgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgQ29kZUZv
ckNhbGwpOwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlVGFpbENhbGxHZW5lcmF0
b3IoVk0qIHZtKQoreworICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVGb3JD
YWxsLCBFbnRlclZpYUp1bXApOworfQorCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlQ29u
c3RydWN0R2VuZXJhdG9yKFZNKiB2bSkKIHsKICAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9y
KHZtLCBDb2RlRm9yQ29uc3RydWN0KTsKQEAgLTQzNSwxNCArNDI3LDE2IEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKIHsKICAgICBKU0ludGVyZmFjZUpJVCBqaXQo
dm0pOwogCi0gICAgLy8gV2UgZW50ZXIgd2l0aCBmaXh1cCBjb3VudCBpbiByZWdUMAorICAgIC8v
IFdlIGVudGVyIHdpdGggZml4dXAgY291bnQsIGluIGFsaWduZWQgc3RhY2sgdW5pdHMsIGluIHJl
Z1QwIGFuZCB0aGUgcmV0dXJuIHRodW5rIGluCisgICAgLy8gcmVnVDUuIFdlIHVzZSBWTTo6Y3Vy
cmVudFJldHVyblRodW5rUEMgaW5zdGVhZCBvZiByZWdUNSBvbiBYODYtMzIuCiAjaWYgVVNFKEpT
VkFMVUU2NCkKICMgIGlmIENQVShYODZfNjQpCiAgICAgaml0LnBvcChKU0ludGVyZmFjZUpJVDo6
cmVnVDQpOwogIyAgZW5kaWYKKyAgICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0
ZWRJbW0zMihsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QwKTsKICAgICBqaXQubmVnNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubW92
ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjpyZWdU
Myk7Ci0gICAgaml0LmxvYWQzMihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJ
VDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiA4KSwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNz
KEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3Vu
dCAqIHNpemVvZihSZWdpc3RlcikpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5h
ZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRl
clNpemUpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogCiAgICAgLy8gTW92ZSBjdXJyZW50IGZy
YW1lIGRvd24gcmVnVDAgbnVtYmVyIG9mIHNsb3RzCkBAIC00NTIsMTcgKzQ0NiwyNyBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSogdm0pCiAgICAgaml0LmFkZFB0cihKU0lu
dGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwogICAg
IGppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6
OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8oY29weUxvb3As
ICZqaXQpOwogCi0gICAgLy8gRmlsbCBpbiByZWdUMCBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVu
ZGVmaW5lZAorICAgIC8vIEZpbGwgaW4gcmVnVDAgLSAxIG1pc3NpbmcgYXJnIHNsb3RzIHdpdGgg
dW5kZWZpbmVkCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFj
ZUpJVDo6cmVnVDIpOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tNjQo
VmFsdWVVbmRlZmluZWQpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOworICAgIGppdC5hZGQzMihK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwog
ICAgIEpTSW50ZXJmYWNlSklUOjpMYWJlbCBmaWxsVW5kZWZpbmVkTG9vcChqaXQubGFiZWwoKSk7
CiAgICAgaml0LnN0b3JlNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6
QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBK
U0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VK
SVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuYnJh
bmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVk
SW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGZpbGxVbmRlZmluZWRMb29w
LCAmaml0KTsKLQotICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lzdGVyIHRvIGFjY291bnQg
Zm9yIG1pc3NpbmcgYXJncwotICAgIGppdC5sc2hpZnQ2NChKU0ludGVyZmFjZUpJVDo6VHJ1c3Rl
ZEltbTMyKDMpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwotICAgIGppdC5hZGRQdHIoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAg
IAorICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lzdGVyIGFuZCBzdGFjayBwb2ludGVyIHRv
IGFjY291bnQgZm9yIG1pc3NpbmcgYXJncworICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpy
ZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQubHNoaWZ0NjQoSlNJbnRlcmZh
Y2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQu
YWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJl
Z2lzdGVyKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZh
Y2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgIC8vIFNhdmUgdGhlIG9yaWdpbmFs
IHJldHVybiBQQy4KKyAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQo
KSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFj
ZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CisgICAgCisgICAgLy8g
SW5zdGFsbCB0aGUgbmV3IHJldHVybiBQQy4KKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVn
VDUsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdp
c3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CiAKICMgIGlmIENQVShYODZfNjQp
CiAgICAgaml0LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsKQEAgLTQ3Miw5ICs0NzYsMTAg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZtKQogIyAgaWYgQ1BVKFg4
NikKICAgICBqaXQucG9wKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CiAjICBlbmRpZgorICAgIGpp
dC5sc2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKGxvZ1N0YWNrQWxpZ25tZW50
UmVnaXN0ZXJzKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGppdC5uZWczMihKU0lu
dGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJh
bWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLSAgICBqaXQubG9hZDMyKEpTSW50
ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNT
dGFjazo6QXJndW1lbnRDb3VudCAqIDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOworICAgIGpp
dC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc2l6ZW9mKFJlZ2lzdGVyKSksIEpT
SW50ZXJmYWNlSklUOjpyZWdUMik7CiAgICAgaml0LmFkZDMyKEpTSW50ZXJmYWNlSklUOjpUcnVz
dGVkSW1tMzIoSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMik7CiAKICAgICAvLyBNb3ZlIGN1cnJlbnQgZnJhbWUgZG93biByZWdUMCBudW1iZXIgb2Yg
c2xvdHMKQEAgLTQ4Niw4ICs0OTEsOSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1
cChWTSogdm0pCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgp
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwogICAgIGppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2Vt
Ymxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QyKS5saW5rVG8oY29weUxvb3AsICZqaXQpOwogCi0gICAgLy8gRmlsbCBpbiBy
ZWdUMCBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAorICAgIC8vIEZpbGwgaW4gcmVn
VDAgLSAxIG1pc3NpbmcgYXJnIHNsb3RzIHdpdGggdW5kZWZpbmVkCiAgICAgaml0Lm1vdmUoSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOworICAgIGppdC5hZGQz
MihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIp
OwogICAgIEpTSW50ZXJmYWNlSklUOjpMYWJlbCBmaWxsVW5kZWZpbmVkTG9vcChqaXQubGFiZWwo
KSk7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigwKSwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QxKTsKICAgICBqaXQuc3RvcmUzMihKU0ludGVyZmFjZUpJVDo6cmVnVDEs
IE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CkBAIC00OTcsMTAg
KzUwMywyNSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSogdm0pCiAgICAg
aml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDMpOwogICAgIGppdC5icmFuY2hBZGQzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywg
SlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKS5s
aW5rVG8oZmlsbFVuZGVmaW5lZExvb3AsICZqaXQpOwogCi0gICAgLy8gQWRqdXN0IGNhbGwgZnJh
bWUgcmVnaXN0ZXIgdG8gYWNjb3VudCBmb3IgbWlzc2luZyBhcmdzCi0gICAgaml0LmxzaGlmdDMy
KEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7
Ci0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpj
YWxsRnJhbWVSZWdpc3Rlcik7Ci0KKyAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciBh
bmQgc3RhY2sgcG9pbnRlciB0byBhY2NvdW50IGZvciBtaXNzaW5nIGFyZ3MKKyAgICBqaXQubW92
ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CisgICAgaml0
LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklU
OjpyZWdUMSk7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJm
YWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJ
VDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAgICAv
LyBTYXZlIHRoZSBvcmlnaW5hbCByZXR1cm4gUEMuCisgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWU6OnJldHVyblBDT2Zmc2V0KCkpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRy
KEdQUkluZm86OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklU
OjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdo
dCkpOworICAgIAorICAgIC8vIEluc3RhbGwgdGhlIG5ldyByZXR1cm4gUEMuCisgICAgLy8gRklY
TUU6IEkgZG9uJ3QgdGhpbmsgY3VycmVudFJldHVyblRodW5rUEMgaXMgdXNlZCBhbmQgc2hvdWxk
IGJlIGRlbGV0ZWQuCisjICBpZiAwCisgICAgaml0LmxvYWRQdHIoJnZtLT5jdXJyZW50UmV0dXJu
VGh1bmtQQywgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdU
MiwgSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lz
dGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKKyMgICBlbHNlCisgICAgaml0LnN0
b3JlUHRyKEdQUkluZm86OnJlZ1Q1LCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFj
ZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOwor
IyAgIGVuZGlmCisgICAgCiAjICBpZiBDUFUoWDg2KQogICAgIGppdC5wdXNoKEpTSW50ZXJmYWNl
SklUOjpyZWdUNCk7CiAjICBlbmRpZgpAQCAtNTU0LDcgKzU3NSw3IEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBjaGFyQ29kZUF0VGh1bmtHZW4KICAgICBTcGVjaWFsaXplZFRodW5rSklUIGppdCh2
bSwgMSk7CiAgICAgc3RyaW5nQ2hhckxvYWQoaml0LCB2bSk7CiAgICAgaml0LnJldHVybkludDMy
KFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZt
LT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJjaGFyQ29kZUF0Iik7CisgICAgcmV0dXJu
IGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImNoYXJD
b2RlQXQiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJhdG9y
KFZNKiB2bSkKQEAgLTU2Myw3ICs1ODQsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0
VGh1bmtHZW5lcmF0CiAgICAgc3RyaW5nQ2hhckxvYWQoaml0LCB2bSk7CiAgICAgY2hhclRvU3Ry
aW5nKGppdCwgdm0sIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5r
SklUOjpyZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDEpOwogICAgIGppdC5yZXR1cm5K
U0NlbGwoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxp
emUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImNoYXJBdCIpOworICAgIHJldHVy
biBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJjaGFy
QXQiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRodW5rR2VuZXJh
dG9yKFZNKiB2bSkKQEAgLTU3Myw3ICs1OTQsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZnJv
bUNoYXJDb2RlVGh1bmtHCiAgICAgaml0LmxvYWRJbnQzMkFyZ3VtZW50KDAsIFNwZWNpYWxpemVk
VGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBjaGFyVG9TdHJpbmcoaml0LCB2bSwgU3BlY2lhbGl6ZWRU
aHVua0pJVDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRo
dW5rSklUOjpyZWdUMSk7CiAgICAgaml0LnJldHVybkpTQ2VsbChTcGVjaWFsaXplZFRodW5rSklU
OjpyZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2
ZUNhbGwodm0pLCAiZnJvbUNoYXJDb2RlIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+
aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImZyb21DaGFyQ29kZSIpOwogfQogCiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTU4NSw3
ICs2MDYsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9yCiAgICAg
aml0LmxvYWREb3VibGVBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBT
cGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgaml0LnNxcnREb3VibGUoU3BlY2lhbGl6
ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7CiAgICAg
aml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKLSAgICByZXR1
cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJzcXJ0Iik7
CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxs
KHZtKSwgInNxcnQiKTsKIH0KIAogCkBAIC02MTEsNyArNjMyLDkgQEAgZG91YmxlIGpzUm91bmQo
ZG91YmxlIGQpCiAgICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uIyNUaHVu
aykgIlxuIiBcCiAgICAgICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uIyNUaHVuaykgIlxuIiBcCiAg
ICAgICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAiOiIgIlxuIiBcCisgICAgICAg
ICJwdXNocSAlcmF4XG4iIFwKICAgICAgICAgImNhbGwgIiBHTE9CQUxfUkVGRVJFTkNFKGZ1bmN0
aW9uKSAiXG4iIFwKKyAgICAgICAgInBvcHEgJXJjeFxuIiBcCiAgICAgICAgICJyZXRcbiIgXAog
ICAgICk7XAogICAgIGV4dGVybiAiQyIgeyBcCkBAIC02MjYsMTIgKzY0OSwxMiBAQCBkb3VibGUg
anNSb3VuZChkb3VibGUgZCkKICAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rp
b24jI1RodW5rKSAiXG4iIFwKICAgICAgICAgSElERV9TWU1CT0woZnVuY3Rpb24jI1RodW5rKSAi
XG4iIFwKICAgICAgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMjVGh1bmspICI6IiAiXG4iIFwK
LSAgICAgICAgInN1YmwgJDgsICVlc3BcbiIgXAorICAgICAgICAic3VibCAkMjAsICVlc3BcbiIg
XAogICAgICAgICAibW92c2QgJXhtbTAsICglZXNwKSBcbiIgXAogICAgICAgICAiY2FsbCAiIEdM
T0JBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJcbiIgXAogICAgICAgICAiZnN0cGwgKCVlc3ApIFxu
IiBcCiAgICAgICAgICJtb3ZzZCAoJWVzcCksICV4bW0wIFxuIiBcCi0gICAgICAgICJhZGRsICQ4
LCAlZXNwXG4iIFwKKyAgICAgICAgImFkZGwgJDIwLCAlZXNwXG4iIFwKICAgICAgICAgInJldFxu
IiBcCiAgICAgKTtcCiAgICAgZXh0ZXJuICJDIiB7IFwKQEAgLTczMyw3ICs3NTYsNyBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgZmxvb3JUaHVua0dlbmVyYXRvCiAgICAgZG91YmxlUmVzdWx0Lmxp
bmsoJmppdCk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJl
Z1QwKTsKICNlbmRpZiAvLyBDUFUoQVJNNjQpCi0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+
aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiZmxvb3IiKTsKKyAgICByZXR1cm4gaml0LmZp
bmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiZmxvb3IiKTsKIH0K
IAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC03
NTYsNyArNzc5LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxUaHVua0dlbmVyYXRvcgog
ICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgZG91
YmxlUmVzdWx0LmxpbmsoJmppdCk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRo
dW5rSklUOjpmcFJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+
Y3RpTmF0aXZlQ2FsbCh2bSksICJjZWlsIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+
aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImNlaWwiKTsKIH0KIAogTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtNzkwLDcgKzgxMyw3
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiByb3VuZFRodW5rR2VuZXJhdG8KICAgICBqaXQucmV0
dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGRvdWJsZVJlc3VsdC5s
aW5rKCZqaXQpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBS
ZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNh
bGwodm0pLCAicm91bmQiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+
Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAicm91bmQiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIGV4cFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTgwMyw3ICs4MjYsNyBAQCBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgZXhwVGh1bmtHZW5lcmF0b3IoCiAgICAgaml0LmxvYWREb3VibGVBcmd1
bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklU
OjpyZWdUMCk7CiAgICAgaml0LmNhbGxEb3VibGVUb0RvdWJsZVByZXNlcnZpbmdSZXR1cm4oVW5h
cnlEb3VibGVPcFdyYXBwZXIoZXhwKSk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXpl
ZFRodW5rSklUOjpmcFJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVi
cy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJleHAiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZt
LT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiZXhwIik7CiB9CiAKIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBsb2dUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC04MTYsNyArODM5LDcg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxvZ1RodW5rR2VuZXJhdG9yKAogICAgIGppdC5sb2Fk
RG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6
ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGppdC5jYWxsRG91YmxlVG9Eb3VibGVQcmVzZXJ2aW5n
UmV0dXJuKFVuYXJ5RG91YmxlT3BXcmFwcGVyKGxvZykpOwogICAgIGppdC5yZXR1cm5Eb3VibGUo
U3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2
bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAibG9nIik7CisgICAgcmV0dXJuIGppdC5m
aW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImxvZyIpOwogfQog
CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYWJzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtODM2
LDcgKzg1OSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhYnNUaHVua0dlbmVyYXRvcigKICAg
ICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAs
IFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuYWJzRG91YmxlKFNwZWNpYWxp
emVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwogICAg
IGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSk7Ci0gICAgcmV0
dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiYWJzIik7
CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxs
KHZtKSwgImFicyIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0
b3IoVk0qIHZtKQpAQCAtODg4LDcgKzkxMSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBwb3dU
aHVua0dlbmVyYXRvcigKICAgICB9IGVsc2UKICAgICAgICAgaml0LmFwcGVuZEZhaWx1cmUobm9u
SW50RXhwb25lbnQpOwogCi0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0
aU5hdGl2ZUNhbGwodm0pLCAicG93Iik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0
U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgInBvdyIpOwogfQogCiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgaW11bFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTkyMSw3ICs5NDQsNyBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgaW11bFRodW5rR2VuZXJhdG9yCiAgICAgfSBlbHNlCiAgICAg
ICAgIGppdC5hcHBlbmRGYWlsdXJlKG5vbkludEFyZzFKdW1wKTsKIAotICAgIHJldHVybiBqaXQu
ZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImltdWwiKTsKKyAgICBy
ZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAi
aW11bCIpOwogfQogCiBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFycmF5SXRlcmF0b3JO
ZXh0VGh1bmtHZW5lcmF0b3IoVk0qIHZtLCBBcnJheUl0ZXJhdGlvbktpbmQga2luZCkKQEAgLTk2
MSw3ICs5ODQsNyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFycmF5SXRlcmF0CiAg
ICAgaWYgKGtpbmQgPT0gQXJyYXlJdGVyYXRlS2V5KSB7CiAgICAgICAgIGppdC5hZGQzMihUcnVz
dGVkSW1tMzIoMSksIEFkZHJlc3MoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDQsIEpTQXJyYXlJ
dGVyYXRvcjo6b2Zmc2V0T2ZOZXh0SW5kZXgoKSkpOwogICAgICAgICBqaXQucmV0dXJuSW50MzIo
U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDEpOwotICAgICAgICByZXR1cm4gaml0LmZpbmFsaXpl
KHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJhcnJheS1pdGVyYXRvci1uZXh0LWtl
eSIpOworICAgICAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZl
VGFpbENhbGwodm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4dC1rZXkiKTsKICAgICAgICAgCiAgICAg
fQogICAgIEFTU0VSVChraW5kID09IEFycmF5SXRlcmF0ZVZhbHVlKTsKQEAgLTEwMTIsNyArMTAz
NSw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJyYXlJdGVyYXQKICAgICBqaXQu
YWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBBZGRyZXNzKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1Q0
LCBKU0FycmF5SXRlcmF0b3I6Om9mZnNldE9mTmV4dEluZGV4KCkpKTsKICAgICBqaXQucmV0dXJu
RG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwogICAgIAotICAgIHJldHVybiBq
aXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImFycmF5LWl0ZXJh
dG9yLW5leHQtdmFsdWUiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+
Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4dC12YWx1ZSIpOwogfQog
CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJyYXlJdGVyYXRvck5leHRLZXlUaHVua0dlbmVyYXRv
cihWTSogdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0
b3JzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYg
VGh1bmtHZW5lcmF0b3JzX2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0b3JzX2gKIAorI2luY2x1ZGUg
IkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlv
bk1vZGUuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvci5oIgogCiAjaWYgRU5BQkxFKEpJVCkK
QEAgLTM1LDE0ICszNyw4MiBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdGhyb3dFeGNlcHRpb25G
cm9tCiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKFZNKik7
CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKFZNKik7
CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2Vu
ZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRoYXRQcmVz
ZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qKTsKKworaW5saW5lIFRodW5rR2VuZXJhdG9yIGxp
bmtUaHVua0dlbmVyYXRvckZvcigKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7
CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAg
ICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAg
cmV0dXJuIGxpbmtDYWxsVGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZl
UmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIGxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3NU
aHVua0dlbmVyYXRvcjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIENvZGVG
b3JDb25zdHJ1Y3Q6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2Ug
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiBsaW5r
Q29uc3RydWN0VGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0
ZXJzOgorICAgICAgICAgICAgcmV0dXJuIGxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1Ro
dW5rR2VuZXJhdG9yOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQogCiBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBsaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJh
dG9yKFZNKik7CisKK2lubGluZSBUaHVua0dlbmVyYXRvciBsaW5rQ2xvc3VyZUNhbGxUaHVua0dl
bmVyYXRvckZvcihSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3
aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVp
cmVkOgorICAgICAgICByZXR1cm4gbGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3I7CisgICAg
Y2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgIHJldHVybiBsaW5rQ2xvc3VyZUNh
bGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yOworICAgIH0KKyAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQogCiBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgdmlydHVhbENhbGxUaHVua0dlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIHZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSopOwor
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1Ro
dW5rR2VuZXJhdG9yKFZNKik7CisKK2lubGluZSBUaHVua0dlbmVyYXRvciB2aXJ0dWFsVGh1bmtH
ZW5lcmF0b3JGb3IoCisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclBy
ZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNh
c2UgQ29kZUZvckNhbGw6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNh
c2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiB2
aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lz
dGVyczoKKyAgICAgICAgICAgIHJldHVybiB2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1
bmtHZW5lcmF0b3I7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2RlRm9y
Q29uc3RydWN0OgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gdmlydHVh
bENvbnN0cnVjdFRodW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lz
dGVyczoKKyAgICAgICAgICAgIHJldHVybiB2aXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1Jl
Z3NUaHVua0dlbmVyYXRvcjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KIAogTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNhbGxHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBuYXRpdmVUYWlsQ2FsbEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGFyaXR5Rml4dXAoVk0qKTsKIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVu
a0dlbmVyYXRvcihWTSopOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
Q0xvb3AuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dENMb29wLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50Q0xvb3AuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVz
cGFjZSBMTEludCB7CiAKIHZvaWQgQ0xvb3A6OmluaXRpYWxpemUoKQogewotICAgIGV4ZWN1dGUo
MCwgZ2V0T3Bjb2RlKGxsaW50X3VudXNlZCksIHRydWUpOworICAgIGV4ZWN1dGUobGxpbnRfdW51
c2VkLCAwLCAwLCAwLCB0cnVlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgTExJbnQKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludENMb29wLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuaAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuaAkod29ya2luZyBjb3B5
KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkpT
Q0pTVmFsdWUuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKKyNpbmNsdWRlICJQcm90b0NhbGxGcmFt
ZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBMTEludCB7CkBAIC00MCw3ICs0MSw3
IEBAIGNvbnN0IE9wY29kZUlEIGxsaW50X3VudXNlZCA9IGxsaW50X2VuZDsKIGNsYXNzIENMb29w
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7Ci0gICAgc3RhdGljIEpT
VmFsdWUgZXhlY3V0ZShDYWxsRnJhbWUqLCBPcGNvZGUgZW50cnlPcGNvZGUsIGJvb2wgaXNJbml0
aWFsaXphdGlvblBhc3MgPSBmYWxzZSk7CisgICAgc3RhdGljIEpTVmFsdWUgZXhlY3V0ZShPcGNv
ZGVJRCBlbnRyeU9wY29kZUlELCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgVk0qLCBQcm90b0Nh
bGxGcmFtZSosIGJvb2wgaXNJbml0aWFsaXphdGlvblBhc3MgPSBmYWxzZSk7CiB9OwogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6TExJbnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludERhdGEuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIkluc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTY29wZS5oIgogI2luY2x1ZGUg
IkxMSW50Q0xvb3AuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5o
IgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCiAKQEAg
LTg3LDYgKzg4LDcgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAg
QVNTRVJUKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgPT0gQ2FsbEZyYW1lSGVhZGVyU2xv
dHMpOwogCiAgICAgQVNTRVJUKCFDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpOworICAg
IEFTU0VSVChKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSA9PSAoUHRyU2l6ZSAqIDIpIC8g
U2xvdFNpemUpOwogICAgIEFTU0VSVChDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkgPT0gQ2Fs
bEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpICsgUHRyU2l6ZSk7CiAgICAgQVNTRVJUKEpTU3Rh
Y2s6OkNvZGVCbG9jayAqIHNpemVvZihSZWdpc3RlcikgPT0gQ2FsbEZyYW1lOjpyZXR1cm5QQ09m
ZnNldCgpICsgUHRyU2l6ZSk7CiAgICAgQVNTRVJUKEpTU3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXpl
b2YoUmVnaXN0ZXIpID09IEpTU3RhY2s6OkNvZGVCbG9jayAqIHNpemVvZihSZWdpc3RlcikgKyBT
bG90U2l6ZSk7CkBAIC0xMjMsNiArMTI1LDEzIEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlv
bnMoVk0mIHZtKQogICAgIEFTU0VSVChWYWx1ZVVuZGVmaW5lZCA9PSAoVGFnQml0VHlwZU90aGVy
IHwgVGFnQml0VW5kZWZpbmVkKSk7CiAgICAgQVNTRVJUKFZhbHVlTnVsbCA9PSBUYWdCaXRUeXBl
T3RoZXIpOwogI2VuZGlmCisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCBFTkFCTEUo
TExJTlRfQ19MT09QKQorICAgIEFTU0VSVCghbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwp
OworI2VsaWYgQ1BVKEFSTSkgfHwgQ1BVKFNINCkKKyAgICBBU1NFUlQobWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwgPT0gMjQpOworI2VsaWYgQ1BVKFg4NikgfHwgQ1BVKE1JUFMpCisgICAg
QVNTRVJUKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID09IDQwKTsKKyNlbmRpZgogICAg
IEFTU0VSVChTdHJpbmdUeXBlID09IDUpOwogICAgIEFTU0VSVChPYmplY3RUeXBlID09IDE3KTsK
ICAgICBBU1NFUlQoRmluYWxPYmplY3RUeXBlID09IDE4KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5j
bHVkZSAiTExJbnRUaHVua3MuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCisj
aW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKKyNpbmNsdWRlICJTdGFj
a0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgTExJbnQgewpAQCAtNDUsMTQgKzQ3LDEyIEBAIHN0YXRpYyB2b2lkIHNldEZ1bmN0aW9uRW50
cnlwb2ludChWTSYgdm0KICAgICBpZiAodm0uY2FuVXNlSklUKCkpIHsKICAgICAgICAgaWYgKGtp
bmQgPT0gQ29kZUZvckNhbGwpIHsKICAgICAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgK
LSAgICAgICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHVi
KGZ1bmN0aW9uRm9yQ2FsbEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBKSVRDb2RlOjpJbnRlcnByZXRl
clRodW5rKSksCi0gICAgICAgICAgICAgICAgdm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNhbGxB
cml0eUNoZWNrVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgICAgICAgICAgICAgYWRvcHRS
ZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNhbGxFbnRyeVRo
dW5rR2VuZXJhdG9yKSwgdm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNhbGxBcml0eUNoZWNrVGh1
bmtHZW5lcmF0b3IpLmNvZGUoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9y
Q29uc3RydWN0KTsKICAgICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICAgICAg
YWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0
cnVjdEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0g
ICAgICAgICAgICB2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ29uc3RydWN0QXJpdHlDaGVja1Ro
dW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJ
VENvZGUodm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEVudHJ5VGh1bmtHZW5lcmF0
b3IpLCB2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ29uc3RydWN0QXJpdHlDaGVja1RodW5rR2Vu
ZXJhdG9yKS5jb2RlKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKQEAgLTYwLDE0ICs2MCwxMiBAQCBz
dGF0aWMgdm9pZCBzZXRGdW5jdGlvbkVudHJ5cG9pbnQoVk0mIHZtCiAgICAgVU5VU0VEX1BBUkFN
KHZtKTsKICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewogICAgICAgICBjb2RlQmxvY2st
PnNldEpJVENvZGUoCi0gICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShNYWNy
b0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9mdW5jdGlvbl9mb3Jf
Y2FsbF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9u
X2Zvcl9jYWxsX2FyaXR5X2NoZWNrKSk7CisgICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0
SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9m
dW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRl
TExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrKSwgSklUQ29k
ZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBBU1NF
UlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUo
Ci0gICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJl
Zjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfcHJvbG9n
dWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3Rf
YXJpdHlfY2hlY2spKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoTWFjcm9B
c3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZnVuY3Rpb25fZm9yX2Nv
bnN0cnVjdF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2Rl
UHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2spLCBKSVRDb2RlOjpJ
bnRlcnByZXRlclRodW5rKSkpOwogfQogCiBzdGF0aWMgdm9pZCBzZXRFdmFsRW50cnlwb2ludChW
TSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQpAQCAtNzUsMTYgKzczLDE0IEBAIHN0YXRpYyB2
b2lkIHNldEV2YWxFbnRyeXBvaW50KFZNJiB2bSwgQ28KICNpZiBFTkFCTEUoSklUKQogICAgIGlm
ICh2bS5jYW5Vc2VKSVQoKSkgewogICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAg
ICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKGV2YWxFbnRy
eVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICAgICAgYWRvcHRSZWYobmV3IERp
cmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihldmFsRW50cnlUaHVua0dlbmVyYXRvciksIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKICAgICBVTlVTRURfUEFS
QU0odm0pOwogICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRSZWYobmV3
IERpcmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYo
bGxpbnRfZXZhbF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0
SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9l
dmFsX3Byb2xvZ3VlKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCksIEpJVENvZGU6OkludGVycHJl
dGVyVGh1bmspKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldFByb2dyYW1FbnRyeXBvaW50KFZNJiB2
bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC05MiwxNiArODgsMTQgQEAgc3RhdGljIHZvaWQg
c2V0UHJvZ3JhbUVudHJ5cG9pbnQoVk0mIHZtLAogI2lmIEVOQUJMRShKSVQpCiAgICAgaWYgKHZt
LmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAg
ICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIocHJvZ3JhbUVudHJ5
VGh1bmtHZW5lcmF0b3IpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgICAgICAgICBhZG9wdFJlZihuZXcgRGly
ZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKHByb2dyYW1FbnRyeVRodW5rR2VuZXJhdG9yKSwgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAogICAgIFVOVVNFRF9Q
QVJBTSh2bSk7CiAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICBhZG9wdFJlZihu
ZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJl
ZihsbGludF9wcm9ncmFtX3Byb2xvZ3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAot
ICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgICAgIGFkb3B0UmVmKG5ldyBE
aXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxs
aW50X3Byb2dyYW1fcHJvbG9ndWUpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSwgSklUQ29kZTo6
SW50ZXJwcmV0ZXJUaHVuaykpKTsKIH0KIAogdm9pZCBzZXRFbnRyeXBvaW50KFZNJiB2bSwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2spCkBAIC0xMjMsNyArMTE3LDkgQEAgdm9pZCBzZXRFbnRyeXBvaW50
KFZNJiB2bSwgQ29kZUJsb2NrKiBjbwogCiB1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291bnRGb3Io
Q29kZUJsb2NrKiBjb2RlQmxvY2spCiB7Ci0gICAgcmV0dXJuIGNvZGVCbG9jay0+bV9udW1DYWxs
ZWVSZWdpc3RlcnM7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb2RlQmxvY2st
Pm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSA9PSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tB
bGlnbm1lbnRSZWdpc3RlcnMoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNvZGVCbG9jay0+bV9u
dW1DYWxsZWVSZWdpc3RlcnMpKSk7CisKKyAgICByZXR1cm4gcm91bmRMb2NhbFJlZ2lzdGVyQ291
bnRGb3JGcmFtZVBvaW50ZXJPZmZzZXQoY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVycyAr
IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5SZWdpc3RlcnMpOwogfQogCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6TExJbnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludE9mZnNldHNFeHRyYWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQXJyYXlQcm9maWxl
LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgi
CiAjaW5jbHVkZSAiRGVidWdnZXIuaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCiAjaW5jbHVk
ZSAiSGVhcC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T3Bjb2Rl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T3Bjb2Rl
LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dE9wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCwxOCBAQAogCiAj
ZGVmaW5lIEZPUl9FQUNIX0xMSU5UX05PSklUX05BVElWRV9IRUxQRVIobWFjcm8pIFwKICAgICBt
YWNybyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlLCAxKSBcCi0gICAgbWFjcm8ocmV0dXJuRnJvbUph
dmFTY3JpcHQsIDEpCisgICAgbWFjcm8obGxpbnRfcmV0dXJuX3RvX2hvc3QsIDEpIFwKKyAgICBt
YWNybyhsbGludF9jYWxsX3RvX2phdmFzY3JpcHQsIDEpIFwKKyAgICBtYWNybyhsbGludF9jYWxs
X3RvX25hdGl2ZV9mdW5jdGlvbiwgMSkgXAorICAgIG1hY3JvKGhhbmRsZVVuY2F1Z2h0RXhjZXB0
aW9uLCAxKSBcCisgICAgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9q
c18xLCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzIsIDEp
IFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfMywgMSkgXAorICAg
IG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc180LCAxKSBcCisgICAgbWFjcm8o
bGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzUsIDEpIFwKKyAgICBtYWNybyhsbGludF9j
bG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfNiwgMSkgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2Rp
ZF9yZXR1cm5fZnJvbV9qc183LCAxKSBcCiAKICNlbHNlIC8vICFFTkFCTEUoTExJTlRfQ19MT09Q
KQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRo
cy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb21tb25T
bG93UGF0aHMuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHNFeGNlcHRpb25zLmgiCisjaW5j
bHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAj
aW5jbHVkZSAiSG9zdENhbGxSZXR1cm5WYWx1ZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgi
CkBAIC01MSw2ICs1Miw3IEBACiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgogI2lu
Y2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2lu
Y2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJbmxp
bmVzLmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKQEAgLTgyLDcgKzg0
LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CiAgICAgICAgIHJldHVybiBl
bmNvZGVSZXN1bHQoZmlyc3QsIHNlY29uZCk7ICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2Up
CiAKLSNkZWZpbmUgTExJTlRfRU5EX0lNUEwoKSBMTElOVF9SRVRVUk5fVFdPKHBjLCBleGVjKQor
I2RlZmluZSBMTElOVF9FTkRfSU1QTCgpIExMSU5UX1JFVFVSTl9UV08ocGMsIDApCiAKICNkZWZp
bmUgTExJTlRfVEhST1coZXhjZXB0aW9uVG9UaHJvdykgZG8geyAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICAgICAgdm0udGhyb3dFeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uVG9UaHJvdyk7
ICAgICAgICAgICAgICAgIFwKQEAgLTEzNywyMiArMTM5LDI4IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgTExJbnQgewogI2RlZmluZSBMTElOVF9DQUxMX1RIUk9XKGV4ZWMsIGV4Y2VwdGlv
blRvVGhyb3cpIGRvIHsgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBFeGVjU3RhdGUqIF9f
Y3RfZXhlYyA9IChleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg
ICAgICB2bS50aHJvd0V4Y2VwdGlvbihfX2N0X2V4ZWMsIGV4Y2VwdGlvblRvVGhyb3cpOyAgICAg
ICAgICAgICAgICAgXAotICAgICAgICBMTElOVF9DQUxMX0VORF9JTVBMKF9fY3RfZXhlYywgY2Fs
bFRvVGhyb3coX19jdF9leGVjKSk7ICAgICAgICAgXAorICAgICAgICBMTElOVF9DQUxMX0VORF9J
TVBMKDAsIGNhbGxUb1Rocm93KF9fY3RfZXhlYykpOyAgICAgICAgICAgICAgICAgXAogICAgIH0g
d2hpbGUgKGZhbHNlKQogCiAjZGVmaW5lIExMSU5UX0NBTExfQ0hFQ0tfRVhDRVBUSU9OKGV4ZWMp
IGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEV4ZWNTdGF0ZSogX19j
Y2VfZXhlYyA9IChleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
ICAgIGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgICAgICBMTElOVF9DQUxMX0VORF9JTVBMKF9fY2NlX2V4ZWMs
IGNhbGxUb1Rocm93KF9fY2NlX2V4ZWMpKTsgICBcCisgICAgICAgICAgICBMTElOVF9DQUxMX0VO
RF9JTVBMKDAsIGNhbGxUb1Rocm93KF9fY2NlX2V4ZWMpKTsgICAgICAgICAgICBcCiAgICAgfSB3
aGlsZSAoZmFsc2UpCiAKICNkZWZpbmUgTExJTlRfQ0FMTF9SRVRVUk4oZXhlYywgY2FsbFRhcmdl
dCkgZG8geyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRXhlY1N0YXRlKiBfX2Ny
X2V4ZWMgPSAoZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg
ICAgdm9pZCogX19jcl9jYWxsVGFyZ2V0ID0gKGNhbGxUYXJnZXQpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICAgICAgTExJTlRfQ0FMTF9DSEVDS19FWENFUFRJT04oX19jcl9leGVj
LT5jYWxsZXJGcmFtZSgpKTsgICAgICAgICAgIFwKKyAgICAgICAgTExJTlRfQ0FMTF9DSEVDS19F
WENFUFRJT04oX19jcl9leGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg
TExJTlRfQ0FMTF9FTkRfSU1QTChfX2NyX2V4ZWMsIF9fY3JfY2FsbFRhcmdldCk7ICAgICAgICAg
ICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAorI2RlZmluZSBMTElOVF9SRVRVUk5fQ0FM
TEVFX0ZSQU1FKGV4ZWNDYWxsZWUpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICBFeGVjU3RhdGUqIF9fcmNmX2V4ZWMgPSAoZXhlY0NhbGxlZSk7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgICAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCBfX3JjZl9leGVjKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKGZhbHNlKQorICAgIAor
CiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV9vcGVyYW5kKEV4ZWNT
dGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24qIHBjLCBpbnQgZnJvbVdoZXJlLCBpbnQgb3BlcmFuZCkK
IHsKICAgICBMTElOVF9CRUdJTigpOwpAQCAtMjQyLDYgKzI1MCwxMCBAQCBMTElOVF9TTE9XX1BB
VEhfREVDTCh0cmFjZSkKICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludHB0cl90PihwYyAtIGV4
ZWMtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKSwKICAgICAgICAgICAgIG9w
Y29kZU5hbWVzW2V4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bj
b2RlKV0sCiAgICAgICAgICAgICBleGVjLT5zY29wZSgpLCBwYyk7CisgICAgaWYgKGV4ZWMtPnZt
KCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKSA9PSBvcF9lbnRlcikg
eworICAgICAgICBkYXRhTG9nRigiRnJhbWUgd2lsbCBldmVudHVhbGx5IHJldHVybiB0byAlcFxu
IiwgZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKKyAgICAgICAgKmJpdHdpc2VfY2FzdDx2b2xh
dGlsZSBjaGFyKj4oZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKKyAgICB9CiAgICAgaWYgKGV4
ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKSA9PSBvcF9y
ZXQpIHsKICAgICAgICAgZGF0YUxvZ0YoIldpbGwgYmUgcmV0dXJuaW5nIHRvICVwXG4iLCBleGVj
LT5yZXR1cm5QQygpLnZhbHVlKCkpOwogICAgICAgICBkYXRhTG9nRigiVGhlIG5ldyBjZnIgd2ls
bCBiZSAlcFxuIiwgZXhlYy0+Y2FsbGVyRnJhbWUoKSk7CkBAIC0zMjUsMTUgKzMzNywxNyBAQCBz
dGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGVudHJ5T1NSKEV4ZWNTCiAgICAgCiAgICAgaWYgKCFz
aG91bGRKSVQoZXhlYykpIHsKICAgICAgICAgY29kZUJsb2NrLT5kb250SklUQW55dGltZVNvb24o
KTsKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICAgICAgTExJTlRfUkVU
VVJOX1RXTygwLCAwKTsKICAgICB9CiAgICAgaWYgKCFqaXRDb21waWxlQW5kU2V0SGV1cmlzdGlj
cyhjb2RlQmxvY2ssIGV4ZWMpKQotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIGV4ZWMpOwor
ICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAgIAogICAgIGlmIChraW5kID09IFBy
b2xvZ3VlKQotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKGNvZGVCbG9jay0+aml0Q29kZSgpLT5l
eGVjdXRhYmxlQWRkcmVzcygpLCBleGVjKTsKKyAgICAgICAgTExJTlRfUkVUVVJOX1RXTyhjb2Rl
QmxvY2stPmppdENvZGUoKS0+ZXhlY3V0YWJsZUFkZHJlc3MoKSwgMCk7CiAgICAgQVNTRVJUKGtp
bmQgPT0gQXJpdHlDaGVjayk7Ci0gICAgTExJTlRfUkVUVVJOX1RXTyhjb2RlQmxvY2stPmppdENv
ZGVXaXRoQXJpdHlDaGVjaygpLmV4ZWN1dGFibGVBZGRyZXNzKCksIGV4ZWMpOworICAgIExMSU5U
X1JFVFVSTl9UV08oY29kZUJsb2NrLT5qaXRDb2RlKCktPmFkZHJlc3NGb3JDYWxsKAorICAgICAg
ICAqY29kZUJsb2NrLT52bSgpLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBNdXN0Q2hl
Y2tBcml0eSwKKyAgICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCkuZXhlY3V0
YWJsZUFkZHJlc3MoKSwgMCk7CiB9CiAjZWxzZSAvLyBFTkFCTEUoSklUKQogc3RhdGljIFNsb3dQ
YXRoUmV0dXJuVHlwZSBlbnRyeU9TUihFeGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKiwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IGNoYXIqLCBFbnRyeUtpbmQpCkBAIC0zODEsMTEgKzM5
NSwxMSBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChsb29wX29zcikKICAgICAKICAgICBpZiAoIXNo
b3VsZEpJVChleGVjKSkgewogICAgICAgICBjb2RlQmxvY2stPmRvbnRKSVRBbnl0aW1lU29vbigp
OwotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIGV4ZWMpOworICAgICAgICBMTElOVF9SRVRV
Uk5fVFdPKDAsIDApOwogICAgIH0KICAgICAKICAgICBpZiAoIWppdENvbXBpbGVBbmRTZXRIZXVy
aXN0aWNzKGNvZGVCbG9jaywgZXhlYykpCi0gICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgZXhl
Yyk7CisgICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgMCk7CiAgICAgCiAgICAgQVNTRVJUKGNv
ZGVCbG9jay0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2VsaW5lSklUKTsKICAgICAKQEAgLTM5
OCwxMCArNDEyLDEwIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKGxvb3Bfb3NyKQogICAgIHZvaWQq
IGp1bXBUYXJnZXQgPSBjb2RlQmxvY2stPmppdENvZGUoKS0+ZXhlY3V0YWJsZUFkZHJlc3NBdE9m
ZnNldChtYXBwaW5nLT5tX21hY2hpbmVDb2RlT2Zmc2V0KTsKICAgICBBU1NFUlQoanVtcFRhcmdl
dCk7CiAgICAgCi0gICAgTExJTlRfUkVUVVJOX1RXTyhqdW1wVGFyZ2V0LCBleGVjKTsKKyAgICBM
TElOVF9SRVRVUk5fVFdPKGp1bXBUYXJnZXQsIGV4ZWMtPnRvcE9mRnJhbWUoKSk7CiAjZWxzZSAv
LyBFTkFCTEUoSklUKQogICAgIGNvZGVCbG9jay0+ZG9udEpJVEFueXRpbWVTb29uKCk7Ci0gICAg
TExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwog
I2VuZGlmIC8vIEVOQUJMRShKSVQpCiB9CiAKQEAgLTQzNywxMyArNDUxLDM0IEBAIExMSU5UX1NM
T1dfUEFUSF9ERUNMKHN0YWNrX2NoZWNrKQogICAgIGRhdGFMb2dGKCJOdW0gdmFycyA9ICV1Llxu
IiwgZXhlYy0+Y29kZUJsb2NrKCktPm1fbnVtVmFycyk7CiAgICAgZGF0YUxvZ0YoIkN1cnJlbnQg
ZW5kIGlzIGF0ICVwLlxuIiwgZXhlYy0+dm0oKS5pbnRlcnByZXRlci0+c3RhY2soKS5lbmQoKSk7
CiAjZW5kaWYKLSAgICBBU1NFUlQoIWV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPnN0YWNrKCkuY29u
dGFpbnNBZGRyZXNzKCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChl
eGVjLT5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3RlcnMpLm9mZnNldCgpXSkpOwotICAg
IGlmIChVTkxJS0VMWSghdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCkuZ3JvdygmZXhlYy0+cmVnaXN0
ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZXhlYy0+Y29kZUJsb2NrKCktPm1fbnVtQ2Fs
bGVlUmVnaXN0ZXJzKS5vZmZzZXQoKV0pKSkgewotICAgICAgICBleGVjID0gZXhlYy0+Y2FsbGVy
RnJhbWUoKTsKLSAgICAgICAgQ29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5DYWxs
ZXIoZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKLSAgICAgICAgcGMgPSBy
ZXR1cm5Ub1Rocm93Rm9yVGhyb3duRXhjZXB0aW9uKGV4ZWMpOwotICAgIH0KLSAgICBMTElOVF9F
TkRfSU1QTCgpOworCisgICAgLy8gVGhpcyBzdGFjayBjaGVjayBpcyBkb25lIGluIHRoZSBwcm9s
b2d1ZSBmb3IgYSBmdW5jdGlvbiBjYWxsLCBhbmQgdGhlCisgICAgLy8gQ2FsbEZyYW1lIGlzIG5v
dCBjb21wbGV0ZWx5IHNldCB1cCB5ZXQuIEZvciBleGFtcGxlLCBpZiB0aGUgZnJhbWUgbmVlZHMK
KyAgICAvLyBhbiBhY3RpdmF0aW9uIG9iamVjdCwgdGhlIGFjdGl2YXRpb24gb2JqZWN0IHdpbGwg
b25seSBiZSBzZXQgdXAgYWZ0ZXIKKyAgICAvLyB3ZSBzdGFydCBleGVjdXRpbmcgdGhlIGZ1bmN0
aW9uLiBJZiB3ZSBuZWVkIHRvIHRocm93IGEgU3RhY2tPdmVyZmxvd0Vycm9yCisgICAgLy8gaGVy
ZSwgdGhlbiB3ZSBuZWVkIHRvIHRlbGwgdGhlIHByb2xvZ3VlIHRvIHN0YXJ0IHRoZSBzdGFjayB1
bndpbmRpbmcgZnJvbQorICAgIC8vIHRoZSBjYWxsZXIgZnJhbWUgKHdoaWNoIGlzIGZ1bGx5IHNl
dCB1cCkgaW5zdGVhZC4gVG8gZG8gdGhhdCwgd2UgcmV0dXJuCisgICAgLy8gdGhlIGNhbGxlcidz
IENhbGxGcmFtZSBpbiB0aGUgc2Vjb25kIHJldHVybiB2YWx1ZS4KKyAgICAvLworICAgIC8vIElm
IHRoZSBzdGFjayBjaGVjayBzdWNjZWVkcyBhbmQgd2UgZG9uJ3QgbmVlZCB0byB0aHJvdyB0aGUg
ZXJyb3IsIHRoZW4KKyAgICAvLyB3ZSdsbCByZXR1cm4gMCBpbnN0ZWFkLiBUaGUgcHJvbG9ndWUg
d2lsbCBjaGVjayBmb3IgYSBub24temVybyB2YWx1ZQorICAgIC8vIHdoZW4gZGV0ZXJtaW5pbmcg
d2hldGhlciB0byBzZXQgdGhlIGNhbGxGcmFtZSBvciBub3QuCisKKyAgICAvLyBGb3IgSklUIGVu
YWJsZWQgYnVpbGRzIHdoaWNoIHVzZXMgdGhlIEMgc3RhY2ssIHRoZSBzdGFjayBpcyBub3QgZ3Jv
d2FibGUuCisgICAgLy8gSGVuY2UsIGlmIHdlIGdldCBoZXJlLCB0aGVuIHdlIGtub3cgYSBzdGFj
ayBvdmVyZmxvdyBpcyBpbW1pbmVudC4gU28sIGp1c3QKKyAgICAvLyB0aHJvdyB0aGUgU3RhY2tP
dmVyZmxvd0Vycm9yIHVuY29uZGl0aW9uYWxseS4KKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQor
ICAgIEFTU0VSVCghdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCkuY29udGFpbnNBZGRyZXNzKGV4ZWMt
PnRvcE9mRnJhbWUoKSkpOworICAgIGlmIChMSUtFTFkodm0uaW50ZXJwcmV0ZXItPnN0YWNrKCku
ZW5zdXJlQ2FwYWNpdHlGb3IoZXhlYy0+dG9wT2ZGcmFtZSgpKSkpCisgICAgICAgIExMSU5UX1JF
VFVSTl9UV08ocGMsIDApOworI2VuZGlmCisKKyAgICBleGVjID0gZXhlYy0+Y2FsbGVyRnJhbWUo
KTsKKyAgICB2bS50b3BDYWxsRnJhbWUgPSBleGVjOworICAgIEVycm9ySGFuZGxpbmdTY29wZSBl
cnJvclNjb3BlKHZtKTsKKyAgICBDb21tb25TbG93UGF0aHM6OmludGVycHJldGVyVGhyb3dJbkNh
bGxlcihleGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOworICAgIHBjID0gcmV0
dXJuVG9UaHJvd0ZvclRocm93bkV4Y2VwdGlvbihleGVjKTsKKyAgICBMTElOVF9SRVRVUk5fVFdP
KHBjLCBleGVjKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2NyZWF0ZV9h
Y3RpdmF0aW9uKQpAQCAtMTA0NSw3ICsxMDgwLDcgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlw
ZSBzZXRVcENhbGwoRXhlYwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyOwogICAg
IENvZGVCbG9jayogY29kZUJsb2NrID0gMDsKICAgICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVu
Y3Rpb24oKSkKLSAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUtPmhvc3RDb2RlRW50cnlGb3Io
a2luZCk7CisgICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9yKHZtLCBr
aW5kLCBNdXN0Q2hlY2tBcml0eSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiAg
ICAgZWxzZSB7CiAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVjdXRhYmxl
ID0gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oZXhlY3V0YWJsZSk7CiAgICAgICAg
IEpTT2JqZWN0KiBlcnJvciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+cHJlcGFyZUZvckV4ZWN1dGlv
bihleGVjQ2FsbGVlLCBjYWxsZWUtPnNjb3BlKCksIGtpbmQpOwpAQCAtMTA1MywxMiArMTA4OCwx
NiBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHNldFVwQ2FsbChFeGVjCiAgICAgICAgICAg
ICBMTElOVF9DQUxMX1RIUk9XKGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCksIGVycm9yKTsKICAg
ICAgICAgY29kZUJsb2NrID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5jb2RlQmxvY2tGb3Ioa2luZCk7
CiAgICAgICAgIEFTU0VSVChjb2RlQmxvY2spOworICAgICAgICBBcml0eUNoZWNrTW9kZSBhcml0
eTsKICAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkg
PCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSkKLSAgICAg
ICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmpzQ29kZVdpdGhBcml0eUNoZWNr
RW50cnlGb3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9IE11c3RDaGVja0FyaXR5OwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5qc0Nv
ZGVFbnRyeUZvcihraW5kKTsKKyAgICAgICAgICAgIGFyaXR5ID0gQXJpdHlDaGVja05vdFJlcXVp
cmVkOworICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9y
KHZtLCBraW5kLCBhcml0eSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiAgICAg
fQogICAgIAorICAgIEFTU0VSVCghIWNvZGVQdHIpOworICAgIAogICAgIGlmICghTExJTlRfQUxX
QVlTX0FDQ0VTU19TTE9XICYmIGNhbGxMaW5rSW5mbykgewogICAgICAgICBFeGVjU3RhdGUqIGV4
ZWNDYWxsZXIgPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwogICAgICAgICAKQEAgLTExMTAs
MTkgKzExNDksMTkgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2NvbnN0cnVjdAog
ICAgIHJldHVybiBnZW5lcmljQ2FsbChleGVjLCBwYywgQ29kZUZvckNvbnN0cnVjdCk7CiB9CiAK
LUxMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zaXplX2FuZF9hbGxvY19mcmFtZV9mb3Jf
dmFyYXJncykKK0xMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zaXplX2ZyYW1lX2Zvcl92
YXJhcmdzKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgLy8gVGhpcyBuZWVkcyB0bzoKICAg
ICAvLyAtIFNldCB1cCBhIGNhbGwgZnJhbWUgd2hpbGUgcmVzcGVjdGluZyB0aGUgdmFyaWFibGUg
YXJndW1lbnRzLgogICAgIAotICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSA9IHNpemVBbmRBbGxv
Y0ZyYW1lRm9yVmFyYXJncyhleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksCisgICAgRXhl
Y1N0YXRlKiBleGVjQ2FsbGVlID0gc2l6ZUZyYW1lRm9yVmFyYXJncyhleGVjLCAmdm0uaW50ZXJw
cmV0ZXItPnN0YWNrKCksCiAgICAgICAgIExMSU5UX09QX0MoNCkuanNWYWx1ZSgpLCBwY1s1XS51
Lm9wZXJhbmQpOwogICAgIExMSU5UX0NBTExfQ0hFQ0tfRVhDRVBUSU9OKGV4ZWMpOwogICAgIAog
ICAgIHZtLm5ld0NhbGxGcmFtZVJldHVyblZhbHVlID0gZXhlY0NhbGxlZTsKIAotICAgIExMSU5U
X0VORCgpOworICAgIExMSU5UX1JFVFVSTl9DQUxMRUVfRlJBTUUoZXhlY0NhbGxlZSk7CiB9CiAK
IExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX3ZhcmFyZ3MpCkBAIC0xMzEyLDEz
ICsxMzUxLDYgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVfZAogICAg
IExMSU5UX0VORCgpOwogfQogCi1MTElOVF9TTE9XX1BBVEhfREVDTCh0aHJvd19mcm9tX25hdGl2
ZV9jYWxsKQotewotICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgQVNTRVJUKHZtLmV4Y2VwdGlvbigp
KTsKLSAgICBMTElOVF9FTkQoKTsKLX0KLQogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X2hhbmRsZV9leGNlcHRpb24pCiB7CiAgICAgTExJTlRfQkVHSU5fTk9fU0VUX1BDKCk7CkBAIC0x
Mzg4LDYgKzE0MjAsMjMgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3B1dF90b19z
YwogICAgIExMSU5UX0VORCgpOwogfQogCitleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBs
bGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvcihWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBw
cm90b0ZyYW1lKQoreworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHZtLT50b3BDYWxsRnJhbWU7Cisg
ICAgaWYgKCFleGVjKQorICAgICAgICBleGVjID0gcHJvdG9GcmFtZS0+c2NvcGUoKS0+Z2xvYmFs
T2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKKyAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihleGVj
KTsKKyAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOworfQorCisjaWYgRU5BQkxFKExMSU5U
X0NfTE9PUCkKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3N0YWNrX2NoZWNr
X2F0X3ZtX2VudHJ5KFZNKiB2bSwgUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCit7CisgICAgYm9v
bCBzdWNjZXNzID0gdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKG5l
d1RvcE9mU3RhY2spOworICAgIHJldHVybiBlbmNvZGVSZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4oc3VjY2VzcyksIDApOworfQorI2VuZGlmCisKIGV4dGVybiAiQyIgdm9pZCBsbGludF93
cml0ZV9iYXJyaWVyX3Nsb3coRXhlY1N0YXRlKiwgSlNDZWxsKiBjZWxsKQogewogICAgIEhlYXA6
OndyaXRlQmFycmllcihjZWxsKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFNsb3dQYXRocy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsMTIgKzM2LDEz
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBFeGVjU3RhdGU7CiBzdHJ1Y3QgSW5zdHJ1Y3Rp
b247CitzdHJ1Y3QgUHJvdG9DYWxsRnJhbWU7CiAKIG5hbWVzcGFjZSBMTEludCB7CiAKIGV4dGVy
biAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3RyYWNlX29wZXJhbmQoRXhlY1N0YXRlKiwg
SW5zdHJ1Y3Rpb24qLCBpbnQgZnJvbVdoZXJlLCBpbnQgb3BlcmFuZCk7CiBleHRlcm4gIkMiIFNs
b3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV92YWx1ZShFeGVjU3RhdGUqLCBJbnN0cnVjdGlv
biosIGludCBmcm9tV2hlcmUsIGludCBvcGVyYW5kKTsKLWV4dGVybiAiQyIgdm9pZCBsbGludF93
cml0ZV9iYXJyaWVyX3Nsb3coRXhlY1N0YXRlKiwgSlNDZWxsKik7CitleHRlcm4gIkMiIHZvaWQg
bGxpbnRfd3JpdGVfYmFycmllcl9zbG93KEV4ZWNTdGF0ZSosIEpTQ2VsbCopIFdURl9JTlRFUk5B
TDsKIAogI2RlZmluZSBMTElOVF9TTE9XX1BBVEhfREVDTChuYW1lKSBcCiAgICAgZXh0ZXJuICJD
IiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfIyNuYW1lKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1
Y3Rpb24qIHBjKQpAQCAtMTAxLDcgKzEwMiw3IEBAIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfbmUKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3
X2Z1bmNfZXhwKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY2FsbCk7
CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2NvbnN0cnVjdCk7Ci1MTElO
VF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3NpemVfYW5kX2FsbG9jX2ZyYW1lX2Zv
cl92YXJhcmdzKTsKK0xMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfc2l6ZV9m
cmFtZV9mb3JfdmFyYXJncyk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRo
X2NhbGxfdmFyYXJncyk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2Nh
bGxfZXZhbCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3RlYXJfb2Zm
X2FjdGl2YXRpb24pOwpAQCAtMTE5LDExICsxMjAsMTQgQEAgTExJTlRfU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9oYQogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9kZWJ1Zyk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVf
d2lsbF9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHJvZmls
ZV9kaWRfY2FsbCk7Ci1MTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0wodGhyb3dfZnJvbV9uYXRp
dmVfY2FsbCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2hhbmRsZV9l
eGNlcHRpb24pOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9yZXNvbHZl
X3Njb3BlKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2Zyb21f
c2NvcGUpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wdXRfdG9fc2Nv
cGUpOworZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdGhyb3dfc3RhY2tfb3Zl
cmZsb3dfZXJyb3IoVk0qLCBQcm90b0NhbGxGcmFtZSopIFdURl9JTlRFUk5BTDsKKyNpZiBFTkFC
TEUoTExJTlRfQ19MT09QKQorZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfc3Rh
Y2tfY2hlY2tfYXRfdm1fZW50cnkoVk0qLCBSZWdpc3RlciopIFdURl9JTlRFUk5BTDsKKyNlbmRp
ZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC05NCw1OCArOTQsMTYgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHByb2dyYW1FbnRyeVRodW5r
RwogCiAvLyBOb24tSklUIChpLmUuIEMgTG9vcCBMTElOVCkgY2FzZToKIAotdHlwZWRlZiBKU1Zh
bHVlICgqRXhlY3V0ZUNvZGUpIChDYWxsRnJhbWUqLCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcyk7
Ci0KLXRlbXBsYXRlPEV4ZWN1dGVDb2RlIGV4ZWN1dGU+Ci1FbmNvZGVkSlNWYWx1ZSBkb0NhbGxU
b0phdmFTY3JpcHQodm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFByb3RvQ2FsbEZyYW1lKiBwcm90
b0NhbGxGcmFtZSkKK0VuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogZXhlY3V0
YWJsZUFkZHJlc3MsIFZNKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lKQogewot
ICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gcHJvdG9DYWxsRnJhbWUtPmNvZGVCbG9jaygpOwot
ICAgIEpTU2NvcGUqIHNjb3BlID0gcHJvdG9DYWxsRnJhbWUtPnNjb3BlKCk7Ci0gICAgSlNPYmpl
Y3QqIGNhbGxlZSA9IHByb3RvQ2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBpbnQgYXJnQ291bnRJ
bmNsdWRpbmdUaGlzID0gcHJvdG9DYWxsRnJhbWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
KCk7Ci0gICAgaW50IGFyZ0NvdW50ID0gcHJvdG9DYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsK
LSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IHByb3RvQ2FsbEZyYW1lLT50aGlzVmFsdWUoKTsKLSAg
ICBKU1N0YWNrJiBzdGFjayA9IHNjb3BlLT52bSgpLT5pbnRlcnByZXRlci0+c3RhY2soKTsKLQot
ICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gc3RhY2sucHVzaEZyYW1lKGNvZGVCbG9jaywg
c2NvcGUsIGFyZ0NvdW50SW5jbHVkaW5nVGhpcywgY2FsbGVlKTsKLSAgICBpZiAoVU5MSUtFTFko
IW5ld0NhbGxGcmFtZSkpIHsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IHNjb3BlLT5nbG9iYWxPYmplY3QoKTsKLSAgICAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhy
b3dTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOwotICAgIH0KLQotICAgIC8vIFNldCB0aGUgYXJn
dW1lbnRzIGZvciB0aGUgY2FsbGVlOgotICAgIG5ld0NhbGxGcmFtZS0+c2V0VGhpc1ZhbHVlKHRo
aXNWYWx1ZSk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdDb3VudDsgKytpKQotICAgICAg
ICBuZXdDYWxsRnJhbWUtPnNldEFyZ3VtZW50KGksIHByb3RvQ2FsbEZyYW1lLT5hcmd1bWVudChp
KSk7Ci0KLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGV4ZWN1dGUobmV3Q2FsbEZyYW1lLCBleGVjdXRh
YmxlQWRkcmVzcyk7Ci0KLSAgICBzdGFjay5wb3BGcmFtZShuZXdDYWxsRnJhbWUpOwotCisgICAg
SlNWYWx1ZSByZXN1bHQgPSBDTG9vcDo6ZXhlY3V0ZShsbGludF9jYWxsX3RvX2phdmFzY3JpcHQs
IGV4ZWN1dGFibGVBZGRyZXNzLCB2bSwgcHJvdG9DYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGV4ZWN1dGVK
UyhDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MpCi17Ci0g
ICAgT3Bjb2RlIGVudHJ5T3Bjb2RlID0gKnJlaW50ZXJwcmV0X2Nhc3Q8T3Bjb2RlKj4oJmV4ZWN1
dGFibGVBZGRyZXNzKTsKLSAgICByZXR1cm4gQ0xvb3A6OmV4ZWN1dGUobmV3Q2FsbEZyYW1lLCBl
bnRyeU9wY29kZSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCog
ZXhlY3V0YWJsZUFkZHJlc3MsIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxs
RnJhbWUsIFJlZ2lzdGVyKikKLXsKLSAgICByZXR1cm4gZG9DYWxsVG9KYXZhU2NyaXB0PGV4ZWN1
dGVKUz4oZXhlY3V0YWJsZUFkZHJlc3MsIHByb3RvQ2FsbEZyYW1lKTsKLX0KLQotc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGV4ZWN1dGVOYXRpdmUoQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUsIHZvaWQq
IGV4ZWN1dGFibGVBZGRyZXNzKQorRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24o
dm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZNKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2Fs
bEZyYW1lKQogewotICAgIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oZXhlY3V0YWJsZUFkZHJlc3MpOwotICAgIHJldHVybiBKU1ZhbHVl
OjpkZWNvZGUoZnVuY3Rpb24obmV3Q2FsbEZyYW1lKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGNh
bGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBFeGVjU3RhdGUqKiwg
UHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lLCBSZWdpc3RlciopCi17Ci0gICAgcmV0dXJu
IGRvQ2FsbFRvSmF2YVNjcmlwdDxleGVjdXRlTmF0aXZlPihleGVjdXRhYmxlQWRkcmVzcywgcHJv
dG9DYWxsRnJhbWUpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gQ0xvb3A6OmV4ZWN1dGUobGxpbnRf
Y2FsbF90b19uYXRpdmVfZnVuY3Rpb24sIGV4ZWN1dGFibGVBZGRyZXNzLCB2bSwgcHJvdG9DYWxs
RnJhbWUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRU
aHVua3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRU
aHVua3MuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50VGh1bmtzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDE2ICszNCwxNCBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAotY2xhc3MgRXhlY1N0YXRlOwotY2xhc3MgUmVnaXN0ZXI7CiBjbGFzcyBW
TTsKIHN0cnVjdCBQcm90b0NhbGxGcmFtZTsKIAogZXh0ZXJuICJDIiB7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwgRXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1l
KiwgUmVnaXN0ZXIqKTsKLSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2
b2lkKiwgRXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKKyAgICBFbmNv
ZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqLCBWTSosIFByb3RvQ2FsbEZyYW1lKik7
CisgICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCosIFZNKiwgUHJv
dG9DYWxsRnJhbWUqKTsKICNpZiBFTkFCTEUoSklUKQotICAgIHZvaWQgcmV0dXJuRnJvbUphdmFT
Y3JpcHQoKTsKKyAgICB2b2lkIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uKCk7CiAjZW5kaWYKIH0K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIs
IDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0xMDIsOSArMTAyLDExIEBAIG1hY3JvIGNDYWxsMihmdW5jdGlv
biwgYXJnMSwgYXJnMikKICAgICAgICAgbW92ZSBhcmcyLCBhMQogICAgICAgICBjYWxsIGZ1bmN0
aW9uCiAgICAgZWxzaWYgWDg2Ci0gICAgICAgIHBva2UgYXJnMSwgMAotICAgICAgICBwb2tlIGFy
ZzIsIDEKKyAgICAgICAgc3VicCA4LCBzcAorICAgICAgICBwdXNoIGFyZzIKKyAgICAgICAgcHVz
aCBhcmcxCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KKyAgICAgICAgYWRkcCAxNiwgc3AKICAgICBl
bHNpZiBTSDQKICAgICAgICAgc2V0YXJncyBhcmcxLCBhcmcyCiAgICAgICAgIGNhbGwgZnVuY3Rp
b24KQEAgLTEyNCwxMSArMTI2LDEyIEBAIG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJn
MiwgYXJnMywKICAgICAgICAgbW92ZSBhcmc0LCBhMwogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAg
ICAgZWxzaWYgWDg2Ci0gICAgICAgIHBva2UgYXJnMSwgMAotICAgICAgICBwb2tlIGFyZzIsIDEK
LSAgICAgICAgcG9rZSBhcmczLCAyCi0gICAgICAgIHBva2UgYXJnNCwgMworICAgICAgICBwdXNo
IGFyZzQKKyAgICAgICAgcHVzaCBhcmczCisgICAgICAgIHB1c2ggYXJnMgorICAgICAgICBwdXNo
IGFyZzEKICAgICAgICAgY2FsbCBmdW5jdGlvbgorICAgICAgICBhZGRwIDE2LCBzcAogICAgIGVs
c2lmIFNINAogICAgICAgICBzZXRhcmdzIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQKICAgICAgICAg
Y2FsbCBmdW5jdGlvbgpAQCAtMTQyLDg1ICsxNDUsNDIgQEAgZW5kCiBtYWNybyBjYWxsU2xvd1Bh
dGgoc2xvd1BhdGgpCiAgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQogICAgIG1vdmUgdDAs
IFBDCi0gICAgbW92ZSB0MSwgY2ZyCi1lbmQKLQotbWFjcm8gZnVuY3Rpb25Qcm9sb2d1ZShleHRy
YVN0YWNrU3BhY2UpCi0gICAgaWYgWDg2Ci0gICAgICAgIHB1c2ggY2ZyCi0gICAgICAgIG1vdmUg
c3AsIGNmcgotICAgIGVuZAotICAgIHB1c2hDYWxsZWVTYXZlcwotICAgIGlmIEFSTSBvciBBUk12
NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTCi0gICAgICAgIHB1c2ggY2ZyCi0gICAgICAg
IHB1c2ggbHIKLSAgICBlbmQKLSAgICBzdWJwIGV4dHJhU3RhY2tTcGFjZSwgc3AKIGVuZAogCi1t
YWNybyBmdW5jdGlvbkVwaWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBhZGRwIGV4dHJhU3Rh
Y2tTcGFjZSwgc3AKLSAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3Ig
TUlQUwotICAgICAgICBwb3AgbHIKLSAgICAgICAgcG9wIGNmcgotICAgIGVuZAotICAgIHBvcENh
bGxlZVNhdmVzCittYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwpCiAgICAgaWYgWDg2
Ci0gICAgICAgIHBvcCBjZnIKLSAgICBlbmQKLWVuZAorICAgICAgICBjb25zdCBlbnRyeSA9IHQ0
CisgICAgICAgIGNvbnN0IHZtID0gdDMKKyAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSB0
NQogCi1tYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0dXJuKQotICAgIGlm
IFg4NgotICAgICAgICBjb25zdCBlbnRyeSA9IHQ1Ci0gICAgICAgIGNvbnN0IHZtVG9wQ2FsbEZy
YW1lID0gdDIKLSAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSB0NAotCi0gICAgICAgIGNv
bnN0IGV4dHJhU3RhY2tTcGFjZSA9IDI4CiAgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDAK
ICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IHQxCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDAg
IyBTYW1lIGFzIHByZXZpb3VzQ0ZSCiAgICAgICAgIGNvbnN0IHRlbXAyID0gdDEgIyBTYW1lIGFz
IHByZXZpb3VzUEMKLSAgICAgICAgY29uc3QgdGVtcDMgPSB0MiAjIHNhbWUgYXMgdm1Ub3BDYWxs
RnJhbWUKLSAgICAgICAgY29uc3QgdGVtcDQgPSB0MwotICAgIGVsc2lmIEFSTSBvciBBUk12N19U
UkFESVRJT05BTAotICAgICAgICBjb25zdCBlbnRyeSA9IGEwCi0gICAgICAgIGNvbnN0IHZtVG9w
Q2FsbEZyYW1lID0gYTEKLSAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSBhMgotICAgICAg
ICBjb25zdCB0b3BPZlN0YWNrID0gYTMKLQotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2Ug
PSAxNgotICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQzCi0gICAgICAgIGNvbnN0IHByZXZp
b3VzUEMgPSBscgotICAgICAgICBjb25zdCB0ZW1wMSA9IHQzICMgU2FtZSBhcyBwcmV2aW91c0NG
UgotICAgICAgICBjb25zdCB0ZW1wMiA9IGEzICMgU2FtZSBhcyB0b3BPZlN0YWNrCi0gICAgICAg
IGNvbnN0IHRlbXAzID0gdDQKLSAgICAgICAgY29uc3QgdGVtcDQgPSB0NQotICAgIGVsc2lmIEFS
TXY3CisgICAgICAgIGNvbnN0IHRlbXAzID0gdDIKKyAgICAgICAgY29uc3QgdGVtcDQgPSB0MyAj
IHNhbWUgYXMgdm0KKyAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwg
b3IgQ19MT09QCiAgICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm1Ub3BD
YWxsRnJhbWUgPSBhMQorICAgICAgICBjb25zdCB2bSA9IGExCiAgICAgICAgIGNvbnN0IHByb3Rv
Q2FsbEZyYW1lID0gYTIKLSAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAg
Y29uc3QgZXh0cmFTdGFja1NwYWNlID0gMjgKICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0
MwogICAgICAgICBjb25zdCBwcmV2aW91c1BDID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0
MyAjIFNhbWUgYXMgcHJldmlvdXNDRlIKLSAgICAgICAgY29uc3QgdGVtcDIgPSBhMyAjIFNhbWUg
YXMgdG9wT2ZTdGFjawotICAgICAgICBjb25zdCB0ZW1wMyA9IHQ0Ci0gICAgICAgIGNvbnN0IHRl
bXA0ID0gdDUKKyAgICAgICAgY29uc3QgdGVtcDIgPSB0NAorICAgICAgICBjb25zdCB0ZW1wMyA9
IHQ1CisgICAgICAgIGNvbnN0IHRlbXA0ID0gdDQgIyBTYW1lIGFzIHRlbXAyCiAgICAgZWxzaWYg
TUlQUwogICAgICAgICBjb25zdCBlbnRyeSA9IGEwCiAgICAgICAgIGNvbnN0IHZtVG9wQ2FsbEZy
YW1lID0gYTEKICAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSBhMgogICAgICAgICBjb25z
dCB0b3BPZlN0YWNrID0gYTMKIAotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAzNgog
ICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQyCiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMg
PSBscgogICAgICAgICBjb25zdCB0ZW1wMSA9IHQzCi0gICAgICAgIGNvbnN0IHRlbXAyID0gdDQK
LSAgICAgICAgY29uc3QgdGVtcDMgPSB0NQorICAgICAgICBjb25zdCB0ZW1wMiA9IHQ1CisgICAg
ICAgIGNvbnN0IHRlbXAzID0gdDQKICAgICAgICAgY29uc3QgdGVtcDQgPSB0NgogICAgIGVsc2lm
IFNINAogICAgICAgICBjb25zdCBlbnRyeSA9IGEwCkBAIC0yMjgsNyArMTg4LDYgQEAgbWFjcm8g
ZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldAogICAgICAgICBjb25zdCBwcm90b0Nh
bGxGcmFtZSA9IGEyCiAgICAgICAgIGNvbnN0IHRvcE9mU3RhY2sgPSBhMwogCi0gICAgICAgIGNv
bnN0IGV4dHJhU3RhY2tTcGFjZSA9IDIwCiAgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDMK
ICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IGxyCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDMg
IyBTYW1lIGFzIHByZXZpb3VzQ0ZSCkBAIC0yMzcsNDkgKzE5Niw3OCBAQCBtYWNybyBkb0NhbGxU
b0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0CiAgICAgICAgIGNvbnN0IHRlbXA0ID0gdDkKICAg
ICBlbmQKIAorICAgIGNhbGxUb0phdmFTY3JpcHRQcm9sb2d1ZSgpCisKICAgICBpZiBYODYKLSAg
ICAgICAgbG9hZHAgW3NwXSwgcHJldmlvdXNQQwotICAgICAgICBtb3ZlIGNmciwgcHJldmlvdXND
RlIKLSAgICBlbmQKLSAgICBmdW5jdGlvblByb2xvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBp
ZiBYODYKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1NwYWNlKzIwW3NwXSwgZW50cnkKLSAgICAg
ICAgbG9hZHAgZXh0cmFTdGFja1NwYWNlKzI0W3NwXSwgdm1Ub3BDYWxsRnJhbWUKLSAgICAgICAg
bG9hZHAgZXh0cmFTdGFja1NwYWNlKzI4W3NwXSwgcHJvdG9DYWxsRnJhbWUKLSAgICAgICAgbG9h
ZHAgZXh0cmFTdGFja1NwYWNlKzMyW3NwXSwgY2ZyCisgICAgICAgIGxvYWRwIDM2W3NwXSwgdm0K
KyAgICAgICAgbG9hZHAgMzJbc3BdLCBlbnRyeQogICAgIGVsc2UKICAgICAgICAgbW92ZSBjZnIs
IHByZXZpb3VzQ0ZSCi0gICAgICAgIG1vdmUgdG9wT2ZTdGFjaywgY2ZyCiAgICAgZW5kCiAKLSAg
ICBzdWJwIChDYWxsRnJhbWVIZWFkZXJTbG90cy0xKSo4LCBjZnIKLSAgICBzdG9yZXAgMCwgQXJn
dW1lbnRDb3VudCs0W2Nmcl0KKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMiwg
MHhiYWQwZGMwMSkKKworICAgICMgVGhlIHN0YWNrIHJlc2VydmVkIHpvbmUgZW5zdXJlcyB0aGF0
IHdlIGhhdmUgYWRlcXVhdGUgc3BhY2UgZm9yIHRoZQorICAgICMgVk1FbnRyeVNlbnRpbmVsRnJh
bWUuIFByb2NlZWQgd2l0aCBhbGxvY2F0aW5nIGFuZCBpbml0aWFsaXppbmcgdGhlCisgICAgIyBz
ZW50aW5lbCBmcmFtZS4KKyAgICBtb3ZlIHNwLCBjZnIKKyAgICBzdWJwIENhbGxGcmFtZUhlYWRl
clNsb3RzICogOCwgY2ZyCiAgICAgc3RvcmVwIDAsIEFyZ3VtZW50Q291bnRbY2ZyXQotICAgIHN0
b3JlcCAwLCBDYWxsZWUrNFtjZnJdCi0gICAgc3RvcmVwIHZtVG9wQ2FsbEZyYW1lLCBDYWxsZWVb
Y2ZyXQotICAgIGxvYWRwIFt2bVRvcENhbGxGcmFtZV0sIHRlbXA0Ci0gICAgc3RvcmVwIDAsIFNj
b3BlQ2hhaW4rNFtjZnJdCi0gICAgc3RvcmVwIHRlbXA0LCBTY29wZUNoYWluW2Nmcl0KLSAgICBz
dG9yZXAgMCwgQ29kZUJsb2NrKzRbY2ZyXQorICAgIHN0b3JlcCB2bSwgQ2FsbGVlW2Nmcl0KKyAg
ICBsb2FkcCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXSwgdGVtcDIKKyAgICBzdG9yZXAgdGVtcDIsIFNj
b3BlQ2hhaW5bY2ZyXQogICAgIHN0b3JlcCAxLCBDb2RlQmxvY2tbY2ZyXQorICAgIGlmIFg4Ngor
ICAgICAgICBsb2FkcCAyOFtzcF0sIHByZXZpb3VzUEMKKyAgICAgICAgbG9hZHAgMjRbc3BdLCBw
cmV2aW91c0NGUgorICAgIGVuZAogICAgIHN0b3JlcCBwcmV2aW91c1BDLCBSZXR1cm5QQ1tjZnJd
CiAgICAgc3RvcmVwIHByZXZpb3VzQ0ZSLCBDYWxsZXJGcmFtZVtjZnJdCi0gICAgbW92ZSBjZnIs
IHRlbXAxCisKKyAgICBpZiBYODYKKyAgICAgICAgbG9hZHAgNDBbc3BdLCBwcm90b0NhbGxGcmFt
ZQorICAgIGVuZAogCiAgICAgbG9hZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3By
b3RvQ2FsbEZyYW1lXSwgdGVtcDIKICAgICBhZGRwIENhbGxGcmFtZUhlYWRlclNsb3RzLCB0ZW1w
MiwgdGVtcDIKICAgICBsc2hpZnRwIDMsIHRlbXAyCi0gICAgc3VicCB0ZW1wMiwgY2ZyCi0gICAg
c3RvcmVwIHRlbXAxLCBDYWxsZXJGcmFtZVtjZnJdCisgICAgc3VicCBjZnIsIHRlbXAyLCB0ZW1w
MQorCisgICAgIyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlvbmFsIHN0YWNrIGNh
cGFjaXR5IGZvciB0aGUgaW5jb21pbmcgYXJncywKKyAgICAjIGFuZCB0aGUgZnJhbWUgZm9yIHRo
ZSBKUyBjb2RlIHdlJ3JlIGV4ZWN1dGluZy4gV2UgbmVlZCB0byBkbyB0aGlzIGNoZWNrCisgICAg
IyBiZWZvcmUgd2Ugc3RhcnQgY29weWluZyB0aGUgYXJncyBmcm9tIHRoZSBwcm90b0NhbGxGcmFt
ZSBiZWxvdy4KKyAgICBicGFlcSB0ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0YWNr
SGVpZ2h0T0sKKworICAgIHN1YnAgY2ZyLCA4LCBzcAorCisgICAgaWYgQ19MT09QCisgICAgICAg
IG1vdmUgZW50cnksIHRlbXAyCisgICAgICAgIG1vdmUgdm0sIHRlbXAzCisgICAgICAgIGNsb29w
Q2FsbFNsb3dQYXRoIF9sbGludF9zdGFja19jaGVja19hdF92bV9lbnRyeSwgdm0sIHRlbXAxCisg
ICAgICAgIGJwZXEgdDAsIDAsIC5zdGFja0NoZWNrRmFpbGVkCisgICAgICAgIG1vdmUgdGVtcDIs
IGVudHJ5CisgICAgICAgIG1vdmUgdGVtcDMsIHZtCisgICAgICAgIGptcCAuc3RhY2tIZWlnaHRP
SworCisuc3RhY2tDaGVja0ZhaWxlZDoKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAg
ICAgbW92ZSB0ZW1wMywgdm0KKyAgICBlbmQKKworICAgIGNDYWxsMihfbGxpbnRfdGhyb3dfc3Rh
Y2tfb3ZlcmZsb3dfZXJyb3IsIHZtLCBwcm90b0NhbGxGcmFtZSkKKyAgICBjYWxsVG9KYXZhU2Ny
aXB0RXBpbG9ndWUoKQorICAgIHJldAogCisuc3RhY2tIZWlnaHRPSzoKKyAgICBtb3ZlIHRlbXAx
LCBzcAogICAgIG1vdmUgNSwgdGVtcDEKIAogLmNvcHlIZWFkZXJMb29wOgogICAgIHN1YmkgMSwg
dGVtcDEKLSAgICBsb2FkcCBbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBz
dG9yZXAgdGVtcDMsIENvZGVCbG9ja1tjZnIsIHRlbXAxLCA4XQotICAgIGxvYWRwIDRbcHJvdG9D
YWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIENvZGVCbG9jays0
W2NmciwgdGVtcDEsIDhdCisgICAgbG9hZGkgVGFnT2Zmc2V0W3Byb3RvQ2FsbEZyYW1lLCB0ZW1w
MSwgOF0sIHRlbXAzCisgICAgc3RvcmVpIHRlbXAzLCBUYWdPZmZzZXQgKyBDb2RlQmxvY2tbc3As
IHRlbXAxLCA4XQorICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHRlbXAx
LCA4XSwgdGVtcDMKKyAgICBzdG9yZWkgdGVtcDMsIFBheWxvYWRPZmZzZXQgKyBDb2RlQmxvY2tb
c3AsIHRlbXAxLCA4XQogICAgIGJ0aW56IHRlbXAxLCAuY29weUhlYWRlckxvb3AKIAogICAgIGxv
YWRpIFByb3RvQ2FsbEZyYW1lOjphcmdDb3VudEFuZENvZGVPcmlnaW5WYWx1ZVtwcm90b0NhbGxG
cmFtZV0sIHRlbXAyCkBAIC0yODgsMTIgKzI3NiwxMCBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3Jp
cHQobWFrZUNhbGwsIGRvUmV0CiAgICAgc3ViaSAxLCB0ZW1wMwogCiAgICAgYmllcSB0ZW1wMiwg
dGVtcDMsIC5jb3B5QXJncwotICAgIG1vdmUgMCwgdGVtcDEKLSAgICBtb3ZlIFVuZGVmaW5lZFRh
ZywgdGVtcDQKIC5maWxsRXh0cmFBcmdzTG9vcDoKICAgICBzdWJpIDEsIHRlbXAzCi0gICAgc3Rv
cmVwIHRlbXAxLCBUaGlzQXJndW1lbnRPZmZzZXQrOCtQYXlsb2FkT2Zmc2V0W2NmciwgdGVtcDMs
IDhdCi0gICAgc3RvcmVwIHRlbXA0LCBUaGlzQXJndW1lbnRPZmZzZXQrOCtUYWdPZmZzZXRbY2Zy
LCB0ZW1wMywgOF0KKyAgICBzdG9yZWkgVW5kZWZpbmVkVGFnLCBUaGlzQXJndW1lbnRPZmZzZXQg
KyA4ICsgVGFnT2Zmc2V0W3NwLCB0ZW1wMywgOF0KKyAgICBzdG9yZWkgMCwgVGhpc0FyZ3VtZW50
T2Zmc2V0ICsgOCArIFBheWxvYWRPZmZzZXRbc3AsIHRlbXAzLCA4XQogICAgIGJpbmVxIHRlbXAy
LCB0ZW1wMywgLmZpbGxFeHRyYUFyZ3NMb29wCiAKIC5jb3B5QXJnczoKQEAgLTMwMiw1MiArMjg4
LDg3IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXQKIC5jb3B5QXJn
c0xvb3A6CiAgICAgYnRpeiB0ZW1wMiwgLmNvcHlBcmdzRG9uZQogICAgIHN1YmkgMSwgdGVtcDIK
LSAgICBsb2FkcCBQYXlsb2FkT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCi0gICAgbG9h
ZHAgVGFnT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXA0Ci0gICAgc3RvcmVwIHRlbXAzLCBU
aGlzQXJndW1lbnRPZmZzZXQrOCtQYXlsb2FkT2Zmc2V0W2NmciwgdGVtcDIsIDhdCi0gICAgc3Rv
cmVwIHRlbXA0LCBUaGlzQXJndW1lbnRPZmZzZXQrOCtUYWdPZmZzZXRbY2ZyLCB0ZW1wMiwgOF0K
KyAgICBsb2FkaSBUYWdPZmZzZXRbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMKKyAgICBzdG9yZWkg
dGVtcDMsIFRoaXNBcmd1bWVudE9mZnNldCArIDggKyBUYWdPZmZzZXRbc3AsIHRlbXAyLCA4XQor
ICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMKKyAgICBzdG9y
ZWkgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNldCArIDggKyBQYXlsb2FkT2Zmc2V0W3NwLCB0ZW1w
MiwgOF0KICAgICBqbXAgLmNvcHlBcmdzTG9vcAogCiAuY29weUFyZ3NEb25lOgotICAgIGlmIFg4
NgotICAgICAgICBsb2FkcCBleHRyYVN0YWNrU3BhY2UrMjRbc3BdLCB2bVRvcENhbGxGcmFtZQot
ICAgIGVuZAotICAgIHN0b3JlcCBjZnIsIFt2bVRvcENhbGxGcmFtZV0KKyAgICBzdG9yZXAgc3As
IFZNOjp0b3BDYWxsRnJhbWVbdm1dCiAKLSAgICBtYWtlQ2FsbChlbnRyeSwgdGVtcDEpCisgICAg
bWFrZUNhbGwoZW50cnksIHRlbXAxLCB0ZW1wMikKIAogICAgIGJwZXEgQ29kZUJsb2NrW2Nmcl0s
IDEsIC5jYWxsZWVGcmFtZVBvcHBlZAogICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgog
CiAuY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAzICMgVk0u
dG9wQ2FsbEZyYW1lCi0gICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0ZW1wNAotICAgIHN0b3Jl
cCB0ZW1wNCwgW3RlbXAzXQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0ZW1wMyAjIFZNCisgICAg
bG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0ZW1wNCAjIHByZXZpb3VzIHRvcENhbGxGcmFtZQorICAg
IHN0b3JlcCB0ZW1wNCwgVk06OnRvcENhbGxGcmFtZVt0ZW1wM10KIAotICAgIGRvUmV0dXJuKGV4
dHJhU3RhY2tTcGFjZSkKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQorICAgIHJldAog
ZW5kCiAKLW1hY3JvIG1ha2VKYXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCkKLSAgICBjYWxsIGVu
dHJ5CittYWNybyBtYWtlSmF2YVNjcmlwdENhbGwoZW50cnksIHRlbXAsIHVudXNlZCkKKyAgICBh
ZGRwIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25t
ZW50KHQyLCAweGJhZDBkYzAyKQorICAgIGlmIENfTE9PUAorICAgICAgICBjbG9vcENhbGxKU0Z1
bmN0aW9uIGVudHJ5CisgICAgZWxzZQorICAgICAgICBjYWxsIGVudHJ5CisgICAgZW5kCisgICAg
Y2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4YmFkMGRjMDMpCisgICAgc3VicCBDYWxs
ZXJGcmFtZUFuZFBDU2l6ZSwgc3AKIGVuZAogCi1tYWNybyBtYWtlSG9zdEZ1bmN0aW9uQ2FsbChl
bnRyeSwgdGVtcCkKLSAgICBtb3ZlIGVudHJ5LCB0ZW1wCi0gICAgaWYgWDg2Ci0gICAgICAgICMg
UHV0IGNmciBvbiBzdGFjayBhcyBhcmcwLCBhbHNvIHB1dCBpdCBpbiBlY3ggZm9yICJmYXN0Y2Fs
bCIgdGFyZ2V0cwotICAgICAgICBwb2tlIGNmciwgMAotICAgICAgICBtb3ZlIGNmciwgdDIKK21h
Y3JvIG1ha2VIb3N0RnVuY3Rpb25DYWxsKGVudHJ5LCB0ZW1wMSwgdGVtcDIpCisgICAgbW92ZSBl
bnRyeSwgdGVtcDEKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgbW92ZSBzcCwgYTAKKyAgICAgICAg
c3RvcmVwIGNmciwgW3NwXQorICAgICAgICBzdG9yZXAgbHIsIFB0clNpemVbc3BdCisgICAgICAg
IGNsb29wQ2FsbE5hdGl2ZSB0ZW1wMQogICAgIGVsc2UKLSAgICAgICAgbW92ZSBjZnIsIGEwCisg
ICAgICAgIGlmIFg4NgorICAgICAgICAgICAgIyBQdXQgY2FsbGVlIGZyYW1lIHBvaW50ZXIgb24g
c3RhY2sgYXMgYXJnMCwgYWxzbyBwdXQgaXQgaW4gZWN4IGZvciAiZmFzdGNhbGwiIHRhcmdldHMK
KyAgICAgICAgICAgIG1vdmUgMCwgdGVtcDIKKyAgICAgICAgICAgIG1vdmUgdGVtcDIsIDRbc3Bd
ICMgcHV0IDAgaW4gUmV0dXJuUEMKKyAgICAgICAgICAgIG1vdmUgY2ZyLCBbc3BdICMgcHV0IGNh
bGxlciBmcmFtZSBwb2ludGVyIGludG8gY2FsbGVlIGZyYW1lIHNpbmNlIGNhbGxlZSBwcm9sb2d1
ZSBjYW4ndAorICAgICAgICAgICAgbW92ZSBzcCwgdDIgIyB0MiBpcyBlY3gKKyAgICAgICAgICAg
IHB1c2ggdGVtcDIgIyBQdXNoIGR1bW15IGFyZzEKKyAgICAgICAgICAgIHB1c2ggdDIKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgbW92ZSBzcCwgYTAKKyAgICAgICAgICAgIGFkZHAgQ2FsbGVy
RnJhbWVBbmRQQ1NpemUsIHNwCisgICAgICAgIGVuZAorICAgICAgICBjYWxsIHRlbXAxCisgICAg
ICAgIGlmIFg4NgorICAgICAgICAgICAgYWRkcCA4LCBzcAorICAgICAgICBlbHNlCisgICAgICAg
ICAgICBzdWJwIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAorICAgICAgICBlbmQKICAgICBlbmQK
LSAgICBjYWxsIHRlbXAKIGVuZAogCi1tYWNybyBkb1JldHVybkZyb21KYXZhU2NyaXB0KGV4dHJh
U3RhY2tTcGFjZSkKLV9yZXR1cm5Gcm9tSmF2YVNjcmlwdDoKLSAgICBmdW5jdGlvbkVwaWxvZ3Vl
KGV4dHJhU3RhY2tTcGFjZSkKK19oYW5kbGVVbmNhdWdodEV4Y2VwdGlvbjoKKyAgICBsb2FkcCBT
Y29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MworICAgIGFuZHAgTWFya2VkQmxvY2tN
YXNrLCB0MworICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3Zt
W3QzXSwgdDMKKyAgICBsb2FkcCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKworICAg
ICMgU28gZmFyLCB3ZSd2ZSB1bndvdW5kIHRoZSBzdGFjayB0byB0aGUgZnJhbWUganVzdCBiZWxv
dyB0aGUgc2VudGluZWwgZnJhbWUuCisgICAgIyBXZSBuZWVkIHRvIHBvcCB0byB0aGUgc2VudGlu
ZWwgZnJhbWUgYW5kIGRvIHRoZSBuZWNlc3NhcnkgY2xlYW4gdXAgZm9yCisgICAgIyByZXR1cm5p
bmcgdG8gdGhlIGNhbGxlciBDIGZyYW1lLgorICAgIGxvYWRwIENhbGxlckZyYW1lICsgUGF5bG9h
ZE9mZnNldFtjZnJdLCBjZnIKKworICAgIGxvYWRwIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2Zy
XSwgdDMgIyBWTQorICAgIGxvYWRwIFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQ1
ICMgcHJldmlvdXMgdG9wQ2FsbEZyYW1lCisgICAgc3RvcmVwIHQ1LCBWTTo6dG9wQ2FsbEZyYW1l
W3QzXQorCisgICAgY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKICAgICByZXQKLWVuZAogCiBt
YWNybyBkb1JldHVybkZyb21Ib3N0RnVuY3Rpb24oZXh0cmFTdGFja1NwYWNlKQogICAgIGZ1bmN0
aW9uRXBpbG9ndWUoZXh0cmFTdGFja1NwYWNlKQpAQCAtMzc3LDE0ICszOTgsMTIgQEAgZW5kCiBt
YWNybyBjYWxsQ2FsbFNsb3dQYXRoKHNsb3dQYXRoLCBhY3Rpb24pCiAgICAgc3RvcmVwIFBDLCBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwg
UEMpCi0gICAgbW92ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQwKQogZW5kCiAKIG1hY3JvIGNhbGxX
YXRjaGRvZ1RpbWVySGFuZGxlcih0aHJvd0hhbmRsZXIpCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVu
dENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICBjQ2FsbDIoX2xsaW50X3Nsb3dfcGF0aF9oYW5k
bGVfd2F0Y2hkb2dfdGltZXIsIGNmciwgUEMpCi0gICAgbW92ZSB0MSwgY2ZyCiAgICAgYnRwbnog
dDAsIHRocm93SGFuZGxlcgogICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2Zy
XSwgUEMKIGVuZApAQCAtMzk1LDggKzQxNCw4IEBAIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JM
b29wKCkKICAgICAgICAgbWFjcm8gKCkKICAgICAgICAgICAgIHN0b3JlaSBQQywgQXJndW1lbnRD
b3VudCArIFRhZ09mZnNldFtjZnJdCiAgICAgICAgICAgICBjQ2FsbDIoX2xsaW50X2xvb3Bfb3Ny
LCBjZnIsIFBDKQotICAgICAgICAgICAgbW92ZSB0MSwgY2ZyCiAgICAgICAgICAgICBidHB6IHQw
LCAucmVjb3ZlcgorICAgICAgICAgICAgbW92ZSB0MSwgc3AKICAgICAgICAgICAgIGptcCB0MAog
ICAgICAgICAucmVjb3ZlcjoKICAgICAgICAgICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdP
ZmZzZXRbY2ZyXSwgUEMKQEAgLTU1MywxOCArNTcyLDM0IEBAIGVuZAogIyBFbnRyeXBvaW50cyBp
bnRvIHRoZSBpbnRlcnByZXRlcgogCiAjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEs
IHdoaWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgotbWFjcm8gZnVuY3Rpb25B
cml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd19wYXRoKQorbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNr
KGRvbmVMYWJlbCwgc2xvd1BhdGgpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50
Q291bnRbY2ZyXSwgdDAKICAgICBiaWFlcSB0MCwgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNb
dDFdLCBkb25lTGFiZWwKLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKSAgICMgVGhpcyBz
bG93X3BhdGggaGFzIGEgc2ltcGxlIHByb3RvY29sOiB0MCA9IDAgPT4gbm8gZXJyb3IsIHQwICE9
IDAgPT4gZXJyb3IKLSAgICBidGl6IHQwLCAuaXNBcml0eUZpeHVwTmVlZGVkCisgICAgY0NhbGwy
KHNsb3dQYXRoLCBjZnIsIFBDKSAgICMgVGhpcyBzbG93UGF0aCBoYXMgYSBzaW1wbGUgcHJvdG9j
b2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgorICAgIGJ0aXogdDAsIC5u
b0Vycm9yCiAgICAgbW92ZSB0MSwgY2ZyICAgIyB0MSBjb250YWlucyBjYWxsZXIgZnJhbWUKICAg
ICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIAotLmlzQXJpdHlG
aXh1cE5lZWRlZDoKKy5ub0Vycm9yOgorICAgICMgdDEgcG9pbnRzIHRvIEFyaXR5Q2hlY2tEYXRh
LgorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnRodW5rVG9DYWxs
W3QxXSwgdDIKKyAgICBidHB6IHQyLCAucHJvY2VlZElubGluZQorICAgIAorICAgIGxvYWRwIENv
bW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnJldHVyblBDW3QxXSwgdDUKKyAgICBsb2Fk
cCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3QxXSwg
dDAKKyAgICBjYWxsIHQyCisgICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgbG9hZHAgUmV0
dXJuUENbY2ZyXSwgdDAKKyAgICAgICAgbG9hZHAgW3QwXSwgdDAKKyAgICBlbmQKKyAgICBqbXAg
LmNvbnRpbnVlCisKKy5wcm9jZWVkSW5saW5lOgorICAgIGxvYWRpIENvbW1vblNsb3dQYXRoczo6
QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MQogICAgIGJ0aXogdDEsIC5j
b250aW51ZQogCi0gICAgLy8gTW92ZSBmcmFtZSB1cCAidDEiIHNsb3RzCisgICAgLy8gTW92ZSBm
cmFtZSB1cCAidDEgKiAyIiBzbG90cworICAgIGxzaGlmdHAgMSwgdDEKICAgICBuZWdpIHQxCiAg
ICAgbW92ZSBjZnIsIHQzCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRb
Y2ZyXSwgdDIKQEAgLTU4OSw2ICs2MjQsNyBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9u
ZUxhYmVsLCBzbG93CiAKICAgICBsc2hpZnRwIDMsIHQxCiAgICAgYWRkcCB0MSwgY2ZyCisgICAg
YWRkcCB0MSwgc3AKIC5jb250aW51ZToKICAgICAjIFJlbG9hZCBDb2RlQmxvY2sgYW5kIFBDLCBz
aW5jZSB0aGUgc2xvd19wYXRoIGNsb2JiZXJlZCBpdC4KICAgICBsb2FkcCBDb2RlQmxvY2tbY2Zy
XSwgdDEKQEAgLTU5Niw3ICs2MzIsNiBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxh
YmVsLCBzbG93CiAgICAgam1wIGRvbmVMYWJlbAogZW5kCiAKLQogbWFjcm8gYnJhbmNoSWZFeGNl
cHRpb24obGFiZWwpCiAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwogICAgIGFuZHAgTWFy
a2VkQmxvY2tNYXNrLCB0MwpAQCAtNjExLDYgKzY0Niw3IEBAIGVuZAogCiBfbGxpbnRfb3BfZW50
ZXI6CiAgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50
KHQyLCAweGRlYWQwMGUxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MiAgICAgICAgICAg
ICAgICAvLyB0MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jawogICAgIGxvYWRpIENvZGVCbG9j
azo6bV9udW1WYXJzW3QyXSwgdDIgICAgICAvLyB0MjxzaXplX3Q+ID0gdDI8Q29kZUJsb2NrPi5t
X251bVZhcnMKICAgICBidGl6IHQyLCAub3BFbnRlckRvbmUKQEAgLTE5MjAsMTIgKzE5NTYsMTEg
QEAgbWFjcm8gZG9DYWxsKHNsb3dQYXRoKQogICAgIHN0b3JlaSB0MCwgU2NvcGVDaGFpbiArIFBh
eWxvYWRPZmZzZXRbdDNdCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIHN0b3JlaSBQQywgQXJn
dW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCi0gICAgc3RvcmVwIGNmciwgQ2FsbGVyRnJhbWVb
dDNdCiAgICAgc3RvcmVpIHQyLCBBcmd1bWVudENvdW50ICsgUGF5bG9hZE9mZnNldFt0M10KICAg
ICBzdG9yZWkgQ2VsbFRhZywgQ2FsbGVlICsgVGFnT2Zmc2V0W3QzXQogICAgIHN0b3JlaSBDZWxs
VGFnLCBTY29wZUNoYWluICsgVGFnT2Zmc2V0W3QzXQotICAgIG1vdmUgdDMsIGNmcgotICAgIGNh
bGxUYXJnZXRGdW5jdGlvbih0MSkKKyAgICBhZGRwIENhbGxlckZyYW1lQW5kUENTaXplLCB0Mwor
ICAgIGNhbGxUYXJnZXRGdW5jdGlvbih0MSwgdDMpCiAKIC5vcENhbGxTbG93OgogICAgIHNsb3dQ
YXRoRm9yQ2FsbChzbG93UGF0aCkKQEAgLTIwMzksMTAgKzIwNzQsMTIgQEAgX2xsaW50X29wX2Nh
dGNoOgogICAgICMgdGhlIGludGVycHJldGVyJ3MgdGhyb3cgdHJhbXBvbGluZSAoc2VlIF9sbGlu
dF90aHJvd190cmFtcG9saW5lKS4KICAgICAjIFRoZSB0aHJvd2luZyBjb2RlIG11c3QgaGF2ZSBr
bm93biB0aGF0IHdlIHdlcmUgdGhyb3dpbmcgdG8gdGhlIGludGVycHJldGVyLAogICAgICMgYW5k
IGhhdmUgc2V0IFZNOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3cuCi0gICAgbG9hZHAgU2Nv
cGVDaGFpbltjZnJdLCB0MworICAgIGxvYWRwIFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0W2Nm
cl0sIHQzCiAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgbG9hZHAgTWFya2VkQmxv
Y2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwogICAgIGxvYWRwIFZNOjpjYWxs
RnJhbWVGb3JUaHJvd1t0M10sIGNmcgorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwo
KQorCiAgICAgbG9hZGkgVk06OnRhcmdldEludGVycHJldGVyUENGb3JUaHJvd1t0M10sIFBDCiAg
ICAgbG9hZGkgVk06Om1fZXhjZXB0aW9uICsgUGF5bG9hZE9mZnNldFt0M10sIHQwCiAgICAgbG9h
ZGkgVk06Om1fZXhjZXB0aW9uICsgVGFnT2Zmc2V0W3QzXSwgdDEKQEAgLTIxMTYsNzQgKzIxNTMs
NjIgQEAgX2xsaW50X3Rocm93X2R1cmluZ19jYWxsX3RyYW1wb2xpbmU6CiAKIAogbWFjcm8gbmF0
aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCisKKyAgICBmdW5j
dGlvblByb2xvZ3VlKCkKICAgICBzdG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0KICAgICBsb2FkcCBD
YWxsZXJGcmFtZVtjZnJdLCB0MAogICAgIGxvYWRpIFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0
W3QwXSwgdDEKICAgICBzdG9yZWkgQ2VsbFRhZywgU2NvcGVDaGFpbiArIFRhZ09mZnNldFtjZnJd
CiAgICAgc3RvcmVpIHQxLCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtjZnJdCiAgICAgaWYg
WDg2Ci0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBNYXJr
ZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBX
ZWFrU2V0OjptX3ZtW3QzXSwgdDMKKyAgICAgICAgc3VicCA4LCBzcCAjIGFsaWduIHN0YWNrIHBv
aW50ZXIKKyAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQxCisgICAgICAgIGxvYWRwIE1h
cmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QxXSwgdDMKICAgICAgICAgc3Rv
cmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KLSAgICAgICAgcGVlayAwLCB0MQotICAgICAg
ICBzdG9yZXAgdDEsIFJldHVyblBDW2Nmcl0KICAgICAgICAgbW92ZSBjZnIsIHQyICAjIHQyID0g
ZWN4Ci0gICAgICAgIHN1YnAgMTYgLSA0LCBzcAorICAgICAgICBzdG9yZXAgdDIsIFtzcF0KICAg
ICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQogICAgICAgICBsb2Fk
cCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQotICAgICAgICBtb3ZlIHQwLCBjZnIK
KyAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCiAgICAg
ICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0gICAgICAgIGFkZHAgMTYg
LSA0LCBzcAotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAg
TWFya2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0
ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3
X1RSQURJVElPTkFMIG9yIE1JUFMgb3IgU0g0CiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2Zy
XSwgdDMKICAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgICAgIGxvYWRwIE1h
cmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICAgICAgc3Rv
cmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KLSAgICAgICAgbW92ZSB0MCwgdDIKLSAgICAg
ICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAgICBzdG9yZXAgdDMs
IFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCi0gICAgICAgIGxvYWRpIENhbGxl
ZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKLSAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9l
eGVjdXRhYmxlW3QxXSwgdDEKLSAgICAgICAgbW92ZSB0MiwgY2ZyCisgICAgICAgIGFkZHAgOCwg
c3AKKyAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgQ19MT09Q
IG9yIE1JUFMgb3IgU0g0CisgICAgICAgIHN1YnAgOCwgc3AgIyBhbGlnbiBzdGFjayBwb2ludGVy
CisgICAgICAgICMgdDEgYWxyZWFkeSBjb250YWlucyB0aGUgU2NvcGVDaGFpbi4KKyAgICAgICAg
YW5kcCBNYXJrZWRCbG9ja01hc2ssIHQxCisgICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dl
YWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QxXSwgdDEKKyAgICAgICAgc3RvcmVwIGNmciwgVk06OnRv
cENhbGxGcmFtZVt0MV0KICAgICAgICAgaWYgTUlQUyBvciBTSDQKLSAgICAgICAgICAgIG1vdmUg
dDAsIGEwCisgICAgICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbW92ZSBjZnIsIHQwCiAgICAgICAgIGVuZAotICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZz
ZXRUb0Z1bmN0aW9uW3QxXQotICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVy
bih0MykKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1h
cmtlZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCAr
IFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgIGVsc2lmIENfTE9PUAotICAgICAgICBsb2FkcCBT
Y29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwotICAg
ICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQz
Ci0gICAgICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0gICAgICAgIG1vdmUg
dDAsIHQyCi0gICAgICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKLSAgICAg
ICAgc3RvcmVwIHQzLCBSZXR1cm5QQ1tjZnJdCi0gICAgICAgIG1vdmUgY2ZyLCB0MAogICAgICAg
ICBsb2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAgICAgIGxvYWRwIEpT
RnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCi0gICAgICAgIG1vdmUgdDIsIGNmcgotICAg
ICAgICBjbG9vcENhbGxOYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0gICAg
ICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQorICAgICAgICBjaGVja1N0
YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKKyAgICAgICAgaWYgQ19MT09QCisg
ICAgICAgICAgICBjbG9vcENhbGxOYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFd
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rp
b25bdDFdCisgICAgICAgIGVuZAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAg
ICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2FkcCBNYXJrZWRCbG9j
azo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCisgICAgICAgIGFkZHAgOCwgc3AK
ICAgICBlbHNlCiAgICAgICAgIGVycm9yCiAgICAgZW5kCi0gICAgYmluZXEgVk06Om1fZXhjZXB0
aW9uICsgVGFnT2Zmc2V0W3QzXSwgRW1wdHlWYWx1ZVRhZywgLmV4Y2VwdGlvbgorICAgIAorICAg
IGZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIGJpbmVxIFZNOjptX2V4Y2VwdGlvbiArIFRhZ09mZnNl
dFt0M10sIEVtcHR5VmFsdWVUYWcsIC5oYW5kbGVFeGNlcHRpb24KICAgICByZXQKLS5leGNlcHRp
b246Ci0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQxKSAjIFRoaXMgaXMgcmVh
bGx5IG9ubHkgbmVlZGVkIG9uIFg4NgotICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZz
ZXRbY2ZyXSwgUEMKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2Nh
bGwpCisKKy5oYW5kbGVFeGNlcHRpb246CisgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFt
ZVt0M10KKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBqbXAgX2xsaW50
X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIGVuZAogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHly
aWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUyLDkgKzUy
LDEwIEBAIG1hY3JvIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKIGVuZAogCiBtYWNybyBjQ2FsbDIoZnVu
Y3Rpb24sIGFyZzEsIGFyZzIpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDQsIDB4
YmFkMGMwMDIpCiAgICAgaWYgWDg2XzY0Ci0gICAgICAgIG1vdmUgYXJnMSwgdDUKLSAgICAgICAg
bW92ZSBhcmcyLCB0NAorICAgICAgICBtb3ZlIGFyZzEsIHQ0CisgICAgICAgIG1vdmUgYXJnMiwg
dDUKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIEFSTTY0CiAgICAgICAgIG1vdmUg
YXJnMSwgdDAKQEAgLTY5LDkgKzcwLDEwIEBAIGVuZAogCiAjIFRoaXMgYmFyZWx5IHdvcmtzLiBh
cmczIGFuZCBhcmc0IHNob3VsZCBwcm9iYWJseSBiZSBpbW1lZGlhdGVzLgogbWFjcm8gY0NhbGw0
KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQorICAgIGNoZWNrU3RhY2tQb2ludGVy
QWxpZ25tZW50KHQ0LCAweGJhZDBjMDA0KQogICAgIGlmIFg4Nl82NAotICAgICAgICBtb3ZlIGFy
ZzEsIHQ1Ci0gICAgICAgIG1vdmUgYXJnMiwgdDQKKyAgICAgICAgbW92ZSBhcmcxLCB0NAorICAg
ICAgICBtb3ZlIGFyZzIsIHQ1CiAgICAgICAgIG1vdmUgYXJnMywgdDEKICAgICAgICAgbW92ZSBh
cmc0LCB0MgogICAgICAgICBjYWxsIGZ1bmN0aW9uCkBAIC04OCw2NiArOTAsNDkgQEAgbWFjcm8g
Y0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLAogICAgIGVuZAogZW5kCiAKLW1hY3Jv
IGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQorbWFjcm8gZG9DYWxsVG9KYXZhU2Ny
aXB0KG1ha2VDYWxsKQogICAgIGlmIFg4Nl82NAotICAgICAgICBwdXNoIGNmcgotICAgICAgICBt
b3ZlIHNwLCBjZnIKLSAgICBlbHNpZiBBUk02NAotICAgICAgICBwdXNoTFJBbmRGUAotICAgIGVu
ZAotICAgIHB1c2hDYWxsZWVTYXZlcwotICAgIGlmIFg4Nl82NAotICAgICAgICBzdWJwIGV4dHJh
U3RhY2tTcGFjZSwgc3AKLSAgICBlbmQKLWVuZAotCi1tYWNybyBmdW5jdGlvbkVwaWxvZ3VlKGV4
dHJhU3RhY2tTcGFjZSkKLSAgICBpZiBYODZfNjQKLSAgICAgICAgYWRkcCBleHRyYVN0YWNrU3Bh
Y2UsIHNwCi0gICAgZW5kCi0gICAgcG9wQ2FsbGVlU2F2ZXMKLSAgICBpZiBYODZfNjQKLSAgICAg
ICAgcG9wIGNmcgotICAgIGVsc2lmIEFSTTY0Ci0gICAgICAgIHBvcExSQW5kRlAKLSAgICBlbmQK
LWVuZAotCi1tYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0dXJuKQotICAg
IGlmIFg4Nl82NAotICAgICAgICBjb25zdCBlbnRyeSA9IHQ1Ci0gICAgICAgIGNvbnN0IHZtVG9w
Q2FsbEZyYW1lID0gdDQKKyAgICAgICAgY29uc3QgZW50cnkgPSB0NAorICAgICAgICBjb25zdCB2
bSA9IHQ1CiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gdDEKLSAgICAgICAgY29uc3Qg
dG9wT2ZTdGFjayA9IHQyCiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gOAogICAg
ICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQwCiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSB0
NgogICAgICAgICBjb25zdCB0ZW1wMSA9IHQwCiAgICAgICAgIGNvbnN0IHRlbXAyID0gdDMKICAg
ICAgICAgY29uc3QgdGVtcDMgPSB0NgotICAgIGVsc2lmIEFSTTY0CisgICAgZWxzaWYgQVJNNjQg
b3IgQ19MT09QCiAgICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm1Ub3BD
YWxsRnJhbWUgPSBhMQorICAgICAgICBjb25zdCB2bSA9IGExCiAgICAgICAgIGNvbnN0IHByb3Rv
Q2FsbEZyYW1lID0gYTIKLSAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAg
Y29uc3QgZXh0cmFTdGFja1NwYWNlID0gMAotICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQ0
CisgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDUKICAgICAgICAgY29uc3QgcHJldmlvdXNQ
QyA9IGxyCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDMKLSAgICAgICAgY29uc3QgdGVtcDIgPSB0
NQorICAgICAgICBjb25zdCB0ZW1wMiA9IHQ0CiAgICAgICAgIGNvbnN0IHRlbXAzID0gdDYKICAg
ICBlbmQKIAotICAgIGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQorICAgIGNhbGxU
b0phdmFTY3JpcHRQcm9sb2d1ZSgpCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAgbG9hZHAgNyo4
W3NwXSwgcHJldmlvdXNQQworICAgICAgICBtb3ZlIDYqOFtzcF0sIHByZXZpb3VzQ0ZSCisgICAg
ZWxzaWYgQVJNNjQKKyAgICAgICAgbW92ZSBjZnIsIHByZXZpb3VzQ0ZSCisgICAgZW5kCisKKyAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMiwgMHhiYWQwZGMwMSkKIAotICAgIG1v
dmUgdG9wT2ZTdGFjaywgY2ZyCi0gICAgc3VicCAoQ2FsbEZyYW1lSGVhZGVyU2xvdHMtMSkqOCwg
Y2ZyCisgICAgIyBUaGUgc3RhY2sgcmVzZXJ2ZWQgem9uZSBlbnN1cmVzIHRoYXQgd2UgaGF2ZSBh
ZGVxdWF0ZSBzcGFjZSBmb3IgdGhlCisgICAgIyBWTUVudHJ5U2VudGluZWxGcmFtZS4gUHJvY2Vl
ZCB3aXRoIGFsbG9jYXRpbmcgYW5kIGluaXRpYWxpemluZyB0aGUKKyAgICAjIHNlbnRpbmVsIGZy
YW1lLgorICAgIG1vdmUgc3AsIGNmcgorICAgIHN1YnAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMgKiA4
LCBjZnIKICAgICBzdG9yZXAgMCwgQXJndW1lbnRDb3VudFtjZnJdCi0gICAgc3RvcmVwIHZtVG9w
Q2FsbEZyYW1lLCBDYWxsZWVbY2ZyXQotICAgIGxvYWRwIFt2bVRvcENhbGxGcmFtZV0sIHRlbXAx
Ci0gICAgc3RvcmVwIHRlbXAxLCBTY29wZUNoYWluW2Nmcl0KKyAgICBzdG9yZXAgdm0sIENhbGxl
ZVtjZnJdCisgICAgbG9hZHAgVk06OnRvcENhbGxGcmFtZVt2bV0sIHRlbXAyCisgICAgc3RvcmVw
IHRlbXAyLCBTY29wZUNoYWluW2Nmcl0KICAgICBzdG9yZXAgMSwgQ29kZUJsb2NrW2Nmcl0KICAg
ICBpZiBYODZfNjQKICAgICAgICAgbG9hZHAgNyo4W3NwXSwgcHJldmlvdXNQQwpAQCAtMTU1LDIw
ICsxNDAsNDUgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldAogICAg
IGVuZAogICAgIHN0b3JlcCBwcmV2aW91c1BDLCBSZXR1cm5QQ1tjZnJdCiAgICAgc3RvcmVwIHBy
ZXZpb3VzQ0ZSLCBDYWxsZXJGcmFtZVtjZnJdCi0gICAgbW92ZSBjZnIsIHRlbXAxCiAKICAgICBs
b2FkaSBQcm90b0NhbGxGcmFtZTo6cGFkZGVkQXJnQ291bnRbcHJvdG9DYWxsRnJhbWVdLCB0ZW1w
MgogICAgIGFkZHAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMsIHRlbXAyLCB0ZW1wMgogICAgIGxzaGlm
dHAgMywgdGVtcDIKLSAgICBzdWJwIHRlbXAyLCBjZnIKLSAgICBzdG9yZXAgdGVtcDEsIENhbGxl
ckZyYW1lW2Nmcl0KKyAgICBzdWJwIGNmciwgdGVtcDIsIHRlbXAxCiAKKyAgICAjIEVuc3VyZSB0
aGF0IHdlIGhhdmUgZW5vdWdoIGFkZGl0aW9uYWwgc3RhY2sgY2FwYWNpdHkgZm9yIHRoZSBpbmNv
bWluZyBhcmdzLAorICAgICMgYW5kIHRoZSBmcmFtZSBmb3IgdGhlIEpTIGNvZGUgd2UncmUgZXhl
Y3V0aW5nLiBXZSBuZWVkIHRvIGRvIHRoaXMgY2hlY2sKKyAgICAjIGJlZm9yZSB3ZSBzdGFydCBj
b3B5aW5nIHRoZSBhcmdzIGZyb20gdGhlIHByb3RvQ2FsbEZyYW1lIGJlbG93LgorICAgIGJwYWVx
IHRlbXAxLCBWTTo6bV9qc1N0YWNrTGltaXRbdm1dLCAuc3RhY2tIZWlnaHRPSworCisgICAgbW92
ZSBjZnIsIHNwCisKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgbW92ZSBlbnRyeSwgdGVtcDIKKyAg
ICAgICAgbW92ZSB2bSwgdGVtcDMKKyAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGggX2xsaW50X3N0
YWNrX2NoZWNrX2F0X3ZtX2VudHJ5LCB2bSwgdGVtcDEKKyAgICAgICAgYnBlcSB0MCwgMCwgLnN0
YWNrQ2hlY2tGYWlsZWQKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAgICAgbW92ZSB0
ZW1wMywgdm0KKyAgICAgICAgam1wIC5zdGFja0hlaWdodE9LCisKKy5zdGFja0NoZWNrRmFpbGVk
OgorICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQorICAgICAgICBtb3ZlIHRlbXAzLCB2bQorICAg
IGVuZAorCisgICAgY0NhbGwyKF9sbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvciwgdm0s
IHByb3RvQ2FsbEZyYW1lKQorICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisgICAgcmV0
CisKKy5zdGFja0hlaWdodE9LOgorICAgIG1vdmUgdGVtcDEsIHNwCiAgICAgbW92ZSA1LCB0ZW1w
MQogCiAuY29weUhlYWRlckxvb3A6CiAgICAgc3ViaSAxLCB0ZW1wMQotICAgIGxvYWRwIFtwcm90
b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgQ29kZUJsb2Nr
W2NmciwgdGVtcDEsIDhdCisgICAgbG9hZHEgW3Byb3RvQ2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRl
bXAzCisgICAgc3RvcmVxIHRlbXAzLCBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4XQogICAgIGJ0aW56
IHRlbXAxLCAuY29weUhlYWRlckxvb3AKIAogICAgIGxvYWRpIFByb3RvQ2FsbEZyYW1lOjphcmdD
b3VudEFuZENvZGVPcmlnaW5WYWx1ZVtwcm90b0NhbGxGcmFtZV0sIHRlbXAyCkBAIC0xODAsNyAr
MTkwLDcgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldAogICAgIG1v
dmUgVmFsdWVVbmRlZmluZWQsIHRlbXAxCiAuZmlsbEV4dHJhQXJnc0xvb3A6CiAgICAgc3ViaSAx
LCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMSwgVGhpc0FyZ3VtZW50T2Zmc2V0KzhbY2ZyLCB0ZW1w
MywgOF0KKyAgICBzdG9yZXEgdGVtcDEsIFRoaXNBcmd1bWVudE9mZnNldCArIDhbc3AsIHRlbXAz
LCA4XQogICAgIGJpbmVxIHRlbXAyLCB0ZW1wMywgLmZpbGxFeHRyYUFyZ3NMb29wCiAKIC5jb3B5
QXJnczoKQEAgLTE4OSw1MyArMTk5LDk3IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtl
Q2FsbCwgZG9SZXQKIC5jb3B5QXJnc0xvb3A6CiAgICAgYnRpeiB0ZW1wMiwgLmNvcHlBcmdzRG9u
ZQogICAgIHN1YmkgMSwgdGVtcDIKLSAgICBsb2FkcCBbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMK
LSAgICBzdG9yZXAgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNldCs4W2NmciwgdGVtcDIsIDhdCisg
ICAgbG9hZHEgW3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCisgICAgc3RvcmVxIHRlbXAzLCBUaGlz
QXJndW1lbnRPZmZzZXQgKyA4W3NwLCB0ZW1wMiwgOF0KICAgICBqbXAgLmNvcHlBcmdzTG9vcAog
CiAuY29weUFyZ3NEb25lOgotICAgIHN0b3JlcCBjZnIsIFt2bVRvcENhbGxGcmFtZV0KKyAgICBp
ZiBBUk02NAorICAgICAgICBtb3ZlIHNwLCB0ZW1wMgorICAgICAgICBzdG9yZXAgdGVtcDIsIFZN
Ojp0b3BDYWxsRnJhbWVbdm1dCisgICAgZWxzZQorICAgICAgICBzdG9yZXAgc3AsIFZNOjp0b3BD
YWxsRnJhbWVbdm1dCisgICAgZW5kCiAKICAgICBtb3ZlIDB4ZmZmZjAwMDAwMDAwMDAwMCwgY3Ny
MQogICAgIGFkZHAgMiwgY3NyMSwgY3NyMgogCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1l
bnQodGVtcDMsIDB4YmFkMGRjMDIpCisKICAgICBtYWtlQ2FsbChlbnRyeSwgdGVtcDEpCiAKKyAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMywgMHhiYWQwZGMwMykKKwogICAgIGJw
ZXEgQ29kZUJsb2NrW2Nmcl0sIDEsIC5jYWxsZWVGcmFtZVBvcHBlZAogICAgIGxvYWRwIENhbGxl
ckZyYW1lW2Nmcl0sIGNmcgogCiAuY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAgbG9hZHAgQ2FsbGVl
W2Nmcl0sIHRlbXAyICMgVk0udG9wQ2FsbEZyYW1lCi0gICAgbG9hZHAgU2NvcGVDaGFpbltjZnJd
LCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgW3RlbXAyXQorICAgIGxvYWRwIENhbGxlZVtjZnJd
LCB0ZW1wMiAjIFZNCisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0ZW1wMyAjIHByZXZpb3Vz
IHRvcENhbGxGcmFtZQorICAgIHN0b3JlcCB0ZW1wMywgVk06OnRvcENhbGxGcmFtZVt0ZW1wMl0K
KworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAzLCAweGJhZDBkYzA0KQogCi0g
ICAgZG9SZXR1cm4oZXh0cmFTdGFja1NwYWNlKQorICAgIGlmIFg4Nl82NAorICAgICAgICBwb3Ag
dDUKKyAgICBlbmQKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQorCisgICAgcmV0CiBl
bmQKIAorCiBtYWNybyBtYWtlSmF2YVNjcmlwdENhbGwoZW50cnksIHRlbXApCi0gICAgY2FsbCBl
bnRyeQorICAgIGFkZHAgMTYsIHNwCisgICAgaWYgQ19MT09QCisgICAgICAgIGNsb29wQ2FsbEpT
RnVuY3Rpb24gZW50cnkKKyAgICBlbHNlCisgICAgICAgIGNhbGwgZW50cnkKKyAgICBlbmQKKyAg
ICBzdWJwIDE2LCBzcAogZW5kCiAKKwogbWFjcm8gbWFrZUhvc3RGdW5jdGlvbkNhbGwoZW50cnks
IHRlbXApCiAgICAgbW92ZSBlbnRyeSwgdGVtcAogICAgIGlmIFg4Nl82NAotICAgICAgICBtb3Zl
IGNmciwgdDUKKyAgICAgICAgbW92ZSBzcCwgdDQKICAgICBlbHNpZiBBUk02NCBvciBDX0xPT1AK
LSAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAgIG1vdmUgc3AsIGEwCisgICAgZW5kCisgICAg
aWYgQ19MT09QCisgICAgICAgIHN0b3JlcCBjZnIsIFtzcF0KKyAgICAgICAgc3RvcmVwIGxyLCA4
W3NwXQorICAgICAgICBjbG9vcENhbGxOYXRpdmUgdGVtcAorICAgIGVsc2UKKyAgICAgICAgYWRk
cCAxNiwgc3AgCisgICAgICAgIGNhbGwgdGVtcAorICAgICAgICBzdWJwIDE2LCBzcAogICAgIGVu
ZAotICAgIGNhbGwgdGVtcAogZW5kCiAKLW1hY3JvIGRvUmV0dXJuRnJvbUphdmFTY3JpcHQoZXh0
cmFTdGFja1NwYWNlKQotX3JldHVybkZyb21KYXZhU2NyaXB0OgotICAgIGZ1bmN0aW9uRXBpbG9n
dWUoZXh0cmFTdGFja1NwYWNlKQotICAgIHJldAotZW5kCiAKLW1hY3JvIGRvUmV0dXJuRnJvbUhv
c3RGdW5jdGlvbihleHRyYVN0YWNrU3BhY2UpCi0gICAgZnVuY3Rpb25FcGlsb2d1ZShleHRyYVN0
YWNrU3BhY2UpCitfaGFuZGxlVW5jYXVnaHRFeGNlcHRpb246CisgICAgbG9hZHAgU2NvcGVDaGFp
bltjZnJdLCB0MworICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MworICAgIGxvYWRwIE1hcmtl
ZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKKyAgICBsb2FkcCBWTTo6
Y2FsbEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKworICAgICMgU28gZmFyLCB3ZSd2ZSB1bndvdW5k
IHRoZSBzdGFjayB0byB0aGUgZnJhbWUganVzdCBiZWxvdyB0aGUgc2VudGluZWwgZnJhbWUsIGV4
Y2VwdAorICAgICMgaW4gdGhlIGNhc2Ugb2Ygc3RhY2sgb3ZlcmZsb3cgaW4gdGhlIGZpcnN0IGZ1
bmN0aW9uIGNhbGxlZCBmcm9tIGNhbGxUb0phdmFTY3JpcHQuCisgICAgIyBDaGVjayBpZiB3ZSBu
ZWVkIHRvIHBvcCB0byB0aGUgc2VudGluZWwgZnJhbWUgYW5kIGRvIHRoZSBuZWNlc3NhcnkgY2xl
YW4gdXAgZm9yCisgICAgIyByZXR1cm5pbmcgdG8gdGhlIGNhbGxlciBDIGZyYW1lLgorICAgIGJw
ZXEgQ29kZUJsb2NrW2Nmcl0sIDEsIC5oYW5kbGVVbmNhdWdodEV4Y2VwdGlvbkFscmVhZHlJc1Nl
bnRpbmVsCisgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2ZyCisuaGFuZGxlVW5jYXVnaHRF
eGNlcHRpb25BbHJlYWR5SXNTZW50aW5lbDoKKworICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MyAj
IFZNCisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0NSAjIHByZXZpb3VzIHRvcENhbGxGcmFt
ZQorICAgIHN0b3JlcCB0NSwgVk06OnRvcENhbGxGcmFtZVt0M10KKworICAgIGNhbGxUb0phdmFT
Y3JpcHRFcGlsb2d1ZSgpCiAgICAgcmV0Ci1lbmQKKwogCiBtYWNybyBwcmVwYXJlU3RhdGVGb3JD
Q2FsbCgpCiAgICAgbGVhcCBbUEIsIFBDLCA4XSwgUEMKQEAgLTI0NCw3ICsyOTgsNiBAQCBlbmQK
IAogbWFjcm8gcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCiAgICAgbW92ZSB0MCwgUEMKLSAgICBt
b3ZlIHQxLCBjZnIKICAgICBtb3ZlIHQzLCBQQgogICAgIHN1YnAgUEIsIFBDCiAgICAgcnNoaWZ0
cCAzLCBQQwpAQCAtMjczLDcgKzMyNiw2IEBAIG1hY3JvIGNhbGxDYWxsU2xvd1BhdGgoc2xvd1Bh
dGgsIGFjdGlvbikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2Zy
XQogICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKICAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwg
UEMpCi0gICAgbW92ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQwKQogZW5kCiAKQEAgLTI4MSw3ICsz
MzMsNiBAQCBtYWNybyBjYWxsV2F0Y2hkb2dUaW1lckhhbmRsZXIodGhyb3dIYW5kCiAgICAgc3Rv
cmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICBwcmVwYXJlU3RhdGVG
b3JDQ2FsbCgpCiAgICAgY0NhbGwyKF9sbGludF9zbG93X3BhdGhfaGFuZGxlX3dhdGNoZG9nX3Rp
bWVyLCBjZnIsIFBDKQotICAgIG1vdmUgdDEsIGNmcgogICAgIGJ0cG56IHQwLCB0aHJvd0hhbmRs
ZXIKICAgICBtb3ZlIHQzLCBQQgogICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRb
Y2ZyXSwgUEMKQEAgLTI5NCw4ICszNDUsOCBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9v
cCgpCiAgICAgICAgICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2Zy
XQogICAgICAgICAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQogICAgICAgICAgICAgY0NhbGwy
KF9sbGludF9sb29wX29zciwgY2ZyLCBQQykKLSAgICAgICAgICAgIG1vdmUgdDEsIGNmcgogICAg
ICAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKKyAgICAgICAgICAgIG1vdmUgdDEsIHNwCiAgICAg
ICAgICAgICBqbXAgdDAKICAgICAgICAgLnJlY292ZXI6CiAgICAgICAgICAgICBtb3ZlIHQzLCBQ
QgpAQCAtMzg3LDE5ICs0MzgsMzUgQEAgZW5kCiAjIEVudHJ5cG9pbnRzIGludG8gdGhlIGludGVy
cHJldGVyLgogCiAjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdo
YXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgotbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRv
bmVMYWJlbCwgc2xvd19wYXRoKQorbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwg
c2xvd1BhdGgpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwg
dDAKICAgICBiaWFlcSB0MCwgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCBkb25lTGFi
ZWwKICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2Zy
LCBQQykgICAjIFRoaXMgc2xvd19wYXRoIGhhcyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+
IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCi0gICAgYnRpeiB0MCwgLmlzQXJpdHlGaXh1cE5l
ZWRlZAorICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd1BhdGggaGFz
IHRoZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCisgICAg
YnRpeiB0MCwgLm5vRXJyb3IKICAgICBtb3ZlIHQxLCBjZnIgICAjIHQxIGNvbnRhaW5zIGNhbGxl
ciBmcmFtZQogICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQog
Ci0uaXNBcml0eUZpeHVwTmVlZGVkOgorLm5vRXJyb3I6CisgICAgIyB0MSBwb2ludHMgdG8gQXJp
dHlDaGVja0RhdGEuCisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6
dGh1bmtUb0NhbGxbdDFdLCB0MgorICAgIGJ0cHogdDIsIC5wcm9jZWVkSW5saW5lCisgICAgCisg
ICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cmV0dXJuUENbdDFdLCB0
NQorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNr
U3BhY2VbdDFdLCB0MAorICAgIGNhbGwgdDIKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAg
ICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MAorICAgICAgICBsb2FkcCBbdDBdLCB0MAorICAgIGVu
ZAorICAgIGptcCAuY29udGludWUKKworLnByb2NlZWRJbmxpbmU6CisgICAgbG9hZGkgQ29tbW9u
U2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cGFkZGVkU3RhY2tTcGFjZVt0MV0sIHQxCiAgICAg
YnRpeiB0MSwgLmNvbnRpbnVlCiAKLSAgICAvLyBNb3ZlIGZyYW1lIHVwICJ0MSIgc2xvdHMKKyAg
ICAvLyBNb3ZlIGZyYW1lIHVwICJ0MSAqIDIiIHNsb3RzCisgICAgbHNoaWZ0cCAxLCB0MQogICAg
IG5lZ3EgdDEKICAgICBtb3ZlIGNmciwgdDMKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJn
dW1lbnRDb3VudFtjZnJdLCB0MgpAQCAtNDIwLDYgKzQ4Nyw3IEBAIG1hY3JvIGZ1bmN0aW9uQXJp
dHlDaGVjayhkb25lTGFiZWwsIHNsb3cKIAogICAgIGxzaGlmdHAgMywgdDEKICAgICBhZGRwIHQx
LCBjZnIKKyAgICBhZGRwIHQxLCBzcAogCiAuY29udGludWU6CiAgICAgIyBSZWxvYWQgQ29kZUJs
b2NrIGFuZCByZXNldCBQQywgc2luY2UgdGhlIHNsb3dfcGF0aCBjbG9iYmVyZWQgdGhlbS4KQEAg
LTQyOSw3ICs0OTcsNiBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93
CiAgICAgam1wIGRvbmVMYWJlbAogZW5kCiAKLQogbWFjcm8gYnJhbmNoSWZFeGNlcHRpb24obGFi
ZWwpCiAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwogICAgIGFuZHAgTWFya2VkQmxvY2tN
YXNrLCB0MwpAQCAtNDQ0LDYgKzUxMSw3IEBAIGVuZAogCiBfbGxpbnRfb3BfZW50ZXI6CiAgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGRl
YWQwMGUxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MiAgICAgICAgICAgICAgICAvLyB0
MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jawogICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1W
YXJzW3QyXSwgdDIgICAgICAvLyB0MjxzaXplX3Q+ID0gdDI8Q29kZUJsb2NrPi5tX251bVZhcnMK
ICAgICBidGl6IHQyLCAub3BFbnRlckRvbmUKQEAgLTE3MTcsMTAgKzE3ODUsOSBAQCBtYWNybyBk
b0NhbGwoc2xvd1BhdGgpCiAgICAgc3RvcmVxIHQwLCBTY29wZUNoYWluW3QzXQogICAgIGxvYWRp
c0Zyb21JbnN0cnVjdGlvbigzLCB0MikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBU
YWdPZmZzZXRbY2ZyXQotICAgIHN0b3JlcSBjZnIsIENhbGxlckZyYW1lW3QzXQogICAgIHN0b3Jl
aSB0MiwgQXJndW1lbnRDb3VudCArIFBheWxvYWRPZmZzZXRbdDNdCi0gICAgbW92ZSB0MywgY2Zy
Ci0gICAgY2FsbFRhcmdldEZ1bmN0aW9uKHQxKQorICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1Np
emUsIHQzCisgICAgY2FsbFRhcmdldEZ1bmN0aW9uKHQxLCB0MykKIAogLm9wQ2FsbFNsb3c6CiAg
ICAgc2xvd1BhdGhGb3JDYWxsKHNsb3dQYXRoKQpAQCAtMTg0MCw2ICsxOTA3LDggQEAgX2xsaW50
X29wX2NhdGNoOgogICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgIGxvYWRwIE1hcmtl
ZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKICAgICBsb2FkcCBWTTo6
Y2FsbEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJD
YWxsKCkKKwogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgogICAgIGxvYWRwIENvZGVCbG9j
azo6bV9pbnN0cnVjdGlvbnNbUEJdLCBQQgogICAgIGxvYWRwIFZNOjp0YXJnZXRJbnRlcnByZXRl
clBDRm9yVGhyb3dbdDNdLCBQQwpAQCAtMTg3OSw2ICsxOTQ4LDggQEAgX2xsaW50X3Rocm93X2R1
cmluZ19jYWxsX3RyYW1wb2xpbmU6CiAKIAogbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhl
Y3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCisKKyAgICBmdW5jdGlvblByb2xvZ3VlKCkKICAgICBz
dG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0KICAgICBpZiBYODZfNjQKICAgICAgICAgbG9hZHAgU2Nv
cGVDaGFpbltjZnJdLCB0MApAQCAtMTg4OCwxOSArMTk1OSwxNSBAQCBtYWNybyBuYXRpdmVDYWxs
VHJhbXBvbGluZShleGVjdXRhYmxlT2ZmCiAgICAgICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0s
IHQwCiAgICAgICAgIGxvYWRxIFNjb3BlQ2hhaW5bdDBdLCB0MQogICAgICAgICBzdG9yZXEgdDEs
IFNjb3BlQ2hhaW5bY2ZyXQotICAgICAgICBwZWVrIDAsIHQxCi0gICAgICAgIHN0b3JlcCB0MSwg
UmV0dXJuUENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDUgICMgdDUgPSByZGkKLSAgICAgICAg
c3VicCAxNiAtIDgsIHNwCi0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0NCAjIHQ0ID0gcnNp
Ci0gICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0NF0sIHQxCi0gICAgICAg
IG1vdmUgdDAsIGNmciAjIFJlc3RvcmUgY2ZyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjawor
ICAgICAgICBtb3ZlIGNmciwgdDQgICMgdDQgPSByZGkKKyAgICAgICAgbG9hZHAgQ2FsbGVlW2Nm
cl0sIHQ1ICMgdDUgPSByc2kKKyAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxl
W3Q1XSwgdDEKKyAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAw
MDEpCiAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0gICAgICAg
IGFkZHAgMTYgLSA4LCBzcAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAg
ICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6
bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQVJNNjQKKyAgICBl
bHNpZiBBUk02NCBvciBDX0xPT1AKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MAog
ICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDAKICAgICAgICAgbG9hZHAgTWFya2VkQmxv
Y2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDBdLCB0MApAQCAtMTkxNCwzMCArMTk4MSwx
MSBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2ZmCiAgICAgICAgIGxv
YWRwIENhbGxlZVtjZnJdLCB0MQogICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFi
bGVbdDFdLCB0MQogICAgICAgICBtb3ZlIHQyLCBjZnIgIyBSZXN0b3JlIGNmciB0byBhdm9pZCBs
b2FkaW5nIGZyb20gc3RhY2sKLSAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlv
blt0MV0KLSAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCi0gICAg
ICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01h
c2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0Ojpt
X3ZtW3QzXSwgdDMKLSAgICBlbHNpZiBDX0xPT1AKLSAgICAgICAgbG9hZHAgQ2FsbGVyRnJhbWVb
Y2ZyXSwgdDAKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpblt0MF0sIHQxCi0gICAgICAgIHN0b3Jl
cCB0MSwgU2NvcGVDaGFpbltjZnJdCi0KLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0
MwotICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2Vk
QmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgICAgICBzdG9yZXAg
Y2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQotCi0gICAgICAgIG1vdmUgdDAsIHQyCi0gICAgICAg
IHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKLSAgICAgICAgc3RvcmVwIHQzLCBS
ZXR1cm5QQ1tjZnJdCi0gICAgICAgIG1vdmUgY2ZyLCB0MAotICAgICAgICBsb2FkcCBDYWxsZWVb
Y2ZyXSwgdDEKLSAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEK
LSAgICAgICAgbW92ZSB0MiwgY2ZyCi0gICAgICAgIGNsb29wQ2FsbE5hdGl2ZSBleGVjdXRhYmxl
T2Zmc2V0VG9GdW5jdGlvblt0MV0KLQorICAgICAgICBpZiBDX0xPT1AKKyAgICAgICAgICAgIGNs
b29wQ2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAg
ICAgZW5kCiAgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQogICAg
ICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAgICAgIGFuZHAgTWFya2VkQmxvY2tN
YXNrLCB0MwpAQCAtMTk0NiwxNiArMTk5NCwxNCBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGlu
ZShleGVjdXRhYmxlT2ZmCiAgICAgICAgIGVycm9yCiAgICAgZW5kCiAKLSAgICBidHFueiBWTTo6
bV9leGNlcHRpb25bdDNdLCAuZXhjZXB0aW9uCisgICAgZnVuY3Rpb25FcGlsb2d1ZSgpCisKKyAg
ICBidHFueiBWTTo6bV9leGNlcHRpb25bdDNdLCAuaGFuZGxlRXhjZXB0aW9uCiAgICAgcmV0Ci0u
ZXhjZXB0aW9uOgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MSkgIyBUaGlz
IGlzIHJlYWxseSBvbmx5IG5lZWRlZCBvbiBYODZfNjQKLSAgICBsb2FkaSBBcmd1bWVudENvdW50
ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIFBCCi0gICAg
bG9hZHAgQ29kZUJsb2NrOjptX3ZtW1BCXSwgdDAKLSAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5z
dHJ1Y3Rpb25zW1BCXSwgUEIKLSAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QwXQot
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdGhyb3dfZnJvbV9uYXRpdmVfY2FsbCkKKworLmhhbmRs
ZUV4Y2VwdGlvbjoKKyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgIHJl
c3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9z
bG93X3BhdGhfdHJhbXBvbGluZQogZW5kCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHJldmlzaW9uIDE2MjkxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQko
d29ya2luZyBjb3B5KQpAQCAtMzgsOSArMzgsMTIgQEAgY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2xv
dHMgPSA2CiBlbHNlCiBjb25zdCBQdHJTaXplID0gNAogY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2xv
dHMgPSA1Citjb25zdCBDYWxsRnJhbWVBbGlnblNsb3RzID0gMQogZW5kCiBjb25zdCBTbG90U2l6
ZSA9IDgKIAorY29uc3QgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgPSAyICogUHRyU2l6ZQorCiBjb25z
dCBDYWxsZXJGcmFtZSA9IDAKIGNvbnN0IFJldHVyblBDID0gQ2FsbGVyRnJhbWUgKyBQdHJTaXpl
CiBjb25zdCBDb2RlQmxvY2sgPSBSZXR1cm5QQyArIFB0clNpemUKQEAgLTcxLDYgKzc0LDE2IEBA
IGNvbnN0IERlbGV0ZWRWYWx1ZVRhZyA9IC03CiBjb25zdCBMb3dlc3RUYWcgPSBEZWxldGVkVmFs
dWVUYWcKIGVuZAogCitpZiBYODZfNjQgb3IgQVJNNjQgb3IgQ19MT09QCitjb25zdCBtYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDAKK2Vsc2lmIEFSTSBvciBBUk12N19UUkFESVRJT05B
TCBvciBBUk12NyBvciBTSDQKK2NvbnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0g
MjQKK2Vsc2lmIFg4NgorY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA0MAor
ZWxzaWYgTUlQUworY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA0MAorZW5k
CisKICMgV2F0Y2hwb2ludCBzdGF0ZXMKIGNvbnN0IENsZWFyV2F0Y2hwb2ludCA9IDAKIGNvbnN0
IElzV2F0Y2hlZCA9IDEKQEAgLTg1LDcgKzk4LDcgQEAgaWYgSlNWQUxVRTY0CiAgICAgIyAgIHRv
IEMgZnVuY3Rpb25zLgogICAgICMgLSBDIGNhbGxzIGFyZSBzdGlsbCBnaXZlbiB0aGUgSW5zdHJ1
Y3Rpb24qIHJhdGhlciB0aGFuIHRoZSBQQyBpbmRleC4KICAgICAjICAgVGhpcyByZXF1aXJlcyBh
biBhZGQgYmVmb3JlIHRoZSBjYWxsLCBhbmQgYSBzdWIgYWZ0ZXIuCi0gICAgY29uc3QgUEMgPSB0
NAorICAgIGNvbnN0IFBDID0gdDUKICAgICBjb25zdCBQQiA9IHQ2CiAgICAgY29uc3QgdGFnVHlw
ZU51bWJlciA9IGNzcjEKICAgICBjb25zdCB0YWdNYXNrID0gY3NyMgpAQCAtMTAzLDcgKzExNiw3
IEBAIGlmIEpTVkFMVUU2NAogICAgIGVuZAogCiBlbHNlCi0gICAgY29uc3QgUEMgPSB0NAorICAg
IGNvbnN0IFBDID0gdDUKICAgICBtYWNybyBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24ob2Zmc2V0LCBk
ZXN0KQogICAgICAgICBsb2FkaXMgb2Zmc2V0ICogNFtQQ10sIGRlc3QKICAgICBlbmQKQEAgLTIx
MCw2ICsyMjMsNTIgQEAgbWFjcm8gYXNzZXJ0KGFzc2VydGlvbikKICAgICBlbmQKIGVuZAogCitt
YWNybyBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wUmVnLCBsb2NhdGlvbikKKyAgICBp
ZiBBUk02NCBvciBDX0xPT1AKKyAgICAgICAgIyBBUk02NCB3aWxsIGNoZWNrIGZvciB1cyEKKyAg
ICAgICAgIyBDX0xPT1AgZG9lcyBub3QgbmVlZCB0aGUgYWxpZ25tZW50LCBhbmQgY2FuIHVzZSBh
IGxpdHRsZSBwZXJmCisgICAgICAgICMgaW1wcm92ZW1lbnQgZnJvbSBhdm9pZGluZyB1c2VsZXNz
IHdvcmsuCisgICAgZWxzZQorICAgICAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElU
SU9OQUwKKyAgICAgICAgICAgICMgQVJNIGNhbid0IGRvIGxvZ2ljYWwgb3BzIHdpdGggdGhlIHNw
IGFzIGEgc291cmNlCisgICAgICAgICAgICBtb3ZlIHNwLCB0ZW1wUmVnCisgICAgICAgICAgICBh
bmRwIDB4ZiwgdGVtcFJlZworICAgICAgICBlbHNlCisgICAgICAgICAgICBhbmRwIHNwLCAweGYs
IHRlbXBSZWcKKyAgICAgICAgZW5kCisgICAgICAgIGJ0cHogdGVtcFJlZywgLnN0YWNrUG9pbnRl
ck9rYXkKKyAgICAgICAgbW92ZSBsb2NhdGlvbiwgdGVtcFJlZworICAgICAgICBicmVhaworICAg
IC5zdGFja1BvaW50ZXJPa2F5OgorICAgIGVuZAorZW5kCisKK21hY3JvIHByZXNlcnZlQ2FsbGVy
UENBbmRDRlIoKQorICAgIGlmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElU
SU9OQUwgb3IgTUlQUyBvciBTSDQKKyAgICAgICAgcHVzaCBscgorICAgICAgICBwdXNoIGNmcgor
ICAgIGVsc2lmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcHVzaCBjZnIKKyAgICBlbHNpZiBBUk02
NAorICAgICAgICBwdXNoTFJBbmRGUAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQK
KyAgICBtb3ZlIHNwLCBjZnIKK2VuZAorCittYWNybyByZXN0b3JlQ2FsbGVyUENBbmRDRlIoKQor
ICAgIG1vdmUgY2ZyLCBzcAorICAgIGlmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdf
VFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKKyAgICAgICAgcG9wIGNmcgorICAgICAgICBwb3Ag
bHIKKyAgICBlbHNpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHBvcCBjZnIKKyAgICBlbHNpZiBB
Uk02NAorICAgICAgICBwb3BMUkFuZEZQCisgICAgZW5kCitlbmQKKwogbWFjcm8gcHJlc2VydmVS
ZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCiAgICAgaWYgQ19MT09Q
IG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBBUk02NCBvciBNSVBTIG9y
IFNINAogICAgICAgICAjIEluIENfTE9PUCBjYXNlLCB3ZSdyZSBvbmx5IHByZXNlcnZpbmcgdGhl
IGJ5dGVjb2RlIHZQQy4KQEAgLTIzMiwzMSArMjkxLDEyMiBAQCBtYWNybyByZXN0b3JlUmV0dXJu
QWRkcmVzc0JlZm9yZVJldHVybihzCiAgICAgZW5kCiBlbmQKIAorbWFjcm8gZnVuY3Rpb25Qcm9s
b2d1ZSgpCisgICAgaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwdXNoIGNmcgorICAgIGVsc2lm
IEFSTTY0CisgICAgICAgIHB1c2hMUkFuZEZQCisgICAgZWxzaWYgQ19MT09QIG9yIEFSTSBvciBB
Uk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTCisgICAgICAgIHB1c2ggbHIKKyAgICAg
ICAgcHVzaCBjZnIKKyAgICBlbmQKKyAgICBtb3ZlIHNwLCBjZnIKK2VuZAorCittYWNybyBmdW5j
dGlvbkVwaWxvZ3VlKCkKKyAgICBpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHBvcCBjZnIKKyAg
ICBlbHNpZiBBUk02NAorICAgICAgICBwb3BMUkFuZEZQCisgICAgZWxzaWYgQ19MT09QIG9yIEFS
TSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTCisgICAgICAgIHBvcCBjZnIK
KyAgICAgICAgcG9wIGxyCisgICAgZW5kCitlbmQKKworbWFjcm8gY2FsbFRvSmF2YVNjcmlwdFBy
b2xvZ3VlKCkKKyAgICBpZiBYODZfNjQKKyAgICAgICAgcHVzaCBjZnIKKyAgICAgICAgcHVzaCB0
MAorICAgIGVsc2lmIFg4NgorICAgICAgICBwdXNoIGNmcgorICAgIGVsc2lmIEFSTTY0CisgICAg
ICAgIHB1c2hMUkFuZEZQCisgICAgZWxzaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12
N19UUkFESVRJT05BTCBvciBNSVBTCisgICAgICAgIHB1c2ggbHIKKyAgICAgICAgcHVzaCBjZnIK
KyAgICBlbmQKKyAgICBwdXNoQ2FsbGVlU2F2ZXMKKyAgICBpZiBYODYKKyAgICAgICAgc3VicCAx
Miwgc3AKKyAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwKKyAgICAg
ICAgc3VicCA0LCBzcAorICAgICAgICBtb3ZlIHNwLCB0NAorICAgICAgICBjbHJicCB0NCwgMHhm
LCB0NQorICAgICAgICBtb3ZlIHQ1LCBzcAorICAgICAgICBzdG9yZXAgdDQsIFtzcF0KKyAgICBl
bmQKK2VuZAorCittYWNybyBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQorICAgIGFkZHAgQ2Fs
bEZyYW1lSGVhZGVyU2xvdHMgKiA4LCBjZnIsIHNwCisgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2Zy
XSwgY2ZyCisKKyAgICBpZiBYODYKKyAgICAgICAgYWRkcCAxMiwgc3AKKyAgICBlbHNpZiBBUk0g
b3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwKKyAgICAgICAgcG9wIHQ0CisgICAgICAgIG1v
dmUgdDQsIHNwCisgICAgICAgIGFkZHAgNCwgc3AKKyAgICBlbmQKKworICAgIHBvcENhbGxlZVNh
dmVzCisgICAgaWYgWDg2XzY0CisgICAgICAgIHBvcCB0MgorICAgICAgICBwb3AgY2ZyCisgICAg
ZWxzaWYgWDg2CisgICAgICAgIHBvcCBjZnIKKyAgICBlbHNpZiBBUk02NAorICAgICAgICBwb3BM
UkFuZEZQCisgICAgZWxzaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJ
T05BTCBvciBNSVBTCisgICAgICAgIHBvcCBjZnIKKyAgICAgICAgcG9wIGxyCisgICAgZW5kCitl
bmQKKworbWFjcm8gbW92ZVN0YWNrUG9pbnRlckZvckNvZGVCbG9jayhjb2RlQmxvY2ssIHNjcmF0
Y2gpCisgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVyc1tjb2RlQmxvY2td
LCBzY3JhdGNoCisgICAgbHNoaWZ0cCAzLCBzY3JhdGNoCisgICAgYWRkcCBtYXhGcmFtZUV4dGVu
dEZvclNsb3dQYXRoQ2FsbCwgc2NyYXRjaAorICAgIHN1YnAgY2ZyLCBzY3JhdGNoLCBzcAorZW5k
CisKK21hY3JvIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQorICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCB0MgorICAgIG1vdmVTdGFja1BvaW50ZXJGb3JDb2RlQmxvY2sodDIsIHQ0KQor
ZW5kCisKIG1hY3JvIHRyYWNlRXhlY3V0aW9uKCkKICAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwog
ICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3RyYWNlKQogICAgIGVuZAogZW5kCiAKLW1hY3Jv
IGNhbGxUYXJnZXRGdW5jdGlvbihjYWxsTGlua0luZm8pCittYWNybyBjYWxsVGFyZ2V0RnVuY3Rp
b24oY2FsbExpbmtJbmZvLCBjYWxsZWVGcmFtZVB0cikKKyAgICBtb3ZlIGNhbGxlZUZyYW1lUHRy
LCBzcAogICAgIGlmIENfTE9PUAogICAgICAgICBjbG9vcENhbGxKU0Z1bmN0aW9uIExMSW50Q2Fs
bExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFtjYWxsTGlua0luZm9dCiAgICAgZWxzZQogICAg
ICAgICBjYWxsIExMSW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFtjYWxsTGlua0lu
Zm9dCi0gICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKICAgICBlbmQKKyAgICByZXN0b3JlU3Rh
Y2tQb2ludGVyQWZ0ZXJDYWxsKCkKKyAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiBlbmQKIAogbWFj
cm8gc2xvd1BhdGhGb3JDYWxsKHNsb3dQYXRoKQogICAgIGNhbGxDYWxsU2xvd1BhdGgoCiAgICAg
ICAgIHNsb3dQYXRoLAogICAgICAgICBtYWNybyAoY2FsbGVlKQorICAgICAgICAgICAgYnRweiB0
MSwgLmRvbnRVcGRhdGVTUAorICAgICAgICAgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwg
dDEsIHNwCisgICAgICAgIC5kb250VXBkYXRlU1A6CiAgICAgICAgICAgICBpZiBDX0xPT1AKICAg
ICAgICAgICAgICAgICBjbG9vcENhbGxKU0Z1bmN0aW9uIGNhbGxlZQogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIGNhbGwgY2FsbGVlCi0gICAgICAgICAgICAgICAgZGlzcGF0Y2hB
ZnRlckNhbGwoKQogICAgICAgICAgICAgZW5kCisgICAgICAgICAgICByZXN0b3JlU3RhY2tQb2lu
dGVyQWZ0ZXJDYWxsKCkKKyAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKICAgICAgICAg
ZW5kKQogZW5kCiAKQEAgLTMyNSwyNiArNDc1LDQ4IEBAIGVuZAogIyBEbyB0aGUgYmFyZSBtaW5p
bXVtIHJlcXVpcmVkIHRvIGV4ZWN1dGUgY29kZS4gU2V0cyB1cCB0aGUgUEMsIGxlYXZlIHRoZSBD
b2RlQmxvY2sqCiAjIGluIHQxLiBNYXkgYWxzbyB0cmlnZ2VyIHByb2xvZ3VlIGVudHJ5IE9TUi4K
IG1hY3JvIHByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBvc3JTbG93
UGF0aCwgdHJhY2VTbG93UGF0aCkKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwo
dDIpCi0gICAgCiAgICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdlIHNo
b3VsZCBPU1IuCi0gICAgc3RvcmVwIHQyLCBSZXR1cm5QQ1tjZnJdCisgICAgcHJlc2VydmVDYWxs
ZXJQQ0FuZENGUigpCisKICAgICBpZiBFWEVDVVRJT05fVFJBQ0lORworICAgICAgICBzdWJwIG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCBzcAogICAgICAgICBjYWxsU2xvd1BhdGgodHJh
Y2VTbG93UGF0aCkKKyAgICAgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwg
c3AKICAgICBlbmQKICAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCitpZiBDX0xPT1AKK2Vsc2UKICAg
ICBiYWRkaXMgNSwgQ29kZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25D
b3VudGVyOjptX2NvdW50ZXJbdDFdLCAuY29udGludWUKLSAgICBjQ2FsbDIob3NyU2xvd1BhdGgs
IGNmciwgUEMpCi0gICAgbW92ZSB0MSwgY2ZyCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAgIGND
YWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykKKyAgICBlbHNlCisgICAgICAgICMgV2UgYXJlIGFm
dGVyIHRoZSBmdW5jdGlvbiBwcm9sb2d1ZSwgYnV0IGJlZm9yZSB3ZSBoYXZlIHNldCB1cCBzcCBm
cm9tIHRoZSBDb2RlQmxvY2suCisgICAgICAgICMgVGVtcG9yYXJpbHkgYWxpZ24gc3RhY2sgcG9p
bnRlciBmb3IgdGhpcyBjYWxsLgorICAgICAgICBzdWJwIDgsIHNwCisgICAgICAgIGNDYWxsMihv
c3JTbG93UGF0aCwgY2ZyLCBQQykKKyAgICAgICAgYWRkcCA4LCBzcAorICAgIGVuZAogICAgIGJ0
cHogdDAsIC5yZWNvdmVyCi0gICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIKLSAgICByZXN0b3Jl
UmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MikKKyAgICBtb3ZlIGNmciwgc3AgIyByZXN0b3Jl
IHRoZSBwcmV2aW91cyBzcAorICAgICMgcG9wIHRoZSBjYWxsZXJGcmFtZSBzaW5jZSB3ZSB3aWxs
IGp1bXAgdG8gYSBmdW5jdGlvbiB0aGF0IHdhbnRzIHRvIHNhdmUgaXQKKyAgICBpZiBBUk02NAor
ICAgICAgICBwb3BMUkFuZEZQCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJ
VElPTkFMIG9yIE1JUFMgb3IgU0g0CisgICAgICAgIHBvcCBjZnIKKyAgICAgICAgcG9wIGxyCisg
ICAgZWxzZQorICAgICAgICBwb3AgY2ZyCisgICAgZW5kCiAgICAgam1wIHQwCiAucmVjb3ZlcjoK
ICAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCiAuY29udGludWU6CitlbmQKKwogICAgIGNvZGVCbG9j
a1NldHRlcih0MSkKICAgICAKKyAgICBtb3ZlU3RhY2tQb2ludGVyRm9yQ29kZUJsb2NrKHQxLCB0
MikKKwogICAgICMgU2V0IHVwIHRoZSBQQy4KICAgICBpZiBKU1ZBTFVFNjQKICAgICAgICAgbG9h
ZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIFBCCkBAIC0zODksMTQgKzU2MSwxNiBA
QCBtYWNybyBmdW5jdGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVBcmdTCiAgICAgICAgIAogICAg
ICMgQ2hlY2sgc3RhY2sgaGVpZ2h0LgogICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVS
ZWdpc3RlcnNbdDFdLCB0MAotICAgIGFkZGkgMSwgdDAgIyBBY2NvdW50IHRoYXQgbG9jYWwwIGdv
ZXMgYXQgc2xvdCAtMQogICAgIGxvYWRwIENvZGVCbG9jazo6bV92bVt0MV0sIHQyCiAgICAgbHNo
aWZ0cCAzLCB0MAorICAgIGFkZGkgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwsIHQwCiAg
ICAgc3VicCBjZnIsIHQwLCB0MAogICAgIGJwYmVxIFZNOjptX2pzU3RhY2tMaW1pdFt0Ml0sIHQw
LCAuc3RhY2tIZWlnaHRPSwogCiAgICAgIyBTdGFjayBoZWlnaHQgY2hlY2sgZmFpbGVkIC0gbmVl
ZCB0byBjYWxsIGEgc2xvd19wYXRoLgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc3RhY2tfY2hl
Y2spCisgICAgYnBlcSB0MSwgMCwgLnN0YWNrSGVpZ2h0T0sKKyAgICBtb3ZlIHQxLCBjZnIKIC5z
dGFja0hlaWdodE9LOgogZW5kCiAKQEAgLTQyMywyNSArNTk3LDY5IEBAIG1hY3JvIGFsbG9jYXRl
SlNPYmplY3QoYWxsb2NhdG9yLCBzdHJ1Y3QKIGVuZAogCiBtYWNybyBkb1JldHVybigpCi0gICAg
bG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIKLSAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIK
LSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MikKKyAgICByZXN0b3JlQ2Fs
bGVyUENBbmRDRlIoKQogICAgIHJldAogZW5kCiAKLWlmIENfTE9PUAotZWxzZQogIyBzdHViIHRv
IGNhbGwgaW50byBKYXZhU2NyaXB0IG9yIE5hdGl2ZSBmdW5jdGlvbnMKLSMgRW5jb2RlZEpTVmFs
dWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2bSwgUHJvdG9DYWxs
RnJhbWUqIHByb3RvRnJhbWUsIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKQotIyBFbmNvZGVkSlNWYWx1
ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2bSwgUHJvdG9D
YWxsRnJhbWUqIHByb3RvRnJhbWUsIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKQorIyBFbmNvZGVkSlNW
YWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtVG9wQ2FsbEZy
YW1lLCBQcm90b0NhbGxGcmFtZSogcHJvdG9GcmFtZSkKKyMgRW5jb2RlZEpTVmFsdWUgY2FsbFRv
TmF0aXZlRnVuY3Rpb24odm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm1Ub3BDYWxsRnJhbWUsIFBy
b3RvQ2FsbEZyYW1lKiBwcm90b0ZyYW1lKQogIyBOb3RlLCBpZiB0aGVzZSBzdHVicyBvciBvbmUg
b2YgdGhlaXIgcmVsYXRlZCBtYWNyb3MgYXJlIGNoYW5nZWQsIG1ha2UgdGhlCiAjIGVxdWl2YWxl
bnQgY2hhbmdlcyBpbiBqaXQvSklUU3R1YnNYODYuaCBhbmQvb3Igaml0L0pJVFN0dWJzTVNWQzY0
LmFzbQorCitpZiBDX0xPT1AKK19sbGludF9jYWxsX3RvX2phdmFzY3JpcHQ6CitlbHNlCiBfY2Fs
bFRvSmF2YVNjcmlwdDoKLSAgICBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUphdmFTY3JpcHRDYWxs
LCBkb1JldHVybkZyb21KYXZhU2NyaXB0KQorZW5kCisgICAgZG9DYWxsVG9KYXZhU2NyaXB0KG1h
a2VKYXZhU2NyaXB0Q2FsbCkKKwogCitpZiBDX0xPT1AKK19sbGludF9jYWxsX3RvX25hdGl2ZV9m
dW5jdGlvbjoKK2Vsc2UKIF9jYWxsVG9OYXRpdmVGdW5jdGlvbjoKLSAgICBkb0NhbGxUb0phdmFT
Y3JpcHQobWFrZUhvc3RGdW5jdGlvbkNhbGwsIGRvUmV0dXJuRnJvbUhvc3RGdW5jdGlvbikKIGVu
ZAorICAgIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlSG9zdEZ1bmN0aW9uQ2FsbCkKKworCitpZiBD
X0xPT1AKK2Vsc2UKKyMgdm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk1JbXBsKFZNKiB2bSkKK19zYW5p
dGl6ZVN0YWNrRm9yVk1JbXBsOgorICAgIGlmIFg4Nl82NAorICAgICAgICBjb25zdCB2bSA9IHQ0
CisgICAgICAgIGNvbnN0IGFkZHJlc3MgPSB0MQorICAgICAgICBjb25zdCB6ZXJvVmFsdWUgPSB0
MAorICAgIGVsc2lmIFg4NgorICAgICAgICBjb25zdCB2bSA9IHQyCisgICAgICAgIGNvbnN0IGFk
ZHJlc3MgPSB0MQorICAgICAgICBjb25zdCB6ZXJvVmFsdWUgPSB0MAorICAgIGVsc2UKKyAgICAg
ICAgY29uc3Qgdm0gPSBhMAorICAgICAgICBjb25zdCBhZGRyZXNzID0gdDEKKyAgICAgICAgY29u
c3QgemVyb1ZhbHVlID0gdDIKKyAgICBlbmQKKworICAgIGlmIFg4NgorICAgICAgICBsb2FkcCA0
W3NwXSwgdm0KKyAgICBlbmQKKworICAgIGxvYWRwIFZNOjptX2xhc3RTdGFja1RvcFt2bV0sIGFk
ZHJlc3MKKyAgICBicGJlcSBzcCwgYWRkcmVzcywgLnplcm9GaWxsRG9uZQorCisgICAgbW92ZSAw
LCB6ZXJvVmFsdWUKKy56ZXJvRmlsbExvb3A6CisgICAgc3RvcmVwIHplcm9WYWx1ZSwgW2FkZHJl
c3NdCisgICAgYWRkcCBQdHJTaXplLCBhZGRyZXNzCisgICAgYnBhIHNwLCBhZGRyZXNzLCAuemVy
b0ZpbGxMb29wCisKKy56ZXJvRmlsbERvbmU6CisgICAgbW92ZSBzcCwgYWRkcmVzcworICAgIHN0
b3JlcCBhZGRyZXNzLCBWTTo6bV9sYXN0U3RhY2tUb3Bbdm1dCisgICAgcmV0CitlbmQKKwogCiAj
IEluZGljYXRlIHRoZSBiZWdpbm5pbmcgb2YgTExJbnQuCiBfbGxpbnRfYmVnaW46CkBAIC03MzEs
OCArOTQ5LDE1IEBAIF9sbGludF9vcF9jb25zdHJ1Y3Q6CiAKIF9sbGludF9vcF9jYWxsX3ZhcmFy
Z3M6CiAgICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX3NpemVfYW5kX2FsbG9jX2ZyYW1lX2Zvcl92YXJhcmdzKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX3NpemVfZnJhbWVfZm9yX3ZhcmFyZ3MpCiAgICAgYnJhbmNoSWZFeGNl
cHRpb24oX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUpCisgICAgIyBjYWxs
ZWVGcmFtZSBpbiB0MQorICAgIGlmIEpTVkFMVUU2NAorICAgICAgICBtb3ZlIHQxLCBzcAorICAg
IGVsc2UKKyAgICAgICAgIyBUaGUgY2FsbGVlRnJhbWUgaXMgbm90IHN0YWNrIGFsaWduZWQsIG1v
dmUgZG93biBieSBDYWxsZXJGcmFtZUFuZFBDU2l6ZSB0byBhbGlnbgorICAgICAgICBzdWJwIHQx
LCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKKyAgICBlbmQKICAgICBzbG93UGF0aEZvckNhbGwo
X2xsaW50X3Nsb3dfcGF0aF9jYWxsX3ZhcmFyZ3MpCiAKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC05MCw2ICs5MCwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OjpMTEludDsKICNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4KICNkZWZpbmUgT0ZGTElORV9BU01f
RU5ECiAKKyNpZiBFTkFCTEUoT1BDT0RFX1RSQUNJTkcpCisjZGVmaW5lIFRSQUNFX09QQ09ERShv
cGNvZGUpIGRhdGFMb2dGKCIgICBvcCAlc1xuIiwgI29wY29kZSkKKyNlbHNlCisjZGVmaW5lIFRS
QUNFX09QQ09ERShvcGNvZGUpCisjZW5kaWYKKwogLy8gVG8ga2VlcCBjb21waWxlcnMgaGFwcHkg
aW4gY2FzZSBvZiB1bnVzZWQgbGFiZWxzLCBmb3JjZSB1c2FnZSBvZiB0aGUgbGFiZWw6CiAjZGVm
aW5lIFVTRV9MQUJFTChsYWJlbCkgXAogICAgIGRvIHsgXApAQCAtOTcsNyArMTAzLDcgQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzo6TExJbnQ7CiAgICAgICAgICAgICBnb3RvIGxhYmVsOyBcCiAgICAg
fSB3aGlsZSAoZmFsc2UpCiAKLSNkZWZpbmUgT0ZGTElORV9BU01fT1BDT0RFX0xBQkVMKG9wY29k
ZSkgREVGSU5FX09QQ09ERShvcGNvZGUpIFVTRV9MQUJFTChvcGNvZGUpOworI2RlZmluZSBPRkZM
SU5FX0FTTV9PUENPREVfTEFCRUwob3Bjb2RlKSBERUZJTkVfT1BDT0RFKG9wY29kZSkgVVNFX0xB
QkVMKG9wY29kZSk7IFRSQUNFX09QQ09ERShvcGNvZGUpOwogCiAjaWYgRU5BQkxFKENPTVBVVEVE
X0dPVE9fT1BDT0RFUykKICNkZWZpbmUgT0ZGTElORV9BU01fR0xVRV9MQUJFTChsYWJlbCkgIGxh
YmVsOiBVU0VfTEFCRUwobGFiZWwpOwpAQCAtMjEyLDEwICsyMTgsMTQgQEAgc3RydWN0IENMb29w
UmVnaXN0ZXIgewogI2VuZGlmIC8vICFDUFUoQklHX0VORElBTikKICNlbmRpZiAvLyAhVVNFKEpT
VkFMVUU2NCkKIAorICAgICAgICBpbnRwdHJfdCogaXA7CiAgICAgICAgIGludDhfdCogaThwOwog
ICAgICAgICB2b2lkKiB2cDsKKyAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWU7CiAgICAgICAg
IEV4ZWNTdGF0ZSogZXhlY1N0YXRlOwogICAgICAgICB2b2lkKiBpbnN0cnVjdGlvbjsKKyAgICAg
ICAgVk0qIHZtOworICAgICAgICBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWU7CiAgICAg
ICAgIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmM7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAg
ICAgaW50NjRfdCBpNjQ7CkBAIC0yMjYsNiArMjM2LDEyIEBAIHN0cnVjdCBDTG9vcFJlZ2lzdGVy
IHsKICAgICAgICAgT3Bjb2RlIG9wY29kZTsKICAgICB9OwogCisgICAgb3BlcmF0b3IgRXhlY1N0
YXRlKigpIHsgcmV0dXJuIGV4ZWNTdGF0ZTsgfQorICAgIG9wZXJhdG9yIEluc3RydWN0aW9uKigp
IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHJ1Y3Rpb24qPihpbnN0cnVjdGlvbik7IH0K
KyAgICBvcGVyYXRvciBWTSooKSB7IHJldHVybiB2bTsgfQorICAgIG9wZXJhdG9yIFByb3RvQ2Fs
bEZyYW1lKigpIHsgcmV0dXJuIHByb3RvQ2FsbEZyYW1lOyB9CisgICAgb3BlcmF0b3IgUmVnaXN0
ZXIqKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxSZWdpc3Rlcio+KHZwKTsgfQorCiAjaWYg
VVNFKEpTVkFMVUU2NCkKICAgICBpbmxpbmUgdm9pZCBjbGVhckhpZ2hXb3JkKCkgeyBpMzJwYWRk
aW5nID0gMDsgfQogI2Vsc2UKQEAgLTIzNyw3ICsyNTMsNyBAQCBzdHJ1Y3QgQ0xvb3BSZWdpc3Rl
ciB7CiAvLyBUaGUgbGxpbnQgQysrIGludGVycHJldGVyIGxvb3A6CiAvLwogCi1KU1ZhbHVlIENM
b29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBPcGNvZGUgZW50cnlPcGNvZGUsIGJv
b2wgaXNJbml0aWFsaXphdGlvblBhc3MpCitKU1ZhbHVlIENMb29wOjpleGVjdXRlKE9wY29kZUlE
IGVudHJ5T3Bjb2RlSUQsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0sIFByb3RvQ2Fs
bEZyYW1lKiBwcm90b0NhbGxGcmFtZSwgYm9vbCBpc0luaXRpYWxpemF0aW9uUGFzcykKIHsKICAg
ICAjZGVmaW5lIENBU1QgcmVpbnRlcnByZXRfY2FzdAogICAgICNkZWZpbmUgU0lHTl9CSVQzMih4
KSAoKHgpICYgMHg4MDAwMDAwMCkKQEAgLTI3Miw4ICsyODgsNiBAQCBKU1ZhbHVlIENMb29wOjpl
eGVjdXRlKENhbGxGcmFtZSogY2FsbEZyCiAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAg
fQogCi0gICAgQVNTRVJUKGNhbGxGcmFtZS0+dm0oKS50b3BDYWxsRnJhbWUgPT0gY2FsbEZyYW1l
KTsKLQogICAgIC8vIERlZmluZSB0aGUgcHNldWRvIHJlZ2lzdGVycyB1c2VkIGJ5IHRoZSBMTElO
VCBDIExvb3AgYmFja2VuZDoKICAgICBBU1NFUlQoc2l6ZW9mKENMb29wUmVnaXN0ZXIpID09IHNp
emVvZihpbnRwdHJfdCkpOwogCkBAIC0zMDgsNjkgKzMyMiw2NiBAQCBKU1ZhbHVlIENMb29wOjpl
eGVjdXRlKENhbGxGcmFtZSogY2FsbEZyCiAgICAgLy8gMi4gMzIgYml0IHJlc3VsdCB2YWx1ZXMg
d2lsbCBiZSBpbiB0aGUgbG93IDMyLWJpdCBvZiB0MC4KICAgICAvLyAzLiA2NCBiaXQgcmVzdWx0
IHZhbHVlcyB3aWxsIGJlIGluIHQwLgogCi0gICAgQ0xvb3BSZWdpc3RlciB0MCwgdDEsIHQyLCB0
MzsKKyAgICBDTG9vcFJlZ2lzdGVyIHQwLCB0MSwgdDIsIHQzLCB0NSwgc3AsIGNmciwgbHIsIHBj
OwogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgQ0xvb3BSZWdpc3RlciByQmFzZVBDLCB0YWdUeXBl
TnVtYmVyLCB0YWdNYXNrOworICAgIENMb29wUmVnaXN0ZXIgcGNCYXNlLCB0YWdUeXBlTnVtYmVy
LCB0YWdNYXNrOwogI2VuZGlmCi0gICAgQ0xvb3BSZWdpc3RlciByUmV0VlBDOwogICAgIENMb29w
RG91YmxlUmVnaXN0ZXIgZDAsIGQxOwogCi0gICAgLy8gS2VlcCB0aGUgY29tcGlsZXIgaGFwcHku
IFdlIGRvbid0IHJlYWxseSBuZWVkIHRoaXMsIGJ1dCB0aGUgY29tcGlsZXIKLSAgICAvLyB3aWxs
IGNvbXBsYWluLiBUaGlzIG1ha2VzIHRoZSB3YXJuaW5nIGdvIGF3YXkuCi0gICAgdDAuaSA9IDA7
Ci0gICAgdDEuaSA9IDA7Ci0KLSAgICBWTSogdm0gPSAmY2FsbEZyYW1lLT52bSgpOwotCi0gICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgIEluc3Ry
dWN0aW9uKiB2UEM7Ci0KLSAgICAvLyByUEMgaXMgYW4gYWxpYXMgZm9yIHZQQy4gU2V0IHVwIHRo
ZSBhbGlhczoKLSAgICBDTG9vcFJlZ2lzdGVyJiByUEMgPSAqQ0FTVDxDTG9vcFJlZ2lzdGVyKj4o
JnZQQyk7CisgICAgbHIub3Bjb2RlID0gZ2V0T3Bjb2RlKGxsaW50X3JldHVybl90b19ob3N0KTsK
KyAgICBzcC52cCA9IHZtLT5pbnRlcnByZXRlci0+c3RhY2soKS50b3BPZlN0YWNrKCkgKyAxOwor
ICAgIGNmci5jYWxsRnJhbWUgPSB2bS0+dG9wQ2FsbEZyYW1lOworI2lmbmRlZiBOREVCVUcKKyAg
ICB2b2lkKiBzdGFydFNQID0gc3AudnA7CisgICAgQ2FsbEZyYW1lKiBzdGFydENGUiA9IGNmci5j
YWxsRnJhbWU7CisjZW5kaWYKIAotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgdlBDID0gY29k
ZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwotI2Vsc2UgLy8gVVNFKEpTVkFMVUU2NCkK
LSAgICB2UEMgPSAwOwotICAgIHJCYXNlUEMudnAgPSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygp
LmJlZ2luKCk7CisgICAgLy8gSW5pdGlhbGl6ZSB0aGUgaW5jb21pbmcgYXJncyBmb3IgZG9DYWxs
VG9KYXZhU2NyaXB0OgorICAgIHQwLnZwID0gZXhlY3V0YWJsZUFkZHJlc3M7CisgICAgdDEudm0g
PSB2bTsKKyAgICB0Mi5wcm90b0NhbGxGcmFtZSA9IHByb3RvQ2FsbEZyYW1lOwogCisjaWYgVVNF
KEpTVkFMVUU2NCkKICAgICAvLyBGb3IgdGhlIEFTTSBsbGludCwgSklUU3R1YnMgdGFrZXMgY2Fy
ZSBvZiB0aGlzIGluaXRpYWxpemF0aW9uLiBXZSBkbwogICAgIC8vIGl0IGV4cGxpY2l0bHkgaGVy
ZSBmb3IgdGhlIEMgbG9vcDoKICAgICB0YWdUeXBlTnVtYmVyLmkgPSAweEZGRkYwMDAwMDAwMDAw
MDA7CiAgICAgdGFnTWFzay5pID0gMHhGRkZGMDAwMDAwMDAwMDAyOwogI2VuZGlmIC8vIFVTRShK
U1ZBTFVFNjQpCiAKLSAgICAvLyBjZnIgaXMgYW4gYWxpYXMgZm9yIGNhbGxGcmFtZS4gU2V0IHVw
IHRoaXMgYWxpYXM6Ci0gICAgQ0xvb3BSZWdpc3RlciYgY2ZyID0gKkNBU1Q8Q0xvb3BSZWdpc3Rl
cio+KCZjYWxsRnJhbWUpOwotCi0gICAgLy8gU2ltdWxhdGUgYSBuYXRpdmUgcmV0dXJuIFBDIHdo
aWNoIHNob3VsZCBuZXZlciBiZSB1c2VkOgotICAgIHJSZXRWUEMuaSA9IDB4YmJhZGJlZWY7Ci0K
ICAgICAvLyBJbnRlcnByZXRlciB2YXJpYWJsZXMgZm9yIHZhbHVlIHBhc3NpbmcgYmV0d2VlbiBv
cGNvZGVzIGFuZC9vciBoZWxwZXJzOgogICAgIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmMgPSAw
OwogICAgIEpTVmFsdWUgZnVuY3Rpb25SZXR1cm5WYWx1ZTsKLSAgICBPcGNvZGUgb3Bjb2RlOwor
ICAgIE9wY29kZSBvcGNvZGUgPSBnZXRPcGNvZGUoZW50cnlPcGNvZGVJRCk7CiAKLSAgICBvcGNv
ZGUgPSBlbnRyeU9wY29kZTsKKyNkZWZpbmUgUFVTSChjbG9vcFJlZykgXAorICAgIGRvIHsgXAor
ICAgICAgICBzcC5pcC0tOyBcCisgICAgICAgICpzcC5pcCA9IGNsb29wUmVnLmk7IFwKKyAgICB9
IHdoaWxlIChmYWxzZSkKKworI2RlZmluZSBQT1AoY2xvb3BSZWcpIFwKKyAgICBkbyB7IFwKKyAg
ICAgICAgY2xvb3BSZWcuaSA9ICpzcC5pcDsgXAorICAgICAgICBzcC5pcCsrOyBcCisgICAgfSB3
aGlsZSAoZmFsc2UpCisKKyNpZiBFTkFCTEUoT1BDT0RFX1NUQVRTKQorI2RlZmluZSBSRUNPUkRf
T1BDT0RFX1NUQVRTKF9fb3Bjb2RlKSBPcGNvZGVTdGF0czo6cmVjb3JkSW5zdHJ1Y3Rpb24oX19v
cGNvZGUpCisjZWxzZQorI2RlZmluZSBSRUNPUkRfT1BDT0RFX1NUQVRTKF9fb3Bjb2RlKQorI2Vu
ZGlmCiAKLSAgICAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKLSAgICAgICAgI2RlZmluZSBSRUNP
UkRfT1BDT0RFX1NUQVRTKF9fb3Bjb2RlKSBcCi0gICAgICAgICAgICBPcGNvZGVTdGF0czo6cmVj
b3JkSW5zdHJ1Y3Rpb24oX19vcGNvZGUpCi0gICAgI2Vsc2UKLSAgICAgICAgI2RlZmluZSBSRUNP
UkRfT1BDT0RFX1NUQVRTKF9fb3Bjb2RlKQotICAgICNlbmRpZgotCi0gICAgI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCi0gICAgICAgICNkZWZpbmUgRkVUQ0hfT1BDT0RFKCkgdlBDLT51Lm9wY29kZQot
ICAgICNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICNkZWZpbmUgRkVUQ0hfT1BDT0RF
KCkgKmJpdHdpc2VfY2FzdDxPcGNvZGUqPihyQmFzZVBDLmk4cCArIHJQQy5pICogOCkKLSAgICAj
ZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKLQotICAgICNkZWZpbmUgTkVYVF9JTlNUUlVDVElPTigp
IFwKLSAgICAgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBv
cGNvZGUgPSBGRVRDSF9PUENPREUoKTsgXAotICAgICAgICAgICAgRElTUEFUQ0hfT1BDT0RFKCk7
ICAgICAgIFwKLSAgICAgICAgfSB3aGlsZSAoZmFsc2UpCisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyNkZWZpbmUgRkVUQ0hfT1BDT0RFKCkgcGMub3Bjb2RlCisjZWxzZSAvLyBVU0UoSlNWQUxVRTY0
KQorI2RlZmluZSBGRVRDSF9PUENPREUoKSAqYml0d2lzZV9jYXN0PE9wY29kZSo+KHBjQmFzZS5p
OHAgKyBwYy5pICogOCkKKyNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQorCisjZGVmaW5lIE5FWFRf
SU5TVFJVQ1RJT04oKSBcCisgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIG9wY29kZSA9IEZFVENIX09QQ09ERSgpOyBcCisgICAgICAgIERJU1BBVENIX09QQ09ERSgp
OyAgICAgICBcCisgICAgfSB3aGlsZSAoZmFsc2UpCiAKICNpZiBFTkFCTEUoQ09NUFVURURfR09U
T19PUENPREVTKQogCkBAIC00MTIsMTQgKzQyMywyMiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRl
KENhbGxGcmFtZSogY2FsbEZyCiAKICAgICAgICAgI2luY2x1ZGUgIkxMSW50QXNzZW1ibHkuaCIK
IAorICAgICAgICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKGxsaW50X3JldHVybl90b19ob3N0KQor
ICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoc3RhcnRTUCA9PSBzcC52cCk7CisgICAgICAg
ICAgICBBU1NFUlQoc3RhcnRDRlIgPT0gY2ZyLmNhbGxGcmFtZSk7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKHQxLmksIHQwLmkpOyAvLyByZXR1cm5p
bmcgSlNWYWx1ZSh0YWcsIHBheWxvYWQpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjpkZWNvZGUodDAuZW5jb2RlZEpTVmFsdWUpOworI2VuZGlmCisgICAgICAgIH0KKwogICAg
ICAgICAvLyBJbiB0aGUgQVNNIGxsaW50LCBnZXRIb3N0Q2FsbFJldHVyblZhbHVlKCkgaXMgYSBw
aWVjZSBvZiBnbHVlCi0gICAgICAgIC8vIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5IHRoZSBKSVQgKHNl
ZSBkZmcvREZHT3BlcmF0aW9ucy5jcHApLgorICAgICAgICAvLyBmdW5jdGlvbiBwcm92aWRlZCBi
eSB0aGUgSklUIChzZWUgaml0L0pJVE9wZXJhdGlvbnMuY3BwKS4KICAgICAgICAgLy8gV2Ugc2lt
dWxhdGUgaXQgaGVyZSB3aXRoIGEgcHNlZHVvLW9wY29kZSBoYW5kbGVyLgogICAgICAgICBPRkZM
SU5FX0FTTV9HTFVFX0xBQkVMKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIC8vIFRoZSBBU00gcGFydCBwb3BzIHRoZSBmcmFtZToKLSAgICAgICAgICAgIGNh
bGxGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKLQogICAgICAgICAgICAgLy8gVGhl
IHBhcnQgaW4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUoKToKICAgICAgICAg
ICAgIEpTVmFsdWUgcmVzdWx0ID0gdm0tPmhvc3RDYWxsUmV0dXJuVmFsdWU7CiAjaWYgVVNFKEpT
VkFMVUUzMl82NCkKQEAgLTQyOCwxMiArNDQ3LDggQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShD
YWxsRnJhbWUqIGNhbGxGcgogI2Vsc2UKICAgICAgICAgICAgIHQwLmVuY29kZWRKU1ZhbHVlID0g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAjZW5kaWYKLSAgICAgICAgICAgIGdvdG8gZG9SZXR1
cm5IZWxwZXI7Ci0gICAgICAgIH0KLQotICAgICAgICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKHJl
dHVybkZyb21KYXZhU2NyaXB0KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gdm0tPmV4
Y2VwdGlvbigpOworICAgICAgICAgICAgb3Bjb2RlID0gbHIub3Bjb2RlOworICAgICAgICAgICAg
RElTUEFUQ0hfT1BDT0RFKCk7CiAgICAgICAgIH0KIAogI2lmICFFTkFCTEUoQ09NUFVURURfR09U
T19PUENPREVTKQpAQCAtNDQzLDU1ICs0NTgsNiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENh
bGxGcmFtZSogY2FsbEZyCiAKICAgICB9IC8vIEVORCBieXRlY29kZSBoYW5kbGVyIGNhc2VzLgog
Ci0gICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICAvLyBCeXRlY29kZSBoZWxwZXJzOgotCi0gICAg
ZG9SZXR1cm5IZWxwZXI6IHsKLSAgICAgICAgQVNTRVJUKCEhY2FsbEZyYW1lKTsKLSAgICAgICAg
aWYgKGNhbGxGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSkgewotI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSh0MS5pLCB0MC5pKTsgLy8gcmV0dXJuaW5n
IEpTVmFsdWUodGFnLCBwYXlsb2FkKTsKLSNlbHNlCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZGVjb2RlKHQwLmVuY29kZWRKU1ZhbHVlKTsKLSNlbmRpZgotICAgICAgICB9Ci0KLSAgICAg
ICAgLy8gVGhlIG5vcm1hbCBBU00gbGxpbnQgY2FsbCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRv
IHRoZSBjYWxsZXIgYXMKLSAgICAgICAgLy8gcmVjb3JkZWQgaW4gclJldFZQQywgYW5kIHRoZSBj
YWxsZXIgd291bGQgZmV0Y2ggdGhlIHJldHVybiBhZGRyZXNzCi0gICAgICAgIC8vIGZyb20gQXJn
dW1lbnRDb3VudC50YWcoKSAoc2VlIHRoZSBkaXNwYXRjaEFmdGVyQ2FsbCgpIG1hY3JvIHVzZWQg
aW4KLSAgICAgICAgLy8gdGhlIGNhbGxUYXJnZXRGdW5jdGlvbigpIG1hY3JvIGluIHRoZSBsbGlu
dCBhc20gZmlsZXMpLgotICAgICAgICAvLwotICAgICAgICAvLyBGb3IgdGhlIEMgbG9vcCwgd2Ug
ZG9uJ3QgaGF2ZSB0aGUgSklUIHN0dWIgdG8gZG8gdGhpcyB3b3JrIGZvciB1cy4gU28sCi0gICAg
ICAgIC8vIHdlIGp1bXAgdG8gbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQuCi0KLSAgICAgICAg
dlBDID0gY2FsbEZyYW1lLT5jdXJyZW50VlBDKCk7Ci0KLSNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICAvLyBCYXNlZCBvbiBMb3dMZXZlbEludGVycHJldGVyNjQuYXNtJ3MgZGlzcGF0Y2hBZnRl
ckNhbGwoKToKLQotICAgICAgICAvLyBXaGVuIHJldHVybmluZyBmcm9tIGEgbmF0aXZlIHRyYW1w
b2xpbmUgY2FsbCwgdW5saWtlIHRoZSBhc3NlbWJseQotICAgICAgICAvLyBMTEludCwgd2UgY2Fu
J3Qgc2ltcGx5IHJldHVybiB0byB0aGUgY2FsbGVyLiBJbiBvdXIgY2FzZSwgd2UgZ3JhYgotICAg
ICAgICAvLyB0aGUgY2FsbGVyJ3MgVlBDIGFuZCByZXN1bWUgZXhlY3V0aW9uIHRoZXJlLiBIb3dl
dmVyLCB0aGUgY2FsbGVyJ3MKLSAgICAgICAgLy8gVlBDIHJldHVybmVkIGJ5IGNhbGxGcmFtZS0+
Y3VycmVudFZQQygpIGlzIGluIHRoZSBmb3JtIG9mIHRoZSByZWFsCi0gICAgICAgIC8vIGFkZHJl
c3Mgb2YgdGhlIHRhcmdldCBieXRlY29kZSwgYnV0IHRoZSA2NC1iaXQgbGxpbnQgZXhwZWN0cyB0
aGUKLSAgICAgICAgLy8gVlBDIHRvIGJlIGEgYnl0ZWNvZGUgb2Zmc2V0LiBIZW5jZSwgd2UgbmVl
ZCB0byBtYXAgaXQgYmFjayB0byBhCi0gICAgICAgIC8vIGJ5dGVjb2RlIG9mZnNldCBiZWZvcmUg
d2UgZGlzcGF0Y2ggdmlhIHRoZSB1c3VhbCBkaXNwYXRjaCBtZWNoYW5pc20KLSAgICAgICAgLy8g
aS5lLiBORVhUX0lOU1RSVUNUSU9OKCk6Ci0KLSAgICAgICAgY29kZUJsb2NrID0gY2FsbEZyYW1l
LT5jb2RlQmxvY2soKTsKLSAgICAgICAgQVNTRVJUKGNvZGVCbG9jayk7Ci0gICAgICAgIHJQQy52
cCA9IGNhbGxGcmFtZS0+Y3VycmVudFZQQygpOwotICAgICAgICByUEMuaSA9IHJQQy5pOHAgLSBy
ZWludGVycHJldF9jYXN0PGludDhfdCo+KGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4o
KSk7Ci0gICAgICAgIHJQQy5pID4+PSAzOwotCi0gICAgICAgIHJCYXNlUEMudnAgPSBjb2RlQmxv
Y2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7Ci0jZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKLQot
ICAgICAgICBnb3RvIGxsaW50X2dlbmVyaWNfcmV0dXJuX3BvaW50OwotCi0gICAgfSAvLyBFTkQg
ZG9SZXR1cm5IZWxwZXIuCi0KLQogI2lmIEVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAg
ICAgLy8gS2VlcCB0aGUgY29tcGlsZXIgaGFwcHkgc28gdGhhdCBpdCBkb2Vzbid0IGNvbXBsYWlu
IGFib3V0IHVudXNlZAogICAgIC8vIGxhYmVscyBmb3IgdGhlIExMSW50IHRyYW1wb2xpbmUgZ2x1
ZS4gVGhlIGxhYmVscyBhcmUgYXV0b21hdGljYWxseQpAQCAtNTIzLDEyICs0ODksMTIgQEAgSlNW
YWx1ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogCiAvLyBUaGVzZSBhcmUgZm9y
IGJ1aWxkaW5nIGFuIGludGVycHJldGVyIGZyb20gZ2VuZXJhdGVkIGFzc2VtYmx5IGNvZGU6CiAj
aWYgQ1BVKFg4Nl82NCkgJiYgQ09NUElMRVIoQ0xBTkcpCi0jZGVmaW5lIE9GRkxJTkVfQVNNX0JF
R0lOICAgYXNtICggXAorI2RlZmluZSBPRkZMSU5FX0FTTV9CRUdJTiAgIGFzbSAoICAgICAgICAg
ICAgICAgIFwKICAgICAiLmNmaV9zdGFydHByb2NcbiIKIAotI2RlZmluZSBPRkZMSU5FX0FTTV9F
TkQgICAgIFwKLSAgICAiLmNmaV9lbmRwcm9jXG4iIFwKLSk7CisjZGVmaW5lIE9GRkxJTkVfQVNN
X0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICIuY2ZpX2VuZHByb2NcbiIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
OwogI2Vsc2UKICNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4gICBhc20gKAogI2RlZmluZSBPRkZM
SU5FX0FTTV9FTkQgICAgICk7CkBAIC01NTEsOSArNTE3LDkgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhl
Y3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGxhYmVs
KSAiXG4iICAgICAgICAgXAogICAgIEhJREVfU1lNQk9MKGxhYmVsKSAiXG4iICAgICAgICAgICAg
ICAgICAgICAgXAogICAgIFNZTUJPTF9TVFJJTkcobGFiZWwpICI6XG4iICAgICAgICAgICAgICAg
ICAgXAotICAgICIuY2ZpX2RlZl9jZmEgcmJwLCAwXG4iICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICIuY2ZpX29mZnNldCAxNiwgOFxuIiAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICIu
Y2ZpX29mZnNldCA2LCAwXG4iCisgICAgIi5jZmlfZGVmX2NmYV9vZmZzZXQgMTZcbiIgICAgICAg
ICAgICAgICAgICBcCisgICAgIi5jZmlfb2Zmc2V0ICVyYnAsIC0xNlxuIiAgICAgICAgICAgICAg
ICAgICBcCisgICAgIi5jZmlfZGVmX2NmYV9yZWdpc3RlciByYnBcbiIKICNlbHNlCiAjZGVmaW5l
IE9GRkxJTkVfQVNNX0dMT0JBTF9MQUJFTChsYWJlbCkgICAgICAgICBcCiAgICAgIi50ZXh0XG4i
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcAkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsdm0vbGlicmFyeS9MTFZNRXhwb3J0
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDEwIEBAIGV4dGVybiAiQyIgSlNDOjpM
TFZNQVBJKiBpbml0aWFsaXplQW5kR2UKICAgICBnX2xsdm1UcmFwQ2FsbGJhY2sgPSBjYWxsYmFj
azsKICAgICAKICAgICBMTFZNSW5zdGFsbEZhdGFsRXJyb3JIYW5kbGVyKGxsdm1DcmFzaCk7CisK
KyAgICBpZiAoIUxMVk1TdGFydE11bHRpdGhyZWFkZWQoKSkKKyAgICAgICAgY2FsbGJhY2soIkNv
dWxkIG5vdCBzdGFydCBMTFZNIG11bHRpdGhyZWFkaW5nIik7CisgICAgCiAgICAgTExWTUxpbmtJ
bk1DSklUKCk7CiAgICAgTExWTUluaXRpYWxpemVOYXRpdmVUYXJnZXQoKTsKICAgICBMTFZNSW5p
dGlhbGl6ZVg4NkFzbVByaW50ZXIoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2FybTY0LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2FybTY0LnJiCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm02NC5yYgkod29ya2luZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDE0IEBA
IHJlcXVpcmUgInJpc2MiCiAjICB4MSAgPT4gdDEsIGExLCByMQogIyAgeDIgID0+IHQyLCBhMgog
IyAgeDMgID0+IGEzCisjICB4NSAgPT4gdDUKKyMgIHg2ICA9PiB0NgogIyAgeDkgID0+IChub25B
cmdHUFIxIGluIGJhc2VsaW5lKQotIyB4MTAgID0+IHQ0ICh1bnVzZWQgaW4gYmFzZWxpbmUpCi0j
IHgxMSAgPT4gdDUgKHVudXNlZCBpbiBiYXNlbGluZSkKLSMgeDEyICA9PiB0NiAodW51c2VkIGlu
IGJhc2VsaW5lKQogIyB4MTMgID0+IHNjcmF0Y2ggKHVudXNlZCBpbiBiYXNlbGluZSkKICMgeDE2
ICA9PiBzY3JhdGNoCiAjIHgxNyAgPT4gc2NyYXRjaAogIyB4MjMgID0+IHQzCisjIHgyNCAgPT4g
dDQKICMgeDI3ICA9PiBjc3IxICh0YWdUeXBlTnVtYmVyKQogIyB4MjggID0+IGNzcjIgKHRhZ01h
c2spCiAjIHgyOSAgPT4gY2ZyCkBAIC0xMTMsMTEgKzExMywxMSBAQCBjbGFzcyBSZWdpc3RlcklE
CiAgICAgICAgIHdoZW4gJ3QzJwogICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4MjMnLCBraW5k
KQogICAgICAgICB3aGVuICd0NCcKLSAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDEwJywga2lu
ZCkKKyAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDI0Jywga2luZCkKICAgICAgICAgd2hlbiAn
dDUnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gxMScsIGtpbmQpCisgICAgICAgICAgICBh
cm02NEdQUk5hbWUoJ3g1Jywga2luZCkKICAgICAgICAgd2hlbiAndDYnCi0gICAgICAgICAgICBh
cm02NEdQUk5hbWUoJ3gxMicsIGtpbmQpCisgICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3g2Jywg
a2luZCkKICAgICAgICAgd2hlbiAnY2ZyJwogICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4Mjkn
LCBraW5kKQogICAgICAgICB3aGVuICdjc3IxJwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2FybS5yYgkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vYXJtLnJiCSh3b3JraW5nIGNvcHkpCkBAIC02MDEsNiArNjAxLDggQEAg
Y2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAic211bGwgI3tvcGVyYW5k
c1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1szXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sw
XS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgd2hlbiAi
bWVtZmVuY2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImRtYiBzeSIKKyAgICAgICAgd2hlbiAi
Y2xyYnAiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJpYyAje29wZXJhbmRzWzJdLmFybU9wZXJh
bmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9
IgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBsb3dlckRlZmF1bHQKICAgICAgICAgZW5kCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIJKHdv
cmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTY4LDM0ICs2OCwyMiBAQCBDX0xPT1BfU0NSQVRDSF9GUFIgPSBTcGVjaWFsUmVnaXN0ZXIu
bmV3CiBjbGFzcyBSZWdpc3RlcklECiAgICAgZGVmIGNsRHVtcAogICAgICAgICBjYXNlIG5hbWUK
LSAgICAgICAgd2hlbiAiYTAiCi0gICAgICAgICAgICAiYTAiCi0gICAgICAgIHdoZW4gImExIgot
ICAgICAgICAgICAgImExIgotICAgICAgICB3aGVuICJhMiIKLSAgICAgICAgICAgICJhMiIKLSAg
ICAgICAgd2hlbiAiYTMiCi0gICAgICAgICAgICAiYTMiCi0gICAgICAgIHdoZW4gImE0IgotICAg
ICAgICAgICAgImE0IgotICAgICAgICB3aGVuICJhNSIKLSAgICAgICAgICAgICJhNSIKLSAgICAg
ICAgd2hlbiAiYTYiCi0gICAgICAgICAgICAiYTYiCi0gICAgICAgIHdoZW4gImE2IgotICAgICAg
ICAgICAgImE2IgotICAgICAgICB3aGVuICJ0MCIKKyAgICAgICAgIyBUaGUgY2xvb3AgaXMgbW9k
ZWxsZWQgb24gdGhlIEFSTSBpbXBsZW1lbnRhdGlvbi4gSGVuY2UsIHRoZSBhMC1hMworICAgICAg
ICAjIHJlZ2lzdGVycyBhcmUgYWxpYXNlcyBmb3IgcjAtcjMgaS5lLiB0MC10MyBpbiBvdXIgY2Fz
ZS4KKyAgICAgICAgd2hlbiAidDAiLCAiYTAiCiAgICAgICAgICAgICAidDAiCi0gICAgICAgIHdo
ZW4gInQxIgorICAgICAgICB3aGVuICJ0MSIsICJhMSIKICAgICAgICAgICAgICJ0MSIKLSAgICAg
ICAgd2hlbiAidDIiCisgICAgICAgIHdoZW4gInQyIiwgImEyIgogICAgICAgICAgICAgInQyIgot
ICAgICAgICB3aGVuICJ0MyIKKyAgICAgICAgd2hlbiAidDMiLCAiYTMiCiAgICAgICAgICAgICAi
dDMiCiAgICAgICAgIHdoZW4gInQ0IgotICAgICAgICAgICAgInJQQyIKKyAgICAgICAgICAgICJw
YyIKKyAgICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICAidDUiCiAgICAgICAgIHdoZW4gInQ2
IgotICAgICAgICAgICAgInJCYXNlUEMiCisgICAgICAgICAgICAicGNCYXNlIgogICAgICAgICB3
aGVuICJjc3IxIgogICAgICAgICAgICAgInRhZ1R5cGVOdW1iZXIiCiAgICAgICAgIHdoZW4gImNz
cjIiCkBAIC0xMDMsNyArOTEsNyBAQCBjbGFzcyBSZWdpc3RlcklECiAgICAgICAgIHdoZW4gImNm
ciIKICAgICAgICAgICAgICJjZnIiCiAgICAgICAgIHdoZW4gImxyIgotICAgICAgICAgICAgInJS
ZXRWUEMiCisgICAgICAgICAgICAibHIiCiAgICAgICAgIHdoZW4gInNwIgogICAgICAgICAgICAg
InNwIgogICAgICAgICBlbHNlCkBAIC01NTUsMTQgKzU0MywxNCBAQCBlbmQKICMgb3BlcmFuZHM6
IGNhbGxUYXJnZXQsIGN1cnJlbnRGcmFtZSwgY3VycmVudFBDCiBkZWYgY2xvb3BFbWl0Q2FsbFNs
b3dQYXRoKG9wZXJhbmRzKQogICAgICRhc20ucHV0YyAieyIKLSAgICAkYXNtLnB1dGMgIiAgICBF
eGVjU3RhdGUqIGV4ZWMgPSBDQVNUPEV4ZWNTdGF0ZSo+KCN7b3BlcmFuZHNbMV0uY2xWYWx1ZSg6
dm9pZFB0cil9KTsiCi0gICAgJGFzbS5wdXRjICIgICAgSW5zdHJ1Y3Rpb24qIHBjID0gQ0FTVDxJ
bnN0cnVjdGlvbio+KCN7b3BlcmFuZHNbMl0uY2xWYWx1ZSg6dm9pZFB0cil9KTsiCi0gICAgJGFz
bS5wdXRjICIgICAgU2xvd1BhdGhSZXR1cm5UeXBlIHJlc3VsdCA9ICN7b3BlcmFuZHNbMF0uY0xh
YmVsfShleGVjLCBwYyk7IgotICAgICRhc20ucHV0YyAiICAgIGRlY29kZVJlc3VsdChyZXN1bHQs
IHQwLmluc3RydWN0aW9uLCB0MS52cCk7IgorICAgICRhc20ucHV0YyAiICAgIFNsb3dQYXRoUmV0
dXJuVHlwZSByZXN1bHQgPSAje29wZXJhbmRzWzBdLmNMYWJlbH0oI3tvcGVyYW5kc1sxXS5jbER1
bXB9LCAje29wZXJhbmRzWzJdLmNsRHVtcH0pOyIKKyAgICAkYXNtLnB1dGMgIiAgICBkZWNvZGVS
ZXN1bHQocmVzdWx0LCB0MC52cCwgdDEudnApOyIKICAgICAkYXNtLnB1dGMgIn0iCiBlbmQKIAog
Y2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBAQGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlciA9IDAK
KwogICAgIGRlZiBsb3dlckNfTE9PUAogICAgICAgICAkYXNtLmNvZGVPcmlnaW4gY29kZU9yaWdp
blN0cmluZyBpZiAkZW5hYmxlQ29kZU9yaWdpbkNvbW1lbnRzCiAgICAgICAgICRhc20uYW5ub3Rh
dGlvbiBhbm5vdGF0aW9uIGlmICRlbmFibGVJbnN0ckFubm90YXRpb25zICYmIChvcGNvZGUgIT0g
ImNsb29wRG8iKQpAQCAtODc2LDcgKzg2NCw4IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAg
IHdoZW4gImJyZWFrIgogICAgICAgICAgICAgJGFzbS5wdXRjICJDUkFTSCgpOyAvLyBicmVhayBp
bnN0cnVjdGlvbiBub3QgaW1wbGVtZW50ZWQuIgogICAgICAgICB3aGVuICJyZXQiCi0gICAgICAg
ICAgICAkYXNtLnB1dGMgImdvdG8gZG9SZXR1cm5IZWxwZXI7IgorICAgICAgICAgICAgJGFzbS5w
dXRjICJvcGNvZGUgPSBsci5vcGNvZGU7IgorICAgICAgICAgICAgJGFzbS5wdXRjICJESVNQQVRD
SF9PUENPREUoKTsiCiAKICAgICAgICAgd2hlbiAiY2JlcSIKICAgICAgICAgICAgIGNsb29wRW1p
dENvbXBhcmVBbmRTZXQob3BlcmFuZHMsIDp1aW50OCwgIj09IikKQEAgLTEwOTcsNiArMTA4Niwx
MiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgY2xvb3BFbWl0T3BBbmRCcmFuY2go
b3BlcmFuZHMsICJ8IiwgOmludDMyLCAiIT0gMCIpCiAgICAgICAgICAgICAKICAgICAgICAgd2hl
biAibWVtZmVuY2UiCisKKyAgICAgICAgd2hlbiAicHVzaCIKKyAgICAgICAgICAgICRhc20ucHV0
YyAiUFVTSCgje29wZXJhbmRzWzBdLmNsRHVtcH0pOyIKKyAgICAgICAgd2hlbiAicG9wIgorICAg
ICAgICAgICAgJGFzbS5wdXRjICJQT1AoI3tvcGVyYW5kc1swXS5jbER1bXB9KTsiCisKICAgICAg
ICAgd2hlbiAicHVzaENhbGxlZVNhdmVzIgogICAgICAgICB3aGVuICJwb3BDYWxsZWVTYXZlcyIK
IApAQCAtMTExMyw4ICsxMTA4LDExIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICMgdXNl
IG9mIHRoZSBjYWxsIGluc3RydWN0aW9uLiBJbnN0ZWFkLCB3ZSBqdXN0IGltcGxlbWVudCBKUyBj
YWxscwogICAgICAgICAjIGFzIGFuIG9wY29kZSBkaXNwYXRjaC4KICAgICAgICAgd2hlbiAiY2xv
b3BDYWxsSlNGdW5jdGlvbiIKKyAgICAgICAgICAgIEBAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3Vu
dGVyICs9IDEKKyAgICAgICAgICAgICRhc20ucHV0YyAibHIub3Bjb2RlID0gZ2V0T3Bjb2RlKGxs
aW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc18je0BAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3Vu
dGVyfSk7IgogICAgICAgICAgICAgJGFzbS5wdXRjICJvcGNvZGUgPSAje29wZXJhbmRzWzBdLmNs
VmFsdWUoOm9wY29kZSl9OyIKICAgICAgICAgICAgICRhc20ucHV0YyAiRElTUEFUQ0hfT1BDT0RF
KCk7IgorICAgICAgICAgICAgJGFzbS5wdXRzTGFiZWwoImxsaW50X2Nsb29wX2RpZF9yZXR1cm5f
ZnJvbV9qc18je0BAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3VudGVyfSIpCiAKICAgICAgICAgIyBX
ZSBjYW4ndCBkbyBnZW5lcmljIGZ1bmN0aW9uIGNhbGxzIHdpdGggYW4gYXJiaXRyYXJ5IHNldCBv
ZiBhcmdzLCBidXQKICAgICAgICAgIyBmb3J0dW5hdGVseSB3ZSBkb24ndCBoYXZlIHRvIGhlcmUu
IEFsbCBuYXRpdmUgZnVuY3Rpb24gY2FsbHMgYWx3YXlzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIJKHdv
cmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsMTEgQEAgWDg2X0lOU1RSVUNUSU9OUyA9CiAgICAg
ICJpZGl2aSIKICAgICBdCiAKK0FSTV9JTlNUUlVDVElPTlMgPQorICAgIFsKKyAgICAgImNscmJw
IgorICAgIF0KKwogQVJNNjRfSU5TVFJVQ1RJT05TID0KICAgICBbCiAgICAgICJwb3BMUkFuZEZQ
IiwgICAjIEFSTTY0IHJlcXVpcmVzIHJlZ2lzdGVycyB0byBiZSBwdXNoZWQgYW5kIHBvcHBlZCBp
biBwYWlycywKQEAgLTMxMyw3ICszMTgsNyBAQCBDWFhfSU5TVFJVQ1RJT05TID0KICAgICAgImNs
b29wRG8iLCAgICAgICAgICAgICAgIyBubyBvcGVyYW5kcwogICAgIF0KIAotSU5TVFJVQ1RJT05T
ID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTTY0X0lOU1RSVUNU
SU9OUyArIFJJU0NfSU5TVFJVQ1RJT05TICsgTUlQU19JTlNUUlVDVElPTlMgKyBTSDRfSU5TVFJV
Q1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUworSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJ
T05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTV9JTlNUUlVDVElPTlMgKyBBUk02NF9JTlNUUlVD
VElPTlMgKyBSSVNDX0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsgU0g0X0lOU1RS
VUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKIAogSU5TVFJVQ1RJT05fUEFUVEVSTiA9IFJlZ2V4
cC5uZXcoJ1xcQSgoJyArIElOU1RSVUNUSU9OUy5qb2luKCcpfCgnKSArICcpKVxcWicpCiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgkod29ya2luZyBj
b3B5KQpAQCAtMTUwLDE1ICsxNTAsMTUgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICB3aGVu
ICJ0NCIKICAgICAgICAgICAgIGNhc2Uga2luZAogICAgICAgICAgICAgd2hlbiA6Ynl0ZQotICAg
ICAgICAgICAgICAgICIlc2lsIgorICAgICAgICAgICAgICAgICIlZGlsIgogICAgICAgICAgICAg
d2hlbiA6aGFsZgotICAgICAgICAgICAgICAgICIlc2kiCisgICAgICAgICAgICAgICAgIiVkaSIK
ICAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgICIlZXNpIgorICAgICAgICAg
ICAgICAgICIlZWRpIgogICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgaXNY
NjQgPyAiJXJzaSIgOiAiJWVzaSIKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcmRpIiA6ICIl
ZWRpIgogICAgICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVy
c2kiIDogcmFpc2UKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcmRpIiA6IHJhaXNlCiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIGVuZApAQCAt
MjA2LDE1ICsyMDYsMTUgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICB3aGVuICJ0NSIKICAg
ICAgICAgICAgIGNhc2Uga2luZAogICAgICAgICAgICAgd2hlbiA6Ynl0ZQotICAgICAgICAgICAg
ICAgICIlZGlsIgorICAgICAgICAgICAgICAgICIlc2lsIgogICAgICAgICAgICAgd2hlbiA6aGFs
ZgotICAgICAgICAgICAgICAgICIlZGkiCisgICAgICAgICAgICAgICAgIiVzaSIKICAgICAgICAg
ICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgICIlZWRpIgorICAgICAgICAgICAgICAgICIl
ZXNpIgogICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJk
aSIgOiAiJWVkaSIKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcnNpIiA6ICIlZXNpIgogICAg
ICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVyZGkiIDogcmFp
c2UKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcnNpIiA6IHJhaXNlCiAgICAgICAgICAgICBl
bmQKICAgICAgICAgd2hlbiAidDYiCiAgICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25h
bWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgUGFyc2VyRXJyb3JfaAog
CiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5nU2NvcGUuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiUGFyc2VyVG9rZW5zLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05NCw4ICs5NSwxMCBAQCBzdHJ1Y3Qg
UGFyc2VyRXJyb3IgewogICAgICAgICAgICAgcmV0dXJuIGFkZEVycm9ySW5mbyhnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSwgY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCBtX21lc3Nh
Z2UpLCBtX2xpbmUsIHNvdXJjZSk7CiAgICAgICAgIGNhc2UgRXZhbEVycm9yOgogICAgICAgICAg
ICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgbV9tZXNzYWdlKTsKLSAg
ICAgICAgY2FzZSBTdGFja092ZXJmbG93OgorICAgICAgICBjYXNlIFN0YWNrT3ZlcmZsb3c6IHsK
KyAgICAgICAgICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKGdsb2JhbE9iamVjdC0+
dm0oKSk7CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGdsb2Jh
bE9iamVjdCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBPdXRPZk1lbW9yeToKICAgICAgICAg
ICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCk7CiAgICAgICAg
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJDb21waWxhdGlvbi5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNjcsNiArNjcsMTEgQEAgdm9pZCBDb21waWxhdGlvbjo6YWRkRGVzY3JpcHRp
b24oY29uc3QgQwogICAgIG1fZGVzY3JpcHRpb25zLmFwcGVuZChjb21waWxlZEJ5dGVjb2RlKTsK
IH0KIAordm9pZCBDb21waWxhdGlvbjo6YWRkRGVzY3JpcHRpb24oY29uc3QgT3JpZ2luU3RhY2sm
IHN0YWNrLCBjb25zdCBDU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhZGREZXNjcmlwdGlv
bihDb21waWxlZEJ5dGVjb2RlKHN0YWNrLCBkZXNjcmlwdGlvbikpOworfQorCiBFeGVjdXRpb25D
b3VudGVyKiBDb21waWxhdGlvbjo6ZXhlY3V0aW9uQ291bnRlckZvcihjb25zdCBPcmlnaW5TdGFj
ayYgb3JpZ2luKQogewogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeGVjdXRpb25Db3VudGVyPiYgY291
bnRlciA9IG1fY291bnRlcnMuYWRkKG9yaWdpbiwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJD
b21waWxhdGlvbi5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICBDb21waWxhdGlvbktpbmQga2luZCgpIGNvbnN0
IHsgcmV0dXJuIG1fa2luZDsgfQogICAgIAogICAgIHZvaWQgYWRkRGVzY3JpcHRpb24oY29uc3Qg
Q29tcGlsZWRCeXRlY29kZSYpOworICAgIHZvaWQgYWRkRGVzY3JpcHRpb24oY29uc3QgT3JpZ2lu
U3RhY2smLCBjb25zdCBDU3RyaW5nJiBkZXNjcmlwdGlvbik7CiAgICAgRXhlY3V0aW9uQ291bnRl
ciogZXhlY3V0aW9uQ291bnRlckZvcihjb25zdCBPcmlnaW5TdGFjayYpOwogICAgIHZvaWQgYWRk
T1NSRXhpdFNpdGUoY29uc3QgVmVjdG9yPGNvbnN0IHZvaWQqPiYgY29kZUFkZHJlc3Nlcyk7CiAg
ICAgT1NSRXhpdCogYWRkT1NSRXhpdCh1bnNpZ25lZCBpZCwgY29uc3QgT3JpZ2luU3RhY2smLCBF
eGl0S2luZCwgYm9vbCBpc1dhdGNocG9pbnQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuY3BwCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJDb21waWxhdGlvbktpbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw2ICs0MiwxMiBAQCB2b2lk
IHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgSlNDCiAgICAgY2FzZSBKU0M6OlByb2Zp
bGVyOjpERkc6CiAgICAgICAgIG91dC5wcmludCgiREZHIik7CiAgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIEpTQzo6UHJvZmlsZXI6OkZUTDoKKyAgICAgICAgb3V0LnByaW50KCJGVEwiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQcm9maWxlcjo6RlRMRm9yT1NSRW50cnk6Cisg
ICAgICAgIG91dC5wcmludCgiRlRMRm9yT1NSRW50cnkiKTsKKyAgICAgICAgcmV0dXJuOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2luZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0
aW9uS2luZC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNyArMzEs
OSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIGVudW0gQ29tcGlsYXRp
b25LaW5kIHsKICAgICBMTEludCwKICAgICBCYXNlbGluZSwKLSAgICBERkcKKyAgICBERkcsCisg
ICAgRlRMLAorICAgIEZUTEZvck9TUkVudHJ5CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
UHJvZmlsZXIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyaXR5Q2hlY2tN
b2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJpdHlD
aGVja01vZGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FyaXR5Q2hlY2tNb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFyaXR5Q2hl
Y2tNb2RlX2gKKyNkZWZpbmUgQXJpdHlDaGVja01vZGVfaAorCituYW1lc3BhY2UgSlNDIHsKKwor
ZW51bSBBcml0eUNoZWNrTW9kZSB7CisgICAgQXJpdHlDaGVja05vdFJlcXVpcmVkLAorICAgIE11
c3RDaGVja0FyaXR5Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEFyaXR5
Q2hlY2tNb2RlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIw
MTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOSwxMCArMjksMTIgQEAKICNpZiBFTkFCTEUoSklUKSB8fCBF
TkFCTEUoTExJTlQpCiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJBcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNp
bmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlUHJvZmlsaW5nLmgiCiAjaW5jbHVk
ZSAiQ29tbW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5oIgorI2luY2x1ZGUgIkVycm9ySGFuZGxpbmdT
Y29wZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkhvc3RDYWxsUmV0
dXJuVmFsdWUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpAQCAtMTYxLDI4ICsxNjMsNDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENBTExfRU5EX0lNUEwoY3JFeGVjLCBjckNhbGxU
YXJnZXQpOyAgICAgICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKK3N0YXRpYyBD
b21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhKiBzZXR1cEFyaXR5Q2hlY2tEYXRhKFZNJiB2
bSwgaW50IHNsb3RzVG9BZGQpCit7CisgICAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0
YSogcmVzdWx0ID0gdm0uYXJpdHlDaGVja0RhdGEuZ2V0KCk7CisgICAgcmVzdWx0LT5wYWRkZWRT
dGFja1NwYWNlID0gc2xvdHNUb0FkZDsKKyNpZiBFTkFCTEUoSklUKQorICAgIGlmICh2bS5jYW5V
c2VKSVQoKSkgeworICAgICAgICByZXN1bHQtPnRodW5rVG9DYWxsID0gdm0uZ2V0Q1RJU3R1Yihh
cml0eUZpeHVwKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICAgICAgcmVzdWx0LT5y
ZXR1cm5QQyA9IHZtLmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5QQ0Zvcih2bSwg
c2xvdHNUb0FkZCAqIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpLmV4ZWN1dGFibGVBZGRyZXNz
KCk7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICB7CisgICAgICAgIHJlc3VsdC0+dGh1bmtUb0Nh
bGwgPSAwOworICAgICAgICByZXN1bHQtPnJldHVyblBDID0gMDsKKyAgICB9CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKwogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2NhbGxfYXJpdHlDaGVjaykK
IHsKICAgICBCRUdJTigpOwotICAgIGludCBTbG90c1RvQWRkID0gQ29tbW9uU2xvd1BhdGhzOjph
cml0eUNoZWNrRm9yKGV4ZWMsICZ2bS5pbnRlcnByZXRlci0+c3RhY2soKSwgQ29kZUZvckNhbGwp
OwotICAgIGlmIChTbG90c1RvQWRkIDwgMCkgeworICAgIGludCBzbG90c1RvQWRkID0gQ29tbW9u
U2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4ZWMsICZ2bS5pbnRlcnByZXRlci0+c3RhY2soKSwg
Q29kZUZvckNhbGwpOworICAgIGlmIChzbG90c1RvQWRkIDwgMCkgewogICAgICAgICBleGVjID0g
ZXhlYy0+Y2FsbGVyRnJhbWUoKTsKKyAgICAgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2Nv
cGUoZXhlYy0+dm0oKSk7CiAgICAgICAgIENvbW1vblNsb3dQYXRoczo6aW50ZXJwcmV0ZXJUaHJv
d0luQ2FsbGVyKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CiAgICAgICAg
IFJFVFVSTl9UV08oYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEp
KSwgZXhlYyk7CiAgICAgfQotICAgIFJFVFVSTl9UV08oMCwgcmVpbnRlcnByZXRfY2FzdDxFeGVj
U3RhdGUqPihTbG90c1RvQWRkKSk7CisgICAgUkVUVVJOX1RXTygwLCBzZXR1cEFyaXR5Q2hlY2tE
YXRhKHZtLCBzbG90c1RvQWRkKSk7CiB9CiAKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jb25z
dHJ1Y3RfYXJpdHlDaGVjaykKIHsKICAgICBCRUdJTigpOwotICAgIGludCBTbG90c1RvQWRkID0g
Q29tbW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4ZWMsICZ2bS5pbnRlcnByZXRlci0+c3Rh
Y2soKSwgQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgaWYgKFNsb3RzVG9BZGQgPCAwKSB7CisgICAg
aW50IHNsb3RzVG9BZGQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IoZXhlYywgJnZt
LmludGVycHJldGVyLT5zdGFjaygpLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICBpZiAoc2xvdHNU
b0FkZCA8IDApIHsKICAgICAgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7CisgICAgICAg
IEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKGV4ZWMtPnZtKCkpOwogICAgICAgICBDb21t
b25TbG93UGF0aHM6OmludGVycHJldGVyVGhyb3dJbkNhbGxlcihleGVjLCBjcmVhdGVTdGFja092
ZXJmbG93RXJyb3IoZXhlYykpOwogICAgICAgICBSRVRVUk5fVFdPKGJpdHdpc2VfY2FzdDx2b2lk
Kj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigxKSksIGV4ZWMpOwogICAgIH0KLSAgICBSRVRVUk5f
VFdPKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8RXhlY1N0YXRlKj4oU2xvdHNUb0FkZCkpOworICAgIFJF
VFVSTl9UV08oMCwgc2V0dXBBcml0eUNoZWNrRGF0YSh2bSwgc2xvdHNUb0FkZCkpOwogfQogCiBT
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfdG91Y2hfZW50cnkpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3Bh
Y2UgQ29tbW9uU2xvd1BhdGhzIHsKIAorc3RydWN0IEFyaXR5Q2hlY2tEYXRhIHsKKyAgICB1bnNp
Z25lZCBwYWRkZWRTdGFja1NwYWNlOworICAgIHZvaWQqIHRodW5rVG9DYWxsOworICAgIHZvaWQq
IHJldHVyblBDOworfTsKKwogQUxXQVlTX0lOTElORSBpbnQgYXJpdHlDaGVja0ZvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTU3RhY2sqIHN0YWNrLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7
CiAgICAgSlNGdW5jdGlvbiogY2FsbGVlID0ganNDYXN0PEpTRnVuY3Rpb24qPihleGVjLT5jYWxs
ZWUoKSk7CkBAIC01OCwxOCArNjQsMTIgQEAgQUxXQVlTX0lOTElORSBpbnQgYXJpdHlDaGVja0Zv
cihFeGVjU3RhdAogICAgIAogICAgIEFTU0VSVChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA8
IG5ld0NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKTsKICAgICBpbnQgbWlzc2luZ0FyZ3VtZW50
Q291bnQgPSBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSAtIGFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzOwotICAgIGludCBwYWRkZWRNaXNzaW5nQXJndW1lbnRDb3VudCA9IFdURjo6cm91
bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBtaXNzaW5nQXJndW1l
bnRDb3VudCk7CisgICAgaW50IG5lZWRlZFN0YWNrU3BhY2UgPSBtaXNzaW5nQXJndW1lbnRDb3Vu
dCArIDE7IC8vIEFsbG93IHNwYWNlIHRvIHNhdmUgdGhlIG9yaWdpbmFsIHJldHVybiBQQy4KKyAg
ICBpbnQgcGFkZGVkU3RhY2tTcGFjZSA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0Fs
aWdubWVudFJlZ2lzdGVycygpLCBuZWVkZWRTdGFja1NwYWNlKTsKIAotI2lmIFVTRShTRVBBUkFU
RV9DX0FORF9KU19TVEFDSykKLSAgICBpZiAoIXN0YWNrLT5ncm93KGV4ZWMtPnJlZ2lzdGVycygp
IC0gcGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291bnQpKQorICAgIGlmICghc3RhY2stPmVuc3VyZUNh
cGFjaXR5Rm9yKGV4ZWMtPnJlZ2lzdGVycygpIC0gcGFkZGVkU3RhY2tTcGFjZSkpCiAgICAgICAg
IHJldHVybiAtMTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHN0YWNrKTsKLSAgICBpZiAoIWV4
ZWMtPnZtKCkuaXNTYWZlVG9SZWN1cnNlKHBhZGRlZE1pc3NpbmdBcmd1bWVudENvdW50ICogc2l6
ZW9mKFJlZ2lzdGVyKSkpCi0gICAgICAgIHJldHVybiAtMTsKLSNlbmRpZiAvLyBVU0UoU0VQQVJB
VEVfQ19BTkRfSlNfU1RBQ0spCi0KLSAgICByZXR1cm4gcGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291
bnQ7CisgICAgcmV0dXJuIHBhZGRlZFN0YWNrU3BhY2UgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVy
cygpOwogfQogCiBpbmxpbmUgYm9vbCBvcEluKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBwcm9w
TmFtZSwgSlNWYWx1ZSBiYXNlVmFsKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JIYW5kbGluZ1Njb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRs
aW5nU2NvcGUuaCIKKworI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3B0aW9u
cy5oIgorI2luY2x1ZGUgIlZNLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitFcnJvckhhbmRsaW5n
U2NvcGU6OkVycm9ySGFuZGxpbmdTY29wZShWTSYgdm0pCisgICAgOiBtX3ZtKHZtKQoreworICAg
IGlmICghbV92bS5zdGFja1BvaW50ZXJBdFZNRW50cnkpCisgICAgICAgIG1fdm0uc3RhY2tQb2lu
dGVyQXRWTUVudHJ5ID0gdGhpczsKKyAgICBzaXplX3QgbmV3UmVzZXJ2ZWRab25lU2l6ZSA9IE9w
dGlvbnM6OmVycm9yTW9kZVJlc2VydmVkWm9uZVNpemUoKTsKKyAgICBtX3NhdmVkUmVzZXJ2ZWRa
b25lU2l6ZSA9IG1fdm0udXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKG5ld1Jl
c2VydmVkWm9uZVNpemUpOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgbV92bS5pbnRl
cnByZXRlci0+c3RhY2soKS5zZXRSZXNlcnZlZFpvbmVTaXplKG5ld1Jlc2VydmVkWm9uZVNpemUp
OworI2VuZGlmCit9CisKK0Vycm9ySGFuZGxpbmdTY29wZTo6fkVycm9ySGFuZGxpbmdTY29wZSgp
Cit7CisgICAgaWYgKG1fdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5ID09IHRoaXMpCisgICAgICAg
IG1fdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbnVsbHB0cjsKKyAgICBtX3ZtLnVwZGF0ZVN0
YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSk7Cisj
aWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBtX3ZtLmludGVycHJldGVyLT5zdGFjaygpLnNl
dFJlc2VydmVkWm9uZVNpemUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOworI2VuZGlmCit9CisK
K30gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JIYW5kbGluZ1Njb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgRXJyb3JIYW5kbGluZ1Njb3BlX2gKKyNkZWZpbmUgRXJyb3JIYW5kbGlu
Z1Njb3BlX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFZNOworCitjbGFzcyBFcnJvckhh
bmRsaW5nU2NvcGUgeworcHVibGljOgorICAgIEpTX0VYUE9SVF9QUklWQVRFIEVycm9ySGFuZGxp
bmdTY29wZShWTSYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIH5FcnJvckhhbmRsaW5nU2NvcGUo
KTsKK3ByaXZhdGU6CisgICAgVk0mIG1fdm07CisgICAgc2l6ZV90IG1fc2F2ZWRSZXNlcnZlZFpv
bmVTaXplOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFcnJvckhhbmRs
aW5nU2NvcGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRp
b25IZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNhbGxG
cmFtZS5oIgorI2luY2x1ZGUgIkVycm9ySGFuZGxpbmdTY29wZS5oIgogI2luY2x1ZGUgIkVycm9y
SW5zdGFuY2UuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIgogI2luY2x1
ZGUgIkpTT2JqZWN0LmgiCkBAIC0xNjAsMTQgKzE2MSwxNiBAQCBKU09iamVjdCogdGhyb3dPdXRP
Zk1lbW9yeUVycm9yKEV4ZWNTdGF0CiAKIEpTT2JqZWN0KiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJv
cihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSW50ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2Rl
IG1vZGUoZXhlYyk7Ci0gICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywg
Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKKyAgICBWTSYgdm0gPSBleGVjLT52bSgp
OworICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKHZtKTsKKyAgICByZXR1cm4gdm0u
dGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKIH0K
IAogSlNPYmplY3QqIHRocm93VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSW50ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2RlIG1vZGUoZXhlYyk7
Ci0gICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVGVybWlu
YXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbigmZXhlYy0+dm0oKSkpOworICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CisgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUodm0pOworICAgIHJldHVy
biB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0
aW9uKCZ2bSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkxMSW50RW50cnlwb2ludC5oIgogI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29t
bWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtMTE4LDEyICsxMTksMTQgQEAgdm9pZCBTY3JpcHRFeGVj
dXRhYmxlOjppbnN0YWxsQ29kZShDb2RlQgogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2Ug
Q29kZUZvckNhbGw6CiAgICAgICAgIG1faml0Q29kZUZvckNhbGwgPSBnZW5lcmljQ29kZUJsb2Nr
LT5qaXRDb2RlKCk7Ci0gICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayA9IGdl
bmVyaWNDb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpOworICAgICAgICBtX2ppdENv
ZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKKyAgICAg
ICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzID0gTWFjcm9B
c3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgICAgIG1fbnVtUGFyYW1ldGVyc0ZvckNhbGwgPSBnZW5l
cmljQ29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q29kZUZvckNvbnN0cnVjdDoKICAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gZ2VuZXJp
Y0NvZGVCbG9jay0+aml0Q29kZSgpOwotICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRo
QXJpdHlDaGVjayA9IGdlbmVyaWNDb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpOwor
ICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IE1hY3JvQXNzZW1i
bGVyQ29kZVB0cigpOworICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVj
a0FuZFByZXNlcnZlUmVncyA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOwogICAgICAgICBtX251
bVBhcmFtZXRlcnNGb3JDb25zdHJ1Y3QgPSBnZW5lcmljQ29kZUJsb2NrLT5udW1QYXJhbWV0ZXJz
KCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTEzMyw3ICsxMzYsNiBAQCB2b2lkIFNjcmlw
dEV4ZWN1dGFibGU6Omluc3RhbGxDb2RlKENvZGVCCiAgICAgICAgIFByb2dyYW1FeGVjdXRhYmxl
KiBleGVjdXRhYmxlID0ganNDYXN0PFByb2dyYW1FeGVjdXRhYmxlKj4odGhpcyk7CiAgICAgICAg
IFByb2dyYW1Db2RlQmxvY2sqIGNvZGVCbG9jayA9IHN0YXRpY19jYXN0PFByb2dyYW1Db2RlQmxv
Y2sqPihnZW5lcmljQ29kZUJsb2NrKTsKICAgICAgICAgCi0gICAgICAgIEFTU0VSVCghY29kZUJs
b2NrLT5qaXRDb2RlV2l0aEFyaXR5Q2hlY2soKSk7CiAgICAgICAgIEFTU0VSVChraW5kID09IENv
ZGVGb3JDYWxsKTsKICAgICAgICAgCiAgICAgICAgIG9sZENvZGVCbG9jayA9IGV4ZWN1dGFibGUt
Pm1fcHJvZ3JhbUNvZGVCbG9jazsKQEAgLTE0NSw3ICsxNDcsNiBAQCB2b2lkIFNjcmlwdEV4ZWN1
dGFibGU6Omluc3RhbGxDb2RlKENvZGVCCiAgICAgICAgIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRh
YmxlID0ganNDYXN0PEV2YWxFeGVjdXRhYmxlKj4odGhpcyk7CiAgICAgICAgIEV2YWxDb2RlQmxv
Y2sqIGNvZGVCbG9jayA9IHN0YXRpY19jYXN0PEV2YWxDb2RlQmxvY2sqPihnZW5lcmljQ29kZUJs
b2NrKTsKICAgICAgICAgCi0gICAgICAgIEFTU0VSVCghY29kZUJsb2NrLT5qaXRDb2RlV2l0aEFy
aXR5Q2hlY2soKSk7CiAgICAgICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDYWxsKTsKICAgICAg
ICAgCiAgICAgICAgIG9sZENvZGVCbG9jayA9IGV4ZWN1dGFibGUtPm1fZXZhbENvZGVCbG9jazsK
QEAgLTYxMCw2ICs2MTEsNDYgQEAgU3RyaW5nIEZ1bmN0aW9uRXhlY3V0YWJsZTo6cGFyYW1TdHJp
bmcoKQogICAgIHJldHVybiBtX3VubGlua2VkRXhlY3V0YWJsZS0+cGFyYW1TdHJpbmcoKTsKIH0K
IAordm9pZCBFeGVjdXRhYmxlQmFzZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAorewor
ICAgIEV4ZWN1dGFibGVCYXNlKiByZWFsVGhpcyA9IGNvbnN0X2Nhc3Q8RXhlY3V0YWJsZUJhc2Uq
Pih0aGlzKTsKKyAgICAKKyAgICBpZiAoY2xhc3NJbmZvKCkgPT0gTmF0aXZlRXhlY3V0YWJsZTo6
aW5mbygpKSB7CisgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZSA9IGpzQ2FzdDxOYXRp
dmVFeGVjdXRhYmxlKj4ocmVhbFRoaXMpOworICAgICAgICBvdXQucHJpbnQoIk5hdGl2ZUV4ZWN1
dGFibGU6IiwgUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KG5hdGl2ZS0+ZnVuY3Rpb24o
KSkpLCAiLyIsIFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihuYXRpdmUtPmNvbnN0cnVj
dG9yKCkpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKGNsYXNzSW5m
bygpID09IEV2YWxFeGVjdXRhYmxlOjppbmZvKCkpIHsKKyAgICAgICAgRXZhbEV4ZWN1dGFibGUq
IGV2YWwgPSBqc0Nhc3Q8RXZhbEV4ZWN1dGFibGUqPihyZWFsVGhpcyk7CisgICAgICAgIGlmIChD
b2RlQmxvY2sqIGNvZGVCbG9jayA9IGV2YWwtPmNvZGVCbG9jaygpKQorICAgICAgICAgICAgb3V0
LnByaW50KCpjb2RlQmxvY2spOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXQucHJpbnQo
IkV2YWxFeGVjdXRhYmxlIHcvbyBDb2RlQmxvY2siKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAKKyAgICBpZiAoY2xhc3NJbmZvKCkgPT0gUHJvZ3JhbUV4ZWN1dGFibGU6OmluZm8oKSkg
eworICAgICAgICBQcm9ncmFtRXhlY3V0YWJsZSogZXZhbCA9IGpzQ2FzdDxQcm9ncmFtRXhlY3V0
YWJsZSo+KHJlYWxUaGlzKTsKKyAgICAgICAgaWYgKENvZGVCbG9jayogY29kZUJsb2NrID0gZXZh
bC0+Y29kZUJsb2NrKCkpCisgICAgICAgICAgICBvdXQucHJpbnQoKmNvZGVCbG9jayk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludCgiUHJvZ3JhbUV4ZWN1dGFibGUgdy9vIENv
ZGVCbG9jayIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZnVuY3Rpb24gPSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4ocmVhbFRoaXMp
OworICAgIGlmICghZnVuY3Rpb24tPmVpdGhlckNvZGVCbG9jaygpKQorICAgICAgICBvdXQucHJp
bnQoIkZ1bmN0aW9uRXhlY3V0YWJsZSB3L28gQ29kZUJsb2NrIik7CisgICAgZWxzZSB7CisgICAg
ICAgIENvbW1hUHJpbnRlciBjb21tYSgiLyIpOworICAgICAgICBpZiAoZnVuY3Rpb24tPmNvZGVC
bG9ja0ZvckNhbGwoKSkKKyAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgKmZ1bmN0aW9uLT5j
b2RlQmxvY2tGb3JDYWxsKCkpOworICAgICAgICBpZiAoZnVuY3Rpb24tPmNvZGVCbG9ja0ZvckNv
bnN0cnVjdCgpKQorICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAqZnVuY3Rpb24tPmNvZGVC
bG9ja0ZvckNvbnN0cnVjdCgpKTsKKyAgICB9Cit9CisKIENvZGVCbG9ja0hhc2ggRXhlY3V0YWJs
ZUJhc2U6Omhhc2hGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKSBjb25zdAogewogICAg
IGlmICh0aGlzLT5jbGFzc0luZm8oKSA9PSBOYXRpdmVFeGVjdXRhYmxlOjppbmZvKCkpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRXhlY3V0YWJsZV9oCiAjZGVm
aW5lIEV4ZWN1dGFibGVfaAogCisjaW5jbHVkZSAiQXJpdHlDaGVja01vZGUuaCIKICNpbmNsdWRl
ICJDYWxsRGF0YS5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja0hhc2guaCIKICNpbmNsdWRlICJDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kLmgiCkBAIC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAiSW50ZXJw
cmV0ZXIuaCIKICNpbmNsdWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3Qu
aCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCIKICNpbmNsdWRlICJTYW1w
bGluZ1Rvb2wuaCIKICNpbmNsdWRlICJTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiVW5saW5rZWRD
b2RlQmxvY2suaCIKQEAgLTE0NCwzNyArMTQ2LDk0IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJU
KGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7CiAgICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRD
b2RlRm9yQ29uc3RydWN0KCk7CiAgICAgfQotCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGdl
bmVyYXRlZEpJVENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2soKQotICAgIHsKLSAgICAgICAgQVNT
RVJUKG1faml0Q29kZUZvckNhbGwpOwotICAgICAgICBBU1NFUlQobV9qaXRDb2RlRm9yQ2FsbFdp
dGhBcml0eUNoZWNrKTsKLSAgICAgICAgcmV0dXJuIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlD
aGVjazsKLSAgICB9Ci0KLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZ2VuZXJhdGVkSklUQ29k
ZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2pp
dENvZGVGb3JDb25zdHJ1Y3QpOwotICAgICAgICBBU1NFUlQobV9qaXRDb2RlRm9yQ29uc3RydWN0
V2l0aEFyaXR5Q2hlY2spOwotICAgICAgICByZXR1cm4gbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0
aEFyaXR5Q2hlY2s7Ci0gICAgfQotICAgICAgICAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Z2VuZXJhdGVkSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQg
a2luZCkKLSAgICB7Ci0gICAgICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKQotICAgICAgICAg
ICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2soKTsKLSAgICAg
ICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgICAgIHJldHVybiBnZW5l
cmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2soKTsKLSAgICB9Ci0gICAgICAg
IAotICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Io
Q29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQorICAgIAorICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBlbnRyeXBvaW50Rm9yKAorICAgICAgICBWTSYgdm0sIENvZGVTcGVjaWFsaXphdGlvbktp
bmQga2luZCwgQXJpdHlDaGVja01vZGUgYXJpdHksIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSBy
ZWdpc3RlcnMpCiAgICAgewotICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKLSAgICAg
ICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZv
ckNhbGxXaXRoQXJpdHlDaGVjayk7Ci0gICAgICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25z
dHJ1Y3QpOwotICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBt
X2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayk7CisgICAgICAgIC8vIENoZWNrIGlm
IHdlIGhhdmUgYSBjYWNoZWQgcmVzdWx0LiBXZSBvbmx5IGhhdmUgaXQgZm9yIGFyaXR5IGNoZWNr
IGJlY2F1c2Ugd2UgdXNlIHRoZQorICAgICAgICAvLyBuby1hcml0eSBlbnRyeXBvaW50IGluIG5v
bi12aXJ0dWFsIGNhbGxzLCB3aGljaCB3aWxsICJjYWNoZSIgdGhpcyB2YWx1ZSBkaXJlY3RseSBp
bgorICAgICAgICAvLyBtYWNoaW5lIGNvZGUuCisgICAgICAgIGlmIChhcml0eSA9PSBNdXN0Q2hl
Y2tBcml0eSkgeworICAgICAgICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAgICAgICBjYXNl
IENvZGVGb3JDYWxsOgorICAgICAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAg
ICAgICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAg
ICAgICAgICAgICAgICBpZiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJlc3VsdCA9IG1faml0Q29k
ZUZvckNhbGxXaXRoQXJpdHlDaGVjaykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ug
TXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgICAgICBpZiAoTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIHJlc3VsdCA9IG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFBy
ZXNlcnZlUmVncykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgICAg
ICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgICAgIGNhc2UgUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVj
aykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJz
OgorICAgICAgICAgICAgICAgICAgICBpZiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJlc3VsdCA9
IG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQg
PQorICAgICAgICAgICAgZ2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS0+YWRkcmVzc0ZvckNhbGwo
dm0sIHRoaXMsIGFyaXR5LCByZWdpc3RlcnMpOworICAgICAgICBpZiAoYXJpdHkgPT0gTXVzdENo
ZWNrQXJpdHkpIHsKKyAgICAgICAgICAgIC8vIENhY2hlIHRoZSByZXN1bHQ7IHRoaXMgaXMgbmVj
ZXNzYXJ5IGZvciB0aGUgSklUJ3MgdmlydHVhbCBjYWxsIG9wdGltaXphdGlvbnMuCisgICAgICAg
ICAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICAgICAgICAgIGNhc2UgQ29kZUZvckNhbGw6CisgICAg
ICAgICAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgICAgIG1faml0
Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAg
ICAgICAgICAgICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZl
UmVncyA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDb2RlRm9yQ29u
c3RydWN0OgorICAgICAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAg
ICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAg
ICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IHJlc3VsdDsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBNdXN0UHJlc2Vy
dmVSZWdpc3RlcnM6CisgICAgICAgICAgICAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdp
dGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAg
ICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKAorICAg
ICAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9k
ZSByZWdpc3RlcnMpCisgICAgeworICAgICAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICAgICAgY2Fz
ZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAg
ICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrKTsKKyAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJz
OgorICAgICAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2Us
IG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncyk7CisgICAgICAg
ICAgICB9CisgICAgICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgICAgIHN3aXRj
aCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90
UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRh
YmxlQmFzZSwgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spOworICAgICAgICAg
ICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICAgICAgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFy
aXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOwogICAg
IH0KLSAgICAgICAgCisgICAgCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk51bVBhcmFt
ZXRlcnNGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQogICAgIHsKICAgICAgICAgaWYg
KGtpbmQgPT0gQ29kZUZvckNhbGwpCkBAIC0yMTAsMjIgKzI2OSw5IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIHJldHVybiBpbnRyaW5zaWMoKTsKICAgICAgICAgcmV0dXJuIE5vSW50cmluc2ljOwog
ICAgIH0KKyAgICAKKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAgICAg
Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGhvc3RDb2RlRW50cnlGb3IoQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVG
b3Ioa2luZCktPmFkZHJlc3NGb3JDYWxsKCk7Ci0gICAgfQotCi0gICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGpzQ29kZUVudHJ5Rm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2Fs
bCgpOwotICAgIH0KLQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBqc0NvZGVXaXRoQXJpdHlD
aGVja0VudHJ5Rm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCk7Ci0gICAgfQot
CiBwcm90ZWN0ZWQ6CiAgICAgRXhlY3V0YWJsZUJhc2UqIG1fcHJldjsKICAgICBFeGVjdXRhYmxl
QmFzZSogbV9uZXh0OwpAQCAtMjM0LDYgKzI4MCw4IEBAIHByb3RlY3RlZDoKICAgICBSZWZQdHI8
SklUQ29kZT4gbV9qaXRDb2RlRm9yQ29uc3RydWN0OwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2s7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrOworICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3M7
CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0
eUNoZWNrQW5kUHJlc2VydmVSZWdzOwogfTsKIAogY2xhc3MgTmF0aXZlRXhlY3V0YWJsZSA6IHB1
YmxpYyBFeGVjdXRhYmxlQmFzZSB7CkBAIC0yNDIsMTQgKzI5MCwxMSBAQCBjbGFzcyBOYXRpdmVF
eGVjdXRhYmxlIDogcHVibGljIEV4ZWN1dGFiCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBFeGVjdXRh
YmxlQmFzZSBCYXNlOwogCi0gICAgc3RhdGljIE5hdGl2ZUV4ZWN1dGFibGUqIGNyZWF0ZShWTSYg
dm0sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0
aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY29uc3RydWN0VGh1bmssIE5hdGl2ZUZ1bmN0aW9u
IGNvbnN0cnVjdG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQorICAgIHN0YXRpYyBOYXRpdmVFeGVj
dXRhYmxlKiBjcmVhdGUoVk0mIHZtLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNhbGxUaHVuaywgTmF0
aXZlRnVuY3Rpb24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8SklUQ29kZT4gY29uc3RydWN0VGh1bmss
IE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQogICAgIHsK
ICAgICAgICAgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZTsKICAgICAgICAgZXhlY3V0YWJs
ZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KHZtLmhlYXAp
KSBOYXRpdmVFeGVjdXRhYmxlKHZtLCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOwotICAgICAgICBp
ZiAoIWNhbGxUaHVuaykKLSAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKHZt
LCAwLCAwLCBpbnRyaW5zaWMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBleGVjdXRhYmxl
LT5maW5pc2hDcmVhdGlvbih2bSwgSklUQ29kZTo6aG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIEpJ
VENvZGU6Omhvc3RGdW5jdGlvbihjb25zdHJ1Y3RUaHVuayksIGludHJpbnNpYyk7CisgICAgICAg
IGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKHZtLCBjYWxsVGh1bmssIGNvbnN0cnVjdFRodW5r
LCBpbnRyaW5zaWMpOwogICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICB9CiAKQEAgLTI4
OCw4ICszMzMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IFBhc3NSZWZQdHI8SklUQ29kZT4gY2FsbFRodW5rLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNvbnN0
cnVjdFRodW5rLCBJbnRyaW5zaWMgaW50cmluc2ljKQogICAgIHsKICAgICAgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24odm0pOwotICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sg
PSBjYWxsVGh1bmsgPyBjYWxsVGh1bmstPmFkZHJlc3NGb3JDYWxsKCkgOiBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIoKTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sg
PSBjb25zdHJ1Y3RUaHVuayA/IGNvbnN0cnVjdFRodW5rLT5hZGRyZXNzRm9yQ2FsbCgpIDogTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgICAgIG1faml0Q29kZUZvckNhbGwgPSBjYWxsVGh1
bms7CiAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IGNvbnN0cnVjdFRodW5rOwogICAg
ICAgICBtX2ludHJpbnNpYyA9IGludHJpbnNpYzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtOTcsNiAr
OTcsOSBAQCB1bmlvbiBFbmNvZGVkVmFsdWVEZXNjcmlwdG9yIHsKICNlbmRpZgogfTsKIAorI2Rl
ZmluZSBUYWdPZmZzZXQgKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBh
c0JpdHMudGFnKSkKKyNkZWZpbmUgUGF5bG9hZE9mZnNldCAoT0JKRUNUX09GRlNFVE9GKEVuY29k
ZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkKKwogZW51bSBXaGljaFZhbHVlV29y
ZCB7CiAgICAgVGFnV29yZCwKICAgICBQYXlsb2FkV29yZApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0xvY2suY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNiAr
MjkwLDEwIEBAIEpTTG9jazo6RHJvcEFsbExvY2tzOjpEcm9wQWxsTG9ja3MoRXhlY1MKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZzcGluTG9jayk7CiAjZW5k
aWYKKyAgICBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fdm0tPnJlc2VydmVkWm9uZVNpemUo
KTsKKyAgICBtX3NhdmVkU3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbV92bS0+c3RhY2tQb2ludGVy
QXRWTUVudHJ5OworICAgIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG51bGxwdHI7CisK
ICAgICBpZiAoYWx3YXlzRHJvcExvY2tzKQogICAgICAgICBtX2xvY2tDb3VudCA9IG1fdm0tPmFw
aUxvY2soKS5kcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoc3BpbkxvY2spOwogICAgIGVsc2UK
QEAgLTMwNiw2ICszMTAsMTAgQEAgSlNMb2NrOjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxMb2NrcyhW
TSogdgogI2lmIFBMQVRGT1JNKElPUykKICAgICBTcGluTG9ja0hvbGRlciBob2xkZXIoJnNwaW5M
b2NrKTsKICNlbmRpZgorICAgIG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplID0gbV92bS0+cmVzZXJ2
ZWRab25lU2l6ZSgpOworICAgIG1fc2F2ZWRTdGFja1BvaW50ZXJBdFZNRW50cnkgPSBtX3ZtLT5z
dGFja1BvaW50ZXJBdFZNRW50cnk7CisgICAgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0g
bnVsbHB0cjsKKwogICAgIGlmIChhbHdheXNEcm9wTG9ja3MpCiAgICAgICAgIG1fbG9ja0NvdW50
ID0gbV92bS0+YXBpTG9jaygpLmRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseShzcGluTG9jayk7
CiAgICAgZWxzZQpAQCAtMzIxLDYgKzMyOSw5IEBAIEpTTG9jazo6RHJvcEFsbExvY2tzOjp+RHJv
cEFsbExvY2tzKCkKICAgICBTcGluTG9ja0hvbGRlciBob2xkZXIoJnNwaW5Mb2NrKTsKICNlbmRp
ZgogICAgIG1fdm0tPmFwaUxvY2soKS5ncmFiQWxsTG9ja3MobV9sb2NrQ291bnQsIHNwaW5Mb2Nr
KTsKKworICAgIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG1fc2F2ZWRTdGFja1BvaW50
ZXJBdFZNRW50cnk7CisgICAgbV92bS0+dXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVT
aXplKG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk1LDEwICs5NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTX0VYUE9S
VF9QUklWQVRFIGJvb2wgY3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKTsKIAotICAgICAgICB1
bnNpZ25lZCBkcm9wQWxsTG9ja3MoU3BpbkxvY2smKTsKLSAgICAgICAgdW5zaWduZWQgZHJvcEFs
bExvY2tzVW5jb25kaXRpb25hbGx5KFNwaW5Mb2NrJik7Ci0gICAgICAgIHZvaWQgZ3JhYkFsbExv
Y2tzKHVuc2lnbmVkIGxvY2tDb3VudCwgU3BpbkxvY2smKTsKLQogICAgICAgICB2b2lkIHdpbGxE
ZXN0cm95Vk0oVk0qKTsKIAogICAgICAgICBjbGFzcyBEcm9wQWxsTG9ja3MgewpAQCAtMTE0LDkg
KzExMCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAg
IGludHB0cl90IG1fbG9ja0NvdW50OwogICAgICAgICAgICAgUmVmUHRyPFZNPiBtX3ZtOworICAg
ICAgICAgICAgc2l6ZV90IG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplOworICAgICAgICAgICAgdm9p
ZCogbV9zYXZlZFN0YWNrUG9pbnRlckF0Vk1FbnRyeTsKICAgICAgICAgfTsKIAogICAgIHByaXZh
dGU6CisgICAgICAgIHVuc2lnbmVkIGRyb3BBbGxMb2NrcyhTcGluTG9jayYpOworICAgICAgICB1
bnNpZ25lZCBkcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoU3BpbkxvY2smKTsKKyAgICAgICAg
dm9pZCBncmFiQWxsTG9ja3ModW5zaWduZWQgbG9ja0NvdW50LCBTcGluTG9jayYpOworCiAgICAg
ICAgIFNwaW5Mb2NrIG1fc3BpbkxvY2s7CiAgICAgICAgIE11dGV4IG1fbG9jazsKICAgICAgICAg
VGhyZWFkSWRlbnRpZmllciBtX293bmVyVGhyZWFkOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NTQsNyArNjU0LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFs
dQogICAgICAgICAgICAgICAgIEFTU0VSVChpblZhbHVlLmlzT2JqZWN0KCkpOwogICAgICAgICAg
ICAgICAgIEFTU0VSVChpc0pTQXJyYXkoYXNPYmplY3QoaW5WYWx1ZSkpIHx8IGFzT2JqZWN0KGlu
VmFsdWUpLT5pbmhlcml0cyhKU0FycmF5OjppbmZvKCkpKTsKICAgICAgICAgICAgICAgICBpZiAo
b2JqZWN0U3RhY2suc2l6ZSgpICsgYXJyYXlTdGFjay5zaXplKCkgPiBtYXhpbXVtRmlsdGVyUmVj
dXJzaW9uKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9leGVjLT52bSgpLnRocm93RXhj
ZXB0aW9uKG1fZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYykpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdGhyb3dTdGFja092ZXJmbG93RXJyb3IobV9leGVjKTsKIAog
ICAgICAgICAgICAgICAgIEpTQXJyYXkqIGFycmF5ID0gYXNBcnJheShpblZhbHVlKTsKICAgICAg
ICAgICAgICAgICBhcnJheVN0YWNrLnB1c2goYXJyYXkpOwpAQCAtNzA1LDcgKzcwNSw3IEBAIE5F
VkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHUKICAgICAgICAgICAgICAgICBB
U1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoIWlzSlNB
cnJheShhc09iamVjdChpblZhbHVlKSkgJiYgIWFzT2JqZWN0KGluVmFsdWUpLT5pbmhlcml0cyhK
U0FycmF5OjppbmZvKCkpKTsKICAgICAgICAgICAgICAgICBpZiAob2JqZWN0U3RhY2suc2l6ZSgp
ICsgYXJyYXlTdGFjay5zaXplKCkgPiBtYXhpbXVtRmlsdGVyUmVjdXJzaW9uKQotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbV9leGVjLT52bSgpLnRocm93RXhjZXB0aW9uKG1fZXhlYywgY3Jl
YXRlU3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYykpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdGhyb3dTdGFja092ZXJmbG93RXJyb3IobV9leGVjKTsKIAogICAgICAgICAgICAgICAgIEpT
T2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChpblZhbHVlKTsKICAgICAgICAgICAgICAgICBvYmpl
Y3RTdGFjay5wdXNoKG9iamVjdCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+
CisjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5o
PgogI2luY2x1ZGUgPHd0Zi9QYWdlQmxvY2suaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CkBAIC0xNzUsNiArMTc2LDQ1IEBAIGNvbnN0IE9wdGlvbnM6OkVudHJ5SW5mbyBPcHRpb25z
OjpzX29wdGkKICN1bmRlZiBGT1JfRUFDSF9PUFRJT04KIH07CiAKK3N0YXRpYyB2b2lkIHJlY29t
cHV0ZURlcGVuZGVudE9wdGlvbnMoKQoreworI2lmICFFTkFCTEUoSklUKQorICAgIE9wdGlvbnM6
OnVzZUpJVCgpID0gZmFsc2U7CisgICAgT3B0aW9uczo6dXNlREZHSklUKCkgPSBmYWxzZTsKKyNl
bmRpZgorI2lmICFFTkFCTEUoWUFSUl9KSVQpCisgICAgT3B0aW9uczo6dXNlUmVnRXhwSklUKCkg
PSBmYWxzZTsKKyNlbmRpZgorICAgIAorICAgIGlmIChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHko
KQorICAgICAgICB8fCBPcHRpb25zOjpzaG93REZHRGlzYXNzZW1ibHkoKQorICAgICAgICB8fCBP
cHRpb25zOjpkdW1wQnl0ZWNvZGVBdERGR1RpbWUoKQorICAgICAgICB8fCBPcHRpb25zOjpkdW1w
R3JhcGhBdEVhY2hQaGFzZSgpCisgICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlv
bigpCisgICAgICAgIHx8IE9wdGlvbnM6OmxvZ0NvbXBpbGF0aW9uQ2hhbmdlcygpCisgICAgICAg
IHx8IE9wdGlvbnM6OnZhbGlkYXRlR3JhcGgoKQorICAgICAgICB8fCBPcHRpb25zOjp2YWxpZGF0
ZUdyYXBoQXRFYWNoUGhhc2UoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlT1NSKCkKKyAg
ICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uUXVldWUoKQorICAgICAgICB8fCBP
cHRpb25zOjpyZXBvcnRDb21waWxlVGltZXMoKQorICAgICAgICB8fCBPcHRpb25zOjpyZXBvcnRG
VExDb21waWxlVGltZXMoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ0ZBKCkKKyAgICAg
ICAgfHwgT3B0aW9uczo6dmVyYm9zZUZUTEZhaWx1cmUoKSkKKyAgICAgICAgT3B0aW9uczo6YWx3
YXlzQ29tcHV0ZUhhc2goKSA9IHRydWU7CisgICAgCisgICAgLy8gQ29tcHV0ZSB0aGUgbWF4aW11
bSB2YWx1ZSBvZiB0aGUgcmVvcHRpbWl6YXRpb24gcmV0cnkgY291bnRlci4gVGhpcyBpcyBzaW1w
bHkKKyAgICAvLyB0aGUgbGFyZ2VzdCB2YWx1ZSBhdCB3aGljaCB3ZSBkb24ndCBvdmVyZmxvdyB0
aGUgZXhlY3V0ZSBjb3VudGVyLCB3aGVuIHVzaW5nIGl0CisgICAgLy8gdG8gbGVmdC1zaGlmdCB0
aGUgZXhlY3V0aW9uIGNvdW50ZXIgYnkgdGhpcyBhbW91bnQuIEN1cnJlbnRseSB0aGUgdmFsdWUg
ZW5kcworICAgIC8vIHVwIGJlaW5nIDE4LCBzbyB0aGlzIGxvb3AgaXMgbm90IHNvIHRlcnJpYmxl
OyBpdCBwcm9iYWJseSB0YWtlcyB1cCB+MTAwIGN5Y2xlcworICAgIC8vIHRvdGFsIG9uIGEgMzIt
Yml0IHByb2Nlc3Nvci4KKyAgICBPcHRpb25zOjpyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1h
eCgpID0gMDsKKyAgICB3aGlsZSAoKHN0YXRpY19jYXN0PGludDY0X3Q+KE9wdGlvbnM6OnRocmVz
aG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IChPcHRpb25zOjpyZW9wdGltaXph
dGlvblJldHJ5Q291bnRlck1heCgpICsgMSkpIDw9IHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSkKKyAgICAgICAgT3B0aW9uczo6cmVvcHRp
bWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSsrOworCisgICAgQVNTRVJUKChzdGF0aWNfY2FzdDxp
bnQ2NF90PihPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8
PCBPcHRpb25zOjpyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpKSA+IDApOworICAgIEFT
U0VSVCgoc3RhdGljX2Nhc3Q8aW50NjRfdD4oT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVB
ZnRlckxvbmdXYXJtVXAoKSkgPDwgT3B0aW9uczo6cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJN
YXgoKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWF4KCkpKTsKK30KKwogdm9pZCBPcHRpb25zOjppbml0aWFsaXplKCkKIHsKICAgICAvLyBJ
bml0aWFsaXplIGVhY2ggb2YgdGhlIG9wdGlvbnMgd2l0aCB0aGVpciBkZWZhdWx0IHZhbHVlczoK
QEAgLTIwNCwzMCArMjQ0LDEyIEBAIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAgICAgOyAv
LyBEZWNvbmZ1c2UgZWRpdG9ycyB0aGF0IGRvIGF1dG8gaW5kZW50YXRpb24KICNlbmRpZgogICAg
IAotI2lmICFFTkFCTEUoSklUKQotICAgIHVzZUpJVCgpID0gZmFsc2U7Ci0gICAgdXNlREZHSklU
KCkgPSBmYWxzZTsKLSNlbmRpZgotI2lmICFFTkFCTEUoWUFSUl9KSVQpCi0gICAgdXNlUmVnRXhw
SklUKCkgPSBmYWxzZTsKLSNlbmRpZgorICAgIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKTsK
IAogICAgIC8vIERvIHJhbmdlIGNoZWNrcyB3aGVyZSBuZWVkZWQgYW5kIG1ha2UgY29ycmVjdGlv
bnMgdG8gdGhlIG9wdGlvbnM6Ci0gICAgQVNTRVJUKHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJM
b25nV2FybVVwKCkgPj0gdGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgpKTsKLSAgICBB
U1NFUlQodGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgpID49IHRocmVzaG9sZEZvck9w
dGltaXplU29vbigpKTsKLSAgICBBU1NFUlQodGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1V
cCgpID49IDApOwotCi0gICAgLy8gQ29tcHV0ZSB0aGUgbWF4aW11bSB2YWx1ZSBvZiB0aGUgcmVv
cHRpbWl6YXRpb24gcmV0cnkgY291bnRlci4gVGhpcyBpcyBzaW1wbHkKLSAgICAvLyB0aGUgbGFy
Z2VzdCB2YWx1ZSBhdCB3aGljaCB3ZSBkb24ndCBvdmVyZmxvdyB0aGUgZXhlY3V0ZSBjb3VudGVy
LCB3aGVuIHVzaW5nIGl0Ci0gICAgLy8gdG8gbGVmdC1zaGlmdCB0aGUgZXhlY3V0aW9uIGNvdW50
ZXIgYnkgdGhpcyBhbW91bnQuIEN1cnJlbnRseSB0aGUgdmFsdWUgZW5kcwotICAgIC8vIHVwIGJl
aW5nIDE4LCBzbyB0aGlzIGxvb3AgaXMgbm90IHNvIHRlcnJpYmxlOyBpdCBwcm9iYWJseSB0YWtl
cyB1cCB+MTAwIGN5Y2xlcwotICAgIC8vIHRvdGFsIG9uIGEgMzItYml0IHByb2Nlc3Nvci4KLSAg
ICByZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpID0gMDsKLSAgICB3aGlsZSAoKHN0YXRp
Y19jYXN0PGludDY0X3Q+KHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8
IChyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpICsgMSkpIDw9IHN0YXRpY19jYXN0PGlu
dDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzI+OjptYXgoKSkpCi0gICAgICAgIHJlb3B0
aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkrKzsKLQotICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8
aW50NjRfdD4odGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgcmVvcHRp
bWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSkgPiAwKTsKLSAgICBBU1NFUlQoKHN0YXRpY19jYXN0
PGludDY0X3Q+KHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IHJlb3B0
aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkpIDw9IHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50MzI+OjptYXgoKSkpOworICAgIEFTU0VSVChPcHRpb25zOjp0aHJl
c2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpID49IE9wdGlvbnM6OnRocmVzaG9sZEZv
ck9wdGltaXplQWZ0ZXJXYXJtVXAoKSk7CisgICAgQVNTRVJUKE9wdGlvbnM6OnRocmVzaG9sZEZv
ck9wdGltaXplQWZ0ZXJXYXJtVXAoKSA+PSBPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZVNv
b24oKSk7CisgICAgQVNTRVJUKE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJt
VXAoKSA+PSAwKTsKIH0KIAogLy8gUGFyc2VzIGEgc2luZ2xlIGNvbW1hbmQgbGluZSBvcHRpb24g
aW4gdGhlIGZvcm1hdCAiPG9wdGlvbk5hbWU+PTx2YWx1ZT4iCkBAIC0yNTEsNiArMjczLDcgQEAg
Ym9vbCBPcHRpb25zOjpzZXRPcHRpb24oY29uc3QgY2hhciogYXJnKQogICAgICAgICBib29sIHN1
Y2Nlc3MgPSBwYXJzZSh2YWx1ZVN0ciwgdmFsdWUpOyAgICAgICAgICBcCiAgICAgICAgIGlmIChz
dWNjZXNzKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAg
IG5hbWVfKCkgPSB2YWx1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg
ICAgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygpOyAgICAgICAgICAgICAgICBcCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg
ICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg
ICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBA
IC0yNTksNyArMjgyLDcgQEAgYm9vbCBPcHRpb25zOjpzZXRPcHRpb24oY29uc3QgY2hhciogYXJn
KQogICAgIEpTQ19PUFRJT05TKEZPUl9FQUNIX09QVElPTikKICN1bmRlZiBGT1JfRUFDSF9PUFRJ
T04KIAotICAgICAgICByZXR1cm4gZmFsc2U7IC8vIE5vIG9wdGlvbiBtYXRjaGVkLgorICAgIHJl
dHVybiBmYWxzZTsgLy8gTm8gb3B0aW9uIG1hdGNoZWQuCiB9CiAKIHZvaWQgT3B0aW9uczo6ZHVt
cEFsbE9wdGlvbnMoRklMRSogc3RyZWFtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNFeHBvcnRNYWNyb3MuaCIKICNpbmNsdWRlIDxz
dGRpbnQuaD4KICNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTk0LDYgKzk1LDEwIEBAIHR5cGVkZWYgT3B0aW9u
UmFuZ2Ugb3B0aW9uUmFuZ2U7CiAgICAgdihib29sLCB1c2VERkdKSVQsIHRydWUpIFwKICAgICB2
KGJvb2wsIHVzZVJlZ0V4cEpJVCwgdHJ1ZSkgXAogICAgIFwKKyAgICB2KHVuc2lnbmVkLCBtYXhQ
ZXJUaHJlYWRTdGFja1VzYWdlLCA0ICogTUIpIFwKKyAgICB2KHVuc2lnbmVkLCByZXNlcnZlZFpv
bmVTaXplLCAxMjggKiBLQikgXAorICAgIHYodW5zaWduZWQsIGVycm9yTW9kZVJlc2VydmVkWm9u
ZVNpemUsIDY0ICogS0IpIFwKKyAgICBcCiAgICAgdihib29sLCBjcmFzaElmQ2FudEFsbG9jYXRl
SklUTWVtb3J5LCBmYWxzZSkgXAogICAgIFwKICAgICB2KGJvb2wsIGZvcmNlREZHQ29kZUJsb2Nr
TGl2ZW5lc3MsIGZhbHNlKSBcCkBAIC0xMTgsMTEgKzEyMywxOSBAQCB0eXBlZGVmIE9wdGlvblJh
bmdlIG9wdGlvblJhbmdlOwogICAgIHYoYm9vbCwgdmVyYm9zZUNhbGxMaW5rLCBmYWxzZSkgXAog
ICAgIHYoYm9vbCwgdmVyYm9zZUNvbXBpbGF0aW9uUXVldWUsIGZhbHNlKSBcCiAgICAgdihib29s
LCByZXBvcnRDb21waWxlVGltZXMsIGZhbHNlKSBcCisgICAgdihib29sLCByZXBvcnRGVExDb21w
aWxlVGltZXMsIGZhbHNlKSBcCiAgICAgdihib29sLCB2ZXJib3NlQ0ZBLCBmYWxzZSkgXAorICAg
IHYoYm9vbCwgdmVyYm9zZUZUTFRvSlNUaHVuaywgZmFsc2UpIFwKKyAgICB2KGJvb2wsIHZlcmJv
c2VGVExGYWlsdXJlLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgYWx3YXlzQ29tcHV0ZUhhc2gsIGZh
bHNlKSBcCisgICAgdihib29sLCB0ZXN0VGhlRlRMLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgdmVy
Ym9zZVNhbml0aXplU3RhY2ssIGZhbHNlKSBcCiAgICAgXAotICAgIHYoYm9vbCwgZW5hYmxlT1NS
RW50cnlJbkxvb3BzLCB0cnVlKSBcCisgICAgdihib29sLCBlbmFibGVPU1JFbnRyeVRvREZHLCB0
cnVlKSBcCisgICAgdihib29sLCBlbmFibGVPU1JFbnRyeVRvRlRMLCB0cnVlKSBcCiAgICAgXAog
ICAgIHYoYm9vbCwgdXNlRXhwZXJpbWVudGFsRlRMLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgZW5h
YmxlRXhwZXJpbWVudGFsRlRMQ292ZXJhZ2UsIGZhbHNlKSBcCiAgICAgdihib29sLCB1c2VGVExU
QkFBLCB0cnVlKSBcCiAgICAgdihib29sLCBlbmFibGVMTFZNRmFzdElTZWwsIGZhbHNlKSBcCiAg
ICAgdihib29sLCB1c2VMTFZNU21hbGxDb2RlTW9kZWwsIGZhbHNlKSBcCkBAIC0xMzQsMTAgKzE0
NywxMiBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIHYodW5zaWduZWQs
IGxsdm1CYWNrZW5kT3B0aW1pemF0aW9uTGV2ZWwsIDIpIFwKICAgICB2KHVuc2lnbmVkLCBsbHZt
T3B0aW1pemF0aW9uTGV2ZWwsIDIpIFwKICAgICB2KHVuc2lnbmVkLCBsbHZtU2l6ZUxldmVsLCAw
KSBcCisgICAgdihib29sLCBsbHZtRGlzYWxsb3dBVlgsIHRydWUpIFwKICAgICB2KGJvb2wsIGZ0
bENyYXNoZXMsIGZhbHNlKSAvKiBmb29sLXByb29mIHdheSBvZiBjaGVja2luZyB0aGF0IHlvdSBl
bmRlZCB1cCBpbiB0aGUgRlRMLiA7LSkgKi9cCiAgICAgXAogICAgIHYoYm9vbCwgZW5hYmxlQ29u
Y3VycmVudEpJVCwgdHJ1ZSkgXAotICAgIHYodW5zaWduZWQsIG51bWJlck9mQ29tcGlsZXJUaHJl
YWRzLCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJlYWRzKDIpIC0gMSkgXAorICAgIHYodW5zaWdu
ZWQsIG51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzLCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJl
YWRzKDIpIC0gMSkgXAorICAgIHYodW5zaWduZWQsIG51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRz
LCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJlYWRzKDgpIC0gMSkgXAogICAgIFwKICAgICB2KGJv
b2wsIGVuYWJsZVByb2ZpbGVyLCBmYWxzZSkgXAogICAgIFwKQEAgLTE0Niw2ICsxNjEsOCBAQCB0
eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIFwKICAgICB2KGJvb2wsIGVuYWJs
ZUFyY2hpdGVjdHVyZVNwZWNpZmljT3B0aW1pemF0aW9ucywgdHJ1ZSkgXAogICAgIFwKKyAgICB2
KGJvb2wsIGJyZWFrT25UaHJvdywgZmFsc2UpIFwKKyAgICBcCiAgICAgdih1bnNpZ25lZCwgbWF4
aW11bU9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQsIDEwMDAwKSBcCiAgICAg
XAogICAgIHYodW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVJ
bnN0cnVjdGlvbkNvdW50LCAxODApIFwKQEAgLTE1NCw2ICsxNzEsMTIgQEAgdHlwZWRlZiBPcHRp
b25SYW5nZSBvcHRpb25SYW5nZTsKICAgICBcCiAgICAgLyogRGVwdGggb2YgaW5saW5lIHN0YWNr
LCBzbyAxID0gbm8gaW5saW5pbmcsIDIgPSBvbmUgbGV2ZWwsIGV0Yy4gKi8gXAogICAgIHYodW5z
aWduZWQsIG1heGltdW1JbmxpbmluZ0RlcHRoLCA1KSBcCisgICAgdih1bnNpZ25lZCwgbWF4aW11
bUlubGluaW5nUmVjdXJzaW9uLCAyKSBcCisgICAgdih1bnNpZ25lZCwgbWF4aW11bUlubGluaW5n
RGVwdGhGb3JNdXN0SW5saW5lLCA3KSBcCisgICAgdih1bnNpZ25lZCwgbWF4aW11bUlubGluaW5n
UmVjdXJzaW9uRm9yTXVzdElubGluZSwgMykgXAorICAgIFwKKyAgICB2KGJvb2wsIGVuYWJsZVBv
bHl2YXJpYW50Q2FsbElubGluaW5nLCB0cnVlKSBcCisgICAgdihib29sLCBlbmFibGVQb2x5dmFy
aWFudEJ5SWRJbmxpbmluZywgdHJ1ZSkgXAogICAgIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVt
QmluYXJ5U3RyaW5nU3dpdGNoQ2FzZUxlbmd0aCwgNTApIFwKICAgICB2KHVuc2lnbmVkLCBtYXhp
bXVtQmluYXJ5U3RyaW5nU3dpdGNoVG90YWxMZW5ndGgsIDIwMDApIFwKQEAgLTIxMCw2ICsyMzMs
NyBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIHYoYm9vbCwgc2hvd09i
amVjdFN0YXRpc3RpY3MsIGZhbHNlKSBcCiAgICAgXAogICAgIHYoYm9vbCwgbG9nR0MsIGZhbHNl
KSBcCisgICAgdihib29sLCBkaXNhYmxlR0MsIGZhbHNlKSBcCiAgICAgdih1bnNpZ25lZCwgZ2NN
YXhIZWFwU2l6ZSwgMCkgXAogICAgIHYoYm9vbCwgcmVjb3JkR0NQYXVzZVRpbWVzLCBmYWxzZSkg
XAogICAgIHYoYm9vbCwgbG9nSGVhcFN0YXRpc3RpY3NBdEV4aXQsIGZhbHNlKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Nb2RlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlX2gKKyNkZWZpbmUgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Nb2RlX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gUmVnaXN0ZXJQcmVzZXJ2YXRpb25N
b2RlIHsKKyAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkLAorICAgIE11c3RQcmVz
ZXJ2ZVJlZ2lzdGVycworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBSZWdp
c3RlclByZXNlcnZhdGlvbk1vZGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdGFja0FsaWdubWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0YWNrQWxpZ25tZW50LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrQWxpZ25tZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDggQEAKICNkZWZpbmUgU3RhY2tBbGlnbm1lbnRfaAogCiAjaW5jbHVkZSAiSlND
SlNWYWx1ZS5oIgorI2luY2x1ZGUgIkpTU3RhY2suaCIKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMzgsNiArNDAsMjUgQEAgaW5saW5lIHVuc2ln
bmVkIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKAogICAgIHJldHVybiBzdGFja0FsaWdubWVudEJ5
dGVzKCkgLyBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOwogfQogCisvLyBBbGlnbiBhcmd1bWVudCBj
b3VudCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBDYWxsRnJhbWVIZWFkZXJTaXplIG1heSBiZQor
Ly8gYW4gInVuYWxpZ25lZCIgY291bnQgb2YgcmVnaXN0ZXJzLgoraW5saW5lIHVuc2lnbmVkIHJv
dW5kQXJndW1lbnRDb3VudFRvQWxpZ25GcmFtZSh1bnNpZ25lZCBhcmd1bWVudENvdW50KQorewor
ICAgIHJldHVybiBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKSwgYXJndW1lbnRDb3VudCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpIC0gSlNT
dGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKK30KKworLy8gQWxpZ24gbG9jYWwgcmVnaXN0ZXIg
Y291bnQgdG8gbWFrZSB0aGUgbGFzdCBsb2NhbCBlbmQgb24gYSBzdGFjayBhbGlnbmVkIGFkZHJl
c3MgZ2l2ZW4gdGhlCisvLyBDYWxsRnJhbWUgaXMgYXQgYW4gYWRkcmVzcyB0aGF0IGlzIHN0YWNr
IGFsaWduZWQgbWludXMgSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUKK2lubGluZSB1bnNp
Z25lZCByb3VuZExvY2FsUmVnaXN0ZXJDb3VudEZvckZyYW1lUG9pbnRlck9mZnNldCh1bnNpZ25l
ZCBsb2NhbFJlZ2lzdGVyQ291bnQpCit7CisgICAgcmV0dXJuIFdURjo6cm91bmRVcFRvTXVsdGlw
bGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBsb2NhbFJlZ2lzdGVyQ291bnQgKyBKU1N0
YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6
ZTsKK30KKworaW5saW5lIHVuc2lnbmVkIGxvZ1N0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkKK3sK
KyAgICByZXR1cm4gV1RGOjpmYXN0TG9nMihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdGFja0FsaWdubWVudF9oCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1
cnNpb25DaGVja2VyLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIEpTVmFsdWUgU3RyaW5nUmVjdXJzaW9u
Q2hlY2tlcjo6dGhyb3dTdGFja092ZXJmbG93RXJyb3IoKQogewotICAgIHJldHVybiBtX2V4ZWMt
PnZtKCkudGhyb3dFeGNlcHRpb24obV9leGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IobV9l
eGVjKSk7CisgICAgcmV0dXJuIEpTQzo6dGhyb3dTdGFja092ZXJmbG93RXJyb3IobV9leGVjKTsK
IH0KIAogSlNWYWx1ZSBTdHJpbmdSZWN1cnNpb25DaGVja2VyOjplbXB0eVN0cmluZygpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNDgsOCArMTA0OCwxMyBAQCB2b2lkIFN0cnVjdHVyZTo6ZHVt
cChQcmludFN0cmVhbSYgb3V0KSBjCiAgICAgaWYgKHRhYmxlKSB7CiAgICAgICAgIFByb3BlcnR5
VGFibGU6Oml0ZXJhdG9yIGl0ZXIgPSB0YWJsZS0+YmVnaW4oKTsKICAgICAgICAgUHJvcGVydHlU
YWJsZTo6aXRlcmF0b3IgZW5kID0gdGFibGUtPmVuZCgpOwotICAgICAgICBmb3IgKDsgaXRlciAh
PSBlbmQ7ICsraXRlcikKKyAgICAgICAgZm9yICg7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKICAg
ICAgICAgICAgIG91dC5wcmludChjb21tYSwgaXRlci0+a2V5LCAiOiIsIHN0YXRpY19jYXN0PGlu
dD4oaXRlci0+b2Zmc2V0KSk7CisgICAgICAgICAgICBpZiAoaXRlci0+c3BlY2lmaWNWYWx1ZSkg
eworICAgICAgICAgICAgICAgIER1bXBDb250ZXh0IGR1bW15Q29udGV4dDsKKyAgICAgICAgICAg
ICAgICBvdXQucHJpbnQoIj0+IiwgUmF3UG9pbnRlcihpdGVyLT5zcGVjaWZpY1ZhbHVlLmdldCgp
KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0cnVjdHVy
ZS0+bV9sb2NrLnVubG9jaygpOwogICAgIH0KQEAgLTEwNTksNiArMTA2NCwxMCBAQCB2b2lkIFN0
cnVjdHVyZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjCiAgICAgICAgIGlmICghc3RydWN0dXJl
LT5tX25hbWVJblByZXZpb3VzKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIG91dC5w
cmludChjb21tYSwgc3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzLmdldCgpLCAiOiIsIHN0YXRp
Y19jYXN0PGludD4oc3RydWN0dXJlLT5tX29mZnNldCkpOworICAgICAgICBpZiAoc3RydWN0dXJl
LT5tX3NwZWNpZmljVmFsdWVJblByZXZpb3VzKSB7CisgICAgICAgICAgICBEdW1wQ29udGV4dCBk
dW1teUNvbnRleHQ7CisgICAgICAgICAgICBvdXQucHJpbnQoIj0+IiwgUmF3UG9pbnRlcihzdHJ1
Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuZ2V0KCkpKTsKKyAgICAgICAgfQogICAg
IH0KICAgICAKICAgICBvdXQucHJpbnQoIn0sICIsIEluZGV4aW5nVHlwZUR1bXAoaW5kZXhpbmdU
eXBlKCkpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEs
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTEgKzMwLDEzIEBACiAjaW5jbHVk
ZSAiVk0uaCIKIAogI2luY2x1ZGUgIkFyZ0xpc3QuaCIKKyNpbmNsdWRlICJBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hwb2lu
dC5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2su
aCIKICNpbmNsdWRlICJDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJDb21tb25JZGVudGlmaWVycy5o
IgorI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkRGR0xvbmdMaXZlZFN0
YXRlLmgiCiAjaW5jbHVkZSAiREZHV29ya2xpc3QuaCIKICNpbmNsdWRlICJEZWJ1Z2dlckFjdGl2
YXRpb24uaCIKQEAgLTQ5LDYgKzUxLDcgQEAKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiSW5jcmVtZW50YWxTd2VlcGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNp
bmNsdWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiSlNBUElWYWx1ZVdyYXBwZXIuaCIKICNpbmNs
dWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCkBAIC0xNjYsNiArMTY5
LDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgICwgdm1U
eXBlKHZtVHlwZSkKICAgICAsIGNsaWVudERhdGEoMCkKICAgICAsIHRvcENhbGxGcmFtZShDYWxs
RnJhbWU6Om5vQ2FsbGVyKCkpCisgICAgLCBzdGFja1BvaW50ZXJBdFZNRW50cnkoMCkKICAgICAs
IGFycmF5Q29uc3RydWN0b3JUYWJsZShhZG9wdFB0cihuZXcgSGFzaFRhYmxlKEpTQzo6YXJyYXlD
b25zdHJ1Y3RvclRhYmxlKSkpCiAgICAgLCBhcnJheVByb3RvdHlwZVRhYmxlKGFkb3B0UHRyKG5l
dyBIYXNoVGFibGUoSlNDOjphcnJheVByb3RvdHlwZVRhYmxlKSkpCiAgICAgLCBib29sZWFuUHJv
dG90eXBlVGFibGUoYWRvcHRQdHIobmV3IEhhc2hUYWJsZShKU0M6OmJvb2xlYW5Qcm90b3R5cGVU
YWJsZSkpKQpAQCAtMjE3LDcgKzIyMSw3IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlw
ZSBoZWFwVHlwZSkKICAgICAsIG1faW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3MoMCkKICNlbmRpZgog
ICAgICwgbV9zdGFja0xpbWl0KDApCi0jaWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQor
I2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgLCBtX2pzU3RhY2tMaW1pdCgwKQogI2VuZGlm
CiAgICAgLCBtX2luRGVmaW5lT3duUHJvcGVydHkoZmFsc2UpCkBAIC0yMjUsNyArMjI5LDExIEBA
IFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKIHsKICAgICBpbnRlcnBy
ZXRlciA9IG5ldyBJbnRlcnByZXRlcigqdGhpcyk7CiAgICAgU3RhY2tCb3VuZHMgc3RhY2sgPSB3
dGZUaHJlYWREYXRhKCkuc3RhY2soKTsKLSAgICBzZXRTdGFja0xpbWl0KHN0YWNrLnJlY3Vyc2lv
bkxpbWl0KCkpOworICAgIHVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShPcHRp
b25zOjpyZXNlcnZlZFpvbmVTaXplKCkpOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAg
aW50ZXJwcmV0ZXItPnN0YWNrKCkuc2V0UmVzZXJ2ZWRab25lU2l6ZShPcHRpb25zOjpyZXNlcnZl
ZFpvbmVTaXplKCkpOworI2VuZGlmCisgICAgc2V0TGFzdFN0YWNrVG9wKHN0YWNrLm9yaWdpbigp
KTsKIAogICAgIC8vIE5lZWQgdG8gYmUgY2FyZWZ1bCB0byBrZWVwIGV2ZXJ5dGhpbmcgY29uc2lz
dGVudCBoZXJlCiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodGhpcyk7CkBAIC0yNjcsNyArMjc1LDkg
QEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogCiAjaWYgRU5BQkxF
KEpJVCkKICAgICBqaXRTdHVicyA9IGFkb3B0UHRyKG5ldyBKSVRUaHVua3MoKSk7CisgICAgYXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MgPSBzdGQ6Om1ha2VfdW5pcXVlPEFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzPigpOwogI2VuZGlmCisgICAgYXJpdHlDaGVja0RhdGEgPSBzdGQ6Om1ha2Vf
dW5pcXVlPENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE+KCk7CiAKICNpZiBFTkFCTEUo
RlRMX0pJVCkKICAgICBmdGxUaHVua3MgPSBzdGQ6Om1ha2VfdW5pcXVlPEZUTDo6VGh1bmtzPigp
OwpAQCAtMjgwLDcgKzI5MCw3IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFw
VHlwZSkKICNlbmRpZgogCiAgICAgaGVhcC5ub3RpZnlJc1NhZmVUb0NvbGxlY3QoKTsKLQorICAg
IAogICAgIExMSW50OjpEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucygqdGhpcyk7CiAgICAgCiAgICAg
aWYgKE9wdGlvbnM6OmVuYWJsZVByb2ZpbGVyKCkpIHsKQEAgLTMwNiw2ICszMTYsMTYgQEAgVk06
OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIG1fdHlwZWRBcnJheUNv
bnRyb2xsZXIgPSBhZG9wdFJlZihuZXcgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKSk7CiB9
CiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKK3N0YXRpYyB2b2lkIGNsZWFuV29ya2xpc3QoVk0mIHZt
LCBERkc6OldvcmtsaXN0KiB3b3JrbGlzdCkKK3sKKyAgICBpZiAoIXdvcmtsaXN0KQorICAgICAg
ICByZXR1cm47CisgICAgd29ya2xpc3QtPndhaXRVbnRpbEFsbFBsYW5zRm9yVk1BcmVSZWFkeSh2
bSk7CisgICAgd29ya2xpc3QtPnJlbW92ZUFsbFJlYWR5UGxhbnNGb3JWTSh2bSk7Cit9CisjZW5k
aWYgLy8gRU5BQkxFKERGR19KSVQpCisKIFZNOjp+Vk0oKQogewogICAgIC8vIE5ldmVyIEdDLCBl
dmVyIGFnYWluLgpAQCAtMzE0LDEwICszMzQsOCBAQCBWTTo6flZNKCkKICNpZiBFTkFCTEUoREZH
X0pJVCkKICAgICAvLyBNYWtlIHN1cmUgY29uY3VycmVudCBjb21waWxhdGlvbnMgYXJlIGRvbmUs
IGJ1dCBkb24ndCBpbnN0YWxsIHRoZW0sIHNpbmNlIHRoZXJlIGlzCiAgICAgLy8gbm8gcG9pbnQg
dG8gZG9pbmcgc28uCi0gICAgaWYgKHdvcmtsaXN0KSB7Ci0gICAgICAgIHdvcmtsaXN0LT53YWl0
VW50aWxBbGxQbGFuc0ZvclZNQXJlUmVhZHkoKnRoaXMpOwotICAgICAgICB3b3JrbGlzdC0+cmVt
b3ZlQWxsUmVhZHlQbGFuc0ZvclZNKCp0aGlzKTsKLSAgICB9CisgICAgY2xlYW5Xb3JrbGlzdCgq
dGhpcywgREZHOjpleGlzdGluZ0dsb2JhbERGR1dvcmtsaXN0T3JOdWxsKCkpOworICAgIGNsZWFu
V29ya2xpc3QoKnRoaXMsIERGRzo6ZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVsbCgpKTsK
ICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKICAgICAKICAgICAvLyBDbGVhciB0aGlzIGZpcnN0
IHRvIGVuc3VyZSB0aGF0IG5vYm9keSB0cmllcyB0byByZW1vdmUgdGhlbXNlbHZlcyBmcm9tIGl0
LgpAQCAtNDYxLDggKzQ3OSw4IEBAIE5hdGl2ZUV4ZWN1dGFibGUqIFZNOjpnZXRIb3N0RnVuY3Rp
b24oTmEKIE5hdGl2ZUV4ZWN1dGFibGUqIFZNOjpnZXRIb3N0RnVuY3Rpb24oTmF0aXZlRnVuY3Rp
b24gZnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQogewogICAgIHJldHVybiBO
YXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKnRoaXMsCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpLCBm
dW5jdGlvbiwKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVS
ZWYobGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKSwgY29uc3RydWN0b3IsCisgICAg
ICAgIGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3Jl
YXRlTExJbnRDb2RlUmVmKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpLCBKSVRDb2RlOjpI
b3N0Q2FsbFRodW5rKSksIGZ1bmN0aW9uLAorICAgICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklU
Q29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9uYXRp
dmVfY29uc3RydWN0X3RyYW1wb2xpbmUpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksIGNvbnN0
cnVjdG9yLAogICAgICAgICBOb0ludHJpbnNpYyk7CiB9CiAKQEAgLTQ5MCwxNCArNTA4LDIxIEBA
IHZvaWQgVk06OnN0b3BTYW1wbGluZygpCiAgICAgaW50ZXJwcmV0ZXItPnN0b3BTYW1wbGluZygp
OwogfQogCi12b2lkIFZNOjpwcmVwYXJlVG9EaXNjYXJkQ29kZSgpCi17CiAjaWYgRU5BQkxFKERG
R19KSVQpCitzdGF0aWMgdm9pZCBwcmVwYXJlVG9EaXNjYXJkQ29kZUZvcihWTSYgdm0sIERGRzo6
V29ya2xpc3QqIHdvcmtsaXN0KQorewogICAgIGlmICghd29ya2xpc3QpCiAgICAgICAgIHJldHVy
bjsKLSAgICAKLSAgICB3b3JrbGlzdC0+Y29tcGxldGVBbGxQbGFuc0ZvclZNKCp0aGlzKTsKLSNl
bmRpZgorICAgIHdvcmtsaXN0LT5jb21wbGV0ZUFsbFBsYW5zRm9yVk0odm0pOworfQorI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQorCit2b2lkIFZNOjpwcmVwYXJlVG9EaXNjYXJkQ29kZSgpCit7
CisjaWYgRU5BQkxFKERGR19KSVQpCisgICAgcHJlcGFyZVRvRGlzY2FyZENvZGVGb3IoKnRoaXMs
IERGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpKTsKKyAgICBwcmVwYXJlVG9E
aXNjYXJkQ29kZUZvcigqdGhpcywgREZHOjpleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxs
KCkpOworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogfQogCiB2b2lkIFZNOjpkaXNjYXJkQWxs
Q29kZSgpCkBAIC02MzIsNiArNjU3LDExIEBAIHN0YXRpYyB2b2lkIGFwcGVuZFNvdXJjZVRvRXJy
b3IoQ2FsbEZyYW0KICAgICAKIEpTVmFsdWUgVk06OnRocm93RXhjZXB0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBlcnJvcikKIHsKKyAgICBpZiAoT3B0aW9uczo6YnJlYWtPblRocm93KCkp
IHsKKyAgICAgICAgZGF0YUxvZygiSW4gY2FsbCBmcmFtZSAiLCBSYXdQb2ludGVyKGV4ZWMpLCAi
IGZvciBjb2RlIGJsb2NrICIsICpleGVjLT5jb2RlQmxvY2soKSwgIlxuIik7CisgICAgICAgIENS
QVNIKCk7CisgICAgfQorICAgIAogICAgIEFTU0VSVChleGVjID09IHRvcENhbGxGcmFtZSB8fCBl
eGVjID09IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpIHx8IGV4ZWMg
PT0gZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCkpOwogICAgIAogICAg
IFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNlOwpAQCAtNzA2LDYgKzczNiwyNCBAQCB2b2lk
IFZNOjogY2xlYXJFeGNlcHRpb25TdGFjaygpCiAgICAgbV9leGNlcHRpb25TdGFjayA9IFJlZkNv
dW50ZWRBcnJheTxTdGFja0ZyYW1lPigpOwogfQogCitzaXplX3QgVk06OnVwZGF0ZVN0YWNrTGlt
aXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShzaXplX3QgcmVzZXJ2ZWRab25lU2l6ZSkKK3sKKyAgICBz
aXplX3Qgb2xkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fcmVzZXJ2ZWRab25lU2l6ZTsKKyAgICBtX3Jl
c2VydmVkWm9uZVNpemUgPSByZXNlcnZlZFpvbmVTaXplOworCisgICAgdm9pZCogc3RhY2tMaW1p
dDsKKyAgICBpZiAoc3RhY2tQb2ludGVyQXRWTUVudHJ5KSB7CisgICAgICAgIEFTU0VSVCh3dGZU
aHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKKyAgICAgICAgY2hhciog
c3RhcnRPZlN0YWNrID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oc3RhY2tQb2ludGVyQXRWTUVu
dHJ5KTsKKyAgICAgICAgY2hhciogZGVzaXJlZFN0YWNrTGltaXQgPSBzdGFydE9mU3RhY2sgLSBP
cHRpb25zOjptYXhQZXJUaHJlYWRTdGFja1VzYWdlKCkgKyByZXNlcnZlZFpvbmVTaXplOworICAg
ICAgICBzdGFja0xpbWl0ID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkucmVjdXJzaW9uTGltaXQo
cmVzZXJ2ZWRab25lU2l6ZSwgZGVzaXJlZFN0YWNrTGltaXQpOworICAgIH0gZWxzZQorICAgICAg
ICBzdGFja0xpbWl0ID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkucmVjdXJzaW9uTGltaXQocmVz
ZXJ2ZWRab25lU2l6ZSk7CisKKyAgICBzZXRTdGFja0xpbWl0KHN0YWNrTGltaXQpOworICAgIHJl
dHVybiBvbGRSZXNlcnZlZFpvbmVTaXplOworfQorCiB2b2lkIHJlbGVhc2VFeGVjdXRhYmxlTWVt
b3J5KFZNJiB2bSkKIHsKICAgICB2bS5yZWxlYXNlRXhlY3V0YWJsZU1lbW9yeSgpOwpAQCAtNzIy
LDE2ICs3NzAsMTkgQEAgdm9pZCBWTTo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2Vydgog
ICAgICAgICB9CiAgICAgfQogfQorI2VuZGlmCiAKLURGRzo6V29ya2xpc3QqIFZNOjplbnN1cmVX
b3JrbGlzdCgpCit2b2lkIGxvZ1Nhbml0aXplU3RhY2soVk0qIHZtKQogewotICAgIGlmICghREZH
OjplbmFibGVDb25jdXJyZW50SklUKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmICghd29y
a2xpc3QpCi0gICAgICAgIHdvcmtsaXN0ID0gREZHOjpnbG9iYWxXb3JrbGlzdCgpOwotICAgIHJl
dHVybiB3b3JrbGlzdC5nZXQoKTsKKyAgICBpZiAoT3B0aW9uczo6dmVyYm9zZVNhbml0aXplU3Rh
Y2soKSAmJiB2bS0+dG9wQ2FsbEZyYW1lKSB7CisgICAgICAgIGludCBkdW1teTsKKyAgICAgICAg
ZGF0YUxvZygKKyAgICAgICAgICAgICJTYW5pdGl6aW5nIHN0YWNrIHdpdGggdG9wIGNhbGwgZnJh
bWUgYXQgIiwgUmF3UG9pbnRlcih2bS0+dG9wQ2FsbEZyYW1lKSwKKyAgICAgICAgICAgICIsIGN1
cnJlbnQgc3RhY2sgcG9pbnRlciBhdCAiLCBSYXdQb2ludGVyKCZkdW1teSksICIsIGluICIsCisg
ICAgICAgICAgICBwb2ludGVyRHVtcCh2bS0+dG9wQ2FsbEZyYW1lLT5jb2RlQmxvY2soKSksICIg
YW5kIGxhc3QgY29kZSBvcmlnaW4gPSAiLAorICAgICAgICAgICAgdm0tPnRvcENhbGxGcmFtZS0+
Y29kZU9yaWdpbigpLCAiXG4iKTsKKyAgICB9CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShSRUdF
WFBfVFJBQ0lORykKIHZvaWQgVk06OmFkZFJlZ0V4cFRvVHJhY2UoUmVnRXhwKiByZWdFeHApCkBA
IC03ODAsNCArODMxLDE0IEBAIHZvaWQgVk06OmFkZEltcHVyZVByb3BlcnR5KGNvbnN0IFN0cmlu
ZyYKICAgICAgICAgd2F0Y2hwb2ludFNldC0+ZmlyZUFsbCgpOwogfQogCit2b2lkIHNhbml0aXpl
U3RhY2tGb3JWTShWTSogdm0pCit7CisgICAgbG9nU2FuaXRpemVTdGFjayh2bSk7CisjaWYgRU5B
QkxFKExMSU5UX0NfTE9PUCkKKyAgICB2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuc2FuaXRpemVT
dGFjaygpOworI2Vsc2UKKyAgICBzYW5pdGl6ZVN0YWNrRm9yVk1JbXBsKHZtKTsKKyNlbmRpZgor
fQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
aAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
aAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAor
ICAgIGNsYXNzIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOwogICAgIGNsYXNzIENvZGVCbG9j
azsKICAgICBjbGFzcyBDb2RlQ2FjaGU7CiAgICAgY2xhc3MgQ29tbW9uSWRlbnRpZmllcnM7CkBA
IC0xMDMsNyArMTA0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKERGR19KSVQpCiAg
ICAgbmFtZXNwYWNlIERGRyB7CiAgICAgY2xhc3MgTG9uZ0xpdmVkU3RhdGU7Ci0gICAgY2xhc3Mg
V29ya2xpc3Q7CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogI2lmIEVOQUJMRShG
VExfSklUKQpAQCAtMTExLDYgKzExMSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIFRo
dW5rczsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisgICAgbmFtZXNwYWNlIENv
bW1vblNsb3dQYXRocyB7CisgICAgc3RydWN0IEFyaXR5Q2hlY2tEYXRhOworICAgIH0KIAogICAg
IHN0cnVjdCBIYXNoVGFibGU7CiAgICAgc3RydWN0IEluc3RydWN0aW9uOwpAQCAtMjA0LDEwICsy
MDcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lkIG1ha2VVc2FibGVGcm9tTXVs
dGlwbGVUaHJlYWRzKCkgeyBoZWFwLm1hY2hpbmVUaHJlYWRzKCkubWFrZVVzYWJsZUZyb21NdWx0
aXBsZVRocmVhZHMoKTsgfQogICAgICAgICAKLSNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICAgICAg
REZHOjpXb3JrbGlzdCogZW5zdXJlV29ya2xpc3QoKTsKLSNlbmRpZiAvLyBFTkFCTEUoREZHX0pJ
VCkKLQogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxKU0xvY2s+IG1fYXBpTG9jazsKIApA
QCAtMjI0LDEyICsyMjMsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogI2lmIEVOQUJM
RShERkdfSklUKQogICAgICAgICBPd25QdHI8REZHOjpMb25nTGl2ZWRTdGF0ZT4gZGZnU3RhdGU7
Ci0gICAgICAgIFJlZlB0cjxERkc6OldvcmtsaXN0PiB3b3JrbGlzdDsKICNlbmRpZiAvLyBFTkFC
TEUoREZHX0pJVCkKIAogICAgICAgICBWTVR5cGUgdm1UeXBlOwogICAgICAgICBDbGllbnREYXRh
KiBjbGllbnREYXRhOwogICAgICAgICBFeGVjU3RhdGUqIHRvcENhbGxGcmFtZTsKKyAgICAgICAg
dm9pZCogc3RhY2tQb2ludGVyQXRWTUVudHJ5OwogICAgICAgICBXYXRjaGRvZyB3YXRjaGRvZzsK
IAogICAgICAgICBjb25zdCBPd25QdHI8Y29uc3QgSGFzaFRhYmxlPiBhcnJheUNvbnN0cnVjdG9y
VGFibGU7CkBAIC0zNDEsNyArMzQwLDEzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
cmV0dXJuIGppdFN0dWJzLT5jdGlTdHViKHRoaXMsIGdlbmVyYXRvcik7CiAgICAgICAgIH0KICAg
ICAgICAgTmF0aXZlRXhlY3V0YWJsZSogZ2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uLCBJ
bnRyaW5zaWMpOwotI2VuZGlmCisgICAgICAgIAorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3M+IGFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOworI2lm
IENQVShYODYpCisgICAgICAgIHZvaWQqIGN1cnJlbnRSZXR1cm5UaHVua1BDOworI2VuZGlmIC8v
IENQVShYODYpCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE+IGFyaXR5Q2hlY2tEYXRhOwogI2lmIEVO
QUJMRShGVExfSklUKQogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RlRMOjpUaHVua3M+IGZ0bFRo
dW5rczsKICNlbmRpZgpAQCAtMzczLDEyICszNzgsMTYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgdGhyb3dFeGNlcHRpb24oRXhlY1N0YXRlKiwg
SlNWYWx1ZSk7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiB0aHJvd0V4Y2Vw
dGlvbihFeGVjU3RhdGUqLCBKU09iamVjdCopOwogICAgICAgICAKKyAgICAgICAgc2l6ZV90IHJl
c2VydmVkWm9uZVNpemUoKSBjb25zdCB7IHJldHVybiBtX3Jlc2VydmVkWm9uZVNpemU7IH0KKyAg
ICAgICAgc2l6ZV90IHVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShzaXplX3Qg
cmVzZXJ2ZWRab25lU2l6ZSk7CisKICAgICAgICAgdm9pZCoqIGFkZHJlc3NPZkpTU3RhY2tMaW1p
dCgpIHsgcmV0dXJuICZtX2pzU3RhY2tMaW1pdDsgfQorI2lmIEVOQUJMRShMTElOVF9DX0xPT1Ap
CiAgICAgICAgIHZvaWQqIGpzU3RhY2tMaW1pdCgpIHsgcmV0dXJuIG1fanNTdGFja0xpbWl0OyB9
CiAgICAgICAgIHZvaWQgc2V0SlNTdGFja0xpbWl0KHZvaWQqIGxpbWl0KSB7IG1fanNTdGFja0xp
bWl0ID0gbGltaXQ7IH0KLQorI2VuZGlmCiAgICAgICAgIHZvaWQqIHN0YWNrTGltaXQoKSB7IHJl
dHVybiBtX3N0YWNrTGltaXQ7IH0KLSAgICAgICAgdm9pZCBzZXRTdGFja0xpbWl0KHZvaWQqIGxp
bWl0KSB7IG1fc3RhY2tMaW1pdCA9IGxpbWl0OyB9CisKICAgICAgICAgYm9vbCBpc1NhZmVUb1Jl
Y3Vyc2Uoc2l6ZV90IG5lZWRlZFN0YWNrSW5CeXRlcyA9IDApIGNvbnN0CiAgICAgICAgIHsKICAg
ICAgICAgICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2Fy
ZCgpKTsKQEAgLTM4NywxMCArMzk2LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
cmV0dXJuIGN1cnIgPj0gbGltaXQgJiYgc3RhdGljX2Nhc3Q8c2l6ZV90PihjdXJyIC0gbGltaXQp
ID49IG5lZWRlZFN0YWNrSW5CeXRlczsKICAgICAgICAgfQogCisgICAgICAgIHZvaWQqIGxhc3RT
dGFja1RvcCgpIHsgcmV0dXJuIG1fbGFzdFN0YWNrVG9wOyB9CisgICAgICAgIHZvaWQgc2V0TGFz
dFN0YWNrVG9wKHZvaWQqIGxhc3RTdGFja1RvcCkgeyBtX2xhc3RTdGFja1RvcCA9IGxhc3RTdGFj
a1RvcDsgfQorCiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY29uc3QganNBcnJheUNsYXNzSW5m
bzsKICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjb25zdCBqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZv
OwogCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIgZXhjZXB0aW9uTG9jYXRpb247CiAgICAgICAg
IEpTVmFsdWUgaG9zdENhbGxSZXR1cm5WYWx1ZTsKICAgICAgICAgRXhlY1N0YXRlKiBuZXdDYWxs
RnJhbWVSZXR1cm5WYWx1ZTsKICAgICAgICAgRXhlY1N0YXRlKiBjYWxsRnJhbWVGb3JUaHJvdzsK
QEAgLTQxMyw3ICs0MjQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICAgICAvLyBt
YXgoc2NyYXRjaCBidWZmZXIgc2l6ZSkgKiA0LgogICAgICAgICAgICAgICAgIHNpemVPZkxhc3RT
Y3JhdGNoQnVmZmVyID0gc2l6ZSAqIDI7CiAKLSAgICAgICAgICAgICAgICBzY3JhdGNoQnVmZmVy
cy5hcHBlbmQoU2NyYXRjaEJ1ZmZlcjo6Y3JlYXRlKHNpemVPZkxhc3RTY3JhdGNoQnVmZmVyKSk7
CisgICAgICAgICAgICAgICAgU2NyYXRjaEJ1ZmZlciogbmV3QnVmZmVyID0gU2NyYXRjaEJ1ZmZl
cjo6Y3JlYXRlKHNpemVPZkxhc3RTY3JhdGNoQnVmZmVyKTsKKyAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChuZXdCdWZmZXIpOworICAgICAgICAgICAgICAgIHNjcmF0Y2hCdWZmZXJzLmFw
cGVuZChuZXdCdWZmZXIpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBTY3JhdGNoQnVm
ZmVyKiByZXN1bHQgPSBzY3JhdGNoQnVmZmVycy5sYXN0KCk7CkBAIC00OTUsNiArNTA4LDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFZNKFZNVHlwZSwgSGVhcFR5cGUpOwogICAgICAgICBz
dGF0aWMgVk0qJiBzaGFyZWRJbnN0YW5jZUludGVybmFsKCk7CiAgICAgICAgIHZvaWQgY3JlYXRl
TmF0aXZlVGh1bmsoKTsKKworICAgICAgICB2b2lkIHNldFN0YWNrTGltaXQodm9pZCogbGltaXQp
IHsgbV9zdGFja0xpbWl0ID0gbGltaXQ7IH0KKwogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAgICAg
ICAgIGJvb2wgbV9jYW5Vc2VBc3NlbWJsZXI7CiAjZW5kaWYKQEAgLTUwNyw4ICs1MjMsOCBAQCBu
YW1lc3BhY2UgSlNDIHsKICNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKICAgICAgICAgY29uc3Qg
Q2xhc3NJbmZvKiBtX2luaXRpYWxpemluZ09iamVjdENsYXNzOwogI2VuZGlmCi0KLSNpZiBVU0Uo
U0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0spCisgICAgICAgIHNpemVfdCBtX3Jlc2VydmVkWm9uZVNp
emU7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKICAgICAgICAgc3RydWN0IHsKICAgICAgICAg
ICAgIHZvaWQqIG1fc3RhY2tMaW1pdDsKICAgICAgICAgICAgIHZvaWQqIG1fanNTdGFja0xpbWl0
OwpAQCAtNTE5LDYgKzUzNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgdm9pZCog
bV9qc1N0YWNrTGltaXQ7CiAgICAgICAgIH07CiAjZW5kaWYKKyAgICAgICAgdm9pZCogbV9sYXN0
U3RhY2tUb3A7CiAgICAgICAgIEpTVmFsdWUgbV9leGNlcHRpb247CiAgICAgICAgIGJvb2wgbV9p
bkRlZmluZU93blByb3BlcnR5OwogICAgICAgICBPd25QdHI8Q29kZUNhY2hlPiBtX2NvZGVDYWNo
ZTsKQEAgLTU0NCw2ICs1NjEsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiAm
bV92bS0+aGVhcDsKICAgICB9CiAKKyNpZiAhRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBleHRl
cm4gIkMiIHZvaWQgc2FuaXRpemVTdGFja0ZvclZNSW1wbChWTSopOworI2VuZGlmCisKKyAgICB2
b2lkIHNhbml0aXplU3RhY2tGb3JWTShWTSopOworICAgIHZvaWQgbG9nU2FuaXRpemVTdGFjayhW
TSopOworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIFZNX2gKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlZNRW50cnlTY29wZS5o
IgogCiAjaW5jbHVkZSAiRGVidWdnZXIuaCIKKyNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVk
ZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvU3RhY2tCb3VuZHMuaD4KIApAQCAtMzQsMTIgKzM1LDEw
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBWTUVudHJ5U2NvcGU6OlZNRW50cnlTY29wZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgOiBtX3ZtKHZtKQotICAgICwgbV9z
dGFjayh3dGZUaHJlYWREYXRhKCkuc3RhY2soKSkKICAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2Jh
bE9iamVjdCkKLSAgICAsIG1fcHJldih2bS5lbnRyeVNjb3BlKQotICAgICwgbV9wcmV2U3RhY2tM
aW1pdCh2bS5zdGFja0xpbWl0KCkpCiAgICAgLCBtX3JlY29tcGlsYXRpb25OZWVkZWQoZmFsc2Up
CiB7CisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJk
KCkpOwogICAgIGlmICghdm0uZW50cnlTY29wZSkgewogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAg
ICAgICAgIGlmIChFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNzdXJlKCkpCkBA
IC01MSwxNyArNTAsMjQgQEAgVk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZtLCBKU0ds
bwogICAgICAgICAvLyBvYnNlcnZlIHRpbWUgeG9uZSBjaGFuZ2VzLgogICAgICAgICB2bS5yZXNl
dERhdGVDYWNoZSgpOwogICAgIH0KLSAgICAvLyBDbGVhciB0aGUgZXhjZXB0aW9uIHN0YWNrIGJl
dHdlZW4gZW50cmllcwotICAgIHZtLmNsZWFyRXhjZXB0aW9uU3RhY2soKTsKIAotICAgIHZvaWQq
IGxpbWl0ID0gbV9zdGFjay5yZWN1cnNpb25MaW1pdChyZXF1aXJlZENhcGFjaXR5KCkpOwotICAg
IHZtLnNldFN0YWNrTGltaXQobGltaXQpOworICAgIGlmICghdm0uc3RhY2tQb2ludGVyQXRWTUVu
dHJ5KSB7CisgICAgICAgIHZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IHRoaXM7CisgICAgICAg
IG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplID0gdm0udXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZl
ZFpvbmVTaXplKE9wdGlvbnM6OnJlc2VydmVkWm9uZVNpemUoKSk7CisgICAgfQorCisgICAgLy8g
Q2xlYXIgdGhlIGNhcHR1cmVkIGV4Y2VwdGlvbiBzdGFjayBiZXR3ZWVuIGVudHJpZXMKKyAgICB2
bS5jbGVhckV4Y2VwdGlvblN0YWNrKCk7CiB9CiAKIFZNRW50cnlTY29wZTo6flZNRW50cnlTY29w
ZSgpCiB7Ci0gICAgbV92bS5lbnRyeVNjb3BlID0gbV9wcmV2OwotICAgIG1fdm0uc2V0U3RhY2tM
aW1pdChtX3ByZXZTdGFja0xpbWl0KTsKKyAgICBpZiAobV92bS5lbnRyeVNjb3BlID09IHRoaXMp
CisgICAgICAgIG1fdm0uZW50cnlTY29wZSA9IG51bGxwdHI7CisgICAgaWYgKG1fdm0uc3RhY2tQ
b2ludGVyQXRWTUVudHJ5ID09IHRoaXMpIHsKKyAgICAgICAgbV92bS5zdGFja1BvaW50ZXJBdFZN
RW50cnkgPSBudWxscHRyOworICAgICAgICBtX3ZtLnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2
ZWRab25lU2l6ZShtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSk7CisgICAgfQogCiAgICAgaWYgKG1f
cmVjb21waWxhdGlvbk5lZWRlZCkgewogICAgICAgICBpZiAobV92bS5lbnRyeVNjb3BlKQpAQCAt
NzMsMjMgKzc5LDQgQEAgVk1FbnRyeVNjb3BlOjp+Vk1FbnRyeVNjb3BlKCkKICAgICB9CiB9CiAK
LXNpemVfdCBWTUVudHJ5U2NvcGU6OnJlcXVpcmVkQ2FwYWNpdHkoKSBjb25zdAotewotICAgIElu
dGVycHJldGVyKiBpbnRlcnByZXRlciA9IG1fdm0uaW50ZXJwcmV0ZXI7Ci0KLSAgICAvLyBXZSBy
ZXF1aXJlIGEgc21hbGxlciBzdGFjayBidWRnZXQgZm9yIHRoZSBlcnJvciBzdGFjay4gVGhpcyBp
cyB0byBhbGxvdwotICAgIC8vIHNvbWUgbWluaW1hbCBKUyBleGVjdXRpb24gdG8gcHJvY2VlZCBh
bmQgZG8gdGhlIHdvcmsgb2YgdGhyb3dpbmcgYSBzdGFjawotICAgIC8vIG92ZXJmbG93IGVycm9y
IGlmIG5lZWRlZC4gSW4gY29udHJhc3QsIGFyYml0cmFyeSBKUyBjb2RlIHdpbGwgcmVxdWlyZSB0
aGUKLSAgICAvLyBtb3JlIGdlbmVyb3VzIHN0YWNrIGJ1ZGdldCBpbiBvcmRlciB0byBwcm9jZWVk
LgotICAgIC8vCi0gICAgLy8gVGhlc2Ugc2l6ZXMgd2VyZSBkZXJpdmVkIGZyb20gdGhlIHN0YWNr
IHVzYWdlIG9mIGEgbnVtYmVyIG9mIHNpdGVzIHdoZW4KLSAgICAvLyBsYXlvdXQgb2NjdXJzIHdo
ZW4gd2UndmUgYWxyZWFkeSBjb25zdW1lZCBtb3N0IG9mIHRoZSBDIHN0YWNrLgotICAgIGNvbnN0
IHNpemVfdCByZXF1aXJlZFN0YWNrID0gMTI4ICogS0I7Ci0gICAgY29uc3Qgc2l6ZV90IGVycm9y
TW9kZVJlcXVpcmVkU3RhY2sgPSA2NCAqIEtCOwotCi0gICAgc2l6ZV90IHJlcXVpcmVkQ2FwYWNp
dHkgPSBpbnRlcnByZXRlci0+aXNJbkVycm9ySGFuZGxpbmdNb2RlKCkgPyBlcnJvck1vZGVSZXF1
aXJlZFN0YWNrIDogcmVxdWlyZWRTdGFjazsKLSAgICBSRUxFQVNFX0FTU0VSVChtX3N0YWNrLnNp
emUoKSA+PSByZXF1aXJlZENhcGFjaXR5KTsKLSAgICByZXR1cm4gcmVxdWlyZWRDYXBhY2l0eTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTUVudHJ5U2NvcGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTUVudHJ5U2NvcGUuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDE2ICs0
NSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWNvbXBpbGF0aW9uTmVlZGVkKGJvb2wgcmVj
b21waWxlTmVlZGVkKSB7IG1fcmVjb21waWxhdGlvbk5lZWRlZCA9IHJlY29tcGlsZU5lZWRlZDsg
fQogCiBwcml2YXRlOgotICAgIHNpemVfdCByZXF1aXJlZENhcGFjaXR5KCkgY29uc3Q7Ci0KICAg
ICBWTSYgbV92bTsKICAgICBTdGFja1N0YXRzOjpDaGVja1BvaW50IG1fc3RhY2tDaGVja1BvaW50
OwotICAgIFN0YWNrQm91bmRzIG1fc3RhY2s7CiAgICAgSlNHbG9iYWxPYmplY3QqIG1fZ2xvYmFs
T2JqZWN0OwotCi0gICAgLy8gbV9wcmV2IGFuZCBtX3ByZXZTdGFja0xpbWl0IG1heSBiZWxvbmcg
dG8gYSBkaWZmZXJlbnQgdGhyZWFkJ3Mgc3RhY2suCi0gICAgVk1FbnRyeVNjb3BlKiBtX3ByZXY7
Ci0gICAgdm9pZCogbV9wcmV2U3RhY2tMaW1pdDsKKyAgICBzaXplX3QgbV9zYXZlZFJlc2VydmVk
Wm9uZVNpemU7CiAgICAgYm9vbCBtX3JlY29tcGlsYXRpb25OZWVkZWQ7CiB9OwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1jb25zdGFudC1vdmVyZmxvdy1y
ZWNvdmVyeS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2FkZC1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWNvbnN0YW50LW92ZXJmbG93LXJl
Y292ZXJ5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhh
KSB7CisgICAgcmV0dXJuIGEuZiArIDIwMDAwMDAwMDA7Cit9CisKK25vSW5saW5lKGZvbyk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9v
KHtmOjF9KTsKKyAgICBpZiAocmVzdWx0ICE9IDIwMDAwMDAwMDEpCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyh7Zjoy
MDAwMDAwMDAwfSk7CitpZiAocmVzdWx0ICE9IDQwMDAwMDAwMDApCisgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTItY29u
c3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVy
eS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28oYSkgewor
ICAgIHJldHVybiBhICogMjA5NzE0NCArIDEwNzM3NDU5MjA7Cit9CisKK25vSW5saW5lKGZvbyk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0g
Zm9vKDEwNzM3MzYzODMpOworICAgIGlmIChyZXN1bHQgIT0gMjI1MTc4MDg4NjkzNjA3MikKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVz
dWx0ID0gZm9vKDEwNzM3NDU5MTkpOworaWYgKHJlc3VsdCAhPSAyMjUxODAwODg1MzAxMjU2KQor
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWludDUyLWxhcmdlLWNvbnN0YW50LW92ZXJm
bG93LXJlY292ZXJ5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvYWRkLWludDUyLWxhcmdlLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50
NTItbGFyZ2UtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKGEpIHsKKyAgICByZXR1cm4gYSAqIDIwOTcxNDQg
KyAxMDAwMDAwMDAwMDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oMTA3Mzc0MTE1MSk7CisgICAg
aWYgKHJlc3VsdCAhPSAyMjUxNzk5ODEyMzcyNzQ0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oMTA3Mzc0MTE1Mik7
CitpZiAocmVzdWx0ICE9IDIyNTE3OTk4MTQ0Njk4ODgpCisgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9hZGQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1vdmVyZmxvdy1y
ZWNvdmVyeS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28o
YSwgYikgeworICAgIHJldHVybiBhLmYgKyBiLmY7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtm
OjF9LCB7ZjoyfSk7CisgICAgaWYgKHJlc3VsdCAhPSAzKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oe2Y6MjAwMDAw
MDAwMH0sIHtmOjIwMDAwMDAwMDB9KTsKK2lmIChyZXN1bHQgIT0gNDAwMDAwMDAwMCkKKyAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1zbWFsbC1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVy
eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Fk
ZC1zbWFsbC1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLXNtYWxsLWNvbnN0YW50LW92ZXJm
bG93LXJlY292ZXJ5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9u
IGZvbyhhKSB7CisgICAgcmV0dXJuIGEuZiArIDEwMDA7Cit9CisKK25vSW5saW5lKGZvbyk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9v
KHtmOjF9KTsKKyAgICBpZiAocmVzdWx0ICE9IDEwMDEpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyh7ZjoyMTQ3NDgz
MTQ4fSk7CitpZiAocmVzdWx0ICE9IDIxNDc0ODQxNDgpCisgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9hcnJheS1wdXNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDE4IEBACitmdW5jdGlvbiBmb28oKSB7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgdmFy
IHJlc3VsdCA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDI7ICsraSkKKyAgICAgICAg
cmVzdWx0LnB1c2goYXJyYXkucHVzaCg3IC0gaSkpOworICAgIHJldHVybiBbYXJyYXksIHJlc3Vs
dF07Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyAr
K2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKCk7CisgICAgaWYgKHJlc3VsdFswXS50b1N0cmlu
ZygpICE9ICI3LDYsNSw0LDMsMiwxLDAsLTEsLTIsLTMsLTQsLTUsLTYsLTcsLTgsLTksLTEwLC0x
MSwtMTIsLTEzLC0xNCwtMTUsLTE2LC0xNywtMTgsLTE5LC0yMCwtMjEsLTIyLC0yMywtMjQsLTI1
LC0yNiwtMjcsLTI4LC0yOSwtMzAsLTMxLC0zMiwtMzMsLTM0IikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgYXJyYXk6ICIgKyByZXN1bHRbMF07CisgICAgaWYgKHJlc3VsdFsxXS50b1N0cmlu
ZygpICE9ICIxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwy
MCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwzMywzNCwzNSwzNiwzNywzOCwz
OSw0MCw0MSw0MiIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIGFycmF5OiAiICsgcmVzdWx0
WzFdOworfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2VtcHR5
LWZ1bmN0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvZW1wdHktZnVuY3Rpb24uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2VtcHR5LWZ1bmN0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTAgQEAKK2Z1bmN0aW9uIGZvbygpIHsgfQorCitub0lubGluZShmb28pOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOwor
ICAgIGlmIChyZXN1bHQgIT09IHZvaWQgMCkKKyAgICAgICAgdGhyb3cgIllvdSBicm9rZSBKU0Mg
c28gaGFyZCB0aGF0IGV2ZW4gdGhlIGVtcHR5IGZ1bmN0aW9uIGRvZXNuJ3Qgd29yazogIiArIHJl
c3VsdDsKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0
LWFmdGVyLWludDMyLXRvLWRvdWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50MzItdG8tZG91YmxlLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWlu
dDMyLXRvLWRvdWJsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlv
biBmb28oeCwgbykgeworICAgIHJldHVybiBvLmYgKyB4OworfQorCitub0lubGluZShmb28pOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZv
byg0Mi41LCB7Zjo1fSk7CisgICAgaWYgKHJlc3VsdCAhPSA0Ny41KQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oIjQy
Iiwge2Y6NX0pOworaWYgKHJlc3VsdCAhPSAiNTQyIikKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8tZG91YmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQ1Mi10by1kb3VibGUuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQt
YWZ0ZXItaW50NTItdG8tZG91YmxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAK
K2Z1bmN0aW9uIGZvbyhhLCBiLCBjKSB7CisgICAgcmV0dXJuIGEuZiArIGIuZiArIGMuZjsKK30K
Kworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgewor
ICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MjAwMDAwMDAwMH0sIHtmOjIwMDAwMDAwMDB9LCB7Zjow
LjV9KTsKKyAgICBpZiAocmVzdWx0ICE9IDQwMDAwMDAwMDAuNSkKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKHtmOjIw
MDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSwge2Y6IjQyIn0pOworaWYgKHJlc3VsdCAhPSAiNDAw
MDAwMDAwMDQyIikKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQ1
Mi10by12YWx1ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8tdmFsdWUuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8tdmFsdWUu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNSBAQAorZnVuY3Rpb24gZm9vKGEsIGIsIGMp
IHsKKyAgICBjLmYuZiA9IGEuZiArIGIuZjsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFyIGNv
dW50ZXIgPSAwOworZnVuY3Rpb24gbWFrZVdlaXJkT2JqZWN0KCkgeworICAgIHZhciByZXN1bHQg
PSB7fTsKKyAgICByZXN1bHRbImJsYWgiICsgKGNvdW50ZXIrKyldID0gNDI7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZh
ciBvID0gbWFrZVdlaXJkT2JqZWN0KCk7CisgICAgZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAw
MDAwMDAwfSwge2Y6b30pOworICAgIGlmIChvLmYgIT0gNDAwMDAwMDAwMCkKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgdGhpbmd5OworTnVt
YmVyLnByb3RvdHlwZS5fX2RlZmluZVNldHRlcl9fKCJmIiwgZnVuY3Rpb24odmFsdWUpIHsgdGhp
bmd5ID0gdmFsdWU7IH0pOworZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSwge2Y6
NDJ9KTsKK2lmICh0aGluZ3kgIT0gNDAwMDAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyB0aGluZ3k7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2V4aXQtYWZ0ZXItbGx2bS1mb2xkcy1sYXJnZS1pbnQtY29uc3RhbnQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWxsdm0t
Zm9sZHMtbGFyZ2UtaW50LWNvbnN0YW50LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWxsdm0tZm9sZHMtbGFyZ2UtaW50LWNv
bnN0YW50LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIGZvbyhv
LCBpbykgeworICAgIHZhciBpID0gaW8uZjsKKyAgICBpZiAoaSAhPSA5MjE2MCkKKyAgICAgICAg
by5nID0gNDI7CisgICAgcmV0dXJuIG8uZi5mICsgaTsKK30KKworbm9JbmxpbmUoZm9vKTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28o
e2Y6e2Y6NDJ9fSwge2Y6OTIxNjB9KTsKKyAgICBpZiAocmVzdWx0ICE9IDkyMjAyKQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQg
PSBmb28oe2Y6e2c6MjAsIGY6MjF9fSwge2Y6OTIxNjB9KTsKK2lmIChyZXN1bHQgIT0gOTIxODEp
CisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWZyb20tZnRsLXdpdGgtYXJpdHktY2hl
Y2stZmFpbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2V4aXQtZnJvbS1mdGwtd2l0aC1hcml0eS1jaGVjay1mYWlsLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWZyb20tZnRsLXdpdGgt
YXJpdHktY2hlY2stZmFpbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitmdW5j
dGlvbiBmb28obywgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaikgeworICAgIHJldHVybiBv
LmY7Cit9CisKK2Z1bmN0aW9uIGJhcihvKSB7CisgICAgcmV0dXJuIGZvbyhvKTsKK30KKworbm9J
bmxpbmUoZm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpCisgICAgYmFyKHtmOjQyfSk7CisKK3ZhciByZXN1bHQgPSBiYXIoe2c6MjQsIGY6NDN9
KTsKK2lmIChyZXN1bHQgIT0gNDMpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1h
cml0aGNvcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2Z0bC1hcml0aGNvcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoY29zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIE1hdGguY29zKHgpOworfQorCitu
b0lubGluZShmb28pOworCit2YXIgaiA9IDA7Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKQorICAgIGogPSBmb28oaSk7CisKK2lmICgtMC41MDk4NzUzNzI0MTc5MDA5ICE9IGopewor
ICAgIHRocm93ICJFcnJvciIKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvZnRsLWFyaXRoc2luLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc2luLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhzaW4uanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gTWF0aC5zaW4o
eCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciBqID0gMDsKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDAwOyArK2kpCisgICAgaiA9IGZvbyhpKTsKKworaWYgKDAuODYwMjQ4MjgwNzg5NzQy
ICE9IGopeworICAgIHRocm93ICJFcnJvciIKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc3FydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1
cm4gTWF0aC5zcXJ0KHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgaiA9IDA7Citmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIGogPSBmb28oaSk7CisKK2lmICggMzE2
LjIyNjE4NDg3NDA1NSAhPSBqKXsKKyAgICB0aHJvdyAiRXJyb3IiCit9CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlkLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWQuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlk
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKKworT2JqZWN0LnByb3RvdHlwZS5f
X2RlZmluZVNldHRlcl9fKCJyIiwgZnVuY3Rpb24odmFsKXsgbyA9IHZhbCB9KQorCitmdW5jdGlv
biBmb28oeCl7CisgICAgdmFyIG4gPSB7IH0KKyAgICBuLnIgPSB4OworfQorCitub0lubGluZShm
b28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIGZvbyhpKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVj
dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0
bC1wdXRieWlkZGlyZWN0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEyIEBACitmdW5jdGlvbiBmb28oeCl7CisgICAgcmV0dXJuIHsgMCA6IDEgLCBhIDogeCB9
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kp
CisgICAgbyA9IGZvbyhpKTsKKworaWYgKG8uYSAhPSA5OTk5OSB8fCBvWzBdICE9IDEpCisgICAg
dGhyb3cgIkVycm9yIgorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2dldC1ieS1pZC10aHJvdy1mcm9tLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlk
LXRocm93LWZyb20tZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1m
cm9tLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMzcgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIG8uZiArIDE7Cit9CisK
K25vSW5saW5lKGZvbyk7CisKK3ZhciBzaG91bGRUaHJvdyA9IGZhbHNlOworCitmdW5jdGlvbiBt
YWtlV2l0aEdldHRlcigpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8uX19kZWZpbmVHZXR0ZXJf
XygiZiIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoc2hvdWxkVGhyb3cpCisgICAgICAgICAg
ICB0aHJvdyAiaGVsbG8iOworICAgICAgICByZXR1cm4gNDI7CisgICAgfSk7CisgICAgcmV0dXJu
IG87Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVz
dWx0ID0gZm9vKHtmOjIzfSk7CisgICAgaWYgKHJlc3VsdCAhPSAyNCkKKyAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyhtYWtlV2l0
aEdldHRlcigpKTsKKyAgICBpZiAocmVzdWx0ICE9IDQzKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAg
c2hvdWxkVGhyb3cgPSB0cnVlOworICAgIGZvbyhtYWtlV2l0aEdldHRlcigpKTsKK30gY2F0Y2gg
KGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAhPSAiaGVsbG8iKQor
ICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4Y2VwdGlvbjog
IiArIGRpZFRocm93OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9n
ZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVjdGVkLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1j
b2RlLXRoYXQtZG9lcy1ub3QtZXhpdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVy
LXRocm91Z2gtb3B0aW1pemVkLWNvZGUtdGhhdC1kb2VzLW5vdC1leGl0LmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ct
ZnJvbS11bmV4cGVjdGVkLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLXRoYXQtZG9lcy1u
b3QtZXhpdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM1IEBACitmdW5jdGlvbiBmb28o
bykgeworICAgIHJldHVybiBvLmY7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIG1h
a2VXaXRoR2V0dGVyKCkgeworICAgIHZhciBvID0ge307CisgICAgby5fX2RlZmluZUdldHRlcl9f
KCJmIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgfSk7CisgICAg
cmV0dXJuIG87Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2
YXIgcmVzdWx0ID0gZm9vKHtmOjIzfSk7CisgICAgaWYgKHJlc3VsdCAhPSAyMykKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7
ZzoxMiwgZjoxM30pOworICAgIGlmIChyZXN1bHQgIT0gMTMpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28oe2c6MTIsIGg6MTMs
IGY6MTR9KTsKKyAgICBpZiAocmVzdWx0ICE9IDE0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgZm9v
KG1ha2VXaXRoR2V0dGVyKCkpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30K
KworaWYgKGRpZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhy
b3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0
ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVj
dGVkLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4
cGVjdGVkLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzUgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIG8uZiArIDE7Cit9
CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIG1ha2VXaXRoR2V0dGVyKCkgeworICAgIHZh
ciBvID0ge307CisgICAgby5fX2RlZmluZUdldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7CisgICAg
ICAgIHRocm93ICJoZWxsbyI7CisgICAgfSk7CisgICAgcmV0dXJuIG87Cit9CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjIzfSk7
CisgICAgaWYgKHJlc3VsdCAhPSAyNCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7ZzoxMiwgZjoxM30pOworICAgIGlmIChy
ZXN1bHQgIT0gMTQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKKyAgICByZXN1bHQgPSBmb28oe2c6MTIsIGg6MTMsIGY6MTR9KTsKKyAgICBpZiAocmVzdWx0
ICE9IDE1KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9
CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgZm9vKG1ha2VXaXRoR2V0dGVyKCkpOworfSBj
YXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30KKworaWYgKGRpZFRocm93ICE9ICJoZWxs
byIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhyb3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0
aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2ljLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pYy10aHJvdy10aHJvdWdoLW9wdGltaXpl
ZC1jb2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9pYy10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMjkgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIG8uZiArIDE7Cit9
CisKK051bWJlci5wcm90b3R5cGUuZiA9IDQyOworCitub0lubGluZShmb28pOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygyMyk7Cisg
ICAgaWYgKHJlc3VsdCAhPSA0MykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7ZjoyNX0pOworICAgIGlmIChyZXN1bHQgIT0g
MjYpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICBy
ZXN1bHQgPSBmb28oe2c6MTIsIGY6MTN9KTsKKyAgICBpZiAocmVzdWx0ICE9IDE0KQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciBkaWRUaHJv
dzsKK3RyeSB7CisgICAgZm9vKHZvaWQgMCk7Cit9IGNhdGNoIChlKSB7CisgICAgZGlkVGhyb3cg
PSBlOworfQorCitpZiAoIWRpZFRocm93IHx8IGRpZFRocm93LnRvU3RyaW5nKCkuaW5kZXhPZigi
VHlwZUVycm9yOiIpICE9IDApCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhyb3cgb3IgdGhy
ZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3MtYW5kLWNhbGwuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12
YXJhcmdzLWFuZC1jYWxsLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLWFuZC1jYWxsLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgcmV0dXJuIGJh
cihhLCBiKTsKK30KKworZnVuY3Rpb24gYmFyKGEsIGIpIHsKKyAgICB2YXIgeCA9IGJhei5hcHBs
eShudWxsLCBhcmd1bWVudHMpOworICAgIHZhciB5ID0gYmF6KGEsIGIpCisgICAgcmV0dXJuIHgg
KyB5ICogMzsKK30KKworZnVuY3Rpb24gYmF6KGEsIGIpIHsKKyAgICByZXR1cm4gYSArIGIgKiAy
OworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytp
KSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyg3LCAxMSk7CisgICAgaWYgKHJlc3VsdCAhPSAxMTYp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFy
IHJlc3VsdCA9IGZvbyg1LCAyMTQ3NDgzNjQ2KTsKK2lmIChyZXN1bHQgIT0gMTcxNzk4NjkxODgp
CisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwt
dmFyYXJncy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvaW5saW5lLWNhbGwtdmFyYXJncy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIz
IEBACitmdW5jdGlvbiBmb28oYSwgYikgeworICAgIHJldHVybiBiYXIoYSwgYik7Cit9CisKK2Z1
bmN0aW9uIGJhcihhLCBiKSB7CisgICAgcmV0dXJuIGJhei5hcHBseShudWxsLCBhcmd1bWVudHMp
OworfQorCitmdW5jdGlvbiBiYXooYSwgYikgeworICAgIHJldHVybiBhICsgYiAqIDI7Cit9CisK
K25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAg
ICB2YXIgcmVzdWx0ID0gZm9vKDcsIDExKTsKKyAgICBpZiAocmVzdWx0ICE9IDI5KQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQg
PSBmb28oNSwgMjE0NzQ4MzY0Nik7CitpZiAocmVzdWx0ICE9IDQyOTQ5NjcyOTcpCisgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNsb3N1cmUtY2FsbC5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5s
aW5lLWNsb3N1cmUtY2FsbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitmdW5j
dGlvbiBmb28oeCkgeworICAgIHJldHVybiBmdW5jdGlvbih5KSB7IHJldHVybiB4ICsgeTsgfQor
fQorCitmdW5jdGlvbiBiYXIoYSwgYikgeworICAgIHJldHVybiBmb28oYSkoYik7Cit9CisKK25v
SW5saW5lKGZvbyk7Citub0lubGluZShiYXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
MDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGJhcihpLCBpICsgMSk7CisgICAgaWYgKHJlc3Vs
dCAhPSBpICogMiArIDEpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBmb3IgIiAr
IGkgKyAiOiAiICsgcmVzdWx0OworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWFuZC1vdXQtb2YtYm91bmRzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZh
bC1pbi1hbmQtb3V0LW9mLWJvdW5kcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1hbmQtb3V0LW9mLWJvdW5k
cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiBmb28oYSkgewor
ICAgIGFbNDJdID0gOTUwMTA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qo
bGVuZ3RoLCBleHBlY3RlZCkgeworICAgIHZhciBhID0gbmV3IEludDE2QXJyYXkobGVuZ3RoKTsK
KyAgICBmb28oYSk7CisgICAgdmFyIHJlc3VsdCA9IGFbNDJdOworICAgIGlmIChyZXN1bHQgIT0g
ZXhwZWN0ZWQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHZhbHVlIGF0IGFbNDJdOiAiICsg
cmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdGVz
dCgxMCwgdm9pZCAwKTsKKyAgICB0ZXN0KDEwMCwgMjk0NzQpOworfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWJvdW5kcy10aGVu
LWV4aXQtb3V0LW9mLWJvdW5kcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtaW4tYm91bmRzLXRoZW4tZXhpdC1vdXQt
b2YtYm91bmRzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWJvdW5kcy10aGVuLWV4aXQtb3V0LW9mLWJvdW5k
cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBmb28oYSkgewor
ICAgIGFbNDJdID0gOTUwMTA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qo
bGVuZ3RoLCBleHBlY3RlZCkgeworICAgIHZhciBhID0gbmV3IEludDE2QXJyYXkobGVuZ3RoKTsK
KyAgICBmb28oYSk7CisgICAgdmFyIHJlc3VsdCA9IGFbNDJdOworICAgIGlmIChyZXN1bHQgIT0g
ZXhwZWN0ZWQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHZhbHVlIGF0IGFbNDJdOiAiICsg
cmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIHRlc3Qo
MTAwLCAyOTQ3NCk7CisKK3Rlc3QoMTAsIHZvaWQgMCk7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWJvdW5k
cy10aGVuLWRvLWluLWJvdW5kcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0LW9mLWJvdW5kcy1ib3VuZHMtdGhl
bi1kby1pbi1ib3VuZHMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0LW9mLWJvdW5kcy1ib3VuZHMtdGhlbi1k
by1pbi1ib3VuZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24g
Zm9vKGEpIHsKKyAgICBhWzQyXSA9IDk1MDEwOworfQorCitub0lubGluZShmb28pOworCitmdW5j
dGlvbiB0ZXN0KGxlbmd0aCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgYSA9IG5ldyBJbnQxNkFycmF5
KGxlbmd0aCk7CisgICAgZm9vKGEpOworICAgIHZhciByZXN1bHQgPSBhWzQyXTsKKyAgICBpZiAo
cmVzdWx0ICE9IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCB2YWx1ZSBhdCBh
WzQyXTogIiArIHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkK
KyAgICB0ZXN0KDEwLCB2b2lkIDApOworCit0ZXN0KDEwMCwgMjk0NzQpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludmFsaWRhdGlvbi1wb2ludC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludmFsaWRhdGlv
bi1wb2ludC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvaW52YWxpZGF0aW9uLXBvaW50LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQg
QEAKK2Z1bmN0aW9uIGZvbyhvLCBwKSB7CisgICAgcG9zc2libHlEb0JhZFRoaW5ncyhwKTsKKyAg
ICByZXR1cm4gby5mKCk7Cit9Citub0lubGluZShmb28pOworCitmdW5jdGlvbiBUaGluZ3koKSB7
IH0KK1RoaW5neS5wcm90b3R5cGUuZiA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDI7IH0KKworZnVu
Y3Rpb24gcG9zc2libHlEb0JhZFRoaW5ncyhwKSB7CisgICAgaWYgKHApCisgICAgICAgIFRoaW5n
eS5wcm90b3R5cGUuZiA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMjQ7IH0KK30KK25vSW5saW5lKHBv
c3NpYmx5RG9CYWRUaGluZ3MpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7
CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgVGhpbmd5KCksIGZhbHNlKTsKKyAgICBpZiAocmVz
dWx0ICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
Cit9CisKK3ZhciByZXN1bHQgPSBmb28obmV3IFRoaW5neSgpLCB0cnVlKTsKK2lmIChyZXN1bHQg
IT0gMjQpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYWtlLXJvcGUtMi5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0yLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYWtl
LXJvcGUtMi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiBmb28o
eCkgeworICAgIHJldHVybiAiaGVsbG8iICsgeDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oIiB3
b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRl
c2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCB0eXBlOiAi
ICsgcmVzdWx0OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyB3b3JsZCIpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYWtlLXJvcGUtMy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0zLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYWtlLXJv
cGUtMy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiBmb28oeCkg
eworICAgIHJldHVybiAiaGVsbG8iICsgeCArICIhISI7Cit9CisKK25vSW5saW5lKGZvbyk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9v
KCIgd29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAg
ICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgdHlw
ZTogIiArIHJlc3VsdDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8gd29ybGQhISIp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktc3RvcmFnZS1h
cnJheS13aXRoLXNpemUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9uZXctYXJyYXktc3RvcmFnZS1hcnJheS13aXRoLXNpemUuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS1zdG9y
YWdlLWFycmF5LXdpdGgtc2l6ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACitm
dW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJyYXkoeCk7Cit9CisKK25vSW5saW5l
KGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAgIHZhciByZXN1bHQgPSBmb28oc2l6
ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkKKyAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBzYXdUaGluZ3MgPSBmYWxzZTsKKyAg
ICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3VGhpbmdzID0gdHJ1ZTsKKyAgICBp
ZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIGJhZCBzdGF0
ZTogIiArIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAiNDIuNSI7CisgICAgaWYgKHJlc3VsdFsw
XSAhPSAiNDIuNSIpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gd2llcmQgc3Rh
dGU6ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsK
KyAgICB0ZXN0KDEwMDAwMDApOworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9uZXctYXJyYXktd2l0aC1zaXplLXdpdGgtYmFkLXRpbWUuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktd2l0aC1zaXpl
LXdpdGgtYmFkLXRpbWUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL25ldy1hcnJheS13aXRoLXNpemUtd2l0aC1iYWQtdGltZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBu
ZXcgQXJyYXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciBwb2tlOworQXJyYXkucHJv
dG90eXBlLl9fZGVmaW5lU2V0dGVyX18oIjEiLCBmdW5jdGlvbigpIHsKKyAgICBwb2tlID0gInBv
a2UiOworfSk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAgIHZhciByZXN1bHQgPSBmb28o
c2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBzYXdUaGluZ3MgPSBmYWxzZTsK
KyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkgeworICAgICAgICBpZiAocyAhPSAiMSIpCisgICAg
ICAgICAgICBzYXdUaGluZ3MgPSB0cnVlOworICAgIH0KKyAgICBpZiAoc2F3VGhpbmdzKQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSAiNDIuNSI7CisgICAgaWYgKHJlc3VsdFswXSAhPSAiNDIuNSIpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gd2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7Cisg
ICAgcG9rZSA9IG51bGw7CisgICAgcmVzdWx0WzFdID0gNDI7CisgICAgaWYgKHBva2UgIT0gInBv
a2UiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IHNldHRlciBub3QgY2FsbGVkLiI7Cit9CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDQyKTsKK30KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWNvbnRpZ3VvdXMtYXJyYXkt
d2l0aC1zaXplLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbmV3LWNvbnRpZ3VvdXMtYXJyYXktd2l0aC1zaXplLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctY29udGlndW91cy1hcnJheS13
aXRoLXNpemUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMSBAQAorZnVuY3Rpb24gZm9v
KHgpIHsKKyAgICByZXR1cm4gbmV3IEFycmF5KHgpOworfQorCitub0lubGluZShmb28pOworCitm
dW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHNpemUpOworICAgIGlm
IChyZXN1bHQubGVuZ3RoICE9IHNpemUpIHsKKyAgICAgICAgcHJpbnQoIkdvdCBhIHdlaXJkIGxl
bmd0aDogIiArIHJlc3VsdC5sZW5ndGgpOworICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQ6ICIgKyByZXN1bHQ7CisgICAgfQorICAgIHZhciBzYXdUaGluZ3MgPSBmYWxzZTsKKyAgICBm
b3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3VGhpbmdzID0gdHJ1ZTsKKyAgICBpZiAo
c2F3VGhpbmdzKSB7CisgICAgICAgIHByaW50KCJTYXcgdGhpbmdzISIpOworICAgICAgICB0aHJv
dyAiRXJyb3I6IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICB9CisgICAg
cmVzdWx0WzBdID0gIjQyLjUiOworICAgIGlmIChyZXN1bHRbMF0gIT0gIjQyLjUiKSB7CisgICAg
ICAgIHByaW50KCJEaWRuJ3Qgc3RvcmUgd2hhdCBJIHRob3VnaHQgSSBzdG9yZWQuIik7CisgICAg
ICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gd2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7Cisg
ICAgfQorfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdGVzdCgw
KTsKKyAgICB0ZXN0KDEpOworICAgIHRlc3QoNDIpOworfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctZG91YmxlLWFycmF5LXdpdGgtc2l6ZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1kb3VibGUtYXJy
YXktd2l0aC1zaXplLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9uZXctZG91YmxlLWFycmF5LXdpdGgtc2l6ZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJyYXko
eCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAgIHZh
ciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBzYXdU
aGluZ3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3VGhp
bmdzID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFy
cmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSA0Mi41Owor
ICAgIGlmIChyZXN1bHRbMF0gIT0gNDIuNSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBp
cyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7ICsraSkgeworICAgIHRlc3QoMCk7CisgICAgdGVzdCgxKTsKKyAgICB0ZXN0KDQyKTsK
K30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWludDMyLWFy
cmF5LXdpdGgtc2l6ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL25ldy1pbnQzMi1hcnJheS13aXRoLXNpemUuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1pbnQzMi1hcnJheS13aXRoLXNp
emUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNSBAQAorZnVuY3Rpb24gZm9vKHgpIHsK
KyAgICByZXR1cm4gbmV3IEFycmF5KHgpOworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlv
biB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHNpemUpOworICAgIGlmIChyZXN1
bHQubGVuZ3RoICE9IHNpemUpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKKyAgICB2YXIgc2F3VGhpbmdzID0gZmFsc2U7CisgICAgZm9yICh2YXIgcyBpbiBy
ZXN1bHQpCisgICAgICAgIHNhd1RoaW5ncyA9IHRydWU7CisgICAgaWYgKHNhd1RoaW5ncykKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gNDI7CisgICAgaWYgKHJlc3VsdFswXSAhPSA0MikKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBhcnJheSBpcyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKK30KKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMCk7CisgICAgdGVzdCgx
KTsKKyAgICB0ZXN0KDQyKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbmV3LXVuZGVjaWRlZC1hcnJheS13aXRoLXNpemUuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdW5kZWNpZGVkLWFycmF5LXdpdGgt
c2l6ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvbmV3LXVuZGVjaWRlZC1hcnJheS13aXRoLXNpemUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwyMiBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gbmV3IEFycmF5KHgpOwor
fQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVz
dWx0ID0gZm9vKHNpemUpOworICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgc2F3VGhpbmdz
ID0gZmFsc2U7CisgICAgZm9yICh2YXIgcyBpbiByZXN1bHQpCisgICAgICAgIHNhd1RoaW5ncyA9
IHRydWU7CisgICAgaWYgKHNhd1RoaW5ncykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBp
cyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3QoMSk7CisgICAgdGVzdCg0Mik7Cit9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC10aHJv
dy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNv
ZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3B1dC1ieS1pZC10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMzMgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgInVzZSBzdHJpY3QiOwor
ICAgIG8uZiA9IDQyOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBmb28obyk7CisgICAgaWYgKG8u
ZiAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOworICAg
IG8gPSB7ZjoyM307CisgICAgZm9vKG8pOworICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIG8uZjsKKyAgICBvID0ge2c6MTJ9OworICAgIGZv
byhvKTsKKyAgICBpZiAoby5mICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQ6ICIgKyBvLmY7Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgdmFyIG8gPSB7fTsK
KyAgICBPYmplY3QuZnJlZXplKG8pOworICAgIGZvbyhvKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBk
aWRUaHJvdyA9IGU7Cit9CisKK2lmICghZGlkVGhyb3cgfHwgZGlkVGhyb3cudG9TdHJpbmcoKS5p
bmRleE9mKCJUeXBlRXJyb3I6IikgIT0gMCkKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJv
dyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVjdXJzZS1pbmZpbml0ZWx5LW9uLWdldHRlci5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlY3Vy
c2UtaW5maW5pdGVseS1vbi1nZXR0ZXIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlY3Vyc2UtaW5maW5pdGVseS1vbi1nZXR0ZXIuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsr
aSkgeworICAgIHZhciBvID0ge307CisgICAgby5fX2RlZmluZUdldHRlcl9fKCJmIiwgZnVuY3Rp
b24oKSB7CisgICAgICAgIHJldHVybiBvLmY7CisgICAgfSk7CisgICAgdmFyIGRpZFRocm93Owor
ICAgIHZhciByZXN1bHQ7CisgICAgcmVzdWx0ID0gIm5vdCBzZXQiOworICAgIHRyeSB7CisgICAg
ICAgIHJlc3VsdCA9IG8uZjsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGRpZFRocm93ID0g
ZTsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAibm90IHNldCIpCisgICAgICAgIHRocm93ICJE
aWQgc2V0IHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICBpZiAoIWRpZFRocm93IHx8IGRpZFRocm93
LnRvU3RyaW5nKCkuaW5kZXhPZigiUmFuZ2VFcnJvciIpICE9IDApCisgICAgICAgIHRocm93ICJC
YWQgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvcmVwZWF0ZWQtYXJpdHktY2hlY2stZmFpbC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlcGVhdGVkLWFyaXR5LWNo
ZWNrLWZhaWwuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3JlcGVhdGVkLWFyaXR5LWNoZWNrLWZhaWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw4IEBACitmdW5jdGlvbiBiYXIoYSxiLGMsZCxlLGYsZyxoLGksaixrKSB7Cit9CisKK25v
SW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDA7ICsraSkKKyAgICBi
YXIoKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9ydW50aW1l
LXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9ydW50aW1lLXRocm93LXRocm91Z2gtb3B0aW1pemVk
LWNvZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3J1bnRpbWUtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMzIEBACitmdW5jdGlvbiBmb28oYSwgcykgeworICAgIHJldHVybiBhW3Nd
ICsgMTsKK30KKwordmFyIHNob3VsZFRocm93ID0gZmFsc2U7CitmdW5jdGlvbiBiYXIoKSB7Cisg
ICAgaWYgKHNob3VsZFRocm93KQorICAgICAgICB0aHJvdyAiaGVsbG8iOworICAgIHJldHVybiA0
MjsKK30KKwordmFyIGEgPSB7fTsKK2EuX19kZWZpbmVHZXR0ZXJfXygiYmFyIiwgYmFyKTsKKwor
bm9JbmxpbmUoZm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGEsICJiYXIiKTsKKyAgICBpZiAocmVz
dWx0ICE9IDQzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgc2hvdWxkVGhyb3cgPSB0cnVlOworICAg
IGZvbyhhLCAiYmFyIik7Cit9IGNhdGNoIChlKSB7CisgICAgZGlkVGhyb3cgPSBlOworfQorCitp
ZiAoZGlkVGhyb3cgIT0gImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBv
ciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWNhbGwtaW5saW5pbmct
ZXhhbXBsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1jYWxsLWlubGluaW5nLWV4YW1wbGUuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFy
aWFudC1jYWxsLWlubGluaW5nLWV4YW1wbGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
MiBAQAorZnVuY3Rpb24gZm9vKGJheikgeworICAgIHJldHVybiBiYXIoYmF6KTsKK30KKworZnVu
Y3Rpb24gZnV6eihiYXopIHsKKyAgICByZXR1cm4gYmFyKGJheik7Cit9CisKK2Z1bmN0aW9uIGJh
cihiYXopIHsKKyAgICByZXR1cm4gYmF6KCk7Cit9CisKK2Z1bmN0aW9uIGJhejEoKSB7CisgICAg
cmV0dXJuIDQyOworfQorCitmdW5jdGlvbiBiYXoyKCkgeworICAgIHJldHVybiAyNDsKK30KKwor
bm9JbmxpbmUoZm9vKTsKK25vSW5saW5lKGZ1enopOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhiYXoxKTsKKyAgICBpZiAocmVzdWx0
ICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cisg
ICAgdmFyIHJlc3VsdCA9IGZ1enooYmF6Mik7CisgICAgaWYgKHJlc3VsdCAhPSAyNCkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1nZXQtYnkt
aWQtaW5saW5pbmctZXhhbXBsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1nZXQtYnktaWQtaW5saW5pbmctZXhh
bXBsZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3Mvc2ltcGxlLXBvbHl2YXJpYW50LWdldC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJu
IGJhcihvKTsKK30KKworZnVuY3Rpb24gZnV6eihvKSB7CisgICAgcmV0dXJuIGJhcihvKTsKK30K
KworZnVuY3Rpb24gYmFyKG8pIHsKKyAgICByZXR1cm4gby5mOworfQorCitub0lubGluZShmb28p
Oworbm9JbmxpbmUoZnV6eik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsK
KyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjQyfSk7CisgICAgaWYgKHJlc3VsdCAhPSA0MikKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciByZXN1
bHQgPSBmdXp6KHtnOjIzLCBmOjI0fSk7CisgICAgaWYgKHJlc3VsdCAhPSAyNCkKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1wdXQtYnktaWQt
aW5saW5pbmctZXhhbXBsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1wdXQtYnktaWQtaW5saW5pbmctZXhhbXBs
ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
c2ltcGxlLXBvbHl2YXJpYW50LXB1dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjYgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgYmFyKG8pOwor
fQorCitmdW5jdGlvbiBmdXp6KG8pIHsKKyAgICBiYXIobyk7Cit9CisKK2Z1bmN0aW9uIGJhcihv
KSB7CisgICAgby5mID0gNDI7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShmdXp6KTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBvID0ge307Cisg
ICAgZm9vKG8pOworICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIG8uZjsKKyAgICBvID0ge2Y6MjN9OworICAgIHZhciByZXN1bHQgPSBmdXp6
KG8pOworICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3Vs
dDogIiArIG8uZjsKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy90aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGhy
b3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMw
IEBACitmdW5jdGlvbiBmb28oZikgeworICAgIHJldHVybiBmKDEpICsgMTsKK30KKwordmFyIHNo
b3VsZFRocm93ID0gZmFsc2U7CitmdW5jdGlvbiBiYXIoeCkgeworICAgIGlmIChzaG91bGRUaHJv
dykKKyAgICAgICAgdGhyb3cgImhlbGxvIjsKKyAgICByZXR1cm4gNDIgLSB4OworfQorCitub0lu
bGluZShmb28pOworbm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7
ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oYmFyKTsKKyAgICBpZiAocmVzdWx0ICE9IDQy
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3Zh
ciBkaWRUaHJvdzsKK3RyeSB7CisgICAgc2hvdWxkVGhyb3cgPSB0cnVlOworICAgIGZvbyhiYXIp
OworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30KKworaWYgKGRpZFRocm93ICE9
ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhyb3cgb3IgdGhyZXcgd3Jvbmcg
ZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3Qtb3Itc3RyaW5nLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC1v
ci1zdHJpbmcuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3Qtb3Itc3RyaW5nLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMjcgQEAKK2Z1bmN0aW9uIEZvbygpIHsgfQorCitGb28ucHJvdG90eXBlLnRvU3Ry
aW5nID0gZnVuY3Rpb24oKSB7IHJldHVybiAiaGVsbG8iIH07CisKK2Z1bmN0aW9uIGZvbyhvKSB7
CisgICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28obmV3IEZvbygp
KTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmli
ZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7
CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIAorICAgIHJlc3VsdCA9IGZvbygid29ybGQi
KTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmli
ZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7
CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIndvcmxkIikKKyAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5n
LW9uLW9iamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBG
b28oKSB7IH0KKworRm9vLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyByZXR1cm4g
ImhlbGxvIiB9OworCitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBTdHJpbmcobyk7Cit9
CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsK
KyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBGb28oKSk7CisgICAgaWYgKHR5cGVvZiByZXN1bHQg
IT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cg
IkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9
ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
K30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9u
LXN0cmluZy1vYmplY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9iamVjdC5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1v
YmplY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKG8p
IHsKKyAgICByZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgU3Ry
aW5nKCJoZWxsbyIpKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAg
ICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24n
dCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1v
YmplY3QtdGhlbi1vYmplY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QtdGhlbi1v
YmplY3QuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC10aGVuLW9iamVjdC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM1IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJl
dHVybiBTdHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBTdHJpbmcoImhlbGxv
IikpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2Ny
aWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5n
IjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8iKQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgCisgICAgcmVzdWx0ID0gZm9vKCJ3b3Js
ZCIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2Ny
aWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5n
IjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAid29ybGQiKQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIEZvbygpIHsgfQorCitG
b28ucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHJldHVybiAiaGVsbG8iIH07CisK
K3ZhciByZXN1bHQgPSBmb28obmV3IEZvbygpKTsKK2lmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJp
bmciKSB7CisgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBp
c24ndCBhIHN0cmluZyI7Cit9CitpZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmct
b24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9i
amVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACitmdW5jdGlvbiBmb28obykg
eworICAgIHJldHVybiBTdHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBTdHJp
bmcoImhlbGxvIikpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAg
ICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0
IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8iKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgCisgICAgcmVzdWx0ID0g
Zm9vKCJ3b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAg
ICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0
IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAid29ybGQiKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS1vci1zdHJpbmcuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJp
bmctb24tdmFsdWUtb3Itc3RyaW5nLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tdmFsdWUtb3Itc3RyaW5nLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJu
IFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oNDIpOworICAgIGlmICh0eXBlb2Yg
cmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAg
IHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJl
c3VsdCAhPSAiNDIiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7CisgICAgCisgICAgcmVzdWx0ID0gZm9vKCJ3b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVz
dWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRo
cm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3Vs
dCAhPSAid29ybGQiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmlu
Zy1vbi12YWx1ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIFN0cmlu
ZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7
ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oNDIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0
ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93
ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAh
PSAiNDIiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9
CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0No
YW5nZUxvZwkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wMS0yNyAgTWFyayBIYWhuZW5iZXJnICA8
bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIHRoZSBqc0NTdGFjayBicmFu
Y2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc2
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3Rm
L0JhZ1RvSGFzaE1hcC5oOgorICAgICAgICAoV1RGOjp0b0hhc2hNYXApOgorICAgICAgICAqIHd0
Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9TdGFja0JvdW5kcy5oOgorICAgICAgICAoV1RG
OjpTdGFja0JvdW5kczo6cmVjdXJzaW9uTGltaXQpOgorCiAyMDE0LTAxLTI3ICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViQ29yZTogRW5hYmxlIC1X
aW1wbGljaXQtZmFsbHRocm91Z2ggYW5kIGFkZCBGQUxMVEhST1VHSCBhbm5vdGF0aW9uIHdoZXJl
IG5lZWRlZApJbmRleDogU291cmNlL1dURi93dGYvQmFnVG9IYXNoTWFwLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvQmFnVG9IYXNoTWFwLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9XVEYvd3RmL0JhZ1RvSGFzaE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw4ICszMiw4IEBA
CiAKIG5hbWVzcGFjZSBXVEYgewogCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbGVtZW50VHlwZSwgdHlw
ZW5hbWUgS2V5VHlwZSwgdHlwZW5hbWUgS2V5R2V0dGVyRnVuY3Rvcj4KLXZvaWQgdG9IYXNoTWFw
KEJhZzxFbGVtZW50VHlwZT4mIGJhZywgS2V5R2V0dGVyRnVuY3RvciYgZ2V0S2V5LCBIYXNoTWFw
PEtleVR5cGUsIEVsZW1lbnRUeXBlKj4mIHJlc3VsdCkKK3RlbXBsYXRlPHR5cGVuYW1lIEVsZW1l
bnRUeXBlLCB0eXBlbmFtZSBLZXlUeXBlLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlH
ZXR0ZXJGdW5jdG9yPgordm9pZCB0b0hhc2hNYXAoQmFnPEVsZW1lbnRUeXBlPiYgYmFnLCBLZXlH
ZXR0ZXJGdW5jdG9yJiBnZXRLZXksIEhhc2hNYXA8S2V5VHlwZSwgRWxlbWVudFR5cGUqLCBIYXNo
QXJnPiYgcmVzdWx0KQogewogICAgIGZvciAodHlwZW5hbWUgQmFnPEVsZW1lbnRUeXBlPjo6aXRl
cmF0b3IgaXRlciA9IGJhZy5iZWdpbigpOyAhIWl0ZXI7ICsraXRlcikgewogICAgICAgICBFbGVt
ZW50VHlwZSogZWxlbWVudCA9ICppdGVyOwpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxNjI5
MTQpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NjAs
MTIgKzY2MCwxMiBAQAogI2RlZmluZSBFTkFCTEVfSklUIDAKICNlbmRpZgogCi0vKiBUaGUgSklU
IGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LCB4ODYtNjQsIEFSTSAmIE1JUFMgcGxh
dGZvcm1zIGV4Y2VwdCBXaW42NC4gKi8KKy8qIFRoZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZhdWx0
IG9uIGFsbCB4ODYsIHg4Ni02NCwgQVJNICYgTUlQUyBwbGF0Zm9ybXMgZXhjZXB0IFdpbmRvd3Mu
ICovCiAjaWYgIWRlZmluZWQoRU5BQkxFX0pJVCkgXAogICAgICYmIChDUFUoWDg2KSB8fCBDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNKSB8fCBDUFUoQVJNNjQpIHx8IENQVShNSVBTKSkgXAogICAgICYm
IChPUyhEQVJXSU4pIHx8ICFDT01QSUxFUihHQ0MpIHx8IEdDQ19WRVJTSU9OX0FUX0xFQVNUKDQs
IDEsIDApKSBcCiAgICAgJiYgIU9TKFdJTkNFKSBcCi0gICAgJiYgIShPUyhXSU5ET1dTKSAmJiBD
UFUoWDg2XzY0KSkKKyAgICAmJiAhT1MoV0lORE9XUykKICNkZWZpbmUgRU5BQkxFX0pJVCAxCiAj
ZW5kaWYKIApAQCAtODM1LDE0ICs4MzUsNiBAQAogI2VuZGlmCiAjZW5kaWYKIAotLyogRklYTUU6
IFdlIGN1cnJlbnRseSB1bmNvbmRpdGlvbmFsbHkgdXNlIHNwZWFyYXRlIHN0YWNrcy4gV2hlbiB3
ZSBzd2l0Y2ggdG8gdXNpbmcgdGhlCi0gICBDIHN0YWNrIGZvciBKUyBmcmFtZXMsIHdlJ2xsIG5l
ZWQgdG8gbWFrZSB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbmFsIG9uIEVOQUJMRShMTElOVF9DTE9P
UCkKLSAgIG9ubHkuCi0qLwotI2lmIEVOQUJMRShMTElOVF9DTE9PUCkgfHwgMQotI2RlZmluZSBX
VEZfVVNFX1NFUEFSQVRFX0NfQU5EX0pTX1NUQUNLIDEKLSNlbmRpZgotCiAvKiBQaWNrIHdoaWNo
IGFsbG9jYXRvciB0byB1c2U7IHdlIG9ubHkgbmVlZCBhbiBleGVjdXRhYmxlIGFsbG9jYXRvciBp
ZiB0aGUgYXNzZW1ibGVyIGlzIGNvbXBpbGVkIGluLgogICAgT24geDg2LTY0IHdlIHVzZSBhIHNp
bmdsZSBmaXhlZCBtbWFwLCBvbiBvdGhlciBwbGF0Zm9ybXMgd2UgbW1hcCBvbiBkZW1hbmQuICov
CiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1N0YWNrQm91bmRz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaAkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsOCBAQAogI2lmbmRlZiBTdGFja0JvdW5kc19oCiAjZGVmaW5lIFN0YWNrQm91
bmRzX2gKIAorI2luY2x1ZGUgPGFsZ29yaXRobT4KKwogbmFtZXNwYWNlIFdURiB7CiAKIGNsYXNz
IFN0YWNrQm91bmRzIHsKQEAgLTY3LDYgKzY5LDE3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNoYXIqPihtX2JvdW5kKSAtIG1pbkF2YWlsYWJsZURlbHRhOwogICAgIH0K
IAorICAgIHZvaWQqIHJlY3Vyc2lvbkxpbWl0KHNpemVfdCBob3N0Wm9uZVNpemUsIHZvaWQqIGRl
c2lyZWRMaW1pdCkgY29uc3QKKyAgICB7CisgICAgICAgIGNoZWNrQ29uc2lzdGVuY3koKTsKKyAg
ICAgICAgaWYgKGlzR3Jvd2luZ0Rvd253YXJkKCkpIHsKKyAgICAgICAgICAgIGNoYXIqIGVuZE9m
U3RhY2tXaXRoSG9zdFpvbmUgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2JvdW5kKSArIGhv
c3Rab25lU2l6ZTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1heChkZXNpcmVkTGltaXQsIHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGVuZE9mU3RhY2tXaXRoSG9zdFpvbmUpKTsKKyAgICAgICAg
fQorICAgICAgICBjaGFyKiBlbmRPZlN0YWNrV2l0aEhvc3Rab25lID0gcmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4obV9ib3VuZCkgLSBob3N0Wm9uZVNpemU7CisgICAgICAgIHJldHVybiBzdGQ6Om1p
bihkZXNpcmVkTGltaXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGVuZE9mU3RhY2tXaXRoSG9z
dFpvbmUpKTsKKyAgICB9CisKICAgICBib29sIGlzR3Jvd2luZ0Rvd253YXJkKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIEFTU0VSVChtX29yaWdpbiAmJiBtX2JvdW5kKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE0LTAxLTI3ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFo
bmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5jaAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzYzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBGb3J3YXJk
aW5nSGVhZGVycy9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5oOgorICAgICAgICAq
IEZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHRCcmVha3BvaW50Lmg6CisgICAgICAg
ICogRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaDoKKyAg
ICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy95YXJyL1JlZ3VsYXJFeHByZXNzaW9u
Lmg6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydEV4Y2Vw
dGlvbik6CisKIDIwMTQtMDEtMjcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkIGlPUyBidWlsZCBmaXguIEZBTExUSFJPVUdIcyBmb3Ig
aU9TLgpJbmRleDogU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9FcnJv
ckhhbmRsaW5nU2NvcGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfRXJy
b3JIYW5kbGluZ1Njb3BlX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfRXJyb3JIYW5kbGluZ1Njb3Bl
X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FcnJvckhhbmRsaW5nU2NvcGUuaD4KKyNlbmRp
ZgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xODUwMiw2ICsxODUwMiw3IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXENvbnN0
cnVjdERhdGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWVcRGF0ZUluc3RhbmNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGlt
ZVxFcnJvclByb3RvdHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2Fy
ZGluZ0hlYWRlcnNccnVudGltZVxFeGNlcHRpb25IZWxwZXJzLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEV4ZWN1dGFibGUuaCIgLz4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAt
MTI0OTIsNiArMTI0OTIsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGlu
Z0hlYWRlcnNccnVudGltZVxFcnJvci5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUuaCI+
CisgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJz
XHJ1bnRpbWVcRXJyb3JQcm90b3R5cGUuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGludGVycHJldGVyL0ludGVycHJldGVyLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9EYXRlSW5zdGFuY2UuaD4KICNpbmNsdWRlIDxydW50aW1lL0Vy
cm9yLmg+CisjaW5jbHVkZSA8cnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaD4KICNpbmNsdWRl
IDxydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtMTU0LDcgKzE1NSw3IEBAIHZv
aWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlMKICAgICBpZiAoaXNUZXJtaW5h
dGVkRXhlY3V0aW9uRXhjZXB0aW9uKGV4Y2VwdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAg
IEludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZSBtb2RlKGV4ZWMpOworICAgIEVycm9ySGFu
ZGxpbmdTY29wZSBlcnJvclNjb3BlKGV4ZWMtPnZtKCkpOwogCiAgICAgUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zyb21FeGNlcHRpb24oZXhl
YywgZXhjZXB0aW9uLCBTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUp
KTsKICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTE0KQorKysgVG9vbHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDEtMjcgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSB0
aGUganNDU3RhY2sgYnJhbmNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjc3NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNjcmlwdHMvZGlzcGxheS1wcm9maWxlci1vdXRwdXQ6CisgICAgICAgICog
U2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAxNC0wMS0yNyAgRGF2aWQgRmFybGVy
ICA8ZGZhcmxlckBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIER1bXBSZW5kZXJUcmVlLmFwcCBk
aWVzIGxvYWRpbmcgZm9udHMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxlci1v
dXRwdXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9kaXNwbGF5LXByb2ZpbGVyLW91dHB1
dAkocmV2aXNpb24gMTYyOTE0KQorKysgVG9vbHMvU2NyaXB0cy9kaXNwbGF5LXByb2ZpbGVyLW91
dHB1dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKICMhL3Vzci9iaW4vZW52IHJ1YnkK
IAotIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MzcsNyArNDM3
LDExIEBAICRjb21waWxhdGlvbnMgPSAkanNvblsiY29tcGlsYXRpb25zIl0ubWEKICAgICB8IHN1
Ykpzb24gfAogICAgIENvbXBpbGF0aW9uLm5ldyhzdWJKc29uKQogfQotJGVuZ2luZXMgPSBbIkJh
c2VsaW5lIiwgIkRGRyJdCiskZW5naW5lcyA9IFsiQmFzZWxpbmUiLCAiREZHIiwgIkZUTCIsICJG
VExGb3JPU1JFbnRyeSJdCisKK2RlZiBpc09wdGltaXppbmcoZW5naW5lKQorICAgIGVuZ2luZSA9
PSAiREZHIiBvciBlbmdpbmUgPT0gIkZUTCIgb3IgZW5naW5lID09ICJGVExGb3JPU1JFbnRyeSIK
K2VuZAogCiAkc2hvd0NvdW50cyA9IHRydWUKICRzb3J0TW9kZSA9IDp0aW1lCkBAIC01NzIsOSAr
NTc2LDkgQEAgZGVmIHN1bW1hcnkobW9kZSkKICAgICBpZiBtb2RlID09IDpmdWxsCiAgICAgICAg
IHByaW50KCIgIiArICgiICIgKiBpbnN0cnVjdGlvbkNvdW50Q29scykpCiAgICAgZW5kCi0gICAg
cHJpbnQoIiAiICsgY2VudGVyKCJCYXNlL0RGRyIsIGNvdW50Q29scykpCisgICAgcHJpbnQoIiAi
ICsgY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgY291bnRDb2xzKSkKICAgICBpZiBtb2Rl
ID09IDpmdWxsCi0gICAgICAgIHByaW50KCIgIiArIGNlbnRlcigiQmFzZS9ERkciLCBtYWNoaW5l
Q291bnRDb2xzKSkKKyAgICAgICAgcHJpbnQoIiAiICsgY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRM
T1NSIiwgbWFjaGluZUNvdW50Q29scykpCiAgICAgICAgIHByaW50KCIgIiArICgiICIgKiBjb21w
aWxhdGlvbnNDb2xzKSkKICAgICAgICAgcHJpbnQoIiAiICsgY2VudGVyKCJTcmMvVG90YWwiLCBp
bmxpbmVzQ29scykpCiAgICAgICAgIHByaW50KCIgIiArICgiICIgKiBleGl0Q291bnRDb2xzKSkK
QEAgLTY3NCw3ICs2NzgsNyBAQCBkZWYgZXhlY3V0ZUNvbW1hbmQoKmNvbW1hbmRBcnJheSkKICAg
ICAgICAgICAgIGlmICRzaG93Q291bnRzCiAgICAgICAgICAgICAgICAgcHV0cyhjZW50ZXIoIlNv
dXJjZSBDb3VudHMiLCBjb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJNYWNoaW5lIENvdW50cyIs
IG1hY2hpbmVDb2xzKSArCiAgICAgICAgICAgICAgICAgICAgICAoIiAiICogcGFkKSArIGNlbnRl
cigiQnl0ZWNvZGUgZm9yICN7Ynl0ZWNvZGVzfSIsIHNjcmVlbldpZHRoIC0gcGFkIC0gY291bnRD
b2xzIC0gMSAtIG1hY2hpbmVDb2xzKSkKLSAgICAgICAgICAgICAgICBwdXRzKGNlbnRlcigiQmFz
ZS9ERkciLCBjb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RGRyIsIGNvdW50Q29scykp
CisgICAgICAgICAgICAgICAgcHV0cyhjZW50ZXIoIkJhc2UvREZHL0ZUTC9GVExPU1IiLCBjb3Vu
dENvbHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgY291bnRDb2xzKSkK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBwdXRzKCJCeXRlY29kZSBmb3IgI3ti
eXRlY29kZXN9OiIpCiAgICAgICAgICAgICBlbmQKQEAgLTg5NCw3ICs4OTgsNyBAQCBkZWYgZXhl
Y3V0ZUNvbW1hbmQoKmNvbW1hbmRBcnJheSkKICAgICAgICAgICAgIHB1dHMoIkNvbXBpbGF0aW9u
ICN7Y29tcGlsYXRpb259OiIpCiAgICAgICAgICAgICBpZiAkc2hvd0NvdW50cwogICAgICAgICAg
ICAgICAgIHB1dHMoY2VudGVyKCJBY3R1YWwgQ291bnRzIiwgYWN0dWFsQ291bnRDb2xzKSArICIg
IiArIGNlbnRlcigiU291cmNlIENvdW50cyIsIHNvdXJjZUNvdW50Q29scykgKyAiICIgKyBjZW50
ZXIoIkRpc2Fzc2VtYmx5IGluICN7Y29tcGlsYXRpb24uZW5naW5lfSIsIHNjcmVlbldpZHRoIC0g
MSAtIHNvdXJjZUNvdW50Q29scyAtIDEgLSBhY3R1YWxDb3VudENvbHMpKQotICAgICAgICAgICAg
ICAgIHB1dHMoKCIgIiAqIGFjdHVhbENvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJhc2UvREZH
Iiwgc291cmNlQ291bnRDb2xzKSkKKyAgICAgICAgICAgICAgICBwdXRzKCgiICIgKiBhY3R1YWxD
b3VudENvbHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgc291cmNlQ291
bnRDb2xzKSkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBwdXRzKCJEaXNhc3Nl
bWJseSBpbiAje2NvbXBpbGF0aW9uLmVuZ2luZX0iKQogICAgICAgICAgICAgZW5kCkBAIC05MDUs
MTEgKzkwOSwxNSBAQCBkZWYgZXhlY3V0ZUNvbW1hbmQoKmNvbW1hbmRBcnJheSkKICAgICAgICAg
ICAgICAgICB8IGRlc2NyaXB0aW9uIHwKICAgICAgICAgICAgICAgICAjIEZJWE1FOiBXZSBzaG91
bGQgaGF2ZSBhIGJldHRlciB3YXkgb2YgZGV0ZWN0aW5nIHRoaW5ncyBsaWtlIENvdW50RXhlY3V0
aW9uIG5vZGVzCiAgICAgICAgICAgICAgICAgIyBhbmQgc2xvdyBwYXRoIGVudHJpZXMgaW4gdGhl
IGJhc2VsaW5lIEpJVC4KLSAgICAgICAgICAgICAgICBpZiBkZXNjcmlwdGlvbi5kZXNjcmlwdGlv
biA9fiAvQ291bnRFeGVjdXRpb25cKC8gYW5kIGNvbXBpbGF0aW9uLmVuZ2luZSA9PSAiREZHIgor
ICAgICAgICAgICAgICAgIGlmIGRlc2NyaXB0aW9uLmRlc2NyaXB0aW9uID1+IC9Db3VudEV4ZWN1
dGlvblwoLyBhbmQgaXNPcHRpbWl6aW5nKGNvbXBpbGF0aW9uLmVuZ2luZSkKICAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlCiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgICAgICBzaG91bGRTaG93ID0gdHJ1ZQogICAgICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgICAgIGlmIG5vdCBkZXNjcmlwdGlvbi5vcmlnaW4uZW1wdHk/IGFuZCBub3QgZGVz
Y3JpcHRpb24ub3JpZ2luWy0xXQorICAgICAgICAgICAgICAgICAgICBwIGRlc2NyaXB0aW9uLm9y
aWdpbgorICAgICAgICAgICAgICAgICAgICBwIGRlc2NyaXB0aW9uLmRlc2NyaXB0aW9uCisgICAg
ICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24ub3JpZ2luLmVt
cHR5PyBvciBub3QgZGVzY3JpcHRpb24ub3JpZ2luWy0xXS5zaG91bGRIYXZlQ291bnRzPyBvciAo
Y29tcGlsYXRpb24uZW5naW5lID09ICJCYXNlbGluZSIgYW5kIGRlc2NyaXB0aW9uLmRlc2NyaXB0
aW9uID1+IC9eXHMqXChTXCkvKQogICAgICAgICAgICAgICAgICAgICBhY3R1YWxDb3VudHNTdHJp
bmcgPSAiIgogICAgICAgICAgICAgICAgICAgICBzb3VyY2VDb3VudHNTdHJpbmcgPSAiIgpJbmRl
eDogVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCShyZXZpc2lvbiAxNjI5MTQpCisrKyBUb29s
cy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiAr
MTgwLDggQEAgJG51bUZhaWx1cmVzID0gMAogCiBFQUdFUl9PUFRJT05TID0gWyItLXRocmVzaG9s
ZEZvckpJVEFmdGVyV2FybVVwPTEwIiwgIi0tdGhyZXNob2xkRm9ySklUU29vbj0xMCIsICItLXRo
cmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXA9MjAiLCAiLS10aHJlc2hvbGRGb3JPcHRpbWl6
ZUFmdGVyTG9uZ1dhcm1VcD0yMCIsICItLXRocmVzaG9sZEZvck9wdGltaXplU29vbj0yMCIsICIt
LXRocmVzaG9sZEZvckZUTE9wdGltaXplQWZ0ZXJXYXJtVXA9MjAiLCAiLS10aHJlc2hvbGRGb3JG
VExPcHRpbWl6ZVNvb249MjAiXQogCitGVExfT1BUSU9OUyA9IFsiLS11c2VFeHBlcmltZW50YWxG
VEw9dHJ1ZSIsICItLWVuYWJsZUV4cGVyaW1lbnRhbEZUTENvdmVyYWdlPXRydWUiXQorCiAkcnVu
bGlzdCA9IFtdCiAKIGRlZiBmcmFtZXdvcmtGcm9tSlNDUGF0aChqc2NQYXRoKQpAQCAtNTMyLDE5
ICs1MzQsMTkgQEAgZGVmIHJ1bk5vQ0pJVFZhbGlkYXRlUGhhc2VzCiBlbmQKIAogZGVmIHJ1bkRl
ZmF1bHRGVEwKLSAgICBydW4oImRlZmF1bHQtZnRsIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRy
dWUiKQorICAgIHJ1bigiZGVmYXVsdC1mdGwiLCAqRlRMX09QVElPTlMpCiBlbmQKIAogZGVmIHJ1
bkZUTE5vQ0pJVAotICAgIHJ1bigiZnRsLW5vLWNqaXQiLCAiLS1lbmFibGVDb25jdXJyZW50SklU
PWZhbHNlIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiKQorICAgIHJ1bigiZnRsLW5vLWNq
aXQiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgKkZUTF9PUFRJT05TKQogZW5kCiAK
IGRlZiBydW5GVExOb0NKSVRWYWxpZGF0ZQotICAgIHJ1bigiZnRsLW5vLWNqaXQtdmFsaWRhdGUi
LCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRy
dWUiLCAiLS12YWxpZGF0ZUdyYXBoPXRydWUiKQorICAgIHJ1bigiZnRsLW5vLWNqaXQtdmFsaWRh
dGUiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVHcmFwaD10cnVl
IiwgKkZUTF9PUFRJT05TKQogZW5kCiAKIGRlZiBydW5GVExOb0NKSVRPU1JWYWxpZGF0aW9uCi0g
ICAgcnVuKCJmdGwtbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLWVuYWJsZUNvbmN1cnJlbnRK
SVQ9ZmFsc2UiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIsICItLXZhbGlkYXRlRlRMT1NS
RXhpdExpdmVuZXNzPXRydWUiKQorICAgIHJ1bigiZnRsLW5vLWNqaXQtb3NyLXZhbGlkYXRpb24i
LCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVGVExPU1JFeGl0TGl2
ZW5lc3M9dHJ1ZSIsICpGVExfT1BUSU9OUykKIGVuZAogCiBkZWYgcnVuREZHRWFnZXIKQEAgLTU1
NiwxNSArNTU4LDE1IEBAIGRlZiBydW5ERkdFYWdlck5vQ0pJVFZhbGlkYXRlCiBlbmQKIAogZGVm
IHJ1bkZUTEVhZ2VyCi0gICAgcnVuKCJmdGwtZWFnZXIiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9
dHJ1ZSIsICpFQUdFUl9PUFRJT05TKQorICAgIHJ1bigiZnRsLWVhZ2VyIiwgKihGVExfT1BUSU9O
UyArIEVBR0VSX09QVElPTlMpKQogZW5kCiAKIGRlZiBydW5GVExFYWdlck5vQ0pJVFZhbGlkYXRl
Ci0gICAgcnVuKCJmdGwtZWFnZXItbm8tY2ppdCIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVl
IiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIs
ICpFQUdFUl9PUFRJT05TKQorICAgIHJ1bigiZnRsLWVhZ2VyLW5vLWNqaXQiLCAiLS1lbmFibGVD
b25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVHcmFwaD10cnVlIiwgKihGVExfT1BUSU9O
UyArIEVBR0VSX09QVElPTlMpKQogZW5kCiAKIGRlZiBydW5GVExFYWdlck5vQ0pJVE9TUlZhbGlk
YXRpb24KLSAgICBydW4oImZ0bC1lYWdlci1uby1jaml0LW9zci12YWxpZGF0aW9uIiwgIi0tdXNl
RXhwZXJpbWVudGFsRlRMPXRydWUiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0t
dmFsaWRhdGVGVExPU1JFeGl0TGl2ZW5lc3M9dHJ1ZSIsICpFQUdFUl9PUFRJT05TKQorICAgIHJ1
bigiZnRsLWVhZ2VyLW5vLWNqaXQtb3NyLXZhbGlkYXRpb24iLCAiLS1lbmFibGVDb25jdXJyZW50
SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVGVExPU1JFeGl0TGl2ZW5lc3M9dHJ1ZSIsICooRlRMX09Q
VElPTlMgKyBFQUdFUl9PUFRJT05TKSkKIGVuZAogCiBkZWYgcnVuQWx3YXlzVHJpZ2dlckNvcHlQ
aGFzZQpAQCAtNjQ2LDEzICs2NDgsMzQgQEAgZGVmIHJ1bkxheW91dFRlc3RERkdFYWdlck5vQ0pJ
VAogICAgIHJ1bkxheW91dFRlc3QoImRmZy1lYWdlci1uby1jaml0IiwgIi0tZW5hYmxlQ29uY3Vy
cmVudEpJVD1mYWxzZSIsICpFQUdFUl9PUFRJT05TKQogZW5kCiAKLWRlZiBkZWZhdWx0UnVuTGF5
b3V0VGVzdAorZGVmIHJ1bkxheW91dFRlc3REZWZhdWx0RlRMCisgICAgcnVuTGF5b3V0VGVzdCgi
ZnRsIiwgIi0tdGVzdFRoZUZUTD10cnVlIiwgKkZUTF9PUFRJT05TKQorZW5kCisKK2RlZiBydW5M
YXlvdXRUZXN0RlRMTm9DSklUCisgICAgcnVuTGF5b3V0VGVzdCgiZnRsLW5vLWNqaXQiLCAiLS10
ZXN0VGhlRlRMPXRydWUiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgKkZUTF9PUFRJ
T05TKQorZW5kCisKK2RlZiBydW5MYXlvdXRUZXN0RlRMRWFnZXJOb0NKSVQKKyAgICBydW5MYXlv
dXRUZXN0KCJmdGwtZWFnZXItbm8tY2ppdCIsICItLXRlc3RUaGVGVEw9dHJ1ZSIsICItLWVuYWJs
ZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgRUFHRVJfT1BUSU9OUykpCitl
bmQKKworZGVmIG5vRlRMUnVuTGF5b3V0VGVzdAogICAgIHJ1bkxheW91dFRlc3REZWZhdWx0CiAg
ICAgcnVuTGF5b3V0VGVzdE5vTExJbnQKICAgICBydW5MYXlvdXRUZXN0Tm9DSklUCiAgICAgcnVu
TGF5b3V0VGVzdERGR0VhZ2VyTm9DSklUCiBlbmQKIAorZGVmIGRlZmF1bHRSdW5MYXlvdXRUZXN0
CisgICAgbm9GVExSdW5MYXlvdXRUZXN0CisgICAgaWYgJGVuYWJsZUZUTAorICAgICAgICBydW5M
YXlvdXRUZXN0RGVmYXVsdEZUTAorICAgICAgICBydW5MYXlvdXRUZXN0RlRMTm9DSklUCisgICAg
ICAgIHJ1bkxheW91dFRlc3RGVExFYWdlck5vQ0pJVAorICAgIGVuZAorZW5kCisKIGRlZiBwcmVw
YXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGV4dHJhRmlsZXMsIGRlc3RpbmF0aW9uKQogICAgIERpci5j
aGRpcigkb3V0cHV0RGlyKSB7CiAgICAgICAgIGV4dHJhRmlsZXMuZWFjaCB7CkBAIC03MDYsNiAr
NzI5LDEwIEBAIGRlZiBydW5Nb3ppbGxhVGVzdERlZmF1bHQobW9kZSwgKmV4dHJhRmkKICAgICBy
dW5Nb3ppbGxhVGVzdChuaWwsIG1vZGUsIGV4dHJhRmlsZXMpCiBlbmQKIAorZGVmIHJ1bk1vemls
bGFUZXN0RGVmYXVsdEZUTChtb2RlLCAqZXh0cmFGaWxlcykKKyAgICBydW5Nb3ppbGxhVGVzdCgi
ZnRsIiwgbW9kZSwgZXh0cmFGaWxlcywgKkZUTF9PUFRJT05TKQorZW5kCisKIGRlZiBydW5Nb3pp
bGxhVGVzdExMSW50KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0KCJsbGlu
dCIsIG1vZGUsIGV4dHJhRmlsZXMsICItLXVzZUpJVD1mYWxzZSIpCiBlbmQKQEAgLTcxOCwxMSAr
NzQ1LDE5IEBAIGRlZiBydW5Nb3ppbGxhVGVzdERGR0VhZ2VyTm9DSklUVmFsaWRhdGUKICAgICBy
dW5Nb3ppbGxhVGVzdCgiZGZnLWVhZ2VyLW5vLWNqaXQtdmFsaWRhdGUtcGhhc2VzIiwgbW9kZSwg
ZXh0cmFGaWxlcywgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlQnl0
ZWNvZGU9dHJ1ZSIsICItLXZhbGlkYXRlR3JhcGhBdEVhY2hQaGFzZT10cnVlIiwgKkVBR0VSX09Q
VElPTlMpCiBlbmQKIAorZGVmIHJ1bk1vemlsbGFUZXN0RlRMRWFnZXJOb0NKSVRWYWxpZGF0ZVBo
YXNlcyhtb2RlLCAqZXh0cmFGaWxlcykKKyAgICBydW5Nb3ppbGxhVGVzdCgiZnRsLWVhZ2VyLW5v
LWNqaXQtdmFsaWRhdGUtcGhhc2VzIiwgbW9kZSwgZXh0cmFGaWxlcywgIi0tZW5hYmxlQ29uY3Vy
cmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlQnl0ZWNvZGU9dHJ1ZSIsICItLXZhbGlkYXRlR3Jh
cGhBdEVhY2hQaGFzZT10cnVlIiwgKihGVExfT1BUSU9OUyArIEVBR0VSX09QVElPTlMpKQorZW5k
CisKIGRlZiBkZWZhdWx0UnVuTW96aWxsYVRlc3QobW9kZSwgKmV4dHJhRmlsZXMpCiAgICAgcnVu
TW96aWxsYVRlc3REZWZhdWx0KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0
TExJbnQobW9kZSwgKmV4dHJhRmlsZXMpCiAgICAgcnVuTW96aWxsYVRlc3RCYXNlbGluZUpJVCht
b2RlLCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVzdERGR0VhZ2VyTm9DSklUVmFsaWRh
dGVQaGFzZXMobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgaWYgJGVuYWJsZUZUTAorICAgICAgICBy
dW5Nb3ppbGxhVGVzdERlZmF1bHRGVEwobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgICAgIHJ1bk1v
emlsbGFUZXN0RlRMRWFnZXJOb0NKSVRWYWxpZGF0ZVBoYXNlcyhtb2RlLCAqZXh0cmFGaWxlcykK
KyAgICBlbmQKIGVuZAogCiBkZWYgc2tpcApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTE0KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTQtMDEtMjcgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBNZXJnZSB0aGUganNDU3RhY2sgYnJhbmNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIu
anM6CisgICAgICAgICoganMvcmVncmVzcy9zdGVwYW5vdl9jb250YWluZXItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLmh0bWw6CisgICAgICAg
ICoganMvc2NyaXB0LXRlc3RzL2RmZy1hZGQtbm90LW51bWJlci5qczoKKyAgICAgICAgKiBqcy9z
Y3JpcHQtdGVzdHMvbGFyZ2UtZXhwcmVzc2lvbnMuanM6CisKIDIwMTQtMDEtMjcgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogY2xlYW4gdXAg
aW5pdGlhbGl6YXRpb24gb2YgbWFuYWdlcnMgYW5kIG9ic2VydmVycyBpbiBJbnNwZWN0b3JUZXN0
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBMYXlvdXRUZXN0cy9qcy9sYXJnZS1leHByZXNzaW9ucy1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBAIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogUEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lv
bigibGV0dGVyQSIsICIrIiwgMTAwKSkgaXMgcmVwZWF0ZWRTdHJpbmcoImEiLCAxMDApCiBQQVNT
IGV2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwKSkgaXMgcmVwZWF0
ZWRTdHJpbmcoImEiLCAxMDAwKQotUEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVy
QSIsICIrIiwgMTAwMDApKSBpcyByZXBlYXRlZFN0cmluZygiYSIsIDEwMDAwKQorUEFTUyBldmFs
KHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDApKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCiBQQVNTIGV2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJs
ZXR0ZXJBIiwgIisiLCAxMDAwMDApKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1v
cnkuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKSW5kZXg6IExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29u
dGFpbmVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1KU1Jl
Z3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBh
bm92X2NvbnRhaW5lci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c3RlcGFub3ZfY29udGFpbmVyLmh0bWwJKHJldmlzaW9uIDE2MjkxNCkKKysrIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3Rl
cGFub3ZfY29udGFpbmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdGVwYW5vdl9jb250
YWluZXIuanMJKHJldmlzaW9uIDE2MjkxNCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw2NDA0
ICswLDAgQEAKLS8vQCBzbG93IQotLy9AIHJ1bkRlZmF1bHQKLS8vQCBydW5EZWZhdWx0RlRMIGlm
ICRlbmFibGVGVEwKLQotLy8gTm90ZTogRm9yIG1heGltdW0tc3BlZWQgY29kZSwgc2VlICJPcHRp
bWl6aW5nIENvZGUiIG9uIHRoZSBFbXNjcmlwdGVuIHdpa2ksIGh0dHBzOi8vZ2l0aHViLmNvbS9r
cmlwa2VuL2Vtc2NyaXB0ZW4vd2lraS9PcHRpbWl6aW5nLUNvZGUKLS8vIE5vdGU6IFNvbWUgRW1z
Y3JpcHRlbiBzZXR0aW5ncyBtYXkgbGltaXQgdGhlIHNwZWVkIG9mIHRoZSBnZW5lcmF0ZWQgY29k
ZS4KLS8vIFRoZSBNb2R1bGUgb2JqZWN0OiBPdXIgaW50ZXJmYWNlIHRvIHRoZSBvdXRzaWRlIHdv
cmxkLiBXZSBpbXBvcnQKLS8vIGFuZCBleHBvcnQgdmFsdWVzIG9uIGl0LCBhbmQgZG8gdGhlIHdv
cmsgdG8gZ2V0IHRoYXQgdGhyb3VnaAotLy8gY2xvc3VyZSBjb21waWxlciBpZiBuZWNlc3Nhcnku
IFRoZXJlIGFyZSB2YXJpb3VzIHdheXMgTW9kdWxlIGNhbiBiZSB1c2VkOgotLy8gMS4gTm90IGRl
ZmluZWQuIFdlIGNyZWF0ZSBpdCBoZXJlCi0vLyAyLiBBIGZ1bmN0aW9uIHBhcmFtZXRlciwgZnVu
Y3Rpb24oTW9kdWxlKSB7IC4uZ2VuZXJhdGVkIGNvZGUuLiB9Ci0vLyAzLiBwcmUtcnVuIGFwcGVu
ZGVkIGl0LCB2YXIgTW9kdWxlID0ge307IC4uZ2VuZXJhdGVkIGNvZGUuLgotLy8gNC4gRXh0ZXJu
YWwgc2NyaXB0IHRhZyBkZWZpbmVzIHZhciBNb2R1bGUuCi0vLyBXZSBuZWVkIHRvIGRvIGFuIGV2
YWwgaW4gb3JkZXIgdG8gaGFuZGxlIHRoZSBjbG9zdXJlIGNvbXBpbGVyCi0vLyBjYXNlLCB3aGVy
ZSB0aGlzIGNvZGUgaGVyZSBpcyBtaW5pZmllZCBidXQgTW9kdWxlIHdhcyBkZWZpbmVkCi0vLyBl
bHNld2hlcmUgKGUuZy4gY2FzZSA0IGFib3ZlKS4gV2UgYWxzbyBuZWVkIHRvIGNoZWNrIGlmIE1v
ZHVsZQotLy8gYWxyZWFkeSBleGlzdHMgKGUuZy4gY2FzZSAzIGFib3ZlKS4KLS8vIE5vdGUgdGhh
dCBpZiB5b3Ugd2FudCB0byBydW4gY2xvc3VyZSwgYW5kIGFsc28gdG8gdXNlIE1vZHVsZQotLy8g
YWZ0ZXIgdGhlIGdlbmVyYXRlZCBjb2RlLCB5b3Ugd2lsbCBuZWVkIHRvIGRlZmluZSAgIHZhciBN
b2R1bGUgPSB7fTsKLS8vIGJlZm9yZSB0aGUgY29kZS4gVGhlbiB0aGF0IG9iamVjdCB3aWxsIGJl
IHVzZWQgaW4gdGhlIGNvZGUsIGFuZCB5b3UKLS8vIGNhbiBjb250aW51ZSB0byB1c2UgTW9kdWxl
IGFmdGVyd2FyZHMgYXMgd2VsbC4KLXZhciBNb2R1bGU7Ci1pZiAoIU1vZHVsZSkgTW9kdWxlID0g
ZXZhbCgnKGZ1bmN0aW9uKCkgeyB0cnkgeyByZXR1cm4gTW9kdWxlIHx8IHt9IH0gY2F0Y2goZSkg
eyByZXR1cm4ge30gfSB9KSgpJyk7Ci0vLyBTb21ldGltZXMgYW4gZXhpc3RpbmcgTW9kdWxlIG9i
amVjdCBleGlzdHMgd2l0aCBwcm9wZXJ0aWVzCi0vLyBtZWFudCB0byBvdmVyd3JpdGUgdGhlIGRl
ZmF1bHQgbW9kdWxlIGZ1bmN0aW9uYWxpdHkuIEhlcmUKLS8vIHdlIGNvbGxlY3QgdGhvc2UgcHJv
cGVydGllcyBhbmQgcmVhcHBseSBfYWZ0ZXJfIHdlIGNvbmZpZ3VyZQotLy8gdGhlIGN1cnJlbnQg
ZW52aXJvbm1lbnQncyBkZWZhdWx0cyB0byBhdm9pZCBoYXZpbmcgdG8gYmUgc28KLS8vIGRlZmVu
c2l2ZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCi12YXIgbW9kdWxlT3ZlcnJpZGVzID0ge307Ci1m
b3IgKHZhciBrZXkgaW4gTW9kdWxlKSB7Ci0gIGlmIChNb2R1bGUuaGFzT3duUHJvcGVydHkoa2V5
KSkgewotICAgIG1vZHVsZU92ZXJyaWRlc1trZXldID0gTW9kdWxlW2tleV07Ci0gIH0KLX0KLS8v
IFRoZSBlbnZpcm9ubWVudCBzZXR1cCBjb2RlIGJlbG93IGlzIGN1c3RvbWl6ZWQgdG8gdXNlIE1v
ZHVsZS4KLS8vICoqKiBFbnZpcm9ubWVudCBzZXR1cCBjb2RlICoqKgotdmFyIEVOVklST05NRU5U
X0lTX05PREUgPSB0eXBlb2YgcHJvY2VzcyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHJlcXVpcmUg
PT09ICdmdW5jdGlvbic7Ci12YXIgRU5WSVJPTk1FTlRfSVNfV0VCID0gdHlwZW9mIHdpbmRvdyA9
PT0gJ29iamVjdCc7Ci12YXIgRU5WSVJPTk1FTlRfSVNfV09SS0VSID0gdHlwZW9mIGltcG9ydFNj
cmlwdHMgPT09ICdmdW5jdGlvbic7Ci12YXIgRU5WSVJPTk1FTlRfSVNfU0hFTEwgPSAhRU5WSVJP
Tk1FTlRfSVNfV0VCICYmICFFTlZJUk9OTUVOVF9JU19OT0RFICYmICFFTlZJUk9OTUVOVF9JU19X
T1JLRVI7Ci1pZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewotICAvLyBFeHBvc2UgZnVuY3Rpb25h
bGl0eSBpbiB0aGUgc2FtZSBzaW1wbGUgd2F5IHRoYXQgdGhlIHNoZWxscyB3b3JrCi0gIC8vIE5v
dGUgdGhhdCB3ZSBwb2xsdXRlIHRoZSBnbG9iYWwgbmFtZXNwYWNlIGhlcmUsIG90aGVyd2lzZSB3
ZSBicmVhayBpbiBub2RlCi0gIE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9uKHgpIHsKLSAgICBw
cm9jZXNzWydzdGRvdXQnXS53cml0ZSh4ICsgJ1xuJyk7Ci0gIH07Ci0gIE1vZHVsZVsncHJpbnRF
cnInXSA9IGZ1bmN0aW9uKHgpIHsKLSAgICBwcm9jZXNzWydzdGRlcnInXS53cml0ZSh4ICsgJ1xu
Jyk7Ci0gIH07Ci0gIHZhciBub2RlRlMgPSByZXF1aXJlKCdmcycpOwotICB2YXIgbm9kZVBhdGgg
PSByZXF1aXJlKCdwYXRoJyk7Ci0gIE1vZHVsZVsncmVhZCddID0gZnVuY3Rpb24oZmlsZW5hbWUs
IGJpbmFyeSkgewotICAgIGZpbGVuYW1lID0gbm9kZVBhdGhbJ25vcm1hbGl6ZSddKGZpbGVuYW1l
KTsKLSAgICB2YXIgcmV0ID0gbm9kZUZTWydyZWFkRmlsZVN5bmMnXShmaWxlbmFtZSk7Ci0gICAg
Ly8gVGhlIHBhdGggaXMgYWJzb2x1dGUgaWYgdGhlIG5vcm1hbGl6ZWQgdmVyc2lvbiBpcyB0aGUg
c2FtZSBhcyB0aGUgcmVzb2x2ZWQuCi0gICAgaWYgKCFyZXQgJiYgZmlsZW5hbWUgIT0gbm9kZVBh
dGhbJ3Jlc29sdmUnXShmaWxlbmFtZSkpIHsKLSAgICAgIGZpbGVuYW1lID0gcGF0aC5qb2luKF9f
ZGlybmFtZSwgJy4uJywgJ3NyYycsIGZpbGVuYW1lKTsKLSAgICAgIHJldCA9IG5vZGVGU1sncmVh
ZEZpbGVTeW5jJ10oZmlsZW5hbWUpOwotICAgIH0KLSAgICBpZiAocmV0ICYmICFiaW5hcnkpIHJl
dCA9IHJldC50b1N0cmluZygpOwotICAgIHJldHVybiByZXQ7Ci0gIH07Ci0gIE1vZHVsZVsncmVh
ZEJpbmFyeSddID0gZnVuY3Rpb24oZmlsZW5hbWUpIHsgcmV0dXJuIE1vZHVsZVsncmVhZCddKGZp
bGVuYW1lLCB0cnVlKSB9OwotICBNb2R1bGVbJ2xvYWQnXSA9IGZ1bmN0aW9uKGYpIHsKLSAgICBn
bG9iYWxFdmFsKHJlYWQoZikpOwotICB9OwotICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gcHJvY2Vz
c1snYXJndiddLnNsaWNlKDIpOwotICBtb2R1bGUuZXhwb3J0cyA9IE1vZHVsZTsKLX0KLWVsc2Ug
aWYgKEVOVklST05NRU5UX0lTX1NIRUxMKSB7Ci0gIE1vZHVsZVsncHJpbnQnXSA9IHByaW50Owot
ICBpZiAodHlwZW9mIHByaW50RXJyICE9ICd1bmRlZmluZWQnKSBNb2R1bGVbJ3ByaW50RXJyJ10g
PSBwcmludEVycjsgLy8gbm90IHByZXNlbnQgaW4gdjggb3Igb2xkZXIgc20KLSAgaWYgKHR5cGVv
ZiByZWFkICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgTW9kdWxlWydyZWFkJ10gPSByZWFkOwotICB9
IGVsc2UgewotICAgIE1vZHVsZVsncmVhZCddID0gZnVuY3Rpb24oKSB7IHRocm93ICdubyByZWFk
KCkgYXZhaWxhYmxlIChqc2M/KScgfTsKLSAgfQotICBNb2R1bGVbJ3JlYWRCaW5hcnknXSA9IGZ1
bmN0aW9uKGYpIHsKLSAgICByZXR1cm4gcmVhZChmLCAnYmluYXJ5Jyk7Ci0gIH07Ci0gIGlmICh0
eXBlb2Ygc2NyaXB0QXJncyAhPSAndW5kZWZpbmVkJykgewotICAgIE1vZHVsZVsnYXJndW1lbnRz
J10gPSBzY3JpcHRBcmdzOwotICB9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudHMgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gYXJndW1lbnRzOwotICB9Ci0gIHRo
aXNbJ01vZHVsZSddID0gTW9kdWxlOwotfQotZWxzZSBpZiAoRU5WSVJPTk1FTlRfSVNfV0VCIHx8
IEVOVklST05NRU5UX0lTX1dPUktFUikgewotICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKHVy
bCkgewotICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub3Blbign
R0VUJywgdXJsLCBmYWxzZSk7Ci0gICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgcmV0dXJuIHhoci5y
ZXNwb25zZVRleHQ7Ci0gIH07Ci0gIGlmICh0eXBlb2YgYXJndW1lbnRzICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgTW9kdWxlWydhcmd1bWVudHMnXSA9IGFyZ3VtZW50czsKLSAgfQotICBpZiAoRU5W
SVJPTk1FTlRfSVNfV0VCKSB7Ci0gICAgTW9kdWxlWydwcmludCddID0gZnVuY3Rpb24oeCkgewot
ICAgICAgY29uc29sZS5sb2coeCk7Ci0gICAgfTsKLSAgICBNb2R1bGVbJ3ByaW50RXJyJ10gPSBm
dW5jdGlvbih4KSB7Ci0gICAgICBjb25zb2xlLmxvZyh4KTsKLSAgICB9OwotICAgIHRoaXNbJ01v
ZHVsZSddID0gTW9kdWxlOwotICB9IGVsc2UgaWYgKEVOVklST05NRU5UX0lTX1dPUktFUikgewot
ICAgIC8vIFdlIGNhbiBkbyB2ZXJ5IGxpdHRsZSBoZXJlLi4uCi0gICAgdmFyIFRSWV9VU0VfRFVN
UCA9IGZhbHNlOwotICAgIE1vZHVsZVsncHJpbnQnXSA9IChUUllfVVNFX0RVTVAgJiYgKHR5cGVv
ZihkdW1wKSAhPT0gInVuZGVmaW5lZCIpID8gKGZ1bmN0aW9uKHgpIHsKLSAgICAgIGR1bXAoeCk7
Ci0gICAgfSkgOiAoZnVuY3Rpb24oeCkgewotICAgICAgLy8gc2VsZi5wb3N0TWVzc2FnZSh4KTsg
Ly8gZW5hYmxlIHRoaXMgaWYgeW91IHdhbnQgc3Rkb3V0IHRvIGJlIHNlbnQgYXMgbWVzc2FnZXMK
LSAgICB9KSk7Ci0gICAgTW9kdWxlWydsb2FkJ10gPSBpbXBvcnRTY3JpcHRzOwotICB9Ci19Ci1l
bHNlIHsKLSAgLy8gVW5yZWFjaGFibGUgYmVjYXVzZSBTSEVMTCBpcyBkZXBlbmRhbnQgb24gdGhl
IG90aGVycwotICB0aHJvdyAnVW5rbm93biBydW50aW1lIGVudmlyb25tZW50LiBXaGVyZSBhcmUg
d2U/JzsKLX0KLWZ1bmN0aW9uIGdsb2JhbEV2YWwoeCkgewotICBldmFsLmNhbGwobnVsbCwgeCk7
Ci19Ci1pZiAoIU1vZHVsZVsnbG9hZCddID09ICd1bmRlZmluZWQnICYmIE1vZHVsZVsncmVhZCdd
KSB7Ci0gIE1vZHVsZVsnbG9hZCddID0gZnVuY3Rpb24oZikgewotICAgIGdsb2JhbEV2YWwoTW9k
dWxlWydyZWFkJ10oZikpOwotICB9OwotfQotaWYgKCFNb2R1bGVbJ3ByaW50J10pIHsKLSAgTW9k
dWxlWydwcmludCddID0gZnVuY3Rpb24oKXt9OwotfQotaWYgKCFNb2R1bGVbJ3ByaW50RXJyJ10p
IHsKLSAgTW9kdWxlWydwcmludEVyciddID0gTW9kdWxlWydwcmludCddOwotfQotaWYgKCFNb2R1
bGVbJ2FyZ3VtZW50cyddKSB7Ci0gIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBbXTsKLX0KLS8vICoq
KiBFbnZpcm9ubWVudCBzZXR1cCBjb2RlICoqKgotLy8gQ2xvc3VyZSBoZWxwZXJzCi1Nb2R1bGUu
cHJpbnQgPSBNb2R1bGVbJ3ByaW50J107Ci1Nb2R1bGUucHJpbnRFcnIgPSBNb2R1bGVbJ3ByaW50
RXJyJ107Ci0vLyBDYWxsYmFja3MKLU1vZHVsZVsncHJlUnVuJ10gPSBbXTsKLU1vZHVsZVsncG9z
dFJ1biddID0gW107Ci0vLyBNZXJnZSBiYWNrIGluIHRoZSBvdmVycmlkZXMKLWZvciAodmFyIGtl
eSBpbiBtb2R1bGVPdmVycmlkZXMpIHsKLSAgaWYgKG1vZHVsZU92ZXJyaWRlcy5oYXNPd25Qcm9w
ZXJ0eShrZXkpKSB7Ci0gICAgTW9kdWxlW2tleV0gPSBtb2R1bGVPdmVycmlkZXNba2V5XTsKLSAg
fQotfQotLy8gPT09IEF1dG8tZ2VuZXJhdGVkIHByZWFtYmxlIGxpYnJhcnkgc3R1ZmYgPT09Ci0v
Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vIFJ1bnRpbWUgY29k
ZSBzaGFyZWQgd2l0aCBjb21waWxlcgotLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci12YXIgUnVudGltZSA9IHsKLSAgc3RhY2tTYXZlOiBmdW5jdGlvbiAoKSB7Ci0g
ICAgcmV0dXJuIFNUQUNLVE9QOwotICB9LAotICBzdGFja1Jlc3RvcmU6IGZ1bmN0aW9uIChzdGFj
a1RvcCkgewotICAgIFNUQUNLVE9QID0gc3RhY2tUb3A7Ci0gIH0sCi0gIGZvcmNlQWxpZ246IGZ1
bmN0aW9uICh0YXJnZXQsIHF1YW50dW0pIHsKLSAgICBxdWFudHVtID0gcXVhbnR1bSB8fCA0Owot
ICAgIGlmIChxdWFudHVtID09IDEpIHJldHVybiB0YXJnZXQ7Ci0gICAgaWYgKGlzTnVtYmVyKHRh
cmdldCkgJiYgaXNOdW1iZXIocXVhbnR1bSkpIHsKLSAgICAgIHJldHVybiBNYXRoLmNlaWwodGFy
Z2V0L3F1YW50dW0pKnF1YW50dW07Ci0gICAgfSBlbHNlIGlmIChpc051bWJlcihxdWFudHVtKSAm
JiBpc1Bvd2VyT2ZUd28ocXVhbnR1bSkpIHsKLSAgICAgIHZhciBsb2dnID0gbG9nMihxdWFudHVt
KTsKLSAgICAgIHJldHVybiAnKCgoKCcgK3RhcmdldCArICcpKycgKyAocXVhbnR1bS0xKSArICcp
Pj4nICsgbG9nZyArICcpPDwnICsgbG9nZyArICcpJzsKLSAgICB9Ci0gICAgcmV0dXJuICdNYXRo
LmNlaWwoKCcgKyB0YXJnZXQgKyAnKS8nICsgcXVhbnR1bSArICcpKicgKyBxdWFudHVtOwotICB9
LAotICBpc051bWJlclR5cGU6IGZ1bmN0aW9uICh0eXBlKSB7Ci0gICAgcmV0dXJuIHR5cGUgaW4g
UnVudGltZS5JTlRfVFlQRVMgfHwgdHlwZSBpbiBSdW50aW1lLkZMT0FUX1RZUEVTOwotICB9LAot
ICBpc1BvaW50ZXJUeXBlOiBmdW5jdGlvbiBpc1BvaW50ZXJUeXBlKHR5cGUpIHsKLSAgcmV0dXJu
IHR5cGVbdHlwZS5sZW5ndGgtMV0gPT0gJyonOwotfSwKLSAgaXNTdHJ1Y3RUeXBlOiBmdW5jdGlv
biBpc1N0cnVjdFR5cGUodHlwZSkgewotICBpZiAoaXNQb2ludGVyVHlwZSh0eXBlKSkgcmV0dXJu
IGZhbHNlOwotICBpZiAoaXNBcnJheVR5cGUodHlwZSkpIHJldHVybiB0cnVlOwotICBpZiAoLzw/
eyA/W159XSogP30+Py8udGVzdCh0eXBlKSkgcmV0dXJuIHRydWU7IC8vIHsgaTMyLCBpOCB9IGV0
Yy4gLSBhbm9ueW1vdXMgc3RydWN0IHR5cGVzCi0gIC8vIFNlZSBjb21tZW50IGluIGlzU3RydWN0
UG9pbnRlclR5cGUoKQotICByZXR1cm4gdHlwZVswXSA9PSAnJSc7Ci19LAotICBJTlRfVFlQRVM6
IHsiaTEiOjAsImk4IjowLCJpMTYiOjAsImkzMiI6MCwiaTY0IjowfSwKLSAgRkxPQVRfVFlQRVM6
IHsiZmxvYXQiOjAsImRvdWJsZSI6MH0sCi0gIG9yNjQ6IGZ1bmN0aW9uICh4LCB5KSB7Ci0gICAg
dmFyIGwgPSAoeCB8IDApIHwgKHkgfCAwKTsKLSAgICB2YXIgaCA9IChNYXRoLnJvdW5kKHggLyA0
Mjk0OTY3Mjk2KSB8IE1hdGgucm91bmQoeSAvIDQyOTQ5NjcyOTYpKSAqIDQyOTQ5NjcyOTY7Ci0g
ICAgcmV0dXJuIGwgKyBoOwotICB9LAotICBhbmQ2NDogZnVuY3Rpb24gKHgsIHkpIHsKLSAgICB2
YXIgbCA9ICh4IHwgMCkgJiAoeSB8IDApOwotICAgIHZhciBoID0gKE1hdGgucm91bmQoeCAvIDQy
OTQ5NjcyOTYpICYgTWF0aC5yb3VuZCh5IC8gNDI5NDk2NzI5NikpICogNDI5NDk2NzI5NjsKLSAg
ICByZXR1cm4gbCArIGg7Ci0gIH0sCi0gIHhvcjY0OiBmdW5jdGlvbiAoeCwgeSkgewotICAgIHZh
ciBsID0gKHggfCAwKSBeICh5IHwgMCk7Ci0gICAgdmFyIGggPSAoTWF0aC5yb3VuZCh4IC8gNDI5
NDk2NzI5NikgXiBNYXRoLnJvdW5kKHkgLyA0Mjk0OTY3Mjk2KSkgKiA0Mjk0OTY3Mjk2OwotICAg
IHJldHVybiBsICsgaDsKLSAgfSwKLSAgZ2V0TmF0aXZlVHlwZVNpemU6IGZ1bmN0aW9uICh0eXBl
LCBxdWFudHVtU2l6ZSkgewotICAgIGlmIChSdW50aW1lLlFVQU5UVU1fU0laRSA9PSAxKSByZXR1
cm4gMTsKLSAgICB2YXIgc2l6ZSA9IHsKLSAgICAgICclaTEnOiAxLAotICAgICAgJyVpOCc6IDEs
Ci0gICAgICAnJWkxNic6IDIsCi0gICAgICAnJWkzMic6IDQsCi0gICAgICAnJWk2NCc6IDgsCi0g
ICAgICAiJWZsb2F0IjogNCwKLSAgICAgICIlZG91YmxlIjogOAotICAgIH1bJyUnK3R5cGVdOyAv
LyBhZGQgJyUnIHNpbmNlIGZsb2F0IGFuZCBkb3VibGUgY29uZnVzZSBDbG9zdXJlIGNvbXBpbGVy
IGFzIGtleXMsIGFuZCBhbHNvIHNwaWRlcm1vbmtleSBhcyBhIGNvbXBpbGVyIHdpbGwgcmVtb3Zl
ICdzIGZyb20gJ19pOCcgZXRjCi0gICAgaWYgKCFzaXplKSB7Ci0gICAgICBpZiAodHlwZS5jaGFy
QXQodHlwZS5sZW5ndGgtMSkgPT0gJyonKSB7Ci0gICAgICAgIHNpemUgPSBSdW50aW1lLlFVQU5U
VU1fU0laRTsgLy8gQSBwb2ludGVyCi0gICAgICB9IGVsc2UgaWYgKHR5cGVbMF0gPT0gJ2knKSB7
Ci0gICAgICAgIHZhciBiaXRzID0gcGFyc2VJbnQodHlwZS5zdWJzdHIoMSkpOwotICAgICAgICBh
c3NlcnQoYml0cyAlIDggPT0gMCk7Ci0gICAgICAgIHNpemUgPSBiaXRzLzg7Ci0gICAgICB9Ci0g
ICAgfQotICAgIHJldHVybiBzaXplOwotICB9LAotICBnZXROYXRpdmVGaWVsZFNpemU6IGZ1bmN0
aW9uICh0eXBlKSB7Ci0gICAgcmV0dXJuIE1hdGgubWF4KFJ1bnRpbWUuZ2V0TmF0aXZlVHlwZVNp
emUodHlwZSksIFJ1bnRpbWUuUVVBTlRVTV9TSVpFKTsKLSAgfSwKLSAgZGVkdXA6IGZ1bmN0aW9u
IGRlZHVwKGl0ZW1zLCBpZGVudCkgewotICB2YXIgc2VlbiA9IHt9OwotICBpZiAoaWRlbnQpIHsK
LSAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHsKLSAgICAgIGlmIChzZWVu
W2l0ZW1baWRlbnRdXSkgcmV0dXJuIGZhbHNlOwotICAgICAgc2VlbltpdGVtW2lkZW50XV0gPSB0
cnVlOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSk7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJu
IGl0ZW1zLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7Ci0gICAgICBpZiAoc2VlbltpdGVtXSkgcmV0
dXJuIGZhbHNlOwotICAgICAgc2VlbltpdGVtXSA9IHRydWU7Ci0gICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9KTsKLSAgfQotfSwKLSAgc2V0OiBmdW5jdGlvbiBzZXQoKSB7Ci0gIHZhciBhcmdzID0g
dHlwZW9mIGFyZ3VtZW50c1swXSA9PT0gJ29iamVjdCcgPyBhcmd1bWVudHNbMF0gOiBhcmd1bWVu
dHM7Ci0gIHZhciByZXQgPSB7fTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsg
aSsrKSB7Ci0gICAgcmV0W2FyZ3NbaV1dID0gMDsKLSAgfQotICByZXR1cm4gcmV0OwotfSwKLSAg
U1RBQ0tfQUxJR046IDgsCi0gIGdldEFsaWduU2l6ZTogZnVuY3Rpb24gKHR5cGUsIHNpemUsIHZh
cmFyZykgewotICAgIC8vIHdlIGFsaWduIGk2NHMgYW5kIGRvdWJsZXMgb24gNjQtYml0IGJvdW5k
YXJpZXMsIHVubGlrZSB4ODYKLSAgICBpZiAodHlwZSA9PSAnaTY0JyB8fCB0eXBlID09ICdkb3Vi
bGUnIHx8IHZhcmFyZykgcmV0dXJuIDg7Ci0gICAgaWYgKCF0eXBlKSByZXR1cm4gTWF0aC5taW4o
c2l6ZSwgOCk7IC8vIGFsaWduIHN0cnVjdHVyZXMgaW50ZXJuYWxseSB0byA2NCBiaXRzCi0gICAg
cmV0dXJuIE1hdGgubWluKHNpemUgfHwgKHR5cGUgPyBSdW50aW1lLmdldE5hdGl2ZUZpZWxkU2l6
ZSh0eXBlKSA6IDApLCBSdW50aW1lLlFVQU5UVU1fU0laRSk7Ci0gIH0sCi0gIGNhbGN1bGF0ZVN0
cnVjdEFsaWdubWVudDogZnVuY3Rpb24gY2FsY3VsYXRlU3RydWN0QWxpZ25tZW50KHR5cGUpIHsK
LSAgICB0eXBlLmZsYXRTaXplID0gMDsKLSAgICB0eXBlLmFsaWduU2l6ZSA9IDA7Ci0gICAgdmFy
IGRpZmZzID0gW107Ci0gICAgdmFyIHByZXYgPSAtMTsKLSAgICB2YXIgaW5kZXggPSAwOwotICAg
IHR5cGUuZmxhdEluZGV4ZXMgPSB0eXBlLmZpZWxkcy5tYXAoZnVuY3Rpb24oZmllbGQpIHsKLSAg
ICAgIGluZGV4Kys7Ci0gICAgICB2YXIgc2l6ZSwgYWxpZ25TaXplOwotICAgICAgaWYgKFJ1bnRp
bWUuaXNOdW1iZXJUeXBlKGZpZWxkKSB8fCBSdW50aW1lLmlzUG9pbnRlclR5cGUoZmllbGQpKSB7
Ci0gICAgICAgIHNpemUgPSBSdW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKGZpZWxkKTsgLy8gcGFj
ayBjaGFyOyBjaGFyOyBpbiBzdHJ1Y3RzLCBhbHNvIGNoYXJbWF1zLgotICAgICAgICBhbGlnblNp
emUgPSBSdW50aW1lLmdldEFsaWduU2l6ZShmaWVsZCwgc2l6ZSk7Ci0gICAgICB9IGVsc2UgaWYg
KFJ1bnRpbWUuaXNTdHJ1Y3RUeXBlKGZpZWxkKSkgewotICAgICAgICBpZiAoZmllbGRbMV0gPT09
ICcwJykgewotICAgICAgICAgIC8vIHRoaXMgaXMgWzAgeCBzb21ldGhpbmddLiBXaGVuIGluc2lk
ZSBhbm90aGVyIHN0cnVjdHVyZSBsaWtlIGhlcmUsIGl0IG11c3QgYmUgYXQgdGhlIGVuZCwKLSAg
ICAgICAgICAvLyBhbmQgaXQgYWRkcyBubyBzaXplCi0gICAgICAgICAgLy8gWFhYIHRoaXMgaGFw
cGVucyBpbiBqYXZhLW5ib2R5IGZvciBleGFtcGxlLi4uIGFzc2VydChpbmRleCA9PT0gdHlwZS5m
aWVsZHMubGVuZ3RoLCAnemVyby1sZW5ndGggaW4gdGhlIG1pZGRsZSEnKTsKLSAgICAgICAgICBz
aXplID0gMDsKLSAgICAgICAgICBhbGlnblNpemUgPSB0eXBlLmFsaWduU2l6ZSB8fCBRVUFOVFVN
X1NJWkU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgc2l6ZSA9IFR5cGVzLnR5cGVzW2Zp
ZWxkXS5mbGF0U2l6ZTsKLSAgICAgICAgICBhbGlnblNpemUgPSBSdW50aW1lLmdldEFsaWduU2l6
ZShudWxsLCBUeXBlcy50eXBlc1tmaWVsZF0uYWxpZ25TaXplKTsKLSAgICAgICAgfQotICAgICAg
fSBlbHNlIGlmIChmaWVsZFswXSA9PSAnYicpIHsKLSAgICAgICAgLy8gYk4sIGxhcmdlIG51bWJl
ciBmaWVsZCwgbGlrZSBhIFtOIHggaThdCi0gICAgICAgIHNpemUgPSBmaWVsZC5zdWJzdHIoMSl8
MDsKLSAgICAgICAgYWxpZ25TaXplID0gMTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRocm93
ICdVbmNsZWFyIHR5cGUgaW4gc3RydWN0OiAnICsgZmllbGQgKyAnLCBpbiAnICsgdHlwZS5uYW1l
XyArICcgOjogJyArIGR1bXAoVHlwZXMudHlwZXNbdHlwZS5uYW1lX10pOwotICAgICAgfQotICAg
ICAgaWYgKHR5cGUucGFja2VkKSBhbGlnblNpemUgPSAxOwotICAgICAgdHlwZS5hbGlnblNpemUg
PSBNYXRoLm1heCh0eXBlLmFsaWduU2l6ZSwgYWxpZ25TaXplKTsKLSAgICAgIHZhciBjdXJyID0g
UnVudGltZS5hbGlnbk1lbW9yeSh0eXBlLmZsYXRTaXplLCBhbGlnblNpemUpOyAvLyBpZiBuZWNl
c3NhcnksIHBsYWNlIHRoaXMgb24gYWxpZ25lZCBtZW1vcnkKLSAgICAgIHR5cGUuZmxhdFNpemUg
PSBjdXJyICsgc2l6ZTsKLSAgICAgIGlmIChwcmV2ID49IDApIHsKLSAgICAgICAgZGlmZnMucHVz
aChjdXJyLXByZXYpOwotICAgICAgfQotICAgICAgcHJldiA9IGN1cnI7Ci0gICAgICByZXR1cm4g
Y3VycjsKLSAgICB9KTsKLSAgICB0eXBlLmZsYXRTaXplID0gUnVudGltZS5hbGlnbk1lbW9yeSh0
eXBlLmZsYXRTaXplLCB0eXBlLmFsaWduU2l6ZSk7Ci0gICAgaWYgKGRpZmZzLmxlbmd0aCA9PSAw
KSB7Ci0gICAgICB0eXBlLmZsYXRGYWN0b3IgPSB0eXBlLmZsYXRTaXplOwotICAgIH0gZWxzZSBp
ZiAoUnVudGltZS5kZWR1cChkaWZmcykubGVuZ3RoID09IDEpIHsKLSAgICAgIHR5cGUuZmxhdEZh
Y3RvciA9IGRpZmZzWzBdOwotICAgIH0KLSAgICB0eXBlLm5lZWRzRmxhdHRlbmluZyA9ICh0eXBl
LmZsYXRGYWN0b3IgIT0gMSk7Ci0gICAgcmV0dXJuIHR5cGUuZmxhdEluZGV4ZXM7Ci0gIH0sCi0g
IGdlbmVyYXRlU3RydWN0SW5mbzogZnVuY3Rpb24gKHN0cnVjdCwgdHlwZU5hbWUsIG9mZnNldCkg
ewotICAgIHZhciB0eXBlLCBhbGlnbm1lbnQ7Ci0gICAgaWYgKHR5cGVOYW1lKSB7Ci0gICAgICBv
ZmZzZXQgPSBvZmZzZXQgfHwgMDsKLSAgICAgIHR5cGUgPSAodHlwZW9mIFR5cGVzID09PSAndW5k
ZWZpbmVkJyA/IFJ1bnRpbWUudHlwZUluZm8gOiBUeXBlcy50eXBlcylbdHlwZU5hbWVdOwotICAg
ICAgaWYgKCF0eXBlKSByZXR1cm4gbnVsbDsKLSAgICAgIGlmICh0eXBlLmZpZWxkcy5sZW5ndGgg
IT0gc3RydWN0Lmxlbmd0aCkgewotICAgICAgICBwcmludEVycignTnVtYmVyIG9mIG5hbWVkIGZp
ZWxkcyBtdXN0IG1hdGNoIHRoZSB0eXBlIGZvciAnICsgdHlwZU5hbWUgKyAnOiBwb3NzaWJseSBk
dXBsaWNhdGUgc3RydWN0IG5hbWVzLiBDYW5ub3QgcmV0dXJuIHN0cnVjdEluZm8nKTsKLSAgICAg
ICAgcmV0dXJuIG51bGw7Ci0gICAgICB9Ci0gICAgICBhbGlnbm1lbnQgPSB0eXBlLmZsYXRJbmRl
eGVzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgdHlwZSA9IHsgZmllbGRzOiBzdHJ1Y3QubWFw
KGZ1bmN0aW9uKGl0ZW0pIHsgcmV0dXJuIGl0ZW1bMF0gfSkgfTsKLSAgICAgIGFsaWdubWVudCA9
IFJ1bnRpbWUuY2FsY3VsYXRlU3RydWN0QWxpZ25tZW50KHR5cGUpOwotICAgIH0KLSAgICB2YXIg
cmV0ID0gewotICAgICAgX19zaXplX186IHR5cGUuZmxhdFNpemUKLSAgICB9OwotICAgIGlmICh0
eXBlTmFtZSkgewotICAgICAgc3RydWN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaSkgewotICAg
ICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgcmV0W2l0ZW1d
ID0gYWxpZ25tZW50W2ldICsgb2Zmc2V0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8v
IGVtYmVkZGVkIHN0cnVjdAotICAgICAgICAgIHZhciBrZXk7Ci0gICAgICAgICAgZm9yICh2YXIg
ayBpbiBpdGVtKSBrZXkgPSBrOwotICAgICAgICAgIHJldFtrZXldID0gUnVudGltZS5nZW5lcmF0
ZVN0cnVjdEluZm8oaXRlbVtrZXldLCB0eXBlLmZpZWxkc1tpXSwgYWxpZ25tZW50W2ldKTsKLSAg
ICAgICAgfQotICAgICAgfSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHN0cnVjdC5mb3JFYWNoKGZ1
bmN0aW9uKGl0ZW0sIGkpIHsKLSAgICAgICAgcmV0W2l0ZW1bMV1dID0gYWxpZ25tZW50W2ldOwot
ICAgICAgfSk7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0sCi0gIGR5bkNhbGw6IGZ1bmN0
aW9uIChzaWcsIHB0ciwgYXJncykgewotICAgIGlmIChhcmdzICYmIGFyZ3MubGVuZ3RoKSB7Ci0g
ICAgICBpZiAoIWFyZ3Muc3BsaWNlKSBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo
YXJncyk7Ci0gICAgICBhcmdzLnNwbGljZSgwLCAwLCBwdHIpOwotICAgICAgcmV0dXJuIE1vZHVs
ZVsnZHluQ2FsbF8nICsgc2lnXS5hcHBseShudWxsLCBhcmdzKTsKLSAgICB9IGVsc2UgewotICAg
ICAgcmV0dXJuIE1vZHVsZVsnZHluQ2FsbF8nICsgc2lnXS5jYWxsKG51bGwsIHB0cik7Ci0gICAg
fQotICB9LAotICBmdW5jdGlvblBvaW50ZXJzOiBbXSwKLSAgYWRkRnVuY3Rpb246IGZ1bmN0aW9u
IChmdW5jKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBSdW50aW1lLmZ1bmN0aW9uUG9pbnRl
cnMubGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmICghUnVudGltZS5mdW5jdGlvblBvaW50ZXJzW2ld
KSB7Ci0gICAgICAgIFJ1bnRpbWUuZnVuY3Rpb25Qb2ludGVyc1tpXSA9IGZ1bmM7Ci0gICAgICAg
IHJldHVybiAyICsgMippOwotICAgICAgfQotICAgIH0KLSAgICB0aHJvdyAnRmluaXNoZWQgdXAg
YWxsIHJlc2VydmVkIGZ1bmN0aW9uIHBvaW50ZXJzLiBVc2UgYSBoaWdoZXIgdmFsdWUgZm9yIFJF
U0VSVkVEX0ZVTkNUSU9OX1BPSU5URVJTLic7Ci0gIH0sCi0gIHJlbW92ZUZ1bmN0aW9uOiBmdW5j
dGlvbiAoaW5kZXgpIHsKLSAgICBSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnNbKGluZGV4LTIpLzJd
ID0gbnVsbDsKLSAgfSwKLSAgd2Fybk9uY2U6IGZ1bmN0aW9uICh0ZXh0KSB7Ci0gICAgaWYgKCFS
dW50aW1lLndhcm5PbmNlLnNob3duKSBSdW50aW1lLndhcm5PbmNlLnNob3duID0ge307Ci0gICAg
aWYgKCFSdW50aW1lLndhcm5PbmNlLnNob3duW3RleHRdKSB7Ci0gICAgICBSdW50aW1lLndhcm5P
bmNlLnNob3duW3RleHRdID0gMTsKLSAgICAgIE1vZHVsZS5wcmludEVycih0ZXh0KTsKLSAgICB9
Ci0gIH0sCi0gIGZ1bmNXcmFwcGVyczoge30sCi0gIGdldEZ1bmNXcmFwcGVyOiBmdW5jdGlvbiAo
ZnVuYywgc2lnKSB7Ci0gICAgYXNzZXJ0KHNpZyk7Ci0gICAgaWYgKCFSdW50aW1lLmZ1bmNXcmFw
cGVyc1tmdW5jXSkgewotICAgICAgUnVudGltZS5mdW5jV3JhcHBlcnNbZnVuY10gPSBmdW5jdGlv
bigpIHsKLSAgICAgICAgcmV0dXJuIFJ1bnRpbWUuZHluQ2FsbChzaWcsIGZ1bmMsIGFyZ3VtZW50
cyk7Ci0gICAgICB9OwotICAgIH0KLSAgICByZXR1cm4gUnVudGltZS5mdW5jV3JhcHBlcnNbZnVu
Y107Ci0gIH0sCi0gIFVURjhQcm9jZXNzb3I6IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgYnVmZmVy
ID0gW107Ci0gICAgdmFyIG5lZWRlZCA9IDA7Ci0gICAgdGhpcy5wcm9jZXNzQ0NoYXIgPSBmdW5j
dGlvbiAoY29kZSkgewotICAgICAgY29kZSA9IGNvZGUgJiAweEZGOwotICAgICAgaWYgKGJ1ZmZl
ci5sZW5ndGggPT0gMCkgewotICAgICAgICBpZiAoKGNvZGUgJiAweDgwKSA9PSAweDAwKSB7ICAg
ICAgICAvLyAweHh4eHh4eAotICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNv
ZGUpOwotICAgICAgICB9Ci0gICAgICAgIGJ1ZmZlci5wdXNoKGNvZGUpOwotICAgICAgICBpZiAo
KGNvZGUgJiAweEUwKSA9PSAweEMwKSB7ICAgICAgICAvLyAxMTB4eHh4eAotICAgICAgICAgIG5l
ZWRlZCA9IDE7Ci0gICAgICAgIH0gZWxzZSBpZiAoKGNvZGUgJiAweEYwKSA9PSAweEUwKSB7IC8v
IDExMTB4eHh4Ci0gICAgICAgICAgbmVlZGVkID0gMjsKLSAgICAgICAgfSBlbHNlIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gMTExMTB4eHgKLSAgICAgICAgICBuZWVkZWQgPSAzOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiAnJzsKLSAgICAgIH0KLSAgICAgIGlmIChuZWVkZWQp
IHsKLSAgICAgICAgYnVmZmVyLnB1c2goY29kZSk7Ci0gICAgICAgIG5lZWRlZC0tOwotICAgICAg
ICBpZiAobmVlZGVkID4gMCkgcmV0dXJuICcnOwotICAgICAgfQotICAgICAgdmFyIGMxID0gYnVm
ZmVyWzBdOwotICAgICAgdmFyIGMyID0gYnVmZmVyWzFdOwotICAgICAgdmFyIGMzID0gYnVmZmVy
WzJdOwotICAgICAgdmFyIGM0ID0gYnVmZmVyWzNdOwotICAgICAgdmFyIHJldDsKLSAgICAgIGlm
IChidWZmZXIubGVuZ3RoID09IDIpIHsKLSAgICAgICAgcmV0ID0gU3RyaW5nLmZyb21DaGFyQ29k
ZSgoKGMxICYgMHgxRikgPDwgNikgIHwgKGMyICYgMHgzRikpOwotICAgICAgfSBlbHNlIGlmIChi
dWZmZXIubGVuZ3RoID09IDMpIHsKLSAgICAgICAgcmV0ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgo
KGMxICYgMHgwRikgPDwgMTIpIHwgKChjMiAmIDB4M0YpIDw8IDYpICB8IChjMyAmIDB4M0YpKTsK
LSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIGh0dHA6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVz
L2phdmFzY3JpcHQtZW5jb2Rpbmcjc3Vycm9nYXRlLWZvcm11bGFlCi0gICAgICAgIHZhciBjb2Rl
UG9pbnQgPSAoKGMxICYgMHgwNykgPDwgMTgpIHwgKChjMiAmIDB4M0YpIDw8IDEyKSB8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAoKGMzICYgMHgzRikgPDwgNikgIHwgKGM0ICYgMHgzRik7Ci0g
ICAgICAgIHJldCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoCi0gICAgICAgICAgTWF0aC5mbG9vcigo
Y29kZVBvaW50IC0gMHgxMDAwMCkgLyAweDQwMCkgKyAweEQ4MDAsCi0gICAgICAgICAgKGNvZGVQ
b2ludCAtIDB4MTAwMDApICUgMHg0MDAgKyAweERDMDApOwotICAgICAgfQotICAgICAgYnVmZmVy
Lmxlbmd0aCA9IDA7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgICB0aGlzLnByb2Nlc3NK
U1N0cmluZyA9IGZ1bmN0aW9uKHN0cmluZykgewotICAgICAgc3RyaW5nID0gdW5lc2NhcGUoZW5j
b2RlVVJJQ29tcG9uZW50KHN0cmluZykpOwotICAgICAgdmFyIHJldCA9IFtdOwotICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgcmV0LnB1c2go
c3RyaW5nLmNoYXJDb2RlQXQoaSkpOwotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9
Ci0gIH0sCi0gIHN0YWNrQWxsb2M6IGZ1bmN0aW9uIChzaXplKSB7IHZhciByZXQgPSBTVEFDS1RP
UDtTVEFDS1RPUCA9IChTVEFDS1RPUCArIHNpemUpfDA7U1RBQ0tUT1AgPSAoKCgoU1RBQ0tUT1Ap
KzcpPj4zKTw8Myk7IHJldHVybiByZXQ7IH0sCi0gIHN0YXRpY0FsbG9jOiBmdW5jdGlvbiAoc2l6
ZSkgeyB2YXIgcmV0ID0gU1RBVElDVE9QO1NUQVRJQ1RPUCA9IChTVEFUSUNUT1AgKyBzaXplKXww
O1NUQVRJQ1RPUCA9ICgoKChTVEFUSUNUT1ApKzcpPj4zKTw8Myk7IHJldHVybiByZXQ7IH0sCi0g
IGR5bmFtaWNBbGxvYzogZnVuY3Rpb24gKHNpemUpIHsgdmFyIHJldCA9IERZTkFNSUNUT1A7RFlO
QU1JQ1RPUCA9IChEWU5BTUlDVE9QICsgc2l6ZSl8MDtEWU5BTUlDVE9QID0gKCgoKERZTkFNSUNU
T1ApKzcpPj4zKTw8Myk7IGlmIChEWU5BTUlDVE9QID49IFRPVEFMX01FTU9SWSkgZW5sYXJnZU1l
bW9yeSgpOzsgcmV0dXJuIHJldDsgfSwKLSAgYWxpZ25NZW1vcnk6IGZ1bmN0aW9uIChzaXplLHF1
YW50dW0pIHsgdmFyIHJldCA9IHNpemUgPSBNYXRoLmNlaWwoKHNpemUpLyhxdWFudHVtID8gcXVh
bnR1bSA6IDgpKSoocXVhbnR1bSA/IHF1YW50dW0gOiA4KTsgcmV0dXJuIHJldDsgfSwKLSAgbWFr
ZUJpZ0ludDogZnVuY3Rpb24gKGxvdyxoaWdoLHVuc2lnbmVkKSB7IHZhciByZXQgPSAodW5zaWdu
ZWQgPyAoKCsoKChsb3cpPj4+KDApKSkpKygoKygoKGhpZ2gpPj4+KDApKSkpKigrKDQyOTQ5Njcy
OTYpKSkpIDogKCgrKCgobG93KT4+PigwKSkpKSsoKCsoKChoaWdoKXwoMCkpKSkqKCsoNDI5NDk2
NzI5NikpKSkpOyByZXR1cm4gcmV0OyB9LAotICBHTE9CQUxfQkFTRTogOCwKLSAgUVVBTlRVTV9T
SVpFOiA0LAotICBfX2R1bW15X186IDAKLX0KLS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLy8gUnVudGltZSBlc3NlbnRpYWxzCi0vLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLXZhciBfX1RIUkVXX18gPSAwOyAvLyBVc2VkIGluIGNo
ZWNraW5nIGZvciB0aHJvd24gZXhjZXB0aW9ucy4KLXZhciBBQk9SVCA9IGZhbHNlOyAvLyB3aGV0
aGVyIHdlIGFyZSBxdWl0dGluZyB0aGUgYXBwbGljYXRpb24uIG5vIGNvZGUgc2hvdWxkIHJ1biBh
ZnRlciB0aGlzLiBzZXQgaW4gZXhpdCgpIGFuZCBhYm9ydCgpCi12YXIgRVhJVFNUQVRVUyA9IDA7
Ci12YXIgdW5kZWYgPSAwOwotLy8gdGVtcEludCBpcyB1c2VkIGZvciAzMi1iaXQgc2lnbmVkIHZh
bHVlcyBvciBzbWFsbGVyLiB0ZW1wQmlnSW50IGlzIHVzZWQKLS8vIGZvciAzMi1iaXQgdW5zaWdu
ZWQgdmFsdWVzIG9yIG1vcmUgdGhhbiAzMiBiaXRzLiBUT0RPOiBhdWRpdCBhbGwgdXNlcyBvZiB0
ZW1wSW50Ci12YXIgdGVtcFZhbHVlLCB0ZW1wSW50LCB0ZW1wQmlnSW50LCB0ZW1wSW50MiwgdGVt
cEJpZ0ludDIsIHRlbXBQYWlyLCB0ZW1wQmlnSW50SSwgdGVtcEJpZ0ludFIsIHRlbXBCaWdJbnRT
LCB0ZW1wQmlnSW50UCwgdGVtcEJpZ0ludEQ7Ci12YXIgdGVtcEk2NCwgdGVtcEk2NGI7Ci12YXIg
dGVtcFJldDAsIHRlbXBSZXQxLCB0ZW1wUmV0MiwgdGVtcFJldDMsIHRlbXBSZXQ0LCB0ZW1wUmV0
NSwgdGVtcFJldDYsIHRlbXBSZXQ3LCB0ZW1wUmV0OCwgdGVtcFJldDk7Ci1mdW5jdGlvbiBhc3Nl
cnQoY29uZGl0aW9uLCB0ZXh0KSB7Ci0gIGlmICghY29uZGl0aW9uKSB7Ci0gICAgYWJvcnQoJ0Fz
c2VydGlvbiBmYWlsZWQ6ICcgKyB0ZXh0KTsKLSAgfQotfQotdmFyIGdsb2JhbFNjb3BlID0gdGhp
czsKLS8vIEMgY2FsbGluZyBpbnRlcmZhY2UuIEEgY29udmVuaWVudCB3YXkgdG8gY2FsbCBDIGZ1
bmN0aW9ucyAoaW4gQyBmaWxlcywgb3IKLS8vIGRlZmluZWQgd2l0aCBleHRlcm4gIkMiKS4KLS8v
Ci0vLyBOb3RlOiBMTFZNIG9wdGltaXphdGlvbnMgY2FuIGlubGluZSBhbmQgcmVtb3ZlIGZ1bmN0
aW9ucywgYWZ0ZXIgd2hpY2ggeW91IHdpbGwgbm90IGJlCi0vLyAgICAgICBhYmxlIHRvIGNhbGwg
dGhlbS4gQ2xvc3VyZSBjYW4gYWxzbyBkbyBzby4gVG8gYXZvaWQgdGhhdCwgYWRkIHlvdXIgZnVu
Y3Rpb24gdG8KLS8vICAgICAgIHRoZSBleHBvcnRzIHVzaW5nIHNvbWV0aGluZyBsaWtlCi0vLwot
Ly8gICAgICAgICAtcyBFWFBPUlRFRF9GVU5DVElPTlM9J1siX21haW4iLCAiX215ZnVuYyJdJwot
Ly8KLS8vIEBwYXJhbSBpZGVudCAgICAgIFRoZSBuYW1lIG9mIHRoZSBDIGZ1bmN0aW9uIChub3Rl
IHRoYXQgQysrIGZ1bmN0aW9ucyB3aWxsIGJlIG5hbWUtbWFuZ2xlZCAtIHVzZSBleHRlcm4gIkMi
KQotLy8gQHBhcmFtIHJldHVyblR5cGUgVGhlIHJldHVybiB0eXBlIG9mIHRoZSBmdW5jdGlvbiwg
b25lIG9mIHRoZSBKUyB0eXBlcyAnbnVtYmVyJywgJ3N0cmluZycgb3IgJ2FycmF5JyAodXNlICdu
dW1iZXInIGZvciBhbnkgQyBwb2ludGVyLCBhbmQKLS8vICAgICAgICAgICAgICAgICAgICdhcnJh
eScgZm9yIEphdmFTY3JpcHQgYXJyYXlzIGFuZCB0eXBlZCBhcnJheXM7IG5vdGUgdGhhdCBhcnJh
eXMgYXJlIDgtYml0KS4KLS8vIEBwYXJhbSBhcmdUeXBlcyAgIEFuIGFycmF5IG9mIHRoZSB0eXBl
cyBvZiBhcmd1bWVudHMgZm9yIHRoZSBmdW5jdGlvbiAoaWYgdGhlcmUgYXJlIG5vIGFyZ3VtZW50
cywgdGhpcyBjYW4gYmUgb21taXR0ZWQpLiBUeXBlcyBhcmUgYXMgaW4gcmV0dXJuVHlwZSwKLS8v
ICAgICAgICAgICAgICAgICAgIGV4Y2VwdCB0aGF0ICdhcnJheScgaXMgbm90IHBvc3NpYmxlICh0
aGVyZSBpcyBubyB3YXkgZm9yIHVzIHRvIGtub3cgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkpCi0v
LyBAcGFyYW0gYXJncyAgICAgICBBbiBhcnJheSBvZiB0aGUgYXJndW1lbnRzIHRvIHRoZSBmdW5j
dGlvbiwgYXMgbmF0aXZlIEpTIHZhbHVlcyAoYXMgaW4gcmV0dXJuVHlwZSkKLS8vICAgICAgICAg
ICAgICAgICAgIE5vdGUgdGhhdCBzdHJpbmcgYXJndW1lbnRzIHdpbGwgYmUgc3RvcmVkIG9uIHRo
ZSBzdGFjayAodGhlIEpTIHN0cmluZyB3aWxsIGJlY29tZSBhIEMgc3RyaW5nIG9uIHRoZSBzdGFj
aykuCi0vLyBAcmV0dXJuICAgICAgICAgICBUaGUgcmV0dXJuIHZhbHVlLCBhcyBhIG5hdGl2ZSBK
UyB2YWx1ZSAoYXMgaW4gcmV0dXJuVHlwZSkKLWZ1bmN0aW9uIGNjYWxsKGlkZW50LCByZXR1cm5U
eXBlLCBhcmdUeXBlcywgYXJncykgewotICByZXR1cm4gY2NhbGxGdW5jKGdldENGdW5jKGlkZW50
KSwgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3MpOwotfQotTW9kdWxlWyJjY2FsbCJdID0gY2Nh
bGw7Ci0vLyBSZXR1cm5zIHRoZSBDIGZ1bmN0aW9uIHdpdGggYSBzcGVjaWZpZWQgaWRlbnRpZmll
ciAoZm9yIEMrKywgeW91IG5lZWQgdG8gZG8gbWFudWFsIG5hbWUgbWFuZ2xpbmcpCi1mdW5jdGlv
biBnZXRDRnVuYyhpZGVudCkgewotICB0cnkgewotICAgIHZhciBmdW5jID0gTW9kdWxlWydfJyAr
IGlkZW50XTsgLy8gY2xvc3VyZSBleHBvcnRlZCBmdW5jdGlvbgotICAgIGlmICghZnVuYykgZnVu
YyA9IGV2YWwoJ18nICsgaWRlbnQpOyAvLyBleHBsaWNpdCBsb29rdXAKLSAgfSBjYXRjaChlKSB7
Ci0gIH0KLSAgYXNzZXJ0KGZ1bmMsICdDYW5ub3QgY2FsbCB1bmtub3duIGZ1bmN0aW9uICcgKyBp
ZGVudCArICcgKHBlcmhhcHMgTExWTSBvcHRpbWl6YXRpb25zIG9yIGNsb3N1cmUgcmVtb3ZlZCBp
dD8pJyk7Ci0gIHJldHVybiBmdW5jOwotfQotLy8gSW50ZXJuYWwgZnVuY3Rpb24gdGhhdCBkb2Vz
IGEgQyBjYWxsIHVzaW5nIGEgZnVuY3Rpb24sIG5vdCBhbiBpZGVudGlmaWVyCi1mdW5jdGlvbiBj
Y2FsbEZ1bmMoZnVuYywgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3MpIHsKLSAgdmFyIHN0YWNr
ID0gMDsKLSAgZnVuY3Rpb24gdG9DKHZhbHVlLCB0eXBlKSB7Ci0gICAgaWYgKHR5cGUgPT0gJ3N0
cmluZycpIHsKLSAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVk
IHx8IHZhbHVlID09PSAwKSByZXR1cm4gMDsgLy8gbnVsbCBzdHJpbmcKLSAgICAgIGlmICghc3Rh
Y2spIHN0YWNrID0gUnVudGltZS5zdGFja1NhdmUoKTsKLSAgICAgIHZhciByZXQgPSBSdW50aW1l
LnN0YWNrQWxsb2ModmFsdWUubGVuZ3RoKzEpOwotICAgICAgd3JpdGVTdHJpbmdUb01lbW9yeSh2
YWx1ZSwgcmV0KTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfSBlbHNlIGlmICh0eXBlID09ICdh
cnJheScpIHsKLSAgICAgIGlmICghc3RhY2spIHN0YWNrID0gUnVudGltZS5zdGFja1NhdmUoKTsK
LSAgICAgIHZhciByZXQgPSBSdW50aW1lLnN0YWNrQWxsb2ModmFsdWUubGVuZ3RoKTsKLSAgICAg
IHdyaXRlQXJyYXlUb01lbW9yeSh2YWx1ZSwgcmV0KTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAg
fQotICAgIHJldHVybiB2YWx1ZTsKLSAgfQotICBmdW5jdGlvbiBmcm9tQyh2YWx1ZSwgdHlwZSkg
ewotICAgIGlmICh0eXBlID09ICdzdHJpbmcnKSB7Ci0gICAgICByZXR1cm4gUG9pbnRlcl9zdHJp
bmdpZnkodmFsdWUpOwotICAgIH0KLSAgICBhc3NlcnQodHlwZSAhPSAnYXJyYXknKTsKLSAgICBy
ZXR1cm4gdmFsdWU7Ci0gIH0KLSAgdmFyIGkgPSAwOwotICB2YXIgY0FyZ3MgPSBhcmdzID8gYXJn
cy5tYXAoZnVuY3Rpb24oYXJnKSB7Ci0gICAgcmV0dXJuIHRvQyhhcmcsIGFyZ1R5cGVzW2krK10p
OwotICB9KSA6IFtdOwotICB2YXIgcmV0ID0gZnJvbUMoZnVuYy5hcHBseShudWxsLCBjQXJncyks
IHJldHVyblR5cGUpOwotICBpZiAoc3RhY2spIFJ1bnRpbWUuc3RhY2tSZXN0b3JlKHN0YWNrKTsK
LSAgcmV0dXJuIHJldDsKLX0KLS8vIFJldHVybnMgYSBuYXRpdmUgSlMgd3JhcHBlciBmb3IgYSBD
IGZ1bmN0aW9uLiBUaGlzIGlzIHNpbWlsYXIgdG8gY2NhbGwsIGJ1dAotLy8gcmV0dXJucyBhIGZ1
bmN0aW9uIHlvdSBjYW4gY2FsbCByZXBlYXRlZGx5IGluIGEgbm9ybWFsIHdheS4gRm9yIGV4YW1w
bGU6Ci0vLwotLy8gICB2YXIgbXlfZnVuY3Rpb24gPSBjd3JhcCgnbXlfY19mdW5jdGlvbicsICdu
dW1iZXInLCBbJ251bWJlcicsICdudW1iZXInXSk7Ci0vLyAgIGFsZXJ0KG15X2Z1bmN0aW9uKDUs
IDIyKSk7Ci0vLyAgIGFsZXJ0KG15X2Z1bmN0aW9uKDk5LCAxMikpOwotLy8KLWZ1bmN0aW9uIGN3
cmFwKGlkZW50LCByZXR1cm5UeXBlLCBhcmdUeXBlcykgewotICB2YXIgZnVuYyA9IGdldENGdW5j
KGlkZW50KTsKLSAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBjY2FsbEZ1bmMoZnVu
YywgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3Vt
ZW50cykpOwotICB9Ci19Ci1Nb2R1bGVbImN3cmFwIl0gPSBjd3JhcDsKLS8vIFNldHMgYSB2YWx1
ZSBpbiBtZW1vcnkgaW4gYSBkeW5hbWljIHdheSBhdCBydW4tdGltZS4gVXNlcyB0aGUKLS8vIHR5
cGUgZGF0YS4gVGhpcyBpcyB0aGUgc2FtZSBhcyBtYWtlU2V0VmFsdWUsIGV4Y2VwdCB0aGF0Ci0v
LyBtYWtlU2V0VmFsdWUgaXMgZG9uZSBhdCBjb21waWxlLXRpbWUgYW5kIGdlbmVyYXRlcyB0aGUg
bmVlZGVkCi0vLyBjb2RlIHRoZW4sIHdoZXJlYXMgdGhpcyBmdW5jdGlvbiBwaWNrcyB0aGUgcmln
aHQgY29kZSBhdAotLy8gcnVuLXRpbWUuCi0vLyBOb3RlIHRoYXQgc2V0VmFsdWUgYW5kIGdldFZh
bHVlIG9ubHkgZG8gKmFsaWduZWQqIHdyaXRlcyBhbmQgcmVhZHMhCi0vLyBOb3RlIHRoYXQgY2Nh
bGwgdXNlcyBKUyB0eXBlcyBhcyBmb3IgZGVmaW5pbmcgdHlwZXMsIHdoaWxlIHNldFZhbHVlIGFu
ZAotLy8gZ2V0VmFsdWUgbmVlZCBMTFZNIHR5cGVzICgnaTgnLCAnaTMyJykgLSB0aGlzIGlzIGEg
bG93ZXItbGV2ZWwgb3BlcmF0aW9uCi1mdW5jdGlvbiBzZXRWYWx1ZShwdHIsIHZhbHVlLCB0eXBl
LCBub1NhZmUpIHsKLSAgdHlwZSA9IHR5cGUgfHwgJ2k4JzsKLSAgaWYgKHR5cGUuY2hhckF0KHR5
cGUubGVuZ3RoLTEpID09PSAnKicpIHR5cGUgPSAnaTMyJzsgLy8gcG9pbnRlcnMgYXJlIDMyLWJp
dAotICAgIHN3aXRjaCh0eXBlKSB7Ci0gICAgICBjYXNlICdpMSc6IEhFQVA4WyhwdHIpXT12YWx1
ZTsgYnJlYWs7Ci0gICAgICBjYXNlICdpOCc6IEhFQVA4WyhwdHIpXT12YWx1ZTsgYnJlYWs7Ci0g
ICAgICBjYXNlICdpMTYnOiBIRUFQMTZbKChwdHIpPj4xKV09dmFsdWU7IGJyZWFrOwotICAgICAg
Y2FzZSAnaTMyJzogSEVBUDMyWygocHRyKT4+MildPXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2Ug
J2k2NCc6ICh0ZW1wSTY0ID0gW3ZhbHVlPj4+MCwodGVtcERvdWJsZT12YWx1ZSwoKyhNYXRoLmFi
cyh0ZW1wRG91YmxlKSkpID49ICgrKDEpKSA/ICh0ZW1wRG91YmxlID4gKCsoMCkpID8gKChNYXRo
Lm1pbigoKyhNYXRoLmZsb29yKCh0ZW1wRG91YmxlKS8oKyg0Mjk0OTY3Mjk2KSkpKSksICgrKDQy
OTQ5NjcyOTUpKSkpfDApPj4+MCA6ICh+figoKyhNYXRoLmNlaWwoKHRlbXBEb3VibGUgLSArKCgo
fn4odGVtcERvdWJsZSkpKT4+PjApKS8oKyg0Mjk0OTY3Mjk2KSkpKSkpKT4+PjApIDogMCldLEhF
QVAzMlsoKHB0cik+PjIpXT10ZW1wSTY0WzBdLEhFQVAzMlsoKChwdHIpKyg0KSk+PjIpXT10ZW1w
STY0WzFdKTsgYnJlYWs7Ci0gICAgICBjYXNlICdmbG9hdCc6IEhFQVBGMzJbKChwdHIpPj4yKV09
dmFsdWU7IGJyZWFrOwotICAgICAgY2FzZSAnZG91YmxlJzogSEVBUEY2NFsoKHB0cik+PjMpXT12
YWx1ZTsgYnJlYWs7Ci0gICAgICBkZWZhdWx0OiBhYm9ydCgnaW52YWxpZCB0eXBlIGZvciBzZXRW
YWx1ZTogJyArIHR5cGUpOwotICAgIH0KLX0KLU1vZHVsZVsnc2V0VmFsdWUnXSA9IHNldFZhbHVl
OwotLy8gUGFyYWxsZWwgdG8gc2V0VmFsdWUuCi1mdW5jdGlvbiBnZXRWYWx1ZShwdHIsIHR5cGUs
IG5vU2FmZSkgewotICB0eXBlID0gdHlwZSB8fCAnaTgnOwotICBpZiAodHlwZS5jaGFyQXQodHlw
ZS5sZW5ndGgtMSkgPT09ICcqJykgdHlwZSA9ICdpMzInOyAvLyBwb2ludGVycyBhcmUgMzItYml0
Ci0gICAgc3dpdGNoKHR5cGUpIHsKLSAgICAgIGNhc2UgJ2kxJzogcmV0dXJuIEhFQVA4WyhwdHIp
XTsKLSAgICAgIGNhc2UgJ2k4JzogcmV0dXJuIEhFQVA4WyhwdHIpXTsKLSAgICAgIGNhc2UgJ2kx
Nic6IHJldHVybiBIRUFQMTZbKChwdHIpPj4xKV07Ci0gICAgICBjYXNlICdpMzInOiByZXR1cm4g
SEVBUDMyWygocHRyKT4+MildOwotICAgICAgY2FzZSAnaTY0JzogcmV0dXJuIEhFQVAzMlsoKHB0
cik+PjIpXTsKLSAgICAgIGNhc2UgJ2Zsb2F0JzogcmV0dXJuIEhFQVBGMzJbKChwdHIpPj4yKV07
Ci0gICAgICBjYXNlICdkb3VibGUnOiByZXR1cm4gSEVBUEY2NFsoKHB0cik+PjMpXTsKLSAgICAg
IGRlZmF1bHQ6IGFib3J0KCdpbnZhbGlkIHR5cGUgZm9yIHNldFZhbHVlOiAnICsgdHlwZSk7Ci0g
ICAgfQotICByZXR1cm4gbnVsbDsKLX0KLU1vZHVsZVsnZ2V0VmFsdWUnXSA9IGdldFZhbHVlOwot
dmFyIEFMTE9DX05PUk1BTCA9IDA7IC8vIFRyaWVzIHRvIHVzZSBfbWFsbG9jKCkKLXZhciBBTExP
Q19TVEFDSyA9IDE7IC8vIExpdmVzIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGN1cnJlbnQgZnVu
Y3Rpb24gY2FsbAotdmFyIEFMTE9DX1NUQVRJQyA9IDI7IC8vIENhbm5vdCBiZSBmcmVlZAotdmFy
IEFMTE9DX0RZTkFNSUMgPSAzOyAvLyBDYW5ub3QgYmUgZnJlZWQgZXhjZXB0IHRocm91Z2ggc2Jy
awotdmFyIEFMTE9DX05PTkUgPSA0OyAvLyBEbyBub3QgYWxsb2NhdGUKLU1vZHVsZVsnQUxMT0Nf
Tk9STUFMJ10gPSBBTExPQ19OT1JNQUw7Ci1Nb2R1bGVbJ0FMTE9DX1NUQUNLJ10gPSBBTExPQ19T
VEFDSzsKLU1vZHVsZVsnQUxMT0NfU1RBVElDJ10gPSBBTExPQ19TVEFUSUM7Ci1Nb2R1bGVbJ0FM
TE9DX0RZTkFNSUMnXSA9IEFMTE9DX0RZTkFNSUM7Ci1Nb2R1bGVbJ0FMTE9DX05PTkUnXSA9IEFM
TE9DX05PTkU7Ci0vLyBhbGxvY2F0ZSgpOiBUaGlzIGlzIGZvciBpbnRlcm5hbCB1c2UuIFlvdSBj
YW4gdXNlIGl0IHlvdXJzZWxmIGFzIHdlbGwsIGJ1dCB0aGUgaW50ZXJmYWNlCi0vLyAgICAgICAg
ICAgICBpcyBhIGxpdHRsZSB0cmlja3kgKHNlZSBkb2NzIHJpZ2h0IGJlbG93KS4gVGhlIHJlYXNv
biBpcyB0aGF0IGl0IGlzIG9wdGltaXplZAotLy8gICAgICAgICAgICAgZm9yIG11bHRpcGxlIHN5
bnRheGVzIHRvIHNhdmUgc3BhY2UgaW4gZ2VuZXJhdGVkIGNvZGUuIFNvIHlvdSBzaG91bGQKLS8v
ICAgICAgICAgICAgIG5vcm1hbGx5IG5vdCB1c2UgYWxsb2NhdGUoKSwgYW5kIGluc3RlYWQgYWxs
b2NhdGUgbWVtb3J5IHVzaW5nIF9tYWxsb2MoKSwKLS8vICAgICAgICAgICAgIGluaXRpYWxpemUg
aXQgd2l0aCBzZXRWYWx1ZSgpLCBhbmQgc28gZm9ydGguCi0vLyBAc2xhYjogQW4gYXJyYXkgb2Yg
ZGF0YSwgb3IgYSBudW1iZXIuIElmIGEgbnVtYmVyLCB0aGVuIHRoZSBzaXplIG9mIHRoZSBibG9j
ayB0byBhbGxvY2F0ZSwKLS8vICAgICAgICBpbiAqYnl0ZXMqIChub3RlIHRoYXQgdGhpcyBpcyBz
b21ldGltZXMgY29uZnVzaW5nOiB0aGUgbmV4dCBwYXJhbWV0ZXIgZG9lcyBub3QKLS8vICAgICAg
ICBhZmZlY3QgdGhpcyEpCi0vLyBAdHlwZXM6IEVpdGhlciBhbiBhcnJheSBvZiB0eXBlcywgb25l
IGZvciBlYWNoIGJ5dGUgKG9yIDAgaWYgbm8gdHlwZSBhdCB0aGF0IHBvc2l0aW9uKSwKLS8vICAg
ICAgICAgb3IgYSBzaW5nbGUgdHlwZSB3aGljaCBpcyB1c2VkIGZvciB0aGUgZW50aXJlIGJsb2Nr
LiBUaGlzIG9ubHkgbWF0dGVycyBpZiB0aGVyZQotLy8gICAgICAgICBpcyBpbml0aWFsIGRhdGEg
LSBpZiBAc2xhYiBpcyBhIG51bWJlciwgdGhlbiB0aGlzIGRvZXMgbm90IG1hdHRlciBhdCBhbGwg
YW5kIGlzCi0vLyAgICAgICAgIGlnbm9yZWQuCi0vLyBAYWxsb2NhdG9yOiBIb3cgdG8gYWxsb2Nh
dGUgbWVtb3J5LCBzZWUgQUxMT0NfKgotZnVuY3Rpb24gYWxsb2NhdGUoc2xhYiwgdHlwZXMsIGFs
bG9jYXRvciwgcHRyKSB7Ci0gIHZhciB6ZXJvaW5pdCwgc2l6ZTsKLSAgaWYgKHR5cGVvZiBzbGFi
ID09PSAnbnVtYmVyJykgewotICAgIHplcm9pbml0ID0gdHJ1ZTsKLSAgICBzaXplID0gc2xhYjsK
LSAgfSBlbHNlIHsKLSAgICB6ZXJvaW5pdCA9IGZhbHNlOwotICAgIHNpemUgPSBzbGFiLmxlbmd0
aDsKLSAgfQotICB2YXIgc2luZ2xlVHlwZSA9IHR5cGVvZiB0eXBlcyA9PT0gJ3N0cmluZycgPyB0
eXBlcyA6IG51bGw7Ci0gIHZhciByZXQ7Ci0gIGlmIChhbGxvY2F0b3IgPT0gQUxMT0NfTk9ORSkg
ewotICAgIHJldCA9IHB0cjsKLSAgfSBlbHNlIHsKLSAgICByZXQgPSBbX21hbGxvYywgUnVudGlt
ZS5zdGFja0FsbG9jLCBSdW50aW1lLnN0YXRpY0FsbG9jLCBSdW50aW1lLmR5bmFtaWNBbGxvY11b
YWxsb2NhdG9yID09PSB1bmRlZmluZWQgPyBBTExPQ19TVEFUSUMgOiBhbGxvY2F0b3JdKE1hdGgu
bWF4KHNpemUsIHNpbmdsZVR5cGUgPyAxIDogdHlwZXMubGVuZ3RoKSk7Ci0gIH0KLSAgaWYgKHpl
cm9pbml0KSB7Ci0gICAgdmFyIHB0ciA9IHJldCwgc3RvcDsKLSAgICBhc3NlcnQoKHJldCAmIDMp
ID09IDApOwotICAgIHN0b3AgPSByZXQgKyAoc2l6ZSAmIH4zKTsKLSAgICBmb3IgKDsgcHRyIDwg
c3RvcDsgcHRyICs9IDQpIHsKLSAgICAgIEhFQVAzMlsoKHB0cik+PjIpXT0wOwotICAgIH0KLSAg
ICBzdG9wID0gcmV0ICsgc2l6ZTsKLSAgICB3aGlsZSAocHRyIDwgc3RvcCkgewotICAgICAgSEVB
UDhbKChwdHIrKyl8MCldPTA7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAgaWYgKHNp
bmdsZVR5cGUgPT09ICdpOCcpIHsKLSAgICBpZiAoc2xhYi5zdWJhcnJheSB8fCBzbGFiLnNsaWNl
KSB7Ci0gICAgICBIRUFQVTguc2V0KHNsYWIsIHJldCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIEhF
QVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoc2xhYiksIHJldCk7Ci0gICAgfQotICAgIHJldHVybiBy
ZXQ7Ci0gIH0KLSAgdmFyIGkgPSAwLCB0eXBlLCB0eXBlU2l6ZSwgcHJldmlvdXNUeXBlOwotICB3
aGlsZSAoaSA8IHNpemUpIHsKLSAgICB2YXIgY3VyciA9IHNsYWJbaV07Ci0gICAgaWYgKHR5cGVv
ZiBjdXJyID09PSAnZnVuY3Rpb24nKSB7Ci0gICAgICBjdXJyID0gUnVudGltZS5nZXRGdW5jdGlv
bkluZGV4KGN1cnIpOwotICAgIH0KLSAgICB0eXBlID0gc2luZ2xlVHlwZSB8fCB0eXBlc1tpXTsK
LSAgICBpZiAodHlwZSA9PT0gMCkgewotICAgICAgaSsrOwotICAgICAgY29udGludWU7Ci0gICAg
fQotICAgIGlmICh0eXBlID09ICdpNjQnKSB0eXBlID0gJ2kzMic7IC8vIHNwZWNpYWwgY2FzZTog
d2UgaGF2ZSBvbmUgaTMyIGhlcmUsIGFuZCBvbmUgaTMyIGxhdGVyCi0gICAgc2V0VmFsdWUocmV0
K2ksIGN1cnIsIHR5cGUpOwotICAgIC8vIG5vIG5lZWQgdG8gbG9vayB1cCBzaXplIHVubGVzcyB0
eXBlIGNoYW5nZXMsIHNvIGNhY2hlIGl0Ci0gICAgaWYgKHByZXZpb3VzVHlwZSAhPT0gdHlwZSkg
ewotICAgICAgdHlwZVNpemUgPSBSdW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKHR5cGUpOwotICAg
ICAgcHJldmlvdXNUeXBlID0gdHlwZTsKLSAgICB9Ci0gICAgaSArPSB0eXBlU2l6ZTsKLSAgfQot
ICByZXR1cm4gcmV0OwotfQotTW9kdWxlWydhbGxvY2F0ZSddID0gYWxsb2NhdGU7Ci1mdW5jdGlv
biBQb2ludGVyX3N0cmluZ2lmeShwdHIsIC8qIG9wdGlvbmFsICovIGxlbmd0aCkgewotICAvLyBU
T0RPOiB1c2UgVGV4dERlY29kZXIKLSAgLy8gRmluZCB0aGUgbGVuZ3RoLCBhbmQgY2hlY2sgZm9y
IFVURiB3aGlsZSBkb2luZyBzbwotICB2YXIgaGFzVXRmID0gZmFsc2U7Ci0gIHZhciB0OwotICB2
YXIgaSA9IDA7Ci0gIHdoaWxlICgxKSB7Ci0gICAgdCA9IEhFQVBVOFsoKChwdHIpKyhpKSl8MCld
OwotICAgIGlmICh0ID49IDEyOCkgaGFzVXRmID0gdHJ1ZTsKLSAgICBlbHNlIGlmICh0ID09IDAg
JiYgIWxlbmd0aCkgYnJlYWs7Ci0gICAgaSsrOwotICAgIGlmIChsZW5ndGggJiYgaSA9PSBsZW5n
dGgpIGJyZWFrOwotICB9Ci0gIGlmICghbGVuZ3RoKSBsZW5ndGggPSBpOwotICB2YXIgcmV0ID0g
Jyc7Ci0gIGlmICghaGFzVXRmKSB7Ci0gICAgdmFyIE1BWF9DSFVOSyA9IDEwMjQ7IC8vIHNwbGl0
IHVwIGludG8gY2h1bmtzLCBiZWNhdXNlIC5hcHBseSBvbiBhIGh1Z2Ugc3RyaW5nIGNhbiBvdmVy
ZmxvdyB0aGUgc3RhY2sKLSAgICB2YXIgY3VycjsKLSAgICB3aGlsZSAobGVuZ3RoID4gMCkgewot
ICAgICAgY3VyciA9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBIRUFQVTguc3Vi
YXJyYXkocHRyLCBwdHIgKyBNYXRoLm1pbihsZW5ndGgsIE1BWF9DSFVOSykpKTsKLSAgICAgIHJl
dCA9IHJldCA/IHJldCArIGN1cnIgOiBjdXJyOwotICAgICAgcHRyICs9IE1BWF9DSFVOSzsKLSAg
ICAgIGxlbmd0aCAtPSBNQVhfQ0hVTks7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAg
dmFyIHV0ZjggPSBuZXcgUnVudGltZS5VVEY4UHJvY2Vzc29yKCk7Ci0gIGZvciAoaSA9IDA7IGkg
PCBsZW5ndGg7IGkrKykgewotICAgIHQgPSBIRUFQVThbKCgocHRyKSsoaSkpfDApXTsKLSAgICBy
ZXQgKz0gdXRmOC5wcm9jZXNzQ0NoYXIodCk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVs
ZVsnUG9pbnRlcl9zdHJpbmdpZnknXSA9IFBvaW50ZXJfc3RyaW5naWZ5OwotLy8gTWVtb3J5IG1h
bmFnZW1lbnQKLXZhciBQQUdFX1NJWkUgPSA0MDk2OwotZnVuY3Rpb24gYWxpZ25NZW1vcnlQYWdl
KHgpIHsKLSAgcmV0dXJuICgoeCs0MDk1KT4+MTIpPDwxMjsKLX0KLXZhciBIRUFQOwotdmFyIEhF
QVA4LCBIRUFQVTgsIEhFQVAxNiwgSEVBUFUxNiwgSEVBUDMyLCBIRUFQVTMyLCBIRUFQRjMyLCBI
RUFQRjY0OwotdmFyIFNUQVRJQ19CQVNFID0gMCwgU1RBVElDVE9QID0gMCwgc3RhdGljU2VhbGVk
ID0gZmFsc2U7IC8vIHN0YXRpYyBhcmVhCi12YXIgU1RBQ0tfQkFTRSA9IDAsIFNUQUNLVE9QID0g
MCwgU1RBQ0tfTUFYID0gMDsgLy8gc3RhY2sgYXJlYQotdmFyIERZTkFNSUNfQkFTRSA9IDAsIERZ
TkFNSUNUT1AgPSAwOyAvLyBkeW5hbWljIGFyZWEgaGFuZGxlZCBieSBzYnJrCi1mdW5jdGlvbiBl
bmxhcmdlTWVtb3J5KCkgewotICBhYm9ydCgnQ2Fubm90IGVubGFyZ2UgbWVtb3J5IGFycmF5cyBp
biBhc20uanMuIEVpdGhlciAoMSkgY29tcGlsZSB3aXRoIC1zIFRPVEFMX01FTU9SWT1YIHdpdGgg
WCBoaWdoZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZSwgb3IgKDIpIHNldCBNb2R1bGUuVE9UQUxf
TUVNT1JZIGJlZm9yZSB0aGUgcHJvZ3JhbSBydW5zLicpOwotfQotdmFyIFRPVEFMX1NUQUNLID0g
TW9kdWxlWydUT1RBTF9TVEFDSyddIHx8IDUyNDI4ODA7Ci12YXIgVE9UQUxfTUVNT1JZID0gTW9k
dWxlWydUT1RBTF9NRU1PUlknXSB8fCAxNjc3NzIxNjsKLXZhciBGQVNUX01FTU9SWSA9IE1vZHVs
ZVsnRkFTVF9NRU1PUlknXSB8fCAyMDk3MTUyOwotLy8gSW5pdGlhbGl6ZSB0aGUgcnVudGltZSdz
IG1lbW9yeQotLy8gY2hlY2sgZm9yIGZ1bGwgZW5naW5lIHN1cHBvcnQgKHVzZSBzdHJpbmcgJ3N1
YmFycmF5JyB0byBhdm9pZCBjbG9zdXJlIGNvbXBpbGVyIGNvbmZ1c2lvbikKLWFzc2VydCghIUlu
dDMyQXJyYXkgJiYgISFGbG9hdDY0QXJyYXkgJiYgISEobmV3IEludDMyQXJyYXkoMSlbJ3N1YmFy
cmF5J10pICYmICEhKG5ldyBJbnQzMkFycmF5KDEpWydzZXQnXSksCi0gICAgICAgJ0Nhbm5vdCBm
YWxsYmFjayB0byBub24tdHlwZWQgYXJyYXkgY2FzZTogQ29kZSBpcyB0b28gc3BlY2lhbGl6ZWQn
KTsKLXZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoVE9UQUxfTUVNT1JZKTsKLUhFQVA4ID0g
bmV3IEludDhBcnJheShidWZmZXIpOwotSEVBUDE2ID0gbmV3IEludDE2QXJyYXkoYnVmZmVyKTsK
LUhFQVAzMiA9IG5ldyBJbnQzMkFycmF5KGJ1ZmZlcik7Ci1IRUFQVTggPSBuZXcgVWludDhBcnJh
eShidWZmZXIpOwotSEVBUFUxNiA9IG5ldyBVaW50MTZBcnJheShidWZmZXIpOwotSEVBUFUzMiA9
IG5ldyBVaW50MzJBcnJheShidWZmZXIpOwotSEVBUEYzMiA9IG5ldyBGbG9hdDMyQXJyYXkoYnVm
ZmVyKTsKLUhFQVBGNjQgPSBuZXcgRmxvYXQ2NEFycmF5KGJ1ZmZlcik7Ci0vLyBFbmRpYW5uZXNz
IGNoZWNrIChub3RlOiBhc3N1bWVzIGNvbXBpbGVyIGFyY2ggd2FzIGxpdHRsZS1lbmRpYW4pCi1I
RUFQMzJbMF0gPSAyNTU7Ci1hc3NlcnQoSEVBUFU4WzBdID09PSAyNTUgJiYgSEVBUFU4WzNdID09
PSAwLCAnVHlwZWQgYXJyYXlzIDIgbXVzdCBiZSBydW4gb24gYSBsaXR0bGUtZW5kaWFuIHN5c3Rl
bScpOwotTW9kdWxlWydIRUFQJ10gPSBIRUFQOwotTW9kdWxlWydIRUFQOCddID0gSEVBUDg7Ci1N
b2R1bGVbJ0hFQVAxNiddID0gSEVBUDE2OwotTW9kdWxlWydIRUFQMzInXSA9IEhFQVAzMjsKLU1v
ZHVsZVsnSEVBUFU4J10gPSBIRUFQVTg7Ci1Nb2R1bGVbJ0hFQVBVMTYnXSA9IEhFQVBVMTY7Ci1N
b2R1bGVbJ0hFQVBVMzInXSA9IEhFQVBVMzI7Ci1Nb2R1bGVbJ0hFQVBGMzInXSA9IEhFQVBGMzI7
Ci1Nb2R1bGVbJ0hFQVBGNjQnXSA9IEhFQVBGNjQ7Ci1mdW5jdGlvbiBjYWxsUnVudGltZUNhbGxi
YWNrcyhjYWxsYmFja3MpIHsKLSAgd2hpbGUoY2FsbGJhY2tzLmxlbmd0aCA+IDApIHsKLSAgICB2
YXIgY2FsbGJhY2sgPSBjYWxsYmFja3Muc2hpZnQoKTsKLSAgICBpZiAodHlwZW9mIGNhbGxiYWNr
ID09ICdmdW5jdGlvbicpIHsKLSAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICBjb250aW51ZTsKLSAg
ICB9Ci0gICAgdmFyIGZ1bmMgPSBjYWxsYmFjay5mdW5jOwotICAgIGlmICh0eXBlb2YgZnVuYyA9
PT0gJ251bWJlcicpIHsKLSAgICAgIGlmIChjYWxsYmFjay5hcmcgPT09IHVuZGVmaW5lZCkgewot
ICAgICAgICBSdW50aW1lLmR5bkNhbGwoJ3YnLCBmdW5jKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgIFJ1bnRpbWUuZHluQ2FsbCgndmknLCBmdW5jLCBbY2FsbGJhY2suYXJnXSk7Ci0gICAgICB9
Ci0gICAgfSBlbHNlIHsKLSAgICAgIGZ1bmMoY2FsbGJhY2suYXJnID09PSB1bmRlZmluZWQgPyBu
dWxsIDogY2FsbGJhY2suYXJnKTsKLSAgICB9Ci0gIH0KLX0KLXZhciBfX0FUUFJFUlVOX18gID0g
W107IC8vIGZ1bmN0aW9ucyBjYWxsZWQgYmVmb3JlIHRoZSBydW50aW1lIGlzIGluaXRpYWxpemVk
Ci12YXIgX19BVElOSVRfXyAgICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIGR1cmluZyBzdGFy
dHVwCi12YXIgX19BVE1BSU5fXyAgICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIHdoZW4gbWFp
bigpIGlzIHRvIGJlIHJ1bgotdmFyIF9fQVRFWElUX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNh
bGxlZCBkdXJpbmcgc2h1dGRvd24KLXZhciBfX0FUUE9TVFJVTl9fID0gW107IC8vIGZ1bmN0aW9u
cyBjYWxsZWQgYWZ0ZXIgdGhlIHJ1bnRpbWUgaGFzIGV4aXRlZAotdmFyIHJ1bnRpbWVJbml0aWFs
aXplZCA9IGZhbHNlOwotZnVuY3Rpb24gcHJlUnVuKCkgewotICAvLyBjb21wYXRpYmlsaXR5IC0g
bWVyZ2UgaW4gYW55dGhpbmcgZnJvbSBNb2R1bGVbJ3ByZVJ1biddIGF0IHRoaXMgdGltZQotICBp
ZiAoTW9kdWxlWydwcmVSdW4nXSkgewotICAgIGlmICh0eXBlb2YgTW9kdWxlWydwcmVSdW4nXSA9
PSAnZnVuY3Rpb24nKSBNb2R1bGVbJ3ByZVJ1biddID0gW01vZHVsZVsncHJlUnVuJ11dOwotICAg
IHdoaWxlIChNb2R1bGVbJ3ByZVJ1biddLmxlbmd0aCkgewotICAgICAgYWRkT25QcmVSdW4oTW9k
dWxlWydwcmVSdW4nXS5zaGlmdCgpKTsKLSAgICB9Ci0gIH0KLSAgY2FsbFJ1bnRpbWVDYWxsYmFj
a3MoX19BVFBSRVJVTl9fKTsKLX0KLWZ1bmN0aW9uIGVuc3VyZUluaXRSdW50aW1lKCkgewotICBp
ZiAocnVudGltZUluaXRpYWxpemVkKSByZXR1cm47Ci0gIHJ1bnRpbWVJbml0aWFsaXplZCA9IHRy
dWU7Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRJTklUX18pOwotfQotZnVuY3Rpb24gcHJl
TWFpbigpIHsKLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVE1BSU5fXyk7Ci19Ci1mdW5jdGlv
biBleGl0UnVudGltZSgpIHsKLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVEVYSVRfXyk7Ci19
Ci1mdW5jdGlvbiBwb3N0UnVuKCkgewotICAvLyBjb21wYXRpYmlsaXR5IC0gbWVyZ2UgaW4gYW55
dGhpbmcgZnJvbSBNb2R1bGVbJ3Bvc3RSdW4nXSBhdCB0aGlzIHRpbWUKLSAgaWYgKE1vZHVsZVsn
cG9zdFJ1biddKSB7Ci0gICAgaWYgKHR5cGVvZiBNb2R1bGVbJ3Bvc3RSdW4nXSA9PSAnZnVuY3Rp
b24nKSBNb2R1bGVbJ3Bvc3RSdW4nXSA9IFtNb2R1bGVbJ3Bvc3RSdW4nXV07Ci0gICAgd2hpbGUg
KE1vZHVsZVsncG9zdFJ1biddLmxlbmd0aCkgewotICAgICAgYWRkT25Qb3N0UnVuKE1vZHVsZVsn
cG9zdFJ1biddLnNoaWZ0KCkpOwotICAgIH0KLSAgfQotICBjYWxsUnVudGltZUNhbGxiYWNrcyhf
X0FUUE9TVFJVTl9fKTsKLX0KLWZ1bmN0aW9uIGFkZE9uUHJlUnVuKGNiKSB7Ci0gIF9fQVRQUkVS
VU5fXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25QcmVSdW4nXSA9IE1vZHVsZS5hZGRP
blByZVJ1biA9IGFkZE9uUHJlUnVuOwotZnVuY3Rpb24gYWRkT25Jbml0KGNiKSB7Ci0gIF9fQVRJ
TklUX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uSW5pdCddID0gTW9kdWxlLmFkZE9u
SW5pdCA9IGFkZE9uSW5pdDsKLWZ1bmN0aW9uIGFkZE9uUHJlTWFpbihjYikgewotICBfX0FUTUFJ
Tl9fLnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPblByZU1haW4nXSA9IE1vZHVsZS5hZGRP
blByZU1haW4gPSBhZGRPblByZU1haW47Ci1mdW5jdGlvbiBhZGRPbkV4aXQoY2IpIHsKLSAgX19B
VEVYSVRfXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25FeGl0J10gPSBNb2R1bGUuYWRk
T25FeGl0ID0gYWRkT25FeGl0OwotZnVuY3Rpb24gYWRkT25Qb3N0UnVuKGNiKSB7Ci0gIF9fQVRQ
T1NUUlVOX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uUG9zdFJ1biddID0gTW9kdWxl
LmFkZE9uUG9zdFJ1biA9IGFkZE9uUG9zdFJ1bjsKLS8vIFRvb2xzCi0vLyBUaGlzIHByb2Nlc3Nl
cyBhIEpTIHN0cmluZyBpbnRvIGEgQy1saW5lIGFycmF5IG9mIG51bWJlcnMsIDAtdGVybWluYXRl
ZC4KLS8vIEZvciBMTFZNLW9yaWdpbmF0aW5nIHN0cmluZ3MsIHNlZSBwYXJzZXIuanM6cGFyc2VM
TFZNU3RyaW5nIGZ1bmN0aW9uCi1mdW5jdGlvbiBpbnRBcnJheUZyb21TdHJpbmcoc3RyaW5neSwg
ZG9udEFkZE51bGwsIGxlbmd0aCAvKiBvcHRpb25hbCAqLykgewotICB2YXIgcmV0ID0gKG5ldyBS
dW50aW1lLlVURjhQcm9jZXNzb3IoKSkucHJvY2Vzc0pTU3RyaW5nKHN0cmluZ3kpOwotICBpZiAo
bGVuZ3RoKSB7Ci0gICAgcmV0Lmxlbmd0aCA9IGxlbmd0aDsKLSAgfQotICBpZiAoIWRvbnRBZGRO
dWxsKSB7Ci0gICAgcmV0LnB1c2goMCk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVsZVsn
aW50QXJyYXlGcm9tU3RyaW5nJ10gPSBpbnRBcnJheUZyb21TdHJpbmc7Ci1mdW5jdGlvbiBpbnRB
cnJheVRvU3RyaW5nKGFycmF5KSB7Ci0gIHZhciByZXQgPSBbXTsKLSAgZm9yICh2YXIgaSA9IDA7
IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewotICAgIHZhciBjaHIgPSBhcnJheVtpXTsKLSAgICBp
ZiAoY2hyID4gMHhGRikgewotICAgICAgY2hyICY9IDB4RkY7Ci0gICAgfQotICAgIHJldC5wdXNo
KFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyKSk7Ci0gIH0KLSAgcmV0dXJuIHJldC5qb2luKCcnKTsK
LX0KLU1vZHVsZVsnaW50QXJyYXlUb1N0cmluZyddID0gaW50QXJyYXlUb1N0cmluZzsKLS8vIFdy
aXRlIGEgSmF2YXNjcmlwdCBhcnJheSB0byBzb21ld2hlcmUgaW4gdGhlIGhlYXAKLWZ1bmN0aW9u
IHdyaXRlU3RyaW5nVG9NZW1vcnkoc3RyaW5nLCBidWZmZXIsIGRvbnRBZGROdWxsKSB7Ci0gIHZh
ciBhcnJheSA9IGludEFycmF5RnJvbVN0cmluZyhzdHJpbmcsIGRvbnRBZGROdWxsKTsKLSAgdmFy
IGkgPSAwOwotICB3aGlsZSAoaSA8IGFycmF5Lmxlbmd0aCkgewotICAgIHZhciBjaHIgPSBhcnJh
eVtpXTsKLSAgICBIRUFQOFsoKChidWZmZXIpKyhpKSl8MCldPWNocgotICAgIGkgPSBpICsgMTsK
LSAgfQotfQotTW9kdWxlWyd3cml0ZVN0cmluZ1RvTWVtb3J5J10gPSB3cml0ZVN0cmluZ1RvTWVt
b3J5OwotZnVuY3Rpb24gd3JpdGVBcnJheVRvTWVtb3J5KGFycmF5LCBidWZmZXIpIHsKLSAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewotICAgIEhFQVA4WygoKGJ1ZmZl
cikrKGkpKXwwKV09YXJyYXlbaV07Ci0gIH0KLX0KLU1vZHVsZVsnd3JpdGVBcnJheVRvTWVtb3J5
J10gPSB3cml0ZUFycmF5VG9NZW1vcnk7Ci1mdW5jdGlvbiB1blNpZ24odmFsdWUsIGJpdHMsIGln
bm9yZSwgc2lnKSB7Ci0gIGlmICh2YWx1ZSA+PSAwKSB7Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9
Ci0gIHJldHVybiBiaXRzIDw9IDMyID8gMipNYXRoLmFicygxIDw8IChiaXRzLTEpKSArIHZhbHVl
IC8vIE5lZWQgc29tZSB0cmlja2VyeSwgc2luY2UgaWYgYml0cyA9PSAzMiwgd2UgYXJlIHJpZ2h0
IGF0IHRoZSBsaW1pdCBvZiB0aGUgYml0cyBKUyB1c2VzIGluIGJpdHNoaWZ0cwotICAgICAgICAg
ICAgICAgICAgICA6IE1hdGgucG93KDIsIGJpdHMpICAgICAgICAgKyB2YWx1ZTsKLX0KLWZ1bmN0
aW9uIHJlU2lnbih2YWx1ZSwgYml0cywgaWdub3JlLCBzaWcpIHsKLSAgaWYgKHZhbHVlIDw9IDAp
IHsKLSAgICByZXR1cm4gdmFsdWU7Ci0gIH0KLSAgdmFyIGhhbGYgPSBiaXRzIDw9IDMyID8gTWF0
aC5hYnMoMSA8PCAoYml0cy0xKSkgLy8gYWJzIGlzIG5lZWRlZCBpZiBiaXRzID09IDMyCi0gICAg
ICAgICAgICAgICAgICAgICAgICA6IE1hdGgucG93KDIsIGJpdHMtMSk7Ci0gIGlmICh2YWx1ZSA+
PSBoYWxmICYmIChiaXRzIDw9IDMyIHx8IHZhbHVlID4gaGFsZikpIHsgLy8gZm9yIGh1Z2UgdmFs
dWVzLCB3ZSBjYW4gaGl0IHRoZSBwcmVjaXNpb24gbGltaXQgYW5kIGFsd2F5cyBnZXQgdHJ1ZSBo
ZXJlLiBzbyBkb24ndCBkbyB0aGF0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gYnV0LCBpbiBnZW5lcmFsIHRoZXJlIGlzIG5vIHBlcmZl
Y3Qgc29sdXRpb24gaGVyZS4gV2l0aCA2NC1iaXQgaW50cywgd2UgZ2V0IHJvdW5kaW5nIGFuZCBl
cnJvcnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBUT0RPOiBJbiBpNjQgbW9kZSAxLCByZXNpZ24gdGhlIHR3byBwYXJ0cyBzZXBhcmF0
ZWx5IGFuZCBzYWZlbHkKLSAgICB2YWx1ZSA9IC0yKmhhbGYgKyB2YWx1ZTsgLy8gQ2Fubm90IGJp
dHNoaWZ0IGhhbGYsIGFzIGl0IG1heSBiZSBhdCB0aGUgbGltaXQgb2YgdGhlIGJpdHMgSlMgdXNl
cyBpbiBiaXRzaGlmdHMKLSAgfQotICByZXR1cm4gdmFsdWU7Ci19Ci1pZiAoIU1hdGhbJ2ltdWwn
XSkgTWF0aFsnaW11bCddID0gZnVuY3Rpb24oYSwgYikgewotICB2YXIgYWggID0gYSA+Pj4gMTY7
Ci0gIHZhciBhbCA9IGEgJiAweGZmZmY7Ci0gIHZhciBiaCAgPSBiID4+PiAxNjsKLSAgdmFyIGJs
ID0gYiAmIDB4ZmZmZjsKLSAgcmV0dXJuIChhbCpibCArICgoYWgqYmwgKyBhbCpiaCkgPDwgMTYp
KXwwOwotfTsKLU1hdGguaW11bCA9IE1hdGhbJ2ltdWwnXTsKLS8vIEEgY291bnRlciBvZiBkZXBl
bmRlbmNpZXMgZm9yIGNhbGxpbmcgcnVuKCkuIElmIHdlIG5lZWQgdG8KLS8vIGRvIGFzeW5jaHJv
bm91cyB3b3JrIGJlZm9yZSBydW5uaW5nLCBpbmNyZW1lbnQgdGhpcyBhbmQKLS8vIGRlY3JlbWVu
dCBpdC4gSW5jcmVtZW50aW5nIG11c3QgaGFwcGVuIGluIGEgcGxhY2UgbGlrZQotLy8gUFJFX1JV
Tl9BRERJVElPTlMgKHVzZWQgYnkgZW1jYyB0byBhZGQgZmlsZSBwcmVsb2FkaW5nKS4KLS8vIE5v
dGUgdGhhdCB5b3UgY2FuIGFkZCBkZXBlbmRlbmNpZXMgaW4gcHJlUnVuLCBldmVuIHRob3VnaAot
Ly8gaXQgaGFwcGVucyByaWdodCBiZWZvcmUgcnVuIC0gcnVuIHdpbGwgYmUgcG9zdHBvbmVkIHVu
dGlsCi0vLyB0aGUgZGVwZW5kZW5jaWVzIGFyZSBtZXQuCi12YXIgcnVuRGVwZW5kZW5jaWVzID0g
MDsKLXZhciBydW5EZXBlbmRlbmN5VHJhY2tpbmcgPSB7fTsKLXZhciBjYWxsZWRJbml0ID0gZmFs
c2UsIGNhbGxlZFJ1biA9IGZhbHNlOwotdmFyIHJ1bkRlcGVuZGVuY3lXYXRjaGVyID0gbnVsbDsK
LWZ1bmN0aW9uIGFkZFJ1bkRlcGVuZGVuY3koaWQpIHsKLSAgcnVuRGVwZW5kZW5jaWVzKys7Ci0g
IGlmIChNb2R1bGVbJ21vbml0b3JSdW5EZXBlbmRlbmNpZXMnXSkgewotICAgIE1vZHVsZVsnbW9u
aXRvclJ1bkRlcGVuZGVuY2llcyddKHJ1bkRlcGVuZGVuY2llcyk7Ci0gIH0KLSAgaWYgKGlkKSB7
Ci0gICAgYXNzZXJ0KCFydW5EZXBlbmRlbmN5VHJhY2tpbmdbaWRdKTsKLSAgICBydW5EZXBlbmRl
bmN5VHJhY2tpbmdbaWRdID0gMTsKLSAgfSBlbHNlIHsKLSAgICBNb2R1bGUucHJpbnRFcnIoJ3dh
cm5pbmc6IHJ1biBkZXBlbmRlbmN5IGFkZGVkIHdpdGhvdXQgSUQnKTsKLSAgfQotfQotTW9kdWxl
WydhZGRSdW5EZXBlbmRlbmN5J10gPSBhZGRSdW5EZXBlbmRlbmN5OwotZnVuY3Rpb24gcmVtb3Zl
UnVuRGVwZW5kZW5jeShpZCkgewotICBydW5EZXBlbmRlbmNpZXMtLTsKLSAgaWYgKE1vZHVsZVsn
bW9uaXRvclJ1bkRlcGVuZGVuY2llcyddKSB7Ci0gICAgTW9kdWxlWydtb25pdG9yUnVuRGVwZW5k
ZW5jaWVzJ10ocnVuRGVwZW5kZW5jaWVzKTsKLSAgfQotICBpZiAoaWQpIHsKLSAgICBhc3NlcnQo
cnVuRGVwZW5kZW5jeVRyYWNraW5nW2lkXSk7Ci0gICAgZGVsZXRlIHJ1bkRlcGVuZGVuY3lUcmFj
a2luZ1tpZF07Ci0gIH0gZWxzZSB7Ci0gICAgTW9kdWxlLnByaW50RXJyKCd3YXJuaW5nOiBydW4g
ZGVwZW5kZW5jeSByZW1vdmVkIHdpdGhvdXQgSUQnKTsKLSAgfQotICBpZiAocnVuRGVwZW5kZW5j
aWVzID09IDApIHsKLSAgICBpZiAocnVuRGVwZW5kZW5jeVdhdGNoZXIgIT09IG51bGwpIHsKLSAg
ICAgIGNsZWFySW50ZXJ2YWwocnVuRGVwZW5kZW5jeVdhdGNoZXIpOwotICAgICAgcnVuRGVwZW5k
ZW5jeVdhdGNoZXIgPSBudWxsOwotICAgIH0gCi0gICAgLy8gSWYgcnVuIGhhcyBuZXZlciBiZWVu
IGNhbGxlZCwgYW5kIHdlIHNob3VsZCBjYWxsIHJ1biAoSU5WT0tFX1JVTiBpcyB0cnVlLCBhbmQg
TW9kdWxlLm5vSW5pdGlhbFJ1biBpcyBub3QgZmFsc2UpCi0gICAgaWYgKCFjYWxsZWRSdW4gJiYg
c2hvdWxkUnVuTm93KSBydW4oKTsKLSAgfQotfQotTW9kdWxlWydyZW1vdmVSdW5EZXBlbmRlbmN5
J10gPSByZW1vdmVSdW5EZXBlbmRlbmN5OwotTW9kdWxlWyJwcmVsb2FkZWRJbWFnZXMiXSA9IHt9
OyAvLyBtYXBzIHVybCB0byBpbWFnZSBkYXRhCi1Nb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdID0g
e307IC8vIG1hcHMgdXJsIHRvIGF1ZGlvIGRhdGEKLWZ1bmN0aW9uIGxvYWRNZW1vcnlJbml0aWFs
aXplcihmaWxlbmFtZSkgewotICBmdW5jdGlvbiBhcHBseURhdGEoZGF0YSkgewotICAgIEhFQVBV
OC5zZXQoZGF0YSwgU1RBVElDX0JBU0UpOwotICB9Ci0gIC8vIGFsd2F5cyBkbyB0aGlzIGFzeW5j
aHJvbm91c2x5LCB0byBrZWVwIHNoZWxsIGFuZCB3ZWIgYXMgc2ltaWxhciBhcyBwb3NzaWJsZQot
ICBhZGRPblByZVJ1bihmdW5jdGlvbigpIHsKLSAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSB8
fCBFTlZJUk9OTUVOVF9JU19TSEVMTCkgewotICAgICAgYXBwbHlEYXRhKE1vZHVsZVsncmVhZEJp
bmFyeSddKGZpbGVuYW1lKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIEJyb3dzZXIuYXN5bmNMb2Fk
KGZpbGVuYW1lLCBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIGFwcGx5RGF0YShkYXRhKTsKLSAg
ICAgIH0sIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgdGhyb3cgJ2NvdWxkIG5vdCBsb2FkIG1l
bW9yeSBpbml0aWFsaXplciAnICsgZmlsZW5hbWU7Ci0gICAgICB9KTsKLSAgICB9Ci0gIH0pOwot
fQotLy8gPT09IEJvZHkgPT09Ci1TVEFUSUNfQkFTRSA9IDg7Ci1TVEFUSUNUT1AgPSBTVEFUSUNf
QkFTRSArIDE2MzkyOwotdmFyIF9zdGRvdXQ7Ci12YXIgX3N0ZGluOwotdmFyIF9zdGRlcnI7Ci0v
KiBnbG9iYWwgaW5pdGlhbGl6ZXJzICovIF9fQVRJTklUX18ucHVzaCh7IGZ1bmM6IGZ1bmN0aW9u
KCkgeyBydW5Qb3N0U2V0cygpIH0gfSx7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBfX0dMT0JBTF9fSV9h
KCkgfSB9LHsgZnVuYzogZnVuY3Rpb24oKSB7IF9fR0xPQkFMX19JX2E4KCkgfSB9KTsKLXZhciBf
X19mc211ODsKLXZhciBfX19kc29faGFuZGxlOwotdmFyIF9fWlRWTjEwX19jeHhhYml2MTIwX19z
aV9jbGFzc190eXBlX2luZm9FOwotdmFyIF9fWlRWTjEwX19jeHhhYml2MTE3X19jbGFzc190eXBl
X2luZm9FOwotdmFyIF9fWk5TdDNfXzExMl9fcnNfZGVmYXVsdEQxRXY7Ci12YXIgX19aTlN0MTNy
dW50aW1lX2Vycm9yQzFFUEtjOwotdmFyIF9fWk5TdDEzcnVudGltZV9lcnJvckQxRXY7Ci12YXIg
X19aTlN0MTJsZW5ndGhfZXJyb3JEMUV2OwotdmFyIF9fWk5TdDNfXzE2bG9jYWxlQzFFdjsKLXZh
ciBfX1pOU3QzX18xNmxvY2FsZUMxRVJLUzBfOwotdmFyIF9fWk5TdDNfXzE2bG9jYWxlRDFFdjsK
LXZhciBfX1pOU3Q4YmFkX2Nhc3RDMUV2OwotdmFyIF9fWk5TdDhiYWRfY2FzdEQxRXY7Ci12YXIg
X3N0ZG91dCA9IF9zdGRvdXQ9YWxsb2NhdGUoWzAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9D
X1NUQVRJQyk7Ci12YXIgX3N0ZGluID0gX3N0ZGluPWFsbG9jYXRlKFswLDAsMCwwLDAsMCwwLDBd
LCAiaTgiLCBBTExPQ19TVEFUSUMpOwotdmFyIF9zdGRlcnIgPSBfc3RkZXJyPWFsbG9jYXRlKFsw
LDAsMCwwLDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOwotX19aVFZOMTBfX2N4eGFiaXYx
MjBfX3NpX2NsYXNzX3R5cGVfaW5mb0U9YWxsb2NhdGUoWzAsMCwwLDAsMjAwLDM3LDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLV9fWlRWTjEwX19jeHhh
Yml2MTE3X19jbGFzc190eXBlX2luZm9FPWFsbG9jYXRlKFswLDAsMCwwLDIxNiwzNywwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci0vKiBtZW1vcnkgaW5p
dGlhbGl6ZXIgKi8gYWxsb2NhdGUoWzAsMCwwLDAsMCwwLDM2LDY0LDAsMCwwLDAsMCwwLDg5LDY0
LDAsMCwwLDAsMCwxMzYsMTk1LDY0LDAsMCwwLDAsMTMyLDIxNSwxNTEsNjUsMCwxMjgsMjI0LDU1
LDEyMSwxOTUsNjUsNjcsMjMsMTEwLDUsMTgxLDE4MSwxODQsMTQ3LDcwLDI0NSwyNDksNjMsMjMz
LDMsNzksNTYsNzcsNTAsMjksNDgsMjQ5LDcyLDExOSwxMzAsOTAsNjAsMTkxLDExNSwxMjcsMjIx
LDc5LDIxLDExNyw3NCwxMTcsMTA4LDAsMCwwLDAsMCw3NCwxMTcsMTEwLDAsMCwwLDAsMCw2NSwx
MTIsMTE0LDAsMCwwLDAsMCw3Nyw5NywxMTQsMCwwLDAsMCwwLDcwLDEwMSw5OCwwLDAsMCwwLDAs
NzQsOTcsMTEwLDAsMCwwLDAsMCw2OCwxMDEsOTksMTAxLDEwOSw5OCwxMDEsMTE0LDAsMCwwLDAs
MCwwLDAsMCw3OCwxMTEsMTE4LDEwMSwxMDksOTgsMTAxLDExNCwwLDAsMCwwLDAsMCwwLDAsNzks
OTksMTE2LDExMSw5OCwxMDEsMTE0LDAsODMsMTAxLDExMiwxMTYsMTAxLDEwOSw5OCwxMDEsMTE0
LDAsMCwwLDAsMCwwLDAsMTE3LDExMCwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEw
MCwzMiwxMDgsMTExLDk5LDk3LDEwOCwxMDEsMzIsMTAyLDExMSwxMTQsMzIsMTE1LDExNiw5Nywx
MTAsMTAwLDk3LDExNCwxMDAsMzIsMTA1LDExMCwxMTIsMTE3LDExNiwwLDAsMCw2NSwxMTcsMTAz
LDExNywxMTUsMTE2LDAsMCw3NCwxMTcsMTA4LDEyMSwwLDAsMCwwLDc0LDExNywxMTAsMTAxLDAs
MCwwLDAsNzcsOTcsMTIxLDAsMCwwLDAsMCw2NSwxMTIsMTE0LDEwNSwxMDgsMCwwLDAsNzcsOTcs
MTE0LDk5LDEwNCwwLDAsMCw3MCwxMDEsOTgsMTE0LDExNyw5NywxMTQsMTIxLDAsMCwwLDAsMCww
LDAsMCw3NCw5NywxMTAsMTE3LDk3LDExNCwxMjEsMCw2OCwwLDAsMCwxMDEsMCwwLDAsOTksMCww
LDAsMCwwLDAsMCw3OCwwLDAsMCwxMTEsMCwwLDAsMTE4LDAsMCwwLDAsMCwwLDAsNzksMCwwLDAs
OTksMCwwLDAsMTE2LDAsMCwwLDAsMCwwLDAsODMsMCwwLDAsMTAxLDAsMCwwLDExMiwwLDAsMCww
LDAsMCwwLDk4LDk3LDExNSwxMDUsOTksOTUsMTE1LDExNiwxMTQsMTA1LDExMCwxMDMsMCwwLDAs
MCw2NSwwLDAsMCwxMTcsMCwwLDAsMTAzLDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsMTE3LDAsMCww
LDEwOCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMCwwLDAsMCw3
NywwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCwxMTIsMCwwLDAsMTE0
LDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsOTcsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsNzAsMCww
LDAsMTAxLDAsMCwwLDk4LDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsOTcsMCwwLDAsMTEwLDAsMCww
LDAsMCwwLDAsNjgsMCwwLDAsMTAxLDAsMCwwLDk5LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAs
OTgsMCwwLDAsMTAxLDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzgsMCwwLDAsMTEx
LDAsMCwwLDExOCwwLDAsMCwxMDEsMCwwLDAsMTA5LDAsMCwwLDk4LDAsMCwwLDEwMSwwLDAsMCwx
MTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc5LDAsMCwwLDk5LDAsMCwwLDExNiwwLDAsMCwxMTEs
MCwwLDAsOTgsMCwwLDAsMTAxLDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDEwMSww
LDAsMCwxMTIsMCwwLDAsMTE2LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAsOTgsMCwwLDAsMTAx
LDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDY1LDAsMCwwLDExNywwLDAsMCwxMDMsMCwwLDAsMTE3
LDAsMCwwLDExNSwwLDAsMCwxMTYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNyww
LDAsMCwxMDgsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCwxMTcsMCww
LDAsMTEwLDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAsMTEyLDAsMCww
LDExNCwwLDAsMCwxMDUsMCwwLDAsMTA4LDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsOTcsMCwwLDAs
MTE0LDAsMCwwLDk5LDAsMCwwLDEwNCwwLDAsMCwwLDAsMCwwLDcwLDAsMCwwLDEwMSwwLDAsMCw5
OCwwLDAsMCwxMTQsMCwwLDAsMTE3LDAsMCwwLDk3LDAsMCwwLDExNCwwLDAsMCwxMjEsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDk3LDAsMCwwLDExMCwwLDAsMCwxMTcsMCwwLDAsOTcs
MCwwLDAsMTE0LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDgwLDc3LDAsMCwwLDAsMCwwLDY1LDc3
LDAsMCwwLDAsMCwwLDgwLDAsMCwwLDc3LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCw3
NywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTA4LDExMSw5OSw5NywxMDgsMTAxLDMyLDExMCwxMTEs
MTE2LDMyLDExNSwxMTcsMTEyLDExMiwxMTEsMTE0LDExNiwxMDEsMTAwLDAsMCwwLDAsMzcsMCww
LDAsNzMsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAs
ODMsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsMTEyLDAsMCwwLDAsMCwwLDAsMzcsNzMsNTgsMzcs
NzcsNTgsMzcsODMsMzIsMzcsMTEyLDAsMCwwLDAsMCwzNywwLDAsMCw5NywwLDAsMCwzMiwwLDAs
MCwzNywwLDAsMCw5OCwwLDAsMCwzMiwwLDAsMCwzNywwLDAsMCwxMDAsMCwwLDAsMzIsMCwwLDAs
MzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcs
MCwwLDAsODMsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsODksMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDM3LDk3LDMyLDM3LDk4LDMyLDM3LDEwMCwzMiwzNyw3Miw1OCwzNyw3Nyw1OCwzNyw4MywzMiwz
Nyw4OSwwLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCww
LDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNyw3Miw1OCwzNyw3
Nyw1OCwzNyw4MywwLDAsMCwwLDAsMCwwLDAsMTE1LDExNiwxMDAsNTgsNTgsOTgsOTcsMTAwLDk1
LDk3LDEwOCwxMDgsMTExLDk5LDAsMCwzNywwLDAsMCwxMDksMCwwLDAsNDcsMCwwLDAsMzcsMCww
LDAsMTAwLDAsMCwwLDQ3LDAsMCwwLDM3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MzcsMTA5LDQ3LDM3LDEwMCw0NywzNywxMjEsMCwwLDAsMCwwLDAsMCwwLDEwMiwwLDAsMCw5Nyww
LDAsMCwxMDgsMCwwLDAsMTE1LDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDEwMiw5NywxMDgsMTE1
LDEwMSwwLDAsMCwxMTYsMCwwLDAsMTE0LDAsMCwwLDExNywwLDAsMCwxMDEsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDExNiwxMTQsMTE3LDEwMSwwLDAsMCwwLDU4LDMyLDAsMCwwLDAsMCwwLDEwNSwx
MTEsMTE1LDk1LDk4LDk3LDExNSwxMDEsNTgsNTgsOTksMTA4LDEwMSw5NywxMTQsMCwzNywxMTIs
MCwwLDAsMCwwLDAsMTE1LDExNiwxMDAsNTgsNTgsOTgsOTcsMTAwLDk1LDk5LDk3LDExNSwxMTYs
MCwwLDAsNjcsMCwwLDAsMCwwLDAsMCwxMTgsMTAxLDk5LDExNiwxMTEsMTE0LDAsMCwzNyw0Niw0
OCw3NiwxMDIsMCwwLDAsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiwzMiwxMDEs
MTE0LDExNCwxMTEsMTE0LDAsODMsOTcsMTE2LDAsMCwwLDAsMCw3MCwxMTQsMTA1LDAsMCwwLDAs
MCw4NCwxMDQsMTE3LDAsMCwwLDAsMCwzNyw3NiwxMDIsMCwwLDAsMCwwLDEwNSwxMTEsMTE1LDEx
NiwxMTQsMTAxLDk3LDEwOSwwLDAsMCwwLDAsMCwwLDAsODcsMTAxLDEwMCwwLDAsMCwwLDAsODQs
MTE3LDEwMSwwLDAsMCwwLDAsNzcsMTExLDExMCwwLDAsMCwwLDAsODMsMTE3LDExMCwwLDAsMCww
LDAsODMsOTcsMTE2LDExNywxMTQsMTAwLDk3LDEyMSwwLDAsMCwwLDAsMCwwLDAsNzAsMTE0LDEw
NSwxMDAsOTcsMTIxLDAsMCw4NCwxMDQsMTE3LDExNCwxMTUsMTAwLDk3LDEyMSwwLDAsMCwwLDAs
MCwwLDAsODcsMTAxLDEwMCwxMTAsMTAxLDExNSwxMDAsOTcsMTIxLDAsMCwwLDAsMCwwLDAsODQs
MTE3LDEwMSwxMTUsMTAwLDk3LDEyMSwwLDc3LDExMSwxMTAsMTAwLDk3LDEyMSwwLDAsODMsMTE3
LDExMCwxMDAsOTcsMTIxLDAsMCw4MywwLDAsMCw5NywwLDAsMCwxMTYsMCwwLDAsMCwwLDAsMCw3
MCwwLDAsMCwxMTQsMCwwLDAsMTA1LDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTA0LDAsMCwwLDEx
NywwLDAsMCwwLDAsMCwwLDg3LDAsMCwwLDEwMSwwLDAsMCwxMDAsMCwwLDAsMCwwLDAsMCw4NCww
LDAsMCwxMTcsMCwwLDAsMTAxLDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsMTExLDAsMCwwLDExMCww
LDAsMCwwLDAsMCwwLDExNywxMTAsMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwz
MiwxMDUsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTUsOTksOTcsMTE2LDEwMSwxMDMsMTEx
LDExNCwxMjEsMzIsMTAxLDExNCwxMTQsMTExLDExNCwwLDAsMCwwLDAsODMsMCwwLDAsMTE3LDAs
MCwwLDExMCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDk3LDAsMCwwLDExNiwwLDAsMCwxMTcsMCww
LDAsMTE0LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDcwLDAsMCwwLDExNCwwLDAsMCwxMDUsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTA0LDAsMCwwLDExNywwLDAsMCwxMTQsMCwwLDAs
MTE1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg3
LDAsMCwwLDEwMSwwLDAsMCwxMDAsMCwwLDAsMTEwLDAsMCwwLDEwMSwwLDAsMCwxMTUsMCwwLDAs
MTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDg0LDAsMCwwLDExNywwLDAsMCwx
MDEsMCwwLDAsMTE1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw3
NywwLDAsMCwxMTEsMCwwLDAsMTEwLDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMTAwLDAsMCwwLDk3
LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjgsMTAxLDk5LDAsMCwwLDAsMCw3OCwx
MTEsMTE4LDAsMCwwLDAsMCw3OSw5OSwxMTYsMCwwLDAsMCwwLDgzLDEwMSwxMTIsMCwwLDAsMCww
LDY1LDExNywxMDMsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsMCwwLDAsMCww
LDAsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsMCwwLDAsMCwwLDAsMzcsMCwwLDAsODks
MCwwLDAsNDUsMCwwLDAsMzcsMCwwLDAsMTA5LDAsMCwwLDQ1LDAsMCwwLDM3LDAsMCwwLDEwMCww
LDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAs
MCwzNywwLDAsMCw4MywwLDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3
NywwLDAsMCwwLDAsMCwwLDM3LDAsMCwwLDczLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAs
MCwwLDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDExMiwwLDAs
MCwwLDAsMCwwLDM3LDAsMCwwLDEwOSwwLDAsMCw0NywwLDAsMCwzNywwLDAsMCwxMDAsMCwwLDAs
NDcsMCwwLDAsMzcsMCwwLDAsMTIxLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3
LDAsMCwwLDc3LDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDM3LDcyLDU4LDM3LDc3
LDU4LDM3LDgzLDM3LDcyLDU4LDM3LDc3LDAsMCwwLDM3LDczLDU4LDM3LDc3LDU4LDM3LDgzLDMy
LDM3LDExMiwwLDAsMCwwLDAsMzcsODksNDUsMzcsMTA5LDQ1LDM3LDEwMCwzNywxMDksNDcsMzcs
MTAwLDQ3LDM3LDEyMSwzNyw3Miw1OCwzNyw3Nyw1OCwzNyw4MywzNywwLDAsMCwwLDAsMCwwLDM3
LDExMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDIyNCwzMSwwLDAsMzAsMCwwLDAsMTE2LDAsMCwwLDk4
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQwLDMxLDAsMCwxOTYsMCww
LDAsMTY0LDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwz
MiwwLDAsNzAsMCwwLDAsNiwxLDAsMCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDE2LDMyLDAsMCw5NCwwLDAsMCw4LDAsMCwwLDExMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDMyLDMyLDAsMCw5NCwwLDAsMCwyMCwwLDAsMCwxMTAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw1NiwzMiwwLDAsMTY4LDAsMCwwLDg0LDAs
MCwwLDQ4LDAsMCwwLDIsMCwwLDAsOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDg4LDMyLDAsMCwyMzAsMCwwLDAsMTg2LDAsMCwwLDQ4LDAsMCwwLDQsMCwwLDAsMTQsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjAsMzIsMCwwLDE2MiwwLDAsMCwx
ODgsMCwwLDAsNDgsMCwwLDAsOCwwLDAsMCwxMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDE1MiwzMiwwLDAsMjU0LDAsMCwwLDE0MCwwLDAsMCw0OCwwLDAsMCw2LDAsMCww
LDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNTYsMzMsMCwwLDI1Miww
LDAsMCwxNiwwLDAsMCw0OCwwLDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg4
LDMzLDAsMCwxNjAsMCwwLDAsMTA4LDAsMCwwLDQ4LDAsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMTIwLDMzLDAsMCwzOCwwLDAsMCwxMTAsMCwwLDAsNDgsMCwwLDAsMTIwLDAs
MCwwLDQsMCwwLDAsMzIsMCwwLDAsNiwwLDAsMCwyMCwwLDAsMCw1NiwwLDAsMCwyLDAsMCwwLDI0
OCwyNTUsMjU1LDI1NSwxMjAsMzMsMCwwLDIyLDAsMCwwLDgsMCwwLDAsMzIsMCwwLDAsMTIsMCww
LDAsMiwwLDAsMCwzMCwwLDAsMCwxMjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwxNjAsMzMsMCwwLDI0MiwwLDAsMCwyMjIsMCwwLDAsNDgsMCwwLDAsMjAsMCwwLDAsMTYs
MCwwLDAsNjAsMCwwLDAsMjYsMCwwLDAsMTgsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDI0OCwyNTUs
MjU1LDI1NSwxNjAsMzMsMCwwLDcwLDAsMCwwLDEwNCwwLDAsMCwxMTYsMCwwLDAsMTIyLDAsMCww
LDY0LDAsMCwwLDQ0LDAsMCwwLDU0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMjAwLDMzLDAsMCw3OCwwLDAsMCwxOTAsMCwwLDAsNDgsMCwwLDAsNDgsMCwwLDAsNDAsMCww
LDAsOCwwLDAsMCwzOCwwLDAsMCw0OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMTYs
MzMsMCwwLDU4LDAsMCwwLDY0LDAsMCwwLDQ4LDAsMCwwLDQyLDAsMCwwLDg0LDAsMCwwLDEyLDAs
MCwwLDU0LDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjMyLDMzLDAsMCwy
NDYsMCwwLDAsMiwwLDAsMCw0OCwwLDAsMCwyNCwwLDAsMCwzMCwwLDAsMCw2NCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCw4LDM0LDAsMCw0NiwwLDAsMCwyMDgsMCwwLDAsNDgsMCwwLDAs
MzYsMCwwLDAsMTQsMCwwLDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDAsMzQs
MCwwLDIxMCwwLDAsMCwxMTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDgsMzQsMCww
LDI4LDAsMCwwLDEzOCwwLDAsMCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDY0LDM0LDAsMCw2LDAsMCwwLDE3NCwwLDAsMCw0OCwwLDAsMCw4LDAsMCwwLDYsMCwwLDAs
MTIsMCwwLDAsNCwwLDAsMCwxMCwwLDAsMCw0LDAsMCwwLDIsMCwwLDAsMTIsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw5NiwzNCwwLDAsOTgsMCwwLDAsMTgsMCwwLDAsNDgs
MCwwLDAsMjAsMCwwLDAsMjQsMCwwLDAsMzQsMCwwLDAsMjIsMCwwLDAsMjIsMCwwLDAsOCwwLDAs
MCw2LDAsMCwwLDE4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDM0
LDAsMCw0MCwwLDAsMCwyNCwwLDAsMCw0OCwwLDAsMCw0OCwwLDAsMCw0NiwwLDAsMCwzOCwwLDAs
MCw0MCwwLDAsMCwzMCwwLDAsMCw0NCwwLDAsMCwzNiwwLDAsMCw1NCwwLDAsMCw1MiwwLDAsMCw1
MCwwLDAsMCwyNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjAsMzQsMCwwLDUyLDAs
MCwwLDQsMCwwLDAsNDgsMCwwLDAsNzYsMCwwLDAsNzAsMCwwLDAsNjQsMCwwLDAsNjYsMCwwLDAs
NTgsMCwwLDAsNjgsMCwwLDAsNjIsMCwwLDAsMjgsMCwwLDAsNzQsMCwwLDAsNzIsMCwwLDAsNDIs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTkyLDM0LDAsMCw3NCwwLDAsMCw5MiwwLDAs
MCw0OCwwLDAsMCwxNiwwLDAsMCwxMiwwLDAsMCwxMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwyMDgsMzQsMCwwLDI2LDAsMCwwLDE3NiwwLDAsMCw0OCwwLDAsMCwyMiwwLDAsMCwxNCww
LDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIyNCwzNCwwLDAsMjI4LDAsMCww
LDEzMCwwLDAsMCw0OCwwLDAsMCwxNCwwLDAsMCw0LDAsMCwwLDIwLDAsMCwwLDE2LDAsMCwwLDYy
LDAsMCwwLDQsMCwwLDAsNzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNSwwLDAs
MTgwLDAsMCwwLDYwLDAsMCwwLDQ4LDAsMCwwLDIsMCwwLDAsOCwwLDAsMCw4LDAsMCwwLDEwNiww
LDAsMCw5NiwwLDAsMCwxOCwwLDAsMCw5NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwz
MiwzNSwwLDAsMTgwLDAsMCwwLDEzMiwwLDAsMCw0OCwwLDAsMCwxNiwwLDAsMCw2LDAsMCwwLDIs
MCwwLDAsMTI2LDAsMCwwLDQ2LDAsMCwwLDEyLDAsMCwwLDE4LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDY0LDM1LDAsMCwxODAsMCwwLDAsMTUyLDAsMCwwLDQ4LDAsMCwwLDEwLDAsMCww
LDEyLDAsMCwwLDI0LDAsMCwwLDM0LDAsMCwwLDc0LDAsMCwwLDYsMCwwLDAsNjYsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsOTYsMzUsMCwwLDE4MCwwLDAsMCwzNCwwLDAsMCw0OCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDExMiwzNSwwLDAsNTYsMCwwLDAsMTU2
LDAsMCwwLDQ4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDM1LDAs
MCwxODAsMCwwLDAsODAsMCwwLDAsNDgsMCwwLDAsMjAsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDEw
LDAsMCwwLDE2LDAsMCwwLDI4LDAsMCwwLDIyLDAsMCwwLDYsMCwwLDAsNiwwLDAsMCw4LDAsMCww
LDEwLDAsMCwwLDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYwLDM1
LDAsMCw0LDEsMCwwLDM2LDAsMCwwLDQ4LDAsMCwwLDIsMCwwLDAsNCwwLDAsMCwxOCwwLDAsMCwz
NCwwLDAsMCw4LDAsMCwwLDYsMCwwLDAsMjYsMCwwLDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwyMDgsMzUsMCwwLDY2LDAsMCwwLDIxOCwwLDAsMCw3OCwwLDAsMCwy
LDAsMCwwLDE0LDAsMCwwLDMyLDAsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwyMjQsMzUsMCwwLDE4MCwwLDAsMCw4NiwwLDAsMCw0OCwwLDAsMCwxMCwwLDAsMCwx
MiwwLDAsMCwyNCwwLDAsMCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2LDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDI0MCwzNSwwLDAsMTgwLDAsMCwwLDIzOCwwLDAsMCw0OCwwLDAs
MCwxMCwwLDAsMCwxMiwwLDAsMCwyNCwwLDAsMCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzYsMCwwLDEyNiwwLDAsMCwyMzQsMCww
LDAsMTYsMCwwLDAsMjIsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsODgsMCwwLDAsMTAwLDAsMCww
LDMwLDAsMCwwLDI4LDAsMCwwLDI2LDAsMCwwLDI4LDAsMCwwLDQwLDAsMCwwLDIwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgsMzYsMCwwLDEwLDAsMCwwLDExOCwwLDAsMCw1OCwwLDAs
MCwzOCwwLDAsMCwyOCwwLDAsMCw2LDAsMCwwLDUwLDAsMCwwLDg2LDAsMCwwLDE4LDAsMCwwLDYs
MCwwLDAsMTAsMCwwLDAsMjQsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMTYsMzYsMCwwLDEwMCwwLDAsMCwxOTQsMCwwLDAsMiwwLDAsMCwyLDAsMCwwLDE0
LDAsMCwwLDMyLDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNCwwLDAsMCww
LDAsMCwwLDU2LDM2LDAsMCw0NCwwLDAsMCwyMDYsMCwwLDAsMjUyLDI1NSwyNTUsMjU1LDI1Miwy
NTUsMjU1LDI1NSw1NiwzNiwwLDAsMTQ2LDAsMCwwLDEyNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
NCwwLDAsMCwwLDAsMCwwLDgwLDM2LDAsMCwyMTIsMCwwLDAsMjM2LDAsMCwwLDI1MiwyNTUsMjU1
LDI1NSwyNTIsMjU1LDI1NSwyNTUsODAsMzYsMCwwLDEwNiwwLDAsMCwyMDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDgsMCwwLDAsMCwwLDAsMCwxMDQsMzYsMCwwLDg4LDAsMCwwLDgsMSwwLDAsMjQ4
LDI1NSwyNTUsMjU1LDI0OCwyNTUsMjU1LDI1NSwxMDQsMzYsMCwwLDE4MiwwLDAsMCwyMzIsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDgsMCwwLDAsMCwwLDAsMCwxMjgsMzYsMCwwLDEwNCwwLDAsMCwy
MDQsMCwwLDAsMjQ4LDI1NSwyNTUsMjU1LDI0OCwyNTUsMjU1LDI1NSwxMjgsMzYsMCwwLDEzNiww
LDAsMCw1MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzYsMCwwLDIwMiwwLDAs
MCwxODQsMCwwLDAsMzgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxOTIs
MzYsMCwwLDI0OCwwLDAsMCwyMjYsMCwwLDAsNCwwLDAsMCwyMiwwLDAsMCwxNiwwLDAsMCwxMCww
LDAsMCw1OCwwLDAsMCwxMDAsMCwwLDAsMzAsMCwwLDAsMjgsMCwwLDAsMjYsMCwwLDAsMjgsMCww
LDAsNDAsMCwwLDAsMjYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjA4LDM2LDAsMCwx
NTQsMCwwLDAsMTc4LDAsMCwwLDM0LDAsMCwwLDM4LDAsMCwwLDI4LDAsMCwwLDYsMCwwLDAsOTAs
MCwwLDAsODYsMCwwLDAsMTgsMCwwLDAsNiwwLDAsMCwxMCwwLDAsMCwyNCwwLDAsMCwxNiwwLDAs
MCwxNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM3LDAsMCwyMjAsMCwwLDAsMTQ0
LDAsMCwwLDQ4LDAsMCwwLDY4LDAsMCwwLDExOCwwLDAsMCw0MCwwLDAsMCw4MCwwLDAsMCw2LDAs
MCwwLDI4LDAsMCwwLDUyLDAsMCwwLDIwLDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDMyLDM3LDAsMCwxMDIsMCwwLDAsNTQsMCwwLDAsNDgsMCwwLDAsMTEyLDAsMCwwLDQs
MCwwLDAsNjYsMCwwLDAsNzQsMCwwLDAsNzYsMCwwLDAsMjIsMCwwLDAsMTE0LDAsMCwwLDUwLDAs
MCwwLDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDM3LDAsMCwyMjQsMCwwLDAs
MTE0LDAsMCwwLDQ4LDAsMCwwLDE0LDAsMCwwLDYwLDAsMCwwLDQ2LDAsMCwwLDQyLDAsMCwwLDc4
LDAsMCwwLDUyLDAsMCwwLDkyLDAsMCwwLDU2LDAsMCwwLDMyLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDk2LDM3LDAsMCw3NiwwLDAsMCwxNzIsMCwwLDAsNDgsMCwwLDAsMTAyLDAsMCww
LDEwOCwwLDAsMCwyNiwwLDAsMCw3MiwwLDAsMCwyNCwwLDAsMCwxOCwwLDAsMCw4MCwwLDAsMCw3
MCwwLDAsMCw2OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzcsMCwwLDkwLDAs
MCwwLDY4LDAsMCwwLDYyLDAsMCwwLDIyLDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDg4LDAsMCww
LDEwMCwwLDAsMCwzMCwwLDAsMCw3MiwwLDAsMCw4MiwwLDAsMCwxMiwwLDAsMCw0MCwwLDAsMCwy
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjgsMzcsMCwwLDE0LDAsMCwwLDIxNCww
LDAsMCw2MCwwLDAsMCwzOCwwLDAsMCwyOCwwLDAsMCw2LDAsMCwwLDUwLDAsMCwwLDg2LDAsMCww
LDE4LDAsMCwwLDU2LDAsMCwwLDI0LDAsMCwwLDQsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTg0LDM3LDAsMCwyNTAsMCwwLDAsMTk4LDAsMCwwLDYyLDAs
MCwwLDE1MCwwLDAsMCw4LDAsMCwwLDIsMCwwLDAsNiwwLDAsMCw0LDAsMCwwLDAsMCwwLDAsMCww
LDAsMCw4MywxMTYsNTcsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSwwLDAsMCww
LDgzLDExNiw1NywxMDEsMTIwLDk5LDEwMSwxMTIsMTE2LDEwNSwxMTEsMTEwLDAsMCwwLDAsODMs
MTE2LDU3LDk4LDk3LDEwMCw5NSw5NywxMDgsMTA4LDExMSw5OSwwLDAsMCwwLDgzLDExNiw1Niw5
OCw5NywxMDAsOTUsOTksOTcsMTE1LDExNiwwLDAsMCwwLDAsODMsMTE2LDQ5LDUxLDExNCwxMTcs
MTEwLDExNiwxMDUsMTA5LDEwMSw5NSwxMDEsMTE0LDExNCwxMTEsMTE0LDAsMCwwLDAsMCwwLDAs
ODMsMTE2LDQ5LDUwLDEwOCwxMDEsMTEwLDEwMywxMTYsMTA0LDk1LDEwMSwxMTQsMTE0LDExMSwx
MTQsMCwwLDAsMCwwLDAsMCwwLDgzLDExNiw0OSw0OSwxMDgsMTExLDEwMywxMDUsOTksOTUsMTAx
LDExNCwxMTQsMTExLDExNCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMTYsMTA1LDEwOSwx
MDEsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDks
NTcsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMTIsMTE3LDExNiw3MywxMTksNzgsODMsOTUsNDks
NTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwx
MTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUs
MTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYs
NzMsOTksNzgsODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEw
Miw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDks
OTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5
LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMDksMTExLDExMCwxMDEsMTIx
LDk1LDEwMywxMDEsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwxMTQsMTAx
LDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3Mywx
MTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1
LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcs
MTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiw3Myw5OSw3OCw4Myw5NSw0OSw1Nywx
MDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5
NywxMTYsMTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwx
MTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgsODMsMTE2
LDUxLDk1LDk1LDQ5LDU3LDk4LDk3LDExNSwxMDUsOTksOTUsMTA1LDExMSwxMTUsNzMsMTE5LDc4
LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Mywx
MTksNjksNjksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTgs
OTcsMTE1LDEwNSw5OSw5NSwxMDUsMTExLDExNSw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQs
OTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksMCwwLDAs
MCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUsMTEy
LDExNywxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5NSw5
NSwxMTAsMTE3LDEwOSw5NSwxMTIsMTE3LDExNiw3Myw5OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsNzMsMTE5LDY5
LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5NSw5NSwxMTAsMTE3LDEwOSw5NSwx
MDMsMTAxLDExNiw3Myw5OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2
LDEwNSwxMDksMTAxLDk1LDExMiwxMTcsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMTEsMTE1
LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYs
MTExLDExNCw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3
LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1
MSw5NSw5NSw0OSw1NiwxMTYsMTA1LDEwOSwxMDEsOTUsMTEyLDExNywxMTYsNzMsOTksNzgsODMs
OTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2
LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDEx
NCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCww
LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDEx
Niw3MywxMTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3
LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5
LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjks
NjksNjksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2LDEwNSwxMDks
MTAxLDk1LDEwMywxMDEsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwx
MDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDcz
LDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDEx
NSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1
NiwxMTAsMTE3LDEwOSwxMTIsMTE3LDExMCw5OSwxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDExMCwxMTcsMTA5LDExMiwxMTcsMTEwLDk5LDExNiw3Myw5
OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMDksMTAxLDExNSwxMTUs
OTcsMTAzLDEwMSwxMTUsNzMsMTE5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDU2LDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDExNSw3Myw5OSw2OSw2OSwwLDAsMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMDUsMTExLDExNSw5NSw5OCw5NywxMTUsMTAxLDY5LDAs
MCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDEwNSwxMTEsMTE1LDk1LDk4LDk3
LDExNSwxMDEsNTUsMTAyLDk3LDEwNSwxMDgsMTE3LDExNCwxMDEsNjksMCwwLDAsMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywxMDksOTUsMTEyLDExNywxMTYsNzMsMTE5
LDc4LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUs
MTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwx
MDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5
LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywxMDksOTUsMTEy
LDExNywxMTYsNzMsOTksNzgsODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDks
OTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMs
OTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5
LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDEx
NywxMDksOTUsMTAzLDEwMSwxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDEx
NCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0
LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDEx
NiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsNzMsOTksNzgsODMsOTUsNDksNTcs
MTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQs
OTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYs
MTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwOCwxMDgsOTcsMTE2LDEwMSw3MywxMTksNjks
NjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSw5OSwxMTEsMTA4LDEwOCw5Nywx
MTYsMTAxLDczLDk5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTks
MTExLDEwMCwxMDEsOTksMTE4LDExNiw3MywxMTksOTksNDksNDgsOTUsMTA5LDk4LDExNSwxMTYs
OTcsMTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5
NSw0OSw1NSw5OSwxMTEsMTAwLDEwMSw5OSwxMTgsMTE2LDczLDk5LDk5LDQ5LDQ4LDk1LDEwOSw5
OCwxMTUsMTE2LDk3LDExNiwxMDEsOTUsMTE2LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3Myw2OCwxMTUsOTks
NDksNDgsOTUsMTA5LDk4LDExNSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCww
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3
Myw2OCwxMDUsOTksNDksNDgsOTUsMTA5LDk4LDExNSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYsNjks
NjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTQsMTA4LDExMSw5OSw5Nywx
MDgsMTAxLDUzLDEwMiw5Nyw5OSwxMDEsMTE2LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw1NCwxMDgsMTExLDk5LDk3LDEwOCwxMDEsNTMsOTUsOTUsMTA1LDEwOSwxMTIsNjksMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDUzLDk5LDExNiwxMjEsMTEyLDEwMSw3MywxMTksNjksNjks
MCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTMsOTksMTE2LDEyMSwxMTIsMTAx
LDczLDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDUwLDQ4LDk1
LDk1LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDExNiw5NSw5OSw5NSwxMTUsMTE2LDExMSwx
MTQsOTcsMTAzLDEwMSw3MywxMTksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNTAsNDgsOTUsOTUsMTE2LDEwNSwxMDksMTAxLDk1LDEwMywxMDEsMTE2LDk1LDk5LDk1
LDExNSwxMTYsMTExLDExNCw5NywxMDMsMTAxLDczLDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDU3LDk1LDk1LDEwNSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3
LDEwOSw5NSw5OSw5NywxMTYsMTAxLDEwMywxMTEsMTE0LDEyMSw2OSwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNDksNTUsOTUsOTUsMTE5LDEwNSwxMDAsMTAxLDExMCw5NSwxMDIsMTE0LDEx
MSwxMDksOTUsMTE3LDExNiwxMDIsNTYsNzMsNzYsMTA2LDUxLDUwLDY5LDY5LDY5LDAsMCwwLDAs
MCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1NCw5NSw5NSwxMTAsOTcsMTE0LDExNCwxMTEs
MTE5LDk1LDExNiwxMTEsOTUsMTE3LDExNiwxMDIsNTYsNzMsNzYsMTA2LDUxLDUwLDY5LDY5LDY5
LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUzLDk4LDk3LDExNSwxMDUs
OTksOTUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDczLDExOSw3OCw4Myw5NSw0
OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5
LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTMsOTgsOTcs
MTE1LDEwNSw5OSw5NSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsNzMsOTksNzgs
ODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5
LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTIs
MTAxLDExNCwxMTQsMTExLDExNCw5NSw5OSw5NywxMTYsMTAxLDEwMywxMTEsMTE0LDEyMSw2OSww
LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUyLDk1LDk1LDExNSwxMDQs
OTcsMTE0LDEwMSwxMDAsOTUsOTksMTExLDExNywxMTAsMTE2LDY5LDAsMCwwLDAsMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTIsOTUsOTUsMTEwLDExNywxMDksOTUsMTEyLDExNywx
MTYsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDQ5LDUyLDk1LDk1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2LDk1LDk4LDk3LDExNSwx
MDEsNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSwxMDksMTAx
LDExNSwxMTUsOTcsMTAzLDEwMSwxMTUsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDc4LDgzLDExNiw1
MSw5NSw5NSw0OSw0OSw1MSw5OCw5NywxMTUsMTA1LDk5LDk1LDExMSwxMTUsMTE2LDExNCwxMDEs
OTcsMTA5LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcs
MTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDks
NDksNTEsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3Myw5
OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUs
NzMsOTksNjksNjksNjksNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSw5OCw5Nywx
MTUsMTA1LDk5LDk1LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDczLDExOSw3OCw4Myw5NSw0
OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5
LDY5LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTEsOTgsOTcsMTE1LDEwNSw5OSw5
NSwxMDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQs
OTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MCwxMTUsMTIxLDExNSwxMTYsMTAxLDEwOSw5NSwxMDEs
MTE0LDExNCwxMTEsMTE0LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTAsOTksMTEx
LDEwMCwxMDEsOTksMTE4LDExNiw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNDksNTAsOTUsOTUsMTAwLDExMSw5NSwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEw
MSw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDExNSwxMTYsMTAwLDEx
MSwxMTcsMTE2LDk4LDExNywxMDIsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTE1LDExNiwxMDAsMTExLDExNywxMTYsOTgsMTE3
LDEwMiw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5
LDQ5LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYsNzMsMTE5LDY5LDY5
LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTA5LDEx
MSwxMTAsMTAxLDEyMSw5NSwxMTIsMTE3LDExNiw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUs
MTAzLDEwMSwxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNDksNDksOTUsOTUsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiw3Myw5
OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwx
MTEsMTEwLDEwMSwxMjEsMTEyLDExNywxMTAsOTksMTE2LDczLDExOSw3Niw5OCw0OSw2OSw2OSw2
OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwx
MjEsMTEyLDExNywxMTAsOTksMTE2LDczLDExOSw3Niw5OCw0OCw2OSw2OSw2OSwwLDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwxMjEsMTEyLDExNywx
MTAsOTksMTE2LDczLDk5LDc2LDk4LDQ5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNDksNDgsMTA5LDExMSwxMTAsMTAxLDEyMSwxMTIsMTE3LDExMCw5OSwxMTYsNzMs
OTksNzYsOTgsNDgsNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0
OCwxMDksMTExLDExMCwxMDEsMTIxLDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNDksNDgsOTksMTE2LDEyMSwxMTIsMTAxLDk1LDk4LDk3LDExNSwxMDEs
NjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsOTUsOTUsMTE2LDEwNSwxMDks
MTAxLDk1LDExMiwxMTcsMTE2LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4
LDk1LDk1LDExNSwxMTYsMTAwLDEwNSwxMTAsOTgsMTE3LDEwMiw3MywxMTksNjksNjksMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNDksNDgsOTUsOTUsMTE1LDExNiwxMDAsMTA1LDExMCw5OCwxMTcs
MTAyLDczLDk5LDY5LDY5LDAsNzgsNDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4
LDQ5LDUwLDQ5LDk1LDk1LDExOCwxMDksMTA1LDk1LDk5LDEwOCw5NywxMTUsMTE1LDk1LDExNiwx
MjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEsNjksMCwwLDAsNzgsNDksNDgsOTUsOTUsOTks
MTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5LDUwLDQ4LDk1LDk1LDExNSwxMDUsOTUsOTksMTA4LDk3
LDExNSwxMTUsOTUsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSw2OSwwLDAsMCww
LDc4LDQ5LDQ4LDk1LDk1LDk5LDEyMCwxMjAsOTcsOTgsMTA1LDExOCw0OSw0OSw1NSw5NSw5NSw5
OSwxMDgsOTcsMTE1LDExNSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDY5
LDAsMCwwLDAsMCwwLDAsNzgsNDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5
LDQ5LDU0LDk1LDk1LDExNSwxMDQsMTA1LDEwOSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDEx
MCwxMDIsMTExLDY5LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQwLDIwLDAsMCwwLDAsMCwwLDU2
LDIwLDAsMCwwLDAsMCwwLDcyLDIwLDAsMCwyMTYsMzEsMCwwLDAsMCwwLDAsMCwwLDAsMCw4OCwy
MCwwLDAsMjE2LDMxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTA0LDIwLDAsMCwyMTYsMzEsMCwwLDAs
MCwwLDAsMCwwLDAsMCwxMjgsMjAsMCwwLDMyLDMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDIw
LDAsMCwyMTYsMzEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjgsMjAsMCwwLDAsMjAsMCwwLDE5Miwy
MCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDIyNCwzNiwwLDAsMCwwLDAs
MCwwLDIwLDAsMCw4LDIxLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMjMy
LDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDgwLDIxLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUs
MCwwLDIsMCwwLDAsMjQwLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDE1MiwyMSwwLDAsMCwwLDAs
MCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDI0OCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDIy
NCwyMSwwLDAsNDAsMzQsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNiwyMiwwLDAsNDAsMzQsMCwwLDAs
MCwwLDAsMCwyMCwwLDAsNjQsMjIsMCwwLDAsMCwwLDAsMSwwLDAsMCwzMiwzNiwwLDAsMCwwLDAs
MCwwLDIwLDAsMCw4OCwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDMyLDM2LDAsMCwwLDAsMCwwLDAs
MjAsMCwwLDExMiwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDQwLDM2LDAsMCwwLDAsMCwwLDAsMjAs
MCwwLDEzNiwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDQwLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCww
LDE2MCwyMiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE0NCwzNywwLDAs
MCw4LDAsMCwwLDIwLDAsMCwyMzIsMjIsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiww
LDAsMCwxNDQsMzcsMCwwLDAsOCwwLDAsMCwyMCwwLDAsNDgsMjMsMCwwLDAsMCwwLDAsMywwLDAs
MCw5NiwzNSwwLDAsMiwwLDAsMCw0OCwzMiwwLDAsMiwwLDAsMCwxOTIsMzUsMCwwLDAsOCwwLDAs
MCwyMCwwLDAsMTIwLDIzLDAsMCwwLDAsMCwwLDMsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgs
MzIsMCwwLDIsMCwwLDAsMjAwLDM1LDAsMCwwLDgsMCwwLDAsMCwwLDAsMTkyLDIzLDAsMCw5Niwz
NSwwLDAsMCwwLDAsMCwwLDAsMCwwLDIxNiwyMywwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwyMCww
LDAsMjQwLDIzLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgsMzYsMCww
LDIsMCwwLDAsMCwyMCwwLDAsOCwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAs
MCwwLDQ4LDM2LDAsMCwyLDAsMCwwLDAsMCwwLDAsMzIsMjQsMCwwLDAsMCwwLDAsNTYsMjQsMCww
LDE1MiwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCw4OCwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2
LDM1LDAsMCwyLDAsMCwwLDIxNiwzMiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxNjAsMjQsMCwwLDAs
MCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwyNDAsMzIsMCwwLDAsMCwwLDAsMCwyMCww
LDAsMjMyLDI0LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsOCwzMywwLDAs
MCwwLDAsMCwwLDIwLDAsMCw0OCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAs
MCwwLDMyLDMzLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTIwLDI1LDAsMCw5NiwzNSwwLDAsMCwwLDAs
MCwwLDAsMCwwLDE0NCwyNSwwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTY4LDI1LDAs
MCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTY4LDM2LDAsMCwyLDAsMCwwLDAs
MjAsMCwwLDIwOCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE2OCwz
NiwwLDAsMiwwLDAsMCwwLDIwLDAsMCwyNDgsMjUsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSww
LDAsMiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMzIsMjYsMCwwLDAsMCwwLDAs
MiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwwLDAsMCw3Miwy
NiwwLDAsMjQsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCw5NiwyNiwwLDAsOTYsMzUsMCwwLDAsMCww
LDAsMCwyMCwwLDAsMTIwLDI2LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAs
MTM2LDM3LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDE0NCwyNiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2
LDM1LDAsMCwyLDAsMCwwLDEzNiwzNywwLDAsMiwwLDAsMCwwLDAsMCwwLDE2OCwyNiwwLDAsMCww
LDAsMCwyMDgsMjYsMCwwLDAsMCwwLDAsMjQ4LDI2LDAsMCwxNzYsMzYsMCwwLDAsMCwwLDAsMCww
LDAsMCwyNCwyNywwLDAsNjQsMzUsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwyNywwLDAsNjQsMzUs
MCwwLDAsMCwwLDAsMCwwLDAsMCwxMDQsMjcsMCwwLDAsMCwwLDAsMTYwLDI3LDAsMCwwLDAsMCww
LDIxNiwyNywwLDAsMCwwLDAsMCwyNDgsMjcsMCwwLDAsMCwwLDAsMjQsMjgsMCwwLDAsMCwwLDAs
NTYsMjgsMCwwLDAsMCwwLDAsODgsMjgsMCwwLDAsMjAsMCwwLDExMiwyOCwwLDAsMCwwLDAsMCwx
LDAsMCwwLDE4NCwzMiwwLDAsMywyNDQsMjU1LDI1NSwwLDIwLDAsMCwxNjAsMjgsMCwwLDAsMCww
LDAsMSwwLDAsMCwyMDAsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwyMCwwLDAsMjA4LDI4LDAsMCww
LDAsMCwwLDEsMCwwLDAsMTg0LDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMjAsMCwwLDAsMjksMCww
LDAsMCwwLDAsMSwwLDAsMCwyMDAsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwwLDAsMCw0OCwyOSww
LDAsMCwzMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDcyLDI5LDAsMCwwLDAsMCwwLDk2LDI5LDAsMCwx
NiwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyMCwyOSwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAs
MCwwLDE1MiwyOSwwLDAsOCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDE4NCwyOSwwLDAsMCwwLDAs
MCwyMTYsMjksMCwwLDAsMCwwLDAsMjQ4LDI5LDAsMCwwLDAsMCwwLDI0LDMwLDAsMCwwLDIwLDAs
MCw1NiwzMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDEyOCwzNywwLDAs
MiwwLDAsMCwwLDIwLDAsMCw4OCwzMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAs
MCwwLDEyOCwzNywwLDAsMiwwLDAsMCwwLDIwLDAsMCwxMjAsMzAsMCwwLDAsMCwwLDAsMiwwLDAs
MCw5NiwzNSwwLDAsMiwwLDAsMCwxMjgsMzcsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMTUyLDMwLDAs
MCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTI4LDM3LDAsMCwyLDAsMCwwLDAs
MCwwLDAsMTg0LDMwLDAsMCwwLDAsMCwwLDIwOCwzMCwwLDAsMCwwLDAsMCwyMzIsMzAsMCwwLDAs
MCwwLDAsMCwzMSwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0LDMxLDAsMCw4LDM2LDAs
MCwwLDAsMCwwLDAsMCwwLDAsNDgsMzEsMCwwLDIxNiwzNywwLDAsMCwwLDAsMCwwLDAsMCwwLDg4
LDMxLDAsMCwyMTYsMzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjgsMzEsMCwwLDIzMiwzNywwLDAs
MCwwLDAsMCwwLDAsMCwwLDE2OCwzMSwwLDAsMjA4LDMxLDAsMCwwLDAsMCwwLDI1NSwyNTUsMjU1
LDI1NSwwLDAsMCwwLDI1NSwyNTUsMjU1LDI1NSwwLDAsMCwwLDI1NSwyNTUsMjU1LDI1NSwwLDAs
MCwwLDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDY1
LDY2LDY3LDY4LDY5LDcwLDEyMCw4OCw0Myw0NSwxMTIsODAsMTA1LDczLDExMCw3OCwwLDAsMCww
LDAsMCwwLDBdLCAiaTgiLCBBTExPQ19OT05FLCBSdW50aW1lLkdMT0JBTF9CQVNFKQotdmFyIHRl
bXBEb3VibGVQdHIgPSBSdW50aW1lLmFsaWduTWVtb3J5KGFsbG9jYXRlKDEyLCAiaTgiLCBBTExP
Q19TVEFUSUMpLCA4KTsKLWFzc2VydCh0ZW1wRG91YmxlUHRyICUgOCA9PSAwKTsKLWZ1bmN0aW9u
IGNvcHlUZW1wRmxvYXQocHRyKSB7IC8vIGZ1bmN0aW9ucywgYmVjYXVzZSBpbmxpbmluZyB0aGlz
IGNvZGUgaW5jcmVhc2VzIGNvZGUgc2l6ZSB0b28gbXVjaAotICBIRUFQOFt0ZW1wRG91YmxlUHRy
XSA9IEhFQVA4W3B0cl07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrMV0gPSBIRUFQOFtwdHIrMV07
Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrMl0gPSBIRUFQOFtwdHIrMl07Ci0gIEhFQVA4W3RlbXBE
b3VibGVQdHIrM10gPSBIRUFQOFtwdHIrM107Ci19Ci1mdW5jdGlvbiBjb3B5VGVtcERvdWJsZShw
dHIpIHsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cl0gPSBIRUFQOFtwdHJdOwotICBIRUFQOFt0ZW1w
RG91YmxlUHRyKzFdID0gSEVBUDhbcHRyKzFdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzJdID0g
SEVBUDhbcHRyKzJdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzNdID0gSEVBUDhbcHRyKzNdOwot
ICBIRUFQOFt0ZW1wRG91YmxlUHRyKzRdID0gSEVBUDhbcHRyKzRdOwotICBIRUFQOFt0ZW1wRG91
YmxlUHRyKzVdID0gSEVBUDhbcHRyKzVdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzZdID0gSEVB
UDhbcHRyKzZdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzddID0gSEVBUDhbcHRyKzddOwotfQot
ICBmdW5jdGlvbiBfYXRleGl0KGZ1bmMsIGFyZykgewotICAgICAgX19BVEVYSVRfXy51bnNoaWZ0
KHsgZnVuYzogZnVuYywgYXJnOiBhcmcgfSk7Ci0gICAgfXZhciBfX19jeGFfYXRleGl0PV9hdGV4
aXQ7Ci0gIGZ1bmN0aW9uIF9sbHZtX3VtdWxfd2l0aF9vdmVyZmxvd19pMzIoeCwgeSkgewotICAg
ICAgeCA9IHg+Pj4wOwotICAgICAgeSA9IHk+Pj4wOwotICAgICAgcmV0dXJuICgoYXNtWyJzZXRU
ZW1wUmV0MCJdKHgqeSA+IDQyOTQ5NjcyOTUpLCh4KnkpPj4+MCl8MCk7Ci0gICAgfQotICBmdW5j
dGlvbiBfX19neHhfcGVyc29uYWxpdHlfdjAoKSB7Ci0gICAgfQotICBmdW5jdGlvbiBfX2V4aXQo
c3RhdHVzKSB7Ci0gICAgICAvLyB2b2lkIF9leGl0KGludCBzdGF0dXMpOwotICAgICAgLy8gaHR0
cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZXhp
dC5odG1sCi0gICAgICBNb2R1bGUucHJpbnQoJ2V4aXQoJyArIHN0YXR1cyArICcpIGNhbGxlZCcp
OwotICAgICAgTW9kdWxlWydleGl0J10oc3RhdHVzKTsKLSAgICB9ZnVuY3Rpb24gX2V4aXQoc3Rh
dHVzKSB7Ci0gICAgICBfX2V4aXQoc3RhdHVzKTsKLSAgICB9ZnVuY3Rpb24gX19aU3Q5dGVybWlu
YXRldigpIHsKLSAgICAgIF9leGl0KC0xMjM0KTsKLSAgICB9Ci0gIE1vZHVsZVsiX21lbWNweSJd
ID0gX21lbWNweTt2YXIgX2xsdm1fbWVtY3B5X3AwaThfcDBpOF9pMzI9X21lbWNweTsKLSAgdmFy
IF9sb2c9TWF0aC5sb2c7Ci0gIHZhciBfZmxvb3I9TWF0aC5mbG9vcjsKLSAgdmFyIGN0bHpfaTgg
PSBhbGxvY2F0ZShbOCw3LDYsNiw1LDUsNSw1LDQsNCw0LDQsNCw0LDQsNCwzLDMsMywzLDMsMywz
LDMsMywzLDMsMywzLDMsMywzLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIs
MiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7IAotICBNb2R1bGVbIl9sbHZtX2N0bHpf
aTMyIl0gPSBfbGx2bV9jdGx6X2kzMjsKLSAgZnVuY3Rpb24gX19aU3QxOHVuY2F1Z2h0X2V4Y2Vw
dGlvbnYoKSB7IC8vIHN0ZDo6dW5jYXVnaHRfZXhjZXB0aW9uKCkKLSAgICAgIHJldHVybiAhIV9f
WlN0MTh1bmNhdWdodF9leGNlcHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbjsKLSAgICB9ZnVuY3Rp
b24gX19fY3hhX2JlZ2luX2NhdGNoKHB0cikgewotICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2Vw
dGlvbnYudW5jYXVnaHRfZXhjZXB0aW9uLS07Ci0gICAgICByZXR1cm4gcHRyOwotICAgIH0KLSAg
ZnVuY3Rpb24gX2xsdm1fZWhfZXhjZXB0aW9uKCkgewotICAgICAgcmV0dXJuIEhFQVAzMlsoKF9s
bHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV07Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfZnJl
ZV9leGNlcHRpb24ocHRyKSB7Ci0gICAgICB0cnkgewotICAgICAgICByZXR1cm4gX2ZyZWUocHRy
KTsKLSAgICAgIH0gY2F0Y2goZSkgeyAvLyBYWFggRklYTUUKLSAgICAgIH0KLSAgICB9ZnVuY3Rp
b24gX19fY3hhX2VuZF9jYXRjaCgpIHsKLSAgICAgIGlmIChfX19jeGFfZW5kX2NhdGNoLnJldGhy
b3duKSB7Ci0gICAgICAgIF9fX2N4YV9lbmRfY2F0Y2gucmV0aHJvd24gPSBmYWxzZTsKLSAgICAg
ICAgcmV0dXJuOwotICAgICAgfQotICAgICAgLy8gQ2xlYXIgc3RhdGUgZmxhZy4KLSAgICAgIGFz
bVsnc2V0VGhyZXcnXSgwKTsKLSAgICAgIC8vIENsZWFyIHR5cGUuCi0gICAgICBIRUFQMzJbKCgo
X2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDQpKT4+MildPTAKLSAgICAgIC8vIENhbGwgZGVzdHJ1
Y3RvciBpZiBvbmUgaXMgcmVnaXN0ZXJlZCB0aGVuIGNsZWFyIGl0LgotICAgICAgdmFyIHB0ciA9
IEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV07Ci0gICAgICB2YXIgZGVzdHJ1
Y3RvciA9IEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoOCkpPj4yKV07Ci0gICAg
ICBpZiAoZGVzdHJ1Y3RvcikgewotICAgICAgICBSdW50aW1lLmR5bkNhbGwoJ3ZpJywgZGVzdHJ1
Y3RvciwgW3B0cl0pOwotICAgICAgICBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zikr
KDgpKT4+MildPTAKLSAgICAgIH0KLSAgICAgIC8vIEZyZWUgcHRyIGlmIGl0IGlzbid0IG51bGwu
Ci0gICAgICBpZiAocHRyKSB7Ci0gICAgICAgIF9fX2N4YV9mcmVlX2V4Y2VwdGlvbihwdHIpOwot
ICAgICAgICBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildPTAKLSAgICAgIH0K
LSAgICB9ZnVuY3Rpb24gX19fY3hhX3JldGhyb3coKSB7Ci0gICAgICBfX19jeGFfZW5kX2NhdGNo
LnJldGhyb3duID0gdHJ1ZTsKLSAgICAgIHRocm93IEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlv
bi5idWYpPj4yKV0gKyAiIC0gRXhjZXB0aW9uIGNhdGNoaW5nIGlzIGRpc2FibGVkLCB0aGlzIGV4
Y2VwdGlvbiBjYW5ub3QgYmUgY2F1Z2h0LiBDb21waWxlIHdpdGggLXMgRElTQUJMRV9FWENFUFRJ
T05fQ0FUQ0hJTkc9MCBvciBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0yIHRvIGNhdGNoLiI7
OwotICAgIH0KLSAgTW9kdWxlWyJfbWVtbW92ZSJdID0gX21lbW1vdmU7dmFyIF9sbHZtX21lbW1v
dmVfcDBpOF9wMGk4X2kzMj1fbWVtbW92ZTsKLSAgTW9kdWxlWyJfbWVtc2V0Il0gPSBfbWVtc2V0
O3ZhciBfbGx2bV9tZW1zZXRfcDBpOF9pNjQ9X21lbXNldDsKLSAgZnVuY3Rpb24gX2xsdm1fbGlm
ZXRpbWVfc3RhcnQoKSB7fQotICBmdW5jdGlvbiBfbGx2bV9saWZldGltZV9lbmQoKSB7fQotICBm
dW5jdGlvbiBfcHRocmVhZF9tdXRleF9sb2NrKCkge30KLSAgZnVuY3Rpb24gX3B0aHJlYWRfbXV0
ZXhfdW5sb2NrKCkge30KLSAgZnVuY3Rpb24gX19fY3hhX2d1YXJkX2FjcXVpcmUodmFyaWFibGUp
IHsKLSAgICAgIGlmICghSEVBUDhbKHZhcmlhYmxlKV0pIHsgLy8gaWdub3JlIFNBRkVfSEVBUCBz
dHVmZiBiZWNhdXNlIGxsdm0gbWl4ZXMgaTY0IGFuZCBpOCBoZXJlCi0gICAgICAgIEhFQVA4Wyh2
YXJpYWJsZSldPTE7Ci0gICAgICAgIHJldHVybiAxOwotICAgICAgfQotICAgICAgcmV0dXJuIDA7
Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfZ3VhcmRfcmVsZWFzZSgpIHt9Ci0gIGZ1bmN0aW9u
IF9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0KCkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICBm
dW5jdGlvbiBfcHRocmVhZF9jb25kX3dhaXQoKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0g
IGZ1bmN0aW9uIF9fX2N4YV9hbGxvY2F0ZV9leGNlcHRpb24oc2l6ZSkgewotICAgICAgcmV0dXJu
IF9tYWxsb2Moc2l6ZSk7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfaXNfbnVtYmVyX3R5cGUo
dHlwZSkgewotICAgICAgdmFyIGlzTnVtYmVyID0gZmFsc2U7Ci0gICAgICB0cnkgeyBpZiAodHlw
ZSA9PSBfX1pUSWkpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlm
ICh0eXBlID09IF9fWlRJaikgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5
IHsgaWYgKHR5cGUgPT0gX19aVElsKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAg
ICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSW0pIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30K
LSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJeCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2go
ZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEl5KSBpc051bWJlciA9IHRydWUgfSBj
YXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWYpIGlzTnVtYmVyID0gdHJ1
ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJZCkgaXNOdW1iZXIg
PSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEllKSBpc051
bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWMp
IGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9f
WlRJYSkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUg
PT0gX19aVEloKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAo
dHlwZSA9PSBfX1pUSXMpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7
IGlmICh0eXBlID09IF9fWlRJdCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAg
cmV0dXJuIGlzTnVtYmVyOwotICAgIH1mdW5jdGlvbiBfX19jeGFfZG9lc19pbmhlcml0KGRlZmlu
aXRlVHlwZSwgcG9zc2liaWxpdHlUeXBlLCBwb3NzaWJpbGl0eSkgewotICAgICAgaWYgKHBvc3Np
YmlsaXR5ID09IDApIHJldHVybiBmYWxzZTsKLSAgICAgIGlmIChwb3NzaWJpbGl0eVR5cGUgPT0g
MCB8fCBwb3NzaWJpbGl0eVR5cGUgPT0gZGVmaW5pdGVUeXBlKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgIHZhciBwb3NzaWJpbGl0eV90eXBlX2luZm87Ci0gICAgICBpZiAoX19fY3hhX2lz
X251bWJlcl90eXBlKHBvc3NpYmlsaXR5VHlwZSkpIHsKLSAgICAgICAgcG9zc2liaWxpdHlfdHlw
ZV9pbmZvID0gcG9zc2liaWxpdHlUeXBlOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIHBv
c3NpYmlsaXR5X3R5cGVfaW5mb0FkZHIgPSBIRUFQMzJbKChwb3NzaWJpbGl0eVR5cGUpPj4yKV0g
LSA4OwotICAgICAgICBwb3NzaWJpbGl0eV90eXBlX2luZm8gPSBIRUFQMzJbKChwb3NzaWJpbGl0
eV90eXBlX2luZm9BZGRyKT4+MildOwotICAgICAgfQotICAgICAgc3dpdGNoIChwb3NzaWJpbGl0
eV90eXBlX2luZm8pIHsKLSAgICAgIGNhc2UgMDogLy8gcG9zc2liaWxpdHkgaXMgYSBwb2ludGVy
Ci0gICAgICAgIC8vIFNlZSBpZiBkZWZpbml0ZSB0eXBlIGlzIGEgcG9pbnRlcgotICAgICAgICB2
YXIgZGVmaW5pdGVfdHlwZV9pbmZvQWRkciA9IEhFQVAzMlsoKGRlZmluaXRlVHlwZSk+PjIpXSAt
IDg7Ci0gICAgICAgIHZhciBkZWZpbml0ZV90eXBlX2luZm8gPSBIRUFQMzJbKChkZWZpbml0ZV90
eXBlX2luZm9BZGRyKT4+MildOwotICAgICAgICBpZiAoZGVmaW5pdGVfdHlwZV9pbmZvID09IDAp
IHsKLSAgICAgICAgICAvLyBBbHNvIGEgcG9pbnRlcjsgY29tcGFyZSBiYXNlIHR5cGVzIG9mIHBv
aW50ZXJzCi0gICAgICAgICAgdmFyIGRlZlBvaW50ZXJCYXNlQWRkciA9IGRlZmluaXRlVHlwZSs4
OwotICAgICAgICAgIHZhciBkZWZQb2ludGVyQmFzZVR5cGUgPSBIRUFQMzJbKChkZWZQb2ludGVy
QmFzZUFkZHIpPj4yKV07Ci0gICAgICAgICAgdmFyIHBvc3NQb2ludGVyQmFzZUFkZHIgPSBwb3Nz
aWJpbGl0eVR5cGUrODsKLSAgICAgICAgICB2YXIgcG9zc1BvaW50ZXJCYXNlVHlwZSA9IEhFQVAz
MlsoKHBvc3NQb2ludGVyQmFzZUFkZHIpPj4yKV07Ci0gICAgICAgICAgcmV0dXJuIF9fX2N4YV9k
b2VzX2luaGVyaXQoZGVmUG9pbnRlckJhc2VUeXBlLCBwb3NzUG9pbnRlckJhc2VUeXBlLCBwb3Nz
aWJpbGl0eSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gb25l
IHBvaW50ZXIgYW5kIG9uZSBub24tcG9pbnRlcgotICAgICAgY2FzZSAxOiAvLyBjbGFzcyB3aXRo
IG5vIGJhc2UgY2xhc3MKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgY2FzZSAyOiAvLyBj
bGFzcyB3aXRoIGJhc2UgY2xhc3MKLSAgICAgICAgdmFyIHBhcmVudFR5cGVBZGRyID0gcG9zc2li
aWxpdHlUeXBlICsgODsKLSAgICAgICAgdmFyIHBhcmVudFR5cGUgPSBIRUFQMzJbKChwYXJlbnRU
eXBlQWRkcik+PjIpXTsKLSAgICAgICAgcmV0dXJuIF9fX2N4YV9kb2VzX2luaGVyaXQoZGVmaW5p
dGVUeXBlLCBwYXJlbnRUeXBlLCBwb3NzaWJpbGl0eSk7Ci0gICAgICBkZWZhdWx0OgotICAgICAg
ICByZXR1cm4gZmFsc2U7IC8vIHNvbWUgdW5lbmNvdW50ZXJlZCB0eXBlCi0gICAgICB9Ci0gICAg
fQotICBmdW5jdGlvbiBfX19yZXN1bWVFeGNlcHRpb24ocHRyKSB7Ci0gICAgICBpZiAoSEVBUDMy
WygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXSA9PSAwKSBIRUFQMzJbKChfbGx2bV9laF9l
eGNlcHRpb24uYnVmKT4+MildPXB0cjsKLSAgICAgIHRocm93IHB0ciArICIgLSBFeGNlcHRpb24g
Y2F0Y2hpbmcgaXMgZGlzYWJsZWQsIHRoaXMgZXhjZXB0aW9uIGNhbm5vdCBiZSBjYXVnaHQuIENv
bXBpbGUgd2l0aCAtcyBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0wIG9yIERJU0FCTEVfRVhD
RVBUSU9OX0NBVENISU5HPTIgdG8gY2F0Y2guIjs7Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV9maW5k
X21hdGNoaW5nX2NhdGNoKHRocm93biwgdGhyb3dudHlwZSkgewotICAgICAgaWYgKHRocm93biA9
PSAtMSkgdGhyb3duID0gSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXTsKLSAg
ICAgIGlmICh0aHJvd250eXBlID09IC0xKSB0aHJvd250eXBlID0gSEVBUDMyWygoKF9sbHZtX2Vo
X2V4Y2VwdGlvbi5idWYpKyg0KSk+PjIpXTsKLSAgICAgIHZhciB0eXBlQXJyYXkgPSBBcnJheS5w
cm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpOwotICAgICAgLy8gSWYgdGhyb3dudHlw
ZSBpcyBhIHBvaW50ZXIsIHRoaXMgbWVhbnMgYSBwb2ludGVyIGhhcyBiZWVuCi0gICAgICAvLyB0
aHJvd24uIFdoZW4gYSBwb2ludGVyIGlzIHRocm93biwgYWN0dWFsbHkgd2hhdCdzIHRocm93bgot
ICAgICAgLy8gaXMgYSBwb2ludGVyIHRvIHRoZSBwb2ludGVyLiBXZSdsbCBkZXJlZmVyZW5jZSBp
dC4KLSAgICAgIGlmICh0aHJvd250eXBlICE9IDAgJiYgIV9fX2N4YV9pc19udW1iZXJfdHlwZSh0
aHJvd250eXBlKSkgewotICAgICAgICB2YXIgdGhyb3dudHlwZUluZm9BZGRyPSBIRUFQMzJbKCh0
aHJvd250eXBlKT4+MildIC0gODsKLSAgICAgICAgdmFyIHRocm93bnR5cGVJbmZvPSBIRUFQMzJb
KCh0aHJvd250eXBlSW5mb0FkZHIpPj4yKV07Ci0gICAgICAgIGlmICh0aHJvd250eXBlSW5mbyA9
PSAwKQotICAgICAgICAgIHRocm93biA9IEhFQVAzMlsoKHRocm93bik+PjIpXTsKLSAgICAgIH0K
LSAgICAgIC8vIFRoZSBkaWZmZXJlbnQgY2F0Y2ggYmxvY2tzIGFyZSBkZW5vdGVkIGJ5IGRpZmZl
cmVudCB0eXBlcy4KLSAgICAgIC8vIER1ZSB0byBpbmhlcml0YW5jZSwgdGhvc2UgdHlwZXMgbWF5
IG5vdCBwcmVjaXNlbHkgbWF0Y2ggdGhlCi0gICAgICAvLyB0eXBlIG9mIHRoZSB0aHJvd24gb2Jq
ZWN0LiBGaW5kIG9uZSB3aGljaCBtYXRjaGVzLCBhbmQKLSAgICAgIC8vIHJldHVybiB0aGUgdHlw
ZSBvZiB0aGUgY2F0Y2ggYmxvY2sgd2hpY2ggc2hvdWxkIGJlIGNhbGxlZC4KLSAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdHlwZUFycmF5Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChfX19j
eGFfZG9lc19pbmhlcml0KHR5cGVBcnJheVtpXSwgdGhyb3dudHlwZSwgdGhyb3duKSkKLSAgICAg
ICAgICByZXR1cm4gKChhc21bInNldFRlbXBSZXQwIl0odHlwZUFycmF5W2ldKSx0aHJvd24pfDAp
OwotICAgICAgfQotICAgICAgLy8gU2hvdWxkbid0IGhhcHBlbiB1bmxlc3Mgd2UgaGF2ZSBib2d1
cyBkYXRhIGluIHR5cGVBcnJheQotICAgICAgLy8gb3IgZW5jb3VudGVyIGEgdHlwZSBmb3Igd2hp
Y2ggZW1zY3JpcHRlbiBkb2Vzbid0IGhhdmUgc3VpdGFibGUKLSAgICAgIC8vIHR5cGVpbmZvIGRl
ZmluZWQuIEJlc3QtZWZmb3J0cyBtYXRjaCBqdXN0IGluIGNhc2UuCi0gICAgICByZXR1cm4gKChh
c21bInNldFRlbXBSZXQwIl0odGhyb3dudHlwZSksdGhyb3duKXwwKTsKLSAgICB9ZnVuY3Rpb24g
X19fY3hhX3Rocm93KHB0ciwgdHlwZSwgZGVzdHJ1Y3RvcikgewotICAgICAgaWYgKCFfX19jeGFf
dGhyb3cuaW5pdGlhbGl6ZWQpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBIRUFQMzJbKChf
X1pUVk4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FKT4+MildPTA7IC8vIFdvcmth
cm91bmQgZm9yIGxpYmN4eGFiaSBpbnRlZ3JhdGlvbiBidWcKLSAgICAgICAgfSBjYXRjaChlKXt9
Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgSEVBUDMyWygoX19aVFZOMTBfX2N4eGFiaXYxMTdf
X2NsYXNzX3R5cGVfaW5mb0UpPj4yKV09MTsgLy8gV29ya2Fyb3VuZCBmb3IgbGliY3h4YWJpIGlu
dGVncmF0aW9uIGJ1ZwotICAgICAgICB9IGNhdGNoKGUpe30KLSAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICBIRUFQMzJbKChfX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRSk+
PjIpXT0yOyAvLyBXb3JrYXJvdW5kIGZvciBsaWJjeHhhYmkgaW50ZWdyYXRpb24gYnVnCi0gICAg
ICAgIH0gY2F0Y2goZSl7fQotICAgICAgICBfX19jeGFfdGhyb3cuaW5pdGlhbGl6ZWQgPSB0cnVl
OwotICAgICAgfQotICAgICAgSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXT1w
dHIKLSAgICAgIEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoNCkpPj4yKV09dHlw
ZQotICAgICAgSEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg4KSk+PjIpXT1kZXN0
cnVjdG9yCi0gICAgICBpZiAoISgidW5jYXVnaHRfZXhjZXB0aW9uIiBpbiBfX1pTdDE4dW5jYXVn
aHRfZXhjZXB0aW9udikpIHsKLSAgICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYudW5j
YXVnaHRfZXhjZXB0aW9uID0gMTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIF9fWlN0MTh1bmNh
dWdodF9leGNlcHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbisrOwotICAgICAgfQotICAgICAgdGhy
b3cgcHRyICsgIiAtIEV4Y2VwdGlvbiBjYXRjaGluZyBpcyBkaXNhYmxlZCwgdGhpcyBleGNlcHRp
b24gY2Fubm90IGJlIGNhdWdodC4gQ29tcGlsZSB3aXRoIC1zIERJU0FCTEVfRVhDRVBUSU9OX0NB
VENISU5HPTAgb3IgRElTQUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MiB0byBjYXRjaC4iOzsKLSAg
ICB9Ci0gIHZhciBFUlJOT19DT0RFUz17RVBFUk06MSxFTk9FTlQ6MixFU1JDSDozLEVJTlRSOjQs
RUlPOjUsRU5YSU86NixFMkJJRzo3LEVOT0VYRUM6OCxFQkFERjo5LEVDSElMRDoxMCxFQUdBSU46
MTEsRVdPVUxEQkxPQ0s6MTEsRU5PTUVNOjEyLEVBQ0NFUzoxMyxFRkFVTFQ6MTQsRU5PVEJMSzox
NSxFQlVTWToxNixFRVhJU1Q6MTcsRVhERVY6MTgsRU5PREVWOjE5LEVOT1RESVI6MjAsRUlTRElS
OjIxLEVJTlZBTDoyMixFTkZJTEU6MjMsRU1GSUxFOjI0LEVOT1RUWToyNSxFVFhUQlNZOjI2LEVG
QklHOjI3LEVOT1NQQzoyOCxFU1BJUEU6MjksRVJPRlM6MzAsRU1MSU5LOjMxLEVQSVBFOjMyLEVE
T006MzMsRVJBTkdFOjM0LEVOT01TRzozNSxFSURSTTozNixFQ0hSTkc6MzcsRUwyTlNZTkM6Mzgs
RUwzSExUOjM5LEVMM1JTVDo0MCxFTE5STkc6NDEsRVVOQVRDSDo0MixFTk9DU0k6NDMsRUwySExU
OjQ0LEVERUFETEs6NDUsRU5PTENLOjQ2LEVCQURFOjUwLEVCQURSOjUxLEVYRlVMTDo1MixFTk9B
Tk86NTMsRUJBRFJRQzo1NCxFQkFEU0xUOjU1LEVERUFETE9DSzo1NixFQkZPTlQ6NTcsRU5PU1RS
OjYwLEVOT0RBVEE6NjEsRVRJTUU6NjIsRU5PU1I6NjMsRU5PTkVUOjY0LEVOT1BLRzo2NSxFUkVN
T1RFOjY2LEVOT0xJTks6NjcsRUFEVjo2OCxFU1JNTlQ6NjksRUNPTU06NzAsRVBST1RPOjcxLEVN
VUxUSUhPUDo3NCxFRE9URE9UOjc2LEVCQURNU0c6NzcsRU5PVFVOSVE6ODAsRUJBREZEOjgxLEVS
RU1DSEc6ODIsRUxJQkFDQzo4MyxFTElCQkFEOjg0LEVMSUJTQ046ODUsRUxJQk1BWDo4NixFTElC
RVhFQzo4NyxFTk9TWVM6ODgsRU5PVEVNUFRZOjkwLEVOQU1FVE9PTE9ORzo5MSxFTE9PUDo5MixF
T1BOT1RTVVBQOjk1LEVQRk5PU1VQUE9SVDo5NixFQ09OTlJFU0VUOjEwNCxFTk9CVUZTOjEwNSxF
QUZOT1NVUFBPUlQ6MTA2LEVQUk9UT1RZUEU6MTA3LEVOT1RTT0NLOjEwOCxFTk9QUk9UT09QVDox
MDksRVNIVVRET1dOOjExMCxFQ09OTlJFRlVTRUQ6MTExLEVBRERSSU5VU0U6MTEyLEVDT05OQUJP
UlRFRDoxMTMsRU5FVFVOUkVBQ0g6MTE0LEVORVRET1dOOjExNSxFVElNRURPVVQ6MTE2LEVIT1NU
RE9XTjoxMTcsRUhPU1RVTlJFQUNIOjExOCxFSU5QUk9HUkVTUzoxMTksRUFMUkVBRFk6MTIwLEVE
RVNUQUREUlJFUToxMjEsRU1TR1NJWkU6MTIyLEVQUk9UT05PU1VQUE9SVDoxMjMsRVNPQ0tUTk9T
VVBQT1JUOjEyNCxFQUREUk5PVEFWQUlMOjEyNSxFTkVUUkVTRVQ6MTI2LEVJU0NPTk46MTI3LEVO
T1RDT05OOjEyOCxFVE9PTUFOWVJFRlM6MTI5LEVVU0VSUzoxMzEsRURRVU9UOjEzMixFU1RBTEU6
MTMzLEVOT1RTVVA6MTM0LEVOT01FRElVTToxMzUsRUlMU0VROjEzOCxFT1ZFUkZMT1c6MTM5LEVD
QU5DRUxFRDoxNDAsRU5PVFJFQ09WRVJBQkxFOjE0MSxFT1dORVJERUFEOjE0MixFU1RSUElQRTox
NDN9OwotICB2YXIgRVJSTk9fTUVTU0FHRVM9ezA6IlN1Y2Nlc3MiLDE6Ik5vdCBzdXBlci11c2Vy
IiwyOiJObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IiwzOiJObyBzdWNoIHByb2Nlc3MiLDQ6Iklu
dGVycnVwdGVkIHN5c3RlbSBjYWxsIiw1OiJJL08gZXJyb3IiLDY6Ik5vIHN1Y2ggZGV2aWNlIG9y
IGFkZHJlc3MiLDc6IkFyZyBsaXN0IHRvbyBsb25nIiw4OiJFeGVjIGZvcm1hdCBlcnJvciIsOToi
QmFkIGZpbGUgbnVtYmVyIiwxMDoiTm8gY2hpbGRyZW4iLDExOiJObyBtb3JlIHByb2Nlc3NlcyIs
MTI6Ik5vdCBlbm91Z2ggY29yZSIsMTM6IlBlcm1pc3Npb24gZGVuaWVkIiwxNDoiQmFkIGFkZHJl
c3MiLDE1OiJCbG9jayBkZXZpY2UgcmVxdWlyZWQiLDE2OiJNb3VudCBkZXZpY2UgYnVzeSIsMTc6
IkZpbGUgZXhpc3RzIiwxODoiQ3Jvc3MtZGV2aWNlIGxpbmsiLDE5OiJObyBzdWNoIGRldmljZSIs
MjA6Ik5vdCBhIGRpcmVjdG9yeSIsMjE6IklzIGEgZGlyZWN0b3J5IiwyMjoiSW52YWxpZCBhcmd1
bWVudCIsMjM6IlRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtIiwyNDoiVG9vIG1hbnkgb3Bl
biBmaWxlcyIsMjU6Ik5vdCBhIHR5cGV3cml0ZXIiLDI2OiJUZXh0IGZpbGUgYnVzeSIsMjc6IkZp
bGUgdG9vIGxhcmdlIiwyODoiTm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UiLDI5OiJJbGxlZ2FsIHNl
ZWsiLDMwOiJSZWFkIG9ubHkgZmlsZSBzeXN0ZW0iLDMxOiJUb28gbWFueSBsaW5rcyIsMzI6IkJy
b2tlbiBwaXBlIiwzMzoiTWF0aCBhcmcgb3V0IG9mIGRvbWFpbiBvZiBmdW5jIiwzNDoiTWF0aCBy
ZXN1bHQgbm90IHJlcHJlc2VudGFibGUiLDM1OiJObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZSIs
MzY6IklkZW50aWZpZXIgcmVtb3ZlZCIsMzc6IkNoYW5uZWwgbnVtYmVyIG91dCBvZiByYW5nZSIs
Mzg6IkxldmVsIDIgbm90IHN5bmNocm9uaXplZCIsMzk6IkxldmVsIDMgaGFsdGVkIiw0MDoiTGV2
ZWwgMyByZXNldCIsNDE6IkxpbmsgbnVtYmVyIG91dCBvZiByYW5nZSIsNDI6IlByb3RvY29sIGRy
aXZlciBub3QgYXR0YWNoZWQiLDQzOiJObyBDU0kgc3RydWN0dXJlIGF2YWlsYWJsZSIsNDQ6Ikxl
dmVsIDIgaGFsdGVkIiw0NToiRGVhZGxvY2sgY29uZGl0aW9uIiw0NjoiTm8gcmVjb3JkIGxvY2tz
IGF2YWlsYWJsZSIsNTA6IkludmFsaWQgZXhjaGFuZ2UiLDUxOiJJbnZhbGlkIHJlcXVlc3QgZGVz
Y3JpcHRvciIsNTI6IkV4Y2hhbmdlIGZ1bGwiLDUzOiJObyBhbm9kZSIsNTQ6IkludmFsaWQgcmVx
dWVzdCBjb2RlIiw1NToiSW52YWxpZCBzbG90Iiw1NjoiRmlsZSBsb2NraW5nIGRlYWRsb2NrIGVy
cm9yIiw1NzoiQmFkIGZvbnQgZmlsZSBmbXQiLDYwOiJEZXZpY2Ugbm90IGEgc3RyZWFtIiw2MToi
Tm8gZGF0YSAoZm9yIG5vIGRlbGF5IGlvKSIsNjI6IlRpbWVyIGV4cGlyZWQiLDYzOiJPdXQgb2Yg
c3RyZWFtcyByZXNvdXJjZXMiLDY0OiJNYWNoaW5lIGlzIG5vdCBvbiB0aGUgbmV0d29yayIsNjU6
IlBhY2thZ2Ugbm90IGluc3RhbGxlZCIsNjY6IlRoZSBvYmplY3QgaXMgcmVtb3RlIiw2NzoiVGhl
IGxpbmsgaGFzIGJlZW4gc2V2ZXJlZCIsNjg6IkFkdmVydGlzZSBlcnJvciIsNjk6IlNybW91bnQg
ZXJyb3IiLDcwOiJDb21tdW5pY2F0aW9uIGVycm9yIG9uIHNlbmQiLDcxOiJQcm90b2NvbCBlcnJv
ciIsNzQ6Ik11bHRpaG9wIGF0dGVtcHRlZCIsNzY6IkNyb3NzIG1vdW50IHBvaW50IChub3QgcmVh
bGx5IGVycm9yKSIsNzc6IlRyeWluZyB0byByZWFkIHVucmVhZGFibGUgbWVzc2FnZSIsODA6Ikdp
dmVuIGxvZy4gbmFtZSBub3QgdW5pcXVlIiw4MToiZi5kLiBpbnZhbGlkIGZvciB0aGlzIG9wZXJh
dGlvbiIsODI6IlJlbW90ZSBhZGRyZXNzIGNoYW5nZWQiLDgzOiJDYW4gICBhY2Nlc3MgYSBuZWVk
ZWQgc2hhcmVkIGxpYiIsODQ6IkFjY2Vzc2luZyBhIGNvcnJ1cHRlZCBzaGFyZWQgbGliIiw4NToi
LmxpYiBzZWN0aW9uIGluIGEub3V0IGNvcnJ1cHRlZCIsODY6IkF0dGVtcHRpbmcgdG8gbGluayBp
biB0b28gbWFueSBsaWJzIiw4NzoiQXR0ZW1wdGluZyB0byBleGVjIGEgc2hhcmVkIGxpYnJhcnki
LDg4OiJGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQiLDkwOiJEaXJlY3Rvcnkgbm90IGVtcHR5Iiw5
MToiRmlsZSBvciBwYXRoIG5hbWUgdG9vIGxvbmciLDkyOiJUb28gbWFueSBzeW1ib2xpYyBsaW5r
cyIsOTU6Ik9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIHRyYW5zcG9ydCBlbmRwb2ludCIsOTY6
IlByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkIiwxMDQ6IkNvbm5lY3Rpb24gcmVzZXQgYnkg
cGVlciIsMTA1OiJObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlIiwxMDY6IkFkZHJlc3MgZmFtaWx5
IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wgZmFtaWx5IiwxMDc6IlByb3RvY29sIHdyb25nIHR5
cGUgZm9yIHNvY2tldCIsMTA4OiJTb2NrZXQgb3BlcmF0aW9uIG9uIG5vbi1zb2NrZXQiLDEwOToi
UHJvdG9jb2wgbm90IGF2YWlsYWJsZSIsMTEwOiJDYW4ndCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0
ZG93biIsMTExOiJDb25uZWN0aW9uIHJlZnVzZWQiLDExMjoiQWRkcmVzcyBhbHJlYWR5IGluIHVz
ZSIsMTEzOiJDb25uZWN0aW9uIGFib3J0ZWQiLDExNDoiTmV0d29yayBpcyB1bnJlYWNoYWJsZSIs
MTE1OiJOZXR3b3JrIGludGVyZmFjZSBpcyBub3QgY29uZmlndXJlZCIsMTE2OiJDb25uZWN0aW9u
IHRpbWVkIG91dCIsMTE3OiJIb3N0IGlzIGRvd24iLDExODoiSG9zdCBpcyB1bnJlYWNoYWJsZSIs
MTE5OiJDb25uZWN0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MiLDEyMDoiU29ja2V0IGFscmVhZHkg
Y29ubmVjdGVkIiwxMjE6IkRlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQiLDEyMjoiTWVzc2Fn
ZSB0b28gbG9uZyIsMTIzOiJVbmtub3duIHByb3RvY29sIiwxMjQ6IlNvY2tldCB0eXBlIG5vdCBz
dXBwb3J0ZWQiLDEyNToiQWRkcmVzcyBub3QgYXZhaWxhYmxlIiwxMjY6IkNvbm5lY3Rpb24gcmVz
ZXQgYnkgbmV0d29yayIsMTI3OiJTb2NrZXQgaXMgYWxyZWFkeSBjb25uZWN0ZWQiLDEyODoiU29j
a2V0IGlzIG5vdCBjb25uZWN0ZWQiLDEyOToiVG9vIG1hbnkgcmVmZXJlbmNlcyIsMTMxOiJUb28g
bWFueSB1c2VycyIsMTMyOiJRdW90YSBleGNlZWRlZCIsMTMzOiJTdGFsZSBmaWxlIGhhbmRsZSIs
MTM0OiJOb3Qgc3VwcG9ydGVkIiwxMzU6Ik5vIG1lZGl1bSAoaW4gdGFwZSBkcml2ZSkiLDEzODoi
SWxsZWdhbCBieXRlIHNlcXVlbmNlIiwxMzk6IlZhbHVlIHRvbyBsYXJnZSBmb3IgZGVmaW5lZCBk
YXRhIHR5cGUiLDE0MDoiT3BlcmF0aW9uIGNhbmNlbGVkIiwxNDE6IlN0YXRlIG5vdCByZWNvdmVy
YWJsZSIsMTQyOiJQcmV2aW91cyBvd25lciBkaWVkIiwxNDM6IlN0cmVhbXMgcGlwZSBlcnJvciJ9
OwotICB2YXIgX19fZXJybm9fc3RhdGU9MDtmdW5jdGlvbiBfX19zZXRFcnJObyh2YWx1ZSkgewot
ICAgICAgLy8gRm9yIGNvbnZlbmllbnQgc2V0dGluZyBhbmQgcmV0dXJuaW5nIG9mIGVycm5vLgot
ICAgICAgSEVBUDMyWygoX19fZXJybm9fc3RhdGUpPj4yKV09dmFsdWUKLSAgICAgIHJldHVybiB2
YWx1ZTsKLSAgICB9Ci0gIHZhciBWRlM9dW5kZWZpbmVkOwotICB2YXIgUEFUSD17c3BsaXRQYXRo
OmZ1bmN0aW9uIChmaWxlbmFtZSkgewotICAgICAgICB2YXIgc3BsaXRQYXRoUmUgPSAvXihcLz98
KShbXHNcU10qPykoKD86XC57MSwyfXxbXlwvXSs/fCkoXC5bXi5cL10qfCkpKD86W1wvXSopJC87
Ci0gICAgICAgIHJldHVybiBzcGxpdFBhdGhSZS5leGVjKGZpbGVuYW1lKS5zbGljZSgxKTsKLSAg
ICAgIH0sbm9ybWFsaXplQXJyYXk6ZnVuY3Rpb24gKHBhcnRzLCBhbGxvd0Fib3ZlUm9vdCkgewot
ICAgICAgICAvLyBpZiB0aGUgcGF0aCB0cmllcyB0byBnbyBhYm92ZSB0aGUgcm9vdCwgYHVwYCBl
bmRzIHVwID4gMAotICAgICAgICB2YXIgdXAgPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gcGFy
dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKLSAgICAgICAgICB2YXIgbGFzdCA9IHBhcnRz
W2ldOwotICAgICAgICAgIGlmIChsYXN0ID09PSAnLicpIHsKLSAgICAgICAgICAgIHBhcnRzLnNw
bGljZShpLCAxKTsKLSAgICAgICAgICB9IGVsc2UgaWYgKGxhc3QgPT09ICcuLicpIHsKLSAgICAg
ICAgICAgIHBhcnRzLnNwbGljZShpLCAxKTsKLSAgICAgICAgICAgIHVwKys7Ci0gICAgICAgICAg
fSBlbHNlIGlmICh1cCkgewotICAgICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwotICAgICAg
ICAgICAgdXAtLTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gaWYgdGhlIHBh
dGggaXMgYWxsb3dlZCB0byBnbyBhYm92ZSB0aGUgcm9vdCwgcmVzdG9yZSBsZWFkaW5nIC4ucwot
ICAgICAgICBpZiAoYWxsb3dBYm92ZVJvb3QpIHsKLSAgICAgICAgICBmb3IgKDsgdXAtLTsgdXAp
IHsKLSAgICAgICAgICAgIHBhcnRzLnVuc2hpZnQoJy4uJyk7Ci0gICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBwYXJ0czsKLSAgICAgIH0sbm9ybWFsaXplOmZ1bmN0aW9uIChw
YXRoKSB7Ci0gICAgICAgIHZhciBpc0Fic29sdXRlID0gcGF0aC5jaGFyQXQoMCkgPT09ICcvJywK
LSAgICAgICAgICAgIHRyYWlsaW5nU2xhc2ggPSBwYXRoLnN1YnN0cigtMSkgPT09ICcvJzsKLSAg
ICAgICAgLy8gTm9ybWFsaXplIHRoZSBwYXRoCi0gICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6
ZUFycmF5KHBhdGguc3BsaXQoJy8nKS5maWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJl
dHVybiAhIXA7Ci0gICAgICAgIH0pLCAhaXNBYnNvbHV0ZSkuam9pbignLycpOwotICAgICAgICBp
ZiAoIXBhdGggJiYgIWlzQWJzb2x1dGUpIHsKLSAgICAgICAgICBwYXRoID0gJy4nOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChwYXRoICYmIHRyYWlsaW5nU2xhc2gpIHsKLSAgICAgICAgICBwYXRo
ICs9ICcvJzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gKGlzQWJzb2x1dGUgPyAnLycgOiAn
JykgKyBwYXRoOwotICAgICAgfSxkaXJuYW1lOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHZh
ciByZXN1bHQgPSBQQVRILnNwbGl0UGF0aChwYXRoKSwKLSAgICAgICAgICAgIHJvb3QgPSByZXN1
bHRbMF0sCi0gICAgICAgICAgICBkaXIgPSByZXN1bHRbMV07Ci0gICAgICAgIGlmICghcm9vdCAm
JiAhZGlyKSB7Ci0gICAgICAgICAgLy8gTm8gZGlybmFtZSB3aGF0c29ldmVyCi0gICAgICAgICAg
cmV0dXJuICcuJzsKLSAgICAgICAgfQotICAgICAgICBpZiAoZGlyKSB7Ci0gICAgICAgICAgLy8g
SXQgaGFzIGEgZGlybmFtZSwgc3RyaXAgdHJhaWxpbmcgc2xhc2gKLSAgICAgICAgICBkaXIgPSBk
aXIuc3Vic3RyKDAsIGRpci5sZW5ndGggLSAxKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cm9vdCArIGRpcjsKLSAgICAgIH0sYmFzZW5hbWU6ZnVuY3Rpb24gKHBhdGgsIGV4dCkgewotICAg
ICAgICAvLyBFTVNDUklQVEVOIHJldHVybiAnLycnIGZvciAnLycsIG5vdCBhbiBlbXB0eSBzdHJp
bmcKLSAgICAgICAgaWYgKHBhdGggPT09ICcvJykgcmV0dXJuICcvJzsKLSAgICAgICAgdmFyIGYg
PSBQQVRILnNwbGl0UGF0aChwYXRoKVsyXTsKLSAgICAgICAgaWYgKGV4dCAmJiBmLnN1YnN0cigt
MSAqIGV4dC5sZW5ndGgpID09PSBleHQpIHsKLSAgICAgICAgICBmID0gZi5zdWJzdHIoMCwgZi5s
ZW5ndGggLSBleHQubGVuZ3RoKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZjsKLSAgICAg
IH0sam9pbjpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBwYXRocyA9IEFycmF5LnByb3RvdHlw
ZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7Ci0gICAgICAgIHJldHVybiBQQVRILm5vcm1hbGl6
ZShwYXRocy5maWx0ZXIoZnVuY3Rpb24ocCwgaW5kZXgpIHsKLSAgICAgICAgICBpZiAodHlwZW9m
IHAgIT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1
bWVudHMgdG8gcGF0aC5qb2luIG11c3QgYmUgc3RyaW5ncycpOwotICAgICAgICAgIH0KLSAgICAg
ICAgICByZXR1cm4gcDsKLSAgICAgICAgfSkuam9pbignLycpKTsKLSAgICAgIH0scmVzb2x2ZTpm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciByZXNvbHZlZFBhdGggPSAnJywKLSAgICAgICAgICBy
ZXNvbHZlZEFic29sdXRlID0gZmFsc2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSBhcmd1bWVudHMu
bGVuZ3RoIC0gMTsgaSA+PSAtMSAmJiAhcmVzb2x2ZWRBYnNvbHV0ZTsgaS0tKSB7Ci0gICAgICAg
ICAgdmFyIHBhdGggPSAoaSA+PSAwKSA/IGFyZ3VtZW50c1tpXSA6IEZTLmN3ZCgpOwotICAgICAg
ICAgIC8vIFNraXAgZW1wdHkgYW5kIGludmFsaWQgZW50cmllcwotICAgICAgICAgIGlmICh0eXBl
b2YgcGF0aCAhPT0gJ3N0cmluZycpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3Io
J0FyZ3VtZW50cyB0byBwYXRoLnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzJyk7Ci0gICAgICAgICAg
fSBlbHNlIGlmICghcGF0aCkgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIHJlc29sdmVkUGF0aCA9IHBhdGggKyAnLycgKyByZXNvbHZlZFBhdGg7Ci0gICAg
ICAgICAgcmVzb2x2ZWRBYnNvbHV0ZSA9IHBhdGguY2hhckF0KDApID09PSAnLyc7Ci0gICAgICAg
IH0KLSAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgcGF0aCBzaG91bGQgYmUgcmVzb2x2ZWQg
dG8gYSBmdWxsIGFic29sdXRlIHBhdGgsIGJ1dAotICAgICAgICAvLyBoYW5kbGUgcmVsYXRpdmUg
cGF0aHMgdG8gYmUgc2FmZSAobWlnaHQgaGFwcGVuIHdoZW4gcHJvY2Vzcy5jd2QoKSBmYWlscykK
LSAgICAgICAgcmVzb2x2ZWRQYXRoID0gUEFUSC5ub3JtYWxpemVBcnJheShyZXNvbHZlZFBhdGgu
c3BsaXQoJy8nKS5maWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJldHVybiAhIXA7Ci0g
ICAgICAgIH0pLCAhcmVzb2x2ZWRBYnNvbHV0ZSkuam9pbignLycpOwotICAgICAgICByZXR1cm4g
KChyZXNvbHZlZEFic29sdXRlID8gJy8nIDogJycpICsgcmVzb2x2ZWRQYXRoKSB8fCAnLic7Ci0g
ICAgICB9LHJlbGF0aXZlOmZ1bmN0aW9uIChmcm9tLCB0bykgewotICAgICAgICBmcm9tID0gUEFU
SC5yZXNvbHZlKGZyb20pLnN1YnN0cigxKTsKLSAgICAgICAgdG8gPSBQQVRILnJlc29sdmUodG8p
LnN1YnN0cigxKTsKLSAgICAgICAgZnVuY3Rpb24gdHJpbShhcnIpIHsKLSAgICAgICAgICB2YXIg
c3RhcnQgPSAwOwotICAgICAgICAgIGZvciAoOyBzdGFydCA8IGFyci5sZW5ndGg7IHN0YXJ0Kysp
IHsKLSAgICAgICAgICAgIGlmIChhcnJbc3RhcnRdICE9PSAnJykgYnJlYWs7Ci0gICAgICAgICAg
fQotICAgICAgICAgIHZhciBlbmQgPSBhcnIubGVuZ3RoIC0gMTsKLSAgICAgICAgICBmb3IgKDsg
ZW5kID49IDA7IGVuZC0tKSB7Ci0gICAgICAgICAgICBpZiAoYXJyW2VuZF0gIT09ICcnKSBicmVh
azsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSByZXR1cm4gW107Ci0g
ICAgICAgICAgcmV0dXJuIGFyci5zbGljZShzdGFydCwgZW5kIC0gc3RhcnQgKyAxKTsKLSAgICAg
ICAgfQotICAgICAgICB2YXIgZnJvbVBhcnRzID0gdHJpbShmcm9tLnNwbGl0KCcvJykpOwotICAg
ICAgICB2YXIgdG9QYXJ0cyA9IHRyaW0odG8uc3BsaXQoJy8nKSk7Ci0gICAgICAgIHZhciBsZW5n
dGggPSBNYXRoLm1pbihmcm9tUGFydHMubGVuZ3RoLCB0b1BhcnRzLmxlbmd0aCk7Ci0gICAgICAg
IHZhciBzYW1lUGFydHNMZW5ndGggPSBsZW5ndGg7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICBpZiAoZnJvbVBhcnRzW2ldICE9PSB0b1BhcnRz
W2ldKSB7Ci0gICAgICAgICAgICBzYW1lUGFydHNMZW5ndGggPSBpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHZhciBvdXRwdXRQYXJ0cyA9IFtd
OwotICAgICAgICBmb3IgKHZhciBpID0gc2FtZVBhcnRzTGVuZ3RoOyBpIDwgZnJvbVBhcnRzLmxl
bmd0aDsgaSsrKSB7Ci0gICAgICAgICAgb3V0cHV0UGFydHMucHVzaCgnLi4nKTsKLSAgICAgICAg
fQotICAgICAgICBvdXRwdXRQYXJ0cyA9IG91dHB1dFBhcnRzLmNvbmNhdCh0b1BhcnRzLnNsaWNl
KHNhbWVQYXJ0c0xlbmd0aCkpOwotICAgICAgICByZXR1cm4gb3V0cHV0UGFydHMuam9pbignLycp
OwotICAgICAgfX07Ci0gIHZhciBUVFk9e3R0eXM6W10scmVnaXN0ZXI6ZnVuY3Rpb24gKGRldiwg
b3BzKSB7Ci0gICAgICAgIFRUWS50dHlzW2Rldl0gPSB7IGlucHV0OiBbXSwgb3V0cHV0OiBbXSwg
b3BzOiBvcHMgfTsKLSAgICAgICAgRlMucmVnaXN0ZXJEZXZpY2UoZGV2LCBUVFkuc3RyZWFtX29w
cyk7Ci0gICAgICB9LHN0cmVhbV9vcHM6e29wZW46ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAg
ICAgIC8vIHRoaXMgd291bGRuJ3QgYmUgcmVxdWlyZWQgaWYgdGhlIGxpYnJhcnkgd2Fzbid0IGV2
YWwnZCBhdCBmaXJzdC4uLgotICAgICAgICAgIGlmICghVFRZLnV0ZjgpIHsKLSAgICAgICAgICAg
IFRUWS51dGY4ID0gbmV3IFJ1bnRpbWUuVVRGOFByb2Nlc3NvcigpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICB2YXIgdHR5ID0gVFRZLnR0eXNbc3RyZWFtLm5vZGUucmRldl07Ci0gICAgICAgICAg
aWYgKCF0dHkpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVOT0RFVik7Ci0gICAgICAgICAgfQotICAgICAgICAgIHN0cmVhbS50dHkgPSB0dHk7Ci0g
ICAgICAgICAgc3RyZWFtLnNlZWthYmxlID0gZmFsc2U7Ci0gICAgICAgIH0sY2xvc2U6ZnVuY3Rp
b24gKHN0cmVhbSkgewotICAgICAgICAgIC8vIGZsdXNoIGFueSBwZW5kaW5nIGxpbmUgZGF0YQot
ICAgICAgICAgIGlmIChzdHJlYW0udHR5Lm91dHB1dC5sZW5ndGgpIHsKLSAgICAgICAgICAgIHN0
cmVhbS50dHkub3BzLnB1dF9jaGFyKHN0cmVhbS50dHksIDEwKTsKLSAgICAgICAgICB9Ci0gICAg
ICAgIH0scmVhZDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3Mg
LyogaWdub3JlZCAqLykgewotICAgICAgICAgIGlmICghc3RyZWFtLnR0eSB8fCAhc3RyZWFtLnR0
eS5vcHMuZ2V0X2NoYXIpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVOWElPKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGJ5dGVzUmVhZCA9
IDA7Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAg
ICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIHJlc3Vs
dCA9IHN0cmVhbS50dHkub3BzLmdldF9jaGFyKHN0cmVhbS50dHkpOwotICAgICAgICAgICAgfSBj
YXRjaCAoZSkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FSU8pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5k
ZWZpbmVkICYmIGJ5dGVzUmVhZCA9PT0gMCkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMu
RXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUdBSU4pOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZCkgYnJlYWs7Ci0g
ICAgICAgICAgICBieXRlc1JlYWQrKzsKLSAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQraV0gPSBy
ZXN1bHQ7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChieXRlc1JlYWQpIHsKLSAgICAgICAg
ICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIHJldHVybiBieXRlc1JlYWQ7Ci0gICAgICAgIH0sd3JpdGU6ZnVuY3Rpb24gKHN0cmVh
bSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zKSB7Ci0gICAgICAgICAgaWYgKCFzdHJlYW0u
dHR5IHx8ICFzdHJlYW0udHR5Lm9wcy5wdXRfY2hhcikgewotICAgICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5YSU8pOwotICAgICAgICAgIH0KLSAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB0cnkgewot
ICAgICAgICAgICAgICBzdHJlYW0udHR5Lm9wcy5wdXRfY2hhcihzdHJlYW0udHR5LCBidWZmZXJb
b2Zmc2V0K2ldKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICB9Ci0gICAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAgc3RyZWFtLm5v
ZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJu
IGk7Ci0gICAgICAgIH19LGRlZmF1bHRfdHR5X29wczp7Z2V0X2NoYXI6ZnVuY3Rpb24gKHR0eSkg
ewotICAgICAgICAgIGlmICghdHR5LmlucHV0Lmxlbmd0aCkgewotICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IG51bGw7Ci0gICAgICAgICAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewotICAg
ICAgICAgICAgICBpZiAocHJvY2Vzcy5zdGRpbi5kZXN0cm95ZWQpIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIHJlc3Vs
dCA9IHByb2Nlc3Muc3RkaW4ucmVhZCgpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Yg
d2luZG93ICE9ICd1bmRlZmluZWQnICYmCi0gICAgICAgICAgICAgIHR5cGVvZiB3aW5kb3cucHJv
bXB0ID09ICdmdW5jdGlvbicpIHsKLSAgICAgICAgICAgICAgLy8gQnJvd3Nlci4KLSAgICAgICAg
ICAgICAgcmVzdWx0ID0gd2luZG93LnByb21wdCgnSW5wdXQ6ICcpOyAgLy8gcmV0dXJucyBudWxs
IG9uIGNhbmNlbAotICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgICAgcmVzdWx0ICs9ICdcbic7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0g
ZWxzZSBpZiAodHlwZW9mIHJlYWRsaW5lID09ICdmdW5jdGlvbicpIHsKLSAgICAgICAgICAgICAg
Ly8gQ29tbWFuZCBsaW5lLgotICAgICAgICAgICAgICByZXN1bHQgPSByZWFkbGluZSgpOwotICAg
ICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0
ICs9ICdcbic7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
ICghcmVzdWx0KSB7Ci0gICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdHR5LmlucHV0ID0gaW50QXJyYXlGcm9tU3RyaW5nKHJlc3VsdCwgdHJ1ZSk7
Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiB0dHkuaW5wdXQuc2hpZnQoKTsKLSAgICAg
ICAgfSxwdXRfY2hhcjpmdW5jdGlvbiAodHR5LCB2YWwpIHsKLSAgICAgICAgICBpZiAodmFsID09
PSBudWxsIHx8IHZhbCA9PT0gMTApIHsKLSAgICAgICAgICAgIE1vZHVsZVsncHJpbnQnXSh0dHku
b3V0cHV0LmpvaW4oJycpKTsKLSAgICAgICAgICAgIHR0eS5vdXRwdXQgPSBbXTsKLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgdHR5Lm91dHB1dC5wdXNoKFRUWS51dGY4LnByb2Nlc3ND
Q2hhcih2YWwpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH19LGRlZmF1bHRfdHR5MV9vcHM6e3B1
dF9jaGFyOmZ1bmN0aW9uICh0dHksIHZhbCkgewotICAgICAgICAgIGlmICh2YWwgPT09IG51bGwg
fHwgdmFsID09PSAxMCkgewotICAgICAgICAgICAgTW9kdWxlWydwcmludEVyciddKHR0eS5vdXRw
dXQuam9pbignJykpOwotICAgICAgICAgICAgdHR5Lm91dHB1dCA9IFtdOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICB0dHkub3V0cHV0LnB1c2goVFRZLnV0ZjgucHJvY2Vzc0NDaGFy
KHZhbCkpOwotICAgICAgICAgIH0KLSAgICAgICAgfX19OwotICB2YXIgTUVNRlM9e21vdW50OmZ1
bmN0aW9uIChtb3VudCkgewotICAgICAgICByZXR1cm4gTUVNRlMuY3JlYXRlX25vZGUobnVsbCwg
Jy8nLCAwMDQwMDAwIHwgMDc3NywgMCk7Ci0gICAgICB9LGNyZWF0ZV9ub2RlOmZ1bmN0aW9uIChw
YXJlbnQsIG5hbWUsIG1vZGUsIGRldikgewotICAgICAgICBpZiAoRlMuaXNCbGtkZXYobW9kZSkg
fHwgRlMuaXNGSUZPKG1vZGUpKSB7Ci0gICAgICAgICAgLy8gbm8gc3VwcG9ydGVkCi0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9
Ci0gICAgICAgIHZhciBub2RlID0gRlMuY3JlYXRlTm9kZShwYXJlbnQsIG5hbWUsIG1vZGUsIGRl
dik7Ci0gICAgICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgbm9kZS5u
b2RlX29wcyA9IHsKLSAgICAgICAgICAgIGdldGF0dHI6IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIs
Ci0gICAgICAgICAgICBzZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5zZXRhdHRyLAotICAgICAgICAg
ICAgbG9va3VwOiBNRU1GUy5ub2RlX29wcy5sb29rdXAsCi0gICAgICAgICAgICBta25vZDogTUVN
RlMubm9kZV9vcHMubWtub2QsCi0gICAgICAgICAgICBta25vZDogTUVNRlMubm9kZV9vcHMubWtu
b2QsCi0gICAgICAgICAgICByZW5hbWU6IE1FTUZTLm5vZGVfb3BzLnJlbmFtZSwKLSAgICAgICAg
ICAgIHVubGluazogTUVNRlMubm9kZV9vcHMudW5saW5rLAotICAgICAgICAgICAgcm1kaXI6IE1F
TUZTLm5vZGVfb3BzLnJtZGlyLAotICAgICAgICAgICAgcmVhZGRpcjogTUVNRlMubm9kZV9vcHMu
cmVhZGRpciwKLSAgICAgICAgICAgIHN5bWxpbms6IE1FTUZTLm5vZGVfb3BzLnN5bWxpbmsKLSAg
ICAgICAgICB9OwotICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IHsKLSAgICAgICAgICAgIGxs
c2VlazogTUVNRlMuc3RyZWFtX29wcy5sbHNlZWsKLSAgICAgICAgICB9OwotICAgICAgICAgIG5v
ZGUuY29udGVudHMgPSB7fTsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0ZpbGUobm9kZS5tb2Rl
KSkgewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBN
RU1GUy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9v
cHMuc2V0YXR0cgotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gewot
ICAgICAgICAgICAgbGxzZWVrOiBNRU1GUy5zdHJlYW1fb3BzLmxsc2VlaywKLSAgICAgICAgICAg
IHJlYWQ6IE1FTUZTLnN0cmVhbV9vcHMucmVhZCwKLSAgICAgICAgICAgIHdyaXRlOiBNRU1GUy5z
dHJlYW1fb3BzLndyaXRlLAotICAgICAgICAgICAgYWxsb2NhdGU6IE1FTUZTLnN0cmVhbV9vcHMu
YWxsb2NhdGUsCi0gICAgICAgICAgICBtbWFwOiBNRU1GUy5zdHJlYW1fb3BzLm1tYXAKLSAgICAg
ICAgICB9OwotICAgICAgICAgIG5vZGUuY29udGVudHMgPSBbXTsKLSAgICAgICAgfSBlbHNlIGlm
IChGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0g
ICAgICAgICAgICBnZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAg
c2V0YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0YXR0ciwKLSAgICAgICAgICAgIHJlYWRsaW5rOiBN
RU1GUy5ub2RlX29wcy5yZWFkbGluawotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJl
YW1fb3BzID0ge307Ci0gICAgICAgIH0gZWxzZSBpZiAoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSkg
ewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBNRU1G
Uy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9vcHMu
c2V0YXR0cgotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gRlMuY2hy
ZGV2X3N0cmVhbV9vcHM7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS50aW1lc3RhbXAgPSBEYXRl
Lm5vdygpOwotICAgICAgICAvLyBhZGQgdGhlIG5ldyBub2RlIHRvIHRoZSBwYXJlbnQKLSAgICAg
ICAgaWYgKHBhcmVudCkgewotICAgICAgICAgIHBhcmVudC5jb250ZW50c1tuYW1lXSA9IG5vZGU7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LG5vZGVfb3BzOntnZXRh
dHRyOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgICAgdmFyIGF0dHIgPSB7fTsKLSAgICAgICAg
ICAvLyBkZXZpY2UgbnVtYmVycyByZXVzZSBpbm9kZSBudW1iZXJzLgotICAgICAgICAgIGF0dHIu
ZGV2ID0gRlMuaXNDaHJkZXYobm9kZS5tb2RlKSA/IG5vZGUuaWQgOiAxOwotICAgICAgICAgIGF0
dHIuaW5vID0gbm9kZS5pZDsKLSAgICAgICAgICBhdHRyLm1vZGUgPSBub2RlLm1vZGU7Ci0gICAg
ICAgICAgYXR0ci5ubGluayA9IDE7Ci0gICAgICAgICAgYXR0ci51aWQgPSAwOwotICAgICAgICAg
IGF0dHIuZ2lkID0gMDsKLSAgICAgICAgICBhdHRyLnJkZXYgPSBub2RlLnJkZXY7Ci0gICAgICAg
ICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIGF0dHIuc2l6ZSA9IDQw
OTY7Ci0gICAgICAgICAgfSBlbHNlIGlmIChGUy5pc0ZpbGUobm9kZS5tb2RlKSkgewotICAgICAg
ICAgICAgYXR0ci5zaXplID0gbm9kZS5jb250ZW50cy5sZW5ndGg7Ci0gICAgICAgICAgfSBlbHNl
IGlmIChGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgICAgYXR0ci5zaXplID0gbm9k
ZS5saW5rLmxlbmd0aDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXR0ci5zaXpl
ID0gMDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgYXR0ci5hdGltZSA9IG5ldyBEYXRlKG5vZGUu
dGltZXN0YW1wKTsKLSAgICAgICAgICBhdHRyLm10aW1lID0gbmV3IERhdGUobm9kZS50aW1lc3Rh
bXApOwotICAgICAgICAgIGF0dHIuY3RpbWUgPSBuZXcgRGF0ZShub2RlLnRpbWVzdGFtcCk7Ci0g
ICAgICAgICAgLy8gTk9URTogSW4gb3VyIGltcGxlbWVudGF0aW9uLCBzdF9ibG9ja3MgPSBNYXRo
LmNlaWwoc3Rfc2l6ZS9zdF9ibGtzaXplKSwKLSAgICAgICAgICAvLyAgICAgICBidXQgdGhpcyBp
cyBub3QgcmVxdWlyZWQgYnkgdGhlIHN0YW5kYXJkLgotICAgICAgICAgIGF0dHIuYmxrc2l6ZSA9
IDQwOTY7Ci0gICAgICAgICAgYXR0ci5ibG9ja3MgPSBNYXRoLmNlaWwoYXR0ci5zaXplIC8gYXR0
ci5ibGtzaXplKTsKLSAgICAgICAgICByZXR1cm4gYXR0cjsKLSAgICAgICAgfSxzZXRhdHRyOmZ1
bmN0aW9uIChub2RlLCBhdHRyKSB7Ci0gICAgICAgICAgaWYgKGF0dHIubW9kZSAhPT0gdW5kZWZp
bmVkKSB7Ci0gICAgICAgICAgICBub2RlLm1vZGUgPSBhdHRyLm1vZGU7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIGlmIChhdHRyLnRpbWVzdGFtcCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAg
ICBub2RlLnRpbWVzdGFtcCA9IGF0dHIudGltZXN0YW1wOwotICAgICAgICAgIH0KLSAgICAgICAg
ICBpZiAoYXR0ci5zaXplICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHZhciBjb250ZW50
cyA9IG5vZGUuY29udGVudHM7Ci0gICAgICAgICAgICBpZiAoYXR0ci5zaXplIDwgY29udGVudHMu
bGVuZ3RoKSBjb250ZW50cy5sZW5ndGggPSBhdHRyLnNpemU7Ci0gICAgICAgICAgICBlbHNlIHdo
aWxlIChhdHRyLnNpemUgPiBjb250ZW50cy5sZW5ndGgpIGNvbnRlbnRzLnB1c2goMCk7Ci0gICAg
ICAgICAgfQotICAgICAgICB9LGxvb2t1cDpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKTsKLSAgICAg
ICAgfSxta25vZDpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpIHsKLSAgICAgICAg
ICByZXR1cm4gTUVNRlMuY3JlYXRlX25vZGUocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpOwotICAg
ICAgICB9LHJlbmFtZTpmdW5jdGlvbiAob2xkX25vZGUsIG5ld19kaXIsIG5ld19uYW1lKSB7Ci0g
ICAgICAgICAgLy8gaWYgd2UncmUgb3ZlcndyaXRpbmcgYSBkaXJlY3RvcnkgYXQgbmV3X25hbWUs
IG1ha2Ugc3VyZSBpdCdzIGVtcHR5LgotICAgICAgICAgIGlmIChGUy5pc0RpcihvbGRfbm9kZS5t
b2RlKSkgewotICAgICAgICAgICAgdmFyIG5ld19ub2RlOwotICAgICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgICAgbmV3X25vZGUgPSBGUy5sb29rdXBOb2RlKG5ld19kaXIsIG5ld19uYW1lKTsK
LSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChuZXdfbm9kZSkgewotICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIG5ld19ub2RlLmNvbnRl
bnRzKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRU5PVEVNUFRZKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg
IH0KLSAgICAgICAgICAvLyBkbyB0aGUgaW50ZXJuYWwgcmV3aXJpbmcKLSAgICAgICAgICBkZWxl
dGUgb2xkX25vZGUucGFyZW50LmNvbnRlbnRzW29sZF9ub2RlLm5hbWVdOwotICAgICAgICAgIG9s
ZF9ub2RlLm5hbWUgPSBuZXdfbmFtZTsKLSAgICAgICAgICBuZXdfZGlyLmNvbnRlbnRzW25ld19u
YW1lXSA9IG9sZF9ub2RlOwotICAgICAgICB9LHVubGluazpmdW5jdGlvbiAocGFyZW50LCBuYW1l
KSB7Ci0gICAgICAgICAgZGVsZXRlIHBhcmVudC5jb250ZW50c1tuYW1lXTsKLSAgICAgICAgfSxy
bWRpcjpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAgICAgICAgdmFyIG5vZGUgPSBGUy5s
b29rdXBOb2RlKHBhcmVudCwgbmFtZSk7Ci0gICAgICAgICAgZm9yICh2YXIgaSBpbiBub2RlLmNv
bnRlbnRzKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FTk9URU1QVFkpOwotICAgICAgICAgIH0KLSAgICAgICAgICBkZWxldGUgcGFyZW50LmNvbnRl
bnRzW25hbWVdOwotICAgICAgICB9LHJlYWRkaXI6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAg
ICB2YXIgZW50cmllcyA9IFsnLicsICcuLiddCi0gICAgICAgICAgZm9yICh2YXIga2V5IGluIG5v
ZGUuY29udGVudHMpIHsKLSAgICAgICAgICAgIGlmICghbm9kZS5jb250ZW50cy5oYXNPd25Qcm9w
ZXJ0eShrZXkpKSB7Ci0gICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgZW50cmllcy5wdXNoKGtleSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVy
biBlbnRyaWVzOwotICAgICAgICB9LHN5bWxpbms6ZnVuY3Rpb24gKHBhcmVudCwgbmV3bmFtZSwg
b2xkcGF0aCkgewotICAgICAgICAgIHZhciBub2RlID0gTUVNRlMuY3JlYXRlX25vZGUocGFyZW50
LCBuZXduYW1lLCAwNzc3IHwgMDEyMDAwMCwgMCk7Ci0gICAgICAgICAgbm9kZS5saW5rID0gb2xk
cGF0aDsKLSAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgfSxyZWFkbGluazpmdW5jdGlv
biAobm9kZSkgewotICAgICAgICAgIGlmICghRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKLSAgICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAg
ICAgICAgfQotICAgICAgICAgIHJldHVybiBub2RlLmxpbms7Ci0gICAgICAgIH19LHN0cmVhbV9v
cHM6e3JlYWQ6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRp
b24pIHsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAg
ICAgICAgICB2YXIgc2l6ZSA9IE1hdGgubWluKGNvbnRlbnRzLmxlbmd0aCAtIHBvc2l0aW9uLCBs
ZW5ndGgpOwotICAgICAgICAgIGlmIChjb250ZW50cy5zdWJhcnJheSkgeyAvLyB0eXBlZCBhcnJh
eQotICAgICAgICAgICAgYnVmZmVyLnNldChjb250ZW50cy5zdWJhcnJheShwb3NpdGlvbiwgcG9z
aXRpb24gKyBzaXplKSwgb2Zmc2V0KTsKLSAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICB7Ci0g
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICAgICAg
ICBidWZmZXJbb2Zmc2V0ICsgaV0gPSBjb250ZW50c1twb3NpdGlvbiArIGldOwotICAgICAgICAg
ICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gc2l6ZTsKLSAgICAgICAgfSx3cml0
ZTpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewot
ICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwotICAgICAgICAg
IHdoaWxlIChjb250ZW50cy5sZW5ndGggPCBwb3NpdGlvbikgY29udGVudHMucHVzaCgwKTsKLSAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBj
b250ZW50c1twb3NpdGlvbiArIGldID0gYnVmZmVyW29mZnNldCArIGldOwotICAgICAgICAgIH0K
LSAgICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAg
IHJldHVybiBsZW5ndGg7Ci0gICAgICAgIH0sbGxzZWVrOmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNl
dCwgd2hlbmNlKSB7Ci0gICAgICAgICAgdmFyIHBvc2l0aW9uID0gb2Zmc2V0OwotICAgICAgICAg
IGlmICh3aGVuY2UgPT09IDEpIHsgIC8vIFNFRUtfQ1VSLgotICAgICAgICAgICAgcG9zaXRpb24g
Kz0gc3RyZWFtLnBvc2l0aW9uOwotICAgICAgICAgIH0gZWxzZSBpZiAod2hlbmNlID09PSAyKSB7
ICAvLyBTRUVLX0VORC4KLSAgICAgICAgICAgIGlmIChGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9k
ZSkpIHsKLSAgICAgICAgICAgICAgcG9zaXRpb24gKz0gc3RyZWFtLm5vZGUuY29udGVudHMubGVu
Z3RoOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAocG9zaXRpb24g
PCAwKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
SU5WQUwpOwotICAgICAgICAgIH0KLSAgICAgICAgICBzdHJlYW0udW5nb3R0ZW4gPSBbXTsKLSAg
ICAgICAgICBzdHJlYW0ucG9zaXRpb24gPSBwb3NpdGlvbjsKLSAgICAgICAgICByZXR1cm4gcG9z
aXRpb247Ci0gICAgICAgIH0sYWxsb2NhdGU6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCBsZW5n
dGgpIHsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAg
ICAgICAgICB2YXIgbGltaXQgPSBvZmZzZXQgKyBsZW5ndGg7Ci0gICAgICAgICAgd2hpbGUgKGxp
bWl0ID4gY29udGVudHMubGVuZ3RoKSBjb250ZW50cy5wdXNoKDApOwotICAgICAgICB9LG1tYXA6
ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24sIHByb3Qs
IGZsYWdzKSB7Ci0gICAgICAgICAgaWYgKCFGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpIHsK
LSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVik7
Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBwdHI7Ci0gICAgICAgICAgdmFyIGFsbG9jYXRl
ZDsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAg
ICAgICAvLyBPbmx5IG1ha2UgYSBuZXcgY29weSB3aGVuIE1BUF9QUklWQVRFIGlzIHNwZWNpZmll
ZC4KLSAgICAgICAgICBpZiAoIShmbGFncyAmIDB4MDIpKSB7Ci0gICAgICAgICAgICAvLyBXZSBj
YW4ndCBlbXVsYXRlIE1BUF9TSEFSRUQgd2hlbiB0aGUgZmlsZSBpcyBub3QgYmFja2VkIGJ5IHRo
ZSBidWZmZXIKLSAgICAgICAgICAgIC8vIHdlJ3JlIG1hcHBpbmcgdG8gKGUuZy4gdGhlIEhFQVAg
YnVmZmVyKS4KLSAgICAgICAgICAgIGFzc2VydChjb250ZW50cy5idWZmZXIgPT09IGJ1ZmZlciB8
fCBjb250ZW50cy5idWZmZXIgPT09IGJ1ZmZlci5idWZmZXIpOwotICAgICAgICAgICAgYWxsb2Nh
dGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBwdHIgPSBjb250ZW50cy5ieXRlT2Zmc2V0OwotICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBUcnkgdG8gYXZvaWQgdW5uZWNlc3Nhcnkg
c2xpY2VzLgotICAgICAgICAgICAgaWYgKHBvc2l0aW9uID4gMCB8fCBwb3NpdGlvbiArIGxlbmd0
aCA8IGNvbnRlbnRzLmxlbmd0aCkgewotICAgICAgICAgICAgICBpZiAoY29udGVudHMuc3ViYXJy
YXkpIHsKLSAgICAgICAgICAgICAgICBjb250ZW50cyA9IGNvbnRlbnRzLnN1YmFycmF5KHBvc2l0
aW9uLCBwb3NpdGlvbiArIGxlbmd0aCk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgY29udGVudHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjb250ZW50cywg
cG9zaXRpb24sIHBvc2l0aW9uICsgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgYWxsb2NhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHB0ciA9IF9t
YWxsb2MobGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICghcHRyKSB7Ci0gICAgICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT01FTSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBidWZmZXIuc2V0KGNvbnRlbnRzLCBwdHIpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICByZXR1cm4geyBwdHI6IHB0ciwgYWxsb2NhdGVkOiBhbGxvY2F0ZWQgfTsKLSAgICAg
ICAgfX19OwotICB2YXIgX3N0ZGluPWFsbG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElDKTsK
LSAgdmFyIF9zdGRvdXQ9YWxsb2NhdGUoMSwgImkzMioiLCBBTExPQ19TVEFUSUMpOwotICB2YXIg
X3N0ZGVycj1hbGxvY2F0ZSgxLCAiaTMyKiIsIEFMTE9DX1NUQVRJQyk7Ci0gIGZ1bmN0aW9uIF9m
Zmx1c2goc3RyZWFtKSB7Ci0gICAgICAvLyBpbnQgZmZsdXNoKEZJTEUgKnN0cmVhbSk7Ci0gICAg
ICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0
aW9ucy9mZmx1c2guaHRtbAotICAgICAgLy8gd2UgZG9uJ3QgY3VycmVudGx5IHBlcmZvcm0gYW55
IHVzZXItc3BhY2UgYnVmZmVyaW5nIG9mIGRhdGEKLSAgICB9dmFyIEZTPXtyb290Om51bGwsbm9k
ZXM6W251bGxdLGRldmljZXM6W251bGxdLHN0cmVhbXM6W251bGxdLG5leHRJbm9kZToxLG5hbWVf
dGFibGU6bnVsbCxjdXJyZW50UGF0aDoiLyIsaW5pdGlhbGl6ZWQ6ZmFsc2UsaWdub3JlUGVybWlz
c2lvbnM6dHJ1ZSxFcnJub0Vycm9yOmZ1bmN0aW9uIEVycm5vRXJyb3IoZXJybm8pIHsKLSAgICAg
ICAgICB0aGlzLmVycm5vID0gZXJybm87Ci0gICAgICAgICAgZm9yICh2YXIga2V5IGluIEVSUk5P
X0NPREVTKSB7Ci0gICAgICAgICAgICBpZiAoRVJSTk9fQ09ERVNba2V5XSA9PT0gZXJybm8pIHsK
LSAgICAgICAgICAgICAgdGhpcy5jb2RlID0ga2V5OwotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgdGhpcy5tZXNzYWdlID0gRVJSTk9f
TUVTU0FHRVNbZXJybm9dOwotICAgICAgICB9LGhhbmRsZUZTRXJyb3I6ZnVuY3Rpb24gKGUpIHsK
LSAgICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSB0aHJvdyBlICsgJyA6
ICcgKyBuZXcgRXJyb3IoKS5zdGFjazsKLSAgICAgICAgcmV0dXJuIF9fX3NldEVyck5vKGUuZXJy
bm8pOwotICAgICAgfSxoYXNoTmFtZTpmdW5jdGlvbiAocGFyZW50aWQsIG5hbWUpIHsKLSAgICAg
ICAgdmFyIGhhc2ggPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCArIG5hbWUuY2hh
ckNvZGVBdChpKSkgfCAwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAoKHBhcmVudGlkICsg
aGFzaCkgPj4+IDApICUgRlMubmFtZV90YWJsZS5sZW5ndGg7Ci0gICAgICB9LGhhc2hBZGROb2Rl
OmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHZhciBoYXNoID0gRlMuaGFzaE5hbWUobm9kZS5w
YXJlbnQuaWQsIG5vZGUubmFtZSk7Ci0gICAgICAgIG5vZGUubmFtZV9uZXh0ID0gRlMubmFtZV90
YWJsZVtoYXNoXTsKLSAgICAgICAgRlMubmFtZV90YWJsZVtoYXNoXSA9IG5vZGU7Ci0gICAgICB9
LGhhc2hSZW1vdmVOb2RlOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHZhciBoYXNoID0gRlMu
aGFzaE5hbWUobm9kZS5wYXJlbnQuaWQsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmIChGUy5uYW1l
X3RhYmxlW2hhc2hdID09PSBub2RlKSB7Ci0gICAgICAgICAgRlMubmFtZV90YWJsZVtoYXNoXSA9
IG5vZGUubmFtZV9uZXh0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHZhciBjdXJyZW50
ID0gRlMubmFtZV90YWJsZVtoYXNoXTsKLSAgICAgICAgICB3aGlsZSAoY3VycmVudCkgewotICAg
ICAgICAgICAgaWYgKGN1cnJlbnQubmFtZV9uZXh0ID09PSBub2RlKSB7Ci0gICAgICAgICAgICAg
IGN1cnJlbnQubmFtZV9uZXh0ID0gbm9kZS5uYW1lX25leHQ7Ci0gICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmFtZV9uZXh0
OwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSxsb29rdXBOb2RlOmZ1bmN0aW9uIChw
YXJlbnQsIG5hbWUpIHsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heUxvb2t1cChwYXJlbnQpOwot
ICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJy
KTsKLSAgICAgICAgfQotICAgICAgICB2YXIgaGFzaCA9IEZTLmhhc2hOYW1lKHBhcmVudC5pZCwg
bmFtZSk7Ci0gICAgICAgIGZvciAodmFyIG5vZGUgPSBGUy5uYW1lX3RhYmxlW2hhc2hdOyBub2Rl
OyBub2RlID0gbm9kZS5uYW1lX25leHQpIHsKLSAgICAgICAgICBpZiAobm9kZS5wYXJlbnQuaWQg
PT09IHBhcmVudC5pZCAmJiBub2RlLm5hbWUgPT09IG5hbWUpIHsKLSAgICAgICAgICAgIHJldHVy
biBub2RlOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAvLyBpZiB3ZSBmYWlsZWQg
dG8gZmluZCBpdCBpbiB0aGUgY2FjaGUsIGNhbGwgaW50byB0aGUgVkZTCi0gICAgICAgIHJldHVy
biBGUy5sb29rdXAocGFyZW50LCBuYW1lKTsKLSAgICAgIH0sY3JlYXRlTm9kZTpmdW5jdGlvbiAo
cGFyZW50LCBuYW1lLCBtb2RlLCByZGV2KSB7Ci0gICAgICAgIHZhciBub2RlID0gewotICAgICAg
ICAgIGlkOiBGUy5uZXh0SW5vZGUrKywKLSAgICAgICAgICBuYW1lOiBuYW1lLAotICAgICAgICAg
IG1vZGU6IG1vZGUsCi0gICAgICAgICAgbm9kZV9vcHM6IHt9LAotICAgICAgICAgIHN0cmVhbV9v
cHM6IHt9LAotICAgICAgICAgIHJkZXY6IHJkZXYsCi0gICAgICAgICAgcGFyZW50OiBudWxsLAot
ICAgICAgICAgIG1vdW50OiBudWxsCi0gICAgICAgIH07Ci0gICAgICAgIGlmICghcGFyZW50KSB7
Ci0gICAgICAgICAgcGFyZW50ID0gbm9kZTsgIC8vIHJvb3Qgbm9kZSBzZXRzIHBhcmVudCB0byBp
dHNlbGYKLSAgICAgICAgfQotICAgICAgICBub2RlLnBhcmVudCA9IHBhcmVudDsKLSAgICAgICAg
bm9kZS5tb3VudCA9IHBhcmVudC5tb3VudDsKLSAgICAgICAgLy8gY29tcGF0aWJpbGl0eQotICAg
ICAgICB2YXIgcmVhZE1vZGUgPSAyOTIgfCA3MzsKLSAgICAgICAgdmFyIHdyaXRlTW9kZSA9IDE0
NjsKLSAgICAgICAgLy8gTk9URSB3ZSBtdXN0IHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydGllcyBp
bnN0ZWFkIG9mIGluZGl2aWR1YWwgY2FsbHMgdG8KLSAgICAgICAgLy8gT2JqZWN0LmRlZmluZVBy
b3BlcnR5IGluIG9yZGVyIHRvIG1ha2UgY2xvc3VyZSBjb21waWxlciBoYXBweQotICAgICAgICBP
YmplY3QuZGVmaW5lUHJvcGVydGllcyhub2RlLCB7Ci0gICAgICAgICAgcmVhZDogewotICAgICAg
ICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChub2RlLm1vZGUgJiByZWFkTW9kZSkgPT09
IHJlYWRNb2RlOyB9LAotICAgICAgICAgICAgc2V0OiBmdW5jdGlvbih2YWwpIHsgdmFsID8gbm9k
ZS5tb2RlIHw9IHJlYWRNb2RlIDogbm9kZS5tb2RlICY9IH5yZWFkTW9kZTsgfQotICAgICAgICAg
IH0sCi0gICAgICAgICAgd3JpdGU6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJl
dHVybiAobm9kZS5tb2RlICYgd3JpdGVNb2RlKSA9PT0gd3JpdGVNb2RlOyB9LAotICAgICAgICAg
ICAgc2V0OiBmdW5jdGlvbih2YWwpIHsgdmFsID8gbm9kZS5tb2RlIHw9IHdyaXRlTW9kZSA6IG5v
ZGUubW9kZSAmPSB+d3JpdGVNb2RlOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0ZvbGRl
cjogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIEZTLmlzRGlyKG5vZGUu
bW9kZSk7IH0sCi0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0RldmljZTogewotICAgICAgICAg
ICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIEZTLmlzQ2hyZGV2KG5vZGUubW9kZSk7IH0sCi0g
ICAgICAgICAgfSwKLSAgICAgICAgfSk7Ci0gICAgICAgIEZTLmhhc2hBZGROb2RlKG5vZGUpOwot
ICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgIH0sZGVzdHJveU5vZGU6ZnVuY3Rpb24gKG5vZGUp
IHsKLSAgICAgICAgRlMuaGFzaFJlbW92ZU5vZGUobm9kZSk7Ci0gICAgICB9LGlzUm9vdDpmdW5j
dGlvbiAobm9kZSkgewotICAgICAgICByZXR1cm4gbm9kZSA9PT0gbm9kZS5wYXJlbnQ7Ci0gICAg
ICB9LGlzTW91bnRwb2ludDpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICByZXR1cm4gbm9kZS5t
b3VudGVkOwotICAgICAgfSxpc0ZpbGU6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJu
IChtb2RlICYgMDE3MDAwMCkgPT09IDAxMDAwMDA7Ci0gICAgICB9LGlzRGlyOmZ1bmN0aW9uICht
b2RlKSB7Ci0gICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDQwMDAwOwotICAg
ICAgfSxpc0xpbms6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3
MDAwMCkgPT09IDAxMjAwMDA7Ci0gICAgICB9LGlzQ2hyZGV2OmZ1bmN0aW9uIChtb2RlKSB7Ci0g
ICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDIwMDAwOwotICAgICAgfSxpc0Js
a2RldjpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9
PT0gMDA2MDAwMDsKLSAgICAgIH0saXNGSUZPOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJl
dHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDEwMDAwOwotICAgICAgfSxjd2Q6ZnVuY3Rpb24g
KCkgewotICAgICAgICByZXR1cm4gRlMuY3VycmVudFBhdGg7Ci0gICAgICB9LGxvb2t1cFBhdGg6
ZnVuY3Rpb24gKHBhdGgsIG9wdHMpIHsKLSAgICAgICAgcGF0aCA9IFBBVEgucmVzb2x2ZShGUy5j
dXJyZW50UGF0aCwgcGF0aCk7Ci0gICAgICAgIG9wdHMgPSBvcHRzIHx8IHsgcmVjdXJzZV9jb3Vu
dDogMCB9OwotICAgICAgICBpZiAob3B0cy5yZWN1cnNlX2NvdW50ID4gOCkgeyAgLy8gbWF4IHJl
Y3Vyc2l2ZSBsb29rdXAgb2YgOAotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVMT09QKTsKLSAgICAgICAgfQotICAgICAgICAvLyBzcGxpdCB0aGUgcGF0aAot
ICAgICAgICB2YXIgcGFydHMgPSBQQVRILm5vcm1hbGl6ZUFycmF5KHBhdGguc3BsaXQoJy8nKS5m
aWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJldHVybiAhIXA7Ci0gICAgICAgIH0pLCBm
YWxzZSk7Ci0gICAgICAgIC8vIHN0YXJ0IGF0IHRoZSByb290Ci0gICAgICAgIHZhciBjdXJyZW50
ID0gRlMucm9vdDsKLSAgICAgICAgdmFyIGN1cnJlbnRfcGF0aCA9ICcvJzsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIHZhciBpc2xh
c3QgPSAoaSA9PT0gcGFydHMubGVuZ3RoLTEpOwotICAgICAgICAgIGlmIChpc2xhc3QgJiYgb3B0
cy5wYXJlbnQpIHsKLSAgICAgICAgICAgIC8vIHN0b3AgcmVzb2x2aW5nCi0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICB9Ci0gICAgICAgICAgY3VycmVudCA9IEZTLmxvb2t1cE5vZGUoY3Vy
cmVudCwgcGFydHNbaV0pOwotICAgICAgICAgIGN1cnJlbnRfcGF0aCA9IFBBVEguam9pbihjdXJy
ZW50X3BhdGgsIHBhcnRzW2ldKTsKLSAgICAgICAgICAvLyBqdW1wIHRvIHRoZSBtb3VudCdzIHJv
b3Qgbm9kZSBpZiB0aGlzIGlzIGEgbW91bnRwb2ludAotICAgICAgICAgIGlmIChGUy5pc01vdW50
cG9pbnQoY3VycmVudCkpIHsKLSAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm1vdW50LnJv
b3Q7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIGZvbGxvdyBzeW1saW5rcwotICAgICAgICAg
IC8vIGJ5IGRlZmF1bHQsIGxvb2t1cFBhdGggd2lsbCBub3QgZm9sbG93IGEgc3ltbGluayBpZiBp
dCBpcyB0aGUgZmluYWwgcGF0aCBjb21wb25lbnQuCi0gICAgICAgICAgLy8gc2V0dGluZyBvcHRz
LmZvbGxvdyA9IHRydWUgd2lsbCBvdmVycmlkZSB0aGlzIGJlaGF2aW9yLgotICAgICAgICAgIGlm
ICghaXNsYXN0IHx8IG9wdHMuZm9sbG93KSB7Ci0gICAgICAgICAgICB2YXIgY291bnQgPSAwOwot
ICAgICAgICAgICAgd2hpbGUgKEZTLmlzTGluayhjdXJyZW50Lm1vZGUpKSB7Ci0gICAgICAgICAg
ICAgIHZhciBsaW5rID0gRlMucmVhZGxpbmsoY3VycmVudF9wYXRoKTsKLSAgICAgICAgICAgICAg
Y3VycmVudF9wYXRoID0gUEFUSC5yZXNvbHZlKFBBVEguZGlybmFtZShjdXJyZW50X3BhdGgpLCBs
aW5rKTsKLSAgICAgICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgoY3VycmVudF9w
YXRoLCB7IHJlY3Vyc2VfY291bnQ6IG9wdHMucmVjdXJzZV9jb3VudCB9KTsKLSAgICAgICAgICAg
ICAgY3VycmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgICAgICBpZiAoY291bnQrKyA+IDQw
KSB7ICAvLyBsaW1pdCBtYXggY29uc2VjdXRpdmUgc3ltbGlua3MgdG8gNDAgKFNZTUxPT1BfTUFY
KS4KLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
TE9PUCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHsgcGF0aDogY3VycmVudF9wYXRoLCBub2RlOiBjdXJyZW50
IH07Ci0gICAgICB9LGdldFBhdGg6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgdmFyIHBhdGg7
Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgaWYgKEZTLmlzUm9vdChub2RlKSkg
ewotICAgICAgICAgICAgcmV0dXJuIHBhdGggPyBQQVRILmpvaW4obm9kZS5tb3VudC5tb3VudHBv
aW50LCBwYXRoKSA6IG5vZGUubW91bnQubW91bnRwb2ludDsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgcGF0aCA9IHBhdGggPyBQQVRILmpvaW4obm9kZS5uYW1lLCBwYXRoKSA6IG5vZGUubmFtZTsK
LSAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQ7Ci0gICAgICAgIH0KLSAgICAgIH0sZmxhZ01v
ZGVzOnsiciI6MCwicnMiOjgxOTIsInIrIjoyLCJ3IjoxNTM3LCJ3eCI6MzU4NSwieHciOjM1ODUs
IncrIjoxNTM4LCJ3eCsiOjM1ODYsInh3KyI6MzU4NiwiYSI6NTIxLCJheCI6MjU2OSwieGEiOjI1
NjksImErIjo1MjIsImF4KyI6MjU3MCwieGErIjoyNTcwfSxtb2RlU3RyaW5nVG9GbGFnczpmdW5j
dGlvbiAoc3RyKSB7Ci0gICAgICAgIHZhciBmbGFncyA9IEZTLmZsYWdNb2Rlc1tzdHJdOwotICAg
ICAgICBpZiAodHlwZW9mIGZsYWdzID09PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIHRocm93
IG5ldyBFcnJvcignVW5rbm93biBmaWxlIG9wZW4gbW9kZTogJyArIHN0cik7Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIGZsYWdzOwotICAgICAgfSxmbGFnc1RvUGVybWlzc2lvblN0cmluZzpm
dW5jdGlvbiAoZmxhZykgewotICAgICAgICB2YXIgYWNjbW9kZSA9IGZsYWcgJiAzOwotICAgICAg
ICB2YXIgcGVybXMgPSBbJ3InLCAndycsICdydyddW2FjY21vZGVdOwotICAgICAgICBpZiAoKGZs
YWcgJiAxMDI0KSkgewotICAgICAgICAgIHBlcm1zICs9ICd3JzsKLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gcGVybXM7Ci0gICAgICB9LG5vZGVQZXJtaXNzaW9uczpmdW5jdGlvbiAobm9kZSwg
cGVybXMpIHsKLSAgICAgICAgaWYgKEZTLmlnbm9yZVBlcm1pc3Npb25zKSB7Ci0gICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gcmV0dXJuIDAgaWYgYW55IHVzZXIsIGdy
b3VwIG9yIG93bmVyIGJpdHMgYXJlIHNldC4KLSAgICAgICAgaWYgKHBlcm1zLmluZGV4T2YoJ3In
KSAhPT0gLTEgJiYgIShub2RlLm1vZGUgJiAyOTIpKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5P
X0NPREVTLkVBQ0NFUzsKLSAgICAgICAgfSBlbHNlIGlmIChwZXJtcy5pbmRleE9mKCd3JykgIT09
IC0xICYmICEobm9kZS5tb2RlICYgMTQ2KSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RF
Uy5FQUNDRVM7Ci0gICAgICAgIH0gZWxzZSBpZiAocGVybXMuaW5kZXhPZigneCcpICE9PSAtMSAm
JiAhKG5vZGUubW9kZSAmIDczKSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FQUND
RVM7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9LG1heUxvb2t1cDpmdW5j
dGlvbiAoZGlyKSB7Ci0gICAgICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAneCcp
OwotICAgICAgfSxtYXlNa25vZDpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICBzd2l0Y2ggKG1v
ZGUgJiAwMTcwMDAwKSB7Ci0gICAgICAgICAgY2FzZSAwMTAwMDAwOgotICAgICAgICAgIGNhc2Ug
MDAyMDAwMDoKLSAgICAgICAgICBjYXNlIDAwNjAwMDA6Ci0gICAgICAgICAgY2FzZSAwMDEwMDAw
OgotICAgICAgICAgIGNhc2UgMDE0MDAwMDoKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUlOVkFMOwotICAg
ICAgICB9Ci0gICAgICB9LG1heUNyZWF0ZTpmdW5jdGlvbiAoZGlyLCBuYW1lKSB7Ci0gICAgICAg
IHRyeSB7Ci0gICAgICAgICAgdmFyIG5vZGUgPSBGUy5sb29rdXBOb2RlKGRpciwgbmFtZSk7Ci0g
ICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVFWElTVDsKLSAgICAgICAgfSBjYXRjaCAoZSkg
ewotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAnd3gn
KTsKLSAgICAgIH0sbWF5RGVsZXRlOmZ1bmN0aW9uIChkaXIsIG5hbWUsIGlzZGlyKSB7Ci0gICAg
ICAgIHZhciBub2RlOwotICAgICAgICB0cnkgewotICAgICAgICAgIG5vZGUgPSBGUy5sb29rdXBO
b2RlKGRpciwgbmFtZSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICByZXR1cm4g
ZS5lcnJubzsKLSAgICAgICAgfQotICAgICAgICB2YXIgZXJyID0gRlMubm9kZVBlcm1pc3Npb25z
KGRpciwgJ3d4Jyk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICByZXR1cm4gZXJyOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChpc2RpcikgewotICAgICAgICAgIGlmICghRlMuaXNEaXIo
bm9kZS5tb2RlKSkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVOT1RESVI7Ci0g
ICAgICAgICAgfQotICAgICAgICAgIGlmIChGUy5pc1Jvb3Qobm9kZSkgfHwgRlMuZ2V0UGF0aChu
b2RlKSA9PT0gRlMuY3VycmVudFBhdGgpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RF
Uy5FQlVTWTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaWYgKEZT
LmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FSVNE
SVI7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAwOwotICAgICAgfSxt
YXlPcGVuOmZ1bmN0aW9uIChub2RlLCBmbGFncykgewotICAgICAgICBpZiAoIW5vZGUpIHsKLSAg
ICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRU5PRU5UOwotICAgICAgICB9Ci0gICAgICAgIGlm
IChGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5F
TE9PUDsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAg
ICAgaWYgKChmbGFncyAmIDMpICE9PSAwIHx8ICAvLyBvcGVuaW5nIGZvciB3cml0ZQotICAgICAg
ICAgICAgICAoZmxhZ3MgJiAxMDI0KSkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVT
LkVJU0RJUjsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIEZTLm5vZGVQ
ZXJtaXNzaW9ucyhub2RlLCBGUy5mbGFnc1RvUGVybWlzc2lvblN0cmluZyhmbGFncykpOwotICAg
ICAgfSxjaHJkZXZfc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbiAoc3RyZWFtKSB7Ci0gICAgICAg
ICAgdmFyIGRldmljZSA9IEZTLmdldERldmljZShzdHJlYW0ubm9kZS5yZGV2KTsKLSAgICAgICAg
ICAvLyBvdmVycmlkZSBub2RlJ3Mgc3RyZWFtIG9wcyB3aXRoIHRoZSBkZXZpY2UncwotICAgICAg
ICAgIHN0cmVhbS5zdHJlYW1fb3BzID0gZGV2aWNlLnN0cmVhbV9vcHM7Ci0gICAgICAgICAgLy8g
Zm9yd2FyZCB0aGUgb3BlbiBjYWxsCi0gICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLm9w
ZW4pIHsKLSAgICAgICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKTsKLSAgICAg
ICAgICB9Ci0gICAgICAgIH0sbGxzZWVrOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9fSxtYWpvcjpm
dW5jdGlvbiAoZGV2KSB7Ci0gICAgICAgIHJldHVybiAoKGRldikgPj4gOCk7Ci0gICAgICB9LG1p
bm9yOmZ1bmN0aW9uIChkZXYpIHsKLSAgICAgICAgcmV0dXJuICgoZGV2KSAmIDB4ZmYpOwotICAg
ICAgfSxtYWtlZGV2OmZ1bmN0aW9uIChtYSwgbWkpIHsKLSAgICAgICAgcmV0dXJuICgobWEpIDw8
IDggfCAobWkpKTsKLSAgICAgIH0scmVnaXN0ZXJEZXZpY2U6ZnVuY3Rpb24gKGRldiwgb3BzKSB7
Ci0gICAgICAgIEZTLmRldmljZXNbZGV2XSA9IHsgc3RyZWFtX29wczogb3BzIH07Ci0gICAgICB9
LGdldERldmljZTpmdW5jdGlvbiAoZGV2KSB7Ci0gICAgICAgIHJldHVybiBGUy5kZXZpY2VzW2Rl
dl07Ci0gICAgICB9LE1BWF9PUEVOX0ZEUzo0MDk2LG5leHRmZDpmdW5jdGlvbiAoZmRfc3RhcnQs
IGZkX2VuZCkgewotICAgICAgICBmZF9zdGFydCA9IGZkX3N0YXJ0IHx8IDE7Ci0gICAgICAgIGZk
X2VuZCA9IGZkX2VuZCB8fCBGUy5NQVhfT1BFTl9GRFM7Ci0gICAgICAgIGZvciAodmFyIGZkID0g
ZmRfc3RhcnQ7IGZkIDw9IGZkX2VuZDsgZmQrKykgewotICAgICAgICAgIGlmICghRlMuc3RyZWFt
c1tmZF0pIHsKLSAgICAgICAgICAgIHJldHVybiBmZDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU1GSUxFKTsKLSAg
ICAgIH0sZ2V0U3RyZWFtOmZ1bmN0aW9uIChmZCkgewotICAgICAgICByZXR1cm4gRlMuc3RyZWFt
c1tmZF07Ci0gICAgICB9LGNyZWF0ZVN0cmVhbTpmdW5jdGlvbiAoc3RyZWFtLCBmZF9zdGFydCwg
ZmRfZW5kKSB7Ci0gICAgICAgIHZhciBmZCA9IEZTLm5leHRmZChmZF9zdGFydCwgZmRfZW5kKTsK
LSAgICAgICAgc3RyZWFtLmZkID0gZmQ7Ci0gICAgICAgIC8vIGNvbXBhdGliaWxpdHkKLSAgICAg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoc3RyZWFtLCB7Ci0gICAgICAgICAgb2JqZWN0OiB7
Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gc3RyZWFtLm5vZGU7IH0sCi0g
ICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbCkgeyBzdHJlYW0ubm9kZSA9IHZhbDsgfQotICAg
ICAgICAgIH0sCi0gICAgICAgICAgaXNSZWFkOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9u
KCkgeyByZXR1cm4gKHN0cmVhbS5mbGFncyAmIDMpICE9PSAxOyB9Ci0gICAgICAgICAgfSwKLSAg
ICAgICAgICBpc1dyaXRlOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4g
KHN0cmVhbS5mbGFncyAmIDMpICE9PSAwOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0Fw
cGVuZDogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChzdHJlYW0uZmxh
Z3MgJiA4KTsgfQotICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIEZTLnN0cmVhbXNb
ZmRdID0gc3RyZWFtOwotICAgICAgICByZXR1cm4gc3RyZWFtOwotICAgICAgfSxjbG9zZVN0cmVh
bTpmdW5jdGlvbiAoZmQpIHsKLSAgICAgICAgRlMuc3RyZWFtc1tmZF0gPSBudWxsOwotICAgICAg
fSxnZXRNb2RlOmZ1bmN0aW9uIChjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgbW9k
ZSA9IDA7Ci0gICAgICAgIGlmIChjYW5SZWFkKSBtb2RlIHw9IDI5MiB8IDczOwotICAgICAgICBp
ZiAoY2FuV3JpdGUpIG1vZGUgfD0gMTQ2OwotICAgICAgICByZXR1cm4gbW9kZTsKLSAgICAgIH0s
am9pblBhdGg6ZnVuY3Rpb24gKHBhcnRzLCBmb3JjZVJlbGF0aXZlKSB7Ci0gICAgICAgIHZhciBw
YXRoID0gUEFUSC5qb2luLmFwcGx5KG51bGwsIHBhcnRzKTsKLSAgICAgICAgaWYgKGZvcmNlUmVs
YXRpdmUgJiYgcGF0aFswXSA9PSAnLycpIHBhdGggPSBwYXRoLnN1YnN0cigxKTsKLSAgICAgICAg
cmV0dXJuIHBhdGg7Ci0gICAgICB9LGFic29sdXRlUGF0aDpmdW5jdGlvbiAocmVsYXRpdmUsIGJh
c2UpIHsKLSAgICAgICAgcmV0dXJuIFBBVEgucmVzb2x2ZShiYXNlLCByZWxhdGl2ZSk7Ci0gICAg
ICB9LHN0YW5kYXJkaXplUGF0aDpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICByZXR1cm4gUEFU
SC5ub3JtYWxpemUocGF0aCk7Ci0gICAgICB9LGZpbmRPYmplY3Q6ZnVuY3Rpb24gKHBhdGgsIGRv
bnRSZXNvbHZlTGFzdExpbmspIHsKLSAgICAgICAgdmFyIHJldCA9IEZTLmFuYWx5emVQYXRoKHBh
dGgsIGRvbnRSZXNvbHZlTGFzdExpbmspOwotICAgICAgICBpZiAocmV0LmV4aXN0cykgewotICAg
ICAgICAgIHJldHVybiByZXQub2JqZWN0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIF9f
X3NldEVyck5vKHJldC5lcnJvcik7Ci0gICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0K
LSAgICAgIH0sYW5hbHl6ZVBhdGg6ZnVuY3Rpb24gKHBhdGgsIGRvbnRSZXNvbHZlTGFzdExpbmsp
IHsKLSAgICAgICAgLy8gb3BlcmF0ZSBmcm9tIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgc3lt
bGluaydzIHRhcmdldAotICAgICAgICB0cnkgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5s
b29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udFJlc29sdmVMYXN0TGluayB9KTsKLSAgICAg
ICAgICBwYXRoID0gbG9va3VwLnBhdGg7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
fQotICAgICAgICB2YXIgcmV0ID0gewotICAgICAgICAgIGlzUm9vdDogZmFsc2UsIGV4aXN0czog
ZmFsc2UsIGVycm9yOiAwLCBuYW1lOiBudWxsLCBwYXRoOiBudWxsLCBvYmplY3Q6IG51bGwsCi0g
ICAgICAgICAgcGFyZW50RXhpc3RzOiBmYWxzZSwgcGFyZW50UGF0aDogbnVsbCwgcGFyZW50T2Jq
ZWN0OiBudWxsCi0gICAgICAgIH07Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdmFyIGxvb2t1
cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgcmV0
LnBhcmVudEV4aXN0cyA9IHRydWU7Ci0gICAgICAgICAgcmV0LnBhcmVudFBhdGggPSBsb29rdXAu
cGF0aDsKLSAgICAgICAgICByZXQucGFyZW50T2JqZWN0ID0gbG9va3VwLm5vZGU7Ci0gICAgICAg
ICAgcmV0Lm5hbWUgPSBQQVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICAgIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250UmVzb2x2ZUxhc3RMaW5rIH0pOwotICAg
ICAgICAgIHJldC5leGlzdHMgPSB0cnVlOwotICAgICAgICAgIHJldC5wYXRoID0gbG9va3VwLnBh
dGg7Ci0gICAgICAgICAgcmV0Lm9iamVjdCA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgIHJldC5u
YW1lID0gbG9va3VwLm5vZGUubmFtZTsKLSAgICAgICAgICByZXQuaXNSb290ID0gbG9va3VwLnBh
dGggPT09ICcvJzsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHJldC5lcnJvciA9
IGUuZXJybm87Ci0gICAgICAgIH07Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgICB9LGNyZWF0
ZUZvbGRlcjpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAg
ICAgICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBh
cmVudCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2RlID0gRlMu
Z2V0TW9kZShjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgIHJldHVybiBGUy5ta2RpcihwYXRo
LCBtb2RlKTsKLSAgICAgIH0sY3JlYXRlUGF0aDpmdW5jdGlvbiAocGFyZW50LCBwYXRoLCBjYW5S
ZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICBwYXJlbnQgPSB0eXBlb2YgcGFyZW50ID09PSAnc3Ry
aW5nJyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KTsKLSAgICAgICAgdmFyIHBhcnRzID0g
cGF0aC5zcGxpdCgnLycpLnJldmVyc2UoKTsKLSAgICAgICAgd2hpbGUgKHBhcnRzLmxlbmd0aCkg
ewotICAgICAgICAgIHZhciBwYXJ0ID0gcGFydHMucG9wKCk7Ci0gICAgICAgICAgaWYgKCFwYXJ0
KSBjb250aW51ZTsKLSAgICAgICAgICB2YXIgY3VycmVudCA9IFBBVEguam9pbihwYXJlbnQsIHBh
cnQpOwotICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBGUy5ta2RpcihjdXJyZW50LCAwNzc3
KTsKLSAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAvLyBpZ25vcmUgRUVYSVNU
Ci0gICAgICAgICAgfQotICAgICAgICAgIHBhcmVudCA9IGN1cnJlbnQ7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIGN1cnJlbnQ7Ci0gICAgICB9LGNyZWF0ZUZpbGU6ZnVuY3Rpb24gKHBhcmVu
dCwgbmFtZSwgcHJvcGVydGllcywgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgdmFyIHBh
dGggPSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBGUy5n
ZXRQYXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICB2YXIgbW9kZSA9IEZTLmdldE1vZGUoY2Fu
UmVhZCwgY2FuV3JpdGUpOwotICAgICAgICByZXR1cm4gRlMuY3JlYXRlKHBhdGgsIG1vZGUpOwot
ICAgICAgfSxjcmVhdGVEYXRhRmlsZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBkYXRhLCBjYW5S
ZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFy
ZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0g
ICAgICAgIHZhciBtb2RlID0gRlMuZ2V0TW9kZShjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAg
IHZhciBub2RlID0gRlMuY3JlYXRlKHBhdGgsIG1vZGUpOwotICAgICAgICBpZiAoZGF0YSkgewot
ICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICAgIHZh
ciBhcnIgPSBuZXcgQXJyYXkoZGF0YS5sZW5ndGgpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDAsIGxlbiA9IGRhdGEubGVuZ3RoOyBpIDwgbGVuOyArK2kpIGFycltpXSA9IGRhdGEuY2hhckNv
ZGVBdChpKTsKLSAgICAgICAgICAgIGRhdGEgPSBhcnI7Ci0gICAgICAgICAgfQotICAgICAgICAg
IC8vIG1ha2Ugc3VyZSB3ZSBjYW4gd3JpdGUgdG8gdGhlIGZpbGUKLSAgICAgICAgICBGUy5jaG1v
ZChwYXRoLCBtb2RlIHwgMTQ2KTsKLSAgICAgICAgICB2YXIgc3RyZWFtID0gRlMub3BlbihwYXRo
LCAndycpOwotICAgICAgICAgIEZTLndyaXRlKHN0cmVhbSwgZGF0YSwgMCwgZGF0YS5sZW5ndGgs
IDApOwotICAgICAgICAgIEZTLmNsb3NlKHN0cmVhbSk7Ci0gICAgICAgICAgRlMuY2htb2QocGF0
aCwgbW9kZSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LGNyZWF0
ZURldmljZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBpbnB1dCwgb3V0cHV0KSB7Ci0gICAgICAg
IHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50
IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgdmFyIG1vZGUgPSBpbnB1dCAm
JiBvdXRwdXQgPyAwNzc3IDogKGlucHV0ID8gMDMzMyA6IDA1NTUpOwotICAgICAgICBpZiAoIUZT
LmNyZWF0ZURldmljZS5tYWpvcikgRlMuY3JlYXRlRGV2aWNlLm1ham9yID0gNjQ7Ci0gICAgICAg
IHZhciBkZXYgPSBGUy5tYWtlZGV2KEZTLmNyZWF0ZURldmljZS5tYWpvcisrLCAwKTsKLSAgICAg
ICAgLy8gQ3JlYXRlIGEgZmFrZSBkZXZpY2UgdGhhdCBhIHNldCBvZiBzdHJlYW0gb3BzIHRvIGVt
dWxhdGUKLSAgICAgICAgLy8gdGhlIG9sZCBiZWhhdmlvci4KLSAgICAgICAgRlMucmVnaXN0ZXJE
ZXZpY2UoZGV2LCB7Ci0gICAgICAgICAgb3BlbjogZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgICAg
ICAgICBzdHJlYW0uc2Vla2FibGUgPSBmYWxzZTsKLSAgICAgICAgICB9LAotICAgICAgICAgIGNs
b3NlOiBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICAgICAgICAgIC8vIGZsdXNoIGFueSBwZW5kaW5n
IGxpbmUgZGF0YQotICAgICAgICAgICAgaWYgKG91dHB1dCAmJiBvdXRwdXQuYnVmZmVyICYmIG91
dHB1dC5idWZmZXIubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgIG91dHB1dCgxMCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICByZWFkOiBmdW5jdGlvbihzdHJlYW0sIGJ1
ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvcyAvKiBpZ25vcmVkICovKSB7Ci0gICAgICAgICAgICB2
YXIgYnl0ZXNSZWFkID0gMDsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgICAgICByZXN1bHQgPSBpbnB1dCgpOwotICAgICAgICAgICAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRUlPKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSB1
bmRlZmluZWQgJiYgYnl0ZXNSZWFkID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHJlc3VsdCA9PT0gdW5kZWZpbmVkKSBi
cmVhazsKLSAgICAgICAgICAgICAgYnl0ZXNSZWFkKys7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltv
ZmZzZXQraV0gPSByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYnl0ZXNS
ZWFkKSB7Ci0gICAgICAgICAgICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gYnl0ZXNSZWFkOwotICAgICAgICAg
IH0sCi0gICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxl
bmd0aCwgcG9zKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgb3V0cHV0KGJ1ZmZlcltv
ZmZzZXQraV0pOwotICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAg
ICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgcmV0
dXJuIEZTLm1rZGV2KHBhdGgsIG1vZGUsIGRldik7Ci0gICAgICB9LGNyZWF0ZUxpbms6ZnVuY3Rp
b24gKHBhcmVudCwgbmFtZSwgdGFyZ2V0LCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2
YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6
IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHJldHVybiBGUy5zeW1saW5rKHRh
cmdldCwgcGF0aCk7Ci0gICAgICB9LGZvcmNlTG9hZEZpbGU6ZnVuY3Rpb24gKG9iaikgewotICAg
ICAgICBpZiAob2JqLmlzRGV2aWNlIHx8IG9iai5pc0ZvbGRlciB8fCBvYmoubGluayB8fCBvYmou
Y29udGVudHMpIHJldHVybiB0cnVlOwotICAgICAgICB2YXIgc3VjY2VzcyA9IHRydWU7Ci0gICAg
ICAgIGlmICh0eXBlb2YgWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJMYXp5IGxvYWRpbmcgc2hvdWxkIGhhdmUgYmVlbiBwZXJmb3Jt
ZWQgKGNvbnRlbnRzIHNldCkgaW4gY3JlYXRlTGF6eUZpbGUsIGJ1dCBpdCB3YXMgbm90LiBMYXp5
IGxvYWRpbmcgb25seSB3b3JrcyBpbiB3ZWIgd29ya2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAt
LXByZWxvYWQtZmlsZSBpbiBlbWNjIG9uIHRoZSBtYWluIHRocmVhZC4iKTsKLSAgICAgICAgfSBl
bHNlIGlmIChNb2R1bGVbJ3JlYWQnXSkgewotICAgICAgICAgIC8vIENvbW1hbmQtbGluZS4KLSAg
ICAgICAgICB0cnkgewotICAgICAgICAgICAgLy8gV0FSTklORzogQ2FuJ3QgcmVhZCBiaW5hcnkg
ZmlsZXMgaW4gVjgncyBkOCBvciB0cmFjZW1vbmtleSdzIGpzLCBhcwotICAgICAgICAgICAgLy8g
ICAgICAgICAgcmVhZCgpIHdpbGwgdHJ5IHRvIHBhcnNlIFVURjguCi0gICAgICAgICAgICBvYmou
Y29udGVudHMgPSBpbnRBcnJheUZyb21TdHJpbmcoTW9kdWxlWydyZWFkJ10ob2JqLnVybCksIHRy
dWUpOwotICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxz
ZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCdDYW5ub3QgbG9hZCB3aXRob3V0IHJlYWQoKSBvciBYTUxIdHRwUmVxdWVzdC4nKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIXN1Y2Nlc3MpIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJ
Tyk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNzOwotICAgICAgfSxjcmVhdGVMYXp5RmlsZTpmdW5j
dGlvbiAocGFyZW50LCBuYW1lLCB1cmwsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIGlm
ICh0eXBlb2YgWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgaWYg
KCFFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHRocm93ICdDYW5ub3QgZG8gc3luY2hyb25vdXMgYmlu
YXJ5IFhIUnMgb3V0c2lkZSB3ZWJ3b3JrZXJzIGluIG1vZGVybiBicm93c2Vycy4gVXNlIC0tZW1i
ZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjJzsKLSAgICAgICAgICAvLyBMYXp5IGNo
dW5rZWQgVWludDhBcnJheSAoaW1wbGVtZW50cyBnZXQgYW5kIGxlbmd0aCBmcm9tIFVpbnQ4QXJy
YXkpLiBBY3R1YWwgZ2V0dGluZyBpcyBhYnN0cmFjdGVkIGF3YXkgZm9yIGV2ZW50dWFsIHJldXNl
LgotICAgICAgICAgIHZhciBMYXp5VWludDhBcnJheSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgdGhpcy5sZW5ndGhLbm93biA9IGZhbHNlOwotICAgICAgICAgICAgdGhpcy5jaHVua3MgPSBb
XTsgLy8gTG9hZGVkIGNodW5rcy4gSW5kZXggaXMgdGhlIGNodW5rIG51bWJlcgotICAgICAgICAg
IH0KLSAgICAgICAgICBMYXp5VWludDhBcnJheS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oaWR4
KSB7Ci0gICAgICAgICAgICBpZiAoaWR4ID4gdGhpcy5sZW5ndGgtMSB8fCBpZHggPCAwKSB7Ci0g
ICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB2YXIgY2h1bmtPZmZzZXQgPSBpZHggJSB0aGlzLmNodW5rU2l6ZTsKLSAgICAgICAgICAgIHZh
ciBjaHVua051bSA9IE1hdGguZmxvb3IoaWR4IC8gdGhpcy5jaHVua1NpemUpOwotICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuZ2V0dGVyKGNodW5rTnVtKVtjaHVua09mZnNldF07Ci0gICAgICAgICAg
fQotICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5zZXREYXRhR2V0dGVyID0gZnVu
Y3Rpb24oZ2V0dGVyKSB7Ci0gICAgICAgICAgICB0aGlzLmdldHRlciA9IGdldHRlcjsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgTGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLmNhY2hlTGVuZ3RoID0g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIC8vIEZpbmQgbGVuZ3RoCi0gICAgICAgICAgICAg
IHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgICAgICAgeGhyLm9wZW4o
J0hFQUQnLCB1cmwsIGZhbHNlKTsKLSAgICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7Ci0gICAg
ICAgICAgICAgIGlmICghKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwg
eGhyLnN0YXR1cyA9PT0gMzA0KSkgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1
cmwgKyAiLiBTdGF0dXM6ICIgKyB4aHIuc3RhdHVzKTsKLSAgICAgICAgICAgICAgdmFyIGRhdGFs
ZW5ndGggPSBOdW1iZXIoeGhyLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LWxlbmd0aCIpKTsK
LSAgICAgICAgICAgICAgdmFyIGhlYWRlcjsKLSAgICAgICAgICAgICAgdmFyIGhhc0J5dGVTZXJ2
aW5nID0gKGhlYWRlciA9IHhoci5nZXRSZXNwb25zZUhlYWRlcigiQWNjZXB0LVJhbmdlcyIpKSAm
JiBoZWFkZXIgPT09ICJieXRlcyI7Ci0gICAgICAgICAgICAgIHZhciBjaHVua1NpemUgPSAxMDI0
KjEwMjQ7IC8vIENodW5rIHNpemUgaW4gYnl0ZXMKLSAgICAgICAgICAgICAgaWYgKCFoYXNCeXRl
U2VydmluZykgY2h1bmtTaXplID0gZGF0YWxlbmd0aDsKLSAgICAgICAgICAgICAgLy8gRnVuY3Rp
b24gdG8gZ2V0IGEgcmFuZ2UgZnJvbSB0aGUgcmVtb3RlIFVSTC4KLSAgICAgICAgICAgICAgdmFy
IGRvWEhSID0gKGZ1bmN0aW9uKGZyb20sIHRvKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZyb20g
PiB0bykgdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHJhbmdlICgiICsgZnJvbSArICIsICIgKyB0
byArICIpIG9yIG5vIGJ5dGVzIHJlcXVlc3RlZCEiKTsKLSAgICAgICAgICAgICAgICBpZiAodG8g
PiBkYXRhbGVuZ3RoLTEpIHRocm93IG5ldyBFcnJvcigib25seSAiICsgZGF0YWxlbmd0aCArICIg
Ynl0ZXMgYXZhaWxhYmxlISBwcm9ncmFtbWVyIGVycm9yISIpOwotICAgICAgICAgICAgICAgIC8v
IFRPRE86IFVzZSBtb3pSZXNwb25zZUFycmF5QnVmZmVyLCByZXNwb25zZVN0cmVhbSwgZXRjLiBp
ZiBhdmFpbGFibGUuCi0gICAgICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOwotICAgICAgICAgICAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIGZhbHNlKTsKLSAgICAg
ICAgICAgICAgICBpZiAoZGF0YWxlbmd0aCAhPT0gY2h1bmtTaXplKSB4aHIuc2V0UmVxdWVzdEhl
YWRlcigiUmFuZ2UiLCAiYnl0ZXM9IiArIGZyb20gKyAiLSIgKyB0byk7Ci0gICAgICAgICAgICAg
ICAgLy8gU29tZSBoaW50cyB0byB0aGUgYnJvd3NlciB0aGF0IHdlIHdhbnQgYmluYXJ5IGRhdGEu
Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBVaW50OEFycmF5ICE9ICd1bmRlZmluZWQnKSB4
aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKLSAgICAgICAgICAgICAgICBpZiAoeGhy
Lm92ZXJyaWRlTWltZVR5cGUpIHsKLSAgICAgICAgICAgICAgICAgIHhoci5vdmVycmlkZU1pbWVU
eXBlKCd0ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkJyk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIHhoci5zZW5kKG51bGwpOwotICAgICAgICAgICAgICAgIGlm
ICghKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwgeGhyLnN0YXR1cyA9
PT0gMzA0KSkgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1cmwgKyAiLiBTdGF0
dXM6ICIgKyB4aHIuc3RhdHVzKTsKLSAgICAgICAgICAgICAgICBpZiAoeGhyLnJlc3BvbnNlICE9
PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheSh4
aHIucmVzcG9uc2UgfHwgW10pOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICByZXR1cm4gaW50QXJyYXlGcm9tU3RyaW5nKHhoci5yZXNwb25zZVRleHQgfHwgJycs
IHRydWUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgIHZhciBsYXp5QXJyYXkgPSB0aGlzOwotICAgICAgICAgICAgICBsYXp5QXJyYXkuc2V0RGF0
YUdldHRlcihmdW5jdGlvbihjaHVua051bSkgewotICAgICAgICAgICAgICAgIHZhciBzdGFydCA9
IGNodW5rTnVtICogY2h1bmtTaXplOwotICAgICAgICAgICAgICAgIHZhciBlbmQgPSAoY2h1bmtO
dW0rMSkgKiBjaHVua1NpemUgLSAxOyAvLyBpbmNsdWRpbmcgdGhpcyBieXRlCi0gICAgICAgICAg
ICAgICAgZW5kID0gTWF0aC5taW4oZW5kLCBkYXRhbGVuZ3RoLTEpOyAvLyBpZiBkYXRhbGVuZ3Ro
LTEgaXMgc2VsZWN0ZWQsIHRoaXMgaXMgdGhlIGxhc3QgYmxvY2sKLSAgICAgICAgICAgICAgICBp
ZiAodHlwZW9mKGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dKSA9PT0gInVuZGVmaW5lZCIpIHsK
LSAgICAgICAgICAgICAgICAgIGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dID0gZG9YSFIoc3Rh
cnQsIGVuZCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yo
bGF6eUFycmF5LmNodW5rc1tjaHVua051bV0pID09PSAidW5kZWZpbmVkIikgdGhyb3cgbmV3IEVy
cm9yKCJkb1hIUiBmYWlsZWQhIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxhenlBcnJheS5j
aHVua3NbY2h1bmtOdW1dOwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgdGhpcy5f
bGVuZ3RoID0gZGF0YWxlbmd0aDsKLSAgICAgICAgICAgICAgdGhpcy5fY2h1bmtTaXplID0gY2h1
bmtTaXplOwotICAgICAgICAgICAgICB0aGlzLmxlbmd0aEtub3duID0gdHJ1ZTsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgdmFyIGxhenlBcnJheSA9IG5ldyBMYXp5VWludDhBcnJheSgpOwotICAg
ICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5QXJyYXksICJsZW5ndGgiLCB7Ci0gICAg
ICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBpZighdGhpcy5s
ZW5ndGhLbm93bikgewotICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVMZW5ndGgoKTsK
LSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sZW5n
dGg7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkobGF6eUFycmF5LCAiY2h1bmtTaXplIiwgewotICAgICAgICAgICAgICBnZXQ6
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgaWYoIXRoaXMubGVuZ3RoS25vd24pIHsK
LSAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhY2hlTGVuZ3RoKCk7Ci0gICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fY2h1bmtTaXplOwotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSB7IGlz
RGV2aWNlOiBmYWxzZSwgY29udGVudHM6IGxhenlBcnJheSB9OwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgIHZhciBwcm9wZXJ0aWVzID0geyBpc0RldmljZTogZmFsc2UsIHVybDogdXJsIH07
Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG5vZGUgPSBGUy5jcmVhdGVGaWxlKHBhcmVudCwgbmFt
ZSwgcHJvcGVydGllcywgY2FuUmVhZCwgY2FuV3JpdGUpOwotICAgICAgICAvLyBUaGlzIGlzIGEg
dG90YWwgaGFjaywgYnV0IEkgd2FudCB0byBnZXQgdGhpcyBsYXp5IGZpbGUgY29kZSBvdXQgb2Yg
dGhlCi0gICAgICAgIC8vIGNvcmUgb2YgTUVNRlMuIElmIHdlIHdhbnQgdG8ga2VlcCB0aGlzIGxh
enkgZmlsZSBjb25jZXB0IEkgZmVlbCBpdCBzaG91bGQKLSAgICAgICAgLy8gYmUgaXRzIG93biB0
aGluIExBWllGUyBwcm94eWluZyBjYWxscyB0byBNRU1GUy4KLSAgICAgICAgaWYgKHByb3BlcnRp
ZXMuY29udGVudHMpIHsKLSAgICAgICAgICBub2RlLmNvbnRlbnRzID0gcHJvcGVydGllcy5jb250
ZW50czsKLSAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0aWVzLnVybCkgewotICAgICAgICAgIG5v
ZGUuY29udGVudHMgPSBudWxsOwotICAgICAgICAgIG5vZGUudXJsID0gcHJvcGVydGllcy51cmw7
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gb3ZlcnJpZGUgZWFjaCBzdHJlYW0gb3Agd2l0aCBvbmUg
dGhhdCB0cmllcyB0byBmb3JjZSBsb2FkIHRoZSBsYXp5IGZpbGUgZmlyc3QKLSAgICAgICAgdmFy
IHN0cmVhbV9vcHMgPSB7fTsKLSAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhub2RlLnN0
cmVhbV9vcHMpOwotICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7Ci0gICAgICAg
ICAgdmFyIGZuID0gbm9kZS5zdHJlYW1fb3BzW2tleV07Ci0gICAgICAgICAgc3RyZWFtX29wc1tr
ZXldID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBpZiAoIUZTLmZvcmNlTG9hZEZpbGUobm9k
ZSkpIHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RUlPKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShudWxsLCBh
cmd1bWVudHMpOwotICAgICAgICAgIH07Ci0gICAgICAgIH0pOwotICAgICAgICAvLyB1c2UgYSBj
dXN0b20gcmVhZCBmdW5jdGlvbgotICAgICAgICBzdHJlYW1fb3BzLnJlYWQgPSBmdW5jdGlvbihz
dHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgICAgaWYg
KCFGUy5mb3JjZUxvYWRGaWxlKG5vZGUpKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgY29u
dGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAgICAgICB2YXIgc2l6ZSA9IE1hdGgu
bWluKGNvbnRlbnRzLmxlbmd0aCAtIHBvc2l0aW9uLCBsZW5ndGgpOwotICAgICAgICAgIGlmIChj
b250ZW50cy5zbGljZSkgeyAvLyBub3JtYWwgYXJyYXkKLSAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyBpXSA9
IGNvbnRlbnRzW3Bvc2l0aW9uICsgaV07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7IC8vIExhenlV
aW50OEFycmF5IGZyb20gc3luYyBiaW5hcnkgWEhSCi0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZz
ZXQgKyBpXSA9IGNvbnRlbnRzLmdldChwb3NpdGlvbiArIGkpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gc2l6ZTsKLSAgICAgICAgfTsKLSAgICAgICAgbm9k
ZS5zdHJlYW1fb3BzID0gc3RyZWFtX29wczsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9
LGNyZWF0ZVByZWxvYWRlZEZpbGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgdXJsLCBjYW5SZWFk
LCBjYW5Xcml0ZSwgb25sb2FkLCBvbmVycm9yLCBkb250Q3JlYXRlRmlsZSkgewotICAgICAgICBC
cm93c2VyLmluaXQoKTsKLSAgICAgICAgLy8gVE9ETyB3ZSBzaG91bGQgYWxsb3cgcGVvcGxlIHRv
IGp1c3QgcGFzcyBpbiBhIGNvbXBsZXRlIGZpbGVuYW1lIGluc3RlYWQKLSAgICAgICAgLy8gb2Yg
cGFyZW50IGFuZCBuYW1lIGJlaW5nIHRoYXQgd2UganVzdCBqb2luIHRoZW0gYW55d2F5cwotICAg
ICAgICB2YXIgZnVsbG5hbWUgPSBQQVRILnJlc29sdmUoUEFUSC5qb2luKHBhcmVudCwgbmFtZSkp
OwotICAgICAgICBmdW5jdGlvbiBwcm9jZXNzRGF0YShieXRlQXJyYXkpIHsKLSAgICAgICAgICBm
dW5jdGlvbiBmaW5pc2goYnl0ZUFycmF5KSB7Ci0gICAgICAgICAgICBpZiAoIWRvbnRDcmVhdGVG
aWxlKSB7Ci0gICAgICAgICAgICAgIEZTLmNyZWF0ZURhdGFGaWxlKHBhcmVudCwgbmFtZSwgYnl0
ZUFycmF5LCBjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAob25sb2FkKSBvbmxvYWQoKTsKLSAgICAgICAgICAgIHJlbW92ZVJ1bkRlcGVuZGVuY3koJ2Nw
ICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBoYW5kbGVkID0gZmFs
c2U7Ci0gICAgICAgICAgTW9kdWxlWydwcmVsb2FkUGx1Z2lucyddLmZvckVhY2goZnVuY3Rpb24o
cGx1Z2luKSB7Ci0gICAgICAgICAgICBpZiAoaGFuZGxlZCkgcmV0dXJuOwotICAgICAgICAgICAg
aWYgKHBsdWdpblsnY2FuSGFuZGxlJ10oZnVsbG5hbWUpKSB7Ci0gICAgICAgICAgICAgIHBsdWdp
blsnaGFuZGxlJ10oYnl0ZUFycmF5LCBmdWxsbmFtZSwgZmluaXNoLCBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICBpZiAob25lcnJvcikgb25lcnJvcigpOwotICAgICAgICAgICAgICAgIHJl
bW92ZVJ1bkRlcGVuZGVuY3koJ2NwICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9
KTsKLSAgICAgICAgICBpZiAoIWhhbmRsZWQpIGZpbmlzaChieXRlQXJyYXkpOwotICAgICAgICB9
Ci0gICAgICAgIGFkZFJ1bkRlcGVuZGVuY3koJ2NwICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgIGlm
ICh0eXBlb2YgdXJsID09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgQnJvd3Nlci5hc3luY0xvYWQo
dXJsLCBmdW5jdGlvbihieXRlQXJyYXkpIHsKLSAgICAgICAgICAgIHByb2Nlc3NEYXRhKGJ5dGVB
cnJheSk7Ci0gICAgICAgICAgfSwgb25lcnJvcik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgcHJvY2Vzc0RhdGEodXJsKTsKLSAgICAgICAgfQotICAgICAgfSxjcmVhdGVEZWZhdWx0RGly
ZWN0b3JpZXM6ZnVuY3Rpb24gKCkgewotICAgICAgICBGUy5ta2RpcignL3RtcCcsIDA3NzcpOwot
ICAgICAgfSxjcmVhdGVEZWZhdWx0RGV2aWNlczpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIC8vIGNy
ZWF0ZSAvZGV2Ci0gICAgICAgIEZTLm1rZGlyKCcvZGV2JywgMDc3Nyk7Ci0gICAgICAgIC8vIHNl
dHVwIC9kZXYvbnVsbAotICAgICAgICBGUy5yZWdpc3RlckRldmljZShGUy5tYWtlZGV2KDEsIDMp
LCB7Ci0gICAgICAgICAgcmVhZDogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9LAotICAgICAgICAg
IHdyaXRlOiBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH0KLSAgICAgICAgfSk7Ci0gICAgICAgIEZT
Lm1rZGV2KCcvZGV2L251bGwnLCAwNjY2LCBGUy5tYWtlZGV2KDEsIDMpKTsKLSAgICAgICAgLy8g
c2V0dXAgL2Rldi90dHkgYW5kIC9kZXYvdHR5MQotICAgICAgICAvLyBzdGRlcnIgbmVlZHMgdG8g
cHJpbnQgb3V0cHV0IHVzaW5nIE1vZHVsZVsncHJpbnRFcnInXQotICAgICAgICAvLyBzbyB3ZSBy
ZWdpc3RlciBhIHNlY29uZCB0dHkganVzdCBmb3IgaXQuCi0gICAgICAgIFRUWS5yZWdpc3RlcihG
Uy5tYWtlZGV2KDUsIDApLCBUVFkuZGVmYXVsdF90dHlfb3BzKTsKLSAgICAgICAgVFRZLnJlZ2lz
dGVyKEZTLm1ha2VkZXYoNiwgMCksIFRUWS5kZWZhdWx0X3R0eTFfb3BzKTsKLSAgICAgICAgRlMu
bWtkZXYoJy9kZXYvdHR5JywgMDY2NiwgRlMubWFrZWRldig1LCAwKSk7Ci0gICAgICAgIEZTLm1r
ZGV2KCcvZGV2L3R0eTEnLCAwNjY2LCBGUy5tYWtlZGV2KDYsIDApKTsKLSAgICAgICAgLy8gd2Un
cmUgbm90IGdvaW5nIHRvIGVtdWxhdGUgdGhlIGFjdHVhbCBzaG0gZGV2aWNlLAotICAgICAgICAv
LyBqdXN0IGNyZWF0ZSB0aGUgdG1wIGRpcnMgdGhhdCByZXNpZGUgaW4gaXQgY29tbW9ubHkKLSAg
ICAgICAgRlMubWtkaXIoJy9kZXYvc2htJywgMDc3Nyk7Ci0gICAgICAgIEZTLm1rZGlyKCcvZGV2
L3NobS90bXAnLCAwNzc3KTsKLSAgICAgIH0sY3JlYXRlU3RhbmRhcmRTdHJlYW1zOmZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgLy8gVE9ETyBkZXByZWNhdGUgdGhlIG9sZCBmdW5jdGlvbmFsaXR5IG9m
IGEgc2luZ2xlCi0gICAgICAgIC8vIGlucHV0IC8gb3V0cHV0IGNhbGxiYWNrIGFuZCB0aGF0IHV0
aWxpemVzIEZTLmNyZWF0ZURldmljZQotICAgICAgICAvLyBhbmQgaW5zdGVhZCByZXF1aXJlIGEg
dW5pcXVlIHNldCBvZiBzdHJlYW0gb3BzCi0gICAgICAgIC8vIGJ5IGRlZmF1bHQsIHdlIHN5bWxp
bmsgdGhlIHN0YW5kYXJkIHN0cmVhbXMgdG8gdGhlCi0gICAgICAgIC8vIGRlZmF1bHQgdHR5IGRl
dmljZXMuIGhvd2V2ZXIsIGlmIHRoZSBzdGFuZGFyZCBzdHJlYW1zCi0gICAgICAgIC8vIGhhdmUg
YmVlbiBvdmVyd3JpdHRlbiB3ZSBjcmVhdGUgYSB1bmlxdWUgZGV2aWNlIGZvcgotICAgICAgICAv
LyB0aGVtIGluc3RlYWQuCi0gICAgICAgIGlmIChNb2R1bGVbJ3N0ZGluJ10pIHsKLSAgICAgICAg
ICBGUy5jcmVhdGVEZXZpY2UoJy9kZXYnLCAnc3RkaW4nLCBNb2R1bGVbJ3N0ZGluJ10pOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5bWxpbmsoJy9kZXYvdHR5JywgJy9kZXYvc3Rk
aW4nKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoTW9kdWxlWydzdGRvdXQnXSkgewotICAgICAg
ICAgIEZTLmNyZWF0ZURldmljZSgnL2RldicsICdzdGRvdXQnLCBudWxsLCBNb2R1bGVbJ3N0ZG91
dCddKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBGUy5zeW1saW5rKCcvZGV2L3R0eScs
ICcvZGV2L3N0ZG91dCcpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChNb2R1bGVbJ3N0ZGVycidd
KSB7Ci0gICAgICAgICAgRlMuY3JlYXRlRGV2aWNlKCcvZGV2JywgJ3N0ZGVycicsIG51bGwsIE1v
ZHVsZVsnc3RkZXJyJ10pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5bWxpbmso
Jy9kZXYvdHR5MScsICcvZGV2L3N0ZGVycicpOwotICAgICAgICB9Ci0gICAgICAgIC8vIG9wZW4g
ZGVmYXVsdCBzdHJlYW1zIGZvciB0aGUgc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIGRldmljZXMK
LSAgICAgICAgdmFyIHN0ZGluID0gRlMub3BlbignL2Rldi9zdGRpbicsICdyJyk7Ci0gICAgICAg
IEhFQVAzMlsoKF9zdGRpbik+PjIpXT1zdGRpbi5mZDsKLSAgICAgICAgYXNzZXJ0KHN0ZGluLmZk
ID09PSAxLCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0ZGluICgnICsgc3RkaW4uZmQgKyAnKScpOwot
ICAgICAgICB2YXIgc3Rkb3V0ID0gRlMub3BlbignL2Rldi9zdGRvdXQnLCAndycpOwotICAgICAg
ICBIRUFQMzJbKChfc3Rkb3V0KT4+MildPXN0ZG91dC5mZDsKLSAgICAgICAgYXNzZXJ0KHN0ZG91
dC5mZCA9PT0gMiwgJ2ludmFsaWQgaGFuZGxlIGZvciBzdGRvdXQgKCcgKyBzdGRvdXQuZmQgKyAn
KScpOwotICAgICAgICB2YXIgc3RkZXJyID0gRlMub3BlbignL2Rldi9zdGRlcnInLCAndycpOwot
ICAgICAgICBIRUFQMzJbKChfc3RkZXJyKT4+MildPXN0ZGVyci5mZDsKLSAgICAgICAgYXNzZXJ0
KHN0ZGVyci5mZCA9PT0gMywgJ2ludmFsaWQgaGFuZGxlIGZvciBzdGRlcnIgKCcgKyBzdGRlcnIu
ZmQgKyAnKScpOwotICAgICAgfSxzdGF0aWNJbml0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgRlMu
bmFtZV90YWJsZSA9IG5ldyBBcnJheSg0MDk2KTsKLSAgICAgICAgRlMucm9vdCA9IEZTLmNyZWF0
ZU5vZGUobnVsbCwgJy8nLCAwMDQwMDAwIHwgMDc3NywgMCk7Ci0gICAgICAgIEZTLm1vdW50KE1F
TUZTLCB7fSwgJy8nKTsKLSAgICAgICAgRlMuY3JlYXRlRGVmYXVsdERpcmVjdG9yaWVzKCk7Ci0g
ICAgICAgIEZTLmNyZWF0ZURlZmF1bHREZXZpY2VzKCk7Ci0gICAgICB9LGluaXQ6ZnVuY3Rpb24g
KGlucHV0LCBvdXRwdXQsIGVycm9yKSB7Ci0gICAgICAgIGFzc2VydCghRlMuaW5pdC5pbml0aWFs
aXplZCwgJ0ZTLmluaXQgd2FzIHByZXZpb3VzbHkgY2FsbGVkLiBJZiB5b3Ugd2FudCB0byBpbml0
aWFsaXplIGxhdGVyIHdpdGggY3VzdG9tIHBhcmFtZXRlcnMsIHJlbW92ZSBhbnkgZWFybGllciBj
YWxscyAobm90ZSB0aGF0IG9uZSBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBnZW5lcmF0
ZWQgY29kZSknKTsKLSAgICAgICAgRlMuaW5pdC5pbml0aWFsaXplZCA9IHRydWU7Ci0gICAgICAg
IC8vIEFsbG93IE1vZHVsZS5zdGRpbiBldGMuIHRvIHByb3ZpZGUgZGVmYXVsdHMsIGlmIG5vbmUg
ZXhwbGljaXRseSBwYXNzZWQgdG8gdXMgaGVyZQotICAgICAgICBNb2R1bGVbJ3N0ZGluJ10gPSBp
bnB1dCB8fCBNb2R1bGVbJ3N0ZGluJ107Ci0gICAgICAgIE1vZHVsZVsnc3Rkb3V0J10gPSBvdXRw
dXQgfHwgTW9kdWxlWydzdGRvdXQnXTsKLSAgICAgICAgTW9kdWxlWydzdGRlcnInXSA9IGVycm9y
IHx8IE1vZHVsZVsnc3RkZXJyJ107Ci0gICAgICAgIEZTLmNyZWF0ZVN0YW5kYXJkU3RyZWFtcygp
OwotICAgICAgfSxxdWl0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgRlMuaW5pdC5pbml0aWFsaXpl
ZCA9IGZhbHNlOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IEZTLnN0cmVhbXMubGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICB2YXIgc3RyZWFtID0gRlMuc3RyZWFtc1tpXTsKLSAgICAgICAg
ICBpZiAoIXN0cmVhbSkgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIEZTLmNsb3NlKHN0cmVhbSk7Ci0gICAgICAgIH0KLSAgICAgIH0sbW91bnQ6ZnVuY3Rp
b24gKHR5cGUsIG9wdHMsIG1vdW50cG9pbnQpIHsKLSAgICAgICAgdmFyIG1vdW50ID0gewotICAg
ICAgICAgIHR5cGU6IHR5cGUsCi0gICAgICAgICAgb3B0czogb3B0cywKLSAgICAgICAgICBtb3Vu
dHBvaW50OiBtb3VudHBvaW50LAotICAgICAgICAgIHJvb3Q6IG51bGwKLSAgICAgICAgfTsKLSAg
ICAgICAgdmFyIGxvb2t1cDsKLSAgICAgICAgaWYgKG1vdW50cG9pbnQpIHsKLSAgICAgICAgICBs
b29rdXAgPSBGUy5sb29rdXBQYXRoKG1vdW50cG9pbnQsIHsgZm9sbG93OiBmYWxzZSB9KTsKLSAg
ICAgICAgfQotICAgICAgICAvLyBjcmVhdGUgYSByb290IG5vZGUgZm9yIHRoZSBmcwotICAgICAg
ICB2YXIgcm9vdCA9IHR5cGUubW91bnQobW91bnQpOwotICAgICAgICByb290Lm1vdW50ID0gbW91
bnQ7Ci0gICAgICAgIG1vdW50LnJvb3QgPSByb290OwotICAgICAgICAvLyBhc3NpZ24gdGhlIG1v
dW50IGluZm8gdG8gdGhlIG1vdW50cG9pbnQncyBub2RlCi0gICAgICAgIGlmIChsb29rdXApIHsK
LSAgICAgICAgICBsb29rdXAubm9kZS5tb3VudCA9IG1vdW50OwotICAgICAgICAgIGxvb2t1cC5u
b2RlLm1vdW50ZWQgPSB0cnVlOwotICAgICAgICAgIC8vIGNvbXBhdGliaWxpdHkgdXBkYXRlIEZT
LnJvb3QgaWYgd2UgbW91bnQgdG8gLwotICAgICAgICAgIGlmIChtb3VudHBvaW50ID09PSAnLycp
IHsKLSAgICAgICAgICAgIEZTLnJvb3QgPSBtb3VudC5yb290OwotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gcm9vdDsKLSAgICAgIH0sbG9va3VwOmZ1bmN0aW9uIChwYXJl
bnQsIG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5sb29rdXAocGFyZW50
LCBuYW1lKTsKLSAgICAgIH0sbWtub2Q6ZnVuY3Rpb24gKHBhdGgsIG1vZGUsIGRldikgewotICAg
ICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsK
LSAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICB2YXIgbmFtZSA9IFBB
VEguYmFzZW5hbWUocGF0aCk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlDcmVhdGUocGFyZW50
LCBuYW1lKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFwYXJlbnQubm9kZV9vcHMubWtu
b2QpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVS
TSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5ta25vZChwYXJl
bnQsIG5hbWUsIG1vZGUsIGRldik7Ci0gICAgICB9LGNyZWF0ZTpmdW5jdGlvbiAocGF0aCwgbW9k
ZSkgewotICAgICAgICBtb2RlICY9IDQwOTU7Ci0gICAgICAgIG1vZGUgfD0gMDEwMDAwMDsKLSAg
ICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIDApOwotICAgICAgfSxta2RpcjpmdW5j
dGlvbiAocGF0aCwgbW9kZSkgewotICAgICAgICBtb2RlICY9IDUxMSB8IDAwMDEwMDA7Ci0gICAg
ICAgIG1vZGUgfD0gMDA0MDAwMDsKLSAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUs
IDApOwotICAgICAgfSxta2RldjpmdW5jdGlvbiAocGF0aCwgbW9kZSwgZGV2KSB7Ci0gICAgICAg
IG1vZGUgfD0gMDAyMDAwMDsKLSAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIGRl
dik7Ci0gICAgICB9LHN5bWxpbms6ZnVuY3Rpb24gKG9sZHBhdGgsIG5ld3BhdGgpIHsKLSAgICAg
ICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobmV3cGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7
Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5ld25hbWUg
PSBQQVRILmJhc2VuYW1lKG5ld3BhdGgpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5Q3JlYXRl
KHBhcmVudCwgbmV3bmFtZSk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghcGFyZW50Lm5v
ZGVfb3BzLnN5bWxpbmspIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29w
cy5zeW1saW5rKHBhcmVudCwgbmV3bmFtZSwgb2xkcGF0aCk7Ci0gICAgICB9LHJlbmFtZTpmdW5j
dGlvbiAob2xkX3BhdGgsIG5ld19wYXRoKSB7Ci0gICAgICAgIHZhciBvbGRfZGlybmFtZSA9IFBB
VEguZGlybmFtZShvbGRfcGF0aCk7Ci0gICAgICAgIHZhciBuZXdfZGlybmFtZSA9IFBBVEguZGly
bmFtZShuZXdfcGF0aCk7Ci0gICAgICAgIHZhciBvbGRfbmFtZSA9IFBBVEguYmFzZW5hbWUob2xk
X3BhdGgpOwotICAgICAgICB2YXIgbmV3X25hbWUgPSBQQVRILmJhc2VuYW1lKG5ld19wYXRoKTsK
LSAgICAgICAgLy8gcGFyZW50cyBtdXN0IGV4aXN0Ci0gICAgICAgIHZhciBsb29rdXAsIG9sZF9k
aXIsIG5ld19kaXI7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbG9va3VwID0gRlMubG9va3Vw
UGF0aChvbGRfcGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgb2xkX2RpciA9IGxv
b2t1cC5ub2RlOwotICAgICAgICAgIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobmV3X3BhdGgsIHsg
cGFyZW50OiB0cnVlIH0pOwotICAgICAgICAgIG5ld19kaXIgPSBsb29rdXAubm9kZTsKLSAgICAg
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICAvLyBuZWVkIHRvIGJlIHBhcnQgb2Yg
dGhlIHNhbWUgbW91bnQKLSAgICAgICAgaWYgKG9sZF9kaXIubW91bnQgIT09IG5ld19kaXIubW91
bnQpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FWERF
Vik7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gc291cmNlIG11c3QgZXhpc3QKLSAgICAgICAgdmFy
IG9sZF9ub2RlID0gRlMubG9va3VwTm9kZShvbGRfZGlyLCBvbGRfbmFtZSk7Ci0gICAgICAgIC8v
IG9sZCBwYXRoIHNob3VsZCBub3QgYmUgYW4gYW5jZXN0b3Igb2YgdGhlIG5ldyBwYXRoCi0gICAg
ICAgIHZhciByZWxhdGl2ZSA9IFBBVEgucmVsYXRpdmUob2xkX3BhdGgsIG5ld19kaXJuYW1lKTsK
LSAgICAgICAgaWYgKHJlbGF0aXZlLmNoYXJBdCgwKSAhPT0gJy4nKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAg
ICAgICAvLyBuZXcgcGF0aCBzaG91bGQgbm90IGJlIGFuIGFuY2VzdG9yIG9mIHRoZSBvbGQgcGF0
aAotICAgICAgICByZWxhdGl2ZSA9IFBBVEgucmVsYXRpdmUobmV3X3BhdGgsIG9sZF9kaXJuYW1l
KTsKLSAgICAgICAgaWYgKHJlbGF0aXZlLmNoYXJBdCgwKSAhPT0gJy4nKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PVEVNUFRZKTsKLSAgICAgICAg
fQotICAgICAgICAvLyBzZWUgaWYgdGhlIG5ldyBwYXRoIGFscmVhZHkgZXhpc3RzCi0gICAgICAg
IHZhciBuZXdfbm9kZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBuZXdfbm9kZSA9IEZTLmxv
b2t1cE5vZGUobmV3X2RpciwgbmV3X25hbWUpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAg
ICAgICAgLy8gbm90IGZhdGFsCi0gICAgICAgIH0KLSAgICAgICAgLy8gZWFybHkgb3V0IGlmIG5v
dGhpbmcgbmVlZHMgdG8gY2hhbmdlCi0gICAgICAgIGlmIChvbGRfbm9kZSA9PT0gbmV3X25vZGUp
IHsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgLy8gd2UnbGwgbmVlZCB0
byBkZWxldGUgdGhlIG9sZCBlbnRyeQotICAgICAgICB2YXIgaXNkaXIgPSBGUy5pc0RpcihvbGRf
bm9kZS5tb2RlKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShvbGRfZGlyLCBvbGRf
bmFtZSwgaXNkaXIpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICAvLyBuZWVkIGRlbGV0ZSBwZXJt
aXNzaW9ucyBpZiB3ZSdsbCBiZSBvdmVyd3JpdGluZy4KLSAgICAgICAgLy8gbmVlZCBjcmVhdGUg
cGVybWlzc2lvbnMgaWYgbmV3IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4KLSAgICAgICAgZXJyID0g
bmV3X25vZGUgPwotICAgICAgICAgIEZTLm1heURlbGV0ZShuZXdfZGlyLCBuZXdfbmFtZSwgaXNk
aXIpIDoKLSAgICAgICAgICBGUy5tYXlDcmVhdGUobmV3X2RpciwgbmV3X25hbWUpOwotICAgICAg
ICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIW9sZF9kaXIubm9kZV9vcHMucmVuYW1lKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9
Ci0gICAgICAgIGlmIChGUy5pc01vdW50cG9pbnQob2xkX25vZGUpIHx8IChuZXdfbm9kZSAmJiBG
Uy5pc01vdW50cG9pbnQobmV3X25vZGUpKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICAvLyBpZiB3ZSBh
cmUgZ29pbmcgdG8gY2hhbmdlIHRoZSBwYXJlbnQsIGNoZWNrIHdyaXRlIHBlcm1pc3Npb25zCi0g
ICAgICAgIGlmIChuZXdfZGlyICE9PSBvbGRfZGlyKSB7Ci0gICAgICAgICAgZXJyID0gRlMubm9k
ZVBlcm1pc3Npb25zKG9sZF9kaXIsICd3Jyk7Ci0gICAgICAgICAgaWYgKGVycikgewotICAgICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgLy8gcmVtb3ZlIHRoZSBub2RlIGZyb20gdGhlIGxvb2t1cCBoYXNoCi0gICAg
ICAgIEZTLmhhc2hSZW1vdmVOb2RlKG9sZF9ub2RlKTsKLSAgICAgICAgLy8gZG8gdGhlIHVuZGVy
bHlpbmcgZnMgcmVuYW1lCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgb2xkX2Rpci5ub2RlX29w
cy5yZW5hbWUob2xkX25vZGUsIG5ld19kaXIsIG5ld19uYW1lKTsKLSAgICAgICAgfSBjYXRjaCAo
ZSkgewotICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAg
Ly8gYWRkIHRoZSBub2RlIGJhY2sgdG8gdGhlIGhhc2ggKGluIGNhc2Ugbm9kZV9vcHMucmVuYW1l
Ci0gICAgICAgICAgLy8gY2hhbmdlZCBpdHMgbmFtZSkKLSAgICAgICAgICBGUy5oYXNoQWRkTm9k
ZShvbGRfbm9kZSk7Ci0gICAgICAgIH0KLSAgICAgIH0scm1kaXI6ZnVuY3Rpb24gKHBhdGgpIHsK
LSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUg
fSk7Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUg
PSBQQVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUo
cGFyZW50LCBuYW1lKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5h
bWUsIHRydWUpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBhcmVudC5ub2RlX29wcy5y
bWRpcikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQ
RVJNKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNNb3VudHBvaW50KG5vZGUpKSB7Ci0g
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpOwotICAg
ICAgICB9Ci0gICAgICAgIHBhcmVudC5ub2RlX29wcy5ybWRpcihwYXJlbnQsIG5hbWUpOwotICAg
ICAgICBGUy5kZXN0cm95Tm9kZShub2RlKTsKLSAgICAgIH0scmVhZGRpcjpmdW5jdGlvbiAocGF0
aCkgewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzog
dHJ1ZSB9KTsKLSAgICAgICAgdmFyIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgaWYgKCFu
b2RlLm5vZGVfb3BzLnJlYWRkaXIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FTk9URElSKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS5u
b2RlX29wcy5yZWFkZGlyKG5vZGUpOwotICAgICAgfSx1bmxpbms6ZnVuY3Rpb24gKHBhdGgpIHsK
LSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUg
fSk7Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUg
PSBQQVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUo
cGFyZW50LCBuYW1lKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5h
bWUsIGZhbHNlKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIC8vIFBPU0lYIHNheXMg
dW5saW5rIHNob3VsZCBzZXQgRVBFUk0sIG5vdCBFSVNESVIKLSAgICAgICAgICBpZiAoZXJyID09
PSBFUlJOT19DT0RFUy5FSVNESVIpIGVyciA9IEVSUk5PX0NPREVTLkVQRVJNOwotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFw
YXJlbnQubm9kZV9vcHMudW5saW5rKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5pc01vdW50
cG9pbnQobm9kZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FQlVTWSk7Ci0gICAgICAgIH0KLSAgICAgICAgcGFyZW50Lm5vZGVfb3BzLnVubGluayhw
YXJlbnQsIG5hbWUpOwotICAgICAgICBGUy5kZXN0cm95Tm9kZShub2RlKTsKLSAgICAgIH0scmVh
ZGxpbms6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBh
dGgocGF0aCwgeyBmb2xsb3c6IGZhbHNlIH0pOwotICAgICAgICB2YXIgbGluayA9IGxvb2t1cC5u
b2RlOwotICAgICAgICBpZiAoIWxpbmsubm9kZV9vcHMucmVhZGxpbmspIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBsaW5rLm5vZGVfb3BzLnJlYWRsaW5rKGxpbmspOwotICAgICAgfSxzdGF0
OmZ1bmN0aW9uIChwYXRoLCBkb250Rm9sbG93KSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5s
b29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udEZvbGxvdyB9KTsKLSAgICAgICAgdmFyIG5v
ZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLmdldGF0dHIpIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGUubm9kZV9vcHMuZ2V0YXR0cihub2RlKTsKLSAg
ICAgIH0sbHN0YXQ6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgcmV0dXJuIEZTLnN0YXQocGF0
aCwgdHJ1ZSk7Ci0gICAgICB9LGNobW9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlLCBkb250Rm9sbG93
KSB7Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJp
bmcnKSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xs
b3c6ICFkb250Rm9sbG93IH0pOwotICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICBub2RlID0gcGF0aDsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoIW5vZGUubm9kZV9vcHMuc2V0YXR0cikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICBub2RlLm5vZGVf
b3BzLnNldGF0dHIobm9kZSwgewotICAgICAgICAgIG1vZGU6IChtb2RlICYgNDA5NSkgfCAobm9k
ZS5tb2RlICYgfjQwOTUpLAotICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKQotICAgICAg
ICB9KTsKLSAgICAgIH0sbGNobW9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlKSB7Ci0gICAgICAgIEZT
LmNobW9kKHBhdGgsIG1vZGUsIHRydWUpOwotICAgICAgfSxmY2htb2Q6ZnVuY3Rpb24gKGZkLCBt
b2RlKSB7Ci0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwotICAgICAgICBp
ZiAoIXN0cmVhbSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBGUy5jaG1vZChzdHJlYW0ubm9kZSwgbW9k
ZSk7Ci0gICAgICB9LGNob3duOmZ1bmN0aW9uIChwYXRoLCB1aWQsIGdpZCwgZG9udEZvbGxvdykg
ewotICAgICAgICB2YXIgbm9kZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5n
JykgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93
OiAhZG9udEZvbGxvdyB9KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgbm9kZSA9IHBhdGg7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KCFub2RlLm5vZGVfb3BzLnNldGF0dHIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS5ub2RlX29w
cy5zZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCkKLSAgICAg
ICAgICAvLyB3ZSBpZ25vcmUgdGhlIHVpZCAvIGdpZCBmb3Igbm93Ci0gICAgICAgIH0pOwotICAg
ICAgfSxsY2hvd246ZnVuY3Rpb24gKHBhdGgsIHVpZCwgZ2lkKSB7Ci0gICAgICAgIEZTLmNob3du
KHBhdGgsIHVpZCwgZ2lkLCB0cnVlKTsKLSAgICAgIH0sZmNob3duOmZ1bmN0aW9uIChmZCwgdWlk
LCBnaWQpIHsKLSAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICAg
IGlmICghc3RyZWFtKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIEZTLmNob3duKHN0cmVhbS5ub2RlLCB1
aWQsIGdpZCk7Ci0gICAgICB9LHRydW5jYXRlOmZ1bmN0aW9uIChwYXRoLCBsZW4pIHsKLSAgICAg
ICAgaWYgKGxlbiA8IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICBp
ZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6IHRydWUgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxv
b2t1cC5ub2RlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIG5vZGUgPSBwYXRoOwotICAg
ICAgICB9Ci0gICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0g
ICAgICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlTRElSKTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
IUZTLmlzRmlsZShub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgZXJyID0gRlMu
bm9kZVBlcm1pc3Npb25zKG5vZGUsICd3Jyk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUu
bm9kZV9vcHMuc2V0YXR0cihub2RlLCB7Ci0gICAgICAgICAgc2l6ZTogbGVuLAotICAgICAgICAg
IHRpbWVzdGFtcDogRGF0ZS5ub3coKQotICAgICAgICB9KTsKLSAgICAgIH0sZnRydW5jYXRlOmZ1
bmN0aW9uIChmZCwgbGVuKSB7Ci0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQp
OwotICAgICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5m
bGFncyAmIDMpID09PSAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICBGUy50cnVuY2F0ZShzdHJlYW0u
bm9kZSwgbGVuKTsKLSAgICAgIH0sdXRpbWU6ZnVuY3Rpb24gKHBhdGgsIGF0aW1lLCBtdGltZSkg
ewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogdHJ1
ZSB9KTsKLSAgICAgICAgdmFyIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgbm9kZS5ub2Rl
X29wcy5zZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICB0aW1lc3RhbXA6IE1hdGgubWF4KGF0aW1l
LCBtdGltZSkKLSAgICAgICAgfSk7Ci0gICAgICB9LG9wZW46ZnVuY3Rpb24gKHBhdGgsIGZsYWdz
LCBtb2RlLCBmZF9zdGFydCwgZmRfZW5kKSB7Ci0gICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6
ZShwYXRoKTsKLSAgICAgICAgZmxhZ3MgPSB0eXBlb2YgZmxhZ3MgPT09ICdzdHJpbmcnID8gRlMu
bW9kZVN0cmluZ1RvRmxhZ3MoZmxhZ3MpIDogZmxhZ3M7Ci0gICAgICAgIG1vZGUgPSB0eXBlb2Yg
bW9kZSA9PT0gJ3VuZGVmaW5lZCcgPyAwNjY2IDogbW9kZTsKLSAgICAgICAgaWYgKChmbGFncyAm
IDUxMikpIHsKLSAgICAgICAgICBtb2RlID0gKG1vZGUgJiA0MDk1KSB8IDAxMDAwMDA7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgbW9kZSA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgdmFy
IG5vZGU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBh
dGgocGF0aCwgewotICAgICAgICAgICAgZm9sbG93OiAhKGZsYWdzICYgMDIwMDAwMCkKLSAgICAg
ICAgICB9KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgcGF0aCA9
IGxvb2t1cC5wYXRoOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgLy8gaWdub3Jl
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gcGVyaGFwcyB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgbm9k
ZQotICAgICAgICBpZiAoKGZsYWdzICYgNTEyKSkgewotICAgICAgICAgIGlmIChub2RlKSB7Ci0g
ICAgICAgICAgICAvLyBpZiBPX0NSRUFUIGFuZCBPX0VYQ0wgYXJlIHNldCwgZXJyb3Igb3V0IGlm
IHRoZSBub2RlIGFscmVhZHkgZXhpc3RzCi0gICAgICAgICAgICBpZiAoKGZsYWdzICYgMjA0OCkp
IHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUVY
SVNUKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8g
bm9kZSBkb2Vzbid0IGV4aXN0LCB0cnkgdG8gY3JlYXRlIGl0Ci0gICAgICAgICAgICBub2RlID0g
RlMubWtub2QocGF0aCwgbW9kZSwgMCk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IGlmICghbm9kZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVOT0VOVCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gY2FuJ3QgdHJ1bmNhdGUgYSBkZXZp
Y2UKLSAgICAgICAgaWYgKEZTLmlzQ2hyZGV2KG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBmbGFn
cyAmPSB+MTAyNDsKLSAgICAgICAgfQotICAgICAgICAvLyBjaGVjayBwZXJtaXNzaW9ucwotICAg
ICAgICB2YXIgZXJyID0gRlMubWF5T3Blbihub2RlLCBmbGFncyk7Ci0gICAgICAgIGlmIChlcnIp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0g
ICAgICAgIC8vIGRvIHRydW5jYXRpb24gaWYgbmVjZXNzYXJ5Ci0gICAgICAgIGlmICgoZmxhZ3Mg
JiAxMDI0KSkgewotICAgICAgICAgIEZTLnRydW5jYXRlKG5vZGUsIDApOwotICAgICAgICB9Ci0g
ICAgICAgIC8vIHJlZ2lzdGVyIHRoZSBzdHJlYW0gd2l0aCB0aGUgZmlsZXN5c3RlbQotICAgICAg
ICB2YXIgc3RyZWFtID0gRlMuY3JlYXRlU3RyZWFtKHsKLSAgICAgICAgICBwYXRoOiBwYXRoLAot
ICAgICAgICAgIG5vZGU6IG5vZGUsCi0gICAgICAgICAgZmxhZ3M6IGZsYWdzLAotICAgICAgICAg
IHNlZWthYmxlOiB0cnVlLAotICAgICAgICAgIHBvc2l0aW9uOiAwLAotICAgICAgICAgIHN0cmVh
bV9vcHM6IG5vZGUuc3RyZWFtX29wcywKLSAgICAgICAgICAvLyB1c2VkIGJ5IHRoZSBmaWxlIGZh
bWlseSBsaWJjIGNhbGxzIChmb3BlbiwgZndyaXRlLCBmZXJyb3IsIGV0Yy4pCi0gICAgICAgICAg
dW5nb3R0ZW46IFtdLAotICAgICAgICAgIGVycm9yOiBmYWxzZQotICAgICAgICB9LCBmZF9zdGFy
dCwgZmRfZW5kKTsKLSAgICAgICAgLy8gY2FsbCB0aGUgbmV3IHN0cmVhbSdzIG9wZW4gZnVuY3Rp
b24KLSAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4pIHsKLSAgICAgICAgICBzdHJl
YW0uc3RyZWFtX29wcy5vcGVuKHN0cmVhbSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN0
cmVhbTsKLSAgICAgIH0sY2xvc2U6ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAgICB0cnkgewot
ICAgICAgICAgIGlmIChzdHJlYW0uc3RyZWFtX29wcy5jbG9zZSkgewotICAgICAgICAgICAgc3Ry
ZWFtLnN0cmVhbV9vcHMuY2xvc2Uoc3RyZWFtKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgICB0aHJvdyBlOwotICAgICAgICB9IGZpbmFsbHkgewotICAgICAg
ICAgIEZTLmNsb3NlU3RyZWFtKHN0cmVhbS5mZCk7Ci0gICAgICAgIH0KLSAgICAgIH0sbGxzZWVr
OmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNldCwgd2hlbmNlKSB7Ci0gICAgICAgIGlmICghc3RyZWFt
LnNlZWthYmxlIHx8ICFzdHJlYW0uc3RyZWFtX29wcy5sbHNlZWspIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBzdHJlYW0uc3RyZWFtX29wcy5sbHNlZWsoc3RyZWFtLCBvZmZzZXQsIHdoZW5j
ZSk7Ci0gICAgICB9LHJlYWQ6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0
aCwgcG9zaXRpb24pIHsKLSAgICAgICAgaWYgKGxlbmd0aCA8IDAgfHwgcG9zaXRpb24gPCAwKSB7
Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAxKSB7Ci0gICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChGUy5pc0RpcihzdHJlYW0ubm9kZS5tb2RlKSkgewotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJUik7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy5yZWFkKSB7Ci0gICAgICAgICAgdGhyb3cg
bmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAg
ICB2YXIgc2Vla2luZyA9IHRydWU7Ci0gICAgICAgIGlmICh0eXBlb2YgcG9zaXRpb24gPT09ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgICAgcG9zaXRpb24gPSBzdHJlYW0ucG9zaXRpb247Ci0gICAg
ICAgICAgc2Vla2luZyA9IGZhbHNlOwotICAgICAgICB9IGVsc2UgaWYgKCFzdHJlYW0uc2Vla2Fi
bGUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJ
UEUpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBieXRlc1JlYWQgPSBzdHJlYW0uc3RyZWFtX29w
cy5yZWFkKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pOwotICAgICAg
ICBpZiAoIXNlZWtpbmcpIHN0cmVhbS5wb3NpdGlvbiArPSBieXRlc1JlYWQ7Ci0gICAgICAgIHJl
dHVybiBieXRlc1JlYWQ7Ci0gICAgICB9LHdyaXRlOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwg
b2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgIGlmIChsZW5ndGggPCAwIHx8IHBv
c2l0aW9uIDwgMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9
PT0gMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVC
QURGKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIp
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUpIHsKLSAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAg
ICAgICB9Ci0gICAgICAgIHZhciBzZWVraW5nID0gdHJ1ZTsKLSAgICAgICAgaWYgKHR5cGVvZiBw
b3NpdGlvbiA9PT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICBwb3NpdGlvbiA9IHN0cmVhbS5w
b3NpdGlvbjsKLSAgICAgICAgICBzZWVraW5nID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSBpZiAo
IXN0cmVhbS5zZWVrYWJsZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVTUElQRSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0cmVhbS5mbGFncyAm
IDgpIHsKLSAgICAgICAgICAvLyBzZWVrIHRvIHRoZSBlbmQgYmVmb3JlIHdyaXRpbmcgaW4gYXBw
ZW5kIG1vZGUKLSAgICAgICAgICBGUy5sbHNlZWsoc3RyZWFtLCAwLCAyKTsKLSAgICAgICAgfQot
ICAgICAgICB2YXIgYnl0ZXNXcml0dGVuID0gc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUoc3RyZWFt
LCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbik7Ci0gICAgICAgIGlmICghc2Vla2lu
Zykgc3RyZWFtLnBvc2l0aW9uICs9IGJ5dGVzV3JpdHRlbjsKLSAgICAgICAgcmV0dXJuIGJ5dGVz
V3JpdHRlbjsKLSAgICAgIH0sYWxsb2NhdGU6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCBsZW5n
dGgpIHsKLSAgICAgICAgaWYgKG9mZnNldCA8IDAgfHwgbGVuZ3RoIDw9IDApIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9
Ci0gICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDApIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKCFGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkgJiYgIUZTLmlzRGlyKG5vZGUubW9k
ZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9E
RVYpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMuYWxsb2NhdGUp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FT1BOT1RT
VVBQKTsKLSAgICAgICAgfQotICAgICAgICBzdHJlYW0uc3RyZWFtX29wcy5hbGxvY2F0ZShzdHJl
YW0sIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgIH0sbW1hcDpmdW5jdGlvbiAoc3RyZWFtLCBidWZm
ZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbiwgcHJvdCwgZmxhZ3MpIHsKLSAgICAgICAgLy8g
VE9ETyBpZiBQUk9UIGlzIFBST1RfV1JJVEUsIG1ha2Ugc3VyZSB3ZSBoYXZlIHdyaXRlIGFjY2Vz
cwotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAxKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFDQ0VTKTsKLSAgICAgICAgfQotICAg
ICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLm1tYXApIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuZXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9ERVYpOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBzdHJlYW0uc3RyZWFtX29wcy5tbWFwKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0
aCwgcG9zaXRpb24sIHByb3QsIGZsYWdzKTsKLSAgICAgIH19OwotICBmdW5jdGlvbiBfc2VuZChm
ZCwgYnVmLCBsZW4sIGZsYWdzKSB7Ci0gICAgICB2YXIgaW5mbyA9IEZTLmdldFN0cmVhbShmZCk7
Ci0gICAgICBpZiAoIWluZm8pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJB
REYpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoaW5mby5zb2NrZXQu
cmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNMT1NJTkcgfHwgaW5mby5zb2NrZXQucmVhZHlTdGF0
ZSA9PT0gV2ViU29ja2V0LkNMT1NFRCkgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RF
Uy5FTk9UQ09OTik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0gZWxzZSBpZiAoaW5mby5z
b2NrZXQucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNPTk5FQ1RJTkcpIHsKLSAgICAgICAgX19f
c2V0RXJyTm8oRVJSTk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAg
fQotICAgICAgaW5mby5zZW5kZXIoSEVBUFU4LnN1YmFycmF5KGJ1ZiwgYnVmK2xlbikpOwotICAg
ICAgcmV0dXJuIGxlbjsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9wd3JpdGUoZmlsZGVzLCBidWYsIG5i
eXRlLCBvZmZzZXQpIHsKLSAgICAgIC8vIHNzaXplX3QgcHdyaXRlKGludCBmaWxkZXMsIGNvbnN0
IHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlLCBvZmZfdCBvZmZzZXQpOwotICAgICAgLy8gaHR0cDov
L3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvd3JpdGUu
aHRtbAotICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYg
KCFzdHJlYW0pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICB0cnkgewotICAgICAgICB2YXIgc2xhYiA9
IEhFQVA4OwotICAgICAgICByZXR1cm4gRlMud3JpdGUoc3RyZWFtLCBzbGFiLCBidWYsIG5ieXRl
LCBvZmZzZXQpOwotICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBGUy5oYW5kbGVGU0Vycm9y
KGUpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF93cml0ZShm
aWxkZXMsIGJ1ZiwgbmJ5dGUpIHsKLSAgICAgIC8vIHNzaXplX3Qgd3JpdGUoaW50IGZpbGRlcywg
Y29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbmJ5dGUpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Bl
bmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvd3JpdGUuaHRtbAotICAg
ICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYgKCFzdHJlYW0p
IHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICByZXR1
cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoc3RyZWFtICYmICgnc29ja2V0JyBpbiBzdHJlYW0p
KSB7Ci0gICAgICAgIHJldHVybiBfc2VuZChmaWxkZXMsIGJ1ZiwgbmJ5dGUsIDApOwotICAgICAg
fQotICAgICAgdHJ5IHsKLSAgICAgICAgdmFyIHNsYWIgPSBIRUFQODsKLSAgICAgICAgcmV0dXJu
IEZTLndyaXRlKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0ZSk7Ci0gICAgICB9IGNhdGNoIChlKSB7
Ci0gICAgICAgIEZTLmhhbmRsZUZTRXJyb3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAg
IH0KLSAgICB9ZnVuY3Rpb24gX2Z3cml0ZShwdHIsIHNpemUsIG5pdGVtcywgc3RyZWFtKSB7Ci0g
ICAgICAvLyBzaXplX3QgZndyaXRlKGNvbnN0IHZvaWQgKnJlc3RyaWN0IHB0ciwgc2l6ZV90IHNp
emUsIHNpemVfdCBuaXRlbXMsIEZJTEUgKnJlc3RyaWN0IHN0cmVhbSk7Ci0gICAgICAvLyBodHRw
Oi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9md3Jp
dGUuaHRtbAotICAgICAgdmFyIGJ5dGVzVG9Xcml0ZSA9IG5pdGVtcyAqIHNpemU7Ci0gICAgICBp
ZiAoYnl0ZXNUb1dyaXRlID09IDApIHJldHVybiAwOwotICAgICAgdmFyIGJ5dGVzV3JpdHRlbiA9
IF93cml0ZShzdHJlYW0sIHB0ciwgYnl0ZXNUb1dyaXRlKTsKLSAgICAgIGlmIChieXRlc1dyaXR0
ZW4gPT0gLTEpIHsKLSAgICAgICAgdmFyIHN0cmVhbU9iaiA9IEZTLmdldFN0cmVhbShzdHJlYW0p
OwotICAgICAgICBpZiAoc3RyZWFtT2JqKSBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAg
ICByZXR1cm4gMDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBNYXRoLmZsb29yKGJ5
dGVzV3JpdHRlbiAvIHNpemUpOwotICAgICAgfQotICAgIH0KLSAgZnVuY3Rpb24gX3VuZ2V0Yyhj
LCBzdHJlYW0pIHsKLSAgICAgIC8vIGludCB1bmdldGMoaW50IGMsIEZJTEUgKnN0cmVhbSk7Ci0g
ICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1
bmN0aW9ucy91bmdldGMuaHRtbAotICAgICAgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7
Ci0gICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAg
ICBpZiAoYyA9PT0gLTEpIHsKLSAgICAgICAgLy8gZG8gbm90aGluZyBmb3IgRU9GIGNoYXJhY3Rl
cgotICAgICAgICByZXR1cm4gYzsKLSAgICAgIH0KLSAgICAgIGMgPSB1blNpZ24oYyAmIDB4RkYp
OwotICAgICAgc3RyZWFtLnVuZ290dGVuLnB1c2goYyk7Ci0gICAgICBzdHJlYW0uZW9mID0gZmFs
c2U7Ci0gICAgICByZXR1cm4gYzsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9yZWN2KGZkLCBidWYsIGxl
biwgZmxhZ3MpIHsKLSAgICAgIHZhciBpbmZvID0gRlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAgIGlm
ICghaW5mbykgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAg
ICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIGlmICghaW5mby5oYXNEYXRhKCkpIHsKLSAg
ICAgICAgaWYgKGluZm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TSU5HIHx8
IGluZm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TRUQpIHsKLSAgICAgICAg
ICAvLyBzb2NrZXQgaGFzIGNsb3NlZAotICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgIC8vIGVsc2UsIG91ciBzb2NrZXQgaXMgaW4gYSB2YWxpZCBzdGF0ZSBi
dXQgdHJ1bHkgaGFzIG5vdGhpbmcgYXZhaWxhYmxlCi0gICAgICAgICAgX19fc2V0RXJyTm8oRVJS
Tk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICAg
IH0KLSAgICAgIHZhciBidWZmZXIgPSBpbmZvLmluUXVldWUuc2hpZnQoKTsKLSAgICAgIGlmIChs
ZW4gPCBidWZmZXIubGVuZ3RoKSB7Ci0gICAgICAgIGlmIChpbmZvLnN0cmVhbSkgewotICAgICAg
ICAgIC8vIFRoaXMgaXMgdGNwIChyZWxpYWJsZSksIHNvIGlmIG5vdCBhbGwgd2FzIHJlYWQsIGtl
ZXAgaXQKLSAgICAgICAgICBpbmZvLmluUXVldWUudW5zaGlmdChidWZmZXIuc3ViYXJyYXkobGVu
KSk7Ci0gICAgICAgIH0KLSAgICAgICAgYnVmZmVyID0gYnVmZmVyLnN1YmFycmF5KDAsIGxlbik7
Ci0gICAgICB9Ci0gICAgICBIRUFQVTguc2V0KGJ1ZmZlciwgYnVmKTsKLSAgICAgIHJldHVybiBi
dWZmZXIubGVuZ3RoOwotICAgIH0KLSAgZnVuY3Rpb24gX3ByZWFkKGZpbGRlcywgYnVmLCBuYnl0
ZSwgb2Zmc2V0KSB7Ci0gICAgICAvLyBzc2l6ZV90IHByZWFkKGludCBmaWxkZXMsIHZvaWQgKmJ1
Ziwgc2l6ZV90IG5ieXRlLCBvZmZfdCBvZmZzZXQpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Bl
bmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvcmVhZC5odG1sCi0gICAg
ICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7Ci0gICAgICBpZiAoIXN0cmVhbSkg
ewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVy
biAtMTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAgICAgIHZhciBzbGFiID0gSEVBUDg7Ci0g
ICAgICAgIHJldHVybiBGUy5yZWFkKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0ZSwgb2Zmc2V0KTsK
LSAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgRlMuaGFuZGxlRlNFcnJvcihlKTsKLSAgICAg
ICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgIH1mdW5jdGlvbiBfcmVhZChmaWxkZXMsIGJ1Ziwg
bmJ5dGUpIHsKLSAgICAgIC8vIHNzaXplX3QgcmVhZChpbnQgZmlsZGVzLCB2b2lkICpidWYsIHNp
emVfdCBuYnl0ZSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1
YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9yZWFkLmh0bWwKLSAgICAgIHZhciBzdHJlYW0gPSBGUy5n
ZXRTdHJlYW0oZmlsZGVzKTsKLSAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgIF9fX3NldEVy
ck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAg
ICAgaWYgKHN0cmVhbSAmJiAoJ3NvY2tldCcgaW4gc3RyZWFtKSkgewotICAgICAgICByZXR1cm4g
X3JlY3YoZmlsZGVzLCBidWYsIG5ieXRlLCAwKTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAg
ICAgIHZhciBzbGFiID0gSEVBUDg7Ci0gICAgICAgIHJldHVybiBGUy5yZWFkKHN0cmVhbSwgc2xh
YiwgYnVmLCBuYnl0ZSk7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEZTLmhhbmRsZUZT
RXJyb3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24gX2Zy
ZWFkKHB0ciwgc2l6ZSwgbml0ZW1zLCBzdHJlYW0pIHsKLSAgICAgIC8vIHNpemVfdCBmcmVhZCh2
b2lkICpyZXN0cmljdCBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbml0ZW1zLCBGSUxFICpyZXN0
cmljdCBzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVw
dWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZnJlYWQuaHRtbAotICAgICAgdmFyIGJ5dGVzVG9SZWFk
ID0gbml0ZW1zICogc2l6ZTsKLSAgICAgIGlmIChieXRlc1RvUmVhZCA9PSAwKSB7Ci0gICAgICAg
IHJldHVybiAwOwotICAgICAgfQotICAgICAgdmFyIGJ5dGVzUmVhZCA9IDA7Ci0gICAgICB2YXIg
c3RyZWFtT2JqID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7Ci0gICAgICB3aGlsZSAoc3RyZWFtT2Jq
LnVuZ290dGVuLmxlbmd0aCAmJiBieXRlc1RvUmVhZCA+IDApIHsKLSAgICAgICAgSEVBUDhbKChw
dHIrKyl8MCldPXN0cmVhbU9iai51bmdvdHRlbi5wb3AoKQotICAgICAgICBieXRlc1RvUmVhZC0t
OwotICAgICAgICBieXRlc1JlYWQrKzsKLSAgICAgIH0KLSAgICAgIHZhciBlcnIgPSBfcmVhZChz
dHJlYW0sIHB0ciwgYnl0ZXNUb1JlYWQpOwotICAgICAgaWYgKGVyciA9PSAtMSkgewotICAgICAg
ICBpZiAoc3RyZWFtT2JqKSBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICByZXR1cm4g
MDsKLSAgICAgIH0KLSAgICAgIGJ5dGVzUmVhZCArPSBlcnI7Ci0gICAgICBpZiAoYnl0ZXNSZWFk
IDwgYnl0ZXNUb1JlYWQpIHN0cmVhbU9iai5lb2YgPSB0cnVlOwotICAgICAgcmV0dXJuIE1hdGgu
Zmxvb3IoYnl0ZXNSZWFkIC8gc2l6ZSk7Ci0gICAgfWZ1bmN0aW9uIF9mZ2V0YyhzdHJlYW0pIHsK
LSAgICAgIC8vIGludCBmZ2V0YyhGSUxFICpzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMu
b3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZmdldGMuaHRtbAot
ICAgICAgdmFyIHN0cmVhbU9iaiA9IEZTLmdldFN0cmVhbShzdHJlYW0pOwotICAgICAgaWYgKCFz
dHJlYW1PYmopIHJldHVybiAtMTsKLSAgICAgIGlmIChzdHJlYW1PYmouZW9mIHx8IHN0cmVhbU9i
ai5lcnJvcikgcmV0dXJuIC0xOwotICAgICAgdmFyIHJldCA9IF9mcmVhZChfZmdldGMucmV0LCAx
LCAxLCBzdHJlYW0pOwotICAgICAgaWYgKHJldCA9PSAwKSB7Ci0gICAgICAgIHN0cmVhbU9iai5l
b2YgPSB0cnVlOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9IGVsc2UgaWYgKHJldCA9PSAt
MSkgewotICAgICAgICBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICByZXR1cm4gLTE7
Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gSEVBUFU4WygoX2ZnZXRjLnJldCl8MCld
OwotICAgICAgfQotICAgIH12YXIgX2dldGM9X2ZnZXRjOwotICBmdW5jdGlvbiBfX19jeGFfcHVy
ZV92aXJ0dWFsKCkgewotICAgICAgQUJPUlQgPSB0cnVlOwotICAgICAgdGhyb3cgJ1B1cmUgdmly
dHVhbCBmdW5jdGlvbiBjYWxsZWQhJzsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2Vycm5vX2xvY2F0
aW9uKCkgewotICAgICAgcmV0dXJuIF9fX2Vycm5vX3N0YXRlOwotICAgIH12YXIgX19fZXJybm89
X19fZXJybm9fbG9jYXRpb247Ci0gIHZhciBfbGx2bV9tZW1zZXRfcDBpOF9pMzI9X21lbXNldDsK
LSAgTW9kdWxlWyJfc3RybGVuIl0gPSBfc3RybGVuOwotICBmdW5jdGlvbiBfc3RyZXJyb3Jfcihl
cnJudW0sIHN0cmVycmJ1ZiwgYnVmbGVuKSB7Ci0gICAgICBpZiAoZXJybnVtIGluIEVSUk5PX01F
U1NBR0VTKSB7Ci0gICAgICAgIGlmIChFUlJOT19NRVNTQUdFU1tlcnJudW1dLmxlbmd0aCA+IGJ1
ZmxlbiAtIDEpIHsKLSAgICAgICAgICByZXR1cm4gX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRVJB
TkdFKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgbXNnID0gRVJSTk9fTUVTU0FH
RVNbZXJybnVtXTsKLSAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1zZy5sZW5ndGg7IGkr
KykgewotICAgICAgICAgICAgSEVBUDhbKCgoc3RyZXJyYnVmKSsoaSkpfDApXT1tc2cuY2hhckNv
ZGVBdChpKQotICAgICAgICAgIH0KLSAgICAgICAgICBIRUFQOFsoKChzdHJlcnJidWYpKyhpKSl8
MCldPTAKLSAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgcmV0dXJuIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICB9Ci0g
ICAgfWZ1bmN0aW9uIF9zdHJlcnJvcihlcnJudW0pIHsKLSAgICAgIGlmICghX3N0cmVycm9yLmJ1
ZmZlcikgX3N0cmVycm9yLmJ1ZmZlciA9IF9tYWxsb2MoMjU2KTsKLSAgICAgIF9zdHJlcnJvcl9y
KGVycm51bSwgX3N0cmVycm9yLmJ1ZmZlciwgMjU2KTsKLSAgICAgIHJldHVybiBfc3RyZXJyb3Iu
YnVmZmVyOwotICAgIH0KLSAgZnVuY3Rpb24gX2Fib3J0KCkgewotICAgICAgTW9kdWxlWydhYm9y
dCddKCk7Ci0gICAgfQotICBmdW5jdGlvbiBfX3JlYWxseU5lZ2F0aXZlKHgpIHsKLSAgICAgIHJl
dHVybiB4IDwgMCB8fCAoeCA9PT0gMCAmJiAoMS94KSA9PT0gLUluZmluaXR5KTsKLSAgICB9ZnVu
Y3Rpb24gX19mb3JtYXRTdHJpbmcoZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAgICB2YXIgdGV4dElu
ZGV4ID0gZm9ybWF0OwotICAgICAgdmFyIGFyZ0luZGV4ID0gMDsKLSAgICAgIGZ1bmN0aW9uIGdl
dE5leHRBcmcodHlwZSkgewotICAgICAgICAvLyBOT1RFOiBFeHBsaWNpdGx5IGlnbm9yaW5nIHR5
cGUgc2FmZXR5LiBPdGhlcndpc2UgdGhpcyBmYWlsczoKLSAgICAgICAgLy8gICAgICAgaW50IHgg
PSA0OyBwcmludGYoIiVjXG4iLCAoY2hhcil4KTsKLSAgICAgICAgdmFyIHJldDsKLSAgICAgICAg
aWYgKHR5cGUgPT09ICdkb3VibGUnKSB7Ci0gICAgICAgICAgcmV0ID0gSEVBUEY2NFsoKCh2YXJh
cmdzKSsoYXJnSW5kZXgpKT4+MyldOwotICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2k2NCcp
IHsKLSAgICAgICAgICByZXQgPSBbSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV0s
Ci0gICAgICAgICAgICAgICAgIEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgrOCkpPj4yKV1d
OwotICAgICAgICAgIGFyZ0luZGV4ICs9IDg7IC8vIGVhY2ggMzItYml0IGNodW5rIGlzIGluIGEg
NjQtYml0IGJsb2NrCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdHlwZSA9ICdpMzInOyAv
LyB2YXJhcmdzIGFyZSBhbHdheXMgaTMyLCBpNjQsIG9yIGRvdWJsZQotICAgICAgICAgIHJldCA9
IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+MildOwotICAgICAgICB9Ci0gICAgICAg
IGFyZ0luZGV4ICs9IE1hdGgubWF4KFJ1bnRpbWUuZ2V0TmF0aXZlRmllbGRTaXplKHR5cGUpLCBS
dW50aW1lLmdldEFsaWduU2l6ZSh0eXBlLCBudWxsLCB0cnVlKSk7Ci0gICAgICAgIHJldHVybiBy
ZXQ7Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0ID0gW107Ci0gICAgICB2YXIgY3VyciwgbmV4dCwg
Y3VyckFyZzsKLSAgICAgIHdoaWxlKDEpIHsKLSAgICAgICAgdmFyIHN0YXJ0VGV4dEluZGV4ID0g
dGV4dEluZGV4OwotICAgICAgICBjdXJyID0gSEVBUDhbKHRleHRJbmRleCldOwotICAgICAgICBp
ZiAoY3VyciA9PT0gMCkgYnJlYWs7Ci0gICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsx
KXwwKV07Ci0gICAgICAgIGlmIChjdXJyID09IDM3KSB7Ci0gICAgICAgICAgLy8gSGFuZGxlIGZs
YWdzLgotICAgICAgICAgIHZhciBmbGFnQWx3YXlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAg
dmFyIGZsYWdMZWZ0QWxpZ24gPSBmYWxzZTsKLSAgICAgICAgICB2YXIgZmxhZ0FsdGVybmF0aXZl
ID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGZsYWdaZXJvUGFkID0gZmFsc2U7Ci0gICAgICAgICAg
ZmxhZ3NMb29wOiB3aGlsZSAoMSkgewotICAgICAgICAgICAgc3dpdGNoIChuZXh0KSB7Ci0gICAg
ICAgICAgICAgIGNhc2UgNDM6Ci0gICAgICAgICAgICAgICAgZmxhZ0Fsd2F5c1NpZ25lZCA9IHRy
dWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIGNhc2UgNDU6Ci0gICAg
ICAgICAgICAgICAgZmxhZ0xlZnRBbGlnbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgIGNhc2UgMzU6Ci0gICAgICAgICAgICAgICAgZmxhZ0FsdGVybmF0aXZl
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgY2FzZSA0ODoK
LSAgICAgICAgICAgICAgICBpZiAoZmxhZ1plcm9QYWQpIHsKLSAgICAgICAgICAgICAgICAgIGJy
ZWFrIGZsYWdzTG9vcDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgZmxhZ1plcm9QYWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGJyZWFr
IGZsYWdzTG9vcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAg
ICAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgLy8gSGFuZGxlIHdpZHRoLgotICAgICAgICAgIHZhciB3aWR0aCA9IDA7Ci0gICAg
ICAgICAgaWYgKG5leHQgPT0gNDIpIHsKLSAgICAgICAgICAgIHdpZHRoID0gZ2V0TmV4dEFyZygn
aTMyJyk7Ci0gICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgIG5leHQgPSBIRUFQ
OFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHdo
aWxlIChuZXh0ID49IDQ4ICYmIG5leHQgPD0gNTcpIHsKLSAgICAgICAgICAgICAgd2lkdGggPSB3
aWR0aCAqIDEwICsgKG5leHQgLSA0OCk7Ci0gICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAg
ICAgICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgICAg
fQotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBIYW5kbGUgcHJlY2lzaW9uLgotICAgICAgICAg
IHZhciBwcmVjaXNpb25TZXQgPSBmYWxzZTsKLSAgICAgICAgICBpZiAobmV4dCA9PSA0Nikgewot
ICAgICAgICAgICAgdmFyIHByZWNpc2lvbiA9IDA7Ci0gICAgICAgICAgICBwcmVjaXNpb25TZXQg
PSB0cnVlOwotICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICBuZXh0ID0gSEVB
UDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgICAgaWYgKG5leHQgPT0gNDIpIHsKLSAg
ICAgICAgICAgICAgcHJlY2lzaW9uID0gZ2V0TmV4dEFyZygnaTMyJyk7Ci0gICAgICAgICAgICAg
IHRleHRJbmRleCsrOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgd2hpbGUo
MSkgewotICAgICAgICAgICAgICAgIHZhciBwcmVjaXNpb25DaHIgPSBIRUFQOFsoKHRleHRJbmRl
eCsxKXwwKV07Ci0gICAgICAgICAgICAgICAgaWYgKHByZWNpc2lvbkNociA8IDQ4IHx8Ci0gICAg
ICAgICAgICAgICAgICAgIHByZWNpc2lvbkNociA+IDU3KSBicmVhazsKLSAgICAgICAgICAgICAg
ICBwcmVjaXNpb24gPSBwcmVjaXNpb24gKiAxMCArIChwcmVjaXNpb25DaHIgLSA0OCk7Ci0gICAg
ICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHZhciBwcmVjaXNpb24gPSA2OyAvLyBTdGFuZGFyZCBkZWZh
dWx0LgotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBIYW5kbGUgaW50ZWdlciBzaXplcy4gV0FS
TklORzogVGhlc2UgYXNzdW1lIGEgMzItYml0IGFyY2hpdGVjdHVyZSEKLSAgICAgICAgICB2YXIg
YXJnU2l6ZTsKLSAgICAgICAgICBzd2l0Y2ggKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpIHsK
LSAgICAgICAgICAgIGNhc2UgJ2gnOgotICAgICAgICAgICAgICB2YXIgbmV4dE5leHQgPSBIRUFQ
OFsoKHRleHRJbmRleCsyKXwwKV07Ci0gICAgICAgICAgICAgIGlmIChuZXh0TmV4dCA9PSAxMDQp
IHsKLSAgICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgICBhcmdTaXpl
ID0gMTsgLy8gY2hhciAoYWN0dWFsbHkgaTMyIGluIHZhcmFyZ3MpCi0gICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXJnU2l6ZSA9IDI7IC8vIHNob3J0IChhY3R1YWxseSBp
MzIgaW4gdmFyYXJncykKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgJ2wnOgotICAgICAgICAgICAgICB2YXIgbmV4dE5leHQgPSBIRUFQOFso
KHRleHRJbmRleCsyKXwwKV07Ci0gICAgICAgICAgICAgIGlmIChuZXh0TmV4dCA9PSAxMDgpIHsK
LSAgICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgICBhcmdTaXplID0g
ODsgLy8gbG9uZyBsb25nCi0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
YXJnU2l6ZSA9IDQ7IC8vIGxvbmcKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgJ0wnOiAvLyBsb25nIGxvbmcKLSAgICAgICAgICAgIGNhc2Ug
J3EnOiAvLyBpbnQ2NF90Ci0gICAgICAgICAgICBjYXNlICdqJzogLy8gaW50bWF4X3QKLSAgICAg
ICAgICAgICAgYXJnU2l6ZSA9IDg7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSAneic6IC8vIHNpemVfdAotICAgICAgICAgICAgY2FzZSAndCc6IC8vIHB0cmRpZmZfdAot
ICAgICAgICAgICAgY2FzZSAnSSc6IC8vIHNpZ25lZCBwdHJkaWZmX3Qgb3IgdW5zaWduZWQgc2l6
ZV90Ci0gICAgICAgICAgICAgIGFyZ1NpemUgPSA0OwotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgIGFyZ1NpemUgPSBudWxsOwotICAgICAg
ICAgIH0KLSAgICAgICAgICBpZiAoYXJnU2l6ZSkgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgbmV4
dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICAvLyBIYW5kbGUgdHlwZSBz
cGVjaWZpZXIuCi0gICAgICAgICAgc3dpdGNoIChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKSB7
Ci0gICAgICAgICAgICBjYXNlICdkJzogY2FzZSAnaSc6IGNhc2UgJ3UnOiBjYXNlICdvJzogY2Fz
ZSAneCc6IGNhc2UgJ1gnOiBjYXNlICdwJzogewotICAgICAgICAgICAgICAvLyBJbnRlZ2VyLgot
ICAgICAgICAgICAgICB2YXIgc2lnbmVkID0gbmV4dCA9PSAxMDAgfHwgbmV4dCA9PSAxMDU7Ci0g
ICAgICAgICAgICAgIGFyZ1NpemUgPSBhcmdTaXplIHx8IDQ7Ci0gICAgICAgICAgICAgIHZhciBj
dXJyQXJnID0gZ2V0TmV4dEFyZygnaScgKyAoYXJnU2l6ZSAqIDgpKTsKLSAgICAgICAgICAgICAg
dmFyIG9yaWdBcmcgPSBjdXJyQXJnOwotICAgICAgICAgICAgICB2YXIgYXJnVGV4dDsKLSAgICAg
ICAgICAgICAgLy8gRmxhdHRlbiBpNjQtMSBbbG93LCBoaWdoXSBpbnRvIGEgKHNsaWdodGx5IHJv
dW5kZWQpIGRvdWJsZQotICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4KSB7Ci0gICAgICAg
ICAgICAgICAgY3VyckFyZyA9IFJ1bnRpbWUubWFrZUJpZ0ludChjdXJyQXJnWzBdLCBjdXJyQXJn
WzFdLCBuZXh0ID09IDExNyk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gVHJ1
bmNhdGUgdG8gcmVxdWVzdGVkIHNpemUuCi0gICAgICAgICAgICAgIGlmIChhcmdTaXplIDw9IDQp
IHsKLSAgICAgICAgICAgICAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyNTYsIGFyZ1NpemUpIC0g
MTsKLSAgICAgICAgICAgICAgICBjdXJyQXJnID0gKHNpZ25lZCA/IHJlU2lnbiA6IHVuU2lnbiko
Y3VyckFyZyAmIGxpbWl0LCBhcmdTaXplICogOCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgLy8gRm9ybWF0IHRoZSBudW1iZXIuCi0gICAgICAgICAgICAgIHZhciBjdXJyQWJzQXJn
ID0gTWF0aC5hYnMoY3VyckFyZyk7Ci0gICAgICAgICAgICAgIHZhciBwcmVmaXggPSAnJzsKLSAg
ICAgICAgICAgICAgaWYgKG5leHQgPT0gMTAwIHx8IG5leHQgPT0gMTA1KSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKGFyZ1NpemUgPT0gOCAmJiBpNjRNYXRoKSBhcmdUZXh0ID0gaTY0TWF0aC5zdHJp
bmdpZnkob3JpZ0FyZ1swXSwgb3JpZ0FyZ1sxXSwgbnVsbCk7IGVsc2UKLSAgICAgICAgICAgICAg
ICBhcmdUZXh0ID0gcmVTaWduKGN1cnJBcmcsIDggKiBhcmdTaXplLCAxKS50b1N0cmluZygxMCk7
Ci0gICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMTcpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoYXJnU2l6ZSA9PSA4ICYmIGk2NE1hdGgpIGFyZ1RleHQgPSBpNjRNYXRoLnN0cmluZ2lm
eShvcmlnQXJnWzBdLCBvcmlnQXJnWzFdLCB0cnVlKTsgZWxzZQotICAgICAgICAgICAgICAgIGFy
Z1RleHQgPSB1blNpZ24oY3VyckFyZywgOCAqIGFyZ1NpemUsIDEpLnRvU3RyaW5nKDEwKTsKLSAg
ICAgICAgICAgICAgICBjdXJyQXJnID0gTWF0aC5hYnMoY3VyckFyZyk7Ci0gICAgICAgICAgICAg
IH0gZWxzZSBpZiAobmV4dCA9PSAxMTEpIHsKLSAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKGZs
YWdBbHRlcm5hdGl2ZSA/ICcwJyA6ICcnKSArIGN1cnJBYnNBcmcudG9TdHJpbmcoOCk7Ci0gICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMjAgfHwgbmV4dCA9PSA4OCkgewotICAgICAg
ICAgICAgICAgIHByZWZpeCA9IChmbGFnQWx0ZXJuYXRpdmUgJiYgY3VyckFyZyAhPSAwKSA/ICcw
eCcgOiAnJzsKLSAgICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4ICYmIGk2NE1hdGgpIHsK
LSAgICAgICAgICAgICAgICAgIGlmIChvcmlnQXJnWzFdKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGFyZ1RleHQgPSAob3JpZ0FyZ1sxXT4+PjApLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAgICAg
ICAgICAgdmFyIGxvd2VyID0gKG9yaWdBcmdbMF0+Pj4wKS50b1N0cmluZygxNik7Ci0gICAgICAg
ICAgICAgICAgICAgIHdoaWxlIChsb3dlci5sZW5ndGggPCA4KSBsb3dlciA9ICcwJyArIGxvd2Vy
OwotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9IGxvd2VyOwotICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChvcmlnQXJnWzBdPj4+
MCkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgICAgIGlmIChjdXJyQXJnIDwgMCkgewotICAgICAgICAgICAgICAg
ICAgLy8gUmVwcmVzZW50IG5lZ2F0aXZlIG51bWJlcnMgaW4gaGV4IGFzIDIncyBjb21wbGVtZW50
LgotICAgICAgICAgICAgICAgICAgY3VyckFyZyA9IC1jdXJyQXJnOwotICAgICAgICAgICAgICAg
ICAgYXJnVGV4dCA9IChjdXJyQWJzQXJnIC0gMSkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAg
ICAgICAgdmFyIGJ1ZmZlciA9IFtdOwotICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBhcmdUZXh0Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5w
dXNoKCgweEYgLSBwYXJzZUludChhcmdUZXh0W2ldLCAxNikpLnRvU3RyaW5nKDE2KSk7Ci0gICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gYnVmZmVyLmpvaW4o
JycpOwotICAgICAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwgYXJnU2l6ZSAq
IDIpIGFyZ1RleHQgPSAnZicgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gY3VyckFic0FyZy50b1N0cmluZygxNik7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDg4KSB7Ci0gICAgICAg
ICAgICAgICAgICBwcmVmaXggPSBwcmVmaXgudG9VcHBlckNhc2UoKTsKLSAgICAgICAgICAgICAg
ICAgIGFyZ1RleHQgPSBhcmdUZXh0LnRvVXBwZXJDYXNlKCk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTEyKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGN1cnJBYnNBcmcgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnKG5p
bCknOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwcmVmaXgg
PSAnMHgnOwotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBYnNBcmcudG9TdHJpbmco
MTYpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBp
ZiAocHJlY2lzaW9uU2V0KSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3Ro
IDwgcHJlY2lzaW9uKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJzAnICsgYXJnVGV4
dDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8g
QWRkIHNpZ24gaWYgbmVlZGVkCi0gICAgICAgICAgICAgIGlmIChmbGFnQWx3YXlzU2lnbmVkKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKGN1cnJBcmcgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICBw
cmVmaXggPSAnLScgKyBwcmVmaXg7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgIHByZWZpeCA9ICcrJyArIHByZWZpeDsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gQWRkIHBhZGRpbmcuCi0gICAgICAgICAgICAg
IHdoaWxlIChwcmVmaXgubGVuZ3RoICsgYXJnVGV4dC5sZW5ndGggPCB3aWR0aCkgewotICAgICAg
ICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0
ICs9ICcgJzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYg
KGZsYWdaZXJvUGFkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnMCcgKyBhcmdU
ZXh0OwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcHJl
Zml4ID0gJyAnICsgcHJlZml4OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBJbnNlcnQgdGhlIHJlc3VsdCBp
bnRvIHRoZSBidWZmZXIuCi0gICAgICAgICAgICAgIGFyZ1RleHQgPSBwcmVmaXggKyBhcmdUZXh0
OwotICAgICAgICAgICAgICBhcmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNocikg
ewotICAgICAgICAgICAgICAgIHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgY2FzZSAnZic6IGNhc2UgJ0YnOiBjYXNlICdlJzogY2FzZSAnRSc6IGNhc2UgJ2cnOiBjYXNl
ICdHJzogewotICAgICAgICAgICAgICAvLyBGbG9hdC4KLSAgICAgICAgICAgICAgdmFyIGN1cnJB
cmcgPSBnZXROZXh0QXJnKCdkb3VibGUnKTsKLSAgICAgICAgICAgICAgdmFyIGFyZ1RleHQ7Ci0g
ICAgICAgICAgICAgIGlmIChpc05hTihjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgIGFyZ1Rl
eHQgPSAnbmFuJzsKLSAgICAgICAgICAgICAgICBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKCFpc0Zpbml0ZShjdXJyQXJnKSkgewotICAgICAgICAgICAgICAg
IGFyZ1RleHQgPSAoY3VyckFyZyA8IDAgPyAnLScgOiAnJykgKyAnaW5mJzsKLSAgICAgICAgICAg
ICAgICBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHZhciBpc0dlbmVyYWwgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB2YXIgZWZm
ZWN0aXZlUHJlY2lzaW9uID0gTWF0aC5taW4ocHJlY2lzaW9uLCAyMCk7Ci0gICAgICAgICAgICAg
ICAgLy8gQ29udmVydCBnL0cgdG8gZi9GIG9yIGUvRSwgYXMgcGVyOgotICAgICAgICAgICAgICAg
IC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L2Z1bmN0
aW9ucy9wcmludGYuaHRtbAotICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDEwMyB8fCBuZXh0
ID09IDcxKSB7Ci0gICAgICAgICAgICAgICAgICBpc0dlbmVyYWwgPSB0cnVlOwotICAgICAgICAg
ICAgICAgICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uIHx8IDE7Ci0gICAgICAgICAgICAgICAgICB2
YXIgZXhwb25lbnQgPSBwYXJzZUludChjdXJyQXJnLnRvRXhwb25lbnRpYWwoZWZmZWN0aXZlUHJl
Y2lzaW9uKS5zcGxpdCgnZScpWzFdLCAxMCk7Ci0gICAgICAgICAgICAgICAgICBpZiAocHJlY2lz
aW9uID4gZXhwb25lbnQgJiYgZXhwb25lbnQgPj0gLTQpIHsKLSAgICAgICAgICAgICAgICAgICAg
bmV4dCA9ICgobmV4dCA9PSAxMDMpID8gJ2YnIDogJ0YnKS5jaGFyQ29kZUF0KDApOwotICAgICAg
ICAgICAgICAgICAgICBwcmVjaXNpb24gLT0gZXhwb25lbnQgKyAxOwotICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbmV4dCA9ICgobmV4dCA9PSAxMDMpID8g
J2UnIDogJ0UnKS5jaGFyQ29kZUF0KDApOwotICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb24t
LTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGVmZmVjdGl2ZVByZWNp
c2lvbiA9IE1hdGgubWluKHByZWNpc2lvbiwgMjApOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBpZiAobmV4dCA9PSAxMDEgfHwgbmV4dCA9PSA2OSkgewotICAgICAgICAgICAg
ICAgICAgYXJnVGV4dCA9IGN1cnJBcmcudG9FeHBvbmVudGlhbChlZmZlY3RpdmVQcmVjaXNpb24p
OwotICAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBleHBvbmVudCBoYXMgYXQgbGVh
c3QgMiBkaWdpdHMuCi0gICAgICAgICAgICAgICAgICBpZiAoL1tlRV1bLStdXGQkLy50ZXN0KGFy
Z1RleHQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBhcmdUZXh0LnNsaWNlKDAs
IC0xKSArICcwJyArIGFyZ1RleHQuc2xpY2UoLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMDIgfHwgbmV4dCA9PSA3MCkgewotICAg
ICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBcmcudG9GaXhlZChlZmZlY3RpdmVQcmVjaXNp
b24pOwotICAgICAgICAgICAgICAgICAgaWYgKGN1cnJBcmcgPT09IDAgJiYgX19yZWFsbHlOZWdh
dGl2ZShjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJy0nICsgYXJn
VGV4dDsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgdmFyIHBhcnRzID0gYXJnVGV4dC5zcGxpdCgnZScpOwotICAgICAgICAgICAgICAgIGlm
IChpc0dlbmVyYWwgJiYgIWZsYWdBbHRlcm5hdGl2ZSkgewotICAgICAgICAgICAgICAgICAgLy8g
RGlzY2FyZCB0cmFpbGluZyB6ZXJvcyBhbmQgcGVyaW9kcy4KLSAgICAgICAgICAgICAgICAgIHdo
aWxlIChwYXJ0c1swXS5sZW5ndGggPiAxICYmIHBhcnRzWzBdLmluZGV4T2YoJy4nKSAhPSAtMSAm
JgotICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJ0c1swXS5zbGljZSgtMSkgPT0gJzAnIHx8
IHBhcnRzWzBdLnNsaWNlKC0xKSA9PSAnLicpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhcnRz
WzBdID0gcGFydHNbMF0uc2xpY2UoMCwgLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2
ZSBhIHBlcmlvZCBpbiBhbHRlcm5hdGl2ZSBtb2RlLgotICAgICAgICAgICAgICAgICAgaWYgKGZs
YWdBbHRlcm5hdGl2ZSAmJiBhcmdUZXh0LmluZGV4T2YoJy4nKSA9PSAtMSkgcGFydHNbMF0gKz0g
Jy4nOwotICAgICAgICAgICAgICAgICAgLy8gWmVybyBwYWQgdW50aWwgcmVxdWlyZWQgcHJlY2lz
aW9uLgotICAgICAgICAgICAgICAgICAgd2hpbGUgKHByZWNpc2lvbiA+IGVmZmVjdGl2ZVByZWNp
c2lvbisrKSBwYXJ0c1swXSArPSAnMCc7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIGFyZ1RleHQgPSBwYXJ0c1swXSArIChwYXJ0cy5sZW5ndGggPiAxID8gJ2UnICsgcGFydHNb
MV0gOiAnJyk7Ci0gICAgICAgICAgICAgICAgLy8gQ2FwaXRhbGl6ZSAnRScgaWYgbmVlZGVkLgot
ICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDY5KSBhcmdUZXh0ID0gYXJnVGV4dC50b1VwcGVy
Q2FzZSgpOwotICAgICAgICAgICAgICAgIC8vIEFkZCBzaWduLgotICAgICAgICAgICAgICAgIGlm
IChmbGFnQWx3YXlzU2lnbmVkICYmIGN1cnJBcmcgPj0gMCkgewotICAgICAgICAgICAgICAgICAg
YXJnVGV4dCA9ICcrJyArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nLgotICAgICAgICAgICAgICB3aGlsZSAo
YXJnVGV4dC5sZW5ndGggPCB3aWR0aCkgewotICAgICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFs
aWduKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9ICcgJzsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFkICYmIChhcmdUZXh0
WzBdID09ICctJyB8fCBhcmdUZXh0WzBdID09ICcrJykpIHsKLSAgICAgICAgICAgICAgICAgICAg
YXJnVGV4dCA9IGFyZ1RleHRbMF0gKyAnMCcgKyBhcmdUZXh0LnNsaWNlKDEpOwotICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChmbGFnWmVy
b1BhZCA/ICcwJyA6ICcgJykgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBBZGp1c3QgY2Fz
ZS4KLSAgICAgICAgICAgICAgaWYgKG5leHQgPCA5NykgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBl
ckNhc2UoKTsKLSAgICAgICAgICAgICAgLy8gSW5zZXJ0IHRoZSByZXN1bHQgaW50byB0aGUgYnVm
ZmVyLgotICAgICAgICAgICAgICBhcmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNo
cikgewotICAgICAgICAgICAgICAgIHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgY2FzZSAncyc6IHsKLSAgICAgICAgICAgICAgLy8gU3RyaW5nLgotICAgICAgICAgICAg
ICB2YXIgYXJnID0gZ2V0TmV4dEFyZygnaTgqJyk7Ci0gICAgICAgICAgICAgIHZhciBhcmdMZW5n
dGggPSBhcmcgPyBfc3RybGVuKGFyZykgOiAnKG51bGwpJy5sZW5ndGg7Ci0gICAgICAgICAgICAg
IGlmIChwcmVjaXNpb25TZXQpIGFyZ0xlbmd0aCA9IE1hdGgubWluKGFyZ0xlbmd0aCwgcHJlY2lz
aW9uKTsKLSAgICAgICAgICAgICAgaWYgKCFmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAg
ICAgd2hpbGUgKGFyZ0xlbmd0aCA8IHdpZHRoLS0pIHsKLSAgICAgICAgICAgICAgICAgIHJldC5w
dXNoKDMyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgaWYgKGFyZykgewotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJnTGVu
Z3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKEhFQVBVOFsoKGFyZysrKXww
KV0pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICByZXQgPSByZXQuY29uY2F0KGludEFycmF5RnJvbVN0cmluZygnKG51bGwpJy5zdWJz
dHIoMCwgYXJnTGVuZ3RoKSwgdHJ1ZSkpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IGlmIChmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ0xlbmd0aCA8
IHdpZHRoLS0pIHsKLSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKDMyKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBjYXNlICdjJzogewotICAgICAgICAgICAgICAvLyBDaGFyYWN0ZXIu
Ci0gICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSByZXQucHVzaChnZXROZXh0QXJnKCdp
OCcpKTsKLSAgICAgICAgICAgICAgd2hpbGUgKC0td2lkdGggPiAwKSB7Ci0gICAgICAgICAgICAg
ICAgcmV0LnB1c2goMzIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmICghZmxh
Z0xlZnRBbGlnbikgcmV0LnB1c2goZ2V0TmV4dEFyZygnaTgnKSk7Ci0gICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnbic6IHsKLSAgICAgICAgICAg
ICAgLy8gV3JpdGUgdGhlIGxlbmd0aCB3cml0dGVuIHNvIGZhciB0byB0aGUgbmV4dCBwYXJhbWV0
ZXIuCi0gICAgICAgICAgICAgIHZhciBwdHIgPSBnZXROZXh0QXJnKCdpMzIqJyk7Ci0gICAgICAg
ICAgICAgIEhFQVAzMlsoKHB0cik+PjIpXT1yZXQubGVuZ3RoCi0gICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnJSc6IHsKLSAgICAgICAgICAgICAg
Ly8gTGl0ZXJhbCBwZXJjZW50IHNpZ24uCi0gICAgICAgICAgICAgIHJldC5wdXNoKGN1cnIpOwot
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRlZmF1bHQ6
IHsKLSAgICAgICAgICAgICAgLy8gVW5rbm93biBzcGVjaWZpZXJzIHJlbWFpbiB1bnRvdWNoZWQu
Ci0gICAgICAgICAgICAgIGZvciAodmFyIGkgPSBzdGFydFRleHRJbmRleDsgaSA8IHRleHRJbmRl
eCArIDI7IGkrKykgewotICAgICAgICAgICAgICAgIHJldC5wdXNoKEhFQVA4WyhpKV0pOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHRleHRJ
bmRleCArPSAyOwotICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQgYS9BIChoZXggZmxvYXQpIGFu
ZCBtIChsYXN0IGVycm9yKSBzcGVjaWZpZXJzLgotICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQg
JTEke3NwZWNpZmllcn0gZm9yIGFyZyBzZWxlY3Rpb24uCi0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgcmV0LnB1c2goY3Vycik7Ci0gICAgICAgICAgdGV4dEluZGV4ICs9IDE7Ci0gICAgICAg
IH0KLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfWZ1bmN0aW9uIF9zbnByaW50Zihz
LCBuLCBmb3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzbnByaW50ZihjaGFyICpyZXN0
cmljdCBzLCBzaXplX3QgbiwgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCAuLi4pOwotICAg
ICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5j
dGlvbnMvcHJpbnRmLmh0bWwKLSAgICAgIHZhciByZXN1bHQgPSBfX2Zvcm1hdFN0cmluZyhmb3Jt
YXQsIHZhcmFyZ3MpOwotICAgICAgdmFyIGxpbWl0ID0gKG4gPT09IHVuZGVmaW5lZCkgPyByZXN1
bHQubGVuZ3RoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE1hdGgubWlu
KHJlc3VsdC5sZW5ndGgsIE1hdGgubWF4KG4gLSAxLCAwKSk7Ci0gICAgICBpZiAocyA8IDApIHsK
LSAgICAgICAgcyA9IC1zOwotICAgICAgICB2YXIgYnVmID0gX21hbGxvYyhsaW1pdCsxKTsKLSAg
ICAgICAgSEVBUDMyWygocyk+PjIpXT1idWY7Ci0gICAgICAgIHMgPSBidWY7Ci0gICAgICB9Ci0g
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbWl0OyBpKyspIHsKLSAgICAgICAgSEVBUDhbKCgo
cykrKGkpKXwwKV09cmVzdWx0W2ldOwotICAgICAgfQotICAgICAgaWYgKGxpbWl0IDwgbiB8fCAo
biA9PT0gdW5kZWZpbmVkKSkgSEVBUDhbKCgocykrKGkpKXwwKV09MDsKLSAgICAgIHJldHVybiBy
ZXN1bHQubGVuZ3RoOwotICAgIH0KLSAgZnVuY3Rpb24gX3N5c2NvbmYobmFtZSkgewotICAgICAg
Ly8gbG9uZyBzeXNjb25mKGludCBuYW1lKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91
cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3N5c2NvbmYuaHRtbAotICAgICAg
c3dpdGNoKG5hbWUpIHsKLSAgICAgICAgY2FzZSA4OiByZXR1cm4gUEFHRV9TSVpFOwotICAgICAg
ICBjYXNlIDU0OgotICAgICAgICBjYXNlIDU2OgotICAgICAgICBjYXNlIDIxOgotICAgICAgICBj
YXNlIDYxOgotICAgICAgICBjYXNlIDYzOgotICAgICAgICBjYXNlIDIyOgotICAgICAgICBjYXNl
IDY3OgotICAgICAgICBjYXNlIDIzOgotICAgICAgICBjYXNlIDI0OgotICAgICAgICBjYXNlIDI1
OgotICAgICAgICBjYXNlIDI2OgotICAgICAgICBjYXNlIDI3OgotICAgICAgICBjYXNlIDY5Ogot
ICAgICAgICBjYXNlIDI4OgotICAgICAgICBjYXNlIDEwMToKLSAgICAgICAgY2FzZSA3MDoKLSAg
ICAgICAgY2FzZSA3MToKLSAgICAgICAgY2FzZSAyOToKLSAgICAgICAgY2FzZSAzMDoKLSAgICAg
ICAgY2FzZSAxOTk6Ci0gICAgICAgIGNhc2UgNzU6Ci0gICAgICAgIGNhc2UgNzY6Ci0gICAgICAg
IGNhc2UgMzI6Ci0gICAgICAgIGNhc2UgNDM6Ci0gICAgICAgIGNhc2UgNDQ6Ci0gICAgICAgIGNh
c2UgODA6Ci0gICAgICAgIGNhc2UgNDY6Ci0gICAgICAgIGNhc2UgNDc6Ci0gICAgICAgIGNhc2Ug
NDU6Ci0gICAgICAgIGNhc2UgNDg6Ci0gICAgICAgIGNhc2UgNDk6Ci0gICAgICAgIGNhc2UgNDI6
Ci0gICAgICAgIGNhc2UgODI6Ci0gICAgICAgIGNhc2UgMzM6Ci0gICAgICAgIGNhc2UgNzoKLSAg
ICAgICAgY2FzZSAxMDg6Ci0gICAgICAgIGNhc2UgMTA5OgotICAgICAgICBjYXNlIDEwNzoKLSAg
ICAgICAgY2FzZSAxMTI6Ci0gICAgICAgIGNhc2UgMTE5OgotICAgICAgICBjYXNlIDEyMToKLSAg
ICAgICAgICByZXR1cm4gMjAwODA5OwotICAgICAgICBjYXNlIDEzOgotICAgICAgICBjYXNlIDEw
NDoKLSAgICAgICAgY2FzZSA5NDoKLSAgICAgICAgY2FzZSA5NToKLSAgICAgICAgY2FzZSAzNDoK
LSAgICAgICAgY2FzZSAzNToKLSAgICAgICAgY2FzZSA3NzoKLSAgICAgICAgY2FzZSA4MToKLSAg
ICAgICAgY2FzZSA4MzoKLSAgICAgICAgY2FzZSA4NDoKLSAgICAgICAgY2FzZSA4NToKLSAgICAg
ICAgY2FzZSA4NjoKLSAgICAgICAgY2FzZSA4NzoKLSAgICAgICAgY2FzZSA4ODoKLSAgICAgICAg
Y2FzZSA4OToKLSAgICAgICAgY2FzZSA5MDoKLSAgICAgICAgY2FzZSA5MToKLSAgICAgICAgY2Fz
ZSA5NDoKLSAgICAgICAgY2FzZSA5NToKLSAgICAgICAgY2FzZSAxMTA6Ci0gICAgICAgIGNhc2Ug
MTExOgotICAgICAgICBjYXNlIDExMzoKLSAgICAgICAgY2FzZSAxMTQ6Ci0gICAgICAgIGNhc2Ug
MTE1OgotICAgICAgICBjYXNlIDExNjoKLSAgICAgICAgY2FzZSAxMTc6Ci0gICAgICAgIGNhc2Ug
MTE4OgotICAgICAgICBjYXNlIDEyMDoKLSAgICAgICAgY2FzZSA0MDoKLSAgICAgICAgY2FzZSAx
NjoKLSAgICAgICAgY2FzZSA3OToKLSAgICAgICAgY2FzZSAxOToKLSAgICAgICAgICByZXR1cm4g
LTE7Ci0gICAgICAgIGNhc2UgOTI6Ci0gICAgICAgIGNhc2UgOTM6Ci0gICAgICAgIGNhc2UgNToK
LSAgICAgICAgY2FzZSA3MjoKLSAgICAgICAgY2FzZSA2OgotICAgICAgICBjYXNlIDc0OgotICAg
ICAgICBjYXNlIDkyOgotICAgICAgICBjYXNlIDkzOgotICAgICAgICBjYXNlIDk2OgotICAgICAg
ICBjYXNlIDk3OgotICAgICAgICBjYXNlIDk4OgotICAgICAgICBjYXNlIDk5OgotICAgICAgICBj
YXNlIDEwMjoKLSAgICAgICAgY2FzZSAxMDM6Ci0gICAgICAgIGNhc2UgMTA1OgotICAgICAgICAg
IHJldHVybiAxOwotICAgICAgICBjYXNlIDM4OgotICAgICAgICBjYXNlIDY2OgotICAgICAgICBj
YXNlIDUwOgotICAgICAgICBjYXNlIDUxOgotICAgICAgICBjYXNlIDQ6Ci0gICAgICAgICAgcmV0
dXJuIDEwMjQ7Ci0gICAgICAgIGNhc2UgMTU6Ci0gICAgICAgIGNhc2UgNjQ6Ci0gICAgICAgIGNh
c2UgNDE6Ci0gICAgICAgICAgcmV0dXJuIDMyOwotICAgICAgICBjYXNlIDU1OgotICAgICAgICBj
YXNlIDM3OgotICAgICAgICBjYXNlIDE3OgotICAgICAgICAgIHJldHVybiAyMTQ3NDgzNjQ3Owot
ICAgICAgICBjYXNlIDE4OgotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgcmV0dXJuIDQ3ODM5
OwotICAgICAgICBjYXNlIDU5OgotICAgICAgICBjYXNlIDU3OgotICAgICAgICAgIHJldHVybiA5
OTsKLSAgICAgICAgY2FzZSA2ODoKLSAgICAgICAgY2FzZSA1ODoKLSAgICAgICAgICByZXR1cm4g
MjA0ODsKLSAgICAgICAgY2FzZSAwOiByZXR1cm4gMjA5NzE1MjsKLSAgICAgICAgY2FzZSAzOiBy
ZXR1cm4gNjU1MzY7Ci0gICAgICAgIGNhc2UgMTQ6IHJldHVybiAzMjc2ODsKLSAgICAgICAgY2Fz
ZSA3MzogcmV0dXJuIDMyNzY3OwotICAgICAgICBjYXNlIDM5OiByZXR1cm4gMTYzODQ7Ci0gICAg
ICAgIGNhc2UgNjA6IHJldHVybiAxMDAwOwotICAgICAgICBjYXNlIDEwNjogcmV0dXJuIDcwMDsK
LSAgICAgICAgY2FzZSA1MjogcmV0dXJuIDI1NjsKLSAgICAgICAgY2FzZSA2MjogcmV0dXJuIDI1
NTsKLSAgICAgICAgY2FzZSAyOiByZXR1cm4gMTAwOwotICAgICAgICBjYXNlIDY1OiByZXR1cm4g
NjQ7Ci0gICAgICAgIGNhc2UgMzY6IHJldHVybiAyMDsKLSAgICAgICAgY2FzZSAxMDA6IHJldHVy
biAxNjsKLSAgICAgICAgY2FzZSAyMDogcmV0dXJuIDY7Ci0gICAgICAgIGNhc2UgNTM6IHJldHVy
biA0OwotICAgICAgICBjYXNlIDEwOiByZXR1cm4gMTsKLSAgICAgIH0KLSAgICAgIF9fX3NldEVy
ck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotICBmdW5j
dGlvbiBfX19jeGFfZ3VhcmRfYWJvcnQoKSB7fQotICBmdW5jdGlvbiBfaXN4ZGlnaXQoY2hyKSB7
Ci0gICAgICByZXR1cm4gKGNociA+PSA0OCAmJiBjaHIgPD0gNTcpIHx8Ci0gICAgICAgICAgICAg
KGNociA+PSA5NyAmJiBjaHIgPD0gMTAyKSB8fAotICAgICAgICAgICAgIChjaHIgPj0gNjUgJiYg
Y2hyIDw9IDcwKTsKLSAgICB9dmFyIF9pc3hkaWdpdF9sPV9pc3hkaWdpdDsKLSAgZnVuY3Rpb24g
X2lzZGlnaXQoY2hyKSB7Ci0gICAgICByZXR1cm4gY2hyID49IDQ4ICYmIGNociA8PSA1NzsKLSAg
ICB9dmFyIF9pc2RpZ2l0X2w9X2lzZGlnaXQ7Ci0gIGZ1bmN0aW9uIF9faXNGbG9hdCh0ZXh0KSB7
Ci0gICAgICByZXR1cm4gISEoL15bKy1dP1swLTldKlwuP1swLTldKyhbZUVdWystXT9bMC05XSsp
PyQvLmV4ZWModGV4dCkpOwotICAgIH1mdW5jdGlvbiBfX3NjYW5TdHJpbmcoZm9ybWF0LCBnZXQs
IHVuZ2V0LCB2YXJhcmdzKSB7Ci0gICAgICBpZiAoIV9fc2NhblN0cmluZy53aGl0ZVNwYWNlKSB7
Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlID0ge307Ci0gICAgICAgIF9fc2NhblN0
cmluZy53aGl0ZVNwYWNlWzMyXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNl
WzldID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTBdID0gMTsKLSAgICAg
ICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTFdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5n
LndoaXRlU3BhY2VbMTJdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTNd
ID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJyAnXSA9IDE7Ci0gICAgICAg
IF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcdCddID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5n
LndoaXRlU3BhY2VbJ1xuJ10gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsn
XHYnXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcZiddID0gMTsKLSAg
ICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJ1xyJ10gPSAxOwotICAgICAgfQotICAgICAg
Ly8gU3VwcG9ydHMgJXgsICU0eCwgJWQuJWQsICVsbGQsICVzLCAlZiwgJWxmLgotICAgICAgLy8g
VE9ETzogU3VwcG9ydCBhbGwgZm9ybWF0IHNwZWNpZmllcnMuCi0gICAgICBmb3JtYXQgPSBQb2lu
dGVyX3N0cmluZ2lmeShmb3JtYXQpOwotICAgICAgdmFyIHNvRmFyID0gMDsKLSAgICAgIGlmIChm
b3JtYXQuaW5kZXhPZignJW4nKSA+PSAwKSB7Ci0gICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgc29G
YXIKLSAgICAgICAgdmFyIF9nZXQgPSBnZXQ7Ci0gICAgICAgIGdldCA9IGZ1bmN0aW9uKCkgewot
ICAgICAgICAgIHNvRmFyKys7Ci0gICAgICAgICAgcmV0dXJuIF9nZXQoKTsKLSAgICAgICAgfQot
ICAgICAgICB2YXIgX3VuZ2V0ID0gdW5nZXQ7Ci0gICAgICAgIHVuZ2V0ID0gZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgc29GYXItLTsKLSAgICAgICAgICByZXR1cm4gX3VuZ2V0KCk7Ci0gICAgICAg
IH0KLSAgICAgIH0KLSAgICAgIHZhciBmb3JtYXRJbmRleCA9IDA7Ci0gICAgICB2YXIgYXJnc2kg
PSAwOwotICAgICAgdmFyIGZpZWxkcyA9IDA7Ci0gICAgICB2YXIgYXJnSW5kZXggPSAwOwotICAg
ICAgdmFyIG5leHQ7Ci0gICAgICBtYWluTG9vcDoKLSAgICAgIGZvciAodmFyIGZvcm1hdEluZGV4
ID0gMDsgZm9ybWF0SW5kZXggPCBmb3JtYXQubGVuZ3RoOykgewotICAgICAgICBpZiAoZm9ybWF0
W2Zvcm1hdEluZGV4XSA9PT0gJyUnICYmIGZvcm1hdFtmb3JtYXRJbmRleCsxXSA9PSAnbicpIHsK
LSAgICAgICAgICB2YXIgYXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4y
KV07Ci0gICAgICAgICAgYXJnSW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywg
bnVsbCwgdHJ1ZSk7Ci0gICAgICAgICAgSEVBUDMyWygoYXJnUHRyKT4+MildPXNvRmFyOwotICAg
ICAgICAgIGZvcm1hdEluZGV4ICs9IDI7Ci0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT09ICclJykgewotICAgICAgICAgIHZh
ciBuZXh0QyA9IGZvcm1hdC5pbmRleE9mKCdjJywgZm9ybWF0SW5kZXgrMSk7Ci0gICAgICAgICAg
aWYgKG5leHRDID4gMCkgewotICAgICAgICAgICAgdmFyIG1heHggPSAxOwotICAgICAgICAgICAg
aWYgKG5leHRDID4gZm9ybWF0SW5kZXgrMSkgewotICAgICAgICAgICAgICB2YXIgc3ViID0gZm9y
bWF0LnN1YnN0cmluZyhmb3JtYXRJbmRleCsxLCBuZXh0QykKLSAgICAgICAgICAgICAgbWF4eCA9
IHBhcnNlSW50KHN1Yik7Ci0gICAgICAgICAgICAgIGlmIChtYXh4ICE9IHN1YikgbWF4eCA9IDA7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobWF4eCkgewotICAgICAgICAgICAgICB2
YXIgYXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07Ci0gICAgICAg
ICAgICAgIGFyZ0luZGV4ICs9IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKCd2b2lkKicsIG51bGwsIHRy
dWUpOwotICAgICAgICAgICAgICBmaWVsZHMrKzsKLSAgICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBtYXh4OyBpKyspIHsKLSAgICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAg
ICAgICAgICAgICAgSEVBUDhbKChhcmdQdHIrKyl8MCldPW5leHQ7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgZm9ybWF0SW5kZXggKz0gbmV4dEMgLSBmb3JtYXRJbmRleCArIDE7Ci0g
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICAvLyByZW1vdmUgd2hpdGVzcGFjZQotICAgICAgICB3aGlsZSAoMSkgewot
ICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICBpZiAobmV4dCA9PSAwKSByZXR1cm4g
ZmllbGRzOwotICAgICAgICAgIGlmICghKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2Up
KSBicmVhazsKLSAgICAgICAgfQotICAgICAgICB1bmdldCgpOwotICAgICAgICBpZiAoZm9ybWF0
W2Zvcm1hdEluZGV4XSA9PT0gJyUnKSB7Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAg
ICAgICB2YXIgc3VwcHJlc3NBc3NpZ25tZW50ID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKGZvcm1h
dFtmb3JtYXRJbmRleF0gPT0gJyonKSB7Ci0gICAgICAgICAgICBzdXBwcmVzc0Fzc2lnbm1lbnQg
PSB0cnVlOwotICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgdmFyIG1heFNwZWNpZmllclN0YXJ0ID0gZm9ybWF0SW5kZXg7Ci0gICAgICAgICAgd2hpbGUg
KGZvcm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSA+PSA0OCAmJgotICAgICAgICAgICAg
ICAgICBmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkgPD0gNTcpIHsKLSAgICAgICAg
ICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBtYXhfOwotICAg
ICAgICAgIGlmIChmb3JtYXRJbmRleCAhPSBtYXhTcGVjaWZpZXJTdGFydCkgewotICAgICAgICAg
ICAgbWF4XyA9IHBhcnNlSW50KGZvcm1hdC5zbGljZShtYXhTcGVjaWZpZXJTdGFydCwgZm9ybWF0
SW5kZXgpLCAxMCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBsb25nXyA9IGZhbHNlOwot
ICAgICAgICAgIHZhciBoYWxmID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGxvbmdMb25nID0gZmFs
c2U7Ci0gICAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2wnKSB7Ci0gICAgICAg
ICAgICBsb25nXyA9IHRydWU7Ci0gICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAg
ICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2wnKSB7Ci0gICAgICAgICAgICAgIGxvbmdM
b25nID0gdHJ1ZTsKLSAgICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2gnKSB7Ci0gICAg
ICAgICAgICBoYWxmID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAg
ICAgfQotICAgICAgICAgIHZhciB0eXBlID0gZm9ybWF0W2Zvcm1hdEluZGV4XTsKLSAgICAgICAg
ICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgIHZhciBjdXJyID0gMDsKLSAgICAgICAgICB2YXIg
YnVmZmVyID0gW107Ci0gICAgICAgICAgLy8gUmVhZCBjaGFyYWN0ZXJzIGFjY29yZGluZyB0byB0
aGUgZm9ybWF0LiBmbG9hdHMgYXJlIHRyaWNraWVyLCB0aGV5IG1heSBiZSBpbiBhbiB1bmZsb2F0
IHN0YXRlIGluIHRoZSBtaWRkbGUsIHRoZW4gYmUgYSB2YWxpZCBmbG9hdCBsYXRlcgotICAgICAg
ICAgIGlmICh0eXBlID09ICdmJyB8fCB0eXBlID09ICdlJyB8fCB0eXBlID09ICdnJyB8fAotICAg
ICAgICAgICAgICB0eXBlID09ICdGJyB8fCB0eXBlID09ICdFJyB8fCB0eXBlID09ICdHJykgewot
ICAgICAgICAgICAgdmFyIGxhc3QgPSAwOwotICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAg
ICAgICAgICAgd2hpbGUgKG5leHQgPiAwKSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKFN0
cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpOwotICAgICAgICAgICAgICBpZiAoX19pc0Zsb2F0KGJ1
ZmZlci5qb2luKCcnKSkpIHsKLSAgICAgICAgICAgICAgICBsYXN0ID0gYnVmZmVyLmxlbmd0aDsK
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZmZlci5sZW5ndGggLSBsYXN0
ICsgMTsgaSsrKSB7Ci0gICAgICAgICAgICAgIHVuZ2V0KCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBidWZmZXIubGVuZ3RoID0gbGFzdDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgICAgdmFyIGZpcnN0ID0gdHJ1ZTsKLSAgICAg
ICAgICAgIHdoaWxlICgoY3VyciA8IG1heF8gfHwgaXNOYU4obWF4XykpICYmIG5leHQgPiAwKSB7
Ci0gICAgICAgICAgICAgIGlmICghKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpICYm
IC8vIHN0b3Agb24gd2hpdGVzcGFjZQotICAgICAgICAgICAgICAgICAgKHR5cGUgPT0gJ3MnIHx8
Ci0gICAgICAgICAgICAgICAgICAgKCh0eXBlID09PSAnZCcgfHwgdHlwZSA9PSAndScgfHwgdHlw
ZSA9PSAnaScpICYmICgobmV4dCA+PSA0OCAmJiBuZXh0IDw9IDU3KSB8fAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGZpcnN0ICYmIG5leHQgPT0gNDUpKSkgfHwKLSAgICAgICAgICAgICAgICAgICAoKHR5cGUgPT09
ICd4JyB8fCB0eXBlID09PSAnWCcpICYmIChuZXh0ID49IDQ4ICYmIG5leHQgPD0gNTcgfHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0ID49IDk3ICYmIG5leHQgPD0g
MTAyIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA+PSA2NSAm
JiBuZXh0IDw9IDcwKSkpICYmCi0gICAgICAgICAgICAgICAgICAoZm9ybWF0SW5kZXggPj0gZm9y
bWF0Lmxlbmd0aCB8fCBuZXh0ICE9PSBmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkp
KSB7IC8vIFN0b3Agd2hlbiB3ZSByZWFkIHNvbWV0aGluZyB0aGF0IGlzIGNvbWluZyB1cAotICAg
ICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpOwotICAg
ICAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICAgICAgICBjdXJyKys7Ci0gICAg
ICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgdW5nZXQoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgg
PT09IDApIHJldHVybiAwOyAgLy8gRmFpbHVyZS4KLSAgICAgICAgICBpZiAoc3VwcHJlc3NBc3Np
Z25tZW50KSBjb250aW51ZTsKLSAgICAgICAgICB2YXIgdGV4dCA9IGJ1ZmZlci5qb2luKCcnKTsK
LSAgICAgICAgICB2YXIgYXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4y
KV07Ci0gICAgICAgICAgYXJnSW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywg
bnVsbCwgdHJ1ZSk7Ci0gICAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgICAgICBjYXNl
ICdkJzogY2FzZSAndSc6IGNhc2UgJ2knOgotICAgICAgICAgICAgICBpZiAoaGFsZikgewotICAg
ICAgICAgICAgICAgIEhFQVAxNlsoKGFyZ1B0cik+PjEpXT1wYXJzZUludCh0ZXh0LCAxMCk7Ci0g
ICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9uZ0xvbmcpIHsKLSAgICAgICAgICAgICAgICAodGVt
cEk2NCA9IFtwYXJzZUludCh0ZXh0LCAxMCk+Pj4wLCh0ZW1wRG91YmxlPXBhcnNlSW50KHRleHQs
IDEwKSwoKyhNYXRoLmFicyh0ZW1wRG91YmxlKSkpID49ICgrKDEpKSA/ICh0ZW1wRG91YmxlID4g
KCsoMCkpID8gKChNYXRoLm1pbigoKyhNYXRoLmZsb29yKCh0ZW1wRG91YmxlKS8oKyg0Mjk0OTY3
Mjk2KSkpKSksICgrKDQyOTQ5NjcyOTUpKSkpfDApPj4+MCA6ICh+figoKyhNYXRoLmNlaWwoKHRl
bXBEb3VibGUgLSArKCgofn4odGVtcERvdWJsZSkpKT4+PjApKS8oKyg0Mjk0OTY3Mjk2KSkpKSkp
KT4+PjApIDogMCldLEhFQVAzMlsoKGFyZ1B0cik+PjIpXT10ZW1wSTY0WzBdLEhFQVAzMlsoKChh
cmdQdHIpKyg0KSk+PjIpXT10ZW1wSTY0WzFdKTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBIRUFQMzJbKChhcmdQdHIpPj4yKV09cGFyc2VJbnQodGV4dCwgMTApOwot
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAn
WCc6Ci0gICAgICAgICAgICBjYXNlICd4JzoKLSAgICAgICAgICAgICAgSEVBUDMyWygoYXJnUHRy
KT4+MildPXBhcnNlSW50KHRleHQsIDE2KQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgJ0YnOgotICAgICAgICAgICAgY2FzZSAnZic6Ci0gICAgICAgICAgICBjYXNlICdF
JzoKLSAgICAgICAgICAgIGNhc2UgJ2UnOgotICAgICAgICAgICAgY2FzZSAnRyc6Ci0gICAgICAg
ICAgICBjYXNlICdnJzoKLSAgICAgICAgICAgIGNhc2UgJ0UnOgotICAgICAgICAgICAgICAvLyBm
YWxsdGhyb3VnaCBpbnRlbmRlZAotICAgICAgICAgICAgICBpZiAobG9uZ18pIHsKLSAgICAgICAg
ICAgICAgICBIRUFQRjY0WygoYXJnUHRyKT4+MyldPXBhcnNlRmxvYXQodGV4dCkKLSAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBIRUFQRjMyWygoYXJnUHRyKT4+MildPXBh
cnNlRmxvYXQodGV4dCkKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgJ3MnOgotICAgICAgICAgICAgICB2YXIgYXJyYXkgPSBpbnRBcnJheUZy
b21TdHJpbmcodGV4dCk7Ci0gICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXJyYXku
bGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICAgICAgICBIRUFQOFsoKChhcmdQdHIpKyhqKSl8MCld
PWFycmF5W2pdCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgfQotICAgICAgICAgIGZpZWxkcysrOwotICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdFtmb3Jt
YXRJbmRleF0gaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpIHsKLSAgICAgICAgICBuZXh0ID0g
Z2V0KCk7Ci0gICAgICAgICAgd2hpbGUgKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2Up
IHsKLSAgICAgICAgICAgIGlmIChuZXh0IDw9IDApIGJyZWFrIG1haW5Mb29wOyAgLy8gRW5kIG9m
IGlucHV0LgotICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgIH0KLSAgICAgICAg
ICB1bmdldChuZXh0KTsKLSAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgIC8vIE5vdCBhIHNwZWNpZmllci4KLSAgICAgICAgICBuZXh0ID0gZ2V0KCk7
Ci0gICAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSAhPT0gbmV4
dCkgewotICAgICAgICAgICAgdW5nZXQobmV4dCk7Ci0gICAgICAgICAgICBicmVhayBtYWluTG9v
cDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgfQotICAg
ICAgfQotICAgICAgcmV0dXJuIGZpZWxkczsKLSAgICB9ZnVuY3Rpb24gX3NzY2FuZihzLCBmb3Jt
YXQsIHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzc2NhbmYoY29uc3QgY2hhciAqcmVzdHJpY3Qg
cywgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCAuLi4gKTsKLSAgICAgIC8vIGh0dHA6Ly9w
dWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3NjYW5mLmh0
bWwKLSAgICAgIHZhciBpbmRleCA9IDA7Ci0gICAgICB2YXIgZ2V0ID0gZnVuY3Rpb24oKSB7IHJl
dHVybiBIRUFQOFsoKChzKSsoaW5kZXgrKykpfDApXTsgfTsKLSAgICAgIHZhciB1bmdldCA9IGZ1
bmN0aW9uKCkgeyBpbmRleC0tOyB9OwotICAgICAgcmV0dXJuIF9fc2NhblN0cmluZyhmb3JtYXQs
IGdldCwgdW5nZXQsIHZhcmFyZ3MpOwotICAgIH0KLSAgZnVuY3Rpb24gX19aN2NhdG9wZW5QS2Np
KCkgeyB0aHJvdyAnY2F0b3BlbiBub3QgaW1wbGVtZW50ZWQnIH0KLSAgZnVuY3Rpb24gX19aN2Nh
dGdldHNQOF9ubF9jYXRkaWlQS2MoKSB7IHRocm93ICdjYXRnZXRzIG5vdCBpbXBsZW1lbnRlZCcg
fQotICBmdW5jdGlvbiBfX1o4Y2F0Y2xvc2VQOF9ubF9jYXRkKCkgeyB0aHJvdyAnY2F0Y2xvc2Ug
bm90IGltcGxlbWVudGVkJyB9Ci0gIGZ1bmN0aW9uIF9uZXdsb2NhbGUobWFzaywgbG9jYWxlLCBi
YXNlKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9mcmVlbG9jYWxlKGxv
Y2FsZSkge30KLSAgZnVuY3Rpb24gX19fY3R5cGVfYl9sb2MoKSB7Ci0gICAgICAvLyBodHRwOi8v
cmVmc3BlY3MuZnJlZXN0YW5kYXJkcy5vcmcvTFNCXzMuMC4wL0xTQi1Db3JlLWdlbmVyaWMvTFNC
LUNvcmUtZ2VuZXJpYy9iYXNlbGliLS0tY3R5cGUtYi1sb2MuaHRtbAotICAgICAgdmFyIG1lID0g
X19fY3R5cGVfYl9sb2M7Ci0gICAgICBpZiAoIW1lLnJldCkgewotICAgICAgICB2YXIgdmFsdWVz
ID0gWwotICAgICAgICAgIDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAgICAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsCi0gICAgICAgICAgMCwwLDAsMCww
LDAsMCwwLDAsMCwyLDIsMiwyLDIsMiwyLDIsMiw4MTk1LDgxOTQsODE5NCw4MTk0LDgxOTQsMiwy
LDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMjQ1NzcsNDkxNTYsNDkxNTYsNDkxNTYs
Ci0gICAgICAgICAgNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkx
NTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQs
NTUzMDQsNTUzMDQsNTUzMDQsCi0gICAgICAgICAgNTUzMDQsNTUzMDQsNDkxNTYsNDkxNTYsNDkx
NTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1MzYs
NTQ1MzYsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsCi0gICAgICAgICAgNTA0NDAsNTA0
NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAs
NTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsCi0g
ICAgICAgICAgNDkxNTYsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTA2OTYs
NTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2
OTYsNTA2OTYsNTA2OTYsCi0gICAgICAgICAgNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYs
NTA2OTYsNTA2OTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsMiwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLAotICAgICAgICAgIDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAg
ICAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAKLSAgICAgICAgXTsKLSAgICAgICAgdmFy
IGkxNnNpemUgPSAyOwotICAgICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICog
aTE2c2l6ZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICAgSEVBUDE2WygoKGFycikrKGkgKiBpMTZzaXplKSk+PjEpXT12YWx1ZXNb
aV0KLSAgICAgICAgfQotICAgICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTE2
c2l6ZV0sICdpMTYqJywgQUxMT0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5y
ZXQ7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jdHlwZV90b2xvd2VyX2xvYygpIHsKLSAgICAgIC8v
IGh0dHA6Ly9yZWZzcGVjcy5mcmVlc3RhbmRhcmRzLm9yZy9MU0JfMy4xLjEvTFNCLUNvcmUtZ2Vu
ZXJpYy9MU0ItQ29yZS1nZW5lcmljL2xpYnV0aWwtLS1jdHlwZS10b2xvd2VyLWxvYy5odG1sCi0g
ICAgICB2YXIgbWUgPSBfX19jdHlwZV90b2xvd2VyX2xvYzsKLSAgICAgIGlmICghbWUucmV0KSB7
Ci0gICAgICAgIHZhciB2YWx1ZXMgPSBbCi0gICAgICAgICAgMTI4LDEyOSwxMzAsMTMxLDEzMiwx
MzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0
NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsCi0gICAgICAgICAgMTU4
LDE1OSwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIs
MTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4Niwx
ODcsCi0gICAgICAgICAgMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5
OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEy
LDIxMywyMTQsMjE1LDIxNiwyMTcsCi0gICAgICAgICAgMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMs
MjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywy
MzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsCi0gICAgICAgICAgMjQ4LDI0
OSwyNTAsMjUxLDI1MiwyNTMsMjU0LC0xLDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMs
MTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIs
Ci0gICAgICAgICAgMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcs
NDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsOTcsOTgs
OTksMTAwLDEwMSwxMDIsMTAzLAotICAgICAgICAgIDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDEx
MCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiw5MSw5Miw5
Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsCi0gICAgICAgICAgMTA0LDEwNSwx
MDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEy
MCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxMjcsMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsCi0g
ICAgICAgICAgMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUs
MTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwx
NjAsMTYxLDE2MiwxNjMsCi0gICAgICAgICAgMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3
MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1
LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsCi0gICAgICAgICAgMTk0LDE5NSwxOTYs
MTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwy
MTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsCi0gICAg
ICAgICAgMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2
LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAs
MjUxLDI1MiwyNTMsCi0gICAgICAgICAgMjU0LDI1NQotICAgICAgICBdOwotICAgICAgICB2YXIg
aTMyc2l6ZSA9IDQ7Ci0gICAgICAgIHZhciBhcnIgPSBfbWFsbG9jKHZhbHVlcy5sZW5ndGggKiBp
MzJzaXplKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKysp
IHsKLSAgICAgICAgICBIRUFQMzJbKCgoYXJyKSsoaSAqIGkzMnNpemUpKT4+MildPXZhbHVlc1tp
XQotICAgICAgICB9Ci0gICAgICAgIG1lLnJldCA9IGFsbG9jYXRlKFthcnIgKyAxMjggKiBpMzJz
aXplXSwgJ2kzMionLCBBTExPQ19OT1JNQUwpOwotICAgICAgfQotICAgICAgcmV0dXJuIG1lLnJl
dDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N0eXBlX3RvdXBwZXJfbG9jKCkgewotICAgICAgLy8g
aHR0cDovL3JlZnNwZWNzLmZyZWVzdGFuZGFyZHMub3JnL0xTQl8zLjEuMS9MU0ItQ29yZS1nZW5l
cmljL0xTQi1Db3JlLWdlbmVyaWMvbGlidXRpbC0tLWN0eXBlLXRvdXBwZXItbG9jLmh0bWwKLSAg
ICAgIHZhciBtZSA9IF9fX2N0eXBlX3RvdXBwZXJfbG9jOwotICAgICAgaWYgKCFtZS5yZXQpIHsK
LSAgICAgICAgdmFyIHZhbHVlcyA9IFsKLSAgICAgICAgICAxMjgsMTI5LDEzMCwxMzEsMTMyLDEz
MywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3
LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywKLSAgICAgICAgICAxNTgs
MTU5LDE2MCwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3Miwx
NzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4
NywKLSAgICAgICAgICAxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4
LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIs
MjEzLDIxNCwyMTUsMjE2LDIxNywKLSAgICAgICAgICAyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywy
MjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIz
OCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywKLSAgICAgICAgICAyNDgsMjQ5
LDI1MCwyNTEsMjUyLDI1MywyNTQsLTEsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywx
NCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwK
LSAgICAgICAgICAzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0
OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2
Nyw2OCw2OSw3MCw3MSw3MiwKLSAgICAgICAgICA3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4
Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw2NSw2Niw2Nyw2OCw2
OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCwKLSAgICAgICAgICA4MSw4Miw4Myw4
NCw4NSw4Niw4Nyw4OCw4OSw5MCwxMjMsMTI0LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwx
MzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsCi0gICAg
ICAgICAgMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3
LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEs
MTcyLDE3MywxNzQsCi0gICAgICAgICAgMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4Miwx
ODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5
NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsCi0gICAgICAgICAgMjA1LDIwNiwyMDcsMjA4
LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIs
MjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsCi0gICAgICAg
ICAgMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0
OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUKLSAgICAgICAgXTsKLSAgICAgICAgdmFyIGkz
MnNpemUgPSA0OwotICAgICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICogaTMy
c2l6ZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7
Ci0gICAgICAgICAgSEVBUDMyWygoKGFycikrKGkgKiBpMzJzaXplKSk+PjIpXT12YWx1ZXNbaV0K
LSAgICAgICAgfQotICAgICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTMyc2l6
ZV0sICdpMzIqJywgQUxMT0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5yZXQ7
Ci0gICAgfQotICB2YXIgX19fdG1fc3RydWN0X2xheW91dD17X19zaXplX186NDQsdG1fc2VjOjAs
dG1fbWluOjQsdG1faG91cjo4LHRtX21kYXk6MTIsdG1fbW9uOjE2LHRtX3llYXI6MjAsdG1fd2Rh
eToyNCx0bV95ZGF5OjI4LHRtX2lzZHN0OjMyLHRtX2dtdG9mZjozNix0bV96b25lOjQwfTsKLSAg
ZnVuY3Rpb24gX19pc0xlYXBZZWFyKHllYXIpIHsKLSAgICAgICAgcmV0dXJuIHllYXIlNCA9PT0g
MCAmJiAoeWVhciUxMDAgIT09IDAgfHwgeWVhciU0MDAgPT09IDApOwotICAgIH0KLSAgZnVuY3Rp
b24gX19hcnJheVN1bShhcnJheSwgaW5kZXgpIHsKLSAgICAgIHZhciBzdW0gPSAwOwotICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPD0gaW5kZXg7IHN1bSArPSBhcnJheVtpKytdKTsKLSAgICAgIHJl
dHVybiBzdW07Ci0gICAgfQotICB2YXIgX19NT05USF9EQVlTX0xFQVA9WzMxLDI5LDMxLDMwLDMx
LDMwLDMxLDMxLDMwLDMxLDMwLDMxXTsKLSAgdmFyIF9fTU9OVEhfREFZU19SRUdVTEFSPVszMSwy
OCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07ZnVuY3Rpb24gX19hZGREYXlzKGRhdGUs
IGRheXMpIHsKLSAgICAgIHZhciBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpOwot
ICAgICAgd2hpbGUoZGF5cyA+IDApIHsKLSAgICAgICAgdmFyIGxlYXAgPSBfX2lzTGVhcFllYXIo
bmV3RGF0ZS5nZXRGdWxsWWVhcigpKTsKLSAgICAgICAgdmFyIGN1cnJlbnRNb250aCA9IG5ld0Rh
dGUuZ2V0TW9udGgoKTsKLSAgICAgICAgdmFyIGRheXNJbkN1cnJlbnRNb250aCA9IChsZWFwID8g
X19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUilbY3VycmVudE1vbnRoXTsK
LSAgICAgICAgaWYgKGRheXMgPiBkYXlzSW5DdXJyZW50TW9udGgtbmV3RGF0ZS5nZXREYXRlKCkp
IHsKLSAgICAgICAgICAvLyB3ZSBzcGlsbCBvdmVyIHRvIG5leHQgbW9udGgKLSAgICAgICAgICBk
YXlzIC09IChkYXlzSW5DdXJyZW50TW9udGgtbmV3RGF0ZS5nZXREYXRlKCkrMSk7Ci0gICAgICAg
ICAgbmV3RGF0ZS5zZXREYXRlKDEpOwotICAgICAgICAgIGlmIChjdXJyZW50TW9udGggPCAxMSkg
ewotICAgICAgICAgICAgbmV3RGF0ZS5zZXRNb250aChjdXJyZW50TW9udGgrMSkKLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgbmV3RGF0ZS5zZXRNb250aCgwKTsKLSAgICAgICAgICAg
IG5ld0RhdGUuc2V0RnVsbFllYXIobmV3RGF0ZS5nZXRGdWxsWWVhcigpKzEpOwotICAgICAgICAg
IH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAvLyB3ZSBzdGF5IGluIGN1cnJlbnQgbW9u
dGggCi0gICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKG5ld0RhdGUuZ2V0RGF0ZSgpK2RheXMpOwot
ICAgICAgICAgIHJldHVybiBuZXdEYXRlOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1
cm4gbmV3RGF0ZTsKLSAgICB9ZnVuY3Rpb24gX3N0cmZ0aW1lKHMsIG1heHNpemUsIGZvcm1hdCwg
dG0pIHsKLSAgICAgIC8vIHNpemVfdCBzdHJmdGltZShjaGFyICpyZXN0cmljdCBzLCBzaXplX3Qg
bWF4c2l6ZSwgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCBjb25zdCBzdHJ1Y3QgdG0gKnJl
c3RyaWN0IHRpbWVwdHIpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxp
bmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvc3RyZnRpbWUuaHRtbAotICAgICAgdmFyIGRhdGUg
PSB7Ci0gICAgICAgIHRtX3NlYzogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50
bV9zZWMpKT4+MildLAotICAgICAgICB0bV9taW46IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVj
dF9sYXlvdXQudG1fbWluKSk+PjIpXSwKLSAgICAgICAgdG1faG91cjogSEVBUDMyWygoKHRtKSso
X19fdG1fc3RydWN0X2xheW91dC50bV9ob3VyKSk+PjIpXSwKLSAgICAgICAgdG1fbWRheTogSEVB
UDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV9tZGF5KSk+PjIpXSwKLSAgICAgICAg
dG1fbW9uOiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX21vbikpPj4yKV0s
Ci0gICAgICAgIHRtX3llYXI6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1f
eWVhcikpPj4yKV0sCi0gICAgICAgIHRtX3dkYXk6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVj
dF9sYXlvdXQudG1fd2RheSkpPj4yKV0sCi0gICAgICAgIHRtX3lkYXk6IEhFQVAzMlsoKCh0bSkr
KF9fX3RtX3N0cnVjdF9sYXlvdXQudG1feWRheSkpPj4yKV0sCi0gICAgICAgIHRtX2lzZHN0OiBI
RUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX2lzZHN0KSk+PjIpXQotICAgICAg
fTsKLSAgICAgIHZhciBwYXR0ZXJuID0gUG9pbnRlcl9zdHJpbmdpZnkoZm9ybWF0KTsKLSAgICAg
IC8vIGV4cGFuZCBmb3JtYXQKLSAgICAgIHZhciBFWFBBTlNJT05fUlVMRVNfMSA9IHsKLSAgICAg
ICAgJyVjJzogJyVhICViICVkICVIOiVNOiVTICVZJywgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBs
b2NhbGUncyBhcHByb3ByaWF0ZSBkYXRlIGFuZCB0aW1lIHJlcHJlc2VudGF0aW9uIC0gZS5nLiwg
TW9uIEF1ZyAgMyAxNDowMjowMSAyMDEzCi0gICAgICAgICclRCc6ICclbS8lZC8leScsICAgICAg
ICAgICAgICAgICAvLyBFcXVpdmFsZW50IHRvICVtIC8gJWQgLyAleQotICAgICAgICAnJUYnOiAn
JVktJW0tJWQnLCAgICAgICAgICAgICAgICAgLy8gRXF1aXZhbGVudCB0byAlWSAtICVtIC0gJWQK
LSAgICAgICAgJyVoJzogJyViJywgICAgICAgICAgICAgICAgICAgICAgIC8vIEVxdWl2YWxlbnQg
dG8gJWIKLSAgICAgICAgJyVyJzogJyVJOiVNOiVTICVwJywgICAgICAgICAgICAgIC8vIFJlcGxh
Y2VkIGJ5IHRoZSB0aW1lIGluIGEubS4gYW5kIHAubS4gbm90YXRpb24KLSAgICAgICAgJyVSJzog
JyVIOiVNJywgICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB0aW1lIGluIDI0
LWhvdXIgbm90YXRpb24KLSAgICAgICAgJyVUJzogJyVIOiVNOiVTJywgICAgICAgICAgICAgICAg
IC8vIFJlcGxhY2VkIGJ5IHRoZSB0aW1lCi0gICAgICAgICcleCc6ICclbS8lZC8leScsICAgICAg
ICAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgbG9jYWxlJ3MgYXBwcm9wcmlhdGUgZGF0ZSBy
ZXByZXNlbnRhdGlvbgotICAgICAgICAnJVgnOiAnJUg6JU06JVMnLCAgICAgICAgICAgICAgICAg
Ly8gUmVwbGFjZWQgYnkgdGhlIGxvY2FsZSdzIGFwcHJvcHJpYXRlIGRhdGUgcmVwcmVzZW50YXRp
b24KLSAgICAgIH07Ci0gICAgICBmb3IgKHZhciBydWxlIGluIEVYUEFOU0lPTl9SVUxFU18xKSB7
Ci0gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UobmV3IFJlZ0V4cChydWxlLCAnZycp
LCBFWFBBTlNJT05fUlVMRVNfMVtydWxlXSk7Ci0gICAgICB9Ci0gICAgICB2YXIgV0VFS0RBWVMg
PSBbJ1N1bmRheScsICdNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXkn
LCAnRnJpZGF5JywgJ1NhdHVyZGF5J107Ci0gICAgICB2YXIgTU9OVEhTID0gWydKYW51YXJ5Jywg
J0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVn
dXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ107Ci0g
ICAgICB2YXIgbGVhZGluZ1NvbWV0aGluZyA9IGZ1bmN0aW9uKHZhbHVlLCBkaWdpdHMsIGNoYXJh
Y3RlcikgewotICAgICAgICB2YXIgc3RyID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZh
bHVlLnRvU3RyaW5nKCkgOiAodmFsdWUgfHwgJycpOwotICAgICAgICB3aGlsZSAoc3RyLmxlbmd0
aCA8IGRpZ2l0cykgewotICAgICAgICAgIHN0ciA9IGNoYXJhY3RlclswXStzdHI7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHN0cjsKLSAgICAgIH07Ci0gICAgICB2YXIgbGVhZGluZ051bGxz
ID0gZnVuY3Rpb24odmFsdWUsIGRpZ2l0cykgewotICAgICAgICByZXR1cm4gbGVhZGluZ1NvbWV0
aGluZyh2YWx1ZSwgZGlnaXRzLCAnMCcpOwotICAgICAgfTsKLSAgICAgIHZhciBjb21wYXJlQnlE
YXkgPSBmdW5jdGlvbihkYXRlMSwgZGF0ZTIpIHsKLSAgICAgICAgdmFyIHNnbiA9IGZ1bmN0aW9u
KHZhbHVlKSB7Ci0gICAgICAgICAgcmV0dXJuIHZhbHVlIDwgMCA/IC0xIDogKHZhbHVlID4gMCA/
IDEgOiAwKTsKLSAgICAgICAgfTsKLSAgICAgICAgdmFyIGNvbXBhcmU7Ci0gICAgICAgIGlmICgo
Y29tcGFyZSA9IHNnbihkYXRlMS5nZXRGdWxsWWVhcigpLWRhdGUyLmdldEZ1bGxZZWFyKCkpKSA9
PT0gMCkgewotICAgICAgICAgIGlmICgoY29tcGFyZSA9IHNnbihkYXRlMS5nZXRNb250aCgpLWRh
dGUyLmdldE1vbnRoKCkpKSA9PT0gMCkgewotICAgICAgICAgICAgY29tcGFyZSA9IHNnbihkYXRl
MS5nZXREYXRlKCktZGF0ZTIuZ2V0RGF0ZSgpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIGNvbXBhcmU7Ci0gICAgICB9OwotICAgICAgdmFyIGdldEZpcnN0V2Vla1N0
YXJ0RGF0ZSA9IGZ1bmN0aW9uKGphbkZvdXJ0aCkgewotICAgICAgICAgIHN3aXRjaCAoamFuRm91
cnRoLmdldERheSgpKSB7Ci0gICAgICAgICAgICBjYXNlIDA6IC8vIFN1bmRheQotICAgICAgICAg
ICAgICByZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwgMTEsIDI5KTsK
LSAgICAgICAgICAgIGNhc2UgMTogLy8gTW9uZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBqYW5G
b3VydGg7Ci0gICAgICAgICAgICBjYXNlIDI6IC8vIFR1ZXNkYXkKLSAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLCAwLCAzKTsKLSAgICAgICAgICAg
IGNhc2UgMzogLy8gV2VkbmVzZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5G
b3VydGguZ2V0RnVsbFllYXIoKSwgMCwgMik7Ci0gICAgICAgICAgICBjYXNlIDQ6IC8vIFRodXJz
ZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIo
KSwgMCwgMSk7Ci0gICAgICAgICAgICBjYXNlIDU6IC8vIEZyaWRheQotICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwgMTEsIDMxKTsKLSAgICAg
ICAgICAgIGNhc2UgNjogLy8gU2F0dXJkYXkKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRl
KGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEsIDExLCAzMCk7Ci0gICAgICAgICAgfQotICAgICAg
fTsKLSAgICAgIHZhciBnZXRXZWVrQmFzZWRZZWFyID0gZnVuY3Rpb24oZGF0ZSkgewotICAgICAg
ICAgIHZhciB0aGlzRGF0ZSA9IF9fYWRkRGF5cyhuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwg
MCwgMSksIGRhdGUudG1feWRheSk7Ci0gICAgICAgICAgdmFyIGphbkZvdXJ0aFRoaXNZZWFyID0g
bmV3IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSwgMCwgNCk7Ci0gICAgICAgICAgdmFyIGph
bkZvdXJ0aE5leHRZZWFyID0gbmV3IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSsxLCAwLCA0
KTsKLSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3RhcnRUaGlzWWVhciA9IGdldEZpcnN0V2Vla1N0
YXJ0RGF0ZShqYW5Gb3VydGhUaGlzWWVhcik7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0
TmV4dFllYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpOwotICAg
ICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RXZWVrU3RhcnRUaGlzWWVhciwgdGhpc0RhdGUp
IDw9IDApIHsKLSAgICAgICAgICAgIC8vIHRoaXMgZGF0ZSBpcyBhZnRlciB0aGUgc3RhcnQgb2Yg
dGhlIGZpcnN0IHdlZWsgb2YgdGhpcyB5ZWFyCi0gICAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5
KGZpcnN0V2Vla1N0YXJ0TmV4dFllYXIsIHRoaXNEYXRlKSA8PSAwKSB7Ci0gICAgICAgICAgICAg
IHJldHVybiB0aGlzRGF0ZS5nZXRGdWxsWWVhcigpKzE7Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICByZXR1cm4gdGhpc0RhdGUuZ2V0RnVsbFllYXIoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHJldHVybiB0aGlzRGF0ZS5nZXRG
dWxsWWVhcigpLTE7Ci0gICAgICAgICAgfQotICAgICAgfTsKLSAgICAgIHZhciBFWFBBTlNJT05f
UlVMRVNfMiA9IHsKLSAgICAgICAgJyVhJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJl
dHVybiBXRUVLREFZU1tkYXRlLnRtX3dkYXldLnN1YnN0cmluZygwLDMpOwotICAgICAgICB9LAot
ICAgICAgICAnJUEnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIFdFRUtEQVlT
W2RhdGUudG1fd2RheV07Ci0gICAgICAgIH0sCi0gICAgICAgICclYic6IGZ1bmN0aW9uKGRhdGUp
IHsKLSAgICAgICAgICByZXR1cm4gTU9OVEhTW2RhdGUudG1fbW9uXS5zdWJzdHJpbmcoMCwzKTsK
LSAgICAgICAgfSwKLSAgICAgICAgJyVCJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJl
dHVybiBNT05USFNbZGF0ZS50bV9tb25dOwotICAgICAgICB9LAotICAgICAgICAnJUMnOiBmdW5j
dGlvbihkYXRlKSB7Ci0gICAgICAgICAgdmFyIHllYXIgPSBkYXRlLnRtX3llYXIrMTkwMDsKLSAg
ICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguZmxvb3IoeWVhci8xMDApLDIpOwotICAg
ICAgICB9LAotICAgICAgICAnJWQnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJu
IGxlYWRpbmdOdWxscyhkYXRlLnRtX21kYXksIDIpOwotICAgICAgICB9LAotICAgICAgICAnJWUn
OiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdTb21ldGhpbmcoZGF0
ZS50bV9tZGF5LCAyLCAnICcpOwotICAgICAgICB9LAotICAgICAgICAnJWcnOiBmdW5jdGlvbihk
YXRlKSB7Ci0gICAgICAgICAgLy8gJWcsICVHLCBhbmQgJVYgZ2l2ZSB2YWx1ZXMgYWNjb3JkaW5n
IHRvIHRoZSBJU08gODYwMToyMDAwIHN0YW5kYXJkIHdlZWstYmFzZWQgeWVhci4gCi0gICAgICAg
ICAgLy8gSW4gdGhpcyBzeXN0ZW0sIHdlZWtzIGJlZ2luIG9uIGEgTW9uZGF5IGFuZCB3ZWVrIDEg
b2YgdGhlIHllYXIgaXMgdGhlIHdlZWsgdGhhdCBpbmNsdWRlcyAKLSAgICAgICAgICAvLyBKYW51
YXJ5IDR0aCwgd2hpY2ggaXMgYWxzbyB0aGUgd2VlayB0aGF0IGluY2x1ZGVzIHRoZSBmaXJzdCBU
aHVyc2RheSBvZiB0aGUgeWVhciwgYW5kIAotICAgICAgICAgIC8vIGlzIGFsc28gdGhlIGZpcnN0
IHdlZWsgdGhhdCBjb250YWlucyBhdCBsZWFzdCBmb3VyIGRheXMgaW4gdGhlIHllYXIuIAotICAg
ICAgICAgIC8vIElmIHRoZSBmaXJzdCBNb25kYXkgb2YgSmFudWFyeSBpcyB0aGUgMm5kLCAzcmQs
IG9yIDR0aCwgdGhlIHByZWNlZGluZyBkYXlzIGFyZSBwYXJ0IG9mIAotICAgICAgICAgIC8vIHRo
ZSBsYXN0IHdlZWsgb2YgdGhlIHByZWNlZGluZyB5ZWFyOyB0aHVzLCBmb3IgU2F0dXJkYXkgMm5k
IEphbnVhcnkgMTk5OSwgCi0gICAgICAgICAgLy8gJUcgaXMgcmVwbGFjZWQgYnkgMTk5OCBhbmQg
JVYgaXMgcmVwbGFjZWQgYnkgNTMuIElmIERlY2VtYmVyIDI5dGgsIDMwdGgsIAotICAgICAgICAg
IC8vIG9yIDMxc3QgaXMgYSBNb25kYXksIGl0IGFuZCBhbnkgZm9sbG93aW5nIGRheXMgYXJlIHBh
cnQgb2Ygd2VlayAxIG9mIHRoZSBmb2xsb3dpbmcgeWVhci4gCi0gICAgICAgICAgLy8gVGh1cywg
Zm9yIFR1ZXNkYXkgMzB0aCBEZWNlbWJlciAxOTk3LCAlRyBpcyByZXBsYWNlZCBieSAxOTk4IGFu
ZCAlViBpcyByZXBsYWNlZCBieSAwMS4KLSAgICAgICAgICByZXR1cm4gZ2V0V2Vla0Jhc2VkWWVh
cihkYXRlKS50b1N0cmluZygpLnN1YnN0cmluZygyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVH
JzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBnZXRXZWVrQmFzZWRZZWFyKGRh
dGUpOwotICAgICAgICB9LAotICAgICAgICAnJUgnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAg
ICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRlLnRtX2hvdXIsIDIpOwotICAgICAgICB9LAotICAg
ICAgICAnJUknOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxs
cyhkYXRlLnRtX2hvdXIgPCAxMyA/IGRhdGUudG1faG91ciA6IGRhdGUudG1faG91ci0xMiwgMik7
Ci0gICAgICAgIH0sCi0gICAgICAgICclaic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAv
LyBEYXkgb2YgdGhlIHllYXIgKDAwMS0zNjYpCi0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxs
cyhkYXRlLnRtX21kYXkrX19hcnJheVN1bShfX2lzTGVhcFllYXIoZGF0ZS50bV95ZWFyKzE5MDAp
ID8gX19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZGF0ZS50bV9tb24t
MSksIDMpOwotICAgICAgICB9LAotICAgICAgICAnJW0nOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAg
ICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRlLnRtX21vbisxLCAyKTsKLSAgICAgICAgfSwK
LSAgICAgICAgJyVNJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5n
TnVsbHMoZGF0ZS50bV9taW4sIDIpOwotICAgICAgICB9LAotICAgICAgICAnJW4nOiBmdW5jdGlv
bigpIHsKLSAgICAgICAgICByZXR1cm4gJ1xuJzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVwJzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIGlmIChkYXRlLnRtX2hvdXIgPiAwICYmIGRhdGUu
dG1faG91ciA8IDEzKSB7Ci0gICAgICAgICAgICByZXR1cm4gJ0FNJzsKLSAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgcmV0dXJuICdQTSc7Ci0gICAgICAgICAgfQotICAgICAgICB9LAot
ICAgICAgICAnJVMnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdO
dWxscyhkYXRlLnRtX3NlYywgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICcldCc6IGZ1bmN0aW9u
KCkgewotICAgICAgICAgIHJldHVybiAnXHQnOwotICAgICAgICB9LAotICAgICAgICAnJXUnOiBm
dW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgdmFyIGRheSA9IG5ldyBEYXRlKGRhdGUudG1feWVh
cisxOTAwLCBkYXRlLnRtX21vbisxLCBkYXRlLnRtX21kYXksIDAsIDAsIDAsIDApOwotICAgICAg
ICAgIHJldHVybiBkYXkuZ2V0RGF5KCkgfHwgNzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVVJzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVrIG51bWJl
ciBvZiB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw1M10uIAotICAgICAgICAgIC8v
IFRoZSBmaXJzdCBTdW5kYXkgb2YgSmFudWFyeSBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgMTsg
Ci0gICAgICAgICAgLy8gZGF5cyBpbiB0aGUgbmV3IHllYXIgYmVmb3JlIHRoaXMgYXJlIGluIHdl
ZWsgMC4gWyB0bV95ZWFyLCB0bV93ZGF5LCB0bV95ZGF5XQotICAgICAgICAgIHZhciBqYW5GaXJz
dCA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCAwLCAxKTsKLSAgICAgICAgICB2YXIgZmly
c3RTdW5kYXkgPSBqYW5GaXJzdC5nZXREYXkoKSA9PT0gMCA/IGphbkZpcnN0IDogX19hZGREYXlz
KGphbkZpcnN0LCA3LWphbkZpcnN0LmdldERheSgpKTsKLSAgICAgICAgICB2YXIgZW5kRGF0ZSA9
IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCBkYXRlLnRtX21vbiwgZGF0ZS50bV9tZGF5KTsK
LSAgICAgICAgICAvLyBpcyB0YXJnZXQgZGF0ZSBhZnRlciB0aGUgZmlyc3QgU3VuZGF5PwotICAg
ICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RTdW5kYXksIGVuZERhdGUpIDwgMCkgewotICAg
ICAgICAgICAgLy8gY2FsY3VsYXRlIGRpZmZlcmVuY2UgaW4gZGF5cyBiZXR3ZWVuIGZpcnN0IFN1
bmRheSBhbmQgZW5kRGF0ZQotICAgICAgICAgICAgdmFyIGZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1v
bnRoID0gX19hcnJheVN1bShfX2lzTGVhcFllYXIoZW5kRGF0ZS5nZXRGdWxsWWVhcigpKSA/IF9f
TU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIsIGVuZERhdGUuZ2V0TW9udGgo
KS0xKS0zMTsKLSAgICAgICAgICAgIHZhciBmaXJzdFN1bmRheVVudGlsRW5kSmFudWFyeSA9IDMx
LWZpcnN0U3VuZGF5LmdldERhdGUoKTsKLSAgICAgICAgICAgIHZhciBkYXlzID0gZmlyc3RTdW5k
YXlVbnRpbEVuZEphbnVhcnkrZmVicnVhcnlGaXJzdFVudGlsRW5kTW9udGgrZW5kRGF0ZS5nZXRE
YXRlKCk7Ci0gICAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguY2VpbChkYXlzLzcp
LCAyKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGNvbXBhcmVCeURheShmaXJzdFN1
bmRheSwgamFuRmlyc3QpID09PSAwID8gJzAxJzogJzAwJzsKLSAgICAgICAgfSwKLSAgICAgICAg
JyVWJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVr
IG51bWJlciBvZiB0aGUgeWVhciAoTW9uZGF5IGFzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsp
IAotICAgICAgICAgIC8vIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAxLDUzXS4gSWYgdGhlIHdlZWsg
Y29udGFpbmluZyAxIEphbnVhcnkgaGFzIGZvdXIgCi0gICAgICAgICAgLy8gb3IgbW9yZSBkYXlz
IGluIHRoZSBuZXcgeWVhciwgdGhlbiBpdCBpcyBjb25zaWRlcmVkIHdlZWsgMS4gCi0gICAgICAg
ICAgLy8gT3RoZXJ3aXNlLCBpdCBpcyB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmV2aW91cyB5ZWFy
LCBhbmQgdGhlIG5leHQgd2VlayBpcyB3ZWVrIDEuIAotICAgICAgICAgIC8vIEJvdGggSmFudWFy
eSA0dGggYW5kIHRoZSBmaXJzdCBUaHVyc2RheSBvZiBKYW51YXJ5IGFyZSBhbHdheXMgaW4gd2Vl
ayAxLiBbIHRtX3llYXIsIHRtX3dkYXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZvdXJ0
aFRoaXNZZWFyID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIDAsIDQpOwotICAgICAgICAg
IHZhciBqYW5Gb3VydGhOZXh0WWVhciA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAxLCAwLCA0
KTsKLSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3RhcnRUaGlzWWVhciA9IGdldEZpcnN0V2Vla1N0
YXJ0RGF0ZShqYW5Gb3VydGhUaGlzWWVhcik7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0
TmV4dFllYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpOwotICAg
ICAgICAgIHZhciBlbmREYXRlID0gX19hZGREYXlzKG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAw
LCAwLCAxKSwgZGF0ZS50bV95ZGF5KTsKLSAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGVuZERh
dGUsIGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIpIDwgMCkgewotICAgICAgICAgICAgLy8gaWYgZ2l2
ZW4gZGF0ZSBpcyBiZWZvcmUgdGhpcyB5ZWFycyBmaXJzdCB3ZWVrLCB0aGVuIGl0IGJlbG9uZ3Mg
dG8gdGhlIDUzcmQgd2VlayBvZiBsYXN0IHllYXIKLSAgICAgICAgICAgIHJldHVybiAnNTMnOwot
ICAgICAgICAgIH0gCi0gICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdFdlZWtTdGFydE5l
eHRZZWFyLCBlbmREYXRlKSA8PSAwKSB7Ci0gICAgICAgICAgICAvLyBpZiBnaXZlbiBkYXRlIGlz
IGFmdGVyIG5leHQgeWVhcnMgZmlyc3Qgd2VlaywgdGhlbiBpdCBiZWxvbmdzIHRvIHRoZSAwMXRo
IHdlZWsgb2YgbmV4dCB5ZWFyCi0gICAgICAgICAgICByZXR1cm4gJzAxJzsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgLy8gZ2l2ZW4gZGF0ZSBpcyBpbiBiZXR3ZWVuIENXIDAxLi41MyBvZiB0aGlz
IGNhbGVuZGFyIHllYXIKLSAgICAgICAgICB2YXIgZGF5c0RpZmZlcmVuY2U7Ci0gICAgICAgICAg
aWYgKGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIuZ2V0RnVsbFllYXIoKSA8IGRhdGUudG1feWVhcisx
OTAwKSB7Ci0gICAgICAgICAgICAvLyBmaXJzdCBDVyBvZiB0aGlzIHllYXIgc3RhcnRzIGxhc3Qg
eWVhcgotICAgICAgICAgICAgZGF5c0RpZmZlcmVuY2UgPSBkYXRlLnRtX3lkYXkrMzItZmlyc3RX
ZWVrU3RhcnRUaGlzWWVhci5nZXREYXRlKCkKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgLy8gZmlyc3QgQ1cgb2YgdGhpcyB5ZWFyIHN0YXJ0cyB0aGlzIHllYXIKLSAgICAgICAgICAg
IGRheXNEaWZmZXJlbmNlID0gZGF0ZS50bV95ZGF5KzEtZmlyc3RXZWVrU3RhcnRUaGlzWWVhci5n
ZXREYXRlKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0
aC5jZWlsKGRheXNEaWZmZXJlbmNlLzcpLCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyV3Jzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHZhciBkYXkgPSBuZXcgRGF0ZShkYXRlLnRtX3ll
YXIrMTkwMCwgZGF0ZS50bV9tb24rMSwgZGF0ZS50bV9tZGF5LCAwLCAwLCAwLCAwKTsKLSAgICAg
ICAgICByZXR1cm4gZGF5LmdldERheSgpOwotICAgICAgICB9LAotICAgICAgICAnJVcnOiBmdW5j
dGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHdlZWsgbnVtYmVyIG9m
IHRoZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAwLDUzXS4gCi0gICAgICAgICAgLy8gVGhl
IGZpcnN0IE1vbmRheSBvZiBKYW51YXJ5IGlzIHRoZSBmaXJzdCBkYXkgb2Ygd2VlayAxOyAKLSAg
ICAgICAgICAvLyBkYXlzIGluIHRoZSBuZXcgeWVhciBiZWZvcmUgdGhpcyBhcmUgaW4gd2VlayAw
LiBbIHRtX3llYXIsIHRtX3dkYXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZpcnN0ID0g
bmV3IERhdGUoZGF0ZS50bV95ZWFyLCAwLCAxKTsKLSAgICAgICAgICB2YXIgZmlyc3RNb25kYXkg
PSBqYW5GaXJzdC5nZXREYXkoKSA9PT0gMSA/IGphbkZpcnN0IDogX19hZGREYXlzKGphbkZpcnN0
LCBqYW5GaXJzdC5nZXREYXkoKSA9PT0gMCA/IDEgOiA3LWphbkZpcnN0LmdldERheSgpKzEpOwot
ICAgICAgICAgIHZhciBlbmREYXRlID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIGRhdGUu
dG1fbW9uLCBkYXRlLnRtX21kYXkpOwotICAgICAgICAgIC8vIGlzIHRhcmdldCBkYXRlIGFmdGVy
IHRoZSBmaXJzdCBNb25kYXk/Ci0gICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdE1vbmRh
eSwgZW5kRGF0ZSkgPCAwKSB7Ci0gICAgICAgICAgICB2YXIgZmVicnVhcnlGaXJzdFVudGlsRW5k
TW9udGggPSBfX2FycmF5U3VtKF9faXNMZWFwWWVhcihlbmREYXRlLmdldEZ1bGxZZWFyKCkpID8g
X19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZW5kRGF0ZS5nZXRNb250
aCgpLTEpLTMxOwotICAgICAgICAgICAgdmFyIGZpcnN0TW9uZGF5VW50aWxFbmRKYW51YXJ5ID0g
MzEtZmlyc3RNb25kYXkuZ2V0RGF0ZSgpOwotICAgICAgICAgICAgdmFyIGRheXMgPSBmaXJzdE1v
bmRheVVudGlsRW5kSmFudWFyeStmZWJydWFyeUZpcnN0VW50aWxFbmRNb250aCtlbmREYXRlLmdl
dERhdGUoKTsKLSAgICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5jZWlsKGRheXMv
NyksIDIpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gY29tcGFyZUJ5RGF5KGZpcnN0
TW9uZGF5LCBqYW5GaXJzdCkgPT09IDAgPyAnMDEnOiAnMDAnOwotICAgICAgICB9LAotICAgICAg
ICAnJXknOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIGxh
c3QgdHdvIGRpZ2l0cyBvZiB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw5OV0uIFsg
dG1feWVhcl0KLSAgICAgICAgICByZXR1cm4gKGRhdGUudG1feWVhcisxOTAwKS50b1N0cmluZygp
LnN1YnN0cmluZygyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVZJzogZnVuY3Rpb24oZGF0ZSkg
ewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIg
KGZvciBleGFtcGxlLCAxOTk3KS4gWyB0bV95ZWFyXQotICAgICAgICAgIHJldHVybiBkYXRlLnRt
X3llYXIrMTkwMDsKLSAgICAgICAgfSwKLSAgICAgICAgJyV6JzogZnVuY3Rpb24oZGF0ZSkgewot
ICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBvZmZzZXQgZnJvbSBVVEMgaW4gdGhlIElTTyA4
NjAxOjIwMDAgc3RhbmRhcmQgZm9ybWF0ICggK2hobW0gb3IgLWhobW0gKSwKLSAgICAgICAgICAv
LyBvciBieSBubyBjaGFyYWN0ZXJzIGlmIG5vIHRpbWV6b25lIGlzIGRldGVybWluYWJsZS4gCi0g
ICAgICAgICAgLy8gRm9yIGV4YW1wbGUsICItMDQzMCIgbWVhbnMgNCBob3VycyAzMCBtaW51dGVz
IGJlaGluZCBVVEMgKHdlc3Qgb2YgR3JlZW53aWNoKS4gCi0gICAgICAgICAgLy8gSWYgdG1faXNk
c3QgaXMgemVybywgdGhlIHN0YW5kYXJkIHRpbWUgb2Zmc2V0IGlzIHVzZWQuIAotICAgICAgICAg
IC8vIElmIHRtX2lzZHN0IGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLCB0aGUgZGF5bGlnaHQgc2F2aW5n
cyB0aW1lIG9mZnNldCBpcyB1c2VkLiAKLSAgICAgICAgICAvLyBJZiB0bV9pc2RzdCBpcyBuZWdh
dGl2ZSwgbm8gY2hhcmFjdGVycyBhcmUgcmV0dXJuZWQuIAotICAgICAgICAgIC8vIEZJWE1FOiB3
ZSBjYW5ub3QgZGV0ZXJtaW5lIHRpbWUgem9uZSAob3IgY2FuIHdlPykKLSAgICAgICAgICByZXR1
cm4gJyc7Ci0gICAgICAgIH0sCi0gICAgICAgICclWic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAg
ICAgICAvLyBSZXBsYWNlZCBieSB0aGUgdGltZXpvbmUgbmFtZSBvciBhYmJyZXZpYXRpb24sIG9y
IGJ5IG5vIGJ5dGVzIGlmIG5vIHRpbWV6b25lIGluZm9ybWF0aW9uIGV4aXN0cy4gWyB0bV9pc2Rz
dF0KLSAgICAgICAgICAvLyBGSVhNRTogd2UgY2Fubm90IGRldGVybWluZSB0aW1lIHpvbmUgKG9y
IGNhbiB3ZT8pCi0gICAgICAgICAgcmV0dXJuICcnOwotICAgICAgICB9LAotICAgICAgICAnJSUn
OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gJyUnOwotICAgICAgICB9Ci0gICAgICB9
OwotICAgICAgZm9yICh2YXIgcnVsZSBpbiBFWFBBTlNJT05fUlVMRVNfMikgewotICAgICAgICBp
ZiAocGF0dGVybi5pbmRleE9mKHJ1bGUpID49IDApIHsKLSAgICAgICAgICBwYXR0ZXJuID0gcGF0
dGVybi5yZXBsYWNlKG5ldyBSZWdFeHAocnVsZSwgJ2cnKSwgRVhQQU5TSU9OX1JVTEVTXzJbcnVs
ZV0oZGF0ZSkpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICB2YXIgYnl0ZXMgPSBpbnRBcnJh
eUZyb21TdHJpbmcocGF0dGVybiwgZmFsc2UpOwotICAgICAgaWYgKGJ5dGVzLmxlbmd0aCA+IG1h
eHNpemUpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9IAotICAgICAgd3JpdGVBcnJheVRv
TWVtb3J5KGJ5dGVzLCBzKTsKLSAgICAgIHJldHVybiBieXRlcy5sZW5ndGgtMTsKLSAgICB9dmFy
IF9zdHJmdGltZV9sPV9zdHJmdGltZTsKLSAgZnVuY3Rpb24gX2lzc3BhY2UoY2hyKSB7Ci0gICAg
ICByZXR1cm4gKGNociA9PSAzMikgfHwgKGNociA+PSA5ICYmIGNociA8PSAxMyk7Ci0gICAgfQot
ICBmdW5jdGlvbiBfX3BhcnNlSW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsIG1pbiwgbWF4LCB1bnNp
Z24pIHsKLSAgICAgIHZhciBpc05lZ2F0aXZlID0gZmFsc2U7Ci0gICAgICAvLyBTa2lwIHNwYWNl
LgotICAgICAgd2hpbGUgKF9pc3NwYWNlKEhFQVA4WyhzdHIpXSkpIHN0cisrOwotICAgICAgLy8g
Q2hlY2sgZm9yIGEgcGx1cy9taW51cyBzaWduLgotICAgICAgaWYgKEhFQVA4WyhzdHIpXSA9PSA0
NSkgewotICAgICAgICBzdHIrKzsKLSAgICAgICAgaXNOZWdhdGl2ZSA9IHRydWU7Ci0gICAgICB9
IGVsc2UgaWYgKEhFQVA4WyhzdHIpXSA9PSA0MykgewotICAgICAgICBzdHIrKzsKLSAgICAgIH0K
LSAgICAgIC8vIEZpbmQgYmFzZS4KLSAgICAgIHZhciBvayA9IGZhbHNlOwotICAgICAgdmFyIGZp
bmFsQmFzZSA9IGJhc2U7Ci0gICAgICBpZiAoIWZpbmFsQmFzZSkgewotICAgICAgICBpZiAoSEVB
UDhbKHN0cildID09IDQ4KSB7Ci0gICAgICAgICAgaWYgKEhFQVA4Wygoc3RyKzEpfDApXSA9PSAx
MjAgfHwKLSAgICAgICAgICAgICAgSEVBUDhbKChzdHIrMSl8MCldID09IDg4KSB7Ci0gICAgICAg
ICAgICBmaW5hbEJhc2UgPSAxNjsKLSAgICAgICAgICAgIHN0ciArPSAyOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBmaW5hbEJhc2UgPSA4OwotICAgICAgICAgICAgb2sgPSB0cnVl
OyAvLyB3ZSBzYXcgYW4gaW5pdGlhbCB6ZXJvLCBwZXJoYXBzIHRoZSBlbnRpcmUgdGhpbmcgaXMg
anVzdCAiMCIKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoZmluYWxC
YXNlPT0xNikgewotICAgICAgICBpZiAoSEVBUDhbKHN0cildID09IDQ4KSB7Ci0gICAgICAgICAg
aWYgKEhFQVA4Wygoc3RyKzEpfDApXSA9PSAxMjAgfHwKLSAgICAgICAgICAgICAgSEVBUDhbKChz
dHIrMSl8MCldID09IDg4KSB7Ci0gICAgICAgICAgICBzdHIgKz0gMjsKLSAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmICghZmluYWxCYXNlKSBmaW5hbEJhc2UgPSAxMDsK
LSAgICAgIHN0YXJ0ID0gc3RyOwotICAgICAgLy8gR2V0IGRpZ2l0cy4KLSAgICAgIHZhciBjaHI7
Ci0gICAgICB3aGlsZSAoKGNociA9IEhFQVA4WyhzdHIpXSkgIT0gMCkgewotICAgICAgICB2YXIg
ZGlnaXQgPSBwYXJzZUludChTdHJpbmcuZnJvbUNoYXJDb2RlKGNociksIGZpbmFsQmFzZSk7Ci0g
ICAgICAgIGlmIChpc05hTihkaWdpdCkpIHsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICBzdHIrKzsKLSAgICAgICAgICBvayA9IHRydWU7Ci0gICAgICAgIH0K
LSAgICAgIH0KLSAgICAgIGlmICghb2spIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09E
RVMuRUlOVkFMKTsKLSAgICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKDApLDApfDAp
OwotICAgICAgfQotICAgICAgLy8gU2V0IGVuZCBwb2ludGVyLgotICAgICAgaWYgKGVuZHB0cikg
ewotICAgICAgICBIRUFQMzJbKChlbmRwdHIpPj4yKV09c3RyCi0gICAgICB9Ci0gICAgICB0cnkg
ewotICAgICAgICB2YXIgbnVtYmVyU3RyaW5nID0gaXNOZWdhdGl2ZSA/ICctJytQb2ludGVyX3N0
cmluZ2lmeShzdGFydCwgc3RyIC0gc3RhcnQpIDogUG9pbnRlcl9zdHJpbmdpZnkoc3RhcnQsIHN0
ciAtIHN0YXJ0KTsKLSAgICAgICAgaTY0TWF0aC5mcm9tU3RyaW5nKG51bWJlclN0cmluZywgZmlu
YWxCYXNlLCBtaW4sIG1heCwgdW5zaWduKTsKLSAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICBf
X19zZXRFcnJObyhFUlJOT19DT0RFUy5FUkFOR0UpOyAvLyBub3QgcXVpdGUgY29ycmVjdAotICAg
ICAgfQotICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKCgoSEVBUDMyWygoKHRlbXBE
b3VibGVQdHIpKyg0KSk+PjIpXSl8MCkpLCgoSEVBUDMyWygodGVtcERvdWJsZVB0cik+PjIpXSl8
MCkpfDApOwotICAgIH1mdW5jdGlvbiBfc3RydG91bGwoc3RyLCBlbmRwdHIsIGJhc2UpIHsKLSAg
ICAgIHJldHVybiBfX3BhcnNlSW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsIDAsICcxODQ0Njc0NDA3
MzcwOTU1MTYxNScsIHRydWUpOyAgLy8gVUxPTkdfTUFYLgotICAgIH12YXIgX3N0cnRvdWxsX2w9
X3N0cnRvdWxsOwotICBmdW5jdGlvbiBfc3RydG9sbChzdHIsIGVuZHB0ciwgYmFzZSkgewotICAg
ICAgcmV0dXJuIF9fcGFyc2VJbnQ2NChzdHIsIGVuZHB0ciwgYmFzZSwgJy05MjIzMzcyMDM2ODU0
Nzc1ODA4JywgJzkyMjMzNzIwMzY4NTQ3NzU4MDcnKTsgIC8vIExMT05HX01JTiwgTExPTkdfTUFY
LgotICAgIH12YXIgX3N0cnRvbGxfbD1fc3RydG9sbDsKLSAgZnVuY3Rpb24gX3VzZWxvY2FsZShs
b2NhbGUpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAgZnVuY3Rpb24gX19fbG9jYWxlX21i
X2N1cl9tYXgoKSB7IHRocm93ICdfX2xvY2FsZV9tYl9jdXJfbWF4IG5vdCBpbXBsZW1lbnRlZCcg
fQotICB2YXIgX2xsdm1fdmFfc3RhcnQ9dW5kZWZpbmVkOwotICBmdW5jdGlvbiBfc3ByaW50Zihz
LCBmb3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzcHJpbnRmKGNoYXIgKnJlc3RyaWN0
IHMsIGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgLi4uKTsKLSAgICAgIC8vIGh0dHA6Ly9w
dWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3ByaW50Zi5o
dG1sCi0gICAgICByZXR1cm4gX3NucHJpbnRmKHMsIHVuZGVmaW5lZCwgZm9ybWF0LCB2YXJhcmdz
KTsKLSAgICB9ZnVuY3Rpb24gX2FzcHJpbnRmKHMsIGZvcm1hdCwgdmFyYXJncykgewotICAgICAg
cmV0dXJuIF9zcHJpbnRmKC1zLCBmb3JtYXQsIHZhcmFyZ3MpOwotICAgIH1mdW5jdGlvbiBfdmFz
cHJpbnRmKHMsIGZvcm1hdCwgdmFfYXJnKSB7Ci0gICAgICByZXR1cm4gX2FzcHJpbnRmKHMsIGZv
cm1hdCwgSEVBUDMyWygodmFfYXJnKT4+MildKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9sbHZtX3Zh
X2VuZCgpIHt9Ci0gIGZ1bmN0aW9uIF92c25wcmludGYocywgbiwgZm9ybWF0LCB2YV9hcmcpIHsK
LSAgICAgIHJldHVybiBfc25wcmludGYocywgbiwgZm9ybWF0LCBIRUFQMzJbKCh2YV9hcmcpPj4y
KV0pOwotICAgIH0KLSAgZnVuY3Rpb24gX3Zzc2NhbmYocywgZm9ybWF0LCB2YV9hcmcpIHsKLSAg
ICAgIHJldHVybiBfc3NjYW5mKHMsIGZvcm1hdCwgSEVBUDMyWygodmFfYXJnKT4+MildKTsKLSAg
ICB9Ci0gIGZ1bmN0aW9uIF9zYnJrKGJ5dGVzKSB7Ci0gICAgICAvLyBJbXBsZW1lbnQgYSBMaW51
eC1saWtlICdtZW1vcnkgYXJlYScgZm9yIG91ciAncHJvY2VzcycuCi0gICAgICAvLyBDaGFuZ2Vz
IHRoZSBzaXplIG9mIHRoZSBtZW1vcnkgYXJlYSBieSB8Ynl0ZXN8OyByZXR1cm5zIHRoZQotICAg
ICAgLy8gYWRkcmVzcyBvZiB0aGUgcHJldmlvdXMgdG9wICgnYnJlYWsnKSBvZiB0aGUgbWVtb3J5
IGFyZWEKLSAgICAgIC8vIFdlIGNvbnRyb2wgdGhlICJkeW5hbWljIiBtZW1vcnkgLSBEWU5BTUlD
X0JBU0UgdG8gRFlOQU1JQ1RPUAotICAgICAgdmFyIHNlbGYgPSBfc2JyazsKLSAgICAgIGlmICgh
c2VsZi5jYWxsZWQpIHsKLSAgICAgICAgRFlOQU1JQ1RPUCA9IGFsaWduTWVtb3J5UGFnZShEWU5B
TUlDVE9QKTsgLy8gbWFrZSBzdXJlIHdlIHN0YXJ0IG91dCBhbGlnbmVkCi0gICAgICAgIHNlbGYu
Y2FsbGVkID0gdHJ1ZTsKLSAgICAgICAgYXNzZXJ0KFJ1bnRpbWUuZHluYW1pY0FsbG9jKTsKLSAg
ICAgICAgc2VsZi5hbGxvYyA9IFJ1bnRpbWUuZHluYW1pY0FsbG9jOwotICAgICAgICBSdW50aW1l
LmR5bmFtaWNBbGxvYyA9IGZ1bmN0aW9uKCkgeyBhYm9ydCgnY2Fubm90IGR5bmFtaWNhbGx5IGFs
bG9jYXRlLCBzYnJrIG5vdyBoYXMgY29udHJvbCcpIH07Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0
ID0gRFlOQU1JQ1RPUDsKLSAgICAgIGlmIChieXRlcyAhPSAwKSBzZWxmLmFsbG9jKGJ5dGVzKTsK
LSAgICAgIHJldHVybiByZXQ7ICAvLyBQcmV2aW91cyBicmVhayBsb2NhdGlvbi4KLSAgICB9Ci0g
IGZ1bmN0aW9uIF90aW1lKHB0cikgewotICAgICAgdmFyIHJldCA9IE1hdGguZmxvb3IoRGF0ZS5u
b3coKS8xMDAwKTsKLSAgICAgIGlmIChwdHIpIHsKLSAgICAgICAgSEVBUDMyWygocHRyKT4+Mild
PXJldAotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4
YV9jYWxsX3VuZXhwZWN0ZWQoZXhjZXB0aW9uKSB7Ci0gICAgICBNb2R1bGUucHJpbnRFcnIoJ1Vu
ZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93biwgdGhpcyBpcyBub3QgcHJvcGVybHkgc3VwcG9ydGVk
IC0gYWJvcnRpbmcnKTsKLSAgICAgIEFCT1JUID0gdHJ1ZTsKLSAgICAgIHRocm93IGV4Y2VwdGlv
bjsKLSAgICB9Ci0gIHZhciBCcm93c2VyPXttYWluTG9vcDp7c2NoZWR1bGVyOm51bGwsc2hvdWxk
UGF1c2U6ZmFsc2UscGF1c2VkOmZhbHNlLHF1ZXVlOltdLHBhdXNlOmZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNob3VsZFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgfSxy
ZXN1bWU6ZnVuY3Rpb24gKCkgewotICAgICAgICAgIGlmIChCcm93c2VyLm1haW5Mb29wLnBhdXNl
ZCkgewotICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5wYXVzZWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgIEJyb3dzZXIubWFpbkxvb3Auc2NoZWR1bGVyKCk7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIEJyb3dzZXIubWFpbkxvb3Auc2hvdWxkUGF1c2UgPSBmYWxzZTsKLSAgICAgICAgfSx1cGRh
dGVTdGF0dXM6ZnVuY3Rpb24gKCkgewotICAgICAgICAgIGlmIChNb2R1bGVbJ3NldFN0YXR1cydd
KSB7Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IE1vZHVsZVsnc3RhdHVzTWVzc2FnZSddIHx8
ICdQbGVhc2Ugd2FpdC4uLic7Ci0gICAgICAgICAgICB2YXIgcmVtYWluaW5nID0gQnJvd3Nlci5t
YWluTG9vcC5yZW1haW5pbmdCbG9ja2VyczsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IEJy
b3dzZXIubWFpbkxvb3AuZXhwZWN0ZWRCbG9ja2VyczsKLSAgICAgICAgICAgIGlmIChyZW1haW5p
bmcpIHsKLSAgICAgICAgICAgICAgaWYgKHJlbWFpbmluZyA8IGV4cGVjdGVkKSB7Ci0gICAgICAg
ICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXShtZXNzYWdlICsgJyAoJyArIChleHBlY3RlZCAt
IHJlbWFpbmluZykgKyAnLycgKyBleHBlY3RlZCArICcpJyk7Ci0gICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXShtZXNzYWdlKTsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgTW9kdWxlWydz
ZXRTdGF0dXMnXSgnJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9fSxp
c0Z1bGxTY3JlZW46ZmFsc2UscG9pbnRlckxvY2s6ZmFsc2UsbW9kdWxlQ29udGV4dENyZWF0ZWRD
YWxsYmFja3M6W10sd29ya2VyczpbXSxpbml0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgaWYgKCFN
b2R1bGVbInByZWxvYWRQbHVnaW5zIl0pIE1vZHVsZVsicHJlbG9hZFBsdWdpbnMiXSA9IFtdOyAv
LyBuZWVkcyB0byBleGlzdCBldmVuIGluIHdvcmtlcnMKLSAgICAgICAgaWYgKEJyb3dzZXIuaW5p
dHRlZCB8fCBFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHJldHVybjsKLSAgICAgICAgQnJvd3Nlci5p
bml0dGVkID0gdHJ1ZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBuZXcgQmxvYigpOwotICAg
ICAgICAgIEJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yID0gdHJ1ZTsKLSAgICAgICAgfSBjYXRj
aChlKSB7Ci0gICAgICAgICAgQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPSBmYWxzZTsKLSAg
ICAgICAgICBjb25zb2xlLmxvZygid2FybmluZzogbm8gYmxvYiBjb25zdHJ1Y3RvciwgY2Fubm90
IGNyZWF0ZSBibG9icyB3aXRoIG1pbWV0eXBlcyIpOwotICAgICAgICB9Ci0gICAgICAgIEJyb3dz
ZXIuQmxvYkJ1aWxkZXIgPSB0eXBlb2YgTW96QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIgPyBN
b3pCbG9iQnVpbGRlciA6ICh0eXBlb2YgV2ViS2l0QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIg
PyBXZWJLaXRCbG9iQnVpbGRlciA6ICghQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPyBjb25z
b2xlLmxvZygid2FybmluZzogbm8gQmxvYkJ1aWxkZXIiKSA6IG51bGwpKTsKLSAgICAgICAgQnJv
d3Nlci5VUkxPYmplY3QgPSB0eXBlb2Ygd2luZG93ICE9ICJ1bmRlZmluZWQiID8gKHdpbmRvdy5V
UkwgPyB3aW5kb3cuVVJMIDogd2luZG93LndlYmtpdFVSTCkgOiB1bmRlZmluZWQ7Ci0gICAgICAg
IGlmICghTW9kdWxlLm5vSW1hZ2VEZWNvZGluZyAmJiB0eXBlb2YgQnJvd3Nlci5VUkxPYmplY3Qg
PT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgY29uc29sZS5sb2coIndhcm5pbmc6IEJyb3dz
ZXIgZG9lcyBub3Qgc3VwcG9ydCBjcmVhdGluZyBvYmplY3QgVVJMcy4gQnVpbHQtaW4gYnJvd3Nl
ciBpbWFnZSBkZWNvZGluZyB3aWxsIG5vdCBiZSBhdmFpbGFibGUuIik7Ci0gICAgICAgICAgTW9k
dWxlLm5vSW1hZ2VEZWNvZGluZyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gU3VwcG9y
dCBmb3IgcGx1Z2lucyB0aGF0IGNhbiBwcm9jZXNzIHByZWxvYWRlZCBmaWxlcy4gWW91IGNhbiBh
ZGQgbW9yZSBvZiB0aGVzZSB0bwotICAgICAgICAvLyB5b3VyIGFwcCBieSBjcmVhdGluZyBhbmQg
YXBwZW5kaW5nIHRvIE1vZHVsZS5wcmVsb2FkUGx1Z2lucy4KLSAgICAgICAgLy8KLSAgICAgICAg
Ly8gRWFjaCBwbHVnaW4gaXMgYXNrZWQgaWYgaXQgY2FuIGhhbmRsZSBhIGZpbGUgYmFzZWQgb24g
dGhlIGZpbGUncyBuYW1lLiBJZiBpdCBjYW4sCi0gICAgICAgIC8vIGl0IGlzIGdpdmVuIHRoZSBm
aWxlJ3MgcmF3IGRhdGEuIFdoZW4gaXQgaXMgZG9uZSwgaXQgY2FsbHMgYSBjYWxsYmFjayB3aXRo
IHRoZSBmaWxlJ3MKLSAgICAgICAgLy8gKHBvc3NpYmx5IG1vZGlmaWVkKSBkYXRhLiBGb3IgZXhh
bXBsZSwgYSBwbHVnaW4gbWlnaHQgZGVjb21wcmVzcyBhIGZpbGUsIG9yIGl0Ci0gICAgICAgIC8v
IG1pZ2h0IGNyZWF0ZSBzb21lIHNpZGUgZGF0YSBzdHJ1Y3R1cmUgZm9yIHVzZSBsYXRlciAobGlr
ZSBhbiBJbWFnZSBlbGVtZW50LCBldGMuKS4KLSAgICAgICAgdmFyIGltYWdlUGx1Z2luID0ge307
Ci0gICAgICAgIGltYWdlUGx1Z2luWydjYW5IYW5kbGUnXSA9IGZ1bmN0aW9uKG5hbWUpIHsKLSAg
ICAgICAgICByZXR1cm4gIU1vZHVsZS5ub0ltYWdlRGVjb2RpbmcgJiYgL1wuKGpwZ3xqcGVnfHBu
Z3xibXApJC9pLnRlc3QobmFtZSk7Ci0gICAgICAgIH07Ci0gICAgICAgIGltYWdlUGx1Z2luWydo
YW5kbGUnXSA9IGZ1bmN0aW9uKGJ5dGVBcnJheSwgbmFtZSwgb25sb2FkLCBvbmVycm9yKSB7Ci0g
ICAgICAgICAgdmFyIGIgPSBudWxsOwotICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25z
dHJ1Y3RvcikgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgYiA9IG5ldyBCbG9i
KFtieXRlQXJyYXldLCB7IHR5cGU6IEJyb3dzZXIuZ2V0TWltZXR5cGUobmFtZSkgfSk7Ci0gICAg
ICAgICAgICAgIGlmIChiLnNpemUgIT09IGJ5dGVBcnJheS5sZW5ndGgpIHsgLy8gU2FmYXJpIGJ1
ZyAjMTE4NjMwCi0gICAgICAgICAgICAgICAgLy8gU2FmYXJpJ3MgQmxvYiBjYW4gb25seSB0YWtl
IGFuIEFycmF5QnVmZmVyCi0gICAgICAgICAgICAgICAgYiA9IG5ldyBCbG9iKFsobmV3IFVpbnQ4
QXJyYXkoYnl0ZUFycmF5KSkuYnVmZmVyXSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5h
bWUpIH0pOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAg
ICAgICAgICAgUnVudGltZS53YXJuT25jZSgnQmxvYiBjb25zdHJ1Y3RvciBwcmVzZW50IGJ1dCBm
YWlsczogJyArIGUgKyAnOyBmYWxsaW5nIGJhY2sgdG8gYmxvYiBidWlsZGVyJyk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmICghYikgewotICAgICAgICAgICAgdmFy
IGJiID0gbmV3IEJyb3dzZXIuQmxvYkJ1aWxkZXIoKTsKLSAgICAgICAgICAgIGJiLmFwcGVuZCgo
bmV3IFVpbnQ4QXJyYXkoYnl0ZUFycmF5KSkuYnVmZmVyKTsgLy8gd2UgbmVlZCB0byBwYXNzIGEg
YnVmZmVyLCBhbmQgbXVzdCBjb3B5IHRoZSBhcnJheSB0byBnZXQgdGhlIHJpZ2h0IGRhdGEgcmFu
Z2UKLSAgICAgICAgICAgIGIgPSBiYi5nZXRCbG9iKCk7Ci0gICAgICAgICAgfQotICAgICAgICAg
IHZhciB1cmwgPSBCcm93c2VyLlVSTE9iamVjdC5jcmVhdGVPYmplY3RVUkwoYik7Ci0gICAgICAg
ICAgdmFyIGltZyA9IG5ldyBJbWFnZSgpOwotICAgICAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIGFzc2VydChpbWcuY29tcGxldGUsICdJbWFnZSAnICsgbmFtZSAr
ICcgY291bGQgbm90IGJlIGRlY29kZWQnKTsKLSAgICAgICAgICAgIHZhciBjYW52YXMgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9
IGltZy53aWR0aDsKLSAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0OwotICAg
ICAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwotICAgICAgICAgICAg
Y3R4LmRyYXdJbWFnZShpbWcsIDAsIDApOwotICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRJ
bWFnZXMiXVtuYW1lXSA9IGNhbnZhczsKLSAgICAgICAgICAgIEJyb3dzZXIuVVJMT2JqZWN0LnJl
dm9rZU9iamVjdFVSTCh1cmwpOwotICAgICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2FkKGJ5dGVB
cnJheSk7Ci0gICAgICAgICAgfTsKLSAgICAgICAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uKGV2
ZW50KSB7Ci0gICAgICAgICAgICBjb25zb2xlLmxvZygnSW1hZ2UgJyArIHVybCArICcgY291bGQg
bm90IGJlIGRlY29kZWQnKTsKLSAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7Ci0g
ICAgICAgICAgfTsKLSAgICAgICAgICBpbWcuc3JjID0gdXJsOwotICAgICAgICB9OwotICAgICAg
ICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10ucHVzaChpbWFnZVBsdWdpbik7Ci0gICAgICAgIHZh
ciBhdWRpb1BsdWdpbiA9IHt9OwotICAgICAgICBhdWRpb1BsdWdpblsnY2FuSGFuZGxlJ10gPSBm
dW5jdGlvbihuYW1lKSB7Ci0gICAgICAgICAgcmV0dXJuICFNb2R1bGUubm9BdWRpb0RlY29kaW5n
ICYmIG5hbWUuc3Vic3RyKC00KSBpbiB7ICcub2dnJzogMSwgJy53YXYnOiAxLCAnLm1wMyc6IDEg
fTsKLSAgICAgICAgfTsKLSAgICAgICAgYXVkaW9QbHVnaW5bJ2hhbmRsZSddID0gZnVuY3Rpb24o
Ynl0ZUFycmF5LCBuYW1lLCBvbmxvYWQsIG9uZXJyb3IpIHsKLSAgICAgICAgICB2YXIgZG9uZSA9
IGZhbHNlOwotICAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaChhdWRpbykgewotICAgICAgICAgICAg
aWYgKGRvbmUpIHJldHVybjsKLSAgICAgICAgICAgIGRvbmUgPSB0cnVlOwotICAgICAgICAgICAg
TW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXVtuYW1lXSA9IGF1ZGlvOwotICAgICAgICAgICAgaWYg
KG9ubG9hZCkgb25sb2FkKGJ5dGVBcnJheSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGZ1bmN0
aW9uIGZhaWwoKSB7Ci0gICAgICAgICAgICBpZiAoZG9uZSkgcmV0dXJuOwotICAgICAgICAgICAg
ZG9uZSA9IHRydWU7Ci0gICAgICAgICAgICBNb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdW25hbWVd
ID0gbmV3IEF1ZGlvKCk7IC8vIGVtcHR5IHNoaW0KLSAgICAgICAgICAgIGlmIChvbmVycm9yKSBv
bmVycm9yKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25z
dHJ1Y3RvcikgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgdmFyIGIgPSBuZXcg
QmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpIH0pOwot
ICAgICAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWlsKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB2YXIgdXJsID0gQnJvd3Nlci5VUkxPYmplY3QuY3Jl
YXRlT2JqZWN0VVJMKGIpOyAvLyBYWFggd2UgbmV2ZXIgcmV2b2tlIHRoaXMhCi0gICAgICAgICAg
ICB2YXIgYXVkaW8gPSBuZXcgQXVkaW8oKTsKLSAgICAgICAgICAgIGF1ZGlvLmFkZEV2ZW50TGlz
dGVuZXIoJ2NhbnBsYXl0aHJvdWdoJywgZnVuY3Rpb24oKSB7IGZpbmlzaChhdWRpbykgfSwgZmFs
c2UpOyAvLyB1c2UgYWRkRXZlbnRMaXN0ZW5lciBkdWUgdG8gY2hyb21pdW0gYnVnIDEyNDkyNgot
ICAgICAgICAgICAgYXVkaW8ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAg
ICAgIGlmIChkb25lKSByZXR1cm47Ci0gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3YXJuaW5n
OiBicm93c2VyIGNvdWxkIG5vdCBmdWxseSBkZWNvZGUgYXVkaW8gJyArIG5hbWUgKyAnLCB0cnlp
bmcgc2xvd2VyIGJhc2U2NCBhcHByb2FjaCcpOwotICAgICAgICAgICAgICBmdW5jdGlvbiBlbmNv
ZGU2NChkYXRhKSB7Ci0gICAgICAgICAgICAgICAgdmFyIEJBU0UgPSAnQUJDREVGR0hJSktMTU5P
UFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7Ci0gICAg
ICAgICAgICAgICAgdmFyIFBBRCA9ICc9JzsKLSAgICAgICAgICAgICAgICB2YXIgcmV0ID0gJyc7
Ci0gICAgICAgICAgICAgICAgdmFyIGxlZnRjaGFyID0gMDsKLSAgICAgICAgICAgICAgICB2YXIg
bGVmdGJpdHMgPSAwOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5s
ZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgbGVmdGNoYXIgPSAobGVmdGNoYXIgPDwg
OCkgfCBkYXRhW2ldOwotICAgICAgICAgICAgICAgICAgbGVmdGJpdHMgKz0gODsKLSAgICAgICAg
ICAgICAgICAgIHdoaWxlIChsZWZ0Yml0cyA+PSA2KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZh
ciBjdXJyID0gKGxlZnRjaGFyID4+IChsZWZ0Yml0cy02KSkgJiAweDNmOwotICAgICAgICAgICAg
ICAgICAgICBsZWZ0Yml0cyAtPSA2OwotICAgICAgICAgICAgICAgICAgICByZXQgKz0gQkFTRVtj
dXJyXTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgaWYgKGxlZnRiaXRzID09IDIpIHsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBCQVNF
WyhsZWZ0Y2hhciYzKSA8PCA0XTsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBQQUQgKyBQQUQ7
Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsZWZ0Yml0cyA9PSA0KSB7Ci0gICAgICAgICAg
ICAgICAgICByZXQgKz0gQkFTRVsobGVmdGNoYXImMHhmKSA8PCAyXTsKLSAgICAgICAgICAgICAg
ICAgIHJldCArPSBQQUQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVy
biByZXQ7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYXVkaW8uc3JjID0gJ2RhdGE6
YXVkaW8veC0nICsgbmFtZS5zdWJzdHIoLTMpICsgJztiYXNlNjQsJyArIGVuY29kZTY0KGJ5dGVB
cnJheSk7Ci0gICAgICAgICAgICAgIGZpbmlzaChhdWRpbyk7IC8vIHdlIGRvbid0IHdhaXQgZm9y
IGNvbmZpcm1hdGlvbiB0aGlzIHdvcmtlZCAtIGJ1dCBpdCdzIHdvcnRoIHRyeWluZwotICAgICAg
ICAgICAgfTsKLSAgICAgICAgICAgIGF1ZGlvLnNyYyA9IHVybDsKLSAgICAgICAgICAgIC8vIHdv
cmthcm91bmQgZm9yIGNocm9tZSBidWcgMTI0OTI2IC0gd2UgZG8gbm90IGFsd2F5cyBnZXQgb25j
YW5wbGF5dGhyb3VnaCBvciBvbmVycm9yCi0gICAgICAgICAgICBCcm93c2VyLnNhZmVTZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBmaW5pc2goYXVkaW8pOyAvLyB0cnkgdG8g
dXNlIGl0IGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCBuZWNlc3NhcmlseSByZWFkeSB0byBwbGF5Ci0g
ICAgICAgICAgICB9LCAxMDAwMCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJl
dHVybiBmYWlsKCk7Ci0gICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBNb2R1bGVbJ3By
ZWxvYWRQbHVnaW5zJ10ucHVzaChhdWRpb1BsdWdpbik7Ci0gICAgICAgIC8vIENhbnZhcyBldmVu
dCBzZXR1cAotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAg
Y2FudmFzLnJlcXVlc3RQb2ludGVyTG9jayA9IGNhbnZhc1sncmVxdWVzdFBvaW50ZXJMb2NrJ10g
fHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc1snbW96UmVxdWVz
dFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
bnZhc1snd2Via2l0UmVxdWVzdFBvaW50ZXJMb2NrJ107Ci0gICAgICAgIGNhbnZhcy5leGl0UG9p
bnRlckxvY2sgPSBkb2N1bWVudFsnZXhpdFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pFeGl0UG9pbnRlckxvY2snXSB8fAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ3dlYmtpdEV4aXRQb2ludGVy
TG9jayddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpe307
IC8vIG5vLW9wIGlmIGZ1bmN0aW9uIGRvZXMgbm90IGV4aXN0Ci0gICAgICAgIGNhbnZhcy5leGl0
UG9pbnRlckxvY2sgPSBjYW52YXMuZXhpdFBvaW50ZXJMb2NrLmJpbmQoZG9jdW1lbnQpOwotICAg
ICAgICBmdW5jdGlvbiBwb2ludGVyTG9ja0NoYW5nZSgpIHsKLSAgICAgICAgICBCcm93c2VyLnBv
aW50ZXJMb2NrID0gZG9jdW1lbnRbJ3BvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXMgfHwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ21velBvaW50ZXJMb2Nr
RWxlbWVudCddID09PSBjYW52YXMgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnRbJ3dlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXM7Ci0gICAgICAg
IH0KLSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxvY2tjaGFuZ2Un
LCBwb2ludGVyTG9ja0NoYW5nZSwgZmFsc2UpOwotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCdtb3pwb2ludGVybG9ja2NoYW5nZScsIHBvaW50ZXJMb2NrQ2hhbmdlLCBmYWxzZSk7
Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdHBvaW50ZXJsb2NrY2hh
bmdlJywgcG9pbnRlckxvY2tDaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgaWYgKE1vZHVsZVsnZWxl
bWVudFBvaW50ZXJMb2NrJ10pIHsKLSAgICAgICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCBmdW5jdGlvbihldikgewotICAgICAgICAgICAgaWYgKCFCcm93c2VyLnBvaW50ZXJM
b2NrICYmIGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxvY2spIHsKLSAgICAgICAgICAgICAgY2FudmFz
LnJlcXVlc3RQb2ludGVyTG9jaygpOwotICAgICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgp
OwotICAgICAgICAgICAgfQotICAgICAgICAgIH0sIGZhbHNlKTsKLSAgICAgICAgfQotICAgICAg
fSxjcmVhdGVDb250ZXh0OmZ1bmN0aW9uIChjYW52YXMsIHVzZVdlYkdMLCBzZXRJbk1vZHVsZSkg
ewotICAgICAgICB2YXIgY3R4OwotICAgICAgICB0cnkgewotICAgICAgICAgIGlmICh1c2VXZWJH
TCkgewotICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJ2V4cGVyaW1lbnRhbC13
ZWJnbCcsIHsKLSAgICAgICAgICAgICAgYWxwaGE6IGZhbHNlCi0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJk
Jyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmICghY3R4KSB0aHJvdyAnOignOwotICAgICAg
ICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgTW9kdWxlLnByaW50KCdDb3VsZCBub3QgY3JlYXRl
IGNhbnZhcyAtICcgKyBlKTsKLSAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotICAg
ICAgICBpZiAodXNlV2ViR0wpIHsKLSAgICAgICAgICAvLyBTZXQgdGhlIGJhY2tncm91bmQgb2Yg
dGhlIFdlYkdMIGNhbnZhcyB0byBibGFjawotICAgICAgICAgIGNhbnZhcy5zdHlsZS5iYWNrZ3Jv
dW5kQ29sb3IgPSAiYmxhY2siOwotICAgICAgICAgIC8vIFdhcm4gb24gY29udGV4dCBsb3NzCi0g
ICAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmdsY29udGV4dGxvc3QnLCBmdW5j
dGlvbihldmVudCkgewotICAgICAgICAgICAgYWxlcnQoJ1dlYkdMIGNvbnRleHQgbG9zdC4gWW91
IHdpbGwgbmVlZCB0byByZWxvYWQgdGhlIHBhZ2UuJyk7Ci0gICAgICAgICAgfSwgZmFsc2UpOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChzZXRJbk1vZHVsZSkgewotICAgICAgICAgIE1vZHVsZS5j
dHggPSBjdHg7Ci0gICAgICAgICAgTW9kdWxlLnVzZVdlYkdMID0gdXNlV2ViR0w7Ci0gICAgICAg
ICAgQnJvd3Nlci5tb2R1bGVDb250ZXh0Q3JlYXRlZENhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9u
KGNhbGxiYWNrKSB7IGNhbGxiYWNrKCkgfSk7Ci0gICAgICAgICAgQnJvd3Nlci5pbml0KCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGN0eDsKLSAgICAgIH0sZGVzdHJveUNvbnRleHQ6ZnVu
Y3Rpb24gKGNhbnZhcywgdXNlV2ViR0wsIHNldEluTW9kdWxlKSB7fSxmdWxsU2NyZWVuSGFuZGxl
cnNJbnN0YWxsZWQ6ZmFsc2UsbG9ja1BvaW50ZXI6dW5kZWZpbmVkLHJlc2l6ZUNhbnZhczp1bmRl
ZmluZWQscmVxdWVzdEZ1bGxTY3JlZW46ZnVuY3Rpb24gKGxvY2tQb2ludGVyLCByZXNpemVDYW52
YXMpIHsKLSAgICAgICAgQnJvd3Nlci5sb2NrUG9pbnRlciA9IGxvY2tQb2ludGVyOwotICAgICAg
ICBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9IHJlc2l6ZUNhbnZhczsKLSAgICAgICAgaWYgKHR5cGVv
ZiBCcm93c2VyLmxvY2tQb2ludGVyID09PSAndW5kZWZpbmVkJykgQnJvd3Nlci5sb2NrUG9pbnRl
ciA9IHRydWU7Ci0gICAgICAgIGlmICh0eXBlb2YgQnJvd3Nlci5yZXNpemVDYW52YXMgPT09ICd1
bmRlZmluZWQnKSBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9IGZhbHNlOwotICAgICAgICB2YXIgY2Fu
dmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgZnVuY3Rpb24gZnVsbFNjcmVlbkNoYW5n
ZSgpIHsKLSAgICAgICAgICBCcm93c2VyLmlzRnVsbFNjcmVlbiA9IGZhbHNlOwotICAgICAgICAg
IGlmICgoZG9jdW1lbnRbJ3dlYmtpdEZ1bGxTY3JlZW5FbGVtZW50J10gfHwgZG9jdW1lbnRbJ3dl
YmtpdEZ1bGxzY3JlZW5FbGVtZW50J10gfHwKLSAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pG
dWxsU2NyZWVuRWxlbWVudCddIHx8IGRvY3VtZW50Wydtb3pGdWxsc2NyZWVuRWxlbWVudCddIHx8
Ci0gICAgICAgICAgICAgICBkb2N1bWVudFsnZnVsbFNjcmVlbkVsZW1lbnQnXSB8fCBkb2N1bWVu
dFsnZnVsbHNjcmVlbkVsZW1lbnQnXSkgPT09IGNhbnZhcykgewotICAgICAgICAgICAgY2FudmFz
LmNhbmNlbEZ1bGxTY3JlZW4gPSBkb2N1bWVudFsnY2FuY2VsRnVsbFNjcmVlbiddIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pDYW5jZWxGdWxs
U2NyZWVuJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnRbJ3dlYmtpdENhbmNlbEZ1bGxTY3JlZW4nXTsKLSAgICAgICAgICAgIGNhbnZhcy5jYW5jZWxG
dWxsU2NyZWVuID0gY2FudmFzLmNhbmNlbEZ1bGxTY3JlZW4uYmluZChkb2N1bWVudCk7Ci0gICAg
ICAgICAgICBpZiAoQnJvd3Nlci5sb2NrUG9pbnRlcikgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9j
aygpOwotICAgICAgICAgICAgQnJvd3Nlci5pc0Z1bGxTY3JlZW4gPSB0cnVlOwotICAgICAgICAg
ICAgaWYgKEJyb3dzZXIucmVzaXplQ2FudmFzKSBCcm93c2VyLnNldEZ1bGxTY3JlZW5DYW52YXNT
aXplKCk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChCcm93c2VyLnJlc2l6ZUNhbnZhcyl7Ci0gICAg
ICAgICAgICBCcm93c2VyLnNldFdpbmRvd2VkQ2FudmFzU2l6ZSgpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICBpZiAoTW9kdWxlWydvbkZ1bGxTY3JlZW4nXSkgTW9kdWxlWydvbkZ1bGxTY3JlZW4n
XShCcm93c2VyLmlzRnVsbFNjcmVlbik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFCcm93c2Vy
LmZ1bGxTY3JlZW5IYW5kbGVyc0luc3RhbGxlZCkgewotICAgICAgICAgIEJyb3dzZXIuZnVsbFNj
cmVlbkhhbmRsZXJzSW5zdGFsbGVkID0gdHJ1ZTsKLSAgICAgICAgICBkb2N1bWVudC5hZGRFdmVu
dExpc3RlbmVyKCdmdWxsc2NyZWVuY2hhbmdlJywgZnVsbFNjcmVlbkNoYW5nZSwgZmFsc2UpOwot
ICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vemZ1bGxzY3JlZW5jaGFuZ2Un
LCBmdWxsU2NyZWVuQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcignd2Via2l0ZnVsbHNjcmVlbmNoYW5nZScsIGZ1bGxTY3JlZW5DaGFuZ2UsIGZhbHNl
KTsKLSAgICAgICAgfQotICAgICAgICBjYW52YXMucmVxdWVzdEZ1bGxTY3JlZW4gPSBjYW52YXNb
J3JlcXVlc3RGdWxsU2NyZWVuJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2FudmFzWydtb3pSZXF1ZXN0RnVsbFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChjYW52YXNbJ3dlYmtpdFJlcXVlc3RGdWxsU2NyZWVuJ10gPyBmdW5j
dGlvbigpIHsgY2FudmFzWyd3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiddKEVsZW1lbnRbJ0FMTE9X
X0tFWUJPQVJEX0lOUFVUJ10pIH0gOiBudWxsKTsKLSAgICAgICAgY2FudmFzLnJlcXVlc3RGdWxs
U2NyZWVuKCk7Ci0gICAgICB9LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbiAoZnVuYykg
ewotICAgICAgICBpZiAoIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIHsKLSAgICAgICAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gd2luZG93WydyZXF1ZXN0QW5pbWF0aW9u
RnJhbWUnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dbJ21velJlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvd1snd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10g
fHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Wydtc1Jl
cXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdpbmRvd1snb1JlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1snc2V0VGltZW91dCddOwotICAg
ICAgICB9Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuYyk7Ci0gICAg
ICB9LHNhZmVDYWxsYmFjazpmdW5jdGlvbiAoZnVuYykgewotICAgICAgICByZXR1cm4gZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgcmV0dXJuIGZ1bmMuYXBwbHkobnVsbCwgYXJn
dW1lbnRzKTsKLSAgICAgICAgfTsKLSAgICAgIH0sc2FmZVJlcXVlc3RBbmltYXRpb25GcmFtZTpm
dW5jdGlvbiAoZnVuYykgewotICAgICAgICByZXR1cm4gQnJvd3Nlci5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOwotICAgICAg
ICB9KTsKLSAgICAgIH0sc2FmZVNldFRpbWVvdXQ6ZnVuY3Rpb24gKGZ1bmMsIHRpbWVvdXQpIHsK
LSAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFB
Qk9SVCkgZnVuYygpOwotICAgICAgICB9LCB0aW1lb3V0KTsKLSAgICAgIH0sc2FmZVNldEludGVy
dmFsOmZ1bmN0aW9uIChmdW5jLCB0aW1lb3V0KSB7Ci0gICAgICAgIHJldHVybiBzZXRJbnRlcnZh
bChmdW5jdGlvbigpIHsKLSAgICAgICAgICBpZiAoIUFCT1JUKSBmdW5jKCk7Ci0gICAgICAgIH0s
IHRpbWVvdXQpOwotICAgICAgfSxnZXRNaW1ldHlwZTpmdW5jdGlvbiAobmFtZSkgewotICAgICAg
ICByZXR1cm4gewotICAgICAgICAgICdqcGcnOiAnaW1hZ2UvanBlZycsCi0gICAgICAgICAgJ2pw
ZWcnOiAnaW1hZ2UvanBlZycsCi0gICAgICAgICAgJ3BuZyc6ICdpbWFnZS9wbmcnLAotICAgICAg
ICAgICdibXAnOiAnaW1hZ2UvYm1wJywKLSAgICAgICAgICAnb2dnJzogJ2F1ZGlvL29nZycsCi0g
ICAgICAgICAgJ3dhdic6ICdhdWRpby93YXYnLAotICAgICAgICAgICdtcDMnOiAnYXVkaW8vbXBl
ZycKLSAgICAgICAgfVtuYW1lLnN1YnN0cihuYW1lLmxhc3RJbmRleE9mKCcuJykrMSldOwotICAg
ICAgfSxnZXRVc2VyTWVkaWE6ZnVuY3Rpb24gKGZ1bmMpIHsKLSAgICAgICAgaWYoIXdpbmRvdy5n
ZXRVc2VyTWVkaWEpIHsKLSAgICAgICAgICB3aW5kb3cuZ2V0VXNlck1lZGlhID0gbmF2aWdhdG9y
WydnZXRVc2VyTWVkaWEnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZp
Z2F0b3JbJ21vekdldFVzZXJNZWRpYSddOwotICAgICAgICB9Ci0gICAgICAgIHdpbmRvdy5nZXRV
c2VyTWVkaWEoZnVuYyk7Ci0gICAgICB9LGdldE1vdmVtZW50WDpmdW5jdGlvbiAoZXZlbnQpIHsK
LSAgICAgICAgcmV0dXJuIGV2ZW50Wydtb3ZlbWVudFgnXSB8fAotICAgICAgICAgICAgICAgZXZl
bnRbJ21vek1vdmVtZW50WCddIHx8Ci0gICAgICAgICAgICAgICBldmVudFsnd2Via2l0TW92ZW1l
bnRYJ10gfHwKLSAgICAgICAgICAgICAgIDA7Ci0gICAgICB9LGdldE1vdmVtZW50WTpmdW5jdGlv
biAoZXZlbnQpIHsKLSAgICAgICAgcmV0dXJuIGV2ZW50Wydtb3ZlbWVudFknXSB8fAotICAgICAg
ICAgICAgICAgZXZlbnRbJ21vek1vdmVtZW50WSddIHx8Ci0gICAgICAgICAgICAgICBldmVudFsn
d2Via2l0TW92ZW1lbnRZJ10gfHwKLSAgICAgICAgICAgICAgIDA7Ci0gICAgICB9LG1vdXNlWDow
LG1vdXNlWTowLG1vdXNlTW92ZW1lbnRYOjAsbW91c2VNb3ZlbWVudFk6MCxjYWxjdWxhdGVNb3Vz
ZUV2ZW50OmZ1bmN0aW9uIChldmVudCkgeyAvLyBldmVudCBzaG91bGQgYmUgbW91c2Vtb3ZlLCBt
b3VzZWRvd24gb3IgbW91c2V1cAotICAgICAgICBpZiAoQnJvd3Nlci5wb2ludGVyTG9jaykgewot
ICAgICAgICAgIC8vIFdoZW4gdGhlIHBvaW50ZXIgaXMgbG9ja2VkLCBjYWxjdWxhdGUgdGhlIGNv
b3JkaW5hdGVzCi0gICAgICAgICAgLy8gYmFzZWQgb24gdGhlIG1vdmVtZW50IG9mIHRoZSBtb3Vz
ZS4KLSAgICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBGaXJlZm94IGJ1ZyA3NjQ0OTgKLSAgICAg
ICAgICBpZiAoZXZlbnQudHlwZSAhPSAnbW91c2Vtb3ZlJyAmJgotICAgICAgICAgICAgICAoJ21v
ek1vdmVtZW50WCcgaW4gZXZlbnQpKSB7Ci0gICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1l
bnRYID0gQnJvd3Nlci5tb3VzZU1vdmVtZW50WSA9IDA7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFggPSBCcm93c2VyLmdldE1vdmVtZW50WChl
dmVudCk7Ci0gICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1lbnRZID0gQnJvd3Nlci5nZXRN
b3ZlbWVudFkoZXZlbnQpOwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBjaGVjayBpZiBTREwg
aXMgYXZhaWxhYmxlCi0gICAgICAgICAgaWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsK
LSAgICAgICAgICAJQnJvd3Nlci5tb3VzZVggPSBTREwubW91c2VYICsgQnJvd3Nlci5tb3VzZU1v
dmVtZW50WDsKLSAgICAgICAgICAJQnJvd3Nlci5tb3VzZVkgPSBTREwubW91c2VZICsgQnJvd3Nl
ci5tb3VzZU1vdmVtZW50WTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgIAkvLyBqdXN0
IGFkZCB0aGUgbW91c2UgZGVsdGEgdG8gdGhlIGN1cnJlbnQgYWJzb2x1dCBtb3VzZSBwb3NpdGlv
bgotICAgICAgICAgIAkvLyBGSVhNRTogaWRlYWxseSB0aGlzIHNob3VsZCBiZSBjbGFtcGVkIGFn
YWluc3QgdGhlIGNhbnZhcyBzaXplIGFuZCB6ZXJvCi0gICAgICAgICAgCUJyb3dzZXIubW91c2VY
ICs9IEJyb3dzZXIubW91c2VNb3ZlbWVudFg7Ci0gICAgICAgICAgCUJyb3dzZXIubW91c2VZICs9
IEJyb3dzZXIubW91c2VNb3ZlbWVudFk7Ci0gICAgICAgICAgfSAgICAgICAgCi0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgLy8gT3RoZXJ3aXNlLCBjYWxjdWxhdGUgdGhlIG1vdmVtZW50IGJh
c2VkIG9uIHRoZSBjaGFuZ2VzCi0gICAgICAgICAgLy8gaW4gdGhlIGNvb3JkaW5hdGVzLgotICAg
ICAgICAgIHZhciByZWN0ID0gTW9kdWxlWyJjYW52YXMiXS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKLSAgICAgICAgICB2YXIgeCwgeTsKLSAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PSAndG91
Y2hzdGFydCcgfHwKLSAgICAgICAgICAgICAgZXZlbnQudHlwZSA9PSAndG91Y2hlbmQnIHx8Ci0g
ICAgICAgICAgICAgIGV2ZW50LnR5cGUgPT0gJ3RvdWNobW92ZScpIHsKLSAgICAgICAgICAgIHZh
ciB0ID0gZXZlbnQudG91Y2hlcy5pdGVtKDApOwotICAgICAgICAgICAgaWYgKHQpIHsKLSAgICAg
ICAgICAgICAgeCA9IHQucGFnZVggLSAod2luZG93LnNjcm9sbFggKyByZWN0LmxlZnQpOwotICAg
ICAgICAgICAgICB5ID0gdC5wYWdlWSAtICh3aW5kb3cuc2Nyb2xsWSArIHJlY3QudG9wKTsKLSAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgeCA9IGV2ZW50LnBhZ2VYIC0gKHdpbmRv
dy5zY3JvbGxYICsgcmVjdC5sZWZ0KTsKLSAgICAgICAgICAgIHkgPSBldmVudC5wYWdlWSAtICh3
aW5kb3cuc2Nyb2xsWSArIHJlY3QudG9wKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gdGhl
IGNhbnZhcyBtaWdodCBiZSBDU1Mtc2NhbGVkIGNvbXBhcmVkIHRvIGl0cyBiYWNrYnVmZmVyOwot
ICAgICAgICAgIC8vIFNETC11c2luZyBjb250ZW50IHdpbGwgd2FudCBtb3VzZSBjb29yZGluYXRl
cyBpbiB0ZXJtcwotICAgICAgICAgIC8vIG9mIGJhY2tidWZmZXIgdW5pdHMuCi0gICAgICAgICAg
dmFyIGN3ID0gTW9kdWxlWyJjYW52YXMiXS53aWR0aDsKLSAgICAgICAgICB2YXIgY2ggPSBNb2R1
bGVbImNhbnZhcyJdLmhlaWdodDsKLSAgICAgICAgICB4ID0geCAqIChjdyAvIHJlY3Qud2lkdGgp
OwotICAgICAgICAgIHkgPSB5ICogKGNoIC8gcmVjdC5oZWlnaHQpOwotICAgICAgICAgIEJyb3dz
ZXIubW91c2VNb3ZlbWVudFggPSB4IC0gQnJvd3Nlci5tb3VzZVg7Ci0gICAgICAgICAgQnJvd3Nl
ci5tb3VzZU1vdmVtZW50WSA9IHkgLSBCcm93c2VyLm1vdXNlWTsKLSAgICAgICAgICBCcm93c2Vy
Lm1vdXNlWCA9IHg7Ci0gICAgICAgICAgQnJvd3Nlci5tb3VzZVkgPSB5OwotICAgICAgICB9Ci0g
ICAgICB9LHhockxvYWQ6ZnVuY3Rpb24gKHVybCwgb25sb2FkLCBvbmVycm9yKSB7Ci0gICAgICAg
IHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgeGhyLm9wZW4oJ0dFVCcs
IHVybCwgdHJ1ZSk7Ci0gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOwot
ICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKHhoci5zdGF0
dXMgPT0gMjAwIHx8ICh4aHIuc3RhdHVzID09IDAgJiYgeGhyLnJlc3BvbnNlKSkgeyAvLyBmaWxl
IFVSTHMgY2FuIHJldHVybiAwCi0gICAgICAgICAgICBvbmxvYWQoeGhyLnJlc3BvbnNlKTsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgb25lcnJvcigpOwotICAgICAgICAgIH0KLSAg
ICAgICAgfTsKLSAgICAgICAgeGhyLm9uZXJyb3IgPSBvbmVycm9yOwotICAgICAgICB4aHIuc2Vu
ZChudWxsKTsKLSAgICAgIH0sYXN5bmNMb2FkOmZ1bmN0aW9uICh1cmwsIG9ubG9hZCwgb25lcnJv
ciwgbm9SdW5EZXApIHsKLSAgICAgICAgQnJvd3Nlci54aHJMb2FkKHVybCwgZnVuY3Rpb24oYXJy
YXlCdWZmZXIpIHsKLSAgICAgICAgICBhc3NlcnQoYXJyYXlCdWZmZXIsICdMb2FkaW5nIGRhdGEg
ZmlsZSAiJyArIHVybCArICciIGZhaWxlZCAobm8gYXJyYXlCdWZmZXIpLicpOwotICAgICAgICAg
IG9ubG9hZChuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikpOwotICAgICAgICAgIGlmICghbm9S
dW5EZXApIHJlbW92ZVJ1bkRlcGVuZGVuY3koJ2FsICcgKyB1cmwpOwotICAgICAgICB9LCBmdW5j
dGlvbihldmVudCkgewotICAgICAgICAgIGlmIChvbmVycm9yKSB7Ci0gICAgICAgICAgICBvbmVy
cm9yKCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRocm93ICdMb2FkaW5nIGRh
dGEgZmlsZSAiJyArIHVybCArICciIGZhaWxlZC4nOwotICAgICAgICAgIH0KLSAgICAgICAgfSk7
Ci0gICAgICAgIGlmICghbm9SdW5EZXApIGFkZFJ1bkRlcGVuZGVuY3koJ2FsICcgKyB1cmwpOwot
ICAgICAgfSxyZXNpemVMaXN0ZW5lcnM6W10sdXBkYXRlUmVzaXplTGlzdGVuZXJzOmZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIEJy
b3dzZXIucmVzaXplTGlzdGVuZXJzLmZvckVhY2goZnVuY3Rpb24obGlzdGVuZXIpIHsKLSAgICAg
ICAgICBsaXN0ZW5lcihjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwotICAgICAgICB9KTsK
LSAgICAgIH0sc2V0Q2FudmFzU2l6ZTpmdW5jdGlvbiAod2lkdGgsIGhlaWdodCwgbm9VcGRhdGVz
KSB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBjYW52
YXMud2lkdGggPSB3aWR0aDsKLSAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDsKLSAgICAg
ICAgaWYgKCFub1VwZGF0ZXMpIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7Ci0gICAg
ICB9LHdpbmRvd2VkV2lkdGg6MCx3aW5kb3dlZEhlaWdodDowLHNldEZ1bGxTY3JlZW5DYW52YXNT
aXplOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107
Ci0gICAgICAgIHRoaXMud2luZG93ZWRXaWR0aCA9IGNhbnZhcy53aWR0aDsKLSAgICAgICAgdGhp
cy53aW5kb3dlZEhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7Ci0gICAgICAgIGNhbnZhcy53aWR0aCA9
IHNjcmVlbi53aWR0aDsKLSAgICAgICAgY2FudmFzLmhlaWdodCA9IHNjcmVlbi5oZWlnaHQ7Ci0g
ICAgICAgIC8vIGNoZWNrIGlmIFNETCBpcyBhdmFpbGFibGUgICAKLSAgICAgICAgaWYgKHR5cGVv
ZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgCXZhciBmbGFncyA9IEhFQVBVMzJbKChT
REwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV07Ci0gICAgICAgIAlmbGFncyA9
IGZsYWdzIHwgMHgwMDgwMDAwMDsgLy8gc2V0IFNETF9GVUxMU0NSRUVOIGZsYWcKLSAgICAgICAg
CUhFQVAzMlsoKFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXT1mbGFncwot
ICAgICAgICB9Ci0gICAgICAgIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7Ci0gICAg
ICB9LHNldFdpbmRvd2VkQ2FudmFzU2l6ZTpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBjYW52
YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBjYW52YXMud2lkdGggPSB0aGlzLndpbmRv
d2VkV2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB0aGlzLndpbmRvd2VkSGVpZ2h0Owot
ICAgICAgICAvLyBjaGVjayBpZiBTREwgaXMgYXZhaWxhYmxlICAgICAgIAotICAgICAgICBpZiAo
dHlwZW9mIFNETCAhPSAidW5kZWZpbmVkIikgewotICAgICAgICAJdmFyIGZsYWdzID0gSEVBUFUz
MlsoKFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXTsKLSAgICAgICAgCWZs
YWdzID0gZmxhZ3MgJiB+MHgwMDgwMDAwMDsgLy8gY2xlYXIgU0RMX0ZVTExTQ1JFRU4gZmxhZwot
ICAgICAgICAJSEVBUDMyWygoU0RMLnNjcmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+Mild
PWZsYWdzCi0gICAgICAgIH0KLSAgICAgICAgQnJvd3Nlci51cGRhdGVSZXNpemVMaXN0ZW5lcnMo
KTsKLSAgICAgIH19OwotX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZiA9IGFsbG9jYXRlKDEyLCAidm9p
ZCoiLCBBTExPQ19TVEFUSUMpOwotRlMuc3RhdGljSW5pdCgpO19fQVRJTklUX18udW5zaGlmdCh7
IGZ1bmM6IGZ1bmN0aW9uKCkgeyBpZiAoIU1vZHVsZVsibm9GU0luaXQiXSAmJiAhRlMuaW5pdC5p
bml0aWFsaXplZCkgRlMuaW5pdCgpIH0gfSk7X19BVE1BSU5fXy5wdXNoKHsgZnVuYzogZnVuY3Rp
b24oKSB7IEZTLmlnbm9yZVBlcm1pc3Npb25zID0gZmFsc2UgfSB9KTtfX0FURVhJVF9fLnB1c2go
eyBmdW5jOiBmdW5jdGlvbigpIHsgRlMucXVpdCgpIH0gfSk7TW9kdWxlWyJGU19jcmVhdGVGb2xk
ZXIiXSA9IEZTLmNyZWF0ZUZvbGRlcjtNb2R1bGVbIkZTX2NyZWF0ZVBhdGgiXSA9IEZTLmNyZWF0
ZVBhdGg7TW9kdWxlWyJGU19jcmVhdGVEYXRhRmlsZSJdID0gRlMuY3JlYXRlRGF0YUZpbGU7TW9k
dWxlWyJGU19jcmVhdGVQcmVsb2FkZWRGaWxlIl0gPSBGUy5jcmVhdGVQcmVsb2FkZWRGaWxlO01v
ZHVsZVsiRlNfY3JlYXRlTGF6eUZpbGUiXSA9IEZTLmNyZWF0ZUxhenlGaWxlO01vZHVsZVsiRlNf
Y3JlYXRlTGluayJdID0gRlMuY3JlYXRlTGluaztNb2R1bGVbIkZTX2NyZWF0ZURldmljZSJdID0g
RlMuY3JlYXRlRGV2aWNlOwotX19fZXJybm9fc3RhdGUgPSBSdW50aW1lLnN0YXRpY0FsbG9jKDQp
OyBIRUFQMzJbKChfX19lcnJub19zdGF0ZSk+PjIpXT0wOwotX2ZnZXRjLnJldCA9IGFsbG9jYXRl
KFswXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLU1vZHVsZVsicmVxdWVzdEZ1bGxTY3JlZW4iXSA9
IGZ1bmN0aW9uKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMpIHsgQnJvd3Nlci5yZXF1ZXN0RnVs
bFNjcmVlbihsb2NrUG9pbnRlciwgcmVzaXplQ2FudmFzKSB9OwotICBNb2R1bGVbInJlcXVlc3RB
bmltYXRpb25GcmFtZSJdID0gZnVuY3Rpb24oZnVuYykgeyBCcm93c2VyLnJlcXVlc3RBbmltYXRp
b25GcmFtZShmdW5jKSB9OwotICBNb2R1bGVbInNldENhbnZhc1NpemUiXSA9IGZ1bmN0aW9uKHdp
ZHRoLCBoZWlnaHQsIG5vVXBkYXRlcykgeyBCcm93c2VyLnNldENhbnZhc1NpemUod2lkdGgsIGhl
aWdodCwgbm9VcGRhdGVzKSB9OwotICBNb2R1bGVbInBhdXNlTWFpbkxvb3AiXSA9IGZ1bmN0aW9u
KCkgeyBCcm93c2VyLm1haW5Mb29wLnBhdXNlKCkgfTsKLSAgTW9kdWxlWyJyZXN1bWVNYWluTG9v
cCJdID0gZnVuY3Rpb24oKSB7IEJyb3dzZXIubWFpbkxvb3AucmVzdW1lKCkgfTsKLSAgTW9kdWxl
WyJnZXRVc2VyTWVkaWEiXSA9IGZ1bmN0aW9uKCkgeyBCcm93c2VyLmdldFVzZXJNZWRpYSgpIH0K
LVNUQUNLX0JBU0UgPSBTVEFDS1RPUCA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkoU1RBVElDVE9QKTsK
LXN0YXRpY1NlYWxlZCA9IHRydWU7IC8vIHNlYWwgdGhlIHN0YXRpYyBwb3J0aW9uIG9mIG1lbW9y
eQotU1RBQ0tfTUFYID0gU1RBQ0tfQkFTRSArIDUyNDI4ODA7Ci1EWU5BTUlDX0JBU0UgPSBEWU5B
TUlDVE9QID0gUnVudGltZS5hbGlnbk1lbW9yeShTVEFDS19NQVgpOwotYXNzZXJ0KERZTkFNSUNf
QkFTRSA8IFRPVEFMX01FTU9SWSk7IC8vIFN0YWNrIG11c3QgZml0IGluIFRPVEFMX01FTU9SWTsg
YWxsb2NhdGlvbnMgZnJvbSBoZXJlIG9uIG1heSBlbmxhcmdlIFRPVEFMX01FTU9SWQotIHZhciBj
dHR6X2k4ID0gYWxsb2NhdGUoWzgsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEs
MCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSww
LDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNiwwLDEsMCwyLDAsMSwwLDMsMCwxLDAs
MiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwz
LDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw3LDAsMSwwLDIs
MCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSww
LDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAs
MSwwLDYsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwx
LDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEs
MCwzLDAsMSwwLDIsMCwxLDBdLCAiaTgiLCBBTExPQ19EWU5BTUlDKTsKLXZhciBNYXRoX21pbiA9
IE1hdGgubWluOwotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSkg
ewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWkiXShpbmRleCxhMSxhMixhMyxh
NCxhNSk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYg
ZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAg
fQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3
KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpIl0oaW5kZXgsYTEsYTIs
YTMsYTQsYTUsYTYsYTcpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdu
dW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0o
MSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aShpbmRleCxhMSkgewotICB0cnkgewot
ICAgIE1vZHVsZVsiZHluQ2FsbF92aSJdKGluZGV4LGExKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAg
aWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0g
ICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpKGlu
ZGV4LGExLGEyKSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaSJdKGluZGV4LGEx
LGEyKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBl
ICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9
Ci19Ci1mdW5jdGlvbiBpbnZva2VfaWlpKGluZGV4LGExLGEyKSB7Ci0gIHRyeSB7Ci0gICAgcmV0
dXJuIE1vZHVsZVsiZHluQ2FsbF9paWkiXShpbmRleCxhMSxhMik7Ci0gIH0gY2F0Y2goZSkgewot
ICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBl
OwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lp
aWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVb
ImR5bkNhbGxfaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUpOwotICB9IGNhdGNoKGUpIHsK
LSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cg
ZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9p
aShpbmRleCxhMSkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWkiXShp
bmRleCxhMSk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicg
JiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsK
LSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lpaWkoaW5kZXgsYTEsYTIsYTMpIHsKLSAgdHJ5IHsK
LSAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXShpbmRleCxhMSxhMixhMyk7Ci0gIH0g
Y2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdq
bXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rp
b24gaW52b2tlX3ZpaWlpaWYoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYpIHsKLSAgdHJ5IHsKLSAg
ICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZiJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KTsKLSAg
fSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9u
Z2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5j
dGlvbiBpbnZva2VfdmlpaShpbmRleCxhMSxhMixhMykgewotICB0cnkgewotICAgIE1vZHVsZVsi
ZHluQ2FsbF92aWlpIl0oaW5kZXgsYTEsYTIsYTMpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAo
dHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBh
c21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWko
aW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5
bkNhbGxfdmlpaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpOwotICB9IGNh
dGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1w
JykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9u
IGludm9rZV92KGluZGV4KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3YiXShpbmRl
eCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAh
PT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQot
fQotZnVuY3Rpb24gaW52b2tlX2lpaWlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxh
OCkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWlpIl0oaW5k
ZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlw
ZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21b
InNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWlpKGlu
ZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4LGE5KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJk
eW5DYWxsX3ZpaWlpaWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSk7Ci0g
IH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xv
bmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVu
Y3Rpb24gaW52b2tlX3ZpaWlpaWlmKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3KSB7Ci0gIHRy
eSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlmIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUs
YTYsYTcpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYm
IGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0g
IH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KSB7
Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWkiXShpbmRleCxhMSxhMixhMyxh
NCxhNSxhNik7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicg
JiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsK
LSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lpaWlpKGluZGV4LGExLGEyLGEzLGE0KSB7Ci0gIHRy
eSB7Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaSJdKGluZGV4LGExLGEyLGEzLGE0
KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9
PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19
Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWkoaW5kZXgsYTEsYTIsYTMsYTQpIHsKLSAgdHJ5IHsKLSAg
ICBNb2R1bGVbImR5bkNhbGxfdmlpaWkiXShpbmRleCxhMSxhMixhMyxhNCk7Ci0gIH0gY2F0Y2go
ZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0
aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gYXNt
UHJpbnRJbnQoeCwgeSkgewotICBNb2R1bGUucHJpbnQoJ2ludCAnICsgeCArICcsJyArIHkpOy8v
ICsgJyAnICsgbmV3IEVycm9yKCkuc3RhY2spOwotfQotZnVuY3Rpb24gYXNtUHJpbnRGbG9hdCh4
LCB5KSB7Ci0gIE1vZHVsZS5wcmludCgnZmxvYXQgJyArIHggKyAnLCcgKyB5KTsvLyArICcgJyAr
IG5ldyBFcnJvcigpLnN0YWNrKTsKLX0KLS8vIEVNU0NSSVBURU5fU1RBUlRfQVNNCi12YXIgYXNt
PShmdW5jdGlvbihnbG9iYWwsZW52LGJ1ZmZlcil7InVzZSBhc20iO3ZhciBhPW5ldyBnbG9iYWwu
SW50OEFycmF5KGJ1ZmZlcik7dmFyIGI9bmV3IGdsb2JhbC5JbnQxNkFycmF5KGJ1ZmZlcik7dmFy
IGM9bmV3IGdsb2JhbC5JbnQzMkFycmF5KGJ1ZmZlcik7dmFyIGQ9bmV3IGdsb2JhbC5VaW50OEFy
cmF5KGJ1ZmZlcik7dmFyIGU9bmV3IGdsb2JhbC5VaW50MTZBcnJheShidWZmZXIpO3ZhciBmPW5l
dyBnbG9iYWwuVWludDMyQXJyYXkoYnVmZmVyKTt2YXIgZz1uZXcgZ2xvYmFsLkZsb2F0MzJBcnJh
eShidWZmZXIpO3ZhciBoPW5ldyBnbG9iYWwuRmxvYXQ2NEFycmF5KGJ1ZmZlcik7dmFyIGk9ZW52
LlNUQUNLVE9QfDA7dmFyIGo9ZW52LlNUQUNLX01BWHwwO3ZhciBrPWVudi50ZW1wRG91YmxlUHRy
fDA7dmFyIGw9ZW52LkFCT1JUfDA7dmFyIG09ZW52LmN0dHpfaTh8MDt2YXIgbj1lbnYuY3Rsel9p
OHwwO3ZhciBvPWVudi5fc3RkaW58MDt2YXIgcD1lbnYuX19aVFZOMTBfX2N4eGFiaXYxMTdfX2Ns
YXNzX3R5cGVfaW5mb0V8MDt2YXIgcT1lbnYuX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNz
X3R5cGVfaW5mb0V8MDt2YXIgcj1lbnYuX3N0ZGVycnwwO3ZhciBzPWVudi5fX19mc211OHwwO3Zh
ciB0PWVudi5fc3Rkb3V0fDA7dmFyIHU9ZW52Ll9fX2Rzb19oYW5kbGV8MDt2YXIgdj0rZW52Lk5h
Tjt2YXIgdz0rZW52LkluZmluaXR5O3ZhciB4PTA7dmFyIHk9MDt2YXIgej0wO3ZhciBBPTA7dmFy
IEI9MCxDPTAsRD0wLEU9MCxGPTAuMCxHPTAsSD0wLEk9MCxKPTAuMDt2YXIgSz0wO3ZhciBMPTA7
dmFyIE09MDt2YXIgTj0wO3ZhciBPPTA7dmFyIFA9MDt2YXIgUT0wO3ZhciBSPTA7dmFyIFM9MDt2
YXIgVD0wO3ZhciBVPWdsb2JhbC5NYXRoLmZsb29yO3ZhciBWPWdsb2JhbC5NYXRoLmFiczt2YXIg
Vz1nbG9iYWwuTWF0aC5zcXJ0O3ZhciBYPWdsb2JhbC5NYXRoLnBvdzt2YXIgWT1nbG9iYWwuTWF0
aC5jb3M7dmFyIFo9Z2xvYmFsLk1hdGguc2luO3ZhciBfPWdsb2JhbC5NYXRoLnRhbjt2YXIgJD1n
bG9iYWwuTWF0aC5hY29zO3ZhciBhYT1nbG9iYWwuTWF0aC5hc2luO3ZhciBhYj1nbG9iYWwuTWF0
aC5hdGFuO3ZhciBhYz1nbG9iYWwuTWF0aC5hdGFuMjt2YXIgYWQ9Z2xvYmFsLk1hdGguZXhwO3Zh
ciBhZT1nbG9iYWwuTWF0aC5sb2c7dmFyIGFmPWdsb2JhbC5NYXRoLmNlaWw7dmFyIGFnPWdsb2Jh
bC5NYXRoLmltdWw7dmFyIGFoPWVudi5hYm9ydDt2YXIgYWk9ZW52LmFzc2VydDt2YXIgYWo9ZW52
LmFzbVByaW50SW50O3ZhciBhaz1lbnYuYXNtUHJpbnRGbG9hdDt2YXIgYWw9ZW52Lm1pbjt2YXIg
YW09ZW52Lmludm9rZV92aWlpaWk7dmFyIGFuPWVudi5pbnZva2VfdmlpaWlpaWk7dmFyIGFvPWVu
di5pbnZva2Vfdmk7dmFyIGFwPWVudi5pbnZva2VfdmlpO3ZhciBhcT1lbnYuaW52b2tlX2lpaTt2
YXIgYXI9ZW52Lmludm9rZV9paWlpaWk7dmFyIGFzPWVudi5pbnZva2VfaWk7dmFyIGF0PWVudi5p
bnZva2VfaWlpaTt2YXIgYXU9ZW52Lmludm9rZV92aWlpaWlmO3ZhciBhdj1lbnYuaW52b2tlX3Zp
aWk7dmFyIGF3PWVudi5pbnZva2VfdmlpaWlpaWlpO3ZhciBheD1lbnYuaW52b2tlX3Y7dmFyIGF5
PWVudi5pbnZva2VfaWlpaWlpaWlpO3ZhciBhej1lbnYuaW52b2tlX3ZpaWlpaWlpaWk7dmFyIGFB
PWVudi5pbnZva2VfdmlpaWlpaWY7dmFyIGFCPWVudi5pbnZva2VfdmlpaWlpaTt2YXIgYUM9ZW52
Lmludm9rZV9paWlpaTt2YXIgYUQ9ZW52Lmludm9rZV92aWlpaTt2YXIgYUU9ZW52Ll9sbHZtX2xp
ZmV0aW1lX2VuZDt2YXIgYUY9ZW52Ll9fc2NhblN0cmluZzt2YXIgYUc9ZW52Ll9wdGhyZWFkX211
dGV4X2xvY2s7dmFyIGFIPWVudi5fX19jeGFfZW5kX2NhdGNoO3ZhciBhST1lbnYuX3N0cnRvdWxs
O3ZhciBhSj1lbnYuX19pc0Zsb2F0O3ZhciBhSz1lbnYuX2ZmbHVzaDt2YXIgYUw9ZW52Ll9faXNM
ZWFwWWVhcjt2YXIgYU09ZW52Ll9md3JpdGU7dmFyIGFOPWVudi5fc2VuZDt2YXIgYU89ZW52Ll9s
bHZtX3VtdWxfd2l0aF9vdmVyZmxvd19pMzI7dmFyIGFQPWVudi5faXNzcGFjZTt2YXIgYVE9ZW52
Ll9yZWFkO3ZhciBhUj1lbnYuX19fY3hhX2d1YXJkX2Fib3J0O3ZhciBhUz1lbnYuX25ld2xvY2Fs
ZTt2YXIgYVQ9ZW52Ll9fX2d4eF9wZXJzb25hbGl0eV92MDt2YXIgYVU9ZW52Ll9wdGhyZWFkX2Nv
bmRfd2FpdDt2YXIgYVY9ZW52Ll9fX2N4YV9yZXRocm93O3ZhciBhVz1lbnYuX19fcmVzdW1lRXhj
ZXB0aW9uO3ZhciBhWD1lbnYuX2xsdm1fdmFfZW5kO3ZhciBhWT1lbnYuX3Zzc2NhbmY7dmFyIGFa
PWVudi5fc25wcmludGY7dmFyIGFfPWVudi5fZmdldGM7dmFyIGEkPWVudi5fYXRleGl0O3ZhciBh
MD1lbnYuX19fY3hhX2ZyZWVfZXhjZXB0aW9uO3ZhciBhMT1lbnYuX19aOGNhdGNsb3NlUDhfbmxf
Y2F0ZDt2YXIgYTI9ZW52Ll9fX3NldEVyck5vO3ZhciBhMz1lbnYuX2lzeGRpZ2l0O3ZhciBhND1l
bnYuX2V4aXQ7dmFyIGE1PWVudi5fc3ByaW50Zjt2YXIgYTY9ZW52Ll9fX2N0eXBlX2JfbG9jO3Zh
ciBhNz1lbnYuX2ZyZWVsb2NhbGU7dmFyIGE4PWVudi5fX1o3Y2F0b3BlblBLY2k7dmFyIGE5PWVu
di5fYXNwcmludGY7dmFyIGJhPWVudi5fX19jeGFfaXNfbnVtYmVyX3R5cGU7dmFyIGJiPWVudi5f
X19jeGFfZG9lc19pbmhlcml0O3ZhciBiYz1lbnYuX19fY3hhX2d1YXJkX2FjcXVpcmU7dmFyIGJk
PWVudi5fX19sb2NhbGVfbWJfY3VyX21heDt2YXIgYmU9ZW52Ll9fX2N4YV9iZWdpbl9jYXRjaDt2
YXIgYmY9ZW52Ll9yZWN2O3ZhciBiZz1lbnYuX19wYXJzZUludDY0O3ZhciBiaD1lbnYuX19aU3Qx
OHVuY2F1Z2h0X2V4Y2VwdGlvbnY7dmFyIGJpPWVudi5fX19jeGFfY2FsbF91bmV4cGVjdGVkO3Zh
ciBiaj1lbnYuX19leGl0O3ZhciBiaz1lbnYuX3N0cmZ0aW1lO3ZhciBibD1lbnYuX19fY3hhX3Ro
cm93O3ZhciBibT1lbnYuX2xsdm1fZWhfZXhjZXB0aW9uO3ZhciBibj1lbnYuX3ByZWFkO3ZhciBi
bz1lbnYuX19hcnJheVN1bTt2YXIgYnA9ZW52Ll9sb2c7dmFyIGJxPWVudi5fX19jeGFfZmluZF9t
YXRjaGluZ19jYXRjaDt2YXIgYnI9ZW52Ll9fZm9ybWF0U3RyaW5nO3ZhciBicz1lbnYuX3B0aHJl
YWRfY29uZF9icm9hZGNhc3Q7dmFyIGJ0PWVudi5fX1pTdDl0ZXJtaW5hdGV2O3ZhciBidT1lbnYu
X3B0aHJlYWRfbXV0ZXhfdW5sb2NrO3ZhciBidj1lbnYuX3Nicms7dmFyIGJ3PWVudi5fX19lcnJu
b19sb2NhdGlvbjt2YXIgYng9ZW52Ll9zdHJlcnJvcjt2YXIgYnk9ZW52Ll9sbHZtX2xpZmV0aW1l
X3N0YXJ0O3ZhciBiej1lbnYuX19fY3hhX2d1YXJkX3JlbGVhc2U7dmFyIGJBPWVudi5fdW5nZXRj
O3ZhciBiQj1lbnYuX3VzZWxvY2FsZTt2YXIgYkM9ZW52Ll92c25wcmludGY7dmFyIGJEPWVudi5f
c3NjYW5mO3ZhciBiRT1lbnYuX3N5c2NvbmY7dmFyIGJGPWVudi5fZnJlYWQ7dmFyIGJHPWVudi5f
YWJvcnQ7dmFyIGJIPWVudi5faXNkaWdpdDt2YXIgYkk9ZW52Ll9zdHJ0b2xsO3ZhciBiSj1lbnYu
X19hZGREYXlzO3ZhciBiSz1lbnYuX2Zsb29yO3ZhciBiTD1lbnYuX19yZWFsbHlOZWdhdGl2ZTt2
YXIgYk09ZW52Ll9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtjO3ZhciBiTj1lbnYuX3dyaXRlO3Zh
ciBiTz1lbnYuX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbjt2YXIgYlA9ZW52Ll9fX2N4YV9wdXJl
X3ZpcnR1YWw7dmFyIGJRPWVudi5fdmFzcHJpbnRmO3ZhciBiUj1lbnYuX19fY3R5cGVfdG91cHBl
cl9sb2M7dmFyIGJTPWVudi5fX19jdHlwZV90b2xvd2VyX2xvYzt2YXIgYlQ9ZW52Ll9wd3JpdGU7
dmFyIGJVPWVudi5fc3RyZXJyb3Jfcjt2YXIgYlY9ZW52Ll90aW1lOwotLy8gRU1TQ1JJUFRFTl9T
VEFSVF9GVU5DUwotZnVuY3Rpb24gY2MoYSl7YT1hfDA7dmFyIGI9MDtiPWk7aT1pK2F8MDtpPWkr
Nz4+Mzw8MztyZXR1cm4gYnwwfWZ1bmN0aW9uIGNkKCl7cmV0dXJuIGl8MH1mdW5jdGlvbiBjZShh
KXthPWF8MDtpPWF9ZnVuY3Rpb24gY2YoYSxiKXthPWF8MDtiPWJ8MDtpZigoeHwwKT09MCl7eD1h
O3k9Yn19ZnVuY3Rpb24gY2coYil7Yj1ifDA7YVtrXT1hW2JdO2FbaysxfDBdPWFbYisxfDBdO2Fb
aysyfDBdPWFbYisyfDBdO2FbayszfDBdPWFbYiszfDBdfWZ1bmN0aW9uIGNoKGIpe2I9YnwwO2Fb
a109YVtiXTthW2srMXwwXT1hW2IrMXwwXTthW2srMnwwXT1hW2IrMnwwXTthW2srM3wwXT1hW2Ir
M3wwXTthW2srNHwwXT1hW2IrNHwwXTthW2srNXwwXT1hW2IrNXwwXTthW2srNnwwXT1hW2IrNnww
XTthW2srN3wwXT1hW2IrN3wwXX1mdW5jdGlvbiBjaShhKXthPWF8MDtLPWF9ZnVuY3Rpb24gY2oo
YSl7YT1hfDA7TD1hfWZ1bmN0aW9uIGNrKGEpe2E9YXwwO009YX1mdW5jdGlvbiBjbChhKXthPWF8
MDtOPWF9ZnVuY3Rpb24gY20oYSl7YT1hfDA7Tz1hfWZ1bmN0aW9uIGNuKGEpe2E9YXwwO1A9YX1m
dW5jdGlvbiBjbyhhKXthPWF8MDtRPWF9ZnVuY3Rpb24gY3AoYSl7YT1hfDA7Uj1hfWZ1bmN0aW9u
IGNxKGEpe2E9YXwwO1M9YX1mdW5jdGlvbiBjcihhKXthPWF8MDtUPWF9ZnVuY3Rpb24gY3MoKXtj
W3ErOD4+Ml09MjUwO2NbcSsxMj4+Ml09MTI4O2NbcSsxNj4+Ml09NjI7Y1txKzIwPj4yXT0xNTA7
Y1txKzI0Pj4yXT04O2NbcSsyOD4+Ml09MTA7Y1txKzMyPj4yXT0yO2NbcSszNj4+Ml09MjtjW3Ar
OD4+Ml09MjUwO2NbcCsxMj4+Ml09MjQ0O2NbcCsxNj4+Ml09NjI7Y1twKzIwPj4yXT0xNTA7Y1tw
KzI0Pj4yXT04O2NbcCsyOD4+Ml09MjY7Y1twKzMyPj4yXT00O2NbcCszNj4+Ml09ODtjWzIwMzZd
PXArODtjWzIwMzhdPXArODtjWzIwNDBdPXErODtjWzIwNDRdPXErODtjWzIwNDhdPXErODtjWzIw
NTJdPXErODtjWzIwNTZdPXErODtjWzIwNjBdPXArODtjWzIwOTRdPXErODtjWzIwOThdPXErODtj
WzIxNjJdPXErODtjWzIxNjZdPXErODtjWzIxODZdPXArODtjWzIxODhdPXErODtjWzIyMjRdPXEr
ODtjWzIyMjhdPXErODtjWzIyNjRdPXErODtjWzIyNjhdPXErODtjWzIyODhdPXArODtjWzIyOTBd
PXArODtjWzIyOTJdPXErODtjWzIyOTZdPXErODtjWzIzMDBdPXErODtjWzIzMDRdPXArODtjWzIz
MDZdPXArODtjWzIzMDhdPXArODtjWzIzMTBdPXArODtjWzIzMTJdPXArODtjWzIzMTRdPXArODtj
WzIzMTZdPXArODtjWzIzNDJdPXErODtjWzIzNDZdPXArODtjWzIzNDhdPXErODtjWzIzNTJdPXEr
ODtjWzIzNTZdPXErODtjWzIzNjBdPXArODtjWzIzNjJdPXArODtjWzIzNjRdPXArODtjWzIzNjZd
PXArODtjWzI0MDBdPXArODtjWzI0MDJdPXArODtjWzI0MDRdPXArODtjWzI0MDZdPXErODtjWzI0
MTBdPXErODtjWzI0MTRdPXErODtjWzI0MThdPXErODtjWzI0MjJdPXErODtjWzI0MjZdPXErOH1m
dW5jdGlvbiBjdChhKXthPWF8MDt2YXIgYj0wLGQ9MDtiPWNbYT4+Ml18MDtpZigoYnwwKT09MCl7
cmV0dXJufWQ9YSs0fDA7YT1jW2Q+PjJdfDA7aWYoKGJ8MCkhPShhfDApKXtjW2Q+PjJdPWErKH4o
KGEtOCsoLWJ8MCl8MCk+Pj4zKTw8Myl9a1MoYik7cmV0dXJufWZ1bmN0aW9uIGN1KGEsYixkKXth
PWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLjAsdz0wLHg9MCx5PTAuMCx6PTAuMDtkPWk7aT1p
KzI0fDA7ZT1kfDA7Zj1kKzh8MDtnPWZ8MDtjW2c+PjJdPTA7aj1mKzR8MDtjW2o+PjJdPTA7az1m
Kzh8MDtjW2s+PjJdPTA7bD1iLWF8MDttPWw+PjM7ZG97aWYoKG18MCk9PTApe249MDtvPTB9ZWxz
ZXtpZihtPj4+MD41MzY4NzA5MTEpe2lyKGYpfXA9a08obCl8MDtjW2o+PjJdPXA7Y1tnPj4yXT1w
O2Nbaz4+Ml09cCsobTw8Myk7aWYoKGF8MCk9PShifDApKXtuPXA7bz1wO2JyZWFrfWVsc2V7cT1h
O3I9cH1kb3tpZigocnwwKT09MCl7cz0wfWVsc2V7aFtyPj4zXT0raFtxPj4zXTtzPWNbaj4+Ml18
MH1yPXMrOHwwO2Nbaj4+Ml09cjtxPXErOHwwO313aGlsZSgocXwwKSE9KGJ8MCkpO249Y1tnPj4y
XXwwO289cn19d2hpbGUoMCk7Y1UobixvLGUpO2U9Y1tnPj4yXXwwO289Y1tqPj4yXXwwO0wyMzpk
b3tpZigoZXwwKT09KG98MCkpe3Q9ZX1lbHNle249ZTt3aGlsZSgxKXt1PW4rOHwwO2lmKCh1fDAp
PT0ob3wwKSl7dD1lO2JyZWFrIEwyM312PStoW24+PjNdO2lmKHY9PStoW3U+PjNdKXticmVha31l
bHNle249dX19aWYoKG58MCk9PShvfDApKXt0PWU7YnJlYWt9ZWxzZXt3PXU7eD1uO3k9dn1MMjg6
d2hpbGUoMSl7cj13O2Rve3I9cis4fDA7aWYoKHJ8MCk9PShvfDApKXticmVhayBMMjh9ej0raFty
Pj4zXTt9d2hpbGUoeT09eik7Yj14Kzh8MDtoW2I+PjNdPXo7dz1yO3g9Yjt5PXp9dD1jW2c+PjJd
fDB9fXdoaWxlKDApO2lmKCh0fDApPT0wKXtpPWQ7cmV0dXJufWc9Y1tqPj4yXXwwO2lmKCh0fDAp
IT0oZ3wwKSl7Y1tqPj4yXT1nKyh+KChnLTgrKC10fDApfDApPj4+Myk8PDMpfWtTKHQpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gY3YoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9
MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LjAseD0wLjAseT0wLHo9MC4wO2Q9aTtpPWkrMjR8MDtlPWR8MDtmPWQrOHwwO2c9ZnwwO2NbZz4+
Ml09MDtqPWYrNHwwO2Nbaj4+Ml09MDtrPWYrOHwwO2Nbaz4+Ml09MDtsPWItYXwwO209bD4+Mztk
b3tpZigobXwwKT09MCl7bj0wO289MH1lbHNle2lmKG0+Pj4wPjUzNjg3MDkxMSl7aXIoZil9cD1r
TyhsKXwwO2Nbaj4+Ml09cDtjW2c+PjJdPXA7Y1trPj4yXT1wKyhtPDwzKTtpZigoYXwwKT09KGJ8
MCkpe249cDtvPXA7YnJlYWt9ZWxzZXtxPWE7cj1wfWRve2lmKChyfDApPT0wKXtzPTB9ZWxzZXto
W3I+PjNdPStoW3E+PjNdO3M9Y1tqPj4yXXwwfXI9cys4fDA7Y1tqPj4yXT1yO3E9cSs4fDA7fXdo
aWxlKChxfDApIT0oYnwwKSk7bj1jW2c+PjJdfDA7bz1yfX13aGlsZSgwKTtjVShuLG8sZSk7ZT1j
W2c+PjJdfDA7bz1jW2o+PjJdfDA7TDU4OmRve2lmKChlfDApPT0ob3wwKSl7dD1lO3U9NjJ9ZWxz
ZXtuPWU7d2hpbGUoMSl7cj1uKzh8MDtpZigocnwwKT09KG98MCkpe3Y9ZTticmVhayBMNTh9aWYo
K2hbbj4+M109PStoW3I+PjNdKXt0PW47dT02MjticmVha31lbHNle249cn19fX13aGlsZSgwKTtk
b3tpZigodXwwKT09NjIpe2lmKCh0fDApPT0ob3wwKSl7dj1lO2JyZWFrfW49dCsxNnwwO2lmKChu
fDApPT0ob3wwKSl7dj1lO2JyZWFrfXI9bjtuPXQ7dz0raFt0Pj4zXTt3aGlsZSgxKXt4PStoW3I+
PjNdO2lmKHc9PXgpe3k9bjt6PXd9ZWxzZXtiPW4rOHwwO2hbYj4+M109eDt5PWI7ej14fWI9cis4
fDA7aWYoKGJ8MCk9PShvfDApKXticmVha31lbHNle3I9YjtuPXk7dz16fX12PWNbZz4+Ml18MH19
d2hpbGUoMCk7aWYoKHZ8MCk9PTApe2k9ZDtyZXR1cm59Zz1jW2o+PjJdfDA7aWYoKHZ8MCkhPShn
fDApKXtjW2o+PjJdPWcrKH4oKGctOCsoLXZ8MCl8MCk+Pj4zKTw8Myl9a1Modik7aT1kO3JldHVy
bn1mdW5jdGlvbiBjdyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxf
PTAsJD0wLGFhPTAsYWI9MDtkPWk7aT1pKzh8MDtlPWR8MDtmPWU7Zz1pO2k9aSs4fDA7aj1nO2s9
aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO2w9aTtpPWkrOHwwO209aTtpPWkrOHwwO249aTtpPWkrMXww
O2k9aSs3Pj4zPDwzO289aTtpPWkrMjR8MDtwPWk7aT1pKzh8MDtxPWk7aT1pKzh8MDtyPWI7cz1y
LWE+PjM7aFtwPj4zXT0wLjA7dD1vfDA7dT1vKzR8MDt2PW8rOHwwO2skKG98MCwwLDI0KTtkb3tp
Zigoc3wwKT09MCl7dz0wO3g9bysxNnwwO3k9MDt6PTA7QT0wO0I9MH1lbHNle2NPKG8scyxwKTtD
PWNbdT4+Ml18MDtEPW8rMTZ8MDtFPWNbRD4+Ml18MDtGPWNbdj4+Ml18MDtHPUMrKEU+Pj45PDwy
KXwwO2lmKChGfDApPT0oQ3wwKSl7dz0wO3g9RDt5PUY7ej1FO0E9QztCPUc7YnJlYWt9dz0oY1tH
Pj4yXXwwKSsoKEUmNTExKTw8Myl8MDt4PUQ7eT1GO3o9RTtBPUM7Qj1HfX13aGlsZSgwKTtpZigo
YXwwKT09KGJ8MCkpe0g9QTtJPXo7Sj15fWVsc2V7eT1hO2E9dzt3PUI7d2hpbGUoMSl7Qj1hO3o9
KGNbdz4+Ml18MCkrNDA5Ni1CPj4zO0E9eTtwPXItQT4+MztpZigocHwwKT4oenwwKSl7Sz15Kyh6
PDwzKXwwO0w9en1lbHNle0s9YjtMPXB9a18oYXwwLHl8MCxLLUF8MCk7ZG97aWYoKEx8MCk9PTAp
e009YTtOPXd9ZWxzZXtBPShCLShjW3c+PjJdfDApPj4zKStMfDA7aWYoKEF8MCk+MCl7cD13Kygo
KEF8MCkvNTEyfDApPDwyKXwwO009KGNbcD4+Ml18MCkrKCgoQXwwKSU1MTJ8MCk8PDMpfDA7Tj1w
O2JyZWFrfWVsc2V7cD01MTEtQXwwO0E9dysoKChwfDApLy01MTJ8MCk8PDIpfDA7TT0oY1tBPj4y
XXwwKSsoNTExLSgocHwwKSU1MTJ8MCk8PDMpfDA7Tj1BO2JyZWFrfX19d2hpbGUoMCk7aWYoKEt8
MCk9PShifDApKXticmVha31lbHNle3k9SzthPU07dz1OfX1IPWNbdT4+Ml18MDtJPWNbeD4+Ml18
MDtKPWNbdj4+Ml18MH1OPUgrKEk+Pj45PDwyKXwwO2lmKChKfDApPT0oSHwwKSl7Sj1vKzIwfDA7
Tz0wO1A9MDtRPTA7Uj0wO1M9SjtUPUgrKChJKyhjW0o+PjJdfDApfDApPj4+OTw8Mil8MH1lbHNl
e0o9bysyMHwwO289SSsoY1tKPj4yXXwwKXwwO3c9SCsobz4+Pjk8PDIpfDA7Tz0oY1t3Pj4yXXww
KSsoKG8mNTExKTw8Myl8MDtQPTA7UT0oY1tOPj4yXXwwKSsoKEkmNTExKTw8Myl8MDtSPTA7Uz1K
O1Q9d31jW2w+PjJdPVJ8TjtjW2wrND4+Ml09UTtjW20+PjJdPVB8VDtjW20rND4+Ml09TztjSyhs
LG0sbik7bj1jW3U+PjJdfDA7bT1jW3g+PjJdfDA7bD1uKyhtPj4+OTw8Mil8MDtpZigoY1t2Pj4y
XXwwKT09KG58MCkpe1U9MDtWPTA7Vz0wO1g9MDtZPW4rKChtKyhjW1M+PjJdfDApfDApPj4+OTw8
Mil8MH1lbHNle089bSsoY1tTPj4yXXwwKXwwO1Q9bisoTz4+Pjk8PDIpfDA7VT0oY1tUPj4yXXww
KSsoKE8mNTExKTw8Myl8MDtWPTA7Vz0oY1tsPj4yXXwwKSsoKG0mNTExKTw8Myl8MDtYPTA7WT1U
fWNbZT4+Ml09WHxsO2NbZSs0Pj4yXT1XO2NbZz4+Ml09VnxZO2NbZys0Pj4yXT1VO2NJKHEsZixq
LGspO2s9Y1t1Pj4yXXwwO2o9Y1t4Pj4yXXwwO2Y9aysoaj4+Pjk8PDIpfDA7cT1jW3Y+PjJdfDA7
aWYoKHF8MCk9PShrfDApKXtaPTA7Xz0wfWVsc2V7VT0oY1tTPj4yXXwwKStqfDA7Wj0oY1trKyhV
Pj4+OTw8Mik+PjJdfDApKygoVSY1MTEpPDwzKXwwO189KGNbZj4+Ml18MCkrKChqJjUxMSk8PDMp
fDB9aj1mO2Y9XztMMTEyOndoaWxlKDEpe189Zjtkb3tpZigoX3wwKT09KFp8MCkpe2JyZWFrIEwx
MTJ9Xz1fKzh8MDt9d2hpbGUoKF8tKGNbaj4+Ml18MCl8MCkhPTQwOTYpO189ais0fDA7aj1fO2Y9
Y1tfPj4yXXwwfWNbUz4+Ml09MDtTPXEtaz4+MjtpZihTPj4+MD4yKXtmPWs7d2hpbGUoMSl7a1Mo
Y1tmPj4yXXwwKTtqPShjW3U+PjJdfDApKzR8MDtjW3U+PjJdPWo7Wj1jW3Y+PjJdfDA7Xz1aLWo+
PjI7aWYoXz4+PjA+Mil7Zj1qfWVsc2V7JD1fO2FhPWo7YWI9WjticmVha319fWVsc2V7JD1TO2Fh
PWs7YWI9cX1zd2l0Y2goJHwwKXtjYXNlIDE6e2NbeD4+Ml09MjU2O2JyZWFrfTtjYXNlIDI6e2Nb
eD4+Ml09NTEyO2JyZWFrfTtkZWZhdWx0Ont9fWRve2lmKChhYXwwKSE9KGFifDApKXt4PWFhO2Rv
e2tTKGNbeD4+Ml18MCk7eD14KzR8MDt9d2hpbGUoKHh8MCkhPShhYnwwKSk7eD1jW3U+PjJdfDA7
JD1jW3Y+PjJdfDA7aWYoKHh8MCk9PSgkfDApKXticmVha31jW3Y+PjJdPSQrKH4oKCQtNCsoLXh8
MCl8MCk+Pj4yKTw8Mil9fXdoaWxlKDApO3Y9Y1t0Pj4yXXwwO2lmKCh2fDApPT0wKXtpPWQ7cmV0
dXJufWtTKHYpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gY3goYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MC4wLHk9MCx6PTA7ZD1pO2k9aSs0OHwwO2U9ZHwwO2Y9ZCs4fDA7
Zz1kKzE2fDA7aj1kKzI0fDA7az1kKzMyfDA7bD1rfDA7bT1rO2NbbD4+Ml09bTtuPWsrNHwwO2Nb
bj4+Ml09bTtvPWsrOHwwO2Nbbz4+Ml09MDtpZigoYXwwKT09KGJ8MCkpe3A9bTtxPTB9ZWxzZXtr
PWE7YT1tO3I9MDt3aGlsZSgxKXtzPWtPKDE2KXwwO3Q9czt1PXMrOHwwO2lmKCh1fDApIT0wKXto
W3U+PjNdPStoW2s+PjNdfWNbYSs0Pj4yXT10O2Nbcz4+Ml09Y1tsPj4yXTtjW2w+PjJdPXQ7Y1tz
KzQ+PjJdPW07dj0oY1tvPj4yXXwwKSsxfDA7Y1tvPj4yXT12O3M9ays4fDA7aWYoKHN8MCk9PShi
fDApKXticmVha31lbHNle2s9czthPXQ7cj12fX1wPWNbbj4+Ml18MDtxPXZ9Y1tlPj4yXT1wO2Nb
Zj4+Ml09bTtjSihnLGUsZixxLGopO2o9Y1tuPj4yXXwwO2lmKChqfDApIT0obXwwKSl7cT1qO3do
aWxlKDEpe2o9Y1txKzQ+PjJdfDA7TDE1MDpkb3tpZigoanwwKT09KG18MCkpe3c9bX1lbHNle3g9
K2hbcSs4Pj4zXTtmPWo7d2hpbGUoMSl7aWYoeCE9K2hbZis4Pj4zXSl7dz1mO2JyZWFrIEwxNTB9
ZT1jW2YrND4+Ml18MDtpZigoZXwwKT09KG18MCkpe3c9bTticmVha31lbHNle2Y9ZX19fX13aGls
ZSgwKTtpZigoanwwKT09KHd8MCkpe3k9an1lbHNle2Y9KGNbdz4+Ml18MCkrNHwwO2U9anwwO2Nb
KGNbZT4+Ml18MCkrND4+Ml09Y1tmPj4yXTtjW2NbZj4+Ml0+PjJdPWNbZT4+Ml07ZT1qO3doaWxl
KDEpe2Y9Y1tlKzQ+PjJdfDA7Y1tvPj4yXT0oY1tvPj4yXXwwKS0xO2tTKGUpO2lmKChmfDApPT0o
d3wwKSl7eT13O2JyZWFrfWVsc2V7ZT1mfX19aWYoKHl8MCk9PShtfDApKXticmVha31lbHNle3E9
eX19fWlmKChjW28+PjJdfDApPT0wKXtpPWQ7cmV0dXJufXk9Y1tuPj4yXXwwO249KGNbbD4+Ml18
MCkrNHwwO2w9eXwwO2NbKGNbbD4+Ml18MCkrND4+Ml09Y1tuPj4yXTtjW2Nbbj4+Ml0+PjJdPWNb
bD4+Ml07Y1tvPj4yXT0wO2lmKCh5fDApPT0obXwwKSl7aT1kO3JldHVybn1lbHNle3o9eX13aGls
ZSgxKXt5PWNbeis0Pj4yXXwwO2tTKHopO2lmKCh5fDApPT0obXwwKSl7YnJlYWt9ZWxzZXt6PXl9
fWk9ZDtyZXR1cm59ZnVuY3Rpb24gY3koYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wO2Q9aTtp
PWkrMzJ8MDtlPWR8MDtmPWQrOHwwO2c9ZCsxNnwwO2o9Z3wwO2s9Zys0fDA7Y1trPj4yXT0wO2w9
Zys4fDA7Y1tsPj4yXT0wO209aztrPWd8MDtjW2s+PjJdPW07aWYoKGF8MCk9PShifDApKXtuPTA7
Y0UoaixuKTtpPWQ7cmV0dXJufW89ZnwwO3A9Zys0fDA7Zz1hO2Rve2Nbbz4+Ml09bTthPWNIKGos
ZixlLGcpfDA7aWYoKGNbYT4+Ml18MCk9PTApe3E9a08oMjQpfDA7cj1xKzE2fDA7aWYoKHJ8MCkh
PTApe2hbcj4+M109K2hbZz4+M119cj1jW2U+PjJdfDA7cz1xO2NbcT4+Ml09MDtjW3ErND4+Ml09
MDtjW3ErOD4+Ml09cjtjW2E+PjJdPXM7cj1jW2Nbaz4+Ml0+PjJdfDA7aWYoKHJ8MCk9PTApe3Q9
c31lbHNle2Nbaz4+Ml09cjt0PWNbYT4+Ml18MH1jRyhjW3A+PjJdfDAsdCk7Y1tsPj4yXT0oY1ts
Pj4yXXwwKSsxfWc9Zys4fDA7fXdoaWxlKChnfDApIT0oYnwwKSk7bj1jW3A+PjJdfDA7Y0Uoaixu
KTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGN6KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0w
LGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTA7ZD1pO2k9aSsz
MnwwO2U9ZHwwO2Y9ZCs4fDA7Zz1kKzE2fDA7aj1nfDA7az1nKzR8MDtjW2s+PjJdPTA7bD1nKzh8
MDtjW2w+PjJdPTA7bT1rO249Z3wwO2Nbbj4+Ml09bTtkb3tpZigoYXwwKSE9KGJ8MCkpe289Znww
O3A9Zys0fDA7cT1hO2Rve2Nbbz4+Ml09bTtyPWNDKGosZixlLHEpfDA7cz1rTygyNCl8MDt0PXMr
MTZ8MDtpZigodHwwKSE9MCl7aFt0Pj4zXT0raFtxPj4zXX10PWNbZT4+Ml18MDt1PXM7Y1tzPj4y
XT0wO2Nbcys0Pj4yXT0wO2Nbcys4Pj4yXT10O2Nbcj4+Ml09dTt0PWNbY1tuPj4yXT4+Ml18MDtp
ZigodHwwKT09MCl7dj11fWVsc2V7Y1tuPj4yXT10O3Y9Y1tyPj4yXXwwfWNHKGNbcD4+Ml18MCx2
KTtjW2w+PjJdPShjW2w+PjJdfDApKzE7cT1xKzh8MDt9d2hpbGUoKHF8MCkhPShifDApKTtxPWNb
bj4+Ml18MDtpZigocXwwKT09KG18MCkpe2JyZWFrfXA9aztvPWcrNHwwO3I9cTtMMjAyOndoaWxl
KDEpe3E9cnwwO3Q9cis0fDA7dT1yKzE2fDA7d2hpbGUoMSl7dz1jW3Q+PjJdfDA7aWYoKHd8MCk9
PTApe3M9cTt3aGlsZSgxKXt4PWNbcys4Pj4yXXwwO2lmKChzfDApPT0oY1t4Pj4yXXwwKSl7eT14
O2JyZWFrfWVsc2V7cz14fX19ZWxzZXtzPXc7d2hpbGUoMSl7eD1jW3M+PjJdfDA7aWYoKHh8MCk9
PTApe3k9czticmVha31lbHNle3M9eH19fXM9eTtpZigoeXwwKT09KHB8MCkpe3o9bztBPTIxMzti
cmVhayBMMjAyfWlmKCtoW3U+PjNdIT0raFt5KzE2Pj4zXSl7YnJlYWt9eD1jW3krND4+Ml18MDtp
ZigoeHwwKT09MCl7Qj15O3doaWxlKDEpe0M9Y1tCKzg+PjJdfDA7aWYoKEJ8MCk9PShjW0M+PjJd
fDApKXtEPUM7YnJlYWt9ZWxzZXtCPUN9fX1lbHNle0I9eDt3aGlsZSgxKXtDPWNbQj4+Ml18MDtp
ZigoQ3wwKT09MCl7RD1CO2JyZWFrfWVsc2V7Qj1DfX19aWYoKGNbbj4+Ml18MCk9PShzfDApKXtj
W24+PjJdPUR9Y1tsPj4yXT0oY1tsPj4yXXwwKS0xO2NCKGNbbz4+Ml18MCx5KTtrUyh5KX1pZigo
d3wwKT09MCl7dT1xO3doaWxlKDEpe3Q9Y1t1Kzg+PjJdfDA7aWYoKHV8MCk9PShjW3Q+PjJdfDAp
KXtFPXQ7YnJlYWt9ZWxzZXt1PXR9fX1lbHNle3U9dzt3aGlsZSgxKXtxPWNbdT4+Ml18MDtpZigo
cXwwKT09MCl7RT11O2JyZWFrfWVsc2V7dT1xfX19aWYoKEV8MCk9PShwfDApKXt6PW87QT0yMTQ7
YnJlYWt9ZWxzZXtyPUV9fWlmKChBfDApPT0yMTQpe0Y9Y1t6Pj4yXXwwO0c9RjtjRShqLEcpO2k9
ZDtyZXR1cm59ZWxzZSBpZigoQXwwKT09MjEzKXtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtpPWQ7
cmV0dXJufX19d2hpbGUoMCk7ej1nKzR8MDtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtpPWQ7cmV0
dXJufWZ1bmN0aW9uIGNBKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAuMCxnPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MC4wLHg9MCx5
PTAsej0wLjAsQT0wLEI9MC4wLEM9MCxEPTAsRT0wLEY9MC4wLEc9MCxIPTAsST0wLjAsSj0wLjAs
TD0wLE09MCxOPTAsTz0wLFA9MDtiPWk7aT1pKzI0fDA7ZD1ifDA7ZT1iKzh8MDtmPSsoYXwwKTtn
PX5+K1UoKygxOTkzMTU2OC41NjkzMjQxNzMvKGYqKCthZSgrZikvLjY5MzE0NzE4MDU1OTk0NTMp
KSkpO2o9YTw8MTtrPWNbMjQ0Nl18MDtsPWNbMjQ0N118MDtpZigoa3wwKSE9KGx8MCkpe2NbMjQ0
N109bCsofigobC04Kygta3wwKXwwKT4+PjMpPDwzKX1rPWV8MDtjW2s+PjJdPTA7bD1lKzR8MDtj
W2w+PjJdPTA7bT1lKzh8MDtjW20+PjJdPTA7aWYoKGp8MCk9PTApe249MH1lbHNle2lmKGo+Pj4w
PjUzNjg3MDkxMSl7aXIoZSl9ZT1rTyhhPDw0KXwwO2NbbD4+Ml09ZTtjW2s+PjJdPWU7Y1ttPj4y
XT1lKyhqPDwzKTttPWo7bz1lO2Rve2lmKChvfDApPT0wKXtwPTB9ZWxzZXtoW28+PjNdPTAuMDtw
PWNbbD4+Ml18MH1vPXArOHwwO2NbbD4+Ml09bzttPW0tMXwwO313aGlsZSgobXwwKSE9MCk7bj1j
W2s+PjJdfDB9bT1uKyhqPDwzKXwwO289bisoYTw8Myl8MDtpZigoYXwwKSE9MCl7cD1uO2Y9MC4w
O3doaWxlKDEpe2U9cCs4fDA7aFtwPj4zXT1mO2lmKChlfDApPT0ob3wwKSl7YnJlYWt9ZWxzZXtw
PWU7Zj1mKzEuMH19fWlmKChqfDApIT0oYXwwKSl7aj1vO2Y9MC4wO3doaWxlKDEpe289ais4fDA7
aFtqPj4zXT1mO2lmKChvfDApPT0obXwwKSl7YnJlYWt9ZWxzZXtqPW87Zj1mKzEuMH19fWNGKG4s
bSk7aWYoKGd8MCk+MCl7aj1hPDw0O2E9aj4+MztvPWFPKGF8MCw4KXwwO3A9bjtpZihLKXtlPWc7
d2hpbGUoMSl7cT1lLTF8MDtyPWtQKC0xKXwwO3M9cjtrWShyfDAscHwwLGopfDA7dD1zKyhhPDwz
KXwwO2NVKHMsdCxkKTtMMjY4OmRve2lmKChzfDApIT0odHwwKSl7dT1zO3doaWxlKDEpe3Y9dSs4
fDA7aWYoKHZ8MCk9PSh0fDApKXticmVhayBMMjY4fXc9K2hbdT4+M107aWYodz09K2hbdj4+M10p
e2JyZWFrfWVsc2V7dT12fX1pZigodXwwKT09KHR8MCkpe2JyZWFrfWVsc2V7eD12O3k9dTt6PXd9
d2hpbGUoMSl7QT14O2Rve0E9QSs4fDA7aWYoKEF8MCk9PSh0fDApKXticmVhayBMMjY4fUI9K2hb
QT4+M107fXdoaWxlKHo9PUIpO0M9eSs4fDA7aFtDPj4zXT1CO3g9QTt5PUM7ej1CfX19d2hpbGUo
MCk7aWYoKHJ8MCkhPTApe2tUKHIpfWlmKChxfDApPjApe2U9cX1lbHNle0Q9ZzticmVha319fWVs
c2V7ZT1nO3doaWxlKDEpe3k9ZS0xfDA7eD1rUChvKXwwO3Y9eDtrWSh4fDAscHwwLGopfDA7dD12
KyhhPDwzKXwwO2NVKHYsdCxkKTtMMjg3OmRve2lmKCh2fDApIT0odHwwKSl7cz12O3doaWxlKDEp
e0U9cys4fDA7aWYoKEV8MCk9PSh0fDApKXticmVhayBMMjg3fUY9K2hbcz4+M107aWYoRj09K2hb
RT4+M10pe2JyZWFrfWVsc2V7cz1FfX1pZigoc3wwKT09KHR8MCkpe2JyZWFrfWVsc2V7Rz1FO0g9
cztJPUZ9d2hpbGUoMSl7dT1HO2Rve3U9dSs4fDA7aWYoKHV8MCk9PSh0fDApKXticmVhayBMMjg3
fUo9K2hbdT4+M107fXdoaWxlKEk9PUopO0E9SCs4fDA7aFtBPj4zXT1KO0c9dTtIPUE7ST1KfX19
d2hpbGUoMCk7aWYoKHh8MCkhPTApe2tUKHgpfWlmKCh5fDApPjApe2U9eX1lbHNle0Q9ZzticmVh
a319fXdoaWxlKDEpe2U9RC0xfDA7Y3UobixtLGUpO2lmKChlfDApPjApe0Q9ZX1lbHNle0w9Zzti
cmVha319d2hpbGUoMSl7RD1MLTF8MDtjdihuLG0sRCk7aWYoKER8MCk+MCl7TD1EfWVsc2V7TT1n
O2JyZWFrfX13aGlsZSgxKXtMPU0tMXwwO2N3KG4sbSxMKTtpZigoTHwwKT4wKXtNPUx9ZWxzZXtO
PWc7YnJlYWt9fXdoaWxlKDEpe009Ti0xfDA7Y3gobixtLE0pO2lmKChNfDApPjApe049TX1lbHNl
e089ZzticmVha319d2hpbGUoMSl7Tj1PLTF8MDtjeShuLG0sTik7aWYoKE58MCk+MCl7Tz1OfWVs
c2V7UD1nO2JyZWFrfX1kb3tQPVAtMXwwO2N6KG4sbSxQKTt9d2hpbGUoKFB8MCk+MCl9UD1jW2s+
PjJdfDA7aWYoKFB8MCk9PTApe2k9YjtyZXR1cm59az1jW2w+PjJdfDA7aWYoKFB8MCkhPShrfDAp
KXtjW2w+PjJdPWsrKH4oKGstOCsoLVB8MCl8MCk+Pj4zKTw8Myl9a1MoUCk7aT1iO3JldHVybn1m
dW5jdGlvbiBjQihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2U9ZHwwO2Y9Y1tl
Pj4yXXwwO2Rve2lmKChmfDApPT0wKXtnPWQ7aD0zMDF9ZWxzZXtpPWNbZCs0Pj4yXXwwO2lmKChp
fDApPT0wKXtqPWY7az1kO2w9ZHwwO2g9MzAzO2JyZWFrfWVsc2V7bT1pO3doaWxlKDEpe2k9Y1tt
Pj4yXXwwO2lmKChpfDApPT0wKXtnPW07aD0zMDE7YnJlYWt9ZWxzZXttPWl9fX19fXdoaWxlKDAp
O2Rve2lmKChofDApPT0zMDEpe2Y9Z3wwO209Y1tnKzQ+PjJdfDA7aWYoKG18MCkhPTApe2o9bTtr
PWc7bD1mO2g9MzAzO2JyZWFrfW49MDtvPTA7cD1nKzh8MDtxPWc7cj1mfX13aGlsZSgwKTtpZigo
aHwwKT09MzAzKXtnPWsrOHwwO2Nbais4Pj4yXT1jW2c+PjJdO249ajtvPTE7cD1nO3E9aztyPWx9
bD1jW3A+PjJdfDA7az1sfDA7ZG97aWYoKHF8MCk9PShjW2s+PjJdfDApKXtjW2s+PjJdPW47aWYo
KHF8MCk9PShifDApKXtzPW47dD0wO2JyZWFrfXM9Yjt0PWNbKGNbcD4+Ml18MCkrND4+Ml18MH1l
bHNle2NbbCs0Pj4yXT1uO3M9Yjt0PWNbY1twPj4yXT4+Ml18MH19d2hpbGUoMCk7Yj1xKzEyfDA7
bD0oYVtiXSYxKT09MDtpZigocXwwKT09KGR8MCkpe3U9c31lbHNle2s9ZCs4fDA7Zz1jW2s+PjJd
fDA7Y1twPj4yXT1nO2lmKChjW2Nbaz4+Ml0+PjJdfDApPT0oZHwwKSl7Y1tnPj4yXT1xfWVsc2V7
Y1tnKzQ+PjJdPXF9Zz1jW2U+PjJdfDA7Y1tyPj4yXT1nO2NbZys4Pj4yXT1xO2c9Y1tkKzQ+PjJd
fDA7Y1txKzQ+PjJdPWc7aWYoKGd8MCkhPTApe2NbZys4Pj4yXT1xfWFbYl09YVtkKzEyfDBdJjE7
dT0oc3wwKT09KGR8MCk/cTpzfWlmKGx8KHV8MCk9PTApe3JldHVybn1pZihvKXthW24rMTJ8MF09
MTtyZXR1cm59ZWxzZXt2PXU7dz10fXdoaWxlKDEpe3Q9dys4fDA7dT1jW3Q+PjJdfDA7bj13KzEy
fDA7bz0oYVtuXSYxKSE9MDtpZigod3wwKT09KGNbdT4+Ml18MCkpe2lmKG8pe3g9djt5PXd9ZWxz
ZXthW25dPTE7YVt1KzEyfDBdPTA7bD1jW3Q+PjJdfDA7cz1sfDA7cT1jW3M+PjJdfDA7ZD1xKzR8
MDtiPWNbZD4+Ml18MDtjW3M+PjJdPWI7aWYoKGJ8MCkhPTApe2NbYis4Pj4yXT1sfWI9bCs4fDA7
Y1txKzg+PjJdPWNbYj4+Ml07cz1jW2I+PjJdfDA7Zz1zfDA7aWYoKGNbZz4+Ml18MCk9PShsfDAp
KXtjW2c+PjJdPXF9ZWxzZXtjW3MrND4+Ml09cX1jW2Q+PjJdPWw7Y1tiPj4yXT1xO3E9Y1t3KzQ+
PjJdfDA7eD0odnwwKT09KHF8MCk/dzp2O3k9Y1txPj4yXXwwfXo9Y1t5Pj4yXXwwO0E9KHp8MCk9
PTA7aWYoIUEpe2lmKChhW3orMTJ8MF0mMSk9PTApe2g9MzY1O2JyZWFrfX1xPWNbeSs0Pj4yXXww
O2lmKChxfDApIT0wKXtpZigoYVtxKzEyfDBdJjEpPT0wKXtoPTM2NDticmVha319YVt5KzEyfDBd
PTA7cT1jW3krOD4+Ml18MDtCPXErMTJ8MDtpZigoYVtCXSYxKT09MHwocXwwKT09KHh8MCkpe2g9
MzYxO2JyZWFrfWI9Y1txKzg+PjJdfDA7bD1jW2I+PjJdfDA7aWYoKHF8MCkhPShsfDApKXt2PXg7
dz1sO2NvbnRpbnVlfXY9eDt3PWNbYis0Pj4yXXwwO2NvbnRpbnVlfWlmKG8pe0M9djtEPXd9ZWxz
ZXthW25dPTE7YVt1KzEyfDBdPTA7dT1jW3Q+PjJdfDA7dD11KzR8MDtuPWNbdD4+Ml18MDtvPW58
MDtiPWNbbz4+Ml18MDtjW3Q+PjJdPWI7aWYoKGJ8MCkhPTApe2NbYis4Pj4yXT11fWI9dSs4fDA7
Y1tuKzg+PjJdPWNbYj4+Ml07dD1jW2I+PjJdfDA7bD10fDA7aWYoKGNbbD4+Ml18MCk9PSh1fDAp
KXtjW2w+PjJdPW59ZWxzZXtjW3QrND4+Ml09bn1jW28+PjJdPXU7Y1tiPj4yXT1uO249Y1t3Pj4y
XXwwO0M9KHZ8MCk9PShufDApP3c6djtEPWNbbis0Pj4yXXwwfUU9RHwwO0Y9Y1tFPj4yXXwwO2lm
KChGfDApIT0wKXtpZigoYVtGKzEyfDBdJjEpPT0wKXtoPTMzNTticmVha319bj1jW0QrND4+Ml18
MDtpZigobnwwKSE9MCl7aWYoKGFbbisxMnwwXSYxKT09MCl7Rz1uO2g9MzM2O2JyZWFrfX1hW0Qr
MTJ8MF09MDtuPWNbRCs4Pj4yXXwwO2lmKChufDApPT0oQ3wwKSl7SD1DO2g9MzMyO2JyZWFrfWlm
KChhW24rMTJ8MF0mMSk9PTApe0g9bjtoPTMzMjticmVha31iPWNbbis4Pj4yXXwwO3U9Y1tiPj4y
XXwwO2lmKChufDApIT0odXwwKSl7dj1DO3c9dTtjb250aW51ZX12PUM7dz1jW2IrND4+Ml18MH1p
ZigoaHwwKT09MzMyKXthW0grMTJ8MF09MTtyZXR1cm59ZWxzZSBpZigoaHwwKT09MzM1KXtIPWNb
RCs0Pj4yXXwwO2lmKChIfDApPT0wKXtoPTMzN31lbHNle0c9SDtoPTMzNn19ZWxzZSBpZigoaHww
KT09MzYxKXthW0JdPTE7cmV0dXJufWVsc2UgaWYoKGh8MCk9PTM2NCl7aWYoQSl7aD0zNjZ9ZWxz
ZXtoPTM2NX19aWYoKGh8MCk9PTMzNil7aWYoKGFbRysxMnwwXSYxKT09MCl7ST1EO2g9MzQzfWVs
c2V7aD0zMzd9fWVsc2UgaWYoKGh8MCk9PTM2NSl7aWYoKGFbeisxMnwwXSYxKT09MCl7Sj15O2g9
MzcyfWVsc2V7aD0zNjZ9fWlmKChofDApPT0zMzcpe2FbRisxMnwwXT0xO2FbRCsxMnwwXT0wO0Y9
Y1tFPj4yXXwwO3o9Ris0fDA7Rz1jW3o+PjJdfDA7Y1tFPj4yXT1HO2lmKChHfDApIT0wKXtjW0cr
OD4+Ml09RH1HPUQrOHwwO2NbRis4Pj4yXT1jW0c+PjJdO0U9Y1tHPj4yXXwwO0E9RXwwO2lmKChj
W0E+PjJdfDApPT0oRHwwKSl7Y1tBPj4yXT1GfWVsc2V7Y1tFKzQ+PjJdPUZ9Y1t6Pj4yXT1EO2Nb
Rz4+Ml09RjtJPUY7aD0zNDN9ZWxzZSBpZigoaHwwKT09MzY2KXtGPXkrNHwwO2FbKGNbRj4+Ml18
MCkrMTJ8MF09MTthW3krMTJ8MF09MDtHPWNbRj4+Ml18MDtEPUd8MDt6PWNbRD4+Ml18MDtjW0Y+
PjJdPXo7aWYoKHp8MCkhPTApe2Nbeis4Pj4yXT15fXo9eSs4fDA7Y1tHKzg+PjJdPWNbej4+Ml07
Rj1jW3o+PjJdfDA7RT1GfDA7aWYoKGNbRT4+Ml18MCk9PSh5fDApKXtjW0U+PjJdPUd9ZWxzZXtj
W0YrND4+Ml09R31jW0Q+PjJdPXk7Y1t6Pj4yXT1HO0o9RztoPTM3Mn1pZigoaHwwKT09MzQzKXtH
PUkrOHwwO3o9KGNbRz4+Ml18MCkrMTJ8MDthW0krMTJ8MF09YVt6XSYxO2Fbel09MTthWyhjW0kr
ND4+Ml18MCkrMTJ8MF09MTtJPWNbRz4+Ml18MDtHPUkrNHwwO3o9Y1tHPj4yXXwwO3k9enwwO0Q9
Y1t5Pj4yXXwwO2NbRz4+Ml09RDtpZigoRHwwKSE9MCl7Y1tEKzg+PjJdPUl9RD1JKzh8MDtjW3or
OD4+Ml09Y1tEPj4yXTtHPWNbRD4+Ml18MDtGPUd8MDtpZigoY1tGPj4yXXwwKT09KEl8MCkpe2Nb
Rj4+Ml09en1lbHNle2NbRys0Pj4yXT16fWNbeT4+Ml09STtjW0Q+PjJdPXo7cmV0dXJufWVsc2Ug
aWYoKGh8MCk9PTM3Mil7aD1KKzh8MDt6PShjW2g+PjJdfDApKzEyfDA7YVtKKzEyfDBdPWFbel0m
MTthW3pdPTE7YVsoY1tKPj4yXXwwKSsxMnwwXT0xO0o9Y1toPj4yXXwwO2g9SnwwO3o9Y1toPj4y
XXwwO0Q9eis0fDA7ST1jW0Q+PjJdfDA7Y1toPj4yXT1JO2lmKChJfDApIT0wKXtjW0krOD4+Ml09
Sn1JPUorOHwwO2Nbeis4Pj4yXT1jW0k+PjJdO2g9Y1tJPj4yXXwwO3k9aHwwO2lmKChjW3k+PjJd
fDApPT0oSnwwKSl7Y1t5Pj4yXT16fWVsc2V7Y1toKzQ+PjJdPXp9Y1tEPj4yXT1KO2NbST4+Ml09
ejtyZXR1cm59fWZ1bmN0aW9uIGNDKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3Zh
ciBmPTAsZz0wLGo9MCxrPTAuMCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wO2Y9aTtnPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2c+PjJdO2c9
YSs0fDA7aj1jW2I+PjJdfDA7ZG97aWYoKGp8MCkhPShnfDApKXtrPStoW2U+PjNdO2lmKCtoW2or
MTY+PjNdPj1rKXticmVha31iPWd8MDtsPWNbYj4+Ml18MDtpZigobHwwKT09MCl7Y1tkPj4yXT1n
O209YjtpPWY7cmV0dXJuIG18MH1lbHNle249bH13aGlsZSgxKXtpZigraFtuKzE2Pj4zXTxrKXtv
PW4rNHwwO2w9Y1tvPj4yXXwwO2lmKChsfDApPT0wKXtwPTQwNjticmVha31lbHNle249bDtjb250
aW51ZX19ZWxzZXtxPW58MDtsPWNbcT4+Ml18MDtpZigobHwwKT09MCl7cD00MDg7YnJlYWt9ZWxz
ZXtuPWw7Y29udGludWV9fX1pZigocHwwKT09NDA4KXtjW2Q+PjJdPW47bT1xO2k9ZjtyZXR1cm4g
bXwwfWVsc2UgaWYoKHB8MCk9PTQwNil7Y1tkPj4yXT1uO209bztpPWY7cmV0dXJuIG18MH19fXdo
aWxlKDApO289Y1tqPj4yXXwwO2Rve2lmKChqfDApPT0oY1thPj4yXXwwKSl7cj1qfWVsc2V7aWYo
KG98MCk9PTApe249anwwO3doaWxlKDEpe3E9Y1tuKzg+PjJdfDA7aWYoKG58MCk9PShjW3E+PjJd
fDApKXtuPXF9ZWxzZXtzPXE7YnJlYWt9fX1lbHNle249bzt3aGlsZSgxKXtxPWNbbis0Pj4yXXww
O2lmKChxfDApPT0wKXtzPW47YnJlYWt9ZWxzZXtuPXF9fX1rPStoW2U+PjNdO2lmKGs+PStoW3Mr
MTY+PjNdKXtyPXM7YnJlYWt9bj1nfDA7cT1jW24+PjJdfDA7aWYoKHF8MCk9PTApe2NbZD4+Ml09
ZzttPW47aT1mO3JldHVybiBtfDB9ZWxzZXt0PXF9d2hpbGUoMSl7aWYoazwraFt0KzE2Pj4zXSl7
dT10fDA7cT1jW3U+PjJdfDA7aWYoKHF8MCk9PTApe3A9Mzk5O2JyZWFrfWVsc2V7dD1xO2NvbnRp
bnVlfX1lbHNle3Y9dCs0fDA7cT1jW3Y+PjJdfDA7aWYoKHF8MCk9PTApe3A9NDAxO2JyZWFrfWVs
c2V7dD1xO2NvbnRpbnVlfX19aWYoKHB8MCk9PTM5OSl7Y1tkPj4yXT10O209dTtpPWY7cmV0dXJu
IG18MH1lbHNlIGlmKChwfDApPT00MDEpe2NbZD4+Ml09dDttPXY7aT1mO3JldHVybiBtfDB9fX13
aGlsZSgwKTtpZigob3wwKT09MCl7Y1tkPj4yXT1qO209anwwO2k9ZjtyZXR1cm4gbXwwfWVsc2V7
Y1tkPj4yXT1yO209cis0fDA7aT1mO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rpb24gY0QoKXtj
QSgxZTUpO3JldHVybiAwfWZ1bmN0aW9uIGNFKGEsYil7YT1hfDA7Yj1ifDA7aWYoKGJ8MCk9PTAp
e3JldHVybn1lbHNle2NFKGEsY1tiPj4yXXwwKTtjRShhLGNbYis0Pj4yXXwwKTtrUyhiKTtyZXR1
cm59fWZ1bmN0aW9uIGNGKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGM9MCxkPTAsZT0wLGY9MCxnPTAs
aj0wLGs9MCxsPTAsbT0wLjA7Yz1pO2k9aSs4fDA7ZD1jfDA7ZT1iLWF8MDtpZigoZXwwKTw9OCl7
aT1jO3JldHVybn1jWShkKTtmPWItOHwwO2lmKGY+Pj4wPmE+Pj4wKXtiPWE7YT1lPj4zO3doaWxl
KDEpe2U9YS0xfDA7ZG97aWYoKGV8MCkhPTApe2lmKChhfDApPT0wKXtnPWNYKGQpfDB9ZWxzZXtq
PTMyLShrWihhfDApfDApfDA7az0oKCgtMT4+PigoMzMtanwwKT4+PjApJmF8MCk9PTApPDwzMT4+
MzEpK2p8MDtqPShrPj4+MCkvKCgoKGsmMzF8MCkhPTApKyhrPj4+NSl8MCk+Pj4wKXwwO2lmKChq
fDApPT0wKXtsPTB9ZWxzZXtsPS0xPj4+KCgzMi1qfDApPj4+MCl9d2hpbGUoMSl7aj0oY1goZCl8
MCkmbDtpZihqPj4+MDxhPj4+MCl7Zz1qO2JyZWFrfX19aWYoKGd8MCk9PTApe2JyZWFrfWo9Yiso
Zzw8Myl8MDttPStoW2I+PjNdO2hbYj4+M109K2hbaj4+M107aFtqPj4zXT1tfX13aGlsZSgwKTtq
PWIrOHwwO2lmKGo+Pj4wPGY+Pj4wKXtiPWo7YT1lfWVsc2V7YnJlYWt9fX1jVyhkKTtpPWM7cmV0
dXJufWZ1bmN0aW9uIGNHKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAs
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2U9KGR8MCk9PShifDApO2Fb
ZCsxMnwwXT1lJjE7aWYoZSl7cmV0dXJufWVsc2V7Zj1kfXdoaWxlKDEpe2c9Zis4fDA7aD1jW2c+
PjJdfDA7ZD1oKzEyfDA7aWYoKGFbZF0mMSkhPTApe2k9NDg3O2JyZWFrfWo9aCs4fDA7az1jW2o+
PjJdfDA7ZT1jW2s+PjJdfDA7aWYoKGh8MCk9PShlfDApKXtsPWNbays0Pj4yXXwwO2lmKChsfDAp
PT0wKXtpPTQ1MjticmVha31tPWwrMTJ8MDtpZigoYVttXSYxKSE9MCl7aT00NTI7YnJlYWt9YVtk
XT0xO2FbaysxMnwwXT0oa3wwKT09KGJ8MCl8MDthW21dPTF9ZWxzZXtpZigoZXwwKT09MCl7aT00
Njk7YnJlYWt9bT1lKzEyfDA7aWYoKGFbbV0mMSkhPTApe2k9NDY5O2JyZWFrfWFbZF09MTthW2sr
MTJ8MF09KGt8MCk9PShifDApfDA7YVttXT0xfWlmKChrfDApPT0oYnwwKSl7aT00ODQ7YnJlYWt9
ZWxzZXtmPWt9fWlmKChpfDApPT00Njkpe2I9aHwwO2lmKChmfDApPT0oY1tiPj4yXXwwKSl7bT1m
KzR8MDtkPWNbbT4+Ml18MDtjW2I+PjJdPWQ7aWYoKGR8MCk9PTApe249a31lbHNle2NbZCs4Pj4y
XT1oO249Y1tqPj4yXXwwfWNbZz4+Ml09bjtuPWNbaj4+Ml18MDtkPW58MDtpZigoY1tkPj4yXXww
KT09KGh8MCkpe2NbZD4+Ml09Zn1lbHNle2Nbbis0Pj4yXT1mfWNbbT4+Ml09aDtjW2o+PjJdPWY7
bz1mO3A9Y1tnPj4yXXwwfWVsc2V7bz1oO3A9a31hW28rMTJ8MF09MTthW3ArMTJ8MF09MDtvPXAr
NHwwO2c9Y1tvPj4yXXwwO209Z3wwO249Y1ttPj4yXXwwO2Nbbz4+Ml09bjtpZigobnwwKSE9MCl7
Y1tuKzg+PjJdPXB9bj1wKzh8MDtjW2crOD4+Ml09Y1tuPj4yXTtvPWNbbj4+Ml18MDtkPW98MDtp
ZigoY1tkPj4yXXwwKT09KHB8MCkpe2NbZD4+Ml09Z31lbHNle2Nbbys0Pj4yXT1nfWNbbT4+Ml09
cDtjW24+PjJdPWc7cmV0dXJufWVsc2UgaWYoKGl8MCk9PTQ4NCl7cmV0dXJufWVsc2UgaWYoKGl8
MCk9PTQ4Nyl7cmV0dXJufWVsc2UgaWYoKGl8MCk9PTQ1Mil7aWYoKGZ8MCk9PShjW2g+PjJdfDAp
KXtxPWg7cj1rfWVsc2V7Zj1oKzR8MDtpPWNbZj4+Ml18MDtnPWl8MDtuPWNbZz4+Ml18MDtjW2Y+
PjJdPW47aWYoKG58MCk9PTApe3M9a31lbHNle2Nbbis4Pj4yXT1oO3M9Y1tqPj4yXXwwfW49aSs4
fDA7Y1tuPj4yXT1zO3M9Y1tqPj4yXXwwO2s9c3wwO2lmKChjW2s+PjJdfDApPT0oaHwwKSl7Y1tr
Pj4yXT1pfWVsc2V7Y1tzKzQ+PjJdPWl9Y1tnPj4yXT1oO2Nbaj4+Ml09aTtxPWk7cj1jW24+PjJd
fDB9YVtxKzEyfDBdPTE7YVtyKzEyfDBdPTA7cT1yfDA7bj1jW3E+PjJdfDA7aT1uKzR8MDtqPWNb
aT4+Ml18MDtjW3E+PjJdPWo7aWYoKGp8MCkhPTApe2Nbais4Pj4yXT1yfWo9cis4fDA7Y1tuKzg+
PjJdPWNbaj4+Ml07cT1jW2o+PjJdfDA7aD1xfDA7aWYoKGNbaD4+Ml18MCk9PShyfDApKXtjW2g+
PjJdPW59ZWxzZXtjW3ErND4+Ml09bn1jW2k+PjJdPXI7Y1tqPj4yXT1uO3JldHVybn19ZnVuY3Rp
b24gY0goYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaj0wLGs9
MC4wLGw9MC4wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wO2Y9aTtnPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2c+
PjJdO2c9YSs0fDA7aj1jW2I+PjJdfDA7ZG97aWYoKGp8MCkhPShnfDApKXtrPStoW2U+PjNdO2w9
K2hbaisxNj4+M107aWYoazxsKXticmVha31pZihsPj1rKXtjW2Q+PjJdPWo7bT1kO2k9ZjtyZXR1
cm4gbXwwfWI9ais0fDA7bj1jW2I+PjJdfDA7bz0obnwwKT09MDtpZihvKXtwPWp8MDt3aGlsZSgx
KXtxPWNbcCs4Pj4yXXwwO2lmKChwfDApPT0oY1txPj4yXXwwKSl7cj1xO2JyZWFrfWVsc2V7cD1x
fX19ZWxzZXtwPW47d2hpbGUoMSl7cT1jW3A+PjJdfDA7aWYoKHF8MCk9PTApe3I9cDticmVha31l
bHNle3A9cX19fXA9Zztkb3tpZigocnwwKSE9KHB8MCkpe2lmKGs8K2hbcisxNj4+M10pe2JyZWFr
fW49Z3wwO3E9Y1tuPj4yXXwwO2lmKChxfDApPT0wKXtjW2Q+PjJdPXA7bT1uO2k9ZjtyZXR1cm4g
bXwwfWVsc2V7cz1xfXdoaWxlKDEpe2w9K2hbcysxNj4+M107aWYoazxsKXt0PXN8MDtxPWNbdD4+
Ml18MDtpZigocXwwKT09MCl7dT01MjE7YnJlYWt9ZWxzZXtzPXE7Y29udGludWV9fWlmKGw+PWsp
e3U9NTI1O2JyZWFrfXY9cys0fDA7cT1jW3Y+PjJdfDA7aWYoKHF8MCk9PTApe3U9NTI0O2JyZWFr
fWVsc2V7cz1xfX1pZigodXwwKT09NTIxKXtjW2Q+PjJdPXM7bT10O2k9ZjtyZXR1cm4gbXwwfWVs
c2UgaWYoKHV8MCk9PTUyNCl7Y1tkPj4yXT1zO209djtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1
fDApPT01MjUpe2NbZD4+Ml09czttPWQ7aT1mO3JldHVybiBtfDB9fX13aGlsZSgwKTtpZihvKXtj
W2Q+PjJdPWo7bT1iO2k9ZjtyZXR1cm4gbXwwfWVsc2V7Y1tkPj4yXT1yO209cnwwO2k9ZjtyZXR1
cm4gbXwwfX19d2hpbGUoMCk7cj1jW2o+PjJdfDA7ZG97aWYoKGp8MCk9PShjW2E+PjJdfDApKXt3
PWp9ZWxzZXtpZigocnwwKT09MCl7cz1qfDA7d2hpbGUoMSl7dj1jW3MrOD4+Ml18MDtpZigoc3ww
KT09KGNbdj4+Ml18MCkpe3M9dn1lbHNle3g9djticmVha319fWVsc2V7cz1yO3doaWxlKDEpe2I9
Y1tzKzQ+PjJdfDA7aWYoKGJ8MCk9PTApe3g9czticmVha31lbHNle3M9Yn19fWs9K2hbZT4+M107
aWYoK2hbeCsxNj4+M108ayl7dz14O2JyZWFrfXM9Z3wwO2I9Y1tzPj4yXXwwO2lmKChifDApPT0w
KXtjW2Q+PjJdPWc7bT1zO2k9ZjtyZXR1cm4gbXwwfWVsc2V7eT1ifXdoaWxlKDEpe2w9K2hbeSsx
Nj4+M107aWYoazxsKXt6PXl8MDtiPWNbej4+Ml18MDtpZigoYnwwKT09MCl7dT01MDI7YnJlYWt9
ZWxzZXt5PWI7Y29udGludWV9fWlmKGw+PWspe3U9NTA2O2JyZWFrfUE9eSs0fDA7Yj1jW0E+PjJd
fDA7aWYoKGJ8MCk9PTApe3U9NTA1O2JyZWFrfWVsc2V7eT1ifX1pZigodXwwKT09NTA1KXtjW2Q+
PjJdPXk7bT1BO2k9ZjtyZXR1cm4gbXwwfWVsc2UgaWYoKHV8MCk9PTUwNil7Y1tkPj4yXT15O209
ZDtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1fDApPT01MDIpe2NbZD4+Ml09eTttPXo7aT1mO3Jl
dHVybiBtfDB9fX13aGlsZSgwKTtpZigocnwwKT09MCl7Y1tkPj4yXT1qO209anwwO2k9ZjtyZXR1
cm4gbXwwfWVsc2V7Y1tkPj4yXT13O209dys0fDA7aT1mO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVu
Y3Rpb24gY0koYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MC4wLEg9MCxJPTA7Zz1pO2o9ZDtkPWk7aT1p
Kzh8MDtjW2Q+PjJdPWNbaj4+Ml07Y1tkKzQ+PjJdPWNbais0Pj4yXTtqPWU7ZT1pO2k9aSs4fDA7
Y1tlPj4yXT1jW2o+PjJdO2NbZSs0Pj4yXT1jW2orND4+Ml07aj1mO2Y9aTtpPWkrMXwwO2k9aSs3
Pj4zPDwzO2FbZl09YVtqXXwwO2o9ZHwwO2Y9ZCs0fDA7az1jW2Y+PjJdfDA7bD1jW2U+PjJdfDA7
bT1jW2UrND4+Ml18MDtMNjU1OmRve2lmKChrfDApPT0obXwwKSl7bj1rO289bDtwPTU0OX1lbHNl
e2U9Y1tqPj4yXXwwO3E9ZTtyPWs7cz1jW2U+PjJdfDA7d2hpbGUoMSl7ZT1yKzh8MDtpZigoZS1z
fDApPT00MDk2KXt0PXErNHwwO3U9Y1t0Pj4yXXwwO3Y9dDt3PXU7eD11fWVsc2V7dj1xO3c9ZTt4
PXN9aWYoKHd8MCk9PShtfDApKXticmVha31pZigraFtyPj4zXT09K2hbdz4+M10pe249cjtvPXE7
cD01NDk7YnJlYWsgTDY1NX1lbHNle3E9djtyPXc7cz14fX1jW2o+PjJdPWw7Y1tmPj4yXT1tfX13
aGlsZSgwKTtkb3tpZigocHwwKT09NTQ5KXtjW2o+PjJdPW87Y1tmPj4yXT1uO2lmKChufDApPT0o
bXwwKSl7YnJlYWt9bD1uKzh8MDt4PWNbbz4+Ml18MDtpZigobC14fDApPT00MDk2KXt3PW8rNHww
O3Y9Y1t3Pj4yXXwwO3k9dzt6PXY7QT12O0I9bjtDPW99ZWxzZXt5PW87ej1sO0E9eDtCPW47Qz1v
fXdoaWxlKDEpe3g9eis4fDA7aWYoKHgtQXwwKT09NDA5Nil7bD15KzR8MDt2PWNbbD4+Ml18MDtE
PWw7RT12O0Y9dn1lbHNle0Q9eTtFPXg7Rj1BfWlmKChFfDApPT0obXwwKSl7YnJlYWt9Rz0raFtF
Pj4zXTtpZigraFtCPj4zXT09Ryl7eT1EO3o9RTtBPUY7Qj1CO0M9Qztjb250aW51ZX14PUIrOHww
O2NbZj4+Ml09eDtpZigoeC0oY1tDPj4yXXwwKXwwKT09NDA5Nil7dj1DKzR8MDtjW2o+PjJdPXY7
bD1jW3Y+PjJdfDA7Y1tmPj4yXT1sO0g9djtJPWx9ZWxzZXtIPUM7ST14fWhbST4+M109Rzt5PUQ7
ej1FO0E9Y1tEPj4yXXwwO0I9STtDPUh9eD1CKzh8MDtjW2Y+PjJdPXg7aWYoKHgtKGNbQz4+Ml18
MCl8MCkhPTQwOTYpe2JyZWFrfXg9Qys0fDA7Y1tqPj4yXT14O2NbZj4+Ml09Y1t4Pj4yXX19d2hp
bGUoMCk7Zj1kO2Q9YjtiPWNbZis0Pj4yXXwwO2NbZD4+Ml09Y1tmPj4yXTtjW2QrND4+Ml09Yjtp
PWc7cmV0dXJufWZ1bmN0aW9uIGNKKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7dmFyIGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLjAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAuMCxEPTA7Zz1pO2k9aSs0OHww
O2o9YjtiPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2I+PjJdPWNbaj4+Ml07aj1kO2Q9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tqPj4yXTtqPWd8MDtrPWcrOHwwO2w9ZysxNnwwO209
ZysyNHwwO249ZyszMnwwO289Zys0MHwwO3N3aXRjaChlfDApe2Nhc2UgMjp7cD1kfDA7cT1jW2Nb
cD4+Ml0+PjJdfDA7Y1twPj4yXT1xO3A9Y1tiPj4yXXwwO2lmKCtoW3ErOD4+M108K2hbcCs4Pj4z
XSl7cj1xKzR8MDtzPXF8MDtjWyhjW3M+PjJdfDApKzQ+PjJdPWNbcj4+Ml07Y1tjW3I+PjJdPj4y
XT1jW3M+PjJdO3Q9cHwwO2NbKGNbdD4+Ml18MCkrND4+Ml09cTtjW3M+PjJdPWNbdD4+Ml07Y1t0
Pj4yXT1xO2Nbcj4+Ml09cDtjW2E+PjJdPXE7aT1nO3JldHVybn1lbHNle2NbYT4+Ml09cDtpPWc7
cmV0dXJufWJyZWFrfTtjYXNlIDA6Y2FzZSAxOntjW2E+PjJdPWNbYj4+Ml07aT1nO3JldHVybn07
ZGVmYXVsdDp7cD1lPj4+MTtxPWJ8MDtiPWNbcT4+Ml18MDtpZigocHwwKT09MCl7dT1ifWVsc2V7
cj1wO3Q9Yjt3aGlsZSgxKXtzPXItMXwwO3Y9Y1t0KzQ+PjJdfDA7aWYoKHN8MCk+MCl7cj1zO3Q9
dn1lbHNle3U9djticmVha319fWNbaz4+Ml09YjtjW2w+PjJdPXU7Y0ooaixrLGwscCxmKTtsPWNb
aj4+Ml18MDtjW3E+PjJdPWw7Y1tuPj4yXT11O3U9ZHwwO2Q9Y1t1Pj4yXXwwO2Nbbz4+Ml09ZDtj
SihtLG4sbyxlLXB8MCxmKTtmPWNbbT4+Ml18MDt3PStoW2wrOD4+M107aWYoK2hbZis4Pj4zXTx3
KXttPWNbZis0Pj4yXXwwO0w2OTc6ZG97aWYoKG18MCk9PShkfDApKXt4PWR9ZWxzZXtwPW07d2hp
bGUoMSl7aWYoK2hbcCs4Pj4zXT49dyl7eD1wO2JyZWFrIEw2OTd9ZT1jW3ArND4+Ml18MDtpZigo
ZXwwKT09KGR8MCkpe3g9ZDticmVha31lbHNle3A9ZX19fX13aGlsZSgwKTttPWNbeD4+Ml18MDtw
PW0rNHwwO2U9ZnwwO2NbKGNbZT4+Ml18MCkrND4+Ml09Y1twPj4yXTtjW2NbcD4+Ml0+PjJdPWNb
ZT4+Ml07bz1jW2wrND4+Ml18MDtuPWx8MDtjWyhjW24+PjJdfDApKzQ+PjJdPWY7Y1tlPj4yXT1j
W24+PjJdO2Nbbj4+Ml09bTtjW3A+PjJdPWw7eT1mO3o9eDtBPW99ZWxzZXt5PWw7ej1mO0E9Y1ts
KzQ+PjJdfDB9Y1txPj4yXT1BO0w3MDQ6ZG97aWYoKEF8MCkhPSh6fDApKXtsPXo7Zj16O289QTt4
PWQ7d2hpbGUoMSl7cD1sKzh8MDtpZigobHwwKT09KHh8MCkpe2JyZWFrIEw3MDR9ZWxzZXtCPW99
d2hpbGUoMSl7Qz0raFtCKzg+PjNdO2lmKCtoW3A+PjNdPEMpe2JyZWFrfW09Y1tCKzQ+PjJdfDA7
Y1txPj4yXT1tO2lmKChtfDApPT0oZnwwKSl7YnJlYWsgTDcwNH1lbHNle0I9bX19cD1jW2wrND4+
Ml18MDtMNzExOmRve2lmKChwfDApPT0oeHwwKSl7RD14fWVsc2V7bT1wO3doaWxlKDEpe2lmKCto
W20rOD4+M10+PUMpe0Q9bTticmVhayBMNzExfW49Y1ttKzQ+PjJdfDA7aWYoKG58MCk9PSh4fDAp
KXtEPXg7YnJlYWt9ZWxzZXttPW59fX19d2hpbGUoMCk7cD1jW0Q+PjJdfDA7bT1wKzR8MDtuPWx8
MDtjWyhjW24+PjJdfDApKzQ+PjJdPWNbbT4+Ml07Y1tjW20+PjJdPj4yXT1jW24+PjJdO2U9Y1tC
KzQ+PjJdfDA7aj0oZnwwKT09KGx8MCk/RDpmO2s9QnwwO2NbKGNbaz4+Ml18MCkrND4+Ml09bDtj
W24+PjJdPWNbaz4+Ml07Y1trPj4yXT1wO2NbbT4+Ml09QjtjW3E+PjJdPWU7aWYoKGV8MCk9PShq
fDApKXticmVhayBMNzA0fWw9RDtmPWo7bz1lO3g9Y1t1Pj4yXXwwfX19d2hpbGUoMCk7Y1thPj4y
XT15O2k9ZztyZXR1cm59fX1mdW5jdGlvbiBjSyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFy
IGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9
MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAs
YWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFz
PTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0w
LGFFPTAsYUY9MCxhRz0wLjAsYUg9MC4wLGFJPTAuMCxhSj0wLjAsYUs9MC4wLGFMPTAsYU09MCxh
Tj0wLGFPPTAsYVA9MCxhUT0wLGFSPTAsYVM9MC4wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxh
WT0wLGFaPTAsYV89MCxhJD0wLGEwPTAuMCxhMT0wLGEyPTAsYTM9MCxhND0wLGE1PTAsYTY9MCxh
Nz0wLGE4PTAuMCxhOT0wLGJhPTAsYmI9MCxiYz0wLGJkPTAuMCxiZT0wLGJmPTAsYmc9MCxiaD0w
LGJpPTAsYmo9MCxiaz0wLGJsPTAsYm09MCxibj0wLGJvPTAsYnA9MCxicT0wLGJyPTAsYnM9MCxi
dD0wLGJ1PTAuMCxidj0wLGJ3PTAsYng9MCxieT0wLGJ6PTAuMCxiQT0wLGJCPTAsYkM9MCxiRD0w
LGJFPTAsYkY9MCxiRz0wLGJIPTAsYkk9MCxiSj0wLGJLPTAsYkw9MCxiTT0wLGJOPTAsYk89MCxi
UD0wLGJRPTAuMCxiUj0wLGJTPTAsYlQ9MDtlPWk7aT1pKzh8MDtmPWE7YT1pO2k9aSs4fDA7Y1th
Pj4yXT1jW2Y+PjJdO2NbYSs0Pj4yXT1jW2YrND4+Ml07Zj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09
Y1tmPj4yXTtjW2IrND4+Ml09Y1tmKzQ+PjJdO2Y9ZXwwO2c9ZjtqPWk7aT1pKzh8MDtrPWo7bD1p
O2k9aSs4fDA7bT1sO249aTtpPWkrOHwwO289bjtwPWk7aT1pKzh8MDtxPXA7cj1pO2k9aSs4fDA7
cz1yO3Q9aTtpPWkrOHwwO3U9dDt2PWk7aT1pKzh8MDt3PXY7eD1pO2k9aSs4fDA7eT14O3o9aTtp
PWkrOHwwO0E9aTtpPWkrOHwwO0I9aTtpPWkrOHwwO0M9aTtpPWkrOHwwO0Q9QztFPWk7aT1pKzh8
MDtGPWk7aT1pKzh8MDtHPWk7aT1pKzh8MDtIPUc7ST1pO2k9aSs4fDA7Sj1JO0s9aTtpPWkrOHww
O0w9aTtpPWkrOHwwO009aTtpPWkrOHwwO049TTtPPWIrNHwwO1A9Y1tPPj4yXXwwO1E9YSs0fDA7
Uj1jW1E+PjJdfDA7aWYoKFB8MCk9PShSfDApKXtpPWU7cmV0dXJufVM9YnwwO1Q9YXwwO1U9YTth
PXkrNHwwO1Y9eDtXPXp8MDtYPXorNHwwO1k9QXwwO1o9QSs0fDA7Xz1CfDA7JD1CKzR8MDthYT1F
fDA7YWI9RSs0fDA7YWM9RnwwO2FkPUYrNHwwO2FlPWI7Yj1LfDA7YWY9Sys0fDA7YWc9THwwO2Fo
PUwrNHwwO2FpPVA7UD1SO0w3MjU6d2hpbGUoMSl7YWo9Y1tTPj4yXXwwO1I9Y1tUPj4yXXwwO2Fr
PWNbYWo+PjJdfDA7YWw9Y1tSPj4yXXwwO2FtPVAtYWw+PjM7YW49KGFpLWFrPj4zKSsoYWotUjw8
NyktYW18MDtzd2l0Y2goYW58MCl7Y2FzZSA1Onthbz02MzA7YnJlYWsgTDcyNTticmVha307Y2Fz
ZSA0Onthbz02MTA7YnJlYWsgTDcyNTticmVha307Y2FzZSAyOnthbz01OTM7YnJlYWsgTDcyNTti
cmVha307Y2FzZSAzOnthbz01OTc7YnJlYWsgTDcyNTticmVha307Y2FzZSAwOmNhc2UgMTp7YW89
NzYwO2JyZWFrIEw3MjU7YnJlYWt9O2RlZmF1bHQ6e319aWYoKGFufDApPDMxKXthbz02NDM7YnJl
YWt9aWYoKGFpfDApPT0oYWt8MCkpe2FwPWFqLTR8MDthcT1hcDthcj0oY1thcD4+Ml18MCkrNDA5
NnwwfWVsc2V7YXE9YWo7YXI9YWl9YXA9YXItOHwwO2FzPShhbnwwKS8yfDA7YXQ9KGFuKzF8MCk+
Pj4wPjI7ZG97aWYoKGFufDApPjk5OSl7ZG97aWYoYXQpe2F1PWFtK2FzfDA7aWYoKGF1fDApPjAp
e2F2PVIrKCgoYXV8MCkvNTEyfDApPDwyKXwwO2F3PWNbYXY+PjJdfDA7YXg9YXcrKCgoYXV8MCkl
NTEyfDApPDwzKXwwO2F5PWF2O2F6PWF3O2JyZWFrfWVsc2V7YXc9NTExLWF1fDA7YXU9UisoKChh
d3wwKS8tNTEyfDApPDwyKXwwO2F2PWNbYXU+PjJdfDA7YXg9YXYrKDUxMS0oKGF3fDApJTUxMnww
KTw8Myl8MDtheT1hdTthej1hdjticmVha319ZWxzZXtheD1QO2F5PVI7YXo9YWx9fXdoaWxlKDAp
O2F2PShhbnwwKS80fDA7YXU9Y1tVPj4yXXwwO2F3PWNbVSs0Pj4yXXwwO2Nbdj4+Ml09YXU7Y1t2
KzQ+PjJdPWF3O2NbeD4+Ml09YXU7Y1t4KzQ+PjJdPWF3O2FBPShhbiszfDApPj4+MD42O2FCPWF1
O2Rve2lmKGFBKXthdT0oYXctKGNbYUI+PjJdfDApPj4zKSthdnwwO2lmKChhdXwwKT4wKXthQz1h
QisoKChhdXwwKS81MTJ8MCk8PDIpfDA7Y1tWPj4yXT1hQztjW2E+PjJdPShjW2FDPj4yXXwwKSso
KChhdXwwKSU1MTJ8MCk8PDMpO2NbVz4+Ml09YXk7Y1tYPj4yXT1heDtjW1k+PjJdPWF5O2NbWj4+
Ml09YXg7aWYoIWFBKXticmVha319ZWxzZXthQz01MTEtYXV8MDthdT1hQisoKChhQ3wwKS8tNTEy
fDApPDwyKXwwO2NbVj4+Ml09YXU7Y1thPj4yXT0oY1thdT4+Ml18MCkrKDUxMS0oKGFDfDApJTUx
MnwwKTw8Myk7Y1tXPj4yXT1heTtjW1g+PjJdPWF4O2NbWT4+Ml09YXk7Y1taPj4yXT1heH1hQz0o
YXgtYXo+PjMpK2F2fDA7aWYoKGFDfDApPjApe2F1PWF5KygoKGFDfDApLzUxMnwwKTw8Mil8MDtj
W1k+PjJdPWF1O2NbWj4+Ml09KGNbYXU+PjJdfDApKygoKGFDfDApJTUxMnwwKTw8Myk7YnJlYWt9
ZWxzZXthdT01MTEtYUN8MDthQz1heSsoKChhdXwwKS8tNTEyfDApPDwyKXwwO2NbWT4+Ml09YUM7
Y1taPj4yXT0oY1thQz4+Ml18MCkrKDUxMS0oKGF1fDApJTUxMnwwKTw8Myk7YnJlYWt9fWVsc2V7
Y1tXPj4yXT1heTtjW1g+PjJdPWF4O2NbWT4+Ml09YXk7Y1taPj4yXT1heH19d2hpbGUoMCk7Y1tf
Pj4yXT1hcTtjWyQ+PjJdPWFwO2FEPWNMKHcseSx6LEEsQiwwKXwwO2FFPWF4fWVsc2V7ZG97aWYo
YXQpe2F2PWFtK2FzfDA7aWYoKGF2fDApPjApe2FGPShjW1IrKCgoYXZ8MCkvNTEyfDApPDwyKT4+
Ml18MCkrKCgoYXZ8MCklNTEyfDApPDwzKXwwO2JyZWFrfWVsc2V7YUI9NTExLWF2fDA7YUY9KGNb
UisoKChhQnwwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKGFCfDApJTUxMnwwKTw8Myl8MDti
cmVha319ZWxzZXthRj1QfX13aGlsZSgwKTthQj1jW1UrND4+Ml18MDthRz0raFthRj4+M107YUg9
K2hbYUI+PjNdO2FJPStoW2FwPj4zXTthdj1hSTxhRztpZihhRz49YUgpe2lmKCFhdil7YUQ9MDth
RT1hRjticmVha31oW2FGPj4zXT1hSTtoW2FwPj4zXT1hRzthSj0raFthRj4+M107YUs9K2hbYUI+
PjNdO2lmKGFKPj1hSyl7YUQ9MTthRT1hRjticmVha31oW2FCPj4zXT1hSjtoW2FGPj4zXT1hSzth
RD0yO2FFPWFGO2JyZWFrfWlmKGF2KXtoW2FCPj4zXT1hSTtoW2FwPj4zXT1hSDthRD0xO2FFPWFG
O2JyZWFrfWhbYUI+PjNdPWFHO2hbYUY+PjNdPWFIO2FHPStoW2FwPj4zXTtpZihhRz49YUgpe2FE
PTE7YUU9YUY7YnJlYWt9aFthRj4+M109YUc7aFthcD4+M109YUg7YUQ9MjthRT1hRn19d2hpbGUo
MCk7Uj1jW1Q+PjJdfDA7YXM9Y1tRPj4yXXwwO2FIPStoW2FzPj4zXTthRz0raFthRT4+M107ZG97
aWYoYUg8YUcpe2FMPWFEO2FNPWFxO2FOPWFwO2FvPTcwN31lbHNle2FtPWFxO2F0PWFwO2FuPWNb
YXE+PjJdfDA7d2hpbGUoMSl7aWYoKGF0fDApPT0oYW58MCkpe2FsPWFtLTR8MDthQj1jW2FsPj4y
XXwwO2FPPWFsO2FQPWFCKzQwOTZ8MDthUT1hQn1lbHNle2FPPWFtO2FQPWF0O2FRPWFufWFSPWFQ
LTh8MDtpZigoYXN8MCk9PShhUnwwKSl7YnJlYWt9YVM9K2hbYVI+PjNdO2lmKGFTPGFHKXthbz03
MDY7YnJlYWt9ZWxzZXthbT1hTzthdD1hUjthbj1hUX19aWYoKGFvfDApPT03MDYpe2FvPTA7aFth
cz4+M109YVM7aFthUj4+M109YUg7YUw9YUQrMXwwO2FNPWFPO2FOPWFSO2FvPTcwNzticmVha31h
bj1hcys4fDA7YXQ9Y1tSPj4yXXwwO2lmKChhbi1hdHwwKT09NDA5Nil7YW09Uis0fDA7YUI9Y1th
bT4+Ml18MDthVD1hQjthVT1hbTthVj1hQn1lbHNle2FUPWFuO2FVPVI7YVY9YXR9YXQ9Y1tTPj4y
XXwwO2FuPWNbTz4+Ml18MDtpZigoYW58MCk9PShjW2F0Pj4yXXwwKSl7YUI9YXQtNHwwO2FXPWFC
O2FYPShjW2FCPj4yXXwwKSs0MDk2fDB9ZWxzZXthVz1hdDthWD1hbn1hbj1hWC04fDA7YUk9K2hb
YW4+PjNdO2Rve2lmKGFIPGFJKXthWT1hVDthWj1hVTthXz1hVn1lbHNle2F0PWFUO2FCPWFVO2Ft
PWFWO0w3ODY6d2hpbGUoMSl7YSQ9YXQ7d2hpbGUoMSl7aWYoKGEkfDApPT0oYW58MCkpe2FvPTc2
NzticmVhayBMNzI1fWEwPStoW2EkPj4zXTtpZihhSDxhMCl7YnJlYWsgTDc4Nn1hbD1hJCs4fDA7
aWYoKGFsLWFtfDApPT00MDk2KXticmVha31lbHNle2EkPWFsfX1hbD1hQis0fDA7YXY9Y1thbD4+
Ml18MDthdD1hdjthQj1hbDthbT1hdn1oW2EkPj4zXT1hSTtoW2FuPj4zXT1hMDthbT1hJCs4fDA7
YXQ9Y1thQj4+Ml18MDtpZigoYW0tYXR8MCkhPTQwOTYpe2FZPWFtO2FaPWFCO2FfPWF0O2JyZWFr
fWF0PWFCKzR8MDthbT1jW2F0Pj4yXXwwO2FZPWFtO2FaPWF0O2FfPWFtfX13aGlsZSgwKTtpZigo
YVl8MCk9PShhbnwwKSl7YW89NzY4O2JyZWFrIEw3MjV9ZWxzZXthMT1hWTthMj1hWjthMz1hVzth
ND1hbjthNT1hX313aGlsZSgxKXthST0raFtjW1E+PjJdPj4zXTthbT1hMTthNj1hMjthdD1hNTtM
Nzk4OndoaWxlKDEpe2E3PWFtO3doaWxlKDEpe2E4PStoW2E3Pj4zXTtpZihhSTxhOCl7YnJlYWsg
TDc5OH1hdj1hNys4fDA7aWYoKGF2LWF0fDApPT00MDk2KXticmVha31lbHNle2E3PWF2fX1hdj1h
Nis0fDA7YWw9Y1thdj4+Ml18MDthbT1hbDthNj1hdjthdD1hbH1hdD1hMzthbT1hNDthQj1jW2Ez
Pj4yXXwwO3doaWxlKDEpe2lmKChhbXwwKT09KGFCfDApKXthbD1hdC00fDA7YXY9Y1thbD4+Ml18
MDthOT1hbDtiYT1hdis0MDk2fDA7YmI9YXZ9ZWxzZXthOT1hdDtiYT1hbTtiYj1hQn1iYz1iYS04
fDA7YmQ9K2hbYmM+PjNdO2lmKGFJPGJkKXthdD1hOTthbT1iYzthQj1iYn1lbHNle2JyZWFrfX1p
ZihhNj4+PjA+PWE5Pj4+MCl7aWYoYTc+Pj4wPj1iYz4+PjB8KGE2fDApIT0oYTl8MCkpe2JyZWFr
fX1oW2E3Pj4zXT1iZDtoW2JjPj4zXT1hODthQj1hNys4fDA7YW09Y1thNj4+Ml18MDtpZigoYUIt
YW18MCkhPTQwOTYpe2ExPWFCO2EyPWE2O2EzPWE5O2E0PWJjO2E1PWFtO2NvbnRpbnVlfWFtPWE2
KzR8MDthQj1jW2FtPj4yXXwwO2ExPWFCO2EyPWFtO2EzPWE5O2E0PWJjO2E1PWFCfWNbVD4+Ml09
YTY7Y1tRPj4yXT1hNztiZT1hN319d2hpbGUoMCk7TDgxNjpkb3tpZigoYW98MCk9PTcwNyl7YW89
MDthcD1hcys4fDA7YW49Y1tSPj4yXXwwO2lmKChhcC1hbnwwKT09NDA5Nil7YUI9Uis0fDA7YW09
Y1thQj4+Ml18MDtiZj1hbTtiZz1hQjtiaD1hbX1lbHNle2JmPWFwO2JnPVI7Ymg9YW59aWYoYmc+
Pj4wPGFNPj4+MCl7Ymk9YUw7Ymo9YmY7Yms9Ymc7Ymw9YUU7Ym09YU07Ym49YU47Ym89Ymg7YW89
NzExfWVsc2V7aWYoKGJnfDApPT0oYU18MCkmYmY+Pj4wPGFOPj4+MCl7Ymk9YUw7Ymo9YmY7Yms9
Ymc7Ymw9YUU7Ym09YU07Ym49YU47Ym89Ymg7YW89NzExfWVsc2V7YnA9YUw7YnE9YmY7YnI9Ymc7
YnM9YUV9fUw4MjM6ZG97aWYoKGFvfDApPT03MTEpe3doaWxlKDEpe2FvPTA7YUg9K2hbYmw+PjNd
O2FuPWJqO2FwPWJrO2FtPWJvO0w4MjY6d2hpbGUoMSl7YnQ9YW47d2hpbGUoMSl7YnU9K2hbYnQ+
PjNdO2lmKGJ1Pj1hSCl7YnJlYWsgTDgyNn1hQj1idCs4fDA7aWYoKGFCLWFtfDApPT00MDk2KXti
cmVha31lbHNle2J0PWFCfX1hQj1hcCs0fDA7YXQ9Y1thQj4+Ml18MDthbj1hdDthcD1hQjthbT1h
dH1hbT1ibTthbj1ibjthdD1jW2JtPj4yXXwwO3doaWxlKDEpe2lmKChhbnwwKT09KGF0fDApKXth
Qj1hbS00fDA7YXY9Y1thQj4+Ml18MDtidj1hQjtidz1hdis0MDk2fDA7Yng9YXZ9ZWxzZXtidj1h
bTtidz1hbjtieD1hdH1ieT1idy04fDA7Yno9K2hbYnk+PjNdO2lmKGJ6Pj1hSCl7YW09YnY7YW49
Ynk7YXQ9Ynh9ZWxzZXticmVha319aWYoYnY+Pj4wPGFwPj4+MCl7YnA9Ymk7YnE9YnQ7YnI9YXA7
YnM9Ymw7YnJlYWsgTDgyM31pZigoYnZ8MCk9PShhcHwwKSZieT4+PjA8YnQ+Pj4wKXticD1iaTti
cT1idDticj1hcDticz1ibDticmVhayBMODIzfWhbYnQ+PjNdPWJ6O2hbYnk+PjNdPWJ1O2F0PWJp
KzF8MDthbj0oYmx8MCk9PShidHwwKT9ieTpibDthbT1idCs4fDA7YXY9Y1thcD4+Ml18MDtpZigo
YW0tYXZ8MCkhPTQwOTYpe2JpPWF0O2JqPWFtO2JrPWFwO2JsPWFuO2JtPWJ2O2JuPWJ5O2JvPWF2
O2FvPTcxMTtjb250aW51ZX1hdj1hcCs0fDA7YW09Y1thdj4+Ml18MDtiaT1hdDtiaj1hbTtiaz1h
djtibD1hbjtibT1idjtibj1ieTtibz1hbTthbz03MTF9fX13aGlsZSgwKTtkb3tpZigoYnF8MCk9
PShic3wwKSl7YkE9YnB9ZWxzZXthSD0raFticz4+M107YUc9K2hbYnE+PjNdO2lmKGFIPj1hRyl7
YkE9YnA7YnJlYWt9aFticT4+M109YUg7aFticz4+M109YUc7YkE9YnArMXwwfX13aGlsZSgwKTtk
b3tpZigoYkF8MCk9PTApe2FtPWNbVSs0Pj4yXXwwO2NbQz4+Ml09Y1tVPj4yXTtjW0MrND4+Ml09
YW07Y1thYT4+Ml09YnI7Y1thYj4+Ml09YnE7YW09Y04oRCxFLDApfDA7Y1thYz4+Ml09YnI7Y1th
ZD4+Ml09YnE7YW49YnEtKGNbYnI+PjJdfDApPj4zO2F2PWFuKzF8MDtpZigoYXZ8MCk+MCl7YXQ9
YnIrKCgoYXZ8MCkvNTEyfDApPDwyKXwwO2NbYWM+PjJdPWF0O2JCPShjW2F0Pj4yXXwwKSsoKChh
dnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXthdj01MTAtYW58MDthbj1icisoKChhdnwwKS8tNTEyfDAp
PDwyKXwwO2NbYWM+PjJdPWFuO2JCPShjW2FuPj4yXXwwKSsoNTExLSgoYXZ8MCklNTEyfDApPDwz
KXwwfWNbYWQ+PjJdPWJCO2F2PWNbYWUrND4+Ml18MDtjW0c+PjJdPWNbYWU+PjJdO2NbRys0Pj4y
XT1hdjtpZihjTihGLEgsMCl8MCl7aWYoYW0pe2FvPTc3MDticmVhayBMNzI1fWNbUz4+Ml09YnI7
Y1tPPj4yXT1icTtiZT1jW1E+PjJdfDA7YnJlYWsgTDgxNn1pZighYW0pe2JyZWFrfWFtPWJxKzh8
MDtpZigoYW0tKGNbYnI+PjJdfDApfDApPT00MDk2KXthdj1icis0fDA7YkM9Y1thdj4+Ml18MDti
RD1hdn1lbHNle2JDPWFtO2JEPWJyfWNbVD4+Ml09YkQ7Y1tRPj4yXT1iQztiZT1iQzticmVhayBM
ODE2fX13aGlsZSgwKTthbT1jW1E+PjJdfDA7aWYoKGJxfDApPT0oYW18MCkpe2JFPTB9ZWxzZXth
dj1jW1Q+PjJdfDA7YkU9KGJxLShjW2JyPj4yXXwwKT4+MykrKGJyLWF2PDw3KS0oYW0tKGNbYXY+
PjJdfDApPj4zKXwwfWF2PWNbTz4+Ml18MDtpZigoYXZ8MCk9PShicXwwKSl7YkY9MH1lbHNle2Fu
PWNbUz4+Ml18MDtiRj0oYXYtKGNbYW4+PjJdfDApPj4zKSsoYW4tYnI8PDcpLShicS0oY1ticj4+
Ml18MCk+PjMpfDB9aWYoKGJFfDApPChiRnwwKSl7YW49Y1tVKzQ+PjJdfDA7Y1tJPj4yXT1jW1U+
PjJdO2NbSSs0Pj4yXT1hbjtjW2I+PjJdPWJyO2NbYWY+PjJdPWJxO2NLKEosSyxkKTthbj1icSs4
fDA7aWYoKGFuLShjW2JyPj4yXXwwKXwwKT09NDA5Nil7YXY9YnIrNHwwO2JHPWNbYXY+PjJdfDA7
Ykg9YXZ9ZWxzZXtiRz1hbjtiSD1icn1jW1Q+PjJdPWJIO2NbUT4+Ml09Ykc7YmU9Ykc7YnJlYWt9
Y1thZz4+Ml09YnI7Y1thaD4+Ml09YnE7YW49YnEtKGNbYnI+PjJdfDApPj4zO2F2PWFuKzF8MDtp
ZigoYXZ8MCk+MCl7YXQ9YnIrKCgoYXZ8MCkvNTEyfDApPDwyKXwwO2NbYWc+PjJdPWF0O2JJPShj
W2F0Pj4yXXwwKSsoKChhdnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXthdj01MTAtYW58MDthbj1iciso
KChhdnwwKS8tNTEyfDApPDwyKXwwO2NbYWc+PjJdPWFuO2JJPShjW2FuPj4yXXwwKSsoNTExLSgo
YXZ8MCklNTEyfDApPDwzKXwwfWNbYWg+PjJdPWJJO2F2PWNbYWUrND4+Ml18MDtjW00+PjJdPWNb
YWU+PjJdO2NbTSs0Pj4yXT1hdjtjSyhMLE4sZCk7Y1tTPj4yXT1icjtjW08+PjJdPWJxO2JlPWFt
fX13aGlsZSgwKTtSPWNbTz4+Ml18MDtpZigoUnwwKT09KGJlfDApKXthbz03Njk7YnJlYWt9ZWxz
ZXthaT1SO1A9YmV9fWlmKChhb3wwKT09NjMwKXtiZT1jW1U+PjJdfDA7YnE9Y1tVKzQ+PjJdfDA7
Y1tmPj4yXT1iZTtjW2YrND4+Ml09YnE7Y1tqPj4yXT1iZTtjW2orND4+Ml09YnE7Zj1icTticj1q
O2o9YmU7ZD1mLShjW2o+PjJdfDApPj4zO049ZCsxfDA7aWYoKE58MCk+MCl7TD1qKygoKE58MCkv
NTEyfDApPDwyKXwwO2NbYnI+PjJdPUw7Yko9KGNbTD4+Ml18MCkrKCgoTnwwKSU1MTJ8MCk8PDMp
fDB9ZWxzZXtOPTUxMC1kfDA7ZD1qKygoKE58MCkvLTUxMnwwKTw8Mil8MDtjW2JyPj4yXT1kO2JK
PShjW2Q+PjJdfDApKyg1MTEtKChOfDApJTUxMnwwKTw8Myl8MH1jW2srND4+Ml09Yko7Y1tsPj4y
XT1iZTtjW2wrND4+Ml09YnE7Yko9bDtsPWYtKGNbaj4+Ml18MCk+PjM7Tj1sKzJ8MDtpZigoTnww
KT4wKXtkPWorKCgoTnwwKS81MTJ8MCk8PDIpfDA7Y1tiSj4+Ml09ZDtiSz0oY1tkPj4yXXwwKSso
KChOfDApJTUxMnwwKTw8Myl8MH1lbHNle049NTA5LWx8MDtsPWorKCgoTnwwKS8tNTEyfDApPDwy
KXwwO2NbYko+PjJdPWw7Yks9KGNbbD4+Ml18MCkrKDUxMS0oKE58MCklNTEyfDApPDwzKXwwfWNb
bSs0Pj4yXT1iSztjW24+PjJdPWJlO2Nbbis0Pj4yXT1icTticT1uO249Zi0oY1tqPj4yXXwwKT4+
MztmPW4rM3wwO2lmKChmfDApPjApe2JlPWorKCgoZnwwKS81MTJ8MCk8PDIpfDA7Y1ticT4+Ml09
YmU7Ykw9KGNbYmU+PjJdfDApKygoKGZ8MCklNTEyfDApPDwzKXwwfWVsc2V7Zj01MDgtbnwwO249
aisoKChmfDApLy01MTJ8MCk8PDIpfDA7Y1ticT4+Ml09bjtiTD0oY1tuPj4yXXwwKSsoNTExLSgo
ZnwwKSU1MTJ8MCk8PDMpfDB9Y1tvKzQ+PjJdPWJMO2lmKChhaXwwKT09KGFrfDApKXtiTD1hai00
fDA7Y1tTPj4yXT1iTDtmPShjW2JMPj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1mO2JNPWZ9ZWxzZXti
TT1haX1jW08+PjJdPWJNLTg7Yk09Y1thZSs0Pj4yXXwwO2NbcD4+Ml09Y1thZT4+Ml07Y1twKzQ+
PjJdPWJNO2NMKGcsayxtLG8scSwwKXwwO2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTYxMCl7
cT1jW1U+PjJdfDA7bz1jW1UrND4+Ml18MDttPW87az1vLShjW3E+PjJdfDApPj4zO289aysxfDA7
aWYoKG98MCk+MCl7Yk49KGNbcSsoKChvfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKG98MCklNTEy
fDApPDwzKXwwfWVsc2V7bz01MTAta3wwO2JOPShjW3ErKCgob3wwKS8tNTEyfDApPDwyKT4+Ml18
MCkrKDUxMS0oKG98MCklNTEyfDApPDwzKXwwfW89aysyfDA7aWYoKG98MCk+MCl7Yk89KGNbcSso
KChvfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKG98MCklNTEyfDApPDwzKXwwfWVsc2V7bz01MDkt
a3wwO2JPPShjW3ErKCgob3wwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKG98MCklNTEyfDAp
PDwzKXwwfWlmKChhaXwwKT09KGFrfDApKXtvPWFqLTR8MDtjW1M+PjJdPW87cT0oY1tvPj4yXXww
KSs0MDk2fDA7Y1tPPj4yXT1xO2JQPXF9ZWxzZXtiUD1haX1jW08+PjJdPWJQLTg7YlA9Y1thZSs0
Pj4yXXwwO2J1PStoW2JOPj4zXTtiej0raFttPj4zXTthOD0raFtiTz4+M107cT1hODxidTtkb3tp
ZihidTxieil7aWYocSl7aFttPj4zXT1hODtoW2JPPj4zXT1iejtiUT1iejticmVha31oW20+PjNd
PWJ1O2hbYk4+PjNdPWJ6O2JkPStoW2JPPj4zXTtpZihiZD49Ynope2JRPWJkO2JyZWFrfWhbYk4+
PjNdPWJkO2hbYk8+PjNdPWJ6O2JRPWJ6fWVsc2V7aWYoIXEpe2JRPWE4O2JyZWFrfWhbYk4+PjNd
PWE4O2hbYk8+PjNdPWJ1O2JkPStoW2JOPj4zXTthMD0raFttPj4zXTtpZihiZD49YTApe2JRPWJ1
O2JyZWFrfWhbbT4+M109YmQ7aFtiTj4+M109YTA7YlE9K2hbYk8+PjNdfX13aGlsZSgwKTtidT0r
aFtiUD4+M107aWYoYnU+PWJRKXtpPWU7cmV0dXJufWhbYk8+PjNdPWJ1O2hbYlA+PjNdPWJRO2JR
PStoW2JPPj4zXTtidT0raFtiTj4+M107aWYoYlE+PWJ1KXtpPWU7cmV0dXJufWhbYk4+PjNdPWJR
O2hbYk8+PjNdPWJ1O2J1PStoW2JOPj4zXTtiUT0raFttPj4zXTtpZihidT49YlEpe2k9ZTtyZXR1
cm59aFttPj4zXT1idTtoW2JOPj4zXT1iUTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT02NDMp
e2JOPWNbVSs0Pj4yXXwwO2Nbcj4+Ml09Y1tVPj4yXTtjW3IrND4+Ml09Yk47Yk49Y1thZSs0Pj4y
XXwwO2NbdD4+Ml09Y1thZT4+Ml07Y1t0KzQ+PjJdPWJOO2NNKHMsdSwwKTtpPWU7cmV0dXJufWVs
c2UgaWYoKGFvfDApPT01OTMpe2lmKChhaXwwKT09KGFrfDApKXt1PWFqLTR8MDtjW1M+PjJdPXU7
cz0oY1t1Pj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1zO2JSPXN9ZWxzZXtiUj1haX1zPWJSLTh8MDtj
W08+PjJdPXM7YlE9K2hbcz4+M107YnU9K2hbUD4+M107aWYoYlE+PWJ1KXtpPWU7cmV0dXJufWhb
UD4+M109YlE7aFtzPj4zXT1idTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT01OTcpe3M9Y1tV
Pj4yXXwwO1A9Y1tVKzQ+PjJdfDA7VT1QO2JSPVAtKGNbcz4+Ml18MCk+PjM7UD1iUisxfDA7aWYo
KFB8MCk+MCl7YlM9KGNbcysoKChQfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKFB8MCklNTEyfDAp
PDwzKXwwfWVsc2V7UD01MTAtYlJ8MDtiUz0oY1tzKygoKFB8MCkvLTUxMnwwKTw8Mik+PjJdfDAp
Kyg1MTEtKChQfDApJTUxMnwwKTw8Myl8MH1pZigoYWl8MCk9PShha3wwKSl7YWs9YWotNHwwO2Nb
Uz4+Ml09YWs7Uz0oY1thaz4+Ml18MCkrNDA5NnwwO2NbTz4+Ml09UztiVD1TfWVsc2V7YlQ9YWl9
Y1tPPj4yXT1iVC04O2JUPWNbYWUrND4+Ml18MDtidT0raFtiUz4+M107YlE9K2hbVT4+M107YTg9
K2hbYlQ+PjNdO2FlPWE4PGJ1O2lmKGJ1Pj1iUSl7aWYoIWFlKXtpPWU7cmV0dXJufWhbYlM+PjNd
PWE4O2hbYlQ+PjNdPWJ1O2J6PStoW2JTPj4zXTthMD0raFtVPj4zXTtpZihiej49YTApe2k9ZTty
ZXR1cm59aFtVPj4zXT1iejtoW2JTPj4zXT1hMDtpPWU7cmV0dXJufWlmKGFlKXtoW1U+PjNdPWE4
O2hbYlQ+PjNdPWJRO2k9ZTtyZXR1cm59aFtVPj4zXT1idTtoW2JTPj4zXT1iUTtidT0raFtiVD4+
M107aWYoYnU+PWJRKXtpPWU7cmV0dXJufWhbYlM+PjNdPWJ1O2hbYlQ+PjNdPWJRO2k9ZTtyZXR1
cm59ZWxzZSBpZigoYW98MCk9PTc2MCl7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzY3KXtp
PWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT03Njgpe2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9
PTc2OSl7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzcwKXtpPWU7cmV0dXJufX1mdW5jdGlv
biBjTChhLGIsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFy
IGo9MCxrPTAsbD0wLG09MCxuPTAuMCxvPTAuMCxwPTAuMCxxPTAscj0wLHM9MC4wLHQ9MC4wLHU9
MC4wLHY9MCx3PTA7Zz1pO2o9YTthPWk7aT1pKzh8MDtjW2E+PjJdPWNbaj4+Ml07Y1thKzQ+PjJd
PWNbais0Pj4yXTtqPWI7Yj1pO2k9aSs4fDA7Y1tiPj4yXT1jW2o+PjJdO2NbYis0Pj4yXT1jW2or
ND4+Ml07aj1kO2Q9aTtpPWkrOHwwO2NbZD4+Ml09Y1tqPj4yXTtjW2QrND4+Ml09Y1tqKzQ+PjJd
O2o9ZTtlPWk7aT1pKzh8MDtjW2U+PjJdPWNbaj4+Ml07Y1tlKzQ+PjJdPWNbais0Pj4yXTtqPWY7
Zj1pO2k9aSs4fDA7Y1tmPj4yXT1jW2o+PjJdO2NbZis0Pj4yXT1jW2orND4+Ml07aj1jW2ErND4+
Ml18MDtrPWNbYis0Pj4yXXwwO2w9Y1tkKzQ+PjJdfDA7bT1jW2UrND4+Ml18MDtuPStoW2s+PjNd
O289K2hbaj4+M107cD0raFtsPj4zXTtxPXA8bjtkb3tpZihuPG8pe2lmKHEpe2hbaj4+M109cDto
W2w+PjNdPW87cj0xO3M9bzticmVha31oW2o+PjNdPW47aFtrPj4zXT1vO3Q9K2hbbD4+M107aWYo
dD49byl7cj0xO3M9dDticmVha31oW2s+PjNdPXQ7aFtsPj4zXT1vO3I9MjtzPW99ZWxzZXtpZigh
cSl7cj0wO3M9cDticmVha31oW2s+PjNdPXA7aFtsPj4zXT1uO3Q9K2hbaz4+M107dT0raFtqPj4z
XTtpZih0Pj11KXtyPTE7cz1uO2JyZWFrfWhbaj4+M109dDtoW2s+PjNdPXU7cj0yO3M9K2hbbD4+
M119fXdoaWxlKDApO249K2hbbT4+M107ZG97aWYobjxzKXtoW2w+PjNdPW47aFttPj4zXT1zO3A9
K2hbbD4+M107bz0raFtrPj4zXTtpZihwPj1vKXt2PXIrMXwwO2JyZWFrfWhbaz4+M109cDtoW2w+
PjNdPW87bz0raFtrPj4zXTtwPStoW2o+PjNdO2lmKG8+PXApe3Y9cisyfDA7YnJlYWt9aFtqPj4z
XT1vO2hbaz4+M109cDt2PXIrM3wwfWVsc2V7dj1yfX13aGlsZSgwKTtyPWNbZis0Pj4yXXwwO2Y9
Y1tlKzQ+PjJdfDA7cz0raFtyPj4zXTtuPStoW2Y+PjNdO2lmKHM+PW4pe3c9djtpPWc7cmV0dXJu
IHd8MH1oW2Y+PjNdPXM7aFtyPj4zXT1uO3I9Y1tkKzQ+PjJdfDA7bj0raFtmPj4zXTtzPStoW3I+
PjNdO2lmKG4+PXMpe3c9disxfDA7aT1nO3JldHVybiB3fDB9aFtyPj4zXT1uO2hbZj4+M109cztm
PWNbYis0Pj4yXXwwO3M9K2hbcj4+M107bj0raFtmPj4zXTtpZihzPj1uKXt3PXYrMnwwO2k9Zzty
ZXR1cm4gd3wwfWhbZj4+M109cztoW3I+PjNdPW47cj1jW2ErND4+Ml18MDtuPStoW2Y+PjNdO3M9
K2hbcj4+M107aWYobj49cyl7dz12KzN8MDtpPWc7cmV0dXJuIHd8MH1oW3I+PjNdPW47aFtmPj4z
XT1zO3c9dis0fDA7aT1nO3JldHVybiB3fDB9ZnVuY3Rpb24gY00oYSxiLGQpe2E9YXwwO2I9Ynww
O2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MC4wLHA9MC4wLHE9
MC4wLHI9MC4wLHM9MC4wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7ZD1pO2U9YTth
PWk7aT1pKzh8MDtjW2E+PjJdPWNbZT4+Ml07Y1thKzQ+PjJdPWNbZSs0Pj4yXTtlPWI7Yj1pO2k9
aSs4fDA7Y1tiPj4yXT1jW2U+PjJdO2NbYis0Pj4yXT1jW2UrND4+Ml07ZT1jW2E+PjJdfDA7Zj1h
KzR8MDtnPShjW2Y+PjJdfDApLShjW2U+PjJdfDApPj4zO2o9ZysyfDA7aWYoKGp8MCk+MCl7az1l
KygoKGp8MCkvNTEyfDApPDwyKXwwO2w9KGNbaz4+Ml18MCkrKCgoanwwKSU1MTJ8MCk8PDMpfDA7
bT1rfWVsc2V7az01MDktZ3wwO2c9ZSsoKChrfDApLy01MTJ8MCk8PDIpfDA7bD0oY1tnPj4yXXww
KSsoNTExLSgoa3wwKSU1MTJ8MCk8PDMpfDA7bT1nfWc9YTthPWNbZz4+Ml18MDtrPWNbZys0Pj4y
XXwwO2c9aztlPWstKGNbYT4+Ml18MCk+PjM7az1lKzF8MDtpZigoa3wwKT4wKXtuPShjW2ErKCgo
a3wwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChrfDApJTUxMnwwKTw8Myl8MH1lbHNle2s9NTEwLWV8
MDtuPShjW2ErKCgoa3wwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKGt8MCklNTEyfDApPDwz
KXwwfW89K2hbbj4+M107cD0raFtnPj4zXTtxPStoW2w+PjNdO2s9cTxvO2Rve2lmKG88cCl7aWYo
ayl7aFtnPj4zXT1xO2hbbD4+M109cDticmVha31oW2c+PjNdPW87aFtuPj4zXT1wO3I9K2hbbD4+
M107aWYocj49cCl7YnJlYWt9aFtuPj4zXT1yO2hbbD4+M109cH1lbHNle2lmKCFrKXticmVha31o
W24+PjNdPXE7aFtsPj4zXT1vO3I9K2hbbj4+M107cz0raFtnPj4zXTtpZihyPj1zKXticmVha31o
W2c+PjNdPXI7aFtuPj4zXT1zfX13aGlsZSgwKTtuPWwtKGNbbT4+Ml18MCk+PjM7Zz1uKzF8MDtp
ZigoZ3wwKT4wKXtrPW0rKCgoZ3wwKS81MTJ8MCk8PDIpfDA7YT1jW2s+PjJdfDA7dD1rO3U9YSso
KChnfDApJTUxMnwwKTw8Myl8MDt2PWF9ZWxzZXthPTUxMC1ufDA7bj1tKygoKGF8MCkvLTUxMnww
KTw8Mil8MDtnPWNbbj4+Ml18MDt0PW47dT1nKyg1MTEtKChhfDApJTUxMnwwKTw8Myl8MDt2PWd9
Zz1iKzR8MDtiPWw7bD10O3Q9dTt1PW07bT12O0wxMDIyOndoaWxlKDEpe3Y9YjthPXQ7bj11O2s9
bTt3aGlsZSgxKXtpZigoYXwwKT09KGNbZz4+Ml18MCkpe2JyZWFrIEwxMDIyfW89K2hbYT4+M107
cT0raFt2Pj4zXTtpZihvPHEpe2U9bjtqPXY7dz1hO3A9cTt3aGlsZSgxKXtoW3c+PjNdPXA7aWYo
KGp8MCk9PShjW2Y+PjJdfDApKXticmVha31pZigoanwwKT09KGNbZT4+Ml18MCkpe3g9ZS00fDA7
eT14O3o9KGNbeD4+Ml18MCkrNDA5NnwwfWVsc2V7eT1lO3o9an14PXotOHwwO3E9K2hbeD4+M107
aWYobzxxKXtlPXk7dz1qO2o9eDtwPXF9ZWxzZXticmVha319aFtqPj4zXT1vO0E9Y1tsPj4yXXww
fWVsc2V7QT1rfXc9YSs4fDA7aWYoKHctQXwwKT09NDA5Nil7YnJlYWt9ZWxzZXt2PWE7YT13O249
bDtrPUF9fWs9bCs0fDA7bj1jW2s+PjJdfDA7Yj1hO3U9bDtsPWs7dD1uO209bn1pPWQ7cmV0dXJu
fWZ1bmN0aW9uIGNOKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAuMCxFPTAuMCxGPTAsRz0wLEg9MC4wLEk9MC4wLEo9MC4w
LEs9MCxMPTAsTT0wLE49MC4wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9
MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTA7ZD1pO2k9aSs4
fDA7ZT1hO2E9aTtpPWkrOHwwO2NbYT4+Ml09Y1tlPj4yXTtjW2ErND4+Ml09Y1tlKzQ+PjJdO2U9
YjtiPWk7aT1pKzh8MDtjW2I+PjJdPWNbZT4+Ml07Y1tiKzQ+PjJdPWNbZSs0Pj4yXTtlPWR8MDtm
PWU7Zz1pO2k9aSs4fDA7aj1nO2s9aTtpPWkrOHwwO2w9azttPWk7aT1pKzh8MDtuPW07bz1pO2k9
aSs4fDA7cD1vO3E9Yis0fDA7cj1jW3E+PjJdfDA7cz1hKzR8MDt0PWNbcz4+Ml18MDtpZigocnww
KT09KHR8MCkpe3U9MTtpPWQ7cmV0dXJuIHV8MH12PWJ8MDt3PWNbdj4+Ml18MDt4PWNbYT4+Ml18
MDt5PWNbdz4+Ml18MDt6PXQtKGNbeD4+Ml18MCk+PjM7c3dpdGNoKChyLXk+PjMpKyh3LXg8PDcp
LXp8MCl7Y2FzZSAyOntpZigocnwwKT09KHl8MCkpe0E9dy00fDA7Y1t2Pj4yXT1BO0I9KGNbQT4+
Ml18MCkrNDA5NnwwO2NbcT4+Ml09QjtDPUJ9ZWxzZXtDPXJ9Qj1DLTh8MDtjW3E+PjJdPUI7RD0r
aFtCPj4zXTtFPStoW3Q+PjNdO2lmKEQ+PUUpe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW3Q+PjNdPUQ7
aFtCPj4zXT1FO3U9MTtpPWQ7cmV0dXJuIHV8MH07Y2FzZSAwOmNhc2UgMTp7dT0xO2k9ZDtyZXR1
cm4gdXwwfTtjYXNlIDM6e0I9YTt0PWNbQj4+Ml18MDtDPWNbQis0Pj4yXXwwO0I9QztBPUMtKGNb
dD4+Ml18MCk+PjM7Qz1BKzF8MDtpZigoQ3wwKT4wKXtGPShjW3QrKCgoQ3wwKS81MTJ8MCk8PDIp
Pj4yXXwwKSsoKChDfDApJTUxMnwwKTw8Myl8MH1lbHNle0M9NTEwLUF8MDtGPShjW3QrKCgoQ3ww
KS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKEN8MCklNTEyfDApPDwzKXwwfWlmKChyfDApPT0o
eXwwKSl7Qz13LTR8MDtjW3Y+PjJdPUM7dD0oY1tDPj4yXXwwKSs0MDk2fDA7Y1txPj4yXT10O0c9
dH1lbHNle0c9cn1jW3E+PjJdPUctODtHPWNbYis0Pj4yXXwwO0U9K2hbRj4+M107RD0raFtCPj4z
XTtIPStoW0c+PjNdO3Q9SDxFO2lmKEU+PUQpe2lmKCF0KXt1PTE7aT1kO3JldHVybiB1fDB9aFtG
Pj4zXT1IO2hbRz4+M109RTtJPStoW0Y+PjNdO0o9K2hbQj4+M107aWYoST49Sil7dT0xO2k9ZDty
ZXR1cm4gdXwwfWhbQj4+M109STtoW0Y+PjNdPUo7dT0xO2k9ZDtyZXR1cm4gdXwwfWlmKHQpe2hb
Qj4+M109SDtoW0c+PjNdPUQ7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbQj4+M109RTtoW0Y+PjNdPUQ7
RT0raFtHPj4zXTtpZihFPj1EKXt1PTE7aT1kO3JldHVybiB1fDB9aFtGPj4zXT1FO2hbRz4+M109
RDt1PTE7aT1kO3JldHVybiB1fDB9O2Nhc2UgNDp7Rz1hO0Y9Y1tHPj4yXXwwO0I9Y1tHKzQ+PjJd
fDA7Rz1CO3Q9Qi0oY1tGPj4yXXwwKT4+MztCPXQrMXwwO2lmKChCfDApPjApe0s9KGNbRisoKChC
fDApLzUxMnwwKTw8Mik+PjJdfDApKygoKEJ8MCklNTEyfDApPDwzKXwwfWVsc2V7Qj01MTAtdHww
O0s9KGNbRisoKChCfDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgoQnwwKSU1MTJ8MCk8PDMp
fDB9Qj10KzJ8MDtpZigoQnwwKT4wKXtMPShjW0YrKCgoQnwwKS81MTJ8MCk8PDIpPj4yXXwwKSso
KChCfDApJTUxMnwwKTw8Myl8MH1lbHNle0I9NTA5LXR8MDtMPShjW0YrKCgoQnwwKS8tNTEyfDAp
PDwyKT4+Ml18MCkrKDUxMS0oKEJ8MCklNTEyfDApPDwzKXwwfWlmKChyfDApPT0oeXwwKSl7Qj13
LTR8MDtjW3Y+PjJdPUI7Rj0oY1tCPj4yXXwwKSs0MDk2fDA7Y1txPj4yXT1GO009Rn1lbHNle009
cn1jW3E+PjJdPU0tODtNPWNbYis0Pj4yXXwwO0Q9K2hbSz4+M107RT0raFtHPj4zXTtIPStoW0w+
PjNdO0Y9SDxEO2Rve2lmKEQ8RSl7aWYoRil7aFtHPj4zXT1IO2hbTD4+M109RTtOPUU7YnJlYWt9
aFtHPj4zXT1EO2hbSz4+M109RTtKPStoW0w+PjNdO2lmKEo+PUUpe049SjticmVha31oW0s+PjNd
PUo7aFtMPj4zXT1FO049RX1lbHNle2lmKCFGKXtOPUg7YnJlYWt9aFtLPj4zXT1IO2hbTD4+M109
RDtKPStoW0s+PjNdO0k9K2hbRz4+M107aWYoSj49SSl7Tj1EO2JyZWFrfWhbRz4+M109SjtoW0s+
PjNdPUk7Tj0raFtMPj4zXX19d2hpbGUoMCk7RD0raFtNPj4zXTtpZihEPj1OKXt1PTE7aT1kO3Jl
dHVybiB1fDB9aFtMPj4zXT1EO2hbTT4+M109TjtOPStoW0w+PjNdO0Q9K2hbSz4+M107aWYoTj49
RCl7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbSz4+M109TjtoW0w+PjNdPUQ7RD0raFtLPj4zXTtOPSto
W0c+PjNdO2lmKEQ+PU4pe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0c+PjNdPUQ7aFtLPj4zXT1OO3U9
MTtpPWQ7cmV0dXJuIHV8MH07Y2FzZSA1OntLPWE7Rz1jW0s+PjJdfDA7TD1jW0srND4+Ml18MDtj
W2U+PjJdPUc7Y1tlKzQ+PjJdPUw7Y1tnPj4yXT1HO2NbZys0Pj4yXT1MO2U9TDtLPWc7Zz1HO009
ZS0oY1tnPj4yXXwwKT4+MztGPU0rMXwwO2lmKChGfDApPjApe0I9ZysoKChGfDApLzUxMnwwKTw8
Mil8MDtjW0s+PjJdPUI7Tz0oY1tCPj4yXXwwKSsoKChGfDApJTUxMnwwKTw8Myl8MH1lbHNle0Y9
NTEwLU18MDtNPWcrKCgoRnwwKS8tNTEyfDApPDwyKXwwO2NbSz4+Ml09TTtPPShjW00+PjJdfDAp
Kyg1MTEtKChGfDApJTUxMnwwKTw8Myl8MH1jW2orND4+Ml09TztjW2s+PjJdPUc7Y1trKzQ+PjJd
PUw7Tz1rO2s9ZS0oY1tnPj4yXXwwKT4+MztGPWsrMnwwO2lmKChGfDApPjApe009ZysoKChGfDAp
LzUxMnwwKTw8Mil8MDtjW08+PjJdPU07UD0oY1tNPj4yXXwwKSsoKChGfDApJTUxMnwwKTw8Myl8
MH1lbHNle0Y9NTA5LWt8MDtrPWcrKCgoRnwwKS8tNTEyfDApPDwyKXwwO2NbTz4+Ml09aztQPShj
W2s+PjJdfDApKyg1MTEtKChGfDApJTUxMnwwKTw8Myl8MH1jW2wrND4+Ml09UDtjW20+PjJdPUc7
Y1ttKzQ+PjJdPUw7TD1tO209ZS0oY1tnPj4yXXwwKT4+MztlPW0rM3wwO2lmKChlfDApPjApe0c9
ZysoKChlfDApLzUxMnwwKTw8Mil8MDtjW0w+PjJdPUc7UT0oY1tHPj4yXXwwKSsoKChlfDApJTUx
MnwwKTw8Myl8MH1lbHNle2U9NTA4LW18MDttPWcrKCgoZXwwKS8tNTEyfDApPDwyKXwwO2NbTD4+
Ml09bTtRPShjW20+PjJdfDApKyg1MTEtKChlfDApJTUxMnwwKTw8Myl8MH1jW24rND4+Ml09UTtp
ZigocnwwKT09KHl8MCkpe3k9dy00fDA7Y1t2Pj4yXT15O3Y9KGNbeT4+Ml18MCkrNDA5NnwwO2Nb
cT4+Ml09djtSPXZ9ZWxzZXtSPXJ9Y1txPj4yXT1SLTg7Uj1iO2I9Y1tSKzQ+PjJdfDA7Y1tvPj4y
XT1jW1I+PjJdO2Nbbys0Pj4yXT1iO2NMKGYsaixsLG4scCwwKXwwO3U9MTtpPWQ7cmV0dXJuIHV8
MH07ZGVmYXVsdDp7cD16KzJ8MDtpZigocHwwKT4wKXtuPXgrKCgocHwwKS81MTJ8MCk8PDIpfDA7
Uz1uO1Q9KGNbbj4+Ml18MCkrKCgocHwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtwPTUwOS16fDA7ej14
KygoKHB8MCkvLTUxMnwwKTw8Mil8MDtTPXo7VD0oY1t6Pj4yXXwwKSsoNTExLSgocHwwKSU1MTJ8
MCk8PDMpfDB9cD1hO2E9Y1twPj4yXXwwO3o9Y1twKzQ+PjJdfDA7cD16O3g9ei0oY1thPj4yXXww
KT4+Mzt6PXgrMXwwO2lmKCh6fDApPjApe1U9KGNbYSsoKCh6fDApLzUxMnwwKTw8Mik+PjJdfDAp
KygoKHp8MCklNTEyfDApPDwzKXwwfWVsc2V7ej01MTAteHwwO1U9KGNbYSsoKCh6fDApLy01MTJ8
MCk8PDIpPj4yXXwwKSsoNTExLSgoenwwKSU1MTJ8MCk8PDMpfDB9Tj0raFtVPj4zXTtEPStoW3A+
PjNdO0g9K2hbVD4+M107ej1IPE47ZG97aWYoTjxEKXtpZih6KXtoW3A+PjNdPUg7aFtUPj4zXT1E
O2JyZWFrfWhbcD4+M109TjtoW1U+PjNdPUQ7RT0raFtUPj4zXTtpZihFPj1EKXticmVha31oW1U+
PjNdPUU7aFtUPj4zXT1EfWVsc2V7aWYoIXope2JyZWFrfWhbVT4+M109SDtoW1Q+PjNdPU47RT0r
aFtVPj4zXTtJPStoW3A+PjNdO2lmKEU+PUkpe2JyZWFrfWhbcD4+M109RTtoW1U+PjNdPUl9fXdo
aWxlKDApO1U9VC0oY1tTPj4yXXwwKT4+MztwPVUrMXwwO2lmKChwfDApPjApe3o9UysoKChwfDAp
LzUxMnwwKTw8Mil8MDthPWNbej4+Ml18MDtWPTA7Vz1hKygoKHB8MCklNTEyfDApPDwzKXwwO1g9
ejtZPVM7Wj1UO189YX1lbHNle2E9NTEwLVV8MDtVPVMrKCgoYXwwKS8tNTEyfDApPDwyKXwwO3o9
Y1tVPj4yXXwwO1Y9MDtXPXorKDUxMS0oKGF8MCklNTEyfDApPDwzKXwwO1g9VTtZPVM7Wj1UO189
en1MMTA2NTp3aGlsZSgxKXt6PVY7JD1XO1Q9WTtTPVo7VT1fO3doaWxlKDEpe2lmKCgkfDApPT0o
Y1txPj4yXXwwKSl7dT0xO2FhPTkwNjticmVhayBMMTA2NX1OPStoWyQ+PjNdO0g9K2hbUz4+M107
aWYoTjxIKXthPVQ7cD1TO3g9JDtEPUg7d2hpbGUoMSl7aFt4Pj4zXT1EO2lmKChwfDApPT0oY1tz
Pj4yXXwwKSl7YnJlYWt9aWYoKHB8MCk9PShjW2E+PjJdfDApKXtuPWEtNHwwO2FiPW47YWM9KGNb
bj4+Ml18MCkrNDA5NnwwfWVsc2V7YWI9YTthYz1wfW49YWMtOHwwO0g9K2hbbj4+M107aWYoTjxI
KXthPWFiO3g9cDtwPW47RD1IfWVsc2V7YnJlYWt9fWhbcD4+M109Tjt4PXorMXwwO2lmKCh4fDAp
PT04KXticmVhayBMMTA2NX1hZD14O2FlPWNbWD4+Ml18MH1lbHNle2FkPXo7YWU9VX14PSQrOHww
O2lmKCh4LWFlfDApPT00MDk2KXticmVha31lbHNle3o9YWQ7Uz0kOyQ9eDtUPVg7VT1hZX19VT1Y
KzR8MDtUPWNbVT4+Ml18MDtWPWFkO1c9VDtZPVg7WD1VO1o9JDtfPVR9aWYoKGFhfDApPT05MDYp
e2k9ZDtyZXR1cm4gdXwwfWFhPSQrOHwwO2lmKChhYS0oY1tYPj4yXXwwKXwwKT09NDA5Nil7YWY9
Y1tYKzQ+PjJdfDB9ZWxzZXthZj1hYX11PShhZnwwKT09KGNbcT4+Ml18MCk7aT1kO3JldHVybiB1
fDB9fXJldHVybiAwfWZ1bmN0aW9uIGNPKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0w
LGY9MCxnPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MDtlPWErOHwwO2Y9Y1tlPj4yXXwwO2c9YSs0fDA7aT1jW2c+PjJd
fDA7aWYoKGZ8MCk9PShpfDApKXtqPTB9ZWxzZXtqPShmLWk8PDcpLTF8MH1rPWErMTZ8MDtsPWNb
az4+Ml18MDttPWErMjB8MDtuPWNbbT4+Ml18MDtvPWotbC1ufDA7aWYobz4+PjA8Yj4+PjApe2NR
KGEsYi1vfDApO3A9Y1ttPj4yXXwwO3E9Y1trPj4yXXwwO3I9Y1tnPj4yXXwwO3M9Y1tlPj4yXXww
fWVsc2V7cD1uO3E9bDtyPWk7cz1mfWY9cStwfDA7cD1yKyhmPj4+OTw8Mil8MDtpZigoc3wwKT09
KHJ8MCkpe3Q9MH1lbHNle3Q9KGNbcD4+Ml18MCkrKChmJjUxMSk8PDMpfDB9aWYoKGJ8MCk9PTAp
e3JldHVybn1lbHNle3U9dDt2PXA7dz1ifXdoaWxlKDEpe2lmKCh1fDApIT0wKXtoW3U+PjNdPSto
W2Q+PjNdfWI9dy0xfDA7cD11Kzh8MDtpZigocC0oY1t2Pj4yXXwwKXwwKT09NDA5Nil7dD12KzR8
MDt4PXQ7eT1jW3Q+PjJdfDB9ZWxzZXt4PXY7eT1wfWNbbT4+Ml09KGNbbT4+Ml18MCkrMTtpZigo
YnwwKT09MCl7YnJlYWt9ZWxzZXt1PXk7dj14O3c9Yn19cmV0dXJufWZ1bmN0aW9uIGNQKGEsYil7
YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTA7ZD1hKzR8MDtlPWNbZD4+Ml18MDtmPWF8MDtkb3tp
ZigoZXwwKT09KGNbZj4+Ml18MCkpe2c9YSs4fDA7aD1jW2c+PjJdfDA7aT1hKzEyfDA7aj1jW2k+
PjJdfDA7az1qO2lmKGg+Pj4wPGo+Pj4wKXtqPWg7bD0oKGstaj4+MikrMXwwKS8yfDA7bT1qLWV8
MDtqPWgrKGwtKG0+PjIpPDwyKXwwO2tfKGp8MCxlfDAsbXwwKTtjW2Q+PjJdPWo7Y1tnPj4yXT0o
Y1tnPj4yXXwwKSsobDw8Mik7bj1qO2JyZWFrfWo9ay1lPj4xO2s9KGp8MCk9PTA/MTpqO2o9a08o
azw8Mil8MDtsPWorKChrKzN8MCk+Pj4yPDwyKXwwO209aisoazw8Mil8MDtpZigoZXwwKT09KGh8
MCkpe289bDtwPWV9ZWxzZXtrPWU7cT1sO2Rve2lmKChxfDApPT0wKXtyPTB9ZWxzZXtjW3E+PjJd
PWNbaz4+Ml07cj1xfXE9cis0fDA7az1rKzR8MDt9d2hpbGUoKGt8MCkhPShofDApKTtvPXE7cD1j
W2Y+PjJdfDB9Y1tmPj4yXT1qO2NbZD4+Ml09bDtjW2c+PjJdPW87Y1tpPj4yXT1tO2lmKChwfDAp
PT0wKXtuPWw7YnJlYWt9a1MocCk7bj1jW2Q+PjJdfDB9ZWxzZXtuPWV9fXdoaWxlKDApO2U9bi00
fDA7aWYoKGV8MCk9PTApe3M9bjt0PXMtNHwwO2NbZD4+Ml09dDtyZXR1cm59Y1tlPj4yXT1jW2I+
PjJdO3M9Y1tkPj4yXXwwO3Q9cy00fDA7Y1tkPj4yXT10O3JldHVybn1mdW5jdGlvbiBjUShhLGIp
e2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9
MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxh
Yz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MDtkPWk7aT1pKzMyfDA7
ZT1kfDA7Zj1kKzh8MDtnPWF8MDtoPWErOHwwO2o9Y1toPj4yXXwwO2s9YSs0fDA7bD1jW2s+PjJd
fDA7bT0oKGp8MCk9PShsfDApKStifDA7Yj0oKG0mNTExfDApIT0wKSsobT4+PjkpfDA7bT1hKzE2
fDA7bj1jW20+PjJdfDA7bz1uPj4+OTtwPWI+Pj4wPG8+Pj4wP2I6bztxPWItcHwwO2lmKChifDAp
PT0ocHwwKSl7Y1ttPj4yXT1uLShiPDw5KTtpZigoYnwwKT09MCl7aT1kO3JldHVybn1uPWErMTJ8
MDtyPWF8MDtzPWI7dD1qO3U9bDt3aGlsZSgxKXt2PWNbdT4+Ml18MDt3PXUrNHwwO2Nbaz4+Ml09
dztkb3tpZigodHwwKT09KGNbbj4+Ml18MCkpe3g9Y1tyPj4yXXwwO2lmKHc+Pj4wPng+Pj4wKXt5
PXc7ej0oKHkteD4+MikrMXwwKS8tMnwwO0E9eisxfDA7Qj10LXl8MDtrXyh1KyhBPDwyKXwwLHd8
MCxCfDApO3k9dSsoQSsoQj4+Mik8PDIpfDA7Y1toPj4yXT15O2Nbaz4+Ml09KGNbaz4+Ml18MCkr
KHo8PDIpO0M9eTticmVha315PXQteD4+MTt6PSh5fDApPT0wPzE6eTt5PWtPKHo8PDIpfDA7Qj15
Kyh6Pj4+Mjw8Mil8MDtBPXkrKHo8PDIpfDA7aWYoKHd8MCk9PSh0fDApKXtEPUI7RT14fWVsc2V7
eD13O3o9Qjtkb3tpZigoenwwKT09MCl7Rj0wfWVsc2V7Y1t6Pj4yXT1jW3g+PjJdO0Y9en16PUYr
NHwwO3g9eCs0fDA7fXdoaWxlKCh4fDApIT0odHwwKSk7RD16O0U9Y1tyPj4yXXwwfWNbcj4+Ml09
eTtjW2s+PjJdPUI7Y1toPj4yXT1EO2Nbbj4+Ml09QTtpZigoRXwwKT09MCl7Qz1EO2JyZWFrfWtT
KEUpO0M9Y1toPj4yXXwwfWVsc2V7Qz10fX13aGlsZSgwKTtpZigoQ3wwKT09MCl7Rz0wfWVsc2V7
Y1tDPj4yXT12O0c9Y1toPj4yXXwwfXc9Rys0fDA7Y1toPj4yXT13O3g9cy0xfDA7aWYoKHh8MCk9
PTApe2JyZWFrfXM9eDt0PXc7dT1jW2s+PjJdfDB9aT1kO3JldHVybn11PWErMTJ8MDt0PXV8MDtz
PWNbdD4+Ml18MDtHPWF8MDthPXMtKGNbRz4+Ml18MCl8MDtDPWotbD4+MjtpZihxPj4+MDw9KChh
Pj4yKS1DfDApPj4+MCl7bD1xO0U9ajtqPXM7d2hpbGUoMSl7aWYoKGp8MCk9PShFfDApKXtIPTk3
MTticmVha31zPWtPKDQwOTYpfDA7aWYoKEV8MCk9PTApe0k9MH1lbHNle2NbRT4+Ml09cztJPWNb
aD4+Ml18MH1zPUkrNHwwO2NbaD4+Ml09cztEPWwtMXwwO2lmKChEfDApPT0wKXtKPXM7SD05NzI7
YnJlYWt9bD1EO0U9cztqPWNbdD4+Ml18MH1kb3tpZigoSHwwKT09OTcxKXtpZigobHwwKT09MCl7
Sj1qO0g9OTcyO2JyZWFrfUU9fm87ST1+YjtzPUU+Pj4wPkk+Pj4wP0U6STtJPWw7ZG97Y1tlPj4y
XT1rTyg0MDk2KXwwO2NQKGcsZSk7ST1JLTF8MDtLPWNbaD4+Ml18MDtMPShjW20+PjJdfDApKzUx
Mi0oKEstKGNbaz4+Ml18MCl8MCk9PTQpfDA7Y1ttPj4yXT1MO313aGlsZSgoSXwwKSE9MCk7TT1s
LTEtc3wwO049SztPPUx9fXdoaWxlKDApO2lmKChIfDApPT05NzIpe009cDtOPUo7Tz1jW20+PjJd
fDB9Y1ttPj4yXT1PLShNPDw5KTtpZigoTXwwKT09MCl7aT1kO3JldHVybn1lbHNle1A9TTtRPU59
ZG97Tj1jW2s+PjJdfDA7TT1jW04+PjJdfDA7Tz1OKzR8MDtjW2s+PjJdPU87ZG97aWYoKFF8MCk9
PShjW3Q+PjJdfDApKXtKPWNbRz4+Ml18MDtpZihPPj4+MD5KPj4+MCl7SD1PO0w9KChILUo+PjIp
KzF8MCkvLTJ8MDtLPUwrMXwwO2w9US1IfDA7a18oTisoSzw8Mil8MCxPfDAsbHwwKTtIPU4rKEsr
KGw+PjIpPDwyKXwwO2NbaD4+Ml09SDtjW2s+PjJdPShjW2s+PjJdfDApKyhMPDwyKTtSPUg7YnJl
YWt9SD1RLUo+PjE7TD0oSHwwKT09MD8xOkg7SD1rTyhMPDwyKXwwO2w9SCsoTD4+PjI8PDIpfDA7
Sz1IKyhMPDwyKXwwO2lmKChPfDApPT0oUXwwKSl7Uz1sO1Q9Sn1lbHNle0o9TztMPWw7ZG97aWYo
KEx8MCk9PTApe1U9MH1lbHNle2NbTD4+Ml09Y1tKPj4yXTtVPUx9TD1VKzR8MDtKPUorNHwwO313
aGlsZSgoSnwwKSE9KFF8MCkpO1M9TDtUPWNbRz4+Ml18MH1jW0c+PjJdPUg7Y1trPj4yXT1sO2Nb
aD4+Ml09UztjW3Q+PjJdPUs7aWYoKFR8MCk9PTApe1I9UzticmVha31rUyhUKTtSPWNbaD4+Ml18
MH1lbHNle1I9UX19d2hpbGUoMCk7aWYoKFJ8MCk9PTApe1Y9MH1lbHNle2NbUj4+Ml09TTtWPWNb
aD4+Ml18MH1RPVYrNHwwO2NbaD4+Ml09UTtQPVAtMXwwO313aGlsZSgoUHwwKSE9MCk7aT1kO3Jl
dHVybn1QPXA8PDk7UT1hPj4xO2E9cStDfDA7Vj1RPj4+MDxhPj4+MD9hOlE7UT1mKzEyfDA7Y1tR
Pj4yXT0wO2NbZisxNj4+Ml09dTtpZigoVnwwKT09MCl7Vz0wfWVsc2V7Vz1rTyhWPDwyKXwwfXU9
ZnwwO2NbdT4+Ml09VzthPVcrKEMtcDw8Mil8MDtDPWYrOHwwO2NbQz4+Ml09YTtSPWYrNHwwO2Nb
Uj4+Ml09YTtUPVcrKFY8PDIpfDA7Y1tRPj4yXT1UO1Y9cTtxPVc7Vz1hO1M9VDtUPWE7d2hpbGUo
MSl7YT1rTyg0MDk2KXwwO2Rve2lmKChXfDApPT0oU3wwKSl7aWYoVD4+PjA+cT4+PjApe1U9VDtP
PSgoVS1xPj4yKSsxfDApLy0yfDA7Tj1TLVV8MDtrXyhUKyhPPDwyKXwwLFR8MCxOfDApO1U9VCso
TysoTj4+Mik8PDIpfDA7Y1tDPj4yXT1VO049KGNbUj4+Ml18MCkrKE88PDIpfDA7Y1tSPj4yXT1O
O1g9VTtZPVM7Wj1xO189TjticmVha31OPVMtcT4+MTtVPShOfDApPT0wPzE6TjtOPWtPKFU8PDIp
fDA7Tz1OKyhVPj4+Mjw8Mil8MDtzPU4rKFU8PDIpfDA7aWYoKFR8MCk9PShTfDApKXskPU87YWE9
cX1lbHNle1U9VDtKPU87ZG97aWYoKEp8MCk9PTApe2FiPTB9ZWxzZXtjW0o+PjJdPWNbVT4+Ml07
YWI9Sn1KPWFiKzR8MDtVPVUrNHwwO313aGlsZSgoVXwwKSE9KFN8MCkpOyQ9SjthYT1jW3U+PjJd
fDB9Y1t1Pj4yXT1OO2NbUj4+Ml09TztjW0M+PjJdPSQ7Y1tRPj4yXT1zO2lmKChhYXwwKT09MCl7
WD0kO1k9cztaPU47Xz1PO2JyZWFrfWtTKGFhKTtYPSQ7WT1zO1o9TjtfPU99ZWxzZXtYPVc7WT1T
O1o9cTtfPVR9fXdoaWxlKDApO2lmKChYfDApPT0wKXthYz0wfWVsc2V7Y1tYPj4yXT1hO2FjPWNb
Qz4+Ml18MH1hZD1hYys0fDA7Y1tDPj4yXT1hZDtNPVYtMXwwO2lmKChNfDApPT0wKXticmVha31l
bHNle1Y9TTtxPVo7Vz1hZDtTPVk7VD1ffX1pZigocHwwKSE9MCl7Xz1wO3A9Y1trPj4yXXwwO1Q9
YWQ7YWQ9WTtZPVo7d2hpbGUoMSl7ZG97aWYoKFR8MCk9PShhZHwwKSl7Wj1jW1I+PjJdfDA7aWYo
Wj4+PjA+WT4+PjApe1M9WjtXPSgoUy1ZPj4yKSsxfDApLy0yfDA7cT1aKyhXPDwyKXwwO1Y9YWQt
U3wwO2tfKHF8MCxafDAsVnwwKTtTPVorKFcrKFY+PjIpPDwyKXwwO2NbQz4+Ml09UztjW1I+PjJd
PXE7YWU9UzthZj1hZDthZz1ZO2JyZWFrfVM9YWQtWT4+MTtxPShTfDApPT0wPzE6UztTPWtPKHE8
PDIpfDA7Vj1TKyhxPj4+Mjw8Mil8MDtXPVMrKHE8PDIpfDA7aWYoKFp8MCk9PShhZHwwKSl7YWg9
VjthaT1ZfWVsc2V7cT1aO1o9Vjtkb3tpZigoWnwwKT09MCl7YWo9MH1lbHNle2NbWj4+Ml09Y1tx
Pj4yXTthaj1afVo9YWorNHwwO3E9cSs0fDA7fXdoaWxlKChxfDApIT0oYWR8MCkpO2FoPVo7YWk9
Y1t1Pj4yXXwwfWNbdT4+Ml09UztjW1I+PjJdPVY7Y1tDPj4yXT1haDtjW1E+PjJdPVc7aWYoKGFp
fDApPT0wKXthZT1haDthZj1XO2FnPVM7YnJlYWt9a1MoYWkpO2FlPWFoO2FmPVc7YWc9U31lbHNl
e2FlPVQ7YWY9YWQ7YWc9WX19d2hpbGUoMCk7aWYoKGFlfDApPT0wKXthaz0wfWVsc2V7Y1thZT4+
Ml09Y1twPj4yXTthaz1jW0M+PjJdfDB9YT1hays0fDA7Y1tDPj4yXT1hO3E9KGNbaz4+Ml18MCkr
NHwwO2Nbaz4+Ml09cTtPPV8tMXwwO2lmKChPfDApPT0wKXticmVha31lbHNle189TztwPXE7VD1h
O2FkPWFmO1k9YWd9fX1hZz1jW2g+PjJdfDA7d2hpbGUoMSl7aWYoKGFnfDApPT0oY1trPj4yXXww
KSl7YnJlYWt9WT1hZy00fDA7Y1MoZixZKTthZz1ZfWY9Y1tHPj4yXXwwO2NbRz4+Ml09Y1t1Pj4y
XTtjW3U+PjJdPWY7Y1trPj4yXT1jW1I+PjJdO2NbUj4+Ml09YWc7Uj1jW2g+PjJdfDA7Y1toPj4y
XT1jW0M+PjJdO2NbQz4+Ml09UjtoPWNbdD4+Ml18MDtjW3Q+PjJdPWNbUT4+Ml07Y1tRPj4yXT1o
O2NbbT4+Ml09KGNbbT4+Ml18MCktUDtpZigoYWd8MCkhPShSfDApKXtjW0M+PjJdPVIrKH4oKFIt
NCsoLWFnfDApfDApPj4+Mik8PDIpfWlmKChmfDApPT0wKXtpPWQ7cmV0dXJufWtTKGYpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gY1IoYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO3ZhciBnPTAuMCxpPTAuMCxqPTAuMCxrPTAsbD0wLjAsbT0wLjAsbj0wLjAsbz0w
LHA9MDtnPStoW2I+PjNdO2k9K2hbYT4+M107aj0raFtjPj4zXTtmPWo8Zztkb3tpZihnPGkpe2lm
KGYpe2hbYT4+M109ajtoW2M+PjNdPWk7az0xO2w9aTticmVha31oW2E+PjNdPWc7aFtiPj4zXT1p
O209K2hbYz4+M107aWYobT49aSl7az0xO2w9bTticmVha31oW2I+PjNdPW07aFtjPj4zXT1pO2s9
MjtsPWl9ZWxzZXtpZighZil7az0wO2w9ajticmVha31oW2I+PjNdPWo7aFtjPj4zXT1nO209K2hb
Yj4+M107bj0raFthPj4zXTtpZihtPj1uKXtrPTE7bD1nO2JyZWFrfWhbYT4+M109bTtoW2I+PjNd
PW47az0yO2w9K2hbYz4+M119fXdoaWxlKDApO2c9K2hbZD4+M107ZG97aWYoZzxsKXtoW2M+PjNd
PWc7aFtkPj4zXT1sO2o9K2hbYz4+M107aT0raFtiPj4zXTtpZihqPj1pKXtvPWsrMXwwO2JyZWFr
fWhbYj4+M109ajtoW2M+PjNdPWk7aT0raFtiPj4zXTtqPStoW2E+PjNdO2lmKGk8ail7aFthPj4z
XT1pO2hbYj4+M109ajtvPWsrM3wwO2JyZWFrfWVsc2V7bz1rKzJ8MDticmVha319ZWxzZXtvPWt9
fXdoaWxlKDApO2w9K2hbZT4+M107Zz0raFtkPj4zXTtpZihsPj1nKXtwPW87cmV0dXJuIHB8MH1o
W2Q+PjNdPWw7aFtlPj4zXT1nO2c9K2hbZD4+M107bD0raFtjPj4zXTtpZihnPj1sKXtwPW8rMXww
O3JldHVybiBwfDB9aFtjPj4zXT1nO2hbZD4+M109bDtsPStoW2M+PjNdO2c9K2hbYj4+M107aWYo
bD49Zyl7cD1vKzJ8MDtyZXR1cm4gcHwwfWhbYj4+M109bDtoW2M+PjNdPWc7Zz0raFtiPj4zXTts
PStoW2E+PjNdO2lmKGc+PWwpe3A9byszfDA7cmV0dXJuIHB8MH1oW2E+PjNdPWc7aFtiPj4zXT1s
O3A9bys0fDA7cmV0dXJuIHB8MH1mdW5jdGlvbiBjUyhhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAs
ZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wO2Q9YSs0fDA7ZT1jW2Q+PjJdfDA7Zj1hfDA7ZG97aWYoKGV8MCk9PShjW2Y+PjJdfDAp
KXtnPWErOHwwO2g9Y1tnPj4yXXwwO2k9YSsxMnwwO2o9Y1tpPj4yXXwwO2s9ajtpZihoPj4+MDxq
Pj4+MCl7aj1oO2w9KChrLWo+PjIpKzF8MCkvMnwwO209ai1lfDA7aj1oKyhsLShtPj4yKTw8Mil8
MDtrXyhqfDAsZXwwLG18MCk7Y1tkPj4yXT1qO2NbZz4+Ml09KGNbZz4+Ml18MCkrKGw8PDIpO249
ajticmVha31qPWstZT4+MTtrPShqfDApPT0wPzE6ajtqPWtPKGs8PDIpfDA7bD1qKygoayszfDAp
Pj4+Mjw8Mil8MDttPWorKGs8PDIpfDA7aWYoKGV8MCk9PShofDApKXtvPWw7cD1lfWVsc2V7az1l
O3E9bDtkb3tpZigocXwwKT09MCl7cj0wfWVsc2V7Y1txPj4yXT1jW2s+PjJdO3I9cX1xPXIrNHww
O2s9ays0fDA7fXdoaWxlKChrfDApIT0oaHwwKSk7bz1xO3A9Y1tmPj4yXXwwfWNbZj4+Ml09ajtj
W2Q+PjJdPWw7Y1tnPj4yXT1vO2NbaT4+Ml09bTtpZigocHwwKT09MCl7bj1sO2JyZWFrfWtTKHAp
O249Y1tkPj4yXXwwfWVsc2V7bj1lfX13aGlsZSgwKTtlPW4tNHwwO2lmKChlfDApPT0wKXtzPW47
dD1zLTR8MDtjW2Q+PjJdPXQ7cmV0dXJufWNbZT4+Ml09Y1tiPj4yXTtzPWNbZD4+Ml18MDt0PXMt
NHwwO2NbZD4+Ml09dDtyZXR1cm59ZnVuY3Rpb24gY1QoKXtjWzI0NDZdPTA7Y1syNDQ3XT0wO2Nb
MjQ0OF09MDthJCg3Miw5Nzg0LHV8MCl8MDtyZXR1cm59ZnVuY3Rpb24gY1UoYSxiLGMpe2E9YXww
O2I9YnwwO2M9Y3wwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MC4wLHE9MC4wLHI9MC4wLHM9MC4wLHQ9MC4wLHU9MCx2PTAsdz0wLHg9MC4wLHk9MCx6
PTAuMCxBPTAsQj0wLEM9MCxEPTAuMCxFPTAsRj0wLEc9MC4wLEg9MCxJPTAsSj0wLEs9MC4wLEw9
MCxNPTAsTj0wLjAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAuMCxVPTAsVj0wLFc9MC4wLFg9MCxZ
PTAuMDtkPWE7YT1iO0wxMzk3OndoaWxlKDEpe2I9YTtlPWEtOHwwO2Y9ZDtMMTM5OTp3aGlsZSgx
KXtnPWY7aT1iLWd8MDtqPWk+PjM7c3dpdGNoKGp8MCl7Y2FzZSAzOntrPTExMDI7YnJlYWsgTDEz
OTc7YnJlYWt9O2Nhc2UgNTp7az0xMTIyO2JyZWFrIEwxMzk3O2JyZWFrfTtjYXNlIDI6e2s9MTEw
MDticmVhayBMMTM5NzticmVha307Y2FzZSAwOmNhc2UgMTp7az0xMTg1O2JyZWFrIEwxMzk3O2Jy
ZWFrfTtjYXNlIDQ6e2s9MTExMDticmVhayBMMTM5NzticmVha307ZGVmYXVsdDp7fX1pZigoaXww
KTwyNDgpe2s9MTEyNDticmVhayBMMTM5N31sPShqfDApLzJ8MDttPWYrKGw8PDMpfDA7ZG97aWYo
KGl8MCk+Nzk5Mil7bj0oanwwKS80fDA7bz1jUihmLGYrKG48PDMpfDAsbSxmKyhuK2w8PDMpfDAs
ZSwwKXwwfWVsc2V7cD0raFttPj4zXTtxPStoW2Y+PjNdO3I9K2hbZT4+M107bj1yPHA7aWYocD49
cSl7aWYoIW4pe289MDticmVha31oW20+PjNdPXI7aFtlPj4zXT1wO3M9K2hbbT4+M107dD0raFtm
Pj4zXTtpZihzPj10KXtvPTE7YnJlYWt9aFtmPj4zXT1zO2hbbT4+M109dDtvPTI7YnJlYWt9aWYo
bil7aFtmPj4zXT1yO2hbZT4+M109cTtvPTE7YnJlYWt9aFtmPj4zXT1wO2hbbT4+M109cTtwPSto
W2U+PjNdO2lmKHA+PXEpe289MTticmVha31oW20+PjNdPXA7aFtlPj4zXT1xO289Mn19d2hpbGUo
MCk7cT0raFtmPj4zXTtwPStoW20+PjNdO2Rve2lmKHE8cCl7dT1lO3Y9b31lbHNle2w9ZTt3aGls
ZSgxKXt3PWwtOHwwO2lmKChmfDApPT0od3wwKSl7YnJlYWt9eD0raFt3Pj4zXTtpZih4PHApe2s9
MTE2MjticmVha31lbHNle2w9d319aWYoKGt8MCk9PTExNjIpe2s9MDtoW2Y+PjNdPXg7aFt3Pj4z
XT1xO3U9dzt2PW8rMXwwO2JyZWFrfWw9Zis4fDA7cj0raFtlPj4zXTtpZihxPHIpe3k9bH1lbHNl
e2o9bDt3aGlsZSgxKXtpZigoanwwKT09KGV8MCkpe2s9MTE5NzticmVhayBMMTM5N316PStoW2o+
PjNdO0E9ais4fDA7aWYocTx6KXticmVha31lbHNle2o9QX19aFtqPj4zXT1yO2hbZT4+M109ejt5
PUF9aWYoKHl8MCk9PShlfDApKXtrPTExOTI7YnJlYWsgTDEzOTd9ZWxzZXtCPWU7Qz15fXdoaWxl
KDEpe3Q9K2hbZj4+M107bD1DO3doaWxlKDEpe0Q9K2hbbD4+M107RT1sKzh8MDtpZih0Pj1EKXts
PUV9ZWxzZXtGPUI7YnJlYWt9fWRve0Y9Ri04fDA7Rz0raFtGPj4zXTt9d2hpbGUodDxHKTtpZihs
Pj4+MD49Rj4+PjApe2Y9bDtjb250aW51ZSBMMTM5OX1oW2w+PjNdPUc7aFtGPj4zXT1EO0I9RjtD
PUV9fX13aGlsZSgwKTtqPWYrOHwwO0wxNDM4OmRve2lmKGo+Pj4wPHU+Pj4wKXtpPXU7bj1qO0g9
djtJPW07d2hpbGUoMSl7cT0raFtJPj4zXTtKPW47d2hpbGUoMSl7Sz0raFtKPj4zXTtMPUorOHww
O2lmKEs8cSl7Sj1MfWVsc2V7TT1pO2JyZWFrfX1kb3tNPU0tOHwwO049K2hbTT4+M107fXdoaWxl
KE4+PXEpO2lmKEo+Pj4wPk0+Pj4wKXtPPUo7UD1IO1E9STticmVhayBMMTQzOH1oW0o+PjNdPU47
aFtNPj4zXT1LO2k9TTtuPUw7SD1IKzF8MDtJPShJfDApPT0oSnwwKT9NOkl9fWVsc2V7Tz1qO1A9
djtRPW19fXdoaWxlKDApO2Rve2lmKChPfDApPT0oUXwwKSl7Uj1QfWVsc2V7cT0raFtRPj4zXTtw
PStoW08+PjNdO2lmKHE+PXApe1I9UDticmVha31oW08+PjNdPXE7aFtRPj4zXT1wO1I9UCsxfDB9
fXdoaWxlKDApO2lmKChSfDApPT0wKXtTPWNWKGYsTywwKXwwO209Tys4fDA7aWYoY1YobSxhLDAp
fDApe2s9MTE3NDticmVha31pZihTKXtmPW07Y29udGludWV9fW09TztpZigobS1nfDApPj0oYi1t
fDApKXtrPTExNzg7YnJlYWt9Y1UoZixPLGMpO2Y9Tys4fDB9aWYoKGt8MCk9PTExNzQpe2s9MDtp
ZihTKXtrPTExODY7YnJlYWt9ZWxzZXtkPWY7YT1PO2NvbnRpbnVlfX1lbHNlIGlmKChrfDApPT0x
MTc4KXtrPTA7Y1UoTys4fDAsYSxjKTtkPWY7YT1PO2NvbnRpbnVlfX1pZigoa3wwKT09MTEwMil7
Tz1mKzh8MDtLPStoW08+PjNdO049K2hbZj4+M107RD0raFtlPj4zXTtkPUQ8SztpZihLPj1OKXtp
ZighZCl7cmV0dXJufWhbTz4+M109RDtoW2U+PjNdPUs7Rz0raFtPPj4zXTt6PStoW2Y+PjNdO2lm
KEc+PXope3JldHVybn1oW2Y+PjNdPUc7aFtPPj4zXT16O3JldHVybn1pZihkKXtoW2Y+PjNdPUQ7
aFtlPj4zXT1OO3JldHVybn1oW2Y+PjNdPUs7aFtPPj4zXT1OO0s9K2hbZT4+M107aWYoSz49Til7
cmV0dXJufWhbTz4+M109SztoW2U+PjNdPU47cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMjIpe2NS
KGYsZis4fDAsZisxNnwwLGYrMjR8MCxlLDApfDA7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMjQp
e089ZisxNnwwO2Q9Zis4fDA7Tj0raFtkPj4zXTtLPStoW2Y+PjNdO0Q9K2hbTz4+M107Yz1EPE47
ZG97aWYoTjxLKXtpZihjKXtoW2Y+PjNdPUQ7aFtPPj4zXT1LO1Q9SzticmVha31oW2Y+PjNdPU47
aFtkPj4zXT1LO2lmKEQ+PUspe1Q9RDticmVha31oW2Q+PjNdPUQ7aFtPPj4zXT1LO1Q9S31lbHNl
e2lmKCFjKXtUPUQ7YnJlYWt9aFtkPj4zXT1EO2hbTz4+M109TjtpZihEPj1LKXtUPU47YnJlYWt9
aFtmPj4zXT1EO2hbZD4+M109SztUPU59fXdoaWxlKDApO2Q9ZisyNHwwO2lmKChkfDApPT0oYXww
KSl7cmV0dXJufWVsc2V7VT1PO1Y9ZDtXPVR9d2hpbGUoMSl7VD0raFtWPj4zXTtpZihUPFcpe2Q9
VTtPPVY7Tj1XO3doaWxlKDEpe2hbTz4+M109TjtpZigoZHwwKT09KGZ8MCkpe1g9ZjticmVha31j
PWQtOHwwO0s9K2hbYz4+M107aWYoVDxLKXtPPWQ7ZD1jO049S31lbHNle1g9ZDticmVha319aFtY
Pj4zXT1UfWQ9Vis4fDA7aWYoKGR8MCk9PShhfDApKXticmVha31OPStoW1Y+PjNdO1U9VjtWPWQ7
Vz1OfXJldHVybn1lbHNlIGlmKChrfDApPT0xMTk3KXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTEw
MCl7Vz0raFtlPj4zXTtOPStoW2Y+PjNdO2lmKFc+PU4pe3JldHVybn1oW2Y+PjNdPVc7aFtlPj4z
XT1OO3JldHVybn1lbHNlIGlmKChrfDApPT0xMTg1KXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTE4
Nil7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExOTIpe3JldHVybn1lbHNlIGlmKChrfDApPT0xMTEw
KXtrPWYrOHwwO1Y9ZisxNnwwO049K2hbaz4+M107Vz0raFtmPj4zXTtLPStoW1Y+PjNdO1U9SzxO
O2Rve2lmKE48Vyl7aWYoVSl7aFtmPj4zXT1LO2hbVj4+M109VztZPVc7YnJlYWt9aFtmPj4zXT1O
O2hbaz4+M109VztpZihLPj1XKXtZPUs7YnJlYWt9aFtrPj4zXT1LO2hbVj4+M109VztZPVd9ZWxz
ZXtpZighVSl7WT1LO2JyZWFrfWhbaz4+M109SztoW1Y+PjNdPU47aWYoSz49Vyl7WT1OO2JyZWFr
fWhbZj4+M109SztoW2s+PjNdPVc7WT1OfX13aGlsZSgwKTtOPStoW2U+PjNdO2lmKE4+PVkpe3Jl
dHVybn1oW1Y+PjNdPU47aFtlPj4zXT1ZO1k9K2hbVj4+M107Tj0raFtrPj4zXTtpZihZPj1OKXty
ZXR1cm59aFtrPj4zXT1ZO2hbVj4+M109TjtOPStoW2Y+PjNdO2lmKFk+PU4pe3JldHVybn1oW2Y+
PjNdPVk7aFtrPj4zXT1OO3JldHVybn19ZnVuY3Rpb24gY1YoYSxiLGMpe2E9YXwwO2I9YnwwO2M9
Y3wwO3ZhciBkPTAsZT0wLGY9MC4wLGc9MC4wLGk9MC4wLGo9MCxrPTAuMCxsPTAuMCxtPTAsbj0w
LjAsbz0wLjAscD0wLHE9MCxyPTAscz0wLjAsdD0wLHU9MCx2PTA7c3dpdGNoKGItYT4+M3wwKXtj
YXNlIDA6Y2FzZSAxOntkPTE7cmV0dXJuIGR8MH07Y2FzZSAzOntjPWErOHwwO2U9Yi04fDA7Zj0r
aFtjPj4zXTtnPStoW2E+PjNdO2k9K2hbZT4+M107aj1pPGY7aWYoZj49Zyl7aWYoIWope2Q9MTty
ZXR1cm4gZHwwfWhbYz4+M109aTtoW2U+PjNdPWY7az0raFtjPj4zXTtsPStoW2E+PjNdO2lmKGs+
PWwpe2Q9MTtyZXR1cm4gZHwwfWhbYT4+M109aztoW2M+PjNdPWw7ZD0xO3JldHVybiBkfDB9aWYo
ail7aFthPj4zXT1pO2hbZT4+M109ZztkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPWY7aFtjPj4zXT1n
O2Y9K2hbZT4+M107aWYoZj49Zyl7ZD0xO3JldHVybiBkfDB9aFtjPj4zXT1mO2hbZT4+M109Zztk
PTE7cmV0dXJuIGR8MH07Y2FzZSAyOntlPWItOHwwO2c9K2hbZT4+M107Zj0raFthPj4zXTtpZihn
Pj1mKXtkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPWc7aFtlPj4zXT1mO2Q9MTtyZXR1cm4gZHwwfTtj
YXNlIDQ6e2U9YSs4fDA7Yz1hKzE2fDA7aj1iLTh8MDtmPStoW2U+PjNdO2c9K2hbYT4+M107aT0r
aFtjPj4zXTttPWk8Zjtkb3tpZihmPGcpe2lmKG0pe2hbYT4+M109aTtoW2M+PjNdPWc7bj1nO2Jy
ZWFrfWhbYT4+M109ZjtoW2U+PjNdPWc7aWYoaT49Zyl7bj1pO2JyZWFrfWhbZT4+M109aTtoW2M+
PjNdPWc7bj1nfWVsc2V7aWYoIW0pe249aTticmVha31oW2U+PjNdPWk7aFtjPj4zXT1mO2lmKGk+
PWcpe249ZjticmVha31oW2E+PjNdPWk7aFtlPj4zXT1nO249Zn19d2hpbGUoMCk7Zj0raFtqPj4z
XTtpZihmPj1uKXtkPTE7cmV0dXJuIGR8MH1oW2M+PjNdPWY7aFtqPj4zXT1uO249K2hbYz4+M107
Zj0raFtlPj4zXTtpZihuPj1mKXtkPTE7cmV0dXJuIGR8MH1oW2U+PjNdPW47aFtjPj4zXT1mO2Y9
K2hbYT4+M107aWYobj49Zil7ZD0xO3JldHVybiBkfDB9aFthPj4zXT1uO2hbZT4+M109ZjtkPTE7
cmV0dXJuIGR8MH07Y2FzZSA1OntjUihhLGErOHwwLGErMTZ8MCxhKzI0fDAsYi04fDAsMCl8MDtk
PTE7cmV0dXJuIGR8MH07ZGVmYXVsdDp7ZT1hKzE2fDA7Yz1hKzh8MDtmPStoW2M+PjNdO249K2hb
YT4+M107Zz0raFtlPj4zXTtqPWc8Zjtkb3tpZihmPG4pe2lmKGope2hbYT4+M109ZztoW2U+PjNd
PW47bz1uO2JyZWFrfWhbYT4+M109ZjtoW2M+PjNdPW47aWYoZz49bil7bz1nO2JyZWFrfWhbYz4+
M109ZztoW2U+PjNdPW47bz1ufWVsc2V7aWYoIWope289ZzticmVha31oW2M+PjNdPWc7aFtlPj4z
XT1mO2lmKGc+PW4pe289ZjticmVha31oW2E+PjNdPWc7aFtjPj4zXT1uO289Zn19d2hpbGUoMCk7
Yz1hKzI0fDA7aWYoKGN8MCk9PShifDApKXtkPTE7cmV0dXJuIGR8MH1lbHNle3A9ZTtxPTA7cj1j
O3M9b313aGlsZSgxKXtvPStoW3I+PjNdO2lmKG88cyl7Yz1wO2U9cjtmPXM7d2hpbGUoMSl7aFtl
Pj4zXT1mO2lmKChjfDApPT0oYXwwKSl7dD1hO2JyZWFrfWo9Yy04fDA7bj0raFtqPj4zXTtpZihv
PG4pe2U9YztjPWo7Zj1ufWVsc2V7dD1jO2JyZWFrfX1oW3Q+PjNdPW87Yz1xKzF8MDtpZigoY3ww
KT09OCl7YnJlYWt9ZWxzZXt1PWN9fWVsc2V7dT1xfWM9cis4fDA7aWYoKGN8MCk9PShifDApKXtk
PTE7dj0xMjU2O2JyZWFrfWY9K2hbcj4+M107cD1yO3E9dTtyPWM7cz1mfWlmKCh2fDApPT0xMjU2
KXtyZXR1cm4gZHwwfWQ9KHIrOHwwKT09KGJ8MCk7cmV0dXJuIGR8MH19cmV0dXJuIDB9ZnVuY3Rp
b24gY1coYSl7YT1hfDA7dmFyIGI9MDthPShjWzQwMzhdfDApLTF8MDtjWzQwMzhdPWE7aWYoKGF8
MCkhPTApe3JldHVybn1iO3JldHVybn1mdW5jdGlvbiBjWChiKXtiPWJ8MDt2YXIgZD0wLGU9MCxm
PTA7ZG97aWYoKGFbMTYyODBdfDApPT0wKXtpZigoYmMoMTYyODApfDApPT0wKXticmVha31jWzI5
NjJdPTU0ODk7Yj0xO2Q9NTQ4OTtkb3tkPShhZyhkPj4+MzBeZCwxODEyNDMzMjUzKXwwKStifDA7
Y1sxMTg0OCsoYjw8Mik+PjJdPWQ7Yj1iKzF8MDt9d2hpbGUoYj4+PjA8NjI0KTtjWzM1ODZdPTB9
fXdoaWxlKDApO2I9Y1szNTg2XXwwO2Q9KChiKzF8MCk+Pj4wKSU2MjR8MDtlPTExODQ4KyhiPDwy
KXwwO2Y9Y1sxMTg0OCsoZDw8Mik+PjJdfDA7Y1tlPj4yXT0tKGYmMSkmLTE3Mjc0ODM2ODFeY1sx
MTg0OCsoKCgoYiszOTd8MCk+Pj4wKSU2MjR8MCk8PDIpPj4yXV4oZiYyMTQ3NDgzNjQ2fGNbZT4+
Ml0mLTIxNDc0ODM2NDgpPj4+MTtlPWNbMTE4NDgrKGNbMzU4Nl08PDIpPj4yXXwwO2Y9ZT4+PjEx
XmU7Y1szNTg2XT1kO2Q9Zjw8NyYtMTY1ODAzODY1Nl5mO2Y9ZDw8MTUmLTI3MjIzNjU0NF5kO3Jl
dHVybiBmPj4+MTheZnwwfWZ1bmN0aW9uIGNZKGEpe2E9YXwwO3ZhciBiPTA7YjtjWzQwMzhdPTE7
cmV0dXJufWZ1bmN0aW9uIGNaKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxr
PTAsbD0wO2I9aTtpPWkrMzJ8MDtkPWJ8MDtlPWIrOHwwO2Y9YisxNnwwO2c9YisyNHwwO2RxKDE1
MTM2LGNbbz4+Ml18MCwxNTE5Mik7Y1s0MDE0XT00NTAwO2NbNDAxNl09NDUyMDtjWzQwMTVdPTA7
aD1jWzExMjJdfDA7ZWsoMTYwNTYraHwwLDE1MTM2KTtjW2grMTYxMjg+PjJdPTA7Y1toKzE2MTMy
Pj4yXT0tMTtoPWNbdD4+Ml18MDtlcCgxNTA0MCk7Y1szNzYwXT00NjQ4O2NbMzc2OF09aDtpTihn
LDE1MDQ0KTtoPWlYKGcsMTUzOTIpfDA7aj1oO2lPKGcpO2NbMzc2OV09ajtjWzM3NzBdPTE1MjAw
O2FbMTUwODRdPShiMFtjWyhjW2g+PjJdfDApKzI4Pj4yXSYxMjddKGopfDApJjE7Y1szOTQ4XT00
NDA0O2NbMzk0OV09NDQyNDtqPWNbMTA5OF18MDtlaygxNTc5MitqfDAsMTUwNDApO2g9ais3Mnww
O2NbMTU3OTIraD4+Ml09MDtnPWorNzZ8MDtjWzE1NzkyK2c+PjJdPS0xO2s9Y1tyPj4yXXwwO2Vw
KDE1MDg4KTtjWzM3NzJdPTQ2NDg7Y1szNzgwXT1rO2lOKGYsMTUwOTIpO2s9aVgoZiwxNTM5Mil8
MDtsPWs7aU8oZik7Y1szNzgxXT1sO2NbMzc4Ml09MTUyMDg7YVsxNTEzMl09KGIwW2NbKGNbaz4+
Ml18MCkrMjg+PjJdJjEyN10obCl8MCkmMTtjWzM5OTJdPTQ0MDQ7Y1szOTkzXT00NDI0O2VrKDE1
OTY4K2p8MCwxNTA4OCk7Y1sxNTk2OCtoPj4yXT0wO2NbMTU5NjgrZz4+Ml09LTE7bD1jWyhjWyhj
WzM5OTJdfDApLTEyPj4yXXwwKSsxNTk5Mj4+Ml18MDtjWzM5NzBdPTQ0MDQ7Y1szOTcxXT00NDI0
O2VrKDE1ODgwK2p8MCxsKTtjWzE1ODgwK2g+PjJdPTA7Y1sxNTg4MCtnPj4yXT0tMTtjWyhjWyhj
WzQwMTRdfDApLTEyPj4yXXwwKSsxNjEyOD4+Ml09MTU3OTI7Zz0oY1soY1szOTkyXXwwKS0xMj4+
Ml18MCkrMTU5NzJ8MDtjW2c+PjJdPWNbZz4+Ml18ODE5MjtjWyhjWyhjWzM5OTJdfDApLTEyPj4y
XXwwKSsxNjA0MD4+Ml09MTU3OTI7YzMoMTQ5ODQsY1tvPj4yXXwwLDE1MjE2KTtjWzM5MjZdPTQ0
NTI7Y1szOTI4XT00NDcyO2NbMzkyN109MDtnPWNbMTExMF18MDtlaygxNTcwNCtnfDAsMTQ5ODQp
O2NbZysxNTc3Nj4+Ml09MDtjW2crMTU3ODA+PjJdPS0xO2c9Y1t0Pj4yXXwwO2V3KDE0ODg4KTtj
WzM3MjJdPTQ1NzY7Y1szNzMwXT1nO2lOKGUsMTQ4OTIpO2c9aVgoZSwxNTM4NCl8MDtoPWc7aU8o
ZSk7Y1szNzMxXT1oO2NbMzczMl09MTUyMjQ7YVsxNDkzMl09KGIwW2NbKGNbZz4+Ml18MCkrMjg+
PjJdJjEyN10oaCl8MCkmMTtjWzM4NTZdPTQzNTY7Y1szODU3XT00Mzc2O2g9Y1sxMDg2XXwwO2Vr
KDE1NDI0K2h8MCwxNDg4OCk7Zz1oKzcyfDA7Y1sxNTQyNCtnPj4yXT0wO2U9aCs3NnwwO2NbMTU0
MjQrZT4+Ml09LTE7bD1jW3I+PjJdfDA7ZXcoMTQ5MzYpO2NbMzczNF09NDU3NjtjWzM3NDJdPWw7
aU4oZCwxNDk0MCk7bD1pWChkLDE1Mzg0KXwwO2o9bDtpTyhkKTtjWzM3NDNdPWo7Y1szNzQ0XT0x
NTIzMjthWzE0OTgwXT0oYjBbY1soY1tsPj4yXXwwKSsyOD4+Ml0mMTI3XShqKXwwKSYxO2NbMzkw
MF09NDM1NjtjWzM5MDFdPTQzNzY7ZWsoMTU2MDAraHwwLDE0OTM2KTtjWzE1NjAwK2c+PjJdPTA7
Y1sxNTYwMCtlPj4yXT0tMTtqPWNbKGNbKGNbMzkwMF18MCktMTI+PjJdfDApKzE1NjI0Pj4yXXww
O2NbMzg3OF09NDM1NjtjWzM4NzldPTQzNzY7ZWsoMTU1MTIraHwwLGopO2NbMTU1MTIrZz4+Ml09
MDtjWzE1NTEyK2U+PjJdPS0xO2NbKGNbKGNbMzkyNl18MCktMTI+PjJdfDApKzE1Nzc2Pj4yXT0x
NTQyNDtlPShjWyhjWzM5MDBdfDApLTEyPj4yXXwwKSsxNTYwNHwwO2NbZT4+Ml09Y1tlPj4yXXw4
MTkyO2NbKGNbKGNbMzkwMF18MCktMTI+PjJdfDApKzE1NjcyPj4yXT0xNTQyNDtpPWI7cmV0dXJu
fWZ1bmN0aW9uIGNfKGEpe2E9YXwwO2V2KGF8MCk7cmV0dXJufWZ1bmN0aW9uIGMkKGEpe2E9YXww
O2V2KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGMwKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9
MDtiMFtjWyhjW2I+PjJdfDApKzI0Pj4yXSYxMjddKGIpfDA7ZT1pWChkLDE1Mzg0KXwwO2Q9ZTtj
W2IrMzY+PjJdPWQ7YVtiKzQ0fDBdPShiMFtjWyhjW2U+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDAp
JjE7cmV0dXJufWZ1bmN0aW9uIGMxKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAsZz0wLGg9
MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2I9aTtpPWkrMTZ8MDtkPWJ8MDtlPWIrOHwwO2Y9YSszNnww
O2c9YSs0MHwwO2g9ZHwwO2o9ZCs4fDA7az1kO2Q9YSszMnwwO0wxNjQyOndoaWxlKDEpe2E9Y1tm
Pj4yXXwwO2w9YiRbY1soY1thPj4yXXwwKSsyMD4+Ml0mMzFdKGEsY1tnPj4yXXwwLGgsaixlKXww
O2E9KGNbZT4+Ml18MCkta3wwO2lmKChhTShofDAsMSxhfDAsY1tkPj4yXXwwKXwwKSE9KGF8MCkp
e209LTE7bj0xMzA0O2JyZWFrfXN3aXRjaChsfDApe2Nhc2UgMjp7bT0tMTtuPTEzMDU7YnJlYWsg
TDE2NDI7YnJlYWt9O2Nhc2UgMTp7YnJlYWt9O2RlZmF1bHQ6e249MTMwMTticmVhayBMMTY0Mn19
fWlmKChufDApPT0xMzA0KXtpPWI7cmV0dXJuIG18MH1lbHNlIGlmKChufDApPT0xMzA1KXtpPWI7
cmV0dXJuIG18MH1lbHNlIGlmKChufDApPT0xMzAxKXttPSgoYUsoY1tkPj4yXXwwKXwwKSE9MCk8
PDMxPj4zMTtpPWI7cmV0dXJuIG18MH1yZXR1cm4gMH1mdW5jdGlvbiBjMihiLGQpe2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUrMTZ8
MDtqPWUrMjR8MDtrPShkfDApPT0tMTtMMTY1MTpkb3tpZighayl7Y1tnPj4yXT1kO2lmKChhW2Ir
NDR8MF0mMSkhPTApe2lmKChhTShnfDAsNCwxLGNbYiszMj4+Ml18MCl8MCk9PTEpe2JyZWFrfWVs
c2V7bD0tMX1pPWU7cmV0dXJuIGx8MH1tPWZ8MDtjW2g+PjJdPW07bj1nKzR8MDtvPWIrMzZ8MDtw
PWIrNDB8MDtxPWYrOHwwO3I9ZjtzPWIrMzJ8MDt0PWc7d2hpbGUoMSl7dT1jW28+PjJdfDA7dj1i
NltjWyhjW3U+PjJdfDApKzEyPj4yXSYzMV0odSxjW3A+PjJdfDAsdCxuLGosbSxxLGgpfDA7aWYo
KGNbaj4+Ml18MCk9PSh0fDApKXtsPS0xO3c9MTMyMDticmVha31pZigodnwwKT09Myl7dz0xMzEy
O2JyZWFrfXU9KHZ8MCk9PTE7aWYodj4+PjA+PTIpe2w9LTE7dz0xMzIyO2JyZWFrfXY9KGNbaD4+
Ml18MCktcnwwO2lmKChhTShtfDAsMSx2fDAsY1tzPj4yXXwwKXwwKSE9KHZ8MCkpe2w9LTE7dz0x
MzIxO2JyZWFrfWlmKHUpe3Q9dT9jW2o+PjJdfDA6dH1lbHNle2JyZWFrIEwxNjUxfX1pZigod3ww
KT09MTMyMSl7aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTMyMil7aT1lO3JldHVybiBs
fDB9ZWxzZSBpZigod3wwKT09MTMxMil7aWYoKGFNKHR8MCwxLDEsY1tzPj4yXXwwKXwwKT09MSl7
YnJlYWt9ZWxzZXtsPS0xfWk9ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTEzMjApe2k9ZTty
ZXR1cm4gbHwwfX19d2hpbGUoMCk7bD1rPzA6ZDtpPWU7cmV0dXJuIGx8MH1mdW5jdGlvbiBjMyhi
LGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGo9MDtmPWk7aT1pKzh8MDtn
PWZ8MDtldyhifDApO2NbYj4+Ml09NDk3NjtjW2IrMzI+PjJdPWQ7Y1tiKzQwPj4yXT1lO2NbYis0
OD4+Ml09LTE7YVtiKzUyfDBdPTA7aU4oZyxiKzR8MCk7ZT1pWChnLDE1Mzg0KXwwO2Q9ZTtoPWIr
MzZ8MDtjW2g+PjJdPWQ7aj1iKzQ0fDA7Y1tqPj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYx
MjddKGQpfDA7ZD1jW2g+PjJdfDA7YVtiKzUzfDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYx
MjddKGQpfDApJjE7aWYoKGNbaj4+Ml18MCk8PTgpe2lPKGcpO2k9ZjtyZXR1cm59aFYoMTg0KTtp
TyhnKTtpPWY7cmV0dXJufWZ1bmN0aW9uIGM0KGEpe2E9YXwwO2V2KGF8MCk7cmV0dXJufWZ1bmN0
aW9uIGM1KGEpe2E9YXwwO2V2KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGM2KGIsZCl7Yj1i
fDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2U9aVgoZCwxNTM4NCl8MDtkPWU7Zj1iKzM2fDA7Y1tm
Pj4yXT1kO2c9Yis0NHwwO2NbZz4+Ml09YjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShkKXww
O2Q9Y1tmPj4yXXwwO2FbYis1M3wwXT0oYjBbY1soY1tkPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXww
KSYxO2lmKChjW2c+PjJdfDApPD04KXtyZXR1cm59aFYoMTg0KTtyZXR1cm59ZnVuY3Rpb24gYzco
YSl7YT1hfDA7cmV0dXJuIGRhKGEsMCl8MH1mdW5jdGlvbiBjOChhKXthPWF8MDtyZXR1cm4gZGEo
YSwxKXwwfWZ1bmN0aW9uIGM5KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1l
Kzh8MDtoPWUrMTZ8MDtqPWUrMjR8MDtrPWIrNTJ8MDtsPShhW2tdJjEpIT0wO2lmKChkfDApPT0t
MSl7aWYobCl7bT0tMTtpPWU7cmV0dXJuIG18MH1uPWNbYis0OD4+Ml18MDthW2tdPShufDApIT0t
MXwwO209bjtpPWU7cmV0dXJuIG18MH1uPWIrNDh8MDtMMTY5NDpkb3tpZihsKXtjW2g+PjJdPWNb
bj4+Ml07bz1jW2IrMzY+PjJdfDA7cD1mfDA7c3dpdGNoKGI2W2NbKGNbbz4+Ml18MCkrMTI+PjJd
JjMxXShvLGNbYis0MD4+Ml18MCxoLGgrNHwwLGoscCxmKzh8MCxnKXwwKXtjYXNlIDI6Y2FzZSAx
OnttPS0xO2k9ZTtyZXR1cm4gbXwwfTtjYXNlIDM6e2FbcF09Y1tuPj4yXSYyNTU7Y1tnPj4yXT1m
KzE7YnJlYWt9O2RlZmF1bHQ6e319bz1iKzMyfDA7d2hpbGUoMSl7cT1jW2c+PjJdfDA7aWYocT4+
PjA8PXA+Pj4wKXticmVhayBMMTY5NH1yPXEtMXwwO2NbZz4+Ml09cjtpZigoYkEoYVtyXXwwLGNb
bz4+Ml18MCl8MCk9PS0xKXttPS0xO2JyZWFrfX1pPWU7cmV0dXJuIG18MH19d2hpbGUoMCk7Y1tu
Pj4yXT1kO2Fba109MTttPWQ7aT1lO3JldHVybiBtfDB9ZnVuY3Rpb24gZGEoYixkKXtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8
MDtoPWUrMTZ8MDtqPWUrMjR8MDtrPWIrNTJ8MDtpZigoYVtrXSYxKSE9MCl7bD1iKzQ4fDA7bT1j
W2w+PjJdfDA7aWYoIWQpe249bTtpPWU7cmV0dXJuIG58MH1jW2w+PjJdPS0xO2Fba109MDtuPW07
aT1lO3JldHVybiBufDB9bT1jW2IrNDQ+PjJdfDA7az0obXwwKT4xP206MTtMMTcxNDpkb3tpZigo
a3wwKT4wKXttPWIrMzJ8MDtsPTA7d2hpbGUoMSl7bz1hXyhjW20+PjJdfDApfDA7aWYoKG98MCk9
PS0xKXtuPS0xO2JyZWFrfWFbZitsfDBdPW8mMjU1O2w9bCsxfDA7aWYoKGx8MCk+PShrfDApKXti
cmVhayBMMTcxNH19aT1lO3JldHVybiBufDB9fXdoaWxlKDApO0wxNzIxOmRve2lmKChhW2IrNTN8
MF0mMSk9PTApe2w9Yis0MHwwO209YiszNnwwO289ZnwwO3A9Zys0fDA7cT1iKzMyfDA7cj1rO0wx
NzIzOndoaWxlKDEpe3M9Y1tsPj4yXXwwO3Q9czt1PWNbdD4+Ml18MDt2PWNbdCs0Pj4yXXwwO3Q9
Y1ttPj4yXXwwO3c9ZityfDA7c3dpdGNoKGI2W2NbKGNbdD4+Ml18MCkrMTY+PjJdJjMxXSh0LHMs
byx3LGgsZyxwLGopfDApe2Nhc2UgMTp7YnJlYWt9O2Nhc2UgMjp7bj0tMTt4PTEzODA7YnJlYWsg
TDE3MjM7YnJlYWt9O2Nhc2UgMzp7eD0xMzY5O2JyZWFrIEwxNzIzO2JyZWFrfTtkZWZhdWx0Ont5
PXI7YnJlYWsgTDE3MjF9fXM9Y1tsPj4yXXwwO2Nbcz4+Ml09dTtjW3MrND4+Ml09djtpZigocnww
KT09OCl7bj0tMTt4PTEzNzk7YnJlYWt9dj1hXyhjW3E+PjJdfDApfDA7aWYoKHZ8MCk9PS0xKXtu
PS0xO3g9MTM4NTticmVha31hW3ddPXYmMjU1O3I9cisxfDB9aWYoKHh8MCk9PTEzNzkpe2k9ZTty
ZXR1cm4gbnwwfWVsc2UgaWYoKHh8MCk9PTEzODApe2k9ZTtyZXR1cm4gbnwwfWVsc2UgaWYoKHh8
MCk9PTEzODUpe2k9ZTtyZXR1cm4gbnwwfWVsc2UgaWYoKHh8MCk9PTEzNjkpe2NbZz4+Ml09YVtv
XXwwO3k9cjticmVha319ZWxzZXtjW2c+PjJdPWFbZnwwXXwwO3k9a319d2hpbGUoMCk7aWYoZCl7
ZD1jW2c+PjJdfDA7Y1tiKzQ4Pj4yXT1kO249ZDtpPWU7cmV0dXJuIG58MH1kPWIrMzJ8MDtiPXk7
d2hpbGUoMSl7aWYoKGJ8MCk8PTApe2JyZWFrfXk9Yi0xfDA7aWYoKGJBKGFbZit5fDBdfDAsY1tk
Pj4yXXwwKXwwKT09LTEpe249LTE7eD0xMzgyO2JyZWFrfWVsc2V7Yj15fX1pZigoeHwwKT09MTM4
Mil7aT1lO3JldHVybiBufDB9bj1jW2c+PjJdfDA7aT1lO3JldHVybiBufDB9ZnVuY3Rpb24gZGIo
YSl7YT1hfDA7ZW8oYXwwKTtyZXR1cm59ZnVuY3Rpb24gZGMoYSl7YT1hfDA7ZW8oYXwwKTtrUyhh
KTtyZXR1cm59ZnVuY3Rpb24gZGQoYSl7YT1hfDA7ZmcoMTU3OTIpfDA7ZmcoMTU4ODApfDA7Zmgo
MTU0MjQpfDA7ZmgoMTU1MTIpfDA7cmV0dXJufWZ1bmN0aW9uIGRlKGEpe2E9YXwwO3JldHVybn1m
dW5jdGlvbiBkZihhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24gZGcoYSl7YT1hfDA7dmFyIGI9MDti
PWErNHwwO0k9Y1tiPj4yXXwwLGNbYj4+Ml09SSsxLEk7cmV0dXJufWZ1bmN0aW9uIGRoKGEpe2E9
YXwwO3JldHVybiBjW2ErND4+Ml18MH1mdW5jdGlvbiBkaShhKXthPWF8MDtyZXR1cm4gY1thKzQ+
PjJdfDB9ZnVuY3Rpb24gZGooYSl7YT1hfDA7Y1thPj4yXT00MzA0O3JldHVybn1mdW5jdGlvbiBk
ayhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7Y1thPj4yXT1kO2NbYSs0Pj4yXT1iO3JldHVybn1m
dW5jdGlvbiBkbChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MDtpZigoY1tiKzQ+PjJd
fDApIT0oYXwwKSl7ZT0wO3JldHVybiBlfDB9ZT0oY1tiPj4yXXwwKT09KGR8MCk7cmV0dXJuIGV8
MH1mdW5jdGlvbiBkbShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTA7YjBbY1soY1tiPj4yXXwwKSsy
ND4+Ml0mMTI3XShiKXwwO2U9aVgoZCwxNTM5Mil8MDtkPWU7Y1tiKzM2Pj4yXT1kO2FbYis0NHww
XT0oYjBbY1soY1tlPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO3JldHVybn1mdW5jdGlvbiBk
bihhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49
MDtiPWk7aT1pKzE2fDA7ZD1ifDA7ZT1iKzh8MDtmPWErMzZ8MDtnPWErNDB8MDtoPWR8MDtqPWQr
OHwwO2s9ZDtkPWErMzJ8MDtMMTc2Nzp3aGlsZSgxKXthPWNbZj4+Ml18MDtsPWIkW2NbKGNbYT4+
Ml18MCkrMjA+PjJdJjMxXShhLGNbZz4+Ml18MCxoLGosZSl8MDthPShjW2U+PjJdfDApLWt8MDtp
ZigoYU0oaHwwLDEsYXwwLGNbZD4+Ml18MCl8MCkhPShhfDApKXttPS0xO249MTQxNDticmVha31z
d2l0Y2gobHwwKXtjYXNlIDI6e209LTE7bj0xNDE1O2JyZWFrIEwxNzY3O2JyZWFrfTtjYXNlIDE6
e2JyZWFrfTtkZWZhdWx0OntuPTE0MTE7YnJlYWsgTDE3Njd9fX1pZigobnwwKT09MTQxNSl7aT1i
O3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTQxMSl7bT0oKGFLKGNbZD4+Ml18MCl8MCkhPTAp
PDwzMT4+MzE7aT1iO3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTQxNCl7aT1iO3JldHVybiBt
fDB9cmV0dXJuIDB9ZnVuY3Rpb24gZHAoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAs
aD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1lKzI0fDA7az0oZHwwKT09
LTE7TDE3NzY6ZG97aWYoIWspe2FbZ109ZCYyNTU7aWYoKGFbYis0NHwwXSYxKSE9MCl7aWYoKGFN
KGd8MCwxLDEsY1tiKzMyPj4yXXwwKXwwKT09MSl7YnJlYWt9ZWxzZXtsPS0xfWk9ZTtyZXR1cm4g
bHwwfW09ZnwwO2NbaD4+Ml09bTtuPWcrMXwwO289YiszNnwwO3A9Yis0MHwwO3E9Zis4fDA7cj1m
O3M9YiszMnwwO3Q9Zzt3aGlsZSgxKXt1PWNbbz4+Ml18MDt2PWI2W2NbKGNbdT4+Ml18MCkrMTI+
PjJdJjMxXSh1LGNbcD4+Ml18MCx0LG4saixtLHEsaCl8MDtpZigoY1tqPj4yXXwwKT09KHR8MCkp
e2w9LTE7dz0xNDMzO2JyZWFrfWlmKCh2fDApPT0zKXt3PTE0MjI7YnJlYWt9dT0odnwwKT09MTtp
Zih2Pj4+MD49Mil7bD0tMTt3PTE0MzI7YnJlYWt9dj0oY1toPj4yXXwwKS1yfDA7aWYoKGFNKG18
MCwxLHZ8MCxjW3M+PjJdfDApfDApIT0odnwwKSl7bD0tMTt3PTE0MzA7YnJlYWt9aWYodSl7dD11
P2Nbaj4+Ml18MDp0fWVsc2V7YnJlYWsgTDE3NzZ9fWlmKCh3fDApPT0xNDMwKXtpPWU7cmV0dXJu
IGx8MH1lbHNlIGlmKCh3fDApPT0xNDIyKXtpZigoYU0odHwwLDEsMSxjW3M+PjJdfDApfDApPT0x
KXticmVha31lbHNle2w9LTF9aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTQzMil7aT1l
O3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTQzMyl7aT1lO3JldHVybiBsfDB9fX13aGlsZSgw
KTtsPWs/MDpkO2k9ZTtyZXR1cm4gbHwwfWZ1bmN0aW9uIGRxKGIsZCxlKXtiPWJ8MDtkPWR8MDtl
PWV8MDt2YXIgZj0wLGc9MCxoPTAsaj0wO2Y9aTtpPWkrOHwwO2c9ZnwwO2VwKGJ8MCk7Y1tiPj4y
XT01MDQ4O2NbYiszMj4+Ml09ZDtjW2IrNDA+PjJdPWU7Y1tiKzQ4Pj4yXT0tMTthW2IrNTJ8MF09
MDtpTihnLGIrNHwwKTtlPWlYKGcsMTUzOTIpfDA7ZD1lO2g9YiszNnwwO2NbaD4+Ml09ZDtqPWIr
NDR8MDtjW2o+PjJdPWIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZCl8MDtkPWNbaD4+Ml18
MDthW2IrNTN8MF09KGIwW2NbKGNbZD4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtpZigoY1tq
Pj4yXXwwKTw9OCl7aU8oZyk7aT1mO3JldHVybn1oVigxODQpO2lPKGcpO2k9ZjtyZXR1cm59ZnVu
Y3Rpb24gZHIoYSl7YT1hfDA7ZW8oYXwwKTtyZXR1cm59ZnVuY3Rpb24gZHMoYSl7YT1hfDA7ZW8o
YXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZHQoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9
MCxnPTA7ZT1pWChkLDE1MzkyKXwwO2Q9ZTtmPWIrMzZ8MDtjW2Y+PjJdPWQ7Zz1iKzQ0fDA7Y1tn
Pj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGQpfDA7ZD1jW2Y+PjJdfDA7YVtiKzUz
fDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7aWYoKGNbZz4+Ml18MCk8
PTgpe3JldHVybn1oVigxODQpO3JldHVybn1mdW5jdGlvbiBkdShhKXthPWF8MDtyZXR1cm4gZHgo
YSwwKXwwfWZ1bmN0aW9uIGR2KGEpe2E9YXwwO3JldHVybiBkeChhLDEpfDB9ZnVuY3Rpb24gZHco
YixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtnPWUrOHwwO2g9ZSsxNnwwO2o9ZSsy
NHwwO2s9Yis1MnwwO2w9KGFba10mMSkhPTA7aWYoKGR8MCk9PS0xKXtpZihsKXttPS0xO2k9ZTty
ZXR1cm4gbXwwfW49Y1tiKzQ4Pj4yXXwwO2Fba109KG58MCkhPS0xfDA7bT1uO2k9ZTtyZXR1cm4g
bXwwfW49Yis0OHwwO0wxODE5OmRve2lmKGwpe2FbaF09Y1tuPj4yXSYyNTU7bz1jW2IrMzY+PjJd
fDA7cD1mfDA7c3dpdGNoKGI2W2NbKGNbbz4+Ml18MCkrMTI+PjJdJjMxXShvLGNbYis0MD4+Ml18
MCxoLGgrMXwwLGoscCxmKzh8MCxnKXwwKXtjYXNlIDM6e2FbcF09Y1tuPj4yXSYyNTU7Y1tnPj4y
XT1mKzE7YnJlYWt9O2Nhc2UgMjpjYXNlIDE6e209LTE7aT1lO3JldHVybiBtfDB9O2RlZmF1bHQ6
e319bz1iKzMyfDA7d2hpbGUoMSl7cT1jW2c+PjJdfDA7aWYocT4+PjA8PXA+Pj4wKXticmVhayBM
MTgxOX1yPXEtMXwwO2NbZz4+Ml09cjtpZigoYkEoYVtyXXwwLGNbbz4+Ml18MCl8MCk9PS0xKXtt
PS0xO2JyZWFrfX1pPWU7cmV0dXJuIG18MH19d2hpbGUoMCk7Y1tuPj4yXT1kO2Fba109MTttPWQ7
aT1lO3JldHVybiBtfDB9ZnVuY3Rpb24gZHgoYixlKXtiPWJ8MDtlPWV8MDt2YXIgZj0wLGc9MCxo
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTA7Zj1pO2k9aSszMnwwO2c9ZnwwO2g9Zis4fDA7aj1mKzE2fDA7az1m
KzI0fDA7bD1iKzUyfDA7aWYoKGFbbF0mMSkhPTApe209Yis0OHwwO249Y1ttPj4yXXwwO2lmKCFl
KXtvPW47aT1mO3JldHVybiBvfDB9Y1ttPj4yXT0tMTthW2xdPTA7bz1uO2k9ZjtyZXR1cm4gb3ww
fW49Y1tiKzQ0Pj4yXXwwO2w9KG58MCk+MT9uOjE7TDE4Mzk6ZG97aWYoKGx8MCk+MCl7bj1iKzMy
fDA7bT0wO3doaWxlKDEpe3A9YV8oY1tuPj4yXXwwKXwwO2lmKChwfDApPT0tMSl7bz0tMTticmVh
a31hW2crbXwwXT1wJjI1NTttPW0rMXwwO2lmKChtfDApPj0obHwwKSl7YnJlYWsgTDE4Mzl9fWk9
ZjtyZXR1cm4gb3wwfX13aGlsZSgwKTtMMTg0Njpkb3tpZigoYVtiKzUzfDBdJjEpPT0wKXttPWIr
NDB8MDtuPWIrMzZ8MDtwPWd8MDtxPWgrMXwwO3I9YiszMnwwO3M9bDtMMTg0ODp3aGlsZSgxKXt0
PWNbbT4+Ml18MDt1PXQ7dj1jW3U+PjJdfDA7dz1jW3UrND4+Ml18MDt1PWNbbj4+Ml18MDt4PWcr
c3wwO3N3aXRjaChiNltjWyhjW3U+PjJdfDApKzE2Pj4yXSYzMV0odSx0LHAseCxqLGgscSxrKXww
KXtjYXNlIDE6e2JyZWFrfTtjYXNlIDI6e289LTE7eT0xNDkwO2JyZWFrIEwxODQ4O2JyZWFrfTtj
YXNlIDM6e3k9MTQ3OTticmVhayBMMTg0ODticmVha307ZGVmYXVsdDp7ej1zO2JyZWFrIEwxODQ2
fX10PWNbbT4+Ml18MDtjW3Q+PjJdPXY7Y1t0KzQ+PjJdPXc7aWYoKHN8MCk9PTgpe289LTE7eT0x
NDkxO2JyZWFrfXc9YV8oY1tyPj4yXXwwKXwwO2lmKCh3fDApPT0tMSl7bz0tMTt5PTE0OTU7YnJl
YWt9YVt4XT13JjI1NTtzPXMrMXwwfWlmKCh5fDApPT0xNDkwKXtpPWY7cmV0dXJuIG98MH1lbHNl
IGlmKCh5fDApPT0xNDk1KXtpPWY7cmV0dXJuIG98MH1lbHNlIGlmKCh5fDApPT0xNDc5KXthW2hd
PWFbcF18MDt6PXM7YnJlYWt9ZWxzZSBpZigoeXwwKT09MTQ5MSl7aT1mO3JldHVybiBvfDB9fWVs
c2V7YVtoXT1hW2d8MF18MDt6PWx9fXdoaWxlKDApO2Rve2lmKGUpe2w9YVtoXXwwO2NbYis0OD4+
Ml09bCYyNTU7QT1sfWVsc2V7bD1iKzMyfDA7az16O3doaWxlKDEpe2lmKChrfDApPD0wKXt5PTE0
ODY7YnJlYWt9aj1rLTF8MDtpZigoYkEoZFtnK2p8MF18MHwwLGNbbD4+Ml18MCl8MCk9PS0xKXtv
PS0xO3k9MTQ5NDticmVha31lbHNle2s9an19aWYoKHl8MCk9PTE0ODYpe0E9YVtoXXwwO2JyZWFr
fWVsc2UgaWYoKHl8MCk9PTE0OTQpe2k9ZjtyZXR1cm4gb3wwfX19d2hpbGUoMCk7bz1BJjI1NTtp
PWY7cmV0dXJuIG98MH1mdW5jdGlvbiBkeSgpe2NaKDApO2EkKDE0MiwxNjE0NHwwLHV8MCl8MDty
ZXR1cm59ZnVuY3Rpb24gZHooYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hKzR8MDtpZigoKEk9Y1ti
Pj4yXXwwLGNbYj4+Ml09SSsgLTEsSSl8MCkhPTApe2Q9MDtyZXR1cm4gZHwwfWJZW2NbKGNbYT4+
Ml18MCkrOD4+Ml0mNTExXShhKTtkPTE7cmV0dXJuIGR8MH1mdW5jdGlvbiBkQShhLGIpe2E9YXww
O2I9YnwwO3ZhciBkPTAsZT0wLGY9MDtjW2E+PjJdPTI1MzY7ZD1hKzR8MDtpZigoZHwwKT09MCl7
cmV0dXJufWE9azAoYnwwKXwwO2U9YSsxfDA7Zj1rUChhKzEzfDApfDA7Y1tmKzQ+PjJdPWE7Y1tm
Pj4yXT1hO2E9ZisxMnwwO2NbZD4+Ml09YTtjW2YrOD4+Ml09MDtrWShhfDAsYnwwLGUpfDA7cmV0
dXJufWZ1bmN0aW9uIGRCKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtjW2E+PjJdPTI1MzY7Yj1h
KzR8MDtkPShjW2I+PjJdfDApLTR8MDtpZigoKEk9Y1tkPj4yXXwwLGNbZD4+Ml09SSsgLTEsSSkt
MXwwKT49MCl7ZT1hO2tTKGUpO3JldHVybn1kPShjW2I+PjJdfDApLTEyfDA7aWYoKGR8MCk9PTAp
e2U9YTtrUyhlKTtyZXR1cm59a1QoZCk7ZT1hO2tTKGUpO3JldHVybn1mdW5jdGlvbiBkQyhhKXth
PWF8MDt2YXIgYj0wO2NbYT4+Ml09MjUzNjtiPWErNHwwO2E9KGNbYj4+Ml18MCktNHwwO2lmKCgo
ST1jW2E+PjJdfDAsY1thPj4yXT1JKyAtMSxJKS0xfDApPj0wKXtyZXR1cm59YT0oY1tiPj4yXXww
KS0xMnwwO2lmKChhfDApPT0wKXtyZXR1cm59a1QoYSk7cmV0dXJufWZ1bmN0aW9uIGREKGIsZCl7
Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2NbYj4+Ml09MjQ3MjtlPWIrNHwwO2lmKChlfDAp
PT0wKXtyZXR1cm59aWYoKGFbZF0mMSk9PTApe2Y9ZCsxfDB9ZWxzZXtmPWNbZCs4Pj4yXXwwfWQ9
azAoZnwwKXwwO2I9ZCsxfDA7Zz1rUChkKzEzfDApfDA7Y1tnKzQ+PjJdPWQ7Y1tnPj4yXT1kO2Q9
ZysxMnwwO2NbZT4+Ml09ZDtjW2crOD4+Ml09MDtrWShkfDAsZnwwLGIpfDA7cmV0dXJufWZ1bmN0
aW9uIGRFKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wO2NbYT4+Ml09MjQ3MjtkPWEr
NHwwO2lmKChkfDApPT0wKXtyZXR1cm59YT1rMChifDApfDA7ZT1hKzF8MDtmPWtQKGErMTN8MCl8
MDtjW2YrND4+Ml09YTtjW2Y+PjJdPWE7YT1mKzEyfDA7Y1tkPj4yXT1hO2NbZis4Pj4yXT0wO2tZ
KGF8MCxifDAsZSl8MDtyZXR1cm59ZnVuY3Rpb24gZEYoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0w
O2NbYT4+Ml09MjQ3MjtiPWErNHwwO2Q9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2Q+PjJdfDAs
Y1tkPj4yXT1JKyAtMSxJKS0xfDApPj0wKXtlPWE7a1MoZSk7cmV0dXJufWQ9KGNbYj4+Ml18MCkt
MTJ8MDtpZigoZHwwKT09MCl7ZT1hO2tTKGUpO3JldHVybn1rVChkKTtlPWE7a1MoZSk7cmV0dXJu
fWZ1bmN0aW9uIGRHKGEpe2E9YXwwO3ZhciBiPTA7Y1thPj4yXT0yNDcyO2I9YSs0fDA7YT0oY1ti
Pj4yXXwwKS00fDA7aWYoKChJPWNbYT4+Ml18MCxjW2E+PjJdPUkrIC0xLEkpLTF8MCk+PTApe3Jl
dHVybn1hPShjW2I+PjJdfDApLTEyfDA7aWYoKGF8MCk9PTApe3JldHVybn1rVChhKTtyZXR1cm59
ZnVuY3Rpb24gZEgoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2NbYT4+Ml09MjUzNjtiPWErNHww
O2Q9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2Q+PjJdfDAsY1tkPj4yXT1JKyAtMSxJKS0xfDAp
Pj0wKXtlPWE7a1MoZSk7cmV0dXJufWQ9KGNbYj4+Ml18MCktMTJ8MDtpZigoZHwwKT09MCl7ZT1h
O2tTKGUpO3JldHVybn1rVChkKTtlPWE7a1MoZSk7cmV0dXJufWZ1bmN0aW9uIGRJKGEpe2E9YXww
O2tTKGEpO3JldHVybn1mdW5jdGlvbiBkSihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wO2U9aTtpPWkrOHwwO2Y9ZXwwO2IzW2NbKGNbYT4+Ml18MCkrMTI+PjJdJjddKGYs
YSxiKTtpZigoY1tmKzQ+PjJdfDApIT0oY1tkKzQ+PjJdfDApKXtnPTA7aT1lO3JldHVybiBnfDB9
Zz0oY1tmPj4yXXwwKT09KGNbZD4+Ml18MCk7aT1lO3JldHVybiBnfDB9ZnVuY3Rpb24gZEsoYSxi
LGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2I9YngoY3wwKXwwO2RaKGEsYixrMChifDApfDApO3JldHVy
bn1mdW5jdGlvbiBkTChiLGUsZil7Yj1ifDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zz1pO2g9ZjtqPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7az1lfDA7bD1jW2s+PjJdfDA7aWYoKGx8MCk9PTApe209YjtjW20+PjJdPWNbaD4+Ml07
Y1ttKzQ+PjJdPWNbaCs0Pj4yXTtjW20rOD4+Ml09Y1toKzg+PjJdO2skKGh8MCwwLDEyKTtpPWc7
cmV0dXJufW49ZFtoXXwwO2lmKChuJjF8MCk9PTApe289bj4+PjF9ZWxzZXtvPWNbZis0Pj4yXXww
fWlmKChvfDApPT0wKXtwPWx9ZWxzZXtkVChmLDEyOTYpfDA7cD1jW2s+PjJdfDB9az1jW2UrND4+
Ml18MDtiM1tjWyhjW2s+PjJdfDApKzI0Pj4yXSY3XShqLGsscCk7cD1hW2pdfDA7aWYoKHAmMSk9
PTApe3E9aisxfDB9ZWxzZXtxPWNbais4Pj4yXXwwfWs9cCYyNTU7aWYoKGsmMXwwKT09MCl7cj1r
Pj4+MX1lbHNle3I9Y1tqKzQ+PjJdfDB9ZFYoZixxLHIpfDA7ZFAoaik7bT1iO2NbbT4+Ml09Y1to
Pj4yXTtjW20rND4+Ml09Y1toKzQ+PjJdO2NbbSs4Pj4yXT1jW2grOD4+Ml07ayQoaHwwLDAsMTIp
O2k9ZztyZXR1cm59ZnVuY3Rpb24gZE0oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MDtlPWk7aT1pKzMyfDA7Zj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tmPj4yXTtjW2Ir
ND4+Ml09Y1tmKzQ+PjJdO2Y9ZXwwO2c9ZSsxNnwwO2RaKGcsZCxrMChkfDApfDApO2RMKGYsYixn
KTtkRChhfDAsZik7ZFAoZik7ZFAoZyk7Y1thPj4yXT00NTQ0O2c9YjtiPWErOHwwO2E9Y1tnKzQ+
PjJdfDA7Y1tiPj4yXT1jW2c+PjJdO2NbYis0Pj4yXT1hO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZE4o
YSl7YT1hfDA7ZEcoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZE8oYSl7YT1hfDA7ZEcoYXww
KTtyZXR1cm59ZnVuY3Rpb24gZFAoYil7Yj1ifDA7aWYoKGFbYl0mMSk9PTApe3JldHVybn1rUyhj
W2IrOD4+Ml18MCk7cmV0dXJufWZ1bmN0aW9uIGRRKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1rMChkfDApfDA7Zj1iO2c9YjtoPWFbZ118MDtp
ZigoaCYxKT09MCl7aT0xMDtqPWh9ZWxzZXtoPWNbYj4+Ml18MDtpPShoJi0yKS0xfDA7aj1oJjI1
NX1pZihpPj4+MDxlPj4+MCl7aD1qJjI1NTtpZigoaCYxfDApPT0wKXtrPWg+Pj4xfWVsc2V7az1j
W2IrND4+Ml18MH1kMChiLGksZS1pfDAsaywwLGssZSxkKTtyZXR1cm4gYnwwfWlmKChqJjEpPT0w
KXtsPWYrMXwwfWVsc2V7bD1jW2IrOD4+Ml18MH1rXyhsfDAsZHwwLGV8MCk7YVtsK2V8MF09MDtp
ZigoYVtnXSYxKT09MCl7YVtnXT1lPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+PjJdPWU7
cmV0dXJuIGJ8MH1yZXR1cm4gMH1mdW5jdGlvbiBkUihiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
dmFyIGY9MCxnPTAsaD0wLGk9MDtmPWI7Zz1hW2ZdfDA7aD1nJjI1NTtpZigoaCYxfDApPT0wKXtp
PWg+Pj4xfWVsc2V7aT1jW2IrND4+Ml18MH1pZihpPj4+MDxkPj4+MCl7aD1kLWl8MDtkUyhiLGgs
ZSl8MDtyZXR1cm59aWYoKGcmMSk9PTApe2FbYisxK2R8MF09MDthW2ZdPWQ8PDEmMjU1O3JldHVy
bn1lbHNle2FbKGNbYis4Pj4yXXwwKStkfDBdPTA7Y1tiKzQ+PjJdPWQ7cmV0dXJufX1mdW5jdGlv
biBkUyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0w
LGw9MDtpZigoZHwwKT09MCl7cmV0dXJuIGJ8MH1mPWI7Zz1hW2ZdfDA7aWYoKGcmMSk9PTApe2g9
MTA7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9ZyYyNTV9Zz1pJjI1NTtpZigo
ZyYxfDApPT0wKXtqPWc+Pj4xfWVsc2V7aj1jW2IrND4+Ml18MH1pZigoaC1qfDApPj4+MDxkPj4+
MCl7ZDEoYixoLGQtaCtqfDAsaixqLDAsMCk7az1hW2ZdfDB9ZWxzZXtrPWl9aWYoKGsmMSk9PTAp
e2w9YisxfDB9ZWxzZXtsPWNbYis4Pj4yXXwwfWskKGwranwwLGV8MCxkfDApO2U9aitkfDA7aWYo
KGFbZl0mMSk9PTApe2FbZl09ZTw8MSYyNTV9ZWxzZXtjW2IrND4+Ml09ZX1hW2wrZXwwXT0wO3Jl
dHVybiBifDB9ZnVuY3Rpb24gZFQoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4gZFYoYSxiLGswKGJ8
MCl8MCl8MH1mdW5jdGlvbiBkVShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAs
aT0wLGo9MCxrPTAsbD0wLG09MDtlPWI7Zj1hW2VdfDA7aWYoKGYmMSk9PTApe2c9KGYmMjU1KT4+
PjE7aD0xMH1lbHNle2c9Y1tiKzQ+PjJdfDA7aD0oY1tiPj4yXSYtMiktMXwwfWlmKChnfDApPT0o
aHwwKSl7ZDEoYixoLDEsaCxoLDAsMCk7aT1hW2VdfDB9ZWxzZXtpPWZ9aWYoKGkmMSk9PTApe2Fb
ZV09KGc8PDEpKzImMjU1O2o9YisxfDA7az1nKzF8MDtsPWorZ3wwO2FbbF09ZDttPWora3wwO2Fb
bV09MDtyZXR1cm59ZWxzZXtlPWNbYis4Pj4yXXwwO2k9ZysxfDA7Y1tiKzQ+PjJdPWk7aj1lO2s9
aTtsPWorZ3wwO2FbbF09ZDttPWora3wwO2FbbV09MDtyZXR1cm59fWZ1bmN0aW9uIGRWKGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTA7Zj1iO2c9YVtm
XXwwO2lmKChnJjEpPT0wKXtoPTEwO2k9Z31lbHNle2c9Y1tiPj4yXXwwO2g9KGcmLTIpLTF8MDtp
PWcmMjU1fWc9aSYyNTU7aWYoKGcmMXwwKT09MCl7aj1nPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9
aWYoKGgtanwwKT4+PjA8ZT4+PjApe2QwKGIsaCxlLWgranwwLGosaiwwLGUsZCk7cmV0dXJuIGJ8
MH1pZigoZXwwKT09MCl7cmV0dXJuIGJ8MH1pZigoaSYxKT09MCl7az1iKzF8MH1lbHNle2s9Y1ti
Kzg+PjJdfDB9aT1rK2p8MDtrWShpfDAsZHwwLGUpfDA7ZD1qK2V8MDtpZigoYVtmXSYxKT09MCl7
YVtmXT1kPDwxJjI1NX1lbHNle2NbYis0Pj4yXT1kfWFbaytkfDBdPTA7cmV0dXJuIGJ8MH1mdW5j
dGlvbiBkVyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTA7
ZTtpZigoY1thPj4yXXwwKT09MSl7ZG97YVUoOTczNiw5NzI4KXwwO313aGlsZSgoY1thPj4yXXww
KT09MSl9aWYoKGNbYT4+Ml18MCkhPTApe2Y7cmV0dXJufWNbYT4+Ml09MTtnO2JZW2QmNTExXShi
KTtoO2NbYT4+Ml09LTE7aTticyg5NzM2KXwwO3JldHVybn1mdW5jdGlvbiBkWChhKXthPWF8MDth
PWJPKDgpfDA7ZEEoYSwzNjApO2NbYT4+Ml09MjUwNDtibChhfDAsODIwOCwzMil9ZnVuY3Rpb24g
ZFkoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wO2U9ZDtpZigoYVtlXSYxKT09
MCl7Zj1iO2NbZj4+Ml09Y1tlPj4yXTtjW2YrND4+Ml09Y1tlKzQ+PjJdO2NbZis4Pj4yXT1jW2Ur
OD4+Ml07cmV0dXJufWU9Y1tkKzg+PjJdfDA7Zj1jW2QrND4+Ml18MDtpZigoZnwwKT09LTEpe2RY
KDApfWlmKGY+Pj4wPDExKXthW2JdPWY8PDEmMjU1O2c9YisxfDB9ZWxzZXtkPWYrMTYmLTE2O2g9
a08oZCl8MDtjW2IrOD4+Ml09aDtjW2I+PjJdPWR8MTtjW2IrND4+Ml09ZjtnPWh9a1koZ3wwLGV8
MCxmKXwwO2FbZytmfDBdPTA7cmV0dXJufWZ1bmN0aW9uIGRaKGIsZCxlKXtiPWJ8MDtkPWR8MDtl
PWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wO2lmKChlfDApPT0tMSl7ZFgoMCl9aWYoZT4+PjA8MTEp
e2FbYl09ZTw8MSYyNTU7Zj1iKzF8MDtrWShmfDAsZHwwLGUpfDA7Zz1mK2V8MDthW2ddPTA7cmV0
dXJufWVsc2V7aD1lKzE2Ji0xNjtpPWtPKGgpfDA7Y1tiKzg+PjJdPWk7Y1tiPj4yXT1ofDE7Y1ti
KzQ+PjJdPWU7Zj1pO2tZKGZ8MCxkfDAsZSl8MDtnPWYrZXwwO2FbZ109MDtyZXR1cm59fWZ1bmN0
aW9uIGRfKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7aWYoKGR8MCk9
PS0xKXtkWCgwKX1pZihkPj4+MDwxMSl7YVtiXT1kPDwxJjI1NTtmPWIrMXwwfWVsc2V7Zz1kKzE2
Ji0xNjtoPWtPKGcpfDA7Y1tiKzg+PjJdPWg7Y1tiPj4yXT1nfDE7Y1tiKzQ+PjJdPWQ7Zj1ofWsk
KGZ8MCxlfDAsZHwwKTthW2YrZHwwXT0wO3JldHVybn1mdW5jdGlvbiBkJChiLGQpe2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wO2lmKChkfDApPT0tMSl7ZFgoMCl9ZT1iO2Y9YjtnPWFbZl18MDtpZigoZyYxKT09MCl7
aD0xMDtpPWd9ZWxzZXtnPWNbYj4+Ml18MDtoPShnJi0yKS0xfDA7aT1nJjI1NX1nPWkmMjU1O2lm
KChnJjF8MCk9PTApe2o9Zz4+PjF9ZWxzZXtqPWNbYis0Pj4yXXwwfWc9aj4+PjA+ZD4+PjA/ajpk
O2lmKGc+Pj4wPDExKXtrPTExfWVsc2V7az1nKzE2Ji0xNn1nPWstMXwwO2lmKChnfDApPT0oaHww
KSl7cmV0dXJufWlmKChnfDApPT0xMCl7bD1lKzF8MDttPWNbYis4Pj4yXXwwO249MTtvPTB9ZWxz
ZXtpZihnPj4+MD5oPj4+MCl7cD1rTyhrKXwwfWVsc2V7cD1rTyhrKXwwfWg9aSYxO2lmKGg8PDI0
Pj4yND09MCl7cT1lKzF8MH1lbHNle3E9Y1tiKzg+PjJdfDB9bD1wO209cTtuPWg8PDI0Pj4yNCE9
MDtvPTF9aD1pJjI1NTtpZigoaCYxfDApPT0wKXtyPWg+Pj4xfWVsc2V7cj1jW2IrND4+Ml18MH1o
PXIrMXwwO2tZKGx8MCxtfDAsaCl8MDtpZihuKXtrUyhtKX1pZihvKXtjW2I+PjJdPWt8MTtjW2Ir
ND4+Ml09ajtjW2IrOD4+Ml09bDtyZXR1cm59ZWxzZXthW2ZdPWo8PDEmMjU1O3JldHVybn19ZnVu
Y3Rpb24gZDAoYixkLGUsZixnLGgsaSxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtpPWl8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MDtpZigoLTMtZHwwKT4+PjA8ZT4+PjApe2RYKDApfWlmKChhW2JdJjEpPT0wKXtrPWIr
MXwwfWVsc2V7az1jW2IrOD4+Ml18MH1kb3tpZihkPj4+MDwyMTQ3NDgzNjMxKXtsPWUrZHwwO209
ZDw8MTtuPWw+Pj4wPG0+Pj4wP206bDtpZihuPj4+MDwxMSl7bz0xMTticmVha31vPW4rMTYmLTE2
fWVsc2V7bz0tMn19d2hpbGUoMCk7ZT1rTyhvKXwwO2lmKChnfDApIT0wKXtrWShlfDAsa3wwLGcp
fDB9aWYoKGl8MCkhPTApe249ZStnfDA7a1kobnwwLGp8MCxpKXwwfWo9Zi1ofDA7aWYoKGp8MCkh
PShnfDApKXtmPWotZ3wwO249ZSsoaStnKXwwO2w9aysoaCtnKXwwO2tZKG58MCxsfDAsZil8MH1p
ZigoZHwwKT09MTApe3A9Yis4fDA7Y1twPj4yXT1lO3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtzPWor
aXwwO3Q9Yis0fDA7Y1t0Pj4yXT1zO3U9ZStzfDA7YVt1XT0wO3JldHVybn1rUyhrKTtwPWIrOHww
O2NbcD4+Ml09ZTtxPW98MTtyPWJ8MDtjW3I+PjJdPXE7cz1qK2l8MDt0PWIrNHwwO2NbdD4+Ml09
czt1PWUrc3wwO2FbdV09MDtyZXR1cm59ZnVuY3Rpb24gZDEoYixkLGUsZixnLGgsaSl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7dmFyIGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTA7aWYoKC0zLWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09
MCl7aj1iKzF8MH1lbHNle2o9Y1tiKzg+PjJdfDB9ZG97aWYoZD4+PjA8MjE0NzQ4MzYzMSl7az1l
K2R8MDtsPWQ8PDE7bT1rPj4+MDxsPj4+MD9sOms7aWYobT4+PjA8MTEpe249MTE7YnJlYWt9bj1t
KzE2Ji0xNn1lbHNle249LTJ9fXdoaWxlKDApO2U9a08obil8MDtpZigoZ3wwKSE9MCl7a1koZXww
LGp8MCxnKXwwfW09Zi1ofDA7aWYoKG18MCkhPShnfDApKXtmPW0tZ3wwO209ZSsoaStnKXwwO2k9
aisoaCtnKXwwO2tZKG18MCxpfDAsZil8MH1pZigoZHwwKT09MTApe289Yis4fDA7Y1tvPj4yXT1l
O3A9bnwxO3E9YnwwO2NbcT4+Ml09cDtyZXR1cm59a1Moaik7bz1iKzh8MDtjW28+PjJdPWU7cD1u
fDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1mdW5jdGlvbiBkMihhLGIpe2E9YXwwO2I9YnwwO3Jl
dHVybn1mdW5jdGlvbiBkMyhhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJuIGF8MH1mdW5j
dGlvbiBkNChhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBkNShhKXthPWF8MDtyZXR1cm4gMH1m
dW5jdGlvbiBkNihhKXthPWF8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGQ3KGEsYil7YT1hfDA7Yj1i
fDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBkOChhLGIpe2E9YXwwO2I9YnwwO3JldHVybi0xfDB9ZnVu
Y3Rpb24gZDkoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm59ZnVuY3Rpb24gZWEoYSxiLGMpe2E9YXww
O2I9YnwwO2M9Y3wwO3JldHVybiBhfDB9ZnVuY3Rpb24gZWIoYSxiLGQsZSxmLGcpe2E9YXwwO2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2c9YTtjW2c+PjJdPTA7Y1tnKzQ+PjJdPTA7Zz1h
Kzh8MDtjW2c+PjJdPS0xO2NbZys0Pj4yXT0tMTtyZXR1cm59ZnVuY3Rpb24gZWMoYSxiLGQsZSl7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7ZT1pO2I9ZDtkPWk7aT1pKzE2fDA7Y1tkPj4yXT1jW2I+
PjJdO2NbZCs0Pj4yXT1jW2IrND4+Ml07Y1tkKzg+PjJdPWNbYis4Pj4yXTtjW2QrMTI+PjJdPWNb
YisxMj4+Ml07Yj1hO2NbYj4+Ml09MDtjW2IrND4+Ml09MDtiPWErOHwwO2NbYj4+Ml09LTE7Y1ti
KzQ+PjJdPS0xO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZWQoYSxiLGQsZSxmLGcpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2c9YTtjW2c+PjJdPTA7Y1tnKzQ+PjJdPTA7Zz1hKzh8
MDtjW2c+PjJdPS0xO2NbZys0Pj4yXT0tMTtyZXR1cm59ZnVuY3Rpb24gZWUoYil7Yj1ifDA7aWYo
KGFbYl0mMSk9PTApe3JldHVybn1rUyhjW2IrOD4+Ml18MCk7cmV0dXJufWZ1bmN0aW9uIGVmKGEs
Yil7YT1hfDA7Yj1ifDA7cmV0dXJuIGVnKGEsYixrbShiKXwwKXwwfWZ1bmN0aW9uIGVnKGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTA7Zj1iO2c9YVtm
XXwwO2lmKChnJjEpPT0wKXtoPTE7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9
ZyYyNTV9aWYoaD4+PjA8ZT4+PjApe2c9aSYyNTU7aWYoKGcmMXwwKT09MCl7aj1nPj4+MX1lbHNl
e2o9Y1tiKzQ+PjJdfDB9ZUEoYixoLGUtaHwwLGosMCxqLGUsZCk7cmV0dXJuIGJ8MH1pZigoaSYx
KT09MCl7az1iKzR8MH1lbHNle2s9Y1tiKzg+PjJdfDB9a28oayxkLGUpfDA7Y1trKyhlPDwyKT4+
Ml09MDtpZigoYVtmXSYxKT09MCl7YVtmXT1lPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+
PjJdPWU7cmV0dXJuIGJ8MH1yZXR1cm4gMH1mdW5jdGlvbiBlaChiLGQpe2I9YnwwO2Q9ZHwwO3Zh
ciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MDtlPWI7Zj1hW2VdfDA7aWYoKGYm
MSk9PTApe2c9KGYmMjU1KT4+PjE7aD0xfWVsc2V7Zz1jW2IrND4+Ml18MDtoPShjW2I+PjJdJi0y
KS0xfDB9aWYoKGd8MCk9PShofDApKXtlQihiLGgsMSxoLGgsMCwwKTtpPWFbZV18MH1lbHNle2k9
Zn1pZigoaSYxKT09MCl7YVtlXT0oZzw8MSkrMiYyNTU7aj1iKzR8MDtrPWcrMXwwO2w9aisoZzw8
Mil8MDtjW2w+PjJdPWQ7bT1qKyhrPDwyKXwwO2NbbT4+Ml09MDtyZXR1cm59ZWxzZXtlPWNbYis4
Pj4yXXwwO2k9ZysxfDA7Y1tiKzQ+PjJdPWk7aj1lO2s9aTtsPWorKGc8PDIpfDA7Y1tsPj4yXT1k
O209aisoazw8Mil8MDtjW20+PjJdPTA7cmV0dXJufX1mdW5jdGlvbiBlaShhKXthPWF8MDtlRChh
fDApO3JldHVybn1mdW5jdGlvbiBlaihhLGIpe2E9YXwwO2I9YnwwO2lOKGEsYisyOHwwKTtyZXR1
cm59ZnVuY3Rpb24gZWsoYSxiKXthPWF8MDtiPWJ8MDtjW2ErMjQ+PjJdPWI7Y1thKzE2Pj4yXT0o
YnwwKT09MDtjW2ErMjA+PjJdPTA7Y1thKzQ+PjJdPTQwOTg7Y1thKzEyPj4yXT0wO2NbYSs4Pj4y
XT02O2I9YSsyOHwwO2skKGErMzJ8MCwwLDQwKTtpZigoYnwwKT09MCl7cmV0dXJufWlXKGIpO3Jl
dHVybn1mdW5jdGlvbiBlbChhKXthPWF8MDtlRChhfDApO3JldHVybn1mdW5jdGlvbiBlbShhKXth
PWF8MDtjW2E+PjJdPTQyMzI7aU8oYSs0fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlbihhKXth
PWF8MDtjW2E+PjJdPTQyMzI7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBlbyhhKXthPWF8MDtj
W2E+PjJdPTQyMzI7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBlcChhKXthPWF8MDtjW2E+PjJd
PTQyMzI7aVcoYSs0fDApO2skKGErOHwwLDAsMjQpO3JldHVybn1mdW5jdGlvbiBlcShiLGQsZSl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7Zj1i
O2lmKChlfDApPD0wKXtnPTA7cmV0dXJuIGd8MH1oPWIrMTJ8MDtpPWIrMTZ8MDtqPWQ7ZD0wO3do
aWxlKDEpe2s9Y1toPj4yXXwwO2lmKGs+Pj4wPChjW2k+PjJdfDApPj4+MCl7Y1toPj4yXT1rKzE7
bD1hW2tdfDB9ZWxzZXtrPWIwW2NbKGNbZj4+Ml18MCkrNDA+PjJdJjEyN10oYil8MDtpZigoa3ww
KT09LTEpe2c9ZDttPTE4NTQ7YnJlYWt9bD1rJjI1NX1hW2pdPWw7az1kKzF8MDtpZigoa3wwKTwo
ZXwwKSl7aj1qKzF8MDtkPWt9ZWxzZXtnPWs7bT0xODU2O2JyZWFrfX1pZigobXwwKT09MTg1NCl7
cmV0dXJuIGd8MH1lbHNlIGlmKChtfDApPT0xODU2KXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0
aW9uIGVyKGEpe2E9YXwwO3ZhciBiPTAsZT0wO2lmKChiMFtjWyhjW2E+PjJdfDApKzM2Pj4yXSYx
MjddKGEpfDApPT0tMSl7Yj0tMTtyZXR1cm4gYnwwfWU9YSsxMnwwO2E9Y1tlPj4yXXwwO2NbZT4+
Ml09YSsxO2I9ZFthXXwwO3JldHVybiBifDB9ZnVuY3Rpb24gZXMoYixlLGYpe2I9YnwwO2U9ZXww
O2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2c9YjtpZigoZnwwKTw9
MCl7aD0wO3JldHVybiBofDB9aT1iKzI0fDA7aj1iKzI4fDA7az0wO2w9ZTt3aGlsZSgxKXtlPWNb
aT4+Ml18MDtpZihlPj4+MDwoY1tqPj4yXXwwKT4+PjApe209YVtsXXwwO2NbaT4+Ml09ZSsxO2Fb
ZV09bX1lbHNle2lmKChiX1tjWyhjW2c+PjJdfDApKzUyPj4yXSYzMV0oYixkW2xdfDApfDApPT0t
MSl7aD1rO249MTg2OTticmVha319bT1rKzF8MDtpZigobXwwKTwoZnwwKSl7az1tO2w9bCsxfDB9
ZWxzZXtoPW07bj0xODcxO2JyZWFrfX1pZigobnwwKT09MTg2OSl7cmV0dXJuIGh8MH1lbHNlIGlm
KChufDApPT0xODcxKXtyZXR1cm4gaHwwfXJldHVybiAwfWZ1bmN0aW9uIGV0KGEpe2E9YXwwO2Nb
YT4+Ml09NDE2MDtpTyhhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGV1KGEpe2E9YXwwO2Nb
YT4+Ml09NDE2MDtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGV2KGEpe2E9YXwwO2NbYT4+Ml09
NDE2MDtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGV3KGEpe2E9YXwwO2NbYT4+Ml09NDE2MDtp
VyhhKzR8MCk7ayQoYSs4fDAsMCwyNCk7cmV0dXJufWZ1bmN0aW9uIGV4KGIsZCxlKXtiPWJ8MDtk
PWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MDtpZihlPj4+MD4xMDczNzQxODIyKXtk
WCgwKX1pZihlPj4+MDwyKXthW2JdPWU8PDEmMjU1O2Y9Yis0fDA7Zz1rbihmLGQsZSl8MDtoPWYr
KGU8PDIpfDA7Y1toPj4yXT0wO3JldHVybn1lbHNle2k9ZSs0Ji00O2o9a08oaTw8Mil8MDtjW2Ir
OD4+Ml09ajtjW2I+PjJdPWl8MTtjW2IrND4+Ml09ZTtmPWo7Zz1rbihmLGQsZSl8MDtoPWYrKGU8
PDIpfDA7Y1toPj4yXT0wO3JldHVybn19ZnVuY3Rpb24gZXkoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9
ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wO2lmKGQ+Pj4wPjEwNzM3NDE4MjIpe2RYKDApfWlm
KGQ+Pj4wPDIpe2FbYl09ZDw8MSYyNTU7Zj1iKzR8MDtnPWtwKGYsZSxkKXwwO2g9ZisoZDw8Mil8
MDtjW2g+PjJdPTA7cmV0dXJufWVsc2V7aT1kKzQmLTQ7aj1rTyhpPDwyKXwwO2NbYis4Pj4yXT1q
O2NbYj4+Ml09aXwxO2NbYis0Pj4yXT1kO2Y9ajtnPWtwKGYsZSxkKXwwO2g9ZisoZDw8Mil8MDtj
W2g+PjJdPTA7cmV0dXJufX1mdW5jdGlvbiBleihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0w
LGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aWYoZD4+PjA+MTA3
Mzc0MTgyMil7ZFgoMCl9ZT1iO2Y9YVtlXXwwO2lmKChmJjEpPT0wKXtnPTE7aD1mfWVsc2V7Zj1j
W2I+PjJdfDA7Zz0oZiYtMiktMXwwO2g9ZiYyNTV9Zj1oJjI1NTtpZigoZiYxfDApPT0wKXtpPWY+
Pj4xfWVsc2V7aT1jW2IrND4+Ml18MH1mPWk+Pj4wPmQ+Pj4wP2k6ZDtpZihmPj4+MDwyKXtqPTJ9
ZWxzZXtqPWYrNCYtNH1mPWotMXwwO2lmKChmfDApPT0oZ3wwKSl7cmV0dXJufWlmKChmfDApPT0x
KXtrPWIrNHwwO2w9Y1tiKzg+PjJdfDA7bT0xO249MH1lbHNle2Q9ajw8MjtpZihmPj4+MD5nPj4+
MCl7bz1rTyhkKXwwfWVsc2V7bz1rTyhkKXwwfWQ9aCYxO2lmKGQ8PDI0Pj4yND09MCl7cD1iKzR8
MH1lbHNle3A9Y1tiKzg+PjJdfDB9az1vO2w9cDttPWQ8PDI0Pj4yNCE9MDtuPTF9ZD1rO2s9aCYy
NTU7aWYoKGsmMXwwKT09MCl7cT1rPj4+MX1lbHNle3E9Y1tiKzQ+PjJdfDB9a24oZCxsLHErMXww
KXwwO2lmKG0pe2tTKGwpfWlmKG4pe2NbYj4+Ml09anwxO2NbYis0Pj4yXT1pO2NbYis4Pj4yXT1k
O3JldHVybn1lbHNle2FbZV09aTw8MSYyNTU7cmV0dXJufX1mdW5jdGlvbiBlQShiLGQsZSxmLGcs
aCxpLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO3Zh
ciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2lmKCgxMDczNzQx
ODIxLWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09MCl7az1iKzR8MH1lbHNle2s9
Y1tiKzg+PjJdfDB9ZG97aWYoZD4+PjA8NTM2ODcwODk1KXtsPWUrZHwwO209ZDw8MTtuPWw+Pj4w
PG0+Pj4wP206bDtpZihuPj4+MDwyKXtvPTI7YnJlYWt9bz1uKzQmLTR9ZWxzZXtvPTEwNzM3NDE4
MjJ9fXdoaWxlKDApO2U9a08obzw8Mil8MDtpZigoZ3wwKSE9MCl7a24oZSxrLGcpfDB9aWYoKGl8
MCkhPTApe249ZSsoZzw8Mil8MDtrbihuLGosaSl8MH1qPWYtaHwwO2lmKChqfDApIT0oZ3wwKSl7
Zj1qLWd8MDtuPWUrKGkrZzw8Mil8MDtsPWsrKGgrZzw8Mil8MDtrbihuLGwsZil8MH1pZigoZHww
KT09MSl7cD1iKzh8MDtjW3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1i
KzR8MDtjW3Q+PjJdPXM7dT1lKyhzPDwyKXwwO2NbdT4+Ml09MDtyZXR1cm59a1Moayk7cD1iKzh8
MDtjW3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1iKzR8MDtjW3Q+PjJd
PXM7dT1lKyhzPDwyKXwwO2NbdT4+Ml09MDtyZXR1cm59ZnVuY3Rpb24gZUIoYixkLGUsZixnLGgs
aSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7dmFyIGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aWYoKDEwNzM3NDE4MjEtZHwwKT4+PjA8ZT4+PjApe2RY
KDApfWlmKChhW2JdJjEpPT0wKXtqPWIrNHwwfWVsc2V7aj1jW2IrOD4+Ml18MH1kb3tpZihkPj4+
MDw1MzY4NzA4OTUpe2s9ZStkfDA7bD1kPDwxO209az4+PjA8bD4+PjA/bDprO2lmKG0+Pj4wPDIp
e249MjticmVha31uPW0rNCYtNH1lbHNle249MTA3Mzc0MTgyMn19d2hpbGUoMCk7ZT1rTyhuPDwy
KXwwO2lmKChnfDApIT0wKXtrbihlLGosZyl8MH1tPWYtaHwwO2lmKChtfDApIT0oZ3wwKSl7Zj1t
LWd8MDttPWUrKGkrZzw8Mil8MDtpPWorKGgrZzw8Mil8MDtrbihtLGksZil8MH1pZigoZHwwKT09
MSl7bz1iKzh8MDtjW28+PjJdPWU7cD1ufDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1rUyhqKTtv
PWIrOHwwO2Nbbz4+Ml09ZTtwPW58MTtxPWJ8MDtjW3E+PjJdPXA7cmV0dXJufWZ1bmN0aW9uIGVD
KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2U9aTtpPWkrOHwwO2Y9ZXwwO2c9KGNb
YisyND4+Ml18MCk9PTA7aWYoZyl7Y1tiKzE2Pj4yXT1kfDF9ZWxzZXtjW2IrMTY+PjJdPWR9aWYo
KChnJjF8ZCkmY1tiKzIwPj4yXXwwKT09MCl7aT1lO3JldHVybn1lPWJPKDE2KXwwO2Rve2lmKChh
WzE2MjcyXXwwKT09MCl7aWYoKGJjKDE2MjcyKXwwKT09MCl7YnJlYWt9ZGooMTE4NDApO2NbMjk2
MF09NGUzO2EkKDY2LDExODQwLHV8MCl8MH19d2hpbGUoMCk7Yj1rMygxMTg0MCwwLDMyKXwwO2Q9
SztjW2Y+PjJdPWImMHwxO2NbZis0Pj4yXT1kfDA7ZE0oZSxmLDEzMDQpO2NbZT4+Ml09MzE4NDti
bChlfDAsODc1MiwyOCl9ZnVuY3Rpb24gZUQoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MDtj
W2E+PjJdPTMxNjA7Yj1jW2ErNDA+PjJdfDA7ZD1hKzMyfDA7ZT1hKzM2fDA7aWYoKGJ8MCkhPTAp
e2Y9Yjtkb3tmPWYtMXwwO2IzW2NbKGNbZD4+Ml18MCkrKGY8PDIpPj4yXSY3XSgwLGEsY1soY1tl
Pj4yXXwwKSsoZjw8Mik+PjJdfDApO313aGlsZSgoZnwwKSE9MCl9aU8oYSsyOHwwKTtrSyhjW2Q+
PjJdfDApO2tLKGNbZT4+Ml18MCk7a0soY1thKzQ4Pj4yXXwwKTtrSyhjW2ErNjA+PjJdfDApO3Jl
dHVybn1mdW5jdGlvbiBlRShhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBlRihhKXthPWF8MDty
ZXR1cm4gMH1mdW5jdGlvbiBlRyhhKXthPWF8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGVIKGEsYil7
YT1hfDA7Yj1ifDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBlSShhLGIpe2E9YXwwO2I9YnwwO3JldHVy
bi0xfDB9ZnVuY3Rpb24gZUooYSl7YT1hfDA7cmV0dXJuIDE0MTZ8MH1mdW5jdGlvbiBlSyhhLGIs
ZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtlPWk7Yj1kO2Q9aTtpPWkrMTZ8MDtjW2Q+PjJd
PWNbYj4+Ml07Y1tkKzQ+PjJdPWNbYis0Pj4yXTtjW2QrOD4+Ml09Y1tiKzg+PjJdO2NbZCsxMj4+
Ml09Y1tiKzEyPj4yXTtiPWE7Y1tiPj4yXT0wO2NbYis0Pj4yXT0wO2I9YSs4fDA7Y1tiPj4yXT0t
MTtjW2IrND4+Ml09LTE7aT1lO3JldHVybn1mdW5jdGlvbiBlTChiLGMsZCxlLGYpe2I9YnwwO2M9
Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtMMjQzNzpk
b3tpZigoZXwwKT09KGZ8MCkpe2c9Y31lbHNle2I9YztoPWU7d2hpbGUoMSl7aWYoKGJ8MCk9PShk
fDApKXtpPS0xO2o9MTk5MDticmVha31rPWFbYl18MDtsPWFbaF18MDtpZihrPDwyND4+MjQ8bDw8
MjQ+PjI0KXtpPS0xO2o9MTk5MzticmVha31pZihsPDwyND4+MjQ8azw8MjQ+PjI0KXtpPTE7aj0x
OTkyO2JyZWFrfWs9YisxfDA7bD1oKzF8MDtpZigobHwwKT09KGZ8MCkpe2c9azticmVhayBMMjQz
N31lbHNle2I9aztoPWx9fWlmKChqfDApPT0xOTkzKXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9
PTE5OTIpe3JldHVybiBpfDB9ZWxzZSBpZigoanwwKT09MTk5MCl7cmV0dXJuIGl8MH19fXdoaWxl
KDApO2k9KGd8MCkhPShkfDApfDA7cmV0dXJuIGl8MH1mdW5jdGlvbiBlTShiLGMsZCl7Yj1ifDA7
Yz1jfDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MDtpZigoY3wwKT09KGR8MCkpe2U9MDtyZXR1
cm4gZXwwfWVsc2V7Zj1jO2c9MH13aGlsZSgxKXtjPShhW2ZdfDApKyhnPDw0KXwwO2I9YyYtMjY4
NDM1NDU2O2g9KGI+Pj4yNHxiKV5jO2M9ZisxfDA7aWYoKGN8MCk9PShkfDApKXtlPWg7YnJlYWt9
ZWxzZXtmPWM7Zz1ofX1yZXR1cm4gZXwwfWZ1bmN0aW9uIGVOKGEsYixkKXthPWF8MDtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWE7aWYoKGR8MCk8PTAp
e2Y9MDtyZXR1cm4gZnwwfWc9YSsxMnwwO2g9YSsxNnwwO2k9YjtiPTA7d2hpbGUoMSl7aj1jW2c+
PjJdfDA7aWYoaj4+PjA8KGNbaD4+Ml18MCk+Pj4wKXtjW2c+PjJdPWorNDtrPWNbaj4+Ml18MH1l
bHNle2o9YjBbY1soY1tlPj4yXXwwKSs0MD4+Ml0mMTI3XShhKXwwO2lmKChqfDApPT0tMSl7Zj1i
O2w9MjAwNzticmVha31lbHNle2s9an19Y1tpPj4yXT1rO2o9YisxfDA7aWYoKGp8MCk8KGR8MCkp
e2k9aSs0fDA7Yj1qfWVsc2V7Zj1qO2w9MjAwODticmVha319aWYoKGx8MCk9PTIwMDgpe3JldHVy
biBmfDB9ZWxzZSBpZigobHwwKT09MjAwNyl7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBl
TyhhKXthPWF8MDt2YXIgYj0wLGQ9MDtpZigoYjBbY1soY1thPj4yXXwwKSszNj4+Ml0mMTI3XShh
KXwwKT09LTEpe2I9LTE7cmV0dXJuIGJ8MH1kPWErMTJ8MDthPWNbZD4+Ml18MDtjW2Q+PjJdPWEr
NDtiPWNbYT4+Ml18MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGVQKGEsYixkKXthPWF8MDtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWE7aWYoKGR8MCk8PTAp
e2Y9MDtyZXR1cm4gZnwwfWc9YSsyNHwwO2g9YSsyOHwwO2k9MDtqPWI7d2hpbGUoMSl7Yj1jW2c+
PjJdfDA7aWYoYj4+PjA8KGNbaD4+Ml18MCk+Pj4wKXtrPWNbaj4+Ml18MDtjW2c+PjJdPWIrNDtj
W2I+PjJdPWt9ZWxzZXtpZigoYl9bY1soY1tlPj4yXXwwKSs1Mj4+Ml0mMzFdKGEsY1tqPj4yXXww
KXwwKT09LTEpe2Y9aTtsPTIwMjM7YnJlYWt9fWs9aSsxfDA7aWYoKGt8MCk8KGR8MCkpe2k9aztq
PWorNHwwfWVsc2V7Zj1rO2w9MjAyMjticmVha319aWYoKGx8MCk9PTIwMjMpe3JldHVybiBmfDB9
ZWxzZSBpZigobHwwKT09MjAyMil7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBlUShhKXth
PWF8MDtlRChhKzh8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVSKGEpe2E9YXwwO2VEKGErOHww
KTtyZXR1cm59ZnVuY3Rpb24gZVMoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4y
XXwwKS0xMj4+Ml18MDtlRChiKyhkKzgpfDApO2tTKGIrZHwwKTtyZXR1cm59ZnVuY3Rpb24gZVQo
YSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJdfDApKzgpfDApO3JldHVybn1mdW5j
dGlvbiBlVShhKXthPWF8MDtlRChhKzh8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVWKGEpe2E9
YXwwO2VEKGErOHwwKTtyZXR1cm59ZnVuY3Rpb24gZVcoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1h
O2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhkKzgpfDApO2tTKGIrZHwwKTtyZXR1cm59
ZnVuY3Rpb24gZVgoYSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJdfDApKzgpfDAp
O3JldHVybn1mdW5jdGlvbiBlWShhKXthPWF8MDtlRChhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0
aW9uIGVaKGEpe2E9YXwwO2VEKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZV8oYSl7YT1hfDA7dmFy
IGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhkKzQpfDApO2tTKGIr
ZHwwKTtyZXR1cm59ZnVuY3Rpb24gZSQoYSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+
PjJdfDApKzQpfDApO3JldHVybn1mdW5jdGlvbiBlMChhKXthPWF8MDtlRChhKzR8MCk7a1MoYSk7
cmV0dXJufWZ1bmN0aW9uIGUxKGEpe2E9YXwwO2VEKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZTIo
YSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhk
KzQpfDApO2tTKGIrZHwwKTtyZXR1cm59ZnVuY3Rpb24gZTMoYSl7YT1hfDA7ZUQoYSsoKGNbKGNb
YT4+Ml18MCktMTI+PjJdfDApKzQpfDApO3JldHVybn1mdW5jdGlvbiBlNChhLGIsYyl7YT1hfDA7
Yj1ifDA7Yz1jfDA7aWYoKGN8MCk9PTEpe2RaKGEsMTY0MCwzNSk7cmV0dXJufWVsc2V7ZEsoYSxi
fDAsYyk7cmV0dXJufX1mdW5jdGlvbiBlNShhKXthPWF8MDtkZihhfDApO3JldHVybn1mdW5jdGlv
biBlNihhKXthPWF8MDtkTyhhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlNyhhKXthPWF8MDtk
TyhhfDApO3JldHVybn1mdW5jdGlvbiBlOChhKXthPWF8MDtlRChhKTtrUyhhKTtyZXR1cm59ZnVu
Y3Rpb24gZTkoYSl7YT1hfDA7ZGYoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZmEoYSl7YT1h
fDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZmIoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1
cm59ZnVuY3Rpb24gZmMoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZmQoYixkLGUs
Zil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTA7ZD1lO2c9
Zi1kfDA7ZG97aWYoKGd8MCk9PS0xKXtkWChiKTtoPTIwNTh9ZWxzZXtpZihnPj4+MD49MTEpe2g9
MjA1ODticmVha31hW2JdPWc8PDEmMjU1O2k9YisxfDB9fXdoaWxlKDApO2lmKChofDApPT0yMDU4
KXtoPWcrMTYmLTE2O2o9a08oaCl8MDtjW2IrOD4+Ml09ajtjW2I+PjJdPWh8MTtjW2IrND4+Ml09
ZztpPWp9aWYoKGV8MCk9PShmfDApKXtrPWk7YVtrXT0wO3JldHVybn1qPWYrKC1kfDApfDA7ZD1p
O2c9ZTt3aGlsZSgxKXthW2RdPWFbZ118MDtlPWcrMXwwO2lmKChlfDApPT0oZnwwKSl7YnJlYWt9
ZWxzZXtkPWQrMXwwO2c9ZX19az1pK2p8MDthW2tdPTA7cmV0dXJufWZ1bmN0aW9uIGZlKGEpe2E9
YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGZmKGEpe2E9YXwwO2RlKGF8MCk7cmV0
dXJufWZ1bmN0aW9uIGZnKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTA7
ZD1pO2k9aSs4fDA7ZT1kfDA7Zj1iO2c9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtoPWI7aWYoKGNb
aCsoZysyNCk+PjJdfDApPT0wKXtpPWQ7cmV0dXJuIGJ8MH1qPWV8MDthW2pdPTA7Y1tlKzQ+PjJd
PWI7ZG97aWYoKGNbaCsoZysxNik+PjJdfDApPT0wKXtrPWNbaCsoZys3Mik+PjJdfDA7aWYoKGt8
MCkhPTApe2ZnKGspfDB9YVtqXT0xO2s9Y1toKygoY1soY1tmPj4yXXwwKS0xMj4+Ml18MCkrMjQp
Pj4yXXwwO2lmKChiMFtjWyhjW2s+PjJdfDApKzI0Pj4yXSYxMjddKGspfDApIT0tMSl7YnJlYWt9
az1jWyhjW2Y+PjJdfDApLTEyPj4yXXwwO2VDKGgra3wwLGNbaCsoaysxNik+PjJdfDEpfX13aGls
ZSgwKTtmaShlKTtpPWQ7cmV0dXJuIGJ8MH1mdW5jdGlvbiBmaChiKXtiPWJ8MDt2YXIgZD0wLGU9
MCxmPTAsZz0wLGg9MCxqPTAsaz0wO2Q9aTtpPWkrOHwwO2U9ZHwwO2Y9YjtnPWNbKGNbZj4+Ml18
MCktMTI+PjJdfDA7aD1iO2lmKChjW2grKGcrMjQpPj4yXXwwKT09MCl7aT1kO3JldHVybiBifDB9
aj1lfDA7YVtqXT0wO2NbZSs0Pj4yXT1iO2Rve2lmKChjW2grKGcrMTYpPj4yXXwwKT09MCl7az1j
W2grKGcrNzIpPj4yXXwwO2lmKChrfDApIT0wKXtmaChrKXwwfWFbal09MTtrPWNbaCsoKGNbKGNb
Zj4+Ml18MCktMTI+PjJdfDApKzI0KT4+Ml18MDtpZigoYjBbY1soY1trPj4yXXwwKSsyND4+Ml0m
MTI3XShrKXwwKSE9LTEpe2JyZWFrfWs9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtlQyhoK2t8MCxj
W2grKGsrMTYpPj4yXXwxKX19d2hpbGUoMCk7ZmooZSk7aT1kO3JldHVybiBifDB9ZnVuY3Rpb24g
ZmkoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2I9YSs0fDA7YT1jW2I+PjJdfDA7ZD1jWyhjW2E+
PjJdfDApLTEyPj4yXXwwO2U9YTtpZigoY1tlKyhkKzI0KT4+Ml18MCk9PTApe3JldHVybn1pZigo
Y1tlKyhkKzE2KT4+Ml18MCkhPTApe3JldHVybn1pZigoY1tlKyhkKzQpPj4yXSY4MTkyfDApPT0w
KXtyZXR1cm59aWYoYmgoKXwwKXtyZXR1cm59ZD1jW2I+PjJdfDA7ZT1jW2QrKChjWyhjW2Q+PjJd
fDApLTEyPj4yXXwwKSsyNCk+PjJdfDA7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10o
ZSl8MCkhPS0xKXtyZXR1cm59ZT1jW2I+PjJdfDA7Yj1jWyhjW2U+PjJdfDApLTEyPj4yXXwwO2Q9
ZTtlQyhkK2J8MCxjW2QrKGIrMTYpPj4yXXwxKTtyZXR1cm59ZnVuY3Rpb24gZmooYSl7YT1hfDA7
dmFyIGI9MCxkPTAsZT0wO2I9YSs0fDA7YT1jW2I+PjJdfDA7ZD1jWyhjW2E+PjJdfDApLTEyPj4y
XXwwO2U9YTtpZigoY1tlKyhkKzI0KT4+Ml18MCk9PTApe3JldHVybn1pZigoY1tlKyhkKzE2KT4+
Ml18MCkhPTApe3JldHVybn1pZigoY1tlKyhkKzQpPj4yXSY4MTkyfDApPT0wKXtyZXR1cm59aWYo
YmgoKXwwKXtyZXR1cm59ZD1jW2I+PjJdfDA7ZT1jW2QrKChjWyhjW2Q+PjJdfDApLTEyPj4yXXww
KSsyNCk+PjJdfDA7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZSl8MCkhPS0xKXty
ZXR1cm59ZT1jW2I+PjJdfDA7Yj1jWyhjW2U+PjJdfDApLTEyPj4yXXwwO2Q9ZTtlQyhkK2J8MCxj
W2QrKGIrMTYpPj4yXXwxKTtyZXR1cm59ZnVuY3Rpb24gZmsoYSxiLGQsZSxmKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7TDI1OTY6ZG97
aWYoKGV8MCk9PShmfDApKXtnPWJ9ZWxzZXthPWI7aD1lO3doaWxlKDEpe2lmKChhfDApPT0oZHww
KSl7aT0tMTtqPTIxNDc7YnJlYWt9az1jW2E+PjJdfDA7bD1jW2g+PjJdfDA7aWYoKGt8MCk8KGx8
MCkpe2k9LTE7aj0yMTUwO2JyZWFrfWlmKChsfDApPChrfDApKXtpPTE7aj0yMTQ4O2JyZWFrfWs9
YSs0fDA7bD1oKzR8MDtpZigobHwwKT09KGZ8MCkpe2c9azticmVhayBMMjU5Nn1lbHNle2E9azto
PWx9fWlmKChqfDApPT0yMTQ4KXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9PTIxNDcpe3JldHVy
biBpfDB9ZWxzZSBpZigoanwwKT09MjE1MCl7cmV0dXJuIGl8MH19fXdoaWxlKDApO2k9KGd8MCkh
PShkfDApfDA7cmV0dXJuIGl8MH1mdW5jdGlvbiBmbChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7
dmFyIGU9MCxmPTAsZz0wLGg9MDtpZigoYnwwKT09KGR8MCkpe2U9MDtyZXR1cm4gZXwwfWVsc2V7
Zj1iO2c9MH13aGlsZSgxKXtiPShjW2Y+PjJdfDApKyhnPDw0KXwwO2E9YiYtMjY4NDM1NDU2O2g9
KGE+Pj4yNHxhKV5iO2I9Zis0fDA7aWYoKGJ8MCk9PShkfDApKXtlPWg7YnJlYWt9ZWxzZXtmPWI7
Zz1ofX1yZXR1cm4gZXwwfWZ1bmN0aW9uIGZtKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wO2Q9ZTtnPWYtZHwwO2g9Zz4+MjtpZihoPj4+MD4x
MDczNzQxODIyKXtkWChiKX1pZihoPj4+MDwyKXthW2JdPWc+Pj4xJjI1NTtpPWIrNHwwfWVsc2V7
Zz1oKzQmLTQ7aj1rTyhnPDwyKXwwO2NbYis4Pj4yXT1qO2NbYj4+Ml09Z3wxO2NbYis0Pj4yXT1o
O2k9an1pZigoZXwwKT09KGZ8MCkpe2s9aTtjW2s+PjJdPTA7cmV0dXJufWo9KGYtNCsoLWR8MCl8
MCk+Pj4yO2Q9aTtoPWU7d2hpbGUoMSl7Y1tkPj4yXT1jW2g+PjJdO2U9aCs0fDA7aWYoKGV8MCk9
PShmfDApKXticmVha31lbHNle2Q9ZCs0fDA7aD1lfX1rPWkrKGorMTw8Mil8MDtjW2s+PjJdPTA7
cmV0dXJufWZ1bmN0aW9uIGZuKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGZvKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZwKGIsZCxlLGYsZyxoLGope2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2s9
aTtpPWkrMTEyfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTts
PWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209aysxNnww
O249ayszMnwwO289ays0MHwwO3A9ays0OHwwO3E9ays1NnwwO3I9ays2NHwwO3M9ays3MnwwO3Q9
ays4MHwwO3U9aysxMDR8MDtpZigoY1tnKzQ+PjJdJjF8MCk9PTApe2Nbbj4+Ml09LTE7dj1jWyhj
W2Q+PjJdfDApKzE2Pj4yXXwwO3c9ZXwwO2NbcD4+Ml09Y1t3Pj4yXTtjW3E+PjJdPWNbZj4+Ml07
YlhbdiYxMjddKG8sZCxwLHEsZyxoLG4pO3E9Y1tvPj4yXXwwO2Nbdz4+Ml09cTtzd2l0Y2goY1tu
Pj4yXXwwKXtjYXNlIDE6e2Fbal09MTticmVha307Y2FzZSAwOnthW2pdPTA7YnJlYWt9O2RlZmF1
bHQ6e2Fbal09MTtjW2g+PjJdPTR9fWNbYj4+Ml09cTtpPWs7cmV0dXJufWVqKHIsZyk7cT1yfDA7
cj1jW3E+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW20+PjJdPTE1Njk2O2NbbSs0Pj4yXT0x
MjtjW20rOD4+Ml09MDtkVygxNTY5NixtLDk2KX1tPShjWzM5MjVdfDApLTF8MDtuPWNbcis4Pj4y
XXwwO2Rve2lmKChjW3IrMTI+PjJdfDApLW4+PjI+Pj4wPm0+Pj4wKXt3PWNbbisobTw8Mik+PjJd
fDA7aWYoKHd8MCk9PTApe2JyZWFrfW89dzt3PWNbcT4+Ml18MDtkeih3KXwwO2VqKHMsZyk7dz1z
fDA7cD1jW3c+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW2w+PjJdPTE1MzEyO2NbbCs0Pj4y
XT0xMjtjW2wrOD4+Ml09MDtkVygxNTMxMixsLDk2KX1kPShjWzM4MjldfDApLTF8MDt2PWNbcCs4
Pj4yXXwwO2Rve2lmKChjW3ArMTI+PjJdfDApLXY+PjI+Pj4wPmQ+Pj4wKXt4PWNbdisoZDw8Mik+
PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDt6PWNbdz4+Ml18MDtkeih6KXwwO3o9dHwwO0E9
eDtiWltjWyhjW0E+PjJdfDApKzI0Pj4yXSYxMjddKHoseSk7YlpbY1soY1tBPj4yXXwwKSsyOD4+
Ml0mMTI3XSh0KzEyfDAseSk7Y1t1Pj4yXT1jW2Y+PjJdO2Fbal09KGZxKGUsdSx6LHQrMjR8MCxv
LGgsMSl8MCk9PSh6fDApfDA7Y1tiPj4yXT1jW2U+PjJdO2RQKHQrMTJ8MCk7ZFAodHwwKTtpPWs7
cmV0dXJufX13aGlsZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUo
MCk7az1iTyg0KXwwO2txKGspO2JsKGt8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZnEoYixlLGYsZyxo
LGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0w
LFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0w
O2w9aTtpPWkrMTA0fDA7bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4y
XTttPShnLWZ8MCkvMTJ8MDtuPWx8MDtkb3tpZihtPj4+MD4xMDApe289a0oobSl8MDtpZigob3ww
KSE9MCl7cD1vO3E9bzticmVha31rWCgpO3A9MDtxPTB9ZWxzZXtwPW47cT0wfX13aGlsZSgwKTtu
PShmfDApPT0oZ3wwKTtpZihuKXtyPW07cz0wfWVsc2V7bz1tO209MDt0PXA7dT1mO3doaWxlKDEp
e3Y9ZFt1XXwwO2lmKCh2JjF8MCk9PTApe3c9dj4+PjF9ZWxzZXt3PWNbdSs0Pj4yXXwwfWlmKCh3
fDApPT0wKXthW3RdPTI7eD1tKzF8MDt5PW8tMXwwfWVsc2V7YVt0XT0xO3g9bTt5PW99dj11KzEy
fDA7aWYoKHZ8MCk9PShnfDApKXtyPXk7cz14O2JyZWFrfWVsc2V7bz15O209eDt0PXQrMXwwO3U9
dn19fXU9YnwwO2I9ZXwwO2U9aDt0PTA7eD1zO3M9cjt3aGlsZSgxKXtyPWNbdT4+Ml18MDtkb3tp
ZigocnwwKT09MCl7ej0wfWVsc2V7aWYoKGNbcisxMj4+Ml18MCkhPShjW3IrMTY+PjJdfDApKXt6
PXI7YnJlYWt9aWYoKGIwW2NbKGNbcj4+Ml18MCkrMzY+PjJdJjEyN10ocil8MCk9PS0xKXtjW3U+
PjJdPTA7ej0wO2JyZWFrfWVsc2V7ej1jW3U+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtyPSh6fDAp
PT0wO209Y1tiPj4yXXwwO2lmKChtfDApPT0wKXtBPXo7Qj0wfWVsc2V7ZG97aWYoKGNbbSsxMj4+
Ml18MCk9PShjW20rMTY+PjJdfDApKXtpZigoYjBbY1soY1ttPj4yXXwwKSszNj4+Ml0mMTI3XSht
KXwwKSE9LTEpe0M9bTticmVha31jW2I+PjJdPTA7Qz0wfWVsc2V7Qz1tfX13aGlsZSgwKTtBPWNb
dT4+Ml18MDtCPUN9RD0oQnwwKT09MDtpZighKChyXkQpJihzfDApIT0wKSl7YnJlYWt9bT1jW0Er
MTI+PjJdfDA7aWYoKG18MCk9PShjW0ErMTY+PjJdfDApKXtFPShiMFtjWyhjW0E+PjJdfDApKzM2
Pj4yXSYxMjddKEEpfDApJjI1NX1lbHNle0U9YVttXXwwfWlmKGspe0Y9RX1lbHNle0Y9Yl9bY1so
Y1tlPj4yXXwwKSsxMj4+Ml0mMzFdKGgsRSl8MH1kb3tpZihuKXtHPXg7SD1zfWVsc2V7bT10KzF8
MDtMMjcwNzpkb3tpZihrKXt5PXM7bz14O3c9cDt2PTA7ST1mO3doaWxlKDEpe2Rve2lmKChhW3dd
fDApPT0xKXtKPUk7aWYoKGFbSl0mMSk9PTApe0s9SSsxfDB9ZWxzZXtLPWNbSSs4Pj4yXXwwfWlm
KEY8PDI0Pj4yNCE9KGFbSyt0fDBdfDApKXthW3ddPTA7TD12O009bztOPXktMXwwO2JyZWFrfU89
ZFtKXXwwO2lmKChPJjF8MCk9PTApe1A9Tz4+PjF9ZWxzZXtQPWNbSSs0Pj4yXXwwfWlmKChQfDAp
IT0obXwwKSl7TD0xO009bztOPXk7YnJlYWt9YVt3XT0yO0w9MTtNPW8rMXwwO049eS0xfDB9ZWxz
ZXtMPXY7TT1vO049eX19d2hpbGUoMCk7Tz1JKzEyfDA7aWYoKE98MCk9PShnfDApKXtRPU47Uj1N
O1M9TDticmVhayBMMjcwN315PU47bz1NO3c9dysxfDA7dj1MO0k9T319ZWxzZXtJPXM7dj14O3c9
cDtvPTA7eT1mO3doaWxlKDEpe2Rve2lmKChhW3ddfDApPT0xKXtPPXk7aWYoKGFbT10mMSk9PTAp
e1Q9eSsxfDB9ZWxzZXtUPWNbeSs4Pj4yXXwwfWlmKEY8PDI0Pj4yNCE9KGJfW2NbKGNbZT4+Ml18
MCkrMTI+PjJdJjMxXShoLGFbVCt0fDBdfDApfDApPDwyND4+MjQpe2Fbd109MDtVPW87Vj12O1c9
SS0xfDA7YnJlYWt9Sj1kW09dfDA7aWYoKEomMXwwKT09MCl7WD1KPj4+MX1lbHNle1g9Y1t5KzQ+
PjJdfDB9aWYoKFh8MCkhPShtfDApKXtVPTE7Vj12O1c9STticmVha31hW3ddPTI7VT0xO1Y9disx
fDA7Vz1JLTF8MH1lbHNle1U9bztWPXY7Vz1JfX13aGlsZSgwKTtKPXkrMTJ8MDtpZigoSnwwKT09
KGd8MCkpe1E9VztSPVY7Uz1VO2JyZWFrIEwyNzA3fUk9Vzt2PVY7dz13KzF8MDtvPVU7eT1KfX19
d2hpbGUoMCk7aWYoIVMpe0c9UjtIPVE7YnJlYWt9bT1jW3U+PjJdfDA7eT1tKzEyfDA7bz1jW3k+
PjJdfDA7aWYoKG98MCk9PShjW20rMTY+PjJdfDApKXt3PWNbKGNbbT4+Ml18MCkrNDA+PjJdfDA7
YjBbdyYxMjddKG0pfDB9ZWxzZXtjW3k+PjJdPW8rMX1pZigoUitRfDApPj4+MDwyfG4pe0c9UjtI
PVE7YnJlYWt9bz10KzF8MDt5PVI7bT1wO3c9Zjt3aGlsZSgxKXtkb3tpZigoYVttXXwwKT09Mil7
dj1kW3ddfDA7aWYoKHYmMXwwKT09MCl7WT12Pj4+MX1lbHNle1k9Y1t3KzQ+PjJdfDB9aWYoKFl8
MCk9PShvfDApKXtaPXk7YnJlYWt9YVttXT0wO1o9eS0xfDB9ZWxzZXtaPXl9fXdoaWxlKDApO3Y9
dysxMnwwO2lmKCh2fDApPT0oZ3wwKSl7Rz1aO0g9UTticmVha31lbHNle3k9WjttPW0rMXwwO3c9
dn19fX13aGlsZSgwKTt0PXQrMXwwO3g9RztzPUh9ZG97aWYoKEF8MCk9PTApe189MH1lbHNle2lm
KChjW0ErMTI+PjJdfDApIT0oY1tBKzE2Pj4yXXwwKSl7Xz1BO2JyZWFrfWlmKChiMFtjWyhjW0E+
PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApPT0tMSl7Y1t1Pj4yXT0wO189MDticmVha31lbHNle189
Y1t1Pj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7dT0oX3wwKT09MDtkb3tpZihEKXskPTIyOTN9ZWxz
ZXtpZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe2lmKHUpe2JyZWFrfWVsc2V7JD0y
Mjk1O2JyZWFrfX1pZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKT09LTEpe2Nb
Yj4+Ml09MDskPTIyOTM7YnJlYWt9ZWxzZXtpZih1XihCfDApPT0wKXticmVha31lbHNleyQ9MjI5
NTticmVha319fX13aGlsZSgwKTtpZigoJHwwKT09MjI5Myl7aWYodSl7JD0yMjk1fX1pZigoJHww
KT09MjI5NSl7Y1tqPj4yXT1jW2o+PjJdfDJ9TDI3ODY6ZG97aWYobil7JD0yMzAwfWVsc2V7dT1m
O0I9cDt3aGlsZSgxKXtpZigoYVtCXXwwKT09Mil7YWE9dTticmVhayBMMjc4Nn1iPXUrMTJ8MDtp
ZigoYnwwKT09KGd8MCkpeyQ9MjMwMDticmVhayBMMjc4Nn11PWI7Qj1CKzF8MH19fXdoaWxlKDAp
O2lmKCgkfDApPT0yMzAwKXtjW2o+PjJdPWNbaj4+Ml18NDthYT1nfWlmKChxfDApPT0wKXtpPWw7
cmV0dXJuIGFhfDB9a0socSk7aT1sO3JldHVybiBhYXwwfWZ1bmN0aW9uIGZyKGIsZSxmLGcsaCxq
LGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAs
Qj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQ
PTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4y
XT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtwPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA2NDp7dD04O2JyZWFrfTtj
YXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8
MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTAp
e3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXww
O3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58
MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMjgwOTp3aGlsZSgxKXtkb3tpZigo
d3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3crMTY+PjJdfDApKXtCPXc7
YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MCkhPS0xKXtCPXc7YnJl
YWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNbZj4+Ml18MDtkb3tpZigo
RHwwKT09MCl7RT0yMzI3fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShjW0QrMTY+PjJdfDApKXtp
ZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsgTDI4MDl9fWlmKChiMFtj
WyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4yXT0wO0U9MjMyNzticmVh
a31lbHNle0s9KER8MCk9PTA7aWYoQ15LKXtGPUQ7Rz1LO2JyZWFrfWVsc2V7SD1sO0k9RDtKPUs7
YnJlYWsgTDI4MDl9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTIzMjcpe0U9MDtpZihDKXtIPWw7ST0w
O0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0s9KEQmMXwwKT09MDtpZigoKGNbcD4+
Ml18MCktbHwwKT09KChLP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEspe0w9RD4+PjE7TT1EPj4+
MX1lbHNle0Q9Y1t6Pj4yXXwwO0w9RDtNPUR9ZFIobixMPDwxLDApO2lmKChhW29dJjEpPT0wKXtO
PTEwfWVsc2V7Tj0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTiwwKTtpZigoYVtvXSYxKT09MCl7Tz14
fWVsc2V7Tz1jW3k+PjJdfDB9Y1twPj4yXT1PK007UD1PfWVsc2V7UD1sfUQ9QisxMnwwO0s9Y1tE
Pj4yXXwwO1E9QisxNnwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7Uj0oYjBbY1soY1tCPj4yXXww
KSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtSPWFbS118MH1pZigoZnMoUix0LFAscCxzLEEs
bSx2LHIsdSl8MCkhPTApe0g9UDtJPUY7Sj1HO2JyZWFrfUs9Y1tEPj4yXXwwO2lmKChLfDApPT0o
Y1tRPj4yXXwwKSl7UT1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1EmMTI3XShCKXwwO2w9UDt3
PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUsrMTtsPVA7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtp
ZigodyYxfDApPT0wKXtTPXc+Pj4xfWVsc2V7Uz1jW20rND4+Ml18MH1kb3tpZigoU3wwKSE9MCl7
dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31QPWNbcz4+Ml18MDtjW3I+PjJdPXcr
NDtjW3c+PjJdPVB9fXdoaWxlKDApO2Nbaz4+Ml09ZnUoSCxjW3A+PjJdfDAsaix0KXwwO2Z0KG0s
dixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VD0wfWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0Ir
MTY+PjJdfDApKXtUPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MCkhPS0xKXtUPUI7YnJlYWt9Y1toPj4yXT0wO1Q9MH19d2hpbGUoMCk7aD0oVHwwKT09MDtMMjg2
OTpkb3tpZihKKXtFPTIzNjh9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18
MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tm
Pj4yXT0wO0U9MjM2ODticmVhayBMMjg2OX19d2hpbGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJl
YWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lm
KChFfDApPT0yMzY4KXtpZihoKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1l
O3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7VT1ifDA7Y1tVPj4yXT1UO2RQKG4p
O2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZnMoYixlLGYsZyxoLGksaixrLGwsbSl7Yj1ifDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFy
IG49MCxvPTAscD0wLHE9MCxyPTAscz0wO249Y1tnPj4yXXwwO289KG58MCk9PShmfDApO2Rve2lm
KG8pe3A9KGFbbSsyNHwwXXwwKT09Yjw8MjQ+PjI0O2lmKCFwKXtpZigoYVttKzI1fDBdfDApIT1i
PDwyND4+MjQpe2JyZWFrfX1jW2c+PjJdPWYrMTthW2ZdPXA/NDM6NDU7Y1toPj4yXT0wO3E9MDty
ZXR1cm4gcXwwfX13aGlsZSgwKTtwPWRbal18MDtpZigocCYxfDApPT0wKXtyPXA+Pj4xfWVsc2V7
cj1jW2orND4+Ml18MH1pZigocnwwKSE9MCZiPDwyND4+MjQ9PWk8PDI0Pj4yNCl7aT1jW2w+PjJd
fDA7aWYoKGkta3wwKT49MTYwKXtxPTA7cmV0dXJuIHF8MH1rPWNbaD4+Ml18MDtjW2w+PjJdPWkr
NDtjW2k+PjJdPWs7Y1toPj4yXT0wO3E9MDtyZXR1cm4gcXwwfWs9bSsyNnwwO2k9bTt3aGlsZSgx
KXtpZigoaXwwKT09KGt8MCkpe3M9azticmVha31pZigoYVtpXXwwKT09Yjw8MjQ+PjI0KXtzPWk7
YnJlYWt9ZWxzZXtpPWkrMXwwfX1pPXMtbXwwO2lmKChpfDApPjIzKXtxPS0xO3JldHVybiBxfDB9
TDI5MDg6ZG97c3dpdGNoKGV8MCl7Y2FzZSA4OmNhc2UgMTA6e2lmKChpfDApPChlfDApKXticmVh
ayBMMjkwOH1lbHNle3E9LTF9cmV0dXJuIHF8MH07Y2FzZSAxNjp7aWYoKGl8MCk8MjIpe2JyZWFr
IEwyOTA4fWlmKG8pe3E9LTE7cmV0dXJuIHF8MH1pZigobi1mfDApPj0zKXtxPS0xO3JldHVybiBx
fDB9aWYoKGFbbi0xfDBdfDApIT00OCl7cT0tMTtyZXR1cm4gcXwwfWNbaD4+Ml09MDttPWFbOTc0
NCtpfDBdfDA7cz1jW2c+PjJdfDA7Y1tnPj4yXT1zKzE7YVtzXT1tO3E9MDtyZXR1cm4gcXwwfTtk
ZWZhdWx0Ont9fX13aGlsZSgwKTtmPWFbOTc0NCtpfDBdfDA7Y1tnPj4yXT1uKzE7YVtuXT1mO2Nb
aD4+Ml09KGNbaD4+Ml18MCkrMTtxPTA7cmV0dXJuIHF8MH1mdW5jdGlvbiBmdChiLGQsZSxmKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7Zz1iO2g9YjtpPWFbaF18MDtqPWkmMjU1O2lm
KChqJjF8MCk9PTApe2s9aj4+PjF9ZWxzZXtrPWNbYis0Pj4yXXwwfWlmKChrfDApPT0wKXtyZXR1
cm59ZG97aWYoKGR8MCk9PShlfDApKXtsPWl9ZWxzZXtrPWUtNHwwO2lmKGs+Pj4wPmQ+Pj4wKXtt
PWQ7bj1rfWVsc2V7bD1pO2JyZWFrfWRve2s9Y1ttPj4yXXwwO2NbbT4+Ml09Y1tuPj4yXTtjW24+
PjJdPWs7bT1tKzR8MDtuPW4tNHwwO313aGlsZShtPj4+MDxuPj4+MCk7bD1hW2hdfDB9fXdoaWxl
KDApO2lmKChsJjEpPT0wKXtvPWcrMXwwfWVsc2V7bz1jW2IrOD4+Ml18MH1nPWwmMjU1O2lmKChn
JjF8MCk9PTApe3A9Zz4+PjF9ZWxzZXtwPWNbYis0Pj4yXXwwfWI9ZS00fDA7ZT1hW29dfDA7Zz1l
PDwyND4+MjQ7bD1lPDwyND4+MjQ8MXxlPDwyND4+MjQ9PTEyNztMMjk0Nzpkb3tpZihiPj4+MD5k
Pj4+MCl7ZT1vK3B8MDtoPW87bj1kO209ZztpPWw7d2hpbGUoMSl7aWYoIWkpe2lmKChtfDApIT0o
Y1tuPj4yXXwwKSl7YnJlYWt9fWs9KGUtaHwwKT4xP2grMXwwOmg7aj1uKzR8MDtxPWFba118MDty
PXE8PDI0Pj4yNDtzPXE8PDI0Pj4yNDwxfHE8PDI0Pj4yND09MTI3O2lmKGo+Pj4wPGI+Pj4wKXto
PWs7bj1qO209cjtpPXN9ZWxzZXt0PXI7dT1zO2JyZWFrIEwyOTQ3fX1jW2Y+PjJdPTQ7cmV0dXJu
fWVsc2V7dD1nO3U9bH19d2hpbGUoMCk7aWYodSl7cmV0dXJufXU9Y1tiPj4yXXwwO2lmKCEodD4+
PjA8dT4+PjB8KHV8MCk9PTApKXtyZXR1cm59Y1tmPj4yXT00O3JldHVybn1mdW5jdGlvbiBmdShi
LGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MDtn
PWk7aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVy
biBqfDB9az1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRd
fDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXww
fX13aGlsZSgwKTtsPWJJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDAp
Pj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0oZHww
KSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1kPS0xO2g9MDtpZigoYnwwKT09MzR8KChm
fDApPChkfDApfChmfDApPT0oZHwwKSZsPj4+MDwtMjE0NzQ4MzY0OD4+PjApfCgoZnwwKT4oaHww
KXwoZnwwKT09KGh8MCkmbD4+PjA+MjE0NzQ4MzY0Nz4+PjApKXtjW2U+PjJdPTQ7ZT0wO2o9KGZ8
MCk+KGV8MCl8KGZ8MCk9PShlfDApJmw+Pj4wPjA+Pj4wPzIxNDc0ODM2NDc6LTIxNDc0ODM2NDg7
aT1nO3JldHVybiBqfDB9ZWxzZXtqPWw7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24g
ZnYoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1r
fDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6
e3Q9MTY7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2RlZmF1
bHQ6e3Q9MTB9fXU9ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtp
ZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2
Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9
ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wyOTk3Ondo
aWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysx
Nj4+Ml18MCkpe0I9dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXww
KSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tm
Pj4yXXwwO2Rve2lmKChEfDApPT0wKXtFPTI0NzZ9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNb
RCsxNj4+Ml18MCkpe2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBM
Mjk5N319aWYoKGIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJd
PTA7RT0yNDc2O2JyZWFrfWVsc2V7TD0oRHwwKT09MDtpZihDXkwpe0Y9RDtHPUw7YnJlYWt9ZWxz
ZXtIPWw7ST1EO0o9TDticmVhayBMMjk5N319fX13aGlsZSgwKTtpZigoRXwwKT09MjQ3Nil7RT0w
O2lmKEMpe0g9bDtJPTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7TD0oRCYxfDAp
PT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEw/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoTCl7
TT1EPj4+MTtOPUQ+Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TT1EO049RH1kUihuLE08PDEsMCk7aWYo
KGFbb10mMSk9PTApe089MTB9ZWxzZXtPPShjW2c+PjJdJi0yKS0xfDB9ZFIobixPLDApO2lmKChh
W29dJjEpPT0wKXtQPXh9ZWxzZXtQPWNbeT4+Ml18MH1jW3A+PjJdPVArTjtRPVB9ZWxzZXtRPWx9
RD1CKzEyfDA7TD1jW0Q+PjJdfDA7Uj1CKzE2fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtTPShi
MFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1M9YVtMXXwwfWlmKChm
cyhTLHQsUSxwLHMsQSxtLHYscix1KXwwKSE9MCl7SD1RO0k9RjtKPUc7YnJlYWt9TD1jW0Q+PjJd
fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUiYx
MjddKEIpfDA7bD1RO3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09TCsxO2w9UTt3PUI7Y29udGlu
dWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Q9dz4+PjF9ZWxzZXtUPWNbbSs0Pj4yXXwwfWRv
e2lmKChUfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVE9Y1tzPj4y
XXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09UX19d2hpbGUoMCk7cz1mdyhILGNbcD4+Ml18MCxqLHQp
fDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VT0w
fWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtVPUI7YnJlYWt9aWYoKGIw
W2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtVPUI7YnJlYWt9Y1toPj4yXT0w
O1U9MH19d2hpbGUoMCk7aD0oVXwwKT09MDtMMzA1Nzpkb3tpZihKKXtFPTI1MTd9ZWxzZXtkb3tp
ZigoY1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2
Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjUxNzticmVhayBMMzA1N319
d2hpbGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQ
KG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChFfDApPT0yNTE3KXtpZihoKXticmVha31W
PWJ8MDtjW1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1j
W2o+PjJdfDI7Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24g
ZncoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxs
PTAsbT0wO2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtr
PTA7aT1nO3JldHVybihLPWosayl8MH1sPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09
MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1
OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO209YkkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXww
O2Y9SztiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWx9aWYo
KGNbaD4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0wO2s9MDtpPWc7cmV0dXJuKEs9aixrKXww
fWlmKChifDApIT0zNCl7aj1mO2s9bTtpPWc7cmV0dXJuKEs9aixrKXwwfWNbZT4+Ml09NDtlPTA7
Yj0oZnwwKT4oZXwwKXwoZnwwKT09KGV8MCkmbT4+PjA+MD4+PjA7aj1iPzIxNDc0ODM2NDc6LTIx
NDc0ODM2NDg7az1iPy0xOjA7aT1nO3JldHVybihLPWosayl8MH1mdW5jdGlvbiBmeChiLGQsZSxm
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wO2c9aTtpPWkrNDB8MDtoPWd8MDtqPWcrMTZ8MDtrPWcrMzJ8MDtlaihrLGQp
O2Q9a3wwO2s9Y1tkPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tqPj4yXT0xNTY5NjtjW2or
ND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTU2OTYsaiw5Nil9aj0oY1szOTI1XXwwKS0xfDA7bD1j
W2srOD4+Ml18MDtkb3tpZigoY1trKzEyPj4yXXwwKS1sPj4yPj4+MD5qPj4+MCl7bT1jW2wrKGo8
PDIpPj4yXXwwO2lmKChtfDApPT0wKXticmVha31uPW07bz1jWyhjW20+PjJdfDApKzMyPj4yXXww
O2NhW28mMTVdKG4sOTc0NCw5NzcwLGUpfDA7bj1jW2Q+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0x
KXtjW2g+PjJdPTE1MzEyO2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTMxMixoLDk2KX1v
PShjWzM4MjldfDApLTF8MDttPWNbbis4Pj4yXXwwO2Rve2lmKChjW24rMTI+PjJdfDApLW0+PjI+
Pj4wPm8+Pj4wKXtwPWNbbSsobzw8Mik+PjJdfDA7aWYoKHB8MCk9PTApe2JyZWFrfXE9cDthW2Zd
PWIwW2NbKGNbcD4+Ml18MCkrMTY+PjJdJjEyN10ocSl8MDtiWltjWyhjW3A+PjJdfDApKzIwPj4y
XSYxMjddKGIscSk7cT1jW2Q+PjJdfDA7ZHoocSl8MDtpPWc7cmV0dXJufX13aGlsZSgwKTtvPWJP
KDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7Zz1iTyg0KXwwO2txKGcpO2Js
KGd8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZnkoZSxmLGcsaCxqLGssbCl7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAs
Vj0wO2Y9aTtpPWkrNzJ8MDttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+
PjJdO209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+Ml07bT1mKzMyfDA7
bj1mKzQwfDA7bz1mKzU2fDA7cD1vO3E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3I9aTtpPWkrMTYw
fDA7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNo
KGNbais0Pj4yXSY3NHwwKXtjYXNlIDA6e3U9MDticmVha307Y2FzZSA4Ont1PTE2O2JyZWFrfTtj
YXNlIDY0Ont1PTg7YnJlYWt9O2RlZmF1bHQ6e3U9MTB9fXY9ZnwwO2Z4KG4saix2LG0pO2skKHB8
MCwwLDEyKTtqPW87ZFIobywxMCwwKTtpZigoYVtwXSYxKT09MCl7dz1qKzF8MDt4PXc7eT13O3o9
bys4fDB9ZWxzZXt3PW8rOHwwO3g9Y1t3Pj4yXXwwO3k9aisxfDA7ej13fWNbcT4+Ml09eDt3PXJ8
MDtjW3M+PjJdPXc7Y1t0Pj4yXT0wO2o9Z3wwO2c9aHwwO2g9b3wwO0E9bys0fDA7Qj1hW21dfDA7
bT14O3g9Y1tqPj4yXXwwO0wzMTIyOndoaWxlKDEpe2Rve2lmKCh4fDApPT0wKXtDPTB9ZWxzZXtp
ZigoY1t4KzEyPj4yXXwwKSE9KGNbeCsxNj4+Ml18MCkpe0M9eDticmVha31pZigoYjBbY1soY1t4
Pj4yXXwwKSszNj4+Ml0mMTI3XSh4KXwwKSE9LTEpe0M9eDticmVha31jW2o+PjJdPTA7Qz0wfX13
aGlsZSgwKTtEPShDfDApPT0wO0U9Y1tnPj4yXXwwO2Rve2lmKChFfDApPT0wKXtGPTI1Nzl9ZWxz
ZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe2lmKEQpe0c9RTtIPTA7YnJlYWt9
ZWxzZXtJPW07Sj1FO0s9MDticmVhayBMMzEyMn19aWYoKGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJd
JjEyN10oRSl8MCk9PS0xKXtjW2c+PjJdPTA7Rj0yNTc5O2JyZWFrfWVsc2V7TD0oRXwwKT09MDtp
ZihEXkwpe0c9RTtIPUw7YnJlYWt9ZWxzZXtJPW07Sj1FO0s9TDticmVhayBMMzEyMn19fX13aGls
ZSgwKTtpZigoRnwwKT09MjU3OSl7Rj0wO2lmKEQpe0k9bTtKPTA7Sz0xO2JyZWFrfWVsc2V7Rz0w
O0g9MX19RT1kW3BdfDA7TD0oRSYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1tfDApPT0oKEw/RT4+
PjE6Y1tBPj4yXXwwKXwwKSl7aWYoTCl7TT1FPj4+MTtOPUU+Pj4xfWVsc2V7RT1jW0E+PjJdfDA7
TT1FO049RX1kUihvLE08PDEsMCk7aWYoKGFbcF0mMSk9PTApe089MTB9ZWxzZXtPPShjW2g+PjJd
Ji0yKS0xfDB9ZFIobyxPLDApO2lmKChhW3BdJjEpPT0wKXtQPXl9ZWxzZXtQPWNbej4+Ml18MH1j
W3E+PjJdPVArTjtRPVB9ZWxzZXtRPW19RT1DKzEyfDA7TD1jW0U+PjJdfDA7Uj1DKzE2fDA7aWYo
KEx8MCk9PShjW1I+PjJdfDApKXtTPShiMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDAp
JjI1NX1lbHNle1M9YVtMXXwwfWlmKChmcyhTLHUsUSxxLHQsQixuLHcscyx2KXwwKSE9MCl7ST1R
O0o9RztLPUg7YnJlYWt9TD1jW0U+PjJdfDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNb
Qz4+Ml18MCkrNDA+PjJdfDA7YjBbUiYxMjddKEMpfDA7bT1RO3g9Qztjb250aW51ZX1lbHNle2Nb
RT4+Ml09TCsxO209UTt4PUM7Y29udGludWV9fXg9ZFtuXXwwO2lmKCh4JjF8MCk9PTApe1Q9eD4+
PjF9ZWxzZXtUPWNbbis0Pj4yXXwwfWRve2lmKChUfDApIT0wKXt4PWNbcz4+Ml18MDtpZigoeC1y
fDApPj0xNjApe2JyZWFrfVE9Y1t0Pj4yXXwwO2Nbcz4+Ml09eCs0O2NbeD4+Ml09UX19d2hpbGUo
MCk7YltsPj4xXT1meihJLGNbcT4+Ml18MCxrLHUpfDA7ZnQobix3LGNbcz4+Ml18MCxrKTtkb3tp
ZihEKXtVPTB9ZWxzZXtpZigoY1tDKzEyPj4yXXwwKSE9KGNbQysxNj4+Ml18MCkpe1U9QzticmVh
a31pZigoYjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwKSE9LTEpe1U9QzticmVha31j
W2o+PjJdPTA7VT0wfX13aGlsZSgwKTtqPShVfDApPT0wO0wzMTgyOmRve2lmKEspe0Y9MjYyMH1l
bHNle2Rve2lmKChjW0orMTI+PjJdfDApPT0oY1tKKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbSj4+
Ml18MCkrMzY+PjJdJjEyN10oSil8MCkhPS0xKXticmVha31jW2c+PjJdPTA7Rj0yNjIwO2JyZWFr
IEwzMTgyfX13aGlsZSgwKTtpZighKGpeKEp8MCk9PTApKXticmVha31WPWV8MDtjW1Y+PjJdPVU7
ZFAobyk7ZFAobik7aT1mO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTI2MjApe2lmKGop
e2JyZWFrfVY9ZXwwO2NbVj4+Ml09VTtkUChvKTtkUChuKTtpPWY7cmV0dXJufX13aGlsZSgwKTtj
W2s+PjJdPWNbaz4+Ml18MjtWPWV8MDtjW1Y+PjJdPVU7ZFAobyk7ZFAobik7aT1mO3JldHVybn1m
dW5jdGlvbiBmeihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxq
PTAsaz0wLGw9MDtnPWk7aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtq
PTA7aT1nO3JldHVybiBqfDB9aWYoKGFbYl18MCk9PTQ1KXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1
cm4ganwwfWs9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7bD1hSShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9Y1soYncoKXww
KT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09a31pZigoY1toPj4yXXwwKSE9KGR8
MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9ZD0wO2lmKChifDApPT0zNHwoZj4+PjA+
ZD4+PjB8Zj4+PjA9PWQ+Pj4wJmw+Pj4wPjY1NTM1Pj4+MCkpe2NbZT4+Ml09NDtqPS0xO2k9Zzty
ZXR1cm4ganwwfWVsc2V7aj1sJjY1NTM1O2k9ZztyZXR1cm4ganwwfXJldHVybiAwfWZ1bmN0aW9u
IGZBKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9
a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtw
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA2
NDp7dD04O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA4Ont0PTE2O2JyZWFrfTtkZWZh
dWx0Ont0PTEwfX11PWV8MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7
aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNb
dj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDto
PWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMzIzMjp3
aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3cr
MTY+PjJdfDApKXtCPXc7YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8
MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNb
Zj4+Ml18MDtkb3tpZigoRHwwKT09MCl7RT0yNjY5fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShj
W0QrMTY+PjJdfDApKXtpZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsg
TDMyMzJ9fWlmKChiMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4y
XT0wO0U9MjY2OTticmVha31lbHNle0s9KER8MCk9PTA7aWYoQ15LKXtGPUQ7Rz1LO2JyZWFrfWVs
c2V7SD1sO0k9RDtKPUs7YnJlYWsgTDMyMzJ9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTI2Njkpe0U9
MDtpZihDKXtIPWw7ST0wO0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0s9KEQmMXww
KT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChLP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEsp
e0w9RD4+PjE7TT1EPj4+MX1lbHNle0Q9Y1t6Pj4yXXwwO0w9RDtNPUR9ZFIobixMPDwxLDApO2lm
KChhW29dJjEpPT0wKXtOPTEwfWVsc2V7Tj0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTiwwKTtpZigo
YVtvXSYxKT09MCl7Tz14fWVsc2V7Tz1jW3k+PjJdfDB9Y1twPj4yXT1PK007UD1PfWVsc2V7UD1s
fUQ9QisxMnwwO0s9Y1tEPj4yXXwwO1E9QisxNnwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7Uj0o
YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtSPWFbS118MH1pZigo
ZnMoUix0LFAscCxzLEEsbSx2LHIsdSl8MCkhPTApe0g9UDtJPUY7Sj1HO2JyZWFrfUs9Y1tEPj4y
XXwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7UT1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1Em
MTI3XShCKXwwO2w9UDt3PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUsrMTtsPVA7dz1CO2NvbnRp
bnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtTPXc+Pj4xfWVsc2V7Uz1jW20rND4+Ml18MH1k
b3tpZigoU3wwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31QPWNbcz4+
Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVB9fXdoaWxlKDApO2Nbaz4+Ml09ZkIoSCxjW3A+PjJd
fDAsaix0KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VD0wfWVsc2V7aWYoKGNbQisx
Mj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtUPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkr
MzY+PjJdJjEyN10oQil8MCkhPS0xKXtUPUI7YnJlYWt9Y1toPj4yXT0wO1Q9MH19d2hpbGUoMCk7
aD0oVHwwKT09MDtMMzI5Mjpkb3tpZihKKXtFPTI3MTB9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXww
KT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDAp
IT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjcxMDticmVhayBMMzI5Mn19d2hpbGUoMCk7aWYoISho
XihJfDApPT0wKSl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59
fXdoaWxlKDApO2Rve2lmKChFfDApPT0yNzEwKXtpZihoKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7
ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7VT1ifDA7
Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkIoYixkLGUsZil7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTA7Zz1pO2k9aSs4fDA7
aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWlmKChh
W2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1rPWNbKGJ3KCl8MCk+PjJd
fDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9YUkoYnwwLGh8
MCxmfDAsY1syOTU4XXwwKXwwO2Y9SztiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2Nb
KGJ3KCl8MCk+PjJdPWt9aWYoKGNbaD4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9Zzty
ZXR1cm4ganwwfWQ9MDtpZigoYnwwKT09MzR8KGY+Pj4wPmQ+Pj4wfGY+Pj4wPT1kPj4+MCZsPj4+
MD4tMT4+PjApKXtjW2U+PjJdPTQ7aj0tMTtpPWc7cmV0dXJuIGp8MH1lbHNle2o9bDtpPWc7cmV0
dXJuIGp8MH1yZXR1cm4gMH1mdW5jdGlvbiBmQyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9
MCxVPTA7ZT1pO2k9aSs3MnwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNb
bD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMzJ8
MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsx
NjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0
Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDg6e3Q9MTY7YnJlYWt9
O2Nhc2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZngobSxoLHUsbCk7ayQo
b3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7
eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9
cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWFbbF18
MDtsPXc7dz1jW2g+PjJdfDA7TDMzNDI6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNl
e2lmKChjW3crMTI+PjJdfDApIT0oY1t3KzE2Pj4yXXwwKSl7Qj13O2JyZWFrfWlmKChiMFtjWyhj
W3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9
fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1jW2Y+PjJdfDA7ZG97aWYoKER8MCk9PTApe0U9Mjc1OX1l
bHNle2lmKChjW0QrMTI+PjJdfDApIT0oY1tEKzE2Pj4yXXwwKSl7aWYoQyl7Rj1EO0c9MDticmVh
a31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFrIEwzMzQyfX1pZigoYjBbY1soY1tEPj4yXXwwKSszNj4+
Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+Ml09MDtFPTI3NTk7YnJlYWt9ZWxzZXtLPShEfDApPT0w
O2lmKENeSyl7Rj1EO0c9SzticmVha31lbHNle0g9bDtJPUQ7Sj1LO2JyZWFrIEwzMzQyfX19fXdo
aWxlKDApO2lmKChFfDApPT0yNzU5KXtFPTA7aWYoQyl7SD1sO0k9MDtKPTE7YnJlYWt9ZWxzZXtG
PTA7Rz0xfX1EPWRbb118MDtLPShEJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoSz9E
Pj4+MTpjW3o+PjJdfDApfDApKXtpZihLKXtMPUQ+Pj4xO009RD4+PjF9ZWxzZXtEPWNbej4+Ml18
MDtMPUQ7TT1EfWRSKG4sTDw8MSwwKTtpZigoYVtvXSYxKT09MCl7Tj0xMH1lbHNle049KGNbZz4+
Ml0mLTIpLTF8MH1kUihuLE4sMCk7aWYoKGFbb10mMSk9PTApe089eH1lbHNle089Y1t5Pj4yXXww
fWNbcD4+Ml09TytNO1A9T31lbHNle1A9bH1EPUIrMTJ8MDtLPWNbRD4+Ml18MDtRPUIrMTZ8MDtp
ZigoS3wwKT09KGNbUT4+Ml18MCkpe1I9KGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MCkmMjU1fWVsc2V7Uj1hW0tdfDB9aWYoKGZzKFIsdCxQLHAscyxBLG0sdixyLHUpfDApIT0wKXtI
PVA7ST1GO0o9RzticmVha31LPWNbRD4+Ml18MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1E9Y1so
Y1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtRJjEyN10oQil8MDtsPVA7dz1CO2NvbnRpbnVlfWVsc2V7
Y1tEPj4yXT1LKzE7bD1QO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Uz13
Pj4+MX1lbHNle1M9Y1ttKzQ+PjJdfDB9ZG97aWYoKFN8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3
LXF8MCk+PTE2MCl7YnJlYWt9UD1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1QfX13aGls
ZSgwKTtjW2s+PjJdPWZEKEgsY1twPj4yXXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rv
e2lmKEMpe1Q9MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VD1CO2Jy
ZWFrfWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VD1CO2JyZWFr
fWNbaD4+Ml09MDtUPTB9fXdoaWxlKDApO2g9KFR8MCk9PTA7TDM0MDI6ZG97aWYoSil7RT0yODAw
fWVsc2V7ZG97aWYoKGNbSSsxMj4+Ml18MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJ
Pj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI4MDA7YnJl
YWsgTDM0MDJ9fXdoaWxlKDApO2lmKCEoaF4oSXwwKT09MCkpe2JyZWFrfVU9YnwwO2NbVT4+Ml09
VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRXwwKT09MjgwMCl7aWYo
aCl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Nbaj4+Ml09Y1tqPj4yXXwyO1U9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJu
fWZ1bmN0aW9uIGZEKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0w
LGo9MCxrPTAsbD0wO2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00
O2o9MDtpPWc7cmV0dXJuIGp8MH1pZigoYVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7aT1nO3Jl
dHVybiBqfDB9az1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYy
NjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCww
KXwwfX13aGlsZSgwKTtsPWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygp
fDApPj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0o
ZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1kPTA7aWYoKGJ8MCk9PTM0fChmPj4+
MD5kPj4+MHxmPj4+MD09ZD4+PjAmbD4+PjA+LTE+Pj4wKSl7Y1tlPj4yXT00O2o9LTE7aT1nO3Jl
dHVybiBqfDB9ZWxzZXtqPWw7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZkUoYixl
LGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFy
IGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0wLE49MCxP
PTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2c+PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7
YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9
MTB9fXU9ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtv
XSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXww
O3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9
Z3wwO2c9bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wzNDUyOndoaWxlKDEp
e2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+Ml18
MCkpe0I9dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9LTEp
e0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4yXXww
O2Rve2lmKChEfDApPT0wKXtFPTI4NDl9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsxNj4+
Ml18MCkpe2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMzQ1Mn19
aWYoKGIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7RT0y
ODQ5O2JyZWFrfWVsc2V7TD0oRHwwKT09MDtpZihDXkwpe0Y9RDtHPUw7YnJlYWt9ZWxzZXtIPWw7
ST1EO0o9TDticmVhayBMMzQ1Mn19fX13aGlsZSgwKTtpZigoRXwwKT09Mjg0OSl7RT0wO2lmKEMp
e0g9bDtJPTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7TD0oRCYxfDApPT0wO2lm
KCgoY1twPj4yXXwwKS1sfDApPT0oKEw/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoTCl7TT1EPj4+
MTtOPUQ+Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TT1EO049RH1kUihuLE08PDEsMCk7aWYoKGFbb10m
MSk9PTApe089MTB9ZWxzZXtPPShjW2c+PjJdJi0yKS0xfDB9ZFIobixPLDApO2lmKChhW29dJjEp
PT0wKXtQPXh9ZWxzZXtQPWNbeT4+Ml18MH1jW3A+PjJdPVArTjtRPVB9ZWxzZXtRPWx9RD1CKzEy
fDA7TD1jW0Q+PjJdfDA7Uj1CKzE2fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtTPShiMFtjWyhj
W0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1M9YVtMXXwwfWlmKChmcyhTLHQs
USxwLHMsQSxtLHYscix1KXwwKSE9MCl7SD1RO0k9RjtKPUc7YnJlYWt9TD1jW0Q+PjJdfDA7aWYo
KEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUiYxMjddKEIp
fDA7bD1RO3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09TCsxO2w9UTt3PUI7Y29udGludWV9fXc9
ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Q9dz4+PjF9ZWxzZXtUPWNbbSs0Pj4yXXwwfWRve2lmKChU
fDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVE9Y1tzPj4yXXwwO2Nb
cj4+Ml09dys0O2Nbdz4+Ml09UX19d2hpbGUoMCk7cz1mRihILGNbcD4+Ml18MCxqLHQpfDA7Y1tr
Pj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VT0wfWVsc2V7
aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtVPUI7YnJlYWt9aWYoKGIwW2NbKGNb
Qj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtVPUI7YnJlYWt9Y1toPj4yXT0wO1U9MH19
d2hpbGUoMCk7aD0oVXwwKT09MDtMMzUxMjpkb3tpZihKKXtFPTI4OTB9ZWxzZXtkb3tpZigoY1tJ
KzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYx
MjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9Mjg5MDticmVhayBMMzUxMn19d2hpbGUo
MCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChFfDApPT0yODkwKXtpZihoKXticmVha31WPWJ8MDtj
W1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJd
fDI7Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkYoYixk
LGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTA7Zz1pO2k9aSs4fDA7aD1nfDA7ZG97aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7
aj0wO2s9MH1lbHNle2lmKChhW2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtrPTA7YnJlYWt9bD1j
WyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTttPWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtuPUs7bz1jWyhidygpfDApPj4yXXwwO2lm
KChvfDApPT0wKXtjWyhidygpfDApPj4yXT1sfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4y
XT00O2o9MDtrPTA7YnJlYWt9aWYoKG98MCkhPTM0KXtqPW47az1tO2JyZWFrfWNbZT4+Ml09NDtq
PS0xO2s9LTF9fXdoaWxlKDApO2k9ZztyZXR1cm4oSz1qLGspfDB9ZnVuY3Rpb24gZkcoYixlLGYs
ZyxoLGksaixrLGwsbSxuLG8pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9
anwwO2s9a3wwO2w9bHwwO209bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9MCxzPTAsdD0w
O2lmKGI8PDI0Pj4yND09aTw8MjQ+PjI0KXtpZigoYVtlXSYxKT09MCl7cD0tMTtyZXR1cm4gcHww
fWFbZV09MDtpPWNbaD4+Ml18MDtjW2g+PjJdPWkrMTthW2ldPTQ2O2k9ZFtrXXwwO2lmKChpJjF8
MCk9PTApe3E9aT4+PjF9ZWxzZXtxPWNbays0Pj4yXXwwfWlmKChxfDApPT0wKXtwPTA7cmV0dXJu
IHB8MH1xPWNbbT4+Ml18MDtpZigocS1sfDApPj0xNjApe3A9MDtyZXR1cm4gcHwwfWk9Y1tuPj4y
XXwwO2NbbT4+Ml09cSs0O2NbcT4+Ml09aTtwPTA7cmV0dXJuIHB8MH1kb3tpZihiPDwyND4+MjQ9
PWo8PDI0Pj4yNCl7aT1kW2tdfDA7aWYoKGkmMXwwKT09MCl7cj1pPj4+MX1lbHNle3I9Y1trKzQ+
PjJdfDB9aWYoKHJ8MCk9PTApe2JyZWFrfWlmKChhW2VdJjEpPT0wKXtwPS0xO3JldHVybiBwfDB9
aT1jW20+PjJdfDA7aWYoKGktbHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8MH1xPWNbbj4+Ml18MDtj
W20+PjJdPWkrNDtjW2k+PjJdPXE7Y1tuPj4yXT0wO3A9MDtyZXR1cm4gcHwwfX13aGlsZSgwKTty
PW8rMzJ8MDtqPW87d2hpbGUoMSl7aWYoKGp8MCk9PShyfDApKXtzPXI7YnJlYWt9aWYoKGFbal18
MCk9PWI8PDI0Pj4yNCl7cz1qO2JyZWFrfWVsc2V7aj1qKzF8MH19aj1zLW98MDtpZigoanwwKT4z
MSl7cD0tMTtyZXR1cm4gcHwwfW89YVs5NzQ0K2p8MF18MDtzd2l0Y2goanwwKXtjYXNlIDI1OmNh
c2UgMjQ6e3M9Y1toPj4yXXwwO2Rve2lmKChzfDApIT0oZ3wwKSl7aWYoKGFbcy0xfDBdJjk1fDAp
PT0oYVtmXSYxMjd8MCkpe2JyZWFrfWVsc2V7cD0tMX1yZXR1cm4gcHwwfX13aGlsZSgwKTtjW2g+
PjJdPXMrMTthW3NdPW87cD0wO3JldHVybiBwfDB9O2Nhc2UgMjI6Y2FzZSAyMzp7YVtmXT04MDtz
PWNbaD4+Ml18MDtjW2g+PjJdPXMrMTthW3NdPW87cD0wO3JldHVybiBwfDB9O2RlZmF1bHQ6e3M9
YVtmXXwwO2Rve2lmKChvJjk1fDApPT0oczw8MjQ+PjI0fDApKXthW2ZdPXN8LTEyODtpZigoYVtl
XSYxKT09MCl7YnJlYWt9YVtlXT0wO2c9ZFtrXXwwO2lmKChnJjF8MCk9PTApe3Q9Zz4+PjF9ZWxz
ZXt0PWNbays0Pj4yXXwwfWlmKCh0fDApPT0wKXticmVha31nPWNbbT4+Ml18MDtpZigoZy1sfDAp
Pj0xNjApe2JyZWFrfWI9Y1tuPj4yXXwwO2NbbT4+Ml09Zys0O2NbZz4+Ml09Yn19d2hpbGUoMCk7
bT1jW2g+PjJdfDA7Y1toPj4yXT1tKzE7YVttXT1vO2lmKChqfDApPjIxKXtwPTA7cmV0dXJuIHB8
MH1jW24+PjJdPShjW24+PjJdfDApKzE7cD0wO3JldHVybiBwfDB9fXJldHVybiAwfWZ1bmN0aW9u
IGZIKGIsZSxmLGgsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2g9aHwwO2o9anwwO2s9a3wwO2w9
bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09
MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrODB8
MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209aDtoPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+Ml07bT1lKzMyfDA7bj1lKzQwfDA7bz1lKzQ4
fDA7cD1lKzY0fDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7
aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZkoobyxqLHgsbSxuKTtr
JChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9
eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7
eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWh8MDtoPXB8
MDtDPXArNHwwO0Q9YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+Ml18MDtMMzYxNTp3aGlsZSgx
KXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJd
fDApKXtFPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0x
KXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXwwKT09MDtHPWNbZj4+Ml18
MDtkb3tpZigoR3wwKT09MCl7SD0yOTc4fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+
PjJdfDApKXtpZihGKXtJPUc7Sj0wO2JyZWFrfWVsc2V7Sz1uO0w9RztNPTA7YnJlYWsgTDM2MTV9
fWlmKChiMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1tmPj4yXT0wO0g9
Mjk3ODticmVha31lbHNle049KEd8MCk9PTA7aWYoRl5OKXtJPUc7Sj1OO2JyZWFrfWVsc2V7Sz1u
O0w9RztNPU47YnJlYWsgTDM2MTV9fX19d2hpbGUoMCk7aWYoKEh8MCk9PTI5Nzgpe0g9MDtpZihG
KXtLPW47TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtp
ZigoKGNbcj4+Ml18MCktbnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+
PjE7UD1HPj4+MX1lbHNle0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3Fd
JjEpPT0wKXtRPTEwfWVsc2V7UT0oY1toPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYx
KT09MCl7Uj1BfWVsc2V7Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsx
MnwwO049Y1tHPj4yXXwwO1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1so
Y1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2
LHcsUyxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+Ml18
MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEy
N10oRSl8MDtuPVM7ej1FO2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51
ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97
aWYoKFZ8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDAp
Pj0xNjApe2JyZWFrfVM9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7
Z1tsPj4yXT0rZkkoSyxjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtX
PTB9ZWxzZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31pZigo
YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJd
PTA7Vz0wfX13aGlsZSgwKTtqPShXfDApPT0wO0wzNjc2OmRve2lmKE0pe0g9MzAyMH1lbHNle2Rv
e2lmKChjW0wrMTI+PjJdfDApPT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkr
MzY+PjJdJjEyN10oTCl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7SD0zMDIwO2JyZWFrIEwzNjc2
fX13aGlsZSgwKTtpZighKGpeKEx8MCk9PTApKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7
ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEh8MCk9PTMwMjApe2lmKGope2JyZWFr
fVg9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJd
PWNbaz4+Ml18MjtYPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlv
biBmSShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4w
O2Y9aTtpPWkrOHwwO2c9ZnwwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9Zjty
ZXR1cm4raH1qPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2
NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDAp
fDB9fXdoaWxlKDApO2s9K2tXKGIsZyxjWzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigo
YnwwKT09MCl7Y1soYncoKXwwKT4+Ml09an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09
NDtoPTAuMDtpPWY7cmV0dXJuK2h9aWYoKGJ8MCk9PTM0KXtjW2U+PjJdPTR9aD1rO2k9ZjtyZXR1
cm4raH1mdW5jdGlvbiBmSihiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O3ZhciBoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2g9aTtpPWkr
NDB8MDtqPWh8MDtrPWgrMTZ8MDtsPWgrMzJ8MDtlaihsLGQpO2Q9bHwwO2w9Y1tkPj4yXXwwO2lm
KChjWzM5MjRdfDApIT0tMSl7Y1trPj4yXT0xNTY5NjtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7
ZFcoMTU2OTYsayw5Nil9az0oY1szOTI1XXwwKS0xfDA7bT1jW2wrOD4+Ml18MDtkb3tpZigoY1ts
KzEyPj4yXXwwKS1tPj4yPj4+MD5rPj4+MCl7bj1jW20rKGs8PDIpPj4yXXwwO2lmKChufDApPT0w
KXticmVha31vPW47cD1jWyhjW24+PjJdfDApKzMyPj4yXXwwO2NhW3AmMTVdKG8sOTc0NCw5Nzc2
LGUpfDA7bz1jW2Q+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW2o+PjJdPTE1MzEyO2Nbais0
Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTMxMixqLDk2KX1wPShjWzM4MjldfDApLTF8MDtuPWNb
bys4Pj4yXXwwO2Rve2lmKChjW28rMTI+PjJdfDApLW4+PjI+Pj4wPnA+Pj4wKXtxPWNbbisocDw8
Mik+PjJdfDA7aWYoKHF8MCk9PTApe2JyZWFrfXI9cTtzPXE7YVtmXT1iMFtjWyhjW3M+PjJdfDAp
KzEyPj4yXSYxMjddKHIpfDA7YVtnXT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjddKHIpfDA7
YlpbY1soY1txPj4yXXwwKSsyMD4+Ml0mMTI3XShiLHIpO3I9Y1tkPj4yXXwwO2R6KHIpfDA7aT1o
O3JldHVybn19d2hpbGUoMCk7cD1iTyg0KXwwO2txKHApO2JsKHB8MCw4MTc2LDEzNCl9fXdoaWxl
KDApO2g9Yk8oNCl8MDtrcShoKTtibChofDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZLKGIsZSxmLGcs
aixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxC
PTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9
MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrODB8MDttPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzMyfDA7bj1lKzQwfDA7bz1lKzQ4fDA7cD1lKzY0fDA7
cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7
dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZkoobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7
aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVs
c2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4y
XT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9
YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+Ml18MDtMMzczNzp3aGlsZSgxKXtkb3tpZigoenww
KT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJdfDApKXtFPXo7YnJl
YWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0xKXtFPXo7YnJlYWt9
Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXwwKT09MDtHPWNbZj4+Ml18MDtkb3tpZigoR3ww
KT09MCl7SD0zMDc5fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtpZihG
KXtJPUc7Sj0wO2JyZWFrfWVsc2V7Sz1uO0w9RztNPTA7YnJlYWsgTDM3Mzd9fWlmKChiMFtjWyhj
W0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1tmPj4yXT0wO0g9MzA3OTticmVha31l
bHNle049KEd8MCk9PTA7aWYoRl5OKXtJPUc7Sj1OO2JyZWFrfWVsc2V7Sz1uO0w9RztNPU47YnJl
YWsgTDM3Mzd9fX19d2hpbGUoMCk7aWYoKEh8MCk9PTMwNzkpe0g9MDtpZihGKXtLPW47TD0wO009
MTticmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtpZigoKGNbcj4+Ml18
MCktbnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+PjE7UD1HPj4+MX1l
bHNle0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3FdJjEpPT0wKXtRPTEw
fWVsc2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYxKT09MCl7Uj1BfWVs
c2V7Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsxMnwwO049Y1tHPj4y
XXwwO1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1soY1tFPj4yXXwwKSsz
Nj4+Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2LHcsUyxyLEQsbSxv
LHksdCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+Ml18MDtpZigoTnwwKT09
KGNbVD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10oRSl8MDtuPVM7
ej1FO2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51ZX19ej1kW29dfDA7
aWYoKHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97aWYoKFZ8MCkhPTAp
e2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFr
fVM9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7aFtsPj4zXT0rZkwo
SyxjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtXPTB9ZWxzZXtpZigo
Y1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31pZigoYjBbY1soY1tFPj4y
XXwwKSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJdPTA7Vz0wfX13aGls
ZSgwKTtqPShXfDApPT0wO0wzNzk4OmRve2lmKE0pe0g9MzEyMX1lbHNle2Rve2lmKChjW0wrMTI+
PjJdfDApPT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10o
TCl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7SD0zMTIxO2JyZWFrIEwzNzk4fX13aGlsZSgwKTtp
ZighKGpeKEx8MCk9PTApKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3Jl
dHVybn19d2hpbGUoMCk7ZG97aWYoKEh8MCk9PTMxMjEpe2lmKGope2JyZWFrfVg9YnwwO2NbWD4+
Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjtY
PWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmTChiLGQsZSl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4wO2Y9aTtpPWkrOHww
O2c9ZnwwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9ZjtyZXR1cm4raH1qPWNb
KGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O2s9K2tXKGIsZyxjWzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1so
YncoKXwwKT4+Ml09an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7
cmV0dXJuK2h9aWYoKGJ8MCkhPTM0KXtoPWs7aT1mO3JldHVybitofWNbZT4+Ml09NDtoPWs7aT1m
O3JldHVybitofWZ1bmN0aW9uIGZNKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxX
PTAsWD0wO2U9aTtpPWkrODB8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1j
W20+PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzMy
fDA7bj1lKzQwfDA7bz1lKzQ4fDA7cD1lKzY0fDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1l
fDA7ZkoobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9
PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWor
MXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02
OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+
Ml18MDtMNjp3aGlsZSgxKXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18
MCkhPShjW3orMTY+PjJdfDApKXtFPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJd
JjEyN10oeil8MCkhPS0xKXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXww
KT09MDtHPWNbZj4+Ml18MDtkb3tpZigoR3wwKT09MCl7SD0xN31lbHNle2lmKChjW0crMTI+PjJd
fDApIT0oY1tHKzE2Pj4yXXwwKSl7aWYoRil7ST1HO0o9MDticmVha31lbHNle0s9bjtMPUc7TT0w
O2JyZWFrIEw2fX1pZigoYjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2Nb
Zj4+Ml09MDtIPTE3O2JyZWFrfWVsc2V7Tj0oR3wwKT09MDtpZihGXk4pe0k9RztKPU47YnJlYWt9
ZWxzZXtLPW47TD1HO009TjticmVhayBMNn19fX13aGlsZSgwKTtpZigoSHwwKT09MTcpe0g9MDtp
ZihGKXtLPW47TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09
MDtpZigoKGNbcj4+Ml18MCktbnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089
Rz4+PjE7UD1HPj4+MX1lbHNle0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChh
W3FdJjEpPT0wKXtRPTEwfWVsc2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtx
XSYxKT09MCl7Uj1BfWVsc2V7Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9
RSsxMnwwO049Y1tHPj4yXXwwO1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBb
Y1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkco
VSx2LHcsUyxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+
Ml18MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtU
JjEyN10oRSl8MDtuPVM7ej1FO2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250
aW51ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9
ZG97aWYoKFZ8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1z
fDApPj0xNjApe2JyZWFrfVM9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUo
MCk7aFtsPj4zXT0rZk4oSyxjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihG
KXtXPTB9ZWxzZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31p
ZigoYjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+
PjJdPTA7Vz0wfX13aGlsZSgwKTtqPShXfDApPT0wO0w2Nzpkb3tpZihNKXtIPTU5fWVsc2V7ZG97
aWYoKGNbTCsxMj4+Ml18MCk9PShjW0wrMTY+PjJdfDApKXtpZigoYjBbY1soY1tMPj4yXXwwKSsz
Nj4+Ml0mMTI3XShMKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtIPTU5O2JyZWFrIEw2N319d2hp
bGUoMCk7aWYoIShqXihMfDApPT0wKSl7YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8p
O2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChIfDApPT01OSl7aWYoail7YnJlYWt9WD1ifDA7
Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4y
XXwyO1g9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZOKGIs
ZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAuMCxqPTAsaz0wLjA7Zj1pO2k9
aSs4fDA7Zz1mfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVybito
fWo9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09
MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hp
bGUoMCk7az0ra1coYixnLGNbMjk1OF18MCk7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0w
KXtjWyhidygpfDApPj4yXT1qfWlmKChjW2c+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4w
O2k9ZjtyZXR1cm4raH1pZigoYnwwKSE9MzQpe2g9aztpPWY7cmV0dXJuK2h9Y1tlPj4yXT00O2g9
aztpPWY7cmV0dXJuK2h9ZnVuY3Rpb24gZk8oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59
ZnVuY3Rpb24gZlAoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZlEoYixlLGYsZyxo
LGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0w
LFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MDtlPWk7aT1pKzY0fDA7bD1mO2Y9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tnPj4yXT1jW2w+PjJdO2w9ZXwwO209ZSsxNnwwO249ZSs0OHwwO289aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3A9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzty
PWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2skKG58MCwwLDEyKTt1PXA7ZWoobyxoKTtoPW98MDtvPWNbaD4+Ml18MDtpZigoY1szOTI0
XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2
LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO3Y9Y1tvKzg+PjJdfDA7ZG97aWYoKGNbbysxMj4+Ml18
MCktdj4+Mj4+PjA+bD4+PjApe3c9Y1t2KyhsPDwyKT4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9
eD13O3k9bXwwO3o9Y1soY1t3Pj4yXXwwKSszMj4+Ml18MDtjYVt6JjE1XSh4LDk3NDQsOTc3MCx5
KXwwO3g9Y1toPj4yXXwwO2R6KHgpfDA7ayQodXwwLDAsMTIpO3g9cDtkUihwLDEwLDApO2lmKChh
W3VdJjEpPT0wKXt6PXgrMXwwO0E9ejtCPXo7Qz1wKzh8MH1lbHNle3o9cCs4fDA7QT1jW3o+PjJd
fDA7Qj14KzF8MDtDPXp9Y1txPj4yXT1BO3o9cnwwO2Nbcz4+Ml09ejtjW3Q+PjJdPTA7eD1mfDA7
dz1nfDA7RD1wfDA7RT1wKzR8MDtGPUE7Rz1jW3g+PjJdfDA7TDExNzp3aGlsZSgxKXtkb3tpZigo
R3wwKT09MCl7SD0wfWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtIPUc7
YnJlYWt9aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCkhPS0xKXtIPUc7YnJl
YWt9Y1t4Pj4yXT0wO0g9MH19d2hpbGUoMCk7ST0oSHwwKT09MDtKPWNbdz4+Ml18MDtkb3tpZigo
SnwwKT09MCl7Sz0xMTB9ZWxzZXtpZigoY1tKKzEyPj4yXXwwKSE9KGNbSisxNj4+Ml18MCkpe2lm
KEkpe2JyZWFrfWVsc2V7TD1GO2JyZWFrIEwxMTd9fWlmKChiMFtjWyhjW0o+PjJdfDApKzM2Pj4y
XSYxMjddKEopfDApPT0tMSl7Y1t3Pj4yXT0wO0s9MTEwO2JyZWFrfWVsc2V7aWYoSV4oSnwwKT09
MCl7YnJlYWt9ZWxzZXtMPUY7YnJlYWsgTDExN319fX13aGlsZSgwKTtpZigoS3wwKT09MTEwKXtL
PTA7aWYoSSl7TD1GO2JyZWFrfX1KPWRbdV18MDtNPShKJjF8MCk9PTA7aWYoKChjW3E+PjJdfDAp
LUZ8MCk9PSgoTT9KPj4+MTpjW0U+PjJdfDApfDApKXtpZihNKXtOPUo+Pj4xO089Sj4+PjF9ZWxz
ZXtKPWNbRT4+Ml18MDtOPUo7Tz1KfWRSKHAsTjw8MSwwKTtpZigoYVt1XSYxKT09MCl7UD0xMH1l
bHNle1A9KGNbRD4+Ml0mLTIpLTF8MH1kUihwLFAsMCk7aWYoKGFbdV0mMSk9PTApe1E9Qn1lbHNl
e1E9Y1tDPj4yXXwwfWNbcT4+Ml09UStPO1I9UX1lbHNle1I9Rn1KPUgrMTJ8MDtNPWNbSj4+Ml18
MDtTPUgrMTZ8MDtpZigoTXwwKT09KGNbUz4+Ml18MCkpe1Q9KGIwW2NbKGNbSD4+Ml18MCkrMzY+
PjJdJjEyN10oSCl8MCkmMjU1fWVsc2V7VD1hW01dfDB9aWYoKGZzKFQsMTYsUixxLHQsMCxuLHos
cyx5KXwwKSE9MCl7TD1SO2JyZWFrfU09Y1tKPj4yXXwwO2lmKChNfDApPT0oY1tTPj4yXXwwKSl7
Uz1jWyhjW0g+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShIKXwwO0Y9UjtHPUg7Y29udGludWV9
ZWxzZXtjW0o+PjJdPU0rMTtGPVI7Rz1IO2NvbnRpbnVlfX1hW0wrM3wwXT0wO2Rve2lmKChhWzE2
MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7Rz1mUihMLGNbMjk1OF18MCwxMzIwLChGPWksaT1pKzh8MCxjW0Y+PjJd
PWssRil8MCl8MDtpPUY7aWYoKEd8MCkhPTEpe2Nbaj4+Ml09NH1HPWNbeD4+Ml18MDtkb3tpZigo
R3wwKT09MCl7VT0wfWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtVPUc7
YnJlYWt9aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCkhPS0xKXtVPUc7YnJl
YWt9Y1t4Pj4yXT0wO1U9MH19d2hpbGUoMCk7eD0oVXwwKT09MDtHPWNbdz4+Ml18MDtkb3tpZigo
R3wwKT09MCl7Sz0xNTV9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe2lm
KCF4KXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1lO3JldHVybn1pZigoYjBb
Y1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2Nbdz4+Ml09MDtLPTE1NTticmVh
a31pZighKHheKEd8MCk9PTApKXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1l
O3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEt8MCk9PTE1NSl7aWYoeCl7YnJlYWt9Vj1ifDA7Y1tW
Pj4yXT1VO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwy
O1Y9YnwwO2NbVj4+Ml09VTtkUChwKTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQp
fDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmUihhLGIsZCxlKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7Zj1pO2k9aSsxNnwwO2c9ZnwwO2g9ZztjW2g+
PjJdPWU7Y1toKzQ+PjJdPTA7aD1iQihifDApfDA7Yj1hWShhfDAsZHwwLGd8MCl8MDtpZigoaHww
KT09MCl7aT1mO3JldHVybiBifDB9YkIoaHwwKXwwO2k9ZjtyZXR1cm4gYnwwfWZ1bmN0aW9uIGZT
KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3ww
O3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxN
PTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89
MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MDtsPWk7aT1pKzEwNHwwO209ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07bT0oZy1mfDApLzEyfDA7bj1sfDA7ZG97aWYobT4+
PjA+MTAwKXtvPWtKKG0pfDA7aWYoKG98MCkhPTApe3A9bztxPW87YnJlYWt9a1goKTtwPTA7cT0w
fWVsc2V7cD1uO3E9MH19d2hpbGUoMCk7bj0oZnwwKT09KGd8MCk7aWYobil7cj1tO3M9MH1lbHNl
e289bTttPTA7dD1wO3U9Zjt3aGlsZSgxKXt2PWRbdV18MDtpZigodiYxfDApPT0wKXt3PXY+Pj4x
fWVsc2V7dz1jW3UrND4+Ml18MH1pZigod3wwKT09MCl7YVt0XT0yO3g9bSsxfDA7eT1vLTF8MH1l
bHNle2FbdF09MTt4PW07eT1vfXY9dSsxMnwwO2lmKCh2fDApPT0oZ3wwKSl7cj15O3M9eDticmVh
a31lbHNle289eTttPXg7dD10KzF8MDt1PXZ9fX11PWJ8MDtiPWV8MDtlPWg7dD0wO3g9cztzPXI7
d2hpbGUoMSl7cj1jW3U+PjJdfDA7ZG97aWYoKHJ8MCk9PTApe3o9MH1lbHNle209Y1tyKzEyPj4y
XXwwO2lmKChtfDApPT0oY1tyKzE2Pj4yXXwwKSl7QT1iMFtjWyhjW3I+PjJdfDApKzM2Pj4yXSYx
MjddKHIpfDB9ZWxzZXtBPWNbbT4+Ml18MH1pZigoQXwwKT09LTEpe2NbdT4+Ml09MDt6PTA7YnJl
YWt9ZWxzZXt6PWNbdT4+Ml18MDticmVha319fXdoaWxlKDApO3I9KHp8MCk9PTA7bT1jW2I+PjJd
fDA7aWYoKG18MCk9PTApe0I9ejtDPTB9ZWxzZXt5PWNbbSsxMj4+Ml18MDtpZigoeXwwKT09KGNb
bSsxNj4+Ml18MCkpe0Q9YjBbY1soY1ttPj4yXXwwKSszNj4+Ml0mMTI3XShtKXwwfWVsc2V7RD1j
W3k+PjJdfDB9aWYoKER8MCk9PS0xKXtjW2I+PjJdPTA7RT0wfWVsc2V7RT1tfUI9Y1t1Pj4yXXww
O0M9RX1GPShDfDApPT0wO2lmKCEoKHJeRikmKHN8MCkhPTApKXticmVha31yPWNbQisxMj4+Ml18
MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe0c9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3
XShCKXwwfWVsc2V7Rz1jW3I+PjJdfDB9aWYoayl7SD1HfWVsc2V7SD1iX1tjWyhjW2U+PjJdfDAp
KzI4Pj4yXSYzMV0oaCxHKXwwfWRve2lmKG4pe0k9eDtKPXN9ZWxzZXtyPXQrMXwwO0wyNDk6ZG97
aWYoayl7bT1zO3k9eDtvPXA7dz0wO3Y9Zjt3aGlsZSgxKXtkb3tpZigoYVtvXXwwKT09MSl7Sz12
O2lmKChhW0tdJjEpPT0wKXtMPXYrNHwwfWVsc2V7TD1jW3YrOD4+Ml18MH1pZigoSHwwKSE9KGNb
TCsodDw8Mik+PjJdfDApKXthW29dPTA7TT13O049eTtPPW0tMXwwO2JyZWFrfVA9ZFtLXXwwO2lm
KChQJjF8MCk9PTApe1E9UD4+PjF9ZWxzZXtRPWNbdis0Pj4yXXwwfWlmKChRfDApIT0ocnwwKSl7
TT0xO049eTtPPW07YnJlYWt9YVtvXT0yO009MTtOPXkrMXwwO089bS0xfDB9ZWxzZXtNPXc7Tj15
O089bX19d2hpbGUoMCk7UD12KzEyfDA7aWYoKFB8MCk9PShnfDApKXtSPU87Uz1OO1Q9TTticmVh
ayBMMjQ5fW09Tzt5PU47bz1vKzF8MDt3PU07dj1QfX1lbHNle3Y9czt3PXg7bz1wO3k9MDttPWY7
d2hpbGUoMSl7ZG97aWYoKGFbb118MCk9PTEpe1A9bTtpZigoYVtQXSYxKT09MCl7VT1tKzR8MH1l
bHNle1U9Y1ttKzg+PjJdfDB9aWYoKEh8MCkhPShiX1tjWyhjW2U+PjJdfDApKzI4Pj4yXSYzMV0o
aCxjW1UrKHQ8PDIpPj4yXXwwKXwwKSl7YVtvXT0wO1Y9eTtXPXc7WD12LTF8MDticmVha31LPWRb
UF18MDtpZigoSyYxfDApPT0wKXtZPUs+Pj4xfWVsc2V7WT1jW20rND4+Ml18MH1pZigoWXwwKSE9
KHJ8MCkpe1Y9MTtXPXc7WD12O2JyZWFrfWFbb109MjtWPTE7Vz13KzF8MDtYPXYtMXwwfWVsc2V7
Vj15O1c9dztYPXZ9fXdoaWxlKDApO0s9bSsxMnwwO2lmKChLfDApPT0oZ3wwKSl7Uj1YO1M9VztU
PVY7YnJlYWsgTDI0OX12PVg7dz1XO289bysxfDA7eT1WO209S319fXdoaWxlKDApO2lmKCFUKXtJ
PVM7Sj1SO2JyZWFrfXI9Y1t1Pj4yXXwwO209cisxMnwwO3k9Y1ttPj4yXXwwO2lmKCh5fDApPT0o
Y1tyKzE2Pj4yXXwwKSl7bz1jWyhjW3I+PjJdfDApKzQwPj4yXXwwO2IwW28mMTI3XShyKXwwfWVs
c2V7Y1ttPj4yXT15KzR9aWYoKFMrUnwwKT4+PjA8MnxuKXtJPVM7Sj1SO2JyZWFrfXk9dCsxfDA7
bT1TO3I9cDtvPWY7d2hpbGUoMSl7ZG97aWYoKGFbcl18MCk9PTIpe3c9ZFtvXXwwO2lmKCh3JjF8
MCk9PTApe1o9dz4+PjF9ZWxzZXtaPWNbbys0Pj4yXXwwfWlmKChafDApPT0oeXwwKSl7Xz1tO2Jy
ZWFrfWFbcl09MDtfPW0tMXwwfWVsc2V7Xz1tfX13aGlsZSgwKTt3PW8rMTJ8MDtpZigod3wwKT09
KGd8MCkpe0k9XztKPVI7YnJlYWt9ZWxzZXttPV87cj1yKzF8MDtvPXd9fX19d2hpbGUoMCk7dD10
KzF8MDt4PUk7cz1KfWRve2lmKChCfDApPT0wKXskPTF9ZWxzZXtKPWNbQisxMj4+Ml18MDtpZigo
SnwwKT09KGNbQisxNj4+Ml18MCkpe2FhPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MH1lbHNle2FhPWNbSj4+Ml18MH1pZigoYWF8MCk9PS0xKXtjW3U+PjJdPTA7JD0xO2JyZWFrfWVs
c2V7JD0oY1t1Pj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKEYpe2FiPTI2NH1lbHNl
e3U9Y1tDKzEyPj4yXXwwO2lmKCh1fDApPT0oY1tDKzE2Pj4yXXwwKSl7YWM9YjBbY1soY1tDPj4y
XXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7YWM9Y1t1Pj4yXXwwfWlmKChhY3wwKT09LTEpe2Nb
Yj4+Ml09MDthYj0yNjQ7YnJlYWt9ZWxzZXtpZigkXihDfDApPT0wKXticmVha31lbHNle2FiPTI2
NjticmVha319fX13aGlsZSgwKTtpZigoYWJ8MCk9PTI2NCl7aWYoJCl7YWI9MjY2fX1pZigoYWJ8
MCk9PTI2Nil7Y1tqPj4yXT1jW2o+PjJdfDJ9TDMzMDpkb3tpZihuKXthYj0yNzF9ZWxzZXskPWY7
Qz1wO3doaWxlKDEpe2lmKChhW0NdfDApPT0yKXthZD0kO2JyZWFrIEwzMzB9Yj0kKzEyfDA7aWYo
KGJ8MCk9PShnfDApKXthYj0yNzE7YnJlYWsgTDMzMH0kPWI7Qz1DKzF8MH19fXdoaWxlKDApO2lm
KChhYnwwKT09MjcxKXtjW2o+PjJdPWNbaj4+Ml18NDthZD1nfWlmKChxfDApPT0wKXtpPWw7cmV0
dXJuIGFkfDB9a0socSk7aT1sO3JldHVybiBhZHwwfWZ1bmN0aW9uIGZUKGIsZCxlLGYsZyxoLGop
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
O2s9aTtpPWkrMTEyfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4y
XTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209aysx
NnwwO249ayszMnwwO289ays0MHwwO3A9ays0OHwwO3E9ays1NnwwO3I9ays2NHwwO3M9ays3Mnww
O3Q9ays4MHwwO3U9aysxMDR8MDtpZigoY1tnKzQ+PjJdJjF8MCk9PTApe2Nbbj4+Ml09LTE7dj1j
WyhjW2Q+PjJdfDApKzE2Pj4yXXwwO3c9ZXwwO2NbcD4+Ml09Y1t3Pj4yXTtjW3E+PjJdPWNbZj4+
Ml07YlhbdiYxMjddKG8sZCxwLHEsZyxoLG4pO3E9Y1tvPj4yXXwwO2Nbdz4+Ml09cTtzd2l0Y2go
Y1tuPj4yXXwwKXtjYXNlIDE6e2Fbal09MTticmVha307Y2FzZSAwOnthW2pdPTA7YnJlYWt9O2Rl
ZmF1bHQ6e2Fbal09MTtjW2g+PjJdPTR9fWNbYj4+Ml09cTtpPWs7cmV0dXJufWVqKHIsZyk7cT1y
fDA7cj1jW3E+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW20+PjJdPTE1Njg4O2NbbSs0Pj4y
XT0xMjtjW20rOD4+Ml09MDtkVygxNTY4OCxtLDk2KX1tPShjWzM5MjNdfDApLTF8MDtuPWNbcis4
Pj4yXXwwO2Rve2lmKChjW3IrMTI+PjJdfDApLW4+PjI+Pj4wPm0+Pj4wKXt3PWNbbisobTw8Mik+
PjJdfDA7aWYoKHd8MCk9PTApe2JyZWFrfW89dzt3PWNbcT4+Ml18MDtkeih3KXwwO2VqKHMsZyk7
dz1zfDA7cD1jW3c+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0xKXtjW2w+PjJdPTE1MzA0O2NbbCs0
Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTMwNCxsLDk2KX1kPShjWzM4MjddfDApLTF8MDt2PWNb
cCs4Pj4yXXwwO2Rve2lmKChjW3ArMTI+PjJdfDApLXY+PjI+Pj4wPmQ+Pj4wKXt4PWNbdisoZDw8
Mik+PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDt6PWNbdz4+Ml18MDtkeih6KXwwO3o9dHww
O0E9eDtiWltjWyhjW0E+PjJdfDApKzI0Pj4yXSYxMjddKHoseSk7YlpbY1soY1tBPj4yXXwwKSsy
OD4+Ml0mMTI3XSh0KzEyfDAseSk7Y1t1Pj4yXT1jW2Y+PjJdO2Fbal09KGZTKGUsdSx6LHQrMjR8
MCxvLGgsMSl8MCk9PSh6fDApfDA7Y1tiPj4yXT1jW2U+PjJdO2VlKHQrMTJ8MCk7ZWUodHwwKTtp
PWs7cmV0dXJufX13aGlsZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hp
bGUoMCk7az1iTyg0KXwwO2txKGspO2JsKGt8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZlUoYixlLGYs
ZyxoLGksaixrLGwsbSl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7
az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0wO249Y1tnPj4yXXww
O289KG58MCk9PShmfDApO2Rve2lmKG8pe3A9KGNbbSs5Nj4+Ml18MCk9PShifDApO2lmKCFwKXtp
ZigoY1ttKzEwMD4+Ml18MCkhPShifDApKXticmVha319Y1tnPj4yXT1mKzE7YVtmXT1wPzQzOjQ1
O2NbaD4+Ml09MDtxPTA7cmV0dXJuIHF8MH19d2hpbGUoMCk7cD1kW2pdfDA7aWYoKHAmMXwwKT09
MCl7cj1wPj4+MX1lbHNle3I9Y1tqKzQ+PjJdfDB9aWYoKHJ8MCkhPTAmKGJ8MCk9PShpfDApKXtp
PWNbbD4+Ml18MDtpZigoaS1rfDApPj0xNjApe3E9MDtyZXR1cm4gcXwwfWs9Y1toPj4yXXwwO2Nb
bD4+Ml09aSs0O2NbaT4+Ml09aztjW2g+PjJdPTA7cT0wO3JldHVybiBxfDB9az1tKzEwNHwwO2k9
bTt3aGlsZSgxKXtpZigoaXwwKT09KGt8MCkpe3M9azticmVha31pZigoY1tpPj4yXXwwKT09KGJ8
MCkpe3M9aTticmVha31lbHNle2k9aSs0fDB9fWk9cy1tfDA7bT1pPj4yO2lmKChpfDApPjkyKXtx
PS0xO3JldHVybiBxfDB9TDM5ODpkb3tzd2l0Y2goZXwwKXtjYXNlIDg6Y2FzZSAxMDp7aWYoKG18
MCk8KGV8MCkpe2JyZWFrIEwzOTh9ZWxzZXtxPS0xfXJldHVybiBxfDB9O2Nhc2UgMTY6e2lmKChp
fDApPDg4KXticmVhayBMMzk4fWlmKG8pe3E9LTE7cmV0dXJuIHF8MH1pZigobi1mfDApPj0zKXtx
PS0xO3JldHVybiBxfDB9aWYoKGFbbi0xfDBdfDApIT00OCl7cT0tMTtyZXR1cm4gcXwwfWNbaD4+
Ml09MDtzPWFbOTc0NCttfDBdfDA7Yj1jW2c+PjJdfDA7Y1tnPj4yXT1iKzE7YVtiXT1zO3E9MDty
ZXR1cm4gcXwwfTtkZWZhdWx0Ont9fX13aGlsZSgwKTtmPWFbOTc0NCttfDBdfDA7Y1tnPj4yXT1u
KzE7YVtuXT1mO2NbaD4+Ml09KGNbaD4+Ml18MCkrMTtxPTA7cmV0dXJuIHF8MH1mdW5jdGlvbiBm
VihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8
MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wO2U9aTtp
PWkrMTQ0fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7
Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEy
fDA7bj1lKzEyOHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2gr
ND4+Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2
NDp7dD04O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwx
Mik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHww
fWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1ty
Pj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9
dzt3PWNbaD4+Ml18MDtMNDI2OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNb
dysxMj4+Ml18MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSsz
Nj4+Ml0mMTI3XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9
Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3ww
KT09MCl7Rj0zNjN9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkp
e0g9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYo
KEh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj0zNjM7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7
ST1DO0o9RzticmVha31lbHNle0s9bDtMPUM7TT1HO2JyZWFrIEw0MjZ9fX19d2hpbGUoMCk7aWYo
KEZ8MCk9PTM2Myl7Rj0wO2lmKEUpe0s9bDtMPTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1k
W29dfDA7Rz0oQyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4y
XXwwKXwwKSl7aWYoRyl7Tj1DPj4+MTtPPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tj1DO089Q31k
UihuLE48PDEsMCk7aWYoKGFbb10mMSk9PTApe1A9MTB9ZWxzZXtQPShjW2c+PjJdJi0yKS0xfDB9
ZFIobixQLDApO2lmKChhW29dJjEpPT0wKXtRPXh9ZWxzZXtRPWNbeT4+Ml18MH1jW3A+PjJdPVEr
TztSPVF9ZWxzZXtSPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7Uz1CKzE2fDA7aWYoKEd8MCk9PShj
W1M+PjJdfDApKXtUPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1Q9Y1tH
Pj4yXXwwfWlmKChmVShULHQsUixwLHMsQSxtLHYscix1KXwwKSE9MCl7Sz1SO0w9STtNPUo7YnJl
YWt9Rz1jW0M+PjJdfDA7aWYoKEd8MCk9PShjW1M+PjJdfDApKXtTPWNbKGNbQj4+Ml18MCkrNDA+
PjJdfDA7YjBbUyYxMjddKEIpfDA7bD1SO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9
Ujt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1U9dz4+PjF9ZWxzZXtVPWNb
bSs0Pj4yXXwwfWRve2lmKChVfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2Jy
ZWFrfVI9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09Un19d2hpbGUoMCk7Y1trPj4yXT1m
dShLLGNbcD4+Ml18MCxqLHQpfDA7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihFKXtWPTB9ZWxz
ZXtyPWNbQisxMj4+Ml18MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1c9YjBbY1soY1tCPj4y
XXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7Vz1jW3I+PjJdfDB9aWYoKFd8MCkhPS0xKXtWPUI7
YnJlYWt9Y1toPj4yXT0wO1Y9MH19d2hpbGUoMCk7aD0oVnwwKT09MDtkb3tpZihNKXtGPTQwNX1l
bHNle0I9Y1tMKzEyPj4yXXwwO2lmKChCfDApPT0oY1tMKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0w+
PjJdfDApKzM2Pj4yXSYxMjddKEwpfDB9ZWxzZXtYPWNbQj4+Ml18MH1pZigoWHwwKT09LTEpe2Nb
Zj4+Ml09MDtGPTQwNTticmVha31pZighKGheKEx8MCk9PTApKXticmVha31ZPWJ8MDtjW1k+PjJd
PVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTQwNSl7aWYo
aCl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Nbaj4+Ml09Y1tqPj4yXXwyO1k9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJu
fWZ1bmN0aW9uIGZXKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0w
LGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTA7Zj1pO2k9aSs0MHwwO2c9ZnwwO2g9Zisx
NnwwO2o9ZiszMnwwO2VqKGosYik7Yj1qfDA7aj1jW2I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0x
KXtjW2g+PjJdPTE1Njg4O2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTY4OCxoLDk2KX1o
PShjWzM5MjNdfDApLTF8MDtrPWNbais4Pj4yXXwwO2Rve2lmKChjW2orMTI+PjJdfDApLWs+PjI+
Pj4wPmg+Pj4wKXtsPWNbaysoaDw8Mik+PjJdfDA7aWYoKGx8MCk9PTApe2JyZWFrfW09bDtuPWNb
KGNbbD4+Ml18MCkrNDg+PjJdfDA7Y2FbbiYxNV0obSw5NzQ0LDk3NzAsZCl8MDttPWNbYj4+Ml18
MDtpZigoY1szODI2XXwwKSE9LTEpe2NbZz4+Ml09MTUzMDQ7Y1tnKzQ+PjJdPTEyO2NbZys4Pj4y
XT0wO2RXKDE1MzA0LGcsOTYpfW49KGNbMzgyN118MCktMXwwO2w9Y1ttKzg+PjJdfDA7ZG97aWYo
KGNbbSsxMj4+Ml18MCktbD4+Mj4+PjA+bj4+PjApe289Y1tsKyhuPDwyKT4+Ml18MDtpZigob3ww
KT09MCl7YnJlYWt9cD1vO2NbZT4+Ml09YjBbY1soY1tvPj4yXXwwKSsxNj4+Ml0mMTI3XShwKXww
O2JaW2NbKGNbbz4+Ml18MCkrMjA+PjJdJjEyN10oYSxwKTtwPWNbYj4+Ml18MDtkeihwKXwwO2k9
ZjtyZXR1cm59fXdoaWxlKDApO249Yk8oNCl8MDtrcShuKTtibChufDAsODE3NiwxMzQpfX13aGls
ZSgwKTtmPWJPKDQpfDA7a3EoZik7YmwoZnwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmWChiLGUsZixn
LGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89MCxQ
PTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2U9aTtpPWkrMTQ0fDA7
bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEy
OHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8
MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2Jy
ZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RS
KG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1u
Kzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nb
cz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+
Ml18MDtMNTM1OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18
MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3
XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0w
O0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj00
NTB9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1so
Y1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0x
KXtjW2Y+PjJdPTA7Rj00NTA7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9Rzti
cmVha31lbHNle0w9bDtNPUM7Tj1HO2JyZWFrIEw1MzV9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTQ1
MCl7Rj0wO2lmKEUpe0w9bDtNPTA7Tj0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0o
QyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7
aWYoRyl7Tz1DPj4+MTtQPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tz1DO1A9Q31kUihuLE88PDEs
MCk7aWYoKGFbb10mMSk9PTApe1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIobixRLDAp
O2lmKChhW29dJjEpPT0wKXtSPXh9ZWxzZXtSPWNbeT4+Ml18MH1jW3A+PjJdPVIrUDtTPVJ9ZWxz
ZXtTPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7VD1CKzE2fDA7aWYoKEd8MCk9PShjW1Q+PjJdfDAp
KXtVPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1U9Y1tHPj4yXXwwfWlm
KChmVShVLHQsUyxwLHMsQSxtLHYscix1KXwwKSE9MCl7TD1TO009STtOPUo7YnJlYWt9Rz1jW0M+
PjJdfDA7aWYoKEd8MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBb
VCYxMjddKEIpfDA7bD1TO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Uzt3PUI7Y29u
dGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Y9dz4+PjF9ZWxzZXtWPWNbbSs0Pj4yXXww
fWRve2lmKChWfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVM9Y1tz
Pj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09U319d2hpbGUoMCk7cz1mdyhMLGNbcD4+Ml18MCxq
LHQpfDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7
Vz0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtYPWIwW2Nb
KGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1g9Y1tyPj4yXXwwfWlmKChYfDApIT0t
MSl7Vz1CO2JyZWFrfWNbaD4+Ml09MDtXPTB9fXdoaWxlKDApO2g9KFd8MCk9PTA7ZG97aWYoTil7
Rj00OTJ9ZWxzZXtCPWNbTSsxMj4+Ml18MDtpZigoQnwwKT09KGNbTSsxNj4+Ml18MCkpe1k9YjBb
Y1soY1tNPj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0I+PjJdfDB9aWYoKFl8MCk9
PS0xKXtjW2Y+PjJdPTA7Rj00OTI7YnJlYWt9aWYoIShoXihNfDApPT0wKSl7YnJlYWt9Wj1ifDA7
Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT00
OTIpe2lmKGgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1l
O3JldHVybn1mdW5jdGlvbiBmWShlLGYsZyxoLGosayxsKXtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9
MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0w
LFg9MCxZPTAsWj0wO2Y9aTtpPWkrMTQ0fDA7bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zz4+Ml09Y1ttPj4yXTttPWg7aD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1toPj4yXT1jW20+PjJd
O209ZisxMDR8MDtuPWYrMTEyfDA7bz1mKzEyOHwwO3A9bztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztyPWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3N3aXRjaChjW2orND4+Ml0mNzR8MCl7Y2FzZSA4Ont1PTE2O2JyZWFrfTtjYXNlIDY0
Ont1PTg7YnJlYWt9O2Nhc2UgMDp7dT0wO2JyZWFrfTtkZWZhdWx0Ont1PTEwfX12PWZ8MDtmVyhu
LGosdixtKTtrJChwfDAsMCwxMik7aj1vO2RSKG8sMTAsMCk7aWYoKGFbcF0mMSk9PTApe3c9aisx
fDA7eD13O3k9dzt6PW8rOHwwfWVsc2V7dz1vKzh8MDt4PWNbdz4+Ml18MDt5PWorMXwwO3o9d31j
W3E+PjJdPXg7dz1yfDA7Y1tzPj4yXT13O2NbdD4+Ml09MDtqPWd8MDtnPWh8MDtoPW98MDtBPW8r
NHwwO0I9Y1ttPj4yXXwwO209eDt4PWNbaj4+Ml18MDtMNjI0OndoaWxlKDEpe2Rve2lmKCh4fDAp
PT0wKXtDPTB9ZWxzZXtEPWNbeCsxMj4+Ml18MDtpZigoRHwwKT09KGNbeCsxNj4+Ml18MCkpe0U9
YjBbY1soY1t4Pj4yXXwwKSszNj4+Ml0mMTI3XSh4KXwwfWVsc2V7RT1jW0Q+PjJdfDB9aWYoKEV8
MCkhPS0xKXtDPXg7YnJlYWt9Y1tqPj4yXT0wO0M9MH19d2hpbGUoMCk7Rj0oQ3wwKT09MDtEPWNb
Zz4+Ml18MDtkb3tpZigoRHwwKT09MCl7Rz01MjB9ZWxzZXtIPWNbRCsxMj4+Ml18MDtpZigoSHww
KT09KGNbRCsxNj4+Ml18MCkpe0k9YjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwfWVs
c2V7ST1jW0g+PjJdfDB9aWYoKEl8MCk9PS0xKXtjW2c+PjJdPTA7Rz01MjA7YnJlYWt9ZWxzZXtI
PShEfDApPT0wO2lmKEZeSCl7Sj1EO0s9SDticmVha31lbHNle0w9bTtNPUQ7Tj1IO2JyZWFrIEw2
MjR9fX19d2hpbGUoMCk7aWYoKEd8MCk9PTUyMCl7Rz0wO2lmKEYpe0w9bTtNPTA7Tj0xO2JyZWFr
fWVsc2V7Sj0wO0s9MX19RD1kW3BdfDA7SD0oRCYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1tfDAp
PT0oKEg/RD4+PjE6Y1tBPj4yXXwwKXwwKSl7aWYoSCl7Tz1EPj4+MTtQPUQ+Pj4xfWVsc2V7RD1j
W0E+PjJdfDA7Tz1EO1A9RH1kUihvLE88PDEsMCk7aWYoKGFbcF0mMSk9PTApe1E9MTB9ZWxzZXtR
PShjW2g+PjJdJi0yKS0xfDB9ZFIobyxRLDApO2lmKChhW3BdJjEpPT0wKXtSPXl9ZWxzZXtSPWNb
ej4+Ml18MH1jW3E+PjJdPVIrUDtTPVJ9ZWxzZXtTPW19RD1DKzEyfDA7SD1jW0Q+PjJdfDA7VD1D
KzE2fDA7aWYoKEh8MCk9PShjW1Q+PjJdfDApKXtVPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEy
N10oQyl8MH1lbHNle1U9Y1tIPj4yXXwwfWlmKChmVShVLHUsUyxxLHQsQixuLHcscyx2KXwwKSE9
MCl7TD1TO009SjtOPUs7YnJlYWt9SD1jW0Q+PjJdfDA7aWYoKEh8MCk9PShjW1Q+PjJdfDApKXtU
PWNbKGNbQz4+Ml18MCkrNDA+PjJdfDA7YjBbVCYxMjddKEMpfDA7bT1TO3g9Qztjb250aW51ZX1l
bHNle2NbRD4+Ml09SCs0O209Uzt4PUM7Y29udGludWV9fXg9ZFtuXXwwO2lmKCh4JjF8MCk9PTAp
e1Y9eD4+PjF9ZWxzZXtWPWNbbis0Pj4yXXwwfWRve2lmKChWfDApIT0wKXt4PWNbcz4+Ml18MDtp
ZigoeC1yfDApPj0xNjApe2JyZWFrfVM9Y1t0Pj4yXXwwO2Nbcz4+Ml09eCs0O2NbeD4+Ml09U319
d2hpbGUoMCk7YltsPj4xXT1meihMLGNbcT4+Ml18MCxrLHUpfDA7ZnQobix3LGNbcz4+Ml18MCxr
KTtkb3tpZihGKXtXPTB9ZWxzZXtzPWNbQysxMj4+Ml18MDtpZigoc3wwKT09KGNbQysxNj4+Ml18
MCkpe1g9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7WD1jW3M+PjJdfDB9
aWYoKFh8MCkhPS0xKXtXPUM7YnJlYWt9Y1tqPj4yXT0wO1c9MH19d2hpbGUoMCk7aj0oV3wwKT09
MDtkb3tpZihOKXtHPTU2Mn1lbHNle0M9Y1tNKzEyPj4yXXwwO2lmKChDfDApPT0oY1tNKzE2Pj4y
XXwwKSl7WT1iMFtjWyhjW00+PjJdfDApKzM2Pj4yXSYxMjddKE0pfDB9ZWxzZXtZPWNbQz4+Ml18
MH1pZigoWXwwKT09LTEpe2NbZz4+Ml09MDtHPTU2MjticmVha31pZighKGpeKE18MCk9PTApKXti
cmVha31aPWV8MDtjW1o+PjJdPVc7ZFAobyk7ZFAobik7aT1mO3JldHVybn19d2hpbGUoMCk7ZG97
aWYoKEd8MCk9PTU2Mil7aWYoail7YnJlYWt9Wj1lfDA7Y1taPj4yXT1XO2RQKG8pO2RQKG4pO2k9
ZjtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwyO1o9ZXwwO2NbWj4+Ml09VztkUChv
KTtkUChuKTtpPWY7cmV0dXJufWZ1bmN0aW9uIGZaKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTA7ZT1pO2k9aSsxNDR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+
PjJdPWNbbD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtuPWUrMTI4fDA7bz1uO3A9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7YnJl
YWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9
fXU9ZXwwO2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYx
KT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9
aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3ww
O2c9bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9Y1toPj4yXXwwO0w3MTM6d2hpbGUoMSl7
ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEyPj4yXXwwO2lmKChDfDApPT0oY1t3KzE2
Pj4yXXwwKSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDB9ZWxzZXtEPWNbQz4+
Ml18MH1pZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtFPShC
fDApPT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0wKXtGPTU5MH1lbHNle0c9Y1tDKzEyPj4y
XXwwO2lmKChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1iMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYx
MjddKEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHwwKT09LTEpe2NbZj4+Ml09MDtGPTU5MDti
cmVha31lbHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7Sj1HO2JyZWFrfWVsc2V7Sz1sO0w9QztN
PUc7YnJlYWsgTDcxM319fX13aGlsZSgwKTtpZigoRnwwKT09NTkwKXtGPTA7aWYoRSl7Sz1sO0w9
MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118MDtHPShDJjF8MCk9PTA7aWYoKChjW3A+
PjJdfDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDApfDApKXtpZihHKXtOPUM+Pj4xO089Qz4+
PjF9ZWxzZXtDPWNbej4+Ml18MDtOPUM7Tz1DfWRSKG4sTjw8MSwwKTtpZigoYVtvXSYxKT09MCl7
UD0xMH1lbHNle1A9KGNbZz4+Ml0mLTIpLTF8MH1kUihuLFAsMCk7aWYoKGFbb10mMSk9PTApe1E9
eH1lbHNle1E9Y1t5Pj4yXXwwfWNbcD4+Ml09UStPO1I9UX1lbHNle1I9bH1DPUIrMTJ8MDtHPWNb
Qz4+Ml18MDtTPUIrMTZ8MDtpZigoR3wwKT09KGNbUz4+Ml18MCkpe1Q9YjBbY1soY1tCPj4yXXww
KSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7VD1jW0c+PjJdfDB9aWYoKGZVKFQsdCxSLHAscyxBLG0s
dixyLHUpfDApIT0wKXtLPVI7TD1JO009SjticmVha31HPWNbQz4+Ml18MDtpZigoR3wwKT09KGNb
Uz4+Ml18MCkpe1M9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtTJjEyN10oQil8MDtsPVI7dz1C
O2NvbnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1SO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYo
KHcmMXwwKT09MCl7VT13Pj4+MX1lbHNle1U9Y1ttKzQ+PjJdfDB9ZG97aWYoKFV8MCkhPTApe3c9
Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9Uj1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7
Y1t3Pj4yXT1SfX13aGlsZSgwKTtjW2s+PjJdPWZCKEssY1twPj4yXXwwLGosdCl8MDtmdChtLHYs
Y1tyPj4yXXwwLGopO2Rve2lmKEUpe1Y9MH1lbHNle3I9Y1tCKzEyPj4yXXwwO2lmKChyfDApPT0o
Y1tCKzE2Pj4yXXwwKSl7Vz1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtX
PWNbcj4+Ml18MH1pZigoV3wwKSE9LTEpe1Y9QjticmVha31jW2g+PjJdPTA7Vj0wfX13aGlsZSgw
KTtoPShWfDApPT0wO2Rve2lmKE0pe0Y9NjMyfWVsc2V7Qj1jW0wrMTI+PjJdfDA7aWYoKEJ8MCk9
PShjW0wrMTY+PjJdfDApKXtYPWIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MH1lbHNl
e1g9Y1tCPj4yXXwwfWlmKChYfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NjMyO2JyZWFrfWlmKCEoaF4o
THwwKT09MCkpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtkb3tpZigoRnwwKT09NjMyKXtpZihoKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAo
bik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7WT1ifDA7Y1tZ
Pj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZl8oYixlLGYsZyxoLGosayl7
Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MDtlPWk7aT1pKzE0NHwwO2w9ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzExMnwwO249ZSsxMjh8MDtvPW47
cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2Ug
ODp7dD0xNjticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307ZGVm
YXVsdDp7dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDAp
O2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1j
W3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7
aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1jW2g+PjJdfDA7TDgw
Mjp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+PjJdfDA7aWYoKEN8
MCk9PShjW3crMTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MH1l
bHNle0Q9Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdo
aWxlKDApO0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTApe0Y9NjYwfWVsc2V7
Rz1jW0MrMTI+PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDApKXtIPWIwW2NbKGNbQz4+Ml18
MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlmKChIfDApPT0tMSl7Y1tmPj4y
XT0wO0Y9NjYwO2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztKPUc7YnJlYWt9ZWxz
ZXtLPWw7TD1DO009RzticmVhayBMODAyfX19fXdoaWxlKDApO2lmKChGfDApPT02NjApe0Y9MDtp
ZihFKXtLPWw7TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUM9ZFtvXXwwO0c9KEMmMXwwKT09
MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEcpe049
Qz4+PjE7Tz1DPj4+MX1lbHNle0M9Y1t6Pj4yXXwwO049QztPPUN9ZFIobixOPDwxLDApO2lmKChh
W29dJjEpPT0wKXtQPTEwfWVsc2V7UD0oY1tnPj4yXSYtMiktMXwwfWRSKG4sUCwwKTtpZigoYVtv
XSYxKT09MCl7UT14fWVsc2V7UT1jW3k+PjJdfDB9Y1twPj4yXT1RK087Uj1RfWVsc2V7Uj1sfUM9
QisxMnwwO0c9Y1tDPj4yXXwwO1M9QisxNnwwO2lmKChHfDApPT0oY1tTPj4yXXwwKSl7VD1iMFtj
WyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtUPWNbRz4+Ml18MH1pZigoZlUoVCx0
LFIscCxzLEEsbSx2LHIsdSl8MCkhPTApe0s9UjtMPUk7TT1KO2JyZWFrfUc9Y1tDPj4yXXwwO2lm
KChHfDApPT0oY1tTPj4yXXwwKSl7Uz1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShC
KXwwO2w9Ujt3PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDtsPVI7dz1CO2NvbnRpbnVlfX13
PWRbbV18MDtpZigodyYxfDApPT0wKXtVPXc+Pj4xfWVsc2V7VT1jW20rND4+Ml18MH1kb3tpZigo
VXwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31SPWNbcz4+Ml18MDtj
W3I+PjJdPXcrNDtjW3c+PjJdPVJ9fXdoaWxlKDApO2Nbaz4+Ml09ZkQoSyxjW3A+PjJdfDAsaix0
KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7Vj0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7
aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtXPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10o
Qil8MH1lbHNle1c9Y1tyPj4yXXwwfWlmKChXfDApIT0tMSl7Vj1CO2JyZWFrfWNbaD4+Ml09MDtW
PTB9fXdoaWxlKDApO2g9KFZ8MCk9PTA7ZG97aWYoTSl7Rj03MDJ9ZWxzZXtCPWNbTCsxMj4+Ml18
MDtpZigoQnwwKT09KGNbTCsxNj4+Ml18MCkpe1g9YjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3
XShMKXwwfWVsc2V7WD1jW0I+PjJdfDB9aWYoKFh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj03MDI7YnJl
YWt9aWYoIShoXihMfDApPT0wKSl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT03MDIpe2lmKGgpe2JyZWFrfVk9YnwwO2Nb
WT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18
MjtZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmJChiLGUs
ZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIg
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89
MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2U9aTtpPWkrMTQ0
fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1l
KzEyOHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0m
NzR8MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04
O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1u
O2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7
dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12
O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNb
aD4+Ml18MDtMODkxOndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+
Ml18MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0m
MTI3XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4y
XT0wO0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7
Rj03MzB9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBb
Y1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9
PS0xKXtjW2Y+PjJdPTA7Rj03MzA7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9
RzticmVha31lbHNle0w9bDtNPUM7Tj1HO2JyZWFrIEw4OTF9fX19d2hpbGUoMCk7aWYoKEZ8MCk9
PTczMCl7Rj0wO2lmKEUpe0w9bDtNPTA7Tj0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7
Rz0oQyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXww
KSl7aWYoRyl7Tz1DPj4+MTtQPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tz1DO1A9Q31kUihuLE88
PDEsMCk7aWYoKGFbb10mMSk9PTApe1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIobixR
LDApO2lmKChhW29dJjEpPT0wKXtSPXh9ZWxzZXtSPWNbeT4+Ml18MH1jW3A+PjJdPVIrUDtTPVJ9
ZWxzZXtTPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7VD1CKzE2fDA7aWYoKEd8MCk9PShjW1Q+PjJd
fDApKXtVPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1U9Y1tHPj4yXXww
fWlmKChmVShVLHQsUyxwLHMsQSxtLHYscix1KXwwKSE9MCl7TD1TO009STtOPUo7YnJlYWt9Rz1j
W0M+PjJdfDA7aWYoKEd8MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7
YjBbVCYxMjddKEIpfDA7bD1TO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Uzt3PUI7
Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Y9dz4+PjF9ZWxzZXtWPWNbbSs0Pj4y
XXwwfWRve2lmKChWfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVM9
Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09U319d2hpbGUoMCk7cz1mRihMLGNbcD4+Ml18
MCxqLHQpfDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYo
RSl7Vz0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtYPWIw
W2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1g9Y1tyPj4yXXwwfWlmKChYfDAp
IT0tMSl7Vz1CO2JyZWFrfWNbaD4+Ml09MDtXPTB9fXdoaWxlKDApO2g9KFd8MCk9PTA7ZG97aWYo
Til7Rj03NzJ9ZWxzZXtCPWNbTSsxMj4+Ml18MDtpZigoQnwwKT09KGNbTSsxNj4+Ml18MCkpe1k9
YjBbY1soY1tNPj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0I+PjJdfDB9aWYoKFl8
MCk9PS0xKXtjW2Y+PjJdPTA7Rj03NzI7YnJlYWt9aWYoIShoXihNfDApPT0wKSl7YnJlYWt9Wj1i
fDA7Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDAp
PT03NzIpe2lmKGgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJu
fX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7
aT1lO3JldHVybn1mdW5jdGlvbiBmMChiLGUsZixoLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDto
PWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAs
Vz0wLFg9MCxZPTAsWj0wLF89MCwkPTA7ZT1pO2k9aSsxNzZ8MDttPWY7Zj1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2g+
PjJdPWNbbT4+Ml07bT1lKzEyOHwwO249ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1lKzE2MHwwO3E9cDty
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtp
PWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2YxKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtk
UihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9
cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtj
W3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1ofDA7aD1wfDA7Qz1wKzR8MDtEPWNbbT4+
Ml18MDttPWNbbj4+Ml18MDtuPXo7ej1jW2o+PjJdfDA7TDk3NTp3aGlsZSgxKXtkb3tpZigoenww
KT09MCl7RT0wfWVsc2V7Rj1jW3orMTI+PjJdfDA7aWYoKEZ8MCk9PShjW3orMTY+PjJdfDApKXtH
PWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1tGPj4yXXwwfWlmKChH
fDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7Rj1j
W2Y+PjJdfDA7ZG97aWYoKEZ8MCk9PTApe0k9Nzk2fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYoKEp8
MCk9PShjW0YrMTY+PjJdfDApKXtLPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8MH1l
bHNle0s9Y1tKPj4yXXwwfWlmKChLfDApPT0tMSl7Y1tmPj4yXT0wO0k9Nzk2O2JyZWFrfWVsc2V7
Sj0oRnwwKT09MDtpZihIXkope0w9RjtNPUo7YnJlYWt9ZWxzZXtOPW47Tz1GO1A9SjticmVhayBM
OTc1fX19fXdoaWxlKDApO2lmKChJfDApPT03OTYpe0k9MDtpZihIKXtOPW47Tz0wO1A9MTticmVh
a31lbHNle0w9MDtNPTF9fUY9ZFtxXXwwO0o9KEYmMXwwKT09MDtpZigoKGNbcj4+Ml18MCktbnww
KT09KChKP0Y+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKEope1E9Rj4+PjE7Uj1GPj4+MX1lbHNle0Y9
Y1tDPj4yXXwwO1E9RjtSPUZ9ZFIocCxRPDwxLDApO2lmKChhW3FdJjEpPT0wKXtTPTEwfWVsc2V7
Uz0oY1toPj4yXSYtMiktMXwwfWRSKHAsUywwKTtpZigoYVtxXSYxKT09MCl7VD1BfWVsc2V7VD1j
W0I+PjJdfDB9Y1tyPj4yXT1UK1I7VT1UfWVsc2V7VT1ufUY9RSsxMnwwO0o9Y1tGPj4yXXwwO1Y9
RSsxNnwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vz1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYx
MjddKEUpfDB9ZWxzZXtXPWNbSj4+Ml18MH1pZigoZjIoVyx2LHcsVSxyLEQsbSxvLHksdCx1LHgp
fDApIT0wKXtOPVU7Tz1MO1A9TTticmVha31KPWNbRj4+Ml18MDtpZigoSnwwKT09KGNbVj4+Ml18
MCkpe1Y9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtWJjEyN10oRSl8MDtuPVU7ej1FO2NvbnRp
bnVlfWVsc2V7Y1tGPj4yXT1KKzQ7bj1VO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYoKHomMXww
KT09MCl7WD16Pj4+MX1lbHNle1g9Y1tvKzQ+PjJdfDB9ZG97aWYoKFh8MCkhPTApe2lmKChhW3Zd
JjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVU9Y1t1Pj4y
XXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09VX19d2hpbGUoMCk7Z1tsPj4yXT0rZkkoTixjW3I+PjJd
fDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihIKXtZPTB9ZWxzZXt0PWNbRSsxMj4+Ml18
MDtpZigodHwwKT09KGNbRSsxNj4+Ml18MCkpe1o9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3
XShFKXwwfWVsc2V7Wj1jW3Q+PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUU7YnJlYWt9Y1tqPj4yXT0w
O1k9MH19d2hpbGUoMCk7aj0oWXwwKT09MDtkb3tpZihQKXtJPTgzOX1lbHNle0U9Y1tPKzEyPj4y
XXwwO2lmKChFfDApPT0oY1tPKzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW08+PjJdfDApKzM2Pj4yXSYx
MjddKE8pfDB9ZWxzZXtfPWNbRT4+Ml18MH1pZigoX3wwKT09LTEpe2NbZj4+Ml09MDtJPTgzOTti
cmVha31pZighKGpeKE98MCk9PTApKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7
aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEl8MCk9PTgzOSl7aWYoail7YnJlYWt9JD1ifDA7
Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4y
XXwyOyQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGYxKGEs
YixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zz1pO2k9aSs0MHwwO2g9Z3wwO2o9ZysxNnww
O2s9ZyszMnwwO2VqKGssYik7Yj1rfDA7az1jW2I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtj
W2o+PjJdPTE1Njg4O2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTY4OCxqLDk2KX1qPShj
WzM5MjNdfDApLTF8MDtsPWNbays4Pj4yXXwwO2Rve2lmKChjW2srMTI+PjJdfDApLWw+PjI+Pj4w
Pmo+Pj4wKXttPWNbbCsoajw8Mik+PjJdfDA7aWYoKG18MCk9PTApe2JyZWFrfW49bTtvPWNbKGNb
bT4+Ml18MCkrNDg+PjJdfDA7Y2FbbyYxNV0obiw5NzQ0LDk3NzYsZCl8MDtuPWNbYj4+Ml18MDtp
ZigoY1szODI2XXwwKSE9LTEpe2NbaD4+Ml09MTUzMDQ7Y1toKzQ+PjJdPTEyO2NbaCs4Pj4yXT0w
O2RXKDE1MzA0LGgsOTYpfW89KGNbMzgyN118MCktMXwwO209Y1tuKzg+PjJdfDA7ZG97aWYoKGNb
bisxMj4+Ml18MCktbT4+Mj4+PjA+bz4+PjApe3A9Y1ttKyhvPDwyKT4+Ml18MDtpZigocHwwKT09
MCl7YnJlYWt9cT1wO3I9cDtjW2U+PjJdPWIwW2NbKGNbcj4+Ml18MCkrMTI+PjJdJjEyN10ocSl8
MDtjW2Y+PjJdPWIwW2NbKGNbcj4+Ml18MCkrMTY+PjJdJjEyN10ocSl8MDtiWltjWyhjW3A+PjJd
fDApKzIwPj4yXSYxMjddKGEscSk7cT1jW2I+PjJdfDA7ZHoocSl8MDtpPWc7cmV0dXJufX13aGls
ZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7Zz1iTyg0KXww
O2txKGcpO2JsKGd8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZjIoYixlLGYsZyxoLGksaixrLGwsbSxu
LG8pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHww
O209bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9MCxzPTAsdD0wO2lmKChifDApPT0oaXww
KSl7aWYoKGFbZV0mMSk9PTApe3A9LTE7cmV0dXJuIHB8MH1hW2VdPTA7aT1jW2g+PjJdfDA7Y1to
Pj4yXT1pKzE7YVtpXT00NjtpPWRba118MDtpZigoaSYxfDApPT0wKXtxPWk+Pj4xfWVsc2V7cT1j
W2srND4+Ml18MH1pZigocXwwKT09MCl7cD0wO3JldHVybiBwfDB9cT1jW20+PjJdfDA7aWYoKHEt
bHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8MH1pPWNbbj4+Ml18MDtjW20+PjJdPXErNDtjW3E+PjJd
PWk7cD0wO3JldHVybiBwfDB9ZG97aWYoKGJ8MCk9PShqfDApKXtpPWRba118MDtpZigoaSYxfDAp
PT0wKXtyPWk+Pj4xfWVsc2V7cj1jW2srND4+Ml18MH1pZigocnwwKT09MCl7YnJlYWt9aWYoKGFb
ZV0mMSk9PTApe3A9LTE7cmV0dXJuIHB8MH1pPWNbbT4+Ml18MDtpZigoaS1sfDApPj0xNjApe3A9
MDtyZXR1cm4gcHwwfXE9Y1tuPj4yXXwwO2NbbT4+Ml09aSs0O2NbaT4+Ml09cTtjW24+PjJdPTA7
cD0wO3JldHVybiBwfDB9fXdoaWxlKDApO3I9bysxMjh8MDtqPW87d2hpbGUoMSl7aWYoKGp8MCk9
PShyfDApKXtzPXI7YnJlYWt9aWYoKGNbaj4+Ml18MCk9PShifDApKXtzPWo7YnJlYWt9ZWxzZXtq
PWorNHwwfX1qPXMtb3wwO289aj4+MjtpZigoanwwKT4xMjQpe3A9LTE7cmV0dXJuIHB8MH1zPWFb
OTc0NCtvfDBdfDA7TDExMTU6ZG97c3dpdGNoKG98MCl7Y2FzZSAyNTpjYXNlIDI0OntiPWNbaD4+
Ml18MDtkb3tpZigoYnwwKSE9KGd8MCkpe2lmKChhW2ItMXwwXSY5NXwwKT09KGFbZl0mMTI3fDAp
KXticmVha31lbHNle3A9LTF9cmV0dXJuIHB8MH19d2hpbGUoMCk7Y1toPj4yXT1iKzE7YVtiXT1z
O3A9MDtyZXR1cm4gcHwwfTtjYXNlIDIyOmNhc2UgMjM6e2FbZl09ODA7YnJlYWt9O2RlZmF1bHQ6
e3I9YVtmXXwwO2lmKChzJjk1fDApIT0ocjw8MjQ+PjI0fDApKXticmVhayBMMTExNX1hW2ZdPXJ8
LTEyODtpZigoYVtlXSYxKT09MCl7YnJlYWsgTDExMTV9YVtlXT0wO3I9ZFtrXXwwO2lmKChyJjF8
MCk9PTApe3Q9cj4+PjF9ZWxzZXt0PWNbays0Pj4yXXwwfWlmKCh0fDApPT0wKXticmVhayBMMTEx
NX1yPWNbbT4+Ml18MDtpZigoci1sfDApPj0xNjApe2JyZWFrIEwxMTE1fXE9Y1tuPj4yXXwwO2Nb
bT4+Ml09cis0O2Nbcj4+Ml09cX19fXdoaWxlKDApO209Y1toPj4yXXwwO2NbaD4+Ml09bSsxO2Fb
bV09cztpZigoanwwKT44NCl7cD0wO3JldHVybiBwfDB9Y1tuPj4yXT0oY1tuPj4yXXwwKSsxO3A9
MDtyZXR1cm4gcHwwfWZ1bmN0aW9uIGYzKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MDtlPWk7aT1pKzE3NnwwO209ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zz4+Ml09Y1ttPj4yXTttPWUrMTI4fDA7bj1lKzEzNnwwO289ZSsxNDR8MDtwPWUrMTYwfDA7cT1w
O3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1p
O2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZjEobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1w
O2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7
eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15
O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9Y1tt
Pj4yXXwwO209Y1tuPj4yXXwwO249ejt6PWNbaj4+Ml18MDtMMTE0Mzp3aGlsZSgxKXtkb3tpZigo
enwwKT09MCl7RT0wfWVsc2V7Rj1jW3orMTI+PjJdfDA7aWYoKEZ8MCk9PShjW3orMTY+PjJdfDAp
KXtHPWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1tGPj4yXXwwfWlm
KChHfDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7
Rj1jW2Y+PjJdfDA7ZG97aWYoKEZ8MCk9PTApe0k9OTI5fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYo
KEp8MCk9PShjW0YrMTY+PjJdfDApKXtLPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8
MH1lbHNle0s9Y1tKPj4yXXwwfWlmKChLfDApPT0tMSl7Y1tmPj4yXT0wO0k9OTI5O2JyZWFrfWVs
c2V7Sj0oRnwwKT09MDtpZihIXkope0w9RjtNPUo7YnJlYWt9ZWxzZXtOPW47Tz1GO1A9SjticmVh
ayBMMTE0M319fX13aGlsZSgwKTtpZigoSXwwKT09OTI5KXtJPTA7aWYoSCl7Tj1uO089MDtQPTE7
YnJlYWt9ZWxzZXtMPTA7TT0xfX1GPWRbcV18MDtKPShGJjF8MCk9PTA7aWYoKChjW3I+PjJdfDAp
LW58MCk9PSgoSj9GPj4+MTpjW0M+PjJdfDApfDApKXtpZihKKXtRPUY+Pj4xO1I9Rj4+PjF9ZWxz
ZXtGPWNbQz4+Ml18MDtRPUY7Uj1GfWRSKHAsUTw8MSwwKTtpZigoYVtxXSYxKT09MCl7Uz0xMH1l
bHNle1M9KGNbZz4+Ml0mLTIpLTF8MH1kUihwLFMsMCk7aWYoKGFbcV0mMSk9PTApe1Q9QX1lbHNl
e1Q9Y1tCPj4yXXwwfWNbcj4+Ml09VCtSO1U9VH1lbHNle1U9bn1GPUUrMTJ8MDtKPWNbRj4+Ml18
MDtWPUUrMTZ8MDtpZigoSnwwKT09KGNbVj4+Ml18MCkpe1c9YjBbY1soY1tFPj4yXXwwKSszNj4+
Ml0mMTI3XShFKXwwfWVsc2V7Vz1jW0o+PjJdfDB9aWYoKGYyKFcsdix3LFUscixELG0sbyx5LHQs
dSx4KXwwKSE9MCl7Tj1VO089TDtQPU07YnJlYWt9Sj1jW0Y+PjJdfDA7aWYoKEp8MCk9PShjW1Y+
PjJdfDApKXtWPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbViYxMjddKEUpfDA7bj1VO3o9RTtj
b250aW51ZX1lbHNle2NbRj4+Ml09Sis0O249VTt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6
JjF8MCk9PTApe1g9ej4+PjF9ZWxzZXtYPWNbbys0Pj4yXXwwfWRve2lmKChYfDApIT0wKXtpZigo
YVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVha31VPWNb
dT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVV9fXdoaWxlKDApO2hbbD4+M109K2ZMKE4sY1ty
Pj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoSCl7WT0wfWVsc2V7dD1jW0UrMTI+
PjJdfDA7aWYoKHR8MCk9PShjW0UrMTY+PjJdfDApKXtaPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJd
JjEyN10oRSl8MH1lbHNle1o9Y1t0Pj4yXXwwfWlmKChafDApIT0tMSl7WT1FO2JyZWFrfWNbaj4+
Ml09MDtZPTB9fXdoaWxlKDApO2o9KFl8MCk9PTA7ZG97aWYoUCl7ST05NzJ9ZWxzZXtFPWNbTysx
Mj4+Ml18MDtpZigoRXwwKT09KGNbTysxNj4+Ml18MCkpe189YjBbY1soY1tPPj4yXXwwKSszNj4+
Ml0mMTI3XShPKXwwfWVsc2V7Xz1jW0U+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2Y+PjJdPTA7ST05
NzI7YnJlYWt9aWYoIShqXihPfDApPT0wKSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQ
KG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChJfDApPT05NzIpe2lmKGope2JyZWFrfSQ9
YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNb
az4+Ml18MjskPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBm
NChiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPWx8
MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAs
Tj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwk
PTA7ZT1pO2k9aSsxNzZ8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+
PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzEyOHww
O249ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1lKzE2MHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9
ZXwwO2YxKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEp
PT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1q
KzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109
Njk7aj1mfDA7Zj1nfDA7Zz1wfDA7Qz1wKzR8MDtEPWNbbT4+Ml18MDttPWNbbj4+Ml18MDtuPXo7
ej1jW2o+PjJdfDA7TDEyMjg6d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle0Y9Y1t6
KzEyPj4yXXwwO2lmKChGfDApPT0oY1t6KzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW3o+PjJdfDApKzM2
Pj4yXSYxMjddKHopfDB9ZWxzZXtHPWNbRj4+Ml18MH1pZigoR3wwKSE9LTEpe0U9ejticmVha31j
W2o+PjJdPTA7RT0wfX13aGlsZSgwKTtIPShFfDApPT0wO0Y9Y1tmPj4yXXwwO2Rve2lmKChGfDAp
PT0wKXtJPTk5Nn1lbHNle0o9Y1tGKzEyPj4yXXwwO2lmKChKfDApPT0oY1tGKzE2Pj4yXXwwKSl7
Sz1iMFtjWyhjW0Y+PjJdfDApKzM2Pj4yXSYxMjddKEYpfDB9ZWxzZXtLPWNbSj4+Ml18MH1pZigo
S3wwKT09LTEpe2NbZj4+Ml09MDtJPTk5NjticmVha31lbHNle0o9KEZ8MCk9PTA7aWYoSF5KKXtM
PUY7TT1KO2JyZWFrfWVsc2V7Tj1uO089RjtQPUo7YnJlYWsgTDEyMjh9fX19d2hpbGUoMCk7aWYo
KEl8MCk9PTk5Nil7ST0wO2lmKEgpe049bjtPPTA7UD0xO2JyZWFrfWVsc2V7TD0wO009MX19Rj1k
W3FdfDA7Sj0oRiYxfDApPT0wO2lmKCgoY1tyPj4yXXwwKS1ufDApPT0oKEo/Rj4+PjE6Y1tDPj4y
XXwwKXwwKSl7aWYoSil7UT1GPj4+MTtSPUY+Pj4xfWVsc2V7Rj1jW0M+PjJdfDA7UT1GO1I9Rn1k
UihwLFE8PDEsMCk7aWYoKGFbcV0mMSk9PTApe1M9MTB9ZWxzZXtTPShjW2c+PjJdJi0yKS0xfDB9
ZFIocCxTLDApO2lmKChhW3FdJjEpPT0wKXtUPUF9ZWxzZXtUPWNbQj4+Ml18MH1jW3I+PjJdPVQr
UjtVPVR9ZWxzZXtVPW59Rj1FKzEyfDA7Sj1jW0Y+PjJdfDA7Vj1FKzE2fDA7aWYoKEp8MCk9PShj
W1Y+PjJdfDApKXtXPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1lbHNle1c9Y1tK
Pj4yXXwwfWlmKChmMihXLHYsdyxVLHIsRCxtLG8seSx0LHUseCl8MCkhPTApe049VTtPPUw7UD1N
O2JyZWFrfUo9Y1tGPj4yXXwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vj1jWyhjW0U+PjJdfDAp
KzQwPj4yXXwwO2IwW1YmMTI3XShFKXwwO249VTt6PUU7Y29udGludWV9ZWxzZXtjW0Y+PjJdPUor
NDtuPVU7ej1FO2NvbnRpbnVlfX16PWRbb118MDtpZigoeiYxfDApPT0wKXtYPXo+Pj4xfWVsc2V7
WD1jW28rND4+Ml18MH1kb3tpZigoWHwwKSE9MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0
Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7YnJlYWt9VT1jW3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6
Pj4yXT1VfX13aGlsZSgwKTtoW2w+PjNdPStmTihOLGNbcj4+Ml18MCxrKTtmdChvLHksY1t0Pj4y
XXwwLGspO2Rve2lmKEgpe1k9MH1lbHNle3Q9Y1tFKzEyPj4yXXwwO2lmKCh0fDApPT0oY1tFKzE2
Pj4yXXwwKSl7Wj1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDB9ZWxzZXtaPWNbdD4+
Ml18MH1pZigoWnwwKSE9LTEpe1k9RTticmVha31jW2o+PjJdPTA7WT0wfX13aGlsZSgwKTtqPShZ
fDApPT0wO2Rve2lmKFApe0k9MTAzOX1lbHNle0U9Y1tPKzEyPj4yXXwwO2lmKChFfDApPT0oY1tP
KzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW08+PjJdfDApKzM2Pj4yXSYxMjddKE8pfDB9ZWxzZXtfPWNb
RT4+Ml18MH1pZigoX3wwKT09LTEpe2NbZj4+Ml09MDtJPTEwMzk7YnJlYWt9aWYoIShqXihPfDAp
PT0wKSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxl
KDApO2Rve2lmKChJfDApPT0xMDM5KXtpZihqKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7
ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7JD1ifDA7Y1skPj4y
XT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZjUoYSl7YT1hfDA7ZGUoYXwwKTtr
UyhhKTtyZXR1cm59ZnVuY3Rpb24gZjYoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24g
ZjcoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1r
fDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTA7
ZT1pO2k9aSsxMzZ8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJd
O2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2
fDA7bj1lKzEyMHwwO289aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3A9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8MztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztyPWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2skKG58MCwwLDEyKTt1PXA7ZWoobyxo
KTtoPW98MDtvPWNbaD4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1ts
KzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO3Y9
Y1tvKzg+PjJdfDA7ZG97aWYoKGNbbysxMj4+Ml18MCktdj4+Mj4+PjA+bD4+PjApe3c9Y1t2Kyhs
PDwyKT4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9eD13O3k9bXwwO3o9Y1soY1t3Pj4yXXwwKSs0
OD4+Ml18MDtjYVt6JjE1XSh4LDk3NDQsOTc3MCx5KXwwO3g9Y1toPj4yXXwwO2R6KHgpfDA7ayQo
dXwwLDAsMTIpO3g9cDtkUihwLDEwLDApO2lmKChhW3VdJjEpPT0wKXt6PXgrMXwwO0E9ejtCPXo7
Qz1wKzh8MH1lbHNle3o9cCs4fDA7QT1jW3o+PjJdfDA7Qj14KzF8MDtDPXp9Y1txPj4yXT1BO3o9
cnwwO2Nbcz4+Ml09ejtjW3Q+PjJdPTA7eD1mfDA7dz1nfDA7RD1wfDA7RT1wKzR8MDtGPUE7Rz1j
W3g+PjJdfDA7TDEzMjM6d2hpbGUoMSl7ZG97aWYoKEd8MCk9PTApe0g9MH1lbHNle0k9Y1tHKzEy
Pj4yXXwwO2lmKChJfDApPT0oY1tHKzE2Pj4yXXwwKSl7Sj1iMFtjWyhjW0c+PjJdfDApKzM2Pj4y
XSYxMjddKEcpfDB9ZWxzZXtKPWNbST4+Ml18MH1pZigoSnwwKSE9LTEpe0g9RzticmVha31jW3g+
PjJdPTA7SD0wfX13aGlsZSgwKTtJPShIfDApPT0wO0s9Y1t3Pj4yXXwwO2Rve2lmKChLfDApPT0w
KXtMPTEwNzN9ZWxzZXtNPWNbSysxMj4+Ml18MDtpZigoTXwwKT09KGNbSysxNj4+Ml18MCkpe049
YjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShLKXwwfWVsc2V7Tj1jW00+PjJdfDB9aWYoKE58
MCk9PS0xKXtjW3c+PjJdPTA7TD0xMDczO2JyZWFrfWVsc2V7aWYoSV4oS3wwKT09MCl7YnJlYWt9
ZWxzZXtPPUY7YnJlYWsgTDEzMjN9fX19d2hpbGUoMCk7aWYoKEx8MCk9PTEwNzMpe0w9MDtpZihJ
KXtPPUY7YnJlYWt9fUs9ZFt1XXwwO009KEsmMXwwKT09MDtpZigoKGNbcT4+Ml18MCktRnwwKT09
KChNP0s+Pj4xOmNbRT4+Ml18MCl8MCkpe2lmKE0pe1A9Sz4+PjE7UT1LPj4+MX1lbHNle0s9Y1tF
Pj4yXXwwO1A9SztRPUt9ZFIocCxQPDwxLDApO2lmKChhW3VdJjEpPT0wKXtSPTEwfWVsc2V7Uj0o
Y1tEPj4yXSYtMiktMXwwfWRSKHAsUiwwKTtpZigoYVt1XSYxKT09MCl7Uz1CfWVsc2V7Uz1jW0M+
PjJdfDB9Y1txPj4yXT1TK1E7VD1TfWVsc2V7VD1GfUs9SCsxMnwwO009Y1tLPj4yXXwwO1U9SCsx
NnwwO2lmKChNfDApPT0oY1tVPj4yXXwwKSl7Vj1iMFtjWyhjW0g+PjJdfDApKzM2Pj4yXSYxMjdd
KEgpfDB9ZWxzZXtWPWNbTT4+Ml18MH1pZigoZlUoViwxNixULHEsdCwwLG4seixzLHkpfDApIT0w
KXtPPVQ7YnJlYWt9TT1jW0s+PjJdfDA7aWYoKE18MCk9PShjW1U+PjJdfDApKXtVPWNbKGNbSD4+
Ml18MCkrNDA+PjJdfDA7YjBbVSYxMjddKEgpfDA7Rj1UO0c9SDtjb250aW51ZX1lbHNle2NbSz4+
Ml09TSs0O0Y9VDtHPUg7Y29udGludWV9fWFbTyszfDBdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0w
KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGls
ZSgwKTtHPWZSKE8sY1syOTU4XXwwLDEzMjAsKEY9aSxpPWkrOHwwLGNbRj4+Ml09ayxGKXwwKXww
O2k9RjtpZigoR3wwKSE9MSl7Y1tqPj4yXT00fUc9Y1t4Pj4yXXwwO2Rve2lmKChHfDApPT0wKXtX
PTB9ZWxzZXtGPWNbRysxMj4+Ml18MDtpZigoRnwwKT09KGNbRysxNj4+Ml18MCkpe1g9YjBbY1so
Y1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwfWVsc2V7WD1jW0Y+PjJdfDB9aWYoKFh8MCkhPS0x
KXtXPUc7YnJlYWt9Y1t4Pj4yXT0wO1c9MH19d2hpbGUoMCk7eD0oV3wwKT09MDtHPWNbdz4+Ml18
MDtkb3tpZigoR3wwKT09MCl7TD0xMTE4fWVsc2V7Rj1jW0crMTI+PjJdfDA7aWYoKEZ8MCk9PShj
W0crMTY+PjJdfDApKXtZPWIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MH1lbHNle1k9
Y1tGPj4yXXwwfWlmKChZfDApPT0tMSl7Y1t3Pj4yXT0wO0w9MTExODticmVha31pZighKHheKEd8
MCk9PTApKXticmVha31aPWJ8MDtjW1o+PjJdPVc7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hp
bGUoMCk7ZG97aWYoKEx8MCk9PTExMTgpe2lmKHgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChw
KTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+
PjJdPVc7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2Js
KGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZjgoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzgwfDA7aj1lO2U9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWR8MDtrPWQrOHwwO2w9ZCsyNHwwO209ZCs0OHww
O249ZCs1NnwwO289ZCs2NHwwO3A9ZCs3MnwwO3E9anwwO2FbcV09YVsyMzg0XXwwO2FbcSsxfDBd
PWFbMjM4NXwwXXwwO2FbcSsyfDBdPWFbMjM4NnwwXXwwO2FbcSszfDBdPWFbMjM4N3wwXXwwO2Fb
cSs0fDBdPWFbMjM4OHwwXXwwO2FbcSs1fDBdPWFbMjM4OXwwXXwwO3I9aisxfDA7cz1mKzR8MDt0
PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PXJ9ZWxzZXthW3JdPTQzO3U9aisyfDB9aWYo
KHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7dT12KzF8MDtM
MTQxMDpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDY0OnthW3VdPTExMTticmVha307Y2FzZSA4Ontp
ZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDE0MTB9ZWxzZXthW3VdPTg4O2JyZWFr
IEwxNDEwfWJyZWFrfTtkZWZhdWx0OnthW3VdPTEwMH19fXdoaWxlKDApO3U9a3wwO2Rve2lmKChh
WzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEz
NDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDEyLGNbMjk1OF18MCxxLChxPWksaT1pKzh8MCxjW3E+
PjJdPWgscSl8MCl8MDtpPXE7cT1rK3R8MDtMMTQyMzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7
Y2FzZSAzMjp7dz1xO2JyZWFrfTtjYXNlIDE2OntoPWFbdV18MDtzd2l0Y2goaDw8MjQ+PjI0KXtj
YXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsgTDE0MjM7YnJlYWt9O2RlZmF1bHQ6e319aWYo
ISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTExNDc7YnJlYWsgTDE0MjN9c3dpdGNoKGFbaysx
fDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTExNDc7YnJlYWsgTDE0
MjN9fXc9aysyfDA7YnJlYWt9O2RlZmF1bHQ6e3g9MTE0N319fXdoaWxlKDApO2lmKCh4fDApPT0x
MTQ3KXt3PXV9eD1sfDA7ZWoobyxmKTtnYyh1LHcscSx4LG0sbixvKTtkeihjW28+PjJdfDApfDA7
Y1twPj4yXT1jW2U+PjJdO2Y5KGIscCx4LGNbbT4+Ml18MCxjW24+PjJdfDAsZixnKTtpPWQ7cmV0
dXJufWZ1bmN0aW9uIGY5KGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2s9aTtp
PWkrMTZ8MDtsPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2w+PjJdO2w9a3ww
O209ZHwwO2Q9Y1ttPj4yXXwwO2lmKChkfDApPT0wKXtjW2I+PjJdPTA7aT1rO3JldHVybn1uPWc7
Zz1lO289bi1nfDA7cD1oKzEyfDA7aD1jW3A+PjJdfDA7cT0oaHwwKT4ob3wwKT9oLW98MDowO289
ZjtoPW8tZ3wwO2Rve2lmKChofDApPjApe2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10o
ZCxlLGgpfDApPT0oaHwwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13
aGlsZSgwKTtkb3tpZigocXwwKT4wKXtkXyhsLHEsaik7aWYoKGFbbF0mMSk9PTApe3I9bCsxfDB9
ZWxzZXtyPWNbbCs4Pj4yXXwwfWlmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxyLHEp
fDApPT0ocXwwKSl7ZFAobCk7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtkUChsKTtpPWs7cmV0
dXJufX13aGlsZSgwKTtsPW4tb3wwO2Rve2lmKChsfDApPjApe2lmKChiMVtjWyhjW2Q+PjJdfDAp
KzQ4Pj4yXSY2M10oZCxmLGwpfDApPT0obHwwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtp
PWs7cmV0dXJufX13aGlsZSgwKTtjW3A+PjJdPTA7Y1tiPj4yXT1kO2k9aztyZXR1cm59ZnVuY3Rp
b24gZ2EoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3Zh
ciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MCx5PTA7aj1pO2k9aSs0OHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbaz4+Ml07az1qfDA7bD1qKzE2fDA7bT1qKzI0fDA7bj1qKzMyfDA7aWYoKGNbZis0Pj4yXSYx
fDApPT0wKXtvPWNbKGNbZD4+Ml18MCkrMjQ+PjJdfDA7Y1tsPj4yXT1jW2U+PjJdO2I5W28mMzFd
KGIsZCxsLGYsZyxoJjEpO2k9ajtyZXR1cm59ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigo
Y1szODI4XXwwKSE9LTEpe2Nbaz4+Ml09MTUzMTI7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RX
KDE1MzEyLGssOTYpfWs9KGNbMzgyOV18MCktMXwwO2c9Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsx
Mj4+Ml18MCktZz4+Mj4+PjA+az4+PjApe2w9Y1tnKyhrPDwyKT4+Ml18MDtpZigobHwwKT09MCl7
YnJlYWt9ZD1sO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2w+PjJdfDA7aWYoaCl7YlpbY1tvKzI0
Pj4yXSYxMjddKG4sZCl9ZWxzZXtiWltjW28rMjg+PjJdJjEyN10obixkKX1kPW47bz1uO2w9YVtv
XXwwO2lmKChsJjEpPT0wKXtwPWQrMXwwO3E9cDtyPXA7cz1uKzh8MH1lbHNle3A9bis4fDA7cT1j
W3A+PjJdfDA7cj1kKzF8MDtzPXB9cD1lfDA7ZD1uKzR8MDt0PXE7dT1sO3doaWxlKDEpe2lmKCh1
JjEpPT0wKXt2PXJ9ZWxzZXt2PWNbcz4+Ml18MH1sPXUmMjU1O2lmKCh0fDApPT0odisoKGwmMXww
KT09MD9sPj4+MTpjW2Q+PjJdfDApfDApKXticmVha31sPWFbdF18MDt3PWNbcD4+Ml18MDtkb3tp
Zigod3wwKSE9MCl7eD13KzI0fDA7eT1jW3g+PjJdfDA7aWYoKHl8MCkhPShjW3crMjg+PjJdfDAp
KXtjW3g+PjJdPXkrMTthW3ldPWw7YnJlYWt9aWYoKGJfW2NbKGNbdz4+Ml18MCkrNTI+PjJdJjMx
XSh3LGwmMjU1KXwwKSE9LTEpe2JyZWFrfWNbcD4+Ml09MH19d2hpbGUoMCk7dD10KzF8MDt1PWFb
b118MH1jW2I+PjJdPWNbcD4+Ml07ZFAobik7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXww
O2txKGopO2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ2IoYSxiLGQsZSxmKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTA7Zz1pO2k9aSsxNnwwO2g9Z3wwO2o9
aDtjW2o+PjJdPWY7Y1tqKzQ+PjJdPTA7aj1iQihkfDApfDA7ZD1iQyhhfDAsYnwwLGV8MCxofDAp
fDA7aWYoKGp8MCk9PTApe2k9ZztyZXR1cm4gZHwwfWJCKGp8MCl8MDtpPWc7cmV0dXJuIGR8MH1m
dW5jdGlvbiBnYyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtq
PWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTA7bD1pO2k9aSs0OHwwO209bHwwO249bCsxNnwwO289bCszMnwwO3A9a3wwO2s9Y1tw
Pj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tuPj4yXT0xNTY5NjtjW24rND4+Ml09MTI7Y1tu
Kzg+PjJdPTA7ZFcoMTU2OTYsbiw5Nil9bj0oY1szOTI1XXwwKS0xfDA7cT1jW2srOD4+Ml18MDtp
ZigoY1trKzEyPj4yXXwwKS1xPj4yPj4+MDw9bj4+PjApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7Ymwo
cnwwLDgxNzYsMTM0KX1rPWNbcSsobjw8Mik+PjJdfDA7aWYoKGt8MCk9PTApe3I9Yk8oNCl8MDtz
PXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1yPWs7cz1jW3A+PjJdfDA7aWYoKGNbMzgyOF18MCkh
PS0xKXtjW20+PjJdPTE1MzEyO2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTMxMixtLDk2
KX1tPShjWzM4MjldfDApLTF8MDtwPWNbcys4Pj4yXXwwO2lmKChjW3MrMTI+PjJdfDApLXA+PjI+
Pj4wPD1tPj4+MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXM9Y1twKyht
PDwyKT4+Ml18MDtpZigoc3wwKT09MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3Niwx
MzQpfXQ9cztiWltjWyhjW3M+PjJdfDApKzIwPj4yXSYxMjddKG8sdCk7dT1vO209bztwPWRbbV18
MDtpZigocCYxfDApPT0wKXt2PXA+Pj4xfWVsc2V7dj1jW28rND4+Ml18MH1kb3tpZigodnwwKT09
MCl7cD1jWyhjW2s+PjJdfDApKzMyPj4yXXwwO2NhW3AmMTVdKHIsYixmLGcpfDA7Y1tqPj4yXT1n
KyhmLWIpfWVsc2V7Y1tqPj4yXT1nO3A9YVtiXXwwO3N3aXRjaChwPDwyND4+MjQpe2Nhc2UgNDU6
Y2FzZSA0Mzp7bj1iX1tjWyhjW2s+PjJdfDApKzI4Pj4yXSYzMV0ocixwKXwwO3A9Y1tqPj4yXXww
O2Nbaj4+Ml09cCsxO2FbcF09bjt3PWIrMXwwO2JyZWFrfTtkZWZhdWx0Ont3PWJ9fUwxNTMzOmRv
e2lmKChmLXd8MCk+MSl7aWYoKGFbd118MCkhPTQ4KXt4PXc7YnJlYWt9bj13KzF8MDtzd2l0Y2go
YVtuXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD13O2JyZWFrIEwxNTMz
fX1wPWs7cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ociw0OCl8MDt5PWNbaj4+Ml18MDtj
W2o+PjJdPXkrMTthW3ldPXE7cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW25dfDAp
fDA7bj1jW2o+PjJdfDA7Y1tqPj4yXT1uKzE7YVtuXT1xO3g9dysyfDB9ZWxzZXt4PXd9fXdoaWxl
KDApO2Rve2lmKCh4fDApIT0oZnwwKSl7cT1mLTF8MDtpZih4Pj4+MDxxPj4+MCl7ej14O0E9cX1l
bHNle2JyZWFrfWRve3E9YVt6XXwwO2Fbel09YVtBXXwwO2FbQV09cTt6PXorMXwwO0E9QS0xfDA7
fXdoaWxlKHo+Pj4wPEE+Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYx
MjddKHQpfDA7aWYoeD4+PjA8Zj4+PjApe249dSsxfDA7cD1rO3k9bys0fDA7Qj1vKzh8MDtDPTA7
RD0wO0U9eDt3aGlsZSgxKXtGPShhW21dJjEpPT0wO2Rve2lmKChhWyhGP246Y1tCPj4yXXwwKStE
fDBdfDApPT0wKXtHPUQ7SD1DfWVsc2V7aWYoKEN8MCkhPShhWyhGP246Y1tCPj4yXXwwKStEfDBd
fDApKXtHPUQ7SD1DO2JyZWFrfUk9Y1tqPj4yXXwwO2Nbaj4+Ml09SSsxO2FbSV09cTtJPWRbbV18
MDtHPShEPj4+MDwoKChJJjF8MCk9PTA/ST4+PjE6Y1t5Pj4yXXwwKS0xfDApPj4+MCkrRHwwO0g9
MH19d2hpbGUoMCk7Rj1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW0VdfDApfDA7ST1j
W2o+PjJdfDA7Y1tqPj4yXT1JKzE7YVtJXT1GO0Y9RSsxfDA7aWYoRj4+PjA8Zj4+PjApe0M9SCsx
fDA7RD1HO0U9Rn1lbHNle2JyZWFrfX19RT1nKyh4LWIpfDA7RD1jW2o+PjJdfDA7aWYoKEV8MCk9
PShEfDApKXticmVha31DPUQtMXwwO2lmKEU+Pj4wPEM+Pj4wKXtKPUU7Sz1DfWVsc2V7YnJlYWt9
ZG97Qz1hW0pdfDA7YVtKXT1hW0tdfDA7YVtLXT1DO0o9SisxfDA7Sz1LLTF8MDt9d2hpbGUoSj4+
PjA8Sz4+PjApfX13aGlsZSgwKTtpZigoZXwwKT09KGZ8MCkpe0w9Y1tqPj4yXXwwO2NbaD4+Ml09
TDtkUChvKTtpPWw7cmV0dXJufWVsc2V7TD1nKyhlLWIpfDA7Y1toPj4yXT1MO2RQKG8pO2k9bDty
ZXR1cm59fWZ1bmN0aW9uIGdkKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrMTEyfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCszMnwwO249ZCs4MHwwO289
ZCs4OHwwO3A9ZCs5NnwwO3E9ZCsxMDR8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3I9aztrPXIr
MXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1rfWVsc2V7YVtrXT00
Mzt1PXIrMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09
MTA4O2FbdisxfDBdPTEwODt1PXYrMnwwO0wxNTc0OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6
e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVh
ayBMMTU3NH1lbHNle2FbdV09ODg7YnJlYWsgTDE1NzR9YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAw
fX19d2hpbGUoMCk7dT1sfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDAp
PT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMjIsY1sy
OTU4XXwwLHIsKHI9aSxpPWkrMTZ8MCxjW3I+PjJdPWgsY1tyKzg+PjJdPWoscil8MCl8MDtpPXI7
cj1sK3R8MDtMMTU4Nzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aj1hW3VdfDA7
c3dpdGNoKGo8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWwrMXwwO2JyZWFrIEwxNTg3O2Jy
ZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZqPDwyND4+MjQ9PTQ4KSl7eD0xMjg2O2JyZWFr
IEwxNTg3fXN3aXRjaChhW2wrMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVs
dDp7eD0xMjg2O2JyZWFrIEwxNTg3fX13PWwrMnwwO2JyZWFrfTtjYXNlIDMyOnt3PXI7YnJlYWt9
O2RlZmF1bHQ6e3g9MTI4Nn19fXdoaWxlKDApO2lmKCh4fDApPT0xMjg2KXt3PXV9eD1tfDA7ZWoo
cCxmKTtnYyh1LHcscix4LG4sbyxwKTtkeihjW3A+PjJdfDApfDA7Y1txPj4yXT1jW2U+PjJdO2Y5
KGIscSx4LGNbbj4+Ml18MCxjW28+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdlKGIs
ZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1p
O2k9aSs4MHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1k
fDA7az1kKzh8MDtsPWQrMjR8MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8MDtwPWQrNzJ8MDtx
PWp8MDthW3FdPWFbMjM4NF18MDthW3ErMXwwXT1hWzIzODV8MF18MDthW3ErMnwwXT1hWzIzODZ8
MF18MDthW3ErM3wwXT1hWzIzODd8MF18MDthW3ErNHwwXT1hWzIzODh8MF18MDthW3ErNXwwXT1h
WzIzODl8MF18MDtyPWorMXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7
dT1yfWVsc2V7YVtyXT00Mzt1PWorMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0z
NTt2PXUrMXwwfWFbdl09MTA4O3U9disxfDA7TDE2MDU6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA2
NDp7YVt1XT0xMTE7YnJlYWt9O2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2Jy
ZWFrIEwxNjA1fWVsc2V7YVt1XT04ODticmVhayBMMTYwNX1icmVha307ZGVmYXVsdDp7YVt1XT0x
MTd9fX13aGlsZSgwKTt1PWt8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwxMixj
WzI5NThdfDAscSwocT1pLGk9aSs4fDAsY1txPj4yXT1oLHEpfDApfDA7aT1xO3E9ayt0fDA7TDE2
MTg6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMzI6e3c9cTticmVha307Y2FzZSAxNjp7
aD1hW3VdfDA7c3dpdGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWsrMXwwO2JyZWFr
IEwxNjE4O2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7eD0x
MzExO2JyZWFrIEwxNjE4fXN3aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVh
a307ZGVmYXVsdDp7eD0xMzExO2JyZWFrIEwxNjE4fX13PWsrMnwwO2JyZWFrfTtkZWZhdWx0Ont4
PTEzMTF9fX13aGlsZSgwKTtpZigoeHwwKT09MTMxMSl7dz11fXg9bHwwO2VqKG8sZik7Z2ModSx3
LHEseCxtLG4sbyk7ZHooY1tvPj4yXXwwKXwwO2NbcD4+Ml09Y1tlPj4yXTtmOShiLHAseCxjW20+
PjJdfDAsY1tuPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlvbiBnZihiLGQsZSxmLGcsaCxq
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzEx
MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1k
Kzh8MDttPWQrMzJ8MDtuPWQrODB8MDtvPWQrODh8MDtwPWQrOTZ8MDtxPWQrMTA0fDA7Y1trPj4y
XT0zNztjW2srND4+Ml09MDtyPWs7az1yKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIw
NDh8MCk9PTApe3U9a31lbHNle2Fba109NDM7dT1yKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1l
bHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODthW3YrMXwwXT0xMDg7dT12KzJ8MDtMMTYzNjpk
b3tzd2l0Y2godCY3NHwwKXtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVh
ayBMMTYzNn1lbHNle2FbdV09ODg7YnJlYWsgTDE2MzZ9YnJlYWt9O2Nhc2UgNjQ6e2FbdV09MTEx
O2JyZWFrfTtkZWZhdWx0OnthW3VdPTExN319fXdoaWxlKDApO3U9bHwwO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7dD1nYih1LDIzLGNbMjk1OF18MCxyLChyPWksaT1pKzE2fDAsY1tyPj4yXT1o
LGNbcis4Pj4yXT1qLHIpfDApfDA7aT1yO3I9bCt0fDA7TDE2NDk6ZG97c3dpdGNoKGNbcz4+Ml0m
MTc2fDApe2Nhc2UgMTY6e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0
Mzp7dz1sKzF8MDticmVhayBMMTY0OTticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmajw8
MjQ+PjI0PT00OCkpe3g9MTMzNjticmVhayBMMTY0OX1zd2l0Y2goYVtsKzF8MF18MCl7Y2FzZSAx
MjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTMzNjticmVhayBMMTY0OX19dz1sKzJ8MDti
cmVha307Y2FzZSAzMjp7dz1yO2JyZWFrfTtkZWZhdWx0Ont4PTEzMzZ9fX13aGlsZSgwKTtpZigo
eHwwKT09MTMzNil7dz11fXg9bXwwO2VqKHAsZik7Z2ModSx3LHIseCxuLG8scCk7ZHooY1twPj4y
XXwwKXwwO2NbcT4+Ml09Y1tlPj4yXTtmOShiLHEseCxjW24+PjJdfDAsY1tvPj4yXXwwLGYsZyk7
aT1kO3JldHVybn1mdW5jdGlvbiBnZyhiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aj0rajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MDtkPWk7aT1pKzE1MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMTEyfDA7cD1kKzEy
MHwwO3E9ZCsxMjh8MDtyPWQrMTM2fDA7cz1kKzE0NHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7
dD1rO2s9dCsxfDA7dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxz
ZXthW2tdPTQzO3c9dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcr
MXwwfXc9diYyNjA7az12Pj4+MTQ7TDE2Njc6ZG97aWYoKHd8MCk9PTI2MCl7aWYoKGsmMXwwKT09
MCl7YVt4XT05Nzt5PTA7YnJlYWt9ZWxzZXthW3hdPTY1O3k9MDticmVha319ZWxzZXthW3hdPTQ2
O3Y9eCsyfDA7YVt4KzF8MF09NDI7c3dpdGNoKHd8MCl7Y2FzZSA0OntpZigoayYxfDApPT0wKXth
W3ZdPTEwMjt5PTE7YnJlYWsgTDE2Njd9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMTY2N31icmVh
a307Y2FzZSAyNTY6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAxO3k9MTticmVhayBMMTY2N31lbHNl
e2Fbdl09Njk7eT0xO2JyZWFrIEwxNjY3fWJyZWFrfTtkZWZhdWx0OntpZigoayYxfDApPT0wKXth
W3ZdPTEwMzt5PTE7YnJlYWsgTDE2Njd9ZWxzZXthW3ZdPTcxO3k9MTticmVhayBMMTY2N319fX19
d2hpbGUoMCk7az1sfDA7Y1ttPj4yXT1rO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1jWzI5
NThdfDA7aWYoeSl7dz1nYihrLDMwLGwsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJd
LGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0E9d31lbHNle3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkr
OHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtBPXd9ZG97aWYoKEF8MCk+Mjkpe3c9KGFbMTYyNjRd
fDApPT0wO2lmKHkpe2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09
YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSsxNnww
LGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9bH1lbHNle2Rve2lm
KHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO3c9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJd
LGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9d313PWNbbT4+Ml18MDtpZigod3wwKSE9MCl7Qz1C
O0Q9dztFPXc7YnJlYWt9a1goKTt3PWNbbT4+Ml18MDtDPUI7RD13O0U9d31lbHNle0M9QTtEPTA7
RT1jW20+PjJdfDB9fXdoaWxlKDApO0E9RStDfDA7TDE3MTY6ZG97c3dpdGNoKGNbdT4+Ml0mMTc2
fDApe2Nhc2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7
Rj1FKzF8MDticmVhayBMMTcxNjticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEmQjw8MjQ+
PjI0PT00OCkpe0c9MTM5MjticmVhayBMMTcxNn1zd2l0Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6
Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MTM5MjticmVhayBMMTcxNn19Rj1FKzJ8MDticmVh
a307Y2FzZSAzMjp7Rj1BO2JyZWFrfTtkZWZhdWx0OntHPTEzOTJ9fX13aGlsZSgwKTtpZigoR3ww
KT09MTM5Mil7Rj1FfWRve2lmKChFfDApPT0oa3wwKSl7SD1ufDA7ST0wO0o9a31lbHNle0c9a0oo
Qzw8MSl8MDtpZigoR3wwKSE9MCl7SD1HO0k9RztKPUU7YnJlYWt9a1goKTtIPTA7ST0wO0o9Y1tt
Pj4yXXwwfX13aGlsZSgwKTtlaihxLGYpO2dqKEosRixBLEgsbyxwLHEpO2R6KGNbcT4+Ml18MCl8
MDtxPWV8MDtjW3M+PjJdPWNbcT4+Ml07ZjkocixzLEgsY1tvPj4yXXwwLGNbcD4+Ml18MCxmLGcp
O2c9Y1tyPj4yXXwwO2NbcT4+Ml09ZztjW2I+PjJdPWc7aWYoKEl8MCkhPTApe2tLKEkpfWlmKChE
fDApPT0wKXtpPWQ7cmV0dXJufWtLKEQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2goYSxiLGQsZSl7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2Y9aTtpPWkrMTZ8MDtnPWZ8
MDtoPWc7Y1toPj4yXT1lO2NbaCs0Pj4yXT0wO2g9YkIoYnwwKXwwO2I9YlEoYXwwLGR8MCxnfDAp
fDA7aWYoKGh8MCk9PTApe2k9ZjtyZXR1cm4gYnwwfWJCKGh8MCl8MDtpPWY7cmV0dXJuIGJ8MH1m
dW5jdGlvbiBnaShiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj0r
ajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtkPWk7
aT1pKzE1MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1k
fDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMTEyfDA7cD1kKzEyMHwwO3E9ZCsxMjh8
MDtyPWQrMTM2fDA7cz1kKzE0NHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1rO2s9dCsxfDA7
dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXthW2tdPTQzO3c9
dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXwwfXc9diYyNjA7
az12Pj4+MTQ7TDE3NTQ6ZG97aWYoKHd8MCk9PTI2MCl7YVt4XT03Njt2PXgrMXwwO2lmKChrJjF8
MCk9PTApe2Fbdl09OTc7eT0wO2JyZWFrfWVsc2V7YVt2XT02NTt5PTA7YnJlYWt9fWVsc2V7YVt4
XT00NjthW3grMXwwXT00MjthW3grMnwwXT03Njt2PXgrM3wwO3N3aXRjaCh3fDApe2Nhc2UgNDp7
aWYoKGsmMXwwKT09MCl7YVt2XT0xMDI7eT0xO2JyZWFrIEwxNzU0fWVsc2V7YVt2XT03MDt5PTE7
YnJlYWsgTDE3NTR9YnJlYWt9O2Nhc2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7
YnJlYWsgTDE3NTR9ZWxzZXthW3ZdPTY5O3k9MTticmVhayBMMTc1NH1icmVha307ZGVmYXVsdDp7
aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwxNzU0fWVsc2V7YVt2XT03MTt5PTE7
YnJlYWsgTDE3NTR9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsxNjI2NF18
MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9
fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrMTZ8MCxj
W3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3PWdiKGss
MzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lmKChBfDAp
PjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0w
KXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1syOTU4XXww
LHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9
ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFT
KDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrOHwwLGhb
ej4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTApe0M9QjtEPXc7
RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7RD0wO0U9Y1tt
Pj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wxODAzOmRve3N3aXRjaChjW3U+PjJdJjE3NnwwKXtj
YXNlIDMyOntGPUE7YnJlYWt9O2Nhc2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nh
c2UgNDU6Y2FzZSA0Mzp7Rj1FKzF8MDticmVhayBMMTgwMzticmVha307ZGVmYXVsdDp7fX1pZigh
KChDfDApPjEmQjw8MjQ+PjI0PT00OCkpe0c9MTQ3NzticmVhayBMMTgwM31zd2l0Y2goYVtFKzF8
MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MTQ3NzticmVhayBMMTgw
M319Rj1FKzJ8MDticmVha307ZGVmYXVsdDp7Rz0xNDc3fX19d2hpbGUoMCk7aWYoKEd8MCk9PTE0
Nzcpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtHPWtKKEM8PDEp
fDA7aWYoKEd8MCkhPTApe0g9RztJPUc7Sj1FO2JyZWFrfWtYKCk7SD0wO0k9MDtKPWNbbT4+Ml18
MH19d2hpbGUoMCk7ZWoocSxmKTtnaihKLEYsQSxILG8scCxxKTtkeihjW3E+PjJdfDApfDA7cT1l
fDA7Y1tzPj4yXT1jW3E+PjJdO2Y5KHIscyxILGNbbz4+Ml18MCxjW3A+PjJdfDAsZixnKTtnPWNb
cj4+Ml18MDtjW3E+PjJdPWc7Y1tiPj4yXT1nO2lmKChJfDApIT0wKXtrSyhJKX1pZigoRHwwKT09
MCl7aT1kO3JldHVybn1rSyhEKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdqKGIsZSxmLGcsaCxqLGsp
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wO2w9aTtpPWkr
NDh8MDttPWx8MDtuPWwrMTZ8MDtvPWwrMzJ8MDtwPWt8MDtrPWNbcD4+Ml18MDtpZigoY1szOTI0
XXwwKSE9LTEpe2Nbbj4+Ml09MTU2OTY7Y1tuKzQ+PjJdPTEyO2Nbbis4Pj4yXT0wO2RXKDE1Njk2
LG4sOTYpfW49KGNbMzkyNV18MCktMXwwO3E9Y1trKzg+PjJdfDA7aWYoKGNbaysxMj4+Ml18MCkt
cT4+Mj4+PjA8PW4+Pj4wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9az1j
W3ErKG48PDIpPj4yXXwwO2lmKChrfDApPT0wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4
MTc2LDEzNCl9cj1rO3M9Y1twPj4yXXwwO2lmKChjWzM4MjhdfDApIT0tMSl7Y1ttPj4yXT0xNTMx
MjtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTUzMTIsbSw5Nil9bT0oY1szODI5XXwwKS0x
fDA7cD1jW3MrOD4+Ml18MDtpZigoY1tzKzEyPj4yXXwwKS1wPj4yPj4+MDw9bT4+PjApe3Q9Yk8o
NCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX1zPWNbcCsobTw8Mik+PjJdfDA7aWYoKHN8
MCk9PTApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX10PXM7YlpbY1soY1tz
Pj4yXXwwKSsyMD4+Ml0mMTI3XShvLHQpO2Nbaj4+Ml09Zzt1PWFbYl18MDtzd2l0Y2godTw8MjQ+
PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e209Yl9bY1soY1trPj4yXXwwKSsyOD4+Ml0mMzFdKHIsdSl8
MDt1PWNbaj4+Ml18MDtjW2o+PjJdPXUrMTthW3VdPW07dj1iKzF8MDticmVha307ZGVmYXVsdDp7
dj1ifX1tPWY7TDE4NTE6ZG97aWYoKG0tdnwwKT4xKXtpZigoYVt2XXwwKSE9NDgpe3c9djt4PTE1
MzI7YnJlYWt9dT12KzF8MDtzd2l0Y2goYVt1XXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307
ZGVmYXVsdDp7dz12O3g9MTUzMjticmVhayBMMTg1MX19cD1rO249Yl9bY1soY1twPj4yXXwwKSsy
OD4+Ml0mMzFdKHIsNDgpfDA7cT1jW2o+PjJdfDA7Y1tqPj4yXT1xKzE7YVtxXT1uO249disyfDA7
cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW3VdfDApfDA7dT1jW2o+PjJdfDA7Y1tq
Pj4yXT11KzE7YVt1XT1xO3E9bjt3aGlsZSgxKXtpZihxPj4+MD49Zj4+PjApe3k9cTt6PW47YnJl
YWsgTDE4NTF9dT1hW3FdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDAp
PT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoYTModTw8MjQ+
PjI0fDAsY1syOTU4XXwwKXwwKT09MCl7eT1xO3o9bjticmVha31lbHNle3E9cSsxfDB9fX1lbHNl
e3c9djt4PTE1MzJ9fXdoaWxlKDApO0wxODY2OmRve2lmKCh4fDApPT0xNTMyKXt3aGlsZSgxKXt4
PTA7aWYodz4+PjA+PWY+Pj4wKXt5PXc7ej12O2JyZWFrIEwxODY2fXE9YVt3XXwwO2Rve2lmKChh
WzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEz
NDQsMCl8MH19d2hpbGUoMCk7aWYoKGJIKHE8PDI0Pj4yNHwwLGNbMjk1OF18MCl8MCk9PTApe3k9
dzt6PXY7YnJlYWt9ZWxzZXt3PXcrMXwwO3g9MTUzMn19fX13aGlsZSgwKTt4PW87dz1vO3Y9ZFt3
XXwwO2lmKCh2JjF8MCk9PTApe0E9dj4+PjF9ZWxzZXtBPWNbbys0Pj4yXXwwfWRve2lmKChBfDAp
PT0wKXt2PWNbaj4+Ml18MDt1PWNbKGNbaz4+Ml18MCkrMzI+PjJdfDA7Y2FbdSYxNV0ocix6LHks
dil8MDtjW2o+PjJdPShjW2o+PjJdfDApKyh5LXopfWVsc2V7ZG97aWYoKHp8MCkhPSh5fDApKXt2
PXktMXwwO2lmKHo+Pj4wPHY+Pj4wKXtCPXo7Qz12fWVsc2V7YnJlYWt9ZG97dj1hW0JdfDA7YVtC
XT1hW0NdfDA7YVtDXT12O0I9QisxfDA7Qz1DLTF8MDt9d2hpbGUoQj4+PjA8Qz4+PjApfX13aGls
ZSgwKTtxPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10odCl8MDtpZih6Pj4+MDx5Pj4+MCl7
dj14KzF8MDt1PW8rNHwwO249bys4fDA7cD1rO0Q9MDtFPTA7Rj16O3doaWxlKDEpe0c9KGFbd10m
MSk9PTA7ZG97aWYoKGFbKEc/djpjW24+PjJdfDApK0V8MF18MCk+MCl7aWYoKER8MCkhPShhWyhH
P3Y6Y1tuPj4yXXwwKStFfDBdfDApKXtIPUU7ST1EO2JyZWFrfUo9Y1tqPj4yXXwwO2Nbaj4+Ml09
SisxO2FbSl09cTtKPWRbd118MDtIPShFPj4+MDwoKChKJjF8MCk9PTA/Sj4+PjE6Y1t1Pj4yXXww
KS0xfDApPj4+MCkrRXwwO0k9MH1lbHNle0g9RTtJPUR9fXdoaWxlKDApO0c9Yl9bY1soY1twPj4y
XXwwKSsyOD4+Ml0mMzFdKHIsYVtGXXwwKXwwO0o9Y1tqPj4yXXwwO2Nbaj4+Ml09SisxO2FbSl09
RztHPUYrMXwwO2lmKEc+Pj4wPHk+Pj4wKXtEPUkrMXwwO0U9SDtGPUd9ZWxzZXticmVha319fUY9
Zysoei1iKXwwO0U9Y1tqPj4yXXwwO2lmKChGfDApPT0oRXwwKSl7YnJlYWt9RD1FLTF8MDtpZihG
Pj4+MDxEPj4+MCl7Sz1GO0w9RH1lbHNle2JyZWFrfWRve0Q9YVtLXXwwO2FbS109YVtMXXwwO2Fb
TF09RDtLPUsrMXwwO0w9TC0xfDA7fXdoaWxlKEs+Pj4wPEw+Pj4wKX19d2hpbGUoMCk7TDE5MDU6
ZG97aWYoeT4+PjA8Zj4+PjApe0w9aztLPXk7d2hpbGUoMSl7ej1hW0tdfDA7aWYoejw8MjQ+PjI0
PT00Nil7YnJlYWt9SD1iX1tjWyhjW0w+PjJdfDApKzI4Pj4yXSYzMV0ocix6KXwwO3o9Y1tqPj4y
XXwwO2Nbaj4+Ml09eisxO2Fbel09SDtIPUsrMXwwO2lmKEg+Pj4wPGY+Pj4wKXtLPUh9ZWxzZXtN
PUg7YnJlYWsgTDE5MDV9fUw9YjBbY1soY1tzPj4yXXwwKSsxMj4+Ml0mMTI3XSh0KXwwO0g9Y1tq
Pj4yXXwwO2Nbaj4+Ml09SCsxO2FbSF09TDtNPUsrMXwwfWVsc2V7TT15fX13aGlsZSgwKTtjYVtj
WyhjW2s+PjJdfDApKzMyPj4yXSYxNV0ocixNLGYsY1tqPj4yXXwwKXwwO3I9KGNbaj4+Ml18MCkr
KG0tTSl8MDtjW2o+PjJdPXI7aWYoKGV8MCk9PShmfDApKXtOPXI7Y1toPj4yXT1OO2RQKG8pO2k9
bDtyZXR1cm59Tj1nKyhlLWIpfDA7Y1toPj4yXT1OO2RQKG8pO2k9bDtyZXR1cm59ZnVuY3Rpb24g
Z2soYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZ2woYSl7YT1hfDA7ZGUo
YXwwKTtyZXR1cm59ZnVuY3Rpb24gZ20oYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzE0NHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8MDttPWQrMTEyfDA7
bj1kKzEyMHwwO289ZCsxMjh8MDtwPWQrMTM2fDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8
MF09YVsyMzg1fDBdfDA7YVtxKzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7
YVtxKzR8MF09YVsyMzg4fDBdfDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHww
O3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1p
ZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXww
O0wxOTI4OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6
e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBMMTkyOH1lbHNle2FbdV09ODg7YnJl
YWsgTDE5Mjh9YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAwfX19d2hpbGUoMCk7dT1rfDA7ZG97aWYo
KGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEs
MTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNb
cT4+Ml09aCxxKXwwKXwwO2k9cTtxPWsrdHwwO0wxOTQxOmRve3N3aXRjaChjW3M+PjJdJjE3Nnww
KXtjYXNlIDMyOnt3PXE7YnJlYWt9O2Nhc2UgMTY6e2g9YVt1XXwwO3N3aXRjaChoPDwyND4+MjQp
e2Nhc2UgNDU6Y2FzZSA0Mzp7dz1rKzF8MDticmVhayBMMTk0MTticmVha307ZGVmYXVsdDp7fX1p
ZighKCh0fDApPjEmaDw8MjQ+PjI0PT00OCkpe3g9MTYwMDticmVhayBMMTk0MX1zd2l0Y2goYVtr
KzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTYwMDticmVhayBM
MTk0MX19dz1rKzJ8MDticmVha307ZGVmYXVsdDp7eD0xNjAwfX19d2hpbGUoMCk7aWYoKHh8MCk9
PTE2MDApe3c9dX14PWx8MDtlaihvLGYpO2dwKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8
MDtjW3A+PjJdPWNbZT4+Ml07Z3EoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gZ24oYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtkPWk7aT1pKzEwNHwwO2o9ZTtlPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzI0fDA7bD1kKzQ4fDA7bT1k
Kzg4fDA7bj1kKzk2fDA7bz1kKzE2fDA7YVtvXT1hWzIzOTJdfDA7YVtvKzF8MF09YVsyMzkzfDBd
fDA7YVtvKzJ8MF09YVsyMzk0fDBdfDA7YVtvKzN8MF09YVsyMzk1fDBdfDA7YVtvKzR8MF09YVsy
Mzk2fDBdfDA7YVtvKzV8MF09YVsyMzk3fDBdfDA7cD1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0w
KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGls
ZSgwKTtxPWdiKHAsMjAsY1syOTU4XXwwLG8sKG89aSxpPWkrOHwwLGNbbz4+Ml09aCxvKXwwKXww
O2k9bztvPWsrcXwwO0wxOTU4OmRve3N3aXRjaChjW2YrND4+Ml0mMTc2fDApe2Nhc2UgMTY6e2g9
YVtwXXwwO3N3aXRjaChoPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7cj1rKzF8MDticmVhayBM
MTk1ODticmVha307ZGVmYXVsdDp7fX1pZighKChxfDApPjEmaDw8MjQ+PjI0PT00OCkpe3M9MTYx
NTticmVhayBMMTk1OH1zd2l0Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9
O2RlZmF1bHQ6e3M9MTYxNTticmVhayBMMTk1OH19cj1rKzJ8MDticmVha307Y2FzZSAzMjp7cj1v
O2JyZWFrfTtkZWZhdWx0OntzPTE2MTV9fX13aGlsZSgwKTtpZigoc3wwKT09MTYxNSl7cj1wfWVq
KG0sZik7cz1tfDA7bT1jW3M+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2o+PjJdPTE1Njk2
O2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTY5NixqLDk2KX1qPShjWzM5MjVdfDApLTF8
MDtoPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLWg+PjI+Pj4wPmo+Pj4wKXt0PWNb
aCsoajw8Mik+PjJdfDA7aWYoKHR8MCk9PTApe2JyZWFrfXU9dDt2PWNbcz4+Ml18MDtkeih2KXww
O3Y9bHwwO3c9Y1soY1t0Pj4yXXwwKSszMj4+Ml18MDtjYVt3JjE1XSh1LHAsbyx2KXwwO3U9bCtx
fDA7aWYoKHJ8MCk9PShvfDApKXt4PXU7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16
O2Y5KGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59eD1sKyhyLWspfDA7eT1lfDA7ej1jW3k+PjJd
fDA7QT1ufDA7Y1tBPj4yXT16O2Y5KGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59fXdoaWxlKDAp
O2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdvKGIsZCxlLGYsZyxo
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MDtqPWk7
aT1pKzQ4fDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8
MDtsPWorMTZ8MDttPWorMjR8MDtuPWorMzJ8MDtpZigoY1tmKzQ+PjJdJjF8MCk9PTApe289Y1so
Y1tkPj4yXXwwKSsyND4+Ml18MDtjW2w+PjJdPWNbZT4+Ml07YjlbbyYzMV0oYixkLGwsZixnLGgm
MSk7aT1qO3JldHVybn1laihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM4MjZdfDApIT0t
MSl7Y1trPj4yXT0xNTMwNDtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTUzMDQsayw5Nil9
az0oY1szODI3XXwwKS0xfDA7Zz1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1nPj4y
Pj4+MD5rPj4+MCl7bD1jW2crKGs8PDIpPj4yXXwwO2lmKChsfDApPT0wKXticmVha31kPWw7bz1j
W2Y+PjJdfDA7ZHoobyl8MDtvPWNbbD4+Ml18MDtpZihoKXtiWltjW28rMjQ+PjJdJjEyN10obixk
KX1lbHNle2JaW2NbbysyOD4+Ml0mMTI3XShuLGQpfWQ9bjtvPWFbZF18MDtpZigobyYxKT09MCl7
bD1uKzR8MDtwPWw7cT1sO3I9bis4fDB9ZWxzZXtsPW4rOHwwO3A9Y1tsPj4yXXwwO3E9bis0fDA7
cj1sfWw9ZXwwO3M9cDt0PW87d2hpbGUoMSl7aWYoKHQmMSk9PTApe3U9cX1lbHNle3U9Y1tyPj4y
XXwwfW89dCYyNTU7aWYoKG8mMXwwKT09MCl7dj1vPj4+MX1lbHNle3Y9Y1txPj4yXXwwfWlmKChz
fDApPT0odSsodjw8Mil8MCkpe2JyZWFrfW89Y1tzPj4yXXwwO3c9Y1tsPj4yXXwwO2Rve2lmKCh3
fDApIT0wKXt4PXcrMjR8MDt5PWNbeD4+Ml18MDtpZigoeXwwKT09KGNbdysyOD4+Ml18MCkpe3o9
Yl9bY1soY1t3Pj4yXXwwKSs1Mj4+Ml0mMzFdKHcsbyl8MH1lbHNle2NbeD4+Ml09eSs0O2NbeT4+
Ml09bzt6PW99aWYoKHp8MCkhPS0xKXticmVha31jW2w+PjJdPTB9fXdoaWxlKDApO3M9cys0fDA7
dD1hW2RdfDB9Y1tiPj4yXT1jW2w+PjJdO2VlKG4pO2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8o
NCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdwKGIsZSxmLGcsaCxqLGspe2I9
YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MDtsPWk7aT1pKzQ4fDA7bT1sfDA7
bj1sKzE2fDA7bz1sKzMyfDA7cD1rfDA7az1jW3A+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtj
W24+PjJdPTE1Njg4O2Nbbis0Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTY4OCxuLDk2KX1uPShj
WzM5MjNdfDApLTF8MDtxPWNbays4Pj4yXXwwO2lmKChjW2srMTI+PjJdfDApLXE+PjI+Pj4wPD1u
Pj4+MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+
Ml18MDtpZigoa3wwKT09MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfXI9
aztzPWNbcD4+Ml18MDtpZigoY1szODI2XXwwKSE9LTEpe2NbbT4+Ml09MTUzMDQ7Y1ttKzQ+PjJd
PTEyO2NbbSs4Pj4yXT0wO2RXKDE1MzA0LG0sOTYpfW09KGNbMzgyN118MCktMXwwO3A9Y1tzKzg+
PjJdfDA7aWYoKGNbcysxMj4+Ml18MCktcD4+Mj4+PjA8PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2tx
KHUpO2JsKHR8MCw4MTc2LDEzNCl9cz1jW3ArKG08PDIpPj4yXXwwO2lmKChzfDApPT0wKXt0PWJP
KDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+
PjJdJjEyN10obyx0KTt1PW87bT1vO3A9ZFttXXwwO2lmKChwJjF8MCk9PTApe3Y9cD4+PjF9ZWxz
ZXt2PWNbbys0Pj4yXXwwfWRve2lmKCh2fDApPT0wKXtwPWNbKGNbaz4+Ml18MCkrNDg+PjJdfDA7
Y2FbcCYxNV0ocixiLGYsZyl8MDtjW2o+PjJdPWcrKGYtYjw8Mil9ZWxzZXtjW2o+PjJdPWc7cD1h
W2JdfDA7c3dpdGNoKHA8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntuPWJfW2NbKGNbaz4+Ml18
MCkrNDQ+PjJdJjMxXShyLHApfDA7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzQ7Y1twPj4yXT1uO3c9
YisxfDA7YnJlYWt9O2RlZmF1bHQ6e3c9Yn19TDIwNTA6ZG97aWYoKGYtd3wwKT4xKXtpZigoYVt3
XXwwKSE9NDgpe3g9dzticmVha31uPXcrMXwwO3N3aXRjaChhW25dfDApe2Nhc2UgMTIwOmNhc2Ug
ODg6e2JyZWFrfTtkZWZhdWx0Ont4PXc7YnJlYWsgTDIwNTB9fXA9aztxPWJfW2NbKGNbcD4+Ml18
MCkrNDQ+PjJdJjMxXShyLDQ4KXwwO3k9Y1tqPj4yXXwwO2Nbaj4+Ml09eSs0O2NbeT4+Ml09cTtx
PWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLGFbbl18MCl8MDtuPWNbaj4+Ml18MDtjW2o+
PjJdPW4rNDtjW24+PjJdPXE7eD13KzJ8MH1lbHNle3g9d319d2hpbGUoMCk7ZG97aWYoKHh8MCkh
PShmfDApKXtxPWYtMXwwO2lmKHg+Pj4wPHE+Pj4wKXt6PXg7QT1xfWVsc2V7YnJlYWt9ZG97cT1h
W3pdfDA7YVt6XT1hW0FdfDA7YVtBXT1xO3o9eisxfDA7QT1BLTF8MDt9d2hpbGUoej4+PjA8QT4+
PjApfX13aGlsZSgwKTtxPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10odCl8MDtpZih4Pj4+
MDxmPj4+MCl7bj11KzF8MDtwPWs7eT1vKzR8MDtCPW8rOHwwO0M9MDtEPTA7RT14O3doaWxlKDEp
e0Y9KGFbbV0mMSk9PTA7ZG97aWYoKGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCk9PTApe0c9RDtI
PUN9ZWxzZXtpZigoQ3wwKSE9KGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCkpe0c9RDtIPUM7YnJl
YWt9ST1jW2o+PjJdfDA7Y1tqPj4yXT1JKzQ7Y1tJPj4yXT1xO0k9ZFttXXwwO0c9KEQ+Pj4wPCgo
KEkmMXwwKT09MD9JPj4+MTpjW3k+PjJdfDApLTF8MCk+Pj4wKStEfDA7SD0wfX13aGlsZSgwKTtG
PWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLGFbRV18MCl8MDtJPWNbaj4+Ml18MDtjW2o+
PjJdPUkrNDtjW0k+PjJdPUY7Rj1FKzF8MDtpZihGPj4+MDxmPj4+MCl7Qz1IKzF8MDtEPUc7RT1G
fWVsc2V7YnJlYWt9fX1FPWcrKHgtYjw8Mil8MDtEPWNbaj4+Ml18MDtpZigoRXwwKT09KER8MCkp
e2JyZWFrfUM9RC00fDA7aWYoRT4+PjA8Qz4+PjApe0o9RTtLPUN9ZWxzZXticmVha31kb3tDPWNb
Sj4+Ml18MDtjW0o+PjJdPWNbSz4+Ml07Y1tLPj4yXT1DO0o9Sis0fDA7Sz1LLTR8MDt9d2hpbGUo
Sj4+PjA8Sz4+PjApfX13aGlsZSgwKTtpZigoZXwwKT09KGZ8MCkpe0w9Y1tqPj4yXXwwO2NbaD4+
Ml09TDtkUChvKTtpPWw7cmV0dXJufWVsc2V7TD1nKyhlLWI8PDIpfDA7Y1toPj4yXT1MO2RQKG8p
O2k9bDtyZXR1cm59fWZ1bmN0aW9uIGdxKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wO2s9aTtpPWkrMTZ8MDtsPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2w+
PjJdO2w9a3wwO209ZHwwO2Q9Y1ttPj4yXXwwO2lmKChkfDApPT0wKXtjW2I+PjJdPTA7aT1rO3Jl
dHVybn1uPWc7Zz1lO289bi1nPj4yO3A9aCsxMnwwO2g9Y1twPj4yXXwwO3E9KGh8MCk+KG98MCk/
aC1vfDA6MDtvPWY7aD1vLWd8MDtnPWg+PjI7ZG97aWYoKGh8MCk+MCl7aWYoKGIxW2NbKGNbZD4+
Ml18MCkrNDg+PjJdJjYzXShkLGUsZyl8MCk9PShnfDApKXticmVha31jW20+PjJdPTA7Y1tiPj4y
XT0wO2k9aztyZXR1cm59fXdoaWxlKDApO2Rve2lmKChxfDApPjApe2V5KGwscSxqKTtpZigoYVts
XSYxKT09MCl7cj1sKzR8MH1lbHNle3I9Y1tsKzg+PjJdfDB9aWYoKGIxW2NbKGNbZD4+Ml18MCkr
NDg+PjJdJjYzXShkLHIscSl8MCk9PShxfDApKXtlZShsKTticmVha31jW20+PjJdPTA7Y1tiPj4y
XT0wO2VlKGwpO2k9aztyZXR1cm59fXdoaWxlKDApO2w9bi1vfDA7bz1sPj4yO2Rve2lmKChsfDAp
PjApe2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxmLG8pfDApPT0ob3wwKSl7YnJl
YWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13aGlsZSgwKTtjW3A+PjJdPTA7Y1ti
Pj4yXT1kO2k9aztyZXR1cm59ZnVuY3Rpb24gZ3IoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsyMzJ8MDtrPWU7ZT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7
bj1kKzIwMHwwO289ZCsyMDh8MDtwPWQrMjE2fDA7cT1kKzIyNHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+
PjJdPTA7cj1rO2s9cisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1
PWt9ZWxzZXthW2tdPTQzO3U9cisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1
O3Y9dSsxfDB9YVt2XT0xMDg7YVt2KzF8MF09MTA4O3U9disyfDA7TDIxMTk6ZG97c3dpdGNoKHQm
NzR8MCl7Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDIxMTl9ZWxz
ZXthW3VdPTg4O2JyZWFrIEwyMTE5fWJyZWFrfTtjYXNlIDY0OnthW3VdPTExMTticmVha307ZGVm
YXVsdDp7YVt1XT0xMDB9fX13aGlsZSgwKTt1PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O3Q9Z2IodSwyMixjWzI5NThdfDAsciwocj1pLGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09
aixyKXwwKXwwO2k9cjtyPWwrdHwwO0wyMTMyOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNl
IDMyOnt3PXI7YnJlYWt9O2Nhc2UgMTY6e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nhc2Ug
NDU6Y2FzZSA0Mzp7dz1sKzF8MDticmVhayBMMjEzMjticmVha307ZGVmYXVsdDp7fX1pZighKCh0
fDApPjEmajw8MjQ+PjI0PT00OCkpe3g9MTc2MDticmVhayBMMjEzMn1zd2l0Y2goYVtsKzF8MF18
MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTc2MDticmVhayBMMjEzMn19
dz1sKzJ8MDticmVha307ZGVmYXVsdDp7eD0xNzYwfX19d2hpbGUoMCk7aWYoKHh8MCk9PTE3NjAp
e3c9dX14PW18MDtlaihwLGYpO2dwKHUsdyxyLHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+
PjJdPWNbZT4+Ml07Z3EoYixxLHgsY1tuPj4yXXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59
ZnVuY3Rpb24gZ3MoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9
aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MDtkPWk7aT1pKzE0NHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+
PjJdPWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8MDttPWQrMTEyfDA7bj1kKzEyMHwwO289
ZCsxMjh8MDtwPWQrMTM2fDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8MF09YVsyMzg1fDBd
fDA7YVtxKzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7YVtxKzR8MF09YVsy
Mzg4fDBdfDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXww
O2lmKCh0JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1pZigodCY1MTJ8MCk9
PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXwwO0wyMTUwOmRve3N3
aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0
fDApPT0wKXthW3VdPTEyMDticmVhayBMMjE1MH1lbHNle2FbdV09ODg7YnJlYWsgTDIxNTB9YnJl
YWt9O2RlZmF1bHQ6e2FbdV09MTE3fX19d2hpbGUoMCk7dT1rfDA7ZG97aWYoKGFbMTYyNjRdfDAp
PT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13
aGlsZSgwKTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNbcT4+Ml09aCxxKXww
KXwwO2k9cTtxPWsrdHwwO0wyMTYzOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2Onto
PWFbdV18MDtzd2l0Y2goaDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsg
TDIxNjM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTE3
ODU7YnJlYWsgTDIxNjN9c3dpdGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFr
fTtkZWZhdWx0Ont4PTE3ODU7YnJlYWsgTDIxNjN9fXc9aysyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9
cTticmVha307ZGVmYXVsdDp7eD0xNzg1fX19d2hpbGUoMCk7aWYoKHh8MCk9PTE3ODUpe3c9dX14
PWx8MDtlaihvLGYpO2dwKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8MDtjW3A+PjJdPWNb
ZT4+Ml07Z3EoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rp
b24gZ3QoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MCx4PTA7ZD1pO2k9aSsyNDB8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7bj1kKzIwOHwwO289ZCsyMTZ8MDtwPWQr
MjI0fDA7cT1kKzIzMnwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7cj1rO2s9cisxfDA7cz1mKzR8
MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PWt9ZWxzZXthW2tdPTQzO3U9cisyfDB9
aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7YVt2KzF8
MF09MTA4O3U9disyfDA7TDIxODE6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA4OntpZigodCYxNjM4
NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDIxODF9ZWxzZXthW3VdPTg4O2JyZWFrIEwyMTgxfWJy
ZWFrfTtjYXNlIDY0OnthW3VdPTExMTticmVha307ZGVmYXVsdDp7YVt1XT0xMTd9fX13aGlsZSgw
KTt1PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFr
fWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwyMyxjWzI5NThdfDAsciwo
cj1pLGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09aixyKXwwKXwwO2k9cjtyPWwrdHwwO0wy
MTk0OmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2OntqPWFbdV18MDtzd2l0Y2goajw8
MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9bCsxfDA7YnJlYWsgTDIxOTQ7YnJlYWt9O2RlZmF1
bHQ6e319aWYoISgodHwwKT4xJmo8PDI0Pj4yND09NDgpKXt4PTE4MTA7YnJlYWsgTDIxOTR9c3dp
dGNoKGFbbCsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE4MTA7
YnJlYWsgTDIxOTR9fXc9bCsyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9cjticmVha307ZGVmYXVsdDp7
eD0xODEwfX19d2hpbGUoMCk7aWYoKHh8MCk9PTE4MTApe3c9dX14PW18MDtlaihwLGYpO2dwKHUs
dyxyLHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+PjJdPWNbZT4+Ml07Z3EoYixxLHgsY1tu
Pj4yXXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ3UoYixkLGUsZixnLGop
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9K2o7dmFyIGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZD1pO2k9aSszMjB8MDtrPWU7ZT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzQwfDA7bj1k
KzQ4fDA7bz1kKzI4MHwwO3A9ZCsyODh8MDtxPWQrMjk2fDA7cj1kKzMwNHwwO3M9ZCszMTJ8MDtj
W2s+PjJdPTM3O2Nbays0Pj4yXT0wO3Q9aztrPXQrMXwwO3U9Zis0fDA7dj1jW3U+PjJdfDA7aWYo
KHYmMjA0OHwwKT09MCl7dz1rfWVsc2V7YVtrXT00Mzt3PXQrMnwwfWlmKCh2JjEwMjR8MCk9PTAp
e3g9d31lbHNle2Fbd109MzU7eD13KzF8MH13PXYmMjYwO2s9dj4+PjE0O0wyMjEyOmRve2lmKCh3
fDApPT0yNjApe2lmKChrJjF8MCk9PTApe2FbeF09OTc7eT0wO2JyZWFrfWVsc2V7YVt4XT02NTt5
PTA7YnJlYWt9fWVsc2V7YVt4XT00Njt2PXgrMnwwO2FbeCsxfDBdPTQyO3N3aXRjaCh3fDApe2Nh
c2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDIyMTJ9ZWxzZXthW3Zd
PTY5O3k9MTticmVhayBMMjIxMn1icmVha307Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3ZdPTEw
Mjt5PTE7YnJlYWsgTDIyMTJ9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMjIxMn1icmVha307ZGVm
YXVsdDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwyMjEyfWVsc2V7YVt2XT03
MTt5PTE7YnJlYWsgTDIyMTJ9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsx
NjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0
LDApfDB9fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkr
MTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3
PWdiKGssMzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lm
KChBfDApPjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1sy
OTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXww
KXwwO2k9ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5
NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkr
MTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+
PjJdfDA7aWYoKHd8MCkhPTApe0M9QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1C
O0Q9dztFPXd9ZWxzZXtDPUE7RD0wO0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wyMjYx
OmRve3N3aXRjaChjW3U+PjJdJjE3NnwwKXtjYXNlIDMyOntGPUE7YnJlYWt9O2Nhc2UgMTY6e0I9
YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7Rj1FKzF8MDticmVhayBM
MjI2MTticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEmQjw8MjQ+PjI0PT00OCkpe0c9MTg2
NjticmVhayBMMjI2MX1zd2l0Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9
O2RlZmF1bHQ6e0c9MTg2NjticmVhayBMMjI2MX19Rj1FKzJ8MDticmVha307ZGVmYXVsdDp7Rz0x
ODY2fX19d2hpbGUoMCk7aWYoKEd8MCk9PTE4NjYpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9
bnwwO0k9MDtKPWt9ZWxzZXtHPWtKKEM8PDMpfDA7dT1HO2lmKChHfDApIT0wKXtIPXU7ST11O0o9
RTticmVha31rWCgpO0g9dTtJPXU7Sj1jW20+PjJdfDB9fXdoaWxlKDApO2VqKHEsZik7Z3YoSixG
LEEsSCxvLHAscSk7ZHooY1txPj4yXXwwKXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4yXTtncShyLHMs
SCxjW28+PjJdfDAsY1twPj4yXXwwLGYsZyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09
ZztpZigoSXwwKSE9MCl7a0soSSl9aWYoKER8MCk9PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3Jl
dHVybn1mdW5jdGlvbiBndihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MDtsPWk7aT1pKzQ4fDA7bT1sfDA7bj1sKzE2fDA7bz1sKzMy
fDA7cD1rfDA7az1jW3A+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW24+PjJdPTE1Njg4O2Nb
bis0Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTY4OCxuLDk2KX1uPShjWzM5MjNdfDApLTF8MDtx
PWNbays4Pj4yXXwwO2lmKChjW2srMTI+PjJdfDApLXE+PjI+Pj4wPD1uPj4+MCl7cj1iTyg0KXww
O3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+Ml18MDtpZigoa3wwKT09
MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfXI9aztzPWNbcD4+Ml18MDtp
ZigoY1szODI2XXwwKSE9LTEpe2NbbT4+Ml09MTUzMDQ7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0w
O2RXKDE1MzA0LG0sOTYpfW09KGNbMzgyN118MCktMXwwO3A9Y1tzKzg+PjJdfDA7aWYoKGNbcysx
Mj4+Ml18MCktcD4+Mj4+PjA8PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2
LDEzNCl9cz1jW3ArKG08PDIpPj4yXXwwO2lmKChzfDApPT0wKXt0PWJPKDQpfDA7dT10O2txKHUp
O2JsKHR8MCw4MTc2LDEzNCl9dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+PjJdJjEyN10obyx0KTtj
W2o+PjJdPWc7dT1hW2JdfDA7c3dpdGNoKHU8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnttPWJf
W2NbKGNbaz4+Ml18MCkrNDQ+PjJdJjMxXShyLHUpfDA7dT1jW2o+PjJdfDA7Y1tqPj4yXT11KzQ7
Y1t1Pj4yXT1tO3Y9YisxfDA7YnJlYWt9O2RlZmF1bHQ6e3Y9Yn19bT1mO0wyMzA5OmRve2lmKCht
LXZ8MCk+MSl7aWYoKGFbdl18MCkhPTQ4KXt3PXY7eD0xOTIxO2JyZWFrfXU9disxfDA7c3dpdGNo
KGFbdV18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3c9djt4PTE5MjE7YnJl
YWsgTDIzMDl9fXA9aztuPWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLDQ4KXwwO3E9Y1tq
Pj4yXXwwO2Nbaj4+Ml09cSs0O2NbcT4+Ml09bjtuPXYrMnwwO3E9Yl9bY1soY1twPj4yXXwwKSs0
ND4+Ml0mMzFdKHIsYVt1XXwwKXwwO3U9Y1tqPj4yXXwwO2Nbaj4+Ml09dSs0O2NbdT4+Ml09cTtx
PW47d2hpbGUoMSl7aWYocT4+PjA+PWY+Pj4wKXt5PXE7ej1uO2JyZWFrIEwyMzA5fXU9YVtxXXww
O2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGEzKHU8PDI0Pj4yNHwwLGNbMjk1OF18MCl8
MCk9PTApe3k9cTt6PW47YnJlYWt9ZWxzZXtxPXErMXwwfX19ZWxzZXt3PXY7eD0xOTIxfX13aGls
ZSgwKTtMMjMyNDpkb3tpZigoeHwwKT09MTkyMSl7d2hpbGUoMSl7eD0wO2lmKHc+Pj4wPj1mPj4+
MCl7eT13O3o9djticmVhayBMMjMyNH1xPWFbd118MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O2lmKChiSChxPDwyND4+MjR8MCxjWzI5NThdfDApfDApPT0wKXt5PXc7ej12O2JyZWFrfWVsc2V7
dz13KzF8MDt4PTE5MjF9fX19d2hpbGUoMCk7eD1vO3c9bzt2PWRbd118MDtpZigodiYxfDApPT0w
KXtBPXY+Pj4xfWVsc2V7QT1jW28rND4+Ml18MH1kb3tpZigoQXwwKT09MCl7dj1jW2o+PjJdfDA7
dT1jWyhjW2s+PjJdfDApKzQ4Pj4yXXwwO2NhW3UmMTVdKHIseix5LHYpfDA7Y1tqPj4yXT0oY1tq
Pj4yXXwwKSsoeS16PDwyKX1lbHNle2Rve2lmKCh6fDApIT0oeXwwKSl7dj15LTF8MDtpZih6Pj4+
MDx2Pj4+MCl7Qj16O0M9dn1lbHNle2JyZWFrfWRve3Y9YVtCXXwwO2FbQl09YVtDXXwwO2FbQ109
djtCPUIrMXwwO0M9Qy0xfDA7fXdoaWxlKEI+Pj4wPEM+Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhj
W3M+PjJdfDApKzE2Pj4yXSYxMjddKHQpfDA7aWYoej4+PjA8eT4+PjApe3Y9eCsxfDA7dT1vKzR8
MDtuPW8rOHwwO3A9aztEPTA7RT0wO0Y9ejt3aGlsZSgxKXtHPShhW3ddJjEpPT0wO2Rve2lmKChh
WyhHP3Y6Y1tuPj4yXXwwKStFfDBdfDApPjApe2lmKChEfDApIT0oYVsoRz92OmNbbj4+Ml18MCkr
RXwwXXwwKSl7SD1FO0k9RDticmVha31KPWNbaj4+Ml18MDtjW2o+PjJdPUorNDtjW0o+PjJdPXE7
Sj1kW3ddfDA7SD0oRT4+PjA8KCgoSiYxfDApPT0wP0o+Pj4xOmNbdT4+Ml18MCktMXwwKT4+PjAp
K0V8MDtJPTB9ZWxzZXtIPUU7ST1EfX13aGlsZSgwKTtHPWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJd
JjMxXShyLGFbRl18MCl8MDtKPWNbaj4+Ml18MDtjW2o+PjJdPUorNDtjW0o+PjJdPUc7Rz1GKzF8
MDtpZihHPj4+MDx5Pj4+MCl7RD1JKzF8MDtFPUg7Rj1HfWVsc2V7YnJlYWt9fX1GPWcrKHotYjw8
Mil8MDtFPWNbaj4+Ml18MDtpZigoRnwwKT09KEV8MCkpe2JyZWFrfUQ9RS00fDA7aWYoRj4+PjA8
RD4+PjApe0s9RjtMPUR9ZWxzZXticmVha31kb3tEPWNbSz4+Ml18MDtjW0s+PjJdPWNbTD4+Ml07
Y1tMPj4yXT1EO0s9Sys0fDA7TD1MLTR8MDt9d2hpbGUoSz4+PjA8TD4+PjApfX13aGlsZSgwKTtM
MjM2Mzpkb3tpZih5Pj4+MDxmPj4+MCl7TD1rO0s9eTt3aGlsZSgxKXt6PWFbS118MDtpZih6PDwy
ND4+MjQ9PTQ2KXticmVha31IPWJfW2NbKGNbTD4+Ml18MCkrNDQ+PjJdJjMxXShyLHopfDA7ej1j
W2o+PjJdfDA7Y1tqPj4yXT16KzQ7Y1t6Pj4yXT1IO0g9SysxfDA7aWYoSD4+PjA8Zj4+PjApe0s9
SH1lbHNle009SDticmVhayBMMjM2M319TD1iMFtjWyhjW3M+PjJdfDApKzEyPj4yXSYxMjddKHQp
fDA7SD1jW2o+PjJdfDA7Y1tqPj4yXT1IKzQ7Y1tIPj4yXT1MO009SysxfDB9ZWxzZXtNPXl9fXdo
aWxlKDApO2NhW2NbKGNbaz4+Ml18MCkrNDg+PjJdJjE1XShyLE0sZixjW2o+PjJdfDApfDA7cj0o
Y1tqPj4yXXwwKSsobS1NPDwyKXwwO2Nbaj4+Ml09cjtpZigoZXwwKT09KGZ8MCkpe049cjtjW2g+
PjJdPU47ZFAobyk7aT1sO3JldHVybn1OPWcrKGUtYjw8Mil8MDtjW2g+PjJdPU47ZFAobyk7aT1s
O3JldHVybn1mdW5jdGlvbiBndyhiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aj0rajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0w
LEo9MDtkPWk7aT1pKzMyMHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNb
az4+Ml07az1kfDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMjgwfDA7cD1kKzI4OHww
O3E9ZCsyOTZ8MDtyPWQrMzA0fDA7cz1kKzMxMnwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1r
O2s9dCsxfDA7dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXth
W2tdPTQzO3c9dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXww
fXc9diYyNjA7az12Pj4+MTQ7TDIzODQ6ZG97aWYoKHd8MCk9PTI2MCl7YVt4XT03Njt2PXgrMXww
O2lmKChrJjF8MCk9PTApe2Fbdl09OTc7eT0wO2JyZWFrfWVsc2V7YVt2XT02NTt5PTA7YnJlYWt9
fWVsc2V7YVt4XT00NjthW3grMXwwXT00MjthW3grMnwwXT03Njt2PXgrM3wwO3N3aXRjaCh3fDAp
e2Nhc2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDIzODR9ZWxzZXth
W3ZdPTY5O3k9MTticmVhayBMMjM4NH1icmVha307Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3Zd
PTEwMjt5PTE7YnJlYWsgTDIzODR9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMjM4NH1icmVha307
ZGVmYXVsdDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwyMzg0fWVsc2V7YVt2
XT03MTt5PTE7YnJlYWsgTDIzODR9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigo
YVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwx
MzQ0LDApfDB9fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxp
PWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxz
ZXt3PWdiKGssMzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRv
e2lmKChBfDApPjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYy
NjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0s
Y1syOTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6
KXwwKXwwO2k9ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31j
WzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxp
PWkrOHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTAp
e0M9QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7
RD0wO0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wyNDMzOmRve3N3aXRjaChjW3U+PjJd
JjE3NnwwKXtjYXNlIDE2OntCPWFbRV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2Ug
NDM6e0Y9RSsxfDA7YnJlYWsgTDI0MzM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgoQ3wwKT4xJkI8
PDI0Pj4yND09NDgpKXtHPTIwMTg7YnJlYWsgTDI0MzN9c3dpdGNoKGFbRSsxfDBdfDApe2Nhc2Ug
MTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntHPTIwMTg7YnJlYWsgTDI0MzN9fUY9RSsyfDA7
YnJlYWt9O2Nhc2UgMzI6e0Y9QTticmVha307ZGVmYXVsdDp7Rz0yMDE4fX19d2hpbGUoMCk7aWYo
KEd8MCk9PTIwMTgpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtH
PWtKKEM8PDMpfDA7dT1HO2lmKChHfDApIT0wKXtIPXU7ST11O0o9RTticmVha31rWCgpO0g9dTtJ
PXU7Sj1jW20+PjJdfDB9fXdoaWxlKDApO2VqKHEsZik7Z3YoSixGLEEsSCxvLHAscSk7ZHooY1tx
Pj4yXXwwKXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4yXTtncShyLHMsSCxjW28+PjJdfDAsY1twPj4y
XXwwLGYsZyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09ZztpZigoSXwwKSE9MCl7a0so
SSl9aWYoKER8MCk9PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3JldHVybn1mdW5jdGlvbiBneChi
LGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wO2Q9aTtpPWkrMjE2fDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+
Ml09Y1tqPj4yXTtqPWR8MDtrPWQrMjR8MDtsPWQrNDh8MDttPWQrMjAwfDA7bj1kKzIwOHwwO289
ZCsxNnwwO2Fbb109YVsyMzkyXXwwO2FbbysxfDBdPWFbMjM5M3wwXXwwO2FbbysyfDBdPWFbMjM5
NHwwXXwwO2FbbyszfDBdPWFbMjM5NXwwXXwwO2Fbbys0fDBdPWFbMjM5NnwwXXwwO2Fbbys1fDBd
PWFbMjM5N3wwXXwwO3A9a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXww
KT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7cT1nYihwLDIwLGNb
Mjk1OF18MCxvLChvPWksaT1pKzh8MCxjW28+PjJdPWgsbyl8MCl8MDtpPW87bz1rK3F8MDtMMjQ2
NDpkb3tzd2l0Y2goY1tmKzQ+PjJdJjE3NnwwKXtjYXNlIDE2OntoPWFbcF18MDtzd2l0Y2goaDw8
MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3I9aysxfDA7YnJlYWsgTDI0NjQ7YnJlYWt9O2RlZmF1
bHQ6e319aWYoISgocXwwKT4xJmg8PDI0Pj4yND09NDgpKXtzPTIwNTE7YnJlYWsgTDI0NjR9c3dp
dGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntzPTIwNTE7
YnJlYWsgTDI0NjR9fXI9aysyfDA7YnJlYWt9O2Nhc2UgMzI6e3I9bzticmVha307ZGVmYXVsdDp7
cz0yMDUxfX19d2hpbGUoMCk7aWYoKHN8MCk9PTIwNTEpe3I9cH1laihtLGYpO3M9bXwwO209Y1tz
Pj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tqPj4yXT0xNTY4ODtjW2orND4+Ml09MTI7Y1tq
Kzg+PjJdPTA7ZFcoMTU2ODgsaiw5Nil9aj0oY1szOTIzXXwwKS0xfDA7aD1jW20rOD4+Ml18MDtk
b3tpZigoY1ttKzEyPj4yXXwwKS1oPj4yPj4+MD5qPj4+MCl7dD1jW2grKGo8PDIpPj4yXXwwO2lm
KCh0fDApPT0wKXticmVha311PXQ7dj1jW3M+PjJdfDA7ZHoodil8MDt2PWx8MDt3PWNbKGNbdD4+
Ml18MCkrNDg+PjJdfDA7Y2FbdyYxNV0odSxwLG8sdil8MDt1PWwrKHE8PDIpfDA7aWYoKHJ8MCk9
PShvfDApKXt4PXU7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16O2dxKGIsbix2LHgs
dSxmLGcpO2k9ZDtyZXR1cm59eD1sKyhyLWs8PDIpfDA7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7
Y1tBPj4yXT16O2dxKGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8
MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGd5KGEpe2E9YXwwO3JldHVybiAyfWZ1
bmN0aW9uIGd6KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdBKGEpe2E9
YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGdCKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MDtqPWk7aT1pKzE2
fDA7az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7Y1trPj4yXT1j
W2Q+PjJdO2NbbD4+Ml09Y1tlPj4yXTtnRChhLGIsayxsLGYsZyxoLDIzNzYsMjM4NCk7aT1qO3Jl
dHVybn1mdW5jdGlvbiBnQyhiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7
aT1pKzE2fDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209ays4fDA7bj1k
Kzh8MDtvPWIwW2NbKGNbbj4+Ml18MCkrMjA+PjJdJjEyN10obil8MDtjW2w+PjJdPWNbZT4+Ml07
Y1ttPj4yXT1jW2Y+PjJdO2Y9bztlPWFbb118MDtpZigoZSYxKT09MCl7cD1mKzF8MDtxPWYrMXww
fWVsc2V7Zj1jW28rOD4+Ml18MDtwPWY7cT1mfWY9ZSYyNTU7aWYoKGYmMXwwKT09MCl7cj1mPj4+
MX1lbHNle3I9Y1tvKzQ+PjJdfDB9Z0QoYixkLGwsbSxnLGgsaixxLHArcnwwKTtpPWs7cmV0dXJu
fWZ1bmN0aW9uIGdEKGQsZSxmLGcsaCxqLGssbCxtKXtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wO249aTtpPWkrNDh8
MDtvPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW28+PjJdO289ZztnPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbz4+Ml07bz1ufDA7cD1uKzE2fDA7cT1uKzI0fDA7
cj1uKzMyfDA7cz1uKzQwfDA7ZWoocCxoKTt0PXB8MDtwPWNbdD4+Ml18MDtpZigoY1szOTI0XXww
KSE9LTEpe2Nbbz4+Ml09MTU2OTY7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE1Njk2LG8s
OTYpfW89KGNbMzkyNV18MCktMXwwO3U9Y1twKzg+PjJdfDA7ZG97aWYoKGNbcCsxMj4+Ml18MCkt
dT4+Mj4+PjA+bz4+PjApe3Y9Y1t1KyhvPDwyKT4+Ml18MDtpZigodnwwKT09MCl7YnJlYWt9dz12
O3g9Y1t0Pj4yXXwwO2R6KHgpfDA7Y1tqPj4yXT0wO3g9ZnwwO0wyNTA2OmRve2lmKChsfDApPT0o
bXwwKSl7eT0yMTQxfWVsc2V7ej1nfDA7QT12O0I9dis4fDA7Qz12O0Q9ZTtFPXJ8MDtGPXN8MDtH
PXF8MDtIPWw7ST0wO0wyNTA4OndoaWxlKDEpe0o9STt3aGlsZSgxKXtpZigoSnwwKSE9MCl7eT0y
MTQxO2JyZWFrIEwyNTA2fUs9Y1t4Pj4yXXwwO2Rve2lmKChLfDApPT0wKXtMPTB9ZWxzZXtpZigo
Y1tLKzEyPj4yXXwwKSE9KGNbSysxNj4+Ml18MCkpe0w9SzticmVha31pZigoYjBbY1soY1tLPj4y
XXwwKSszNj4+Ml0mMTI3XShLKXwwKSE9LTEpe0w9SzticmVha31jW3g+PjJdPTA7TD0wfX13aGls
ZSgwKTtLPShMfDApPT0wO009Y1t6Pj4yXXwwO0wyNTE4OmRve2lmKChNfDApPT0wKXt5PTIwOTR9
ZWxzZXtkb3tpZigoY1tNKzEyPj4yXXwwKT09KGNbTSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW00+
PjJdfDApKzM2Pj4yXSYxMjddKE0pfDApIT0tMSl7YnJlYWt9Y1t6Pj4yXT0wO3k9MjA5NDticmVh
ayBMMjUxOH19d2hpbGUoMCk7aWYoSyl7Tj1NfWVsc2V7eT0yMDk1O2JyZWFrIEwyNTA4fX19d2hp
bGUoMCk7aWYoKHl8MCk9PTIwOTQpe3k9MDtpZihLKXt5PTIwOTU7YnJlYWsgTDI1MDh9ZWxzZXtO
PTB9fWlmKChiMVtjWyhjW0E+PjJdfDApKzM2Pj4yXSY2M10odyxhW0hdfDAsMCl8MCk8PDI0Pj4y
ND09Mzcpe3k9MjA5ODticmVha31NPWFbSF18MDtpZihNPDwyND4+MjQ+LTEpe089Y1tCPj4yXXww
O2lmKChiW08rKE08PDI0Pj4yNDw8MSk+PjFdJjgxOTIpIT0wKXtQPUg7eT0yMTA5O2JyZWFrfX1R
PUwrMTJ8MDtNPWNbUT4+Ml18MDtSPUwrMTZ8MDtpZigoTXwwKT09KGNbUj4+Ml18MCkpe1M9KGIw
W2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MCkmMjU1fWVsc2V7Uz1hW01dfDB9TT1iX1tj
WyhjW0M+PjJdfDApKzEyPj4yXSYzMV0odyxTKXwwO2lmKE08PDI0Pj4yND09KGJfW2NbKGNbQz4+
Ml18MCkrMTI+PjJdJjMxXSh3LGFbSF18MCl8MCk8PDI0Pj4yNCl7eT0yMTM2O2JyZWFrfWNbaj4+
Ml09NDtKPTR9TDI1MzY6ZG97aWYoKHl8MCk9PTIxMzYpe3k9MDtKPWNbUT4+Ml18MDtpZigoSnww
KT09KGNbUj4+Ml18MCkpe009Y1soY1tMPj4yXXwwKSs0MD4+Ml18MDtiMFtNJjEyN10oTCl8MH1l
bHNle2NbUT4+Ml09SisxfVQ9SCsxfDB9ZWxzZSBpZigoeXwwKT09MjA5OCl7eT0wO0o9SCsxfDA7
aWYoKEp8MCk9PShtfDApKXt5PTIwOTk7YnJlYWsgTDI1MDh9TT1iMVtjWyhjW0E+PjJdfDApKzM2
Pj4yXSY2M10odyxhW0pdfDAsMCl8MDtzd2l0Y2goTTw8MjQ+PjI0KXtjYXNlIDY5OmNhc2UgNDg6
e1U9SCsyfDA7aWYoKFV8MCk9PShtfDApKXt5PTIxMDI7YnJlYWsgTDI1MDh9Vj1NO1c9YjFbY1so
Y1tBPj4yXXwwKSszNj4+Ml0mNjNdKHcsYVtVXXwwLDApfDA7WD1VO2JyZWFrfTtkZWZhdWx0OntW
PTA7Vz1NO1g9Sn19Sj1jWyhjW0Q+PjJdfDApKzM2Pj4yXXwwO2NbRT4+Ml09TDtjW0Y+PjJdPU47
YjdbSiY3XShxLGUscixzLGgsaixrLFcsVik7Y1t4Pj4yXT1jW0c+PjJdO1Q9WCsxfDB9ZWxzZSBp
ZigoeXwwKT09MjEwOSl7d2hpbGUoMSl7eT0wO0o9UCsxfDA7aWYoKEp8MCk9PShtfDApKXtZPW07
YnJlYWt9TT1hW0pdfDA7aWYoTTw8MjQ+PjI0PD0tMSl7WT1KO2JyZWFrfWlmKChiW08rKE08PDI0
Pj4yNDw8MSk+PjFdJjgxOTIpPT0wKXtZPUo7YnJlYWt9ZWxzZXtQPUo7eT0yMTA5fX1LPUw7Sj1O
O3doaWxlKDEpe2Rve2lmKChLfDApPT0wKXtaPTB9ZWxzZXtpZigoY1tLKzEyPj4yXXwwKSE9KGNb
SysxNj4+Ml18MCkpe1o9SzticmVha31pZigoYjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShL
KXwwKSE9LTEpe1o9SzticmVha31jW3g+PjJdPTA7Wj0wfX13aGlsZSgwKTtNPShafDApPT0wO2Rv
e2lmKChKfDApPT0wKXt5PTIxMjJ9ZWxzZXtpZigoY1tKKzEyPj4yXXwwKSE9KGNbSisxNj4+Ml18
MCkpe2lmKE0pe189SjticmVha31lbHNle1Q9WTticmVhayBMMjUzNn19aWYoKGIwW2NbKGNbSj4+
Ml18MCkrMzY+PjJdJjEyN10oSil8MCk9PS0xKXtjW3o+PjJdPTA7eT0yMTIyO2JyZWFrfWVsc2V7
aWYoTV4oSnwwKT09MCl7Xz1KO2JyZWFrfWVsc2V7VD1ZO2JyZWFrIEwyNTM2fX19fXdoaWxlKDAp
O2lmKCh5fDApPT0yMTIyKXt5PTA7aWYoTSl7VD1ZO2JyZWFrIEwyNTM2fWVsc2V7Xz0wfX1VPVor
MTJ8MDskPWNbVT4+Ml18MDthYT1aKzE2fDA7aWYoKCR8MCk9PShjW2FhPj4yXXwwKSl7YWI9KGIw
W2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCkmMjU1fWVsc2V7YWI9YVskXXwwfWlmKGFi
PDwyND4+MjQ8PS0xKXtUPVk7YnJlYWsgTDI1MzZ9aWYoKGJbKGNbQj4+Ml18MCkrKGFiPDwyND4+
MjQ8PDEpPj4xXSY4MTkyKT09MCl7VD1ZO2JyZWFrIEwyNTM2fSQ9Y1tVPj4yXXwwO2lmKCgkfDAp
PT0oY1thYT4+Ml18MCkpe2FhPWNbKGNbWj4+Ml18MCkrNDA+PjJdfDA7YjBbYWEmMTI3XShaKXww
O0s9WjtKPV87Y29udGludWV9ZWxzZXtjW1U+PjJdPSQrMTtLPVo7Sj1fO2NvbnRpbnVlfX19fXdo
aWxlKDApO2lmKChUfDApPT0obXwwKSl7eT0yMTQxO2JyZWFrIEwyNTA2fUg9VDtJPWNbaj4+Ml18
MH1pZigoeXwwKT09MjA5OSl7Y1tqPj4yXT00O2FjPUw7YnJlYWt9ZWxzZSBpZigoeXwwKT09MjEw
Mil7Y1tqPj4yXT00O2FjPUw7YnJlYWt9ZWxzZSBpZigoeXwwKT09MjA5NSl7Y1tqPj4yXT00O2Fj
PUw7YnJlYWt9fX13aGlsZSgwKTtpZigoeXwwKT09MjE0MSl7YWM9Y1t4Pj4yXXwwfXc9ZnwwO2Rv
e2lmKChhY3wwKSE9MCl7aWYoKGNbYWMrMTI+PjJdfDApIT0oY1thYysxNj4+Ml18MCkpe2JyZWFr
fWlmKChiMFtjWyhjW2FjPj4yXXwwKSszNj4+Ml0mMTI3XShhYyl8MCkhPS0xKXticmVha31jW3c+
PjJdPTB9fXdoaWxlKDApO3g9Y1t3Pj4yXXwwO3Y9KHh8MCk9PTA7ST1nfDA7SD1jW0k+PjJdfDA7
TDI1OTQ6ZG97aWYoKEh8MCk9PTApe3k9MjE1MX1lbHNle2Rve2lmKChjW0grMTI+PjJdfDApPT0o
Y1tIKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbSD4+Ml18MCkrMzY+PjJdJjEyN10oSCl8MCkhPS0x
KXticmVha31jW0k+PjJdPTA7eT0yMTUxO2JyZWFrIEwyNTk0fX13aGlsZSgwKTtpZighdil7YnJl
YWt9YWQ9ZHwwO2NbYWQ+PjJdPXg7aT1uO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKHl8MCk9PTIx
NTEpe2lmKHYpe2JyZWFrfWFkPWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO2Nb
aj4+Ml09Y1tqPj4yXXwyO2FkPWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO249
Yk8oNCl8MDtrcShuKTtibChufDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdFKGEsYixkLGUsZixnLGgp
e2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtqPWk7aT1pKzMyfDA7az1kO2Q9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7bT1qKzI0fDA7ZWoobSxmKTtm
PW18MDttPWNbZj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1tsKzQ+
PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO249Y1tt
Kzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktbj4+Mj4+PjA+bD4+PjApe289Y1tuKyhsPDwy
KT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1vO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2U+
PjJdfDA7cT1iKzh8MDtyPWIwW2NbY1txPj4yXT4+Ml0mMTI3XShxKXwwO2Nbaz4+Ml09bztvPShm
cShkLGsscixyKzE2OHwwLHAsZywwKXwwKS1yfDA7aWYoKG98MCk+PTE2OCl7cz1kfDA7dD1jW3M+
PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59Y1toKzI0Pj4yXT0oKG98MCkvMTJ8MHww
KSU3fDA7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59fXdoaWxl
KDApO2o9Yk8oNCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdGKGEsYixkLGUs
ZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtqPWk7aT1pKzMyfDA7
az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7bT1qKzI0fDA7ZWoo
bSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7
Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXww
O249Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktbj4+Mj4+PjA+bD4+PjApe289Y1tu
KyhsPDwyKT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1vO289Y1tmPj4yXXwwO2R6KG8pfDA7
bz1jW2U+PjJdfDA7cT1iKzh8MDtyPWIwW2NbKGNbcT4+Ml18MCkrND4+Ml0mMTI3XShxKXwwO2Nb
az4+Ml09bztvPShmcShkLGsscixyKzI4OHwwLHAsZywwKXwwKS1yfDA7aWYoKG98MCk+PTI4OCl7
cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59Y1toKzE2Pj4yXT0o
KG98MCkvMTJ8MHwwKSUxMnwwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7
cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlv
biBnRyhhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2I9aTtpPWkr
MzJ8MDtqPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2o+PjJdO2o9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1ifDA7az1iKzh8MDtsPWIrMjR8
MDtlaihsLGYpO2Y9bHwwO2w9Y1tmPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1trPj4yXT0x
NTY5NjtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTU2OTYsayw5Nil9az0oY1szOTI1XXww
KS0xfDA7bT1jW2wrOD4+Ml18MDtkb3tpZigoY1tsKzEyPj4yXXwwKS1tPj4yPj4+MD5rPj4+MCl7
bj1jW20rKGs8PDIpPj4yXXwwO2lmKChufDApPT0wKXticmVha31vPW47bj1jW2Y+PjJdfDA7ZHoo
bil8MDtjW2o+PjJdPWNbZT4+Ml07bj1nTChkLGosZyxvLDQpfDA7aWYoKGNbZz4+Ml0mNHwwKSE9
MCl7cD1kfDA7cT1jW3A+PjJdfDA7cj1hfDA7Y1tyPj4yXT1xO2k9YjtyZXR1cm59aWYoKG58MCk8
Njkpe3M9bisyZTN8MH1lbHNle3M9KG4tNjl8MCk+Pj4wPDMxP24rMTkwMHwwOm59Y1toKzIwPj4y
XT1zLTE5MDA7cD1kfDA7cT1jW3A+PjJdfDA7cj1hfDA7Y1tyPj4yXT1xO2k9YjtyZXR1cm59fXdo
aWxlKDApO2I9Yk8oNCl8MDtrcShiKTtibChifDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdIKGQsZSxm
LGcsaCl7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MDtkPWk7aj1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1tqPj4yXTtqPWV8MDtlPWZ8MDtmPWgrOHwwO0wyNjUyOndoaWxl
KDEpe2g9Y1tqPj4yXXwwO2Rve2lmKChofDApPT0wKXtrPTB9ZWxzZXtpZigoY1toKzEyPj4yXXww
KSE9KGNbaCsxNj4+Ml18MCkpe2s9aDticmVha31pZigoYjBbY1soY1toPj4yXXwwKSszNj4+Ml0m
MTI3XShoKXwwKT09LTEpe2Nbaj4+Ml09MDtrPTA7YnJlYWt9ZWxzZXtrPWNbaj4+Ml18MDticmVh
a319fXdoaWxlKDApO2g9KGt8MCk9PTA7bD1jW2U+PjJdfDA7TDI2NjE6ZG97aWYoKGx8MCk9PTAp
e209MjIwN31lbHNle2Rve2lmKChjW2wrMTI+PjJdfDApPT0oY1tsKzE2Pj4yXXwwKSl7aWYoKGIw
W2NbKGNbbD4+Ml18MCkrMzY+PjJdJjEyN10obCl8MCkhPS0xKXticmVha31jW2U+PjJdPTA7bT0y
MjA3O2JyZWFrIEwyNjYxfX13aGlsZSgwKTtpZihoKXtuPWw7bz0wfWVsc2V7cD1sO3E9MDticmVh
ayBMMjY1Mn19fXdoaWxlKDApO2lmKChtfDApPT0yMjA3KXttPTA7aWYoaCl7cD0wO3E9MTticmVh
a31lbHNle249MDtvPTF9fWw9Y1tqPj4yXXwwO3I9Y1tsKzEyPj4yXXwwO2lmKChyfDApPT0oY1ts
KzE2Pj4yXXwwKSl7cz0oYjBbY1soY1tsPj4yXXwwKSszNj4+Ml0mMTI3XShsKXwwKSYyNTV9ZWxz
ZXtzPWFbcl18MH1pZihzPDwyND4+MjQ8PS0xKXtwPW47cT1vO2JyZWFrfWlmKChiWyhjW2Y+PjJd
fDApKyhzPDwyND4+MjQ8PDEpPj4xXSY4MTkyKT09MCl7cD1uO3E9bzticmVha31yPWNbaj4+Ml18
MDtsPXIrMTJ8MDt0PWNbbD4+Ml18MDtpZigodHwwKT09KGNbcisxNj4+Ml18MCkpe3U9Y1soY1ty
Pj4yXXwwKSs0MD4+Ml18MDtiMFt1JjEyN10ocil8MDtjb250aW51ZX1lbHNle2NbbD4+Ml09dCsx
O2NvbnRpbnVlfX1vPWNbaj4+Ml18MDtkb3tpZigob3wwKT09MCl7dj0wfWVsc2V7aWYoKGNbbysx
Mj4+Ml18MCkhPShjW28rMTY+PjJdfDApKXt2PW87YnJlYWt9aWYoKGIwW2NbKGNbbz4+Ml18MCkr
MzY+PjJdJjEyN10obyl8MCk9PS0xKXtjW2o+PjJdPTA7dj0wO2JyZWFrfWVsc2V7dj1jW2o+PjJd
fDA7YnJlYWt9fX13aGlsZSgwKTtqPSh2fDApPT0wO2Rve2lmKHEpe209MjIyNn1lbHNle2lmKChj
W3ArMTI+PjJdfDApIT0oY1twKzE2Pj4yXXwwKSl7aWYoIShqXihwfDApPT0wKSl7YnJlYWt9aT1k
O3JldHVybn1pZigoYjBbY1soY1twPj4yXXwwKSszNj4+Ml0mMTI3XShwKXwwKT09LTEpe2NbZT4+
Ml09MDttPTIyMjY7YnJlYWt9aWYoIWope2JyZWFrfWk9ZDtyZXR1cm59fXdoaWxlKDApO2Rve2lm
KChtfDApPT0yMjI2KXtpZihqKXticmVha31pPWQ7cmV0dXJufX13aGlsZSgwKTtjW2c+PjJdPWNb
Zz4+Ml18MjtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdJKGIsZCxlLGYsZyxoLGosayxsKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAs
UT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0w
LGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MDts
PWk7aT1pKzMyOHwwO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07
bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWx8MDtuPWwrOHww
O289bCsxNnwwO3A9bCsyNHwwO3E9bCszMnwwO3I9bCs0MHwwO3M9bCs0OHwwO3Q9bCs1NnwwO3U9
bCs2NHwwO3Y9bCs3MnwwO3c9bCs4MHwwO3g9bCs4OHwwO3k9bCs5NnwwO3o9bCsxMTJ8MDtBPWwr
MTIwfDA7Qj1sKzEyOHwwO0M9bCsxMzZ8MDtEPWwrMTQ0fDA7RT1sKzE1MnwwO0Y9bCsxNjB8MDtH
PWwrMTY4fDA7SD1sKzE3NnwwO0k9bCsxODR8MDtKPWwrMTkyfDA7Sz1sKzIwMHwwO0w9bCsyMDh8
MDtNPWwrMjE2fDA7Tj1sKzIyNHwwO089bCsyMzJ8MDtQPWwrMjQwfDA7UT1sKzI0OHwwO1I9bCsy
NTZ8MDtTPWwrMjY0fDA7VD1sKzI3MnwwO1U9bCsyODB8MDtWPWwrMjg4fDA7Vz1sKzI5NnwwO1g9
bCszMDR8MDtZPWwrMzEyfDA7Wj1sKzMyMHwwO2NbaD4+Ml09MDtlaih6LGcpO189enwwO3o9Y1tf
Pj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1t5Pj4yXT0xNTY5NjtjW3krND4+Ml09MTI7Y1t5
Kzg+PjJdPTA7ZFcoMTU2OTYseSw5Nil9eT0oY1szOTI1XXwwKS0xfDA7JD1jW3orOD4+Ml18MDtk
b3tpZigoY1t6KzEyPj4yXXwwKS0kPj4yPj4+MD55Pj4+MCl7YWE9Y1skKyh5PDwyKT4+Ml18MDtp
ZigoYWF8MCk9PTApe2JyZWFrfWFiPWFhO2FhPWNbXz4+Ml18MDtkeihhYSl8MDtMMjcwOTpkb3tz
d2l0Y2goazw8MjQ+PjI0fDApe2Nhc2UgNzI6e2NbdT4+Ml09Y1tmPj4yXTthYT1nTChlLHUsaCxh
YiwyKXwwO2FjPWNbaD4+Ml18MDtpZigoYWMmNHwwKT09MCYoYWF8MCk8MjQpe2Nbais4Pj4yXT1h
YTticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA5
NzpjYXNlIDY1OnthYz1jW2Y+PjJdfDA7YWE9ZCs4fDA7YWQ9YjBbY1tjW2FhPj4yXT4+Ml0mMTI3
XShhYSl8MDtjW3g+PjJdPWFjO2FjPShmcShlLHgsYWQsYWQrMTY4fDAsYWIsaCwwKXwwKS1hZHww
O2lmKChhY3wwKT49MTY4KXticmVhayBMMjcwOX1jW2orMjQ+PjJdPSgoYWN8MCkvMTJ8MHwwKSU3
fDA7YnJlYWt9O2Nhc2UgMTA5OntjW3I+PjJdPWNbZj4+Ml07YWM9KGdMKGUscixoLGFiLDIpfDAp
LTF8MDthZD1jW2g+PjJdfDA7aWYoKGFkJjR8MCk9PTAmKGFjfDApPDEyKXtjW2orMTY+PjJdPWFj
O2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hZHw0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNlIDEy
MTp7Y1tuPj4yXT1jW2Y+PjJdO2FkPWdMKGUsbixoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9
MCl7YnJlYWsgTDI3MDl9aWYoKGFkfDApPDY5KXthZT1hZCsyZTN8MH1lbHNle2FlPShhZC02OXww
KT4+PjA8MzE/YWQrMTkwMHwwOmFkfWNbaisyMD4+Ml09YWUtMTkwMDticmVha307Y2FzZSA5ODpj
YXNlIDY2OmNhc2UgMTA0OnthZD1jW2Y+PjJdfDA7YWM9ZCs4fDA7YWE9YjBbY1soY1thYz4+Ml18
MCkrND4+Ml0mMTI3XShhYyl8MDtjW3c+PjJdPWFkO2FkPShmcShlLHcsYWEsYWErMjg4fDAsYWIs
aCwwKXwwKS1hYXwwO2lmKChhZHwwKT49Mjg4KXticmVhayBMMjcwOX1jW2orMTY+PjJdPSgoYWR8
MCkvMTJ8MHwwKSUxMnwwO2JyZWFrfTtjYXNlIDczOnthZD1qKzh8MDtjW3Q+PjJdPWNbZj4+Ml07
YWE9Z0woZSx0LGgsYWIsMil8MDthYz1jW2g+PjJdfDA7ZG97aWYoKGFjJjR8MCk9PTApe2lmKChh
YS0xfDApPj4+MD49MTIpe2JyZWFrfWNbYWQ+PjJdPWFhO2JyZWFrIEwyNzA5fX13aGlsZSgwKTtj
W2g+PjJdPWFjfDQ7YnJlYWt9O2Nhc2UgMTA2OntjW3M+PjJdPWNbZj4+Ml07YWE9Z0woZSxzLGgs
YWIsMyl8MDthZD1jW2g+PjJdfDA7aWYoKGFkJjR8MCk9PTAmKGFhfDApPDM2Nil7Y1tqKzI4Pj4y
XT1hYTticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVha307Y2Fz
ZSA2ODp7YWQ9ZXwwO2NbRT4+Ml09Y1thZD4+Ml07Y1tGPj4yXT1jW2Y+PjJdO2dEKEQsZCxFLEYs
ZyxoLGosMjM2OCwyMzc2KTtjW2FkPj4yXT1jW0Q+PjJdO2JyZWFrfTtjYXNlIDg0OnthZD1lfDA7
Y1tTPj4yXT1jW2FkPj4yXTtjW1Q+PjJdPWNbZj4+Ml07Z0QoUixkLFMsVCxnLGgsaiwyMzI4LDIz
MzYpO2NbYWQ+PjJdPWNbUj4+Ml07YnJlYWt9O2Nhc2UgMTE5OntjW28+PjJdPWNbZj4+Ml07YWQ9
Z0woZSxvLGgsYWIsMSl8MDthYT1jW2g+PjJdfDA7aWYoKGFhJjR8MCk9PTAmKGFkfDApPDcpe2Nb
aisyND4+Ml09YWQ7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFhfDQ7YnJlYWsgTDI3MDl9YnJl
YWt9O2Nhc2UgNzA6e2FhPWV8MDtjW0g+PjJdPWNbYWE+PjJdO2NbST4+Ml09Y1tmPj4yXTtnRChH
LGQsSCxJLGcsaCxqLDIzNjAsMjM2OCk7Y1thYT4+Ml09Y1tHPj4yXTticmVha307Y2FzZSA4OTp7
Y1ttPj4yXT1jW2Y+PjJdO2FhPWdMKGUsbSxoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7
YnJlYWsgTDI3MDl9Y1tqKzIwPj4yXT1hYS0xOTAwO2JyZWFrfTtjYXNlIDM3OntjW1o+PjJdPWNb
Zj4+Ml07Z0soMCxlLFosaCxhYik7YnJlYWt9O2Nhc2UgMTE0OnthYT1lfDA7Y1tNPj4yXT1jW2Fh
Pj4yXTtjW04+PjJdPWNbZj4+Ml07Z0QoTCxkLE0sTixnLGgsaiwyMzQ0LDIzNTUpO2NbYWE+PjJd
PWNbTD4+Ml07YnJlYWt9O2Nhc2UgODI6e2FhPWV8MDtjW1A+PjJdPWNbYWE+PjJdO2NbUT4+Ml09
Y1tmPj4yXTtnRChPLGQsUCxRLGcsaCxqLDIzMzYsMjM0MSk7Y1thYT4+Ml09Y1tPPj4yXTticmVh
a307Y2FzZSA5OTp7YWE9ZCs4fDA7YWQ9YjBbY1soY1thYT4+Ml18MCkrMTI+PjJdJjEyN10oYWEp
fDA7YWE9ZXwwO2NbQj4+Ml09Y1thYT4+Ml07Y1tDPj4yXT1jW2Y+PjJdO2FmPWFkO2FnPWFbYWRd
fDA7aWYoKGFnJjEpPT0wKXthaD1hZisxfDA7YWk9YWYrMXwwfWVsc2V7YWY9Y1thZCs4Pj4yXXww
O2FoPWFmO2FpPWFmfWFmPWFnJjI1NTtpZigoYWYmMXwwKT09MCl7YWo9YWY+Pj4xfWVsc2V7YWo9
Y1thZCs0Pj4yXXwwfWdEKEEsZCxCLEMsZyxoLGosYWksYWgrYWp8MCk7Y1thYT4+Ml09Y1tBPj4y
XTticmVha307Y2FzZSA4Mzp7Y1twPj4yXT1jW2Y+PjJdO2FhPWdMKGUscCxoLGFiLDIpfDA7YWQ9
Y1toPj4yXXwwO2lmKChhZCY0fDApPT0wJihhYXwwKTw2MSl7Y1tqPj4yXT1hYTticmVhayBMMjcw
OX1lbHNle2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA3Nzp7Y1txPj4yXT1j
W2Y+PjJdO2FkPWdMKGUscSxoLGFiLDIpfDA7YWE9Y1toPj4yXXwwO2lmKChhYSY0fDApPT0wJihh
ZHwwKTw2MCl7Y1tqKzQ+PjJdPWFkO2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hYXw0O2JyZWFr
IEwyNzA5fWJyZWFrfTtjYXNlIDExMDpjYXNlIDExNjp7Y1tKPj4yXT1jW2Y+PjJdO2dIKDAsZSxK
LGgsYWIpO2JyZWFrfTtjYXNlIDExMjp7Y1tLPj4yXT1jW2Y+PjJdO2dKKGQsais4fDAsZSxLLGgs
YWIpO2JyZWFrfTtjYXNlIDEyMDp7YWE9Y1soY1tkPj4yXXwwKSsyMD4+Ml18MDtjW1U+PjJdPWNb
ZT4+Ml07Y1tWPj4yXT1jW2Y+PjJdO2JYW2FhJjEyN10oYixkLFUsVixnLGgsaik7aT1sO3JldHVy
bn07Y2FzZSA4ODp7YWE9ZCs4fDA7YWQ9YjBbY1soY1thYT4+Ml18MCkrMjQ+PjJdJjEyN10oYWEp
fDA7YWE9ZXwwO2NbWD4+Ml09Y1thYT4+Ml07Y1tZPj4yXT1jW2Y+PjJdO2FmPWFkO2FnPWFbYWRd
fDA7aWYoKGFnJjEpPT0wKXthaz1hZisxfDA7YWw9YWYrMXwwfWVsc2V7YWY9Y1thZCs4Pj4yXXww
O2FrPWFmO2FsPWFmfWFmPWFnJjI1NTtpZigoYWYmMXwwKT09MCl7YW09YWY+Pj4xfWVsc2V7YW09
Y1thZCs0Pj4yXXwwfWdEKFcsZCxYLFksZyxoLGosYWwsYWsrYW18MCk7Y1thYT4+Ml09Y1tXPj4y
XTticmVha307Y2FzZSAxMDA6Y2FzZSAxMDE6e2FhPWorMTJ8MDtjW3Y+PjJdPWNbZj4+Ml07YWQ9
Z0woZSx2LGgsYWIsMil8MDthZj1jW2g+PjJdfDA7ZG97aWYoKGFmJjR8MCk9PTApe2lmKChhZC0x
fDApPj4+MD49MzEpe2JyZWFrfWNbYWE+PjJdPWFkO2JyZWFrIEwyNzA5fX13aGlsZSgwKTtjW2g+
PjJdPWFmfDQ7YnJlYWt9O2RlZmF1bHQ6e2NbaD4+Ml09Y1toPj4yXXw0fX19d2hpbGUoMCk7Y1ti
Pj4yXT1jW2U+PjJdO2k9bDtyZXR1cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAs
ODE3NiwxMzQpfWZ1bmN0aW9uIGdKKGEsYixlLGYsZyxoKXthPWF8MDtiPWJ8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MDtqPWk7aT1pKzh8MDtrPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2s+PjJdO2s9anwwO2w9YSs4fDA7YT1iMFtj
WyhjW2w+PjJdfDApKzg+PjJdJjEyN10obCl8MDtsPWRbYV18MDtpZigobCYxfDApPT0wKXttPWw+
Pj4xfWVsc2V7bT1jW2ErND4+Ml18MH1sPWRbYSsxMnwwXXwwO2lmKChsJjF8MCk9PTApe249bD4+
PjF9ZWxzZXtuPWNbYSsxNj4+Ml18MH1pZigobXwwKT09KC1ufDApKXtjW2c+PjJdPWNbZz4+Ml18
NDtpPWo7cmV0dXJufWNbaz4+Ml09Y1tmPj4yXTtmPWZxKGUsayxhLGErMjR8MCxoLGcsMCl8MDtn
PWYtYXwwO2Rve2lmKChmfDApPT0oYXwwKSl7aWYoKGNbYj4+Ml18MCkhPTEyKXticmVha31jW2I+
PjJdPTA7aT1qO3JldHVybn19d2hpbGUoMCk7aWYoKGd8MCkhPTEyKXtpPWo7cmV0dXJufWc9Y1ti
Pj4yXXwwO2lmKChnfDApPj0xMil7aT1qO3JldHVybn1jW2I+PjJdPWcrMTI7aT1qO3JldHVybn1m
dW5jdGlvbiBnSyhiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBo
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Yj1pO2g9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2U+PjJdPWNbaD4+Ml07aD1kfDA7ZD1jW2g+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2o9MH1l
bHNle2lmKChjW2QrMTI+PjJdfDApIT0oY1tkKzE2Pj4yXXwwKSl7aj1kO2JyZWFrfWlmKChiMFtj
WyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApPT0tMSl7Y1toPj4yXT0wO2o9MDticmVha31l
bHNle2o9Y1toPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0oanwwKT09MDtqPWV8MDtlPWNbaj4+
Ml18MDtMMjgyMjpkb3tpZigoZXwwKT09MCl7az0yMzM3fWVsc2V7ZG97aWYoKGNbZSsxMj4+Ml18
MCk9PShjW2UrMTY+PjJdfDApKXtpZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXww
KSE9LTEpe2JyZWFrfWNbaj4+Ml09MDtrPTIzMzc7YnJlYWsgTDI4MjJ9fXdoaWxlKDApO2lmKGQp
e2w9ZTttPTB9ZWxzZXtrPTIzMzh9fX13aGlsZSgwKTtpZigoa3wwKT09MjMzNyl7aWYoZCl7az0y
MzM4fWVsc2V7bD0wO209MX19aWYoKGt8MCk9PTIzMzgpe2NbZj4+Ml09Y1tmPj4yXXw2O2k9Yjty
ZXR1cm59ZD1jW2g+PjJdfDA7ZT1jW2QrMTI+PjJdfDA7aWYoKGV8MCk9PShjW2QrMTY+PjJdfDAp
KXtuPShiMFtjWyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApJjI1NX1lbHNle249YVtlXXww
fWlmKChiMVtjWyhjW2c+PjJdfDApKzM2Pj4yXSY2M10oZyxuLDApfDApPDwyND4+MjQhPTM3KXtj
W2Y+PjJdPWNbZj4+Ml18NDtpPWI7cmV0dXJufW49Y1toPj4yXXwwO2c9bisxMnwwO2U9Y1tnPj4y
XXwwO2lmKChlfDApPT0oY1tuKzE2Pj4yXXwwKSl7ZD1jWyhjW24+PjJdfDApKzQwPj4yXXwwO2Iw
W2QmMTI3XShuKXwwfWVsc2V7Y1tnPj4yXT1lKzF9ZT1jW2g+PjJdfDA7ZG97aWYoKGV8MCk9PTAp
e289MH1lbHNle2lmKChjW2UrMTI+PjJdfDApIT0oY1tlKzE2Pj4yXXwwKSl7bz1lO2JyZWFrfWlm
KChiMFtjWyhjW2U+PjJdfDApKzM2Pj4yXSYxMjddKGUpfDApPT0tMSl7Y1toPj4yXT0wO289MDti
cmVha31lbHNle289Y1toPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7aD0ob3wwKT09MDtkb3tpZiht
KXtrPTIzNTd9ZWxzZXtpZigoY1tsKzEyPj4yXXwwKSE9KGNbbCsxNj4+Ml18MCkpe2lmKCEoaF4o
bHwwKT09MCkpe2JyZWFrfWk9YjtyZXR1cm59aWYoKGIwW2NbKGNbbD4+Ml18MCkrMzY+PjJdJjEy
N10obCl8MCk9PS0xKXtjW2o+PjJdPTA7az0yMzU3O2JyZWFrfWlmKCFoKXticmVha31pPWI7cmV0
dXJufX13aGlsZSgwKTtkb3tpZigoa3wwKT09MjM1Nyl7aWYoaCl7YnJlYWt9aT1iO3JldHVybn19
d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+PjJdfDI7aT1iO3JldHVybn1mdW5jdGlvbiBnTChkLGUsZixn
LGgpe2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTA7aj1pO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2U+PjJdPWNbaz4+Ml07az1kfDA7ZD1jW2s+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2w9MH1lbHNl
e2lmKChjW2QrMTI+PjJdfDApIT0oY1tkKzE2Pj4yXXwwKSl7bD1kO2JyZWFrfWlmKChiMFtjWyhj
W2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApPT0tMSl7Y1trPj4yXT0wO2w9MDticmVha31lbHNl
e2w9Y1trPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0obHwwKT09MDtsPWV8MDtlPWNbbD4+Ml18
MDtMMjg3Njpkb3tpZigoZXwwKT09MCl7bT0yMzc3fWVsc2V7ZG97aWYoKGNbZSsxMj4+Ml18MCk9
PShjW2UrMTY+PjJdfDApKXtpZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXwwKSE9
LTEpe2JyZWFrfWNbbD4+Ml09MDttPTIzNzc7YnJlYWsgTDI4NzZ9fXdoaWxlKDApO2lmKGQpe249
ZX1lbHNle209MjM3OH19fXdoaWxlKDApO2lmKChtfDApPT0yMzc3KXtpZihkKXttPTIzNzh9ZWxz
ZXtuPTB9fWlmKChtfDApPT0yMzc4KXtjW2Y+PjJdPWNbZj4+Ml18NjtvPTA7aT1qO3JldHVybiBv
fDB9ZD1jW2s+PjJdfDA7ZT1jW2QrMTI+PjJdfDA7aWYoKGV8MCk9PShjW2QrMTY+PjJdfDApKXtw
PShiMFtjWyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApJjI1NX1lbHNle3A9YVtlXXwwfWRv
e2lmKHA8PDI0Pj4yND4tMSl7ZT1nKzh8MDtpZigoYlsoY1tlPj4yXXwwKSsocDw8MjQ+PjI0PDwx
KT4+MV0mMjA0OCk9PTApe2JyZWFrfWQ9ZztxPShiMVtjWyhjW2Q+PjJdfDApKzM2Pj4yXSY2M10o
ZyxwLDApfDApPDwyND4+MjQ7cj1jW2s+PjJdfDA7cz1yKzEyfDA7dD1jW3M+PjJdfDA7aWYoKHR8
MCk9PShjW3IrMTY+PjJdfDApKXt1PWNbKGNbcj4+Ml18MCkrNDA+PjJdfDA7YjBbdSYxMjddKHIp
fDA7dj1xO3c9aDt4PW59ZWxzZXtjW3M+PjJdPXQrMTt2PXE7dz1oO3g9bn13aGlsZSgxKXt5PXYt
NDh8MDtxPXctMXwwO3Q9Y1trPj4yXXwwO2Rve2lmKCh0fDApPT0wKXt6PTB9ZWxzZXtpZigoY1t0
KzEyPj4yXXwwKSE9KGNbdCsxNj4+Ml18MCkpe3o9dDticmVha31pZigoYjBbY1soY1t0Pj4yXXww
KSszNj4+Ml0mMTI3XSh0KXwwKT09LTEpe2Nbaz4+Ml09MDt6PTA7YnJlYWt9ZWxzZXt6PWNbaz4+
Ml18MDticmVha319fXdoaWxlKDApO3Q9KHp8MCk9PTA7aWYoKHh8MCk9PTApe0E9ejtCPTB9ZWxz
ZXtkb3tpZigoY1t4KzEyPj4yXXwwKT09KGNbeCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW3g+PjJd
fDApKzM2Pj4yXSYxMjddKHgpfDApIT0tMSl7Qz14O2JyZWFrfWNbbD4+Ml09MDtDPTB9ZWxzZXtD
PXh9fXdoaWxlKDApO0E9Y1trPj4yXXwwO0I9Q31EPShCfDApPT0wO2lmKCEoKHReRCkmKHF8MCk+
MCkpe209MjQwNzticmVha31zPWNbQSsxMj4+Ml18MDtpZigoc3wwKT09KGNbQSsxNj4+Ml18MCkp
e0U9KGIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MCkmMjU1fWVsc2V7RT1hW3NdfDB9
aWYoRTw8MjQ+PjI0PD0tMSl7bz15O209MjQyMjticmVha31pZigoYlsoY1tlPj4yXXwwKSsoRTw8
MjQ+PjI0PDwxKT4+MV0mMjA0OCk9PTApe289eTttPTI0MjM7YnJlYWt9cz0oKGIxW2NbKGNbZD4+
Ml18MCkrMzY+PjJdJjYzXShnLEUsMCl8MCk8PDI0Pj4yNCkrKHkqMTB8MCl8MDtyPWNbaz4+Ml18
MDt1PXIrMTJ8MDtGPWNbdT4+Ml18MDtpZigoRnwwKT09KGNbcisxNj4+Ml18MCkpe0c9Y1soY1ty
Pj4yXXwwKSs0MD4+Ml18MDtiMFtHJjEyN10ocil8MDt2PXM7dz1xO3g9Qjtjb250aW51ZX1lbHNl
e2NbdT4+Ml09RisxO3Y9czt3PXE7eD1CO2NvbnRpbnVlfX1pZigobXwwKT09MjQwNyl7ZG97aWYo
KEF8MCk9PTApe0g9MH1lbHNle2lmKChjW0ErMTI+PjJdfDApIT0oY1tBKzE2Pj4yXXwwKSl7SD1B
O2JyZWFrfWlmKChiMFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApPT0tMSl7Y1trPj4y
XT0wO0g9MDticmVha31lbHNle0g9Y1trPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0oSHwwKT09
MDtMMjkzMzpkb3tpZihEKXttPTI0MTd9ZWxzZXtkb3tpZigoY1tCKzEyPj4yXXwwKT09KGNbQisx
Nj4+Ml18MCkpe2lmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7YnJl
YWt9Y1tsPj4yXT0wO209MjQxNzticmVhayBMMjkzM319d2hpbGUoMCk7aWYoZCl7bz15fWVsc2V7
YnJlYWt9aT1qO3JldHVybiBvfDB9fXdoaWxlKDApO2Rve2lmKChtfDApPT0yNDE3KXtpZihkKXti
cmVha31lbHNle289eX1pPWo7cmV0dXJuIG98MH19d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+PjJdfDI7
bz15O2k9ajtyZXR1cm4gb3wwfWVsc2UgaWYoKG18MCk9PTI0MjIpe2k9ajtyZXR1cm4gb3wwfWVs
c2UgaWYoKG18MCk9PTI0MjMpe2k9ajtyZXR1cm4gb3wwfX19d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+
PjJdfDQ7bz0wO2k9ajtyZXR1cm4gb3wwfWZ1bmN0aW9uIGdNKGEpe2E9YXwwO3JldHVybiAyfWZ1
bmN0aW9uIGdOKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdPKGEpe2E9
YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGdQKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MDtqPWk7aT1pKzE2
fDA7az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7Y1trPj4yXT1j
W2Q+PjJdO2NbbD4+Ml09Y1tlPj4yXTtnUihhLGIsayxsLGYsZyxoLDIyOTYsMjMyOCk7aT1qO3Jl
dHVybn1mdW5jdGlvbiBnUShiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7
aT1pKzE2fDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209ays4fDA7bj1k
Kzh8MDtvPWIwW2NbKGNbbj4+Ml18MCkrMjA+PjJdJjEyN10obil8MDtjW2w+PjJdPWNbZT4+Ml07
Y1ttPj4yXT1jW2Y+PjJdO2Y9YVtvXXwwO2lmKChmJjEpPT0wKXtwPW8rNHwwO3E9bys0fDB9ZWxz
ZXtlPWNbbys4Pj4yXXwwO3A9ZTtxPWV9ZT1mJjI1NTtpZigoZSYxfDApPT0wKXtyPWU+Pj4xfWVs
c2V7cj1jW28rND4+Ml18MH1nUihiLGQsbCxtLGcsaCxqLHEscCsocjw8Mil8MCk7aT1rO3JldHVy
bn1mdW5jdGlvbiBnUihhLGIsZCxlLGYsZyxoLGosayl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxU
PTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFl
PTAsYWY9MCxhZz0wO2w9aTtpPWkrNDh8MDttPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tk
Pj4yXT1jW20+PjJdO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07
bT1sfDA7bj1sKzE2fDA7bz1sKzI0fDA7cD1sKzMyfDA7cT1sKzQwfDA7ZWoobixmKTtyPW58MDtu
PWNbcj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+PjJdPTEy
O2NbbSs4Pj4yXT0wO2RXKDE1Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO3M9Y1tuKzg+PjJd
fDA7ZG97aWYoKGNbbisxMj4+Ml18MCktcz4+Mj4+PjA+bT4+PjApe3Q9Y1tzKyhtPDwyKT4+Ml18
MDtpZigodHwwKT09MCl7YnJlYWt9dT10O3Y9Y1tyPj4yXXwwO2R6KHYpfDA7Y1tnPj4yXT0wO3Y9
ZHwwO0wyOTY5OmRve2lmKChqfDApPT0oa3wwKSl7dz0yNTA4fWVsc2V7eD1lfDA7eT10O3o9dDtB
PXQ7Qj1iO0M9cHwwO0Q9cXwwO0U9b3wwO0Y9ajtHPTA7TDI5NzE6d2hpbGUoMSl7SD1HO3doaWxl
KDEpe2lmKChIfDApIT0wKXt3PTI1MDg7YnJlYWsgTDI5Njl9ST1jW3Y+PjJdfDA7ZG97aWYoKEl8
MCk9PTApe0o9MH1lbHNle0s9Y1tJKzEyPj4yXXwwO2lmKChLfDApPT0oY1tJKzE2Pj4yXXwwKSl7
TD1iMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDB9ZWxzZXtMPWNbSz4+Ml18MH1pZigo
THwwKSE9LTEpe0o9STticmVha31jW3Y+PjJdPTA7Sj0wfX13aGlsZSgwKTtJPShKfDApPT0wO0s9
Y1t4Pj4yXXwwO2Rve2lmKChLfDApPT0wKXt3PTI0NjB9ZWxzZXtNPWNbSysxMj4+Ml18MDtpZigo
TXwwKT09KGNbSysxNj4+Ml18MCkpe049YjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShLKXww
fWVsc2V7Tj1jW00+PjJdfDB9aWYoKE58MCk9PS0xKXtjW3g+PjJdPTA7dz0yNDYwO2JyZWFrfWVs
c2V7aWYoSV4oS3wwKT09MCl7Tz1LO2JyZWFrfWVsc2V7dz0yNDYyO2JyZWFrIEwyOTcxfX19fXdo
aWxlKDApO2lmKCh3fDApPT0yNDYwKXt3PTA7aWYoSSl7dz0yNDYyO2JyZWFrIEwyOTcxfWVsc2V7
Tz0wfX1pZigoYjFbY1soY1t5Pj4yXXwwKSs1Mj4+Ml0mNjNdKHUsY1tGPj4yXXwwLDApfDApPDwy
ND4+MjQ9PTM3KXt3PTI0NjU7YnJlYWt9aWYoYjFbY1soY1t6Pj4yXXwwKSsxMj4+Ml0mNjNdKHUs
ODE5MixjW0Y+PjJdfDApfDApe1A9Rjt3PTI0NzU7YnJlYWt9UT1KKzEyfDA7Sz1jW1E+PjJdfDA7
Uj1KKzE2fDA7aWYoKEt8MCk9PShjW1I+PjJdfDApKXtTPWIwW2NbKGNbSj4+Ml18MCkrMzY+PjJd
JjEyN10oSil8MH1lbHNle1M9Y1tLPj4yXXwwfUs9Yl9bY1soY1tBPj4yXXwwKSsyOD4+Ml0mMzFd
KHUsUyl8MDtpZigoS3wwKT09KGJfW2NbKGNbQT4+Ml18MCkrMjg+PjJdJjMxXSh1LGNbRj4+Ml18
MCl8MCkpe3c9MjUwMzticmVha31jW2c+PjJdPTQ7SD00fUwzMDAzOmRve2lmKCh3fDApPT0yNTAz
KXt3PTA7SD1jW1E+PjJdfDA7aWYoKEh8MCk9PShjW1I+PjJdfDApKXtLPWNbKGNbSj4+Ml18MCkr
NDA+PjJdfDA7YjBbSyYxMjddKEopfDB9ZWxzZXtjW1E+PjJdPUgrNH1UPUYrNHwwfWVsc2UgaWYo
KHd8MCk9PTI0NjUpe3c9MDtIPUYrNHwwO2lmKChIfDApPT0oa3wwKSl7dz0yNDY2O2JyZWFrIEwy
OTcxfUs9YjFbY1soY1t5Pj4yXXwwKSs1Mj4+Ml0mNjNdKHUsY1tIPj4yXXwwLDApfDA7c3dpdGNo
KEs8PDI0Pj4yNCl7Y2FzZSA2OTpjYXNlIDQ4OntNPUYrOHwwO2lmKChNfDApPT0oa3wwKSl7dz0y
NDY5O2JyZWFrIEwyOTcxfVU9SztWPWIxW2NbKGNbeT4+Ml18MCkrNTI+PjJdJjYzXSh1LGNbTT4+
Ml18MCwwKXwwO1c9TTticmVha307ZGVmYXVsdDp7VT0wO1Y9SztXPUh9fUg9Y1soY1tCPj4yXXww
KSszNj4+Ml18MDtjW0M+PjJdPUo7Y1tEPj4yXT1PO2I3W0gmN10obyxiLHAscSxmLGcsaCxWLFUp
O2Nbdj4+Ml09Y1tFPj4yXTtUPVcrNHwwfWVsc2UgaWYoKHd8MCk9PTI0NzUpe3doaWxlKDEpe3c9
MDtIPVArNHwwO2lmKChIfDApPT0oa3wwKSl7WD1rO2JyZWFrfWlmKGIxW2NbKGNbej4+Ml18MCkr
MTI+PjJdJjYzXSh1LDgxOTIsY1tIPj4yXXwwKXwwKXtQPUg7dz0yNDc1fWVsc2V7WD1IO2JyZWFr
fX1JPUo7SD1PO3doaWxlKDEpe2Rve2lmKChJfDApPT0wKXtZPTB9ZWxzZXtLPWNbSSsxMj4+Ml18
MDtpZigoS3wwKT09KGNbSSsxNj4+Ml18MCkpe1o9YjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3
XShJKXwwfWVsc2V7Wj1jW0s+PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUk7YnJlYWt9Y1t2Pj4yXT0w
O1k9MH19d2hpbGUoMCk7Sz0oWXwwKT09MDtkb3tpZigoSHwwKT09MCl7dz0yNDkwfWVsc2V7TT1j
W0grMTI+PjJdfDA7aWYoKE18MCk9PShjW0grMTY+PjJdfDApKXtfPWIwW2NbKGNbSD4+Ml18MCkr
MzY+PjJdJjEyN10oSCl8MH1lbHNle189Y1tNPj4yXXwwfWlmKChffDApPT0tMSl7Y1t4Pj4yXT0w
O3c9MjQ5MDticmVha31lbHNle2lmKEteKEh8MCk9PTApeyQ9SDticmVha31lbHNle1Q9WDticmVh
ayBMMzAwM319fX13aGlsZSgwKTtpZigod3wwKT09MjQ5MCl7dz0wO2lmKEspe1Q9WDticmVhayBM
MzAwM31lbHNleyQ9MH19TT1ZKzEyfDA7YWE9Y1tNPj4yXXwwO2FiPVkrMTZ8MDtpZigoYWF8MCk9
PShjW2FiPj4yXXwwKSl7YWM9YjBbY1soY1tZPj4yXXwwKSszNj4+Ml0mMTI3XShZKXwwfWVsc2V7
YWM9Y1thYT4+Ml18MH1pZighKGIxW2NbKGNbej4+Ml18MCkrMTI+PjJdJjYzXSh1LDgxOTIsYWMp
fDApKXtUPVg7YnJlYWsgTDMwMDN9YWE9Y1tNPj4yXXwwO2lmKChhYXwwKT09KGNbYWI+PjJdfDAp
KXthYj1jWyhjW1k+PjJdfDApKzQwPj4yXXwwO2IwW2FiJjEyN10oWSl8MDtJPVk7SD0kO2NvbnRp
bnVlfWVsc2V7Y1tNPj4yXT1hYSs0O0k9WTtIPSQ7Y29udGludWV9fX19d2hpbGUoMCk7aWYoKFR8
MCk9PShrfDApKXt3PTI1MDg7YnJlYWsgTDI5Njl9Rj1UO0c9Y1tnPj4yXXwwfWlmKCh3fDApPT0y
NDYyKXtjW2c+PjJdPTQ7YWQ9SjticmVha31lbHNlIGlmKCh3fDApPT0yNDY2KXtjW2c+PjJdPTQ7
YWQ9SjticmVha31lbHNlIGlmKCh3fDApPT0yNDY5KXtjW2c+PjJdPTQ7YWQ9SjticmVha319fXdo
aWxlKDApO2lmKCh3fDApPT0yNTA4KXthZD1jW3Y+PjJdfDB9dT1kfDA7ZG97aWYoKGFkfDApIT0w
KXt0PWNbYWQrMTI+PjJdfDA7aWYoKHR8MCk9PShjW2FkKzE2Pj4yXXwwKSl7YWU9YjBbY1soY1th
ZD4+Ml18MCkrMzY+PjJdJjEyN10oYWQpfDB9ZWxzZXthZT1jW3Q+PjJdfDB9aWYoKGFlfDApIT0t
MSl7YnJlYWt9Y1t1Pj4yXT0wfX13aGlsZSgwKTt2PWNbdT4+Ml18MDt0PSh2fDApPT0wO0c9ZXww
O0Y9Y1tHPj4yXXwwO2Rve2lmKChGfDApPT0wKXt3PTI1MjF9ZWxzZXt6PWNbRisxMj4+Ml18MDtp
ZigoenwwKT09KGNbRisxNj4+Ml18MCkpe2FmPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10o
Ril8MH1lbHNle2FmPWNbej4+Ml18MH1pZigoYWZ8MCk9PS0xKXtjW0c+PjJdPTA7dz0yNTIxO2Jy
ZWFrfWlmKCEodF4oRnwwKT09MCkpe2JyZWFrfWFnPWF8MDtjW2FnPj4yXT12O2k9bDtyZXR1cm59
fXdoaWxlKDApO2Rve2lmKCh3fDApPT0yNTIxKXtpZih0KXticmVha31hZz1hfDA7Y1thZz4+Ml09
djtpPWw7cmV0dXJufX13aGlsZSgwKTtjW2c+PjJdPWNbZz4+Ml18MjthZz1hfDA7Y1thZz4+Ml09
djtpPWw7cmV0dXJufX13aGlsZSgwKTtsPWJPKDQpfDA7a3EobCk7YmwobHwwLDgxNzYsMTM0KX1m
dW5jdGlvbiBnUyhhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTA7aj1pO2k9aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNb
az4+Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDts
PWorOHwwO209aisyNHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzkyMl18MCkh
PS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2
KX1sPShjWzM5MjNdfDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLW4+
PjI+Pj4wPmw+Pj4wKXtvPWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztv
PWNbZj4+Ml18MDtkeihvKXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjW2NbcT4+Ml0+PjJd
JjEyN10ocSl8MDtjW2s+PjJdPW87bz0oZlMoZCxrLHIscisxNjh8MCxwLGcsMCl8MCktcnwwO2lm
KChvfDApPj0xNjgpe3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJu
fWNbaCsyND4+Ml09KChvfDApLzEyfDB8MCklN3wwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2Nb
dT4+Ml09dDtpPWo7cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYs
MTM0KX1mdW5jdGlvbiBnVChhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTA7aj1pO2k9aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+
PjJdPWNbaz4+Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtr
PWp8MDtsPWorOHwwO209aisyNHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzky
Ml18MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4
OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJd
fDApLW4+PjI+Pj4wPmw+Pj4wKXtvPWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFr
fXA9bztvPWNbZj4+Ml18MDtkeihvKXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjWyhjW3E+
PjJdfDApKzQ+PjJdJjEyN10ocSl8MDtjW2s+PjJdPW87bz0oZlMoZCxrLHIscisyODh8MCxwLGcs
MCl8MCktcnwwO2lmKChvfDApPj0yODgpe3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09
dDtpPWo7cmV0dXJufWNbaCsxNj4+Ml09KChvfDApLzEyfDB8MCklMTJ8MDtzPWR8MDt0PWNbcz4+
Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGop
O2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ1UoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MDtiPWk7aT1pKzMyfDA7aj1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZD4+Ml09Y1tqPj4yXTtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+
PjJdO2o9YnwwO2s9Yis4fDA7bD1iKzI0fDA7ZWoobCxmKTtmPWx8MDtsPWNbZj4+Ml18MDtpZigo
Y1szOTIyXXwwKSE9LTEpe2Nbaz4+Ml09MTU2ODg7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RX
KDE1Njg4LGssOTYpfWs9KGNbMzkyM118MCktMXwwO209Y1tsKzg+PjJdfDA7ZG97aWYoKGNbbCsx
Mj4+Ml18MCktbT4+Mj4+PjA+az4+PjApe249Y1ttKyhrPDwyKT4+Ml18MDtpZigobnwwKT09MCl7
YnJlYWt9bz1uO249Y1tmPj4yXXwwO2R6KG4pfDA7Y1tqPj4yXT1jW2U+PjJdO249aGMoZCxqLGcs
byw0KXwwO2lmKChjW2c+PjJdJjR8MCkhPTApe3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXwwO2Nbcj4+
Ml09cTtpPWI7cmV0dXJufWlmKChufDApPDY5KXtzPW4rMmUzfDB9ZWxzZXtzPShuLTY5fDApPj4+
MDwzMT9uKzE5MDB8MDpufWNbaCsyMD4+Ml09cy0xOTAwO3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXww
O2Nbcj4+Ml09cTtpPWI7cmV0dXJufX13aGlsZSgwKTtiPWJPKDQpfDA7a3EoYik7YmwoYnwwLDgx
NzYsMTM0KX1mdW5jdGlvbiBnVihhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wO2E9aTtnPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4y
XT1jW2c+PjJdO2c9YnwwO2I9ZHwwO2Q9ZjtMMzEyNzp3aGlsZSgxKXtoPWNbZz4+Ml18MDtkb3tp
ZigoaHwwKT09MCl7aj0xfWVsc2V7az1jW2grMTI+PjJdfDA7aWYoKGt8MCk9PShjW2grMTY+PjJd
fDApKXtsPWIwW2NbKGNbaD4+Ml18MCkrMzY+PjJdJjEyN10oaCl8MH1lbHNle2w9Y1trPj4yXXww
fWlmKChsfDApPT0tMSl7Y1tnPj4yXT0wO2o9MTticmVha31lbHNle2o9KGNbZz4+Ml18MCk9PTA7
YnJlYWt9fX13aGlsZSgwKTtoPWNbYj4+Ml18MDtkb3tpZigoaHwwKT09MCl7bT0yNTgxfWVsc2V7
az1jW2grMTI+PjJdfDA7aWYoKGt8MCk9PShjW2grMTY+PjJdfDApKXtuPWIwW2NbKGNbaD4+Ml18
MCkrMzY+PjJdJjEyN10oaCl8MH1lbHNle249Y1trPj4yXXwwfWlmKChufDApPT0tMSl7Y1tiPj4y
XT0wO209MjU4MTticmVha31lbHNle2s9KGh8MCk9PTA7aWYoal5rKXtvPWg7cD1rO2JyZWFrfWVs
c2V7cT1oO3I9azticmVhayBMMzEyN319fX13aGlsZSgwKTtpZigobXwwKT09MjU4MSl7bT0wO2lm
KGope3E9MDtyPTE7YnJlYWt9ZWxzZXtvPTA7cD0xfX1oPWNbZz4+Ml18MDtrPWNbaCsxMj4+Ml18
MDtpZigoa3wwKT09KGNbaCsxNj4+Ml18MCkpe3M9YjBbY1soY1toPj4yXXwwKSszNj4+Ml0mMTI3
XShoKXwwfWVsc2V7cz1jW2s+PjJdfDB9aWYoIShiMVtjWyhjW2Q+PjJdfDApKzEyPj4yXSY2M10o
Ziw4MTkyLHMpfDApKXtxPW87cj1wO2JyZWFrfWs9Y1tnPj4yXXwwO2g9aysxMnwwO3Q9Y1toPj4y
XXwwO2lmKCh0fDApPT0oY1trKzE2Pj4yXXwwKSl7dT1jWyhjW2s+PjJdfDApKzQwPj4yXXwwO2Iw
W3UmMTI3XShrKXwwO2NvbnRpbnVlfWVsc2V7Y1toPj4yXT10KzQ7Y29udGludWV9fXA9Y1tnPj4y
XXwwO2Rve2lmKChwfDApPT0wKXt2PTF9ZWxzZXtvPWNbcCsxMj4+Ml18MDtpZigob3wwKT09KGNb
cCsxNj4+Ml18MCkpe3c9YjBbY1soY1twPj4yXXwwKSszNj4+Ml0mMTI3XShwKXwwfWVsc2V7dz1j
W28+PjJdfDB9aWYoKHd8MCk9PS0xKXtjW2c+PjJdPTA7dj0xO2JyZWFrfWVsc2V7dj0oY1tnPj4y
XXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKHIpe209MjYwM31lbHNle2c9Y1txKzEyPj4y
XXwwO2lmKChnfDApPT0oY1txKzE2Pj4yXXwwKSl7eD1iMFtjWyhjW3E+PjJdfDApKzM2Pj4yXSYx
MjddKHEpfDB9ZWxzZXt4PWNbZz4+Ml18MH1pZigoeHwwKT09LTEpe2NbYj4+Ml09MDttPTI2MDM7
YnJlYWt9aWYoISh2XihxfDApPT0wKSl7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7ZG97aWYo
KG18MCk9PTI2MDMpe2lmKHYpe2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2NbZT4+Ml09Y1tl
Pj4yXXwyO2k9YTtyZXR1cm59ZnVuY3Rpb24gZ1coYixkLGUsZixnLGgsaixrLGwpe2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAs
YWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wO2w9
aTtpPWkrMzI4fDA7bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4yXTtt
PWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209bHwwO249bCs4fDA7
bz1sKzE2fDA7cD1sKzI0fDA7cT1sKzMyfDA7cj1sKzQwfDA7cz1sKzQ4fDA7dD1sKzU2fDA7dT1s
KzY0fDA7dj1sKzcyfDA7dz1sKzgwfDA7eD1sKzg4fDA7eT1sKzk2fDA7ej1sKzExMnwwO0E9bCsx
MjB8MDtCPWwrMTI4fDA7Qz1sKzEzNnwwO0Q9bCsxNDR8MDtFPWwrMTUyfDA7Rj1sKzE2MHwwO0c9
bCsxNjh8MDtIPWwrMTc2fDA7ST1sKzE4NHwwO0o9bCsxOTJ8MDtLPWwrMjAwfDA7TD1sKzIwOHww
O009bCsyMTZ8MDtOPWwrMjI0fDA7Tz1sKzIzMnwwO1A9bCsyNDB8MDtRPWwrMjQ4fDA7Uj1sKzI1
NnwwO1M9bCsyNjR8MDtUPWwrMjcyfDA7VT1sKzI4MHwwO1Y9bCsyODh8MDtXPWwrMjk2fDA7WD1s
KzMwNHwwO1k9bCszMTJ8MDtaPWwrMzIwfDA7Y1toPj4yXT0wO2VqKHosZyk7Xz16fDA7ej1jW18+
PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW3k+PjJdPTE1Njg4O2NbeSs0Pj4yXT0xMjtjW3kr
OD4+Ml09MDtkVygxNTY4OCx5LDk2KX15PShjWzM5MjNdfDApLTF8MDskPWNbeis4Pj4yXXwwO2Rv
e2lmKChjW3orMTI+PjJdfDApLSQ+PjI+Pj4wPnk+Pj4wKXthYT1jWyQrKHk8PDIpPj4yXXwwO2lm
KChhYXwwKT09MCl7YnJlYWt9YWI9YWE7YWE9Y1tfPj4yXXwwO2R6KGFhKXwwO0wzMTkyOmRve3N3
aXRjaChrPDwyND4+MjR8MCl7Y2FzZSAxMDA6Y2FzZSAxMDE6e2FhPWorMTJ8MDtjW3Y+PjJdPWNb
Zj4+Ml07YWM9aGMoZSx2LGgsYWIsMil8MDthZD1jW2g+PjJdfDA7ZG97aWYoKGFkJjR8MCk9PTAp
e2lmKChhYy0xfDApPj4+MD49MzEpe2JyZWFrfWNbYWE+PjJdPWFjO2JyZWFrIEwzMTkyfX13aGls
ZSgwKTtjW2g+PjJdPWFkfDQ7YnJlYWt9O2Nhc2UgMTEwOmNhc2UgMTE2OntjW0o+PjJdPWNbZj4+
Ml07Z1YoMCxlLEosaCxhYik7YnJlYWt9O2Nhc2UgODg6e2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+
PjJdfDApKzI0Pj4yXSYxMjddKGFjKXwwO2FjPWV8MDtjW1g+PjJdPWNbYWM+PjJdO2NbWT4+Ml09
Y1tmPj4yXTthZT1hW2FhXXwwO2lmKChhZSYxKT09MCl7YWY9YWErNHwwO2FnPWFhKzR8MH1lbHNl
e2FoPWNbYWErOD4+Ml18MDthZj1haDthZz1haH1haD1hZSYyNTU7aWYoKGFoJjF8MCk9PTApe2Fp
PWFoPj4+MX1lbHNle2FpPWNbYWErND4+Ml18MH1nUihXLGQsWCxZLGcsaCxqLGFnLGFmKyhhaTw8
Mil8MCk7Y1thYz4+Ml09Y1tXPj4yXTticmVha307Y2FzZSA5ODpjYXNlIDY2OmNhc2UgMTA0Onth
Yz1jW2Y+PjJdfDA7YWE9ZCs4fDA7YWg9YjBbY1soY1thYT4+Ml18MCkrND4+Ml0mMTI3XShhYSl8
MDtjW3c+PjJdPWFjO2FjPShmUyhlLHcsYWgsYWgrMjg4fDAsYWIsaCwwKXwwKS1haHwwO2lmKChh
Y3wwKT49Mjg4KXticmVhayBMMzE5Mn1jW2orMTY+PjJdPSgoYWN8MCkvMTJ8MHwwKSUxMnwwO2Jy
ZWFrfTtjYXNlIDExMjp7Y1tLPj4yXT1jW2Y+PjJdO2dYKGQsais4fDAsZSxLLGgsYWIpO2JyZWFr
fTtjYXNlIDExNDp7YWM9ZXwwO2NbTT4+Ml09Y1thYz4+Ml07Y1tOPj4yXT1jW2Y+PjJdO2dSKEws
ZCxNLE4sZyxoLGosMjIxNiwyMjYwKTtjW2FjPj4yXT1jW0w+PjJdO2JyZWFrfTtjYXNlIDM3Ontj
W1o+PjJdPWNbZj4+Ml07Z1koMCxlLFosaCxhYik7YnJlYWt9O2Nhc2UgNjg6e2FjPWV8MDtjW0U+
PjJdPWNbYWM+PjJdO2NbRj4+Ml09Y1tmPj4yXTtnUihELGQsRSxGLGcsaCxqLDIyNjQsMjI5Nik7
Y1thYz4+Ml09Y1tEPj4yXTticmVha307Y2FzZSA4OTp7Y1ttPj4yXT1jW2Y+PjJdO2FjPWhjKGUs
bSxoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7YnJlYWsgTDMxOTJ9Y1tqKzIwPj4yXT1h
Yy0xOTAwO2JyZWFrfTtjYXNlIDgyOnthYz1lfDA7Y1tQPj4yXT1jW2FjPj4yXTtjW1E+PjJdPWNb
Zj4+Ml07Z1IoTyxkLFAsUSxnLGgsaiwyMTkyLDIyMTIpO2NbYWM+PjJdPWNbTz4+Ml07YnJlYWt9
O2Nhc2UgODM6e2NbcD4+Ml09Y1tmPj4yXTthYz1oYyhlLHAsaCxhYiwyKXwwO2FoPWNbaD4+Ml18
MDtpZigoYWgmNHwwKT09MCYoYWN8MCk8NjEpe2Nbaj4+Ml09YWM7YnJlYWsgTDMxOTJ9ZWxzZXtj
W2g+PjJdPWFofDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgMTA2OntjW3M+PjJdPWNbZj4+Ml07
YWg9aGMoZSxzLGgsYWIsMyl8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAmKGFofDApPDM2
Nil7Y1tqKzI4Pj4yXT1haDticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMzE5
Mn1icmVha307Y2FzZSA5NzpjYXNlIDY1OnthYz1jW2Y+PjJdfDA7YWg9ZCs4fDA7YWE9YjBbY1tj
W2FoPj4yXT4+Ml0mMTI3XShhaCl8MDtjW3g+PjJdPWFjO2FjPShmUyhlLHgsYWEsYWErMTY4fDAs
YWIsaCwwKXwwKS1hYXwwO2lmKChhY3wwKT49MTY4KXticmVhayBMMzE5Mn1jW2orMjQ+PjJdPSgo
YWN8MCkvMTJ8MHwwKSU3fDA7YnJlYWt9O2Nhc2UgOTk6e2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+
PjJdfDApKzEyPj4yXSYxMjddKGFjKXwwO2FjPWV8MDtjW0I+PjJdPWNbYWM+PjJdO2NbQz4+Ml09
Y1tmPj4yXTthaD1hW2FhXXwwO2lmKChhaCYxKT09MCl7YWo9YWErNHwwO2FrPWFhKzR8MH1lbHNl
e2FlPWNbYWErOD4+Ml18MDthaj1hZTthaz1hZX1hZT1haCYyNTU7aWYoKGFlJjF8MCk9PTApe2Fs
PWFlPj4+MX1lbHNle2FsPWNbYWErND4+Ml18MH1nUihBLGQsQixDLGcsaCxqLGFrLGFqKyhhbDw8
Mil8MCk7Y1thYz4+Ml09Y1tBPj4yXTticmVha307Y2FzZSA4NDp7YWM9ZXwwO2NbUz4+Ml09Y1th
Yz4+Ml07Y1tUPj4yXT1jW2Y+PjJdO2dSKFIsZCxTLFQsZyxoLGosMjE2MCwyMTkyKTtjW2FjPj4y
XT1jW1I+PjJdO2JyZWFrfTtjYXNlIDcwOnthYz1lfDA7Y1tIPj4yXT1jW2FjPj4yXTtjW0k+PjJd
PWNbZj4+Ml07Z1IoRyxkLEgsSSxnLGgsaiwyMTI4LDIxNjApO2NbYWM+PjJdPWNbRz4+Ml07YnJl
YWt9O2Nhc2UgNzI6e2NbdT4+Ml09Y1tmPj4yXTthYz1oYyhlLHUsaCxhYiwyKXwwO2FhPWNbaD4+
Ml18MDtpZigoYWEmNHwwKT09MCYoYWN8MCk8MjQpe2Nbais4Pj4yXT1hYzticmVhayBMMzE5Mn1l
bHNle2NbaD4+Ml09YWF8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMjE6e2Nbbj4+Ml09Y1tm
Pj4yXTthYT1oYyhlLG4saCxhYiw0KXwwO2lmKChjW2g+PjJdJjR8MCkhPTApe2JyZWFrIEwzMTky
fWlmKChhYXwwKTw2OSl7YW09YWErMmUzfDB9ZWxzZXthbT0oYWEtNjl8MCk+Pj4wPDMxP2FhKzE5
MDB8MDphYX1jW2orMjA+PjJdPWFtLTE5MDA7YnJlYWt9O2Nhc2UgMTA5OntjW3I+PjJdPWNbZj4+
Ml07YWE9KGhjKGUscixoLGFiLDIpfDApLTF8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAm
KGFhfDApPDEyKXtjW2orMTY+PjJdPWFhO2JyZWFrIEwzMTkyfWVsc2V7Y1toPj4yXT1hY3w0O2Jy
ZWFrIEwzMTkyfWJyZWFrfTtjYXNlIDczOnthYz1qKzh8MDtjW3Q+PjJdPWNbZj4+Ml07YWE9aGMo
ZSx0LGgsYWIsMil8MDthZT1jW2g+PjJdfDA7ZG97aWYoKGFlJjR8MCk9PTApe2lmKChhYS0xfDAp
Pj4+MD49MTIpe2JyZWFrfWNbYWM+PjJdPWFhO2JyZWFrIEwzMTkyfX13aGlsZSgwKTtjW2g+PjJd
PWFlfDQ7YnJlYWt9O2Nhc2UgNzc6e2NbcT4+Ml09Y1tmPj4yXTthYT1oYyhlLHEsaCxhYiwyKXww
O2FjPWNbaD4+Ml18MDtpZigoYWMmNHwwKT09MCYoYWF8MCk8NjApe2Nbais0Pj4yXT1hYTticmVh
ayBMMzE5Mn1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMTk6e2Nb
bz4+Ml09Y1tmPj4yXTthYz1oYyhlLG8saCxhYiwxKXwwO2FhPWNbaD4+Ml18MDtpZigoYWEmNHww
KT09MCYoYWN8MCk8Nyl7Y1tqKzI0Pj4yXT1hYzticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWF8
NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMjA6e2FhPWNbKGNbZD4+Ml18MCkrMjA+PjJdfDA7
Y1tVPj4yXT1jW2U+PjJdO2NbVj4+Ml09Y1tmPj4yXTtiWFthYSYxMjddKGIsZCxVLFYsZyxoLGop
O2k9bDtyZXR1cm59O2RlZmF1bHQ6e2NbaD4+Ml09Y1toPj4yXXw0fX19d2hpbGUoMCk7Y1tiPj4y
XT1jW2U+PjJdO2k9bDtyZXR1cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAsODE3
NiwxMzQpfWZ1bmN0aW9uIGdYKGEsYixlLGYsZyxoKXthPWF8MDtiPWJ8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MDtqPWk7aT1pKzh8MDtrPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2s+PjJdO2s9anwwO2w9YSs4fDA7YT1iMFtjWyhj
W2w+PjJdfDApKzg+PjJdJjEyN10obCl8MDtsPWRbYV18MDtpZigobCYxfDApPT0wKXttPWw+Pj4x
fWVsc2V7bT1jW2ErND4+Ml18MH1sPWRbYSsxMnwwXXwwO2lmKChsJjF8MCk9PTApe249bD4+PjF9
ZWxzZXtuPWNbYSsxNj4+Ml18MH1pZigobXwwKT09KC1ufDApKXtjW2c+PjJdPWNbZz4+Ml18NDtp
PWo7cmV0dXJufWNbaz4+Ml09Y1tmPj4yXTtmPWZTKGUsayxhLGErMjR8MCxoLGcsMCl8MDtnPWYt
YXwwO2Rve2lmKChmfDApPT0oYXwwKSl7aWYoKGNbYj4+Ml18MCkhPTEyKXticmVha31jW2I+PjJd
PTA7aT1qO3JldHVybn19d2hpbGUoMCk7aWYoKGd8MCkhPTEyKXtpPWo7cmV0dXJufWc9Y1tiPj4y
XXwwO2lmKChnfDApPj0xMil7aT1qO3JldHVybn1jW2I+PjJdPWcrMTI7aT1qO3JldHVybn0KLWZ1
bmN0aW9uIGdZKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9
MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2E9aTtnPWQ7ZD1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2c+PjJdO2c9YnwwO2I9Y1tnPj4yXXwwO2Rv
e2lmKChifDApPT0wKXtoPTF9ZWxzZXtqPWNbYisxMj4+Ml18MDtpZigoanwwKT09KGNbYisxNj4+
Ml18MCkpe2s9YjBbY1soY1tiPj4yXXwwKSszNj4+Ml0mMTI3XShiKXwwfWVsc2V7az1jW2o+PjJd
fDB9aWYoKGt8MCk9PS0xKXtjW2c+PjJdPTA7aD0xO2JyZWFrfWVsc2V7aD0oY1tnPj4yXXwwKT09
MDticmVha319fXdoaWxlKDApO2s9ZHwwO2Q9Y1trPj4yXXwwO2Rve2lmKChkfDApPT0wKXtsPTI3
MTZ9ZWxzZXtiPWNbZCsxMj4+Ml18MDtpZigoYnwwKT09KGNbZCsxNj4+Ml18MCkpe209YjBbY1so
Y1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwfWVsc2V7bT1jW2I+PjJdfDB9aWYoKG18MCk9PS0x
KXtjW2s+PjJdPTA7bD0yNzE2O2JyZWFrfWVsc2V7Yj0oZHwwKT09MDtpZihoXmIpe249ZDtvPWI7
YnJlYWt9ZWxzZXtsPTI3MTg7YnJlYWt9fX19d2hpbGUoMCk7aWYoKGx8MCk9PTI3MTYpe2lmKGgp
e2w9MjcxOH1lbHNle249MDtvPTF9fWlmKChsfDApPT0yNzE4KXtjW2U+PjJdPWNbZT4+Ml18Njtp
PWE7cmV0dXJufWg9Y1tnPj4yXXwwO2Q9Y1toKzEyPj4yXXwwO2lmKChkfDApPT0oY1toKzE2Pj4y
XXwwKSl7cD1iMFtjWyhjW2g+PjJdfDApKzM2Pj4yXSYxMjddKGgpfDB9ZWxzZXtwPWNbZD4+Ml18
MH1pZigoYjFbY1soY1tmPj4yXXwwKSs1Mj4+Ml0mNjNdKGYscCwwKXwwKTw8MjQ+PjI0IT0zNyl7
Y1tlPj4yXT1jW2U+PjJdfDQ7aT1hO3JldHVybn1wPWNbZz4+Ml18MDtmPXArMTJ8MDtkPWNbZj4+
Ml18MDtpZigoZHwwKT09KGNbcCsxNj4+Ml18MCkpe2g9Y1soY1twPj4yXXwwKSs0MD4+Ml18MDti
MFtoJjEyN10ocCl8MH1lbHNle2NbZj4+Ml09ZCs0fWQ9Y1tnPj4yXXwwO2Rve2lmKChkfDApPT0w
KXtxPTF9ZWxzZXtmPWNbZCsxMj4+Ml18MDtpZigoZnwwKT09KGNbZCsxNj4+Ml18MCkpe3I9YjBb
Y1soY1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwfWVsc2V7cj1jW2Y+PjJdfDB9aWYoKHJ8MCk9
PS0xKXtjW2c+PjJdPTA7cT0xO2JyZWFrfWVsc2V7cT0oY1tnPj4yXXwwKT09MDticmVha319fXdo
aWxlKDApO2Rve2lmKG8pe2w9Mjc0MH1lbHNle2c9Y1tuKzEyPj4yXXwwO2lmKChnfDApPT0oY1tu
KzE2Pj4yXXwwKSl7cz1iMFtjWyhjW24+PjJdfDApKzM2Pj4yXSYxMjddKG4pfDB9ZWxzZXtzPWNb
Zz4+Ml18MH1pZigoc3wwKT09LTEpe2Nbaz4+Ml09MDtsPTI3NDA7YnJlYWt9aWYoIShxXihufDAp
PT0wKSl7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKGx8MCk9PTI3NDApe2lmKHEp
e2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2NbZT4+Ml09Y1tlPj4yXXwyO2k9YTtyZXR1cm59
ZnVuY3Rpb24gZ1ooYSl7YT1hfDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnXyhhKXthPWF8MDtyZXR1
cm4gMTI3fWZ1bmN0aW9uIGckKGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGcwKGEpe2E9YXww
O3JldHVybiAxMjd9ZnVuY3Rpb24gZzEoYSl7YT1hfDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnMihh
KXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBnMyhhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31m
dW5jdGlvbiBnNChhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBnNShhKXthPWF8
MDtyZXR1cm4gMH1mdW5jdGlvbiBnNihiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2Fb
Y109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+
Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGc3KGIsYyl7Yj1ifDA7Yz1jfDA7Yz1i
O0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysy
fDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gZzgoYixjKXti
PWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1
NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5j
dGlvbiBnOShiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44
O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYy
NTU7cmV0dXJufWZ1bmN0aW9uIGhhKGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtj
XT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+
ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gaGIoYixjKXtiPWJ8MDtjPWN8MDtjPWI7
Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8
MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoYyhhLGIsZCxl
LGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wO2c9aTtoPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tiPj4yXT1jW2g+PjJdO2g9YXwwO2E9Y1toPj4yXXwwO2Rve2lmKChhfDApPT0wKXtqPTF9
ZWxzZXtrPWNbYSsxMj4+Ml18MDtpZigoa3wwKT09KGNbYSsxNj4+Ml18MCkpe2w9YjBbY1soY1th
Pj4yXXwwKSszNj4+Ml0mMTI3XShhKXwwfWVsc2V7bD1jW2s+PjJdfDB9aWYoKGx8MCk9PS0xKXtj
W2g+PjJdPTA7aj0xO2JyZWFrfWVsc2V7aj0oY1toPj4yXXwwKT09MDticmVha319fXdoaWxlKDAp
O2w9YnwwO2I9Y1tsPj4yXXwwO2Rve2lmKChifDApPT0wKXttPTI5fWVsc2V7YT1jW2IrMTI+PjJd
fDA7aWYoKGF8MCk9PShjW2IrMTY+PjJdfDApKXtuPWIwW2NbKGNbYj4+Ml18MCkrMzY+PjJdJjEy
N10oYil8MH1lbHNle249Y1thPj4yXXwwfWlmKChufDApPT0tMSl7Y1tsPj4yXT0wO209Mjk7YnJl
YWt9ZWxzZXtpZihqXihifDApPT0wKXtvPWI7YnJlYWt9ZWxzZXttPTMxO2JyZWFrfX19fXdoaWxl
KDApO2lmKChtfDApPT0yOSl7aWYoail7bT0zMX1lbHNle289MH19aWYoKG18MCk9PTMxKXtjW2Q+
PjJdPWNbZD4+Ml18NjtwPTA7aT1nO3JldHVybiBwfDB9aj1jW2g+PjJdfDA7Yj1jW2orMTI+PjJd
fDA7aWYoKGJ8MCk9PShjW2orMTY+PjJdfDApKXtxPWIwW2NbKGNbaj4+Ml18MCkrMzY+PjJdJjEy
N10oail8MH1lbHNle3E9Y1tiPj4yXXwwfWI9ZTtpZighKGIxW2NbKGNbYj4+Ml18MCkrMTI+PjJd
JjYzXShlLDIwNDgscSl8MCkpe2NbZD4+Ml09Y1tkPj4yXXw0O3A9MDtpPWc7cmV0dXJuIHB8MH1q
PWU7bj0oYjFbY1soY1tqPj4yXXwwKSs1Mj4+Ml0mNjNdKGUscSwwKXwwKTw8MjQ+PjI0O3E9Y1to
Pj4yXXwwO2E9cSsxMnwwO2s9Y1thPj4yXXwwO2lmKChrfDApPT0oY1txKzE2Pj4yXXwwKSl7cj1j
WyhjW3E+PjJdfDApKzQwPj4yXXwwO2IwW3ImMTI3XShxKXwwO3M9bjt0PWY7dT1vfWVsc2V7Y1th
Pj4yXT1rKzQ7cz1uO3Q9Zjt1PW99d2hpbGUoMSl7dj1zLTQ4fDA7bz10LTF8MDtmPWNbaD4+Ml18
MDtkb3tpZigoZnwwKT09MCl7dz0wfWVsc2V7bj1jW2YrMTI+PjJdfDA7aWYoKG58MCk9PShjW2Yr
MTY+PjJdfDApKXt4PWIwW2NbKGNbZj4+Ml18MCkrMzY+PjJdJjEyN10oZil8MH1lbHNle3g9Y1tu
Pj4yXXwwfWlmKCh4fDApPT0tMSl7Y1toPj4yXT0wO3c9MDticmVha31lbHNle3c9Y1toPj4yXXww
O2JyZWFrfX19d2hpbGUoMCk7Zj0od3wwKT09MDtpZigodXwwKT09MCl7eT13O3o9MH1lbHNle249
Y1t1KzEyPj4yXXwwO2lmKChufDApPT0oY1t1KzE2Pj4yXXwwKSl7QT1iMFtjWyhjW3U+PjJdfDAp
KzM2Pj4yXSYxMjddKHUpfDB9ZWxzZXtBPWNbbj4+Ml18MH1pZigoQXwwKT09LTEpe2NbbD4+Ml09
MDtCPTB9ZWxzZXtCPXV9eT1jW2g+PjJdfDA7ej1CfUM9KHp8MCk9PTA7aWYoISgoZl5DKSYob3ww
KT4wKSl7YnJlYWt9Zj1jW3krMTI+PjJdfDA7aWYoKGZ8MCk9PShjW3krMTY+PjJdfDApKXtEPWIw
W2NbKGNbeT4+Ml18MCkrMzY+PjJdJjEyN10oeSl8MH1lbHNle0Q9Y1tmPj4yXXwwfWlmKCEoYjFb
Y1soY1tiPj4yXXwwKSsxMj4+Ml0mNjNdKGUsMjA0OCxEKXwwKSl7cD12O209ODE7YnJlYWt9Zj0o
KGIxW2NbKGNbaj4+Ml18MCkrNTI+PjJdJjYzXShlLEQsMCl8MCk8PDI0Pj4yNCkrKHYqMTB8MCl8
MDtuPWNbaD4+Ml18MDtrPW4rMTJ8MDthPWNbaz4+Ml18MDtpZigoYXwwKT09KGNbbisxNj4+Ml18
MCkpe3E9Y1soY1tuPj4yXXwwKSs0MD4+Ml18MDtiMFtxJjEyN10obil8MDtzPWY7dD1vO3U9ejtj
b250aW51ZX1lbHNle2Nbaz4+Ml09YSs0O3M9Zjt0PW87dT16O2NvbnRpbnVlfX1pZigobXwwKT09
ODEpe2k9ZztyZXR1cm4gcHwwfWRve2lmKCh5fDApPT0wKXtFPTF9ZWxzZXt1PWNbeSsxMj4+Ml18
MDtpZigodXwwKT09KGNbeSsxNj4+Ml18MCkpe0Y9YjBbY1soY1t5Pj4yXXwwKSszNj4+Ml0mMTI3
XSh5KXwwfWVsc2V7Rj1jW3U+PjJdfDB9aWYoKEZ8MCk9PS0xKXtjW2g+PjJdPTA7RT0xO2JyZWFr
fWVsc2V7RT0oY1toPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKEMpe209NzV9ZWxz
ZXtoPWNbeisxMj4+Ml18MDtpZigoaHwwKT09KGNbeisxNj4+Ml18MCkpe0c9YjBbY1soY1t6Pj4y
XXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Rz1jW2g+PjJdfDB9aWYoKEd8MCk9PS0xKXtjW2w+
PjJdPTA7bT03NTticmVha31pZihFXih6fDApPT0wKXtwPXZ9ZWxzZXticmVha31pPWc7cmV0dXJu
IHB8MH19d2hpbGUoMCk7ZG97aWYoKG18MCk9PTc1KXtpZihFKXticmVha31lbHNle3A9dn1pPWc7
cmV0dXJuIHB8MH19d2hpbGUoMCk7Y1tkPj4yXT1jW2Q+PjJdfDI7cD12O2k9ZztyZXR1cm4gcHww
fWZ1bmN0aW9uIGhkKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTA7Zz1pO2k9aSsxMTJ8MDtmPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tl
Pj4yXT1jW2Y+PjJdO2Y9Z3wwO2w9Zys4fDA7bT1sfDA7bj1mfDA7YVtuXT0zNztvPWYrMXwwO2Fb
b109ajtwPWYrMnwwO2FbcF09azthW2YrM3wwXT0wO2lmKGs8PDI0Pj4yNCE9MCl7YVtvXT1rO2Fb
cF09an1qPWJrKG18MCwxMDAsbnwwLGh8MCxjW2QrOD4+Ml18MCl8MDtkPWwranwwO2w9Y1tlPj4y
XXwwO2lmKChqfDApPT0wKXtxPWw7cj1ifDA7Y1tyPj4yXT1xO2k9ZztyZXR1cm59ZWxzZXtzPWw7
dD1tfXdoaWxlKDEpe209YVt0XXwwO2lmKChzfDApPT0wKXt1PTB9ZWxzZXtsPXMrMjR8MDtqPWNb
bD4+Ml18MDtpZigoanwwKT09KGNbcysyOD4+Ml18MCkpe3Y9Yl9bY1soY1tzPj4yXXwwKSs1Mj4+
Ml0mMzFdKHMsbSYyNTUpfDB9ZWxzZXtjW2w+PjJdPWorMTthW2pdPW07dj1tJjI1NX11PSh2fDAp
PT0tMT8wOnN9bT10KzF8MDtpZigobXwwKT09KGR8MCkpe3E9dTticmVha31lbHNle3M9dTt0PW19
fXI9YnwwO2Nbcj4+Ml09cTtpPWc7cmV0dXJufWZ1bmN0aW9uIGhlKGEsYixkLGUsZixnLGgsail7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zj1pO2k9aSs0MDh8MDtlPWQ7ZD1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2U+PjJdO2U9ZnwwO2s9Zis0MDB8MDtsPWV8MDtjW2s+PjJd
PWUrNDAwO2hDKGIrOHwwLGwsayxnLGgsaik7aj1jW2s+PjJdfDA7az1jW2Q+PjJdfDA7aWYoKGx8
MCk9PShqfDApKXttPWs7bj1hfDA7Y1tuPj4yXT1tO2k9ZjtyZXR1cm59ZWxzZXtvPWs7cD1sfXdo
aWxlKDEpe2w9Y1twPj4yXXwwO2lmKChvfDApPT0wKXtxPTB9ZWxzZXtrPW8rMjR8MDtkPWNbaz4+
Ml18MDtpZigoZHwwKT09KGNbbysyOD4+Ml18MCkpe3I9Yl9bY1soY1tvPj4yXXwwKSs1Mj4+Ml0m
MzFdKG8sbCl8MH1lbHNle2Nbaz4+Ml09ZCs0O2NbZD4+Ml09bDtyPWx9cT0ocnwwKT09LTE/MDpv
fWw9cCs0fDA7aWYoKGx8MCk9PShqfDApKXttPXE7YnJlYWt9ZWxzZXtvPXE7cD1sfX1uPWF8MDtj
W24+PjJdPW07aT1mO3JldHVybn1mdW5jdGlvbiBoZihhKXthPWF8MDtkZShhfDApO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBoZyhhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoaChhLGIp
e2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaGkoYSxiKXthPWF8MDti
PWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhqKGEsYil7YT1hfDA7Yj1ifDA7ayQo
YXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoayhhLGIpe2E9YXwwO2I9YnwwO2RfKGEsMSw0NSk7
cmV0dXJufWZ1bmN0aW9uIGhsKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGhtKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhuKGEsYil7YT1hfDA7Yj1ifDA7
ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBobyhhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCww
LDEyKTtyZXR1cm59ZnVuY3Rpb24gaHAoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0
dXJufWZ1bmN0aW9uIGhxKGEsYil7YT1hfDA7Yj1ifDA7ZF8oYSwxLDQ1KTtyZXR1cm59ZnVuY3Rp
b24gaHIoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaHMoYSl7YT1hfDA7
ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaHQoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7
cmV0dXJufWZ1bmN0aW9uIGh1KGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1m
dW5jdGlvbiBodihhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24g
aHcoYSxiKXthPWF8MDtiPWJ8MDtleShhLDEsNDUpO3JldHVybn1mdW5jdGlvbiBoeChhKXthPWF8
MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBoeShiKXtiPWJ8MDt2YXIgZD0wLGU9MCxm
PTAsZz0wO2Q9YjtlPWIrOHwwO2Y9Y1tlPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYo
KGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7
aWYoKGZ8MCk9PShjWzI5NThdfDApKXtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59YTcoY1tlPj4y
XXwwKTtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59ZnVuY3Rpb24gaHooYil7Yj1ifDA7dmFyIGQ9
MCxlPTAsZj0wO2Q9Yis4fDA7ZT1jW2Q+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigo
YmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtp
ZigoZXwwKT09KGNbMjk1OF18MCkpe2Y9YnwwO2RlKGYpO3JldHVybn1hNyhjW2Q+PjJdfDApO2Y9
YnwwO2RlKGYpO3JldHVybn1mdW5jdGlvbiBoQShiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0w
O2Q9YjtlPWIrOHwwO2Y9Y1tlPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGZ8
MCk9PShjWzI5NThdfDApKXtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59YTcoY1tlPj4yXXwwKTtn
PWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59ZnVuY3Rpb24gaEIoYil7Yj1ifDA7dmFyIGQ9MCxlPTAs
Zj0wO2Q9Yis4fDA7ZT1jW2Q+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYy
NjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoZXww
KT09KGNbMjk1OF18MCkpe2Y9YnwwO2RlKGYpO3JldHVybn1hNyhjW2Q+PjJdfDApO2Y9YnwwO2Rl
KGYpO3JldHVybn1mdW5jdGlvbiBoQyhiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aj1pO2k9
aSsxMjB8MDtrPWp8MDtsPWorMTEyfDA7bT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7bj1qKzh8MDtv
PWt8MDthW29dPTM3O3A9aysxfDA7YVtwXT1nO3E9aysyfDA7YVtxXT1oO2FbayszfDBdPTA7aWYo
aDw8MjQ+PjI0IT0wKXthW3BdPWg7YVtxXT1nfWc9YnwwO2JrKG58MCwxMDAsb3wwLGZ8MCxjW2c+
PjJdfDApfDA7Y1tsPj4yXT0wO2NbbCs0Pj4yXT0wO2NbbT4+Ml09bjtuPShjW2U+PjJdfDApLWQ+
PjI7Zj1iQihjW2c+PjJdfDApfDA7Zz1rZShkLG0sbixsKXwwO2lmKChmfDApIT0wKXtiQihmfDAp
fDB9aWYoKGd8MCk9PS0xKXtoVig5MDQpfWVsc2V7Y1tlPj4yXT1kKyhnPDwyKTtpPWo7cmV0dXJu
fX1mdW5jdGlvbiBoRChhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBoRShhKXth
PWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBoRihhKXthPWF8MDtyZXR1cm4gMH1mdW5j
dGlvbiBoRyhhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24gaEgoYixjKXtiPWJ8MDtjPWN8MDtjPWI7
Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8
MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoSShiLGMpe2I9
YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1
O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0
aW9uIGhKKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhLKGEsYil7YT1hfDA7Yj1i
fDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoTChhLGIpe2E9YXwwO2I9YnwwO2skKGF8
MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaE0oYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7
cmV0dXJufWZ1bmN0aW9uIGhOKGEsYil7YT1hfDA7Yj1ifDA7ZXkoYSwxLDQ1KTtyZXR1cm59ZnVu
Y3Rpb24gaE8oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaFAoYSl7YT1h
fDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaFEoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxS
PTAsUz0wO2Q9aTtpPWkrMjgwfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09
Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZHww
O209ZCsxNnwwO249ZCsxMjB8MDtvPWQrMTI4fDA7cD1kKzEzNnwwO3E9ZCsxNDR8MDtyPWQrMTUy
fDA7cz1kKzE2MHwwO3Q9ZCsxNzZ8MDt1PW58MDtjW3U+PjJdPW07dj1uKzR8MDtjW3Y+PjJdPTE2
Njt3PW0rMTAwfDA7ZWoocCxoKTttPXB8MDt4PWNbbT4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEp
e2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9
KGNbMzkyNV18MCktMXwwO3k9Y1t4Kzg+PjJdfDA7ZG97aWYoKGNbeCsxMj4+Ml18MCkteT4+Mj4+
PjA+bD4+PjApe3o9Y1t5KyhsPDwyKT4+Ml18MDtpZigoenwwKT09MCl7YnJlYWt9QT16O2FbcV09
MDtCPWZ8MDtjW3I+PjJdPWNbQj4+Ml07ZG97aWYoaFIoZSxyLGcscCxjW2grND4+Ml18MCxqLHEs
QSxuLG8sdyl8MCl7Qz1zfDA7RD1jWyhjW3o+PjJdfDApKzMyPj4yXXwwO2NhW0QmMTVdKEEsMjEx
MiwyMTIyLEMpfDA7RD10fDA7RT1jW28+PjJdfDA7Rj1jW3U+PjJdfDA7Rz1FLUZ8MDtkb3tpZigo
R3wwKT45OCl7SD1rSihHKzJ8MCl8MDtpZigoSHwwKSE9MCl7ST1IO0o9SDticmVha31rWCgpO0k9
MDtKPTB9ZWxzZXtJPUQ7Sj0wfX13aGlsZSgwKTtpZigoYVtxXSYxKT09MCl7Sz1JfWVsc2V7YVtJ
XT00NTtLPUkrMXwwfWlmKEY+Pj4wPEU+Pj4wKXtHPXMrMTB8MDtIPXM7TD1LO009Rjt3aGlsZSgx
KXtOPUM7d2hpbGUoMSl7aWYoKE58MCk9PShHfDApKXtPPUc7YnJlYWt9aWYoKGFbTl18MCk9PShh
W01dfDApKXtPPU47YnJlYWt9ZWxzZXtOPU4rMXwwfX1hW0xdPWFbMjExMisoTy1IKXwwXXwwO049
TSsxfDA7UD1MKzF8MDtpZihOPj4+MDwoY1tvPj4yXXwwKT4+PjApe0w9UDtNPU59ZWxzZXtRPVA7
YnJlYWt9fX1lbHNle1E9S31hW1FdPTA7TT1iRChEfDAsMTQwOCwoTD1pLGk9aSs4fDAsY1tMPj4y
XT1rLEwpfDApfDA7aT1MO2lmKChNfDApPT0xKXtpZigoSnwwKT09MCl7YnJlYWt9a0soSik7YnJl
YWt9TT1iTyg4KXwwO2RFKE0sMTM2OCk7YmwoTXwwLDgxOTIsMjIpfX13aGlsZSgwKTtBPWV8MDt6
PWNbQT4+Ml18MDtkb3tpZigoenwwKT09MCl7Uj0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShj
W3orMTY+PjJdfDApKXtSPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10o
eil8MCkhPS0xKXtSPXo7YnJlYWt9Y1tBPj4yXT0wO1I9MH19d2hpbGUoMCk7QT0oUnwwKT09MDt6
PWNbQj4+Ml18MDtkb3tpZigoenwwKT09MCl7Uz0yNDR9ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9
KGNbeisxNj4+Ml18MCkpe2lmKEEpe2JyZWFrfWVsc2V7Uz0yNDY7YnJlYWt9fWlmKChiMFtjWyhj
W3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDApPT0tMSl7Y1tCPj4yXT0wO1M9MjQ0O2JyZWFrfWVs
c2V7aWYoQV4oenwwKT09MCl7YnJlYWt9ZWxzZXtTPTI0NjticmVha319fX13aGlsZSgwKTtpZigo
U3wwKT09MjQ0KXtpZihBKXtTPTI0Nn19aWYoKFN8MCk9PTI0Nil7Y1tqPj4yXT1jW2o+PjJdfDJ9
Y1tiPj4yXT1SO3o9Y1ttPj4yXXwwO2R6KHopfDA7ej1jW3U+PjJdfDA7Y1t1Pj4yXT0wO2lmKCh6
fDApPT0wKXtpPWQ7cmV0dXJufWJZW2Nbdj4+Ml0mNTExXSh6KTtpPWQ7cmV0dXJufX13aGlsZSgw
KTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBoUihlLGYsZyxoLGos
ayxsLG0sbixvLHApe2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209
bXwwO249bnwwO289b3wwO3A9cHwwO3ZhciBxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxf
PTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAs
YWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2
PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0wLGFFPTAsYUY9MCxhRz0w
LGFIPTAsYUk9MCxhSj0wLGFLPTAsYUw9MCxhTT0wLGFOPTAsYU89MCxhUD0wLGFRPTAsYVI9MCxh
Uz0wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxhWT0wLGFaPTAsYV89MCxhJD0wLGEwPTAsYTE9
MCxhMj0wLGEzPTAsYTQ9MCxhNT0wLGE2PTAsYTc9MCxhOD0wLGE5PTAsYmE9MCxiYj0wLGJjPTAs
YmQ9MCxiZT0wLGJmPTAsYmc9MCxiaD0wLGJpPTAsYmo9MCxiaz0wLGJsPTAsYm09MCxibj0wLGJv
PTAsYnA9MCxicT0wLGJyPTAsYnM9MCxidD0wLGJ1PTAsYnY9MCxidz0wLGJ4PTAsYnk9MCxiej0w
LGJBPTAsYkI9MCxiQz0wLGJEPTAsYkU9MDtxPWk7aT1pKzQ0MHwwO3I9ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbcj4+Ml07cj1xfDA7cz1xKzQwMHwwO3Q9cSs0MDh8MDt1PXEr
NDE2fDA7dj1xKzQyNHwwO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eT1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RD1y
fDA7ayQod3wwLDAsMTIpO0U9eDtGPXk7Rz16O0g9QTtrJChFfDAsMCwxMik7ayQoRnwwLDAsMTIp
O2skKEd8MCwwLDEyKTtrJChIfDAsMCwxMik7aFgoZyxoLHMsdCx1LHYseCx5LHosQik7aD1ufDA7
Y1tvPj4yXT1jW2g+PjJdO2c9ZXwwO2U9ZnwwO2Y9bSs4fDA7bT16KzF8MDtJPXorNHwwO0o9eis4
fDA7Sz15KzF8MDtMPXkrNHwwO009eSs4fDA7Tj0oaiY1MTJ8MCkhPTA7aj14KzF8MDtPPXgrNHww
O1A9eCs4fDA7UT1BKzF8MDtSPUErNHwwO1M9QSs4fDA7VD1zKzN8MDtVPW4rNHwwO249dis0fDA7
Vj1wO3A9MTY2O1c9RDtYPUQ7RD1yKzQwMHwwO3I9MDtZPTA7TDI4Njp3aGlsZSgxKXtaPWNbZz4+
Ml18MDtkb3tpZigoWnwwKT09MCl7Xz0wfWVsc2V7aWYoKGNbWisxMj4+Ml18MCkhPShjW1orMTY+
PjJdfDApKXtfPVo7YnJlYWt9aWYoKGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCk9
PS0xKXtjW2c+PjJdPTA7Xz0wO2JyZWFrfWVsc2V7Xz1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgw
KTtaPShffDApPT0wOyQ9Y1tlPj4yXXwwO2Rve2lmKCgkfDApPT0wKXthYT0yNzF9ZWxzZXtpZigo
Y1skKzEyPj4yXXwwKSE9KGNbJCsxNj4+Ml18MCkpe2lmKFope2FiPSQ7YnJlYWt9ZWxzZXthYz1w
O2FkPVc7YWU9WDthZj1yO2FhPTUyMzticmVhayBMMjg2fX1pZigoYjBbY1soY1skPj4yXXwwKSsz
Nj4+Ml0mMTI3XSgkKXwwKT09LTEpe2NbZT4+Ml09MDthYT0yNzE7YnJlYWt9ZWxzZXtpZihaKXth
Yj0kO2JyZWFrfWVsc2V7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01MjM7YnJlYWsgTDI4Nn19fX13
aGlsZSgwKTtpZigoYWF8MCk9PTI3MSl7YWE9MDtpZihaKXthYz1wO2FkPVc7YWU9WDthZj1yO2Fh
PTUyMzticmVha31lbHNle2FiPTB9fUwzMDg6ZG97c3dpdGNoKGFbcytZfDBdfDApe2Nhc2UgMTp7
aWYoKFl8MCk9PTMpe2FjPXA7YWQ9VzthZT1YO2FmPXI7YWE9NTIzO2JyZWFrIEwyODZ9JD1jW2c+
PjJdfDA7YWc9Y1skKzEyPj4yXXwwO2lmKChhZ3wwKT09KGNbJCsxNj4+Ml18MCkpe2FoPShiMFtj
WyhjWyQ+PjJdfDApKzM2Pj4yXSYxMjddKCQpfDApJjI1NX1lbHNle2FoPWFbYWddfDB9aWYoYWg8
PDI0Pj4yNDw9LTEpe2FhPTI5NjticmVhayBMMjg2fWlmKChiWyhjW2Y+PjJdfDApKyhhaDw8MjQ+
PjI0PDwxKT4+MV0mODE5Mik9PTApe2FhPTI5NjticmVhayBMMjg2fWFnPWNbZz4+Ml18MDskPWFn
KzEyfDA7YWk9Y1skPj4yXXwwO2lmKChhaXwwKT09KGNbYWcrMTY+PjJdfDApKXthaj0oYjBbY1so
Y1thZz4+Ml18MCkrNDA+PjJdJjEyN10oYWcpfDApJjI1NX1lbHNle2NbJD4+Ml09YWkrMTthaj1h
W2FpXXwwfWRVKEEsYWopO2FhPTI5NzticmVha307Y2FzZSAzOnthaT1hW0ZdfDA7JD1haSYyNTU7
YWc9KCQmMXwwKT09MD8kPj4+MTpjW0w+PjJdfDA7JD1hW0ddfDA7YWs9JCYyNTU7YWw9KGFrJjF8
MCk9PTA/YWs+Pj4xOmNbST4+Ml18MDtpZigoYWd8MCk9PSgtYWx8MCkpe2FtPXI7YW49RDthbz1Y
O2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9YWs9KGFnfDApPT0wO2FnPWNbZz4+Ml18MDthcz1j
W2FnKzEyPj4yXXwwO2F0PWNbYWcrMTY+PjJdfDA7YXU9KGFzfDApPT0oYXR8MCk7aWYoIShha3wo
YWx8MCk9PTApKXtpZihhdSl7YWw9KGIwW2NbKGNbYWc+PjJdfDApKzM2Pj4yXSYxMjddKGFnKXww
KSYyNTU7YXY9Y1tnPj4yXXwwO2F3PWFsO2F4PWFbRl18MDtheT1hdjthej1jW2F2KzEyPj4yXXww
O2FBPWNbYXYrMTY+PjJdfDB9ZWxzZXthdz1hW2FzXXwwO2F4PWFpO2F5PWFnO2F6PWFzO2FBPWF0
fWF0PWF5KzEyfDA7YXY9KGF6fDApPT0oYUF8MCk7aWYoYXc8PDI0Pj4yND09KGFbKGF4JjEpPT0w
P0s6Y1tNPj4yXXwwXXwwKSl7aWYoYXYpe2FsPWNbKGNbYXk+PjJdfDApKzQwPj4yXXwwO2IwW2Fs
JjEyN10oYXkpfDB9ZWxzZXtjW2F0Pj4yXT1heisxfWF0PWRbRl18MDthbT0oKGF0JjF8MCk9PTA/
YXQ+Pj4xOmNbTD4+Ml18MCk+Pj4wPjE/eTpyO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVh
ayBMMzA4fWlmKGF2KXthQj0oYjBbY1soY1theT4+Ml18MCkrMzY+PjJdJjEyN10oYXkpfDApJjI1
NX1lbHNle2FCPWFbYXpdfDB9aWYoYUI8PDI0Pj4yNCE9KGFbKGFbR10mMSk9PTA/bTpjW0o+PjJd
fDBdfDApKXthYT0zNjM7YnJlYWsgTDI4Nn1hdj1jW2c+PjJdfDA7YXQ9YXYrMTJ8MDthbD1jW2F0
Pj4yXXwwO2lmKChhbHwwKT09KGNbYXYrMTY+PjJdfDApKXthQz1jWyhjW2F2Pj4yXXwwKSs0MD4+
Ml18MDtiMFthQyYxMjddKGF2KXwwfWVsc2V7Y1thdD4+Ml09YWwrMX1hW2xdPTE7YWw9ZFtHXXww
O2FtPSgoYWwmMXwwKT09MD9hbD4+PjE6Y1tJPj4yXXwwKT4+PjA+MT96OnI7YW49RDthbz1YO2Fw
PVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9aWYoYWspe2lmKGF1KXthaz0oYjBbY1soY1thZz4+Ml18
MCkrMzY+PjJdJjEyN10oYWcpfDApJjI1NTthRD1hazthRT1hW0ddfDB9ZWxzZXthRD1hW2FzXXww
O2FFPSR9aWYoYUQ8PDI0Pj4yNCE9KGFbKGFFJjEpPT0wP206Y1tKPj4yXXwwXXwwKSl7YW09cjth
bj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH0kPWNbZz4+Ml18MDthaz0kKzEyfDA7
YWw9Y1thaz4+Ml18MDtpZigoYWx8MCk9PShjWyQrMTY+PjJdfDApKXthdD1jWyhjWyQ+PjJdfDAp
KzQwPj4yXXwwO2IwW2F0JjEyN10oJCl8MH1lbHNle2NbYWs+PjJdPWFsKzF9YVtsXT0xO2FsPWRb
R118MDthbT0oKGFsJjF8MCk9PTA/YWw+Pj4xOmNbST4+Ml18MCk+Pj4wPjE/ejpyO2FuPUQ7YW89
WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWlmKGF1KXthdT0oYjBbY1soY1thZz4+Ml18MCkr
MzY+PjJdJjEyN10oYWcpfDApJjI1NTthRj1hdTthRz1hW0ZdfDB9ZWxzZXthRj1hW2FzXXwwO2FH
PWFpfWlmKGFGPDwyND4+MjQhPShhWyhhRyYxKT09MD9LOmNbTT4+Ml18MF18MCkpe2FbbF09MTth
bT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWFpPWNbZz4+Ml18MDthcz1h
aSsxMnwwO2F1PWNbYXM+PjJdfDA7aWYoKGF1fDApPT0oY1thaSsxNj4+Ml18MCkpe2FnPWNbKGNb
YWk+PjJdfDApKzQwPj4yXXwwO2IwW2FnJjEyN10oYWkpfDB9ZWxzZXtjW2FzPj4yXT1hdSsxfWF1
PWRbRl18MDthbT0oKGF1JjF8MCk9PTA/YXU+Pj4xOmNbTD4+Ml18MCk+Pj4wPjE/eTpyO2FuPUQ7
YW89WDthcD1XO2FxPXA7YXI9VjticmVha307Y2FzZSAwOnthYT0yOTc7YnJlYWt9O2Nhc2UgMjp7
aWYoISgocnwwKSE9MHxZPj4+MDwyKSl7aWYoKFl8MCk9PTIpe2FIPShhW1RdfDApIT0wfWVsc2V7
YUg9MH1pZighKE58YUgpKXthbT0wO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4
fX1hdT1hW0VdfDA7YXM9KGF1JjEpPT0wP2o6Y1tQPj4yXXwwO0wzODI6ZG97aWYoKFl8MCk9PTAp
e2FJPWFzfWVsc2V7aWYoKGRbcysoWS0xKXwwXXwwKT49Mil7YUk9YXM7YnJlYWt9YWk9YXUmMjU1
O2FnPWFzKygoYWkmMXwwKT09MD9haT4+PjE6Y1tPPj4yXXwwKXwwO2FpPWFzO3doaWxlKDEpe2lm
KChhaXwwKT09KGFnfDApKXthSj1hZzticmVha31hbD1hW2FpXXwwO2lmKGFsPDwyND4+MjQ8PS0x
KXthSj1haTticmVha31pZigoYlsoY1tmPj4yXXwwKSsoYWw8PDI0Pj4yNDw8MSk+PjFdJjgxOTIp
PT0wKXthSj1haTticmVha31lbHNle2FpPWFpKzF8MH19YWk9YUotYXN8MDthZz1hW0hdfDA7YWw9
YWcmMjU1O2FrPShhbCYxfDApPT0wP2FsPj4+MTpjW1I+PjJdfDA7aWYoYWk+Pj4wPmFrPj4+MCl7
YUk9YXM7YnJlYWt9YWw9KGFnJjEpPT0wP1E6Y1tTPj4yXXwwO2FnPWFsK2FrfDA7aWYoKGFKfDAp
PT0oYXN8MCkpe2FJPWFzO2JyZWFrfSQ9YXM7YXQ9YWwrKGFrLWFpKXwwO3doaWxlKDEpe2lmKChh
W2F0XXwwKSE9KGFbJF18MCkpe2FJPWFzO2JyZWFrIEwzODJ9YWk9YXQrMXwwO2lmKChhaXwwKT09
KGFnfDApKXthST1hSjticmVha31lbHNleyQ9JCsxfDA7YXQ9YWl9fX19d2hpbGUoMCk7YXQ9YXUm
MjU1O0wzOTY6ZG97aWYoKGFJfDApPT0oYXMrKChhdCYxfDApPT0wP2F0Pj4+MTpjW08+PjJdfDAp
fDApKXthSz1hSX1lbHNleyQ9YWI7YWc9YUk7d2hpbGUoMSl7YWk9Y1tnPj4yXXwwO2Rve2lmKChh
aXwwKT09MCl7YUw9MH1lbHNle2lmKChjW2FpKzEyPj4yXXwwKSE9KGNbYWkrMTY+PjJdfDApKXth
TD1haTticmVha31pZigoYjBbY1soY1thaT4+Ml18MCkrMzY+PjJdJjEyN10oYWkpfDApPT0tMSl7
Y1tnPj4yXT0wO2FMPTA7YnJlYWt9ZWxzZXthTD1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTth
aT0oYUx8MCk9PTA7ZG97aWYoKCR8MCk9PTApe2FhPTM5Mn1lbHNle2lmKChjWyQrMTI+PjJdfDAp
IT0oY1skKzE2Pj4yXXwwKSl7aWYoYWkpe2FNPSQ7YnJlYWt9ZWxzZXthSz1hZzticmVhayBMMzk2
fX1pZigoYjBbY1soY1skPj4yXXwwKSszNj4+Ml0mMTI3XSgkKXwwKT09LTEpe2NbZT4+Ml09MDth
YT0zOTI7YnJlYWt9ZWxzZXtpZihhaSl7YU09JDticmVha31lbHNle2FLPWFnO2JyZWFrIEwzOTZ9
fX19d2hpbGUoMCk7aWYoKGFhfDApPT0zOTIpe2FhPTA7aWYoYWkpe2FLPWFnO2JyZWFrIEwzOTZ9
ZWxzZXthTT0wfX1haz1jW2c+PjJdfDA7YWw9Y1thaysxMj4+Ml18MDtpZigoYWx8MCk9PShjW2Fr
KzE2Pj4yXXwwKSl7YU49KGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXwwKSYyNTV9
ZWxzZXthTj1hW2FsXXwwfWlmKGFOPDwyND4+MjQhPShhW2FnXXwwKSl7YUs9YWc7YnJlYWsgTDM5
Nn1hbD1jW2c+PjJdfDA7YWs9YWwrMTJ8MDthdj1jW2FrPj4yXXwwO2lmKChhdnwwKT09KGNbYWwr
MTY+PjJdfDApKXthQz1jWyhjW2FsPj4yXXwwKSs0MD4+Ml18MDtiMFthQyYxMjddKGFsKXwwfWVs
c2V7Y1thaz4+Ml09YXYrMX1hdj1hZysxfDA7YWs9YVtFXXwwO2FsPWFrJjI1NTtpZigoYXZ8MCk9
PSgoKGFrJjEpPT0wP2o6Y1tQPj4yXXwwKSsoKGFsJjF8MCk9PTA/YWw+Pj4xOmNbTz4+Ml18MCl8
MCkpe2FLPWF2O2JyZWFrfWVsc2V7JD1hTTthZz1hdn19fX13aGlsZSgwKTtpZighTil7YW09cjth
bj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1hdD1hW0VdfDA7YXM9YXQmMjU1O2lm
KChhS3wwKT09KCgoYXQmMSk9PTA/ajpjW1A+PjJdfDApKygoYXMmMXwwKT09MD9hcz4+PjE6Y1tP
Pj4yXXwwKXwwKSl7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVZ9ZWxzZXthYT00MDU7YnJl
YWsgTDI4Nn1icmVha307Y2FzZSA0Onthcz0wO2F0PUQ7YXU9WDthZz1XOyQ9cDthdj1WO0w0MzE6
d2hpbGUoMSl7YWw9Y1tnPj4yXXwwO2Rve2lmKChhbHwwKT09MCl7YU89MH1lbHNle2lmKChjW2Fs
KzEyPj4yXXwwKSE9KGNbYWwrMTY+PjJdfDApKXthTz1hbDticmVha31pZigoYjBbY1soY1thbD4+
Ml18MCkrMzY+PjJdJjEyN10oYWwpfDApPT0tMSl7Y1tnPj4yXT0wO2FPPTA7YnJlYWt9ZWxzZXth
Tz1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTthbD0oYU98MCk9PTA7YWs9Y1tlPj4yXXwwO2Rv
e2lmKChha3wwKT09MCl7YWE9NDE4fWVsc2V7aWYoKGNbYWsrMTI+PjJdfDApIT0oY1thaysxNj4+
Ml18MCkpe2lmKGFsKXticmVha31lbHNle2JyZWFrIEw0MzF9fWlmKChiMFtjWyhjW2FrPj4yXXww
KSszNj4+Ml0mMTI3XShhayl8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NDE4O2JyZWFrfWVsc2V7aWYo
YWwpe2JyZWFrfWVsc2V7YnJlYWsgTDQzMX19fX13aGlsZSgwKTtpZigoYWF8MCk9PTQxOCl7YWE9
MDtpZihhbCl7YnJlYWt9fWFrPWNbZz4+Ml18MDthQz1jW2FrKzEyPj4yXXwwO2lmKChhQ3wwKT09
KGNbYWsrMTY+PjJdfDApKXthUD0oYjBbY1soY1thaz4+Ml18MCkrMzY+PjJdJjEyN10oYWspfDAp
JjI1NX1lbHNle2FQPWFbYUNdfDB9ZG97aWYoYVA8PDI0Pj4yND4tMSl7aWYoKGJbKGNbZj4+Ml18
MCkrKGFQPDwyND4+MjQ8PDEpPj4xXSYyMDQ4KT09MCl7YWE9NDM3O2JyZWFrfWFDPWNbbz4+Ml18
MDtpZigoYUN8MCk9PShhdnwwKSl7YWs9KGNbVT4+Ml18MCkhPTE2NjthUT1jW2g+PjJdfDA7YVI9
YXYtYVF8MDthUz1hUj4+PjA8MjE0NzQ4MzY0Nz9hUjw8MTotMTthVD1rTChhaz9hUTowLGFTKXww
O2lmKChhVHwwKT09MCl7a1goKX1kb3tpZihhayl7Y1toPj4yXT1hVDthVT1hVH1lbHNle2FRPWNb
aD4+Ml18MDtjW2g+PjJdPWFUO2lmKChhUXwwKT09MCl7YVU9YVQ7YnJlYWt9YllbY1tVPj4yXSY1
MTFdKGFRKTthVT1jW2g+PjJdfDB9fXdoaWxlKDApO2NbVT4+Ml09ODI7YVQ9YVUrYVJ8MDtjW28+
PjJdPWFUO2FWPShjW2g+PjJdfDApK2FTfDA7YVc9YVR9ZWxzZXthVj1hdjthVz1hQ31jW28+PjJd
PWFXKzE7YVthV109YVA7YVg9YXMrMXwwO2FZPWF0O2FaPWF1O2FfPWFnO2EkPSQ7YTA9YVZ9ZWxz
ZXthYT00Mzd9fXdoaWxlKDApO2lmKChhYXwwKT09NDM3KXthYT0wO2FsPWRbd118MDtpZigoKChh
bCYxfDApPT0wP2FsPj4+MTpjW24+PjJdfDApfDApPT0wfChhc3wwKT09MCl7YnJlYWt9aWYoYVA8
PDI0Pj4yNCE9KGFbdV18MCkpe2JyZWFrfWlmKChhdXwwKT09KGF0fDApKXthbD1hdS1hZ3wwO2FU
PWFsPj4+MDwyMTQ3NDgzNjQ3P2FsPDwxOi0xO2lmKCgkfDApPT0xNjYpe2ExPTB9ZWxzZXthMT1h
Z31haz1rTChhMSxhVCl8MDthaT1haztpZigoYWt8MCk9PTApe2tYKCl9YTI9YWkrKGFUPj4+Mjw8
Mil8MDthMz1haSsoYWw+PjI8PDIpfDA7YTQ9YWk7YTU9ODJ9ZWxzZXthMj1hdDthMz1hdTthND1h
ZzthNT0kfWNbYTM+PjJdPWFzO2FYPTA7YVk9YTI7YVo9YTMrNHwwO2FfPWE0O2EkPWE1O2EwPWF2
fWFpPWNbZz4+Ml18MDthbD1haSsxMnwwO2FUPWNbYWw+PjJdfDA7aWYoKGFUfDApPT0oY1thaSsx
Nj4+Ml18MCkpe2FrPWNbKGNbYWk+PjJdfDApKzQwPj4yXXwwO2IwW2FrJjEyN10oYWkpfDA7YXM9
YVg7YXQ9YVk7YXU9YVo7YWc9YV87JD1hJDthdj1hMDtjb250aW51ZX1lbHNle2NbYWw+PjJdPWFU
KzE7YXM9YVg7YXQ9YVk7YXU9YVo7YWc9YV87JD1hJDthdj1hMDtjb250aW51ZX19aWYoKGFnfDAp
PT0oYXV8MCl8KGFzfDApPT0wKXthNj1hdDthNz1hdTthOD1hZzthOT0kfWVsc2V7aWYoKGF1fDAp
PT0oYXR8MCkpe2FUPWF1LWFnfDA7YWw9YVQ+Pj4wPDIxNDc0ODM2NDc/YVQ8PDE6LTE7aWYoKCR8
MCk9PTE2Nil7YmE9MH1lbHNle2JhPWFnfWFpPWtMKGJhLGFsKXwwO2FrPWFpO2lmKChhaXwwKT09
MCl7a1goKX1iYj1haysoYWw+Pj4yPDwyKXwwO2JjPWFrKyhhVD4+Mjw8Mil8MDtiZD1haztiZT04
Mn1lbHNle2JiPWF0O2JjPWF1O2JkPWFnO2JlPSR9Y1tiYz4+Ml09YXM7YTY9YmI7YTc9YmMrNHww
O2E4PWJkO2E5PWJlfWlmKChjW0I+PjJdfDApPjApe2FrPWNbZz4+Ml18MDtkb3tpZigoYWt8MCk9
PTApe2JmPTB9ZWxzZXtpZigoY1thaysxMj4+Ml18MCkhPShjW2FrKzE2Pj4yXXwwKSl7YmY9YWs7
YnJlYWt9aWYoKGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXwwKT09LTEpe2NbZz4+
Ml09MDtiZj0wO2JyZWFrfWVsc2V7YmY9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7YWs9KGJm
fDApPT0wO2FzPWNbZT4+Ml18MDtkb3tpZigoYXN8MCk9PTApe2FhPTQ3MH1lbHNle2lmKChjW2Fz
KzEyPj4yXXwwKSE9KGNbYXMrMTY+PjJdfDApKXtpZihhayl7Ymc9YXM7YnJlYWt9ZWxzZXthYT00
Nzc7YnJlYWsgTDI4Nn19aWYoKGIwW2NbKGNbYXM+PjJdfDApKzM2Pj4yXSYxMjddKGFzKXwwKT09
LTEpe2NbZT4+Ml09MDthYT00NzA7YnJlYWt9ZWxzZXtpZihhayl7Ymc9YXM7YnJlYWt9ZWxzZXth
YT00Nzc7YnJlYWsgTDI4Nn19fX13aGlsZSgwKTtpZigoYWF8MCk9PTQ3MCl7YWE9MDtpZihhayl7
YWE9NDc3O2JyZWFrIEwyODZ9ZWxzZXtiZz0wfX1hcz1jW2c+PjJdfDA7JD1jW2FzKzEyPj4yXXww
O2lmKCgkfDApPT0oY1thcysxNj4+Ml18MCkpe2JoPShiMFtjWyhjW2FzPj4yXXwwKSszNj4+Ml0m
MTI3XShhcyl8MCkmMjU1fWVsc2V7Ymg9YVskXXwwfWlmKGJoPDwyND4+MjQhPShhW3RdfDApKXth
YT00Nzc7YnJlYWsgTDI4Nn0kPWNbZz4+Ml18MDthcz0kKzEyfDA7YWc9Y1thcz4+Ml18MDtpZigo
YWd8MCk9PShjWyQrMTY+PjJdfDApKXthdT1jWyhjWyQ+PjJdfDApKzQwPj4yXXwwO2IwW2F1JjEy
N10oJCl8MDtiaT1hdjtiaj1iZ31lbHNle2NbYXM+PjJdPWFnKzE7Ymk9YXY7Ymo9Ymd9d2hpbGUo
MSl7YWc9Y1tnPj4yXXwwO2Rve2lmKChhZ3wwKT09MCl7Yms9MH1lbHNle2lmKChjW2FnKzEyPj4y
XXwwKSE9KGNbYWcrMTY+PjJdfDApKXtiaz1hZzticmVha31pZigoYjBbY1soY1thZz4+Ml18MCkr
MzY+PjJdJjEyN10oYWcpfDApPT0tMSl7Y1tnPj4yXT0wO2JrPTA7YnJlYWt9ZWxzZXtiaz1jW2c+
PjJdfDA7YnJlYWt9fX13aGlsZSgwKTthZz0oYmt8MCk9PTA7ZG97aWYoKGJqfDApPT0wKXthYT00
OTN9ZWxzZXtpZigoY1tiaisxMj4+Ml18MCkhPShjW2JqKzE2Pj4yXXwwKSl7aWYoYWcpe2JsPWJq
O2JyZWFrfWVsc2V7YWE9NTAxO2JyZWFrIEwyODZ9fWlmKChiMFtjWyhjW2JqPj4yXXwwKSszNj4+
Ml0mMTI3XShiail8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NDkzO2JyZWFrfWVsc2V7aWYoYWcpe2Js
PWJqO2JyZWFrfWVsc2V7YWE9NTAxO2JyZWFrIEwyODZ9fX19d2hpbGUoMCk7aWYoKGFhfDApPT00
OTMpe2FhPTA7aWYoYWcpe2FhPTUwMTticmVhayBMMjg2fWVsc2V7Ymw9MH19YXM9Y1tnPj4yXXww
OyQ9Y1thcysxMj4+Ml18MDtpZigoJHwwKT09KGNbYXMrMTY+PjJdfDApKXtibT0oYjBbY1soY1th
cz4+Ml18MCkrMzY+PjJdJjEyN10oYXMpfDApJjI1NX1lbHNle2JtPWFbJF18MH1pZihibTw8MjQ+
PjI0PD0tMSl7YWE9NTAxO2JyZWFrIEwyODZ9aWYoKGJbKGNbZj4+Ml18MCkrKGJtPDwyND4+MjQ8
PDEpPj4xXSYyMDQ4KT09MCl7YWE9NTAxO2JyZWFrIEwyODZ9JD1jW28+PjJdfDA7aWYoKCR8MCk9
PShiaXwwKSl7YXM9KGNbVT4+Ml18MCkhPTE2NjthdT1jW2g+PjJdfDA7YXQ9YmktYXV8MDthVD1h
dD4+PjA8MjE0NzQ4MzY0Nz9hdDw8MTotMTthbD1rTChhcz9hdTowLGFUKXwwO2lmKChhbHwwKT09
MCl7a1goKX1kb3tpZihhcyl7Y1toPj4yXT1hbDtibj1hbH1lbHNle2F1PWNbaD4+Ml18MDtjW2g+
PjJdPWFsO2lmKChhdXwwKT09MCl7Ym49YWw7YnJlYWt9YllbY1tVPj4yXSY1MTFdKGF1KTtibj1j
W2g+PjJdfDB9fXdoaWxlKDApO2NbVT4+Ml09ODI7YWw9Ym4rYXR8MDtjW28+PjJdPWFsO2JvPShj
W2g+PjJdfDApK2FUfDA7YnA9YWx9ZWxzZXtibz1iaTticD0kfWFsPWNbZz4+Ml18MDthcz1jW2Fs
KzEyPj4yXXwwO2lmKChhc3wwKT09KGNbYWwrMTY+PjJdfDApKXthZz0oYjBbY1soY1thbD4+Ml18
MCkrMzY+PjJdJjEyN10oYWwpfDApJjI1NTticT1hZzticj1jW28+PjJdfDB9ZWxzZXticT1hW2Fz
XXwwO2JyPWJwfWNbbz4+Ml09YnIrMTthW2JyXT1icTthcz0oY1tCPj4yXXwwKS0xfDA7Y1tCPj4y
XT1hczthZz1jW2c+PjJdfDA7YWw9YWcrMTJ8MDthdT1jW2FsPj4yXXwwO2lmKChhdXwwKT09KGNb
YWcrMTY+PjJdfDApKXthaT1jWyhjW2FnPj4yXXwwKSs0MD4+Ml18MDtiMFthaSYxMjddKGFnKXww
fWVsc2V7Y1thbD4+Ml09YXUrMX1pZigoYXN8MCk+MCl7Ymk9Ym87Ymo9Ymx9ZWxzZXticz1ibzti
cmVha319fWVsc2V7YnM9YXZ9aWYoKGNbbz4+Ml18MCk9PShjW2g+PjJdfDApKXthYT01MjE7YnJl
YWsgTDI4Nn1lbHNle2FtPXI7YW49YTY7YW89YTc7YXA9YTg7YXE9YTk7YXI9YnN9YnJlYWt9O2Rl
ZmF1bHQ6e2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WfX19d2hpbGUoMCk7TDU4NTpkb3tp
ZigoYWF8MCk9PTI5Nyl7YWE9MDtpZigoWXwwKT09Myl7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01
MjM7YnJlYWsgTDI4Nn1lbHNle2J0PWFifXdoaWxlKDEpe1o9Y1tnPj4yXXwwO2Rve2lmKChafDAp
PT0wKXtidT0wfWVsc2V7aWYoKGNbWisxMj4+Ml18MCkhPShjW1orMTY+PjJdfDApKXtidT1aO2Jy
ZWFrfWlmKChiMFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFopfDApPT0tMSl7Y1tnPj4yXT0w
O2J1PTA7YnJlYWt9ZWxzZXtidT1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtaPShidXwwKT09
MDtkb3tpZigoYnR8MCk9PTApe2FhPTMxMH1lbHNle2lmKChjW2J0KzEyPj4yXXwwKSE9KGNbYnQr
MTY+PjJdfDApKXtpZihaKXtidj1idDticmVha31lbHNle2FtPXI7YW49RDthbz1YO2FwPVc7YXE9
cDthcj1WO2JyZWFrIEw1ODV9fWlmKChiMFtjWyhjW2J0Pj4yXXwwKSszNj4+Ml0mMTI3XShidCl8
MCk9PS0xKXtjW2U+PjJdPTA7YWE9MzEwO2JyZWFrfWVsc2V7aWYoWil7YnY9YnQ7YnJlYWt9ZWxz
ZXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1fX19fXdoaWxlKDApO2lm
KChhYXwwKT09MzEwKXthYT0wO2lmKFope2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2Jy
ZWFrIEw1ODV9ZWxzZXtidj0wfX0kPWNbZz4+Ml18MDthVD1jWyQrMTI+PjJdfDA7aWYoKGFUfDAp
PT0oY1skKzE2Pj4yXXwwKSl7Ync9KGIwW2NbKGNbJD4+Ml18MCkrMzY+PjJdJjEyN10oJCl8MCkm
MjU1fWVsc2V7Ync9YVthVF18MH1pZihidzw8MjQ+PjI0PD0tMSl7YW09cjthbj1EO2FvPVg7YXA9
VzthcT1wO2FyPVY7YnJlYWsgTDU4NX1pZigoYlsoY1tmPj4yXXwwKSsoYnc8PDI0Pj4yNDw8MSk+
PjFdJjgxOTIpPT0wKXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1fWFU
PWNbZz4+Ml18MDskPWFUKzEyfDA7YXQ9Y1skPj4yXXwwO2lmKChhdHwwKT09KGNbYVQrMTY+PjJd
fDApKXtieD0oYjBbY1soY1thVD4+Ml18MCkrNDA+PjJdJjEyN10oYVQpfDApJjI1NX1lbHNle2Nb
JD4+Ml09YXQrMTtieD1hW2F0XXwwfWRVKEEsYngpO2J0PWJ2fX19d2hpbGUoMCk7YXY9WSsxfDA7
aWYoYXY+Pj4wPDQpe1Y9YXI7cD1hcTtXPWFwO1g9YW87RD1hbjtyPWFtO1k9YXZ9ZWxzZXthYz1h
cTthZD1hcDthZT1hbzthZj1hbTthYT01MjM7YnJlYWt9fUw2MjI6ZG97aWYoKGFhfDApPT0yOTYp
e2Nbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT0zNjMpe2Nb
az4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT00MDUpe2Nbaz4+
Ml09Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT00Nzcpe2Nbaz4+Ml09
Y1trPj4yXXw0O2J5PTA7Yno9YTg7YkE9YTl9ZWxzZSBpZigoYWF8MCk9PTUwMSl7Y1trPj4yXT1j
W2s+PjJdfDQ7Ynk9MDtiej1hODtiQT1hOX1lbHNlIGlmKChhYXwwKT09NTIxKXtjW2s+PjJdPWNb
az4+Ml18NDtieT0wO2J6PWE4O2JBPWE5fWVsc2UgaWYoKGFhfDApPT01MjMpe0w2MzA6ZG97aWYo
KGFmfDApIT0wKXthbT1hZjthbz1hZisxfDA7YXA9YWYrOHwwO2FxPWFmKzR8MDtZPTE7TDYzMjp3
aGlsZSgxKXtyPWRbYW1dfDA7aWYoKHImMXwwKT09MCl7YkI9cj4+PjF9ZWxzZXtiQj1jW2FxPj4y
XXwwfWlmKFk+Pj4wPj1iQj4+PjApe2JyZWFrIEw2MzB9cj1jW2c+PjJdfDA7ZG97aWYoKHJ8MCk9
PTApe2JDPTB9ZWxzZXtpZigoY1tyKzEyPj4yXXwwKSE9KGNbcisxNj4+Ml18MCkpe2JDPXI7YnJl
YWt9aWYoKGIwW2NbKGNbcj4+Ml18MCkrMzY+PjJdJjEyN10ocil8MCk9PS0xKXtjW2c+PjJdPTA7
YkM9MDticmVha31lbHNle2JDPWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO3I9KGJDfDApPT0w
O1o9Y1tlPj4yXXwwO2Rve2lmKChafDApPT0wKXthYT01NDF9ZWxzZXtpZigoY1taKzEyPj4yXXww
KSE9KGNbWisxNj4+Ml18MCkpe2lmKHIpe2JyZWFrfWVsc2V7YnJlYWsgTDYzMn19aWYoKGIwW2Nb
KGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NTQxO2JyZWFr
fWVsc2V7aWYocil7YnJlYWt9ZWxzZXticmVhayBMNjMyfX19fXdoaWxlKDApO2lmKChhYXwwKT09
NTQxKXthYT0wO2lmKHIpe2JyZWFrfX1aPWNbZz4+Ml18MDthbj1jW1orMTI+PjJdfDA7aWYoKGFu
fDApPT0oY1taKzE2Pj4yXXwwKSl7YkQ9KGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8
MCkmMjU1fWVsc2V7YkQ9YVthbl18MH1pZigoYVthbV0mMSk9PTApe2JFPWFvfWVsc2V7YkU9Y1th
cD4+Ml18MH1pZihiRDw8MjQ+PjI0IT0oYVtiRStZfDBdfDApKXticmVha31hbj1ZKzF8MDtaPWNb
Zz4+Ml18MDtEPVorMTJ8MDtYPWNbRD4+Ml18MDtpZigoWHwwKT09KGNbWisxNj4+Ml18MCkpe2Fy
PWNbKGNbWj4+Ml18MCkrNDA+PjJdfDA7YjBbYXImMTI3XShaKXwwO1k9YW47Y29udGludWV9ZWxz
ZXtjW0Q+PjJdPVgrMTtZPWFuO2NvbnRpbnVlfX1jW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PWFk
O2JBPWFjO2JyZWFrIEw2MjJ9fXdoaWxlKDApO2lmKChhZHwwKT09KGFlfDApKXtieT0xO2J6PWFl
O2JBPWFjO2JyZWFrfWNbQz4+Ml09MDtmdCh2LGFkLGFlLEMpO2lmKChjW0M+PjJdfDApPT0wKXti
eT0xO2J6PWFkO2JBPWFjO2JyZWFrfWNbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9YWQ7YkE9YWN9
fXdoaWxlKDApO2RQKEEpO2RQKHopO2RQKHkpO2RQKHgpO2RQKHYpO2lmKChienwwKT09MCl7aT1x
O3JldHVybiBieXwwfWJZW2JBJjUxMV0oYnopO2k9cTtyZXR1cm4gYnl8MH1mdW5jdGlvbiBoUyhi
LGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxt
PTAsbj0wO2Y9YjtnPWQ7aD1hW2ZdfDA7aT1oJjI1NTtpZigoaSYxfDApPT0wKXtqPWk+Pj4xfWVs
c2V7aj1jW2IrND4+Ml18MH1pZigoaCYxKT09MCl7az0xMDtsPWh9ZWxzZXtoPWNbYj4+Ml18MDtr
PShoJi0yKS0xfDA7bD1oJjI1NX1oPWUtZ3wwO2lmKChlfDApPT0oZHwwKSl7cmV0dXJuIGJ8MH1p
Zigoay1qfDApPj4+MDxoPj4+MCl7ZDEoYixrLGoraC1rfDAsaixqLDAsMCk7bT1hW2ZdfDB9ZWxz
ZXttPWx9aWYoKG0mMSk9PTApe249YisxfDB9ZWxzZXtuPWNbYis4Pj4yXXwwfW09ZSsoai1nKXww
O2c9ZDtkPW4ranwwO3doaWxlKDEpe2FbZF09YVtnXXwwO2w9ZysxfDA7aWYoKGx8MCk9PShlfDAp
KXticmVha31lbHNle2c9bDtkPWQrMXwwfX1hW24rbXwwXT0wO209aitofDA7aWYoKGFbZl0mMSk9
PTApe2FbZl09bTw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1tO3JldHVybiBifDB9
cmV0dXJuIDB9ZnVuY3Rpb24gaFQoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24gaFUoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaFYoYSl7YT1hfDA7dmFyIGI9
MDtiPWJPKDgpfDA7ZEUoYixhKTtibChifDAsODE5MiwyMil9ZnVuY3Rpb24gaFcoYixkLGUsZixn
LGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2
YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MDtkPWk7aT1pKzE2MHwwO2w9ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zj4+Ml09Y1tsPj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrMTIwfDA7bz1kKzEyOHwwO3A9ZCsxMzZ8
MDtxPWQrMTQ0fDA7cj1kKzE1MnwwO3M9bnwwO2Nbcz4+Ml09bTt0PW4rNHwwO2NbdD4+Ml09MTY2
O3U9bSsxMDB8MDtlaihwLGgpO209cHwwO3Y9Y1ttPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7
Y1tsPj4yXT0xNTY5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0o
Y1szOTI1XXwwKS0xfDA7dz1jW3YrOD4+Ml18MDtkb3tpZigoY1t2KzEyPj4yXXwwKS13Pj4yPj4+
MD5sPj4+MCl7eD1jW3crKGw8PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7YVtxXT0w
O3o9ZnwwO0E9Y1t6Pj4yXXwwO2Nbcj4+Ml09QTtpZihoUihlLHIsZyxwLGNbaCs0Pj4yXXwwLGos
cSx5LG4sbyx1KXwwKXtCPWs7aWYoKGFbQl0mMSk9PTApe2FbaysxfDBdPTA7YVtCXT0wfWVsc2V7
YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1CPXg7aWYoKGFbcV0mMSkhPTApe2RVKGssYl9b
Y1soY1tCPj4yXXwwKSsyOD4+Ml0mMzFdKHksNDUpfDApfXg9Yl9bY1soY1tCPj4yXXwwKSsyOD4+
Ml0mMzFdKHksNDgpfDA7eT1jW28+PjJdfDA7Qj15LTF8MDtDPWNbcz4+Ml18MDt3aGlsZSgxKXtp
ZihDPj4+MD49Qj4+PjApe2JyZWFrfWlmKChhW0NdfDApPT14PDwyND4+MjQpe0M9QysxfDB9ZWxz
ZXticmVha319aFMoayxDLHkpfDB9eD1lfDA7Qj1jW3g+PjJdfDA7ZG97aWYoKEJ8MCk9PTApe0Q9
MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7RD1CO2JyZWFrfWlmKChi
MFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7RD1CO2JyZWFrfWNbeD4+Ml09
MDtEPTB9fXdoaWxlKDApO3g9KER8MCk9PTA7ZG97aWYoKEF8MCk9PTApe0U9NjIxfWVsc2V7aWYo
KGNbQSsxMj4+Ml18MCkhPShjW0ErMTY+PjJdfDApKXtpZih4KXticmVha31lbHNle0U9NjIzO2Jy
ZWFrfX1pZigoYjBbY1soY1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKT09LTEpe2Nbej4+Ml09
MDtFPTYyMTticmVha31lbHNle2lmKHheKEF8MCk9PTApe2JyZWFrfWVsc2V7RT02MjM7YnJlYWt9
fX19d2hpbGUoMCk7aWYoKEV8MCk9PTYyMSl7aWYoeCl7RT02MjN9fWlmKChFfDApPT02MjMpe2Nb
aj4+Ml09Y1tqPj4yXXwyfWNbYj4+Ml09RDtBPWNbbT4+Ml18MDtkeihBKXwwO0E9Y1tzPj4yXXww
O2Nbcz4+Ml09MDtpZigoQXwwKT09MCl7aT1kO3JldHVybn1iWVtjW3Q+PjJdJjUxMV0oQSk7aT1k
O3JldHVybn19d2hpbGUoMCk7ZD1iTyg0KXwwO2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rp
b24gaFgoYixkLGUsZixnLGgsaixrLGwsbSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wO249aTtpPWkrNTZ8MDtvPW58MDtwPW4rMTZ8MDtx
PW4rMzJ8MDtyPW4rNDB8MDtzPXI7dD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3U9dDt2PWk7aT1p
KzEyfDA7aT1pKzc+PjM8PDM7dz12O3g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt5PXg7ej1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7QT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7RT1EO0Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztHPUY7SD1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0k9SDtpZihiKXtiPWNbZD4+Ml18MDtpZigoY1s0MDQ0XXwwKSE9LTEp
e2NbcD4+Ml09MTYxNzY7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTc2LHAsOTYpfXA9
KGNbNDA0NV18MCktMXwwO0o9Y1tiKzg+PjJdfDA7aWYoKGNbYisxMj4+Ml18MCktSj4+Mj4+PjA8
PXA+Pj4wKXtLPWJPKDQpfDA7TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEzNCl9Yj1jW0orKHA8PDIp
Pj4yXXwwO2lmKChifDApPT0wKXtLPWJPKDQpfDA7TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEzNCl9
Sz1iO2JaW2NbKGNbYj4+Ml18MCkrNDQ+PjJdJjEyN10ocSxLKTtMPWU7Qz1jW3E+PjJdfDA7YVtM
XT1DJjI1NTtDPUM+Pjg7YVtMKzF8MF09QyYyNTU7Qz1DPj44O2FbTCsyfDBdPUMmMjU1O0M9Qz4+
ODthW0wrM3wwXT1DJjI1NTtMPWI7YlpbY1soY1tMPj4yXXwwKSszMj4+Ml0mMTI3XShyLEspO3E9
bDtpZigoYVtxXSYxKT09MCl7YVtsKzF8MF09MDthW3FdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0w
O2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1txPj4yXT1jW3M+PjJdO2NbcSs0Pj4yXT1jW3MrND4+Ml07
Y1txKzg+PjJdPWNbcys4Pj4yXTtrJChzfDAsMCwxMik7ZFAocik7YlpbY1soY1tMPj4yXXwwKSsy
OD4+Ml0mMTI3XSh0LEspO3I9aztpZigoYVtyXSYxKT09MCl7YVtrKzF8MF09MDthW3JdPTB9ZWxz
ZXthW2Nbays4Pj4yXXwwXT0wO2Nbays0Pj4yXT0wfWQkKGssMCk7Y1tyPj4yXT1jW3U+PjJdO2Nb
cis0Pj4yXT1jW3UrND4+Ml07Y1tyKzg+PjJdPWNbdSs4Pj4yXTtrJCh1fDAsMCwxMik7ZFAodCk7
dD1iO2FbZl09YjBbY1soY1t0Pj4yXXwwKSsxMj4+Ml0mMTI3XShLKXwwO2FbZ109YjBbY1soY1t0
Pj4yXXwwKSsxNj4+Ml0mMTI3XShLKXwwO2JaW2NbKGNbTD4+Ml18MCkrMjA+PjJdJjEyN10odixL
KTt0PWg7aWYoKGFbdF0mMSk9PTApe2FbaCsxfDBdPTA7YVt0XT0wfWVsc2V7YVtjW2grOD4+Ml18
MF09MDtjW2grND4+Ml09MH1kJChoLDApO2NbdD4+Ml09Y1t3Pj4yXTtjW3QrND4+Ml09Y1t3KzQ+
PjJdO2NbdCs4Pj4yXT1jW3crOD4+Ml07ayQod3wwLDAsMTIpO2RQKHYpO2JaW2NbKGNbTD4+Ml18
MCkrMjQ+PjJdJjEyN10oeCxLKTtMPWo7aWYoKGFbTF0mMSk9PTApe2FbaisxfDBdPTA7YVtMXT0w
fWVsc2V7YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbTD4+Ml09Y1t5Pj4y
XTtjW0wrND4+Ml09Y1t5KzQ+PjJdO2NbTCs4Pj4yXT1jW3krOD4+Ml07ayQoeXwwLDAsMTIpO2RQ
KHgpO009YjBbY1soY1tiPj4yXXwwKSszNj4+Ml0mMTI3XShLKXwwO2NbbT4+Ml09TTtpPW47cmV0
dXJufWVsc2V7Sz1jW2Q+PjJdfDA7aWYoKGNbNDA0Nl18MCkhPS0xKXtjW28+PjJdPTE2MTg0O2Nb
bys0Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNjE4NCxvLDk2KX1vPShjWzQwNDddfDApLTF8MDtk
PWNbSys4Pj4yXXwwO2lmKChjW0srMTI+PjJdfDApLWQ+PjI+Pj4wPD1vPj4+MCl7Tj1iTyg0KXww
O089TjtrcShPKTtibChOfDAsODE3NiwxMzQpfUs9Y1tkKyhvPDwyKT4+Ml18MDtpZigoS3wwKT09
MCl7Tj1iTyg0KXwwO089TjtrcShPKTtibChOfDAsODE3NiwxMzQpfU49SztiWltjWyhjW0s+PjJd
fDApKzQ0Pj4yXSYxMjddKHosTik7Tz1lO0M9Y1t6Pj4yXXwwO2FbT109QyYyNTU7Qz1DPj44O2Fb
TysxfDBdPUMmMjU1O0M9Qz4+ODthW08rMnwwXT1DJjI1NTtDPUM+Pjg7YVtPKzN8MF09QyYyNTU7
Tz1LO2JaW2NbKGNbTz4+Ml18MCkrMzI+PjJdJjEyN10oQSxOKTt6PWw7aWYoKGFbel0mMSk9PTAp
e2FbbCsxfDBdPTA7YVt6XT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChs
LDApO2Nbej4+Ml09Y1tCPj4yXTtjW3orND4+Ml09Y1tCKzQ+PjJdO2Nbeis4Pj4yXT1jW0IrOD4+
Ml07ayQoQnwwLDAsMTIpO2RQKEEpO2JaW2NbKGNbTz4+Ml18MCkrMjg+PjJdJjEyN10oRCxOKTtB
PWs7aWYoKGFbQV0mMSk9PTApe2FbaysxfDBdPTA7YVtBXT0wfWVsc2V7YVtjW2srOD4+Ml18MF09
MDtjW2srND4+Ml09MH1kJChrLDApO2NbQT4+Ml09Y1tFPj4yXTtjW0ErND4+Ml09Y1tFKzQ+PjJd
O2NbQSs4Pj4yXT1jW0UrOD4+Ml07ayQoRXwwLDAsMTIpO2RQKEQpO0Q9SzthW2ZdPWIwW2NbKGNb
RD4+Ml18MCkrMTI+PjJdJjEyN10oTil8MDthW2ddPWIwW2NbKGNbRD4+Ml18MCkrMTY+PjJdJjEy
N10oTil8MDtiWltjWyhjW08+PjJdfDApKzIwPj4yXSYxMjddKEYsTik7RD1oO2lmKChhW0RdJjEp
PT0wKXthW2grMXwwXT0wO2FbRF09MH1lbHNle2FbY1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9
ZCQoaCwwKTtjW0Q+PjJdPWNbRz4+Ml07Y1tEKzQ+PjJdPWNbRys0Pj4yXTtjW0QrOD4+Ml09Y1tH
Kzg+PjJdO2skKEd8MCwwLDEyKTtkUChGKTtiWltjWyhjW08+PjJdfDApKzI0Pj4yXSYxMjddKEgs
Tik7Tz1qO2lmKChhW09dJjEpPT0wKXthW2orMXwwXT0wO2FbT109MH1lbHNle2FbY1tqKzg+PjJd
fDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW08+PjJdPWNbST4+Ml07Y1tPKzQ+PjJdPWNbSSs0
Pj4yXTtjW08rOD4+Ml09Y1tJKzg+PjJdO2skKEl8MCwwLDEyKTtkUChIKTtNPWIwW2NbKGNbSz4+
Ml18MCkrMzY+PjJdJjEyN10oTil8MDtjW20+PjJdPU07aT1uO3JldHVybn19ZnVuY3Rpb24gaFko
YixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8
MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9
MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7ZD1pO2k9aSs2MDB8MDts
PWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1kfDA7bT1kKzE2fDA7bj1kKzQxNnwwO289
ZCs0MjR8MDtwPWQrNDMyfDA7cT1kKzQ0MHwwO3I9ZCs0NDh8MDtzPWQrNDU2fDA7dD1kKzQ5Nnww
O3U9bnwwO2NbdT4+Ml09bTt2PW4rNHwwO2Nbdj4+Ml09MTY2O3c9bSs0MDB8MDtlaihwLGgpO209
cHwwO3g9Y1ttPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+
Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7eT1jW3gr
OD4+Ml18MDtkb3tpZigoY1t4KzEyPj4yXXwwKS15Pj4yPj4+MD5sPj4+MCl7ej1jW3krKGw8PDIp
Pj4yXXwwO2lmKCh6fDApPT0wKXticmVha31BPXo7YVtxXT0wO0I9ZnwwO2Nbcj4+Ml09Y1tCPj4y
XTtkb3tpZihoWihlLHIsZyxwLGNbaCs0Pj4yXXwwLGoscSxBLG4sbyx3KXwwKXtDPXN8MDtEPWNb
KGNbej4+Ml18MCkrNDg+PjJdfDA7Y2FbRCYxNV0oQSwyMDk2LDIxMDYsQyl8MDtEPXR8MDtFPWNb
bz4+Ml18MDtGPWNbdT4+Ml18MDtHPUUtRnwwO2Rve2lmKChHfDApPjM5Mil7SD1rSigoRz4+Mikr
MnwwKXwwO2lmKChIfDApIT0wKXtJPUg7Sj1IO2JyZWFrfWtYKCk7ST0wO0o9MH1lbHNle0k9RDtK
PTB9fXdoaWxlKDApO2lmKChhW3FdJjEpPT0wKXtLPUl9ZWxzZXthW0ldPTQ1O0s9SSsxfDB9aWYo
Rj4+PjA8RT4+PjApe0c9cys0MHwwO0g9cztMPUs7TT1GO3doaWxlKDEpe049Qzt3aGlsZSgxKXtp
ZigoTnwwKT09KEd8MCkpe089RzticmVha31pZigoY1tOPj4yXXwwKT09KGNbTT4+Ml18MCkpe089
TjticmVha31lbHNle049Tis0fDB9fWFbTF09YVsyMDk2KyhPLUg+PjIpfDBdfDA7Tj1NKzR8MDtQ
PUwrMXwwO2lmKE4+Pj4wPChjW28+PjJdfDApPj4+MCl7TD1QO009Tn1lbHNle1E9UDticmVha319
fWVsc2V7UT1LfWFbUV09MDtNPWJEKER8MCwxNDA4LChMPWksaT1pKzh8MCxjW0w+PjJdPWssTCl8
MCl8MDtpPUw7aWYoKE18MCk9PTEpe2lmKChKfDApPT0wKXticmVha31rSyhKKTticmVha31NPWJP
KDgpfDA7ZEUoTSwxMzY4KTtibChNfDAsODE5MiwyMil9fXdoaWxlKDApO0E9ZXwwO3o9Y1tBPj4y
XXwwO2Rve2lmKCh6fDApPT0wKXtSPTB9ZWxzZXtNPWNbeisxMj4+Ml18MDtpZigoTXwwKT09KGNb
eisxNj4+Ml18MCkpe1M9YjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Uz1j
W00+PjJdfDB9aWYoKFN8MCkhPS0xKXtSPXo7YnJlYWt9Y1tBPj4yXT0wO1I9MH19d2hpbGUoMCk7
QT0oUnwwKT09MDt6PWNbQj4+Ml18MDtkb3tpZigoenwwKT09MCl7VD03Mzl9ZWxzZXtNPWNbeisx
Mj4+Ml18MDtpZigoTXwwKT09KGNbeisxNj4+Ml18MCkpe1U9YjBbY1soY1t6Pj4yXXwwKSszNj4+
Ml0mMTI3XSh6KXwwfWVsc2V7VT1jW00+PjJdfDB9aWYoKFV8MCk9PS0xKXtjW0I+PjJdPTA7VD03
Mzk7YnJlYWt9ZWxzZXtpZihBXih6fDApPT0wKXticmVha31lbHNle1Q9NzQxO2JyZWFrfX19fXdo
aWxlKDApO2lmKChUfDApPT03Mzkpe2lmKEEpe1Q9NzQxfX1pZigoVHwwKT09NzQxKXtjW2o+PjJd
PWNbaj4+Ml18Mn1jW2I+PjJdPVI7ej1jW20+PjJdfDA7ZHooeil8MDt6PWNbdT4+Ml18MDtjW3U+
PjJdPTA7aWYoKHp8MCk9PTApe2k9ZDtyZXR1cm59YllbY1t2Pj4yXSY1MTFdKHopO2k9ZDtyZXR1
cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGha
KGIsZSxmLGcsaCxqLGssbCxtLG4sbyl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1q
fDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1vfDA7dmFyIHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9
MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAs
YWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFz
PTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0w
LGFFPTAsYUY9MCxhRz0wLGFIPTAsYUk9MCxhSj0wLGFLPTAsYUw9MCxhTT0wLGFOPTAsYU89MCxh
UD0wLGFRPTAsYVI9MCxhUz0wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxhWT0wLGFaPTAsYV89
MCxhJD0wLGEwPTAsYTE9MCxhMj0wLGEzPTAsYTQ9MCxhNT0wLGE2PTAsYTc9MCxhOD0wLGE5PTAs
YmE9MCxiYj0wLGJjPTAsYmQ9MCxiZT0wLGJmPTAsYmc9MCxiaD0wLGJpPTAsYmo9MCxiaz0wLGJs
PTAsYm09MCxibj0wLGJvPTAsYnA9MCxicT0wLGJyPTAsYnM9MCxidD0wLGJ1PTAsYnY9MCxidz0w
LGJ4PTAsYnk9MCxiej0wLGJBPTAsYkI9MCxiQz0wLGJEPTA7cD1pO2k9aSs0NDh8MDtxPWU7ZT1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW3E+PjJdO3E9cHwwO3I9cCs4fDA7cz1wKzQw
OHwwO3Q9cCs0MTZ8MDt1PXArNDI0fDA7dj1wKzQzMnwwO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7eT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztB
PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1txPj4yXT1vO289cnwwO2skKHd8MCwwLDEyKTtEPXg7RT15O0Y9ejtH
PUE7ayQoRHwwLDAsMTIpO2skKEV8MCwwLDEyKTtrJChGfDAsMCwxMik7ayQoR3wwLDAsMTIpO2gy
KGYsZyxzLHQsdSx2LHgseSx6LEIpO2c9bXwwO2Nbbj4+Ml09Y1tnPj4yXTtmPWJ8MDtiPWV8MDtl
PWw7SD16KzR8MDtJPXorOHwwO0o9eSs0fDA7Sz15Kzh8MDtMPShoJjUxMnwwKSE9MDtoPXgrNHww
O009eCs4fDA7Tj1BKzR8MDtPPUErOHwwO1A9cyszfDA7UT12KzR8MDtSPTE2NjtTPW87VD1vO289
cis0MDB8MDtyPTA7VT0wO0w4OTA6d2hpbGUoMSl7Vj1jW2Y+PjJdfDA7ZG97aWYoKFZ8MCk9PTAp
e1c9MX1lbHNle1g9Y1tWKzEyPj4yXXwwO2lmKChYfDApPT0oY1tWKzE2Pj4yXXwwKSl7WT1iMFtj
WyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXtZPWNbWD4+Ml18MH1pZigoWXwwKT09
LTEpe2NbZj4+Ml09MDtXPTE7YnJlYWt9ZWxzZXtXPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hp
bGUoMCk7Vj1jW2I+PjJdfDA7ZG97aWYoKFZ8MCk9PTApe1o9NzY3fWVsc2V7WD1jW1YrMTI+PjJd
fDA7aWYoKFh8MCk9PShjW1YrMTY+PjJdfDApKXtfPWIwW2NbKGNbVj4+Ml18MCkrMzY+PjJdJjEy
N10oVil8MH1lbHNle189Y1tYPj4yXXwwfWlmKChffDApPT0tMSl7Y1tiPj4yXT0wO1o9NzY3O2Jy
ZWFrfWVsc2V7aWYoV14oVnwwKT09MCl7JD1WO2JyZWFrfWVsc2V7YWE9UjthYj1TO2FjPVQ7YWQ9
cjtaPTEwMDc7YnJlYWsgTDg5MH19fX13aGlsZSgwKTtpZigoWnwwKT09NzY3KXtaPTA7aWYoVyl7
YWE9UjthYj1TO2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWt9ZWxzZXskPTB9fUw5MTQ6ZG97c3dpdGNo
KGFbcytVfDBdfDApe2Nhc2UgMjp7aWYoISgocnwwKSE9MHxVPj4+MDwyKSl7aWYoKFV8MCk9PTIp
e2FlPShhW1BdfDApIT0wfWVsc2V7YWU9MH1pZighKEx8YWUpKXthZj0wO2FnPW87YWg9VDthaT1T
O2FqPVI7YnJlYWsgTDkxNH19Vj1hW0RdfDA7WD0oViYxKT09MD9oOmNbTT4+Ml18MDtMOTIyOmRv
e2lmKChVfDApPT0wKXthaz1YO2FsPVY7YW09JH1lbHNle2lmKChkW3MrKFUtMSl8MF18MCk8Mil7
YW49WDthbz1WfWVsc2V7YWs9WDthbD1WO2FtPSQ7YnJlYWt9d2hpbGUoMSl7YXA9YW8mMjU1O2lm
KChhbnwwKT09KCgoYW8mMSk9PTA/aDpjW00+PjJdfDApKygoKGFwJjF8MCk9PTA/YXA+Pj4xOmNb
aD4+Ml18MCk8PDIpfDApKXthcT1hbzticmVha31pZighKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJd
JjYzXShsLDgxOTIsY1thbj4+Ml18MCl8MCkpe1o9ODY4O2JyZWFrfWFuPWFuKzR8MDthbz1hW0Rd
fDB9aWYoKFp8MCk9PTg2OCl7Wj0wO2FxPWFbRF18MH1hcD0oYXEmMSk9PTA7YXI9YW4tKGFwP2g6
Y1tNPj4yXXwwKT4+Mjthcz1hW0ddfDA7YXQ9YXMmMjU1O2F1PShhdCYxfDApPT0wO0w5MzI6ZG97
aWYoYXI+Pj4wPD0oYXU/YXQ+Pj4xOmNbTj4+Ml18MCk+Pj4wKXthdj0oYXMmMSk9PTA7YXc9KGF2
P046Y1tPPj4yXXwwKSsoKGF1P2F0Pj4+MTpjW04+PjJdfDApLWFyPDwyKXwwO2F4PShhdj9OOmNb
Tz4+Ml18MCkrKChhdT9hdD4+PjE6Y1tOPj4yXXwwKTw8Mil8MDtpZigoYXd8MCk9PShheHwwKSl7
YWs9YW47YWw9YXE7YW09JDticmVhayBMOTIyfWVsc2V7YXk9YXc7YXo9YXA/aDpjW00+PjJdfDB9
d2hpbGUoMSl7aWYoKGNbYXk+PjJdfDApIT0oY1thej4+Ml18MCkpe2JyZWFrIEw5MzJ9YXc9YXkr
NHwwO2lmKChhd3wwKT09KGF4fDApKXthaz1hbjthbD1hcTthbT0kO2JyZWFrIEw5MjJ9YXk9YXc7
YXo9YXorNHwwfX19d2hpbGUoMCk7YWs9YXA/aDpjW00+PjJdfDA7YWw9YXE7YW09JH19d2hpbGUo
MCk7TDkzOTp3aGlsZSgxKXtWPWFsJjI1NTtpZigoYWt8MCk9PSgoKGFsJjEpPT0wP2g6Y1tNPj4y
XXwwKSsoKChWJjF8MCk9PTA/Vj4+PjE6Y1toPj4yXXwwKTw8Mil8MCkpe2JyZWFrfVY9Y1tmPj4y
XXwwO2Rve2lmKChWfDApPT0wKXthQT0xfWVsc2V7WD1jW1YrMTI+PjJdfDA7aWYoKFh8MCk9PShj
W1YrMTY+PjJdfDApKXthQj1iMFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXth
Qj1jW1g+PjJdfDB9aWYoKGFCfDApPT0tMSl7Y1tmPj4yXT0wO2FBPTE7YnJlYWt9ZWxzZXthQT0o
Y1tmPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKChhbXwwKT09MCl7Wj04ODl9ZWxz
ZXtWPWNbYW0rMTI+PjJdfDA7aWYoKFZ8MCk9PShjW2FtKzE2Pj4yXXwwKSl7YUM9YjBbY1soY1th
bT4+Ml18MCkrMzY+PjJdJjEyN10oYW0pfDB9ZWxzZXthQz1jW1Y+PjJdfDB9aWYoKGFDfDApPT0t
MSl7Y1tiPj4yXT0wO1o9ODg5O2JyZWFrfWVsc2V7aWYoYUFeKGFtfDApPT0wKXthRD1hbTticmVh
a31lbHNle2JyZWFrIEw5Mzl9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTg4OSl7Wj0wO2lmKGFBKXti
cmVha31lbHNle2FEPTB9fVY9Y1tmPj4yXXwwO2FwPWNbVisxMj4+Ml18MDtpZigoYXB8MCk9PShj
W1YrMTY+PjJdfDApKXthRT1iMFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXth
RT1jW2FwPj4yXXwwfWlmKChhRXwwKSE9KGNbYWs+PjJdfDApKXticmVha31hcD1jW2Y+PjJdfDA7
Vj1hcCsxMnwwO1g9Y1tWPj4yXXwwO2lmKChYfDApPT0oY1thcCsxNj4+Ml18MCkpe2F0PWNbKGNb
YXA+PjJdfDApKzQwPj4yXXwwO2IwW2F0JjEyN10oYXApfDB9ZWxzZXtjW1Y+PjJdPVgrNH1haz1h
ays0fDA7YWw9YVtEXXwwO2FtPWFEfWlmKCFMKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJl
YWsgTDkxNH1YPWFbRF18MDtWPVgmMjU1O2lmKChha3wwKT09KCgoWCYxKT09MD9oOmNbTT4+Ml18
MCkrKCgoViYxfDApPT0wP1Y+Pj4xOmNbaD4+Ml18MCk8PDIpfDApKXthZj1yO2FnPW87YWg9VDth
aT1TO2FqPVJ9ZWxzZXtaPTkwMTticmVhayBMODkwfWJyZWFrfTtjYXNlIDQ6e1Y9MDtYPW87YXA9
VDthdD1TO2F1PVI7TDk3NTp3aGlsZSgxKXthcj1jW2Y+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXth
Rj0xfWVsc2V7YXM9Y1thcisxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YUc9
YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthRz1jW2FzPj4yXXwwfWlm
KChhR3wwKT09LTEpe2NbZj4+Ml09MDthRj0xO2JyZWFrfWVsc2V7YUY9KGNbZj4+Ml18MCk9PTA7
YnJlYWt9fX13aGlsZSgwKTthcj1jW2I+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXtaPTkxNX1lbHNl
e2FzPWNbYXIrMTI+PjJdfDA7aWYoKGFzfDApPT0oY1thcisxNj4+Ml18MCkpe2FIPWIwW2NbKGNb
YXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YUg9Y1thcz4+Ml18MH1pZigoYUh8MCk9
PS0xKXtjW2I+PjJdPTA7Wj05MTU7YnJlYWt9ZWxzZXtpZihhRl4oYXJ8MCk9PTApe2JyZWFrfWVs
c2V7YnJlYWsgTDk3NX19fX13aGlsZSgwKTtpZigoWnwwKT09OTE1KXtaPTA7aWYoYUYpe2JyZWFr
fX1hcj1jW2Y+PjJdfDA7YXM9Y1thcisxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXww
KSl7YUk9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthST1jW2FzPj4y
XXwwfWlmKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJdJjYzXShsLDIwNDgsYUkpfDApe2FzPWNbbj4+
Ml18MDtpZigoYXN8MCk9PShjW3E+PjJdfDApKXtoMyhtLG4scSk7YUo9Y1tuPj4yXXwwfWVsc2V7
YUo9YXN9Y1tuPj4yXT1hSis0O2NbYUo+PjJdPWFJO2FLPVYrMXwwO2FMPVg7YU09YXA7YU49YXQ7
YU89YXV9ZWxzZXthcz1kW3ddfDA7aWYoKCgoYXMmMXwwKT09MD9hcz4+PjE6Y1tRPj4yXXwwKXww
KT09MHwoVnwwKT09MCl7YnJlYWt9aWYoKGFJfDApIT0oY1t1Pj4yXXwwKSl7YnJlYWt9aWYoKGFw
fDApPT0oWHwwKSl7YXM9KGF1fDApIT0xNjY7YXI9YXAtYXR8MDtheD1hcj4+PjA8MjE0NzQ4MzY0
Nz9hcjw8MTotMTtpZihhcyl7YVA9YXR9ZWxzZXthUD0wfWFzPWtMKGFQLGF4KXwwO2F3PWFzO2lm
KChhc3wwKT09MCl7a1goKX1hUT1hdysoYXg+Pj4yPDwyKXwwO2FSPWF3Kyhhcj4+Mjw8Mil8MDth
Uz1hdzthVD04Mn1lbHNle2FRPVg7YVI9YXA7YVM9YXQ7YVQ9YXV9Y1thUj4+Ml09VjthSz0wO2FM
PWFRO2FNPWFSKzR8MDthTj1hUzthTz1hVH1hdz1jW2Y+PjJdfDA7YXI9YXcrMTJ8MDtheD1jW2Fy
Pj4yXXwwO2lmKChheHwwKT09KGNbYXcrMTY+PjJdfDApKXthcz1jWyhjW2F3Pj4yXXwwKSs0MD4+
Ml18MDtiMFthcyYxMjddKGF3KXwwO1Y9YUs7WD1hTDthcD1hTTthdD1hTjthdT1hTztjb250aW51
ZX1lbHNle2NbYXI+PjJdPWF4KzQ7Vj1hSztYPWFMO2FwPWFNO2F0PWFOO2F1PWFPO2NvbnRpbnVl
fX1pZigoYXR8MCk9PShhcHwwKXwoVnwwKT09MCl7YVU9WDthVj1hcDthVz1hdDthWD1hdX1lbHNl
e2lmKChhcHwwKT09KFh8MCkpe2F4PShhdXwwKSE9MTY2O2FyPWFwLWF0fDA7YXc9YXI+Pj4wPDIx
NDc0ODM2NDc/YXI8PDE6LTE7aWYoYXgpe2FZPWF0fWVsc2V7YVk9MH1heD1rTChhWSxhdyl8MDth
cz1heDtpZigoYXh8MCk9PTApe2tYKCl9YVo9YXMrKGF3Pj4+Mjw8Mil8MDthXz1hcysoYXI+PjI8
PDIpfDA7YSQ9YXM7YTA9ODJ9ZWxzZXthWj1YO2FfPWFwO2EkPWF0O2EwPWF1fWNbYV8+PjJdPVY7
YVU9YVo7YVY9YV8rNHwwO2FXPWEkO2FYPWEwfWFzPWNbQj4+Ml18MDtpZigoYXN8MCk+MCl7YXI9
Y1tmPj4yXXwwO2Rve2lmKChhcnwwKT09MCl7YTE9MX1lbHNle2F3PWNbYXIrMTI+PjJdfDA7aWYo
KGF3fDApPT0oY1thcisxNj4+Ml18MCkpe2EyPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjdd
KGFyKXwwfWVsc2V7YTI9Y1thdz4+Ml18MH1pZigoYTJ8MCk9PS0xKXtjW2Y+PjJdPTA7YTE9MTti
cmVha31lbHNle2ExPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7YXI9Y1tiPj4yXXww
O2Rve2lmKChhcnwwKT09MCl7Wj05NjR9ZWxzZXtWPWNbYXIrMTI+PjJdfDA7aWYoKFZ8MCk9PShj
W2FyKzE2Pj4yXXwwKSl7YTM9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxz
ZXthMz1jW1Y+PjJdfDB9aWYoKGEzfDApPT0tMSl7Y1tiPj4yXT0wO1o9OTY0O2JyZWFrfWVsc2V7
aWYoYTFeKGFyfDApPT0wKXthND1hcjticmVha31lbHNle1o9OTcwO2JyZWFrIEw4OTB9fX19d2hp
bGUoMCk7aWYoKFp8MCk9PTk2NCl7Wj0wO2lmKGExKXtaPTk3MDticmVhayBMODkwfWVsc2V7YTQ9
MH19YXI9Y1tmPj4yXXwwO1Y9Y1thcisxMj4+Ml18MDtpZigoVnwwKT09KGNbYXIrMTY+PjJdfDAp
KXthNT1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2E1PWNbVj4+Ml18
MH1pZigoYTV8MCkhPShjW3Q+PjJdfDApKXtaPTk3MDticmVhayBMODkwfVY9Y1tmPj4yXXwwO2Fy
PVYrMTJ8MDthdT1jW2FyPj4yXXwwO2lmKChhdXwwKT09KGNbVisxNj4+Ml18MCkpe2F0PWNbKGNb
Vj4+Ml18MCkrNDA+PjJdfDA7YjBbYXQmMTI3XShWKXwwO2E2PWE0O2E3PWFzfWVsc2V7Y1thcj4+
Ml09YXUrNDthNj1hNDthNz1hc313aGlsZSgxKXthdT1jW2Y+PjJdfDA7ZG97aWYoKGF1fDApPT0w
KXthOD0xfWVsc2V7YXI9Y1thdSsxMj4+Ml18MDtpZigoYXJ8MCk9PShjW2F1KzE2Pj4yXXwwKSl7
YTk9YjBbY1soY1thdT4+Ml18MCkrMzY+PjJdJjEyN10oYXUpfDB9ZWxzZXthOT1jW2FyPj4yXXww
fWlmKChhOXwwKT09LTEpe2NbZj4+Ml09MDthOD0xO2JyZWFrfWVsc2V7YTg9KGNbZj4+Ml18MCk9
PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZigoYTZ8MCk9PTApe1o9OTg3fWVsc2V7YXU9Y1thNisx
Mj4+Ml18MDtpZigoYXV8MCk9PShjW2E2KzE2Pj4yXXwwKSl7YmE9YjBbY1soY1thNj4+Ml18MCkr
MzY+PjJdJjEyN10oYTYpfDB9ZWxzZXtiYT1jW2F1Pj4yXXwwfWlmKChiYXwwKT09LTEpe2NbYj4+
Ml09MDtaPTk4NzticmVha31lbHNle2lmKGE4XihhNnwwKT09MCl7YmI9YTY7YnJlYWt9ZWxzZXta
PTk5NDticmVhayBMODkwfX19fXdoaWxlKDApO2lmKChafDApPT05ODcpe1o9MDtpZihhOCl7Wj05
OTQ7YnJlYWsgTDg5MH1lbHNle2JiPTB9fWF1PWNbZj4+Ml18MDthcj1jW2F1KzEyPj4yXXwwO2lm
KChhcnwwKT09KGNbYXUrMTY+PjJdfDApKXtiYz1iMFtjWyhjW2F1Pj4yXXwwKSszNj4+Ml0mMTI3
XShhdSl8MH1lbHNle2JjPWNbYXI+PjJdfDB9aWYoIShiMVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2
M10obCwyMDQ4LGJjKXwwKSl7Wj05OTQ7YnJlYWsgTDg5MH1pZigoY1tuPj4yXXwwKT09KGNbcT4+
Ml18MCkpe2gzKG0sbixxKX1hcj1jW2Y+PjJdfDA7YXU9Y1thcisxMj4+Ml18MDtpZigoYXV8MCk9
PShjW2FyKzE2Pj4yXXwwKSl7YmQ9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9
ZWxzZXtiZD1jW2F1Pj4yXXwwfWF1PWNbbj4+Ml18MDtjW24+PjJdPWF1KzQ7Y1thdT4+Ml09YmQ7
YXU9YTctMXwwO2NbQj4+Ml09YXU7YXI9Y1tmPj4yXXwwO1Y9YXIrMTJ8MDthdD1jW1Y+PjJdfDA7
aWYoKGF0fDApPT0oY1thcisxNj4+Ml18MCkpe2FwPWNbKGNbYXI+PjJdfDApKzQwPj4yXXwwO2Iw
W2FwJjEyN10oYXIpfDB9ZWxzZXtjW1Y+PjJdPWF0KzR9aWYoKGF1fDApPjApe2E2PWJiO2E3PWF1
fWVsc2V7YnJlYWt9fX1pZigoY1tuPj4yXXwwKT09KGNbZz4+Ml18MCkpe1o9MTAwNTticmVhayBM
ODkwfWVsc2V7YWY9cjthZz1hVTthaD1hVjthaT1hVzthaj1hWH1icmVha307Y2FzZSAxOntpZigo
VXwwKT09Myl7YWE9UjthYj1TO2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWsgTDg5MH1hcz1jW2Y+PjJd
fDA7YXU9Y1thcysxMj4+Ml18MDtpZigoYXV8MCk9PShjW2FzKzE2Pj4yXXwwKSl7YmU9YjBbY1so
Y1thcz4+Ml18MCkrMzY+PjJdJjEyN10oYXMpfDB9ZWxzZXtiZT1jW2F1Pj4yXXwwfWlmKCEoYjFb
Y1soY1tlPj4yXXwwKSsxMj4+Ml0mNjNdKGwsODE5MixiZSl8MCkpe1o9NzkxO2JyZWFrIEw4OTB9
YXU9Y1tmPj4yXXwwO2FzPWF1KzEyfDA7YXQ9Y1thcz4+Ml18MDtpZigoYXR8MCk9PShjW2F1KzE2
Pj4yXXwwKSl7YmY9YjBbY1soY1thdT4+Ml18MCkrNDA+PjJdJjEyN10oYXUpfDB9ZWxzZXtjW2Fz
Pj4yXT1hdCs0O2JmPWNbYXQ+PjJdfDB9ZWgoQSxiZik7Wj03OTI7YnJlYWt9O2Nhc2UgMDp7Wj03
OTI7YnJlYWt9O2Nhc2UgMzp7YXQ9YVtFXXwwO2FzPWF0JjI1NTthdT0oYXMmMXwwKT09MDtWPWFb
Rl18MDthcj1WJjI1NTthcD0oYXImMXwwKT09MDtpZigoKGF1P2FzPj4+MTpjW0o+PjJdfDApfDAp
PT0oLShhcD9hcj4+PjE6Y1tIPj4yXXwwKXwwKSl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2Jy
ZWFrIEw5MTR9ZG97aWYoKChhdT9hcz4+PjE6Y1tKPj4yXXwwKXwwKSE9MCl7aWYoKChhcD9hcj4+
PjE6Y1tIPj4yXXwwKXwwKT09MCl7YnJlYWt9WD1jW2Y+PjJdfDA7YXc9Y1tYKzEyPj4yXXwwO2lm
KChhd3wwKT09KGNbWCsxNj4+Ml18MCkpe2F4PWIwW2NbKGNbWD4+Ml18MCkrMzY+PjJdJjEyN10o
WCl8MDtiZz1heDtiaD1hW0VdfDB9ZWxzZXtiZz1jW2F3Pj4yXXwwO2JoPWF0fWF3PWNbZj4+Ml18
MDtheD1hdysxMnwwO1g9Y1theD4+Ml18MDthdj0oWHwwKT09KGNbYXcrMTY+PjJdfDApO2lmKChi
Z3wwKT09KGNbKChiaCYxKT09MD9KOmNbSz4+Ml18MCk+PjJdfDApKXtpZihhdil7Ymk9Y1soY1th
dz4+Ml18MCkrNDA+PjJdfDA7YjBbYmkmMTI3XShhdyl8MH1lbHNle2NbYXg+PjJdPVgrNH1heD1k
W0VdfDA7YWY9KChheCYxfDApPT0wP2F4Pj4+MTpjW0o+PjJdfDApPj4+MD4xP3k6cjthZz1vO2Fo
PVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9aWYoYXYpe2JqPWIwW2NbKGNbYXc+PjJdfDApKzM2Pj4y
XSYxMjddKGF3KXwwfWVsc2V7Ymo9Y1tYPj4yXXwwfWlmKChianwwKSE9KGNbKChhW0ZdJjEpPT0w
P0g6Y1tJPj4yXXwwKT4+Ml18MCkpe1o9ODU3O2JyZWFrIEw4OTB9WD1jW2Y+PjJdfDA7YXc9WCsx
MnwwO2F2PWNbYXc+PjJdfDA7aWYoKGF2fDApPT0oY1tYKzE2Pj4yXXwwKSl7YXg9Y1soY1tYPj4y
XXwwKSs0MD4+Ml18MDtiMFtheCYxMjddKFgpfDB9ZWxzZXtjW2F3Pj4yXT1hdis0fWFba109MTth
dj1kW0ZdfDA7YWY9KChhdiYxfDApPT0wP2F2Pj4+MTpjW0g+PjJdfDApPj4+MD4xP3o6cjthZz1v
O2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9fXdoaWxlKDApO2FyPWNbZj4+Ml18MDthcD1jW2Fy
KzEyPj4yXXwwO2F2PShhcHwwKT09KGNbYXIrMTY+PjJdfDApO2lmKCgoYXU/YXM+Pj4xOmNbSj4+
Ml18MCl8MCk9PTApe2lmKGF2KXthdz1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8
MDtiaz1hdztibD1hW0ZdfDB9ZWxzZXtiaz1jW2FwPj4yXXwwO2JsPVZ9aWYoKGJrfDApIT0oY1so
KGJsJjEpPT0wP0g6Y1tJPj4yXXwwKT4+Ml18MCkpe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9Ujti
cmVhayBMOTE0fWF3PWNbZj4+Ml18MDtYPWF3KzEyfDA7YXg9Y1tYPj4yXXwwO2lmKChheHwwKT09
KGNbYXcrMTY+PjJdfDApKXtiaT1jWyhjW2F3Pj4yXXwwKSs0MD4+Ml18MDtiMFtiaSYxMjddKGF3
KXwwfWVsc2V7Y1tYPj4yXT1heCs0fWFba109MTtheD1kW0ZdfDA7YWY9KChheCYxfDApPT0wP2F4
Pj4+MTpjW0g+PjJdfDApPj4+MD4xP3o6cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9
aWYoYXYpe2F2PWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwO2JtPWF2O2JuPWFb
RV18MH1lbHNle2JtPWNbYXA+PjJdfDA7Ym49YXR9aWYoKGJtfDApIT0oY1soKGJuJjEpPT0wP0o6
Y1tLPj4yXXwwKT4+Ml18MCkpe2Fba109MTthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsg
TDkxNH1hcD1jW2Y+PjJdfDA7YXY9YXArMTJ8MDthcj1jW2F2Pj4yXXwwO2lmKChhcnwwKT09KGNb
YXArMTY+PjJdfDApKXtheD1jWyhjW2FwPj4yXXwwKSs0MD4+Ml18MDtiMFtheCYxMjddKGFwKXww
fWVsc2V7Y1thdj4+Ml09YXIrNH1hcj1kW0VdfDA7YWY9KChhciYxfDApPT0wP2FyPj4+MTpjW0o+
PjJdfDApPj4+MD4xP3k6cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrfTtkZWZhdWx0OnthZj1y
O2FnPW87YWg9VDthaT1TO2FqPVJ9fX13aGlsZSgwKTtMMTE4Mzpkb3tpZigoWnwwKT09NzkyKXta
PTA7aWYoKFV8MCk9PTMpe2FhPVI7YWI9UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrIEw4OTB9ZWxz
ZXtibz0kfXdoaWxlKDEpe2FyPWNbZj4+Ml18MDtkb3tpZigoYXJ8MCk9PTApe2JwPTF9ZWxzZXth
dj1jW2FyKzEyPj4yXXwwO2lmKChhdnwwKT09KGNbYXIrMTY+PjJdfDApKXticT1iMFtjWyhjW2Fy
Pj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2JxPWNbYXY+PjJdfDB9aWYoKGJxfDApPT0t
MSl7Y1tmPj4yXT0wO2JwPTE7YnJlYWt9ZWxzZXticD0oY1tmPj4yXXwwKT09MDticmVha319fXdo
aWxlKDApO2Rve2lmKChib3wwKT09MCl7Wj04MDZ9ZWxzZXthcj1jW2JvKzEyPj4yXXwwO2lmKChh
cnwwKT09KGNbYm8rMTY+PjJdfDApKXticj1iMFtjWyhjW2JvPj4yXXwwKSszNj4+Ml0mMTI3XShi
byl8MH1lbHNle2JyPWNbYXI+PjJdfDB9aWYoKGJyfDApPT0tMSl7Y1tiPj4yXT0wO1o9ODA2O2Jy
ZWFrfWVsc2V7aWYoYnBeKGJvfDApPT0wKXticz1ibzticmVha31lbHNle2FmPXI7YWc9bzthaD1U
O2FpPVM7YWo9UjticmVhayBMMTE4M319fX13aGlsZSgwKTtpZigoWnwwKT09ODA2KXtaPTA7aWYo
YnApe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMMTE4M31lbHNle2JzPTB9fWFyPWNb
Zj4+Ml18MDthdj1jW2FyKzEyPj4yXXwwO2lmKChhdnwwKT09KGNbYXIrMTY+PjJdfDApKXtidD1i
MFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2J0PWNbYXY+PjJdfDB9aWYo
IShiMVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2M10obCw4MTkyLGJ0KXwwKSl7YWY9cjthZz1vO2Fo
PVQ7YWk9Uzthaj1SO2JyZWFrIEwxMTgzfWF2PWNbZj4+Ml18MDthcj1hdisxMnwwO2FwPWNbYXI+
PjJdfDA7aWYoKGFwfDApPT0oY1thdisxNj4+Ml18MCkpe2J1PWIwW2NbKGNbYXY+PjJdfDApKzQw
Pj4yXSYxMjddKGF2KXwwfWVsc2V7Y1thcj4+Ml09YXArNDtidT1jW2FwPj4yXXwwfWVoKEEsYnUp
O2JvPWJzfX19d2hpbGUoMCk7YXQ9VSsxfDA7aWYoYXQ+Pj4wPDQpe1I9YWo7Uz1haTtUPWFoO289
YWc7cj1hZjtVPWF0fWVsc2V7YWE9YWo7YWI9YWk7YWM9YWg7YWQ9YWY7Wj0xMDA3O2JyZWFrfX1M
MTIyMDpkb3tpZigoWnwwKT09ODU3KXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PVM7Yng9Un1l
bHNlIGlmKChafDApPT05MDEpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9UztieD1SfWVsc2Ug
aWYoKFp8MCk9PTk3MCl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlm
KChafDApPT05OTQpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YVc7Yng9YVh9ZWxzZSBpZigo
WnwwKT09MTAwNSl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlmKCha
fDApPT0xMDA3KXtMMTIyNzpkb3tpZigoYWR8MCkhPTApe2FmPWFkO2FoPWFkKzR8MDthaT1hZCs4
fDA7YWo9MTtMMTIyOTp3aGlsZSgxKXtVPWRbYWZdfDA7aWYoKFUmMXwwKT09MCl7Ynk9VT4+PjF9
ZWxzZXtieT1jW2FoPj4yXXwwfWlmKGFqPj4+MD49Ynk+Pj4wKXticmVhayBMMTIyN31VPWNbZj4+
Ml18MDtkb3tpZigoVXwwKT09MCl7Yno9MX1lbHNle3I9Y1tVKzEyPj4yXXwwO2lmKChyfDApPT0o
Y1tVKzE2Pj4yXXwwKSl7YkE9YjBbY1soY1tVPj4yXXwwKSszNj4+Ml0mMTI3XShVKXwwfWVsc2V7
YkE9Y1tyPj4yXXwwfWlmKChiQXwwKT09LTEpe2NbZj4+Ml09MDtiej0xO2JyZWFrfWVsc2V7Yno9
KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtVPWNbYj4+Ml18MDtkb3tpZigoVXwwKT09
MCl7Wj0xMDI2fWVsc2V7cj1jW1UrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW1UrMTY+PjJdfDApKXti
Qj1iMFtjWyhjW1U+PjJdfDApKzM2Pj4yXSYxMjddKFUpfDB9ZWxzZXtiQj1jW3I+PjJdfDB9aWYo
KGJCfDApPT0tMSl7Y1tiPj4yXT0wO1o9MTAyNjticmVha31lbHNle2lmKGJ6XihVfDApPT0wKXti
cmVha31lbHNle2JyZWFrIEwxMjI5fX19fXdoaWxlKDApO2lmKChafDApPT0xMDI2KXtaPTA7aWYo
Ynope2JyZWFrfX1VPWNbZj4+Ml18MDtyPWNbVSsxMj4+Ml18MDtpZigocnwwKT09KGNbVSsxNj4+
Ml18MCkpe2JDPWIwW2NbKGNbVT4+Ml18MCkrMzY+PjJdJjEyN10oVSl8MH1lbHNle2JDPWNbcj4+
Ml18MH1pZigoYVthZl0mMSk9PTApe2JEPWFofWVsc2V7YkQ9Y1thaT4+Ml18MH1pZigoYkN8MCkh
PShjW2JEKyhhajw8Mik+PjJdfDApKXticmVha31yPWFqKzF8MDtVPWNbZj4+Ml18MDthZz1VKzEy
fDA7bz1jW2FnPj4yXXwwO2lmKChvfDApPT0oY1tVKzE2Pj4yXXwwKSl7VD1jWyhjW1U+PjJdfDAp
KzQwPj4yXXwwO2IwW1QmMTI3XShVKXwwO2FqPXI7Y29udGludWV9ZWxzZXtjW2FnPj4yXT1vKzQ7
YWo9cjtjb250aW51ZX19Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hYjtieD1hYTticmVhayBM
MTIyMH19d2hpbGUoMCk7aWYoKGFifDApPT0oYWN8MCkpe2J2PTE7Ync9YWM7Yng9YWE7YnJlYWt9
Y1tDPj4yXT0wO2Z0KHYsYWIsYWMsQyk7aWYoKGNbQz4+Ml18MCk9PTApe2J2PTE7Ync9YWI7Yng9
YWE7YnJlYWt9Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hYjtieD1hYX1lbHNlIGlmKChafDAp
PT03OTEpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9UztieD1SfX13aGlsZSgwKTtlZShBKTtl
ZSh6KTtlZSh5KTtlZSh4KTtkUCh2KTtpZigoYnd8MCk9PTApe2k9cDtyZXR1cm4gYnZ8MH1iWVti
eCY1MTFdKGJ3KTtpPXA7cmV0dXJuIGJ2fDB9ZnVuY3Rpb24gaF8oYixkLGUpe2I9YnwwO2Q9ZHww
O2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Zj1iO2c9
ZDtoPWFbZl18MDtpPWgmMjU1O2lmKChpJjF8MCk9PTApe2o9aT4+PjF9ZWxzZXtqPWNbYis0Pj4y
XXwwfWlmKChoJjEpPT0wKXtrPTE7bD1ofWVsc2V7aD1jW2I+PjJdfDA7az0oaCYtMiktMXwwO2w9
aCYyNTV9aD1lLWc+PjI7aWYoKGh8MCk9PTApe3JldHVybiBifDB9aWYoKGstanwwKT4+PjA8aD4+
PjApe2VCKGIsayxqK2gta3wwLGosaiwwLDApO209YVtmXXwwfWVsc2V7bT1sfWlmKChtJjEpPT0w
KXtuPWIrNHwwfWVsc2V7bj1jW2IrOD4+Ml18MH1tPW4rKGo8PDIpfDA7aWYoKGR8MCk9PShlfDAp
KXtvPW19ZWxzZXtsPWorKChlLTQrKC1nfDApfDApPj4+MikrMXwwO2c9ZDtkPW07d2hpbGUoMSl7
Y1tkPj4yXT1jW2c+PjJdO209Zys0fDA7aWYoKG18MCk9PShlfDApKXticmVha31lbHNle2c9bTtk
PWQrNHwwfX1vPW4rKGw8PDIpfDB9Y1tvPj4yXT0wO289aitofDA7aWYoKGFbZl0mMSk9PTApe2Fb
Zl09bzw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1vO3JldHVybiBifDB9cmV0dXJu
IDB9ZnVuY3Rpb24gaCQoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaDAo
YSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaDEoYixkLGUsZixnLGgsaixrKXtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MDtkPWk7aT1pKzQ1NnwwO2w9ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zj4+Ml09Y1tsPj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrNDE2fDA7bz1kKzQyNHwwO3A9ZCs0MzJ8
MDtxPWQrNDQwfDA7cj1kKzQ0OHwwO3M9bnwwO2Nbcz4+Ml09bTt0PW4rNHwwO2NbdD4+Ml09MTY2
O3U9bSs0MDB8MDtlaihwLGgpO209cHwwO3Y9Y1ttPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7
Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0o
Y1szOTIzXXwwKS0xfDA7dz1jW3YrOD4+Ml18MDtkb3tpZigoY1t2KzEyPj4yXXwwKS13Pj4yPj4+
MD5sPj4+MCl7eD1jW3crKGw8PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7YVtxXT0w
O3o9ZnwwO0E9Y1t6Pj4yXXwwO2Nbcj4+Ml09QTtpZihoWihlLHIsZyxwLGNbaCs0Pj4yXXwwLGos
cSx5LG4sbyx1KXwwKXtCPWs7aWYoKGFbQl0mMSk9PTApe2Nbays0Pj4yXT0wO2FbQl09MH1lbHNl
e2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfUI9eDtpZigoYVtxXSYxKSE9MCl7ZWgoayxi
X1tjWyhjW0I+PjJdfDApKzQ0Pj4yXSYzMV0oeSw0NSl8MCl9eD1iX1tjWyhjW0I+PjJdfDApKzQ0
Pj4yXSYzMV0oeSw0OCl8MDt5PWNbbz4+Ml18MDtCPXktNHwwO0M9Y1tzPj4yXXwwO3doaWxlKDEp
e2lmKEM+Pj4wPj1CPj4+MCl7YnJlYWt9aWYoKGNbQz4+Ml18MCk9PSh4fDApKXtDPUMrNHwwfWVs
c2V7YnJlYWt9fWhfKGssQyx5KXwwfXg9ZXwwO0I9Y1t4Pj4yXXwwO2Rve2lmKChCfDApPT0wKXtE
PTB9ZWxzZXtFPWNbQisxMj4+Ml18MDtpZigoRXwwKT09KGNbQisxNj4+Ml18MCkpe0Y9YjBbY1so
Y1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7Rj1jW0U+PjJdfDB9aWYoKEZ8MCkhPS0x
KXtEPUI7YnJlYWt9Y1t4Pj4yXT0wO0Q9MH19d2hpbGUoMCk7eD0oRHwwKT09MDtkb3tpZigoQXww
KT09MCl7Rz0xMTA1fWVsc2V7Qj1jW0ErMTI+PjJdfDA7aWYoKEJ8MCk9PShjW0ErMTY+PjJdfDAp
KXtIPWIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MH1lbHNle0g9Y1tCPj4yXXwwfWlm
KChIfDApPT0tMSl7Y1t6Pj4yXT0wO0c9MTEwNTticmVha31lbHNle2lmKHheKEF8MCk9PTApe2Jy
ZWFrfWVsc2V7Rz0xMTA3O2JyZWFrfX19fXdoaWxlKDApO2lmKChHfDApPT0xMTA1KXtpZih4KXtH
PTExMDd9fWlmKChHfDApPT0xMTA3KXtjW2o+PjJdPWNbaj4+Ml18Mn1jW2I+PjJdPUQ7QT1jW20+
PjJdfDA7ZHooQSl8MDtBPWNbcz4+Ml18MDtjW3M+PjJdPTA7aWYoKEF8MCk9PTApe2k9ZDtyZXR1
cm59YllbY1t0Pj4yXSY1MTFdKEEpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShk
KTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGgyKGIsZCxlLGYsZyxoLGosayxsLG0pe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3Zh
ciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MDtuPWk7
aT1pKzU2fDA7bz1ufDA7cD1uKzE2fDA7cT1uKzMyfDA7cj1uKzQwfDA7cz1yO3Q9aTtpPWkrMTJ8
MDtpPWkrNz4+Mzw8Mzt1PXQ7dj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3c9djt4PWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7eT14O3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrMTJ8MDtp
PWkrNz4+Mzw8MztCPUE7RD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7
aT1pKzc+PjM8PDM7Rz1GO0g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztJPUg7aWYoYil7Yj1jW2Q+
PjJdfDA7aWYoKGNbNDA0MF18MCkhPS0xKXtjW3A+PjJdPTE2MTYwO2NbcCs0Pj4yXT0xMjtjW3Ar
OD4+Ml09MDtkVygxNjE2MCxwLDk2KX1wPShjWzQwNDFdfDApLTF8MDtKPWNbYis4Pj4yXXwwO2lm
KChjW2IrMTI+PjJdfDApLUo+PjI+Pj4wPD1wPj4+MCl7Sz1iTyg0KXwwO0w9SztrcShMKTtibChL
fDAsODE3NiwxMzQpfWI9Y1tKKyhwPDwyKT4+Ml18MDtpZigoYnwwKT09MCl7Sz1iTyg0KXwwO0w9
SztrcShMKTtibChLfDAsODE3NiwxMzQpfUs9YjtiWltjWyhjW2I+PjJdfDApKzQ0Pj4yXSYxMjdd
KHEsSyk7TD1lO0M9Y1txPj4yXXwwO2FbTF09QyYyNTU7Qz1DPj44O2FbTCsxfDBdPUMmMjU1O0M9
Qz4+ODthW0wrMnwwXT1DJjI1NTtDPUM+Pjg7YVtMKzN8MF09QyYyNTU7TD1iO2JaW2NbKGNbTD4+
Ml18MCkrMzI+PjJdJjEyN10ocixLKTtxPWw7aWYoKGFbcV0mMSk9PTApe2NbbCs0Pj4yXT0wO2Fb
cV09MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1txPj4yXT1j
W3M+PjJdO2NbcSs0Pj4yXT1jW3MrND4+Ml07Y1txKzg+PjJdPWNbcys4Pj4yXTtrJChzfDAsMCwx
Mik7ZWUocik7YlpbY1soY1tMPj4yXXwwKSsyOD4+Ml0mMTI3XSh0LEspO3I9aztpZigoYVtyXSYx
KT09MCl7Y1trKzQ+PjJdPTA7YVtyXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJd
PTB9ZXooaywwKTtjW3I+PjJdPWNbdT4+Ml07Y1tyKzQ+PjJdPWNbdSs0Pj4yXTtjW3IrOD4+Ml09
Y1t1Kzg+PjJdO2skKHV8MCwwLDEyKTtlZSh0KTt0PWI7Y1tmPj4yXT1iMFtjWyhjW3Q+PjJdfDAp
KzEyPj4yXSYxMjddKEspfDA7Y1tnPj4yXT1iMFtjWyhjW3Q+PjJdfDApKzE2Pj4yXSYxMjddKEsp
fDA7YlpbY1soY1tiPj4yXXwwKSsyMD4+Ml0mMTI3XSh2LEspO2I9aDtpZigoYVtiXSYxKT09MCl7
YVtoKzF8MF09MDthW2JdPTB9ZWxzZXthW2NbaCs4Pj4yXXwwXT0wO2NbaCs0Pj4yXT0wfWQkKGgs
MCk7Y1tiPj4yXT1jW3c+PjJdO2NbYis0Pj4yXT1jW3crND4+Ml07Y1tiKzg+PjJdPWNbdys4Pj4y
XTtrJCh3fDAsMCwxMik7ZFAodik7YlpbY1soY1tMPj4yXXwwKSsyND4+Ml0mMTI3XSh4LEspO0w9
ajtpZigoYVtMXSYxKT09MCl7Y1tqKzQ+PjJdPTA7YVtMXT0wfWVsc2V7Y1tjW2orOD4+Ml0+PjJd
PTA7Y1tqKzQ+PjJdPTB9ZXooaiwwKTtjW0w+PjJdPWNbeT4+Ml07Y1tMKzQ+PjJdPWNbeSs0Pj4y
XTtjW0wrOD4+Ml09Y1t5Kzg+PjJdO2skKHl8MCwwLDEyKTtlZSh4KTtNPWIwW2NbKGNbdD4+Ml18
MCkrMzY+PjJdJjEyN10oSyl8MDtjW20+PjJdPU07aT1uO3JldHVybn1lbHNle0s9Y1tkPj4yXXww
O2lmKChjWzQwNDJdfDApIT0tMSl7Y1tvPj4yXT0xNjE2ODtjW28rND4+Ml09MTI7Y1tvKzg+PjJd
PTA7ZFcoMTYxNjgsbyw5Nil9bz0oY1s0MDQzXXwwKS0xfDA7ZD1jW0srOD4+Ml18MDtpZigoY1tL
KzEyPj4yXXwwKS1kPj4yPj4+MDw9bz4+PjApe049Yk8oNCl8MDtPPU47a3EoTyk7YmwoTnwwLDgx
NzYsMTM0KX1LPWNbZCsobzw8Mik+PjJdfDA7aWYoKEt8MCk9PTApe049Yk8oNCl8MDtPPU47a3Eo
Tyk7YmwoTnwwLDgxNzYsMTM0KX1OPUs7YlpbY1soY1tLPj4yXXwwKSs0ND4+Ml0mMTI3XSh6LE4p
O089ZTtDPWNbej4+Ml18MDthW09dPUMmMjU1O0M9Qz4+ODthW08rMXwwXT1DJjI1NTtDPUM+Pjg7
YVtPKzJ8MF09QyYyNTU7Qz1DPj44O2FbTyszfDBdPUMmMjU1O089SztiWltjWyhjW08+PjJdfDAp
KzMyPj4yXSYxMjddKEEsTik7ej1sO2lmKChhW3pdJjEpPT0wKXtjW2wrND4+Ml09MDthW3pdPTB9
ZWxzZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2Nbej4+Ml09Y1tCPj4y
XTtjW3orND4+Ml09Y1tCKzQ+PjJdO2Nbeis4Pj4yXT1jW0IrOD4+Ml07ayQoQnwwLDAsMTIpO2Vl
KEEpO2JaW2NbKGNbTz4+Ml18MCkrMjg+PjJdJjEyN10oRCxOKTtBPWs7aWYoKGFbQV0mMSk9PTAp
e2Nbays0Pj4yXT0wO2FbQV09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6
KGssMCk7Y1tBPj4yXT1jW0U+PjJdO2NbQSs0Pj4yXT1jW0UrND4+Ml07Y1tBKzg+PjJdPWNbRSs4
Pj4yXTtrJChFfDAsMCwxMik7ZWUoRCk7RD1LO2NbZj4+Ml09YjBbY1soY1tEPj4yXXwwKSsxMj4+
Ml0mMTI3XShOKXwwO2NbZz4+Ml09YjBbY1soY1tEPj4yXXwwKSsxNj4+Ml0mMTI3XShOKXwwO2Ja
W2NbKGNbSz4+Ml18MCkrMjA+PjJdJjEyN10oRixOKTtLPWg7aWYoKGFbS10mMSk9PTApe2FbaCsx
fDBdPTA7YVtLXT0wfWVsc2V7YVtjW2grOD4+Ml18MF09MDtjW2grND4+Ml09MH1kJChoLDApO2Nb
Sz4+Ml09Y1tHPj4yXTtjW0srND4+Ml09Y1tHKzQ+PjJdO2NbSys4Pj4yXT1jW0crOD4+Ml07ayQo
R3wwLDAsMTIpO2RQKEYpO2JaW2NbKGNbTz4+Ml18MCkrMjQ+PjJdJjEyN10oSCxOKTtPPWo7aWYo
KGFbT10mMSk9PTApe2Nbais0Pj4yXT0wO2FbT109MH1lbHNle2NbY1tqKzg+PjJdPj4yXT0wO2Nb
ais0Pj4yXT0wfWV6KGosMCk7Y1tPPj4yXT1jW0k+PjJdO2NbTys0Pj4yXT1jW0krND4+Ml07Y1tP
Kzg+PjJdPWNbSSs4Pj4yXTtrJChJfDAsMCwxMik7ZWUoSCk7TT1iMFtjWyhjW0Q+PjJdfDApKzM2
Pj4yXSYxMjddKE4pfDA7Y1ttPj4yXT1NO2k9bjtyZXR1cm59fWZ1bmN0aW9uIGgzKGEsYixkKXth
PWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWEr
NHwwO2Y9KGNbZT4+Ml18MCkhPTE2NjtnPWF8MDthPWNbZz4+Ml18MDtoPWE7aT0oY1tkPj4yXXww
KS1ofDA7aj1pPj4+MDwyMTQ3NDgzNjQ3P2k8PDE6LTE7aT0oY1tiPj4yXXwwKS1oPj4yO2lmKGYp
e2s9YX1lbHNle2s9MH1hPWtMKGssail8MDtrPWE7aWYoKGF8MCk9PTApe2tYKCl9ZG97aWYoZil7
Y1tnPj4yXT1rO2w9a31lbHNle2E9Y1tnPj4yXXwwO2NbZz4+Ml09aztpZigoYXwwKT09MCl7bD1r
O2JyZWFrfWJZW2NbZT4+Ml0mNTExXShhKTtsPWNbZz4+Ml18MH19d2hpbGUoMCk7Y1tlPj4yXT04
MjtjW2I+PjJdPWwrKGk8PDIpO2NbZD4+Ml09KGNbZz4+Ml18MCkrKGo+Pj4yPDwyKTtyZXR1cm59
ZnVuY3Rpb24gaDQoYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7
az1rfDA7bD0rbDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0w
LEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wO2U9aTtpPWkr
MjgwfDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWV8MDtu
PWUrMTIwfDA7bz1lKzIzMnwwO3A9ZSsyNDB8MDtxPWUrMjQ4fDA7cj1lKzI1NnwwO3M9ZSsyNjR8
MDt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8
PDM7eD13O3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTAwfDA7aT1pKzc+PjM8PDM7
QT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7RD1lKzE2fDA7Y1tuPj4yXT1EO0U9ZSsxMjh8MDtGPWFaKER8MCwxMDAs
MTM2MCwoRD1pLGk9aSs4fDAsaFtEPj4zXT1sLEQpfDApfDA7aT1EO2Rve2lmKEY+Pj4wPjk5KXtk
b3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09
YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO0c9Z2gobixjWzI5NThdfDAsMTM2MCwoRD1pLGk9aSs4
fDAsaFtEPj4zXT1sLEQpfDApfDA7aT1EO0g9Y1tuPj4yXXwwO2lmKChIfDApPT0wKXtrWCgpO0k9
Y1tuPj4yXXwwfWVsc2V7ST1IfUg9a0ooRyl8MDtpZigoSHwwKSE9MCl7Sj1IO0s9RztMPUk7TT1I
O2JyZWFrfWtYKCk7Sj0wO0s9RztMPUk7TT0wfWVsc2V7Sj1FO0s9RjtMPTA7TT0wfX13aGlsZSgw
KTtlaihvLGopO0Y9b3wwO0U9Y1tGPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1ttPj4yXT0x
NTY5NjtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTU2OTYsbSw5Nil9bT0oY1szOTI1XXww
KS0xfDA7ST1jW0UrOD4+Ml18MDtkb3tpZigoY1tFKzEyPj4yXXwwKS1JPj4yPj4+MD5tPj4+MCl7
RD1jW0krKG08PDIpPj4yXXwwO2lmKChEfDApPT0wKXticmVha31HPUQ7SD1jW24+PjJdfDA7Tj1I
K0t8MDtPPWNbKGNbRD4+Ml18MCkrMzI+PjJdfDA7Y2FbTyYxNV0oRyxILE4sSil8MDtpZigoS3ww
KT09MCl7UD0wfWVsc2V7UD0oYVtjW24+PjJdfDBdfDApPT00NX1rJCh0fDAsMCwxMik7ayQodnww
LDAsMTIpO2skKHh8MCwwLDEyKTtoNShnLFAsbyxwLHEscixzLHUsdyx5KTtOPXp8MDtIPWNbeT4+
Ml18MDtpZigoS3wwKT4oSHwwKSl7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7UT1PPj4+MX1lbHNl
e1E9Y1t3KzQ+PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7Uj1PPj4+MX1lbHNle1I9Y1t1
KzQ+PjJdfDB9Uz0oSy1IPDwxfDEpK1ErUnwwfWVsc2V7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7
VD1PPj4+MX1lbHNle1Q9Y1t3KzQ+PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7VT1PPj4+
MX1lbHNle1U9Y1t1KzQ+PjJdfDB9Uz1UKzIrVXwwfU89UytIfDA7ZG97aWYoTz4+PjA+MTAwKXtE
PWtKKE8pfDA7aWYoKER8MCkhPTApe1Y9RDtXPUQ7YnJlYWt9a1goKTtWPTA7Vz0wfWVsc2V7Vj1O
O1c9MH19d2hpbGUoMCk7aDYoVixBLEIsY1tqKzQ+PjJdfDAsSixKK0t8MCxHLFAscCxhW3FdfDAs
YVtyXXwwLHMsdSx3LEgpO2NbQz4+Ml09Y1tmPj4yXTtmOShiLEMsVixjW0E+PjJdfDAsY1tCPj4y
XXwwLGosayk7aWYoKFd8MCkhPTApe2tLKFcpfWRQKHcpO2RQKHUpO2RQKHMpO049Y1tGPj4yXXww
O2R6KE4pfDA7aWYoKE18MCkhPTApe2tLKE0pfWlmKChMfDApPT0wKXtpPWU7cmV0dXJufWtLKEwp
O2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1
bmN0aW9uIGg1KGIsZCxlLGYsZyxoLGosayxsLG0pe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtu
PWk7aT1pKzQwfDA7bz1ufDA7cD1uKzE2fDA7cT1uKzMyfDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8Mzt0PXM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8Mzt4PXc7eT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3o9eTtBPWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7Qj1BO0Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7Rz1GO0g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0k9SDtKPWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7Sz1KO0w9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztNPUw7Tj1pO2k9aSsxMnwwO2k9
aSs3Pj4zPDwzO089TjtQPWNbZT4+Ml18MDtpZihiKXtpZigoY1s0MDQ0XXwwKSE9LTEpe2NbcD4+
Ml09MTYxNzY7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTc2LHAsOTYpfXA9KGNbNDA0
NV18MCktMXwwO2I9Y1tQKzg+PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktYj4+Mj4+PjA8PXA+Pj4w
KXtRPWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9ZT1jW2IrKHA8PDIpPj4yXXww
O2lmKChlfDApPT0wKXtRPWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9UT1lO1I9
Y1tlPj4yXXwwO2lmKGQpe2JaW2NbUis0ND4+Ml0mMTI3XShyLFEpO3I9ZjtDPWNbcT4+Ml18MDth
W3JdPUMmMjU1O0M9Qz4+ODthW3IrMXwwXT1DJjI1NTtDPUM+Pjg7YVtyKzJ8MF09QyYyNTU7Qz1D
Pj44O2FbciszfDBdPUMmMjU1O2JaW2NbKGNbZT4+Ml18MCkrMzI+PjJdJjEyN10ocyxRKTtyPWw7
aWYoKGFbcl0mMSk9PTApe2FbbCsxfDBdPTA7YVtyXT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtj
W2wrND4+Ml09MH1kJChsLDApO2Nbcj4+Ml09Y1t0Pj4yXTtjW3IrND4+Ml09Y1t0KzQ+PjJdO2Nb
cis4Pj4yXT1jW3QrOD4+Ml07ayQodHwwLDAsMTIpO2RQKHMpfWVsc2V7YlpbY1tSKzQwPj4yXSYx
MjddKHYsUSk7dj1mO0M9Y1t1Pj4yXXwwO2Fbdl09QyYyNTU7Qz1DPj44O2FbdisxfDBdPUMmMjU1
O0M9Qz4+ODthW3YrMnwwXT1DJjI1NTtDPUM+Pjg7YVt2KzN8MF09QyYyNTU7YlpbY1soY1tlPj4y
XXwwKSsyOD4+Ml0mMTI3XSh3LFEpO3Y9bDtpZigoYVt2XSYxKT09MCl7YVtsKzF8MF09MDthW3Zd
PTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1t2Pj4yXT1jW3g+
PjJdO2Nbdis0Pj4yXT1jW3grND4+Ml07Y1t2Kzg+PjJdPWNbeCs4Pj4yXTtrJCh4fDAsMCwxMik7
ZFAodyl9dz1lO2FbZ109YjBbY1soY1t3Pj4yXXwwKSsxMj4+Ml0mMTI3XShRKXwwO2FbaF09YjBb
Y1soY1t3Pj4yXXwwKSsxNj4+Ml0mMTI3XShRKXwwO3c9ZTtiWltjWyhjW3c+PjJdfDApKzIwPj4y
XSYxMjddKHksUSk7eD1qO2lmKChhW3hdJjEpPT0wKXthW2orMXwwXT0wO2FbeF09MH1lbHNle2Fb
Y1tqKzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW3g+PjJdPWNbej4+Ml07Y1t4KzQ+
PjJdPWNbeis0Pj4yXTtjW3grOD4+Ml09Y1t6Kzg+PjJdO2skKHp8MCwwLDEyKTtkUCh5KTtiWltj
WyhjW3c+PjJdfDApKzI0Pj4yXSYxMjddKEEsUSk7dz1rO2lmKChhW3ddJjEpPT0wKXthW2srMXww
XT0wO2Fbd109MH1lbHNle2FbY1trKzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW3c+
PjJdPWNbQj4+Ml07Y1t3KzQ+PjJdPWNbQis0Pj4yXTtjW3crOD4+Ml09Y1tCKzg+PjJdO2skKEJ8
MCwwLDEyKTtkUChBKTtTPWIwW2NbKGNbZT4+Ml18MCkrMzY+PjJdJjEyN10oUSl8MDtjW20+PjJd
PVM7aT1uO3JldHVybn1lbHNle2lmKChjWzQwNDZdfDApIT0tMSl7Y1tvPj4yXT0xNjE4NDtjW28r
ND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxODQsbyw5Nil9bz0oY1s0MDQ3XXwwKS0xfDA7UT1j
W1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1RPj4yPj4+MDw9bz4+PjApe1Q9Yk8oNCl8MDtV
PVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1QPWNbUSsobzw8Mik+PjJdfDA7aWYoKFB8MCk9PTAp
e1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1UPVA7VT1jW1A+PjJdfDA7aWYo
ZCl7YlpbY1tVKzQ0Pj4yXSYxMjddKEUsVCk7RT1mO0M9Y1tEPj4yXXwwO2FbRV09QyYyNTU7Qz1D
Pj44O2FbRSsxfDBdPUMmMjU1O0M9Qz4+ODthW0UrMnwwXT1DJjI1NTtDPUM+Pjg7YVtFKzN8MF09
QyYyNTU7YlpbY1soY1tQPj4yXXwwKSszMj4+Ml0mMTI3XShGLFQpO0U9bDtpZigoYVtFXSYxKT09
MCl7YVtsKzF8MF09MDthW0VdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQk
KGwsMCk7Y1tFPj4yXT1jW0c+PjJdO2NbRSs0Pj4yXT1jW0crND4+Ml07Y1tFKzg+PjJdPWNbRys4
Pj4yXTtrJChHfDAsMCwxMik7ZFAoRil9ZWxzZXtiWltjW1UrNDA+PjJdJjEyN10oSSxUKTtJPWY7
Qz1jW0g+PjJdfDA7YVtJXT1DJjI1NTtDPUM+Pjg7YVtJKzF8MF09QyYyNTU7Qz1DPj44O2FbSSsy
fDBdPUMmMjU1O0M9Qz4+ODthW0krM3wwXT1DJjI1NTtiWltjWyhjW1A+PjJdfDApKzI4Pj4yXSYx
MjddKEosVCk7ST1sO2lmKChhW0ldJjEpPT0wKXthW2wrMXwwXT0wO2FbSV09MH1lbHNle2FbY1ts
Kzg+PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9ZCQobCwwKTtjW0k+PjJdPWNbSz4+Ml07Y1tJKzQ+PjJd
PWNbSys0Pj4yXTtjW0krOD4+Ml09Y1tLKzg+PjJdO2skKEt8MCwwLDEyKTtkUChKKX1KPVA7YVtn
XT1iMFtjWyhjW0o+PjJdfDApKzEyPj4yXSYxMjddKFQpfDA7YVtoXT1iMFtjWyhjW0o+PjJdfDAp
KzE2Pj4yXSYxMjddKFQpfDA7Sj1QO2JaW2NbKGNbSj4+Ml18MCkrMjA+PjJdJjEyN10oTCxUKTto
PWo7aWYoKGFbaF0mMSk9PTApe2FbaisxfDBdPTA7YVtoXT0wfWVsc2V7YVtjW2orOD4+Ml18MF09
MDtjW2orND4+Ml09MH1kJChqLDApO2NbaD4+Ml09Y1tNPj4yXTtjW2grND4+Ml09Y1tNKzQ+PjJd
O2NbaCs4Pj4yXT1jW00rOD4+Ml07ayQoTXwwLDAsMTIpO2RQKEwpO2JaW2NbKGNbSj4+Ml18MCkr
MjQ+PjJdJjEyN10oTixUKTtKPWs7aWYoKGFbSl0mMSk9PTApe2FbaysxfDBdPTA7YVtKXT0wfWVs
c2V7YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1kJChrLDApO2NbSj4+Ml09Y1tPPj4yXTtj
W0orND4+Ml09Y1tPKzQ+PjJdO2NbSis4Pj4yXT1jW08rOD4+Ml07ayQoT3wwLDAsMTIpO2RQKE4p
O1M9YjBbY1soY1tQPj4yXXwwKSszNj4+Ml0mMTI3XShUKXwwO2NbbT4+Ml09UztpPW47cmV0dXJu
fX1mdW5jdGlvbiBoNihkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscil7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1v
fDA7cD1wfDA7cT1xfDA7cj1yfDA7dmFyIHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxP
PTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFh
PTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0w
LGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxh
eD0wLGF5PTA7Y1tmPj4yXT1kO3M9ajt0PXE7dT1xKzF8MDt2PXErOHwwO3c9cSs0fDA7cT1wO3g9
KGcmNTEyfDApPT0wO3k9cCsxfDA7ej1wKzR8MDtBPXArOHwwO3A9ais4fDA7Qj0ocnwwKT4wO0M9
bztEPW8rMXwwO0U9bys4fDA7Rj1vKzR8MDtvPS1yfDA7Rz1oO2g9MDt3aGlsZSgxKXtMMTU4MDpk
b3tzd2l0Y2goYVtsK2h8MF18MCl7Y2FzZSAwOntjW2U+PjJdPWNbZj4+Ml07SD1HO2JyZWFrfTtj
YXNlIDE6e2NbZT4+Ml09Y1tmPj4yXTtJPWJfW2NbKGNbcz4+Ml18MCkrMjg+PjJdJjMxXShqLDMy
KXwwO0o9Y1tmPj4yXXwwO2NbZj4+Ml09SisxO2FbSl09STtIPUc7YnJlYWt9O2Nhc2UgMzp7ST1h
W3RdfDA7Sj1JJjI1NTtpZigoSiYxfDApPT0wKXtLPUo+Pj4xfWVsc2V7Sz1jW3c+PjJdfDB9aWYo
KEt8MCk9PTApe0g9RzticmVhayBMMTU4MH1pZigoSSYxKT09MCl7TD11fWVsc2V7TD1jW3Y+PjJd
fDB9ST1hW0xdfDA7Sj1jW2Y+PjJdfDA7Y1tmPj4yXT1KKzE7YVtKXT1JO0g9RzticmVha307Y2Fz
ZSAyOntJPWFbcV18MDtKPUkmMjU1O009KEomMXwwKT09MDtpZihNKXtOPUo+Pj4xfWVsc2V7Tj1j
W3o+PjJdfDB9aWYoKE58MCk9PTB8eCl7SD1HO2JyZWFrIEwxNTgwfWlmKChJJjEpPT0wKXtPPXk7
UD15fWVsc2V7ST1jW0E+PjJdfDA7Tz1JO1A9SX1pZihNKXtRPUo+Pj4xfWVsc2V7UT1jW3o+PjJd
fDB9Sj1PK1F8MDtNPWNbZj4+Ml18MDtpZigoUHwwKT09KEp8MCkpe1I9TX1lbHNle0k9UDtTPU07
d2hpbGUoMSl7YVtTXT1hW0ldfDA7TT1JKzF8MDtUPVMrMXwwO2lmKChNfDApPT0oSnwwKSl7Uj1U
O2JyZWFrfWVsc2V7ST1NO1M9VH19fWNbZj4+Ml09UjtIPUc7YnJlYWt9O2Nhc2UgNDp7Uz1jW2Y+
PjJdfDA7ST1rP0crMXwwOkc7Sj1JO3doaWxlKDEpe2lmKEo+Pj4wPj1pPj4+MCl7YnJlYWt9VD1h
W0pdfDA7aWYoVDw8MjQ+PjI0PD0tMSl7YnJlYWt9aWYoKGJbKGNbcD4+Ml18MCkrKFQ8PDI0Pj4y
NDw8MSk+PjFdJjIwNDgpPT0wKXticmVha31lbHNle0o9SisxfDB9fVQ9SjtpZihCKXtpZihKPj4+
MD5JPj4+MCl7TT1JKygtVHwwKXwwO1Q9TT4+PjA8bz4+PjA/bzpNO009VCtyfDA7VT1KO1Y9cjtX
PVM7d2hpbGUoMSl7WD1VLTF8MDtZPWFbWF18MDtjW2Y+PjJdPVcrMTthW1ddPVk7WT1WLTF8MDta
PShZfDApPjA7aWYoIShYPj4+MD5JPj4+MCZaKSl7YnJlYWt9VT1YO1Y9WTtXPWNbZj4+Ml18MH1X
PUorVHwwO2lmKFope189TTskPVc7YWE9MTM1NH1lbHNle2FiPTA7YWM9TTthZD1XfX1lbHNle189
cjskPUo7YWE9MTM1NH1pZigoYWF8MCk9PTEzNTQpe2FhPTA7YWI9Yl9bY1soY1tzPj4yXXwwKSsy
OD4+Ml0mMzFdKGosNDgpfDA7YWM9XzthZD0kfVc9Y1tmPj4yXXwwO2NbZj4+Ml09VysxO2lmKChh
Y3wwKT4wKXtWPWFjO1U9Vzt3aGlsZSgxKXthW1VdPWFiO1k9Vi0xfDA7WD1jW2Y+PjJdfDA7Y1tm
Pj4yXT1YKzE7aWYoKFl8MCk+MCl7Vj1ZO1U9WH1lbHNle2FlPVg7YnJlYWt9fX1lbHNle2FlPVd9
YVthZV09bTthZj1hZH1lbHNle2FmPUp9aWYoKGFmfDApPT0oSXwwKSl7VT1iX1tjWyhjW3M+PjJd
fDApKzI4Pj4yXSYzMV0oaiw0OCl8MDtWPWNbZj4+Ml18MDtjW2Y+PjJdPVYrMTthW1ZdPVV9ZWxz
ZXtVPWFbQ118MDtWPVUmMjU1O2lmKChWJjF8MCk9PTApe2FnPVY+Pj4xfWVsc2V7YWc9Y1tGPj4y
XXwwfWlmKChhZ3wwKT09MCl7YWg9YWY7YWk9MDthaj0wO2FrPS0xfWVsc2V7aWYoKFUmMSk9PTAp
e2FsPUR9ZWxzZXthbD1jW0U+PjJdfDB9YWg9YWY7YWk9MDthaj0wO2FrPWFbYWxdfDB9d2hpbGUo
MSl7ZG97aWYoKGFpfDApPT0oYWt8MCkpe1U9Y1tmPj4yXXwwO2NbZj4+Ml09VSsxO2FbVV09bjtV
PWFqKzF8MDtWPWFbQ118MDtNPVYmMjU1O2lmKChNJjF8MCk9PTApe2FtPU0+Pj4xfWVsc2V7YW09
Y1tGPj4yXXwwfWlmKFU+Pj4wPj1hbT4+PjApe2FuPWFrO2FvPVU7YXA9MDticmVha31NPShWJjEp
PT0wO2lmKE0pe2FxPUR9ZWxzZXthcT1jW0U+PjJdfDB9aWYoKGFbYXErVXwwXXwwKT09MTI3KXth
bj0tMTthbz1VO2FwPTA7YnJlYWt9aWYoTSl7YXI9RH1lbHNle2FyPWNbRT4+Ml18MH1hbj1hW2Fy
K1V8MF18MDthbz1VO2FwPTB9ZWxzZXthbj1hazthbz1hajthcD1haX19d2hpbGUoMCk7VT1haC0x
fDA7TT1hW1VdfDA7Vj1jW2Y+PjJdfDA7Y1tmPj4yXT1WKzE7YVtWXT1NO2lmKChVfDApPT0oSXww
KSl7YnJlYWt9ZWxzZXthaD1VO2FpPWFwKzF8MDthaj1hbzthaz1hbn19fUo9Y1tmPj4yXXwwO2lm
KChTfDApPT0oSnwwKSl7SD1JO2JyZWFrIEwxNTgwfVc9Si0xfDA7aWYoUz4+PjA8Vz4+PjApe2Fz
PVM7YXQ9V31lbHNle0g9STticmVhayBMMTU4MH13aGlsZSgxKXtXPWFbYXNdfDA7YVthc109YVth
dF18MDthW2F0XT1XO1c9YXMrMXwwO0o9YXQtMXwwO2lmKFc+Pj4wPEo+Pj4wKXthcz1XO2F0PUp9
ZWxzZXtIPUk7YnJlYWt9fWJyZWFrfTtkZWZhdWx0OntIPUd9fX13aGlsZSgwKTtJPWgrMXwwO2lm
KEk+Pj4wPDQpe0c9SDtoPUl9ZWxzZXticmVha319aD1hW3RdfDA7dD1oJjI1NTtIPSh0JjF8MCk9
PTA7aWYoSCl7YXU9dD4+PjF9ZWxzZXthdT1jW3c+PjJdfDB9aWYoYXU+Pj4wPjEpe2lmKChoJjEp
PT0wKXthdj11O2F3PXV9ZWxzZXt1PWNbdj4+Ml18MDthdj11O2F3PXV9aWYoSCl7YXg9dD4+PjF9
ZWxzZXtheD1jW3c+PjJdfDB9dz1hditheHwwO2F4PWNbZj4+Ml18MDthdj1hdysxfDA7aWYoKGF2
fDApPT0od3wwKSl7YXk9YXh9ZWxzZXthdz1heDtheD1hdjt3aGlsZSgxKXthW2F3XT1hW2F4XXww
O2F2PWF3KzF8MDt0PWF4KzF8MDtpZigodHwwKT09KHd8MCkpe2F5PWF2O2JyZWFrfWVsc2V7YXc9
YXY7YXg9dH19fWNbZj4+Ml09YXl9c3dpdGNoKGcmMTc2fDApe2Nhc2UgMTY6e3JldHVybn07Y2Fz
ZSAzMjp7Y1tlPj4yXT1jW2Y+PjJdO3JldHVybn07ZGVmYXVsdDp7Y1tlPj4yXT1kO3JldHVybn19
fWZ1bmN0aW9uIGg3KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGg4KGEp
e2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGg5KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9
ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAs
RT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxT
PTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTA7ZT1p
O2k9aSs2NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1l
fDA7bT1lKzE2fDA7bj1lKzI0fDA7bz1lKzMyfDA7cD1lKzQwfDA7cT1lKzQ4fDA7cj1xO3M9aTtp
PWkrMTJ8MDtpPWkrNz4+Mzw8Mzt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7
aT1pKzR8MDtpPWkrNz4+Mzw8Mzt4PWk7aT1pKzEwMHwwO2k9aSs3Pj4zPDwzO3k9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2VqKG0saCk7Qj1tfDA7Qz1jW0I+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJd
PTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVd
fDApLTF8MDtEPWNbQys4Pj4yXXwwO2Rve2lmKChjW0MrMTI+PjJdfDApLUQ+PjI+Pj4wPmw+Pj4w
KXtFPWNbRCsobDw8Mik+PjJdfDA7aWYoKEV8MCk9PTApe2JyZWFrfUY9RTtHPWs7SD1rO0k9YVtI
XXwwO0o9SSYyNTU7aWYoKEomMXwwKT09MCl7Sz1KPj4+MX1lbHNle0s9Y1trKzQ+PjJdfDB9aWYo
KEt8MCk9PTApe0w9MH1lbHNle2lmKChJJjEpPT0wKXtNPUcrMXwwfWVsc2V7TT1jW2srOD4+Ml18
MH1JPWFbTV18MDtMPUk8PDI0Pj4yND09KGJfW2NbKGNbRT4+Ml18MCkrMjg+PjJdJjMxXShGLDQ1
KXwwKTw8MjQ+PjI0fWskKHJ8MCwwLDEyKTtrJCh0fDAsMCwxMik7ayQodnwwLDAsMTIpO2g1KGcs
TCxtLG4sbyxwLHEscyx1LHcpO0U9eHwwO0k9YVtIXXwwO0o9SSYyNTU7Tj0oSiYxfDApPT0wO2lm
KE4pe089Sj4+PjF9ZWxzZXtPPWNbays0Pj4yXXwwfVA9Y1t3Pj4yXXwwO2lmKChPfDApPihQfDAp
KXtpZihOKXtRPUo+Pj4xfWVsc2V7UT1jW2srND4+Ml18MH1KPWRbdl18MDtpZigoSiYxfDApPT0w
KXtSPUo+Pj4xfWVsc2V7Uj1jW3UrND4+Ml18MH1KPWRbdF18MDtpZigoSiYxfDApPT0wKXtTPUo+
Pj4xfWVsc2V7Uz1jW3MrND4+Ml18MH1UPShRLVA8PDF8MSkrUitTfDB9ZWxzZXtKPWRbdl18MDtp
ZigoSiYxfDApPT0wKXtVPUo+Pj4xfWVsc2V7VT1jW3UrND4+Ml18MH1KPWRbdF18MDtpZigoSiYx
fDApPT0wKXtWPUo+Pj4xfWVsc2V7Vj1jW3MrND4+Ml18MH1UPVUrMitWfDB9Sj1UK1B8MDtkb3tp
ZihKPj4+MD4xMDApe049a0ooSil8MDtpZigoTnwwKSE9MCl7Vz1OO1g9TjtZPUk7YnJlYWt9a1go
KTtXPTA7WD0wO1k9YVtIXXwwfWVsc2V7Vz1FO1g9MDtZPUl9fXdoaWxlKDApO2lmKChZJjEpPT0w
KXtaPUcrMXwwO189RysxfDB9ZWxzZXtJPWNbays4Pj4yXXwwO1o9STtfPUl9ST1ZJjI1NTtpZigo
SSYxfDApPT0wKXskPUk+Pj4xfWVsc2V7JD1jW2srND4+Ml18MH1oNihXLHkseixjW2grND4+Ml18
MCxfLForJHwwLEYsTCxuLGFbb118MCxhW3BdfDAscSxzLHUsUCk7Y1tBPj4yXT1jW2Y+PjJdO2Y5
KGIsQSxXLGNbeT4+Ml18MCxjW3o+PjJdfDAsaCxqKTtpZigoWHwwKT09MCl7ZFAodSk7ZFAocyk7
ZFAocSk7YWE9Y1tCPj4yXXwwO2FiPWFhfDA7YWM9ZHooYWIpfDA7aT1lO3JldHVybn1rSyhYKTtk
UCh1KTtkUChzKTtkUChxKTthYT1jW0I+PjJdfDA7YWI9YWF8MDthYz1keihhYil8MDtpPWU7cmV0
dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBp
YShiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPSts
O3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxO
PTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrNTc2fDA7
bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWV8MDtuPWUrMTIw
fDA7bz1lKzUyOHwwO3A9ZSs1MzZ8MDtxPWUrNTQ0fDA7cj1lKzU1MnwwO3M9ZSs1NjB8MDt0PXM7
dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eD13
O3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrNDAwfDA7QT1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RD1l
KzE2fDA7Y1tuPj4yXT1EO0U9ZSsxMjh8MDtGPWFaKER8MCwxMDAsMTM2MCwoRD1pLGk9aSs4fDAs
aFtEPj4zXT1sLEQpfDApfDA7aT1EO2Rve2lmKEY+Pj4wPjk5KXtkb3tpZigoYVsxNjI2NF18MCk9
PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO0c9Z2gobixjWzI5NThdfDAsMTM2MCwoRD1pLGk9aSs4fDAsaFtEPj4zXT1sLEQpfDAp
fDA7aT1EO0g9Y1tuPj4yXXwwO2lmKChIfDApPT0wKXtrWCgpO0k9Y1tuPj4yXXwwfWVsc2V7ST1I
fUg9a0ooRzw8Mil8MDtKPUg7aWYoKEh8MCkhPTApe0s9SjtMPUc7TT1JO049SjticmVha31rWCgp
O0s9SjtMPUc7TT1JO049Sn1lbHNle0s9RTtMPUY7TT0wO049MH19d2hpbGUoMCk7ZWoobyxqKTtG
PW98MDtFPWNbRj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+
PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO0k9Y1tF
Kzg+PjJdfDA7ZG97aWYoKGNbRSsxMj4+Ml18MCktST4+Mj4+PjA+bT4+PjApe0Q9Y1tJKyhtPDwy
KT4+Ml18MDtpZigoRHwwKT09MCl7YnJlYWt9Sj1EO0c9Y1tuPj4yXXwwO0g9RytMfDA7Tz1jWyhj
W0Q+PjJdfDApKzQ4Pj4yXXwwO2NhW08mMTVdKEosRyxILEspfDA7aWYoKEx8MCk9PTApe1A9MH1l
bHNle1A9KGFbY1tuPj4yXXwwXXwwKT09NDV9ayQodHwwLDAsMTIpO2skKHZ8MCwwLDEyKTtrJCh4
fDAsMCwxMik7aWIoZyxQLG8scCxxLHIscyx1LHcseSk7SD16fDA7Rz1jW3k+PjJdfDA7aWYoKEx8
MCk+KEd8MCkpe089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1E9Tz4+PjF9ZWxzZXtRPWNbdys0Pj4y
XXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1I9Tz4+PjF9ZWxzZXtSPWNbdSs0Pj4yXXwwfVM9
KEwtRzw8MXwxKStRK1J8MH1lbHNle089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1Q9Tz4+PjF9ZWxz
ZXtUPWNbdys0Pj4yXXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1U9Tz4+PjF9ZWxzZXtVPWNb
dSs0Pj4yXXwwfVM9VCsyK1V8MH1PPVMrR3wwO2Rve2lmKE8+Pj4wPjEwMCl7RD1rSihPPDwyKXww
O1Y9RDtpZigoRHwwKSE9MCl7Vz1WO1g9VjticmVha31rWCgpO1c9VjtYPVZ9ZWxzZXtXPUg7WD0w
fX13aGlsZSgwKTtpYyhXLEEsQixjW2orND4+Ml18MCxLLEsrKEw8PDIpfDAsSixQLHAsY1txPj4y
XXwwLGNbcj4+Ml18MCxzLHUsdyxHKTtjW0M+PjJdPWNbZj4+Ml07Z3EoYixDLFcsY1tBPj4yXXww
LGNbQj4+Ml18MCxqLGspO2lmKChYfDApIT0wKXtrSyhYKX1lZSh3KTtlZSh1KTtkUChzKTtIPWNb
Rj4+Ml18MDtkeihIKXwwO2lmKChOfDApIT0wKXtrSyhOKX1pZigoTXwwKT09MCl7aT1lO3JldHVy
bn1rSyhNKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYs
MTM0KX1mdW5jdGlvbiBpYihiLGQsZSxmLGcsaCxqLGssbCxtKXtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9
MCxVPTA7bj1pO2k9aSs0MHwwO289bnwwO3A9bisxNnwwO3E9biszMnwwO3I9cTtzPWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7dD1zO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7eD13O3k9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PXk7QT1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0c9RjtIPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztJPUg7Sj1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0s9SjtMPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7TT1MO049aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8MztPPU47UD1jW2U+PjJdfDA7aWYoYil7aWYoKGNbNDA0MF18MCkhPS0x
KXtjW3A+PjJdPTE2MTYwO2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNjE2MCxwLDk2KX1w
PShjWzQwNDFdfDApLTF8MDtiPWNbUCs4Pj4yXXwwO2lmKChjW1ArMTI+PjJdfDApLWI+PjI+Pj4w
PD1wPj4+MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQpfWU9Y1tiKyhwPDwy
KT4+Ml18MDtpZigoZXwwKT09MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQp
fVE9ZTtSPWNbZT4+Ml18MDtpZihkKXtiWltjW1IrNDQ+PjJdJjEyN10ocixRKTtyPWY7Qz1jW3E+
PjJdfDA7YVtyXT1DJjI1NTtDPUM+Pjg7YVtyKzF8MF09QyYyNTU7Qz1DPj44O2FbcisyfDBdPUMm
MjU1O0M9Qz4+ODthW3IrM3wwXT1DJjI1NTtiWltjWyhjW2U+PjJdfDApKzMyPj4yXSYxMjddKHMs
USk7cj1sO2lmKChhW3JdJjEpPT0wKXtjW2wrND4+Ml09MDthW3JdPTB9ZWxzZXtjW2NbbCs4Pj4y
XT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2Nbcj4+Ml09Y1t0Pj4yXTtjW3IrND4+Ml09Y1t0
KzQ+PjJdO2Nbcis4Pj4yXT1jW3QrOD4+Ml07ayQodHwwLDAsMTIpO2VlKHMpfWVsc2V7YlpbY1tS
KzQwPj4yXSYxMjddKHYsUSk7dj1mO0M9Y1t1Pj4yXXwwO2Fbdl09QyYyNTU7Qz1DPj44O2Fbdisx
fDBdPUMmMjU1O0M9Qz4+ODthW3YrMnwwXT1DJjI1NTtDPUM+Pjg7YVt2KzN8MF09QyYyNTU7Ylpb
Y1soY1tlPj4yXXwwKSsyOD4+Ml0mMTI3XSh3LFEpO3Y9bDtpZigoYVt2XSYxKT09MCl7Y1tsKzQ+
PjJdPTA7YVt2XT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtj
W3Y+PjJdPWNbeD4+Ml07Y1t2KzQ+PjJdPWNbeCs0Pj4yXTtjW3YrOD4+Ml09Y1t4Kzg+PjJdO2sk
KHh8MCwwLDEyKTtlZSh3KX13PWU7Y1tnPj4yXT1iMFtjWyhjW3c+PjJdfDApKzEyPj4yXSYxMjdd
KFEpfDA7Y1toPj4yXT1iMFtjWyhjW3c+PjJdfDApKzE2Pj4yXSYxMjddKFEpfDA7YlpbY1soY1tl
Pj4yXXwwKSsyMD4+Ml0mMTI3XSh5LFEpO3g9ajtpZigoYVt4XSYxKT09MCl7YVtqKzF8MF09MDth
W3hdPTB9ZWxzZXthW2Nbais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1t4Pj4yXT1j
W3o+PjJdO2NbeCs0Pj4yXT1jW3orND4+Ml07Y1t4Kzg+PjJdPWNbeis4Pj4yXTtrJCh6fDAsMCwx
Mik7ZFAoeSk7YlpbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShBLFEpO2U9aztpZigoYVtlXSYx
KT09MCl7Y1trKzQ+PjJdPTA7YVtlXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJd
PTB9ZXooaywwKTtjW2U+PjJdPWNbQj4+Ml07Y1tlKzQ+PjJdPWNbQis0Pj4yXTtjW2UrOD4+Ml09
Y1tCKzg+PjJdO2skKEJ8MCwwLDEyKTtlZShBKTtTPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEy
N10oUSl8MDtjW20+PjJdPVM7aT1uO3JldHVybn1lbHNle2lmKChjWzQwNDJdfDApIT0tMSl7Y1tv
Pj4yXT0xNjE2ODtjW28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxNjgsbyw5Nil9bz0oY1s0
MDQzXXwwKS0xfDA7UT1jW1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1RPj4yPj4+MDw9bz4+
PjApe1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1QPWNbUSsobzw8Mik+PjJd
fDA7aWYoKFB8MCk9PTApe1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1UPVA7
VT1jW1A+PjJdfDA7aWYoZCl7YlpbY1tVKzQ0Pj4yXSYxMjddKEUsVCk7RT1mO0M9Y1tEPj4yXXww
O2FbRV09QyYyNTU7Qz1DPj44O2FbRSsxfDBdPUMmMjU1O0M9Qz4+ODthW0UrMnwwXT1DJjI1NTtD
PUM+Pjg7YVtFKzN8MF09QyYyNTU7YlpbY1soY1tQPj4yXXwwKSszMj4+Ml0mMTI3XShGLFQpO0U9
bDtpZigoYVtFXSYxKT09MCl7Y1tsKzQ+PjJdPTA7YVtFXT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJd
PTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW0U+PjJdPWNbRz4+Ml07Y1tFKzQ+PjJdPWNbRys0Pj4y
XTtjW0UrOD4+Ml09Y1tHKzg+PjJdO2skKEd8MCwwLDEyKTtlZShGKX1lbHNle2JaW2NbVSs0MD4+
Ml0mMTI3XShJLFQpO0k9ZjtDPWNbSD4+Ml18MDthW0ldPUMmMjU1O0M9Qz4+ODthW0krMXwwXT1D
JjI1NTtDPUM+Pjg7YVtJKzJ8MF09QyYyNTU7Qz1DPj44O2FbSSszfDBdPUMmMjU1O2JaW2NbKGNb
UD4+Ml18MCkrMjg+PjJdJjEyN10oSixUKTtJPWw7aWYoKGFbSV0mMSk9PTApe2NbbCs0Pj4yXT0w
O2FbSV09MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1tJPj4y
XT1jW0s+PjJdO2NbSSs0Pj4yXT1jW0srND4+Ml07Y1tJKzg+PjJdPWNbSys4Pj4yXTtrJChLfDAs
MCwxMik7ZWUoSil9Sj1QO2NbZz4+Ml09YjBbY1soY1tKPj4yXXwwKSsxMj4+Ml0mMTI3XShUKXww
O2NbaD4+Ml09YjBbY1soY1tKPj4yXXwwKSsxNj4+Ml0mMTI3XShUKXwwO2JaW2NbKGNbUD4+Ml18
MCkrMjA+PjJdJjEyN10oTCxUKTtoPWo7aWYoKGFbaF0mMSk9PTApe2FbaisxfDBdPTA7YVtoXT0w
fWVsc2V7YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbaD4+Ml09Y1tNPj4y
XTtjW2grND4+Ml09Y1tNKzQ+PjJdO2NbaCs4Pj4yXT1jW00rOD4+Ml07ayQoTXwwLDAsMTIpO2RQ
KEwpO2JaW2NbKGNbUD4+Ml18MCkrMjQ+PjJdJjEyN10oTixUKTtQPWs7aWYoKGFbUF0mMSk9PTAp
e2Nbays0Pj4yXT0wO2FbUF09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6
KGssMCk7Y1tQPj4yXT1jW08+PjJdO2NbUCs0Pj4yXT1jW08rND4+Ml07Y1tQKzg+PjJdPWNbTys4
Pj4yXTtrJChPfDAsMCwxMik7ZWUoTik7Uz1iMFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYxMjddKFQp
fDA7Y1ttPj4yXT1TO2k9bjtyZXR1cm59fWZ1bmN0aW9uIGljKGIsZCxlLGYsZyxoLGksaixrLGws
bSxuLG8scCxxKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8
MDtrPWt8MDtsPWx8MDttPW18MDtuPW58MDtvPW98MDtwPXB8MDtxPXF8MDt2YXIgcj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0w
LFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFn
PTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0w
LGFzPTAsYXQ9MCxhdT0wLGF2PTAsYXc9MDtjW2U+PjJdPWI7cj1pO3M9cDt0PXArNHwwO3U9cCs4
fDA7cD1vO3Y9KGYmNTEyfDApPT0wO3c9bys0fDA7eD1vKzh8MDtvPWk7eT0ocXwwKT4wO3o9bjtB
PW4rMXwwO0I9bis4fDA7Qz1uKzR8MDtuPWc7Zz0wO3doaWxlKDEpe0wxOTAxOmRve3N3aXRjaChh
W2srZ3wwXXwwKXtjYXNlIDA6e2NbZD4+Ml09Y1tlPj4yXTtEPW47YnJlYWt9O2Nhc2UgMTp7Y1tk
Pj4yXT1jW2U+PjJdO0U9Yl9bY1soY1tyPj4yXXwwKSs0ND4+Ml0mMzFdKGksMzIpfDA7Rj1jW2U+
PjJdfDA7Y1tlPj4yXT1GKzQ7Y1tGPj4yXT1FO0Q9bjticmVha307Y2FzZSAzOntFPWFbc118MDtG
PUUmMjU1O2lmKChGJjF8MCk9PTApe0c9Rj4+PjF9ZWxzZXtHPWNbdD4+Ml18MH1pZigoR3wwKT09
MCl7RD1uO2JyZWFrIEwxOTAxfWlmKChFJjEpPT0wKXtIPXR9ZWxzZXtIPWNbdT4+Ml18MH1FPWNb
SD4+Ml18MDtGPWNbZT4+Ml18MDtjW2U+PjJdPUYrNDtjW0Y+PjJdPUU7RD1uO2JyZWFrfTtjYXNl
IDI6e0U9YVtwXXwwO0Y9RSYyNTU7ST0oRiYxfDApPT0wO2lmKEkpe0o9Rj4+PjF9ZWxzZXtKPWNb
dz4+Ml18MH1pZigoSnwwKT09MHx2KXtEPW47YnJlYWsgTDE5MDF9aWYoKEUmMSk9PTApe0s9dztM
PXc7TT13fWVsc2V7RT1jW3g+PjJdfDA7Sz1FO0w9RTtNPUV9aWYoSSl7Tj1GPj4+MX1lbHNle049
Y1t3Pj4yXXwwfUY9SysoTjw8Mil8MDtJPWNbZT4+Ml18MDtpZigoTHwwKT09KEZ8MCkpe089SX1l
bHNle0U9KEsrKE4tMTw8MikrKC1NfDApfDApPj4+MjtQPUw7UT1JO3doaWxlKDEpe2NbUT4+Ml09
Y1tQPj4yXTtSPVArNHwwO2lmKChSfDApPT0oRnwwKSl7YnJlYWt9UD1SO1E9USs0fDB9Tz1JKyhF
KzE8PDIpfDB9Y1tlPj4yXT1PO0Q9bjticmVha307Y2FzZSA0OntRPWNbZT4+Ml18MDtQPWo/bis0
fDA6bjtGPVA7d2hpbGUoMSl7aWYoRj4+PjA+PWg+Pj4wKXticmVha31pZihiMVtjWyhjW28+PjJd
fDApKzEyPj4yXSY2M10oaSwyMDQ4LGNbRj4+Ml18MCl8MCl7Rj1GKzR8MH1lbHNle2JyZWFrfX1p
Zih5KXtpZihGPj4+MD5QPj4+MCl7RT1GO0k9cTtkb3tFPUUtNHwwO1I9Y1tFPj4yXXwwO1M9Y1tl
Pj4yXXwwO2NbZT4+Ml09Uys0O2NbUz4+Ml09UjtJPUktMXwwO1Q9KEl8MCk+MDt9d2hpbGUoRT4+
PjA+UD4+PjAmVCk7aWYoVCl7VT1JO1Y9RTtXPTE2MzB9ZWxzZXtYPTA7WT1JO1o9RX19ZWxzZXtV
PXE7Vj1GO1c9MTYzMH1pZigoV3wwKT09MTYzMCl7Vz0wO1g9Yl9bY1soY1tyPj4yXXwwKSs0ND4+
Ml0mMzFdKGksNDgpfDA7WT1VO1o9Vn1SPWNbZT4+Ml18MDtjW2U+PjJdPVIrNDtpZigoWXwwKT4w
KXtTPVk7Xz1SO3doaWxlKDEpe2NbXz4+Ml09WDskPVMtMXwwO2FhPWNbZT4+Ml18MDtjW2U+PjJd
PWFhKzQ7aWYoKCR8MCk+MCl7Uz0kO189YWF9ZWxzZXthYj1hYTticmVha319fWVsc2V7YWI9Un1j
W2FiPj4yXT1sO2FjPVp9ZWxzZXthYz1GfWlmKChhY3wwKT09KFB8MCkpe189Yl9bY1soY1tyPj4y
XXwwKSs0ND4+Ml0mMzFdKGksNDgpfDA7Uz1jW2U+PjJdfDA7Y1tlPj4yXT1TKzQ7Y1tTPj4yXT1f
fWVsc2V7Xz1hW3pdfDA7Uz1fJjI1NTtpZigoUyYxfDApPT0wKXthZD1TPj4+MX1lbHNle2FkPWNb
Qz4+Ml18MH1pZigoYWR8MCk9PTApe2FlPWFjO2FmPTA7YWc9MDthaD0tMX1lbHNle2lmKChfJjEp
PT0wKXthaT1BfWVsc2V7YWk9Y1tCPj4yXXwwfWFlPWFjO2FmPTA7YWc9MDthaD1hW2FpXXwwfXdo
aWxlKDEpe2Rve2lmKChhZnwwKT09KGFofDApKXtfPWNbZT4+Ml18MDtjW2U+PjJdPV8rNDtjW18+
PjJdPW07Xz1hZysxfDA7Uz1hW3pdfDA7RT1TJjI1NTtpZigoRSYxfDApPT0wKXthaj1FPj4+MX1l
bHNle2FqPWNbQz4+Ml18MH1pZihfPj4+MD49YWo+Pj4wKXthaz1haDthbD1fO2FtPTA7YnJlYWt9
RT0oUyYxKT09MDtpZihFKXthbj1BfWVsc2V7YW49Y1tCPj4yXXwwfWlmKChhW2FuK198MF18MCk9
PTEyNyl7YWs9LTE7YWw9XzthbT0wO2JyZWFrfWlmKEUpe2FvPUF9ZWxzZXthbz1jW0I+PjJdfDB9
YWs9YVthbytffDBdfDA7YWw9XzthbT0wfWVsc2V7YWs9YWg7YWw9YWc7YW09YWZ9fXdoaWxlKDAp
O189YWUtNHwwO0U9Y1tfPj4yXXwwO1M9Y1tlPj4yXXwwO2NbZT4+Ml09Uys0O2NbUz4+Ml09RTtp
ZigoX3wwKT09KFB8MCkpe2JyZWFrfWVsc2V7YWU9XzthZj1hbSsxfDA7YWc9YWw7YWg9YWt9fX1G
PWNbZT4+Ml18MDtpZigoUXwwKT09KEZ8MCkpe0Q9UDticmVhayBMMTkwMX1SPUYtNHwwO2lmKFE+
Pj4wPFI+Pj4wKXthcD1RO2FxPVJ9ZWxzZXtEPVA7YnJlYWsgTDE5MDF9d2hpbGUoMSl7Uj1jW2Fw
Pj4yXXwwO2NbYXA+PjJdPWNbYXE+PjJdO2NbYXE+PjJdPVI7Uj1hcCs0fDA7Rj1hcS00fDA7aWYo
Uj4+PjA8Rj4+PjApe2FwPVI7YXE9Rn1lbHNle0Q9UDticmVha319YnJlYWt9O2RlZmF1bHQ6e0Q9
bn19fXdoaWxlKDApO1A9ZysxfDA7aWYoUD4+PjA8NCl7bj1EO2c9UH1lbHNle2JyZWFrfX1nPWFb
c118MDtzPWcmMjU1O0Q9KHMmMXwwKT09MDtpZihEKXthcj1zPj4+MX1lbHNle2FyPWNbdD4+Ml18
MH1pZihhcj4+PjA+MSl7aWYoKGcmMSk9PTApe2FzPXQ7YXQ9dDthdT10fWVsc2V7Zz1jW3U+PjJd
fDA7YXM9ZzthdD1nO2F1PWd9aWYoRCl7YXY9cz4+PjF9ZWxzZXthdj1jW3Q+PjJdfDB9dD1hcyso
YXY8PDIpfDA7cz1jW2U+PjJdfDA7RD1hdCs0fDA7aWYoKER8MCk9PSh0fDApKXthdz1zfWVsc2V7
YXQ9KChhcysoYXYtMjw8MikrKC1hdXwwKXwwKT4+PjIpKzF8MDthdT1zO2F2PUQ7d2hpbGUoMSl7
Y1thdT4+Ml09Y1thdj4+Ml07RD1hdis0fDA7aWYoKER8MCk9PSh0fDApKXticmVha31lbHNle2F1
PWF1KzR8MDthdj1EfX1hdz1zKyhhdDw8Mil8MH1jW2U+PjJdPWF3fXN3aXRjaChmJjE3NnwwKXtj
YXNlIDMyOntjW2Q+PjJdPWNbZT4+Ml07cmV0dXJufTtjYXNlIDE2OntyZXR1cm59O2RlZmF1bHQ6
e2NbZD4+Ml09YjtyZXR1cm59fX1mdW5jdGlvbiBpZChhKXthPWF8MDtkZShhfDApO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBpZShhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBpZyhiLGQs
ZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MDtpZigoYVtkXSYxKT09MCl7Zj1kKzF8MH1lbHNl
e2Y9Y1tkKzg+PjJdfDB9ZD1hOChmfDAsMjAwKXwwO3JldHVybiBkPj4+KCgoZHwwKSE9LTF8MCk+
Pj4wKXwwfWZ1bmN0aW9uIGloKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAs
Vz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTA7ZT1pO2k9aSs2NHwwO2w9Zjtm
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2fDA7bj1l
KzI0fDA7bz1lKzMyfDA7cD1lKzQwfDA7cT1lKzQ4fDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8Mzt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzR8MDtpPWkrNz4+
Mzw8Mzt4PWk7aT1pKzQwMHwwO3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO0E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2VqKG0saCk7Qj1tfDA7Qz1jW0I+PjJd
fDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+
Ml09MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8MDtEPWNbQys4Pj4yXXwwO2Rve2lm
KChjW0MrMTI+PjJdfDApLUQ+PjI+Pj4wPmw+Pj4wKXtFPWNbRCsobDw8Mik+PjJdfDA7aWYoKEV8
MCk9PTApe2JyZWFrfUY9RTtHPWs7SD1hW0ddfDA7ST1IJjI1NTtpZigoSSYxfDApPT0wKXtKPUk+
Pj4xfWVsc2V7Sj1jW2srND4+Ml18MH1pZigoSnwwKT09MCl7Sz0wfWVsc2V7aWYoKEgmMSk9PTAp
e0w9ays0fDB9ZWxzZXtMPWNbays4Pj4yXXwwfUg9Y1tMPj4yXXwwO0s9KEh8MCk9PShiX1tjWyhj
W0U+PjJdfDApKzQ0Pj4yXSYzMV0oRiw0NSl8MCl9ayQocnwwLDAsMTIpO2skKHR8MCwwLDEyKTtr
JCh2fDAsMCwxMik7aWIoZyxLLG0sbixvLHAscSxzLHUsdyk7RT14fDA7SD1hW0ddfDA7ST1IJjI1
NTtNPShJJjF8MCk9PTA7aWYoTSl7Tj1JPj4+MX1lbHNle049Y1trKzQ+PjJdfDB9Tz1jW3c+PjJd
fDA7aWYoKE58MCk+KE98MCkpe2lmKE0pe1A9ST4+PjF9ZWxzZXtQPWNbays0Pj4yXXwwfUk9ZFt2
XXwwO2lmKChJJjF8MCk9PTApe1E9ST4+PjF9ZWxzZXtRPWNbdSs0Pj4yXXwwfUk9ZFt0XXwwO2lm
KChJJjF8MCk9PTApe1I9ST4+PjF9ZWxzZXtSPWNbcys0Pj4yXXwwfVM9KFAtTzw8MXwxKStRK1J8
MH1lbHNle0k9ZFt2XXwwO2lmKChJJjF8MCk9PTApe1Q9ST4+PjF9ZWxzZXtUPWNbdSs0Pj4yXXww
fUk9ZFt0XXwwO2lmKChJJjF8MCk9PTApe1U9ST4+PjF9ZWxzZXtVPWNbcys0Pj4yXXwwfVM9VCsy
K1V8MH1JPVMrT3wwO2Rve2lmKEk+Pj4wPjEwMCl7TT1rSihJPDwyKXwwO1Y9TTtpZigoTXwwKSE9
MCl7Vz1WO1g9VjtZPUg7YnJlYWt9a1goKTtXPVY7WD1WO1k9YVtHXXwwfWVsc2V7Vz1FO1g9MDtZ
PUh9fXdoaWxlKDApO2lmKChZJjEpPT0wKXtaPWsrNHwwO189ays0fDB9ZWxzZXtIPWNbays4Pj4y
XXwwO1o9SDtfPUh9SD1ZJjI1NTtpZigoSCYxfDApPT0wKXskPUg+Pj4xfWVsc2V7JD1jW2srND4+
Ml18MH1pYyhXLHkseixjW2grND4+Ml18MCxfLForKCQ8PDIpfDAsRixLLG4sY1tvPj4yXXwwLGNb
cD4+Ml18MCxxLHMsdSxPKTtjW0E+PjJdPWNbZj4+Ml07Z3EoYixBLFcsY1t5Pj4yXXwwLGNbej4+
Ml18MCxoLGopO2lmKChYfDApPT0wKXtlZSh1KTtlZShzKTtkUChxKTthYT1jW0I+PjJdfDA7YWI9
YWF8MDthYz1keihhYil8MDtpPWU7cmV0dXJufWtLKFgpO2VlKHUpO2VlKHMpO2RQKHEpO2FhPWNb
Qj4+Ml18MDthYj1hYXwwO2FjPWR6KGFiKXwwO2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8
MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGlpKGIsZCxlLGYsZyxoKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wO2Q9aTtpPWkrMTZ8MDtqPWR8MDtrPWo7ayQoa3ww
LDAsMTIpO2w9YjttPWg7bj1hW2hdfDA7aWYoKG4mMSk9PTApe289bSsxfDA7cD1tKzF8MH1lbHNl
e209Y1toKzg+PjJdfDA7bz1tO3A9bX1tPW4mMjU1O2lmKChtJjF8MCk9PTApe3E9bT4+PjF9ZWxz
ZXtxPWNbaCs0Pj4yXXwwfWg9bytxfDA7ZG97aWYocD4+PjA8aD4+PjApe3E9cDtkb3tkVShqLGFb
cV18MCk7cT1xKzF8MDt9d2hpbGUocT4+PjA8aD4+PjApO3E9KGV8MCk9PS0xPy0xOmU8PDE7aWYo
KGFba10mMSk9PTApe3I9cTtzPTE3NjI7YnJlYWt9dD1jW2orOD4+Ml18MDt1PXF9ZWxzZXtyPShl
fDApPT0tMT8tMTplPDwxO3M9MTc2Mn19d2hpbGUoMCk7aWYoKHN8MCk9PTE3NjIpe3Q9aisxfDA7
dT1yfXI9Yk0odXwwLGZ8MCxnfDAsdHwwKXwwO2skKGx8MCwwLDEyKTtsPWswKHJ8MCl8MDt0PXIr
bHwwO2lmKChsfDApPjApe3Y9cn1lbHNle2RQKGopO2k9ZDtyZXR1cm59ZG97ZFUoYixhW3ZdfDAp
O3Y9disxfDA7fXdoaWxlKHY+Pj4wPHQ+Pj4wKTtkUChqKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGlq
KGEsYil7YT1hfDA7Yj1ifDA7YTEoKChifDApPT0tMT8tMTpiPDwxKXwwKXwwO3JldHVybn1mdW5j
dGlvbiBpayhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpbChhKXthPWF8
MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBpbShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFy
IGY9MDtpZigoYVtkXSYxKT09MCl7Zj1kKzF8MH1lbHNle2Y9Y1tkKzg+PjJdfDB9ZD1hOChmfDAs
MjAwKXwwO3JldHVybiBkPj4+KCgoZHwwKSE9LTF8MCk+Pj4wKXwwfWZ1bmN0aW9uIGlvKGEsYil7
YT1hfDA7Yj1ifDA7YTEoKChifDApPT0tMT8tMTpiPDwxKXwwKXwwO3JldHVybn1mdW5jdGlvbiBp
cChiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2Q9aTtpPWkr
MjI0fDA7aj1kfDA7az1kKzh8MDtsPWQrNDB8MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8MDtw
PWQrMTkyfDA7cT1kKzIwMHwwO3I9ZCsyMDh8MDtzPXI7dD1pO2k9aSs4fDA7dT1pO2k9aSs4fDA7
ayQoc3wwLDAsMTIpO3Y9Yjt3PXR8MDtjW3QrND4+Ml09MDtjW3Q+PjJdPTQxMDQ7eD1hW2hdfDA7
aWYoKHgmMSk9PTApe3k9aCs0fDA7ej1oKzR8MH1lbHNle0E9Y1toKzg+PjJdfDA7eT1BO3o9QX1B
PXgmMjU1O2lmKChBJjF8MCk9PTApe0I9QT4+PjF9ZWxzZXtCPWNbaCs0Pj4yXXwwfWg9eSsoQjw8
Mil8MDtMMjEzNTpkb3tpZih6Pj4+MDxoPj4+MCl7Qj10O3k9a3wwO0E9ayszMnwwO3g9ejtDPTQx
MDQ7d2hpbGUoMSl7Y1ttPj4yXT14O0Q9KGI2W2NbQysxMj4+Ml0mMzFdKHcsaix4LGgsbSx5LEEs
bCl8MCk9PTI7RT1jW20+PjJdfDA7aWYoRHwoRXwwKT09KHh8MCkpe2JyZWFrfWlmKHk+Pj4wPChj
W2w+PjJdfDApPj4+MCl7RD15O2Rve2RVKHIsYVtEXXwwKTtEPUQrMXwwO313aGlsZShEPj4+MDwo
Y1tsPj4yXXwwKT4+PjApO0Y9Y1ttPj4yXXwwfWVsc2V7Rj1FfWlmKEY+Pj4wPj1oPj4+MCl7YnJl
YWsgTDIxMzV9eD1GO0M9Y1tCPj4yXXwwfUI9Yk8oOCl8MDtkRShCLDkwNCk7YmwoQnwwLDgxOTIs
MjIpfX13aGlsZSgwKTtkZSh0fDApO2lmKChhW3NdJjEpPT0wKXtHPXIrMXwwfWVsc2V7Rz1jW3Ir
OD4+Ml18MH1zPWJNKCgoZXwwKT09LTE/LTE6ZTw8MSl8MCxmfDAsZ3wwLEd8MCl8MDtrJCh2fDAs
MCwxMik7dj11fDA7Y1t1KzQ+PjJdPTA7Y1t1Pj4yXT00MDQ4O0c9azAoc3wwKXwwO2c9cytHfDA7
aWYoKEd8MCk8MSl7SD11fDA7ZGUoSCk7ZFAocik7aT1kO3JldHVybn1HPXU7Zj1nO2U9b3wwO3Q9
bysxMjh8MDtvPXM7cz00MDQ4O3doaWxlKDEpe2NbcT4+Ml09bztGPShiNltjW3MrMTY+PjJdJjMx
XSh2LG4sbywoZi1vfDApPjMyP28rMzJ8MDpnLHEsZSx0LHApfDApPT0yO2g9Y1txPj4yXXwwO2lm
KEZ8KGh8MCk9PShvfDApKXticmVha31pZihlPj4+MDwoY1twPj4yXXwwKT4+PjApe0Y9ZTtkb3tl
aChiLGNbRj4+Ml18MCk7Rj1GKzR8MDt9d2hpbGUoRj4+PjA8KGNbcD4+Ml18MCk+Pj4wKTtJPWNb
cT4+Ml18MH1lbHNle0k9aH1pZihJPj4+MD49Zz4+PjApe0o9MTgyOTticmVha31vPUk7cz1jW0c+
PjJdfDB9aWYoKEp8MCk9PTE4Mjkpe0g9dXwwO2RlKEgpO2RQKHIpO2k9ZDtyZXR1cm59ZD1iTyg4
KXwwO2RFKGQsOTA0KTtibChkfDAsODE5MiwyMil9ZnVuY3Rpb24gaXEoYil7Yj1ifDA7dmFyIGQ9
MCxlPTAsZj0wO2NbYj4+Ml09MzU2ODtkPWIrOHwwO2U9Y1tkPj4yXXwwO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7aWYoKGV8MCk9PShjWzI5NThdfDApKXtmPWJ8MDtkZShmKTtyZXR1cm59YTco
Y1tkPj4yXXwwKTtmPWJ8MDtkZShmKTtyZXR1cm59ZnVuY3Rpb24gaXIoYSl7YT1hfDA7YT1iTyg4
KXwwO2RBKGEsMTM1Mik7Y1thPj4yXT0yNTA0O2JsKGF8MCw4MjA4LDMyKX1mdW5jdGlvbiBpcyhi
LGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTA7ZT1pO2k9aSs0NDh8MDtm
PWV8MDtnPWUrMTZ8MDtoPWUrMzJ8MDtqPWUrNDh8MDtrPWUrNjR8MDtsPWUrODB8MDttPWUrOTZ8
MDtuPWUrMTEyfDA7bz1lKzEyOHwwO3A9ZSsxNDR8MDtxPWUrMTYwfDA7cj1lKzE3NnwwO3M9ZSsx
OTJ8MDt0PWUrMjA4fDA7dT1lKzIyNHwwO3Y9ZSsyNDB8MDt3PWUrMjU2fDA7eD1lKzI3MnwwO3k9
ZSsyODh8MDt6PWUrMzA0fDA7QT1lKzMyMHwwO0I9ZSszMzZ8MDtDPWUrMzUyfDA7RD1lKzM2OHww
O0U9ZSszODR8MDtGPWUrNDAwfDA7Rz1lKzQxNnwwO0g9ZSs0MzJ8MDtjW2IrND4+Ml09ZC0xO2Nb
Yj4+Ml09MzgyNDtkPWIrOHwwO0k9YisxMnwwO2FbYisxMzZ8MF09MTtKPWIrMjR8MDtLPUo7Y1tJ
Pj4yXT1LO2NbZD4+Ml09SztjW2IrMTY+PjJdPUorMTEyO0o9Mjg7TD1LO2Rve2lmKChMfDApPT0w
KXtNPTB9ZWxzZXtjW0w+PjJdPTA7TT1jW0k+PjJdfDB9TD1NKzR8MDtjW0k+PjJdPUw7Sj1KLTF8
MDt9d2hpbGUoKEp8MCkhPTApO2RaKGIrMTQ0fDAsMTM0NCwxKTtKPWNbZD4+Ml18MDtkPWNbST4+
Ml18MDtpZigoSnwwKSE9KGR8MCkpe2NbST4+Ml09ZCsofigoZC00KygtSnwwKXwwKT4+PjIpPDwy
KX1jWzM2MTddPTA7Y1szNjE2XT0zNTI4O2lmKChjWzM4NDRdfDApIT0tMSl7Y1tIPj4yXT0xNTM3
NjtjW0grND4+Ml09MTI7Y1tIKzg+PjJdPTA7ZFcoMTUzNzYsSCw5Nil9aUooYiwxNDQ2NCwoY1sz
ODQ1XXwwKS0xfDApO2NbMzYxNV09MDtjWzM2MTRdPTM0ODg7aWYoKGNbMzg0Ml18MCkhPS0xKXtj
W0c+PjJdPTE1MzY4O2NbRys0Pj4yXT0xMjtjW0crOD4+Ml09MDtkVygxNTM2OCxHLDk2KX1pSihi
LDE0NDU2LChjWzM4NDNdfDApLTF8MCk7Y1szNjY3XT0wO2NbMzY2Nl09MzkzNjtjWzM2NjhdPTA7
YVsxNDY3Nl09MDtjWzM2NjhdPWNbKGE2KCl8MCk+PjJdO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tG
Pj4yXT0xNTY5NjtjW0YrND4+Ml09MTI7Y1tGKzg+PjJdPTA7ZFcoMTU2OTYsRiw5Nil9aUooYiwx
NDY2NCwoY1szOTI1XXwwKS0xfDApO2NbMzY2NV09MDtjWzM2NjRdPTM4NTY7aWYoKGNbMzkyMl18
MCkhPS0xKXtjW0U+PjJdPTE1Njg4O2NbRSs0Pj4yXT0xMjtjW0UrOD4+Ml09MDtkVygxNTY4OCxF
LDk2KX1pSihiLDE0NjU2LChjWzM5MjNdfDApLTF8MCk7Y1szNjE5XT0wO2NbMzYxOF09MzYyNDtp
ZigoY1szODQ4XXwwKSE9LTEpe2NbRD4+Ml09MTUzOTI7Y1tEKzQ+PjJdPTEyO2NbRCs4Pj4yXT0w
O2RXKDE1MzkyLEQsOTYpfWlKKGIsMTQ0NzIsKGNbMzg0OV18MCktMXwwKTtjWzUyMV09MDtjWzUy
MF09MzU2ODtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFr
fWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2NbNTIyXT1jWzI5NThdO2lmKChjWzM4
NDZdfDApIT0tMSl7Y1tDPj4yXT0xNTM4NDtjW0MrND4+Ml09MTI7Y1tDKzg+PjJdPTA7ZFcoMTUz
ODQsQyw5Nil9aUooYiwyMDgwLChjWzM4NDddfDApLTF8MCk7Y1szNjIxXT0wO2NbMzYyMF09MzY4
MDtpZigoY1szODUwXXwwKSE9LTEpe2NbQj4+Ml09MTU0MDA7Y1tCKzQ+PjJdPTEyO2NbQis4Pj4y
XT0wO2RXKDE1NDAwLEIsOTYpfWlKKGIsMTQ0ODAsKGNbMzg1MV18MCktMXwwKTtjWzM2MjNdPTA7
Y1szNjIyXT0zNzM2O2lmKChjWzM4NTJdfDApIT0tMSl7Y1tBPj4yXT0xNTQwODtjW0ErND4+Ml09
MTI7Y1tBKzg+PjJdPTA7ZFcoMTU0MDgsQSw5Nil9aUooYiwxNDQ4OCwoY1szODUzXXwwKS0xfDAp
O2NbMzU5N109MDtjWzM1OTZdPTMwMzI7YVsxNDM5Ml09NDY7YVsxNDM5M109NDQ7ayQoMTQzOTYs
MCwxMik7aWYoKGNbMzgyOF18MCkhPS0xKXtjW3o+PjJdPTE1MzEyO2Nbeis0Pj4yXT0xMjtjW3or
OD4+Ml09MDtkVygxNTMxMix6LDk2KX1pSihiLDE0Mzg0LChjWzM4MjldfDApLTF8MCk7Y1s1MTNd
PTA7Y1s1MTJdPTI5ODQ7Y1s1MTRdPTQ2O2NbNTE1XT00NDtrJCgyMDY0LDAsMTIpO2lmKChjWzM4
MjZdfDApIT0tMSl7Y1t5Pj4yXT0xNTMwNDtjW3krND4+Ml09MTI7Y1t5Kzg+PjJdPTA7ZFcoMTUz
MDQseSw5Nil9aUooYiwyMDQ4LChjWzM4MjddfDApLTF8MCk7Y1szNjEzXT0wO2NbMzYxMl09MzQx
NjtpZigoY1szODQwXXwwKSE9LTEpe2NbeD4+Ml09MTUzNjA7Y1t4KzQ+PjJdPTEyO2NbeCs4Pj4y
XT0wO2RXKDE1MzYwLHgsOTYpfWlKKGIsMTQ0NDgsKGNbMzg0MV18MCktMXwwKTtjWzM2MTFdPTA7
Y1szNjEwXT0zMzQ0O2lmKChjWzM4MzhdfDApIT0tMSl7Y1t3Pj4yXT0xNTM1MjtjW3crND4+Ml09
MTI7Y1t3Kzg+PjJdPTA7ZFcoMTUzNTIsdyw5Nil9aUooYiwxNDQ0MCwoY1szODM5XXwwKS0xfDAp
O2NbMzYwOV09MDtjWzM2MDhdPTMyODA7aWYoKGNbMzgzNl18MCkhPS0xKXtjW3Y+PjJdPTE1MzQ0
O2Nbdis0Pj4yXT0xMjtjW3YrOD4+Ml09MDtkVygxNTM0NCx2LDk2KX1pSihiLDE0NDMyLChjWzM4
MzddfDApLTF8MCk7Y1szNjA3XT0wO2NbMzYwNl09MzIxNjtpZigoY1szODM0XXwwKSE9LTEpe2Nb
dT4+Ml09MTUzMzY7Y1t1KzQ+PjJdPTEyO2NbdSs4Pj4yXT0wO2RXKDE1MzM2LHUsOTYpfWlKKGIs
MTQ0MjQsKGNbMzgzNV18MCktMXwwKTtjWzM2NzddPTA7Y1szNjc2XT00OTEyO2lmKChjWzQwNDZd
fDApIT0tMSl7Y1t0Pj4yXT0xNjE4NDtjW3QrND4+Ml09MTI7Y1t0Kzg+PjJdPTA7ZFcoMTYxODQs
dCw5Nil9aUooYiwxNDcwNCwoY1s0MDQ3XXwwKS0xfDApO2NbMzY3NV09MDtjWzM2NzRdPTQ4NDg7
aWYoKGNbNDA0NF18MCkhPS0xKXtjW3M+PjJdPTE2MTc2O2Nbcys0Pj4yXT0xMjtjW3MrOD4+Ml09
MDtkVygxNjE3NixzLDk2KX1pSihiLDE0Njk2LChjWzQwNDVdfDApLTF8MCk7Y1szNjczXT0wO2Nb
MzY3Ml09NDc4NDtpZigoY1s0MDQyXXwwKSE9LTEpe2Nbcj4+Ml09MTYxNjg7Y1tyKzQ+PjJdPTEy
O2Nbcis4Pj4yXT0wO2RXKDE2MTY4LHIsOTYpfWlKKGIsMTQ2ODgsKGNbNDA0M118MCktMXwwKTtj
WzM2NzFdPTA7Y1szNjcwXT00NzIwO2lmKChjWzQwNDBdfDApIT0tMSl7Y1txPj4yXT0xNjE2MDtj
W3ErND4+Ml09MTI7Y1txKzg+PjJdPTA7ZFcoMTYxNjAscSw5Nil9aUooYiwxNDY4MCwoY1s0MDQx
XXwwKS0xfDApO2NbMzU5NV09MDtjWzM1OTRdPTI2ODg7aWYoKGNbMzgxNl18MCkhPS0xKXtjW3A+
PjJdPTE1MjY0O2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNTI2NCxwLDk2KX1pSihiLDE0
Mzc2LChjWzM4MTddfDApLTF8MCk7Y1szNTkzXT0wO2NbMzU5Ml09MjY0ODtpZigoY1szODE0XXww
KSE9LTEpe2Nbbz4+Ml09MTUyNTY7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE1MjU2LG8s
OTYpfWlKKGIsMTQzNjgsKGNbMzgxNV18MCktMXwwKTtjWzM1OTFdPTA7Y1szNTkwXT0yNjA4O2lm
KChjWzM4MTJdfDApIT0tMSl7Y1tuPj4yXT0xNTI0ODtjW24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7
ZFcoMTUyNDgsbiw5Nil9aUooYiwxNDM2MCwoY1szODEzXXwwKS0xfDApO2NbMzU4OV09MDtjWzM1
ODhdPTI1Njg7aWYoKGNbMzgxMF18MCkhPS0xKXtjW20+PjJdPTE1MjQwO2NbbSs0Pj4yXT0xMjtj
W20rOD4+Ml09MDtkVygxNTI0MCxtLDk2KX1pSihiLDE0MzUyLChjWzM4MTFdfDApLTF8MCk7Y1s1
MDldPTA7Y1s1MDhdPTI4ODg7Y1s1MTBdPTI5MzY7aWYoKGNbMzgyNF18MCkhPS0xKXtjW2w+PjJd
PTE1Mjk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTI5NixsLDk2KX1pSihiLDIwMzIs
KGNbMzgyNV18MCktMXwwKTtjWzUwNV09MDtjWzUwNF09Mjc5MjtjWzUwNl09Mjg0MDtpZigoY1sz
ODIyXXwwKSE9LTEpe2Nbaz4+Ml09MTUyODg7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1
Mjg4LGssOTYpfWlKKGIsMjAxNiwoY1szODIzXXwwKS0xfDApO2NbNTAxXT0wO2NbNTAwXT0zNzky
O2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Y1s1MDJdPWNbMjk1OF07Y1s1MDBdPTI3NjA7aWYo
KGNbMzgyMF18MCkhPS0xKXtjW2o+PjJdPTE1MjgwO2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtk
VygxNTI4MCxqLDk2KX1pSihiLDJlMywoY1szODIxXXwwKS0xfDApO2NbNDk3XT0wO2NbNDk2XT0z
NzkyO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1sy
OTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Y1s0OThdPWNbMjk1OF07Y1s0OTZdPTI3Mjg7
aWYoKGNbMzgxOF18MCkhPS0xKXtjW2g+PjJdPTE1MjcyO2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09
MDtkVygxNTI3MixoLDk2KX1pSihiLDE5ODQsKGNbMzgxOV18MCktMXwwKTtjWzM2MDVdPTA7Y1sz
NjA0XT0zMTIwO2lmKChjWzM4MzJdfDApIT0tMSl7Y1tnPj4yXT0xNTMyODtjW2crND4+Ml09MTI7
Y1tnKzg+PjJdPTA7ZFcoMTUzMjgsZyw5Nil9aUooYiwxNDQxNiwoY1szODMzXXwwKS0xfDApO2Nb
MzYwM109MDtjWzM2MDJdPTMwODA7aWYoKGNbMzgzMF18MCkhPS0xKXtjW2Y+PjJdPTE1MzIwO2Nb
Zis0Pj4yXT0xMjtjW2YrOD4+Ml09MDtkVygxNTMyMCxmLDk2KX1pSihiLDE0NDA4LChjWzM4MzFd
fDApLTF8MCk7aT1lO3JldHVybn1mdW5jdGlvbiBpdChhLGIpe2E9YXwwO2I9YnwwO3JldHVybiBi
fDB9ZnVuY3Rpb24gaXUoYSxiLGQsZSxmLGcsaCxpKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtjW2Y+PjJdPWQ7Y1tpPj4yXT1nO3JldHVybiAzfWZ1bmN0
aW9uIGl2KGEsYixkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aT1pfDA7Y1tmPj4yXT1kO2NbaT4+Ml09ZztyZXR1cm4gM31mdW5jdGlvbiBpdyhh
LGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2NbZj4+Ml09ZDtyZXR1cm4g
M31mdW5jdGlvbiBpeChhKXthPWF8MDtyZXR1cm4gMX1mdW5jdGlvbiBpeShhKXthPWF8MDtyZXR1
cm4gMX1mdW5jdGlvbiBpeihhKXthPWF8MDtyZXR1cm4gMX1mdW5jdGlvbiBpQShhLGIpe2E9YXww
O2I9YnwwO3JldHVybiBiPDwyND4+MjR8MH1mdW5jdGlvbiBpQihhLGIsYyl7YT1hfDA7Yj1ifDA7
Yz1jfDA7cmV0dXJuKGI+Pj4wPDEyOD9iJjI1NTpjKXwwfWZ1bmN0aW9uIGlDKGEsYixjKXthPWF8
MDtiPWJ8MDtjPWN8MDtyZXR1cm4oYjw8MjQ+PjI0Pi0xP2I6Yyl8MH1mdW5jdGlvbiBpRChhLGIs
YyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2I9ZC1jfDA7cmV0dXJuKGI+Pj4w
PGU+Pj4wP2I6ZSl8MH1mdW5jdGlvbiBpRShhKXthPWF8MDtjW2ErND4+Ml09KEk9Y1szODU0XXww
LGNbMzg1NF09SSsxLEkpKzE7cmV0dXJufWZ1bmN0aW9uIGlGKGIsZCxlLGYpe2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MDtpZigoZHwwKT09KGV8MCkpe2c9ZDtyZXR1cm4g
Z3wwfWVsc2V7aD1kO2k9Zn13aGlsZSgxKXtjW2k+PjJdPWFbaF18MDtmPWgrMXwwO2lmKChmfDAp
PT0oZXwwKSl7Zz1lO2JyZWFrfWVsc2V7aD1mO2k9aSs0fDB9fXJldHVybiBnfDB9ZnVuY3Rpb24g
aUcoYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxq
PTA7aWYoKGR8MCk9PShlfDApKXtoPWQ7cmV0dXJuIGh8MH1iPSgoZS00KygtZHwwKXwwKT4+PjIp
KzF8MDtpPWQ7aj1nO3doaWxlKDEpe2c9Y1tpPj4yXXwwO2Fbal09Zz4+PjA8MTI4P2cmMjU1OmY7
Zz1pKzR8MDtpZigoZ3wwKT09KGV8MCkpe2JyZWFrfWVsc2V7aT1nO2o9aisxfDB9fWg9ZCsoYjw8
Mil8MDtyZXR1cm4gaHwwfWZ1bmN0aW9uIGlIKGIsYyxkLGUpe2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9
ZXwwO3ZhciBmPTAsZz0wLGg9MDtpZigoY3wwKT09KGR8MCkpe2Y9YztyZXR1cm4gZnwwfWVsc2V7
Zz1jO2g9ZX13aGlsZSgxKXthW2hdPWFbZ118MDtlPWcrMXwwO2lmKChlfDApPT0oZHwwKSl7Zj1k
O2JyZWFrfWVsc2V7Zz1lO2g9aCsxfDB9fXJldHVybiBmfDB9ZnVuY3Rpb24gaUkoYixjLGQsZSxm
KXtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTA7aWYoKGN8MCk9
PShkfDApKXtnPWM7cmV0dXJuIGd8MH1lbHNle2g9YztpPWZ9d2hpbGUoMSl7Zj1hW2hdfDA7YVtp
XT1mPDwyND4+MjQ+LTE/ZjplO2Y9aCsxfDA7aWYoKGZ8MCk9PShkfDApKXtnPWQ7YnJlYWt9ZWxz
ZXtoPWY7aT1pKzF8MH19cmV0dXJuIGd8MH1mdW5jdGlvbiBpSihhLGIsZCl7YT1hfDA7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtkZyhifDAp
O2U9YSs4fDA7Zj1hKzEyfDA7YT1jW2Y+PjJdfDA7Zz1lfDA7aD1jW2c+PjJdfDA7aT1hLWg+PjI7
ZG97aWYoaT4+PjA+ZD4+PjApe2o9aH1lbHNle2s9ZCsxfDA7aWYoaT4+PjA8az4+PjApe2o1KGUs
ay1pfDApO2o9Y1tnPj4yXXwwO2JyZWFrfWlmKGk+Pj4wPD1rPj4+MCl7aj1oO2JyZWFrfWw9aCso
azw8Mil8MDtpZigobHwwKT09KGF8MCkpe2o9aDticmVha31jW2Y+PjJdPWErKH4oKGEtNCsoLWx8
MCl8MCk+Pj4yKTw8Mik7aj1ofX13aGlsZSgwKTtoPWNbaisoZDw8Mik+PjJdfDA7aWYoKGh8MCk9
PTApe209ajtuPW0rKGQ8PDIpfDA7Y1tuPj4yXT1iO3JldHVybn1keihofDApfDA7bT1jW2c+PjJd
fDA7bj1tKyhkPDwyKXwwO2Nbbj4+Ml09YjtyZXR1cm59ZnVuY3Rpb24gaUsoYSl7YT1hfDA7aUwo
YSk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlMKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAs
aD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7Y1tiPj4yXT0zODI0O2Q9YisxMnwwO2U9Y1tkPj4yXXww
O2Y9Yis4fDA7Zz1jW2Y+PjJdfDA7aWYoKGV8MCkhPShnfDApKXtoPTA7aT1nO2c9ZTt3aGlsZSgx
KXtlPWNbaSsoaDw8Mik+PjJdfDA7aWYoKGV8MCk9PTApe2o9ZztrPWl9ZWxzZXtsPWV8MDtkeihs
KXwwO2o9Y1tkPj4yXXwwO2s9Y1tmPj4yXXwwfWw9aCsxfDA7aWYobD4+PjA8ai1rPj4yPj4+MCl7
aD1sO2k9aztnPWp9ZWxzZXticmVha319fWRQKGIrMTQ0fDApO2o9Y1tmPj4yXXwwO2lmKChqfDAp
PT0wKXttPWJ8MDtkZShtKTtyZXR1cm59Zj1jW2Q+PjJdfDA7aWYoKGp8MCkhPShmfDApKXtjW2Q+
PjJdPWYrKH4oKGYtNCsoLWp8MCl8MCk+Pj4yKTw8Mil9aWYoKGp8MCk9PShiKzI0fDApKXthW2Ir
MTM2fDBdPTA7bT1ifDA7ZGUobSk7cmV0dXJufWVsc2V7a1Moaik7bT1ifDA7ZGUobSk7cmV0dXJu
fX1mdW5jdGlvbiBpTSgpe3ZhciBiPTAsZD0wO2lmKChhWzE2MjQ4XXwwKSE9MCl7Yj1jWzI5NTBd
fDA7cmV0dXJuIGJ8MH1pZigoYmMoMTYyNDgpfDApPT0wKXtiPWNbMjk1MF18MDtyZXR1cm4gYnww
fWRve2lmKChhWzE2MjU2XXwwKT09MCl7aWYoKGJjKDE2MjU2KXwwKT09MCl7YnJlYWt9aXMoMTQ0
OTYsMSk7Y1syOTU0XT0xNDQ5NjtjWzI5NTJdPTExODE2fX13aGlsZSgwKTtkPWNbY1syOTUyXT4+
Ml18MDtjWzI5NTZdPWQ7ZGcoZHwwKTtjWzI5NTBdPTExODI0O2I9Y1syOTUwXXwwO3JldHVybiBi
fDB9ZnVuY3Rpb24gaU4oYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wO2Q9Y1tiPj4yXXwwO2NbYT4+
Ml09ZDtkZyhkfDApO3JldHVybn1mdW5jdGlvbiBpTyhhKXthPWF8MDtkeihjW2E+PjJdfDApfDA7
cmV0dXJufWZ1bmN0aW9uIGlQKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGlRKGEpe2E9YXwwO2lmKChhfDApPT0wKXtyZXR1cm59YllbY1soY1thPj4yXXwwKSs0Pj4yXSY1
MTFdKGEpO3JldHVybn1mdW5jdGlvbiBpUihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1m
dW5jdGlvbiBpUyhiKXtiPWJ8MDt2YXIgZD0wO2NbYj4+Ml09MzkzNjtkPWNbYis4Pj4yXXwwO2Rv
e2lmKChkfDApIT0wKXtpZigoYVtiKzEyfDBdJjEpPT0wKXticmVha31rVChkKX19d2hpbGUoMCk7
ZGUoYnwwKTtrUyhiKTtyZXR1cm59ZnVuY3Rpb24gaVQoYil7Yj1ifDA7dmFyIGQ9MDtjW2I+PjJd
PTM5MzY7ZD1jW2IrOD4+Ml18MDtkb3tpZigoZHwwKSE9MCl7aWYoKGFbYisxMnwwXSYxKT09MCl7
YnJlYWt9a1QoZCl9fXdoaWxlKDApO2RlKGJ8MCk7cmV0dXJufWZ1bmN0aW9uIGlVKGEpe2E9YXww
O2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlWKGEpe2E9YXwwO2lxKGEpO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBpVyhhKXthPWF8MDt2YXIgYj0wO2I9Y1soaU0oKXwwKT4+Ml18MDtjW2E+
PjJdPWI7ZGcoYnwwKTtyZXR1cm59ZnVuY3Rpb24gaVgoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0w
LGU9MCxmPTAsZz0wLGg9MDtkPWk7aT1pKzE2fDA7ZT1kfDA7Zj1jW2E+PjJdfDA7YT1ifDA7aWYo
KGNbYT4+Ml18MCkhPS0xKXtjW2U+PjJdPWI7Y1tlKzQ+PjJdPTEyO2NbZSs4Pj4yXT0wO2RXKGEs
ZSw5Nil9ZT0oY1tiKzQ+PjJdfDApLTF8MDtiPWNbZis4Pj4yXXwwO2lmKChjW2YrMTI+PjJdfDAp
LWI+PjI+Pj4wPD1lPj4+MCl7Zz1iTyg0KXwwO2g9ZztrcShoKTtibChnfDAsODE3NiwxMzQpO3Jl
dHVybiAwfWY9Y1tiKyhlPDwyKT4+Ml18MDtpZigoZnwwKT09MCl7Zz1iTyg0KXwwO2g9ZztrcSho
KTtibChnfDAsODE3NiwxMzQpO3JldHVybiAwfWVsc2V7aT1kO3JldHVybiBmfDB9cmV0dXJuIDB9
ZnVuY3Rpb24gaVkoYSxkLGUpe2E9YXwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYoZT4+PjA+PTEy
OCl7Zj0wO3JldHVybiBmfDB9Zj0oYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4xXSZkKTw8
MTY+PjE2IT0wO3JldHVybiBmfDB9ZnVuY3Rpb24gaVooYSxkLGUsZil7YT1hfDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MDtpZigoZHwwKT09KGV8MCkpe2c9ZDtyZXR1cm4g
Z3wwfWVsc2V7aD1kO2k9Zn13aGlsZSgxKXtmPWNbaD4+Ml18MDtpZihmPj4+MDwxMjgpe2o9Ylso
Y1soYTYoKXwwKT4+Ml18MCkrKGY8PDEpPj4xXXwwfWVsc2V7aj0wfWJbaT4+MV09ajtmPWgrNHww
O2lmKChmfDApPT0oZXwwKSl7Zz1lO2JyZWFrfWVsc2V7aD1mO2k9aSsyfDB9fXJldHVybiBnfDB9
ZnVuY3Rpb24gaV8oYSxkLGUsZil7YT1hfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAs
aT0wO2lmKChlfDApPT0oZnwwKSl7Zz1lO3JldHVybiBnfDB9ZWxzZXtoPWV9d2hpbGUoMSl7ZT1j
W2g+PjJdfDA7aWYoZT4+PjA8MTI4KXtpZigoYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4x
XSZkKTw8MTY+PjE2IT0wKXtnPWg7aT0yMDk0O2JyZWFrfX1lPWgrNHwwO2lmKChlfDApPT0oZnww
KSl7Zz1mO2k9MjA5NjticmVha31lbHNle2g9ZX19aWYoKGl8MCk9PTIwOTQpe3JldHVybiBnfDB9
ZWxzZSBpZigoaXwwKT09MjA5Nil7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBpJChhLGQs
ZSxmKXthPWF8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MDthPWU7d2hpbGUoMSl7aWYo
KGF8MCk9PShmfDApKXtnPWY7aD0yMTA0O2JyZWFrfWU9Y1thPj4yXXwwO2lmKGU+Pj4wPj0xMjgp
e2c9YTtoPTIxMDY7YnJlYWt9aWYoKGJbKGNbKGE2KCl8MCk+PjJdfDApKyhlPDwxKT4+MV0mZCk8
PDE2Pj4xNj09MCl7Zz1hO2g9MjEwNTticmVha31lbHNle2E9YSs0fDB9fWlmKChofDApPT0yMTA0
KXtyZXR1cm4gZ3wwfWVsc2UgaWYoKGh8MCk9PTIxMDUpe3JldHVybiBnfDB9ZWxzZSBpZigoaHww
KT09MjEwNil7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBpMChhLGIpe2E9YXwwO2I9Ynww
O3ZhciBkPTA7aWYoYj4+PjA+PTEyOCl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhiUigpfDApPj4y
XXwwKSsoYjw8Mik+PjJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBpMShhLGIsZCl7YT1hfDA7Yj1i
fDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2lmKChifDApPT0oZHwwKSl7ZT1iO3JldHVybiBlfDB9
ZWxzZXtmPWJ9d2hpbGUoMSl7Yj1jW2Y+PjJdfDA7aWYoYj4+PjA8MTI4KXtnPWNbKGNbKGJSKCl8
MCk+PjJdfDApKyhiPDwyKT4+Ml18MH1lbHNle2c9Yn1jW2Y+PjJdPWc7Yj1mKzR8MDtpZigoYnww
KT09KGR8MCkpe2U9ZDticmVha31lbHNle2Y9Yn19cmV0dXJuIGV8MH1mdW5jdGlvbiBpMihhLGIp
e2E9YXwwO2I9YnwwO3ZhciBkPTA7aWYoYj4+PjA+PTEyOCl7ZD1iO3JldHVybiBkfDB9ZD1jWyhj
WyhiUygpfDApPj4yXXwwKSsoYjw8Mik+PjJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBpMyhhLGIs
ZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2lmKChifDApPT0oZHwwKSl7ZT1i
O3JldHVybiBlfDB9ZWxzZXtmPWJ9d2hpbGUoMSl7Yj1jW2Y+PjJdfDA7aWYoYj4+PjA8MTI4KXtn
PWNbKGNbKGJTKCl8MCk+PjJdfDApKyhiPDwyKT4+Ml18MH1lbHNle2c9Yn1jW2Y+PjJdPWc7Yj1m
KzR8MDtpZigoYnwwKT09KGR8MCkpe2U9ZDticmVha31lbHNle2Y9Yn19cmV0dXJuIGV8MH1mdW5j
dGlvbiBpNChhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTA7aWYoYjw8MjQ+PjI0PD0tMSl7ZD1iO3Jl
dHVybiBkfDB9ZD1jWyhjWyhiUigpfDApPj4yXXwwKSsoKGImMjU1KTw8Mik+PjJdJjI1NTtyZXR1
cm4gZHwwfWZ1bmN0aW9uIGk1KGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxo
PTA7aWYoKGR8MCk9PShlfDApKXtmPWQ7cmV0dXJuIGZ8MH1lbHNle2c9ZH13aGlsZSgxKXtkPWFb
Z118MDtpZihkPDwyND4+MjQ+LTEpe2g9Y1soY1soYlIoKXwwKT4+Ml18MCkrKGQ8PDI0Pj4yNDw8
Mik+PjJdJjI1NX1lbHNle2g9ZH1hW2ddPWg7ZD1nKzF8MDtpZigoZHwwKT09KGV8MCkpe2Y9ZTti
cmVha31lbHNle2c9ZH19cmV0dXJuIGZ8MH1mdW5jdGlvbiBpNihhLGIpe2E9YXwwO2I9YnwwO3Zh
ciBkPTA7aWYoYjw8MjQ+PjI0PD0tMSl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhiUygpfDApPj4y
XXwwKSsoYjw8MjQ+PjI0PDwyKT4+Ml0mMjU1O3JldHVybiBkfDB9ZnVuY3Rpb24gaTcoYixkLGUp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtpZigoZHwwKT09KGV8MCkpe2Y9ZDty
ZXR1cm4gZnwwfWVsc2V7Zz1kfXdoaWxlKDEpe2Q9YVtnXXwwO2lmKGQ8PDI0Pj4yND4tMSl7aD1j
WyhjWyhiUygpfDApPj4yXXwwKSsoZDw8MjQ+PjI0PDwyKT4+Ml0mMjU1fWVsc2V7aD1kfWFbZ109
aDtkPWcrMXwwO2lmKChkfDApPT0oZXwwKSl7Zj1lO2JyZWFrfWVsc2V7Zz1kfX1yZXR1cm4gZnww
fWZ1bmN0aW9uIGk4KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGk5KGEpe2E9YXwwO2RlKGF8
MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGphKGEsYixkLGUsZixnLGgsail7YT1hfDA7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTA7Yj1pO2k9aSsx
NnwwO2E9YnwwO2s9Yis4fDA7Y1thPj4yXT1kO2Nbaz4+Ml09ZztsPWpsKGQsZSxhLGcsaCxrLDEx
MTQxMTEsMCl8MDtjW2Y+PjJdPWQrKChjW2E+PjJdfDApLWQ+PjE8PDEpO2Nbaj4+Ml09ZysoKGNb
az4+Ml18MCktZyk7aT1iO3JldHVybiBsfDB9ZnVuY3Rpb24gamIoYixkLGUsZixnLGgsaixrKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MDtsPWk7aT1pKzh8MDttPWx8
MDtuPW07bz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7cD1lO3doaWxlKDEpe2lmKChwfDApPT0oZnww
KSl7cT1mO2JyZWFrfWlmKChjW3A+PjJdfDApPT0wKXtxPXA7YnJlYWt9ZWxzZXtwPXArNHwwfX1j
W2s+PjJdPWg7Y1tnPj4yXT1lO0wyNTU1OmRve2lmKChlfDApPT0oZnwwKXwoaHwwKT09KGp8MCkp
e3I9ZX1lbHNle3A9ZDtzPWo7dD1iKzh8MDt1PW98MDt2PWg7dz1lO3g9cTtMMjU1Nzp3aGlsZSgx
KXt5PWNbcCs0Pj4yXXwwO2NbbT4+Ml09Y1twPj4yXTtjW20rND4+Ml09eTt5PWJCKGNbdD4+Ml18
MCl8MDt6PWtzKHYsZyx4LXc+PjIscy12fDAsZCl8MDtpZigoeXwwKSE9MCl7YkIoeXwwKXwwfXN3
aXRjaCh6fDApe2Nhc2UtMTp7QT0yMTg4O2JyZWFrIEwyNTU3O2JyZWFrfTtjYXNlIDA6e0I9MTtB
PTIyMjQ7YnJlYWsgTDI1NTc7YnJlYWt9O2RlZmF1bHQ6e319eT0oY1trPj4yXXwwKSt6fDA7Y1tr
Pj4yXT15O2lmKCh5fDApPT0oanwwKSl7QT0yMjIxO2JyZWFrfWlmKCh4fDApPT0oZnwwKSl7Qz1m
O0Q9eTtFPWNbZz4+Ml18MH1lbHNle3k9YkIoY1t0Pj4yXXwwKXwwO3o9a2codSwwLGQpfDA7aWYo
KHl8MCkhPTApe2JCKHl8MCl8MH1pZigoenwwKT09LTEpe0I9MjtBPTIyMjY7YnJlYWt9eT1jW2s+
PjJdfDA7aWYoej4+PjA+KHMteXwwKT4+PjApe0I9MTtBPTIyMjc7YnJlYWt9TDI1NzQ6ZG97aWYo
KHp8MCkhPTApe0Y9ejtHPXU7SD15O3doaWxlKDEpe0k9YVtHXXwwO2Nbaz4+Ml09SCsxO2FbSF09
STtJPUYtMXwwO2lmKChJfDApPT0wKXticmVhayBMMjU3NH1GPUk7Rz1HKzF8MDtIPWNbaz4+Ml18
MH19fXdoaWxlKDApO3k9KGNbZz4+Ml18MCkrNHwwO2NbZz4+Ml09eTt6PXk7d2hpbGUoMSl7aWYo
KHp8MCk9PShmfDApKXtKPWY7YnJlYWt9aWYoKGNbej4+Ml18MCk9PTApe0o9ejticmVha31lbHNl
e3o9eis0fDB9fUM9SjtEPWNbaz4+Ml18MDtFPXl9aWYoKEV8MCk9PShmfDApfChEfDApPT0oanww
KSl7cj1FO2JyZWFrIEwyNTU1fWVsc2V7dj1EO3c9RTt4PUN9fWlmKChBfDApPT0yMTg4KXtjW2s+
PjJdPXY7TDI1ODY6ZG97aWYoKHd8MCk9PShjW2c+PjJdfDApKXtLPXd9ZWxzZXt4PXc7dT12O3do
aWxlKDEpe3M9Y1t4Pj4yXXwwO3A9YkIoY1t0Pj4yXXwwKXwwO3o9a2codSxzLG4pfDA7aWYoKHB8
MCkhPTApe2JCKHB8MCl8MH1pZigoenwwKT09LTEpe0s9eDticmVhayBMMjU4Nn1wPShjW2s+PjJd
fDApK3p8MDtjW2s+PjJdPXA7ej14KzR8MDtpZigoenwwKT09KGNbZz4+Ml18MCkpe0s9ejticmVh
a31lbHNle3g9ejt1PXB9fX19d2hpbGUoMCk7Y1tnPj4yXT1LO0I9MjtpPWw7cmV0dXJuIEJ8MH1l
bHNlIGlmKChBfDApPT0yMjIxKXtyPWNbZz4+Ml18MDticmVha31lbHNlIGlmKChBfDApPT0yMjI0
KXtpPWw7cmV0dXJuIEJ8MH1lbHNlIGlmKChBfDApPT0yMjI2KXtpPWw7cmV0dXJuIEJ8MH1lbHNl
IGlmKChBfDApPT0yMjI3KXtpPWw7cmV0dXJuIEJ8MH19fXdoaWxlKDApO0I9KHJ8MCkhPShmfDAp
fDA7aT1sO3JldHVybiBCfDB9ZnVuY3Rpb24gamMoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTA7bD1pO2k9aSs4fDA7bT1sfDA7bj1tO289ZTt3aGlsZSgx
KXtpZigob3wwKT09KGZ8MCkpe3A9ZjticmVha31pZigoYVtvXXwwKT09MCl7cD1vO2JyZWFrfWVs
c2V7bz1vKzF8MH19Y1trPj4yXT1oO2NbZz4+Ml09ZTtMMjYwNzpkb3tpZigoZXwwKT09KGZ8MCl8
KGh8MCk9PShqfDApKXtxPWV9ZWxzZXtvPWQ7cj1qO3M9Yis4fDA7dD1oO3U9ZTt2PXA7TDI2MDk6
d2hpbGUoMSl7dz1jW28rND4+Ml18MDtjW20+PjJdPWNbbz4+Ml07Y1ttKzQ+PjJdPXc7eD12O3c9
YkIoY1tzPj4yXXwwKXwwO3k9a2QodCxnLHgtdXwwLHItdD4+MixkKXwwO2lmKCh3fDApIT0wKXti
Qih3fDApfDB9c3dpdGNoKHl8MCl7Y2FzZS0xOnt6PTIyNDM7YnJlYWsgTDI2MDk7YnJlYWt9O2Nh
c2UgMDp7QT0yO3o9MjI3ODticmVhayBMMjYwOTticmVha307ZGVmYXVsdDp7fX13PShjW2s+PjJd
fDApKyh5PDwyKXwwO2Nbaz4+Ml09dztpZigod3wwKT09KGp8MCkpe3o9MjI3NTticmVha315PWNb
Zz4+Ml18MDtpZigodnwwKT09KGZ8MCkpe0I9ZjtDPXc7RD15fWVsc2V7RT1iQihjW3M+PjJdfDAp
fDA7Rj1rYyh3LHksMSxkKXwwO2lmKChFfDApIT0wKXtiQihFfDApfDB9aWYoKEZ8MCkhPTApe0E9
Mjt6PTIyODI7YnJlYWt9Y1trPj4yXT0oY1trPj4yXXwwKSs0O0Y9KGNbZz4+Ml18MCkrMXwwO2Nb
Zz4+Ml09RjtFPUY7d2hpbGUoMSl7aWYoKEV8MCk9PShmfDApKXtHPWY7YnJlYWt9aWYoKGFbRV18
MCk9PTApe0c9RTticmVha31lbHNle0U9RSsxfDB9fUI9RztDPWNbaz4+Ml18MDtEPUZ9aWYoKER8
MCk9PShmfDApfChDfDApPT0oanwwKSl7cT1EO2JyZWFrIEwyNjA3fWVsc2V7dD1DO3U9RDt2PUJ9
fWlmKCh6fDApPT0yMjQzKXtjW2s+PjJdPXQ7TDI2MzE6ZG97aWYoKHV8MCk9PShjW2c+PjJdfDAp
KXtIPXV9ZWxzZXt2PXQ7cj11O0wyNjMyOndoaWxlKDEpe289YkIoY1tzPj4yXXwwKXwwO0U9a2Mo
dixyLHgtcnwwLG4pfDA7aWYoKG98MCkhPTApe2JCKG98MCl8MH1zd2l0Y2goRXwwKXtjYXNlIDA6
e0k9cisxfDA7YnJlYWt9O2Nhc2UtMTp7ej0yMjU0O2JyZWFrIEwyNjMyO2JyZWFrfTtjYXNlLTI6
e3o9MjI1NTticmVhayBMMjYzMjticmVha307ZGVmYXVsdDp7ST1yK0V8MH19RT0oY1trPj4yXXww
KSs0fDA7Y1trPj4yXT1FO2lmKChJfDApPT0oY1tnPj4yXXwwKSl7SD1JO2JyZWFrIEwyNjMxfWVs
c2V7dj1FO3I9SX19aWYoKHp8MCk9PTIyNTQpe2NbZz4+Ml09cjtBPTI7aT1sO3JldHVybiBBfDB9
ZWxzZSBpZigoenwwKT09MjI1NSl7Y1tnPj4yXT1yO0E9MTtpPWw7cmV0dXJuIEF8MH19fXdoaWxl
KDApO2NbZz4+Ml09SDtBPShIfDApIT0oZnwwKXwwO2k9bDtyZXR1cm4gQXwwfWVsc2UgaWYoKHp8
MCk9PTIyNzUpe3E9Y1tnPj4yXXwwO2JyZWFrfWVsc2UgaWYoKHp8MCk9PTIyNzgpe2k9bDtyZXR1
cm4gQXwwfWVsc2UgaWYoKHp8MCk9PTIyODIpe2k9bDtyZXR1cm4gQXwwfX19d2hpbGUoMCk7QT0o
cXwwKSE9KGZ8MCl8MDtpPWw7cmV0dXJuIEF8MH1mdW5jdGlvbiBqZChiLGQsZSxmLGcpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtoPWk7
aT1pKzh8MDtjW2c+PjJdPWU7ZT1ofDA7aj1iQihjW2IrOD4+Ml18MCl8MDtiPWtnKGUsMCxkKXww
O2lmKChqfDApIT0wKXtiQihqfDApfDB9c3dpdGNoKGJ8MCl7Y2FzZS0xOmNhc2UgMDp7az0yO2k9
aDtyZXR1cm4ga3wwfTtkZWZhdWx0Ont9fWo9Yi0xfDA7Yj1jW2c+PjJdfDA7aWYoaj4+PjA+KGYt
YnwwKT4+PjApe2s9MTtpPWg7cmV0dXJuIGt8MH1pZigoanwwKT09MCl7az0wO2k9aDtyZXR1cm4g
a3wwfWVsc2V7bD1qO209ZTtuPWJ9d2hpbGUoMSl7Yj1hW21dfDA7Y1tnPj4yXT1uKzE7YVtuXT1i
O2I9bC0xfDA7aWYoKGJ8MCk9PTApe2s9MDticmVha31sPWI7bT1tKzF8MDtuPWNbZz4+Ml18MH1p
PWg7cmV0dXJuIGt8MH1mdW5jdGlvbiBqZShhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9
MDtiPWErOHwwO2E9YkIoY1tiPj4yXXwwKXwwO2Q9a2YoMCwwLDEpfDA7aWYoKGF8MCkhPTApe2JC
KGF8MCl8MH1pZigoZHwwKSE9MCl7ZT0tMTtyZXR1cm4gZXwwfWQ9Y1tiPj4yXXwwO2lmKChkfDAp
PT0wKXtlPTE7cmV0dXJuIGV8MH1lPWJCKGR8MCl8MDtkPWJkKCl8MDtpZigoZXwwKT09MCl7Zj0o
ZHwwKT09MTtnPWYmMTtyZXR1cm4gZ3wwfWJCKGV8MCl8MDtmPShkfDApPT0xO2c9ZiYxO3JldHVy
biBnfDB9ZnVuY3Rpb24gamYoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7aWYoKGZ8MCk9PTB8KGR8
MCk9PShlfDApKXtnPTA7cmV0dXJuIGd8MH1oPWU7aT1hKzh8MDthPWQ7ZD0wO2o9MDtMMjY5Mzp3
aGlsZSgxKXtrPWJCKGNbaT4+Ml18MCl8MDtsPWtiKGEsaC1hfDAsYil8MDtpZigoa3wwKSE9MCl7
YkIoa3wwKXwwfXN3aXRjaChsfDApe2Nhc2UgMDp7bT0xO249YSsxfDA7YnJlYWt9O2Nhc2UtMTpj
YXNlLTI6e2c9ZDtvPTIzNDM7YnJlYWsgTDI2OTM7YnJlYWt9O2RlZmF1bHQ6e209bDtuPWErbHww
fX1sPW0rZHwwO2s9aisxfDA7aWYoaz4+PjA+PWY+Pj4wfChufDApPT0oZXwwKSl7Zz1sO289MjM0
NTticmVha31lbHNle2E9bjtkPWw7aj1rfX1pZigob3wwKT09MjM0NSl7cmV0dXJuIGd8MH1lbHNl
IGlmKChvfDApPT0yMzQzKXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0aW9uIGpnKGEpe2E9YXww
O3ZhciBiPTAsZD0wLGU9MDtiPWNbYSs4Pj4yXXwwO2Rve2lmKChifDApPT0wKXtkPTF9ZWxzZXth
PWJCKGJ8MCl8MDtlPWJkKCl8MDtpZigoYXwwKT09MCl7ZD1lO2JyZWFrfWJCKGF8MCl8MDtkPWV9
fXdoaWxlKDApO3JldHVybiBkfDB9ZnVuY3Rpb24gamgoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtjW2Y+PjJdPWQ7cmV0dXJuIDN9ZnVuY3Rpb24gamkoYSl7YT1hfDA7
cmV0dXJuIDB9ZnVuY3Rpb24gamooYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gamsoYSl7YT1h
fDA7cmV0dXJuIDR9ZnVuY3Rpb24gamwoZCxmLGcsaCxpLGosayxsKXtkPWR8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxy
PTA7Y1tnPj4yXT1kO2Nbaj4+Ml09aDtkb3tpZigobCYyfDApIT0wKXtpZigoaS1ofDApPDMpe209
MTtyZXR1cm4gbXwwfWVsc2V7Y1tqPj4yXT1oKzE7YVtoXT0tMTc7ZD1jW2o+PjJdfDA7Y1tqPj4y
XT1kKzE7YVtkXT0tNjk7ZD1jW2o+PjJdfDA7Y1tqPj4yXT1kKzE7YVtkXT0tNjU7YnJlYWt9fX13
aGlsZSgwKTtoPWY7bD1jW2c+PjJdfDA7aWYobD4+PjA+PWY+Pj4wKXttPTA7cmV0dXJuIG18MH1k
PWk7aT1sO0wyNzI3OndoaWxlKDEpe2w9YltpPj4xXXwwO249bCY2NTUzNTtpZihuPj4+MD5rPj4+
MCl7bT0yO289MjM5OTticmVha31kb3tpZigobCY2NTUzNSk8MTI4KXtwPWNbaj4+Ml18MDtpZigo
ZC1wfDApPDEpe209MTtvPTIzODg7YnJlYWsgTDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT1sJjI1NX1l
bHNle2lmKChsJjY1NTM1KTwyMDQ4KXtwPWNbaj4+Ml18MDtpZigoZC1wfDApPDIpe209MTtvPTIz
ODk7YnJlYWsgTDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT0obj4+PjZ8MTkyKSYyNTU7cD1jW2o+PjJd
fDA7Y1tqPj4yXT1wKzE7YVtwXT0obiY2M3wxMjgpJjI1NTticmVha31pZigobCY2NTUzNSk8NTUy
OTYpe3A9Y1tqPj4yXXwwO2lmKChkLXB8MCk8Myl7bT0xO289MjM5NzticmVhayBMMjcyN31jW2o+
PjJdPXArMTthW3BdPShuPj4+MTJ8MjI0KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtw
XT0obj4+PjYmNjN8MTI4KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtwXT0obiY2M3wx
MjgpJjI1NTticmVha31pZigobCY2NTUzNSk+PTU2MzIwKXtpZigobCY2NTUzNSk8NTczNDQpe209
MjtvPTIzOTM7YnJlYWsgTDI3Mjd9cD1jW2o+PjJdfDA7aWYoKGQtcHwwKTwzKXttPTE7bz0yMzk0
O2JyZWFrIEwyNzI3fWNbaj4+Ml09cCsxO2FbcF09KG4+Pj4xMnwyMjQpJjI1NTtwPWNbaj4+Ml18
MDtjW2o+PjJdPXArMTthW3BdPShuPj4+NiY2M3wxMjgpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJd
PXArMTthW3BdPShuJjYzfDEyOCkmMjU1O2JyZWFrfWlmKChoLWl8MCk8NCl7bT0xO289MjM5MTti
cmVhayBMMjcyN31wPWkrMnwwO3E9ZVtwPj4xXXwwO2lmKChxJjY0NTEyfDApIT01NjMyMCl7bT0y
O289MjM5MjticmVhayBMMjcyN31pZigoZC0oY1tqPj4yXXwwKXwwKTw0KXttPTE7bz0yMzk4O2Jy
ZWFrIEwyNzI3fXI9biY5NjA7aWYoKChyPDwxMCkrNjU1MzZ8bjw8MTAmNjQ1MTJ8cSYxMDIzKT4+
PjA+az4+PjApe209MjtvPTI0MDA7YnJlYWsgTDI3Mjd9Y1tnPj4yXT1wO3A9KHI+Pj42KSsxfDA7
cj1jW2o+PjJdfDA7Y1tqPj4yXT1yKzE7YVtyXT0ocD4+PjJ8MjQwKSYyNTU7cj1jW2o+PjJdfDA7
Y1tqPj4yXT1yKzE7YVtyXT0obj4+PjImMTV8cDw8NCY0OHwxMjgpJjI1NTtwPWNbaj4+Ml18MDtj
W2o+PjJdPXArMTthW3BdPShuPDw0JjQ4fHE+Pj42JjE1fDEyOCkmMjU1O3A9Y1tqPj4yXXwwO2Nb
aj4+Ml09cCsxO2FbcF09KHEmNjN8MTI4KSYyNTV9fXdoaWxlKDApO249KGNbZz4+Ml18MCkrMnww
O2NbZz4+Ml09bjtpZihuPj4+MDxmPj4+MCl7aT1ufWVsc2V7bT0wO289MjM5NTticmVha319aWYo
KG98MCk9PTIzODkpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5Myl7cmV0dXJuIG18MH1l
bHNlIGlmKChvfDApPT0yMzk0KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTI0MDApe3JldHVy
biBtfDB9ZWxzZSBpZigob3wwKT09MjM4OCl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzkx
KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTIpe3JldHVybiBtfDB9ZWxzZSBpZigob3ww
KT09MjM5NSl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzk3KXtyZXR1cm4gbXwwfWVsc2Ug
aWYoKG98MCk9PTIzOTgpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5OSl7cmV0dXJuIG18
MH1yZXR1cm4gMH1mdW5jdGlvbiBqbShlLGYsZyxoLGksaixrLGwpe2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTA7Y1tnPj4yXT1lO2Nbaj4+Ml09aDtoPWNbZz4+
Ml18MDtkb3tpZigobCY0fDApPT0wKXttPWh9ZWxzZXtpZigoZi1ofDApPD0yKXttPWg7YnJlYWt9
aWYoKGFbaF18MCkhPS0xNyl7bT1oO2JyZWFrfWlmKChhW2grMXwwXXwwKSE9LTY5KXttPWg7YnJl
YWt9aWYoKGFbaCsyfDBdfDApIT0tNjUpe209aDticmVha31lPWgrM3wwO2NbZz4+Ml09ZTttPWV9
fXdoaWxlKDApO0wyNzcyOmRve2lmKG0+Pj4wPGY+Pj4wKXtoPWY7bD1pO2U9Y1tqPj4yXXwwO249
bTtMMjc3NDp3aGlsZSgxKXtpZihlPj4+MD49aT4+PjApe289bjticmVhayBMMjc3Mn1wPWFbbl18
MDtxPXAmMjU1O2lmKHE+Pj4wPms+Pj4wKXtyPTI7cz0yNDQ0O2JyZWFrfWRve2lmKHA8PDI0Pj4y
ND4tMSl7YltlPj4xXT1wJjI1NTtjW2c+PjJdPShjW2c+PjJdfDApKzF9ZWxzZXtpZigocCYyNTUp
PDE5NCl7cj0yO3M9MjQ1MzticmVhayBMMjc3NH1pZigocCYyNTUpPDIyNCl7aWYoKGgtbnwwKTwy
KXtyPTE7cz0yNDU0O2JyZWFrIEwyNzc0fXQ9ZFtuKzF8MF18MDtpZigodCYxOTJ8MCkhPTEyOCl7
cj0yO3M9MjQ1NTticmVhayBMMjc3NH11PXQmNjN8cTw8NiYxOTg0O2lmKHU+Pj4wPms+Pj4wKXty
PTI7cz0yNDU2O2JyZWFrIEwyNzc0fWJbZT4+MV09dSY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDAp
KzI7YnJlYWt9aWYoKHAmMjU1KTwyNDApe2lmKChoLW58MCk8Myl7cj0xO3M9MjQ1NzticmVhayBM
Mjc3NH11PWFbbisxfDBdfDA7c3dpdGNoKHF8MCl7Y2FzZSAyMjQ6e2lmKCh1Ji0zMik8PDI0Pj4y
NCE9LTk2KXtyPTI7cz0yNDUwO2JyZWFrIEwyNzc0fWJyZWFrfTtjYXNlIDIzNzp7aWYoKHUmLTMy
KTw8MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDUyO2JyZWFrIEwyNzc0fWJyZWFrfTtkZWZhdWx0Ontp
ZigodSYtNjQpPDwyND4+MjQhPS0xMjgpe3I9MjtzPTI0NjI7YnJlYWsgTDI3NzR9fX10PWRbbisy
fDBdfDA7aWYoKHQmMTkyfDApIT0xMjgpe3I9MjtzPTI0NDM7YnJlYWsgTDI3NzR9dj0odSYyNTUp
PDw2JjQwMzJ8cTw8MTJ8dCY2MztpZigodiY2NTUzNSk+Pj4wPms+Pj4wKXtyPTI7cz0yNDQyO2Jy
ZWFrIEwyNzc0fWJbZT4+MV09diY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDApKzM7YnJlYWt9aWYo
KHAmMjU1KT49MjQ1KXtyPTI7cz0yNDQ3O2JyZWFrIEwyNzc0fWlmKChoLW58MCk8NCl7cj0xO3M9
MjQ1ODticmVhayBMMjc3NH12PWFbbisxfDBdfDA7c3dpdGNoKHF8MCl7Y2FzZSAyNDA6e2lmKCh2
KzExMiYyNTUpPj00OCl7cj0yO3M9MjQ0ODticmVhayBMMjc3NH1icmVha307Y2FzZSAyNDQ6e2lm
KCh2Ji0xNik8PDI0Pj4yNCE9LTEyOCl7cj0yO3M9MjQ1OTticmVhayBMMjc3NH1icmVha307ZGVm
YXVsdDp7aWYoKHYmLTY0KTw8MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDYwO2JyZWFrIEwyNzc0fX19
dD1kW24rMnwwXXwwO2lmKCh0JjE5MnwwKSE9MTI4KXtyPTI7cz0yNDYxO2JyZWFrIEwyNzc0fXU9
ZFtuKzN8MF18MDtpZigodSYxOTJ8MCkhPTEyOCl7cj0yO3M9MjQ0OTticmVhayBMMjc3NH1pZigo
bC1lfDApPDQpe3I9MTtzPTI0NDU7YnJlYWsgTDI3NzR9dz1xJjc7eD12JjI1NTt2PXQ8PDY7eT11
JjYzO2lmKCh4PDwxMiYyNTgwNDh8dzw8MTh8diY0MDMyfHkpPj4+MD5rPj4+MCl7cj0yO3M9MjQ0
NjticmVhayBMMjc3NH1iW2U+PjFdPSh4PDwyJjYwfHQ+Pj40JjN8KCh4Pj4+NCYzfHc8PDIpPDw2
KSsxNjMyMHw1NTI5NikmNjU1MzU7dz0oY1tqPj4yXXwwKSsyfDA7Y1tqPj4yXT13O2Jbdz4+MV09
KHl8diY5NjB8NTYzMjApJjY1NTM1O2NbZz4+Ml09KGNbZz4+Ml18MCkrNH19d2hpbGUoMCk7cT0o
Y1tqPj4yXXwwKSsyfDA7Y1tqPj4yXT1xO3A9Y1tnPj4yXXwwO2lmKHA+Pj4wPGY+Pj4wKXtlPXE7
bj1wfWVsc2V7bz1wO2JyZWFrIEwyNzcyfX1pZigoc3wwKT09MjQ0Mil7cmV0dXJuIHJ8MH1lbHNl
IGlmKChzfDApPT0yNDQzKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDQpe3JldHVybiBy
fDB9ZWxzZSBpZigoc3wwKT09MjQ0OCl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ5KXty
ZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTApe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09
MjQ0NSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ2KXtyZXR1cm4gcnwwfWVsc2UgaWYo
KHN8MCk9PTI0NDcpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1Nil7cmV0dXJuIHJ8MH1l
bHNlIGlmKChzfDApPT0yNDU3KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTgpe3JldHVy
biByfDB9ZWxzZSBpZigoc3wwKT09MjQ1OSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDYw
KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NjEpe3JldHVybiByfDB9ZWxzZSBpZigoc3ww
KT09MjQ2Mil7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDUyKXtyZXR1cm4gcnwwfWVsc2Ug
aWYoKHN8MCk9PTI0NTMpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1NCl7cmV0dXJuIHJ8
MH1lbHNlIGlmKChzfDApPT0yNDU1KXtyZXR1cm4gcnwwfX1lbHNle289bX19d2hpbGUoMCk7cj1v
Pj4+MDxmPj4+MHwwO3JldHVybiByfDB9ZnVuY3Rpb24gam4oYixjLGUsZixnKXtiPWJ8MDtjPWN8
MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTA7ZG97aWYoKGcmNHwwKT09MCl7aD1ifWVsc2V7aWYo
KGMtYnwwKTw9Mil7aD1iO2JyZWFrfWlmKChhW2JdfDApIT0tMTcpe2g9YjticmVha31pZigoYVti
KzF8MF18MCkhPS02OSl7aD1iO2JyZWFrfWg9KGFbYisyfDBdfDApPT0tNjU/YiszfDA6Yn19d2hp
bGUoMCk7TDI4NDE6ZG97aWYoaD4+PjA8Yz4+PjAmKGV8MCkhPTApe2c9YztpPTA7aj1oO0wyODQz
OndoaWxlKDEpe2s9YVtqXXwwO2w9ayYyNTU7aWYobD4+PjA+Zj4+PjApe209ajticmVhayBMMjg0
MX1kb3tpZihrPDwyND4+MjQ+LTEpe249aisxfDA7bz1pfWVsc2V7aWYoKGsmMjU1KTwxOTQpe209
ajticmVhayBMMjg0MX1pZigoayYyNTUpPDIyNCl7aWYoKGctanwwKTwyKXttPWo7YnJlYWsgTDI4
NDF9cD1kW2orMXwwXXwwO2lmKChwJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9aWYoKHAm
NjN8bDw8NiYxOTg0KT4+PjA+Zj4+PjApe209ajticmVhayBMMjg0MX1uPWorMnwwO289aTticmVh
a31pZigoayYyNTUpPDI0MCl7cT1qO2lmKChnLXF8MCk8Myl7bT1qO2JyZWFrIEwyODQxfXA9YVtq
KzF8MF18MDtzd2l0Y2gobHwwKXtjYXNlIDIyNDp7aWYoKHAmLTMyKTw8MjQ+PjI0IT0tOTYpe3I9
MjQ4MzticmVhayBMMjg0M31icmVha307Y2FzZSAyMzc6e2lmKChwJi0zMik8PDI0Pj4yNCE9LTEy
OCl7cj0yNDg1O2JyZWFrIEwyODQzfWJyZWFrfTtkZWZhdWx0OntpZigocCYtNjQpPDwyND4+MjQh
PS0xMjgpe3I9MjQ4NzticmVhayBMMjg0M319fXM9ZFtqKzJ8MF18MDtpZigocyYxOTJ8MCkhPTEy
OCl7bT1qO2JyZWFrIEwyODQxfWlmKCgocCYyNTUpPDw2JjQwMzJ8bDw8MTImNjE0NDB8cyY2Myk+
Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDI4NDF9bj1qKzN8MDtvPWk7YnJlYWt9aWYoKGsmMjU1KT49
MjQ1KXttPWo7YnJlYWsgTDI4NDF9dD1qO2lmKChnLXR8MCk8NCl7bT1qO2JyZWFrIEwyODQxfWlm
KChlLWl8MCk+Pj4wPDIpe209ajticmVhayBMMjg0MX1zPWFbaisxfDBdfDA7c3dpdGNoKGx8MCl7
Y2FzZSAyNDA6e2lmKChzKzExMiYyNTUpPj00OCl7cj0yNDk2O2JyZWFrIEwyODQzfWJyZWFrfTtj
YXNlIDI0NDp7aWYoKHMmLTE2KTw8MjQ+PjI0IT0tMTI4KXtyPTI0OTg7YnJlYWsgTDI4NDN9YnJl
YWt9O2RlZmF1bHQ6e2lmKChzJi02NCk8PDI0Pj4yNCE9LTEyOCl7cj0yNTAwO2JyZWFrIEwyODQz
fX19cD1kW2orMnwwXXwwO2lmKChwJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9dT1kW2or
M3wwXXwwO2lmKCh1JjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9aWYoKChzJjI1NSk8PDEy
JjI1ODA0OHxsPDwxOCYxODM1MDA4fHA8PDYmNDAzMnx1JjYzKT4+PjA+Zj4+PjApe209ajticmVh
ayBMMjg0MX1uPWorNHwwO289aSsxfDB9fXdoaWxlKDApO2w9bysxfDA7aWYobj4+PjA8Yz4+PjAm
bD4+PjA8ZT4+PjApe2k9bDtqPW59ZWxzZXttPW47YnJlYWsgTDI4NDF9fWlmKChyfDApPT0yNTAw
KXt2PXQtYnwwO3JldHVybiB2fDB9ZWxzZSBpZigocnwwKT09MjQ5Nil7dj10LWJ8MDtyZXR1cm4g
dnwwfWVsc2UgaWYoKHJ8MCk9PTI0OTgpe3Y9dC1ifDA7cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDAp
PT0yNDgzKXt2PXEtYnwwO3JldHVybiB2fDB9ZWxzZSBpZigocnwwKT09MjQ4NSl7dj1xLWJ8MDty
ZXR1cm4gdnwwfWVsc2UgaWYoKHJ8MCk9PTI0ODcpe3Y9cS1ifDA7cmV0dXJuIHZ8MH19ZWxzZXtt
PWh9fXdoaWxlKDApO3Y9bS1ifDA7cmV0dXJuIHZ8MH1mdW5jdGlvbiBqbyhhLGIsZCxlLGYsZyxo
LGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBr
PTAsbD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2NbYT4+Ml09ZDtjW2s+PjJdPWc7bD1q
bShkLGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1kKygoY1thPj4yXXwwKS1kKTtjW2o+
PjJdPWcrKChjW2s+PjJdfDApLWc+PjE8PDEpO2k9YjtyZXR1cm4gbHwwfWZ1bmN0aW9uIGpwKGEs
YixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7cmV0dXJuIGpuKGMsZCxlLDEx
MTQxMTEsMCl8MH1mdW5jdGlvbiBqcShhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5j
dGlvbiBqcihhLGIsZCxlLGYsZyxoLGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2Nb
YT4+Ml09ZDtjW2s+PjJdPWc7bD1qdyhkLGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1k
KygoY1thPj4yXXwwKS1kPj4yPDwyKTtjW2o+PjJdPWcrKChjW2s+PjJdfDApLWcpO2k9YjtyZXR1
cm4gbHwwfWZ1bmN0aW9uIGpzKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Y1tmPj4yXT1kO3JldHVybiAzfWZ1bmN0aW9uIGp0KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0
aW9uIGp1KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGp2KGEpe2E9YXwwO3JldHVybiA0fWZ1
bmN0aW9uIGp3KGIsZCxlLGYsZyxoLGksail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aT1pfDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MDtjW2U+PjJdPWI7Y1toPj4yXT1m
O2Rve2lmKChqJjJ8MCkhPTApe2lmKChnLWZ8MCk8Myl7az0xO3JldHVybiBrfDB9ZWxzZXtjW2g+
PjJdPWYrMTthW2ZdPS0xNztiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPS02OTtiPWNbaD4+
Ml18MDtjW2g+PjJdPWIrMTthW2JdPS02NTticmVha319fXdoaWxlKDApO2Y9Y1tlPj4yXXwwO2lm
KGY+Pj4wPj1kPj4+MCl7az0wO3JldHVybiBrfDB9aj1nO2c9ZjtMMjkxMjp3aGlsZSgxKXtmPWNb
Zz4+Ml18MDtpZigoZiYtMjA0OHwwKT09NTUyOTZ8Zj4+PjA+aT4+PjApe2s9MjtsPTI1NDg7YnJl
YWt9ZG97aWYoZj4+PjA8MTI4KXtiPWNbaD4+Ml18MDtpZigoai1ifDApPDEpe2s9MTtsPTI1NDQ7
YnJlYWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT1mJjI1NX1lbHNle2lmKGY+Pj4wPDIwNDgpe2I9
Y1toPj4yXXwwO2lmKChqLWJ8MCk8Mil7az0xO2w9MjU0NzticmVhayBMMjkxMn1jW2g+PjJdPWIr
MTthW2JdPShmPj4+NnwxOTIpJjI1NTtiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPShmJjYz
fDEyOCkmMjU1O2JyZWFrfWI9Y1toPj4yXXwwO209ai1ifDA7aWYoZj4+PjA8NjU1MzYpe2lmKCht
fDApPDMpe2s9MTtsPTI1NDk7YnJlYWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjEyfDIy
NCkmMjU1O249Y1toPj4yXXwwO2NbaD4+Ml09bisxO2Fbbl09KGY+Pj42JjYzfDEyOCkmMjU1O249
Y1toPj4yXXwwO2NbaD4+Ml09bisxO2Fbbl09KGYmNjN8MTI4KSYyNTU7YnJlYWt9ZWxzZXtpZigo
bXwwKTw0KXtrPTE7bD0yNTQyO2JyZWFrIEwyOTEyfWNbaD4+Ml09YisxO2FbYl09KGY+Pj4xOHwy
NDApJjI1NTtiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPShmPj4+MTImNjN8MTI4KSYyNTU7
Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjYmNjN8MTI4KSYyNTU7Yj1jW2g+PjJd
fDA7Y1toPj4yXT1iKzE7YVtiXT0oZiY2M3wxMjgpJjI1NTticmVha319fXdoaWxlKDApO2Y9KGNb
ZT4+Ml18MCkrNHwwO2NbZT4+Ml09ZjtpZihmPj4+MDxkPj4+MCl7Zz1mfWVsc2V7az0wO2w9MjU0
MzticmVha319aWYoKGx8MCk9PTI1NDMpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0Mil7
cmV0dXJuIGt8MH1lbHNlIGlmKChsfDApPT0yNTQ0KXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8MCk9
PTI1NDgpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0OSl7cmV0dXJuIGt8MH1lbHNlIGlm
KChsfDApPT0yNTQ3KXtyZXR1cm4ga3wwfXJldHVybiAwfWZ1bmN0aW9uIGp4KGIsZSxmLGcsaCxp
LGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7dmFy
IGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtjW2Y+PjJdPWI7Y1tpPj4y
XT1nO2c9Y1tmPj4yXXwwO2Rve2lmKChrJjR8MCk9PTApe2w9Z31lbHNle2lmKChlLWd8MCk8PTIp
e2w9ZzticmVha31pZigoYVtnXXwwKSE9LTE3KXtsPWc7YnJlYWt9aWYoKGFbZysxfDBdfDApIT0t
Njkpe2w9ZzticmVha31pZigoYVtnKzJ8MF18MCkhPS02NSl7bD1nO2JyZWFrfWI9ZyszfDA7Y1tm
Pj4yXT1iO2w9Yn19d2hpbGUoMCk7TDI5NDQ6ZG97aWYobD4+PjA8ZT4+PjApe2c9ZTtrPWNbaT4+
Ml18MDtiPWw7TDI5NDY6d2hpbGUoMSl7aWYoaz4+PjA+PWg+Pj4wKXttPWI7YnJlYWsgTDI5NDR9
bj1hW2JdfDA7bz1uJjI1NTtkb3tpZihuPDwyND4+MjQ+LTEpe2lmKG8+Pj4wPmo+Pj4wKXtwPTI7
cT0yNjA5O2JyZWFrIEwyOTQ2fWNbaz4+Ml09bztjW2Y+PjJdPShjW2Y+PjJdfDApKzF9ZWxzZXtp
ZigobiYyNTUpPDE5NCl7cD0yO3E9MjYwMjticmVhayBMMjk0Nn1pZigobiYyNTUpPDIyNCl7aWYo
KGctYnwwKTwyKXtwPTE7cT0yNjA1O2JyZWFrIEwyOTQ2fXI9ZFtiKzF8MF18MDtpZigociYxOTJ8
MCkhPTEyOCl7cD0yO3E9MjU5ODticmVhayBMMjk0Nn1zPXImNjN8bzw8NiYxOTg0O2lmKHM+Pj4w
Pmo+Pj4wKXtwPTI7cT0yNjA0O2JyZWFrIEwyOTQ2fWNbaz4+Ml09cztjW2Y+PjJdPShjW2Y+PjJd
fDApKzI7YnJlYWt9aWYoKG4mMjU1KTwyNDApe2lmKChnLWJ8MCk8Myl7cD0xO3E9MjYwNjticmVh
ayBMMjk0Nn1zPWFbYisxfDBdfDA7c3dpdGNoKG98MCl7Y2FzZSAyMjQ6e2lmKChzJi0zMik8PDI0
Pj4yNCE9LTk2KXtwPTI7cT0yNTkxO2JyZWFrIEwyOTQ2fWJyZWFrfTtjYXNlIDIzNzp7aWYoKHMm
LTMyKTw8MjQ+PjI0IT0tMTI4KXtwPTI7cT0yNTkzO2JyZWFrIEwyOTQ2fWJyZWFrfTtkZWZhdWx0
OntpZigocyYtNjQpPDwyND4+MjQhPS0xMjgpe3A9MjtxPTI2MDM7YnJlYWsgTDI5NDZ9fX1yPWRb
YisyfDBdfDA7aWYoKHImMTkyfDApIT0xMjgpe3A9MjtxPTI1OTQ7YnJlYWsgTDI5NDZ9dD0ocyYy
NTUpPDw2JjQwMzJ8bzw8MTImNjE0NDB8ciY2MztpZih0Pj4+MD5qPj4+MCl7cD0yO3E9MjU5Mjti
cmVhayBMMjk0Nn1jW2s+PjJdPXQ7Y1tmPj4yXT0oY1tmPj4yXXwwKSszO2JyZWFrfWlmKChuJjI1
NSk+PTI0NSl7cD0yO3E9MjYwNzticmVhayBMMjk0Nn1pZigoZy1ifDApPDQpe3A9MTtxPTI2MDg7
YnJlYWsgTDI5NDZ9dD1hW2IrMXwwXXwwO3N3aXRjaChvfDApe2Nhc2UgMjQwOntpZigodCsxMTIm
MjU1KT49NDgpe3A9MjtxPTI1OTA7YnJlYWsgTDI5NDZ9YnJlYWt9O2Nhc2UgMjQ0OntpZigodCYt
MTYpPDwyND4+MjQhPS0xMjgpe3A9MjtxPTI1OTY7YnJlYWsgTDI5NDZ9YnJlYWt9O2RlZmF1bHQ6
e2lmKCh0Ji02NCk8PDI0Pj4yNCE9LTEyOCl7cD0yO3E9MjU5NzticmVhayBMMjk0Nn19fXI9ZFti
KzJ8MF18MDtpZigociYxOTJ8MCkhPTEyOCl7cD0yO3E9MjU5OTticmVhayBMMjk0Nn1zPWRbYisz
fDBdfDA7aWYoKHMmMTkyfDApIT0xMjgpe3A9MjtxPTI2MDE7YnJlYWsgTDI5NDZ9dT0odCYyNTUp
PDwxMiYyNTgwNDh8bzw8MTgmMTgzNTAwOHxyPDw2JjQwMzJ8cyY2MztpZih1Pj4+MD5qPj4+MCl7
cD0yO3E9MjYwMDticmVhayBMMjk0Nn1jW2s+PjJdPXU7Y1tmPj4yXT0oY1tmPj4yXXwwKSs0fX13
aGlsZSgwKTtvPShjW2k+PjJdfDApKzR8MDtjW2k+PjJdPW87bj1jW2Y+PjJdfDA7aWYobj4+PjA8
ZT4+PjApe2s9bztiPW59ZWxzZXttPW47YnJlYWsgTDI5NDR9fWlmKChxfDApPT0yNTk3KXtyZXR1
cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTgpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5
OSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjAwKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8
MCk9PTI1OTMpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5NCl7cmV0dXJuIHB8MH1lbHNl
IGlmKChxfDApPT0yNTk2KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDUpe3JldHVybiBw
fDB9ZWxzZSBpZigocXwwKT09MjYwNil7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA3KXty
ZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDgpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09
MjYwOSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTkwKXtyZXR1cm4gcHwwfWVsc2UgaWYo
KHF8MCk9PTI1OTEpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5Mil7cmV0dXJuIHB8MH1l
bHNlIGlmKChxfDApPT0yNjAxKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDIpe3JldHVy
biBwfDB9ZWxzZSBpZigocXwwKT09MjYwMyl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA0
KXtyZXR1cm4gcHwwfX1lbHNle209bH19d2hpbGUoMCk7cD1tPj4+MDxlPj4+MHwwO3JldHVybiBw
fDB9ZnVuY3Rpb24gankoYixjLGUsZixnKXtiPWJ8MDtjPWN8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2
YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MDtkb3tpZigoZyY0fDApPT0wKXtoPWJ9ZWxzZXtpZigoYy1ifDApPD0yKXtoPWI7YnJlYWt9aWYo
KGFbYl18MCkhPS0xNyl7aD1iO2JyZWFrfWlmKChhW2IrMXwwXXwwKSE9LTY5KXtoPWI7YnJlYWt9
aD0oYVtiKzJ8MF18MCk9PS02NT9iKzN8MDpifX13aGlsZSgwKTtMMzAxMTpkb3tpZihoPj4+MDxj
Pj4+MCYoZXwwKSE9MCl7Zz1jO2k9MTtqPWg7TDMwMTM6d2hpbGUoMSl7az1hW2pdfDA7bD1rJjI1
NTtkb3tpZihrPDwyND4+MjQ+LTEpe2lmKGw+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1q
KzF8MH1lbHNle2lmKChrJjI1NSk8MTk0KXttPWo7YnJlYWsgTDMwMTF9aWYoKGsmMjU1KTwyMjQp
e2lmKChnLWp8MCk8Mil7bT1qO2JyZWFrIEwzMDExfW89ZFtqKzF8MF18MDtpZigobyYxOTJ8MCkh
PTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKChvJjYzfGw8PDYmMTk4NCk+Pj4wPmY+Pj4wKXttPWo7
YnJlYWsgTDMwMTF9bj1qKzJ8MDticmVha31pZigoayYyNTUpPDI0MCl7cD1qO2lmKChnLXB8MCk8
Myl7bT1qO2JyZWFrIEwzMDExfW89YVtqKzF8MF18MDtzd2l0Y2gobHwwKXtjYXNlIDIyNDp7aWYo
KG8mLTMyKTw8MjQ+PjI0IT0tOTYpe3E9MjYzMDticmVhayBMMzAxM31icmVha307Y2FzZSAyMzc6
e2lmKChvJi0zMik8PDI0Pj4yNCE9LTEyOCl7cT0yNjMyO2JyZWFrIEwzMDEzfWJyZWFrfTtkZWZh
dWx0OntpZigobyYtNjQpPDwyND4+MjQhPS0xMjgpe3E9MjYzNDticmVhayBMMzAxM319fXI9ZFtq
KzJ8MF18MDtpZigociYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKCgobyYyNTUpPDw2
JjQwMzJ8bDw8MTImNjE0NDB8ciY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzN8
MDticmVha31pZigoayYyNTUpPj0yNDUpe209ajticmVhayBMMzAxMX1zPWo7aWYoKGctc3wwKTw0
KXttPWo7YnJlYWsgTDMwMTF9cj1hW2orMXwwXXwwO3N3aXRjaChsfDApe2Nhc2UgMjQwOntpZigo
cisxMTImMjU1KT49NDgpe3E9MjY0MjticmVhayBMMzAxM31icmVha307Y2FzZSAyNDQ6e2lmKChy
Ji0xNik8PDI0Pj4yNCE9LTEyOCl7cT0yNjQ0O2JyZWFrIEwzMDEzfWJyZWFrfTtkZWZhdWx0Ontp
ZigociYtNjQpPDwyND4+MjQhPS0xMjgpe3E9MjY0NjticmVhayBMMzAxM319fW89ZFtqKzJ8MF18
MDtpZigobyYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfXQ9ZFtqKzN8MF18MDtpZigodCYx
OTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKCgociYyNTUpPDwxMiYyNTgwNDh8bDw8MTgm
MTgzNTAwOHxvPDw2JjQwMzJ8dCY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzR8
MH19d2hpbGUoMCk7aWYoIShuPj4+MDxjPj4+MCZpPj4+MDxlPj4+MCkpe209bjticmVhayBMMzAx
MX1pPWkrMXwwO2o9bn1pZigocXwwKT09MjY0NCl7dT1zLWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYo
KHF8MCk9PTI2NDIpe3U9cy1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjMwKXt1PXAt
YnwwO3JldHVybiB1fDB9ZWxzZSBpZigocXwwKT09MjYzMil7dT1wLWJ8MDtyZXR1cm4gdXwwfWVs
c2UgaWYoKHF8MCk9PTI2MzQpe3U9cC1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjQ2
KXt1PXMtYnwwO3JldHVybiB1fDB9fWVsc2V7bT1ofX13aGlsZSgwKTt1PW0tYnwwO3JldHVybiB1
fDB9ZnVuY3Rpb24ganooYil7Yj1ifDA7cmV0dXJuIGFbYis4fDBdfDB9ZnVuY3Rpb24gakEoYSl7
YT1hfDA7cmV0dXJuIGNbYSs4Pj4yXXwwfWZ1bmN0aW9uIGpCKGIpe2I9YnwwO3JldHVybiBhW2Ir
OXwwXXwwfWZ1bmN0aW9uIGpDKGEpe2E9YXwwO3JldHVybiBjW2ErMTI+PjJdfDB9ZnVuY3Rpb24g
akQoYSxiLGQsZSxmLGcsaCxqKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtqPWp8MDt2YXIgaz0wLGw9MDtiPWk7aT1pKzE2fDA7YT1ifDA7az1iKzh8MDtjW2E+PjJd
PWQ7Y1trPj4yXT1nO2w9angoZCxlLGEsZyxoLGssMTExNDExMSwwKXwwO2NbZj4+Ml09ZCsoKGNb
YT4+Ml18MCktZCk7Y1tqPj4yXT1nKygoY1trPj4yXXwwKS1nPj4yPDwyKTtpPWI7cmV0dXJuIGx8
MH1mdW5jdGlvbiBqRShhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO3Jl
dHVybiBqeShjLGQsZSwxMTE0MTExLDApfDB9ZnVuY3Rpb24gakYoYSl7YT1hfDA7ZGUoYXwwKTtr
UyhhKTtyZXR1cm59ZnVuY3Rpb24gakcoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVu
Y3Rpb24gakgoYSl7YT1hfDA7Y1thPj4yXT0zMDMyO2RQKGErMTJ8MCk7ZGUoYXwwKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24gakkoYSl7YT1hfDA7Y1thPj4yXT0zMDMyO2RQKGErMTJ8MCk7ZGUoYXww
KTtyZXR1cm59ZnVuY3Rpb24gakooYSl7YT1hfDA7Y1thPj4yXT0yOTg0O2RQKGErMTZ8MCk7ZGUo
YXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaksoYSl7YT1hfDA7Y1thPj4yXT0yOTg0O2RQKGEr
MTZ8MCk7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gakwoYSxiKXthPWF8MDtiPWJ8MDtkWShhLGIr
MTJ8MCk7cmV0dXJufWZ1bmN0aW9uIGpNKGEsYil7YT1hfDA7Yj1ifDA7ZFkoYSxiKzE2fDApO3Jl
dHVybn1mdW5jdGlvbiBqTihhLGIpe2E9YXwwO2I9YnwwO2RaKGEsMTI4OCw0KTtyZXR1cm59ZnVu
Y3Rpb24gak8oYSxiKXthPWF8MDtiPWJ8MDtleChhLDEyNjQsa20oMTI2NCl8MCk7cmV0dXJufWZ1
bmN0aW9uIGpQKGEsYil7YT1hfDA7Yj1ifDA7ZFooYSwxMjU2LDUpO3JldHVybn1mdW5jdGlvbiBq
UShhLGIpe2E9YXwwO2I9YnwwO2V4KGEsMTIzMixrbSgxMjMyKXwwKTtyZXR1cm59ZnVuY3Rpb24g
alIoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM1Ml18MCkhPTApe2Q9Y1szNzAyXXwwO3JldHVy
biBkfDB9aWYoKGJjKDE2MzUyKXwwKT09MCl7ZD1jWzM3MDJdfDA7cmV0dXJuIGR8MH1kb3tpZigo
YVsxNjIzMl18MCk9PTApe2lmKChiYygxNjIzMil8MCk9PTApe2JyZWFrfWskKDExMzQ0LDAsMTY4
KTthJCgyNjYsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExMzQ0LDE1MzYpfDA7ZFEoMTEzNTYsMTUy
OCl8MDtkUSgxMTM2OCwxNTIwKXwwO2RRKDExMzgwLDE1MDQpfDA7ZFEoMTEzOTIsMTQ4OCl8MDtk
USgxMTQwNCwxNDgwKXwwO2RRKDExNDE2LDE0NjQpfDA7ZFEoMTE0MjgsMTQ1Nil8MDtkUSgxMTQ0
MCwxNDQ4KXwwO2RRKDExNDUyLDE0NDApfDA7ZFEoMTE0NjQsMTQzMil8MDtkUSgxMTQ3NiwxNDAw
KXwwO2RRKDExNDg4LDEzOTIpfDA7ZFEoMTE1MDAsMTM4NCl8MDtjWzM3MDJdPTExMzQ0O2Q9Y1sz
NzAyXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galMoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjI5
Nl18MCkhPTApe2Q9Y1szNjgwXXwwO3JldHVybiBkfDB9aWYoKGJjKDE2Mjk2KXwwKT09MCl7ZD1j
WzM2ODBdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsxNjIwOF18MCk9PTApe2lmKChiYygxNjIwOCl8
MCk9PTApe2JyZWFrfWskKDEwNjAwLDAsMTY4KTthJCgxNDgsMCx1fDApfDB9fXdoaWxlKDApO2Vm
KDEwNjAwLDE5MTIpfDA7ZWYoMTA2MTIsMTg4MCl8MDtlZigxMDYyNCwxODQ4KXwwO2VmKDEwNjM2
LDE4MDgpfDA7ZWYoMTA2NDgsMTc2OCl8MDtlZigxMDY2MCwxNzM2KXwwO2VmKDEwNjcyLDE2OTYp
fDA7ZWYoMTA2ODQsMTY4MCl8MDtlZigxMDY5NiwxNjI0KXwwO2VmKDEwNzA4LDE2MDgpfDA7ZWYo
MTA3MjAsMTU5Mil8MDtlZigxMDczMiwxNTc2KXwwO2VmKDEwNzQ0LDE1NjApfDA7ZWYoMTA3NTYs
MTU0NCl8MDtjWzM2ODBdPTEwNjAwO2Q9Y1szNjgwXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galQo
Yil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM0NF18MCkhPTApe2Q9Y1szNzAwXXwwO3JldHVybiBk
fDB9aWYoKGJjKDE2MzQ0KXwwKT09MCl7ZD1jWzM3MDBdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsx
NjIyNF18MCk9PTApe2lmKChiYygxNjIyNCl8MCk9PTApe2JyZWFrfWskKDExMDU2LDAsMjg4KTth
JCgxNzAsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExMDU2LDI4OCl8MDtkUSgxMTA2OCwyNzIpfDA7
ZFEoMTEwODAsMjY0KXwwO2RRKDExMDkyLDI1Nil8MDtkUSgxMTEwNCwyNDgpfDA7ZFEoMTExMTYs
MjQwKXwwO2RRKDExMTI4LDIzMil8MDtkUSgxMTE0MCwyMjQpfDA7ZFEoMTExNTIsMTY4KXwwO2RR
KDExMTY0LDE2MCl8MDtkUSgxMTE3NiwxNDQpfDA7ZFEoMTExODgsMTI4KXwwO2RRKDExMjAwLDEy
MCl8MDtkUSgxMTIxMiwxMTIpfDA7ZFEoMTEyMjQsMTA0KXwwO2RRKDExMjM2LDk2KXwwO2RRKDEx
MjQ4LDI0OCl8MDtkUSgxMTI2MCw4OCl8MDtkUSgxMTI3Miw4MCl8MDtkUSgxMTI4NCwxOTc2KXww
O2RRKDExMjk2LDE5NjgpfDA7ZFEoMTEzMDgsMTk2MCl8MDtkUSgxMTMyMCwxOTUyKXwwO2RRKDEx
MzMyLDE5NDQpfDA7Y1szNzAwXT0xMTA1NjtkPWNbMzcwMF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9u
IGpVKGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYyODhdfDApIT0wKXtkPWNbMzY3OF18MDtyZXR1
cm4gZHwwfWlmKChiYygxNjI4OCl8MCk9PTApe2Q9Y1szNjc4XXwwO3JldHVybiBkfDB9ZG97aWYo
KGFbMTYyMDBdfDApPT0wKXtpZigoYmMoMTYyMDApfDApPT0wKXticmVha31rJCgxMDMxMiwwLDI4
OCk7YSQoMTIyLDAsdXwwKXwwfX13aGlsZSgwKTtlZigxMDMxMiw4MjQpfDA7ZWYoMTAzMjQsNzg0
KXwwO2VmKDEwMzM2LDc2MCl8MDtlZigxMDM0OCw3MzYpfDA7ZWYoMTAzNjAsNDI0KXwwO2VmKDEw
MzcyLDcxMil8MDtlZigxMDM4NCw2ODgpfDA7ZWYoMTAzOTYsNjU2KXwwO2VmKDEwNDA4LDYxNil8
MDtlZigxMDQyMCw1ODQpfDA7ZWYoMTA0MzIsNTQ0KXwwO2VmKDEwNDQ0LDUwNCl8MDtlZigxMDQ1
Niw0ODgpfDA7ZWYoMTA0NjgsNDcyKXwwO2VmKDEwNDgwLDQ1Nil8MDtlZigxMDQ5Miw0NDApfDA7
ZWYoMTA1MDQsNDI0KXwwO2VmKDEwNTE2LDQwOCl8MDtlZigxMDUyOCwzOTIpfDA7ZWYoMTA1NDAs
Mzc2KXwwO2VmKDEwNTUyLDM0NCl8MDtlZigxMDU2NCwzMjgpfDA7ZWYoMTA1NzYsMzEyKXwwO2Vm
KDEwNTg4LDI5Nil8MDtjWzM2NzhdPTEwMzEyO2Q9Y1szNjc4XXwwO3JldHVybiBkfDB9ZnVuY3Rp
b24galYoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM2MF18MCkhPTApe2Q9Y1szNzA0XXwwO3Jl
dHVybiBkfDB9aWYoKGJjKDE2MzYwKXwwKT09MCl7ZD1jWzM3MDRdfDA7cmV0dXJuIGR8MH1kb3tp
ZigoYVsxNjI0MF18MCk9PTApe2lmKChiYygxNjI0MCl8MCk9PTApe2JyZWFrfWskKDExNTEyLDAs
Mjg4KTthJCgxMjAsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExNTEyLDg2NCl8MDtkUSgxMTUyNCw4
NTYpfDA7Y1szNzA0XT0xMTUxMjtkPWNbMzcwNF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpXKGIp
e2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYzMDRdfDApIT0wKXtkPWNbMzY4Ml18MDtyZXR1cm4gZHww
fWlmKChiYygxNjMwNCl8MCk9PTApe2Q9Y1szNjgyXXwwO3JldHVybiBkfDB9ZG97aWYoKGFbMTYy
MTZdfDApPT0wKXtpZigoYmMoMTYyMTYpfDApPT0wKXticmVha31rJCgxMDc2OCwwLDI4OCk7YSQo
MjQwLDAsdXwwKXwwfX13aGlsZSgwKTtlZigxMDc2OCw4ODgpfDA7ZWYoMTA3ODAsODcyKXwwO2Nb
MzY4Ml09MTA3Njg7ZD1jWzM2ODJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBqWChiKXtiPWJ8MDtp
ZigoYVsxNjM2OF18MCkhPTApe3JldHVybiAxNDgyNH1pZigoYmMoMTYzNjgpfDApPT0wKXtyZXR1
cm4gMTQ4MjR9ZFooMTQ4MjQsMTIxNiw4KTthJCgyNTgsMTQ4MjQsdXwwKXwwO3JldHVybiAxNDgy
NH1mdW5jdGlvbiBqWShiKXtiPWJ8MDtpZigoYVsxNjMxMl18MCkhPTApe3JldHVybiAxNDczNn1p
ZigoYmMoMTYzMTIpfDApPT0wKXtyZXR1cm4gMTQ3MzZ9ZXgoMTQ3MzYsMTE3NixrbSgxMTc2KXww
KTthJCgxOTIsMTQ3MzYsdXwwKXwwO3JldHVybiAxNDczNn1mdW5jdGlvbiBqWihiKXtiPWJ8MDtp
ZigoYVsxNjM5Ml18MCkhPTApe3JldHVybiAxNDg3Mn1pZigoYmMoMTYzOTIpfDApPT0wKXtyZXR1
cm4gMTQ4NzJ9ZFooMTQ4NzIsMTE0NCw4KTthJCgyNTgsMTQ4NzIsdXwwKXwwO3JldHVybiAxNDg3
Mn1mdW5jdGlvbiBqXyhiKXtiPWJ8MDtpZigoYVsxNjMzNl18MCkhPTApe3JldHVybiAxNDc4NH1p
ZigoYmMoMTYzMzYpfDApPT0wKXtyZXR1cm4gMTQ3ODR9ZXgoMTQ3ODQsMTEwNCxrbSgxMTA0KXww
KTthJCgxOTIsMTQ3ODQsdXwwKXwwO3JldHVybiAxNDc4NH1mdW5jdGlvbiBqJChiKXtiPWJ8MDtp
ZigoYVsxNjM4NF18MCkhPTApe3JldHVybiAxNDg1Nn1pZigoYmMoMTYzODQpfDApPT0wKXtyZXR1
cm4gMTQ4NTZ9ZFooMTQ4NTYsMTA4MCwyMCk7YSQoMjU4LDE0ODU2LHV8MCl8MDtyZXR1cm4gMTQ4
NTZ9ZnVuY3Rpb24gajAoYil7Yj1ifDA7aWYoKGFbMTYzMjhdfDApIT0wKXtyZXR1cm4gMTQ3Njh9
aWYoKGJjKDE2MzI4KXwwKT09MCl7cmV0dXJuIDE0NzY4fWV4KDE0NzY4LDk5MixrbSg5OTIpfDAp
O2EkKDE5MiwxNDc2OCx1fDApfDA7cmV0dXJuIDE0NzY4fWZ1bmN0aW9uIGoxKGIpe2I9YnwwO2lm
KChhWzE2Mzc2XXwwKSE9MCl7cmV0dXJuIDE0ODQwfWlmKChiYygxNjM3Nil8MCk9PTApe3JldHVy
biAxNDg0MH1kWigxNDg0MCw5NzYsMTEpO2EkKDI1OCwxNDg0MCx1fDApfDA7cmV0dXJuIDE0ODQw
fWZ1bmN0aW9uIGoyKGIpe2I9YnwwO2lmKChhWzE2MzIwXXwwKSE9MCl7cmV0dXJuIDE0NzUyfWlm
KChiYygxNjMyMCl8MCk9PTApe3JldHVybiAxNDc1Mn1leCgxNDc1Miw5Mjgsa20oOTI4KXwwKTth
JCgxOTIsMTQ3NTIsdXwwKXwwO3JldHVybiAxNDc1Mn1mdW5jdGlvbiBqMyhhKXthPWF8MDt2YXIg
Yj0wLGQ9MCxlPTAsZj0wO2I9YSs0fDA7ZD0oY1thPj4yXXwwKSsoY1tiKzQ+PjJdfDApfDA7YT1k
O2U9Y1tiPj4yXXwwO2lmKChlJjF8MCk9PTApe2Y9ZTtiWVtmJjUxMV0oYSk7cmV0dXJufWVsc2V7
Zj1jWyhjW2Q+PjJdfDApKyhlLTEpPj4yXXwwO2JZW2YmNTExXShhKTtyZXR1cm59fWZ1bmN0aW9u
IGo0KGEpe2E9YXwwO2VlKDExMDQ0KTtlZSgxMTAzMik7ZWUoMTEwMjApO2VlKDExMDA4KTtlZSgx
MDk5Nik7ZWUoMTA5ODQpO2VlKDEwOTcyKTtlZSgxMDk2MCk7ZWUoMTA5NDgpO2VlKDEwOTM2KTtl
ZSgxMDkyNCk7ZWUoMTA5MTIpO2VlKDEwOTAwKTtlZSgxMDg4OCk7ZWUoMTA4NzYpO2VlKDEwODY0
KTtlZSgxMDg1Mik7ZWUoMTA4NDApO2VlKDEwODI4KTtlZSgxMDgxNik7ZWUoMTA4MDQpO2VlKDEw
NzkyKTtlZSgxMDc4MCk7ZWUoMTA3NjgpO3JldHVybn1mdW5jdGlvbiBqNShiLGQpe2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wO2U9Yis4fDA7Zj1iKzR8MDtnPWNbZj4+Ml18MDtoPWNbZT4+Ml18MDtpPWc7aWYoaC1p
Pj4yPj4+MD49ZD4+PjApe2o9ZDtrPWc7ZG97aWYoKGt8MCk9PTApe2w9MH1lbHNle2Nbaz4+Ml09
MDtsPWNbZj4+Ml18MH1rPWwrNHwwO2NbZj4+Ml09aztqPWotMXwwO313aGlsZSgoanwwKSE9MCk7
cmV0dXJufWo9YisxNnwwO2s9YnwwO2w9Y1trPj4yXXwwO2c9aS1sPj4yO2k9ZytkfDA7aWYoaT4+
PjA+MTA3Mzc0MTgyMyl7aXIoMCl9bT1oLWx8MDtkb3tpZihtPj4yPj4+MD41MzY4NzA5MTApe249
MTA3Mzc0MTgyMztvPTI5MTl9ZWxzZXtsPW0+PjE7aD1sPj4+MDxpPj4+MD9pOmw7aWYoKGh8MCk9
PTApe3A9MDtxPTA7YnJlYWt9bD1iKzEyOHwwO2lmKCEoKGFbbF0mMSk9PTAmaD4+PjA8MjkpKXtu
PWg7bz0yOTE5O2JyZWFrfWFbbF09MTtwPWo7cT1ofX13aGlsZSgwKTtpZigob3wwKT09MjkxOSl7
cD1rTyhuPDwyKXwwO3E9bn1uPWQ7ZD1wKyhnPDwyKXwwO2Rve2lmKChkfDApPT0wKXtyPTB9ZWxz
ZXtjW2Q+PjJdPTA7cj1kfWQ9cis0fDA7bj1uLTF8MDt9d2hpbGUoKG58MCkhPTApO249cCsocTw8
Mil8MDtxPWNbaz4+Ml18MDtyPShjW2Y+PjJdfDApLXF8MDtvPXArKGctKHI+PjIpPDwyKXwwO2c9
bztwPXE7a1koZ3wwLHB8MCxyKXwwO2Nbaz4+Ml09bztjW2Y+PjJdPWQ7Y1tlPj4yXT1uO2lmKChx
fDApPT0wKXtyZXR1cm59aWYoKHF8MCk9PShqfDApKXthW2IrMTI4fDBdPTA7cmV0dXJufWVsc2V7
a1MocCk7cmV0dXJufX1mdW5jdGlvbiBqNihhKXthPWF8MDtkUCgxMTc4OCk7ZFAoMTE3NzYpO2RQ
KDExNzY0KTtkUCgxMTc1Mik7ZFAoMTE3NDApO2RQKDExNzI4KTtkUCgxMTcxNik7ZFAoMTE3MDQp
O2RQKDExNjkyKTtkUCgxMTY4MCk7ZFAoMTE2NjgpO2RQKDExNjU2KTtkUCgxMTY0NCk7ZFAoMTE2
MzIpO2RQKDExNjIwKTtkUCgxMTYwOCk7ZFAoMTE1OTYpO2RQKDExNTg0KTtkUCgxMTU3Mik7ZFAo
MTE1NjApO2RQKDExNTQ4KTtkUCgxMTUzNik7ZFAoMTE1MjQpO2RQKDExNTEyKTtyZXR1cm59ZnVu
Y3Rpb24gajcoYSl7YT1hfDA7ZWUoMTA1ODgpO2VlKDEwNTc2KTtlZSgxMDU2NCk7ZWUoMTA1NTIp
O2VlKDEwNTQwKTtlZSgxMDUyOCk7ZWUoMTA1MTYpO2VlKDEwNTA0KTtlZSgxMDQ5Mik7ZWUoMTA0
ODApO2VlKDEwNDY4KTtlZSgxMDQ1Nik7ZWUoMTA0NDQpO2VlKDEwNDMyKTtlZSgxMDQyMCk7ZWUo
MTA0MDgpO2VlKDEwMzk2KTtlZSgxMDM4NCk7ZWUoMTAzNzIpO2VlKDEwMzYwKTtlZSgxMDM0OCk7
ZWUoMTAzMzYpO2VlKDEwMzI0KTtlZSgxMDMxMik7cmV0dXJufWZ1bmN0aW9uIGo4KGEpe2E9YXww
O2RQKDExMzMyKTtkUCgxMTMyMCk7ZFAoMTEzMDgpO2RQKDExMjk2KTtkUCgxMTI4NCk7ZFAoMTEy
NzIpO2RQKDExMjYwKTtkUCgxMTI0OCk7ZFAoMTEyMzYpO2RQKDExMjI0KTtkUCgxMTIxMik7ZFAo
MTEyMDApO2RQKDExMTg4KTtkUCgxMTE3Nik7ZFAoMTExNjQpO2RQKDExMTUyKTtkUCgxMTE0MCk7
ZFAoMTExMjgpO2RQKDExMTE2KTtkUCgxMTEwNCk7ZFAoMTEwOTIpO2RQKDExMDgwKTtkUCgxMTA2
OCk7ZFAoMTEwNTYpO3JldHVybn1mdW5jdGlvbiBqOShhKXthPWF8MDtlZSgxMDc1Nik7ZWUoMTA3
NDQpO2VlKDEwNzMyKTtlZSgxMDcyMCk7ZWUoMTA3MDgpO2VlKDEwNjk2KTtlZSgxMDY4NCk7ZWUo
MTA2NzIpO2VlKDEwNjYwKTtlZSgxMDY0OCk7ZWUoMTA2MzYpO2VlKDEwNjI0KTtlZSgxMDYxMik7
ZWUoMTA2MDApO3JldHVybn1mdW5jdGlvbiBrYShhKXthPWF8MDtkUCgxMTUwMCk7ZFAoMTE0ODgp
O2RQKDExNDc2KTtkUCgxMTQ2NCk7ZFAoMTE0NTIpO2RQKDExNDQwKTtkUCgxMTQyOCk7ZFAoMTE0
MTYpO2RQKDExNDA0KTtkUCgxMTM5Mik7ZFAoMTEzODApO2RQKDExMzY4KTtkUCgxMTM1Nik7ZFAo
MTEzNDQpO3JldHVybn1mdW5jdGlvbiBrYihhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJu
IGtjKDAsYSxiLChjfDApIT0wP2M6OTgzMil8MH1mdW5jdGlvbiBrYyhiLGQsZSxmKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCx0PTAsdT0wLHY9MCx3PTA7Zz1pO2k9aSs4fDA7aD1nfDA7Y1toPj4yXT1iO2o9KChm
fDApPT0wPzk4MjQ6Zil8MDtmPWNbaj4+Ml18MDtMNzpkb3tpZigoZHwwKT09MCl7aWYoKGZ8MCk9
PTApe2s9MH1lbHNle2JyZWFrfWk9ZztyZXR1cm4ga3wwfWVsc2V7aWYoKGJ8MCk9PTApe2w9aDtj
W2g+PjJdPWw7bT1sfWVsc2V7bT1ifWlmKChlfDApPT0wKXtrPS0yO2k9ZztyZXR1cm4ga3wwfWRv
e2lmKChmfDApPT0wKXtsPWFbZF18MDtuPWwmMjU1O2lmKGw8PDI0Pj4yND4tMSl7Y1ttPj4yXT1u
O2s9bDw8MjQ+PjI0IT0wfDA7aT1nO3JldHVybiBrfDB9ZWxzZXtsPW4tMTk0fDA7aWYobD4+PjA+
NTApe2JyZWFrIEw3fW89ZCsxfDA7cD1jW3MrKGw8PDIpPj4yXXwwO3E9ZS0xfDA7YnJlYWt9fWVs
c2V7bz1kO3A9ZjtxPWV9fXdoaWxlKDApO0wyNTpkb3tpZigocXwwKT09MCl7cj1wfWVsc2V7bD1h
W29dfDA7bj0obCYyNTUpPj4+MztpZigobi0xNnxuKyhwPj4yNikpPj4+MD43KXticmVhayBMN31l
bHNle3Q9bzt1PXA7dj1xO3c9bH13aGlsZSgxKXt0PXQrMXwwO3U9KHcmMjU1KS0xMjh8dTw8Njt2
PXYtMXwwO2lmKCh1fDApPj0wKXticmVha31pZigodnwwKT09MCl7cj11O2JyZWFrIEwyNX13PWFb
dF18MDtpZigoKHcmMjU1KS0xMjh8MCk+Pj4wPjYzKXticmVhayBMN319Y1tqPj4yXT0wO2NbbT4+
Ml09dTtrPWUtdnwwO2k9ZztyZXR1cm4ga3wwfX13aGlsZSgwKTtjW2o+PjJdPXI7az0tMjtpPWc7
cmV0dXJuIGt8MH19d2hpbGUoMCk7Y1tqPj4yXT0wO2NbKGJ3KCl8MCk+PjJdPTEzODtrPS0xO2k9
ZztyZXR1cm4ga3wwfWZ1bmN0aW9uIGtkKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wLEk9MCxKPTA7Zz1pO2k9aSsxMDMyfDA7aD1nfDA7aj1nKzEwMjR8MDtrPWNbYj4+Ml18
MDtjW2o+PjJdPWs7bD0oYXwwKSE9MDttPWw/ZToyNTY7ZT1sP2E6aHwwO0wzODpkb3tpZigoa3ww
KT09MHwobXwwKT09MCl7bj0wO289ZDtwPW07cT1lO3I9a31lbHNle2E9aHwwO3M9bTt0PWQ7dT0w
O3Y9ZTt3PWs7d2hpbGUoMSl7eD10Pj4+Mjt5PXg+Pj4wPj1zPj4+MDtpZighKHl8dD4+PjA+MTMx
KSl7bj11O289dDtwPXM7cT12O3I9dzticmVhayBMMzh9ej15P3M6eDtBPXQtenwwO3g9a2Uodixq
LHosZil8MDtpZigoeHwwKT09LTEpe2JyZWFrfWlmKCh2fDApPT0oYXwwKSl7Qj1hO0M9c31lbHNl
e0I9disoeDw8Mil8MDtDPXMteHwwfXo9eCt1fDA7eD1jW2o+PjJdfDA7aWYoKHh8MCk9PTB8KEN8
MCk9PTApe249ejtvPUE7cD1DO3E9QjtyPXg7YnJlYWsgTDM4fWVsc2V7cz1DO3Q9QTt1PXo7dj1C
O3c9eH19bj0tMTtvPUE7cD0wO3E9djtyPWNbaj4+Ml18MH19d2hpbGUoMCk7TDQ5OmRve2lmKChy
fDApPT0wKXtEPW59ZWxzZXtpZigocHwwKT09MHwob3wwKT09MCl7RD1uO2JyZWFrfWVsc2V7RT1w
O0Y9bztHPW47SD1xO0k9cn13aGlsZSgxKXtKPWtjKEgsSSxGLGYpfDA7aWYoKEorMnwwKT4+PjA8
Myl7YnJlYWt9QT0oY1tqPj4yXXwwKStKfDA7Y1tqPj4yXT1BO0I9RS0xfDA7Qz1HKzF8MDtpZigo
QnwwKT09MHwoRnwwKT09KEp8MCkpe0Q9QzticmVhayBMNDl9ZWxzZXtFPUI7Rj1GLUp8MDtHPUM7
SD1IKzR8MDtJPUF9fXN3aXRjaChKfDApe2Nhc2UgMDp7Y1tqPj4yXT0wO0Q9RzticmVhayBMNDk7
YnJlYWt9O2Nhc2UtMTp7RD0tMTticmVhayBMNDk7YnJlYWt9O2RlZmF1bHQ6e2NbZj4+Ml09MDtE
PUc7YnJlYWsgTDQ5fX19fXdoaWxlKDApO2lmKCFsKXtpPWc7cmV0dXJuIER8MH1jW2I+PjJdPWNb
aj4+Ml07aT1nO3JldHVybiBEfDB9ZnVuY3Rpb24ga2UoYixlLGYsZyl7Yj1ifDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MDto
PWNbZT4+Ml18MDtkb3tpZigoZ3wwKT09MCl7aT01Nn1lbHNle2o9Z3wwO2s9Y1tqPj4yXXwwO2lm
KChrfDApPT0wKXtpPTU2O2JyZWFrfWlmKChifDApPT0wKXtsPWs7bT1oO249ZjtpPTY3O2JyZWFr
fWNbaj4+Ml09MDtvPWs7cD1oO3E9YjtyPWY7aT04N319d2hpbGUoMCk7aWYoKGl8MCk9PTU2KXtp
ZigoYnwwKT09MCl7dD1oO3U9ZjtpPTU4fWVsc2V7dj1oO3c9Yjt4PWY7aT01N319TDcwOndoaWxl
KDEpe2lmKChpfDApPT04Nyl7aT0wO2g9ZFtwXXwwO2c9aD4+PjM7aWYoKGctMTZ8Zysobz4+MjYp
KT4+PjA+Nyl7aT04ODticmVha31nPXArMXwwO3k9aC0xMjh8bzw8Njtkb3tpZigoeXwwKTwwKXto
PShkW2ddfDApLTEyOHwwO2lmKGg+Pj4wPjYzKXtpPTkxO2JyZWFrIEw3MH1rPXArMnwwO3o9aHx5
PDw2O2lmKCh6fDApPj0wKXtBPXo7Qj1rO2JyZWFrfWg9KGRba118MCktMTI4fDA7aWYoaD4+PjA+
NjMpe2k9OTQ7YnJlYWsgTDcwfUE9aHx6PDw2O0I9cCszfDB9ZWxzZXtBPXk7Qj1nfX13aGlsZSgw
KTtjW3E+PjJdPUE7dj1CO3c9cSs0fDA7eD1yLTF8MDtpPTU3O2NvbnRpbnVlfWVsc2UgaWYoKGl8
MCk9PTU4KXtpPTA7Zz1hW3RdfDA7ZG97aWYoKChnJjI1NSktMXwwKT4+PjA8MTI3KXtpZigodCYz
fDApIT0wKXtDPXQ7RD11O0U9ZzticmVha31oPWNbdD4+Ml18MDtpZigoKGgtMTY4NDMwMDl8aCkm
LTIxMzkwNjIxNDR8MCk9PTApe0Y9dTtHPXR9ZWxzZXtDPXQ7RD11O0U9aCYyNTU7YnJlYWt9ZG97
Rz1HKzR8MDtGPUYtNHwwO0g9Y1tHPj4yXXwwO313aGlsZSgoKEgtMTY4NDMwMDl8SCkmLTIxMzkw
NjIxNDR8MCk9PTApO0M9RztEPUY7RT1IJjI1NX1lbHNle0M9dDtEPXU7RT1nfX13aGlsZSgwKTtn
PUUmMjU1O2lmKChnLTF8MCk+Pj4wPDEyNyl7dD1DKzF8MDt1PUQtMXwwO2k9NTg7Y29udGludWV9
aD1nLTE5NHwwO2lmKGg+Pj4wPjUwKXtJPUQ7Sj1iO0s9QztpPTk4O2JyZWFrfWw9Y1tzKyhoPDwy
KT4+Ml18MDttPUMrMXwwO249RDtpPTY3O2NvbnRpbnVlfWVsc2UgaWYoKGl8MCk9PTU3KXtpPTA7
aWYoKHh8MCk9PTApe0w9ZjtpPTEwNjticmVha31lbHNle009eDtOPXc7Tz12fXdoaWxlKDEpe2g9
YVtPXXwwO2Rve2lmKCgoaCYyNTUpLTF8MCk+Pj4wPDEyNyl7aWYoKE8mM3wwKT09MCZNPj4+MD4z
KXtQPU07UT1OO1I9T31lbHNle1M9TztUPU47VT1NO1Y9aDticmVha313aGlsZSgxKXtXPWNbUj4+
Ml18MDtpZigoKFctMTY4NDMwMDl8VykmLTIxMzkwNjIxNDR8MCkhPTApe2k9ODE7YnJlYWt9Y1tR
Pj4yXT1XJjI1NTtjW1ErND4+Ml09ZFtSKzF8MF18MDtjW1ErOD4+Ml09ZFtSKzJ8MF18MDtYPVIr
NHwwO1k9USsxNnwwO2NbUSsxMj4+Ml09ZFtSKzN8MF18MDtaPVAtNHwwO2lmKFo+Pj4wPjMpe1A9
WjtRPVk7Uj1YfWVsc2V7aT04MjticmVha319aWYoKGl8MCk9PTgxKXtpPTA7Uz1SO1Q9UTtVPVA7
Vj1XJjI1NTticmVha31lbHNlIGlmKChpfDApPT04Mil7aT0wO1M9WDtUPVk7VT1aO1Y9YVtYXXww
O2JyZWFrfX1lbHNle1M9TztUPU47VT1NO1Y9aH19d2hpbGUoMCk7Xz1WJjI1NTtpZigoXy0xfDAp
Pj4+MD49MTI3KXticmVha31jW1Q+PjJdPV87aD1VLTF8MDtpZigoaHwwKT09MCl7TD1mO2k9MTA1
O2JyZWFrIEw3MH1lbHNle009aDtOPVQrNHwwO089UysxfDB9fWg9Xy0xOTR8MDtpZihoPj4+MD41
MCl7ST1VO0o9VDtLPVM7aT05ODticmVha31vPWNbcysoaDw8Mik+PjJdfDA7cD1TKzF8MDtxPVQ7
cj1VO2k9ODc7Y29udGludWV9ZWxzZSBpZigoaXwwKT09Njcpe2k9MDtoPShkW21dfDApPj4+Mztp
ZigoaC0xNnxoKyhsPj4yNikpPj4+MD43KXtpPTY4O2JyZWFrfWg9bSsxfDA7ZG97aWYoKGwmMzM1
NTQ0MzJ8MCk9PTApeyQ9aH1lbHNle2lmKCgoZFtoXXwwKS0xMjh8MCk+Pj4wPjYzKXtpPTcxO2Jy
ZWFrIEw3MH1nPW0rMnwwO2lmKChsJjUyNDI4OHwwKT09MCl7JD1nO2JyZWFrfWlmKCgoZFtnXXww
KS0xMjh8MCk+Pj4wPjYzKXtpPTc0O2JyZWFrIEw3MH0kPW0rM3wwfX13aGlsZSgwKTt0PSQ7dT1u
LTF8MDtpPTU4O2NvbnRpbnVlfX1pZigoaXwwKT09NzEpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1u
O2k9OTd9ZWxzZSBpZigoaXwwKT09NzQpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9OTd9ZWxz
ZSBpZigoaXwwKT09Njgpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9OTd9ZWxzZSBpZigoaXww
KT09ODgpe2FhPW87YWI9cC0xfDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09OTEpe2Fh
PXk7YWI9cC0xfDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09OTQpe2FhPXo7YWI9cC0x
fDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09MTA1KXtyZXR1cm4gTHwwfWVsc2UgaWYo
KGl8MCk9PTEwNil7cmV0dXJuIEx8MH1pZigoaXwwKT09OTcpe2lmKChhYXwwKT09MCl7ST1hZDtK
PWFjO0s9YWI7aT05OH1lbHNle2FlPWFjO2FmPWFifX1kb3tpZigoaXwwKT09OTgpe2lmKChhW0td
fDApIT0wKXthZT1KO2FmPUs7YnJlYWt9aWYoKEp8MCkhPTApe2NbSj4+Ml09MDtjW2U+PjJdPTB9
TD1mLUl8MDtyZXR1cm4gTHwwfX13aGlsZSgwKTtjWyhidygpfDApPj4yXT0xMzg7aWYoKGFlfDAp
PT0wKXtMPS0xO3JldHVybiBMfDB9Y1tlPj4yXT1hZjtMPS0xO3JldHVybiBMfDB9ZnVuY3Rpb24g
a2YoYixlLGYpe2I9YnwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxu
PTA7Zz1pO2k9aSs4fDA7aD1nfDA7Y1toPj4yXT1iO2lmKChlfDApPT0wKXtqPTA7aT1nO3JldHVy
biBqfDB9ZG97aWYoKGZ8MCkhPTApe2lmKChifDApPT0wKXtrPWg7Y1toPj4yXT1rO2w9a31lbHNl
e2w9Yn1rPWFbZV18MDttPWsmMjU1O2lmKGs8PDI0Pj4yND4tMSl7Y1tsPj4yXT1tO2o9azw8MjQ+
PjI0IT0wfDA7aT1nO3JldHVybiBqfDB9az1tLTE5NHwwO2lmKGs+Pj4wPjUwKXticmVha31tPWUr
MXwwO249Y1tzKyhrPDwyKT4+Ml18MDtpZihmPj4+MDw0KXtpZigobiYtMjE0NzQ4MzY0OD4+Pigo
KGYqNnwwKS02fDApPj4+MCl8MCkhPTApe2JyZWFrfX1rPWRbbV18MDttPWs+Pj4zO2lmKChtLTE2
fG0rKG4+PjI2KSk+Pj4wPjcpe2JyZWFrfW09ay0xMjh8bjw8NjtpZigobXwwKT49MCl7Y1tsPj4y
XT1tO2o9MjtpPWc7cmV0dXJuIGp8MH1uPShkW2UrMnwwXXwwKS0xMjh8MDtpZihuPj4+MD42Myl7
YnJlYWt9az1ufG08PDY7aWYoKGt8MCk+PTApe2NbbD4+Ml09aztqPTM7aT1nO3JldHVybiBqfDB9
bT0oZFtlKzN8MF18MCktMTI4fDA7aWYobT4+PjA+NjMpe2JyZWFrfWNbbD4+Ml09bXxrPDw2O2o9
NDtpPWc7cmV0dXJuIGp8MH19d2hpbGUoMCk7Y1soYncoKXwwKT4+Ml09MTM4O2o9LTE7aT1nO3Jl
dHVybiBqfDB9ZnVuY3Rpb24ga2coYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYo
KGJ8MCk9PTApe2Y9MTtyZXR1cm4gZnwwfWlmKGQ+Pj4wPDEyOCl7YVtiXT1kJjI1NTtmPTE7cmV0
dXJuIGZ8MH1pZihkPj4+MDwyMDQ4KXthW2JdPShkPj4+NnwxOTIpJjI1NTthW2IrMXwwXT0oZCY2
M3wxMjgpJjI1NTtmPTI7cmV0dXJuIGZ8MH1pZihkPj4+MDw1NTI5NnwoZC01NzM0NHwwKT4+PjA8
ODE5Mil7YVtiXT0oZD4+PjEyfDIyNCkmMjU1O2FbYisxfDBdPShkPj4+NiY2M3wxMjgpJjI1NTth
W2IrMnwwXT0oZCY2M3wxMjgpJjI1NTtmPTM7cmV0dXJuIGZ8MH1pZigoZC02NTUzNnwwKT4+PjA8
MTA0ODU3Nil7YVtiXT0oZD4+PjE4fDI0MCkmMjU1O2FbYisxfDBdPShkPj4+MTImNjN8MTI4KSYy
NTU7YVtiKzJ8MF09KGQ+Pj42JjYzfDEyOCkmMjU1O2FbYiszfDBdPShkJjYzfDEyOCkmMjU1O2Y9
NDtyZXR1cm4gZnwwfWVsc2V7Y1soYncoKXwwKT4+Ml09MTM4O2Y9LTE7cmV0dXJuIGZ8MH1yZXR1
cm4gMH1mdW5jdGlvbiBraChhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24ga2koYSl7YT1hfDA7cmV0
dXJufWZ1bmN0aW9uIGtqKGEpe2E9YXwwO3JldHVybiAxMzI4fDB9ZnVuY3Rpb24ga2soYSl7YT1h
fDA7cmV0dXJufWZ1bmN0aW9uIGtsKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBrbShhKXthPWF8
MDt2YXIgYj0wO2I9YTt3aGlsZSgxKXtpZigoY1tiPj4yXXwwKT09MCl7YnJlYWt9ZWxzZXtiPWIr
NHwwfX1yZXR1cm4gYi1hPj4yfDB9ZnVuY3Rpb24ga24oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MDtpZigoZHwwKT09MCl7cmV0dXJuIGF8MH1lbHNle2U9YjtmPWQ7Zz1h
fXdoaWxlKDEpe2Q9Zi0xfDA7Y1tnPj4yXT1jW2U+PjJdO2lmKChkfDApPT0wKXticmVha31lbHNl
e2U9ZSs0fDA7Zj1kO2c9Zys0fDB9fXJldHVybiBhfDB9ZnVuY3Rpb24ga28oYSxiLGQpe2E9YXww
O2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wO2U9KGR8MCk9PTA7aWYoYS1iPj4y
Pj4+MDxkPj4+MCl7aWYoZSl7cmV0dXJuIGF8MH1lbHNle2Y9ZH1kb3tmPWYtMXwwO2NbYSsoZjw8
Mik+PjJdPWNbYisoZjw8Mik+PjJdO313aGlsZSgoZnwwKSE9MCk7cmV0dXJuIGF8MH1lbHNle2lm
KGUpe3JldHVybiBhfDB9ZWxzZXtnPWI7aD1kO2k9YX13aGlsZSgxKXtkPWgtMXwwO2NbaT4+Ml09
Y1tnPj4yXTtpZigoZHwwKT09MCl7YnJlYWt9ZWxzZXtnPWcrNHwwO2g9ZDtpPWkrNHwwfX1yZXR1
cm4gYXwwfXJldHVybiAwfWZ1bmN0aW9uIGtwKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIg
ZT0wLGY9MDtpZigoZHwwKT09MCl7cmV0dXJuIGF8MH1lbHNle2U9ZDtmPWF9d2hpbGUoMSl7ZD1l
LTF8MDtjW2Y+PjJdPWI7aWYoKGR8MCk9PTApe2JyZWFrfWVsc2V7ZT1kO2Y9Zis0fDB9fXJldHVy
biBhfDB9ZnVuY3Rpb24ga3EoYSl7YT1hfDA7Y1thPj4yXT0yNDQwO3JldHVybn1mdW5jdGlvbiBr
cihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wO2lmKChjW2QrOD4+Ml18
MCkhPShifDApKXtyZXR1cm59Yj1kKzE2fDA7Zz1jW2I+PjJdfDA7aWYoKGd8MCk9PTApe2NbYj4+
Ml09ZTtjW2QrMjQ+PjJdPWY7Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigoZ3wwKSE9KGV8MCkpe2U9
ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7YVtkKzU0fDBdPTE7cmV0
dXJufWU9ZCsyNHwwO2lmKChjW2U+PjJdfDApIT0yKXtyZXR1cm59Y1tlPj4yXT1mO3JldHVybn1m
dW5jdGlvbiBrcyhhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBn
PTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MDtmPWk7aT1p
KzI2NHwwO2c9ZnwwO2g9ZisyNTZ8MDtqPWNbYj4+Ml18MDtjW2g+PjJdPWo7az0oYXwwKSE9MDts
PWs/ZToyNTY7ZT1rP2E6Z3wwO0wyNDM6ZG97aWYoKGp8MCk9PTB8KGx8MCk9PTApe209MDtuPWQ7
bz1sO3A9ZTtxPWp9ZWxzZXthPWd8MDtyPWw7cz1kO3Q9MDt1PWU7dj1qO3doaWxlKDEpe3c9cz4+
PjA+PXI+Pj4wO2lmKCEod3xzPj4+MD4zMikpe209dDtuPXM7bz1yO3A9dTtxPXY7YnJlYWsgTDI0
M314PXc/cjpzO3k9cy14fDA7dz1rdCh1LGgseCwwKXwwO2lmKCh3fDApPT0tMSl7YnJlYWt9aWYo
KHV8MCk9PShhfDApKXt6PWE7QT1yfWVsc2V7ej11K3d8MDtBPXItd3wwfXg9dyt0fDA7dz1jW2g+
PjJdfDA7aWYoKHd8MCk9PTB8KEF8MCk9PTApe209eDtuPXk7bz1BO3A9ejtxPXc7YnJlYWsgTDI0
M31lbHNle3I9QTtzPXk7dD14O3U9ejt2PXd9fW09LTE7bj15O289MDtwPXU7cT1jW2g+PjJdfDB9
fXdoaWxlKDApO0wyNTQ6ZG97aWYoKHF8MCk9PTApe0I9bX1lbHNle2lmKChvfDApPT0wfChufDAp
PT0wKXtCPW07YnJlYWt9ZWxzZXtDPW87RD1uO0U9bTtGPXA7Rz1xfXdoaWxlKDEpe0g9a2coRixj
W0c+PjJdfDAsMCl8MDtpZigoSCsxfDApPj4+MDwyKXticmVha315PShjW2g+PjJdfDApKzR8MDtj
W2g+PjJdPXk7ej1ELTF8MDtBPUUrMXwwO2lmKChDfDApPT0oSHwwKXwoenwwKT09MCl7Qj1BO2Jy
ZWFrIEwyNTR9ZWxzZXtDPUMtSHwwO0Q9ejtFPUE7Rj1GK0h8MDtHPXl9fWlmKChIfDApIT0wKXtC
PS0xO2JyZWFrfWNbaD4+Ml09MDtCPUV9fXdoaWxlKDApO2lmKCFrKXtpPWY7cmV0dXJuIEJ8MH1j
W2I+PjJdPWNbaD4+Ml07aT1mO3JldHVybiBCfDB9ZnVuY3Rpb24ga3QoYixkLGUsZil7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7Zj1pO2k9aSs4fDA7
Zz1mfDA7aWYoKGJ8MCk9PTApe2g9Y1tkPj4yXXwwO2o9Z3wwO2s9Y1toPj4yXXwwO2lmKChrfDAp
PT0wKXtsPTA7aT1mO3JldHVybiBsfDB9ZWxzZXttPTA7bj1oO289a313aGlsZSgxKXtpZihvPj4+
MD4xMjcpe2s9a2coaixvLDApfDA7aWYoKGt8MCk9PS0xKXtsPS0xO3A9MjQwO2JyZWFrfWVsc2V7
cT1rfX1lbHNle3E9MX1rPXErbXwwO2g9bis0fDA7cj1jW2g+PjJdfDA7aWYoKHJ8MCk9PTApe2w9
aztwPTI0MTticmVha31lbHNle209aztuPWg7bz1yfX1pZigocHwwKT09MjQwKXtpPWY7cmV0dXJu
IGx8MH1lbHNlIGlmKChwfDApPT0yNDEpe2k9ZjtyZXR1cm4gbHwwfX1MMjgwOmRve2lmKGU+Pj4w
PjMpe289ZTtuPWI7bT1jW2Q+PjJdfDA7d2hpbGUoMSl7cT1jW20+PjJdfDA7aWYoKHF8MCk9PTAp
e3M9bzt0PW47YnJlYWsgTDI4MH1pZihxPj4+MD4xMjcpe2o9a2cobixxLDApfDA7aWYoKGp8MCk9
PS0xKXtsPS0xO2JyZWFrfXU9bitqfDA7dj1vLWp8MDt3PW19ZWxzZXthW25dPXEmMjU1O3U9bisx
fDA7dj1vLTF8MDt3PWNbZD4+Ml18MH1xPXcrNHwwO2NbZD4+Ml09cTtpZih2Pj4+MD4zKXtvPXY7
bj11O209cX1lbHNle3M9djt0PXU7YnJlYWsgTDI4MH19aT1mO3JldHVybiBsfDB9ZWxzZXtzPWU7
dD1ifX13aGlsZSgwKTtMMjkyOmRve2lmKChzfDApPT0wKXt4PTB9ZWxzZXtiPWd8MDt1PXM7dj10
O3c9Y1tkPj4yXXwwO3doaWxlKDEpe209Y1t3Pj4yXXwwO2lmKChtfDApPT0wKXtwPTIzNjticmVh
a31pZihtPj4+MD4xMjcpe249a2coYixtLDApfDA7aWYoKG58MCk9PS0xKXtsPS0xO3A9MjQzO2Jy
ZWFrfWlmKG4+Pj4wPnU+Pj4wKXtwPTIzMjticmVha31vPWNbdz4+Ml18MDtrZyh2LG8sMCl8MDt5
PXYrbnwwO3o9dS1ufDA7QT13fWVsc2V7YVt2XT1tJjI1NTt5PXYrMXwwO3o9dS0xfDA7QT1jW2Q+
PjJdfDB9bT1BKzR8MDtjW2Q+PjJdPW07aWYoKHp8MCk9PTApe3g9MDticmVhayBMMjkyfWVsc2V7
dT16O3Y9eTt3PW19fWlmKChwfDApPT0yMzIpe2w9ZS11fDA7aT1mO3JldHVybiBsfDB9ZWxzZSBp
ZigocHwwKT09MjM2KXthW3ZdPTA7eD11O2JyZWFrfWVsc2UgaWYoKHB8MCk9PTI0Myl7aT1mO3Jl
dHVybiBsfDB9fX13aGlsZSgwKTtjW2Q+PjJdPTA7bD1lLXh8MDtpPWY7cmV0dXJuIGx8MH1mdW5j
dGlvbiBrdShhKXthPWF8MDtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3YoYSl7YT1hfDA7a2goYXww
KTtyZXR1cm59ZnVuY3Rpb24ga3coYSl7YT1hfDA7a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24ga3goYSl7YT1hfDA7a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3koYSl7YT1hfDA7
a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3ooYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MCxoPTA7ZT1pO2k9aSs1NnwwO2Y9ZXwwO2lmKChhfDApPT0oYnwwKSl7
Zz0xO2k9ZTtyZXR1cm4gZ3wwfWlmKChifDApPT0wKXtnPTA7aT1lO3JldHVybiBnfDB9aD1rQyhi
LDk3MDQsOTY4OCwtMSl8MDtiPWg7aWYoKGh8MCk9PTApe2c9MDtpPWU7cmV0dXJuIGd8MH1rJChm
fDAsMCw1Nik7Y1tmPj4yXT1iO2NbZis4Pj4yXT1hO2NbZisxMj4+Ml09LTE7Y1tmKzQ4Pj4yXT0x
O2NiW2NbKGNbaD4+Ml18MCkrMjg+PjJdJjE1XShiLGYsY1tkPj4yXXwwLDEpO2lmKChjW2YrMjQ+
PjJdfDApIT0xKXtnPTA7aT1lO3JldHVybiBnfDB9Y1tkPj4yXT1jW2YrMTY+PjJdO2c9MTtpPWU7
cmV0dXJuIGd8MH1mdW5jdGlvbiBrQShiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2
YXIgZz0wO2lmKChifDApIT0oY1tkKzg+PjJdfDApKXtnPWNbYis4Pj4yXXwwO2NiW2NbKGNbZz4+
Ml18MCkrMjg+PjJdJjE1XShnLGQsZSxmKTtyZXR1cm59Zz1kKzE2fDA7Yj1jW2c+PjJdfDA7aWYo
KGJ8MCk9PTApe2NbZz4+Ml09ZTtjW2QrMjQ+PjJdPWY7Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigo
YnwwKSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7
YVtkKzU0fDBdPTE7cmV0dXJufWU9ZCsyNHwwO2lmKChjW2U+PjJdfDApIT0yKXtyZXR1cm59Y1tl
Pj4yXT1mO3JldHVybn1mdW5jdGlvbiBrQihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wO2lmKChifDApPT0oY1tkKzg+PjJdfDAp
KXtnPWQrMTZ8MDtoPWNbZz4+Ml18MDtpZigoaHwwKT09MCl7Y1tnPj4yXT1lO2NbZCsyND4+Ml09
ZjtjW2QrMzY+PjJdPTE7cmV0dXJufWlmKChofDApIT0oZXwwKSl7aD1kKzM2fDA7Y1toPj4yXT0o
Y1toPj4yXXwwKSsxO2NbZCsyND4+Ml09MjthW2QrNTR8MF09MTtyZXR1cm59aD1kKzI0fDA7aWYo
KGNbaD4+Ml18MCkhPTIpe3JldHVybn1jW2g+PjJdPWY7cmV0dXJufWg9Y1tiKzEyPj4yXXwwO2c9
YisxNisoaDw8Myl8MDtpPWNbYisyMD4+Ml18MDtqPWk+Pjg7aWYoKGkmMXwwKT09MCl7az1qfWVs
c2V7az1jWyhjW2U+PjJdfDApK2o+PjJdfDB9aj1jW2IrMTY+PjJdfDA7Y2JbY1soY1tqPj4yXXww
KSsyOD4+Ml0mMTVdKGosZCxlK2t8MCwoaSYyfDApIT0wP2Y6Mik7aWYoKGh8MCk8PTEpe3JldHVy
bn1oPWQrNTR8MDtpPWU7az1iKzI0fDA7d2hpbGUoMSl7Yj1jW2srND4+Ml18MDtqPWI+Pjg7aWYo
KGImMXwwKT09MCl7bD1qfWVsc2V7bD1jWyhjW2k+PjJdfDApK2o+PjJdfDB9aj1jW2s+PjJdfDA7
Y2JbY1soY1tqPj4yXXwwKSsyOD4+Ml0mMTVdKGosZCxlK2x8MCwoYiYyfDApIT0wP2Y6Mik7aWYo
KGFbaF0mMSkhPTApe209Mjk3O2JyZWFrfWI9ays4fDA7aWYoYj4+PjA8Zz4+PjApe2s9Yn1lbHNl
e209Mjk4O2JyZWFrfX1pZigobXwwKT09Mjk3KXtyZXR1cm59ZWxzZSBpZigobXwwKT09Mjk4KXty
ZXR1cm59fWZ1bmN0aW9uIGtDKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBm
PTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MDtmPWk7aT1pKzU2fDA7Zz1mfDA7aD1j
W2E+PjJdfDA7aj1hKyhjW2gtOD4+Ml18MCl8MDtrPWNbaC00Pj4yXXwwO2g9aztjW2c+PjJdPWQ7
Y1tnKzQ+PjJdPWE7Y1tnKzg+PjJdPWI7Y1tnKzEyPj4yXT1lO2U9ZysxNnwwO2I9ZysyMHwwO2E9
ZysyNHwwO2w9ZysyOHwwO209ZyszMnwwO249Zys0MHwwO2skKGV8MCwwLDM5KTtpZigoa3wwKT09
KGR8MCkpe2NbZys0OD4+Ml09MTtiOVtjWyhjW2s+PjJdfDApKzIwPj4yXSYzMV0oaCxnLGosaiwx
LDApO2k9ZjtyZXR1cm4oKGNbYT4+Ml18MCk9PTE/ajowKXwwfWJXW2NbKGNbaz4+Ml18MCkrMjQ+
PjJdJjddKGgsZyxqLDEsMCk7c3dpdGNoKGNbZyszNj4+Ml18MCl7Y2FzZSAxOntkb3tpZigoY1th
Pj4yXXwwKSE9MSl7aWYoKGNbbj4+Ml18MCkhPTApe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1ts
Pj4yXXwwKSE9MSl7bz0wO2k9ZjtyZXR1cm4gb3wwfWlmKChjW20+PjJdfDApPT0xKXticmVha31l
bHNle289MH1pPWY7cmV0dXJuIG98MH19d2hpbGUoMCk7bz1jW2U+PjJdfDA7aT1mO3JldHVybiBv
fDB9O2Nhc2UgMDp7aWYoKGNbbj4+Ml18MCkhPTEpe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1ts
Pj4yXXwwKSE9MSl7bz0wO2k9ZjtyZXR1cm4gb3wwfW89KGNbbT4+Ml18MCk9PTE/Y1tiPj4yXXww
OjA7aT1mO3JldHVybiBvfDB9O2RlZmF1bHQ6e289MDtpPWY7cmV0dXJuIG98MH19cmV0dXJuIDB9
ZnVuY3Rpb24ga0QoYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtpZigo
Y1tkKzg+PjJdfDApPT0oYnwwKSl7aWYoKGNbZCs0Pj4yXXwwKSE9KGV8MCkpe3JldHVybn1nPWQr
Mjh8MDtpZigoY1tnPj4yXXwwKT09MSl7cmV0dXJufWNbZz4+Ml09ZjtyZXR1cm59aWYoKGNbZD4+
Ml18MCkhPShifDApKXtyZXR1cm59ZG97aWYoKGNbZCsxNj4+Ml18MCkhPShlfDApKXtiPWQrMjB8
MDtpZigoY1tiPj4yXXwwKT09KGV8MCkpe2JyZWFrfWNbZCszMj4+Ml09ZjtjW2I+PjJdPWU7Yj1k
KzQwfDA7Y1tiPj4yXT0oY1tiPj4yXXwwKSsxO2Rve2lmKChjW2QrMzY+PjJdfDApPT0xKXtpZigo
Y1tkKzI0Pj4yXXwwKSE9Mil7YnJlYWt9YVtkKzU0fDBdPTF9fXdoaWxlKDApO2NbZCs0ND4+Ml09
NDtyZXR1cm59fXdoaWxlKDApO2lmKChmfDApIT0xKXtyZXR1cm59Y1tkKzMyPj4yXT0xO3JldHVy
bn1mdW5jdGlvbiBrRShiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7dmFyIGk9MDtpZigoY1tkKzg+PjJdfDApIT0oYnwwKSl7cmV0dXJufWFbZCs1M3wwXT0x
O2lmKChjW2QrND4+Ml18MCkhPShmfDApKXtyZXR1cm59YVtkKzUyfDBdPTE7Zj1kKzE2fDA7Yj1j
W2Y+PjJdfDA7aWYoKGJ8MCk9PTApe2NbZj4+Ml09ZTtjW2QrMjQ+PjJdPWc7Y1tkKzM2Pj4yXT0x
O2lmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKGd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0
dXJufWlmKChifDApIT0oZXwwKSl7ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2FbZCs1
NHwwXT0xO3JldHVybn1lPWQrMjR8MDtiPWNbZT4+Ml18MDtpZigoYnwwKT09Mil7Y1tlPj4yXT1n
O2k9Z31lbHNle2k9Yn1pZighKChjW2QrNDg+PjJdfDApPT0xJihpfDApPT0xKSl7cmV0dXJufWFb
ZCs1NHwwXT0xO3JldHVybn1mdW5jdGlvbiBrRihiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MDtoPWJ8MDtpZigoaHwwKT09KGNbZCs4Pj4yXXwwKSl7aWYoKGNbZCs0Pj4yXXww
KSE9KGV8MCkpe3JldHVybn1pPWQrMjh8MDtpZigoY1tpPj4yXXwwKT09MSl7cmV0dXJufWNbaT4+
Ml09ZjtyZXR1cm59aWYoKGh8MCk9PShjW2Q+PjJdfDApKXtkb3tpZigoY1tkKzE2Pj4yXXwwKSE9
KGV8MCkpe2g9ZCsyMHwwO2lmKChjW2g+PjJdfDApPT0oZXwwKSl7YnJlYWt9Y1tkKzMyPj4yXT1m
O2k9ZCs0NHwwO2lmKChjW2k+PjJdfDApPT00KXtyZXR1cm59aj1jW2IrMTI+PjJdfDA7az1iKzE2
KyhqPDwzKXwwO0w0NzQ6ZG97aWYoKGp8MCk+MCl7bD1kKzUyfDA7bT1kKzUzfDA7bj1kKzU0fDA7
bz1iKzh8MDtwPWQrMjR8MDtxPWU7cj0wO3M9YisxNnwwO3Q9MDtMNDc2OndoaWxlKDEpe2FbbF09
MDthW21dPTA7dT1jW3MrND4+Ml18MDt2PXU+Pjg7aWYoKHUmMXwwKT09MCl7dz12fWVsc2V7dz1j
WyhjW3E+PjJdfDApK3Y+PjJdfDB9dj1jW3M+PjJdfDA7YjlbY1soY1t2Pj4yXXwwKSsyMD4+Ml0m
MzFdKHYsZCxlLGUrd3wwLDItKHU+Pj4xJjEpfDAsZyk7aWYoKGFbbl0mMSkhPTApe3g9dDt5PXI7
YnJlYWt9ZG97aWYoKGFbbV0mMSk9PTApe3o9dDtBPXJ9ZWxzZXtpZigoYVtsXSYxKT09MCl7aWYo
KGNbbz4+Ml0mMXwwKT09MCl7eD0xO3k9cjticmVhayBMNDc2fWVsc2V7ej0xO0E9cjticmVha319
aWYoKGNbcD4+Ml18MCk9PTEpe0I9Mzg1O2JyZWFrIEw0NzR9aWYoKGNbbz4+Ml0mMnwwKT09MCl7
Qj0zODU7YnJlYWsgTDQ3NH1lbHNle3o9MTtBPTF9fX13aGlsZSgwKTt1PXMrOHwwO2lmKHU+Pj4w
PGs+Pj4wKXtyPUE7cz11O3Q9en1lbHNle3g9ejt5PUE7YnJlYWt9fWlmKHkpe0M9eDtCPTM4NH1l
bHNle0Q9eDtCPTM4MX19ZWxzZXtEPTA7Qj0zODF9fXdoaWxlKDApO2Rve2lmKChCfDApPT0zODEp
e2NbaD4+Ml09ZTtrPWQrNDB8MDtjW2s+PjJdPShjW2s+PjJdfDApKzE7aWYoKGNbZCszNj4+Ml18
MCkhPTEpe0M9RDtCPTM4NDticmVha31pZigoY1tkKzI0Pj4yXXwwKSE9Mil7Qz1EO0I9Mzg0O2Jy
ZWFrfWFbZCs1NHwwXT0xO2lmKEQpe0I9Mzg1fWVsc2V7Qj0zODZ9fX13aGlsZSgwKTtpZigoQnww
KT09Mzg0KXtpZihDKXtCPTM4NX1lbHNle0I9Mzg2fX1pZigoQnwwKT09Mzg1KXtjW2k+PjJdPTM7
cmV0dXJufWVsc2UgaWYoKEJ8MCk9PTM4Nil7Y1tpPj4yXT00O3JldHVybn19fXdoaWxlKDApO2lm
KChmfDApIT0xKXtyZXR1cm59Y1tkKzMyPj4yXT0xO3JldHVybn1DPWNbYisxMj4+Ml18MDtEPWIr
MTYrKEM8PDMpfDA7eD1jW2IrMjA+PjJdfDA7eT14Pj44O2lmKCh4JjF8MCk9PTApe0U9eX1lbHNl
e0U9Y1soY1tlPj4yXXwwKSt5Pj4yXXwwfXk9Y1tiKzE2Pj4yXXwwO2JXW2NbKGNbeT4+Ml18MCkr
MjQ+PjJdJjddKHksZCxlK0V8MCwoeCYyfDApIT0wP2Y6MixnKTt4PWIrMjR8MDtpZigoQ3wwKTw9
MSl7cmV0dXJufUM9Y1tiKzg+PjJdfDA7ZG97aWYoKEMmMnwwKT09MCl7Yj1kKzM2fDA7aWYoKGNb
Yj4+Ml18MCk9PTEpe2JyZWFrfWlmKChDJjF8MCk9PTApe0U9ZCs1NHwwO3k9ZTtBPXg7d2hpbGUo
MSl7aWYoKGFbRV0mMSkhPTApe0I9NDI1O2JyZWFrfWlmKChjW2I+PjJdfDApPT0xKXtCPTQyNjti
cmVha316PWNbQSs0Pj4yXXwwO3c9ej4+ODtpZigoeiYxfDApPT0wKXtGPXd9ZWxzZXtGPWNbKGNb
eT4+Ml18MCkrdz4+Ml18MH13PWNbQT4+Ml18MDtiV1tjWyhjW3c+PjJdfDApKzI0Pj4yXSY3XSh3
LGQsZStGfDAsKHomMnwwKSE9MD9mOjIsZyk7ej1BKzh8MDtpZih6Pj4+MDxEPj4+MCl7QT16fWVs
c2V7Qj00MTI7YnJlYWt9fWlmKChCfDApPT00MTIpe3JldHVybn1lbHNlIGlmKChCfDApPT00MjUp
e3JldHVybn1lbHNlIGlmKChCfDApPT00MjYpe3JldHVybn19QT1kKzI0fDA7eT1kKzU0fDA7RT1l
O2k9eDt3aGlsZSgxKXtpZigoYVt5XSYxKSE9MCl7Qj00MjI7YnJlYWt9aWYoKGNbYj4+Ml18MCk9
PTEpe2lmKChjW0E+PjJdfDApPT0xKXtCPTQyMzticmVha319ej1jW2krND4+Ml18MDt3PXo+Pjg7
aWYoKHomMXwwKT09MCl7Rz13fWVsc2V7Rz1jWyhjW0U+PjJdfDApK3c+PjJdfDB9dz1jW2k+PjJd
fDA7YldbY1soY1t3Pj4yXXwwKSsyND4+Ml0mN10odyxkLGUrR3wwLCh6JjJ8MCkhPTA/ZjoyLGcp
O3o9aSs4fDA7aWYoej4+PjA8RD4+PjApe2k9en1lbHNle0I9NDI0O2JyZWFrfX1pZigoQnwwKT09
NDIyKXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDIzKXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDI0
KXtyZXR1cm59fX13aGlsZSgwKTtHPWQrNTR8MDtGPWU7Qz14O3doaWxlKDEpe2lmKChhW0ddJjEp
IT0wKXtCPTQyMTticmVha314PWNbQys0Pj4yXXwwO2k9eD4+ODtpZigoeCYxfDApPT0wKXtIPWl9
ZWxzZXtIPWNbKGNbRj4+Ml18MCkraT4+Ml18MH1pPWNbQz4+Ml18MDtiV1tjWyhjW2k+PjJdfDAp
KzI0Pj4yXSY3XShpLGQsZStIfDAsKHgmMnwwKSE9MD9mOjIsZyk7eD1DKzh8MDtpZih4Pj4+MDxE
Pj4+MCl7Qz14fWVsc2V7Qj00MjA7YnJlYWt9fWlmKChCfDApPT00MjApe3JldHVybn1lbHNlIGlm
KChCfDApPT00MjEpe3JldHVybn19ZnVuY3Rpb24ga0coYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtl
PWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2g9YnwwO2lm
KChofDApPT0oY1tkKzg+PjJdfDApKXtpZigoY1tkKzQ+PjJdfDApIT0oZXwwKSl7cmV0dXJufWk9
ZCsyOHwwO2lmKChjW2k+PjJdfDApPT0xKXtyZXR1cm59Y1tpPj4yXT1mO3JldHVybn1pZigoaHww
KSE9KGNbZD4+Ml18MCkpe2g9Y1tiKzg+PjJdfDA7YldbY1soY1toPj4yXXwwKSsyND4+Ml0mN10o
aCxkLGUsZixnKTtyZXR1cm59ZG97aWYoKGNbZCsxNj4+Ml18MCkhPShlfDApKXtoPWQrMjB8MDtp
ZigoY1toPj4yXXwwKT09KGV8MCkpe2JyZWFrfWNbZCszMj4+Ml09ZjtpPWQrNDR8MDtpZigoY1tp
Pj4yXXwwKT09NCl7cmV0dXJufWo9ZCs1MnwwO2Fbal09MDtrPWQrNTN8MDthW2tdPTA7bD1jW2Ir
OD4+Ml18MDtiOVtjWyhjW2w+PjJdfDApKzIwPj4yXSYzMV0obCxkLGUsZSwxLGcpO2lmKChhW2td
JjEpPT0wKXttPTA7bj00NDF9ZWxzZXtpZigoYVtqXSYxKT09MCl7bT0xO249NDQxfX1MNTc2OmRv
e2lmKChufDApPT00NDEpe2NbaD4+Ml09ZTtqPWQrNDB8MDtjW2o+PjJdPShjW2o+PjJdfDApKzE7
ZG97aWYoKGNbZCszNj4+Ml18MCk9PTEpe2lmKChjW2QrMjQ+PjJdfDApIT0yKXtuPTQ0NDticmVh
a31hW2QrNTR8MF09MTtpZihtKXticmVhayBMNTc2fX1lbHNle249NDQ0fX13aGlsZSgwKTtpZigo
bnwwKT09NDQ0KXtpZihtKXticmVha319Y1tpPj4yXT00O3JldHVybn19d2hpbGUoMCk7Y1tpPj4y
XT0zO3JldHVybn19d2hpbGUoMCk7aWYoKGZ8MCkhPTEpe3JldHVybn1jW2QrMzI+PjJdPTE7cmV0
dXJufWZ1bmN0aW9uIGtIKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDt2YXIgaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTA7aWYoKGJ8MCkhPShjW2QrOD4+Ml18MCkpe2k9ZCs1MnwwO2o9YVtpXSYx
O2s9ZCs1M3wwO2w9YVtrXSYxO209Y1tiKzEyPj4yXXwwO249YisxNisobTw8Myl8MDthW2ldPTA7
YVtrXT0wO289Y1tiKzIwPj4yXXwwO3A9bz4+ODtpZigobyYxfDApPT0wKXtxPXB9ZWxzZXtxPWNb
KGNbZj4+Ml18MCkrcD4+Ml18MH1wPWNbYisxNj4+Ml18MDtiOVtjWyhjW3A+PjJdfDApKzIwPj4y
XSYzMV0ocCxkLGUsZitxfDAsKG8mMnwwKSE9MD9nOjIsaCk7TDU5ODpkb3tpZigobXwwKT4xKXtv
PWQrMjR8MDtxPWIrOHwwO3A9ZCs1NHwwO3I9ZjtzPWIrMjR8MDtkb3tpZigoYVtwXSYxKSE9MCl7
YnJlYWsgTDU5OH1kb3tpZigoYVtpXSYxKT09MCl7aWYoKGFba10mMSk9PTApe2JyZWFrfWlmKChj
W3E+PjJdJjF8MCk9PTApe2JyZWFrIEw1OTh9fWVsc2V7aWYoKGNbbz4+Ml18MCk9PTEpe2JyZWFr
IEw1OTh9aWYoKGNbcT4+Ml0mMnwwKT09MCl7YnJlYWsgTDU5OH19fXdoaWxlKDApO2FbaV09MDth
W2tdPTA7dD1jW3MrND4+Ml18MDt1PXQ+Pjg7aWYoKHQmMXwwKT09MCl7dj11fWVsc2V7dj1jWyhj
W3I+PjJdfDApK3U+PjJdfDB9dT1jW3M+PjJdfDA7YjlbY1soY1t1Pj4yXXwwKSsyMD4+Ml0mMzFd
KHUsZCxlLGYrdnwwLCh0JjJ8MCkhPTA/ZzoyLGgpO3M9cys4fDA7fXdoaWxlKHM+Pj4wPG4+Pj4w
KX19d2hpbGUoMCk7YVtpXT1qO2Fba109bDtyZXR1cm59YVtkKzUzfDBdPTE7aWYoKGNbZCs0Pj4y
XXwwKSE9KGZ8MCkpe3JldHVybn1hW2QrNTJ8MF09MTtmPWQrMTZ8MDtsPWNbZj4+Ml18MDtpZigo
bHwwKT09MCl7Y1tmPj4yXT1lO2NbZCsyND4+Ml09ZztjW2QrMzY+PjJdPTE7aWYoISgoY1tkKzQ4
Pj4yXXwwKT09MSYoZ3wwKT09MSkpe3JldHVybn1hW2QrNTR8MF09MTtyZXR1cm59aWYoKGx8MCkh
PShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7YVtkKzU0fDBdPTE7cmV0dXJu
fWU9ZCsyNHwwO2w9Y1tlPj4yXXwwO2lmKChsfDApPT0yKXtjW2U+PjJdPWc7dz1nfWVsc2V7dz1s
fWlmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKHd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0
dXJufWZ1bmN0aW9uIGtJKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDt2YXIgaT0wLGo9MDtpZigoYnwwKSE9KGNbZCs4Pj4yXXwwKSl7aT1jW2IrOD4+Ml18
MDtiOVtjWyhjW2k+PjJdfDApKzIwPj4yXSYzMV0oaSxkLGUsZixnLGgpO3JldHVybn1hW2QrNTN8
MF09MTtpZigoY1tkKzQ+PjJdfDApIT0oZnwwKSl7cmV0dXJufWFbZCs1MnwwXT0xO2Y9ZCsxNnww
O2g9Y1tmPj4yXXwwO2lmKChofDApPT0wKXtjW2Y+PjJdPWU7Y1tkKzI0Pj4yXT1nO2NbZCszNj4+
Ml09MTtpZighKChjW2QrNDg+PjJdfDApPT0xJihnfDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0x
O3JldHVybn1pZigoaHwwKSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTth
W2QrNTR8MF09MTtyZXR1cm59ZT1kKzI0fDA7aD1jW2U+PjJdfDA7aWYoKGh8MCk9PTIpe2NbZT4+
Ml09ZztqPWd9ZWxzZXtqPWh9aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYoanwwKT09MSkpe3JldHVy
bn1hW2QrNTR8MF09MTtyZXR1cm59ZnVuY3Rpb24ga0ooYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0w
LGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxh
Zz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9
MCxhcz0wLGF0PTAsYXU9MCxhdj0wLGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0wLGFDPTAs
YUQ9MCxhRT0wLGFGPTAsYUc9MDtkb3tpZihhPj4+MDwyNDUpe2lmKGE+Pj4wPDExKXtiPTE2fWVs
c2V7Yj1hKzExJi04fWQ9Yj4+PjM7ZT1jWzI0NjBdfDA7Zj1lPj4+KGQ+Pj4wKTtpZigoZiYzfDAp
IT0wKXtnPShmJjFeMSkrZHwwO2g9Zzw8MTtpPTk4ODArKGg8PDIpfDA7aj05ODgwKyhoKzI8PDIp
fDA7aD1jW2o+PjJdfDA7az1oKzh8MDtsPWNbaz4+Ml18MDtkb3tpZigoaXwwKT09KGx8MCkpe2Nb
MjQ2MF09ZSZ+KDE8PGcpfWVsc2V7aWYobD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVy
biAwfW09bCsxMnwwO2lmKChjW20+PjJdfDApPT0oaHwwKSl7Y1ttPj4yXT1pO2Nbaj4+Ml09bDti
cmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtsPWc8PDM7Y1toKzQ+PjJdPWx8Mztq
PWgrKGx8NCl8MDtjW2o+PjJdPWNbaj4+Ml18MTtuPWs7cmV0dXJuIG58MH1pZihiPj4+MDw9KGNb
MjQ2Ml18MCk+Pj4wKXtvPWI7YnJlYWt9aWYoKGZ8MCkhPTApe2o9Mjw8ZDtsPWY8PGQmKGp8LWop
O2o9KGwmLWwpLTF8MDtsPWo+Pj4xMiYxNjtpPWo+Pj4obD4+PjApO2o9aT4+PjUmODttPWk+Pj4o
aj4+PjApO2k9bT4+PjImNDtwPW0+Pj4oaT4+PjApO209cD4+PjEmMjtxPXA+Pj4obT4+PjApO3A9
cT4+PjEmMTtyPShqfGx8aXxtfHApKyhxPj4+KHA+Pj4wKSl8MDtwPXI8PDE7cT05ODgwKyhwPDwy
KXwwO209OTg4MCsocCsyPDwyKXwwO3A9Y1ttPj4yXXwwO2k9cCs4fDA7bD1jW2k+PjJdfDA7ZG97
aWYoKHF8MCk9PShsfDApKXtjWzI0NjBdPWUmfigxPDxyKX1lbHNle2lmKGw+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKTtyZXR1cm4gMH1qPWwrMTJ8MDtpZigoY1tqPj4yXXwwKT09KHB8MCkpe2Nb
aj4+Ml09cTtjW20+PjJdPWw7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7bD1y
PDwzO209bC1ifDA7Y1twKzQ+PjJdPWJ8MztxPXA7ZT1xK2J8MDtjW3ErKGJ8NCk+PjJdPW18MTtj
W3ErbD4+Ml09bTtsPWNbMjQ2Ml18MDtpZigobHwwKSE9MCl7cT1jWzI0NjVdfDA7ZD1sPj4+Mzts
PWQ8PDE7Zj05ODgwKyhsPDwyKXwwO2s9Y1syNDYwXXwwO2g9MTw8ZDtkb3tpZigoayZofDApPT0w
KXtjWzI0NjBdPWt8aDtzPWY7dD05ODgwKyhsKzI8PDIpfDB9ZWxzZXtkPTk4ODArKGwrMjw8Mil8
MDtnPWNbZD4+Ml18MDtpZihnPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXtzPWc7dD1kO2JyZWFrfWJH
KCk7cmV0dXJuIDB9fXdoaWxlKDApO2NbdD4+Ml09cTtjW3MrMTI+PjJdPXE7Y1txKzg+PjJdPXM7
Y1txKzEyPj4yXT1mfWNbMjQ2Ml09bTtjWzI0NjVdPWU7bj1pO3JldHVybiBufDB9bD1jWzI0NjFd
fDA7aWYoKGx8MCk9PTApe289YjticmVha31oPShsJi1sKS0xfDA7bD1oPj4+MTImMTY7az1oPj4+
KGw+Pj4wKTtoPWs+Pj41Jjg7cD1rPj4+KGg+Pj4wKTtrPXA+Pj4yJjQ7cj1wPj4+KGs+Pj4wKTtw
PXI+Pj4xJjI7ZD1yPj4+KHA+Pj4wKTtyPWQ+Pj4xJjE7Zz1jWzEwMTQ0KygoaHxsfGt8cHxyKSso
ZD4+PihyPj4+MCkpPDwyKT4+Ml18MDtyPWc7ZD1nO3A9KGNbZys0Pj4yXSYtOCktYnwwO3doaWxl
KDEpe2c9Y1tyKzE2Pj4yXXwwO2lmKChnfDApPT0wKXtrPWNbcisyMD4+Ml18MDtpZigoa3wwKT09
MCl7YnJlYWt9ZWxzZXt1PWt9fWVsc2V7dT1nfWc9KGNbdSs0Pj4yXSYtOCktYnwwO2s9Zz4+PjA8
cD4+PjA7cj11O2Q9az91OmQ7cD1rP2c6cH1yPWQ7aT1jWzI0NjRdfDA7aWYocj4+PjA8aT4+PjAp
e2JHKCk7cmV0dXJuIDB9ZT1yK2J8MDttPWU7aWYocj4+PjA+PWU+Pj4wKXtiRygpO3JldHVybiAw
fWU9Y1tkKzI0Pj4yXXwwO2Y9Y1tkKzEyPj4yXXwwO2Rve2lmKChmfDApPT0oZHwwKSl7cT1kKzIw
fDA7Zz1jW3E+PjJdfDA7aWYoKGd8MCk9PTApe2s9ZCsxNnwwO2w9Y1trPj4yXXwwO2lmKChsfDAp
PT0wKXt2PTA7YnJlYWt9ZWxzZXt3PWw7eD1rfX1lbHNle3c9Zzt4PXF9d2hpbGUoMSl7cT13KzIw
fDA7Zz1jW3E+PjJdfDA7aWYoKGd8MCkhPTApe3c9Zzt4PXE7Y29udGludWV9cT13KzE2fDA7Zz1j
W3E+PjJdfDA7aWYoKGd8MCk9PTApe2JyZWFrfWVsc2V7dz1nO3g9cX19aWYoeD4+PjA8aT4+PjAp
e2JHKCk7cmV0dXJuIDB9ZWxzZXtjW3g+PjJdPTA7dj13O2JyZWFrfX1lbHNle3E9Y1tkKzg+PjJd
fDA7aWYocT4+PjA8aT4+PjApe2JHKCk7cmV0dXJuIDB9Zz1xKzEyfDA7aWYoKGNbZz4+Ml18MCkh
PShkfDApKXtiRygpO3JldHVybiAwfWs9Zis4fDA7aWYoKGNbaz4+Ml18MCk9PShkfDApKXtjW2c+
PjJdPWY7Y1trPj4yXT1xO3Y9ZjticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtM
NzQwOmRve2lmKChlfDApIT0wKXtmPWQrMjh8MDtpPTEwMTQ0KyhjW2Y+PjJdPDwyKXwwO2Rve2lm
KChkfDApPT0oY1tpPj4yXXwwKSl7Y1tpPj4yXT12O2lmKCh2fDApIT0wKXticmVha31jWzI0NjFd
PWNbMjQ2MV0mfigxPDxjW2Y+PjJdKTticmVhayBMNzQwfWVsc2V7aWYoZT4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpO3JldHVybiAwfXE9ZSsxNnwwO2lmKChjW3E+PjJdfDApPT0oZHwwKSl7Y1tx
Pj4yXT12fWVsc2V7Y1tlKzIwPj4yXT12fWlmKCh2fDApPT0wKXticmVhayBMNzQwfX19d2hpbGUo
MCk7aWYodj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWNbdisyND4+Ml09ZTtm
PWNbZCsxNj4+Ml18MDtkb3tpZigoZnwwKSE9MCl7aWYoZj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXti
RygpO3JldHVybiAwfWVsc2V7Y1t2KzE2Pj4yXT1mO2NbZisyND4+Ml09djticmVha319fXdoaWxl
KDApO2Y9Y1tkKzIwPj4yXXwwO2lmKChmfDApPT0wKXticmVha31pZihmPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW3YrMjA+PjJdPWY7Y1tmKzI0Pj4yXT12O2JyZWFr
fX19d2hpbGUoMCk7aWYocD4+PjA8MTYpe2U9cCtifDA7Y1tkKzQ+PjJdPWV8MztmPXIrKGUrNCl8
MDtjW2Y+PjJdPWNbZj4+Ml18MX1lbHNle2NbZCs0Pj4yXT1ifDM7Y1tyKyhifDQpPj4yXT1wfDE7
Y1tyKyhwK2IpPj4yXT1wO2Y9Y1syNDYyXXwwO2lmKChmfDApIT0wKXtlPWNbMjQ2NV18MDtpPWY+
Pj4zO2Y9aTw8MTtxPTk4ODArKGY8PDIpfDA7az1jWzI0NjBdfDA7Zz0xPDxpO2Rve2lmKChrJmd8
MCk9PTApe2NbMjQ2MF09a3xnO3k9cTt6PTk4ODArKGYrMjw8Mil8MH1lbHNle2k9OTg4MCsoZisy
PDwyKXwwO2w9Y1tpPj4yXXwwO2lmKGw+Pj4wPj0oY1syNDY0XXwwKT4+PjApe3k9bDt6PWk7YnJl
YWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7Y1t6Pj4yXT1lO2NbeSsxMj4+Ml09ZTtjW2UrOD4+
Ml09eTtjW2UrMTI+PjJdPXF9Y1syNDYyXT1wO2NbMjQ2NV09bX1mPWQrOHwwO2lmKChmfDApPT0w
KXtvPWI7YnJlYWt9ZWxzZXtuPWZ9cmV0dXJuIG58MH1lbHNle2lmKGE+Pj4wPjQyOTQ5NjcyMzEp
e289LTE7YnJlYWt9Zj1hKzExfDA7Zz1mJi04O2s9Y1syNDYxXXwwO2lmKChrfDApPT0wKXtvPWc7
YnJlYWt9cj0tZ3wwO2k9Zj4+Pjg7ZG97aWYoKGl8MCk9PTApe0E9MH1lbHNle2lmKGc+Pj4wPjE2
Nzc3MjE1KXtBPTMxO2JyZWFrfWY9KGkrMTA0ODMyMHwwKT4+PjE2Jjg7bD1pPDxmO2g9KGwrNTIw
MTkyfDApPj4+MTYmNDtqPWw8PGg7bD0oaisyNDU3NjB8MCk+Pj4xNiYyO0I9MTQtKGh8ZnxsKSso
ajw8bD4+PjE1KXwwO0E9Zz4+PigoQis3fDApPj4+MCkmMXxCPDwxfX13aGlsZSgwKTtpPWNbMTAx
NDQrKEE8PDIpPj4yXXwwO0w3ODg6ZG97aWYoKGl8MCk9PTApe0M9MDtEPXI7RT0wfWVsc2V7aWYo
KEF8MCk9PTMxKXtGPTB9ZWxzZXtGPTI1LShBPj4+MSl8MH1kPTA7bT1yO3A9aTtxPWc8PEY7ZT0w
O3doaWxlKDEpe0I9Y1twKzQ+PjJdJi04O2w9Qi1nfDA7aWYobD4+PjA8bT4+PjApe2lmKChCfDAp
PT0oZ3wwKSl7Qz1wO0Q9bDtFPXA7YnJlYWsgTDc4OH1lbHNle0c9cDtIPWx9fWVsc2V7Rz1kO0g9
bX1sPWNbcCsyMD4+Ml18MDtCPWNbcCsxNisocT4+PjMxPDwyKT4+Ml18MDtqPShsfDApPT0wfChs
fDApPT0oQnwwKT9lOmw7aWYoKEJ8MCk9PTApe0M9RztEPUg7RT1qO2JyZWFrfWVsc2V7ZD1HO209
SDtwPUI7cT1xPDwxO2U9an19fX13aGlsZSgwKTtpZigoRXwwKT09MCYoQ3wwKT09MCl7aT0yPDxB
O3I9ayYoaXwtaSk7aWYoKHJ8MCk9PTApe289ZzticmVha31pPShyJi1yKS0xfDA7cj1pPj4+MTIm
MTY7ZT1pPj4+KHI+Pj4wKTtpPWU+Pj41Jjg7cT1lPj4+KGk+Pj4wKTtlPXE+Pj4yJjQ7cD1xPj4+
KGU+Pj4wKTtxPXA+Pj4xJjI7bT1wPj4+KHE+Pj4wKTtwPW0+Pj4xJjE7ST1jWzEwMTQ0KygoaXxy
fGV8cXxwKSsobT4+PihwPj4+MCkpPDwyKT4+Ml18MH1lbHNle0k9RX1pZigoSXwwKT09MCl7Sj1E
O0s9Q31lbHNle3A9STttPUQ7cT1DO3doaWxlKDEpe2U9KGNbcCs0Pj4yXSYtOCktZ3wwO3I9ZT4+
PjA8bT4+PjA7aT1yP2U6bTtlPXI/cDpxO3I9Y1twKzE2Pj4yXXwwO2lmKChyfDApIT0wKXtwPXI7
bT1pO3E9ZTtjb250aW51ZX1yPWNbcCsyMD4+Ml18MDtpZigocnwwKT09MCl7Sj1pO0s9ZTticmVh
a31lbHNle3A9cjttPWk7cT1lfX19aWYoKEt8MCk9PTApe289ZzticmVha31pZihKPj4+MD49KChj
WzI0NjJdfDApLWd8MCk+Pj4wKXtvPWc7YnJlYWt9cT1LO209Y1syNDY0XXwwO2lmKHE+Pj4wPG0+
Pj4wKXtiRygpO3JldHVybiAwfXA9cStnfDA7az1wO2lmKHE+Pj4wPj1wPj4+MCl7YkcoKTtyZXR1
cm4gMH1lPWNbSysyND4+Ml18MDtpPWNbSysxMj4+Ml18MDtkb3tpZigoaXwwKT09KEt8MCkpe3I9
SysyMHwwO2Q9Y1tyPj4yXXwwO2lmKChkfDApPT0wKXtqPUsrMTZ8MDtCPWNbaj4+Ml18MDtpZigo
QnwwKT09MCl7TD0wO2JyZWFrfWVsc2V7TT1CO049an19ZWxzZXtNPWQ7Tj1yfXdoaWxlKDEpe3I9
TSsyMHwwO2Q9Y1tyPj4yXXwwO2lmKChkfDApIT0wKXtNPWQ7Tj1yO2NvbnRpbnVlfXI9TSsxNnww
O2Q9Y1tyPj4yXXwwO2lmKChkfDApPT0wKXticmVha31lbHNle009ZDtOPXJ9fWlmKE4+Pj4wPG0+
Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tOPj4yXT0wO0w9TTticmVha319ZWxzZXtyPWNbSys4
Pj4yXXwwO2lmKHI+Pj4wPG0+Pj4wKXtiRygpO3JldHVybiAwfWQ9cisxMnwwO2lmKChjW2Q+PjJd
fDApIT0oS3wwKSl7YkcoKTtyZXR1cm4gMH1qPWkrOHwwO2lmKChjW2o+PjJdfDApPT0oS3wwKSl7
Y1tkPj4yXT1pO2Nbaj4+Ml09cjtMPWk7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUo
MCk7TDgzODpkb3tpZigoZXwwKSE9MCl7aT1LKzI4fDA7bT0xMDE0NCsoY1tpPj4yXTw8Mil8MDtk
b3tpZigoS3wwKT09KGNbbT4+Ml18MCkpe2NbbT4+Ml09TDtpZigoTHwwKSE9MCl7YnJlYWt9Y1sy
NDYxXT1jWzI0NjFdJn4oMTw8Y1tpPj4yXSk7YnJlYWsgTDgzOH1lbHNle2lmKGU+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1yPWUrMTZ8MDtpZigoY1tyPj4yXXwwKT09KEt8MCkp
e2Nbcj4+Ml09TH1lbHNle2NbZSsyMD4+Ml09TH1pZigoTHwwKT09MCl7YnJlYWsgTDgzOH19fXdo
aWxlKDApO2lmKEw+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1jW0wrMjQ+PjJd
PWU7aT1jW0srMTY+PjJdfDA7ZG97aWYoKGl8MCkhPTApe2lmKGk+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbTCsxNj4+Ml09aTtjW2krMjQ+PjJdPUw7YnJlYWt9fX13
aGlsZSgwKTtpPWNbSysyMD4+Ml18MDtpZigoaXwwKT09MCl7YnJlYWt9aWYoaT4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tMKzIwPj4yXT1pO2NbaSsyND4+Ml09TDti
cmVha319fXdoaWxlKDApO2Rve2lmKEo+Pj4wPDE2KXtlPUorZ3wwO2NbSys0Pj4yXT1lfDM7aT1x
KyhlKzQpfDA7Y1tpPj4yXT1jW2k+PjJdfDF9ZWxzZXtjW0srND4+Ml09Z3wzO2NbcSsoZ3w0KT4+
Ml09SnwxO2NbcSsoSitnKT4+Ml09SjtpPUo+Pj4zO2lmKEo+Pj4wPDI1Nil7ZT1pPDwxO209OTg4
MCsoZTw8Mil8MDtyPWNbMjQ2MF18MDtqPTE8PGk7ZG97aWYoKHImanwwKT09MCl7Y1syNDYwXT1y
fGo7Tz1tO1A9OTg4MCsoZSsyPDwyKXwwfWVsc2V7aT05ODgwKyhlKzI8PDIpfDA7ZD1jW2k+PjJd
fDA7aWYoZD4+PjA+PShjWzI0NjRdfDApPj4+MCl7Tz1kO1A9aTticmVha31iRygpO3JldHVybiAw
fX13aGlsZSgwKTtjW1A+PjJdPWs7Y1tPKzEyPj4yXT1rO2NbcSsoZys4KT4+Ml09TztjW3ErKGcr
MTIpPj4yXT1tO2JyZWFrfWU9cDtqPUo+Pj44O2Rve2lmKChqfDApPT0wKXtRPTB9ZWxzZXtpZihK
Pj4+MD4xNjc3NzIxNSl7UT0zMTticmVha31yPShqKzEwNDgzMjB8MCk+Pj4xNiY4O2k9ajw8cjtk
PShpKzUyMDE5MnwwKT4+PjE2JjQ7Qj1pPDxkO2k9KEIrMjQ1NzYwfDApPj4+MTYmMjtsPTE0LShk
fHJ8aSkrKEI8PGk+Pj4xNSl8MDtRPUo+Pj4oKGwrN3wwKT4+PjApJjF8bDw8MX19d2hpbGUoMCk7
aj0xMDE0NCsoUTw8Mil8MDtjW3ErKGcrMjgpPj4yXT1RO2NbcSsoZysyMCk+PjJdPTA7Y1txKyhn
KzE2KT4+Ml09MDttPWNbMjQ2MV18MDtsPTE8PFE7aWYoKG0mbHwwKT09MCl7Y1syNDYxXT1tfGw7
Y1tqPj4yXT1lO2NbcSsoZysyNCk+PjJdPWo7Y1txKyhnKzEyKT4+Ml09ZTtjW3ErKGcrOCk+PjJd
PWU7YnJlYWt9aWYoKFF8MCk9PTMxKXtSPTB9ZWxzZXtSPTI1LShRPj4+MSl8MH1sPUo8PFI7bT1j
W2o+PjJdfDA7d2hpbGUoMSl7aWYoKGNbbSs0Pj4yXSYtOHwwKT09KEp8MCkpe2JyZWFrfVM9bSsx
NisobD4+PjMxPDwyKXwwO2o9Y1tTPj4yXXwwO2lmKChqfDApPT0wKXtUPTY2MTticmVha31lbHNl
e2w9bDw8MTttPWp9fWlmKChUfDApPT02NjEpe2lmKFM+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KTtyZXR1cm4gMH1lbHNle2NbUz4+Ml09ZTtjW3ErKGcrMjQpPj4yXT1tO2NbcSsoZysxMik+PjJd
PWU7Y1txKyhnKzgpPj4yXT1lO2JyZWFrfX1sPW0rOHwwO2o9Y1tsPj4yXXwwO2k9Y1syNDY0XXww
O2lmKG0+Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAwfWlmKGo+Pj4wPGk+Pj4wKXtiRygpO3JldHVy
biAwfWVsc2V7Y1tqKzEyPj4yXT1lO2NbbD4+Ml09ZTtjW3ErKGcrOCk+PjJdPWo7Y1txKyhnKzEy
KT4+Ml09bTtjW3ErKGcrMjQpPj4yXT0wO2JyZWFrfX19d2hpbGUoMCk7cT1LKzh8MDtpZigocXww
KT09MCl7bz1nO2JyZWFrfWVsc2V7bj1xfXJldHVybiBufDB9fXdoaWxlKDApO0s9Y1syNDYyXXww
O2lmKG8+Pj4wPD1LPj4+MCl7Uz1LLW98MDtKPWNbMjQ2NV18MDtpZihTPj4+MD4xNSl7Uj1KO2Nb
MjQ2NV09UitvO2NbMjQ2Ml09UztjW1IrKG8rNCk+PjJdPVN8MTtjW1IrSz4+Ml09UztjW0orND4+
Ml09b3wzfWVsc2V7Y1syNDYyXT0wO2NbMjQ2NV09MDtjW0orND4+Ml09S3wzO1M9SisoSys0KXww
O2NbUz4+Ml09Y1tTPj4yXXwxfW49Sis4fDA7cmV0dXJuIG58MH1KPWNbMjQ2M118MDtpZihvPj4+
MDxKPj4+MCl7Uz1KLW98MDtjWzI0NjNdPVM7Sj1jWzI0NjZdfDA7Sz1KO2NbMjQ2Nl09SytvO2Nb
Sysobys0KT4+Ml09U3wxO2NbSis0Pj4yXT1vfDM7bj1KKzh8MDtyZXR1cm4gbnwwfWRve2lmKChj
WzI0NTBdfDApPT0wKXtKPWJFKDgpfDA7aWYoKEotMSZKfDApPT0wKXtjWzI0NTJdPUo7Y1syNDUx
XT1KO2NbMjQ1M109LTE7Y1syNDU0XT0tMTtjWzI0NTVdPTA7Y1syNTcxXT0wO2NbMjQ1MF09KGJW
KDApfDApJi0xNl4xNDMxNjU1NzY4O2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDAp
O0o9bys0OHwwO1M9Y1syNDUyXXwwO0s9bys0N3wwO1I9UytLfDA7UT0tU3wwO1M9UiZRO2lmKFM+
Pj4wPD1vPj4+MCl7bj0wO3JldHVybiBufDB9Tz1jWzI1NzBdfDA7ZG97aWYoKE98MCkhPTApe1A9
Y1syNTY4XXwwO0w9UCtTfDA7aWYoTD4+PjA8PVA+Pj4wfEw+Pj4wPk8+Pj4wKXtuPTB9ZWxzZXti
cmVha31yZXR1cm4gbnwwfX13aGlsZSgwKTtMOTMwOmRve2lmKChjWzI1NzFdJjR8MCk9PTApe089
Y1syNDY2XXwwO0w5MzI6ZG97aWYoKE98MCk9PTApe1Q9NjkxfWVsc2V7TD1PO1A9MTAyODg7d2hp
bGUoMSl7VT1QfDA7TT1jW1U+PjJdfDA7aWYoTT4+PjA8PUw+Pj4wKXtWPVArNHwwO2lmKChNKyhj
W1Y+PjJdfDApfDApPj4+MD5MPj4+MCl7YnJlYWt9fU09Y1tQKzg+PjJdfDA7aWYoKE18MCk9PTAp
e1Q9NjkxO2JyZWFrIEw5MzJ9ZWxzZXtQPU19fWlmKChQfDApPT0wKXtUPTY5MTticmVha31MPVIt
KGNbMjQ2M118MCkmUTtpZihMPj4+MD49MjE0NzQ4MzY0Nyl7Vz0wO2JyZWFrfW09YnYoTHwwKXww
O2U9KG18MCk9PSgoY1tVPj4yXXwwKSsoY1tWPj4yXXwwKXwwKTtYPWU/bTotMTtZPWU/TDowO1o9
bTtfPUw7VD03MDB9fXdoaWxlKDApO2Rve2lmKChUfDApPT02OTEpe089YnYoMCl8MDtpZigoT3ww
KT09LTEpe1c9MDticmVha31nPU87TD1jWzI0NTFdfDA7bT1MLTF8MDtpZigobSZnfDApPT0wKXsk
PVN9ZWxzZXskPVMtZysobStnJi1MKXwwfUw9Y1syNTY4XXwwO2c9TCskfDA7aWYoISgkPj4+MD5v
Pj4+MCYkPj4+MDwyMTQ3NDgzNjQ3KSl7Vz0wO2JyZWFrfW09Y1syNTcwXXwwO2lmKChtfDApIT0w
KXtpZihnPj4+MDw9TD4+PjB8Zz4+PjA+bT4+PjApe1c9MDticmVha319bT1idigkfDApfDA7Zz0o
bXwwKT09KE98MCk7WD1nP086LTE7WT1nPyQ6MDtaPW07Xz0kO1Q9NzAwfX13aGlsZSgwKTtMOTUy
OmRve2lmKChUfDApPT03MDApe209LV98MDtpZigoWHwwKSE9LTEpe2FhPVk7YWI9WDtUPTcxMTti
cmVhayBMOTMwfWRve2lmKChafDApIT0tMSZfPj4+MDwyMTQ3NDgzNjQ3Jl8+Pj4wPEo+Pj4wKXtn
PWNbMjQ1Ml18MDtPPUstXytnJi1nO2lmKE8+Pj4wPj0yMTQ3NDgzNjQ3KXthYz1fO2JyZWFrfWlm
KChidihPfDApfDApPT0tMSl7YnYobXwwKXwwO1c9WTticmVhayBMOTUyfWVsc2V7YWM9TytffDA7
YnJlYWt9fWVsc2V7YWM9X319d2hpbGUoMCk7aWYoKFp8MCk9PS0xKXtXPVl9ZWxzZXthYT1hYzth
Yj1aO1Q9NzExO2JyZWFrIEw5MzB9fX13aGlsZSgwKTtjWzI1NzFdPWNbMjU3MV18NDthZD1XO1Q9
NzA4fWVsc2V7YWQ9MDtUPTcwOH19d2hpbGUoMCk7ZG97aWYoKFR8MCk9PTcwOCl7aWYoUz4+PjA+
PTIxNDc0ODM2NDcpe2JyZWFrfVc9YnYoU3wwKXwwO1o9YnYoMCl8MDtpZighKChafDApIT0tMSYo
V3wwKSE9LTEmVz4+PjA8Wj4+PjApKXticmVha31hYz1aLVd8MDtaPWFjPj4+MD4obys0MHwwKT4+
PjA7WT1aP1c6LTE7aWYoKFl8MCkhPS0xKXthYT1aP2FjOmFkO2FiPVk7VD03MTF9fX13aGlsZSgw
KTtkb3tpZigoVHwwKT09NzExKXthZD0oY1syNTY4XXwwKSthYXwwO2NbMjU2OF09YWQ7aWYoYWQ+
Pj4wPihjWzI1NjldfDApPj4+MCl7Y1syNTY5XT1hZH1hZD1jWzI0NjZdfDA7TDk3Mjpkb3tpZigo
YWR8MCk9PTApe1M9Y1syNDY0XXwwO2lmKChTfDApPT0wfGFiPj4+MDxTPj4+MCl7Y1syNDY0XT1h
Yn1jWzI1NzJdPWFiO2NbMjU3M109YWE7Y1syNTc1XT0wO2NbMjQ2OV09Y1syNDUwXTtjWzI0Njhd
PS0xO1M9MDtkb3tZPVM8PDE7YWM9OTg4MCsoWTw8Mil8MDtjWzk4ODArKFkrMzw8Mik+PjJdPWFj
O2NbOTg4MCsoWSsyPDwyKT4+Ml09YWM7Uz1TKzF8MDt9d2hpbGUoUz4+PjA8MzIpO1M9YWIrOHww
O2lmKChTJjd8MCk9PTApe2FlPTB9ZWxzZXthZT0tUyY3fVM9YWEtNDAtYWV8MDtjWzI0NjZdPWFi
K2FlO2NbMjQ2M109UztjW2FiKyhhZSs0KT4+Ml09U3wxO2NbYWIrKGFhLTM2KT4+Ml09NDA7Y1sy
NDY3XT1jWzI0NTRdfWVsc2V7Uz0xMDI4ODt3aGlsZSgxKXthZj1jW1M+PjJdfDA7YWc9Uys0fDA7
YWg9Y1thZz4+Ml18MDtpZigoYWJ8MCk9PShhZithaHwwKSl7VD03MjM7YnJlYWt9YWM9Y1tTKzg+
PjJdfDA7aWYoKGFjfDApPT0wKXticmVha31lbHNle1M9YWN9fWRve2lmKChUfDApPT03MjMpe2lm
KChjW1MrMTI+PjJdJjh8MCkhPTApe2JyZWFrfWFjPWFkO2lmKCEoYWM+Pj4wPj1hZj4+PjAmYWM+
Pj4wPGFiPj4+MCkpe2JyZWFrfWNbYWc+PjJdPWFoK2FhO2FjPWNbMjQ2Nl18MDtZPShjWzI0NjNd
fDApK2FhfDA7Wj1hYztXPWFjKzh8MDtpZigoVyY3fDApPT0wKXthaT0wfWVsc2V7YWk9LVcmN31X
PVktYWl8MDtjWzI0NjZdPVorYWk7Y1syNDYzXT1XO2NbWisoYWkrNCk+PjJdPVd8MTtjW1orKFkr
NCk+PjJdPTQwO2NbMjQ2N109Y1syNDU0XTticmVhayBMOTcyfX13aGlsZSgwKTtpZihhYj4+PjA8
KGNbMjQ2NF18MCk+Pj4wKXtjWzI0NjRdPWFifVM9YWIrYWF8MDtZPTEwMjg4O3doaWxlKDEpe2Fq
PVl8MDtpZigoY1thaj4+Ml18MCk9PShTfDApKXtUPTczMzticmVha31aPWNbWSs4Pj4yXXwwO2lm
KChafDApPT0wKXticmVha31lbHNle1k9Wn19ZG97aWYoKFR8MCk9PTczMyl7aWYoKGNbWSsxMj4+
Ml0mOHwwKSE9MCl7YnJlYWt9Y1thaj4+Ml09YWI7Uz1ZKzR8MDtjW1M+PjJdPShjW1M+PjJdfDAp
K2FhO1M9YWIrOHwwO2lmKChTJjd8MCk9PTApe2FrPTB9ZWxzZXthaz0tUyY3fVM9YWIrKGFhKzgp
fDA7aWYoKFMmN3wwKT09MCl7YWw9MH1lbHNle2FsPS1TJjd9Uz1hYisoYWwrYWEpfDA7Wj1TO1c9
YWsrb3wwO2FjPWFiK1d8MDtfPWFjO0s9Uy0oYWIrYWspLW98MDtjW2FiKyhhays0KT4+Ml09b3wz
O2Rve2lmKChafDApPT0oY1syNDY2XXwwKSl7Sj0oY1syNDYzXXwwKStLfDA7Y1syNDYzXT1KO2Nb
MjQ2Nl09XztjW2FiKyhXKzQpPj4yXT1KfDF9ZWxzZXtpZigoWnwwKT09KGNbMjQ2NV18MCkpe0o9
KGNbMjQ2Ml18MCkrS3wwO2NbMjQ2Ml09SjtjWzI0NjVdPV87Y1thYisoVys0KT4+Ml09SnwxO2Nb
YWIrKEorVyk+PjJdPUo7YnJlYWt9Sj1hYSs0fDA7WD1jW2FiKyhKK2FsKT4+Ml18MDtpZigoWCYz
fDApPT0xKXskPVgmLTg7Vj1YPj4+MztMMTAxNzpkb3tpZihYPj4+MDwyNTYpe1U9Y1thYisoKGFs
fDgpK2FhKT4+Ml18MDtRPWNbYWIrKGFhKzEyK2FsKT4+Ml18MDtSPTk4ODArKFY8PDE8PDIpfDA7
ZG97aWYoKFV8MCkhPShSfDApKXtpZihVPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJu
IDB9aWYoKGNbVSsxMj4+Ml18MCk9PShafDApKXticmVha31iRygpO3JldHVybiAwfX13aGlsZSgw
KTtpZigoUXwwKT09KFV8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PFYpO2JyZWFrfWRve2lmKChR
fDApPT0oUnwwKSl7YW09USs4fDB9ZWxzZXtpZihRPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7
cmV0dXJuIDB9bT1RKzh8MDtpZigoY1ttPj4yXXwwKT09KFp8MCkpe2FtPW07YnJlYWt9YkcoKTty
ZXR1cm4gMH19d2hpbGUoMCk7Y1tVKzEyPj4yXT1RO2NbYW0+PjJdPVV9ZWxzZXtSPVM7bT1jW2Fi
KygoYWx8MjQpK2FhKT4+Ml18MDtQPWNbYWIrKGFhKzEyK2FsKT4+Ml18MDtkb3tpZigoUHwwKT09
KFJ8MCkpe089YWx8MTY7Zz1hYisoSitPKXwwO0w9Y1tnPj4yXXwwO2lmKChMfDApPT0wKXtlPWFi
KyhPK2FhKXwwO089Y1tlPj4yXXwwO2lmKChPfDApPT0wKXthbj0wO2JyZWFrfWVsc2V7YW89Tzth
cD1lfX1lbHNle2FvPUw7YXA9Z313aGlsZSgxKXtnPWFvKzIwfDA7TD1jW2c+PjJdfDA7aWYoKEx8
MCkhPTApe2FvPUw7YXA9Zztjb250aW51ZX1nPWFvKzE2fDA7TD1jW2c+PjJdfDA7aWYoKEx8MCk9
PTApe2JyZWFrfWVsc2V7YW89TDthcD1nfX1pZihhcD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygp
O3JldHVybiAwfWVsc2V7Y1thcD4+Ml09MDthbj1hbzticmVha319ZWxzZXtnPWNbYWIrKChhbHw4
KSthYSk+PjJdfDA7aWYoZz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfUw9Zysx
MnwwO2lmKChjW0w+PjJdfDApIT0oUnwwKSl7YkcoKTtyZXR1cm4gMH1lPVArOHwwO2lmKChjW2U+
PjJdfDApPT0oUnwwKSl7Y1tMPj4yXT1QO2NbZT4+Ml09Zzthbj1QO2JyZWFrfWVsc2V7YkcoKTty
ZXR1cm4gMH19fXdoaWxlKDApO2lmKChtfDApPT0wKXticmVha31QPWFiKyhhYSsyOCthbCl8MDtV
PTEwMTQ0KyhjW1A+PjJdPDwyKXwwO2Rve2lmKChSfDApPT0oY1tVPj4yXXwwKSl7Y1tVPj4yXT1h
bjtpZigoYW58MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbUD4+Ml0pO2JyZWFr
IEwxMDE3fWVsc2V7aWYobT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfVE9bSsx
NnwwO2lmKChjW1E+PjJdfDApPT0oUnwwKSl7Y1tRPj4yXT1hbn1lbHNle2NbbSsyMD4+Ml09YW59
aWYoKGFufDApPT0wKXticmVhayBMMTAxN319fXdoaWxlKDApO2lmKGFuPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCk7cmV0dXJuIDB9Y1thbisyND4+Ml09bTtSPWFsfDE2O1A9Y1thYisoUithYSk+
PjJdfDA7ZG97aWYoKFB8MCkhPTApe2lmKFA+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1lbHNle2NbYW4rMTY+PjJdPVA7Y1tQKzI0Pj4yXT1hbjticmVha319fXdoaWxlKDApO1A9
Y1thYisoSitSKT4+Ml18MDtpZigoUHwwKT09MCl7YnJlYWt9aWYoUD4+PjA8KGNbMjQ2NF18MCk+
Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1thbisyMD4+Ml09UDtjW1ArMjQ+PjJdPWFuO2JyZWFr
fX19d2hpbGUoMCk7YXE9YWIrKCgkfGFsKSthYSl8MDthcj0kK0t8MH1lbHNle2FxPVo7YXI9S31K
PWFxKzR8MDtjW0o+PjJdPWNbSj4+Ml0mLTI7Y1thYisoVys0KT4+Ml09YXJ8MTtjW2FiKyhhcitX
KT4+Ml09YXI7Sj1hcj4+PjM7aWYoYXI+Pj4wPDI1Nil7Vj1KPDwxO1g9OTg4MCsoVjw8Mil8MDtQ
PWNbMjQ2MF18MDttPTE8PEo7ZG97aWYoKFAmbXwwKT09MCl7Y1syNDYwXT1QfG07YXM9WDthdD05
ODgwKyhWKzI8PDIpfDB9ZWxzZXtKPTk4ODArKFYrMjw8Mil8MDtVPWNbSj4+Ml18MDtpZihVPj4+
MD49KGNbMjQ2NF18MCk+Pj4wKXthcz1VO2F0PUo7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUo
MCk7Y1thdD4+Ml09XztjW2FzKzEyPj4yXT1fO2NbYWIrKFcrOCk+PjJdPWFzO2NbYWIrKFcrMTIp
Pj4yXT1YO2JyZWFrfVY9YWM7bT1hcj4+Pjg7ZG97aWYoKG18MCk9PTApe2F1PTB9ZWxzZXtpZihh
cj4+PjA+MTY3NzcyMTUpe2F1PTMxO2JyZWFrfVA9KG0rMTA0ODMyMHwwKT4+PjE2Jjg7JD1tPDxQ
O0o9KCQrNTIwMTkyfDApPj4+MTYmNDtVPSQ8PEo7JD0oVSsyNDU3NjB8MCk+Pj4xNiYyO1E9MTQt
KEp8UHwkKSsoVTw8JD4+PjE1KXwwO2F1PWFyPj4+KChRKzd8MCk+Pj4wKSYxfFE8PDF9fXdoaWxl
KDApO209MTAxNDQrKGF1PDwyKXwwO2NbYWIrKFcrMjgpPj4yXT1hdTtjW2FiKyhXKzIwKT4+Ml09
MDtjW2FiKyhXKzE2KT4+Ml09MDtYPWNbMjQ2MV18MDtRPTE8PGF1O2lmKChYJlF8MCk9PTApe2Nb
MjQ2MV09WHxRO2NbbT4+Ml09VjtjW2FiKyhXKzI0KT4+Ml09bTtjW2FiKyhXKzEyKT4+Ml09Vjtj
W2FiKyhXKzgpPj4yXT1WO2JyZWFrfWlmKChhdXwwKT09MzEpe2F2PTB9ZWxzZXthdj0yNS0oYXU+
Pj4xKXwwfVE9YXI8PGF2O1g9Y1ttPj4yXXwwO3doaWxlKDEpe2lmKChjW1grND4+Ml0mLTh8MCk9
PShhcnwwKSl7YnJlYWt9YXc9WCsxNisoUT4+PjMxPDwyKXwwO209Y1thdz4+Ml18MDtpZigobXww
KT09MCl7VD04MDY7YnJlYWt9ZWxzZXtRPVE8PDE7WD1tfX1pZigoVHwwKT09ODA2KXtpZihhdz4+
PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1thdz4+Ml09VjtjW2FiKyhX
KzI0KT4+Ml09WDtjW2FiKyhXKzEyKT4+Ml09VjtjW2FiKyhXKzgpPj4yXT1WO2JyZWFrfX1RPVgr
OHwwO209Y1tRPj4yXXwwOyQ9Y1syNDY0XXwwO2lmKFg+Pj4wPCQ+Pj4wKXtiRygpO3JldHVybiAw
fWlmKG0+Pj4wPCQ+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1ttKzEyPj4yXT1WO2NbUT4+Ml09
VjtjW2FiKyhXKzgpPj4yXT1tO2NbYWIrKFcrMTIpPj4yXT1YO2NbYWIrKFcrMjQpPj4yXT0wO2Jy
ZWFrfX19d2hpbGUoMCk7bj1hYisoYWt8OCl8MDtyZXR1cm4gbnwwfX13aGlsZSgwKTtZPWFkO1c9
MTAyODg7d2hpbGUoMSl7YXg9Y1tXPj4yXXwwO2lmKGF4Pj4+MDw9WT4+PjApe2F5PWNbVys0Pj4y
XXwwO2F6PWF4K2F5fDA7aWYoYXo+Pj4wPlk+Pj4wKXticmVha319Vz1jW1crOD4+Ml18MH1XPWF4
KyhheS0zOSl8MDtpZigoVyY3fDApPT0wKXthQT0wfWVsc2V7YUE9LVcmN31XPWF4KyhheS00Nyth
QSl8MDthYz1XPj4+MDwoYWQrMTZ8MCk+Pj4wP1k6VztXPWFjKzh8MDtfPWFiKzh8MDtpZigoXyY3
fDApPT0wKXthQj0wfWVsc2V7YUI9LV8mN31fPWFhLTQwLWFCfDA7Y1syNDY2XT1hYithQjtjWzI0
NjNdPV87Y1thYisoYUIrNCk+PjJdPV98MTtjW2FiKyhhYS0zNik+PjJdPTQwO2NbMjQ2N109Y1sy
NDU0XTtjW2FjKzQ+PjJdPTI3O2NbVz4+Ml09Y1syNTcyXTtjW1crND4+Ml09Y1sxMDI5Mj4+Ml07
Y1tXKzg+PjJdPWNbMTAyOTY+PjJdO2NbVysxMj4+Ml09Y1sxMDMwMD4+Ml07Y1syNTcyXT1hYjtj
WzI1NzNdPWFhO2NbMjU3NV09MDtjWzI1NzRdPVc7Vz1hYysyOHwwO2NbVz4+Ml09NztpZigoYWMr
MzJ8MCk+Pj4wPGF6Pj4+MCl7Xz1XO3doaWxlKDEpe1c9Xys0fDA7Y1tXPj4yXT03O2lmKChfKzh8
MCk+Pj4wPGF6Pj4+MCl7Xz1XfWVsc2V7YnJlYWt9fX1pZigoYWN8MCk9PShZfDApKXticmVha31f
PWFjLWFkfDA7Vz1ZKyhfKzQpfDA7Y1tXPj4yXT1jW1c+PjJdJi0yO2NbYWQrND4+Ml09X3wxO2Nb
WStfPj4yXT1fO1c9Xz4+PjM7aWYoXz4+PjA8MjU2KXtLPVc8PDE7Wj05ODgwKyhLPDwyKXwwO1M9
Y1syNDYwXXwwO209MTw8Vztkb3tpZigoUyZtfDApPT0wKXtjWzI0NjBdPVN8bTthQz1aO2FEPTk4
ODArKEsrMjw8Mil8MH1lbHNle1c9OTg4MCsoSysyPDwyKXwwO1E9Y1tXPj4yXXwwO2lmKFE+Pj4w
Pj0oY1syNDY0XXwwKT4+PjApe2FDPVE7YUQ9VzticmVha31iRygpO3JldHVybiAwfX13aGlsZSgw
KTtjW2FEPj4yXT1hZDtjW2FDKzEyPj4yXT1hZDtjW2FkKzg+PjJdPWFDO2NbYWQrMTI+PjJdPVo7
YnJlYWt9Sz1hZDttPV8+Pj44O2Rve2lmKChtfDApPT0wKXthRT0wfWVsc2V7aWYoXz4+PjA+MTY3
NzcyMTUpe2FFPTMxO2JyZWFrfVM9KG0rMTA0ODMyMHwwKT4+PjE2Jjg7WT1tPDxTO2FjPShZKzUy
MDE5MnwwKT4+PjE2JjQ7Vz1ZPDxhYztZPShXKzI0NTc2MHwwKT4+PjE2JjI7UT0xNC0oYWN8U3xZ
KSsoVzw8WT4+PjE1KXwwO2FFPV8+Pj4oKFErN3wwKT4+PjApJjF8UTw8MX19d2hpbGUoMCk7bT0x
MDE0NCsoYUU8PDIpfDA7Y1thZCsyOD4+Ml09YUU7Y1thZCsyMD4+Ml09MDtjW2FkKzE2Pj4yXT0w
O1o9Y1syNDYxXXwwO1E9MTw8YUU7aWYoKFomUXwwKT09MCl7Y1syNDYxXT1afFE7Y1ttPj4yXT1L
O2NbYWQrMjQ+PjJdPW07Y1thZCsxMj4+Ml09YWQ7Y1thZCs4Pj4yXT1hZDticmVha31pZigoYUV8
MCk9PTMxKXthRj0wfWVsc2V7YUY9MjUtKGFFPj4+MSl8MH1RPV88PGFGO1o9Y1ttPj4yXXwwO3do
aWxlKDEpe2lmKChjW1orND4+Ml0mLTh8MCk9PShffDApKXticmVha31hRz1aKzE2KyhRPj4+MzE8
PDIpfDA7bT1jW2FHPj4yXXwwO2lmKChtfDApPT0wKXtUPTg0MTticmVha31lbHNle1E9UTw8MTta
PW19fWlmKChUfDApPT04NDEpe2lmKGFHPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJu
IDB9ZWxzZXtjW2FHPj4yXT1LO2NbYWQrMjQ+PjJdPVo7Y1thZCsxMj4+Ml09YWQ7Y1thZCs4Pj4y
XT1hZDticmVha319UT1aKzh8MDtfPWNbUT4+Ml18MDttPWNbMjQ2NF18MDtpZihaPj4+MDxtPj4+
MCl7YkcoKTtyZXR1cm4gMH1pZihfPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbXysx
Mj4+Ml09SztjW1E+PjJdPUs7Y1thZCs4Pj4yXT1fO2NbYWQrMTI+PjJdPVo7Y1thZCsyND4+Ml09
MDticmVha319fXdoaWxlKDApO2FkPWNbMjQ2M118MDtpZihhZD4+PjA8PW8+Pj4wKXticmVha31f
PWFkLW98MDtjWzI0NjNdPV87YWQ9Y1syNDY2XXwwO1E9YWQ7Y1syNDY2XT1RK287Y1tRKyhvKzQp
Pj4yXT1ffDE7Y1thZCs0Pj4yXT1vfDM7bj1hZCs4fDA7cmV0dXJuIG58MH19d2hpbGUoMCk7Y1so
YncoKXwwKT4+Ml09MTI7bj0wO3JldHVybiBufDB9ZnVuY3Rpb24ga0soYSl7YT1hfDA7dmFyIGI9
MCxkPTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wO2lmKChhfDApPT0wKXtyZXR1
cm59Yj1hLTh8MDtkPWI7ZT1jWzI0NjRdfDA7aWYoYj4+PjA8ZT4+PjApe2JHKCl9Zj1jW2EtND4+
Ml18MDtnPWYmMztpZigoZ3wwKT09MSl7YkcoKX1oPWYmLTg7aT1hKyhoLTgpfDA7aj1pO0wxMTg5
OmRve2lmKChmJjF8MCk9PTApe2s9Y1tiPj4yXXwwO2lmKChnfDApPT0wKXtyZXR1cm59bD0tOC1r
fDA7bT1hK2x8MDtuPW07bz1rK2h8MDtpZihtPj4+MDxlPj4+MCl7YkcoKX1pZigobnwwKT09KGNb
MjQ2NV18MCkpe3A9YSsoaC00KXwwO2lmKChjW3A+PjJdJjN8MCkhPTMpe3E9bjtyPW87YnJlYWt9
Y1syNDYyXT1vO2NbcD4+Ml09Y1twPj4yXSYtMjtjW2ErKGwrNCk+PjJdPW98MTtjW2k+PjJdPW87
cmV0dXJufXA9az4+PjM7aWYoaz4+PjA8MjU2KXtrPWNbYSsobCs4KT4+Ml18MDtzPWNbYSsobCsx
Mik+PjJdfDA7dD05ODgwKyhwPDwxPDwyKXwwO2Rve2lmKChrfDApIT0odHwwKSl7aWYoaz4+PjA8
ZT4+PjApe2JHKCl9aWYoKGNbaysxMj4+Ml18MCk9PShufDApKXticmVha31iRygpfX13aGlsZSgw
KTtpZigoc3wwKT09KGt8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PHApO3E9bjtyPW87YnJlYWt9
ZG97aWYoKHN8MCk9PSh0fDApKXt1PXMrOHwwfWVsc2V7aWYocz4+PjA8ZT4+PjApe2JHKCl9dj1z
Kzh8MDtpZigoY1t2Pj4yXXwwKT09KG58MCkpe3U9djticmVha31iRygpfX13aGlsZSgwKTtjW2sr
MTI+PjJdPXM7Y1t1Pj4yXT1rO3E9bjtyPW87YnJlYWt9dD1tO3A9Y1thKyhsKzI0KT4+Ml18MDt2
PWNbYSsobCsxMik+PjJdfDA7ZG97aWYoKHZ8MCk9PSh0fDApKXt3PWErKGwrMjApfDA7eD1jW3c+
PjJdfDA7aWYoKHh8MCk9PTApe3k9YSsobCsxNil8MDt6PWNbeT4+Ml18MDtpZigoenwwKT09MCl7
QT0wO2JyZWFrfWVsc2V7Qj16O0M9eX19ZWxzZXtCPXg7Qz13fXdoaWxlKDEpe3c9QisyMHwwO3g9
Y1t3Pj4yXXwwO2lmKCh4fDApIT0wKXtCPXg7Qz13O2NvbnRpbnVlfXc9QisxNnwwO3g9Y1t3Pj4y
XXwwO2lmKCh4fDApPT0wKXticmVha31lbHNle0I9eDtDPXd9fWlmKEM+Pj4wPGU+Pj4wKXtiRygp
fWVsc2V7Y1tDPj4yXT0wO0E9QjticmVha319ZWxzZXt3PWNbYSsobCs4KT4+Ml18MDtpZih3Pj4+
MDxlPj4+MCl7YkcoKX14PXcrMTJ8MDtpZigoY1t4Pj4yXXwwKSE9KHR8MCkpe2JHKCl9eT12Kzh8
MDtpZigoY1t5Pj4yXXwwKT09KHR8MCkpe2NbeD4+Ml09djtjW3k+PjJdPXc7QT12O2JyZWFrfWVs
c2V7YkcoKX19fXdoaWxlKDApO2lmKChwfDApPT0wKXtxPW47cj1vO2JyZWFrfXY9YSsobCsyOCl8
MDttPTEwMTQ0KyhjW3Y+PjJdPDwyKXwwO2Rve2lmKCh0fDApPT0oY1ttPj4yXXwwKSl7Y1ttPj4y
XT1BO2lmKChBfDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Y+PjJdKTtxPW47
cj1vO2JyZWFrIEwxMTg5fWVsc2V7aWYocD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWs9cCsx
NnwwO2lmKChjW2s+PjJdfDApPT0odHwwKSl7Y1trPj4yXT1BfWVsc2V7Y1twKzIwPj4yXT1BfWlm
KChBfDApPT0wKXtxPW47cj1vO2JyZWFrIEwxMTg5fX19d2hpbGUoMCk7aWYoQT4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpfWNbQSsyND4+Ml09cDt0PWNbYSsobCsxNik+PjJdfDA7ZG97aWYoKHR8
MCkhPTApe2lmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbQSsxNj4+Ml09dDtj
W3QrMjQ+PjJdPUE7YnJlYWt9fX13aGlsZSgwKTt0PWNbYSsobCsyMCk+PjJdfDA7aWYoKHR8MCk9
PTApe3E9bjtyPW87YnJlYWt9aWYodD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tB
KzIwPj4yXT10O2NbdCsyND4+Ml09QTtxPW47cj1vO2JyZWFrfX1lbHNle3E9ZDtyPWh9fXdoaWxl
KDApO2Q9cTtpZihkPj4+MD49aT4+PjApe2JHKCl9QT1hKyhoLTQpfDA7ZT1jW0E+PjJdfDA7aWYo
KGUmMXwwKT09MCl7YkcoKX1kb3tpZigoZSYyfDApPT0wKXtpZigoanwwKT09KGNbMjQ2Nl18MCkp
e0I9KGNbMjQ2M118MCkrcnwwO2NbMjQ2M109QjtjWzI0NjZdPXE7Y1txKzQ+PjJdPUJ8MTtpZigo
cXwwKSE9KGNbMjQ2NV18MCkpe3JldHVybn1jWzI0NjVdPTA7Y1syNDYyXT0wO3JldHVybn1pZigo
anwwKT09KGNbMjQ2NV18MCkpe0I9KGNbMjQ2Ml18MCkrcnwwO2NbMjQ2Ml09QjtjWzI0NjVdPXE7
Y1txKzQ+PjJdPUJ8MTtjW2QrQj4+Ml09QjtyZXR1cm59Qj0oZSYtOCkrcnwwO0M9ZT4+PjM7TDEy
OTI6ZG97aWYoZT4+PjA8MjU2KXt1PWNbYStoPj4yXXwwO2c9Y1thKyhofDQpPj4yXXwwO2I9OTg4
MCsoQzw8MTw8Mil8MDtkb3tpZigodXwwKSE9KGJ8MCkpe2lmKHU+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKX1pZigoY1t1KzEyPj4yXXwwKT09KGp8MCkpe2JyZWFrfWJHKCl9fXdoaWxlKDApO2lm
KChnfDApPT0odXwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8Qyk7YnJlYWt9ZG97aWYoKGd8MCk9
PShifDApKXtEPWcrOHwwfWVsc2V7aWYoZz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWY9Zys4
fDA7aWYoKGNbZj4+Ml18MCk9PShqfDApKXtEPWY7YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1t1KzEy
Pj4yXT1nO2NbRD4+Ml09dX1lbHNle2I9aTtmPWNbYSsoaCsxNik+PjJdfDA7dD1jW2ErKGh8NCk+
PjJdfDA7ZG97aWYoKHR8MCk9PShifDApKXtwPWErKGgrMTIpfDA7dj1jW3A+PjJdfDA7aWYoKHZ8
MCk9PTApe209YSsoaCs4KXwwO2s9Y1ttPj4yXXwwO2lmKChrfDApPT0wKXtFPTA7YnJlYWt9ZWxz
ZXtGPWs7Rz1tfX1lbHNle0Y9djtHPXB9d2hpbGUoMSl7cD1GKzIwfDA7dj1jW3A+PjJdfDA7aWYo
KHZ8MCkhPTApe0Y9djtHPXA7Y29udGludWV9cD1GKzE2fDA7dj1jW3A+PjJdfDA7aWYoKHZ8MCk9
PTApe2JyZWFrfWVsc2V7Rj12O0c9cH19aWYoRz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVs
c2V7Y1tHPj4yXT0wO0U9RjticmVha319ZWxzZXtwPWNbYStoPj4yXXwwO2lmKHA+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKX12PXArMTJ8MDtpZigoY1t2Pj4yXXwwKSE9KGJ8MCkpe2JHKCl9bT10
Kzh8MDtpZigoY1ttPj4yXXwwKT09KGJ8MCkpe2Nbdj4+Ml09dDtjW20+PjJdPXA7RT10O2JyZWFr
fWVsc2V7YkcoKX19fXdoaWxlKDApO2lmKChmfDApPT0wKXticmVha310PWErKGgrMjApfDA7dT0x
MDE0NCsoY1t0Pj4yXTw8Mil8MDtkb3tpZigoYnwwKT09KGNbdT4+Ml18MCkpe2NbdT4+Ml09RTtp
ZigoRXwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1t0Pj4yXSk7YnJlYWsgTDEy
OTJ9ZWxzZXtpZihmPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Zz1mKzE2fDA7aWYoKGNbZz4+
Ml18MCk9PShifDApKXtjW2c+PjJdPUV9ZWxzZXtjW2YrMjA+PjJdPUV9aWYoKEV8MCk9PTApe2Jy
ZWFrIEwxMjkyfX19d2hpbGUoMCk7aWYoRT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWNbRSsy
ND4+Ml09ZjtiPWNbYSsoaCs4KT4+Ml18MDtkb3tpZigoYnwwKSE9MCl7aWYoYj4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tFKzE2Pj4yXT1iO2NbYisyND4+Ml09RTticmVha319fXdo
aWxlKDApO2I9Y1thKyhoKzEyKT4+Ml18MDtpZigoYnwwKT09MCl7YnJlYWt9aWYoYj4+PjA8KGNb
MjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tFKzIwPj4yXT1iO2NbYisyND4+Ml09RTticmVha319
fXdoaWxlKDApO2NbcSs0Pj4yXT1CfDE7Y1tkK0I+PjJdPUI7aWYoKHF8MCkhPShjWzI0NjVdfDAp
KXtIPUI7YnJlYWt9Y1syNDYyXT1CO3JldHVybn1lbHNle2NbQT4+Ml09ZSYtMjtjW3ErND4+Ml09
cnwxO2NbZCtyPj4yXT1yO0g9cn19d2hpbGUoMCk7cj1IPj4+MztpZihIPj4+MDwyNTYpe2Q9cjw8
MTtlPTk4ODArKGQ8PDIpfDA7QT1jWzI0NjBdfDA7RT0xPDxyO2Rve2lmKChBJkV8MCk9PTApe2Nb
MjQ2MF09QXxFO0k9ZTtKPTk4ODArKGQrMjw8Mil8MH1lbHNle3I9OTg4MCsoZCsyPDwyKXwwO2g9
Y1tyPj4yXXwwO2lmKGg+Pj4wPj0oY1syNDY0XXwwKT4+PjApe0k9aDtKPXI7YnJlYWt9YkcoKX19
d2hpbGUoMCk7Y1tKPj4yXT1xO2NbSSsxMj4+Ml09cTtjW3ErOD4+Ml09STtjW3ErMTI+PjJdPWU7
cmV0dXJufWU9cTtJPUg+Pj44O2Rve2lmKChJfDApPT0wKXtLPTB9ZWxzZXtpZihIPj4+MD4xNjc3
NzIxNSl7Sz0zMTticmVha31KPShJKzEwNDgzMjB8MCk+Pj4xNiY4O2Q9STw8SjtFPShkKzUyMDE5
MnwwKT4+PjE2JjQ7QT1kPDxFO2Q9KEErMjQ1NzYwfDApPj4+MTYmMjtyPTE0LShFfEp8ZCkrKEE8
PGQ+Pj4xNSl8MDtLPUg+Pj4oKHIrN3wwKT4+PjApJjF8cjw8MX19d2hpbGUoMCk7ST0xMDE0NCso
Szw8Mil8MDtjW3ErMjg+PjJdPUs7Y1txKzIwPj4yXT0wO2NbcSsxNj4+Ml09MDtyPWNbMjQ2MV18
MDtkPTE8PEs7ZG97aWYoKHImZHwwKT09MCl7Y1syNDYxXT1yfGQ7Y1tJPj4yXT1lO2NbcSsyND4+
Ml09STtjW3ErMTI+PjJdPXE7Y1txKzg+PjJdPXF9ZWxzZXtpZigoS3wwKT09MzEpe0w9MH1lbHNl
e0w9MjUtKEs+Pj4xKXwwfUE9SDw8TDtKPWNbST4+Ml18MDt3aGlsZSgxKXtpZigoY1tKKzQ+PjJd
Ji04fDApPT0oSHwwKSl7YnJlYWt9TT1KKzE2KyhBPj4+MzE8PDIpfDA7RT1jW00+PjJdfDA7aWYo
KEV8MCk9PTApe049MTAxODticmVha31lbHNle0E9QTw8MTtKPUV9fWlmKChOfDApPT0xMDE4KXtp
ZihNPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW00+PjJdPWU7Y1txKzI0Pj4yXT1K
O2NbcSsxMj4+Ml09cTtjW3ErOD4+Ml09cTticmVha319QT1KKzh8MDtCPWNbQT4+Ml18MDtFPWNb
MjQ2NF18MDtpZihKPj4+MDxFPj4+MCl7YkcoKX1pZihCPj4+MDxFPj4+MCl7YkcoKX1lbHNle2Nb
QisxMj4+Ml09ZTtjW0E+PjJdPWU7Y1txKzg+PjJdPUI7Y1txKzEyPj4yXT1KO2NbcSsyND4+Ml09
MDticmVha319fXdoaWxlKDApO3E9KGNbMjQ2OF18MCktMXwwO2NbMjQ2OF09cTtpZigocXwwKT09
MCl7Tz0xMDI5Nn1lbHNle3JldHVybn13aGlsZSgxKXtxPWNbTz4+Ml18MDtpZigocXwwKT09MCl7
YnJlYWt9ZWxzZXtPPXErOHwwfX1jWzI0NjhdPS0xO3JldHVybn1mdW5jdGlvbiBrTChhLGIpe2E9
YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTA7aWYoKGF8MCk9PTApe2Q9a0ooYil8MDtyZXR1
cm4gZHwwfWlmKGI+Pj4wPjQyOTQ5NjcyMzEpe2NbKGJ3KCl8MCk+PjJdPTEyO2Q9MDtyZXR1cm4g
ZHwwfWlmKGI+Pj4wPDExKXtlPTE2fWVsc2V7ZT1iKzExJi04fWY9a00oYS04fDAsZSl8MDtpZigo
ZnwwKSE9MCl7ZD1mKzh8MDtyZXR1cm4gZHwwfWY9a0ooYil8MDtpZigoZnwwKT09MCl7ZD0wO3Jl
dHVybiBkfDB9ZT1jW2EtND4+Ml18MDtnPShlJi04KS0oKGUmM3wwKT09MD84OjQpfDA7ZT1nPj4+
MDxiPj4+MD9nOmI7a1koZnwwLGF8MCxlKXwwO2tLKGEpO2Q9ZjtyZXR1cm4gZHwwfWZ1bmN0aW9u
IGtNKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wO2Q9YSs0fDA7ZT1jW2Q+PjJdfDA7Zj1lJi04O2c9YTtoPWcrZnwwO2k9aDtqPWNbMjQ2
NF18MDtpZihnPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1rPWUmMztpZighKChrfDApIT0xJmc+
Pj4wPGg+Pj4wKSl7YkcoKTtyZXR1cm4gMH1sPWcrKGZ8NCl8MDttPWNbbD4+Ml18MDtpZigobSYx
fDApPT0wKXtiRygpO3JldHVybiAwfWlmKChrfDApPT0wKXtpZihiPj4+MDwyNTYpe249MDtyZXR1
cm4gbnwwfWRve2lmKGY+Pj4wPj0oYis0fDApPj4+MCl7aWYoKGYtYnwwKT4+PjA+Y1syNDUyXTw8
MT4+PjApe2JyZWFrfWVsc2V7bj1hfXJldHVybiBufDB9fXdoaWxlKDApO249MDtyZXR1cm4gbnww
fWlmKGY+Pj4wPj1iPj4+MCl7az1mLWJ8MDtpZihrPj4+MDw9MTUpe249YTtyZXR1cm4gbnwwfWNb
ZD4+Ml09ZSYxfGJ8MjtjW2crKGIrNCk+PjJdPWt8MztjW2w+PjJdPWNbbD4+Ml18MTtrTihnK2J8
MCxrKTtuPWE7cmV0dXJuIG58MH1pZigoaXwwKT09KGNbMjQ2Nl18MCkpe2s9KGNbMjQ2M118MCkr
ZnwwO2lmKGs+Pj4wPD1iPj4+MCl7bj0wO3JldHVybiBufDB9bD1rLWJ8MDtjW2Q+PjJdPWUmMXxi
fDI7Y1tnKyhiKzQpPj4yXT1sfDE7Y1syNDY2XT1nK2I7Y1syNDYzXT1sO249YTtyZXR1cm4gbnww
fWlmKChpfDApPT0oY1syNDY1XXwwKSl7bD0oY1syNDYyXXwwKStmfDA7aWYobD4+PjA8Yj4+PjAp
e249MDtyZXR1cm4gbnwwfWs9bC1ifDA7aWYoaz4+PjA+MTUpe2NbZD4+Ml09ZSYxfGJ8MjtjW2cr
KGIrNCk+PjJdPWt8MTtjW2crbD4+Ml09aztvPWcrKGwrNCl8MDtjW28+PjJdPWNbbz4+Ml0mLTI7
cD1nK2J8MDtxPWt9ZWxzZXtjW2Q+PjJdPWUmMXxsfDI7ZT1nKyhsKzQpfDA7Y1tlPj4yXT1jW2U+
PjJdfDE7cD0wO3E9MH1jWzI0NjJdPXE7Y1syNDY1XT1wO249YTtyZXR1cm4gbnwwfWlmKChtJjJ8
MCkhPTApe249MDtyZXR1cm4gbnwwfXA9KG0mLTgpK2Z8MDtpZihwPj4+MDxiPj4+MCl7bj0wO3Jl
dHVybiBufDB9cT1wLWJ8MDtlPW0+Pj4zO0wxNDc4OmRve2lmKG0+Pj4wPDI1Nil7bD1jW2crKGYr
OCk+PjJdfDA7az1jW2crKGYrMTIpPj4yXXwwO289OTg4MCsoZTw8MTw8Mil8MDtkb3tpZigobHww
KSE9KG98MCkpe2lmKGw+Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAwfWlmKChjW2wrMTI+PjJdfDAp
PT0oaXwwKSl7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7aWYoKGt8MCk9PShsfDApKXtj
WzI0NjBdPWNbMjQ2MF0mfigxPDxlKTticmVha31kb3tpZigoa3wwKT09KG98MCkpe3I9ays4fDB9
ZWxzZXtpZihrPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1zPWsrOHwwO2lmKChjW3M+PjJdfDAp
PT0oaXwwKSl7cj1zO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2NbbCsxMj4+Ml09aztj
W3I+PjJdPWx9ZWxzZXtvPWg7cz1jW2crKGYrMjQpPj4yXXwwO3Q9Y1tnKyhmKzEyKT4+Ml18MDtk
b3tpZigodHwwKT09KG98MCkpe3U9ZysoZisyMCl8MDt2PWNbdT4+Ml18MDtpZigodnwwKT09MCl7
dz1nKyhmKzE2KXwwO3g9Y1t3Pj4yXXwwO2lmKCh4fDApPT0wKXt5PTA7YnJlYWt9ZWxzZXt6PXg7
QT13fX1lbHNle3o9djtBPXV9d2hpbGUoMSl7dT16KzIwfDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCkh
PTApe3o9djtBPXU7Y29udGludWV9dT16KzE2fDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCk9PTApe2Jy
ZWFrfWVsc2V7ej12O0E9dX19aWYoQT4+PjA8aj4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW0E+
PjJdPTA7eT16O2JyZWFrfX1lbHNle3U9Y1tnKyhmKzgpPj4yXXwwO2lmKHU+Pj4wPGo+Pj4wKXti
RygpO3JldHVybiAwfXY9dSsxMnwwO2lmKChjW3Y+PjJdfDApIT0ob3wwKSl7YkcoKTtyZXR1cm4g
MH13PXQrOHwwO2lmKChjW3c+PjJdfDApPT0ob3wwKSl7Y1t2Pj4yXT10O2Nbdz4+Ml09dTt5PXQ7
YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7aWYoKHN8MCk9PTApe2JyZWFrfXQ9
ZysoZisyOCl8MDtsPTEwMTQ0KyhjW3Q+PjJdPDwyKXwwO2Rve2lmKChvfDApPT0oY1tsPj4yXXww
KSl7Y1tsPj4yXT15O2lmKCh5fDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Q+
PjJdKTticmVhayBMMTQ3OH1lbHNle2lmKHM+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1rPXMrMTZ8MDtpZigoY1trPj4yXXwwKT09KG98MCkpe2Nbaz4+Ml09eX1lbHNle2Nbcysy
MD4+Ml09eX1pZigoeXwwKT09MCl7YnJlYWsgTDE0Nzh9fX13aGlsZSgwKTtpZih5Pj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9Y1t5KzI0Pj4yXT1zO289Y1tnKyhmKzE2KT4+Ml18
MDtkb3tpZigob3wwKSE9MCl7aWYobz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAw
fWVsc2V7Y1t5KzE2Pj4yXT1vO2NbbysyND4+Ml09eTticmVha319fXdoaWxlKDApO289Y1tnKyhm
KzIwKT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9aWYobz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXti
RygpO3JldHVybiAwfWVsc2V7Y1t5KzIwPj4yXT1vO2NbbysyND4+Ml09eTticmVha319fXdoaWxl
KDApO2lmKHE+Pj4wPDE2KXtjW2Q+PjJdPXB8Y1tkPj4yXSYxfDI7eT1nKyhwfDQpfDA7Y1t5Pj4y
XT1jW3k+PjJdfDE7bj1hO3JldHVybiBufDB9ZWxzZXtjW2Q+PjJdPWNbZD4+Ml0mMXxifDI7Y1tn
KyhiKzQpPj4yXT1xfDM7ZD1nKyhwfDQpfDA7Y1tkPj4yXT1jW2Q+PjJdfDE7a04oZytifDAscSk7
bj1hO3JldHVybiBufDB9cmV0dXJuIDB9ZnVuY3Rpb24ga04oYSxiKXthPWF8MDtiPWJ8MDt2YXIg
ZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9
MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MDtkPWE7ZT1kK2J8MDtmPWU7Zz1jW2ErND4+Ml18MDtM
MTU1NDpkb3tpZigoZyYxfDApPT0wKXtoPWNbYT4+Ml18MDtpZigoZyYzfDApPT0wKXtyZXR1cm59
aT1kKygtaHwwKXwwO2o9aTtrPWgrYnwwO2w9Y1syNDY0XXwwO2lmKGk+Pj4wPGw+Pj4wKXtiRygp
fWlmKChqfDApPT0oY1syNDY1XXwwKSl7bT1kKyhiKzQpfDA7aWYoKGNbbT4+Ml0mM3wwKSE9Myl7
bj1qO289azticmVha31jWzI0NjJdPWs7Y1ttPj4yXT1jW20+PjJdJi0yO2NbZCsoNC1oKT4+Ml09
a3wxO2NbZT4+Ml09aztyZXR1cm59bT1oPj4+MztpZihoPj4+MDwyNTYpe3A9Y1tkKyg4LWgpPj4y
XXwwO3E9Y1tkKygxMi1oKT4+Ml18MDtyPTk4ODArKG08PDE8PDIpfDA7ZG97aWYoKHB8MCkhPShy
fDApKXtpZihwPj4+MDxsPj4+MCl7YkcoKX1pZigoY1twKzEyPj4yXXwwKT09KGp8MCkpe2JyZWFr
fWJHKCl9fXdoaWxlKDApO2lmKChxfDApPT0ocHwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8bSk7
bj1qO289azticmVha31kb3tpZigocXwwKT09KHJ8MCkpe3M9cSs4fDB9ZWxzZXtpZihxPj4+MDxs
Pj4+MCl7YkcoKX10PXErOHwwO2lmKChjW3Q+PjJdfDApPT0oanwwKSl7cz10O2JyZWFrfWJHKCl9
fXdoaWxlKDApO2NbcCsxMj4+Ml09cTtjW3M+PjJdPXA7bj1qO289azticmVha31yPWk7bT1jW2Qr
KDI0LWgpPj4yXXwwO3Q9Y1tkKygxMi1oKT4+Ml18MDtkb3tpZigodHwwKT09KHJ8MCkpe3U9MTYt
aHwwO3Y9ZCsodSs0KXwwO3c9Y1t2Pj4yXXwwO2lmKCh3fDApPT0wKXt4PWQrdXwwO3U9Y1t4Pj4y
XXwwO2lmKCh1fDApPT0wKXt5PTA7YnJlYWt9ZWxzZXt6PXU7QT14fX1lbHNle3o9dztBPXZ9d2hp
bGUoMSl7dj16KzIwfDA7dz1jW3Y+PjJdfDA7aWYoKHd8MCkhPTApe3o9dztBPXY7Y29udGludWV9
dj16KzE2fDA7dz1jW3Y+PjJdfDA7aWYoKHd8MCk9PTApe2JyZWFrfWVsc2V7ej13O0E9dn19aWYo
QT4+PjA8bD4+PjApe2JHKCl9ZWxzZXtjW0E+PjJdPTA7eT16O2JyZWFrfX1lbHNle3Y9Y1tkKyg4
LWgpPj4yXXwwO2lmKHY+Pj4wPGw+Pj4wKXtiRygpfXc9disxMnwwO2lmKChjW3c+PjJdfDApIT0o
cnwwKSl7YkcoKX14PXQrOHwwO2lmKChjW3g+PjJdfDApPT0ocnwwKSl7Y1t3Pj4yXT10O2NbeD4+
Ml09djt5PXQ7YnJlYWt9ZWxzZXtiRygpfX19d2hpbGUoMCk7aWYoKG18MCk9PTApe249ajtvPWs7
YnJlYWt9dD1kKygyOC1oKXwwO2w9MTAxNDQrKGNbdD4+Ml08PDIpfDA7ZG97aWYoKHJ8MCk9PShj
W2w+PjJdfDApKXtjW2w+PjJdPXk7aWYoKHl8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+
KDE8PGNbdD4+Ml0pO249ajtvPWs7YnJlYWsgTDE1NTR9ZWxzZXtpZihtPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCl9aT1tKzE2fDA7aWYoKGNbaT4+Ml18MCk9PShyfDApKXtjW2k+PjJdPXl9ZWxz
ZXtjW20rMjA+PjJdPXl9aWYoKHl8MCk9PTApe249ajtvPWs7YnJlYWsgTDE1NTR9fX13aGlsZSgw
KTtpZih5Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Y1t5KzI0Pj4yXT1tO3I9MTYtaHwwO3Q9
Y1tkK3I+PjJdfDA7ZG97aWYoKHR8MCkhPTApe2lmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KX1lbHNle2NbeSsxNj4+Ml09dDtjW3QrMjQ+PjJdPXk7YnJlYWt9fX13aGlsZSgwKTt0PWNbZCso
cis0KT4+Ml18MDtpZigodHwwKT09MCl7bj1qO289azticmVha31pZih0Pj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCl9ZWxzZXtjW3krMjA+PjJdPXQ7Y1t0KzI0Pj4yXT15O249ajtvPWs7YnJlYWt9
fWVsc2V7bj1hO289Yn19d2hpbGUoMCk7YT1jWzI0NjRdfDA7aWYoZT4+PjA8YT4+PjApe2JHKCl9
eT1kKyhiKzQpfDA7ej1jW3k+PjJdfDA7ZG97aWYoKHomMnwwKT09MCl7aWYoKGZ8MCk9PShjWzI0
NjZdfDApKXtBPShjWzI0NjNdfDApK298MDtjWzI0NjNdPUE7Y1syNDY2XT1uO2Nbbis0Pj4yXT1B
fDE7aWYoKG58MCkhPShjWzI0NjVdfDApKXtyZXR1cm59Y1syNDY1XT0wO2NbMjQ2Ml09MDtyZXR1
cm59aWYoKGZ8MCk9PShjWzI0NjVdfDApKXtBPShjWzI0NjJdfDApK298MDtjWzI0NjJdPUE7Y1sy
NDY1XT1uO2Nbbis0Pj4yXT1BfDE7Y1tuK0E+PjJdPUE7cmV0dXJufUE9KHomLTgpK298MDtzPXo+
Pj4zO0wxNjUzOmRve2lmKHo+Pj4wPDI1Nil7Zz1jW2QrKGIrOCk+PjJdfDA7dD1jW2QrKGIrMTIp
Pj4yXXwwO2g9OTg4MCsoczw8MTw8Mil8MDtkb3tpZigoZ3wwKSE9KGh8MCkpe2lmKGc+Pj4wPGE+
Pj4wKXtiRygpfWlmKChjW2crMTI+PjJdfDApPT0oZnwwKSl7YnJlYWt9YkcoKX19d2hpbGUoMCk7
aWYoKHR8MCk9PShnfDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxzKTticmVha31kb3tpZigodHww
KT09KGh8MCkpe0I9dCs4fDB9ZWxzZXtpZih0Pj4+MDxhPj4+MCl7YkcoKX1tPXQrOHwwO2lmKChj
W20+PjJdfDApPT0oZnwwKSl7Qj1tO2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbZysxMj4+Ml09dDtj
W0I+PjJdPWd9ZWxzZXtoPWU7bT1jW2QrKGIrMjQpPj4yXXwwO2w9Y1tkKyhiKzEyKT4+Ml18MDtk
b3tpZigobHwwKT09KGh8MCkpe2k9ZCsoYisyMCl8MDtwPWNbaT4+Ml18MDtpZigocHwwKT09MCl7
cT1kKyhiKzE2KXwwO3Y9Y1txPj4yXXwwO2lmKCh2fDApPT0wKXtDPTA7YnJlYWt9ZWxzZXtEPXY7
RT1xfX1lbHNle0Q9cDtFPWl9d2hpbGUoMSl7aT1EKzIwfDA7cD1jW2k+PjJdfDA7aWYoKHB8MCkh
PTApe0Q9cDtFPWk7Y29udGludWV9aT1EKzE2fDA7cD1jW2k+PjJdfDA7aWYoKHB8MCk9PTApe2Jy
ZWFrfWVsc2V7RD1wO0U9aX19aWYoRT4+PjA8YT4+PjApe2JHKCl9ZWxzZXtjW0U+PjJdPTA7Qz1E
O2JyZWFrfX1lbHNle2k9Y1tkKyhiKzgpPj4yXXwwO2lmKGk+Pj4wPGE+Pj4wKXtiRygpfXA9aSsx
MnwwO2lmKChjW3A+PjJdfDApIT0oaHwwKSl7YkcoKX1xPWwrOHwwO2lmKChjW3E+PjJdfDApPT0o
aHwwKSl7Y1twPj4yXT1sO2NbcT4+Ml09aTtDPWw7YnJlYWt9ZWxzZXtiRygpfX19d2hpbGUoMCk7
aWYoKG18MCk9PTApe2JyZWFrfWw9ZCsoYisyOCl8MDtnPTEwMTQ0KyhjW2w+PjJdPDwyKXwwO2Rv
e2lmKChofDApPT0oY1tnPj4yXXwwKSl7Y1tnPj4yXT1DO2lmKChDfDApIT0wKXticmVha31jWzI0
NjFdPWNbMjQ2MV0mfigxPDxjW2w+PjJdKTticmVhayBMMTY1M31lbHNle2lmKG0+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKX10PW0rMTZ8MDtpZigoY1t0Pj4yXXwwKT09KGh8MCkpe2NbdD4+Ml09
Q31lbHNle2NbbSsyMD4+Ml09Q31pZigoQ3wwKT09MCl7YnJlYWsgTDE2NTN9fX13aGlsZSgwKTtp
ZihDPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Y1tDKzI0Pj4yXT1tO2g9Y1tkKyhiKzE2KT4+
Ml18MDtkb3tpZigoaHwwKSE9MCl7aWYoaD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7
Y1tDKzE2Pj4yXT1oO2NbaCsyND4+Ml09QzticmVha319fXdoaWxlKDApO2g9Y1tkKyhiKzIwKT4+
Ml18MDtpZigoaHwwKT09MCl7YnJlYWt9aWYoaD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVs
c2V7Y1tDKzIwPj4yXT1oO2NbaCsyND4+Ml09QzticmVha319fXdoaWxlKDApO2Nbbis0Pj4yXT1B
fDE7Y1tuK0E+PjJdPUE7aWYoKG58MCkhPShjWzI0NjVdfDApKXtGPUE7YnJlYWt9Y1syNDYyXT1B
O3JldHVybn1lbHNle2NbeT4+Ml09eiYtMjtjW24rND4+Ml09b3wxO2NbbitvPj4yXT1vO0Y9b319
d2hpbGUoMCk7bz1GPj4+MztpZihGPj4+MDwyNTYpe3o9bzw8MTt5PTk4ODArKHo8PDIpfDA7Qz1j
WzI0NjBdfDA7Yj0xPDxvO2Rve2lmKChDJmJ8MCk9PTApe2NbMjQ2MF09Q3xiO0c9eTtIPTk4ODAr
KHorMjw8Mil8MH1lbHNle289OTg4MCsoeisyPDwyKXwwO2Q9Y1tvPj4yXXwwO2lmKGQ+Pj4wPj0o
Y1syNDY0XXwwKT4+PjApe0c9ZDtIPW87YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1tIPj4yXT1uO2Nb
RysxMj4+Ml09bjtjW24rOD4+Ml09RztjW24rMTI+PjJdPXk7cmV0dXJufXk9bjtHPUY+Pj44O2Rv
e2lmKChHfDApPT0wKXtJPTB9ZWxzZXtpZihGPj4+MD4xNjc3NzIxNSl7ST0zMTticmVha31IPShH
KzEwNDgzMjB8MCk+Pj4xNiY4O3o9Rzw8SDtiPSh6KzUyMDE5MnwwKT4+PjE2JjQ7Qz16PDxiO3o9
KEMrMjQ1NzYwfDApPj4+MTYmMjtvPTE0LShifEh8eikrKEM8PHo+Pj4xNSl8MDtJPUY+Pj4oKG8r
N3wwKT4+PjApJjF8bzw8MX19d2hpbGUoMCk7Rz0xMDE0NCsoSTw8Mil8MDtjW24rMjg+PjJdPUk7
Y1tuKzIwPj4yXT0wO2NbbisxNj4+Ml09MDtvPWNbMjQ2MV18MDt6PTE8PEk7aWYoKG8menwwKT09
MCl7Y1syNDYxXT1vfHo7Y1tHPj4yXT15O2NbbisyND4+Ml09RztjW24rMTI+PjJdPW47Y1tuKzg+
PjJdPW47cmV0dXJufWlmKChJfDApPT0zMSl7Sj0wfWVsc2V7Sj0yNS0oST4+PjEpfDB9ST1GPDxK
O0o9Y1tHPj4yXXwwO3doaWxlKDEpe2lmKChjW0orND4+Ml0mLTh8MCk9PShGfDApKXticmVha31L
PUorMTYrKEk+Pj4zMTw8Mil8MDtHPWNbSz4+Ml18MDtpZigoR3wwKT09MCl7TD0xMjk4O2JyZWFr
fWVsc2V7ST1JPDwxO0o9R319aWYoKEx8MCk9PTEyOTgpe2lmKEs+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKX1jW0s+PjJdPXk7Y1tuKzI0Pj4yXT1KO2NbbisxMj4+Ml09bjtjW24rOD4+Ml09bjty
ZXR1cm59Sz1KKzh8MDtMPWNbSz4+Ml18MDtJPWNbMjQ2NF18MDtpZihKPj4+MDxJPj4+MCl7Ykco
KX1pZihMPj4+MDxJPj4+MCl7YkcoKX1jW0wrMTI+PjJdPXk7Y1tLPj4yXT15O2Nbbis4Pj4yXT1M
O2NbbisxMj4+Ml09SjtjW24rMjQ+PjJdPTA7cmV0dXJufWZ1bmN0aW9uIGtPKGEpe2E9YXwwO3Zh
ciBiPTAsZD0wLGU9MDtiPShhfDApPT0wPzE6YTt3aGlsZSgxKXtkPWtKKGIpfDA7aWYoKGR8MCkh
PTApe2U9MTM0MjticmVha31hPShJPWNbNDA0OF18MCxjWzQwNDhdPUkrMCxJKTtpZigoYXwwKT09
MCl7YnJlYWt9YjVbYSYzXSgpfWlmKChlfDApPT0xMzQyKXtyZXR1cm4gZHwwfWQ9Yk8oNCl8MDtj
W2Q+PjJdPTI0MDg7YmwoZHwwLDgxNjAsMzApO3JldHVybiAwfWZ1bmN0aW9uIGtQKGEpe2E9YXww
O3JldHVybiBrTyhhKXwwfWZ1bmN0aW9uIGtRKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBrUihh
KXthPWF8MDtyZXR1cm4gMTE2MHwwfWZ1bmN0aW9uIGtTKGEpe2E9YXwwO2lmKChhfDApIT0wKXtr
SyhhKX1yZXR1cm59ZnVuY3Rpb24ga1QoYSl7YT1hfDA7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGtV
KGEpe2E9YXwwO2tTKGEpO3JldHVybn1mdW5jdGlvbiBrVihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MC4wLHI9MCxzPTAs
dD0wLHU9MCx2PTAuMCx3PTAseD0wLHk9MCx6PTAuMCxBPTAuMCxCPTAsQz0wLEQ9MCxFPTAuMCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MC4wLE89MCxQPTAsUT0wLjAsUj0wLjAs
Uz0wLjA7ZT1iO3doaWxlKDEpe2Y9ZSsxfDA7aWYoKGFQKGFbZV18MCl8MCk9PTApe2JyZWFrfWVs
c2V7ZT1mfX1zd2l0Y2goYVtlXXwwKXtjYXNlIDQzOntnPWY7aT0wO2JyZWFrfTtjYXNlIDQ1Ontn
PWY7aT0xO2JyZWFrfTtkZWZhdWx0OntnPWU7aT0wfX1lPS0xO2Y9MDtqPWc7d2hpbGUoMSl7az1h
W2pdfDA7aWYoKChrPDwyND4+MjQpLTQ4fDApPj4+MDwxMCl7bD1lfWVsc2V7aWYoazw8MjQ+PjI0
IT00NnwoZXwwKT4tMSl7YnJlYWt9ZWxzZXtsPWZ9fWU9bDtmPWYrMXwwO2o9aisxfDB9bD1qKygt
ZnwwKXwwO2c9KGV8MCk8MDttPSgoZ14xKTw8MzE+PjMxKStmfDA7bj0obXwwKT4xODtvPShuPy0x
ODotbXwwKSsoZz9mOmUpfDA7ZT1uPzE4Om07ZG97aWYoKGV8MCk9PTApe3A9YjtxPTAuMH1lbHNl
e2lmKChlfDApPjkpe209bDtuPWU7Zj0wO3doaWxlKDEpe2c9YVttXXwwO3I9bSsxfDA7aWYoZzw8
MjQ+PjI0PT00Nil7cz1hW3JdfDA7dD1tKzJ8MH1lbHNle3M9Zzt0PXJ9dT0oZioxMHwwKS00OCso
czw8MjQ+PjI0KXwwO3I9bi0xfDA7aWYoKHJ8MCk+OSl7bT10O249cjtmPXV9ZWxzZXticmVha319
dj0rKHV8MCkqMS4wZTk7dz05O3g9dDt5PTEzNzB9ZWxzZXtpZigoZXwwKT4wKXt2PTAuMDt3PWU7
eD1sO3k9MTM3MH1lbHNle3o9MC4wO0E9MC4wfX1pZigoeXwwKT09MTM3MCl7Zj14O249dzttPTA7
d2hpbGUoMSl7cj1hW2ZdfDA7Zz1mKzF8MDtpZihyPDwyND4+MjQ9PTQ2KXtCPWFbZ118MDtDPWYr
MnwwfWVsc2V7Qj1yO0M9Z31EPShtKjEwfDApLTQ4KyhCPDwyND4+MjQpfDA7Zz1uLTF8MDtpZigo
Z3wwKT4wKXtmPUM7bj1nO209RH1lbHNle2JyZWFrfX16PSsoRHwwKTtBPXZ9RT1BK3o7TDE4MTY6
ZG97c3dpdGNoKGs8PDI0Pj4yNCl7Y2FzZSA2OTpjYXNlIDEwMTp7bT1qKzF8MDtzd2l0Y2goYVtt
XXwwKXtjYXNlIDQ1OntGPWorMnwwO0c9MTticmVha307Y2FzZSA0Mzp7Rj1qKzJ8MDtHPTA7YnJl
YWt9O2RlZmF1bHQ6e0Y9bTtHPTB9fW09YVtGXXwwO2lmKCgobTw8MjQ+PjI0KS00OHwwKT4+PjA8
MTApe0g9RjtJPTA7Sj1tfWVsc2V7Sz0wO0w9RjtNPUc7YnJlYWsgTDE4MTZ9d2hpbGUoMSl7bT0o
SSoxMHwwKS00OCsoSjw8MjQ+PjI0KXwwO249SCsxfDA7Zj1hW25dfDA7aWYoKChmPDwyND4+MjQp
LTQ4fDApPj4+MDwxMCl7SD1uO0k9bTtKPWZ9ZWxzZXtLPW07TD1uO009RzticmVha319YnJlYWt9
O2RlZmF1bHQ6e0s9MDtMPWo7TT0wfX19d2hpbGUoMCk7bj1vKygoTXwwKT09MD9LOi1LfDApfDA7
bT0obnwwKTwwPy1ufDA6bjtpZigobXwwKT41MTEpe2NbKGJ3KCl8MCk+PjJdPTM0O049MS4wO089
ODtQPTUxMTt5PTEzODd9ZWxzZXtpZigobXwwKT09MCl7UT0xLjB9ZWxzZXtOPTEuMDtPPTg7UD1t
O3k9MTM4N319aWYoKHl8MCk9PTEzODcpe3doaWxlKDEpe3k9MDtpZigoUCYxfDApPT0wKXtSPU59
ZWxzZXtSPU4qK2hbTz4+M119bT1QPj4xO2lmKChtfDApPT0wKXtRPVI7YnJlYWt9ZWxzZXtOPVI7
Tz1PKzh8MDtQPW07eT0xMzg3fX19aWYoKG58MCk+LTEpe3A9TDtxPUUqUTticmVha31lbHNle3A9
TDtxPUUvUTticmVha319fXdoaWxlKDApO2lmKChkfDApIT0wKXtjW2Q+PjJdPXB9aWYoKGl8MCk9
PTApe1M9cTtyZXR1cm4rU31TPS0wLjAtcTtyZXR1cm4rU31mdW5jdGlvbiBrVyhhLGIsYyl7YT1h
fDA7Yj1ifDA7Yz1jfDA7cmV0dXJuKygra1YoYSxiKSl9ZnVuY3Rpb24ga1goKXt2YXIgYT0wO2E9
Yk8oNCl8MDtjW2E+PjJdPTI0MDg7YmwoYXwwLDgxNjAsMzApfWZ1bmN0aW9uIGtZKGIsZCxlKXti
PWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wO2Y9YnwwO2lmKChiJjMpPT0oZCYzKSl7d2hpbGUoYiYz
KXtpZigoZXwwKT09MClyZXR1cm4gZnwwO2FbYl09YVtkXXwwO2I9YisxfDA7ZD1kKzF8MDtlPWUt
MXwwfXdoaWxlKChlfDApPj00KXtjW2I+PjJdPWNbZD4+Ml07Yj1iKzR8MDtkPWQrNHwwO2U9ZS00
fDB9fXdoaWxlKChlfDApPjApe2FbYl09YVtkXXwwO2I9YisxfDA7ZD1kKzF8MDtlPWUtMXwwfXJl
dHVybiBmfDB9ZnVuY3Rpb24ga1ooYil7Yj1ifDA7dmFyIGM9MDtjPWFbbisoYj4+PjI0KXwwXXww
O2lmKChjfDApPDgpcmV0dXJuIGN8MDtjPWFbbisoYj4+MTYmMjU1KXwwXXwwO2lmKChjfDApPDgp
cmV0dXJuIGMrOHwwO2M9YVtuKyhiPj44JjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjKzE2
fDA7cmV0dXJuKGFbbisoYiYyNTUpfDBdfDApKzI0fDB9ZnVuY3Rpb24ga18oYixjLGQpe2I9Ynww
O2M9Y3wwO2Q9ZHwwO2lmKChjfDApPChifDApJihifDApPChjK2R8MCkpe2M9YytkfDA7Yj1iK2R8
MDt3aGlsZSgoZHwwKT4wKXtiPWItMXwwO2M9Yy0xfDA7ZD1kLTF8MDthW2JdPWFbY118MH19ZWxz
ZXtrWShiLGMsZCl8MH19ZnVuY3Rpb24gayQoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBm
PTAsZz0wLGg9MDtmPWIrZXwwO2lmKChlfDApPj0yMCl7ZD1kJjI1NTtlPWImMztnPWR8ZDw8OHxk
PDwxNnxkPDwyNDtoPWYmfjM7aWYoZSl7ZT1iKzQtZXwwO3doaWxlKChifDApPChlfDApKXthW2Jd
PWQ7Yj1iKzF8MH19d2hpbGUoKGJ8MCk8KGh8MCkpe2NbYj4+Ml09ZztiPWIrNHwwfX13aGlsZSgo
YnwwKTwoZnwwKSl7YVtiXT1kO2I9YisxfDB9fWZ1bmN0aW9uIGswKGIpe2I9YnwwO3ZhciBjPTA7
Yz1iO3doaWxlKGFbY118MCl7Yz1jKzF8MH1yZXR1cm4gYy1ifDB9ZnVuY3Rpb24gazEoYSxiLGMs
ZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7dmFyIGU9MDtlPWErYz4+PjA7cmV0dXJuKEs9Yitk
KyhlPj4+MDxhPj4+MHwwKT4+PjAsZXwwKXwwfWZ1bmN0aW9uIGsyKGEsYixjLGQpe2E9YXwwO2I9
YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTA7ZT1iLWQ+Pj4wO2U9Yi1kLShjPj4+MD5hPj4+MHwwKT4+
PjA7cmV0dXJuKEs9ZSxhLWM+Pj4wfDApfDB9ZnVuY3Rpb24gazMoYSxiLGMpe2E9YXwwO2I9Ynww
O2M9Y3wwO2lmKChjfDApPDMyKXtLPWI8PGN8KGEmKDE8PGMpLTE8PDMyLWMpPj4+MzItYztyZXR1
cm4gYTw8Y31LPWE8PGMtMzI7cmV0dXJuIDB9ZnVuY3Rpb24gazQoYSxiLGMpe2E9YXwwO2I9Ynww
O2M9Y3wwO2lmKChjfDApPDMyKXtLPWI+Pj5jO3JldHVybiBhPj4+Y3woYiYoMTw8YyktMSk8PDMy
LWN9Sz0wO3JldHVybiBiPj4+Yy0zMnwwfWZ1bmN0aW9uIGs1KGEsYixjKXthPWF8MDtiPWJ8MDtj
PWN8MDtpZigoY3wwKTwzMil7Sz1iPj5jO3JldHVybiBhPj4+Y3woYiYoMTw8YyktMSk8PDMyLWN9
Sz0oYnwwKTwwPy0xOjA7cmV0dXJuIGI+PmMtMzJ8MH1mdW5jdGlvbiBrNihiKXtiPWJ8MDt2YXIg
Yz0wO2M9YVttKyhiJjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjfDA7Yz1hW20rKGI+Pjgm
MjU1KXwwXXwwO2lmKChjfDApPDgpcmV0dXJuIGMrOHwwO2M9YVttKyhiPj4xNiYyNTUpfDBdfDA7
aWYoKGN8MCk8OClyZXR1cm4gYysxNnwwO3JldHVybihhW20rKGI+Pj4yNCl8MF18MCkrMjR8MH1m
dW5jdGlvbiBrNyhhLGIpe2E9YXwwO2I9YnwwO3ZhciBjPTAsZD0wLGU9MCxmPTA7Yz1hJjY1NTM1
O2Q9YiY2NTUzNTtlPWFnKGQsYyl8MDtmPWE+Pj4xNjthPShlPj4+MTYpKyhhZyhkLGYpfDApfDA7
ZD1iPj4+MTY7Yj1hZyhkLGMpfDA7cmV0dXJuKEs9KGE+Pj4xNikrKGFnKGQsZil8MCkrKCgoYSY2
NTUzNSkrYnwwKT4+PjE2KXwwLGErYjw8MTZ8ZSY2NTUzNXwwKXwwfWZ1bmN0aW9uIGs4KGEsYixj
LGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wO2U9Yj4+
MzF8KChifDApPDA/LTE6MCk8PDE7Zj0oKGJ8MCk8MD8tMTowKT4+MzF8KChifDApPDA/LTE6MCk8
PDE7Zz1kPj4zMXwoKGR8MCk8MD8tMTowKTw8MTtoPSgoZHwwKTwwPy0xOjApPj4zMXwoKGR8MCk8
MD8tMTowKTw8MTtpPWsyKGVeYSxmXmIsZSxmKXwwO2I9SzthPWdeZTtlPWheZjtmPWsyKChsZChp
LGIsazIoZ15jLGheZCxnLGgpfDAsSywwKXwwKV5hLEteZSxhLGUpfDA7cmV0dXJuKEs9SyxmKXww
fWZ1bmN0aW9uIGs5KGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0w
LGg9MCxqPTAsaz0wLGw9MCxtPTA7Zj1pO2k9aSs4fDA7Zz1mfDA7aD1iPj4zMXwoKGJ8MCk8MD8t
MTowKTw8MTtqPSgoYnwwKTwwPy0xOjApPj4zMXwoKGJ8MCk8MD8tMTowKTw8MTtrPWU+PjMxfCgo
ZXwwKTwwPy0xOjApPDwxO2w9KChlfDApPDA/LTE6MCk+PjMxfCgoZXwwKTwwPy0xOjApPDwxO209
azIoaF5hLGpeYixoLGopfDA7Yj1LO2E9azIoa15kLGxeZSxrLGwpfDA7bGQobSxiLGEsSyxnKXww
O2E9azIoY1tnPj4yXV5oLGNbZys0Pj4yXV5qLGgsail8MDtqPUs7aT1mO3JldHVybihLPWosYSl8
MH1mdW5jdGlvbiBsYShhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wLGY9
MDtlPWE7YT1jO2M9azcoZSxhKXwwO2Y9SztyZXR1cm4oSz0oYWcoYixhKXwwKSsoYWcoZCxlKXww
KStmfGYmMCxjfDB8MCl8MH1mdW5jdGlvbiBsYihhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtk
PWR8MDt2YXIgZT0wO2U9bGQoYSxiLGMsZCwwKXwwO3JldHVybihLPUssZSl8MH1mdW5jdGlvbiBs
YyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MDtmPWk7aT1pKzh8
MDtnPWZ8MDtsZChhLGIsZCxlLGcpfDA7aT1mO3JldHVybihLPWNbZys0Pj4yXXwwLGNbZz4+Ml18
MCl8MH1mdW5jdGlvbiBsZChhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxMPTAsTT0wO2c9YTtoPWI7aT1oO2o9ZDtrPWU7bD1rO2lmKChpfDApPT0wKXtt
PShmfDApIT0wO2lmKChsfDApPT0wKXtpZihtKXtjW2Y+PjJdPShnPj4+MCklKGo+Pj4wKTtjW2Yr
ND4+Ml09MH1uPTA7bz0oZz4+PjApLyhqPj4+MCk+Pj4wO3JldHVybihLPW4sbyl8MH1lbHNle2lm
KCFtKXtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1jW2Y+PjJdPWF8MDtjW2YrND4+Ml09YiYwO249
MDtvPTA7cmV0dXJuKEs9bixvKXwwfX1tPShsfDApPT0wO2Rve2lmKChqfDApPT0wKXtpZihtKXtp
ZigoZnwwKSE9MCl7Y1tmPj4yXT0oaT4+PjApJShqPj4+MCk7Y1tmKzQ+PjJdPTB9bj0wO289KGk+
Pj4wKS8oaj4+PjApPj4+MDtyZXR1cm4oSz1uLG8pfDB9aWYoKGd8MCk9PTApe2lmKChmfDApIT0w
KXtjW2Y+PjJdPTA7Y1tmKzQ+PjJdPShpPj4+MCklKGw+Pj4wKX1uPTA7bz0oaT4+PjApLyhsPj4+
MCk+Pj4wO3JldHVybihLPW4sbyl8MH1wPWwtMXwwO2lmKChwJmx8MCk9PTApe2lmKChmfDApIT0w
KXtjW2Y+PjJdPWF8MDtjW2YrND4+Ml09cCZpfGImMH1uPTA7bz1pPj4+KChrNihsfDApfDApPj4+
MCk7cmV0dXJuKEs9bixvKXwwfXA9KGtaKGx8MCl8MCktKGtaKGl8MCl8MCl8MDtpZihwPj4+MDw9
MzApe3E9cCsxfDA7cj0zMS1wfDA7cz1xO3Q9aTw8cnxnPj4+KHE+Pj4wKTt1PWk+Pj4ocT4+PjAp
O3Y9MDt3PWc8PHI7YnJlYWt9aWYoKGZ8MCk9PTApe249MDtvPTA7cmV0dXJuKEs9bixvKXwwfWNb
Zj4+Ml09YXwwO2NbZis0Pj4yXT1ofGImMDtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1lbHNle2lm
KCFtKXtyPShrWihsfDApfDApLShrWihpfDApfDApfDA7aWYocj4+PjA8PTMxKXtxPXIrMXwwO3A9
MzEtcnwwO3g9ci0zMT4+MzE7cz1xO3Q9Zz4+PihxPj4+MCkmeHxpPDxwO3U9aT4+PihxPj4+MCkm
eDt2PTA7dz1nPDxwO2JyZWFrfWlmKChmfDApPT0wKXtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1j
W2Y+PjJdPWF8MDtjW2YrND4+Ml09aHxiJjA7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9cD1qLTF8
MDtpZigocCZqfDApIT0wKXt4PShrWihqfDApfDApKzMzLShrWihpfDApfDApfDA7cT02NC14fDA7
cj0zMi14fDA7eT1yPj4zMTt6PXgtMzJ8MDtBPXo+PjMxO3M9eDt0PXItMT4+MzEmaT4+Pih6Pj4+
MCl8KGk8PHJ8Zz4+Pih4Pj4+MCkpJkE7dT1BJmk+Pj4oeD4+PjApO3Y9Zzw8cSZ5O3c9KGk8PHF8
Zz4+Pih6Pj4+MCkpJnl8Zzw8ciZ4LTMzPj4zMTticmVha31pZigoZnwwKSE9MCl7Y1tmPj4yXT1w
Jmc7Y1tmKzQ+PjJdPTB9aWYoKGp8MCk9PTEpe249aHxiJjA7bz1hfDB8MDtyZXR1cm4oSz1uLG8p
fDB9ZWxzZXtwPWs2KGp8MCl8MDtuPWk+Pj4ocD4+PjApfDA7bz1pPDwzMi1wfGc+Pj4ocD4+PjAp
fDA7cmV0dXJuKEs9bixvKXwwfX19d2hpbGUoMCk7aWYoKHN8MCk9PTApe0I9dztDPXY7RD11O0U9
dDtGPTA7Rz0wfWVsc2V7Zz1kfDB8MDtkPWt8ZSYwO2U9azEoZyxkLC0xLC0xKXwwO2s9SztpPXc7
dz12O3Y9dTt1PXQ7dD1zO3M9MDt3aGlsZSgxKXtIPXc+Pj4zMXxpPDwxO0k9c3x3PDwxO2o9dTw8
MXxpPj4+MzF8MDthPXU+Pj4zMXx2PDwxfDA7azIoZSxrLGosYSl8MDtiPUs7aD1iPj4zMXwoKGJ8
MCk8MD8tMTowKTw8MTtKPWgmMTtMPWsyKGosYSxoJmcsKCgoYnwwKTwwPy0xOjApPj4zMXwoKGJ8
MCk8MD8tMTowKTw8MSkmZCl8MDtNPUs7Yj10LTF8MDtpZigoYnwwKT09MCl7YnJlYWt9ZWxzZXtp
PUg7dz1JO3Y9TTt1PUw7dD1iO3M9Sn19Qj1IO0M9STtEPU07RT1MO0Y9MDtHPUp9Sj1DO0M9MDtp
ZigoZnwwKSE9MCl7Y1tmPj4yXT1FO2NbZis0Pj4yXT1EfW49KEp8MCk+Pj4zMXwoQnxDKTw8MXwo
Qzw8MXxKPj4+MzEpJjB8RjtvPShKPDwxfDA+Pj4zMSkmLTJ8RztyZXR1cm4oSz1uLG8pfDB9ZnVu
Y3Rpb24gbGUoKXtiUCgpfWZ1bmN0aW9uIGxmKGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtiV1thJjddKGJ8MCxjfDAsZHwwLGV8MCxmfDApfWZ1bmN0aW9u
IGxnKGEsYixjLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7YlhbYSYxMjddKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8MCl9ZnVuY3Rp
b24gbGgoYSxiKXthPWF8MDtiPWJ8MDtiWVthJjUxMV0oYnwwKX1mdW5jdGlvbiBsaShhLGIsYyl7
YT1hfDA7Yj1ifDA7Yz1jfDA7YlpbYSYxMjddKGJ8MCxjfDApfWZ1bmN0aW9uIGxqKGEsYixjKXth
PWF8MDtiPWJ8MDtjPWN8MDtyZXR1cm4gYl9bYSYzMV0oYnwwLGN8MCl8MH1mdW5jdGlvbiBsayhh
LGIsYyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7cmV0dXJuIGIk
W2EmMzFdKGJ8MCxjfDAsZHwwLGV8MCxmfDApfDB9ZnVuY3Rpb24gbGwoYSxiKXthPWF8MDtiPWJ8
MDtyZXR1cm4gYjBbYSYxMjddKGJ8MCl8MH1mdW5jdGlvbiBsbShhLGIsYyxkKXthPWF8MDtiPWJ8
MDtjPWN8MDtkPWR8MDtyZXR1cm4gYjFbYSY2M10oYnwwLGN8MCxkfDApfDB9ZnVuY3Rpb24gbG4o
YSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz0rZzti
MlthJjE1XShifDAsY3wwLGR8MCxlfDAsZnwwLCtnKX1mdW5jdGlvbiBsbyhhLGIsYyxkKXthPWF8
MDtiPWJ8MDtjPWN8MDtkPWR8MDtiM1thJjddKGJ8MCxjfDAsZHwwKX1mdW5jdGlvbiBscChhLGIs
YyxkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aT1pfDA7YjRbYSYxNV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwLGl8MCl9ZnVu
Y3Rpb24gbHEoYSl7YT1hfDA7YjVbYSYzXSgpfWZ1bmN0aW9uIGxyKGEsYixjLGQsZSxmLGcsaCxp
KXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDty
ZXR1cm4gYjZbYSYzMV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwLGl8MCl8MH1mdW5jdGlv
biBscyhhLGIsYyxkLGUsZixnLGgsaSxqKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtiN1thJjddKGJ8MCxjfDAsZHwwLGV8MCxmfDAs
Z3wwLGh8MCxpfDAsanwwKX1mdW5jdGlvbiBsdChhLGIsYyxkLGUsZixnLGgpe2E9YXwwO2I9Ynww
O2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9K2g7YjhbYSY3XShifDAsY3wwLGR8MCxl
fDAsZnwwLGd8MCwraCl9ZnVuY3Rpb24gbHUoYSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1j
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7YjlbYSYzMV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxn
fDApfWZ1bmN0aW9uIGx2KGEsYixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7
cmV0dXJuIGNhW2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCl8MH1mdW5jdGlvbiBsdyhhLGIsYyxkLGUp
e2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2NiW2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCl9
ZnVuY3Rpb24gbHgoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDthaCgw
KX1mdW5jdGlvbiBseShhLGIsYyxkLGUsZixnKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDthaCgxKX1mdW5jdGlvbiBseihhKXthPWF8MDthaCgyKX1mdW5jdGlvbiBs
QShhLGIpe2E9YXwwO2I9YnwwO2FoKDMpfWZ1bmN0aW9uIGxCKGEsYil7YT1hfDA7Yj1ifDA7YWgo
NCk7cmV0dXJuIDB9ZnVuY3Rpb24gbEMoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8
MDtlPWV8MDthaCg1KTtyZXR1cm4gMH1mdW5jdGlvbiBsRChhKXthPWF8MDthaCg2KTtyZXR1cm4g
MH1mdW5jdGlvbiBsRShhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7YWgoNyk7cmV0dXJuIDB9ZnVu
Y3Rpb24gbEYoYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9K2Y7
YWgoOCl9ZnVuY3Rpb24gbEcoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2FoKDkpfWZ1bmN0aW9u
IGxIKGEsYixjLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7YWgoMTApfWZ1bmN0aW9uIGxJKCl7YWgoMTEpfWZ1bmN0aW9uIGxKKGEsYixj
LGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1o
fDA7YWgoMTIpO3JldHVybiAwfWZ1bmN0aW9uIGxLKGEsYixjLGQsZSxmLGcsaCxpKXthPWF8MDti
PWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDthaCgxMyl9ZnVu
Y3Rpb24gbEwoYSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz0rZzthaCgxNCl9ZnVuY3Rpb24gbE0oYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3ww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2FoKDE1KX1mdW5jdGlvbiBsTihhLGIsYyxkKXthPWF8MDtiPWJ8
MDtjPWN8MDtkPWR8MDthaCgxNik7cmV0dXJuIDB9ZnVuY3Rpb24gbE8oYSxiLGMsZCl7YT1hfDA7
Yj1ifDA7Yz1jfDA7ZD1kfDA7YWgoMTcpfQotLy8gRU1TQ1JJUFRFTl9FTkRfRlVOQ1MKLXZhciBi
Vz1bbHgsbHgsa0csbHgsa0QsbHgsa0YsbHhdO3ZhciBiWD1bbHksbHksZ0csbHksZ1AsbHksZ1Ms
bHksaWgsbHksZ3QsbHksZ3IsbHksaDksbHksZ0IsbHksZ0YsbHksZ1QsbHksZ2YsbHksZjcsbHks
Z0UsbHksZkgsbHksZlosbHksZ1EsbHksZ2QsbHksZiQsbHksZlgsbHksZlksbHksZlEsbHksZl8s
bHksZlYsbHksZlQsbHksZjQsbHksZjMsbHksZjAsbHksZ1UsbHksZkEsbHksZ0MsbHksZkUsbHks
ZnYsbHksZnksbHksZkMsbHksZnIsbHksZk0sbHksZkssbHksZnAsbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHldO3ZhciBiWT1bbHosbHosaWssbHosZm4sbHosZ2wsbHosZEgs
bHosZW4sbHosaUUsbHosZHIsbHosaEEsbHosZjUsbHosZEIsbHosZEcsbHosZk8sbHosZmIsbHos
ZTcsbHosa1EsbHosZEMsbHosaVAsbHosaVMsbHosZ08sbHosZlAsbHosa3EsbHosZTEsbHosaWUs
bHosaVEsbHosZVMsbHosZm8sbHosaHIsbHosaUwsbHosakksbHosaVUsbHosa2ssbHosakgsbHos
ZTUsbHosYzUsbHosZEcsbHosY3QsbHosZmYsbHosaGcsbHosakssbHosaVIsbHosa0ssbHosaDcs
bHosakcsbHosZVYsbHosYzQsbHosZmUsbHosZEMsbHosajMsbHosZjYsbHosZGYsbHosaHMsbHos
ZVIsbHosZSQsbHosaHksbHosZ04sbHosZTgsbHosaGwsbHosa1UsbHosZW0sbHosajYsbHosajcs
bHosZTIsbHosZXUsbHosa3gsbHosaVYsbHosaTksbHosa2ksbHosZVQsbHosZTYsbHosaE8sbHos
ZGQsbHosaHgsbHosZTMsbHosajksbHosa2wsbHosanEsbHosZGIsbHosaUssbHosaU8sbHosaHos
bHosaFUsbHosa3UsbHosaEcsbHosaDgsbHosajgsbHosaGYsbHosZ2ssbHosZmEsbHosZGMsbHos
ZmMsbHosZVgsbHosZE4sbHosaCQsbHosaFQsbHosakosbHosZWUsbHosZEksbHosa2ksbHosa3ks
bHosZV8sbHosZE8sbHosZVEsbHosZTAsbHosaWQsbHosZUQsbHosZVosbHosZHMsbHosaVcsbHos
ZTksbHosaEosbHosZ3osbHosaG0sbHosYyQsbHosaXEsbHosaDAsbHosZVcsbHosZXQsbHosZVks
bHosakYsbHosajQsbHosZ0EsbHosa3csbHosaWwsbHosY18sbHosa3YsbHosaEIsbHosaFAsbHos
Y1csbHosZFAsbHosaVQsbHosZEYsbHosZVUsbHosa2EsbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHpdO3ZhciBiWj1bbEEsbEEsalAsbEEsYzAsbEEsaE0s
bEEsak0sbEEsaGIsbEEsakwsbEEsaWosbEEsZDksbEEsaGssbEEsaEgsbEEsaHcsbEEsaGosbEEs
aGgsbEEsaE4sbEEsaU4sbEEsZzksbEEsZG0sbEEsaEksbEEsak8sbEEsaEssbEEsaG8sbEEsZEUs
bEEsaG4sbEEsalEsbEEsaGEsbEEsaHEsbEEsak4sbEEsZzgsbEEsZDIsbEEsZHQsbEEsYzYsbEEs
aW8sbEEsaHQsbEEsZzcsbEEsZzYsbEEsaGksbEEsaHUsbEEsaHYsbEEsaHAsbEEsaEwsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEFdO3ZhciBiXz1bbEIsbEIsaTQsbEIsZHcsbEIsaUEsbEIsaXQs
bEIsZDgsbEIsYzksbEIsZHAsbEIsaTAsbEIsaTYsbEIsZUksbEIsaTIsbEIsZDcsbEIsYzIsbEIs
ZUgsbEIsbEIsbEJdO3ZhciBiJD1bbEMsbEMsamgsbEMsamYsbEMsakUsbEMsaXcsbEMsaUcsbEMs
anAsbEMsaUksbEMsZmssbEMsaUQsbEMsamQsbEMsZUwsbEMsanMsbEMsbEMsbEMsbEMsbEMsbEMs
bENdO3ZhciBiMD1bbEQsbEQsajIsbEQsZzQsbEQsZDYsbEQsalUsbEQsZXIsbEQsajAsbEQsZzAs
bEQsamUsbEQsamssbEQsZ3ksbEQsalMsbEQsZHYsbEQsZU8sbEQsZUcsbEQsalksbEQsalcsbEQs
anQsbEQsa2osbEQsZGksbEQsakMsbEQsanosbEQsalgsbEQsamosbEQsakEsbEQsZDQsbEQsaEYs
bEQsalosbEQsZHUsbEQsYzEsbEQsZzEsbEQsaTgsbEQsajEsbEQsanYsbEQsaEQsbEQsalIsbEQs
YzcsbEQsanUsbEQsamcsbEQsZUosbEQsZyQsbEQsYzgsbEQsakIsbEQsZDUsbEQsZUUsbEQsZG4s
bEQsZzIsbEQsaXosbEQsaXksbEQsa1IsbEQsZUYsbEQsZ1osbEQsalQsbEQsaXgsbEQsZ18sbEQs
ZGgsbEQsZzMsbEQsZzUsbEQsalYsbEQsaEUsbEQsZ00sbEQsaiQsbEQsal8sbEQsamksbERdO3Zh
ciBiMT1bbEUsbEUsZU0sbEUsaTUsbEUsaTMsbEUsa3osbEUsaUIsbEUsZmwsbEUsZEosbEUsZXMs
bEUsZXEsbEUsaVksbEUsZWEsbEUsaW0sbEUsaUMsbEUsaTEsbEUsZU4sbEUsZGwsbEUsaTcsbEUs
aWcsbEUsZDMsbEUsZVAsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUs
bEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEVdO3ZhciBiMj1bbEYsbEYsZ3csbEYsZ3UsbEYsZ2ks
bEYsZ2csbEYsbEYsbEYsbEYsbEYsbEYsbEZdO3ZhciBiMz1bbEcsbEcsZGssbEcsZTQsbEcsbEcs
bEddO3ZhciBiND1bbEgsbEgsaGUsbEgsaGQsbEgsaFEsbEgsaFksbEgsaFcsbEgsaDEsbEgsbEgs
bEhdO3ZhciBiNT1bbEksbEksbGUsbEldO3ZhciBiNj1bbEosbEosaXUsbEosamMsbEosam8sbEos
aXYsbEosanIsbEosakQsbEosamIsbEosamEsbEosbEosbEosbEosbEosbEosbEosbEosbEosbEos
bEosbEosbEosbEosbEpdO3ZhciBiNz1bbEssbEssZ1csbEssZ0ksbEssbEssbEtdO3ZhciBiOD1b
bEwsbEwsaWEsbEwsaDQsbEwsbEwsbExdO3ZhciBiOT1bbE0sbE0sa0gsbE0sZ3MsbE0sZ20sbE0s
Z28sbE0sa0ksbE0sZ3gsbE0saWksbE0sZWQsbE0sZ24sbE0sZ2EsbE0sZ2UsbE0sZjgsbE0sa0Us
bE0sZWIsbE0saXAsbE1dO3ZhciBjYT1bbE4sbE4saVosbE4saV8sbE4saUgsbE4saUYsbE4saSQs
bE4sbE4sbE4sbE4sbE5dO3ZhciBjYj1bbE8sbE8sa0EsbE8sa0IsbE8sZWMsbE8sa3IsbE8sZUss
bE8sZm0sbE8sZmQsbE9dO3JldHVybntfc3RybGVuOmswLF9mcmVlOmtLLF9tYWluOmNELF9yZWFs
bG9jOmtMLF9tZW1tb3ZlOmtfLF9fR0xPQkFMX19JX2E6Y1QsX21lbXNldDprJCxfbWFsbG9jOmtK
LF9tZW1jcHk6a1ksX2xsdm1fY3Rsel9pMzI6a1osX19HTE9CQUxfX0lfYTg6ZHkscnVuUG9zdFNl
dHM6Y3Msc3RhY2tBbGxvYzpjYyxzdGFja1NhdmU6Y2Qsc3RhY2tSZXN0b3JlOmNlLHNldFRocmV3
OmNmLHNldFRlbXBSZXQwOmNpLHNldFRlbXBSZXQxOmNqLHNldFRlbXBSZXQyOmNrLHNldFRlbXBS
ZXQzOmNsLHNldFRlbXBSZXQ0OmNtLHNldFRlbXBSZXQ1OmNuLHNldFRlbXBSZXQ2OmNvLHNldFRl
bXBSZXQ3OmNwLHNldFRlbXBSZXQ4OmNxLHNldFRlbXBSZXQ5OmNyLGR5bkNhbGxfdmlpaWlpOmxm
LGR5bkNhbGxfdmlpaWlpaWk6bGcsZHluQ2FsbF92aTpsaCxkeW5DYWxsX3ZpaTpsaSxkeW5DYWxs
X2lpaTpsaixkeW5DYWxsX2lpaWlpaTpsayxkeW5DYWxsX2lpOmxsLGR5bkNhbGxfaWlpaTpsbSxk
eW5DYWxsX3ZpaWlpaWY6bG4sZHluQ2FsbF92aWlpOmxvLGR5bkNhbGxfdmlpaWlpaWlpOmxwLGR5
bkNhbGxfdjpscSxkeW5DYWxsX2lpaWlpaWlpaTpscixkeW5DYWxsX3ZpaWlpaWlpaWk6bHMsZHlu
Q2FsbF92aWlpaWlpZjpsdCxkeW5DYWxsX3ZpaWlpaWk6bHUsZHluQ2FsbF9paWlpaTpsdixkeW5D
YWxsX3ZpaWlpOmx3fX0pCi0vLyBFTVNDUklQVEVOX0VORF9BU00KLSh7ICJNYXRoIjogTWF0aCwg
IkludDhBcnJheSI6IEludDhBcnJheSwgIkludDE2QXJyYXkiOiBJbnQxNkFycmF5LCAiSW50MzJB
cnJheSI6IEludDMyQXJyYXksICJVaW50OEFycmF5IjogVWludDhBcnJheSwgIlVpbnQxNkFycmF5
IjogVWludDE2QXJyYXksICJVaW50MzJBcnJheSI6IFVpbnQzMkFycmF5LCAiRmxvYXQzMkFycmF5
IjogRmxvYXQzMkFycmF5LCAiRmxvYXQ2NEFycmF5IjogRmxvYXQ2NEFycmF5IH0sIHsgImFib3J0
IjogYWJvcnQsICJhc3NlcnQiOiBhc3NlcnQsICJhc21QcmludEludCI6IGFzbVByaW50SW50LCAi
YXNtUHJpbnRGbG9hdCI6IGFzbVByaW50RmxvYXQsICJtaW4iOiBNYXRoX21pbiwgImludm9rZV92
aWlpaWkiOiBpbnZva2VfdmlpaWlpLCAiaW52b2tlX3ZpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlp
LCAiaW52b2tlX3ZpIjogaW52b2tlX3ZpLCAiaW52b2tlX3ZpaSI6IGludm9rZV92aWksICJpbnZv
a2VfaWlpIjogaW52b2tlX2lpaSwgImludm9rZV9paWlpaWkiOiBpbnZva2VfaWlpaWlpLCAiaW52
b2tlX2lpIjogaW52b2tlX2lpLCAiaW52b2tlX2lpaWkiOiBpbnZva2VfaWlpaSwgImludm9rZV92
aWlpaWlmIjogaW52b2tlX3ZpaWlpaWYsICJpbnZva2VfdmlpaSI6IGludm9rZV92aWlpLCAiaW52
b2tlX3ZpaWlpaWlpaSI6IGludm9rZV92aWlpaWlpaWksICJpbnZva2VfdiI6IGludm9rZV92LCAi
aW52b2tlX2lpaWlpaWlpaSI6IGludm9rZV9paWlpaWlpaWksICJpbnZva2VfdmlpaWlpaWlpaSI6
IGludm9rZV92aWlpaWlpaWlpLCAiaW52b2tlX3ZpaWlpaWlmIjogaW52b2tlX3ZpaWlpaWlmLCAi
aW52b2tlX3ZpaWlpaWkiOiBpbnZva2VfdmlpaWlpaSwgImludm9rZV9paWlpaSI6IGludm9rZV9p
aWlpaSwgImludm9rZV92aWlpaSI6IGludm9rZV92aWlpaSwgIl9sbHZtX2xpZmV0aW1lX2VuZCI6
IF9sbHZtX2xpZmV0aW1lX2VuZCwgIl9fc2NhblN0cmluZyI6IF9fc2NhblN0cmluZywgIl9wdGhy
ZWFkX211dGV4X2xvY2siOiBfcHRocmVhZF9tdXRleF9sb2NrLCAiX19fY3hhX2VuZF9jYXRjaCI6
IF9fX2N4YV9lbmRfY2F0Y2gsICJfc3RydG91bGwiOiBfc3RydG91bGwsICJfX2lzRmxvYXQiOiBf
X2lzRmxvYXQsICJfZmZsdXNoIjogX2ZmbHVzaCwgIl9faXNMZWFwWWVhciI6IF9faXNMZWFwWWVh
ciwgIl9md3JpdGUiOiBfZndyaXRlLCAiX3NlbmQiOiBfc2VuZCwgIl9sbHZtX3VtdWxfd2l0aF9v
dmVyZmxvd19pMzIiOiBfbGx2bV91bXVsX3dpdGhfb3ZlcmZsb3dfaTMyLCAiX2lzc3BhY2UiOiBf
aXNzcGFjZSwgIl9yZWFkIjogX3JlYWQsICJfX19jeGFfZ3VhcmRfYWJvcnQiOiBfX19jeGFfZ3Vh
cmRfYWJvcnQsICJfbmV3bG9jYWxlIjogX25ld2xvY2FsZSwgIl9fX2d4eF9wZXJzb25hbGl0eV92
MCI6IF9fX2d4eF9wZXJzb25hbGl0eV92MCwgIl9wdGhyZWFkX2NvbmRfd2FpdCI6IF9wdGhyZWFk
X2NvbmRfd2FpdCwgIl9fX2N4YV9yZXRocm93IjogX19fY3hhX3JldGhyb3csICJfX19yZXN1bWVF
eGNlcHRpb24iOiBfX19yZXN1bWVFeGNlcHRpb24sICJfbGx2bV92YV9lbmQiOiBfbGx2bV92YV9l
bmQsICJfdnNzY2FuZiI6IF92c3NjYW5mLCAiX3NucHJpbnRmIjogX3NucHJpbnRmLCAiX2ZnZXRj
IjogX2ZnZXRjLCAiX2F0ZXhpdCI6IF9hdGV4aXQsICJfX19jeGFfZnJlZV9leGNlcHRpb24iOiBf
X19jeGFfZnJlZV9leGNlcHRpb24sICJfX1o4Y2F0Y2xvc2VQOF9ubF9jYXRkIjogX19aOGNhdGNs
b3NlUDhfbmxfY2F0ZCwgIl9fX3NldEVyck5vIjogX19fc2V0RXJyTm8sICJfaXN4ZGlnaXQiOiBf
aXN4ZGlnaXQsICJfZXhpdCI6IF9leGl0LCAiX3NwcmludGYiOiBfc3ByaW50ZiwgIl9fX2N0eXBl
X2JfbG9jIjogX19fY3R5cGVfYl9sb2MsICJfZnJlZWxvY2FsZSI6IF9mcmVlbG9jYWxlLCAiX19a
N2NhdG9wZW5QS2NpIjogX19aN2NhdG9wZW5QS2NpLCAiX2FzcHJpbnRmIjogX2FzcHJpbnRmLCAi
X19fY3hhX2lzX251bWJlcl90eXBlIjogX19fY3hhX2lzX251bWJlcl90eXBlLCAiX19fY3hhX2Rv
ZXNfaW5oZXJpdCI6IF9fX2N4YV9kb2VzX2luaGVyaXQsICJfX19jeGFfZ3VhcmRfYWNxdWlyZSI6
IF9fX2N4YV9ndWFyZF9hY3F1aXJlLCAiX19fbG9jYWxlX21iX2N1cl9tYXgiOiBfX19sb2NhbGVf
bWJfY3VyX21heCwgIl9fX2N4YV9iZWdpbl9jYXRjaCI6IF9fX2N4YV9iZWdpbl9jYXRjaCwgIl9y
ZWN2IjogX3JlY3YsICJfX3BhcnNlSW50NjQiOiBfX3BhcnNlSW50NjQsICJfX1pTdDE4dW5jYXVn
aHRfZXhjZXB0aW9udiI6IF9fWlN0MTh1bmNhdWdodF9leGNlcHRpb252LCAiX19fY3hhX2NhbGxf
dW5leHBlY3RlZCI6IF9fX2N4YV9jYWxsX3VuZXhwZWN0ZWQsICJfX2V4aXQiOiBfX2V4aXQsICJf
c3RyZnRpbWUiOiBfc3RyZnRpbWUsICJfX19jeGFfdGhyb3ciOiBfX19jeGFfdGhyb3csICJfbGx2
bV9laF9leGNlcHRpb24iOiBfbGx2bV9laF9leGNlcHRpb24sICJfcHJlYWQiOiBfcHJlYWQsICJf
X2FycmF5U3VtIjogX19hcnJheVN1bSwgIl9sb2ciOiBfbG9nLCAiX19fY3hhX2ZpbmRfbWF0Y2hp
bmdfY2F0Y2giOiBfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaCwgIl9fZm9ybWF0U3RyaW5nIjog
X19mb3JtYXRTdHJpbmcsICJfcHRocmVhZF9jb25kX2Jyb2FkY2FzdCI6IF9wdGhyZWFkX2NvbmRf
YnJvYWRjYXN0LCAiX19aU3Q5dGVybWluYXRldiI6IF9fWlN0OXRlcm1pbmF0ZXYsICJfcHRocmVh
ZF9tdXRleF91bmxvY2siOiBfcHRocmVhZF9tdXRleF91bmxvY2ssICJfc2JyayI6IF9zYnJrLCAi
X19fZXJybm9fbG9jYXRpb24iOiBfX19lcnJub19sb2NhdGlvbiwgIl9zdHJlcnJvciI6IF9zdHJl
cnJvciwgIl9sbHZtX2xpZmV0aW1lX3N0YXJ0IjogX2xsdm1fbGlmZXRpbWVfc3RhcnQsICJfX19j
eGFfZ3VhcmRfcmVsZWFzZSI6IF9fX2N4YV9ndWFyZF9yZWxlYXNlLCAiX3VuZ2V0YyI6IF91bmdl
dGMsICJfdXNlbG9jYWxlIjogX3VzZWxvY2FsZSwgIl92c25wcmludGYiOiBfdnNucHJpbnRmLCAi
X3NzY2FuZiI6IF9zc2NhbmYsICJfc3lzY29uZiI6IF9zeXNjb25mLCAiX2ZyZWFkIjogX2ZyZWFk
LCAiX2Fib3J0IjogX2Fib3J0LCAiX2lzZGlnaXQiOiBfaXNkaWdpdCwgIl9zdHJ0b2xsIjogX3N0
cnRvbGwsICJfX2FkZERheXMiOiBfX2FkZERheXMsICJfZmxvb3IiOiBfZmxvb3IsICJfX3JlYWxs
eU5lZ2F0aXZlIjogX19yZWFsbHlOZWdhdGl2ZSwgIl9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtj
IjogX19aN2NhdGdldHNQOF9ubF9jYXRkaWlQS2MsICJfd3JpdGUiOiBfd3JpdGUsICJfX19jeGFf
YWxsb2NhdGVfZXhjZXB0aW9uIjogX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbiwgIl9fX2N4YV9w
dXJlX3ZpcnR1YWwiOiBfX19jeGFfcHVyZV92aXJ0dWFsLCAiX3Zhc3ByaW50ZiI6IF92YXNwcmlu
dGYsICJfX19jdHlwZV90b3VwcGVyX2xvYyI6IF9fX2N0eXBlX3RvdXBwZXJfbG9jLCAiX19fY3R5
cGVfdG9sb3dlcl9sb2MiOiBfX19jdHlwZV90b2xvd2VyX2xvYywgIl9wd3JpdGUiOiBfcHdyaXRl
LCAiX3N0cmVycm9yX3IiOiBfc3RyZXJyb3JfciwgIl90aW1lIjogX3RpbWUsICJTVEFDS1RPUCI6
IFNUQUNLVE9QLCAiU1RBQ0tfTUFYIjogU1RBQ0tfTUFYLCAidGVtcERvdWJsZVB0ciI6IHRlbXBE
b3VibGVQdHIsICJBQk9SVCI6IEFCT1JULCAiY3R0el9pOCI6IGN0dHpfaTgsICJjdGx6X2k4Ijog
Y3Rsel9pOCwgIk5hTiI6IE5hTiwgIkluZmluaXR5IjogSW5maW5pdHksICJfc3RkaW4iOiBfc3Rk
aW4sICJfX1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRSI6IF9fWlRWTjEwX19j
eHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FLCAiX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2Ns
YXNzX3R5cGVfaW5mb0UiOiBfX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZv
RSwgIl9zdGRlcnIiOiBfc3RkZXJyLCAiX19fZnNtdTgiOiBfX19mc211OCwgIl9zdGRvdXQiOiBf
c3Rkb3V0LCAiX19fZHNvX2hhbmRsZSI6IF9fX2Rzb19oYW5kbGUgfSwgYnVmZmVyKTsKLXZhciBf
c3RybGVuID0gTW9kdWxlWyJfc3RybGVuIl0gPSBhc21bIl9zdHJsZW4iXTsKLXZhciBfZnJlZSA9
IE1vZHVsZVsiX2ZyZWUiXSA9IGFzbVsiX2ZyZWUiXTsKLXZhciBfbWFpbiA9IE1vZHVsZVsiX21h
aW4iXSA9IGFzbVsiX21haW4iXTsKLXZhciBfcmVhbGxvYyA9IE1vZHVsZVsiX3JlYWxsb2MiXSA9
IGFzbVsiX3JlYWxsb2MiXTsKLXZhciBfbWVtbW92ZSA9IE1vZHVsZVsiX21lbW1vdmUiXSA9IGFz
bVsiX21lbW1vdmUiXTsKLXZhciBfX0dMT0JBTF9fSV9hID0gTW9kdWxlWyJfX0dMT0JBTF9fSV9h
Il0gPSBhc21bIl9fR0xPQkFMX19JX2EiXTsKLXZhciBfbWVtc2V0ID0gTW9kdWxlWyJfbWVtc2V0
Il0gPSBhc21bIl9tZW1zZXQiXTsKLXZhciBfbWFsbG9jID0gTW9kdWxlWyJfbWFsbG9jIl0gPSBh
c21bIl9tYWxsb2MiXTsKLXZhciBfbWVtY3B5ID0gTW9kdWxlWyJfbWVtY3B5Il0gPSBhc21bIl9t
ZW1jcHkiXTsKLXZhciBfbGx2bV9jdGx6X2kzMiA9IE1vZHVsZVsiX2xsdm1fY3Rsel9pMzIiXSA9
IGFzbVsiX2xsdm1fY3Rsel9pMzIiXTsKLXZhciBfX0dMT0JBTF9fSV9hOCA9IE1vZHVsZVsiX19H
TE9CQUxfX0lfYTgiXSA9IGFzbVsiX19HTE9CQUxfX0lfYTgiXTsKLXZhciBydW5Qb3N0U2V0cyA9
IE1vZHVsZVsicnVuUG9zdFNldHMiXSA9IGFzbVsicnVuUG9zdFNldHMiXTsKLXZhciBkeW5DYWxs
X3ZpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWki
XTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpIl0gPSBh
c21bImR5bkNhbGxfdmlpaWlpaWkiXTsKLXZhciBkeW5DYWxsX3ZpID0gTW9kdWxlWyJkeW5DYWxs
X3ZpIl0gPSBhc21bImR5bkNhbGxfdmkiXTsKLXZhciBkeW5DYWxsX3ZpaSA9IE1vZHVsZVsiZHlu
Q2FsbF92aWkiXSA9IGFzbVsiZHluQ2FsbF92aWkiXTsKLXZhciBkeW5DYWxsX2lpaSA9IE1vZHVs
ZVsiZHluQ2FsbF9paWkiXSA9IGFzbVsiZHluQ2FsbF9paWkiXTsKLXZhciBkeW5DYWxsX2lpaWlp
aSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWkiXSA9IGFzbVsiZHluQ2FsbF9paWlpaWkiXTsKLXZh
ciBkeW5DYWxsX2lpID0gTW9kdWxlWyJkeW5DYWxsX2lpIl0gPSBhc21bImR5bkNhbGxfaWkiXTsK
LXZhciBkeW5DYWxsX2lpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdID0gYXNtWyJkeW5DYWxs
X2lpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWYgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZiJd
ID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWYiXTsKLXZhciBkeW5DYWxsX3ZpaWkgPSBNb2R1bGVbImR5
bkNhbGxfdmlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlp
aSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWlpaWki
XTsKLXZhciBkeW5DYWxsX3YgPSBNb2R1bGVbImR5bkNhbGxfdiJdID0gYXNtWyJkeW5DYWxsX3Yi
XTsKLXZhciBkeW5DYWxsX2lpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWkiXSA9
IGFzbVsiZHluQ2FsbF9paWlpaWlpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlpaWkgPSBNb2R1
bGVbImR5bkNhbGxfdmlpaWlpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWlpaWkiXTsKLXZh
ciBkeW5DYWxsX3ZpaWlpaWlmID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlmIl0gPSBhc21bImR5
bkNhbGxfdmlpaWlpaWYiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxf
dmlpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWkiXTsKLXZhciBkeW5DYWxsX2lpaWlpID0g
TW9kdWxlWyJkeW5DYWxsX2lpaWlpIl0gPSBhc21bImR5bkNhbGxfaWlpaWkiXTsKLXZhciBkeW5D
YWxsX3ZpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWki
XTsKLVJ1bnRpbWUuc3RhY2tBbGxvYyA9IGZ1bmN0aW9uKHNpemUpIHsgcmV0dXJuIGFzbVsnc3Rh
Y2tBbGxvYyddKHNpemUpIH07Ci1SdW50aW1lLnN0YWNrU2F2ZSA9IGZ1bmN0aW9uKCkgeyByZXR1
cm4gYXNtWydzdGFja1NhdmUnXSgpIH07Ci1SdW50aW1lLnN0YWNrUmVzdG9yZSA9IGZ1bmN0aW9u
KHRvcCkgeyBhc21bJ3N0YWNrUmVzdG9yZSddKHRvcCkgfTsKLS8vIFRPRE86IHN0cmlwIG91dCBw
YXJ0cyBvZiB0aGlzIHdlIGRvIG5vdCBuZWVkCi0vLz09PT09PT0gYmVnaW4gY2xvc3VyZSBpNjQg
Y29kZSA9PT09PT09Ci0vLyBDb3B5cmlnaHQgMjAwOSBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhv
cnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNo
ZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1
c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZ
b3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyAgICAgIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLy8KLS8vIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUK
LS8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJB
Uy1JUyIgQkFTSVMsCi0vLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS8vIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS8vIGxpbWl0
YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IERlZmluZXMg
YSBMb25nIGNsYXNzIGZvciByZXByZXNlbnRpbmcgYSA2NC1iaXQgdHdvJ3MtY29tcGxlbWVudAot
ICogaW50ZWdlciB2YWx1ZSwgd2hpY2ggZmFpdGhmdWxseSBzaW11bGF0ZXMgdGhlIGJlaGF2aW9y
IG9mIGEgSmF2YSAibG9uZyIuIFRoaXMKLSAqIGltcGxlbWVudGF0aW9uIGlzIGRlcml2ZWQgZnJv
bSBMb25nTGliIGluIEdXVC4KLSAqCi0gKi8KLXZhciBpNjRNYXRoID0gKGZ1bmN0aW9uKCkgeyAv
LyBFbXNjcmlwdGVuIHdyYXBwZXIKLSAgdmFyIGdvb2cgPSB7IG1hdGg6IHt9IH07Ci0gIC8qKgot
ICAgKiBDb25zdHJ1Y3RzIGEgNjQtYml0IHR3bydzLWNvbXBsZW1lbnQgaW50ZWdlciwgZ2l2ZW4g
aXRzIGxvdyBhbmQgaGlnaCAzMi1iaXQKLSAgICogdmFsdWVzIGFzICpzaWduZWQqIGludGVnZXJz
LiAgU2VlIHRoZSBmcm9tKiBmdW5jdGlvbnMgYmVsb3cgZm9yIG1vcmUKLSAgICogY29udmVuaWVu
dCB3YXlzIG9mIGNvbnN0cnVjdGluZyBMb25ncy4KLSAgICoKLSAgICogVGhlIGludGVybmFsIHJl
cHJlc2VudGF0aW9uIG9mIGEgbG9uZyBpcyB0aGUgdHdvIGdpdmVuIHNpZ25lZCwgMzItYml0IHZh
bHVlcy4KLSAgICogV2UgdXNlIDMyLWJpdCBwaWVjZXMgYmVjYXVzZSB0aGVzZSBhcmUgdGhlIHNp
emUgb2YgaW50ZWdlcnMgb24gd2hpY2gKLSAgICogSmF2YXNjcmlwdCBwZXJmb3JtcyBiaXQtb3Bl
cmF0aW9ucy4gIEZvciBvcGVyYXRpb25zIGxpa2UgYWRkaXRpb24gYW5kCi0gICAqIG11bHRpcGxp
Y2F0aW9uLCB3ZSBzcGxpdCBlYWNoIG51bWJlciBpbnRvIDE2LWJpdCBwaWVjZXMsIHdoaWNoIGNh
biBlYXNpbHkgYmUKLSAgICogbXVsdGlwbGllZCB3aXRoaW4gSmF2YXNjcmlwdCdzIGZsb2F0aW5n
LXBvaW50IHJlcHJlc2VudGF0aW9uIHdpdGhvdXQgb3ZlcmZsb3cKLSAgICogb3IgY2hhbmdlIGlu
IHNpZ24uCi0gICAqCi0gICAqIEluIHRoZSBhbGdvcml0aG1zIGJlbG93LCB3ZSBmcmVxdWVudGx5
IHJlZHVjZSB0aGUgbmVnYXRpdmUgY2FzZSB0byB0aGUKLSAgICogcG9zaXRpdmUgY2FzZSBieSBu
ZWdhdGluZyB0aGUgaW5wdXQocykgYW5kIHRoZW4gcG9zdC1wcm9jZXNzaW5nIHRoZSByZXN1bHQu
Ci0gICAqIE5vdGUgdGhhdCB3ZSBtdXN0IEFMV0FZUyBjaGVjayBzcGVjaWFsbHkgd2hldGhlciB0
aG9zZSB2YWx1ZXMgYXJlIE1JTl9WQUxVRQotICAgKiAoLTJeNjMpIGJlY2F1c2UgLU1JTl9WQUxV
RSA9PSBNSU5fVkFMVUUgKHNpbmNlIDJeNjMgY2Fubm90IGJlIHJlcHJlc2VudGVkIGFzCi0gICAq
IGEgcG9zaXRpdmUgbnVtYmVyLCBpdCBvdmVyZmxvd3MgYmFjayBpbnRvIGEgbmVnYXRpdmUpLiAg
Tm90IGhhbmRsaW5nIHRoaXMKLSAgICogY2FzZSB3b3VsZCBvZnRlbiByZXN1bHQgaW4gaW5maW5p
dGUgcmVjdXJzaW9uLgotICAgKgotICAgKiBAcGFyYW0ge251bWJlcn0gbG93ICBUaGUgbG93IChz
aWduZWQpIDMyIGJpdHMgb2YgdGhlIGxvbmcuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBoaWdoICBU
aGUgaGlnaCAoc2lnbmVkKSAzMiBiaXRzIG9mIHRoZSBsb25nLgotICAgKiBAY29uc3RydWN0b3IK
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nID0gZnVuY3Rpb24obG93LCBoaWdoKSB7Ci0gICAgLyoq
Ci0gICAgICogQHR5cGUge251bWJlcn0KLSAgICAgKiBAcHJpdmF0ZQotICAgICAqLwotICAgIHRo
aXMubG93XyA9IGxvdyB8IDA7ICAvLyBmb3JjZSBpbnRvIDMyIHNpZ25lZCBiaXRzLgotICAgIC8q
KgotICAgICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAgICogQHByaXZhdGUKLSAgICAgKi8KLSAgICB0
aGlzLmhpZ2hfID0gaGlnaCB8IDA7ICAvLyBmb3JjZSBpbnRvIDMyIHNpZ25lZCBiaXRzLgotICB9
OwotICAvLyBOT1RFOiBDb21tb24gY29uc3RhbnQgdmFsdWVzIFpFUk8sIE9ORSwgTkVHX09ORSwg
ZXRjLiBhcmUgZGVmaW5lZCBiZWxvdyB0aGUKLSAgLy8gZnJvbSogbWV0aG9kcyBvbiB3aGljaCB0
aGV5IGRlcGVuZC4KLSAgLyoqCi0gICAqIEEgY2FjaGUgb2YgdGhlIExvbmcgcmVwcmVzZW50YXRp
b25zIG9mIHNtYWxsIGludGVnZXIgdmFsdWVzLgotICAgKiBAdHlwZSB7IU9iamVjdH0KLSAgICog
QHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLkludENhY2hlXyA9IHt9OwotICAvKioK
LSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50aW5nIHRoZSBnaXZlbiAoMzItYml0KSBpbnRl
Z2VyIHZhbHVlLgotICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVGhlIDMyLWJpdCBpbnRlZ2Vy
IGluIHF1ZXN0aW9uLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNw
b25kaW5nIExvbmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5mcm9tSW50ID0gZnVu
Y3Rpb24odmFsdWUpIHsKLSAgICBpZiAoLTEyOCA8PSB2YWx1ZSAmJiB2YWx1ZSA8IDEyOCkgewot
ICAgICAgdmFyIGNhY2hlZE9iaiA9IGdvb2cubWF0aC5Mb25nLkludENhY2hlX1t2YWx1ZV07Ci0g
ICAgICBpZiAoY2FjaGVkT2JqKSB7Ci0gICAgICAgIHJldHVybiBjYWNoZWRPYmo7Ci0gICAgICB9
Ci0gICAgfQotICAgIHZhciBvYmogPSBuZXcgZ29vZy5tYXRoLkxvbmcodmFsdWUgfCAwLCB2YWx1
ZSA8IDAgPyAtMSA6IDApOwotICAgIGlmICgtMTI4IDw9IHZhbHVlICYmIHZhbHVlIDwgMTI4KSB7
Ci0gICAgICBnb29nLm1hdGguTG9uZy5JbnRDYWNoZV9bdmFsdWVdID0gb2JqOwotICAgIH0KLSAg
ICByZXR1cm4gb2JqOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50
aW5nIHRoZSBnaXZlbiB2YWx1ZSwgcHJvdmlkZWQgdGhhdCBpdCBpcyBhIGZpbml0ZQotICAgKiBu
dW1iZXIuICBPdGhlcndpc2UsIHplcm8gaXMgcmV0dXJuZWQuCi0gICAqIEBwYXJhbSB7bnVtYmVy
fSB2YWx1ZSBUaGUgbnVtYmVyIGluIHF1ZXN0aW9uLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRo
Lkxvbmd9IFRoZSBjb3JyZXNwb25kaW5nIExvbmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGgu
TG9uZy5mcm9tTnVtYmVyID0gZnVuY3Rpb24odmFsdWUpIHsKLSAgICBpZiAoaXNOYU4odmFsdWUp
IHx8ICFpc0Zpbml0ZSh2YWx1ZSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJP
OwotICAgIH0gZWxzZSBpZiAodmFsdWUgPD0gLWdvb2cubWF0aC5Mb25nLlRXT19QV1JfNjNfREJM
XykgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRTsKLSAgICB9IGVsc2Ug
aWYgKHZhbHVlICsgMSA+PSBnb29nLm1hdGguTG9uZy5UV09fUFdSXzYzX0RCTF8pIHsKLSAgICAg
IHJldHVybiBnb29nLm1hdGguTG9uZy5NQVhfVkFMVUU7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZSA8
IDApIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKC12YWx1ZSkubmVn
YXRlKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBuZXcgZ29vZy5tYXRoLkxvbmcoCi0g
ICAgICAgICAgKHZhbHVlICUgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfKSB8IDAsCi0g
ICAgICAgICAgKHZhbHVlIC8gZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfKSB8IDApOwot
ICAgIH0KLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBMb25nIHJlcHJlc2VudGluZyB0aGUg
NjQtYml0IGludGVnZXIgdGhhdCBjb21lcyBieSBjb25jYXRlbmF0aW5nCi0gICAqIHRoZSBnaXZl
biBoaWdoIGFuZCBsb3cgYml0cy4gIEVhY2ggaXMgYXNzdW1lZCB0byB1c2UgMzIgYml0cy4KLSAg
ICogQHBhcmFtIHtudW1iZXJ9IGxvd0JpdHMgVGhlIGxvdyAzMi1iaXRzLgotICAgKiBAcGFyYW0g
e251bWJlcn0gaGlnaEJpdHMgVGhlIGhpZ2ggMzItYml0cy4KLSAgICogQHJldHVybiB7IWdvb2cu
bWF0aC5Mb25nfSBUaGUgY29ycmVzcG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8KLSAgZ29vZy5t
YXRoLkxvbmcuZnJvbUJpdHMgPSBmdW5jdGlvbihsb3dCaXRzLCBoaWdoQml0cykgewotICAgIHJl
dHVybiBuZXcgZ29vZy5tYXRoLkxvbmcobG93Qml0cywgaGlnaEJpdHMpOwotICB9OwotICAvKioK
LSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIHN0cmluZywg
d3JpdHRlbiB1c2luZyB0aGUgZ2l2ZW4KLSAgICogcmFkaXguCi0gICAqIEBwYXJhbSB7c3RyaW5n
fSBzdHIgVGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmcuCi0gICAqIEBwYXJh
bSB7bnVtYmVyPX0gb3B0X3JhZGl4IFRoZSByYWRpeCBpbiB3aGljaCB0aGUgdGV4dCBpcyB3cml0
dGVuLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNwb25kaW5nIExv
bmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5mcm9tU3RyaW5nID0gZnVuY3Rpb24o
c3RyLCBvcHRfcmFkaXgpIHsKLSAgICBpZiAoc3RyLmxlbmd0aCA9PSAwKSB7Ci0gICAgICB0aHJv
dyBFcnJvcignbnVtYmVyIGZvcm1hdCBlcnJvcjogZW1wdHkgc3RyaW5nJyk7Ci0gICAgfQotICAg
IHZhciByYWRpeCA9IG9wdF9yYWRpeCB8fCAxMDsKLSAgICBpZiAocmFkaXggPCAyIHx8IDM2IDwg
cmFkaXgpIHsKLSAgICAgIHRocm93IEVycm9yKCdyYWRpeCBvdXQgb2YgcmFuZ2U6ICcgKyByYWRp
eCk7Ci0gICAgfQotICAgIGlmIChzdHIuY2hhckF0KDApID09ICctJykgewotICAgICAgcmV0dXJu
IGdvb2cubWF0aC5Mb25nLmZyb21TdHJpbmcoc3RyLnN1YnN0cmluZygxKSwgcmFkaXgpLm5lZ2F0
ZSgpOwotICAgIH0gZWxzZSBpZiAoc3RyLmluZGV4T2YoJy0nKSA+PSAwKSB7Ci0gICAgICB0aHJv
dyBFcnJvcignbnVtYmVyIGZvcm1hdCBlcnJvcjogaW50ZXJpb3IgIi0iIGNoYXJhY3RlcjogJyAr
IHN0cik7Ci0gICAgfQotICAgIC8vIERvIHNldmVyYWwgKDgpIGRpZ2l0cyBlYWNoIHRpbWUgdGhy
b3VnaCB0aGUgbG9vcCwgc28gYXMgdG8KLSAgICAvLyBtaW5pbWl6ZSB0aGUgY2FsbHMgdG8gdGhl
IHZlcnkgZXhwZW5zaXZlIGVtdWxhdGVkIGRpdi4KLSAgICB2YXIgcmFkaXhUb1Bvd2VyID0gZ29v
Zy5tYXRoLkxvbmcuZnJvbU51bWJlcihNYXRoLnBvdyhyYWRpeCwgOCkpOwotICAgIHZhciByZXN1
bHQgPSBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxl
bmd0aDsgaSArPSA4KSB7Ci0gICAgICB2YXIgc2l6ZSA9IE1hdGgubWluKDgsIHN0ci5sZW5ndGgg
LSBpKTsKLSAgICAgIHZhciB2YWx1ZSA9IHBhcnNlSW50KHN0ci5zdWJzdHJpbmcoaSwgaSArIHNp
emUpLCByYWRpeCk7Ci0gICAgICBpZiAoc2l6ZSA8IDgpIHsKLSAgICAgICAgdmFyIHBvd2VyID0g
Z29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcihNYXRoLnBvdyhyYWRpeCwgc2l6ZSkpOwotICAgICAg
ICByZXN1bHQgPSByZXN1bHQubXVsdGlwbHkocG93ZXIpLmFkZChnb29nLm1hdGguTG9uZy5mcm9t
TnVtYmVyKHZhbHVlKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXN1bHQgPSByZXN1bHQu
bXVsdGlwbHkocmFkaXhUb1Bvd2VyKTsKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmFkZChnb29n
Lm1hdGguTG9uZy5mcm9tTnVtYmVyKHZhbHVlKSk7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVy
biByZXN1bHQ7Ci0gIH07Ci0gIC8vIE5PVEU6IHRoZSBjb21waWxlciBzaG91bGQgaW5saW5lIHRo
ZXNlIGNvbnN0YW50IHZhbHVlcyBiZWxvdyBhbmQgdGhlbiByZW1vdmUKLSAgLy8gdGhlc2UgdmFy
aWFibGVzLCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gcnVudGltZSBwZW5hbHR5IGZvciB0aGVzZS4K
LSAgLyoqCi0gICAqIE51bWJlciB1c2VkIHJlcGVhdGVkIGJlbG93IGluIGNhbGN1bGF0aW9ucy4g
IFRoaXMgbXVzdCBhcHBlYXIgYmVmb3JlIHRoZQotICAgKiBmaXJzdCBjYWxsIHRvIGFueSBmcm9t
KiBmdW5jdGlvbiBiZWxvdy4KLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUKLSAg
ICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMTZfREJMXyA9IDEgPDwgMTY7Ci0gIC8qKgot
ICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxv
bmcuVFdPX1BXUl8yNF9EQkxfID0gMSA8PCAyNDsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9
Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8g
PQotICAgICAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8xNl9EQkxfICogZ29vZy5tYXRoLkxvbmcu
VFdPX1BXUl8xNl9EQkxfOwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZh
dGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzFfREJMXyA9Ci0gICAgICBnb29n
Lm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gLyAyOwotICAvKioKLSAgICogQHR5cGUge251bWJl
cn0KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfNDhfREJM
XyA9Ci0gICAgICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gKiBnb29nLm1hdGguTG9u
Zy5UV09fUFdSXzE2X0RCTF87Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJp
dmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl82NF9EQkxfID0KLSAgICAgIGdv
b2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXyAqIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJf
REJMXzsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzYzX0RCTF8gPQotICAgICAgZ29vZy5tYXRoLkxvbmcu
VFdPX1BXUl82NF9EQkxfIC8gMjsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0g
IGdvb2cubWF0aC5Mb25nLlpFUk8gPSBnb29nLm1hdGguTG9uZy5mcm9tSW50KDApOwotICAvKiog
QHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRoLkxvbmcuT05FID0gZ29vZy5t
YXRoLkxvbmcuZnJvbUludCgxKTsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0g
IGdvb2cubWF0aC5Mb25nLk5FR19PTkUgPSBnb29nLm1hdGguTG9uZy5mcm9tSW50KC0xKTsKLSAg
LyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdvb2cubWF0aC5Mb25nLk1BWF9WQUxV
RSA9Ci0gICAgICBnb29nLm1hdGguTG9uZy5mcm9tQml0cygweEZGRkZGRkZGIHwgMCwgMHg3RkZG
RkZGRiB8IDApOwotICAvKiogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRo
LkxvbmcuTUlOX1ZBTFVFID0gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoMCwgMHg4MDAwMDAwMCB8
IDApOwotICAvKioKLSAgICogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30KLSAgICogQHByaXZhdGUK
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfID0gZ29vZy5tYXRoLkxvbmcuZnJv
bUludCgxIDw8IDI0KTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhlIHZhbHVlLCBhc3N1bWlu
ZyBpdCBpcyBhIDMyLWJpdCBpbnRlZ2VyLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUu
dG9JbnQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5sb3dfOwotICB9OwotICAvKiog
QHJldHVybiB7bnVtYmVyfSBUaGUgY2xvc2VzdCBmbG9hdGluZy1wb2ludCByZXByZXNlbnRhdGlv
biB0byB0aGlzIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUudG9OdW1iZXIg
PSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdoXyAqIGdvb2cubWF0aC5Mb25nLlRX
T19QV1JfMzJfREJMXyArCi0gICAgICAgICAgIHRoaXMuZ2V0TG93Qml0c1Vuc2lnbmVkKCk7Ci0g
IH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge251bWJlcj19IG9wdF9yYWRpeCBUaGUgcmFkaXggaW4g
d2hpY2ggdGhlIHRleHQgc2hvdWxkIGJlIHdyaXR0ZW4uCi0gICAqIEByZXR1cm4ge3N0cmluZ30g
VGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB2YWx1ZS4KLSAgICovCi0gIGdvb2cu
bWF0aC5Mb25nLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKG9wdF9yYWRpeCkgewotICAg
IHZhciByYWRpeCA9IG9wdF9yYWRpeCB8fCAxMDsKLSAgICBpZiAocmFkaXggPCAyIHx8IDM2IDwg
cmFkaXgpIHsKLSAgICAgIHRocm93IEVycm9yKCdyYWRpeCBvdXQgb2YgcmFuZ2U6ICcgKyByYWRp
eCk7Ci0gICAgfQotICAgIGlmICh0aGlzLmlzWmVybygpKSB7Ci0gICAgICByZXR1cm4gJzAnOwot
ICAgIH0KLSAgICBpZiAodGhpcy5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIGlmICh0aGlzLmVxdWFs
cyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICAgIC8vIFdlIG5lZWQgdG8gY2hh
bmdlIHRoZSBMb25nIHZhbHVlIGJlZm9yZSBpdCBjYW4gYmUgbmVnYXRlZCwgc28gd2UgcmVtb3Zl
Ci0gICAgICAgIC8vIHRoZSBib3R0b20tbW9zdCBkaWdpdCBpbiB0aGlzIGJhc2UgYW5kIHRoZW4g
cmVjdXJzZSB0byBkbyB0aGUgcmVzdC4KLSAgICAgICAgdmFyIHJhZGl4TG9uZyA9IGdvb2cubWF0
aC5Mb25nLmZyb21OdW1iZXIocmFkaXgpOwotICAgICAgICB2YXIgZGl2ID0gdGhpcy5kaXYocmFk
aXhMb25nKTsKLSAgICAgICAgdmFyIHJlbSA9IGRpdi5tdWx0aXBseShyYWRpeExvbmcpLnN1YnRy
YWN0KHRoaXMpOwotICAgICAgICByZXR1cm4gZGl2LnRvU3RyaW5nKHJhZGl4KSArIHJlbS50b0lu
dCgpLnRvU3RyaW5nKHJhZGl4KTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiAnLScg
KyB0aGlzLm5lZ2F0ZSgpLnRvU3RyaW5nKHJhZGl4KTsKLSAgICAgIH0KLSAgICB9Ci0gICAgLy8g
RG8gc2V2ZXJhbCAoNikgZGlnaXRzIGVhY2ggdGltZSB0aHJvdWdoIHRoZSBsb29wLCBzbyBhcyB0
bwotICAgIC8vIG1pbmltaXplIHRoZSBjYWxscyB0byB0aGUgdmVyeSBleHBlbnNpdmUgZW11bGF0
ZWQgZGl2LgotICAgIHZhciByYWRpeFRvUG93ZXIgPSBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVy
KE1hdGgucG93KHJhZGl4LCA2KSk7Ci0gICAgdmFyIHJlbSA9IHRoaXM7Ci0gICAgdmFyIHJlc3Vs
dCA9ICcnOwotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICB2YXIgcmVtRGl2ID0gcmVtLmRpdihy
YWRpeFRvUG93ZXIpOwotICAgICAgdmFyIGludHZhbCA9IHJlbS5zdWJ0cmFjdChyZW1EaXYubXVs
dGlwbHkocmFkaXhUb1Bvd2VyKSkudG9JbnQoKTsKLSAgICAgIHZhciBkaWdpdHMgPSBpbnR2YWwu
dG9TdHJpbmcocmFkaXgpOwotICAgICAgcmVtID0gcmVtRGl2OwotICAgICAgaWYgKHJlbS5pc1pl
cm8oKSkgewotICAgICAgICByZXR1cm4gZGlnaXRzICsgcmVzdWx0OwotICAgICAgfSBlbHNlIHsK
LSAgICAgICAgd2hpbGUgKGRpZ2l0cy5sZW5ndGggPCA2KSB7Ci0gICAgICAgICAgZGlnaXRzID0g
JzAnICsgZGlnaXRzOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdCA9ICcnICsgZGlnaXRzICsg
cmVzdWx0OwotICAgICAgfQotICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhl
IGhpZ2ggMzItYml0cyBhcyBhIHNpZ25lZCB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJv
dG90eXBlLmdldEhpZ2hCaXRzID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF87
Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBsb3cgMzItYml0cyBhcyBhIHNpZ25l
ZCB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmdldExvd0JpdHMgPSBmdW5j
dGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5sb3dfOwotICB9OwotICAvKiogQHJldHVybiB7bnVt
YmVyfSBUaGUgbG93IDMyLWJpdHMgYXMgYW4gdW5zaWduZWQgdmFsdWUuICovCi0gIGdvb2cubWF0
aC5Mb25nLnByb3RvdHlwZS5nZXRMb3dCaXRzVW5zaWduZWQgPSBmdW5jdGlvbigpIHsKLSAgICBy
ZXR1cm4gKHRoaXMubG93XyA+PSAwKSA/Ci0gICAgICAgIHRoaXMubG93XyA6IGdvb2cubWF0aC5M
b25nLlRXT19QV1JfMzJfREJMXyArIHRoaXMubG93XzsKLSAgfTsKLSAgLyoqCi0gICAqIEByZXR1
cm4ge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJpdHMgbmVlZGVkIHRvIHJlcHJlc2Vu
dCB0aGUgYWJzb2x1dGUKLSAgICogICAgIHZhbHVlIG9mIHRoaXMgTG9uZy4KLSAgICovCi0gIGdv
b2cubWF0aC5Mb25nLnByb3RvdHlwZS5nZXROdW1CaXRzQWJzID0gZnVuY3Rpb24oKSB7Ci0gICAg
aWYgKHRoaXMuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRo
LkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgICByZXR1cm4gNjQ7Ci0gICAgICB9IGVsc2Ugewot
ICAgICAgICByZXR1cm4gdGhpcy5uZWdhdGUoKS5nZXROdW1CaXRzQWJzKCk7Ci0gICAgICB9Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIHZhciB2YWwgPSB0aGlzLmhpZ2hfICE9IDAgPyB0aGlzLmhpZ2hf
IDogdGhpcy5sb3dfOwotICAgICAgZm9yICh2YXIgYml0ID0gMzE7IGJpdCA+IDA7IGJpdC0tKSB7
Ci0gICAgICAgIGlmICgodmFsICYgKDEgPDwgYml0KSkgIT0gMCkgewotICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdGhpcy5oaWdoXyAhPSAwID8gYml0
ICsgMzMgOiBiaXQgKyAxOwotICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4ge2Jvb2xlYW59IFdo
ZXRoZXIgdGhpcyB2YWx1ZSBpcyB6ZXJvLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUu
aXNaZXJvID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF8gPT0gMCAmJiB0aGlz
Lmxvd18gPT0gMDsKLSAgfTsKLSAgLyoqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyB2
YWx1ZSBpcyBuZWdhdGl2ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmlzTmVnYXRp
dmUgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdoXyA8IDA7Ci0gIH07Ci0gIC8q
KiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgdmFsdWUgaXMgb2RkLiAqLwotICBnb29n
Lm1hdGguTG9uZy5wcm90b3R5cGUuaXNPZGQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gKHRo
aXMubG93XyAmIDEpID09IDE7Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5M
b25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVh
bn0gV2hldGhlciB0aGlzIExvbmcgZXF1YWxzIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0
aC5Mb25nLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiAo
dGhpcy5oaWdoXyA9PSBvdGhlci5oaWdoXykgJiYgKHRoaXMubG93XyA9PSBvdGhlci5sb3dfKTsK
LSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8g
Y29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9u
ZyBkb2VzIG5vdCBlcXVhbCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90
b3R5cGUubm90RXF1YWxzID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gKHRoaXMuaGln
aF8gIT0gb3RoZXIuaGlnaF8pIHx8ICh0aGlzLmxvd18gIT0gb3RoZXIubG93Xyk7Ci0gIH07Ci0g
IC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUg
YWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExvbmcgaXMgbGVz
cyB0aGFuIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5sZXNz
VGhhbiA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikg
PCAwOwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9u
ZyB0byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhp
cyBMb25nIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgb3RoZXIuCi0gICAqLwotICBnb29n
Lm1hdGguTG9uZy5wcm90b3R5cGUubGVzc1RoYW5PckVxdWFsID0gZnVuY3Rpb24ob3RoZXIpIHsK
LSAgICByZXR1cm4gdGhpcy5jb21wYXJlKG90aGVyKSA8PSAwOwotICB9OwotICAvKioKLSAgICog
QHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFnYWluc3QuCi0g
ICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBMb25nIGlzIGdyZWF0ZXIgdGhhbiB0
aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZ3JlYXRlclRoYW4g
PSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLmNvbXBhcmUob3RoZXIpID4gMDsK
LSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8g
Y29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9u
ZyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5t
YXRoLkxvbmcucHJvdG90eXBlLmdyZWF0ZXJUaGFuT3JFcXVhbCA9IGZ1bmN0aW9uKG90aGVyKSB7
Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikgPj0gMDsKLSAgfTsKLSAgLyoqCi0gICAq
IENvbXBhcmVzIHRoaXMgTG9uZyB3aXRoIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29v
Zy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJu
IHtudW1iZXJ9IDAgaWYgdGhleSBhcmUgdGhlIHNhbWUsIDEgaWYgdGhlIHRoaXMgaXMgZ3JlYXRl
ciwgYW5kIC0xCi0gICAqICAgICBpZiB0aGUgZ2l2ZW4gb25lIGlzIGdyZWF0ZXIuCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0g
ICAgaWYgKHRoaXMuZXF1YWxzKG90aGVyKSkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAg
IHZhciB0aGlzTmVnID0gdGhpcy5pc05lZ2F0aXZlKCk7Ci0gICAgdmFyIG90aGVyTmVnID0gb3Ro
ZXIuaXNOZWdhdGl2ZSgpOwotICAgIGlmICh0aGlzTmVnICYmICFvdGhlck5lZykgewotICAgICAg
cmV0dXJuIC0xOwotICAgIH0KLSAgICBpZiAoIXRoaXNOZWcgJiYgb3RoZXJOZWcpIHsKLSAgICAg
IHJldHVybiAxOwotICAgIH0KLSAgICAvLyBhdCB0aGlzIHBvaW50LCB0aGUgc2lnbnMgYXJlIHRo
ZSBzYW1lLCBzbyBzdWJ0cmFjdGlvbiB3aWxsIG5vdCBvdmVyZmxvdwotICAgIGlmICh0aGlzLnN1
YnRyYWN0KG90aGVyKS5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9IGVs
c2UgewotICAgICAgcmV0dXJuIDE7Ci0gICAgfQotICB9OwotICAvKiogQHJldHVybiB7IWdvb2cu
bWF0aC5Mb25nfSBUaGUgbmVnYXRpb24gb2YgdGhpcyB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxv
bmcucHJvdG90eXBlLm5lZ2F0ZSA9IGZ1bmN0aW9uKCkgewotICAgIGlmICh0aGlzLmVxdWFscyhn
b29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcu
TUlOX1ZBTFVFOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gdGhpcy5ub3QoKS5hZGQoZ29v
Zy5tYXRoLkxvbmcuT05FKTsKLSAgICB9Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBz
dW0gb2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxv
bmd9IG90aGVyIExvbmcgdG8gYWRkIHRvIHRoaXMgb25lLgotICAgKiBAcmV0dXJuIHshZ29vZy5t
YXRoLkxvbmd9IFRoZSBzdW0gb2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqLwotICBn
b29nLm1hdGguTG9uZy5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICAvLyBE
aXZpZGUgZWFjaCBudW1iZXIgaW50byA0IGNodW5rcyBvZiAxNiBiaXRzLCBhbmQgdGhlbiBzdW0g
dGhlIGNodW5rcy4KLSAgICB2YXIgYTQ4ID0gdGhpcy5oaWdoXyA+Pj4gMTY7Ci0gICAgdmFyIGEz
MiA9IHRoaXMuaGlnaF8gJiAweEZGRkY7Ci0gICAgdmFyIGExNiA9IHRoaXMubG93XyA+Pj4gMTY7
Ci0gICAgdmFyIGEwMCA9IHRoaXMubG93XyAmIDB4RkZGRjsKLSAgICB2YXIgYjQ4ID0gb3RoZXIu
aGlnaF8gPj4+IDE2OwotICAgIHZhciBiMzIgPSBvdGhlci5oaWdoXyAmIDB4RkZGRjsKLSAgICB2
YXIgYjE2ID0gb3RoZXIubG93XyA+Pj4gMTY7Ci0gICAgdmFyIGIwMCA9IG90aGVyLmxvd18gJiAw
eEZGRkY7Ci0gICAgdmFyIGM0OCA9IDAsIGMzMiA9IDAsIGMxNiA9IDAsIGMwMCA9IDA7Ci0gICAg
YzAwICs9IGEwMCArIGIwMDsKLSAgICBjMTYgKz0gYzAwID4+PiAxNjsKLSAgICBjMDAgJj0gMHhG
RkZGOwotICAgIGMxNiArPSBhMTYgKyBiMTY7Ci0gICAgYzMyICs9IGMxNiA+Pj4gMTY7Ci0gICAg
YzE2ICY9IDB4RkZGRjsKLSAgICBjMzIgKz0gYTMyICsgYjMyOwotICAgIGM0OCArPSBjMzIgPj4+
IDE2OwotICAgIGMzMiAmPSAweEZGRkY7Ci0gICAgYzQ4ICs9IGE0OCArIGI0ODsKLSAgICBjNDgg
Jj0gMHhGRkZGOwotICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygoYzE2IDw8IDE2
KSB8IGMwMCwgKGM0OCA8PCAxNikgfCBjMzIpOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0
aGUgZGlmZmVyZW5jZSBvZiB0aGlzIGFuZCB0aGUgZ2l2ZW4gTG9uZy4KLSAgICogQHBhcmFtIHtn
b29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBzdWJ0cmFjdCBmcm9tIHRoaXMuCi0gICAqIEBy
ZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGRpZmZlcmVuY2Ugb2YgdGhpcyBhbmQgdGhlIGdp
dmVuIExvbmcuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc3VidHJhY3QgPSBm
dW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLmFkZChvdGhlci5uZWdhdGUoKSk7Ci0g
IH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBwcm9kdWN0IG9mIHRoaXMgYW5kIHRoZSBnaXZl
biBsb25nLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIG11bHRp
cGx5IHdpdGggdGhpcy4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgcHJvZHVj
dCBvZiB0aGlzIGFuZCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5
cGUubXVsdGlwbHkgPSBmdW5jdGlvbihvdGhlcikgewotICAgIGlmICh0aGlzLmlzWmVybygpKSB7
Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9IGVsc2UgaWYgKG90aGVy
LmlzWmVybygpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0g
ICAgaWYgKHRoaXMuZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJl
dHVybiBvdGhlci5pc09kZCgpID8gZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFIDogZ29vZy5tYXRo
LkxvbmcuWkVSTzsKLSAgICB9IGVsc2UgaWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5N
SU5fVkFMVUUpKSB7Ci0gICAgICByZXR1cm4gdGhpcy5pc09kZCgpID8gZ29vZy5tYXRoLkxvbmcu
TUlOX1ZBTFVFIDogZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0gICAgaWYgKHRoaXMuaXNO
ZWdhdGl2ZSgpKSB7Ci0gICAgICBpZiAob3RoZXIuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLm5lZ2F0ZSgpLm11bHRpcGx5KG90aGVyLm5lZ2F0ZSgpKTsKLSAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZSgpLm11bHRpcGx5KG90aGVyKS5uZWdhdGUo
KTsKLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG90aGVyLmlzTmVnYXRpdmUoKSkgewotICAgICAg
cmV0dXJuIHRoaXMubXVsdGlwbHkob3RoZXIubmVnYXRlKCkpLm5lZ2F0ZSgpOwotICAgIH0KLSAg
ICAvLyBJZiBib3RoIGxvbmdzIGFyZSBzbWFsbCwgdXNlIGZsb2F0IG11bHRpcGxpY2F0aW9uCi0g
ICAgaWYgKHRoaXMubGVzc1RoYW4oZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8yNF8pICYmCi0gICAg
ICAgIG90aGVyLmxlc3NUaGFuKGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfKSkgewotICAgICAg
cmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIodGhpcy50b051bWJlcigpICogb3RoZXIu
dG9OdW1iZXIoKSk7Ci0gICAgfQotICAgIC8vIERpdmlkZSBlYWNoIGxvbmcgaW50byA0IGNodW5r
cyBvZiAxNiBiaXRzLCBhbmQgdGhlbiBhZGQgdXAgNHg0IHByb2R1Y3RzLgotICAgIC8vIFdlIGNh
biBza2lwIHByb2R1Y3RzIHRoYXQgd291bGQgb3ZlcmZsb3cuCi0gICAgdmFyIGE0OCA9IHRoaXMu
aGlnaF8gPj4+IDE2OwotICAgIHZhciBhMzIgPSB0aGlzLmhpZ2hfICYgMHhGRkZGOwotICAgIHZh
ciBhMTYgPSB0aGlzLmxvd18gPj4+IDE2OwotICAgIHZhciBhMDAgPSB0aGlzLmxvd18gJiAweEZG
RkY7Ci0gICAgdmFyIGI0OCA9IG90aGVyLmhpZ2hfID4+PiAxNjsKLSAgICB2YXIgYjMyID0gb3Ro
ZXIuaGlnaF8gJiAweEZGRkY7Ci0gICAgdmFyIGIxNiA9IG90aGVyLmxvd18gPj4+IDE2OwotICAg
IHZhciBiMDAgPSBvdGhlci5sb3dfICYgMHhGRkZGOwotICAgIHZhciBjNDggPSAwLCBjMzIgPSAw
LCBjMTYgPSAwLCBjMDAgPSAwOwotICAgIGMwMCArPSBhMDAgKiBiMDA7Ci0gICAgYzE2ICs9IGMw
MCA+Pj4gMTY7Ci0gICAgYzAwICY9IDB4RkZGRjsKLSAgICBjMTYgKz0gYTE2ICogYjAwOwotICAg
IGMzMiArPSBjMTYgPj4+IDE2OwotICAgIGMxNiAmPSAweEZGRkY7Ci0gICAgYzE2ICs9IGEwMCAq
IGIxNjsKLSAgICBjMzIgKz0gYzE2ID4+PiAxNjsKLSAgICBjMTYgJj0gMHhGRkZGOwotICAgIGMz
MiArPSBhMzIgKiBiMDA7Ci0gICAgYzQ4ICs9IGMzMiA+Pj4gMTY7Ci0gICAgYzMyICY9IDB4RkZG
RjsKLSAgICBjMzIgKz0gYTE2ICogYjE2OwotICAgIGM0OCArPSBjMzIgPj4+IDE2OwotICAgIGMz
MiAmPSAweEZGRkY7Ci0gICAgYzMyICs9IGEwMCAqIGIzMjsKLSAgICBjNDggKz0gYzMyID4+PiAx
NjsKLSAgICBjMzIgJj0gMHhGRkZGOwotICAgIGM0OCArPSBhNDggKiBiMDAgKyBhMzIgKiBiMTYg
KyBhMTYgKiBiMzIgKyBhMDAgKiBiNDg7Ci0gICAgYzQ4ICY9IDB4RkZGRjsKLSAgICByZXR1cm4g
Z29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoKGMxNiA8PCAxNikgfCBjMDAsIChjNDggPDwgMTYpIHwg
YzMyKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBMb25nIGRpdmlkZWQgYnkgdGhl
IGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyBieSB3
aGljaCB0byBkaXZpZGUuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhpcyBMb25n
IGRpdmlkZWQgYnkgdGhlIGdpdmVuIG9uZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3Rv
dHlwZS5kaXYgPSBmdW5jdGlvbihvdGhlcikgewotICAgIGlmIChvdGhlci5pc1plcm8oKSkgewot
ICAgICAgdGhyb3cgRXJyb3IoJ2RpdmlzaW9uIGJ5IHplcm8nKTsKLSAgICB9IGVsc2UgaWYgKHRo
aXMuaXNaZXJvKCkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0K
LSAgICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAg
aWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5PTkUpIHx8Ci0gICAgICAgICAgb3RoZXIu
ZXF1YWxzKGdvb2cubWF0aC5Mb25nLk5FR19PTkUpKSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1h
dGguTG9uZy5NSU5fVkFMVUU7ICAvLyByZWNhbGwgdGhhdCAtTUlOX1ZBTFVFID09IE1JTl9WQUxV
RQotICAgICAgfSBlbHNlIGlmIChvdGhlci5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVF
KSkgewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuT05FOwotICAgICAgfSBlbHNlIHsK
LSAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2UgaGF2ZSB8b3RoZXJ8ID49IDIsIHNvIHx0aGlz
L290aGVyfCA8IHxNSU5fVkFMVUV8LgotICAgICAgICB2YXIgaGFsZlRoaXMgPSB0aGlzLnNoaWZ0
UmlnaHQoMSk7Ci0gICAgICAgIHZhciBhcHByb3ggPSBoYWxmVGhpcy5kaXYob3RoZXIpLnNoaWZ0
TGVmdCgxKTsKLSAgICAgICAgaWYgKGFwcHJveC5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuWkVSTykp
IHsKLSAgICAgICAgICByZXR1cm4gb3RoZXIuaXNOZWdhdGl2ZSgpID8gZ29vZy5tYXRoLkxvbmcu
T05FIDogZ29vZy5tYXRoLkxvbmcuTkVHX09ORTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICB2YXIgcmVtID0gdGhpcy5zdWJ0cmFjdChvdGhlci5tdWx0aXBseShhcHByb3gpKTsKLSAgICAg
ICAgICB2YXIgcmVzdWx0ID0gYXBwcm94LmFkZChyZW0uZGl2KG90aGVyKSk7Ci0gICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0gZWxzZSBpZiAob3RoZXIu
ZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1h
dGguTG9uZy5aRVJPOwotICAgIH0KLSAgICBpZiAodGhpcy5pc05lZ2F0aXZlKCkpIHsKLSAgICAg
IGlmIChvdGhlci5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmVnYXRlKCku
ZGl2KG90aGVyLm5lZ2F0ZSgpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiB0aGlz
Lm5lZ2F0ZSgpLmRpdihvdGhlcikubmVnYXRlKCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChv
dGhlci5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIHJldHVybiB0aGlzLmRpdihvdGhlci5uZWdhdGUo
KSkubmVnYXRlKCk7Ci0gICAgfQotICAgIC8vIFJlcGVhdCB0aGUgZm9sbG93aW5nIHVudGlsIHRo
ZSByZW1haW5kZXIgaXMgbGVzcyB0aGFuIG90aGVyOiAgZmluZCBhCi0gICAgLy8gZmxvYXRpbmct
cG9pbnQgdGhhdCBhcHByb3hpbWF0ZXMgcmVtYWluZGVyIC8gb3RoZXIgKmZyb20gYmVsb3cqLCBh
ZGQgdGhpcwotICAgIC8vIGludG8gdGhlIHJlc3VsdCwgYW5kIHN1YnRyYWN0IGl0IGZyb20gdGhl
IHJlbWFpbmRlci4gIEl0IGlzIGNyaXRpY2FsIHRoYXQKLSAgICAvLyB0aGUgYXBwcm94aW1hdGUg
dmFsdWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSByZWFsIHZhbHVlIHNvIHRoYXQgdGhl
Ci0gICAgLy8gcmVtYWluZGVyIG5ldmVyIGJlY29tZXMgbmVnYXRpdmUuCi0gICAgdmFyIHJlcyA9
IGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgdmFyIHJlbSA9IHRoaXM7Ci0gICAgd2hpbGUgKHJl
bS5ncmVhdGVyVGhhbk9yRXF1YWwob3RoZXIpKSB7Ci0gICAgICAvLyBBcHByb3hpbWF0ZSB0aGUg
cmVzdWx0IG9mIGRpdmlzaW9uLiBUaGlzIG1heSBiZSBhIGxpdHRsZSBncmVhdGVyIG9yCi0gICAg
ICAvLyBzbWFsbGVyIHRoYW4gdGhlIGFjdHVhbCB2YWx1ZS4KLSAgICAgIHZhciBhcHByb3ggPSBN
YXRoLm1heCgxLCBNYXRoLmZsb29yKHJlbS50b051bWJlcigpIC8gb3RoZXIudG9OdW1iZXIoKSkp
OwotICAgICAgLy8gV2Ugd2lsbCB0d2VhayB0aGUgYXBwcm94aW1hdGUgcmVzdWx0IGJ5IGNoYW5n
aW5nIGl0IGluIHRoZSA0OC10aCBkaWdpdCBvcgotICAgICAgLy8gdGhlIHNtYWxsZXN0IG5vbi1m
cmFjdGlvbmFsIGRpZ2l0LCB3aGljaGV2ZXIgaXMgbGFyZ2VyLgotICAgICAgdmFyIGxvZzIgPSBN
YXRoLmNlaWwoTWF0aC5sb2coYXBwcm94KSAvIE1hdGguTE4yKTsKLSAgICAgIHZhciBkZWx0YSA9
IChsb2cyIDw9IDQ4KSA/IDEgOiBNYXRoLnBvdygyLCBsb2cyIC0gNDgpOwotICAgICAgLy8gRGVj
cmVhc2UgdGhlIGFwcHJveGltYXRpb24gdW50aWwgaXQgaXMgc21hbGxlciB0aGFuIHRoZSByZW1h
aW5kZXIuICBOb3RlCi0gICAgICAvLyB0aGF0IGlmIGl0IGlzIHRvbyBsYXJnZSwgdGhlIHByb2R1
Y3Qgb3ZlcmZsb3dzIGFuZCBpcyBuZWdhdGl2ZS4KLSAgICAgIHZhciBhcHByb3hSZXMgPSBnb29n
Lm1hdGguTG9uZy5mcm9tTnVtYmVyKGFwcHJveCk7Ci0gICAgICB2YXIgYXBwcm94UmVtID0gYXBw
cm94UmVzLm11bHRpcGx5KG90aGVyKTsKLSAgICAgIHdoaWxlIChhcHByb3hSZW0uaXNOZWdhdGl2
ZSgpIHx8IGFwcHJveFJlbS5ncmVhdGVyVGhhbihyZW0pKSB7Ci0gICAgICAgIGFwcHJveCAtPSBk
ZWx0YTsKLSAgICAgICAgYXBwcm94UmVzID0gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcihhcHBy
b3gpOwotICAgICAgICBhcHByb3hSZW0gPSBhcHByb3hSZXMubXVsdGlwbHkob3RoZXIpOwotICAg
ICAgfQotICAgICAgLy8gV2Uga25vdyB0aGUgYW5zd2VyIGNhbid0IGJlIHplcm8uLi4gYW5kIGFj
dHVhbGx5LCB6ZXJvIHdvdWxkIGNhdXNlCi0gICAgICAvLyBpbmZpbml0ZSByZWN1cnNpb24gc2lu
Y2Ugd2Ugd291bGQgbWFrZSBubyBwcm9ncmVzcy4KLSAgICAgIGlmIChhcHByb3hSZXMuaXNaZXJv
KCkpIHsKLSAgICAgICAgYXBwcm94UmVzID0gZ29vZy5tYXRoLkxvbmcuT05FOwotICAgICAgfQot
ICAgICAgcmVzID0gcmVzLmFkZChhcHByb3hSZXMpOwotICAgICAgcmVtID0gcmVtLnN1YnRyYWN0
KGFwcHJveFJlbSk7Ci0gICAgfQotICAgIHJldHVybiByZXM7Ci0gIH07Ci0gIC8qKgotICAgKiBS
ZXR1cm5zIHRoaXMgTG9uZyBtb2R1bG8gdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29n
Lm1hdGguTG9uZ30gb3RoZXIgTG9uZyBieSB3aGljaCB0byBtb2QuCi0gICAqIEByZXR1cm4geyFn
b29nLm1hdGguTG9uZ30gVGhpcyBMb25nIG1vZHVsbyB0aGUgZ2l2ZW4gb25lLgotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcucHJvdG90eXBlLm1vZHVsbyA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAg
cmV0dXJuIHRoaXMuc3VidHJhY3QodGhpcy5kaXYob3RoZXIpLm11bHRpcGx5KG90aGVyKSk7Ci0g
IH07Ci0gIC8qKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBiaXR3aXNlLU5PVCBvZiB0
aGlzIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUubm90ID0gZnVuY3Rpb24o
KSB7Ci0gICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKH50aGlzLmxvd18sIH50aGlz
LmhpZ2hfKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhlIGJpdHdpc2UtQU5EIG9mIHRo
aXMgTG9uZyBhbmQgdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30g
b3RoZXIgVGhlIExvbmcgd2l0aCB3aGljaCB0byBBTkQuCi0gICAqIEByZXR1cm4geyFnb29nLm1h
dGguTG9uZ30gVGhlIGJpdHdpc2UtQU5EIG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0g
IGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5hbmQgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJl
dHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cyh0aGlzLmxvd18gJiBvdGhlci5sb3dfLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZ2hfICYgb3RoZXIuaGlnaF8p
OwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUgYml0d2lzZS1PUiBvZiB0aGlzIExvbmcg
YW5kIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIFRo
ZSBMb25nIHdpdGggd2hpY2ggdG8gT1IuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30g
VGhlIGJpdHdpc2UtT1Igb2YgdGhpcyBhbmQgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRo
LkxvbmcucHJvdG90eXBlLm9yID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gZ29vZy5t
YXRoLkxvbmcuZnJvbUJpdHModGhpcy5sb3dfIHwgb3RoZXIubG93XywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWdoXyB8IG90aGVyLmhpZ2hfKTsKLSAgfTsKLSAg
LyoqCi0gICAqIFJldHVybnMgdGhlIGJpdHdpc2UtWE9SIG9mIHRoaXMgTG9uZyBhbmQgdGhlIGdp
dmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgVGhlIExvbmcgd2l0
aCB3aGljaCB0byBYT1IuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGJpdHdp
c2UtWE9SIG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnBy
b3RvdHlwZS54b3IgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiBnb29nLm1hdGguTG9u
Zy5mcm9tQml0cyh0aGlzLmxvd18gXiBvdGhlci5sb3dfLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLmhpZ2hfIF4gb3RoZXIuaGlnaF8pOwotICB9OwotICAvKioKLSAg
ICogUmV0dXJucyB0aGlzIExvbmcgd2l0aCBiaXRzIHNoaWZ0ZWQgdG8gdGhlIGxlZnQgYnkgdGhl
IGdpdmVuIGFtb3VudC4KLSAgICogQHBhcmFtIHtudW1iZXJ9IG51bUJpdHMgVGhlIG51bWJlciBv
ZiBiaXRzIGJ5IHdoaWNoIHRvIHNoaWZ0LgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9
IFRoaXMgc2hpZnRlZCB0byB0aGUgbGVmdCBieSB0aGUgZ2l2ZW4gYW1vdW50LgotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0TGVmdCA9IGZ1bmN0aW9uKG51bUJpdHMpIHsK
LSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChudW1CaXRzID09IDApIHsKLSAgICAgIHJldHVy
biB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgbG93ID0gdGhpcy5sb3dfOwotICAgICAg
aWYgKG51bUJpdHMgPCAzMikgewotICAgICAgICB2YXIgaGlnaCA9IHRoaXMuaGlnaF87Ci0gICAg
ICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAgICAgICAgIGxvdyA8PCBu
dW1CaXRzLAotICAgICAgICAgICAgKGhpZ2ggPDwgbnVtQml0cykgfCAobG93ID4+PiAoMzIgLSBu
dW1CaXRzKSkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25n
LmZyb21CaXRzKDAsIGxvdyA8PCAobnVtQml0cyAtIDMyKSk7Ci0gICAgICB9Ci0gICAgfQotICB9
OwotICAvKioKLSAgICogUmV0dXJucyB0aGlzIExvbmcgd2l0aCBiaXRzIHNoaWZ0ZWQgdG8gdGhl
IHJpZ2h0IGJ5IHRoZSBnaXZlbiBhbW91bnQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1CaXRz
IFRoZSBudW1iZXIgb2YgYml0cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVybiB7IWdv
b2cubWF0aC5Mb25nfSBUaGlzIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZlbiBhbW91
bnQuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc2hpZnRSaWdodCA9IGZ1bmN0
aW9uKG51bUJpdHMpIHsKLSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChudW1CaXRzID09IDAp
IHsKLSAgICAgIHJldHVybiB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgaGlnaCA9IHRo
aXMuaGlnaF87Ci0gICAgICBpZiAobnVtQml0cyA8IDMyKSB7Ci0gICAgICAgIHZhciBsb3cgPSB0
aGlzLmxvd187Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAg
ICAgICAgIChsb3cgPj4+IG51bUJpdHMpIHwgKGhpZ2ggPDwgKDMyIC0gbnVtQml0cykpLAotICAg
ICAgICAgICAgaGlnaCA+PiBudW1CaXRzKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVy
biBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAgICAgICAgIGhpZ2ggPj4gKG51bUJpdHMg
LSAzMiksCi0gICAgICAgICAgICBoaWdoID49IDAgPyAwIDogLTEpOwotICAgICAgfQotICAgIH0K
LSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBMb25nIHdpdGggYml0cyBzaGlmdGVkIHRv
IHRoZSByaWdodCBieSB0aGUgZ2l2ZW4gYW1vdW50LCB3aXRoCi0gICAqIHRoZSBuZXcgdG9wIGJp
dHMgbWF0Y2hpbmcgdGhlIGN1cnJlbnQgc2lnbiBiaXQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBu
dW1CaXRzIFRoZSBudW1iZXIgb2YgYml0cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVy
biB7IWdvb2cubWF0aC5Mb25nfSBUaGlzIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZl
biBhbW91bnQsIHdpdGgKLSAgICogICAgIHplcm9zIHBsYWNlZCBpbnRvIHRoZSBuZXcgbGVhZGlu
ZyBiaXRzLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0UmlnaHRVbnNp
Z25lZCA9IGZ1bmN0aW9uKG51bUJpdHMpIHsKLSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChu
dW1CaXRzID09IDApIHsKLSAgICAgIHJldHVybiB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2
YXIgaGlnaCA9IHRoaXMuaGlnaF87Ci0gICAgICBpZiAobnVtQml0cyA8IDMyKSB7Ci0gICAgICAg
IHZhciBsb3cgPSB0aGlzLmxvd187Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9t
Qml0cygKLSAgICAgICAgICAgIChsb3cgPj4+IG51bUJpdHMpIHwgKGhpZ2ggPDwgKDMyIC0gbnVt
Qml0cykpLAotICAgICAgICAgICAgaGlnaCA+Pj4gbnVtQml0cyk7Ci0gICAgICB9IGVsc2UgaWYg
KG51bUJpdHMgPT0gMzIpIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRz
KGhpZ2gsIDApOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25n
LmZyb21CaXRzKGhpZ2ggPj4+IChudW1CaXRzIC0gMzIpLCAwKTsKLSAgICAgIH0KLSAgICB9Ci0g
IH07Ci0gIC8vPT09PT09PSBiZWdpbiBqc2JuID09PT09PT0KLSAgdmFyIG5hdmlnYXRvciA9IHsg
YXBwTmFtZTogJ01vZGVybiBCcm93c2VyJyB9OyAvLyBwb2x5ZmlsbCBhIGxpdHRsZQotICAvLyBD
b3B5cmlnaHQgKGMpIDIwMDUgIFRvbSBXdQotICAvLyBBbGwgUmlnaHRzIFJlc2VydmVkLgotICAv
LyBodHRwOi8vd3d3LWNzLXN0dWRlbnRzLnN0YW5mb3JkLmVkdS9+dGp3L2pzYm4vCi0gIC8qCi0g
ICAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1ICBUb20gV3UKLSAgICogQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAgICoKLSAgICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCi0gICAqIGEgY29weSBvZiB0aGlzIHNvZnR3
YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotICAgKiAiU29mdHdh
cmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk
aW5nCi0gICAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKLSAgICogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCi0gICAqIHBlcm1pdCBwZXJzb25z
IHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwot
ICAgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gICAqCi0gICAqIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCi0gICAqIGlu
Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3
YXJlLgotICAgKgotICAgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTLUlTIiBBTkQgV0lU
SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgCi0gICAqIEVYUFJFU1MsIElNUExJRUQgT1IgT1RI
RVJXSVNFLCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgCi0gICAqIFdBUlJBTlRZ
IE9GIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IAotICAgKgotICAgKiBJTiBOTyBFVkVOVCBTSEFMTCBUT00gV1UgQkUgTElBQkxFIEZPUiBBTlkg
U1BFQ0lBTCwgSU5DSURFTlRBTCwKLSAgICogSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIE9GIEFOWSBLSU5ELCBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSCi0gICAqIFJFU1VMVElO
RyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgT1IgTk9UIEFEVklT
RUQgT0YKLSAgICogVEhFIFBPU1NJQklMSVRZIE9GIERBTUFHRSwgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBBUklTSU5HIE9VVAotICAgKiBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgotICAgKgotICAgKiBJbiBh
ZGRpdGlvbiwgdGhlIGZvbGxvd2luZyBjb25kaXRpb24gYXBwbGllczoKLSAgICoKLSAgICogQWxs
IHJlZGlzdHJpYnV0aW9ucyBtdXN0IHJldGFpbiBhbiBpbnRhY3QgY29weSBvZiB0aGlzIGNvcHly
aWdodCBub3RpY2UKLSAgICogYW5kIGRpc2NsYWltZXIuCi0gICAqLwotICAvLyBCYXNpYyBKYXZh
U2NyaXB0IEJOIGxpYnJhcnkgLSBzdWJzZXQgdXNlZnVsIGZvciBSU0EgZW5jcnlwdGlvbi4KLSAg
Ly8gQml0cyBwZXIgZGlnaXQKLSAgdmFyIGRiaXRzOwotICAvLyBKYXZhU2NyaXB0IGVuZ2luZSBh
bmFseXNpcwotICB2YXIgY2FuYXJ5ID0gMHhkZWFkYmVlZmNhZmU7Ci0gIHZhciBqX2xtID0gKChj
YW5hcnkmMHhmZmZmZmYpPT0weGVmY2FmZSk7Ci0gIC8vIChwdWJsaWMpIENvbnN0cnVjdG9yCi0g
IGZ1bmN0aW9uIEJpZ0ludGVnZXIoYSxiLGMpIHsKLSAgICBpZihhICE9IG51bGwpCi0gICAgICBp
ZigibnVtYmVyIiA9PSB0eXBlb2YgYSkgdGhpcy5mcm9tTnVtYmVyKGEsYixjKTsKLSAgICAgIGVs
c2UgaWYoYiA9PSBudWxsICYmICJzdHJpbmciICE9IHR5cGVvZiBhKSB0aGlzLmZyb21TdHJpbmco
YSwyNTYpOwotICAgICAgZWxzZSB0aGlzLmZyb21TdHJpbmcoYSxiKTsKLSAgfQotICAvLyByZXR1
cm4gbmV3LCB1bnNldCBCaWdJbnRlZ2VyCi0gIGZ1bmN0aW9uIG5iaSgpIHsgcmV0dXJuIG5ldyBC
aWdJbnRlZ2VyKG51bGwpOyB9Ci0gIC8vIGFtOiBDb21wdXRlIHdfaiArPSAoeCp0aGlzX2kpLCBw
cm9wYWdhdGUgY2FycmllcywKLSAgLy8gYyBpcyBpbml0aWFsIGNhcnJ5LCByZXR1cm5zIGZpbmFs
IGNhcnJ5LgotICAvLyBjIDwgMypkdmFsdWUsIHggPCAyKmR2YWx1ZSwgdGhpc19pIDwgZHZhbHVl
Ci0gIC8vIFdlIG5lZWQgdG8gc2VsZWN0IHRoZSBmYXN0ZXN0IG9uZSB0aGF0IHdvcmtzIGluIHRo
aXMgZW52aXJvbm1lbnQuCi0gIC8vIGFtMTogdXNlIGEgc2luZ2xlIG11bHQgYW5kIGRpdmlkZSB0
byBnZXQgdGhlIGhpZ2ggYml0cywKLSAgLy8gbWF4IGRpZ2l0IGJpdHMgc2hvdWxkIGJlIDI2IGJl
Y2F1c2UKLSAgLy8gbWF4IGludGVybmFsIHZhbHVlID0gMipkdmFsdWVeMi0yKmR2YWx1ZSAoPCAy
XjUzKQotICBmdW5jdGlvbiBhbTEoaSx4LHcsaixjLG4pIHsKLSAgICB3aGlsZSgtLW4gPj0gMCkg
ewotICAgICAgdmFyIHYgPSB4KnRoaXNbaSsrXSt3W2pdK2M7Ci0gICAgICBjID0gTWF0aC5mbG9v
cih2LzB4NDAwMDAwMCk7Ci0gICAgICB3W2orK10gPSB2JjB4M2ZmZmZmZjsKLSAgICB9Ci0gICAg
cmV0dXJuIGM7Ci0gIH0KLSAgLy8gYW0yIGF2b2lkcyBhIGJpZyBtdWx0LWFuZC1leHRyYWN0IGNv
bXBsZXRlbHkuCi0gIC8vIE1heCBkaWdpdCBiaXRzIHNob3VsZCBiZSA8PSAzMCBiZWNhdXNlIHdl
IGRvIGJpdHdpc2Ugb3BzCi0gIC8vIG9uIHZhbHVlcyB1cCB0byAyKmhkdmFsdWVeMi1oZHZhbHVl
LTEgKDwgMl4zMSkKLSAgZnVuY3Rpb24gYW0yKGkseCx3LGosYyxuKSB7Ci0gICAgdmFyIHhsID0g
eCYweDdmZmYsIHhoID0geD4+MTU7Ci0gICAgd2hpbGUoLS1uID49IDApIHsKLSAgICAgIHZhciBs
ID0gdGhpc1tpXSYweDdmZmY7Ci0gICAgICB2YXIgaCA9IHRoaXNbaSsrXT4+MTU7Ci0gICAgICB2
YXIgbSA9IHhoKmwraCp4bDsKLSAgICAgIGwgPSB4bCpsKygobSYweDdmZmYpPDwxNSkrd1tqXSso
YyYweDNmZmZmZmZmKTsKLSAgICAgIGMgPSAobD4+PjMwKSsobT4+PjE1KSt4aCpoKyhjPj4+MzAp
OwotICAgICAgd1tqKytdID0gbCYweDNmZmZmZmZmOwotICAgIH0KLSAgICByZXR1cm4gYzsKLSAg
fQotICAvLyBBbHRlcm5hdGVseSwgc2V0IG1heCBkaWdpdCBiaXRzIHRvIDI4IHNpbmNlIHNvbWUK
LSAgLy8gYnJvd3NlcnMgc2xvdyBkb3duIHdoZW4gZGVhbGluZyB3aXRoIDMyLWJpdCBudW1iZXJz
LgotICBmdW5jdGlvbiBhbTMoaSx4LHcsaixjLG4pIHsKLSAgICB2YXIgeGwgPSB4JjB4M2ZmZiwg
eGggPSB4Pj4xNDsKLSAgICB3aGlsZSgtLW4gPj0gMCkgewotICAgICAgdmFyIGwgPSB0aGlzW2ld
JjB4M2ZmZjsKLSAgICAgIHZhciBoID0gdGhpc1tpKytdPj4xNDsKLSAgICAgIHZhciBtID0geGgq
bCtoKnhsOwotICAgICAgbCA9IHhsKmwrKChtJjB4M2ZmZik8PDE0KSt3W2pdK2M7Ci0gICAgICBj
ID0gKGw+PjI4KSsobT4+MTQpK3hoKmg7Ci0gICAgICB3W2orK10gPSBsJjB4ZmZmZmZmZjsKLSAg
ICB9Ci0gICAgcmV0dXJuIGM7Ci0gIH0KLSAgaWYoal9sbSAmJiAobmF2aWdhdG9yLmFwcE5hbWUg
PT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpKSB7Ci0gICAgQmlnSW50ZWdlci5wcm90
b3R5cGUuYW0gPSBhbTI7Ci0gICAgZGJpdHMgPSAzMDsKLSAgfQotICBlbHNlIGlmKGpfbG0gJiYg
KG5hdmlnYXRvci5hcHBOYW1lICE9ICJOZXRzY2FwZSIpKSB7Ci0gICAgQmlnSW50ZWdlci5wcm90
b3R5cGUuYW0gPSBhbTE7Ci0gICAgZGJpdHMgPSAyNjsKLSAgfQotICBlbHNlIHsgLy8gTW96aWxs
YS9OZXRzY2FwZSBzZWVtcyB0byBwcmVmZXIgYW0zCi0gICAgQmlnSW50ZWdlci5wcm90b3R5cGUu
YW0gPSBhbTM7Ci0gICAgZGJpdHMgPSAyODsKLSAgfQotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5E
QiA9IGRiaXRzOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ETSA9ICgoMTw8ZGJpdHMpLTEpOwot
ICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5EViA9ICgxPDxkYml0cyk7Ci0gIHZhciBCSV9GUCA9IDUy
OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5GViA9IE1hdGgucG93KDIsQklfRlApOwotICBCaWdJ
bnRlZ2VyLnByb3RvdHlwZS5GMSA9IEJJX0ZQLWRiaXRzOwotICBCaWdJbnRlZ2VyLnByb3RvdHlw
ZS5GMiA9IDIqZGJpdHMtQklfRlA7Ci0gIC8vIERpZ2l0IGNvbnZlcnNpb25zCi0gIHZhciBCSV9S
TSA9ICIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiOwotICB2YXIgQklfUkMg
PSBuZXcgQXJyYXkoKTsKLSAgdmFyIHJyLHZ2OwotICByciA9ICIwIi5jaGFyQ29kZUF0KDApOwot
ICBmb3IodnYgPSAwOyB2diA8PSA5OyArK3Z2KSBCSV9SQ1tycisrXSA9IHZ2OwotICByciA9ICJh
Ii5jaGFyQ29kZUF0KDApOwotICBmb3IodnYgPSAxMDsgdnYgPCAzNjsgKyt2dikgQklfUkNbcnIr
K10gPSB2djsKLSAgcnIgPSAiQSIuY2hhckNvZGVBdCgwKTsKLSAgZm9yKHZ2ID0gMTA7IHZ2IDwg
MzY7ICsrdnYpIEJJX1JDW3JyKytdID0gdnY7Ci0gIGZ1bmN0aW9uIGludDJjaGFyKG4pIHsgcmV0
dXJuIEJJX1JNLmNoYXJBdChuKTsgfQotICBmdW5jdGlvbiBpbnRBdChzLGkpIHsKLSAgICB2YXIg
YyA9IEJJX1JDW3MuY2hhckNvZGVBdChpKV07Ci0gICAgcmV0dXJuIChjPT1udWxsKT8tMTpjOwot
ICB9Ci0gIC8vIChwcm90ZWN0ZWQpIGNvcHkgdGhpcyB0byByCi0gIGZ1bmN0aW9uIGJucENvcHlU
byhyKSB7Ci0gICAgZm9yKHZhciBpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSByW2ldID0gdGhp
c1tpXTsKLSAgICByLnQgPSB0aGlzLnQ7Ci0gICAgci5zID0gdGhpcy5zOwotICB9Ci0gIC8vIChw
cm90ZWN0ZWQpIHNldCBmcm9tIGludGVnZXIgdmFsdWUgeCwgLURWIDw9IHggPCBEVgotICBmdW5j
dGlvbiBibnBGcm9tSW50KHgpIHsKLSAgICB0aGlzLnQgPSAxOwotICAgIHRoaXMucyA9ICh4PDAp
Py0xOjA7Ci0gICAgaWYoeCA+IDApIHRoaXNbMF0gPSB4OwotICAgIGVsc2UgaWYoeCA8IC0xKSB0
aGlzWzBdID0geCtEVjsKLSAgICBlbHNlIHRoaXMudCA9IDA7Ci0gIH0KLSAgLy8gcmV0dXJuIGJp
Z2ludCBpbml0aWFsaXplZCB0byB2YWx1ZQotICBmdW5jdGlvbiBuYnYoaSkgeyB2YXIgciA9IG5i
aSgpOyByLmZyb21JbnQoaSk7IHJldHVybiByOyB9Ci0gIC8vIChwcm90ZWN0ZWQpIHNldCBmcm9t
IHN0cmluZyBhbmQgcmFkaXgKLSAgZnVuY3Rpb24gYm5wRnJvbVN0cmluZyhzLGIpIHsKLSAgICB2
YXIgazsKLSAgICBpZihiID09IDE2KSBrID0gNDsKLSAgICBlbHNlIGlmKGIgPT0gOCkgayA9IDM7
Ci0gICAgZWxzZSBpZihiID09IDI1NikgayA9IDg7IC8vIGJ5dGUgYXJyYXkKLSAgICBlbHNlIGlm
KGIgPT0gMikgayA9IDE7Ci0gICAgZWxzZSBpZihiID09IDMyKSBrID0gNTsKLSAgICBlbHNlIGlm
KGIgPT0gNCkgayA9IDI7Ci0gICAgZWxzZSB7IHRoaXMuZnJvbVJhZGl4KHMsYik7IHJldHVybjsg
fQotICAgIHRoaXMudCA9IDA7Ci0gICAgdGhpcy5zID0gMDsKLSAgICB2YXIgaSA9IHMubGVuZ3Ro
LCBtaSA9IGZhbHNlLCBzaCA9IDA7Ci0gICAgd2hpbGUoLS1pID49IDApIHsKLSAgICAgIHZhciB4
ID0gKGs9PTgpP3NbaV0mMHhmZjppbnRBdChzLGkpOwotICAgICAgaWYoeCA8IDApIHsKLSAgICAg
ICAgaWYocy5jaGFyQXQoaSkgPT0gIi0iKSBtaSA9IHRydWU7Ci0gICAgICAgIGNvbnRpbnVlOwot
ICAgICAgfQotICAgICAgbWkgPSBmYWxzZTsKLSAgICAgIGlmKHNoID09IDApCi0gICAgICAgIHRo
aXNbdGhpcy50KytdID0geDsKLSAgICAgIGVsc2UgaWYoc2grayA+IHRoaXMuREIpIHsKLSAgICAg
ICAgdGhpc1t0aGlzLnQtMV0gfD0gKHgmKCgxPDwodGhpcy5EQi1zaCkpLTEpKTw8c2g7Ci0gICAg
ICAgIHRoaXNbdGhpcy50KytdID0gKHg+Pih0aGlzLkRCLXNoKSk7Ci0gICAgICB9Ci0gICAgICBl
bHNlCi0gICAgICAgIHRoaXNbdGhpcy50LTFdIHw9IHg8PHNoOwotICAgICAgc2ggKz0gazsKLSAg
ICAgIGlmKHNoID49IHRoaXMuREIpIHNoIC09IHRoaXMuREI7Ci0gICAgfQotICAgIGlmKGsgPT0g
OCAmJiAoc1swXSYweDgwKSAhPSAwKSB7Ci0gICAgICB0aGlzLnMgPSAtMTsKLSAgICAgIGlmKHNo
ID4gMCkgdGhpc1t0aGlzLnQtMV0gfD0gKCgxPDwodGhpcy5EQi1zaCkpLTEpPDxzaDsKLSAgICB9
Ci0gICAgdGhpcy5jbGFtcCgpOwotICAgIGlmKG1pKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8odGhp
cyx0aGlzKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSBjbGFtcCBvZmYgZXhjZXNzIGhpZ2ggd29y
ZHMKLSAgZnVuY3Rpb24gYm5wQ2xhbXAoKSB7Ci0gICAgdmFyIGMgPSB0aGlzLnMmdGhpcy5ETTsK
LSAgICB3aGlsZSh0aGlzLnQgPiAwICYmIHRoaXNbdGhpcy50LTFdID09IGMpIC0tdGhpcy50Owot
ICB9Ci0gIC8vIChwdWJsaWMpIHJldHVybiBzdHJpbmcgcmVwcmVzZW50YXRpb24gaW4gZ2l2ZW4g
cmFkaXgKLSAgZnVuY3Rpb24gYm5Ub1N0cmluZyhiKSB7Ci0gICAgaWYodGhpcy5zIDwgMCkgcmV0
dXJuICItIit0aGlzLm5lZ2F0ZSgpLnRvU3RyaW5nKGIpOwotICAgIHZhciBrOwotICAgIGlmKGIg
PT0gMTYpIGsgPSA0OwotICAgIGVsc2UgaWYoYiA9PSA4KSBrID0gMzsKLSAgICBlbHNlIGlmKGIg
PT0gMikgayA9IDE7Ci0gICAgZWxzZSBpZihiID09IDMyKSBrID0gNTsKLSAgICBlbHNlIGlmKGIg
PT0gNCkgayA9IDI7Ci0gICAgZWxzZSByZXR1cm4gdGhpcy50b1JhZGl4KGIpOwotICAgIHZhciBr
bSA9ICgxPDxrKS0xLCBkLCBtID0gZmFsc2UsIHIgPSAiIiwgaSA9IHRoaXMudDsKLSAgICB2YXIg
cCA9IHRoaXMuREItKGkqdGhpcy5EQiklazsKLSAgICBpZihpLS0gPiAwKSB7Ci0gICAgICBpZihw
IDwgdGhpcy5EQiAmJiAoZCA9IHRoaXNbaV0+PnApID4gMCkgeyBtID0gdHJ1ZTsgciA9IGludDJj
aGFyKGQpOyB9Ci0gICAgICB3aGlsZShpID49IDApIHsKLSAgICAgICAgaWYocCA8IGspIHsKLSAg
ICAgICAgICBkID0gKHRoaXNbaV0mKCgxPDxwKS0xKSk8PChrLXApOwotICAgICAgICAgIGQgfD0g
dGhpc1stLWldPj4ocCs9dGhpcy5EQi1rKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICBkID0gKHRoaXNbaV0+PihwLT1rKSkma207Ci0gICAgICAgICAgaWYocCA8PSAwKSB7
IHAgKz0gdGhpcy5EQjsgLS1pOyB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYoZCA+IDApIG0gPSB0
cnVlOwotICAgICAgICBpZihtKSByICs9IGludDJjaGFyKGQpOwotICAgICAgfQotICAgIH0KLSAg
ICByZXR1cm4gbT9yOiIwIjsKLSAgfQotICAvLyAocHVibGljKSAtdGhpcwotICBmdW5jdGlvbiBi
bk5lZ2F0ZSgpIHsgdmFyIHIgPSBuYmkoKTsgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHRoaXMscik7
IHJldHVybiByOyB9Ci0gIC8vIChwdWJsaWMpIHx0aGlzfAotICBmdW5jdGlvbiBibkFicygpIHsg
cmV0dXJuICh0aGlzLnM8MCk/dGhpcy5uZWdhdGUoKTp0aGlzOyB9Ci0gIC8vIChwdWJsaWMpIHJl
dHVybiArIGlmIHRoaXMgPiBhLCAtIGlmIHRoaXMgPCBhLCAwIGlmIGVxdWFsCi0gIGZ1bmN0aW9u
IGJuQ29tcGFyZVRvKGEpIHsKLSAgICB2YXIgciA9IHRoaXMucy1hLnM7Ci0gICAgaWYociAhPSAw
KSByZXR1cm4gcjsKLSAgICB2YXIgaSA9IHRoaXMudDsKLSAgICByID0gaS1hLnQ7Ci0gICAgaWYo
ciAhPSAwKSByZXR1cm4gKHRoaXMuczwwKT8tcjpyOwotICAgIHdoaWxlKC0taSA+PSAwKSBpZigo
cj10aGlzW2ldLWFbaV0pICE9IDApIHJldHVybiByOwotICAgIHJldHVybiAwOwotICB9Ci0gIC8v
IHJldHVybnMgYml0IGxlbmd0aCBvZiB0aGUgaW50ZWdlciB4Ci0gIGZ1bmN0aW9uIG5iaXRzKHgp
IHsKLSAgICB2YXIgciA9IDEsIHQ7Ci0gICAgaWYoKHQ9eD4+PjE2KSAhPSAwKSB7IHggPSB0OyBy
ICs9IDE2OyB9Ci0gICAgaWYoKHQ9eD4+OCkgIT0gMCkgeyB4ID0gdDsgciArPSA4OyB9Ci0gICAg
aWYoKHQ9eD4+NCkgIT0gMCkgeyB4ID0gdDsgciArPSA0OyB9Ci0gICAgaWYoKHQ9eD4+MikgIT0g
MCkgeyB4ID0gdDsgciArPSAyOyB9Ci0gICAgaWYoKHQ9eD4+MSkgIT0gMCkgeyB4ID0gdDsgciAr
PSAxOyB9Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8gKHB1YmxpYykgcmV0dXJuIHRoZSBudW1i
ZXIgb2YgYml0cyBpbiAidGhpcyIKLSAgZnVuY3Rpb24gYm5CaXRMZW5ndGgoKSB7Ci0gICAgaWYo
dGhpcy50IDw9IDApIHJldHVybiAwOwotICAgIHJldHVybiB0aGlzLkRCKih0aGlzLnQtMSkrbmJp
dHModGhpc1t0aGlzLnQtMV1eKHRoaXMucyZ0aGlzLkRNKSk7Ci0gIH0KLSAgLy8gKHByb3RlY3Rl
ZCkgciA9IHRoaXMgPDwgbipEQgotICBmdW5jdGlvbiBibnBETFNoaWZ0VG8obixyKSB7Ci0gICAg
dmFyIGk7Ci0gICAgZm9yKGkgPSB0aGlzLnQtMTsgaSA+PSAwOyAtLWkpIHJbaStuXSA9IHRoaXNb
aV07Ci0gICAgZm9yKGkgPSBuLTE7IGkgPj0gMDsgLS1pKSByW2ldID0gMDsKLSAgICByLnQgPSB0
aGlzLnQrbjsKLSAgICByLnMgPSB0aGlzLnM7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRo
aXMgPj4gbipEQgotICBmdW5jdGlvbiBibnBEUlNoaWZ0VG8obixyKSB7Ci0gICAgZm9yKHZhciBp
ID0gbjsgaSA8IHRoaXMudDsgKytpKSByW2ktbl0gPSB0aGlzW2ldOwotICAgIHIudCA9IE1hdGgu
bWF4KHRoaXMudC1uLDApOwotICAgIHIucyA9IHRoaXMuczsKLSAgfQotICAvLyAocHJvdGVjdGVk
KSByID0gdGhpcyA8PCBuCi0gIGZ1bmN0aW9uIGJucExTaGlmdFRvKG4scikgewotICAgIHZhciBi
cyA9IG4ldGhpcy5EQjsKLSAgICB2YXIgY2JzID0gdGhpcy5EQi1iczsKLSAgICB2YXIgYm0gPSAo
MTw8Y2JzKS0xOwotICAgIHZhciBkcyA9IE1hdGguZmxvb3Iobi90aGlzLkRCKSwgYyA9ICh0aGlz
LnM8PGJzKSZ0aGlzLkRNLCBpOwotICAgIGZvcihpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSB7
Ci0gICAgICByW2krZHMrMV0gPSAodGhpc1tpXT4+Y2JzKXxjOwotICAgICAgYyA9ICh0aGlzW2ld
JmJtKTw8YnM7Ci0gICAgfQotICAgIGZvcihpID0gZHMtMTsgaSA+PSAwOyAtLWkpIHJbaV0gPSAw
OwotICAgIHJbZHNdID0gYzsKLSAgICByLnQgPSB0aGlzLnQrZHMrMTsKLSAgICByLnMgPSB0aGlz
LnM7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlzID4+IG4K
LSAgZnVuY3Rpb24gYm5wUlNoaWZ0VG8obixyKSB7Ci0gICAgci5zID0gdGhpcy5zOwotICAgIHZh
ciBkcyA9IE1hdGguZmxvb3Iobi90aGlzLkRCKTsKLSAgICBpZihkcyA+PSB0aGlzLnQpIHsgci50
ID0gMDsgcmV0dXJuOyB9Ci0gICAgdmFyIGJzID0gbiV0aGlzLkRCOwotICAgIHZhciBjYnMgPSB0
aGlzLkRCLWJzOwotICAgIHZhciBibSA9ICgxPDxicyktMTsKLSAgICByWzBdID0gdGhpc1tkc10+
PmJzOwotICAgIGZvcih2YXIgaSA9IGRzKzE7IGkgPCB0aGlzLnQ7ICsraSkgewotICAgICAgcltp
LWRzLTFdIHw9ICh0aGlzW2ldJmJtKTw8Y2JzOwotICAgICAgcltpLWRzXSA9IHRoaXNbaV0+PmJz
OwotICAgIH0KLSAgICBpZihicyA+IDApIHJbdGhpcy50LWRzLTFdIHw9ICh0aGlzLnMmYm0pPDxj
YnM7Ci0gICAgci50ID0gdGhpcy50LWRzOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJv
dGVjdGVkKSByID0gdGhpcyAtIGEKLSAgZnVuY3Rpb24gYm5wU3ViVG8oYSxyKSB7Ci0gICAgdmFy
IGkgPSAwLCBjID0gMCwgbSA9IE1hdGgubWluKGEudCx0aGlzLnQpOwotICAgIHdoaWxlKGkgPCBt
KSB7Ci0gICAgICBjICs9IHRoaXNbaV0tYVtpXTsKLSAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsK
LSAgICAgIGMgPj49IHRoaXMuREI7Ci0gICAgfQotICAgIGlmKGEudCA8IHRoaXMudCkgewotICAg
ICAgYyAtPSBhLnM7Ci0gICAgICB3aGlsZShpIDwgdGhpcy50KSB7Ci0gICAgICAgIGMgKz0gdGhp
c1tpXTsKLSAgICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRC
OwotICAgICAgfQotICAgICAgYyArPSB0aGlzLnM7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAg
YyArPSB0aGlzLnM7Ci0gICAgICB3aGlsZShpIDwgYS50KSB7Ci0gICAgICAgIGMgLT0gYVtpXTsK
LSAgICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRCOwotICAg
ICAgfQotICAgICAgYyAtPSBhLnM7Ci0gICAgfQotICAgIHIucyA9IChjPDApPy0xOjA7Ci0gICAg
aWYoYyA8IC0xKSByW2krK10gPSB0aGlzLkRWK2M7Ci0gICAgZWxzZSBpZihjID4gMCkgcltpKytd
ID0gYzsKLSAgICByLnQgPSBpOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJvdGVjdGVk
KSByID0gdGhpcyAqIGEsIHIgIT0gdGhpcyxhIChIQUMgMTQuMTIpCi0gIC8vICJ0aGlzIiBzaG91
bGQgYmUgdGhlIGxhcmdlciBvbmUgaWYgYXBwcm9wcmlhdGUuCi0gIGZ1bmN0aW9uIGJucE11bHRp
cGx5VG8oYSxyKSB7Ci0gICAgdmFyIHggPSB0aGlzLmFicygpLCB5ID0gYS5hYnMoKTsKLSAgICB2
YXIgaSA9IHgudDsKLSAgICByLnQgPSBpK3kudDsKLSAgICB3aGlsZSgtLWkgPj0gMCkgcltpXSA9
IDA7Ci0gICAgZm9yKGkgPSAwOyBpIDwgeS50OyArK2kpIHJbaSt4LnRdID0geC5hbSgwLHlbaV0s
cixpLDAseC50KTsKLSAgICByLnMgPSAwOwotICAgIHIuY2xhbXAoKTsKLSAgICBpZih0aGlzLnMg
IT0gYS5zKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8ocixyKTsKLSAgfQotICAvLyAocHJvdGVjdGVk
KSByID0gdGhpc14yLCByICE9IHRoaXMgKEhBQyAxNC4xNikKLSAgZnVuY3Rpb24gYm5wU3F1YXJl
VG8ocikgewotICAgIHZhciB4ID0gdGhpcy5hYnMoKTsKLSAgICB2YXIgaSA9IHIudCA9IDIqeC50
OwotICAgIHdoaWxlKC0taSA+PSAwKSByW2ldID0gMDsKLSAgICBmb3IoaSA9IDA7IGkgPCB4LnQt
MTsgKytpKSB7Ci0gICAgICB2YXIgYyA9IHguYW0oaSx4W2ldLHIsMippLDAsMSk7Ci0gICAgICBp
ZigocltpK3gudF0rPXguYW0oaSsxLDIqeFtpXSxyLDIqaSsxLGMseC50LWktMSkpID49IHguRFYp
IHsKLSAgICAgICAgcltpK3gudF0gLT0geC5EVjsKLSAgICAgICAgcltpK3gudCsxXSA9IDE7Ci0g
ICAgICB9Ci0gICAgfQotICAgIGlmKHIudCA+IDApIHJbci50LTFdICs9IHguYW0oaSx4W2ldLHIs
MippLDAsMSk7Ci0gICAgci5zID0gMDsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3Rl
Y3RlZCkgZGl2aWRlIHRoaXMgYnkgbSwgcXVvdGllbnQgYW5kIHJlbWFpbmRlciB0byBxLCByIChI
QUMgMTQuMjApCi0gIC8vIHIgIT0gcSwgdGhpcyAhPSBtLiAgcSBvciByIG1heSBiZSBudWxsLgot
ICBmdW5jdGlvbiBibnBEaXZSZW1UbyhtLHEscikgewotICAgIHZhciBwbSA9IG0uYWJzKCk7Ci0g
ICAgaWYocG0udCA8PSAwKSByZXR1cm47Ci0gICAgdmFyIHB0ID0gdGhpcy5hYnMoKTsKLSAgICBp
ZihwdC50IDwgcG0udCkgewotICAgICAgaWYocSAhPSBudWxsKSBxLmZyb21JbnQoMCk7Ci0gICAg
ICBpZihyICE9IG51bGwpIHRoaXMuY29weVRvKHIpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICBpZihyID09IG51bGwpIHIgPSBuYmkoKTsKLSAgICB2YXIgeSA9IG5iaSgpLCB0cyA9IHRoaXMu
cywgbXMgPSBtLnM7Ci0gICAgdmFyIG5zaCA9IHRoaXMuREItbmJpdHMocG1bcG0udC0xXSk7CS8v
IG5vcm1hbGl6ZSBtb2R1bHVzCi0gICAgaWYobnNoID4gMCkgeyBwbS5sU2hpZnRUbyhuc2gseSk7
IHB0LmxTaGlmdFRvKG5zaCxyKTsgfQotICAgIGVsc2UgeyBwbS5jb3B5VG8oeSk7IHB0LmNvcHlU
byhyKTsgfQotICAgIHZhciB5cyA9IHkudDsKLSAgICB2YXIgeTAgPSB5W3lzLTFdOwotICAgIGlm
KHkwID09IDApIHJldHVybjsKLSAgICB2YXIgeXQgPSB5MCooMTw8dGhpcy5GMSkrKCh5cz4xKT95
W3lzLTJdPj50aGlzLkYyOjApOwotICAgIHZhciBkMSA9IHRoaXMuRlYveXQsIGQyID0gKDE8PHRo
aXMuRjEpL3l0LCBlID0gMTw8dGhpcy5GMjsKLSAgICB2YXIgaSA9IHIudCwgaiA9IGkteXMsIHQg
PSAocT09bnVsbCk/bmJpKCk6cTsKLSAgICB5LmRsU2hpZnRUbyhqLHQpOwotICAgIGlmKHIuY29t
cGFyZVRvKHQpID49IDApIHsKLSAgICAgIHJbci50KytdID0gMTsKLSAgICAgIHIuc3ViVG8odCxy
KTsKLSAgICB9Ci0gICAgQmlnSW50ZWdlci5PTkUuZGxTaGlmdFRvKHlzLHQpOwotICAgIHQuc3Vi
VG8oeSx5KTsJLy8gIm5lZ2F0aXZlIiB5IHNvIHdlIGNhbiByZXBsYWNlIHN1YiB3aXRoIGFtIGxh
dGVyCi0gICAgd2hpbGUoeS50IDwgeXMpIHlbeS50KytdID0gMDsKLSAgICB3aGlsZSgtLWogPj0g
MCkgewotICAgICAgLy8gRXN0aW1hdGUgcXVvdGllbnQgZGlnaXQKLSAgICAgIHZhciBxZCA9IChy
Wy0taV09PXkwKT90aGlzLkRNOk1hdGguZmxvb3IocltpXSpkMSsocltpLTFdK2UpKmQyKTsKLSAg
ICAgIGlmKChyW2ldKz15LmFtKDAscWQscixqLDAseXMpKSA8IHFkKSB7CS8vIFRyeSBpdCBvdXQK
LSAgICAgICAgeS5kbFNoaWZ0VG8oaix0KTsKLSAgICAgICAgci5zdWJUbyh0LHIpOwotICAgICAg
ICB3aGlsZShyW2ldIDwgLS1xZCkgci5zdWJUbyh0LHIpOwotICAgICAgfQotICAgIH0KLSAgICBp
ZihxICE9IG51bGwpIHsKLSAgICAgIHIuZHJTaGlmdFRvKHlzLHEpOwotICAgICAgaWYodHMgIT0g
bXMpIEJpZ0ludGVnZXIuWkVSTy5zdWJUbyhxLHEpOwotICAgIH0KLSAgICByLnQgPSB5czsKLSAg
ICByLmNsYW1wKCk7Ci0gICAgaWYobnNoID4gMCkgci5yU2hpZnRUbyhuc2gscik7CS8vIERlbm9y
bWFsaXplIHJlbWFpbmRlcgotICAgIGlmKHRzIDwgMCkgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHIs
cik7Ci0gIH0KLSAgLy8gKHB1YmxpYykgdGhpcyBtb2QgYQotICBmdW5jdGlvbiBibk1vZChhKSB7
Ci0gICAgdmFyIHIgPSBuYmkoKTsKLSAgICB0aGlzLmFicygpLmRpdlJlbVRvKGEsbnVsbCxyKTsK
LSAgICBpZih0aGlzLnMgPCAwICYmIHIuY29tcGFyZVRvKEJpZ0ludGVnZXIuWkVSTykgPiAwKSBh
LnN1YlRvKHIscik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8gTW9kdWxhciByZWR1Y3Rpb24g
dXNpbmcgImNsYXNzaWMiIGFsZ29yaXRobQotICBmdW5jdGlvbiBDbGFzc2ljKG0pIHsgdGhpcy5t
ID0gbTsgfQotICBmdW5jdGlvbiBjQ29udmVydCh4KSB7Ci0gICAgaWYoeC5zIDwgMCB8fCB4LmNv
bXBhcmVUbyh0aGlzLm0pID49IDApIHJldHVybiB4Lm1vZCh0aGlzLm0pOwotICAgIGVsc2UgcmV0
dXJuIHg7Ci0gIH0KLSAgZnVuY3Rpb24gY1JldmVydCh4KSB7IHJldHVybiB4OyB9Ci0gIGZ1bmN0
aW9uIGNSZWR1Y2UoeCkgeyB4LmRpdlJlbVRvKHRoaXMubSxudWxsLHgpOyB9Ci0gIGZ1bmN0aW9u
IGNNdWxUbyh4LHkscikgeyB4Lm11bHRpcGx5VG8oeSxyKTsgdGhpcy5yZWR1Y2Uocik7IH0KLSAg
ZnVuY3Rpb24gY1NxclRvKHgscikgeyB4LnNxdWFyZVRvKHIpOyB0aGlzLnJlZHVjZShyKTsgfQot
ICBDbGFzc2ljLnByb3RvdHlwZS5jb252ZXJ0ID0gY0NvbnZlcnQ7Ci0gIENsYXNzaWMucHJvdG90
eXBlLnJldmVydCA9IGNSZXZlcnQ7Ci0gIENsYXNzaWMucHJvdG90eXBlLnJlZHVjZSA9IGNSZWR1
Y2U7Ci0gIENsYXNzaWMucHJvdG90eXBlLm11bFRvID0gY011bFRvOwotICBDbGFzc2ljLnByb3Rv
dHlwZS5zcXJUbyA9IGNTcXJUbzsKLSAgLy8gKHByb3RlY3RlZCkgcmV0dXJuICItMS90aGlzICUg
Ml5EQiI7IHVzZWZ1bCBmb3IgTW9udC4gcmVkdWN0aW9uCi0gIC8vIGp1c3RpZmljYXRpb246Ci0g
IC8vICAgICAgICAgeHkgPT0gMSAobW9kIG0pCi0gIC8vICAgICAgICAgeHkgPSAgMStrbQotICAv
LyAgIHh5KDIteHkpID0gKDEra20pKDEta20pCi0gIC8vIHhbeSgyLXh5KV0gPSAxLWteMm1eMgot
ICAvLyB4W3koMi14eSldID09IDEgKG1vZCBtXjIpCi0gIC8vIGlmIHkgaXMgMS94IG1vZCBtLCB0
aGVuIHkoMi14eSkgaXMgMS94IG1vZCBtXjIKLSAgLy8gc2hvdWxkIHJlZHVjZSB4IGFuZCB5KDIt
eHkpIGJ5IG1eMiBhdCBlYWNoIHN0ZXAgdG8ga2VlcCBzaXplIGJvdW5kZWQuCi0gIC8vIEpTIG11
bHRpcGx5ICJvdmVyZmxvd3MiIGRpZmZlcmVudGx5IGZyb20gQy9DKyssIHNvIGNhcmUgaXMgbmVl
ZGVkIGhlcmUuCi0gIGZ1bmN0aW9uIGJucEludkRpZ2l0KCkgewotICAgIGlmKHRoaXMudCA8IDEp
IHJldHVybiAwOwotICAgIHZhciB4ID0gdGhpc1swXTsKLSAgICBpZigoeCYxKSA9PSAwKSByZXR1
cm4gMDsKLSAgICB2YXIgeSA9IHgmMzsJCS8vIHkgPT0gMS94IG1vZCAyXjIKLSAgICB5ID0gKHkq
KDItKHgmMHhmKSp5KSkmMHhmOwkvLyB5ID09IDEveCBtb2QgMl40Ci0gICAgeSA9ICh5KigyLSh4
JjB4ZmYpKnkpKSYweGZmOwkvLyB5ID09IDEveCBtb2QgMl44Ci0gICAgeSA9ICh5KigyLSgoKHgm
MHhmZmZmKSp5KSYweGZmZmYpKSkmMHhmZmZmOwkvLyB5ID09IDEveCBtb2QgMl4xNgotICAgIC8v
IGxhc3Qgc3RlcCAtIGNhbGN1bGF0ZSBpbnZlcnNlIG1vZCBEViBkaXJlY3RseTsKLSAgICAvLyBh
c3N1bWVzIDE2IDwgREIgPD0gMzIgYW5kIGFzc3VtZXMgYWJpbGl0eSB0byBoYW5kbGUgNDgtYml0
IGludHMKLSAgICB5ID0gKHkqKDIteCp5JXRoaXMuRFYpKSV0aGlzLkRWOwkJLy8geSA9PSAxL3gg
bW9kIDJeZGJpdHMKLSAgICAvLyB3ZSByZWFsbHkgd2FudCB0aGUgbmVnYXRpdmUgaW52ZXJzZSwg
YW5kIC1EViA8IHkgPCBEVgotICAgIHJldHVybiAoeT4wKT90aGlzLkRWLXk6LXk7Ci0gIH0KLSAg
Ly8gTW9udGdvbWVyeSByZWR1Y3Rpb24KLSAgZnVuY3Rpb24gTW9udGdvbWVyeShtKSB7Ci0gICAg
dGhpcy5tID0gbTsKLSAgICB0aGlzLm1wID0gbS5pbnZEaWdpdCgpOwotICAgIHRoaXMubXBsID0g
dGhpcy5tcCYweDdmZmY7Ci0gICAgdGhpcy5tcGggPSB0aGlzLm1wPj4xNTsKLSAgICB0aGlzLnVt
ID0gKDE8PChtLkRCLTE1KSktMTsKLSAgICB0aGlzLm10MiA9IDIqbS50OwotICB9Ci0gIC8vIHhS
IG1vZCBtCi0gIGZ1bmN0aW9uIG1vbnRDb252ZXJ0KHgpIHsKLSAgICB2YXIgciA9IG5iaSgpOwot
ICAgIHguYWJzKCkuZGxTaGlmdFRvKHRoaXMubS50LHIpOwotICAgIHIuZGl2UmVtVG8odGhpcy5t
LG51bGwscik7Ci0gICAgaWYoeC5zIDwgMCAmJiByLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpFUk8p
ID4gMCkgdGhpcy5tLnN1YlRvKHIscik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8geC9SIG1v
ZCBtCi0gIGZ1bmN0aW9uIG1vbnRSZXZlcnQoeCkgewotICAgIHZhciByID0gbmJpKCk7Ci0gICAg
eC5jb3B5VG8ocik7Ci0gICAgdGhpcy5yZWR1Y2Uocik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAg
Ly8geCA9IHgvUiBtb2QgbSAoSEFDIDE0LjMyKQotICBmdW5jdGlvbiBtb250UmVkdWNlKHgpIHsK
LSAgICB3aGlsZSh4LnQgPD0gdGhpcy5tdDIpCS8vIHBhZCB4IHNvIGFtIGhhcyBlbm91Z2ggcm9v
bSBsYXRlcgotICAgICAgeFt4LnQrK10gPSAwOwotICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0aGlz
Lm0udDsgKytpKSB7Ci0gICAgICAvLyBmYXN0ZXIgd2F5IG9mIGNhbGN1bGF0aW5nIHUwID0geFtp
XSptcCBtb2QgRFYKLSAgICAgIHZhciBqID0geFtpXSYweDdmZmY7Ci0gICAgICB2YXIgdTAgPSAo
aip0aGlzLm1wbCsoKChqKnRoaXMubXBoKyh4W2ldPj4xNSkqdGhpcy5tcGwpJnRoaXMudW0pPDwx
NSkpJnguRE07Ci0gICAgICAvLyB1c2UgYW0gdG8gY29tYmluZSB0aGUgbXVsdGlwbHktc2hpZnQt
YWRkIGludG8gb25lIGNhbGwKLSAgICAgIGogPSBpK3RoaXMubS50OwotICAgICAgeFtqXSArPSB0
aGlzLm0uYW0oMCx1MCx4LGksMCx0aGlzLm0udCk7Ci0gICAgICAvLyBwcm9wYWdhdGUgY2FycnkK
LSAgICAgIHdoaWxlKHhbal0gPj0geC5EVikgeyB4W2pdIC09IHguRFY7IHhbKytqXSsrOyB9Ci0g
ICAgfQotICAgIHguY2xhbXAoKTsKLSAgICB4LmRyU2hpZnRUbyh0aGlzLm0udCx4KTsKLSAgICBp
Zih4LmNvbXBhcmVUbyh0aGlzLm0pID49IDApIHguc3ViVG8odGhpcy5tLHgpOwotICB9Ci0gIC8v
IHIgPSAieF4yL1IgbW9kIG0iOyB4ICE9IHIKLSAgZnVuY3Rpb24gbW9udFNxclRvKHgscikgeyB4
LnNxdWFyZVRvKHIpOyB0aGlzLnJlZHVjZShyKTsgfQotICAvLyByID0gInh5L1IgbW9kIG0iOyB4
LHkgIT0gcgotICBmdW5jdGlvbiBtb250TXVsVG8oeCx5LHIpIHsgeC5tdWx0aXBseVRvKHkscik7
IHRoaXMucmVkdWNlKHIpOyB9Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLmNvbnZlcnQgPSBtb250
Q29udmVydDsKLSAgTW9udGdvbWVyeS5wcm90b3R5cGUucmV2ZXJ0ID0gbW9udFJldmVydDsKLSAg
TW9udGdvbWVyeS5wcm90b3R5cGUucmVkdWNlID0gbW9udFJlZHVjZTsKLSAgTW9udGdvbWVyeS5w
cm90b3R5cGUubXVsVG8gPSBtb250TXVsVG87Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLnNxclRv
ID0gbW9udFNxclRvOwotICAvLyAocHJvdGVjdGVkKSB0cnVlIGlmZiB0aGlzIGlzIGV2ZW4KLSAg
ZnVuY3Rpb24gYm5wSXNFdmVuKCkgeyByZXR1cm4gKCh0aGlzLnQ+MCk/KHRoaXNbMF0mMSk6dGhp
cy5zKSA9PSAwOyB9Ci0gIC8vIChwcm90ZWN0ZWQpIHRoaXNeZSwgZSA8IDJeMzIsIGRvaW5nIHNx
ciBhbmQgbXVsIHdpdGggInIiIChIQUMgMTQuNzkpCi0gIGZ1bmN0aW9uIGJucEV4cChlLHopIHsK
LSAgICBpZihlID4gMHhmZmZmZmZmZiB8fCBlIDwgMSkgcmV0dXJuIEJpZ0ludGVnZXIuT05FOwot
ICAgIHZhciByID0gbmJpKCksIHIyID0gbmJpKCksIGcgPSB6LmNvbnZlcnQodGhpcyksIGkgPSBu
Yml0cyhlKS0xOwotICAgIGcuY29weVRvKHIpOwotICAgIHdoaWxlKC0taSA+PSAwKSB7Ci0gICAg
ICB6LnNxclRvKHIscjIpOwotICAgICAgaWYoKGUmKDE8PGkpKSA+IDApIHoubXVsVG8ocjIsZyxy
KTsKLSAgICAgIGVsc2UgeyB2YXIgdCA9IHI7IHIgPSByMjsgcjIgPSB0OyB9Ci0gICAgfQotICAg
IHJldHVybiB6LnJldmVydChyKTsKLSAgfQotICAvLyAocHVibGljKSB0aGlzXmUgJSBtLCAwIDw9
IGUgPCAyXjMyCi0gIGZ1bmN0aW9uIGJuTW9kUG93SW50KGUsbSkgewotICAgIHZhciB6OwotICAg
IGlmKGUgPCAyNTYgfHwgbS5pc0V2ZW4oKSkgeiA9IG5ldyBDbGFzc2ljKG0pOyBlbHNlIHogPSBu
ZXcgTW9udGdvbWVyeShtKTsKLSAgICByZXR1cm4gdGhpcy5leHAoZSx6KTsKLSAgfQotICAvLyBw
cm90ZWN0ZWQKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuY29weVRvID0gYm5wQ29weVRvOwotICBC
aWdJbnRlZ2VyLnByb3RvdHlwZS5mcm9tSW50ID0gYm5wRnJvbUludDsKLSAgQmlnSW50ZWdlci5w
cm90b3R5cGUuZnJvbVN0cmluZyA9IGJucEZyb21TdHJpbmc7Ci0gIEJpZ0ludGVnZXIucHJvdG90
eXBlLmNsYW1wID0gYm5wQ2xhbXA7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRsU2hpZnRUbyA9
IGJucERMU2hpZnRUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZHJTaGlmdFRvID0gYm5wRFJT
aGlmdFRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5sU2hpZnRUbyA9IGJucExTaGlmdFRvOwot
ICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5yU2hpZnRUbyA9IGJucFJTaGlmdFRvOwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5zdWJUbyA9IGJucFN1YlRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5t
dWx0aXBseVRvID0gYm5wTXVsdGlwbHlUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuc3F1YXJl
VG8gPSBibnBTcXVhcmVUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZGl2UmVtVG8gPSBibnBE
aXZSZW1UbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuaW52RGlnaXQgPSBibnBJbnZEaWdpdDsK
LSAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNFdmVuID0gYm5wSXNFdmVuOwotICBCaWdJbnRlZ2Vy
LnByb3RvdHlwZS5leHAgPSBibnBFeHA7Ci0gIC8vIHB1YmxpYwotICBCaWdJbnRlZ2VyLnByb3Rv
dHlwZS50b1N0cmluZyA9IGJuVG9TdHJpbmc7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLm5lZ2F0
ZSA9IGJuTmVnYXRlOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hYnMgPSBibkFiczsKLSAgQmln
SW50ZWdlci5wcm90b3R5cGUuY29tcGFyZVRvID0gYm5Db21wYXJlVG87Ci0gIEJpZ0ludGVnZXIu
cHJvdG90eXBlLmJpdExlbmd0aCA9IGJuQml0TGVuZ3RoOwotICBCaWdJbnRlZ2VyLnByb3RvdHlw
ZS5tb2QgPSBibk1vZDsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUubW9kUG93SW50ID0gYm5Nb2RQ
b3dJbnQ7Ci0gIC8vICJjb25zdGFudHMiCi0gIEJpZ0ludGVnZXIuWkVSTyA9IG5idigwKTsKLSAg
QmlnSW50ZWdlci5PTkUgPSBuYnYoMSk7Ci0gIC8vIGpzYm4yIHN0dWZmCi0gIC8vIChwcm90ZWN0
ZWQpIGNvbnZlcnQgZnJvbSByYWRpeCBzdHJpbmcKLSAgZnVuY3Rpb24gYm5wRnJvbVJhZGl4KHMs
YikgewotICAgIHRoaXMuZnJvbUludCgwKTsKLSAgICBpZihiID09IG51bGwpIGIgPSAxMDsKLSAg
ICB2YXIgY3MgPSB0aGlzLmNodW5rU2l6ZShiKTsKLSAgICB2YXIgZCA9IE1hdGgucG93KGIsY3Mp
LCBtaSA9IGZhbHNlLCBqID0gMCwgdyA9IDA7Ci0gICAgZm9yKHZhciBpID0gMDsgaSA8IHMubGVu
Z3RoOyArK2kpIHsKLSAgICAgIHZhciB4ID0gaW50QXQocyxpKTsKLSAgICAgIGlmKHggPCAwKSB7
Ci0gICAgICAgIGlmKHMuY2hhckF0KGkpID09ICItIiAmJiB0aGlzLnNpZ251bSgpID09IDApIG1p
ID0gdHJ1ZTsKLSAgICAgICAgY29udGludWU7Ci0gICAgICB9Ci0gICAgICB3ID0gYip3K3g7Ci0g
ICAgICBpZigrK2ogPj0gY3MpIHsKLSAgICAgICAgdGhpcy5kTXVsdGlwbHkoZCk7Ci0gICAgICAg
IHRoaXMuZEFkZE9mZnNldCh3LDApOwotICAgICAgICBqID0gMDsKLSAgICAgICAgdyA9IDA7Ci0g
ICAgICB9Ci0gICAgfQotICAgIGlmKGogPiAwKSB7Ci0gICAgICB0aGlzLmRNdWx0aXBseShNYXRo
LnBvdyhiLGopKTsKLSAgICAgIHRoaXMuZEFkZE9mZnNldCh3LDApOwotICAgIH0KLSAgICBpZiht
aSkgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHRoaXMsdGhpcyk7Ci0gIH0KLSAgLy8gKHByb3RlY3Rl
ZCkgcmV0dXJuIHggcy50LiByXnggPCBEVgotICBmdW5jdGlvbiBibnBDaHVua1NpemUocikgeyBy
ZXR1cm4gTWF0aC5mbG9vcihNYXRoLkxOMip0aGlzLkRCL01hdGgubG9nKHIpKTsgfQotICAvLyAo
cHVibGljKSAwIGlmIHRoaXMgPT0gMCwgMSBpZiB0aGlzID4gMAotICBmdW5jdGlvbiBiblNpZ051
bSgpIHsKLSAgICBpZih0aGlzLnMgPCAwKSByZXR1cm4gLTE7Ci0gICAgZWxzZSBpZih0aGlzLnQg
PD0gMCB8fCAodGhpcy50ID09IDEgJiYgdGhpc1swXSA8PSAwKSkgcmV0dXJuIDA7Ci0gICAgZWxz
ZSByZXR1cm4gMTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSB0aGlzICo9IG4sIHRoaXMgPj0gMCwg
MSA8IG4gPCBEVgotICBmdW5jdGlvbiBibnBETXVsdGlwbHkobikgewotICAgIHRoaXNbdGhpcy50
XSA9IHRoaXMuYW0oMCxuLTEsdGhpcywwLDAsdGhpcy50KTsKLSAgICArK3RoaXMudDsKLSAgICB0
aGlzLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgdGhpcyArPSBuIDw8IHcgd29yZHMs
IHRoaXMgPj0gMAotICBmdW5jdGlvbiBibnBEQWRkT2Zmc2V0KG4sdykgewotICAgIGlmKG4gPT0g
MCkgcmV0dXJuOwotICAgIHdoaWxlKHRoaXMudCA8PSB3KSB0aGlzW3RoaXMudCsrXSA9IDA7Ci0g
ICAgdGhpc1t3XSArPSBuOwotICAgIHdoaWxlKHRoaXNbd10gPj0gdGhpcy5EVikgewotICAgICAg
dGhpc1t3XSAtPSB0aGlzLkRWOwotICAgICAgaWYoKyt3ID49IHRoaXMudCkgdGhpc1t0aGlzLnQr
K10gPSAwOwotICAgICAgKyt0aGlzW3ddOwotICAgIH0KLSAgfQotICAvLyAocHJvdGVjdGVkKSBj
b252ZXJ0IHRvIHJhZGl4IHN0cmluZwotICBmdW5jdGlvbiBibnBUb1JhZGl4KGIpIHsKLSAgICBp
ZihiID09IG51bGwpIGIgPSAxMDsKLSAgICBpZih0aGlzLnNpZ251bSgpID09IDAgfHwgYiA8IDIg
fHwgYiA+IDM2KSByZXR1cm4gIjAiOwotICAgIHZhciBjcyA9IHRoaXMuY2h1bmtTaXplKGIpOwot
ICAgIHZhciBhID0gTWF0aC5wb3coYixjcyk7Ci0gICAgdmFyIGQgPSBuYnYoYSksIHkgPSBuYmko
KSwgeiA9IG5iaSgpLCByID0gIiI7Ci0gICAgdGhpcy5kaXZSZW1UbyhkLHkseik7Ci0gICAgd2hp
bGUoeS5zaWdudW0oKSA+IDApIHsKLSAgICAgIHIgPSAoYSt6LmludFZhbHVlKCkpLnRvU3RyaW5n
KGIpLnN1YnN0cigxKSArIHI7Ci0gICAgICB5LmRpdlJlbVRvKGQseSx6KTsKLSAgICB9Ci0gICAg
cmV0dXJuIHouaW50VmFsdWUoKS50b1N0cmluZyhiKSArIHI7Ci0gIH0KLSAgLy8gKHB1YmxpYykg
cmV0dXJuIHZhbHVlIGFzIGludGVnZXIKLSAgZnVuY3Rpb24gYm5JbnRWYWx1ZSgpIHsKLSAgICBp
Zih0aGlzLnMgPCAwKSB7Ci0gICAgICBpZih0aGlzLnQgPT0gMSkgcmV0dXJuIHRoaXNbMF0tdGhp
cy5EVjsKLSAgICAgIGVsc2UgaWYodGhpcy50ID09IDApIHJldHVybiAtMTsKLSAgICB9Ci0gICAg
ZWxzZSBpZih0aGlzLnQgPT0gMSkgcmV0dXJuIHRoaXNbMF07Ci0gICAgZWxzZSBpZih0aGlzLnQg
PT0gMCkgcmV0dXJuIDA7Ci0gICAgLy8gYXNzdW1lcyAxNiA8IERCIDwgMzIKLSAgICByZXR1cm4g
KCh0aGlzWzFdJigoMTw8KDMyLXRoaXMuREIpKS0xKSk8PHRoaXMuREIpfHRoaXNbMF07Ci0gIH0K
LSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMgKyBhCi0gIGZ1bmN0aW9uIGJucEFkZFRvKGEscikg
ewotICAgIHZhciBpID0gMCwgYyA9IDAsIG0gPSBNYXRoLm1pbihhLnQsdGhpcy50KTsKLSAgICB3
aGlsZShpIDwgbSkgewotICAgICAgYyArPSB0aGlzW2ldK2FbaV07Ci0gICAgICByW2krK10gPSBj
JnRoaXMuRE07Ci0gICAgICBjID4+PSB0aGlzLkRCOwotICAgIH0KLSAgICBpZihhLnQgPCB0aGlz
LnQpIHsKLSAgICAgIGMgKz0gYS5zOwotICAgICAgd2hpbGUoaSA8IHRoaXMudCkgewotICAgICAg
ICBjICs9IHRoaXNbaV07Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+
Pj0gdGhpcy5EQjsKLSAgICAgIH0KLSAgICAgIGMgKz0gdGhpcy5zOwotICAgIH0KLSAgICBlbHNl
IHsKLSAgICAgIGMgKz0gdGhpcy5zOwotICAgICAgd2hpbGUoaSA8IGEudCkgewotICAgICAgICBj
ICs9IGFbaV07Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0gdGhp
cy5EQjsKLSAgICAgIH0KLSAgICAgIGMgKz0gYS5zOwotICAgIH0KLSAgICByLnMgPSAoYzwwKT8t
MTowOwotICAgIGlmKGMgPiAwKSByW2krK10gPSBjOwotICAgIGVsc2UgaWYoYyA8IC0xKSByW2kr
K10gPSB0aGlzLkRWK2M7Ci0gICAgci50ID0gaTsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgQmln
SW50ZWdlci5wcm90b3R5cGUuZnJvbVJhZGl4ID0gYm5wRnJvbVJhZGl4OwotICBCaWdJbnRlZ2Vy
LnByb3RvdHlwZS5jaHVua1NpemUgPSBibnBDaHVua1NpemU7Ci0gIEJpZ0ludGVnZXIucHJvdG90
eXBlLnNpZ251bSA9IGJuU2lnTnVtOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kTXVsdGlwbHkg
PSBibnBETXVsdGlwbHk7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRBZGRPZmZzZXQgPSBibnBE
QWRkT2Zmc2V0OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS50b1JhZGl4ID0gYm5wVG9SYWRpeDsK
LSAgQmlnSW50ZWdlci5wcm90b3R5cGUuaW50VmFsdWUgPSBibkludFZhbHVlOwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5hZGRUbyA9IGJucEFkZFRvOwotICAvLz09PT09PT0gZW5kIGpzYm4gPT09
PT09PQotICAvLyBFbXNjcmlwdGVuIHdyYXBwZXIKLSAgdmFyIFdyYXBwZXIgPSB7Ci0gICAgYWJz
OiBmdW5jdGlvbihsLCBoKSB7Ci0gICAgICB2YXIgeCA9IG5ldyBnb29nLm1hdGguTG9uZyhsLCBo
KTsKLSAgICAgIHZhciByZXQ7Ci0gICAgICBpZiAoeC5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAg
cmV0ID0geC5uZWdhdGUoKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldCA9IHg7Ci0gICAg
ICB9Ci0gICAgICBIRUFQMzJbdGVtcERvdWJsZVB0cj4+Ml0gPSByZXQubG93XzsKLSAgICAgIEhF
QVAzMlt0ZW1wRG91YmxlUHRyKzQ+PjJdID0gcmV0LmhpZ2hfOwotICAgIH0sCi0gICAgZW5zdXJl
VGVtcHM6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKFdyYXBwZXIuZW5zdXJlZFRlbXBzKSByZXR1
cm47Ci0gICAgICBXcmFwcGVyLmVuc3VyZWRUZW1wcyA9IHRydWU7Ci0gICAgICBXcmFwcGVyLnR3
bzMyID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIFdyYXBwZXIudHdvMzIuZnJvbVN0cmluZygn
NDI5NDk2NzI5NicsIDEwKTsKLSAgICAgIFdyYXBwZXIudHdvNjQgPSBuZXcgQmlnSW50ZWdlcigp
OwotICAgICAgV3JhcHBlci50d282NC5mcm9tU3RyaW5nKCcxODQ0Njc0NDA3MzcwOTU1MTYxNics
IDEwKTsKLSAgICAgIFdyYXBwZXIudGVtcDEgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgV3Jh
cHBlci50ZW1wMiA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgfSwKLSAgICBsaDJiaWdudW06IGZ1
bmN0aW9uKGwsIGgpIHsKLSAgICAgIHZhciBhID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGEu
ZnJvbVN0cmluZyhoLnRvU3RyaW5nKCksIDEwKTsKLSAgICAgIHZhciBiID0gbmV3IEJpZ0ludGVn
ZXIoKTsKLSAgICAgIGEubXVsdGlwbHlUbyhXcmFwcGVyLnR3bzMyLCBiKTsKLSAgICAgIHZhciBj
ID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGMuZnJvbVN0cmluZyhsLnRvU3RyaW5nKCksIDEw
KTsKLSAgICAgIHZhciBkID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGMuYWRkVG8oYiwgZCk7
Ci0gICAgICByZXR1cm4gZDsKLSAgICB9LAotICAgIHN0cmluZ2lmeTogZnVuY3Rpb24obCwgaCwg
dW5zaWduZWQpIHsKLSAgICAgIHZhciByZXQgPSBuZXcgZ29vZy5tYXRoLkxvbmcobCwgaCkudG9T
dHJpbmcoKTsKLSAgICAgIGlmICh1bnNpZ25lZCAmJiByZXRbMF0gPT0gJy0nKSB7Ci0gICAgICAg
IC8vIHVuc2lnbiBzbG93bHkgdXNpbmcganNibiBiaWdudW1zCi0gICAgICAgIFdyYXBwZXIuZW5z
dXJlVGVtcHMoKTsKLSAgICAgICAgdmFyIGJpZ251bSA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAg
ICAgIGJpZ251bS5mcm9tU3RyaW5nKHJldCwgMTApOwotICAgICAgICByZXQgPSBuZXcgQmlnSW50
ZWdlcigpOwotICAgICAgICBXcmFwcGVyLnR3bzY0LmFkZFRvKGJpZ251bSwgcmV0KTsKLSAgICAg
ICAgcmV0ID0gcmV0LnRvU3RyaW5nKDEwKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0g
ICAgfSwKLSAgICBmcm9tU3RyaW5nOiBmdW5jdGlvbihzdHIsIGJhc2UsIG1pbiwgbWF4LCB1bnNp
Z25lZCkgewotICAgICAgV3JhcHBlci5lbnN1cmVUZW1wcygpOwotICAgICAgdmFyIGJpZ251bSA9
IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBiaWdudW0uZnJvbVN0cmluZyhzdHIsIGJhc2UpOwot
ICAgICAgdmFyIGJpZ21pbiA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBiaWdtaW4uZnJvbVN0
cmluZyhtaW4sIDEwKTsKLSAgICAgIHZhciBiaWdtYXggPSBuZXcgQmlnSW50ZWdlcigpOwotICAg
ICAgYmlnbWF4LmZyb21TdHJpbmcobWF4LCAxMCk7Ci0gICAgICBpZiAodW5zaWduZWQgJiYgYmln
bnVtLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpFUk8pIDwgMCkgewotICAgICAgICB2YXIgdGVtcCA9
IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICAgIGJpZ251bS5hZGRUbyhXcmFwcGVyLnR3bzY0LCB0
ZW1wKTsKLSAgICAgICAgYmlnbnVtID0gdGVtcDsKLSAgICAgIH0KLSAgICAgIHZhciBlcnJvciA9
IGZhbHNlOwotICAgICAgaWYgKGJpZ251bS5jb21wYXJlVG8oYmlnbWluKSA8IDApIHsKLSAgICAg
ICAgYmlnbnVtID0gYmlnbWluOwotICAgICAgICBlcnJvciA9IHRydWU7Ci0gICAgICB9IGVsc2Ug
aWYgKGJpZ251bS5jb21wYXJlVG8oYmlnbWF4KSA+IDApIHsKLSAgICAgICAgYmlnbnVtID0gYmln
bWF4OwotICAgICAgICBlcnJvciA9IHRydWU7Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0ID0gZ29v
Zy5tYXRoLkxvbmcuZnJvbVN0cmluZyhiaWdudW0udG9TdHJpbmcoKSk7IC8vIG1pbi1tYXggY2hl
Y2tzIHNob3VsZCBoYXZlIGNsYW1wZWQgdGhpcyB0byBhIHJhbmdlIGdvb2cubWF0aC5Mb25nIGNh
biBoYW5kbGUgd2VsbAotICAgICAgSEVBUDMyW3RlbXBEb3VibGVQdHI+PjJdID0gcmV0Lmxvd187
Ci0gICAgICBIRUFQMzJbdGVtcERvdWJsZVB0cis0Pj4yXSA9IHJldC5oaWdoXzsKLSAgICAgIGlm
IChlcnJvcikgdGhyb3cgJ3JhbmdlIGVycm9yJzsKLSAgICB9Ci0gIH07Ci0gIHJldHVybiBXcmFw
cGVyOwotfSkoKTsKLS8vPT09PT09PSBlbmQgY2xvc3VyZSBpNjQgY29kZSA9PT09PT09Ci0vLyA9
PT0gQXV0by1nZW5lcmF0ZWQgcG9zdGFtYmxlIHNldHVwIGVudHJ5IHN0dWZmID09PQotZnVuY3Rp
b24gRXhpdFN0YXR1cyhzdGF0dXMpIHsKLSAgdGhpcy5uYW1lID0gIkV4aXRTdGF0dXMiOwotICB0
aGlzLm1lc3NhZ2UgPSAiUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggZXhpdCgiICsgc3RhdHVzICsg
IikiOwotICB0aGlzLnN0YXR1cyA9IHN0YXR1czsKLX07Ci1FeGl0U3RhdHVzLnByb3RvdHlwZSA9
IG5ldyBFcnJvcigpOwotRXhpdFN0YXR1cy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBFeGl0U3Rh
dHVzOwotdmFyIGluaXRpYWxTdGFja1RvcDsKLXZhciBwcmVsb2FkU3RhcnRUaW1lID0gbnVsbDsK
LU1vZHVsZVsnY2FsbE1haW4nXSA9IE1vZHVsZS5jYWxsTWFpbiA9IGZ1bmN0aW9uIGNhbGxNYWlu
KGFyZ3MpIHsKLSAgYXNzZXJ0KHJ1bkRlcGVuZGVuY2llcyA9PSAwLCAnY2Fubm90IGNhbGwgbWFp
biB3aGVuIGFzeW5jIGRlcGVuZGVuY2llcyByZW1haW4hIChsaXN0ZW4gb24gX19BVE1BSU5fXykn
KTsKLSAgYXNzZXJ0KF9fQVRQUkVSVU5fXy5sZW5ndGggPT0gMCwgJ2Nhbm5vdCBjYWxsIG1haW4g
d2hlbiBwcmVSdW4gZnVuY3Rpb25zIHJlbWFpbiB0byBiZSBjYWxsZWQnKTsKLSAgYXJncyA9IGFy
Z3MgfHwgW107Ci0gIGlmIChFTlZJUk9OTUVOVF9JU19XRUIgJiYgcHJlbG9hZFN0YXJ0VGltZSAh
PT0gbnVsbCkgewotICAgIC8vTW9kdWxlLnByaW50RXJyKCdwcmVsb2FkIHRpbWU6ICcgKyAoRGF0
ZS5ub3coKSAtIHByZWxvYWRTdGFydFRpbWUpICsgJyBtcycpOwotICB9Ci0gIGVuc3VyZUluaXRS
dW50aW1lKCk7Ci0gIHZhciBhcmdjID0gYXJncy5sZW5ndGgrMTsKLSAgZnVuY3Rpb24gcGFkKCkg
ewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNC0xOyBpKyspIHsKLSAgICAgIGFyZ3YucHVzaCgw
KTsKLSAgICB9Ci0gIH0KLSAgdmFyIGFyZ3YgPSBbYWxsb2NhdGUoaW50QXJyYXlGcm9tU3RyaW5n
KCIvYmluL3RoaXMucHJvZ3JhbSIpLCAnaTgnLCBBTExPQ19OT1JNQUwpIF07Ci0gIHBhZCgpOwot
ICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ2MtMTsgaSA9IGkgKyAxKSB7Ci0gICAgYXJndi5wdXNo
KGFsbG9jYXRlKGludEFycmF5RnJvbVN0cmluZyhhcmdzW2ldKSwgJ2k4JywgQUxMT0NfTk9STUFM
KSk7Ci0gICAgcGFkKCk7Ci0gIH0KLSAgYXJndi5wdXNoKDApOwotICBhcmd2ID0gYWxsb2NhdGUo
YXJndiwgJ2kzMicsIEFMTE9DX05PUk1BTCk7Ci0gIGluaXRpYWxTdGFja1RvcCA9IFNUQUNLVE9Q
OwotICB0cnkgewotICAgIHZhciByZXQgPSBNb2R1bGVbJ19tYWluJ10oYXJnYywgYXJndiwgMCk7
Ci0gICAgLy8gaWYgd2UncmUgbm90IHJ1bm5pbmcgYW4gZXZlbnRlZCBtYWluIGxvb3AsIGl0J3Mg
dGltZSB0byBleGl0Ci0gICAgaWYgKCFNb2R1bGVbJ25vRXhpdFJ1bnRpbWUnXSkgewotICAgICAg
ZXhpdChyZXQpOwotICAgIH0KLSAgfQotICBjYXRjaChlKSB7Ci0gICAgaWYgKGUgaW5zdGFuY2Vv
ZiBFeGl0U3RhdHVzKSB7Ci0gICAgICAvLyBleGl0KCkgdGhyb3dzIHRoaXMgb25jZSBpdCdzIGRv
bmUgdG8gbWFrZSBzdXJlIGV4ZWN1dGlvbgotICAgICAgLy8gaGFzIGJlZW4gc3RvcHBlZCBjb21w
bGV0ZWx5Ci0gICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChlID09ICdTaW11bGF0ZUluZmlu
aXRlTG9vcCcpIHsKLSAgICAgIC8vIHJ1bm5pbmcgYW4gZXZlbnRlZCBtYWluIGxvb3AsIGRvbid0
IGltbWVkaWF0ZWx5IGV4aXQKLSAgICAgIE1vZHVsZVsnbm9FeGl0UnVudGltZSddID0gdHJ1ZTsK
LSAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgewotICAgICAgdGhyb3cgZTsKLSAgICB9Ci0gIH0K
LX0KLWZ1bmN0aW9uIHJ1bihhcmdzKSB7Ci0gIGFyZ3MgPSBhcmdzIHx8IE1vZHVsZVsnYXJndW1l
bnRzJ107Ci0gIGlmIChwcmVsb2FkU3RhcnRUaW1lID09PSBudWxsKSBwcmVsb2FkU3RhcnRUaW1l
ID0gRGF0ZS5ub3coKTsKLSAgaWYgKHJ1bkRlcGVuZGVuY2llcyA+IDApIHsKLSAgICAvL01vZHVs
ZS5wcmludEVycigncnVuKCkgY2FsbGVkLCBidXQgZGVwZW5kZW5jaWVzIHJlbWFpbiwgc28gbm90
IHJ1bm5pbmcnKTsKLSAgICByZXR1cm47Ci0gIH0KLSAgcHJlUnVuKCk7Ci0gIGlmIChydW5EZXBl
bmRlbmNpZXMgPiAwKSB7Ci0gICAgLy8gYSBwcmVSdW4gYWRkZWQgYSBkZXBlbmRlbmN5LCBydW4g
d2lsbCBiZSBjYWxsZWQgbGF0ZXIKLSAgICByZXR1cm47Ci0gIH0KLSAgZnVuY3Rpb24gZG9SdW4o
KSB7Ci0gICAgZW5zdXJlSW5pdFJ1bnRpbWUoKTsKLSAgICBwcmVNYWluKCk7Ci0gICAgY2FsbGVk
UnVuID0gdHJ1ZTsKLSAgICBpZiAoTW9kdWxlWydfbWFpbiddICYmIHNob3VsZFJ1bk5vdykgewot
ICAgICAgTW9kdWxlWydjYWxsTWFpbiddKGFyZ3MpOwotICAgIH0KLSAgICBwb3N0UnVuKCk7Ci0g
IH0KLSAgaWYgKE1vZHVsZVsnc2V0U3RhdHVzJ10pIHsKLSAgICBNb2R1bGVbJ3NldFN0YXR1cydd
KCdSdW5uaW5nLi4uJyk7Ci0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10oJycpOwotICAg
ICAgfSwgMSk7Ci0gICAgICBpZiAoIUFCT1JUKSBkb1J1bigpOwotICAgIH0sIDEpOwotICB9IGVs
c2UgewotICAgIGRvUnVuKCk7Ci0gIH0KLX0KLU1vZHVsZVsncnVuJ10gPSBNb2R1bGUucnVuID0g
cnVuOwotZnVuY3Rpb24gZXhpdChzdGF0dXMpIHsKLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RB
VFVTID0gc3RhdHVzOwotICBTVEFDS1RPUCA9IGluaXRpYWxTdGFja1RvcDsKLSAgLy8gZXhpdCB0
aGUgcnVudGltZQotICBleGl0UnVudGltZSgpOwotICAvLyB0aHJvdyBhbiBleGNlcHRpb24gdG8g
aGFsdCB0aGUgY3VycmVudCBleGVjdXRpb24KLSAgdGhyb3cgbmV3IEV4aXRTdGF0dXMoc3RhdHVz
KTsKLX0KLU1vZHVsZVsnZXhpdCddID0gTW9kdWxlLmV4aXQgPSBleGl0OwotZnVuY3Rpb24gYWJv
cnQodGV4dCkgewotICBpZiAodGV4dCkgewotICAgIE1vZHVsZS5wcmludCh0ZXh0KTsKLSAgICBN
b2R1bGUucHJpbnRFcnIodGV4dCk7Ci0gIH0KLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RBVFVT
ID0gMTsKLSAgdGhyb3cgJ2Fib3J0KCkgYXQgJyArIChuZXcgRXJyb3IoKS5zdGFjayk7Ci19Ci1N
b2R1bGVbJ2Fib3J0J10gPSBNb2R1bGUuYWJvcnQgPSBhYm9ydDsKLS8vIHt7UFJFX1JVTl9BRERJ
VElPTlN9fQotaWYgKE1vZHVsZVsncHJlSW5pdCddKSB7Ci0gIGlmICh0eXBlb2YgTW9kdWxlWydw
cmVJbml0J10gPT0gJ2Z1bmN0aW9uJykgTW9kdWxlWydwcmVJbml0J10gPSBbTW9kdWxlWydwcmVJ
bml0J11dOwotICB3aGlsZSAoTW9kdWxlWydwcmVJbml0J10ubGVuZ3RoID4gMCkgewotICAgIE1v
ZHVsZVsncHJlSW5pdCddLnBvcCgpKCk7Ci0gIH0KLX0KLS8vIHNob3VsZFJ1bk5vdyByZWZlcnMg
dG8gY2FsbGluZyBtYWluKCksIG5vdCBydW4oKS4KLXZhciBzaG91bGRSdW5Ob3cgPSB0cnVlOwot
aWYgKE1vZHVsZVsnbm9Jbml0aWFsUnVuJ10pIHsKLSAgc2hvdWxkUnVuTm93ID0gZmFsc2U7Ci19
Ci1ydW4oKTsKLS8vIHt7UE9TVF9SVU5fQURESVRJT05TfX0KLS8vIHt7TU9EVUxFX0FERElUSU9O
U319CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWFkZC1ub3QtbnVtYmVy
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctYWRkLW5v
dC1udW1iZXIuanMJKHJldmlzaW9uIDE2MjkxNCkKKysrIExheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9kZmctYWRkLW5vdC1udW1iZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2IEBA
CisvLyBUaGlzIHRlc3Qgd29uJ3QgZ2V0IGludG8gdGhlIEZUTCBjdXJyZW50bHksIHNpbmNlIHRo
ZSBmb28oKSBmdW5jdGlvbiBqdXN0IGV4aXRzIGEgbG90LgorLy9AIG5vRlRMUnVuTGF5b3V0VGVz
dAorCiBkZXNjcmlwdGlvbigKICJUZXN0cyB0aGF0IGFkZGluZyB0aGluZ3MgdGhhdCBhcmVuJ3Qg
bnVtYmVycyB1c2luZyArKyBkb2VzIG5vdCBjcmFzaCBvciBnZW5lcmF0ZSBib2d1cyBjb2RlLiIK
ICk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvbGFyZ2UtZXhwcmVzc2lvbnMu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2xhcmdlLWV4cHJl
c3Npb25zLmpzCShyZXZpc2lvbiAxNjI5MTQpCisrKyBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVz
dHMvbGFyZ2UtZXhwcmVzc2lvbnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDUgKzMwLDUgQEAg
ZnVuY3Rpb24gcmVwZWF0ZWRTdHJpbmcodmFsdWUsIGNvdW50KQogCiBzaG91bGRCZSgnZXZhbChy
ZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMCkpJywgJ3JlcGVhdGVkU3RyaW5n
KCJhIiwgMTAwKScpOwogc2hvdWxkQmUoJ2V2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJB
IiwgIisiLCAxMDAwKSknLCAncmVwZWF0ZWRTdHJpbmcoImEiLCAxMDAwKScpOwotc2hvdWxkQmUo
J2V2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMCkpJywgJ3JlcGVh
dGVkU3RyaW5nKCJhIiwgMTAwMDApJyk7CitzaG91bGRUaHJvdygnZXZhbChyZXBlYXRlZEV4cHJl
c3Npb24oImxldHRlckEiLCAiKyIsIDEwMDAwKSknKTsKIHNob3VsZFRocm93KCdldmFsKHJlcGVh
dGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDAwKSknKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222468</attachid>
            <date>2014-01-28 11:22:39 -0800</date>
            <delta_ts>2014-01-28 14:51:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127763-20140128112232.patch</filename>
            <type>text/plain</type>
            <size>1634233</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkyMSBA
QAorMjAxNC0wMS0yNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIE1lcmdlIHRoZSBqc0NTdGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6Cisg
ICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6
aXNJbnQ3KToKKyAgICAgICAgKEpTQzo6aXNJbnQxMSk6CisgICAgICAgIChKU0M6OlBhaXJQb3N0
SW5kZXg6OlBhaXJQb3N0SW5kZXgpOgorICAgICAgICAoSlNDOjpQYWlyUG9zdEluZGV4OjpvcGVy
YXRvciBpbnQpOgorICAgICAgICAoSlNDOjpQYWlyUHJlSW5kZXg6OlBhaXJQcmVJbmRleCk6Cisg
ICAgICAgIChKU0M6OlBhaXJQcmVJbmRleDo6b3BlcmF0b3IgaW50KToKKyAgICAgICAgKEpTQzo6
QVJNNjRBc3NlbWJsZXI6Om1lbVBhaXJPZmZzZXRTaGlmdCk6CisgICAgICAgIChKU0M6OkFSTTY0
QXNzZW1ibGVyOjphZGQpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bGRwKToKKyAg
ICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OnN0cCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNz
ZW1ibGVyOjpzdWIpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFN0b3JlUmVn
aXN0ZXJQYWlyUG9zdEluZGV4KToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmxvYWRT
dG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KToKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3Nl
bWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmFkZCk6CisgICAgICAgIChK
U0M6OkFSTXY3QXNzZW1ibGVyOjpwb3ApOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6
cHVzaCk6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpBUk1JbnN0cnVjdGlvbkZvcm1h
dHRlcjo6dHdvV29yZE9wMTZJbW0xNik6CisgICAgICAgICogYXNzZW1ibGVyL0Fic3RyYWN0TWFj
cm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTGlua0J1ZmZlci5jcHA6CisgICAg
ICAgIChKU0M6OnNob3VsZFNob3dEaXNhc3NlbWJseUZvcik6CisgICAgICAgIChKU0M6OkxpbmtC
dWZmZXI6OmZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseSk6CisgICAgICAgICogYXNzZW1ibGVy
L0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZW50cnlwb2ludCk6Cisg
ICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyOjpzdG9yZVB0cik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6YWRkNjQpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpwb3BQYWlyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6cHVzaFBhaXIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmFk
ZDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6cG9wUGFpcik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnB1c2hQYWlyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk12Nzo6dGVzdDMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJDb2RlUmVmLmg6CisgICAgICAgIChKU0M6OlJldHVybkFkZHJlc3NQdHI6OmR1bXAp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVQdHI6Om9wZXJhdG9yIFVuc3BlY2lm
aWVkQm9vbFR5cGUqKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpvcGVy
YXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKik6CisgICAgICAgICogYXNzZW1ibGVyL01heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmg6IEFkZGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6dW5saW5rKToKKyAgICAg
ICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZv
OjpDYWxsTGlua0luZm8pOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcDoK
KyAgICAgICAgKEpTQzo6Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQpOgorICAgICAg
ICAoSlNDOjpDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgIChKU0M6OkNhbGxM
aW5rU3RhdHVzOjpjb21wdXRlREZHU3RhdHVzZXMpOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxM
aW5rU3RhdHVzLmg6CisgICAgICAgIChKU0M6OkNhbGxMaW5rU3RhdHVzOjptYWtlQ2xvc3VyZUNh
bGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6ZHVtcEFzc3VtaW5nSklUVHlwZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpDb2RlQmxvY2spOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmdldFN0dWJJbmZvTWFwKToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjphZGRTdHViSW5mbyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZE
RkdDb21waWxlcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Y2hlY2tJZk9wdGltaXphdGlv
blRocmVzaG9sZFJlYWNoZWQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnN0YWNrUG9pbnRl
ck9mZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6c2V0SklUQ29kZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6aml0Q29k
ZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3BlY2lhbEZhc3RDYXNlUHJvZmlsZUZvckJ5
dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpoYXNFeGl0U2l0ZSk6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6bGl2ZW5lc3NBbmFseXNpcyk6CisgICAgICAgICogYnl0
ZWNvZGUvQ29kZU9yaWdpbi5jcHA6CisgICAgICAgIChKU0M6OkNvZGVPcmlnaW46OmlzQXBwcm94
aW1hdGVseUVxdWFsVG8pOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2luOjphcHByb3hpbWF0ZUhh
c2gpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVPcmlnaW4uaDoKKyAgICAgICAgKEpTQzo6Q29k
ZU9yaWdpbjo6Q29kZU9yaWdpbik6CisgICAgICAgIChKU0M6OkNvZGVPcmlnaW46OmRlbGV0ZWRN
YXJrZXIpOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoOjpoYXNoKToK
KyAgICAgICAgKEpTQzo6Q29kZU9yaWdpbkFwcHJveGltYXRlSGFzaDo6ZXF1YWwpOgorICAgICAg
ICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0
UHJvZmlsZTo6YWRkKToKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0UHJvZmlsZTo6aGFzRXhpdFNp
dGUpOgorICAgICAgICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmg6CisgICAgICAgIChKU0M6
OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6RnJlcXVlbnRFeGl0U2l0ZSk6CisgICAgICAgIChKU0M6
OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChKU0M6OkRGRzo6
RnJlcXVlbnRFeGl0U2l0ZTo6c3Vic3VtZXMpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50
RXhpdFNpdGU6Omhhc2gpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50RXhpdFNpdGU6Ompp
dFR5cGUpOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50RXhpdFNpdGU6OndpdGhKSVRUeXBl
KToKKyAgICAgICAgKEpTQzo6REZHOjpRdWVyeWFibGVFeGl0UHJvZmlsZTo6aGFzRXhpdFNpdGUp
OgorICAgICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmg6CisgICAgICAgICogYnl0ZWNvZGUvRXhp
dGluZ0pJVFR5cGUuaDogQWRkZWQuCisgICAgICAgIChKU0M6OmV4aXRpbmdKSVRUeXBlRm9yKToK
KyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0
QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUpOgorICAgICAgICAoSlNDOjpHZXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yKToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJ
bmZvKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogYnl0
ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwOgorICAgICAg
ICAoSlNDOjpQcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludDo6ZmlyZUludGVy
bmFsKToKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6UHV0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUpOgorICAgICAgICAoSlNDOjpQdXRCeUlkU3Rh
dHVzOjpjb21wdXRlRm9yKToKKyAgICAgICAgKEpTQzo6UHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
clN0dWJJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmg6CisgICAgICAg
ICogYnl0ZWNvZGUvU3RydWN0dXJlU2V0Lmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNldDo6
U3RydWN0dXJlU2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU2V0OjphZGQpOgorICAgICAg
ICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAgICAgICogYnl0ZWNvZGUvVmFs
dWVSZWNvdmVyeS5oOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5Ojp3aXRoTG9jYWxzT2Zm
c2V0KToKKyAgICAgICAgKiBieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaDoKKyAgICAgICAgKEpT
Qzo6VmlydHVhbFJlZ2lzdGVyOjpvZmZzZXRJbkJ5dGVzKToKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlckNhbGxGcmFtZS5jcHA6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6QXJyYXlNb2RlOjpyZWZpbmUpOgorICAgICAgICAqIGRmZy9ERkdB
cnJheU1vZGUuaDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjphZGRDYWxsKToKKyAgICAgICAgKEpTQzo6REZH
OjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZUlubGluaW5nKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlR2V0QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OnBhcnNlQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZSk6
CisgICAgICAgICogZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkNGR1NpbXBsaWZpY2F0aW9uUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RG
R0NTRVBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDU0VQaGFzZTo6aW52YWxpZGF0aW9u
UG9pbnRFbGltaW5hdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6Q1NFUGhhc2U6OnBlcmZvcm1O
b2RlQ1NFKToKKyAgICAgICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMu
aDoKKyAgICAgICAgKEpTQzo6REZHOjppbmxpbmVGdW5jdGlvbkZvckNhbGxDYXBhYmlsaXR5TGV2
ZWwpOgorICAgICAgICAoSlNDOjpERkc6OmlubGluZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGxDYXBh
YmlsaXR5TGV2ZWwpOgorICAgICAgICAoSlNDOjpERkc6OmlubGluZUZ1bmN0aW9uRm9yQ29uc3Ry
dWN0Q2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKEpTQzo6REZHOjppbmxpbmVGdW5jdGlvbkZv
ckNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZnL0RGR0NvbW1vbi5oOgorICAgICAgICAq
IGRmZy9ERkdDb21waWxhdGlvbk1vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjppc0ZUTCk6Cisg
ICAgICAgICogZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUlt
cGwpOgorICAgICAgICAoSlNDOjpERkc6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdEcml2
ZXIuaDoKKyAgICAgICAgKiBkZmcvREZHRmFpbGVkRmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpGYWlsZWRGaW5hbGl6ZXI6OmNvZGVTaXplKToKKyAgICAgICAgKiBkZmcvREZHRmFp
bGVkRmluYWxpemVyLmg6CisgICAgICAgICogZGZnL0RGR0ZpbmFsaXplci5oOgorICAgICAgICAq
IGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpm
aXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwU2V0TG9jYWxz
SW5CbG9jayk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBVbnR5cGVkU2V0
TG9jYWxzSW5CbG9jayk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4RWRnZSk6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6aW5zZXJ0U3RvcmVCYXJyaWVyKToKKyAg
ICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXhJbnRFZGdlKToKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjppbmplY3RJbnQzMlRvRG91YmxlTm9kZSk6CisgICAgICAgIChKU0M6
OkRGRzo6Rml4dXBQaGFzZTo6YXR0ZW1wdFRvTWFrZUdldEFycmF5TGVuZ3RoKToKKyAgICAgICAg
KEpTQzo6REZHOjpGaXh1cFBoYXNlOjphZGRQaGFudG9tc0lmTmVjZXNzYXJ5KToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjppc0xpdmVJbkJ5
dGVjb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZnJhbWVSZWdpc3RlckNvdW50KToK
KyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6c3RhY2tQb2ludGVyT2Zmc2V0KToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKiBkZmcvREZHSklUQ29kZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6SklUQ29kZTo6c2V0T3B0aW1pemF0aW9uVGhyZXNob2xkQmFzZWRPbkNvbXBp
bGF0aW9uUmVzdWx0KToKKyAgICAgICAgKiBkZmcvREZHSklUQ29kZS5oOgorICAgICAgICAqIGRm
Zy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNv
bXBpbGVFbnRyeSk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNvbXBpbGVFeGNl
cHRpb25IYW5kbGVycyk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmxpbmspOgor
ICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpjb21waWxlKToKKyAgICAgICAgKEpTQzo6
REZHOjpKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHSklU
Q29tcGlsZXIuaDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6Y3VycmVudEpTQ2Fs
bEluZGV4KToKKyAgICAgICAgKiBkZmcvREZHSklURmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpKSVRGaW5hbGl6ZXI6OmNvZGVTaXplKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRG
aW5hbGl6ZXI6OmZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRGaW5hbGl6ZXI6OmZp
bmFsaXplRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpERkc6OkpJVEZpbmFsaXplcjo6ZmluYWxp
emVDb21tb24pOgorICAgICAgICAqIGRmZy9ERkdKSVRGaW5hbGl6ZXIuaDoKKyAgICAgICAgKiBk
ZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmlzU2VtYW50aWNhbGx5U2tp
cHBhYmxlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpkdW1wTm9kZUZsYWdzKToKKyAgICAgICAgKiBkZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5h
bHlzaXNQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSQXZhaWxhYmlsaXR5QW5hbHlz
aXNQaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHT1NSRW50cnkuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OnByZXBhcmVPU1JFbnRyeSk6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5cG9p
bnRDcmVhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFbnRyeXBvaW50Q3Jl
YXRpb25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdC5oOgorICAgICAgICAo
SlNDOjpERkc6Ok9TUkV4aXQ6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKToKKyAg
ICAgICAgKiBkZmcvREZHT1NSRXhpdEJhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4
aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3cpOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0QmFzZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4aXRCYXNlOjpj
b25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZSk6CisgICAgICAgICogZGZnL0RGR09TUkV4
aXRDb21waWxlci5jcHA6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAg
ICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
Ok9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0
Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAgICAoSlNDOjpERkc6OmFkanVzdEFuZEp1bXBUb1Rh
cmdldCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9E
RkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpwcm9maWxlckNvbXBpbGF0aW9uS2luZEZv
ck1vZGUpOgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OlBsYW4pOgorICAgICAgICAoSlNDOjpE
Rkc6OlBsYW46OnJlcG9ydENvbXBpbGVUaW1lcyk6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6
Y29tcGlsZUluVGhyZWFkKToKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJl
YWRJbXBsKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5oOgorICAgICAgICAqIGRmZy9ERkdTU0FM
b3dlcmluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTU0FMb3dlcmluZ1BoYXNlOjpo
YW5kbGVOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpTU0FMb3dlcmluZ1BoYXNlOjpsb3dlckJv
dW5kc0NoZWNrKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3VycmVudEJsb2NrKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6cHJlcGFyZUpJVENvZGVGb3JUaWVyVXApOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheSk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckZs
b2F0VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVBcml0aE1vZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUZyYW1lT2Zmc2V0KToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlQXJndW1lbnRTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVUYWdTbG90KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbGVlRnJhbWVQYXlsb2FkU2xvdCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUFyZ3VtZW50VGFnU2xvdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3Qp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsZWVGcmFtZUNhbGxlckZy
YW1lKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVGllclVwQ2hlY2tJ
bmplY3Rpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6VGllclVwQ2hlY2tJbmplY3Rp
b25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHVmFsaWRhdGUuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlZhbGlkYXRlOjp2YWxpZGF0ZSk6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxERkdXb3JrbGlzdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCk6CisgICAgICAg
IChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6
OmV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwpOgorICAgICAgICAoSlNDOjpERkc6OmVu
c3VyZUdsb2JhbFdvcmtsaXN0Rm9yKToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAg
ICAgICAgKiBkaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHA6CisgICAgICAgIChKU0M6
OkFSTTY0RGlzYXNzZW1ibGVyOjpBNjRET3Bjb2RlOjphcHBlbmRSZWdpc3Rlck5hbWUpOgorICAg
ICAgICAoSlNDOjpBUk02NERpc2Fzc2VtYmxlcjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVy
UGFpcjo6b3BOYW1lKToKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2NERPcGNv
ZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OmZvcm1hdCk6CisgICAgICAgICogZGlzYXNzZW1ibGVy
L0FSTTY0L0E2NERPcGNvZGUuaDoKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2
NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OnJ0Mik6CisgICAgICAgIChKU0M6OkFSTTY0
RGlzYXNzZW1ibGVyOjpBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyOjppbW1lZGlhdGU3
KToKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2NERPcGNvZGVMb2FkU3RvcmVS
ZWdpc3RlclBhaXI6Om9mZnNldE1vZGUpOgorICAgICAgICAoSlNDOjpBUk02NERpc2Fzc2VtYmxl
cjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpcjo6bEJpdCk6CisgICAgICAgICogZnRs
L0ZUTEFiYnJldmlhdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6RlRMOjphcnJheVR5cGUpOgorICAg
ICAgICAoSlNDOjpGVEw6OmFkZFRhcmdldERlcGVuZGVudEZ1bmN0aW9uQXR0cik6CisgICAgICAg
ICogZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6SW5kZXhlZEFi
c3RyYWN0SGVhcDo6SW5kZXhlZEFic3RyYWN0SGVhcCk6CisgICAgICAgIChKU0M6OkZUTDo6SW5k
ZXhlZEFic3RyYWN0SGVhcDo6YmFzZUluZGV4KToKKyAgICAgICAgKEpTQzo6RlRMOjpJbmRleGVk
QWJzdHJhY3RIZWFwOjppbml0aWFsaXplKToKKyAgICAgICAgKEpTQzo6RlRMOjpOdW1iZXJlZEFi
c3RyYWN0SGVhcDo6TnVtYmVyZWRBYnN0cmFjdEhlYXApOgorICAgICAgICAoSlNDOjpGVEw6OkFi
c29sdXRlQWJzdHJhY3RIZWFwOjpBYnNvbHV0ZUFic3RyYWN0SGVhcCk6CisgICAgICAgICogZnRs
L0ZUTEFic3RyYWN0SGVhcC5oOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpBYnN0
cmFjdEhlYXBSZXBvc2l0b3J5KToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpGVEw6OkF2YWlsYWJsZVJlY292ZXJ5OjpkdW1wKToKKyAgICAgICAgKiBm
dGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6QXZh
aWxhYmxlUmVjb3Zlcnk6OkF2YWlsYWJsZVJlY292ZXJ5KToKKyAgICAgICAgKEpTQzo6RlRMOjpB
dmFpbGFibGVSZWNvdmVyeTo6bm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVj
b3Zlcnk6OmZvcm1hdCk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVjb3Zlcnk6Om9w
Y29kZSk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxhYmxlUmVjb3Zlcnk6OmxlZnQpOgorICAg
ICAgICAoSlNDOjpGVEw6OkF2YWlsYWJsZVJlY292ZXJ5OjpyaWdodCk6CisgICAgICAgICogZnRs
L0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6dmVyYm9zZUNhcGFiaWxp
dGllcyk6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TENvbW1vblZhbHVlcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Q29tbW9uVmFsdWVzOjpDb21t
b25WYWx1ZXMpOgorICAgICAgICAqIGZ0bC9GVExDb21tb25WYWx1ZXMuaDoKKyAgICAgICAgKiBm
dGwvRlRMQ29tcGlsZS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6bW1BbGxvY2F0ZUNvZGVTZWN0
aW9uKToKKyAgICAgICAgKEpTQzo6RlRMOjpmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMpOgor
ICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExFeGl0VmFsdWUu
Y3BwOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6ZHVtcEluQ29udGV4dCk6CisgICAg
ICAgICogZnRsL0ZUTEV4aXRWYWx1ZS5oOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6
cmVjb3ZlcnkpOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6aXNSZWNvdmVyeSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVlOjpsZWZ0UmVjb3ZlcnlBcmd1bWVudCk6CisgICAg
ICAgIChKU0M6OkZUTDo6RXhpdFZhbHVlOjpyaWdodFJlY292ZXJ5QXJndW1lbnQpOgorICAgICAg
ICAoSlNDOjpGVEw6OkV4aXRWYWx1ZTo6cmVjb3ZlcnlGb3JtYXQpOgorICAgICAgICAoSlNDOjpG
VEw6OkV4aXRWYWx1ZTo6cmVjb3ZlcnlPcGNvZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkV4aXRW
YWx1ZTo6d2l0aFZpcnR1YWxSZWdpc3Rlcik6CisgICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVl
Ojp2YWx1ZUZvcm1hdCk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6c2l6ZU9mQ2FsbCk6CisgICAgICAgICogZnRsL0ZUTElubGluZUNh
Y2hlU2l6ZS5oOgorICAgICAgICAqIGZ0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5Lmg6CisgICAg
ICAgICogZnRsL0ZUTEpJVENvZGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENvZGU6Omlu
aXRpYWxpemVBcml0eUNoZWNrRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29k
ZTo6aW5pdGlhbGl6ZUFkZHJlc3NGb3JDYWxsKToKKyAgICAgICAgKEpTQzo6RlRMOjpKSVRDb2Rl
OjphZGRyZXNzRm9yQ2FsbCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6ZXhlY3V0YWJs
ZUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6ZGF0YUFkZHJl
c3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6b2Zmc2V0T2YpOgorICAg
ICAgICAoSlNDOjpGVEw6OkpJVENvZGU6OnNpemUpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENv
ZGU6OmNvbnRhaW5zKToKKyAgICAgICAgKiBmdGwvRlRMSklUQ29kZS5oOgorICAgICAgICAqIGZ0
bC9GVExKSVRGaW5hbGl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJVEZpbmFsaXplcjo6
Y29kZVNpemUpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5j
dGlvbik6CisgICAgICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGZ0bC9G
VExKU0NhbGwuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpKU0NhbGw6OkpTQ2FsbCk6
CisgICAgICAgIChKU0M6OkZUTDo6SlNDYWxsOjplbWl0KToKKyAgICAgICAgKEpTQzo6RlRMOjpK
U0NhbGw6OmxpbmspOgorICAgICAgICAqIGZ0bC9GVExKU0NhbGwuaDogQWRkZWQuCisgICAgICAg
IChKU0M6OkZUTDo6SlNDYWxsOjpzdGFja21hcElEKToKKyAgICAgICAgKEpTQzo6RlRMOjpKU0Nh
bGw6Om9wZXJhdG9yPCk6CisgICAgICAgICogZnRsL0ZUTExpbmsuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OmxpbmspOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06Omxvd2VyKToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2Vy
REZHVG9MTFZNOjpjb21waWxlQXJpdGhBZGRPclN1Yik6CisgICAgICAgIChKU0M6OkZUTDo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVBcml0aE11bCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVBcml0aERpdik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVBcml0aE1vZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVBcml0aFNpbik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmNvbXBpbGVBcml0aENvcyk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVBcml0aFNxcnQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQXJpdGhOZWdhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQ2hlY2tFeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
Y29tcGlsZUdldEJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlUHV0QnlJZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVH
ZXRBcnJheUxlbmd0aCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVQ
dXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOZXdB
cnJheVdpdGhTaXplKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZVRvU3RyaW5nKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU1h
a2VSb3BlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVN0cmlu
Z0NoYXJBdCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTdHJp
bmdDaGFyQ29kZUF0KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZUdldENhbGxlZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVH
ZXRTY29wZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDYWxs
T3JDb25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxl
U3dpdGNoKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNoZWNr
QXJndW1lbnRzTm90Q3JlYXRlZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmNvbXBpbGVDb3VudEV4ZWN1dGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xM
Vk06OnR5cGVkQXJyYXlMZW5ndGgpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZN
Ojpib29saWZ5KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29udGlndW91
c1B1dEJ5VmFsT3V0T2ZCb3VuZHMpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZN
OjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxh
dGVTdHJpbmdPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpzcGVj
dWxhdGVTdHJpbmdPclN0cmluZ09iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OnNwZWN1bGF0ZVN0cmluZ09iamVjdEZvckNlbGwpOgorICAgICAgICAoSlNDOjpGVEw6
Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JTdHJ1Y3R1cmUpOgorICAg
ICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjYWxsQ2hlY2spOgorICAgICAgICAoSlND
OjpGVEw6Okxvd2VyREZHVG9MTFZNOjphcHBlbmRPU1JFeGl0KToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6YnVpbGRFeGl0QXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y2FsbFN0YWNrbWFwKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dl
ckRGR1RvTExWTTo6YWRkRXhpdEFyZ3VtZW50Rm9yTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6
TG93ZXJERkdUb0xMVk06OmRvZXNLaWxsKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1Rv
TExWTTo6YWRkQXZhaWxhYmxlUmVjb3ZlcnkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZH
VG9MTFZNOjpwYXlsb2FkRm9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
dGFnRm9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6YWRkcmVzc0Zvcik6
CisgICAgICAgICogZnRsL0ZUTE9TUkVudHJ5LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpwcmVw
YXJlT1NSRW50cnkpOgorICAgICAgICAqIGZ0bC9GVExPU1JFeGl0Lmg6CisgICAgICAgIChKU0M6
OkZUTDo6T1NSRXhpdDo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUpOgorICAgICAg
ICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBp
bGVTdHViKToKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6
T3V0cHV0Ojpkb3VibGVTaW4pOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlQ29z
KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OmRvdWJsZVNxcnQpOgorICAgICAgICAoSlND
OjpGVEw6Ok91dHB1dDo6cHRyVG9JbnQpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YXNj
cmliZVJhbmdlKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6Om5vbk5lZ2F0aXZlMzIpOgor
ICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6bG9hZDMyTm9uTmVnYXRpdmUpOgorICAgICAgICAq
IGZ0bC9GVExSZWNvdmVyeU9wY29kZS5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpwcmludElu
dGVybmFsKToKKyAgICAgICAgKiBmdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaDogQWRkZWQuCisgICAg
ICAgICogZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6
RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpkdW1wKToKKyAgICAgICAgKiBmdGwvRlRMUmVnaXN0ZXJB
dE9mZnNldC5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpS
ZWdpc3RlckF0T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0Ojpv
cGVyYXRvciEpOgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lzdGVyQXRPZmZzZXQ6Omdwcik6Cisg
ICAgICAgIChKU0M6OkZUTDo6UmVnaXN0ZXJBdE9mZnNldDo6b2Zmc2V0KToKKyAgICAgICAgKEpT
Qzo6RlRMOjpSZWdpc3RlckF0T2Zmc2V0OjpvcGVyYXRvcj09KToKKyAgICAgICAgKEpTQzo6RlRM
OjpSZWdpc3RlckF0T2Zmc2V0OjpvcGVyYXRvcjwpOgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lz
dGVyQXRPZmZzZXQ6OmdldEdQUik6CisgICAgICAgICogZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6c3RvcmVDb2RlT3JpZ2luKToKKyAgICAgICAgKEpTQzo6RlRM
OjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBmdGwvRlRMU2xvd1BhdGhDYWxsLmg6CisgICAg
ICAgICogZnRsL0ZUTFN0YWNrTWFwcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6U3RhY2tNYXBz
OjpSZWNvcmQ6OnBhcnNlKToKKyAgICAgICAgKiBmdGwvRlRMU3RhY2tNYXBzLmg6CisgICAgICAg
ICogZnRsL0ZUTFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpTdGF0ZTo6U3RhdGUpOgor
ICAgICAgICAqIGZ0bC9GVExTdGF0ZS5oOgorICAgICAgICAqIGZ0bC9GVExUaHVua3MuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6Om9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpGVEw6OnNsb3dQYXRoQ2FsbFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKiBm
dGwvRlRMVGh1bmtzLmg6CisgICAgICAgICogZnRsL0ZUTFVud2luZEluZm8uY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6RlRMOjpVbndpbmRJbmZvOjpVbndpbmRJbmZvKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpVbndpbmRJbmZvOjp+VW53aW5kSW5mbyk6CisgICAgICAgIChKU0M6OkZUTDo6VW53
aW5kSW5mbzo6cGFyc2UpOgorICAgICAgICAoSlNDOjpGVEw6OlVud2luZEluZm86OmR1bXApOgor
ICAgICAgICAoSlNDOjpGVEw6OlVud2luZEluZm86OmZpbmQpOgorICAgICAgICAoSlNDOjpGVEw6
OlVud2luZEluZm86OmluZGV4T2YpOgorICAgICAgICAqIGZ0bC9GVExVbndpbmRJbmZvLmg6IEFk
ZGVkLgorICAgICAgICAqIGZ0bC9GVExWYWx1ZVJhbmdlLmNwcDogQWRkZWQuCisgICAgICAgIChK
U0M6OkZUTDo6VmFsdWVSYW5nZTo6ZGVjb3JhdGVJbnN0cnVjdGlvbik6CisgICAgICAgICogZnRs
L0ZUTFZhbHVlUmFuZ2UuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6VmFsdWVSYW5nZTo6
VmFsdWVSYW5nZSk6CisgICAgICAgIChKU0M6OkZUTDo6VmFsdWVSYW5nZTo6YmVnaW4pOgorICAg
ICAgICAoSlNDOjpGVEw6OlZhbHVlUmFuZ2U6OmVuZCk6CisgICAgICAgICogaGVhcC9Db25zZXJ2
YXRpdmVSb290cy5jcHA6CisgICAgICAgIChKU0M6OkNvbnNlcnZhdGl2ZVJvb3RzOjpnZW5lcmlj
QWRkU3Bhbik6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6
bWFya1Jvb3RzKToKKyAgICAgICAgKEpTQzo6SGVhcDo6Y29sbGVjdElmTmVjZXNzYXJ5T3JEZWZl
cik6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgIChKU0M6OkhlYXA6OmlzRGVmZXJy
ZWQpOgorICAgICAgICAqIGhlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcDoKKyAgICAgICAgKEpT
Qzo6TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGhyZWFkKToKKyAgICAgICAgKEpT
Qzo6TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21PdGhlclRocmVhZCk6CisgICAgICAgIChKU0M6
Ok1hY2hpbmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgICogaGVh
cC9NYWNoaW5lU3RhY2tNYXJrZXIuaDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUu
Y3BwOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnRvcE9mRnJhbWVJbnRlcm5hbCk6CisgICAg
ICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6
dG9wT2ZGcmFtZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAg
ICAgICAoSlNDOjpzaXplRnJhbWVGb3JWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6dW53aW5kQ2Fs
bEZyYW1lKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnVud2luZCk6CisgICAgICAgIChK
U0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4
ZWN1dGVDYWxsKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3Qp
OgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJlcGFyZUZvclJlcGVhdENhbGwpOgorICAg
ICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6CisgICAgICAgIChKU0M6Ok5hdGl2ZUNh
bGxGcmFtZVRyYWNlcjo6TmF0aXZlQ2FsbEZyYW1lVHJhY2VyKToKKyAgICAgICAgKiBpbnRlcnBy
ZXRlci9KU1N0YWNrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6SlNTdGFjayk6CisgICAg
ICAgIChKU0M6OkpTU3RhY2s6On5KU1N0YWNrKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6Z3Jv
d1Nsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6Z2F0aGVyQ29uc2VydmF0aXZlUm9v
dHMpOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpzYW5pdGl6ZVN0YWNrKToKKyAgICAgICAgKEpT
Qzo6SlNTdGFjazo6cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KToKKyAgICAgICAgKEpTQzo6SlNTdGFj
azo6c2V0UmVzZXJ2ZWRab25lU2l6ZSk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6Omxvd0FkZHJl
c3MpOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpoaWdoQWRkcmVzcyk6CisgICAgICAgIChKU0M6
OkpTU3RhY2s6OmNvbW1pdHRlZEJ5dGVDb3VudCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSlNT
dGFjay5oOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpjb250YWluc0FkZHJlc3MpOgorICAgICAg
ICAoSlNDOjpKU1N0YWNrOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6
OkpTU3RhY2s6OnNhbml0aXplU3RhY2spOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjppbml0aWFs
aXplVGhyZWFkaW5nKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6YmFzZU9mU3RhY2spOgorICAg
ICAgICAoSlNDOjpKU1N0YWNrOjpsb3dBZGRyZXNzKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6
cmVzZXJ2YXRpb25Ub3ApOgorICAgICAgICAqIGludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmg6
CisgICAgICAgIChKU0M6OkpTU3RhY2s6OmVuc3VyZUNhcGFjaXR5Rm9yKToKKyAgICAgICAgKEpT
Qzo6SlNTdGFjazo6dG9wT2ZGcmFtZUZvcik6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OnRvcE9m
U3RhY2spOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpzaHJpbmspOgorICAgICAgICAoSlNDOjpK
U1N0YWNrOjpncm93KToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6c2V0U3RhY2tMaW1pdCk6Cisg
ICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpQ
cm90b0NhbGxGcmFtZTo6aW5pdCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJh
bWUuaDoKKyAgICAgICAgKEpTQzo6UHJvdG9DYWxsRnJhbWU6OnNldFBhZGRlZEFyZ0NvdW50KToK
KyAgICAgICAgKiBqaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKEpTQzo6QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6OkFyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzKToKKyAgICAgICAgKEpTQzo6QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6On5B
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcyk6CisgICAgICAgIChKU0M6OkFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzOjpyZXR1cm5QQ3NGb3IpOgorICAgICAgICAoSlNDOjpBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rczo6cmV0dXJuUENGb3IpOgorICAgICAgICAqIGppdC9Bcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcy5oOiBBZGRlZC4KKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmNw
cDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5QbGFjZSk6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0QXJndW1lbnRDb3VudFNh
bmUpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNz
ZW1ibHlIZWxwZXJzOjpjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCk6CisgICAgICAgIChKU0M6
OkFzc2VtYmx5SGVscGVyczo6cHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSk6CisgICAgICAgIChK
U0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdEZ1bmN0aW9uUHJvbG9ndWUpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmVtaXRGdW5jdGlvbkVwaWxvZ3VlKToKKyAgICAgICAgKEpTQzo6
QXNzZW1ibHlIZWxwZXJzOjplbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZSk6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFB1dFBheWxvYWRUb0NhbGxGcmFt
ZUhlYWRlckJlZm9yZVByb2xvZ3VlKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpl
bWl0UHV0VGFnVG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZSk6CisgICAgICAgIChKU0M6
OkFzc2VtYmx5SGVscGVyczo6dGFnRm9yKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpwYXlsb2FkRm9yKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRU
YWdzSW5QbGFjZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0QXJn
dW1lbnRDb3VudFNhbmUpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAg
KEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50cyk6CisgICAgICAgICogaml0L0V4ZWN1
dGFibGVBbGxvY2F0b3IuaDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjayk6CisgICAgICAgIChKU0M6OkpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUp
OgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlRXhjZXB0aW9uSGFuZGxlcnMpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZvcik6CisgICAgICAgIChKU0M6
OkpJVDo6c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgICogaml0L0pJVENhbGwuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVMb2FkVmFy
YXJncyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUNhbGxFdmFsKToKKyAgICAgICAgKEpT
Qzo6SklUOjpjb21waWxlQ2FsbEV2YWxTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpJVDo6Y29t
cGlsZU9wQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKToK
KyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUNsb3N1cmVDYWxsKToKKyAgICAgICAg
KiBqaXQvSklUQ2FsbDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3JldCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29t
cGlsZUNhbGxFdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlQ2FsbEV2YWxTbG93Q2Fz
ZSk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbCk6CisgICAgICAgIChKU0M6OkpJ
VDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKToKKyAgICAgICAgKiBqaXQvSklUQ29kZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVENvZGU6OmV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0
aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZik6CisgICAgICAgIChKU0M6OkpJVENvZGVXaXRo
Q29kZVJlZjo6fkpJVENvZGVXaXRoQ29kZVJlZik6CisgICAgICAgIChKU0M6OkpJVENvZGVXaXRo
Q29kZVJlZjo6ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkpJVENv
ZGVXaXRoQ29kZVJlZjo6ZGF0YUFkZHJlc3NBdE9mZnNldCk6CisgICAgICAgIChKU0M6OkpJVENv
ZGVXaXRoQ29kZVJlZjo6b2Zmc2V0T2YpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0aENvZGVS
ZWY6OnNpemUpOgorICAgICAgICAoSlNDOjpKSVRDb2RlV2l0aENvZGVSZWY6OmNvbnRhaW5zKToK
KyAgICAgICAgKEpTQzo6RGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZSk6CisgICAgICAgIChK
U0M6OkRpcmVjdEpJVENvZGU6On5EaXJlY3RKSVRDb2RlKToKKyAgICAgICAgKEpTQzo6RGlyZWN0
SklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVSZWYpOgorICAgICAgICAoSlNDOjpEaXJlY3RKSVRDb2Rl
OjplbnN1cmVXcmFwcGVycyk6CisgICAgICAgIChKU0M6OkRpcmVjdEpJVENvZGU6OmFkZHJlc3NG
b3JDYWxsKToKKyAgICAgICAgKEpTQzo6TmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZSk6Cisg
ICAgICAgIChKU0M6Ok5hdGl2ZUpJVENvZGU6On5OYXRpdmVKSVRDb2RlKToKKyAgICAgICAgKEpT
Qzo6TmF0aXZlSklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVSZWYpOgorICAgICAgICAoSlNDOjpOYXRp
dmVKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCk6CisgICAgICAgICogaml0L0pJVENvZGUuaDoKKyAg
ICAgICAgKiBqaXQvSklURXhjZXB0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmdlbmVyaWNVbndp
bmQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9yKToKKyAgICAgICAgKiBq
aXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUR2V0QnlJZEdl
bmVyYXRvcjo6SklUR2V0QnlJZEdlbmVyYXRvcik6CisgICAgICAgICogaml0L0pJVElubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0TmFrZWRDYWxsKToKKyAgICAgICAgKEpTQzo6SklU
OjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uTm9FeGNl
cHRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZW5kKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3JldCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfY2F0Y2gpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbG9v
cF9oaW50KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQpOgorICAg
ICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZh
dGVDb21waWxlQ1RJTmF0aXZlQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lbmQp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfY2F0Y2gpOgorICAgICAgICAqIGppdC9KSVRP
cGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAo
SlNDOjpvcGVyYXRpb25MaW5rRm9yKToKKyAgICAgICAgKEpTQzo6b3BlcmF0aW9uVmlydHVhbEZv
cik6CisgICAgICAgIChKU0M6Om9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbEZvcik6CisgICAgICAg
ICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQpOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpK
SVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV9pZCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQpOgorICAgICAgICAqIGppdC9KSVRT
dHViUm91dGluZS5oOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAgICAqIGppdC9K
SVRTdHVic01TVkM2NC5hc206CisgICAgICAgICogaml0L0pJVFN0dWJzWDg2Lmg6CisgICAgICAg
ICogaml0L0pJVFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpTmF0aXZl
VGFpbENhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6Omhvc3RGdW5jdGlvblN0dWIpOgor
ICAgICAgICAqIGppdC9KSVRUaHVua3MuaDoKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJQcmVzZXJ2
YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OnJlZ2lzdGVy
c1RvUHJlc2VydmUpOgorICAgICAgICAoSlNDOjpyZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCk6
CisgICAgICAgIChKU0M6OmdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKToKKyAg
ICAgICAgKEpTQzo6Z2VuZXJhdGVSZWdpc3RlclJlc3RvcmF0aW9uKToKKyAgICAgICAgKEpTQzo6
cmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvUmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAqIGppdC9S
ZXBhdGNoLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVQcm90b0NoYWluQWNjZXNzU3R1Yik6
CisgICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OnRyeUJ1aWxk
R2V0QnlJRExpc3QpOgorICAgICAgICAoSlNDOjpzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKToK
KyAgICAgICAgKEpTQzo6d3JpdGVCYXJyaWVyKToKKyAgICAgICAgKEpTQzo6ZW1pdFB1dFJlcGxh
Y2VTdHViKToKKyAgICAgICAgKEpTQzo6ZW1pdFB1dFRyYW5zaXRpb25TdHViKToKKyAgICAgICAg
KEpTQzo6dHJ5UmVwYXRjaEluKToKKyAgICAgICAgKEpTQzo6bGlua1Nsb3dGb3IpOgorICAgICAg
ICAoSlNDOjpsaW5rRm9yKToKKyAgICAgICAgKEpTQzo6bGlua0Nsb3N1cmVDYWxsKToKKyAgICAg
ICAgKiBqaXQvUmVwYXRjaC5oOgorICAgICAgICAqIGppdC9TcGVjaWFsaXplZFRodW5rSklULmg6
CisgICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OlNwZWNpYWxpemVkVGh1bmtKSVQp
OgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRodW5rSklUOjpyZXR1cm5KU1ZhbHVlKToKKyAg
ICAgICAgKEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmV0dXJuRG91YmxlKToKKyAgICAgICAg
KEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmV0dXJuSW50MzIpOgorICAgICAgICAoSlNDOjpT
cGVjaWFsaXplZFRodW5rSklUOjpyZXR1cm5KU0NlbGwpOgorICAgICAgICAqIGppdC9UaHVua0dl
bmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjp0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1Bh
dGhHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpzbG93UGF0aEZvcik6CisgICAgICAgIChKU0M6
OmxpbmtGb3JUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmxpbmtDYWxsVGh1bmtHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpsaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OmxpbmtDbG9zdXJlQ2FsbEZvclRodW5rR2VuZXJhdG9yKToKKyAgICAg
ICAgKEpTQzo6bGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjps
aW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6dmlydHVhbEZvclRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6dmlydHVhbENh
bGxUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDb25zdHJ1Y3RUaHVua0dl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVu
a0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVz
UmVnc1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bmF0aXZlRm9yR2VuZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6bmF0aXZlVGFpbENhbGxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjph
cml0eUZpeHVwKToKKyAgICAgICAgKEpTQzo6Y2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6Y2hhckF0VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpmcm9tQ2hh
ckNvZGVUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OnNxcnRUaHVua0dlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OmZsb29yVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpjZWls
VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpyb3VuZFRodW5rR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6ZXhwVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpsb2dUaHVua0dl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OmFic1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpT
Qzo6cG93VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjppbXVsVGh1bmtHZW5lcmF0b3Ip
OgorICAgICAgICAoSlNDOjphcnJheUl0ZXJhdG9yTmV4dFRodW5rR2VuZXJhdG9yKToKKyAgICAg
ICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgIChKU0M6OmxpbmtUaHVua0dlbmVy
YXRvckZvcik6CisgICAgICAgIChKU0M6OmxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yRm9y
KToKKyAgICAgICAgKEpTQzo6dmlydHVhbFRodW5rR2VuZXJhdG9yRm9yKToKKyAgICAgICAgKiBs
bGludC9MTEludENMb29wLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkNMb29wOjppbml0aWFs
aXplKToKKyAgICAgICAgKiBsbGludC9MTEludENMb29wLmg6CisgICAgICAgICogbGxpbnQvTExJ
bnREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25z
KToKKyAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9pbnQuY3BwOgorICAgICAgICAoSlNDOjpM
TEludDo6c2V0RnVuY3Rpb25FbnRyeXBvaW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldEV2
YWxFbnRyeXBvaW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldFByb2dyYW1FbnRyeXBvaW50
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZvcik6CisgICAgICAg
ICogbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcDoKKyAgICAgICAgKiBsbGludC9MTElu
dE9wY29kZS5oOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6TExJbnQ6
OmVudHJ5T1NSKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNldFVwQ2FsbCk6CisgICAgICAgIChK
U0M6OkxMSW50OjpsbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvcik6CisgICAgICAgIChK
U0M6OkxMSW50OjpsbGludF9zdGFja19jaGVja19hdF92bV9lbnRyeSk6CisgICAgICAgICogbGxp
bnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKiBsbGludC9MTEludFRodW5rcy5jcHA6Cisg
ICAgICAgIChKU0M6OmNhbGxUb0phdmFTY3JpcHQpOgorICAgICAgICAoSlNDOjpjYWxsVG9OYXRp
dmVGdW5jdGlvbik6CisgICAgICAgICogbGxpbnQvTExJbnRUaHVua3MuaDoKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q0xvb3BSZWdpc3Rlcjo6b3BlcmF0b3IgRXhl
Y1N0YXRlKik6CisgICAgICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIEluc3RydWN0
aW9uKik6CisgICAgICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFZNKik6CisgICAg
ICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFByb3RvQ2FsbEZyYW1lKik6CisgICAg
ICAgIChKU0M6OkNMb29wUmVnaXN0ZXI6Om9wZXJhdG9yIFJlZ2lzdGVyKik6CisgICAgICAgIChK
U0M6OkNMb29wOjpleGVjdXRlKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206Cisg
ICAgICAgICogbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcDoKKyAgICAgICAgKGluaXRpYWxp
emVBbmRHZXRKU0NMTFZNQVBJKToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybS5yYjoKKyAgICAg
ICAgKiBvZmZsaW5lYXNtL2FybTY0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vY2xvb3AucmI6
CisgICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS94ODYucmI6CisgICAgICAgICogcGFyc2VyL1BhcnNlckVycm9yLmg6CisgICAgICAgIChK
U0M6OlBhcnNlckVycm9yOjp0b0Vycm9yT2JqZWN0KToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlckNvbXBpbGF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZXI6OkNvbXBpbGF0aW9u
OjphZGREZXNjcmlwdGlvbik6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlv
bi5oOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcDoKKyAg
ICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJD
b21waWxhdGlvbktpbmQuaDoKKyAgICAgICAgKiBydW50aW1lL0FyaXR5Q2hlY2tNb2RlLmg6IEFk
ZGVkLgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpT
Qzo6c2V0dXBBcml0eUNoZWNrRGF0YSk6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToK
KyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAoSlNDOjpDb21t
b25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JIYW5k
bGluZ1Njb3BlLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkVycm9ySGFuZGxpbmdTY29wZTo6
RXJyb3JIYW5kbGluZ1Njb3BlKToKKyAgICAgICAgKEpTQzo6RXJyb3JIYW5kbGluZ1Njb3BlOjp+
RXJyb3JIYW5kbGluZ1Njb3BlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySGFuZGxpbmdTY29w
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAg
ICAgICAoSlNDOjp0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcik6CisgICAgICAgIChKU0M6OnRocm93
VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbik6CisgICAgICAgICogcnVudGltZS9FeGVjdXRh
YmxlLmNwcDoKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUpOgor
ICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQmFzZTo6ZHVtcCk6CisgICAgICAgICogcnVudGltZS9F
eGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVCYXNlOjplbnRyeXBvaW50Rm9y
KToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6Om9mZnNldE9mSklUQ29kZVdpdGhBcml0
eUNoZWNrRm9yKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKToKKyAg
ICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxMb2Nrcyk6CisgICAgICAg
IChKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzOjp+RHJvcEFsbExvY2tzKToKKyAgICAgICAgKiBy
dW50aW1lL0pTTG9jay5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoK
KyAgICAgICAgKEpTQzo6cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgIChKU0M6
Ok9wdGlvbnM6OmluaXRpYWxpemUpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjpzZXRPcHRpb24p
OgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Nb2RlLmg6IEFkZGVkLgorICAgICAgICAqIHJ1bnRpbWUvU3RhY2tBbGln
bm1lbnQuaDoKKyAgICAgICAgKEpTQzo6cm91bmRBcmd1bWVudENvdW50VG9BbGlnbkZyYW1lKToK
KyAgICAgICAgKEpTQzo6cm91bmRMb2NhbFJlZ2lzdGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZz
ZXQpOgorICAgICAgICAoSlNDOjpsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVycyk6CisgICAgICAg
ICogcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcDoKKyAgICAgICAgKEpTQzo6U3Ry
aW5nUmVjdXJzaW9uQ2hlY2tlcjo6dGhyb3dTdGFja092ZXJmbG93RXJyb3IpOgorICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpkdW1wKToK
KyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAg
ICAgKEpTQzo6Y2xlYW5Xb3JrbGlzdCk6CisgICAgICAgIChKU0M6OlZNOjp+Vk0pOgorICAgICAg
ICAoSlNDOjpWTTo6Z2V0SG9zdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6cHJlcGFyZVRvRGlz
Y2FyZENvZGVGb3IpOgorICAgICAgICAoSlNDOjpWTTo6cHJlcGFyZVRvRGlzY2FyZENvZGUpOgor
ICAgICAgICAoSlNDOjpWTTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAoSlNDOjpWTTo6dXBk
YXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKToKKyAgICAgICAgKEpTQzo6bG9nU2Fu
aXRpemVTdGFjayk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6
cmVzZXJ2ZWRab25lU2l6ZSk6CisgICAgICAgIChKU0M6OlZNOjpsYXN0U3RhY2tUb3ApOgorICAg
ICAgICAoSlNDOjpWTTo6c2V0TGFzdFN0YWNrVG9wKToKKyAgICAgICAgKEpTQzo6Vk06OnNjcmF0
Y2hCdWZmZXJGb3JTaXplKToKKyAgICAgICAgKEpTQzo6Vk06OnNldFN0YWNrTGltaXQpOgorICAg
ICAgICAoSlNDOjpzYW5pdGl6ZVN0YWNrRm9yVk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk1FbnRy
eVNjb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUpOgor
ICAgICAgICAoSlNDOjpWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUpOgorICAgICAgICAqIHJ1
bnRpbWUvVk1FbnRyeVNjb3BlLmg6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2FkZC1jb25zdGFu
dC1vdmVyZmxvdy1yZWNvdmVyeS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanM6IEFk
ZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvYWRkLWludDUyLWxh
cmdlLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2FkZC1vdmVyZmxvdy1yZWNvdmVyeS5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9hZGQtc21hbGwtY29uc3Rh
bnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KiB0ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9lbXB0eS1mdW5jdGlvbi5qczogQWRkZWQuCisgICAgICAgIChm
b28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDMyLXRvLWRvdWJsZS5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9leGl0LWFm
dGVyLWludDUyLXRvLWRvdWJsZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChtYWtlV2VpcmRPYmplY3QpOgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9leGl0LWFmdGVyLWxsdm0tZm9sZHMtbGFyZ2UtaW50LWNvbnN0YW50LmpzOiBBZGRlZC4K
KyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2V4aXQtZnJvbS1mdGwtd2l0
aC1hcml0eS1jaGVjay1mYWlsLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChi
YXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtYXJpdGhjb3MuanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc2luLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLXB1
dGJ5aWQuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVj
dC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQt
YnktaWQtdGhyb3ctZnJvbS1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorICAgICAgICAobWFrZVdpdGhHZXR0ZXIucmV0dXJuKToKKyAgICAg
ICAgKG1ha2VXaXRoR2V0dGVyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRo
cm93LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS10aGF0LWRv
ZXMtbm90LWV4aXQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKG1ha2VXaXRo
R2V0dGVyLnJldHVybik6CisgICAgICAgIChtYWtlV2l0aEdldHRlcik6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gt
b3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKG1ha2VX
aXRoR2V0dGVyLnJldHVybik6CisgICAgICAgIChtYWtlV2l0aEdldHRlcik6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL2ljLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFyYXJn
cy1hbmQtY2FsbC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAg
ICAgICAgKGJheik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3Mu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXop
OgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpzOiBBZGRlZC4K
KyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwt
aW4tYW5kLW91dC1vZi1ib3VuZHMuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWJvdW5k
cy10aGVuLWV4aXQtb3V0LW9mLWJvdW5kcy5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0
LW9mLWJvdW5kcy1ib3VuZHMtdGhlbi1kby1pbi1ib3VuZHMuanM6IEFkZGVkLgorICAgICAgICAo
Zm9vKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbnZhbGlkYXRp
b24tcG9pbnQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKFRoaW5neSk6Cisg
ICAgICAgIChUaGluZ3kucHJvdG90eXBlLmYpOgorICAgICAgICAocG9zc2libHlEb0JhZFRoaW5n
cy5UaGluZ3kucHJvdG90eXBlLmYpOgorICAgICAgICAocG9zc2libHlEb0JhZFRoaW5ncyk6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0yLmpzOiBBZGRlZC4KKyAgICAgICAgKGZv
byk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0zLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL25ldy1hcnJheS1zdG9yYWdlLWFycmF5
LXdpdGgtc2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL25ldy1hcnJheS13aXRoLXNpemUtd2l0aC1iYWQtdGltZS5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXctY29u
dGlndW91cy1hcnJheS13aXRoLXNpemUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXctZG91YmxlLWFycmF5LXdpdGgt
c2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL25ldy1pbnQzMi1hcnJheS13aXRoLXNpemUuanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9uZXct
dW5kZWNpZGVkLWFycmF5LXdpdGgtc2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC10aHJvdy10aHJv
dWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL3JlY3Vyc2UtaW5maW5pdGVseS1vbi1nZXR0ZXIuanM6IEFkZGVkLgorICAg
ICAgICAoLnZhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3JlcGVhdGVkLWFyaXR5LWNoZWNr
LWZhaWwuanM6IEFkZGVkLgorICAgICAgICAoYmFyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
cnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAgICAg
KGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW1wbGUtcG9s
eXZhcmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgIChmdXp6KToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXoxKToKKyAgICAg
ICAgKGJhejIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtZ2V0
LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKGZ1enopOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvc2ltcGxl
LXBvbHl2YXJpYW50LXB1dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChmdXp6KToKKyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgorICAgICAg
ICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3RvLXN0cmlu
Zy1vbi1vYmplY3Qtb3Itc3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKEZvbyk6CisgICAgICAg
IChGb28ucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3QuanM6IEFkZGVkLgorICAgICAgICAoRm9vKToK
KyAgICAgICAgKEZvby5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKiB0ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vYmplY3QuanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmlu
Zy1vci1zdHJpbmctb2JqZWN0LXRoZW4tb2JqZWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgIChGb28pOgorICAgICAgICAoRm9vLnByb3RvdHlwZS50b1N0cmluZyk6CisgICAg
ICAgICogdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy90by1zdHJp
bmctb24tdmFsdWUtb3Itc3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS5qczogQWRkZWQuCisgICAgICAgIChm
b28pOgorCiAyMDE0LTAxLTI3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ1JBU0ggd2hlbiBkZWJ1Z2dlciBjbG9zZXMgcmVt
b3RlIGluc3BlY3RpbmcgSlNDb250ZXh0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI1NSw2ICsyNTUsNyBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfU09VUkNFUwogICAgIGludGVycHJldGVyL1ZNSW5zcGVjdG9yLmNwcAogCiAgICAgaml0
L0Fzc2VtYmx5SGVscGVycy5jcHAKKyAgICBqaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
Y3BwCiAgICAgaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCiAgICAgaml0L0V4ZWN1dGFi
bGVBbGxvY2F0b3IuY3BwCiAgICAgaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5j
cHAKQEAgLTI3OCw2ICsyNzksNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGpp
dC9KSVRTdHVicy5jcHAKICAgICBqaXQvSklUVGh1bmtzLmNwcAogICAgIGppdC9KSVRUb0RGR0Rl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKKyAgICBqaXQvUmVnaXN0ZXJQcmVzZXJ2YXRp
b25XcmFwcGVyR2VuZXJhdG9yLmNwcAogICAgIGppdC9SZWdpc3RlclNldC5jcHAKICAgICBqaXQv
UmVwYXRjaC5jcHAKICAgICBqaXQvVGVtcFJlZ2lzdGVyU2V0LmNwcApAQCAtMzQwLDYgKzM0Miw3
IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgcnVudGltZS9EdW1wQ29udGV4dC5j
cHAKICAgICBydW50aW1lL0Vycm9yLmNwcAogICAgIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKKyAgICBydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAKICAgICBydW50aW1lL0Vycm9y
SW5zdGFuY2UuY3BwCiAgICAgcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKICAgICBydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTkxLDYgKzkxLDcgQEAgamF2
YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL1JlcGF0Y2hCdWZmZXIuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9TSDRBc3NlbWJsZXIuaCBcCkBAIC02OTEsNiArNjkyLDggQEAgamF2
YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL1ZNSW5zcGVjdG9yLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L1ZNSW5zcGVjdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZVBy
ZWZpeC5oIFwKKyAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzLmggXAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggXApAQCAtNzQ0
LDYgKzc0Nyw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIFwKKyAgICBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIFwKKyAgICBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRv
ci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAgXApAQCAtOTA0LDYgKzkwOSw4IEBAIGphdmFzY3JpcHRj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29u
c3RydWN0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JQcm90b3R5cGUuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUub3JkZXIJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtNDk4MSw3ICs0OTgx
LDYgQEAgX2xsaW50X3Nsb3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIKIF9sbGludF9zbG93
X3BhdGhfZGVidWcKIF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwKIF9sbGludF9z
bG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbAotX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2NhbGwK
IF9sbGludF9iZWdpbgogX2xsaW50X3Byb2dyYW1fcHJvbG9ndWUKIF9sbGludF9ldmFsX3Byb2xv
Z3VlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU4OSw2ICs1ODksNyBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxEdW1wQ29udGV4dC5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JDb25zdHJ1Y3Rvci5jcHAiIC8+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvclByb3RvdHlwZS5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEV4Y2VwdGlvbkhlbHBl
cnMuY3BwIiAvPgpAQCAtNzkxLDYgKzc5Miw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxhc3NlbWJsZXJcTWFjcm9Bc3NlbWJsZXJYODYuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGFzc2VtYmxlclxNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1hY3JvQXNzZW1ibGVyWDg2XzY0LmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxSZXBh
dGNoQnVmZmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcWDg2
QXNzZW1ibGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xTY3Jp
cHRGdW5jdGlvbkNhbGwuaCIgLz4KQEAgLTEyMDQsNiArMTIwNiw3IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxydW50aW1lXER1bXBDb250ZXh0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEVycm9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxydW50aW1lXEVycm9yQ29uc3RydWN0b3IuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JQcm90b3R5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcRXhjZXB0aW9uSGVscGVycy5oIiAvPgpAQCAtMTQwNiwyMiArMTQwOSw2
IEBACiAgICAgICA8RmlsZVR5cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPgogICAgIDwvTm9uZT4KICAg
PC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPE1BU00gSW5jbHVkZT0iLi5caml0XEpJ
VFN0dWJzTVNWQzY0LmFzbSI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgPC9NQVNNPgotICA8L0l0ZW1Hcm91cD4KICAgPEltcG9ydCBQcm9q
ZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KICAgPEltcG9y
dEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQo
VkNUYXJnZXRzUGF0aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdldHMiIC8+CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAg
LTUzNyw2ICs1MzcsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJv
ckNvbnN0cnVjdG9yLmNwcCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JIYW5k
bGluZ1Njb3BlLmNwcCI+CisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0Ns
Q29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JJbnN0YW5j
ZS5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CkBAIC0xNDQyLDYgKzE0NDUsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1i
bGVyXE1hY3JvQXNzZW1ibGVyWDg2XzY0LmgiPgogICAgICAgPEZpbHRlcj5hc3NlbWJsZXI8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2Vt
YmxlclxNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIj4KKyAgICAgIDxGaWx0ZXI+YXNz
ZW1ibGVyPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxhc3NlbWJsZXJcUmVwYXRjaEJ1ZmZlci5oIj4KICAgICAgIDxGaWx0ZXI+YXNzZW1ibGVy
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0yMTI5LDYgKzIxMzUsOSBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckNvbnN0cnVjdG9yLmgiPgogICAgICAg
PEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5oIj4KKyAgICAgIDxGaWx0
ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccnVudGltZVxFcnJvckluc3RhbmNlLmgiPgogICAgICAgPEZpbHRlcj5ydW50aW1l
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0zMjk1LDkgKzMzMDQsNCBAQAogICAgIDxO
b25lIEluY2x1ZGU9IkphdmFTY3JpcHRDb3JlUG9zdEJ1aWxkLmNtZCIgLz4KICAgICA8Tm9uZSBJ
bmNsdWRlPSJKYXZhU2NyaXB0Q29yZVByZUJ1aWxkLmNtZCIgLz4KICAgPC9JdGVtR3JvdXA+Ci0g
IDxJdGVtR3JvdXA+Ci0gICAgPE1BU00gSW5jbHVkZT0iLi5caml0XEpJVFN0dWJzTVNWQzY0LmFz
bSI+Ci0gICAgICA8RmlsdGVyPmppdDwvRmlsdGVyPgotICAgIDwvTUFTTT4KLSAgPC9JdGVtR3Jv
dXA+CiA8L1Byb2plY3Q+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIxMCw2ICsyMTAsNyBAQAog
CQkwRjM4QjAxOTE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzhCMDE1MTdDRkU3
NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuY3BwICovOyB9OwogCQkwRjM4QjAxQTE3
Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM4QjAxNjE3Q0ZFNzU1MDBCMTQ0RDMgLyog
REZHQ29tcGlsYXRpb25Nb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEYzQUM3NTIxODNFQTEwNDAwMzIwMjlGIC8qIFN0YWNrQWxpZ25tZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNBQzc1
MTE4M0VBMTA0MDAzMjAyOUYgLyogU3RhY2tBbGlnbm1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjNBQzc1NDE4OEU1RUM4MDAzMjAyOUYg
LyogRXhpdGluZ0pJVFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGM0FDNzUzMTg4RTVFQzgwMDMyMDI5RiAvKiBFeGl0aW5nSklUVHlwZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0IzQTFB
MTUzRTY4RjIwMDNFRDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0ExNzE1M0U2OEVGMDAz
RUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwICovOyB9OwogCQkwRjNCM0ExQjE1
M0U2OEY0MDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0IzQTE4MTUzRTY4RUYwMDNFRDBG
RiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0IzQTI3MTU0NEM5OTUwMDNFRDBGRiAvKiBERkdD
RkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGM0IzQTI0MTU0NEM5OTEwMDNFRDBGRiAvKiBERkdDRkdTaW1wbGlm
aWNhdGlvblBoYXNlLmNwcCAqLzsgfTsKQEAgLTIzNiw2ICsyMzcsMTAgQEAKIAkJMEY0NjgwRDUx
NEJCRDI0QjAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3MiAv
KiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEY0ODUzMjExODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9k
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4
NTMxRjE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2RlLmNwcCAqLzsgfTsKIAkJMEY0ODUz
MjIxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERG
R0FyaXRoTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTBGNDg1MzI3MTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMy
MzE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwICovOyB9OworCQkw
RjQ4NTMyODE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzI0MTg3REZERUMw
MDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNDg1MzI5MTg3REZERUMwMDgzQjY4NyAvKiBG
VExSZWNvdmVyeU9wY29kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjQ4NTMyNTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUu
Y3BwICovOyB9OworCQkwRjQ4NTMyQTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNv
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1
MzI2MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNDkzQUZBMTZEMENBRDMwMDg0
NTA4QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjQ5M0FGODE2RDBDQUQxMDA4NDUwOEIgLyogU291cmNlUHJvdmlk
ZXIuY3BwICovOyB9OwogCQkwRjRCOTREQzE3QjlGMDc1MDBERDAzQTQgLyogVHlwZWRBcnJheUlu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
NEI5NERCMTdCOUYwNzUwMEREMDNBNCAvKiBUeXBlZEFycmF5SW5saW5lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTU0MUIxMTYxM0MxRkIw
MENFM0UyNSAvKiBTcGVjaWFsUG9pbnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU1NDFBRjE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBv
aW50ZXIuY3BwICovOyB9OwpAQCAtMjQ4LDYgKzI1Myw4IEBACiAJCTBGNTZBMUQ1MTUwMDFDRjQw
MDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTZBMUQ0MTUwMDFDRjIwMDI5OTJCMSAvKiBFeGVjdXRp
b25Db3VudGVyLmNwcCAqLzsgfTsKIAkJMEY1NzJENEYxNjg3OUZERDAwRTU3RkJEIC8qIFRodW5r
R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVBNTJEMDE3QURENzE3
MDA4RUNCMkQgLyogQ29weVRva2VuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjVBNTJDRjE3QURENzE3MDA4RUNCMkQgLyogQ29weVRva2VuLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY1QTYyODMx
ODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1QTYyODExODhDOThENDAwNzJDOURGIC8qIEZU
TFZhbHVlUmFuZ2UuY3BwICovOyB9OworCQkwRjVBNjI4NDE4OEM5OEQ0MDA3MkM5REYgLyogRlRM
VmFsdWVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY1QTYyODIxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVFRjkxRTE2ODc4RjdB
MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFCMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3MuY3Bw
ICovOyB9OwogCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUgLyogSklUVGh1bmtzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFRjkxQzE2ODc4Rjc4
MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEY1RjA4Q0YxNDZDNzYzMzAwMDQ3MkE5IC8qIFVuY29uZGl0aW9u
YWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI2OSw2
ICsyNzYsMTggQEAKIAkJMEY2NjZFQ0QxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlv
bkZvclZhbGlkYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY2NjZFQ0IxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZv
clZhbGlkYXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGNjZFMTZCMTRERjNGMTYwMEI3QjJFNCAvKiBERkdBZGphY2VuY3lMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjY2RTE2
ODE0REYzRjEzMDBCN0IyRTQgLyogREZHQWRqYWNlbmN5TGlzdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjZFMTZDMTRERjNGMTYwMEI3QjJF
NCAvKiBERkdFZGdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjY2RTE2OTE0REYzRjEzMDBCN0IyRTQgLyogREZHRWRnZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNkIxQ0I1MTg1RkM5RTkwMDg0
NUQ5NyAvKiBGVExKU0NhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY2QjFDQjMxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5jcHAgKi87
IH07CisJCTBGNkIxQ0I2MTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0I0MTg1RkM5RTkwMDg0
NUQ5NyAvKiBGVExKU0NhbGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkwRjZCMUNCOTE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0I3
MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNkIxQ0JBMTg2MTI0NEMwMDg0NUQ5NyAv
KiBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0I4MTg2MTI0NEMwMDg0NUQ5NyAvKiBSZWdpc3RlclBy
ZXNlcnZhdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkwRjZCMUNCRDE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRp
b25XcmFwcGVyR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNkIxQ0JCMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZh
dGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwICovOyB9OworCQkwRjZCMUNCRTE4NjEyNDZBMDA4NDVE
OTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCQzE4NjEyNDZBMDA4NDVE
OTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQzMxODYyQzQ3ODAw
ODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQkYxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJl
Z2lzdGVyQXRPZmZzZXQuY3BwICovOyB9OworCQkwRjZCMUNDNDE4NjJDNDc4MDA4NDVEOTcgLyog
RlRMUmVnaXN0ZXJBdE9mZnNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY2QjFDQzAxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZz
ZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
RjZCMUNDNTE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNDMTE4NjJDNDc4MDA4NDVE
OTcgLyogRlRMVW53aW5kSW5mby5jcHAgKi87IH07CisJCTBGNkIxQ0M2MTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExVbndpbmRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjZCMUNDMjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNkIxQ0M5
MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNDNzE4NjQxREY4
MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwICovOyB9OworCQkwRjZC
MUNDQTE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0M4MTg2NDFE
RjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNzAyNUE5MTcxNEIwRkEwMDM4
MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3MDI1QTcxNzE0QjBGODAwMzgyQzBFIC8qIERG
R09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgKi87IH07CiAJCTBGNzAyNUFBMTcxNEIwRkMwMDM4
MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzAyNUE4MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjcxNENBNDE2RUE5MkYwMDBGM0VCRUIgLyogREZHQmFja3dhcmRz
UHJvcGFnYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjcxNENBMTE2RUE5MkVEMDBGM0VCRUIgLyogREZHQmFja3dhcmRzUHJvcGFn
YXRpb25QaGFzZS5jcHAgKi87IH07CkBAIC0xMzQ2LDYgKzEzNjUsOCBAQAogCQlGRTU5MzJBODE4
M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTU5MzJBNjE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRy
eVNjb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRkVBMDg2MjAxODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFQTA4NjFFMTgyQjdBMDQwMEY2RDg1
MSAvKiBCcmVha3BvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRkVBMDg2MjExODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVBMDg2
MUYxODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUZFQjU4QzE0MTg3QjhCMTYwMDk4
RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkVCNThDMTIxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFu
ZGxpbmdTY29wZS5jcHAgKi87IH07CisJCUZFQjU4QzE1MTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJv
ckhhbmRsaW5nU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFQjU4QzEzMTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQyODdC
MjE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTElu
dE9wY29kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUZFRDk0RjJFMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQjE3MUUzRTIzMDBCRTc3
QTQgLyogV2F0Y2hkb2cuY3BwICovOyB9OwogCQlGRUQ5NEYyRjE3MUUzRTIzMDBCRTc3QTQgLyog
V2F0Y2hkb2cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZFRDk0RjJDMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNjA1LDYgKzE2MjYsNyBAQAogCQkw
RjM4QjAxNTE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0NvbXBpbGF0aW9uTW9kZS5jcHA7IHBh
dGggPSBkZmcvREZHQ29tcGlsYXRpb25Nb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEYzOEIwMTYxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uTW9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdDb21waWxhdGlvbk1vZGUuaDsgcGF0
aCA9IGRmZy9ERkdDb21waWxhdGlvbk1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYzQUM3NTExODNFQTEwNDAwMzIwMjlGIC8qIFN0YWNrQWxpZ25tZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YWNrQWxpZ25tZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGM0FDNzUzMTg4RTVFQzgwMDMyMDI5RiAvKiBFeGl0aW5nSklUVHlw
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGl0aW5nSklUVHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNCM0ExNzE1M0U2OEVGMDAzRUQwRkYgLyog
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RGR0NvbnN0
YW50Rm9sZGluZ1BoYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzQjNB
MTgxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmg7IHBhdGgg
PSBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEYzQjNBMjQxNTQ0Qzk5MTAwM0VEMEZGIC8qIERGR0NGR1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQ0ZHU2ltcGxp
ZmljYXRpb25QaGFzZS5jcHA7IHBhdGggPSBkZmcvREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjMyLDYgKzE2NTQsMTAgQEAKIAkJ
MEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSG9zdENhbGxSZXR1cm5WYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ4NTMxRjE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJp
dGhNb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0FyaXRo
TW9kZS5jcHA7IHBhdGggPSBkZmcvREZHQXJpdGhNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBcml0aE1vZGUuaDsgcGF0aCA9IGRm
Zy9ERkdBcml0aE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0ODUzMjMx
ODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcDsgcGF0aCA9
IGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTBGNDg1MzI0MTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExBdmFpbGFibGVSZWNvdmVyeS5oOyBw
YXRoID0gZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGNDg1MzI1MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExSZWNvdmVyeU9wY29kZS5j
cHA7IHBhdGggPSBmdGwvRlRMUmVjb3ZlcnlPcGNvZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwRjQ4NTMyNjE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMUmVjb3ZlcnlPcGNvZGUuaDsg
cGF0aCA9IGZ0bC9GVExSZWNvdmVyeU9wY29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjQ5M0FGODE2RDBDQUQxMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjRCOTREQjE3QjlGMDc1MDBERDAzQTQgLyogVHlw
ZWRBcnJheUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwZWRB
cnJheUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NTQxQUYxNjEz
QzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWNpYWxQb2ludGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE2NDQsNiArMTY3MCw4IEBACiAJCTBGNTZBMUQ0MTUwMDFDRjIwMDI5OTJCMSAv
KiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEV4ZWN1dGlvbkNvdW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGh1bmtHZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY1QTUyQ0YxN0FERDcxNzAwOEVDQjJEIC8qIENvcHlUb2tlbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3B5VG9rZW4uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEY1QTYyODExODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMVmFsdWVSYW5nZS5j
cHA7IHBhdGggPSBmdGwvRlRMVmFsdWVSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGNUE2MjgyMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTFZhbHVlUmFuZ2UuaDsgcGF0aCA9IGZ0bC9G
VExWYWx1ZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUVGOTFCMTY4
NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSklUVGh1bmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKSVRUaHVua3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY1RjA4Q0UxNDZDNzYyRjAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5jb25kaXRpb25hbEZpbmFsaXplci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY2NSw2ICsxNjkzLDE4IEBACiAJCTBG
NjY2RUNCMTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhh
c2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHUmVzdXJyZWN0aW9uRm9y
VmFsaWRhdGlvblBoYXNlLmg7IHBhdGggPSBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlv
blBoYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNjZFMTY4MTRERjNGMTMw
MEI3QjJFNCAvKiBERkdBZGphY2VuY3lMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR0FkamFjZW5jeUxpc3QuaDsgcGF0aCA9IGRmZy9ERkdBZGphY2VuY3lMaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNjZFMTY5MTRERjNGMTMwMEI3QjJFNCAv
KiBERkdFZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0VkZ2UuaDsg
cGF0aCA9IGRmZy9ERkdFZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIx
Q0IzMTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRlRMSlNDYWxsLmNwcDsgcGF0aCA9IGZ0bC9GVExKU0NhbGwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCNDE4NUZDOUU5MDA4NDVEOTcg
LyogRlRMSlNDYWxsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTEpTQ2Fs
bC5oOyBwYXRoID0gZnRsL0ZUTEpTQ2FsbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwRjZCMUNCNzE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdHlDaGVja01vZGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQjgxODYxMjQ0QzAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdpc3RlclBy
ZXNlcnZhdGlvbk1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQkIx
ODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdpc3RlclByZXNlcnZh
dGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjZCMUNCQzE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2Vu
ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uV3JhcHBlckdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjZCMUNCRjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcDsg
cGF0aCA9IGZ0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEY2QjFDQzAxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMUmVnaXN0ZXJBdE9mZnNldC5o
OyBwYXRoID0gZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEY2QjFDQzExODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMVW53aW5kSW5mby5jcHA7IHBh
dGggPSBmdGwvRlRMVW53aW5kSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNkIxQ0MyMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTFVud2luZEluZm8uaDsgcGF0aCA9IGZ0bC9GVExVbndp
bmRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0M3MTg2NDFERjgw
MDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0M4MTg2NDFERjgwMDg0NUQ5NyAvKiBB
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjcwMjVBNzE3MTRCMEY4MDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29t
bW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR09TUkV4aXRD
b21waWxlckNvbW1vbi5jcHA7IHBhdGggPSBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MDI1QTgxNzE0QjBGODAwMzgyQzBF
IC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uaDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0
Q29tcGlsZXJDb21tb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MTRDQTEx
NkVBOTJFRDAwRjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQmFja3dhcmRzUHJvcGFnYXRpb25Q
aGFzZS5jcHA7IHBhdGggPSBkZmcvREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTE2LDYgKzIxNTYsNyBAQAogCQk2NTYwQTRD
RjA0QjNCM0U3MDA4QUU5NTIgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7
IG5hbWUgPSBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9Db3JlRm91bmRhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29s
dXRlPiI7IH07CiAJCTY1NjIxRTZCMDg5RTg1OTcwMDc2MEYzNSAvKiBQcm9wZXJ0eVNsb3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UHJvcGVydHlTbG90LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9
OwogCQk2NTYyMUU2QzA4OUU4NTk3MDA3NjBGMzUgLyogUHJvcGVydHlTbG90LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3BlcnR5U2xvdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTY1ODYwMTc3MTg1
QThGNUUwMDAzMEVFRSAvKiBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTk4N0YyQzE2N0ZFODRCMDAzQzJGOEQg
LyogREZHT1NSRXhpdENvbXBpbGF0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdPU1JFeGl0Q29tcGlsYXRpb25JbmZvLmg7IHBhdGggPSBkZmcvREZHT1NSRXhp
dENvbXBpbGF0aW9uSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTk4N0Yy
RjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBVbnVzZWRQb2ludGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1QzAyODRGMTcxNzk1RTIwMDM1MUUzNSAvKiBBUk12N0Rpc2Fzc2VtYmxlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBUk12N0Rpc2Fzc2VtYmxlci5jcHA7
IHBhdGggPSBkaXNhc3NlbWJsZXIvQVJNdjdEaXNhc3NlbWJsZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjc4Myw2ICsyODI0LDggQEAKIAkJRkU1OTMyQTYxODNDNUEyNjAw
QTFFQ0NDIC8qIFZNRW50cnlTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWTUVudHJ5U2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBMDg2MUUx
ODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQnJlYWtwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUEw
ODYxRjE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlYnVnZ2VyUHJpbWl0aXZlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGRUI1OEMxMjE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGlu
Z1Njb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9ySGFu
ZGxpbmdTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFQjU4QzEzMTg3
QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRXJyb3JIYW5kbGluZ1Njb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZFRDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMTEludE9wY29kZS5oOyBwYXRoID0gbGxpbnQv
TExJbnRPcGNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEOTRGMkIxNzFF
M0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdhdGNoZG9nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVE
OTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdhdGNoZG9nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MDAxLDYgKzMwNDQsOCBAQAogCQkJCTBGRUEwQTE4MTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0
cmFjdEhlYXAuaCAqLywKIAkJCQkwRkVBMEExOTE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5jcHAgKi8sCiAJCQkJMEZFQTBBMUExNzA4QjAwNzAwQkI3MjJDIC8q
IEZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCAqLywKKwkJCQkwRjQ4NTMyMzE4N0RGREVDMDA4
M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwICovLAorCQkJCTBGNDg1MzI0MTg3REZE
RUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovLAogCQkJCTBGRUEwOUZFMTcw
NTEzREIwMEJCNzIyQyAvKiBGVExDYXBhYmlsaXRpZXMuY3BwICovLAogCQkJCTBGRUEwOUZGMTcw
NTEzREIwMEJCNzIyQyAvKiBGVExDYXBhYmlsaXRpZXMuaCAqLywKIAkJCQkwRkVBMEEyNTE3MDk2
MjNCMDBCQjcyMkMgLyogRlRMQ29tbW9uVmFsdWVzLmNwcCAqLywKQEAgLTMwMzEsNiArMzA3Niw4
IEBACiAJCQkJMEZFQTBBMDMxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTEpJVENvZGUuaCAqLywKIAkJ
CQlBNzhBOTc3RDE3OTczOEQ1MDA5REY3NDQgLyogRlRMSklURmluYWxpemVyLmNwcCAqLywKIAkJ
CQlBNzhBOTc3RTE3OTczOEQ1MDA5REY3NDQgLyogRlRMSklURmluYWxpemVyLmggKi8sCisJCQkJ
MEY2QjFDQjMxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5jcHAgKi8sCisJCQkJMEY2QjFD
QjQxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oICovLAogCQkJCTBGOEYyQjkzMTcyRTA0
OUUwMDdEQkRBNSAvKiBGVExMaW5rLmNwcCAqLywKIAkJCQkwRjhGMkI5NDE3MkUwNDlFMDA3REJE
QTUgLyogRlRMTGluay5oICovLAogCQkJCTBGQ0VGQUREMTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExM
b2NhdGlvbi5jcHAgKi8sCkBAIC0zMDQ3LDYgKzMwOTQsMTAgQEAKIAkJCQkwRjIzNUJDQTE3MTc4
RTFDMDA2OTBDN0YgLyogRlRMT1NSRXhpdENvbXBpbGVyLmggKi8sCiAJCQkJMEZFQTBBMjkxNzA5
NjI5NjAwQkI3MjJDIC8qIEZUTE91dHB1dC5jcHAgKi8sCiAJCQkJMEZFQTBBMDYxNzA1MTNEQjAw
QkI3MjJDIC8qIEZUTE91dHB1dC5oICovLAorCQkJCTBGNDg1MzI1MTg3REZERUMwMDgzQjY4NyAv
KiBGVExSZWNvdmVyeU9wY29kZS5jcHAgKi8sCisJCQkJMEY0ODUzMjYxODdERkRFQzAwODNCNjg3
IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi8sCisJCQkJMEY2QjFDQkYxODYyQzQ3ODAwODQ1RDk3
IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwICovLAorCQkJCTBGNkIxQ0MwMTg2MkM0NzgwMDg0
NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmggKi8sCiAJCQkJMEZDRUZBQTkxODA0QzEzRTAw
NDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmNwcCAqLywKIAkJCQkwRkNFRkFBQTE4MDRDMTNFMDA0
NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuaCAqLywKIAkJCQkwRjI1RjFBQTE4MTYzNUYzMDA1MjJG
MzkgLyogRlRMU2xvd1BhdGhDYWxsLmNwcCAqLywKQEAgLTMwNjEsOSArMzExMiwxMyBAQAogCQkJ
CTBGMjM1QkNCMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExUaHVua3MuY3BwICovLAogCQkJCTBGMjM1
QkNDMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExUaHVua3MuaCAqLywKIAkJCQkwRkVBMEExQjE3MDhC
MDA3MDBCQjcyMkMgLyogRlRMVHlwZWRQb2ludGVyLmggKi8sCisJCQkJMEY2QjFDQzExODYyQzQ3
ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwICovLAorCQkJCTBGNkIxQ0MyMTg2MkM0Nzgw
MDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmggKi8sCiAJCQkJMEYyMzVCQ0QxNzE3OEUxQzAwNjkw
QzdGIC8qIEZUTFZhbHVlRm9ybWF0LmNwcCAqLywKIAkJCQkwRjIzNUJDRTE3MTc4RTFDMDA2OTBD
N0YgLyogRlRMVmFsdWVGb3JtYXQuaCAqLywKIAkJCQkwRkRCMkNDODE3M0RBNTFFMDA3QjNDMUIg
LyogRlRMVmFsdWVGcm9tQmxvY2suaCAqLywKKwkJCQkwRjVBNjI4MTE4OEM5OEQ0MDA3MkM5REYg
LyogRlRMVmFsdWVSYW5nZS5jcHAgKi8sCisJCQkJMEY1QTYyODIxODhDOThENDAwNzJDOURGIC8q
IEZUTFZhbHVlUmFuZ2UuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gZnRsOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTMxNTIsNiArMzIwNyw4IEBACiAJCTE0MjlEOTJDMEVEMjJENzAw
MEI4OTYxOSAvKiBqaXQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTBGNkIxQ0M3MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcy5jcHAgKi8sCisJCQkJMEY2QjFDQzgxODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tG
YWlsUmV0dXJuVGh1bmtzLmggKi8sCiAJCQkJMEYyNEU1M0IxN0VBOUY1OTAwQUJCMjE3IC8qIEFz
c2VtYmx5SGVscGVycy5jcHAgKi8sCiAJCQkJMEYyNEU1M0MxN0VBOUY1OTAwQUJCMjE3IC8qIEFz
c2VtYmx5SGVscGVycy5oICovLAogCQkJCTBGMjRFNTNEMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2Fs
bEhlbHBlcnMuaCAqLywKQEAgLTMyMDUsNiArMzI2Miw4IEBACiAJCQkJMEZDNzEyRTExN0NEODc4
RjAwOENDOTNDIC8qIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmggKi8sCiAJ
CQkJQTc2RjU0QTIxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oICovLAogCQkJ
CUE3NkM1MTc0MTE4Mjc0OEQwMDcxNUIwNSAvKiBKU0ludGVyZmFjZUpJVC5oICovLAorCQkJCTBG
NkIxQ0JCMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5l
cmF0b3IuY3BwICovLAorCQkJCTBGNkIxQ0JDMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclBy
ZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCAqLywKIAkJCQkwRkMzMTQxNDE4MTQ2RDcwMDAw
MzMyMzIgLyogUmVnaXN0ZXJTZXQuY3BwICovLAogCQkJCTBGQzMxNDEwMTgxNDU1OTEwMDAzMzIz
MiAvKiBSZWdpc3RlclNldC5oICovLAogCQkJCTBGMjRFNTQ5MTdFRTI3NDkwMEFCQjIxNyAvKiBS
ZXBhdGNoLmNwcCAqLywKQEAgLTM1NTQsNiArMzYxMyw3IEBACiAJCQkJQTc2MTQwQzgxODI5ODJD
QjAwNzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaCAqLywKIAkJCQlBNzYx
NDBDOTE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwICov
LAogCQkJCUE3NjE0MENBMTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclByb3Rv
dHlwZS5oICovLAorCQkJCTBGNkIxQ0I3MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9k
ZS5oICovLAogCQkJCUE3QThBRjI1MTdBREI1RjIwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlci5jcHAg
Ki8sCiAJCQkJQTdBOEFGMjYxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyLmggKi8sCiAJ
CQkJMEZGQzk5RDIxODRFRTMxODAwOUMxMEFCIC8qIEFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hw
b2ludC5jcHAgKi8sCkBAIC0zNjE4LDYgKzM2NzgsOCBAQAogCQkJCUJDMzA0NjA2MEUxRjQ5N0Yw
MDMyMzJDRiAvKiBFcnJvci5oICovLAogCQkJCUJDMDJFOTA0MEUxODM5REIwMDBGOTI5NyAvKiBF
cnJvckNvbnN0cnVjdG9yLmNwcCAqLywKIAkJCQlCQzAyRTkwNTBFMTgzOURCMDAwRjkyOTcgLyog
RXJyb3JDb25zdHJ1Y3Rvci5oICovLAorCQkJCUZFQjU4QzEyMTg3QjhCMTYwMDk4RUYwQiAvKiBF
cnJvckhhbmRsaW5nU2NvcGUuY3BwICovLAorCQkJCUZFQjU4QzEzMTg3QjhCMTYwMDk4RUYwQiAv
KiBFcnJvckhhbmRsaW5nU2NvcGUuaCAqLywKIAkJCQlCQzAyRTk4QTBFMTgzRTM4MDAwRjkyOTcg
LyogRXJyb3JJbnN0YW5jZS5jcHAgKi8sCiAJCQkJQkMwMkU5OEIwRTE4M0UzODAwMEY5Mjk3IC8q
IEVycm9ySW5zdGFuY2UuaCAqLywKIAkJCQlCQzAyRTkwNjBFMTgzOURCMDAwRjkyOTcgLyogRXJy
b3JQcm90b3R5cGUuY3BwICovLApAQCAtMzg1MSw2ICszOTEzLDcgQEAKIAkJCQlGNjkyQTg3QzAy
NTU1OTdEMDFGRjYwRjcgLyogUmVnRXhwT2JqZWN0LmggKi8sCiAJCQkJQkNEMjAyQkYwRTE3MDZB
NzAwMkM3RTgyIC8qIFJlZ0V4cFByb3RvdHlwZS5jcHAgKi8sCiAJCQkJQkNEMjAyQzAwRTE3MDZB
NzAwMkM3RTgyIC8qIFJlZ0V4cFByb3RvdHlwZS5oICovLAorCQkJCTBGNkIxQ0I4MTg2MTI0NEMw
MDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCAqLywKIAkJCQkwRkI3RjM5MTE1
RUQ4RTM4MDBGMTY3QjIgLyogUmVqZWN0LmggKi8sCiAJCQkJMEY3NzAwOTExNDAyRkYyODAwNzhF
QjM5IC8qIFNhbXBsaW5nQ291bnRlci5jcHAgKi8sCiAJCQkJMEY3NzAwOEUxNDAyRkRENjAwNzhF
QjM5IC8qIFNhbXBsaW5nQ291bnRlci5oICovLApAQCAtMzk2NSw2ICs0MDI4LDggQEAKIAkJODZF
QzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRmZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3Jl
QmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFE
IC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJCUE3N0E0MjM2MTdBMEJC
RkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhlYXAuY3BwICovLAogCQkJCUE3N0E0MjM3MTdBMEJC
RkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhlYXAuaCAqLywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4
MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRlcnByZXRlci5oICovLApAQCAtNDE1Myw4ICs0MjE4
LDYgQEAKIAkJCQkwRkMyMENCODE4NTU2QTM1MDBDOUU5NTQgLyogREZHU1NBTG93ZXJpbmdQaGFz
ZS5oICovLAogCQkJCTBGOUZCNEYyMTdGQ0I5MTcwMENCNjdGOCAvKiBERkdTdGFja0xheW91dFBo
YXNlLmNwcCAqLywKIAkJCQkwRjlGQjRGMzE3RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlv
dXRQaGFzZS5oICovLAotCQkJCTJBQ0NGM0RDMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJh
cnJpZXJFbGlzaW9uUGhhc2UuY3BwICovLAotCQkJCTJBQ0NGM0REMTg1RkUyNkIwMDgzRTJBRCAv
KiBERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2UuaCAqLywKIAkJCQkwRkMyMENCMzE4NTJFMkM2
MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAgKi8sCiAJCQkJMEZDMjBD
QjQxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuaCAqLywKIAkJ
CQkwRjYzOTQ3NjE1RENFMzQ3MDA2QTU5N0MgLyogREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5o
ICovLApAQCAtNDI1MCw2ICs0MzEzLDcgQEAKIAkJOTY4OENCMTIwRUQxMkI0RTAwMUQ2NDlGIC8q
IGFzc2VtYmxlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNjU4NjAxNzcxODVBOEY1RTAwMDMwRUVFIC8qIE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsLmggKi8sCiAJCQkJODYwMTYxREYwRjNBODNDMTAwRjg0NzEwIC8qIEFic3RyYWN0TWFjcm9B
c3NlbWJsZXIuaCAqLywKIAkJCQk4NjQwOTIzQjE1NkVFRDNCMDA1NjZDQjIgLyogQVJNNjRBc3Nl
bWJsZXIuaCAqLywKIAkJCQk4NkQzQjJCRjEwMTU2QkRFMDAyODY1RTcgLyogQVJNQXNzZW1ibGVy
LmNwcCAqLywKQEAgLTQzMjIsNiArNDM4Niw3IEBACiAJCQkJOTY5QTA3OTIwRUQxRDNBRTAwRjFG
NjgxIC8qIEV2YWxDb2RlQ2FjaGUuaCAqLywKIAkJCQkwRjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEg
LyogRXhlY3V0aW9uQ291bnRlci5jcHAgKi8sCiAJCQkJMEY1NkExRDExNTAwMEYzMTAwMjk5MkIx
IC8qIEV4ZWN1dGlvbkNvdW50ZXIuaCAqLywKKwkJCQkwRjNBQzc1MzE4OEU1RUM4MDAzMjAyOUYg
LyogRXhpdGluZ0pJVFR5cGUuaCAqLywKIAkJCQkwRkIxMDU4MjE2NzU0ODBDMDBGOEFCNkUgLyog
RXhpdEtpbmQuY3BwICovLAogCQkJCTBGQjEwNTgzMTY3NTQ4MEMwMEY4QUI2RSAvKiBFeGl0S2lu
ZC5oICovLAogCQkJCTBGMEI4M0FBMTRCQ0Y1QjkwMDg4NUI0RiAvKiBFeHByZXNzaW9uUmFuZ2VJ
bmZvLmggKi8sCkBAIC00NTQxLDEzICs0NjA2LDE0IEBACiAJCQkJODZBREQxNDUwRkRERUE5ODAw
MDZFRUMyIC8qIEFSTXY3QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUNFRUUxNTE4
N0YzQkFEMDBFNTVDOTkgLyogSW5zcGVjdG9yQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1
QzAyODVEMTcxNzk2NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTJBNjgyOTVCMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJyaWVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkyQTRFQzkwQzE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVm
ZmVyLmggaW4gSGVhZGVycyAqLywKKyAJCQkJMkE2ODI5NUIxODc1RjgwNTAwQjZDM0UyIC8qIENv
cHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgIDJBNEVDOTBD
MTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZFNTkzMkE4MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1MzI0MzkzMTg1Njk3MDkwMDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVj
dG9yU3RyaW5ncy5weSBpbiBIZWFkZXJzICovLAotCQkJCUE1MzI0MzkyMTg1Njk3MDkwMDJFRDY5
MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGluIEhlYWRlcnMgKi8sCisgCQkJCUE1MzI0
MzkyMTg1Njk3MDkwMDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyNEU1NEYxN0VFMjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwRTRCNjQxODgwOURENTAwNjhBNDZEIC8qIEpTR2xvYmFs
T2JqZWN0UnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGRUI1OEMxNTE4N0I4QjE2
MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0JG
RjNDMDE3OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTU4NDBFMjcxODdDOTgxRTAwODQzQjEwIC8qIGNzc21pbi5weSBpbiBIZWFkZXJz
ICovLAogCQkJCUMyRkNBRTExMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2su
aCBpbiBIZWFkZXJzICovLApAQCAtNDU1Niw3ICs0NjIyLDcgQEAKIAkJCQkwRjgzMzVCODE2MzlD
MUVBMDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTU4NDBFMjkxODdDQTVFNjAwODQzQjEwIC8qIGlubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hl
ZXRzLWFuZC1zY3JpcHRzLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMkIxODdDQTc1QjAw
ODQzQjEwIC8qIGpzbWluLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJQTUzMjQzOTgxODU2QTQ4OTAw
MkVENjkyIC8qIEluc3BlY3RvckpTLmpzb24gaW4gSGVhZGVycyAqLywKKyAJCQkJQTUzMjQzOTgx
ODU2QTQ4OTAwMkVENjkyIC8qIEluc3BlY3RvckpTLmpzb24gaW4gSGVhZGVycyAqLywKIAkJCQlB
NTg0MEUyQTE4N0NBNzU5MDA4NDNCMTAgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVB
MDg2MjAxODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE3QThBRjM1MTdBREI1RjMwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8s
CkBAIC00NjI0LDYgKzQ2OTAsNyBAQAogCQkJCUMyRUFBM0ZBMTQ5QTgzNUUwMEZDRTExMiAvKiBD
b3BpZWRTcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzJDOEQwMkQxNEEzQzZFMDAwNTc4RTY1
IC8qIENvcGllZFNwYWNlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1QTUyRDAxN0FE
RDcxNzAwOEVDQjJEIC8qIENvcHlUb2tlbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQzYx
ODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUMy
MjM5RDE4MTYyNjJCREQwMDVBQzVGRCAvKiBDb3B5VmlzaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzIyMzlEMTkxNjI2MkJERDAwNUFDNUZEIC8qIENvcHlWaXNpdG9ySW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzIxOEQxNDAxNjU1Q0ZENTAwNjJCQjgxIC8qIENvcHlXb3JrTGlzdC5o
IGluIEhlYWRlcnMgKi8sCkBAIC00NjY1LDcgKzQ3MzIsOCBAQAogCQkJCTBGODM2NEI3MTY0QjBD
MTEwMDUzMzI5QSAvKiBERkdCcmFuY2hEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
QTAwOUMwMTgzMUEyMkQwMENGODcxMSAvKiBNYWNyb0Fzc2VtYmxlckFSTTY0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NkVDOURDNTEzMjhERjgyMDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE1OTNDRjg3MTg0MDM4Q0EwMEJGQ0UyNyAvKiBJbnNwZWN0
b3JBZ2VudFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQ4NTMyODE4N0RGREVDMDA4
M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAg
ICAgICAgIEE1OTNDRjg3MTg0MDM4Q0EwMEJGQ0UyNyAvKiBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI1NkMzNjE2MjdCMEFEMDA3RjI3ODMgLyogREZHQ2Fs
bEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
N0IyOTRCMTRDM0NEMkYwMDdDM0RCMSAvKiBERkdDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRkZDOTU4MTRFRjkwQTIwMEM3MjUzMiAvKiBERkdDRkFQaGFzZS5oIGluIEhlYWRl
cnMgKi8sCkBAIC00Njk5LDYgKzQ3NjcsNyBAQAogCQkJCTBGQkMwQUU4MTQ5NkM3QzcwMEQ0RkJE
RCAvKiBERkdFeGl0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4QTk3NzUxNzk3MzhC
ODAwOURGNzQ0IC8qIERGR0ZhaWxlZEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4
QTk3NzcxNzk3MzhCODAwOURGNzQ0IC8qIERGR0ZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY2QjFDQjYxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyQkRDMTYxNTFDNUQ0RjAwQ0Q4OTEwIC8qIERGR0ZpeHVwUGhhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGOUQzMzk3MTdGRkM0RTYwMDczQzJCQyAvKiBERkdGbHVzaGVkQXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUE3RDg5Q0Y4MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdGbHVzaEZv
cm1hdC5oIGluIEhlYWRlcnMgKi8sCkBAIC00NzM1LDYgKzQ4MDQsNyBAQAogCQkJCTBGRDhBMzI2
MTdENTFGNTcwMENBMkM0MCAvKiBERkdPU1JFbnRyeXBvaW50Q3JlYXRpb25QaGFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDMDk3NkExNDY4QTZGNzAwQ0YyNDQyIC8qIERGR09TUkV4aXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRkM5OUQxMTg0RUM4QUQwMDlDMTBBQiAvKiBDb25zdGFudE1v
ZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0JBMTg2MTI0NEMwMDg0NUQ5NyAvKiBSZWdp
c3RlclByZXNlcnZhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjM1QkVDMTcxNzhF
NzMwMDY5MEM3RiAvKiBERkdPU1JFeGl0QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCQTE1
RUQxODIzNDBCNDAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRkI5MjFDMTZEMDJGMTEwMDU1QTVEQiAvKiBERkdPU1JFeGl0Q29t
cGlsYXRpb25JbmZvLmggaW4gSGVhZGVycyAqLywKQEAgLTQ4MDMsNiArNDg3Myw3IEBACiAJCQkJ
MEZFQTBBMUYxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1OTQ1NTkzMTgyNDc0NDcwMENDMzg0MyAvKiBKU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBBMTcwNTEzREIwMEJC
NzIyQyAvKiBGVExDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDg1MzJBMTg3
REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZFQTBBMjMxNzA5NjA2OTAwQkI3MjJDIC8qIEZUTENvbW1vblZhbHVlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZFQTBBMEMxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTENvbXBpbGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMjM1QkQ0MTcxNzhFMUMwMDY5MEM3RiAvKiBGVExFeGl0QXJndW1lbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtNDgxOSw2ICs0ODkwLDcgQEAKIAkJCQkwRkVBMEEyNDE3MDk2
MDY5MDBCQjcyMkMgLyogRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFQTBBMEUxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTEpJVENvZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3OEE5NzgxMTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNUE2Mjg0MTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhGMkI5NjE3MkUwNEEzMDA3REJEQTUgLyogRlRMTGlu
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDRUZBRTAxODA3MzhDMDAwNDcyQ0U0IC8qIEZUTExv
Y2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEExMDE3MDUxM0RCMDBCQjcyMkMgLyog
RlRMTG93ZXJERkdUb0xMVk0uaCBpbiBIZWFkZXJzICovLApAQCAtNDkwMSw2ICs0OTczLDcgQEAK
IAkJCQkwRkMyMENCNjE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFz
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCMTRFMUYxODEyNEFDRTAwOUI2QjREIC8qIEpJVElu
bGluZUNhY2hlR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkNDODVBMTBFRTc5QTQ3
MDAyODg2ODIgLyogSklUSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQkUxODYx
MjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NEQxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlv
bnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OTBERDcwMTgyRjQ5OTcwMDU4ODgwNyAvKiBKU1Nl
dEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU0RTE3RUUyNzQ5MDBBQkIyMTcg
LyogSklUT3BlcmF0aW9uV3JhcHBlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtNDkxNiw2ICs0OTg5
LDcgQEAKIAkJCQkwRkM3MTJFMzE3Q0Q4NzkzMDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NkY1NEEzMTNCMjhBQUIw
MEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDE2
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0FjdGl2YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
NkIxQ0I5MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODQwNDgwMTMxMDIxQTFEOTAwOEU3RjAxIC8qIEpTQVBJVmFsdWVXcmFwcGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDMkNGMzlDMjE2RTE1QTgxMDBERDY5QkUgLyogSlNBUElXcmFwcGVy
T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzYxNDBEMjE4Mjk4MkNCMDA3NTA2MjQgLyog
SlNBcmd1bWVudHNJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC00OTY5LDYgKzUwNDMsOCBA
QAogCQkJCUJDMThDNDIzMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0xvY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCUMyNUQ3MDlDMTZERTk5RjQwMEZDQTZCQyAvKiBKU01hbmFnZWRWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTcwMDg3NDIxN0NCRThFQjAwQzNFNjQzIC8qIEpTTWFwLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjNBQzc1NDE4OEU1RUM4MDAzMjAyOUYgLyogRXhpdGluZ0pJVFR5cGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0M0MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdp
c3RlckF0T2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDg3NEFFNDE1RUJERTRBMDAyRTM1
ODcgLyogSlNOYW1lU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDI0MEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBKU09iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjUwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTT2JqZWN0UmVmLmggaW4gSGVhZGVycyAqLywKQEAgLTUyNzMsNiArNTM0
OSw3IEBACiAJCQkJOTY4OENCMTYwRUQxMkI0RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDUxNTM5QjkxMkRDOTk0NTAwRUY3QUM0IC8qIFlhcnIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNjY2RUNEMTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rp
b25Gb3JWYWxpZGF0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0NBMTg2NDFE
RjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODY3MDRCODUxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTU1RDkzQTYxODUwMTJBODAwNDAwREVEIC8qIFNjcmlwdEZ1bmN0aW9u
Q2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY3MDRCODcxMkRCQTMzNzAwQTlGRTdCIC8qIFlh
cnJKSVQuaCBpbiBIZWFkZXJzICovLApAQCAtNTcxNiw2ICs1NzkzLDcgQEAKIAkJCQkxNDI5RDhE
RDBFRDIyMDVCMDBCODk2MTkgLyogQ2FsbEZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
MEI4M0IwMTRCQ0Y3MTYwMDg4NUI0RiAvKiBDYWxsTGlua0luZm8uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTUxM0U1QjcxODVCOEJEMzAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTBGNUE2MjgzMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTMzMjlEMTRDQTdEQzMwMDg1RjNDNiAvKiBDYWxs
TGlua1N0YXR1cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjczRDdBRTE2NUExNDJEMDBBQ0FC
NzEgLyogQ2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NjlB
MDc5NjBFRDFEM0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
NTc1NCw2ICs1ODMyLDcgQEAKIAkJCQkwRjYzOTQ4NDE1RTQ4MTE4MDA2QTU5N0MgLyogREZHQXJy
YXlNb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDlBMjk0MTdBMEJDNzQwMEVFMjYxOCAv
KiBERkdBdFRhaWxBYnN0cmFjdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzE0Q0E0
MTZFQTkyRjAwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUZFQjU4QzE0MTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5n
U2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRjIxN0EwQjhDQzAwNzczQUQ4IC8q
IERGR0Jhc2ljQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcwQjA4MzIxN0EwQjc5QjAw
REFGMTRCIC8qIERGR0JpbmFyeVN3aXRjaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNG
MzE3QTBCOENDMDA3NzNBRDggLyogREZHQmxvY2tJbnNlcnRpb25TZXQuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC01ODMxLDkgKzU5MTAsMTEgQEAKIAkJCQk4Njg4MEY0RDE0MzUzQjIxMDBCMDhENDIg
LyogREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNGRjE3
QTBCOENDMDA3NzNBRDggLyogREZHU1NBQ29udmVyc2lvblBoYXNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGOUZCNEY0MTdGQ0I5MTcwMENCNjdGOCAvKiBERkdTdGFja0xheW91dFBoYXNlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0JEMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3Rl
clByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZD
MDk3QTExNDZCMjhDQTAwQ0YyNDQyIC8qIERGR1RodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkQ4QTMyNzE3RDUxRjU3MDBDQTJDNDAgLyogREZHVGllclVwQ2hlY2tJbmplY3Rpb25QaGFz
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyOTE3RDUxRjU3MDBDQTJDNDAgLyogREZH
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY0ODUzMjcxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRDhBMzJCMTdENTFGNTcwMENBMkM0MCAvKiBERkdUb0ZUTEZvck9T
UkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGNjM5NDQwMTVDNzVGMUQwMDZBNTk3QyAvKiBERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGQkUwRjc2MTZDMURCMEYwMDgyQzVFOCAvKiBERkdVbmlm
aWNhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTg5Miw5ICs1OTczLDExIEBACiAJ
CQkJMEZDRUZBQUIxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMjVGMUIxMTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0aENhbGwu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyNUYxQjMxODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNs
b3dQYXRoQ2FsbEtleS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZCMUNDNTE4NjJDNDc4MDA4
NDVEOTcgLyogRlRMVW53aW5kSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlEMzM5QTE4
MDNBREI3MDA3M0MyQkMgLyogRlRMU3RhY2tNYXBzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RUEwQTE2MTcwNkJCOTAwMEJCNzIyQyAvKiBGVExTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk3QzAwOENEMjE4NkY4QTkzMDA5NTVDMjQgLyogSlNQcm9taXNlRnVuY3Rpb25zLmNwcCBpbiBT
b3VyY2VzICovLAorIAkJCQk3QzAwOENEMjE4NkY4QTkzMDA5NTVDMjQgLyogSlNQcm9taXNlRnVu
Y3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0I1MTg1RkM5RTkwMDg0NUQ5NyAv
KiBGVExKU0NhbGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyMzVCRTExNzE3OEUxQzAwNjkw
QzdGIC8qIEZUTFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTkzQ0Y3QzE4NDAzNjAz
MDBCRkNFMjcgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEYyMzVCRTMxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFZhbHVlRm9ybWF0LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtNTk4MCw2ICs2MDYzLDcgQEAKIAkJCQkxNDI4MDg3NTEwN0VDMTNFMDAx
M0U3QjIgLyogSlNMb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyNUQ3MDlCMTZERTk5RjQw
MEZDQTZCQyAvKiBKU01hbmFnZWRWYWx1ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE3MDA4NzQx
MTdDQkU4RUIwMEMzRTY0MyAvKiBKU01hcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjQ4NTMy
OTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTQ4NzRBRTMxNUVCREU0QTAwMkUzNTg3IC8qIEpTTmFtZVNjb3BlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE3MjcwMDkwMERBQzZCQkMwMEU1NDhENyAvKiBKU05vdEFuT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUQ0MTA3RUMzNzYwMDQyN0E0OCAvKiBKU09iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTYwOTYsNiArNjE4MCw3IEBACiAJCQkJMEY2NjZFQ0Mx
ODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkIxMDU4QjE2NzU0ODMxMDBGOEFCNkUgLyogUHJvZmlsZXJP
U1JFeGl0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQjEwNThEMTY3NTQ4MzcwMEY4QUI2RSAv
KiBQcm9maWxlck9TUkV4aXRTaXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0MzMTg2
MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMTM5MTJCMTY3NzFDM0EwMDlDQ0IwNyAvKiBQcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RkI2MEE0MTAzRjdEQzIwMDE3QTI4NiAvKiBQcm9w
ZXJ0eURlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTcxMDdFQzdFNzAw
NjUwNDQ2IC8qIFByb3BlcnR5TmFtZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjEyNSw2
ICs2MjEwLDcgQEAKIAkJCQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUgLyogU291cmNlQ29kZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNl
UHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ5REMxNkIxMkVGMjkzRTAwMTg0QTFG
IC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQzkx
ODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMENENEM0MTVGNkI2QkIwMDMyRjFDMCAvKiBTcGFyc2VBcnJheVZhbHVl
TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTU0MUIxMTYxM0MxRkIwMENFM0UyNSAvKiBT
cGVjaWFsUG9pbnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4MkU4NjE0MUYzRkYxMDAx
NzlDOTQgLyogU3BlY3VsYXRlZFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1i
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE0ICs0MCwyNiBAQAogI2RlZmluZSBEQVRBU0la
RSBEQVRBU0laRV9PRihkYXRhc2l6ZSkKICNkZWZpbmUgTUVNT1BTSVpFIE1FTU9QU0laRV9PRihk
YXRhc2l6ZSkKICNkZWZpbmUgQ0hFQ0tfRlBfTUVNT1BfREFUQVNJWkUoKSBBU1NFUlQoZGF0YXNp
emUgPT0gOCB8fCBkYXRhc2l6ZSA9PSAxNiB8fCBkYXRhc2l6ZSA9PSAzMiB8fCBkYXRhc2l6ZSA9
PSA2NCB8fCBkYXRhc2l6ZSA9PSAxMjgpCisjZGVmaW5lIE1FTVBBSVJPUFNJWkVfSU5UKGRhdGFz
aXplKSAoKGRhdGFzaXplID09IDY0KSA/IE1lbVBhaXJPcF82NCA6IE1lbVBhaXJPcF8zMikKKyNk
ZWZpbmUgTUVNUEFJUk9QU0laRV9GUChkYXRhc2l6ZSkgKChkYXRhc2l6ZSA9PSAxMjgpID8gTWVt
UGFpck9wX1YxMjggOiAoZGF0YXNpemUgPT0gNjQpID8gTWVtUGFpck9wX1Y2NCA6IE1lbVBhaXJP
cF8zMikKIAogbmFtZXNwYWNlIEpTQyB7CiAKK0FMV0FZU19JTkxJTkUgYm9vbCBpc0ludDcoaW50
MzJfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPT0gKCh2YWx1ZSA8PCAyNSkgPj4gMjUp
OworfQorCiBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJbnQ5KGludDMyX3QgdmFsdWUpCiB7CiAgICAg
cmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMjMpID4+IDIzKTsKIH0KIAorQUxXQVlTX0lOTElO
RSBib29sIGlzSW50MTEoaW50MzJfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPT0gKCh2
YWx1ZSA8PCAyMSkgPj4gMjEpOworfQorCiBBTFdBWVNfSU5MSU5FIGJvb2wgaXNVSW50NShpbnQz
Ml90IHZhbHVlKQogewogICAgIHJldHVybiAhKHZhbHVlICYgfjB4MWYpOwpAQCAtMTE5LDYgKzEz
MSwzNCBAQCBwcml2YXRlOgogICAgIGludCBtX3ZhbHVlOwogfTsKIAorY2xhc3MgUGFpclBvc3RJ
bmRleCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGFpclBvc3RJbmRleChpbnQgdmFsdWUpCisg
ICAgICAgIDogbV92YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0ludDExKHZh
bHVlKSk7CisgICAgfQorCisgICAgb3BlcmF0b3IgaW50KCkgeyByZXR1cm4gbV92YWx1ZTsgfQor
Citwcml2YXRlOgorICAgIGludCBtX3ZhbHVlOworfTsKKworY2xhc3MgUGFpclByZUluZGV4IHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBQYWlyUHJlSW5kZXgoaW50IHZhbHVlKQorICAgICAgICA6
IG1fdmFsdWUodmFsdWUpCisgICAgeworICAgICAgICBBU1NFUlQoaXNJbnQxMSh2YWx1ZSkpOwor
ICAgIH0KKworICAgIG9wZXJhdG9yIGludCgpIHsgcmV0dXJuIG1fdmFsdWU7IH0KKworcHJpdmF0
ZToKKyAgICBpbnQgbV92YWx1ZTsKK307CisKIGNsYXNzIExvZ2ljYWxJbW1lZGlhdGUgewogcHVi
bGljOgogICAgIHN0YXRpYyBMb2dpY2FsSW1tZWRpYXRlIGNyZWF0ZTMyKHVpbnQzMl90IHZhbHVl
KQpAQCAtODIzLDYgKzg2MywxNiBAQCBwcml2YXRlOgogICAgICAgICBNZW1PcF9MT0FEX3NpZ25l
ZDMyID0gMyAvLyBzaXplIG1heSBiZSAwIG9yIDEKICAgICB9OwogCisgICAgZW51bSBNZW1QYWly
T3BTaXplIHsKKyAgICAgICAgTWVtUGFpck9wXzMyID0gMCwKKyAgICAgICAgTWVtUGFpck9wX0xv
YWRTaWduZWRfMzIgPSAxLAorICAgICAgICBNZW1QYWlyT3BfNjQgPSAyLAorCisgICAgICAgIE1l
bVBhaXJPcF9WMzIgPSBNZW1QYWlyT3BfMzIsCisgICAgICAgIE1lbVBhaXJPcF9WNjQgPSAxLAor
ICAgICAgICBNZW1QYWlyT3BfVjEyOCA9IDIKKyAgICB9OworCiAgICAgZW51bSBNb3ZlV2lkZU9w
IHsKICAgICAgICAgTW92ZVdpZGVPcF9OID0gMCwKICAgICAgICAgTW92ZVdpZGVPcF9aID0gMiwK
QEAgLTgzNiw2ICs4ODYsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgTGRyTGl0ZXJhbE9wXzEyOEJJ
VCA9IDIKICAgICB9OwogCisgICAgc3RhdGljIHVuc2lnbmVkIG1lbVBhaXJPZmZzZXRTaGlmdChi
b29sIFYsIE1lbVBhaXJPcFNpemUgc2l6ZSkKKyAgICB7CisgICAgICAgIC8vIHJldHVybiB0aGUg
bG9nMiBvZiB0aGUgc2l6ZSBpbiBieXRlcywgZS5nLiA2NCBiaXQgc2l6ZSByZXR1cm5zIDMKKyAg
ICAgICAgaWYgKFYpCisgICAgICAgICAgICByZXR1cm4gc2l6ZSArIDI7CisgICAgICAgIHJldHVy
biAoc2l6ZSA+PiAxKSArIDI7CisgICAgfQorCiBwdWJsaWM6CiAgICAgLy8gSW50ZWdlciBJbnN0
cnVjdGlvbnM6CiAKQEAgLTg3MSw4ICs5MjksOSBAQCBwdWJsaWM6CiAgICAgQUxXQVlTX0lOTElO
RSB2b2lkIGFkZChSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtLCBT
aGlmdFR5cGUgc2hpZnQsIGludCBhbW91bnQpCiAgICAgewogICAgICAgICBDSEVDS19EQVRBU0la
RSgpOwotICAgICAgICBpZiAoaXNTcChybikpIHsKKyAgICAgICAgaWYgKGlzU3AocmQpIHx8IGlz
U3Aocm4pKSB7CiAgICAgICAgICAgICBBU1NFUlQoc2hpZnQgPT0gTFNMKTsKKyAgICAgICAgICAg
IEFTU0VSVCghaXNTcChybSkpOwogICAgICAgICAgICAgYWRkPGRhdGFzaXplLCBzZXRGbGFncz4o
cmQsIHJuLCBybSwgVVhUWCwgYW1vdW50KTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBp
bnNuKGFkZFN1YnRyYWN0U2hpZnRlZFJlZ2lzdGVyKERBVEFTSVpFLCBBZGRPcF9BREQsIHNldEZs
YWdzLCBzaGlmdCwgcm0sIGFtb3VudCwgcm4sIHJkKSk7CkBAIC0xMjE2LDYgKzEyNzUsMjAgQEAg
cHVibGljOgogICAgIH0KIAogICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgbGRwKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklE
IHJuLCBQYWlyUG9zdEluZGV4IHNpbW0pCisgICAgeworICAgICAgICBDSEVDS19EQVRBU0laRSgp
OworICAgICAgICBpbnNuKGxvYWRTdG9yZVJlZ2lzdGVyUGFpclBvc3RJbmRleChNRU1QQUlST1BT
SVpFX0lOVChkYXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9MT0FELCBzaW1tLCBybiwgcnQsIHJ0Mikp
OworICAgIH0KKworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgbGRwKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBQ
YWlyUHJlSW5kZXggc2ltbSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7CisgICAg
ICAgIGluc24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoTUVNUEFJUk9QU0laRV9JTlQo
ZGF0YXNpemUpLCBmYWxzZSwgTWVtT3BfTE9BRCwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGxk
cihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKICAg
ICAgICAgbGRyPGRhdGFzaXplPihydCwgcm4sIHJtLCBVWFRYLCAwKTsKQEAgLTE3NDgsNiArMTgy
MSwyMCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAg
IEFMV0FZU19JTkxJTkUgdm9pZCBzdHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJl
Z2lzdGVySUQgcm4sIFBhaXJQb3N0SW5kZXggc2ltbSkKKyAgICB7CisgICAgICAgIENIRUNLX0RB
VEFTSVpFKCk7CisgICAgICAgIGluc24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1F
TVBBSVJPUFNJWkVfSU5UKGRhdGFzaXplKSwgZmFsc2UsIE1lbU9wX1NUT1JFLCBzaW1tLCBybiwg
cnQsIHJ0MikpOworICAgIH0KKworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgc3RwKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyLCBSZWdpc3Rl
cklEIHJuLCBQYWlyUHJlSW5kZXggc2ltbSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpF
KCk7CisgICAgICAgIGluc24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoTUVNUEFJUk9Q
U0laRV9JTlQoZGF0YXNpemUpLCBmYWxzZSwgTWVtT3BfU1RPUkUsIHNpbW0sIHJuLCBydCwgcnQy
KSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgogICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBzdHIoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSkK
ICAgICB7CiAgICAgICAgIHN0cjxkYXRhc2l6ZT4ocnQsIHJuLCBybSwgVVhUWCwgMCk7CkBAIC0x
ODc2LDggKzE5NjMsOSBAQCBwdWJsaWM6CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHN1YihSZWdp
c3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtLCBTaGlmdFR5cGUgc2hpZnQs
IGludCBhbW91bnQpCiAgICAgewogICAgICAgICBDSEVDS19EQVRBU0laRSgpOwotICAgICAgICBp
ZiAoaXNTcChybikpIHsKKyAgICAgICAgaWYgKGlzU3AocmQpIHx8IGlzU3Aocm4pKSB7CiAgICAg
ICAgICAgICBBU1NFUlQoc2hpZnQgPT0gTFNMKTsKKyAgICAgICAgICAgIEFTU0VSVCghaXNTcChy
bSkpOwogICAgICAgICAgICAgc3ViPGRhdGFzaXplLCBzZXRGbGFncz4ocmQsIHJuLCBybSwgVVhU
WCwgYW1vdW50KTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBpbnNuKGFkZFN1YnRyYWN0
U2hpZnRlZFJlZ2lzdGVyKERBVEFTSVpFLCBBZGRPcF9TVUIsIHNldEZsYWdzLCBzaGlmdCwgcm0s
IGFtb3VudCwgcm4sIHJkKSk7CkBAIC0zMzYxLDYgKzM0NDksMjMgQEAgcHJpdmF0ZToKICAgICB9
CiAKICAgICAvLyAnVicgbWVhbnMgdmVjdG9yCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgaW50
IGxvYWRTdG9yZVJlZ2lzdGVyUGFpclBvc3RJbmRleChNZW1QYWlyT3BTaXplIHNpemUsIGJvb2wg
ViwgTWVtT3Agb3BjLCBpbnQgaW1tZWRpYXRlLCBSZWdpc3RlcklEIHJuLCBGUFJlZ2lzdGVySUQg
cnQsIEZQUmVnaXN0ZXJJRCBydDIpCisgICAgeworICAgICAgICBBU1NFUlQoc2l6ZSA8IDMpOwor
ICAgICAgICBBU1NFUlQob3BjID09IChvcGMgJiAxKSk7IC8vIE9ubHkgbG9hZCBvciBzdG9yZSwg
bG9hZCBzaWduZWQgNjQgaXMgaGFuZGxlZCB2aWEgc2l6ZS4KKyAgICAgICAgQVNTRVJUKFYgfHwg
KHNpemUgIT0gTWVtUGFpck9wX0xvYWRTaWduZWRfMzIpIHx8IChvcGMgPT0gTWVtT3BfTE9BRCkp
OyAvLyBUaGVyZSBpc24ndCBhbiBpbnRlZ2VyIHN0b3JlIHNpZ25lZC4KKyAgICAgICAgdW5zaWdu
ZWQgaW1tZWRTaGlmdEFtb3VudCA9IG1lbVBhaXJPZmZzZXRTaGlmdChWLCBzaXplKTsKKyAgICAg
ICAgaW50IGltbTcgPSBpbW1lZGlhdGUgPj4gaW1tZWRTaGlmdEFtb3VudDsKKyAgICAgICAgQVNT
RVJUKChpbW03IDw8IGltbWVkU2hpZnRBbW91bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDcoaW1t
NykpOworICAgICAgICByZXR1cm4gKDB4Mjg4MDAwMDAgfCBzaXplIDw8IDMwIHwgViA8PCAyNiB8
IG9wYyA8PCAyMiB8IChpbW03ICYgMHg3ZikgPDwgMTUgfCBydDIgPDwgMTAgfCB4T3JTcChybikg
PDwgNSB8IHJ0KTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0
b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1lbVBhaXJPcFNpemUgc2l6ZSwgYm9vbCBWLCBNZW1P
cCBvcGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcnQsIFJlZ2lz
dGVySUQgcnQyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxvYWRTdG9yZVJlZ2lzdGVyUGFpclBv
c3RJbmRleChzaXplLCBWLCBvcGMsIGltbWVkaWF0ZSwgcm4sIHhPclpyQXNGUFIocnQpLCB4T3Ja
ckFzRlBSKHJ0MikpOworICAgIH0KKworICAgIC8vICdWJyBtZWFucyB2ZWN0b3IKICAgICBBTFdB
WVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJQcmVJbmRleChNZW1PcFNpemUg
c2l6ZSwgYm9vbCBWLCBNZW1PcCBvcGMsIGludCBpbW05LCBSZWdpc3RlcklEIHJuLCBGUFJlZ2lz
dGVySUQgcnQpCiAgICAgewogICAgICAgICBBU1NFUlQoIShzaXplICYmIFYgJiYgKG9wYyAmIDIp
KSk7IC8vIE1heGltdW0gdmVjdG9yIHNpemUgaXMgMTI4IGJpdHMuCkBAIC0zMzc1LDYgKzM0ODAs
MjMgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICAvLyAnVicgbWVhbnMgdmVjdG9yCisgICAgQUxX
QVlTX0lOTElORSBzdGF0aWMgaW50IGxvYWRTdG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KE1lbVBh
aXJPcFNpemUgc2l6ZSwgYm9vbCBWLCBNZW1PcCBvcGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVy
SUQgcm4sIEZQUmVnaXN0ZXJJRCBydCwgRlBSZWdpc3RlcklEIHJ0MikKKyAgICB7CisgICAgICAg
IEFTU0VSVChzaXplIDwgMyk7CisgICAgICAgIEFTU0VSVChvcGMgPT0gKG9wYyAmIDEpKTsgLy8g
T25seSBsb2FkIG9yIHN0b3JlLCBsb2FkIHNpZ25lZCA2NCBpcyBoYW5kbGVkIHZpYSBzaXplLgor
ICAgICAgICBBU1NFUlQoViB8fCAoc2l6ZSAhPSBNZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwg
KG9wYyA9PSBNZW1PcF9MT0FEKSk7IC8vIFRoZXJlIGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2ln
bmVkLgorICAgICAgICB1bnNpZ25lZCBpbW1lZFNoaWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNo
aWZ0KFYsIHNpemUpOworICAgICAgICBpbnQgaW1tNyA9IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0
QW1vdW50OworICAgICAgICBBU1NFUlQoKGltbTcgPDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1t
ZWRpYXRlICYmIGlzSW50NyhpbW03KSk7CisgICAgICAgIHJldHVybiAoMHgyOTgwMDAwMCB8IHNp
emUgPDwgMzAgfCBWIDw8IDI2IHwgb3BjIDw8IDIyIHwgKGltbTcgJiAweDdmKSA8PCAxNSB8IHJ0
MiA8PCAxMCB8IHhPclNwKHJuKSA8PCA1IHwgcnQpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJ
TkUgc3RhdGljIGludCBsb2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNZW1QYWlyT3BTaXpl
IHNpemUsIGJvb2wgViwgTWVtT3Agb3BjLCBpbnQgaW1tZWRpYXRlLCBSZWdpc3RlcklEIHJuLCBS
ZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0MikKKyAgICB7CisgICAgICAgIHJldHVybiBsb2Fk
U3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChzaXplLCBWLCBvcGMsIGltbWVkaWF0ZSwgcm4sIHhP
clpyQXNGUFIocnQpLCB4T3JackFzRlBSKHJ0MikpOworICAgIH0KKworICAgIC8vICdWJyBtZWFu
cyB2ZWN0b3IKICAgICAvLyAnUycgbWVhbnMgc2hpZnQgcm0KICAgICBBTFdBWVNfSU5MSU5FIHN0
YXRpYyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJSZWdpc3Rlck9mZnNldChNZW1PcFNpemUgc2l6ZSwg
Ym9vbCBWLCBNZW1PcCBvcGMsIFJlZ2lzdGVySUQgcm0sIEV4dGVuZFR5cGUgb3B0aW9uLCBib29s
IFMsIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0ZXJJRCBydCkKICAgICB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1i
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1NCw2ICs2NTQsOCBAQCBwcml2YXRlOgogICAgIHR5
cGVkZWYgZW51bSB7CiAgICAgICAgIE9QX0JfVDEgICAgICAgICA9IDB4RDAwMCwKICAgICAgICAg
T1BfQl9UMiAgICAgICAgID0gMHhFMDAwLAorICAgICAgICBPUF9QT1BfVDIgICAgICAgPSAweEU4
QkQsCisgICAgICAgIE9QX1BVU0hfVDIgICAgICA9IDB4RTkyRCwKICAgICAgICAgT1BfQU5EX3Jl
Z19UMiAgID0gMHhFQTAwLAogICAgICAgICBPUF9UU1RfcmVnX1QyICAgPSAweEVBMTAsCiAgICAg
ICAgIE9QX09SUl9yZWdfVDIgICA9IDB4RUE0MCwKQEAgLTg5NCw2ICs4OTYsMTEgQEAgcHVibGlj
OgogICAgIC8vIE5PVEU6IEluIGFuIElUIGJsb2NrLCBhZGQgZG9lc24ndCBtb2RpZnkgdGhlIGZs
YWdzIHJlZ2lzdGVyLgogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhZGQoUmVnaXN0ZXJJRCByZCwg
UmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSkKICAgICB7CisgICAgICAgIGlmIChyZCA9PSBB
Uk1SZWdpc3RlcnM6OnNwKSB7CisgICAgICAgICAgICBtb3YocmQsIHJuKTsKKyAgICAgICAgICAg
IHJuID0gcmQ7CisgICAgICAgIH0KKwogICAgICAgICBpZiAocmQgPT0gcm4pCiAgICAgICAgICAg
ICBtX2Zvcm1hdHRlci5vbmVXb3JkT3A4UmVnUmVnMTQzKE9QX0FERF9yZWdfVDIsIHJtLCByZCk7
CiAgICAgICAgIGVsc2UgaWYgKHJkID09IHJtKQpAQCAtMTQ4OCw2ICsxNDk1LDIyIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0Rm91ckZvdXJzKE9QX1JPUl9y
ZWdfVDIsIHJuLCBGb3VyRm91cnMoMHhmLCByZCwgMCwgcm0pKTsKICAgICB9CiAKKyAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgcG9wKHVpbnQzMl90IHJlZ2lzdGVyTGlzdCkKKyAgICB7CisgICAgICAg
IEFTU0VSVChXVEY6OmJpdENvdW50KHJlZ2lzdGVyTGlzdCkgPiAxKTsKKyAgICAgICAgQVNTRVJU
KCEoKDEgPDwgQVJNUmVnaXN0ZXJzOjpwYykgJiByZWdpc3Rlckxpc3QpIHx8ICEoKDEgPDwgQVJN
UmVnaXN0ZXJzOjpscikgJiByZWdpc3Rlckxpc3QpKTsKKyAgICAgICAgQVNTRVJUKCEoKDEgPDwg
QVJNUmVnaXN0ZXJzOjpzcCkgJiByZWdpc3Rlckxpc3QpKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIu
dHdvV29yZE9wMTZJbW0xNihPUF9QT1BfVDIsIHJlZ2lzdGVyTGlzdCk7CisgICAgfQorCisgICAg
QUxXQVlTX0lOTElORSB2b2lkIHB1c2godWludDMyX3QgcmVnaXN0ZXJMaXN0KQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKFdURjo6Yml0Q291bnQocmVnaXN0ZXJMaXN0KSA+IDEpOworICAgICAgICBB
U1NFUlQoISgoMSA8PCBBUk1SZWdpc3RlcnM6OnBjKSAmIHJlZ2lzdGVyTGlzdCkpOworICAgICAg
ICBBU1NFUlQoISgoMSA8PCBBUk1SZWdpc3RlcnM6OnNwKSAmIHJlZ2lzdGVyTGlzdCkpOworICAg
ICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxNkltbTE2KE9QX1BVU0hfVDIsIHJlZ2lzdGVyTGlz
dCk7CisgICAgfQorCiAjaWYgQ1BVKEFQUExFX0FSTVY3UykKICAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgc2RpdihSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAg
IHsKQEAgLTI3OTEsNiArMjgxNCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9idWZmZXIu
cHV0U2hvcnQob3AyKTsKICAgICAgICAgfQogCisgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCB0
d29Xb3JkT3AxNkltbTE2KE9wY29kZUlEMSBvcDEsIHVpbnQxNl90IGltbSkKKyAgICAgICAgewor
ICAgICAgICAgICAgbV9idWZmZXIucHV0U2hvcnQob3AxKTsKKyAgICAgICAgICAgIG1fYnVmZmVy
LnB1dFNob3J0KGltbSk7CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCB0d29Xb3JkT3A1aTZJbW00UmVnNEVuY29kZWRJbW0oT3Bjb2RlSUQxIG9wLCBpbnQg
aW1tNCwgUmVnaXN0ZXJJRCByZCwgQVJNVGh1bWJJbW1lZGlhdGUgaW1tKQogICAgICAgICB7CiAg
ICAgICAgICAgICBBUk1UaHVtYkltbWVkaWF0ZSBuZXdJbW0gPSBpbW07CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3Nl
bWJsZXIuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MCw3ICsx
NDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBBZGRyZXNzKGJh
c2UsIG9mZnNldCArIGFkZGl0aW9uYWxPZmZzZXQpOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAg
ICAgICAgIFJlZ2lzdGVySUQgYmFzZTsKICAgICAgICAgaW50MzJfdCBvZmZzZXQ7CiAgICAgfTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNw
cAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9M
aW5rQnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTIgKzI4LDIxIEBA
CiAKICNpZiBFTkFCTEUoQVNTRU1CTEVSKQogCisjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5j
bHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJWTS5oIgog
I2luY2x1ZGUgPHd0Zi9Db21waWxhdGlvblRocmVhZC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAor
Ym9vbCBzaG91bGRTaG93RGlzYXNzZW1ibHlGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCit7Cisg
ICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChjb2RlQmxvY2stPmppdFR5cGUoKSkgJiYg
T3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IHJldHVybiBPcHRpb25zOjpzaG93RGlzYXNzZW1ibHkoKTsKK30KKwogTGlua0J1ZmZlcjo6Q29k
ZVJlZiBMaW5rQnVmZmVyOjpmaW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKQogewogICAg
IHBlcmZvcm1GaW5hbGl6YXRpb24oKTsKQEAgLTQ3LDggKzU2LDYgQEAgTGlua0J1ZmZlcjo6Q29k
ZVJlZiBMaW5rQnVmZmVyOjpmaW5hbGl6ZQogCiBMaW5rQnVmZmVyOjpDb2RlUmVmIExpbmtCdWZm
ZXI6OmZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseShjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikK
IHsKLSAgICBBU1NFUlQoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6c2hv
d0RGR0Rpc2Fzc2VtYmx5KCkpOwotICAgIAogICAgIENvZGVSZWYgcmVzdWx0ID0gZmluYWxpemVD
b2RlV2l0aG91dERpc2Fzc2VtYmx5KCk7CiAKICNpZiBFTkFCTEUoRElTQVNTRU1CTEVSKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSwgMjAxMCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
Myw2ICs0Myw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitjbGFzcyBDb2RlQmxvY2s7CiBjbGFz
cyBWTTsKIAogLy8gTGlua0J1ZmZlcjoKQEAgLTE2NCw2ICsxNjUsMTEgQEAgcHVibGljOgogICAg
IH0KIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgdG8gb2J0YWluIGhhbmRsZXMgdG8g
YWxsb3cgdGhlIGNvZGUgdG8gYmUgcmVsaW5rZWQgLyByZXBhdGNoZWQgbGF0ZXIuCisgICAgCisg
ICAgQ29kZUxvY2F0aW9uTGFiZWwgZW50cnlwb2ludCgpCisgICAgeworICAgICAgICByZXR1cm4g
Q29kZUxvY2F0aW9uTGFiZWwoY29kZSgpKTsKKyAgICB9CiAKICAgICBDb2RlTG9jYXRpb25DYWxs
IGxvY2F0aW9uT2YoQ2FsbCBjYWxsKQogICAgIHsKQEAgLTMwMyw2ICszMDksMTEgQEAgcHJpdmF0
ZToKICAgICAgPyAoKGxpbmtCdWZmZXJSZWZlcmVuY2UpLmZpbmFsaXplQ29kZVdpdGhEaXNhc3Nl
bWJseSBkYXRhTG9nRkFyZ3VtZW50c0ZvckhlYWRpbmcpIFwKICAgICAgOiAobGlua0J1ZmZlclJl
ZmVyZW5jZSkuZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2VtYmx5KCkpCiAKK2Jvb2wgc2hvdWxk
U2hvd0Rpc2Fzc2VtYmx5Rm9yKENvZGVCbG9jayopOworCisjZGVmaW5lIEZJTkFMSVpFX0NPREVf
Rk9SKGNvZGVCbG9jaywgbGlua0J1ZmZlclJlZmVyZW5jZSwgZGF0YUxvZ0ZBcmd1bWVudHNGb3JI
ZWFkaW5nKSAgXAorICAgIEZJTkFMSVpFX0NPREVfSUYoc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5Rm9y
KGNvZGVCbG9jayksIGxpbmtCdWZmZXJSZWZlcmVuY2UsIGRhdGFMb2dGQXJndW1lbnRzRm9ySGVh
ZGluZykKKwogLy8gVXNlIHRoaXMgdG8gZmluYWxpemUgY29kZSwgbGlrZSBzbzoKIC8vCiAvLyBD
b2RlUmVmIGNvZGUgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsICgibXkgc3VwZXIgdGhpbmd5
IG51bWJlciAlZCIsIG51bWJlcikpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC01OTUsNiArNTk1LDExIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1t
MzIoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1t
MzIgaW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIHN0b3JlMzIo
aW1tLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIg
aW1tLCBCYXNlSW5kZXggYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3JlMzIoVHJ1c3RlZElt
bTMyKGltbSksIGFkZHJlc3MpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMDEsNyArMjAxLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRk
NjQoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1fYXNz
ZW1ibGVyLmFkZDw2ND4oZGVzdCwgZGVzdCwgc3JjKTsKKyAgICAgICAgaWYgKHNyYyA9PSBBUk02
NFJlZ2lzdGVyczo6c3ApCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIHNy
YywgZGVzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4o
ZGVzdCwgZGVzdCwgc3JjKTsKICAgICB9CiAKICAgICB2b2lkIGFkZDY0KFRydXN0ZWRJbW0zMiBp
bW0sIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTE0MzcsNiArMTQ0MCwxNiBAQCBwdWJsaWM6CiAgICAg
ICAgIENSQVNIKCk7CiAgICAgfQogCisgICAgdm9pZCBwb3BQYWlyKFJlZ2lzdGVySUQgZGVzdDEs
IFJlZ2lzdGVySUQgZGVzdDIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5sZHA8NjQ+KGRl
c3QxLCBkZXN0MiwgQVJNNjRSZWdpc3RlcnM6OnNwLCBQYWlyUG9zdEluZGV4KDE2KSk7CisgICAg
fQorCisgICAgdm9pZCBwdXNoUGFpcihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMikK
KyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnN0cDw2ND4oc3JjMSwgc3JjMiwgQVJNNjRSZWdp
c3RlcnM6OnNwLCBQYWlyUHJlSW5kZXgoLTE2KSk7CisgICAgfQorCiAgICAgdm9pZCBwb3BUb1Jl
c3RvcmUoUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRyPDY0
PihkZXN0LCBBUk02NFJlZ2lzdGVyczo6c3AsIFBvc3RJbmRleCgxNikpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3
LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNiArMTcwLDE0IEBA
IHB1YmxpYzoKICAgICB2b2lkIGFkZDMyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3Jj
LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1J
bW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQxMk9yRW5jb2RlZEltbShpbW0ubV92YWx1
ZSk7CisKKyAgICAgICAgLy8gRm9yIGFkZHMgd2l0aCBzdGFjayBwb2ludGVyIGRlc3RpbmF0aW9u
LCBtb3ZpbmcgdGhlIHNyYyBmaXJzdCB0byBzcCBpcworICAgICAgICAvLyBuZWVkZWQgdG8gYXZv
aWQgdW5wcmVkaWN0YWJsZSBpbnN0cnVjdGlvbgorICAgICAgICBpZiAoZGVzdCA9PSBBUk1SZWdp
c3RlcnM6OnNwICYmIHNyYyAhPSBkZXN0KSB7CisgICAgICAgICAgICBtb3ZlKHNyYywgQVJNUmVn
aXN0ZXJzOjpzcCk7CisgICAgICAgICAgICBzcmMgPSBBUk1SZWdpc3RlcnM6OnNwOworICAgICAg
ICB9CisKICAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5hZGQoZGVzdCwgc3JjLCBhcm1JbW0pOwogICAgICAgICBlbHNlIHsKQEAgLTExNjAsNiAr
MTE2OCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHB1c2goZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAg
fQogCisgICAgdm9pZCBwb3BQYWlyKFJlZ2lzdGVySUQgZGVzdDEsIFJlZ2lzdGVySUQgZGVzdDIp
CisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5wb3AoMSA8PCBkZXN0MSB8IDEgPDwgZGVzdDIp
OworICAgIH0KKyAgICAKKyAgICB2b2lkIHB1c2hQYWlyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0
ZXJJRCBzcmMyKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucHVzaCgxIDw8IHNyYzEgfCAx
IDw8IHNyYzIpOworICAgIH0KKyAgICAKICAgICAvLyBSZWdpc3RlciBtb3ZlIG9wZXJhdGlvbnM6
CiAgICAgLy8KICAgICAvLyBNb3ZlIHZhbHVlcyBpbiByZWdpc3RlcnMuCkBAIC0xMjgxLDExICsx
Mjk5LDE5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3QocmVnLCByZWcp
OwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFSTVRodW1iSW1tZWRpYXRlIGFybUltbSA9
IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2RlZEltbShpbW0pOwotICAgICAgICAgICAgaWYg
KGFybUltbS5pc1ZhbGlkKCkpCi0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0KHJlZywg
YXJtSW1tKTsKLSAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGFybUltbS5pc1Zh
bGlkKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVnID09IEFSTVJlZ2lzdGVyczo6c3ApIHsK
KyAgICAgICAgICAgICAgICAgICAgbW92ZShyZWcsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAg
ICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3QoYWRkcmVzc1RlbXBSZWdpc3RlciwgYXJt
SW1tKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9hc3Nl
bWJsZXIudHN0KHJlZywgYXJtSW1tKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgbW92ZShtYXNrLCBkYXRhVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAgICBtX2Fz
c2VtYmxlci50c3QocmVnLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBpZiAo
cmVnID09IEFSTVJlZ2lzdGVyczo6c3ApIHsKKyAgICAgICAgICAgICAgICAgICAgbW92ZShyZWcs
IGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci50
c3QoYWRkcmVzc1RlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIGRhdGFU
ZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
Q29kZVJlZi5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQsNiAr
MjU0LDExIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkKiB2YWx1ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdmFsdWU7IH0KKyAgICAKKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29u
c3QKKyAgICB7CisgICAgICAgIG91dC5wcmludChSYXdQb2ludGVyKG1fdmFsdWUpKTsKKyAgICB9
CiAKIHByaXZhdGU6CiAgICAgdm9pZCogbV92YWx1ZTsKQEAgLTMwOSw5ICszMTQsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQqIGRhdGFMb2NhdGlvbigpIGNvbnN0IHsgQVNTRVJUX1ZBTElEX0NPREVf
UE9JTlRFUihtX3ZhbHVlKTsgcmV0dXJuIG1fdmFsdWU7IH0KICNlbmRpZgogCi0gICAgYm9vbCBv
cGVyYXRvciEoKSBjb25zdAorICAgIHR5cGVkZWYgdm9pZCogKE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGUpOworICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5
cGUqKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiAhbV92YWx1ZTsKKyAgICAgICAgcmV0
dXJuICEhbV92YWx1ZSA/IHJlaW50ZXJwcmV0X2Nhc3Q8VW5zcGVjaWZpZWRCb29sVHlwZSo+KDEp
IDogMDsKICAgICB9CiAgICAgCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciYgb3RoZXIpIGNvbnN0CkBAIC00MzQsNyArNDQwLDExIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIEpTQzo6dHJ5VG9EaXNhc3NlbWJsZShtX2NvZGVQdHIsIHNpemUoKSwgcHJl
Zml4LCBXVEY6OmRhdGFGaWxlKCkpOwogICAgIH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yISgp
IGNvbnN0IHsgcmV0dXJuICFtX2NvZGVQdHI7IH0KKyAgICB0eXBlZGVmIHZvaWQqIChNYWNyb0Fz
c2VtYmxlckNvZGVSZWY6OipVbnNwZWNpZmllZEJvb2xUeXBlKTsKKyAgICBvcGVyYXRvciBVbnNw
ZWNpZmllZEJvb2xUeXBlKigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gISFtX2NvZGVQ
dHIgPyByZWludGVycHJldF9jYXN0PFVuc3BlY2lmaWVkQm9vbFR5cGUqPigxKSA6IDA7CisgICAg
fQogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsX2gKKyNkZWZpbmUgTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGxfaAorCisjaW5jbHVk
ZSAiSlNTdGFjay5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyLmgiCisjaW5jbHVkZSAiU3RhY2tBbGln
bm1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorCituYW1lc3BhY2UgSlNDIHsK
KworLy8gVGhlIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsIGlzIHRoZSBtYXggYW1vdW50
IG9mIHN0YWNrIHNwYWNlIChpbiBieXRlcykKKy8vIHRoYXQgY2FuIGJlIHVzZWQgZm9yIG91dGdv
aW5nIGFyZ3Mgd2hlbiBjYWxsaW5nIGEgc2xvdyBwYXRoIEMgZnVuY3Rpb24KKy8vIGZyb20gSlMg
Y29kZS4KKworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMDsKKworI2VsaWYgQ1BVKFg4Nl82NCkgJiYg
T1MoV0lORE9XUykKKy8vIDQgYXJncyBpbiByZWdpc3RlcnMsIGJ1dCBzdGFjayBzcGFjZSBuZWVk
cyB0byBiZSBhbGxvY2F0ZWQgZm9yIGFsbCBhcmdzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDY0OworCisjZWxpZiBDUFUoWDg2XzY0KQorLy8g
QWxsIGFyZ3MgaW4gcmVnaXN0ZXJzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVu
dEZvclNsb3dQYXRoQ2FsbCA9IDA7CisKKyNlbGlmIENQVShYODYpCisvLyA3IGFyZ3Mgb24gc3Rh
Y2sgKDI4IGJ5dGVzKS4KK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwgPSA0MDsKKworI2VsaWYgQ1BVKEFSTTY0KQorLy8gQWxsIGFyZ3MgaW4gcmVnaXN0
ZXJzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9
IDA7CisKKyNlbGlmIENQVShBUk0pCisvLyBGaXJzdCBmb3VyIGFyZ3MgaW4gcmVnaXN0ZXJzLCBy
ZW1haW5pbmcgNCBhcmdzIG9uIHN0YWNrLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCA9IDI0OworCisjZWxpZiBDUFUoU0g0KQorLy8gRmlyc3QgZm91
ciBhcmdzIGluIHJlZ2lzdGVycywgcmVtYWluaW5nIDQgYXJncyBvbiBzdGFjay4KK3N0YXRpYyBj
b25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAyNDsKKworI2VsaWYg
Q1BVKE1JUFMpCisvLyBUaG91Z2ggYXJncyBhcmUgaW4gcmVnaXN0ZXJzLCB0aGVyZSBuZWVkIHRv
IGJlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgYWxsIGFyZ3MuCitzdGF0aWMgY29uc3Qgc2l6ZV90
IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDA7CisKKyNlbHNlCisjZXJyb3IgIlVu
c3VwcG9ydGVkIENQVTogbmVlZCB2YWx1ZSBmb3IgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwiCisKKyNlbmRpZgorCitDT01QSUxFX0FTU0VSVCghKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsICUgc2l6ZW9mKFJlZ2lzdGVyKSksIGV4dGVudF9tdXN0X2JlX2luX211bHRpcGxlc19v
Zl9yZWdpc3RlcnMpOworLy8gTWFrZSBzdXJlIHRoYXQgY2ZyIC0gbWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwgYnl0ZXMgd2lsbCBtYWtlIHRoZSBzdGFjayBwb2ludGVyIGFsaWduZWQKK0NP
TVBJTEVfQVNTRVJUKChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCAlIDE2KSA9PSAxNiAt
IHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSwgZXh0ZW50X211c3RfYWxpZ25fc3RhY2tfZnJvbV9j
YWxsZnJhbWVfcG9pbnRlcik7CisKK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGxJblJlZ2lzdGVycyA9IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
IC8gc2l6ZW9mKFJlZ2lzdGVyKTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBN
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbF9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzcsMTUgKzM3LDE1IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjp1bmxpbmsoVk0mIHZt
LCBSZXBhdGMKIHsKICAgICBBU1NFUlQoaXNMaW5rZWQoKSk7CiAgICAgCisgICAgaWYgKE9wdGlv
bnM6OnNob3dEaXNhc3NlbWJseSgpKQorICAgICAgICBkYXRhTG9nKCJVbmxpbmtpbmcgY2FsbCBm
cm9tICIsIGNhbGxSZXR1cm5Mb2NhdGlvbiwgIiB0byAiLCBwb2ludGVyRHVtcChyZXBhdGNoQnVm
ZmVyLmNvZGVCbG9jaygpKSwgIlxuIik7CisKICAgICByZXBhdGNoQnVmZmVyLnJldmVydEp1bXBS
ZXBsYWNlbWVudFRvQnJhbmNoUHRyV2l0aFBhdGNoKFJlcGF0Y2hCdWZmZXI6OnN0YXJ0T2ZCcmFu
Y2hQdHJXaXRoUGF0Y2hPblJlZ2lzdGVyKGhvdFBhdGhCZWdpbiksIHN0YXRpY19jYXN0PE1hY3Jv
QXNzZW1ibGVyOjpSZWdpc3RlcklEPihjYWxsZWVHUFIpLCAwKTsKLSAgICBpZiAoaXNERkcpIHsK
LSNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbFJl
dHVybkxvY2F0aW9uLCAoY2FsbFR5cGUgPT0gQ29uc3RydWN0ID8gdm0uZ2V0Q1RJU3R1YihsaW5r
Q29uc3RydWN0VGh1bmtHZW5lcmF0b3IpIDogdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2Vu
ZXJhdG9yKSkuY29kZSgpKTsKLSNlbHNlCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0jZW5kaWYKLSAgICB9IGVsc2UKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmso
Y2FsbFJldHVybkxvY2F0aW9uLCBjYWxsVHlwZSA9PSBDb25zdHJ1Y3QgPyB2bS5nZXRDVElTdHVi
KGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpIDogdm0uZ2V0Q1RJU3R1YihsaW5r
Q2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKAor
ICAgICAgICBjYWxsUmV0dXJuTG9jYXRpb24sCisgICAgICAgIHZtLmdldENUSVN0dWIobGlua1Ro
dW5rR2VuZXJhdG9yRm9yKAorICAgICAgICAgICAgY2FsbFR5cGUgPT0gQ29uc3RydWN0ID8gQ29k
ZUZvckNvbnN0cnVjdCA6IENvZGVGb3JDYWxsLAorICAgICAgICAgICAgaXNGVEwgPyBNdXN0UHJl
c2VydmVSZWdpc3RlcnMgOiBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKSkuY29kZSgp
KTsKICAgICBoYXNTZWVuU2hvdWxkUmVwYXRjaCA9IGZhbHNlOwogICAgIGNhbGxlZS5jbGVhcigp
OwogICAgIHN0dWIuY2xlYXIoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9DYWxsTGlua0luZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ2FsbExpbmtJbmZvLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNTUsOCAr
NTUsOCBAQCBzdHJ1Y3QgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2VuCiAgICAgfQog
ICAgICAgICAKICAgICBDYWxsTGlua0luZm8oKQotICAgICAgICA6IGhhc1NlZW5TaG91bGRSZXBh
dGNoKGZhbHNlKQotICAgICAgICAsIGlzREZHKGZhbHNlKQorICAgICAgICA6IGlzRlRMKGZhbHNl
KQorICAgICAgICAsIGhhc1NlZW5TaG91bGRSZXBhdGNoKGZhbHNlKQogICAgICAgICAsIGhhc1Nl
ZW5DbG9zdXJlKGZhbHNlKQogICAgICAgICAsIGNhbGxUeXBlKE5vbmUpCiAgICAgewpAQCAtNzks
OCArNzksOCBAQCBzdHJ1Y3QgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2VuCiAgICAg
SklUV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IGNhbGxlZTsKICAgICBXcml0ZUJhcnJpZXI8SlNG
dW5jdGlvbj4gbGFzdFNlZW5DYWxsZWU7CiAgICAgUmVmUHRyPENsb3N1cmVDYWxsU3R1YlJvdXRp
bmU+IHN0dWI7CisgICAgYm9vbCBpc0ZUTCA6IDE7CiAgICAgYm9vbCBoYXNTZWVuU2hvdWxkUmVw
YXRjaCA6IDE7Ci0gICAgYm9vbCBpc0RGRyA6IDE7CiAgICAgYm9vbCBoYXNTZWVuQ2xvc3VyZSA6
IDE7CiAgICAgdW5zaWduZWQgY2FsbFR5cGUgOiA1OyAvLyBDYWxsVHlwZQogICAgIHVuc2lnbmVk
IGNhbGxlZUdQUiA6IDg7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2Fs
bExpbmtTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI2LDEzICsyNiwxNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkNhbGxMaW5rU3RhdHVzLmgiCiAKKyNpbmNsdWRlICJDYWxsTGlua0luZm8uaCIKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJERkdKSVRDb2RlLmgiCiAjaW5jbHVkZSAiTExJbnRD
YWxsTGlua0luZm8uaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0Nv
bW1hUHJpbnRlci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIGNvbnN0IGJvb2wgdmVy
Ym9zZSA9IGZhbHNlOworCiBDYWxsTGlua1N0YXR1czo6Q2FsbExpbmtTdGF0dXMoSlNWYWx1ZSB2
YWx1ZSkKICAgICA6IG1fY2FsbFRhcmdldCh2YWx1ZSkKICAgICAsIG1fZXhlY3V0YWJsZSgwKQpA
QCAtODEsMTIgKzg1LDI0IEBAIEludHJpbnNpYyBDYWxsTGlua1N0YXR1czo6aW50cmluc2ljRm9y
KEMKICAgICByZXR1cm4gbV9leGVjdXRhYmxlLT5pbnRyaW5zaWNGb3Ioa2luZCk7CiB9CiAKLUNh
bGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KENvZGVCbG9jayog
cHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKK0NhbGxMaW5rU3RhdHVzIENh
bGxMaW5rU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXIm
IGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4
KQogewogICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKICAgICBVTlVTRURfUEFSQU0o
Ynl0ZWNvZGVJbmRleCk7CiAjaWYgRU5BQkxFKExMSU5UKQorICAgIGlmIChwcm9maWxlZEJsb2Nr
LT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4
LCBCYWRGdW5jdGlvbikpKSB7CisgICAgICAgIC8vIFdlIGNvdWxkIGZvcmNlIHRoaXMgdG8gYmUg
YSBjbG9zdXJlIGNhbGwsIGJ1dCBpbnN0ZWFkIHdlJ2xsIGp1c3QgYXNzdW1lIHRoYXQgaXQKKyAg
ICAgICAgLy8gdGFrZXMgc2xvdyBwYXRoLgorICAgICAgICByZXR1cm4gdGFrZXNTbG93UGF0aCgp
OworICAgIH0KKyAgICAKKyAgICBWTSYgdm0gPSAqcHJvZmlsZWRCbG9jay0+dm0oKTsKKyAgICAK
ICAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSBwcm9maWxlZEJsb2NrLT5pbnN0cnVjdGlv
bnMoKS5iZWdpbigpICsgYnl0ZWNvZGVJbmRleDsKKyAgICBPcGNvZGVJRCBvcCA9IHZtLmludGVy
cHJldGVyLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvblswXS51Lm9wY29kZSk7CisgICAgaWYgKG9w
ICE9IG9wX2NhbGwgJiYgb3AgIT0gb3BfY29uc3RydWN0KQorICAgICAgICByZXR1cm4gQ2FsbExp
bmtTdGF0dXMoKTsKKyAgICAKICAgICBMTEludENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvID0g
aW5zdHJ1Y3Rpb25bNV0udS5jYWxsTGlua0luZm87CiAgICAgCiAgICAgcmV0dXJuIENhbGxMaW5r
U3RhdHVzKGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuZ2V0KCkpOwpAQCAtMTAyLDI3ICsx
MTgsMTE3IEBAIENhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm8KICAgICBV
TlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CiAgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5k
ZXgpOwogI2lmIEVOQUJMRShKSVQpCisgICAgaWYgKHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRl
KGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlKSkK
KyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1
ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KSkKKyAgICAgICAg
fHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNp
dGUoYnl0ZWNvZGVJbmRleCwgQmFkRXhlY3V0YWJsZSkpKQorICAgICAgICByZXR1cm4gdGFrZXNT
bG93UGF0aCgpOworICAgIAogICAgIGlmICghcHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQ
cm9maWxpbmcoKSkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9j
aywgYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50KGxvY2tl
ciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7CiAgICAgCiAgICAgaWYgKHByb2ZpbGVk
QmxvY2stPmNvdWxkVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpKQotICAgICAgICByZXR1cm4g
Q2FsbExpbmtTdGF0dXM6OnRha2VzU2xvd1BhdGgoKTsKKyAgICAgICAgcmV0dXJuIHRha2VzU2xv
d1BhdGgoKTsKICAgICAKICAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IHByb2ZpbGVk
QmxvY2stPmdldENhbGxMaW5rSW5mbyhieXRlY29kZUluZGV4KTsKKyAgICAKKyAgICBDYWxsTGlu
a1N0YXR1cyByZXN1bHQgPSBjb21wdXRlRm9yKGxvY2tlciwgY2FsbExpbmtJbmZvKTsKKyAgICBp
ZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQobG9ja2VyLCBwcm9m
aWxlZEJsb2NrLCBieXRlY29kZUluZGV4KTsKKyAgICAKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+
aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwg
QmFkRnVuY3Rpb24pKSkKKyAgICAgICAgcmVzdWx0Lm1ha2VDbG9zdXJlQ2FsbCgpOworICAgIAor
ICAgIHJldHVybiByZXN1bHQ7CisjZWxzZQorICAgIHJldHVybiBDYWxsTGlua1N0YXR1cygpOwor
I2VuZGlmCit9CisKK0NhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKGNv
bnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKK3sK
ICAgICBpZiAoY2FsbExpbmtJbmZvLnN0dWIpCiAgICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1
cyhjYWxsTGlua0luZm8uc3R1Yi0+ZXhlY3V0YWJsZSgpLCBjYWxsTGlua0luZm8uc3R1Yi0+c3Ry
dWN0dXJlKCkpOwogICAgIAogICAgIEpTRnVuY3Rpb24qIHRhcmdldCA9IGNhbGxMaW5rSW5mby5s
YXN0U2VlbkNhbGxlZS5nZXQoKTsKICAgICBpZiAoIXRhcmdldCkKLSAgICAgICAgcmV0dXJuIGNv
bXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIHJl
dHVybiBDYWxsTGlua1N0YXR1cygpOwogICAgIAogICAgIGlmIChjYWxsTGlua0luZm8uaGFzU2Vl
bkNsb3N1cmUpCiAgICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1cyh0YXJnZXQtPmV4ZWN1dGFi
bGUoKSwgdGFyZ2V0LT5zdHJ1Y3R1cmUoKSk7CiAKICAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXMo
dGFyZ2V0KTsKLSNlbHNlCi0gICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKCk7Ci0jZW5kaWYKK30K
Kwordm9pZCBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZURGR1N0YXR1c2VzKAorICAgIENvZGVCbG9j
ayogZGZnQ29kZUJsb2NrLCBDYWxsTGlua1N0YXR1czo6Q29udGV4dE1hcCYgbWFwKQoreworI2lm
IEVOQUJMRShERkdfSklUKQorICAgIFJFTEVBU0VfQVNTRVJUKGRmZ0NvZGVCbG9jay0+aml0VHlw
ZSgpID09IEpJVENvZGU6OkRGR0pJVCk7CisgICAgQ29kZUJsb2NrKiBiYXNlbGluZUNvZGVCbG9j
ayA9IGRmZ0NvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKTsKKyAgICBERkc6OkpJVENvZGUqIGppdENv
ZGUgPSBkZmdDb2RlQmxvY2stPmppdENvZGUoKS0+ZGZnKCk7CisgICAgUkVMRUFTRV9BU1NFUlQo
ZGZnQ29kZUJsb2NrLT5udW1iZXJPZkNhbGxMaW5rSW5mb3MoKSA8PSBqaXRDb2RlLT5zbG93UGF0
aENhbGxzLnNpemUoKSk7CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IGRmZ0NvZGVCbG9jay0+
bnVtYmVyT2ZDYWxsTGlua0luZm9zKCk7IGktLTspIHsKKyAgICAgICAgQ2FsbExpbmtJbmZvJiBp
bmZvID0gZGZnQ29kZUJsb2NrLT5jYWxsTGlua0luZm8oaSk7CisgICAgICAgIENvZGVPcmlnaW4g
Y29kZU9yaWdpbiA9IGluZm8uY29kZU9yaWdpbjsKKyAgICAgICAgCisgICAgICAgIGJvb2wgdGFr
ZVNsb3dQYXRoOworICAgICAgICBib29sIGJhZEZ1bmN0aW9uOworICAgICAgICAKKyAgICAgICAg
Ly8gQ2hlY2sgaWYgd2UgaGFkIGFscmVhZHkgcHJldmlvdXNseSBtYWRlIGEgdGVycmlibGUgbWlz
dGFrZSBpbiB0aGUgRlRMIGZvciB0aGlzCisgICAgICAgIC8vIGNvZGUgb3JpZ2luLiBOb3RlIHRo
YXQgdGhpcyBpcyBhcHByb3hpbWF0ZSBiZWNhdXNlIHdlIGNvdWxkIGhhdmUgYSBtb25vdmFyaWFu
dAorICAgICAgICAvLyBpbmxpbmUgaW4gdGhlIEZUTCB0aGF0IGVuZGVkIHVwIGZhaWxpbmcuIFdl
IHNob3VsZCBmaXggdGhhdCBhdCBzb21lIHBvaW50IGJ5CisgICAgICAgIC8vIGhhdmluZyBkYXRh
IHN0cnVjdHVyZXMgdG8gdHJhY2sgdGhlIGNvbnRleHQgb2YgZnJlcXVlbnQgZXhpdHMuIFRoaXMg
aXMgY3VycmVudGx5CisgICAgICAgIC8vIGNoYWxsZW5naW5nIGJlY2F1c2UgaXQgd291bGQgcmVx
dWlyZSBjcmVhdGluZyBhIENvZGVPcmlnaW4tYmFzZWQgZGF0YWJhc2UgaW4KKyAgICAgICAgLy8g
YmFzZWxpbmUgQ29kZUJsb2NrcywgYnV0IHRob3NlIENvZGVCbG9ja3MgZG9uJ3QgcmVhbGx5IGhh
dmUgYSBwbGFjZSB0byBwdXQgdGhlCisgICAgICAgIC8vIElubGluZUNhbGxGcmFtZXMuCisgICAg
ICAgIENvZGVCbG9jayogY3VycmVudEJhc2VsaW5lID0KKyAgICAgICAgICAgIGJhc2VsaW5lQ29k
ZUJsb2NrRm9yT3JpZ2luQW5kQmFzZWxpbmVDb2RlQmxvY2soY29kZU9yaWdpbiwgYmFzZWxpbmVD
b2RlQmxvY2spOworICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihjdXJyZW50QmFzZWxpbmUtPm1fbG9jayk7CisgICAgICAgICAgICB0YWtlU2xvd1BhdGgg
PQorICAgICAgICAgICAgICAgIGN1cnJlbnRCYXNlbGluZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBE
Rkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBCYWRDYWNoZSwg
RXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHx8IGN1cnJlbnRCYXNlbGluZS0+aGFzRXhp
dFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5ieXRlY29kZUlu
ZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQsIEV4aXRGcm9tRlRMKSkKKyAgICAgICAgICAgICAgICB8
fCBjdXJyZW50QmFzZWxpbmUtPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRT
aXRlKGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgQmFkRXhlY3V0YWJsZSwgRXhpdEZyb21GVEwp
KTsKKyAgICAgICAgICAgIGJhZEZ1bmN0aW9uID0KKyAgICAgICAgICAgICAgICBjdXJyZW50QmFz
ZWxpbmUtPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGNvZGVPcmln
aW4uYnl0ZWNvZGVJbmRleCwgQmFkRnVuY3Rpb24sIEV4aXRGcm9tRlRMKSk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKGRmZ0NvZGVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIGlmICh0YWtlU2xvd1BhdGgg
fHwgaml0Q29kZS0+c2xvd1BhdGhDYWxsc1tpXSA+PSBPcHRpb25zOjpjb3VsZFRha2VTbG93Q2Fz
ZU1pbmltdW1Db3VudCgpKQorICAgICAgICAgICAgICAgIG1hcC5hZGQoaW5mby5jb2RlT3JpZ2lu
LCB0YWtlc1Nsb3dQYXRoKCkpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
Q2FsbExpbmtTdGF0dXMgc3RhdHVzID0gY29tcHV0ZUZvcihsb2NrZXIsIGluZm8pOworICAgICAg
ICAgICAgICAgIGlmIChzdGF0dXMuaXNTZXQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
YmFkRnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMubWFrZUNsb3N1cmVD
YWxsKCk7CisgICAgICAgICAgICAgICAgICAgIG1hcC5hZGQoaW5mby5jb2RlT3JpZ2luLCBzdGF0
dXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
KyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKyAgICAKKyAgICBpZiAodmVyYm9zZSkgeworICAg
ICAgICBkYXRhTG9nKCJDb250ZXh0IG1hcDpcbiIpOworICAgICAgICBDb250ZXh0TWFwOjppdGVy
YXRvciBpdGVyID0gbWFwLmJlZ2luKCk7CisgICAgICAgIENvbnRleHRNYXA6Oml0ZXJhdG9yIGVu
ZCA9IG1hcC5lbmQoKTsKKyAgICAgICAgZm9yICg7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKKyAg
ICAgICAgICAgIGRhdGFMb2coIiAgICAiLCBpdGVyLT5rZXksICI6XG4iKTsKKyAgICAgICAgICAg
IGRhdGFMb2coIiAgICAgICAgIiwgaXRlci0+dmFsdWUsICJcbiIpOworICAgICAgICB9CisgICAg
fQorfQorCitDYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcigKKyAgICBD
b2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgQ2Fs
bExpbmtTdGF0dXM6OkNvbnRleHRNYXAmIG1hcCkKK3sKKyAgICBDb250ZXh0TWFwOjpjb25zdF9p
dGVyYXRvciBpdGVyID0gbWFwLmZpbmQoY29kZU9yaWdpbik7CisgICAgaWYgKGl0ZXIgIT0gbWFw
LmVuZCgpKQorICAgICAgICByZXR1cm4gaXRlci0+dmFsdWU7CisgICAgCisgICAgcmV0dXJuIGNv
bXB1dGVGb3IocHJvZmlsZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKIH0KIAog
dm9pZCBDYWxsTGlua1N0YXR1czo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlu
a1N0YXR1cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw3ICsyNiw5IEBACiAjaWZu
ZGVmIENhbGxMaW5rU3RhdHVzX2gKICNkZWZpbmUgQ2FsbExpbmtTdGF0dXNfaAogCisjaW5jbHVk
ZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKKyNp
bmNsdWRlICJDb25jdXJyZW50SklUTG9jay5oIgogI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2lu
Y2x1ZGUgIkpTQ0pTVmFsdWUuaCIKIApAQCAtMzcsNiArMzksNyBAQCBjbGFzcyBFeGVjdXRhYmxl
QmFzZTsKIGNsYXNzIEludGVybmFsRnVuY3Rpb247CiBjbGFzcyBKU0Z1bmN0aW9uOwogY2xhc3Mg
U3RydWN0dXJlOworc3RydWN0IENhbGxMaW5rSW5mbzsKIAogY2xhc3MgQ2FsbExpbmtTdGF0dXMg
ewogcHVibGljOgpAQCAtNzQsMzEgKzc3LDE5IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMg
Q2FsbExpbmtTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUlu
ZGV4KTsKICAgICAKLSAgICBDYWxsTGlua1N0YXR1cyYgc2V0SGFzQmFkRnVuY3Rpb25FeGl0U2l0
ZShib29sIGRpZEhhdmVFeGl0U2l0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1Byb3Zl
ZCk7Ci0gICAgICAgIGlmIChkaWRIYXZlRXhpdFNpdGUpIHsKLSAgICAgICAgICAgIC8vIFR1cm4g
dGhpcyBpbnRvIGEgY2xvc3VyZSBjYWxsLgotICAgICAgICAgICAgbV9jYWxsVGFyZ2V0ID0gSlNW
YWx1ZSgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9CisgICAgLy8g
Q29tcHV0ZXMgdGhlIHN0YXR1cyBhc3N1bWluZyB0aGF0IHdlIG5ldmVyIHRvb2sgc2xvdyBwYXRo
IGFuZCBuZXZlciBwcmV2aW91c2x5CisgICAgLy8gZXhpdGVkLgorICAgIHN0YXRpYyBDYWxsTGlu
a1N0YXR1cyBjb21wdXRlRm9yKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDYWxsTGlua0lu
Zm8mKTsKKyAgICAKKyAgICB0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgQ2FsbExpbmtTdGF0
dXMsIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g+IENvbnRleHRNYXA7CisgICAgCisgICAgLy8g
Q29tcHV0ZXMgYWxsIG9mIHRoZSBzdGF0dXNlcyBvZiB0aGUgREZHIGNvZGUgYmxvY2suIERvZXNu
J3QgaW5jbHVkZSBzdGF0dXNlcyB0aGF0IGhhZAorICAgIC8vIG5vIGluZm9ybWF0aW9uLiBDdXJy
ZW50bHkgd2UgdXNlIHRoaXMgd2hlbiBjb21waWxpbmcgRlRMIGNvZGUsIHRvIGVuYWJsZSBwb2x5
dmFyaWFudAorICAgIC8vIGlubGluaW5nLgorICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVERkdTdGF0
dXNlcyhDb2RlQmxvY2sqIGRmZ0NvZGVCbG9jaywgQ29udGV4dE1hcCYpOwogICAgIAotICAgIENh
bGxMaW5rU3RhdHVzJiBzZXRIYXNCYWRDYWNoZUV4aXRTaXRlKGJvb2wgZGlkSGF2ZUV4aXRTaXRl
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2lzUHJvdmVkKTsKLSAgICAgICAgaWYgKGRpZEhh
dmVFeGl0U2l0ZSkKLSAgICAgICAgICAgICp0aGlzID0gdGFrZXNTbG93UGF0aCgpOwotICAgICAg
ICByZXR1cm4gKnRoaXM7Ci0gICAgfQotICAgIAotICAgIENhbGxMaW5rU3RhdHVzJiBzZXRIYXNC
YWRFeGVjdXRhYmxlRXhpdFNpdGUoYm9vbCBkaWRIYXZlRXhpdFNpdGUpCi0gICAgewotICAgICAg
ICBBU1NFUlQoIW1faXNQcm92ZWQpOwotICAgICAgICBpZiAoZGlkSGF2ZUV4aXRTaXRlKQotICAg
ICAgICAgICAgKnRoaXMgPSB0YWtlc1Nsb3dQYXRoKCk7Ci0gICAgICAgIHJldHVybiAqdGhpczsK
LSAgICB9CisgICAgLy8gSGVscGVyIHRoYXQgZmlyc3QgY29uc3VsdHMgdGhlIENvbnRleHRNYXAg
YW5kIHRoZW4gZG9lcyBjb21wdXRlRm9yKCkuCisgICAgc3RhdGljIENhbGxMaW5rU3RhdHVzIGNv
bXB1dGVGb3IoQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29uc3QgQ29udGV4dE1hcCYpOwogICAg
IAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVybiBtX2NhbGxUYXJnZXQgfHwgbV9leGVj
dXRhYmxlIHx8IG1fY291bGRUYWtlU2xvd1BhdGg7IH0KICAgICAKQEAgLTExOSw3ICsxMTAsMTQg
QEAgcHVibGljOgogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJp
dmF0ZToKLSAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxv
Y2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KTsKKyAgICB2b2lkIG1ha2VDbG9zdXJlQ2FsbCgp
CisgICAgeworICAgICAgICBBU1NFUlQoIW1faXNQcm92ZWQpOworICAgICAgICAvLyBUdXJuIHRo
aXMgaW50byBhIGNsb3N1cmUgY2FsbC4KKyAgICAgICAgbV9jYWxsVGFyZ2V0ID0gSlNWYWx1ZSgp
OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZyb21MTElu
dChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNv
ZGVJbmRleCk7CiAgICAgCiAgICAgSlNWYWx1ZSBtX2NhbGxUYXJnZXQ7CiAgICAgRXhlY3V0YWJs
ZUJhc2UqIG1fZXhlY3V0YWJsZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDEwICsx
MjksMTUgQEAgQ1N0cmluZyBDb2RlQmxvY2s6OnNvdXJjZUNvZGVPbk9uZUxpbmUoKQogCiB2b2lk
IENvZGVCbG9jazo6ZHVtcEFzc3VtaW5nSklUVHlwZShQcmludFN0cmVhbSYgb3V0LCBKSVRDb2Rl
OjpKSVRUeXBlIGppdFR5cGUpIGNvbnN0CiB7CisgICAgb3V0LnByaW50KGluZmVycmVkTmFtZSgp
LCAiIyIpOwogICAgIGlmIChoYXNIYXNoKCkgfHwgaXNTYWZlVG9Db21wdXRlSGFzaCgpKQotICAg
ICAgICBvdXQucHJpbnQoaW5mZXJyZWROYW1lKCksICIjIiwgaGFzaCgpLCAiOlsiLCBSYXdQb2lu
dGVyKHRoaXMpLCAiLT4iLCBSYXdQb2ludGVyKG93bmVyRXhlY3V0YWJsZSgpKSwgIiwgIiwgaml0
VHlwZSwgY29kZVR5cGUoKSk7CisgICAgICAgIG91dC5wcmludChoYXNoKCkpOwogICAgIGVsc2UK
LSAgICAgICAgb3V0LnByaW50KGluZmVycmVkTmFtZSgpLCAiIzxuby1oYXNoPjpbIiwgUmF3UG9p
bnRlcih0aGlzKSwgIi0+IiwgUmF3UG9pbnRlcihvd25lckV4ZWN1dGFibGUoKSksICIsICIsIGpp
dFR5cGUsIGNvZGVUeXBlKCkpOworICAgICAgICBvdXQucHJpbnQoIjxuby1oYXNoPiIpOworICAg
IG91dC5wcmludCgiOlsiLCBSYXdQb2ludGVyKHRoaXMpLCAiLT4iKTsKKyAgICBpZiAoISFtX2Fs
dGVybmF0aXZlKQorICAgICAgICBvdXQucHJpbnQoUmF3UG9pbnRlcihtX2FsdGVybmF0aXZlLmdl
dCgpKSwgIi0+Iik7CisgICAgb3V0LnByaW50KFJhd1BvaW50ZXIob3duZXJFeGVjdXRhYmxlKCkp
LCAiLCAiLCBqaXRUeXBlLCBjb2RlVHlwZSgpKTsKIAogICAgIGlmIChjb2RlVHlwZSgpID09IEZ1
bmN0aW9uQ29kZSkKICAgICAgICAgb3V0LnByaW50KHNwZWNpYWxpemF0aW9uS2luZCgpKTsKQEAg
LTE0Myw2ICsxNDgsMTAgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBBc3N1bWluZ0pJVFR5cGUoUHJp
bgogICAgICAgICBvdXQucHJpbnQoIiAoTmV2ZXJJbmxpbmUpIik7CiAgICAgaWYgKG93bmVyRXhl
Y3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkKICAgICAgICAgb3V0LnByaW50KCIgKFN0cmljdE1v
ZGUpIik7CisgICAgaWYgKHRoaXMtPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCAm
JiBtX2RpZEZhaWxGVExDb21waWxhdGlvbikKKyAgICAgICAgb3V0LnByaW50KCIgKEZUTEZhaWwp
Iik7CisgICAgaWYgKHRoaXMtPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCAmJiBt
X2hhc0JlZW5Db21waWxlZFdpdGhGVEwpCisgICAgICAgIG91dC5wcmludCgiIChIYWRGVExSZXBs
YWNlbWVudCkiKTsKICAgICBvdXQucHJpbnQoIl0iKTsKIH0KIApAQCAtNTI2LDEyICs1MzUsNyBA
QCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgb3V0LnByaW50
ZigiXG4iKTsKICAgICAKICAgICBTdHViSW5mb01hcCBzdHViSW5mb3M7Ci0jaWYgRU5BQkxFKEpJ
VCkKLSAgICB7Ci0gICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0g
ICAgICAgIGdldFN0dWJJbmZvTWFwKGxvY2tlciwgc3R1YkluZm9zKTsKLSAgICB9Ci0jZW5kaWYK
KyAgICBnZXRTdHViSW5mb01hcChzdHViSW5mb3MpOwogICAgIAogICAgIGNvbnN0IEluc3RydWN0
aW9uKiBiZWdpbiA9IGluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgY29uc3QgSW5zdHJ1Y3Rp
b24qIGVuZCA9IGluc3RydWN0aW9ucygpLmVuZCgpOwpAQCAtMTQ2OSw2ICsxNDczLDcgQEAgQ29k
ZUJsb2NrOjpDb2RlQmxvY2soQ29weVBhcnNlZEJsb2NrVGFnLAogICAgICwgbV9pc0NvbnN0cnVj
dG9yKG90aGVyLm1faXNDb25zdHJ1Y3RvcikKICAgICAsIG1fc2hvdWxkQWx3YXlzQmVJbmxpbmVk
KHRydWUpCiAgICAgLCBtX2RpZEZhaWxGVExDb21waWxhdGlvbihmYWxzZSkKKyAgICAsIG1faGFz
QmVlbkNvbXBpbGVkV2l0aEZUTChmYWxzZSkKICAgICAsIG1fdW5saW5rZWRDb2RlKCpvdGhlci5t
X3ZtLCBvdGhlci5tX293bmVyRXhlY3V0YWJsZS5nZXQoKSwgb3RoZXIubV91bmxpbmtlZENvZGUu
Z2V0KCkpCiAgICAgLCBtX3N0ZXBwaW5nTW9kZShTdGVwcGluZ01vZGVEaXNhYmxlZCkKICAgICAs
IG1fbnVtQnJlYWtwb2ludHMoMCkKQEAgLTE1MjUsNiArMTUzMCw3IEBAIENvZGVCbG9jazo6Q29k
ZUJsb2NrKFNjcmlwdEV4ZWN1dGFibGUqIG8KICAgICAsIG1faXNDb25zdHJ1Y3Rvcih1bmxpbmtl
ZENvZGVCbG9jay0+aXNDb25zdHJ1Y3RvcigpKQogICAgICwgbV9zaG91bGRBbHdheXNCZUlubGlu
ZWQodHJ1ZSkKICAgICAsIG1fZGlkRmFpbEZUTENvbXBpbGF0aW9uKGZhbHNlKQorICAgICwgbV9o
YXNCZWVuQ29tcGlsZWRXaXRoRlRMKGZhbHNlKQogICAgICwgbV91bmxpbmtlZENvZGUobV9nbG9i
YWxPYmplY3QtPnZtKCksIG93bmVyRXhlY3V0YWJsZSwgdW5saW5rZWRDb2RlQmxvY2spCiAgICAg
LCBtX3N0ZXBwaW5nTW9kZShTdGVwcGluZ01vZGVEaXNhYmxlZCkKICAgICAsIG1fbnVtQnJlYWtw
b2ludHMoMCkKQEAgLTE4NTQsMjMgKzE4NjAsMTMgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soU2Ny
aXB0RXhlY3V0YWJsZSogbwogCiAgICAgLy8gSWYgdGhlIGNvbmN1cnJlbnQgdGhyZWFkIHdpbGwg
d2FudCB0aGUgY29kZSBibG9jaydzIGhhc2gsIHRoZW4gY29tcHV0ZSBpdCBoZXJlCiAgICAgLy8g
c3luY2hyb25vdXNseS4KLSAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5KCkKLSAgICAg
ICAgfHwgT3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkKLSAgICAgICAgfHwgT3B0aW9uczo6
ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCkKLSAgICAgICAgfHwgT3B0aW9uczo6ZHVtcEdyYXBoQXRF
YWNoUGhhc2UoKQotICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKQotICAg
ICAgICB8fCBPcHRpb25zOjpsb2dDb21waWxhdGlvbkNoYW5nZXMoKQotICAgICAgICB8fCBPcHRp
b25zOjp2YWxpZGF0ZUdyYXBoKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRhdGVHcmFwaEF0
RWFjaFBoYXNlKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpCi0gICAgICAgIHx8
IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkKLSAgICAgICAgfHwgT3B0aW9uczo6
cmVwb3J0Q29tcGlsZVRpbWVzKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNGQSgpKQor
ICAgIGlmIChPcHRpb25zOjphbHdheXNDb21wdXRlSGFzaCgpKQogICAgICAgICBoYXNoKCk7CiAK
ICAgICBpZiAoT3B0aW9uczo6ZHVtcEdlbmVyYXRlZEJ5dGVjb2RlcygpKQogICAgICAgICBkdW1w
Qnl0ZWNvZGUoKTsKIAorICAgIAogICAgIG1faGVhcC0+bV9jb2RlQmxvY2tzLmFkZCh0aGlzKTsK
ICAgICBtX2hlYXAtPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChzaXplb2YoQ29kZUJsb2NrKSArIG1f
aW5zdHJ1Y3Rpb25zLnNpemUoKSAqIHNpemVvZihJbnN0cnVjdGlvbikpOwogfQpAQCAtMjMzNCwx
NiArMjMzMCwyNiBAQCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoCiAj
ZW5kaWYKIH0KIAordm9pZCBDb2RlQmxvY2s6OmdldFN0dWJJbmZvTWFwKGNvbnN0IENvbmN1cnJl
bnRKSVRMb2NrZXImLCBTdHViSW5mb01hcCYgcmVzdWx0KQorewogI2lmIEVOQUJMRShKSVQpCi1T
dHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRTdHViSW5mbygpCisgICAgdG9IYXNoTWFw
KG1fc3R1YkluZm9zLCBnZXRTdHJ1Y3R1cmVTdHViSW5mb0NvZGVPcmlnaW4sIHJlc3VsdCk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOworI2VuZGlmCit9CisKK3ZvaWQgQ29kZUJs
b2NrOjpnZXRTdHViSW5mb01hcChTdHViSW5mb01hcCYgcmVzdWx0KQogewogICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgcmV0dXJuIG1fc3R1YkluZm9zLmFkZCgp
OworICAgIGdldFN0dWJJbmZvTWFwKGxvY2tlciwgcmVzdWx0KTsKIH0KIAotdm9pZCBDb2RlQmxv
Y2s6OmdldFN0dWJJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01h
cCYgcmVzdWx0KQorI2lmIEVOQUJMRShKSVQpCitTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2Nr
OjphZGRTdHViSW5mbygpCiB7Ci0gICAgdG9IYXNoTWFwKG1fc3R1YkluZm9zLCBnZXRTdHJ1Y3R1
cmVTdHViSW5mb0NvZGVPcmlnaW4sIHJlc3VsdCk7CisgICAgQ29uY3VycmVudEpJVExvY2tlciBs
b2NrZXIobV9sb2NrKTsKKyAgICByZXR1cm4gbV9zdHViSW5mb3MuYWRkKCk7CiB9CiAKIHZvaWQg
Q29kZUJsb2NrOjpyZXNldFN0dWIoU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvKQpAQCAtMjg5
OSw2ICsyOTA1LDExIEBAIHZvaWQgQ29kZUJsb2NrOjpjb3VudFJlb3B0aW1pemF0aW9uKCkKIHVu
c2lnbmVkIENvZGVCbG9jazo6bnVtYmVyT2ZERkdDb21waWxlcygpCiB7CiAgICAgQVNTRVJUKEpJ
VENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUoKSkpOworICAgIGlmIChPcHRpb25zOjp0ZXN0
VGhlRlRMKCkpIHsKKyAgICAgICAgaWYgKG1fZGlkRmFpbEZUTENvbXBpbGF0aW9uKQorICAgICAg
ICAgICAgcmV0dXJuIDEwMDAwMDA7CisgICAgICAgIHJldHVybiAobV9oYXNCZWVuQ29tcGlsZWRX
aXRoRlRMID8gMSA6IDApICsgbV9yZW9wdGltaXphdGlvblJldHJ5Q291bnRlcjsKKyAgICB9CiAg
ICAgcmV0dXJuIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQocmVwbGFjZW1lbnQoKS0+aml0VHlw
ZSgpKSA/IDEgOiAwKSArIG1fcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXI7CiB9CiAKQEAgLTMw
MTAsNyArMzAyMSw3IEBAIGludDMyX3QgQ29kZUJsb2NrOjphZGp1c3RlZENvdW50ZXJWYWx1ZSgK
IGJvb2wgQ29kZUJsb2NrOjpjaGVja0lmT3B0aW1pemF0aW9uVGhyZXNob2xkUmVhY2hlZCgpCiB7
CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgaWYgKERGRzo6V29ya2xpc3QqIHdvcmtsaXN0ID0g
bV92bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAgICBpZiAoREZHOjpXb3JrbGlzdCogd29ya2xpc3Qg
PSBERkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKSkgewogICAgICAgICBpZiAo
d29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUoREZHOjpDb21waWxhdGlvbktleSh0aGlzLCBERkc6
OkRGR01vZGUpKQogICAgICAgICAgICAgPT0gREZHOjpXb3JrbGlzdDo6Q29tcGlsZWQpIHsKICAg
ICAgICAgICAgIG9wdGltaXplTmV4dEludm9jYXRpb24oKTsKQEAgLTMzNDEsNiArMzM1MiwxMSBA
QCB1bnNpZ25lZCBDb2RlQmxvY2s6OmZyYW1lUmVnaXN0ZXJDb3VudCgpCiAgICAgfQogfQogCitp
bnQgQ29kZUJsb2NrOjpzdGFja1BvaW50ZXJPZmZzZXQoKQoreworICAgIHJldHVybiB2aXJ0dWFs
UmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVyQ291bnQoKSAtIDEpLm9mZnNldCgpOworfQor
CiBzaXplX3QgQ29kZUJsb2NrOjpwcmVkaWN0ZWRNYWNoaW5lQ29kZVNpemUoKQogewogICAgIC8v
IFRoaXMgd2lsbCBiZSBjYWxsZWQgZnJvbSBDb2RlQmxvY2s6OkNvZGVCbG9jayBiZWZvcmUgZWl0
aGVyIG1fdm0gb3IgdGhlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBleHByZXNzaW9uUmFuZ2VGb3JCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBi
eXRlY29kZU9mZnNldCwgaW50JiBkaXZvdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCYgc3RhcnRPZmZzZXQsIGludCYgZW5kT2Zmc2V0LCB1bnNpZ25lZCYg
bGluZSwgdW5zaWduZWQmIGNvbHVtbik7CiAKKyAgICB2b2lkIGdldFN0dWJJbmZvTWFwKGNvbnN0
IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01hcCYgcmVzdWx0KTsKKyAgICB2b2lkIGdl
dFN0dWJJbmZvTWFwKFN0dWJJbmZvTWFwJiByZXN1bHQpOworCiAjaWYgRU5BQkxFKEpJVCkKICAg
ICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1YkluZm8oKTsKICAgICBCYWc8U3RydWN0dXJlU3R1
YkluZm8+OjppdGVyYXRvciBiZWdpbigpIHsgcmV0dXJuIG1fc3R1YkluZm9zLmJlZ2luKCk7IH0K
QEAgLTE4Miw4ICsxODUsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0U3R1YihTdHJ1Y3R1
cmVTdHViSW5mbyYpOwogICAgIAotICAgIHZvaWQgZ2V0U3R1YkluZm9NYXAoY29uc3QgQ29uY3Vy
cmVudEpJVExvY2tlciYsIFN0dWJJbmZvTWFwJiByZXN1bHQpOwotCiAgICAgQnlWYWxJbmZvJiBn
ZXRCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKICAgICB7CiAgICAgICAgIHJldHVy
biAqKGJpbmFyeVNlYXJjaDxCeVZhbEluZm8sIHVuc2lnbmVkPihtX2J5VmFsSW5mb3MsIG1fYnlW
YWxJbmZvcy5zaXplKCksIGJ5dGVjb2RlSW5kZXgsIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgp
KTsKQEAgLTI1NiwxNyArMjU3LDE1IEBAIHB1YmxpYzoKICAgICAvLyBFeGFjdGx5IGVxdWl2YWxl
bnQgdG8gY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+bmV3UmVwbGFjZW1lbnRDb2RlQmxv
Y2tGb3IoY29kZUJsb2NrLT5zcGVjaWFsaXphdGlvbktpbmQoKSkKICAgICBQYXNzUmVmUHRyPENv
ZGVCbG9jaz4gbmV3UmVwbGFjZW1lbnQoKTsKICAgICAKLSAgICB2b2lkIHNldEpJVENvZGUoUGFz
c1JlZlB0cjxKSVRDb2RlPiBjb2RlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVdpdGhBcml0
eUNoZWNrKQorICAgIHZvaWQgc2V0SklUQ29kZShQYXNzUmVmUHRyPEpJVENvZGU+IGNvZGUpCiAg
ICAgewogICAgICAgICBBU1NFUlQobV9oZWFwLT5pc0RlZmVycmVkKCkpOwogICAgICAgICBtX2hl
YXAtPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChjb2RlLT5zaXplKCkpOwogICAgICAgICBDb25jdXJy
ZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBXVEY6OnN0b3JlU3RvcmVGZW5j
ZSgpOyAvLyBUaGlzIGlzIHByb2JhYmx5IG5vdCBuZWVkZWQgYmVjYXVzZSB0aGUgbG9jayB3aWxs
IGFsc28gZG8gc29tZXRoaW5nIHNpbWlsYXIsIGJ1dCBpdCdzIGdvb2QgdG8gYmUgcGFyYW5vaWQu
CiAgICAgICAgIG1faml0Q29kZSA9IGNvZGU7Ci0gICAgICAgIG1faml0Q29kZVdpdGhBcml0eUNo
ZWNrID0gY29kZVdpdGhBcml0eUNoZWNrOwogICAgIH0KICAgICBQYXNzUmVmUHRyPEpJVENvZGU+
IGppdENvZGUoKSB7IHJldHVybiBtX2ppdENvZGU7IH0KLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgaml0Q29kZVdpdGhBcml0eUNoZWNrKCkgeyByZXR1cm4gbV9qaXRDb2RlV2l0aEFyaXR5Q2hl
Y2s7IH0KICAgICBKSVRDb2RlOjpKSVRUeXBlIGppdFR5cGUoKSBjb25zdAogICAgIHsKICAgICAg
ICAgSklUQ29kZSogaml0Q29kZSA9IG1faml0Q29kZS5nZXQoKTsKQEAgLTQ4OSw4ICs0ODgsOCBA
QCBwdWJsaWM6CiAgICAgUmFyZUNhc2VQcm9maWxlKiBzcGVjaWFsRmFzdENhc2VQcm9maWxlRm9y
Qnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQogICAgIHsKICAgICAgICAgcmV0dXJu
IHRyeUJpbmFyeVNlYXJjaDxSYXJlQ2FzZVByb2ZpbGUsIGludD4oCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3BlY2lhbEZhc3RDYXNlUHJv
ZmlsZXMsIG1fc3BlY2lhbEZhc3RDYXNlUHJvZmlsZXMuc2l6ZSgpLCBieXRlY29kZU9mZnNldCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0
UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQpOworICAgICAgICAgICAgbV9zcGVjaWFsRmFz
dENhc2VQcm9maWxlcywgbV9zcGVjaWFsRmFzdENhc2VQcm9maWxlcy5zaXplKCksIGJ5dGVjb2Rl
T2Zmc2V0LAorICAgICAgICAgICAgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQpOwog
ICAgIH0KIAogICAgIGJvb2wgbGlrZWx5VG9UYWtlU3BlY2lhbEZhc3RDYXNlKGludCBieXRlY29k
ZU9mZnNldCkKQEAgLTU3NiwxMSArNTc1LDE1IEBAIHB1YmxpYzoKICAgICAgICAgQ29uY3VycmVu
dEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUu
YWRkKGxvY2tlciwgc2l0ZSk7CiAgICAgfQotICAgICAgICAKKworICAgIGJvb2wgaGFzRXhpdFNp
dGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBjb25zdCBERkc6OkZyZXF1ZW50
RXhpdFNpdGUmIHNpdGUpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9leGl0UHJvZmls
ZS5oYXNFeGl0U2l0ZShsb2NrZXIsIHNpdGUpOworICAgIH0KICAgICBib29sIGhhc0V4aXRTaXRl
KGNvbnN0IERGRzo6RnJlcXVlbnRFeGl0U2l0ZSYgc2l0ZSkgY29uc3QKICAgICB7CiAgICAgICAg
IENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgICAgIHJldHVybiBtX2V4
aXRQcm9maWxlLmhhc0V4aXRTaXRlKGxvY2tlciwgc2l0ZSk7CisgICAgICAgIHJldHVybiBoYXNF
eGl0U2l0ZShsb2NrZXIsIHNpdGUpOwogICAgIH0KIAogICAgIERGRzo6RXhpdFByb2ZpbGUmIGV4
aXRQcm9maWxlKCkgeyByZXR1cm4gbV9leGl0UHJvZmlsZTsgfQpAQCAtNjc5LDkgKzY4MiwxOSBA
QCBwdWJsaWM6CiAKICAgICBCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXMmIGxpdmVuZXNzQW5hbHlz
aXMoKQogICAgIHsKLSAgICAgICAgaWYgKCFtX2xpdmVuZXNzQW5hbHlzaXMpCi0gICAgICAgICAg
ICBtX2xpdmVuZXNzQW5hbHlzaXMgPSBzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVjb2RlTGl2ZW5lc3NB
bmFseXNpcz4odGhpcyk7Ci0gICAgICAgIHJldHVybiAqbV9saXZlbmVzc0FuYWx5c2lzOworICAg
ICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwor
ICAgICAgICAgICAgaWYgKCEhbV9saXZlbmVzc0FuYWx5c2lzKQorICAgICAgICAgICAgICAgIHJl
dHVybiAqbV9saXZlbmVzc0FuYWx5c2lzOworICAgICAgICB9CisgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXM+IGFuYWx5c2lzID0KKyAgICAgICAgICAgIHN0
ZDo6bWFrZV91bmlxdWU8Qnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzPih0aGlzKTsKKyAgICAgICAg
eworICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAg
ICAgICAgIGlmICghbV9saXZlbmVzc0FuYWx5c2lzKQorICAgICAgICAgICAgICAgIG1fbGl2ZW5l
c3NBbmFseXNpcyA9IHN0ZDo6bW92ZShhbmFseXNpcyk7CisgICAgICAgICAgICByZXR1cm4gKm1f
bGl2ZW5lc3NBbmFseXNpczsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICB2b2lkIHZhbGlk
YXRlKCk7CkBAIC04NjYsNiArODc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQWxsUHJl
ZGljdGlvbnMoKTsKIAogICAgIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudCgpOworICAgIGlu
dCBzdGFja1BvaW50ZXJPZmZzZXQoKTsKIAogICAgIGJvb2wgaGFzT3BEZWJ1Z0ZvckxpbmVBbmRD
b2x1bW4odW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKTsKIApAQCAtODkxLDcgKzkwNSw3
IEBAIHB1YmxpYzoKIAogICAgIGludCBtX251bUNhbGxlZVJlZ2lzdGVyczsKICAgICBpbnQgbV9u
dW1WYXJzOwotICAgIGJvb2wgbV9pc0NvbnN0cnVjdG9yOworICAgIGJvb2wgbV9pc0NvbnN0cnVj
dG9yIDogMTsKICAgICAKICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgcHVibGljOyBpdCdz
IHRoZSByZXNwb25zaWJpbGl0eSBvZiBhbnlvbmUgZG9pbmcgYW55CiAgICAgLy8gb2YgdGhlIGZv
bGxvd2luZyB0byBob2xkIHRoZSBsb2NrOgpAQCAtOTExLDEwICs5MjUsMTEgQEAgcHVibGljOgog
ICAgIC8vIGNvbmN1cnJlbnQgY29tcGlsYXRpb24gdGhyZWFkcyBmaW5pc2ggd2hhdCB0aGV5J3Jl
IGRvaW5nLgogICAgIG11dGFibGUgQ29uY3VycmVudEpJVExvY2sgbV9sb2NrOwogICAgIAotICAg
IGJvb2wgbV9zaG91bGRBbHdheXNCZUlubGluZWQ7Ci0gICAgYm9vbCBtX2FsbFRyYW5zaXRpb25z
SGF2ZUJlZW5NYXJrZWQ7IC8vIEluaXRpYWxpemVkIGFuZCB1c2VkIG9uIGV2ZXJ5IEdDLgorICAg
IGJvb2wgbV9zaG91bGRBbHdheXNCZUlubGluZWQ7IC8vIE5vdCBhIGJpdGZpZWxkIGJlY2F1c2Ug
dGhlIEpJVCB3YW50cyB0byBzdG9yZSB0byBpdC4KKyAgICBib29sIG1fYWxsVHJhbnNpdGlvbnNI
YXZlQmVlbk1hcmtlZCA6IDE7IC8vIEluaXRpYWxpemVkIGFuZCB1c2VkIG9uIGV2ZXJ5IEdDLgog
ICAgIAotICAgIGJvb2wgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb247CisgICAgYm9vbCBtX2RpZEZh
aWxGVExDb21waWxhdGlvbiA6IDE7CisgICAgYm9vbCBtX2hhc0JlZW5Db21waWxlZFdpdGhGVEwg
OiAxOwogCiAgICAgLy8gSW50ZXJuYWwgbWV0aG9kcyBmb3IgdXNlIGJ5IHZhbGlkYXRpb24gY29k
ZS4gSXQgd291bGQgYmUgcHJpdmF0ZSBpZiBpdCB3YXNuJ3QKICAgICAvLyBmb3IgdGhlIGZhY3Qg
dGhhdCB3ZSB1c2UgaXQgZnJvbSBhbm9ueW1vdXMgbmFtZXNwYWNlcy4KQEAgLTEwNTQsNyArMTA2
OSw2IEBAIHByaXZhdGU6CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PExMSW50Q2FsbExpbmtJbmZv
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxMTEludENhbGxMaW5rSW5mbz4+IG1faW5jb21pbmdMTElu
dENhbGxzOwogI2VuZGlmCiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29kZTsKLSAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlV2l0aEFyaXR5Q2hlY2s7CiAjaWYgRU5BQkxFKEpJ
VCkKICAgICBCYWc8U3RydWN0dXJlU3R1YkluZm8+IG1fc3R1YkluZm9zOwogICAgIFZlY3RvcjxC
eVZhbEluZm8+IG1fYnlWYWxJbmZvczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlT3JpZ2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUs
NyArNDUsNjQgQEAgdW5zaWduZWQgQ29kZU9yaWdpbjo6aW5saW5lRGVwdGgoKSBjb25zdAogewog
ICAgIHJldHVybiBpbmxpbmVEZXB0aEZvckNhbGxGcmFtZShpbmxpbmVDYWxsRnJhbWUpOwogfQor
Citib29sIENvZGVPcmlnaW46OmlzQXBwcm94aW1hdGVseUVxdWFsVG8oY29uc3QgQ29kZU9yaWdp
biYgb3RoZXIpIGNvbnN0Cit7CisgICAgQ29kZU9yaWdpbiBhID0gKnRoaXM7CisgICAgQ29kZU9y
aWdpbiBiID0gb3RoZXI7CisKKyAgICBpZiAoIWEuaXNTZXQoKSkKKyAgICAgICAgcmV0dXJuICFi
LmlzU2V0KCk7CisgICAgaWYgKCFiLmlzU2V0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAKKyAgICBpZiAoYS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKQorICAgICAgICByZXR1cm4g
Yi5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgIGlmIChiLmlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBmb3IgKDs7KSB7Cisg
ICAgICAgIEFTU0VSVChhLmlzU2V0KCkpOworICAgICAgICBBU1NFUlQoYi5pc1NldCgpKTsKKyAg
ICAgICAgCisgICAgICAgIGlmIChhLmJ5dGVjb2RlSW5kZXggIT0gYi5ieXRlY29kZUluZGV4KQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYgKCghIWEuaW5s
aW5lQ2FsbEZyYW1lKSAhPSAoISFiLmlubGluZUNhbGxGcmFtZSkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAoIWEuaW5saW5lQ2FsbEZyYW1lKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIAorICAgICAgICBpZiAoYS5pbmxpbmVDYWxs
RnJhbWUtPmV4ZWN1dGFibGUgIT0gYi5pbmxpbmVDYWxsRnJhbWUtPmV4ZWN1dGFibGUpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBhID0gYS5pbmxpbmVDYWxs
RnJhbWUtPmNhbGxlcjsKKyAgICAgICAgYiA9IGIuaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7Cisg
ICAgfQorfQorCit1bnNpZ25lZCBDb2RlT3JpZ2luOjphcHByb3hpbWF0ZUhhc2goKSBjb25zdAor
eworICAgIGlmICghaXNTZXQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKGlzSGFzaFRh
YmxlRGVsZXRlZFZhbHVlKCkpCisgICAgICAgIHJldHVybiAxOwogICAgIAorICAgIHVuc2lnbmVk
IHJlc3VsdCA9IDI7CisgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gKnRoaXM7CisgICAgZm9y
ICg7OykgeworICAgICAgICByZXN1bHQgKz0gY29kZU9yaWdpbi5ieXRlY29kZUluZGV4OworICAg
ICAgICAKKyAgICAgICAgaWYgKCFjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSkKKyAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIAorICAgICAgICByZXN1bHQgKz0gV1RGOjpQdHJI
YXNoPEpTQ2VsbCo+OjpoYXNoKGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5leGVjdXRhYmxl
LmdldCgpKTsKKyAgICAgICAgCisgICAgICAgIGNvZGVPcmlnaW4gPSBjb2RlT3JpZ2luLmlubGlu
ZUNhbGxGcmFtZS0+Y2FsbGVyOworICAgIH0KK30KKwogVmVjdG9yPENvZGVPcmlnaW4+IENvZGVP
cmlnaW46OmlubGluZVN0YWNrKCkgY29uc3QKIHsKICAgICBWZWN0b3I8Q29kZU9yaWdpbj4gcmVz
dWx0KGlubGluZURlcHRoKCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZU9yaWdpbi5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw3IEBA
IHN0cnVjdCBDb2RlT3JpZ2luIHsKICAgICAKICAgICBDb2RlT3JpZ2luKFdURjo6SGFzaFRhYmxl
RGVsZXRlZFZhbHVlVHlwZSkKICAgICAgICAgOiBieXRlY29kZUluZGV4KGludmFsaWRCeXRlY29k
ZUluZGV4KQotICAgICAgICAsIGlubGluZUNhbGxGcmFtZShiaXR3aXNlX2Nhc3Q8SW5saW5lQ2Fs
bEZyYW1lKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigxKSkpCisgICAgICAgICwgaW5saW5lQ2Fs
bEZyYW1lKGRlbGV0ZWRNYXJrZXIoKSkKICAgICB7CiAgICAgfQogICAgIApAQCAtOTcsMTUgKzk3
LDI3IEBAIHN0cnVjdCBDb2RlT3JpZ2luIHsKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29k
ZU9yaWdpbiYgb3RoZXIpIGNvbnN0OwogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBDb2RlT3Jp
Z2luJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KICAgICAKKyAg
ICAvLyBUaGlzIGNoZWNrcyBpZiB0aGUgdHdvIGNvZGUgb3JpZ2lucyBjb3JyZXNwb25kIHRvIHRo
ZSBzYW1lIHN0YWNrIHRyYWNlIHNuaXBwZXRzLAorICAgIC8vIGJ1dCBpZ25vcmUgd2hldGhlciB0
aGUgSW5saW5lQ2FsbEZyYW1lJ3MgYXJlIGlkZW50aWNhbC4KKyAgICBib29sIGlzQXBwcm94aW1h
dGVseUVxdWFsVG8oY29uc3QgQ29kZU9yaWdpbiYgb3RoZXIpIGNvbnN0OworICAgIAorICAgIHVu
c2lnbmVkIGFwcHJveGltYXRlSGFzaCgpIGNvbnN0OworICAgIAogICAgIC8vIEdldCB0aGUgaW5s
aW5lIHN0YWNrLiBUaGlzIGlzIHNsb3csIGFuZCBpcyBpbnRlbmRlZCBmb3IgZGVidWdnaW5nIG9u
bHkuCiAgICAgVmVjdG9yPENvZGVPcmlnaW4+IGlubGluZVN0YWNrKCkgY29uc3Q7CiAgICAgCiAg
ICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkdW1wSW5Db250ZXh0
KFByaW50U3RyZWFtJiwgRHVtcENvbnRleHQqKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBzdGF0
aWMgSW5saW5lQ2FsbEZyYW1lKiBkZWxldGVkTWFya2VyKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBiaXR3aXNlX2Nhc3Q8SW5saW5lQ2FsbEZyYW1lKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90Pigx
KSk7CisgICAgfQogfTsKIAogc3RydWN0IElubGluZUNhbGxGcmFtZSB7Ci0gICAgVmVjdG9yPFZh
bHVlUmVjb3Zlcnk+IGFyZ3VtZW50czsKKyAgICBWZWN0b3I8VmFsdWVSZWNvdmVyeT4gYXJndW1l
bnRzOyAvLyBJbmNsdWRlcyAndGhpcycuCiAgICAgV3JpdGVCYXJyaWVyPFNjcmlwdEV4ZWN1dGFi
bGU+IGV4ZWN1dGFibGU7CiAgICAgVmFsdWVSZWNvdmVyeSBjYWxsZWVSZWNvdmVyeTsKICAgICBD
b2RlT3JpZ2luIGNhbGxlcjsKQEAgLTE4NSw2ICsxOTcsMTIgQEAgc3RydWN0IENvZGVPcmlnaW5I
YXNoIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IHRydWU7CiB9OwogCitzdHJ1Y3QgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaCB7CisgICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgQ29kZU9yaWdpbiYga2V5KSB7IHJldHVybiBrZXku
YXBwcm94aW1hdGVIYXNoKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDb2RlT3Jp
Z2luJiBhLCBjb25zdCBDb2RlT3JpZ2luJiBiKSB7IHJldHVybiBhLmlzQXBwcm94aW1hdGVseUVx
dWFsVG8oYik7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9y
RGVsZXRlZCA9IHRydWU7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNlIFdU
RiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0
UHJvZmlsZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDgg
QEAgRXhpdFByb2ZpbGU6On5FeGl0UHJvZmlsZSgpIHsgfQogCiBib29sIEV4aXRQcm9maWxlOjph
ZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNp
dGUpCiB7CisgICAgQVNTRVJUKHNpdGUuaml0VHlwZSgpICE9IEV4aXRGcm9tQW55dGhpbmcpOwor
ICAgIAogICAgIC8vIElmIHdlJ3ZlIG5ldmVyIHNlZW4gYW55IGZyZXF1ZW50IGV4aXRzIHRoZW4g
Y3JlYXRlIHRoZSBsaXN0IGFuZCBwdXQgdGhpcyBzaXRlCiAgICAgLy8gaW50byBpdC4KICAgICBp
ZiAoIW1fZnJlcXVlbnRFeGl0U2l0ZXMpIHsKQEAgLTc4LDcgKzgwLDcgQEAgYm9vbCBFeGl0UHJv
ZmlsZTo6aGFzRXhpdFNpdGUoY29uc3QgQ29uYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9mcmVxdWVudEV4aXRTaXRlcy0+c2l6ZSgpOyBpLS07
KSB7Ci0gICAgICAgIGlmIChtX2ZyZXF1ZW50RXhpdFNpdGVzLT5hdChpKSA9PSBzaXRlKQorICAg
ICAgICBpZiAoc2l0ZS5zdWJzdW1lcyhtX2ZyZXF1ZW50RXhpdFNpdGVzLT5hdChpKSkpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJv
ZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJDb25jdXJyZW50SklUTG9jay5oIgogI2luY2x1ZGUgIkV4aXRLaW5k
LmgiCisjaW5jbHVkZSAiRXhpdGluZ0pJVFR5cGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0z
OSwxOCArNDAsMjEgQEAgcHVibGljOgogICAgIEZyZXF1ZW50RXhpdFNpdGUoKQogICAgICAgICA6
IG1fYnl0ZWNvZGVPZmZzZXQoMCkgLy8gMCA9IGVtcHR5IHZhbHVlCiAgICAgICAgICwgbV9raW5k
KEV4aXRLaW5kVW5zZXQpCisgICAgICAgICwgbV9qaXRUeXBlKEV4aXRGcm9tQW55dGhpbmcpCiAg
ICAgewogICAgIH0KICAgICAKICAgICBGcmVxdWVudEV4aXRTaXRlKFdURjo6SGFzaFRhYmxlRGVs
ZXRlZFZhbHVlVHlwZSkKICAgICAgICAgOiBtX2J5dGVjb2RlT2Zmc2V0KDEpIC8vIDEgPSBkZWxl
dGVkIHZhbHVlCiAgICAgICAgICwgbV9raW5kKEV4aXRLaW5kVW5zZXQpCisgICAgICAgICwgbV9q
aXRUeXBlKEV4aXRGcm9tQW55dGhpbmcpCiAgICAgewogICAgIH0KICAgICAKLSAgICBleHBsaWNp
dCBGcmVxdWVudEV4aXRTaXRlKHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LCBFeGl0S2luZCBraW5k
KQorICAgIGV4cGxpY2l0IEZyZXF1ZW50RXhpdFNpdGUodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQs
IEV4aXRLaW5kIGtpbmQsIEV4aXRpbmdKSVRUeXBlIGppdFR5cGUgPSBFeGl0RnJvbUFueXRoaW5n
KQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpCiAgICAgICAgICwg
bV9raW5kKGtpbmQpCisgICAgICAgICwgbV9qaXRUeXBlKGppdFR5cGUpCiAgICAgewogICAgICAg
ICBpZiAobV9raW5kID09IEFyZ3VtZW50c0VzY2FwZWQpIHsKICAgICAgICAgICAgIC8vIENvdW50
IHRoaXMgb25lIGdsb2JhbGx5LiBJdCBkb2Vzbid0IG1hdHRlciB3aGVyZSBpbiB0aGUgY29kZSBi
bG9jayB0aGUgYXJndW1lbnRzIGV4Y2FwZWQ7CkBAIC02MSw5ICs2NSwxMCBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgLy8gVXNlIHRoaXMgY29uc3RydWN0b3IgaWYgeW91IHdpc2ggZm9yIHRoZSBleGl0
IHNpdGUgdG8gYmUgY291bnRlZCBnbG9iYWxseSB3aXRoaW4gaXRzCiAgICAgLy8gY29kZSBibG9j
ay4KLSAgICBleHBsaWNpdCBGcmVxdWVudEV4aXRTaXRlKEV4aXRLaW5kIGtpbmQpCisgICAgZXhw
bGljaXQgRnJlcXVlbnRFeGl0U2l0ZShFeGl0S2luZCBraW5kLCBFeGl0aW5nSklUVHlwZSBqaXRU
eXBlID0gRXhpdEZyb21Bbnl0aGluZykKICAgICAgICAgOiBtX2J5dGVjb2RlT2Zmc2V0KDApCiAg
ICAgICAgICwgbV9raW5kKGtpbmQpCisgICAgICAgICwgbV9qaXRUeXBlKGppdFR5cGUpCiAgICAg
ewogICAgIH0KICAgICAKQEAgLTc1LDE2ICs4MCwzNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIG90aGVyKSBjb25zdAogICAgIHsKICAgICAg
ICAgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXQgPT0gb3RoZXIubV9ieXRlY29kZU9mZnNldAotICAg
ICAgICAgICAgJiYgbV9raW5kID09IG90aGVyLm1fa2luZDsKKyAgICAgICAgICAgICYmIG1fa2lu
ZCA9PSBvdGhlci5tX2tpbmQKKyAgICAgICAgICAgICYmIG1faml0VHlwZSA9PSBvdGhlci5tX2pp
dFR5cGU7CisgICAgfQorICAgIAorICAgIGJvb2wgc3Vic3VtZXMoY29uc3QgRnJlcXVlbnRFeGl0
U2l0ZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICBpZiAobV9ieXRlY29kZU9mZnNldCAh
PSBvdGhlci5tX2J5dGVjb2RlT2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAobV9raW5kICE9IG90aGVyLm1fa2luZCkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgaWYgKG1faml0VHlwZSA9PSBFeGl0RnJvbUFueXRoaW5nKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBtX2ppdFR5cGUgPT0gb3RoZXIubV9qaXRU
eXBlOwogICAgIH0KICAgICAKICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBXVEY6OmludEhhc2gobV9ieXRlY29kZU9mZnNldCkgKyBtX2tpbmQ7CisgICAg
ICAgIHJldHVybiBXVEY6OmludEhhc2gobV9ieXRlY29kZU9mZnNldCkgKyBtX2tpbmQgKyBtX2pp
dFR5cGUgKiA3OwogICAgIH0KICAgICAKICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCgpIGNv
bnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXQ7IH0KICAgICBFeGl0S2luZCBraW5kKCkgY29u
c3QgeyByZXR1cm4gbV9raW5kOyB9CisgICAgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1faml0VHlwZTsgfQorICAgIAorICAgIEZyZXF1ZW50RXhpdFNpdGUgd2l0aEpJ
VFR5cGUoRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkgY29uc3QKKyAgICB7CisgICAgICAgIEZyZXF1
ZW50RXhpdFNpdGUgcmVzdWx0ID0gKnRoaXM7CisgICAgICAgIHJlc3VsdC5tX2ppdFR5cGUgPSBq
aXRUeXBlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIAogICAgIGJvb2wgaXNIYXNo
VGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAogICAgIHsKQEAgLTk0LDYgKzExOSw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9ieXRlY29kZU9mZnNldDsKICAgICBFeGl0S2lu
ZCBtX2tpbmQ7CisgICAgRXhpdGluZ0pJVFR5cGUgbV9qaXRUeXBlOwogfTsKIAogc3RydWN0IEZy
ZXF1ZW50RXhpdFNpdGVIYXNoIHsKQEAgLTE2Niw2ICsxOTIsMTAgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBoYXNFeGl0U2l0ZShjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBzaXRlKSBjb25zdAogICAg
IHsKKyAgICAgICAgaWYgKHNpdGUuaml0VHlwZSgpID09IEV4aXRGcm9tQW55dGhpbmcpIHsKKyAg
ICAgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShzaXRlLndpdGhKSVRUeXBlKEV4aXRGcm9tREZH
KSkKKyAgICAgICAgICAgICAgICB8fCBoYXNFeGl0U2l0ZShzaXRlLndpdGhKSVRUeXBlKEV4aXRG
cm9tRlRMKSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZnJlcXVlbnRFeGl0U2l0ZXMu
ZmluZChzaXRlKSAhPSBtX2ZyZXF1ZW50RXhpdFNpdGVzLmVuZCgpOwogICAgIH0KICAgICAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotZW51bSBF
eGl0S2luZCB7CitlbnVtIEV4aXRLaW5kIDogdWludDhfdCB7CiAgICAgRXhpdEtpbmRVbnNldCwK
ICAgICBCYWRUeXBlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhIHR5cGUgcHJlZGljdGlvbiB3YXMg
d3JvbmcuCiAgICAgQmFkRnVuY3Rpb24sIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4g
aW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBmdW5jdGlvbiB3ZSB3b3VsZCBzZWUuCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdGluZ0pJVFR5cGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdGluZ0pJVFR5cGUu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0aW5n
SklUVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBFeGl0aW5nSklUVHlwZV9o
CisjZGVmaW5lIEV4aXRpbmdKSVRUeXBlX2gKKworI2luY2x1ZGUgIkpJVENvZGUuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK2VudW0gRXhpdGluZ0pJVFR5cGUgOiB1aW50OF90IHsKKyAgICBFeGl0
RnJvbUFueXRoaW5nLAorICAgIEV4aXRGcm9tREZHLAorICAgIEV4aXRGcm9tRlRMCit9OworCitp
bmxpbmUgRXhpdGluZ0pJVFR5cGUgZXhpdGluZ0pJVFR5cGVGb3IoSklUQ29kZTo6SklUVHlwZSB0
eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgSklUQ29kZTo6REZHSklUOgor
ICAgICAgICByZXR1cm4gRXhpdEZyb21ERkc7CisgICAgY2FzZSBKSVRDb2RlOjpGVExKSVQ6Cisg
ICAgICAgIHJldHVybiBFeGl0RnJvbUZUTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gRXhpdEZyb21Bbnl0aGluZzsK
KyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRXhpdGluZ0pJVFR5
cGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5
SWRTdGF0dXMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0
LDYgKzM0LDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitib29sIEdldEJ5SWRTdGF0dXM6Omhh
c0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBw
cm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSBqaXRU
eXBlKQoreworICAgIHJldHVybiBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERG
Rzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRDYWNoZSwgaml0VHlwZSkpCisg
ICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVu
dEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCwgaml0VHlwZSkpCisg
ICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVu
dEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlLCBqaXRUeXBlKSkK
KyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1
ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50
LCBqaXRUeXBlKSk7Cit9CisKIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZy
b21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgs
IFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CkBA
IC0xMjAsMTMgKzEyOCwyNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVG
b3IoCiB7CiAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIocHJvZmlsZWRCbG9jay0+bV9s
b2NrKTsKICAgICAKLSAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7Ci0gICAgVU5VU0VE
X1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwotICAgIFVOVVNFRF9QQVJBTSh1aWQpOworICAgIEdldEJ5
SWRTdGF0dXMgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKAorICAgICAgICBsb2NrZXIsIHBy
b2ZpbGVkQmxvY2ssIG1hcC5nZXQoQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSksIHVpZCk7Cisg
ICAgCisgICAgaWYgKCFyZXN1bHQudGFrZXNTbG93UGF0aCgpCisgICAgICAgICYmIChoYXNFeGl0
U2l0ZShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpCisgICAgICAgICAgICB8
fCBwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShieXRlY29kZUluZGV4KSkpCisg
ICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOworCisgICAg
aWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50KHByb2ZpbGVkQmxv
Y2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
R2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8oCisgICAgY29u
c3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvLAorICAgIFN0cmluZ0ltcGwqIHVpZCkKK3sKICNpZiBFTkFC
TEUoSklUKQotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1hcC5nZXQoQ29kZU9y
aWdpbihieXRlY29kZUluZGV4KSk7CiAgICAgaWYgKCFzdHViSW5mbyB8fCAhc3R1YkluZm8tPnNl
ZW4pCi0gICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVj
b2RlSW5kZXgsIHVpZCk7CisgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRp
b24pOwogICAgIAogICAgIGlmIChzdHViSW5mby0+cmVzZXRCeUdDKQogICAgICAgICByZXR1cm4g
R2V0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCB0cnVlKTsKQEAgLTE1MiwxNiArMTc0LDEyIEBA
IEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICAgICAgICAgIHJl
dHVybiBHZXRCeUlkU3RhdHVzKE1ha2VzQ2FsbHMsIHRydWUpOwogICAgIH0KICAgICAKLSAgICAv
LyBOZXh0IGNoZWNrIGlmIGl0IHRha2VzIHNsb3cgY2FzZSwgaW4gd2hpY2ggY2FzZSB3ZSB3YW50
IHRvIGJlIGtpbmQgb2YgY2FyZWZ1bC4KLSAgICBpZiAocHJvZmlsZWRCbG9jay0+bGlrZWx5VG9U
YWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpCi0gICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVz
KFRha2VzU2xvd1BhdGgsIHRydWUpOwotICAgIAogICAgIC8vIEZpbmFsbHkgZmlndXJlIG91dCBp
ZiB3ZSBjYW4gZGVyaXZlIGFuIGFjY2VzcyBzdHJhdGVneS4KICAgICBHZXRCeUlkU3RhdHVzIHJl
c3VsdDsKICAgICByZXN1bHQubV93YXNTZWVuSW5KSVQgPSB0cnVlOyAvLyBUaGlzIGlzIGludGVy
ZXN0aW5nIGZvciBieXRlY29kZSBkdW1waW5nIG9ubHkuCiAgICAgc3dpdGNoIChzdHViSW5mby0+
YWNjZXNzVHlwZSkgewogICAgIGNhc2UgYWNjZXNzX3Vuc2V0OgotICAgICAgICByZXR1cm4gY29t
cHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4LCB1aWQpOworICAgICAg
ICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uKTsKICAgICAgICAgCiAgICAgY2Fz
ZSBhY2Nlc3NfZ2V0X2J5X2lkX3NlbGY6IHsKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBzdHViSW5mby0+dS5nZXRCeUlkU2VsZi5iYXNlT2JqZWN0U3RydWN0dXJlLmdldCgpOwpAQCAt
MjYyLDExICsyODAsNDAgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9y
KAogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiAjZWxzZSAvLyBFTkFCTEUoSklUKQotICAgIFVO
VVNFRF9QQVJBTShtYXApOworICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKKyAgICBV
TlVTRURfUEFSQU0oc3R1YkluZm8pOworICAgIFVOVVNFRF9QQVJBTSh1aWQpOwogICAgIHJldHVy
biBHZXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24sIGZhbHNlKTsKICNlbmRpZiAvLyBFTkFCTEUo
SklUKQogfQogCitHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCisgICAg
Q29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01h
cCYgYmFzZWxpbmVNYXAsCisgICAgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiBjb2Rl
T3JpZ2luLCBTdHJpbmdJbXBsKiB1aWQpCit7CisgICAgaWYgKGRmZ0Jsb2NrKSB7CisgICAgICAg
IEdldEJ5SWRTdGF0dXMgcmVzdWx0OworICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihkZmdCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIHJlc3VsdCA9
IGNvbXB1dGVGb3JTdHViSW5mbyhsb2NrZXIsIGRmZ0Jsb2NrLCBkZmdNYXAuZ2V0KGNvZGVPcmln
aW4pLCB1aWQpOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChyZXN1bHQudGFrZXNTbG93
UGF0aCgpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAKKyAgICAgICAgeworICAg
ICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIocHJvZmlsZWRCbG9jay0+bV9sb2Nr
KTsKKyAgICAgICAgICAgIGlmIChoYXNFeGl0U2l0ZShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGNv
ZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgRXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBpZiAocmVzdWx0LmlzU2V0KCkpCisgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKworICAgIHJldHVybiBjb21wdXRlRm9yKHByb2ZpbGVkQmxvY2ssIGJhc2Vs
aW5lTWFwLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIHVpZCk7Cit9CisKIEdldEJ5SWRTdGF0
dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBTdHJpbmdJbXBsKiB1aWQpCiB7CiAgICAgLy8gRm9yIG5vdyB3ZSBvbmx5IGhhbmRsZSB0aGUg
c3VwZXIgc2ltcGxlIHNlbGYgYWNjZXNzIGNhc2UuIFdlIGNvdWxkIGhhbmRsZSB0aGUKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRT
dGF0dXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsOSBAQAogI2lmbmRl
ZiBHZXRCeUlkU3RhdHVzX2gKICNkZWZpbmUgR2V0QnlJZFN0YXR1c19oCiAKKyNpbmNsdWRlICJD
b2RlT3JpZ2luLmgiCisjaW5jbHVkZSAiQ29uY3VycmVudEpJVExvY2suaCIKKyNpbmNsdWRlICJF
eGl0aW5nSklUVHlwZS5oIgogI2luY2x1ZGUgIkludGVuZGVkU3RydWN0dXJlQ2hhaW4uaCIKICNp
bmNsdWRlICJQcm9wZXJ0eU9mZnNldC5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVNldC5oIgpAQCAt
NzQsNiArNzcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZv
cihDb2RlQmxvY2sqLCBTdHViSW5mb01hcCYsIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmlu
Z0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihWTSYsIFN0
cnVjdHVyZSosIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgCisgICAgc3RhdGljIEdldEJ5SWRTdGF0
dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIENvZGVCbG9jayogZGZnQmxv
Y2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9y
aWdpbiwgU3RyaW5nSW1wbCogdWlkKTsKKyAgICAKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhdGU7IH0KICAgICAKICAgICBib29sIGlzU2V0KCkgY29uc3QgeyByZXR1cm4g
bV9zdGF0ZSAhPSBOb0luZm9ybWF0aW9uOyB9CkBAIC05MCw2ICs5NSw4IEBAIHB1YmxpYzoKICAg
ICBib29sIHdhc1NlZW5JbkpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzU2VlbkluSklUOyB9CiAg
ICAgCiBwcml2YXRlOgorICAgIHN0YXRpYyBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJl
bnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5n
SklUVHlwZSA9IEV4aXRGcm9tQW55dGhpbmcpOworICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNv
bXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwg
U3RydWN0dXJlU3R1YkluZm8qLCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIHN0YXRpYyB2b2lkIGNv
bXB1dGVGb3JDaGFpbihHZXRCeUlkU3RhdHVzJiByZXN1bHQsIENvZGVCbG9jayosIFN0cmluZ0lt
cGwqIHVpZCk7CiAgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZyb21MTEludChDb2Rl
QmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0
dGlzb25pbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmls
ZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OSw3
ICs0OSw5IEBAIHZvaWQgUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG8KICAgICAK
ICAgICBpZiAoc291cmNlQmFzZWxpbmVDb2RlQmxvY2spIHsKICAgICAgICAgc291cmNlQmFzZWxp
bmVDb2RlQmxvY2stPmFkZEZyZXF1ZW50RXhpdFNpdGUoCi0gICAgICAgICAgICBERkc6OkZyZXF1
ZW50RXhpdFNpdGUobV9jb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIG1fZXhpdEtpbmQpKTsKKyAg
ICAgICAgICAgIERGRzo6RnJlcXVlbnRFeGl0U2l0ZSgKKyAgICAgICAgICAgICAgICBtX2NvZGVP
cmlnaW4uYnl0ZWNvZGVJbmRleCwgbV9leGl0S2luZCwKKyAgICAgICAgICAgICAgICBleGl0aW5n
SklUVHlwZUZvcihtX2NvZGVCbG9jay0+aml0VHlwZSgpKSkpOwogICAgIH0KICAgICAKICAgICBt
X2NvZGVCbG9jay0+amV0dGlzb24oQ291bnRSZW9wdGltaXphdGlvbik7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDYgKzM1LDE0IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCitib29sIFB1dEJ5SWRTdGF0dXM6Omhhc0V4aXRTaXRlKGNvbnN0IENvbmN1
cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25l
ZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSBleGl0VHlwZSkKK3sKKyAgICByZXR1cm4g
cHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUo
Ynl0ZWNvZGVJbmRleCwgQmFkQ2FjaGUsIGV4aXRUeXBlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRC
bG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJ
bmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50LCBleGl0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVk
QmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2Rl
SW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlLCBleGl0VHlwZSkpCisgICAgICAgIHx8IHByb2Zp
bGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVj
b2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2ludCwgZXhpdFR5cGUpKTsKK30K
KwogUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KENvZGVCbG9j
ayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgU3RyaW5nSW1wbCogdWlk
KQogewogICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKQEAgLTg5LDEzICs5NywyNyBA
QCBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCiAgICAgVU5VU0VEX1BB
UkFNKGJ5dGVjb2RlSW5kZXgpOwogICAgIFVOVVNFRF9QQVJBTSh1aWQpOwogI2lmIEVOQUJMRShK
SVQpCi0gICAgaWYgKHByb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKGJ5dGVjb2Rl
SW5kZXgpKQorICAgIGlmIChwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShieXRl
Y29kZUluZGV4KQorICAgICAgICB8fCBoYXNFeGl0U2l0ZShsb2NrZXIsIHByb2ZpbGVkQmxvY2ss
IGJ5dGVjb2RlSW5kZXgpKQogICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQ
YXRoLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsKICAgICAKICAgICBTdHJ1Y3R1cmVTdHViSW5m
byogc3R1YkluZm8gPSBtYXAuZ2V0KENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkpOwotICAgIGlm
ICghc3R1YkluZm8gfHwgIXN0dWJJbmZvLT5zZWVuKQorICAgIFB1dEJ5SWRTdGF0dXMgcmVzdWx0
ID0gY29tcHV0ZUZvclN0dWJJbmZvKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgc3R1YkluZm8sIHVp
ZCk7CisgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50KHBy
b2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CiAgICAgCisgICAgcmV0dXJuIHJlc3Vs
dDsKKyNlbHNlIC8vIEVOQUJMRShKSVQpCisgICAgVU5VU0VEX1BBUkFNKG1hcCk7CisgICAgcmV0
dXJuIFB1dEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgMCwgMCwgMCwgaW52YWxpZE9mZnNldCk7
CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKK30KKworUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVz
Ojpjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9j
ayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBTdHJpbmdJbXBs
KiB1aWQpCit7CisgICAgaWYgKCFzdHViSW5mbyB8fCAhc3R1YkluZm8tPnNlZW4pCisgICAgICAg
IHJldHVybiBQdXRCeUlkU3RhdHVzKCk7CisgICAgCiAgICAgaWYgKHN0dWJJbmZvLT5yZXNldEJ5
R0MpCiAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIDAsIDAsIDAs
IGludmFsaWRPZmZzZXQpOwogCkBAIC0xNDIsMTAgKzE2NCwyOCBAQCBQdXRCeUlkU3RhdHVzIFB1
dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCiAgICAgICAgIC8vIHdlIGNvdWxkIGRvIGFib3V0IGl0
LgogICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCAwLCAwLCAwLCBp
bnZhbGlkT2Zmc2V0KTsKICAgICB9Ci0jZWxzZSAvLyBFTkFCTEUoSklUKQotICAgIFVOVVNFRF9Q
QVJBTShtYXApOwotICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24sIDAsIDAs
IDAsIGludmFsaWRPZmZzZXQpOwotI2VuZGlmIC8vIEVOQUJMRShKSVQpCit9CisKK1B1dEJ5SWRT
dGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ss
IENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwgU3R1YkluZm9N
YXAmIGRmZ01hcCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBTdHJpbmdJbXBsKiB1aWQpCit7Cisg
ICAgaWYgKGRmZ0Jsb2NrKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKGJhc2VsaW5lQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICBpZiAoaGFz
RXhpdFNpdGUobG9ja2VyLCBiYXNlbGluZUJsb2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgs
IEV4aXRGcm9tRlRMKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtl
c1Nsb3dQYXRoKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIFB1dEJ5SWRTdGF0
dXMgcmVzdWx0OworICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihkZmdCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JT
dHViSW5mbyhsb2NrZXIsIGRmZ0Jsb2NrLCBkZmdNYXAuZ2V0KGNvZGVPcmlnaW4pLCB1aWQpOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAocmVzdWx0LmlzU2V0KCkpCisgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICByZXR1cm4gY29tcHV0ZUZvcihi
YXNlbGluZUJsb2NrLCBiYXNlbGluZU1hcCwgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCB1aWQp
OwogfQogCiBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3RyaW5n
SW1wbCogdWlkLCBib29sIGlzRGlyZWN0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1B1dEJ5SWRTdGF0dXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFB1dEJ5SWRTdGF0dXNfaAogI2RlZmluZSBQdXRCeUlk
U3RhdHVzX2gKIAorI2luY2x1ZGUgIkV4aXRpbmdKSVRUeXBlLmgiCiAjaW5jbHVkZSAiSW50ZW5k
ZWRTdHJ1Y3R1cmVDaGFpbi5oIgogI2luY2x1ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCiAjaW5jbHVk
ZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKQEAgLTk0LDYgKzk1LDggQEAgcHVibGljOgogICAgIHN0
YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiwgU3R1YkluZm9NYXAmLCB1
bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIHN0YXRpYyBQdXRC
eUlkU3RhdHVzIGNvbXB1dGVGb3IoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFN0
cmluZ0ltcGwqIHVpZCwgYm9vbCBpc0RpcmVjdCk7CiAgICAgCisgICAgc3RhdGljIFB1dEJ5SWRT
dGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIENvZGVCbG9jayogZGZn
QmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29k
ZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlkKTsKKyAgICAKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICAKICAgICBib29sIGlzU2V0KCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0ZSAhPSBOb0luZm9ybWF0aW9uOyB9CkBAIC0xMDgsNiArMTExLDggQEAgcHVibGlj
OgogICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0OyB9
CiAgICAgCiBwcml2YXRlOgorICAgIHN0YXRpYyBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1
cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0
aW5nSklUVHlwZSA9IEV4aXRGcm9tQW55dGhpbmcpOworICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVz
IGNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2Nr
KiwgU3RydWN0dXJlU3R1YkluZm8qLCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIHN0YXRpYyBQdXRC
eUlkU3RhdHVzIGNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJ
bmRleCwgU3RyaW5nSW1wbCogdWlkKTsKICAgICAKICAgICBTdGF0ZSBtX3N0YXRlOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTZXQuaAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNl
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBT
dHJ1Y3R1cmVTZXQoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgeworICAgICAgICBBU1NFUlQo
c3RydWN0dXJlKTsKICAgICAgICAgbV9zdHJ1Y3R1cmVzLmFwcGVuZChzdHJ1Y3R1cmUpOwogICAg
IH0KICAgICAKQEAgLTU1LDYgKzU2LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgYWRkKFN0
cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKKyAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSk7CiAg
ICAgICAgIEFTU0VSVCghY29udGFpbnMoc3RydWN0dXJlKSk7CiAgICAgICAgIG1fc3RydWN0dXJl
cy5hcHBlbmQoc3RydWN0dXJlKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIxNiw3ICsyMTYsNiBAQCBzdHJ1
Y3QgU3RydWN0dXJlU3R1YkluZm8gewogCiAgICAgc3RydWN0IHsKICAgICAgICAgaW50OF90IHJl
Z2lzdGVyc0ZsdXNoZWQ7Ci0gICAgICAgIGludDhfdCBjYWxsRnJhbWVSZWdpc3RlcjsKICAgICAg
ICAgaW50OF90IGJhc2VHUFI7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgaW50OF90
IHZhbHVlVGFnR1BSOwpAQCAtMjkwLDcgKzI4OSw3IEBAIGlubGluZSBDb2RlT3JpZ2luIGdldFN0
cnVjdHVyZVN0dWJJbmZvQ28KICAgICByZXR1cm4gc3RydWN0dXJlU3R1YkluZm8uY29kZU9yaWdp
bjsKIH0KIAotdHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIFN0cnVjdHVyZVN0dWJJbmZvKj4g
U3R1YkluZm9NYXA7Cit0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgU3RydWN0dXJlU3R1Yklu
Zm8qLCBDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoPiBTdHViSW5mb01hcDsKIAogI2Vsc2UKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5o
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFs
dWVSZWNvdmVyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsNiArMjMwLDI3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIFZpcnR1YWxSZWdpc3RlcihtX3NvdXJjZS52aXJ0dWFsUmVnKTsKICAg
ICB9CiAgICAgCisgICAgVmFsdWVSZWNvdmVyeSB3aXRoTG9jYWxzT2Zmc2V0KGludCBvZmZzZXQp
IGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKG1fdGVjaG5pcXVlKSB7CisgICAgICAgIGNh
c2UgRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIEludDMyRGlzcGxhY2VkSW5KU1N0
YWNrOgorICAgICAgICBjYXNlIERvdWJsZURpc3BsYWNlZEluSlNTdGFjazoKKyAgICAgICAgY2Fz
ZSBDZWxsRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIEJvb2xlYW5EaXNwbGFjZWRJ
bkpTU3RhY2s6CisgICAgICAgIGNhc2UgSW50NTJEaXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAg
IGNhc2UgU3RyaWN0SW50NTJEaXNwbGFjZWRJbkpTU3RhY2s6IHsKKyAgICAgICAgICAgIFZhbHVl
UmVjb3ZlcnkgcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gbV90ZWNo
bmlxdWU7CisgICAgICAgICAgICByZXN1bHQubV9zb3VyY2UudmlydHVhbFJlZyA9IG1fc291cmNl
LnZpcnR1YWxSZWcgKyBvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
ICB9CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKICAgICBKU1ZhbHVlIGNvbnN0YW50KCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3RlY2huaXF1ZSA9PSBDb25zdGFudCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1YWxSZWdpc3Rlci5o
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmly
dHVhbFJlZ2lzdGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgog
ICAgIGludCB0b0FyZ3VtZW50KCkgY29uc3QgeyBBU1NFUlQoaXNBcmd1bWVudCgpKTsgcmV0dXJu
IG9wZXJhbmRUb0FyZ3VtZW50KG1fdmlydHVhbFJlZ2lzdGVyKTsgfQogICAgIGludCB0b0NvbnN0
YW50SW5kZXgoKSBjb25zdCB7IEFTU0VSVChpc0NvbnN0YW50KCkpOyByZXR1cm4gbV92aXJ0dWFs
UmVnaXN0ZXIgLSBzX2ZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4OyB9CiAgICAgaW50IG9mZnNl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVyOyB9CisgICAgaW50IG9mZnNldElu
Qnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZpcnR1YWxSZWdpc3RlciAqIHNpemVvZihSZWdpc3Rl
cik7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaXJ0dWFsUmVnaXN0ZXIgb3RoZXIp
IGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVyID09IG90aGVyLm1fdmlydHVhbFJlZ2lz
dGVyOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFZpcnR1YWxSZWdpc3RlciBvdGhlcikg
Y29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXIgIT0gb3RoZXIubV92aXJ0dWFsUmVnaXN0
ZXI7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxG
cmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQYXJzZXIu
aCIKICNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKLSNpbmNsdWRlICJWTUVudHJ5U2NvcGUuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDcgKzEzMSwxMCBA
QCBBcnJheU1vZGUgQXJyYXlNb2RlOjpmcm9tT2JzZXJ2ZWQoY29uc3QgCiAgICAgfQogfQogCi1B
cnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoU3BlY3VsYXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRl
ZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlLCBOb2RlRmxhZ3MgZmxhZ3MpIGNvbnN0
CitBcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoCisgICAgR3JhcGgmIGdyYXBoLCBDb2RlT3Jp
Z2luIGNvZGVPcmlnaW4sCisgICAgU3BlY3VsYXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUg
aW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlLAorICAgIE5vZGVGbGFncyBmbGFncykgY29uc3QK
IHsKICAgICBpZiAoIWJhc2UgfHwgIWluZGV4KSB7CiAgICAgICAgIC8vIEl0IGNhbiBiZSB0aGF0
IHdlIGhhZCBhIGxlZ2l0aW1hdGUgYXJyYXlNb2RlIGJ1dCBubyBpbmNvbWluZyBwcmVkaWN0aW9u
cy4gVGhhdCdsbApAQCAtMTg2LDcgKzE4OSw3IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmlu
ZShTcGVjdWxhdGVkVHkKICAgICAgICAgICAgIHJldHVybiB3aXRoQ29udmVyc2lvbihBcnJheTo6
UmFnZUNvbnZlcnQpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgICAgIAotICAgIGNhc2Ug
QXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6CisgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNp
bmdQcmVkaWN0aW9uczogewogICAgICAgICBiYXNlICY9IH5TcGVjT3RoZXI7CiAgICAgICAgIAog
ICAgICAgICBpZiAoaXNTdHJpbmdTcGVjdWxhdGlvbihiYXNlKSkKQEAgLTE5NSwzNCArMTk4LDQx
IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShTcGVjdWxhdGVkVHkKICAgICAgICAgaWYg
KGlzQXJndW1lbnRzU3BlY3VsYXRpb24oYmFzZSkpCiAgICAgICAgICAgICByZXR1cm4gd2l0aFR5
cGUoQXJyYXk6OkFyZ3VtZW50cyk7CiAgICAgICAgIAorICAgICAgICBBcnJheU1vZGUgcmVzdWx0
OworICAgICAgICBpZiAoZ3JhcGguaGFzRXhpdFNpdGUoY29kZU9yaWdpbiwgT3V0T2ZCb3VuZHMp
KQorICAgICAgICAgICAgcmVzdWx0ID0gd2l0aFNwZWN1bGF0aW9uKEFycmF5OjpPdXRPZkJvdW5k
cyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9ICp0aGlzOworICAgICAgICAK
ICAgICAgICAgaWYgKGlzSW50OEFycmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICBy
ZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkludDhBcnJheSk7CisgICAgICAgICAgICByZXR1cm4gcmVz
dWx0LndpdGhUeXBlKEFycmF5OjpJbnQ4QXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlz
SW50MTZBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBl
KEFycmF5OjpJbnQxNkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUo
QXJyYXk6OkludDE2QXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzSW50MzJBcnJheVNw
ZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpJbnQz
MkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6OkludDMy
QXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWludDhBcnJheVNwZWN1bGF0aW9uKGJh
c2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50OEFycmF5KTsKKyAg
ICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6OlVpbnQ4QXJyYXkpOwogICAg
ICAgICAKICAgICAgICAgaWYgKGlzVWludDhDbGFtcGVkQXJyYXlTcGVjdWxhdGlvbihiYXNlKSkK
LSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6VWludDhDbGFtcGVkQXJyYXkpOwor
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6VWludDhDbGFtcGVkQXJy
YXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWludDE2QXJyYXlTcGVjdWxhdGlvbihiYXNl
KSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6VWludDE2QXJyYXkpOworICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6VWludDE2QXJyYXkpOwogICAg
ICAgICAKICAgICAgICAgaWYgKGlzVWludDMyQXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAg
ICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6VWludDMyQXJyYXkpOworICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6VWludDMyQXJyYXkpOwogICAgICAgICAKICAg
ICAgICAgaWYgKGlzRmxvYXQzMkFycmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICBy
ZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkZsb2F0MzJBcnJheSk7CisgICAgICAgICAgICByZXR1cm4g
cmVzdWx0LndpdGhUeXBlKEFycmF5OjpGbG9hdDMyQXJyYXkpOwogICAgICAgICAKICAgICAgICAg
aWYgKGlzRmxvYXQ2NEFycmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4g
d2l0aFR5cGUoQXJyYXk6OkZsb2F0NjRBcnJheSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0
LndpdGhUeXBlKEFycmF5OjpGbG9hdDY0QXJyYXkpOwogCiAgICAgICAgIHJldHVybiBBcnJheU1v
ZGUoQXJyYXk6OkdlbmVyaWMpOworICAgIH0KIAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVy
biAqdGhpczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1v
ZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjExLDcgKzIxMSw3IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIEFycmF5TW9kZSh0eXBlLCBhcnJheUNsYXNzKCksIHNwZWN1bGF0aW9uKCksIGNvbnZl
cnNpb24pOwogICAgIH0KICAgICAKLSAgICBBcnJheU1vZGUgcmVmaW5lKFNwZWN1bGF0ZWRUeXBl
IGJhc2UsIFNwZWN1bGF0ZWRUeXBlIGluZGV4LCBTcGVjdWxhdGVkVHlwZSB2YWx1ZSA9IFNwZWNO
b25lLCBOb2RlRmxhZ3MgPSAwKSBjb25zdDsKKyAgICBBcnJheU1vZGUgcmVmaW5lKEdyYXBoJiwg
Q29kZU9yaWdpbiwgU3BlY3VsYXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNw
ZWN1bGF0ZWRUeXBlIHZhbHVlID0gU3BlY05vbmUsIE5vZGVGbGFncyA9IDApIGNvbnN0OwogICAg
IAogICAgIGJvb2wgYWxyZWFkeUNoZWNrZWQoR3JhcGgmLCBOb2RlKiwgQWJzdHJhY3RWYWx1ZSYp
IGNvbnN0OwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0
MCw3IEBACiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByZWNpc2VKdW1wVGFy
Z2V0cy5oIgogI2luY2x1ZGUgIlB1dEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdu
bWVudC5oIgogI2luY2x1ZGUgIlN0cmluZ0NvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0Nv
bW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0xNjAsNyArMTYxLDgg
QEAgcHJpdmF0ZToKICAgICBib29sIGhhbmRsZU1pbk1heChpbnQgcmVzdWx0T3BlcmFuZCwgTm9k
ZVR5cGUgb3AsIGludCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzKTsKICAgICAKICAgICAvLyBIYW5kbGUgY2FsbHMuIFRoaXMgcmVzb2x2ZXMgaXNzdWVzIHN1
cnJvdW5kaW5nIGlubGluaW5nIGFuZCBpbnRyaW5zaWNzLgotICAgIHZvaWQgaGFuZGxlQ2FsbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBOb2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCk7CisgICAgdm9pZCBoYW5kbGVDYWxsKGludCByZXN1bHQsIE5vZGVUeXBlIG9w
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCB1bnNpZ25lZCBpbnN0cnVjdGlvblNpemUsIGludCBj
YWxsZWUsIGludCBhcmdDb3VudCwgaW50IHJlZ2lzdGVyT2Zmc2V0KTsKKyAgICB2b2lkIGhhbmRs
ZUNhbGwoSW5zdHJ1Y3Rpb24qIHBjLCBOb2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxpemF0aW9uS2lu
ZCk7CiAgICAgdm9pZCBlbWl0RnVuY3Rpb25DaGVja3MoY29uc3QgQ2FsbExpbmtTdGF0dXMmLCBO
b2RlKiBjYWxsVGFyZ2V0LCBpbnQgcmVnaXN0ZXJPZmZzZXQsIENvZGVTcGVjaWFsaXphdGlvbktp
bmQpOwogICAgIHZvaWQgZW1pdEFyZ3VtZW50UGhhbnRvbXMoaW50IHJlZ2lzdGVyT2Zmc2V0LCBp
bnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIENvZGVTcGVjaWFsaXphdGlvbktpbmQpOwog
ICAgIC8vIEhhbmRsZSBpbmxpbmluZy4gUmV0dXJuIHRydWUgaWYgaXQgc3VjY2VlZGVkLCBmYWxz
ZSBpZiB3ZSBuZWVkIHRvIHBsYW50IGEgY2FsbC4KQEAgLTc3MywyMiArNzc1LDIxIEBAIHByaXZh
dGU6CiAgICAgICAgIG1fbnVtUGFzc2VkVmFyQXJncysrOwogICAgIH0KICAgICAKLSAgICBOb2Rl
KiBhZGRDYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIE5vZGVUeXBlIG9wKQor
ICAgIE5vZGUqIGFkZENhbGwoaW50IHJlc3VsdCwgTm9kZVR5cGUgb3AsIGludCBjYWxsZWUsIGlu
dCBhcmdDb3VudCwgaW50IHJlZ2lzdGVyT2Zmc2V0KQogICAgIHsKICAgICAgICAgU3BlY3VsYXRl
ZFR5cGUgcHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb24oKTsKICAgICAgICAgCi0gICAgICAgIGFk
ZFZhckFyZ0NoaWxkKGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUu
b3BlcmFuZCkpKTsKLSAgICAgICAgaW50IGFyZ0NvdW50ID0gY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZDsKLSAgICAgICAgaWYgKEpTU3RhY2s6OlRoaXNBcmd1bWVudCArICh1bnNpZ25l
ZClhcmdDb3VudCA+IG1fcGFyYW1ldGVyU2xvdHMpCi0gICAgICAgICAgICBtX3BhcmFtZXRlclNs
b3RzID0gSlNTdGFjazo6VGhpc0FyZ3VtZW50ICsgYXJnQ291bnQ7CisgICAgICAgIGFkZFZhckFy
Z0NoaWxkKGdldChWaXJ0dWFsUmVnaXN0ZXIoY2FsbGVlKSkpOworICAgICAgICBzaXplX3QgcGFy
YW1ldGVyU2xvdHMgPSBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gSlNTdGFjazo6Q2Fs
bGVyRnJhbWVBbmRQQ1NpemUgKyBhcmdDb3VudDsKKyAgICAgICAgaWYgKHBhcmFtZXRlclNsb3Rz
ID4gbV9wYXJhbWV0ZXJTbG90cykKKyAgICAgICAgICAgIG1fcGFyYW1ldGVyU2xvdHMgPSBwYXJh
bWV0ZXJTbG90czsKIAotICAgICAgICBpbnQgcmVnaXN0ZXJPZmZzZXQgPSAtY3VycmVudEluc3Ry
dWN0aW9uWzRdLnUub3BlcmFuZDsKICAgICAgICAgaW50IGR1bW15VGhpc0FyZ3VtZW50ID0gb3Ag
PT0gQ2FsbCA/IDAgOiAxOwogICAgICAgICBmb3IgKGludCBpID0gMCArIGR1bW15VGhpc0FyZ3Vt
ZW50OyBpIDwgYXJnQ291bnQ7ICsraSkKICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKGdldCh2
aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChpLCByZWdpc3Rlck9mZnNldCkpKTsKIAogICAgICAg
ICBOb2RlKiBjYWxsID0gYWRkVG9HcmFwaChOb2RlOjpWYXJBcmcsIG9wLCBPcEluZm8oMCksIE9w
SW5mbyhwcmVkaWN0aW9uKSk7Ci0gICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGNhbGwpOworICAgICAgICBzZXQoVmlydHVhbFJlZ2lz
dGVyKHJlc3VsdCksIGNhbGwpOwogICAgICAgICByZXR1cm4gY2FsbDsKICAgICB9CiAgICAgCkBA
IC05OTMsOSArOTk0LDEwIEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIG51bWJlciBvZiBsb2NhbHMg
KHZhcnMgKyB0ZW1wb3JhcmllcykgdXNlZCBpbiB0aGUgZnVuY3Rpb24uCiAgICAgdW5zaWduZWQg
bV9udW1Mb2NhbHM7CiAgICAgLy8gVGhlIG51bWJlciBvZiBzbG90cyAoaW4gdW5pdHMgb2Ygc2l6
ZW9mKFJlZ2lzdGVyKSkgdGhhdCB3ZSBuZWVkIHRvCi0gICAgLy8gcHJlYWxsb2NhdGUgZm9yIGNh
bGxzIGVtYW5hdGluZyBmcm9tIHRoaXMgZnJhbWUuIFRoaXMgaW5jbHVkZXMgdGhlCi0gICAgLy8g
c2l6ZSBvZiB0aGUgQ2FsbEZyYW1lLCBvbmx5IGlmIHRoaXMgaXMgbm90IGEgbGVhZiBmdW5jdGlv
bi4gIChJLmUuCi0gICAgLy8gdGhpcyBpcyAwIGlmIGFuZCBvbmx5IGlmIHRoaXMgZnVuY3Rpb24g
aXMgYSBsZWFmLikKKyAgICAvLyBwcmVhbGxvY2F0ZSBmb3IgYXJndW1lbnRzIHRvIG91dGdvaW5n
IGNhbGxzIGZyb20gdGhpcyBmcmFtZS4gVGhpcworICAgIC8vIG51bWJlciBpbmNsdWRlcyB0aGUg
Q2FsbEZyYW1lIHNsb3RzIHRoYXQgd2UgaW5pdGlhbGl6ZSBmb3IgdGhlIGNhbGxlZQorICAgIC8v
IChidXQgbm90IHRoZSBjYWxsZWUtaW5pdGlhbGl6ZWQgQ2FsbGVyRnJhbWUgYW5kIFJldHVyblBD
IHNsb3RzKS4KKyAgICAvLyBUaGlzIG51bWJlciBpcyAwIGlmIGFuZCBvbmx5IGlmIHRoaXMgZnVu
Y3Rpb24gaXMgYSBsZWFmLgogICAgIHVuc2lnbmVkIG1fcGFyYW1ldGVyU2xvdHM7CiAgICAgLy8g
VGhlIG51bWJlciBvZiB2YXIgYXJncyBwYXNzZWQgdG8gdGhlIG5leHQgdmFyIGFyZyBub2RlLgog
ICAgIHVuc2lnbmVkIG1fbnVtUGFzc2VkVmFyQXJnczsKQEAgLTExMzQsNiArMTEzNiwxMCBAQCBw
cml2YXRlOgogICAgIC8vIHdvcmstYXJvdW5kIGZvciB0aGUgZmFjdCB0aGF0IEpTVmFsdWVNYXAg
Y2FuJ3QgaGFuZGxlICJlbXB0eSIgdmFsdWVzLgogICAgIHVuc2lnbmVkIG1fZW1wdHlKU1ZhbHVl
SW5kZXg7CiAgICAgCisgICAgQ29kZUJsb2NrKiBtX2RmZ0NvZGVCbG9jazsKKyAgICBDYWxsTGlu
a1N0YXR1czo6Q29udGV4dE1hcCBtX2NhbGxDb250ZXh0TWFwOworICAgIFN0dWJJbmZvTWFwIG1f
ZGZnU3R1YkluZm9zOworICAgIAogICAgIEluc3RydWN0aW9uKiBtX2N1cnJlbnRJbnN0cnVjdGlv
bjsKIH07CiAKQEAgLTExNDUsNDMgKzExNTEsNDUgQEAgcHJpdmF0ZToKICAgICBtX2N1cnJlbnRJ
bmRleCArPSBPUENPREVfTEVOR1RIKG5hbWUpOyBcCiAgICAgcmV0dXJuIHNob3VsZENvbnRpbnVl
UGFyc2luZwogCi0KLXZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNhbGwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbiwgTm9kZVR5cGUgb3AsIENvZGVTcGVjaWFsaXphdGlvbktpbmQg
a2luZCkKK3ZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNhbGwoSW5zdHJ1Y3Rpb24qIHBjLCBO
b2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQogewogICAgIEFTU0VSVChP
UENPREVfTEVOR1RIKG9wX2NhbGwpID09IE9QQ09ERV9MRU5HVEgob3BfY29uc3RydWN0KSk7Cisg
ICAgaGFuZGxlQ2FsbCgKKyAgICAgICAgcGNbMV0udS5vcGVyYW5kLCBvcCwga2luZCwgT1BDT0RF
X0xFTkdUSChvcF9jYWxsKSwKKyAgICAgICAgcGNbMl0udS5vcGVyYW5kLCBwY1szXS51Lm9wZXJh
bmQsIC1wY1s0XS51Lm9wZXJhbmQpOworfQorCit2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVD
YWxsKAorICAgIGludCByZXN1bHQsIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQsIHVuc2lnbmVkIGluc3RydWN0aW9uU2l6ZSwKKyAgICBpbnQgY2FsbGVlLCBpbnQgYXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIGludCByZWdpc3Rlck9mZnNldCkKK3sKKyAgICBBU1NF
UlQocmVnaXN0ZXJPZmZzZXQgPD0gMCk7CiAgICAgCi0gICAgTm9kZSogY2FsbFRhcmdldCA9IGdl
dChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOworICAg
IE5vZGUqIGNhbGxUYXJnZXQgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGNhbGxlZSkpOwogICAgIAog
ICAgIENhbGxMaW5rU3RhdHVzIGNhbGxMaW5rU3RhdHVzOwogCi0gICAgaWYgKG1fZ3JhcGguaXND
b25zdGFudChjYWxsVGFyZ2V0KSkKLSAgICAgICAgY2FsbExpbmtTdGF0dXMgPSBDYWxsTGlua1N0
YXR1cyhtX2dyYXBoLnZhbHVlT2ZKU0NvbnN0YW50KGNhbGxUYXJnZXQpKS5zZXRJc1Byb3ZlZCh0
cnVlKTsKLSAgICBlbHNlIHsKLSAgICAgICAgY2FsbExpbmtTdGF0dXMgPSBDYWxsTGlua1N0YXR1
czo6Y29tcHV0ZUZvcihtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIG1fY3VycmVu
dEluZGV4KTsKLSAgICAgICAgY2FsbExpbmtTdGF0dXMuc2V0SGFzQmFkRnVuY3Rpb25FeGl0U2l0
ZShtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudElu
ZGV4LCBCYWRGdW5jdGlvbikpOwotICAgICAgICBjYWxsTGlua1N0YXR1cy5zZXRIYXNCYWRDYWNo
ZUV4aXRTaXRlKAotICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5o
YXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUpCi0gICAgICAgICAgICB8fCBtX2lu
bGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBC
YWRDYWNoZVdhdGNocG9pbnQpKTsKLSAgICAgICAgY2FsbExpbmtTdGF0dXMuc2V0SGFzQmFkRXhl
Y3V0YWJsZUV4aXRTaXRlKG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNp
dGUobV9jdXJyZW50SW5kZXgsIEJhZEV4ZWN1dGFibGUpKTsKKyAgICBpZiAobV9ncmFwaC5pc0Nv
bnN0YW50KGNhbGxUYXJnZXQpKSB7CisgICAgICAgIGNhbGxMaW5rU3RhdHVzID0gQ2FsbExpbmtT
dGF0dXMoCisgICAgICAgICAgICBtX2dyYXBoLnZhbHVlT2ZKU0NvbnN0YW50KGNhbGxUYXJnZXQp
KS5zZXRJc1Byb3ZlZCh0cnVlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBjYWxsTGlua1N0YXR1
cyA9IENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKAorICAgICAgICAgICAgbV9pbmxpbmVTdGFj
a1RvcC0+bV9wcm9maWxlZEJsb2NrLCBjdXJyZW50Q29kZU9yaWdpbigpLCBtX2NhbGxDb250ZXh0
TWFwKTsKICAgICB9CiAgICAgCiAgICAgaWYgKCFjYWxsTGlua1N0YXR1cy5jYW5PcHRpbWl6ZSgp
KSB7CiAgICAgICAgIC8vIE9kZGx5LCB0aGlzIGNvbmZsYXRlcyBjYWxscyB0aGF0IGhhdmVuJ3Qg
ZXhlY3V0ZWQgd2l0aCBjYWxscyB0aGF0IGJlaGF2ZWQgc3VmZmljaWVudGx5IHBvbHltb3JwaGlj
YWxseQogICAgICAgICAvLyB0aGF0IHdlIGNhbm5vdCBvcHRpbWl6ZSB0aGVtLgogICAgICAgICAK
LSAgICAgICAgYWRkQ2FsbChjdXJyZW50SW5zdHJ1Y3Rpb24sIG9wKTsKKyAgICAgICAgYWRkQ2Fs
bChyZXN1bHQsIG9wLCBjYWxsZWUsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCByZWdpc3Rl
ck9mZnNldCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgaW50IGFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAg
ICBpbnQgcmVnaXN0ZXJPZmZzZXQgPSAtY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsK
LQotICAgIGludCByZXN1bHRPcGVyYW5kID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKLSAgICB1bnNpZ25lZCBuZXh0T2Zmc2V0ID0gbV9jdXJyZW50SW5kZXggKyBPUENPREVfTEVO
R1RIKG9wX2NhbGwpOworICAgIHVuc2lnbmVkIG5leHRPZmZzZXQgPSBtX2N1cnJlbnRJbmRleCAr
IGluc3RydWN0aW9uU2l6ZTsKICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJl
ZGljdGlvbigpOwogCiAgICAgaWYgKEludGVybmFsRnVuY3Rpb24qIGZ1bmN0aW9uID0gY2FsbExp
bmtTdGF0dXMuaW50ZXJuYWxGdW5jdGlvbigpKSB7Ci0gICAgICAgIGlmIChoYW5kbGVDb25zdGFu
dEludGVybmFsRnVuY3Rpb24ocmVzdWx0T3BlcmFuZCwgZnVuY3Rpb24sIHJlZ2lzdGVyT2Zmc2V0
LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcHJlZGljdGlvbiwga2luZCkpIHsKKyAgICAg
ICAgaWYgKGhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbihyZXN1bHQsIGZ1bmN0aW9uLCBy
ZWdpc3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHByZWRpY3Rpb24sIGtp
bmQpKSB7CiAgICAgICAgICAgICAvLyBUaGlzIHBoYW50b21pbmcgaGFzIHRvIGJlICphZnRlciog
dGhlIGNvZGUgZm9yIHRoZSBpbnRyaW5zaWMsIHRvIHNpZ25pZnkgdGhhdAogICAgICAgICAgICAg
Ly8gdGhlIGlucHV0cyBtdXN0IGJlIGtlcHQgYWxpdmUgd2hhdGV2ZXIgZXhpdHMgdGhlIGludHJp
bnNpYyBtYXkgZG8uCiAgICAgICAgICAgICBhZGRUb0dyYXBoKFBoYW50b20sIGNhbGxUYXJnZXQp
OwpAQCAtMTE5MCw3ICsxMTk4LDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJ
bnN0cnVjdAogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBDYW4gb25seSBoYW5kbGUg
dGhpcyB1c2luZyB0aGUgZ2VuZXJpYyBjYWxsIGhhbmRsZXIuCi0gICAgICAgIGFkZENhbGwoY3Vy
cmVudEluc3RydWN0aW9uLCBvcCk7CisgICAgICAgIGFkZENhbGwocmVzdWx0LCBvcCwgY2FsbGVl
LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcmVnaXN0ZXJPZmZzZXQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgICAgICAKQEAgLTExOTgsNyArMTIwNiw3IEBAIHZvaWQgQnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZUNhbGwoSW5zdHJ1Y3QKICAgICBpZiAoaW50cmluc2ljICE9IE5vSW50
cmluc2ljKSB7CiAgICAgICAgIGVtaXRGdW5jdGlvbkNoZWNrcyhjYWxsTGlua1N0YXR1cywgY2Fs
bFRhcmdldCwgcmVnaXN0ZXJPZmZzZXQsIGtpbmQpOwogICAgICAgICAgICAgCi0gICAgICAgIGlm
IChoYW5kbGVJbnRyaW5zaWMocmVzdWx0T3BlcmFuZCwgaW50cmluc2ljLCByZWdpc3Rlck9mZnNl
dCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHByZWRpY3Rpb24pKSB7CisgICAgICAgIGlm
IChoYW5kbGVJbnRyaW5zaWMocmVzdWx0LCBpbnRyaW5zaWMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcywgcHJlZGljdGlvbikpIHsKICAgICAgICAgICAgIC8vIFRo
aXMgcGhhbnRvbWluZyBoYXMgdG8gYmUgKmFmdGVyKiB0aGUgY29kZSBmb3IgdGhlIGludHJpbnNp
YywgdG8gc2lnbmlmeSB0aGF0CiAgICAgICAgICAgICAvLyB0aGUgaW5wdXRzIG11c3QgYmUga2Vw
dCBhbGl2ZSB3aGF0ZXZlciBleGl0cyB0aGUgaW50cmluc2ljIG1heSBkby4KICAgICAgICAgICAg
IGFkZFRvR3JhcGgoUGhhbnRvbSwgY2FsbFRhcmdldCk7CkBAIC0xMjA3LDEzICsxMjE1LDEzIEBA
IHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNhbGwoSW5zdHJ1Y3QKICAgICAgICAgICAgICAg
ICBtX2dyYXBoLmNvbXBpbGF0aW9uKCktPm5vdGljZUlubGluZWRDYWxsKCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGhhbmRsZUlubGluaW5nKGNhbGxU
YXJnZXQsIHJlc3VsdE9wZXJhbmQsIGNhbGxMaW5rU3RhdHVzLCByZWdpc3Rlck9mZnNldCwgYXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIG5leHRPZmZzZXQsIGtpbmQpKSB7CisgICAgfSBlbHNl
IGlmIChoYW5kbGVJbmxpbmluZyhjYWxsVGFyZ2V0LCByZXN1bHQsIGNhbGxMaW5rU3RhdHVzLCBy
ZWdpc3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIG5leHRPZmZzZXQsIGtp
bmQpKSB7CiAgICAgICAgIGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpCiAgICAgICAgICAgICBt
X2dyYXBoLmNvbXBpbGF0aW9uKCktPm5vdGljZUlubGluZWRDYWxsKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgCi0gICAgYWRkQ2FsbChjdXJyZW50SW5zdHJ1Y3Rpb24sIG9wKTsKKyAg
ICBhZGRDYWxsKHJlc3VsdCwgb3AsIGNhbGxlZSwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMs
IHJlZ2lzdGVyT2Zmc2V0KTsKIH0KIAogdm9pZCBCeXRlQ29kZVBhcnNlcjo6ZW1pdEZ1bmN0aW9u
Q2hlY2tzKGNvbnN0IENhbGxMaW5rU3RhdHVzJiBjYWxsTGlua1N0YXR1cywgTm9kZSogY2FsbFRh
cmdldCwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCkBA
IC0xMjUwLDMwICsxMjU4LDMyIEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmVtaXRBcmd1bWVudFBo
YW50b20KIAogYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW5saW5pbmcoTm9kZSogY2FsbFRh
cmdldE5vZGUsIGludCByZXN1bHRPcGVyYW5kLCBjb25zdCBDYWxsTGlua1N0YXR1cyYgY2FsbExp
bmtTdGF0dXMsIGludCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzLCB1bnNpZ25lZCBuZXh0T2Zmc2V0LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7
CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIGlmICh2
ZXJib3NlKQorICAgICAgICBkYXRhTG9nKCJDb25zaWRlcmluZyBpbmxpbmluZyAiLCBjYWxsTGlu
a1N0YXR1cywgIiBpbnRvICIsIGN1cnJlbnRDb2RlT3JpZ2luKCksICJcbiIpOworICAgIAogICAg
IC8vIEZpcnN0LCB0aGUgcmVhbGx5IHNpbXBsZSBjaGVja3M6IGRvIHdlIGhhdmUgYW4gYWN0dWFs
IEpTIGZ1bmN0aW9uPwotICAgIGlmICghY2FsbExpbmtTdGF0dXMuZXhlY3V0YWJsZSgpKQorICAg
IGlmICghY2FsbExpbmtTdGF0dXMuZXhlY3V0YWJsZSgpKSB7CisgICAgICAgIGlmICh2ZXJib3Nl
KQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSB0aGVyZSBpcyBubyBl
eGVjdXRhYmxlLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoY2FsbExpbmtT
dGF0dXMuZXhlY3V0YWJsZSgpLT5pc0hvc3RGdW5jdGlvbigpKQorICAgIH0KKyAgICBpZiAoY2Fs
bExpbmtTdGF0dXMuZXhlY3V0YWJsZSgpLT5pc0hvc3RGdW5jdGlvbigpKSB7CisgICAgICAgIGlm
ICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSBpdCdz
IGEgaG9zdCBmdW5jdGlvbi5cbiIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAg
IAogICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGpzQ2FzdDxGdW5jdGlvbkV4
ZWN1dGFibGUqPihjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCkpOwogICAgIAogICAgIC8vIERv
ZXMgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgd2UncmUgcGFzc2luZyBtYXRjaCB0aGUgYXJpdHkg
b2YgdGhlIHRhcmdldD8gV2UgY3VycmVudGx5CiAgICAgLy8gaW5saW5lIG9ubHkgaWYgdGhlIG51
bWJlciBvZiBhcmd1bWVudHMgcGFzc2VkIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUg
bnVtYmVyCiAgICAgLy8gYXJndW1lbnRzIGV4cGVjdGVkLgotICAgIGlmIChzdGF0aWNfY2FzdDxp
bnQ+KGV4ZWN1dGFibGUtPnBhcmFtZXRlckNvdW50KCkpICsgMSA+IGFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzKQorICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+KGV4ZWN1dGFibGUtPnBhcmFtZXRl
ckNvdW50KCkpICsgMSA+IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSB7CisgICAgICAgIGlm
ICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSBvZiBh
cml0eSBtaXNtYXRjaC5cbiIpOwogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgLy8g
SGF2ZSB3ZSBleGNlZWRlZCBpbmxpbmUgc3RhY2sgZGVwdGgsIG9yIGFyZSB3ZSB0cnlpbmcgdG8g
aW5saW5lIGEgcmVjdXJzaXZlIGNhbGw/Ci0gICAgLy8gSWYgZWl0aGVyIG9mIHRoZXNlIGFyZSBk
ZXRlY3RlZCwgdGhlbiBkb24ndCBpbmxpbmUuCi0gICAgdW5zaWduZWQgZGVwdGggPSAwOwotICAg
IGZvciAoSW5saW5lU3RhY2tFbnRyeSogZW50cnkgPSBtX2lubGluZVN0YWNrVG9wOyBlbnRyeTsg
ZW50cnkgPSBlbnRyeS0+bV9jYWxsZXIpIHsKLSAgICAgICAgKytkZXB0aDsKLSAgICAgICAgaWYg
KGRlcHRoID49IE9wdGlvbnM6Om1heGltdW1JbmxpbmluZ0RlcHRoKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7IC8vIERlcHRoIGV4Y2VlZGVkLgotICAgICAgICAKLSAgICAgICAgaWYgKGVu
dHJ5LT5leGVjdXRhYmxlKCkgPT0gZXhlY3V0YWJsZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsgLy8gUmVjdXJzaW9uIGRldGVjdGVkLgogICAgIH0KICAgICAKICAgICAvLyBEbyB3ZSBoYXZl
IGEgY29kZSBibG9jaywgYW5kIGRvZXMgdGhlIGNvZGUgYmxvY2sncyBzaXplIG1hdGNoIHRoZSBo
ZXVyaXN0aWNzL3JlcXVpcmVtZW50cyBmb3IKQEAgLTEyODMsMTAgKzEyOTMsNTAgQEAgYm9vbCBC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlSW5saW5pbmcoTm9kZQogICAgIC8vIGdsb2JhbCBmdW5jdGlv
biwgd2hlcmUgd2F0Y2hwb2ludGluZyBnaXZlcyB1cyBzdGF0aWMgaW5mb3JtYXRpb24uIE92ZXJh
bGwsIGl0J3MgYSByYXJlIGNhc2UKICAgICAvLyBiZWNhdXNlIHdlIGV4cGVjdCB0aGF0IGFueSBo
b3QgY2FsbGVlcyB3b3VsZCBoYXZlIGFscmVhZHkgYmVlbiBjb21waWxlZC4KICAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jayA9IGV4ZWN1dGFibGUtPmJhc2VsaW5lQ29kZUJsb2NrRm9yKGtpbmQpOwot
ICAgIGlmICghY29kZUJsb2NrKQorICAgIGlmICghY29kZUJsb2NrKSB7CisgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSBubyBjb2Rl
IGJsb2NrIGF2YWlsYWJsZS5cbiIpOwogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFj
YW5JbmxpbmVGdW5jdGlvbkZvcihjb2RlQmxvY2ssIGtpbmQsIGNhbGxMaW5rU3RhdHVzLmlzQ2xv
c3VyZUNhbGwoKSkpCisgICAgfQorICAgIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwg
PSBpbmxpbmVGdW5jdGlvbkZvckNhcGFiaWxpdHlMZXZlbCgKKyAgICAgICAgY29kZUJsb2NrLCBr
aW5kLCBjYWxsTGlua1N0YXR1cy5pc0Nsb3N1cmVDYWxsKCkpOworICAgIGlmICghY2FuSW5saW5l
KGNhcGFiaWxpdHlMZXZlbCkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBk
YXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIHRoZSBmdW5jdGlvbiBpcyBub3QgaW5saW5lYWJs
ZS5cbiIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8vIEZJWE1F
OiB0aGlzIHNob3VsZCBiZSBiZXR0ZXIgYXQgcHJlZGljdGluZyBob3cgbXVjaCBibG9hdCB3ZSB3
aWxsIGludHJvZHVjZSBieSBpbmxpbmluZworICAgIC8vIHRoaXMgZnVuY3Rpb24uCisgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyNworICAgIAorICAg
IC8vIEhhdmUgd2UgZXhjZWVkZWQgaW5saW5lIHN0YWNrIGRlcHRoLCBvciBhcmUgd2UgdHJ5aW5n
IHRvIGlubGluZSBhIHJlY3Vyc2l2ZSBjYWxsIHRvCisgICAgLy8gdG9vIG1hbnkgbGV2ZWxzPyBJ
ZiBlaXRoZXIgb2YgdGhlc2UgYXJlIGRldGVjdGVkLCB0aGVuIGRvbid0IGlubGluZS4gV2UgYWRq
dXN0IG91cgorICAgIC8vIGhldXJpc3RpY3MgaWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0
aW9uIHRoYXQgY2Fubm90IG90aGVyd2lzZSBiZSBjb21waWxlZC4KKyAgICAKKyAgICB1bnNpZ25l
ZCBkZXB0aCA9IDA7CisgICAgdW5zaWduZWQgcmVjdXJzaW9uID0gMDsKKyAgICAKKyAgICBmb3Ig
KElubGluZVN0YWNrRW50cnkqIGVudHJ5ID0gbV9pbmxpbmVTdGFja1RvcDsgZW50cnk7IGVudHJ5
ID0gZW50cnktPm1fY2FsbGVyKSB7CisgICAgICAgICsrZGVwdGg7CisgICAgICAgIGlmIChkZXB0
aCA+PSBPcHRpb25zOjptYXhpbXVtSW5saW5pbmdEZXB0aCgpKSB7CisgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIGRl
cHRoIGV4Y2VlZGVkLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIGlmIChlbnRyeS0+ZXhlY3V0YWJsZSgpID09IGV4ZWN1dGFibGUp
IHsKKyAgICAgICAgICAgICsrcmVjdXJzaW9uOworICAgICAgICAgICAgaWYgKHJlY3Vyc2lvbiA+
PSBPcHRpb25zOjptYXhpbXVtSW5saW5pbmdSZWN1cnNpb24oKSkgeworICAgICAgICAgICAgICAg
IGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBi
ZWNhdXNlIHJlY3Vyc2lvbiBkZXRlY3RlZC5cbiIpOworICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgZGF0YUxvZygiICAgIENvbW1pdHRpbmcgdG8gaW5saW5pbmcuXG4iKTsK
ICAgICAKICAgICAvLyBOb3cgd2Uga25vdyB3aXRob3V0IGEgZG91YnQgdGhhdCB3ZSBhcmUgY29t
bWl0dGVkIHRvIGlubGluaW5nLiBTbyBiZWdpbiB0aGUgcHJvY2VzcwogICAgIC8vIGJ5IGNoZWNr
aW5nIHRoZSBjYWxsZWUgKGlmIG5lY2Vzc2FyeSkgYW5kIG1ha2luZyBzdXJlIHRoYXQgYXJndW1l
bnRzIGFuZCB0aGUgY2FsbGVlCkBAIC0xNzczLDExICsxODIzLDcgQEAgdm9pZCBCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlR2V0QnlJZCgKICAgICBpbnQgZGVzdGluYXRpb25PcGVyYW5kLCBTcGVjdWxh
dGVkVHlwZSBwcmVkaWN0aW9uLCBOb2RlKiBiYXNlLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVy
LAogICAgIGNvbnN0IEdldEJ5SWRTdGF0dXMmIGdldEJ5SWRTdGF0dXMpCiB7Ci0gICAgaWYgKCFn
ZXRCeUlkU3RhdHVzLmlzU2ltcGxlKCkKLSAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9l
eGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUpCi0gICAgICAg
IHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50
SW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCkKLSAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+
bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkV2Vha0NvbnN0YW50
Q2FjaGUpCi0gICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhp
dFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2ludCkpIHsK
KyAgICBpZiAoIWdldEJ5SWRTdGF0dXMuaXNTaW1wbGUoKSkgewogICAgICAgICBzZXQoVmlydHVh
bFJlZ2lzdGVyKGRlc3RpbmF0aW9uT3BlcmFuZCksCiAgICAgICAgICAgICBhZGRUb0dyYXBoKAog
ICAgICAgICAgICAgICAgIGdldEJ5SWRTdGF0dXMubWFrZXNDYWxscygpID8gR2V0QnlJZEZsdXNo
IDogR2V0QnlJZCwKQEAgLTI0NDQsNiArMjQ5MCw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBh
cnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKHByb3BlcnR5KTsK
ICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKHZhbHVlKTsKICAgICAgICAgICAgIGFkZFZhckFy
Z0NoaWxkKDApOyAvLyBMZWF2ZSByb29tIGZvciBwcm9wZXJ0eSBzdG9yYWdlLgorICAgICAgICAg
ICAgYWRkVmFyQXJnQ2hpbGQoMCk7IC8vIExlYXZlIHJvb20gZm9yIGxlbmd0aC4KICAgICAgICAg
ICAgIGFkZFRvR3JhcGgoTm9kZTo6VmFyQXJnLCBvcGNvZGVJRCA9PSBvcF9wdXRfYnlfdmFsX2Rp
cmVjdCA/IFB1dEJ5VmFsRGlyZWN0IDogUHV0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUuYXNXb3Jk
KCkpLCBPcEluZm8oMCkpOwogCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9wdXRfYnlfdmFs
KTsKQEAgLTI0NTksOCArMjUwNiw5IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2so
dW5zaWduZWQKICAgICAgICAgICAgIAogICAgICAgICAgICAgU3RyaW5nSW1wbCogdWlkID0gbV9n
cmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOwogICAgICAgICAgICAgR2V0QnlJ
ZFN0YXR1cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKLSAgICAg
ICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIG1faW5saW5lU3Rh
Y2tUb3AtPm1fc3R1YkluZm9zLAotICAgICAgICAgICAgICAgIG1fY3VycmVudEluZGV4LCB1aWQp
OworICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9k
ZmdDb2RlQmxvY2ssCisgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9zdHViSW5m
b3MsIG1fZGZnU3R1YkluZm9zLAorICAgICAgICAgICAgICAgIGN1cnJlbnRDb2RlT3JpZ2luKCks
IHVpZCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGhhbmRsZUdldEJ5SWQoCiAgICAgICAg
ICAgICAgICAgY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlvbiwgYmFz
ZSwgaWRlbnRpZmllck51bWJlciwgZ2V0QnlJZFN0YXR1cyk7CkBAIC0yNDc5LDI2ICsyNTI3LDIw
IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAg
IGJvb2wgZGlyZWN0ID0gY3VycmVudEluc3RydWN0aW9uWzhdLnUub3BlcmFuZDsKIAogICAgICAg
ICAgICAgUHV0QnlJZFN0YXR1cyBwdXRCeUlkU3RhdHVzID0gUHV0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvcigKLSAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ss
IG1faW5saW5lU3RhY2tUb3AtPm1fc3R1YkluZm9zLAotICAgICAgICAgICAgICAgIG1fY3VycmVu
dEluZGV4LCBtX2dyYXBoLmlkZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJlcl0pOworICAgICAg
ICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9kZmdDb2RlQmxv
Y2ssCisgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9zdHViSW5mb3MsIG1fZGZn
U3R1YkluZm9zLAorICAgICAgICAgICAgICAgIGN1cnJlbnRDb2RlT3JpZ2luKCksIG1fZ3JhcGgu
aWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVtYmVyXSk7CiAgICAgICAgICAgICBib29sIGNhbkNv
dW50QXNJbmxpbmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGlmICghcHV0QnlJZFN0YXR1cy5pc1Nl
dCgpKSB7CiAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChGb3JjZU9TUkV4aXQpOwogICAgICAg
ICAgICAgICAgIGNhbkNvdW50QXNJbmxpbmVkID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIGJvb2wgaGFzRXhpdFNpdGUgPQotICAgICAgICAgICAgICAg
IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5k
ZXgsIEJhZENhY2hlKQotICAgICAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhp
dFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCkK
LSAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4
aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZSkKLSAgICAgICAgICAg
ICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3Vy
cmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZVdhdGNocG9pbnQpOwotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBpZiAoIWhhc0V4aXRTaXRlICYmIHB1dEJ5SWRTdGF0dXMuaXNTaW1wbGVS
ZXBsYWNlKCkpIHsKKyAgICAgICAgICAgIGlmIChwdXRCeUlkU3RhdHVzLmlzU2ltcGxlUmVwbGFj
ZSgpKSB7CiAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja1N0cnVjdHVyZSwgT3BJbmZv
KG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KHB1dEJ5SWRTdGF0dXMub2xkU3RydWN0dXJlKCkpKSwg
YmFzZSk7CiAgICAgICAgICAgICAgICAgaGFuZGxlUHV0QnlPZmZzZXQoYmFzZSwgaWRlbnRpZmll
ck51bWJlciwgcHV0QnlJZFN0YXR1cy5vZmZzZXQoKSwgdmFsdWUpOwogICAgICAgICAgICAgfSBl
bHNlIGlmICgKLSAgICAgICAgICAgICAgICAhaGFzRXhpdFNpdGUKLSAgICAgICAgICAgICAgICAm
JiBwdXRCeUlkU3RhdHVzLmlzU2ltcGxlVHJhbnNpdGlvbigpCisgICAgICAgICAgICAgICAgcHV0
QnlJZFN0YXR1cy5pc1NpbXBsZVRyYW5zaXRpb24oKQogICAgICAgICAgICAgICAgICYmICghcHV0
QnlJZFN0YXR1cy5zdHJ1Y3R1cmVDaGFpbigpCiAgICAgICAgICAgICAgICAgICAgIHx8IHB1dEJ5
SWRTdGF0dXMuc3RydWN0dXJlQ2hhaW4oKS0+aXNTdGlsbFZhbGlkKCkpKSB7CiAgICAgICAgICAg
ICAgICAgCkBAIC0yOTczLDMwICszMDE1LDQxIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNl
QmxvY2sodW5zaWduZWQKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2NvbnN0cnVjdCk7CiAg
ICAgICAgICAgICAKICAgICAgICAgY2FzZSBvcF9jYWxsX3ZhcmFyZ3M6IHsKKyAgICAgICAgICAg
IGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgICAgICAg
ICAgaW50IGNhbGxlZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CisgICAgICAg
ICAgICBpbnQgdGhpc1JlZyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAg
ICAgICAgICBpbnQgYXJndW1lbnRzID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsK
KyAgICAgICAgICAgIGludCBmaXJzdEZyZWVSZWcgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5v
cGVyYW5kOworICAgICAgICAgICAgCiAgICAgICAgICAgICBBU1NFUlQoaW5saW5lQ2FsbEZyYW1l
KCkpOwotICAgICAgICAgICAgQVNTRVJUKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQg
PT0gbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxvY2stPmFyZ3VtZW50c1JlZ2lzdGVyKCkub2Zm
c2V0KCkpOworICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChhcmd1bWVudHMsIGFyZ3VtZW50cyA9
PSBtX2lubGluZVN0YWNrVG9wLT5tX2NvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKS5vZmZz
ZXQoKSk7CiAgICAgICAgICAgICBBU1NFUlQoIW1faW5saW5lU3RhY2tUb3AtPm1fY29kZUJsb2Nr
LT5zeW1ib2xUYWJsZSgpLT5zbG93QXJndW1lbnRzKCkpOwotICAgICAgICAgICAgLy8gSXQgd291
bGQgYmUgY29vbCB0byBmdW5uZWwgdGhpcyBpbnRvIGhhbmRsZUNhbGwoKSBzbyB0aGF0IGl0IGNh
biBoYW5kbGUKLSAgICAgICAgICAgIC8vIGlubGluaW5nLiBCdXQgY3VycmVudGx5IHRoYXQgd29u
J3QgYmUgcHJvZml0YWJsZSBhbnl3YXksIHNpbmNlIG5vbmUgb2YgdGhlCi0gICAgICAgICAgICAv
LyB1c2VzIG9mIGNhbGxfdmFyYXJncyB3aWxsIGJlIGlubGluZWFibGUuIFNvIHdlIHNldCB0aGlz
IHVwIG1hbnVhbGx5IGFuZAotICAgICAgICAgICAgLy8gd2l0aG91dCBpbmxpbmUvaW50cmluc2lj
IGRldGVjdGlvbi4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgU3BlY3VsYXRlZFR5cGUgcHJl
ZGljdGlvbiA9IGdldFByZWRpY3Rpb24oKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBh
ZGRUb0dyYXBoKENoZWNrQXJndW1lbnRzTm90Q3JlYXRlZCk7Ci0gICAgICAgICAgICAKKwogICAg
ICAgICAgICAgdW5zaWduZWQgYXJnQ291bnQgPSBpbmxpbmVDYWxsRnJhbWUoKS0+YXJndW1lbnRz
LnNpemUoKTsKLSAgICAgICAgICAgIGlmIChKU1N0YWNrOjpUaGlzQXJndW1lbnQgKyBhcmdDb3Vu
dCA+IG1fcGFyYW1ldGVyU2xvdHMpCi0gICAgICAgICAgICAgICAgbV9wYXJhbWV0ZXJTbG90cyA9
IEpTU3RhY2s6OlRoaXNBcmd1bWVudCArIGFyZ0NvdW50OwogICAgICAgICAgICAgCi0gICAgICAg
ICAgICBhZGRWYXJBcmdDaGlsZChnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQpKSk7IC8vIGNhbGxlZQotICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQo
Z2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSkpOyAv
LyB0aGlzCisgICAgICAgICAgICAvLyBMZXQncyBjb21wdXRlIHRoZSByZWdpc3RlciBvZmZzZXQu
IFdlIHN0YXJ0IHdpdGggdGhlIGxhc3QgdXNlZCByZWdpc3RlciwgYW5kCisgICAgICAgICAgICAv
LyB0aGVuIGFkanVzdCBmb3IgdGhlIHRoaW5ncyB3ZSB3YW50IGluIHRoZSBjYWxsIGZyYW1lLgor
ICAgICAgICAgICAgaW50IHJlZ2lzdGVyT2Zmc2V0ID0gZmlyc3RGcmVlUmVnICsgMTsKKyAgICAg
ICAgICAgIHJlZ2lzdGVyT2Zmc2V0IC09IGFyZ0NvdW50OyAvLyBXZSB3aWxsIGJlIHBhc3Npbmcg
c29tZSBhcmd1bWVudHMuCisgICAgICAgICAgICByZWdpc3Rlck9mZnNldCAtPSBKU1N0YWNrOjpD
YWxsRnJhbWVIZWFkZXJTaXplOyAvLyBXZSB3aWxsIHByZXRlbmQgdG8gaGF2ZSBhIGNhbGwgZnJh
bWUgaGVhZGVyLgorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBHZXQgdGhlIGFsaWdubWVu
dCByaWdodC4KKyAgICAgICAgICAgIHJlZ2lzdGVyT2Zmc2V0ID0gLVdURjo6cm91bmRVcFRvTXVs
dGlwbGVPZigKKyAgICAgICAgICAgICAgICBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLAorICAg
ICAgICAgICAgICAgIC1yZWdpc3Rlck9mZnNldCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IC8vIFRoZSBieXRlY29kZSB3b3VsZG4ndCBoYXZlIHNldCB1cCB0aGUgYXJndW1lbnRzLiBCdXQg
d2UnbGwgZG8gaXQgYW5kIG1ha2UgaXQKKyAgICAgICAgICAgIC8vIGxvb2sgbGlrZSB0aGUgYnl0
ZWNvZGUgaGFkIGRvbmUgaXQuCisgICAgICAgICAgICBpbnQgbmV4dFJlZ2lzdGVyID0gcmVnaXN0
ZXJPZmZzZXQgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOworICAgICAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3RlcihuZXh0UmVnaXN0ZXIrKyksIGdldChWaXJ0dWFsUmVnaXN0ZXIodGhp
c1JlZykpLCBJbW1lZGlhdGVTZXQpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBhcmd1bWVu
dCA9IDE7IGFyZ3VtZW50IDwgYXJnQ291bnQ7ICsrYXJndW1lbnQpCi0gICAgICAgICAgICAgICAg
YWRkVmFyQXJnQ2hpbGQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGFyZ3VtZW50KSkp
OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLAotICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoTm9k
ZTo6VmFyQXJnLCBDYWxsLCBPcEluZm8oMCksIE9wSW5mbyhwcmVkaWN0aW9uKSkpOworICAgICAg
ICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIobmV4dFJlZ2lzdGVyKyspLCBnZXQodmlydHVh
bFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpKSwgSW1tZWRpYXRlU2V0KTsKICAgICAgICAg
ICAgIAorICAgICAgICAgICAgaGFuZGxlQ2FsbCgKKyAgICAgICAgICAgICAgICByZXN1bHQsIENh
bGwsIENvZGVGb3JDYWxsLCBPUENPREVfTEVOR1RIKG9wX2NhbGxfdmFyYXJncyksCisgICAgICAg
ICAgICAgICAgY2FsbGVlLCBhcmdDb3VudCwgcmVnaXN0ZXJPZmZzZXQpOwogICAgICAgICAgICAg
TkVYVF9PUENPREUob3BfY2FsbF92YXJhcmdzKTsKICAgICAgICAgfQogICAgICAgICAgICAgCkBA
IC0zNjU0LDYgKzM3MDcsMTYgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2UoKQogICAgIC8v
IFNldCBkdXJpbmcgY29uc3RydWN0aW9uLgogICAgIEFTU0VSVCghbV9jdXJyZW50SW5kZXgpOwog
ICAgIAorICAgIGlmIChpc0ZUTChtX2dyYXBoLm1fcGxhbi5tb2RlKSkgeworICAgICAgICBtX2Rm
Z0NvZGVCbG9jayA9IG1fZ3JhcGgubV9wbGFuLnByb2ZpbGVkREZHQ29kZUJsb2NrLmdldCgpOwor
ICAgICAgICBpZiAobV9kZmdDb2RlQmxvY2spIHsKKyAgICAgICAgICAgIGlmIChPcHRpb25zOjpl
bmFibGVQb2x5dmFyaWFudENhbGxJbmxpbmluZygpKQorICAgICAgICAgICAgICAgIENhbGxMaW5r
U3RhdHVzOjpjb21wdXRlREZHU3RhdHVzZXMobV9kZmdDb2RlQmxvY2ssIG1fY2FsbENvbnRleHRN
YXApOworICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmVuYWJsZVBvbHl2YXJpYW50QnlJZElubGlu
aW5nKCkpCisgICAgICAgICAgICAgICAgbV9kZmdDb2RlQmxvY2stPmdldFN0dWJJbmZvTWFwKG1f
ZGZnU3R1YkluZm9zKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKICAgICBpZiAobV9jb2RlQmxv
Y2stPmNhcHR1cmVDb3VudCgpKSB7CiAgICAgICAgIFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSA9
IG1fY29kZUJsb2NrLT5zeW1ib2xUYWJsZSgpOwogICAgICAgICBDb25jdXJyZW50SklUTG9ja2Vy
IGxvY2tlcihzeW1ib2xUYWJsZS0+bV9sb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDRkdTaW1wbGlmaWNh
dGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksOCBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgICAgIC8vIHN1Ym9wdGltYWwsIGJlY2F1c2UgaWYgbXkgc3VjY2Vzc29y
IGhhcyBtdWx0aXBsZSBwcmVkZWNlc3NvcnMgdGhlbiB3ZSdsbAogICAgICAgICAgICAgICAgICAg
ICAvLyBiZSBrZWVwaW5nIGFsaXZlIHRoaW5ncyBvbiBvdGhlciBwcmVkZWNlc3NvciBlZGdlcyB1
bm5lY2Vzc2FyaWx5LgogICAgICAgICAgICAgICAgICAgICAvLyBXaGF0IHdlIHJlYWxseSBuZWVk
IGlzIHRoZSBub3Rpb24gb2YgZW5kLW9mLWJsb2NrIGdob3N0aWVzIQorICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogQWxsb3cgcHV0dGluZyBwaGFudG9tcyBhZnRlciB0ZXJtaW5hbHMuCisg
ICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjY3NzgKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
U0VQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
U0VQaGFzZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ1NFUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNp
ZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkRGR0Fic3RyYWN0SGVhcC5oIgorI2luY2x1
ZGUgIkRGR0Nsb2JiZXJpemUuaCIKICNpbmNsdWRlICJERkdFZGdlVXNlc1N0cnVjdHVyZS5oIgog
I2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKQEAgLTEwMDYsNiAr
MTAwOCwxOCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAK
KyAgICBib29sIGludmFsaWRhdGlvblBvaW50RWxpbWluYXRpb24oKQorICAgIHsKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gbV9pbmRleEluQmxvY2s7IGktLTspIHsKKyAgICAgICAgICAgIE5v
ZGUqIG5vZGUgPSBtX2N1cnJlbnRCbG9jay0+YXQoaSk7CisgICAgICAgICAgICBpZiAobm9kZS0+
b3AoKSA9PSBJbnZhbGlkYXRpb25Qb2ludCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgICAgIGlmICh3cml0ZXNPdmVybGFwKG1fZ3JhcGgsIG5vZGUsIFdhdGNocG9pbnRf
ZmlyZSkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICAKICAgICB2b2lkIGVsaW1pbmF0ZUlycmVsZXZhbnRQaGFudG9t
Q2hpbGRyZW4oTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChub2RlLT5vcCgpID09
IFBoYW50b20pOwpAQCAtMTM4NSw5ICsxMzk5LDEzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBl
bGltaW5hdGUocHV0QnlPZmZzZXRTdG9yZUVsaW1pbmF0aW9uKG1fZ3JhcGgubV9zdG9yYWdlQWNj
ZXNzRGF0YVtub2RlLT5zdG9yYWdlQWNjZXNzRGF0YUluZGV4KCldLmlkZW50aWZpZXJOdW1iZXIs
IG5vZGUtPmNoaWxkMSgpLm5vZGUoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAKKyAgICAgICAgY2FzZSBJbnZhbGlkYXRpb25Qb2ludDoKKyAgICAgICAgICAgIGlmIChpbnZh
bGlkYXRpb25Qb2ludEVsaW1pbmF0aW9uKCkpCisgICAgICAgICAgICAgICAgZWxpbWluYXRlKCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAogICAgICAgICBjYXNlIFBoYW50b206
CiAgICAgICAgICAgICAvLyBGSVhNRTogd2Ugb3VnaHQgdG8gcmVtb3ZlIFBoYW50b20ncyB0aGF0
IGhhdmUgbm8gY2hpbGRyZW4uCi0gICAgICAgICAgICAKICAgICAgICAgICAgIGVsaW1pbmF0ZUly
cmVsZXZhbnRQaGFudG9tQ2hpbGRyZW4obm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgsNiArMTk4LDggQEAgQ2Fw
YWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRAogICAgIGNhc2Ugb3BfY2FsbF92
YXJhcmdzOgogICAgICAgICBpZiAoY29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkgJiYgcGNbNF0u
dS5vcGVyYW5kID09IGNvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKS5vZmZzZXQoKSkKICAg
ICAgICAgICAgIHJldHVybiBDYW5JbmxpbmU7CisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
aGFuZGxlIHRoaXMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjc2MjYKICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CiAKICAgICBjYXNl
IG9wX25ld19yZWdleHA6IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBh
YmlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nh
cGFiaWxpdGllcy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NhcGFiaWxpdGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC05NiwxOSArOTYsMjggQEAg
aW5saW5lIENhcGFiaWxpdHlMZXZlbCBmdW5jdGlvbkZvckNvbnN0cgogICAgIHJldHVybiBjYXBh
YmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAotaW5saW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rp
b25Gb3JDYWxsKENvZGVCbG9jayogY29kZUJsb2NrKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBp
bmxpbmVGdW5jdGlvbkZvckNhbGxDYXBhYmlsaXR5TGV2ZWwoQ29kZUJsb2NrKiBjb2RlQmxvY2sp
CiB7Ci0gICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDYWxsKGNvZGVCbG9jaykgJiYg
Y2FuSW5saW5lKGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spKTsKKyAgICBpZiAoIW1pZ2h0SW5s
aW5lRnVuY3Rpb25Gb3JDYWxsKGNvZGVCbG9jaykpCisgICAgICAgIHJldHVybiBDYW5ub3RDb21w
aWxlOworICAgIAorICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAot
aW5saW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChDb2RlQmxvY2sqIGNv
ZGVCbG9jaykKK2lubGluZSBDYXBhYmlsaXR5TGV2ZWwgaW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJl
Q2FsbENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKLSAgICByZXR1cm4g
bWlnaHRJbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxsKGNvZGVCbG9jaykgJiYgY2FuSW5saW5l
KGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spKTsKKyAgICBpZiAoIW1pZ2h0SW5saW5lRnVuY3Rp
b25Gb3JDbG9zdXJlQ2FsbChjb2RlQmxvY2spKQorICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGls
ZTsKKyAgICAKKyAgICByZXR1cm4gY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiB9CiAKLWlu
bGluZSBib29sIGNhbklubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KENvZGVCbG9jayogY29kZUJs
b2NrKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdENh
cGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKLSAgICByZXR1cm4gbWlnaHRJ
bmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdChjb2RlQmxvY2spICYmIGNhbklubGluZShjYXBhYmls
aXR5TGV2ZWwoY29kZUJsb2NrKSk7CisgICAgaWYgKCFtaWdodElubGluZUZ1bmN0aW9uRm9yQ29u
c3RydWN0KGNvZGVCbG9jaykpCisgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOworICAgIAor
ICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAogaW5saW5lIGJvb2wg
bWlnaHRJbmxpbmVGdW5jdGlvbkZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kKQpAQCAtMTI0LDE2ICsxMzMsMTYgQEAgaW5saW5lIGJvb2wgbWlnaHRJ
bmxpbmVGdW5jdGlvbihDb2RlQmxvYwogICAgIHJldHVybiBtaWdodElubGluZUZ1bmN0aW9uRm9y
KGNvZGVCbG9jaywgY29kZUJsb2NrLT5zcGVjaWFsaXphdGlvbktpbmQoKSk7CiB9CiAKLWlubGlu
ZSBib29sIGNhbklubGluZUZ1bmN0aW9uRm9yKENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQsIGJvb2wgaXNDbG9zdXJlQ2FsbCkKK2lubGluZSBDYXBhYmls
aXR5TGV2ZWwgaW5saW5lRnVuY3Rpb25Gb3JDYXBhYmlsaXR5TGV2ZWwoQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgYm9vbCBpc0Nsb3N1cmVDYWxsKQog
ewogICAgIGlmIChpc0Nsb3N1cmVDYWxsKSB7CiAgICAgICAgIEFTU0VSVChraW5kID09IENvZGVG
b3JDYWxsKTsKLSAgICAgICAgcmV0dXJuIGNhbklubGluZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGwo
Y29kZUJsb2NrKTsKKyAgICAgICAgcmV0dXJuIGlubGluZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGxD
YXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKICAgICB9CiAgICAgaWYgKGtpbmQgPT0gQ29kZUZv
ckNhbGwpCi0gICAgICAgIHJldHVybiBjYW5JbmxpbmVGdW5jdGlvbkZvckNhbGwoY29kZUJsb2Nr
KTsKKyAgICAgICAgcmV0dXJuIGlubGluZUZ1bmN0aW9uRm9yQ2FsbENhcGFiaWxpdHlMZXZlbChj
b2RlQmxvY2spOwogICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwotICAgIHJl
dHVybiBjYW5JbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdChjb2RlQmxvY2spOworICAgIHJldHVy
biBpbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdENhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwog
fQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDE1ICs4Nyw2IEBAIGlubGlu
ZSBib29sIHZhbGlkYXRpb25FbmFibGVkKCkKICNlbmRpZgogfQogCi1pbmxpbmUgYm9vbCBlbmFi
bGVDb25jdXJyZW50SklUKCkKLXsKLSNpZiBFTkFCTEUoQ09OQ1VSUkVOVF9KSVQpCi0gICAgcmV0
dXJuIE9wdGlvbnM6OmVuYWJsZUNvbmN1cnJlbnRKSVQoKSAmJiBPcHRpb25zOjpudW1iZXJPZkNv
bXBpbGVyVGhyZWFkcygpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQog
aW5saW5lIGJvb2wgZW5hYmxlSW50NTIoKQogewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0yMzUs
NyArMjI2LDEzIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogLy8gUHV0IHRo
aW5ncyBoZXJlIHRoYXQgbXVzdCBiZSBkZWZpbmVkIGV2ZW4gaWYgRU5BQkxFKERGR19KSVQpIGlz
IGZhbHNlLgogCi1lbnVtIENhcGFiaWxpdHlMZXZlbCB7IENhbm5vdENvbXBpbGUsIENhbklubGlu
ZSwgQ2FuQ29tcGlsZSwgQ2FuQ29tcGlsZUFuZElubGluZSwgQ2FwYWJpbGl0eUxldmVsTm90U2V0
IH07CitlbnVtIENhcGFiaWxpdHlMZXZlbCB7CisgICAgQ2Fubm90Q29tcGlsZSwKKyAgICBDYW5J
bmxpbmUsCisgICAgQ2FuQ29tcGlsZSwKKyAgICBDYW5Db21waWxlQW5kSW5saW5lLAorICAgIENh
cGFiaWxpdHlMZXZlbE5vdFNldAorfTsKIAogaW5saW5lIGJvb2wgY2FuQ29tcGlsZShDYXBhYmls
aXR5TGV2ZWwgbGV2ZWwpCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bXBpbGF0aW9uTW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29tcGlsYXRpb25Nb2RlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ29tcGlsYXRpb25Nb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYg
KzM3LDE3IEBAIGVudW0gQ29tcGlsYXRpb25Nb2RlIHsKICAgICBGVExGb3JPU1JFbnRyeU1vZGUK
IH07CiAKK2lubGluZSBib29sIGlzRlRMKENvbXBpbGF0aW9uTW9kZSBtb2RlKQoreworICAgIHN3
aXRjaCAobW9kZSkgeworICAgIGNhc2UgRlRMTW9kZToKKyAgICBjYXNlIEZUTEZvck9TUkVudHJ5
TW9kZToKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiBuYW1lc3Bh
Y2UgV1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsOSArNTUsOSBAQCB1
bnNpZ25lZCBnZXROdW1Db21waWxhdGlvbnMoKQogCiAjaWYgRU5BQkxFKERGR19KSVQpCiBzdGF0
aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCi0gICAgVk0mIHZtLCBDb2RlQmxvY2sq
IGNvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNv
ZGVJbmRleCwKLSAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcywK
LSAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY2FsbGJhY2ssIFdv
cmtsaXN0KiB3b3JrbGlzdCkKKyAgICBWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBDb2Rl
QmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9kZSwKKyAgICB1
bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBt
dXN0SGFuZGxlVmFsdWVzLAorICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrPiBjYWxsYmFjaykKIHsKICAgICBTYW1wbGluZ1JlZ2lvbiBzYW1wbGluZ1JlZ2lvbigiREZH
IENvbXBpbGF0aW9uIChEcml2ZXIpIik7CiAgICAgCkBAIC02Niw2ICs2Niw3IEBAIHN0YXRpYyBD
b21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAgICBBU1NFUlQoY29kZUJsb2NrKTsKICAg
ICBBU1NFUlQoY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpKTsKICAgICBBU1NFUlQoY29kZUJsb2Nr
LT5hbHRlcm5hdGl2ZSgpLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6QmFzZWxpbmVKSVQpOworICAg
IEFTU0VSVCghcHJvZmlsZWRERkdDb2RlQmxvY2sgfHwgcHJvZmlsZWRERkdDb2RlQmxvY2stPmpp
dFR5cGUoKSA9PSBKSVRDb2RlOjpERkdKSVQpOwogICAgIAogICAgIGlmICghT3B0aW9uczo6dXNl
REZHSklUKCkgfHwgIU1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSkKICAg
ICAgICAgcmV0dXJuIENvbXBpbGF0aW9uRmFpbGVkOwpAQCAtODAsMTYgKzgxLDMxIEBAIHN0YXRp
YyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAgICAvLyBtYWtlIHN1cmUgdGhhdCBh
bGwgSklUIGNvZGUgZ2VuZXJhdGlvbiBkb2VzIGZpbmFsaXphdGlvbiBvbiB0aGUgbWFpbiB0aHJl
YWQuCiAgICAgdm0uZ2V0Q1RJU3R1Yihvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKTsK
ICAgICB2bS5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRv
cik7Ci0gICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKTsKLSAgICB2bS5n
ZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7Ci0gICAgdm0uZ2V0Q1RJU3R1
YihsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcik7Ci0gICAgdm0uZ2V0Q1RJU3R1Yih2aXJ0
dWFsQ2FsbFRodW5rR2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHViKHZpcnR1YWxDb25zdHJ1
Y3RUaHVua0dlbmVyYXRvcik7CisgICAgaWYgKG1vZGUgPT0gREZHTW9kZSkgeworICAgICAgICB2
bS5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElT
dHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIo
bGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElTdHViKHZp
cnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElTdHViKHZpcnR1YWxD
b25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdm0uZ2V0Q1RJ
U3R1YihsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2
bS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9y
KTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVn
c1RodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRoYXRQ
cmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElTdHViKHZpcnR1
YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKTsKKyAgICB9CiAgICAg
CiAgICAgUmVmUHRyPFBsYW4+IHBsYW4gPSBhZG9wdFJlZigKLSAgICAgICAgbmV3IFBsYW4oY29k
ZUJsb2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RIYW5kbGVWYWx1ZXMpKTsK
KyAgICAgICAgbmV3IFBsYW4oY29kZUJsb2NrLCBwcm9maWxlZERGR0NvZGVCbG9jaywgbW9kZSwg
b3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFsdWVzKSk7CiAgICAgCi0gICAgaWYg
KHdvcmtsaXN0KSB7CisgICAgYm9vbCBlbmFibGVDb25jdXJyZW50SklUOworI2lmIEVOQUJMRShD
T05DVVJSRU5UX0pJVCkKKyAgICBlbmFibGVDb25jdXJyZW50SklUID0gT3B0aW9uczo6ZW5hYmxl
Q29uY3VycmVudEpJVCgpOworI2Vsc2UgLy8gRU5BQkxFKENPTkNVUlJFTlRfSklUKQorICAgIGVu
YWJsZUNvbmN1cnJlbnRKSVQgPSBmYWxzZTsKKyNlbmRpZiAvLyBFTkFCTEUoQ09OQ1VSUkVOVF9K
SVQpCisgICAgaWYgKGVuYWJsZUNvbmN1cnJlbnRKSVQpIHsKKyAgICAgICAgV29ya2xpc3QqIHdv
cmtsaXN0ID0gZW5zdXJlR2xvYmFsV29ya2xpc3RGb3IobW9kZSk7CiAgICAgICAgIHBsYW4tPmNh
bGxiYWNrID0gY2FsbGJhY2s7CiAgICAgICAgIGlmIChsb2dDb21waWxhdGlvbkNoYW5nZXMoKSkK
ICAgICAgICAgICAgIGRhdGFMb2coIkRlZmVycmluZyBERkcgY29tcGlsYXRpb24gb2YgIiwgKmNv
ZGVCbG9jaywgIiB3aXRoIHF1ZXVlIGxlbmd0aCAiLCB3b3JrbGlzdC0+cXVldWVMZW5ndGgoKSwg
Ii5cbiIpOwpAQCAtMTAyLDIxICsxMTgsMjIgQEAgc3RhdGljIENvbXBpbGF0aW9uUmVzdWx0IGNv
bXBpbGVJbXBsKAogfQogI2Vsc2UgLy8gRU5BQkxFKERGR19KSVQpCiBzdGF0aWMgQ29tcGlsYXRp
b25SZXN1bHQgY29tcGlsZUltcGwoCi0gICAgVk0mLCBDb2RlQmxvY2sqLCBDb21waWxhdGlvbk1v
ZGUsIHVuc2lnbmVkLCBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYsCi0gICAgUGFzc1JlZlB0cjxE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+LCBXb3JrbGlzdCopCisgICAgVk0mLCBDb2RlQmxv
Y2sqLCBDb2RlQmxvY2sqLCBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkLCBjb25zdCBPcGVyYW5k
czxKU1ZhbHVlPiYsCisgICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+
KQogewogICAgIHJldHVybiBDb21waWxhdGlvbkZhaWxlZDsKIH0KICNlbmRpZiAvLyBFTkFCTEUo
REZHX0pJVCkKIAogQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZSgKLSAgICBWTSYgdm0sIENvZGVC
bG9jayogY29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9kZSwgdW5zaWduZWQgb3NyRW50cnlC
eXRlY29kZUluZGV4LAotICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFs
dWVzLAotICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBwYXNzZWRD
YWxsYmFjaywgV29ya2xpc3QqIHdvcmtsaXN0KQorICAgIFZNJiB2bSwgQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0aW9uTW9kZSBt
b2RlLAorICAgIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgY29uc3QgT3BlcmFuZHM8
SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMsCisgICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2s+IHBhc3NlZENhbGxiYWNrKQogewogICAgIFJlZlB0cjxEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gcGFzc2VkQ2FsbGJhY2s7CiAgICAgQ29tcGls
YXRpb25SZXN1bHQgcmVzdWx0ID0gY29tcGlsZUltcGwoCi0gICAgICAgIHZtLCBjb2RlQmxvY2ss
IG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcywgY2FsbGJhY2ss
IHdvcmtsaXN0KTsKKyAgICAgICAgdm0sIGNvZGVCbG9jaywgcHJvZmlsZWRERkdDb2RlQmxvY2ss
IG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcywKKyAgICAgICAg
Y2FsbGJhY2spOwogICAgIGlmIChyZXN1bHQgIT0gQ29tcGlsYXRpb25EZWZlcnJlZCkKICAgICAg
ICAgY2FsbGJhY2stPmNvbXBpbGF0aW9uRGlkQ29tcGxldGUoY29kZUJsb2NrLCByZXN1bHQpOwog
ICAgIHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ry
aXZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVy
LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJp
dmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDE2ICs0MCwxNCBAQCBjbGFzcyBW
TTsKIAogbmFtZXNwYWNlIERGRyB7CiAKLWNsYXNzIFdvcmtsaXN0OwotCiBKU19FWFBPUlRfUFJJ
VkFURSB1bnNpZ25lZCBnZXROdW1Db21waWxhdGlvbnMoKTsKIAogLy8gSWYgdGhlIHdvcmtsaXN0
IGlzIG5vbi1udWxsLCB3ZSBkbyBhIGNvbmN1cnJlbnQgY29tcGlsZS4gT3RoZXJ3aXNlIHdlIGRv
IGEgc3luY2hyb25vdXMKIC8vIGNvbXBpbGUuIEV2ZW4gaWYgd2UgZG8gYSBzeW5jaHJvbm91cyBj
b21waWxlLCB3ZSBjYWxsIHRoZSBjYWxsYmFjayB3aXRoIHRoZSByZXN1bHQuCiBDb21waWxhdGlv
blJlc3VsdCBjb21waWxlKAotICAgIFZNJiwgQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25Nb2RlLCB1
bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCi0gICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1
ZT4mIG11c3RIYW5kbGVWYWx1ZXMsCi0gICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s+LCBXb3JrbGlzdCopOworICAgIFZNJiwgQ29kZUJsb2NrKiwgQ29kZUJsb2NrKiBw
cm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlLAorICAgIHVuc2lnbmVkIG9zckVu
dHJ5Qnl0ZWNvZGVJbmRleCwgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1
ZXMsCisgICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+KTsKIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZhaWxlZEZpbmFsaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDYgKzM5LDExIEBAIEZhaWxlZEZpbmFsaXplcjo6fkZhaWxlZEZpbmFsaXplcigp
CiB7CiB9CiAKK3NpemVfdCBGYWlsZWRGaW5hbGl6ZXI6OmNvZGVTaXplKCkKK3sKKyAgICByZXR1
cm4gMDsKK30KKwogYm9vbCBGYWlsZWRGaW5hbGl6ZXI6OmZpbmFsaXplKCkKIHsKICAgICByZXR1
cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFs
aXplci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVk
RmluYWxpemVyLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRmFpbGVkRmluYWxpemVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAg
cHVibGljOgogICAgIEZhaWxlZEZpbmFsaXplcihQbGFuJik7CiAgICAgdmlydHVhbCB+RmFpbGVk
RmluYWxpemVyKCk7CiAgICAgCisgICAgdmlydHVhbCBzaXplX3QgY29kZVNpemUoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOwogfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRmluYWxpemVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiAr
NDYsNyBAQCBwdWJsaWM6CiAgICAgRmluYWxpemVyKFBsYW4mKTsKICAgICB2aXJ0dWFsIH5GaW5h
bGl6ZXIoKTsKICAgICAKKyAgICB2aXJ0dWFsIHNpemVfdCBjb2RlU2l6ZSgpID0gMDsKICAgICB2
aXJ0dWFsIGJvb2wgZmluYWxpemUoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGZpbmFsaXplRnVu
Y3Rpb24oKSA9IDA7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDEyICsxMDAsMTQgQEAg
cHJpdmF0ZToKICAgICAgICAgY2FzZSBCaXRSU2hpZnQ6CiAgICAgICAgIGNhc2UgQml0TFNoaWZ0
OgogICAgICAgICBjYXNlIEJpdFVSU2hpZnQ6IHsKLSAgICAgICAgICAgIGZpeEJpbmFyeUludEVk
Z2VzKCk7CisgICAgICAgICAgICBmaXhJbnRFZGdlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
ICAgIGZpeEludEVkZ2Uobm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KIAogICAgICAgICBjYXNlIEFyaXRoSU11bDogewotICAgICAgICAgICAgZml4QmluYXJ5
SW50RWRnZXMoKTsKKyAgICAgICAgICAgIGZpeEludEVkZ2Uobm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICAgICAgZml4SW50RWRnZShub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBub2RlLT5z
ZXRPcChBcml0aE11bCk7CiAgICAgICAgICAgICBub2RlLT5zZXRBcml0aE1vZGUoQXJpdGg6OlVu
Y2hlY2tlZCk7CiAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKEludDMyVXNl
KTsKQEAgLTQ1MCw2ICs0NTIsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEdldEJ5VmFsOiB7
CiAgICAgICAgICAgICBub2RlLT5zZXRBcnJheU1vZGUoCiAgICAgICAgICAgICAgICAgbm9kZS0+
YXJyYXlNb2RlKCkucmVmaW5lKAorICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBub2RlLT5j
b2RlT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlv
bigpLAogICAgICAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDIoKS0+cHJlZGljdGlvbigpLAog
ICAgICAgICAgICAgICAgICAgICBTcGVjTm9uZSwgbm9kZS0+ZmxhZ3MoKSkpOwpAQCAtNTA3LDYg
KzUxMCw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgICAgIG5vZGUtPnNldEFycmF5TW9kZSgKICAg
ICAgICAgICAgICAgICBub2RlLT5hcnJheU1vZGUoKS5yZWZpbmUoCisgICAgICAgICAgICAgICAg
ICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGNoaWxk
MS0+cHJlZGljdGlvbigpLAogICAgICAgICAgICAgICAgICAgICBjaGlsZDItPnByZWRpY3Rpb24o
KSwKICAgICAgICAgICAgICAgICAgICAgY2hpbGQzLT5wcmVkaWN0aW9uKCkpKTsKQEAgLTU5Miw2
ICs1OTYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gdGhhdCB3b3VsZCBicmVhayB0aGlu
Z3MuCiAgICAgICAgICAgICBub2RlLT5zZXRBcnJheU1vZGUoCiAgICAgICAgICAgICAgICAgbm9k
ZS0+YXJyYXlNb2RlKCkucmVmaW5lKAorICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBub2Rl
LT5jb2RlT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS0+cHJlZGlj
dGlvbigpICYgU3BlY0NlbGwsCiAgICAgICAgICAgICAgICAgICAgIFNwZWNJbnQzMiwKICAgICAg
ICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQyKCktPnByZWRpY3Rpb24oKSkpOwpAQCAtOTQ2LDcg
Kzk1MSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgT3BJbmZvKG1fZ3JhcGguZ2xvYmFs
T2JqZWN0Rm9yKG5vZGUtPmNvZGVPcmlnaW4pKSk7CiAgICAgICAgICAgICBOb2RlKiBiYXJyaWVy
Tm9kZSA9IG1fZ3JhcGguYWRkTm9kZShTcGVjTm9uZSwgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXIs
IG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIAogICAgICAgICAgICAgICAgIEVkZ2UoZ2xvYmFs
T2JqZWN0Tm9kZSwgS25vd25DZWxsVXNlKSwgRWRnZShub2RlLT5jaGlsZDEoKS5ub2RlKCksIFVu
dHlwZWRVc2UpKTsKLSAgICAgICAgICAgIGZpeHVwTm9kZShiYXJyaWVyTm9kZSk7CiAgICAgICAg
ICAgICBtX2luc2VydGlvblNldC5pbnNlcnQobV9pbmRleEluQmxvY2ssIGJhcnJpZXJOb2RlKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC05NTQsNyArOTU4LDYgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBUZWFyT2ZmQWN0aXZhdGlvbjogewogICAgICAgICAgICAgTm9kZSog
YmFycmllck5vZGUgPSBtX2dyYXBoLmFkZE5vZGUoU3BlY05vbmUsIFN0b3JlQmFycmllcldpdGhO
dWxsQ2hlY2ssIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIAogICAgICAgICAgICAgICAgIEVk
Z2Uobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBVbnR5cGVkVXNlKSk7Ci0gICAgICAgICAgICBmaXh1
cE5vZGUoYmFycmllck5vZGUpOwogICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0KG1f
aW5kZXhJbkJsb2NrLCBiYXJyaWVyTm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQpAQCAtMTAzNCw2ICsxMDM3LDI0IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBpZiAo
IW5vZGUtPmNvbnRhaW5zTW92SGludCgpKQogICAgICAgICAgICAgREZHX05PREVfRE9fVE9fQ0hJ
TERSRU4obV9ncmFwaCwgbm9kZSwgb2JzZXJ2ZVVudHlwZWRFZGdlKTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChub2RlLT5pc1Rlcm1pbmFsKCkpIHsKKyAgICAgICAgICAgIC8vIFRlcm1pbmFsIG5v
ZGVzIGRvbid0IG5lZWQgcG9zdC1waGFudG9tcywgYW5kIGluc2VydGluZyB0aGVtIHdvdWxkIHZp
b2xhdGUKKyAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IHJlcXVpcmVtZW50IHRoYXQgYSB0ZXJt
aW5hbCBpcyB0aGUgbGFzdCB0aGluZyBpbiBhIGJsb2NrLiBXZQorICAgICAgICAgICAgLy8gc2hv
dWxkIGV2ZW50dWFsbHkgY2hhbmdlIHRoYXQgcmVxdWlyZW1lbnQgYnV0IGV2ZW4gaWYgd2UgZGlk
LCB0aGlzIHdvdWxkCisgICAgICAgICAgICAvLyBzdGlsbCBiZSBhIHZhbGlkIG9wdGltaXphdGlv
bi4gQWxsIHRlcm1pbmFscyBhY2NlcHQganVzdCBvbmUgaW5wdXQsIGFuZAorICAgICAgICAgICAg
Ly8gaWYgdGhhdCBpbnB1dCBpcyBhIGNvbnZlcnNpb24gbm9kZSB0aGVuIG5vIGZ1cnRoZXIgc3Bl
Y3VsYXRpb25zIHdpbGwgYmUKKyAgICAgICAgICAgIC8vIHBlcmZvcm1lZC4KKyAgICAgICAgICAg
IC8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgYnkgYWxsb3dpbmcgUGhhbnRvbXMgYWZ0ZXIgdGVy
bWluYWxzLgorICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNjc3OAorICAgICAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLnJlc2l6ZSgwKTsK
KyAgICAgICAgLy8gU2luY2UgU3RvcmVCYXJyaWVycyBhcmUgcmVjdXJzaXZlbHkgZml4ZWQgdXAg
c28gdGhhdCB0aGVpciBjaGlsZHJlbiBsb29rIAorICAgICAgICAvLyBpZGVudGljYWwgdG8gdGhh
dCBvZiB0aGUgbm9kZSB0aGV5J3JlIGJhcnJpZXItaW5nLCB3ZSBuZWVkIHRvIGF2b2lkIGFkZGlu
ZworICAgICAgICAvLyBhbnkgUGhhbnRvbXMgd2hlbiBwcm9jZXNzaW5nIHRoZW0gYmVjYXVzZSB0
aGlzIHdvdWxkIGludmFsaWRhdGUgdGhlIAorICAgICAgICAvLyBJbnNlcnRpb25TZXQncyBpbnZh
cmlhbnQgb2YgaW5zZXJ0aW5nIHRoaW5ncyBpbiBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZwor
ICAgICAgICAvLyBvcmRlci4gVGhpcyBzaG91bGQgYmUgb2theSBhbnl3YXlzIGJlY2F1c2UgU3Rv
cmVCYXJyaWVycyBjYW4ndCBleGl0LiAKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBhZGRQ
aGFudG9tc0lmTmVjZXNzYXJ5KCk7CiAgICAgfQogICAgIAogICAgIHZvaWQgb2JzZXJ2ZVVudHlw
ZWRFZGdlKE5vZGUqLCBFZGdlJiBlZGdlKQpAQCAtMTMxOSw2ICsxMzQwLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgYWRkUGhhbnRvbXNJZk5l
Y2Vzc2FyeSgpOwogICAgICAgICB9CiAgICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxv
Y2spOwogICAgIH0KQEAgLTEzMzQsOCArMTM1NiwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
aWYgKG5vZGUtPm9wKCkgIT0gU2V0TG9jYWwpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0g
VW50eXBlZFVzZSkKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0g
VW50eXBlZFVzZSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4obm9kZS0+
Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIGFkZFBoYW50b21zSWZOZWNlc3NhcnkoKTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBtX2luc2VydGlvblNldC5leGVjdXRlKGJs
b2NrKTsKICAgICB9CkBAIC0xNTA5LDYgKzE1MzMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIC8vIEludDhUb0RvdWJsZSB3aWxsIGNvbnZlcnQgaW50NTIncyB0aGF0IGZpdCBpbiBhbiBp
bnQzMiBpbnRvIGEgZG91YmxlCiAgICAgICAgICAgICAgICAgLy8gcmF0aGVyIHRoYW4gdHJ5aW5n
IHRvIGNyZWF0ZSBhIGJveGVkIGludDMyIGxpa2UgSW50NTJUb1ZhbHVlIGRvZXMuCiAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLmFwcGVuZChlZGdl
Lm5vZGUoKSk7CiAgICAgICAgICAgICAgICAgTm9kZSogcmVzdWx0ID0gbV9pbnNlcnRpb25TZXQu
aW5zZXJ0Tm9kZSgKICAgICAgICAgICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNJbnQ1
MkFzRG91YmxlLCBJbnQ1MlRvRG91YmxlLAogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRO
b2RlLT5jb2RlT3JpZ2luLCBFZGdlKGVkZ2Uubm9kZSgpLCBOdW1iZXJVc2UpKTsKQEAgLTE1NjIs
NiArMTU4Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLwogICAgICAgICAgICAgLy8gQnV0
IHRoZSBzb2x1dGlvbiB3ZSB1c2UgaGFuZGxlcyB0aGUgYWJvdmUgZ3JhY2VmdWxseS4KICAgICAg
ICAgICAgIAorICAgICAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLmFwcGVuZChlZGdlLm5vZGUo
KSk7CiAgICAgICAgICAgICBOb2RlKiByZXN1bHQgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2Rl
KAogICAgICAgICAgICAgICAgIG1faW5kZXhJbkJsb2NrLCBTcGVjSW50NTIsIEludDUyVG9WYWx1
ZSwKICAgICAgICAgICAgICAgICBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBFZGdlKGVkZ2Uu
bm9kZSgpLCBVbnR5cGVkVXNlKSk7CkBAIC0xNTgzLDE2ICsxNjA5LDE1IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICBiYXJyaWVyTm9kZSA9IG1fZ3JhcGguYWRkTm9kZShTcGVjTm9uZSwgQ29uZGl0
aW9uYWxTdG9yZUJhcnJpZXIsIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIAogICAgICAgICAg
ICAgICAgIEVkZ2UoY2hpbGQxLm5vZGUoKSwgY2hpbGQxLnVzZUtpbmQoKSksIEVkZ2UoY2hpbGQy
Lm5vZGUoKSwgY2hpbGQyLnVzZUtpbmQoKSkpOwogICAgICAgICB9Ci0gICAgICAgIGZpeHVwTm9k
ZShiYXJyaWVyTm9kZSk7CiAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydChpbmRleEluQmxv
Y2ssIGJhcnJpZXJOb2RlKTsKICAgICB9CiAKLSAgICBib29sIGZpeEludEVkZ2UoRWRnZSYgZWRn
ZSkKKyAgICB2b2lkIGZpeEludEVkZ2UoRWRnZSYgZWRnZSkKICAgICB7CiAgICAgICAgIE5vZGUq
IG5vZGUgPSBlZGdlLm5vZGUoKTsKICAgICAgICAgaWYgKG5vZGUtPnNob3VsZFNwZWN1bGF0ZUlu
dDMyKCkpIHsKICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KGVkZ2UpOwotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IAogICAgICAgICBVc2VLaW5kIHVzZUtpbmQ7CkBAIC0xNjEwLDI0ICsxNjM1LDEzIEBAIHByaXZh
dGU6CiAgICAgICAgIG9ic2VydmVVc2VLaW5kT25Ob2RlKG5vZGUsIHVzZUtpbmQpOwogICAgICAg
ICAKICAgICAgICAgZWRnZSA9IEVkZ2UobmV3Tm9kZSwgS25vd25JbnQzMlVzZSk7Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICB2b2lkIGZpeEJpbmFyeUludEVkZ2VzKCkK
LSAgICB7Ci0gICAgICAgIEFkamFjZW5jeUxpc3QgY2hpbGRyZW4gPSBtX2N1cnJlbnROb2RlLT5j
aGlsZHJlbjsKLSAgICAgICAgCi0gICAgICAgIC8vIENhbGwgZml4SW50RWRnZSgpIG9uIGJvdGgg
ZWRnZXMuCi0gICAgICAgIGJvb2wgbmVlZFBoYW50b20gPQotICAgICAgICAgICAgZml4SW50RWRn
ZShtX2N1cnJlbnROb2RlLT5jaGlsZDEoKSkgfCBmaXhJbnRFZGdlKG1fY3VycmVudE5vZGUtPmNo
aWxkMigpKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghbmVlZFBoYW50b20pCi0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxv
Y2sgKyAxLCBTcGVjTm9uZSwgUGhhbnRvbSwgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgY2hp
bGRyZW4pOworICAgICAgICBtX3JlcXVpcmVkUGhhbnRvbXMuYXBwZW5kKG5vZGUpOwogICAgIH0K
ICAgICAKICAgICB2b2lkIGluamVjdEludDMyVG9Eb3VibGVOb2RlKEVkZ2UmIGVkZ2UsIFVzZUtp
bmQgdXNlS2luZCA9IE51bWJlclVzZSkKICAgICB7CisgICAgICAgIG1fcmVxdWlyZWRQaGFudG9t
cy5hcHBlbmQoZWRnZS5ub2RlKCkpOworICAgICAgICAKICAgICAgICAgTm9kZSogcmVzdWx0ID0g
bV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAgICAgICAgICAgIG1faW5kZXhJbkJsb2NrLCBT
cGVjSW50NTJBc0RvdWJsZSwgSW50MzJUb0RvdWJsZSwKICAgICAgICAgICAgIG1fY3VycmVudE5v
ZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5ub2RlKCksIE51bWJlclVzZSkpOwpAQCAtMTcyMiw3
ICsxNzM2LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAg
ICAgCi0gICAgICAgIGFycmF5TW9kZSA9IGFycmF5TW9kZS5yZWZpbmUobm9kZS0+Y2hpbGQxKCkt
PnByZWRpY3Rpb24oKSwgbm9kZS0+cHJlZGljdGlvbigpKTsKKyAgICAgICAgYXJyYXlNb2RlID0g
YXJyYXlNb2RlLnJlZmluZSgKKyAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4s
IG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCksIG5vZGUtPnByZWRpY3Rpb24oKSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkdlbmVyaWMp
IHsKICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBpbnB1dCBpcyBzb21ldGhpbmcgdGhhdCB3
ZSBjYW4ndCBnZXQgYXJyYXkgbGVuZ3RoIGZvciwgYnV0IGZvciB3aGljaCB3ZQpAQCAtMTgxMywx
MiArMTgyOCwyNyBAQCBwcml2YXRlOgogICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgCisgICAgdm9p
ZCBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5KCkKKyAgICB7CisgICAgICAgIGlmIChtX3JlcXVpcmVk
UGhhbnRvbXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gbV9yZXF1aXJlZFBoYW50b21zLnNpemUoKTsgaS0tOykgewor
ICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAgICAgICBt
X2luZGV4SW5CbG9jayArIDEsIFNwZWNOb25lLCBQaGFudG9tLCBtX2N1cnJlbnROb2RlLT5jb2Rl
T3JpZ2luLAorICAgICAgICAgICAgICAgIEVkZ2UobV9yZXF1aXJlZFBoYW50b21zW2ldLCBVbnR5
cGVkVXNlKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fcmVxdWlyZWRQaGFudG9t
cy5yZXNpemUoMCk7CisgICAgfQogCiAgICAgQmFzaWNCbG9jayogbV9ibG9jazsKICAgICB1bnNp
Z25lZCBtX2luZGV4SW5CbG9jazsKICAgICBOb2RlKiBtX2N1cnJlbnROb2RlOwogICAgIEluc2Vy
dGlvblNldCBtX2luc2VydGlvblNldDsKICAgICBib29sIG1fcHJvZml0YWJpbGl0eUNoYW5nZWQ7
CisgICAgVmVjdG9yPE5vZGUqLCAzPiBtX3JlcXVpcmVkUGhhbnRvbXM7CiB9OwogICAgIAogYm9v
bCBwZXJmb3JtRml4dXAoR3JhcGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw4ICszNiwxMCBAQAogI2lu
Y2x1ZGUgIkZ1bmN0aW9uRXhlY3V0YWJsZUR1bXAuaCIKICNpbmNsdWRlICJKSVQuaCIKICNpbmNs
dWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhbmRzSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVBy
aW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KIApAQCAtNjc4LDEwICs2ODAsMTAg
QEAgRnVsbEJ5dGVjb2RlTGl2ZW5lc3MmIEdyYXBoOjpsaXZlbmVzc0ZvcgogYm9vbCBHcmFwaDo6
aXNMaXZlSW5CeXRlY29kZShWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCwgQ29kZU9yaWdpbiBjb2Rl
T3JpZ2luKQogewogICAgIGZvciAoOzspIHsKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHJlZyA9
IFZpcnR1YWxSZWdpc3RlcigKKyAgICAgICAgICAgIG9wZXJhbmQub2Zmc2V0KCkgLSBjb2RlT3Jp
Z2luLnN0YWNrT2Zmc2V0KCkpOworICAgICAgICAKICAgICAgICAgaWYgKG9wZXJhbmQub2Zmc2V0
KCkgPCBjb2RlT3JpZ2luLnN0YWNrT2Zmc2V0KCkgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJT
aXplKSB7Ci0gICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0gVmlydHVhbFJlZ2lzdGVy
KAotICAgICAgICAgICAgICAgIG9wZXJhbmQub2Zmc2V0KCkgLSBjb2RlT3JpZ2luLnN0YWNrT2Zm
c2V0KCkpOwotICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAocmVnLmlzQXJndW1lbnQoKSkg
ewogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHJlZy5vZmZzZXQoKSA8IEpTU3RhY2s6
OkNhbGxGcmFtZUhlYWRlclNpemUpOwogICAgICAgICAgICAgICAgIApAQCAtNzAwLDEwICs3MDIs
MTggQEAgYm9vbCBHcmFwaDo6aXNMaXZlSW5CeXRlY29kZShWaXJ0dWFsUmVnaQogICAgICAgICAg
ICAgICAgIHJlZy5vZmZzZXQoKSwgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKICAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgaWYgKCFjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSkKKyAg
ICAgICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUgPSBjb2RlT3JpZ2luLmlubGlu
ZUNhbGxGcmFtZTsKKyAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUpCiAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICAvLyBBcmd1bWVudHMgYXJlIGFsd2F5cyBsaXZlLiBUaGlzIHdvdWxk
IGJlIHJlZHVuZGFudCBpZiBpdCB3YXNuJ3QgZm9yIG91cgorICAgICAgICAvLyBvcF9jYWxsX3Zh
cmFyZ3MgaW5saW5pbmcuCisgICAgICAgIGlmIChyZWcuaXNBcmd1bWVudCgpCisgICAgICAgICAg
ICAmJiByZWcudG9Bcmd1bWVudCgpCisgICAgICAgICAgICAmJiBzdGF0aWNfY2FzdDxzaXplX3Q+
KHJlZy50b0FyZ3VtZW50KCkpIDwgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHMuc2l6ZSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIAotICAgICAgICBjb2RlT3JpZ2luID0g
Y29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUtPmNhbGxlcjsKKyAgICAgICAgY29kZU9yaWdpbiA9
IGlubGluZUNhbGxGcmFtZS0+Y2FsbGVyOwogICAgIH0KICAgICAKICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTcxMSw3ICs3MjEsMTMgQEAgYm9vbCBHcmFwaDo6aXNMaXZlSW5CeXRlY29kZShWaXJ0dWFs
UmVnaQogCiB1bnNpZ25lZCBHcmFwaDo6ZnJhbWVSZWdpc3RlckNvdW50KCkKIHsKLSAgICByZXR1
cm4gbV9uZXh0TWFjaGluZUxvY2FsICsgbV9wYXJhbWV0ZXJTbG90czsKKyAgICB1bnNpZ25lZCBy
ZXN1bHQgPSBtX25leHRNYWNoaW5lTG9jYWwgKyBzdGQ6Om1heChtX3BhcmFtZXRlclNsb3RzLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGxJblJlZ2lz
dGVycykpOworICAgIHJldHVybiByb3VuZExvY2FsUmVnaXN0ZXJDb3VudEZvckZyYW1lUG9pbnRl
ck9mZnNldChyZXN1bHQpOworfQorCit1bnNpZ25lZCBHcmFwaDo6c3RhY2tQb2ludGVyT2Zmc2V0
KCkKK3sKKyAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZnJhbWVSZWdpc3RlckNv
dW50KCkgLSAxKS5vZmZzZXQoKTsKIH0KIAogdW5zaWduZWQgR3JhcGg6OnJlcXVpcmVkUmVnaXN0
ZXJDb3VudEZvckV4aXQoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5o
CSh3b3JraW5nIGNvcHkpCkBAIC03OTMsNiArNzkzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNM
aXZlSW5CeXRlY29kZShWaXJ0dWFsUmVnaXN0ZXIsIENvZGVPcmlnaW4pOwogICAgIAogICAgIHVu
c2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudCgpOworICAgIHVuc2lnbmVkIHN0YWNrUG9pbnRlck9m
ZnNldCgpOwogICAgIHVuc2lnbmVkIHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQoKTsKICAg
ICB1bnNpZ25lZCByZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCk7CiAg
ICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1Niw2ICsxNTYsNyBAQCB2b2lkIEpJVENvZGU6OnNldE9wdGlt
aXphdGlvblRocmVzaG9sZEJhCiAgICAgc3dpdGNoIChyZXN1bHQpIHsKICAgICBjYXNlIENvbXBp
bGF0aW9uU3VjY2Vzc2Z1bDoKICAgICAgICAgb3B0aW1pemVOZXh0SW52b2NhdGlvbihjb2RlQmxv
Y2spOworICAgICAgICBjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigpLT5tX2hhc0JlZW5Db21w
aWxlZFdpdGhGVEwgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDb21waWxhdGlv
bkZhaWxlZDoKICAgICAgICAgZG9udE9wdGltaXplQW55dGltZVNvb24oY29kZUJsb2NrKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTE5LDYgKzExOSw3IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8REZHOjpPU1JFbnRyeURhdGE+
IG9zckVudHJ5OwogICAgIFNlZ21lbnRlZFZlY3RvcjxERkc6Ok9TUkV4aXQsIDg+IG9zckV4aXQ7
CiAgICAgVmVjdG9yPERGRzo6U3BlY3VsYXRpb25SZWNvdmVyeT4gc3BlY3VsYXRpb25SZWNvdmVy
eTsKKyAgICBWZWN0b3I8dW5zaWduZWQ+IHNsb3dQYXRoQ2FsbHM7CiAgICAgREZHOjpWYXJpYWJs
ZUV2ZW50U3RyZWFtIHZhcmlhYmxlRXZlbnRTdHJlYW07CiAgICAgREZHOjpNaW5pZmllZEdyYXBo
IG1pbmlmaWVkREZHOwogI2lmIEVOQUJMRShGVExfSklUKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5j
bHVkZSAiREZHRmFpbGVkRmluYWxpemVyLmgiCiAjaW5jbHVkZSAiREZHSW5saW5lQ2FjaGVXcmFw
cGVySW5saW5lcy5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZl
SklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGlu
ZXMuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1
ZGUgIlZNLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCkBAIC05MiwxNSArOTQsMTQgQEAg
dm9pZCBKSVRDb21waWxlcjo6bGlua09TUkV4aXRzKCkKIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBp
bGVFbnRyeSgpCiB7CiAgICAgLy8gVGhpcyBjb2RlIGN1cnJlbnRseSBtYXRjaGVzIHRoZSBvbGQg
SklULiBJbiB0aGUgZnVuY3Rpb24gaGVhZGVyIHdlIG5lZWQgdG8KLSAgICAvLyBwb3AgdGhlIHJl
dHVybiBhZGRyZXNzIChzaW5jZSB3ZSBkbyBub3QgYWxsb3cgYW55IHJlY3Vyc2lvbiBvbiB0aGUg
bWFjaGluZQotICAgIC8vIHN0YWNrKSwgYW5kIHBlcmZvcm0gYSBmYXN0IHN0YWNrIGNoZWNrLgor
ICAgIC8vIHNhdmUgcmV0dXJuIGFkZHJlc3MgYW5kIGNhbGwgZnJhbWUgdmlhIHRoZSBwcm9sb2d1
ZSBhbmQgcGVyZm9ybSBhIGZhc3Qgc3RhY2sgY2hlY2suCiAgICAgLy8gRklYTUU6IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjI5MgogICAgIC8vIFdlJ2xsIG5lZWQg
dG8gY29udmVydCB0aGUgcmVtYWluaW5nIGN0aV8gc3R5bGUgY2FsbHMgKHNwZWNpZmljYWxseSB0
aGUgc3RhY2sKICAgICAvLyBjaGVjaykgd2hpY2ggd2lsbCBiZSBkZXBlbmRlbnQgb24gc3RhY2sg
bGF5b3V0LiAoV2UnZCBuZWVkIHRvIGFjY291bnQgZm9yIHRoaXMgaW4KICAgICAvLyBib3RoIG5v
cm1hbCByZXR1cm4gY29kZSBhbmQgd2hlbiBqdW1waW5nIHRvIGFuIGV4Y2VwdGlvbiBoYW5kbGVy
KS4KLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6cmVnVDIpOwot
ICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86OnJlZ1QyKTsKKyAg
ICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgIGVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFt
ZUhlYWRlcihtX2NvZGVCbG9jaywgSlNTdGFjazo6Q29kZUJsb2NrKTsKKyAgICBqaXRBc3NlcnRU
YWdzSW5QbGFjZSgpOwogfQogCiB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlQm9keSgpCkBAIC0x
MjEsMjIgKzEyMiwyNSBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRXhjZXB0aW9uSGFuZGxl
CiAKICAgICBpZiAoIW1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLmVtcHR5
KCkpIHsKICAgICAgICAgbV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2subGlu
ayh0aGlzKTsKLSAgICAgICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0
cihHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9t
Q2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgICAgIGRvTG9v
a3VwID0ganVtcCgpOwogICAgIH0KIAogICAgIGlmICghbV9leGNlcHRpb25DaGVja3MuZW1wdHko
KSkKICAgICAgICAgbV9leGNlcHRpb25DaGVja3MubGluayh0aGlzKTsKIAotICAgIC8vIGxvb2t1
cEV4Y2VwdGlvbkhhbmRsZXIgaXMgcGFzc2VkIG9uZSBhcmd1bWVudCwgdGhlIGV4ZWMgKHRoZSBD
YWxsRnJhbWUqKS4KLSAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOworICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIgaXMgcGFzc2Vk
IHR3byBhcmd1bWVudHMsIHRoZSBWTSBhbmQgdGhlIGV4ZWMgKHRoZSBDYWxsRnJhbWUqKS4KKyAg
ICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
OwogCiAgICAgaWYgKGRvTG9va3VwLmlzU2V0KCkpCiAgICAgICAgIGRvTG9va3VwLmxpbmsodGhp
cyk7CiAKKyAgICBtb3ZlKFRydXN0ZWRJbW1QdHIodm0oKSksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CisKICNpZiBDUFUoWDg2KQogICAgIC8vIEZJWE1FOiBzaG91bGQgdXNlIHRoZSBjYWxsIGFi
c3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkgaW4gdGhlIFNwZWN1bGF0aXZlSklUIGxh
eWVyIQogICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBwb2tlKEdQUkluZm86
OmFyZ3VtZW50R1BSMSwgMSk7CiAjZW5kaWYKICAgICBtX2NhbGxzLmFwcGVuZChDYWxsTGlua1Jl
Y29yZChjYWxsKCksIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpKTsKICAgICBqdW1wVG9FeGNlcHRp
b25IYW5kbGVyKCk7CkBAIC0yMjgsMTMgKzIzMiwxNiBAQCB2b2lkIEpJVENvbXBpbGVyOjpsaW5r
KExpbmtCdWZmZXImIGxpbmtCCiAgICAgICAgIGluZm8ucGF0Y2guZGVsdGFDYWxsVG9TbG93Q2Fz
ZSA9IGRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihjYWxsUmV0dXJuTG9jYXRpb24sIGxpbmtCdWZm
ZXIubG9jYXRpb25PZihtX2luc1tpXS5tX3Nsb3dQYXRoR2VuZXJhdG9yLT5sYWJlbCgpKSk7CiAg
ICAgfQogICAgIAorICAgIFJFTEVBU0VfQVNTRVJUKCFtX2dyYXBoLm1fcGxhbi53aWxsVHJ5VG9U
aWVyVXAgfHwgbV9qaXRDb2RlLT5zbG93UGF0aENhbGxzLnNpemUoKSA+PSBtX2pzQ2FsbHMuc2l6
ZSgpKTsKICAgICBtX2NvZGVCbG9jay0+c2V0TnVtYmVyT2ZDYWxsTGlua0luZm9zKG1fanNDYWxs
cy5zaXplKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2pzQ2FsbHMuc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgQ2FsbExpbmtJbmZvJiBpbmZvID0gbV9jb2RlQmxvY2stPmNhbGxM
aW5rSW5mbyhpKTsKICAgICAgICAgaW5mby5jYWxsVHlwZSA9IG1fanNDYWxsc1tpXS5tX2NhbGxU
eXBlOwotICAgICAgICBpbmZvLmlzREZHID0gdHJ1ZTsKICAgICAgICAgaW5mby5jb2RlT3JpZ2lu
ID0gbV9qc0NhbGxzW2ldLm1fY29kZU9yaWdpbjsKLSAgICAgICAgbGlua0J1ZmZlci5saW5rKG1f
anNDYWxsc1tpXS5tX3Nsb3dDYWxsLCBGdW5jdGlvblB0cigobV92bS0+Z2V0Q1RJU3R1YihpbmZv
LmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q29uc3RydWN0ID8gbGlua0NvbnN0cnVjdFRodW5r
R2VuZXJhdG9yIDogbGlua0NhbGxUaHVua0dlbmVyYXRvcikpLmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpKSk7CisgICAgICAgIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxpbmtUaHVua0dl
bmVyYXRvckZvcigKKyAgICAgICAgICAgIGluZm8uY2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpD
b25zdHJ1Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisgICAgICAgICAgICBS
ZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKKyAgICAgICAgbGlua0J1ZmZlci5saW5r
KG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxsLCBGdW5jdGlvblB0cihtX3ZtLT5nZXRDVElTdHViKGdl
bmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKICAgICAgICAgaW5mby5jYWxs
UmV0dXJuTG9jYXRpb24gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbChtX2pzQ2FsbHNb
aV0ubV9zbG93Q2FsbCk7CiAgICAgICAgIGluZm8uaG90UGF0aEJlZ2luID0gbGlua0J1ZmZlci5s
b2NhdGlvbk9mKG1fanNDYWxsc1tpXS5tX3RhcmdldFRvQ2hlY2spOwogICAgICAgICBpbmZvLmhv
dFBhdGhPdGhlciA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fanNDYWxsc1tpXS5t
X2Zhc3RDYWxsKTsKQEAgLTI3OCw2ICsyODUsOCBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxl
KCkKICAgICBzZXRTdGFydE9mQ29kZSgpOwogICAgIGNvbXBpbGVFbnRyeSgpOwogICAgIG1fc3Bl
Y3VsYXRpdmUgPSBhZG9wdFB0cihuZXcgU3BlY3VsYXRpdmVKSVQoKnRoaXMpKTsKKyAgICBhZGRQ
dHIoVHJ1c3RlZEltbTMyKG1fZ3JhcGguc3RhY2tQb2ludGVyT2Zmc2V0KCkgKiBzaXplb2YoUmVn
aXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogICAgIGNvbXBpbGVCb2R5KCk7
CiAgICAgc2V0RW5kT2ZNYWluUGF0aCgpOwogCkBAIC0zMjUsMTEgKzMzNCwxMiBAQCB2b2lkIEpJ
VENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogICAgIC8vIHNvIGVudGVyIGFmdGVyIHRoaXMu
CiAgICAgTGFiZWwgZnJvbUFyaXR5Q2hlY2sodGhpcyk7CiAgICAgLy8gUGxhbnQgYSBjaGVjayB0
aGF0IHN1ZmZpY2llbnQgc3BhY2UgaXMgYXZhaWxhYmxlIGluIHRoZSBKU1N0YWNrLgotICAgIGFk
ZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9ncmFwaC5yZXF1aXJl
ZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCkpLm9mZnNldCgpICogc2l6ZW9mKFJl
Z2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7Ci0g
ICAgSnVtcCBzdGFja0NoZWNrID0gYnJhbmNoUHRyKEFib3ZlLCBBYnNvbHV0ZUFkZHJlc3MobV92
bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCBHUFJJbmZvOjpyZWdUMSk7Ci0gICAgLy8gUmV0
dXJuIGhlcmUgYWZ0ZXIgc3RhY2sgY2hlY2suCi0gICAgTGFiZWwgZnJvbVN0YWNrQ2hlY2sgPSBs
YWJlbCgpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwo
bV9ncmFwaC5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCkgLSAxKS5v
ZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
R1BSSW5mbzo6cmVnVDEpOworICAgIEp1bXAgc3RhY2tPdmVyZmxvdyA9IGJyYW5jaFB0cihBYm92
ZSwgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwgR1BSSW5m
bzo6cmVnVDEpOwogCisgICAgLy8gTW92ZSB0aGUgc3RhY2sgcG9pbnRlciBkb3duIHRvIGFjY29t
bW9kYXRlIGxvY2FscworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobV9ncmFwaC5zdGFja1BvaW50
ZXJPZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
ciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50
KCk7CiAKICAgICAvLyA9PT0gRnVuY3Rpb24gYm9keSBjb2RlIGdlbmVyYXRpb24gPT09CiAgICAg
bV9zcGVjdWxhdGl2ZSA9IGFkb3B0UHRyKG5ldyBTcGVjdWxhdGl2ZUpJVCgqdGhpcykpOwpAQCAt
MzM4LDE3ICszNDgsMTkgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKCkKIAog
ICAgIC8vID09PSBGdW5jdGlvbiBmb290ZXIgY29kZSBnZW5lcmF0aW9uID09PQogICAgIC8vCi0g
ICAgLy8gR2VuZXJhdGUgY29kZSB0byBwZXJmb3JtIHRoZSBzbG93IHN0YWNrIGNoZWNrIChpZiB0
aGUgZmFzdCBvbmUgaW4KKyAgICAvLyBHZW5lcmF0ZSBjb2RlIHRvIHBlcmZvcm0gdGhlIHN0YWNr
IG92ZXJmbG93IGhhbmRsaW5nIChpZiB0aGUgc3RhY2sgY2hlY2sgaW4KICAgICAvLyB0aGUgZnVu
Y3Rpb24gaGVhZGVyIGZhaWxzKSwgYW5kIGdlbmVyYXRlIHRoZSBlbnRyeSBwb2ludCB3aXRoIGFy
aXR5IGNoZWNrLgogICAgIC8vCi0gICAgLy8gR2VuZXJhdGUgdGhlIHN0YWNrIGNoZWNrOyBpZiB0
aGUgZmFzdCBjaGVjayBpbiB0aGUgZnVuY3Rpb24gaGVhZCBmYWlscywKLSAgICAvLyB3ZSBuZWVk
IHRvIGNhbGwgb3V0IHRvIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIHdoZXRoZXIgbW9yZSBz
cGFjZSBpcyBhdmFpbGFibGUuCi0gICAgLy8gRklYTUU6IGNoYW5nZSB0aGlzIGZyb20gYSBjdGkg
Y2FsbCB0byBhIERGRyBzdHlsZSBvcGVyYXRpb24gKG5vcm1hbCBDIGNhbGxpbmcgY29udmVudGlv
bnMpLgotICAgIHN0YWNrQ2hlY2subGluayh0aGlzKTsKKyAgICAvLyBHZW5lcmF0ZSB0aGUgc3Rh
Y2sgb3ZlcmZsb3cgaGFuZGxpbmc7IGlmIHRoZSBzdGFjayBjaGVjayBpbiB0aGUgZnVuY3Rpb24g
aGVhZCBmYWlscywKKyAgICAvLyB3ZSBuZWVkIHRvIGNhbGwgb3V0IHRvIGEgaGVscGVyIGZ1bmN0
aW9uIHRvIHRocm93IHRoZSBTdGFja092ZXJmbG93RXJyb3IuCisgICAgc3RhY2tPdmVyZmxvdy5s
aW5rKHRoaXMpOwogCiAgICAgZW1pdFN0b3JlQ29kZU9yaWdpbihDb2RlT3JpZ2luKDApKTsKLSAg
ICBtX3NwZWN1bGF0aXZlLT5jYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNl
cHRpb24ob3BlcmF0aW9uU3RhY2tDaGVjaywgbV9jb2RlQmxvY2spOwotICAgIGp1bXAoZnJvbVN0
YWNrQ2hlY2spOworCisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAg
ICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCks
IHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgIG1fc3BlY3VsYXRpdmUtPmNhbGxPcGVyYXRp
b25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25UaHJvd1N0YWNrT3Zl
cmZsb3dFcnJvciwgbV9jb2RlQmxvY2spOwogICAgIAogICAgIC8vIFRoZSBmYXN0IGVudHJ5IHBv
aW50IGludG8gYSBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgY29ycmVjdCBudW1iZXIgb2Yg
YXJndW1lbnRzCiAgICAgLy8gaGF2ZSBiZWVuIHBhc3NlZCB0byB0aGUgY2FsbCAod2Ugb25seSB1
c2UgdGhlIGZhc3QgZW50cnkgcG9pbnQgd2hlcmUgd2UgY2FuIHN0YXRpY2FsbHkKQEAgLTM2MSw5
ICszNzMsMTUgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKCkKICAgICBsb2Fk
MzIoQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpSlNTdGFjazo6
QXJndW1lbnRDb3VudCksIEdQUkluZm86OnJlZ1QxKTsKICAgICBicmFuY2gzMihBYm92ZU9yRXF1
YWwsIEdQUkluZm86OnJlZ1QxLCBUcnVzdGVkSW1tMzIobV9jb2RlQmxvY2stPm51bVBhcmFtZXRl
cnMoKSkpLmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgdGhpcyk7CiAgICAgZW1pdFN0b3JlQ29kZU9y
aWdpbihDb2RlT3JpZ2luKDApKTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwpCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIG1fc3BlY3VsYXRpdmUtPmNhbGxP
cGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihtX2NvZGVCbG9jay0+bV9p
c0NvbnN0cnVjdG9yID8gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayA6IG9wZXJhdGlvbkNh
bGxBcml0eUNoZWNrLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsKQorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIGJyYW5jaFRlc3Qz
MihaZXJvLCBHUFJJbmZvOjpyZWdUMCkubGlua1RvKGZyb21Bcml0eUNoZWNrLCB0aGlzKTsKICAg
ICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmlnaW4oMCkpOworICAgIG1vdmUoVHJ1c3RlZElt
bVB0cihtX3ZtLT5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENzRm9yKCptX3Zt
LCBtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSksIEdQUkluZm86OnJlZ1Q1KTsKKyAgICBs
b2FkUHRyKEJhc2VJbmRleChHUFJJbmZvOjpyZWdUNSwgR1BSSW5mbzo6cmVnVDAsIHRpbWVzUHRy
KCkpLCBHUFJJbmZvOjpyZWdUNSk7CiAgICAgbV9jYWxsQXJpdHlGaXh1cCA9IGNhbGwoKTsKICAg
ICBqdW1wKGZyb21Bcml0eUNoZWNrKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjIxLDYg
KzIyMSwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX2lucy5hcHBlbmQocmVjb3JkKTsK
ICAgICB9CisgICAgCisgICAgdW5zaWduZWQgY3VycmVudEpTQ2FsbEluZGV4KCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2pzQ2FsbHMuc2l6ZSgpOworICAgIH0KIAogICAgIHZvaWQg
YWRkSlNDYWxsKENhbGwgZmFzdENhbGwsIENhbGwgc2xvd0NhbGwsIERhdGFMYWJlbFB0ciB0YXJn
ZXRUb0NoZWNrLCBDYWxsTGlua0luZm86OkNhbGxUeXBlIGNhbGxUeXBlLCBHUFJSZWcgY2FsbGVl
LCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NiwxMCArNDYsMTYgQEAgSklURmluYWxpemVyOjp+SklURmluYWxpemVyKCkKIHsKIH0K
IAorc2l6ZV90IEpJVEZpbmFsaXplcjo6Y29kZVNpemUoKQoreworICAgIHJldHVybiBtX2xpbmtC
dWZmZXItPnNpemUoKTsKK30KKwogYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplKCkKIHsKLSAg
ICBtX2ppdENvZGUtPmluaXRpYWxpemVDb2RlUmVmKG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2Rl
V2l0aG91dERpc2Fzc2VtYmx5KCkpOwotICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUo
bV9qaXRDb2RlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgbV9qaXRDb2RlLT5pbml0
aWFsaXplQ29kZVJlZigKKyAgICAgICAgbV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVXaXRob3V0
RGlzYXNzZW1ibHkoKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgIG1fcGxhbi5jb2Rl
QmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlKTsKICAgICAKICAgICBmaW5hbGl6ZUNvbW1vbigp
OwogICAgIApAQCAtNTksOCArNjUsOSBAQCBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemUoKQog
Ym9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogewogICAgIFJFTEVBU0VfQVNT
RVJUKCFtX3dpdGhBcml0eUNoZWNrLmlzRW1wdHlWYWx1ZSgpKTsKLSAgICBtX2ppdENvZGUtPmlu
aXRpYWxpemVDb2RlUmVmKG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2Vt
Ymx5KCkpOwotICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlLCBtX3dp
dGhBcml0eUNoZWNrKTsKKyAgICBtX2ppdENvZGUtPmluaXRpYWxpemVDb2RlUmVmKAorICAgICAg
ICBtX2xpbmtCdWZmZXItPmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpLCBtX3dpdGhB
cml0eUNoZWNrKTsKKyAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1faml0Q29kZSk7
CiAgICAgCiAgICAgZmluYWxpemVDb21tb24oKTsKICAgICAKQEAgLTc1LDYgKzgyLDkgQEAgdm9p
ZCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplQ29tbW9uKCkKICAgICAKICAgICBpZiAobV9wbGFuLmNv
bXBpbGF0aW9uKQogICAgICAgICBtX3BsYW4udm0ubV9wZXJCeXRlY29kZVByb2ZpbGVyLT5hZGRD
b21waWxhdGlvbihtX3BsYW4uY29tcGlsYXRpb24pOworICAgIAorICAgIGlmICghbV9wbGFuLndp
bGxUcnlUb1RpZXJVcCkKKyAgICAgICAgbV9wbGFuLmNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9u
KCktPm1fZGlkRmFpbEZUTENvbXBpbGF0aW9uID0gdHJ1ZTsKIH0KIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFs
aXplci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVEZpbmFsaXplci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoK
ICAgICBKSVRGaW5hbGl6ZXIoUGxhbiYsIFBhc3NSZWZQdHI8SklUQ29kZT4sIFBhc3NPd25QdHI8
TGlua0J1ZmZlcj4sIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVjayA9IE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cihNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OkVtcHR5VmFsdWUpKTsKICAg
ICB2aXJ0dWFsIH5KSVRGaW5hbGl6ZXIoKTsKICAgICAKKyAgICB2aXJ0dWFsIHNpemVfdCBjb2Rl
U2l6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZUZ1bmN0aW9uKCkgb3ZlcnJpZGU7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTE5OCw2ICsxMTk4LDExIEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgICAg
IHJldHVybiBzaG91bGRHZW5lcmF0ZSgpOwogICAgICAgICB9CiAgICAgfQorICAgIAorICAgIGJv
b2wgaXNTZW1hbnRpY2FsbHlTa2lwcGFibGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkg
PT0gQ291bnRFeGVjdXRpb247CisgICAgfQogCiAgICAgdW5zaWduZWQgcmVmQ291bnQoKQogICAg
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksOSBAQCB2b2lkIGR1bXBOb2RlRmxhZ3Mo
UHJpbnRTdHJlYW0mIGFjdHVhbE91CiAgICAgICAgIGNhc2UgTm9kZVJlc3VsdEludDMyOgogICAg
ICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiSW50MzIiKTsKICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIE5vZGVSZXN1bHRJbnQ1MjoKKyAgICAgICAgICAgIG91dC5wcmludChjb21t
YSwgIkludDUyIik7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlUmVzdWx0
Qm9vbGVhbjoKICAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgIkJvb2xlYW4iKTsKICAgICAg
ICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JBdmFp
bGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFu
YWx5c2lzUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSwxNSArNjEsMTMgQEAgcHVibGlj
OgogICAgICAgICAgICAgICAgIEF2YWlsYWJpbGl0eTo6dW5hdmFpbGFibGUoKS53aXRoRmx1c2go
CiAgICAgICAgICAgICAgICAgICAgIEZsdXNoZWRBdChGbHVzaGVkSlNWYWx1ZSwgdmlydHVhbFJl
Z2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpKSk7CiAgICAgICAgIH0KLSAgICAgICAgZm9yICh1
bnNpZ25lZCBsb2NhbCA9IHJvb3QtPnNzYS0+YXZhaWxhYmlsaXR5QXRIZWFkLm51bWJlck9mTG9j
YWxzKCk7IGxvY2FsLS07KQotICAgICAgICAgICAgcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhl
YWQubG9jYWwobG9jYWwpID0gQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpOwotICAgICAgICAK
KwogICAgICAgICBpZiAobV9ncmFwaC5tX3BsYW4ubW9kZSA9PSBGVExGb3JPU1JFbnRyeU1vZGUp
IHsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgbG9jYWwgPSBtX2dyYXBoLm1fcHJvZmlsZWRC
bG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7IGxvY2FsLS07KSB7Ci0gICAgICAgICAgICAgICAg
cm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubG9jYWwobG9jYWwpID0KLSAgICAgICAgICAg
ICAgICAgICAgQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpLndpdGhGbHVzaCgKLSAgICAgICAg
ICAgICAgICAgICAgICAgIEZsdXNoZWRBdChGbHVzaGVkSlNWYWx1ZSwgdmlydHVhbFJlZ2lzdGVy
Rm9yTG9jYWwobG9jYWwpKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGxvY2FsID0gbV9ncmFwaC5tX3Byb2ZpbGVkQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJz
OyBsb2NhbC0tOykKKyAgICAgICAgICAgICAgICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVh
ZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGxvY2FsID0gcm9vdC0+c3NhLT5hdmFp
bGFiaWxpdHlBdEhlYWQubnVtYmVyT2ZMb2NhbHMoKTsgbG9jYWwtLTspCisgICAgICAgICAgICAg
ICAgcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubG9jYWwobG9jYWwpID0gQXZhaWxhYmls
aXR5Ojp1bmF2YWlsYWJsZSgpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBUaGlz
IGNvdWxkIGJlIG1hZGUgbW9yZSBlZmZpY2llbnQgYnkgcHJvY2Vzc2luZyBibG9ja3MgaW4gcmV2
ZXJzZSBwb3N0b3JkZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVu
dHJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVu
dHJ5LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFbnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDEwIEBAIHZvaWQqIHBy
ZXBhcmVPU1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIEMKICAgICBBU1NFUlQoY29kZUJsb2NrLT5h
bHRlcm5hdGl2ZSgpKTsKICAgICBBU1NFUlQoY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpLT5qaXRU
eXBlKCkgPT0gSklUQ29kZTo6QmFzZWxpbmVKSVQpOwogICAgIEFTU0VSVCghY29kZUJsb2NrLT5q
aXRDb2RlTWFwKCkpOwotICAgIAorCisgICAgaWYgKCFPcHRpb25zOjplbmFibGVPU1JFbnRyeVRv
REZHKCkpCisgICAgICAgIHJldHVybiAwOworCiAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1Io
KSkgewogICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgIkRGRyBPU1IgaW4gIiwgKmNvZGVC
bG9jay0+YWx0ZXJuYXRpdmUoKSwgIiAtPiAiLCAqY29kZUJsb2NrLApAQCAtNTIsOCArNTUsOCBA
QCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0YXRlKiBleGVjLCBDCiAgICAgfQogICAgIAog
ICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwotICAgIAotICAgIHZtLT5pbnRlcnByZXRlci0+c3Rh
Y2soKS5zYW5pdGl6ZVN0YWNrKCk7CisKKyAgICBzYW5pdGl6ZVN0YWNrRm9yVk0odm0pOwogICAg
IAogICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSAhPSBKSVRDb2RlOjpERkdKSVQpIHsKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoY29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6RlRM
SklUKTsKQEAgLTE4NSw3ICsxODgsNyBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0YXRl
KiBleGVjLCBDCiAgICAgLy8gICAgd291bGQgaGF2ZSBvdGhlcndpc2UganVzdCBrZXB0IHJ1bm5p
bmcgYWxiZWl0IGxlc3MgcXVpY2tseS4KICAgICAKICAgICB1bnNpZ25lZCBmcmFtZVNpemUgPSBq
aXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhpdCgp
OwotICAgIGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJlZ2lzdGVy
cygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lU2l6ZSkub2Zmc2V0KCldKSkgeworICAg
IGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKCZleGVjLT5y
ZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVNpemUgLSAxKS5vZmZzZXQo
KV0pKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgICAgICBk
YXRhTG9nRigiICAgIE9TUiBmYWlsZWQgYmVjYXVzZSBzdGFjayBncm93dGggZmFpbGVkLlxuIik7
CiAgICAgICAgIHJldHVybiAwOwpAQCAtMjEzLDEyICsyMTYsMTQgQEAgdm9pZCogcHJlcGFyZU9T
UkVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgQwogICAgIAogICAgIC8vIDUpIENsZWFyIHRob3NlIHBh
cnRzIG9mIHRoZSBjYWxsIGZyYW1lIHRoYXQgdGhlIERGRyBhaW4ndCB1c2luZy4gVGhpcyBoZWxw
cyBHQyBvbiBzb21lCiAgICAgLy8gICAgcHJvZ3JhbXMgYnkgZWxpbWluYXRpbmcgc29tZSBzdGFs
ZSBwb2ludGVyIHBhdGhvbG9naWVzLgotICAgIAorCisjaWYgMCAvLyBGSVhNRTogQ1N0YWNrIC0g
VGhpcyBuZWVkcyB0byBiZSB2ZXJpZmllZCBiZWZvcmUgYmVpbmcgZW5hYmxlZAogICAgIGZvciAo
dW5zaWduZWQgaSA9IGZyYW1lU2l6ZTsgaS0tOykgewogICAgICAgICBpZiAoZW50cnktPm1fbWFj
aGluZVN0YWNrVXNlZC5nZXQoaSkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgcmVn
aXN0ZXJzW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGkpLm9mZnNldCgpXSA9IEpTVmFsdWU6OmVu
Y29kZShKU1ZhbHVlKCkpOwogICAgIH0KKyNlbmRpZgogICAgIAogICAgIC8vIDYpIEZpeCB0aGUg
Y2FsbCBmcmFtZS4KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RW50cnlwb2ludENyZWF0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5cG9pbnRDcmVh
dGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjMsNyArNjMsMTAgQEAgcHVibGljOgogICAg
ICAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSBtX2dyYXBoLmJsb2NrKGJsb2NrSW5kZXgpOwog
ICAgICAgICAgICAgaWYgKCFibG9jaykKICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgIHVuc2lnbmVkIG5vZGVJbmRleCA9IDA7CiAgICAgICAgICAgICBOb2RlKiBmaXJzdE5v
ZGUgPSBibG9jay0+YXQoMCk7CisgICAgICAgICAgICB3aGlsZSAoZmlyc3ROb2RlLT5pc1NlbWFu
dGljYWxseVNraXBwYWJsZSgpKQorICAgICAgICAgICAgICAgIGZpcnN0Tm9kZSA9IGJsb2NrLT5h
dCgrK25vZGVJbmRleCk7CiAgICAgICAgICAgICBpZiAoZmlyc3ROb2RlLT5vcCgpID09IExvb3BI
aW50CiAgICAgICAgICAgICAgICAgJiYgZmlyc3ROb2RlLT5jb2RlT3JpZ2luID09IENvZGVPcmln
aW4oYnl0ZWNvZGVJbmRleCkpIHsKICAgICAgICAgICAgICAgICB0YXJnZXQgPSBibG9jazsKQEAg
LTgzLDE3ICs4Niw2IEBAIHB1YmxpYzoKICAgICAgICAgQmFzaWNCbG9jayogbmV3Um9vdCA9IGlu
c2VydGlvblNldC5pbnNlcnQoMCk7CiAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IHRh
cmdldC0+YXQoMCktPmNvZGVPcmlnaW47CiAgICAgICAgIAotICAgICAgICBmb3IgKGludCBhcmd1
bWVudCA9IDA7IGFyZ3VtZW50IDwgYmFzZWxpbmUtPm51bVBhcmFtZXRlcnMoKTsgKythcmd1bWVu
dCkgewotICAgICAgICAgICAgTm9kZSogb2xkTm9kZSA9IHRhcmdldC0+dmFyaWFibGVzQXRIZWFk
LmFyZ3VtZW50KGFyZ3VtZW50KTsKLSAgICAgICAgICAgIGlmICghb2xkTm9kZSkgewotICAgICAg
ICAgICAgICAgIC8vIEp1c3QgZm9yIHNhbml0eSwgYWx3YXlzIGhhdmUgYSBTZXRBcmd1bWVudCBl
dmVuIGlmIGl0J3Mgbm90IG5lZWRlZC4KLSAgICAgICAgICAgICAgICBvbGROb2RlID0gbV9ncmFw
aC5tX2FyZ3VtZW50c1thcmd1bWVudF07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBOb2Rl
KiBub2RlID0gbmV3Um9vdC0+YXBwZW5kTm9kZSgKLSAgICAgICAgICAgICAgICBtX2dyYXBoLCBT
cGVjTm9uZSwgU2V0QXJndW1lbnQsIGNvZGVPcmlnaW4sCi0gICAgICAgICAgICAgICAgT3BJbmZv
KG9sZE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKSk7Ci0gICAgICAgICAgICBtX2dyYXBoLm1f
YXJndW1lbnRzW2FyZ3VtZW50XSA9IG5vZGU7Ci0gICAgICAgIH0KICAgICAgICAgVmVjdG9yPE5v
ZGUqPiBsb2NhbHMoYmFzZWxpbmUtPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKTsKICAgICAgICAgZm9y
IChpbnQgbG9jYWwgPSAwOyBsb2NhbCA8IGJhc2VsaW5lLT5tX251bUNhbGxlZVJlZ2lzdGVyczsg
Kytsb2NhbCkgewogICAgICAgICAgICAgTm9kZSogcHJldmlvdXNIZWFkID0gdGFyZ2V0LT52YXJp
YWJsZXNBdEhlYWQubG9jYWwobG9jYWwpOwpAQCAtMTA4LDYgKzEwMCwxOSBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgbV9ncmFwaCwgU3BlY05vbmUsIE1vdkhpbnQsIGNvZGVPcmlnaW4sIE9w
SW5mbyh2YXJpYWJsZS0+bG9jYWwoKS5vZmZzZXQoKSksCiAgICAgICAgICAgICAgICAgRWRnZShs
b2NhbHNbbG9jYWxdKSk7CiAgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBhcmd1bWVudCA9
IDA7IGFyZ3VtZW50IDwgYmFzZWxpbmUtPm51bVBhcmFtZXRlcnMoKTsgKythcmd1bWVudCkgewor
ICAgICAgICAgICAgTm9kZSogb2xkTm9kZSA9IHRhcmdldC0+dmFyaWFibGVzQXRIZWFkLmFyZ3Vt
ZW50KGFyZ3VtZW50KTsKKyAgICAgICAgICAgIGlmICghb2xkTm9kZSkgeworICAgICAgICAgICAg
ICAgIC8vIEp1c3QgZm9yIHNhbml0eSwgYWx3YXlzIGhhdmUgYSBTZXRBcmd1bWVudCBldmVuIGlm
IGl0J3Mgbm90IG5lZWRlZC4KKyAgICAgICAgICAgICAgICBvbGROb2RlID0gbV9ncmFwaC5tX2Fy
Z3VtZW50c1thcmd1bWVudF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBOb2RlKiBub2Rl
ID0gbmV3Um9vdC0+YXBwZW5kTm9kZSgKKyAgICAgICAgICAgICAgICBtX2dyYXBoLCBTcGVjTm9u
ZSwgU2V0QXJndW1lbnQsIGNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgT3BJbmZvKG9sZE5v
ZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKSk7CisgICAgICAgICAgICBtX2dyYXBoLm1fYXJndW1l
bnRzW2FyZ3VtZW50XSA9IG5vZGU7CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIGZvciAo
aW50IGxvY2FsID0gMDsgbG9jYWwgPCBiYXNlbGluZS0+bV9udW1DYWxsZWVSZWdpc3RlcnM7ICsr
bG9jYWwpIHsKICAgICAgICAgICAgIE5vZGUqIHByZXZpb3VzSGVhZCA9IHRhcmdldC0+dmFyaWFi
bGVzQXRIZWFkLmxvY2FsKGxvY2FsKTsKICAgICAgICAgICAgIGlmICghcHJldmlvdXNIZWFkKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDUsNiArMTA1LDExIEBAIHN0cnVjdCBPU1JFeGl0IDogcHVibGljIE9TUkV4aXRC
YXNlIHsKICAgICB1bnNpZ25lZCBtX3N0cmVhbUluZGV4OwogICAgIAogICAgIFJlZlB0cjxWYWx1
ZVJlY292ZXJ5T3ZlcnJpZGU+IG1fdmFsdWVSZWNvdmVyeU92ZXJyaWRlOworICAgIAorICAgIGJv
b2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2NrKiBwcm9maWxlZENv
ZGVCbG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRp
bmdBc0ZyZXF1ZW50RXhpdFNpdGUocHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRGcm9tREZHKTsKKyAg
ICB9CiB9OwogCiBzdHJ1Y3QgU3BlY3VsYXRpb25GYWlsdXJlRGVidWdJbmZvIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwCShyZXZpc2lvbiAx
NjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAKLWJvb2wgT1NSRXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4
aXRTaXRlU2xvdyhDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrKQorYm9vbCBPU1JFeGl0QmFz
ZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KENvZGVCbG9jayogcHJvZmls
ZWRDb2RlQmxvY2ssIEV4aXRpbmdKSVRUeXBlIGppdFR5cGUpCiB7CiAgICAgQ29kZUJsb2NrKiBz
b3VyY2VQcm9maWxlZENvZGVCbG9jayA9CiAgICAgICAgIGJhc2VsaW5lQ29kZUJsb2NrRm9yT3Jp
Z2luQW5kQmFzZWxpbmVDb2RlQmxvY2soCkBAIC00Myw3ICs0Myw3IEBAIGJvb2wgT1NSRXhpdEJh
c2U6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWUKICAgICBpZiAoIXNvdXJjZVByb2ZpbGVkQ29kZUJs
b2NrKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHNvdXJjZVByb2ZpbGVkQ29k
ZUJsb2NrLT5hZGRGcmVxdWVudEV4aXRTaXRlKAotICAgICAgICAgICAgRnJlcXVlbnRFeGl0U2l0
ZShtX2NvZGVPcmlnaW5Gb3JFeGl0UHJvZmlsZS5ieXRlY29kZUluZGV4LCBtX2tpbmQpKTsKKyAg
ICAgICAgRnJlcXVlbnRFeGl0U2l0ZShtX2NvZGVPcmlnaW5Gb3JFeGl0UHJvZmlsZS5ieXRlY29k
ZUluZGV4LCBtX2tpbmQsIGppdFR5cGUpKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRG
RwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuaAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFz
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCwxNSArNTgsMTYgQEAgc3RydWN0IE9TUkV4aXRCYXNl
IHsKICAgICBDb2RlT3JpZ2luIG1fY29kZU9yaWdpbjsKICAgICBDb2RlT3JpZ2luIG1fY29kZU9y
aWdpbkZvckV4aXRQcm9maWxlOwogCi0gICAgYm9vbCBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRF
eGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrKQorcHJvdGVjdGVkOgorICAgIGJv
b2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2NrKiBwcm9maWxlZENv
ZGVCbG9jaywgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkKICAgICB7CiAgICAgICAgIGlmICghbV9j
b3VudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIGNvbnNpZGVy
QWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhwcm9maWxlZENvZGVCbG9jayk7CisgICAgICAg
IHJldHVybiBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3cocHJvZmlsZWRDb2Rl
QmxvY2ssIGppdFR5cGUpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBib29sIGNvbnNpZGVyQWRk
aW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrKTsK
KyAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhDb2RlQmxvY2sq
IHByb2ZpbGVkQ29kZUJsb2NrLCBFeGl0aW5nSklUVHlwZSk7CiB9OwogCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlcjMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ2LDYgKzQ2LDEyIEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhp
dChjb25zdCAKICAgICAgICAgbV9qaXQuZGVidWdDYWxsKGRlYnVnT3BlcmF0aW9uUHJpbnRTcGVj
dWxhdGlvbkZhaWx1cmUsIGRlYnVnSW5mbyk7CiAgICAgfQogICAgIAorICAgIC8vIE5lZWQgdG8g
ZW5zdXJlIHRoYXQgdGhlIHN0YWNrIHBvaW50ZXIgYWNjb3VudHMgZm9yIHRoZSB3b3JzdC1jYXNl
IHN0YWNrIHVzYWdlIGF0IGV4aXQuCisgICAgbV9qaXQuYWRkUHRyKAorICAgICAgICBDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMigKKyAgICAgICAgICAgIC1tX2ppdC5jb2RlQmxvY2soKS0+aml0
Q29kZSgpLT5kZmdDb21tb24oKS0+cmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCAqIHNpemVv
ZihSZWdpc3RlcikpLAorICAgICAgICBDQ2FsbEhlbHBlcnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVy
LCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAKICAgICAvLyAyKSBQ
ZXJmb3JtIHNwZWN1bGF0aW9uIHJlY292ZXJ5LiBUaGlzIG9ubHkgY29tZXMgaW50byBwbGF5IHdo
ZW4gYW4gb3BlcmF0aW9uCiAgICAgLy8gICAgc3RhcnRzIG11dGF0aW5nIHN0YXRlIGJlZm9yZSB2
ZXJpZnlpbmcgdGhlIHNwZWN1bGF0aW9uIGl0IGhhcyBhbHJlYWR5IG1hZGUuCiAgICAgCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0
LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXI2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDggQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29t
cGlsZUV4aXQoY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QgT3BlcmFuZHM8VmFsdWVSZWNvdmVy
eT4mIG9wZXJhbmRzLCBTcGVjdWxhdGlvblJlY292ZXJ5KiByZWNvdmVyeSkKIHsKKyAgICBtX2pp
dC5qaXRBc3NlcnRUYWdzSW5QbGFjZSgpOworCiAgICAgLy8gMSkgUHJvLWZvcm1hIHN0dWZmLgog
ICAgIGlmIChPcHRpb25zOjpwcmludEVhY2hPU1JFeGl0KCkpIHsKICAgICAgICAgU3BlY3VsYXRp
b25GYWlsdXJlRGVidWdJbmZvKiBkZWJ1Z0luZm8gPSBuZXcgU3BlY3VsYXRpb25GYWlsdXJlRGVi
dWdJbmZvOwpAQCAtNDgsNiArNTAsMTIgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVF
eGl0KGNvbnN0IAogICAgICAgICBtX2ppdC5kZWJ1Z0NhbGwoZGVidWdPcGVyYXRpb25QcmludFNw
ZWN1bGF0aW9uRmFpbHVyZSwgZGVidWdJbmZvKTsKICAgICB9CiAgICAgCisgICAgLy8gTmVlZCB0
byBlbnN1cmUgdGhhdCB0aGUgc3RhY2sgcG9pbnRlciBhY2NvdW50cyBmb3IgdGhlIHdvcnN0LWNh
c2Ugc3RhY2sgdXNhZ2UgYXQgZXhpdC4KKyAgICBtX2ppdC5hZGRQdHIoCisgICAgICAgIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgLW1faml0LmNvZGVCbG9jaygpLT5q
aXRDb2RlKCktPmRmZ0NvbW1vbigpLT5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ICogc2l6
ZW9mKFJlZ2lzdGVyKSksCisgICAgICAgIENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0
ZXIsIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIAogICAgIC8vIDIp
IFBlcmZvcm0gc3BlY3VsYXRpb24gcmVjb3ZlcnkuIFRoaXMgb25seSBjb21lcyBpbnRvIHBsYXkg
d2hlbiBhbiBvcGVyYXRpb24KICAgICAvLyAgICBzdGFydHMgbXV0YXRpbmcgc3RhdGUgYmVmb3Jl
IHZlcmlmeWluZyB0aGUgc3BlY3VsYXRpb24gaXQgaGFzIGFscmVhZHkgbWFkZS4KICAgICAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5j
cHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTYsNyArOTYsNyBAQCB2b2lkIGNv
bXBpbGVPU1JFeGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgCiAgICAgICAgIExpbmtCdWZm
ZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBjb2RlQmxvY2spOwogICAgICAgICBleGl0Lm1fY29k
ZSA9IEZJTkFMSVpFX0NPREVfSUYoCi0gICAgICAgICAgICBzaG91bGRTaG93RGlzYXNzZW1ibHko
KSwKKyAgICAgICAgICAgIHNob3VsZFNob3dEaXNhc3NlbWJseSgpIHx8IE9wdGlvbnM6OnZlcmJv
c2VPU1IoKSwKICAgICAgICAgICAgIHBhdGNoQnVmZmVyLAogICAgICAgICAgICAgKCJERkcgT1NS
IGV4aXQgIyV1ICglcywgJXMpIGZyb20gJXMsIHdpdGggb3BlcmFuZHMgPSAlcyIsCiAgICAgICAg
ICAgICAgICAgZXhpdEluZGV4LCB0b0NTdHJpbmcoZXhpdC5tX2NvZGVPcmlnaW4pLmRhdGEoKSwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRD
b21waWxlckNvbW1vbi5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiREZHT3Bl
cmF0aW9ucy5oIgorI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCkBAIC0xNzMsNyArMTc0LDExIEBAIHZvaWQg
YWRqdXN0QW5kSnVtcFRvVGFyZ2V0KENDYWxsSGVscGVycyYKICAgICBBU1NFUlQobWFwcGluZy0+
bV9ieXRlY29kZUluZGV4ID09IGV4aXQubV9jb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwogICAg
IAogICAgIHZvaWQqIGp1bXBUYXJnZXQgPSBiYXNlbGluZUNvZGVCbG9jay0+aml0Q29kZSgpLT5l
eGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KG1hcHBpbmctPm1fbWFjaGluZUNvZGVPZmZzZXQpOwor
CisgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKSVQ6OnN0YWNr
UG9pbnRlck9mZnNldEZvcihiYXNlbGluZUNvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwg
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIpOwogICAgIAorICAgIGppdC5qaXRBc3NlcnRUYWdzSW5QbGFjZSgpOworCiAgICAg
aml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGp1bXBUYXJnZXQpLCBHUFJJ
bmZvOjpyZWdUMik7CiAgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDIpOwogfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxNjI5
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTQwLDcgKzExNDAsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gdHJpZ2dl
clRpZXJVcE5vdyhFeGVjCiAgICAgfQogICAgIAogICAgIFdvcmtsaXN0OjpTdGF0ZSB3b3JrbGlz
dFN0YXRlOwotICAgIGlmIChXb3JrbGlzdCogd29ya2xpc3QgPSB2bS0+d29ya2xpc3QuZ2V0KCkp
IHsKKyAgICBpZiAoV29ya2xpc3QqIHdvcmtsaXN0ID0gZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlz
dE9yTnVsbCgpKSB7CiAgICAgICAgIHdvcmtsaXN0U3RhdGUgPSB3b3JrbGlzdC0+Y29tcGxldGVB
bGxSZWFkeVBsYW5zRm9yVk0oCiAgICAgICAgICAgICAqdm0sIENvbXBpbGF0aW9uS2V5KGNvZGVC
bG9jay0+YmFzZWxpbmVWZXJzaW9uKCksIEZUTE1vZGUpKTsKICAgICB9IGVsc2UKQEAgLTExNjks
OCArMTE2OSw4IEBAIHZvaWQgSklUX09QRVJBVElPTiB0cmlnZ2VyVGllclVwTm93KEV4ZWMKIAog
ICAgIC8vIFdlIG5lZWQgdG8gY29tcGlsZSB0aGUgY29kZS4KICAgICBjb21waWxlKAotICAgICAg
ICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgRlRMTW9kZSwgVUlOVF9N
QVgsIE9wZXJhbmRzPEpTVmFsdWU+KCksCi0gICAgICAgIFRvRlRMRGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrOjpjcmVhdGUoY29kZUJsb2NrKSwgdm0tPmVuc3VyZVdvcmtsaXN0KCkpOworICAg
ICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgY29kZUJsb2NrLCBG
VExNb2RlLCBVSU5UX01BWCwKKyAgICAgICAgT3BlcmFuZHM8SlNWYWx1ZT4oKSwgVG9GVExEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spKTsKIH0KIAogY2hhciog
SklUX09QRVJBVElPTiB0cmlnZ2VyT1NSRW50cnlOb3coCkBAIC0xMjAyLDggKzEyMDIsMTAgQEAg
Y2hhciogSklUX09QRVJBVElPTiB0cmlnZ2VyT1NSRW50cnlOb3coCiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KICAgICAKKyAgICBXb3JrbGlzdCogd29ya2xpc3QgPSBleGlzdGluZ0dsb2JhbEZU
TFdvcmtsaXN0T3JOdWxsKCk7CisKICAgICBXb3JrbGlzdDo6U3RhdGUgd29ya2xpc3RTdGF0ZTsK
LSAgICBpZiAoV29ya2xpc3QqIHdvcmtsaXN0ID0gdm0tPndvcmtsaXN0LmdldCgpKSB7CisgICAg
aWYgKHdvcmtsaXN0KSB7CiAgICAgICAgIHdvcmtsaXN0U3RhdGUgPSB3b3JrbGlzdC0+Y29tcGxl
dGVBbGxSZWFkeVBsYW5zRm9yVk0oCiAgICAgICAgICAgICAqdm0sIENvbXBpbGF0aW9uS2V5KGNv
ZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCksIEZUTEZvck9TUkVudHJ5TW9kZSkpOwogICAgIH0g
ZWxzZQpAQCAtMTI1MiwxMCArMTI1NCw5IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gdHJpZ2dlck9T
UkVudHJ5Tm93KAogICAgIE9wZXJhbmRzPEpTVmFsdWU+IG11c3RIYW5kbGVWYWx1ZXM7CiAgICAg
aml0Q29kZS0+cmVjb25zdHJ1Y3QoCiAgICAgICAgIGV4ZWMsIGNvZGVCbG9jaywgQ29kZU9yaWdp
bihieXRlY29kZUluZGV4KSwgc3RyZWFtSW5kZXgsIG11c3RIYW5kbGVWYWx1ZXMpOwotICAgIENv
bXBpbGF0aW9uUmVzdWx0IGZvckVudHJ5UmVzdWx0ID0gREZHOjpjb21waWxlKAotICAgICAgICAq
dm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgRlRMRm9yT1NSRW50cnlNb2Rl
LCBieXRlY29kZUluZGV4LAotICAgICAgICBtdXN0SGFuZGxlVmFsdWVzLCBUb0ZUTEZvck9TUkVu
dHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoY29kZUJsb2NrKSwKLSAgICAg
ICAgdm0tPmVuc3VyZVdvcmtsaXN0KCkpOworICAgIENvbXBpbGF0aW9uUmVzdWx0IGZvckVudHJ5
UmVzdWx0ID0gY29tcGlsZSgKKyAgICAgICAgKnZtLCBjb2RlQmxvY2stPm5ld1JlcGxhY2VtZW50
KCkuZ2V0KCksIGNvZGVCbG9jaywgRlRMRm9yT1NSRW50cnlNb2RlLCBieXRlY29kZUluZGV4LAor
ICAgICAgICBtdXN0SGFuZGxlVmFsdWVzLCBUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrOjpjcmVhdGUoY29kZUJsb2NrKSk7CiAgICAgCiAgICAgLy8gQnV0IHdlIGFs
c28gd2FudCB0byB0cmlnZ2VyIGEgcmVwbGFjZW1lbnQgY29tcGlsZS4gT2YgY291cnNlLCB3ZSBk
b24ndCB3YW50IHRvCiAgICAgLy8gdHJpZ2dlciBpdCBpZiB3ZSBkb24ndCBuZWVkIHRvLiBOb3Rl
IHRoYXQgdGhpcyBpcyBraW5kIG9mIHdlaXJkIGJlY2F1c2Ugd2UgbWlnaHQKQEAgLTEyNjgsMTEg
KzEyNjksMTEgQEAgY2hhciogSklUX09QRVJBVElPTiB0cmlnZ2VyT1NSRW50cnlOb3coCiAgICAg
Q29tcGlsYXRpb25LZXkga2V5Rm9yUmVwbGFjZW1lbnQoY29kZUJsb2NrLT5iYXNlbGluZVZlcnNp
b24oKSwgRlRMTW9kZSk7CiAgICAgaWYgKGNvZGVCbG9jay0+Y29kZVR5cGUoKSAhPSBHbG9iYWxD
b2RlCiAgICAgICAgICYmICFjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxhY2VtZW50KCkKLSAg
ICAgICAgJiYgKCF2bS0+d29ya2xpc3QuZ2V0KCkKLSAgICAgICAgICAgIHx8IHZtLT53b3JrbGlz
dC0+Y29tcGlsYXRpb25TdGF0ZShrZXlGb3JSZXBsYWNlbWVudCkgPT0gV29ya2xpc3Q6Ok5vdEtu
b3duKSkgeworICAgICAgICAmJiAoIXdvcmtsaXN0CisgICAgICAgICAgICB8fCB3b3JrbGlzdC0+
Y29tcGlsYXRpb25TdGF0ZShrZXlGb3JSZXBsYWNlbWVudCkgPT0gV29ya2xpc3Q6Ok5vdEtub3du
KSkgewogICAgICAgICBjb21waWxlKAotICAgICAgICAgICAgKnZtLCBjb2RlQmxvY2stPm5ld1Jl
cGxhY2VtZW50KCkuZ2V0KCksIEZUTE1vZGUsIFVJTlRfTUFYLCBPcGVyYW5kczxKU1ZhbHVlPigp
LAotICAgICAgICAgICAgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShj
b2RlQmxvY2spLCB2bS0+ZW5zdXJlV29ya2xpc3QoKSk7CisgICAgICAgICAgICAqdm0sIGNvZGVC
bG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgY29kZUJsb2NrLCBGVExNb2RlLCBVSU5UX01B
WCwKKyAgICAgICAgICAgIE9wZXJhbmRzPEpTVmFsdWU+KCksIFRvRlRMRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrOjpjcmVhdGUoY29kZUJsb2NrKSk7CiAgICAgfQogICAgIAogICAgIGlmIChm
b3JFbnRyeVJlc3VsdCAhPSBDb21waWxhdGlvblN1Y2Nlc3NmdWwpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkwLDE3ICs5MCwzNiBA
QCBzdGF0aWMgdm9pZCBkdW1wQW5kVmVyaWZ5R3JhcGgoR3JhcGgmIGdyCiAgICAgICAgIHZhbGlk
YXRlKGdyYXBoLCBtb2RlRm9yRmluYWxWYWxpZGF0ZSk7CiB9CiAKLVBsYW46OlBsYW4oCi0gICAg
UGFzc1JlZlB0cjxDb2RlQmxvY2s+IHBhc3NlZENvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1v
ZGUsCi0gICAgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LCBjb25zdCBPcGVyYW5kczxK
U1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcykKK3N0YXRpYyBQcm9maWxlcjo6Q29tcGlsYXRpb25L
aW5kIHByb2ZpbGVyQ29tcGlsYXRpb25LaW5kRm9yTW9kZShDb21waWxhdGlvbk1vZGUgbW9kZSkK
K3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEludmFsaWRDb21waWxhdGlvbk1vZGU6
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBQ
cm9maWxlcjo6REZHOworICAgIGNhc2UgREZHTW9kZToKKyAgICAgICAgcmV0dXJuIFByb2ZpbGVy
OjpERkc7CisgICAgY2FzZSBGVExNb2RlOgorICAgICAgICByZXR1cm4gUHJvZmlsZXI6OkZUTDsK
KyAgICBjYXNlIEZUTEZvck9TUkVudHJ5TW9kZToKKyAgICAgICAgcmV0dXJuIFByb2ZpbGVyOjpG
VExGb3JPU1JFbnRyeTsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gUHJvZmlsZXI6OkRGRzsKK30KKworUGxhbjo6UGxhbihQYXNzUmVmUHRyPENv
ZGVCbG9jaz4gcGFzc2VkQ29kZUJsb2NrLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2Nr
LAorICAgIENvbXBpbGF0aW9uTW9kZSBtb2RlLCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5k
ZXgsCisgICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMpCiAgICAg
OiB2bSgqcGFzc2VkQ29kZUJsb2NrLT52bSgpKQogICAgICwgY29kZUJsb2NrKHBhc3NlZENvZGVC
bG9jaykKKyAgICAsIHByb2ZpbGVkREZHQ29kZUJsb2NrKHByb2ZpbGVkREZHQ29kZUJsb2NrKQog
ICAgICwgbW9kZShtb2RlKQogICAgICwgb3NyRW50cnlCeXRlY29kZUluZGV4KG9zckVudHJ5Qnl0
ZWNvZGVJbmRleCkKICAgICAsIG11c3RIYW5kbGVWYWx1ZXMobXVzdEhhbmRsZVZhbHVlcykKLSAg
ICAsIGNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyID8g
YWRvcHRSZWYobmV3IFByb2ZpbGVyOjpDb21waWxhdGlvbihjb2RlQmxvY2stPnZtKCktPm1fcGVy
Qnl0ZWNvZGVQcm9maWxlci0+ZW5zdXJlQnl0ZWNvZGVzRm9yKGNvZGVCbG9jay5nZXQoKSksIFBy
b2ZpbGVyOjpERkcpKSA6IDApCisgICAgLCBjb21waWxhdGlvbihjb2RlQmxvY2stPnZtKCktPm1f
cGVyQnl0ZWNvZGVQcm9maWxlciA/IGFkb3B0UmVmKG5ldyBQcm9maWxlcjo6Q29tcGlsYXRpb24o
Y29kZUJsb2NrLT52bSgpLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmVuc3VyZUJ5dGVjb2Rlc0Zv
cihjb2RlQmxvY2suZ2V0KCkpLCBwcm9maWxlckNvbXBpbGF0aW9uS2luZEZvck1vZGUobW9kZSkp
KSA6IDApCiAgICAgLCBpZGVudGlmaWVycyhjb2RlQmxvY2suZ2V0KCkpCiAgICAgLCB3ZWFrUmVm
ZXJlbmNlcyhjb2RlQmxvY2suZ2V0KCkpCisgICAgLCB3aWxsVHJ5VG9UaWVyVXAoZmFsc2UpCiAg
ICAgLCBpc0NvbXBpbGVkKGZhbHNlKQogewogfQpAQCAtMTA5LDEwICsxMjgsMTYgQEAgUGxhbjo6
flBsYW4oKQogewogfQogCitib29sIFBsYW46OnJlcG9ydENvbXBpbGVUaW1lcygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1lcygpCisgICAgICAgIHx8IChP
cHRpb25zOjpyZXBvcnRGVExDb21waWxlVGltZXMoKSAmJiBpc0ZUTChtb2RlKSk7Cit9CisKIHZv
aWQgUGxhbjo6Y29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSkK
IHsKICAgICBkb3VibGUgYmVmb3JlID0gMDsKLSAgICBpZiAoT3B0aW9uczo6cmVwb3J0Q29tcGls
ZVRpbWVzKCkpCisgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKQogICAgICAgICBiZWZvcmUg
PSBjdXJyZW50VGltZU1TKCk7CiAgICAgCiAgICAgU2FtcGxpbmdSZWdpb24gc2FtcGxpbmdSZWdp
b24oIkRGRyBDb21waWxhdGlvbiAoUGxhbikiKTsKQEAgLTEyNSw3ICsxNTAsNyBAQCB2b2lkIFBs
YW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0CiAKICAgICBSRUxFQVNFX0FTU0VSVChm
aW5hbGl6ZXIpOwogICAgIAotICAgIGlmIChPcHRpb25zOjpyZXBvcnRDb21waWxlVGltZXMoKSkg
eworICAgIGlmIChyZXBvcnRDb21waWxlVGltZXMoKSkgewogICAgICAgICBjb25zdCBjaGFyKiBw
YXRoTmFtZTsKICAgICAgICAgc3dpdGNoIChwYXRoKSB7CiAgICAgICAgIGNhc2UgRmFpbFBhdGg6
CkBAIC0xNDMsNyArMTY4LDcgQEAgdm9pZCBQbGFuOjpjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVk
U3RhdAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZG91YmxlIG5vdyA9
IGN1cnJlbnRUaW1lTVMoKTsKLSAgICAgICAgZGF0YUxvZygiT3B0aW1pemVkICIsICpjb2RlQmxv
Y2stPmFsdGVybmF0aXZlKCksICIgdXNpbmcgIiwgbW9kZSwgIiB3aXRoICIsIHBhdGhOYW1lLCAi
IGluICIsIG5vdyAtIGJlZm9yZSwgIiBtcyIpOworICAgICAgICBkYXRhTG9nKCJPcHRpbWl6ZWQg
IiwgKmNvZGVCbG9jaywgIiB1c2luZyAiLCBtb2RlLCAiIHdpdGggIiwgcGF0aE5hbWUsICIgaW50
byAiLCBmaW5hbGl6ZXItPmNvZGVTaXplKCksICIgYnl0ZXMgaW4gIiwgbm93IC0gYmVmb3JlLCAi
IG1zIik7CiAgICAgICAgIGlmIChwYXRoID09IEZUTFBhdGgpCiAgICAgICAgICAgICBkYXRhTG9n
KCIgKERGRzogIiwgYmVmb3JlRlRMIC0gYmVmb3JlLCAiLCBMTFZNOiAiLCBub3cgLSBiZWZvcmVG
VEwsICIpIik7CiAgICAgICAgIGRhdGFMb2coIi5cbiIpOwpAQCAtMjkyLDcgKzMxNyw3IEBAIFBs
YW46OkNvbXBpbGF0aW9uUGF0aCBQbGFuOjpjb21waWxlSW5UaHIKICAgICAgICAgRlRMOjpTdGF0
ZSBzdGF0ZShkZmcpOwogICAgICAgICBGVEw6Omxvd2VyREZHVG9MTFZNKHN0YXRlKTsKICAgICAg
ICAgCi0gICAgICAgIGlmIChPcHRpb25zOjpyZXBvcnRDb21waWxlVGltZXMoKSkKKyAgICAgICAg
aWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKQogICAgICAgICAgICAgYmVmb3JlRlRMID0gY3VycmVu
dFRpbWVNUygpOwogICAgICAgICAKICAgICAgICAgaWYgKE9wdGlvbnM6Omxsdm1BbHdheXNGYWls
c0JlZm9yZUNvbXBpbGUoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
bGFuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC01NSw3ICs1NSw4IEBAIGNsYXNzIExvbmdMaXZlZFN0YXRlOwogCiBz
dHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQbGFuPiB7CiAgICAgUGxh
bigKLSAgICAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+LCBDb21waWxhdGlvbk1vZGUsIHVuc2ln
bmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKKyAgICAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+
IGNvZGVCbG9ja1RvQ29tcGlsZSwgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywKKyAg
ICAgICAgQ29tcGlsYXRpb25Nb2RlLCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCiAg
ICAgICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzKTsKICAgICB+
UGxhbigpOwogICAgIApAQCAtNzAsNiArNzEsNyBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlCiAgICAgCiAgICAgVk0mIHZtOwogICAgIFJlZlB0cjxDb2RlQmxvY2s+
IGNvZGVCbG9jazsKKyAgICBSZWZQdHI8Q29kZUJsb2NrPiBwcm9maWxlZERGR0NvZGVCbG9jazsK
ICAgICBDb21waWxhdGlvbk1vZGUgbW9kZTsKICAgICBjb25zdCB1bnNpZ25lZCBvc3JFbnRyeUJ5
dGVjb2RlSW5kZXg7CiAgICAgT3BlcmFuZHM8SlNWYWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKQEAg
LTg0LDYgKzg2LDggQEAgc3RydWN0IFBsYW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZQog
ICAgIERlc2lyZWRXZWFrUmVmZXJlbmNlcyB3ZWFrUmVmZXJlbmNlczsKICAgICBEZXNpcmVkV3Jp
dGVCYXJyaWVycyB3cml0ZUJhcnJpZXJzOwogICAgIERlc2lyZWRUcmFuc2l0aW9ucyB0cmFuc2l0
aW9uczsKKyAgICAKKyAgICBib29sIHdpbGxUcnlUb1RpZXJVcDsKIAogICAgIGRvdWJsZSBiZWZv
cmVGVEw7CiAgICAgCkBAIC05Miw2ICs5Niw4IEBAIHN0cnVjdCBQbGFuIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGUKICAgICBSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBj
YWxsYmFjazsKIAogcHJpdmF0ZToKKyAgICBib29sIHJlcG9ydENvbXBpbGVUaW1lcygpIGNvbnN0
OworICAgIAogICAgIGVudW0gQ29tcGlsYXRpb25QYXRoIHsgRmFpbFBhdGgsIERGR1BhdGgsIEZU
TFBhdGggfTsKICAgICBDb21waWxhdGlvblBhdGggY29tcGlsZUluVGhyZWFkSW1wbChMb25nTGl2
ZWRTdGF0ZSYpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FM
b3dlcmluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03
MywyMiArNzMsMzMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
CiAgICAgICAgIGNhc2UgUHV0QnlWYWw6Ci0gICAgICAgIGNhc2UgUHV0QnlWYWxEaXJlY3Q6Ci0g
ICAgICAgICAgICBsb3dlckJvdW5kc0NoZWNrKAotICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFy
QXJnQ2hpbGQobV9ub2RlLCAwKSwKLSAgICAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxk
KG1fbm9kZSwgMSksCi0gICAgICAgICAgICAgICAgbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUs
IDMpKTsKKyAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDogeworICAgICAgICAgICAgRWRnZSBi
YXNlID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDApOworICAgICAgICAgICAgRWRnZSBp
bmRleCA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKTsKKyAgICAgICAgICAgIEVkZ2Ug
c3RvcmFnZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAzKTsKKyAgICAgICAgICAgIGlm
IChsb3dlckJvdW5kc0NoZWNrKGJhc2UsIGluZGV4LCBzdG9yYWdlKSkKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1fbm9kZS0+YXJyYXlNb2Rl
KCkudHlwZWRBcnJheVR5cGUoKSAhPSBOb3RUeXBlZEFycmF5ICYmIG1fbm9kZS0+YXJyYXlNb2Rl
KCkuaXNPdXRPZkJvdW5kcygpKSB7CisgICAgICAgICAgICAgICAgTm9kZSogbGVuZ3RoID0gbV9p
bnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAgICAgICAgICAgbV9ub2RlSW5kZXgs
IFNwZWNJbnQzMiwgR2V0QXJyYXlMZW5ndGgsIG1fbm9kZS0+Y29kZU9yaWdpbiwKKyAgICAgICAg
ICAgICAgICAgICAgT3BJbmZvKG1fbm9kZS0+YXJyYXlNb2RlKCkuYXNXb3JkKCkpLCBiYXNlLCBz
dG9yYWdlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX2dyYXBoLnZhckFy
Z0NoaWxkKG1fbm9kZSwgNCkgPSBFZGdlKGxlbmd0aCwgS25vd25JbnQzMlVzZSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICB2b2lkIGxvd2VyQm91bmRzQ2hlY2soRWRnZSBi
YXNlLCBFZGdlIGluZGV4LCBFZGdlIHN0b3JhZ2UpCisgICAgYm9vbCBsb3dlckJvdW5kc0NoZWNr
KEVkZ2UgYmFzZSwgRWRnZSBpbmRleCwgRWRnZSBzdG9yYWdlKQogICAgIHsKICAgICAgICAgaWYg
KCFtX25vZGUtPmFycmF5TW9kZSgpLnBlcm1pdHNCb3VuZHNDaGVja0xvd2VyaW5nKCkpCi0gICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAg
ICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCkubGVuZ3RoTmVlZHNTdG9yYWdlKCkpCiAgICAg
ICAgICAgICBzdG9yYWdlID0gRWRnZSgpOwpAQCAtOTksNiArMTEwLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAgICAgICAgICAgIG1fbm9kZUluZGV4
LCBTcGVjSW50MzIsIENoZWNrSW5Cb3VuZHMsIG1fbm9kZS0+Y29kZU9yaWdpbiwKICAgICAgICAg
ICAgIGluZGV4LCBFZGdlKGxlbmd0aCwgS25vd25JbnQzMlVzZSkpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAgICAgCiAgICAgSW5zZXJ0aW9uU2V0IG1faW5zZXJ0aW9uU2V0OwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcy
LDcgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6ZmlsbEpTVmFsdWUoRWRnZSBlZAogdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBi
YXNlVGFnR1BST3JOb25lLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyByZXN1bHRUYWdH
UFIsIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBK
SVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxs
TW9kZSkKIHsKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9qaXQuY29k
ZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsCisgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVn
aXN0ZXJzKCksCiAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VUYWdHUFJPck5vbmUsIGJhc2VQYXls
b2FkR1BSKSwKICAgICAgICAgSlNWYWx1ZVJlZ3MocmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2Fk
R1BSKSwgc3BpbGxNb2RlICE9IE5lZWRUb1NwaWxsKTsKICAgICAKQEAgLTIwNCw3ICsyMDQsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPCiB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VQ
YXlsb2FkR1BSLCBHUFJSZWcgdmFsdWVUYWdHUFIsIEdQUlJlZyB2YWx1ZVBheWxvYWRHUFIsIEdQ
UlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBQdXRLaW5kIHB1dEtp
bmQsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0KQogewogICAgIEpJVFB1dEJ5SWRH
ZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNl
ZFJlZ2lzdGVycygpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwKKyAgICAgICAgbV9qaXQu
Y29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwKICAgICAgICAgSlNWYWx1
ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2VQYXlsb2FkR1BSKSwgSlNWYWx1ZVJlZ3ModmFsdWVUYWdH
UFIsIHZhbHVlUGF5bG9hZEdQUiksCiAgICAgICAgIHNjcmF0Y2hHUFIsIGZhbHNlLCBtX2ppdC5l
Y21hTW9kZUZvcihjb2RlT3JpZ2luKSwgcHV0S2luZCk7CiAgICAgCkBAIC02MzEsMTAgKzYzMSw5
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUKICAgICAKICAgICBp
bnQgbnVtQXJncyA9IG51bVBhc3NlZEFyZ3MgKyBkdW1teVRoaXNBcmd1bWVudDsKIAotICAgIG1f
aml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVl
RnJhbWVQYXlsb2FkU2xvdChudW1BcmdzLCBKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7Ci0gICAg
bV9qaXQuc3RvcmVQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lQ2Fs
bGVyRnJhbWUobnVtQXJncykpOwotICAgIG1faml0LnN0b3JlMzIoY2FsbGVlUGF5bG9hZEdQUiwg
Y2FsbGVlRnJhbWVQYXlsb2FkU2xvdChudW1BcmdzLCBKU1N0YWNrOjpDYWxsZWUpKTsKLSAgICBt
X2ppdC5zdG9yZTMyKGNhbGxlZVRhZ0dQUiwgY2FsbGVlRnJhbWVUYWdTbG90KG51bUFyZ3MsIEpT
U3RhY2s6OkNhbGxlZSkpOworICAgIG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChKU1N0YWNrOjpBcmd1bWVu
dENvdW50KSk7CisgICAgbV9qaXQuc3RvcmUzMihjYWxsZWVQYXlsb2FkR1BSLCBjYWxsZWVGcmFt
ZVBheWxvYWRTbG90KEpTU3RhY2s6OkNhbGxlZSkpOworICAgIG1faml0LnN0b3JlMzIoY2FsbGVl
VGFnR1BSLCBjYWxsZWVGcmFtZVRhZ1Nsb3QoSlNTdGFjazo6Q2FsbGVlKSk7CiAKICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7IGkrKykgewogICAgICAgICBFZGdlIGFyZ0Vk
Z2UgPSBtX2ppdC5ncmFwaCgpLm1fdmFyQXJnQ2hpbGRyZW5bbm9kZS0+Zmlyc3RDaGlsZCgpICsg
MSArIGldOwpAQCAtNjQzLDggKzY0Miw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxs
KE5vZGUqIG5vZGUKICAgICAgICAgR1BSUmVnIGFyZ1BheWxvYWRHUFIgPSBhcmcucGF5bG9hZEdQ
UigpOwogICAgICAgICB1c2UoYXJnRWRnZSk7CiAKLSAgICAgICAgbV9qaXQuc3RvcmUzMihhcmdU
YWdHUFIsIGNhbGxlZUFyZ3VtZW50VGFnU2xvdChudW1BcmdzLCBpICsgZHVtbXlUaGlzQXJndW1l
bnQpKTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMihhcmdQYXlsb2FkR1BSLCBjYWxsZWVBcmd1bWVu
dFBheWxvYWRTbG90KG51bUFyZ3MsIGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOworICAgICAgICBt
X2ppdC5zdG9yZTMyKGFyZ1RhZ0dQUiwgY2FsbGVlQXJndW1lbnRUYWdTbG90KGkgKyBkdW1teVRo
aXNBcmd1bWVudCkpOworICAgICAgICBtX2ppdC5zdG9yZTMyKGFyZ1BheWxvYWRHUFIsIGNhbGxl
ZUFyZ3VtZW50UGF5bG9hZFNsb3QoaSArIGR1bW15VGhpc0FyZ3VtZW50KSk7CiAgICAgfQogCiAg
ICAgZmx1c2hSZWdpc3RlcnMoKTsKQEAgLTY1OSwxMyArNjU4LDExIEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUKIAogICAgIG1faml0LmVtaXRTdG9yZUNvZGVPcmln
aW4obm9kZS0+Y29kZU9yaWdpbik7CiAgICAgCi0gICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0z
MihjYWxsZWVGcmFtZU9mZnNldChudW1BcmdzKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
KTsKLSAgICAKICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCBjYWxsZWVUYWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSkpOwogICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFuY2hQdHJXaXRoUGF0Y2goTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLCBjYWxsZWVQYXlsb2FkR1BSLCB0YXJnZXRUb0NoZWNrKSk7CiAg
ICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjYWxsZWVQYXlsb2FkR1BS
LCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZSkpLCByZXN1bHRQYXlsb2FkR1BS
KTsKLSAgICBtX2ppdC5zdG9yZVB0cihyZXN1bHRQYXlsb2FkR1BSLCBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90
PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKyBPQkpFQ1RfT0ZGU0VU
T0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgbV9qaXQu
c3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhdGlj
X2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4g
KyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpKTsK
KyAgICBtX2ppdC5zdG9yZVB0cihyZXN1bHRQYXlsb2FkR1BSLCBjYWxsZWVGcmFtZVBheWxvYWRT
bG90KEpTU3RhY2s6OlNjb3BlQ2hhaW4pKTsKKyAgICBtX2ppdC5zdG9yZVB0cihNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBjYWxsZWVGcmFtZVRhZ1Nsb3Qo
SlNTdGFjazo6U2NvcGVDaGFpbikpOwogCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgZmFzdENhbGwg
PSBtX2ppdC5uZWFyQ2FsbCgpOwogCkBAIC0zMDQ3LDEyICszMDQ0LDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAK
LSAgICAgICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgICAgIG1faml0LmVtaXRH
ZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6cmVnVDIpOwotICAgICAg
ICAvLyBSZXN0b3JlIG91ciBjYWxsZXIncyAiciIuCi0gICAgICAgIG1faml0LmVtaXRHZXRDYWxs
ZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIp
OwotICAgICAgICAvLyBSZXR1cm4uCi0gICAgICAgIG1faml0LnJlc3RvcmVSZXR1cm5BZGRyZXNz
QmVmb3JlUmV0dXJuKEdQUkluZm86OnJlZ1QyKTsKKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKICAgICAgICAgbV9qaXQucmV0KCk7CiAgICAgICAgIAogICAgICAgICBub1Jl
c3VsdChub2RlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkw
LDggKzE5MCw4IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbEpTVmFsdWUoRWRnZSAKIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBH
UFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJl
ciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSBz
cGlsbE1vZGUpCiB7CiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1faml0
LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLAotICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3Mo
cmVzdWx0R1BSKSwgc3BpbGxNb2RlICE9IE5lZWRUb1NwaWxsKTsKKyAgICAgICAgbV9qaXQuY29k
ZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQ
UiksCisgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdEdQUiksIHNwaWxsTW9kZSAhPSBOZWVkVG9T
cGlsbCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOwogICAgIAogICAgIEpJVENv
bXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CkBAIC0yMTAsOSArMjEwLDggQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlTwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2Fj
aGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcg
dmFsdWVHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBQ
dXRLaW5kIHB1dEtpbmQsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0KQogewogICAg
IEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29k
ZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwKLSAg
ICAgICAgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgc2NyYXRj
aEdQUiwgZmFsc2UsCi0gICAgICAgIG1faml0LmVjbWFNb2RlRm9yKGNvZGVPcmlnaW4pLCBwdXRL
aW5kKTsKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3Rl
cnMoKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksCisgICAgICAgIEpTVmFsdWVSZWdzKHZhbHVlR1BS
KSwgc2NyYXRjaEdQUiwgZmFsc2UsIG1faml0LmVjbWFNb2RlRm9yKGNvZGVPcmlnaW4pLCBwdXRL
aW5kKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CiAgICAgCiAgICAgSklUQ29t
cGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKQEAgLTY2Myw5ICs2NjIsOCBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBub2RlCiAgICAgCiAgICAgaW50IG51bUFyZ3MgPSBu
dW1QYXNzZWRBcmdzICsgZHVtbXlUaGlzQXJndW1lbnQ7CiAgICAgCi0gICAgbV9qaXQuc3RvcmUz
MihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxv
YWRTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKTsKLSAgICBtX2ppdC5zdG9y
ZTY0KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBjYWxsZWVGcmFtZUNhbGxlckZyYW1lKG51
bUFyZ3MpKTsKLSAgICBtX2ppdC5zdG9yZTY0KGNhbGxlZUdQUiwgY2FsbGVlRnJhbWVTbG90KG51
bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOworICAgIG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChKU1N0YWNr
OjpBcmd1bWVudENvdW50KSk7CisgICAgbV9qaXQuc3RvcmU2NChjYWxsZWVHUFIsIGNhbGxlZUZy
YW1lU2xvdChKU1N0YWNrOjpDYWxsZWUpKTsKICAgICAKICAgICBmb3IgKGludCBpID0gMDsgaSA8
IG51bVBhc3NlZEFyZ3M7IGkrKykgewogICAgICAgICBFZGdlIGFyZ0VkZ2UgPSBtX2ppdC5ncmFw
aCgpLm1fdmFyQXJnQ2hpbGRyZW5bbm9kZS0+Zmlyc3RDaGlsZCgpICsgMSArIGldOwpAQCAtNjcz
LDcgKzY3MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUKICAg
ICAgICAgR1BSUmVnIGFyZ0dQUiA9IGFyZy5ncHIoKTsKICAgICAgICAgdXNlKGFyZ0VkZ2UpOwog
ICAgICAgICAKLSAgICAgICAgbV9qaXQuc3RvcmU2NChhcmdHUFIsIGNhbGxlZUFyZ3VtZW50U2xv
dChudW1BcmdzLCBpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKKyAgICAgICAgbV9qaXQuc3RvcmU2
NChhcmdHUFIsIGNhbGxlZUFyZ3VtZW50U2xvdChpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKICAg
ICB9CiAKICAgICBmbHVzaFJlZ2lzdGVycygpOwpAQCAtNjgyLDIzICs2ODAsMjggQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZQogICAgIEdQUlJlZyByZXN1bHRHUFIg
PSByZXN1bHQuZ3ByKCk7CiAKICAgICBKSVRDb21waWxlcjo6RGF0YUxhYmVsUHRyIHRhcmdldFRv
Q2hlY2s7Ci0gICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dQYXRoOworICAgIEpJVENvbXBp
bGVyOjpKdW1wIHNsb3dQYXRoOwogCiAgICAgbV9qaXQuZW1pdFN0b3JlQ29kZU9yaWdpbihub2Rl
LT5jb2RlT3JpZ2luKTsKICAgICAKLSAgICBtX2ppdC5hZGRQdHIoVHJ1c3RlZEltbTMyKGNhbGxl
ZUZyYW1lT2Zmc2V0KG51bUFyZ3MpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAg
IAotICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFuY2hQdHJXaXRoUGF0Y2goTWFjcm9Bc3Nl
bWJsZXI6Ok5vdEVxdWFsLCBjYWxsZWVHUFIsIHRhcmdldFRvQ2hlY2ssIE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tUHRyKDApKSk7CisgICAgc2xvd1BhdGggPSBtX2ppdC5icmFuY2hQdHJXaXRo
UGF0Y2goTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBjYWxsZWVHUFIsIHRhcmdldFRvQ2hlY2ss
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKDApKTsKIAogICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2FsbGVlR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5j
dGlvbiwgbV9zY29wZSkpLCByZXN1bHRHUFIpOwotICAgIG1faml0LnN0b3JlNjQocmVzdWx0R1BS
LCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3Rh
dGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpTU3RhY2s6OlNjb3BlQ2hh
aW4pKTsKKyAgICBtX2ppdC5zdG9yZTY0KHJlc3VsdEdQUiwgY2FsbGVlRnJhbWVTbG90KEpTU3Rh
Y2s6OlNjb3BlQ2hhaW4pKTsKIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGZhc3RDYWxsID0gbV9q
aXQubmVhckNhbGwoKTsKLSAgICAKKwogICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBtX2pp
dC5qdW1wKCk7CiAgICAgCiAgICAgc2xvd1BhdGgubGluaygmbV9qaXQpOwogICAgIAorICAgIGlm
IChtX2ppdC5ncmFwaCgpLm1fcGxhbi53aWxsVHJ5VG9UaWVyVXApIHsKKyAgICAgICAgbV9qaXQu
YWRkMzIoCisgICAgICAgICAgICBUcnVzdGVkSW1tMzIoMSksCisgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6QWJzb2x1dGVBZGRyZXNzKAorICAgICAgICAgICAgICAgIG1faml0LmppdENvZGUo
KS0+c2xvd1BhdGhDYWxscy5iZWdpbigpICsgbV9qaXQuY3VycmVudEpTQ2FsbEluZGV4KCkpKTsK
KyAgICB9CisgICAgCiAgICAgbV9qaXQubW92ZShjYWxsZWVHUFIsIEdQUkluZm86OnJlZ1QwKTsg
Ly8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJlZ1QwCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgc2xv
d0NhbGwgPSBtX2ppdC5uZWFyQ2FsbCgpOwogICAgIApAQCAtMzIwMCw3ICszMjAzLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKICAgICAgICAgICAgICAgICBzbG93UGF0aENh
bGwoCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25BcnJheVB1
c2gsIE5vUmVzdWx0LCBzdG9yYWdlTGVuZ3RoR1BSLAorICAgICAgICAgICAgICAgICAgICBzbG93
UGF0aCwgdGhpcywgb3BlcmF0aW9uQXJyYXlQdXNoLCBzdG9yYWdlTGVuZ3RoR1BSLAogICAgICAg
ICAgICAgICAgICAgICB2YWx1ZUdQUiwgYmFzZUdQUikpOwogICAgICAgICAKICAgICAgICAgICAg
IGpzVmFsdWVSZXN1bHQoc3RvcmFnZUxlbmd0aEdQUiwgbm9kZSk7CkBAIC0zMjI0LDcgKzMyMjcs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAogICAgICAgICAgICAgICAgIHNs
b3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlv
bkFycmF5UHVzaERvdWJsZSwgTm9SZXN1bHQsIHN0b3JhZ2VMZW5ndGhHUFIsCisgICAgICAgICAg
ICAgICAgICAgIHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25BcnJheVB1c2hEb3VibGUsIHN0b3Jh
Z2VMZW5ndGhHUFIsCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlRlBSLCBiYXNlR1BSKSk7CiAg
ICAgICAgIAogICAgICAgICAgICAganNWYWx1ZVJlc3VsdChzdG9yYWdlTGVuZ3RoR1BSLCBub2Rl
KTsKQEAgLTMzODgsMTIgKzMzOTEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5v
ZGUqIG5vZGUpCiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgIG1faml0Lm1vdmUob3AxLmdwcigpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
Uik7CiAKLSAgICAgICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgICAgIG1faml0
LmVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6cmVnVDEpOwot
ICAgICAgICAvLyBSZXN0b3JlIG91ciBjYWxsZXIncyAiciIuCi0gICAgICAgIG1faml0LmVtaXRH
ZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIpOwotICAgICAgICAvLyBSZXR1cm4uCi0gICAgICAgIG1faml0LnJlc3RvcmVSZXR1cm5B
ZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86OnJlZ1QxKTsKKyAgICAgICAgbV9qaXQuZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgbV9qaXQucmV0KCk7CiAgICAgICAgIAogICAgICAg
ICBub1Jlc3VsdChub2RlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM0
Niw2ICsxMzQ2LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUN1cnJlbnRCbG9jawog
ICAgIG1fc3RyZWFtLT5hcHBlbmRBbmRMb2coVmFyaWFibGVFdmVudDo6cmVzZXQoKSk7CiAgICAg
CiAgICAgbV9qaXQuaml0QXNzZXJ0SGFzVmFsaWRDYWxsRnJhbWUoKTsKKyAgICBtX2ppdC5qaXRB
c3NlcnRUYWdzSW5QbGFjZSgpOworICAgIG1faml0LmppdEFzc2VydEFyZ3VtZW50Q291bnRTYW5l
KCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYmxvY2stPnZhcmlhYmxlc0F0SGVh
ZC5udW1iZXJPZkFyZ3VtZW50cygpOyArK2kpIHsKICAgICAgICAgbV9zdHJlYW0tPmFwcGVuZEFu
ZExvZygKQEAgLTE1MzIsMTAgKzE1MzQsNDAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tB
cmd1bWVudFR5cGVzKAogICAgIG1faXNDaGVja2luZ0FyZ3VtZW50VHlwZXMgPSBmYWxzZTsKIH0K
IAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6cHJlcGFyZUpJVENvZGVGb3JUaWVyVXAoKQoreworICAg
IHVuc2lnbmVkIG51bWJlck9mQ2FsbHMgPSAwOworICAgIAorICAgIGZvciAoQmxvY2tJbmRleCBi
bG9ja0luZGV4ID0gbV9qaXQuZ3JhcGgoKS5udW1CbG9ja3MoKTsgYmxvY2tJbmRleC0tOykgewor
ICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1faml0LmdyYXBoKCkuYmxvY2soYmxvY2tJbmRl
eCk7CisgICAgICAgIGlmICghYmxvY2spCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
CisgICAgICAgIGZvciAodW5zaWduZWQgbm9kZUluZGV4ID0gYmxvY2stPnNpemUoKTsgbm9kZUlu
ZGV4LS07KSB7CisgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRleCk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgICAg
ICAgICAgY2FzZSBDYWxsOgorICAgICAgICAgICAgY2FzZSBDb25zdHJ1Y3Q6CisgICAgICAgICAg
ICAgICAgbnVtYmVyT2ZDYWxscysrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBtX2ppdC5qaXRDb2RlKCkt
PnNsb3dQYXRoQ2FsbHMuZmlsbCgwLCBudW1iZXJPZkNhbGxzKTsKK30KKwogYm9vbCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSgpCiB7CiAgICAgY2hlY2tBcmd1bWVudFR5cGVzKCk7Ci0KKyAgICAK
KyAgICBpZiAobV9qaXQuZ3JhcGgoKS5tX3BsYW4ud2lsbFRyeVRvVGllclVwKQorICAgICAgICBw
cmVwYXJlSklUQ29kZUZvclRpZXJVcCgpOworICAgIAogICAgIEFTU0VSVCghbV9jdXJyZW50Tm9k
ZSk7CiAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSAwOyBibG9ja0luZGV4IDwgbV9q
aXQuZ3JhcGgoKS5udW1CbG9ja3MoKTsgKytibG9ja0luZGV4KSB7CiAgICAgICAgIG1faml0LnNl
dEZvckJsb2NrSW5kZXgoYmxvY2tJbmRleCk7CkBAIC0yMzkwLDYgKzI0MjIsMTAgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySQogICAgIEFTU0VSVCh2YWx1ZUdQUiAh
PSBiYXNlKTsKICAgICBBU1NFUlQodmFsdWVHUFIgIT0gc3RvcmFnZVJlZyk7CiAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRz
KG5vZGUsIGJhc2UsIHByb3BlcnR5KTsKKyAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJv
dW5kcygpICYmIG91dE9mQm91bmRzLmlzU2V0KCkpIHsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdXRPZkJvdW5kcywgSlNWYWx1ZVNvdXJjZSgpLCAwLCBvdXRPZkJvdW5kcyk7CisgICAgICAg
IG91dE9mQm91bmRzID0gTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKKyAgICB9CiAKICAgICBzd2l0
Y2ggKGVsZW1lbnRTaXplKHR5cGUpKSB7CiAgICAgY2FzZSAxOgpAQCAtMjQ2NSw2ICsyNTAxLDEw
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckYKICAgICBBU1NFUlRf
VU5VU0VEKGJhc2VVc2UsIG5vZGUtPmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1faml0Lmdy
YXBoKCksIG5vZGUsIG1fc3RhdGUuZm9yTm9kZShiYXNlVXNlKSkpOwogICAgIAogICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIG91dE9mQm91bmRzID0ganVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5k
cyhub2RlLCBiYXNlLCBwcm9wZXJ0eSk7CisgICAgaWYgKG5vZGUtPmFycmF5TW9kZSgpLmlzSW5C
b3VuZHMoKSAmJiBvdXRPZkJvdW5kcy5pc1NldCgpKSB7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hl
Y2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVTb3VyY2UoKSwgMCwgb3V0T2ZCb3VuZHMpOworICAgICAg
ICBvdXRPZkJvdW5kcyA9IE1hY3JvQXNzZW1ibGVyOjpKdW1wKCk7CisgICAgfQogICAgIAogICAg
IHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICBjYXNlIDQ6IHsKQEAgLTM0MjksNiAr
MzQ2OSwxNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNb2QoTm9kCiAgICAg
ICAgIEdQUlJlZyBxdW90aWVudFRoZW5SZW1haW5kZXJHUFIgPSBxdW90aWVudFRoZW5SZW1haW5k
ZXIuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyBtdWx0aXBseUFuc3dlckdQUiA9IG11bHRpcGx5QW5z
d2VyLmdwcigpOwogCisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBkb25lOworICAgICAg
ICAKKyAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3cobm9kZS0+YXJpdGhNb2RlKCkpKQor
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwg
bV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpaZXJvLCBkaXZpc29yR1BSKSk7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgZGVub21pbmF0b3JOb3Ra
ZXJvID0gbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpOb25aZXJvLCBkaXZpc29yR1BS
KTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUoZGl2aXNvckdQUiwgcXVvdGllbnRUaGVuUmVtYWlu
ZGVyR1BSKTsKKyAgICAgICAgICAgIGRvbmUuYXBwZW5kKG1faml0Lmp1bXAoKSk7CisgICAgICAg
ICAgICBkZW5vbWluYXRvck5vdFplcm8ubGluaygmbV9qaXQpOworICAgICAgICB9CisKICAgICAg
ICAgbV9qaXQuYXNzZW1ibGVyKCkuc2RpdihxdW90aWVudFRoZW5SZW1haW5kZXJHUFIsIGRpdmlk
ZW5kR1BSLCBkaXZpc29yR1BSKTsKICAgICAgICAgLy8gRklYTUU6IEl0IHNlZW1zIGxpa2UgdGhl
cmUgYXJlIGNhc2VzIHdoZXJlIHdlIGRvbid0IG5lZWQgdGhpcz8gV2hhdCBpZiB3ZSBoYXZlCiAg
ICAgICAgIC8vIGFyaXRoTW9kZSgpID09IEFyaXRoOjpVbmNoZWNrZWQ/CkBAIC0zNDQ1LDYgKzM0
OTYsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNb2QoTm9kCiAgICAgICAg
ICAgICBudW1lcmF0b3JQb3NpdGl2ZS5saW5rKCZtX2ppdCk7CiAgICAgICAgIH0KIAorICAgICAg
ICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAgCiAgICAgICAgIGludDMyUmVzdWx0KHF1b3Rp
ZW50VGhlblJlbWFpbmRlckdQUiwgbm9kZSk7CiAjZWxpZiBDUFUoQVJNNjQpCiAgICAgICAgIEdQ
UlRlbXBvcmFyeSB0ZW1wKHRoaXMpOwpAQCAtMzQ1NSw2ICszNTA4LDE3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2QKICAgICAgICAgR1BSUmVnIHF1b3RpZW50VGhl
blJlbWFpbmRlckdQUiA9IHF1b3RpZW50VGhlblJlbWFpbmRlci5ncHIoKTsKICAgICAgICAgR1BS
UmVnIG11bHRpcGx5QW5zd2VyR1BSID0gbXVsdGlwbHlBbnN3ZXIuZ3ByKCk7CiAKKyAgICAgICAg
SklUQ29tcGlsZXI6Okp1bXBMaXN0IGRvbmU7CisgICAgCisgICAgICAgIGlmIChzaG91bGRDaGVj
a092ZXJmbG93KG5vZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hl
Y2soT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5jaFRlc3QzMihKSVRDb21w
aWxlcjo6WmVybywgZGl2aXNvckdQUikpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEpJ
VENvbXBpbGVyOjpKdW1wIGRlbm9taW5hdG9yTm90WmVybyA9IG1faml0LmJyYW5jaFRlc3QzMihK
SVRDb21waWxlcjo6Tm9uWmVybywgZGl2aXNvckdQUik7CisgICAgICAgICAgICBtX2ppdC5tb3Zl
KGRpdmlzb3JHUFIsIHF1b3RpZW50VGhlblJlbWFpbmRlckdQUik7CisgICAgICAgICAgICBkb25l
LmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgICAgICAgICAgZGVub21pbmF0b3JOb3RaZXJvLmxp
bmsoJm1faml0KTsKKyAgICAgICAgfQorCiAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLnNkaXY8
MzI+KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgZGl2aWRlbmRHUFIsIGRpdmlzb3JHUFIpOwog
ICAgICAgICAvLyBGSVhNRTogSXQgc2VlbXMgbGlrZSB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgd2Ug
ZG9uJ3QgbmVlZCB0aGlzPyBXaGF0IGlmIHdlIGhhdmUKICAgICAgICAgLy8gYXJpdGhNb2RlKCkg
PT0gQXJpdGg6OlVuY2hlY2tlZD8KQEAgLTM0NzEsNiArMzUzNSw4IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2QKICAgICAgICAgICAgIG51bWVyYXRvclBvc2l0aXZl
LmxpbmsoJm1faml0KTsKICAgICAgICAgfQogCisgICAgICAgIGRvbmUubGluaygmbV9qaXQpOwor
CiAgICAgICAgIGludDMyUmVzdWx0KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgbm9kZSk7CiAj
ZWxzZSAvLyBub3QgYXJjaGl0ZWN0dXJlIHRoYXQgY2FuIGRvIGludGVnZXIgZGl2aXNpb24KICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTE5LDYgKzExOSw5IEBAIHB1YmxpYzoKICAgICB+U3BlY3VsYXRpdmVKSVQoKTsK
IAogICAgIGJvb2wgY29tcGlsZSgpOworICAgIAorICAgIHZvaWQgcHJlcGFyZUpJVENvZGVGb3JU
aWVyVXAoKTsKKyAgICAKICAgICB2b2lkIGNyZWF0ZU9TUkVudHJpZXMoKTsKICAgICB2b2lkIGxp
bmtPU1JFbnRyaWVzKExpbmtCdWZmZXImKTsKIApAQCAtNzQyLDQ0ICs3NDUsNDUgQEAgcHVibGlj
OgogICAgIAogICAgIHB0cmRpZmZfdCBjYWxsZWVGcmFtZU9mZnNldChpbnQgbnVtQXJncykKICAg
ICB7Ci0gICAgICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2ppdC5ncmFwaCgp
Lm1fbmV4dE1hY2hpbmVMb2NhbCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyBudW1B
cmdzKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiB2aXJ0dWFs
UmVnaXN0ZXJGb3JMb2NhbChtX2ppdC5ncmFwaCgpLm1fbmV4dE1hY2hpbmVMb2NhbCAtIDEgKyBK
U1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplICsgbnVtQXJncykub2Zmc2V0KCkgKiBzaXplb2Yo
UmVnaXN0ZXIpOwogICAgIH0KICAgICAKICAgICAvLyBBY2Nlc3MgdG8gb3VyIGZpeGVkIGNhbGxl
ZSBDYWxsRnJhbWUuCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVTbG90
KGludCBudW1BcmdzLCBpbnQgc2xvdCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxs
ZWVGcmFtZVNsb3QoaW50IHNsb3QpCiAgICAgewotICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lT2Zmc2V0
KG51bUFyZ3MpICsgc2l6ZW9mKFJlZ2lzdGVyKSAqIHNsb3QpOworICAgICAgICBBU1NFUlQoc2xv
dCA+PSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSk7CisgICAgICAgIHJldHVybiBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IHNpemVvZihSZWdpc3RlcikgKiAoc2xvdCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXpl
KSk7CiAgICAgfQogCiAgICAgLy8gQWNjZXNzIHRvIG91ciBmaXhlZCBjYWxsZWUgQ2FsbEZyYW1l
LgotICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50U2xvdChpbnQgbnVt
QXJncywgaW50IGFyZ3VtZW50KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFy
Z3VtZW50U2xvdChpbnQgYXJndW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbGVlRnJh
bWVTbG90KG51bUFyZ3MsIHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGFyZ3VtZW50KS5vZmZz
ZXQoKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QodmlydHVhbFJlZ2lzdGVyRm9y
QXJndW1lbnQoYXJndW1lbnQpLm9mZnNldCgpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyBjYWxsZWVGcmFtZVRhZ1Nsb3QoaW50IG51bUFyZ3MsIGludCBzbG90KQorICAg
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lVGFnU2xvdChpbnQgc2xvdCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QobnVtQXJncywgc2xvdCkud2l0aE9m
ZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykp
OworICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KHNsb3QpLndpdGhPZmZzZXQoT0JKRUNU
X09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKTsKICAgICB9CiAK
LSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVBheWxvYWRTbG90KGludCBu
dW1BcmdzLCBpbnQgc2xvdCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFt
ZVBheWxvYWRTbG90KGludCBzbG90KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1l
U2xvdChudW1BcmdzLCBzbG90KS53aXRoT2Zmc2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFs
dWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpOworICAgICAgICByZXR1cm4gY2FsbGVlRnJh
bWVTbG90KHNsb3QpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2Ny
aXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CiAgICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MgY2FsbGVlQXJndW1lbnRUYWdTbG90KGludCBudW1BcmdzLCBpbnQgYXJndW1lbnQpCisg
ICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRUYWdTbG90KGludCBhcmd1
bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywg
YXJndW1lbnQpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0
b3IsIGFzQml0cy50YWcpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChhcmd1
bWVudCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnRhZykpOwogICAgIH0KIAotICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxl
ZUFyZ3VtZW50UGF5bG9hZFNsb3QoaW50IG51bUFyZ3MsIGludCBhcmd1bWVudCkKKyAgICBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVBcmd1bWVudFBheWxvYWRTbG90KGludCBhcmd1bWVu
dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywgYXJn
dW1lbnQpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3Is
IGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QoYXJn
dW1lbnQpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3Is
IGFzQml0cy5wYXlsb2FkKSk7CiAgICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mg
Y2FsbGVlRnJhbWVDYWxsZXJGcmFtZShpbnQgbnVtQXJncykKKyAgICBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyBjYWxsZWVGcmFtZUNhbGxlckZyYW1lKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBj
YWxsZWVGcmFtZVNsb3QobnVtQXJncywgMCkud2l0aE9mZnNldChDYWxsRnJhbWU6OmNhbGxlckZy
YW1lT2Zmc2V0KCkpOworICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KDApLndpdGhPZmZz
ZXQoQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKTsKICAgICB9CiAKICAgICB2b2lkIGVt
aXRDYWxsKE5vZGUqKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGllclVw
Q2hlY2tJbmplY3Rpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBo
YXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDksMjcgKzQ5LDU5IEBAIHB1YmxpYzoKICAgICAgICAg
CiAgICAgICAgIGlmICghT3B0aW9uczo6dXNlRXhwZXJpbWVudGFsRlRMKCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KKyAgICAgICAgCisgICAgICAgIGlmIChtX2dyYXBoLm1fcHJvZmls
ZWRCbG9jay0+bV9kaWRGYWlsRlRMQ29tcGlsYXRpb24pCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAgICAgICAgIEZUTDo6Q2FwYWJpbGl0
eUxldmVsIGxldmVsID0gRlRMOjpjYW5Db21waWxlKG1fZ3JhcGgpOwogICAgICAgICBpZiAobGV2
ZWwgPT0gRlRMOjpDYW5ub3RDb21waWxlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAKKyAgICAgICAgaWYgKCFPcHRpb25zOjplbmFibGVPU1JFbnRyeVRvRlRMKCkpCisgICAg
ICAgICAgICBsZXZlbCA9IEZUTDo6Q2FuQ29tcGlsZTsKKyAgICAgICAgCiAgICAgICAgIEluc2Vy
dGlvblNldCBpbnNlcnRpb25TZXQobV9ncmFwaCk7CiAgICAgICAgIGZvciAoQmxvY2tJbmRleCBi
bG9ja0luZGV4ID0gbV9ncmFwaC5udW1CbG9ja3MoKTsgYmxvY2tJbmRleC0tOykgewogICAgICAg
ICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSBtX2dyYXBoLmJsb2NrKGJsb2NrSW5kZXgpOwogICAg
ICAgICAgICAgaWYgKCFibG9jaykKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIAotICAgICAgICAgICAgaWYgKGJsb2NrLT5hdCgwKS0+b3AoKSA9PSBMb29wSGludCkgewot
ICAgICAgICAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IGJsb2NrLT5hdCgwKS0+Y29k
ZU9yaWdpbjsKLSAgICAgICAgICAgICAgICBOb2RlVHlwZSBub2RlVHlwZTsKLSAgICAgICAgICAg
ICAgICBpZiAobGV2ZWwgPT0gRlRMOjpDYW5Db21waWxlQW5kT1NSRW50ZXIgJiYgIWNvZGVPcmln
aW4uaW5saW5lQ2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGVUeXBlID0gQ2hl
Y2tUaWVyVXBBbmRPU1JFbnRlcjsKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQo
YmxvY2stPmJ5dGVjb2RlQmVnaW4gPT0gY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKLSAgICAg
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgbm9kZVR5cGUgPSBDaGVja1Rp
ZXJVcEluTG9vcDsKLSAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgxLCBT
cGVjTm9uZSwgbm9kZVR5cGUsIGNvZGVPcmlnaW4pOworICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9jay0+c2l6ZSgpOyArK25vZGVJbmRleCkg
eworICAgICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsKKyAg
ICAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSAhPSBMb29wSGludCkKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gV2Ug
b25seSBwdXQgT1NSIGNoZWNrcyBmb3IgdGhlIGZpcnN0IExvb3BIaW50IGluIHRoZSBibG9jay4g
Tm90ZSB0aGF0CisgICAgICAgICAgICAgICAgLy8gbW9yZSB0aGFuIG9uZSBMb29wSGludCBjb3Vs
ZCBoYXBwZW4gaW4gY2FzZXMgd2hlcmUgd2UgZGlkIGEgbG90IG9mIENGRworICAgICAgICAgICAg
ICAgIC8vIHNpbXBsaWZpY2F0aW9uIGluIHRoZSBieXRlY29kZSBwYXJzZXIsIGJ1dCBpdCBzaG91
bGQgYmUgdmVyeSByYXJlLgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIENvZGVP
cmlnaW4gY29kZU9yaWdpbiA9IG5vZGUtPmNvZGVPcmlnaW47CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgaWYgKGxldmVsICE9IEZUTDo6Q2FuQ29tcGlsZUFuZE9TUkVudGVyIHx8
IGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGluc2Vy
dGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUluZGV4ICsg
MSwgU3BlY05vbmUsIENoZWNrVGllclVwSW5Mb29wLCBjb2RlT3JpZ2luKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIGJvb2wgaXNBdFRvcCA9IHRydWU7CisgICAgICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBzdWJOb2RlSW5kZXggPSBub2RlSW5kZXg7IHN1Yk5vZGVJbmRleC0tOykgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoIWJsb2NrLT5hdChzdWJOb2RlSW5kZXgpLT5pc1NlbWFudGlj
YWxseVNraXBwYWJsZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpc0F0VG9wID0gZmFs
c2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBp
ZiAoIWlzQXRUb3ApIHsKKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5v
ZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXggKyAxLCBTcGVjTm9uZSwgQ2hl
Y2tUaWVyVXBJbkxvb3AsIGNvZGVPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQoYmxvY2stPmJ5dGVjb2RlQmVnaW4gPT0gY29kZU9yaWdpbi5ieXRlY29kZUlu
ZGV4KTsKKyAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAg
ICAgICAgICAgICAgbm9kZUluZGV4ICsgMSwgU3BlY05vbmUsIENoZWNrVGllclVwQW5kT1NSRW50
ZXIsIGNvZGVPcmlnaW4pOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS0+b3AoKSA9PSBSZXR1
cm4pIHsKQEAgLTgwLDYgKzExMiw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGluc2VydGlvblNl
dC5leGVjdXRlKGJsb2NrKTsKICAgICAgICAgfQogICAgICAgICAKKyAgICAgICAgbV9ncmFwaC5t
X3BsYW4ud2lsbFRyeVRvVGllclVwID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZWxz
ZSAvLyBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDYgKzE4MiwxOCBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBWX0VRVUFMKChub2RlKSwgbm9kZS0+cmVm
Q291bnQoKSwgMSk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwIDsgaSA8IGJsb2NrLT5zaXplKCkgLSAxOyArK2kpIHsKKyAgICAgICAg
ICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KGkpOworICAgICAgICAgICAgICAgIFZBTElE
QVRFKChub2RlKSwgIW5vZGUtPmlzVGVybWluYWwoKSk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKTsg
KytpKSB7CisgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChpKTsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+aGFzU3RydWN0dXJlKCkpCisg
ICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwgISFub2RlLT5zdHJ1Y3R1cmUoKSk7
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN3aXRjaCAobV9n
cmFwaC5tX2Zvcm0pIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xp
c3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xp
c3QuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1dvcmtsaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYxLDIzICsyNjEsNTIgQEAgdm9pZCBX
b3JrbGlzdDo6dGhyZWFkRnVuY3Rpb24odm9pZCogYXJndQogICAgIHN0YXRpY19jYXN0PFdvcmts
aXN0Kj4oYXJndW1lbnQpLT5ydW5UaHJlYWQoKTsKIH0KIAotc3RhdGljIFdvcmtsaXN0KiB0aGVH
bG9iYWxXb3JrbGlzdDsKK3N0YXRpYyBXb3JrbGlzdCogdGhlR2xvYmFsREZHV29ya2xpc3Q7CiAK
LVdvcmtsaXN0KiBnbG9iYWxXb3JrbGlzdCgpCitXb3JrbGlzdCogZW5zdXJlR2xvYmFsREZHV29y
a2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29y
a2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xp
c3RPbmNlRmxhZywgW10gewotICAgICAgICB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHM7CisgICAg
ICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0gV29ya2xpc3Q6OmNyZWF0ZShPcHRpb25zOjpudW1i
ZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgfSk7CisgICAgcmV0dXJu
IHRoZUdsb2JhbERGR1dvcmtsaXN0OworfQogCi0gICAgICAgIGlmIChPcHRpb25zOjp1c2VFeHBl
cmltZW50YWxGVEwoKSkKLSAgICAgICAgICAgIG51bWJlck9mVGhyZWFkcyA9IDE7IC8vIFdlIGRv
bid0IHlldCB1c2UgTExWTSBpbiBhIHRocmVhZC1zYWZlIHdheS4KLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgbnVtYmVyT2ZUaHJlYWRzID0gT3B0aW9uczo6bnVtYmVyT2ZDb21waWxlclRocmVh
ZHMoKTsKK1dvcmtsaXN0KiBleGlzdGluZ0dsb2JhbERGR1dvcmtsaXN0T3JOdWxsKCkKK3sKKyAg
ICByZXR1cm4gdGhlR2xvYmFsREZHV29ya2xpc3Q7Cit9CiAKLSAgICAgICAgdGhlR2xvYmFsV29y
a2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKG51bWJlck9mVGhyZWFkcykubGVha1JlZigpOworc3Rh
dGljIFdvcmtsaXN0KiB0aGVHbG9iYWxGVExXb3JrbGlzdDsKKworV29ya2xpc3QqIGVuc3VyZUds
b2JhbEZUTFdvcmtsaXN0KCkKK3sKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6
ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUds
b2JhbFdvcmtsaXN0T25jZUZsYWcsIFtdIHsKKyAgICAgICAgdGhlR2xvYmFsRlRMV29ya2xpc3Qg
PSBXb3JrbGlzdDo6Y3JlYXRlKE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCkp
LmxlYWtSZWYoKTsKICAgICB9KTsKKyAgICByZXR1cm4gdGhlR2xvYmFsRlRMV29ya2xpc3Q7Cit9
CisKK1dvcmtsaXN0KiBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkKK3sKKyAgICBy
ZXR1cm4gdGhlR2xvYmFsRlRMV29ya2xpc3Q7Cit9CiAKLSAgICByZXR1cm4gdGhlR2xvYmFsV29y
a2xpc3Q7CitXb3JrbGlzdCogZW5zdXJlR2xvYmFsV29ya2xpc3RGb3IoQ29tcGlsYXRpb25Nb2Rl
IG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBJbnZhbGlkQ29tcGlsYXRp
b25Nb2RlOgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm4gMDsKKyAgICBjYXNlIERGR01vZGU6CisgICAgICAgIHJldHVybiBlbnN1cmVHbG9iYWxE
RkdXb3JrbGlzdCgpOworICAgIGNhc2UgRlRMTW9kZToKKyAgICBjYXNlIEZUTEZvck9TUkVudHJ5
TW9kZToKKyAgICAgICAgcmV0dXJuIGVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KCk7CisgICAgfQor
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHV29ya2xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1dvcmtsaXN0LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHV29ya2xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsMTAgKzk1LDE1IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9udW1iZXJPZkFjdGl2ZVRocmVhZHM7CiB9OwogCi0vLyBGb3Ig
bm93IHdlIHVzZSBhIHNpbmdsZSBnbG9iYWwgd29ya2xpc3QuIEl0J3Mgbm90IGNsZWFyIHRoYXQg
dGhpcwotLy8gaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvLCBidXQgaXQgaXMgd2hhdCB3ZSBkbywg
Zm9yIG5vdy4gVGhpcyBmdW5jdGlvbgotLy8gd2lsbCBsYXppbHkgY3JlYXRlIG9uZSB3aGVuIGl0
J3MgbmVlZGVkLgotV29ya2xpc3QqIGdsb2JhbFdvcmtsaXN0KCk7CisvLyBGb3IgREZHTW9kZSBj
b21waWxhdGlvbnMuCitXb3JrbGlzdCogZW5zdXJlR2xvYmFsREZHV29ya2xpc3QoKTsKK1dvcmts
aXN0KiBleGlzdGluZ0dsb2JhbERGR1dvcmtsaXN0T3JOdWxsKCk7CisKKy8vIEZvciBGVExNb2Rl
IGFuZCBGVExGb3JPU1JFbnRyeU1vZGUgY29tcGlsYXRpb25zLgorV29ya2xpc3QqIGVuc3VyZUds
b2JhbEZUTFdvcmtsaXN0KCk7CitXb3JrbGlzdCogZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9y
TnVsbCgpOworCitXb3JrbGlzdCogZW5zdXJlR2xvYmFsV29ya2xpc3RGb3IoQ29tcGlsYXRpb25N
b2RlKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHAJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIv
QVJNNjQvQTY0RE9wY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDggQEAgc3Ry
dWN0IE9wY29kZUdyb3VwSW5pdGlhbGl6ZXIgewogeyBncm91cEluZGV4LCBncm91cENsYXNzOjpt
YXNrLCBncm91cENsYXNzOjpwYXR0ZXJuLCBncm91cENsYXNzOjpmb3JtYXQgfQogCiBzdGF0aWMg
T3Bjb2RlR3JvdXBJbml0aWFsaXplciBvcGNvZGVHcm91cExpc3RbXSA9IHsKKyAgICBPUENPREVf
R1JPVVBfRU5UUlkoMHgwOCwgQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciksCisgICAg
T1BDT0RFX0dST1VQX0VOVFJZKDB4MDksIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIp
LAogICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgweDBhLCBBNjRET3Bjb2RlTG9naWNhbFNoaWZ0ZWRS
ZWdpc3RlciksCiAgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MGIsIEE2NERPcGNvZGVBZGRTdWJ0
cmFjdEV4dGVuZGVkUmVnaXN0ZXIpLAogICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgweDBiLCBBNjRE
T3Bjb2RlQWRkU3VidHJhY3RTaGlmdGVkUmVnaXN0ZXIpLApAQCAtMTcyLDYgKzE3NCwxMSBAQCBj
b25zdCBjaGFyKiBBNjRET3Bjb2RlOjpmb3JtYXQoKQogCiB2b2lkIEE2NERPcGNvZGU6OmFwcGVu
ZFJlZ2lzdGVyTmFtZSh1bnNpZ25lZCByZWdpc3Rlck51bWJlciwgYm9vbCBpczY0Qml0KQogewor
ICAgIGlmIChyZWdpc3Rlck51bWJlciA9PSAyOSkgeworICAgICAgICBidWZmZXJQcmludGYoaXM2
NEJpdCA/ICJmcCIgOiAid2ZwIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAo
cmVnaXN0ZXJOdW1iZXIgPT0gMzApIHsKICAgICAgICAgYnVmZmVyUHJpbnRmKGlzNjRCaXQgPyAi
bHIiIDogIndsciIpOwogICAgICAgICByZXR1cm47CkBAIC05MzksNiArOTQ2LDYzIEBAIGNvbnN0
IGNoYXIqIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3Rlck8KICAgICByZXR1cm4gbV9mb3JtYXRC
dWZmZXI7CiB9CiAKK2NvbnN0IGNoYXIqIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6
Om9wTmFtZSgpCit7CisgICAgaWYgKCF2Qml0KCkgJiYgbEJpdCgpICYmIHNpemUoKSA9PSAweDEp
CisgICAgICAgIHJldHVybiAibGRwc3ciOworICAgIGlmIChsQml0KCkpCisgICAgICAgIHJldHVy
biAibGRwIjsKKyAgICByZXR1cm4gInN0cCI7Cit9CisKK2NvbnN0IGNoYXIqIEE2NERPcGNvZGVM
b2FkU3RvcmVSZWdpc3RlclBhaXI6OmZvcm1hdCgpCit7CisgICAgY29uc3QgY2hhciogdGhpc09w
TmFtZSA9IG9wTmFtZSgpOworICAgIAorICAgIGlmIChzaXplKCkgPT0gMHgzKQorICAgICAgICBy
ZXR1cm4gQTY0RE9wY29kZTo6Zm9ybWF0KCk7CisKKyAgICBpZiAoKG9mZnNldE1vZGUoKSA8IDB4
MSkgfHwgKG9mZnNldE1vZGUoKSA+IDB4MykpCisgICAgICAgIHJldHVybiBBNjRET3Bjb2RlOjpm
b3JtYXQoKTsKKworICAgIGlmICgob2Zmc2V0TW9kZSgpID09IDB4MSkgJiYgIXZCaXQoKSAmJiAh
bEJpdCgpKQorICAgICAgICByZXR1cm4gQTY0RE9wY29kZTo6Zm9ybWF0KCk7CisKKyAgICBhcHBl
bmRJbnN0cnVjdGlvbk5hbWUodGhpc09wTmFtZSk7CisgICAgdW5zaWduZWQgb2Zmc2V0U2hpZnQ7
CisgICAgaWYgKHZCaXQoKSkgeworICAgICAgICBhcHBlbmRGUFJlZ2lzdGVyTmFtZShydCgpLCBz
aXplKCkpOworICAgICAgICBhcHBlbmRTZXBhcmF0b3IoKTsKKyAgICAgICAgYXBwZW5kRlBSZWdp
c3Rlck5hbWUocnQyKCksIHNpemUoKSk7CisgICAgICAgIG9mZnNldFNoaWZ0ID0gc2l6ZSgpICsg
MjsKKyAgICB9IGVsc2UgeworICAgICAgICBhcHBlbmRSZWdpc3Rlck5hbWUocnQoKSwgaXM2NEJp
dCgpKTsKKyAgICAgICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIGFwcGVuZFJlZ2lzdGVy
TmFtZShydDIoKSwgaXM2NEJpdCgpKTsKKyAgICAgICAgb2Zmc2V0U2hpZnQgPSAoc2l6ZSgpID4+
IDEpICsgMjsKKyAgICB9CisKKyAgICBhcHBlbmRTZXBhcmF0b3IoKTsKKyAgICBhcHBlbmRDaGFy
YWN0ZXIoJ1snKTsKKyAgICBhcHBlbmRTUE9yUmVnaXN0ZXJOYW1lKHJuKCkpOworCisgICAgaW50
IG9mZnNldCA9IGltbWVkaWF0ZTcoKSA8PCBvZmZzZXRTaGlmdDsKKworICAgIGlmIChvZmZzZXRN
b2RlKCkgPT0gMSkgeworICAgICAgICBhcHBlbmRDaGFyYWN0ZXIoJ10nKTsKKyAgICAgICAgYXBw
ZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIGFwcGVuZFNpZ25lZEltbWVkaWF0ZShvZmZzZXQpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIGFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICBhcHBlbmRT
aWduZWRJbW1lZGlhdGUob2Zmc2V0KTsKKyAgICAgICAgYXBwZW5kQ2hhcmFjdGVyKCddJyk7Cisg
ICAgICAgIGlmIChvZmZzZXRNb2RlKCkgPT0gMHgzKQorICAgICAgICAgICAgYXBwZW5kQ2hhcmFj
dGVyKCchJyk7CisgICAgfQorCisgICAgcmV0dXJuIG1fZm9ybWF0QnVmZmVyOworfQorCiBjb25z
dCBjaGFyKiBBNjRET3Bjb2RlTG9hZFN0b3JlVW5zaWduZWRJbW1lZGlhdGU6OmZvcm1hdCgpCiB7
CiAgICAgY29uc3QgY2hhciogdGhpc09wTmFtZSA9IG9wTmFtZSgpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmgJ
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIv
QVJNNjQvQTY0RE9wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NjUsNiArNTY1LDIyIEBAIHB1
YmxpYzoKICAgICBpbnQgc0JpdCgpIHsgcmV0dXJuIChtX29wY29kZSA+PiAxMikgJiAweDE7IH0K
IH07CiAKK2NsYXNzIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIgOiBwdWJsaWMgQTY0
RE9wY29kZUxvYWRTdG9yZSB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1h
c2sgPSAweDNhMDAwMDAwOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgy
ODAwMDAwMDsKKworICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVMb2FkU3RvcmVS
ZWdpc3RlclBhaXIsIHRoaXNPYmopOworCisgICAgY29uc3QgY2hhciogZm9ybWF0KCk7CisgICAg
Y29uc3QgY2hhciogb3BOYW1lKCk7CisKKyAgICB1bnNpZ25lZCBydDIoKSB7IHJldHVybiAobV9v
cGNvZGUgPj4gMTApICYgMHgxZjsgfQorICAgIGludCBpbW1lZGlhdGU3KCkgeyByZXR1cm4gKHN0
YXRpY19jYXN0PGludD4oKG1fb3Bjb2RlID4+IDE1KSAmIDB4N2YpIDw8IDI1KSA+PiAyNTsgfQor
ICAgIHVuc2lnbmVkIG9mZnNldE1vZGUoKSB7IHJldHVybiAobV9vcGNvZGUgPj4gMjMpICYgMHg3
OyB9CisgICAgaW50IGxCaXQoKSB7IHJldHVybiAobV9vcGNvZGUgPj4gMjIpICYgMHgxOyB9Cit9
OworCiBjbGFzcyBBNjRET3Bjb2RlTG9hZFN0b3JlVW5zaWduZWRJbW1lZGlhdGUgOiBwdWJsaWMg
QTY0RE9wY29kZUxvYWRTdG9yZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IG1hc2sgPSAweDNiMDAwMDAwOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YmJyZXZpYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExBYmJyZXZpYXRpb25zLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQWJicmV2aWF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3
IEBAIHN0YXRpYyBpbmxpbmUgTFR5cGUgZmxvYXRUeXBlKExDb250ZXh0IGMKIHN0YXRpYyBpbmxp
bmUgTFR5cGUgZG91YmxlVHlwZShMQ29udGV4dCBjb250ZXh0KSB7IHJldHVybiBsbHZtLT5Eb3Vi
bGVUeXBlSW5Db250ZXh0KGNvbnRleHQpOyB9CiAKIHN0YXRpYyBpbmxpbmUgTFR5cGUgcG9pbnRl
clR5cGUoTFR5cGUgdHlwZSkgeyByZXR1cm4gbGx2bS0+UG9pbnRlclR5cGUodHlwZSwgMCk7IH0K
K3N0YXRpYyBpbmxpbmUgTFR5cGUgYXJyYXlUeXBlKExUeXBlIHR5cGUsIHVuc2lnbmVkIGNvdW50
KSB7IHJldHVybiBsbHZtLT5BcnJheVR5cGUodHlwZSwgY291bnQpOyB9CiBzdGF0aWMgaW5saW5l
IExUeXBlIHZlY3RvclR5cGUoTFR5cGUgdHlwZSwgdW5zaWduZWQgY291bnQpIHsgcmV0dXJuIGxs
dm0tPlZlY3RvclR5cGUodHlwZSwgY291bnQpOyB9CiAKIGVudW0gUGFja2luZ01vZGUgeyBOb3RQ
YWNrZWQsIFBhY2tlZCB9OwpAQCAtMTMyLDYgKzEzMyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBz
ZXRNZXRhZGF0YShMVmFsdWUgaW4KIHN0YXRpYyBpbmxpbmUgTFZhbHVlIGFkZEZ1bmN0aW9uKExN
b2R1bGUgbW9kdWxlLCBjb25zdCBjaGFyKiBuYW1lLCBMVHlwZSB0eXBlKSB7IHJldHVybiBsbHZt
LT5BZGRGdW5jdGlvbihtb2R1bGUsIG5hbWUsIHR5cGUpOyB9CiBzdGF0aWMgaW5saW5lIHZvaWQg
c2V0TGlua2FnZShMVmFsdWUgZ2xvYmFsLCBMTGlua2FnZSBsaW5rYWdlKSB7IGxsdm0tPlNldExp
bmthZ2UoZ2xvYmFsLCBsaW5rYWdlKTsgfQogc3RhdGljIGlubGluZSB2b2lkIHNldEZ1bmN0aW9u
Q2FsbGluZ0NvbnYoTFZhbHVlIGZ1bmN0aW9uLCBMQ2FsbENvbnYgY29udmVudGlvbikgeyBsbHZt
LT5TZXRGdW5jdGlvbkNhbGxDb252KGZ1bmN0aW9uLCBjb252ZW50aW9uKTsgfQorc3RhdGljIGlu
bGluZSB2b2lkIGFkZFRhcmdldERlcGVuZGVudEZ1bmN0aW9uQXR0cihMVmFsdWUgZnVuY3Rpb24s
IGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogdmFsdWUpIHsgbGx2bS0+QWRkVGFyZ2V0RGVw
ZW5kZW50RnVuY3Rpb25BdHRyKGZ1bmN0aW9uLCBrZXksIHZhbHVlKTsgfQogCiBzdGF0aWMgaW5s
aW5lIExWYWx1ZSBhZGRFeHRlcm5GdW5jdGlvbihMTW9kdWxlIG1vZHVsZSwgY29uc3QgY2hhciog
bmFtZSwgTFR5cGUgdHlwZSkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
QWJzdHJhY3RIZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEFic3RyYWN0SGVhcC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsOSAr
NTMsMTAgQEAgdm9pZCBBYnN0cmFjdEhlYXA6OmRlY29yYXRlSW5zdHJ1Y3Rpb24oTAogICAgIHNl
dE1ldGFkYXRhKGluc3RydWN0aW9uLCByZXBvc2l0b3J5Lm1fdGJhYUtpbmQsIHRiYWFNZXRhZGF0
YShyZXBvc2l0b3J5KSk7CiB9CiAKLUluZGV4ZWRBYnN0cmFjdEhlYXA6OkluZGV4ZWRBYnN0cmFj
dEhlYXAoTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIq
IGhlYXBOYW1lLCBzaXplX3QgZWxlbWVudFNpemUpCitJbmRleGVkQWJzdHJhY3RIZWFwOjpJbmRl
eGVkQWJzdHJhY3RIZWFwKExDb250ZXh0IGNvbnRleHQsIEFic3RyYWN0SGVhcCogcGFyZW50LCBj
b25zdCBjaGFyKiBoZWFwTmFtZSwgcHRyZGlmZl90IG9mZnNldCwgc2l6ZV90IGVsZW1lbnRTaXpl
KQogICAgIDogbV9oZWFwRm9yQW55SW5kZXgocGFyZW50LCBoZWFwTmFtZSkKICAgICAsIG1faGVh
cE5hbWVMZW5ndGgoc3RybGVuKGhlYXBOYW1lKSkKKyAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAg
ICAsIG1fZWxlbWVudFNpemUoZWxlbWVudFNpemUpCiAgICAgLCBtX3NjYWxlVGVybSgwKQogICAg
ICwgbV9jYW5TaGlmdChmYWxzZSkKQEAgLTkzLDcgKzk0LDcgQEAgVHlwZWRQb2ludGVyIEluZGV4
ZWRBYnN0cmFjdEhlYXA6OmJhc2VJbgogICAgIH0gZWxzZQogICAgICAgICByZXN1bHQgPSBvdXQu
YWRkKGJhc2UsIG91dC5tdWwoaW5kZXgsIG1fc2NhbGVUZXJtKSk7CiAgICAgCi0gICAgcmV0dXJu
IFR5cGVkUG9pbnRlcihhdEFueUluZGV4KCksIG91dC5hZGRQdHIocmVzdWx0LCBvZmZzZXQpKTsK
KyAgICByZXR1cm4gVHlwZWRQb2ludGVyKGF0QW55SW5kZXgoKSwgb3V0LmFkZFB0cihyZXN1bHQs
IG1fb2Zmc2V0ICsgb2Zmc2V0KSk7CiB9CiAKIGNvbnN0IEFic3RyYWN0RmllbGQmIEluZGV4ZWRB
YnN0cmFjdEhlYXA6OmF0U2xvdyhwdHJkaWZmX3QgaW5kZXgpCkBAIC0xNjgsMTYgKzE2OSwxNSBA
QCB2b2lkIEluZGV4ZWRBYnN0cmFjdEhlYXA6OmluaXRpYWxpemUoQWJzCiAgICAgICAgICAgICBh
Y2N1bXVsYXRvciA+Pj0gNDsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgZmllbGQuaW5p
dGlhbGl6ZSgmbV9oZWFwRm9yQW55SW5kZXgsIGNoYXJhY3RlcnMsIHNpZ25lZEluZGV4ICogbV9l
bGVtZW50U2l6ZSk7CisgICAgICAgIGZpZWxkLmluaXRpYWxpemUoJm1faGVhcEZvckFueUluZGV4
LCBjaGFyYWN0ZXJzLCBtX29mZnNldCArIHNpZ25lZEluZGV4ICogbV9lbGVtZW50U2l6ZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKIH0KIAotTnVtYmVyZWRBYnN0cmFjdEhlYXA6Ok51bWJlcmVkQWJzdHJhY3RIZWFwKAot
ICAgIExDb250ZXh0IGNvbnRleHQsIEFic3RyYWN0SGVhcCogaGVhcCwgY29uc3QgY2hhciogaGVh
cE5hbWUpCi0gICAgOiBtX2luZGV4ZWRIZWFwKGNvbnRleHQsIGhlYXAsIGhlYXBOYW1lLCAxKQor
TnVtYmVyZWRBYnN0cmFjdEhlYXA6Ok51bWJlcmVkQWJzdHJhY3RIZWFwKExDb250ZXh0IGNvbnRl
eHQsIEFic3RyYWN0SGVhcCogaGVhcCwgY29uc3QgY2hhciogaGVhcE5hbWUpCisgICAgOiBtX2lu
ZGV4ZWRIZWFwKGNvbnRleHQsIGhlYXAsIGhlYXBOYW1lLCAwLCAxKQogewogfQogCkBAIC0xODUs
OSArMTg1LDggQEAgTnVtYmVyZWRBYnN0cmFjdEhlYXA6On5OdW1iZXJlZEFic3RyYWN0SAogewog
fQogCi1BYnNvbHV0ZUFic3RyYWN0SGVhcDo6QWJzb2x1dGVBYnN0cmFjdEhlYXAoCi0gICAgTENv
bnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBoZWFwLCBjb25zdCBjaGFyKiBoZWFwTmFtZSkK
LSAgICA6IG1faW5kZXhlZEhlYXAoY29udGV4dCwgaGVhcCwgaGVhcE5hbWUsIDEpCitBYnNvbHV0
ZUFic3RyYWN0SGVhcDo6QWJzb2x1dGVBYnN0cmFjdEhlYXAoTENvbnRleHQgY29udGV4dCwgQWJz
dHJhY3RIZWFwKiBoZWFwLCBjb25zdCBjaGFyKiBoZWFwTmFtZSkKKyAgICA6IG1faW5kZXhlZEhl
YXAoY29udGV4dCwgaGVhcCwgaGVhcE5hbWUsIDAsIDEpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaAkod29ya2luZyBj
b3B5KQpAQCAtMTM5LDcgKzEzOSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEluZGV4ZWRBYnN0cmFj
dEhlYXAgewogcHVibGljOgotICAgIEluZGV4ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQsIEFic3Ry
YWN0SGVhcCogcGFyZW50LCBjb25zdCBjaGFyKiBoZWFwTmFtZSwgc2l6ZV90IGVsZW1lbnRTaXpl
KTsKKyAgICBJbmRleGVkQWJzdHJhY3RIZWFwKExDb250ZXh0LCBBYnN0cmFjdEhlYXAqIHBhcmVu
dCwgY29uc3QgY2hhciogaGVhcE5hbWUsIHB0cmRpZmZfdCBvZmZzZXQsIHNpemVfdCBlbGVtZW50
U2l6ZSk7CiAgICAgfkluZGV4ZWRBYnN0cmFjdEhlYXAoKTsKICAgICAKICAgICBjb25zdCBBYnN0
cmFjdEhlYXAmIGF0QW55SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2hlYXBGb3JBbnlJbmRleDsg
fQpAQCAtMTY4LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAKICAgICBBYnN0cmFjdEhlYXAgbV9oZWFw
Rm9yQW55SW5kZXg7CiAgICAgc2l6ZV90IG1faGVhcE5hbWVMZW5ndGg7CisgICAgcHRyZGlmZl90
IG1fb2Zmc2V0OwogICAgIHNpemVfdCBtX2VsZW1lbnRTaXplOwogICAgIExWYWx1ZSBtX3NjYWxl
VGVybTsKICAgICBib29sIG1fY2FuU2hpZnQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeTo6QWJzdHJhY3RIZWFwUmVwbwogICAgIAogICAgICwgSlNDZWxsX2ZyZWVMaXN0
TmV4dChKU0NlbGxfc3RydWN0dXJlKQogICAgIAotI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hF
QVBfSU5JVElBTElaQVRJT04obmFtZSwgc2l6ZSkgLCBuYW1lKGNvbnRleHQsICZyb290LCAjbmFt
ZSwgc2l6ZSkKKyNkZWZpbmUgSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0lOSVRJQUxJWkFUSU9OKG5h
bWUsIG9mZnNldCwgc2l6ZSkgLCBuYW1lKGNvbnRleHQsICZyb290LCAjbmFtZSwgb2Zmc2V0LCBz
aXplKQogICAgIEZPUl9FQUNIX0lOREVYRURfQUJTVFJBQ1RfSEVBUChJTkRFWEVEX0FCU1RSQUNU
X0hFQVBfSU5JVElBTElaQVRJT04pCiAjdW5kZWYgSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0lOSVRJ
QUxJWkFUSU9OCiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3Ry
YWN0SGVhcFJlcG9zaXRvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDExICs0OCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZU
TCB7CiAgICAgbWFjcm8oSlNBcnJheUJ1ZmZlclZpZXdfbW9kZSwgSlNBcnJheUJ1ZmZlclZpZXc6
Om9mZnNldE9mTW9kZSgpKSBcCiAgICAgbWFjcm8oSlNBcnJheUJ1ZmZlclZpZXdfdmVjdG9yLCBK
U0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZWZWN0b3IoKSkgXAogICAgIG1hY3JvKEpTQ2VsbF9z
dHJ1Y3R1cmUsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpIFwKKyAgICBtYWNybyhKU0Z1bmN0
aW9uX2V4ZWN1dGFibGUsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSBcCisgICAg
bWFjcm8oSlNGdW5jdGlvbl9zY29wZSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZTY29wZUNoYWluKCkp
IFwKICAgICBtYWNybyhKU09iamVjdF9idXR0ZXJmbHksIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZz
ZXQoKSkgXAogICAgIG1hY3JvKEpTU2NvcGVfbmV4dCwgSlNTY29wZTo6b2Zmc2V0T2ZOZXh0KCkp
IFwKKyAgICBtYWNybyhKU1N0cmluZ19mbGFncywgSlNTdHJpbmc6Om9mZnNldE9mRmxhZ3MoKSkg
XAogICAgIG1hY3JvKEpTU3RyaW5nX2xlbmd0aCwgSlNTdHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkp
IFwKICAgICBtYWNybyhKU1N0cmluZ192YWx1ZSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSkg
XAogICAgIG1hY3JvKEpTVmFyaWFibGVPYmplY3RfcmVnaXN0ZXJzLCBKU1ZhcmlhYmxlT2JqZWN0
OjpvZmZzZXRPZlJlZ2lzdGVycygpKSBcCisgICAgbWFjcm8oSlNXcmFwcGVyT2JqZWN0X2ludGVy
bmFsVmFsdWUsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpKSBcCiAgICAg
bWFjcm8oTWFya2VkQWxsb2NhdG9yX2ZyZWVMaXN0SGVhZCwgTWFya2VkQWxsb2NhdG9yOjpvZmZz
ZXRPZkZyZWVMaXN0SGVhZCgpKSBcCiAgICAgbWFjcm8oTWFya2VkQmxvY2tfbWFya0JpdHMsIE1h
cmtlZEJsb2NrOjpvZmZzZXRPZk1hcmtzKCkpIFwKICAgICBtYWNybyhTdHJpbmdJbXBsX2RhdGEs
IFN0cmluZ0ltcGw6OmRhdGFPZmZzZXQoKSkgXApAQCAtNjQsMTQgKzY4LDE1IEBAIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhTdHJ1Y3R1cmVfdHlwZUluZm9UeXBl
LCBTdHJ1Y3R1cmU6OnR5cGVJbmZvVHlwZU9mZnNldCgpKQogCiAjZGVmaW5lIEZPUl9FQUNIX0lO
REVYRURfQUJTVFJBQ1RfSEVBUChtYWNybykgXAotICAgIG1hY3JvKGNoYXJhY3RlcnM4LCBzaXpl
b2YoTENoYXIpKSBcCi0gICAgbWFjcm8oY2hhcmFjdGVyczE2LCBzaXplb2YoVUNoYXIpKSBcCi0g
ICAgbWFjcm8oaW5kZXhlZEludDMyUHJvcGVydGllcywgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkg
XAotICAgIG1hY3JvKGluZGV4ZWREb3VibGVQcm9wZXJ0aWVzLCBzaXplb2YoZG91YmxlKSkgXAot
ICAgIG1hY3JvKGluZGV4ZWRDb250aWd1b3VzUHJvcGVydGllcywgc2l6ZW9mKEVuY29kZWRKU1Zh
bHVlKSkgXAotICAgIG1hY3JvKGluZGV4ZWRBcnJheVN0b3JhZ2VQcm9wZXJ0aWVzLCBzaXplb2Yo
RW5jb2RlZEpTVmFsdWUpKSBcCi0gICAgbWFjcm8oc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncywgc2l6
ZW9mKEpTU3RyaW5nKikpIFwKLSAgICBtYWNybyh2YXJpYWJsZXMsIHNpemVvZihSZWdpc3Rlcikp
CisgICAgbWFjcm8oSlNSb3BlU3RyaW5nX2ZpYmVycywgSlNSb3BlU3RyaW5nOjpvZmZzZXRPZkZp
YmVycygpLCBzaXplb2YoV3JpdGVCYXJyaWVyPEpTU3RyaW5nPikpIFwKKyAgICBtYWNybyhjaGFy
YWN0ZXJzOCwgMCwgc2l6ZW9mKExDaGFyKSkgXAorICAgIG1hY3JvKGNoYXJhY3RlcnMxNiwgMCwg
c2l6ZW9mKFVDaGFyKSkgXAorICAgIG1hY3JvKGluZGV4ZWRJbnQzMlByb3BlcnRpZXMsIDAsIHNp
emVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKKyAgICBtYWNybyhpbmRleGVkRG91YmxlUHJvcGVydGll
cywgMCwgc2l6ZW9mKGRvdWJsZSkpIFwKKyAgICBtYWNybyhpbmRleGVkQ29udGlndW91c1Byb3Bl
cnRpZXMsIDAsIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKKyAgICBtYWNybyhpbmRleGVkQXJy
YXlTdG9yYWdlUHJvcGVydGllcywgMCwgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1h
Y3JvKHNpbmdsZUNoYXJhY3RlclN0cmluZ3MsIDAsIHNpemVvZihKU1N0cmluZyopKSBcCisgICAg
bWFjcm8odmFyaWFibGVzLCAwLCBzaXplb2YoUmVnaXN0ZXIpKQogICAgIAogI2RlZmluZSBGT1Jf
RUFDSF9OVU1CRVJFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8ocHJvcGVydGll
cykKQEAgLTk3LDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICAKICAgICBBYnN0cmFjdEZpZWxkJiBK
U0NlbGxfZnJlZUxpc3ROZXh0OwogICAgIAotI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBf
REVDTEFSQVRJT04obmFtZSwgc2l6ZSkgSW5kZXhlZEFic3RyYWN0SGVhcCBuYW1lOworI2RlZmlu
ZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfREVDTEFSQVRJT04obmFtZSwgb2Zmc2V0LCBzaXplKSBJ
bmRleGVkQWJzdHJhY3RIZWFwIG5hbWU7CiAgICAgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9I
RUFQKElOREVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElPTikKICN1bmRlZiBJTkRFWEVEX0FC
U1RSQUNUX0hFQVBfREVDTEFSQVRJT04KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMQXZhaWxh
YmxlUmVjb3ZlcnkuaCIKKworI2lmIEVOQUJMRShGVExfSklUKQorCituYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEZUTCB7CisKK3ZvaWQgQXZhaWxhYmxlUmVjb3Zlcnk6OmR1bXAoUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKK3sKKyAgICBvdXQucHJpbnQobm9kZSgpLCAiID0+ICIsIG9wY29kZSgp
LCAiLCAiLCBSYXdQb2ludGVyKG1fbGVmdCksICIsICIsIFJhd1BvaW50ZXIobV9yaWdodCksICIs
ICIsIG1fZm9ybWF0KTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYg
Ly8gRU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
QXZhaWxhYmxlUmVjb3ZlcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIEZUTEF2YWlsYWJsZVJlY292ZXJ5X2gKKyNkZWZpbmUgRlRMQXZhaWxhYmxlUmVj
b3ZlcnlfaAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJERkdOb2RlLmgiCisj
aW5jbHVkZSAiRlRMQWJicmV2aWF0ZWRUeXBlcy5oIgorI2luY2x1ZGUgIkZUTFJlY292ZXJ5T3Bj
b2RlLmgiCisjaW5jbHVkZSAiRlRMVmFsdWVGb3JtYXQuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBGVEwgeworCitjbGFzcyBBdmFpbGFibGVSZWNvdmVyeSB7CitwdWJsaWM6CisgICAg
QXZhaWxhYmxlUmVjb3ZlcnkoKQorICAgICAgICA6IG1fbm9kZSgwKQorICAgICAgICAsIG1fZm9y
bWF0KEludmFsaWRWYWx1ZUZvcm1hdCkKKyAgICAgICAgLCBtX29wY29kZShBZGRSZWNvdmVyeSkK
KyAgICAgICAgLCBtX2xlZnQoMCkKKyAgICAgICAgLCBtX3JpZ2h0KDApCisgICAgeworICAgIH0K
KyAgICAKKyAgICBBdmFpbGFibGVSZWNvdmVyeShERkc6Ok5vZGUqIG5vZGUsIFJlY292ZXJ5T3Bj
b2RlIG9wY29kZSwgTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCwgVmFsdWVGb3JtYXQgZm9ybWF0
KQorICAgICAgICA6IG1fbm9kZShub2RlKQorICAgICAgICAsIG1fZm9ybWF0KGZvcm1hdCkKKyAg
ICAgICAgLCBtX29wY29kZShvcGNvZGUpCisgICAgICAgICwgbV9sZWZ0KGxlZnQpCisgICAgICAg
ICwgbV9yaWdodChyaWdodCkKKyAgICB7CisgICAgfQorICAgIAorICAgIERGRzo6Tm9kZSogbm9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9kZTsgfQorICAgIFZhbHVlRm9ybWF0IGZvcm1hdCgpIGNv
bnN0IHsgcmV0dXJuIG1fZm9ybWF0OyB9CisgICAgUmVjb3ZlcnlPcGNvZGUgb3Bjb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9vcGNvZGU7IH0KKyAgICBMVmFsdWUgbGVmdCgpIGNvbnN0IHsgcmV0dXJu
IG1fbGVmdDsgfQorICAgIExWYWx1ZSByaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0K
KyAgICAKKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKKyAgICAKK3ByaXZhdGU6
CisgICAgREZHOjpOb2RlKiBtX25vZGU7CisgICAgVmFsdWVGb3JtYXQgbV9mb3JtYXQ7CisgICAg
UmVjb3ZlcnlPcGNvZGUgbV9vcGNvZGU7CisgICAgTFZhbHVlIG1fbGVmdDsKKyAgICBMVmFsdWUg
bV9yaWdodDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVO
QUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMQXZhaWxhYmxlUmVjb3ZlcnlfaAorCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDExIEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgRlRMIHsKIAogdXNpbmcgbmFtZXNwYWNlIERGRzsKIAorc3RhdGljIGJvb2wgdmVy
Ym9zZUNhcGFiaWxpdGllcygpCit7CisgICAgcmV0dXJuIHZlcmJvc2VDb21waWxhdGlvbkVuYWJs
ZWQoKSB8fCBPcHRpb25zOjp2ZXJib3NlRlRMRmFpbHVyZSgpOworfQorCiBpbmxpbmUgQ2FwYWJp
bGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKIHsKICAgICAvLyBOT1RFOiBJZiB3ZSBl
dmVyIGhhdmUgcGhhbnRvbSBhcmd1bWVudHMsIHdlIGNhbiBjb21waWxlIHRoZW0gYnV0IHdlIGNh
bm5vdApAQCAtNzcsNiArODIsOSBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUo
Tm9kZSogCiAgICAgY2FzZSBBcml0aE1pbjoKICAgICBjYXNlIEFyaXRoTWF4OgogICAgIGNhc2Ug
QXJpdGhBYnM6CisgICAgY2FzZSBBcml0aFNpbjoKKyAgICBjYXNlIEFyaXRoQ29zOgorICAgIGNh
c2UgQXJpdGhTcXJ0OgogICAgIGNhc2UgQXJpdGhOZWdhdGU6CiAgICAgY2FzZSBVSW50MzJUb051
bWJlcjoKICAgICBjYXNlIEludDMyVG9Eb3VibGU6CkBAIC04OCw4ICs5Niw2IEBAIGlubGluZSBD
YXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiAKICAgICBjYXNlIFVwc2lsb246CiAgICAg
Y2FzZSBFeHRyYWN0T1NSRW50cnlMb2NhbDoKICAgICBjYXNlIExvb3BIaW50OgotICAgIGNhc2Ug
Q2FsbDoKLSAgICBjYXNlIENvbnN0cnVjdDoKICAgICBjYXNlIEdldE15U2NvcGU6CiAgICAgY2Fz
ZSBTa2lwU2NvcGU6CiAgICAgY2FzZSBHZXRDbG9zdXJlUmVnaXN0ZXJzOgpAQCAtMTA4LDE1ICsx
MTQsMjcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNh
c2UgU3RvcmVCYXJyaWVyOgogICAgIGNhc2UgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXI6CiAgICAg
Y2FzZSBTdG9yZUJhcnJpZXJXaXRoTnVsbENoZWNrOgorICAgIGNhc2UgQ2FsbDoKKyAgICBjYXNl
IENvbnN0cnVjdDoKICAgICBjYXNlIFZhbHVlVG9JbnQzMjoKICAgICBjYXNlIEJyYW5jaDoKICAg
ICBjYXNlIExvZ2ljYWxOb3Q6CiAgICAgY2FzZSBDaGVja0luQm91bmRzOgogICAgIGNhc2UgQ29u
c3RhbnRTdG9yYWdlUG9pbnRlcjoKICAgICBjYXNlIENoZWNrOgorICAgIGNhc2UgQ291bnRFeGVj
dXRpb246CisgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6CisgICAgY2FzZSBHZXRTY29wZToKKyAg
ICBjYXNlIEFsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludDoKKyAgICBjYXNlIENoZWNrQXJndW1l
bnRzTm90Q3JlYXRlZDoKKyAgICBjYXNlIEdldENhbGxlZToKKyAgICBjYXNlIFRvU3RyaW5nOgor
ICAgIGNhc2UgTWFrZVJvcGU6CisgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgogICAgICAgICAv
LyBUaGVzZSBhcmUgT0suCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR2V0QnlJZDoKKyAgICBj
YXNlIFB1dEJ5SWREaXJlY3Q6CiAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICBpZiAobm9kZS0+
Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UpCiAgICAgICAgICAgICBicmVhazsKQEAgLTIz
Nyw4ICsyNTUsMTcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAog
Q2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogewogICAgIGlmIChncmFw
aC5tX2NvZGVCbG9jay0+Y29kZVR5cGUoKSAhPSBGdW5jdGlvbkNvZGUpIHsKLSAgICAgICAgaWYg
KHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkKLSAgICAgICAgICAgIGRhdGFMb2coIkZUTCBy
ZWplY3RpbmcgY29kZSBibG9jayB0aGF0IGRvZXNuJ3QgYmVsb25nIHRvIGEgZnVuY3Rpb24uXG4i
KTsKKyAgICAgICAgaWYgKHZlcmJvc2VDYXBhYmlsaXRpZXMoKSkKKyAgICAgICAgICAgIGRhdGFM
b2coIkZUTCByZWplY3RpbmcgIiwgKmdyYXBoLm1fY29kZUJsb2NrLCAiIGJlY2F1c2UgaXQgZG9l
c24ndCBiZWxvbmcgdG8gYSBmdW5jdGlvbi5cbiIpOworICAgICAgICByZXR1cm4gQ2Fubm90Q29t
cGlsZTsKKyAgICB9CisgICAgCisgICAgaWYgKGdyYXBoLm1fY29kZUJsb2NrLT5uZWVkc0FjdGl2
YXRpb24oKSkgeworICAgICAgICAvLyBOZWVkIHRoaXMgYmVjYXVzZSBhbHRob3VnaCB3ZSBhbHNv
IGRvbid0IHN1cHBvcnQKKyAgICAgICAgLy8gQ3JlYXRlQWN0aXZhdGlvbi9UZWFyT2ZmQWN0aXZh
dGlvbiwgd2UgbWlnaHQgbm90IHNlZSB0aG9zZSBub2RlcyBpbiBjYXNlIG9mCisgICAgICAgIC8v
IE9TUiBlbnRyeS4KKyAgICAgICAgaWYgKHZlcmJvc2VDYXBhYmlsaXRpZXMoKSkKKyAgICAgICAg
ICAgIGRhdGFMb2coIkZUTCByZWplY3RpbmcgIiwgKmdyYXBoLm1fY29kZUJsb2NrLCAiIGJlY2F1
c2UgaXQgdXNlcyBhY3RpdmF0aW9ucy5cbiIpOwogICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGls
ZTsKICAgICB9CiAgICAgCkBAIC0yNzQsMTMgKzMwMSwxNiBAQCBDYXBhYmlsaXR5TGV2ZWwgY2Fu
Q29tcGlsZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgICAgICAgICAgY2FzZSBPYmplY3RVc2U6CiAg
ICAgICAgICAgICAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICAgICAgICAgIGNh
c2UgU3RyaW5nVXNlOgorICAgICAgICAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CisgICAg
ICAgICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBT
dHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2JqZWN0
VXNlOgogICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgT0suCiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAg
ICAgIC8vIERvbid0IGtub3cgaG93IHRvIGhhbmRsZSBhbnl0aGluZyBlbHNlLgotICAgICAgICAg
ICAgICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nIG5vZGUgYmVjYXVzZSBvZiBiYWQg
dXNlIGtpbmQ6ICIsIGVkZ2UudXNlS2luZCgpLCAiIGluIG5vZGU6XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHZlcmJvc2VDYXBhYmlsaXRpZXMoKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyBub2RlIGluICIsICpncmFwaC5tX2NvZGVCbG9j
aywgIiBiZWNhdXNlIG9mIGJhZCB1c2Uga2luZDogIiwgZWRnZS51c2VLaW5kKCksICIgaW4gbm9k
ZTpcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGguZHVtcChXVEY6OmRhdGFGaWxl
KCksICIgICAgIiwgbm9kZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CkBAIC0yODksOCArMzE5LDggQEAgQ2FwYWJpbGl0
eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBzd2l0Y2ggKGNhbkNvbXBpbGUobm9kZSkpIHsKICAgICAgICAgICAgIGNhc2UgQ2Fubm90Q29t
cGlsZTogCi0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkg
ewotICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nIG5vZGU6XG4iKTsK
KyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxpdGllcygpKSB7CisgICAgICAgICAg
ICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3Rpbmcgbm9kZSBpbiAiLCAqZ3JhcGgubV9jb2Rl
QmxvY2ssICI6XG4iKTsKICAgICAgICAgICAgICAgICAgICAgZ3JhcGguZHVtcChXVEY6OmRhdGFG
aWxlKCksICIgICAgIiwgbm9kZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IHJldHVybiBDYW5ub3RDb21waWxlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDb21tb25WYWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ29tbW9uVmFsdWVzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExDb21tb25WYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02MSw2ICs2
MSw4IEBAIENvbW1vblZhbHVlczo6Q29tbW9uVmFsdWVzKExDb250ZXh0IGNvbnQKICAgICAsIGlu
dFB0ckVpZ2h0KGNvbnN0SW50KGludFB0ciwgOCwgU2lnbkV4dGVuZCkpCiAgICAgLCBpbnRQdHJQ
dHIoY29uc3RJbnQoaW50UHRyLCBzaXplb2Yodm9pZCopLCBTaWduRXh0ZW5kKSkKICAgICAsIGRv
dWJsZVplcm8oY29uc3RSZWFsKGRvdWJsZVR5cGUsIDApKQorICAgICwgcmFuZ2VLaW5kKG1kS2lu
ZElEKGNvbnRleHQsICJyYW5nZSIpKQorICAgICwgbm9uTmVnYXRpdmVJbnQzMihjb25zdEludChp
bnQzMiwgMCwgU2lnbkV4dGVuZCksIGNvbnN0SW50KGludDMyLCAxbGwgPDwgMzEsIFNpZ25FeHRl
bmQpKQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBtX21vZHVsZSgwKQogewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21tb25WYWx1ZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5oCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKICNp
bmNsdWRlICJGVExBYmJyZXZpYXRpb25zLmgiCisjaW5jbHVkZSAiRlRMVmFsdWVSYW5nZS5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKQEAgLTc0LDYgKzc1LDEwIEBAIHB1
YmxpYzoKICAgICBjb25zdCBMVmFsdWUgaW50UHRyUHRyOwogICAgIGNvbnN0IExWYWx1ZSBkb3Vi
bGVaZXJvOwogICAgIAorICAgIGNvbnN0IHVuc2lnbmVkIHJhbmdlS2luZDsKKyAgICAKKyAgICBj
b25zdCBWYWx1ZVJhbmdlIG5vbk5lZ2F0aXZlSW50MzI7CisgICAgCiAgICAgTENvbnRleHQgY29u
c3QgbV9jb250ZXh0OwogICAgIExNb2R1bGUgbV9tb2R1bGU7CiB9OwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2
ICszNyw3IEBACiAjaW5jbHVkZSAiRlRMSW5saW5lQ2FjaGVTaXplLmgiCiAjaW5jbHVkZSAiRlRM
SklUQ29kZS5oIgogI2luY2x1ZGUgIkZUTFRodW5rcy5oIgorI2luY2x1ZGUgIkZUTFVud2luZElu
Zm8uaCIKICNpbmNsdWRlICJKSVRTdHVicy5oIgogI2luY2x1ZGUgIkxMVk1BUEkuaCIKICNpbmNs
dWRlICJMaW5rQnVmZmVyLmgiCkBAIC00OSw3ICs1MCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBERkc7
CiBzdGF0aWMgdWludDhfdCogbW1BbGxvY2F0ZUNvZGVTZWN0aW9uKAogICAgIHZvaWQqIG9wYXF1
ZVN0YXRlLCB1aW50cHRyX3Qgc2l6ZSwgdW5zaWduZWQgYWxpZ25tZW50LCB1bnNpZ25lZCwgY29u
c3QgY2hhciogc2VjdGlvbk5hbWUpCiB7Ci0gICAgCiAgICAgU3RhdGUmIHN0YXRlID0gKnN0YXRp
Y19jYXN0PFN0YXRlKj4ob3BhcXVlU3RhdGUpOwogICAgIAogICAgIFJFTEVBU0VfQVNTRVJUKGFs
aWdubWVudCA8PSBqaXRBbGxvY2F0aW9uR3JhbnVsZSk7CkBAIC01OCw2ICs1OCwxMSBAQCBzdGF0
aWMgdWludDhfdCogbW1BbGxvY2F0ZUNvZGVTZWN0aW9uKAogICAgICAgICBzdGF0ZS5ncmFwaC5t
X3ZtLmV4ZWN1dGFibGVBbGxvY2F0b3IuYWxsb2NhdGUoCiAgICAgICAgICAgICBzdGF0ZS5ncmFw
aC5tX3ZtLCBzaXplLCBzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0
U3VjY2VlZCk7CiAgICAgCisgICAgaWYgKCFzdHJjbXAoc2VjdGlvbk5hbWUsICJfX2NvbXBhY3Rf
dW53aW5kIikpIHsKKyAgICAgICAgc3RhdGUuY29tcGFjdFVud2luZCA9IHJlc3VsdC0+c3RhcnQo
KTsKKyAgICAgICAgc3RhdGUuY29tcGFjdFVud2luZFNpemUgPSByZXN1bHQtPnNpemVJbkJ5dGVz
KCk7CisgICAgfQorICAgIAogICAgIHN0YXRlLmppdENvZGUtPmFkZEhhbmRsZShyZXN1bHQpOwog
ICAgIHN0YXRlLmNvZGVTZWN0aW9uTmFtZXMuYXBwZW5kKHNlY3Rpb25OYW1lKTsKICAgICAKQEAg
LTE0OSw4ICsxNTQsNjMgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBz
KAogICAgIFN0YXRlJiBzdGF0ZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVENvZGUqIGppdENv
ZGUsIEdlbmVyYXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0aW9uLAogICAgIFN0YWNrTWFwczo6
UmVjb3JkTWFwJiByZWNvcmRNYXApCiB7Ci0gICAgVk0mIHZtID0gc3RhdGUuZ3JhcGgubV92bTsK
KyAgICBHcmFwaCYgZ3JhcGggPSBzdGF0ZS5ncmFwaDsKKyAgICBWTSYgdm0gPSBncmFwaC5tX3Zt
OwogICAgIFN0YWNrTWFwcyBzdGFja21hcHMgPSBqaXRDb2RlLT5zdGFja21hcHM7CisgICAgCisg
ICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChz
dGF0ZS5jYXB0dXJlZFN0YWNrbWFwSUQpOworICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXIgIT0gcmVj
b3JkTWFwLmVuZCgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChpdGVyLT52YWx1ZS5sb2NhdGlvbnMu
c2l6ZSgpID09IDEpOworICAgIExvY2F0aW9uIGNhcHR1cmVkTG9jYXRpb24gPQorICAgICAgICBM
b2NhdGlvbjo6Zm9yU3RhY2ttYXBzKCZqaXRDb2RlLT5zdGFja21hcHMsIGl0ZXItPnZhbHVlLmxv
Y2F0aW9uc1swXSk7CisgICAgUkVMRUFTRV9BU1NFUlQoY2FwdHVyZWRMb2NhdGlvbi5raW5kKCkg
PT0gTG9jYXRpb246OlJlZ2lzdGVyKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjYXB0dXJlZExvY2F0
aW9uLmdwcigpID09IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBSRUxFQVNFX0FT
U0VSVCghKGNhcHR1cmVkTG9jYXRpb24uYWRkZW5kKCkgJSBzaXplb2YoUmVnaXN0ZXIpKSk7Cisg
ICAgaW50MzJfdCBsb2NhbHNPZmZzZXQgPSBjYXB0dXJlZExvY2F0aW9uLmFkZGVuZCgpIC8gc2l6
ZW9mKFJlZ2lzdGVyKSArIGdyYXBoLm1fbmV4dE1hY2hpbmVMb2NhbDsKKyAgICAKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBncmFwaC5tX2lubGluZVZhcmlhYmxlRGF0YS5zaXplKCk7IGktLTspIHsK
KyAgICAgICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUgPSBncmFwaC5tX2lubGlu
ZVZhcmlhYmxlRGF0YVtpXS5pbmxpbmVDYWxsRnJhbWU7CisgICAgICAgIAorICAgICAgICBpZiAo
aW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNSZWdpc3Rlci5pc1ZhbGlkKCkpIHsKKyAgICAgICAg
ICAgIGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzUmVnaXN0ZXIgPSBWaXJ0dWFsUmVnaXN0ZXIo
CisgICAgICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNSZWdpc3Rlci5vZmZz
ZXQoKSArIGxvY2Fsc09mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAo
dW5zaWduZWQgYXJndW1lbnQgPSBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCk7IGFy
Z3VtZW50LS0gPiAxOykgeworICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNb
YXJndW1lbnRdID0KKyAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1th
cmd1bWVudF0ud2l0aExvY2Fsc09mZnNldChsb2NhbHNPZmZzZXQpOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKSB7CisgICAg
ICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZVJlY292ZXJ5ID0KKyAgICAgICAgICAgICAg
ICBpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZVJlY292ZXJ5LndpdGhMb2NhbHNPZmZzZXQobG9jYWxz
T2Zmc2V0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAoY29kZUJsb2NrLT51c2Vz
QXJndW1lbnRzKCkpIHsKKyAgICAgICAgY29kZUJsb2NrLT5zZXRBcmd1bWVudHNSZWdpc3RlcigK
KyAgICAgICAgICAgIFZpcnR1YWxSZWdpc3Rlcihjb2RlQmxvY2stPmFyZ3VtZW50c1JlZ2lzdGVy
KCkub2Zmc2V0KCkgKyBsb2NhbHNPZmZzZXQpKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIEND
YWxsSGVscGVycyBjaGVja0pJVCgmdm0sIGNvZGVCbG9jayk7CisgICAgICAgIAorICAgICAgICAv
LyBBdCB0aGlzIHBvaW50IGl0J3MgcGVyZmVjdGx5IGZhaXIgdG8ganVzdCBibG93IGF3YXkgYWxs
IHN0YXRlIGFuZCByZXN0b3JlIHRoZQorICAgICAgICAvLyBKUyBKSVQgdmlldyBvZiB0aGUgdW5p
dmVyc2UuCisgICAgICAgIGNoZWNrSklULm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02
NChUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICAg
ICAgY2hlY2tKSVQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KFRhZ01hc2spLCBH
UFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOworICAgICAgICAKKyAgICAgICAgY2hlY2tKSVQubW92
ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmdm0pLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOworICAgICAgICBjaGVja0pJVC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
ID0gY2hlY2tKSVQuY2FsbCgpOworICAgICAgICBjaGVja0pJVC5qdW1wVG9FeGNlcHRpb25IYW5k
bGVyKCk7CisgICAgICAgIAorICAgICAgICBPd25QdHI8TGlua0J1ZmZlcj4gbGlua0J1ZmZlciA9
IGFkb3B0UHRyKG5ldyBMaW5rQnVmZmVyKAorICAgICAgICAgICAgdm0sICZjaGVja0pJVCwgY29k
ZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7CisgICAgICAgIGxpbmtCdWZmZXIt
PmxpbmsoY2FsbCwgRnVuY3Rpb25QdHIobG9va3VwRXhjZXB0aW9uSGFuZGxlcikpOworICAgICAg
ICAKKyAgICAgICAgc3RhdGUuZmluYWxpemVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlciA9
IGxpbmtCdWZmZXIucmVsZWFzZSgpOworICAgIH0KIAogICAgIEV4aXRUaHVua0dlbmVyYXRvciBl
eGl0VGh1bmtHZW5lcmF0b3Ioc3RhdGUpOwogICAgIGV4aXRUaHVua0dlbmVyYXRvci5lbWl0VGh1
bmtzKCk7CkBAIC0xNjYsMTYgKzIyNiwzMCBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2Vk
T25TdGFja01hcHMoCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJi
b3NlQ29tcGlsYXRpb24oKSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJIYW5kbGluZyBPU1Ig
c3RhY2ttYXAgIyIsIGV4aXQubV9zdGFja21hcElELCAiIGZvciAiLCBleGl0Lm1fY29kZU9yaWdp
biwgIlxuIik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFw
OjppdGVyYXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZXhpdC5tX3N0YWNrbWFwSUQpOworCisg
ICAgICAgICAgICBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZXhpdC5tX3N0YWNrbWFwSUQpOwogICAg
ICAgICAgICAgaWYgKGl0ZXIgPT0gcmVjb3JkTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICAgICAg
Ly8gSXQgd2FzIG9wdGltaXplZCBvdXQuCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGluZm8ubV90aHVua0FkZHJlc3Mg
PSBsaW5rQnVmZmVyLT5sb2NhdGlvbk9mKGluZm8ubV90aHVua0xhYmVsKTsKLSAgICAgICAgICAg
IAogICAgICAgICAgICAgZXhpdC5tX3BhdGNoYWJsZUNvZGVPZmZzZXQgPSBsaW5rQnVmZmVyLT5v
ZmZzZXRPZihpbmZvLm1fdGh1bmtKdW1wKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBqID0gZXhpdC5tX3ZhbHVlcy5zaXplKCk7IGotLTspIHsKKyAgICAgICAgICAg
ICAgICBFeGl0VmFsdWUgdmFsdWUgPSBleGl0Lm1fdmFsdWVzW2pdOworICAgICAgICAgICAgICAg
IGlmICghdmFsdWUuaXNJbkpTU3RhY2tTb21laG93KCkpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIGlmICghdmFsdWUudmlydHVhbFJlZ2lzdGVyKCkuaXNM
b2NhbCgpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBl
eGl0Lm1fdmFsdWVzW2pdID0gdmFsdWUud2l0aFZpcnR1YWxSZWdpc3RlcigKKyAgICAgICAgICAg
ICAgICAgICAgVmlydHVhbFJlZ2lzdGVyKHZhbHVlLnZpcnR1YWxSZWdpc3RlcigpLm9mZnNldCgp
ICsgbG9jYWxzT2Zmc2V0KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGlmIChPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKSkgeworICAgICAgICAgICAgICAg
IER1bXBDb250ZXh0IGNvbnRleHQ7CisgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEV4aXQg
dmFsdWVzOiAiLCBpbkNvbnRleHQoZXhpdC5tX3ZhbHVlcywgJmNvbnRleHQpLCAiXG4iKTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3RhdGUuZmluYWxpemVy
LT5leGl0VGh1bmtzTGlua0J1ZmZlciA9IGxpbmtCdWZmZXIucmVsZWFzZSgpOwpAQCAtMTg0LDEz
ICsyNTgsMTUgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAg
IGlmICghc3RhdGUuZ2V0QnlJZHMuaXNFbXB0eSgpIHx8ICFzdGF0ZS5wdXRCeUlkcy5pc0VtcHR5
KCkpIHsKICAgICAgICAgQ0NhbGxIZWxwZXJzIHNsb3dQYXRoSklUKCZ2bSwgY29kZUJsb2NrKTsK
ICAgICAgICAgCisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZXhjZXB0aW9uVGFyZ2V0
OworICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhdGUuZ2V0QnlJZHMuc2l6
ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBHZXRCeUlkRGVzY3JpcHRvciYgZ2V0QnlJZCA9IHN0
YXRlLmdldEJ5SWRzW2ldOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6
dmVyYm9zZUNvbXBpbGF0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiSGFuZGxpbmcg
R2V0QnlJZCBzdGFja21hcCAjIiwgZ2V0QnlJZC5zdGFja21hcElEKCksICJcbiIpOwogICAgICAg
ICAgICAgCi0gICAgICAgICAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9
IHJlY29yZE1hcC5maW5kKGdldEJ5SWQuc3RhY2ttYXBJRCgpKTsKKyAgICAgICAgICAgIGl0ZXIg
PSByZWNvcmRNYXAuZmluZChnZXRCeUlkLnN0YWNrbWFwSUQoKSk7CiAgICAgICAgICAgICBpZiAo
aXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAgICAgICAgICAgICAvLyBJdCB3YXMgb3B0
aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTIwMiwxOCArMjc4LDE3
IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAg
IFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSBSZWdpc3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEdQUlJlZyByZXN1bHQgPSByZWNvcmQubG9jYXRp
b25zWzBdLmRpcmVjdEdQUigpOwotICAgICAgICAgICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVy
ID0gcmVjb3JkLmxvY2F0aW9uc1sxXS5kaXJlY3RHUFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyBi
YXNlID0gcmVjb3JkLmxvY2F0aW9uc1syXS5kaXJlY3RHUFIoKTsKKyAgICAgICAgICAgIEdQUlJl
ZyBiYXNlID0gcmVjb3JkLmxvY2F0aW9uc1sxXS5kaXJlY3RHUFIoKTsKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgICAgICAgICAgY29k
ZUJsb2NrLCBnZXRCeUlkLmNvZGVPcmlnaW4oKSwgdXNlZFJlZ2lzdGVycywgY2FsbEZyYW1lUmVn
aXN0ZXIsCi0gICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MoYmFzZSksIEpTVmFsdWVSZWdzKHJl
c3VsdCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBjb2RlQmxvY2ssIGdldEJ5SWQuY29kZU9y
aWdpbigpLCB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyhiYXNlKSwKKyAgICAgICAgICAgICAg
ICBKU1ZhbHVlUmVncyhyZXN1bHQpLCBmYWxzZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBiZWdpbiA9IHNsb3dQYXRoSklULmxhYmVsKCk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBjYWxsT3Bl
cmF0aW9uKAotICAgICAgICAgICAgICAgIHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93UGF0aEpJ
VCwgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCByZXN1bHQsCi0gICAgICAgICAgICAgICAgY2Fs
bEZyYW1lUmVnaXN0ZXIsIGdlbi5zdHViSW5mbygpLCBiYXNlLCBnZXRCeUlkLnVpZCgpKTsKKyAg
ICAgICAgICAgICAgICBzdGF0ZSwgdXNlZFJlZ2lzdGVycywgc2xvd1BhdGhKSVQsIGdldEJ5SWQu
Y29kZU9yaWdpbigpLCAmZXhjZXB0aW9uVGFyZ2V0LAorICAgICAgICAgICAgICAgIG9wZXJhdGlv
bkdldEJ5SWRPcHRpbWl6ZSwgcmVzdWx0LCBnZW4uc3R1YkluZm8oKSwgYmFzZSwgZ2V0QnlJZC51
aWQoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwo
YmVnaW4sIGNhbGwpOwogICAgICAgICAgICAgCkBAIC0yMjcsNyArMzAyLDcgQEAgc3RhdGljIHZv
aWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAgICAgaWYgKE9wdGlvbnM6
OnZlcmJvc2VDb21waWxhdGlvbigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhhbmRsaW5n
IFB1dEJ5SWQgc3RhY2ttYXAgIyIsIHB1dEJ5SWQuc3RhY2ttYXBJRCgpLCAiXG4iKTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIg
PSByZWNvcmRNYXAuZmluZChwdXRCeUlkLnN0YWNrbWFwSUQoKSk7CisgICAgICAgICAgICBpdGVy
ID0gcmVjb3JkTWFwLmZpbmQocHV0QnlJZC5zdGFja21hcElEKCkpOwogICAgICAgICAgICAgaWYg
KGl0ZXIgPT0gcmVjb3JkTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gSXQgd2FzIG9w
dGltaXplZCBvdXQuCiAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC0yMzgsMjAgKzMxMywx
OSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAg
ICAvLyBGSVhNRTogTExWTSBzaG91bGQgdGVsbCB1cyB3aGljaCByZWdpc3RlcnMgYXJlIGxpdmUu
CiAgICAgICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6OmFs
bFJlZ2lzdGVycygpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBHUFJSZWcgY2FsbEZyYW1l
UmVnaXN0ZXIgPSByZWNvcmQubG9jYXRpb25zWzBdLmRpcmVjdEdQUigpOwotICAgICAgICAgICAg
R1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwotICAgICAgICAg
ICAgR1BSUmVnIHZhbHVlID0gcmVjb3JkLmxvY2F0aW9uc1syXS5kaXJlY3RHUFIoKTsKKyAgICAg
ICAgICAgIEdQUlJlZyBiYXNlID0gcmVjb3JkLmxvY2F0aW9uc1swXS5kaXJlY3RHUFIoKTsKKyAg
ICAgICAgICAgIEdQUlJlZyB2YWx1ZSA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAg
ICAgICAgICAgICAgIGNvZGVCbG9jaywgcHV0QnlJZC5jb2RlT3JpZ2luKCksIHVzZWRSZWdpc3Rl
cnMsIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2Up
LCBKU1ZhbHVlUmVncyh2YWx1ZSksIE1hY3JvQXNzZW1ibGVyOjpzY3JhdGNoUmVnaXN0ZXIsCi0g
ICAgICAgICAgICAgICAgZmFsc2UsIHB1dEJ5SWQuZWNtYU1vZGUoKSwgcHV0QnlJZC5wdXRLaW5k
KCkpOworICAgICAgICAgICAgICAgIGNvZGVCbG9jaywgcHV0QnlJZC5jb2RlT3JpZ2luKCksIHVz
ZWRSZWdpc3RlcnMsIEpTVmFsdWVSZWdzKGJhc2UpLAorICAgICAgICAgICAgICAgIEpTVmFsdWVS
ZWdzKHZhbHVlKSwgTWFjcm9Bc3NlbWJsZXI6OnNjcmF0Y2hSZWdpc3RlciwgZmFsc2UsIHB1dEJ5
SWQuZWNtYU1vZGUoKSwKKyAgICAgICAgICAgICAgICBwdXRCeUlkLnB1dEtpbmQoKSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBiZWdpbiA9IHNsb3dQ
YXRoSklULmxhYmVsKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKAotICAgICAgICAgICAgICAgIHN0YXRlLCB1c2Vk
UmVnaXN0ZXJzLCBzbG93UGF0aEpJVCwgZ2VuLnNsb3dQYXRoRnVuY3Rpb24oKSwgY2FsbEZyYW1l
UmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCksIHZhbHVlLCBiYXNlLCBw
dXRCeUlkLnVpZCgpKTsKKyAgICAgICAgICAgICAgICBzdGF0ZSwgdXNlZFJlZ2lzdGVycywgc2xv
d1BhdGhKSVQsIHB1dEJ5SWQuY29kZU9yaWdpbigpLCAmZXhjZXB0aW9uVGFyZ2V0LAorICAgICAg
ICAgICAgICAgIGdlbi5zbG93UGF0aEZ1bmN0aW9uKCksIGdlbi5zdHViSW5mbygpLCB2YWx1ZSwg
YmFzZSwgcHV0QnlJZC51aWQoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGdlbi5yZXBv
cnRTbG93UGF0aENhbGwoYmVnaW4sIGNhbGwpOwogICAgICAgICAgICAgCkBAIC0yNTksOCArMzMz
LDEzIEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAg
ICAgIHB1dEJ5SWQubV9nZW5lcmF0b3IgPSBnZW47CiAgICAgICAgIH0KICAgICAgICAgCisgICAg
ICAgIGV4Y2VwdGlvblRhcmdldC5saW5rKCZzbG93UGF0aEpJVCk7CisgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIGV4Y2VwdGlvbkp1bXAgPSBzbG93UGF0aEpJVC5qdW1wKCk7CisgICAgICAg
IAogICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPnNpZGVDb2RlTGlua0J1ZmZlciA9IGFkb3B0UHRy
KAogICAgICAgICAgICAgbmV3IExpbmtCdWZmZXIodm0sICZzbG93UGF0aEpJVCwgY29kZUJsb2Nr
LCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7CisgICAgICAgIHN0YXRlLmZpbmFsaXplci0+
c2lkZUNvZGVMaW5rQnVmZmVyLT5saW5rKAorICAgICAgICAgICAgZXhjZXB0aW9uSnVtcCwgc3Rh
dGUuZmluYWxpemVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+ZW50cnlwb2ludCgpKTsK
ICAgICAgICAgCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXRlLmdldEJ5SWRzLnNpemUo
KTsgaS0tOykgewogICAgICAgICAgICAgZ2VuZXJhdGVJQ0Zhc3RQYXRoKApAQCAtMjc0LDI4ICsz
NTMsODEgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAg
ICB9CiAgICAgfQogICAgIAotICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjb2RlQmxv
Y2spOwotICAgIAotICAgIGZvciAodW5zaWduZWQgZXhpdEluZGV4ID0gaml0Q29kZS0+b3NyRXhp
dC5zaXplKCk7IGV4aXRJbmRleC0tOykgewotICAgICAgICBPU1JFeGl0Q29tcGlsYXRpb25JbmZv
JiBpbmZvID0gc3RhdGUuZmluYWxpemVyLT5vc3JFeGl0W2V4aXRJbmRleF07Ci0gICAgICAgIE9T
UkV4aXQmIGV4aXQgPSBqaXRDb2RlLT5vc3JFeGl0W2V4aXRJbmRleF07Ci0gICAgICAgIFN0YWNr
TWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZXhpdC5tX3N0
YWNrbWFwSUQpOworICAgIC8vIEhhbmRsaW5nIEpTIGNhbGxzIGlzIHdlaXJkOiB3ZSBuZWVkIHRv
IGVuc3VyZSB0aGF0IHdlIHNvcnQgdGhlbSBieSB0aGUgUEMgaW4gTExWTQorICAgIC8vIGdlbmVy
YXRlZCBjb2RlLiBUaGF0IGltcGxpZXMgZmlyc3QgcHJ1bmluZyB0aGUgb25lcyB0aGF0IExMVk0g
ZGlkbid0IGdlbmVyYXRlLgorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdGF0ZS5qc0Nh
bGxzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEpTQ2FsbCYgY2FsbCA9IHN0YXRlLmpzQ2FsbHNb
aV07CisgICAgICAgIAorICAgICAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRl
ciA9IHJlY29yZE1hcC5maW5kKGNhbGwuc3RhY2ttYXBJRCgpKTsKICAgICAgICAgaWYgKGl0ZXIg
PT0gcmVjb3JkTWFwLmVuZCgpKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGNvdWxkIGhhcHBlbiBp
ZiBMTFZNIG9wdGltaXplcyBvdXQgYW4gT1NSIGV4aXQuCisgICAgICAgICAgICAvLyBJdCB3YXMg
b3B0aW1pemVkIG91dC4gUHJ1bmUgaXQuCisgICAgICAgICAgICBjYWxsID0gc3RhdGUuanNDYWxs
cy5sYXN0KCk7CisgICAgICAgICAgICBzdGF0ZS5qc0NhbGxzLnJlbW92ZUxhc3QoKTsKKyAgICAg
ICAgICAgIGktLTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIAor
ICAgICAgICBjYWxsLm1faW5zdHJ1Y3Rpb25PZmZzZXQgPSBpdGVyLT52YWx1ZS5pbnN0cnVjdGlv
bk9mZnNldDsKKyAgICB9CisgICAgCisgICAgc3RkOjpzb3J0KHN0YXRlLmpzQ2FsbHMuYmVnaW4o
KSwgc3RhdGUuanNDYWxscy5lbmQoKSk7CisgICAgCisgICAgY29kZUJsb2NrLT5zZXROdW1iZXJP
ZkNhbGxMaW5rSW5mb3Moc3RhdGUuanNDYWxscy5zaXplKCkpOworICAgIGZvciAodW5zaWduZWQg
aSA9IHN0YXRlLmpzQ2FsbHMuc2l6ZSgpOyBpLS07KSB7CisgICAgICAgIEpTQ2FsbCYgY2FsbCA9
IHN0YXRlLmpzQ2FsbHNbaV07CisKKyAgICAgICAgQ0NhbGxIZWxwZXJzIGZhc3RQYXRoSklUKCZ2
bSwgY29kZUJsb2NrKTsKKyAgICAgICAgY2FsbC5lbWl0KGZhc3RQYXRoSklUKTsKKyAgICAgICAg
CisgICAgICAgIGNoYXIqIHN0YXJ0T2ZJQyA9IGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJhdGVk
RnVuY3Rpb24pICsgY2FsbC5tX2luc3RydWN0aW9uT2Zmc2V0OworICAgICAgICAKKyAgICAgICAg
TGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCAmZmFzdFBhdGhKSVQsIHN0YXJ0T2ZJQywgc2l6ZU9m
Q2FsbCgpKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQobGlua0J1ZmZlci5pc1ZhbGlkKCkpOwor
ICAgICAgICAKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFzc2VtYmxlclR5cGVfVDo6ZmlsbE5v
cHMoCisgICAgICAgICAgICBzdGFydE9mSUMgKyBsaW5rQnVmZmVyLnNpemUoKSwgc2l6ZU9mQ2Fs
bCgpIC0gbGlua0J1ZmZlci5zaXplKCkpOworICAgICAgICAKKyAgICAgICAgQ2FsbExpbmtJbmZv
JiBpbmZvID0gY29kZUJsb2NrLT5jYWxsTGlua0luZm8oaSk7CisgICAgICAgIGNhbGwubGluayh2
bSwgbGlua0J1ZmZlciwgaW5mbyk7CisgICAgfQorICAgIAorICAgIFJlcGF0Y2hCdWZmZXIgcmVw
YXRjaEJ1ZmZlcihjb2RlQmxvY2spOworICAgIAorICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChz
dGF0ZS5oYW5kbGVFeGNlcHRpb25TdGFja21hcElEKTsKKyAgICAvLyBJdCdzIHNvcnQgb2YgcmVt
b3RlbHkgcG9zc2libGUgdGhhdCB3ZSB3b24ndCBoYXZlIGFuIGluLWJhbmQgZXhjZXB0aW9uIGhh
bmRsaW5nCisgICAgLy8gcGF0aCwgZm9yIHNvbWUga2luZHMgb2YgZnVuY3Rpb25zLgorICAgIGlm
IChpdGVyICE9IHJlY29yZE1hcC5lbmQoKSkgewogICAgICAgICBTdGFja01hcHM6OlJlY29yZCYg
cmVjb3JkID0gaXRlci0+dmFsdWU7CiAgICAgICAgIAogICAgICAgICBDb2RlTG9jYXRpb25MYWJl
bCBzb3VyY2UgPSBDb2RlTG9jYXRpb25MYWJlbCgKICAgICAgICAgICAgIGJpdHdpc2VfY2FzdDxj
aGFyKj4oZ2VuZXJhdGVkRnVuY3Rpb24pICsgcmVjb3JkLmluc3RydWN0aW9uT2Zmc2V0KTsKKwor
ICAgICAgICByZXBhdGNoQnVmZmVyLnJlcGxhY2VXaXRoSnVtcChzb3VyY2UsIHN0YXRlLmZpbmFs
aXplci0+aGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXItPmVudHJ5cG9pbnQoKSk7CisgICAgfQor
ICAgIAorICAgIGZvciAodW5zaWduZWQgZXhpdEluZGV4ID0gMDsgZXhpdEluZGV4IDwgaml0Q29k
ZS0+b3NyRXhpdC5zaXplKCk7ICsrZXhpdEluZGV4KSB7CisgICAgICAgIE9TUkV4aXRDb21waWxh
dGlvbkluZm8mIGluZm8gPSBzdGF0ZS5maW5hbGl6ZXItPm9zckV4aXRbZXhpdEluZGV4XTsKKyAg
ICAgICAgT1NSRXhpdCYgZXhpdCA9IGppdENvZGUtPm9zckV4aXRbZXhpdEluZGV4XTsKKyAgICAg
ICAgaXRlciA9IHJlY29yZE1hcC5maW5kKGV4aXQubV9zdGFja21hcElEKTsKICAgICAgICAgCi0g
ICAgICAgIGlmIChpbmZvLm1faXNJbnZhbGlkYXRpb25Qb2ludCkgewotICAgICAgICAgICAgaml0
Q29kZS0+Y29tbW9uLmp1bXBSZXBsYWNlbWVudHMuYXBwZW5kKEp1bXBSZXBsYWNlbWVudChzb3Vy
Y2UsIGluZm8ubV90aHVua0FkZHJlc3MpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBWZWN0b3I8Y29uc3Qgdm9pZCo+IGNvZGVBZGRyZXNzZXM7CisgICAgICAgIAorICAgICAgICBp
ZiAoaXRlciAhPSByZWNvcmRNYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIFN0YWNrTWFwczo6UmVj
b3JkJiByZWNvcmQgPSBpdGVyLT52YWx1ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ29k
ZUxvY2F0aW9uTGFiZWwgc291cmNlID0gQ29kZUxvY2F0aW9uTGFiZWwoCisgICAgICAgICAgICAg
ICAgYml0d2lzZV9jYXN0PGNoYXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyByZWNvcmQuaW5zdHJ1
Y3Rpb25PZmZzZXQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjb2RlQWRkcmVzc2VzLmFw
cGVuZChiaXR3aXNlX2Nhc3Q8Y2hhcio+KGdlbmVyYXRlZEZ1bmN0aW9uKSArIHJlY29yZC5pbnN0
cnVjdGlvbk9mZnNldCArIE1hY3JvQXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5mby5tX2lzSW52YWxpZGF0aW9uUG9p
bnQpCisgICAgICAgICAgICAgICAgaml0Q29kZS0+Y29tbW9uLmp1bXBSZXBsYWNlbWVudHMuYXBw
ZW5kKEp1bXBSZXBsYWNlbWVudChzb3VyY2UsIGluZm8ubV90aHVua0FkZHJlc3MpKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXBhdGNoQnVmZmVyLnJlcGxhY2VXaXRoSnVt
cChzb3VyY2UsIGluZm8ubV90aHVua0FkZHJlc3MpOwogICAgICAgICB9CiAgICAgICAgIAotICAg
ICAgICByZXBhdGNoQnVmZmVyLnJlcGxhY2VXaXRoSnVtcChzb3VyY2UsIGluZm8ubV90aHVua0Fk
ZHJlc3MpOworICAgICAgICBpZiAoZ3JhcGguY29tcGlsYXRpb24oKSkKKyAgICAgICAgICAgIGdy
YXBoLmNvbXBpbGF0aW9uKCktPmFkZE9TUkV4aXRTaXRlKGNvZGVBZGRyZXNzZXMpOwogICAgIH0K
IH0KIApAQCAtMzczLDcgKzUwNSw3IEBAIHZvaWQgY29tcGlsZShTdGF0ZSYgc3RhdGUpCiAgICAg
ICAgICAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBoYW5kbGUgPSBzdGF0ZS5qaXRDb2RlLT5o
YW5kbGVzKClbaV0uZ2V0KCk7CiAgICAgICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgICAg
ICJHZW5lcmF0ZWQgTExWTSBjb2RlIGZvciAiLAotICAgICAgICAgICAgICAgIENvZGVCbG9ja1dp
dGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLAorICAg
ICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2Nr
LCBKSVRDb2RlOjpGVExKSVQpLAogICAgICAgICAgICAgICAgICIgIyIsIGksICIsICIsIHN0YXRl
LmNvZGVTZWN0aW9uTmFtZXNbaV0sICI6XG4iKTsKICAgICAgICAgICAgIGRpc2Fzc2VtYmxlKAog
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cihoYW5kbGUtPnN0YXJ0KCkpLCBo
YW5kbGUtPnNpemVJbkJ5dGVzKCksCkBAIC0zODQsMTcgKzUxNiwyMiBAQCB2b2lkIGNvbXBpbGUo
U3RhdGUmIHN0YXRlKQogICAgICAgICAgICAgY29uc3QgUmVmQ291bnRlZEFycmF5PExTZWN0aW9u
V29yZD4mIHNlY3Rpb24gPSBzdGF0ZS5qaXRDb2RlLT5kYXRhU2VjdGlvbnMoKVtpXTsKICAgICAg
ICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAgICAgIkdlbmVyYXRlZCBMTFZNIGRhdGEgc2Vj
dGlvbiBmb3IgIiwKLSAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5n
cmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6REZHSklUKSwKKyAgICAgICAgICAgICAgICBDb2Rl
QmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6RlRMSklU
KSwKICAgICAgICAgICAgICAgICAiICMiLCBpLCAiLCAiLCBzdGF0ZS5kYXRhU2VjdGlvbk5hbWVz
W2ldLCAiOlxuIik7CiAgICAgICAgICAgICBkdW1wRGF0YVNlY3Rpb24oc2VjdGlvbiwgIiAgICAi
KTsKICAgICAgICAgfQogICAgIH0KICAgICAKKyAgICBzdGF0ZS5qaXRDb2RlLT51bndpbmRJbmZv
LnBhcnNlKAorICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5kLCBzdGF0ZS5jb21wYWN0VW53aW5k
U2l6ZSwgc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24pOworICAgIGlmIChERkc6OnNob3VsZFNob3dE
aXNhc3NlbWJseSgpKQorICAgICAgICBkYXRhTG9nKCJVbndpbmQgaW5mbyBmb3IgIiwgQ29kZUJs
b2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCks
ICI6XG4gICAgIiwgc3RhdGUuaml0Q29kZS0+dW53aW5kSW5mbywgIlxuIik7CisgICAgCiAgICAg
aWYgKHN0YXRlLnN0YWNrbWFwc1NlY3Rpb24uc2l6ZSgpKSB7CiAgICAgICAgIGlmIChzaG91bGRT
aG93RGlzYXNzZW1ibHkoKSkgewogICAgICAgICAgICAgZGF0YUxvZygKICAgICAgICAgICAgICAg
ICAiR2VuZXJhdGVkIExMVk0gc3RhY2ttYXBzIHNlY3Rpb24gZm9yICIsCi0gICAgICAgICAgICAg
ICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6
OkRGR0pJVCksICI6XG4iKTsKKyAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShz
dGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6RlRMSklUKSwgIjpcbiIpOwogICAgICAg
ICAgICAgZGF0YUxvZygiICAgIFJhdyBkYXRhOlxuIik7CiAgICAgICAgICAgICBkdW1wRGF0YVNl
Y3Rpb24oc3RhdGUuc3RhY2ttYXBzU2VjdGlvbiwgIiAgICAiKTsKICAgICAgICAgfQpAQCAtNDIx
LDggKzU1OCw5IEBAIHZvaWQgY29tcGlsZShTdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICAgICAg
RXhlY3V0YWJsZU1lbW9yeUhhbmRsZSogaGFuZGxlID0gc3RhdGUuaml0Q29kZS0+aGFuZGxlcygp
W2ldLmdldCgpOwogICAgICAgICAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAgICAgICAg
ICJHZW5lcmF0ZWQgTExWTSBjb2RlIGFmdGVyIHN0YWNrbWFwLWJhc2VkIGZpeC11cCBmb3IgIiwK
LSAgICAgICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9j
b2RlQmxvY2ssIEpJVENvZGU6OkRGR0pJVCksCi0gICAgICAgICAgICAgICAgICAgICIgIyIsIGks
ICIsICIsIHN0YXRlLmNvZGVTZWN0aW9uTmFtZXNbaV0sICI6XG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENv
ZGU6OkZUTEpJVCksCisgICAgICAgICAgICAgICAgICAgICIgaW4gIiwgc3RhdGUuZ3JhcGgubV9w
bGFuLm1vZGUsICIgIyIsIGksICIsICIsCisgICAgICAgICAgICAgICAgICAgIHN0YXRlLmNvZGVT
ZWN0aW9uTmFtZXNbaV0sICI6XG4iKTsKICAgICAgICAgICAgICAgICBkaXNhc3NlbWJsZSgKICAg
ICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGhhbmRsZS0+c3RhcnQoKSks
IGhhbmRsZS0+c2l6ZUluQnl0ZXMoKSwKICAgICAgICAgICAgICAgICAgICAgIiAgICAiLCBXVEY6
OmRhdGFGaWxlKCksIExMVk1TdWJzZXQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExFeGl0VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMRXhpdFZhbHVlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OSw2ICs1OSw5IEBA
IHZvaWQgRXhpdFZhbHVlOjpkdW1wSW5Db250ZXh0KFByaW50U3RyZWEKICAgICBjYXNlIEV4aXRW
YWx1ZUluSlNTdGFja0FzRG91YmxlOgogICAgICAgICBvdXQucHJpbnQoIkluSlNTdGFja0FzRG91
YmxlOnIiLCB2aXJ0dWFsUmVnaXN0ZXIoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEV4
aXRWYWx1ZVJlY292ZXJ5OgorICAgICAgICBvdXQucHJpbnQoIlJlY292ZXJ5KCIsIHJlY292ZXJ5
T3Bjb2RlKCksICIsIGFyZyIsIGxlZnRSZWNvdmVyeUFyZ3VtZW50KCksICIsIGFyZyIsIHJpZ2h0
UmVjb3ZlcnlBcmd1bWVudCgpLCAiLCAiLCByZWNvdmVyeUZvcm1hdCgpLCAiKSIpOworICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmgJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMxLDYgKzMxLDcgQEAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAogI2luY2x1
ZGUgIkZUTEV4aXRBcmd1bWVudC5oIgorI2luY2x1ZGUgIkZUTFJlY292ZXJ5T3Bjb2RlLmgiCiAj
aW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogI2lu
Y2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgpAQCAtNTEsNyArNTIsOCBAQCBlbnVtIEV4aXRWYWx1
ZUtpbmQgewogICAgIEV4aXRWYWx1ZUluSlNTdGFjaywKICAgICBFeGl0VmFsdWVJbkpTU3RhY2tB
c0ludDMyLAogICAgIEV4aXRWYWx1ZUluSlNTdGFja0FzSW50NTIsCi0gICAgRXhpdFZhbHVlSW5K
U1N0YWNrQXNEb3VibGUKKyAgICBFeGl0VmFsdWVJbkpTU3RhY2tBc0RvdWJsZSwKKyAgICBFeGl0
VmFsdWVSZWNvdmVyeQogfTsKIAogY2xhc3MgRXhpdFZhbHVlIHsKQEAgLTExOCw2ICsxMjAsMTcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKKyAgICBzdGF0
aWMgRXhpdFZhbHVlIHJlY292ZXJ5KFJlY292ZXJ5T3Bjb2RlIG9wY29kZSwgdW5zaWduZWQgbGVm
dEFyZ3VtZW50LCB1bnNpZ25lZCByaWdodEFyZ3VtZW50LCBWYWx1ZUZvcm1hdCBmb3JtYXQpCisg
ICAgeworICAgICAgICBFeGl0VmFsdWUgcmVzdWx0OworICAgICAgICByZXN1bHQubV9raW5kID0g
RXhpdFZhbHVlUmVjb3Zlcnk7CisgICAgICAgIHJlc3VsdC51LnJlY292ZXJ5Lm9wY29kZSA9IG9w
Y29kZTsKKyAgICAgICAgcmVzdWx0LnUucmVjb3ZlcnkubGVmdEFyZ3VtZW50ID0gbGVmdEFyZ3Vt
ZW50OworICAgICAgICByZXN1bHQudS5yZWNvdmVyeS5yaWdodEFyZ3VtZW50ID0gcmlnaHRBcmd1
bWVudDsKKyAgICAgICAgcmVzdWx0LnUucmVjb3ZlcnkuZm9ybWF0ID0gZm9ybWF0OworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKICAgICBFeGl0VmFsdWVLaW5kIGtpbmQoKSBj
b25zdCB7IHJldHVybiBtX2tpbmQ7IH0KICAgICAKICAgICBib29sIGlzRGVhZCgpIGNvbnN0IHsg
cmV0dXJuIGtpbmQoKSA9PSBFeGl0VmFsdWVEZWFkOyB9CkBAIC0xMzUsNiArMTQ4LDcgQEAgcHVi
bGljOgogICAgIH0KICAgICBib29sIGlzQ29uc3RhbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkg
PT0gRXhpdFZhbHVlQ29uc3RhbnQ7IH0KICAgICBib29sIGlzQXJndW1lbnQoKSBjb25zdCB7IHJl
dHVybiBraW5kKCkgPT0gRXhpdFZhbHVlQXJndW1lbnQ7IH0KKyAgICBib29sIGlzUmVjb3Zlcnko
KSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gRXhpdFZhbHVlUmVjb3Zlcnk7IH0KICAgICAKICAg
ICBFeGl0QXJndW1lbnQgZXhpdEFyZ3VtZW50KCkgY29uc3QKICAgICB7CkBAIC0xNDIsNiArMTU2
LDMwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEV4aXRBcmd1bWVudCh1LmFyZ3VtZW50KTsK
ICAgICB9CiAgICAgCisgICAgdW5zaWduZWQgbGVmdFJlY292ZXJ5QXJndW1lbnQoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgQVNTRVJUKGlzUmVjb3ZlcnkoKSk7CisgICAgICAgIHJldHVybiB1LnJl
Y292ZXJ5LmxlZnRBcmd1bWVudDsKKyAgICB9CisgICAgCisgICAgdW5zaWduZWQgcmlnaHRSZWNv
dmVyeUFyZ3VtZW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc1JlY292ZXJ5KCkp
OworICAgICAgICByZXR1cm4gdS5yZWNvdmVyeS5yaWdodEFyZ3VtZW50OworICAgIH0KKyAgICAK
KyAgICBWYWx1ZUZvcm1hdCByZWNvdmVyeUZvcm1hdCgpIGNvbnN0CisgICAgeworICAgICAgICBB
U1NFUlQoaXNSZWNvdmVyeSgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZhbHVlRm9y
bWF0Pih1LnJlY292ZXJ5LmZvcm1hdCk7CisgICAgfQorICAgIAorICAgIFJlY292ZXJ5T3Bjb2Rl
IHJlY292ZXJ5T3Bjb2RlKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc1JlY292ZXJ5
KCkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVjb3ZlcnlPcGNvZGU+KHUucmVjb3Zl
cnkub3Bjb2RlKTsKKyAgICB9CisgICAgCiAgICAgSlNWYWx1ZSBjb25zdGFudCgpIGNvbnN0CiAg
ICAgewogICAgICAgICBBU1NFUlQoaXNDb25zdGFudCgpKTsKQEAgLTE1Myw2ICsxOTEsMTUgQEAg
cHVibGljOgogICAgICAgICBBU1NFUlQoaXNJbkpTU3RhY2tTb21laG93KCkpOwogICAgICAgICBy
ZXR1cm4gVmlydHVhbFJlZ2lzdGVyKHUudmlydHVhbFJlZ2lzdGVyKTsKICAgICB9CisgICAgCisg
ICAgRXhpdFZhbHVlIHdpdGhWaXJ0dWFsUmVnaXN0ZXIoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxS
ZWdpc3RlcikKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0luSlNTdGFja1NvbWVob3coKSk7Cisg
ICAgICAgIEV4aXRWYWx1ZSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBtX2tpbmQ7
CisgICAgICAgIHJlc3VsdC51LnZpcnR1YWxSZWdpc3RlciA9IHZpcnR1YWxSZWdpc3Rlci5vZmZz
ZXQoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CiAKICAgICAvLyBJZiBpdCdzIGlu
IHRoZSBKU1N0YWNrIHNvbWVob3csIHRoaXMgd2lsbCB0ZWxsIHlvdSB3aGF0IGZvcm1hdCBpdCdz
IGluLCBpbiBhIG1hbm5lcgogICAgIC8vIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIGV4aXRBcmd1
bWVudCgpLmZvcm1hdCgpLiBJZiBpdCdzIGEgY29uc3RhbnQgb3IgaXQncyBkZWFkLCBpdApAQCAt
MTgxLDYgKzIyOCw5IEBAIHB1YmxpYzoKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEV4aXRW
YWx1ZUluSlNTdGFja0FzRG91YmxlOgogICAgICAgICAgICAgcmV0dXJuIFZhbHVlRm9ybWF0RG91
YmxlOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgRXhpdFZhbHVlUmVjb3Zlcnk6CisgICAg
ICAgICAgICByZXR1cm4gcmVjb3ZlcnlGb3JtYXQoKTsKICAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE5Niw2ICsyNDYsMTIgQEAg
cHJpdmF0ZToKICAgICAgICAgRXhpdEFyZ3VtZW50UmVwcmVzZW50YXRpb24gYXJndW1lbnQ7CiAg
ICAgICAgIEVuY29kZWRKU1ZhbHVlIGNvbnN0YW50OwogICAgICAgICBpbnQgdmlydHVhbFJlZ2lz
dGVyOworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDE2X3QgbGVmdEFyZ3VtZW50
OworICAgICAgICAgICAgdWludDE2X3QgcmlnaHRBcmd1bWVudDsKKyAgICAgICAgICAgIHVpbnQx
Nl90IG9wY29kZTsKKyAgICAgICAgICAgIHVpbnQxNl90IGZvcm1hdDsKKyAgICAgICAgfSByZWNv
dmVyeTsKICAgICB9IHU7CiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TElubGluZUNhY2hlU2l6ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ3LDYgKzQ3LDExIEBAIHNpemVfdCBzaXplT2ZQdXRCeUlkKCkKICAgICByZXR1cm4gMzI7
CiB9CiAKK3NpemVfdCBzaXplT2ZDYWxsKCkKK3sKKyAgICByZXR1cm4gNDM7Cit9CisKIH0gfSAv
LyBuYW1lc3BhY2UgSlNDOjpGVEwKIAogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hl
U2l6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgRlRMIHsKIAogc2l6ZV90IHNpemVPZkdldEJ5SWQoKTsKIHNpemVfdCBzaXplT2ZQ
dXRCeUlkKCk7CitzaXplX3Qgc2l6ZU9mQ2FsbCgpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
RlRMCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3Np
dG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmlu
c2ljUmVwb3NpdG9yeS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTcg
KzQwLDI1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhhZGRX
aXRoT3ZlcmZsb3czMiwgImxsdm0uc2FkZC53aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlw
ZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBc
CiAgICAgbWFjcm8oYWRkV2l0aE92ZXJmbG93NjQsICJsbHZtLnNhZGQud2l0aC5vdmVyZmxvdy5p
NjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDY0LCBib29sZWFuKSwg
aW50NjQsIGludDY0KSkgXAogICAgIG1hY3JvKGRvdWJsZUFicywgImxsdm0uZmFicy5mNjQiLCBm
dW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91YmxlVHlwZSkpIFwKKyAgICBtYWNybyhkb3VibGVT
aW4sICJsbHZtLnNpbi5mNjQiLCBmdW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91YmxlVHlwZSkp
IFwKKyAgICBtYWNybyhkb3VibGVDb3MsICJsbHZtLmNvcy5mNjQiLCBmdW5jdGlvblR5cGUoZG91
YmxlVHlwZSwgZG91YmxlVHlwZSkpIFwKKyAgICBtYWNybyhkb3VibGVTcXJ0LCAibGx2bS5zcXJ0
LmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkgXAorICAgIG1hY3Jv
KGZyYW1lQWRkcmVzcywgImxsdm0uZnJhbWVhZGRyZXNzIiwgZnVuY3Rpb25UeXBlKHBvaW50ZXJU
eXBlKGludDgpLCBpbnQzMikpIFwKICAgICBtYWNybyhtdWxXaXRoT3ZlcmZsb3czMiwgImxsdm0u
c211bC53aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4
dCwgaW50MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBcCiAgICAgbWFjcm8obXVsV2l0aE92
ZXJmbG93NjQsICJsbHZtLnNtdWwud2l0aC5vdmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5cGUoc3Ry
dWN0VHlwZShtX2NvbnRleHQsIGludDY0LCBib29sZWFuKSwgaW50NjQsIGludDY0KSkgXAotICAg
IG1hY3JvKHBhdGNocG9pbnRJbnQ2NCwgImxsdm0uZXhwZXJpbWVudGFsLnBhdGNocG9pbnQuaTY0
IiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnQzMiwgaW50MzIsIHJlZjgsIGludDMyLCBWYXJpYWRp
YykpIFwKLSAgICBtYWNybyhwYXRjaHBvaW50Vm9pZCwgImxsdm0uZXhwZXJpbWVudGFsLnBhdGNo
cG9pbnQudm9pZCIsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50MzIsIGludDMyLCByZWY4LCBp
bnQzMiwgVmFyaWFkaWMpKSBcCi0gICAgbWFjcm8oc3RhY2ttYXAsICJsbHZtLmV4cGVyaW1lbnRh
bC5zdGFja21hcCIsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50MzIsIGludDMyLCBWYXJpYWRp
YykpIFwKKyAgICBtYWNybyhwYXRjaHBvaW50SW50NjQsICJsbHZtLmV4cGVyaW1lbnRhbC5wYXRj
aHBvaW50Lmk2NCIsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50NjQsIGludDMyLCByZWY4LCBpbnQz
MiwgVmFyaWFkaWMpKSBcCisgICAgbWFjcm8ocGF0Y2hwb2ludFZvaWQsICJsbHZtLmV4cGVyaW1l
bnRhbC5wYXRjaHBvaW50LnZvaWQiLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludDY0LCBpbnQz
MiwgcmVmOCwgaW50MzIsIFZhcmlhZGljKSkgXAorICAgIG1hY3JvKHN0YWNrbWFwLCAibGx2bS5l
eHBlcmltZW50YWwuc3RhY2ttYXAiLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludDY0LCBpbnQz
MiwgVmFyaWFkaWMpKSBcCiAgICAgbWFjcm8oc3ViV2l0aE92ZXJmbG93MzIsICJsbHZtLnNzdWIu
d2l0aC5vdmVyZmxvdy5pMzIiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGlu
dDMyLCBib29sZWFuKSwgaW50MzIsIGludDMyKSkgXAogICAgIG1hY3JvKHN1YldpdGhPdmVyZmxv
dzY0LCAibGx2bS5zc3ViLndpdGgub3ZlcmZsb3cuaTY0IiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5
cGUobV9jb250ZXh0LCBpbnQ2NCwgYm9vbGVhbiksIGludDY0LCBpbnQ2NCkpIFwKICAgICBtYWNy
byh0cmFwLCAibGx2bS50cmFwIiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlKSkgXAogICAgIG1hY3Jv
KHg4NlNTRTJDdnRUU0QyU0ksICJsbHZtLng4Ni5zc2UyLmN2dHRzZDJzaSIsIGZ1bmN0aW9uVHlw
ZShpbnQzMiwgdmVjdG9yVHlwZShkb3VibGVUeXBlLCAyKSkpCiAKICNkZWZpbmUgRk9SX0VBQ0hf
RlVOQ1RJT05fVFlQRShtYWNybykgXAorICAgIG1hY3JvKENfSklUT3BlcmF0aW9uX0VDLCBmdW5j
dGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludFB0cikpIFwKKyAgICBtYWNybyhDX0pJVE9wZXJh
dGlvbl9FSiwgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBpbnQ2NCkpIFwKKyAgICBtYWNy
byhDX0pJVE9wZXJhdGlvbl9FSnNzSnNzLCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGlu
dFB0ciwgaW50UHRyKSkgXAorICAgIG1hY3JvKENfSklUT3BlcmF0aW9uX0VKc3NKc3NKc3MsIGZ1
bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyLCBpbnRQdHIsIGludFB0cikpIFwKICAg
ICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FU3QsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwg
aW50UHRyKSkgXAogICAgIG1hY3JvKElfSklUT3BlcmF0aW9uX0VKc3MsIGZ1bmN0aW9uVHlwZShp
bnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAogICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0UsIGZ1
bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyKSkgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExKSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEpJVENvZGUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEpJVENvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCwyNyArNTQsMzUg
QEAgdm9pZCBKSVRDb2RlOjphZGREYXRhU2VjdGlvbihSZWZDb3VudGVkQQogICAgIG1fZGF0YVNl
Y3Rpb25zLmFwcGVuZChkYXRhU2VjdGlvbik7CiB9CiAKLXZvaWQgSklUQ29kZTo6aW5pdGlhbGl6
ZUNvZGUoQ29kZVJlZiBlbnRyeXBvaW50KQordm9pZCBKSVRDb2RlOjppbml0aWFsaXplQXJpdHlD
aGVja0VudHJ5cG9pbnQoQ29kZVJlZiBlbnRyeXBvaW50KQogewotICAgIG1fZW50cnlwb2ludCA9
IGVudHJ5cG9pbnQ7CisgICAgbV9hcml0eUNoZWNrRW50cnlwb2ludCA9IGVudHJ5cG9pbnQ7CiB9
CiAKLUpJVENvZGU6OkNvZGVQdHIgSklUQ29kZTo6YWRkcmVzc0ZvckNhbGwoKQordm9pZCBKSVRD
b2RlOjppbml0aWFsaXplQWRkcmVzc0ZvckNhbGwoQ29kZVB0ciBhZGRyZXNzKQogewotICAgIFJF
TEVBU0VfQVNTRVJUKG1fZW50cnlwb2ludCk7Ci0gICAgcmV0dXJuIG1fZW50cnlwb2ludC5jb2Rl
KCk7CisgICAgbV9hZGRyZXNzRm9yQ2FsbCA9IGFkZHJlc3M7Cit9CisKK0pJVENvZGU6OkNvZGVQ
dHIgSklUQ29kZTo6YWRkcmVzc0ZvckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hl
Y2tNb2RlIGFyaXR5Q2hlY2ssIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkKK3sKKyAgICBzd2l0
Y2ggKGFyaXR5Q2hlY2spIHsKKyAgICBjYXNlIEFyaXR5Q2hlY2tOb3RSZXF1aXJlZDoKKyAgICAg
ICAgcmV0dXJuIG1fYWRkcmVzc0ZvckNhbGw7CisgICAgY2FzZSBNdXN0Q2hlY2tBcml0eToKKyAg
ICAgICAgcmV0dXJuIG1fYXJpdHlDaGVja0VudHJ5cG9pbnQuY29kZSgpOworICAgIH0KKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBDb2RlUHRyKCk7CiB9CiAK
IHZvaWQqIEpJVENvZGU6OmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkK
IHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQpOwotICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNoYXIqPihtX2VudHJ5cG9pbnQuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkp
ICsgb2Zmc2V0OworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2FkZHJlc3NG
b3JDYWxsLmV4ZWN1dGFibGVBZGRyZXNzKCkpICsgb2Zmc2V0OwogfQogCiB2b2lkKiBKSVRDb2Rl
OjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2Vu
dHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgY2FuJ3QgcGF0Y2ggRlRMIGNvZGUsIHlldC4gRXZlbiBp
ZiB3ZSBkaWQsIGl0J3Mgbm90IGNsZWFyIHRoYXQgd2Ugd291bGQgZG8gc28KICAgICAvLyB0aHJv
dWdoIHRoaXMgQVBJLgogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04Myw4
ICs5MSw2IEBAIHZvaWQqIEpJVENvZGU6OmRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV8KIAogdW5z
aWduZWQgSklUQ29kZTo6b2Zmc2V0T2Yodm9pZCopCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9l
bnRyeXBvaW50KTsKLQogICAgIC8vIFdlIGN1cnJlbnRseSBkb24ndCBoYXZlIHZpc2liaWxpdHkg
aW50byB0aGUgRlRMIGNvZGUuCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gMDsKQEAgLTkyLDggKzk4LDYgQEAgdW5zaWduZWQgSklUQ29kZTo6b2Zmc2V0T2Yo
dm9pZCopCiAKIHNpemVfdCBKSVRDb2RlOjpzaXplKCkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVCht
X2VudHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgZG9uJ3Qga25vdyB0aGUgc2l6ZSBvZiBGVEwgY29k
ZSwgeWV0LiBNYWtlIGEgd2lsZCBndWVzcy4gVGhpcyBpcyBtb3N0bHkgdXNlZCBmb3IKICAgICAv
LyBHQyBsb2FkIGVzdGltYXRlcy4KICAgICByZXR1cm4gMTAwMDsKQEAgLTEwMSw4ICsxMDUsNiBA
QCBzaXplX3QgSklUQ29kZTo6c2l6ZSgpCiAKIGJvb2wgSklUQ29kZTo6Y29udGFpbnModm9pZCop
CiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLQogICAgIC8vIFdlIGhhdmUg
bm8gaWRlYSB3aGF0IGFkZHJlc3NlcyB0aGUgRlRMIGNvZGUgY29udGFpbnMsIHlldC4KICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRGR0NvbW1vbkRhdGEuaCIKICNpbmNsdWRlICJGVExP
U1JFeGl0LmgiCiAjaW5jbHVkZSAiRlRMU3RhY2tNYXBzLmgiCisjaW5jbHVkZSAiRlRMVW53aW5k
SW5mby5oIgogI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJMTFZNQVBJLmgiCiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWRBcnJheS5oPgpAQCAtNDYsMTcgKzQ3LDE4IEBAIHB1YmxpYzoK
ICAgICBKSVRDb2RlKCk7CiAgICAgfkpJVENvZGUoKTsKICAgICAKLSAgICBDb2RlUHRyIGFkZHJl
c3NGb3JDYWxsKCk7Ci0gICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qg
b2Zmc2V0KTsKLSAgICB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpOwot
ICAgIHVuc2lnbmVkIG9mZnNldE9mKHZvaWQqIHBvaW50ZXJJbnRvQ29kZSk7Ci0gICAgc2l6ZV90
IHNpemUoKTsKLSAgICBib29sIGNvbnRhaW5zKHZvaWQqKTsKKyAgICBDb2RlUHRyIGFkZHJlc3NG
b3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9kZSwgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Nb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkKiBleGVjdXRhYmxlQWRkcmVzc0F0T2Zm
c2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRlOworICAgIHZvaWQqIGRhdGFBZGRyZXNzQXRPZmZz
ZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CisgICAgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCog
cG9pbnRlckludG9Db2RlKSBvdmVycmlkZTsKKyAgICBzaXplX3Qgc2l6ZSgpIG92ZXJyaWRlOwor
ICAgIGJvb2wgY29udGFpbnModm9pZCopIG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgaW5pdGlh
bGl6ZUV4aXRUaHVua3MoQ29kZVJlZik7CiAgICAgdm9pZCBhZGRIYW5kbGUoUGFzc1JlZlB0cjxF
eGVjdXRhYmxlTWVtb3J5SGFuZGxlPik7CiAgICAgdm9pZCBhZGREYXRhU2VjdGlvbihSZWZDb3Vu
dGVkQXJyYXk8TFNlY3Rpb25Xb3JkPik7Ci0gICAgdm9pZCBpbml0aWFsaXplQ29kZShDb2RlUmVm
IGVudHJ5cG9pbnQpOworICAgIHZvaWQgaW5pdGlhbGl6ZUFyaXR5Q2hlY2tFbnRyeXBvaW50KENv
ZGVSZWYpOworICAgIHZvaWQgaW5pdGlhbGl6ZUFkZHJlc3NGb3JDYWxsKENvZGVQdHIpOwogICAg
IAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4+JiBoYW5k
bGVzKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGVzOyB9CiAgICAgY29uc3QgVmVjdG9yPFJlZkNv
dW50ZWRBcnJheTxMU2VjdGlvbldvcmQ+PiYgZGF0YVNlY3Rpb25zKCkgY29uc3QgeyByZXR1cm4g
bV9kYXRhU2VjdGlvbnM7IH0KQEAgLTY5LDExICs3MSwxMyBAQCBwdWJsaWM6CiAgICAgREZHOjpD
b21tb25EYXRhIGNvbW1vbjsKICAgICBTZWdtZW50ZWRWZWN0b3I8T1NSRXhpdCwgOD4gb3NyRXhp
dDsKICAgICBTdGFja01hcHMgc3RhY2ttYXBzOworICAgIFVud2luZEluZm8gdW53aW5kSW5mbzsK
ICAgICAKIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZkNvdW50ZWRBcnJheTxMU2VjdGlvbldvcmQ+
PiBtX2RhdGFTZWN0aW9uczsKICAgICBWZWN0b3I8UmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5k
bGU+PiBtX2hhbmRsZXM7Ci0gICAgQ29kZVJlZiBtX2VudHJ5cG9pbnQ7CisgICAgQ29kZVB0ciBt
X2FkZHJlc3NGb3JDYWxsOworICAgIENvZGVSZWYgbV9hcml0eUNoZWNrRW50cnlwb2ludDsKICAg
ICBDb2RlUmVmIG1fZXhpdFRodW5rczsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMSklURmluYWxpemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NDUsNiArNDUsMjIgQEAgSklURmluYWxpemVyOjp+SklURmluYWxpemVyKCkKIHsKIH0KIAorc2l6
ZV90IEpJVEZpbmFsaXplcjo6Y29kZVNpemUoKQoreworICAgIHNpemVfdCByZXN1bHQgPSAwOwor
ICAgIAorICAgIHJlc3VsdCArPSBleGl0VGh1bmtzTGlua0J1ZmZlci0+c2l6ZSgpOworICAgIHJl
c3VsdCArPSBlbnRyeXBvaW50TGlua0J1ZmZlci0+c2l6ZSgpOworICAgIGlmIChzaWRlQ29kZUxp
bmtCdWZmZXIpCisgICAgICAgIHJlc3VsdCArPSBzaWRlQ29kZUxpbmtCdWZmZXItPnNpemUoKTsK
KyAgICByZXN1bHQgKz0gaGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXItPnNpemUoKTsKKyAgICAK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSBqaXRDb2RlLT5oYW5kbGVzKCkuc2l6ZSgpOyBpLS07KQor
ICAgICAgICByZXN1bHQgKz0gaml0Q29kZS0+aGFuZGxlcygpW2ldLT5zaXplSW5CeXRlcygpOwor
ICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6
ZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTczLDkgKzg5LDcg
QEAgYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogICAgICAgICAgICAgZXhp
dFRodW5rc0xpbmtCdWZmZXItPmxpbmsoCiAgICAgICAgICAgICAgICAgaW5mby5tX3RodW5rSnVt
cCwKICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCgKLSAgICAgICAgICAgICAgICAg
ICAgbV9wbGFuLnZtLmZ0bFRodW5rcy0+Z2V0T1NSRXhpdEdlbmVyYXRpb25UaHVuaygKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcGxhbi52bSwgTG9jYXRpb246OmZvclN0YWNrbWFwcygKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmaml0Q29kZS0+c3RhY2ttYXBzLCBpdGVyLT52YWx1
ZS5sb2NhdGlvbnNbMF0pKS5jb2RlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9wbGFuLnZt
LmdldENUSVN0dWIob3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcikuY29kZSgpKSk7CiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGppdENvZGUtPmluaXRpYWxpemVFeGl0VGh1bmtz
KApAQCAtMTAyLDE1ICsxMTYsMjYgQEAgYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rp
b24oKQogICAgICAgICAgICAgLmV4ZWN1dGFibGVNZW1vcnkoKSk7CiAgICAgfQogICAgIAorICAg
IGlmIChoYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlcikgeworICAgICAgICBqaXRDb2RlLT5hZGRI
YW5kbGUoRklOQUxJWkVfREZHX0NPREUoCisgICAgICAgICAgICAqaGFuZGxlRXhjZXB0aW9uc0xp
bmtCdWZmZXIsCisgICAgICAgICAgICAoIkZUTCBleGNlcHRpb24gaGFuZGxlciBmb3IgJXMiLAor
ICAgICAgICAgICAgICAgIHRvQ1N0cmluZyhDb2RlQmxvY2tXaXRoSklUVHlwZShtX3BsYW4uY29k
ZUJsb2NrLmdldCgpLCBKSVRDb2RlOjpGVExKSVQpKS5kYXRhKCkpKQorICAgICAgICAgICAgLmV4
ZWN1dGFibGVNZW1vcnkoKSk7CisgICAgfQorICAgIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciB3aXRoQXJpdHlDaGVjazsKICAgICBpZiAoYXJpdHlDaGVjay5pc1NldCgpKQogICAgICAgICB3
aXRoQXJpdHlDaGVjayA9IGVudHJ5cG9pbnRMaW5rQnVmZmVyLT5sb2NhdGlvbk9mKGFyaXR5Q2hl
Y2spOwotICAgIGppdENvZGUtPmluaXRpYWxpemVDb2RlKAorICAgIGppdENvZGUtPmluaXRpYWxp
emVBcml0eUNoZWNrRW50cnlwb2ludCgKICAgICAgICAgRklOQUxJWkVfREZHX0NPREUoCiAgICAg
ICAgICAgICAqZW50cnlwb2ludExpbmtCdWZmZXIsCiAgICAgICAgICAgICAoIkZUTCBlbnRyeXBv
aW50IHRodW5rIGZvciAlcyB3aXRoIExMVk0gZ2VuZXJhdGVkIGNvZGUgYXQgJXAiLCB0b0NTdHJp
bmcoQ29kZUJsb2NrV2l0aEpJVFR5cGUobV9wbGFuLmNvZGVCbG9jay5nZXQoKSwgSklUQ29kZTo6
RlRMSklUKSkuZGF0YSgpLCBmdW5jdGlvbikpKTsKICAgICAKLSAgICBtX3BsYW4uY29kZUJsb2Nr
LT5zZXRKSVRDb2RlKGppdENvZGUsIHdpdGhBcml0eUNoZWNrKTsKKyAgICBtX3BsYW4uY29kZUJs
b2NrLT5zZXRKSVRDb2RlKGppdENvZGUpOworICAgIAorICAgIGlmIChtX3BsYW4uY29tcGlsYXRp
b24pCisgICAgICAgIG1fcGxhbi52bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmFkZENvbXBpbGF0
aW9uKG1fcGxhbi5jb21waWxhdGlvbik7CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2LDEyICs0NiwxNCBAQCBwdWJsaWM6CiAgICAgSklURmluYWxp
emVyKERGRzo6UGxhbiYpOwogICAgIHZpcnR1YWwgfkpJVEZpbmFsaXplcigpOwogICAgIAotICAg
IGJvb2wgZmluYWxpemUoKTsKLSAgICBib29sIGZpbmFsaXplRnVuY3Rpb24oKTsKKyAgICBzaXpl
X3QgY29kZVNpemUoKSBvdmVycmlkZTsKKyAgICBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBmaW5hbGl6ZUZ1bmN0aW9uKCkgb3ZlcnJpZGU7CiAKICAgICBPd25QdHI8TGlua0J1
ZmZlcj4gZXhpdFRodW5rc0xpbmtCdWZmZXI7CiAgICAgT3duUHRyPExpbmtCdWZmZXI+IGVudHJ5
cG9pbnRMaW5rQnVmZmVyOwogICAgIE93blB0cjxMaW5rQnVmZmVyPiBzaWRlQ29kZUxpbmtCdWZm
ZXI7CisgICAgT3duUHRyPExpbmtCdWZmZXI+IGhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyOwog
ICAgIFZlY3RvcjxTbG93UGF0aENhbGw+IHNsb3dQYXRoQ2FsbHM7IC8vIENhbGxzIGluc2lkZSB0
aGUgc2lkZSBjb2RlLgogICAgIFZlY3RvcjxPU1JFeGl0Q29tcGlsYXRpb25JbmZvPiBvc3JFeGl0
OwogICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBhcml0eUNoZWNrOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExKU0NhbGwuaCIKKworI2lmIEVOQUJMRShGVExf
SklUKQorCisjaW5jbHVkZSAiREZHTm9kZS5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEZUTCB7CisKK0pTQ2FsbDo6SlNDYWxsKHVuc2lnbmVkIHN0YWNrbWFwSUQsIERGRzo6Tm9kZSog
bm9kZSkKKyAgICA6IG1fc3RhY2ttYXBJRChzdGFja21hcElEKQorICAgICwgbV9ub2RlKG5vZGUp
CisgICAgLCBtX2luc3RydWN0aW9uT2Zmc2V0KDApCit7Cit9CisKK3ZvaWQgSlNDYWxsOjplbWl0
KENDYWxsSGVscGVycyYgaml0KQoreworICAgIENDYWxsSGVscGVyczo6SnVtcCBzbG93UGF0aCA9
IGppdC5icmFuY2hQdHJXaXRoUGF0Y2goCisgICAgICAgIENDYWxsSGVscGVyczo6Tm90RXF1YWws
IEdQUkluZm86OnJlZ1QwLCBtX3RhcmdldFRvQ2hlY2ssCisgICAgICAgIENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cigwKSk7CisgICAgCisgICAgaml0LmxvYWRQdHIoCisgICAgICAgIENDYWxs
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZTY29w
ZUNoYWluKCkpLAorICAgICAgICBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlNjQoCisg
ICAgICAgIEdQUkluZm86OnJlZ1QxLAorICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCisg
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAg
ICAgc2l6ZW9mKFJlZ2lzdGVyKSAqIChKU1N0YWNrOjpTY29wZUNoYWluIC0gSlNTdGFjazo6Q2Fs
bGVyRnJhbWVBbmRQQ1NpemUpKSk7CisgICAgCisgICAgbV9mYXN0Q2FsbCA9IGppdC5uZWFyQ2Fs
bCgpOworICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKKyAgICAKKyAg
ICBzbG93UGF0aC5saW5rKCZqaXQpOworICAgIG1fc2xvd0NhbGwgPSBqaXQubmVhckNhbGwoKTsK
KyAgICAKKyAgICBkb25lLmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgSlNDYWxsOjpsaW5rKFZNJiB2
bSwgTGlua0J1ZmZlciYgbGlua0J1ZmZlciwgQ2FsbExpbmtJbmZvJiBjYWxsSW5mbykKK3sKKyAg
ICBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IgPSBsaW5rVGh1bmtHZW5lcmF0b3JGb3IoCisgICAg
ICAgIG1fbm9kZS0+b3AoKSA9PSBERkc6OkNvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBD
b2RlRm9yQ2FsbCwKKyAgICAgICAgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKKyAgICAKKyAgICBs
aW5rQnVmZmVyLmxpbmsoCisgICAgICAgIG1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKHZtLmdldENU
SVN0dWIoZ2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgIAorICAg
IGNhbGxJbmZvLmlzRlRMID0gdHJ1ZTsKKyAgICBjYWxsSW5mby5jYWxsVHlwZSA9IG1fbm9kZS0+
b3AoKSA9PSBERkc6OkNvbnN0cnVjdCA/IENhbGxMaW5rSW5mbzo6Q29uc3RydWN0IDogQ2FsbExp
bmtJbmZvOjpDYWxsOworICAgIGNhbGxJbmZvLmNvZGVPcmlnaW4gPSBtX25vZGUtPmNvZGVPcmln
aW47CisgICAgY2FsbEluZm8uY2FsbFJldHVybkxvY2F0aW9uID0gbGlua0J1ZmZlci5sb2NhdGlv
bk9mTmVhckNhbGwobV9zbG93Q2FsbCk7CisgICAgY2FsbEluZm8uaG90UGF0aEJlZ2luID0gbGlu
a0J1ZmZlci5sb2NhdGlvbk9mKG1fdGFyZ2V0VG9DaGVjayk7CisgICAgY2FsbEluZm8uaG90UGF0
aE90aGVyID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9mYXN0Q2FsbCk7CisgICAg
Y2FsbEluZm8uY2FsbGVlR1BSID0gR1BSSW5mbzo6cmVnVDA7Cit9CisKK30gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBG
VExKU0NhbGxfaAorI2RlZmluZSBGVExKU0NhbGxfaAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisK
KyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJDYWxsTGlua0luZm8uaCIKKyNp
bmNsdWRlICJDb2RlT3JpZ2luLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorCituYW1lc3Bh
Y2UgSlNDIHsKKworbmFtZXNwYWNlIERGRyB7CitzdHJ1Y3QgTm9kZTsKK30KKworbmFtZXNwYWNl
IEZUTCB7CisKK2NsYXNzIEpTQ2FsbCB7CitwdWJsaWM6CisgICAgSlNDYWxsKHVuc2lnbmVkIHN0
YWNrbWFwSUQsIERGRzo6Tm9kZSopOworICAgIAorICAgIHZvaWQgZW1pdChDQ2FsbEhlbHBlcnMm
KTsKKyAgICB2b2lkIGxpbmsoVk0mLCBMaW5rQnVmZmVyJiwgQ2FsbExpbmtJbmZvJik7CisgICAg
CisgICAgdW5zaWduZWQgc3RhY2ttYXBJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2ttYXBJRDsg
fQorICAgIAorICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IEpTQ2FsbCYgb3RoZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbV9pbnN0cnVjdGlvbk9mZnNldCA8IG90aGVyLm1faW5zdHJ1
Y3Rpb25PZmZzZXQ7CisgICAgfQorICAgIAorcHJpdmF0ZToKKyAgICB1bnNpZ25lZCBtX3N0YWNr
bWFwSUQ7CisgICAgREZHOjpOb2RlKiBtX25vZGU7CisgICAgQ0NhbGxIZWxwZXJzOjpEYXRhTGFi
ZWxQdHIgbV90YXJnZXRUb0NoZWNrOworICAgIENDYWxsSGVscGVyczo6Q2FsbCBtX2Zhc3RDYWxs
OworICAgIENDYWxsSGVscGVyczo6Q2FsbCBtX3Nsb3dDYWxsOworCitwdWJsaWM6CisgICAgdWlu
dDMyX3QgbV9pbnN0cnVjdGlvbk9mZnNldDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpG
VEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMSlNDYWxsX2gK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCShyZXZpc2lvbiAxNjI5
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAorI2luY2x1ZGUgIkFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAj
aW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRU
eXBlLmgiCkBAIC0zNywxMjEgKzM4LDE1MCBAQAogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5j
bHVkZSAiTExWTUFQSS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJQcm9m
aWxlckNvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAogdXNpbmcgbmFtZXNwYWNlIERGRzsKIAotc3Rh
dGljIHZvaWQgY29tcGlsZUVudHJ5KENDYWxsSGVscGVycyYgaml0KQotewotICAgIGppdC5wcmVz
ZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6cmVnVDIpOwotICAgIGppdC5lbWl0
UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjpyZWdUMik7Ci0gICAgaml0LmVt
aXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcihqaXQuY29kZUJsb2NrKCksIEpTU3RhY2s6
OkNvZGVCbG9jayk7Ci19Ci0KIHZvaWQgbGluayhTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSBzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jazsKKyAgICBHcmFwaCYgZ3Jh
cGggPSBzdGF0ZS5ncmFwaDsKKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGdyYXBoLm1fY29k
ZUJsb2NrOworICAgIFZNJiB2bSA9IGdyYXBoLm1fdm07CiAgICAgCiAgICAgLy8gTExWTSB3aWxs
IGNyZWF0ZSBpdHMgb3duIGp1bXAgdGFibGVzIGFzIG5lZWRlZC4KICAgICBjb2RlQmxvY2stPmNs
ZWFyU3dpdGNoSnVtcFRhYmxlcygpOwogICAgIAotICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5m
cmFtZVJlZ2lzdGVyQ291bnQgPSBzdGF0ZS5ncmFwaC5mcmFtZVJlZ2lzdGVyQ291bnQoKTsKLSAg
ICBzdGF0ZS5qaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCA9IHN0
YXRlLmdyYXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQoKTsKKyAgICAvLyBGSVhNRTog
TmVlZCB0byBrbm93IHRoZSByZWFsIGZyYW1lIHJlZ2lzdGVyIGNvdW50LgorICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU3MjcKKyAgICBzdGF0ZS5qaXRD
b2RlLT5jb21tb24uZnJhbWVSZWdpc3RlckNvdW50ID0gMTAwMDsKKyAgICAKKyAgICBzdGF0ZS5q
aXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCA9IGdyYXBoLnJlcXVp
cmVkUmVnaXN0ZXJDb3VudEZvckV4aXQoKTsKICAgICAKLSAgICBpZiAoIXN0YXRlLmdyYXBoLm1f
aW5saW5lQ2FsbEZyYW1lcy0+aXNFbXB0eSgpKQotICAgICAgICBzdGF0ZS5qaXRDb2RlLT5jb21t
b24uaW5saW5lQ2FsbEZyYW1lcyA9IHN0ZDo6bW92ZShzdGF0ZS5ncmFwaC5tX2lubGluZUNhbGxG
cmFtZXMpOworICAgIGlmICghZ3JhcGgubV9pbmxpbmVDYWxsRnJhbWVzLT5pc0VtcHR5KCkpCisg
ICAgICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5pbmxpbmVDYWxsRnJhbWVzID0gc3RkOjptb3Zl
KGdyYXBoLm1faW5saW5lQ2FsbEZyYW1lcyk7CiAgICAgCiAgICAgLy8gQ3JlYXRlIHRoZSBlbnRy
eXBvaW50LiBOb3RlIHRoYXQgd2UgdXNlIHRoaXMgZW50cnlwb2ludCB0b3RhbGx5IGRpZmZlcmVu
dGx5CiAgICAgLy8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgd2UncmUgZG9pbmcgT1NSIGVudHJ5IG9y
IG5vdC4KLSAgICAvLyBGSVhNRTogRXhjZXB0IGZvciBPU1IgZW50cnksIHRoaXMgaXMgYSB0b3Rh
bCBrbHVkZ2UgLSBMTFZNIHNob3VsZCBqdXN0IHVzZSBvdXIKLSAgICAvLyBjYWxsaW5nIGNvbnZl
bnRpb24uCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MzYyMQotICAgIENDYWxsSGVscGVycyBqaXQoJnN0YXRlLmdyYXBoLm1fdm0sIGNvZGVCbG9jayk7
CisgICAgQ0NhbGxIZWxwZXJzIGppdCgmdm0sIGNvZGVCbG9jayk7CiAgICAgCiAgICAgT3duUHRy
PExpbmtCdWZmZXI+IGxpbmtCdWZmZXI7CiAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBhcml0eUNo
ZWNrOwotICAgIHN3aXRjaCAoc3RhdGUuZ3JhcGgubV9wbGFuLm1vZGUpIHsKLSAgICBjYXNlIEZU
TE1vZGU6IHsKLSAgICAgICAgY29tcGlsZUVudHJ5KGppdCk7CisKKyAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MgZnJhbWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgIENDYWxsSGVs
cGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIC1zdGF0aWNfY2FzdDxpbnQzMl90PihzaXplb2Yo
dm9pZCopKSk7CiAgICAgCi0gICAgICAgIC8vIFRoaXMgcGFydCBpcyBvbmx5IG5lY2Vzc2FyeSBm
b3IgZnVuY3Rpb25zLiBXZSBjdXJyZW50bHkgb25seSBjb21waWxlIGZ1bmN0aW9ucy4KLSAgICAg
ICAgCi0gICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgZnJvbUFyaXR5Q2hlY2sgPSBqaXQubGFi
ZWwoKTsKLSAgICAgICAgCi0gICAgICAgIC8vIFBsYW50IGEgY2hlY2sgdGhhdCBzdWZmaWNpZW50
IHNwYWNlIGlzIGF2YWlsYWJsZSBpbiB0aGUgSlNTdGFjay4KLSAgICAgICAgLy8gRklYTUU6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjI5MQotICAgICAgICBqaXQu
YWRkUHRyKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodmlydHVhbFJl
Z2lzdGVyRm9yTG9jYWwoc3RhdGUuaml0Q29kZS0+Y29tbW9uLnJlcXVpcmVkUmVnaXN0ZXJDb3Vu
dEZvckV4aXQpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksCi0gICAgICAgICAgICBHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICBDQ2FsbEhl
bHBlcnM6Okp1bXAgc3RhY2tDaGVjayA9IGppdC5icmFuY2hQdHIoCi0gICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFib3ZlLAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJl
c3Moc3RhdGUuZ3JhcGgubV92bS5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksCi0gICAgICAgICAg
ICBHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgZnJvbVN0YWNr
Q2hlY2sgPSBqaXQubGFiZWwoKTsKLSAgICAgICAgCi0gICAgICAgIGppdC5zZXR1cEFyZ3VtZW50
c0V4ZWNTdGF0ZSgpOwotICAgICAgICBqaXQubW92ZSgKLSAgICAgICAgICAgIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihzdGF0ZS5nZW5lcmF0ZWRG
dW5jdGlvbikpLAotICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgICAgIGpp
dC5jYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgICAgICBqaXQuZW1pdEdldFJldHVyblBD
RnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIGppdC5lbWl0
R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyKTsKLSAgICAgICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQ
UkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0LnJldCgpOwotICAgICAgICAKLSAgICAgICAgc3Rh
Y2tDaGVjay5saW5rKCZqaXQpOwotICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoY29kZUJsb2NrKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICAgICAgaml0
Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
Ci0gICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoQ2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNCeXRlY29kZU9mZnNldCgwKSksCi0g
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0
ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7Ci0gICAgICAgIGppdC5zdG9yZVB0cihHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgJnN0YXRlLmdyYXBoLm1fdm0udG9wQ2FsbEZyYW1lKTsK
LSAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxTdGFja0NoZWNrID0gaml0LmNhbGwoKTsK
LSNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgICAgIC8vIEZJWE1FOiBuZWVkIHRvIG1ha2UgdGhp
cyBjYWxsIHJlZ2lzdGVyIHdpdGggZXhjZXB0aW9uIGhhbmRsaW5nIHNvbWVob3cuIFRoaXMgaXMK
LSAgICAgICAgLy8gcGFydCBvZiBhIGJpZ2dlciBwcm9ibGVtOiBGVEwgc2hvdWxkIGJlIGFibGUg
dG8gaGFuZGxlIGV4Y2VwdGlvbnMuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTM2MjIKLSAgICAgICAgLy8gVW50aWwgdGhlbiwgdXNlIGEgSklU
IEFTU0VSVC4KLSAgICAgICAgaml0LmxvYWQ2NChzdGF0ZS5ncmFwaC5tX3ZtLmFkZHJlc3NPZkV4
Y2VwdGlvbigpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgIGppdC5qaXRBc3NlcnRJc051bGwo
R1BSSW5mbzo6cmVnVDApOwotI2VuZGlmCi0gICAgICAgIGppdC5qdW1wKGZyb21TdGFja0NoZWNr
KTsKKyAgICBpZiAoUHJvZmlsZXI6OkNvbXBpbGF0aW9uKiBjb21waWxhdGlvbiA9IGdyYXBoLmNv
bXBpbGF0aW9uKCkpIHsKKyAgICAgICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKAorICAg
ICAgICAgICAgUHJvZmlsZXI6Ok9yaWdpblN0YWNrKCksCisgICAgICAgICAgICB0b0NTdHJpbmco
IkdlbmVyYXRlZCBGVEwgSklUIGNvZGUgZm9yICIsIENvZGVCbG9ja1dpdGhKSVRUeXBlKGNvZGVC
bG9jaywgSklUQ29kZTo6RlRMSklUKSwgIiwgaW5zdHJ1Y3Rpb24gY291bnQgPSAiLCBncmFwaC5t
X2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25Db3VudCgpLCAiOlxuIikpOworICAgICAgICAKKyAgICAg
ICAgZ3JhcGgubV9kb21pbmF0b3JzLmNvbXB1dGVJZk5lY2Vzc2FyeShncmFwaCk7CisgICAgICAg
IGdyYXBoLm1fbmF0dXJhbExvb3BzLmNvbXB1dGVJZk5lY2Vzc2FyeShncmFwaCk7CisgICAgICAg
IAorICAgICAgICBjb25zdCBjaGFyKiBwcmVmaXggPSAiICAgICI7CisgICAgICAgIAorICAgICAg
ICBEdW1wQ29udGV4dCBkdW1wQ29udGV4dDsKKyAgICAgICAgU3RyaW5nUHJpbnRTdHJlYW0gb3V0
OworICAgICAgICBOb2RlKiBsYXN0Tm9kZSA9IDA7CisgICAgICAgIGZvciAoc2l6ZV90IGJsb2Nr
SW5kZXggPSAwOyBibG9ja0luZGV4IDwgZ3JhcGgubnVtQmxvY2tzKCk7ICsrYmxvY2tJbmRleCkg
eworICAgICAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSBncmFwaC5ibG9jayhibG9ja0luZGV4
KTsKKyAgICAgICAgICAgIGlmICghYmxvY2spCisgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGdyYXBoLmR1bXBCbG9ja0hlYWRlcihvdXQsIHByZWZp
eCwgYmxvY2ssIEdyYXBoOjpEdW1wTGl2ZVBoaXNPbmx5LCAmZHVtcENvbnRleHQpOworICAgICAg
ICAgICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKFByb2ZpbGVyOjpPcmlnaW5TdGFjaygp
LCBvdXQudG9DU3RyaW5nKCkpOworICAgICAgICAgICAgb3V0LnJlc2V0KCk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IGJs
b2NrLT5zaXplKCk7ICsrbm9kZUluZGV4KSB7CisgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9
IGJsb2NrLT5hdChub2RlSW5kZXgpOworICAgICAgICAgICAgICAgIGlmICghbm9kZS0+d2lsbEhh
dmVDb2RlR2VuT3JPU1IoKSAmJiAhT3B0aW9uczo6c2hvd0FsbERGR05vZGVzKCkpCisgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IFByb2ZpbGVyOjpPcmlnaW5TdGFjayBzdGFjazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBpZiAobm9kZS0+Y29kZU9yaWdpbi5pc1NldCgpKSB7CisgICAgICAgICAgICAgICAg
ICAgIHN0YWNrID0gUHJvZmlsZXI6Ok9yaWdpblN0YWNrKAorICAgICAgICAgICAgICAgICAgICAg
ICAgKnZtLm1fcGVyQnl0ZWNvZGVQcm9maWxlciwgY29kZUJsb2NrLCBub2RlLT5jb2RlT3JpZ2lu
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
aWYgKGdyYXBoLmR1bXBDb2RlT3JpZ2luKG91dCwgcHJlZml4LCBsYXN0Tm9kZSwgbm9kZSwgJmR1
bXBDb250ZXh0KSkgeworICAgICAgICAgICAgICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3Jp
cHRpb24oc3RhY2ssIG91dC50b0NTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIG91dC5y
ZXNldCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBncmFwaC5kdW1wKG91dCwgcHJlZml4LCBub2RlLCAmZHVtcENvbnRleHQpOworICAgICAg
ICAgICAgICAgIGNvbXBpbGF0aW9uLT5hZGREZXNjcmlwdGlvbihzdGFjaywgb3V0LnRvQ1N0cmlu
ZygpKTsKKyAgICAgICAgICAgICAgICBvdXQucmVzZXQoKTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBpZiAobm9kZS0+Y29kZU9yaWdpbi5pc1NldCgpKQorICAgICAgICAgICAg
ICAgICAgICBsYXN0Tm9kZSA9IG5vZGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIGR1bXBDb250ZXh0LmR1bXAob3V0LCBwcmVmaXgpOworICAgICAgICBjb21w
aWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oUHJvZmlsZXI6Ok9yaWdpblN0YWNrKCksIG91dC50b0NT
dHJpbmcoKSk7CisgICAgICAgIG91dC5yZXNldCgpOworICAgICAgICAKKyAgICAgICAgb3V0LnBy
aW50KCIgICAgRGlzYXNzZW1ibHk6XG4iKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHN0YXRlLmppdENvZGUtPmhhbmRsZXMoKS5zaXplKCk7ICsraSkgeworICAgICAgICAgICAg
aWYgKHN0YXRlLmNvZGVTZWN0aW9uTmFtZXNbaV0gIT0gIl9fdGV4dCIpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBFeGVjdXRhYmxlTWVt
b3J5SGFuZGxlKiBoYW5kbGUgPSBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKClbaV0uZ2V0KCk7Cisg
ICAgICAgICAgICAgICAgZGlzYXNzZW1ibGUoCisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cihoYW5kbGUtPnN0YXJ0KCkpLCBoYW5kbGUtPnNpemVJbkJ5dGVzKCksCisg
ICAgICAgICAgICAgICAgICAgICIgICAgICAiLCBvdXQsIExMVk1TdWJzZXQpOworICAgICAgICB9
CisgICAgICAgIGNvbXBpbGF0aW9uLT5hZGREZXNjcmlwdGlvbihQcm9maWxlcjo6T3JpZ2luU3Rh
Y2soKSwgb3V0LnRvQ1N0cmluZygpKTsKKyAgICAgICAgb3V0LnJlc2V0KCk7CiAgICAgICAgIAot
ICAgICAgICBhcml0eUNoZWNrID0gaml0LmxhYmVsKCk7Ci0gICAgICAgIGNvbXBpbGVFbnRyeShq
aXQpOworICAgICAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24uY29tcGlsYXRpb24gPSBjb21waWxh
dGlvbjsKKyAgICB9CisgICAgCisgICAgc3dpdGNoIChncmFwaC5tX3BsYW4ubW9kZSkgeworICAg
IGNhc2UgRlRMTW9kZTogeworICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1haW5QYXRo
SnVtcHM7CisgICAgCiAgICAgICAgIGppdC5sb2FkMzIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OnBheWxvYWRGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihKU1N0YWNrOjpBcmd1
bWVudENvdW50KSksCisgICAgICAgICAgICBmcmFtZS53aXRoT2Zmc2V0KHNpemVvZihSZWdpc3Rl
cikgKiBKU1N0YWNrOjpBcmd1bWVudENvdW50KSwKICAgICAgICAgICAgIEdQUkluZm86OnJlZ1Qx
KTsKLSAgICAgICAgaml0LmJyYW5jaDMyKAorICAgICAgICBtYWluUGF0aEp1bXBzLmFwcGVuZChq
aXQuYnJhbmNoMzIoCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFib3ZlT3JFcXVhbCwgR1BS
SW5mbzo6cmVnVDEsCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihjb2Rl
QmxvY2stPm51bVBhcmFtZXRlcnMoKSkpCi0gICAgICAgICAgICAubGlua1RvKGZyb21Bcml0eUNo
ZWNrLCAmaml0KTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGNvZGVC
bG9jay0+bnVtUGFyYW1ldGVycygpKSkpOworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9n
dWUoKTsKICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgICAgIGppdC5zdG9yZTMyKAogICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQ2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNCeXRl
Y29kZU9mZnNldCgwKSksCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihzdGF0aWNf
Y2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7Ci0gICAgICAg
IGppdC5zdG9yZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgJnN0YXRlLmdyYXBoLm1f
dm0udG9wQ2FsbEZyYW1lKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6dGFnRm9yKEpTU3Rh
Y2s6OkFyZ3VtZW50Q291bnQpKTsKKyAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCAmdm0udG9wQ2FsbEZyYW1lKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpD
YWxsIGNhbGxBcml0eUNoZWNrID0gaml0LmNhbGwoKTsKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAg
ICAgICAgIC8vIEZJWE1FOiBuZWVkIHRvIG1ha2UgdGhpcyBjYWxsIHJlZ2lzdGVyIHdpdGggZXhj
ZXB0aW9uIGhhbmRsaW5nIHNvbWVob3cuIFRoaXMgaXMKICAgICAgICAgLy8gcGFydCBvZiBhIGJp
Z2dlciBwcm9ibGVtOiBGVEwgc2hvdWxkIGJlIGFibGUgdG8gaGFuZGxlIGV4Y2VwdGlvbnMuCiAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjIK
ICAgICAgICAgLy8gVW50aWwgdGhlbiwgdXNlIGEgSklUIEFTU0VSVC4KLSAgICAgICAgaml0Lmxv
YWQ2NChzdGF0ZS5ncmFwaC5tX3ZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBHUFJJbmZvOjpyZWdU
MSk7CisgICAgICAgIGppdC5sb2FkNjQodm0uYWRkcmVzc09mRXhjZXB0aW9uKCksIEdQUkluZm86
OnJlZ1QxKTsKICAgICAgICAgaml0LmppdEFzc2VydElzTnVsbChHUFJJbmZvOjpyZWdUMSk7CiAj
ZW5kaWYKLSAgICAgICAgaWYgKEdQUkluZm86OnJldHVyblZhbHVlR1BSICE9IEdQUkluZm86OnJl
Z1QwKQotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUklu
Zm86OnJlZ1QwKTsKLSAgICAgICAgaml0LmJyYW5jaFRlc3QzMihDQ2FsbEhlbHBlcnM6Olplcm8s
IEdQUkluZm86OnJlZ1QwKS5saW5rVG8oZnJvbUFyaXR5Q2hlY2ssICZqaXQpOworICAgICAgICBq
aXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmVnVDApOworICAgICAg
ICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAgICAgbWFpblBhdGhKdW1wcy5hcHBl
bmQoaml0LmJyYW5jaFRlc3QzMihDQ2FsbEhlbHBlcnM6Olplcm8sIEdQUkluZm86OnJlZ1QwKSk7
CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworICAgICAgICBqaXQubW92ZShD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodm0uYXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mt
PnJldHVyblBDc0Zvcih2bSwgY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKSwgR1BSSW5mbzo6
cmVnVDUpOworICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChHUFJJ
bmZvOjpyZWdUNSwgR1BSSW5mbzo6cmVnVDAsIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSksIEdQ
UkluZm86OnJlZ1Q1KTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxBcml0eUZpeHVw
ID0gaml0LmNhbGwoKTsKLSAgICAgICAgaml0Lmp1bXAoZnJvbUFyaXR5Q2hlY2spOwotICAgICAg
ICAKLSAgICAgICAgbGlua0J1ZmZlciA9IGFkb3B0UHRyKG5ldyBMaW5rQnVmZmVyKHN0YXRlLmdy
YXBoLm1fdm0sICZqaXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOwot
ICAgICAgICBsaW5rQnVmZmVyLT5saW5rKGNhbGxTdGFja0NoZWNrLCBvcGVyYXRpb25TdGFja0No
ZWNrKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAgIG1haW5Q
YXRoSnVtcHMuYXBwZW5kKGppdC5qdW1wKCkpOworCisgICAgICAgIGxpbmtCdWZmZXIgPSBhZG9w
dFB0cihuZXcgTGlua0J1ZmZlcih2bSwgJmppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11
c3RTdWNjZWVkKSk7CiAgICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbEFyaXR5Q2hlY2ssIGNv
ZGVCbG9jay0+bV9pc0NvbnN0cnVjdG9yID8gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayA6
IG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrKTsKLSAgICAgICAgbGlua0J1ZmZlci0+bGluayhjYWxs
QXJpdHlGaXh1cCwgRnVuY3Rpb25QdHIoKHN0YXRlLmdyYXBoLm1fdm0uZ2V0Q1RJU3R1Yihhcml0
eUZpeHVwKSkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgbGlua0J1ZmZl
ci0+bGluayhjYWxsQXJpdHlGaXh1cCwgRnVuY3Rpb25QdHIoKHZtLmdldENUSVN0dWIoYXJpdHlG
aXh1cCkpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7CisgICAgICAgIGxpbmtCdWZmZXIt
PmxpbmsobWFpblBhdGhKdW1wcywgQ29kZUxvY2F0aW9uTGFiZWwoYml0d2lzZV9jYXN0PHZvaWQq
PihzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbikpKTsKKworICAgICAgICBzdGF0ZS5qaXRDb2RlLT5p
bml0aWFsaXplQWRkcmVzc0ZvckNhbGwoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGJpdHdpc2VfY2Fz
dDx2b2lkKj4oc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24pKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICAgICAgCkBAIC0xNjAsMTggKzE5MCwxNCBAQCB2b2lkIGxpbmsoU3RhdGUmIHN0YXRl
KQogICAgICAgICAvLyB2YWx1ZXMgaW50byB0aGUgc2NyYXRjaCBidWZmZXIuIEV2ZXJ5dGhpbmcg
c2hvdWxkIGJlIGdvb2QgdG8gZ28gLSBhdCB0aGlzCiAgICAgICAgIC8vIHBvaW50IHdlJ3ZlIGV2
ZW4gZG9uZSB0aGUgc3RhY2sgY2hlY2suIEJhc2ljYWxseSB3ZSBqdXN0IGhhdmUgdG8gbWFrZSB0
aGUKICAgICAgICAgLy8gY2FsbCB0byB0aGUgTExWTS1nZW5lcmF0ZWQgY29kZS4KLSAgICAgICAg
aml0LnNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7Ci0gICAgICAgIGppdC5tb3ZlKAotICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+
KHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uKSksCi0gICAgICAgICAgICBHUFJJbmZvOjpub25BcmdH
UFIwKTsKLSAgICAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgICAgIGpp
dC5lbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OnJlZ1QxKTsK
LSAgICAgICAgaml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJl
c3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICBqaXQucmV0KCk7CisgICAg
ICAgIENDYWxsSGVscGVyczo6TGFiZWwgc3RhcnQgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBtYWlu
UGF0aEp1bXAgPSBqaXQuanVtcCgpOwogICAgICAgICAKLSAgICAgICAgbGlua0J1ZmZlciA9IGFk
b3B0UHRyKG5ldyBMaW5rQnVmZmVyKAotICAgICAgICAgICAgc3RhdGUuZ3JhcGgubV92bSwgJmpp
dCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7CisgICAgICAgIGxpbmtC
dWZmZXIgPSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcih2bSwgJmppdCwgY29kZUJsb2NrLCBKSVRD
b21waWxhdGlvbk11c3RTdWNjZWVkKSk7CisgICAgICAgIGxpbmtCdWZmZXItPmxpbmsobWFpblBh
dGhKdW1wLCBDb2RlTG9jYXRpb25MYWJlbChiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRlLmdlbmVy
YXRlZEZ1bmN0aW9uKSkpOworCisgICAgICAgIHN0YXRlLmppdENvZGUtPmluaXRpYWxpemVBZGRy
ZXNzRm9yQ2FsbChsaW5rQnVmZmVyLT5sb2NhdGlvbk9mKHN0YXJ0KSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9MTFZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9MTFZNLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkRGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmgiCiAjaW5jbHVkZSAiRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5oIgorI2luY2x1ZGUgIkZUTEF2YWlsYWJsZVJlY292ZXJ5LmgiCiAjaW5j
bHVkZSAiRlRMRm9yT1NSRW50cnlKSVRDb2RlLmgiCiAjaW5jbHVkZSAiRlRMRm9ybWF0dGVkVmFs
dWUuaCIKICNpbmNsdWRlICJGVExJbmxpbmVDYWNoZVNpemUuaCIKQEAgLTUxLDYgKzUyLDEwIEBA
IHVzaW5nIG5hbWVzcGFjZSBERkc7CiAKIHN0YXRpYyBzdGQ6OmF0b21pYzxpbnQ+IGNvbXBpbGVD
b3VudGVyOwogCisvLyBGSVhNRTogR2V0IHJpZCBvZiB0aGlzIGFuZCBpbnRyb2R1Y2UgYSByZWFs
IHN0YWNrIGNoZWNrLgorLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNTY1MAorc3RhdGljIHVpbnRwdHJfdCBzdGFja0xpbWl0OworCiAvLyBVc2luZyB0aGlzIGlu
c3RlYWQgb2YgdHlwZUNoZWNrKCkgaGVscHMgdG8gcmVkdWNlIHRoZSBsb2FkIG9uIExMVk0sIGJ5
IGNyZWF0aW5nCiAvLyBzaWduaWZpY2FudGx5IGxlc3MgZGVhZCBjb2RlLgogI2RlZmluZSBGVExf
VFlQRV9DSEVDSyhsb3dWYWx1ZSwgaGlnaFZhbHVlLCB0eXBlc1Bhc3NlZFRocm91Z2gsIGZhaWxD
b25kaXRpb24pIGRvIHsgXApAQCAtOTIsMTkgKzk3LDIwIEBAIHB1YmxpYzoKICAgICAgICAgICAg
IGxsdm0tPk1vZHVsZUNyZWF0ZVdpdGhOYW1lSW5Db250ZXh0KG5hbWUuZGF0YSgpLCBtX2Z0bFN0
YXRlLmNvbnRleHQpOwogICAgICAgICAKICAgICAgICAgbV9mdGxTdGF0ZS5mdW5jdGlvbiA9IGFk
ZEZ1bmN0aW9uKAotICAgICAgICAgICAgbV9mdGxTdGF0ZS5tb2R1bGUsIG5hbWUuZGF0YSgpLCBm
dW5jdGlvblR5cGUobV9vdXQuaW50NjQsIG1fb3V0LmludFB0cikpOworICAgICAgICAgICAgbV9m
dGxTdGF0ZS5tb2R1bGUsIG5hbWUuZGF0YSgpLCBmdW5jdGlvblR5cGUobV9vdXQuaW50NjQpKTsK
ICAgICAgICAgc2V0RnVuY3Rpb25DYWxsaW5nQ29udihtX2Z0bFN0YXRlLmZ1bmN0aW9uLCBMTFZN
Q0NhbGxDb252KTsKKyAgICAgICAgaWYgKGlzWDg2KCkgJiYgT3B0aW9uczo6bGx2bURpc2FsbG93
QVZYKCkpIHsKKyAgICAgICAgICAgIC8vIEFWWCBtYWtlcyBWOC9yYXl0cmFjZSA4MCUgc2xvd2Vy
LiBJdCBtYWtlcyBLcmFrZW4vYXVkaW8tb3NjaWxsYXRvciA0LjV4CisgICAgICAgICAgICAvLyBz
bG93ZXIuIEl0IHNob3VsZCBiZSBkaXNhYmxlZC4KKyAgICAgICAgICAgIGFkZFRhcmdldERlcGVu
ZGVudEZ1bmN0aW9uQXR0cihtX2Z0bFN0YXRlLmZ1bmN0aW9uLCAidGFyZ2V0LWZlYXR1cmVzIiwg
Ii1hdngiKTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgbV9vdXQuaW5pdGlhbGl6ZSht
X2Z0bFN0YXRlLm1vZHVsZSwgbV9mdGxTdGF0ZS5mdW5jdGlvbiwgbV9oZWFwcyk7CiAgICAgICAg
IAotICAgICAgICBtX3Byb2xvZ3VlID0gYXBwZW5kQmFzaWNCbG9jayhtX2Z0bFN0YXRlLmNvbnRl
eHQsIG1fZnRsU3RhdGUuZnVuY3Rpb24pOwotICAgICAgICBtX291dC5hcHBlbmRUbyhtX3Byb2xv
Z3VlKTsKLSAgICAgICAgY3JlYXRlUGhpVmFyaWFibGVzKCk7Ci0gICAgICAgIAotICAgICAgICBt
X2NhbGxGcmFtZSA9IG1fb3V0LnBhcmFtKDApOwotICAgICAgICBtX3RhZ1R5cGVOdW1iZXIgPSBt
X291dC5jb25zdEludDY0KFRhZ1R5cGVOdW1iZXIpOwotICAgICAgICBtX3RhZ01hc2sgPSBtX291
dC5jb25zdEludDY0KFRhZ01hc2spOwotICAgICAgICAKKyAgICAgICAgbV9wcm9sb2d1ZSA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiUHJvbG9ndWUiKSk7CisgICAgICAgIExCYXNpY0Jsb2NrIHN0
YWNrT3ZlcmZsb3cgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlN0YWNrIG92ZXJmbG93IikpOwor
ICAgICAgICBtX2hhbmRsZUV4Y2VwdGlvbnMgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkhhbmRs
ZSBFeGNlcHRpb25zIikpOworCiAgICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0g
MDsgYmxvY2tJbmRleCA8IG1fZ3JhcGgubnVtQmxvY2tzKCk7ICsrYmxvY2tJbmRleCkgewogICAg
ICAgICAgICAgbV9oaWdoQmxvY2sgPSBtX2dyYXBoLmJsb2NrKGJsb2NrSW5kZXgpOwogICAgICAg
ICAgICAgaWYgKCFtX2hpZ2hCbG9jaykKQEAgLTExMiw4ICsxMTgsNDIgQEAgcHVibGljOgogICAg
ICAgICAgICAgbV9ibG9ja3MuYWRkKG1faGlnaEJsb2NrLCBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IkJsb2NrICIsICptX2hpZ2hCbG9jaykpKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAg
bV9vdXQuYXBwZW5kVG8obV9wcm9sb2d1ZSk7Ci0gICAgICAgIG1fb3V0Lmp1bXAobG93QmxvY2so
bV9ncmFwaC5ibG9jaygwKSkpOworICAgICAgICBtX291dC5hcHBlbmRUbyhtX3Byb2xvZ3VlLCBz
dGFja092ZXJmbG93KTsKKyAgICAgICAgY3JlYXRlUGhpVmFyaWFibGVzKCk7CisgICAgICAgIExW
YWx1ZSBjYXB0dXJlZEFsbG9jYSA9IG1fb3V0LmFsbG9jYShhcnJheVR5cGUobV9vdXQuaW50NjQs
IG1fZ3JhcGgubV9uZXh0TWFjaGluZUxvY2FsKSk7CisgICAgICAgIG1fY2FwdHVyZWQgPSBtX291
dC5hZGQoCisgICAgICAgICAgICBtX291dC5wdHJUb0ludChjYXB0dXJlZEFsbG9jYSwgbV9vdXQu
aW50UHRyKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKG1fZ3JhcGgubV9uZXh0TWFj
aGluZUxvY2FsICogc2l6ZW9mKFJlZ2lzdGVyKSkpOworICAgICAgICAKKyAgICAgICAgLy8gV2Ug
c2hvdWxkIG5vdCBjcmVhdGUgYW55IGFsbG9jYSdzIGFmdGVyIHRoaXMgcG9pbnQsIHNpbmNlIHRo
ZXkgd2lsbCBjZWFzZSB0bworICAgICAgICAvLyBiZSBtZW0ycmVnIGNhbmRpZGF0ZXMuCisgICAg
ICAgIAorICAgICAgICBtX2Z0bFN0YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCA9IG1fc3RhY2ttYXBJ
RHMrKzsKKyAgICAgICAgbV9vdXQuY2FsbCgKKyAgICAgICAgICAgIG1fb3V0LnN0YWNrbWFwSW50
cmluc2ljKCksIG1fb3V0LmNvbnN0SW50NjQobV9mdGxTdGF0ZS5jYXB0dXJlZFN0YWNrbWFwSUQp
LAorICAgICAgICAgICAgbV9vdXQuaW50MzJaZXJvLCBjYXB0dXJlZEFsbG9jYSk7CisgICAgICAg
IAorICAgICAgICBtX2NhbGxGcmFtZSA9IG1fb3V0LnB0clRvSW50KAorICAgICAgICAgICAgbV9v
dXQuY2FsbChtX291dC5mcmFtZUFkZHJlc3NJbnRyaW5zaWMoKSwgbV9vdXQuaW50MzJaZXJvKSwg
bV9vdXQuaW50UHRyKTsKKyAgICAgICAgbV90YWdUeXBlTnVtYmVyID0gbV9vdXQuY29uc3RJbnQ2
NChUYWdUeXBlTnVtYmVyKTsKKyAgICAgICAgbV90YWdNYXNrID0gbV9vdXQuY29uc3RJbnQ2NChU
YWdNYXNrKTsKKyAgICAgICAgCisgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmNvbnN0SW50
UHRyKGNvZGVCbG9jaygpKSwgYWRkcmVzc0ZvcihKU1N0YWNrOjpDb2RlQmxvY2spKTsKKyAgICAg
ICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgbV9vdXQuYmVsb3cobV9jYWxsRnJhbWUsIG1f
b3V0LmxvYWRQdHIobV9vdXQuYWJzb2x1dGUoJnN0YWNrTGltaXQpKSksCisgICAgICAgICAgICBz
dGFja092ZXJmbG93LCBsb3dCbG9jayhtX2dyYXBoLmJsb2NrKDApKSk7CisgICAgICAgIAorICAg
ICAgICBtX291dC5hcHBlbmRUbyhzdGFja092ZXJmbG93LCBtX2hhbmRsZUV4Y2VwdGlvbnMpOwor
ICAgICAgICAvLyBGSVhNRTogRG8gYSByZWFsIHN0YWNrIGNoZWNrIGFuZCB0aHJvdyB0aGUgZXhj
ZXB0aW9uIGFwcHJvcHJpYXRlbHkuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjU2NTAKKyAgICAgICAgbV9vdXQuY3Jhc2goKTsKKyAgICAgICAg
CisgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1faGFuZGxlRXhjZXB0aW9ucywgbG93QmxvY2sobV9n
cmFwaC5ibG9jaygwKSkpOworICAgICAgICBtX2Z0bFN0YXRlLmhhbmRsZUV4Y2VwdGlvblN0YWNr
bWFwSUQgPSBtX3N0YWNrbWFwSURzKys7CisgICAgICAgIG1fb3V0LmNhbGwoCisgICAgICAgICAg
ICBtX291dC5zdGFja21hcEludHJpbnNpYygpLCBtX291dC5jb25zdEludDY0KG1fZnRsU3RhdGUu
aGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRCksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMy
KE1hY3JvQXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkpKTsKKyAgICAgICAgbV9v
dXQudW5yZWFjaGFibGUoKTsKICAgICAgICAgCiAgICAgICAgIFZlY3RvcjxCYXNpY0Jsb2NrKj4g
ZGVwdGhGaXJzdDsKICAgICAgICAgbV9ncmFwaC5nZXRCbG9ja3NJbkRlcHRoRmlyc3RPcmRlcihk
ZXB0aEZpcnN0KTsKQEAgLTIyNiw2ICsyNjYsOCBAQCBwcml2YXRlOgogICAgICAgICBpZiAodmVy
Ym9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQogICAgICAgICAgICAgZGF0YUxvZygiTG93ZXJpbmcg
IiwgbV9ub2RlLCAiXG4iKTsKICAgICAgICAgCisgICAgICAgIG1fYXZhaWxhYmxlUmVjb3Zlcmll
cy5yZXNpemUoMCk7CisgICAgICAgIAogICAgICAgICBib29sIHNob3VsZEV4ZWN1dGVFZmZlY3Rz
ID0gbV9pbnRlcnByZXRlci5zdGFydEV4ZWN1dGluZyhtX25vZGUpOwogICAgICAgICAKICAgICAg
ICAgc3dpdGNoIChtX25vZGUtPm9wKCkpIHsKQEAgLTI2NSwxOSArMzA3LDE3IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBjb21waWxlVmFsdWVBZGQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEFyaXRoQWRkOgotICAgICAgICAgICAgY29tcGlsZUFkZFN1YigpOwotICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhTdWI6Ci0gICAgICAgICAgICBjb21waWxl
QWRkU3ViKCk7CisgICAgICAgICAgICBjb21waWxlQXJpdGhBZGRPclN1YigpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhNdWw6CiAgICAgICAgICAgICBjb21waWxlQXJp
dGhNdWwoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoRGl2OgotICAg
ICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKCk7CisgICAgICAgICAgICBjb21waWxlQXJpdGhE
aXYoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTW9kOgotICAgICAg
ICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKCk7CisgICAgICAgICAgICBjb21waWxlQXJpdGhNb2Qo
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTWluOgogICAgICAgICBj
YXNlIEFyaXRoTWF4OgpAQCAtMjg2LDYgKzMyNiwxNSBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IEFyaXRoQWJzOgogICAgICAgICAgICAgY29tcGlsZUFyaXRoQWJzKCk7CiAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBcml0aFNpbjoKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aFNp
bigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXJpdGhDb3M6CisgICAgICAg
ICAgICBjb21waWxlQXJpdGhDb3MoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFyaXRoU3FydDoKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aFNxcnQoKTsKKyAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTmVnYXRlOgogICAgICAgICAgICAgY29tcGlsZUFy
aXRoTmVnYXRlKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTMyMiw2ICszNzEsOSBAQCBwcml2
YXRlOgogICAgICAgICBjYXNlIENoZWNrRnVuY3Rpb246CiAgICAgICAgICAgICBjb21waWxlQ2hl
Y2tGdW5jdGlvbigpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2hlY2tFeGVj
dXRhYmxlOgorICAgICAgICAgICAgY29tcGlsZUNoZWNrRXhlY3V0YWJsZSgpOworICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKICAgICAgICAgICAg
IGNvbXBpbGVBcnJheWlmeVRvU3RydWN0dXJlKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTMz
NCw2ICszODYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEdldEJ5SWQ6CiAgICAgICAgICAg
ICBjb21waWxlR2V0QnlJZCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUHV0
QnlJZERpcmVjdDoKICAgICAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICAgICAgY29tcGlsZVB1
dEJ5SWQoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzcyLDkgKzQyNSwxOCBAQCBwcml2YXRl
OgogICAgICAgICBjYXNlIE5ld0FycmF5QnVmZmVyOgogICAgICAgICAgICAgY29tcGlsZU5ld0Fy
cmF5QnVmZmVyKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOZXdBcnJheVdp
dGhTaXplOgorICAgICAgICAgICAgY29tcGlsZU5ld0FycmF5V2l0aFNpemUoKTsKKyAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgICAg
ICAgICAgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKCk7CiAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBUb1N0cmluZzoKKyAgICAgICAgICAgIGNvbXBpbGVUb1N0cmluZygp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWFrZVJvcGU6CisgICAgICAgICAg
ICBjb21waWxlTWFrZVJvcGUoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFN0
cmluZ0NoYXJBdDoKICAgICAgICAgICAgIGNvbXBpbGVTdHJpbmdDaGFyQXQoKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMzk2LDYgKzQ1OCwxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIE5v
dGlmeVdyaXRlOgogICAgICAgICAgICAgY29tcGlsZU5vdGlmeVdyaXRlKCk7CiAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBHZXRDYWxsZWU6CisgICAgICAgICAgICBjb21waWxlR2V0
Q2FsbGVlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHZXRTY29wZToKKyAg
ICAgICAgICAgIGNvbXBpbGVHZXRTY29wZSgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgR2V0TXlTY29wZToKICAgICAgICAgICAgIGNvbXBpbGVHZXRNeVNjb3BlKCk7CiAgICAg
ICAgICAgICBicmVhazsKQEAgLTQ2Niw2ICs1MzQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2Fz
ZSBJbnQ1MlRvVmFsdWU6CiAgICAgICAgICAgICBjb21waWxlSW50NTJUb1ZhbHVlKCk7CiAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVja0FyZ3VtZW50c05vdENyZWF0ZWQ6Cisg
ICAgICAgICAgICBjb21waWxlQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKKyAgICAgICAgICAgIGNvbXBp
bGVDb3VudEV4ZWN1dGlvbigpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3Rv
cmVCYXJyaWVyOgogICAgICAgICAgICAgY29tcGlsZVN0b3JlQmFycmllcigpOwogICAgICAgICAg
ICAgYnJlYWs7CkBAIC00ODIsNiArNTU2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBWYXJp
YWJsZVdhdGNocG9pbnQ6CiAgICAgICAgIGNhc2UgRnVuY3Rpb25SZWVudHJ5V2F0Y2hwb2ludDoK
ICAgICAgICAgY2FzZSBUeXBlZEFycmF5V2F0Y2hwb2ludDoKKyAgICAgICAgY2FzZSBBbGxvY2F0
aW9uUHJvZmlsZVdhdGNocG9pbnQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04MTUsMjQg
Kzg5MCw1MyBAQCBwcml2YXRlOgogICAgICAgICAgICAgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxk
MSgpKSwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpOwogICAgIH0KICAgICAKLSAgICB2
b2lkIGNvbXBpbGVBZGRTdWIoKQorICAgIHZvaWQgY29tcGlsZUFyaXRoQWRkT3JTdWIoKQogICAg
IHsKICAgICAgICAgYm9vbCBpc1N1YiA9ICBtX25vZGUtPm9wKCkgPT0gQXJpdGhTdWI7CiAgICAg
ICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBJbnQz
MlVzZTogewogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQy
KCkpOwotICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGlzU3ViID8gbV9vdXQuc3ViKGxlZnQs
IHJpZ2h0KSA6IG1fb3V0LmFkZChsZWZ0LCByaWdodCk7CiAKICAgICAgICAgICAgIGlmICghc2hv
dWxkQ2hlY2tPdmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAgICAgICAgICAg
IHNldEludDMyKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgc2V0SW50MzIoaXNTdWIgPyBtX291
dC5zdWIobGVmdCwgcmlnaHQpIDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxv
dyA9IGlzU3ViID8gbV9vdXQuc3ViV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQpIDogbV9vdXQu
YWRkV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgTFZhbHVlIHJlc3Vs
dDsKKyAgICAgICAgICAgIGlmICghaXNTdWIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBt
X291dC5hZGRXaXRoT3ZlcmZsb3czMihsZWZ0LCByaWdodCk7CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQyKCkpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAg
ICAgbV9ub2RlLT5jaGlsZDIoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAg
ICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgbGVmdCwgVmFsdWVGb3JtYXRJbnQzMik7
CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMSgpKSkg
eworICAgICAgICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQxKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIHJpZ2h0LCBWYWx1ZUZv
cm1hdEludDMyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0
KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG9lc0tpbGwobV9ub2Rl
LT5jaGlsZDIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0ID0gbGVmdCAtIHJp
Z2h0CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCAtIGxlZnQgPSAtcmlnaHQKKyAgICAg
ICAgICAgICAgICAgICAgLy8gcmlnaHQgPSBsZWZ0IC0gcmVzdWx0CisgICAgICAgICAgICAgICAg
ICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2Rl
LT5jaGlsZDIoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0LCBt
X291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgVmFsdWVGb3JtYXRJbnQzMik7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMSgpKSkgeworICAgICAg
ICAgICAgICAgICAgICAvLyByZXN1bHQgPSBsZWZ0IC0gcmlnaHQKKyAgICAgICAgICAgICAgICAg
ICAgLy8gcmVzdWx0ICsgcmlnaHQgPSBsZWZ0CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWls
YWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDEoKSwg
QWRkUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUo
cmVzdWx0LCAwKSwgcmlnaHQsIFZhbHVlRm9ybWF0SW50MzIpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVl
KCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvdywgMSkpOwotICAgICAgICAgICAgc2V0
SW50MzIocmVzdWx0KTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgp
LCAwLCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAxKSk7CisgICAgICAgICAgICBzZXRJbnQz
MihtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICAgICAgCkBAIC04NDgsMTEgKzk1Miw0MSBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hp
bGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50NTIobV9ub2RlLT5jaGls
ZDIoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gaXNTdWIgPyBtX291dC5zdWIobGVm
dCwgcmlnaHQpIDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KTsKIAotICAgICAgICAgICAgTFZhbHVl
IG92ZXJmbG93ID0gaXNTdWIgPyBtX291dC5zdWJXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdodCkg
OiBtX291dC5hZGRXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdodCk7Ci0gICAgICAgICAgICBzcGVj
dWxhdGUoSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUob3Zl
cmZsb3csIDEpKTsKLSAgICAgICAgICAgIHNldEludDUyKHJlc3VsdCk7CisgICAgICAgICAgICBM
VmFsdWUgcmVzdWx0OworICAgICAgICAgICAgaWYgKCFpc1N1YikgeworICAgICAgICAgICAgICAg
IHJlc3VsdCA9IG1fb3V0LmFkZFdpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDIoKSkp
IHsKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBsZWZ0LCBWYWx1ZUZv
cm1hdEludDUyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+
Y2hpbGQxKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAor
ICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDEoKSwgU3ViUmVjb3ZlcnksCisg
ICAgICAgICAgICAgICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgcmln
aHQsIFZhbHVlRm9ybWF0SW50NTIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQuc3ViV2l0aE92ZXJmbG93NjQo
bGVmdCwgcmlnaHQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkb2Vz
S2lsbChtX25vZGUtPmNoaWxkMigpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQg
PSBsZWZ0IC0gcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0IC0gbGVmdCA9IC1y
aWdodAorICAgICAgICAgICAgICAgICAgICAvLyByaWdodCA9IGxlZnQgLSByZXN1bHQKKyAgICAg
ICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAg
ICAgICBtX25vZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxlZnQsIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBWYWx1ZUZvcm1hdEludDUy
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkp
KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCA9IGxlZnQgLSByaWdodAorICAgICAg
ICAgICAgICAgICAgICAvLyByZXN1bHQgKyByaWdodCA9IGxlZnQKKyAgICAgICAgICAgICAgICAg
ICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUt
PmNoaWxkMSgpLCBBZGRSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmV4
dHJhY3RWYWx1ZShyZXN1bHQsIDApLCByaWdodCwgVmFsdWVGb3JtYXRJbnQ1Mik7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzcGVjdWxhdGUoSW50NTJP
dmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAxKSk7Cisg
ICAgICAgICAgICBzZXRJbnQ1MihtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC04NzYsMTEgKzEwMTAs
MTUgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZh
bHVlIGxlZnQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1
ZSByaWdodCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgTFZhbHVl
IHJlc3VsdCA9IG1fb3V0Lm11bChsZWZ0LCByaWdodCk7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIExWYWx1ZSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGlmIChzaG91bGRDaGVja092ZXJmbG93
KG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICBpZiAoIXNob3VsZENoZWNrT3Zl
cmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9v
dXQubXVsKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAg
IExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0Lm11bFdpdGhPdmVyZmxvdzMyKGxlZnQsIHJp
Z2h0KTsKICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwg
bV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAwKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVa
ZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CkBAIC05MDQsMTEgKzEwNDIsMTAgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIEludDUyS2luZCBraW5kOwogICAgICAgICAgICAgTFZhbHVlIGxlZnQg
PSBsb3dXaGljaGV2ZXJJbnQ1MihtX25vZGUtPmNoaWxkMSgpLCBraW5kKTsKICAgICAgICAgICAg
IExWYWx1ZSByaWdodCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQyKCksIG9wcG9zaXRlKGtpbmQp
KTsKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5tdWwobGVmdCwgcmlnaHQpOwot
CiAKICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0Lm11bFdpdGhPdmVy
ZmxvdzY0KGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAgIHNwZWN1bGF0ZShJbnQ1Mk92ZXJmbG93
LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMSkpOwor
ICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jl
c3VsdCwgMCk7CiAKICAgICAgICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25v
ZGUtPmFyaXRoTW9kZSgpKSkgewogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNl
ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE11bCBzbG93IGNhc2UiKSk7CkBAIC05Mzks
MTYgKzEwNzYsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgY29t
cGlsZUFyaXRoRGl2TW9kKCkKKyAgICB2b2lkIGNvbXBpbGVBcml0aERpdigpCiAgICAgewogICAg
ICAgICBzd2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgSW50
MzJVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSBudW1lcmF0b3IgPSBsb3dJbnQzMihtX25vZGUt
PmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSBkZW5vbWluYXRvciA9IGxvd0ludDMyKG1f
bm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBMQmFzaWNCbG9jayB1
bnNhZmVEZW5vbWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXZNb2QgdW5z
YWZlIGRlbm9taW5hdG9yIikpOwotICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9u
ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCBjb250aW51YXRpb24iKSk7Ci0g
ICAgICAgICAgICBMQmFzaWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0
aERpdk1vZCBkb25lIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgdW5zYWZlRGVub21pbmF0
b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IHVuc2FmZSBkZW5vbWluYXRvciIp
KTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiQXJpdGhEaXYgY29udGludWF0aW9uIikpOworICAgICAgICAgICAgTEJhc2ljQmxv
Y2sgZG9uZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgZG9uZSIpKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJvbUJsb2NrLCAzPiByZXN1bHRzOwog
ICAgICAgICAgICAgCkBAIC05OTEsOCArMTEyOCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBt
X291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGRvbmUpOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aE1vZGUoKSkpIHsK
LSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayB6ZXJvTnVtZXJhdG9yID0gRlRMX05FV19CTE9D
SyhtX291dCwgKCJBcml0aERpdk1vZCB6ZXJvIG51bWVyYXRvciIpKTsKLSAgICAgICAgICAgICAg
ICBMQmFzaWNCbG9jayBudW1lcmF0b3JDb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0
LCAoIkFyaXRoRGl2TW9kIG51bWVyYXRvciBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgemVyb051bWVyYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJp
dGhEaXYgemVybyBudW1lcmF0b3IiKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbnVt
ZXJhdG9yQ29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiBudW1l
cmF0b3IgY29udGludWF0aW9uIikpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
IG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihudW1lcmF0b3IpLCB6ZXJvTnVtZXJhdG9yLCBu
dW1lcmF0b3JDb250aW51YXRpb24pOwogICAgICAgICAgICAgICAgIApAQCAtMTAwNiwxNyArMTE0
MywxNSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG51bWVyYXRv
ckNvbnRpbnVhdGlvbiwgaW5uZXJMYXN0TmV4dCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIExWYWx1ZSBkaXZNb2RSZXN1bHQgPSBtX25vZGUtPm9wKCkgPT0gQXJp
dGhEaXYKLSAgICAgICAgICAgICAgICA/IG1fb3V0LmRpdihudW1lcmF0b3IsIGRlbm9taW5hdG9y
KQotICAgICAgICAgICAgICAgIDogbV9vdXQucmVtKG51bWVyYXRvciwgZGVub21pbmF0b3IpOwor
ICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmRpdihudW1lcmF0b3IsIGRlbm9taW5h
dG9yKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3co
bV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAg
ICAgICAgICAgICAgICAgIE92ZXJmbG93LCBub1ZhbHVlKCksIDAsCi0gICAgICAgICAgICAgICAg
ICAgIG1fb3V0Lm5vdEVxdWFsKG1fb3V0Lm11bChkaXZNb2RSZXN1bHQsIGRlbm9taW5hdG9yKSwg
bnVtZXJhdG9yKSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKG1fb3V0Lm11
bChyZXN1bHQsIGRlbm9taW5hdG9yKSwgbnVtZXJhdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihkaXZNb2RS
ZXN1bHQpKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihyZXN1bHQp
KTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsKQEAgLTEwMjYsOSArMTE2MSw4IEBA
IHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE51bWJlclVz
ZTogewotICAgICAgICAgICAgTFZhbHVlIEMxID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkp
OwotICAgICAgICAgICAgTFZhbHVlIEMyID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpOwot
ICAgICAgICAgICAgc2V0RG91YmxlKG1fbm9kZS0+b3AoKSA9PSBBcml0aERpdiA/IG1fb3V0LmRv
dWJsZURpdihDMSwgQzIpIDogbV9vdXQuZG91YmxlUmVtKEMxLCBDMikpOworICAgICAgICAgICAg
c2V0RG91YmxlKG1fb3V0LmRvdWJsZURpdigKKyAgICAgICAgICAgICAgICBsb3dEb3VibGUobV9u
b2RlLT5jaGlsZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMTAzOCw2ICsxMTcyLDk5IEBA
IHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlQXJpdGhN
b2QoKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChtX25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewor
ICAgICAgICBjYXNlIEludDMyVXNlOiB7CisgICAgICAgICAgICBMVmFsdWUgbnVtZXJhdG9yID0g
bG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgZGVub21pbmF0
b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgdW5zYWZlRGVub21pbmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IkFyaXRoTW9kIHVuc2FmZSBkZW5vbWluYXRvciIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgY29udGludWF0
aW9uIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9uZSA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiQXJpdGhNb2QgZG9uZSIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVmVjdG9y
PFZhbHVlRnJvbUJsb2NrLCAzPiByZXN1bHRzOworICAgICAgICAgICAgCisgICAgICAgICAgICBM
VmFsdWUgYWRqdXN0ZWREZW5vbWluYXRvciA9IG1fb3V0LmFkZChkZW5vbWluYXRvciwgbV9vdXQu
aW50MzJPbmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQu
YWJvdmUoYWRqdXN0ZWREZW5vbWluYXRvciwgbV9vdXQuaW50MzJPbmUpLCBjb250aW51YXRpb24s
IHVuc2FmZURlbm9taW5hdG9yKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2ljQmxv
Y2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyh1bnNhZmVEZW5vbWluYXRvciwgY29udGludWF0
aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIG5lZzJUb1RoZTMxID0gbV9v
dXQuY29uc3RJbnQzMigtMjE0NzQ4MzY0Ny0xKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
Ly8gRklYTUU6IC0yXjMxIC8gLTEgd2lsbCBhY3R1YWxseSB5aWVsZCBuZWdhdGl2ZSB6ZXJvLCBz
byB3ZSBjb3VsZCBoYXZlIGEKKyAgICAgICAgICAgIC8vIHNlcGFyYXRlIGNhc2UgZm9yIHRoYXQu
IEJ1dCBpdCBwcm9iYWJseSBkb2Vzbid0IG1hdHRlciBzbyBtdWNoLgorICAgICAgICAgICAgaWYg
KHNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAg
ICAgICBMVmFsdWUgY29uZCA9IG1fb3V0LmJpdE9yKG1fb3V0LmlzWmVybzMyKGRlbm9taW5hdG9y
KSwgbV9vdXQuZXF1YWwobnVtZXJhdG9yLCBuZWcyVG9UaGUzMSkpOworICAgICAgICAgICAgICAg
IHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBjb25kKTsKKyAgICAgICAgICAgICAg
ICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgd2UgY29udmVydCB0aGUgcmVzdWx0
IHRvIGFuIGludCBhZnRlciB3ZSdyZSBkb25lLiBTbywKKyAgICAgICAgICAgICAgICAvLyBpZiB0
aGUgZGVub21pbmF0b3IgaXMgemVybywgdGhlbiB0aGUgcmVzdWx0IHNob3VsZCBiZSByZXN1bHQg
c2hvdWxkIGJlIHplcm8uCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRlbm9taW5hdG9yIGlz
IG5vdCB6ZXJvIChpLmUuIGl0J3MgLTEgYmVjYXVzZSB3ZSdyZSBndWFyZGVkIGJ5IHRoZQorICAg
ICAgICAgICAgICAgIC8vIGNoZWNrIGFib3ZlKSBhbmQgdGhlIG51bWVyYXRvciBpcyAtMl4zMSB0
aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIC0yXjMxLgorICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIG1vZEJ5WmVybyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgi
QXJpdGhNb2QgbW9kdWxvIGJ5IHplcm8iKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sg
bm90TW9kQnlaZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBub3QgbW9kdWxv
IGJ5IHplcm8iKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbmVnMlRvVGhlMzFCeU5l
ZzEgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIC0yXjMxLy0xIikpOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihk
ZW5vbWluYXRvciksIG1vZEJ5WmVybywgbm90TW9kQnlaZXJvKTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhtb2RCeVplcm8sIG5vdE1vZEJ5WmVybyk7
CisgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmludDMy
WmVybykpOworICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90TW9kQnlaZXJvLCBuZWcyVG9U
aGUzMUJ5TmVnMSk7CisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmVxdWFsKG51
bWVyYXRvciwgbmVnMlRvVGhlMzEpLCBuZWcyVG9UaGUzMUJ5TmVnMSwgY29udGludWF0aW9uKTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhuZWcyVG9U
aGUzMUJ5TmVnMSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVu
ZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7CisgICAgICAgICAgICAgICAgbV9vdXQu
anVtcChkb25lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBkb25lKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgTFZhbHVlIHJlbWFpbmRlciA9IG1fb3V0LnJlbShudW1lcmF0b3IsIGRlbm9taW5hdG9yKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1f
bm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbmVnYXRp
dmVOdW1lcmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG5lZ2F0aXZlIG51
bWVyYXRvciIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBudW1lcmF0b3JDb250aW51
YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG51bWVyYXRvciBjb250aW51
YXRpb24iKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNo
KAorICAgICAgICAgICAgICAgICAgICBtX291dC5sZXNzVGhhbihudW1lcmF0b3IsIG1fb3V0Lmlu
dDMyWmVybyksCisgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlTnVtZXJhdG9yLCBudW1lcmF0
b3JDb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIExCYXNp
Y0Jsb2NrIGlubmVyTGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhuZWdhdGl2ZU51bWVyYXRvciwg
bnVtZXJhdG9yQ29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBzcGVjdWxhdGUoTmVnYXRpdmVaZXJvLCBub1ZhbHVlKCksIDAsIG1fb3V0LmlzWmVybzMyKHJl
bWFpbmRlcikpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAo
bnVtZXJhdG9yQ29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBtX291dC5hcHBlbmRUbyhudW1lcmF0b3JDb250aW51YXRpb24sIGlubmVyTGFzdE5leHQpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZCht
X291dC5hbmNob3IocmVtYWluZGVyKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGRvbmUpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhkb25lLCBsYXN0TmV4dCk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNldEludDMyKG1fb3V0LnBoaShtX291dC5pbnQz
MiwgcmVzdWx0cykpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICBjYXNlIE51bWJlclVzZTogeworICAgICAgICAgICAgc2V0RG91YmxlKAorICAg
ICAgICAgICAgICAgIG1fb3V0LmRvdWJsZVJlbShsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSks
IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgfQorCiAgICAgdm9pZCBjb21waWxlQXJpdGhNaW5Pck1heCgpCiAgICAgewogICAgICAgICBz
d2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CkBAIC0xMTE0LDYgKzEzNDEsMTIgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorCisgICAgdm9p
ZCBjb21waWxlQXJpdGhTaW4oKSB7IHNldERvdWJsZShtX291dC5kb3VibGVTaW4obG93RG91Ymxl
KG1fbm9kZS0+Y2hpbGQxKCkpKSk7IH0KKworICAgIHZvaWQgY29tcGlsZUFyaXRoQ29zKCkgeyBz
ZXREb3VibGUobV9vdXQuZG91YmxlQ29zKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSkpOyB9
CisKKyAgICB2b2lkIGNvbXBpbGVBcml0aFNxcnQoKSB7IHNldERvdWJsZShtX291dC5kb3VibGVT
cXJ0KGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSkpOyB9CiAgICAgCiAgICAgdm9pZCBjb21w
aWxlQXJpdGhOZWdhdGUoKQogICAgIHsKQEAgLTExMjEsMTYgKzEzNTQsMTggQEAgcHJpdmF0ZToK
ICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93
SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIExWYWx1
ZSByZXN1bHQgPSBtX291dC5uZWcodmFsdWUpOwotICAgICAgICAgICAgaWYgKHNob3VsZENoZWNr
T3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXNo
b3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIC8vIFdlIGRvbid0IGhhdmUgYSBuZWdhdGUtd2l0aC1vdmVyZmxvdyBpbnRyaW5z
aWMuIEhvcGVmdWxseSB0aGlzCi0gICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgdGhlIHRyaWNr
LCB0aG91Z2guCi0gICAgICAgICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1f
b3V0LnN1YldpdGhPdmVyZmxvdzMyKG1fb3V0LmludDMyWmVybywgdmFsdWUpOwotICAgICAgICAg
ICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFj
dFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC50
ZXN0SXNaZXJvMzIodmFsdWUsIG1fb3V0LmNvbnN0SW50MzIoMHg3ZmZmZmZmZikpKTsKLQorICAg
ICAgICAgICAgTFZhbHVlIHJlc3VsdDsKKyAgICAgICAgICAgIGlmICghc2hvdWxkQ2hlY2tPdmVy
ZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291
dC5uZWcodmFsdWUpOworICAgICAgICAgICAgZWxzZSBpZiAoIXNob3VsZENoZWNrTmVnYXRpdmVa
ZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3Qg
aGF2ZSBhIG5lZ2F0ZS13aXRoLW92ZXJmbG93IGludHJpbnNpYy4gSG9wZWZ1bGx5IHRoaXMKKyAg
ICAgICAgICAgICAgICAvLyBkb2VzIHRoZSB0cmljaywgdGhvdWdoLgorICAgICAgICAgICAgICAg
IExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzMyKG1fb3V0Lmlu
dDMyWmVybywgdmFsdWUpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9W
YWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDAp
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZs
b3csIG5vVmFsdWUoKSwgMCwgbV9vdXQudGVzdElzWmVybzMyKHZhbHVlLCBtX291dC5jb25zdElu
dDMyKDB4N2ZmZmZmZmYpKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubmVnKHZh
bHVlKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgc2V0SW50MzIocmVzdWx0KTsKQEAg
LTExNTEsNyArMTM4Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBs
b3dJbnQ1MihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jl
c3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzY0KG1fb3V0LmludDY0WmVybywgdmFsdWUpOwog
ICAgICAgICAgICAgc3BlY3VsYXRlKEludDUyT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQu
ZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVz
dWx0ID0gbV9vdXQubmVnKHZhbHVlKTsKKyAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291
dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOwogICAgICAgICAgICAgc3BlY3VsYXRl
KE5lZ2F0aXZlWmVybywgbm9WYWx1ZSgpLCAwLCBtX291dC5pc1plcm82NChyZXN1bHQpKTsKICAg
ICAgICAgICAgIHNldEludDUyKHJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEyNzUs
NiArMTUxMCwxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQubm90RXF1YWwoY2VsbCwg
d2Vha1BvaW50ZXIobV9ub2RlLT5mdW5jdGlvbigpKSkpOwogICAgIH0KICAgICAKKyAgICB2b2lk
IGNvbXBpbGVDaGVja0V4ZWN1dGFibGUoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGNlbGwgPSBs
b3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAKKyAgICAgICAgc3BlY3VsYXRlKAor
ICAgICAgICAgICAgQmFkRXhlY3V0YWJsZSwganNWYWx1ZVZhbHVlKGNlbGwpLCBtX25vZGUtPmNo
aWxkMSgpLm5vZGUoKSwKKyAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKAorICAgICAgICAgICAg
ICAgIG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5KU0Z1bmN0aW9uX2V4ZWN1dGFibGUpLAor
ICAgICAgICAgICAgICAgIHdlYWtQb2ludGVyKG1fbm9kZS0+ZXhlY3V0YWJsZSgpKSkpOworICAg
IH0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVBcnJheWlmeVRvU3RydWN0dXJlKCkKICAgICB7CiAg
ICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKQEAgLTEzNzAs
OCArMTYxNiw4IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBMVmFsdWUgY2FsbCA9IG1f
b3V0LmNhbGwoCiAgICAgICAgICAgICBtX291dC5wYXRjaHBvaW50SW50NjRJbnRyaW5zaWMoKSwK
LSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoc3RhY2ttYXBJRCksIG1fb3V0LmNvbnN0SW50
MzIoc2l6ZU9mR2V0QnlJZCgpKSwKLSAgICAgICAgICAgIGNvbnN0TnVsbChtX291dC5yZWY4KSwg
bV9vdXQuY29uc3RJbnQzMigyKSwgbV9jYWxsRnJhbWUsIGJhc2UpOworICAgICAgICAgICAgbV9v
dXQuY29uc3RJbnQ2NChzdGFja21hcElEKSwgbV9vdXQuY29uc3RJbnQzMihzaXplT2ZHZXRCeUlk
KCkpLAorICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5jb25zdEludDMy
KDEpLCBiYXNlKTsKICAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxsaW5nQ29udmVudGlvbihjYWxs
LCBMTFZNQW55UmVnQ2FsbENvbnYpOwogICAgICAgICBzZXRKU1ZhbHVlKGNhbGwpOwogICAgICAg
ICAKQEAgLTEzOTUsOCArMTY0MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBMVmFs
dWUgY2FsbCA9IG1fb3V0LmNhbGwoCiAgICAgICAgICAgICBtX291dC5wYXRjaHBvaW50Vm9pZElu
dHJpbnNpYygpLAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihzdGFja21hcElEKSwgbV9v
dXQuY29uc3RJbnQzMihzaXplT2ZQdXRCeUlkKCkpLAotICAgICAgICAgICAgY29uc3ROdWxsKG1f
b3V0LnJlZjgpLCBtX291dC5jb25zdEludDMyKDMpLCBtX2NhbGxGcmFtZSwgYmFzZSwgdmFsdWUp
OworICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElEKSwgbV9vdXQuY29uc3RJ
bnQzMihzaXplT2ZQdXRCeUlkKCkpLAorICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgp
LCBtX291dC5jb25zdEludDMyKDIpLCBiYXNlLCB2YWx1ZSk7CiAgICAgICAgIHNldEluc3RydWN0
aW9uQ2FsbGluZ0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJlZ0NhbGxDb252KTsKICAgICAgICAg
CiAgICAgICAgIG1fZnRsU3RhdGUucHV0QnlJZHMuYXBwZW5kKFB1dEJ5SWREZXNjcmlwdG9yKApA
QCAtMTQ2MywyMCArMTcwOSwyMCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFycmF5OjpJbnQz
MjoKICAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAgICBjYXNlIEFycmF5OjpDb250
aWd1b3VzOiB7Ci0gICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzIobG93U3RvcmFnZSht
X25vZGUtPmNoaWxkMigpKSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSk7CisgICAg
ICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzJOb25OZWdhdGl2ZShsb3dTdG9yYWdlKG1fbm9k
ZS0+Y2hpbGQyKCkpLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXk6
OlN0cmluZzogewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd0NlbGwobV9ub2RlLT5j
aGlsZDEoKSk7Ci0gICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzIoc3RyaW5nLCBtX2hl
YXBzLkpTU3RyaW5nX2xlbmd0aCkpOworICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMy
Tm9uTmVnYXRpdmUoc3RyaW5nLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCkpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgIGlmIChpc1R5cGVkVmlldyhtX25vZGUtPmFycmF5TW9kZSgpLnR5cGVkQXJyYXlU
eXBlKCkpKSB7CiAgICAgICAgICAgICAgICAgc2V0SW50MzIoCi0gICAgICAgICAgICAgICAgICAg
IG1fb3V0LmxvYWQzMihsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBzLkpTQXJyYXlC
dWZmZXJWaWV3X2xlbmd0aCkpOworICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzJOb25O
ZWdhdGl2ZShsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBzLkpTQXJyYXlCdWZmZXJW
aWV3X2xlbmd0aCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIApAQCAtMTUxOCw3ICsxNzY0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JF
cXVhbCgKLSAgICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihzdG9yYWdlLCBt
X2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKKyAgICAgICAgICAgICAgICAgICAgaW5k
ZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1
YmxpY0xlbmd0aCkpLAogICAgICAgICAgICAgICAgIHNsb3dDYXNlLCBmYXN0Q2FzZSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5k
VG8oZmFzdENhc2UsIHNsb3dDYXNlKTsKQEAgLTE1NjUsNyArMTgxMSw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBt
X291dC5hYm92ZU9yRXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2Fk
MzIoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSksCisgICAgICAgICAg
ICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBz
LkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKICAgICAgICAgICAgICAgICBzbG93Q2FzZSwgaW5C
b3VuZHMpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9
IG1fb3V0LmFwcGVuZFRvKGluQm91bmRzLCBib3hQYXRoKTsKQEAgLTE2ODcsNiArMTkzMyw3IEBA
IHByaXZhdGU6CiAgICAgICAgIEVkZ2UgY2hpbGQyID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25v
ZGUsIDEpOwogICAgICAgICBFZGdlIGNoaWxkMyA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2Rl
LCAyKTsKICAgICAgICAgRWRnZSBjaGlsZDQgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwg
Myk7CisgICAgICAgIEVkZ2UgY2hpbGQ1ID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDQp
OwogICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkg
ewogICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOiB7CkBAIC0xODAxLDYgKzIwNDgsOSBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0Lnplcm9FeHQoaW5kZXgs
IG1fb3V0LmludFB0ciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJ
bnRQdHIobG9nRWxlbWVudFNpemUodHlwZSkpKSkpOwogICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIExUeXBlIHJlZlR5cGU7CisgICAgICAgICAgICAgICAgTFZhbHVlIHZhbHVlVG9T
dG9yZTsKKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoaXNJbnQodHlwZSkp
IHsKICAgICAgICAgICAgICAgICAgICAgTFZhbHVlIGludFZhbHVlOwogICAgICAgICAgICAgICAg
ICAgICBzd2l0Y2ggKGNoaWxkMy51c2VLaW5kKCkpIHsKQEAgLTE4NzYsMzQgKzIxMjYsNTMgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIHN3aXRj
aCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAg
ICAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmU4KG1fb3V0LmludENhc3QoaW50VmFsdWUs
IG1fb3V0LmludDgpLCBwb2ludGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9T
dG9yZSA9IG1fb3V0LmludENhc3QoaW50VmFsdWUsIG1fb3V0LmludDgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZjg7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgICAgICAg
ICAgICAgbV9vdXQuc3RvcmUxNihtX291dC5pbnRDYXN0KGludFZhbHVlLCBtX291dC5pbnQxNiks
IHBvaW50ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3JlID0gbV9vdXQu
aW50Q2FzdChpbnRWYWx1ZSwgbV9vdXQuaW50MTYpOworICAgICAgICAgICAgICAgICAgICAgICAg
cmVmVHlwZSA9IG1fb3V0LnJlZjE2OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgICAgIGNhc2UgNDoKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0
LnN0b3JlMzIoaW50VmFsdWUsIHBvaW50ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFs
dWVUb1N0b3JlID0gaW50VmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZUeXBlID0g
bV9vdXQucmVmMzI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
IGVsc2UgLyogIWlzSW50KHR5cGUpICovIHsKKyAgICAgICAgICAgICAgICAgICAgTFZhbHVlIHZh
bHVlID0gbG93RG91YmxlKGNoaWxkMyk7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlw
ZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVGbG9hdDMyOgorICAgICAgICAgICAg
ICAgICAgICAgICAgdmFsdWVUb1N0b3JlID0gbV9vdXQuZnBDYXN0KHZhbHVlLCBtX291dC5mbG9h
dFR5cGUpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZkZsb2F0
OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNh
c2UgVHlwZUZsb2F0NjQ6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvU3RvcmUgPSB2
YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlR5cGUgPSBtX291dC5yZWZEb3VibGU7
CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzRmxvYXQodHlwZSkpOwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0RvdWJsZShjaGlsZDMpOwotICAg
ICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICAgICAgICAgIGNhc2UgVHlwZUZs
b2F0MzI6Ci0gICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlRmxvYXQobV9vdXQuZnBDYXN0
KHZhbHVlLCBtX291dC5mbG9hdFR5cGUpLCBwb2ludGVyKTsKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBUeXBlRmxvYXQ2NDoKLSAgICAgICAgICAgICAg
ICAgICAgbV9vdXQuc3RvcmVEb3VibGUodmFsdWUsIHBvaW50ZXIpOwotICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGlmIChtX25v
ZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSkKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQu
c3RvcmUodmFsdWVUb1N0b3JlLCBwb2ludGVyLCByZWZUeXBlKTsKKyAgICAgICAgICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgaXNJbkJvdW5kcyA9IEZUTF9O
RVdfQkxPQ0sobV9vdXQsICgiUHV0QnlWYWwgdHlwZWQgYXJyYXkgaW4gYm91bmRzIGNhc2UiKSk7
CisgICAgICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdf
QkxPQ0sobV9vdXQsICgiUHV0QnlWYWwgdHlwZWQgYXJyYXkgY29udGludWF0aW9uIikpOworICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAg
ICAgICAgICAgICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKGluZGV4LCBsb3dJbnQzMihj
aGlsZDUpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbiwgaXNJbkJvdW5k
cyk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBMQmFzaWNCbG9j
ayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzSW5Cb3VuZHMsIGNvbnRpbnVhdGlvbik7Cisg
ICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlKHZhbHVlVG9TdG9yZSwgcG9pbnRlciwgcmVm
VHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNv
bnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
QEAgLTIwNjAsNiArMjMyOSwxMDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0LmNvbnN0
SW50UHRyKG1fbm9kZS0+bnVtQ29uc3RhbnRzKCkpKSk7CiAgICAgfQogICAgIAorICAgIHZvaWQg
Y29tcGlsZU5ld0FycmF5V2l0aFNpemUoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHB1YmxpY0xl
bmd0aCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAKKyAgICAgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9k
ZS0+Y29kZU9yaWdpbik7CisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2xvYmFsT2Jq
ZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oCisgICAg
ICAgICAgICBtX25vZGUtPmluZGV4aW5nVHlwZSgpKTsKKyAgICAgICAgCisgICAgICAgIGlmICgh
Z2xvYmFsT2JqZWN0LT5pc0hhdmluZ0FCYWRUaW1lKCkgJiYgIWhhc0FycmF5U3RvcmFnZShtX25v
ZGUtPmluZGV4aW5nVHlwZSgpKSkgeworICAgICAgICAgICAgQVNTRVJUKAorICAgICAgICAgICAg
ICAgIGhhc1VuZGVjaWRlZChzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKQorICAgICAgICAgICAg
ICAgIHx8IGhhc0ludDMyKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCisgICAgICAgICAgICAg
ICAgfHwgaGFzRG91YmxlKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCisgICAgICAgICAgICAg
ICAgfHwgaGFzQ29udGlndW91cyhzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKSk7CisKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGZhc3RDYXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdB
cnJheVdpdGhTaXplIGZhc3QgY2FzZSIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhcmdl
Q2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBsYXJnZSBjYXNl
IikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZmFpbENhc2UgPSBGVExfTkVXX0JMT0NLKG1f
b3V0LCAoIk5ld0FycmF5V2l0aFNpemUgZmFpbCBjYXNlIikpOworICAgICAgICAgICAgTEJhc2lj
QmxvY2sgc2xvd0Nhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUg
c2xvdyBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRM
X05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGNvbnRpbnVhdGlvbiIpKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgIG1f
b3V0LmFib3ZlT3JFcXVhbChwdWJsaWNMZW5ndGgsIG1fb3V0LmNvbnN0SW50MzIoTUlOX1NQQVJT
RV9BUlJBWV9JTkRFWCkpLAorICAgICAgICAgICAgICAgIGxhcmdlQ2FzZSwgZmFzdENhc2UpOwor
CisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGZhc3RD
YXNlLCBsYXJnZUNhc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBXZSBkb24ndCBy
b3VuZCB1cCB0byBCQVNFX1ZFQ1RPUl9MRU4gZm9yIG5ldyBBcnJheShibGFoKS4KKyAgICAgICAg
ICAgIExWYWx1ZSB2ZWN0b3JMZW5ndGggPSBwdWJsaWNMZW5ndGg7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIExWYWx1ZSBwYXlsb2FkU2l6ZSA9CisgICAgICAgICAgICAgICAgbV9vdXQuc2hs
KG1fb3V0Lnplcm9FeHQodmVjdG9yTGVuZ3RoLCBtX291dC5pbnRQdHIpLCBtX291dC5jb25zdElu
dFB0cigzKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBidXR0ZXJmbHlTaXpl
ID0gbV9vdXQuYWRkKAorICAgICAgICAgICAgICAgIHBheWxvYWRTaXplLCBtX291dC5jb25zdElu
dFB0cihzaXplb2YoSW5kZXhpbmdIZWFkZXIpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IExWYWx1ZSBlbmRPZlN0b3JhZ2UgPSBhbGxvY2F0ZUJhc2ljU3RvcmFnZUFuZEdldEVuZChidXR0
ZXJmbHlTaXplLCBmYWlsQ2FzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBi
dXR0ZXJmbHkgPSBtX291dC5zdWIoZW5kT2ZTdG9yYWdlLCBwYXlsb2FkU2l6ZSk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBvYmplY3QgPSBhbGxvY2F0ZU9iamVjdDxKU0FycmF5
PigKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihzdHJ1Y3R1cmUpLCBidXR0ZXJm
bHksIGZhaWxDYXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuc3RvcmUzMihw
dWJsaWNMZW5ndGgsIGJ1dHRlcmZseSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKTsK
KyAgICAgICAgICAgIG1fb3V0LnN0b3JlMzIodmVjdG9yTGVuZ3RoLCBidXR0ZXJmbHksIG1faGVh
cHMuQnV0dGVyZmx5X3ZlY3Rvckxlbmd0aCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlm
IChoYXNEb3VibGUobV9ub2RlLT5pbmRleGluZ1R5cGUoKSkpIHsKKyAgICAgICAgICAgICAgICBM
QmFzaWNCbG9jayBpbml0TG9vcCA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRo
U2l6ZSBkb3VibGUgaW5pdCBsb29wIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlu
aXREb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGRvdWJsZSBp
bml0IGRvbmUiKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVmFsdWVGcm9t
QmxvY2sgb3JpZ2luYWxJbmRleCA9IG1fb3V0LmFuY2hvcih2ZWN0b3JMZW5ndGgpOworICAgICAg
ICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIG9yaWdpbmFsUG9pbnRlciA9IG1fb3V0LmFuY2hvcihi
dXR0ZXJmbHkpOworICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3RaZXJvMzIo
dmVjdG9yTGVuZ3RoKSwgaW5pdExvb3AsIGluaXREb25lKTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpbml0TGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhp
bml0TG9vcCwgaW5pdERvbmUpOworICAgICAgICAgICAgICAgIExWYWx1ZSBpbmRleCA9IG1fb3V0
LnBoaShtX291dC5pbnQzMiwgb3JpZ2luYWxJbmRleCk7CisgICAgICAgICAgICAgICAgTFZhbHVl
IHBvaW50ZXIgPSBtX291dC5waGkobV9vdXQuaW50UHRyLCBvcmlnaW5hbFBvaW50ZXIpOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlNjQoCisgICAgICAgICAg
ICAgICAgICAgIG1fb3V0LmNvbnN0SW50NjQoYml0d2lzZV9jYXN0PGludDY0X3Q+KFFOYU4pKSwK
KyAgICAgICAgICAgICAgICAgICAgVHlwZWRQb2ludGVyKG1faGVhcHMuaW5kZXhlZERvdWJsZVBy
b3BlcnRpZXMuYXRBbnlJbmRleCgpLCBwb2ludGVyKSk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgTFZhbHVlIG5leHRJbmRleCA9IG1fb3V0LnN1YihpbmRleCwgbV9vdXQuaW50
MzJPbmUpOworICAgICAgICAgICAgICAgIGFkZEluY29taW5nKGluZGV4LCBtX291dC5hbmNob3Io
bmV4dEluZGV4KSk7CisgICAgICAgICAgICAgICAgYWRkSW5jb21pbmcocG9pbnRlciwgbV9vdXQu
YW5jaG9yKG1fb3V0LmFkZChwb2ludGVyLCBtX291dC5pbnRQdHJFaWdodCkpKTsKKyAgICAgICAg
ICAgICAgICBtX291dC5icmFuY2gobV9vdXQubm90WmVybzMyKG5leHRJbmRleCksIGluaXRMb29w
LCBpbml0RG9uZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oaW5pdERvbmUsIGluaXRMYXN0TmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3Io
b2JqZWN0KTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obGFyZ2VDYXNlLCBmYWlsQ2FzZSk7Cisg
ICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBsYXJnZVN0cnVjdHVyZSA9IG1fb3V0LmFuY2hvciht
X291dC5jb25zdEludFB0cigKKyAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPmFycmF5U3Ry
dWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhBcnJheVN0b3Jh
Z2UpKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKHNsb3dDYXNlKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZmFpbENhc2UsIHNsb3dDYXNlKTsKKyAgICAgICAg
ICAgIFZhbHVlRnJvbUJsb2NrIGZhaWxTdHJ1Y3R1cmUgPSBtX291dC5hbmNob3IobV9vdXQuY29u
c3RJbnRQdHIoc3RydWN0dXJlKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKHNsb3dDYXNlKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRp
bnVhdGlvbik7CisgICAgICAgICAgICBMVmFsdWUgc3RydWN0dXJlVmFsdWUgPSBtX291dC5waGko
CisgICAgICAgICAgICAgICAgbV9vdXQuaW50UHRyLCBsYXJnZVN0cnVjdHVyZSwgZmFpbFN0cnVj
dHVyZSk7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5j
aG9yKHZtQ2FsbCgKKyAgICAgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uTmV3
QXJyYXlXaXRoU2l6ZSksCisgICAgICAgICAgICAgICAgbV9jYWxsRnJhbWUsIHN0cnVjdHVyZVZh
bHVlLCBwdWJsaWNMZW5ndGgpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9u
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9u
LCBsYXN0TmV4dCk7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShtX291dC5pbnRQ
dHIsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZVZhbHVlID0gbV9vdXQuc2Vs
ZWN0KAorICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKHB1YmxpY0xlbmd0aCwgbV9vdXQu
Y29uc3RJbnQzMihNSU5fU1BBUlNFX0FSUkFZX0lOREVYKSksCisgICAgICAgICAgICBtX291dC5j
b25zdEludFB0cigKKyAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJl
Rm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhBcnJheVN0b3JhZ2UpKSwK
KyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHN0cnVjdHVyZSkpOworICAgICAgICBzZXRK
U1ZhbHVlKHZtQ2FsbChtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSks
IG1fY2FsbEZyYW1lLCBzdHJ1Y3R1cmVWYWx1ZSwgcHVibGljTGVuZ3RoKSk7CisgICAgfQorICAg
IAogICAgIHZvaWQgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKCkKICAgICB7CiAgICAg
ICAgIFN0cnVjdHVyZVRyYW5zaXRpb25EYXRhJiBkYXRhID0gbV9ub2RlLT5zdHJ1Y3R1cmVUcmFu
c2l0aW9uRGF0YSgpOwpAQCAtMjEwMiw2ICsyNDc0LDE2MCBAQCBwcml2YXRlOgogICAgICAgICBz
ZXRTdG9yYWdlKHJlc3VsdCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZVRvU3RyaW5n
KCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpIHsK
KyAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSBjZWxs
ID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmlu
Z09iamVjdEZvckNlbGwobV9ub2RlLT5jaGlsZDEoKSwgY2VsbCk7CisgICAgICAgICAgICBtX2lu
dGVycHJldGVyLmZpbHRlcihtX25vZGUtPmNoaWxkMSgpLCBTcGVjU3RyaW5nT2JqZWN0KTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkUHRyKGNlbGwsIG1f
aGVhcHMuSlNXcmFwcGVyT2JqZWN0X2ludGVybmFsVmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdP
YmplY3RVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291dC5sb2FkUHRyKGNl
bGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IExCYXNpY0Jsb2NrIG5vdFN0cmluZyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiVG9TdHJpbmcg
U3RyaW5nT3JTdHJpbmdPYmplY3Qgbm90IHN0cmluZyBjYXNlIikpOworICAgICAgICAgICAgTEJh
c2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJUb1N0cmluZyBT
dHJpbmdPclN0cmluZ09iamVjdCBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIHNpbXBsZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihjZWxsKTsK
KyAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAgICAgICBtX291dC5lcXVhbChz
dHJ1Y3R1cmUsIG1fb3V0LmNvbnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJlLmdldCgpKSks
CisgICAgICAgICAgICAgICAgY29udGludWF0aW9uLCBub3RTdHJpbmcpOworICAgICAgICAgICAg
CisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdFN0
cmluZywgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZv
clN0cnVjdHVyZShtX25vZGUtPmNoaWxkMSgpLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgVmFs
dWVGcm9tQmxvY2sgdW5ib3hlZFJlc3VsdCA9IG1fb3V0LmFuY2hvcigKKyAgICAgICAgICAgICAg
ICBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNXcmFwcGVyT2JqZWN0X2ludGVybmFsVmFs
dWUpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7Cisg
ICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShtX291dC5pbnQ2NCwgc2ltcGxlUmVzdWx0
LCB1bmJveGVkUmVzdWx0KSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1faW50ZXJwcmV0
ZXIuZmlsdGVyKG1fbm9kZS0+Y2hpbGQxKCksIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2JqZWN0
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAg
IGNhc2UgQ2VsbFVzZToKKyAgICAgICAgY2FzZSBVbnR5cGVkVXNlOiB7CisgICAgICAgICAgICBM
VmFsdWUgdmFsdWU7CisgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkg
PT0gQ2VsbFVzZSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGxvd0NlbGwobV9ub2RlLT5jaGls
ZDEoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdmFsdWUgPSBsb3dKU1Zh
bHVlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNC
bG9jayBpc0NlbGwgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIENlbGxVc2UvVW50
eXBlZFVzZSBpcyBjZWxsIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90U3RyaW5nID0g
RlRMX05FV19CTE9DSyhtX291dCwgKCJUb1N0cmluZyBDZWxsVXNlL1VudHlwZWRVc2Ugbm90IHN0
cmluZyIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdf
QkxPQ0sobV9vdXQsICgiVG9TdHJpbmcgQ2VsbFVzZS9VbnR5cGVkVXNlIGNvbnRpbnVhdGlvbiIp
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGlzQ2VsbFByZWRpY2F0ZTsKKyAg
ICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxsVXNlKQorICAg
ICAgICAgICAgICAgIGlzQ2VsbFByZWRpY2F0ZSA9IG1fb3V0LmJvb2xlYW5UcnVlOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlzQ2VsbFByZWRpY2F0ZSA9IHRoaXMtPmlzQ2Vs
bCh2YWx1ZSk7CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNDZWxsUHJlZGljYXRlLCBpc0Nl
bGwsIG5vdFN0cmluZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxh
c3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNDZWxsLCBub3RTdHJpbmcpOworICAgICAgICAgICAg
VmFsdWVGcm9tQmxvY2sgc2ltcGxlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZhbHVlKTsKKyAgICAg
ICAgICAgIExWYWx1ZSBpc1N0cmluZ1ByZWRpY2F0ZTsKKyAgICAgICAgICAgIGlmIChtX25vZGUt
PmNoaWxkMSgpLT5wcmVkaWN0aW9uKCkgJiBTcGVjU3RyaW5nKSB7CisgICAgICAgICAgICAgICAg
aXNTdHJpbmdQcmVkaWNhdGUgPSBtX291dC5lcXVhbCgKKyAgICAgICAgICAgICAgICAgICAgbV9v
dXQubG9hZFB0cih2YWx1ZSwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlKSwKKyAgICAgICAgICAg
ICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGlzU3RyaW5nUHJlZGljYXRlID0g
bV9vdXQuYm9vbGVhbkZhbHNlOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzU3RyaW5nUHJl
ZGljYXRlLCBjb250aW51YXRpb24sIG5vdFN0cmluZyk7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGludWF0aW9uKTsKKyAgICAgICAgICAg
IExWYWx1ZSBvcGVyYXRpb247CisgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VL
aW5kKCkgPT0gQ2VsbFVzZSkKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBtX291dC5vcGVy
YXRpb24ob3BlcmF0aW9uVG9TdHJpbmdPbkNlbGwpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIG9wZXJhdGlvbiA9IG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25Ub1N0cmluZyk7
CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBjb252ZXJ0ZWRSZXN1bHQgPSBtX291dC5hbmNo
b3Iodm1DYWxsKG9wZXJhdGlvbiwgbV9jYWxsRnJhbWUsIHZhbHVlKSk7CisgICAgICAgICAgICBt
X291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAgICAgc2V0SlNWYWx1
ZShtX291dC5waGkobV9vdXQuaW50NjQsIHNpbXBsZVJlc3VsdCwgY29udmVydGVkUmVzdWx0KSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgY29tcGlsZU1h
a2VSb3BlKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBraWRzWzNdOworICAgICAgICB1bnNpZ25l
ZCBudW1LaWRzOworICAgICAgICBraWRzWzBdID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAga2lkc1sxXSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgIGlm
IChtX25vZGUtPmNoaWxkMygpKSB7CisgICAgICAgICAgICBraWRzWzJdID0gbG93Q2VsbChtX25v
ZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIG51bUtpZHMgPSAzOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAga2lkc1syXSA9IDA7CisgICAgICAgICAgICBudW1LaWRzID0gMjsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBGVExfTkVX
X0JMT0NLKG1fb3V0LCAoIk1ha2VSb3BlIHNsb3cgcGF0aCIpKTsKKyAgICAgICAgTEJhc2ljQmxv
Y2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJNYWtlUm9wZSBjb250aW51
YXRpb24iKSk7CisgICAgICAgIAorICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0
Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShzbG93UGF0aCk7CisgICAgICAgIAorICAgICAgICBNYXJr
ZWRBbGxvY2F0b3ImIGFsbG9jYXRvciA9CisgICAgICAgICAgICB2bSgpLmhlYXAuYWxsb2NhdG9y
Rm9yT2JqZWN0V2l0aEltbW9ydGFsU3RydWN0dXJlRGVzdHJ1Y3RvcihzaXplb2YoSlNSb3BlU3Ry
aW5nKSk7CisgICAgICAgIAorICAgICAgICBMVmFsdWUgcmVzdWx0ID0gYWxsb2NhdGVDZWxsKAor
ICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIoJmFsbG9jYXRvciksCisgICAgICAgICAgICBt
X291dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSksCisgICAgICAgICAg
ICBzbG93UGF0aCk7CisgICAgICAgIAorICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5pbnRQ
dHJaZXJvLCByZXN1bHQsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtS2lkczsgKytpKQorICAgICAgICAgICAgbV9vdXQuc3RvcmVQ
dHIoa2lkc1tpXSwgcmVzdWx0LCBtX2hlYXBzLkpTUm9wZVN0cmluZ19maWJlcnNbaV0pOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1LaWRzOyBpIDwgSlNSb3BlU3RyaW5nOjpzX21heElu
dGVybmFsUm9wZUxlbmd0aDsgKytpKQorICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQu
aW50UHRyWmVybywgcmVzdWx0LCBtX2hlYXBzLkpTUm9wZVN0cmluZ19maWJlcnNbaV0pOworICAg
ICAgICBMVmFsdWUgZmxhZ3MgPSBtX291dC5sb2FkMzIoa2lkc1swXSwgbV9oZWFwcy5KU1N0cmlu
Z19mbGFncyk7CisgICAgICAgIExWYWx1ZSBsZW5ndGggPSBtX291dC5sb2FkMzIoa2lkc1swXSwg
bV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBp
IDwgbnVtS2lkczsgKytpKSB7CisgICAgICAgICAgICBmbGFncyA9IG1fb3V0LmJpdEFuZChmbGFn
cywgbV9vdXQubG9hZDMyKGtpZHNbaV0sIG1faGVhcHMuSlNTdHJpbmdfZmxhZ3MpKTsKKyAgICAg
ICAgICAgIGxlbmd0aCA9IG1fb3V0LmFkZChsZW5ndGgsIG1fb3V0LmxvYWQzMihraWRzW2ldLCBt
X2hlYXBzLkpTU3RyaW5nX2xlbmd0aCkpOworICAgICAgICB9CisgICAgICAgIG1fb3V0LnN0b3Jl
MzIoCisgICAgICAgICAgICBtX291dC5iaXRBbmQobV9vdXQuY29uc3RJbnQzMihKU1N0cmluZzo6
SXM4Qml0KSwgZmxhZ3MpLAorICAgICAgICAgICAgcmVzdWx0LCBtX2hlYXBzLkpTU3RyaW5nX2Zs
YWdzKTsKKyAgICAgICAgbV9vdXQuc3RvcmUzMihsZW5ndGgsIHJlc3VsdCwgbV9oZWFwcy5KU1N0
cmluZ19sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3Vs
dCA9IG1fb3V0LmFuY2hvcihyZXN1bHQpOworICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlv
bik7CisgICAgICAgIAorICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0
aW9uKTsKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdDsKKyAgICAgICAgc3dpdGNo
IChudW1LaWRzKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHNsb3dSZXN1bHQgPSBt
X291dC5hbmNob3Iodm1DYWxsKAorICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVy
YXRpb25NYWtlUm9wZTIpLCBtX2NhbGxGcmFtZSwga2lkc1swXSwga2lkc1sxXSkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHNsb3dSZXN1bHQgPSBt
X291dC5hbmNob3Iodm1DYWxsKAorICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVy
YXRpb25NYWtlUm9wZTMpLCBtX2NhbGxGcmFtZSwga2lkc1swXSwga2lkc1sxXSwga2lkc1syXSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAKKyAgICAgICAgbV9v
dXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIHNldEpTVmFsdWUo
bV9vdXQucGhpKG1fb3V0LmludDY0LCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7CisgICAgfQor
ICAgIAogICAgIHZvaWQgY29tcGlsZVN0cmluZ0NoYXJBdCgpCiAgICAgewogICAgICAgICBMVmFs
dWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC0yMTE0LDcgKzI2NDAsNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAg
ICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9h
ZDMyKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSksCisgICAgICAgICAgICAgICAgaW5k
ZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3Ro
KSksCiAgICAgICAgICAgICBzbG93UGF0aCwgZmFzdFBhdGgpOwogICAgICAgICAgICAgCiAgICAg
ICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZmFzdFBhdGgsIHNsb3dQ
YXRoKTsKQEAgLTIyMTAsNyArMjczNiw4IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBz
cGVjdWxhdGUoCiAgICAgICAgICAgICBVbmNvdW50YWJsZSwgbm9WYWx1ZSgpLCAwLAotICAgICAg
ICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKGluZGV4LCBtX291dC5sb2FkMzIoYmFzZSwgbV9oZWFw
cy5KU1N0cmluZ19sZW5ndGgpKSk7CisgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCisg
ICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVh
cHMuSlNTdHJpbmdfbGVuZ3RoKSkpOwogICAgICAgICAKICAgICAgICAgTFZhbHVlIHN0cmluZ0lt
cGwgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOwogICAgICAg
ICAKQEAgLTIzNDUsNiArMjg3MiwxNiBAQCBwcml2YXRlOgogICAgICAgICBtX291dC5hcHBlbmRU
byhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxl
R2V0Q2FsbGVlKCkKKyAgICB7CisgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9hZFB0cihhZGRy
ZXNzRm9yKEpTU3RhY2s6OkNhbGxlZSkpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBjb21waWxl
R2V0U2NvcGUoKQorICAgIHsKKyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkUHRyKGxvd0Nl
bGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNGdW5jdGlvbl9zY29wZSkpOworICAgIH0K
KyAgICAKICAgICB2b2lkIGNvbXBpbGVHZXRNeVNjb3BlKCkKICAgICB7CiAgICAgICAgIHNldEpT
VmFsdWUobV9vdXQubG9hZFB0cihhZGRyZXNzRm9yKApAQCAtMjQ4OCwzNSArMzAyNSwzNyBAQCBw
cml2YXRlOgogICAgIAogICAgIHZvaWQgY29tcGlsZUNhbGxPckNvbnN0cnVjdCgpCiAgICAgewot
ICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB1bmFjY2VwdGFibHkgc2xvdy4KLSAgICAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMQorICAgICAgICBp
bnQgZHVtbXlUaGlzQXJndW1lbnQgPSBtX25vZGUtPm9wKCkgPT0gQ2FsbCA/IDAgOiAxOworICAg
ICAgICBpbnQgbnVtUGFzc2VkQXJncyA9IG1fbm9kZS0+bnVtQ2hpbGRyZW4oKSAtIDE7CisgICAg
ICAgIGludCBudW1BcmdzID0gbnVtUGFzc2VkQXJncyArIGR1bW15VGhpc0FyZ3VtZW50OwogICAg
ICAgICAKLSAgICAgICAgSl9KSVRPcGVyYXRpb25fRSBmdW5jdGlvbiA9Ci0gICAgICAgICAgICBt
X25vZGUtPm9wKCkgPT0gQ2FsbCA/IG9wZXJhdGlvbkZUTENhbGwgOiBvcGVyYXRpb25GVExDb25z
dHJ1Y3Q7CisgICAgICAgIExWYWx1ZSBjYWxsZWUgPSBsb3dKU1ZhbHVlKG1fZ3JhcGgudmFyQXJn
Q2hpbGQobV9ub2RlLCAwKSk7CiAgICAgICAgIAotICAgICAgICBpbnQgZHVtbXlUaGlzQXJndW1l
bnQgPSBtX25vZGUtPm9wKCkgPT0gQ2FsbCA/IDAgOiAxOworICAgICAgICB1bnNpZ25lZCBzdGFj
a21hcElEID0gbV9zdGFja21hcElEcysrOwogICAgICAgICAKLSAgICAgICAgaW50IG51bVBhc3Nl
ZEFyZ3MgPSBtX25vZGUtPm51bUNoaWxkcmVuKCkgLSAxOworICAgICAgICBWZWN0b3I8TFZhbHVl
PiBhcmd1bWVudHM7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQ2NChz
dGFja21hcElEKSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQzMihz
aXplT2ZDYWxsKCkpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjb25zdE51bGwobV9vdXQu
cmVmOCkpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50MzIoMSArIEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6
ZSArIG51bUFyZ3MpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjYWxsZWUpOyAvLyBjYWxs
ZWUgLT4gJXJheAorICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGdldFVuZGVmKG1fb3V0LmludDY0
KSk7IC8vIGNvZGUgYmxvY2sKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChnZXRVbmRlZihtX291
dC5pbnQ2NCkpOyAvLyBzY29wZSBjaGFpbgorICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGNhbGxl
ZSk7IC8vIGNhbGxlZSAtPiBzdGFjaworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNv
bnN0SW50NjQobnVtQXJncykpOyAvLyBhcmd1bWVudCBjb3VudCBhbmQgemVyb3MgZm9yIHRoZSB0
YWcKKyAgICAgICAgaWYgKGR1bW15VGhpc0FyZ3VtZW50KQorICAgICAgICAgICAgYXJndW1lbnRz
LmFwcGVuZChnZXRVbmRlZihtX291dC5pbnQ2NCkpOworICAgICAgICBmb3IgKGludCBpID0gMDsg
aSA8IG51bVBhc3NlZEFyZ3M7ICsraSkKKyAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobG93
SlNWYWx1ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSArIGkpKSk7CiAgICAgICAgIAot
ICAgICAgICBMVmFsdWUgY2FsbGVlRnJhbWUgPSBtX291dC5hZGQoCi0gICAgICAgICAgICBtX2Nh
bGxGcmFtZSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHNpemVvZihSZWdpc3Rlcikg
KiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2dyYXBoLmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5v
ZmZzZXQoKSkpOworICAgICAgICBjYWxsUHJlZmxpZ2h0KCk7CiAgICAgICAgIAotICAgICAgICBt
X291dC5zdG9yZTMyKAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihudW1QYXNzZWRBcmdz
ICsgZHVtbXlUaGlzQXJndW1lbnQpLAotICAgICAgICAgICAgcGF5bG9hZEZvcihjYWxsZWVGcmFt
ZSwgSlNTdGFjazo6QXJndW1lbnRDb3VudCkpOwotICAgICAgICBtX291dC5zdG9yZTY0KG1fY2Fs
bEZyYW1lLCBjYWxsZWVGcmFtZSwgbV9oZWFwcy5DYWxsRnJhbWVfY2FsbGVyRnJhbWUpOwotICAg
ICAgICBtX291dC5zdG9yZTY0KAotICAgICAgICAgICAgbG93SlNWYWx1ZShtX2dyYXBoLnZhckFy
Z0NoaWxkKG1fbm9kZSwgMCkpLAotICAgICAgICAgICAgYWRkcmVzc0ZvcihjYWxsZWVGcmFtZSwg
SlNTdGFjazo6Q2FsbGVlKSk7CisgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQuY2FsbChtX291
dC5wYXRjaHBvaW50SW50NjRJbnRyaW5zaWMoKSwgYXJndW1lbnRzKTsKKyAgICAgICAgc2V0SW5z
dHJ1Y3Rpb25DYWxsaW5nQ29udmVudGlvbihjYWxsLCBMTFZNV2ViS2l0SlNDYWxsQ29udik7CiAg
ICAgICAgIAotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7ICsraSkg
ewotICAgICAgICAgICAgbV9vdXQuc3RvcmU2NCgKLSAgICAgICAgICAgICAgICBsb3dKU1ZhbHVl
KG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxICsgaSkpLAotICAgICAgICAgICAgICAgIGFk
ZHJlc3NGb3IoY2FsbGVlRnJhbWUsIHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGkgKyBkdW1t
eVRoaXNBcmd1bWVudCkub2Zmc2V0KCkpKTsKLSAgICAgICAgfQorICAgICAgICBtX2Z0bFN0YXRl
LmpzQ2FsbHMuYXBwZW5kKEpTQ2FsbChzdGFja21hcElELCBtX25vZGUpKTsKICAgICAgICAgCi0g
ICAgICAgIHNldEpTVmFsdWUodm1DYWxsKG1fb3V0Lm9wZXJhdGlvbihmdW5jdGlvbiksIGNhbGxl
ZUZyYW1lKSk7CisgICAgICAgIHNldEpTVmFsdWUoY2FsbCk7CiAgICAgfQogICAgIAogICAgIHZv
aWQgY29tcGlsZUp1bXAoKQpAQCAtMjYyNyw3ICszMTY2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fb3V0Lm5v
dEVxdWFsKAotICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzIoc3RyaW5nVmFsdWUsIG1f
aGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMy
Tm9uTmVnYXRpdmUoc3RyaW5nVmFsdWUsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSwKICAgICAg
ICAgICAgICAgICAgICAgbV9vdXQuaW50MzJPbmUpLAogICAgICAgICAgICAgICAgIGxvd0Jsb2Nr
KGRhdGEtPmZhbGxUaHJvdWdoKSwgbGVuZ3RoSXMxKTsKICAgICAgICAgICAgIApAQCAtMjcwOCw2
ICszMjQ3LDIyIEBAIHByaXZhdGU6CiAgICAgICAgIGluZm8ubV9pc0ludmFsaWRhdGlvblBvaW50
ID0gdHJ1ZTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlQ2hlY2tBcmd1bWVudHNOb3RD
cmVhdGVkKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghaXNFbXB0eVNwZWN1bGF0aW9uKAorICAg
ICAgICAgICAgbV9zdGF0ZS52YXJpYWJsZXMoKS5vcGVyYW5kKAorICAgICAgICAgICAgICAgIG1f
Z3JhcGguYXJndW1lbnRzUmVnaXN0ZXJGb3IobV9ub2RlLT5jb2RlT3JpZ2luKSkubV90eXBlKSk7
CisgICAgICAgIAorICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0gbV9ncmFwaC5tYWNoaW5l
QXJndW1lbnRzUmVnaXN0ZXJGb3IobV9ub2RlLT5jb2RlT3JpZ2luKTsKKyAgICAgICAgc3BlY3Vs
YXRlKEFyZ3VtZW50c0VzY2FwZWQsIG5vVmFsdWUoKSwgMCwgbV9vdXQubm90WmVybzY0KG1fb3V0
LmxvYWQ2NChhZGRyZXNzRm9yKHJlZykpKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgY29tcGls
ZUNvdW50RXhlY3V0aW9uKCkKKyAgICB7CisgICAgICAgIFR5cGVkUG9pbnRlciBjb3VudGVyID0g
bV9vdXQuYWJzb2x1dGUobV9ub2RlLT5leGVjdXRpb25Db3VudGVyKCktPmFkZHJlc3MoKSk7Cisg
ICAgICAgIG1fb3V0LnN0b3JlNjQobV9vdXQuYWRkKG1fb3V0LmxvYWQ2NChjb3VudGVyKSwgbV9v
dXQuY29uc3RJbnQ2NCgxKSksIGNvdW50ZXIpOworICAgIH0KKyAgICAKICAgICBUeXBlZFBvaW50
ZXIgYmFzZUluZGV4KEluZGV4ZWRBYnN0cmFjdEhlYXAmIGhlYXAsIExWYWx1ZSBzdG9yYWdlLCBM
VmFsdWUgaW5kZXgsIEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIHJldHVybiBtX291dC5iYXNl
SW5kZXgoCkBAIC0yOTI0LDcgKzM0NzksNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgaWYg
KEpTQXJyYXlCdWZmZXJWaWV3KiB2aWV3ID0gbV9ncmFwaC50cnlHZXRGb2xkYWJsZVZpZXcoYmFz
ZUVkZ2Uubm9kZSgpLCBhcnJheU1vZGUpKQogICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmNvbnN0
SW50MzIodmlldy0+bGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gbV9vdXQubG9hZDMyKGJhc2Us
IG1faGVhcHMuSlNBcnJheUJ1ZmZlclZpZXdfbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIG1fb3V0
LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZpZXdfbGVuZ3Ro
KTsKICAgICB9CiAgICAgCiAgICAgTFZhbHVlIHR5cGVkQXJyYXlMZW5ndGgoRWRnZSBiYXNlRWRn
ZSwgQXJyYXlNb2RlIGFycmF5TW9kZSkKQEAgLTI5NDgsNyArMzUwMyw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAgICAgICAgIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbikpOwogICAgICAgICBj
YXNlIFN0cmluZ1VzZTogewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZ1ZhbHVlID0gbG93U3Ry
aW5nKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIGxlbmd0aCA9IG1fb3V0
LmxvYWQzMihzdHJpbmdWYWx1ZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpOworICAgICAgICAg
ICAgTFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0cmluZ1ZhbHVlLCBt
X2hlYXBzLkpTU3RyaW5nX2xlbmd0aCk7CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQubm90RXF1
YWwobGVuZ3RoLCBtX291dC5pbnQzMlplcm8pOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVW50
eXBlZFVzZTogewpAQCAtMzA4Miw3ICszNjM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgTEJhc2lj
QmxvY2sgY29udGludWF0aW9uKQogICAgIHsKICAgICAgICAgTFZhbHVlIGlzTm90SW5Cb3VuZHMg
PSBtX291dC5hYm92ZU9yRXF1YWwoCi0gICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyKHN0
b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpOworICAgICAgICAgICAgaW5k
ZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1
YmxpY0xlbmd0aCkpOwogICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5k
cygpKSB7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RJbkJvdW5kc0Nhc2UgPQogICAgICAg
ICAgICAgICAgIEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiUHV0QnlWYWwgbm90IGluIGJvdW5kcyIp
KTsKQEAgLTMwOTQsNyArMzY0OSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBMQmFzaWNCbG9j
ayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdEluQm91bmRzQ2FzZSwgcGVyZm9ybVN0b3Jl
KTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSBpc091dE9mQm91bmRzID0g
bV9vdXQuYWJvdmVPckVxdWFsKAotICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIo
c3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfdmVjdG9yTGVuZ3RoKSk7CisgICAgICAgICAgICAg
ICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVy
Zmx5X3ZlY3Rvckxlbmd0aCkpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFt
X25vZGUtPmFycmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKSkKICAgICAgICAgICAgICAgICBzcGVj
dWxhdGUoT3V0T2ZCb3VuZHMsIG5vVmFsdWUoKSwgMCwgaXNPdXRPZkJvdW5kcyk7CkBAIC0zNzE4
LDYgKzQyNzMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
S25vd25JbnQzMlVzZToKICAgICAgICAgY2FzZSBLbm93bk51bWJlclVzZToKKyAgICAgICAgY2Fz
ZSBLbm93blN0cmluZ1VzZToKICAgICAgICAgICAgIEFTU0VSVCghbV9pbnRlcnByZXRlci5uZWVk
c1R5cGVDaGVjayhlZGdlKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbnQz
MlVzZToKQEAgLTM3NDEsNiArNDI5NywxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFN0cmlu
Z1VzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0
ZVN0cmluZ09iamVjdChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFN0
cmluZ09yU3RyaW5nT2JqZWN0VXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT3JTdHJp
bmdPYmplY3QoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWFsTnVt
YmVyVXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlUmVhbE51bWJlcihlZGdlKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMzkyOCw2ICs0NDkwLDU1IEBAIHByaXZhdGU6CiAgICAgICAgIHNwZWN1
bGF0ZVN0cmluZyhlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKICAgICB9CiAgICAgCisgICAgdm9pZCBz
cGVjdWxhdGVTdHJpbmdPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2lu
dGVycHJldGVyLm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmdPYmplY3QpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9y
Q2VsbChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKKyAgICAgICAgbV9pbnRlcnByZXRlci5maWx0ZXIo
ZWRnZSwgU3BlY1N0cmluZ09iamVjdCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc3BlY3VsYXRl
U3RyaW5nT3JTdHJpbmdPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2lu
dGVycHJldGVyLm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2Jq
ZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIExCYXNpY0Jsb2Nr
IG5vdFN0cmluZyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3BlY3VsYXRlIFN0cmluZ09yU3Ry
aW5nT2JqZWN0IG5vdCBzdHJpbmcgY2FzZSIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGlu
dWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJTcGVjdWxhdGUgU3RyaW5nT3JTdHJpbmdP
YmplY3QgY29udGludWF0aW9uIikpOworICAgICAgICAKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVy
ZSA9IG1fb3V0LmxvYWRQdHIobG93Q2VsbChlZGdlKSwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJl
KTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgbV9vdXQuZXF1YWwoc3RydWN0
dXJlLCBtX291dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpLAorICAg
ICAgICAgICAgY29udGludWF0aW9uLCBub3RTdHJpbmcpOworICAgICAgICAKKyAgICAgICAgTEJh
c2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RTdHJpbmcsIGNvbnRpbnVhdGlv
bik7CisgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvclN0cnVjdHVyZShlZGdlLCBzdHJ1
Y3R1cmUpOworICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgIAorICAg
ICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgCisg
ICAgICAgIG1faW50ZXJwcmV0ZXIuZmlsdGVyKGVkZ2UsIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5n
T2JqZWN0KTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JD
ZWxsKEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBzcGVjdWxhdGVTdHJp
bmdPYmplY3RGb3JTdHJ1Y3R1cmUoZWRnZSwgbV9vdXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpT
Q2VsbF9zdHJ1Y3R1cmUpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdP
YmplY3RGb3JTdHJ1Y3R1cmUoRWRnZSBlZGdlLCBMVmFsdWUgc3RydWN0dXJlKQorICAgIHsKKyAg
ICAgICAgU3RydWN0dXJlKiBzdHJpbmdPYmplY3RTdHJ1Y3R1cmUgPQorICAgICAgICAgICAgbV9n
cmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2RlLT5jb2RlT3JpZ2luKS0+c3RyaW5nT2JqZWN0U3Ry
dWN0dXJlKCk7CisgICAgICAgIAorICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKGVkZ2UpLm1f
Y3VycmVudEtub3duU3RydWN0dXJlLmlzU3Vic2V0T2YoU3RydWN0dXJlU2V0KHN0cmluZ09iamVj
dFN0cnVjdHVyZSkpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgc3Bl
Y3VsYXRlKAorICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0LCBub1ZhbHVlKCksIDAsCisgICAg
ICAgICAgICBtX291dC5ub3RFcXVhbChzdHJ1Y3R1cmUsIHdlYWtQb2ludGVyKHN0cmluZ09iamVj
dFN0cnVjdHVyZSkpKTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVOb25OdWxsT2Jq
ZWN0KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewogICAgICAgICBMVmFsdWUgc3RydWN0
dXJlID0gbV9vdXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUpOwpAQCAt
NDEwNiwxOCArNDcxNywxMyBAQCBwcml2YXRlOgogICAgICAgICBpZiAobW9kZSA9PSBOb0V4Y2Vw
dGlvbnMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgICAgICBMQmFzaWNCbG9j
ayBkaWRIYXZlRXhjZXB0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJEaWQgaGF2ZSBleGNl
cHRpb24iKSk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxP
Q0sobV9vdXQsICgiRXhjZXB0aW9uIGNoZWNrIGNvbnRpbnVhdGlvbiIpKTsKICAgICAgICAgCiAg
ICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm82NChtX291dC5s
b2FkNjQobV9vdXQuYWJzb2x1dGUodm0oKS5hZGRyZXNzT2ZFeGNlcHRpb24oKSkpKSwKLSAgICAg
ICAgICAgIGRpZEhhdmVFeGNlcHRpb24sIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIAotICAgICAg
ICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGRpZEhhdmVFeGNlcHRpb24s
IGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgZXhjZXB0aW9ucy4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgotICAgICAgICBtX291
dC5jcmFzaCgpOworICAgICAgICAgICAgbV9oYW5kbGVFeGNlcHRpb25zLCBjb250aW51YXRpb24p
OwogICAgICAgICAKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4
dCk7CisgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbik7CiAgICAgfQogICAgIAog
ICAgIExCYXNpY0Jsb2NrIGxvd0Jsb2NrKEJhc2ljQmxvY2sqIGJsb2NrKQpAQCAtNDEzMyw4ICs0
NzM5LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBlbmRPU1JFeGl0KAogICAgICAgICBFeGl0
S2luZCBraW5kLCBGb3JtYXR0ZWRWYWx1ZSBsb3dWYWx1ZSwgTm9kZSogaGlnaFZhbHVlLCBMVmFs
dWUgZmFpbENvbmRpdGlvbikKICAgICB7Ci0gICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25F
bmFibGVkKCkpCisgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpIHsKICAg
ICAgICAgICAgIGRhdGFMb2coIiAgICBPU1IgZXhpdCAjIiwgbV9mdGxTdGF0ZS5qaXRDb2RlLT5v
c3JFeGl0LnNpemUoKSwgIiB3aXRoIGF2YWlsYWJpbGl0eTogIiwgbV9hdmFpbGFiaWxpdHksICJc
biIpOworICAgICAgICAgICAgaWYgKCFtX2F2YWlsYWJsZVJlY292ZXJpZXMuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICAgICAgQXZhaWxhYmxlIHJlY292ZXJpZXM6ICIs
IGxpc3REdW1wKG1fYXZhaWxhYmxlUmVjb3ZlcmllcyksICJcbiIpOworICAgICAgICB9CiAKICAg
ICAgICAgQVNTRVJUKG1fZnRsU3RhdGUuaml0Q29kZS0+b3NyRXhpdC5zaXplKCkgPT0gbV9mdGxT
dGF0ZS5maW5hbGl6ZXItPm9zckV4aXQuc2l6ZSgpKTsKICAgICAgICAgCkBAIC00MTc4LDcgKzQ3
ODcsNiBAQCBwcml2YXRlOgogICAgICAgICBPU1JFeGl0JiBleGl0LCBFeGl0QXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIEZvcm1hdHRlZFZhbHVlIGxvd1ZhbHVlLAogICAgICAgICBDb2RlT3JpZ2lu
IGNvZGVPcmlnaW4pCiAgICAgewotICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fY2FsbEZyYW1l
KTsKICAgICAgICAgaWYgKCEhbG93VmFsdWUpCiAgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5k
KGxvd1ZhbHVlLnZhbHVlKCkpOwogICAgICAgICAKQEAgLTQyNDYsNyArNDg1NCw3IEBAIHByaXZh
dGU6CiAgICAgewogICAgICAgICBleGl0Lm1fc3RhY2ttYXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsK
ICAgICAgICAgYXJndW1lbnRzLmluc2VydCgwLCBtX291dC5jb25zdEludDMyKE1hY3JvQXNzZW1i
bGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkpKTsKLSAgICAgICAgYXJndW1lbnRzLmluc2Vy
dCgwLCBtX291dC5jb25zdEludDMyKGV4aXQubV9zdGFja21hcElEKSk7CisgICAgICAgIGFyZ3Vt
ZW50cy5pbnNlcnQoMCwgbV9vdXQuY29uc3RJbnQ2NChleGl0Lm1fc3RhY2ttYXBJRCkpOwogICAg
ICAgICAKICAgICAgICAgbV9vdXQuY2FsbChtX291dC5zdGFja21hcEludHJpbnNpYygpLCBhcmd1
bWVudHMpOwogICAgIH0KQEAgLTQyNjAsNiArNDg2OCwxOSBAQCBwcml2YXRlOgogICAgICAgICBp
ZiAodHJ5VG9TZXRDb25zdGFudEV4aXRBcmd1bWVudChleGl0LCBpbmRleCwgbm9kZSkpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIAorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV9hdmFpbGFibGVSZWNvdmVyaWVzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBBdmFp
bGFibGVSZWNvdmVyeSByZWNvdmVyeSA9IG1fYXZhaWxhYmxlUmVjb3Zlcmllc1tpXTsKKyAgICAg
ICAgICAgIGlmIChyZWNvdmVyeS5ub2RlKCkgIT0gbm9kZSkKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZXhpdC5tX3ZhbHVlc1tpbmRleF0gPSBF
eGl0VmFsdWU6OnJlY292ZXJ5KAorICAgICAgICAgICAgICAgIHJlY292ZXJ5Lm9wY29kZSgpLCBh
cmd1bWVudHMuc2l6ZSgpLCBhcmd1bWVudHMuc2l6ZSgpICsgMSwKKyAgICAgICAgICAgICAgICBy
ZWNvdmVyeS5mb3JtYXQoKSk7CisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJlY292ZXJ5
LmxlZnQoKSk7CisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJlY292ZXJ5LnJpZ2h0KCkp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBMb3dl
cmVkTm9kZVZhbHVlIHZhbHVlID0gbV9pbnQzMlZhbHVlcy5nZXQobm9kZSk7CiAgICAgICAgIGlm
IChpc1ZhbGlkKHZhbHVlKSkgewogICAgICAgICAgICAgYWRkRXhpdEFyZ3VtZW50KGV4aXQsIGFy
Z3VtZW50cywgaW5kZXgsIFZhbHVlRm9ybWF0SW50MzIsIHZhbHVlLnZhbHVlKCkpOwpAQCAtNDMy
OSw2ICs0OTUwLDI5IEBAIHByaXZhdGU6CiAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQodmFsdWUp
OwogICAgIH0KICAgICAKKyAgICBib29sIGRvZXNLaWxsKEVkZ2UgZWRnZSkKKyAgICB7CisgICAg
ICAgIGlmIChlZGdlLmRvZXNOb3RLaWxsKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIAorICAgICAgICBpZiAoZWRnZS0+aGFzQ29uc3RhbnQoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IHZvaWQgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgIE5vZGUqIG5vZGUsIFJlY292ZXJ5
T3Bjb2RlIG9wY29kZSwgTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCwgVmFsdWVGb3JtYXQgZm9y
bWF0KQorICAgIHsKKyAgICAgICAgbV9hdmFpbGFibGVSZWNvdmVyaWVzLmFwcGVuZChBdmFpbGFi
bGVSZWNvdmVyeShub2RlLCBvcGNvZGUsIGxlZnQsIHJpZ2h0LCBmb3JtYXQpKTsKKyAgICB9Cisg
ICAgCisgICAgdm9pZCBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgRWRnZSBlZGdlLCBS
ZWNvdmVyeU9wY29kZSBvcGNvZGUsIExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQsIFZhbHVlRm9y
bWF0IGZvcm1hdCkKKyAgICB7CisgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KGVkZ2Uubm9k
ZSgpLCBvcGNvZGUsIGxlZnQsIHJpZ2h0LCBmb3JtYXQpOworICAgIH0KKyAgICAKICAgICB2b2lk
IHNldEludDMyKE5vZGUqIG5vZGUsIExWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIG1faW50
MzJWYWx1ZXMuc2V0KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFsdWUsIG1faGlnaEJsb2NrKSk7
CkBAIC00NDMxLDM1ICs1MDc1LDM3IEBAIHByaXZhdGU6CiAgICAgfQogICAgIFR5cGVkUG9pbnRl
ciBwYXlsb2FkRm9yKExWYWx1ZSBiYXNlLCBpbnQgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZGRyZXNzRm9yKGJhc2UsIG9wZXJhbmQsIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFs
dWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpOworICAgICAgICByZXR1cm4gYWRkcmVzc0Zv
cihiYXNlLCBvcGVyYW5kLCBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CiAgICAgVHlwZWRQb2ludGVy
IHRhZ0ZvcihMVmFsdWUgYmFzZSwgaW50IG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRkcmVzc0ZvcihiYXNlLCBvcGVyYW5kLCBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVz
Y3JpcHRvciwgYXNCaXRzLnRhZykpOworICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihiYXNlLCBv
cGVyYW5kLCBUYWdPZmZzZXQpOwogICAgIH0KLSAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0Zvcihp
bnQgb3BlcmFuZCkKKyAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0ZvcihpbnQgb3BlcmFuZCwgcHRy
ZGlmZl90IG9mZnNldCA9IDApCiAgICAgewotICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihtX2Nh
bGxGcmFtZSwgb3BlcmFuZCk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKFZpcnR1YWxSZWdp
c3RlcihvcGVyYW5kKSwgb2Zmc2V0KTsKICAgICB9Ci0gICAgVHlwZWRQb2ludGVyIGFkZHJlc3NG
b3IoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQpCisgICAgVHlwZWRQb2ludGVyIGFkZHJlc3NGb3Io
VmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQsIHB0cmRpZmZfdCBvZmZzZXQgPSAwKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkZHJlc3NGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zmc2V0KCkpOwor
ICAgICAgICBpZiAob3BlcmFuZC5pc0xvY2FsKCkpCisgICAgICAgICAgICByZXR1cm4gYWRkcmVz
c0ZvcihtX2NhcHR1cmVkLCBvcGVyYW5kLm9mZnNldCgpLCBvZmZzZXQpOworICAgICAgICByZXR1
cm4gYWRkcmVzc0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZC5vZmZzZXQoKSwgb2Zmc2V0KTsKICAg
ICB9CiAgICAgVHlwZWRQb2ludGVyIHBheWxvYWRGb3IoaW50IG9wZXJhbmQpCiAgICAgewotICAg
ICAgICByZXR1cm4gcGF5bG9hZEZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZCk7CisgICAgICAgIHJl
dHVybiBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKSk7CiAgICAgfQogICAgIFR5
cGVkUG9pbnRlciBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHBheWxvYWRGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zmc2V0KCkpOwor
ICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihvcGVyYW5kLCBQYXlsb2FkT2Zmc2V0KTsKICAgICB9
CiAgICAgVHlwZWRQb2ludGVyIHRhZ0ZvcihpbnQgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiB0YWdGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQpOworICAgICAgICByZXR1cm4gdGFnRm9y
KFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKSk7CiAgICAgfQogICAgIFR5cGVkUG9pbnRlciB0YWdG
b3IoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4gdGFnRm9y
KG1fY2FsbEZyYW1lLCBvcGVyYW5kLm9mZnNldCgpKTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NG
b3Iob3BlcmFuZCwgVGFnT2Zmc2V0KTsKICAgICB9CiAgICAgCiAgICAgVk0mIHZtKCkgeyByZXR1
cm4gbV9ncmFwaC5tX3ZtOyB9CkBAIC00NDcxLDkgKzUxMTcsMTEgQEAgcHJpdmF0ZToKICAgICBP
dXRwdXQgbV9vdXQ7CiAgICAgCiAgICAgTEJhc2ljQmxvY2sgbV9wcm9sb2d1ZTsKKyAgICBMQmFz
aWNCbG9jayBtX2hhbmRsZUV4Y2VwdGlvbnM7CiAgICAgSGFzaE1hcDxCYXNpY0Jsb2NrKiwgTEJh
c2ljQmxvY2s+IG1fYmxvY2tzOwogICAgIAogICAgIExWYWx1ZSBtX2NhbGxGcmFtZTsKKyAgICBM
VmFsdWUgbV9jYXB0dXJlZDsKICAgICBMVmFsdWUgbV90YWdUeXBlTnVtYmVyOwogICAgIExWYWx1
ZSBtX3RhZ01hc2s7CiAgICAgCkBAIC00NDg5LDYgKzUxMzcsOCBAQCBwcml2YXRlOgogICAgIAog
ICAgIE9wZXJhbmRzPEF2YWlsYWJpbGl0eT4gbV9hdmFpbGFiaWxpdHk7CiAgICAgCisgICAgVmVj
dG9yPEF2YWlsYWJsZVJlY292ZXJ5LCAzPiBtX2F2YWlsYWJsZVJlY292ZXJpZXM7CisgICAgCiAg
ICAgSW5QbGFjZUFic3RyYWN0U3RhdGUgbV9zdGF0ZTsKICAgICBBYnN0cmFjdEludGVycHJldGVy
PEluUGxhY2VBYnN0cmFjdFN0YXRlPiBtX2ludGVycHJldGVyOwogICAgIEJhc2ljQmxvY2sqIG1f
aGlnaEJsb2NrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFbnRyeS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFbnRyeS5j
cHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NS
RW50cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBAIHZvaWQqIHByZXBhcmVP
U1JFbnRyeSgKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIENvZGVCbG9jayogYmFz
ZWxpbmUgPSBkZmdDb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigpOworICAgIEV4ZWN1dGFibGVC
YXNlKiBleGVjdXRhYmxlID0gZGZnQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKTsKICAgICBE
Rkc6OkpJVENvZGUqIGRmZ0NvZGUgPSBkZmdDb2RlQmxvY2stPmppdENvZGUoKS0+ZGZnKCk7CiAg
ICAgRm9yT1NSRW50cnlKSVRDb2RlKiBlbnRyeUNvZGUgPSBlbnRyeUNvZGVCbG9jay0+aml0Q29k
ZSgpLT5mdGxGb3JPU1JFbnRyeSgpOwogICAgIApAQCAtODAsNyArODEsNyBAQCB2b2lkKiBwcmVw
YXJlT1NSRW50cnkoCiAgICAgICAgIHNjcmF0Y2hbbG9jYWxdID0gSlNWYWx1ZTo6ZW5jb2RlKHZh
bHVlcy5sb2NhbChsb2NhbCkpOwogICAgIAogICAgIGludCBzdGFja0ZyYW1lU2l6ZSA9IGVudHJ5
Q29kZS0+Y29tbW9uLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKTsK
LSAgICBpZiAoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJlZ2lzdGVycygp
W3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKHN0YWNrRnJhbWVTaXplKS5vZmZzZXQoKV0pKSB7Cisg
ICAgaWYgKCF2bS5pbnRlcnByZXRlci0+c3RhY2soKS5lbnN1cmVDYXBhY2l0eUZvcigmZXhlYy0+
cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoc3RhY2tGcmFtZVNpemUgLSAxKS5v
ZmZzZXQoKV0pKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAg
ICAgICBkYXRhTG9nKCIgICAgT1NSIGZhaWxlZCBiZWNhdXNlIHN0YWNrIGdyb3d0aCBmYWlsZWQu
XG4iKTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC04OCw3ICs4OSw5IEBAIHZvaWQqIHByZXBhcmVP
U1JFbnRyeSgKICAgICAKICAgICBleGVjLT5zZXRDb2RlQmxvY2soZW50cnlDb2RlQmxvY2spOwog
ICAgIAotICAgIHZvaWQqIHJlc3VsdCA9IGVudHJ5Q29kZS0+YWRkcmVzc0ZvckNhbGwoKS5leGVj
dXRhYmxlQWRkcmVzcygpOworICAgIHZvaWQqIHJlc3VsdCA9IGVudHJ5Q29kZS0+YWRkcmVzc0Zv
ckNhbGwoCisgICAgICAgIHZtLCBleGVjdXRhYmxlLCBBcml0eUNoZWNrTm90UmVxdWlyZWQsCisg
ICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpLmV4ZWN1dGFibGVBZGRyZXNz
KCk7CiAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgZGF0YUxvZygiICAg
IEVudHJ5IHdpbGwgc3VjY2VlZCwgZ29pbmcgdG8gYWRkcmVzcyIsIFJhd1BvaW50ZXIocmVzdWx0
KSwgIlxuIik7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4
aXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXQu
aAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JF
eGl0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsMTEgQEAgc3RydWN0IE9TUkV4aXQg
OiBwdWJsaWMgREZHOjpPU1JFeGl0QmFzZQogICAgIHVpbnQzMl90IG1fc3RhY2ttYXBJRDsKICAg
ICAKICAgICBDb2RlTG9jYXRpb25KdW1wIGNvZGVMb2NhdGlvbkZvclJlcGF0Y2goQ29kZUJsb2Nr
KiBmdGxDb2RlQmxvY2spIGNvbnN0OworICAgIAorICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0Zy
ZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaykKKyAgICB7CisgICAg
ICAgIHJldHVybiBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUo
cHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRGcm9tRlRMKTsKKyAgICB9CiB9OwogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6RlRMCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4
aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDgg
KzM0LDEwIEBACiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgogI2luY2x1ZGUgIkZUTE9TUkV4aXQu
aCIKICNpbmNsdWRlICJGVExTYXZlUmVzdG9yZS5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3BlcmFuZHNJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdl
bmVyYXRvci5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgewpAQCAtNjIsOSArNjQsMTAgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0
dWIoCiAgICAgCiAgICAgLy8gV2UgbmVlZCBzY3JhdGNoIHNwYWNlIHRvIHNhdmUgYWxsIHJlZ2lz
dGVycyBhbmQgdG8gYnVpbGQgdXAgdGhlIEpTU3RhY2suCiAgICAgLy8gVXNlIGEgc2NyYXRjaCBi
dWZmZXIgdG8gdHJhbnNmZXIgYWxsIHZhbHVlcy4KLSAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNo
QnVmZmVyID0gdm0tPnNjcmF0Y2hCdWZmZXJGb3JTaXplKHNpemVvZihFbmNvZGVkSlNWYWx1ZSkg
KiBleGl0Lm1fdmFsdWVzLnNpemUoKSArIHJlcXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVz
KCkpOworICAgIFNjcmF0Y2hCdWZmZXIqIHNjcmF0Y2hCdWZmZXIgPSB2bS0+c2NyYXRjaEJ1ZmZl
ckZvclNpemUoc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSAqIGV4aXQubV92YWx1ZXMuc2l6ZSgpICsg
cmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSArIGppdENvZGUtPnVud2luZEluZm8u
bV9yZWdpc3RlcnMuc2l6ZSgpICogc2l6ZW9mKHVpbnQ2NF90KSk7CiAgICAgRW5jb2RlZEpTVmFs
dWUqIHNjcmF0Y2ggPSBzY3JhdGNoQnVmZmVyID8gc3RhdGljX2Nhc3Q8RW5jb2RlZEpTVmFsdWUq
PihzY3JhdGNoQnVmZmVyLT5kYXRhQnVmZmVyKCkpIDogMDsKICAgICBjaGFyKiByZWdpc3RlclNj
cmF0Y2ggPSBiaXR3aXNlX2Nhc3Q8Y2hhcio+KHNjcmF0Y2ggKyBleGl0Lm1fdmFsdWVzLnNpemUo
KSk7CisgICAgdWludDY0X3QqIHVud2luZFNjcmF0Y2ggPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Qq
PihyZWdpc3RlclNjcmF0Y2ggKyByZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKTsK
ICAgICAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBzYXZlQWxsUmVnaXN0ZXJzKCkgaGFzIGEgcGxh
Y2Ugb24gdG9wIG9mIHRoZSBzdGFjayB0byBzcGlsbCB0aGluZ3MuIFRoYXQKICAgICAvLyBmdW5j
dGlvbiBleHBlY3RzIHRvIGJlIGFibGUgdG8gdXNlIHRvcCBvZiBzdGFjayBmb3Igc2NyYXRjaCBt
ZW1vcnkuCkBAIC03NSwxOCArNzgsMjcgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoCiAgICAg
aml0LnBvcChHUFJJbmZvOjpyZWdUMCk7CiAgICAgaml0LnBvcChHUFJJbmZvOjpyZWdUMCk7CiAg
ICAgCisgICAgaWYgKHZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIgJiYgY29kZUJsb2NrLT5qaXRD
b2RlKCktPmRmZ0NvbW1vbigpLT5jb21waWxhdGlvbikgeworICAgICAgICBQcm9maWxlcjo6RGF0
YWJhc2UmIGRhdGFiYXNlID0gKnZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXI7CisgICAgICAgIFBy
b2ZpbGVyOjpDb21waWxhdGlvbiogY29tcGlsYXRpb24gPSBjb2RlQmxvY2stPmppdENvZGUoKS0+
ZGZnQ29tbW9uKCktPmNvbXBpbGF0aW9uLmdldCgpOworICAgICAgICAKKyAgICAgICAgUHJvZmls
ZXI6Ok9TUkV4aXQqIHByb2ZpbGVyRXhpdCA9IGNvbXBpbGF0aW9uLT5hZGRPU1JFeGl0KAorICAg
ICAgICAgICAgZXhpdElELCBQcm9maWxlcjo6T3JpZ2luU3RhY2soZGF0YWJhc2UsIGNvZGVCbG9j
aywgZXhpdC5tX2NvZGVPcmlnaW4pLAorICAgICAgICAgICAgZXhpdC5tX2tpbmQsIGlzV2F0Y2hw
b2ludChleGl0Lm1fa2luZCkpOworICAgICAgICBqaXQuYWRkNjQoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoMSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKHByb2ZpbGVyRXhpdC0+
Y291bnRlckFkZHJlc3MoKSkpOworICAgIH0KKwogICAgIC8vIFRoZSByZW1haW5pbmcgY29kZSBh
c3N1bWVzIHRoYXQgU1AvRlAgYXJlIGluIHRoZSBzYW1lIHN0YXRlIHRoYXQgdGhleSB3ZXJlIGlu
IHRoZSBGVEwncwogICAgIC8vIGNhbGwgZnJhbWUuCiAgICAgCiAgICAgLy8gR2V0IHRoZSBjYWxs
IGZyYW1lIGFuZCB0YWcgdGhpbmdpZXMuCiAgICAgLy8gUmVzdG9yZSB0aGUgZXhpdGluZyBmdW5j
dGlvbidzIGNhbGxGcmFtZSB2YWx1ZSBpbnRvIGEgcmVnVDQKLSAgICByZWNvcmQtPmxvY2F0aW9u
c1swXS5yZXN0b3JlSW50byhqaXQsIGppdENvZGUtPnN0YWNrbWFwcywgcmVnaXN0ZXJTY3JhdGNo
LCBHUFJJbmZvOjpyZWdUNCk7CiAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW02NChUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKICAg
ICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KFRhZ01hc2spLCBHUFJJbmZv
Ojp0YWdNYXNrUmVnaXN0ZXIpOwogICAgIAogICAgIC8vIERvIHNvbWUgdmFsdWUgcHJvZmlsaW5n
LgogICAgIGlmIChleGl0Lm1fcHJvZmlsZVZhbHVlRm9ybWF0ICE9IEludmFsaWRWYWx1ZUZvcm1h
dCkgewotICAgICAgICByZWNvcmQtPmxvY2F0aW9uc1sxXS5yZXN0b3JlSW50byhqaXQsIGppdENv
ZGUtPnN0YWNrbWFwcywgcmVnaXN0ZXJTY3JhdGNoLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAg
IHJlY29yZC0+bG9jYXRpb25zWzBdLnJlc3RvcmVJbnRvKGppdCwgaml0Q29kZS0+c3RhY2ttYXBz
LCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86OnJlZ1QwKTsKICAgICAgICAgcmVib3hBY2NvcmRp
bmdUb0Zvcm1hdCgKICAgICAgICAgICAgIGV4aXQubV9wcm9maWxlVmFsdWVGb3JtYXQsIGppdCwg
R1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMik7CiAgICAgICAg
IApAQCAtMTMwLDcgKzE0Miw0NSBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigKICAgICAgICAg
Y2FzZSBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDMyOgogICAgICAgICBjYXNlIEV4aXRWYWx1ZUlu
SlNTdGFja0FzSW50NTI6CiAgICAgICAgIGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGU6
Ci0gICAgICAgICAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0Zvcih2YWx1
ZS52aXJ0dWFsUmVnaXN0ZXIoKSwgR1BSSW5mbzo6cmVnVDQpLCBHUFJJbmZvOjpyZWdUMCk7Cisg
ICAgICAgICAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0Zvcih2YWx1ZS52
aXJ0dWFsUmVnaXN0ZXIoKSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgCisgICAgICAgIGNhc2UgRXhpdFZhbHVlUmVjb3Zlcnk6CisgICAgICAgICAg
ICByZWNvcmQtPmxvY2F0aW9uc1t2YWx1ZS5yaWdodFJlY292ZXJ5QXJndW1lbnQoKV0ucmVzdG9y
ZUludG8oCisgICAgICAgICAgICAgICAgaml0LCBqaXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVy
U2NyYXRjaCwgR1BSSW5mbzo6cmVnVDEpOworICAgICAgICAgICAgcmVjb3JkLT5sb2NhdGlvbnNb
dmFsdWUubGVmdFJlY292ZXJ5QXJndW1lbnQoKV0ucmVzdG9yZUludG8oCisgICAgICAgICAgICAg
ICAgaml0LCBqaXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVn
VDApOworICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS5yZWNvdmVyeU9wY29kZSgpKSB7CisgICAg
ICAgICAgICBjYXNlIEFkZFJlY292ZXJ5OgorICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUu
cmVjb3ZlcnlGb3JtYXQoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVGb3JtYXRJbnQz
MjoKKyAgICAgICAgICAgICAgICAgICAgaml0LmFkZDMyKEdQUkluZm86OnJlZ1QxLCBHUFJJbmZv
OjpyZWdUMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNh
c2UgVmFsdWVGb3JtYXRJbnQ1MjoKKyAgICAgICAgICAgICAgICAgICAgaml0LmFkZDY0KEdQUklu
Zm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU3ViUmVj
b3Zlcnk6CisgICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS5yZWNvdmVyeUZvcm1hdCgpKSB7
CisgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZUZvcm1hdEludDMyOgorICAgICAgICAgICAgICAg
ICAgICBqaXQuc3ViMzIoR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZUZvcm1hdEludDUy
OgorICAgICAgICAgICAgICAgICAgICBqaXQuc3ViNjQoR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86
OnJlZ1QwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVs
dDoKQEAgLTE0MSw2ICsxOTEsMTM3IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgICAg
ICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgc2NyYXRjaCArIGluZGV4KTsKICAgICB9CiAg
ICAgCisgICAgLy8gSGVuY2Vmb3J0aCB3ZSBtYWtlIGl0IGxvb2sgbGlrZSB0aGUgZXhpdGluZyBm
dW5jdGlvbiB3YXMgY2FsbGVkIHRocm91Z2ggYSByZWdpc3RlcgorICAgIC8vIHByZXNlcnZhdGlv
biB3cmFwcGVyLiBUaGlzIGltcGxpZXMgdGhhdCBGUCBtdXN0IGJlIG51ZGdlZCBkb3duIGJ5IGEg
Y2VydGFpbiBhbW91bnQuIFRoZW4KKyAgICAvLyB3ZSByZXN0b3JlIHRoZSB2YXJpb3VzIHRoaW5n
cyBhY2NvcmRpbmcgdG8gZWl0aGVyIGV4aXQubV92YWx1ZXMgb3IgYnkgY29weWluZyBmcm9tIHRo
ZQorICAgIC8vIG9sZCBmcmFtZSwgYW5kIGZpbmFsbHkgd2Ugc2F2ZSB0aGUgdmFyaW91cyBjYWxs
ZWUtc2F2ZSByZWdpc3RlcnMgaW50byB3aGVyZSB0aGUKKyAgICAvLyByZXN0b3JhdGlvbiB0aHVu
ayB3b3VsZCByZXN0b3JlIHRoZW0gZnJvbS4KKyAgICAKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0ID0g
cmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKTsKKyAgICBSZWdpc3RlclNldCB0b1NhdmUgPSBy
ZWdpc3RlcnNUb1ByZXNlcnZlKCk7CisgICAgCisgICAgLy8gQmVmb3JlIHdlIHN0YXJ0IG1lc3Np
bmcgd2l0aCB0aGUgZnJhbWUsIHdlIG5lZWQgdG8gc2V0IGFzaWRlIGFueSByZWdpc3RlcnMgdGhh
dCB0aGUKKyAgICAvLyBGVEwgY29kZSB3YXMgcHJlc2VydmluZy4KKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSBqaXRDb2RlLT51bndpbmRJbmZvLm1fcmVnaXN0ZXJzLnNpemUoKTsgaS0tOykgeworICAg
ICAgICBSZWdpc3RlckF0T2Zmc2V0IGVudHJ5ID0gaml0Q29kZS0+dW53aW5kSW5mby5tX3JlZ2lz
dGVyc1tpXTsKKyAgICAgICAgaml0LmxvYWQ2NCgKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgZW50cnkub2Zm
c2V0KCkpLAorICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDApOworICAgICAgICBqaXQuc3RvcmU2
NChHUFJJbmZvOjpyZWdUMCwgdW53aW5kU2NyYXRjaCArIGkpOworICAgIH0KKyAgICAKKyAgICBq
aXQubG9hZDMyKENDYWxsSGVscGVyczo6cGF5bG9hZEZvcihKU1N0YWNrOjpBcmd1bWVudENvdW50
KSwgR1BSSW5mbzo6cmVnVDIpOworICAgIAorICAgIC8vIExldCdzIHNheSB0aGF0IHRoZSBGVEwg
ZnVuY3Rpb24gaGFkIGZhaWxlZCBpdHMgYXJpdHkgY2hlY2suIEluIHRoYXQgY2FzZSwgdGhlIHN0
YWNrIHdpbGwKKyAgICAvLyBjb250YWluIHNvbWUgZXh0cmEgc3R1ZmYuCisgICAgLy8KKyAgICAv
LyBGaXJzdCB3ZSBjb21wdXRlIHRoZSBwYWRkZWQgc3RhY2sgc3BhY2U6CisgICAgLy8KKyAgICAv
LyAgICAgcGFkZGVkU3RhY2tTcGFjZSA9IHJvdW5kVXAoY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJz
IC0gcmVnVDIgKyAxKQorICAgIC8vCisgICAgLy8gVGhlIHN0YWNrIHdpbGwgaGF2ZSByZWdUMiAr
IENhbGxGcmFtZUhlYWRlclNpemUgc3R1ZmYsIGJ1dCBhYm92ZSBpdCB0aGVyZSB3aWxsIGJlCisg
ICAgLy8gcGFkZGVkU3RhY2tTcGFjZSBndW5rIHVzZWQgYnkgdGhlIGFyaXR5IGNoZWNrIGZhaWwg
cmVzdG9yYXRpb24gdGh1bmsuIFdoZW4gdGhhdCBoYXBwZW5zCisgICAgLy8gd2Ugd2FudCB0byBt
YWtlIHRoZSBzdGFjayBsb29rIGxpa2UgdGhpcywgZnJvbSBoaWdoZXIgYWRkcmVzc2VzIGRvd246
CisgICAgLy8KKyAgICAvLyAgICAgLSByZWdpc3RlciBwcmVzZXJ2YXRpb24gcmV0dXJuIFBDCisg
ICAgLy8gICAgIC0gcHJlc2VydmVkIHJlZ2lzdGVycworICAgIC8vICAgICAtIGFyaXR5IGNoZWNr
IGZhaWwgcmV0dXJuIFBDCisgICAgLy8gICAgIC0gYXJndW1lbnQgcGFkZGluZworICAgIC8vICAg
ICAtIGFjdHVhbCBhcmd1bWVudHMKKyAgICAvLyAgICAgLSBjYWxsIGZyYW1lIGhlYWRlcgorICAg
IC8vCisgICAgLy8gU28gdGhhdCB0aGUgYWN0dWFsIGNhbGwgZnJhbWUgaGVhZGVyIGFwcGVhcnMg
dG8gcmV0dXJuIHRvIHRoZSBhcml0eSBjaGVjayBmYWlsIHJldHVybgorICAgIC8vIFBDLCBhbmQg
dGhhdCB0aGVuIHJldHVybnMgdG8gdGhlIHJlZ2lzdGVyIHByZXNlcnZhdGlvbiB0aHVuay4gVGhl
IGFyaXR5IGNoZWNrIHRodW5rIHRoYXQKKyAgICAvLyB3ZSByZXR1cm4gdG8gd2lsbCBoYXZlIHRo
ZSBwYWRkaW5nIHNpemUgZW5jb2RlZCBpbnRvIGl0LiBJdCB3aWxsIHRoZW4ga25vdyB0byByZXR1
cm4KKyAgICAvLyBpbnRvIHRoZSByZWdpc3RlciBwcmVzZXJ2YXRpb24gdGh1bmssIHdoaWNoIHVz
ZXMgdGhlIGFyZ3VtZW50IGNvdW50IHRvIGZpZ3VyZSBvdXQgd2hlcmUKKyAgICAvLyByZWdpc3Rl
cnMgYXJlIHByZXNlcnZlZC4KKworICAgIC8vIFRoaXMgY29kZSBhc3N1bWVzIHRoYXQgd2UncmUg
ZGVhbGluZyB3aXRoIEZ1bmN0aW9uQ29kZS4KKyAgICBSRUxFQVNFX0FTU0VSVChjb2RlQmxvY2st
PmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKTsKKyAgICAKKyAgICBqaXQuYWRkMzIoCisgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLWNvZGVCbG9jay0+bnVtUGFyYW1ldGVy
cygpKSwgR1BSSW5mbzo6cmVnVDIsCisgICAgICAgIEdQUkluZm86OnJlZ1QzKTsKKyAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBhcml0eUludGFjdCA9IGppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3Nl
bWJsZXI6Olplcm8sIEdQUkluZm86OnJlZ1QzKTsKKyAgICBqaXQubmVnMzIoR1BSSW5mbzo6cmVn
VDMpOworICAgIGppdC5hZGQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDEgKyBzdGFj
a0FsaWdubWVudFJlZ2lzdGVycygpIC0gMSksIEdQUkluZm86OnJlZ1QzKTsKKyAgICBqaXQuYW5k
MzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMo
KSksIEdQUkluZm86OnJlZ1QzKTsKKyAgICBqaXQuYWRkMzIoR1BSSW5mbzo6cmVnVDMsIEdQUklu
Zm86OnJlZ1QyKTsKKyAgICBhcml0eUludGFjdC5saW5rKCZqaXQpOworCisgICAgLy8gRmlyc3Qg
c2V0IHVwIFNQIHNvIHRoYXQgb3VyIGRhdGEgZG9lc24ndCBnZXQgY2xvYmJlcmVkIGJ5IHNpZ25h
bHMuCisgICAgaml0LmFkZFB0cigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MigKKyAgICAgICAgICAgIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZigKKyAgICAgICAgICAgICAg
ICBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLAorICAgICAgICAgICAgICAgIC1yZWdpc3RlclBy
ZXNlcnZhdGlvbk9mZnNldCgpIC0gZXhpdC5tX3ZhbHVlcy5udW1iZXJPZkxvY2FscygpICogc2l6
ZW9mKFJlZ2lzdGVyKSAtIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSksCisgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAKKyAgICBqaXQuc3ViUHRyKAorICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KCkpLAor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgIAorICAg
IC8vIENvcHkgdGhlIG9sZCBmcmFtZSBkYXRhIGludG8gaXRzIG5ldyBsb2NhdGlvbi4KKyAgICBq
aXQuYWRkMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1N0YWNrOjpDYWxsRnJhbWVI
ZWFkZXJTaXplKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVy
OjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOworICAgIE1hY3JvQXNzZW1i
bGVyOjpMYWJlbCBsb29wID0gaml0LmxhYmVsKCk7CisgICAgaml0LnN1YjMyKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMSksIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQubG9hZDY0KE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QxLCBvZmZzZXQpLCBHUFJJbmZvOjpy
ZWdUMCk7CisgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxKTsK
KyAgICBqaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2l6ZW9mKFJlZ2lz
dGVyKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1i
bGVyOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMikubGlua1RvKGxvb3AsICZqaXQpOworICAgIAor
ICAgIC8vIEF0IHRoaXMgcG9pbnQgcmVnVDEgcG9pbnRzIHRvIHdoZXJlIHdlIHdvdWxkIHNhdmUg
b3VyIHJlZ2lzdGVycy4gU2F2ZSB0aGVtIGhlcmUuCisgICAgcHRyZGlmZl90IGN1cnJlbnRPZmZz
ZXQgPSAwOworICAgIGZvciAoR1BSUmVnIGdwciA9IEFzc2VtYmx5SGVscGVyczo6Zmlyc3RSZWdp
c3RlcigpOyBncHIgPD0gQXNzZW1ibHlIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgZ3ByID0gc3Rh
dGljX2Nhc3Q8R1BSUmVnPihncHIgKyAxKSkgeworICAgICAgICBpZiAoIXRvU2F2ZS5nZXQoZ3By
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IHNpemVv
ZihSZWdpc3Rlcik7CisgICAgICAgIHVuc2lnbmVkIHVud2luZEluZGV4ID0gaml0Q29kZS0+dW53
aW5kSW5mby5pbmRleE9mKGdwcik7CisgICAgICAgIGlmICh1bndpbmRJbmRleCA9PSBVSU5UX01B
WCkgeworICAgICAgICAgICAgLy8gVGhlIEZUTCBjb21waWxhdGlvbiBkaWRuJ3QgcHJlc2VydmUg
dGhpcyByZWdpc3Rlci4gVGhpcyBtZWFucyB0aGF0IGl0IGFsc28KKyAgICAgICAgICAgIC8vIGRp
ZG4ndCB1c2UgdGhlIHJlZ2lzdGVyLiBTbyBpdHMgdmFsdWUgYXQgdGhlIGJlZ2lubmluZyBvZiBP
U1IgZXhpdCBzaG91bGQgYmUKKyAgICAgICAgICAgIC8vIHByZXNlcnZlZCBieSB0aGUgdGh1bmsu
IEx1Y2tpbHksIHdlIHNhdmVkIGFsbCByZWdpc3RlcnMgaW50byB0aGUgcmVnaXN0ZXIKKyAgICAg
ICAgICAgIC8vIHNjcmF0Y2ggYnVmZmVyLCBzbyB3ZSBjYW4gcmVzdG9yZSB0aGVtIGZyb20gdGhl
cmUuCisgICAgICAgICAgICBqaXQubG9hZDY0KHJlZ2lzdGVyU2NyYXRjaCArIG9mZnNldE9mR1BS
KGdwciksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8v
IFRoZSBGVEwgY29tcGlsYXRpb24gcHJlc2VydmVkIHRoZSByZWdpc3Rlci4gSXRzIG5ldyB2YWx1
ZSBpcyB0aGVyZWZvcmUKKyAgICAgICAgICAgIC8vIGlycmVsZXZhbnQsIGJ1dCB3ZSBjYW4gZ2V0
IHRoZSB2YWx1ZSB0aGF0IHdhcyBwcmVzZXJ2ZWQgYnkgdXNpbmcgdGhlIHVud2luZAorICAgICAg
ICAgICAgLy8gZGF0YS4gV2UndmUgYWxyZWFkeSBjb3BpZWQgYWxsIHVud2luZC1hYmxlIHByZXNl
cnZlZCByZWdpc3RlcnMgaW50byB0aGUgdW53aW5kCisgICAgICAgICAgICAvLyBzY3JhdGNoIGJ1
ZmZlciwgc28gd2UgY2FuIGdldCBpdCBmcm9tIHRoZXJlLgorICAgICAgICAgICAgaml0LmxvYWQ2
NCh1bndpbmRTY3JhdGNoICsgdW53aW5kSW5kZXgsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAg
fQorICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OnJlZ1QxLCBjdXJyZW50T2Zmc2V0KSk7CisgICAgfQorICAgIAorICAg
IC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2UgcmV0dXJuIGludG8gdGhlIHJlZ2lzdGVy
IHJlc3RvcmF0aW9uIHRodW5rLiBUaGlzIHdvcmtzCisgICAgLy8gZGlmZmVyZW50bHkgZGVwZW5k
aW5nIG9uIHdoZXRoZXIgb3Igbm90IHdlIGhhZCBhcml0eSBpc3N1ZXMuCisgICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgYXJpdHlJbnRhY3RGb3JSZXR1cm5QQyA9CisgICAgICAgIGppdC5icmFuY2hU
ZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIEdQUkluZm86OnJlZ1QzKTsKKyAgICAKKyAgICAv
LyBUaGUgcmV0dXJuIFBDIGluIHRoZSBjYWxsIGZyYW1lIGhlYWRlciBwb2ludHMgYXQgZXhhY3Rs
eSB0aGUgcmlnaHQgYXJpdHkgcmVzdG9yYXRpb24KKyAgICAvLyB0aHVuay4gV2UgZG9uJ3Qgd2Fu
dCB0byBjaGFuZ2UgdGhhdC4gQnV0IHRoZSBhcml0eSByZXN0b3JhdGlvbiB0aHVuaydzIGZyYW1l
IGhhcyBhCisgICAgLy8gcmV0dXJuIFBDIGFuZCB3ZSB3YW50IHRvIHJlcm91dGUgdGhhdCB0byBv
dXIgcmVnaXN0ZXIgcmVzdG9yYXRpb24gdGh1bmsuIFRoZSBhcml0eQorICAgIC8vIHJlc3RvcmF0
aW9uJ3MgcmV0dXJuIFBDIGp1c3QganVzdCBiZWxvdyByZWdUMSwgYW5kIHRoZSByZWdpc3RlciBy
ZXN0b3JhdGlvbidzIHJldHVybiBQQworICAgIC8vIGlzIHJpZ2h0IGF0IHJlZ1QxLgorICAgIGpp
dC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QxLCAtc3RhdGlj
X2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSksIEdQUkluZm86OnJlZ1QwKTsKKyAg
ICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQu
c3RvcmVQdHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHZtLT5nZXRD
VElTdHViKHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFi
bGVBZGRyZXNzKCkpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpy
ZWdUMSwgLXN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKKyAgICAK
KyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBhcml0eVJldHVyblBDUmVhZHkgPSBqaXQuanVtcCgp
OworCisgICAgYXJpdHlJbnRhY3RGb3JSZXR1cm5QQy5saW5rKCZqaXQpOworICAgIAorICAgIGpp
dC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBv
aW50ZXJSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSwgR1BSSW5mbzo6cmVn
VDApOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEpOwor
ICAgIGppdC5zdG9yZVB0cigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIo
dm0tPmdldENUSVN0dWIocmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9yKS5jb2RlKCku
ZXhlY3V0YWJsZUFkZHJlc3MoKSksCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1h
Y3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09m
ZnNldCgpKSk7CisgICAgCisgICAgYXJpdHlSZXR1cm5QQ1JlYWR5LmxpbmsoJmppdCk7CisgICAg
CiAgICAgLy8gTm93IGdldCBzdGF0ZSBvdXQgb2YgdGhlIHNjcmF0Y2ggYnVmZmVyIGFuZCBwbGFj
ZSBpdCBiYWNrIGludG8gdGhlIHN0YWNrLiBUaGlzIHBhcnQgZG9lcwogICAgIC8vIGFsbCByZWJv
eGluZy4KICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gZXhpdC5tX3ZhbHVlcy5zaXplKCk7IGlu
ZGV4LS07KSB7CkBAIC0xNTAsMjYgKzMzMSwxNiBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigK
ICAgICAgICAgaml0LmxvYWQ2NChzY3JhdGNoICsgaW5kZXgsIEdQUkluZm86OnJlZ1QwKTsKICAg
ICAgICAgcmVib3hBY2NvcmRpbmdUb0Zvcm1hdCgKICAgICAgICAgICAgIHZhbHVlLnZhbHVlRm9y
bWF0KCksIGppdCwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdU
Mik7Ci0gICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBBc3NlbWJseUhlbHBlcnM6
OmFkZHJlc3NGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihvcGVyYW5kKSwgR1BSSW5m
bzo6cmVnVDQpKTsKKyAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5
SGVscGVyczo6YWRkcmVzc0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KG9wZXJhbmQp
KSk7CiAgICAgfQogICAgIAotICAgIC8vIFJlc3RvcmUgdGhlIG9sZCBzdGFjayBwb2ludGVyIGFu
ZCB0aGVuIHB1dCByZWdUNCBpbnRvIGNhbGxGcmFtZVJlZ2lzdGVyLiBUaGUgaWRlYSBpcwotICAg
IC8vIHRoYXQgdGhlIEZUTCBjYWxsIGZyYW1lIGlzIHB1c2hlZCBvbnRvIHRoZSBKUyBjYWxsIGZy
YW1lIGFuZCB3ZSBjYW4gcmVjb3ZlciB0aGUgb2xkCi0gICAgLy8gdmFsdWUgb2YgdGhlIHN0YWNr
IHBvaW50ZXIgYnkgcG9wcGluZyB0aGUgRlRMIGNhbGwgZnJhbWUuIFdlIGFscmVhZHkga25vdyB3
aGF0IHRoZQotICAgIC8vIGZyYW1lIHBvaW50ZXIgaW4gdGhlIEpTIGNhbGwgZnJhbWUgd2FzIGJl
Y2F1c2UgaXQgd291bGQgaGF2ZSBiZWVuIHBhc3NlZCBhcyBhbiBhcmd1bWVudAotICAgIC8vIHRv
IHRoZSBGVEwgY2FsbCBmcmFtZS4KLSAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQ
b2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0g
ICAgaml0LnBvcChHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICBqaXQucG9wKEdQUkluZm86Om5v
bkFyZ0dQUjApOwotICAgIGppdC5tb3ZlKEdQUkluZm86OnJlZ1Q0LCBHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3Rlcik7Ci0gICAgCiAgICAgaGFuZGxlRXhpdENvdW50cyhqaXQsIGV4aXQpOwogICAg
IHJlaWZ5SW5saW5lZENhbGxGcmFtZXMoaml0LCBleGl0KTsKICAgICBhZGp1c3RBbmRKdW1wVG9U
YXJnZXQoaml0LCBleGl0KTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2bSwg
JmppdCwgY29kZUJsb2NrKTsKICAgICBleGl0Lm1fY29kZSA9IEZJTkFMSVpFX0NPREVfSUYoCi0g
ICAgICAgIHNob3VsZFNob3dEaXNhc3NlbWJseSgpLAorICAgICAgICBzaG91bGRTaG93RGlzYXNz
ZW1ibHkoKSB8fCBPcHRpb25zOjp2ZXJib3NlT1NSKCksCiAgICAgICAgIHBhdGNoQnVmZmVyLAog
ICAgICAgICAoIkZUTCBPU1IgZXhpdCAjJXUgKCVzLCAlcykgZnJvbSAlcywgd2l0aCBvcGVyYW5k
cyA9ICVzLCBhbmQgcmVjb3JkID0gJXMiLAogICAgICAgICAgICAgZXhpdElELCB0b0NTdHJpbmco
ZXhpdC5tX2NvZGVPcmlnaW4pLmRhdGEoKSwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT3V0cHV0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPdXRwdXQuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPdXRwdXQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg0LDcgKzE4NCwyMyBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICByZXR1cm4gY2FsbChkb3VibGVBYnNJbnRyaW5zaWMoKSwgdmFsdWUpOwog
ICAgIH0KLSAgICAKKyAgICBMVmFsdWUgZG91YmxlU2luKExWYWx1ZSB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBjYWxsKGRvdWJsZVNpbkludHJpbnNpYygpLCB2YWx1ZSk7CisgICAgfQor
CisKKyAgICBMVmFsdWUgZG91YmxlQ29zKExWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBjYWxsKGRvdWJsZUNvc0ludHJpbnNpYygpLCB2YWx1ZSk7CisgICAgfQorCisgICAgTFZh
bHVlIGRvdWJsZVNxcnQoTFZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGwo
ZG91YmxlU3FydEludHJpbnNpYygpLCB2YWx1ZSk7CisgICAgfQorCisKICAgICBzdGF0aWMgYm9v
bCBoYXNTZW5zaWJsZURvdWJsZVRvSW50KCkgeyByZXR1cm4gaXNYODYoKTsgfQogICAgIExWYWx1
ZSBzZW5zaWJsZURvdWJsZVRvSW50KExWYWx1ZSB2YWx1ZSkKICAgICB7CkBAIC0yMTAsNiArMjI2
LDcgQEAgcHVibGljOgogICAgIExWYWx1ZSBjYXN0VG9JbnQzMihMVmFsdWUgdmFsdWUpIHsgcmV0
dXJuIGludENhc3QodmFsdWUsIGludDMyKTsgfQogICAgIExWYWx1ZSBmcENhc3QoTFZhbHVlIHZh
bHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZEZQQ2FzdChtX2J1aWxkZXIsIHZhbHVlLCB0
eXBlKTsgfQogICAgIExWYWx1ZSBpbnRUb1B0cihMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsg
cmV0dXJuIGJ1aWxkSW50VG9QdHIobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0KKyAgICBMVmFs
dWUgcHRyVG9JbnQoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZFB0clRv
SW50KG1fYnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CiAgICAgTFZhbHVlIGJpdENhc3QoTFZhbHVl
IHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZEJpdENhc3QobV9idWlsZGVyLCB2YWx1
ZSwgdHlwZSk7IH0KICAgICAKICAgICBMVmFsdWUgYWxsb2NhKExUeXBlIHR5cGUpIHsgcmV0dXJu
IGJ1aWxkQWxsb2NhKG1fYnVpbGRlciwgdHlwZSk7IH0KQEAgLTMxNCw2ICszMzEsMjAgQEAgcHVi
bGljOgogICAgIHZvaWQgc3RvcmVQdHIoTFZhbHVlIHZhbHVlLCBMVmFsdWUgYmFzZSwgY29uc3Qg
QWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgc3RvcmVQdHIodmFsdWUsIGFkZHJlc3MoYmFzZSwgZmll
bGQpKTsgfQogICAgIHZvaWQgc3RvcmVEb3VibGUoTFZhbHVlIHZhbHVlLCBMVmFsdWUgYmFzZSwg
Y29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgc3RvcmVEb3VibGUodmFsdWUsIGFkZHJlc3Mo
YmFzZSwgZmllbGQpKTsgfQogICAgIAorICAgIHZvaWQgYXNjcmliZVJhbmdlKExWYWx1ZSBsb2Fk
SW5zdHJ1Y3Rpb24sIGNvbnN0IFZhbHVlUmFuZ2UmIHJhbmdlKQorICAgIHsKKyAgICAgICAgcmFu
Z2UuZGVjb3JhdGVJbnN0cnVjdGlvbihtX2NvbnRleHQsIGxvYWRJbnN0cnVjdGlvbiwgcmFuZ2VL
aW5kKTsKKyAgICB9CisgICAgCisgICAgTFZhbHVlIG5vbk5lZ2F0aXZlMzIoTFZhbHVlIGxvYWRJ
bnN0cnVjdGlvbikKKyAgICB7CisgICAgICAgIGFzY3JpYmVSYW5nZShsb2FkSW5zdHJ1Y3Rpb24s
IG5vbk5lZ2F0aXZlSW50MzIpOworICAgICAgICByZXR1cm4gbG9hZEluc3RydWN0aW9uOworICAg
IH0KKyAgICAKKyAgICBMVmFsdWUgbG9hZDMyTm9uTmVnYXRpdmUoVHlwZWRQb2ludGVyIHBvaW50
ZXIpIHsgcmV0dXJuIG5vbk5lZ2F0aXZlMzIobG9hZDMyKHBvaW50ZXIpKTsgfQorICAgIExWYWx1
ZSBsb2FkMzJOb25OZWdhdGl2ZShMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmll
bGQpIHsgcmV0dXJuIG5vbk5lZ2F0aXZlMzIobG9hZDMyKGJhc2UsIGZpZWxkKSk7IH0KKyAgICAK
ICAgICBMVmFsdWUgaWNtcChMSW50UHJlZGljYXRlIGNvbmQsIExWYWx1ZSBsZWZ0LCBMVmFsdWUg
cmlnaHQpIHsgcmV0dXJuIGJ1aWxkSUNtcChtX2J1aWxkZXIsIGNvbmQsIGxlZnQsIHJpZ2h0KTsg
fQogICAgIExWYWx1ZSBlcXVhbChMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBp
Y21wKExMVk1JbnRFUSwgbGVmdCwgcmlnaHQpOyB9CiAgICAgTFZhbHVlIG5vdEVxdWFsKExWYWx1
ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIGljbXAoTExWTUludE5FLCBsZWZ0LCByaWdo
dCk7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlP
cGNvZGUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExS
ZWNvdmVyeU9wY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRlRMUmVjb3ZlcnlPcGNvZGUuaCIKKworI2lmIEVOQUJMRShGVExfSklU
KQorCisjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXVEYgeworCit2
b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgSlNDOjpGVEw6OlJlY292ZXJ5T3Bj
b2RlIG9wY29kZSkKK3sKKyAgICBzd2l0Y2ggKG9wY29kZSkgeworICAgIGNhc2UgSlNDOjpGVEw6
OkFkZFJlY292ZXJ5OgorICAgICAgICBvdXQucHJpbnQoIkFkZCIpOworICAgICAgICByZXR1cm47
CisgICAgY2FzZSBKU0M6OkZUTDo6U3ViUmVjb3Zlcnk6CisgICAgICAgIG91dC5wcmludCgiU3Vi
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJ
VCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWNvdmVyeU9wY29kZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNv
ZGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3Zl
cnlPcGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRlRMUmVjb3ZlcnlPcGNv
ZGVfaAorI2RlZmluZSBGVExSZWNvdmVyeU9wY29kZV9oCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkK
KworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitlbnVtIFJlY292ZXJ5T3Bjb2Rl
IHsKKyAgICBBZGRSZWNvdmVyeSwKKyAgICBTdWJSZWNvdmVyeQorfTsKKworfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkZUTAorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUHJpbnRTdHJlYW07Cit2
b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBKU0M6OkZUTDo6UmVjb3ZlcnlPcGNvZGUp
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisj
ZW5kaWYgLy8gRlRMUmVjb3ZlcnlPcGNvZGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZUTFJlZ2lzdGVy
QXRPZmZzZXQuaCIKKworI2lmIEVOQUJMRShGVExfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEZUTCB7CisKK3ZvaWQgUmVnaXN0ZXJBdE9mZnNldDo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAoreworICAgIG91dC5wcmludChncHIoKSwgIiBhdCAiLCBvZmZzZXQoKSk7Cit9
CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklU
KQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRP
ZmZzZXQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVn
aXN0ZXJBdE9mZnNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBGVExSZWdpc3Rl
ckF0T2Zmc2V0X2gKKyNkZWZpbmUgRlRMUmVnaXN0ZXJBdE9mZnNldF9oCisKKyNpZiBFTkFCTEUo
RlRMX0pJVCkKKworI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJl
YW0uaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitjbGFzcyBSZWdpc3Rl
ckF0T2Zmc2V0IHsKK3B1YmxpYzoKKyAgICBSZWdpc3RlckF0T2Zmc2V0KCkKKyAgICAgICAgOiBt
X2dwcihJbnZhbGlkR1BSUmVnKQorICAgICAgICAsIG1fb2Zmc2V0KDApCisgICAgeworICAgIH0K
KyAgICAKKyAgICBSZWdpc3RlckF0T2Zmc2V0KEdQUlJlZyBncHIsIHB0cmRpZmZfdCBvZmZzZXQp
CisgICAgICAgIDogbV9ncHIoZ3ByKQorICAgICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKKyAgICB7
CisgICAgfQorICAgIAorICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gbV9ncHIg
PT0gSW52YWxpZEdQUlJlZzsgfQorICAgIAorICAgIEdQUlJlZyBncHIoKSBjb25zdCB7IHJldHVy
biBtX2dwcjsgfQorICAgIHB0cmRpZmZfdCBvZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX29mZnNl
dDsgfQorICAgIAorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiBv
dGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBncHIoKSA9PSBvdGhlci5ncHIoKSAm
JiBvZmZzZXQoKSA9PSBvdGhlci5vZmZzZXQoKTsKKyAgICB9CisgICAgCisgICAgYm9vbCBvcGVy
YXRvcjwoY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAg
ICBpZiAoZ3ByKCkgIT0gb3RoZXIuZ3ByKCkpCisgICAgICAgICAgICByZXR1cm4gZ3ByKCkgPCBv
dGhlci5ncHIoKTsKKyAgICAgICAgcmV0dXJuIG9mZnNldCgpIDwgb3RoZXIub2Zmc2V0KCk7Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBHUFJSZWcgZ2V0R1BSKFJlZ2lzdGVyQXRPZmZzZXQqIHZh
bHVlKSB7IHJldHVybiB2YWx1ZS0+Z3ByKCk7IH0KKyAgICAKKyAgICB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mIG91dCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgR1BSUmVnIG1fZ3ByOworICAgIHB0
cmRpZmZfdCBtX29mZnNldDsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2Vu
ZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMUmVnaXN0ZXJBdE9mZnNldF9o
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5j
cHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xv
d1BhdGhDYWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShG
VExfSklUKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiQ2FsbEZyYW1l
SW5saW5lcy5oIgogI2luY2x1ZGUgIkZUTFN0YXRlLmgiCiAjaW5jbHVkZSAiR1BSSW5mby5oIgog
CkBAIC0xMzQsMTEgKzEzNSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBTbG93UGF0aENh
bGxLZXkodXNlZFJlZ2lzdGVycygpLCBjYWxsVGFyZ2V0LCBvZmZzZXQoKSk7CiAgICAgfQogICAg
IAotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIG1ha2VDYWxsKHZvaWQqIGNhbGxUYXJnZXQpCisg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgbWFrZUNhbGwodm9pZCogY2FsbFRhcmdldCwgTWFjcm9B
c3NlbWJsZXI6Okp1bXBMaXN0KiBleGNlcHRpb25UYXJnZXQpCiAgICAgewogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCByZXN1bHQgPSBtX2ppdC5jYWxsKCk7CiAgICAgICAgIG1fc3RhdGUu
ZmluYWxpemVyLT5zbG93UGF0aENhbGxzLmFwcGVuZChTbG93UGF0aENhbGwoCiAgICAgICAgICAg
ICByZXN1bHQsIGtleVdpdGhUYXJnZXQoY2FsbFRhcmdldCkpKTsKKyAgICAgICAgaWYgKGV4Y2Vw
dGlvblRhcmdldCkKKyAgICAgICAgICAgIGV4Y2VwdGlvblRhcmdldC0+YXBwZW5kKG1faml0LmVt
aXRFeGNlcHRpb25DaGVjaygpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAg
CkBAIC0xNTcsMzIgKzE2MCw0NCBAQCBwcml2YXRlOgogCiB9IC8vIGFub255bW91cyBuYW1lc3Bh
Y2UKIAordm9pZCBzdG9yZUNvZGVPcmlnaW4oU3RhdGUmIHN0YXRlLCBDQ2FsbEhlbHBlcnMmIGpp
dCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQoreworICAgIGlmICghY29kZU9yaWdpbi5pc1NldCgp
KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgdW5zaWduZWQgaW5kZXggPSBzdGF0ZS5qaXRD
b2RlLT5jb21tb24uYWRkQ29kZU9yaWdpbihjb2RlT3JpZ2luKTsKKyAgICB1bnNpZ25lZCBsb2Nh
dGlvbkJpdHMgPSBDYWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0NvZGVPcmlnaW5JbmRleChp
bmRleCk7CisgICAgaml0LnN0b3JlMzIoCisgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKGxvY2F0aW9uQml0cyksCisgICAgICAgIENDYWxsSGVscGVyczo6dGFnRm9yKHN0YXRpY19j
YXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNTdGFjazo6QXJndW1lbnRDb3VudCkpKTsKK30KKwogTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKLSAgICBTdGF0ZSYgc3RhdGUsIGNvbnN0
IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDQ2FsbEhlbHBlcnMmIGppdCwgCi0gICAgSl9K
SVRPcGVyYXRpb25fRVNzaUpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGNhbGxG
cmFtZVJlZ2lzdGVyLAotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgR1BSUmVnIG9i
amVjdCwgU3RyaW5nSW1wbCogdWlkKQorICAgIFN0YXRlJiBzdGF0ZSwgY29uc3QgUmVnaXN0ZXJT
ZXQmIHVzZWRSZWdpc3RlcnMsIENDYWxsSGVscGVycyYgaml0LAorICAgIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0KiBleGNlcHRpb25UYXJnZXQsCisgICAg
Sl9KSVRPcGVyYXRpb25fRVNzaUpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLAorICAgIEdQUlJlZyBvYmplY3QsIFN0cmluZ0ltcGwqIHVpZCkK
IHsKKyAgICBzdG9yZUNvZGVPcmlnaW4oc3RhdGUsIGppdCwgY29kZU9yaWdpbik7CiAgICAgQ2Fs
bENvbnRleHQgY29udGV4dChzdGF0ZSwgdXNlZFJlZ2lzdGVycywgaml0LCA0LCByZXN1bHQpOwot
ICAgIGppdC5zZXR1cEFyZ3VtZW50cygKLSAgICAgICAgY2FsbEZyYW1lUmVnaXN0ZXIsIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbVB0cihzdHViSW5mbyksIG9iamVjdCwKKyAgICBqaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKAorICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoc3R1YkluZm8pLCBvYmplY3QsCiAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cih1aWQpKTsKLSAgICByZXR1cm4gY29udGV4dC5tYWtlQ2FsbChiaXR3aXNlX2Nhc3Q8dm9pZCo+
KG9wZXJhdGlvbikpOwotICAgIC8vIEZJWE1FOiBGVEwgc2hvdWxkIHN1cHBvcnQgZXhjZXB0aW9u
cy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIy
CisgICAgcmV0dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRp
b24pLCBleGNlcHRpb25UYXJnZXQpOwogfQogCiBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKAogICAgIFN0YXRlJiBzdGF0ZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3Rl
cnMsIENDYWxsSGVscGVycyYgaml0LCAKLSAgICBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJIG9wZXJh
dGlvbiwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgR1BSUmVnIHZhbHVlLCBHUFJSZWcgb2JqZWN0LCBTdHJpbmdJbXBsKiB1aWQpCisg
ICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QqIGV4Y2Vw
dGlvblRhcmdldCwKKyAgICBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJIG9wZXJhdGlvbiwgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBHUFJSZWcgdmFsdWUsCisgICAgR1BSUmVnIG9iamVjdCwg
U3RyaW5nSW1wbCogdWlkKQogeworICAgIHN0b3JlQ29kZU9yaWdpbihzdGF0ZSwgaml0LCBjb2Rl
T3JpZ2luKTsKICAgICBDYWxsQ29udGV4dCBjb250ZXh0KHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBq
aXQsIDUsIEludmFsaWRHUFJSZWcpOwotICAgIGppdC5zZXR1cEFyZ3VtZW50cygKLSAgICAgICAg
Y2FsbEZyYW1lUmVnaXN0ZXIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihzdHViSW5mbyks
IHZhbHVlLCBvYmplY3QsCisgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKKyAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwgdmFsdWUsIG9iamVj
dCwKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHVpZCkpOwotICAgIHJldHVy
biBjb250ZXh0Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0aW9uKSk7Ci0gICAg
Ly8gRklYTUU6IEZUTCBzaG91bGQgc3VwcG9ydCBleGNlcHRpb25zLgotICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjIKKyAgICByZXR1cm4gY29udGV4
dC5tYWtlQ2FsbChiaXR3aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlvbiksIGV4Y2VwdGlvblRhcmdl
dCk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NTUsMTMgKzU1LDE1IEBAIHByaXZhdGU6CiAgICAgU2xvd1BhdGhDYWxsS2V5IG1fa2V5OwogfTsK
IAordm9pZCBzdG9yZUNvZGVPcmlnaW4oU3RhdGUmLCBDQ2FsbEhlbHBlcnMmLCBDb2RlT3JpZ2lu
KTsKKwogTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKLSAgICBTdGF0ZSYsIGNv
bnN0IFJlZ2lzdGVyU2V0JiwgQ0NhbGxIZWxwZXJzJiwgSl9KSVRPcGVyYXRpb25fRVNzaUpJLAot
ICAgIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwgU3RydWN0dXJlU3R1
YkluZm8qLCBHUFJSZWcgb2JqZWN0LAorICAgIFN0YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmLCBD
Q2FsbEhlbHBlcnMmLCBDb2RlT3JpZ2luLCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0KiwKKyAgICBK
X0pJVE9wZXJhdGlvbl9FU3NpSkksIEdQUlJlZyByZXN1bHQsIFN0cnVjdHVyZVN0dWJJbmZvKiwg
R1BSUmVnIG9iamVjdCwKICAgICBTdHJpbmdJbXBsKiB1aWQpOwogTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbigKLSAgICBTdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0JiwgQ0NhbGxI
ZWxwZXJzJiwgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSwKLSAgICBHUFJSZWcgY2FsbEZyYW1lUmVn
aXN0ZXIsIFN0cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnIHZhbHVlLCBHUFJSZWcgb2JqZWN0LAor
ICAgIFN0YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmLCBDQ2FsbEhlbHBlcnMmLCBDb2RlT3JpZ2lu
LCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0KiwKKyAgICBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZyB2YWx1ZSwgR1BSUmVnIG9iamVjdCwKICAgICBTdHJp
bmdJbXBsKiB1aWQpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTc5LDcgKzc5LDkgQEAgdm9pZCBTdGFja01hcHM6OkxvY2F0aW9uOjpyZXN0b3JlSW50
bygKIAogYm9vbCBTdGFja01hcHM6OlJlY29yZDo6cGFyc2UoRGF0YVZpZXcqIHZpZXcsIHVuc2ln
bmVkJiBvZmZzZXQpCiB7Ci0gICAgcGF0Y2hwb2ludElEID0gdmlldy0+cmVhZDx1aW50MzJfdD4o
b2Zmc2V0LCB0cnVlKTsKKyAgICBpbnQ2NF90IGlkID0gdmlldy0+cmVhZDxpbnQ2NF90PihvZmZz
ZXQsIHRydWUpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQzMl90PihpZCkgPT0gaWQpOwor
ICAgIHBhdGNocG9pbnRJRCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihpZCk7CiAgICAgaWYgKHN0
YXRpY19jYXN0PGludDMyX3Q+KHBhdGNocG9pbnRJRCkgPCAwKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgCkBAIC05MCw2ICs5MiwxMyBAQCBib29sIFN0YWNrTWFwczo6UmVjb3JkOjpwYXJz
ZShEYXRhVmlldyogCiAgICAgd2hpbGUgKGxlbmd0aC0tKQogICAgICAgICBsb2NhdGlvbnMuYXBw
ZW5kKHJlYWRPYmplY3Q8TG9jYXRpb24+KHZpZXcsIG9mZnNldCkpOwogICAgIAorICAgIHVuc2ln
bmVkIG51bUxpdmVPdXRzID0gdmlldy0+cmVhZDx1aW50MTZfdD4ob2Zmc2V0LCB0cnVlKTsKKyAg
ICB3aGlsZSAobnVtTGl2ZU91dHMtLSkgeworICAgICAgICB2aWV3LT5yZWFkPHVpbnQxNl90Pihv
ZmZzZXQsIHRydWUpOyAvLyByZWdudW0KKyAgICAgICAgdmlldy0+cmVhZDx1aW50OF90PihvZmZz
ZXQsIHRydWUpOyAvLyByZXNlcnZlZAorICAgICAgICB2aWV3LT5yZWFkPHVpbnQ4X3Q+KG9mZnNl
dCwgdHJ1ZSk7IC8vIHNpemUgaW4gYnl0ZXMKKyAgICB9CisgICAgCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMuaAkocmV2
aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMu
aAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBzdHJ1Y3QgU3RhY2tNYXBzIHsKICAg
ICAgICAgdWludDE2X3QgZHdhcmZSZWdOdW07IC8vIFJlcHJlc2VudGVkIGFzIGEgMTItYml0IGlu
dCBpbiB0aGUgc2VjdGlvbi4KICAgICAgICAgaW50OF90IHNpemU7CiAgICAgICAgIEtpbmQga2lu
ZDsKLSAgICAgICAgaW50MTZfdCBvZmZzZXQ7CisgICAgICAgIGludDMyX3Qgb2Zmc2V0OwogICAg
ICAgICAKICAgICAgICAgdm9pZCBwYXJzZShEYXRhVmlldyosIHVuc2lnbmVkJiBvZmZzZXQpOwog
ICAgICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3Q7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYg
KzQzLDggQEAgU3RhdGU6OlN0YXRlKEdyYXBoJiBncmFwaCkKICAgICAsIG1vZHVsZSgwKQogICAg
ICwgZnVuY3Rpb24oMCkKICAgICAsIGdlbmVyYXRlZEZ1bmN0aW9uKDApCisgICAgLCBjb21wYWN0
VW53aW5kKDApCisgICAgLCBjb21wYWN0VW53aW5kU2l6ZSgwKQogewogICAgIHN3aXRjaCAoZ3Jh
cGgubV9wbGFuLm1vZGUpIHsKICAgICBjYXNlIEZUTE1vZGU6IHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTFN0YXRlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMU3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIkZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIkZUTEpJVENvZGUu
aCIKICNpbmNsdWRlICJGVExKSVRGaW5hbGl6ZXIuaCIKKyNpbmNsdWRlICJGVExKU0NhbGwuaCIK
ICNpbmNsdWRlICJGVExTdGFja01hcHMuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
IApAQCAtNTcsMTAgKzU4LDE1IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8SklUQ29kZT4gaml0Q29k
ZTsKICAgICBHZW5lcmF0ZWRGdW5jdGlvbiBnZW5lcmF0ZWRGdW5jdGlvbjsKICAgICBKSVRGaW5h
bGl6ZXIqIGZpbmFsaXplcjsKKyAgICB1bnNpZ25lZCBoYW5kbGVFeGNlcHRpb25TdGFja21hcElE
OworICAgIHVuc2lnbmVkIGNhcHR1cmVkU3RhY2ttYXBJRDsKICAgICBTZWdtZW50ZWRWZWN0b3I8
R2V0QnlJZERlc2NyaXB0b3I+IGdldEJ5SWRzOwogICAgIFNlZ21lbnRlZFZlY3RvcjxQdXRCeUlk
RGVzY3JpcHRvcj4gcHV0QnlJZHM7CisgICAgVmVjdG9yPEpTQ2FsbD4ganNDYWxsczsKICAgICBW
ZWN0b3I8Q1N0cmluZz4gY29kZVNlY3Rpb25OYW1lczsKICAgICBWZWN0b3I8Q1N0cmluZz4gZGF0
YVNlY3Rpb25OYW1lczsKKyAgICB2b2lkKiBjb21wYWN0VW53aW5kOworICAgIHNpemVfdCBjb21w
YWN0VW53aW5kU2l6ZTsKICAgICBSZWZDb3VudGVkQXJyYXk8TFNlY3Rpb25Xb3JkPiBzdGFja21h
cHNTZWN0aW9uOwogICAgIAogICAgIHZvaWQgZHVtcFN0YXRlKGNvbnN0IGNoYXIqIHdoZW4pOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAkocmV2aXNpb24gMTYy
OTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zOSw5ICszOSw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsK
IAogdXNpbmcgbmFtZXNwYWNlIERGRzsKIAotTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRH
ZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0mIHZtLCBjb25zdCBMb2NhdGlvbiYgbG9jYXRpb24p
CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcihW
TSogdm0pCiB7Ci0gICAgQXNzZW1ibHlIZWxwZXJzIGppdCgmdm0sIDApOworICAgIEFzc2VtYmx5
SGVscGVycyBqaXQodm0sIDApOwogICAgIAogICAgIC8vIE5vdGUgdGhhdCB0aGUgInJldHVybiBh
ZGRyZXNzIiB3aWxsIGJlIHRoZSBPU1IgZXhpdCBJRC4KICAgICAKQEAgLTUxLDcgKzUxLDcgQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVAogICAgIGppdC5wdXNoKEdQ
UkluZm86OnJlZ1QwKTsKICAgICBqaXQucHVzaChHUFJJbmZvOjpyZWdUMCk7CiAgICAgCi0gICAg
U2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLnNjcmF0Y2hCdWZmZXJGb3JTaXplKHJl
cXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVzKCkpOworICAgIFNjcmF0Y2hCdWZmZXIqIHNj
cmF0Y2hCdWZmZXIgPSB2bS0+c2NyYXRjaEJ1ZmZlckZvclNpemUocmVxdWlyZWRTY3JhdGNoTWVt
b3J5U2l6ZUluQnl0ZXMoKSk7CiAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+
KHNjcmF0Y2hCdWZmZXItPmRhdGFCdWZmZXIoKSk7CiAgICAgCiAgICAgc2F2ZUFsbFJlZ2lzdGVy
cyhqaXQsIGJ1ZmZlcik7CkBAIC02MCw3ICs2MCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBv
c3JFeGl0R2VuZXJhdGlvblQKICAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cihzY3JhdGNoQnVmZmVyLT5hY3RpdmVMZW5ndGhQdHIoKSksIEdQUkluZm86Om5vbkFyZ0dQ
UjEpOwogICAgIGppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihyZXF1
aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMSk7CiAK
LSAgICBsb2NhdGlvbi5yZXN0b3JlSW50byhqaXQsIGJ1ZmZlciwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwLCAxKTsKKyAgICBqaXQubG9hZFB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBqaXQucGVlayhHUFJJbmZvOjphcmd1bWVudEdQUjEs
IDMpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGZ1bmN0aW9uQ2FsbCA9IGppdC5jYWxsKCk7
CiAgICAgCkBAIC03MSw2ICs3MSwxMCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdl
bmVyYXRpb25UCiAgICAgCiAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQ
UkluZm86OnJlZ1QwKTsKICAgICAKKyAgICAvLyBNYWtlIHN1cmUgd2UgdGVsbCB0aGUgR0MgdGhh
dCB3ZSdyZSBub3QgdXNpbmcgdGhlIHNjcmF0Y2ggYnVmZmVyIGFueW1vcmUuCisgICAgaml0Lm1v
dmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc2NyYXRjaEJ1ZmZlci0+YWN0aXZlTGVu
Z3RoUHRyKCkpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRyKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tUHRyKDApLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgCiAgICAgLy8gUHJl
cGFyZSBmb3IgdGFpbCBjYWxsLgogICAgIGppdC5wb3AoR1BSSW5mbzo6cmVnVDEpOwogICAgIGpp
dC5wb3AoR1BSSW5mbzo6cmVnVDEpOwpAQCAtODEsMTQgKzg1LDE0IEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblQKICAgICAvLyByZXN0b3JlIGFsbCByZWdpc3RlcnMu
CiAgICAgCiAgICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86
OnJlZ1QwKTsKLSAgICAKKwogICAgIHJlc3RvcmVBbGxSZWdpc3RlcnMoaml0LCBidWZmZXIpOwog
CiAgICAgaml0LnJldCgpOwogICAgIAotICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIodm0sICZq
aXQsIEdMT0JBTF9USFVOS19JRCk7CisgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZq
aXQsIEdMT0JBTF9USFVOS19JRCk7CiAgICAgcGF0Y2hCdWZmZXIubGluayhmdW5jdGlvbkNhbGws
IGNvbXBpbGVGVExPU1JFeGl0KTsKLSAgICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZl
ciwgKCJGVEwgT1NSIGV4aXQgZ2VuZXJhdGlvbiB0aHVuayBmb3IgY2FsbEZyYW1lIGF0ICVzIiwg
dG9DU3RyaW5nKGxvY2F0aW9uKS5kYXRhKCkpKTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09ERShw
YXRjaEJ1ZmZlciwgKCJGVEwgT1NSIGV4aXQgZ2VuZXJhdGlvbiB0aHVuayIpKTsKIH0KIAogTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIHNsb3dQYXRoQ2FsbFRodW5rR2VuZXJhdG9yKFZNJiB2bSwgY29u
c3QgU2xvd1BhdGhDYWxsS2V5JiBrZXkpCkBAIC0xMTksMTEgKzEyMywxMyBAQCBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1bmtHCiAgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0g
c2l6ZW9mKGRvdWJsZSk7CiAgICAgfQogICAgIAorICAgIC8vIEZJWE1FOiBDU3RhY2sgLSBOZWVk
IHRvIGRvIHNvZW1ldGhpbmcgbGlrZSBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICBq
aXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOwog
ICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpub25BcmdHUFIwLCBBc3NlbWJseUhlbHBlcnM6OkFk
ZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBrZXkub2Zmc2V0KCkp
KTsKICAgICAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsID0gaml0LmNhbGwoKTsKLSAgICAK
KworICAgIC8vIEZJWE1FOiBDU3RhY2sgLSBOZWVkIHRvIGRvIHNvbWV0aGluZyBsaWtlIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIGppdC5sb2FkUHRyKEFzc2VtYmx5SGVscGVyczo6
QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGtleS5vZmZzZXQo
KSksIEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7CiAgICAgaml0LnJlc3RvcmVS
ZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQ
Uik7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmgJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgVk07CiAKIG5hbWVzcGFjZSBGVEwg
ewogCi1NYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRv
cihWTSYsIGNvbnN0IExvY2F0aW9uJik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdl
bmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNsb3dQ
YXRoQ2FsbFRodW5rR2VuZXJhdG9yKFZNJiwgY29uc3QgU2xvd1BhdGhDYWxsS2V5Jik7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIEtleVR5cGVBcmd1bWVudD4KQEAgLTc4LDEyICs3OCw2IEBAIHR5cGVu
YW1lIE1hcFR5cGU6OktleVR5cGUga2V5Rm9yVGh1bmsoTWEKIAogY2xhc3MgVGh1bmtzIHsKIHB1
YmxpYzoKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2V0T1NSRXhpdEdlbmVyYXRpb25UaHVu
ayhWTSYgdm0sIGNvbnN0IExvY2F0aW9uJiBsb2NhdGlvbikKLSAgICB7Ci0gICAgICAgIHJldHVy
biBnZW5lcmF0ZUlmTmVjZXNzYXJ5KAotICAgICAgICAgICAgdm0sIG1fb3NyRXhpdFRodW5rcywg
bG9jYXRpb24sIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOwotICAgIH0KLSAgICAK
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2V0U2xvd1BhdGhDYWxsVGh1bmsoVk0mIHZtLCBj
b25zdCBTbG93UGF0aENhbGxLZXkmIGtleSkKICAgICB7CiAgICAgICAgIHJldHVybiBnZW5lcmF0
ZUlmTmVjZXNzYXJ5KApAQCAtOTYsNyArOTAsNiBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogcHJp
dmF0ZToKLSAgICBUaHVua01hcDxMb2NhdGlvbj4gbV9vc3JFeGl0VGh1bmtzOwogICAgIFRodW5r
TWFwPFNsb3dQYXRoQ2FsbEtleT4gbV9zbG93UGF0aENhbGxUaHVua3M7CiB9OwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFVud2luZEluZm8uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53aW5kSW5mby5jcHAJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFVud2luZEluZm8uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExVbndpbmRJ
bmZvLmgiCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgPG1hY2gtby9jb21wYWN0
X3Vud2luZF9lbmNvZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK1Vud2luZEluZm86OlVud2luZEluZm8oKSB7IH0K
K1Vud2luZEluZm86On5VbndpbmRJbmZvKCkgeyB9CisKK25hbWVzcGFjZSB7CisKK3N0cnVjdCBD
b21wYWN0VW53aW5kIHsKKyAgICB2b2lkKiBmdW5jdGlvbjsKKyAgICB1aW50MzJfdCBzaXplOwor
ICAgIGNvbXBhY3RfdW53aW5kX2VuY29kaW5nX3QgZW5jb2Rpbmc7CisgICAgdm9pZCogcGVyc29u
YWxpdHk7CisgICAgdm9pZCogbHNkYTsKK307CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQor
Cit2b2lkIFVud2luZEluZm86OnBhcnNlKHZvaWQqIHNlY3Rpb24sIHNpemVfdCBzaXplLCBHZW5l
cmF0ZWRGdW5jdGlvbiBnZW5lcmF0ZWRGdW5jdGlvbikKK3sKKyAgICBtX3JlZ2lzdGVycy5jbGVh
cigpOworICAgIAorICAgIFJFTEVBU0VfQVNTRVJUKHNlY3Rpb24pOworICAgIFJFTEVBU0VfQVNT
RVJUKHNpemUgPj0gc2l6ZW9mKENvbXBhY3RVbndpbmQpKTsKKyAgICAKKyAgICBDb21wYWN0VW53
aW5kKiBkYXRhID0gYml0d2lzZV9jYXN0PENvbXBhY3RVbndpbmQqPihzZWN0aW9uKTsKKyAgICAK
KyAgICBSRUxFQVNFX0FTU0VSVCghZGF0YS0+cGVyc29uYWxpdHkpOyAvLyBXZSBkb24ndCBrbm93
IGhvdyB0byBoYW5kbGUgdGhpcy4KKyAgICBSRUxFQVNFX0FTU0VSVCghZGF0YS0+bHNkYSk7IC8v
IFdlIGRvbid0IGtub3cgaG93IHRvIGhhbmRsZSB0aGlzLgorICAgIFJFTEVBU0VfQVNTRVJUKGRh
dGEtPmZ1bmN0aW9uID09IGdlbmVyYXRlZEZ1bmN0aW9uKTsgLy8gVGhlIHVud2luZCBkYXRhIGJl
dHRlciBiZSBmb3Igb3VyIGZ1bmN0aW9uLgorICAgIAorICAgIGNvbXBhY3RfdW53aW5kX2VuY29k
aW5nX3QgZW5jb2RpbmcgPSBkYXRhLT5lbmNvZGluZzsKKyAgICBSRUxFQVNFX0FTU0VSVCghKGVu
Y29kaW5nICYgVU5XSU5EX0lTX05PVF9GVU5DVElPTl9TVEFSVCkpOworICAgIFJFTEVBU0VfQVNT
RVJUKCEoZW5jb2RpbmcgJiBVTldJTkRfSEFTX0xTREEpKTsKKyAgICBSRUxFQVNFX0FTU0VSVCgh
KGVuY29kaW5nICYgVU5XSU5EX1BFUlNPTkFMSVRZX01BU0spKTsKKyAgICBSRUxFQVNFX0FTU0VS
VCgoZW5jb2RpbmcgJiBVTldJTkRfWDg2XzY0X01PREVfTUFTSykgPT0gVU5XSU5EX1g4Nl82NF9N
T0RFX1JCUF9GUkFNRSk7CisgICAgCisgICAgaW50MzJfdCBvZmZzZXQgPSAtKChlbmNvZGluZyAm
IFVOV0lORF9YODZfNjRfUkJQX0ZSQU1FX09GRlNFVCkgPj4gMTYpICogODsKKyAgICB1aW50MzJf
dCBuZXh0UmVnaXN0ZXJzID0gZW5jb2Rpbmc7CisgICAgZm9yICh1bnNpZ25lZCBpID0gNTsgaS0t
OykgeworICAgICAgICB1aW50MzJfdCBjdXJyZW50UmVnaXN0ZXIgPSBuZXh0UmVnaXN0ZXJzICYg
NzsKKyAgICAgICAgbmV4dFJlZ2lzdGVycyA+Pj0gMzsKKyAgICAgICAgCisgICAgICAgIHN3aXRj
aCAoY3VycmVudFJlZ2lzdGVyKSB7CisgICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfTk9O
RToKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgVU5XSU5E
X1g4Nl82NF9SRUdfUkJYOgorICAgICAgICAgICAgbV9yZWdpc3RlcnMuYXBwZW5kKFJlZ2lzdGVy
QXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjplYngsIG9mZnNldCkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBVTldJTkRfWDg2XzY0X1JFR19SMTI6CisgICAg
ICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJBdE9mZnNldChYODZSZWdpc3RlcnM6
OnIxMiwgb2Zmc2V0KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAg
ICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1IxMzoKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFw
cGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJlZ2lzdGVyczo6cjEzLCBvZmZzZXQpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9S
RUdfUjE0OgorICAgICAgICAgICAgbV9yZWdpc3RlcnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQo
WDg2UmVnaXN0ZXJzOjpyMTQsIG9mZnNldCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAKKyAgICAgICAgY2FzZSBVTldJTkRfWDg2XzY0X1JFR19SMTU6CisgICAgICAgICAgICBt
X3JlZ2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJBdE9mZnNldChYODZSZWdpc3RlcnM6OnIxNSwgb2Zm
c2V0KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVO
V0lORF9YODZfNjRfUkVHX1JCUDoKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdp
c3RlckF0T2Zmc2V0KFg4NlJlZ2lzdGVyczo6ZWJwLCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvZmZz
ZXQgKz0gODsKKyAgICB9CisgICAgCisgICAgc3RkOjpzb3J0KG1fcmVnaXN0ZXJzLmJlZ2luKCks
IG1fcmVnaXN0ZXJzLmVuZCgpKTsKK30KKwordm9pZCBVbndpbmRJbmZvOjpkdW1wKFByaW50U3Ry
ZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgb3V0LnByaW50KGxpc3REdW1wKG1fcmVnaXN0ZXJzKSk7
Cit9CisKK1JlZ2lzdGVyQXRPZmZzZXQqIFVud2luZEluZm86OmZpbmQoR1BSUmVnIGdwcikgY29u
c3QKK3sKKyAgICByZXR1cm4gdHJ5QmluYXJ5U2VhcmNoPFJlZ2lzdGVyQXRPZmZzZXQsIEdQUlJl
Zz4obV9yZWdpc3RlcnMsIG1fcmVnaXN0ZXJzLnNpemUoKSwgZ3ByLCBSZWdpc3RlckF0T2Zmc2V0
OjpnZXRHUFIpOworfQorCit1bnNpZ25lZCBVbndpbmRJbmZvOjppbmRleE9mKEdQUlJlZyBncHIp
IGNvbnN0Cit7CisgICAgaWYgKFJlZ2lzdGVyQXRPZmZzZXQqIHBvaW50ZXIgPSBmaW5kKGdwcikp
CisgICAgICAgIHJldHVybiBwb2ludGVyIC0gbV9yZWdpc3RlcnMuYmVnaW4oKTsKKyAgICByZXR1
cm4gVUlOVF9NQVg7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8v
IEVOQUJMRShGVExfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFVu
d2luZEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFVu
d2luZEluZm8uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
VW53aW5kSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBGVExVbndpbmRJbmZv
X2gKKyNkZWZpbmUgRlRMVW53aW5kSW5mb19oCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2lu
Y2x1ZGUgIkZUTEdlbmVyYXRlZEZ1bmN0aW9uLmgiCisjaW5jbHVkZSAiRlRMUmVnaXN0ZXJBdE9m
ZnNldC5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK3N0cnVjdCBVbndp
bmRJbmZvIHsKKyAgICBVbndpbmRJbmZvKCk7CisgICAgflVud2luZEluZm8oKTsKKyAgICAKKyAg
ICB2b2lkIHBhcnNlKHZvaWQqLCBzaXplX3QsIEdlbmVyYXRlZEZ1bmN0aW9uKTsKKyAgICAKKyAg
ICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKKyAgICAKKyAgICBSZWdpc3RlckF0T2Zm
c2V0KiBmaW5kKEdQUlJlZykgY29uc3Q7CisgICAgdW5zaWduZWQgaW5kZXhPZihHUFJSZWcpIGNv
bnN0OyAvLyBSZXR1cm5zIFVJTlRfTUFYIGlmIG5vdCBmb3VuZC4KKyAgICAKKyAgICBWZWN0b3I8
UmVnaXN0ZXJBdE9mZnNldD4gbV9yZWdpc3RlcnM7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTFVud2lu
ZEluZm9faAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5n
ZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVl
UmFuZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkZUTFZhbHVlUmFuZ2UuaCIKKworI2luY2x1ZGUgIkZUTEFiYnJldmlhdGlvbnMuaCIK
KworI2lmIEVOQUJMRShGVExfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7
CisKK3ZvaWQgVmFsdWVSYW5nZTo6ZGVjb3JhdGVJbnN0cnVjdGlvbigKKyAgICBMQ29udGV4dCBj
b250ZXh0LCBMVmFsdWUgbG9hZEluc3RydWN0aW9uLCB1bnNpZ25lZCByYW5nZUtpbmQpIGNvbnN0
Cit7CisgICAgaWYgKCFtX3JhbmdlTWV0YWRhdGEpCisgICAgICAgIG1fcmFuZ2VNZXRhZGF0YSA9
IG1kTm9kZShjb250ZXh0LCBtX2JlZ2luLCBtX2VuZCk7CisgICAgc2V0TWV0YWRhdGEobG9hZElu
c3RydWN0aW9uLCByYW5nZUtpbmQsIG1fcmFuZ2VNZXRhZGF0YSk7Cit9CisKK30gfSAvLyBuYW1l
c3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgRlRMVmFsdWVSYW5nZV9oCisjZGVmaW5lIEZUTFZhbHVlUmFuZ2VfaAorCisj
aWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJGVExBYmJyZXZpYXRlZFR5cGVzLmgiCisK
K25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworY2xhc3MgVmFsdWVSYW5nZSB7Citw
dWJsaWM6CisgICAgVmFsdWVSYW5nZSgpCisgICAgICAgIDogbV9iZWdpbigwKQorICAgICAgICAs
IG1fZW5kKDApCisgICAgICAgICwgbV9yYW5nZU1ldGFkYXRhKDApCisgICAgeworICAgIH0KKyAg
ICAKKyAgICBWYWx1ZVJhbmdlKExWYWx1ZSBiZWdpbiwgTFZhbHVlIGVuZCkKKyAgICAgICAgOiBt
X2JlZ2luKGJlZ2luKQorICAgICAgICAsIG1fZW5kKGVuZCkKKyAgICAgICAgLCBtX3JhbmdlTWV0
YWRhdGEoMCkKKyAgICB7CisgICAgfQorICAgIAorICAgIExWYWx1ZSBiZWdpbigpIGNvbnN0IHsg
cmV0dXJuIG1fYmVnaW47IH0KKyAgICBMVmFsdWUgZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lbmQ7
IH0KKyAgICAKKyAgICB2b2lkIGRlY29yYXRlSW5zdHJ1Y3Rpb24oTENvbnRleHQsIExWYWx1ZSBs
b2FkSW5zdHJ1Y3Rpb24sIHVuc2lnbmVkIHJhbmdlS2luZCkgY29uc3Q7CisgICAgCitwcml2YXRl
OgorICAgIExWYWx1ZSBtX2JlZ2luOworICAgIExWYWx1ZSBtX2VuZDsKKyAgICBtdXRhYmxlIExW
YWx1ZSBtX3JhbmdlTWV0YWRhdGE7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisK
KyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTFZhbHVlUmFuZ2VfaAor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9v
dHMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9D
b25zZXJ2YXRpdmVSb290cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDYgQEAgdm9p
ZCBDb25zZXJ2YXRpdmVSb290czo6Z2VuZXJpY0FkZFNwYW4odgogICAgICAgICBlbmQgPSBzd2Fw
VGVtcDsKICAgICB9CiAKLSAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGNoYXIqPihlbmQpIC0gc3Rh
dGljX2Nhc3Q8Y2hhcio+KGJlZ2luKSkgPCAweDEwMDAwMDApOwogICAgIEFTU0VSVChpc1BvaW50
ZXJBbGlnbmVkKGJlZ2luKSk7CiAgICAgQVNTRVJUKGlzUG9pbnRlckFsaWduZWQoZW5kKSk7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDksIDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgog
ICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCkBAIC00NTEsMjQgKzQ1MSwyNyBAQCB2b2lkIEhlYXA6Om1hcmtSb290cygp
CiAgICAgZG91YmxlIGdjU3RhcnRUaW1lID0gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKTsKICNlbmRpZgogCisgICAgbV9jb2RlQmxvY2tzLmNsZWFyTWFya3MoKTsKICAgICB2b2lk
KiBkdW1teTsKLSAgICAKKwogICAgIC8vIFdlIGdhdGhlciBjb25zZXJ2YXRpdmUgcm9vdHMgYmVm
b3JlIGNsZWFyaW5nIG1hcmsgYml0cyBiZWNhdXNlIGNvbnNlcnZhdGl2ZQogICAgIC8vIGdhdGhl
cmluZyB1c2VzIHRoZSBtYXJrIGJpdHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSByZWZlcmVuY2Ug
aXMgdmFsaWQuCiAgICAgQ29uc2VydmF0aXZlUm9vdHMgbWFjaGluZVRocmVhZFJvb3RzKCZtX29i
amVjdFNwYWNlLmJsb2NrcygpLCAmbV9zdG9yYWdlU3BhY2UpOwogICAgIG1faml0U3R1YlJvdXRp
bmVzLmNsZWFyTWFya3MoKTsKICAgICB7CiAgICAgICAgIEdDUEhBU0UoR2F0aGVyQ29uc2VydmF0
aXZlUm9vdHMpOwotICAgICAgICBtX21hY2hpbmVUaHJlYWRzLmdhdGhlckNvbnNlcnZhdGl2ZVJv
b3RzKG1hY2hpbmVUaHJlYWRSb290cywgJmR1bW15KTsKKyAgICAgICAgbV9tYWNoaW5lVGhyZWFk
cy5nYXRoZXJDb25zZXJ2YXRpdmVSb290cyhtYWNoaW5lVGhyZWFkUm9vdHMsIG1faml0U3R1YlJv
dXRpbmVzLCBtX2NvZGVCbG9ja3MsICZkdW1teSk7CiAgICAgfQogCisjaWYgRU5BQkxFKExMSU5U
X0NfTE9PUCkKICAgICBDb25zZXJ2YXRpdmVSb290cyBzdGFja1Jvb3RzKCZtX29iamVjdFNwYWNl
LmJsb2NrcygpLCAmbV9zdG9yYWdlU3BhY2UpOwotICAgIG1fY29kZUJsb2Nrcy5jbGVhck1hcmtz
KCk7CiAgICAgewogICAgICAgICBHQ1BIQVNFKEdhdGhlclN0YWNrUm9vdHMpOwogICAgICAgICBz
dGFjaygpLmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKHN0YWNrUm9vdHMsIG1faml0U3R1YlJvdXRp
bmVzLCBtX2NvZGVCbG9ja3MpOwotICAgICAgICBzdGFjaygpLnNhbml0aXplU3RhY2soKTsKICAg
ICB9CisjZW5kaWYKKworICAgIHNhbml0aXplU3RhY2tGb3JWTShtX3ZtKTsKIAogI2lmIEVOQUJM
RShERkdfSklUKQogICAgIENvbnNlcnZhdGl2ZVJvb3RzIHNjcmF0Y2hCdWZmZXJSb290cygmbV9v
YmplY3RTcGFjZS5ibG9ja3MoKSwgJm1fc3RvcmFnZVNwYWNlKTsKQEAgLTUwNSwxMiArNTA4LDE0
IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKCkKICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kKG1h
Y2hpbmVUaHJlYWRSb290cyk7CiAgICAgICAgICAgICB2aXNpdG9yLmRvbmF0ZUFuZERyYWluKCk7
CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICAgICB7CiAgICAgICAg
ICAgICBHQ1BIQVNFKFZpc2l0U3RhY2tSb290cyk7CiAgICAgICAgICAgICBNQVJLX0xPR19ST09U
KHZpc2l0b3IsICJTdGFjayIpOwogICAgICAgICAgICAgdmlzaXRvci5hcHBlbmQoc3RhY2tSb290
cyk7CiAgICAgICAgICAgICB2aXNpdG9yLmRvbmF0ZUFuZERyYWluKCk7CiAgICAgICAgIH0KKyNl
bmRpZgogI2lmIEVOQUJMRShERkdfSklUKQogICAgICAgICB7CiAgICAgICAgICAgICBHQ1BIQVNF
KFZpc2l0U2NyYXRjaEJ1ZmZlclJvb3RzKTsKQEAgLTk1MiwxMiArOTU3LDEyIEBAIHZvaWQgSGVh
cDo6Y29sbGVjdCgpCiAKIGJvb2wgSGVhcDo6Y29sbGVjdElmTmVjZXNzYXJ5T3JEZWZlcigpCiB7
Ci0gICAgaWYgKG1fZGVmZXJyYWxEZXB0aCkKKyAgICBpZiAoaXNEZWZlcnJlZCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBpZiAoIXNob3VsZENvbGxlY3QoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAorCiAgICAgY29sbGVjdCgpOwogICAgIHJldHVybiB0cnVl
OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
OTcsNyArMTk3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICB2b2lkIGFk
ZFJlZmVyZW5jZShKU0NlbGwqLCBBcnJheUJ1ZmZlciopOwogICAgICAgICAKLSAgICAgICAgYm9v
bCBpc0RlZmVycmVkKCkgY29uc3QgeyByZXR1cm4gISFtX2RlZmVycmFsRGVwdGg7IH0KKyAgICAg
ICAgYm9vbCBpc0RlZmVycmVkKCkgY29uc3QgeyByZXR1cm4gISFtX2RlZmVycmFsRGVwdGggfHwg
T3B0aW9uczo6ZGlzYWJsZUdDKCk7IH0KIAogI2lmIFVTRShDRikKICAgICAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gdm9pZCByZWxlYXNlU29vbihSZXRhaW5QdHI8VD4mJik7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFj
a01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIE1hY2hp
bmVUaHJlYWRzOjpyZW1vdmVDdXJyZW50VGhyZWFkCiAjZGVmaW5lIFJFR0lTVEVSX0JVRkZFUl9B
TElHTk1FTlQKICNlbmRpZgogCi12b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9tQ3VycmVu
dFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIHZvaWQqIHN0YWNr
Q3VycmVudCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGhyZWFkKENv
bnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgSklUU3R1YlJvdXRpbmVTZXQmIGpp
dFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzLCB2b2lkKiBzdGFja0N1cnJl
bnQpCiB7CiAgICAgLy8gc2V0am1wIGZvcmNlcyB2b2xhdGlsZSByZWdpc3RlcnMgb250byB0aGUg
c3RhY2sKICAgICBqbXBfYnVmIHJlZ2lzdGVycyBSRUdJU1RFUl9CVUZGRVJfQUxJR05NRU5UOwpA
QCAtMjQ4LDEyICsyNDgsMTIgQEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJvbUN1cnJl
bnRUaAogICAgIHZvaWQqIHJlZ2lzdGVyc0JlZ2luID0gJnJlZ2lzdGVyczsKICAgICB2b2lkKiBy
ZWdpc3RlcnNFbmQgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihyb3VuZFVwVG9NdWx0aXBsZU9m
PHNpemVvZih2b2lkKik+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PigmcmVnaXN0ZXJzICsg
MSkpKTsKICAgICBzd2FwSWZCYWNrd2FyZHMocmVnaXN0ZXJzQmVnaW4sIHJlZ2lzdGVyc0VuZCk7
Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHJlZ2lzdGVyc0JlZ2luLCByZWdpc3RlcnNFbmQp
OworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChyZWdpc3RlcnNCZWdpbiwgcmVnaXN0ZXJzRW5k
LCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogCiAgICAgdm9pZCogc3RhY2tCZWdpbiA9
IHN0YWNrQ3VycmVudDsKICAgICB2b2lkKiBzdGFja0VuZCA9IHd0ZlRocmVhZERhdGEoKS5zdGFj
aygpLm9yaWdpbigpOwogICAgIHN3YXBJZkJhY2t3YXJkcyhzdGFja0JlZ2luLCBzdGFja0VuZCk7
Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrQmVnaW4sIHN0YWNrRW5kKTsKKyAgICBj
b25zZXJ2YXRpdmVSb290cy5hZGQoc3RhY2tCZWdpbiwgc3RhY2tFbmQsIGppdFN0dWJSb3V0aW5l
cywgY29kZUJsb2Nrcyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzdXNwZW5kVGhyZWFkKGNv
bnN0IFBsYXRmb3JtVGhyZWFkJiBwbGF0Zm9ybVRocmVhZCkKQEAgLTQzNCwyNCArNDM0LDI0IEBA
IHN0YXRpYyB2b2lkIGZyZWVQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycygKICNlbmRpZgogfQogCi12
b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29uc2VydmF0aXZlUm9v
dHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBUaHJlYWQqIHRocmVhZCkKK3ZvaWQgTWFjaGluZVRocmVh
ZHM6OmdhdGhlckZyb21PdGhlclRocmVhZChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZl
Um9vdHMsIFRocmVhZCogdGhyZWFkLCBKSVRTdHViUm91dGluZVNldCYgaml0U3R1YlJvdXRpbmVz
LCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3MpCiB7CiAgICAgUGxhdGZvcm1UaHJlYWRSZWdpc3Rl
cnMgcmVnczsKICAgICBzaXplX3QgcmVnU2l6ZSA9IGdldFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJz
KHRocmVhZC0+cGxhdGZvcm1UaHJlYWQsIHJlZ3MpOwogCi0gICAgY29uc2VydmF0aXZlUm9vdHMu
YWRkKHN0YXRpY19jYXN0PHZvaWQqPigmcmVncyksIHN0YXRpY19jYXN0PHZvaWQqPihyZWludGVy
cHJldF9jYXN0PGNoYXIqPigmcmVncykgKyByZWdTaXplKSk7CisgICAgY29uc2VydmF0aXZlUm9v
dHMuYWRkKHN0YXRpY19jYXN0PHZvaWQqPigmcmVncyksIHN0YXRpY19jYXN0PHZvaWQqPihyZWlu
dGVycHJldF9jYXN0PGNoYXIqPigmcmVncykgKyByZWdTaXplKSwgaml0U3R1YlJvdXRpbmVzLCBj
b2RlQmxvY2tzKTsKIAogICAgIHZvaWQqIHN0YWNrUG9pbnRlciA9IG90aGVyVGhyZWFkU3RhY2tQ
b2ludGVyKHJlZ3MpOwogICAgIHZvaWQqIHN0YWNrQmFzZSA9IHRocmVhZC0+c3RhY2tCYXNlOwog
ICAgIHN3YXBJZkJhY2t3YXJkcyhzdGFja1BvaW50ZXIsIHN0YWNrQmFzZSk7Ci0gICAgY29uc2Vy
dmF0aXZlUm9vdHMuYWRkKHN0YWNrUG9pbnRlciwgc3RhY2tCYXNlKTsKKyAgICBjb25zZXJ2YXRp
dmVSb290cy5hZGQoc3RhY2tQb2ludGVyLCBzdGFja0Jhc2UsIGppdFN0dWJSb3V0aW5lcywgY29k
ZUJsb2Nrcyk7CiAKICAgICBmcmVlUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMocmVncyk7CiB9CiAK
LXZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2
ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgdm9pZCogc3RhY2tDdXJyZW50KQordm9pZCBNYWNo
aW5lVGhyZWFkczo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIGNv
bnNlcnZhdGl2ZVJvb3RzLCBKSVRTdHViUm91dGluZVNldCYgaml0U3R1YlJvdXRpbmVzLCBDb2Rl
QmxvY2tTZXQmIGNvZGVCbG9ja3MsIHZvaWQqIHN0YWNrQ3VycmVudCkKIHsKLSAgICBnYXRoZXJG
cm9tQ3VycmVudFRocmVhZChjb25zZXJ2YXRpdmVSb290cywgc3RhY2tDdXJyZW50KTsKKyAgICBn
YXRoZXJGcm9tQ3VycmVudFRocmVhZChjb25zZXJ2YXRpdmVSb290cywgaml0U3R1YlJvdXRpbmVz
LCBjb2RlQmxvY2tzLCBzdGFja0N1cnJlbnQpOwogCiAgICAgaWYgKG1fdGhyZWFkU3BlY2lmaWMp
IHsKICAgICAgICAgUGxhdGZvcm1UaHJlYWQgY3VycmVudFBsYXRmb3JtVGhyZWFkID0gZ2V0Q3Vy
cmVudFBsYXRmb3JtVGhyZWFkKCk7CkBAIC00NzMsNyArNDczLDcgQEAgdm9pZCBNYWNoaW5lVGhy
ZWFkczo6Z2F0aGVyQ29uc2VydmF0aXZlUgogICAgICAgICAvLyBhbmQgc2luY2UgdGhpcyBpcyBh
IHNoYXJlZCBoZWFwLCB0aGV5IGFyZSByZWFsIGxvY2tzLgogICAgICAgICBmb3IgKFRocmVhZCog
dGhyZWFkID0gbV9yZWdpc3RlcmVkVGhyZWFkczsgdGhyZWFkOyB0aHJlYWQgPSB0aHJlYWQtPm5l
eHQpIHsKICAgICAgICAgICAgIGlmICghZXF1YWxUaHJlYWQodGhyZWFkLT5wbGF0Zm9ybVRocmVh
ZCwgY3VycmVudFBsYXRmb3JtVGhyZWFkKSkKLSAgICAgICAgICAgICAgICBnYXRoZXJGcm9tT3Ro
ZXJUaHJlYWQoY29uc2VydmF0aXZlUm9vdHMsIHRocmVhZCk7CisgICAgICAgICAgICAgICAgZ2F0
aGVyRnJvbU90aGVyVGhyZWFkKGNvbnNlcnZhdGl2ZVJvb3RzLCB0aHJlYWQsIGppdFN0dWJSb3V0
aW5lcywgY29kZUJsb2Nrcyk7CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKFRocmVhZCogdGhy
ZWFkID0gbV9yZWdpc3RlcmVkVGhyZWFkczsgdGhyZWFkOyB0aHJlYWQgPSB0aHJlYWQtPm5leHQp
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01h
cmtlci5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9N
YWNoaW5lU3RhY2tNYXJrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsMTAgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKKyAgICBjbGFzcyBDb2RlQmxvY2tTZXQ7CiAgICAgY2xhc3MgQ29u
c2VydmF0aXZlUm9vdHM7CiAgICAgY2xhc3MgSGVhcDsKKyAgICBjbGFzcyBKSVRTdHViUm91dGlu
ZVNldDsKIAogICAgIGNsYXNzIE1hY2hpbmVUaHJlYWRzIHsKICAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTWFjaGluZVRocmVhZHMpOwpAQCAtMzcsMjAgKzM5LDIwIEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBNYWNoaW5lVGhyZWFkcyhIZWFwKik7CiAgICAgICAgIH5NYWNoaW5lVGhy
ZWFkcygpOwogCi0gICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0
aXZlUm9vdHMmLCB2b2lkKiBzdGFja0N1cnJlbnQpOworICAgICAgICB2b2lkIGdhdGhlckNvbnNl
cnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2Rl
QmxvY2tTZXQmLCB2b2lkKiBzdGFja0N1cnJlbnQpOwogCiAgICAgICAgIEpTX0VYUE9SVF9QUklW
QVRFIHZvaWQgbWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKTsKICAgICAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBhZGRDdXJyZW50VGhyZWFkKCk7IC8vIE9ubHkgbmVlZHMgdG8gYmUg
Y2FsbGVkIGJ5IGNsaWVudHMgdGhhdCBjYW4gdXNlIHRoZSBzYW1lIGhlYXAgZnJvbSBtdWx0aXBs
ZSB0aHJlYWRzLgogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBnYXRoZXJGcm9tQ3VycmVu
dFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYsIHZvaWQqIHN0YWNrQ3VycmVudCk7CisgICAgICAg
IHZvaWQgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmLCBKSVRTdHVi
Um91dGluZVNldCYsIENvZGVCbG9ja1NldCYsIHZvaWQqIHN0YWNrQ3VycmVudCk7CiAKICAgICAg
ICAgY2xhc3MgVGhyZWFkOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRocmVhZCh2b2lk
Kik7CiAgICAgICAgIHZvaWQgcmVtb3ZlQ3VycmVudFRocmVhZCgpOwogCi0gICAgICAgIHZvaWQg
Z2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiwgVGhyZWFkKik7CisgICAg
ICAgIHZvaWQgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiwgVGhyZWFk
KiwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2RlQmxvY2tTZXQmKTsKIAogICAgICAgICBNdXRleCBt
X3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXg7CiAgICAgICAgIFRocmVhZCogbV9yZWdpc3RlcmVkVGhy
ZWFkczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxs
RnJhbWUuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDExICsxMTYsMTEg
QEAgQ29kZU9yaWdpbiBDYWxsRnJhbWU6OmNvZGVPcmlnaW4oKQogICAgIHJldHVybiBDb2RlT3Jp
Z2luKGxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKIH0KIAotUmVnaXN0ZXIqIENhbGxGcmFt
ZTo6ZnJhbWVFeHRlbnRJbnRlcm5hbCgpCitSZWdpc3RlciogQ2FsbEZyYW1lOjp0b3BPZkZyYW1l
SW50ZXJuYWwoKQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+Y29kZUJsb2Nr
KCk7CiAgICAgQVNTRVJUKGNvZGVCbG9jayk7Ci0gICAgcmV0dXJuIHJlZ2lzdGVycygpICsgdmly
dHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29kZUJsb2NrLT5mcmFtZVJlZ2lzdGVyQ291bnQoKSkub2Zm
c2V0KCk7CisgICAgcmV0dXJuIHJlZ2lzdGVycygpICsgY29kZUJsb2NrLT5zdGFja1BvaW50ZXJP
ZmZzZXQoKTsKIH0KIAogSlNHbG9iYWxPYmplY3QqIENhbGxGcmFtZTo6dm1FbnRyeUdsb2JhbE9i
amVjdCgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1l
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxG
cmFtZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvQ2FsbEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NiwxNSArMTc2LDEzIEBAIG5h
bWVzcGFjZSBKU0MgIHsKICAgICAgICAgLy8gQ29kZU9yaWdpbigwKSBpZiB3ZSdyZSBpbiBuYXRp
dmUgY29kZS4KICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKCk7CiAKLSAgICAgICAgUmVn
aXN0ZXIqIGZyYW1lRXh0ZW50KCkKKyAgICAgICAgUmVnaXN0ZXIqIHRvcE9mRnJhbWUoKQogICAg
ICAgICB7CiAgICAgICAgICAgICBpZiAoaXNWTUVudHJ5U2VudGluZWwoKSB8fCAhY29kZUJsb2Nr
KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdGVycygpIC0gMTsKLSAgICAgICAgICAg
IHJldHVybiBmcmFtZUV4dGVudEludGVybmFsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
Z2lzdGVycygpOworICAgICAgICAgICAgcmV0dXJuIHRvcE9mRnJhbWVJbnRlcm5hbCgpOwogICAg
ICAgICB9CiAgICAgCi0gICAgICAgIFJlZ2lzdGVyKiBmcmFtZUV4dGVudEludGVybmFsKCk7Ci0K
ICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBJbnN0cnVjdGlvbiogY3VycmVudFZQQygp
IGNvbnN0CiAgICAgICAgIHsKQEAgLTMxOCw2ICszMTYsOCBAQCBuYW1lc3BhY2UgSlNDICB7CiAg
ICAgICAgIEV4ZWNTdGF0ZSgpOwogICAgICAgICB+RXhlY1N0YXRlKCk7CiAKKyAgICAgICAgUmVn
aXN0ZXIqIHRvcE9mRnJhbWVJbnRlcm5hbCgpOworCiAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcg
YXJlIGZvciBpbnRlcm5hbCB1c2UgaW4gZGVidWdnaW5nIGFuZCB2ZXJpZmljYXRpb24KICAgICAg
ICAgLy8gY29kZSBvbmx5IGFuZCBub3QgbWVhbnQgYXMgYW4gQVBJIGZvciBnZW5lcmFsIHVzYWdl
OgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcg
QEAKICNpbmNsdWRlICJSZWdFeHBQcm90b3R5cGUuaCIKICNpbmNsdWRlICJSZWdpc3Rlci5oIgog
I2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAj
aW5jbHVkZSAiU3RhY2tWaXNpdG9yLmgiCiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24u
aCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCkBAIC03NCw2ICs3NSw3IEBACiAjaW5jbHVk
ZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0
cy5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5n
UHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L1dURlRocmVhZERhdGEuaD4KQEAgLTg5LDIyICs5MSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CiAKIG5hbWVzcGFjZSBKU0MgewogCi1JbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGU6OkVy
cm9ySGFuZGxpbmdNb2RlKEV4ZWNTdGF0ZSAqZXhlYykKLSAgICA6IG1faW50ZXJwcmV0ZXIoKmV4
ZWMtPmludGVycHJldGVyKCkpCi17Ci0gICAgaWYgKCFtX2ludGVycHJldGVyLm1fZXJyb3JIYW5k
bGluZ01vZGVSZWVudHJ5KQotICAgICAgICBtX2ludGVycHJldGVyLnN0YWNrKCkuZW5hYmxlRXJy
b3JTdGFja1Jlc2VydmUoKTsKLSAgICBtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVS
ZWVudHJ5Kys7Ci19Ci0KLUludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZTo6fkVycm9ySGFu
ZGxpbmdNb2RlKCkKLXsKLSAgICBtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVSZWVu
dHJ5LS07Ci0gICAgQVNTRVJUKG1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5nTW9kZVJlZW50
cnkgPj0gMCk7Ci0gICAgaWYgKCFtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVSZWVu
dHJ5KQotICAgICAgICBtX2ludGVycHJldGVyLnN0YWNrKCkuZGlzYWJsZUVycm9yU3RhY2tSZXNl
cnZlKCk7Ci19Ci0KIEpTVmFsdWUgZXZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBp
ZiAoIWNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKQpAQCAtMTUyLDIyICsxMzgsMjUgQEAgSlNW
YWx1ZSBldmFsKENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgIHJldHVybiBpbnRlcnByZXRlci0+
ZXhlY3V0ZShldmFsLCBjYWxsRnJhbWUsIHRoaXNWYWx1ZSwgY2FsbGVyU2NvcGVDaGFpbik7CiB9
CiAKLUNhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBKU1N0YWNrKiBzdGFjaywgSlNWYWx1ZSBhcmd1bWVudHMsIGludCBmaXJzdEZyZWVS
ZWdpc3RlcikKK0NhbGxGcmFtZSogc2l6ZUZyYW1lRm9yVmFyYXJncyhDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSlNTdGFjayogc3RhY2ssIEpTVmFsdWUgYXJndW1lbnRzLCBpbnQgZmlyc3RGcmVlUmVn
aXN0ZXIpCiB7CiAgICAgaWYgKCFhcmd1bWVudHMpIHsgLy8gZi5hcHBseSh4LCBhcmd1bWVudHMp
LCB3aXRoIGFyZ3VtZW50cyB1bm1vZGlmaWVkLgogICAgICAgICB1bnNpZ25lZCBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcyA9IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMo
KTsKLSAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShj
YWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSBhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcyAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSAxKTsKLSAgICAg
ICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID4gQXJndW1lbnRzOjpNYXhBcmd1bWVu
dHMgKyAxIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewotICAg
ICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3JlYXRl
U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25lZCBwYWRkZWRD
YWxsZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVu
dFJlZ2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBhcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcyArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyAxKTsKKyAgICAgICAgQ2FsbEZy
YW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVy
cygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAoYXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyArIDEgfHwgIXN0YWNrLT5l
bnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAgICAgICAg
ICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJldHVy
biAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiAgICAgfQogCiAg
ICAgaWYgKGFyZ3VtZW50cy5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgIENhbGxGcmFt
ZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMo
KSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gMSAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUg
LSAxKTsKLSAgICAgICAgaWYgKCFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygp
KSkgewotICAgICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFt
ZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25l
ZCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA9IDE7CisgICAgICAgIHVuc2lnbmVkIHBhZGRl
ZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25t
ZW50UmVnaXN0ZXJzKCksICAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBhcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyAxKTsKKyAgICAgICAgQ2Fs
bEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lz
dGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAoIXN0YWNrLT5l
bnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAgICAgICAg
ICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJldHVy
biAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC0xODEsOSAr
MTcwLDEwIEBAIENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKEMKICAgICBp
ZiAoYXNPYmplY3QoYXJndW1lbnRzKS0+Y2xhc3NJbmZvKCkgPT0gQXJndW1lbnRzOjppbmZvKCkp
IHsKICAgICAgICAgQXJndW1lbnRzKiBhcmdzT2JqZWN0ID0gYXNBcmd1bWVudHMoYXJndW1lbnRz
KTsKICAgICAgICAgdW5zaWduZWQgYXJnQ291bnQgPSBhcmdzT2JqZWN0LT5sZW5ndGgoY2FsbEZy
YW1lKTsKLSAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0
ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSBDYWxsRnJhbWU6
Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsKLSAgICAgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1l
bnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJz
KCkpKSB7Ci0gICAgICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZy
YW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAgICAgIHVuc2ln
bmVkIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0
YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIC1maXJzdEZyZWVSZWdpc3RlciArIENhbGxGcmFtZTo6
b2Zmc2V0Rm9yKGFyZ0NvdW50ICsgMSkpOworICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFt
ZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgLSBwYWRkZWRDYWxs
ZWVGcmFtZU9mZnNldCk7CisgICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJn
dW1lbnRzIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3Rl
cnMoKSkpIHsKKyAgICAgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7
CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbmV3Q2Fs
bEZyYW1lOwpAQCAtMTkyLDkgKzE4MiwxMCBAQCBDYWxsRnJhbWUqIHNpemVBbmRBbGxvY0ZyYW1l
Rm9yVmFyYXJncyhDCiAgICAgaWYgKGlzSlNBcnJheShhcmd1bWVudHMpKSB7CiAgICAgICAgIEpT
QXJyYXkqIGFycmF5ID0gYXNBcnJheShhcmd1bWVudHMpOwogICAgICAgICB1bnNpZ25lZCBhcmdD
b3VudCA9IGFycmF5LT5sZW5ndGgoKTsKLSAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUg
PSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVn
aXN0ZXIgLSBDYWxsRnJhbWU6Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsKLSAgICAgICAgaWYg
KGFyZ0NvdW50ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0Nh
bGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7Ci0gICAgICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhy
b3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1l
KSk7CisgICAgICAgIHVuc2lnbmVkIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3Vu
ZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIC1maXJzdEZyZWVSZWdp
c3RlciArIENhbGxGcmFtZTo6b2Zmc2V0Rm9yKGFyZ0NvdW50ICsgMSkpOworICAgICAgICBDYWxs
RnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0
ZXJzKCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7CisgICAgICAgIGlmIChhcmdDb3VudCA+
IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3
Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKKyAgICAgICAgICAgIHRocm93U3RhY2tPdmVyZmxv
d0Vycm9yKGNhbGxGcmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwpAQCAtMjAyLDkgKzE5MywxMCBAQCBDYWxsRnJhbWUq
IHNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhDCiAKICAgICBKU09iamVjdCogYXJnT2JqZWN0
ID0gYXNPYmplY3QoYXJndW1lbnRzKTsKICAgICB1bnNpZ25lZCBhcmdDb3VudCA9IGFyZ09iamVj
dC0+Z2V0KGNhbGxGcmFtZSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKS50b1VJ
bnQzMihjYWxsRnJhbWUpOwotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1l
OjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gQ2Fs
bEZyYW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7Ci0gICAgaWYgKGFyZ0NvdW50ID4gQXJn
dW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+cmVnaXN0
ZXJzKCkpKSB7Ci0gICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJh
bWUsICBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAgdW5zaWduZWQg
cGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tB
bGlnbm1lbnRSZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lzdGVyICsgQ2FsbEZyYW1lOjpvZmZz
ZXRGb3IoYXJnQ291bnQgKyAxKSk7CisgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxs
RnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVP
ZmZzZXQpOworICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzIHx8ICFz
dGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKKyAg
ICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC00MjEsNyArNDEzLDYgQEAg
c3RhdGljIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrVmlzaXRvcgogewogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gdmlzaXRvci0+Y2FsbEZyYW1lKCk7CiAgICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSB2aXNpdG9yLT5jb2RlQmxvY2soKTsKLSAgICBDb2RlQmxvY2sqIG9sZENvZGVCbG9j
ayA9IGNvZGVCbG9jazsKICAgICBKU1Njb3BlKiBzY29wZSA9IGNhbGxGcmFtZS0+c2NvcGUoKTsK
IAogICAgIGlmIChEZWJ1Z2dlciogZGVidWdnZXIgPSBjYWxsRnJhbWUtPnZtRW50cnlHbG9iYWxP
YmplY3QoKS0+ZGVidWdnZXIoKSkgewpAQCAtNDMyLDE2ICs0MjMsMTYgQEAgc3RhdGljIGJvb2wg
dW53aW5kQ2FsbEZyYW1lKFN0YWNrVmlzaXRvcgogICAgIH0KIAogICAgIEpTVmFsdWUgYWN0aXZh
dGlvbjsKLSAgICBpZiAob2xkQ29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSAm
JiBvbGRDb2RlQmxvY2stPm5lZWRzQWN0aXZhdGlvbigpKSB7CisgICAgaWYgKGNvZGVCbG9jay0+
Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUgJiYgY29kZUJsb2NrLT5uZWVkc0FjdGl2YXRpb24o
KSkgewogI2lmIEVOQUJMRShERkdfSklUKQogICAgICAgICBSRUxFQVNFX0FTU0VSVCghdmlzaXRv
ci0+aXNJbmxpbmVkRnJhbWUoKSk7CiAjZW5kaWYKLSAgICAgICAgYWN0aXZhdGlvbiA9IGNhbGxG
cmFtZS0+dW5jaGVja2VkUihvbGRDb2RlQmxvY2stPmFjdGl2YXRpb25SZWdpc3RlcigpLm9mZnNl
dCgpKS5qc1ZhbHVlKCk7CisgICAgICAgIGFjdGl2YXRpb24gPSBjYWxsRnJhbWUtPnVuY2hlY2tl
ZFIoY29kZUJsb2NrLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKS5vZmZzZXQoKSkuanNWYWx1ZSgpOwog
ICAgICAgICBpZiAoYWN0aXZhdGlvbikKICAgICAgICAgICAgIGpzQ2FzdDxKU0FjdGl2YXRpb24q
PihhY3RpdmF0aW9uKS0+dGVhck9mZigqc2NvcGUtPnZtKCkpOwogICAgIH0KIAotICAgIGlmIChv
bGRDb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlICYmIG9sZENvZGVCbG9jay0+
dXNlc0FyZ3VtZW50cygpKSB7CisgICAgaWYgKGNvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5j
dGlvbkNvZGUgJiYgY29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpIHsKICAgICAgICAgaWYgKEFy
Z3VtZW50cyogYXJndW1lbnRzID0gdmlzaXRvci0+ZXhpc3RpbmdBcmd1bWVudHMoKSkgewogICAg
ICAgICAgICAgaWYgKGFjdGl2YXRpb24pCiAgICAgICAgICAgICAgICAgYXJndW1lbnRzLT5kaWRU
ZWFyT2ZmQWN0aXZhdGlvbihjYWxsRnJhbWUsIGpzQ2FzdDxKU0FjdGl2YXRpb24qPihhY3RpdmF0
aW9uKSk7CkBAIC00NTUsMTEgKzQ0Niw3IEBAIHN0YXRpYyBib29sIHVud2luZENhbGxGcmFtZShT
dGFja1Zpc2l0b3IKICAgICB9CiAKICAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gY2FsbEZy
YW1lLT5jYWxsZXJGcmFtZSgpOwotICAgIGlmIChjYWxsZXJGcmFtZS0+aXNWTUVudHJ5U2VudGlu
ZWwoKSkgewotICAgICAgICBjYWxsRnJhbWUtPnZtKCkudG9wQ2FsbEZyYW1lID0gY2FsbGVyRnJh
bWUtPnZtRW50cnlTZW50aW5lbENhbGxlckZyYW1lKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuICFjYWxsZXJGcmFtZS0+aXNWTUVu
dHJ5U2VudGluZWwoKTsKIH0KIAogc3RhdGljIFN0YWNrRnJhbWVDb2RlVHlwZSBnZXRTdGFja0Zy
YW1lQ29kZVR5cGUoU3RhY2tWaXNpdG9yJiB2aXNpdG9yKQpAQCAtNjYyLDcgKzY0OSwxNyBAQCBw
cml2YXRlOgogCiBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8qIEludGVycHJldGVyOjp1bndpbmQo
Q2FsbEZyYW1lKiYgY2FsbEZyYW1lLCBKU1ZhbHVlJiBleGNlcHRpb25WYWx1ZSkKIHsKKyAgICBp
ZiAoY2FsbEZyYW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpKSB7CisgICAgICAgIC8vIFRoaXMgaGFw
cGVucyB3aGVuIHdlIHRocm93IHN0YWNrIG92ZXJmbG93IGluIGEgZnVuY3Rpb24gdGhhdCBpcyBj
YWxsZWQKKyAgICAgICAgLy8gZGlyZWN0bHkgZnJvbSBjYWxsVG9KYXZhU2NyaXB0LiBTdGFjayBv
dmVyZmxvdyB0aHJvd3MgdGhlIGV4Y2VwdGlvbiBpbiB0aGUKKyAgICAgICAgLy8gY29udGV4dCBv
ZiB0aGUgY2FsbGVyLiBJbiB0aGF0IGNhc2UgdGhlIGNhbGxlciBpcyB0aGUgc2VudGluZWwgZnJh
bWUuIFRoZQorICAgICAgICAvLyByaWdodCB0aGluZyB0byBkbyBpcyB0byBwcmV0ZW5kIHRoYXQg
dGhlIGV4Y2VwdGlvbiBpcyB1bmNhdWdodCBzbyB0aGF0IHdlCisgICAgICAgIC8vIGdvIHRvIHRo
ZSB1bmNhdWdodCBleGNlcHRpb24gaGFuZGxlciwgd2hpY2ggcmV0dXJucyB0aHJvdWdoIGNhbGxU
b0phdmFTY3JpcHQuCisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKICAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CisgICAgQVNTRVJUKGNvZGVC
bG9jayk7CiAgICAgYm9vbCBpc1Rlcm1pbmF0aW9uID0gZmFsc2U7CiAKICAgICBBU1NFUlQoIWV4
Y2VwdGlvblZhbHVlLmlzRW1wdHkoKSk7CkBAIC03NjcsNyArNzY0LDYgQEAgSlNWYWx1ZSBJbnRl
cnByZXRlcjo6ZXhlY3V0ZShQcm9ncmFtRXhlYwogICAgIGlmICh2bS5pc0NvbGxlY3RvckJ1c3ko
KSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCi0gICAgVk1FbnRyeVNjb3BlIGVudHJ5U2Nv
cGUodm0sIHNjb3BlLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgaWYgKCF2bS5pc1NhZmVUb1JlY3Vy
c2UoKSkKICAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJy
b3IoY2FsbEZyYW1lKSk7CiAKQEAgLTg3NCw2ICs4NzAsOCBAQCBmYWlsZWRKU09OUDoKICAgICAv
LyBJZiB3ZSBnZXQgaGVyZSwgdGhlbiB3ZSBoYXZlIGFscmVhZHkgcHJvdmVuIHRoYXQgdGhlIHNj
cmlwdCBpcyBub3QgYSBKU09OCiAgICAgLy8gb2JqZWN0LgogCisgICAgVk1FbnRyeVNjb3BlIGVu
dHJ5U2NvcGUodm0sIHNjb3BlLT5nbG9iYWxPYmplY3QoKSk7CisKICAgICAvLyBDb21waWxlIHNv
dXJjZSB0byBieXRlY29kZSBpZiBuZWNlc3Nhcnk6CiAgICAgaWYgKEpTT2JqZWN0KiBlcnJvciA9
IHByb2dyYW0tPmluaXRpYWxpemVHbG9iYWxQcm9wZXJ0aWVzKHZtLCBjYWxsRnJhbWUsIHNjb3Bl
KSkKICAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4oY2FsbEZyYW1lLT52bSgpLnRocm93RXhj
ZXB0aW9uKGNhbGxGcmFtZSwgZXJyb3IpKTsKQEAgLTg4OCw5ICs4ODYsNiBAQCBmYWlsZWRKU09O
UDoKIAogICAgIEFTU0VSVChjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSA9PSAxKTsgLy8gMSBw
YXJhbWV0ZXIgZm9yICd0aGlzJy4KIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5lbnRyeUNo
ZWNrKGNvZGVCbG9jaywgMSkpKQotICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0
YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKLQogICAgIFByb3RvQ2FsbEZyYW1lIHByb3Rv
Q2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJsb2NrLCBzY29wZSwgMCwg
dGhpc09iaiwgMSk7CiAKQEAgLTkwMyw3ICs4OTgsNyBAQCBmYWlsZWRKU09OUDoKICAgICAgICAg
U2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAg
ICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cpOwogCi0gICAg
ICAgIHJlc3VsdCA9IHByb2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhlY3V0ZSgmdm0sICZw
cm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpOworICAgICAgICByZXN1bHQg
PSBwcm9ncmFtLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJh
bWUpOwogICAgIH0KIAogICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFi
bGVkUHJvZmlsZXIoKSkKQEAgLTk1MSw5ICs5NDYsNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpl
eGVjdXRlQ2FsbChDYWxsRnJhCiAgICAgaWYgKFVOTElLRUxZKHZtLndhdGNoZG9nLmRpZEZpcmUo
Y2FsbEZyYW1lKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNl
cHRpb24oY2FsbEZyYW1lKTsKIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5lbnRyeUNoZWNr
KG5ld0NvZGVCbG9jaywgYXJnc0NvdW50KSkpCi0gICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJu
KHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwotCiAgICAgUHJvdG9DYWxsRnJh
bWUgcHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChuZXdDb2RlQmxvY2ss
IHNjb3BlLCBmdW5jdGlvbiwgdGhpc1ZhbHVlLCBhcmdzQ291bnQsIGFyZ3MuZGF0YSgpKTsKIApA
QCAtOTY3LDkgKzk1OSwxMiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxs
RnJhCiAKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKICAgICAgICAgaWYgKGlzSlNDYWxs
KQotICAgICAgICAgICAgcmVzdWx0ID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5n
ZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lLCBt
X3N0YWNrLmdldFRvcE9mU3RhY2soKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3Vs
dCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9OYXRpdmVGdW5jdGlvbihyZWludGVycHJldF9jYXN0
PHZvaWQqPihjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0udG9wQ2FsbEZyYW1lLCAmcHJv
dG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKSk7CisgICAgICAgICAgICByZXN1
bHQgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JD
YWxsKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9OYXRpdmVGdW5jdGlvbihy
ZWludGVycHJldF9jYXN0PHZvaWQqPihjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0sICZw
cm90b0NhbGxGcmFtZSkpOworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS0+aGFkRXhjZXB0aW9u
KCkpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0ganNOdWxsKCk7CisgICAgICAgIH0KICAgICB9
CiAKICAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVy
KCkpCkBAIC0xMDE5LDkgKzEwMTQsNiBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVD
b25zdHJ1Y3QoCiAgICAgaWYgKFVOTElLRUxZKHZtLndhdGNoZG9nLmRpZEZpcmUoY2FsbEZyYW1l
KSkpCiAgICAgICAgIHJldHVybiB0aHJvd1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oY2Fs
bEZyYW1lKTsKIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5lbnRyeUNoZWNrKG5ld0NvZGVC
bG9jaywgYXJnc0NvdW50KSkpCi0gICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93U3Rh
Y2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwotCiAgICAgUHJvdG9DYWxsRnJhbWUgcHJvdG9D
YWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChuZXdDb2RlQmxvY2ssIHNjb3BlLCBj
b25zdHJ1Y3RvciwganNVbmRlZmluZWQoKSwgYXJnc0NvdW50LCBhcmdzLmRhdGEoKSk7CiAKQEAg
LTEwMzUsOSArMTAyNyw5IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVj
dCgKIAogICAgICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlLgogICAgICAgICBpZiAoaXNKU0NvbnN0
cnVjdCkKLSAgICAgICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdERhdGEuanMuZnVuY3Rpb25FeGVj
dXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0KCktPmV4ZWN1dGUoJnZtLCAmcHJv
dG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICAgICAgICAgIHJlc3Vs
dCA9IGNvbnN0cnVjdERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2Rl
Rm9yQ29uc3RydWN0KCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwogICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9OYXRpdmVG
dW5jdGlvbihyZWludGVycHJldF9jYXN0PHZvaWQqPihjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5j
dGlvbiksICZ2bS50b3BDYWxsRnJhbWUsICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BP
ZlN0YWNrKCkpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9O
YXRpdmVGdW5jdGlvbihyZWludGVycHJldF9jYXN0PHZvaWQqPihjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiksICZ2bSwgJnByb3RvQ2FsbEZyYW1lKSk7CiAKICAgICAgICAgICAgIGlmICgh
Y2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VChyZXN1bHQuaXNPYmplY3QoKSk7CkBAIC0xMDcyLDExICsxMDY0LDYgQEAgQ2FsbEZyYW1lQ2xv
c3VyZSBJbnRlcnByZXRlcjo6cHJlcGFyZUZvcgogCiAgICAgc2l6ZV90IGFyZ3NDb3VudCA9IGFy
Z3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOwogCi0gICAgaWYgKFVOTElLRUxZKCFtX3N0YWNrLmVu
dHJ5Q2hlY2sobmV3Q29kZUJsb2NrLCBhcmdzQ291bnQpKSkgewotICAgICAgICB0aHJvd1N0YWNr
T3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwotICAgICAgICByZXR1cm4gQ2FsbEZyYW1lQ2xvc3Vy
ZSgpOwotICAgIH0KLQogICAgIHByb3RvQ2FsbEZyYW1lLT5pbml0KG5ld0NvZGVCbG9jaywgc2Nv
cGUsIGZ1bmN0aW9uLCBqc1VuZGVmaW5lZCgpLCBhcmdzQ291bnQsIGFyZ3MpOwogICAgIC8vIFJl
dHVybiB0aGUgc3VjY2Vzc2Z1bCBjbG9zdXJlOgogICAgIENhbGxGcmFtZUNsb3N1cmUgcmVzdWx0
ID0geyBjYWxsRnJhbWUsIHByb3RvQ2FsbEZyYW1lLCBmdW5jdGlvbiwgZnVuY3Rpb25FeGVjdXRh
YmxlLCAmdm0sIHNjb3BlLCBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSwgYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMgfTsKQEAgLTExMDcsNyArMTA5NCw3IEBAIEpTVmFsdWUgSW50ZXJw
cmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2wKICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVj
b3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgV2F0Y2hkb2c6OlNjb3Bl
IHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cpOwogCi0gICAgICAgIHJlc3VsdCA9IGNsb3N1cmUu
ZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2
bSwgY2xvc3VyZS5wcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpOworICAg
ICAgICByZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29k
ZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJvdG9DYWxsRnJhbWUpOwogICAgIH0K
IAogICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIo
KSkKQEAgLTExNzgsOSArMTE2NSw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZh
bEV4ZWN1dGEKIAogICAgIEFTU0VSVChjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSA9PSAxKTsg
Ly8gMSBwYXJhbWV0ZXIgZm9yICd0aGlzJy4KIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5l
bnRyeUNoZWNrKGNvZGVCbG9jaywgMSkpKQotICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0
aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKLQogICAgIFByb3RvQ2FsbEZyYW1l
IHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJsb2NrLCBzY29w
ZSwgMCwgdGhpc1ZhbHVlLCAxKTsKIApAQCAtMTE5Myw3ICsxMTc3LDcgQEAgSlNWYWx1ZSBJbnRl
cnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YQogICAgICAgICBTYW1wbGluZ1Rvb2w6OkNhbGxS
ZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwogICAgICAgICBXYXRjaGRvZzo6U2Nv
cGUgd2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZyk7CiAKLSAgICAgICAgcmVzdWx0ID0gZXZhbC0+
Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNr
LmdldFRvcE9mU3RhY2soKSk7CisgICAgICAgIHJlc3VsdCA9IGV2YWwtPmdlbmVyYXRlZEpJVENv
ZGUoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSk7CiAgICAgfQogCiAgICAgaWYgKExl
Z2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDE1IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAgICAgQVNTRVJUKCFjYWxsRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkpOwog
ICAgICAgICAgICAgdm0tPnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKICAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgZW51bSBWTUVudHJ5U2VudGluZWxPS1RhZyB7IFZNRW50cnlTZW50aW5l
bE9LIH07CisgICAgICAgIEFMV0FZU19JTkxJTkUgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyKFZNKiB2
bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIFZNRW50cnlTZW50aW5lbE9LVGFnKQorICAgICAgICB7
CisgICAgICAgICAgICBBU1NFUlQodm0pOworICAgICAgICAgICAgQVNTRVJUKGNhbGxGcmFtZSk7
CisgICAgICAgICAgICBpZiAoIWNhbGxGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSkKKyAgICAg
ICAgICAgICAgICB2bS0+dG9wQ2FsbEZyYW1lID0gY2FsbEZyYW1lOworICAgICAgICB9CiAgICAg
fTsKIAogICAgIGNsYXNzIEludGVycHJldGVyIHsKQEAgLTE5MCwxNCArMTk5LDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBWTTsKIAogICAgIHB1YmxpYzoKLSAgICAg
ICAgY2xhc3MgRXJyb3JIYW5kbGluZ01vZGUgewotICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAg
ICBKU19FWFBPUlRfUFJJVkFURSBFcnJvckhhbmRsaW5nTW9kZShFeGVjU3RhdGUqKTsKLSAgICAg
ICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIH5FcnJvckhhbmRsaW5nTW9kZSgpOwotICAgICAgICBw
cml2YXRlOgotICAgICAgICAgICAgSW50ZXJwcmV0ZXImIG1faW50ZXJwcmV0ZXI7Ci0gICAgICAg
IH07Ci0KICAgICAgICAgSW50ZXJwcmV0ZXIoVk0gJik7CiAgICAgICAgIH5JbnRlcnByZXRlcigp
OwogICAgICAgICAKQEAgLTIzNyw4ICsyMzgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
CiAgICAgICAgIFNhbXBsaW5nVG9vbCogc2FtcGxlcigpIHsgcmV0dXJuIG1fc2FtcGxlci5nZXQo
KTsgfQogCi0gICAgICAgIGJvb2wgaXNJbkVycm9ySGFuZGxpbmdNb2RlKCkgeyByZXR1cm4gbV9l
cnJvckhhbmRsaW5nTW9kZVJlZW50cnk7IH0KLQogICAgICAgICBORVZFUl9JTkxJTkUgSGFuZGxl
ckluZm8qIHVud2luZChDYWxsRnJhbWUqJiwgSlNWYWx1ZSYpOwogICAgICAgICBORVZFUl9JTkxJ
TkUgdm9pZCBkZWJ1ZyhDYWxsRnJhbWUqLCBEZWJ1Z0hvb2tJRCk7CiAgICAgICAgIEpTU3RyaW5n
KiBzdGFja1RyYWNlQXNTdHJpbmcoRXhlY1N0YXRlKiwgVmVjdG9yPFN0YWNrRnJhbWU+KTsKQEAg
LTI4Niw3ICsyODUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB9OwogCiAgICAgSlNWYWx1ZSBl
dmFsKENhbGxGcmFtZSopOwotICAgIENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJh
cmdzKENhbGxGcmFtZSosIEpTU3RhY2sqLCBKU1ZhbHVlLCBpbnQpOworICAgIENhbGxGcmFtZSog
c2l6ZUZyYW1lRm9yVmFyYXJncyhDYWxsRnJhbWUqLCBKU1N0YWNrKiwgSlNWYWx1ZSwgaW50KTsK
ICAgICB2b2lkIGxvYWRWYXJhcmdzKENhbGxGcmFtZSosIENhbGxGcmFtZSosIEpTVmFsdWUsIEpT
VmFsdWUpOwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzEsOSArMzEsMTEgQEAKIAogI2luY2x1ZGUgIkNvbnNlcnZhdGl2ZVJvb3Rz
LmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcHRpb25zLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKIHN0YXRpYyBzaXplX3Qg
Y29tbWl0dGVkQnl0ZXNDb3VudCA9IDA7CiAKIHN0YXRpYyBNdXRleCYgc3RhY2tTdGF0aXN0aWNz
TXV0ZXgoKQpAQCAtNDEsODcgKzQzLDk4IEBAIHN0YXRpYyBNdXRleCYgc3RhY2tTdGF0aXN0aWNz
TXV0ZXgoKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHN0YXRpY011dGV4LCAoKSk7
CiAgICAgcmV0dXJuIHN0YXRpY011dGV4OwogfSAgICAKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRf
Q19MT09QKQogCi1KU1N0YWNrOjpKU1N0YWNrKFZNJiB2bSwgc2l6ZV90IGNhcGFjaXR5KQorSlNT
dGFjazo6SlNTdGFjayhWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQotICAgICwgbV9lbmQoMCkKICAg
ICAsIG1fdG9wQ2FsbEZyYW1lKHZtLnRvcENhbGxGcmFtZSkKKyNpZiBFTkFCTEUoTExJTlRfQ19M
T09QKQorICAgICwgbV9lbmQoMCkKKyAgICAsIG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJz
KDApCisjZW5kaWYKIHsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIHNpemVfdCBjYXBh
Y2l0eSA9IE9wdGlvbnM6Om1heFBlclRocmVhZFN0YWNrVXNhZ2UoKTsKICAgICBBU1NFUlQoY2Fw
YWNpdHkgJiYgaXNQYWdlQWxpZ25lZChjYXBhY2l0eSkpOwogCi0gICAgbV9yZXNlcnZhdGlvbiA9
IFBhZ2VSZXNlcnZhdGlvbjo6cmVzZXJ2ZShyb3VuZFVwQWxsb2NhdGlvblNpemUoY2FwYWNpdHkg
KiBzaXplb2YoUmVnaXN0ZXIpLCBjb21taXRTaXplKSwgT1NBbGxvY2F0b3I6OkpTVk1TdGFja1Bh
Z2VzKTsKLSAgICB1cGRhdGVTdGFja0xpbWl0KGhpZ2hBZGRyZXNzKCkpOwotICAgIG1fY29tbWl0
RW5kID0gaGlnaEFkZHJlc3MoKTsKKyAgICBtX3Jlc2VydmF0aW9uID0gUGFnZVJlc2VydmF0aW9u
OjpyZXNlcnZlKFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihjb21taXRTaXplLCBjYXBhY2l0eSks
IE9TQWxsb2NhdG9yOjpKU1ZNU3RhY2tQYWdlcyk7CisgICAgc2V0U3RhY2tMaW1pdChoaWdoQWRk
cmVzcygpKTsKKyAgICBtX2NvbW1pdFRvcCA9IGhpZ2hBZGRyZXNzKCk7CiAgICAgCi0gICAgbV9s
YXN0U3RhY2tUb3AgPSBnZXRCYXNlT2ZTdGFjaygpOwotCi0gICAgZGlzYWJsZUVycm9yU3RhY2tS
ZXNlcnZlKCk7CisgICAgbV9sYXN0U3RhY2tUb3AgPSBiYXNlT2ZTdGFjaygpOworI2VuZGlmIC8v
IEVOQUJMRShMTElOVF9DX0xPT1ApCiAKICAgICBtX3RvcENhbGxGcmFtZSA9IDA7CiB9CiAKKyNp
ZiBFTkFCTEUoTExJTlRfQ19MT09QKQogSlNTdGFjazo6fkpTU3RhY2soKQogewotICAgIHZvaWQq
IGhpZ2hBZGRyZXNzID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8Y2hhcio+
KG1fcmVzZXJ2YXRpb24uYmFzZSgpKSArIG1fcmVzZXJ2YXRpb24uc2l6ZSgpKTsKLSAgICBtX3Jl
c2VydmF0aW9uLmRlY29tbWl0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fY29tbWl0RW5kKSwg
cmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oaGlnaEFkZHJlc3MpIC0gcmVpbnRlcnByZXRfY2Fz
dDxpbnRwdHJfdD4obV9jb21taXRFbmQpKTsKLSAgICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudCgt
KHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGhpZ2hBZGRyZXNzKSAtIHJlaW50ZXJwcmV0X2Nh
c3Q8aW50cHRyX3Q+KG1fY29tbWl0RW5kKSkpOworICAgIHB0cmRpZmZfdCBzaXplVG9EZWNvbW1p
dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGhpZ2hBZGRyZXNzKCkpIC0gcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4obV9jb21taXRUb3ApOworICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQocmVp
bnRlcnByZXRfY2FzdDx2b2lkKj4obV9jb21taXRUb3ApLCBzaXplVG9EZWNvbW1pdCk7CisgICAg
YWRkVG9Db21taXR0ZWRCeXRlQ291bnQoLXNpemVUb0RlY29tbWl0KTsKICAgICBtX3Jlc2VydmF0
aW9uLmRlYWxsb2NhdGUoKTsKIH0KIAotYm9vbCBKU1N0YWNrOjpncm93U2xvd0Nhc2UoUmVnaXN0
ZXIqIG5ld0VuZCkKK2Jvb2wgSlNTdGFjazo6Z3Jvd1Nsb3dDYXNlKFJlZ2lzdGVyKiBuZXdUb3BP
ZlN0YWNrKQogeworICAgIFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrV2l0aFJlc2VydmVkWm9uZSA9
IG5ld1RvcE9mU3RhY2sgLSBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVyczsKKwogICAgIC8v
IElmIHdlIGhhdmUgYWxyZWFkeSBjb21taXR0ZWQgZW5vdWdoIG1lbW9yeSB0byBzYXRpc2Z5IHRo
aXMgcmVxdWVzdCwKICAgICAvLyBqdXN0IHVwZGF0ZSB0aGUgZW5kIHBvaW50ZXIgYW5kIHJldHVy
bi4KLSAgICBpZiAobmV3RW5kID49IG1fY29tbWl0RW5kKSB7Ci0gICAgICAgIHVwZGF0ZVN0YWNr
TGltaXQobmV3RW5kKTsKKyAgICBpZiAobmV3VG9wT2ZTdGFja1dpdGhSZXNlcnZlZFpvbmUgPj0g
bV9jb21taXRUb3ApIHsKKyAgICAgICAgc2V0U3RhY2tMaW1pdChuZXdUb3BPZlN0YWNrKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgLy8gQ29tcHV0ZSB0aGUgY2h1bmsgc2l6
ZSBvZiBhZGRpdGlvbmFsIG1lbW9yeSB0byBjb21taXQsIGFuZCBzZWUgaWYgd2UKICAgICAvLyBo
YXZlIGl0IGlzIHN0aWxsIHdpdGhpbiBvdXIgYnVkZ2V0LiBJZiBub3QsIHdlJ2xsIGZhaWwgdG8g
Z3JvdyBhbmQKICAgICAvLyByZXR1cm4gZmFsc2UuCi0gICAgbG9uZyBkZWx0YSA9IHJvdW5kVXBB
bGxvY2F0aW9uU2l6ZShyZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVuZCkgLSByZWlu
dGVycHJldF9jYXN0PGNoYXIqPihuZXdFbmQpLCBjb21taXRTaXplKTsKLSAgICBpZiAocmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpIC0gZGVsdGEgPD0gcmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4obV91c2VhYmxlRW5kKSkKKyAgICBwdHJkaWZmX3QgZGVsdGEgPSByZWludGVycHJl
dF9jYXN0PGNoYXIqPihtX2NvbW1pdFRvcCkgLSByZWludGVycHJldF9jYXN0PGNoYXIqPihuZXdU
b3BPZlN0YWNrV2l0aFJlc2VydmVkWm9uZSk7CisgICAgZGVsdGEgPSBXVEY6OnJvdW5kVXBUb011
bHRpcGxlT2YoY29tbWl0U2l6ZSwgZGVsdGEpOworICAgIFJlZ2lzdGVyKiBuZXdDb21taXRUb3Ag
PSBtX2NvbW1pdFRvcCAtIChkZWx0YSAvIHNpemVvZihSZWdpc3RlcikpOworICAgIGlmIChuZXdD
b21taXRUb3AgPCByZXNlcnZhdGlvblRvcCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICAvLyBPdGhlcndpc2UsIHRoZSBncm93dGggaXMgc3RpbGwgd2l0aGluIG91ciBidWRnZXQuIEdv
IGFoZWFkIGFuZCBjb21taXQKICAgICAvLyBpdCBhbmQgcmV0dXJuIHRydWUuCi0gICAgbV9yZXNl
cnZhdGlvbi5jb21taXQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpIC0gZGVs
dGEsIGRlbHRhKTsKKyAgICBtX3Jlc2VydmF0aW9uLmNvbW1pdChuZXdDb21taXRUb3AsIGRlbHRh
KTsKICAgICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChkZWx0YSk7Ci0gICAgbV9jb21taXRFbmQg
PSByZWludGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KG1fY29tbWl0RW5kKSAtIGRlbHRhKTsKLSAgICB1cGRhdGVTdGFja0xpbWl0KG5ld0VuZCk7Cisg
ICAgbV9jb21taXRUb3AgPSBuZXdDb21taXRUb3A7CisgICAgc2V0U3RhY2tMaW1pdChuZXdUb3BP
ZlN0YWNrKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBKU1N0YWNrOjpnYXRoZXJDb25z
ZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMpCiB7Ci0g
ICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKGdldEJhc2VPZlN0YWNrKCksIGdldFRvcE9mU3RhY2so
KSk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHRvcE9mU3RhY2soKSArIDEsIGhpZ2hBZGRy
ZXNzKCkpOwogfQogCiB2b2lkIEpTU3RhY2s6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNl
cnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgSklUU3R1YlJvdXRpbmVTZXQmIGppdFN0
dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzKQogewotICAgIGNvbnNlcnZhdGl2
ZVJvb3RzLmFkZChnZXRCYXNlT2ZTdGFjaygpLCBnZXRUb3BPZlN0YWNrKCksIGppdFN0dWJSb3V0
aW5lcywgY29kZUJsb2Nrcyk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHRvcE9mU3RhY2so
KSArIDEsIGhpZ2hBZGRyZXNzKCksIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiB9CiAK
IHZvaWQgSlNTdGFjazo6c2FuaXRpemVTdGFjaygpCiB7Ci0gICAgQVNTRVJUKGdldFRvcE9mU3Rh
Y2soKSA8PSBnZXRCYXNlT2ZTdGFjaygpKTsKKyAgICBBU1NFUlQodG9wT2ZTdGFjaygpIDw9IGJh
c2VPZlN0YWNrKCkpOwogICAgIAotICAgIGlmIChtX2xhc3RTdGFja1RvcCA8IGdldFRvcE9mU3Rh
Y2soKSkgewotICAgICAgICBjaGFyKiBiZWdpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1f
bGFzdFN0YWNrVG9wKTsKLSAgICAgICAgY2hhciogZW5kID0gcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4oZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICBpZiAobV9sYXN0U3RhY2tUb3AgPCB0b3BPZlN0YWNr
KCkpIHsKKyAgICAgICAgY2hhciogYmVnaW4gPSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2xh
c3RTdGFja1RvcCArIDEpOworICAgICAgICBjaGFyKiBlbmQgPSByZWludGVycHJldF9jYXN0PGNo
YXIqPih0b3BPZlN0YWNrKCkgKyAxKTsKICAgICAgICAgbWVtc2V0KGJlZ2luLCAwLCBlbmQgLSBi
ZWdpbik7CiAgICAgfQogICAgIAotICAgIG1fbGFzdFN0YWNrVG9wID0gZ2V0VG9wT2ZTdGFjaygp
OworICAgIG1fbGFzdFN0YWNrVG9wID0gdG9wT2ZTdGFjaygpOwogfQogCiB2b2lkIEpTU3RhY2s6
OnJlbGVhc2VFeGNlc3NDYXBhY2l0eSgpCiB7Ci0gICAgcHRyZGlmZl90IGRlbHRhID0gcmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KGhpZ2hBZGRyZXNzKCkpIC0gcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KG1fY29tbWl0RW5kKTsKLSAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KG1fY29t
bWl0RW5kLCBkZWx0YSk7CisgICAgUmVnaXN0ZXIqIGhpZ2hBZGRyZXNzV2l0aFJlc2VydmVkWm9u
ZSA9IGhpZ2hBZGRyZXNzKCkgLSBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVyczsKKyAgICBw
dHJkaWZmX3QgZGVsdGEgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihoaWdoQWRkcmVzc1dpdGhS
ZXNlcnZlZFpvbmUpIC0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRUb3ApOworICAg
IG1fcmVzZXJ2YXRpb24uZGVjb21taXQobV9jb21taXRUb3AsIGRlbHRhKTsKICAgICBhZGRUb0Nv
bW1pdHRlZEJ5dGVDb3VudCgtZGVsdGEpOwotICAgIG1fY29tbWl0RW5kID0gaGlnaEFkZHJlc3Mo
KTsKKyAgICBtX2NvbW1pdFRvcCA9IGhpZ2hBZGRyZXNzV2l0aFJlc2VydmVkWm9uZTsKIH0KIAog
dm9pZCBKU1N0YWNrOjppbml0aWFsaXplVGhyZWFkaW5nKCkKQEAgLTEyOSwxMiArMTQyLDYgQEAg
dm9pZCBKU1N0YWNrOjppbml0aWFsaXplVGhyZWFkaW5nKCkKICAgICBzdGFja1N0YXRpc3RpY3NN
dXRleCgpOwogfQogCi1zaXplX3QgSlNTdGFjazo6Y29tbWl0dGVkQnl0ZUNvdW50KCkKLXsKLSAg
ICBNdXRleExvY2tlciBsb2NrZXIoc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKSk7Ci0gICAgcmV0dXJu
IGNvbW1pdHRlZEJ5dGVzQ291bnQ7Ci19Ci0KIHZvaWQgSlNTdGFjazo6YWRkVG9Db21taXR0ZWRC
eXRlQ291bnQobG9uZyBieXRlQ291bnQpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHN0YWNr
U3RhdGlzdGljc011dGV4KCkpOwpAQCAtMTQyLDI1ICsxNDksNDEgQEAgdm9pZCBKU1N0YWNrOjph
ZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChsbwogICAgIGNvbW1pdHRlZEJ5dGVzQ291bnQgKz0gYnl0
ZUNvdW50OwogfQogCi12b2lkIEpTU3RhY2s6OmVuYWJsZUVycm9yU3RhY2tSZXNlcnZlKCkKK3Zv
aWQgSlNTdGFjazo6c2V0UmVzZXJ2ZWRab25lU2l6ZShzaXplX3QgcmVzZXJ2ZWRab25lU2l6ZSkK
IHsKLSAgICBtX3VzZWFibGVFbmQgPSByZXNlcnZhdGlvbkVuZCgpOworICAgIG1fcmVzZXJ2ZWRa
b25lU2l6ZUluUmVnaXN0ZXJzID0gcmVzZXJ2ZWRab25lU2l6ZSAvIHNpemVvZihSZWdpc3Rlcik7
CisgICAgaWYgKG1fY29tbWl0VG9wID49IChtX2VuZCArIDEpIC0gbV9yZXNlcnZlZFpvbmVTaXpl
SW5SZWdpc3RlcnMpCisgICAgICAgIGdyb3dTbG93Q2FzZShtX2VuZCArIDEpOwogfQorI2VuZGlm
IC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKLXZvaWQgSlNTdGFjazo6ZGlzYWJsZUVycm9yU3Rh
Y2tSZXNlcnZlKCkKKyNpZiAhRU5BQkxFKExMSU5UX0NfTE9PUCkKK1JlZ2lzdGVyKiBKU1N0YWNr
Ojpsb3dBZGRyZXNzKCkgY29uc3QKIHsKLSAgICBjaGFyKiB1c2VhYmxlRW5kID0gcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4ocmVzZXJ2YXRpb25FbmQoKSkgKyBjb21taXRTaXplOwotICAgIG1fdXNl
YWJsZUVuZCA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4odXNlYWJsZUVuZCk7Cisg
ICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOwor
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4obV92bS5zdGFja0xpbWl0KCkp
OworfQogCi0gICAgLy8gQnkgdGhlIHRpbWUgd2UgZ2V0IGhlcmUsIHdlIGFyZSBndWFyYW50ZWVk
IHRvIGJlIGRlc3RydWN0aW5nIHRoZSBsYXN0Ci0gICAgLy8gSW50ZXJwcmV0ZXI6OkVycm9ySGFu
ZGxpbmdNb2RlIHRoYXQgZW5hYmxlZCB0aGlzIHJlc2VydmUgaW4gdGhlIGZpcnN0Ci0gICAgLy8g
cGxhY2UuIFRoYXQgbWVhbnMgdGhlIHN0YWNrIHNwYWNlIGJleW9uZCBtX3VzZWFibGVFbmQgYmVm
b3JlIHdlCi0gICAgLy8gZW5hYmxlZCB0aGUgcmVzZXJ2ZSB3YXMgbm90IHByZXZpb3VzbHkgaW4g
dXNlLiBIZW5jZSwgaXQgaXMgc2FmZSB0bwotICAgIC8vIHNocmluayBiYWNrIHRvIHRoYXQgbV91
c2VhYmxlRW5kLgotICAgIGlmIChtX2VuZCA8IG1fdXNlYWJsZUVuZCkgewotICAgICAgICBBU1NF
UlQobV90b3BDYWxsRnJhbWUtPmZyYW1lRXh0ZW50KCkgPj0gbV91c2VhYmxlRW5kKTsKLSAgICAg
ICAgc2hyaW5rKG1fdXNlYWJsZUVuZCk7Ci0gICAgfQorUmVnaXN0ZXIqIEpTU3RhY2s6OmhpZ2hB
ZGRyZXNzKCkgY29uc3QKK3sKKyAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNH
cm93aW5nRG93bndhcmQoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmVnaXN0ZXIq
Pih3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5vcmlnaW4oKSk7Cit9CisjZW5kaWYgLy8gIUVOQUJM
RShMTElOVF9DX0xPT1ApCisKK3NpemVfdCBKU1N0YWNrOjpjb21taXR0ZWRCeXRlQ291bnQoKQor
eworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHN0YWNr
U3RhdGlzdGljc011dGV4KCkpOworICAgIHJldHVybiBjb21taXR0ZWRCeXRlc0NvdW50OworI2Vs
c2UKKyAgICAvLyBXaGVuIHVzaW5nIHRoZSBDIHN0YWNrLCB3ZSBkb24ndCBrbm93IGhvdyBtYW55
IHN0YWNrIHBhZ2VzIGFyZSBhY3R1YWxseQorICAgIC8vIGNvbW1pdHRlZC4gU28sIHdlIHVzZSB0
aGUgY3VycmVudCBzdGFjayB1c2FnZSBhcyBhbiBlc3RpbWF0ZS4KKyAgICBBU1NFUlQod3RmVGhy
ZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CisgICAgaW50OF90KiBjdXJy
ZW50ID0gcmVpbnRlcnByZXRfY2FzdDxpbnQ4X3QqPigmY3VycmVudCk7CisgICAgaW50OF90KiBo
aWdoID0gcmVpbnRlcnByZXRfY2FzdDxpbnQ4X3QqPih3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5v
cmlnaW4oKSk7CisgICAgcmV0dXJuIGhpZ2ggLSBjdXJyZW50OworI2VuZGlmCiB9CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pT
U3RhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SlNTdGFjay5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvSlNTdGFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNSwxMSArMzUsNiBAQAogI2luY2x1ZGUgPHd0Zi9QYWdlUmVzZXJ2YXRpb24uaD4KICNpbmNs
dWRlIDx3dGYvVk1UYWdzLmg+CiAKLSNkZWZpbmUgRU5BQkxFX0RFQlVHX0pTU1RBQ0sgMAotI2lm
ICFkZWZpbmVkKE5ERUJVRykgJiYgIWRlZmluZWQoRU5BQkxFX0RFQlVHX0pTU1RBQ0spCi0jZGVm
aW5lIEVOQUJMRV9ERUJVR19KU1NUQUNLIDEKLSNlbmRpZgotCiBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIGNsYXNzIENvZGVCbG9ja1NldDsKQEAgLTYxLDcgKzU2LDggQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTU3RhY2spOwogICAgIHB1YmxpYzoKICAg
ICAgICAgZW51bSBDYWxsRnJhbWVIZWFkZXJFbnRyeSB7Ci0gICAgICAgICAgICBDb2RlQmxvY2sg
PSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykgLyBzaXplb2YoUmVnaXN0ZXIpLAorICAgICAgICAg
ICAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgPSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykgLyBzaXpl
b2YoUmVnaXN0ZXIpLAorICAgICAgICAgICAgQ29kZUJsb2NrID0gQ2FsbGVyRnJhbWVBbmRQQ1Np
emUsCiAgICAgICAgICAgICBTY29wZUNoYWluLAogICAgICAgICAgICAgQ2FsbGVlLAogICAgICAg
ICAgICAgQXJndW1lbnRDb3VudCwKQEAgLTcyLDkyICs2OCw4NyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgICAgIEZpcnN0QXJndW1lbnQsCiAgICAgICAgIH07CiAKLSAgICAgICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBkZWZhdWx0Q2FwYWNpdHkgPSA1MTIgKiAxMDI0OwogICAgICAgICBzdGF0
aWMgY29uc3Qgc2l6ZV90IGNvbW1pdFNpemUgPSAxNiAqIDEwMjQ7CiAgICAgICAgIC8vIEFsbG93
IDhrIG9mIGV4Y2VzcyByZWdpc3RlcnMgYmVmb3JlIHdlIHN0YXJ0IHRyeWluZyB0byByZWFwIHRo
ZSBzdGFjawogICAgICAgICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IG1heEV4Y2Vzc0NhcGFjaXR5
ID0gOCAqIDEwMjQ7CiAKLSAgICAgICAgSlNTdGFjayhWTSYsIHNpemVfdCBjYXBhY2l0eSA9IGRl
ZmF1bHRDYXBhY2l0eSk7Ci0gICAgICAgIH5KU1N0YWNrKCk7CisgICAgICAgIEpTU3RhY2soVk0m
KTsKICAgICAgICAgCisgICAgICAgIGJvb2wgZW5zdXJlQ2FwYWNpdHlGb3IoUmVnaXN0ZXIqIG5l
d1RvcE9mU3RhY2spOworCisgICAgICAgIGJvb2wgY29udGFpbnNBZGRyZXNzKFJlZ2lzdGVyKiBh
ZGRyZXNzKSB7IHJldHVybiAobG93QWRkcmVzcygpIDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8IGhp
Z2hBZGRyZXNzKCkpOyB9CisgICAgICAgIHN0YXRpYyBzaXplX3QgY29tbWl0dGVkQnl0ZUNvdW50
KCk7CisKKyNpZiAhRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICAgICAgdm9pZCBnYXRoZXJDb25z
ZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYpIHsgfQorICAgICAgICB2b2lkIGdhdGhl
ckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVTZXQm
LCBDb2RlQmxvY2tTZXQmKSB7IH0KKyAgICAgICAgdm9pZCBzYW5pdGl6ZVN0YWNrKCkgeyB9Cisg
ICAgICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKSB7IH0KKyNlbHNlCisgICAg
ICAgIH5KU1N0YWNrKCk7CisKICAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhD
b25zZXJ2YXRpdmVSb290cyYpOwogICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3Rz
KENvbnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2RlQmxvY2tTZXQmKTsK
ICAgICAgICAgdm9pZCBzYW5pdGl6ZVN0YWNrKCk7CiAKLSAgICAgICAgUmVnaXN0ZXIqIGdldEJh
c2VPZlN0YWNrKCkgY29uc3QKKyAgICAgICAgUmVnaXN0ZXIqIGJhc2VPZlN0YWNrKCkgY29uc3QK
ICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGhpZ2hBZGRyZXNzKCkgLSAxOwogICAgICAg
ICB9CiAKICAgICAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBoaWdoQWRkcmVzcygp
IC0gbG93QWRkcmVzcygpOyB9CiAKLSAgICAgICAgYm9vbCBncm93KFJlZ2lzdGVyKik7Ci0gICAg
ICAgIAotICAgICAgICBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVDb3VudCgpOwogICAgICAg
ICBzdGF0aWMgdm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCk7CiAKLSAgICAgICAgUmVnaXN0ZXIq
IGdldFRvcE9mRnJhbWUoQ2FsbEZyYW1lKik7Ci0gICAgICAgIFJlZ2lzdGVyKiBnZXRTdGFydE9m
RnJhbWUoQ2FsbEZyYW1lKik7Ci0gICAgICAgIFJlZ2lzdGVyKiBnZXRUb3BPZlN0YWNrKCk7Ci0K
LSAgICAgICAgYm9vbCBlbnRyeUNoZWNrKGNsYXNzIENvZGVCbG9jayosIGludCk7CisgICAgICAg
IHZvaWQgc2V0UmVzZXJ2ZWRab25lU2l6ZShzaXplX3QpOwogCi0gICAgICAgIENhbGxGcmFtZSog
cHVzaEZyYW1lKGNsYXNzIENvZGVCbG9jayosIEpTU2NvcGUqLCBpbnQgYXJnc0NvdW50LCBKU09i
amVjdCogY2FsbGVlKTsKLQotICAgICAgICB2b2lkIHBvcEZyYW1lKENhbGxGcmFtZSopOwotCi0g
ICAgICAgIGJvb2wgY29udGFpbnNBZGRyZXNzKFJlZ2lzdGVyKiBhZGRyZXNzKSB7IHJldHVybiAo
bG93QWRkcmVzcygpIDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8PSBoaWdoQWRkcmVzcygpKTsgfQot
Ci0gICAgICAgIHZvaWQgZW5hYmxlRXJyb3JTdGFja1Jlc2VydmUoKTsKLSAgICAgICAgdm9pZCBk
aXNhYmxlRXJyb3JTdGFja1Jlc2VydmUoKTsKLQotI2lmIEVOQUJMRShERUJVR19KU1NUQUNLKQot
ICAgICAgICB2b2lkIGluc3RhbGxGZW5jZShDYWxsRnJhbWUqLCBjb25zdCBjaGFyICpmdW5jdGlv
biA9ICIiLCBpbnQgbGluZU5vID0gMCk7Ci0gICAgICAgIHZvaWQgdmFsaWRhdGVGZW5jZShDYWxs
RnJhbWUqLCBjb25zdCBjaGFyICpmdW5jdGlvbiA9ICIiLCBpbnQgbGluZU5vID0gMCk7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBpbnQgRmVuY2VTaXplID0gNDsKLSNlbHNlIC8vICFFTkFCTEUoREVC
VUdfSlNTVEFDSykKLSAgICAgICAgdm9pZCBpbnN0YWxsRmVuY2UoQ2FsbEZyYW1lKiwgY29uc3Qg
Y2hhciogPSAiIiwgaW50ID0gMCkgeyB9Ci0gICAgICAgIHZvaWQgdmFsaWRhdGVGZW5jZShDYWxs
RnJhbWUqLCBjb25zdCBjaGFyKiA9ICIiLCBpbnQgPSAwKSB7IH0KLSNlbmRpZiAvLyAhRU5BQkxF
KERFQlVHX0pTU1RBQ0spCisgICAgICAgIGlubGluZSBSZWdpc3RlciogdG9wT2ZTdGFjaygpOwor
I2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKICAgICBwcml2YXRlOgorCisjaWYgRU5B
QkxFKExMSU5UX0NfTE9PUCkKICAgICAgICAgUmVnaXN0ZXIqIGxvd0FkZHJlc3MoKSBjb25zdAog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9lbmQ7CisgICAgICAgICAgICByZXR1cm4g
bV9lbmQgKyAxOwogICAgICAgICB9CiAKICAgICAgICAgUmVnaXN0ZXIqIGhpZ2hBZGRyZXNzKCkg
Y29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3RfcHRy
PFJlZ2lzdGVyKj4oc3RhdGljX2Nhc3Q8Y2hhcio+KG1fcmVzZXJ2YXRpb24uYmFzZSgpKSArIG1f
cmVzZXJ2YXRpb24uc2l6ZSgpKTsKICAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgUmVnaXN0ZXIq
IGxvd0FkZHJlc3MoKSBjb25zdDsKKyAgICAgICAgUmVnaXN0ZXIqIGhpZ2hBZGRyZXNzKCkgY29u
c3Q7CisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAotICAgICAgICBSZWdpc3Rlciog
cmVzZXJ2YXRpb25FbmQoKSBjb25zdAorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgICAg
IGlubGluZSBSZWdpc3RlciogdG9wT2ZGcmFtZUZvcihDYWxsRnJhbWUqKTsKKworICAgICAgICBS
ZWdpc3RlciogcmVzZXJ2YXRpb25Ub3AoKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICBj
aGFyKiByZXNlcnZhdGlvbkVuZCA9IHN0YXRpY19jYXN0PGNoYXIqPihtX3Jlc2VydmF0aW9uLmJh
c2UoKSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0ZXIq
PihyZXNlcnZhdGlvbkVuZCk7CisgICAgICAgICAgICBjaGFyKiByZXNlcnZhdGlvblRvcCA9IHN0
YXRpY19jYXN0PGNoYXIqPihtX3Jlc2VydmF0aW9uLmJhc2UoKSk7CisgICAgICAgICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0ZXIqPihyZXNlcnZhdGlvblRvcCk7CiAgICAg
ICAgIH0KIAotI2lmIEVOQUJMRShERUJVR19KU1NUQUNLKQotICAgICAgICBzdGF0aWMgSlNWYWx1
ZSBnZW5lcmF0ZUZlbmNlVmFsdWUoc2l6ZV90IGFyZ0luZGV4KTsKLSAgICAgICAgdm9pZCBpbnN0
YWxsVHJhcHNBZnRlckZyYW1lKENhbGxGcmFtZSopOwotI2Vsc2UKLSAgICAgICAgdm9pZCBpbnN0
YWxsVHJhcHNBZnRlckZyYW1lKENhbGxGcmFtZSopIHsgfQotI2VuZGlmCi0KLSAgICAgICAgYm9v
bCBncm93U2xvd0Nhc2UoUmVnaXN0ZXIqKTsKLSAgICAgICAgdm9pZCBzaHJpbmsoUmVnaXN0ZXIq
KTsKKyAgICAgICAgYm9vbCBncm93KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsKKyAgICAgICAg
Ym9vbCBncm93U2xvd0Nhc2UoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spOworICAgICAgICB2b2lk
IHNocmluayhSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CiAgICAgICAgIHZvaWQgcmVsZWFzZUV4
Y2Vzc0NhcGFjaXR5KCk7CiAgICAgICAgIHZvaWQgYWRkVG9Db21taXR0ZWRCeXRlQ291bnQobG9u
Zyk7CiAKLSAgICAgICAgdm9pZCB1cGRhdGVTdGFja0xpbWl0KFJlZ2lzdGVyKiBuZXdFbmQpOwor
ICAgICAgICB2b2lkIHNldFN0YWNrTGltaXQoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spOworI2Vu
ZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKICAgICAgICAgVk0mIG1fdm07CisgICAgICAg
IENhbGxGcmFtZSomIG1fdG9wQ2FsbEZyYW1lOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAg
ICAgICAgIFJlZ2lzdGVyKiBtX2VuZDsKLSAgICAgICAgUmVnaXN0ZXIqIG1fY29tbWl0RW5kOwot
ICAgICAgICBSZWdpc3RlciogbV91c2VhYmxlRW5kOworICAgICAgICBSZWdpc3RlciogbV9jb21t
aXRUb3A7CiAgICAgICAgIFBhZ2VSZXNlcnZhdGlvbiBtX3Jlc2VydmF0aW9uOwotICAgICAgICBD
YWxsRnJhbWUqJiBtX3RvcENhbGxGcmFtZTsKICAgICAgICAgUmVnaXN0ZXIqIG1fbGFzdFN0YWNr
VG9wOworICAgICAgICBwdHJkaWZmX3QgbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnM7Cisj
ZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogICAgICAgICBmcmllbmQgY2xhc3MgTExJ
bnRPZmZzZXRzRXh0cmFjdG9yOwogICAgIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMuaAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDI2MiArMzMsNjUgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLWlubGluZSBSZWdpc3RlciogSlNTdGFjazo6Z2V0VG9wT2ZGcmFtZShDYWxsRnJhbWUq
IGZyYW1lKQoraW5saW5lIGJvb2wgSlNTdGFjazo6ZW5zdXJlQ2FwYWNpdHlGb3IoUmVnaXN0ZXIq
IG5ld1RvcE9mU3RhY2spCiB7Ci0gICAgaWYgKFVOTElLRUxZKCFmcmFtZSkpCi0gICAgICAgIHJl
dHVybiBnZXRCYXNlT2ZTdGFjaygpOwotICAgIHJldHVybiBmcmFtZS0+ZnJhbWVFeHRlbnQoKTsK
LX0KLQotaW5saW5lIFJlZ2lzdGVyKiBKU1N0YWNrOjpnZXRUb3BPZlN0YWNrKCkKLXsKLSAgICBy
ZXR1cm4gZ2V0VG9wT2ZGcmFtZShtX3RvcENhbGxGcmFtZSk7CisjaWYgRU5BQkxFKExMSU5UX0Nf
TE9PUCkKKyAgICByZXR1cm4gZ3JvdyhuZXdUb3BPZlN0YWNrKTsKKyNlbHNlCisgICAgQVNTRVJU
KHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOworICAgIHJldHVy
biBuZXdUb3BPZlN0YWNrID49IG1fdm0uc3RhY2tMaW1pdCgpOworI2VuZGlmCiB9CiAKLWlubGlu
ZSBSZWdpc3RlciogSlNTdGFjazo6Z2V0U3RhcnRPZkZyYW1lKENhbGxGcmFtZSogZnJhbWUpCi17
Ci0gICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGZyYW1lLT5jYWxsZXJGcmFtZVNraXBwaW5n
Vk1FbnRyeVNlbnRpbmVsKCk7Ci0gICAgcmV0dXJuIGdldFRvcE9mRnJhbWUoY2FsbGVyRnJhbWUp
OwotfQorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKLWlubGluZSBib29sIEpTU3RhY2s6OmVu
dHJ5Q2hlY2soY2xhc3MgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGludCBhcmdzQ291bnQpCitpbmxp
bmUgUmVnaXN0ZXIqIEpTU3RhY2s6OnRvcE9mRnJhbWVGb3IoQ2FsbEZyYW1lKiBmcmFtZSkKIHsK
LSAgICBSZWdpc3Rlciogb2xkRW5kID0gZ2V0VG9wT2ZTdGFjaygpOwotCi0gICAgLy8gRW5zdXJl
IHRoYXQgd2UgaGF2ZSBlbm91Z2ggc3BhY2UgZm9yIHRoZSBwYXJhbWV0ZXJzOgotICAgIHNpemVf
dCBwYWRkZWRBcmdzQ291bnQgPSBhcmdzQ291bnQ7Ci0gICAgaWYgKGNvZGVCbG9jaykgewotICAg
ICAgICBzaXplX3QgbnVtUGFyYW1ldGVycyA9IGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpOwot
ICAgICAgICBpZiAocGFkZGVkQXJnc0NvdW50IDwgbnVtUGFyYW1ldGVycykKLSAgICAgICAgICAg
IHBhZGRlZEFyZ3NDb3VudCA9IG51bVBhcmFtZXRlcnM7Ci0gICAgfQotCi0gICAgUmVnaXN0ZXIq
IG5ld0NhbGxGcmFtZVNsb3QgPSBvbGRFbmQgLSBwYWRkZWRBcmdzQ291bnQgLSAoMiAqIEpTU3Rh
Y2s6OkNhbGxGcmFtZUhlYWRlclNpemUpICsgMTsKLQotI2lmIEVOQUJMRShERUJVR19KU1NUQUNL
KQotICAgIG5ld0NhbGxGcmFtZVNsb3QgLT0gSlNTdGFjazo6RmVuY2VTaXplOworI2lmIEVOQUJM
RShMTElOVF9DX0xPT1ApCisgICAgaWYgKFVOTElLRUxZKCFmcmFtZSkpCisgICAgICAgIHJldHVy
biBiYXNlT2ZTdGFjaygpOwogI2VuZGlmCi0KLSAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3Q2Fs
bEZyYW1lU2xvdDsKLSAgICBpZiAoISFjb2RlQmxvY2spCi0gICAgICAgIG5ld0VuZCArPSB2aXJ0
dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZz
ZXQoKTsKLQotICAgIC8vIEVuc3VyZSB0aGF0IHdlIGhhdmUgdGhlIG5lZWRlZCBzdGFjayBjYXBh
Y2l0eSB0byBwdXNoIHRoZSBuZXcgZnJhbWU6Ci0gICAgaWYgKCFncm93KG5ld0VuZCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmcmFtZS0+
dG9wT2ZGcmFtZSgpIC0gMTsKIH0KIAotaW5saW5lIENhbGxGcmFtZSogSlNTdGFjazo6cHVzaEZy
YW1lKGNsYXNzIENvZGVCbG9jayogY29kZUJsb2NrLCBKU1Njb3BlKiBzY29wZSwgaW50IGFyZ3ND
b3VudCwgSlNPYmplY3QqIGNhbGxlZSkKK2lubGluZSBSZWdpc3RlciogSlNTdGFjazo6dG9wT2ZT
dGFjaygpCiB7Ci0gICAgQVNTRVJUKCEhc2NvcGUpOwotICAgIFJlZ2lzdGVyKiBvbGRFbmQgPSBn
ZXRUb3BPZlN0YWNrKCk7Ci0KLSAgICAvLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBzcGFj
ZSBmb3IgdGhlIHBhcmFtZXRlcnM6Ci0gICAgc2l6ZV90IHBhZGRlZEFyZ3NDb3VudCA9IGFyZ3ND
b3VudDsKLSAgICBpZiAoY29kZUJsb2NrKSB7Ci0gICAgICAgIHNpemVfdCBudW1QYXJhbWV0ZXJz
ID0gY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7Ci0gICAgICAgIGlmIChwYWRkZWRBcmdzQ291
bnQgPCBudW1QYXJhbWV0ZXJzKQotICAgICAgICAgICAgcGFkZGVkQXJnc0NvdW50ID0gbnVtUGFy
YW1ldGVyczsKLSAgICB9Ci0KLSAgICBSZWdpc3RlciogbmV3Q2FsbEZyYW1lU2xvdCA9IG9sZEVu
ZCAtIHBhZGRlZEFyZ3NDb3VudCAtICgyICogSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSkg
KyAxOwotCi0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0gICAgbmV3Q2FsbEZyYW1lU2xvdCAt
PSBKU1N0YWNrOjpGZW5jZVNpemU7Ci0jZW5kaWYKLQotICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBu
ZXdDYWxsRnJhbWVTbG90OwotICAgIGlmICghIWNvZGVCbG9jaykKLSAgICAgICAgbmV3RW5kICs9
IHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNvdW50KCkp
Lm9mZnNldCgpOwotCi0gICAgLy8gRW5zdXJlIHRoYXQgd2UgaGF2ZSB0aGUgbmVlZGVkIHN0YWNr
IGNhcGFjaXR5IHRvIHB1c2ggdGhlIG5ldyBmcmFtZToKLSAgICBpZiAoIWdyb3cobmV3RW5kKSkK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAvLyBDb21wdXRlIHRoZSBhZGRyZXNzIG9mIHRoZSBu
ZXcgVk0gc2VudGluZWwgZnJhbWUgZm9yIHRoaXMgaW52b2NhdGlvbjoKLSAgICBDYWxsRnJhbWUq
IG5ld1ZNRW50cnlTZW50aW5lbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobmV3Q2FsbEZyYW1l
U2xvdCArIHBhZGRlZEFyZ3NDb3VudCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpOwot
ICAgIEFTU0VSVCghIW5ld1ZNRW50cnlTZW50aW5lbEZyYW1lKTsKLQotICAgIC8vIENvbXB1dGUg
dGhlIGFkZHJlc3Mgb2YgdGhlIG5ldyBmcmFtZSBmb3IgdGhpcyBpbnZvY2F0aW9uOgotICAgIENh
bGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobmV3Q2FsbEZyYW1lU2xv
dCk7Ci0gICAgQVNTRVJUKCEhbmV3Q2FsbEZyYW1lKTsKLQotICAgIC8vIFRoZSBjYWxsZXIgZnJh
bWUgc2hvdWxkIGFsd2F5cyBiZSB0aGUgcmVhbCBwcmV2aW91cyBmcmFtZSBvbiB0aGUgc3RhY2ss
Ci0gICAgLy8gYW5kIG5vdCBhIHBvdGVudGlhbCBHbG9iYWxFeGVjIHRoYXQgd2FzIHBhc3NlZCBp
bi4gUG9pbnQgY2FsbGVyRnJhbWUgdG8KLSAgICAvLyB0aGUgdG9wIGZyYW1lIG9uIHRoZSBzdGFj
ay4KLSAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gbV90b3BDYWxsRnJhbWU7Ci0KLSAgICAv
LyBJbml0aWFsaXplIHRoZSBWTSBzZW50aW5lbCBmcmFtZSBoZWFkZXI6Ci0gICAgbmV3Vk1FbnRy
eVNlbnRpbmVsRnJhbWUtPmluaXRpYWxpemVWTUVudHJ5U2VudGluZWxGcmFtZShjYWxsZXJGcmFt
ZSk7Ci0KLSAgICAvLyBJbml0aWFsaXplIHRoZSBjYWxsZWUgZnJhbWUgaGVhZGVyOgotICAgIG5l
d0NhbGxGcmFtZS0+aW5pdChjb2RlQmxvY2ssIDAsIHNjb3BlLCBuZXdWTUVudHJ5U2VudGluZWxG
cmFtZSwgYXJnc0NvdW50LCBjYWxsZWUpOwotCi0gICAgQVNTRVJUKCEhbmV3Q2FsbEZyYW1lLT5z
Y29wZSgpKTsKLQotICAgIC8vIFBhZCBhZGRpdGlvbmFsIGFyZ3MgaWYgbmVlZGVkOgotICAgIC8v
IE5vdGU6IHdlIG5lZWQgdG8gc3VidHJhY3QgMSBmcm9tIGFyZ3NDb3VudCBhbmQgcGFkZGVkQXJn
c0NvdW50IHRvCi0gICAgLy8gZXhjbHVkZSB0aGUgdGhpcyBwb2ludGVyLgotICAgIGZvciAoc2l6
ZV90IGkgPSBhcmdzQ291bnQtMTsgaSA8IHBhZGRlZEFyZ3NDb3VudC0xOyArK2kpCi0gICAgICAg
IG5ld0NhbGxGcmFtZS0+c2V0QXJndW1lbnQoaSwganNVbmRlZmluZWQoKSk7Ci0KLSAgICBpbnN0
YWxsRmVuY2UobmV3Q2FsbEZyYW1lLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKLSAgICB2YWxp
ZGF0ZUZlbmNlKG5ld0NhbGxGcmFtZSwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7Ci0gICAgaW5z
dGFsbFRyYXBzQWZ0ZXJGcmFtZShuZXdDYWxsRnJhbWUpOwotCi0gICAgLy8gUHVzaCB0aGUgbmV3
IGZyYW1lOgotICAgIG1fdG9wQ2FsbEZyYW1lID0gbmV3Q2FsbEZyYW1lOwotCi0gICAgcmV0dXJu
IG5ld0NhbGxGcmFtZTsKLX0KLQotaW5saW5lIHZvaWQgSlNTdGFjazo6cG9wRnJhbWUoQ2FsbEZy
YW1lKiBmcmFtZSkKLXsKLSAgICB2YWxpZGF0ZUZlbmNlKGZyYW1lLCBfX0ZVTkNUSU9OX18sIF9f
TElORV9fKTsKLQotICAgIC8vIFBvcCBvZmYgdGhlIGNhbGxlZSBmcmFtZSBhbmQgdGhlIHNlbnRp
bmVsIGZyYW1lLgotICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBmcmFtZS0+Y2FsbGVyRnJh
bWUoKS0+dm1FbnRyeVNlbnRpbmVsQ2FsbGVyRnJhbWUoKTsKLQotICAgIC8vIFBvcCB0byB0aGUg
Y2FsbGVyOgotICAgIG1fdG9wQ2FsbEZyYW1lID0gY2FsbGVyRnJhbWU7Ci0KLSAgICAvLyBJZiB3
ZSBhcmUgcG9wcGluZyB0aGUgdmVyeSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzdGFjayBpLmUuIG5v
IG1vcmUKLSAgICAvLyBmcmFtZXMgYmVmb3JlIHRoaXMsIHRoZW4gd2UgY2FuIG5vdyBzYWZlbHkg
c2hyaW5rIHRoZSBzdGFjay4gSW4KLSAgICAvLyB0aGlzIGNhc2UsIHdlJ3JlIHNocmlua2luZyBh
bGwgdGhlIHdheSB0byB0aGUgYmVnaW5uaW5nIHNpbmNlIHRoZXJlCi0gICAgLy8gYXJlIG5vIG1v
cmUgZnJhbWVzIG9uIHRoZSBzdGFjay4KLSAgICBpZiAoIWNhbGxlckZyYW1lKQotICAgICAgICBz
aHJpbmsoZ2V0QmFzZU9mU3RhY2soKSk7Ci0KLSAgICBpbnN0YWxsVHJhcHNBZnRlckZyYW1lKGNh
bGxlckZyYW1lKTsKKyAgICByZXR1cm4gdG9wT2ZGcmFtZUZvcihtX3RvcENhbGxGcmFtZSk7CiB9
CiAKLWlubGluZSB2b2lkIEpTU3RhY2s6OnNocmluayhSZWdpc3RlciogbmV3RW5kKQoraW5saW5l
IHZvaWQgSlNTdGFjazo6c2hyaW5rKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogeworICAgIFJl
Z2lzdGVyKiBuZXdFbmQgPSBuZXdUb3BPZlN0YWNrIC0gMTsKICAgICBpZiAobmV3RW5kID49IG1f
ZW5kKQogICAgICAgICByZXR1cm47Ci0gICAgdXBkYXRlU3RhY2tMaW1pdChuZXdFbmQpOwotICAg
IGlmIChtX2VuZCA9PSBnZXRCYXNlT2ZTdGFjaygpICYmIChtX2NvbW1pdEVuZCAtIGdldEJhc2VP
ZlN0YWNrKCkpID49IG1heEV4Y2Vzc0NhcGFjaXR5KQorICAgIHNldFN0YWNrTGltaXQobmV3VG9w
T2ZTdGFjayk7CisgICAgLy8gTm90ZTogQ2xhbmcgY29tcGxhaW5zIG9mIGFuIHVucmVzb2x2ZWQg
bGlua2FnZSB0byBtYXhFeGNlc3NDYXBhY2l0eSBpZgorICAgIC8vIGludm9rZSBzdGQ6Om1heCgp
IHdpdGggaXQgYXMgYW4gYXJndW1lbnQuIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHdlIGZpcnN0Cisg
ICAgLy8gYXNzaWduIHRoZSBjb25zdGFudCB0byBhIGxvY2FsIHZhcmlhYmxlLCBhbmQgdXNlIHRo
ZSBsb2NhbCBpbnN0ZWFkLgorICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NDYXBhY2l0eSA9IEpTU3Rh
Y2s6Om1heEV4Y2Vzc0NhcGFjaXR5OworICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NJblJlZ2lzdGVy
cyA9IHN0ZDo6bWF4KG1heEV4Y2Vzc0NhcGFjaXR5LCBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lz
dGVycyk7CisgICAgaWYgKG1fZW5kID09IGJhc2VPZlN0YWNrKCkgJiYgKGhpZ2hBZGRyZXNzKCkg
LSBtX2NvbW1pdFRvcCkgPj0gbWF4RXhjZXNzSW5SZWdpc3RlcnMpCiAgICAgICAgIHJlbGVhc2VF
eGNlc3NDYXBhY2l0eSgpOwogfQogCi1pbmxpbmUgYm9vbCBKU1N0YWNrOjpncm93KFJlZ2lzdGVy
KiBuZXdFbmQpCitpbmxpbmUgYm9vbCBKU1N0YWNrOjpncm93KFJlZ2lzdGVyKiBuZXdUb3BPZlN0
YWNrKQogeworICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBuZXdUb3BPZlN0YWNrIC0gMTsKICAgICBp
ZiAobmV3RW5kID49IG1fZW5kKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZ3Jv
d1Nsb3dDYXNlKG5ld0VuZCk7CisgICAgcmV0dXJuIGdyb3dTbG93Q2FzZShuZXdUb3BPZlN0YWNr
KTsKIH0KIAotaW5saW5lIHZvaWQgSlNTdGFjazo6dXBkYXRlU3RhY2tMaW1pdChSZWdpc3Rlciog
bmV3RW5kKQoraW5saW5lIHZvaWQgSlNTdGFjazo6c2V0U3RhY2tMaW1pdChSZWdpc3RlciogbmV3
VG9wT2ZTdGFjaykKIHsKKyAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3VG9wT2ZTdGFjayAtIDE7
CiAgICAgbV9lbmQgPSBuZXdFbmQ7Ci0jaWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQot
ICAgIG1fdm0uc2V0SlNTdGFja0xpbWl0KG5ld0VuZCk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9P
UCkKKyAgICBtX3ZtLnNldEpTU3RhY2tMaW1pdChuZXdUb3BPZlN0YWNrKTsKICNlbmRpZgogfQog
Ci0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0spCi1pbmxpbmUgSlNWYWx1ZSBKU1N0YWNrOjpnZW5l
cmF0ZUZlbmNlVmFsdWUoc2l6ZV90IGFyZ0luZGV4KQotewotICAgIHVuc2lnbmVkIGZlbmNlQml0
cyA9IDB4ZmFjZWJhZDAgfCAoKGFyZ0luZGV4KzEpICYgMHhmKTsKLSAgICBKU1ZhbHVlIGZlbmNl
VmFsdWUgPSBKU1ZhbHVlKGZlbmNlQml0cyk7Ci0gICAgcmV0dXJuIGZlbmNlVmFsdWU7Ci19Ci0K
LS8vIFRoZSBKU1N0YWNrIGZlbmNlcyBtZWNoYW5pc20gd29ya3MgYXMgZm9sbG93czoKLS8vIDEu
IEEgZmVuY2UgaXMgYSBudW1iZXIgKEpTU3RhY2s6OkZlbmNlU2l6ZSkgb2YgSlNWYWx1ZXMgdGhh
dCBhcmUgaW5pdGlhbGl6ZWQKLS8vICAgIHdpdGggdmFsdWVzIGdlbmVyYXRlZCBieSBKU1N0YWNr
OjpnZW5lcmF0ZUZlbmNlVmFsdWUoKS4KLS8vIDIuIFdoZW4gcHVzaEZyYW1lKCkgaXMgY2FsbGVk
LCB0aGUgZmVuY2UgaXMgaW5zdGFsbGVkIGFmdGVyIHRoZSBtYXggZXh0ZW50Ci0vLyAgICBvZiB0
aGUgcHJldmlvdXMgdG9wQ2FsbEZyYW1lIGFuZCB0aGUgbGFzdCBhcmcgb2YgdGhlIG5ldyBmcmFt
ZToKLS8vCi0vLyAgICAgICAgICAgICAgICAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8IEZyYW1lIEhl
YWRlciBvZiBwcmV2aW91cyBmcmFtZSAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgIHRvcENhbGxGcmFt
ZSAtLT4gfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAg
ICAgICAgICAgICAgICB8IExvY2FscyBvZiBwcmV2aW91cyBmcmFtZSAgICAgICAgICAgICB8Ci0v
LyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAqKiogdGhlIEZlbmNlICoqKiAgICAgICAg
ICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgVk0gZW50cnkg
c2VudGluZWwgZnJhbWUgaGVhZGVyICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAg
ICAgICB8IEFyZ3Mgb2YgbmV3IGZyYW1lICAgICAgICAgICAgICAgICAgICB8Ci0vLyAgICAgICAg
ICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8v
ICAgICAgICAgICAgICAgICAgICAgfCBGcmFtZSBIZWFkZXIgb2YgbmV3IGZyYW1lICAgICAgICAg
ICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgZnJhbWUgLS0+IHwgTG9jYWxzIG9mIG5ldyBmcmFt
ZSAgICAgICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotLy8KLS8vIDMuIEluIHBvcEZyYW1lKCkgYW5k
IGVsc2V3aGVyZSwgd2UgY2FuIGNhbGwgSlNTdGFjazo6dmFsaWRhdGVGZW5jZSgpIHRvCi0vLyAg
ICBhc3NlcnQgdGhhdCB0aGUgZmVuY2UgY29udGFpbnMgdGhlIHZhbHVlcyB3ZSBleHBlY3QuCi0K
LWlubGluZSB2b2lkIEpTU3RhY2s6Omluc3RhbGxGZW5jZShDYWxsRnJhbWUqIGZyYW1lLCBjb25z
dCBjaGFyICpmdW5jdGlvbiwgaW50IGxpbmVObykKLXsKLSAgICBVTlVTRURfUEFSQU0oZnVuY3Rp
b24pOwotICAgIFVOVVNFRF9QQVJBTShsaW5lTm8pOwotICAgIFJlZ2lzdGVyKiBzdGFydE9mRnJh
bWUgPSBnZXRTdGFydE9mRnJhbWUoZnJhbWUpOwotCi0gICAgLy8gVGhlIGxhc3QgYXJnSW5kZXgg
aXMgYXQ6Ci0gICAgc2l6ZV90IG1heEluZGV4ID0gZnJhbWUtPmFyZ0luZGV4Rm9yUmVnaXN0ZXIo
c3RhcnRPZkZyYW1lKSArIDE7Ci0gICAgc2l6ZV90IHN0YXJ0SW5kZXggPSBtYXhJbmRleCAtIEZl
bmNlU2l6ZTsKLSAgICBmb3IgKHNpemVfdCBpID0gc3RhcnRJbmRleDsgaSA8IG1heEluZGV4OyAr
K2kpIHsKLSAgICAgICAgSlNWYWx1ZSBmZW5jZVZhbHVlID0gZ2VuZXJhdGVGZW5jZVZhbHVlKGkp
OwotICAgICAgICBmcmFtZS0+c2V0QXJndW1lbnQoaSwgZmVuY2VWYWx1ZSk7Ci0gICAgfQotfQot
Ci1pbmxpbmUgdm9pZCBKU1N0YWNrOjp2YWxpZGF0ZUZlbmNlKENhbGxGcmFtZSogZnJhbWUsIGNv
bnN0IGNoYXIgKmZ1bmN0aW9uLCBpbnQgbGluZU5vKQotewotICAgIFVOVVNFRF9QQVJBTShmdW5j
dGlvbik7Ci0gICAgVU5VU0VEX1BBUkFNKGxpbmVObyk7Ci0gICAgQVNTRVJUKCEhZnJhbWUtPnNj
b3BlKCkpOwotICAgIFJlZ2lzdGVyKiBzdGFydE9mRnJhbWUgPSBnZXRTdGFydE9mRnJhbWUoZnJh
bWUpOwotICAgIHNpemVfdCBtYXhJbmRleCA9IGZyYW1lLT5hcmdJbmRleEZvclJlZ2lzdGVyKHN0
YXJ0T2ZGcmFtZSkgKyAxOwotICAgIHNpemVfdCBzdGFydEluZGV4ID0gbWF4SW5kZXggLSBGZW5j
ZVNpemU7Ci0gICAgZm9yIChzaXplX3QgaSA9IHN0YXJ0SW5kZXg7IGkgPCBtYXhJbmRleDsgKytp
KSB7Ci0gICAgICAgIEpTVmFsdWUgZmVuY2VWYWx1ZSA9IGdlbmVyYXRlRmVuY2VWYWx1ZShpKTsK
LSAgICAgICAgSlNWYWx1ZSBhY3R1YWxWYWx1ZSA9IGZyYW1lLT5nZXRBcmd1bWVudFVuc2FmZShp
KTsKLSAgICAgICAgQVNTRVJUKGZlbmNlVmFsdWUgPT0gYWN0dWFsVmFsdWUpOwotICAgIH0KLX0K
LQotLy8gV2hlbiBkZWJ1Z2dpbmcgdGhlIEpTU3RhY2ssIHdlIGluc3RhbGwgYmFkIHZhbHVlcyBh
ZnRlciB0aGUgZXh0ZW50IG9mIHRoZQotLy8gdG9wQ2FsbEZyYW1lIGF0IHRoZSBlbmQgb2YgcHVz
aEZyYW1lKCkgYW5kIHBvcEZyYW1lKCkuIFRoZSBpbnRlbnRpb24gaXMKLS8vIHRvIHRyaWdnZXIg
Y3Jhc2hlcyBpbiB0aGUgZXZlbnQgdGhhdCBtZW1vcnkgaW4gdGhpcyBzdXBwb3NlZGx5IHVudXNl
ZAotLy8gcmVnaW9uIGlzIHJlYWQgYW5kIGNvbnN1bWVkIHdpdGhvdXQgcHJvcGVyIGluaXRpYWxp
emF0aW9uLiBBZnRlciB0aGUgdHJhcAotLy8gd29yZHMgYXJlIGluc3RhbGxlZCwgdGhlIHN0YWNr
IGxvb2tzIGxpa2UgdGhpczoKLS8vCi0vLyAgICAgICAgICAgICAgICAgICAgIHwgLi4uICAgICAg
ICAgICAgICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8IEZyYW1lIEhlYWRl
ciBvZiBmcmFtZSAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgIHRvcENhbGxGcmFtZSAtLT4gfCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8IExvY2FscyBvZiBmcmFt
ZSAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAqKiogVHJhcCB3b3JkcyAq
KiogICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgVW51c2VkIHNwYWNlIC4uLiAg
ICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAuLi4gICAgICAgICAgICAgICAg
ICAgICAgICAgfAotCi1pbmxpbmUgdm9pZCBKU1N0YWNrOjppbnN0YWxsVHJhcHNBZnRlckZyYW1l
KENhbGxGcmFtZSogZnJhbWUpCi17Ci0gICAgUmVnaXN0ZXIqIHRvcE9mRnJhbWUgPSBnZXRUb3BP
ZkZyYW1lKGZyYW1lKTsKLSAgICBjb25zdCBpbnQgc2l6ZU9mVHJhcCA9IDY0OwotICAgIGludDMy
X3QqIHN0YXJ0T2ZUcmFwID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4odG9wT2ZGcmFtZSk7
Ci0gICAgaW50MzJfdCogZW5kT2ZUcmFwID0gc3RhcnRPZlRyYXAgLSBzaXplT2ZUcmFwOwotICAg
IGludDMyX3QqIGVuZE9mQ29tbWl0ZWRNZW1vcnkgPSByZWludGVycHJldF9jYXN0PGludDMyX3Qq
PihtX2NvbW1pdEVuZCk7Ci0KLSAgICAvLyBNYWtlIHN1cmUgd2UncmUgbm90IGV4Y2VlZGluZyB0
aGUgYW1vdW50IG9mIGF2YWlsYWJsZSBtZW1vcnkgdG8gd3JpdGUgdG86Ci0gICAgaWYgKGVuZE9m
VHJhcCA8IGVuZE9mQ29tbWl0ZWRNZW1vcnkpCi0gICAgICAgIGVuZE9mVHJhcCA9IGVuZE9mQ29t
bWl0ZWRNZW1vcnk7Ci0KLSAgICAvLyBMYXkgdGhlIHRyYXBzOgotICAgIGludDMyX3QqIHAgPSBz
dGFydE9mVHJhcDsKLSAgICB3aGlsZSAocCA+IGVuZE9mVHJhcCkKLSAgICAgICAgKnAtLSA9IDB4
YWJhZGNhZmU7IC8vIEEgYmFkIHdvcmQgdG8gdHJpZ2dlciBhIGNyYXNoIGlmIGRlcmVmJ2VkLgot
fQotI2VuZGlmIC8vIEVOQUJMRShERUJVR19KU1NUQUNLKQorI2VuZGlmIC8vIEVOQUJMRShMTElO
VF9DX0xPT1ApCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxG
cmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm90
b0NhbGxGcmFtZS5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiU3RhY2tB
bGlnbm1lbnQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQzLDcgKzQ0LDkgQEAgdm9pZCBQ
cm90b0NhbGxGcmFtZTo6aW5pdChDb2RlQmxvY2sqIGNvZAogICAgICAgICBpZiAocGFkZGVkQXJn
c0NvdW50IDwgbnVtUGFyYW1ldGVycykKICAgICAgICAgICAgIHBhZGRlZEFyZ3NDb3VudCA9IG51
bVBhcmFtZXRlcnM7CiAgICAgfQotICAgIHRoaXMtPnNldFBhZGRlZEFyZ3NDb3VudChwYWRkZWRB
cmdzQ291bnQpOworICAgIC8vIFJvdW5kIHVwIHBhZGRlZEFyZ3NDb3VudCB0byBrZWVwIHRoZSBz
dGFjayBmcmFtZSBzaXplIGFsaWduZWQuCisgICAgcGFkZGVkQXJnc0NvdW50ID0gcm91bmRBcmd1
bWVudENvdW50VG9BbGlnbkZyYW1lKHBhZGRlZEFyZ3NDb3VudCk7CisgICAgdGhpcy0+c2V0UGFk
ZGVkQXJnQ291bnQocGFkZGVkQXJnc0NvdW50KTsKICAgICB0aGlzLT5jbGVhckN1cnJlbnRWUEMo
KTsKICAgICB0aGlzLT5zZXRUaGlzVmFsdWUodGhpc1ZhbHVlKTsKIH0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5oCShyZXZp
c2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9D
YWxsRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBzdHJ1Y3QgUHJvdG9D
YWxsRnJhbWUgewogICAgIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIGNvbnN0IHsg
cmV0dXJuIGFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVlLnBheWxvYWQoKTsgfQogICAgIGludCBh
cmd1bWVudENvdW50KCkgY29uc3QgeyByZXR1cm4gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMo
KSAtIDE7IH0KICAgICB2b2lkIHNldEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKGludCBjb3Vu
dCkgeyBhcmdDb3VudEFuZENvZGVPcmlnaW5WYWx1ZS5wYXlsb2FkKCkgPSBjb3VudDsgfQotICAg
IHZvaWQgc2V0UGFkZGVkQXJnc0NvdW50KHNpemVfdCBhcmdDb3VudCkgeyBwYWRkZWRBcmdDb3Vu
dCA9IGFyZ0NvdW50OyB9CisgICAgdm9pZCBzZXRQYWRkZWRBcmdDb3VudChzaXplX3QgYXJnQ291
bnQpIHsgcGFkZGVkQXJnQ291bnQgPSBhcmdDb3VudDsgfQogCiAgICAgdm9pZCBjbGVhckN1cnJl
bnRWUEMoKSB7IGFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVlLnRhZygpID0gMDsgfQogICAgIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5r
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNr
RmFpbFJldHVyblRodW5rcy5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5U
aHVua3MuaCIKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJBc3NlbWJseUhlbHBlcnMu
aCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIK
KworbmFtZXNwYWNlIEpTQyB7CisKK0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpBcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcygpCisgICAgOiBtX25leHRTaXplKDApCit7Cit9CisKK0FyaXR5
Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjp+QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKSB7IH0K
KworQ29kZUxvY2F0aW9uTGFiZWwqIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpyZXR1cm5Q
Q3NGb3IoCisgICAgVk0mIHZtLCB1bnNpZ25lZCBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGlu
Z1RoaXMpCit7CisgICAgQVNTRVJUKG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyA+
PSAxKTsKKyAgICAKKyAgICBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPSBXVEY6
OnJvdW5kVXBUb011bHRpcGxlT2YoCisgICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCks
IG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyk7CisgICAgCisgICAgeworICAgICAg
ICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBpZiAobnVtRXhw
ZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzIDwgbV9uZXh0U2l6ZSkKKyAgICAgICAgICAgIHJl
dHVybiBtX3JldHVyblBDQXJyYXlzLmxhc3QoKS5nZXQoKTsKKyAgICB9CisgICAgCisgICAgQVNT
RVJUKCFpc0NvbXBpbGF0aW9uVGhyZWFkKCkpOworICAgIAorICAgIG51bUV4cGVjdGVkQXJndW1l
bnRzSW5jbHVkaW5nVGhpcyA9IHN0ZDo6bWF4KG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5n
VGhpcywgbV9uZXh0U2l6ZSAqIDIpOworICAgIAorICAgIEFzc2VtYmx5SGVscGVycyBqaXQoJnZt
LCAwKTsKKyAgICAKKyAgICBWZWN0b3I8QXNzZW1ibHlIZWxwZXJzOjpMYWJlbD4gbGFiZWxzOwor
ICAgIAorICAgIGZvciAodW5zaWduZWQgc2l6ZSA9IG1fbmV4dFNpemU7IHNpemUgPD0gbnVtRXhw
ZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzOyBzaXplICs9IHN0YWNrQWxpZ25tZW50UmVnaXN0
ZXJzKCkpIHsKKyAgICAgICAgbGFiZWxzLmFwcGVuZChqaXQubGFiZWwoKSk7CisgICAgICAgIAor
ICAgICAgICBqaXQubG9hZDMyKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNz
KAorICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
CisgICAgICAgICAgICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxs
ZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsKKyAgICAgICAgICAgICAgICBQ
YXlsb2FkT2Zmc2V0KSwKKyAgICAgICAgICAgIEdQUkluZm86OnJlZ1Q0KTsKKyAgICAgICAgaml0
LmFkZDMyKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoCisgICAg
ICAgICAgICAgICAgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxl
ckZyYW1lQW5kUENTaXplICsgc2l6ZSAtIDEpLAorICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDQs
IEdQUkluZm86OnJlZ1QyKTsKKyAgICAgICAgaml0LmxzaGlmdDMyKEFzc2VtYmx5SGVscGVyczo6
VHJ1c3RlZEltbTMyKDMpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgICAgIGppdC5hZGRQdHIoQXNz
ZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDIpOworICAg
ICAgICBqaXQubG9hZFB0cihHUFJJbmZvOjpyZWdUMiwgR1BSSW5mbzo6cmVnVDIpOworICAgICAg
ICAKKyAgICAgICAgaml0LmFkZFB0cigKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1
c3RlZEltbTMyKHNpemUgKiBzaXplb2YoUmVnaXN0ZXIpKSwKKyAgICAgICAgICAgIEFzc2VtYmx5
SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICAKKyAgICAgICAgLy8gVGh1
bmtzIGxpa2Ugb3VycyB3YW50IHRvIHVzZSB0aGUgcmV0dXJuIFBDIHRvIGZpZ3VyZSBvdXQgd2hl
cmUgdGhpbmdzCisgICAgICAgIC8vIHdlcmUgc2F2ZWQuIFNvLCB3ZSBwYXkgaXQgZm9yd2FyZC4K
KyAgICAgICAgaml0LnN0b3JlMzIoCisgICAgICAgICAgICBHUFJJbmZvOjpyZWdUNCwKKyAgICAg
ICAgICAgIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgICAgICAgICBBc3NlbWJs
eUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgICAgIChKU1N0YWNr
OjpBcmd1bWVudENvdW50IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9m
KFJlZ2lzdGVyKSArCisgICAgICAgICAgICAgICAgUGF5bG9hZE9mZnNldCkpOworICAgICAgICAK
KyAgICAgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDIpOworICAgIH0KKyAgICAKKyAgICBMaW5r
QnVmZmVyIGxpbmtCdWZmZXIodm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7CisgICAgCisgICAg
dW5zaWduZWQgcmV0dXJuUENzU2l6ZSA9IG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhp
cyAvIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgKyAxOworICAgIHN0ZDo6dW5pcXVlX3B0cjxD
b2RlTG9jYXRpb25MYWJlbFtdPiByZXR1cm5QQ3MgPQorICAgICAgICBzdGQ6Om1ha2VfdW5pcXVl
PENvZGVMb2NhdGlvbkxhYmVsW10+KHJldHVyblBDc1NpemUpOworICAgIGZvciAodW5zaWduZWQg
c2l6ZSA9IDA7IHNpemUgPD0gbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzOyBzaXpl
ICs9IHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpIHsKKyAgICAgICAgdW5zaWduZWQgaW5kZXgg
PSBzaXplIC8gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlQoaW5kZXggPCByZXR1cm5QQ3NTaXplKTsKKyAgICAgICAgaWYgKHNpemUgPCBtX25leHRTaXpl
KQorICAgICAgICAgICAgcmV0dXJuUENzW2luZGV4XSA9IG1fcmV0dXJuUENBcnJheXMubGFzdCgp
W2luZGV4XTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuUENzW2luZGV4XSA9IGxp
bmtCdWZmZXIubG9jYXRpb25PZihsYWJlbHNbKHNpemUgLSBtX25leHRTaXplKSAvIHN0YWNrQWxp
Z25tZW50UmVnaXN0ZXJzKCldKTsKKyAgICB9CisKKyAgICBDb2RlTG9jYXRpb25MYWJlbCogcmVz
dWx0ID0gcmV0dXJuUENzLmdldCgpOworCisgICAgeworICAgICAgICBDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBtX3JldHVyblBDQXJyYXlzLmFwcGVuZChzdGQ6
Om1vdmUocmV0dXJuUENzKSk7CisgICAgICAgIG1fcmVmcy5hcHBlbmQoRklOQUxJWkVfQ09ERShs
aW5rQnVmZmVyLCAoIkFyaXR5IGNoZWNrIGZhaWwgcmV0dXJuIHRodW5rcyBmb3IgdXAgdG8gbnVt
QXJncyA9ICV1IiwgbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzKSkpOworICAgICAg
ICBtX25leHRTaXplID0gbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzICsgc3RhY2tB
bGlnbm1lbnRSZWdpc3RlcnMoKTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworQ29kZUxvY2F0aW9uTGFiZWwgQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6OnJldHVyblBD
Rm9yKFZNJiB2bSwgdW5zaWduZWQgc2xvdHNUb0FkZCkKK3sKKyAgICByZXR1cm4gcmV0dXJuUENz
Rm9yKHZtLCBzbG90c1RvQWRkKVtzbG90c1RvQWRkIC8gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMo
KV07Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5r
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3NfaAorI2RlZmluZSBBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rc19oCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAiQ29kZUxvY2F0
aW9uLmgiCisjaW5jbHVkZSAiQ29uY3VycmVudEpJVExvY2suaCIKKyNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgQXJpdHlDaGVja0ZhaWxSZXR1cm5U
aHVua3MgeworcHVibGljOgorICAgIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzKCk7CisgICAg
fkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzKCk7CisgICAgCisgICAgLy8gUmV0dXJucyBhIHBv
aW50ZXIgdG8gYW4gYXJyYXkgb2YgcmV0dXJuIGxhYmVscyBpbmRleGVkIGJ5IG1pc3NpbmdBcmdz
LgorICAgIENvZGVMb2NhdGlvbkxhYmVsKiByZXR1cm5QQ3NGb3IoVk0mLCB1bnNpZ25lZCBudW1F
eHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMpOworICAgIAorICAgIENvZGVMb2NhdGlvbkxh
YmVsIHJldHVyblBDRm9yKFZNJiwgdW5zaWduZWQgc2xvdHNUb0FkZCk7CisgICAgCitwcml2YXRl
OgorICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q29kZUxvY2F0aW9uTGFiZWxbXT4+IG1fcmV0
dXJuUENBcnJheXM7CisgICAgdW5zaWduZWQgbV9uZXh0U2l6ZTsKKyAgICBWZWN0b3I8TWFjcm9B
c3NlbWJsZXJDb2RlUmVmPiBtX3JlZnM7CisgICAgQ29uY3VycmVudEpJVExvY2sgbV9sb2NrOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5k
aWYgLy8gQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3NfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExMCw2ICsxMTAsMTcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2Vy
dElzQ2VsbChHUAogICAgIGJyZWFrcG9pbnQoKTsKICAgICBjaGVja0NlbGwubGluayh0aGlzKTsK
IH0KKwordm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydFRhZ3NJblBsYWNlKCkKK3sKKyAg
ICBKdW1wIG9rID0gYnJhbmNoNjQoRXF1YWwsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rl
ciwgVHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIpKTsKKyAgICBicmVha3BvaW50KCk7CisgICAg
b2subGluayh0aGlzKTsKKyAgICAKKyAgICBvayA9IGJyYW5jaDY0KEVxdWFsLCBHUFJJbmZvOjp0
YWdNYXNrUmVnaXN0ZXIsIFRydXN0ZWRJbW02NChUYWdNYXNrKSk7CisgICAgYnJlYWtwb2ludCgp
OworICAgIG9rLmxpbmsodGhpcyk7Cit9CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQogdm9pZCBB
c3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzSW50MzIoR1BSUmVnIGdwcikKIHsKQEAgLTE0NSw2
ICsxNTYsMTAgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbChHUAogICAg
IGJyZWFrcG9pbnQoKTsKICAgICBjaGVja0NlbGwubGluayh0aGlzKTsKIH0KKwordm9pZCBBc3Nl
bWJseUhlbHBlcnM6OmppdEFzc2VydFRhZ3NJblBsYWNlKCkKK3sKK30KICNlbmRpZiAvLyBVU0Uo
SlNWQUxVRTMyXzY0KQogCiB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0SGFzVmFsaWRD
YWxsRnJhbWUoKQpAQCAtMTYwLDYgKzE3NSwxMyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0
QXNzZXJ0SXNOdWxsKEdQCiAgICAgYnJlYWtwb2ludCgpOwogICAgIGNoZWNrTnVsbC5saW5rKHRo
aXMpOwogfQorCit2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0QXJndW1lbnRDb3VudFNh
bmUoKQoreworICAgIEp1bXAgb2sgPSBicmFuY2gzMihCZWxvdywgcGF5bG9hZEZvcihKU1N0YWNr
OjpBcmd1bWVudENvdW50KSwgVHJ1c3RlZEltbTMyKDEwMDAwMDAwKSk7CisgICAgYnJlYWtwb2lu
dCgpOworICAgIG9rLmxpbmsodGhpcyk7Cit9CiAjZW5kaWYgLy8gIUFTU0VSVF9ESVNBQkxFRAog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsOCArNTgsMzYg
QEAgcHVibGljOgogICAgIENvZGVCbG9jayogY29kZUJsb2NrKCkgeyByZXR1cm4gbV9jb2RlQmxv
Y2s7IH0KICAgICBWTSogdm0oKSB7IHJldHVybiBtX3ZtOyB9CiAgICAgQXNzZW1ibGVyVHlwZV9U
JiBhc3NlbWJsZXIoKSB7IHJldHVybiBtX2Fzc2VtYmxlcjsgfQotICAgIAorCisgICAgdm9pZCBj
aGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpCisgICAgeworICAgICAgICAvLyBUaGlzIGNoZWNr
IGlzIGJvdGggdW5uZWVkZWQgYW5kIGhhcmRlciB0byB3cml0ZSBjb3JyZWN0bHkgZm9yIEFSTTY0
CisjaWYgIWRlZmluZWQoTkRFQlVHKSAmJiAhQ1BVKEFSTTY0KQorICAgICAgICBKdW1wIHN0YWNr
UG9pbnRlckFsaWduZWQgPSBicmFuY2hUZXN0UHRyKFplcm8sIHN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBUcnVzdGVkSW1tMzIoMHhmKSk7CisgICAgICAgIGJyZWFrcG9pbnQoKTsKKyAgICAgICAgc3Rh
Y2tQb2ludGVyQWxpZ25lZC5saW5rKHRoaXMpOworI2VuZGlmCisgICAgfQorCiAjaWYgQ1BVKFg4
Nl82NCkgfHwgQ1BVKFg4NikKKyAgICBzaXplX3QgcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgp
CisgICAgeworICAgICAgICAvLyBQcm9sb2d1ZSBvbmx5IHNhdmVzIHRoZSBmcmFtZVBvaW50ZXJS
ZWdpc3RlcgorICAgICAgICByZXR1cm4gc2l6ZW9mKHZvaWQqKTsKKyAgICB9CisKKyAgICB2b2lk
IGVtaXRGdW5jdGlvblByb2xvZ3VlKCkKKyAgICB7CisgICAgICAgIHB1c2goZnJhbWVQb2ludGVy
UmVnaXN0ZXIpOworICAgICAgICBtb3ZlKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBmcmFtZVBvaW50
ZXJSZWdpc3Rlcik7CisgICAgfQorCisgICAgdm9pZCBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpCisg
ICAgeworICAgICAgICBtb3ZlKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CisgICAgICAgIHBvcChmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CisgICAgfQorCiAgICAg
dm9pZCBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSUmVnIHJlZykKICAgICB7CiAg
ICAgICAgIHBvcChyZWcpOwpAQCAtNzcsNiArMTA1LDI0IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBD
UFUoWDg2XzY0KSB8fCBDUFUoWDg2KQogCiAjaWYgQ1BVKEFSTSkgfHwgQ1BVKEFSTTY0KQorICAg
IHNpemVfdCBwcm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkKKyAgICB7CisgICAgICAgIC8vIFBy
b2xvZ3VlIHNhdmVzIHRoZSBmcmFtZVBvaW50ZXJSZWdpc3RlciBhbmQgbGlua1JlZ2lzdGVyCisg
ICAgICAgIHJldHVybiAyICogc2l6ZW9mKHZvaWQqKTsKKyAgICB9CisKKyAgICB2b2lkIGVtaXRG
dW5jdGlvblByb2xvZ3VlKCkKKyAgICB7CisgICAgICAgIHB1c2hQYWlyKGZyYW1lUG9pbnRlclJl
Z2lzdGVyLCBsaW5rUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKHN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CisgICAgfQorCisgICAgdm9pZCBlbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpCisgICAgeworICAgICAgICBtb3ZlKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIHBvcFBhaXIoZnJhbWVQb2ludGVyUmVnaXN0ZXIs
IGxpbmtSZWdpc3Rlcik7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHByZXNlcnZl
UmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChSZWdpc3RlcklEIHJlZykKICAgICB7CiAgICAgICAgIG1v
dmUobGlua1JlZ2lzdGVyLCByZWcpOwpAQCAtOTQsNiArMTQwLDEyIEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgQ1BVKE1JUFMpCisgICAgc2l6ZV90IHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEo
KQorICAgIHsKKyAgICAgICAgLy8gUHJvbG9ndWUgc2F2ZXMgdGhlIGZyYW1lUG9pbnRlclJlZ2lz
dGVyIGFuZCByZXR1cm5BZGRyZXNzUmVnaXN0ZXIKKyAgICAgICAgcmV0dXJuIDIgKiBzaXplb2Yo
dm9pZCopOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwcmVzZXJ2ZVJldHVybkFk
ZHJlc3NBZnRlckNhbGwoUmVnaXN0ZXJJRCByZWcpCiAgICAgewogICAgICAgICBtb3ZlKHJldHVy
bkFkZHJlc3NSZWdpc3RlciwgcmVnKTsKQEAgLTExMSw2ICsxNjMsMTIgQEAgcHVibGljOgogI2Vu
ZGlmCiAKICNpZiBDUFUoU0g0KQorICAgIHNpemVfdCBwcm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRh
KCkKKyAgICB7CisgICAgICAgIC8vIFByb2xvZ3VlIHNhdmVzIHRoZSBmcmFtZVBvaW50ZXJSZWdp
c3RlciBhbmQgbGluayByZWdpc3RlcgorICAgICAgICByZXR1cm4gMiAqIHNpemVvZih2b2lkKik7
CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHByZXNlcnZlUmV0dXJuQWRkcmVzc0Fm
dGVyQ2FsbChSZWdpc3RlcklEIHJlZykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0c3By
KHJlZyk7CkBAIC0xNTAsMTAgKzIwOCw2IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmVQdHIoZnJv
bSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJG
cmFtZU9mZnNldCgpKSk7CiAgICAgfQogCi0gICAgdm9pZCBlbWl0R2V0UmV0dXJuUENGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVySUQgdG8pCi0gICAgewotICAgICAgICBsb2FkUHRyKEFk
ZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZz
ZXQoKSksIHRvKTsKLSAgICB9CiAgICAgdm9pZCBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhl
YWRlcihSZWdpc3RlcklEIGZyb20pCiAgICAgewogICAgICAgICBzdG9yZVB0cihmcm9tLCBBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0
KCkpKTsKQEAgLTE2Myw2ICsyMTcsMjkgQEAgcHVibGljOgogICAgICAgICBzdG9yZVB0cihmcm9t
LCBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBD
T2Zmc2V0KCkpKTsKICAgICB9CiAKKyAgICAvLyBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXJCZWZv
cmVQcm9sb2d1ZSgpIGFuZCByZWxhdGVkIGFyZSB1c2VkIHRvIGFjY2VzcyBjYWxsZWUgZnJhbWUg
aGVhZGVyCisgICAgLy8gZmllbGRzIGJlZm9yZSB0aGUgY29kZSBmcm9tIGVtaXRGdW5jdGlvblBy
b2xvZ3VlKCkgaGFzIGV4ZWN1dGVkLgorICAgIC8vIEZpcnN0LCB0aGUgYWNjZXNzIGlzIHZpYSB0
aGUgc3RhY2sgcG9pbnRlci4gU2Vjb25kLCB0aGUgYWRkcmVzcyBjYWxjdWxhdGlvbiBtdXN0IGFs
c28gdGFrZQorICAgIC8vIGludG8gYWNjb3VudCB0aGF0IHRoZSBzdGFjayBwb2ludGVyIG1heSBu
b3QgaGF2ZSBiZWVuIGFkanVzdGVkIGRvd24gZm9yIHRoZSByZXR1cm4gUEMgYW5kL29yCisgICAg
Ly8gY2FsbGVyJ3MgZnJhbWUgcG9pbnRlci4gT24gc29tZSBwbGF0Zm9ybXMsIHRoZSBjYWxsZWUg
aXMgcmVzcG9uc2libGUgZm9yIHB1c2hpbmcgdGhlCisgICAgLy8gImxpbmsgcmVnaXN0ZXIiIGNv
bnRhaW5pbmcgdGhlIHJldHVybiBhZGRyZXNzIGluIHRoZSBmdW5jdGlvbiBwcm9sb2d1ZS4KKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgIHZvaWQgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3Jl
UHJvbG9ndWUoR1BSUmVnIGZyb20sIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVudHJ5
KQorICAgIHsKKyAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdp
c3RlciwgZW50cnkgKiBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpIC0g
cHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpKSk7CisgICAgfQorI2Vsc2UKKyAgICB2b2lkIGVt
aXRQdXRQYXlsb2FkVG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZShHUFJSZWcgZnJvbSwg
SlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCisgICAgeworICAgICAgICBzdG9y
ZVB0cihmcm9tLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBlbnRyeSAqIHN0YXRpY19j
YXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBwcm9sb2d1ZVN0YWNrUG9pbnRlckRl
bHRhKCkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBh
eWxvYWQpKSk7CisgICAgfQorCisgICAgdm9pZCBlbWl0UHV0VGFnVG9DYWxsRnJhbWVIZWFkZXJC
ZWZvcmVQcm9sb2d1ZShUcnVzdGVkSW1tMzIgdGFnLCBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJF
bnRyeSBlbnRyeSkKKyAgICB7CisgICAgICAgIHN0b3JlUHRyKHRhZywgQWRkcmVzcyhzdGFja1Bv
aW50ZXJSZWdpc3RlciwgZW50cnkgKiBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdp
c3RlcikpIC0gcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpICsgT0JKRUNUX09GRlNFVE9GKEVu
Y29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSk7CisgICAgfQorI2VuZGlmCisKICAg
ICBKdW1wIGJyYW5jaElmTm90Q2VsbChHUFJSZWcgcmVnKQogICAgIHsKICNpZiBVU0UoSlNWQUxV
RTY0KQpAQCAtMTk0LDcgKzI3MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQWRkcmVzcyB0YWdG
b3IoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlcikKICAgICB7CiAgICAgICAgIEFTU0VS
VCh2aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsKLSAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVv
ZihSZWdpc3RlcikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNC
aXRzLnRhZykpOworICAgICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFRhZ09m
ZnNldCk7CiAgICAgfQogICAgIHN0YXRpYyBBZGRyZXNzIHRhZ0ZvcihpbnQgb3BlcmFuZCkKICAg
ICB7CkBAIC0yMDQsNyArMjgxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBBZGRyZXNzIHBheWxv
YWRGb3IoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlcikKICAgICB7CiAgICAgICAgIEFT
U0VSVCh2aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsKLSAgICAgICAgcmV0dXJuIEFkZHJlc3Mo
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNp
emVvZihSZWdpc3RlcikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnBheWxvYWQpKTsKKyAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3Rlcikg
KyBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CiAgICAgc3RhdGljIEFkZHJlc3MgcGF5bG9hZEZvcihp
bnQgb3BlcmFuZCkKICAgICB7CkBAIC0yOTgsNiArMzc1LDggQEAgcHVibGljOgogICAgIHZvaWQg
aml0QXNzZXJ0SXNDZWxsKEdQUlJlZyk7CiAgICAgdm9pZCBqaXRBc3NlcnRIYXNWYWxpZENhbGxG
cmFtZSgpOwogICAgIHZvaWQgaml0QXNzZXJ0SXNOdWxsKEdQUlJlZyk7CisgICAgdm9pZCBqaXRB
c3NlcnRUYWdzSW5QbGFjZSgpOworICAgIHZvaWQgaml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUo
KTsKICNlbHNlCiAgICAgdm9pZCBqaXRBc3NlcnRJc0ludDMyKEdQUlJlZykgeyB9CiAgICAgdm9p
ZCBqaXRBc3NlcnRJc0pTSW50MzIoR1BSUmVnKSB7IH0KQEAgLTMwNiw2ICszODUsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBqaXRBc3NlcnRJc0NlbGwoR1BSUmVnKSB7IH0KICAgICB2b2lkIGppdEFz
c2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCkgeyB9CiAgICAgdm9pZCBqaXRBc3NlcnRJc051bGwoR1BS
UmVnKSB7IH0KKyAgICB2b2lkIGppdEFzc2VydFRhZ3NJblBsYWNlKCkgeyB9CisgICAgdm9pZCBq
aXRBc3NlcnRBcmd1bWVudENvdW50U2FuZSgpIHsgfQogI2VuZGlmCiAKICAgICAvLyBUaGVzZSBt
ZXRob2RzIGNvbnZlcnQgYmV0d2VlbiBkb3VibGVzLCBhbmQgZG91YmxlcyBib3hlZCBhbmQgSlNW
YWx1ZXMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHJl
dmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDYgKzk1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgYWRk
Q2FsbEFyZ3VtZW50KGFyZzIpOwogICAgIH0KICAgICAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
c2V0dXBBcmd1bWVudHMoVHJ1c3RlZEltbVB0ciBhcmcxLCBHUFJSZWcgYXJnMikKKyAgICB7Cisg
ICAgICAgIHJlc2V0Q2FsbEFyZ3VtZW50cygpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJn
MSk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcyKTsKKyAgICB9CisgICAgCiAgICAgQUxX
QVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwg
R1BSUmVnIGFyZzMpCiAgICAgewogICAgICAgICByZXNldENhbGxBcmd1bWVudHMoKTsKQEAgLTkz
OSw2ICs5NDYsMTIgQEAgcHVibGljOgogICAgICAgICBtb3ZlKGFyZzEsIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRz
KFRydXN0ZWRJbW1QdHIgYXJnMSwgR1BSUmVnIGFyZzIpCisgICAgeworICAgICAgICBtb3ZlKGFy
ZzIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIG1vdmUoYXJnMSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKKyAgICB9CisgICAgCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVw
QXJndW1lbnRzKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKICAgICB7CiAgICAgICAgIHNldHVw
VHdvU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIwLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjE+KGFyZzEsIGFyZzIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9F
eGVjdXRhYmxlQWxsb2NhdG9yLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCwy
MSArNzgsNiBAQCB2b2lkIHJlbGVhc2VFeGVjdXRhYmxlTWVtb3J5KFZNJik7CiAKIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBqaXRBbGxvY2F0aW9uR3JhbnVsZSA9IDMyOwogCi1pbmxpbmUgc2l6ZV90
IHJvdW5kVXBBbGxvY2F0aW9uU2l6ZShzaXplX3QgcmVxdWVzdCwgc2l6ZV90IGdyYW51bGFyaXR5
KQotewotICAgIFJFTEVBU0VfQVNTRVJUKChzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1h
eCgpIC0gZ3JhbnVsYXJpdHkpID4gcmVxdWVzdCk7Ci0gICAgCi0gICAgLy8gUm91bmQgdXAgdG8g
bmV4dCBwYWdlIGJvdW5kYXJ5Ci0gICAgc2l6ZV90IHNpemUgPSByZXF1ZXN0ICsgKGdyYW51bGFy
aXR5IC0gMSk7Ci0gICAgc2l6ZSA9IHNpemUgJiB+KGdyYW51bGFyaXR5IC0gMSk7Ci0gICAgQVNT
RVJUKHNpemUgPj0gcmVxdWVzdCk7Ci0gICAgcmV0dXJuIHNpemU7Ci19Ci0KLX0KLQotbmFtZXNw
YWNlIEpTQyB7Ci0KIHR5cGVkZWYgV1RGOjpNZXRhQWxsb2NhdG9ySGFuZGxlIEV4ZWN1dGFibGVN
ZW1vcnlIYW5kbGU7CiAKICNpZiBFTkFCTEUoQVNTRU1CTEVSKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiBKU0M6Ok1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjpTU0UyQ2hlY2tTdGF0ZSBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uOjpzX3NzZTJDaGVja1N0YXRlID0gTm90Q2hlY2tlZFNTRTI7CiAjZW5kaWYKIAorI2lu
Y2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2Nr
LmgiCiAjaW5jbHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIu
aCIKQEAgLTQyLDExICs0MywxMyBAQCBKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpTU0Uy
Q2hlY2tTCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIK
ICNpbmNsdWRlICJTbG93UGF0aENhbGwuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgog
I2luY2x1ZGUgPHd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oPgogCiB1c2luZyBu
YW1lc3BhY2Ugc3RkOwpAQCAtOTgsNiArMTAxLDcgQEAgdm9pZCBKSVQ6OmVtaXRFbnRlck9wdGlt
aXphdGlvbkNoZWNrKCkKICAgICBBU1NFUlQoIW1fYnl0ZWNvZGVPZmZzZXQpOwogICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uT3B0aW1pemUsIG1fYnl0ZWNvZGVPZmZzZXQpOwogICAgIHNraXBP
cHRpbWl6ZS5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZXR1cm5WYWx1ZUdQUikpOworICAg
IG1vdmUocmV0dXJuVmFsdWVHUFIyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAganVtcChy
ZXR1cm5WYWx1ZUdQUik7CiAgICAgc2tpcE9wdGltaXplLmxpbmsodGhpcyk7CiB9CkBAIC0xMjgs
NiArMTMyLDkgQEAgdm9pZCBKSVQ6OmVtaXRFbnRlck9wdGltaXphdGlvbkNoZWNrKCkKIAogdm9p
ZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogeworICAgIGppdEFzc2VydFRhZ3NJblBs
YWNlKCk7CisgICAgaml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUoKTsKKyAgICAKICAgICBJbnN0
cnVjdGlvbiogaW5zdHJ1Y3Rpb25zQmVnaW4gPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCku
YmVnaW4oKTsKICAgICB1bnNpZ25lZCBpbnN0cnVjdGlvbkNvdW50ID0gbV9jb2RlQmxvY2stPmlu
c3RydWN0aW9ucygpLnNpemUoKTsKIApAQCAtNDk2LDggKzUwMyw3IEBAIENvbXBpbGF0aW9uUmVz
dWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAgICBpZiAobV9yYW5kb21HZW5lcmF0b3IuZ2V0
VWludDMyKCkgJiAxKQogICAgICAgICBub3AoKTsKIAotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVz
c0FmdGVyQ2FsbChyZWdUMik7Ci0gICAgZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIo
cmVnVDIpOworICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgZW1pdFB1dEltbWVkaWF0
ZVRvQ2FsbEZyYW1lSGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0YWNrOjpDb2RlQmxvY2spOwogCiAg
ICAgTGFiZWwgYmVnaW5MYWJlbCh0aGlzKTsKQEAgLTUwNyw3ICs1MTMsNyBAQCBDb21waWxhdGlv
blJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAgICAgc2FtcGxlSW5zdHJ1Y3Rpb24obV9j
b2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkpOwogI2VuZGlmCiAKLSAgICBKdW1wIHN0
YWNrQ2hlY2s7CisgICAgSnVtcCBzdGFja092ZXJmbG93OwogICAgIGlmIChtX2NvZGVCbG9jay0+
Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpIHsKICAgICAgICAgQVNTRVJUKG1fYnl0ZWNvZGVP
ZmZzZXQgPT0gKHVuc2lnbmVkKS0xKTsKICAgICAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmco
KSkgewpAQCAtNTI3LDEyICs1MzMsMTMgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRl
Q29tcGlsZShKSQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgYWRkUHRyKFRy
dXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVyQ291bnRGb3Io
bV9jb2RlQmxvY2spKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdp
c3RlciwgcmVnVDEpOwotICAgICAgICBzdGFja0NoZWNrID0gYnJhbmNoUHRyKEFib3ZlLCBBYnNv
bHV0ZUFkZHJlc3MobV92bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCByZWdUMSk7CisgICAg
ICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2Nr
KSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3RlciwgcmVnVDEpOworICAgICAg
ICBzdGFja092ZXJmbG93ID0gYnJhbmNoUHRyKEFib3ZlLCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+
YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCByZWdUMSk7CiAgICAgfQogCi0gICAgTGFiZWwgZnVu
Y3Rpb25Cb2R5ID0gbGFiZWwoKTsKLSAgICAKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNr
UG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZy
YW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRl
ckFsaWdubWVudCgpOworCiAgICAgcHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpOwogICAgIHByaXZh
dGVDb21waWxlTGlua1Bhc3MoKTsKICAgICBwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpOwpAQCAt
NTQyLDE4ICs1NDksMTUgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShK
SQogCiAgICAgTGFiZWwgYXJpdHlDaGVjazsKICAgICBpZiAobV9jb2RlQmxvY2stPmNvZGVUeXBl
KCkgPT0gRnVuY3Rpb25Db2RlKSB7Ci0gICAgICAgIHN0YWNrQ2hlY2subGluayh0aGlzKTsKKyAg
ICAgICAgc3RhY2tPdmVyZmxvdy5saW5rKHRoaXMpOwogICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0
ID0gMDsKLSAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0
aW9uKG9wZXJhdGlvblN0YWNrQ2hlY2ssIG1fY29kZUJsb2NrKTsKLSNpZm5kZWYgTkRFQlVHCi0g
ICAgICAgIG1fYnl0ZWNvZGVPZmZzZXQgPSAodW5zaWduZWQpLTE7IC8vIFJlc2V0IHRoaXMsIGlu
IG9yZGVyIHRvIGd1YXJkIGl0cyB1c2Ugd2l0aCBBU1NFUlRzLgotI2VuZGlmCi0gICAgICAgIGp1
bXAoZnVuY3Rpb25Cb2R5KTsKKyAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKQorICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIGNhbGxPcGVyYXRp
b25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25UaHJvd1N0YWNrT3Zl
cmZsb3dFcnJvciwgbV9jb2RlQmxvY2spOwogCiAgICAgICAgIGFyaXR5Q2hlY2sgPSBsYWJlbCgp
OwogICAgICAgICBzdG9yZTgoVHJ1c3RlZEltbTMyKDApLCAmbV9jb2RlQmxvY2stPm1fc2hvdWxk
QWx3YXlzQmVJbmxpbmVkKTsKLSAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxs
KHJlZ1QyKTsKLSAgICAgICAgZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIocmVnVDIp
OworICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgICAgICBlbWl0UHV0SW1tZWRp
YXRlVG9DYWxsRnJhbWVIZWFkZXIobV9jb2RlQmxvY2ssIEpTU3RhY2s6OkNvZGVCbG9jayk7CiAK
ICAgICAgICAgbG9hZDMyKHBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCksIHJlZ1Qx
KTsKQEAgLTU2MSwxMCArNTY1LDE2IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNv
bXBpbGUoSkkKIAogICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0ID0gMDsKIAorICAgICAgICBpZiAo
bWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBhZGRQdHIoVHJ1c3Rl
ZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lz
dGVyKTsKICAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0
aW9uKG1fY29kZUJsb2NrLT5tX2lzQ29uc3RydWN0b3IgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0
eUNoZWNrIDogb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2spOworICAgICAgICBpZiAobWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAg
ICAgICBpZiAocmV0dXJuVmFsdWVHUFIgIT0gcmVnVDApCiAgICAgICAgICAgICBtb3ZlKHJldHVy
blZhbHVlR1BSLCByZWdUMCk7CiAgICAgICAgIGJyYW5jaFRlc3QzMihaZXJvLCByZWdUMCkubGlu
a1RvKGJlZ2luTGFiZWwsIHRoaXMpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIobV92bS0+
YXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MtPnJldHVyblBDc0ZvcigqbV92bSwgbV9jb2RlQmxv
Y2stPm51bVBhcmFtZXRlcnMoKSkpLCByZWdUNSk7CisgICAgICAgIGxvYWRQdHIoQmFzZUluZGV4
KHJlZ1Q1LCByZWdUMCwgdGltZXNQdHIoKSksIHJlZ1Q1KTsKICAgICAgICAgZW1pdE5ha2VkQ2Fs
bChtX3ZtLT5nZXRDVElTdHViKGFyaXR5Rml4dXApLmNvZGUoKSk7CiAKICNpZiAhQVNTRVJUX0RJ
U0FCTEVECkBAIC02NTMsMjAgKzY2MywxMiBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZh
dGVDb21waWxlKEpJCiAgICAgICAgIGluZm8uY2FsbGVlR1BSID0gcmVnVDA7CiAgICAgfQogCi0j
aWYgRU5BQkxFKERGR19KSVQpIHx8IEVOQUJMRShMTElOVCkKLSAgICBpZiAoY2FuQmVPcHRpbWl6
ZWRPcklubGluZWQoKQotI2lmIEVOQUJMRShMTElOVCkKLSAgICAgICAgfHwgdHJ1ZQotI2VuZGlm
Ci0gICAgICAgICkgewotICAgICAgICBDb21wYWN0SklUQ29kZU1hcDo6RW5jb2RlciBqaXRDb2Rl
TWFwRW5jb2RlcjsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IDA7IGJ5
dGVjb2RlT2Zmc2V0IDwgbV9sYWJlbHMuc2l6ZSgpOyArK2J5dGVjb2RlT2Zmc2V0KSB7Ci0gICAg
ICAgICAgICBpZiAobV9sYWJlbHNbYnl0ZWNvZGVPZmZzZXRdLmlzU2V0KCkpCi0gICAgICAgICAg
ICAgICAgaml0Q29kZU1hcEVuY29kZXIuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0LCBwYXRjaEJ1ZmZl
ci5vZmZzZXRPZihtX2xhYmVsc1tieXRlY29kZU9mZnNldF0pKTsKLSAgICAgICAgfQotICAgICAg
ICBtX2NvZGVCbG9jay0+c2V0SklUQ29kZU1hcChqaXRDb2RlTWFwRW5jb2Rlci5maW5pc2goKSk7
CisgICAgQ29tcGFjdEpJVENvZGVNYXA6OkVuY29kZXIgaml0Q29kZU1hcEVuY29kZXI7CisgICAg
Zm9yICh1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IDA7IGJ5dGVjb2RlT2Zmc2V0IDwgbV9sYWJl
bHMuc2l6ZSgpOyArK2J5dGVjb2RlT2Zmc2V0KSB7CisgICAgICAgIGlmIChtX2xhYmVsc1tieXRl
Y29kZU9mZnNldF0uaXNTZXQoKSkKKyAgICAgICAgICAgIGppdENvZGVNYXBFbmNvZGVyLmFwcGVu
ZChieXRlY29kZU9mZnNldCwgcGF0Y2hCdWZmZXIub2Zmc2V0T2YobV9sYWJlbHNbYnl0ZWNvZGVP
ZmZzZXRdKSk7CiAgICAgfQotI2VuZGlmCisgICAgbV9jb2RlQmxvY2stPnNldEpJVENvZGVNYXAo
aml0Q29kZU1hcEVuY29kZXIuZmluaXNoKCkpOwogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IHdpdGhBcml0eUNoZWNrOwogICAgIGlmIChtX2NvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5j
dGlvbkNvZGUpCkBAIC02ODcsOCArNjg5LDcgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2
YXRlQ29tcGlsZShKSQogICAgIAogICAgIG1fY29kZUJsb2NrLT5zaHJpbmtUb0ZpdChDb2RlQmxv
Y2s6OkxhdGVTaHJpbmspOwogICAgIG1fY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICBh
ZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShyZXN1bHQsIEpJVENvZGU6OkJhc2VsaW5lSklUKSks
Ci0gICAgICAgIHdpdGhBcml0eUNoZWNrKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJ
VENvZGUocmVzdWx0LCB3aXRoQXJpdHlDaGVjaywgSklUQ29kZTo6QmFzZWxpbmVKSVQpKSk7CiAg
ICAgCiAjaWYgRU5BQkxFKEpJVF9WRVJCT1NFKQogICAgIGRhdGFMb2dGKCJKSVQgZ2VuZXJhdGVk
IGNvZGUgZm9yICVwIGF0IFslcCwgJXApLlxuIiwgbV9jb2RlQmxvY2ssIHJlc3VsdC5leGVjdXRh
YmxlTWVtb3J5KCktPnN0YXJ0KCksIHJlc3VsdC5leGVjdXRhYmxlTWVtb3J5KCktPmVuZCgpKTsK
QEAgLTY5Nyw0MiArNjk4LDYgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGls
ZShKSQogICAgIHJldHVybiBDb21waWxhdGlvblN1Y2Nlc3NmdWw7CiB9CiAKLXZvaWQgSklUOjps
aW5rRm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNGdW5jdGlvbiogY2FsbGVlLCBDb2RlQmxvY2sqIGNh
bGxlckNvZGVCbG9jaywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssIEpJVDo6Q29kZVB0ciBj
b2RlLCBDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbywgVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQpCi17Ci0gICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNhbGxlckNv
ZGVCbG9jayk7Ci0KLSAgICBBU1NFUlQoIWNhbGxMaW5rSW5mby0+aXNMaW5rZWQoKSk7Ci0gICAg
Y2FsbExpbmtJbmZvLT5jYWxsZWUuc2V0KCp2bSwgY2FsbExpbmtJbmZvLT5ob3RQYXRoQmVnaW4s
IGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7Ci0gICAgY2FsbExp
bmtJbmZvLT5sYXN0U2VlbkNhbGxlZS5zZXQoKnZtLCBjYWxsZXJDb2RlQmxvY2stPm93bmVyRXhl
Y3V0YWJsZSgpLCBjYWxsZWUpOwotICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5m
by0+aG90UGF0aE90aGVyLCBjb2RlKTsKLQotICAgIGlmIChjYWxsZWVDb2RlQmxvY2spCi0gICAg
ICAgIGNhbGxlZUNvZGVCbG9jay0+bGlua0luY29taW5nQ2FsbChleGVjLCBjYWxsTGlua0luZm8p
OwotCi0gICAgLy8gUGF0Y2ggdGhlIHNsb3cgcGF0Y2ggc28gd2UgZG8gbm90IGNvbnRpbnVlIHRv
IHRyeSB0byBsaW5rLgotICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKSB7Ci0gICAgICAgIEFT
U0VSVChjYWxsTGlua0luZm8tPmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2FsbAotICAgICAg
ICAgICAgICAgfHwgY2FsbExpbmtJbmZvLT5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNhbGxW
YXJhcmdzKTsKLSAgICAgICAgaWYgKGNhbGxMaW5rSW5mby0+Y2FsbFR5cGUgPT0gQ2FsbExpbmtJ
bmZvOjpDYWxsKSB7Ci0gICAgICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0lu
Zm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1
bmtHZW5lcmF0b3IpLmNvZGUoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQot
ICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8tPmNhbGxSZXR1cm5Mb2Nh
dGlvbiwgdm0tPmdldENUSVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25z
dHJ1Y3QpOwotICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby0+Y2FsbFJldHVy
bkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ29uc3RydWN0VGh1bmtHZW5lcmF0b3Ip
LmNvZGUoKSk7Ci19Ci0KLXZvaWQgSklUOjpsaW5rU2xvd0NhbGwoQ29kZUJsb2NrKiBjYWxsZXJD
b2RlQmxvY2ssIENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvKQotewotICAgIFJlcGF0Y2hCdWZm
ZXIgcmVwYXRjaEJ1ZmZlcihjYWxsZXJDb2RlQmxvY2spOwotCi0gICAgcmVwYXRjaEJ1ZmZlci5y
ZWxpbmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24sIGNhbGxlckNvZGVCbG9jay0+
dm0oKS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotfQot
CiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVycygpCiB7CiAgICAgaWYg
KG1fZXhjZXB0aW9uQ2hlY2tzLmVtcHR5KCkgJiYgbV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZy
YW1lUm9sbGJhY2suZW1wdHkoKSkKQEAgLTc0Miw3ICs3MDcsNyBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVyCiAKICAgICBpZiAoIW1fZXhjZXB0aW9uQ2hlY2tzV2l0
aENhbGxGcmFtZVJvbGxiYWNrLmVtcHR5KCkpIHsKICAgICAgICAgbV9leGNlcHRpb25DaGVja3NX
aXRoQ2FsbEZyYW1lUm9sbGJhY2subGluayh0aGlzKTsKLSAgICAgICAgZW1pdEdldENhbGxlckZy
YW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAg
ICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSk7CiAgICAgICAgIGRvTG9va3VwID0ganVtcCgpOwogICAgIH0KIApAQCAtNzUwLDE5
ICs3MTUsMzMgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlRXhjZXB0aW9uSGFuZGxlcgogICAg
ICAgICBtX2V4Y2VwdGlvbkNoZWNrcy5saW5rKHRoaXMpOwogICAgIAogICAgIC8vIGxvb2t1cEV4
Y2VwdGlvbkhhbmRsZXIgaXMgcGFzc2VkIG9uZSBhcmd1bWVudCwgdGhlIGV4ZWMgKHRoZSBDYWxs
RnJhbWUqKS4KLSAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOworICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSk7CiAKICAgICBpZiAoZG9Mb29rdXAuaXNTZXQoKSkKICAgICAgICAg
ZG9Mb29rdXAubGluayh0aGlzKTsKIAorICAgIG1vdmUoVHJ1c3RlZEltbVB0cih2bSgpKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKKwogI2lmIENQVShYODYpCiAgICAgLy8gRklYTUU6IHNob3Vs
ZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBpbiB0aGUg
U3BlY3VsYXRpdmVKSVQgbGF5ZXIhCiAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwor
ICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCAxKTsKICNlbmRpZgogICAgIG1fY2FsbHMu
YXBwZW5kKENhbGxSZWNvcmQoY2FsbCgpLCAodW5zaWduZWQpLTEsIEZ1bmN0aW9uUHRyKGxvb2t1
cEV4Y2VwdGlvbkhhbmRsZXIpLnZhbHVlKCkpKTsKICAgICBqdW1wVG9FeGNlcHRpb25IYW5kbGVy
KCk7CiB9CiAKK3Vuc2lnbmVkIEpJVDo6ZnJhbWVSZWdpc3RlckNvdW50Rm9yKENvZGVCbG9jayog
Y29kZUJsb2NrKQoreworICAgIEFTU0VSVChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29kZUJsb2Nr
LT5tX251bUNhbGxlZVJlZ2lzdGVycykgPT0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNr
QWxpZ25tZW50UmVnaXN0ZXJzKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb2RlQmxvY2stPm1f
bnVtQ2FsbGVlUmVnaXN0ZXJzKSkpOworCisgICAgcmV0dXJuIHJvdW5kTG9jYWxSZWdpc3RlckNv
dW50Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMg
KyBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJzKTsKK30KKworaW50IEpJ
VDo6c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKENvZGVCbG9jayogY29kZUJsb2NrKQoreworICAgIHJl
dHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVyQ291bnRGb3IoY29kZUJs
b2NrKSAtIDEpLm9mZnNldCgpOworfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDEsMTMgKzI0MSw4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGppdC5wcml2YXRlQ29tcGlsZUNUSU5hdGl2
ZUNhbGwodm0sIGZ1bmMpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIHZvaWQgbGlua0Zv
cihFeGVjU3RhdGUqLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIENvZGVCbG9jayogY2FsbGVyQ29kZUJs
b2NrLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywgQ29kZVB0ciwgQ2FsbExpbmtJbmZvKiwg
Vk0qLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKLSAgICAgICAgc3RhdGljIHZvaWQgbGlua1Ns
b3dDYWxsKENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrLCBDYWxsTGlua0luZm8qKTsKLSAgICAg
ICAgCi0gICAgICAgIHN0YXRpYyB1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJs
b2NrKiBjb2RlQmxvY2spCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBjb2RlQmxvY2st
Pm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOwotICAgICAgICB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25l
ZCBmcmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2NrKik7CisgICAgICAgIHN0YXRpYyBpbnQg
c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKENvZGVCbG9jayopOwogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgSklUKFZNKiwgQ29kZUJsb2NrKiA9IDApOwpAQCAtNjk3LDExICs2OTIsMTEgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oV2l0
aFByb2ZpbGVUYWcsIEpfSklUT3BlcmF0aW9uX0VQYywgaW50LCBJbnN0cnVjdGlvbiopOwogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0Va
LCBpbnQsIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKFBfSklUT3BlcmF0aW9uX0VKUywgR1BSUmVnLCBzaXplX3QpOwotICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0aW9uX0VaLCBpbnQzMl90KTsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlv
bl9FQ0MsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKLCBSZWdpc3RlcklEKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSkos
IFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VPSnNzLCBSZWdpc3RlcklELCBSZWdpc3RlcklE
KTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTcHJ0X0pJVE9w
ZXJhdGlvbl9FWiwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUMsIFJlZ2lzdGVySUQpOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDQywgUmVn
aXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CkBAIC03MjYsNiArNzIxLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRVBjLCBJbnN0cnVjdGlvbiopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VaLCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9u
KEpfSklUT3BlcmF0aW9uX0UpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uTm9FeGNlcHRpb25DaGVjayhKX0pJVE9wZXJhdGlvbl9FRSwgUmVnaXN0ZXJJRCk7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9s
bGJhY2tPbkV4Y2VwdGlvbihWX0pJVE9wZXJhdGlvbl9FQ2IsIENvZGVCbG9jayopOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNr
T25FeGNlcHRpb24oWl9KSVRPcGVyYXRpb25fRSk7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgs
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlJlcGF0
Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdU
b29sLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5n
UHJpbnRTdHJlYW0uaD4KIAogCkBAIC01NiwxMCArNTcsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9y
ZXQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgdW5zaWduZWQgZHN0ID0gY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZDsKIAogICAgIGVtaXRMb2FkKGRzdCwgcmVnVDEsIHJlZ1QwKTsKLSAg
ICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QyKTsKLSAgICBlbWl0
R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsK
IAotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QyKTsKKyAgICBjaGVj
a1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgcmV0KCk7CiB9CiAKQEAgLTczLDIwICs3MywxNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXRf
b2JqZWN0X29yX3RoaXMoSW5zCiAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnN0
cnVjdHVyZU9mZnNldCgpKSwgcmVnVDIpOwogICAgIEp1bXAgbm90T2JqZWN0ID0gZW1pdEp1bXBJ
Zk5vdE9iamVjdChyZWdUMik7CiAKLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVh
ZGVyUHRyKHJlZ1QyKTsKLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVy
UHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKLQotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3Jl
UmV0dXJuKHJlZ1QyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiAKICAgICBub3RKU0NlbGwubGluayh0
aGlzKTsKICAgICBub3RPYmplY3QubGluayh0aGlzKTsKICAgICBlbWl0TG9hZCh0aGlzUmVnLCBy
ZWdUMSwgcmVnVDApOwogCi0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0
cihyZWdUMik7Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihj
YWxsRnJhbWVSZWdpc3Rlcik7Ci0KLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVy
bihyZWdUMik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAgICBlbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC0xNTEsOCArMTQ3LDEyIEBAIHZv
aWQgSklUOjpjb21waWxlTG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24KICAgICAgICAgLy8gcmVnVDI6
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzCiAKICAgICAgICAgbW92ZShyZWdUMiwgcmVnVDMp
OworICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1maXJzdEZyZWVSZWdpc3RlciArIEpTU3Rh
Y2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCByZWdUMyk7CisgICAgICAgIC8vIHJlZ1QxIG5vdyBo
YXMgdGhlIHJlcXVpcmVkIGZyYW1lIHNpemUgaW4gUmVnaXN0ZXIgdW5pdHMKKyAgICAgICAgLy8g
Um91bmQgcmVnVDEgdG8gbmV4dCBtdWx0aXBsZSBvZiBzdGFja0FsaWdubWVudFJlZ2lzdGVycygp
CisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSAt
IDEpLCByZWdUMyk7CisgICAgICAgIGFuZFB0cihUcnVzdGVkSW1tMzIofihzdGFja0FsaWdubWVu
dFJlZ2lzdGVycygpIC0gMSkpLCByZWdUMyk7CiAgICAgICAgIG5lZzMyKHJlZ1QzKTsKLSAgICAg
ICAgYWRkMzIoVHJ1c3RlZEltbTMyKGZpcnN0RnJlZVJlZ2lzdGVyIC0gSlNTdGFjazo6Q2FsbEZy
YW1lSGVhZGVyU2l6ZSksIHJlZ1QzKTsKICAgICAgICAgbHNoaWZ0MzIoVHJ1c3RlZEltbTMyKDMp
LCByZWdUMyk7CiAgICAgICAgIGFkZFB0cihjYWxsRnJhbWVSZWdpc3RlciwgcmVnVDMpOwogICAg
ICAgICAvLyByZWdUMzogbmV3Q2FsbEZyYW1lCkBAIC0xODUsMjIgKzE4NSwzNCBAQCB2b2lkIEpJ
VDo6Y29tcGlsZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uCiAgICAgICAgIHNsb3dDYXNlLmxpbmso
dGhpcyk7CiAKICAgICBlbWl0TG9hZChhcmd1bWVudHMsIHJlZ1QxLCByZWdUMCk7Ci0gICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25TaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MsIHJlZ1QxLCBy
ZWdUMCwgZmlyc3RGcmVlUmVnaXN0ZXIpOwotICAgIG1vdmUocmV0dXJuVmFsdWVHUFIsIHJlZ1Q1
KTsKLSAgICBlbWl0TG9hZCh0aGlzVmFsdWUsIHJlZ1QxLCByZWdUMCk7CisgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCByZWdUMSwgcmVnVDAsIGZpcnN0RnJl
ZVJlZ2lzdGVyKTsKKyAgICBtb3ZlKHJldHVyblZhbHVlR1BSLCBzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CisgICAgZW1pdExvYWQodGhpc1ZhbHVlLCByZWdUMSwgcmVnVDQpOwogICAgIGVtaXRMb2Fk
KGFyZ3VtZW50cywgcmVnVDMsIHJlZ1QyKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkxv
YWRWYXJhcmdzLCByZWdUNSwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIpOworICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHJldHVyblZhbHVlR1BSLCByZWdUMSwgcmVn
VDQsIHJlZ1QzLCByZWdUMik7CiAgICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgcmVnVDMpOwogCiAg
ICAgaWYgKGNhbk9wdGltaXplKQogICAgICAgICBlbmQubGluayh0aGlzKTsKKworICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIoc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwgcmVnVDMsIHN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKIH0KIAogdm9pZCBKSVQ6OmNvbXBpbGVDYWxsRXZhbChJbnN0cnVjdGlv
biogaW5zdHJ1Y3Rpb24pCiB7Ci0gICAgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFj
a09uRXhjZXB0aW9uKG9wZXJhdGlvbkNhbGxFdmFsKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMy
KC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpLCBzdGFj
a1BvaW50ZXJSZWdpc3RlciwgcmVnVDEpOworCisgICAgY2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9u
Q2hlY2sob3BlcmF0aW9uQ2FsbEV2YWwsIHJlZ1QxKTsKKworICAgIEp1bXAgbm9FeGNlcHRpb24g
PSBlbWl0RXhjZXB0aW9uQ2hlY2soSW52ZXJ0ZWRFeGNlcHRpb25DaGVjayk7CisgICAgYWRkUHRy
KFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9m
KFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7Cisg
ICAgZXhjZXB0aW9uQ2hlY2soanVtcCgpKTsKKworICAgIG5vRXhjZXB0aW9uLmxpbmsodGhpcyk7
CiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6RW1wdHlWYWx1ZVRhZykpKTsKLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZy
YW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKKworICAgIGFkZFB0cihUcnVzdGVkSW1t
MzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3Rlcikp
LCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3Rh
Y2tQb2ludGVyQWxpZ25tZW50KCk7CiAKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2sp
OwogICAgIApAQCAtMjExLDggKzIyMywxMyBAQCB2b2lkIEpJVDo6Y29tcGlsZUNhbGxFdmFsU2xv
d0Nhc2UoSW5zdHJ1CiB7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogCisgICAgbG9hZFB0cihB
ZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6
Q2FsbGVlIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwgcmVnVDApOworICAgIGxvYWRQdHIo
QWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6
OkNhbGxlZSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QxKTsKKwogICAgIGVtaXRM
b2FkKEpTU3RhY2s6OkNhbGxlZSwgcmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0TmFrZWRDYWxsKG1f
dm0tPmdldENUSVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICBh
ZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBz
aXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJs
b2NrKG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTI1MSwxOCArMjY4LDE3IEBAIHZvaWQgSklUOjpj
b21waWxlT3BDYWxsKE9wY29kZUlEIG9wY29kZUkKICAgICAgICAgICAgIGRvbmUubGluayh0aGlz
KTsKICAgICAgICAgfQogICAgIAotICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHJlZ2lzdGVy
T2Zmc2V0ICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMyk7Cisg
ICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIocmVnaXN0ZXJPZmZzZXQgKiBzaXplb2YoUmVnaXN0
ZXIpICsgc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKIAotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihhcmdDb3Vu
dCksIHBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCwgcmVnVDMpKTsKLSAgICB9IC8v
IHJlZ1QzIGhvbGRzIG5ld0NhbGxGcmFtZSB3aXRoIEFyZ3VtZW50Q291bnQgaW5pdGlhbGl6ZWQu
CisgICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGFyZ0NvdW50KSwgQWRkcmVzcyhzdGFja1Bv
aW50ZXJSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4o
c2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5k
UEMpKSk7CisgICAgfSAvLyBTUCBob2xkcyBuZXdDYWxsRnJhbWUgKyBzaXplb2YoQ2FsbGVyRnJh
bWVBbmRQQyksIHdpdGggQXJndW1lbnRDb3VudCBpbml0aWFsaXplZC4KICAgICAKICAgICB1aW50
MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0J5dGVjb2Rl
SW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb24pOwogICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGxvY2F0
aW9uQml0cyksIHRhZ0ZvcihKU1N0YWNrOjpBcmd1bWVudENvdW50LCBjYWxsRnJhbWVSZWdpc3Rl
cikpOwogICAgIGVtaXRMb2FkKGNhbGxlZSwgcmVnVDEsIHJlZ1QwKTsgLy8gcmVnVDEsIHJlZ1Qw
IGhvbGRzIGNhbGxlZS4KIAotICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCBBZGRyZXNz
KHJlZ1QzLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpKTsKLSAgICBlbWl0U3RvcmUo
SlNTdGFjazo6Q2FsbGVlLCByZWdUMSwgcmVnVDAsIHJlZ1QzKTsKLSAgICBtb3ZlKHJlZ1QzLCBj
YWxsRnJhbWVSZWdpc3Rlcik7CisgICAgc3RvcmUzMihyZWdUMCwgQWRkcmVzcyhzdGFja1BvaW50
ZXJSZWdpc3RlciwgSlNTdGFjazo6Q2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVn
aXN0ZXIpKSArIFBheWxvYWRPZmZzZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKyAg
ICBzdG9yZTMyKHJlZ1QxLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpD
YWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgVGFnT2Zmc2V0IC0g
c2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CiAKICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfY2Fs
bF9ldmFsKSB7CiAgICAgICAgIGNvbXBpbGVDYWxsRXZhbChpbnN0cnVjdGlvbik7CkBAIC0yODEs
MTAgKzI5NywxNiBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJCiAg
ICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0u
Y2FsbFR5cGUgPSBDYWxsTGlua0luZm86OmNhbGxUeXBlRm9yKG9wY29kZUlEKTsKICAgICBtX2Nh
bGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5ieXRlY29k
ZUluZGV4ID0gbV9ieXRlY29kZU9mZnNldDsKIAotICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwg
T0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGUpKSwgcmVnVDEpOwotICAgIGVtaXRQ
dXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOworICAg
IGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2Nv
cGUpKSwgcmVnVDIpOworICAgIHN0b3JlMzIocmVnVDIsIEFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpTY29wZUNoYWluICogc2l6ZW9mKFJlZ2lz
dGVyKSArIFBheWxvYWRPZmZzZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKyAgICBz
dG9yZTMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgQWRkcmVzcyhzdGFja1BvaW50
ZXJSZWdpc3RlciwgSlNTdGFjazo6U2NvcGVDaGFpbiAqIHNpemVvZihSZWdpc3RlcikgKyBUYWdP
ZmZzZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKworICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KCk7CiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tj
YWxsTGlua0luZm9JbmRleF0uaG90UGF0aE90aGVyID0gZW1pdE5ha2VkQ2FsbCgpOwogCisgICAg
YWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICog
c2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKwogICAgIHNhbXBsZUNvZGVC
bG9jayhtX2NvZGVCbG9jayk7CiAgICAgZW1pdFB1dENhbGxSZXN1bHQoaW5zdHJ1Y3Rpb24pOwog
fQpAQCAtMjk5LDcgKzMyMSwxNCBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKE9w
Y29kZUlECiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsK
IAotICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5k
ZXhdLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGVtaXROYWtlZENhbGwob3Bjb2RlSUQgPT0gb3BfY29u
c3RydWN0ID8gbV92bS0+Z2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpLmNv
ZGUoKSA6IG1fdm0tPmdldENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsK
KyAgICBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IgPSBsaW5rVGh1bmtHZW5lcmF0b3JGb3IoCisg
ICAgICAgIG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2Rl
Rm9yQ2FsbCwKKyAgICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CisgICAg
CisgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRl
eF0uY2FsbFJldHVybkxvY2F0aW9uID0gZW1pdE5ha2VkQ2FsbChtX3ZtLT5nZXRDVElTdHViKGdl
bmVyYXRvcikuY29kZSgpKTsKKworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVy
T2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdp
c3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25t
ZW50KCk7CiAKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIGVtaXRQdXRD
YWxsUmVzdWx0KGluc3RydWN0aW9uKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUQ2FsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
YWxsLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRDYWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlJl
cGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiU2FtcGxp
bmdUb29sLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlICJUaHVua0dl
bmVyYXRvcnMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIApAQCAtNzEs
MTAgKzcyLDE0IEBAIHZvaWQgSklUOjpjb21waWxlTG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24KICAg
ICAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXIzMihKU1N0YWNrOjpBcmd1bWVudENvdW50
LCByZWdUMCk7CiAgICAgICAgIHNsb3dDYXNlLmFwcGVuZChicmFuY2gzMihBYm92ZSwgcmVnVDAs
IFRydXN0ZWRJbW0zMihBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyArIDEpKSk7CiAgICAgICAgIC8v
IHJlZ1QwOiBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcwotCiAgICAgICAgIG1vdmUocmVnVDAs
IHJlZ1QxKTsKKyAgICAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKC1maXJzdEZyZWVSZWdpc3RlciAr
IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCByZWdUMSk7CisgICAgICAgIC8vIHJlZ1Qx
IG5vdyBoYXMgdGhlIHJlcXVpcmVkIGZyYW1lIHNpemUgaW4gUmVnaXN0ZXIgdW5pdHMKKyAgICAg
ICAgLy8gUm91bmQgcmVnVDEgdG8gbmV4dCBtdWx0aXBsZSBvZiBzdGFja0FsaWdubWVudFJlZ2lz
dGVycygpCisgICAgICAgIGFkZDY0KFRydXN0ZWRJbW0zMihzdGFja0FsaWdubWVudFJlZ2lzdGVy
cygpIC0gMSksIHJlZ1QxKTsKKyAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTMyKH4oc3RhY2tBbGln
bm1lbnRSZWdpc3RlcnMoKSAtIDEpKSwgcmVnVDEpOworCiAgICAgICAgIG5lZzY0KHJlZ1QxKTsK
LSAgICAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKGZpcnN0RnJlZVJlZ2lzdGVyIC0gSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIHJlZ1QxKTsKICAgICAgICAgbHNoaWZ0NjQoVHJ1c3RlZElt
bTMyKDMpLCByZWdUMSk7CiAgICAgICAgIGFkZFB0cihjYWxsRnJhbWVSZWdpc3RlciwgcmVnVDEp
OwogICAgICAgICAvLyByZWdUMTogbmV3Q2FsbEZyYW1lCkBAIC0xMDUsNyArMTEwLDggQEAgdm9p
ZCBKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyhJbnN0cnVjdGlvbgogICAgICAgICBzbG93Q2FzZS5s
aW5rKHRoaXMpOwogCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihhcmd1bWVudHMsIHJlZ1Qx
KTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJn
cywgcmVnVDEsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
blNpemVGcmFtZUZvclZhcmFyZ3MsIHJlZ1QxLCBmaXJzdEZyZWVSZWdpc3Rlcik7CisgICAgbW92
ZShyZXR1cm5WYWx1ZUdQUiwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXIodGhpc1ZhbHVlLCByZWdUMSk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cihhcmd1bWVudHMsIHJlZ1QyKTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkxvYWRWYXJh
cmdzLCByZXR1cm5WYWx1ZUdQUiwgcmVnVDEsIHJlZ1QyKTsKQEAgLTExMywxMyArMTE5LDI0IEBA
IHZvaWQgSklUOjpjb21waWxlTG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24KIAogICAgIGlmIChjYW5P
cHRpbWl6ZSkKICAgICAgICAgZW5kLmxpbmsodGhpcyk7CisgICAgCisgICAgYWRkUHRyKFRydXN0
ZWRJbW0zMihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMSwgc3RhY2tQb2ludGVyUmVn
aXN0ZXIpOwogfQogCiB2b2lkIEpJVDo6Y29tcGlsZUNhbGxFdmFsKEluc3RydWN0aW9uKiBpbnN0
cnVjdGlvbikKIHsKLSAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNl
cHRpb24ob3BlcmF0aW9uQ2FsbEV2YWwpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLXN0YXRp
Y19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSksIHN0YWNrUG9pbnRl
clJlZ2lzdGVyLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2sob3Bl
cmF0aW9uQ2FsbEV2YWwsIHJlZ1QxKTsKKworICAgIEp1bXAgbm9FeGNlcHRpb24gPSBlbWl0RXhj
ZXB0aW9uQ2hlY2soSW52ZXJ0ZWRFeGNlcHRpb25DaGVjayk7CisgICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVy
KSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7ICAgIAorICAgIGV4
Y2VwdGlvbkNoZWNrKGp1bXAoKSk7CisKKyAgICBub0V4Y2VwdGlvbi5saW5rKHRoaXMpOwogICAg
IGFkZFNsb3dDYXNlKGJyYW5jaDY0KEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6
OmVuY29kZShKU1ZhbHVlKCkpKSkpOwotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0z
MihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSks
IGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFj
a1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7
CiAgICAgCkBAIC0xMzAsOCArMTQ3LDEwIEBAIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2YWxTbG93
Q2FzZShJbnN0cnUKIHsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKLSAgICBlbWl0R2V0RnJv
bUNhbGxGcmFtZUhlYWRlcjY0KEpTU3RhY2s6OkNhbGxlZSwgcmVnVDApOworICAgIGxvYWQ2NChB
ZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6
Q2FsbGVlIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwgcmVnVDApOwogICAgIGVtaXROYWtl
ZENhbGwobV92bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkp
OworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJs
b2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVy
UmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKICAgICBzYW1w
bGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIApAQCAtMTcwLDE4ICsxODksMTYgQEAgdm9p
ZCBKSVQ6OmNvbXBpbGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSQogICAgICAgICAgICAgZG9uZS5s
aW5rKHRoaXMpOwogICAgICAgICB9CiAgICAgCi0gICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIo
cmVnaXN0ZXJPZmZzZXQgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHJl
Z1QxKTsKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoYXJnQ291bnQpLCBBZGRyZXNzKHJl
Z1QxLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVn
aXN0ZXIpKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMu
cGF5bG9hZCkpKTsKLSAgICB9IC8vIHJlZ1QxIGhvbGRzIG5ld0NhbGxGcmFtZSB3aXRoIEFyZ3Vt
ZW50Q291bnQgaW5pdGlhbGl6ZWQuCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIocmVnaXN0
ZXJPZmZzZXQgKiBzaXplb2YoUmVnaXN0ZXIpICsgc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwg
Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgc3RvcmUz
MihUcnVzdGVkSW1tMzIoYXJnQ291bnQpLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBK
U1N0YWNrOjpBcmd1bWVudENvdW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIp
KSArIFBheWxvYWRPZmZzZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKyAgICB9IC8v
IFNQIGhvbGRzIG5ld0NhbGxGcmFtZSArIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSwgd2l0aCBB
cmd1bWVudENvdW50IGluaXRpYWxpemVkLgogICAgIAogICAgIHVpbnQzMl90IGJ5dGVjb2RlT2Zm
c2V0ID0gaW5zdHJ1Y3Rpb24gLSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsK
ICAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVB
c0J5dGVjb2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBzdG9yZTMyKFRydXN0ZWRJbW0z
Mihsb2NhdGlvbkJpdHMpLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1
bWVudENvdW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIE9CSkVDVF9P
RkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAgIHN0b3Jl
MzIoVHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIs
IEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3Rl
cikpICsgVGFnT2Zmc2V0KSk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjYWxsZWUsIHJl
Z1QwKTsgLy8gcmVnVDAgaG9sZHMgY2FsbGVlLgogCi0gICAgc3RvcmU2NChjYWxsRnJhbWVSZWdp
c3RlciwgQWRkcmVzcyhyZWdUMSwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSk7Ci0g
ICAgc3RvcmU2NChyZWdUMCwgQWRkcmVzcyhyZWdUMSwgSlNTdGFjazo6Q2FsbGVlICogc3RhdGlj
X2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwotICAgIG1vdmUocmVnVDEsIGNhbGxGcmFt
ZVJlZ2lzdGVyKTsKKyAgICBzdG9yZTY0KHJlZ1QwLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lz
dGVyLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3Rlcikp
IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CiAKICAgICBpZiAob3Bjb2RlSUQgPT0gb3Bf
Y2FsbF9ldmFsKSB7CiAgICAgICAgIGNvbXBpbGVDYWxsRXZhbChpbnN0cnVjdGlvbik7CkBAIC0x
OTgsMTAgKzIxNSwxNCBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJ
CiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRl
eF0uY2FsbFR5cGUgPSBDYWxsTGlua0luZm86OmNhbGxUeXBlRm9yKG9wY29kZUlEKTsKICAgICBt
X2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5ieXRl
Y29kZUluZGV4ID0gbV9ieXRlY29kZU9mZnNldDsKIAotICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdU
MCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGUpKSwgcmVnVDEpOwotICAgIGVt
aXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CisgICAg
bG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29w
ZSkpLCByZWdUMik7CisgICAgc3RvcmU2NChyZWdUMiwgQWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXplb2YoUmVnaXN0
ZXIpIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisKICAgICBtX2NhbGxTdHJ1Y3R1cmVT
dHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5ob3RQYXRoT3RoZXIgPSBlbWl0
TmFrZWRDYWxsKCk7CiAKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNl
dEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIs
IHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgp
OworCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICAKICAgICBlbWl0UHV0
Q2FsbFJlc3VsdChpbnN0cnVjdGlvbik7CkBAIC0yMTYsNyArMjM3LDE0IEBAIHZvaWQgSklUOjpj
b21waWxlT3BDYWxsU2xvd0Nhc2UoT3Bjb2RlSUQKIAogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsK
IAotICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5k
ZXhdLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGVtaXROYWtlZENhbGwob3Bjb2RlSUQgPT0gb3BfY29u
c3RydWN0ID8gbV92bS0+Z2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpLmNv
ZGUoKSA6IG1fdm0tPmdldENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsK
KyAgICBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IgPSBsaW5rVGh1bmtHZW5lcmF0b3JGb3IoCisg
ICAgICAgIG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2Rl
Rm9yQ2FsbCwKKyAgICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CisgICAg
CisgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRl
eF0uY2FsbFJldHVybkxvY2F0aW9uID0gZW1pdE5ha2VkQ2FsbChtX3ZtLT5nZXRDVElTdHViKGdl
bmVyYXRvcikuY29kZSgpKTsKKworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVy
T2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdp
c3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25t
ZW50KCk7CiAKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIApAQCAtMjI2
LDcgKzI1NCw3IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UoT3Bjb2RlSUQKIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZUNsb3N1cmVDYWxsKENhbGxMaW5rSW5mbyogY2FsbExpbmtJ
bmZvLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywgU3RydWN0dXJlKiBleHBlY3RlZFN0cnVj
dHVyZSwgRXhlY3V0YWJsZUJhc2UqIGV4cGVjdGVkRXhlY3V0YWJsZSwgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGNvZGVQdHIpCiB7CiAgICAgSnVtcExpc3Qgc2xvd0Nhc2VzOwotICAgIAorCiAgICAg
c2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0UHRyKE5vblplcm8sIHJlZ1QwLCB0YWdNYXNrUmVn
aXN0ZXIpKTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVz
cyhyZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIFRydXN0ZWRJbW1QdHIoZXhwZWN0
ZWRTdHJ1Y3R1cmUpKSk7CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWws
IEFkZHJlc3MocmVnVDAsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgVHJ1c3Rl
ZEltbVB0cihleHBlY3RlZEV4ZWN1dGFibGUpKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQ29kZS5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgIkxMSW50VGh1bmtzLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUg
IlJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Q
cmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTQxLDExICs0Miw5IEBAIEpJVENv
ZGU6On5KSVRDb2RlKCkKIHsKIH0KIAotSlNWYWx1ZSBKSVRDb2RlOjpleGVjdXRlKFZNKiB2bSwg
UHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lLCBSZWdpc3RlciogdG9wT2ZTdGFjaykKK0pT
VmFsdWUgSklUQ29kZTo6ZXhlY3V0ZShWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxG
cmFtZSkKIHsKLSAgICBBU1NFUlQoIXZtLT50b3BDYWxsRnJhbWUgfHwgKChSZWdpc3RlciopKHZt
LT50b3BDYWxsRnJhbWUpID49IHRvcE9mU3RhY2spKTsKLQotICAgIEpTVmFsdWUgcmVzdWx0ID0g
SlNWYWx1ZTo6ZGVjb2RlKGNhbGxUb0phdmFTY3JpcHQoZXhlY3V0YWJsZUFkZHJlc3MoKSwgJnZt
LT50b3BDYWxsRnJhbWUsIHByb3RvQ2FsbEZyYW1lLCB0b3BPZlN0YWNrKSk7CisgICAgSlNWYWx1
ZSByZXN1bHQgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbFRvSmF2YVNjcmlwdChleGVjdXRhYmxlQWRk
cmVzcygpLCB2bSwgcHJvdG9DYWxsRnJhbWUpKTsKICAgICByZXR1cm4gdm0tPmV4Y2VwdGlvbigp
ID8ganNOdWxsKCkgOiByZXN1bHQ7CiB9CiAKQEAgLTczLDUyICs3MiwzNSBAQCBGVEw6OkZvck9T
UkVudHJ5SklUQ29kZSogSklUQ29kZTo6ZnRsRm9yCiAgICAgcmV0dXJuIDA7CiB9CiAKLVBhc3NS
ZWZQdHI8SklUQ29kZT4gSklUQ29kZTo6aG9zdEZ1bmN0aW9uKEpJVENvZGU6OkNvZGVSZWYgY29k
ZSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoY29kZSwgSG9zdENh
bGxUaHVuaykpOwotfQotCi1EaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRDb2RlKEpJVFR5cGUgaml0
VHlwZSkKK0pJVENvZGVXaXRoQ29kZVJlZjo6SklUQ29kZVdpdGhDb2RlUmVmKEpJVFR5cGUgaml0
VHlwZSkKICAgICA6IEpJVENvZGUoaml0VHlwZSkKIHsKIH0KIAotRGlyZWN0SklUQ29kZTo6RGly
ZWN0SklUQ29kZShjb25zdCBKSVRDb2RlOjpDb2RlUmVmIHJlZiwgSklUVHlwZSBqaXRUeXBlKQor
SklUQ29kZVdpdGhDb2RlUmVmOjpKSVRDb2RlV2l0aENvZGVSZWYoQ29kZVJlZiByZWYsIEpJVFR5
cGUgaml0VHlwZSkKICAgICA6IEpJVENvZGUoaml0VHlwZSkKICAgICAsIG1fcmVmKHJlZikKIHsK
IH0KIAotRGlyZWN0SklUQ29kZTo6fkRpcmVjdEpJVENvZGUoKQotewotfQotCi12b2lkIERpcmVj
dEpJVENvZGU6OmluaXRpYWxpemVDb2RlUmVmKGNvbnN0IEpJVENvZGU6OkNvZGVSZWYgcmVmKQor
SklUQ29kZVdpdGhDb2RlUmVmOjp+SklUQ29kZVdpdGhDb2RlUmVmKCkKIHsKLSAgICBSRUxFQVNF
X0FTU0VSVCghbV9yZWYpOwotICAgIG1fcmVmID0gcmVmOwogfQogCi1KSVRDb2RlOjpDb2RlUHRy
IERpcmVjdEpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVCht
X3JlZik7Ci0gICAgcmV0dXJuIG1fcmVmLmNvZGUoKTsKLX0KLQotdm9pZCogRGlyZWN0SklUQ29k
ZTo6ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KQordm9pZCogSklUQ29k
ZVdpdGhDb2RlUmVmOjpleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCiB7
CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PGNoYXIqPihtX3JlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkgKyBvZmZzZXQ7CiB9CiAK
LXZvaWQqIERpcmVjdEpJVENvZGU6OmRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkK
K3ZvaWQqIEpJVENvZGVXaXRoQ29kZVJlZjo6ZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zm
c2V0KQogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsKICAgICBBU1NFUlQob2Zmc2V0IDw9
IHNpemUoKSk7IC8vIHVzZSA8PSBpbnN0ZWFkIG9mIDwgYmVjYXVzZSBpdCBpcyB2YWxpZCB0byBh
c2sgZm9yIGFuIGFkZHJlc3MgYXQgdGhlIGV4Y2x1c2l2ZSBlbmQgb2YgdGhlIGNvZGUuCiAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fcmVmLmNvZGUoKS5kYXRhTG9jYXRpb24o
KSkgKyBvZmZzZXQ7CiB9CiAKLXVuc2lnbmVkIERpcmVjdEpJVENvZGU6Om9mZnNldE9mKHZvaWQq
IHBvaW50ZXJJbnRvQ29kZSkKK3Vuc2lnbmVkIEpJVENvZGVXaXRoQ29kZVJlZjo6b2Zmc2V0T2Yo
dm9pZCogcG9pbnRlckludG9Db2RlKQogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsKICAg
ICBpbnRwdHJfdCByZXN1bHQgPSByZWludGVycHJldF9jYXN0PGludHB0cl90Pihwb2ludGVySW50
b0NvZGUpIC0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4obV9yZWYuY29kZSgpLmV4ZWN1dGFi
bGVBZGRyZXNzKCkpOwpAQCAtMTI2LDE4ICsxMDgsMTE2IEBAIHVuc2lnbmVkIERpcmVjdEpJVENv
ZGU6Om9mZnNldE9mKHZvaWQqIHAKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJl
c3VsdCk7CiB9CiAKLXNpemVfdCBEaXJlY3RKSVRDb2RlOjpzaXplKCkKK3NpemVfdCBKSVRDb2Rl
V2l0aENvZGVSZWY6OnNpemUoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsKICAgICBy
ZXR1cm4gbV9yZWYuc2l6ZSgpOwogfQogCi1ib29sIERpcmVjdEpJVENvZGU6OmNvbnRhaW5zKHZv
aWQqIGFkZHJlc3MpCitib29sIEpJVENvZGVXaXRoQ29kZVJlZjo6Y29udGFpbnModm9pZCogYWRk
cmVzcykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgcmV0dXJuIG1fcmVmLmV4
ZWN1dGFibGVNZW1vcnkoKS0+Y29udGFpbnMoYWRkcmVzcyk7CiB9CiAKK0RpcmVjdEpJVENvZGU6
OkRpcmVjdEpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVm
KGppdFR5cGUpCit7Cit9CisKK0RpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENvZGUoSklUQ29kZTo6
Q29kZVJlZiByZWYsIEpJVENvZGU6OkNvZGVQdHIgd2l0aEFyaXR5Q2hlY2ssIEpJVFR5cGUgaml0
VHlwZSkKKyAgICA6IEpJVENvZGVXaXRoQ29kZVJlZihyZWYsIGppdFR5cGUpCisgICAgLCBtX3dp
dGhBcml0eUNoZWNrKHdpdGhBcml0eUNoZWNrKQoreworfQorCitEaXJlY3RKSVRDb2RlOjp+RGly
ZWN0SklUQ29kZSgpCit7Cit9CisKK3ZvaWQgRGlyZWN0SklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVS
ZWYoSklUQ29kZTo6Q29kZVJlZiByZWYsIEpJVENvZGU6OkNvZGVQdHIgd2l0aEFyaXR5Q2hlY2sp
Cit7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1fcmVmKTsKKyAgICBtX3JlZiA9IHJlZjsKKyAgICBt
X3dpdGhBcml0eUNoZWNrID0gd2l0aEFyaXR5Q2hlY2s7Cit9CisKK0RpcmVjdEpJVENvZGU6OlJl
Z2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnMqIERpcmVjdEpJVENvZGU6OmVuc3VyZVdyYXBwZXJz
KCkKK3sKKyAgICBpZiAoIW1fd3JhcHBlcnMpCisgICAgICAgIG1fd3JhcHBlcnMgPSBzdGQ6Om1h
a2VfdW5pcXVlPFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnM+KCk7CisgICAgcmV0dXJuIG1f
d3JhcHBlcnMuZ2V0KCk7Cit9CisKK0pJVENvZGU6OkNvZGVQdHIgRGlyZWN0SklUQ29kZTo6YWRk
cmVzc0ZvckNhbGwoCisgICAgVk0mIHZtLCBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSwgQXJp
dHlDaGVja01vZGUgYXJpdHksCisgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVy
cykKK3sKKyAgICBzd2l0Y2ggKGFyaXR5KSB7CisgICAgY2FzZSBBcml0eUNoZWNrTm90UmVxdWly
ZWQ6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVm
KTsKKyAgICAgICAgICAgIHJldHVybiBtX3JlZi5jb2RlKCk7CisgICAgICAgIGNhc2UgTXVzdFBy
ZXNlcnZlUmVnaXN0ZXJzOiB7CisjaWYgRU5BQkxFKEpJVCkKKyAgICAgICAgICAgIFJlZ2lzdGVy
UHJlc2VydmF0aW9uV3JhcHBlcnMqIHdyYXBwZXJzID0gZW5zdXJlV3JhcHBlcnMoKTsKKyAgICAg
ICAgICAgIGlmICghd3JhcHBlcnMtPndpdGhvdXRBcml0eUNoZWNrKQorICAgICAgICAgICAgICAg
IHdyYXBwZXJzLT53aXRob3V0QXJpdHlDaGVjayA9IGdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRp
b25XcmFwcGVyKHZtLCBleGVjdXRhYmxlLCBtX3JlZi5jb2RlKCkpOworICAgICAgICAgICAgcmV0
dXJuIHdyYXBwZXJzLT53aXRob3V0QXJpdHlDaGVjay5jb2RlKCk7CisjZWxzZQorICAgICAgICAg
ICAgVU5VU0VEX1BBUkFNKHZtKTsKKyAgICAgICAgICAgIFVOVVNFRF9QQVJBTShleGVjdXRhYmxl
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAg
ICAgICAgfSB9CisgICAgY2FzZSBNdXN0Q2hlY2tBcml0eToKKyAgICAgICAgc3dpdGNoIChyZWdp
c3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgor
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV93aXRoQXJpdHlDaGVjayk7CisgICAgICAgICAg
ICByZXR1cm4gbV93aXRoQXJpdHlDaGVjazsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdp
c3RlcnM6IHsKKyNpZiBFTkFCTEUoSklUKQorICAgICAgICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25XcmFwcGVycyogd3JhcHBlcnMgPSBlbnN1cmVXcmFwcGVycygpOworICAgICAgICAgICAgaWYg
KCF3cmFwcGVycy0+d2l0aEFyaXR5Q2hlY2spCisgICAgICAgICAgICAgICAgd3JhcHBlcnMtPndp
dGhBcml0eUNoZWNrID0gZ2VuZXJhdGVSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXIodm0sIGV4
ZWN1dGFibGUsIG1fd2l0aEFyaXR5Q2hlY2spOworICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXJz
LT53aXRoQXJpdHlDaGVjay5jb2RlKCk7CisjZWxzZQorICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICB9IH0KKyAgICB9CisgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQ29kZVB0cigpOworfQorCitOYXRp
dmVKSVRDb2RlOjpOYXRpdmVKSVRDb2RlKEpJVFR5cGUgaml0VHlwZSkKKyAgICA6IEpJVENvZGVX
aXRoQ29kZVJlZihqaXRUeXBlKQoreworfQorCitOYXRpdmVKSVRDb2RlOjpOYXRpdmVKSVRDb2Rl
KENvZGVSZWYgcmVmLCBKSVRUeXBlIGppdFR5cGUpCisgICAgOiBKSVRDb2RlV2l0aENvZGVSZWYo
cmVmLCBqaXRUeXBlKQoreworfQorCitOYXRpdmVKSVRDb2RlOjp+TmF0aXZlSklUQ29kZSgpCit7
Cit9CisKK3ZvaWQgTmF0aXZlSklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVSZWYoQ29kZVJlZiByZWYp
Cit7CisgICAgQVNTRVJUKCFtX3JlZik7CisgICAgbV9yZWYgPSByZWY7Cit9CisKK0pJVENvZGU6
OkNvZGVQdHIgTmF0aXZlSklUQ29kZTo6YWRkcmVzc0ZvckNhbGwoCisgICAgVk0mLCBFeGVjdXRh
YmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpCit7Cisg
ICAgUkVMRUFTRV9BU1NFUlQoISFtX3JlZik7CisgICAgcmV0dXJuIG1fcmVmLmNvZGUoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKIG5hbWVzcGFjZSBXVEYgewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRDb2RlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNCArMjYsMTQgQEAK
ICNpZm5kZWYgSklUQ29kZV9oCiAjZGVmaW5lIEpJVENvZGVfaAogCi0jaWYgRU5BQkxFKEpJVCkg
fHwgRU5BQkxFKExMSU5UKQorI2luY2x1ZGUgIkFyaXR5Q2hlY2tNb2RlLmgiCiAjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiSklUU3R1
YnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIu
aCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKLSNlbmRpZgorI2luY2x1ZGUg
IlJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNTQs
NyArNTQsMTQgQEAgcHVibGljOgogICAgIHR5cGVkZWYgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIENv
ZGVSZWY7CiAgICAgdHlwZWRlZiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgQ29kZVB0cjsKIAotICAg
IGVudW0gSklUVHlwZSB7IE5vbmUsIEhvc3RDYWxsVGh1bmssIEludGVycHJldGVyVGh1bmssIEJh
c2VsaW5lSklULCBERkdKSVQsIEZUTEpJVCB9OworICAgIGVudW0gSklUVHlwZSA6IHVpbnQ4X3Qg
eworICAgICAgICBOb25lLAorICAgICAgICBIb3N0Q2FsbFRodW5rLAorICAgICAgICBJbnRlcnBy
ZXRlclRodW5rLAorICAgICAgICBCYXNlbGluZUpJVCwKKyAgICAgICAgREZHSklULAorICAgICAg
ICBGVExKSVQKKyAgICB9OwogICAgIAogICAgIHN0YXRpYyBKSVRUeXBlIGJvdHRvbVRpZXJKSVQo
KQogICAgIHsKQEAgLTE2NCw3ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBqaXRD
b2RlLT5qaXRUeXBlKCk7CiAgICAgfQogICAgIAotICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNz
Rm9yQ2FsbCgpID0gMDsKKyAgICB2aXJ0dWFsIENvZGVQdHIgYWRkcmVzc0ZvckNhbGwoVk0mLCBF
eGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90
IG9mZnNldCkgPSAwOwogICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzKCkgeyByZXR1cm4gZXhl
Y3V0YWJsZUFkZHJlc3NBdE9mZnNldCgwKTsgfQogICAgIHZpcnR1YWwgdm9pZCogZGF0YUFkZHJl
c3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSA9IDA7CkBAIC0xNzUsNyArMTgyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgRlRMOjpKSVRDb2RlKiBmdGwoKTsKICAgICB2aXJ0dWFsIEZUTDo6Rm9y
T1NSRW50cnlKSVRDb2RlKiBmdGxGb3JPU1JFbnRyeSgpOwogICAgIAotICAgIEpTVmFsdWUgZXhl
Y3V0ZShWTSosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKKyAgICBKU1ZhbHVlIGV4ZWN1
dGUoVk0qLCBQcm90b0NhbGxGcmFtZSopOwogICAgIAogICAgIHZvaWQqIHN0YXJ0KCkgeyByZXR1
cm4gZGF0YUFkZHJlc3NBdE9mZnNldCgwKTsgfQogICAgIHZpcnR1YWwgc2l6ZV90IHNpemUoKSA9
IDA7CkBAIC0xODMsMzEgKzE5MCw2MiBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBib29s
IGNvbnRhaW5zKHZvaWQqKSA9IDA7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKSVRDb2RlPiBo
b3N0RnVuY3Rpb24oQ29kZVJlZik7Ci0KIHByaXZhdGU6CiAgICAgSklUVHlwZSBtX2ppdFR5cGU7
CiB9OwogCi1jbGFzcyBEaXJlY3RKSVRDb2RlIDogcHVibGljIEpJVENvZGUgeworY2xhc3MgSklU
Q29kZVdpdGhDb2RlUmVmIDogcHVibGljIEpJVENvZGUgeworcHJvdGVjdGVkOgorICAgIEpJVENv
ZGVXaXRoQ29kZVJlZihKSVRUeXBlKTsKKyAgICBKSVRDb2RlV2l0aENvZGVSZWYoQ29kZVJlZiwg
SklUVHlwZSk7CisKIHB1YmxpYzoKLSAgICBEaXJlY3RKSVRDb2RlKEpJVFR5cGUpOwotICAgIERp
cmVjdEpJVENvZGUoY29uc3QgQ29kZVJlZiwgSklUVHlwZSk7Ci0gICAgdmlydHVhbCB+RGlyZWN0
SklUQ29kZSgpOwotICAgIAotICAgIHZvaWQgaW5pdGlhbGl6ZUNvZGVSZWYoQ29kZVJlZiByZWYp
OworICAgIHZpcnR1YWwgfkpJVENvZGVXaXRoQ29kZVJlZigpOwogCi0gICAgdmlydHVhbCBDb2Rl
UHRyIGFkZHJlc3NGb3JDYWxsKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkKiBleGVjdXRh
YmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCogZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHVuc2lnbmVkIG9mZnNldE9mKHZvaWQqIHBvaW50ZXJJbnRvQ29kZSkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBzaXplX3Qgc2l6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBj
b250YWlucyh2b2lkKikgb3ZlcnJpZGU7CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgQ29k
ZVJlZiBtX3JlZjsKIH07CiAKK2NsYXNzIERpcmVjdEpJVENvZGUgOiBwdWJsaWMgSklUQ29kZVdp
dGhDb2RlUmVmIHsKK3B1YmxpYzoKKyAgICBEaXJlY3RKSVRDb2RlKEpJVFR5cGUpOworICAgIERp
cmVjdEpJVENvZGUoQ29kZVJlZiwgQ29kZVB0ciB3aXRoQXJpdHlDaGVjaywgSklUVHlwZSk7Cisg
ICAgdmlydHVhbCB+RGlyZWN0SklUQ29kZSgpOworICAgIAorICAgIHZvaWQgaW5pdGlhbGl6ZUNv
ZGVSZWYoQ29kZVJlZiwgQ29kZVB0ciB3aXRoQXJpdHlDaGVjayk7CisKKyAgICB2aXJ0dWFsIENv
ZGVQdHIgYWRkcmVzc0ZvckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2Rl
LCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHN0
cnVjdCBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzIHsKKyAgICAgICAgQ29kZVJlZiB3aXRo
b3V0QXJpdHlDaGVjazsKKyAgICAgICAgQ29kZVJlZiB3aXRoQXJpdHlDaGVjazsKKyAgICB9Owor
CisgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyogZW5zdXJlV3JhcHBlcnMoKTsKKyAg
ICAKKyAgICBDb2RlUHRyIG1fd2l0aEFyaXR5Q2hlY2s7CisgICAgCisgICAgc3RkOjp1bmlxdWVf
cHRyPFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnM+IG1fd3JhcHBlcnM7Cit9OworCitjbGFz
cyBOYXRpdmVKSVRDb2RlIDogcHVibGljIEpJVENvZGVXaXRoQ29kZVJlZiB7CitwdWJsaWM6Cisg
ICAgTmF0aXZlSklUQ29kZShKSVRUeXBlKTsKKyAgICBOYXRpdmVKSVRDb2RlKENvZGVSZWYsIEpJ
VFR5cGUpOworICAgIHZpcnR1YWwgfk5hdGl2ZUpJVENvZGUoKTsKKyAgICAKKyAgICB2b2lkIGlu
aXRpYWxpemVDb2RlUmVmKENvZGVSZWYpOworCisgICAgdmlydHVhbCBDb2RlUHRyIGFkZHJlc3NG
b3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9kZSwgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Nb2RlKSBvdmVycmlkZTsKK307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiBuYW1l
c3BhY2UgV1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9u
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRp
b25zLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRFeGNlcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMTEgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKIHZvaWQgZ2VuZXJpY1Vud2luZChWTSogdm0sIEV4ZWNTdGF0ZSogY2FsbEZy
YW1lLCBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlKQogeworICAgIGlmIChPcHRpb25zOjpicmVha09u
VGhyb3coKSkgeworICAgICAgICBkYXRhTG9nKCJJbiBjYWxsIGZyYW1lICIsIFJhd1BvaW50ZXIo
Y2FsbEZyYW1lKSwgIiBmb3IgY29kZSBibG9jayAiLCAqY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwg
IlxuIik7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorICAgIAogICAgIFJFTEVBU0VfQVNTRVJU
KGV4Y2VwdGlvblZhbHVlKTsKICAgICBIYW5kbGVySW5mbyogaGFuZGxlciA9IHZtLT5pbnRlcnBy
ZXRlci0+dW53aW5kKGNhbGxGcmFtZSwgZXhjZXB0aW9uVmFsdWUpOyAvLyBUaGlzIG1heSB1cGRh
dGUgY2FsbEZyYW1lLgogCkBAIC01Niw3ICs2MSw3IEBAIHZvaWQgZ2VuZXJpY1Vud2luZChWTSog
dm0sIEV4ZWNTdGF0ZSogY2EKICAgICAgICAgY2F0Y2hSb3V0aW5lID0gY2F0Y2hQQ0ZvckludGVy
cHJldGVyLT51LnBvaW50ZXI7CiAjZW5kaWYKICAgICB9IGVsc2UKLSAgICAgICAgY2F0Y2hSb3V0
aW5lID0gTExJbnQ6OmdldENvZGVQdHIocmV0dXJuRnJvbUphdmFTY3JpcHQpOworICAgICAgICBj
YXRjaFJvdXRpbmUgPSBMTEludDo6Z2V0Q29kZVB0cihoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbik7
CiAgICAgCiAgICAgdm0tPmNhbGxGcmFtZUZvclRocm93ID0gY2FsbEZyYW1lOwogICAgIHZtLT50
YXJnZXRNYWNoaW5lUENGb3JUaHJvdyA9IGNhdGNoUm91dGluZTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNh
Y2hlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBKSVRJbmxp
bmVDYWNoZUdlbmVyYXRvcjo6SklUSW5saW5lQ2FjaGVHCiAKIEpJVEJ5SWRHZW5lcmF0b3I6OkpJ
VEJ5SWRHZW5lcmF0b3IoCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCi0gICAgR1BSUmVnIGNh
bGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgYm9v
bCByZWdpc3RlcnNGbHVzaGVkKQorICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZh
bHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCiAgICAgOiBKSVRJbmxpbmVDYWNoZUdlbmVyYXRv
cihjb2RlQmxvY2ssIGNvZGVPcmlnaW4pCiAgICAgLCBtX2Jhc2UoYmFzZSkKICAgICAsIG1fdmFs
dWUodmFsdWUpCkBAIC02Miw3ICs2Miw2IEBAIEpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5l
cmF0b3IoCiAgICAgbV9zdHViSW5mby0+cGF0Y2gudXNlZFJlZ2lzdGVycy5zZXQoYmFzZSk7CiAg
ICAgbV9zdHViSW5mby0+cGF0Y2gudXNlZFJlZ2lzdGVycy5zZXQodmFsdWUpOwogICAgIAotICAg
IG1fc3R1YkluZm8tPnBhdGNoLmNhbGxGcmFtZVJlZ2lzdGVyID0gc3RhdGljX2Nhc3Q8aW50OF90
PihjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgbV9zdHViSW5mby0+cGF0Y2guYmFzZUdQUiA9IHN0
YXRpY19jYXN0PGludDhfdD4oYmFzZS5wYXlsb2FkR1BSKCkpOwogICAgIG1fc3R1YkluZm8tPnBh
dGNoLnZhbHVlR1BSID0gc3RhdGljX2Nhc3Q8aW50OF90Pih2YWx1ZS5wYXlsb2FkR1BSKCkpOwog
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC0xMzAsMTEgKzEyOSw5IEBAIHZvaWQgSklUR2V0QnlJ
ZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGEKIAogSklUUHV0QnlJZEdlbmVyYXRvcjo6SklUUHV0
QnlJZEdlbmVyYXRvcigKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2Rl
T3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKLSAgICBHUFJSZWcgY2Fs
bEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJS
ZWcgc2NyYXRjaCwKLSAgICBib29sIHJlZ2lzdGVyc0ZsdXNoZWQsIEVDTUFNb2RlIGVjbWFNb2Rl
LCBQdXRLaW5kIHB1dEtpbmQpCi0gICAgOiBKSVRCeUlkR2VuZXJhdG9yKAotICAgICAgICBjb2Rl
QmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMsIGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNl
LCB2YWx1ZSwKLSAgICAgICAgcmVnaXN0ZXJzRmx1c2hlZCkKKyAgICBKU1ZhbHVlUmVncyBiYXNl
LCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIGJvb2wgcmVnaXN0ZXJzRmx1c2hl
ZCwKKyAgICBFQ01BTW9kZSBlY21hTW9kZSwgUHV0S2luZCBwdXRLaW5kKQorICAgIDogSklUQnlJ
ZEdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMsIGJhc2UsIHZh
bHVlLCByZWdpc3RlcnNGbHVzaGVkKQogICAgICwgbV9zY3JhdGNoKHNjcmF0Y2gpCiAgICAgLCBt
X2VjbWFNb2RlKGVjbWFNb2RlKQogICAgICwgbV9wdXRLaW5kKHB1dEtpbmQpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5o
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZUNhY2hlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDggKzU2LDggQEAgcHJvdGVj
dGVkOgogICAgIEpJVEJ5SWRHZW5lcmF0b3IoKSB7IH0KIAogICAgIEpJVEJ5SWRHZW5lcmF0b3Io
Ci0gICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiwgR1BS
UmVnIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVl
UmVncyB2YWx1ZSwgYm9vbCByZWdpc3RlcnNGbHVzaGVkKTsKKyAgICAgICAgQ29kZUJsb2NrKiwg
Q29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVl
UmVncyB2YWx1ZSwKKyAgICAgICAgYm9vbCByZWdpc3RlcnNGbHVzaGVkKTsKICAgICAKIHB1Ymxp
YzoKICAgICB2b2lkIHJlcG9ydFNsb3dQYXRoQ2FsbChNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgc2xv
d1BhdGhCZWdpbiwgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCkKQEAgLTk2LDExICs5Niw4IEBA
IHB1YmxpYzoKIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IoCiAgICAgICAgIENvZGVCbG9jayog
Y29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2Vk
UmVnaXN0ZXJzLAotICAgICAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdz
IGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLAotICAgICAgICBib29sIHJlZ2lzdGVyc0ZsdXNoZWQp
Ci0gICAgICAgIDogSklUQnlJZEdlbmVyYXRvcigKLSAgICAgICAgICAgIGNvZGVCbG9jaywgY29k
ZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywgY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2UsIHZhbHVlLAot
ICAgICAgICAgICAgcmVnaXN0ZXJzRmx1c2hlZCkKKyAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwg
SlNWYWx1ZVJlZ3MgdmFsdWUsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKKyAgICAgICAgOiBKSVRC
eUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywgYmFzZSwg
dmFsdWUsIHJlZ2lzdGVyc0ZsdXNoZWQpCiAgICAgewogICAgIH0KICAgICAKQEAgLTExMiw5ICsx
MDksOCBAQCBwdWJsaWM6CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvcigpIHsgfQogCiAgICAgSklU
UHV0QnlJZEdlbmVyYXRvcigKLSAgICAgICAgQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29uc3Qg
UmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwKLSAg
ICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzY3JhdGNo
LCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQsCi0gICAgICAgIEVDTUFNb2RlLCBQdXRLaW5kKTsKKyAg
ICAgICAgQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdp
c3RlcnMsIEpTVmFsdWVSZWdzIGJhc2UsCisgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJS
ZWcgc2NyYXRjaCwgYm9vbCByZWdpc3RlcnNGbHVzaGVkLCBFQ01BTW9kZSwgUHV0S2luZCk7CiAg
ICAgCiAgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7CiAgICAgCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTkzLDcgKzkzLDYgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6ZW1pdExvYWRDaGFy
YWN0ZQogQUxXQVlTX0lOTElORSBKSVQ6OkNhbGwgSklUOjplbWl0TmFrZWRDYWxsKENvZGVQdHIg
ZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKG1fYnl0ZWNvZGVPZmZzZXQgIT0gKHVuc2lnbmVkKS0x
KTsgLy8gVGhpcyBtZXRob2Qgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGR1cmluZyBob3QvY29sZCBw
YXRoIGdlbmVyYXRpb24sIHNvIHRoYXQgbV9ieXRlY29kZU9mZnNldCBpcyBzZXQuCi0KICAgICBD
YWxsIG5ha2VkQ2FsbCA9IG5lYXJDYWxsKCk7CiAgICAgbV9jYWxscy5hcHBlbmQoQ2FsbFJlY29y
ZChuYWtlZENhbGwsIG1fYnl0ZWNvZGVPZmZzZXQsIGZ1bmN0aW9uLmV4ZWN1dGFibGVBZGRyZXNz
KCkpKTsKICAgICByZXR1cm4gbmFrZWRDYWxsOwpAQCAtMjIzLDIxICsyMjIsMjEgQEAgQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAK
LUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFBf
SklUT3BlcmF0aW9uX0VaIG9wZXJhdGlvbiwgaW50MzJfdCBvcCkKK0FMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VDQyBv
cGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMikKIHsKLSAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKG9wKSk7CisgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyKTsKICAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FQ0Mg
b3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCitBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJh
dGlvbl9FT0pzcyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09w
MikKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIpOwog
ICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAK
LUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNf
SklUT3BlcmF0aW9uX0VPSnNzIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVy
SUQgcmVnT3AyKQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oU3BydF9KSVRPcGVyYXRpb25fRVogb3BlcmF0aW9uLCBpbnQzMl90IG9wKQogewot
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMik7CisgICAgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihvcCkpOwogICAgIHJldHVybiBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKQEAgLTI3Nyw2ICsy
NzYsMTMgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9u
KTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb25Ob0V4Y2VwdGlvbkNoZWNrKEpfSklUT3BlcmF0aW9uX0VFIG9wZXJhdGlvbiwgUmVnaXN0
ZXJJRCByZWdPcCkKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3ApOwor
ICAgIHVwZGF0ZVRvcENhbGxGcmFtZSgpOworICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlv
bik7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3Bl
cmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24oVl9KSVRPcGVyYXRpb25fRUNi
IG9wZXJhdGlvbiwgQ29kZUJsb2NrKiBwb2ludGVyKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKHBvaW50ZXIpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5
LCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAxMCBQYXRyaWNrIEdhbnN0ZXJlciA8cGFyb2dhQHBhcm9nYS5jb20+CiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTVmFyaWFibGVPYmplY3QuaCIKICNpbmNsdWRlICJM
aW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIK
ICNpbmNsdWRlICJTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIK
IApAQCAtNDgsNiArNDksNyBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5h
dGl2CiB7CiAgICAgQ2FsbCBuYXRpdmVDYWxsOwogCisgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUo
KTsKICAgICBlbWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJhbWVIZWFkZXIoMCwgSlNTdGFjazo6Q29k
ZUJsb2NrKTsKICAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgJm1fdm0tPnRvcENhbGxG
cmFtZSk7CiAKQEAgLTU4LDIxICs2MCwxNyBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29t
cGlsZUNUSU5hdGl2CiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6
U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVh
ZGVyKHJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKIAotICAgIHBlZWsocmVnVDEpOwotICAg
IGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxKTsKLQogICAgIC8vIENhbGxp
bmcgY29udmVudGlvbjogICAgICBmKGVjeCwgZWR4LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rp
b24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwogICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIs
IFg4NlJlZ2lzdGVyczo6ZWN4KTsKIAotICAgIHN1YlB0cihUcnVzdGVkSW1tMzIoMTYgLSBzaXpl
b2Yodm9pZCopKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBhZnRlciBj
YWxsLgotCi0gICAgbW92ZShyZWdUMCwgY2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJl
c3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4K
KyAgICBzdWJQdHIoVHJ1c3RlZEltbTMyKDgpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFs
aWduIHN0YWNrIGZvciBjYWxsLgorICAgIHN0b3JlUHRyKFg4NlJlZ2lzdGVyczo6ZWN4LCBBZGRy
ZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyKSk7CiAKICAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgog
ICAgIG5hdGl2ZUNhbGwgPSBjYWxsKCk7CiAKLSAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDE2IC0g
c2l6ZW9mKHZvaWQqKSksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBhZGRQdHIoVHJ1c3Rl
ZEltbTMyKDgpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKICNlbGlmIENQVShBUk0pIHx8IENQ
VShTSDQpIHx8IENQVShNSVBTKQogICAgIC8vIExvYWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hh
aW4gaW50byB0aGlzIGNhbGxmcmFtZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNhbGwgY2FuIGdldCB0
byBpdHMgZ2xvYmFsIGRhdGEuCkBAIC04MCw5ICs3OCw2IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnBy
aXZhdGVDb21waWxlQ1RJTmF0aXYKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihK
U1N0YWNrOjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDIpOwogICAgIGVtaXRQdXRDZWxsVG9DYWxs
RnJhbWVIZWFkZXIocmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogCi0gICAgcHJlc2VydmVS
ZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QzKTsgLy8gQ2FsbGVlIHByZXNlcnZlZAotICAgIGVt
aXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QzKTsKLQogI2lmIENQVShNSVBTKQog
ICAgIC8vIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGZvciAodW51c2VkKSAxNiBieXRlcyAoOC1ieXRl
IGFsaWduZWQpIGZvciA0IGFyZ3VtZW50cy4KICAgICBzdWJQdHIoVHJ1c3RlZEltbTMyKDE2KSwg
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtOTMsNyArODgsNiBAQCBKSVQ6OkNvZGVSZWYgSklU
Ojpwcml2YXRlQ29tcGlsZUNUSU5hdGl2CiAgICAgbW92ZShjYWxsRnJhbWVSZWdpc3RlciwgYXJn
dW1lbnRHUFIwKTsKIAogICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6
OkNhbGxlZSwgYXJndW1lbnRHUFIxKTsKLSAgICBtb3ZlKHJlZ1QyLCBjYWxsRnJhbWVSZWdpc3Rl
cik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9h
ZGluZyBmcm9tIHN0YWNrLgogICAgIGxvYWRQdHIoQWRkcmVzcyhhcmd1bWVudEdQUjEsIE9CSkVD
VF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX2V4ZWN1dGFibGUpKSwgcmVnVDIpOwogCiAgICAgLy8g
Y2FsbCB0aGUgZnVuY3Rpb24KQEAgLTExMywzMCArMTA3LDI3IEBAIEpJVDo6Q29kZVJlZiBKSVQ6
OnByaXZhdGVDb21waWxlQ1RJTmF0aXYKICAgICAvLyBDaGVjayBmb3IgYW4gZXhjZXB0aW9uCiAg
ICAgSnVtcCBzYXdFeGNlcHRpb24gPSBicmFuY2gzMihOb3RFcXVhbCwgQWJzb2x1dGVBZGRyZXNz
KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHZtLT5hZGRyZXNzT2ZFeGNlcHRpb24oKSkgKyBPQkpF
Q1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpFbXB0eVZhbHVlVGFnKSk7IAogCisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAv
LyBSZXR1cm4uCiAgICAgcmV0KCk7CiAKICAgICAvLyBIYW5kbGUgYW4gZXhjZXB0aW9uCiAgICAg
c2F3RXhjZXB0aW9uLmxpbmsodGhpcyk7CiAKLSAgICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVz
cy4KLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDEpOwotCi0gICAgbW92
ZShUcnVzdGVkSW1tUHRyKCZ2bS0+ZXhjZXB0aW9uTG9jYXRpb24pLCByZWdUMik7Ci0gICAgc3Rv
cmVQdHIocmVnVDEsIHJlZ1QyKTsKICAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgJm1f
dm0tPnRvcENhbGxGcmFtZSk7CiAKICNpZiBDUFUoWDg2KQotICAgIGFkZFB0cihUcnVzdGVkSW1t
MzIoLTEyKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotICAgIHB1c2goY2FsbEZyYW1lUmVnaXN0
ZXIpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLTQpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CisgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyKSwgWDg2UmVnaXN0ZXJzOjpl
Y3gpOworICAgIHB1c2goWDg2UmVnaXN0ZXJzOjplY3gpOwogI2Vsc2UKLSAgICBtb3ZlKGNhbGxG
cmFtZVJlZ2lzdGVyLCBhcmd1bWVudEdQUjApOworICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJh
bWVSZWdpc3RlciksIGFyZ3VtZW50R1BSMCk7CiAjZW5kaWYKICAgICBtb3ZlKFRydXN0ZWRJbW1Q
dHIoRnVuY3Rpb25QdHIob3BlcmF0aW9uVk1IYW5kbGVFeGNlcHRpb24pLnZhbHVlKCkpLCByZWdU
Myk7CiAgICAgY2FsbChyZWdUMyk7CiAKICNpZiBDUFUoWDg2KQotICAgIGFkZFB0cihUcnVzdGVk
SW1tMzIoMTYpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0z
Mig4KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2VuZGlmCiAKICAgICBqdW1wVG9FeGNlcHRp
b25IYW5kbGVyKCk7CkBAIC0xNzUsNyArMTY2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZW5kKElu
c3RydWN0aW9uKiBjdXJyZQogewogICAgIEFTU0VSVChyZXR1cm5WYWx1ZUdQUiAhPSBjYWxsRnJh
bWVSZWdpc3Rlcik7CiAgICAgZW1pdExvYWQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZCwgcmVnVDEsIHJlZ1QwKTsKLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihB
ZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsK
KyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC05MjcsNiAr
OTE4LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goSW5zdHJ1Y3Rpb24qIGN1cgogICAgIG1v
dmUoVHJ1c3RlZEltbVB0cihtX3ZtKSwgcmVnVDMpOwogICAgIC8vIG9wZXJhdGlvblRocm93IHJl
dHVybnMgdGhlIGNhbGxGcmFtZSBmb3IgdGhlIGhhbmRsZXIuCiAgICAgbG9hZDMyKEFkZHJlc3Mo
cmVnVDMsIFZNOjpjYWxsRnJhbWVGb3JUaHJvd09mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIp
OworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IoY29kZUJs
b2NrKCkpICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CisKICAgICAvLyBOb3cgc3RvcmUgdGhlIGV4Y2VwdGlvbiByZXR1cm5lZCBi
eSBvcGVyYXRpb25UaHJvdy4KICAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMywgVk06OmV4Y2VwdGlv
bk9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSwg
cmVnVDApOwogICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QzLCBWTTo6ZXhjZXB0aW9uT2Zmc2V0KCkg
KyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIHJlZ1QxKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRl
ICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2lu
Y2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiU2xvd1Bh
dGhDYWxsLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAKQEAgLTczLDcgKzc0LDcg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfZW5kKEluc3RydWN0aW9uKiBjdXJyZQogewogICAgIFJFTEVB
U0VfQVNTRVJUKHJldHVyblZhbHVlR1BSICE9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBlbWl0
R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJldHVy
blZhbHVlR1BSKTsKLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihBZGRyZXNz
KGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKKyAgICBl
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC0yNjIsMTQgKzI2Myw4
IEBAIHZvaWQgSklUOjplbWl0X29wX3JldChJbnN0cnVjdGlvbiogY3VycmUKICAgICAvLyBSZXR1
cm4gdGhlIHJlc3VsdCBpbiAlZWF4LgogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmV0dXJuVmFsdWVHUFIpOwogCi0gICAgLy8gR3Jh
YiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhl
YWRlclB0cihyZWdUMSk7Ci0KLSAgICAvLyBSZXN0b3JlIG91ciBjYWxsZXIncyAiciIuCi0gICAg
ZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rl
cik7Ci0KLSAgICAvLyBSZXR1cm4uCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1
cm4ocmVnVDEpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisgICAgZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKIH0KIApAQCAtMjg1LDE0ICsyODAsOCBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMoSW5zCiAgICAgbG9hZFB0cihBZGRy
ZXNzKHJldHVyblZhbHVlR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgcmVnVDIpOwog
ICAgIEp1bXAgbm90T2JqZWN0ID0gZW1pdEp1bXBJZk5vdE9iamVjdChyZWdUMik7CiAKLSAgICAv
LyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZy
YW1lSGVhZGVyUHRyKHJlZ1QxKTsKLQotICAgIC8vIFJlc3RvcmUgb3VyIGNhbGxlcidzICJyIi4K
LSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJl
Z2lzdGVyKTsKLQogICAgIC8vIFJldHVybi4KLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9y
ZVJldHVybihyZWdUMSk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsK
IAogICAgIC8vIFJldHVybiAndGhpcycgaW4gJWVheC4KQEAgLTMwMCwxNCArMjg5LDggQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfcmV0X29iamVjdF9vcl90aGlzKElucwogICAgIG5vdE9iamVjdC5saW5r
KHRoaXMpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZCwgcmV0dXJuVmFsdWVHUFIpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFk
ZHJlc3MuCi0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMSk7
Ci0KLSAgICAvLyBSZXN0b3JlIG91ciBjYWxsZXIncyAiciIuCi0gICAgZW1pdEdldENhbGxlckZy
YW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KICAgICAvLyBS
ZXR1cm4uCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDEpOworICAg
IGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTY1MCw2ICs2MzMs
OSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9jYXRjaChJbnN0cnVjdGlvbiogY3VyCiB7CiAgICAgbW92
ZShUcnVzdGVkSW1tUHRyKG1fdm0pLCByZWdUMyk7CiAgICAgbG9hZDY0KEFkZHJlc3MocmVnVDMs
IFZNOjpjYWxsRnJhbWVGb3JUaHJvd09mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworCisg
ICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IoY29kZUJsb2NrKCkp
ICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CisKICAgICBsb2FkNjQoQWRkcmVzcyhyZWdUMywgVk06OmV4Y2VwdGlvbk9mZnNldCgp
KSwgcmVnVDApOwogICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShKU1Zh
bHVlKCkpKSwgQWRkcmVzcyhyZWdUMywgVk06OmV4Y2VwdGlvbk9mZnNldCgpKSk7CiAgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKQEAg
LTExMDMsMjAgKzEwODksOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9sb29wX2hpbnQoSW5zdHJ1Y3Rp
b24qCiB7CiAgICAgLy8gRW1pdCB0aGUgSklUIG9wdGltaXphdGlvbiBjaGVjazogCiAgICAgaWYg
KGNhbkJlT3B0aW1pemVkKCkpIHsKLSAgICAgICAgaWYgKE9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5
SW5Mb29wcygpKSB7Ci0gICAgICAgICAgICBhZGRTbG93Q2FzZShicmFuY2hBZGQzMihQb3NpdGl2
ZU9yWmVybywgVHJ1c3RlZEltbTMyKE9wdGlvbnM6OmV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRG
b3JMb29wKCkpLAotICAgICAgICAgICAgICAgIEFic29sdXRlQWRkcmVzcyhtX2NvZGVCbG9jay0+
YWRkcmVzc09mSklURXhlY3V0ZUNvdW50ZXIoKSkpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIC8vIEFkZCB3aXRoIHNhdHVyYXRpb24uCi0gICAgICAgICAgICBtb3ZlKFRydXN0ZWRJ
bW1QdHIobV9jb2RlQmxvY2stPmFkZHJlc3NPZkpJVEV4ZWN1dGVDb3VudGVyKCkpLCByZWdUMyk7
Ci0gICAgICAgICAgICBsb2FkMzIocmVnVDMsIHJlZ1QyKTsKLSAgICAgICAgICAgIEp1bXAgZG9u
dEFkZCA9IGJyYW5jaDMyKAotICAgICAgICAgICAgICAgIEdyZWF0ZXJUaGFuLCByZWdUMiwKLSAg
ICAgICAgICAgICAgICBUcnVzdGVkSW1tMzIoc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6
bWF4KCkgLSBPcHRpb25zOjpleGVjdXRpb25Db3VudGVySW5jcmVtZW50Rm9yTG9vcCgpKSk7Ci0g
ICAgICAgICAgICBhZGQzMihUcnVzdGVkSW1tMzIoT3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlcklu
Y3JlbWVudEZvckxvb3AoKSksIHJlZ1QyKTsKLSAgICAgICAgICAgIHN0b3JlMzIocmVnVDIsIHJl
Z1QzKTsKLSAgICAgICAgICAgIGRvbnRBZGQubGluayh0aGlzKTsKLSAgICAgICAgfQorICAgICAg
ICBhZGRTbG93Q2FzZShicmFuY2hBZGQzMihQb3NpdGl2ZU9yWmVybywgVHJ1c3RlZEltbTMyKE9w
dGlvbnM6OmV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JMb29wKCkpLAorICAgICAgICAgICAg
QWJzb2x1dGVBZGRyZXNzKG1fY29kZUJsb2NrLT5hZGRyZXNzT2ZKSVRFeGVjdXRlQ291bnRlcigp
KSkpOwogICAgIH0KIAogICAgIC8vIEVtaXQgdGhlIHdhdGNoZG9nIHRpbWVyIGNoZWNrOgpAQCAt
MTEyOCwxMSArMTEwMiwxMiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbG9vcF9oaW50KEluc3Ry
dWN0CiB7CiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgLy8gRW1pdCB0aGUgc2xvdyBwYXRoIGZv
ciB0aGUgSklUIG9wdGltaXphdGlvbiBjaGVjazoKLSAgICBpZiAoY2FuQmVPcHRpbWl6ZWQoKSAm
JiBPcHRpb25zOjplbmFibGVPU1JFbnRyeUluTG9vcHMoKSkgeworICAgIGlmIChjYW5CZU9wdGlt
aXplZCgpKSB7CiAgICAgICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKICAgICAgICAgCiAgICAgICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uT3B0aW1pemUsIG1fYnl0ZWNvZGVPZmZzZXQpOwogICAg
ICAgICBKdW1wIG5vT3B0aW1pemVkRW50cnkgPSBicmFuY2hUZXN0UHRyKFplcm8sIHJldHVyblZh
bHVlR1BSKTsKKyAgICAgICAgbW92ZShyZXR1cm5WYWx1ZUdQUjIsIHN0YWNrUG9pbnRlclJlZ2lz
dGVyKTsKICAgICAgICAganVtcChyZXR1cm5WYWx1ZUdQUik7CiAgICAgICAgIG5vT3B0aW1pemVk
RW50cnkubGluayh0aGlzKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCwxMiArMzAsMTIgQEAK
ICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCiAj
aW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgotI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5o
IgogI2luY2x1ZGUgIkRGR0NvbXBpbGF0aW9uTW9kZS5oIgogI2luY2x1ZGUgIkRGR0RyaXZlci5o
IgogI2luY2x1ZGUgIkRGR09TUkVudHJ5LmgiCiAjaW5jbHVkZSAiREZHV29ya2xpc3QuaCIKICNp
bmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIkVycm9ySGFuZGxpbmdTY29wZS5oIgogI2luY2x1
ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFsdWUuaCIKICNp
bmNsdWRlICJKSVQuaCIKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCAqIF9SZXR1cm5BZGRyZXNzKHZv
aWQpOwogI2VuZGlmCiAKIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0YWNrQ2hlY2so
RXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3ZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIENvZGVC
bG9jayogY29kZUJsb2NrKQogewogICAgIC8vIFdlIHBhc3MgaW4gb3VyIG93biBjb2RlIGJsb2Nr
LCBiZWNhdXNlIHRoZSBjYWxsZnJhbWUgaGFzbid0IGJlZW4gcG9wdWxhdGVkLgogICAgIFZNKiB2
bSA9IGNvZGVCbG9jay0+dm0oKTsKQEAgLTgwLDExICs4MCw4IEBAIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25TdGFja0NoZWNrKEUKICAgICAgICAgY2FsbGVyRnJhbWUgPSBleGVjOwogCiAg
ICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbGVyRnJhbWUpOwotCi0gICAg
SlNTdGFjayYgc3RhY2sgPSB2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCk7Ci0KLSAgICBpZiAoVU5M
SUtFTFkoIXN0YWNrLmdyb3coJmV4ZWMtPnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxv
Y2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNvdW50KCkpLm9mZnNldCgpXSkpKQotICAgICAg
ICB2bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJv
cihjYWxsZXJGcmFtZSkpOworICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKCp2bSk7
CisgICAgdm0tPnRocm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93
RXJyb3IoY2FsbGVyRnJhbWUpKTsKIH0KIAogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNhbGxBcml0eUNoZWNrKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTk3LDcgKzk0LDcgQEAgaW50MzJf
dCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxBcml0eQogCiAgICAgaW50MzJfdCBtaXNzaW5n
QXJnQ291bnQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IoZXhlYywgJnN0YWNrLCBD
b2RlRm9yQ2FsbCk7CiAgICAgaWYgKG1pc3NpbmdBcmdDb3VudCA8IDApCi0gICAgICAgIHZtLT50
aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxl
ckZyYW1lKSk7CisgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZyYW1lKTsK
IAogICAgIHJldHVybiBtaXNzaW5nQXJnQ291bnQ7CiB9CkBAIC0xMTIsNyArMTA5LDcgQEAgaW50
MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnN0cnVjdAogCiAgICAgaW50MzJfdCBtaXNz
aW5nQXJnQ291bnQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IoZXhlYywgJnN0YWNr
LCBDb2RlRm9yQ29uc3RydWN0KTsKICAgICBpZiAobWlzc2luZ0FyZ0NvdW50IDwgMCkKLSAgICAg
ICAgdm0tPnRocm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJy
b3IoY2FsbGVyRnJhbWUpKTsKKyAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbGVy
RnJhbWUpOwogCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0KQEAgLTYxMiwxNSArNjA5
LDEzIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVYKICAgICBkaXJl
Y3RQdXRCeVZhbChleGVjLCBhc09iamVjdChiYXNlVmFsdWUpLCBzdWJzY3JpcHQsIHZhbHVlKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVj
U3RhdGUqIGV4ZWNDYWxsZWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNhbGxFdmFsKEV4ZWNTdGF0ZSogZXhlYywgRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewotICAg
IENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwotICAg
IEFTU0VSVChleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+Y29kZVR5cGUo
KSAhPSBGdW5jdGlvbkNvZGUKLSAgICAgICAgfHwgIWV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCkt
PmNvZGVCbG9jaygpLT5uZWVkc0Z1bGxTY29wZUNoYWluKCkKLSAgICAgICAgfHwgZXhlY0NhbGxl
ZS0+Y2FsbGVyRnJhbWUoKS0+dW5jaGVja2VkUihleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5j
b2RlQmxvY2soKS0+YWN0aXZhdGlvblJlZ2lzdGVyKCkub2Zmc2V0KCkpLmpzVmFsdWUoKSk7Cisg
ICAgQVNTRVJUKGV4ZWMtPmNvZGVCbG9jaygpLT5jb2RlVHlwZSgpICE9IEZ1bmN0aW9uQ29kZQor
ICAgICAgICB8fCAhZXhlYy0+Y29kZUJsb2NrKCktPm5lZWRzRnVsbFNjb3BlQ2hhaW4oKQorICAg
ICAgICB8fCBleGVjLT51bmNoZWNrZWRSKGV4ZWMtPmNvZGVCbG9jaygpLT5hY3RpdmF0aW9uUmVn
aXN0ZXIoKS5vZmZzZXQoKSkuanNWYWx1ZSgpKTsKIAotICAgIGV4ZWNDYWxsZWUtPnNldFNjb3Bl
KGNhbGxlckZyYW1lLT5zY29wZSgpKTsKLSAgICBleGVjQ2FsbGVlLT5zZXRSZXR1cm5QQyhzdGF0
aWNfY2FzdDxJbnN0cnVjdGlvbio+KE9VUl9SRVRVUk5fQUREUkVTUykpOworICAgIGV4ZWNDYWxs
ZWUtPnNldFNjb3BlKGV4ZWMtPnNjb3BlKCkpOwogICAgIGV4ZWNDYWxsZWUtPnNldENvZGVCbG9j
aygwKTsKIAogICAgIGlmICghaXNIb3N0RnVuY3Rpb24oZXhlY0NhbGxlZS0+Y2FsbGVlQXNWYWx1
ZSgpLCBnbG9iYWxGdW5jRXZhbCkpCkBAIC02ODUsNyArNjgwLDggQEAgc3RhdGljIHZvaWQqIGhh
bmRsZUhvc3RDYWxsKEV4ZWNTdGF0ZSogZQogICAgIHJldHVybiB2bS0+Z2V0Q1RJU3R1Yih0aHJv
d0V4Y2VwdGlvbkZyb21DYWxsU2xvd1BhdGhHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpOwogfQogCi1pbmxpbmUgY2hhciogbGlua0ZvcihFeGVjU3RhdGUqIGV4ZWNDYWxsZWUs
IENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK2lubGluZSBjaGFyKiBsaW5rRm9yKAorICAg
IEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdp
c3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCk7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CkBA
IC03MDQsMzggKzcwMCw1MiBAQCBpbmxpbmUgY2hhciogbGlua0ZvcihFeGVjU3RhdGUqIGV4ZWND
YWxsCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAwOwogICAgIENhbGxMaW5rSW5mbyYgY2Fs
bExpbmtJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldENhbGxMaW5rSW5mbyhleGVjQ2FsbGVl
LT5yZXR1cm5QQygpKTsKICAgICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkKLSAg
ICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3Ioa2luZCktPmFk
ZHJlc3NGb3JDYWxsKCk7CisgICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5lbnRyeXBvaW50
Rm9yKCp2bSwga2luZCwgTXVzdENoZWNrQXJpdHksIHJlZ2lzdGVycyk7CiAgICAgZWxzZSB7CiAg
ICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVjdXRhYmxlID0gc3RhdGljX2Nh
c3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oZXhlY3V0YWJsZSk7CiAgICAgICAgIEpTT2JqZWN0KiBl
cnJvciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+cHJlcGFyZUZvckV4ZWN1dGlvbihleGVjQ2FsbGVl
LCBjYWxsZWUtPnNjb3BlKCksIGtpbmQpOwogICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAg
ICAgIHZtLT50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhl
YykpOworICAgICAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoZXhlYyk7CiAgICAgICAg
ICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odm0tPmdldENUSVN0dWIodGhyb3dF
eGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJl
c3MoKSk7CiAgICAgICAgIH0KICAgICAgICAgY29kZUJsb2NrID0gZnVuY3Rpb25FeGVjdXRhYmxl
LT5jb2RlQmxvY2tGb3Ioa2luZCk7CisgICAgICAgIEFyaXR5Q2hlY2tNb2RlIGFyaXR5OwogICAg
ICAgICBpZiAoZXhlY0NhbGxlZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSA8IHN0YXRp
Y19jYXN0PHNpemVfdD4oY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpIHx8IGNhbGxMaW5rSW5m
by5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNhbGxWYXJhcmdzKQotICAgICAgICAgICAgY29k
ZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZVdpdGhBcml0eUNoZWNr
Rm9yKGtpbmQpOworICAgICAgICAgICAgYXJpdHkgPSBNdXN0Q2hlY2tBcml0eTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVk
SklUQ29kZUZvcihraW5kKS0+YWRkcmVzc0ZvckNhbGwoKTsKKyAgICAgICAgICAgIGFyaXR5ID0g
QXJpdHlDaGVja05vdFJlcXVpcmVkOworICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRh
YmxlLT5lbnRyeXBvaW50Rm9yKCp2bSwga2luZCwgYXJpdHksIHJlZ2lzdGVycyk7CiAgICAgfQog
ICAgIGlmICghY2FsbExpbmtJbmZvLnNlZW5PbmNlKCkpCiAgICAgICAgIGNhbGxMaW5rSW5mby5z
ZXRTZWVuKCk7CiAgICAgZWxzZQotICAgICAgICBsaW5rRm9yKGV4ZWNDYWxsZWUsIGNhbGxMaW5r
SW5mbywgY29kZUJsb2NrLCBjYWxsZWUsIGNvZGVQdHIsIGtpbmQpOworICAgICAgICBsaW5rRm9y
KGV4ZWNDYWxsZWUsIGNhbGxMaW5rSW5mbywgY29kZUJsb2NrLCBjYWxsZWUsIGNvZGVQdHIsIGtp
bmQsIHJlZ2lzdGVycyk7CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvZGVQ
dHIuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiB9CiAKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTGlua0NhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewotICAgIHJldHVybiBsaW5rRm9y
KGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsKTsKKyAgICByZXR1cm4gbGlua0ZvcihleGVjQ2FsbGVl
LCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9CiAKIGNo
YXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWND
YWxsZWUpCiB7Ci0gICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0cnVj
dCk7CisgICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0cnVjdCwgUmVn
aXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7Cit9CisKK2NoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTGlua0NhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUp
Cit7CisgICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIE11c3RQcmVz
ZXJ2ZVJlZ2lzdGVycyk7CiB9CiAKLWlubGluZSBjaGFyKiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBKU0Nl
bGwqJiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCkKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
TGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3sK
KyAgICByZXR1cm4gbGlua0ZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0LCBNdXN0UHJl
c2VydmVSZWdpc3RlcnMpOworfQorCitpbmxpbmUgY2hhciogdmlydHVhbEZvcldpdGhGdW5jdGlv
bigKKyAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2lu
ZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycywKKyAgICBKU0NlbGwqJiBjYWxs
ZWVBc0Z1bmN0aW9uQ2VsbCkKIHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBleGVjQ2FsbGVlLT5j
YWxsZXJGcmFtZSgpOwogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwpAQCAtNzU3LDE2ICs3Njcs
MjAgQEAgaW5saW5lIGNoYXIqIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oRXhlYwogICAgICAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHZtLT5nZXRDVElTdHViKHRocm93RXhj
ZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNz
KCkpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIq
PihleGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGV4
ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3IoCisgICAgICAgICp2bSwga2luZCwgTXVzdENoZWNrQXJp
dHksIHJlZ2lzdGVycykuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiB9CiAKLWlubGluZSBjaGFyKiB2
aXJ0dWFsRm9yKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBr
aW5kKQoraW5saW5lIGNoYXIqIHZpcnR1YWxGb3IoCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVl
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSBy
ZWdpc3RlcnMpCiB7CiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbElnbm9yZWQ7Ci0g
ICAgcmV0dXJuIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwga2luZCwgY2FsbGVl
QXNGdW5jdGlvbkNlbGxJZ25vcmVkKTsKKyAgICByZXR1cm4gdmlydHVhbEZvcldpdGhGdW5jdGlv
bihleGVjQ2FsbGVlLCBraW5kLCByZWdpc3RlcnMsIGNhbGxlZUFzRnVuY3Rpb25DZWxsSWdub3Jl
ZCk7CiB9CiAKLXN0YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwoRXhlY1N0
YXRlKiBleGVjQ2FsbGVlLCBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsLCBDYWxsTGlua0lu
Zm8mIGNhbGxMaW5rSW5mbykKK3N0YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNh
bGwoCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUg
cmVnaXN0ZXJzLCBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsLAorICAgIENhbGxMaW5rSW5m
byYgY2FsbExpbmtJbmZvKQogewogICAgIGlmICghY2FsbGVlQXNGdW5jdGlvbkNlbGwpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTc4MCw3ICs3OTQsMTAgQEAgc3RhdGljIGJvb2wgYXR0ZW1w
dFRvT3B0aW1pemVDbG9zdXJlQ2FsbAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAg
QVNTRVJUKGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5oYXNKSVRDb2RlRm9yQ2FsbCgpKTsKLSAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9IGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5nZW5l
cmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5hZGRyZXNzRm9yQ2FsbCgpOworICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjb2RlUHRyID0KKyAgICAgICAgY2FsbGVlLT5leGVjdXRhYmxlKCktPmdlbmVy
YXRlZEpJVENvZGVGb3JDYWxsKCktPmFkZHJlc3NGb3JDYWxsKAorICAgICAgICAgICAgKmV4ZWND
YWxsZWUtPmNhbGxlckZyYW1lKCktPmNvZGVCbG9jaygpLT52bSgpLCBjYWxsZWUtPmV4ZWN1dGFi
bGUoKSwKKyAgICAgICAgICAgIEFyaXR5Q2hlY2tOb3RSZXF1aXJlZCwgcmVnaXN0ZXJzKTsKICAg
ICAKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jazsKICAgICBpZiAoY2FsbGVlLT5leGVjdXRhYmxl
KCktPmlzSG9zdEZ1bmN0aW9uKCkpCkBAIC03OTMsNyArODEwLDcgQEAgc3RhdGljIGJvb2wgYXR0
ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbAogICAgIAogICAgIGxpbmtDbG9zdXJlQ2FsbCgKICAg
ICAgICAgZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBjb2RlQmxvY2ssCi0gICAgICAgIGNhbGxl
ZS0+c3RydWN0dXJlKCksIGNhbGxlZS0+ZXhlY3V0YWJsZSgpLCBjb2RlUHRyKTsKKyAgICAgICAg
Y2FsbGVlLT5zdHJ1Y3R1cmUoKSwgY2FsbGVlLT5leGVjdXRhYmxlKCksIGNvZGVQdHIsIHJlZ2lz
dGVycyk7CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC04MDEsMjUgKzgxOCw0NiBAQCBz
dGF0aWMgYm9vbCBhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsCiBjaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCiB7CiAg
ICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbDsKLSAgICBjaGFyKiByZXN1bHQgPSB2aXJ0
dWFsRm9yV2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBjYWxsZWVBc0Z1bmN0
aW9uQ2VsbCk7CisgICAgY2hhciogcmVzdWx0ID0gdmlydHVhbEZvcldpdGhGdW5jdGlvbihleGVj
Q2FsbGVlLCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCwgY2Fs
bGVlQXNGdW5jdGlvbkNlbGwpOwogICAgIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvID0gZXhl
Y0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmdldENhbGxMaW5rSW5mbyhleGVj
Q2FsbGVlLT5yZXR1cm5QQygpKTsKIAotICAgIGlmICghYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJl
Q2FsbChleGVjQ2FsbGVlLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwgY2FsbExpbmtJbmZvKSkKLSAg
ICAgICAgbGlua1Nsb3dGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ2FsbCk7
CisgICAgaWYgKCFhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKGV4ZWNDYWxsZWUsIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQsIGNhbGxlZUFzRnVuY3Rpb25DZWxsLCBjYWxsTGlu
a0luZm8pKQorICAgICAgICBsaW5rU2xvd0ZvcihleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIENv
ZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKICAgICAKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxD
YWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsgICAgCi0gICAgcmV0dXJuIHZpcnR1YWxGb3Io
ZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwpOworICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4ZWNDYWxs
ZWUsIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAog
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0KEV4ZWNTdGF0ZSog
ZXhlY0NhbGxlZSkKIHsKLSAgICByZXR1cm4gdmlydHVhbEZvcihleGVjQ2FsbGVlLCBDb2RlRm9y
Q29uc3RydWN0KTsKKyAgICByZXR1cm4gdmlydHVhbEZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ29u
c3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAorY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVj
U3RhdGUqIGV4ZWNDYWxsZWUpCit7CisgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbDsK
KyAgICBjaGFyKiByZXN1bHQgPSB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIENv
ZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMsIGNhbGxlZUFzRnVuY3Rpb25DZWxsKTsK
KyAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1l
KCktPmNvZGVCbG9jaygpLT5nZXRDYWxsTGlua0luZm8oZXhlY0NhbGxlZS0+cmV0dXJuUEMoKSk7
CisKKyAgICBpZiAoIWF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwoZXhlY0NhbGxlZSwgTXVz
dFByZXNlcnZlUmVnaXN0ZXJzLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwgY2FsbExpbmtJbmZvKSkK
KyAgICAgICAgbGlua1Nsb3dGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ2Fs
bCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKKyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1Jl
Z3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreyAgICAKKyAgICByZXR1cm4gdmlydHVhbEZvcihl
eGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KKworY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1Jl
Z3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4ZWND
YWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CiAKIHNp
emVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVMZXNzKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsK
QEAgLTk3NCw3ICsxMDEyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlYnVnKEV4
ZWNTdAogfQogCiAjaWYgRU5BQkxFKERGR19KSVQpCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4KQorU2xv
d1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0YXRl
KiBleGVjLCBpbnQzMl90IGJ5dGVjb2RlSW5kZXgpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC0xMDI0
LDcgKzEwNjIsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4CiAg
ICAgICAgIGNvZGVCbG9jay0+dXBkYXRlQWxsUHJlZGljdGlvbnMoKTsKICAgICAgICAgaWYgKE9w
dGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAgIGRhdGFMb2coIkNob29zaW5nIG5vdCB0
byBvcHRpbWl6ZSAiLCAqY29kZUJsb2NrLCAiIHlldCwgYmVjYXVzZSB0aGUgdGhyZXNob2xkIGhh
c24ndCBiZWVuIHJlYWNoZWQuXG4iKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgfQogICAgIAogICAgIGlmIChjb2RlQmxvY2stPm1f
c2hvdWxkQWx3YXlzQmVJbmxpbmVkKSB7CkBAIC0xMDMyLDE4ICsxMDcwLDE5IEBAIGNoYXIqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAgICAgY29kZUJsb2NrLT5vcHRp
bWl6ZUFmdGVyV2FybVVwKCk7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAg
ICAgICAgICAgICBkYXRhTG9nKCJDaG9vc2luZyBub3QgdG8gb3B0aW1pemUgIiwgKmNvZGVCbG9j
aywgIiB5ZXQsIGJlY2F1c2UgbV9zaG91bGRBbHdheXNCZUlubGluZWQgPT0gdHJ1ZS5cbiIpOwot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAg
ICB9CiAKICAgICAvLyBXZSBjYW5ub3QgYmUgaW4gdGhlIHByb2Nlc3Mgb2YgYXN5bmNocm9ub3Vz
IGNvbXBpbGF0aW9uIGFuZCBhbHNvIGhhdmUgYW4gb3B0aW1pemVkCiAgICAgLy8gcmVwbGFjZW1l
bnQuCisgICAgREZHOjpXb3JrbGlzdCogd29ya2xpc3QgPSBERkc6OmV4aXN0aW5nR2xvYmFsREZH
V29ya2xpc3RPck51bGwoKTsKICAgICBBU1NFUlQoCi0gICAgICAgICF2bS53b3JrbGlzdAotICAg
ICAgICB8fCAhKHZtLndvcmtsaXN0LT5jb21waWxhdGlvblN0YXRlKERGRzo6Q29tcGlsYXRpb25L
ZXkoY29kZUJsb2NrLCBERkc6OkRGR01vZGUpKSAhPSBERkc6OldvcmtsaXN0OjpOb3RLbm93bgor
ICAgICAgICAhd29ya2xpc3QKKyAgICAgICAgfHwgISh3b3JrbGlzdC0+Y29tcGlsYXRpb25TdGF0
ZShERkc6OkNvbXBpbGF0aW9uS2V5KGNvZGVCbG9jaywgREZHOjpERkdNb2RlKSkgIT0gREZHOjpX
b3JrbGlzdDo6Tm90S25vd24KICAgICAgICAgJiYgY29kZUJsb2NrLT5oYXNPcHRpbWl6ZWRSZXBs
YWNlbWVudCgpKSk7CiAKICAgICBERkc6OldvcmtsaXN0OjpTdGF0ZSB3b3JrbGlzdFN0YXRlOwot
ICAgIGlmICh2bS53b3JrbGlzdCkgeworICAgIGlmICh3b3JrbGlzdCkgewogICAgICAgICAvLyBU
aGUgY2FsbCB0byBERkc6OldvcmtsaXN0Ojpjb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSgpIHdp
bGwgY29tcGxldGUgYWxsIHJlYWR5CiAgICAgICAgIC8vIChpLmUuIGNvbXBpbGVkKSBjb2RlIGJs
b2Nrcy4gQnV0IGlmIGl0IGNvbXBsZXRlcyBvdXJzLCB3ZSBhbHNvIG5lZWQgdG8ga25vdwogICAg
ICAgICAvLyB3aGF0IHRoZSByZXN1bHQgd2FzIHNvIHRoYXQgd2UgZG9uJ3QgcGxvdyBhaGVhZCBh
bmQgYXR0ZW1wdCBPU1Igb3IgaW1tZWRpYXRlCkBAIC0xMDYyLDcgKzExMDEsNyBAQCBjaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4CiAgICAgICAgIC8vIHByb2JhYmx5IGEg
d2FzdGUgb2YgbWVtb3J5LiBPdXIgZ29hbCBoZXJlIGlzIHRvIGNvbXBsZXRlIGNvZGUgYmxvY2tz
IGFzIHNvb24gYXMKICAgICAgICAgLy8gcG9zc2libGUgaW4gb3JkZXIgdG8gbWluaW1pemUgdGhl
IGNoYW5jZXMgb2YgdXMgZXhlY3V0aW5nIGJhc2VsaW5lIGNvZGUgYWZ0ZXIKICAgICAgICAgLy8g
b3B0aW1pemVkIGNvZGUgaXMgYWxyZWFkeSBhdmFpbGFibGUuCi0gICAgICAgIHdvcmtsaXN0U3Rh
dGUgPSB2bS53b3JrbGlzdC0+Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oCisgICAgICAgIHdv
cmtsaXN0U3RhdGUgPSB3b3JrbGlzdC0+Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oCiAgICAg
ICAgICAgICB2bSwgREZHOjpDb21waWxhdGlvbktleShjb2RlQmxvY2ssIERGRzo6REZHTW9kZSkp
OwogICAgIH0gZWxzZQogICAgICAgICB3b3JrbGlzdFN0YXRlID0gREZHOjpXb3JrbGlzdDo6Tm90
S25vd247CkBAIC0xMDcyLDcgKzExMTEsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk9wdGltaXplKEV4CiAgICAgICAgIC8vIHJlcGxhY2VtZW50LgogICAgICAgICBSRUxFQVNFX0FT
U0VSVCghY29kZUJsb2NrLT5oYXNPcHRpbWl6ZWRSZXBsYWNlbWVudCgpKTsKICAgICAgICAgY29k
ZUJsb2NrLT5zZXRPcHRpbWl6YXRpb25UaHJlc2hvbGRCYXNlZE9uQ29tcGlsYXRpb25SZXN1bHQo
Q29tcGlsYXRpb25EZWZlcnJlZCk7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
ZW5jb2RlUmVzdWx0KDAsIDApOwogICAgIH0KIAogICAgIGlmICh3b3JrbGlzdFN0YXRlID09IERG
Rzo6V29ya2xpc3Q6OkNvbXBpbGVkKSB7CkBAIC0xMDg1LDcgKzExMjQsNyBAQCBjaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4CiAgICAgICAgICAgICBjb2RlQmxvY2stPnVw
ZGF0ZUFsbFByZWRpY3Rpb25zKCk7CiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9T
UigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkNvZGUgYmxvY2sgIiwgKmNvZGVCbG9jaywg
IiB3YXMgY29tcGlsZWQgYnV0IGl0IGRvZXNuJ3QgaGF2ZSBhbiBvcHRpbWl6ZWQgcmVwbGFjZW1l
bnQuXG4iKTsKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGVuY29k
ZVJlc3VsdCgwLCAwKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoY29kZUJsb2NrLT5oYXNP
cHRpbWl6ZWRSZXBsYWNlbWVudCgpKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NS
KCkpCkBAIC0xMTEwLDcgKzExNDksNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9w
dGltaXplKEV4CiAgICAgICAgICAgICAgICAgICAgICIoIiwgKmNvZGVCbG9jay0+cmVwbGFjZW1l
bnQoKSwgIikgKGluIGxvb3ApLlxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjb2Rl
QmxvY2stPnJlcGxhY2VtZW50KCktPmpldHRpc29uKENvdW50UmVvcHRpbWl6YXRpb24pOwotICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDAp
OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCFjb2RlQmxvY2stPnNob3Vs
ZE9wdGltaXplTm93KCkpIHsKQEAgLTExMTksNyArMTE1OCw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAgICAgICAgICAgICAgICAgIkRlbGF5aW5nIG9w
dGltaXphdGlvbiBmb3IgIiwgKmNvZGVCbG9jaywKICAgICAgICAgICAgICAgICAgICAgIiBiZWNh
dXNlIG9mIGluc3VmZmljaWVudCBwcm9maWxpbmcuXG4iKTsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsK
ICAgICAgICAgfQogCiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCkBAIC0xMTQ3
LDEyICsxMTg2LDExIEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgK
ICAgICAgICAgfQogCiAgICAgICAgIENvbXBpbGF0aW9uUmVzdWx0IHJlc3VsdCA9IERGRzo6Y29t
cGlsZSgKLSAgICAgICAgICAgIHZtLCBjb2RlQmxvY2stPm5ld1JlcGxhY2VtZW50KCkuZ2V0KCks
IERGRzo6REZHTW9kZSwgYnl0ZWNvZGVJbmRleCwKLSAgICAgICAgICAgIG11c3RIYW5kbGVWYWx1
ZXMsIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoKSwKLSAgICAg
ICAgICAgIHZtLmVuc3VyZVdvcmtsaXN0KCkpOworICAgICAgICAgICAgdm0sIGNvZGVCbG9jay0+
bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgMCwgREZHOjpERkdNb2RlLCBieXRlY29kZUluZGV4LAor
ICAgICAgICAgICAgbXVzdEhhbmRsZVZhbHVlcywgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s6OmNyZWF0ZSgpKTsKICAgICAgICAgCiAgICAgICAgIGlmIChyZXN1bHQgIT0gQ29t
cGlsYXRpb25TdWNjZXNzZnVsKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBy
ZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgIH0KICAgICAKICAgICBDb2RlQmxvY2sqIG9w
dGltaXplZENvZGVCbG9jayA9IGNvZGVCbG9jay0+cmVwbGFjZW1lbnQoKTsKQEAgLTExNjYsNyAr
MTIwNCw4IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAg
ICAgfQogCiAgICAgICAgIGNvZGVCbG9jay0+b3B0aW1pemVTb29uKCk7Ci0gICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxjaGFyKj4oYWRkcmVzcyk7CisgICAgICAgIEFTU0VSVChleGVjLT5jb2Rl
QmxvY2soKSA9PSBvcHRpbWl6ZWRDb2RlQmxvY2spOworICAgICAgICByZXR1cm4gZW5jb2RlUmVz
dWx0KGFkZHJlc3MsIGV4ZWMtPnRvcE9mRnJhbWUoKSk7CiAgICAgfQogCiAgICAgaWYgKE9wdGlv
bnM6OnZlcmJvc2VPU1IoKSkgewpAQCAtMTE5NSwxNCArMTIzNCwxNCBAQCBjaGFyKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4CiAgICAgICAgICAgICAgICAgKmNvZGVCbG9jay0+
cmVwbGFjZW1lbnQoKSwgIiAoYWZ0ZXIgT1NSIGZhaWwpLlxuIik7CiAgICAgICAgIH0KICAgICAg
ICAgb3B0aW1pemVkQ29kZUJsb2NrLT5qZXR0aXNvbihDb3VudFJlb3B0aW1pemF0aW9uKTsKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAg
fQogCiAgICAgLy8gT1NSIGZhaWxlZCB0aGlzIHRpbWUsIGJ1dCBpdCBtaWdodCBzdWNjZWVkIG5l
eHQgdGltZSEgTGV0IHRoZSBjb2RlIHJ1biBhIGJpdAogICAgIC8vIGxvbmdlciBhbmQgdGhlbiB0
cnkgYWdhaW4uCiAgICAgY29kZUJsb2NrLT5vcHRpbWl6ZUFmdGVyV2FybVVwKCk7CiAgICAgCi0g
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKIH0KICNlbmRpZgog
CkBAIC0xNTMwLDEzICsxNTY5LDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uSW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZXN1bHQpKTsK
IH0KIAotQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVBbmRBbGxvY0ZyYW1l
Rm9yVmFyYXJncyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVu
dHMsIGludDMyX3QgZmlyc3RGcmVlUmVnaXN0ZXIpCitDYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRBcmd1bWVudHMsIGludDMyX3QgZmlyc3RGcmVlUmVnaXN0ZXIpCiB7CiAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2
bSwgZXhlYyk7CiAgICAgSlNTdGFjayogc3RhY2sgPSAmZXhlYy0+aW50ZXJwcmV0ZXIoKS0+c3Rh
Y2soKTsKICAgICBKU1ZhbHVlIGFyZ3VtZW50cyA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQXJn
dW1lbnRzKTsKLSAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IHNpemVBbmRBbGxvY0ZyYW1l
Rm9yVmFyYXJncyhleGVjLCBzdGFjaywgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3Rlcik7Cisg
ICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBzaXplRnJhbWVGb3JWYXJhcmdzKGV4ZWMsIHN0
YWNrLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKICAgICByZXR1cm4gbmV3Q2FsbEZy
YW1lOwogfQogCkBAIC0xNzI5LDEyICsxNzY4LDExIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Jbml0R2xvYmFsQ28KICAgICBwY1sxXS51LnJlZ2lzdGVyUG9pbnRlci0+c2V0KCp2bSwg
ZXhlYy0+Y29kZUJsb2NrKCktPmdsb2JhbE9iamVjdCgpLCB2YWx1ZSk7CiB9CiAKLXZvaWQgSklU
X09QRVJBVElPTiBsb29rdXBFeGNlcHRpb25IYW5kbGVyKEV4ZWNTdGF0ZSogZXhlYykKK3ZvaWQg
SklUX09QRVJBVElPTiBsb29rdXBFeGNlcHRpb25IYW5kbGVyKFZNKiB2bSwgRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGV4ZWMsIE5hdGl2ZUNhbGxGcmFtZVRyYWNlcjo6Vk1FbnRyeVNlbnRpbmVsT0spOwogCi0g
ICAgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZSA9IGV4ZWMtPmV4Y2VwdGlvbigpOworICAgIEpTVmFs
dWUgZXhjZXB0aW9uVmFsdWUgPSB2bS0+ZXhjZXB0aW9uKCk7CiAgICAgQVNTRVJUKGV4Y2VwdGlv
blZhbHVlKTsKICAgICAKICAgICBnZW5lcmljVW53aW5kKHZtLCBleGVjLCBleGNlcHRpb25WYWx1
ZSk7CkBAIC0xNzY3LDcgKzE4MDUsNiBAQCBhc20gKAogIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkco
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogSElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIg
IlxuIgotICAgICJtb3YgMCglcmJwKSwgJXJicFxuIiAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxs
ZXJGcmFtZQogICAgICJtb3YgJXJicCwgJXJkaVxuIgogICAgICJqbXAgIiBMT0NBTF9SRUZFUkVO
Q0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CkBAIC0xNzc4
LDggKzE4MTUsMTEgQEAgYXNtICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxs
UmV0dXJuVmFsdWUpICJcbiIKIEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJc
biIKIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAi
bW92IDAoJWVicCksICVlYnBcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKLSAg
ICAibW92ICVlYnAsIDQoJWVzcClcbiIKKyAgICAibW92ICglZXNwKSwgJWVheFxuIgorICAgICJw
dXNoICVlYnBcbiIKKyAgICAibGVhbCAtNCglZXNwKSwgJWVzcFxuIgorICAgICJwdXNoICVlYnBc
biIKKyAgICAicHVzaCAlZWF4XG4iCiAgICAgImptcCAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0
Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKIApAQCAtMTc5Miw3ICsxODMy
LDYgQEAgSElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogIi50aHVtYiIg
IlxuIgogIi50aHVtYl9mdW5jICIgVEhVTUJfRlVOQ19QQVJBTShnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4i
Ci0gICAgImxkciByNywgW3I3LCAjMF0iICJcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVy
RnJhbWUKICAgICAibW92IHIwLCByNyIgIlxuIgogICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOwpAQCAtMTgwNCw3ICsx
ODQzLDYgQEAgYXNtICgKIEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIK
IElOTElORV9BUk1fRlVOQ1RJT04oZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkKIFNZTUJPTF9TVFJJ
TkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibGRyIHIxMSwgW3IxMSwg
IzBdIiAiXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdiByMCwg
cjExIiAiXG4iCiAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1
ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CkBAIC0xODE2LDcgKzE4NTQsNiBAQCBhc20gKAogIi5n
bG9ibCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogSElERV9T
WU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRIb3N0
Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgotICAgICJsZHVyIHgyOSwgW3gyOSwgIzBdIiAiXG4i
CiAgICAgICJtb3YgeDAsIHgyOSIgIlxuIgogICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRI
b3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MjgsNyArMTg2
NSw2IEBAIGFzbSAoCiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBT
WU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCiAgICAgTE9BRF9G
VU5DVElPTl9UT19UOShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkKLSAgICAi
bHcgJGZwLCAwKCRmcCkiICJcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAg
ICAibW92ZSAkYTAsICRmcCIgIlxuIgogICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOwpAQCAtMTgzOSw3ICsxODc1LDYg
QEAgYXNtICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUp
ICJcbiIKIEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9T
VFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibW92LmwgQHIxNCwg
cjE0IiAiXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdiByMTQs
IHI0IiAiXG4iCiAgICAgIm1vdi5sIDJmLCAiIFNINF9TQ1JBVENIX1JFR0lTVEVSICJcbiIKICAg
ICAiYnJhZiAiIFNINF9TQ1JBVENIX1JFR0lTVEVSICJcbiIKQEAgLTE4NTIsNyArMTg4Nyw2IEBA
IFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoKIGV4dGVybiAiQyIgewog
ICAgIF9fZGVjbHNwZWMobmFrZWQpIEVuY29kZWRKU1ZhbHVlIEhPU1RfQ0FMTF9SRVRVUk5fVkFM
VUVfT1BUSU9OIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUoKQogICAgIHsKLSAgICAgICAgX19hc20g
bW92IGVicCwgW2VicCArIDBdOyAvLyBDYWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAg
ICAgICBfX2FzbSBtb3YgW2VzcCArIDRdLCBlYnA7CiAgICAgICAgIF9fYXNtIGptcCBnZXRIb3N0
Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZQogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjks
NiArMjksNyBAQAogI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKKyNp
bmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAj
aW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKQEAgLTcyLDYgKzcz
LDcgQEAgZXh0ZXJuICJDIiB7CiAgICAgUGM6IEluc3RydWN0aW9uKiBpLmUuIGJ5dGVjb2RlIFBD
CiAgICAgUjogUmVnaXN0ZXIKICAgICBTOiBzaXplX3QKKyAgICBTcHJ0OiBTbG93UGF0aFJldHVy
blR5cGUKICAgICBTc2k6IFN0cnVjdHVyZVN0dWJJbmZvKgogICAgIFN0OiBTdHJ1Y3R1cmUqCiAg
ICAgVjogdm9pZApAQCAtOTIsNiArOTQsNyBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gKCpKCiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJ
VE9wZXJhdGlvbl9FQ0kpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFN0cmluZ0ltcGwqKTsKIHR5cGVk
ZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VDSikoRXhl
Y1N0YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRURBKShFeGVjU3RhdGUqLCBkb3VibGUs
IEpTQXJyYXkqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklU
T3BlcmF0aW9uX0VFKShFeGVjU3RhdGUqLCBFeGVjU3RhdGUqKTsKIHR5cGVkZWYgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VJKShFeGVjU3RhdGUqLCBTdHJp
bmdJbXBsKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9w
ZXJhdGlvbl9FSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpBKShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgSlNBcnJheSopOwpAQCAtMTMzLDYgKzEzNiw3IEBAIHR5cGVkZWYgc2l6
ZV90IEpJVF9PUEVSQVRJT04gKCpTX0pJVE9wZXIKIHR5cGVkZWYgc2l6ZV90IEpJVF9PUEVSQVRJ
T04gKCpTX0pJVE9wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVyYXRp
b25fRU9Kc3MpKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNTdHJpbmcqKTsKIHR5cGVkZWYgc2l6
ZV90IEpJVF9PUEVSQVRJT04gKCpTX0pJVE9wZXJhdGlvbl9KKShFbmNvZGVkSlNWYWx1ZSk7Cit0
eXBlZGVmIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OICgqU3BydF9KSVRPcGVyYXRp
b25fRVopKEV4ZWNTdGF0ZSosIGludDMyX3QpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04g
KCpWX0pJVE9wZXJhdGlvbl9FKShFeGVjU3RhdGUqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRUMpKEV4ZWNTdGF0ZSosIEpTQ2VsbCopOwogdHlwZWRlZiB2
b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ2IpKEV4ZWNTdGF0ZSosIENvZGVC
bG9jayopOwpAQCAtMTc0LDE4ICsxNzgsMTcgQEAgdHlwZWRlZiBjaGFyKiBKSVRfT1BFUkFUSU9O
ICgqUF9KSVRPcGVyYQogdHlwZWRlZiBjaGFyKiBKSVRfT1BFUkFUSU9OICgqUF9KSVRPcGVyYXRp
b25fRVN0UFMpKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIHZvaWQqLCBzaXplX3QpOwogdHlwZWRl
ZiBjaGFyKiBKSVRfT1BFUkFUSU9OICgqUF9KSVRPcGVyYXRpb25fRVN0U1MpKEV4ZWNTdGF0ZSos
IFN0cnVjdHVyZSosIHNpemVfdCwgc2l6ZV90KTsKIHR5cGVkZWYgY2hhciogSklUX09QRVJBVElP
TiAoKlBfSklUT3BlcmF0aW9uX0VTdFopKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGludDMyX3Qp
OwotdHlwZWRlZiBjaGFyKiBKSVRfT1BFUkFUSU9OICgqUF9KSVRPcGVyYXRpb25fRVopKEV4ZWNT
dGF0ZSosIGludDMyX3QpOwogdHlwZWRlZiBjaGFyKiBKSVRfT1BFUkFUSU9OICgqUF9KSVRPcGVy
YXRpb25fRVpaKShFeGVjU3RhdGUqLCBpbnQzMl90LCBpbnQzMl90KTsKIHR5cGVkZWYgU3RyaW5n
SW1wbCogSklUX09QRVJBVElPTiAoKklfSklUT3BlcmF0aW9uX0VKc3MpKEV4ZWNTdGF0ZSosIEpT
U3RyaW5nKik7CiB0eXBlZGVmIEpTU3RyaW5nKiBKSVRfT1BFUkFUSU9OICgqSnNzX0pJVE9wZXJh
dGlvbl9FWikoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiAKIC8vIFRoaXMgbWV0aG9kIGlzIHVzZWQg
dG8gbG9va3VwIGFuIGV4Y2VwdGlvbiBoYW5kZXIsIGtleWVkIGJ5IGZhdWx0TG9jYXRpb24sIHdo
aWNoIGlzCiAvLyB0aGUgcmV0dXJuIGxvY2F0aW9uIGZyb20gb25lIG9mIHRoZSBjYWxscyBvdXQg
dG8gb25lIG9mIHRoZSBoZWxwZXIgb3BlcmF0aW9ucyBhYm92ZS4KLSAgICAKLXZvaWQgSklUX09Q
RVJBVElPTiBsb29rdXBFeGNlcHRpb25IYW5kbGVyKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsK
Kwordm9pZCBKSVRfT1BFUkFUSU9OIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIoVk0qLCBFeGVjU3Rh
dGUqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVk1IYW5kbGVF
eGNlcHRpb24oRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogCi12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uU3RhY2tDaGVjayhFeGVjU3RhdGUqLCBDb2RlQmxvY2sqKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IoRXhl
Y1N0YXRlKiwgQ29kZUJsb2NrKikgV1RGX0lOVEVSTkFMOwogaW50MzJfdCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIGludDMy
X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrKEV4ZWNTdGF0ZSop
IFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0
QnlJZChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBTdHJp
bmdJbXBsKikgV1RGX0lOVEVSTkFMOwpAQCAtMjEzLDEyICsyMTYsMTggQEAgdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZQogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSopIFdURl9J
TlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENhbGwoRXhlY1N0
YXRlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25DYWxsRXZhbChFeGVjU3RhdGUqLCBFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsK
IGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSop
IFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENhbGwo
RXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25W
aXJ0dWFsQ29uc3RydWN0KEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTGlua0NvbnN0cnVjdChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7Citj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3MoRXhl
Y1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5r
Q2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7Citj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3Mo
RXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25W
aXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFM
OworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ29uc3RydWN0VGhhdFByZXNlcnZl
c1JlZ3MoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworCiBzaXplX3QgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Db21wYXJlTGVzcyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBh
cmVMZXNzRXEoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZf
SU5URVJOQUw7CiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlR3JlYXRlcihF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsK
QEAgLTI0Miw3ICsyNTEsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGF0
aWNFCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3coRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWJ1
ZyhFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiAjaWYgRU5BQkxFKERGR19KSVQp
Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSosIGludDMy
X3QpIFdURl9JTlRFUk5BTDsKK1Nsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk9wdGltaXplKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKICNlbmRpZgog
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SW5kZXgoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlKTsKICNpZiBVU0UoSlNWQUxVRTY0KQpA
QCAtMjY3LDcgKzI3Niw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UZWFyT2ZmQXJn
dW0KIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVsZXRlQnlJZChFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBjb25zdCBJZGVudGlmaWVyKikgV1RGX0lOVEVS
TkFMOwogSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFBOYW1lcyhFeGVjU3RhdGUq
LCBKU09iamVjdCopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uSW5zdGFuY2VPZihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgcHJvdG8pIFdURl9JTlRFUk5BTDsKLUNhbGxGcmFtZSogSklUX09QRVJBVElPTiBvcGVy
YXRpb25TaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUgYXJndW1lbnRzLCBpbnQzMl90IGZpcnN0RnJlZVJlZ2lzdGVyKSBXVEZfSU5URVJOQUw7CitD
YWxsRnJhbWUqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncyhFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGludDMyX3QgZmlyc3RGcmVlUmVnaXN0
ZXIpIFdURl9JTlRFUk5BTDsKIENhbGxGcmFtZSogSklUX09QRVJBVElPTiBvcGVyYXRpb25Mb2Fk
VmFyYXJncyhFeGVjU3RhdGUqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cykgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Ub09iamVjdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSkgV1RGX0lOVEVSTkFMOwogCkBAIC0yODcsNiArMjk2LDY4IEBAIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25Jbml0R2xvYmFsQ28KIAogfSAvLyBleHRlcm4gIkMiCiAKK2lubGluZSBQX0pJ
VE9wZXJhdGlvbl9FIG9wZXJhdGlvbkxpbmtGb3IoCisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2lu
ZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRj
aCAoa2luZCkgeworICAgIGNhc2UgQ29kZUZvckNhbGw6CisgICAgICAgIHN3aXRjaCAocmVnaXN0
ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAg
ICAgICAgICAgIHJldHVybiBvcGVyYXRpb25MaW5rQ2FsbDsKKyAgICAgICAgY2FzZSBNdXN0UHJl
c2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uTGlua0NhbGxUaGF0
UHJlc2VydmVzUmVnczsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIENvZGVG
b3JDb25zdHJ1Y3Q6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2Ug
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiBvcGVy
YXRpb25MaW5rQ29uc3RydWN0OworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoK
KyAgICAgICAgICAgIHJldHVybiBvcGVyYXRpb25MaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1Jl
Z3M7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2lubGluZSBQX0pJVE9wZXJhdGlv
bl9FIG9wZXJhdGlvblZpcnR1YWxGb3IoCisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
LCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAoa2lu
ZCkgeworICAgIGNhc2UgQ29kZUZvckNhbGw6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7
CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAg
ICAgIHJldHVybiBvcGVyYXRpb25WaXJ0dWFsQ2FsbDsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2Vy
dmVSZWdpc3RlcnM6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uVmlydHVhbENhbGxUaGF0
UHJlc2VydmVzUmVnczsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIENvZGVG
b3JDb25zdHJ1Y3Q6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2Ug
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiBvcGVy
YXRpb25WaXJ0dWFsQ29uc3RydWN0OworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVy
czoKKyAgICAgICAgICAgIHJldHVybiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0VGhhdFByZXNl
cnZlc1JlZ3M7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2lubGluZSBQX0pJVE9w
ZXJhdGlvbl9FIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbEZvcihSZWdpc3RlclByZXNlcnZhdGlv
bk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgY2FzZSBS
ZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICByZXR1cm4gb3BlcmF0aW9u
TGlua0Nsb3N1cmVDYWxsOworICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAg
ICByZXR1cm4gb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsVGhhdFByZXNlcnZlc1JlZ3M7CisgICAg
fQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9w
ZXJ0eUFjY2VzczMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgyLDcgKzQ4
Miw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChJbnN0cnVjdGlvbioKIAogICAgIEpJ
VEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbiht
X2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKLSAgICAg
ICAgY2FsbEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpT
VmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIHRydWUpOworICAgICAgICBKU1ZhbHVlUmVnczo6cGF5
bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCB0cnVlKTsKICAgICBn
ZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRo
SnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwpAQCAtNTMwLDcgKzUzMCw3IEBA
IHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV9pZChJbnN0cnVjdGlvbioKIAogICAgIEpJVFB1dEJ5
SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVj
b2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKLSAgICAgICAgY2Fs
bEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVS
ZWdzKHJlZ1QzLCByZWdUMiksCisgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdU
MCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMiksCiAgICAgICAgIHJlZ1QxLCB0cnVlLCBtX2Nv
ZGVCbG9jay0+ZWNtYU1vZGUoKSwgZGlyZWN0ID8gRGlyZWN0IDogTm90RGlyZWN0KTsKICAgICAK
ICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwg
MjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTUyMCw3ICs1MjAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9n
ZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qCiAKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAg
ICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVy
U2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1Zh
bHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgdHJ1ZSk7CisgICAgICAgIEpTVmFs
dWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCB0cnVlKTsKICAgICBnZW4uZ2VuZXJh
dGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsK
ICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwpAQCAtNTY2LDggKzU2Niw4IEBAIHZvaWQgSklU
OjplbWl0X29wX3B1dF9ieV9pZChJbnN0cnVjdGlvbioKIAogICAgIEpJVFB1dEJ5SWRHZW5lcmF0
b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0
KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKLSAgICAgICAgY2FsbEZyYW1lUmVn
aXN0ZXIsIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEpLCByZWdUMiwgdHJ1
ZSwKLSAgICAgICAgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksIGRpcmVjdCA/IERpcmVjdCA6IE5v
dERpcmVjdCk7CisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEp
LCByZWdUMiwgdHJ1ZSwgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksCisgICAgICAgIGRpcmVjdCA/
IERpcmVjdCA6IE5vdERpcmVjdCk7CiAgICAgCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRo
aXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CkBAIC0xMDc4LDcgKzEw
NzgsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChCeVZhbEluCiAgICAgcGF0
Y2hCdWZmZXIubGluayhkb25lLCBieVZhbEluZm8tPmJhZFR5cGVKdW1wLmxhYmVsQXRPZmZzZXQo
YnlWYWxJbmZvLT5iYWRUeXBlSnVtcFRvRG9uZSkpOwogICAgIAogICAgIGJ5VmFsSW5mby0+c3R1
YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAotICAgICAgICBwYXRjaEJ1ZmZlciwK
KyAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAogICAgICAgICAoIkJhc2VsaW5lIGdl
dF9ieV92YWwgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHRvQ1N0cmluZygqbV9jb2Rl
QmxvY2spLmRhdGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7CiAgICAgCiAgICAgUmVwYXRj
aEJ1ZmZlciByZXBhdGNoQnVmZmVyKG1fY29kZUJsb2NrKTsKQEAgLTExNDEsMTIgKzExNDEsMTIg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlWYWxJbgogICAgIGJvb2wgaXNE
aXJlY3QgPSBtX2ludGVycHJldGVyLT5nZXRPcGNvZGVJRChjdXJyZW50SW5zdHJ1Y3Rpb24tPnUu
b3Bjb2RlKSA9PSBvcF9wdXRfYnlfdmFsX2RpcmVjdDsKICAgICBpZiAoIWlzRGlyZWN0KSB7CiAg
ICAgICAgIGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAot
ICAgICAgICAgICAgcGF0Y2hCdWZmZXIsCisgICAgICAgICAgICBtX2NvZGVCbG9jaywgcGF0Y2hC
dWZmZXIsCiAgICAgICAgICAgICAoIkJhc2VsaW5lIHB1dF9ieV92YWwgc3R1YiBmb3IgJXMsIHJl
dHVybiBwb2ludCAlcCIsIHRvQ1N0cmluZygqbV9jb2RlQmxvY2spLmRhdGEoKSwgcmV0dXJuQWRk
cmVzcy52YWx1ZSgpKSk7CiAgICAgICAgIAogICAgIH0gZWxzZSB7CiAgICAgICAgIGJ5VmFsSW5m
by0+c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAotICAgICAgICAgICAgcGF0
Y2hCdWZmZXIsCisgICAgICAgICAgICBtX2NvZGVCbG9jaywgcGF0Y2hCdWZmZXIsCiAgICAgICAg
ICAgICAoIkJhc2VsaW5lIHB1dF9ieV92YWxfZGlyZWN0IHN0dWIgZm9yICVzLCByZXR1cm4gcG9p
bnQgJXAiLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5kYXRhKCksIHJldHVybkFkZHJlc3MudmFs
dWUoKSkpOwogICAgIH0KICAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIobV9jb2RlQmxv
Y2spOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91
dGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTAsMTEgKzE1MCw4IEBAIHByb3RlY3RlZDoKIH07CiAK
IC8vIEhlbHBlciBmb3IgdGhlIGNyZWF0aW9uIG9mIHNpbXBsZSBzdHViIHJvdXRpbmVzIHRoYXQg
bmVlZCBubyBoZWxwIGZyb20gdGhlIEdDLgotI2RlZmluZSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVC
KHBhdGNoQnVmZmVyLCBkYXRhTG9nRkFyZ3VtZW50cykgXAotICAgIChhZG9wdFJlZihuZXcgSklU
U3R1YlJvdXRpbmUoRklOQUxJWkVfQ09ERSgocGF0Y2hCdWZmZXIpLCBkYXRhTG9nRkFyZ3VtZW50
cykpKSkKLQotI2RlZmluZSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdfU1RVQihwYXRjaEJ1ZmZlciwg
ZGF0YUxvZ0ZBcmd1bWVudHMpIFwKLSAgICAoYWRvcHRSZWYobmV3IEpJVFN0dWJSb3V0aW5lKEZJ
TkFMSVpFX0RGR19DT0RFKChwYXRjaEJ1ZmZlciksIGRhdGFMb2dGQXJndW1lbnRzKSkpKQorI2Rl
ZmluZSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKGNvZGVCbG9jaywgcGF0Y2hCdWZmZXIsIGRhdGFM
b2dGQXJndW1lbnRzKSBcCisgICAgKGFkb3B0UmVmKG5ldyBKSVRTdHViUm91dGluZShGSU5BTEla
RV9DT0RFX0ZPUigoY29kZUJsb2NrKSwgKHBhdGNoQnVmZmVyKSwgZGF0YUxvZ0ZBcmd1bWVudHMp
KSkpCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRTdHVicy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDE0ICszNywxMyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICNpZiBFTkFCTEUoSklUKQogCiAjaWYgT1MoV0lORE9XUykKLWNsYXNzIEV4ZWNTdGF0
ZTsKLWNsYXNzIFJlZ2lzdGVyOwogc3RydWN0IFByb3RvQ2FsbEZyYW1lOworY2xhc3MgVk07CiAK
IGV4dGVybiAiQyIgewotICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCos
IEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKik7Ci0gICAgdm9pZCByZXR1
cm5Gcm9tSmF2YVNjcmlwdCgpOwotICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0
aW9uKHZvaWQqLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOworICAg
IEVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCosIFZNKiwgUHJvdG9DYWxsRnJh
bWUqKTsKKyAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiwgVk0q
LCBQcm90b0NhbGxGcmFtZSopOworICAgIHZvaWQgaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24oKTsK
IH0KICNlbmRpZgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzTVNW
QzY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
TVNWQzY0LmFzbQkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRTdHVic01TVkM2NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEsMjU1ICswLDAgQEAKLTsv
KgotOyBDb3B5cmlnaHQgKEMpIDIwMTMgRGlnaWEgUGxjLiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKLTsKLTsgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci07IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotOyBhcmUgbWV0OgotOyAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi07IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci07ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLTsgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLTsKLTsgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi07IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi07IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotOyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotOyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LTsgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotOyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLTsgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotOyBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLTsgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi07IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi07Ki8KLQotRVhURVJOIGdldEhvc3RDYWxsUmV0dXJuVmFs
dWVXaXRoRXhlY1N0YXRlIDogbmVhcgotCi1QVUJMSUMgY2FsbFRvSmF2YVNjcmlwdAotUFVCTElD
IHJldHVybkZyb21KYXZhU2NyaXB0Ci1QVUJMSUMgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZQotCi1f
VEVYVCAgIFNFR01FTlQKLQotY2FsbFRvSmF2YVNjcmlwdCBQUk9DCi0gICAgOzsgVGhpcyBmdW5j
dGlvbiBpcyBiZWxpZXZlZCB0byBiZSBhbiBhY2N1cmF0ZSBhZGFwdGF0aW9uIG9mIHRoZSBhc3Nl
bWJseSBjcmVhdGVkIGJ5IHRoZSBsbGludCBzdHViIG9mIHRoZQotICAgIDs7IHNhbWUgbmFtZSB3
aXRoIGNoYW5nZXMgZm9yIGFyZ3VtZW50IHJlZ2lzdGVyIGRpZmZlcmVuY2VzLgotICAgIG1vdiBy
MTAsIHF3b3JkIHB0cltyc3BdCi0gICAgcHVzaCByYnAKLSAgICBtb3YgcmF4LCByYnAgOyBTYXZl
IHByZXZpb3VzIGZyYW1lIHBvaW50ZXIKLSAgICBtb3YgcmJwLCByc3AKLSAgICBwdXNoIHIxMgot
ICAgIHB1c2ggcjEzCi0gICAgcHVzaCByMTQKLSAgICBwdXNoIHIxNQotICAgIHB1c2ggcmJ4Ci0g
ICAgcHVzaCByc2kKLSAgICBwdXNoIHJkaQotCi0gICAgOyBKSVQgb3BlcmF0aW9ucyBjYW4gdXNl
IHVwIHRvIDYgYXJncyAoNCBpbiByZWdpc3RlcnMgYW5kIDIgb24gdGhlIHN0YWNrKS4KLSAgICA7
IEluIGFkZGl0aW9uLCBYODZfNjQgQUJJIHNwZWNpZmllcyB0aGF0IHRoZSB3b3JzZSBjYXNlIHN0
YWNrIGFsaWdubWVudAotICAgIDsgcmVxdWlyZW1lbnQgaXMgMzIgYnl0ZXMuIEJhc2VkIG9uIHRo
ZXNlIGZhY3RvcnMsIHdlIG5lZWQgdG8gcGFkIHRoZSBzdGFjawotICAgIDsgYW4gYWRkaXRpb25h
bCAyOGggYnl0ZXMuCi0gICAgc3ViIHJzcCwgMjhoCi0KLSAgICBtb3YgcmJwLCByOQotICAgIHN1
YiByYnAsIDQwCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyA0MF0sIDAKLSAgICBtb3YgcXdvcmQg
cHRyW3JicCArIDMyXSwgcmR4Ci0KLSAgICBtb3YgcmF4LCBxd29yZCBwdHJbcmR4XQotICAgIG1v
diBxd29yZCBwdHJbcmJwICsgMjRdLCByYXgKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDE2XSwg
MQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgOF0sIHIxMAotICAgIG1vdiBxd29yZCBwdHJbcmJw
XSwgcmF4Ci0gICAgbW92IHJheCwgcmJwCi0KLSAgICBtb3YgZWJ4LCBkd29yZCBwdHJbcjggKyA0
MF0KLSAgICBhZGQgcmJ4LCA2Ci0gICAgc2FsIHJieCwgMwotICAgIHN1YiByYnAsIHJieAotICAg
IG1vdiBxd29yZCBwdHJbcmJwXSwgcmF4Ci0KLSAgICBtb3YgcmF4LCA1Ci0KLWNvcHlIZWFkZXJM
b29wOgotICAgIHN1YiByYXgsIDEKLSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcjggKyByYXggKiA4
XQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcmF4ICogOCArIDE2XSwgcjEwCi0gICAgdGVzdCBy
YXgsIHJheAotICAgIGpueiBjb3B5SGVhZGVyTG9vcAotCi0gICAgbW92IGVieCwgZHdvcmQgcHRy
W3I4ICsgMjRdCi0gICAgc3ViIHJieCwgMQotICAgIG1vdiByMTBkLCBkd29yZCBwdHJbcjggKyA0
MF0KLSAgICBzdWIgcjEwLCAxCi0gICAgY21wIHJieCwgcjEwCi0gICAgamUgY29weUFyZ3MKLSAg
ICBtb3YgcmF4LCAwYWgKLQotZmlsbEV4dHJhQXJnc0xvb3A6Ci0gICAgc3ViIHIxMCwgMQotICAg
IG1vdiBxd29yZCBwdHJbcmJwICsgcjEwICogOCArIDU2XSwgcmF4Ci0gICAgY21wIHJieCwgcjEw
Ci0gICAgam5lIGZpbGxFeHRyYUFyZ3NMb29wCi0KLWNvcHlBcmdzOgotICAgIG1vdiByYXgsIHF3
b3JkIHB0cltyOCArIDQ4XQotCi1jb3B5QXJnc0xvb3A6Ci0gICAgdGVzdCBlYngsIGVieAotICAg
IGp6IGNvcHlBcmdzRG9uZQotICAgIHN1YiBlYngsIDEKLSAgICBtb3YgcjEwLCBxd29yZCBwdHJb
cmF4ICsgcmJ4ICogOF0KLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIHJieCAqIDggKyA1Nl0sIHIx
MAotICAgIGptcCBjb3B5QXJnc0xvb3AKLQotY29weUFyZ3NEb25lOgotICAgIG1vdiBxd29yZCBw
dHJbcmR4XSwgcmJwCi0gICAgbW92IHIxNCwgMEZGRkYwMDAwMDAwMDAwMDBoCi0gICAgbW92IHIx
NSwgMEZGRkYwMDAwMDAwMDAwMDJoCi0gICAgY2FsbCByY3gKLSAgICBjbXAgcXdvcmQgcHRyW3Ji
cCArIDE2XSwgMQotICAgIGplIGNhbGxlZUZyYW1lUG9wcGVkCi0gICAgbW92IHJicCwgcXdvcmQg
cHRyW3JicF0KLQotY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAgbW92IHJieCwgcXdvcmQgcHRyW3Ji
cCArIDMyXSA7IFZNLnRvcENhbGxGcmFtZQotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyYnAgKyAy
NF0KLSAgICBtb3YgcXdvcmQgcHRyW3JieF0sIHIxMAotICAgIGFkZCByc3AsIDI4aAotICAgIHBv
cCByZGkKLSAgICBwb3AgcnNpCi0gICAgcG9wIHJieAotICAgIHBvcCByMTUKLSAgICBwb3AgcjE0
Ci0gICAgcG9wIHIxMwotICAgIHBvcCByMTIKLSAgICBwb3AgcmJwCi0gICAgcmV0Ci1jYWxsVG9K
YXZhU2NyaXB0IEVORFAKLQotY2FsbFRvTmF0aXZlRnVuY3Rpb24gUFJPQwotICAgIDs7IFRoaXMg
ZnVuY3Rpb24gaXMgYmVsaWV2ZWQgdG8gYmUgYW4gYWNjdXJhdGUgYWRhcHRhdGlvbiBvZiB0aGUg
YXNzZW1ibHkgY3JlYXRlZCBieSB0aGUgbGxpbnQgc3R1YiBvZiB0aGUKLSAgICA7OyBzYW1lIG5h
bWUgd2l0aCBjaGFuZ2VzIGZvciBhcmd1bWVudCByZWdpc3RlciBkaWZmZXJlbmNlcy4KLSAgICBt
b3YgcjEwLCBxd29yZCBwdHJbcnNwXQotICAgIHB1c2ggcmJwCi0gICAgbW92IHJheCwgcmJwIDsg
U2F2ZSBwcmV2aW91cyBmcmFtZSBwb2ludGVyCi0gICAgbW92IHJicCwgcnNwCi0gICAgcHVzaCBy
MTIKLSAgICBwdXNoIHIxMwotICAgIHB1c2ggcjE0Ci0gICAgcHVzaCByMTUKLSAgICBwdXNoIHJi
eAotICAgIHB1c2ggcnNpCi0gICAgcHVzaCByZGkKLQotICAgIDsgSklUIG9wZXJhdGlvbnMgY2Fu
IHVzZSB1cCB0byA2IGFyZ3MgKDQgaW4gcmVnaXN0ZXJzIGFuZCAyIG9uIHRoZSBzdGFjaykuCi0g
ICAgOyBJbiBhZGRpdGlvbiwgWDg2XzY0IEFCSSBzcGVjaWZpZXMgdGhhdCB0aGUgd29yc2UgY2Fz
ZSBzdGFjayBhbGlnbm1lbnQKLSAgICA7IHJlcXVpcmVtZW50IGlzIDMyIGJ5dGVzLiBCYXNlZCBv
biB0aGVzZSBmYWN0b3JzLCB3ZSBuZWVkIHRvIHBhZCB0aGUgc3RhY2sKLSAgICA7IGFuIGFkZGl0
aW9uYWwgMjhoIGJ5dGVzLgotICAgIHN1YiByc3AsIDI4aAotCi0gICAgbW92IHJicCwgcjkKLSAg
ICBzdWIgcmJwLCA0MAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgNDBdLCAwCi0gICAgbW92IHF3
b3JkIHB0cltyYnAgKyAzMl0sIHJkeAotCi0gICAgbW92IHJheCwgcXdvcmQgcHRyW3JkeF0KLSAg
ICBtb3YgcXdvcmQgcHRyW3JicCArIDI0XSwgcmF4Ci0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAx
Nl0sIDEKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDhdLCByMTAKLSAgICBtb3YgcXdvcmQgcHRy
W3JicF0sIHJheAotICAgIG1vdiByYXgsIHJicAotCi0gICAgbW92IGVieCwgZHdvcmQgcHRyW3I4
ICsgNDBdCi0gICAgYWRkIHJieCwgNgotICAgIHNhbCByYngsIDMKLSAgICBzdWIgcmJwLCByYngK
LSAgICBtb3YgcXdvcmQgcHRyW3JicF0sIHJheAotCi0gICAgbW92IHJheCwgNQotCi1jb3B5SGVh
ZGVyTG9vcDoKLSAgICBzdWIgcmF4LCAxCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3I4ICsgcmF4
ICogOF0KLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIHJheCAqIDggKyAxNl0sIHIxMAotICAgIHRl
c3QgcmF4LCByYXgKLSAgICBqbnogY29weUhlYWRlckxvb3AKLQotICAgIG1vdiBlYngsIGR3b3Jk
IHB0cltyOCArIDI0XQotICAgIHN1YiByYngsIDEKLSAgICBtb3YgcjEwZCwgZHdvcmQgcHRyW3I4
ICsgNDBdCi0gICAgc3ViIHIxMCwgMQotICAgIGNtcCByYngsIHIxMAotICAgIGplIGNvcHlBcmdz
Ci0gICAgbW92IHJheCwgMGFoCi0KLWZpbGxFeHRyYUFyZ3NMb29wOgotICAgIHN1YiByMTAsIDEK
LSAgICBtb3YgcXdvcmQgcHRyW3JicCArIHIxMCAqIDggKyA1Nl0sIHJheAotICAgIGNtcCByYngs
IHIxMAotICAgIGpuZSBmaWxsRXh0cmFBcmdzTG9vcAotCi1jb3B5QXJnczoKLSAgICBtb3YgcmF4
LCBxd29yZCBwdHJbcjggKyA0OF0KLQotY29weUFyZ3NMb29wOgotICAgIHRlc3QgcmJ4LCByYngK
LSAgICBqeiBjb3B5QXJnc0RvbmUKLSAgICBzdWIgcmJ4LCAxCi0gICAgbW92IHIxMCwgcXdvcmQg
cHRyW3JheCArIHJieCAqIDhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByYnggKiA4ICsgNTZd
LCByMTAKLSAgICBqbXAgY29weUFyZ3NMb29wCi0KLWNvcHlBcmdzRG9uZToKLSAgICBtb3YgcXdv
cmQgcHRyW3JkeF0sIHJicAotICAgIG1vdiByMTQsIDBGRkZGMDAwMDAwMDAwMDAwaAotICAgIG1v
diByMTUsIDBGRkZGMDAwMDAwMDAwMDAyaAotCi0gICAgbW92IHJheCwgcmN4Ci0gICAgbW92IHJj
eCwgcmJwCi0gICAgY2FsbCByYXgKLQotICAgIGNtcCBxd29yZCBwdHJbcmJwICsgMTZdLCAxCi0g
ICAgamUgY2FsbGVlRnJhbWVQb3BwZWQKLSAgICBtb3YgcmJwLCBxd29yZCBwdHJbcmJwXQotCi1j
YWxsZWVGcmFtZVBvcHBlZDoKLSAgICBtb3YgcmJ4LCBxd29yZCBwdHJbcmJwICsgMzJdIDsgVk0u
dG9wQ2FsbEZyYW1lCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3JicCArIDI0XQotICAgIG1vdiBx
d29yZCBwdHJbcmJ4XSwgcjEwCi0gICAgYWRkIHJzcCwgMjhoCi0gICAgcG9wIHJkaQotICAgIHBv
cCByc2kKLSAgICBwb3AgcmJ4Ci0gICAgcG9wIHIxNQotICAgIHBvcCByMTQKLSAgICBwb3AgcjEz
Ci0gICAgcG9wIHIxMgotICAgIHBvcCByYnAKLSAgICByZXQKLWNhbGxUb05hdGl2ZUZ1bmN0aW9u
IEVORFAKLQotcmV0dXJuRnJvbUphdmFTY3JpcHQgUFJPQwotICAgIGFkZCByc3AsIDI4aAotICAg
IHBvcCByZGkKLSAgICBwb3AgcnNpCi0gICAgcG9wIHJieAotICAgIHBvcCByMTUKLSAgICBwb3Ag
cjE0Ci0gICAgcG9wIHIxMwotICAgIHBvcCByMTIKLSAgICBwb3AgcmJwCi0gICAgcmV0Ci1yZXR1
cm5Gcm9tSmF2YVNjcmlwdCBFTkRQCi0JCi1nZXRIb3N0Q2FsbFJldHVyblZhbHVlIFBST0MKLSAg
ICBtb3YgcmJwLCBbcmJwXSA7IENhbGxGcmFtZQotICAgIG1vdiByY3gsIHJicCA7IHJjeCBpcyBm
aXJzdCBhcmd1bWVudCByZWdpc3RlciBvbiBXaW5kb3dzCi0gICAgam1wIGdldEhvc3RDYWxsUmV0
dXJuVmFsdWVXaXRoRXhlY1N0YXRlCi1nZXRIb3N0Q2FsbFJldHVyblZhbHVlIEVORFAKLQotX1RF
WFQgICBFTkRTCi0KLUVORApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
c1g4Ni5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNY
ODYuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dHVic1g4Ni5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsMjMwICsyMDAsNiBAQCBTWU1CT0xfU1RS
SU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQpCiAKICNlbmRpZiAvLyBDT01QSUxFUihHQ0Mp
CiAKLSNpZiBDT01QSUxFUihNU1ZDKQotCi1leHRlcm4gIkMiIHsKLQotICAgIC8vIEZJWE1FOiBT
aW5jZSBXaW5kb3dzIGRvZXNuJ3QgdXNlIHRoZSBMTEludCwgd2UgaGF2ZSBpbmxpbmUgc3R1YnMg
aGVyZS4KLSAgICAvLyBVbnRpbCB0aGUgTExJbnQgaXMgY2hhbmdlZCB0byBzdXBwb3J0IFdpbmRv
d3MsIHRoZXNlIHN0dWIgbmVlZHMgdG8gYmUgdXBkYXRlZC4KLSAgICBfX2RlY2xzcGVjKG5ha2Vk
KSBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoq
LCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKikKLSAgICB7Ci0gICAgICAgIF9fYXNtIHsKLSAg
ICAgICAgICAgIG1vdiBlZHgsIFtlc3BdCi0gICAgICAgICAgICBwdXNoIGVicDsKLSAgICAgICAg
ICAgIG1vdiBlYXgsIGVicDsKLSAgICAgICAgICAgIG1vdiBlYnAsIGVzcDsKLSAgICAgICAgICAg
IHB1c2ggZXNpOwotICAgICAgICAgICAgcHVzaCBlZGk7Ci0gICAgICAgICAgICBwdXNoIGVieDsK
LSAgICAgICAgICAgIHN1YiBlc3AsIDB4MWM7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBw
dHJbZXNwICsgMHgzNF07Ci0gICAgICAgICAgICBtb3YgZXNpLCBkd29yZCBwdHJbZXNwICsgMHgz
OF07Ci0gICAgICAgICAgICBtb3YgZWJwLCBkd29yZCBwdHJbZXNwICsgMHgzY107Ci0gICAgICAg
ICAgICBzdWIgZWJwLCAweDIwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDI0
XSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgyMF0sIDA7Ci0gICAgICAg
ICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MWNdLCAwOwotICAgICAgICAgICAgbW92IGR3b3Jk
IHB0cltlYnAgKyAweDE4XSwgZWN4OwotICAgICAgICAgICAgbW92IGVieCwgW2VjeF07Ci0gICAg
ICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MTRdLCAwOwotICAgICAgICAgICAgbW92IGR3
b3JkIHB0cltlYnAgKyAweDEwXSwgZWJ4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAg
KyAweGNdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDhdLCAxOwotICAg
ICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDRdLCBlZHg7Ci0gICAgICAgICAgICBtb3Yg
ZHdvcmQgcHRyW2VicF0sIGVheDsKLSAgICAgICAgICAgIG1vdiBlYXgsIGVicDsKLQotICAgICAg
ICAgICAgbW92IGVkeCwgZHdvcmQgcHRyW2VzaSArIDB4MjhdOwotICAgICAgICAgICAgYWRkIGVk
eCwgNTsKLSAgICAgICAgICAgIHNhbCBlZHgsIDM7Ci0gICAgICAgICAgICBzdWIgZWJwLCBlZHg7
Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicF0sIGVheDsKLQotICAgICAgICAgICAgbW92
IGVheCwgNTsKLQotICAgICAgICBjb3B5SGVhZGVyTG9vcDoKLSAgICAgICAgICAgIHN1YiBlYXgs
IDE7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNpICsgZWF4ICogOF07Ci0gICAg
ICAgICAgICBtb3YgZHdvcmQgcHRyIDhbZWJwICsgZWF4ICogOF0sIGVjeDsKLSAgICAgICAgICAg
IG1vdiBlY3gsIGR3b3JkIHB0ciA0W2VzaSArIGVheCAqIDhdOwotICAgICAgICAgICAgbW92IGR3
b3JkIHB0ciAxMltlYnAgKyBlYXggKiA4XSwgZWN4OwotICAgICAgICAgICAgdGVzdCBlYXgsIGVh
eDsKLSAgICAgICAgICAgIGpueiBjb3B5SGVhZGVyTG9vcDsKLQotICAgICAgICAgICAgbW92IGVk
eCwgZHdvcmQgcHRyW2VzaSArIDB4MThdOwotICAgICAgICAgICAgc3ViIGVkeCwgMTsKLSAgICAg
ICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc2kgKyAweDI4XTsKLSAgICAgICAgICAgIHN1YiBl
Y3gsIDE7Ci0KLSAgICAgICAgICAgIGNtcCBlZHgsIGVjeDsKLSAgICAgICAgICAgIGplIGNvcHlB
cmdzOwotCi0gICAgICAgICAgICB4b3IgZWF4LCBlYXg7Ci0gICAgICAgICAgICBtb3YgZWJ4LCAt
NDsKLQotICAgICAgICBmaWxsRXh0cmFBcmdzTG9vcDoKLSAgICAgICAgICAgIHN1YiBlY3gsIDE7
Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzBbZWJwICsgZWN4ICogOF0sIGVheDsgICAg
ICAgICAgICAKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzNFtlYnAgKyBlY3ggKiA4XSwg
ZWJ4OwotICAgICAgICAgICAgY21wIGVkeCwgZWN4OwotICAgICAgICAgICAgam5lIGZpbGxFeHRy
YUFyZ3NMb29wOwotCi0gICAgICAgIGNvcHlBcmdzOgotICAgICAgICAgICAgbW92IGVheCwgZHdv
cmQgcHRyW2VzaSArIDB4MmNdOwotCi0gICAgICAgIGNvcHlBcmdzTG9vcDoKLSAgICAgICAgICAg
IHRlc3QgZWR4LCBlZHg7Ci0gICAgICAgICAgICBqeiBjb3B5QXJnc0RvbmU7Ci0gICAgICAgICAg
ICBzdWIgZWR4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyIDBbZWF4ICsgZWR4
ICogOF07Ci0gICAgICAgICAgICBtb3YgZWJ4LCBkd29yZCBwdHIgNFtlYXggKyBlZHggKiA4XTsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzMFtlYnAgKyBlZHggKiA4XSwgZWN4OwotICAg
ICAgICAgICAgbW92IGR3b3JkIHB0ciAweDM0W2VicCArIGVkeCAqIDhdLCBlYng7Ci0gICAgICAg
ICAgICBqbXAgY29weUFyZ3NMb29wOwotCi0gICAgICAgIGNvcHlBcmdzRG9uZToKLSAgICAgICAg
ICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc3AgKyAweDM0XTsKLSAgICAgICAgICAgIG1vdiBkd29y
ZCBwdHJbZWN4XSwgZWJwOwotCi0gICAgICAgICAgICBjYWxsIGR3b3JkIHB0cltlc3AgKyAweDMw
XTsKLQotICAgICAgICAgICAgY21wIGR3b3JkIHB0cltlYnAgKyA4XSwgMTsKLSAgICAgICAgICAg
IGplIGNhbGxlZUZyYW1lUG9wcGVkOwotICAgICAgICAgICAgbW92IGVicCwgZHdvcmQgcHRyW2Vi
cF07Ci0KLSAgICAgICAgY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAgICAgICAgICBtb3YgZWN4LCBk
d29yZCBwdHJbZWJwICsgMHgxOF07Ci0gICAgICAgICAgICBtb3YgZWJ4LCBkd29yZCBwdHJbZWJw
ICsgMHgxMF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VjeF0sIGVieDsKLQotICAgICAg
ICAgICAgYWRkIGVzcCwgMHgxYzsKLSAgICAgICAgICAgIHBvcCBlYng7Ci0gICAgICAgICAgICBw
b3AgZWRpOwotICAgICAgICAgICAgcG9wIGVzaTsKLSAgICAgICAgICAgIHBvcCBlYnA7Ci0gICAg
ICAgICAgICByZXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfX2RlY2xzcGVjKG5ha2VkKSB2
b2lkIHJldHVybkZyb21KYXZhU2NyaXB0KCkKLSAgICB7Ci0gICAgICAgIF9fYXNtIHsKLSAgICAg
ICAgICAgIGFkZCBlc3AsIDB4MWM7Ci0gICAgICAgICAgICBwb3AgZWJ4OwotICAgICAgICAgICAg
cG9wIGVkaTsKLSAgICAgICAgICAgIHBvcCBlc2k7Ci0gICAgICAgICAgICBwb3AgZWJwOwotICAg
ICAgICAgICAgcmV0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgX19kZWNsc3BlYyhuYWtlZCkg
RW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCogY29kZSwgRXhlY1N0YXRl
KiosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKQotICAgIHsKLSAgICAgICAgX19hc20gewot
ICAgICAgICAgICAgbW92IGVkeCwgW2VzcF0KLSAgICAgICAgICAgIHB1c2ggZWJwOwotICAgICAg
ICAgICAgbW92IGVheCwgZWJwOwotICAgICAgICAgICAgbW92IGVicCwgZXNwOwotICAgICAgICAg
ICAgcHVzaCBlc2k7Ci0gICAgICAgICAgICBwdXNoIGVkaTsKLSAgICAgICAgICAgIHB1c2ggZWJ4
OwotICAgICAgICAgICAgc3ViIGVzcCwgMHgxYzsKLSAgICAgICAgICAgIG1vdiBlY3gsIFtlc3Ag
KyAweDM0XTsKLSAgICAgICAgICAgIG1vdiBlc2ksIFtlc3AgKyAweDM4XTsKLSAgICAgICAgICAg
IG1vdiBlYnAsIFtlc3AgKyAweDNjXTsKLSAgICAgICAgICAgIHN1YiBlYnAsIDB4MjA7Ci0gICAg
ICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MjRdLCAwOwotICAgICAgICAgICAgbW92IGR3
b3JkIHB0cltlYnAgKyAweDIwXSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsg
MHgxY10sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MThdLCBlY3g7Ci0g
ICAgICAgICAgICBtb3YgZWJ4LCBbZWN4XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJw
ICsgMHgxNF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MTBdLCBlYng7
Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4Y10sIDA7Ci0gICAgICAgICAgICBt
b3YgZHdvcmQgcHRyW2VicCArIDB4OF0sIDE7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2Vi
cCArIDB4NF0sIGVkeDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwXSwgZWF4OwotICAg
ICAgICAgICAgbW92IGVheCwgZWJwOwotCi0gICAgICAgICAgICBtb3YgZWR4LCBkd29yZCBwdHJb
ZXNpICsgMHgyOF07Ci0gICAgICAgICAgICBhZGQgZWR4LCA1OwotICAgICAgICAgICAgc2FsIGVk
eCwgMzsKLSAgICAgICAgICAgIHN1YiBlYnAsIGVkeDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBw
dHJbZWJwXSwgZWF4OwotCi0gICAgICAgICAgICBtb3YgZWF4LCA1OwotCi0gICAgICAgIGNvcHlI
ZWFkZXJMb29wOgotICAgICAgICAgICAgc3ViIGVheCwgMTsKLSAgICAgICAgICAgIG1vdiBlY3gs
IGR3b3JkIHB0cltlc2kgKyBlYXggKiA4XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgOFtl
YnAgKyBlYXggKiA4XSwgZWN4OwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyIDRbZXNp
ICsgZWF4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDEyW2VicCArIGVheCAqIDhd
LCBlY3g7Ci0gICAgICAgICAgICB0ZXN0IGVheCwgZWF4OwotICAgICAgICAgICAgam56IGNvcHlI
ZWFkZXJMb29wOwotCi0gICAgICAgICAgICBtb3YgZWR4LCBkd29yZCBwdHJbZXNpICsgMHgxOF07
Ci0gICAgICAgICAgICBzdWIgZWR4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRy
W2VzaSArIDB4MjhdOwotICAgICAgICAgICAgc3ViIGVjeCwgMTsKLQotICAgICAgICAgICAgY21w
IGVkeCwgZWN4OwotICAgICAgICAgICAgamUgY29weUFyZ3M7Ci0KLSAgICAgICAgICAgIHhvciBl
YXgsIGVheDsKLSAgICAgICAgICAgIG1vdiBlYngsIC00OwotCi0gICAgICAgIGZpbGxFeHRyYUFy
Z3NMb29wOgotICAgICAgICAgICAgc3ViIGVjeCwgMTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBw
dHIgMHgzMFtlYnAgKyBlY3ggKiA4XSwgZWF4OyAgICAgICAgICAgIAotICAgICAgICAgICAgbW92
IGR3b3JkIHB0ciAweDM0W2VicCArIGVjeCAqIDhdLCBlYng7Ci0gICAgICAgICAgICBjbXAgZWR4
LCBlY3g7Ci0gICAgICAgICAgICBqbmUgZmlsbEV4dHJhQXJnc0xvb3A7Ci0KLSAgICAgICAgY29w
eUFyZ3M6Ci0gICAgICAgICAgICBtb3YgZWF4LCBkd29yZCBwdHJbZXNpICsgMHgyY107Ci0KLSAg
ICAgICAgY29weUFyZ3NMb29wOgotICAgICAgICAgICAgdGVzdCBlZHgsIGVkeDsKLSAgICAgICAg
ICAgIGp6IGNvcHlBcmdzRG9uZTsKLSAgICAgICAgICAgIHN1YiBlZHgsIDE7Ci0gICAgICAgICAg
ICBtb3YgZWN4LCBkd29yZCBwdHIgMFtlYXggKyBlZHggKiA4XTsKLSAgICAgICAgICAgIG1vdiBl
YngsIGR3b3JkIHB0ciA0W2VheCArIGVkeCAqIDhdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0
ciAweDMwW2VicCArIGVkeCAqIDhdLCBlY3g7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4
MzRbZWJwICsgZWR4ICogOF0sIGVieDsKLSAgICAgICAgICAgIGptcCBjb3B5QXJnc0xvb3A7Ci0K
LSAgICAgICAgY29weUFyZ3NEb25lOgotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2Vz
cCArIDB4MzRdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlY3hdLCBlYnA7Ci0KLSAgICAg
ICAgICAgIG1vdiBlZGksIGR3b3JkIHB0cltlc3AgKyAweDMwXTsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHJbZXNwICsgMHgzMF0sIGVicDsKLSAgICAgICAgICAgIG1vdiBlY3gsIGVicDsKLSAg
ICAgICAgICAgIGNhbGwgZWRpOwotCi0gICAgICAgICAgICBjbXAgZHdvcmQgcHRyW2VicCArIDhd
LCAxOwotICAgICAgICAgICAgamUgY2FsbGVlRnJhbWVQb3BwZWQ7Ci0gICAgICAgICAgICBtb3Yg
ZWJwLCBkd29yZCBwdHJbZWJwXTsKLQotICAgICAgICBjYWxsZWVGcmFtZVBvcHBlZDoKLSAgICAg
ICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlYnAgKyAweDE4XTsKLSAgICAgICAgICAgIG1vdiBl
YngsIGR3b3JkIHB0cltlYnAgKyAweDEwXTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWN4
XSwgZWJ4OwotCi0gICAgICAgICAgICBhZGQgZXNwLCAweDFjOwotICAgICAgICAgICAgcG9wIGVi
eDsKLSAgICAgICAgICAgIHBvcCBlZGk7Ci0gICAgICAgICAgICBwb3AgZXNpOwotICAgICAgICAg
ICAgcG9wIGVicDsKLSAgICAgICAgICAgIHJldDsKLSAgICAgICAgfQotICAgIH0KLX0KLQotI2Vu
ZGlmIC8vIENPTVBJTEVSKE1TVkMpCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8g
SklUU3R1YnNYODZfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNw
cAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVu
a3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBKSVRUaHVua3M6OmN0aU5hdGkKICNlbmRpZgogICAgIHJldHVybiBjdGlTdHViKHZtLCBu
YXRpdmVDYWxsR2VuZXJhdG9yKS5jb2RlKCk7CiB9CisKIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBK
SVRUaHVua3M6OmN0aU5hdGl2ZUNvbnN0cnVjdChWTSogdm0pCiB7CiAjaWYgRU5BQkxFKExMSU5U
KQpAQCAtNjEsNiArNjIsMTIgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3Rp
TmF0aQogICAgIHJldHVybiBjdGlTdHViKHZtLCBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IpLmNv
ZGUoKTsKIH0KIAorTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZlVGFp
bENhbGwoVk0qIHZtKQoreworICAgIEFTU0VSVCh2bS0+Y2FuVXNlSklUKCkpOworICAgIHJldHVy
biBjdGlTdHViKHZtLCBuYXRpdmVUYWlsQ2FsbEdlbmVyYXRvcikuY29kZSgpOworfQorCiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgSklUVGh1bmtzOjpjdGlTdHViKFZNKiB2bSwgVGh1bmtHZW5lcmF0
b3IgZ2VuZXJhdG9yKQogewogICAgIExvY2tlciBsb2NrZXIobV9sb2NrKTsKQEAgLTgwLDcgKzg3
LDEyIEBAIE5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW8KICAgICBpZiAo
TmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1h
cC0+Z2V0KHN0ZDo6bWFrZV9wYWlyKGZ1bmN0aW9uLCBjb25zdHJ1Y3RvcikpKQogICAgICAgICBy
ZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKIAotICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4
ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKnZtLCBKSVQ6OmNvbXBpbGVDVElO
YXRpdmVDYWxsKHZtLCBmdW5jdGlvbiksIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6
OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3Qodm0pKSwgY29uc3Ry
dWN0b3IsIE5vSW50cmluc2ljKTsKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRh
YmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKAorICAgICAgICAqdm0sCisgICAgICAgIGFk
b3B0UmVmKG5ldyBOYXRpdmVKSVRDb2RlKEpJVDo6Y29tcGlsZUNUSU5hdGl2ZUNhbGwodm0sIGZ1
bmN0aW9uKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpLAorICAgICAgICBmdW5jdGlvbiwKKyAg
ICAgICAgYWRvcHRSZWYobmV3IE5hdGl2ZUpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpj
cmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0aXZlQ29uc3RydWN0KHZtKSksIEpJVENvZGU6
Okhvc3RDYWxsVGh1bmspKSwKKyAgICAgICAgY29uc3RydWN0b3IsIE5vSW50cmluc2ljKTsKICAg
ICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIHN0ZDo6bWFrZV9wYWlyKGZ1bmN0aW9u
LCBjb25zdHJ1Y3RvciksIFdlYWs8TmF0aXZlRXhlY3V0YWJsZT4obmF0aXZlRXhlY3V0YWJsZSkp
OwogICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwogfQpAQCAtOTIsMTYgKzEwNCwxOCBAQCBO
YXRpdmVFeGVjdXRhYmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvCiAgICAgaWYgKE5hdGl2ZUV4
ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJNYXAtPmdldChz
dGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwgJmNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9yKSkp
CiAgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwogCi0gICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIGNvZGU7CisgICAgUmVmUHRyPEpJVENvZGU+IGZvckNhbGw7CiAgICAgaWYgKGdlbmVy
YXRvcikgewotICAgICAgICBpZiAodm0tPmNhblVzZUpJVCgpKQotICAgICAgICAgICAgY29kZSA9
IGdlbmVyYXRvcih2bSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvZGUgPSBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYoKTsKKyAgICAgICAgaWYgKHZtLT5jYW5Vc2VKSVQoKSkgeworICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGVudHJ5ID0gZ2VuZXJhdG9yKHZtKTsKKyAgICAg
ICAgICAgIGZvckNhbGwgPSBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShlbnRyeSwgZW50cnku
Y29kZSgpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSk7CisgICAgICAgIH0KICAgICB9IGVsc2UK
LSAgICAgICAgY29kZSA9IEpJVDo6Y29tcGlsZUNUSU5hdGl2ZUNhbGwodm0sIGZ1bmN0aW9uKTsK
LQotICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRh
YmxlOjpjcmVhdGUoKnZtLCBjb2RlLCBmdW5jdGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpj
cmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0aXZlQ29uc3RydWN0KHZtKSksIGNhbGxIb3N0
RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBpbnRyaW5zaWMpOworICAgICAgICBmb3JDYWxsID0gYWRv
cHRSZWYobmV3IE5hdGl2ZUpJVENvZGUoSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVu
Y3Rpb24pLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSk7CisgICAgCisgICAgUmVmUHRyPEpJVENv
ZGU+IGZvckNvbnN0cnVjdCA9IGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2RlKE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCh2
bSkpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSk7CisgICAgCisgICAgTmF0aXZlRXhlY3V0YWJs
ZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqdm0sIGZvckNh
bGwsIGZ1bmN0aW9uLCBmb3JDb25zdHJ1Y3QsIGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9y
LCBpbnRyaW5zaWMpOwogICAgIHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1Yk1hcCwgc3RkOjpt
YWtlX3BhaXIoZnVuY3Rpb24sICZjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciksIFdlYWs8
TmF0aXZlRXhlY3V0YWJsZT4obmF0aXZlRXhlY3V0YWJsZSkpOwogICAgIHJldHVybiBuYXRpdmVF
eGVjdXRhYmxlOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCShy
ZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKIAogICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDYWxsKFZNKik7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGN0aU5hdGl2ZUNvbnN0cnVjdChWTSopOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBj
dGlOYXRpdmVUYWlsQ2FsbChWTSopOyAgICAKIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBj
dGlTdHViKFZNKiwgVGh1bmtHZW5lcmF0b3IpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBw
ZXJHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZh
dGlvbldyYXBwZXJHZW5lcmF0b3IuaCIKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJB
c3NlbWJseUhlbHBlcnMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiU3Rh
Y2tBbGlnbm1lbnQuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK1JlZ2lzdGVyU2V0IHJlZ2lzdGVy
c1RvUHJlc2VydmUoKQoreworICAgIFJlZ2lzdGVyU2V0IGNhbGxlZVNhdmVzID0gUmVnaXN0ZXJT
ZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKTsKKyAgICAKKyAgICAvLyBObyBuZWVkIHRvIHByZXNl
cnZlIEZQIHNpbmNlIHRoYXQgYWx3YXlzIGdldHMgcHJlc2VydmVkIGFueXdheS4KKyAgICBjYWxs
ZWVTYXZlcy5jbGVhcihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgCisgICAgcmV0
dXJuIGNhbGxlZVNhdmVzOworfQorCitwdHJkaWZmX3QgcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZz
ZXQoKQoreworICAgIHVuc2lnbmVkIG51bWJlck9mQ2FsbGVlU2F2ZXMgPSByZWdpc3RlcnNUb1By
ZXNlcnZlKCkubnVtYmVyT2ZTZXRSZWdpc3RlcnMoKTsKKyAgICAKKyAgICAvLyBOZWVkIHRvIHBy
ZXNlcnZlIHRoZSBvbGQgcmV0dXJuIFBDLgorICAgIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzVG9T
YXZlID0gbnVtYmVyT2ZDYWxsZWVTYXZlcyArIDE7CisgICAgCisgICAgLy8gQWxpZ25tZW50LiBQ
cmVzZXJ2ZSB0aGUgc2FtZSBhbGlnbm1lbnQgaW52YXJpYW50cyB0aGF0IHRoZSBjYWxsZXIgaW1w
b3NlZC4KKyAgICB1bnNpZ25lZCBudW1iZXJPZk5ld1N0YWNrU2xvdHMgPQorICAgICAgICBXVEY6
OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbnVtYmVyT2ZW
YWx1ZXNUb1NhdmUpOworICAgIAorICAgIHJldHVybiBzaXplb2YoUmVnaXN0ZXIpICogbnVtYmVy
T2ZOZXdTdGFja1Nsb3RzOworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2VuZXJhdGVSZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXIoVk0mIHZtLCBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJs
ZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHRhcmdldCkKK3sKKyNpZiBFTkFCTEUoRlRMX0pJVCkK
KyAgICAvLyBXZSBzaG91bGRuJ3QgZXZlciBiZSBnZW5lcmF0aW5nIHdyYXBwZXJzIGZvciBuYXRp
dmUgZnVuY3Rpb25zLgorICAgIFJlZ2lzdGVyU2V0IHRvU2F2ZSA9IHJlZ2lzdGVyc1RvUHJlc2Vy
dmUoKTsKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0ID0gcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQo
KTsKKyAgICAKKyAgICBBc3NlbWJseUhlbHBlcnMgaml0KCZ2bSwgMCk7CisgICAgCisgICAgaml0
LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0
LmxvYWQzMigKKyAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKAorICAgICAgICAgICAg
QXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwKKyAgICAgICAgICAgIChKU1N0
YWNrOjpBcmd1bWVudENvdW50IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6
ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQpLAorICAgICAgICBHUFJJbmZvOjpyZWdUMik7
CisgICAgCisgICAgLy8gUGxhY2UgdGhlIHN0YWNrIHBvaW50ZXIgd2hlcmUgd2Ugd2FudCBpdCB0
byBiZS4KKyAgICBqaXQuc3ViUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKG9mZnNl
dCksIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIAorICAgIC8v
IENvbXB1dGUgdGhlIG51bWJlciBvZiB0aGluZ3Mgd2Ugd2lsbCBiZSBjb3B5aW5nLgorICAgIGpp
dC5hZGQzMigKKyAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoCisgICAgICAg
ICAgICBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVB
bmRQQ1NpemUpLAorICAgICAgICBHUFJJbmZvOjpyZWdUMik7CisKKyAgICBBU1NFUlQoIXRvU2F2
ZS5nZXQoR1BSSW5mbzo6cmVnVDQpKTsKKyAgICBqaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUNCk7CisgICAgCisgICAgQXNzZW1ibHlI
ZWxwZXJzOjpMYWJlbCBsb29wID0gaml0LmxhYmVsKCk7CisgICAgaml0LnN1YjMyKEFzc2VtYmx5
SGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LmxvYWQ2
NChBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDQsIG9mZnNldCksIEdQUklu
Zm86OnJlZ1QwKTsKKyAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVn
VDQpOworICAgIGppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc2l6ZW9m
KFJlZ2lzdGVyKSksIEdQUkluZm86OnJlZ1Q0KTsKKyAgICBqaXQuYnJhbmNoVGVzdDMyKEFzc2Vt
Ymx5SGVscGVyczo6Tm9uWmVybywgR1BSSW5mbzo6cmVnVDIpLmxpbmtUbyhsb29wLCAmaml0KTsK
KworICAgIC8vIEF0IHRoaXMgcG9pbnQgcmVnVDQgKyBvZmZzZXQgcG9pbnRzIHRvIHdoZXJlIHdl
IHNhdmUgdGhpbmdzLgorICAgIHB0cmRpZmZfdCBjdXJyZW50T2Zmc2V0ID0gMDsKKyAgICBqaXQu
c3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZv
OjpyZWdUNCwgY3VycmVudE9mZnNldCkpOworICAgIAorICAgIGZvciAoR1BSUmVnIGdwciA9IEFz
c2VtYmx5SGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBncHIgPD0gQXNzZW1ibHlIZWxwZXJzOjps
YXN0UmVnaXN0ZXIoKTsgZ3ByID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihncHIgKyAxKSkgeworICAg
ICAgICBpZiAoIXRvU2F2ZS5nZXQoZ3ByKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBjdXJyZW50T2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CisgICAgICAgIGppdC5zdG9yZTY0
KGdwciwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Q0LCBjdXJyZW50T2Zm
c2V0KSk7CisgICAgfQorICAgIAorICAgIC8vIEFzc3VtZSB0aGF0IHRoZXJlIGFyZW4ndCBhbnkg
c2F2ZWQgRlAgcmVnaXN0ZXJzLgorICAgIAorICAgIC8vIFJlc3RvcmUgdGhlIHRhZyByZWdpc3Rl
cnMuCisgICAgaml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tNjQoVGFnVHlwZU51
bWJlciksIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CisgICAgaml0LmFkZDY0KEFz
c2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKFRhZ01hc2sgLSBUYWdUeXBlTnVtYmVyKSwgR1BS
SW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOwor
ICAgIAorICAgIGppdC5tb3ZlKAorICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoCisgICAgICAgICAgICB2bS5nZXRDVElTdHViKHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dl
bmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLAorICAgICAgICBHUFJJbmZvOjpu
b25BcmdHUFIwKTsKKyAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BS
SW5mbzo6bm9uQXJnR1BSMCk7CisgICAgQXNzZW1ibHlIZWxwZXJzOjpKdW1wIGp1bXAgPSBqaXQu
anVtcCgpOworICAgIAorICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcih2bSwgJmppdCwgR0xPQkFM
X1RIVU5LX0lEKTsKKyAgICBsaW5rQnVmZmVyLmxpbmsoanVtcCwgQ29kZUxvY2F0aW9uTGFiZWwo
dGFyZ2V0KSk7CisKKyAgICBpZiAoT3B0aW9uczo6dmVyYm9zZUZUTFRvSlNUaHVuaygpKQorICAg
ICAgICBkYXRhTG9nKCJOZWVkIGEgdGh1bmsgZm9yIGNhbGxzIGZyb20gRlRMIHRvIG5vbi1GVEwg
dmVyc2lvbiBvZiAiLCAqZXhlY3V0YWJsZSwgIlxuIik7CisgICAgCisgICAgcmV0dXJuIEZJTkFM
SVpFX0RGR19DT0RFKGxpbmtCdWZmZXIsICgiUmVnaXN0ZXIgcHJlc2VydmF0aW9uIHdyYXBwZXIg
Zm9yICVzLyVzLCAlcCIsIHRvQ1N0cmluZyhleGVjdXRhYmxlLT5oYXNoRm9yKENvZGVGb3JDYWxs
KSkuZGF0YSgpLCB0b0NTdHJpbmcoZXhlY3V0YWJsZS0+aGFzaEZvcihDb2RlRm9yQ29uc3RydWN0
KSkuZGF0YSgpLCB0YXJnZXQuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworI2Vsc2UgLy8gRU5BQkxF
KEZUTF9KSVQpCisgICAgVU5VU0VEX1BBUkFNKHZtKTsKKyAgICBVTlVTRURfUEFSQU0oZXhlY3V0
YWJsZSk7CisgICAgVU5VU0VEX1BBUkFNKHRhcmdldCk7CisgICAgLy8gV2UgZG9uJ3Qgc3VwcG9y
dCBub24tRlRMIGJ1aWxkcyBmb3IgdHdvIHJlYXNvbnM6CisgICAgLy8gLSBJdCBqdXN0IHNvIGhh
cHBlbnMgdGhhdCBjdXJyZW50bHkgb25seSB0aGUgRlRMIGJvdHRvbXMgb3V0IGluIHRoaXMgY29k
ZS4KKyAgICAvLyAtIFRoZSBjb2RlIGFib3ZlIHVzZXMgNjQtYml0IGluc3RydWN0aW9ucy4gSXQg
ZG9lc24ndCBuZWNlc3NhcmlseSBoYXZlIHRvOyBpdCB3b3VsZCBiZQorICAgIC8vICAgZWFzeSB0
byBjaGFuZ2UgaXQgc28gdGhhdCBpdCBkb2Vzbid0LiBCdXQgb2J2aW91c2x5IG1ha2luZyB0aGF0
IGNoYW5nZSB3b3VsZCBiZSBhCisgICAgLy8gICBwcmVyZXF1aXNpdGUgdG8gcmVtb3ZpbmcgdGhp
cyAjaWYuCisgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7CisgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZigpOworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorfQorCitzdGF0
aWMgdm9pZCBnZW5lcmF0ZVJlZ2lzdGVyUmVzdG9yYXRpb24oQXNzZW1ibHlIZWxwZXJzJiBqaXQp
Cit7CisjaWYgRU5BQkxFKEZUTF9KSVQpCisgICAgUmVnaXN0ZXJTZXQgdG9TYXZlID0gcmVnaXN0
ZXJzVG9QcmVzZXJ2ZSgpOworICAgIHB0cmRpZmZfdCBvZmZzZXQgPSByZWdpc3RlclByZXNlcnZh
dGlvbk9mZnNldCgpOworICAgIAorICAgIEFTU0VSVCghdG9TYXZlLmdldChHUFJJbmZvOjpyZWdU
NCkpOworCisgICAgLy8gV2UgbmVlZCB0byBwbGFjZSB0aGUgc3RhY2sgcG9pbnRlciBiYWNrIHRv
IHdoZXJlIHRoZSBjYWxsZXIgdGhvdWdodCB0aGV5IGxlZnQgaXQuCisgICAgLy8gQnV0IGFsc28s
IGluIG9yZGVyIHRvIHJlY292ZXIgdGhlIHJlZ2lzdGVycywgd2UgbmVlZCB0byBmaWd1cmUgb3V0
IGhvdyBiaWcgdGhlCisgICAgLy8gYXJndW1lbnRzIGFyZWEgaXMuCisgICAgCisgICAgaml0Lmxv
YWQzMigKKyAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKAorICAgICAgICAgICAgQXNz
ZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwKKyAgICAgICAgICAgIChKU1N0YWNr
OjpBcmd1bWVudENvdW50IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9m
KFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQpLAorICAgICAgICBHUFJJbmZvOjpyZWdUNCk7Cisg
ICAgCisgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmVnVDQsIEdQUkluZm86OnJlZ1QyKTsKKyAgICBq
aXQubHNoaWZ0MzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMyksIEdQUkluZm86OnJl
Z1QyKTsKKyAgICAKKyAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KG9mZnNldCksIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGpp
dC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6
cmVnVDIpOworICAgIAorICAgIC8vIFdlIHNhdmVkIHRoaW5ncyBhdDoKKyAgICAvLworICAgIC8v
ICAgICBhZGpTUCArIChKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gSlNTdGFjazo6Q2Fs
bGVyRnJhbWVBbmRQQ1NpemUgKyBOdW1BcmdzKSAqIDgKKyAgICAvLworICAgIC8vIFdoZXJlOgor
ICAgIC8vCisgICAgLy8gICAgIGFkalNQID0gb3JpZ1NQIC0gb2Zmc2V0CisgICAgLy8KKyAgICAv
LyByZWdUMiBub3cgcG9pbnRzIGF0OgorICAgIC8vCisgICAgLy8gICAgIG9yaWdTUCArIE51bUFy
Z3MgKiA4CisgICAgLy8gICA9IGFkalNQICsgb2Zmc2V0ICsgTnVtQXJncyAqIDgKKyAgICAvLyAK
KyAgICAvLyBTbyBpZiB3ZSBzdWJ0cmFjdCBvZmZzZXQgYW5kIHRoZW4gYWRkIEpTU3RhY2s6OkNh
bGxGcmFtZUhlYWRlclNpemUgYW5kIHN1YnRyYWN0CisgICAgLy8gSlNTdGFjazo6Q2FsbGVyRnJh
bWVBbmRQQ1NpemUsIHdlJ2xsIGdldCB0aGUgdGhpbmcgd2Ugd2FudC4KKyAgICBwdHJkaWZmX3Qg
Y3VycmVudE9mZnNldCA9IC1vZmZzZXQgKyBzaXplb2YoUmVnaXN0ZXIpICogKAorICAgICAgICBK
U1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1Np
emUpOworICAgIGppdC5sb2FkUHRyKEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpy
ZWdUMiwgY3VycmVudE9mZnNldCksIEdQUkluZm86OnJlZ1QxKTsKKyAgICAKKyAgICBmb3IgKEdQ
UlJlZyBncHIgPSBBc3NlbWJseUhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgZ3ByIDw9IEFzc2Vt
Ymx5SGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IGdwciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oZ3By
ICsgMSkpIHsKKyAgICAgICAgaWYgKCF0b1NhdmUuZ2V0KGdwcikpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgY3VycmVudE9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOworICAgICAg
ICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMiwgY3Vy
cmVudE9mZnNldCksIGdwcik7CisgICAgfQorICAgIAorICAgIC8vIFRodW5rcyBsaWtlIHRoaXMg
cmVseSBvbiB0aGUgQXJndW1lbnRDb3VudCBiZWluZyBpbnRhY3QuIFBheSBpdCBmb3J3YXJkLgor
ICAgIGppdC5zdG9yZTMyKAorICAgICAgICBHUFJJbmZvOjpyZWdUNCwKKyAgICAgICAgQXNzZW1i
bHlIZWxwZXJzOjpBZGRyZXNzKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1Bv
aW50ZXJSZWdpc3RlciwKKyAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0gSlNT
dGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRP
ZmZzZXQpKTsKKyAgICAKKyAgICBpZiAoIUFTU0VSVF9ESVNBQkxFRCkgeworICAgICAgICBBc3Nl
bWJseUhlbHBlcnM6Okp1bXAgb2sgPSBqaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgQXNzZW1i
bHlIZWxwZXJzOjpBYm92ZSwgR1BSSW5mbzo6cmVnVDEsIEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbVB0cihzdGF0aWNfY2FzdDxzaXplX3Q+KDB4MTAwMCkpKTsKKyAgICAgICAgaml0LmJyZWFr
cG9pbnQoKTsKKyAgICAgICAgb2subGluaygmaml0KTsKKyAgICB9CisgICAgCisgICAgaml0Lmp1
bXAoR1BSSW5mbzo6cmVnVDEpOworI2Vsc2UgLy8gRU5BQkxFKEZUTF9KSVQpCisgICAgVU5VU0VE
X1BBUkFNKGppdCk7CisgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7CisjZW5kaWYgLy8g
RU5BQkxFKEZUTF9KSVQpCit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiByZWdpc3RlclJlc3Rv
cmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIEFzc2VtYmx5SGVscGVycyBqaXQo
dm0sIDApOworICAgIGdlbmVyYXRlUmVnaXN0ZXJSZXN0b3JhdGlvbihqaXQpOworICAgIExpbmtC
dWZmZXIgbGlua0J1ZmZlcigqdm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7CisgICAgcmV0dXJu
IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJSZWdpc3RlciByZXN0b3JhdGlvbiB0aHVuayIp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVn
aXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZWdpc3RlclByZXNlcnZhdGlvbldy
YXBwZXJHZW5lcmF0b3JfaAorI2RlZmluZSBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5l
cmF0b3JfaAorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkFyaXR5Q2hlY2tNb2RlLmgi
CisjaW5jbHVkZSAiQXNzZW1ibHlIZWxwZXJzLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmLmgiCisjaW5jbHVkZSAiVk0uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK1JlZ2lzdGVy
U2V0IHJlZ2lzdGVyc1RvUHJlc2VydmUoKTsKKworcHRyZGlmZl90IHJlZ2lzdGVyUHJlc2VydmF0
aW9uT2Zmc2V0KCk7CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZW5lcmF0ZVJlZ2lzdGVyUHJl
c2VydmF0aW9uV3JhcHBlcihWTSYsIEV4ZWN1dGFibGVCYXNlKiwgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIHRhcmdldCk7CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiByZWdpc3RlclJlc3RvcmF0aW9u
VGh1bmtHZW5lcmF0b3IoVk0qKTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBF
TkFCTEUoSklUKQorCisjZW5kaWYgLy8gUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJh
dG9yX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
MiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MSwxMSArNTEsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIC8vIHRoYXQgd291bGQgb3JkaW5hcmlseSBoYXZlIHdlbGwta25vd24gdmFsdWVz
OgogLy8gLSB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIKIC8vIC0gdGFnTWFza1JlZ2lzdGVyCi0vLyAt
IGNhbGxGcmFtZVJlZ2lzdGVyICoqCi0vLwotLy8gV2UgY3VycmVudGx5IG9ubHkgdXNlIHRoZSBj
YWxsRnJhbWVSZWdpc3RlciBmb3IgY2xvc3VyZSBjYWxsIHBhdGNoaW5nLCBhbmQgd2UncmUgbm90
IGdvaW5nIHRvCi0vLyBnaXZlIHRoZSBGVEwgY2xvc3VyZSBjYWxsIHBhdGNoaW5nIHN1cHBvcnQg
dW50aWwgd2Ugc3dpdGNoIHRvIHRoZSBDIHN0YWNrIC0gYnV0IHdoZW4gd2UgZG8gdGhhdCwKLS8v
IGNhbGxGcmFtZVJlZ2lzdGVyIHdpbGwgZGlzYXBwZWFyLgogCiBzdGF0aWMgRnVuY3Rpb25QdHIg
cmVhZENhbGxUYXJnZXQoUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlciwgQ29kZUxvY2F0aW9u
Q2FsbCBjYWxsKQogewpAQCAtMjk4LDIzICsyOTMsMjMgQEAgc3RhdGljIFByb3RvQ2hhaW5HZW5l
cmF0aW9uUmVzdWx0IGdlbmVyYQogI2VuZGlmCiAgICAgICAgIH0KICAgICB9CisKICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBvcGVyYXRpb25DYWxsOwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGhhbmRsZXJDYWxsOwogICAgIEZ1bmN0aW9uUHRyIG9wZXJhdGlvbkZ1bmN0aW9uOwogICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIHN1Y2Nlc3MsIGZhaWw7CiAgICAgaWYgKGlzQWNjZXNzb3IpIHsK
LSAgICAgICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihz
dHViSW5mby5wYXRjaC5jYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgIGlmIChzbG90LmlzQ2Fj
aGVhYmxlR2V0dGVyKCkpIHsKLSAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2Fs
bEZyYW1lUmVnaXN0ZXIsIHNjcmF0Y2hHUFIsIHJlc3VsdEdQUik7CisgICAgICAgICAgICBzdHVi
Sml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShzY3JhdGNoR1BSLCByZXN1bHRHUFIpOwog
ICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBvcGVyYXRpb25DYWxsR2V0dGVyOwogICAg
ICAgICB9IGVsc2UgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICAvLyBFbmNvZGVk
SlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICAgICAgICAg
IHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tUHRyKHByb3RvT2JqZWN0KSwgc2NyYXRjaEdQUiwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpOworICAgICAgICAgICAgc3R1Ykpp
dC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIocHJvdG9PYmplY3QpLCBzY3JhdGNoR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSk7CiAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9
IEZ1bmN0aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpOwogI2Vsc2UKICAgICAgICAgICAgIHN0
dWJKaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm90b09iamVjdCksIHNj
cmF0Y2hHUFIpOwotICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVS
ZWdpc3Rlciwgc2NyYXRjaEdQUiwKKyAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKHNjcmF0Y2hHUFIsCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIoRnVuY3Rpb25QdHIoc2xvdC5jdXN0b21HZXR0ZXIoKSkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSksCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIocHJvcGVydHlOYW1lLmltcGwoKSkpOwogICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24g
PSBvcGVyYXRpb25DYWxsQ3VzdG9tR2V0dGVyOwpAQCAtMzUwLDkgKzM0NSwxMCBAQCBzdGF0aWMg
UHJvdG9DaGFpbkdlbmVyYXRpb25SZXN1bHQgZ2VuZXJhCiAgICAgICAgIHBhdGNoQnVmZmVyLmxp
bmsob3BlcmF0aW9uQ2FsbCwgb3BlcmF0aW9uRnVuY3Rpb24pOwogICAgICAgICBwYXRjaEJ1ZmZl
ci5saW5rKGhhbmRsZXJDYWxsLCBsb29rdXBFeGNlcHRpb25IYW5kbGVyKTsKICAgICB9Ci0gICAg
c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdfU1RVQigKLSAgICAgICAgcGF0Y2hC
dWZmZXIsCi0gICAgICAgICgiREZHIHByb3RvdHlwZSBjaGFpbiBhY2Nlc3Mgc3R1YiBmb3IgJXMs
IHJldHVybiBwb2ludCAlcCIsCisgICAgCisgICAgc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RF
X0ZPUl9TVFVCKAorICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisgICAg
ICAgICgiUHJvdG90eXBlIGNoYWluIGFjY2VzcyBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVw
IiwKICAgICAgICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwgc3Vj
Y2Vzc0xhYmVsLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKICAgICByZXR1cm4gUHJvdG9DaGFpbkdl
bmVyYXRpb25TdWNjZWVkZWQ7CiB9CkBAIC00MTIsOSArNDA4LDkgQEAgc3RhdGljIGJvb2wgdHJ5
Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSogZQogICAgICAgICAKICAgICAgICAgbGlua1Jlc3RvcmVT
Y3JhdGNoKHBhdGNoQnVmZmVyLCBuZWVkVG9SZXN0b3JlU2NyYXRjaCwgc3R1YkluZm8sIHN1Y2Nl
c3MsIGZhaWwsIGZhaWx1cmVDYXNlcyk7CiAgICAgICAgIAotICAgICAgICBzdHViSW5mby5zdHVi
Um91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX0RGR19TVFVCKAotICAgICAgICAgICAgcGF0Y2hC
dWZmZXIsCi0gICAgICAgICAgICAoIkRGRyBHZXRCeUlkIGFycmF5IGxlbmd0aCBzdHViIGZvciAl
cywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICAgICAgc3R1YkluZm8uc3R1YlJvdXRpbmUgPSBGSU5B
TElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCksIHBhdGNo
QnVmZmVyLAorICAgICAgICAgICAgKCJHZXRCeUlkIGFycmF5IGxlbmd0aCBzdHViIGZvciAlcywg
cmV0dXJuIHBvaW50ICVwIiwKICAgICAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVC
bG9jaygpKS5kYXRhKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0
KAogICAgICAgICAgICAgICAgICAgICBzdHViSW5mby5wYXRjaC5kZWx0YUNhbGxUb0RvbmUpLmV4
ZWN1dGFibGVBZGRyZXNzKCkpKTsKICAgICAgICAgCkBAIC01NzIsNyArNTY4LDYgQEAgc3RhdGlj
IGJvb2wgdHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdAogICAgICAgICAKICAgICAgICAgc3R1
YkluZm8udS5nZXRCeUlkU2VsZkxpc3QubGlzdFNpemUrKzsKICAgICAgICAgCi0gICAgICAgIEdQ
UlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0
Y2guY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IHN0YXRpY19j
YXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guYmFzZUdQUik7CiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKICAgICAgICAgR1BSUmVnIHJlc3VsdFRhZ0dQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1
YkluZm8ucGF0Y2gudmFsdWVUYWdHUFIpOwpAQCAtNTk2LDYgKzU5MSwxMCBAQCBzdGF0aWMgYm9v
bCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wIHN1Y2Nlc3M7CiAgICAgICAgIAogICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUdldHRl
cigpIHx8IHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSkgeworICAgICAgICAgICAgLy8gRklYTUU6
IFRoaXMgY29kZSBzaG91bGRuJ3QgYmUgYXNzdW1pbmcgdGhhdCB0aGUgdG9wIG9mIHN0YWNrIGlz
IHNldCB1cCBmb3IgSlNDCisgICAgICAgICAgICAvLyBKSVQtc3R5bGUgQyBjYWxscywgc2luY2Ug
d2UgbWF5IGJlIGN1cnJlbnRseSBvbiB0b3Agb2YgYW4gRlRMIGZyYW1lLgorICAgICAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTcxMQorICAgICAg
ICAgICAgCiAgICAgICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUdldHRlcigpKSB7CiAgICAg
ICAgICAgICAgICAgQVNTRVJUKHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZyk7CiAgICAgICAg
ICAgICAgICAgQVNTRVJUKGJhc2VHUFIgIT0gc2NyYXRjaEdQUik7CkBAIC02MTMsMTYgKzYxMiwx
NiBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAgICAgICAgICAg
ICAgICAgICAgIHN0dWJKaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNjcmF0Y2hH
UFIsIG9mZnNldFJlbGF0aXZlVG9CYXNlKHNsb3QuY2FjaGVkT2Zmc2V0KCkpKSwgc2NyYXRjaEdQ
Uik7CiAjZW5kaWYKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3R1YkppdC5z
ZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgYmFzZUdQUiwgc2NyYXRjaEdQUik7Cisg
ICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQ
Uiwgc2NyYXRjaEdQUik7CiAgICAgICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBvcGVy
YXRpb25DYWxsR2V0dGVyOwogICAgICAgICAgICAgfSBlbHNlIHsKICNpZiBVU0UoSlNWQUxVRTY0
KQogICAgICAgICAgICAgICAgIC8vIEVuY29kZWRKU1ZhbHVlICgqR2V0VmFsdWVGdW5jKShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOwotICAgICAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMo
Y2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsIGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tUHRyKGlkZW50LmltcGwoKSkpOworICAgICAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIsIGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSkpOwogICAgICAgICAgICAgICAgIG9wZXJhdGlvbkZ1
bmN0aW9uID0gRnVuY3Rpb25QdHIoc2xvdC5jdXN0b21HZXR0ZXIoKSk7CiAjZWxzZQotICAgICAg
ICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoCi0gICAgICAgICAgICAgICAgICAgIGNh
bGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLAorICAgICAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKAorICAgICAgICAgICAgICAgICAgICBiYXNlR1BSLAogICAg
ICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihGdW5jdGlvblB0
cihzbG90LmN1c3RvbUdldHRlcigpKS5leGVjdXRhYmxlQWRkcmVzcygpKSwKICAgICAgICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CiAg
ICAgICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBvcGVyYXRpb25DYWxsQ3VzdG9tR2V0
dGVyOwpAQCAtNjQ0LDcgKzY0Myw3IEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJRExpc3Qo
RXhlY1N0YXQKICNlbmRpZgogICAgICAgICAgICAgc3VjY2VzcyA9IHN0dWJKaXQuZW1pdEV4Y2Vw
dGlvbkNoZWNrKENDYWxsSGVscGVyczo6SW52ZXJ0ZWRFeGNlcHRpb25DaGVjayk7CiAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKKyAg
ICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKHZtKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgICAgICAgICAgaGFuZGxl
ckNhbGwgPSBzdHViSml0LmNhbGwoKTsKICAgICAgICAgICAgIHN0dWJKaXQuanVtcFRvRXhjZXB0
aW9uSGFuZGxlcigpOwogICAgICAgICB9IGVsc2UgewpAQCAtNjg0LDkgKzY4Myw5IEBAIHN0YXRp
YyBib29sIHRyeUJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXQKICAgICAgICAgCiAgICAgICAgIFJl
ZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmUgPQogICAgICAgICAgICAgY3JlYXRlSklU
U3R1YlJvdXRpbmUoCi0gICAgICAgICAgICAgICAgRklOQUxJWkVfREZHX0NPREUoCi0gICAgICAg
ICAgICAgICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAoIkRGRyBHZXRC
eUlkIHBvbHltb3JwaGljIGxpc3QgYWNjZXNzIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAg
ICAgICAgICAgICAgICBGSU5BTElaRV9DT0RFX0ZPUigKKyAgICAgICAgICAgICAgICAgICAgZXhl
Yy0+Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAoIkdldEJ5
SWQgcG9seW1vcnBoaWMgbGlzdCBhY2Nlc3MgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAg
ICAgICAgICAgICAgICAgICAgICAgdG9DU3RyaW5nKCpleGVjLT5jb2RlQmxvY2soKSkuZGF0YSgp
LCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldCgKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHViSW5mby5wYXRjaC5kZWx0YUNhbGxUb0RvbmUpLmV4ZWN1dGFi
bGVBZGRyZXNzKCkpKSwKICAgICAgICAgICAgICAgICAqdm0sCkBAIC03NzUsNyArNzc0LDcgQEAg
c3RhdGljIFZfSklUT3BlcmF0aW9uX0VTc2lKSkkgYXBwcm9wcmlhdAogfQogCiAjaWYgRU5BQkxF
KEdHQykKLXN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBzdG9yZVRvV3JpdGVCYXJyaWVyQnVm
ZmVyKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgY2VsbCwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJS
ZWcgc2NyYXRjaDIsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwgU2NyYXRjaFJlZ2lzdGVyQWxs
b2NhdG9yJiBhbGxvY2F0b3IpCitzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgc3RvcmVUb1dy
aXRlQmFycmllckJ1ZmZlcihDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVnIGNlbGwsIEdQUlJlZyBz
Y3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyLCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3ImIGFsbG9j
YXRvcikKIHsKICAgICBBU1NFUlQoc2NyYXRjaDEgIT0gc2NyYXRjaDIpOwogICAgIFdyaXRlQmFy
cmllckJ1ZmZlciogd3JpdGVCYXJyaWVyQnVmZmVyID0gJmppdC52bSgpLT5oZWFwLndyaXRlQmFy
cmllckJ1ZmZlcigpOwpAQCAtODA4LDcgKzgwNyw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBzdG9yZVRvV3JpdGUKICAgICBpZiAoYnl0ZXNUb1N1YnRyYWN0KQogICAgICAgICBqaXQu
c3ViUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoYnl0ZXNUb1N1YnRyYWN0KSwgTWFj
cm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgCiAKLSAgICBqaXQuc2V0dXBBcmd1
bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIGNlbGwpOworICAgIGppdC5zZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoY2VsbCk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IGppdC5j
YWxsKCk7CiAKICAgICBpZiAoYnl0ZXNUb1N1YnRyYWN0KQpAQCAtODIwLDEzICs4MTksMTMgQEAg
c3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0ZQogICAgIHJldHVybiBjYWxs
OwogfQogCi1zdGF0aWMgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyKENDYWxsSGVs
cGVycyYgaml0LCBHUFJSZWcgb3duZXIsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gy
LCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciYgYWxs
b2NhdG9yKQorc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdyaXRlQmFycmllcihDQ2FsbEhl
bHBlcnMmIGppdCwgR1BSUmVnIG93bmVyLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNo
MiwgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBhbGxvY2F0b3IpCiB7CiAgICAgQVNTRVJUKG93
bmVyICE9IHNjcmF0Y2gxKTsKICAgICBBU1NFUlQob3duZXIgIT0gc2NyYXRjaDIpOwogCiAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgZGVmaW5pdGVseU5vdE1hcmtlZCA9IERGRzo6U3BlY3VsYXRp
dmVKSVQ6OmdlbmVyaWNXcml0ZUJhcnJpZXIoaml0LCBvd25lciwgc2NyYXRjaDEsIHNjcmF0Y2gy
KTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gc3RvcmVUb1dyaXRlQmFycmllckJ1
ZmZlcihqaXQsIG93bmVyLCBzY3JhdGNoMSwgc2NyYXRjaDIsIGNhbGxGcmFtZVJlZ2lzdGVyLCBh
bGxvY2F0b3IpOworICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBzdG9yZVRvV3JpdGVC
YXJyaWVyQnVmZmVyKGppdCwgb3duZXIsIHNjcmF0Y2gxLCBzY3JhdGNoMiwgYWxsb2NhdG9yKTsK
ICAgICBkZWZpbml0ZWx5Tm90TWFya2VkLmxpbmsoJmppdCk7CiAgICAgcmV0dXJuIGNhbGw7CiB9
CkBAIC04NDQsOSArODQzLDYgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFJlcGxhY2VTdHViKAogICAg
IFJlZlB0cjxKSVRTdHViUm91dGluZT4mIHN0dWJSb3V0aW5lKQogewogICAgIFZNKiB2bSA9ICZl
eGVjLT52bSgpOwotI2lmIEVOQUJMRShHR0MpCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVy
ID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5jYWxsRnJhbWVSZWdpc3Rlcik7
Ci0jZW5kaWYKICAgICBHUFJSZWcgYmFzZUdQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1Yklu
Zm8ucGF0Y2guYmFzZUdQUik7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBHUFJSZWcgdmFs
dWVUYWdHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLnZhbHVlVGFnR1BS
KTsKQEAgLTg5Myw3ICs4ODksNyBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0UmVwbGFjZVN0dWIoCiAj
ZW5kaWYKICAgICAKICNpZiBFTkFCTEUoR0dDKQotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdy
aXRlQmFycmllck9wZXJhdGlvbiA9IHdyaXRlQmFycmllcihzdHViSml0LCBiYXNlR1BSLCBzY3Jh
dGNoR1BSMSwgc2NyYXRjaEdQUjIsIGNhbGxGcmFtZVJlZ2lzdGVyLCBhbGxvY2F0b3IpOworICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdyaXRlQmFycmllck9wZXJhdGlvbiA9IHdyaXRlQmFycmll
cihzdHViSml0LCBiYXNlR1BSLCBzY3JhdGNoR1BSMSwgc2NyYXRjaEdQUjIsIGFsbG9jYXRvcik7
CiAjZW5kaWYKICAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzOwpAQCAtOTE4
LDkgKzkxNCw5IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRSZXBsYWNlU3R1YigKICAgICBwYXRjaEJ1
ZmZlci5saW5rKHN1Y2Nlc3MsIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zm
c2V0KHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkpOwogICAgIHBhdGNoQnVmZmVyLmxp
bmsoZmFpbHVyZSwgZmFpbHVyZUxhYmVsKTsKICAgICAgICAgICAgIAotICAgIHN0dWJSb3V0aW5l
ID0gRklOQUxJWkVfQ09ERV9GT1JfREZHX1NUVUIoCi0gICAgICAgIHBhdGNoQnVmZmVyLAotICAg
ICAgICAoIkRGRyBQdXRCeUlkIHJlcGxhY2Ugc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIs
CisgICAgc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICBleGVj
LT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisgICAgICAgICgiUHV0QnlJZCByZXBsYWNlIHN0
dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgdG9DU3RyaW5nKCpleGVj
LT5jb2RlQmxvY2soKSkuZGF0YSgpLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxB
dE9mZnNldCgKICAgICAgICAgICAgICAgICBzdHViSW5mby5wYXRjaC5kZWx0YUNhbGxUb0RvbmUp
LmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKIH0KQEAgLTk0MCw3ICs5MzYsNiBAQCBzdGF0aWMgdm9p
ZCBlbWl0UHV0VHJhbnNpdGlvblN0dWIoCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAK
LSAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJ
bmZvLnBhdGNoLmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBHUFJSZWcgYmFzZUdQUiA9IHN0YXRp
Y19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guYmFzZUdQUik7CiAjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKICAgICBHUFJSZWcgdmFsdWVUYWdHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJ
bmZvLnBhdGNoLnZhbHVlVGFnR1BSKTsKQEAgLTEwNjAsNyArMTA1NSw3IEBAIHN0YXRpYyB2b2lk
IGVtaXRQdXRUcmFuc2l0aW9uU3R1YigKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShHR0MpCi0g
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyT3BlcmF0aW9uID0gd3JpdGVCYXJy
aWVyKHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0Y2hHUFIxLCBzY3JhdGNoR1BSMiwgY2FsbEZyYW1l
UmVnaXN0ZXIsIGFsbG9jYXRvcik7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJy
aWVyT3BlcmF0aW9uID0gd3JpdGVCYXJyaWVyKHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0Y2hHUFIx
LCBzY3JhdGNoR1BSMiwgYWxsb2NhdG9yKTsKICNlbmRpZgogICAgIAogICAgIE1hY3JvQXNzZW1i
bGVyOjpKdW1wIHN1Y2Nlc3M7CkBAIC0xMDg2LDkgKzEwODEsOSBAQCBzdGF0aWMgdm9pZCBlbWl0
UHV0VHJhbnNpdGlvblN0dWIoCiAgICAgICAgIFNjcmF0Y2hCdWZmZXIqIHNjcmF0Y2hCdWZmZXIg
PSB2bS0+c2NyYXRjaEJ1ZmZlckZvclNpemUoYWxsb2NhdG9yLmRlc2lyZWRTY3JhdGNoQnVmZmVy
U2l6ZSgpKTsKICAgICAgICAgYWxsb2NhdG9yLnByZXNlcnZlVXNlZFJlZ2lzdGVyc1RvU2NyYXRj
aEJ1ZmZlcihzdHViSml0LCBzY3JhdGNoQnVmZmVyLCBzY3JhdGNoR1BSMSk7CiAjaWYgVVNFKEpT
VkFMVUU2NCkKLSAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3Rl
ciwgYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSwgTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzbG90LmNhY2hlZE9mZnNldCgpKSwgdmFsdWVHUFIp
OworICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShiYXNlR1BSLCBN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyKHNsb3QuY2FjaGVkT2Zmc2V0KCkpLCB2YWx1ZUdQUik7CiAjZWxzZQotICAg
ICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyKHNsb3QuY2FjaGVkT2Zmc2V0KCkpLCB2YWx1ZUdQUiwgdmFsdWVUYWdHUFIp
OworICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShiYXNlR1BSLCBN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyKHNsb3QuY2FjaGVkT2Zmc2V0KCkpLCB2YWx1ZUdQUiwgdmFsdWVUYWdHUFIp
OwogI2VuZGlmCiAgICAgICAgIG9wZXJhdGlvbkNhbGwgPSBzdHViSml0LmNhbGwoKTsKICAgICAg
ICAgYWxsb2NhdG9yLnJlc3RvcmVVc2VkUmVnaXN0ZXJzRnJvbVNjcmF0Y2hCdWZmZXIoc3R1Ykpp
dCwgc2NyYXRjaEJ1ZmZlciwgc2NyYXRjaEdQUjEpOwpAQCAtMTExMSw5ICsxMTA2LDkgQEAgc3Rh
dGljIHZvaWQgZW1pdFB1dFRyYW5zaXRpb25TdHViKAogICAgIAogICAgIHN0dWJSb3V0aW5lID0K
ICAgICAgICAgY3JlYXRlSklUU3R1YlJvdXRpbmUoCi0gICAgICAgICAgICBGSU5BTElaRV9ERkdf
Q09ERSgKLSAgICAgICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgICAgICAgICAoIkRG
RyBQdXRCeUlkICVzdHJhbnNpdGlvbiBzdHViICglcCAtPiAlcCkgZm9yICVzLCByZXR1cm4gcG9p
bnQgJXAiLAorICAgICAgICAgICAgRklOQUxJWkVfQ09ERV9GT1IoCisgICAgICAgICAgICAgICAg
ZXhlYy0+Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAgICAgICgiUHV0QnlJ
ZCAlc3RyYW5zaXRpb24gc3R1YiAoJXAgLT4gJXApIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwK
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlLT5vdXRPZkxpbmVDYXBhY2l0eSgpICE9IG9s
ZFN0cnVjdHVyZS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSA/ICJyZWFsbG9jYXRpbmcgIiA6ICIiLAog
ICAgICAgICAgICAgICAgICAgICBvbGRTdHJ1Y3R1cmUsIHN0cnVjdHVyZSwKICAgICAgICAgICAg
ICAgICAgICAgdG9DU3RyaW5nKCpleGVjLT5jb2RlQmxvY2soKSkuZGF0YSgpLCBzdHViSW5mby5j
YWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldCgKQEAgLTEzOTQsOSArMTM4OSw5IEBAIHN0
YXRpYyBib29sIHRyeVJlcGF0Y2hJbigKIAogICAgICAgICBsaW5rUmVzdG9yZVNjcmF0Y2gocGF0
Y2hCdWZmZXIsIG5lZWRUb1Jlc3RvcmVTY3JhdGNoLCBzdWNjZXNzLCBmYWlsLCBmYWlsdXJlQ2Fz
ZXMsIHN1Y2Nlc3NMYWJlbCwgc2xvd0Nhc2VMYWJlbCk7CiAgICAgICAgIAotICAgICAgICBzdHVi
Um91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX0RGR19TVFVCKAotICAgICAgICAgICAgcGF0Y2hC
dWZmZXIsCi0gICAgICAgICAgICAoIkRGRyBJbiAoZm91bmQgPSAlcykgc3R1YiBmb3IgJXMsIHJl
dHVybiBwb2ludCAlcCIsCisgICAgICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1Jf
U1RVQigKKyAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZlciwKKyAgICAg
ICAgICAgICgiSW4gKGZvdW5kID0gJXMpIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAog
ICAgICAgICAgICAgICAgIHdhc0ZvdW5kID8gInllcyIgOiAibm8iLCB0b0NTdHJpbmcoKmV4ZWMt
PmNvZGVCbG9jaygpKS5kYXRhKCksCiAgICAgICAgICAgICAgICAgc3VjY2Vzc0xhYmVsLmV4ZWN1
dGFibGVBZGRyZXNzKCkpKTsKICAgICB9CkBAIC0xNDE5LDE3ICsxNDE0LDE5IEBAIHZvaWQgcmVw
YXRjaEluKAogICAgIHJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5jYWxs
UmV0dXJuTG9jYXRpb24sIG9wZXJhdGlvbkluKTsKIH0KIAotc3RhdGljIHZvaWQgbGlua1Nsb3dG
b3IoUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlciwgVk0qIHZtLCBDYWxsTGlua0luZm8mIGNh
bGxMaW5rSW5mbywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQorc3RhdGljIHZvaWQgbGlu
a1Nsb3dGb3IoCisgICAgUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlciwgVk0qIHZtLCBDYWxs
TGlua0luZm8mIGNhbGxMaW5rSW5mbywKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQs
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7Ci0gICAgaWYgKGtpbmQgPT0g
Q29kZUZvckNhbGwpIHsKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZv
LmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVy
YXRvcikuY29kZSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBBU1NFUlQoa2luZCA9
PSBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0lu
Zm8uY2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ29uc3RydWN0VGh1
bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoCisgICAgICAg
IGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sCisgICAgICAgIHZtLT5nZXRDVElTdHVi
KHZpcnR1YWxUaHVua0dlbmVyYXRvckZvcihraW5kLCByZWdpc3RlcnMpKS5jb2RlKCkpOwogfQog
Ci12b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5m
bywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK3Zv
aWQgbGlua0ZvcigKKyAgICBFeGVjU3RhdGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJ
bmZvLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywKKyAgICBKU0Z1bmN0aW9uKiBjYWxsZWUs
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtp
bmQsCisgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBBU1NF
UlQoIWNhbGxMaW5rSW5mby5zdHViKTsKICAgICAKQEAgLTE0NDUsMzEgKzE0NDIsMzggQEAgdm9p
ZCBsaW5rRm9yKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbgogICAgIEFTU0VSVCghY2FsbExp
bmtJbmZvLmlzTGlua2VkKCkpOwogICAgIGNhbGxMaW5rSW5mby5jYWxsZWUuc2V0KGV4ZWMtPmNh
bGxlckZyYW1lKCktPnZtKCksIGNhbGxMaW5rSW5mby5ob3RQYXRoQmVnaW4sIGNhbGxlckNvZGVC
bG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7CiAgICAgY2FsbExpbmtJbmZvLmxhc3RT
ZWVuQ2FsbGVlLnNldChleGVjLT5jYWxsZXJGcmFtZSgpLT52bSgpLCBjYWxsZXJDb2RlQmxvY2st
Pm93bmVyRXhlY3V0YWJsZSgpLCBjYWxsZWUpOworICAgIGlmIChzaG91bGRTaG93RGlzYXNzZW1i
bHlGb3IoY2FsbGVyQ29kZUJsb2NrKSkKKyAgICAgICAgZGF0YUxvZygiTGlua2luZyBjYWxsIGlu
ICIsICpjYWxsZXJDb2RlQmxvY2ssICIgYXQgIiwgY2FsbExpbmtJbmZvLmNvZGVPcmlnaW4sICIg
dG8gIiwgcG9pbnRlckR1bXAoY2FsbGVlQ29kZUJsb2NrKSwgIiwgZW50cnlwb2ludCBhdCAiLCBj
b2RlUHRyLCAiXG4iKTsKICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8uaG90
UGF0aE90aGVyLCBjb2RlUHRyKTsKICAgICAKICAgICBpZiAoY2FsbGVlQ29kZUJsb2NrKQogICAg
ICAgICBjYWxsZWVDb2RlQmxvY2stPmxpbmtJbmNvbWluZ0NhbGwoZXhlYy0+Y2FsbGVyRnJhbWUo
KSwgJmNhbGxMaW5rSW5mbyk7CiAgICAgCiAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpIHsK
LSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2Nh
dGlvbiwgdm0tPmdldENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUo
KSk7CisgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJu
TG9jYXRpb24sIHZtLT5nZXRDVElTdHViKGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yRm9y
KHJlZ2lzdGVycykpLmNvZGUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAg
QVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgbGlua1Nsb3dGb3IocmVwYXRj
aEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgbGlua1Ns
b3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywgQ29kZUZvckNvbnN0cnVjdCwg
cmVnaXN0ZXJzKTsKIH0KIAotdm9pZCBsaW5rU2xvd0ZvcihFeGVjU3RhdGUqIGV4ZWMsIENhbGxM
aW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCit2b2lk
IGxpbmtTbG93Rm9yKAorICAgIEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlu
a0luZm8sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwKKyAgICBSZWdpc3RlclByZXNlcnZh
dGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrID0g
ZXhlYy0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCk7CiAgICAgVk0qIHZtID0gY2FsbGVyQ29k
ZUJsb2NrLT52bSgpOwogICAgIAogICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjYWxs
ZXJDb2RlQmxvY2spOwogICAgIAotICAgIGxpbmtTbG93Rm9yKHJlcGF0Y2hCdWZmZXIsIHZtLCBj
YWxsTGlua0luZm8sIGtpbmQpOworICAgIGxpbmtTbG93Rm9yKHJlcGF0Y2hCdWZmZXIsIHZtLCBj
YWxsTGlua0luZm8sIGtpbmQsIHJlZ2lzdGVycyk7CiB9CiAKLXZvaWQgbGlua0Nsb3N1cmVDYWxs
KEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVCbG9jayog
Y2FsbGVlQ29kZUJsb2NrLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXhlY3V0YWJsZUJhc2UqIGV4
ZWN1dGFibGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyKQordm9pZCBsaW5rQ2xvc3Vy
ZUNhbGwoCisgICAgRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywg
Q29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssCisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEV4
ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciwK
KyAgICBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIEFTU0VSVCgh
Y2FsbExpbmtJbmZvLnN0dWIpOwogICAgIApAQCAtMTQ4Miw2ICsxNDg2LDE1IEBAIHZvaWQgbGlu
a0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2EKICAgICAKICAgICBDQ2FsbEhlbHBlcnM6
Okp1bXBMaXN0IHNsb3dQYXRoOwogICAgIAorICAgIHB0cmRpZmZfdCBvZmZzZXRUb0ZyYW1lID0g
LXNpemVvZihDYWxsZXJGcmFtZUFuZFBDKTsKKworICAgIGlmICghQVNTRVJUX0RJU0FCTEVEKSB7
CisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBva0FyZ3VtZW50Q291bnQgPSBzdHViSml0LmJy
YW5jaDMyKAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpCZWxvdywgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0
cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpICsgb2Zm
c2V0VG9GcmFtZSArIFBheWxvYWRPZmZzZXQpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigx
MDAwMDAwMCkpOworICAgICAgICBzdHViSml0LmJyZWFrcG9pbnQoKTsKKyAgICAgICAgb2tBcmd1
bWVudENvdW50LmxpbmsoJnN0dWJKaXQpOworICAgIH0KKwogI2lmIFVTRShKU1ZBTFVFNjQpCiAg
ICAgLy8gV2UgY2FuIHNhZmVseSBjbG9iYmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBjYWxsZWVH
UFIuIFdlIGNhbid0IHJlbHkgb24gdGFnTWFza1JlZ2lzdGVyCiAgICAgLy8gYmVpbmcgc2V0LiBT
byB3ZSBkbyB0aGlzIHRoZSBoYXJkIHdheS4KQEAgLTE1MDcsMTggKzE1MjAsMTggQEAgdm9pZCBs
aW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYQogICAgIHN0dWJKaXQubG9hZFB0cigK
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGNhbGxlZUdQUiwgSlNGdW5jdGlvbjo6b2Zm
c2V0T2ZTY29wZUNoYWluKCkpLAogICAgICAgICBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0K
KyAgICAKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHN0dWJKaXQuc3RvcmU2NCgKICAgICAgICAg
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2Yo
UmVnaXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikpKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc3RhdGljX2Nh
c3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBv
ZmZzZXRUb0ZyYW1lKSk7CiAjZWxzZQogICAgIHN0dWJKaXQuc3RvcmVQdHIoCiAgICAgICAgIEdQ
UkluZm86OnJldHVyblZhbHVlR1BSLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJl
Z2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRW
YWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOworICAgICAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzdGF0aWNfY2Fz
dDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSArIE9C
SkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkgKyBv
ZmZzZXRUb0ZyYW1lKSk7CiAgICAgc3R1YkppdC5zdG9yZTMyKAogICAgICAgICBDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAgICAgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZm
X3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSArIE9CSkVDVF9PRkZT
RVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBz
dGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNo
YWluKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFn
KSArIG9mZnNldFRvRnJhbWUpKTsKICNlbmRpZgogICAgIAogICAgIEFzc2VtYmx5SGVscGVyczo6
Q2FsbCBjYWxsID0gc3R1YkppdC5uZWFyQ2FsbCgpOwpAQCAtMTUyOSwyMCArMTU0MiwyNCBAQCB2
b2lkIGxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIENhCiAjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKICAgICBzdHViSml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6Q2VsbFRhZyksIEdQUkluZm86OnJlZ1QxKTsKICNlbmRpZgotICAgIHN0dWJKaXQubW92ZShD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlv
bi5leGVjdXRhYmxlQWRkcmVzcygpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMik7Ci0gICAgc3R1Ykpp
dC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpub25BcmdHUFIyKTsK
KyAgICBzdHViSml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGNhbGxMaW5rSW5m
by5jYWxsUmV0dXJuTG9jYXRpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSksIEdQUkluZm86OnJlZ1Qy
KTsKKyAgICAKKyAgICBzdHViSml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQ
UkluZm86OnJlZ1QyKTsKICAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAgc2xvdyA9IHN0dWJKaXQu
anVtcCgpOwogICAgIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmc3R1YkppdCwg
Y2FsbGVyQ29kZUJsb2NrKTsKICAgICAKICAgICBwYXRjaEJ1ZmZlci5saW5rKGNhbGwsIEZ1bmN0
aW9uUHRyKGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwotICAgIHBhdGNoQnVmZmVyLmxp
bmsoZG9uZSwgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KDAp
KTsKLSAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3csIENvZGVMb2NhdGlvbkxhYmVsKHZtLT5nZXRD
VElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSkpOworICAgIGlmIChKSVRD
b2RlOjppc09wdGltaXppbmdKSVQoY2FsbGVyQ29kZUJsb2NrLT5qaXRUeXBlKCkpKQorICAgICAg
ICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUsIGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24u
bGFiZWxBdE9mZnNldCgwKSk7CisgICAgZWxzZQorICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGRv
bmUsIGNhbGxMaW5rSW5mby5ob3RQYXRoT3RoZXIubGFiZWxBdE9mZnNldCgwKSk7CisgICAgcGF0
Y2hCdWZmZXIubGluayhzbG93LCBDb2RlTG9jYXRpb25MYWJlbCh2bS0+Z2V0Q1RJU3R1Yih2aXJ0
dWFsVGh1bmtHZW5lcmF0b3JGb3IoQ29kZUZvckNhbGwsIHJlZ2lzdGVycykpLmNvZGUoKSkpOwog
ICAgIAogICAgIFJlZlB0cjxDbG9zdXJlQ2FsbFN0dWJSb3V0aW5lPiBzdHViUm91dGluZSA9IGFk
b3B0UmVmKG5ldyBDbG9zdXJlQ2FsbFN0dWJSb3V0aW5lKAotICAgICAgICBGSU5BTElaRV9ERkdf
Q09ERSgKLSAgICAgICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAgICAgKCJERkcgY2xvc3Vy
ZSBjYWxsIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAsIHRhcmdldCAlcCAoJXMpIiwKKyAg
ICAgICAgRklOQUxJWkVfQ09ERV9GT1IoCisgICAgICAgICAgICBjYWxsZXJDb2RlQmxvY2ssIHBh
dGNoQnVmZmVyLAorICAgICAgICAgICAgKCJDbG9zdXJlIGNhbGwgc3R1YiBmb3IgJXMsIHJldHVy
biBwb2ludCAlcCwgdGFyZ2V0ICVwICglcykiLAogICAgICAgICAgICAgICAgIHRvQ1N0cmluZygq
Y2FsbGVyQ29kZUJsb2NrKS5kYXRhKCksIGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24u
bGFiZWxBdE9mZnNldCgwKS5leGVjdXRhYmxlQWRkcmVzcygpLAogICAgICAgICAgICAgICAgIGNv
ZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgdG9DU3RyaW5nKHBvaW50ZXJEdW1wKGNhbGxlZUNv
ZGVCbG9jaykpLmRhdGEoKSkpLAogICAgICAgICAqdm0sIGNhbGxlckNvZGVCbG9jay0+b3duZXJF
eGVjdXRhYmxlKCksIHN0cnVjdHVyZSwgZXhlY3V0YWJsZSwgY2FsbExpbmtJbmZvLmNvZGVPcmln
aW4pKTsKQEAgLTE1NTIsNyArMTU2OSw3IEBAIHZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0
ZSogZXhlYywgQ2EKICAgICByZXBhdGNoQnVmZmVyLnJlcGxhY2VXaXRoSnVtcCgKICAgICAgICAg
UmVwYXRjaEJ1ZmZlcjo6c3RhcnRPZkJyYW5jaFB0cldpdGhQYXRjaE9uUmVnaXN0ZXIoY2FsbExp
bmtJbmZvLmhvdFBhdGhCZWdpbiksCiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsKHN0dWJSb3V0
aW5lLT5jb2RlKCkuY29kZSgpKSk7Ci0gICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0s
IGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwpOworICAgIGxpbmtTbG93Rm9yKHJlcGF0Y2hCdWZm
ZXIsIHZtLCBjYWxsTGlua0luZm8sIENvZGVGb3JDYWxsLCByZWdpc3RlcnMpOwogICAgIAogICAg
IGNhbGxMaW5rSW5mby5zdHViID0gc3R1YlJvdXRpbmUucmVsZWFzZSgpOwogICAgIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw5ICs0
MSw5IEBAIHZvaWQgYnVpbGRHZXRCeUlEUHJvdG9MaXN0KEV4ZWNTdGF0ZSosIEoKIHZvaWQgcmVw
YXRjaFB1dEJ5SUQoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0
IFB1dFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2luZCk7CiB2b2lkIGJ1
aWxkUHV0QnlJZExpc3QoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYsIGNv
bnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2luZCk7CiB2b2lk
IHJlcGF0Y2hJbihFeGVjU3RhdGUqLCBKU0NlbGwqLCBjb25zdCBJZGVudGlmaWVyJiwgYm9vbCB3
YXNGb3VuZCwgY29uc3QgUHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mKTsKLXZvaWQg
bGlua0ZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBKU0Z1bmN0aW9u
KiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7
Ci12b2lkIGxpbmtTbG93Rm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVTcGVjaWFs
aXphdGlvbktpbmQpOwotdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiwgQ2FsbExpbmtJ
bmZvJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlKiwgRXhlY3V0YWJsZUJhc2UqLCBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIpOwordm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENv
ZGVCbG9jayosIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyLCBDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpOwordm9pZCBsaW5r
U2xvd0ZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
LCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpOwordm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0
YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlKiwgRXhlY3V0YWJsZUJh
c2UqLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSk7CiB2
b2lkIHJlc2V0R2V0QnlJRChSZXBhdGNoQnVmZmVyJiwgU3RydWN0dXJlU3R1YkluZm8mKTsKIHZv
aWQgcmVzZXRQdXRCeUlEKFJlcGF0Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9p
ZCByZXNldEluKFJlcGF0Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmgJKHJldmlz
aW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBTcGVjaWFsaXplZFRodW5rSklUKFZNKiB2bSwgaW50IGV4cGVjdGVkQXJnQ291bnQp
CiAgICAgICAgICAgICA6IEpTSW50ZXJmYWNlSklUKHZtKQogICAgICAgICB7CisgICAgICAgICAg
ICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB3ZSBo
YXZlIHRoZSBleHBlY3RlZCBudW1iZXIgb2YgYXJndW1lbnRzCiAgICAgICAgICAgICBtX2ZhaWx1
cmVzLmFwcGVuZChicmFuY2gzMihOb3RFcXVhbCwgcGF5bG9hZEZvcihKU1N0YWNrOjpBcmd1bWVu
dENvdW50KSwgVHJ1c3RlZEltbTMyKGV4cGVjdGVkQXJnQ291bnQgKyAxKSkpOwogICAgICAgICB9
CkBAIC00OCw2ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBleHBsaWNpdCBTcGVj
aWFsaXplZFRodW5rSklUKFZNKiB2bSkKICAgICAgICAgICAgIDogSlNJbnRlcmZhY2VKSVQodm0p
CiAgICAgICAgIHsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgbG9hZERvdWJsZUFyZ3VtZW50KGludCBhcmd1bWVu
dCwgRlBSZWdpc3RlcklEIGRzdCwgUmVnaXN0ZXJJRCBzY3JhdGNoKQpAQCAtOTcsNyArOTksNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHNyYyAhPSByZWdU
MCkKICAgICAgICAgICAgICAgICBtb3ZlKHNyYywgcmVnVDApOwotICAgICAgICAgICAgbG9hZFB0
cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0
KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KICNlbHNlCkBAIC0xMDUsNyArMTA3
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVF9VTlVT
RUQocGF5bG9hZCwgcGF5bG9hZCA9PSByZWdUMCk7CiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VE
KHRhZywgdGFnID09IHJlZ1QxKTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJh
bWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1lUmVn
aXN0ZXIpOworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAg
IHJldCgpOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTEzNiw3ICsxMzgsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgICAgIGxvd05vblplcm8ubGluayh0aGlzKTsKICAgICAgICAgICAgIGhp
Z2hOb25aZXJvLmxpbmsodGhpcyk7CiAjZW5kaWYKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVz
cyhjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSwgY2Fs
bEZyYW1lUmVnaXN0ZXIpOworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAg
ICAgICAgICAgIHJldCgpOwogICAgICAgICB9CiAKQEAgLTE0NSw3ICsxNDcsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAgICAgICAgICAgICAgICAg
bW92ZShzcmMsIHJlZ1QwKTsKICAgICAgICAgICAgIHRhZ1JldHVybkFzSW50MzIoKTsKLSAgICAg
ICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpjYWxs
ZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgICAgICAgICAgZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIHJldCgpOwogICAgICAgICB9CiAKQEAgLTE1
NCw3ICsxNTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVn
VDApCiAgICAgICAgICAgICAgICAgbW92ZShzcmMsIHJlZ1QwKTsKICAgICAgICAgICAgIHRhZ1Jl
dHVybkFzSlNDZWxsKCk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVn
aXN0ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVy
KTsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQo
KTsKICAgICAgICAgfQogICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
VGh1bmtHZW5lcmF0b3JzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1RodW5rR2VuZXJhdG9ycy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyLCAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNp
bmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1N0YWNrLmgiCisjaW5jbHVk
ZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiU3BlY2lhbGl6ZWRUaHVua0pJVC5oIgogI2luY2x1ZGUgPHd0Zi9Jbmxp
bmVBU00uaD4KQEAgLTY2LDEwICs2Nyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB0aHJvd0V4
Y2VwdGlvbkZyb20KICAgICAvLyBldmVuIHRob3VnaCB3ZSB3b24ndCB1c2UgaXQuCiAgICAgaml0
LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25S
ZXR1cm5HUFIpOwogCi0gICAgLy8gVGhlIENhbGxGcmFtZSByZWdpc3RlciBwb2ludHMgdG8gdGhl
IChmYWlsZWQpIGNhbGxlZSBmcmFtZSwgc28gd2UgbmVlZCB0byBwb3AgYmFjayBvbmUgZnJhbWUu
Ci0gICAgaml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotCi0gICAgaml0LnNldHVwQXJndW1lbnRzRXhlY1N0YXRl
KCk7CisgICAgaml0LnNldHVwQXJndW1lbnRzKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2
bSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBqaXQubW92ZShDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIoYml0d2lzZV9jYXN0PHZvaWQqPihsb29rdXBFeGNlcHRpb25IYW5k
bGVyKSksIEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihq
aXQsIEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAgIGppdC5jYWxsKEdQUkluZm86Om5vbkFyZ0dQ
UjApOwpAQCAtODIsMjkgKzgwLDI4IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB0aHJvd0V4Y2Vw
dGlvbkZyb20KIHN0YXRpYyB2b2lkIHNsb3dQYXRoRm9yKAogICAgIENDYWxsSGVscGVycyYgaml0
LCBWTSogdm0sIFBfSklUT3BlcmF0aW9uX0Ugc2xvd1BhdGhGdW5jdGlvbikKIHsKLSAgICBqaXQu
cHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86Om5vbkFyZ0dQUjIpOwotICAg
IGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86Om5vbkFyZ0dQUjIpOwotICAgIGpp
dC5lbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjpub25BcmdHUFIyKTsK
KyAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICBqaXQuc3RvcmVQdHIoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsICZ2bS0+dG9wQ2FsbEZyYW1lKTsKKyAgICBpZiAobWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgaml0LnNldHVwQXJndW1lbnRzRXhlY1N0
YXRlKCk7CiAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJpdHdpc2Vf
Y2FzdDx2b2lkKj4oc2xvd1BhdGhGdW5jdGlvbikpLCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAg
ICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBq
aXQuY2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpCisgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKICAgICAKICAgICAvLyBUaGlzIHNsb3cgY2FsbCB3aWxsIHJldHVybiB0
aGUgYWRkcmVzcyBvZiBvbmUgb2YgdGhlIGZvbGxvd2luZzoKICAgICAvLyAxKSBFeGNlcHRpb24g
dGhyb3dpbmcgdGh1bmsuCiAgICAgLy8gMikgSG9zdCBjYWxsIHJldHVybiB2YWx1ZSByZXR1cm5l
ciB0aGluZ3kuCiAgICAgLy8gMykgVGhlIGZ1bmN0aW9uIHRvIGNhbGwuCi0gICAgaml0LmVtaXRH
ZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9u
UmV0dXJuR1BSKTsKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKDApKTsKLSAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24o
aml0LCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwotICAgIGppdC5yZXN0b3Jl
UmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5H
UFIpOwogICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKKyAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICBqaXQuanVtcChHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUik7CiB9CiAKIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
bGlua0ZvclRodW5rR2VuZXJhdG9yKAotICAgIFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2lu
ZCBraW5kKQorICAgIFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3Rl
clByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIC8vIFRoZSByZXR1cm4gYWRkcmVz
cyBpcyBvbiB0aGUgc3RhY2sgb3IgaW4gdGhlIGxpbmsgcmVnaXN0ZXIuIFdlIHdpbGwgaGVuY2UK
ICAgICAvLyBzYXZlIHRoZSByZXR1cm4gYWRkcmVzcyB0byB0aGUgY2FsbCBmcmFtZSB3aGlsZSB3
ZSBtYWtlIGEgQysrIGZ1bmN0aW9uIGNhbGwKQEAgLTExNCwzOCArMTExLDU5IEBAIHN0YXRpYyBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0ZvclRodW4KICAgICAKICAgICBDQ2FsbEhlbHBlcnMg
aml0KHZtKTsKICAgICAKLSAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBraW5kID09IENvZGVGb3JD
YWxsID8gb3BlcmF0aW9uTGlua0NhbGwgOiBvcGVyYXRpb25MaW5rQ29uc3RydWN0KTsKKyAgICBz
bG93UGF0aEZvcihqaXQsIHZtLCBvcGVyYXRpb25MaW5rRm9yKGtpbmQsIHJlZ2lzdGVycykpOwog
ICAgIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktf
SUQpOwogICAgIHJldHVybiBGSU5BTElaRV9DT0RFKAogICAgICAgICBwYXRjaEJ1ZmZlciwKLSAg
ICAgICAgKCJMaW5rICVzIHNsb3cgcGF0aCB0aHVuayIsIGtpbmQgPT0gQ29kZUZvckNhbGwgPyAi
Y2FsbCIgOiAiY29uc3RydWN0IikpOworICAgICAgICAoIkxpbmsgJXMlcyBzbG93IHBhdGggdGh1
bmsiLCBraW5kID09IENvZGVGb3JDYWxsID8gImNhbGwiIDogImNvbnN0cnVjdCIsIHJlZ2lzdGVy
cyA9PSBNdXN0UHJlc2VydmVSZWdpc3RlcnMgPyAiIHRoYXQgcHJlc2VydmVzIHJlZ2lzdGVycyIg
OiAiIikpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaHVua0dlbmVyYXRv
cihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZv
ckNhbGwpOworICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxs
LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJu
IGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgcmV0dXJu
IGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCwgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9CiAKLS8vIEZvciBjbG9zdXJlIG9wdGltaXphdGlvbnMs
IHdlIG9ubHkgaW5jbHVkZSBjYWxscywgc2luY2UgaWYgeW91J3JlIHVzaW5nIGNsb3N1cmVzIGZv
cgotLy8gb2JqZWN0IGNvbnN0cnVjdGlvbiB0aGVuIHlvdSdyZSBnb2luZyB0byBsb3NlIGJpZyB0
aW1lIGFueXdheS4KLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2xvc3VyZUNhbGxUaHVua0dl
bmVyYXRvcihWTSogdm0pCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaGF0UHJlc2Vy
dmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0ZvclRodW5r
R2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KKwor
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5r
R2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9yKHZt
LCBDb2RlRm9yQ29uc3RydWN0LCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitzdGF0aWMg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbEZvclRodW5rR2VuZXJhdG9yKAor
ICAgIFZNKiB2bSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBD
Q2FsbEhlbHBlcnMgaml0KHZtKTsKICAgICAKLSAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBvcGVy
YXRpb25MaW5rQ2xvc3VyZUNhbGwpOworICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIG9wZXJhdGlv
bkxpbmtDbG9zdXJlQ2FsbEZvcihyZWdpc3RlcnMpKTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBh
dGNoQnVmZmVyKCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKLSAgICByZXR1cm4gRklOQUxJ
WkVfQ09ERShwYXRjaEJ1ZmZlciwgKCJMaW5rIGNsb3N1cmUgY2FsbCBzbG93IHBhdGggdGh1bmsi
KSk7CisgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiTGluayBjbG9zdXJl
IGNhbGwgJXMgc2xvdyBwYXRoIHRodW5rIiwgcmVnaXN0ZXJzID09IE11c3RQcmVzZXJ2ZVJlZ2lz
dGVycyA/ICIgdGhhdCBwcmVzZXJ2ZXMgcmVnaXN0ZXJzIiA6ICIiKSk7Cit9CisKKy8vIEZvciBj
bG9zdXJlIG9wdGltaXphdGlvbnMsIHdlIG9ubHkgaW5jbHVkZSBjYWxscywgc2luY2UgaWYgeW91
J3JlIHVzaW5nIGNsb3N1cmVzIGZvcgorLy8gb2JqZWN0IGNvbnN0cnVjdGlvbiB0aGVuIHlvdSdy
ZSBnb2luZyB0byBsb3NlIGJpZyB0aW1lIGFueXdheS4KK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBs
aW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIGxpbmtD
bG9zdXJlQ2FsbEZvclRodW5rR2VuZXJhdG9yKHZtLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJl
cXVpcmVkKTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbFRoYXRQ
cmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBsaW5rQ2xv
c3VyZUNhbGxGb3JUaHVua0dlbmVyYXRvcih2bSwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKIH0K
IAogc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Io
Ci0gICAgVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgVk0qIHZtLCBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdp
c3RlcnMpCiB7CiAgICAgLy8gVGhlIGNhbGxlZSBpcyBpbiByZWdUMCAoZm9yIEpTVkFMVUUzMl82
NCwgdGhlIHRhZyBpcyBpbiByZWdUMSkuCiAgICAgLy8gVGhlIHJldHVybiBhZGRyZXNzIGlzIG9u
IHRoZSBzdGFjaywgb3IgaW4gdGhlIGxpbmsgcmVnaXN0ZXIuIFdlIHdpbGwgaGVuY2UKQEAgLTE2
MCwzMyArMTc4LDM0IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbEZvclQK
ICAgICAvLyB0aGUgREZHIGtub3dzIHRoYXQgdGhlIHZhbHVlIGlzIGRlZmluaXRlbHkgYSBjZWxs
LCBvciBkZWZpbml0ZWx5IGEgZnVuY3Rpb24uCiAgICAgCiAjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChUYWdNYXNrKSwgR1BSSW5mbzo6
cmVnVDIpOworICAgIAogICAgIHNsb3dDYXNlLmFwcGVuZCgKICAgICAgICAgaml0LmJyYW5jaFRl
c3Q2NCgKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm9uWmVybywgR1BSSW5mbzo6cmVnVDAs
IEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpO
b25aZXJvLCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDIpKTsKICNlbHNlCiAgICAgc2xv
d0Nhc2UuYXBwZW5kKAogICAgICAgICBqaXQuYnJhbmNoMzIoCiAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6Ok5vdEVxdWFsLCBHUFJJbmZvOjpyZWdUMSwKICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAjZW5kaWYKLSAgICBqaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTQ2VsbDo6c3RydWN0
dXJlT2Zmc2V0KCkpLCBHUFJJbmZvOjpub25BcmdHUFIyKTsKKyAgICBqaXQubG9hZFB0cihDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0
KCkpLCBHUFJJbmZvOjpyZWdUMik7CiAgICAgc2xvd0Nhc2UuYXBwZW5kKAogICAgICAgICBqaXQu
YnJhbmNoUHRyKAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwKLSAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpub25BcmdHUFIyLCBTdHJ1Y3R1cmU6
OmNsYXNzSW5mb09mZnNldCgpKSwKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhH
UFJJbmZvOjpyZWdUMiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSksCiAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoSlNGdW5jdGlvbjo6aW5mbygpKSkpOwogICAg
IAogICAgIC8vIE5vdyB3ZSBrbm93IHdlIGhhdmUgYSBKU0Z1bmN0aW9uLgogICAgIAogICAgIGpp
dC5sb2FkUHRyKAogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAs
IEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwKLSAgICAgICAgR1BSSW5mbzo6bm9u
QXJnR1BSMik7Ci0gICAgc2xvd0Nhc2UuYXBwZW5kKAotICAgICAgICBqaXQuYnJhbmNoMzIoCi0g
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okxlc3NUaGFuLAotICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKAotICAgICAgICAgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjIsIEV4ZWN1
dGFibGVCYXNlOjpvZmZzZXRPZk51bVBhcmFtZXRlcnNGb3Ioa2luZCkpLAotICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCkpKTsKKyAgICAgICAgR1BSSW5mbzo6cmVnVDIp
OworICAgIGppdC5sb2FkUHRyKAorICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCisgICAg
ICAgICAgICBHUFJJbmZvOjpyZWdUMiwgRXhlY3V0YWJsZUJhc2U6Om9mZnNldE9mSklUQ29kZVdp
dGhBcml0eUNoZWNrRm9yKGtpbmQsIHJlZ2lzdGVycykpLAorICAgICAgICBHUFJJbmZvOjpyZWdU
Mik7CisgICAgc2xvd0Nhc2UuYXBwZW5kKGppdC5icmFuY2hUZXN0UHRyKENDYWxsSGVscGVyczo6
WmVybywgR1BSSW5mbzo6cmVnVDIpKTsKICAgICAKICAgICAvLyBOb3cgd2Uga25vdyB0aGF0IHdl
IGhhdmUgYSBDb2RlQmxvY2ssIGFuZCB3ZSdyZSBjb21taXR0ZWQgdG8gbWFraW5nIGEgZmFzdAog
ICAgIC8vIGNhbGwuCkBAIC0xOTUsNjIgKzIxNCw2MCBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIHZpcnR1YWxGb3JUCiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZv
OjpyZWdUMCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZTY29wZUNoYWluKCkpLAogICAgICAgICBHUFJJ
bmZvOjpyZWdUMSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBqaXQuc3RvcmU2NCgKLSAgICAg
ICAgR1BSSW5mbzo6cmVnVDEsCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygKLSAgICAg
ICAgICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pKTsK
KyAgICBqaXQuZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoR1BSSW5mbzo6
cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogI2Vsc2UKLSAgICBqaXQuc3RvcmVQdHIoCi0g
ICAgICAgIEdQUkluZm86OnJlZ1QxLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCi0g
ICAgICAgICAgICBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgIHN0YXRp
Y19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKiBKU1N0YWNrOjpTY29wZUNoYWlu
ICsKLSAgICAgICAgICAgIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBh
c0JpdHMucGF5bG9hZCkpKTsKLSAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgIENDYWxsSGVscGVyczo6
QWRkcmVzcygKLSAgICAgICAgICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpTU3RhY2s6
OlNjb3BlQ2hhaW4gKwotICAgICAgICAgICAgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURl
c2NyaXB0b3IsIGFzQml0cy50YWcpKSk7CisgICAgaml0LmVtaXRQdXRQYXlsb2FkVG9DYWxsRnJh
bWVIZWFkZXJCZWZvcmVQcm9sb2d1ZShHUFJJbmZvOjpyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFp
bik7CisgICAgaml0LmVtaXRQdXRUYWdUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAorICAgICAgICBKU1N0
YWNrOjpTY29wZUNoYWluKTsKICNlbmRpZgogICAgIAotICAgIGppdC5sb2FkUHRyKAotICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6bm9uQXJnR1BSMiwgRXhlY3V0YWJsZUJh
c2U6Om9mZnNldE9mSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQpKSwKLSAgICAgICAgR1BS
SW5mbzo6cmVnVDApOwotICAgIAogICAgIC8vIE1ha2UgYSB0YWlsIGNhbGwuIFRoaXMgd2lsbCBy
ZXR1cm4gYmFjayB0byBKSVQgY29kZS4KLSAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBH
UFJJbmZvOjpyZWdUMCk7Ci0gICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDApOworICAgIGVtaXRQ
b2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQuanVtcChHUFJJ
bmZvOjpyZWdUMik7CiAKICAgICBzbG93Q2FzZS5saW5rKCZqaXQpOwogICAgIAogICAgIC8vIEhl
cmUgd2UgZG9uJ3Qga25vdyBhbnl0aGluZywgc28gcmV2ZXJ0IHRvIHRoZSBmdWxsIHNsb3cgcGF0
aC4KICAgICAKLSAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBraW5kID09IENvZGVGb3JDYWxsID8g
b3BlcmF0aW9uVmlydHVhbENhbGwgOiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0KTsKKyAgICBz
bG93UGF0aEZvcihqaXQsIHZtLCBvcGVyYXRpb25WaXJ0dWFsRm9yKGtpbmQsIHJlZ2lzdGVycykp
OwogICAgIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhV
TktfSUQpOwogICAgIHJldHVybiBGSU5BTElaRV9DT0RFKAogICAgICAgICBwYXRjaEJ1ZmZlciwK
LSAgICAgICAgKCJWaXJ0dWFsICVzIHNsb3cgcGF0aCB0aHVuayIsIGtpbmQgPT0gQ29kZUZvckNh
bGwgPyAiY2FsbCIgOiAiY29uc3RydWN0IikpOworICAgICAgICAoIlZpcnR1YWwgJXMlcyBzbG93
IHBhdGggdGh1bmsiLCBraW5kID09IENvZGVGb3JDYWxsID8gImNhbGwiIDogImNvbnN0cnVjdCIs
IHJlZ2lzdGVycyA9PSBNdXN0UHJlc2VydmVSZWdpc3RlcnMgPyAiIHRoYXQgcHJlc2VydmVzIHJl
Z2lzdGVycyIgOiAiIikpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENhbGxU
aHVua0dlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIHZpcnR1YWxGb3JUaHVua0dlbmVy
YXRvcih2bSwgQ29kZUZvckNhbGwpOworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0
b3Iodm0sIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0K
IAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcihW
TSogdm0pCiB7Ci0gICAgcmV0dXJuIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZv
ckNvbnN0cnVjdCk7CisgICAgcmV0dXJuIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29k
ZUZvckNvbnN0cnVjdCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9CiAKLXN0
YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxD
YWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJu
IHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwsIE11c3RQcmVzZXJ2ZVJl
Z2lzdGVycyk7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ29uc3RydWN0VGhh
dFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIHZpcnR1
YWxGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCwgTXVzdFByZXNlcnZlUmVn
aXN0ZXJzKTsKK30KKworZW51bSBUaHVua0VudHJ5VHlwZSB7IEVudGVyVmlhQ2FsbCwgRW50ZXJW
aWFKdW1wIH07CisKK3N0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJh
dG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBUaHVua0VudHJ5VHlwZSBl
bnRyeVR5cGUgPSBFbnRlclZpYUNhbGwpCiB7CiAgICAgaW50IGV4ZWN1dGFibGVPZmZzZXRUb0Z1
bmN0aW9uID0gTmF0aXZlRXhlY3V0YWJsZTo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5k
KTsKICAgICAKICAgICBKU0ludGVyZmFjZUpJVCBqaXQodm0pOwotICAgIAorCisgICAgaWYgKGVu
dHJ5VHlwZSA9PSBFbnRlclZpYUNhbGwpCisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1
ZSgpOworCiAgICAgaml0LmVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcigwLCBKU1N0
YWNrOjpDb2RlQmxvY2spOwogICAgIGppdC5zdG9yZVB0cihKU0ludGVyZmFjZUpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIsICZ2bS0+dG9wQ2FsbEZyYW1lKTsKIApAQCAtMjYxLDIyICsyNzgsMTggQEAg
c3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogICAgIGppdC5lbWl0R2V0
RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpTY29wZUNoYWluLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CiAgICAgaml0LmVtaXRQdXRDZWxsVG9D
YWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWlu
KTsKIAotICAgIGppdC5wZWVrKEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmVtaXRQ
dXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0KICAg
ICAvLyBDYWxsaW5nIGNvbnZlbnRpb246ICAgICAgZihlY3gsIGVkeCwgLi4uKTsKICAgICAvLyBI
b3N0IGZ1bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsKICAgICBqaXQubW92ZShKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWN4KTsKIAotICAg
IGppdC5zdWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZih2b2lk
KikpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFj
ayBhZnRlciBjYWxsLgorICAgIGppdC5zdWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0z
Mig4KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgLy8gQWxpZ24gc3Rh
Y2sgYWZ0ZXIgcHJvbG9ndWUuCiAKICAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgogICAgIGppdC5l
bWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIEpTSW50ZXJmYWNl
SklUOjpyZWdUMSk7CiAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpT
SW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qw
LCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUg
Y2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBq
aXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CiAKLSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNl
SklUOjpUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2Yodm9pZCopKSwgSlNJbnRlcmZhY2VKSVQ6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVz
dGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKICNl
bGlmIENQVShYODZfNjQpCiAgICAgLy8gTG9hZCBjYWxsZXIgZnJhbWUncyBzY29wZSBjaGFpbiBp
bnRvIHRoaXMgY2FsbGZyYW1lIHNvIHRoYXQgd2hhdGV2ZXIgd2UgY2FsbCBjYW4KQEAgLTI4NCwy
MyArMjk3LDE1IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKICAg
ICBqaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU0ludGVyZmFj
ZUpJVDo6cmVnVDApOwogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0
YWNrOjpTY29wZUNoYWluLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMCk7CiAgICAgaml0LmVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKLQotICAgIGppdC5wZWVrKEpTSW50ZXJm
YWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVy
KEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0KICNpZiAhT1MoV0lORE9XUykKICAgICAvLyBDYWxs
aW5nIGNvbnZlbnRpb246ICAgICAgZihlZGksIGVzaSwgZWR4LCBlY3gsIC4uLik7CiAgICAgLy8g
SG9zdCBmdW5jdGlvbiBzaWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CiAgICAgaml0Lm1vdmUoSlNJ
bnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVkaSk7CiAKLSAg
ICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2YoaW50
NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBz
dGFjayBhZnRlciBjYWxsLgotCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRy
KEpTU3RhY2s6OkNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplc2kpOwogICAgIGppdC5sb2FkUHRyKEpT
SW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNpLCBKU0Z1bmN0aW9uOjpvZmZz
ZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkpOwotICAgIGppdC5tb3ZlKEpTSW50
ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8g
RWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZy
b20gc3RhY2suCiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0
ZXJzOjpyOSwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIAotICAgIGppdC5hZGRQdHIo
SlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZihpbnQ2NF90KSksIEpTSW50
ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAjZWxzZQogICAgIC8vIENhbGxpbmcg
Y29udmVudGlvbjogICAgICBmKGVjeCwgZWR4LCByOCwgcjksIC4uLik7CiAgICAgLy8gSG9zdCBm
dW5jdGlvbiBzaWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CkBAIC0zMTEsNyArMzE2LDYgQEAgc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogCiAgICAgaml0LmVtaXRHZXRG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplZHgp
OwogICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6
ZWR4LCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkp
OwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNh
bGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3Rl
ciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VK
SVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjpyOSwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24p
KTsKIAogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig0ICogc2l6
ZW9mKGludDY0X3QpICsgMTYgLSBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMzMwLDI4ICszMzQsMTggQEAgc3RhdGljIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhl
YWRlclB0cihKU1N0YWNrOjpTY29wZUNoYWluLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEFSTTY0
UmVnaXN0ZXJzOjp4Myk7CiAgICAgaml0LmVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIoSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKIAotICAgIGppdC5wcmVz
ZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsgLy8gQ2Fs
bGVlIHByZXNlcnZlZAotICAgIGppdC5lbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihB
Uk02NFJlZ2lzdGVyczo6bHIpOwotCiAgICAgLy8gSG9zdCBmdW5jdGlvbiBzaWduYXR1cmU6IGYo
RXhlY1N0YXRlKik7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lz
dGVyLCBBUk02NFJlZ2lzdGVyczo6eDApOwogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1l
SGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwgQVJNNjRSZWdpc3RlcnM6OngxKTsKICAgICBqaXQu
bG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVyczo6eDEsIEpTRnVu
Y3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgQVJNNjRSZWdpc3RlcnM6OngyKTsKLSAgICBq
aXQubW92ZShBUk02NFJlZ2lzdGVyczo6eDMsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdp
c3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQg
bG9hZGluZyBmcm9tIHN0YWNrLgogICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNz
KEFSTTY0UmVnaXN0ZXJzOjp4MiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKLQotICAg
IGppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihKU0ludGVyZmFjZUpJVDo6cmVn
VDMpOwotCiAjZWxpZiBDUFUoQVJNKSB8fCBDUFUoU0g0KSB8fCBDUFUoTUlQUykKICAgICAvLyBM
b2FkIGNhbGxlciBmcmFtZSdzIHNjb3BlIGNoYWluIGludG8gdGhpcyBjYWxsZnJhbWUgc28gdGhh
dCB3aGF0ZXZlciB3ZSBjYWxsIGNhbiBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgogICAgIGppdC5l
bWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTSW50ZXJmYWNlSklUOjpy
ZWdUMik7CiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNj
b3BlQ2hhaW4sIEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsK
ICAgICBqaXQuZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVn
VDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogCi0gICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVz
c0FmdGVyQ2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMpOyAvLyBDYWxsZWUgcHJlc2VydmVkCi0g
ICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklUOjpy
ZWdUMyk7Ci0KICNpZiBDUFUoTUlQUykKICAgICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBmb3Ig
KHVudXNlZCkgMTYgYnl0ZXMgKDgtYnl0ZSBhbGlnbmVkKSBmb3IgNCBhcmd1bWVudHMuCiAgICAg
aml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2KSwgSlNJbnRlcmZhY2VK
SVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTM2Miw3ICszNTYsNiBAQCBzdGF0aWMgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VK
SVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKIAog
ICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIEpT
SW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjEpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklU
OjpyZWdUMiwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSBy
ZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2su
CiAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6
OmFyZ3VtZW50R1BSMSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpT
SW50ZXJmYWNlSklUOjpyZWdUMiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIApAQCAt
MzcwLDggKzM2Myw2IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UK
ICAgICAvLyBSZXN0b3JlIHN0YWNrIHNwYWNlCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJ
VDo6VHJ1c3RlZEltbTMyKDE2KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKICNlbmRpZgotCi0gICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEpT
SW50ZXJmYWNlSklUOjpyZWdUMyk7CiAjZWxzZQogI2Vycm9yICJKSVQgbm90IHN1cHBvcnRlZCBv
biB0aGlzIHBsYXRmb3JtLiIKICAgICBVTlVTRURfUEFSQU0oZXhlY3V0YWJsZU9mZnNldFRvRnVu
Y3Rpb24pOwpAQCAtMzg5LDI1ICszODAsMjEgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBuYXRpdmVGb3JHZQogICAgICAgICBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkVtcHR5VmFsdWVUYWcpKTsKICNlbmRpZgogCisgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgLy8gUmV0dXJuLgogICAgIGppdC5yZXQoKTsKIAogICAgIC8vIEhhbmRsZSBh
biBleGNlcHRpb24KICAgICBleGNlcHRpb25IYW5kbGVyLmxpbmsoJmppdCk7CiAKLSAgICAvLyBH
cmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0
ZXJDYWxsKEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgCi0gICAgaml0Lm1vdmUoSlNJbnRl
cmZhY2VKSVQ6OlRydXN0ZWRJbW1QdHIoJnZtLT5leGNlcHRpb25Mb2NhdGlvbiksIEpTSW50ZXJm
YWNlSklUOjpyZWdUMik7Ci0gICAgaml0LnN0b3JlUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwg
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKLQogICAgIGppdC5zdG9yZVB0cihKU0ludGVyZmFjZUpJ
VDo6Y2FsbEZyYW1lUmVnaXN0ZXIsICZ2bS0+dG9wQ2FsbEZyYW1lKTsKIAogI2lmIENQVShYODYp
ICYmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1
c3RlZEltbTMyKC0xMiksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0g
ICAgaml0LnB1c2goSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBqaXQu
bG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1l
UmVnaXN0ZXIpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOworICAgIGppdC5wdXNoKEpTSW50ZXJm
YWNlSklUOjpyZWdUMCk7CiAjZWxzZQotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxs
RnJhbWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCk7CisgICAgaml0Lmxv
YWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJl
Z2lzdGVyKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCk7CiAjZW5kaWYKICAgICBqaXQu
bW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbVB0cihGdW5jdGlvblB0cihvcGVyYXRpb25W
TUhhbmRsZUV4Y2VwdGlvbikudmFsdWUoKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAgICAg
aml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKQEAgLTQxOCw3ICs0MDUsNyBAQCBzdGF0
aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgaml0Lmp1bXBUb0V4Y2Vw
dGlvbkhhbmRsZXIoKTsKIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBH
TE9CQUxfVEhVTktfSUQpOwotICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAo
Im5hdGl2ZSAlcyB0cmFtcG9saW5lIiwgdG9DU3RyaW5nKGtpbmQpLmRhdGEoKSkpOworICAgIHJl
dHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIm5hdGl2ZSAlcyVzIHRyYW1wb2xpbmUi
LCBlbnRyeVR5cGUgPT0gRW50ZXJWaWFKdW1wID8gIlRhaWwgIiA6ICIiLCB0b0NTdHJpbmcoa2lu
ZCkuZGF0YSgpKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDYWxsR2VuZXJh
dG9yKFZNKiB2bSkKQEAgLTQyNiw2ICs0MTMsMTEgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5h
dGl2ZUNhbGxHZW5lcmF0bwogICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVG
b3JDYWxsKTsKIH0KIAorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxsR2VuZXJh
dG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBDb2RlRm9y
Q2FsbCwgRW50ZXJWaWFKdW1wKTsKK30KKwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNv
bnN0cnVjdEdlbmVyYXRvcihWTSogdm0pCiB7CiAgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRv
cih2bSwgQ29kZUZvckNvbnN0cnVjdCk7CkBAIC00MzUsMTQgKzQyNywxNiBAQCBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSogdm0pCiB7CiAgICAgSlNJbnRlcmZhY2VKSVQgaml0
KHZtKTsKIAotICAgIC8vIFdlIGVudGVyIHdpdGggZml4dXAgY291bnQgaW4gcmVnVDAKKyAgICAv
LyBXZSBlbnRlciB3aXRoIGZpeHVwIGNvdW50LCBpbiBhbGlnbmVkIHN0YWNrIHVuaXRzLCBpbiBy
ZWdUMCBhbmQgdGhlIHJldHVybiB0aHVuayBpbgorICAgIC8vIHJlZ1Q1LiBXZSB1c2UgVk06OmN1
cnJlbnRSZXR1cm5UaHVua1BDIGluc3RlYWQgb2YgcmVnVDUgb24gWDg2LTMyLgogI2lmIFVTRShK
U1ZBTFVFNjQpCiAjICBpZiBDUFUoWDg2XzY0KQogICAgIGppdC5wb3AoSlNJbnRlcmZhY2VKSVQ6
OnJlZ1Q0KTsKICMgIGVuZGlmCisgICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklUOjpUcnVz
dGVkSW1tMzIobG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSksIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMCk7CiAgICAgaml0Lm5lZzY0KEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CiAgICAgaml0Lm1v
dmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDMpOwotICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VK
SVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogOCksIEpTSW50
ZXJmYWNlSklUOjpyZWdUMik7CisgICAgaml0LmxvYWQzMihKU0ludGVyZmFjZUpJVDo6QWRkcmVz
cyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291
bnQgKiBzaXplb2YoUmVnaXN0ZXIpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAgICBqaXQu
YWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihKU1N0YWNrOjpDYWxsRnJhbWVIZWFk
ZXJTaXplKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKIAogICAgIC8vIE1vdmUgY3VycmVudCBm
cmFtZSBkb3duIHJlZ1QwIG51bWJlciBvZiBzbG90cwpAQCAtNDUyLDE3ICs0NDYsMjcgQEAgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZtKQogICAgIGppdC5hZGRQdHIoSlNJ
bnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAg
ICBqaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGNvcHlMb29w
LCAmaml0KTsKIAotICAgIC8vIEZpbGwgaW4gcmVnVDAgbWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1
bmRlZmluZWQKKyAgICAvLyBGaWxsIGluIHJlZ1QwIC0gMSBtaXNzaW5nIGFyZyBzbG90cyB3aXRo
IHVuZGVmaW5lZAogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QyKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTY0
KFZhbHVlVW5kZWZpbmVkKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQuYWRkMzIo
SlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsK
ICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgZmlsbFVuZGVmaW5lZExvb3Aoaml0LmxhYmVsKCkp
OwogICAgIGppdC5zdG9yZTY0KEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6
OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwg
SlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNl
SklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAgICAgaml0LmJy
YW5jaEFkZDMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6VHJ1c3Rl
ZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpLmxpbmtUbyhmaWxsVW5kZWZpbmVkTG9v
cCwgJmppdCk7Ci0KLSAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciB0byBhY2NvdW50
IGZvciBtaXNzaW5nIGFyZ3MKLSAgICBqaXQubHNoaWZ0NjQoSlNJbnRlcmZhY2VKSVQ6OlRydXN0
ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKLSAgICBqaXQuYWRkUHRyKEpTSW50
ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAg
ICAKKyAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciBhbmQgc3RhY2sgcG9pbnRlciB0
byBhY2NvdW50IGZvciBtaXNzaW5nIGFyZ3MKKyAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6
cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CisgICAgaml0LmxzaGlmdDY0KEpTSW50ZXJm
YWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CisgICAgaml0
LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVS
ZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJm
YWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAgICAvLyBTYXZlIHRoZSBvcmlnaW5h
bCByZXR1cm4gUEMuCisgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJ
bnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0
KCkpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QxLCBN
YWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOworICAgIAorICAgIC8v
IEluc3RhbGwgdGhlIG5ldyByZXR1cm4gUEMuCisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJl
Z1Q1LCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVn
aXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOwogCiAjICBpZiBDUFUoWDg2XzY0
KQogICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CkBAIC00NzIsOSArNDc2LDEw
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKICMgIGlmIENQVShY
ODYpCiAgICAgaml0LnBvcChKU0ludGVyZmFjZUpJVDo6cmVnVDQpOwogIyAgZW5kaWYKKyAgICBq
aXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihsb2dTdGFja0FsaWdubWVu
dFJlZ2lzdGVycygpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubmVnMzIoSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7Ci0gICAgaml0LmxvYWQzMihKU0lu
dGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpT
U3RhY2s6OkFyZ3VtZW50Q291bnQgKiA4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBq
aXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJh
bWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHNpemVvZihSZWdpc3RlcikpLCBK
U0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1
c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDIpOwogCiAgICAgLy8gTW92ZSBjdXJyZW50IGZyYW1lIGRvd24gcmVnVDAgbnVtYmVyIG9m
IHNsb3RzCkBAIC00ODYsOCArNDkxLDkgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4
dXAoVk0qIHZtKQogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4
KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3Nl
bWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJm
YWNlSklUOjpyZWdUMikubGlua1RvKGNvcHlMb29wLCAmaml0KTsKIAotICAgIC8vIEZpbGwgaW4g
cmVnVDAgbWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKKyAgICAvLyBGaWxsIGluIHJl
Z1QwIC0gMSBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAogICAgIGppdC5tb3ZlKEpT
SW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBqaXQuYWRk
MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qy
KTsKICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgZmlsbFVuZGVmaW5lZExvb3Aoaml0LmxhYmVs
KCkpOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMCksIEpTSW50
ZXJmYWNlSklUOjpyZWdUMSk7CiAgICAgaml0LnN0b3JlMzIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qx
LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwpAQCAtNDk3LDEw
ICs1MDMsMjUgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZtKQogICAg
IGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QzKTsKICAgICBqaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8s
IEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMiku
bGlua1RvKGZpbGxVbmRlZmluZWRMb29wLCAmaml0KTsKIAotICAgIC8vIEFkanVzdCBjYWxsIGZy
YW1lIHJlZ2lzdGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncwotICAgIGppdC5sc2hpZnQz
MihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDAp
OwotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6
Y2FsbEZyYW1lUmVnaXN0ZXIpOwotCisgICAgLy8gQWRqdXN0IGNhbGwgZnJhbWUgcmVnaXN0ZXIg
YW5kIHN0YWNrIHBvaW50ZXIgdG8gYWNjb3VudCBmb3IgbWlzc2luZyBhcmdzCisgICAgaml0Lm1v
dmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOworICAgIGpp
dC5sc2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDEpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVy
ZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisgICAg
Ly8gU2F2ZSB0aGUgb3JpZ2luYWwgcmV0dXJuIFBDLgorICAgIGppdC5sb2FkUHRyKEpTSW50ZXJm
YWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZy
YW1lOjpyZXR1cm5QQ09mZnNldCgpKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5zdG9yZVB0
cihHUFJJbmZvOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJ
VDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWln
aHQpKTsKKyAgICAKKyAgICAvLyBJbnN0YWxsIHRoZSBuZXcgcmV0dXJuIFBDLgorICAgIC8vIEZJ
WE1FOiBJIGRvbid0IHRoaW5rIGN1cnJlbnRSZXR1cm5UaHVua1BDIGlzIHVzZWQgYW5kIHNob3Vs
ZCBiZSBkZWxldGVkLgorIyAgaWYgMAorICAgIGppdC5sb2FkUHRyKCZ2bS0+Y3VycmVudFJldHVy
blRodW5rUEMsIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVn
VDIsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdp
c3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CisjICAgZWxzZQorICAgIGppdC5z
dG9yZVB0cihHUFJJbmZvOjpyZWdUNSwgSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZh
Y2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsK
KyMgICBlbmRpZgorICAgIAogIyAgaWYgQ1BVKFg4NikKICAgICBqaXQucHVzaChKU0ludGVyZmFj
ZUpJVDo6cmVnVDQpOwogIyAgZW5kaWYKQEAgLTU1NCw3ICs1NzUsNyBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuCiAgICAgU3BlY2lhbGl6ZWRUaHVua0pJVCBqaXQo
dm0sIDEpOwogICAgIHN0cmluZ0NoYXJMb2FkKGppdCwgdm0pOwogICAgIGppdC5yZXR1cm5JbnQz
MihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2
bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiY2hhckNvZGVBdCIpOworICAgIHJldHVy
biBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJjaGFy
Q29kZUF0Iik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjaGFyQXRUaHVua0dlbmVyYXRv
cihWTSogdm0pCkBAIC01NjMsNyArNTg0LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJB
dFRodW5rR2VuZXJhdAogICAgIHN0cmluZ0NoYXJMb2FkKGppdCwgdm0pOwogICAgIGNoYXJUb1N0
cmluZyhqaXQsIHZtLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QxKTsKICAgICBqaXQucmV0dXJu
SlNDZWxsKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFs
aXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJjaGFyQXQiKTsKKyAgICByZXR1
cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiY2hh
ckF0Iik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBmcm9tQ2hhckNvZGVUaHVua0dlbmVy
YXRvcihWTSogdm0pCkBAIC01NzMsNyArNTk0LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZy
b21DaGFyQ29kZVRodW5rRwogICAgIGppdC5sb2FkSW50MzJBcmd1bWVudCgwLCBTcGVjaWFsaXpl
ZFRodW5rSklUOjpyZWdUMCk7CiAgICAgY2hhclRvU3RyaW5nKGppdCwgdm0sIFNwZWNpYWxpemVk
VGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwgU3BlY2lhbGl6ZWRU
aHVua0pJVDo6cmVnVDEpOwogICAgIGppdC5yZXR1cm5KU0NlbGwoU3BlY2lhbGl6ZWRUaHVua0pJ
VDo6cmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRp
dmVDYWxsKHZtKSwgImZyb21DaGFyQ29kZSIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0t
PmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJmcm9tQ2hhckNvZGUiKTsKIH0KIAog
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC01ODUs
NyArNjA2LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcgogICAg
IGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwg
U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGppdC5zcXJ0RG91YmxlKFNwZWNpYWxp
emVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwogICAg
IGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0
dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAic3FydCIp
OworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2Fs
bCh2bSksICJzcXJ0Iik7CiB9CiAKIApAQCAtNjExLDcgKzYzMiw5IEBAIGRvdWJsZSBqc1JvdW5k
KGRvdWJsZSBkKQogICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMjVGh1
bmspICJcbiIgXAogICAgICAgICBISURFX1NZTUJPTChmdW5jdGlvbiMjVGh1bmspICJcbiIgXAog
ICAgICAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uIyNUaHVuaykgIjoiICJcbiIgXAorICAgICAg
ICAicHVzaHEgJXJheFxuIiBcCiAgICAgICAgICJjYWxsICIgR0xPQkFMX1JFRkVSRU5DRShmdW5j
dGlvbikgIlxuIiBcCisgICAgICAgICJwb3BxICVyY3hcbiIgXAogICAgICAgICAicmV0XG4iIFwK
ICAgICApO1wKICAgICBleHRlcm4gIkMiIHsgXApAQCAtNjI2LDEyICs2NDksMTIgQEAgZG91Ymxl
IGpzUm91bmQoZG91YmxlIGQpCiAgICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0
aW9uIyNUaHVuaykgIlxuIiBcCiAgICAgICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uIyNUaHVuaykg
IlxuIiBcCiAgICAgICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAiOiIgIlxuIiBc
Ci0gICAgICAgICJzdWJsICQ4LCAlZXNwXG4iIFwKKyAgICAgICAgInN1YmwgJDIwLCAlZXNwXG4i
IFwKICAgICAgICAgIm1vdnNkICV4bW0wLCAoJWVzcCkgXG4iIFwKICAgICAgICAgImNhbGwgIiBH
TE9CQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiXG4iIFwKICAgICAgICAgImZzdHBsICglZXNwKSBc
biIgXAogICAgICAgICAibW92c2QgKCVlc3ApLCAleG1tMCBcbiIgXAotICAgICAgICAiYWRkbCAk
OCwgJWVzcFxuIiBcCisgICAgICAgICJhZGRsICQyMCwgJWVzcFxuIiBcCiAgICAgICAgICJyZXRc
biIgXAogICAgICk7XAogICAgIGV4dGVybiAiQyIgeyBcCkBAIC03MzMsNyArNzU2LDcgQEAgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIGZsb29yVGh1bmtHZW5lcmF0bwogICAgIGRvdWJsZVJlc3VsdC5s
aW5rKCZqaXQpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBS
ZWdUMCk7CiAjZW5kaWYgLy8gQ1BVKEFSTTY0KQotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0t
PmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImZsb29yIik7CisgICAgcmV0dXJuIGppdC5m
aW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImZsb29yIik7CiB9
CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjZWlsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAt
NzU2LDcgKzc3OSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjZWlsVGh1bmtHZW5lcmF0b3IK
ICAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGRv
dWJsZVJlc3VsdC5saW5rKCZqaXQpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRU
aHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMt
PmN0aU5hdGl2ZUNhbGwodm0pLCAiY2VpbCIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0t
PmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJjZWlsIik7CiB9CiAKIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiByb3VuZFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTc5MCw3ICs4MTMs
NyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcm91bmRUaHVua0dlbmVyYXRvCiAgICAgaml0LnJl
dHVybkludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBkb3VibGVSZXN1bHQu
bGluaygmaml0KTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZw
UmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVD
YWxsKHZtKSwgInJvdW5kIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMt
PmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgInJvdW5kIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBleHBUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC04MDMsNyArODI2LDcgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGV4cFRodW5rR2VuZXJhdG9yKAogICAgIGppdC5sb2FkRG91YmxlQXJn
dW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJ
VDo6cmVnVDApOwogICAgIGppdC5jYWxsRG91YmxlVG9Eb3VibGVQcmVzZXJ2aW5nUmV0dXJuKFVu
YXJ5RG91YmxlT3BXcmFwcGVyKGV4cCkpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6
ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1
YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiZXhwIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2
bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImV4cCIpOwogfQogCiBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtODE2LDcgKzgzOSw3
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsb2dUaHVua0dlbmVyYXRvcigKICAgICBqaXQubG9h
ZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxp
emVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuY2FsbERvdWJsZVRvRG91YmxlUHJlc2Vydmlu
Z1JldHVybihVbmFyeURvdWJsZU9wV3JhcHBlcihsb2cpKTsKICAgICBqaXQucmV0dXJuRG91Ymxl
KFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUo
dm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImxvZyIpOworICAgIHJldHVybiBqaXQu
ZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJsb2ciKTsKIH0K
IAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTgz
Niw3ICs4NTksNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYWJzVGh1bmtHZW5lcmF0b3IoCiAg
ICAgaml0LmxvYWREb3VibGVBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1Qw
LCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgaml0LmFic0RvdWJsZShTcGVjaWFs
aXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsKICAg
ICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwotICAgIHJl
dHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImFicyIp
OworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2Fs
bCh2bSksICJhYnMiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHBvd1RodW5rR2VuZXJh
dG9yKFZNKiB2bSkKQEAgLTg4OCw3ICs5MTEsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93
VGh1bmtHZW5lcmF0b3IoCiAgICAgfSBlbHNlCiAgICAgICAgIGppdC5hcHBlbmRGYWlsdXJlKG5v
bkludEV4cG9uZW50KTsKIAotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5j
dGlOYXRpdmVDYWxsKHZtKSwgInBvdyIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmpp
dFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJwb3ciKTsKIH0KIAogTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIGltdWxUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC05MjEsNyArOTQ0LDcgQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGltdWxUaHVua0dlbmVyYXRvcgogICAgIH0gZWxzZQogICAg
ICAgICBqaXQuYXBwZW5kRmFpbHVyZShub25JbnRBcmcxSnVtcCk7CiAKLSAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJpbXVsIik7CisgICAg
cmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwg
ImltdWwiKTsKIH0KIAogc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJhdG9y
TmV4dFRodW5rR2VuZXJhdG9yKFZNKiB2bSwgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQpCkBAIC05
NjEsNyArOTg0LDcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJhdAog
ICAgIGlmIChraW5kID09IEFycmF5SXRlcmF0ZUtleSkgewogICAgICAgICBqaXQuYWRkMzIoVHJ1
c3RlZEltbTMyKDEpLCBBZGRyZXNzKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1Q0LCBKU0FycmF5
SXRlcmF0b3I6Om9mZnNldE9mTmV4dEluZGV4KCkpKTsKICAgICAgICAgaml0LnJldHVybkludDMy
KFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QxKTsKLSAgICAgICAgcmV0dXJuIGppdC5maW5hbGl6
ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4dC1r
ZXkiKTsKKyAgICAgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2
ZVRhaWxDYWxsKHZtKSwgImFycmF5LWl0ZXJhdG9yLW5leHQta2V5Iik7CiAgICAgICAgIAogICAg
IH0KICAgICBBU1NFUlQoa2luZCA9PSBBcnJheUl0ZXJhdGVWYWx1ZSk7CkBAIC0xMDEyLDcgKzEw
MzUsNyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFycmF5SXRlcmF0CiAgICAgaml0
LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgQWRkcmVzcyhTcGVjaWFsaXplZFRodW5rSklUOjpyZWdU
NCwgSlNBcnJheUl0ZXJhdG9yOjpvZmZzZXRPZk5leHRJbmRleCgpKSk7CiAgICAgaml0LnJldHVy
bkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKICAgICAKLSAgICByZXR1cm4g
aml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJhcnJheS1pdGVy
YXRvci1uZXh0LXZhbHVlIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMt
PmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImFycmF5LWl0ZXJhdG9yLW5leHQtdmFsdWUiKTsKIH0K
IAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFycmF5SXRlcmF0b3JOZXh0S2V5VGh1bmtHZW5lcmF0
b3IoVk0qIHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRv
cnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJh
dG9ycy5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Ro
dW5rR2VuZXJhdG9ycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVm
IFRodW5rR2VuZXJhdG9yc19oCiAjZGVmaW5lIFRodW5rR2VuZXJhdG9yc19oCiAKKyNpbmNsdWRl
ICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Nb2RlLmgiCiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3IuaCIKIAogI2lmIEVOQUJMRShKSVQp
CkBAIC0zNSwxNCArMzcsODIgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHRocm93RXhjZXB0aW9u
RnJvbQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaHVua0dlbmVyYXRvcihWTSop
OwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcihWTSop
OworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dl
bmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDb25zdHJ1Y3RUaGF0UHJl
c2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKik7CisKK2lubGluZSBUaHVua0dlbmVyYXRvciBs
aW5rVGh1bmtHZW5lcmF0b3JGb3IoCisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBS
ZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAoa2luZCkg
eworICAgIGNhc2UgQ29kZUZvckNhbGw6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7Cisg
ICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAg
IHJldHVybiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2
ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiBsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdz
VGh1bmtHZW5lcmF0b3I7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2Rl
Rm9yQ29uc3RydWN0OgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNl
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gbGlu
a0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lz
dGVyczoKKyAgICAgICAgICAgIHJldHVybiBsaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NU
aHVua0dlbmVyYXRvcjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KIAogTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVy
YXRvcihWTSopOworCitpbmxpbmUgVGh1bmtHZW5lcmF0b3IgbGlua0Nsb3N1cmVDYWxsVGh1bmtH
ZW5lcmF0b3JGb3IoUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBz
d2l0Y2ggKHJlZ2lzdGVycykgeworICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1
aXJlZDoKKyAgICAgICAgcmV0dXJuIGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yOworICAg
IGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICByZXR1cm4gbGlua0Nsb3N1cmVD
YWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcjsKKyAgICB9CisgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KIAogTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiB2aXJ0dWFsQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVy
Q29kZVJlZiB2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qKTsK
K01hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NU
aHVua0dlbmVyYXRvcihWTSopOworCitpbmxpbmUgVGh1bmtHZW5lcmF0b3IgdmlydHVhbFRodW5r
R2VuZXJhdG9yRm9yKAorICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBj
YXNlIENvZGVGb3JDYWxsOgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBj
YXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4g
dmlydHVhbENhbGxUaHVua0dlbmVyYXRvcjsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdp
c3RlcnM6CisgICAgICAgICAgICByZXR1cm4gdmlydHVhbENhbGxUaGF0UHJlc2VydmVzUmVnc1Ro
dW5rR2VuZXJhdG9yOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29kZUZv
ckNvbnN0cnVjdDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBS
ZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIHZpcnR1
YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcjsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdp
c3RlcnM6CisgICAgICAgICAgICByZXR1cm4gdmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNS
ZWdzVGh1bmtHZW5lcmF0b3I7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CiAKIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDYWxsR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgbmF0aXZlQ29uc3RydWN0R2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgbmF0aXZlVGFpbENhbGxHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBhcml0eUZpeHVwKFZNKik7CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjaGFyQ29kZUF0VGh1
bmtHZW5lcmF0b3IoVk0qKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dENMb29wLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRDTG9vcC5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludENMb29wLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBuYW1l
c3BhY2UgTExJbnQgewogCiB2b2lkIENMb29wOjppbml0aWFsaXplKCkKIHsKLSAgICBleGVjdXRl
KDAsIGdldE9wY29kZShsbGludF91bnVzZWQpLCB0cnVlKTsKKyAgICBleGVjdXRlKGxsaW50X3Vu
dXNlZCwgMCwgMCwgMCwgdHJ1ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIExMSW50CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludENMb29wLmgJKHJldmlzaW9uIDE2MjkxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludENMb29wLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJK
U0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCisjaW5jbHVkZSAiUHJvdG9DYWxsRnJh
bWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgTExJbnQgewpAQCAtNDAsNyArNDEs
NyBAQCBjb25zdCBPcGNvZGVJRCBsbGludF91bnVzZWQgPSBsbGludF9lbmQ7CiBjbGFzcyBDTG9v
cCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZSgpOwotICAgIHN0YXRpYyBK
U1ZhbHVlIGV4ZWN1dGUoQ2FsbEZyYW1lKiwgT3Bjb2RlIGVudHJ5T3Bjb2RlLCBib29sIGlzSW5p
dGlhbGl6YXRpb25QYXNzID0gZmFsc2UpOworICAgIHN0YXRpYyBKU1ZhbHVlIGV4ZWN1dGUoT3Bj
b2RlSUQgZW50cnlPcGNvZGVJRCwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZNKiwgUHJvdG9D
YWxsRnJhbWUqLCBib29sIGlzSW5pdGlhbGl6YXRpb25QYXNzID0gZmFsc2UpOwogfTsKIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnREYXRhLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRl
ICJMTEludENMb29wLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwu
aCIKICNpbmNsdWRlICJPcGNvZGUuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU9mZnNldC5oIgogCkBA
IC04Nyw2ICs4OCw3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogICAg
IEFTU0VSVChKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplID09IENhbGxGcmFtZUhlYWRlclNs
b3RzKTsKIAogICAgIEFTU0VSVCghQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKTsKKyAg
ICBBU1NFUlQoSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUgPT0gKFB0clNpemUgKiAyKSAv
IFNsb3RTaXplKTsKICAgICBBU1NFUlQoQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpID09IENh
bGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSArIFB0clNpemUpOwogICAgIEFTU0VSVChKU1N0
YWNrOjpDb2RlQmxvY2sgKiBzaXplb2YoUmVnaXN0ZXIpID09IENhbGxGcmFtZTo6cmV0dXJuUENP
ZmZzZXQoKSArIFB0clNpemUpOwogICAgIEFTU0VSVChKU1N0YWNrOjpTY29wZUNoYWluICogc2l6
ZW9mKFJlZ2lzdGVyKSA9PSBKU1N0YWNrOjpDb2RlQmxvY2sgKiBzaXplb2YoUmVnaXN0ZXIpICsg
U2xvdFNpemUpOwpAQCAtMTIzLDYgKzEyNSwxMyBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRp
b25zKFZNJiB2bSkKICAgICBBU1NFUlQoVmFsdWVVbmRlZmluZWQgPT0gKFRhZ0JpdFR5cGVPdGhl
ciB8IFRhZ0JpdFVuZGVmaW5lZCkpOwogICAgIEFTU0VSVChWYWx1ZU51bGwgPT0gVGFnQml0VHlw
ZU90aGVyKTsKICNlbmRpZgorI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkgfHwgRU5BQkxF
KExMSU5UX0NfTE9PUCkKKyAgICBBU1NFUlQoIW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
KTsKKyNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpCisgICAgQVNTRVJUKG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsID09IDI0KTsKKyNlbGlmIENQVShYODYpIHx8IENQVShNSVBTKQorICAg
IEFTU0VSVChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9PSA0MCk7CisjZW5kaWYKICAg
ICBBU1NFUlQoU3RyaW5nVHlwZSA9PSA1KTsKICAgICBBU1NFUlQoT2JqZWN0VHlwZSA9PSAxNyk7
CiAgICAgQVNTRVJUKEZpbmFsT2JqZWN0VHlwZSA9PSAxOCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcAkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2lu
Y2x1ZGUgIkxMSW50VGh1bmtzLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgor
I2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCisjaW5jbHVkZSAiU3Rh
Y2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIExMSW50IHsKQEAgLTQ1LDE0ICs0NywxMiBAQCBzdGF0aWMgdm9pZCBzZXRGdW5jdGlvbkVu
dHJ5cG9pbnQoVk0mIHZtCiAgICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGlmIChr
aW5kID09IENvZGVGb3JDYWxsKSB7CiAgICAgICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUo
Ci0gICAgICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1
YihmdW5jdGlvbkZvckNhbGxFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0
ZXJUaHVuaykpLAotICAgICAgICAgICAgICAgIHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxs
QXJpdHlDaGVja1RodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgICAgICAgICAgICAgIGFkb3B0
UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsRW50cnlU
aHVua0dlbmVyYXRvciksIHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsQXJpdHlDaGVja1Ro
dW5rR2VuZXJhdG9yKS5jb2RlKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZv
ckNvbnN0cnVjdCk7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgICAg
IGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDb25z
dHJ1Y3RFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAot
ICAgICAgICAgICAgdm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tU
aHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RK
SVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RFbnRyeVRodW5rR2VuZXJh
dG9yKSwgdm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tUaHVua0dl
bmVyYXRvcikuY29kZSgpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCkBAIC02MCwxNCArNjAsMTIgQEAg
c3RhdGljIHZvaWQgc2V0RnVuY3Rpb25FbnRyeXBvaW50KFZNJiB2bQogICAgIFVOVVNFRF9QQVJB
TSh2bSk7CiAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpIHsKICAgICAgICAgY29kZUJsb2Nr
LT5zZXRKSVRDb2RlKAotICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZnVuY3Rpb25fZm9y
X2NhbGxfcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9mdW5jdGlv
bl9mb3JfY2FsbF9hcml0eV9jaGVjaykpOworICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVj
dEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRf
ZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWUpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0
ZUxMSW50Q29kZVB0cihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjayksIEpJVENv
ZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNT
RVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7CiAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2Rl
KAotICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xv
Z3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0
X2FyaXR5X2NoZWNrKSk7CisgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2Z1bmN0aW9uX2Zvcl9j
b25zdHJ1Y3RfcHJvbG9ndWUpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29k
ZVB0cihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNrKSwgSklUQ29kZTo6
SW50ZXJwcmV0ZXJUaHVuaykpKTsKIH0KIAogc3RhdGljIHZvaWQgc2V0RXZhbEVudHJ5cG9pbnQo
Vk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKQEAgLTc1LDE2ICs3MywxNCBAQCBzdGF0aWMg
dm9pZCBzZXRFdmFsRW50cnlwb2ludChWTSYgdm0sIENvCiAjaWYgRU5BQkxFKEpJVCkKICAgICBp
ZiAodm0uY2FuVXNlSklUKCkpIHsKICAgICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAg
ICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihldmFsRW50
cnlUaHVua0dlbmVyYXRvciksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBE
aXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZXZhbEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCiAgICAgVU5VU0VEX1BB
UkFNKHZtKTsKICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5l
dyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVm
KGxsaW50X2V2YWxfcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAg
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVj
dEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRf
ZXZhbF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnBy
ZXRlclRodW5rKSkpOwogfQogCiBzdGF0aWMgdm9pZCBzZXRQcm9ncmFtRW50cnlwb2ludChWTSYg
dm0sIENvZGVCbG9jayogY29kZUJsb2NrKQpAQCAtOTIsMTYgKzg4LDE0IEBAIHN0YXRpYyB2b2lk
IHNldFByb2dyYW1FbnRyeXBvaW50KFZNJiB2bSwKICNpZiBFTkFCTEUoSklUKQogICAgIGlmICh2
bS5jYW5Vc2VKSVQoKSkgewogICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAg
ICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKHByb2dyYW1FbnRy
eVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICAgICAgYWRvcHRSZWYobmV3IERp
cmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1Yihwcm9ncmFtRW50cnlUaHVua0dlbmVyYXRvciksIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKICAgICBVTlVTRURf
UEFSQU0odm0pOwogICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRSZWYo
bmV3IERpcmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVS
ZWYobGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwK
LSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICBhZG9wdFJlZihuZXcg
RGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihs
bGludF9wcm9ncmFtX3Byb2xvZ3VlKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCksIEpJVENvZGU6
OkludGVycHJldGVyVGh1bmspKSk7CiB9CiAKIHZvaWQgc2V0RW50cnlwb2ludChWTSYgdm0sIENv
ZGVCbG9jayogY29kZUJsb2NrKQpAQCAtMTIzLDcgKzExNyw5IEBAIHZvaWQgc2V0RW50cnlwb2lu
dChWTSYgdm0sIENvZGVCbG9jayogY28KIAogdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50Rm9y
KENvZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBjb2RlQmxvY2stPm1fbnVtQ2Fs
bGVlUmVnaXN0ZXJzOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29kZUJsb2Nr
LT5tX251bUNhbGxlZVJlZ2lzdGVycykgPT0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNr
QWxpZ25tZW50UmVnaXN0ZXJzKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb2RlQmxvY2stPm1f
bnVtQ2FsbGVlUmVnaXN0ZXJzKSkpOworCisgICAgcmV0dXJuIHJvdW5kTG9jYWxSZWdpc3RlckNv
dW50Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMg
KyBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJzKTsKIH0KIAogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkxMSW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAkocmV2aXNpb24gMTYyOTE0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkFycmF5UHJvZmls
ZS5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5o
IgogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgogI2luY2x1
ZGUgIkhlYXAuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9wY29k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9wY29k
ZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRPcGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsMTggQEAKIAog
I2RlZmluZSBGT1JfRUFDSF9MTElOVF9OT0pJVF9OQVRJVkVfSEVMUEVSKG1hY3JvKSBcCiAgICAg
bWFjcm8oZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSwgMSkgXAotICAgIG1hY3JvKHJldHVybkZyb21K
YXZhU2NyaXB0LCAxKQorICAgIG1hY3JvKGxsaW50X3JldHVybl90b19ob3N0LCAxKSBcCisgICAg
bWFjcm8obGxpbnRfY2FsbF90b19qYXZhc2NyaXB0LCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2Fs
bF90b19uYXRpdmVfZnVuY3Rpb24sIDEpIFwKKyAgICBtYWNybyhoYW5kbGVVbmNhdWdodEV4Y2Vw
dGlvbiwgMSkgXAorICAgIFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21f
anNfMSwgMSkgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc18yLCAx
KSBcCisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzMsIDEpIFwKKyAg
ICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfNCwgMSkgXAorICAgIG1hY3Jv
KGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc181LCAxKSBcCisgICAgbWFjcm8obGxpbnRf
Y2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzYsIDEpIFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9k
aWRfcmV0dXJuX2Zyb21fanNfNywgMSkgXAogCiAjZWxzZSAvLyAhRU5BQkxFKExMSU5UX0NfTE9P
UCkKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ29tbW9u
U2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5oIgorI2lu
Y2x1ZGUgIkVycm9ySGFuZGxpbmdTY29wZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgog
I2luY2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFsdWUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5o
IgpAQCAtNTEsNiArNTIsNyBAQAogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKICNp
bmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKyNp
bmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5s
aW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCkBAIC04Miw3ICs4
NCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgTExJbnQgewogICAgICAgICByZXR1cm4g
ZW5jb2RlUmVzdWx0KGZpcnN0LCBzZWNvbmQpOyAgICAgICAgXAogICAgIH0gd2hpbGUgKGZhbHNl
KQogCi0jZGVmaW5lIExMSU5UX0VORF9JTVBMKCkgTExJTlRfUkVUVVJOX1RXTyhwYywgZXhlYykK
KyNkZWZpbmUgTExJTlRfRU5EX0lNUEwoKSBMTElOVF9SRVRVUk5fVFdPKHBjLCAwKQogCiAjZGVm
aW5lIExMSU5UX1RIUk9XKGV4Y2VwdGlvblRvVGhyb3cpIGRvIHsgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvblRvVGhyb3cp
OyAgICAgICAgICAgICAgICBcCkBAIC0xMzcsMjIgKzEzOSwyOCBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIExMSW50IHsKICNkZWZpbmUgTExJTlRfQ0FMTF9USFJPVyhleGVjLCBleGNlcHRp
b25Ub1Rocm93KSBkbyB7ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRXhlY1N0YXRlKiBf
X2N0X2V4ZWMgPSAoZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg
ICAgICAgdm0udGhyb3dFeGNlcHRpb24oX19jdF9leGVjLCBleGNlcHRpb25Ub1Rocm93KTsgICAg
ICAgICAgICAgICAgIFwKLSAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1QTChfX2N0X2V4ZWMsIGNh
bGxUb1Rocm93KF9fY3RfZXhlYykpOyAgICAgICAgIFwKKyAgICAgICAgTExJTlRfQ0FMTF9FTkRf
SU1QTCgwLCBjYWxsVG9UaHJvdyhfX2N0X2V4ZWMpKTsgICAgICAgICAgICAgICAgIFwKICAgICB9
IHdoaWxlIChmYWxzZSkKIAogI2RlZmluZSBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihleGVj
KSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBFeGVjU3RhdGUqIF9f
Y2NlX2V4ZWMgPSAoZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg
ICAgICBpZiAoVU5MSUtFTFkodm0uZXhjZXB0aW9uKCkpKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgICAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1QTChfX2NjZV9leGVj
LCBjYWxsVG9UaHJvdyhfX2NjZV9leGVjKSk7ICAgXAorICAgICAgICAgICAgTExJTlRfQ0FMTF9F
TkRfSU1QTCgwLCBjYWxsVG9UaHJvdyhfX2NjZV9leGVjKSk7ICAgICAgICAgICAgXAogICAgIH0g
d2hpbGUgKGZhbHNlKQogCiAjZGVmaW5lIExMSU5UX0NBTExfUkVUVVJOKGV4ZWMsIGNhbGxUYXJn
ZXQpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEV4ZWNTdGF0ZSogX19j
cl9leGVjID0gKGV4ZWMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
ICAgIHZvaWQqIF9fY3JfY2FsbFRhcmdldCA9IChjYWxsVGFyZ2V0KTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgIExMSU5UX0NBTExfQ0hFQ0tfRVhDRVBUSU9OKF9fY3JfZXhl
Yy0+Y2FsbGVyRnJhbWUoKSk7ICAgICAgICAgICBcCisgICAgICAgIExMSU5UX0NBTExfQ0hFQ0tf
RVhDRVBUSU9OKF9fY3JfZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAg
IExMSU5UX0NBTExfRU5EX0lNUEwoX19jcl9leGVjLCBfX2NyX2NhbGxUYXJnZXQpOyAgICAgICAg
ICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKKyNkZWZpbmUgTExJTlRfUkVUVVJOX0NB
TExFRV9GUkFNRShleGVjQ2FsbGVlKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgRXhlY1N0YXRlKiBfX3JjZl9leGVjID0gKGV4ZWNDYWxsZWUpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgTExJTlRfUkVUVVJOX1RXTyhwYywgX19yY2ZfZXhlYyk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlIChmYWxzZSkKKyAgICAK
KwogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhY2Vfb3BlcmFuZChFeGVj
U3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKiBwYywgaW50IGZyb21XaGVyZSwgaW50IG9wZXJhbmQp
CiB7CiAgICAgTExJTlRfQkVHSU4oKTsKQEAgLTI0Miw2ICsyNTAsMTAgQEAgTExJTlRfU0xPV19Q
QVRIX0RFQ0wodHJhY2UpCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnRwdHJfdD4ocGMgLSBl
eGVjLT5jb2RlQmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSksCiAgICAgICAgICAgICBv
cGNvZGVOYW1lc1tleGVjLT52bSgpLmludGVycHJldGVyLT5nZXRPcGNvZGVJRChwY1swXS51Lm9w
Y29kZSldLAogICAgICAgICAgICAgZXhlYy0+c2NvcGUoKSwgcGMpOworICAgIGlmIChleGVjLT52
bSgpLmludGVycHJldGVyLT5nZXRPcGNvZGVJRChwY1swXS51Lm9wY29kZSkgPT0gb3BfZW50ZXIp
IHsKKyAgICAgICAgZGF0YUxvZ0YoIkZyYW1lIHdpbGwgZXZlbnR1YWxseSByZXR1cm4gdG8gJXBc
biIsIGV4ZWMtPnJldHVyblBDKCkudmFsdWUoKSk7CisgICAgICAgICpiaXR3aXNlX2Nhc3Q8dm9s
YXRpbGUgY2hhcio+KGV4ZWMtPnJldHVyblBDKCkudmFsdWUoKSk7CisgICAgfQogICAgIGlmIChl
eGVjLT52bSgpLmludGVycHJldGVyLT5nZXRPcGNvZGVJRChwY1swXS51Lm9wY29kZSkgPT0gb3Bf
cmV0KSB7CiAgICAgICAgIGRhdGFMb2dGKCJXaWxsIGJlIHJldHVybmluZyB0byAlcFxuIiwgZXhl
Yy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKICAgICAgICAgZGF0YUxvZ0YoIlRoZSBuZXcgY2ZyIHdp
bGwgYmUgJXBcbiIsIGV4ZWMtPmNhbGxlckZyYW1lKCkpOwpAQCAtMzI1LDE1ICszMzcsMTcgQEAg
c3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBlbnRyeU9TUihFeGVjUwogICAgIAogICAgIGlmICgh
c2hvdWxkSklUKGV4ZWMpKSB7CiAgICAgICAgIGNvZGVCbG9jay0+ZG9udEpJVEFueXRpbWVTb29u
KCk7Ci0gICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgZXhlYyk7CisgICAgICAgIExMSU5UX1JF
VFVSTl9UV08oMCwgMCk7CiAgICAgfQogICAgIGlmICghaml0Q29tcGlsZUFuZFNldEhldXJpc3Rp
Y3MoY29kZUJsb2NrLCBleGVjKSkKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsK
KyAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsKICAgICAKICAgICBpZiAoa2luZCA9PSBQ
cm9sb2d1ZSkKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTyhjb2RlQmxvY2stPmppdENvZGUoKS0+
ZXhlY3V0YWJsZUFkZHJlc3MoKSwgZXhlYyk7CisgICAgICAgIExMSU5UX1JFVFVSTl9UV08oY29k
ZUJsb2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNzKCksIDApOwogICAgIEFTU0VSVChr
aW5kID09IEFyaXR5Q2hlY2spOwotICAgIExMSU5UX1JFVFVSTl9UV08oY29kZUJsb2NrLT5qaXRD
b2RlV2l0aEFyaXR5Q2hlY2soKS5leGVjdXRhYmxlQWRkcmVzcygpLCBleGVjKTsKKyAgICBMTElO
VF9SRVRVUk5fVFdPKGNvZGVCbG9jay0+aml0Q29kZSgpLT5hZGRyZXNzRm9yQ2FsbCgKKyAgICAg
ICAgKmNvZGVCbG9jay0+dm0oKSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgTXVzdENo
ZWNrQXJpdHksCisgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpLmV4ZWN1
dGFibGVBZGRyZXNzKCksIDApOwogfQogI2Vsc2UgLy8gRU5BQkxFKEpJVCkKIHN0YXRpYyBTbG93
UGF0aFJldHVyblR5cGUgZW50cnlPU1IoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiosIENv
ZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBjaGFyKiwgRW50cnlLaW5kKQpAQCAtMzgxLDExICsz
OTUsMTEgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0wobG9vcF9vc3IpCiAgICAgCiAgICAgaWYgKCFz
aG91bGRKSVQoZXhlYykpIHsKICAgICAgICAgY29kZUJsb2NrLT5kb250SklUQW55dGltZVNvb24o
KTsKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICAgICAgTExJTlRfUkVU
VVJOX1RXTygwLCAwKTsKICAgICB9CiAgICAgCiAgICAgaWYgKCFqaXRDb21waWxlQW5kU2V0SGV1
cmlzdGljcyhjb2RlQmxvY2ssIGV4ZWMpKQotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIGV4
ZWMpOworICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAgIAogICAgIEFTU0VSVChj
b2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7CiAgICAgCkBAIC0z
OTgsMTAgKzQxMiwxMCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChsb29wX29zcikKICAgICB2b2lk
KiBqdW1wVGFyZ2V0ID0gY29kZUJsb2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNzQXRP
ZmZzZXQobWFwcGluZy0+bV9tYWNoaW5lQ29kZU9mZnNldCk7CiAgICAgQVNTRVJUKGp1bXBUYXJn
ZXQpOwogICAgIAotICAgIExMSU5UX1JFVFVSTl9UV08oanVtcFRhcmdldCwgZXhlYyk7CisgICAg
TExJTlRfUkVUVVJOX1RXTyhqdW1wVGFyZ2V0LCBleGVjLT50b3BPZkZyYW1lKCkpOwogI2Vsc2Ug
Ly8gRU5BQkxFKEpJVCkKICAgICBjb2RlQmxvY2stPmRvbnRKSVRBbnl0aW1lU29vbigpOwotICAg
IExMSU5UX1JFVFVSTl9UV08oMCwgZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsK
ICNlbmRpZiAvLyBFTkFCTEUoSklUKQogfQogCkBAIC00MzcsMTMgKzQ1MSwzNCBAQCBMTElOVF9T
TE9XX1BBVEhfREVDTChzdGFja19jaGVjaykKICAgICBkYXRhTG9nRigiTnVtIHZhcnMgPSAldS5c
biIsIGV4ZWMtPmNvZGVCbG9jaygpLT5tX251bVZhcnMpOwogICAgIGRhdGFMb2dGKCJDdXJyZW50
IGVuZCBpcyBhdCAlcC5cbiIsIGV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5kKCkp
OwogI2VuZGlmCi0gICAgQVNTRVJUKCFleGVjLT52bSgpLmludGVycHJldGVyLT5zdGFjaygpLmNv
bnRhaW5zQWRkcmVzcygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwo
ZXhlYy0+Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKS5vZmZzZXQoKV0pKTsKLSAg
ICBpZiAoVU5MSUtFTFkoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJlZ2lz
dGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGV4ZWMtPmNvZGVCbG9jaygpLT5tX251bUNh
bGxlZVJlZ2lzdGVycykub2Zmc2V0KCldKSkpIHsKLSAgICAgICAgZXhlYyA9IGV4ZWMtPmNhbGxl
ckZyYW1lKCk7Ci0gICAgICAgIENvbW1vblNsb3dQYXRoczo6aW50ZXJwcmV0ZXJUaHJvd0luQ2Fs
bGVyKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7Ci0gICAgICAgIHBjID0g
cmV0dXJuVG9UaHJvd0ZvclRocm93bkV4Y2VwdGlvbihleGVjKTsKLSAgICB9Ci0gICAgTExJTlRf
RU5EX0lNUEwoKTsKKworICAgIC8vIFRoaXMgc3RhY2sgY2hlY2sgaXMgZG9uZSBpbiB0aGUgcHJv
bG9ndWUgZm9yIGEgZnVuY3Rpb24gY2FsbCwgYW5kIHRoZQorICAgIC8vIENhbGxGcmFtZSBpcyBu
b3QgY29tcGxldGVseSBzZXQgdXAgeWV0LiBGb3IgZXhhbXBsZSwgaWYgdGhlIGZyYW1lIG5lZWRz
CisgICAgLy8gYW4gYWN0aXZhdGlvbiBvYmplY3QsIHRoZSBhY3RpdmF0aW9uIG9iamVjdCB3aWxs
IG9ubHkgYmUgc2V0IHVwIGFmdGVyCisgICAgLy8gd2Ugc3RhcnQgZXhlY3V0aW5nIHRoZSBmdW5j
dGlvbi4gSWYgd2UgbmVlZCB0byB0aHJvdyBhIFN0YWNrT3ZlcmZsb3dFcnJvcgorICAgIC8vIGhl
cmUsIHRoZW4gd2UgbmVlZCB0byB0ZWxsIHRoZSBwcm9sb2d1ZSB0byBzdGFydCB0aGUgc3RhY2sg
dW53aW5kaW5nIGZyb20KKyAgICAvLyB0aGUgY2FsbGVyIGZyYW1lICh3aGljaCBpcyBmdWxseSBz
ZXQgdXApIGluc3RlYWQuIFRvIGRvIHRoYXQsIHdlIHJldHVybgorICAgIC8vIHRoZSBjYWxsZXIn
cyBDYWxsRnJhbWUgaW4gdGhlIHNlY29uZCByZXR1cm4gdmFsdWUuCisgICAgLy8KKyAgICAvLyBJ
ZiB0aGUgc3RhY2sgY2hlY2sgc3VjY2VlZHMgYW5kIHdlIGRvbid0IG5lZWQgdG8gdGhyb3cgdGhl
IGVycm9yLCB0aGVuCisgICAgLy8gd2UnbGwgcmV0dXJuIDAgaW5zdGVhZC4gVGhlIHByb2xvZ3Vl
IHdpbGwgY2hlY2sgZm9yIGEgbm9uLXplcm8gdmFsdWUKKyAgICAvLyB3aGVuIGRldGVybWluaW5n
IHdoZXRoZXIgdG8gc2V0IHRoZSBjYWxsRnJhbWUgb3Igbm90LgorCisgICAgLy8gRm9yIEpJVCBl
bmFibGVkIGJ1aWxkcyB3aGljaCB1c2VzIHRoZSBDIHN0YWNrLCB0aGUgc3RhY2sgaXMgbm90IGdy
b3dhYmxlLgorICAgIC8vIEhlbmNlLCBpZiB3ZSBnZXQgaGVyZSwgdGhlbiB3ZSBrbm93IGEgc3Rh
Y2sgb3ZlcmZsb3cgaXMgaW1taW5lbnQuIFNvLCBqdXN0CisgICAgLy8gdGhyb3cgdGhlIFN0YWNr
T3ZlcmZsb3dFcnJvciB1bmNvbmRpdGlvbmFsbHkuCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkK
KyAgICBBU1NFUlQoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmNvbnRhaW5zQWRkcmVzcyhleGVj
LT50b3BPZkZyYW1lKCkpKTsKKyAgICBpZiAoTElLRUxZKHZtLmludGVycHJldGVyLT5zdGFjaygp
LmVuc3VyZUNhcGFjaXR5Rm9yKGV4ZWMtPnRvcE9mRnJhbWUoKSkpKQorICAgICAgICBMTElOVF9S
RVRVUk5fVFdPKHBjLCAwKTsKKyNlbmRpZgorCisgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1l
KCk7CisgICAgdm0udG9wQ2FsbEZyYW1lID0gZXhlYzsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUg
ZXJyb3JTY29wZSh2bSk7CisgICAgQ29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5D
YWxsZXIoZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKKyAgICBwYyA9IHJl
dHVyblRvVGhyb3dGb3JUaHJvd25FeGNlcHRpb24oZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RX
TyhwYywgZXhlYyk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jcmVhdGVf
YWN0aXZhdGlvbikKQEAgLTEwNDUsNyArMTA4MCw3IEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5
cGUgc2V0VXBDYWxsKEV4ZWMKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cjsKICAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IDA7CiAgICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1
bmN0aW9uKCkpCi0gICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5ob3N0Q29kZUVudHJ5Rm9y
KGtpbmQpOworICAgICAgICBjb2RlUHRyID0gZXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcih2bSwg
a2luZCwgTXVzdENoZWNrQXJpdHksIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwog
ICAgIGVsc2UgewogICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJs
ZSA9IHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpOwogICAgICAg
ICBKU09iamVjdCogZXJyb3IgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPnByZXBhcmVGb3JFeGVjdXRp
b24oZXhlY0NhbGxlZSwgY2FsbGVlLT5zY29wZSgpLCBraW5kKTsKQEAgLTEwNTMsMTIgKzEwODgs
MTYgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBzZXRVcENhbGwoRXhlYwogICAgICAgICAg
ICAgTExJTlRfQ0FMTF9USFJPVyhleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLCBlcnJvcik7CiAg
ICAgICAgIGNvZGVCbG9jayA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Y29kZUJsb2NrRm9yKGtpbmQp
OwogICAgICAgICBBU1NFUlQoY29kZUJsb2NrKTsKKyAgICAgICAgQXJpdHlDaGVja01vZGUgYXJp
dHk7CiAgICAgICAgIGlmIChleGVjQ2FsbGVlLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygp
IDwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkpCi0gICAg
ICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5qc0NvZGVXaXRoQXJpdHlDaGVj
a0VudHJ5Rm9yKGtpbmQpOworICAgICAgICAgICAgYXJpdHkgPSBNdXN0Q2hlY2tBcml0eTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+anND
b2RlRW50cnlGb3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9IEFyaXR5Q2hlY2tOb3RSZXF1
aXJlZDsKKyAgICAgICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+ZW50cnlwb2ludEZv
cih2bSwga2luZCwgYXJpdHksIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogICAg
IH0KICAgICAKKyAgICBBU1NFUlQoISFjb2RlUHRyKTsKKyAgICAKICAgICBpZiAoIUxMSU5UX0FM
V0FZU19BQ0NFU1NfU0xPVyAmJiBjYWxsTGlua0luZm8pIHsKICAgICAgICAgRXhlY1N0YXRlKiBl
eGVjQ2FsbGVyID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKICAgICAgICAgCkBAIC0xMTEw
LDE5ICsxMTQ5LDE5IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jb25zdHJ1Y3QK
ICAgICByZXR1cm4gZ2VuZXJpY0NhbGwoZXhlYywgcGMsIENvZGVGb3JDb25zdHJ1Y3QpOwogfQog
Ci1MTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVfZm9y
X3ZhcmFyZ3MpCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2l6ZV9mcmFtZV9mb3Jf
dmFyYXJncykKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIC8vIFRoaXMgbmVlZHMgdG86CiAg
ICAgLy8gLSBTZXQgdXAgYSBjYWxsIGZyYW1lIHdoaWxlIHJlc3BlY3RpbmcgdGhlIHZhcmlhYmxl
IGFyZ3VtZW50cy4KICAgICAKLSAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUgPSBzaXplQW5kQWxs
b2NGcmFtZUZvclZhcmFyZ3MoZXhlYywgJnZtLmludGVycHJldGVyLT5zdGFjaygpLAorICAgIEV4
ZWNTdGF0ZSogZXhlY0NhbGxlZSA9IHNpemVGcmFtZUZvclZhcmFyZ3MoZXhlYywgJnZtLmludGVy
cHJldGVyLT5zdGFjaygpLAogICAgICAgICBMTElOVF9PUF9DKDQpLmpzVmFsdWUoKSwgcGNbNV0u
dS5vcGVyYW5kKTsKICAgICBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihleGVjKTsKICAgICAK
ICAgICB2bS5uZXdDYWxsRnJhbWVSZXR1cm5WYWx1ZSA9IGV4ZWNDYWxsZWU7CiAKLSAgICBMTElO
VF9FTkQoKTsKKyAgICBMTElOVF9SRVRVUk5fQ0FMTEVFX0ZSQU1FKGV4ZWNDYWxsZWUpOwogfQog
CiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF92YXJhcmdzKQpAQCAtMTMxMiwx
MyArMTM1MSw2IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wcm9maWxlX2QKICAg
ICBMTElOVF9FTkQoKTsKIH0KIAotTExJTlRfU0xPV19QQVRIX0RFQ0wodGhyb3dfZnJvbV9uYXRp
dmVfY2FsbCkKLXsKLSAgICBMTElOVF9CRUdJTigpOwotICAgIEFTU0VSVCh2bS5leGNlcHRpb24o
KSk7Ci0gICAgTExJTlRfRU5EKCk7Ci19Ci0KIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9oYW5kbGVfZXhjZXB0aW9uKQogewogICAgIExMSU5UX0JFR0lOX05PX1NFVF9QQygpOwpAQCAt
MTM4OCw2ICsxNDIwLDIzIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfdG9f
c2MKICAgICBMTElOVF9FTkQoKTsKIH0KIAorZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUg
bGxpbnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IoVk0qIHZtLCBQcm90b0NhbGxGcmFtZSog
cHJvdG9GcmFtZSkKK3sKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSB2bS0+dG9wQ2FsbEZyYW1lOwor
ICAgIGlmICghZXhlYykKKyAgICAgICAgZXhlYyA9IHByb3RvRnJhbWUtPnNjb3BlKCktPmdsb2Jh
bE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoZXhl
Yyk7CisgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKK30KKworI2lmIEVOQUJMRShMTElO
VF9DX0xPT1ApCitleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF9zdGFja19jaGVj
a19hdF92bV9lbnRyeShWTSogdm0sIFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQoreworICAgIGJv
b2wgc3VjY2VzcyA9IHZtLT5pbnRlcnByZXRlci0+c3RhY2soKS5lbnN1cmVDYXBhY2l0eUZvcihu
ZXdUb3BPZlN0YWNrKTsKKyAgICByZXR1cm4gZW5jb2RlUmVzdWx0KHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KHN1Y2Nlc3MpLCAwKTsKK30KKyNlbmRpZgorCiBleHRlcm4gIkMiIHZvaWQgbGxpbnRf
d3JpdGVfYmFycmllcl9zbG93KEV4ZWNTdGF0ZSosIEpTQ2VsbCogY2VsbCkKIHsKICAgICBIZWFw
Ojp3cml0ZUJhcnJpZXIoY2VsbCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDEyICszNiwx
MyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRlOwogc3RydWN0IEluc3RydWN0
aW9uOworc3RydWN0IFByb3RvQ2FsbEZyYW1lOwogCiBuYW1lc3BhY2UgTExJbnQgewogCiBleHRl
cm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV9vcGVyYW5kKEV4ZWNTdGF0ZSos
IEluc3RydWN0aW9uKiwgaW50IGZyb21XaGVyZSwgaW50IG9wZXJhbmQpOwogZXh0ZXJuICJDIiBT
bG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhY2VfdmFsdWUoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rp
b24qLCBpbnQgZnJvbVdoZXJlLCBpbnQgb3BlcmFuZCk7Ci1leHRlcm4gIkMiIHZvaWQgbGxpbnRf
d3JpdGVfYmFycmllcl9zbG93KEV4ZWNTdGF0ZSosIEpTQ2VsbCopOworZXh0ZXJuICJDIiB2b2lk
IGxsaW50X3dyaXRlX2JhcnJpZXJfc2xvdyhFeGVjU3RhdGUqLCBKU0NlbGwqKSBXVEZfSU5URVJO
QUw7CiAKICNkZWZpbmUgTExJTlRfU0xPV19QQVRIX0RFQ0wobmFtZSkgXAogICAgIGV4dGVybiAi
QyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50XyMjbmFtZShFeGVjU3RhdGUqIGV4ZWMsIEluc3Ry
dWN0aW9uKiBwYykKQEAgLTEwMSw3ICsxMDIsNyBAQCBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RF
Q0woc2xvd19wYXRoX25lCiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX25l
d19mdW5jX2V4cCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2NhbGwp
OwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jb25zdHJ1Y3QpOwotTExJ
TlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9zaXplX2FuZF9hbGxvY19mcmFtZV9m
b3JfdmFyYXJncyk7CitMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3NpemVf
ZnJhbWVfZm9yX3ZhcmFyZ3MpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9jYWxsX3ZhcmFyZ3MpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9j
YWxsX2V2YWwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90ZWFyX29m
Zl9hY3RpdmF0aW9uKTsKQEAgLTExOSwxMSArMTIwLDE0IEBAIExMSU5UX1NMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfaGEKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfZGVidWcpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wcm9maWxl
X3dpbGxfY2FsbCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Byb2Zp
bGVfZGlkX2NhbGwpOwotTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHRocm93X2Zyb21fbmF0
aXZlX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9oYW5kbGVf
ZXhjZXB0aW9uKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcmVzb2x2
ZV9zY29wZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9mcm9t
X3Njb3BlKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X3RvX3Nj
b3BlKTsKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3Rocm93X3N0YWNrX292
ZXJmbG93X2Vycm9yKFZNKiwgUHJvdG9DYWxsRnJhbWUqKSBXVEZfSU5URVJOQUw7CisjaWYgRU5B
QkxFKExMSU5UX0NfTE9PUCkKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3N0
YWNrX2NoZWNrX2F0X3ZtX2VudHJ5KFZNKiwgUmVnaXN0ZXIqKSBXVEZfSU5URVJOQUw7CisjZW5k
aWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtOTQsNTggKzk0LDE2IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBwcm9ncmFtRW50cnlUaHVu
a0cKIAogLy8gTm9uLUpJVCAoaS5lLiBDIExvb3AgTExJTlQpIGNhc2U6CiAKLXR5cGVkZWYgSlNW
YWx1ZSAoKkV4ZWN1dGVDb2RlKSAoQ2FsbEZyYW1lKiwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3Mp
OwotCi10ZW1wbGF0ZTxFeGVjdXRlQ29kZSBleGVjdXRlPgotRW5jb2RlZEpTVmFsdWUgZG9DYWxs
VG9KYXZhU2NyaXB0KHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBQcm90b0NhbGxGcmFtZSogcHJv
dG9DYWxsRnJhbWUpCitFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGV4ZWN1
dGFibGVBZGRyZXNzLCBWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSkKIHsK
LSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHByb3RvQ2FsbEZyYW1lLT5jb2RlQmxvY2soKTsK
LSAgICBKU1Njb3BlKiBzY29wZSA9IHByb3RvQ2FsbEZyYW1lLT5zY29wZSgpOwotICAgIEpTT2Jq
ZWN0KiBjYWxsZWUgPSBwcm90b0NhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgaW50IGFyZ0NvdW50
SW5jbHVkaW5nVGhpcyA9IHByb3RvQ2FsbEZyYW1lLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhp
cygpOwotICAgIGludCBhcmdDb3VudCA9IHByb3RvQ2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCk7
Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBwcm90b0NhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7Ci0g
ICAgSlNTdGFjayYgc3RhY2sgPSBzY29wZS0+dm0oKS0+aW50ZXJwcmV0ZXItPnN0YWNrKCk7Ci0K
LSAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IHN0YWNrLnB1c2hGcmFtZShjb2RlQmxvY2ss
IHNjb3BlLCBhcmdDb3VudEluY2x1ZGluZ1RoaXMsIGNhbGxlZSk7Ci0gICAgaWYgKFVOTElLRUxZ
KCFuZXdDYWxsRnJhbWUpKSB7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBzY29wZS0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRo
cm93U3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKLSAgICB9Ci0KLSAgICAvLyBTZXQgdGhlIGFy
Z3VtZW50cyBmb3IgdGhlIGNhbGxlZToKLSAgICBuZXdDYWxsRnJhbWUtPnNldFRoaXNWYWx1ZSh0
aGlzVmFsdWUpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnQ291bnQ7ICsraSkKLSAgICAg
ICAgbmV3Q2FsbEZyYW1lLT5zZXRBcmd1bWVudChpLCBwcm90b0NhbGxGcmFtZS0+YXJndW1lbnQo
aSkpOwotCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBleGVjdXRlKG5ld0NhbGxGcmFtZSwgZXhlY3V0
YWJsZUFkZHJlc3MpOwotCi0gICAgc3RhY2sucG9wRnJhbWUobmV3Q2FsbEZyYW1lKTsKLQorICAg
IEpTVmFsdWUgcmVzdWx0ID0gQ0xvb3A6OmV4ZWN1dGUobGxpbnRfY2FsbF90b19qYXZhc2NyaXB0
LCBleGVjdXRhYmxlQWRkcmVzcywgdm0sIHByb3RvQ2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBleGVjdXRl
SlMoQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzKQotewot
ICAgIE9wY29kZSBlbnRyeU9wY29kZSA9ICpyZWludGVycHJldF9jYXN0PE9wY29kZSo+KCZleGVj
dXRhYmxlQWRkcmVzcyk7Ci0gICAgcmV0dXJuIENMb29wOjpleGVjdXRlKG5ld0NhbGxGcmFtZSwg
ZW50cnlPcGNvZGUpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQq
IGV4ZWN1dGFibGVBZGRyZXNzLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2Fs
bEZyYW1lLCBSZWdpc3RlciopCi17Ci0gICAgcmV0dXJuIGRvQ2FsbFRvSmF2YVNjcmlwdDxleGVj
dXRlSlM+KGV4ZWN1dGFibGVBZGRyZXNzLCBwcm90b0NhbGxGcmFtZSk7Ci19Ci0KLXN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBleGVjdXRlTmF0aXZlKENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCB2b2lk
KiBleGVjdXRhYmxlQWRkcmVzcykKK0VuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9u
KHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90b0Nh
bGxGcmFtZSkKIHsKLSAgICBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nh
c3Q8TmF0aXZlRnVuY3Rpb24+KGV4ZWN1dGFibGVBZGRyZXNzKTsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZGVjb2RlKGZ1bmN0aW9uKG5ld0NhbGxGcmFtZSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBj
YWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgRXhlY1N0YXRlKios
IFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSwgUmVnaXN0ZXIqKQotewotICAgIHJldHVy
biBkb0NhbGxUb0phdmFTY3JpcHQ8ZXhlY3V0ZU5hdGl2ZT4oZXhlY3V0YWJsZUFkZHJlc3MsIHBy
b3RvQ2FsbEZyYW1lKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IENMb29wOjpleGVjdXRlKGxsaW50
X2NhbGxfdG9fbmF0aXZlX2Z1bmN0aW9uLCBleGVjdXRhYmxlQWRkcmVzcywgdm0sIHByb3RvQ2Fs
bEZyYW1lKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
VGh1bmtzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
VGh1bmtzLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFRodW5rcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxNiArMzQsMTQgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEV4ZWNTdGF0ZTsKLWNsYXNzIFJlZ2lzdGVyOwogY2xhc3Mg
Vk07CiBzdHJ1Y3QgUHJvdG9DYWxsRnJhbWU7CiAKIGV4dGVybiAiQyIgewotICAgIEVuY29kZWRK
U1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCosIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFt
ZSosIFJlZ2lzdGVyKik7Ci0gICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24o
dm9pZCosIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKik7CisgICAgRW5j
b2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwgVk0qLCBQcm90b0NhbGxGcmFtZSop
OworICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqLCBWTSosIFBy
b3RvQ2FsbEZyYW1lKik7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICB2b2lkIHJldHVybkZyb21KYXZh
U2NyaXB0KCk7CisgICAgdm9pZCBoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbigpOwogI2VuZGlmCiB9
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBj
b3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEy
LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTAyLDkgKzEwMiwxMSBAQCBtYWNybyBjQ2FsbDIoZnVuY3Rp
b24sIGFyZzEsIGFyZzIpCiAgICAgICAgIG1vdmUgYXJnMiwgYTEKICAgICAgICAgY2FsbCBmdW5j
dGlvbgogICAgIGVsc2lmIFg4NgotICAgICAgICBwb2tlIGFyZzEsIDAKLSAgICAgICAgcG9rZSBh
cmcyLCAxCisgICAgICAgIHN1YnAgOCwgc3AKKyAgICAgICAgcHVzaCBhcmcyCisgICAgICAgIHB1
c2ggYXJnMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAgICAgIGFkZHAgMTYsIHNwCiAgICAg
ZWxzaWYgU0g0CiAgICAgICAgIHNldGFyZ3MgYXJnMSwgYXJnMgogICAgICAgICBjYWxsIGZ1bmN0
aW9uCkBAIC0xMjQsMTEgKzEyNiwxMiBAQCBtYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFy
ZzIsIGFyZzMsCiAgICAgICAgIG1vdmUgYXJnNCwgYTMKICAgICAgICAgY2FsbCBmdW5jdGlvbgog
ICAgIGVsc2lmIFg4NgotICAgICAgICBwb2tlIGFyZzEsIDAKLSAgICAgICAgcG9rZSBhcmcyLCAx
Ci0gICAgICAgIHBva2UgYXJnMywgMgotICAgICAgICBwb2tlIGFyZzQsIDMKKyAgICAgICAgcHVz
aCBhcmc0CisgICAgICAgIHB1c2ggYXJnMworICAgICAgICBwdXNoIGFyZzIKKyAgICAgICAgcHVz
aCBhcmcxCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KKyAgICAgICAgYWRkcCAxNiwgc3AKICAgICBl
bHNpZiBTSDQKICAgICAgICAgc2V0YXJncyBhcmcxLCBhcmcyLCBhcmczLCBhcmc0CiAgICAgICAg
IGNhbGwgZnVuY3Rpb24KQEAgLTE0Miw4NSArMTQ1LDQyIEBAIGVuZAogbWFjcm8gY2FsbFNsb3dQ
YXRoKHNsb3dQYXRoKQogICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQw
LCBQQwotICAgIG1vdmUgdDEsIGNmcgotZW5kCi0KLW1hY3JvIGZ1bmN0aW9uUHJvbG9ndWUoZXh0
cmFTdGFja1NwYWNlKQotICAgIGlmIFg4NgotICAgICAgICBwdXNoIGNmcgotICAgICAgICBtb3Zl
IHNwLCBjZnIKLSAgICBlbmQKLSAgICBwdXNoQ2FsbGVlU2F2ZXMKLSAgICBpZiBBUk0gb3IgQVJN
djcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUwotICAgICAgICBwdXNoIGNmcgotICAgICAg
ICBwdXNoIGxyCi0gICAgZW5kCi0gICAgc3VicCBleHRyYVN0YWNrU3BhY2UsIHNwCiBlbmQKIAot
bWFjcm8gZnVuY3Rpb25FcGlsb2d1ZShleHRyYVN0YWNrU3BhY2UpCi0gICAgYWRkcCBleHRyYVN0
YWNrU3BhY2UsIHNwCi0gICAgaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9y
IE1JUFMKLSAgICAgICAgcG9wIGxyCi0gICAgICAgIHBvcCBjZnIKLSAgICBlbmQKLSAgICBwb3BD
YWxsZWVTYXZlcworbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsKQogICAgIGlmIFg4
NgotICAgICAgICBwb3AgY2ZyCi0gICAgZW5kCi1lbmQKKyAgICAgICAgY29uc3QgZW50cnkgPSB0
NAorICAgICAgICBjb25zdCB2bSA9IHQzCisgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0g
dDUKIAotbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldHVybikKLSAgICBp
ZiBYODYKLSAgICAgICAgY29uc3QgZW50cnkgPSB0NQotICAgICAgICBjb25zdCB2bVRvcENhbGxG
cmFtZSA9IHQyCi0gICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gdDQKLQotICAgICAgICBj
b25zdCBleHRyYVN0YWNrU3BhY2UgPSAyOAogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQw
CiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSB0MQogICAgICAgICBjb25zdCB0ZW1wMSA9IHQw
ICMgU2FtZSBhcyBwcmV2aW91c0NGUgogICAgICAgICBjb25zdCB0ZW1wMiA9IHQxICMgU2FtZSBh
cyBwcmV2aW91c1BDCi0gICAgICAgIGNvbnN0IHRlbXAzID0gdDIgIyBzYW1lIGFzIHZtVG9wQ2Fs
bEZyYW1lCi0gICAgICAgIGNvbnN0IHRlbXA0ID0gdDMKLSAgICBlbHNpZiBBUk0gb3IgQVJNdjdf
VFJBRElUSU9OQUwKLSAgICAgICAgY29uc3QgZW50cnkgPSBhMAotICAgICAgICBjb25zdCB2bVRv
cENhbGxGcmFtZSA9IGExCi0gICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKLSAgICAg
ICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCi0KLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNl
ID0gMTYKLSAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MwotICAgICAgICBjb25zdCBwcmV2
aW91c1BDID0gbHIKLSAgICAgICAgY29uc3QgdGVtcDEgPSB0MyAjIFNhbWUgYXMgcHJldmlvdXND
RlIKLSAgICAgICAgY29uc3QgdGVtcDIgPSBhMyAjIFNhbWUgYXMgdG9wT2ZTdGFjawotICAgICAg
ICBjb25zdCB0ZW1wMyA9IHQ0Ci0gICAgICAgIGNvbnN0IHRlbXA0ID0gdDUKLSAgICBlbHNpZiBB
Uk12NworICAgICAgICBjb25zdCB0ZW1wMyA9IHQyCisgICAgICAgIGNvbnN0IHRlbXA0ID0gdDMg
IyBzYW1lIGFzIHZtCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFM
IG9yIENfTE9PUAogICAgICAgICBjb25zdCBlbnRyeSA9IGEwCi0gICAgICAgIGNvbnN0IHZtVG9w
Q2FsbEZyYW1lID0gYTEKKyAgICAgICAgY29uc3Qgdm0gPSBhMQogICAgICAgICBjb25zdCBwcm90
b0NhbGxGcmFtZSA9IGEyCi0gICAgICAgIGNvbnN0IHRvcE9mU3RhY2sgPSBhMwogCi0gICAgICAg
IGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDI4CiAgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0g
dDMKICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IGxyCiAgICAgICAgIGNvbnN0IHRlbXAxID0g
dDMgIyBTYW1lIGFzIHByZXZpb3VzQ0ZSCi0gICAgICAgIGNvbnN0IHRlbXAyID0gYTMgIyBTYW1l
IGFzIHRvcE9mU3RhY2sKLSAgICAgICAgY29uc3QgdGVtcDMgPSB0NAotICAgICAgICBjb25zdCB0
ZW1wNCA9IHQ1CisgICAgICAgIGNvbnN0IHRlbXAyID0gdDQKKyAgICAgICAgY29uc3QgdGVtcDMg
PSB0NQorICAgICAgICBjb25zdCB0ZW1wNCA9IHQ0ICMgU2FtZSBhcyB0ZW1wMgogICAgIGVsc2lm
IE1JUFMKICAgICAgICAgY29uc3QgZW50cnkgPSBhMAogICAgICAgICBjb25zdCB2bVRvcENhbGxG
cmFtZSA9IGExCiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKICAgICAgICAgY29u
c3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gMzYK
ICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MgogICAgICAgICBjb25zdCBwcmV2aW91c1BD
ID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MwotICAgICAgICBjb25zdCB0ZW1wMiA9IHQ0
Ci0gICAgICAgIGNvbnN0IHRlbXAzID0gdDUKKyAgICAgICAgY29uc3QgdGVtcDIgPSB0NQorICAg
ICAgICBjb25zdCB0ZW1wMyA9IHQ0CiAgICAgICAgIGNvbnN0IHRlbXA0ID0gdDYKICAgICBlbHNp
ZiBTSDQKICAgICAgICAgY29uc3QgZW50cnkgPSBhMApAQCAtMjI4LDcgKzE4OCw2IEBAIG1hY3Jv
IGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXQKICAgICAgICAgY29uc3QgcHJvdG9D
YWxsRnJhbWUgPSBhMgogICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gYTMKIAotICAgICAgICBj
b25zdCBleHRyYVN0YWNrU3BhY2UgPSAyMAogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQz
CiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSBscgogICAgICAgICBjb25zdCB0ZW1wMSA9IHQz
ICMgU2FtZSBhcyBwcmV2aW91c0NGUgpAQCAtMjM3LDQ5ICsxOTYsNzggQEAgbWFjcm8gZG9DYWxs
VG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldAogICAgICAgICBjb25zdCB0ZW1wNCA9IHQ5CiAg
ICAgZW5kCiAKKyAgICBjYWxsVG9KYXZhU2NyaXB0UHJvbG9ndWUoKQorCiAgICAgaWYgWDg2Ci0g
ICAgICAgIGxvYWRwIFtzcF0sIHByZXZpb3VzUEMKLSAgICAgICAgbW92ZSBjZnIsIHByZXZpb3Vz
Q0ZSCi0gICAgZW5kCi0gICAgZnVuY3Rpb25Qcm9sb2d1ZShleHRyYVN0YWNrU3BhY2UpCi0gICAg
aWYgWDg2Ci0gICAgICAgIGxvYWRwIGV4dHJhU3RhY2tTcGFjZSsyMFtzcF0sIGVudHJ5Ci0gICAg
ICAgIGxvYWRwIGV4dHJhU3RhY2tTcGFjZSsyNFtzcF0sIHZtVG9wQ2FsbEZyYW1lCi0gICAgICAg
IGxvYWRwIGV4dHJhU3RhY2tTcGFjZSsyOFtzcF0sIHByb3RvQ2FsbEZyYW1lCi0gICAgICAgIGxv
YWRwIGV4dHJhU3RhY2tTcGFjZSszMltzcF0sIGNmcgorICAgICAgICBsb2FkcCAzNltzcF0sIHZt
CisgICAgICAgIGxvYWRwIDMyW3NwXSwgZW50cnkKICAgICBlbHNlCiAgICAgICAgIG1vdmUgY2Zy
LCBwcmV2aW91c0NGUgotICAgICAgICBtb3ZlIHRvcE9mU3RhY2ssIGNmcgogICAgIGVuZAogCi0g
ICAgc3VicCAoQ2FsbEZyYW1lSGVhZGVyU2xvdHMtMSkqOCwgY2ZyCi0gICAgc3RvcmVwIDAsIEFy
Z3VtZW50Q291bnQrNFtjZnJdCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDIs
IDB4YmFkMGRjMDEpCisKKyAgICAjIFRoZSBzdGFjayByZXNlcnZlZCB6b25lIGVuc3VyZXMgdGhh
dCB3ZSBoYXZlIGFkZXF1YXRlIHNwYWNlIGZvciB0aGUKKyAgICAjIFZNRW50cnlTZW50aW5lbEZy
YW1lLiBQcm9jZWVkIHdpdGggYWxsb2NhdGluZyBhbmQgaW5pdGlhbGl6aW5nIHRoZQorICAgICMg
c2VudGluZWwgZnJhbWUuCisgICAgbW92ZSBzcCwgY2ZyCisgICAgc3VicCBDYWxsRnJhbWVIZWFk
ZXJTbG90cyAqIDgsIGNmcgogICAgIHN0b3JlcCAwLCBBcmd1bWVudENvdW50W2Nmcl0KLSAgICBz
dG9yZXAgMCwgQ2FsbGVlKzRbY2ZyXQotICAgIHN0b3JlcCB2bVRvcENhbGxGcmFtZSwgQ2FsbGVl
W2Nmcl0KLSAgICBsb2FkcCBbdm1Ub3BDYWxsRnJhbWVdLCB0ZW1wNAotICAgIHN0b3JlcCAwLCBT
Y29wZUNoYWluKzRbY2ZyXQotICAgIHN0b3JlcCB0ZW1wNCwgU2NvcGVDaGFpbltjZnJdCi0gICAg
c3RvcmVwIDAsIENvZGVCbG9jays0W2Nmcl0KKyAgICBzdG9yZXAgdm0sIENhbGxlZVtjZnJdCisg
ICAgbG9hZHAgVk06OnRvcENhbGxGcmFtZVt2bV0sIHRlbXAyCisgICAgc3RvcmVwIHRlbXAyLCBT
Y29wZUNoYWluW2Nmcl0KICAgICBzdG9yZXAgMSwgQ29kZUJsb2NrW2Nmcl0KKyAgICBpZiBYODYK
KyAgICAgICAgbG9hZHAgMjhbc3BdLCBwcmV2aW91c1BDCisgICAgICAgIGxvYWRwIDI0W3NwXSwg
cHJldmlvdXNDRlIKKyAgICBlbmQKICAgICBzdG9yZXAgcHJldmlvdXNQQywgUmV0dXJuUENbY2Zy
XQogICAgIHN0b3JlcCBwcmV2aW91c0NGUiwgQ2FsbGVyRnJhbWVbY2ZyXQotICAgIG1vdmUgY2Zy
LCB0ZW1wMQorCisgICAgaWYgWDg2CisgICAgICAgIGxvYWRwIDQwW3NwXSwgcHJvdG9DYWxsRnJh
bWUKKyAgICBlbmQKIAogICAgIGxvYWRpIFByb3RvQ2FsbEZyYW1lOjpwYWRkZWRBcmdDb3VudFtw
cm90b0NhbGxGcmFtZV0sIHRlbXAyCiAgICAgYWRkcCBDYWxsRnJhbWVIZWFkZXJTbG90cywgdGVt
cDIsIHRlbXAyCiAgICAgbHNoaWZ0cCAzLCB0ZW1wMgotICAgIHN1YnAgdGVtcDIsIGNmcgotICAg
IHN0b3JlcCB0ZW1wMSwgQ2FsbGVyRnJhbWVbY2ZyXQorICAgIHN1YnAgY2ZyLCB0ZW1wMiwgdGVt
cDEKKworICAgICMgRW5zdXJlIHRoYXQgd2UgaGF2ZSBlbm91Z2ggYWRkaXRpb25hbCBzdGFjayBj
YXBhY2l0eSBmb3IgdGhlIGluY29taW5nIGFyZ3MsCisgICAgIyBhbmQgdGhlIGZyYW1lIGZvciB0
aGUgSlMgY29kZSB3ZSdyZSBleGVjdXRpbmcuIFdlIG5lZWQgdG8gZG8gdGhpcyBjaGVjaworICAg
ICMgYmVmb3JlIHdlIHN0YXJ0IGNvcHlpbmcgdGhlIGFyZ3MgZnJvbSB0aGUgcHJvdG9DYWxsRnJh
bWUgYmVsb3cuCisgICAgYnBhZXEgdGVtcDEsIFZNOjptX2pzU3RhY2tMaW1pdFt2bV0sIC5zdGFj
a0hlaWdodE9LCisKKyAgICBzdWJwIGNmciwgOCwgc3AKKworICAgIGlmIENfTE9PUAorICAgICAg
ICBtb3ZlIGVudHJ5LCB0ZW1wMgorICAgICAgICBtb3ZlIHZtLCB0ZW1wMworICAgICAgICBjbG9v
cENhbGxTbG93UGF0aCBfbGxpbnRfc3RhY2tfY2hlY2tfYXRfdm1fZW50cnksIHZtLCB0ZW1wMQor
ICAgICAgICBicGVxIHQwLCAwLCAuc3RhY2tDaGVja0ZhaWxlZAorICAgICAgICBtb3ZlIHRlbXAy
LCBlbnRyeQorICAgICAgICBtb3ZlIHRlbXAzLCB2bQorICAgICAgICBqbXAgLnN0YWNrSGVpZ2h0
T0sKKworLnN0YWNrQ2hlY2tGYWlsZWQ6CisgICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5CisgICAg
ICAgIG1vdmUgdGVtcDMsIHZtCisgICAgZW5kCisKKyAgICBjQ2FsbDIoX2xsaW50X3Rocm93X3N0
YWNrX292ZXJmbG93X2Vycm9yLCB2bSwgcHJvdG9DYWxsRnJhbWUpCisgICAgY2FsbFRvSmF2YVNj
cmlwdEVwaWxvZ3VlKCkKKyAgICByZXQKIAorLnN0YWNrSGVpZ2h0T0s6CisgICAgbW92ZSB0ZW1w
MSwgc3AKICAgICBtb3ZlIDUsIHRlbXAxCiAKIC5jb3B5SGVhZGVyTG9vcDoKICAgICBzdWJpIDEs
IHRlbXAxCi0gICAgbG9hZHAgW3Byb3RvQ2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRlbXAzCi0gICAg
c3RvcmVwIHRlbXAzLCBDb2RlQmxvY2tbY2ZyLCB0ZW1wMSwgOF0KLSAgICBsb2FkcCA0W3Byb3Rv
Q2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAzLCBDb2RlQmxvY2sr
NFtjZnIsIHRlbXAxLCA4XQorICAgIGxvYWRpIFRhZ09mZnNldFtwcm90b0NhbGxGcmFtZSwgdGVt
cDEsIDhdLCB0ZW1wMworICAgIHN0b3JlaSB0ZW1wMywgVGFnT2Zmc2V0ICsgQ29kZUJsb2NrW3Nw
LCB0ZW1wMSwgOF0KKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W3Byb3RvQ2FsbEZyYW1lLCB0ZW1w
MSwgOF0sIHRlbXAzCisgICAgc3RvcmVpIHRlbXAzLCBQYXlsb2FkT2Zmc2V0ICsgQ29kZUJsb2Nr
W3NwLCB0ZW1wMSwgOF0KICAgICBidGlueiB0ZW1wMSwgLmNvcHlIZWFkZXJMb29wCiAKICAgICBs
b2FkaSBQcm90b0NhbGxGcmFtZTo6YXJnQ291bnRBbmRDb2RlT3JpZ2luVmFsdWVbcHJvdG9DYWxs
RnJhbWVdLCB0ZW1wMgpAQCAtMjg4LDEyICsyNzYsMTAgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2Ny
aXB0KG1ha2VDYWxsLCBkb1JldAogICAgIHN1YmkgMSwgdGVtcDMKIAogICAgIGJpZXEgdGVtcDIs
IHRlbXAzLCAuY29weUFyZ3MKLSAgICBtb3ZlIDAsIHRlbXAxCi0gICAgbW92ZSBVbmRlZmluZWRU
YWcsIHRlbXA0CiAuZmlsbEV4dHJhQXJnc0xvb3A6CiAgICAgc3ViaSAxLCB0ZW1wMwotICAgIHN0
b3JlcCB0ZW1wMSwgVGhpc0FyZ3VtZW50T2Zmc2V0KzgrUGF5bG9hZE9mZnNldFtjZnIsIHRlbXAz
LCA4XQotICAgIHN0b3JlcCB0ZW1wNCwgVGhpc0FyZ3VtZW50T2Zmc2V0KzgrVGFnT2Zmc2V0W2Nm
ciwgdGVtcDMsIDhdCisgICAgc3RvcmVpIFVuZGVmaW5lZFRhZywgVGhpc0FyZ3VtZW50T2Zmc2V0
ICsgOCArIFRhZ09mZnNldFtzcCwgdGVtcDMsIDhdCisgICAgc3RvcmVpIDAsIFRoaXNBcmd1bWVu
dE9mZnNldCArIDggKyBQYXlsb2FkT2Zmc2V0W3NwLCB0ZW1wMywgOF0KICAgICBiaW5lcSB0ZW1w
MiwgdGVtcDMsIC5maWxsRXh0cmFBcmdzTG9vcAogCiAuY29weUFyZ3M6CkBAIC0zMDIsNTIgKzI4
OCw4NyBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0CiAuY29weUFy
Z3NMb29wOgogICAgIGJ0aXogdGVtcDIsIC5jb3B5QXJnc0RvbmUKICAgICBzdWJpIDEsIHRlbXAy
Ci0gICAgbG9hZHAgUGF5bG9hZE9mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMwotICAgIGxv
YWRwIFRhZ09mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wNAotICAgIHN0b3JlcCB0ZW1wMywg
VGhpc0FyZ3VtZW50T2Zmc2V0KzgrUGF5bG9hZE9mZnNldFtjZnIsIHRlbXAyLCA4XQotICAgIHN0
b3JlcCB0ZW1wNCwgVGhpc0FyZ3VtZW50T2Zmc2V0KzgrVGFnT2Zmc2V0W2NmciwgdGVtcDIsIDhd
CisgICAgbG9hZGkgVGFnT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCisgICAgc3RvcmVp
IHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgVGFnT2Zmc2V0W3NwLCB0ZW1wMiwgOF0K
KyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCisgICAgc3Rv
cmVpIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgUGF5bG9hZE9mZnNldFtzcCwgdGVt
cDIsIDhdCiAgICAgam1wIC5jb3B5QXJnc0xvb3AKIAogLmNvcHlBcmdzRG9uZToKLSAgICBpZiBY
ODYKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1NwYWNlKzI0W3NwXSwgdm1Ub3BDYWxsRnJhbWUK
LSAgICBlbmQKLSAgICBzdG9yZXAgY2ZyLCBbdm1Ub3BDYWxsRnJhbWVdCisgICAgc3RvcmVwIHNw
LCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXQogCi0gICAgbWFrZUNhbGwoZW50cnksIHRlbXAxKQorICAg
IG1ha2VDYWxsKGVudHJ5LCB0ZW1wMSwgdGVtcDIpCiAKICAgICBicGVxIENvZGVCbG9ja1tjZnJd
LCAxLCAuY2FsbGVlRnJhbWVQb3BwZWQKICAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIK
IAogLmNhbGxlZUZyYW1lUG9wcGVkOgotICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0ZW1wMyAjIFZN
LnRvcENhbGxGcmFtZQotICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdGVtcDQKLSAgICBzdG9y
ZXAgdGVtcDQsIFt0ZW1wM10KKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGVtcDMgIyBWTQorICAg
IGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdGVtcDQgIyBwcmV2aW91cyB0b3BDYWxsRnJhbWUKKyAg
ICBzdG9yZXAgdGVtcDQsIFZNOjp0b3BDYWxsRnJhbWVbdGVtcDNdCiAKLSAgICBkb1JldHVybihl
eHRyYVN0YWNrU3BhY2UpCisgICAgY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKKyAgICByZXQK
IGVuZAogCi1tYWNybyBtYWtlSmF2YVNjcmlwdENhbGwoZW50cnksIHRlbXApCi0gICAgY2FsbCBl
bnRyeQorbWFjcm8gbWFrZUphdmFTY3JpcHRDYWxsKGVudHJ5LCB0ZW1wLCB1bnVzZWQpCisgICAg
YWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdu
bWVudCh0MiwgMHhiYWQwZGMwMikKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgY2xvb3BDYWxsSlNG
dW5jdGlvbiBlbnRyeQorICAgIGVsc2UKKyAgICAgICAgY2FsbCBlbnRyeQorICAgIGVuZAorICAg
IGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGJhZDBkYzAzKQorICAgIHN1YnAgQ2Fs
bGVyRnJhbWVBbmRQQ1NpemUsIHNwCiBlbmQKIAotbWFjcm8gbWFrZUhvc3RGdW5jdGlvbkNhbGwo
ZW50cnksIHRlbXApCi0gICAgbW92ZSBlbnRyeSwgdGVtcAotICAgIGlmIFg4NgotICAgICAgICAj
IFB1dCBjZnIgb24gc3RhY2sgYXMgYXJnMCwgYWxzbyBwdXQgaXQgaW4gZWN4IGZvciAiZmFzdGNh
bGwiIHRhcmdldHMKLSAgICAgICAgcG9rZSBjZnIsIDAKLSAgICAgICAgbW92ZSBjZnIsIHQyCitt
YWNybyBtYWtlSG9zdEZ1bmN0aW9uQ2FsbChlbnRyeSwgdGVtcDEsIHRlbXAyKQorICAgIG1vdmUg
ZW50cnksIHRlbXAxCisgICAgaWYgQ19MT09QCisgICAgICAgIG1vdmUgc3AsIGEwCisgICAgICAg
IHN0b3JlcCBjZnIsIFtzcF0KKyAgICAgICAgc3RvcmVwIGxyLCBQdHJTaXplW3NwXQorICAgICAg
ICBjbG9vcENhbGxOYXRpdmUgdGVtcDEKICAgICBlbHNlCi0gICAgICAgIG1vdmUgY2ZyLCBhMAor
ICAgICAgICBpZiBYODYKKyAgICAgICAgICAgICMgUHV0IGNhbGxlZSBmcmFtZSBwb2ludGVyIG9u
IHN0YWNrIGFzIGFyZzAsIGFsc28gcHV0IGl0IGluIGVjeCBmb3IgImZhc3RjYWxsIiB0YXJnZXRz
CisgICAgICAgICAgICBtb3ZlIDAsIHRlbXAyCisgICAgICAgICAgICBtb3ZlIHRlbXAyLCA0W3Nw
XSAjIHB1dCAwIGluIFJldHVyblBDCisgICAgICAgICAgICBtb3ZlIGNmciwgW3NwXSAjIHB1dCBj
YWxsZXIgZnJhbWUgcG9pbnRlciBpbnRvIGNhbGxlZSBmcmFtZSBzaW5jZSBjYWxsZWUgcHJvbG9n
dWUgY2FuJ3QKKyAgICAgICAgICAgIG1vdmUgc3AsIHQyICMgdDIgaXMgZWN4CisgICAgICAgICAg
ICBwdXNoIHRlbXAyICMgUHVzaCBkdW1teSBhcmcxCisgICAgICAgICAgICBwdXNoIHQyCisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIG1vdmUgc3AsIGEwCisgICAgICAgICAgICBhZGRwIENhbGxl
ckZyYW1lQW5kUENTaXplLCBzcAorICAgICAgICBlbmQKKyAgICAgICAgY2FsbCB0ZW1wMQorICAg
ICAgICBpZiBYODYKKyAgICAgICAgICAgIGFkZHAgOCwgc3AKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgc3VicCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKKyAgICAgICAgZW5kCiAgICAgZW5k
Ci0gICAgY2FsbCB0ZW1wCiBlbmQKIAotbWFjcm8gZG9SZXR1cm5Gcm9tSmF2YVNjcmlwdChleHRy
YVN0YWNrU3BhY2UpCi1fcmV0dXJuRnJvbUphdmFTY3JpcHQ6Ci0gICAgZnVuY3Rpb25FcGlsb2d1
ZShleHRyYVN0YWNrU3BhY2UpCitfaGFuZGxlVW5jYXVnaHRFeGNlcHRpb246CisgICAgbG9hZHAg
U2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDMKKyAgICBhbmRwIE1hcmtlZEJsb2Nr
TWFzaywgdDMKKyAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92
bVt0M10sIHQzCisgICAgbG9hZHAgVk06OmNhbGxGcmFtZUZvclRocm93W3QzXSwgY2ZyCisKKyAg
ICAjIFNvIGZhciwgd2UndmUgdW53b3VuZCB0aGUgc3RhY2sgdG8gdGhlIGZyYW1lIGp1c3QgYmVs
b3cgdGhlIHNlbnRpbmVsIGZyYW1lLgorICAgICMgV2UgbmVlZCB0byBwb3AgdG8gdGhlIHNlbnRp
bmVsIGZyYW1lIGFuZCBkbyB0aGUgbmVjZXNzYXJ5IGNsZWFuIHVwIGZvcgorICAgICMgcmV0dXJu
aW5nIHRvIHRoZSBjYWxsZXIgQyBmcmFtZS4KKyAgICBsb2FkcCBDYWxsZXJGcmFtZSArIFBheWxv
YWRPZmZzZXRbY2ZyXSwgY2ZyCisKKyAgICBsb2FkcCBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nm
cl0sIHQzICMgVk0KKyAgICBsb2FkcCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0
NSAjIHByZXZpb3VzIHRvcENhbGxGcmFtZQorICAgIHN0b3JlcCB0NSwgVk06OnRvcENhbGxGcmFt
ZVt0M10KKworICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCiAgICAgcmV0Ci1lbmQKIAog
bWFjcm8gZG9SZXR1cm5Gcm9tSG9zdEZ1bmN0aW9uKGV4dHJhU3RhY2tTcGFjZSkKICAgICBmdW5j
dGlvbkVwaWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKQEAgLTM3NywxNCArMzk4LDEyIEBAIGVuZAog
bWFjcm8gY2FsbENhbGxTbG93UGF0aChzbG93UGF0aCwgYWN0aW9uKQogICAgIHN0b3JlcCBQQywg
QXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCiAgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIs
IFBDKQotICAgIG1vdmUgdDEsIGNmcgogICAgIGFjdGlvbih0MCkKIGVuZAogCiBtYWNybyBjYWxs
V2F0Y2hkb2dUaW1lckhhbmRsZXIodGhyb3dIYW5kbGVyKQogICAgIHN0b3JlaSBQQywgQXJndW1l
bnRDb3VudCArIFRhZ09mZnNldFtjZnJdCiAgICAgY0NhbGwyKF9sbGludF9zbG93X3BhdGhfaGFu
ZGxlX3dhdGNoZG9nX3RpbWVyLCBjZnIsIFBDKQotICAgIG1vdmUgdDEsIGNmcgogICAgIGJ0cG56
IHQwLCB0aHJvd0hhbmRsZXIKICAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nm
cl0sIFBDCiBlbmQKQEAgLTM5NSw4ICs0MTQsOCBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9y
TG9vcCgpCiAgICAgICAgIG1hY3JvICgpCiAgICAgICAgICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50
Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgICAgICAgICAgY0NhbGwyKF9sbGludF9sb29wX29z
ciwgY2ZyLCBQQykKLSAgICAgICAgICAgIG1vdmUgdDEsIGNmcgogICAgICAgICAgICAgYnRweiB0
MCwgLnJlY292ZXIKKyAgICAgICAgICAgIG1vdmUgdDEsIHNwCiAgICAgICAgICAgICBqbXAgdDAK
ICAgICAgICAgLnJlY292ZXI6CiAgICAgICAgICAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFn
T2Zmc2V0W2Nmcl0sIFBDCkBAIC01NTMsMTggKzU3MiwzNCBAQCBlbmQKICMgRW50cnlwb2ludHMg
aW50byB0aGUgaW50ZXJwcmV0ZXIKIAogIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQx
LCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLW1hY3JvIGZ1bmN0aW9u
QXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKK21hY3JvIGZ1bmN0aW9uQXJpdHlDaGVj
ayhkb25lTGFiZWwsIHNsb3dQYXRoKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVu
dENvdW50W2Nmcl0sIHQwCiAgICAgYmlhZXEgdDAsIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJz
W3QxXSwgZG9uZUxhYmVsCi0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykgICAjIFRoaXMg
c2xvd19wYXRoIGhhcyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAh
PSAwID0+IGVycm9yCi0gICAgYnRpeiB0MCwgLmlzQXJpdHlGaXh1cE5lZWRlZAorICAgIGNDYWxs
MihzbG93UGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd1BhdGggaGFzIGEgc2ltcGxlIHByb3Rv
Y29sOiB0MCA9IDAgPT4gbm8gZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IKKyAgICBidGl6IHQwLCAu
bm9FcnJvcgogICAgIG1vdmUgdDEsIGNmciAgICMgdDEgY29udGFpbnMgY2FsbGVyIGZyYW1lCiAg
ICAgam1wIF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCiAKLS5pc0FyaXR5
Rml4dXBOZWVkZWQ6Cisubm9FcnJvcjoKKyAgICAjIHQxIHBvaW50cyB0byBBcml0eUNoZWNrRGF0
YS4KKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjp0aHVua1RvQ2Fs
bFt0MV0sIHQyCisgICAgYnRweiB0MiwgLnByb2NlZWRJbmxpbmUKKyAgICAKKyAgICBsb2FkcCBD
b21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpyZXR1cm5QQ1t0MV0sIHQ1CisgICAgbG9h
ZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cGFkZGVkU3RhY2tTcGFjZVt0MV0s
IHQwCisgICAgY2FsbCB0MgorICAgIGlmIEFTU0VSVF9FTkFCTEVECisgICAgICAgIGxvYWRwIFJl
dHVyblBDW2Nmcl0sIHQwCisgICAgICAgIGxvYWRwIFt0MF0sIHQwCisgICAgZW5kCisgICAgam1w
IC5jb250aW51ZQorCisucHJvY2VlZElubGluZToKKyAgICBsb2FkaSBDb21tb25TbG93UGF0aHM6
OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3QxXSwgdDEKICAgICBidGl6IHQxLCAu
Y29udGludWUKIAotICAgIC8vIE1vdmUgZnJhbWUgdXAgInQxIiBzbG90cworICAgIC8vIE1vdmUg
ZnJhbWUgdXAgInQxICogMiIgc2xvdHMKKyAgICBsc2hpZnRwIDEsIHQxCiAgICAgbmVnaSB0MQog
ICAgIG1vdmUgY2ZyLCB0MwogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50
W2Nmcl0sIHQyCkBAIC01ODksNiArNjI0LDcgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRv
bmVMYWJlbCwgc2xvdwogCiAgICAgbHNoaWZ0cCAzLCB0MQogICAgIGFkZHAgdDEsIGNmcgorICAg
IGFkZHAgdDEsIHNwCiAuY29udGludWU6CiAgICAgIyBSZWxvYWQgQ29kZUJsb2NrIGFuZCBQQywg
c2luY2UgdGhlIHNsb3dfcGF0aCBjbG9iYmVyZWQgaXQuCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIHQxCkBAIC01OTYsNyArNjMyLDYgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVM
YWJlbCwgc2xvdwogICAgIGptcCBkb25lTGFiZWwKIGVuZAogCi0KIG1hY3JvIGJyYW5jaElmRXhj
ZXB0aW9uKGxhYmVsKQogICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICBhbmRwIE1h
cmtlZEJsb2NrTWFzaywgdDMKQEAgLTYxMSw2ICs2NDYsNyBAQCBlbmQKIAogX2xsaW50X29wX2Vu
dGVyOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVu
dCh0MiwgMHhkZWFkMDBlMSkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIgICAgICAgICAg
ICAgICAgLy8gdDI8Q29kZUJsb2NrPiA9IGNmci5Db2RlQmxvY2sKICAgICBsb2FkaSBDb2RlQmxv
Y2s6Om1fbnVtVmFyc1t0Ml0sIHQyICAgICAgLy8gdDI8c2l6ZV90PiA9IHQyPENvZGVCbG9jaz4u
bV9udW1WYXJzCiAgICAgYnRpeiB0MiwgLm9wRW50ZXJEb25lCkBAIC0xOTIwLDEyICsxOTU2LDEx
IEBAIG1hY3JvIGRvQ2FsbChzbG93UGF0aCkKICAgICBzdG9yZWkgdDAsIFNjb3BlQ2hhaW4gKyBQ
YXlsb2FkT2Zmc2V0W3QzXQogICAgIGxvYWRpIDEyW1BDXSwgdDIKICAgICBzdG9yZWkgUEMsIEFy
Z3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQotICAgIHN0b3JlcCBjZnIsIENhbGxlckZyYW1l
W3QzXQogICAgIHN0b3JlaSB0MiwgQXJndW1lbnRDb3VudCArIFBheWxvYWRPZmZzZXRbdDNdCiAg
ICAgc3RvcmVpIENlbGxUYWcsIENhbGxlZSArIFRhZ09mZnNldFt0M10KICAgICBzdG9yZWkgQ2Vs
bFRhZywgU2NvcGVDaGFpbiArIFRhZ09mZnNldFt0M10KLSAgICBtb3ZlIHQzLCBjZnIKLSAgICBj
YWxsVGFyZ2V0RnVuY3Rpb24odDEpCisgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgdDMK
KyAgICBjYWxsVGFyZ2V0RnVuY3Rpb24odDEsIHQzKQogCiAub3BDYWxsU2xvdzoKICAgICBzbG93
UGF0aEZvckNhbGwoc2xvd1BhdGgpCkBAIC0yMDM5LDEwICsyMDc0LDEyIEBAIF9sbGludF9vcF9j
YXRjaDoKICAgICAjIHRoZSBpbnRlcnByZXRlcidzIHRocm93IHRyYW1wb2xpbmUgKHNlZSBfbGxp
bnRfdGhyb3dfdHJhbXBvbGluZSkuCiAgICAgIyBUaGUgdGhyb3dpbmcgY29kZSBtdXN0IGhhdmUg
a25vd24gdGhhdCB3ZSB3ZXJlIHRocm93aW5nIHRvIHRoZSBpbnRlcnByZXRlciwKICAgICAjIGFu
ZCBoYXZlIHNldCBWTTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93LgotICAgIGxvYWRwIFNj
b3BlQ2hhaW5bY2ZyXSwgdDMKKyAgICBsb2FkcCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtj
ZnJdLCB0MwogICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgIGxvYWRwIE1hcmtlZEJs
b2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKICAgICBsb2FkcCBWTTo6Y2Fs
bEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxs
KCkKKwogICAgIGxvYWRpIFZNOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3dbdDNdLCBQQwog
ICAgIGxvYWRpIFZNOjptX2V4Y2VwdGlvbiArIFBheWxvYWRPZmZzZXRbdDNdLCB0MAogICAgIGxv
YWRpIFZNOjptX2V4Y2VwdGlvbiArIFRhZ09mZnNldFt0M10sIHQxCkBAIC0yMTE2LDc0ICsyMTUz
LDYyIEBAIF9sbGludF90aHJvd19kdXJpbmdfY2FsbF90cmFtcG9saW5lOgogCiAKIG1hY3JvIG5h
dGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQorCisgICAgZnVu
Y3Rpb25Qcm9sb2d1ZSgpCiAgICAgc3RvcmVwIDAsIENvZGVCbG9ja1tjZnJdCiAgICAgbG9hZHAg
Q2FsbGVyRnJhbWVbY2ZyXSwgdDAKICAgICBsb2FkaSBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNl
dFt0MF0sIHQxCiAgICAgc3RvcmVpIENlbGxUYWcsIFNjb3BlQ2hhaW4gKyBUYWdPZmZzZXRbY2Zy
XQogICAgIHN0b3JlaSB0MSwgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2ZyXQogICAgIGlm
IFg4NgotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFy
a2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsg
V2Vha1NldDo6bV92bVt0M10sIHQzCisgICAgICAgIHN1YnAgOCwgc3AgIyBhbGlnbiBzdGFjayBw
b2ludGVyCisgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MQorICAgICAgICBsb2FkcCBN
YXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0MV0sIHQzCiAgICAgICAgIHN0
b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0gICAgICAgIHBlZWsgMCwgdDEKLSAgICAg
ICAgc3RvcmVwIHQxLCBSZXR1cm5QQ1tjZnJdCiAgICAgICAgIG1vdmUgY2ZyLCB0MiAgIyB0MiA9
IGVjeAotICAgICAgICBzdWJwIDE2IC0gNCwgc3AKKyAgICAgICAgc3RvcmVwIHQyLCBbc3BdCiAg
ICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKICAgICAgICAgbG9h
ZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKLSAgICAgICAgbW92ZSB0MCwgY2Zy
CisgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQwMDAxKQogICAg
ICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotICAgICAgICBhZGRwIDE2
IC0gNCwgc3AKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRw
IE1hcmtlZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1Nl
dCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12
N19UUkFESVRJT05BTCBvciBNSVBTIG9yIFNINAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nm
cl0sIHQzCiAgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2FkcCBN
YXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgICAgIHN0
b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0gICAgICAgIG1vdmUgdDAsIHQyCi0gICAg
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKLSAgICAgICAgc3RvcmVwIHQz
LCBSZXR1cm5QQ1tjZnJdCi0gICAgICAgIG1vdmUgY2ZyLCB0MAotICAgICAgICBsb2FkaSBDYWxs
ZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCi0gICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1f
ZXhlY3V0YWJsZVt0MV0sIHQxCi0gICAgICAgIG1vdmUgdDIsIGNmcgorICAgICAgICBhZGRwIDgs
IHNwCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIENfTE9P
UCBvciBNSVBTIG9yIFNINAorICAgICAgICBzdWJwIDgsIHNwICMgYWxpZ24gc3RhY2sgcG9pbnRl
cgorICAgICAgICAjIHQxIGFscmVhZHkgY29udGFpbnMgdGhlIFNjb3BlQ2hhaW4uCisgICAgICAg
IGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MQorICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93
ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0MV0sIHQxCisgICAgICAgIHN0b3JlcCBjZnIsIFZNOjp0
b3BDYWxsRnJhbWVbdDFdCiAgICAgICAgIGlmIE1JUFMgb3IgU0g0Ci0gICAgICAgICAgICBtb3Zl
IHQwLCBhMAorICAgICAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG1vdmUgY2ZyLCB0MAogICAgICAgICBlbmQKLSAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zm
c2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1
cm4odDMpCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBN
YXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQg
KyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICBlbHNpZiBDX0xPT1AKLSAgICAgICAgbG9hZHAg
U2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKLSAg
ICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0
MwotICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQotICAgICAgICBtb3Zl
IHQwLCB0MgotICAgICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCi0gICAg
ICAgIHN0b3JlcCB0MywgUmV0dXJuUENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDAKICAgICAg
ICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQogICAgICAgICBsb2FkcCBK
U0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQotICAgICAgICBtb3ZlIHQyLCBjZnIKLSAg
ICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotICAg
ICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKKyAgICAgICAgY2hlY2tT
dGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCisgICAgICAgIGlmIENfTE9PUAor
ICAgICAgICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3Qx
XQorICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0
aW9uW3QxXQorICAgICAgICBlbmQKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0Mwog
ICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICAgICAgbG9hZHAgTWFya2VkQmxv
Y2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MworICAgICAgICBhZGRwIDgsIHNw
CiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZAotICAgIGJpbmVxIFZNOjptX2V4Y2Vw
dGlvbiArIFRhZ09mZnNldFt0M10sIEVtcHR5VmFsdWVUYWcsIC5leGNlcHRpb24KKyAgICAKKyAg
ICBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICBiaW5lcSBWTTo6bV9leGNlcHRpb24gKyBUYWdPZmZz
ZXRbdDNdLCBFbXB0eVZhbHVlVGFnLCAuaGFuZGxlRXhjZXB0aW9uCiAgICAgcmV0Ci0uZXhjZXB0
aW9uOgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MSkgIyBUaGlzIGlzIHJl
YWxseSBvbmx5IG5lZWRlZCBvbiBYODYKLSAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0sIFBDCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF90aHJvd19mcm9tX25hdGl2ZV9j
YWxsKQorCisuaGFuZGxlRXhjZXB0aW9uOgorICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJh
bWVbdDNdCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCiAgICAgam1wIF9sbGlu
dF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCiBlbmQKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20J
KHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Miw5ICs1
MiwxMCBAQCBtYWNybyBkaXNwYXRjaEFmdGVyQ2FsbCgpCiBlbmQKIAogbWFjcm8gY0NhbGwyKGZ1
bmN0aW9uLCBhcmcxLCBhcmcyKQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQ0LCAw
eGJhZDBjMDAyKQogICAgIGlmIFg4Nl82NAotICAgICAgICBtb3ZlIGFyZzEsIHQ1Ci0gICAgICAg
IG1vdmUgYXJnMiwgdDQKKyAgICAgICAgbW92ZSBhcmcxLCB0NAorICAgICAgICBtb3ZlIGFyZzIs
IHQ1CiAgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBBUk02NAogICAgICAgICBtb3Zl
IGFyZzEsIHQwCkBAIC02OSw5ICs3MCwxMCBAQCBlbmQKIAogIyBUaGlzIGJhcmVseSB3b3Jrcy4g
YXJnMyBhbmQgYXJnNCBzaG91bGQgcHJvYmFibHkgYmUgaW1tZWRpYXRlcy4KIG1hY3JvIGNDYWxs
NChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkKKyAgICBjaGVja1N0YWNrUG9pbnRl
ckFsaWdubWVudCh0NCwgMHhiYWQwYzAwNCkKICAgICBpZiBYODZfNjQKLSAgICAgICAgbW92ZSBh
cmcxLCB0NQotICAgICAgICBtb3ZlIGFyZzIsIHQ0CisgICAgICAgIG1vdmUgYXJnMSwgdDQKKyAg
ICAgICAgbW92ZSBhcmcyLCB0NQogICAgICAgICBtb3ZlIGFyZzMsIHQxCiAgICAgICAgIG1vdmUg
YXJnNCwgdDIKICAgICAgICAgY2FsbCBmdW5jdGlvbgpAQCAtODgsNjYgKzkwLDQ5IEBAIG1hY3Jv
IGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywKICAgICBlbmQKIGVuZAogCi1tYWNy
byBmdW5jdGlvblByb2xvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKK21hY3JvIGRvQ2FsbFRvSmF2YVNj
cmlwdChtYWtlQ2FsbCkKICAgICBpZiBYODZfNjQKLSAgICAgICAgcHVzaCBjZnIKLSAgICAgICAg
bW92ZSBzcCwgY2ZyCi0gICAgZWxzaWYgQVJNNjQKLSAgICAgICAgcHVzaExSQW5kRlAKLSAgICBl
bmQKLSAgICBwdXNoQ2FsbGVlU2F2ZXMKLSAgICBpZiBYODZfNjQKLSAgICAgICAgc3VicCBleHRy
YVN0YWNrU3BhY2UsIHNwCi0gICAgZW5kCi1lbmQKLQotbWFjcm8gZnVuY3Rpb25FcGlsb2d1ZShl
eHRyYVN0YWNrU3BhY2UpCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIGFkZHAgZXh0cmFTdGFja1Nw
YWNlLCBzcAotICAgIGVuZAotICAgIHBvcENhbGxlZVNhdmVzCi0gICAgaWYgWDg2XzY0Ci0gICAg
ICAgIHBvcCBjZnIKLSAgICBlbHNpZiBBUk02NAotICAgICAgICBwb3BMUkFuZEZQCi0gICAgZW5k
Ci1lbmQKLQotbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldHVybikKLSAg
ICBpZiBYODZfNjQKLSAgICAgICAgY29uc3QgZW50cnkgPSB0NQotICAgICAgICBjb25zdCB2bVRv
cENhbGxGcmFtZSA9IHQ0CisgICAgICAgIGNvbnN0IGVudHJ5ID0gdDQKKyAgICAgICAgY29uc3Qg
dm0gPSB0NQogICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IHQxCi0gICAgICAgIGNvbnN0
IHRvcE9mU3RhY2sgPSB0MgogCi0gICAgICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDgKICAg
ICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MAogICAgICAgICBjb25zdCBwcmV2aW91c1BDID0g
dDYKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MAogICAgICAgICBjb25zdCB0ZW1wMiA9IHQzCiAg
ICAgICAgIGNvbnN0IHRlbXAzID0gdDYKLSAgICBlbHNpZiBBUk02NAorICAgIGVsc2lmIEFSTTY0
IG9yIENfTE9PUAogICAgICAgICBjb25zdCBlbnRyeSA9IGEwCi0gICAgICAgIGNvbnN0IHZtVG9w
Q2FsbEZyYW1lID0gYTEKKyAgICAgICAgY29uc3Qgdm0gPSBhMQogICAgICAgICBjb25zdCBwcm90
b0NhbGxGcmFtZSA9IGEyCi0gICAgICAgIGNvbnN0IHRvcE9mU3RhY2sgPSBhMwogCi0gICAgICAg
IGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDAKLSAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0
NAorICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQ1CiAgICAgICAgIGNvbnN0IHByZXZpb3Vz
UEMgPSBscgogICAgICAgICBjb25zdCB0ZW1wMSA9IHQzCi0gICAgICAgIGNvbnN0IHRlbXAyID0g
dDUKKyAgICAgICAgY29uc3QgdGVtcDIgPSB0NAogICAgICAgICBjb25zdCB0ZW1wMyA9IHQ2CiAg
ICAgZW5kCiAKLSAgICBmdW5jdGlvblByb2xvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKKyAgICBjYWxs
VG9KYXZhU2NyaXB0UHJvbG9ndWUoKQorCisgICAgaWYgWDg2XzY0CisgICAgICAgIGxvYWRwIDcq
OFtzcF0sIHByZXZpb3VzUEMKKyAgICAgICAgbW92ZSA2Kjhbc3BdLCBwcmV2aW91c0NGUgorICAg
IGVsc2lmIEFSTTY0CisgICAgICAgIG1vdmUgY2ZyLCBwcmV2aW91c0NGUgorICAgIGVuZAorCisg
ICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDIsIDB4YmFkMGRjMDEpCiAKLSAgICBt
b3ZlIHRvcE9mU3RhY2ssIGNmcgotICAgIHN1YnAgKENhbGxGcmFtZUhlYWRlclNsb3RzLTEpKjgs
IGNmcgorICAgICMgVGhlIHN0YWNrIHJlc2VydmVkIHpvbmUgZW5zdXJlcyB0aGF0IHdlIGhhdmUg
YWRlcXVhdGUgc3BhY2UgZm9yIHRoZQorICAgICMgVk1FbnRyeVNlbnRpbmVsRnJhbWUuIFByb2Nl
ZWQgd2l0aCBhbGxvY2F0aW5nIGFuZCBpbml0aWFsaXppbmcgdGhlCisgICAgIyBzZW50aW5lbCBm
cmFtZS4KKyAgICBtb3ZlIHNwLCBjZnIKKyAgICBzdWJwIENhbGxGcmFtZUhlYWRlclNsb3RzICog
OCwgY2ZyCiAgICAgc3RvcmVwIDAsIEFyZ3VtZW50Q291bnRbY2ZyXQotICAgIHN0b3JlcCB2bVRv
cENhbGxGcmFtZSwgQ2FsbGVlW2Nmcl0KLSAgICBsb2FkcCBbdm1Ub3BDYWxsRnJhbWVdLCB0ZW1w
MQotICAgIHN0b3JlcCB0ZW1wMSwgU2NvcGVDaGFpbltjZnJdCisgICAgc3RvcmVwIHZtLCBDYWxs
ZWVbY2ZyXQorICAgIGxvYWRwIFZNOjp0b3BDYWxsRnJhbWVbdm1dLCB0ZW1wMgorICAgIHN0b3Jl
cCB0ZW1wMiwgU2NvcGVDaGFpbltjZnJdCiAgICAgc3RvcmVwIDEsIENvZGVCbG9ja1tjZnJdCiAg
ICAgaWYgWDg2XzY0CiAgICAgICAgIGxvYWRwIDcqOFtzcF0sIHByZXZpb3VzUEMKQEAgLTE1NSwy
MCArMTQwLDQ1IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXQKICAg
ICBlbmQKICAgICBzdG9yZXAgcHJldmlvdXNQQywgUmV0dXJuUENbY2ZyXQogICAgIHN0b3JlcCBw
cmV2aW91c0NGUiwgQ2FsbGVyRnJhbWVbY2ZyXQotICAgIG1vdmUgY2ZyLCB0ZW1wMQogCiAgICAg
bG9hZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2FsbEZyYW1lXSwgdGVt
cDIKICAgICBhZGRwIENhbGxGcmFtZUhlYWRlclNsb3RzLCB0ZW1wMiwgdGVtcDIKICAgICBsc2hp
ZnRwIDMsIHRlbXAyCi0gICAgc3VicCB0ZW1wMiwgY2ZyCi0gICAgc3RvcmVwIHRlbXAxLCBDYWxs
ZXJGcmFtZVtjZnJdCisgICAgc3VicCBjZnIsIHRlbXAyLCB0ZW1wMQogCisgICAgIyBFbnN1cmUg
dGhhdCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlvbmFsIHN0YWNrIGNhcGFjaXR5IGZvciB0aGUgaW5j
b21pbmcgYXJncywKKyAgICAjIGFuZCB0aGUgZnJhbWUgZm9yIHRoZSBKUyBjb2RlIHdlJ3JlIGV4
ZWN1dGluZy4gV2UgbmVlZCB0byBkbyB0aGlzIGNoZWNrCisgICAgIyBiZWZvcmUgd2Ugc3RhcnQg
Y29weWluZyB0aGUgYXJncyBmcm9tIHRoZSBwcm90b0NhbGxGcmFtZSBiZWxvdy4KKyAgICBicGFl
cSB0ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0YWNrSGVpZ2h0T0sKKworICAgIG1v
dmUgY2ZyLCBzcAorCisgICAgaWYgQ19MT09QCisgICAgICAgIG1vdmUgZW50cnksIHRlbXAyCisg
ICAgICAgIG1vdmUgdm0sIHRlbXAzCisgICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIF9sbGludF9z
dGFja19jaGVja19hdF92bV9lbnRyeSwgdm0sIHRlbXAxCisgICAgICAgIGJwZXEgdDAsIDAsIC5z
dGFja0NoZWNrRmFpbGVkCisgICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5CisgICAgICAgIG1vdmUg
dGVtcDMsIHZtCisgICAgICAgIGptcCAuc3RhY2tIZWlnaHRPSworCisuc3RhY2tDaGVja0ZhaWxl
ZDoKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAgICAgbW92ZSB0ZW1wMywgdm0KKyAg
ICBlbmQKKworICAgIGNDYWxsMihfbGxpbnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IsIHZt
LCBwcm90b0NhbGxGcmFtZSkKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQorICAgIHJl
dAorCisuc3RhY2tIZWlnaHRPSzoKKyAgICBtb3ZlIHRlbXAxLCBzcAogICAgIG1vdmUgNSwgdGVt
cDEKIAogLmNvcHlIZWFkZXJMb29wOgogICAgIHN1YmkgMSwgdGVtcDEKLSAgICBsb2FkcCBbcHJv
dG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIENvZGVCbG9j
a1tjZnIsIHRlbXAxLCA4XQorICAgIGxvYWRxIFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0
ZW1wMworICAgIHN0b3JlcSB0ZW1wMywgQ29kZUJsb2NrW3NwLCB0ZW1wMSwgOF0KICAgICBidGlu
eiB0ZW1wMSwgLmNvcHlIZWFkZXJMb29wCiAKICAgICBsb2FkaSBQcm90b0NhbGxGcmFtZTo6YXJn
Q291bnRBbmRDb2RlT3JpZ2luVmFsdWVbcHJvdG9DYWxsRnJhbWVdLCB0ZW1wMgpAQCAtMTgwLDcg
KzE5MCw3IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXQKICAgICBt
b3ZlIFZhbHVlVW5kZWZpbmVkLCB0ZW1wMQogLmZpbGxFeHRyYUFyZ3NMb29wOgogICAgIHN1Ymkg
MSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDEsIFRoaXNBcmd1bWVudE9mZnNldCs4W2NmciwgdGVt
cDMsIDhdCisgICAgc3RvcmVxIHRlbXAxLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4W3NwLCB0ZW1w
MywgOF0KICAgICBiaW5lcSB0ZW1wMiwgdGVtcDMsIC5maWxsRXh0cmFBcmdzTG9vcAogCiAuY29w
eUFyZ3M6CkBAIC0xODksNTMgKzE5OSw5NyBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFr
ZUNhbGwsIGRvUmV0CiAuY29weUFyZ3NMb29wOgogICAgIGJ0aXogdGVtcDIsIC5jb3B5QXJnc0Rv
bmUKICAgICBzdWJpIDEsIHRlbXAyCi0gICAgbG9hZHAgW3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAz
Ci0gICAgc3RvcmVwIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQrOFtjZnIsIHRlbXAyLCA4XQor
ICAgIGxvYWRxIFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMworICAgIHN0b3JlcSB0ZW1wMywgVGhp
c0FyZ3VtZW50T2Zmc2V0ICsgOFtzcCwgdGVtcDIsIDhdCiAgICAgam1wIC5jb3B5QXJnc0xvb3AK
IAogLmNvcHlBcmdzRG9uZToKLSAgICBzdG9yZXAgY2ZyLCBbdm1Ub3BDYWxsRnJhbWVdCisgICAg
aWYgQVJNNjQKKyAgICAgICAgbW92ZSBzcCwgdGVtcDIKKyAgICAgICAgc3RvcmVwIHRlbXAyLCBW
TTo6dG9wQ2FsbEZyYW1lW3ZtXQorICAgIGVsc2UKKyAgICAgICAgc3RvcmVwIHNwLCBWTTo6dG9w
Q2FsbEZyYW1lW3ZtXQorICAgIGVuZAogCiAgICAgbW92ZSAweGZmZmYwMDAwMDAwMDAwMDAsIGNz
cjEKICAgICBhZGRwIDIsIGNzcjEsIGNzcjIKIAorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25t
ZW50KHRlbXAzLCAweGJhZDBkYzAyKQorCiAgICAgbWFrZUNhbGwoZW50cnksIHRlbXAxKQogCisg
ICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDMsIDB4YmFkMGRjMDMpCisKICAgICBi
cGVxIENvZGVCbG9ja1tjZnJdLCAxLCAuY2FsbGVlRnJhbWVQb3BwZWQKICAgICBsb2FkcCBDYWxs
ZXJGcmFtZVtjZnJdLCBjZnIKIAogLmNhbGxlZUZyYW1lUG9wcGVkOgotICAgIGxvYWRwIENhbGxl
ZVtjZnJdLCB0ZW1wMiAjIFZNLnRvcENhbGxGcmFtZQotICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2Zy
XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIFt0ZW1wMl0KKyAgICBsb2FkcCBDYWxsZWVbY2Zy
XSwgdGVtcDIgIyBWTQorICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdGVtcDMgIyBwcmV2aW91
cyB0b3BDYWxsRnJhbWUKKyAgICBzdG9yZXAgdGVtcDMsIFZNOjp0b3BDYWxsRnJhbWVbdGVtcDJd
CisKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMywgMHhiYWQwZGMwNCkKIAot
ICAgIGRvUmV0dXJuKGV4dHJhU3RhY2tTcGFjZSkKKyAgICBpZiBYODZfNjQKKyAgICAgICAgcG9w
IHQ1CisgICAgZW5kCisgICAgY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKKworICAgIHJldAog
ZW5kCiAKKwogbWFjcm8gbWFrZUphdmFTY3JpcHRDYWxsKGVudHJ5LCB0ZW1wKQotICAgIGNhbGwg
ZW50cnkKKyAgICBhZGRwIDE2LCBzcAorICAgIGlmIENfTE9PUAorICAgICAgICBjbG9vcENhbGxK
U0Z1bmN0aW9uIGVudHJ5CisgICAgZWxzZQorICAgICAgICBjYWxsIGVudHJ5CisgICAgZW5kCisg
ICAgc3VicCAxNiwgc3AKIGVuZAogCisKIG1hY3JvIG1ha2VIb3N0RnVuY3Rpb25DYWxsKGVudHJ5
LCB0ZW1wKQogICAgIG1vdmUgZW50cnksIHRlbXAKICAgICBpZiBYODZfNjQKLSAgICAgICAgbW92
ZSBjZnIsIHQ1CisgICAgICAgIG1vdmUgc3AsIHQ0CiAgICAgZWxzaWYgQVJNNjQgb3IgQ19MT09Q
Ci0gICAgICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICBtb3ZlIHNwLCBhMAorICAgIGVuZAorICAg
IGlmIENfTE9PUAorICAgICAgICBzdG9yZXAgY2ZyLCBbc3BdCisgICAgICAgIHN0b3JlcCBsciwg
OFtzcF0KKyAgICAgICAgY2xvb3BDYWxsTmF0aXZlIHRlbXAKKyAgICBlbHNlCisgICAgICAgIGFk
ZHAgMTYsIHNwIAorICAgICAgICBjYWxsIHRlbXAKKyAgICAgICAgc3VicCAxNiwgc3AKICAgICBl
bmQKLSAgICBjYWxsIHRlbXAKIGVuZAogCi1tYWNybyBkb1JldHVybkZyb21KYXZhU2NyaXB0KGV4
dHJhU3RhY2tTcGFjZSkKLV9yZXR1cm5Gcm9tSmF2YVNjcmlwdDoKLSAgICBmdW5jdGlvbkVwaWxv
Z3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICByZXQKLWVuZAogCi1tYWNybyBkb1JldHVybkZyb21I
b3N0RnVuY3Rpb24oZXh0cmFTdGFja1NwYWNlKQotICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFT
dGFja1NwYWNlKQorX2hhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgorICAgIGxvYWRwIFNjb3BlQ2hh
aW5bY2ZyXSwgdDMKKyAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKKyAgICBsb2FkcCBNYXJr
ZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCisgICAgbG9hZHAgVk06
OmNhbGxGcmFtZUZvclRocm93W3QzXSwgY2ZyCisKKyAgICAjIFNvIGZhciwgd2UndmUgdW53b3Vu
ZCB0aGUgc3RhY2sgdG8gdGhlIGZyYW1lIGp1c3QgYmVsb3cgdGhlIHNlbnRpbmVsIGZyYW1lLCBl
eGNlcHQKKyAgICAjIGluIHRoZSBjYXNlIG9mIHN0YWNrIG92ZXJmbG93IGluIHRoZSBmaXJzdCBm
dW5jdGlvbiBjYWxsZWQgZnJvbSBjYWxsVG9KYXZhU2NyaXB0LgorICAgICMgQ2hlY2sgaWYgd2Ug
bmVlZCB0byBwb3AgdG8gdGhlIHNlbnRpbmVsIGZyYW1lIGFuZCBkbyB0aGUgbmVjZXNzYXJ5IGNs
ZWFuIHVwIGZvcgorICAgICMgcmV0dXJuaW5nIHRvIHRoZSBjYWxsZXIgQyBmcmFtZS4KKyAgICBi
cGVxIENvZGVCbG9ja1tjZnJdLCAxLCAuaGFuZGxlVW5jYXVnaHRFeGNlcHRpb25BbHJlYWR5SXNT
ZW50aW5lbAorICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgorLmhhbmRsZVVuY2F1Z2h0
RXhjZXB0aW9uQWxyZWFkeUlzU2VudGluZWw6CisKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDMg
IyBWTQorICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDUgIyBwcmV2aW91cyB0b3BDYWxsRnJh
bWUKKyAgICBzdG9yZXAgdDUsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCisKKyAgICBjYWxsVG9KYXZh
U2NyaXB0RXBpbG9ndWUoKQogICAgIHJldAotZW5kCisKIAogbWFjcm8gcHJlcGFyZVN0YXRlRm9y
Q0NhbGwoKQogICAgIGxlYXAgW1BCLCBQQywgOF0sIFBDCkBAIC0yNDQsNyArMjk4LDYgQEAgZW5k
CiAKIG1hY3JvIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQogICAgIG1vdmUgdDAsIFBDCi0gICAg
bW92ZSB0MSwgY2ZyCiAgICAgbW92ZSB0MywgUEIKICAgICBzdWJwIFBCLCBQQwogICAgIHJzaGlm
dHAgMywgUEMKQEAgLTI3Myw3ICszMjYsNiBAQCBtYWNybyBjYWxsQ2FsbFNsb3dQYXRoKHNsb3dQ
YXRoLCBhY3Rpb24pCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nm
cl0KICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCiAgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIs
IFBDKQotICAgIG1vdmUgdDEsIGNmcgogICAgIGFjdGlvbih0MCkKIGVuZAogCkBAIC0yODEsNyAr
MzMzLDYgQEAgbWFjcm8gY2FsbFdhdGNoZG9nVGltZXJIYW5kbGVyKHRocm93SGFuZAogICAgIHN0
b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCiAgICAgcHJlcGFyZVN0YXRl
Rm9yQ0NhbGwoKQogICAgIGNDYWxsMihfbGxpbnRfc2xvd19wYXRoX2hhbmRsZV93YXRjaGRvZ190
aW1lciwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBidHBueiB0MCwgdGhyb3dIYW5k
bGVyCiAgICAgbW92ZSB0MywgUEIKICAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0
W2Nmcl0sIFBDCkBAIC0yOTQsOCArMzQ1LDggQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxv
b3AoKQogICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nm
cl0KICAgICAgICAgICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKICAgICAgICAgICAgIGNDYWxs
MihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCi0gICAgICAgICAgICBtb3ZlIHQxLCBjZnIKICAg
ICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisgICAgICAgICAgICBtb3ZlIHQxLCBzcAogICAg
ICAgICAgICAgam1wIHQwCiAgICAgICAgIC5yZWNvdmVyOgogICAgICAgICAgICAgbW92ZSB0Mywg
UEIKQEAgLTM4NywxOSArNDM4LDM1IEBAIGVuZAogIyBFbnRyeXBvaW50cyBpbnRvIHRoZSBpbnRl
cnByZXRlci4KIAogIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBpcyB3
aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLW1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhk
b25lTGFiZWwsIHNsb3dfcGF0aCkKK21hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWws
IHNsb3dQYXRoKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50W2Nmcl0s
IHQwCiAgICAgYmlhZXEgdDAsIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3QxXSwgZG9uZUxh
YmVsCiAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQotICAgIGNDYWxsMihzbG93X3BhdGgsIGNm
ciwgUEMpICAgIyBUaGlzIHNsb3dfcGF0aCBoYXMgYSBzaW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9
PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgotICAgIGJ0aXogdDAsIC5pc0FyaXR5Rml4dXBO
ZWVkZWQKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dQYXRoIGhh
cyB0aGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgorICAg
IGJ0aXogdDAsIC5ub0Vycm9yCiAgICAgbW92ZSB0MSwgY2ZyICAgIyB0MSBjb250YWlucyBjYWxs
ZXIgZnJhbWUKICAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUK
IAotLmlzQXJpdHlGaXh1cE5lZWRlZDoKKy5ub0Vycm9yOgorICAgICMgdDEgcG9pbnRzIHRvIEFy
aXR5Q2hlY2tEYXRhLgorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6
OnRodW5rVG9DYWxsW3QxXSwgdDIKKyAgICBidHB6IHQyLCAucHJvY2VlZElubGluZQorICAgIAor
ICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnJldHVyblBDW3QxXSwg
dDUKKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFj
a1NwYWNlW3QxXSwgdDAKKyAgICBjYWxsIHQyCisgICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAg
ICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDAKKyAgICAgICAgbG9hZHAgW3QwXSwgdDAKKyAgICBl
bmQKKyAgICBqbXAgLmNvbnRpbnVlCisKKy5wcm9jZWVkSW5saW5lOgorICAgIGxvYWRpIENvbW1v
blNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MQogICAg
IGJ0aXogdDEsIC5jb250aW51ZQogCi0gICAgLy8gTW92ZSBmcmFtZSB1cCAidDEiIHNsb3RzCisg
ICAgLy8gTW92ZSBmcmFtZSB1cCAidDEgKiAyIiBzbG90cworICAgIGxzaGlmdHAgMSwgdDEKICAg
ICBuZWdxIHQxCiAgICAgbW92ZSBjZnIsIHQzCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFy
Z3VtZW50Q291bnRbY2ZyXSwgdDIKQEAgLTQyMCw2ICs0ODcsNyBAQCBtYWNybyBmdW5jdGlvbkFy
aXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAKICAgICBsc2hpZnRwIDMsIHQxCiAgICAgYWRkcCB0
MSwgY2ZyCisgICAgYWRkcCB0MSwgc3AKIAogLmNvbnRpbnVlOgogICAgICMgUmVsb2FkIENvZGVC
bG9jayBhbmQgcmVzZXQgUEMsIHNpbmNlIHRoZSBzbG93X3BhdGggY2xvYmJlcmVkIHRoZW0uCkBA
IC00MjksNyArNDk3LDYgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xv
dwogICAgIGptcCBkb25lTGFiZWwKIGVuZAogCi0KIG1hY3JvIGJyYW5jaElmRXhjZXB0aW9uKGxh
YmVsKQogICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICBhbmRwIE1hcmtlZEJsb2Nr
TWFzaywgdDMKQEAgLTQ0NCw2ICs1MTEsNyBAQCBlbmQKIAogX2xsaW50X29wX2VudGVyOgogICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MiwgMHhk
ZWFkMDBlMSkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIgICAgICAgICAgICAgICAgLy8g
dDI8Q29kZUJsb2NrPiA9IGNmci5Db2RlQmxvY2sKICAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVt
VmFyc1t0Ml0sIHQyICAgICAgLy8gdDI8c2l6ZV90PiA9IHQyPENvZGVCbG9jaz4ubV9udW1WYXJz
CiAgICAgYnRpeiB0MiwgLm9wRW50ZXJEb25lCkBAIC0xNzE3LDEwICsxNzg1LDkgQEAgbWFjcm8g
ZG9DYWxsKHNsb3dQYXRoKQogICAgIHN0b3JlcSB0MCwgU2NvcGVDaGFpblt0M10KICAgICBsb2Fk
aXNGcm9tSW5zdHJ1Y3Rpb24oMywgdDIpCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsg
VGFnT2Zmc2V0W2Nmcl0KLSAgICBzdG9yZXEgY2ZyLCBDYWxsZXJGcmFtZVt0M10KICAgICBzdG9y
ZWkgdDIsIEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W3QzXQotICAgIG1vdmUgdDMsIGNm
cgotICAgIGNhbGxUYXJnZXRGdW5jdGlvbih0MSkKKyAgICBhZGRwIENhbGxlckZyYW1lQW5kUENT
aXplLCB0MworICAgIGNhbGxUYXJnZXRGdW5jdGlvbih0MSwgdDMpCiAKIC5vcENhbGxTbG93Ogog
ICAgIHNsb3dQYXRoRm9yQ2FsbChzbG93UGF0aCkKQEAgLTE4NDAsNiArMTkwNyw4IEBAIF9sbGlu
dF9vcF9jYXRjaDoKICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICBsb2FkcCBNYXJr
ZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCiAgICAgbG9hZHAgVk06
OmNhbGxGcmFtZUZvclRocm93W3QzXSwgY2ZyCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVy
Q2FsbCgpCisKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIKICAgICBsb2FkcCBDb2RlQmxv
Y2s6Om1faW5zdHJ1Y3Rpb25zW1BCXSwgUEIKICAgICBsb2FkcCBWTTo6dGFyZ2V0SW50ZXJwcmV0
ZXJQQ0ZvclRocm93W3QzXSwgUEMKQEAgLTE4NzksNiArMTk0OCw4IEBAIF9sbGludF90aHJvd19k
dXJpbmdfY2FsbF90cmFtcG9saW5lOgogCiAKIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQorCisgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCiAgICAg
c3RvcmVwIDAsIENvZGVCbG9ja1tjZnJdCiAgICAgaWYgWDg2XzY0CiAgICAgICAgIGxvYWRwIFNj
b3BlQ2hhaW5bY2ZyXSwgdDAKQEAgLTE4ODgsMTkgKzE5NTksMTUgQEAgbWFjcm8gbmF0aXZlQ2Fs
bFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZgogICAgICAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJd
LCB0MAogICAgICAgICBsb2FkcSBTY29wZUNoYWluW3QwXSwgdDEKICAgICAgICAgc3RvcmVxIHQx
LCBTY29wZUNoYWluW2Nmcl0KLSAgICAgICAgcGVlayAwLCB0MQotICAgICAgICBzdG9yZXAgdDEs
IFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQ1ICAjIHQ1ID0gcmRpCi0gICAgICAg
IHN1YnAgMTYgLSA4LCBzcAotICAgICAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDQgIyB0NCA9IHJz
aQotICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDRdLCB0MQotICAgICAg
ICBtb3ZlIHQwLCBjZnIgIyBSZXN0b3JlIGNmciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2sK
KyAgICAgICAgbW92ZSBjZnIsIHQ0ICAjIHQ0ID0gcmRpCisgICAgICAgIGxvYWRwIENhbGxlZVtj
ZnJdLCB0NSAjIHQ1ID0gcnNpCisgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJs
ZVt0NV0sIHQxCisgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQw
MDAxKQogICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotICAgICAg
ICBhZGRwIDE2IC0gOCwgc3AKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwogICAg
ICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6
Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgIGVsc2lmIEFSTTY0CisgICAg
ZWxzaWYgQVJNNjQgb3IgQ19MT09QCiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDAK
ICAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQwCiAgICAgICAgIGxvYWRwIE1hcmtlZEJs
b2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QwXSwgdDAKQEAgLTE5MTQsMzAgKzE5ODEs
MTEgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZgogICAgICAgICBs
b2FkcCBDYWxsZWVbY2ZyXSwgdDEKICAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRh
YmxlW3QxXSwgdDEKICAgICAgICAgbW92ZSB0MiwgY2ZyICMgUmVzdG9yZSBjZnIgdG8gYXZvaWQg
bG9hZGluZyBmcm9tIHN0YWNrCi0gICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rp
b25bdDFdCi0gICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQotICAg
ICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFya2VkQmxvY2tN
YXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6
bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGxvYWRwIENhbGxlckZyYW1l
W2Nmcl0sIHQwCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bdDBdLCB0MQotICAgICAgICBzdG9y
ZXAgdDEsIFNjb3BlQ2hhaW5bY2ZyXQotCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwg
dDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtl
ZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICAgICAgc3RvcmVw
IGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KLQotICAgICAgICBtb3ZlIHQwLCB0MgotICAgICAg
ICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCi0gICAgICAgIHN0b3JlcCB0Mywg
UmV0dXJuUENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDAKLSAgICAgICAgbG9hZHAgQ2FsbGVl
W2Nmcl0sIHQxCi0gICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQx
Ci0gICAgICAgIG1vdmUgdDIsIGNmcgotICAgICAgICBjbG9vcENhbGxOYXRpdmUgZXhlY3V0YWJs
ZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0KKyAgICAgICAgaWYgQ19MT09QCisgICAgICAgICAgICBj
bG9vcENhbGxOYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAg
ICAgIGVuZAogICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKICAg
ICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwogICAgICAgICBhbmRwIE1hcmtlZEJsb2Nr
TWFzaywgdDMKQEAgLTE5NDYsMTYgKzE5OTQsMTQgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xp
bmUoZXhlY3V0YWJsZU9mZgogICAgICAgICBlcnJvcgogICAgIGVuZAogCi0gICAgYnRxbnogVk06
Om1fZXhjZXB0aW9uW3QzXSwgLmV4Y2VwdGlvbgorICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQorCisg
ICAgYnRxbnogVk06Om1fZXhjZXB0aW9uW3QzXSwgLmhhbmRsZUV4Y2VwdGlvbgogICAgIHJldAot
LmV4Y2VwdGlvbjoKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDEpICMgVGhp
cyBpcyByZWFsbHkgb25seSBuZWVkZWQgb24gWDg2XzY0Ci0gICAgbG9hZGkgQXJndW1lbnRDb3Vu
dCArIFRhZ09mZnNldFtjZnJdLCBQQwotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgotICAg
IGxvYWRwIENvZGVCbG9jazo6bV92bVtQQl0sIHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2lu
c3RydWN0aW9uc1tQQl0sIFBCCi0gICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0MF0K
LSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2NhbGwpCisKKy5oYW5k
bGVFeGNlcHRpb246CisgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KKyAgICBy
ZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21f
c2xvd19wYXRoX3RyYW1wb2xpbmUKIGVuZAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAxNjI5MTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20J
KHdvcmtpbmcgY29weSkKQEAgLTM4LDkgKzM4LDEyIEBAIGNvbnN0IENhbGxGcmFtZUhlYWRlclNs
b3RzID0gNgogZWxzZQogY29uc3QgUHRyU2l6ZSA9IDQKIGNvbnN0IENhbGxGcmFtZUhlYWRlclNs
b3RzID0gNQorY29uc3QgQ2FsbEZyYW1lQWxpZ25TbG90cyA9IDEKIGVuZAogY29uc3QgU2xvdFNp
emUgPSA4CiAKK2NvbnN0IENhbGxlckZyYW1lQW5kUENTaXplID0gMiAqIFB0clNpemUKKwogY29u
c3QgQ2FsbGVyRnJhbWUgPSAwCiBjb25zdCBSZXR1cm5QQyA9IENhbGxlckZyYW1lICsgUHRyU2l6
ZQogY29uc3QgQ29kZUJsb2NrID0gUmV0dXJuUEMgKyBQdHJTaXplCkBAIC03MSw2ICs3NCwxNiBA
QCBjb25zdCBEZWxldGVkVmFsdWVUYWcgPSAtNwogY29uc3QgTG93ZXN0VGFnID0gRGVsZXRlZFZh
bHVlVGFnCiBlbmQKIAoraWYgWDg2XzY0IG9yIEFSTTY0IG9yIENfTE9PUAorY29uc3QgbWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAwCitlbHNpZiBBUk0gb3IgQVJNdjdfVFJBRElUSU9O
QUwgb3IgQVJNdjcgb3IgU0g0Citjb25zdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9
IDI0CitlbHNpZiBYODYKK2NvbnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDAK
K2Vsc2lmIE1JUFMKK2NvbnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDAKK2Vu
ZAorCiAjIFdhdGNocG9pbnQgc3RhdGVzCiBjb25zdCBDbGVhcldhdGNocG9pbnQgPSAwCiBjb25z
dCBJc1dhdGNoZWQgPSAxCkBAIC04NSw3ICs5OCw3IEBAIGlmIEpTVkFMVUU2NAogICAgICMgICB0
byBDIGZ1bmN0aW9ucy4KICAgICAjIC0gQyBjYWxscyBhcmUgc3RpbGwgZ2l2ZW4gdGhlIEluc3Ry
dWN0aW9uKiByYXRoZXIgdGhhbiB0aGUgUEMgaW5kZXguCiAgICAgIyAgIFRoaXMgcmVxdWlyZXMg
YW4gYWRkIGJlZm9yZSB0aGUgY2FsbCwgYW5kIGEgc3ViIGFmdGVyLgotICAgIGNvbnN0IFBDID0g
dDQKKyAgICBjb25zdCBQQyA9IHQ1CiAgICAgY29uc3QgUEIgPSB0NgogICAgIGNvbnN0IHRhZ1R5
cGVOdW1iZXIgPSBjc3IxCiAgICAgY29uc3QgdGFnTWFzayA9IGNzcjIKQEAgLTEwMyw3ICsxMTYs
NyBAQCBpZiBKU1ZBTFVFNjQKICAgICBlbmQKIAogZWxzZQotICAgIGNvbnN0IFBDID0gdDQKKyAg
ICBjb25zdCBQQyA9IHQ1CiAgICAgbWFjcm8gbG9hZGlzRnJvbUluc3RydWN0aW9uKG9mZnNldCwg
ZGVzdCkKICAgICAgICAgbG9hZGlzIG9mZnNldCAqIDRbUENdLCBkZXN0CiAgICAgZW5kCkBAIC0y
MTAsNiArMjIzLDUyIEBAIG1hY3JvIGFzc2VydChhc3NlcnRpb24pCiAgICAgZW5kCiBlbmQKIAor
bWFjcm8gY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcFJlZywgbG9jYXRpb24pCisgICAg
aWYgQVJNNjQgb3IgQ19MT09QCisgICAgICAgICMgQVJNNjQgd2lsbCBjaGVjayBmb3IgdXMhCisg
ICAgICAgICMgQ19MT09QIGRvZXMgbm90IG5lZWQgdGhlIGFsaWdubWVudCwgYW5kIGNhbiB1c2Ug
YSBsaXR0bGUgcGVyZgorICAgICAgICAjIGltcHJvdmVtZW50IGZyb20gYXZvaWRpbmcgdXNlbGVz
cyB3b3JrLgorICAgIGVsc2UKKyAgICAgICAgaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJ
VElPTkFMCisgICAgICAgICAgICAjIEFSTSBjYW4ndCBkbyBsb2dpY2FsIG9wcyB3aXRoIHRoZSBz
cCBhcyBhIHNvdXJjZQorICAgICAgICAgICAgbW92ZSBzcCwgdGVtcFJlZworICAgICAgICAgICAg
YW5kcCAweGYsIHRlbXBSZWcKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYW5kcCBzcCwgMHhm
LCB0ZW1wUmVnCisgICAgICAgIGVuZAorICAgICAgICBidHB6IHRlbXBSZWcsIC5zdGFja1BvaW50
ZXJPa2F5CisgICAgICAgIG1vdmUgbG9jYXRpb24sIHRlbXBSZWcKKyAgICAgICAgYnJlYWsKKyAg
ICAuc3RhY2tQb2ludGVyT2theToKKyAgICBlbmQKK2VuZAorCittYWNybyBwcmVzZXJ2ZUNhbGxl
clBDQW5kQ0ZSKCkKKyAgICBpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJ
VElPTkFMIG9yIE1JUFMgb3IgU0g0CisgICAgICAgIHB1c2ggbHIKKyAgICAgICAgcHVzaCBjZnIK
KyAgICBlbHNpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHB1c2ggY2ZyCisgICAgZWxzaWYgQVJN
NjQKKyAgICAgICAgcHVzaExSQW5kRlAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5k
CisgICAgbW92ZSBzcCwgY2ZyCitlbmQKKworbWFjcm8gcmVzdG9yZUNhbGxlclBDQW5kQ0ZSKCkK
KyAgICBtb3ZlIGNmciwgc3AKKyAgICBpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3
X1RSQURJVElPTkFMIG9yIE1JUFMgb3IgU0g0CisgICAgICAgIHBvcCBjZnIKKyAgICAgICAgcG9w
IGxyCisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwb3AgY2ZyCisgICAgZWxzaWYg
QVJNNjQKKyAgICAgICAgcG9wTFJBbmRGUAorICAgIGVuZAorZW5kCisKIG1hY3JvIHByZXNlcnZl
UmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlvblJlZ2lzdGVyKQogICAgIGlmIENfTE9P
UCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgQVJNNjQgb3IgTUlQUyBv
ciBTSDQKICAgICAgICAgIyBJbiBDX0xPT1AgY2FzZSwgd2UncmUgb25seSBwcmVzZXJ2aW5nIHRo
ZSBieXRlY29kZSB2UEMuCkBAIC0yMzIsMzEgKzI5MSwxMjIgQEAgbWFjcm8gcmVzdG9yZVJldHVy
bkFkZHJlc3NCZWZvcmVSZXR1cm4ocwogICAgIGVuZAogZW5kCiAKK21hY3JvIGZ1bmN0aW9uUHJv
bG9ndWUoKQorICAgIGlmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcHVzaCBjZnIKKyAgICBlbHNp
ZiBBUk02NAorICAgICAgICBwdXNoTFJBbmRGUAorICAgIGVsc2lmIENfTE9PUCBvciBBUk0gb3Ig
QVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUworICAgICAgICBwdXNoIGxyCisgICAg
ICAgIHB1c2ggY2ZyCisgICAgZW5kCisgICAgbW92ZSBzcCwgY2ZyCitlbmQKKworbWFjcm8gZnVu
Y3Rpb25FcGlsb2d1ZSgpCisgICAgaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwb3AgY2ZyCisg
ICAgZWxzaWYgQVJNNjQKKyAgICAgICAgcG9wTFJBbmRGUAorICAgIGVsc2lmIENfTE9PUCBvciBB
Uk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUworICAgICAgICBwb3AgY2Zy
CisgICAgICAgIHBvcCBscgorICAgIGVuZAorZW5kCisKK21hY3JvIGNhbGxUb0phdmFTY3JpcHRQ
cm9sb2d1ZSgpCisgICAgaWYgWDg2XzY0CisgICAgICAgIHB1c2ggY2ZyCisgICAgICAgIHB1c2gg
dDAKKyAgICBlbHNpZiBYODYKKyAgICAgICAgcHVzaCBjZnIKKyAgICBlbHNpZiBBUk02NAorICAg
ICAgICBwdXNoTFJBbmRGUAorICAgIGVsc2lmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJN
djdfVFJBRElUSU9OQUwgb3IgTUlQUworICAgICAgICBwdXNoIGxyCisgICAgICAgIHB1c2ggY2Zy
CisgICAgZW5kCisgICAgcHVzaENhbGxlZVNhdmVzCisgICAgaWYgWDg2CisgICAgICAgIHN1YnAg
MTIsIHNwCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMCisgICAg
ICAgIHN1YnAgNCwgc3AKKyAgICAgICAgbW92ZSBzcCwgdDQKKyAgICAgICAgY2xyYnAgdDQsIDB4
ZiwgdDUKKyAgICAgICAgbW92ZSB0NSwgc3AKKyAgICAgICAgc3RvcmVwIHQ0LCBbc3BdCisgICAg
ZW5kCitlbmQKKworbWFjcm8gY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKKyAgICBhZGRwIENh
bGxGcmFtZUhlYWRlclNsb3RzICogOCwgY2ZyLCBzcAorICAgIGxvYWRwIENhbGxlckZyYW1lW2Nm
cl0sIGNmcgorCisgICAgaWYgWDg2CisgICAgICAgIGFkZHAgMTIsIHNwCisgICAgZWxzaWYgQVJN
IG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMCisgICAgICAgIHBvcCB0NAorICAgICAgICBt
b3ZlIHQ0LCBzcAorICAgICAgICBhZGRwIDQsIHNwCisgICAgZW5kCisKKyAgICBwb3BDYWxsZWVT
YXZlcworICAgIGlmIFg4Nl82NAorICAgICAgICBwb3AgdDIKKyAgICAgICAgcG9wIGNmcgorICAg
IGVsc2lmIFg4NgorICAgICAgICBwb3AgY2ZyCisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAgcG9w
TFJBbmRGUAorICAgIGVsc2lmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElU
SU9OQUwgb3IgTUlQUworICAgICAgICBwb3AgY2ZyCisgICAgICAgIHBvcCBscgorICAgIGVuZAor
ZW5kCisKK21hY3JvIG1vdmVTdGFja1BvaW50ZXJGb3JDb2RlQmxvY2soY29kZUJsb2NrLCBzY3Jh
dGNoKQorICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbY29kZUJsb2Nr
XSwgc2NyYXRjaAorICAgIGxzaGlmdHAgMywgc2NyYXRjaAorICAgIGFkZHAgbWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwsIHNjcmF0Y2gKKyAgICBzdWJwIGNmciwgc2NyYXRjaCwgc3AKK2Vu
ZAorCittYWNybyByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKKyAgICBsb2FkcCBDb2Rl
QmxvY2tbY2ZyXSwgdDIKKyAgICBtb3ZlU3RhY2tQb2ludGVyRm9yQ29kZUJsb2NrKHQyLCB0NCkK
K2VuZAorCiBtYWNybyB0cmFjZUV4ZWN1dGlvbigpCiAgICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcK
ICAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF90cmFjZSkKICAgICBlbmQKIGVuZAogCi1tYWNy
byBjYWxsVGFyZ2V0RnVuY3Rpb24oY2FsbExpbmtJbmZvKQorbWFjcm8gY2FsbFRhcmdldEZ1bmN0
aW9uKGNhbGxMaW5rSW5mbywgY2FsbGVlRnJhbWVQdHIpCisgICAgbW92ZSBjYWxsZWVGcmFtZVB0
ciwgc3AKICAgICBpZiBDX0xPT1AKICAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBMTEludENh
bGxMaW5rSW5mbzo6bWFjaGluZUNvZGVUYXJnZXRbY2FsbExpbmtJbmZvXQogICAgIGVsc2UKICAg
ICAgICAgY2FsbCBMTEludENhbGxMaW5rSW5mbzo6bWFjaGluZUNvZGVUYXJnZXRbY2FsbExpbmtJ
bmZvXQotICAgICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAgICAgZW5kCisgICAgcmVzdG9yZVN0
YWNrUG9pbnRlckFmdGVyQ2FsbCgpCisgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQogZW5kCiAKIG1h
Y3JvIHNsb3dQYXRoRm9yQ2FsbChzbG93UGF0aCkKICAgICBjYWxsQ2FsbFNsb3dQYXRoKAogICAg
ICAgICBzbG93UGF0aCwKICAgICAgICAgbWFjcm8gKGNhbGxlZSkKKyAgICAgICAgICAgIGJ0cHog
dDEsIC5kb250VXBkYXRlU1AKKyAgICAgICAgICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUs
IHQxLCBzcAorICAgICAgICAuZG9udFVwZGF0ZVNQOgogICAgICAgICAgICAgaWYgQ19MT09QCiAg
ICAgICAgICAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBjYWxsZWUKICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICBjYWxsIGNhbGxlZQotICAgICAgICAgICAgICAgIGRpc3BhdGNo
QWZ0ZXJDYWxsKCkKICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgcmVzdG9yZVN0YWNrUG9p
bnRlckFmdGVyQ2FsbCgpCisgICAgICAgICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAgICAgICAg
IGVuZCkKIGVuZAogCkBAIC0zMjUsMjYgKzQ3NSw0OCBAQCBlbmQKICMgRG8gdGhlIGJhcmUgbWlu
aW11bSByZXF1aXJlZCB0byBleGVjdXRlIGNvZGUuIFNldHMgdXAgdGhlIFBDLCBsZWF2ZSB0aGUg
Q29kZUJsb2NrKgogIyBpbiB0MS4gTWF5IGFsc28gdHJpZ2dlciBwcm9sb2d1ZSBlbnRyeSBPU1Iu
CiBtYWNybyBwcm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3NyU2xv
d1BhdGgsIHRyYWNlU2xvd1BhdGgpCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxs
KHQyKQotICAgIAogICAgICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBz
aG91bGQgT1NSLgotICAgIHN0b3JlcCB0MiwgUmV0dXJuUENbY2ZyXQorICAgIHByZXNlcnZlQ2Fs
bGVyUENBbmRDRlIoKQorCiAgICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKKyAgICAgICAgc3VicCBt
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgc3AKICAgICAgICAgY2FsbFNsb3dQYXRoKHRy
YWNlU2xvd1BhdGgpCisgICAgICAgIGFkZHAgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGws
IHNwCiAgICAgZW5kCiAgICAgY29kZUJsb2NrR2V0dGVyKHQxKQoraWYgQ19MT09QCitlbHNlCiAg
ICAgYmFkZGlzIDUsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyICsgRXhlY3V0aW9u
Q291bnRlcjo6bV9jb3VudGVyW3QxXSwgLmNvbnRpbnVlCi0gICAgY0NhbGwyKG9zclNsb3dQYXRo
LCBjZnIsIFBDKQotICAgIG1vdmUgdDEsIGNmcgorICAgIGlmIEpTVkFMVUU2NAorICAgICAgICBj
Q2FsbDIob3NyU2xvd1BhdGgsIGNmciwgUEMpCisgICAgZWxzZQorICAgICAgICAjIFdlIGFyZSBh
ZnRlciB0aGUgZnVuY3Rpb24gcHJvbG9ndWUsIGJ1dCBiZWZvcmUgd2UgaGF2ZSBzZXQgdXAgc3Ag
ZnJvbSB0aGUgQ29kZUJsb2NrLgorICAgICAgICAjIFRlbXBvcmFyaWx5IGFsaWduIHN0YWNrIHBv
aW50ZXIgZm9yIHRoaXMgY2FsbC4KKyAgICAgICAgc3VicCA4LCBzcAorICAgICAgICBjQ2FsbDIo
b3NyU2xvd1BhdGgsIGNmciwgUEMpCisgICAgICAgIGFkZHAgOCwgc3AKKyAgICBlbmQKICAgICBi
dHB6IHQwLCAucmVjb3ZlcgotICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCi0gICAgcmVzdG9y
ZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCisgICAgbW92ZSBjZnIsIHNwICMgcmVzdG9y
ZSB0aGUgcHJldmlvdXMgc3AKKyAgICAjIHBvcCB0aGUgY2FsbGVyRnJhbWUgc2luY2Ugd2Ugd2ls
bCBqdW1wIHRvIGEgZnVuY3Rpb24gdGhhdCB3YW50cyB0byBzYXZlIGl0CisgICAgaWYgQVJNNjQK
KyAgICAgICAgcG9wTFJBbmRGUAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFE
SVRJT05BTCBvciBNSVBTIG9yIFNINAorICAgICAgICBwb3AgY2ZyCisgICAgICAgIHBvcCBscgor
ICAgIGVsc2UKKyAgICAgICAgcG9wIGNmcgorICAgIGVuZAogICAgIGptcCB0MAogLnJlY292ZXI6
CiAgICAgY29kZUJsb2NrR2V0dGVyKHQxKQogLmNvbnRpbnVlOgorZW5kCisKICAgICBjb2RlQmxv
Y2tTZXR0ZXIodDEpCiAgICAgCisgICAgbW92ZVN0YWNrUG9pbnRlckZvckNvZGVCbG9jayh0MSwg
dDIpCisKICAgICAjIFNldCB1cCB0aGUgUEMuCiAgICAgaWYgSlNWQUxVRTY0CiAgICAgICAgIGxv
YWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQgpAQCAtMzg5LDE0ICs1NjEsMTYg
QEAgbWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlvbihwcm9maWxlQXJnUwogICAgICAgICAKICAg
ICAjIENoZWNrIHN0YWNrIGhlaWdodC4KICAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2FsbGVl
UmVnaXN0ZXJzW3QxXSwgdDAKLSAgICBhZGRpIDEsIHQwICMgQWNjb3VudCB0aGF0IGxvY2FsMCBn
b2VzIGF0IHNsb3QgLTEKICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fdm1bdDFdLCB0MgogICAgIGxz
aGlmdHAgMywgdDAKKyAgICBhZGRpIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB0MAog
ICAgIHN1YnAgY2ZyLCB0MCwgdDAKICAgICBicGJlcSBWTTo6bV9qc1N0YWNrTGltaXRbdDJdLCB0
MCwgLnN0YWNrSGVpZ2h0T0sKIAogICAgICMgU3RhY2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAtIG5l
ZWQgdG8gY2FsbCBhIHNsb3dfcGF0aC4KICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3N0YWNrX2No
ZWNrKQorICAgIGJwZXEgdDEsIDAsIC5zdGFja0hlaWdodE9LCisgICAgbW92ZSB0MSwgY2ZyCiAu
c3RhY2tIZWlnaHRPSzoKIGVuZAogCkBAIC00MjMsMjUgKzU5Nyw2OSBAQCBtYWNybyBhbGxvY2F0
ZUpTT2JqZWN0KGFsbG9jYXRvciwgc3RydWN0CiBlbmQKIAogbWFjcm8gZG9SZXR1cm4oKQotICAg
IGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCi0gICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2Zy
Ci0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCisgICAgcmVzdG9yZUNh
bGxlclBDQW5kQ0ZSKCkKICAgICByZXQKIGVuZAogCi1pZiBDX0xPT1AKLWVsc2UKICMgc3R1YiB0
byBjYWxsIGludG8gSmF2YVNjcmlwdCBvciBOYXRpdmUgZnVuY3Rpb25zCi0jIEVuY29kZWRKU1Zh
bHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm0sIFByb3RvQ2Fs
bEZyYW1lKiBwcm90b0ZyYW1lLCBSZWdpc3RlciogdG9wT2ZTdGFjaykKLSMgRW5jb2RlZEpTVmFs
dWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm0sIFByb3Rv
Q2FsbEZyYW1lKiBwcm90b0ZyYW1lLCBSZWdpc3RlciogdG9wT2ZTdGFjaykKKyMgRW5jb2RlZEpT
VmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2bVRvcENhbGxG
cmFtZSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvRnJhbWUpCisjIEVuY29kZWRKU1ZhbHVlIGNhbGxU
b05hdGl2ZUZ1bmN0aW9uKHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtVG9wQ2FsbEZyYW1lLCBQ
cm90b0NhbGxGcmFtZSogcHJvdG9GcmFtZSkKICMgTm90ZSwgaWYgdGhlc2Ugc3R1YnMgb3Igb25l
IG9mIHRoZWlyIHJlbGF0ZWQgbWFjcm9zIGFyZSBjaGFuZ2VkLCBtYWtlIHRoZQogIyBlcXVpdmFs
ZW50IGNoYW5nZXMgaW4gaml0L0pJVFN0dWJzWDg2LmggYW5kL29yIGppdC9KSVRTdHVic01TVkM2
NC5hc20KKworaWYgQ19MT09QCitfbGxpbnRfY2FsbF90b19qYXZhc2NyaXB0OgorZWxzZQogX2Nh
bGxUb0phdmFTY3JpcHQ6Ci0gICAgZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VKYXZhU2NyaXB0Q2Fs
bCwgZG9SZXR1cm5Gcm9tSmF2YVNjcmlwdCkKK2VuZAorICAgIGRvQ2FsbFRvSmF2YVNjcmlwdCht
YWtlSmF2YVNjcmlwdENhbGwpCisKIAoraWYgQ19MT09QCitfbGxpbnRfY2FsbF90b19uYXRpdmVf
ZnVuY3Rpb246CitlbHNlCiBfY2FsbFRvTmF0aXZlRnVuY3Rpb246Ci0gICAgZG9DYWxsVG9KYXZh
U2NyaXB0KG1ha2VIb3N0RnVuY3Rpb25DYWxsLCBkb1JldHVybkZyb21Ib3N0RnVuY3Rpb24pCiBl
bmQKKyAgICBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUhvc3RGdW5jdGlvbkNhbGwpCisKKworaWYg
Q19MT09QCitlbHNlCisjIHZvaWQgc2FuaXRpemVTdGFja0ZvclZNSW1wbChWTSogdm0pCitfc2Fu
aXRpemVTdGFja0ZvclZNSW1wbDoKKyAgICBpZiBYODZfNjQKKyAgICAgICAgY29uc3Qgdm0gPSB0
NAorICAgICAgICBjb25zdCBhZGRyZXNzID0gdDEKKyAgICAgICAgY29uc3QgemVyb1ZhbHVlID0g
dDAKKyAgICBlbHNpZiBYODYKKyAgICAgICAgY29uc3Qgdm0gPSB0MgorICAgICAgICBjb25zdCBh
ZGRyZXNzID0gdDEKKyAgICAgICAgY29uc3QgemVyb1ZhbHVlID0gdDAKKyAgICBlbHNlCisgICAg
ICAgIGNvbnN0IHZtID0gYTAKKyAgICAgICAgY29uc3QgYWRkcmVzcyA9IHQxCisgICAgICAgIGNv
bnN0IHplcm9WYWx1ZSA9IHQyCisgICAgZW5kCisKKyAgICBpZiBYODYKKyAgICAgICAgbG9hZHAg
NFtzcF0sIHZtCisgICAgZW5kCisKKyAgICBsb2FkcCBWTTo6bV9sYXN0U3RhY2tUb3Bbdm1dLCBh
ZGRyZXNzCisgICAgYnBiZXEgc3AsIGFkZHJlc3MsIC56ZXJvRmlsbERvbmUKKworICAgIG1vdmUg
MCwgemVyb1ZhbHVlCisuemVyb0ZpbGxMb29wOgorICAgIHN0b3JlcCB6ZXJvVmFsdWUsIFthZGRy
ZXNzXQorICAgIGFkZHAgUHRyU2l6ZSwgYWRkcmVzcworICAgIGJwYSBzcCwgYWRkcmVzcywgLnpl
cm9GaWxsTG9vcAorCisuemVyb0ZpbGxEb25lOgorICAgIG1vdmUgc3AsIGFkZHJlc3MKKyAgICBz
dG9yZXAgYWRkcmVzcywgVk06Om1fbGFzdFN0YWNrVG9wW3ZtXQorICAgIHJldAorZW5kCisKIAog
IyBJbmRpY2F0ZSB0aGUgYmVnaW5uaW5nIG9mIExMSW50LgogX2xsaW50X2JlZ2luOgpAQCAtNzMx
LDggKzk0OSwxNSBAQCBfbGxpbnRfb3BfY29uc3RydWN0OgogCiBfbGxpbnRfb3BfY2FsbF92YXJh
cmdzOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9zaXplX2FuZF9hbGxvY19mcmFtZV9mb3JfdmFyYXJncykKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJhcmdzKQogICAgIGJyYW5jaElmRXhj
ZXB0aW9uKF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lKQorICAgICMgY2Fs
bGVlRnJhbWUgaW4gdDEKKyAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgbW92ZSB0MSwgc3AKKyAg
ICBlbHNlCisgICAgICAgICMgVGhlIGNhbGxlZUZyYW1lIGlzIG5vdCBzdGFjayBhbGlnbmVkLCBt
b3ZlIGRvd24gYnkgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgdG8gYWxpZ24KKyAgICAgICAgc3VicCB0
MSwgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHNwCisgICAgZW5kCiAgICAgc2xvd1BhdGhGb3JDYWxs
KF9sbGludF9zbG93X3BhdGhfY2FsbF92YXJhcmdzKQogCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTAsNiArOTAsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
Qzo6TExJbnQ7CiAjZGVmaW5lIE9GRkxJTkVfQVNNX0JFR0lOCiAjZGVmaW5lIE9GRkxJTkVfQVNN
X0VORAogCisjaWYgRU5BQkxFKE9QQ09ERV9UUkFDSU5HKQorI2RlZmluZSBUUkFDRV9PUENPREUo
b3Bjb2RlKSBkYXRhTG9nRigiICAgb3AgJXNcbiIsICNvcGNvZGUpCisjZWxzZQorI2RlZmluZSBU
UkFDRV9PUENPREUob3Bjb2RlKQorI2VuZGlmCisKIC8vIFRvIGtlZXAgY29tcGlsZXJzIGhhcHB5
IGluIGNhc2Ugb2YgdW51c2VkIGxhYmVscywgZm9yY2UgdXNhZ2Ugb2YgdGhlIGxhYmVsOgogI2Rl
ZmluZSBVU0VfTEFCRUwobGFiZWwpIFwKICAgICBkbyB7IFwKQEAgLTk3LDcgKzEwMyw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M6OkxMSW50OwogICAgICAgICAgICAgZ290byBsYWJlbDsgXAogICAg
IH0gd2hpbGUgKGZhbHNlKQogCi0jZGVmaW5lIE9GRkxJTkVfQVNNX09QQ09ERV9MQUJFTChvcGNv
ZGUpIERFRklORV9PUENPREUob3Bjb2RlKSBVU0VfTEFCRUwob3Bjb2RlKTsKKyNkZWZpbmUgT0ZG
TElORV9BU01fT1BDT0RFX0xBQkVMKG9wY29kZSkgREVGSU5FX09QQ09ERShvcGNvZGUpIFVTRV9M
QUJFTChvcGNvZGUpOyBUUkFDRV9PUENPREUob3Bjb2RlKTsKIAogI2lmIEVOQUJMRShDT01QVVRF
RF9HT1RPX09QQ09ERVMpCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0dMVUVfTEFCRUwobGFiZWwpICBs
YWJlbDogVVNFX0xBQkVMKGxhYmVsKTsKQEAgLTIxMiwxMCArMjE4LDE0IEBAIHN0cnVjdCBDTG9v
cFJlZ2lzdGVyIHsKICNlbmRpZiAvLyAhQ1BVKEJJR19FTkRJQU4pCiAjZW5kaWYgLy8gIVVTRShK
U1ZBTFVFNjQpCiAKKyAgICAgICAgaW50cHRyX3QqIGlwOwogICAgICAgICBpbnQ4X3QqIGk4cDsK
ICAgICAgICAgdm9pZCogdnA7CisgICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwogICAgICAg
ICBFeGVjU3RhdGUqIGV4ZWNTdGF0ZTsKICAgICAgICAgdm9pZCogaW5zdHJ1Y3Rpb247CisgICAg
ICAgIFZNKiB2bTsKKyAgICAgICAgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lOwogICAg
ICAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jOwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAg
ICAgIGludDY0X3QgaTY0OwpAQCAtMjI2LDYgKzIzNiwxMiBAQCBzdHJ1Y3QgQ0xvb3BSZWdpc3Rl
ciB7CiAgICAgICAgIE9wY29kZSBvcGNvZGU7CiAgICAgfTsKIAorICAgIG9wZXJhdG9yIEV4ZWNT
dGF0ZSooKSB7IHJldHVybiBleGVjU3RhdGU7IH0KKyAgICBvcGVyYXRvciBJbnN0cnVjdGlvbioo
KSB7IHJldHVybiByZWludGVycHJldF9jYXN0PEluc3RydWN0aW9uKj4oaW5zdHJ1Y3Rpb24pOyB9
CisgICAgb3BlcmF0b3IgVk0qKCkgeyByZXR1cm4gdm07IH0KKyAgICBvcGVyYXRvciBQcm90b0Nh
bGxGcmFtZSooKSB7IHJldHVybiBwcm90b0NhbGxGcmFtZTsgfQorICAgIG9wZXJhdG9yIFJlZ2lz
dGVyKigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmVnaXN0ZXIqPih2cCk7IH0KKwogI2lm
IFVTRShKU1ZBTFVFNjQpCiAgICAgaW5saW5lIHZvaWQgY2xlYXJIaWdoV29yZCgpIHsgaTMycGFk
ZGluZyA9IDA7IH0KICNlbHNlCkBAIC0yMzcsNyArMjUzLDcgQEAgc3RydWN0IENMb29wUmVnaXN0
ZXIgewogLy8gVGhlIGxsaW50IEMrKyBpbnRlcnByZXRlciBsb29wOgogLy8KIAotSlNWYWx1ZSBD
TG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2RlLCBi
b29sIGlzSW5pdGlhbGl6YXRpb25QYXNzKQorSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShPcGNvZGVJ
RCBlbnRyeU9wY29kZUlELCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgVk0qIHZtLCBQcm90b0Nh
bGxGcmFtZSogcHJvdG9DYWxsRnJhbWUsIGJvb2wgaXNJbml0aWFsaXphdGlvblBhc3MpCiB7CiAg
ICAgI2RlZmluZSBDQVNUIHJlaW50ZXJwcmV0X2Nhc3QKICAgICAjZGVmaW5lIFNJR05fQklUMzIo
eCkgKCh4KSAmIDB4ODAwMDAwMDApCkBAIC0yNzIsOCArMjg4LDYgQEAgSlNWYWx1ZSBDTG9vcDo6
ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAg
IH0KIAotICAgIEFTU0VSVChjYWxsRnJhbWUtPnZtKCkudG9wQ2FsbEZyYW1lID09IGNhbGxGcmFt
ZSk7Ci0KICAgICAvLyBEZWZpbmUgdGhlIHBzZXVkbyByZWdpc3RlcnMgdXNlZCBieSB0aGUgTExJ
TlQgQyBMb29wIGJhY2tlbmQ6CiAgICAgQVNTRVJUKHNpemVvZihDTG9vcFJlZ2lzdGVyKSA9PSBz
aXplb2YoaW50cHRyX3QpKTsKIApAQCAtMzA4LDY5ICszMjIsNjYgQEAgSlNWYWx1ZSBDTG9vcDo6
ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogICAgIC8vIDIuIDMyIGJpdCByZXN1bHQgdmFsdWVz
IHdpbGwgYmUgaW4gdGhlIGxvdyAzMi1iaXQgb2YgdDAuCiAgICAgLy8gMy4gNjQgYml0IHJlc3Vs
dCB2YWx1ZXMgd2lsbCBiZSBpbiB0MC4KIAotICAgIENMb29wUmVnaXN0ZXIgdDAsIHQxLCB0Miwg
dDM7CisgICAgQ0xvb3BSZWdpc3RlciB0MCwgdDEsIHQyLCB0MywgdDUsIHNwLCBjZnIsIGxyLCBw
YzsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIENMb29wUmVnaXN0ZXIgckJhc2VQQywgdGFnVHlw
ZU51bWJlciwgdGFnTWFzazsKKyAgICBDTG9vcFJlZ2lzdGVyIHBjQmFzZSwgdGFnVHlwZU51bWJl
ciwgdGFnTWFzazsKICNlbmRpZgotICAgIENMb29wUmVnaXN0ZXIgclJldFZQQzsKICAgICBDTG9v
cERvdWJsZVJlZ2lzdGVyIGQwLCBkMTsKIAotICAgIC8vIEtlZXAgdGhlIGNvbXBpbGVyIGhhcHB5
LiBXZSBkb24ndCByZWFsbHkgbmVlZCB0aGlzLCBidXQgdGhlIGNvbXBpbGVyCi0gICAgLy8gd2ls
bCBjb21wbGFpbi4gVGhpcyBtYWtlcyB0aGUgd2FybmluZyBnbyBhd2F5LgotICAgIHQwLmkgPSAw
OwotICAgIHQxLmkgPSAwOwotCi0gICAgVk0qIHZtID0gJmNhbGxGcmFtZS0+dm0oKTsKLQotICAg
IENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKLSAgICBJbnN0
cnVjdGlvbiogdlBDOwotCi0gICAgLy8gclBDIGlzIGFuIGFsaWFzIGZvciB2UEMuIFNldCB1cCB0
aGUgYWxpYXM6Ci0gICAgQ0xvb3BSZWdpc3RlciYgclBDID0gKkNBU1Q8Q0xvb3BSZWdpc3Rlcio+
KCZ2UEMpOworICAgIGxyLm9wY29kZSA9IGdldE9wY29kZShsbGludF9yZXR1cm5fdG9faG9zdCk7
CisgICAgc3AudnAgPSB2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkudG9wT2ZTdGFjaygpICsgMTsK
KyAgICBjZnIuY2FsbEZyYW1lID0gdm0tPnRvcENhbGxGcmFtZTsKKyNpZm5kZWYgTkRFQlVHCisg
ICAgdm9pZCogc3RhcnRTUCA9IHNwLnZwOworICAgIENhbGxGcmFtZSogc3RhcnRDRlIgPSBjZnIu
Y2FsbEZyYW1lOworI2VuZGlmCiAKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIHZQQyA9IGNv
ZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKLSNlbHNlIC8vIFVTRShKU1ZBTFVFNjQp
Ci0gICAgdlBDID0gMDsKLSAgICByQmFzZVBDLnZwID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMo
KS5iZWdpbigpOworICAgIC8vIEluaXRpYWxpemUgdGhlIGluY29taW5nIGFyZ3MgZm9yIGRvQ2Fs
bFRvSmF2YVNjcmlwdDoKKyAgICB0MC52cCA9IGV4ZWN1dGFibGVBZGRyZXNzOworICAgIHQxLnZt
ID0gdm07CisgICAgdDIucHJvdG9DYWxsRnJhbWUgPSBwcm90b0NhbGxGcmFtZTsKIAorI2lmIFVT
RShKU1ZBTFVFNjQpCiAgICAgLy8gRm9yIHRoZSBBU00gbGxpbnQsIEpJVFN0dWJzIHRha2VzIGNh
cmUgb2YgdGhpcyBpbml0aWFsaXphdGlvbi4gV2UgZG8KICAgICAvLyBpdCBleHBsaWNpdGx5IGhl
cmUgZm9yIHRoZSBDIGxvb3A6CiAgICAgdGFnVHlwZU51bWJlci5pID0gMHhGRkZGMDAwMDAwMDAw
MDAwOwogICAgIHRhZ01hc2suaSA9IDB4RkZGRjAwMDAwMDAwMDAwMjsKICNlbmRpZiAvLyBVU0Uo
SlNWQUxVRTY0KQogCi0gICAgLy8gY2ZyIGlzIGFuIGFsaWFzIGZvciBjYWxsRnJhbWUuIFNldCB1
cCB0aGlzIGFsaWFzOgotICAgIENMb29wUmVnaXN0ZXImIGNmciA9ICpDQVNUPENMb29wUmVnaXN0
ZXIqPigmY2FsbEZyYW1lKTsKLQotICAgIC8vIFNpbXVsYXRlIGEgbmF0aXZlIHJldHVybiBQQyB3
aGljaCBzaG91bGQgbmV2ZXIgYmUgdXNlZDoKLSAgICByUmV0VlBDLmkgPSAweGJiYWRiZWVmOwot
CiAgICAgLy8gSW50ZXJwcmV0ZXIgdmFyaWFibGVzIGZvciB2YWx1ZSBwYXNzaW5nIGJldHdlZW4g
b3Bjb2RlcyBhbmQvb3IgaGVscGVyczoKICAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jID0g
MDsKICAgICBKU1ZhbHVlIGZ1bmN0aW9uUmV0dXJuVmFsdWU7Ci0gICAgT3Bjb2RlIG9wY29kZTsK
KyAgICBPcGNvZGUgb3Bjb2RlID0gZ2V0T3Bjb2RlKGVudHJ5T3Bjb2RlSUQpOwogCi0gICAgb3Bj
b2RlID0gZW50cnlPcGNvZGU7CisjZGVmaW5lIFBVU0goY2xvb3BSZWcpIFwKKyAgICBkbyB7IFwK
KyAgICAgICAgc3AuaXAtLTsgXAorICAgICAgICAqc3AuaXAgPSBjbG9vcFJlZy5pOyBcCisgICAg
fSB3aGlsZSAoZmFsc2UpCisKKyNkZWZpbmUgUE9QKGNsb29wUmVnKSBcCisgICAgZG8geyBcCisg
ICAgICAgIGNsb29wUmVnLmkgPSAqc3AuaXA7IFwKKyAgICAgICAgc3AuaXArKzsgXAorICAgIH0g
d2hpbGUgKGZhbHNlKQorCisjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKKyNkZWZpbmUgUkVDT1JE
X09QQ09ERV9TVEFUUyhfX29wY29kZSkgT3Bjb2RlU3RhdHM6OnJlY29yZEluc3RydWN0aW9uKF9f
b3Bjb2RlKQorI2Vsc2UKKyNkZWZpbmUgUkVDT1JEX09QQ09ERV9TVEFUUyhfX29wY29kZSkKKyNl
bmRpZgogCi0gICAgI2lmIEVOQUJMRShPUENPREVfU1RBVFMpCi0gICAgICAgICNkZWZpbmUgUkVD
T1JEX09QQ09ERV9TVEFUUyhfX29wY29kZSkgXAotICAgICAgICAgICAgT3Bjb2RlU3RhdHM6OnJl
Y29yZEluc3RydWN0aW9uKF9fb3Bjb2RlKQotICAgICNlbHNlCi0gICAgICAgICNkZWZpbmUgUkVD
T1JEX09QQ09ERV9TVEFUUyhfX29wY29kZSkKLSAgICAjZW5kaWYKLQotICAgICNpZiBVU0UoSlNW
QUxVRTMyXzY0KQotICAgICAgICAjZGVmaW5lIEZFVENIX09QQ09ERSgpIHZQQy0+dS5vcGNvZGUK
LSAgICAjZWxzZSAvLyBVU0UoSlNWQUxVRTY0KQotICAgICAgICAjZGVmaW5lIEZFVENIX09QQ09E
RSgpICpiaXR3aXNlX2Nhc3Q8T3Bjb2RlKj4ockJhc2VQQy5pOHAgKyByUEMuaSAqIDgpCi0gICAg
I2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCi0KLSAgICAjZGVmaW5lIE5FWFRfSU5TVFJVQ1RJT04o
KSBcCi0gICAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAg
b3Bjb2RlID0gRkVUQ0hfT1BDT0RFKCk7IFwKLSAgICAgICAgICAgIERJU1BBVENIX09QQ09ERSgp
OyAgICAgICBcCi0gICAgICAgIH0gd2hpbGUgKGZhbHNlKQorI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CisjZGVmaW5lIEZFVENIX09QQ09ERSgpIHBjLm9wY29kZQorI2Vsc2UgLy8gVVNFKEpTVkFMVUU2
NCkKKyNkZWZpbmUgRkVUQ0hfT1BDT0RFKCkgKmJpdHdpc2VfY2FzdDxPcGNvZGUqPihwY0Jhc2Uu
aThwICsgcGMuaSAqIDgpCisjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKKworI2RlZmluZSBORVhU
X0lOU1RSVUNUSU9OKCkgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICBvcGNvZGUgPSBGRVRDSF9PUENPREUoKTsgXAorICAgICAgICBESVNQQVRDSF9PUENPREUo
KTsgICAgICAgXAorICAgIH0gd2hpbGUgKGZhbHNlKQogCiAjaWYgRU5BQkxFKENPTVBVVEVEX0dP
VE9fT1BDT0RFUykKIApAQCAtNDEyLDE0ICs0MjMsMjIgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0
ZShDYWxsRnJhbWUqIGNhbGxGcgogCiAgICAgICAgICNpbmNsdWRlICJMTEludEFzc2VtYmx5Lmgi
CiAKKyAgICAgICAgT0ZGTElORV9BU01fR0xVRV9MQUJFTChsbGludF9yZXR1cm5fdG9faG9zdCkK
KyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHN0YXJ0U1AgPT0gc3AudnApOworICAgICAg
ICAgICAgQVNTRVJUKHN0YXJ0Q0ZSID09IGNmci5jYWxsRnJhbWUpOworI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSh0MS5pLCB0MC5pKTsgLy8gcmV0dXJu
aW5nIEpTVmFsdWUodGFnLCBwYXlsb2FkKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZGVjb2RlKHQwLmVuY29kZWRKU1ZhbHVlKTsKKyNlbmRpZgorICAgICAgICB9CisKICAg
ICAgICAgLy8gSW4gdGhlIEFTTSBsbGludCwgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSgpIGlzIGEg
cGllY2Ugb2YgZ2x1ZQotICAgICAgICAvLyBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGUgSklUIChz
ZWUgZGZnL0RGR09wZXJhdGlvbnMuY3BwKS4KKyAgICAgICAgLy8gZnVuY3Rpb24gcHJvdmlkZWQg
YnkgdGhlIEpJVCAoc2VlIGppdC9KSVRPcGVyYXRpb25zLmNwcCkuCiAgICAgICAgIC8vIFdlIHNp
bXVsYXRlIGl0IGhlcmUgd2l0aCBhIHBzZWR1by1vcGNvZGUgaGFuZGxlci4KICAgICAgICAgT0ZG
TElORV9BU01fR0xVRV9MQUJFTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICAvLyBUaGUgQVNNIHBhcnQgcG9wcyB0aGUgZnJhbWU6Ci0gICAgICAgICAgICBj
YWxsRnJhbWUgPSBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCk7Ci0KICAgICAgICAgICAgIC8vIFRo
ZSBwYXJ0IGluIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKCk6CiAgICAgICAg
ICAgICBKU1ZhbHVlIHJlc3VsdCA9IHZtLT5ob3N0Q2FsbFJldHVyblZhbHVlOwogI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCkBAIC00MjgsMTIgKzQ0Nyw4IEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUo
Q2FsbEZyYW1lKiBjYWxsRnIKICNlbHNlCiAgICAgICAgICAgICB0MC5lbmNvZGVkSlNWYWx1ZSA9
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogI2VuZGlmCi0gICAgICAgICAgICBnb3RvIGRvUmV0
dXJuSGVscGVyOwotICAgICAgICB9Ci0KLSAgICAgICAgT0ZGTElORV9BU01fR0xVRV9MQUJFTChy
ZXR1cm5Gcm9tSmF2YVNjcmlwdCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHZtLT5l
eGNlcHRpb24oKTsKKyAgICAgICAgICAgIG9wY29kZSA9IGxyLm9wY29kZTsKKyAgICAgICAgICAg
IERJU1BBVENIX09QQ09ERSgpOwogICAgICAgICB9CiAKICNpZiAhRU5BQkxFKENPTVBVVEVEX0dP
VE9fT1BDT0RFUykKQEAgLTQ0Myw1NSArNDU4LDYgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShD
YWxsRnJhbWUqIGNhbGxGcgogCiAgICAgfSAvLyBFTkQgYnl0ZWNvZGUgaGFuZGxlciBjYXNlcy4K
IAotICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgLy8gQnl0ZWNvZGUgaGVscGVyczoKLQotICAg
IGRvUmV0dXJuSGVscGVyOiB7Ci0gICAgICAgIEFTU0VSVCghIWNhbGxGcmFtZSk7Ci0gICAgICAg
IGlmIChjYWxsRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkpIHsKLSNpZiBVU0UoSlNWQUxVRTMy
XzY0KQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUodDEuaSwgdDAuaSk7IC8vIHJldHVybmlu
ZyBKU1ZhbHVlKHRhZywgcGF5bG9hZCk7Ci0jZWxzZQotICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmRlY29kZSh0MC5lbmNvZGVkSlNWYWx1ZSk7Ci0jZW5kaWYKLSAgICAgICAgfQotCi0gICAg
ICAgIC8vIFRoZSBub3JtYWwgQVNNIGxsaW50IGNhbGwgaW1wbGVtZW50YXRpb24gcmV0dXJucyB0
byB0aGUgY2FsbGVyIGFzCi0gICAgICAgIC8vIHJlY29yZGVkIGluIHJSZXRWUEMsIGFuZCB0aGUg
Y2FsbGVyIHdvdWxkIGZldGNoIHRoZSByZXR1cm4gYWRkcmVzcwotICAgICAgICAvLyBmcm9tIEFy
Z3VtZW50Q291bnQudGFnKCkgKHNlZSB0aGUgZGlzcGF0Y2hBZnRlckNhbGwoKSBtYWNybyB1c2Vk
IGluCi0gICAgICAgIC8vIHRoZSBjYWxsVGFyZ2V0RnVuY3Rpb24oKSBtYWNybyBpbiB0aGUgbGxp
bnQgYXNtIGZpbGVzKS4KLSAgICAgICAgLy8KLSAgICAgICAgLy8gRm9yIHRoZSBDIGxvb3AsIHdl
IGRvbid0IGhhdmUgdGhlIEpJVCBzdHViIHRvIGRvIHRoaXMgd29yayBmb3IgdXMuIFNvLAotICAg
ICAgICAvLyB3ZSBqdW1wIHRvIGxsaW50X2dlbmVyaWNfcmV0dXJuX3BvaW50LgotCi0gICAgICAg
IHZQQyA9IGNhbGxGcmFtZS0+Y3VycmVudFZQQygpOwotCi0jaWYgVVNFKEpTVkFMVUU2NCkKLSAg
ICAgICAgLy8gQmFzZWQgb24gTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSdzIGRpc3BhdGNoQWZ0
ZXJDYWxsKCk6Ci0KLSAgICAgICAgLy8gV2hlbiByZXR1cm5pbmcgZnJvbSBhIG5hdGl2ZSB0cmFt
cG9saW5lIGNhbGwsIHVubGlrZSB0aGUgYXNzZW1ibHkKLSAgICAgICAgLy8gTExJbnQsIHdlIGNh
bid0IHNpbXBseSByZXR1cm4gdG8gdGhlIGNhbGxlci4gSW4gb3VyIGNhc2UsIHdlIGdyYWIKLSAg
ICAgICAgLy8gdGhlIGNhbGxlcidzIFZQQyBhbmQgcmVzdW1lIGV4ZWN1dGlvbiB0aGVyZS4gSG93
ZXZlciwgdGhlIGNhbGxlcidzCi0gICAgICAgIC8vIFZQQyByZXR1cm5lZCBieSBjYWxsRnJhbWUt
PmN1cnJlbnRWUEMoKSBpcyBpbiB0aGUgZm9ybSBvZiB0aGUgcmVhbAotICAgICAgICAvLyBhZGRy
ZXNzIG9mIHRoZSB0YXJnZXQgYnl0ZWNvZGUsIGJ1dCB0aGUgNjQtYml0IGxsaW50IGV4cGVjdHMg
dGhlCi0gICAgICAgIC8vIFZQQyB0byBiZSBhIGJ5dGVjb2RlIG9mZnNldC4gSGVuY2UsIHdlIG5l
ZWQgdG8gbWFwIGl0IGJhY2sgdG8gYQotICAgICAgICAvLyBieXRlY29kZSBvZmZzZXQgYmVmb3Jl
IHdlIGRpc3BhdGNoIHZpYSB0aGUgdXN1YWwgZGlzcGF0Y2ggbWVjaGFuaXNtCi0gICAgICAgIC8v
IGkuZS4gTkVYVF9JTlNUUlVDVElPTigpOgotCi0gICAgICAgIGNvZGVCbG9jayA9IGNhbGxGcmFt
ZS0+Y29kZUJsb2NrKCk7Ci0gICAgICAgIEFTU0VSVChjb2RlQmxvY2spOwotICAgICAgICByUEMu
dnAgPSBjYWxsRnJhbWUtPmN1cnJlbnRWUEMoKTsKLSAgICAgICAgclBDLmkgPSByUEMuaThwIC0g
cmVpbnRlcnByZXRfY2FzdDxpbnQ4X3QqPihjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2lu
KCkpOwotICAgICAgICByUEMuaSA+Pj0gMzsKLQotICAgICAgICByQmFzZVBDLnZwID0gY29kZUJs
b2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwotI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCi0K
LSAgICAgICAgZ290byBsbGludF9nZW5lcmljX3JldHVybl9wb2ludDsKLQotICAgIH0gLy8gRU5E
IGRvUmV0dXJuSGVscGVyLgotCi0KICNpZiBFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQog
ICAgIC8vIEtlZXAgdGhlIGNvbXBpbGVyIGhhcHB5IHNvIHRoYXQgaXQgZG9lc24ndCBjb21wbGFp
biBhYm91dCB1bnVzZWQKICAgICAvLyBsYWJlbHMgZm9yIHRoZSBMTEludCB0cmFtcG9saW5lIGds
dWUuIFRoZSBsYWJlbHMgYXJlIGF1dG9tYXRpY2FsbHkKQEAgLTUyMywxMiArNDg5LDEyIEBAIEpT
VmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnIKIAogLy8gVGhlc2UgYXJlIGZv
ciBidWlsZGluZyBhbiBpbnRlcnByZXRlciBmcm9tIGdlbmVyYXRlZCBhc3NlbWJseSBjb2RlOgog
I2lmIENQVShYODZfNjQpICYmIENPTVBJTEVSKENMQU5HKQotI2RlZmluZSBPRkZMSU5FX0FTTV9C
RUdJTiAgIGFzbSAoIFwKKyNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4gICBhc20gKCAgICAgICAg
ICAgICAgICBcCiAgICAgIi5jZmlfc3RhcnRwcm9jXG4iCiAKLSNkZWZpbmUgT0ZGTElORV9BU01f
RU5EICAgICBcCi0gICAgIi5jZmlfZW5kcHJvY1xuIiBcCi0pOworI2RlZmluZSBPRkZMSU5FX0FT
TV9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAiLmNmaV9lbmRwcm9jXG4iICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KTsKICNlbHNlCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0JFR0lOICAgYXNtICgKICNkZWZpbmUgT0ZG
TElORV9BU01fRU5EICAgICApOwpAQCAtNTUxLDkgKzUxNyw5IEBAIEpTVmFsdWUgQ0xvb3A6OmV4
ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnIKICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhsYWJl
bCkgIlxuIiAgICAgICAgIFwKICAgICBISURFX1NZTUJPTChsYWJlbCkgIlxuIiAgICAgICAgICAg
ICAgICAgICAgIFwKICAgICBTWU1CT0xfU1RSSU5HKGxhYmVsKSAiOlxuIiAgICAgICAgICAgICAg
ICAgIFwKLSAgICAiLmNmaV9kZWZfY2ZhIHJicCwgMFxuIiAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICAiLmNmaV9vZmZzZXQgMTYsIDhcbiIgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAi
LmNmaV9vZmZzZXQgNiwgMFxuIgorICAgICIuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2XG4iICAgICAg
ICAgICAgICAgICAgXAorICAgICIuY2ZpX29mZnNldCAlcmJwLCAtMTZcbiIgICAgICAgICAgICAg
ICAgICAgXAorICAgICIuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIgcmJwXG4iCiAjZWxzZQogI2RlZmlu
ZSBPRkZMSU5FX0FTTV9HTE9CQUxfTEFCRUwobGFiZWwpICAgICAgICAgXAogICAgICIudGV4dFxu
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsdm0vbGlicmFyeS9MTFZNRXhwb3J0cy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsdm0vbGlicmFyeS9MTFZNRXhwb3J0cy5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbHZtL2xpYnJhcnkvTExWTUV4cG9y
dHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwxMCBAQCBleHRlcm4gIkMiIEpTQzo6
TExWTUFQSSogaW5pdGlhbGl6ZUFuZEdlCiAgICAgZ19sbHZtVHJhcENhbGxiYWNrID0gY2FsbGJh
Y2s7CiAgICAgCiAgICAgTExWTUluc3RhbGxGYXRhbEVycm9ySGFuZGxlcihsbHZtQ3Jhc2gpOwor
CisgICAgaWYgKCFMTFZNU3RhcnRNdWx0aXRocmVhZGVkKCkpCisgICAgICAgIGNhbGxiYWNrKCJD
b3VsZCBub3Qgc3RhcnQgTExWTSBtdWx0aXRocmVhZGluZyIpOworICAgIAogICAgIExMVk1MaW5r
SW5NQ0pJVCgpOwogICAgIExMVk1Jbml0aWFsaXplTmF0aXZlVGFyZ2V0KCk7CiAgICAgTExWTUlu
aXRpYWxpemVYODZBc21QcmludGVyKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hcm02NC5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hcm02NC5yYgkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vYXJtNjQucmIJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE0ICs0MCwxNCBA
QCByZXF1aXJlICJyaXNjIgogIyAgeDEgID0+IHQxLCBhMSwgcjEKICMgIHgyICA9PiB0MiwgYTIK
ICMgIHgzICA9PiBhMworIyAgeDUgID0+IHQ1CisjICB4NiAgPT4gdDYKICMgIHg5ICA9PiAobm9u
QXJnR1BSMSBpbiBiYXNlbGluZSkKLSMgeDEwICA9PiB0NCAodW51c2VkIGluIGJhc2VsaW5lKQot
IyB4MTEgID0+IHQ1ICh1bnVzZWQgaW4gYmFzZWxpbmUpCi0jIHgxMiAgPT4gdDYgKHVudXNlZCBp
biBiYXNlbGluZSkKICMgeDEzICA9PiBzY3JhdGNoICh1bnVzZWQgaW4gYmFzZWxpbmUpCiAjIHgx
NiAgPT4gc2NyYXRjaAogIyB4MTcgID0+IHNjcmF0Y2gKICMgeDIzICA9PiB0MworIyB4MjQgID0+
IHQ0CiAjIHgyNyAgPT4gY3NyMSAodGFnVHlwZU51bWJlcikKICMgeDI4ICA9PiBjc3IyICh0YWdN
YXNrKQogIyB4MjkgID0+IGNmcgpAQCAtMTEzLDExICsxMTMsMTEgQEAgY2xhc3MgUmVnaXN0ZXJJ
RAogICAgICAgICB3aGVuICd0MycKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDIzJywga2lu
ZCkKICAgICAgICAgd2hlbiAndDQnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gxMCcsIGtp
bmQpCisgICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gyNCcsIGtpbmQpCiAgICAgICAgIHdoZW4g
J3Q1JwotICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4MTEnLCBraW5kKQorICAgICAgICAgICAg
YXJtNjRHUFJOYW1lKCd4NScsIGtpbmQpCiAgICAgICAgIHdoZW4gJ3Q2JwotICAgICAgICAgICAg
YXJtNjRHUFJOYW1lKCd4MTInLCBraW5kKQorICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4Nics
IGtpbmQpCiAgICAgICAgIHdoZW4gJ2NmcicKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDI5
Jywga2luZCkKICAgICAgICAgd2hlbiAnY3NyMScKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2FybS5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hcm0ucmIJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2FybS5yYgkod29ya2luZyBjb3B5KQpAQCAtNjAxLDYgKzYwMSw4IEBA
IGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgInNtdWxsICN7b3BlcmFu
ZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4g
Im1lbWZlbmNlIgogICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgc3kiCisgICAgICAgIHdoZW4g
ImNscmJwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJiaWMgI3tvcGVyYW5kc1syXS5hcm1PcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5k
fSIKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbG93ZXJEZWZhdWx0CiAgICAgICAgIGVuZApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Nsb29wLnJiCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC02OCwzNCArNjgsMjIgQEAgQ19MT09QX1NDUkFUQ0hfRlBSID0gU3BlY2lhbFJlZ2lzdGVy
Lm5ldwogY2xhc3MgUmVnaXN0ZXJJRAogICAgIGRlZiBjbER1bXAKICAgICAgICAgY2FzZSBuYW1l
Ci0gICAgICAgIHdoZW4gImEwIgotICAgICAgICAgICAgImEwIgotICAgICAgICB3aGVuICJhMSIK
LSAgICAgICAgICAgICJhMSIKLSAgICAgICAgd2hlbiAiYTIiCi0gICAgICAgICAgICAiYTIiCi0g
ICAgICAgIHdoZW4gImEzIgotICAgICAgICAgICAgImEzIgotICAgICAgICB3aGVuICJhNCIKLSAg
ICAgICAgICAgICJhNCIKLSAgICAgICAgd2hlbiAiYTUiCi0gICAgICAgICAgICAiYTUiCi0gICAg
ICAgIHdoZW4gImE2IgotICAgICAgICAgICAgImE2IgotICAgICAgICB3aGVuICJhNiIKLSAgICAg
ICAgICAgICJhNiIKLSAgICAgICAgd2hlbiAidDAiCisgICAgICAgICMgVGhlIGNsb29wIGlzIG1v
ZGVsbGVkIG9uIHRoZSBBUk0gaW1wbGVtZW50YXRpb24uIEhlbmNlLCB0aGUgYTAtYTMKKyAgICAg
ICAgIyByZWdpc3RlcnMgYXJlIGFsaWFzZXMgZm9yIHIwLXIzIGkuZS4gdDAtdDMgaW4gb3VyIGNh
c2UuCisgICAgICAgIHdoZW4gInQwIiwgImEwIgogICAgICAgICAgICAgInQwIgotICAgICAgICB3
aGVuICJ0MSIKKyAgICAgICAgd2hlbiAidDEiLCAiYTEiCiAgICAgICAgICAgICAidDEiCi0gICAg
ICAgIHdoZW4gInQyIgorICAgICAgICB3aGVuICJ0MiIsICJhMiIKICAgICAgICAgICAgICJ0MiIK
LSAgICAgICAgd2hlbiAidDMiCisgICAgICAgIHdoZW4gInQzIiwgImEzIgogICAgICAgICAgICAg
InQzIgogICAgICAgICB3aGVuICJ0NCIKLSAgICAgICAgICAgICJyUEMiCisgICAgICAgICAgICAi
cGMiCisgICAgICAgIHdoZW4gInQ1IgorICAgICAgICAgICAgInQ1IgogICAgICAgICB3aGVuICJ0
NiIKLSAgICAgICAgICAgICJyQmFzZVBDIgorICAgICAgICAgICAgInBjQmFzZSIKICAgICAgICAg
d2hlbiAiY3NyMSIKICAgICAgICAgICAgICJ0YWdUeXBlTnVtYmVyIgogICAgICAgICB3aGVuICJj
c3IyIgpAQCAtMTAzLDcgKzkxLDcgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICB3aGVuICJj
ZnIiCiAgICAgICAgICAgICAiY2ZyIgogICAgICAgICB3aGVuICJsciIKLSAgICAgICAgICAgICJy
UmV0VlBDIgorICAgICAgICAgICAgImxyIgogICAgICAgICB3aGVuICJzcCIKICAgICAgICAgICAg
ICJzcCIKICAgICAgICAgZWxzZQpAQCAtNTU1LDE0ICs1NDMsMTQgQEAgZW5kCiAjIG9wZXJhbmRz
OiBjYWxsVGFyZ2V0LCBjdXJyZW50RnJhbWUsIGN1cnJlbnRQQwogZGVmIGNsb29wRW1pdENhbGxT
bG93UGF0aChvcGVyYW5kcykKICAgICAkYXNtLnB1dGMgInsiCi0gICAgJGFzbS5wdXRjICIgICAg
RXhlY1N0YXRlKiBleGVjID0gQ0FTVDxFeGVjU3RhdGUqPigje29wZXJhbmRzWzFdLmNsVmFsdWUo
OnZvaWRQdHIpfSk7IgotICAgICRhc20ucHV0YyAiICAgIEluc3RydWN0aW9uKiBwYyA9IENBU1Q8
SW5zdHJ1Y3Rpb24qPigje29wZXJhbmRzWzJdLmNsVmFsdWUoOnZvaWRQdHIpfSk7IgotICAgICRh
c20ucHV0YyAiICAgIFNsb3dQYXRoUmV0dXJuVHlwZSByZXN1bHQgPSAje29wZXJhbmRzWzBdLmNM
YWJlbH0oZXhlYywgcGMpOyIKLSAgICAkYXNtLnB1dGMgIiAgICBkZWNvZGVSZXN1bHQocmVzdWx0
LCB0MC5pbnN0cnVjdGlvbiwgdDEudnApOyIKKyAgICAkYXNtLnB1dGMgIiAgICBTbG93UGF0aFJl
dHVyblR5cGUgcmVzdWx0ID0gI3tvcGVyYW5kc1swXS5jTGFiZWx9KCN7b3BlcmFuZHNbMV0uY2xE
dW1wfSwgI3tvcGVyYW5kc1syXS5jbER1bXB9KTsiCisgICAgJGFzbS5wdXRjICIgICAgZGVjb2Rl
UmVzdWx0KHJlc3VsdCwgdDAudnAsIHQxLnZwKTsiCiAgICAgJGFzbS5wdXRjICJ9IgogZW5kCiAK
IGNsYXNzIEluc3RydWN0aW9uCisgICAgQEBkaWRSZXR1cm5Gcm9tSlNMYWJlbENvdW50ZXIgPSAw
CisKICAgICBkZWYgbG93ZXJDX0xPT1AKICAgICAgICAgJGFzbS5jb2RlT3JpZ2luIGNvZGVPcmln
aW5TdHJpbmcgaWYgJGVuYWJsZUNvZGVPcmlnaW5Db21tZW50cwogICAgICAgICAkYXNtLmFubm90
YXRpb24gYW5ub3RhdGlvbiBpZiAkZW5hYmxlSW5zdHJBbm5vdGF0aW9ucyAmJiAob3Bjb2RlICE9
ICJjbG9vcERvIikKQEAgLTg3Niw3ICs4NjQsOCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAg
ICB3aGVuICJicmVhayIKICAgICAgICAgICAgICRhc20ucHV0YyAiQ1JBU0goKTsgLy8gYnJlYWsg
aW5zdHJ1Y3Rpb24gbm90IGltcGxlbWVudGVkLiIKICAgICAgICAgd2hlbiAicmV0IgotICAgICAg
ICAgICAgJGFzbS5wdXRjICJnb3RvIGRvUmV0dXJuSGVscGVyOyIKKyAgICAgICAgICAgICRhc20u
cHV0YyAib3Bjb2RlID0gbHIub3Bjb2RlOyIKKyAgICAgICAgICAgICRhc20ucHV0YyAiRElTUEFU
Q0hfT1BDT0RFKCk7IgogCiAgICAgICAgIHdoZW4gImNiZXEiCiAgICAgICAgICAgICBjbG9vcEVt
aXRDb21wYXJlQW5kU2V0KG9wZXJhbmRzLCA6dWludDgsICI9PSIpCkBAIC0xMDk3LDYgKzEwODYs
MTIgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGNsb29wRW1pdE9wQW5kQnJhbmNo
KG9wZXJhbmRzLCAifCIsIDppbnQzMiwgIiE9IDAiKQogICAgICAgICAgICAgCiAgICAgICAgIHdo
ZW4gIm1lbWZlbmNlIgorCisgICAgICAgIHdoZW4gInB1c2giCisgICAgICAgICAgICAkYXNtLnB1
dGMgIlBVU0goI3tvcGVyYW5kc1swXS5jbER1bXB9KTsiCisgICAgICAgIHdoZW4gInBvcCIKKyAg
ICAgICAgICAgICRhc20ucHV0YyAiUE9QKCN7b3BlcmFuZHNbMF0uY2xEdW1wfSk7IgorCiAgICAg
ICAgIHdoZW4gInB1c2hDYWxsZWVTYXZlcyIKICAgICAgICAgd2hlbiAicG9wQ2FsbGVlU2F2ZXMi
CiAKQEAgLTExMTMsOCArMTEwOCwxMSBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAjIHVz
ZSBvZiB0aGUgY2FsbCBpbnN0cnVjdGlvbi4gSW5zdGVhZCwgd2UganVzdCBpbXBsZW1lbnQgSlMg
Y2FsbHMKICAgICAgICAgIyBhcyBhbiBvcGNvZGUgZGlzcGF0Y2guCiAgICAgICAgIHdoZW4gImNs
b29wQ2FsbEpTRnVuY3Rpb24iCisgICAgICAgICAgICBAQGRpZFJldHVybkZyb21KU0xhYmVsQ291
bnRlciArPSAxCisgICAgICAgICAgICAkYXNtLnB1dGMgImxyLm9wY29kZSA9IGdldE9wY29kZShs
bGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfI3tAQGRpZFJldHVybkZyb21KU0xhYmVsQ291
bnRlcn0pOyIKICAgICAgICAgICAgICRhc20ucHV0YyAib3Bjb2RlID0gI3tvcGVyYW5kc1swXS5j
bFZhbHVlKDpvcGNvZGUpfTsiCiAgICAgICAgICAgICAkYXNtLnB1dGMgIkRJU1BBVENIX09QQ09E
RSgpOyIKKyAgICAgICAgICAgICRhc20ucHV0c0xhYmVsKCJsbGludF9jbG9vcF9kaWRfcmV0dXJu
X2Zyb21fanNfI3tAQGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlcn0iKQogCiAgICAgICAgICMg
V2UgY2FuJ3QgZG8gZ2VuZXJpYyBmdW5jdGlvbiBjYWxscyB3aXRoIGFuIGFyYml0cmFyeSBzZXQg
b2YgYXJncywgYnV0CiAgICAgICAgICMgZm9ydHVuYXRlbHkgd2UgZG9uJ3QgaGF2ZSB0byBoZXJl
LiBBbGwgbmF0aXZlIGZ1bmN0aW9uIGNhbGxzIGFsd2F5cwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkocmV2aXNpb24gMTYyOTE0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTgsNiArMjU4LDExIEBAIFg4Nl9JTlNUUlVDVElPTlMgPQogICAg
ICAiaWRpdmkiCiAgICAgXQogCitBUk1fSU5TVFJVQ1RJT05TID0KKyAgICBbCisgICAgICJjbHJi
cCIKKyAgICBdCisKIEFSTTY0X0lOU1RSVUNUSU9OUyA9CiAgICAgWwogICAgICAicG9wTFJBbmRG
UCIsICAgIyBBUk02NCByZXF1aXJlcyByZWdpc3RlcnMgdG8gYmUgcHVzaGVkIGFuZCBwb3BwZWQg
aW4gcGFpcnMsCkBAIC0zMTMsNyArMzE4LDcgQEAgQ1hYX0lOU1RSVUNUSU9OUyA9CiAgICAgICJj
bG9vcERvIiwgICAgICAgICAgICAgICMgbm8gb3BlcmFuZHMKICAgICBdCiAKLUlOU1RSVUNUSU9O
UyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk02NF9JTlNUUlVD
VElPTlMgKyBSSVNDX0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsgU0g0X0lOU1RS
VUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKK0lOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RSVUNU
SU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk1fSU5TVFJVQ1RJT05TICsgQVJNNjRfSU5TVFJV
Q1RJT05TICsgUklTQ19JTlNUUlVDVElPTlMgKyBNSVBTX0lOU1RSVUNUSU9OUyArIFNINF9JTlNU
UlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCiAKIElOU1RSVUNUSU9OX1BBVFRFUk4gPSBSZWdl
eHAubmV3KCdcXEEoKCcgKyBJTlNUUlVDVElPTlMuam9pbignKXwoJykgKyAnKSlcXFonKQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCShyZXZpc2lvbiAxNjI5
MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHdvcmtpbmcg
Y29weSkKQEAgLTE1MCwxNSArMTUwLDE1IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgd2hl
biAidDQiCiAgICAgICAgICAgICBjYXNlIGtpbmQKICAgICAgICAgICAgIHdoZW4gOmJ5dGUKLSAg
ICAgICAgICAgICAgICAiJXNpbCIKKyAgICAgICAgICAgICAgICAiJWRpbCIKICAgICAgICAgICAg
IHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICAiJXNpIgorICAgICAgICAgICAgICAgICIlZGki
CiAgICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICAiJWVzaSIKKyAgICAgICAg
ICAgICAgICAiJWVkaSIKICAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIGlz
WDY0ID8gIiVyc2kiIDogIiVlc2kiCisgICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJkaSIgOiAi
JWVkaSIKICAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAgICBpc1g2NCA/ICIl
cnNpIiA6IHJhaXNlCisgICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJkaSIgOiByYWlzZQogICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICBlbmQKQEAg
LTIwNiwxNSArMjA2LDE1IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgd2hlbiAidDUiCiAg
ICAgICAgICAgICBjYXNlIGtpbmQKICAgICAgICAgICAgIHdoZW4gOmJ5dGUKLSAgICAgICAgICAg
ICAgICAiJWRpbCIKKyAgICAgICAgICAgICAgICAiJXNpbCIKICAgICAgICAgICAgIHdoZW4gOmhh
bGYKLSAgICAgICAgICAgICAgICAiJWRpIgorICAgICAgICAgICAgICAgICIlc2kiCiAgICAgICAg
ICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICAiJWVkaSIKKyAgICAgICAgICAgICAgICAi
JWVzaSIKICAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVy
ZGkiIDogIiVlZGkiCisgICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJzaSIgOiAiJWVzaSIKICAg
ICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcmRpIiA6IHJh
aXNlCisgICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJzaSIgOiByYWlzZQogICAgICAgICAgICAg
ZW5kCiAgICAgICAgIHdoZW4gInQ2IgogICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tu
YW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAkocmV2aXNp
b24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFBhcnNlckVycm9yX2gK
IAogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIlBhcnNlclRva2Vucy5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtOTQsOCArOTUsMTAgQEAgc3RydWN0
IFBhcnNlckVycm9yIHsKICAgICAgICAgICAgIHJldHVybiBhZGRFcnJvckluZm8oZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCksIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgbV9tZXNz
YWdlKSwgbV9saW5lLCBzb3VyY2UpOwogICAgICAgICBjYXNlIEV2YWxFcnJvcjoKICAgICAgICAg
ICAgIHJldHVybiBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsIG1fbWVzc2FnZSk7Ci0g
ICAgICAgIGNhc2UgU3RhY2tPdmVyZmxvdzoKKyAgICAgICAgY2FzZSBTdGFja092ZXJmbG93OiB7
CisgICAgICAgICAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZShnbG9iYWxPYmplY3Qt
PnZtKCkpOwogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihnbG9i
YWxPYmplY3QpOworICAgICAgICB9CiAgICAgICAgIGNhc2UgT3V0T2ZNZW1vcnk6CiAgICAgICAg
ICAgICByZXR1cm4gY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpOwogICAgICAg
ICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxh
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyQ29tcGlsYXRpb24uY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTY3LDYgKzY3LDExIEBAIHZvaWQgQ29tcGlsYXRpb246OmFkZERlc2NyaXB0
aW9uKGNvbnN0IEMKICAgICBtX2Rlc2NyaXB0aW9ucy5hcHBlbmQoY29tcGlsZWRCeXRlY29kZSk7
CiB9CiAKK3ZvaWQgQ29tcGlsYXRpb246OmFkZERlc2NyaXB0aW9uKGNvbnN0IE9yaWdpblN0YWNr
JiBzdGFjaywgY29uc3QgQ1N0cmluZyYgZGVzY3JpcHRpb24pCit7CisgICAgYWRkRGVzY3JpcHRp
b24oQ29tcGlsZWRCeXRlY29kZShzdGFjaywgZGVzY3JpcHRpb24pKTsKK30KKwogRXhlY3V0aW9u
Q291bnRlciogQ29tcGlsYXRpb246OmV4ZWN1dGlvbkNvdW50ZXJGb3IoY29uc3QgT3JpZ2luU3Rh
Y2smIG9yaWdpbikKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXhlY3V0aW9uQ291bnRlcj4mIGNv
dW50ZXIgPSBtX2NvdW50ZXJzLmFkZChvcmlnaW4sIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
Q29tcGlsYXRpb24uaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgQ29tcGlsYXRpb25LaW5kIGtpbmQoKSBjb25z
dCB7IHJldHVybiBtX2tpbmQ7IH0KICAgICAKICAgICB2b2lkIGFkZERlc2NyaXB0aW9uKGNvbnN0
IENvbXBpbGVkQnl0ZWNvZGUmKTsKKyAgICB2b2lkIGFkZERlc2NyaXB0aW9uKGNvbnN0IE9yaWdp
blN0YWNrJiwgY29uc3QgQ1N0cmluZyYgZGVzY3JpcHRpb24pOwogICAgIEV4ZWN1dGlvbkNvdW50
ZXIqIGV4ZWN1dGlvbkNvdW50ZXJGb3IoY29uc3QgT3JpZ2luU3RhY2smKTsKICAgICB2b2lkIGFk
ZE9TUkV4aXRTaXRlKGNvbnN0IFZlY3Rvcjxjb25zdCB2b2lkKj4mIGNvZGVBZGRyZXNzZXMpOwog
ICAgIE9TUkV4aXQqIGFkZE9TUkV4aXQodW5zaWduZWQgaWQsIGNvbnN0IE9yaWdpblN0YWNrJiwg
RXhpdEtpbmQsIGJvb2wgaXNXYXRjaHBvaW50KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2luZC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcAko
cmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyQ29tcGlsYXRpb25LaW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDIsNiArNDIsMTIgQEAgdm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpTQwogICAgIGNhc2UgSlNDOjpQcm9m
aWxlcjo6REZHOgogICAgICAgICBvdXQucHJpbnQoIkRGRyIpOwogICAgICAgICByZXR1cm47Cisg
ICAgY2FzZSBKU0M6OlByb2ZpbGVyOjpGVEw6CisgICAgICAgIG91dC5wcmludCgiRlRMIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6UHJvZmlsZXI6OkZUTEZvck9TUkVudHJ5Ogor
ICAgICAgICBvdXQucHJpbnQoIkZUTEZvck9TUkVudHJ5Iik7CisgICAgICAgIHJldHVybjsKICAg
ICBkZWZhdWx0OgogICAgICAgICBDUkFTSCgpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxh
dGlvbktpbmQuaAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMx
LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiBlbnVtIENvbXBpbGF0
aW9uS2luZCB7CiAgICAgTExJbnQsCiAgICAgQmFzZWxpbmUsCi0gICAgREZHCisgICAgREZHLAor
ICAgIEZUTCwKKyAgICBGVExGb3JPU1JFbnRyeQogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OlByb2ZpbGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcml0eUNoZWNr
TW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyaXR5
Q2hlY2tNb2RlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcml0eUNoZWNrTW9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBBcml0eUNo
ZWNrTW9kZV9oCisjZGVmaW5lIEFyaXR5Q2hlY2tNb2RlX2gKKworbmFtZXNwYWNlIEpTQyB7CisK
K2VudW0gQXJpdHlDaGVja01vZGUgeworICAgIEFyaXR5Q2hlY2tOb3RSZXF1aXJlZCwKKyAgICBN
dXN0Q2hlY2tBcml0eQorfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBBcml0
eUNoZWNrTW9kZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
blNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAy
MDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTAgKzI5LDEyIEBACiAjaWYgRU5BQkxFKEpJVCkgfHwg
RU5BQkxFKExMSU5UKQogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSAiQXJpdHlD
aGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCiAj
aW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgogI2luY2x1
ZGUgIkNvbW1vblNsb3dQYXRoc0V4Y2VwdGlvbnMuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5n
U2NvcGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJIb3N0Q2FsbFJl
dHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKQEAgLTE2MSwyOCArMTYzLDQ3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBDQUxMX0VORF9JTVBMKGNyRXhlYywgY3JDYWxs
VGFyZ2V0KTsgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKGZhbHNlKQogCitzdGF0aWMg
Q29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YSogc2V0dXBBcml0eUNoZWNrRGF0YShWTSYg
dm0sIGludCBzbG90c1RvQWRkKQoreworICAgIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0Rh
dGEqIHJlc3VsdCA9IHZtLmFyaXR5Q2hlY2tEYXRhLmdldCgpOworICAgIHJlc3VsdC0+cGFkZGVk
U3RhY2tTcGFjZSA9IHNsb3RzVG9BZGQ7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAodm0uY2Fu
VXNlSklUKCkpIHsKKyAgICAgICAgcmVzdWx0LT50aHVua1RvQ2FsbCA9IHZtLmdldENUSVN0dWIo
YXJpdHlGaXh1cCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CisgICAgICAgIHJlc3VsdC0+
cmV0dXJuUEMgPSB2bS5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENGb3Iodm0s
IHNsb3RzVG9BZGQgKiBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKS5leGVjdXRhYmxlQWRkcmVz
cygpOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgeworICAgICAgICByZXN1bHQtPnRodW5rVG9D
YWxsID0gMDsKKyAgICAgICAgcmVzdWx0LT5yZXR1cm5QQyA9IDA7CisgICAgfQorICAgIHJldHVy
biByZXN1bHQ7Cit9CisKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2sp
CiB7CiAgICAgQkVHSU4oKTsKLSAgICBpbnQgU2xvdHNUb0FkZCA9IENvbW1vblNsb3dQYXRoczo6
YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksIENvZGVGb3JDYWxs
KTsKLSAgICBpZiAoU2xvdHNUb0FkZCA8IDApIHsKKyAgICBpbnQgc2xvdHNUb0FkZCA9IENvbW1v
blNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCks
IENvZGVGb3JDYWxsKTsKKyAgICBpZiAoc2xvdHNUb0FkZCA8IDApIHsKICAgICAgICAgZXhlYyA9
IGV4ZWMtPmNhbGxlckZyYW1lKCk7CisgICAgICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNj
b3BlKGV4ZWMtPnZtKCkpOwogICAgICAgICBDb21tb25TbG93UGF0aHM6OmludGVycHJldGVyVGhy
b3dJbkNhbGxlcihleGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOwogICAgICAg
ICBSRVRVUk5fVFdPKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90Pigx
KSksIGV4ZWMpOwogICAgIH0KLSAgICBSRVRVUk5fVFdPKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8RXhl
Y1N0YXRlKj4oU2xvdHNUb0FkZCkpOworICAgIFJFVFVSTl9UV08oMCwgc2V0dXBBcml0eUNoZWNr
RGF0YSh2bSwgc2xvdHNUb0FkZCkpOwogfQogCiBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY29u
c3RydWN0X2FyaXR5Q2hlY2spCiB7CiAgICAgQkVHSU4oKTsKLSAgICBpbnQgU2xvdHNUb0FkZCA9
IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0
YWNrKCksIENvZGVGb3JDb25zdHJ1Y3QpOwotICAgIGlmIChTbG90c1RvQWRkIDwgMCkgeworICAg
IGludCBzbG90c1RvQWRkID0gQ29tbW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4ZWMsICZ2
bS5pbnRlcnByZXRlci0+c3RhY2soKSwgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgaWYgKHNsb3Rz
VG9BZGQgPCAwKSB7CiAgICAgICAgIGV4ZWMgPSBleGVjLT5jYWxsZXJGcmFtZSgpOworICAgICAg
ICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZShleGVjLT52bSgpKTsKICAgICAgICAgQ29t
bW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywgY3JlYXRlU3RhY2tP
dmVyZmxvd0Vycm9yKGV4ZWMpKTsKICAgICAgICAgUkVUVVJOX1RXTyhiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSkpLCBleGVjKTsKICAgICB9Ci0gICAgUkVUVVJO
X1RXTygwLCByZWludGVycHJldF9jYXN0PEV4ZWNTdGF0ZSo+KFNsb3RzVG9BZGQpKTsKKyAgICBS
RVRVUk5fVFdPKDAsIHNldHVwQXJpdHlDaGVja0RhdGEodm0sIHNsb3RzVG9BZGQpKTsKIH0KIAog
U0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3RvdWNoX2VudHJ5KQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogbmFtZXNw
YWNlIENvbW1vblNsb3dQYXRocyB7CiAKK3N0cnVjdCBBcml0eUNoZWNrRGF0YSB7CisgICAgdW5z
aWduZWQgcGFkZGVkU3RhY2tTcGFjZTsKKyAgICB2b2lkKiB0aHVua1RvQ2FsbDsKKyAgICB2b2lk
KiByZXR1cm5QQzsKK307CisKIEFMV0FZU19JTkxJTkUgaW50IGFyaXR5Q2hlY2tGb3IoRXhlY1N0
YXRlKiBleGVjLCBKU1N0YWNrKiBzdGFjaywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQog
ewogICAgIEpTRnVuY3Rpb24qIGNhbGxlZSA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oZXhlYy0+Y2Fs
bGVlKCkpOwpAQCAtNTgsMTggKzY0LDEyIEBAIEFMV0FZU19JTkxJTkUgaW50IGFyaXR5Q2hlY2tG
b3IoRXhlY1N0YXQKICAgICAKICAgICBBU1NFUlQoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMg
PCBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSk7CiAgICAgaW50IG1pc3NpbmdBcmd1bWVu
dENvdW50ID0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgLSBhcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpczsKLSAgICBpbnQgcGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291bnQgPSBXVEY6OnJv
dW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbWlzc2luZ0FyZ3Vt
ZW50Q291bnQpOworICAgIGludCBuZWVkZWRTdGFja1NwYWNlID0gbWlzc2luZ0FyZ3VtZW50Q291
bnQgKyAxOyAvLyBBbGxvdyBzcGFjZSB0byBzYXZlIHRoZSBvcmlnaW5hbCByZXR1cm4gUEMuCisg
ICAgaW50IHBhZGRlZFN0YWNrU3BhY2UgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tB
bGlnbm1lbnRSZWdpc3RlcnMoKSwgbmVlZGVkU3RhY2tTcGFjZSk7CiAKLSNpZiBVU0UoU0VQQVJB
VEVfQ19BTkRfSlNfU1RBQ0spCi0gICAgaWYgKCFzdGFjay0+Z3JvdyhleGVjLT5yZWdpc3RlcnMo
KSAtIHBhZGRlZE1pc3NpbmdBcmd1bWVudENvdW50KSkKKyAgICBpZiAoIXN0YWNrLT5lbnN1cmVD
YXBhY2l0eUZvcihleGVjLT5yZWdpc3RlcnMoKSAtIHBhZGRlZFN0YWNrU3BhY2UpKQogICAgICAg
ICByZXR1cm4gLTE7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdGFjayk7Ci0gICAgaWYgKCFl
eGVjLT52bSgpLmlzU2FmZVRvUmVjdXJzZShwYWRkZWRNaXNzaW5nQXJndW1lbnRDb3VudCAqIHNp
emVvZihSZWdpc3RlcikpKQotICAgICAgICByZXR1cm4gLTE7Ci0jZW5kaWYgLy8gVVNFKFNFUEFS
QVRFX0NfQU5EX0pTX1NUQUNLKQotCi0gICAgcmV0dXJuIHBhZGRlZE1pc3NpbmdBcmd1bWVudENv
dW50OworICAgIHJldHVybiBwYWRkZWRTdGFja1NwYWNlIC8gc3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKTsKIH0KIAogaW5saW5lIGJvb2wgb3BJbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgcHJv
cE5hbWUsIEpTVmFsdWUgYmFzZVZhbCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmNwcAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JIYW5k
bGluZ1Njb3BlLmgiCisKKyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9wdGlv
bnMuaCIKKyNpbmNsdWRlICJWTS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworRXJyb3JIYW5kbGlu
Z1Njb3BlOjpFcnJvckhhbmRsaW5nU2NvcGUoVk0mIHZtKQorICAgIDogbV92bSh2bSkKK3sKKyAg
ICBpZiAoIW1fdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5KQorICAgICAgICBtX3ZtLnN0YWNrUG9p
bnRlckF0Vk1FbnRyeSA9IHRoaXM7CisgICAgc2l6ZV90IG5ld1Jlc2VydmVkWm9uZVNpemUgPSBP
cHRpb25zOjplcnJvck1vZGVSZXNlcnZlZFpvbmVTaXplKCk7CisgICAgbV9zYXZlZFJlc2VydmVk
Wm9uZVNpemUgPSBtX3ZtLnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShuZXdS
ZXNlcnZlZFpvbmVTaXplKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIG1fdm0uaW50
ZXJwcmV0ZXItPnN0YWNrKCkuc2V0UmVzZXJ2ZWRab25lU2l6ZShuZXdSZXNlcnZlZFpvbmVTaXpl
KTsKKyNlbmRpZgorfQorCitFcnJvckhhbmRsaW5nU2NvcGU6On5FcnJvckhhbmRsaW5nU2NvcGUo
KQoreworICAgIGlmIChtX3ZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9PSB0aGlzKQorICAgICAg
ICBtX3ZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG51bGxwdHI7CisgICAgbV92bS51cGRhdGVT
dGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOwor
I2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgbV92bS5pbnRlcnByZXRlci0+c3RhY2soKS5z
ZXRSZXNlcnZlZFpvbmVTaXplKG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplKTsKKyNlbmRpZgorfQor
Cit9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9ySGFuZGxpbmdTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIEVycm9ySGFuZGxpbmdTY29wZV9oCisjZGVmaW5lIEVycm9ySGFuZGxp
bmdTY29wZV9oCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBWTTsKKworY2xhc3MgRXJyb3JI
YW5kbGluZ1Njb3BlIHsKK3B1YmxpYzoKKyAgICBKU19FWFBPUlRfUFJJVkFURSBFcnJvckhhbmRs
aW5nU2NvcGUoVk0mKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+RXJyb3JIYW5kbGluZ1Njb3Bl
KCk7Citwcml2YXRlOgorICAgIFZNJiBtX3ZtOworICAgIHNpemVfdCBtX3NhdmVkUmVzZXJ2ZWRa
b25lU2l6ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRXJyb3JIYW5k
bGluZ1Njb3BlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0
aW9uSGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhjZXB0aW9uSGVscGVycy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJDYWxs
RnJhbWUuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5nU2NvcGUuaCIKICNpbmNsdWRlICJFcnJv
ckluc3RhbmNlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIKICNpbmNs
dWRlICJKU09iamVjdC5oIgpAQCAtMTYwLDE0ICsxNjEsMTYgQEAgSlNPYmplY3QqIHRocm93T3V0
T2ZNZW1vcnlFcnJvcihFeGVjU3RhdAogCiBKU09iamVjdCogdGhyb3dTdGFja092ZXJmbG93RXJy
b3IoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9k
ZSBtb2RlKGV4ZWMpOwotICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMs
IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CisgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZSh2bSk7CisgICAgcmV0dXJuIHZt
LnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CiB9
CiAKIEpTT2JqZWN0KiB0aHJvd1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oRXhlY1N0YXRl
KiBleGVjKQogewotICAgIEludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZSBtb2RlKGV4ZWMp
OwotICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVRlcm1p
bmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oJmV4ZWMtPnZtKCkpKTsKKyAgICBWTSYgdm0gPSBleGVj
LT52bSgpOworICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKHZtKTsKKyAgICByZXR1
cm4gdm0udGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2Vw
dGlvbigmdm0pKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJMTEludEVudHJ5cG9pbnQuaCIKICNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCisjaW5jbHVkZSA8d3RmL0Nv
bW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTExOCwxMiArMTE5LDE0IEBAIHZvaWQgU2NyaXB0RXhl
Y3V0YWJsZTo6aW5zdGFsbENvZGUoQ29kZUIKICAgICBzd2l0Y2ggKGtpbmQpIHsKICAgICBjYXNl
IENvZGVGb3JDYWxsOgogICAgICAgICBtX2ppdENvZGVGb3JDYWxsID0gZ2VuZXJpY0NvZGVCbG9j
ay0+aml0Q29kZSgpOwotICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSBn
ZW5lcmljQ29kZUJsb2NrLT5qaXRDb2RlV2l0aEFyaXR5Q2hlY2soKTsKKyAgICAgICAgbV9qaXRD
b2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CisgICAg
ICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncyA9IE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cigpOwogICAgICAgICBtX251bVBhcmFtZXRlcnNGb3JDYWxsID0gZ2Vu
ZXJpY0NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvZGVGb3JDb25zdHJ1Y3Q6CiAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IGdlbmVy
aWNDb2RlQmxvY2stPmppdENvZGUoKTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0
aEFyaXR5Q2hlY2sgPSBnZW5lcmljQ29kZUJsb2NrLT5qaXRDb2RlV2l0aEFyaXR5Q2hlY2soKTsK
KyAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIoKTsKKyAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hl
Y2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAgICAgICAgbV9u
dW1QYXJhbWV0ZXJzRm9yQ29uc3RydWN0ID0gZ2VuZXJpY0NvZGVCbG9jay0+bnVtUGFyYW1ldGVy
cygpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xMzMsNyArMTM2LDYgQEAgdm9pZCBTY3Jp
cHRFeGVjdXRhYmxlOjppbnN0YWxsQ29kZShDb2RlQgogICAgICAgICBQcm9ncmFtRXhlY3V0YWJs
ZSogZXhlY3V0YWJsZSA9IGpzQ2FzdDxQcm9ncmFtRXhlY3V0YWJsZSo+KHRoaXMpOwogICAgICAg
ICBQcm9ncmFtQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBzdGF0aWNfY2FzdDxQcm9ncmFtQ29kZUJs
b2NrKj4oZ2VuZXJpY0NvZGVCbG9jayk7CiAgICAgICAgIAotICAgICAgICBBU1NFUlQoIWNvZGVC
bG9jay0+aml0Q29kZVdpdGhBcml0eUNoZWNrKCkpOwogICAgICAgICBBU1NFUlQoa2luZCA9PSBD
b2RlRm9yQ2FsbCk7CiAgICAgICAgIAogICAgICAgICBvbGRDb2RlQmxvY2sgPSBleGVjdXRhYmxl
LT5tX3Byb2dyYW1Db2RlQmxvY2s7CkBAIC0xNDUsNyArMTQ3LDYgQEAgdm9pZCBTY3JpcHRFeGVj
dXRhYmxlOjppbnN0YWxsQ29kZShDb2RlQgogICAgICAgICBFdmFsRXhlY3V0YWJsZSogZXhlY3V0
YWJsZSA9IGpzQ2FzdDxFdmFsRXhlY3V0YWJsZSo+KHRoaXMpOwogICAgICAgICBFdmFsQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSBzdGF0aWNfY2FzdDxFdmFsQ29kZUJsb2NrKj4oZ2VuZXJpY0NvZGVC
bG9jayk7CiAgICAgICAgIAotICAgICAgICBBU1NFUlQoIWNvZGVCbG9jay0+aml0Q29kZVdpdGhB
cml0eUNoZWNrKCkpOwogICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ2FsbCk7CiAgICAg
ICAgIAogICAgICAgICBvbGRDb2RlQmxvY2sgPSBleGVjdXRhYmxlLT5tX2V2YWxDb2RlQmxvY2s7
CkBAIC02MTAsNiArNjExLDQ2IEBAIFN0cmluZyBGdW5jdGlvbkV4ZWN1dGFibGU6OnBhcmFtU3Ry
aW5nKCkKICAgICByZXR1cm4gbV91bmxpbmtlZEV4ZWN1dGFibGUtPnBhcmFtU3RyaW5nKCk7CiB9
CiAKK3ZvaWQgRXhlY3V0YWJsZUJhc2U6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sK
KyAgICBFeGVjdXRhYmxlQmFzZSogcmVhbFRoaXMgPSBjb25zdF9jYXN0PEV4ZWN1dGFibGVCYXNl
Kj4odGhpcyk7CisgICAgCisgICAgaWYgKGNsYXNzSW5mbygpID09IE5hdGl2ZUV4ZWN1dGFibGU6
OmluZm8oKSkgeworICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmUgPSBqc0Nhc3Q8TmF0
aXZlRXhlY3V0YWJsZSo+KHJlYWxUaGlzKTsKKyAgICAgICAgb3V0LnByaW50KCJOYXRpdmVFeGVj
dXRhYmxlOiIsIFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihuYXRpdmUtPmZ1bmN0aW9u
KCkpKSwgIi8iLCBSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4obmF0aXZlLT5jb25zdHJ1
Y3RvcigpKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmIChjbGFzc0lu
Zm8oKSA9PSBFdmFsRXhlY3V0YWJsZTo6aW5mbygpKSB7CisgICAgICAgIEV2YWxFeGVjdXRhYmxl
KiBldmFsID0ganNDYXN0PEV2YWxFeGVjdXRhYmxlKj4ocmVhbFRoaXMpOworICAgICAgICBpZiAo
Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSBldmFsLT5jb2RlQmxvY2soKSkKKyAgICAgICAgICAgIG91
dC5wcmludCgqY29kZUJsb2NrKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0LnByaW50
KCJFdmFsRXhlY3V0YWJsZSB3L28gQ29kZUJsb2NrIik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgCisgICAgaWYgKGNsYXNzSW5mbygpID09IFByb2dyYW1FeGVjdXRhYmxlOjppbmZvKCkp
IHsKKyAgICAgICAgUHJvZ3JhbUV4ZWN1dGFibGUqIGV2YWwgPSBqc0Nhc3Q8UHJvZ3JhbUV4ZWN1
dGFibGUqPihyZWFsVGhpcyk7CisgICAgICAgIGlmIChDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV2
YWwtPmNvZGVCbG9jaygpKQorICAgICAgICAgICAgb3V0LnByaW50KCpjb2RlQmxvY2spOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBvdXQucHJpbnQoIlByb2dyYW1FeGVjdXRhYmxlIHcvbyBD
b2RlQmxvY2siKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBGdW5jdGlvbkV4
ZWN1dGFibGUqIGZ1bmN0aW9uID0ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KHJlYWxUaGlz
KTsKKyAgICBpZiAoIWZ1bmN0aW9uLT5laXRoZXJDb2RlQmxvY2soKSkKKyAgICAgICAgb3V0LnBy
aW50KCJGdW5jdGlvbkV4ZWN1dGFibGUgdy9vIENvZGVCbG9jayIpOworICAgIGVsc2UgeworICAg
ICAgICBDb21tYVByaW50ZXIgY29tbWEoIi8iKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uLT5jb2Rl
QmxvY2tGb3JDYWxsKCkpCisgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICpmdW5jdGlvbi0+
Y29kZUJsb2NrRm9yQ2FsbCgpKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uLT5jb2RlQmxvY2tGb3JD
b25zdHJ1Y3QoKSkKKyAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgKmZ1bmN0aW9uLT5jb2Rl
QmxvY2tGb3JDb25zdHJ1Y3QoKSk7CisgICAgfQorfQorCiBDb2RlQmxvY2tIYXNoIEV4ZWN1dGFi
bGVCYXNlOjpoYXNoRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkgY29uc3QKIHsKICAg
ICBpZiAodGhpcy0+Y2xhc3NJbmZvKCkgPT0gTmF0aXZlRXhlY3V0YWJsZTo6aW5mbygpKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAkocmV2aXNpb24g
MTYyOTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEV4ZWN1dGFibGVfaAogI2Rl
ZmluZSBFeGVjdXRhYmxlX2gKIAorI2luY2x1ZGUgIkFyaXR5Q2hlY2tNb2RlLmgiCiAjaW5jbHVk
ZSAiQ2FsbERhdGEuaCIKICNpbmNsdWRlICJDb2RlQmxvY2tIYXNoLmgiCiAjaW5jbHVkZSAiQ29k
ZVNwZWNpYWxpemF0aW9uS2luZC5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIkludGVy
cHJldGVyLmgiCiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgiCiAjaW5jbHVkZSAiU2Ft
cGxpbmdUb29sLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlVubGlua2Vk
Q29kZUJsb2NrLmgiCkBAIC0xNDQsMzcgKzE0Niw5NCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VS
VChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwogICAgICAgICByZXR1cm4gZ2VuZXJhdGVkSklU
Q29kZUZvckNvbnN0cnVjdCgpOwogICAgIH0KLQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBn
ZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrKCkKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChtX2ppdENvZGVGb3JDYWxsKTsKLSAgICAgICAgQVNTRVJUKG1faml0Q29kZUZvckNhbGxX
aXRoQXJpdHlDaGVjayk7Ci0gICAgICAgIHJldHVybiBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5
Q2hlY2s7Ci0gICAgfQotCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGdlbmVyYXRlZEpJVENv
ZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjaygpCi0gICAgewotICAgICAgICBBU1NFUlQobV9q
aXRDb2RlRm9yQ29uc3RydWN0KTsKLSAgICAgICAgQVNTRVJUKG1faml0Q29kZUZvckNvbnN0cnVj
dFdpdGhBcml0eUNoZWNrKTsKLSAgICAgICAgcmV0dXJuIG1faml0Q29kZUZvckNvbnN0cnVjdFdp
dGhBcml0eUNoZWNrOwotICAgIH0KLSAgICAgICAgCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IGdlbmVyYXRlZEpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQpCi0gICAgewotICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKLSAgICAgICAg
ICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrKCk7Ci0gICAg
ICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwotICAgICAgICByZXR1cm4gZ2Vu
ZXJhdGVkSklUQ29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKCk7Ci0gICAgfQotICAgICAg
ICAKLSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSklUQ29kZVdpdGhBcml0eUNoZWNrRm9y
KENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKKyAgICAKKyAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgZW50cnlwb2ludEZvcigKKyAgICAgICAgVk0mIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kIGtpbmQsIEFyaXR5Q2hlY2tNb2RlIGFyaXR5LCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUg
cmVnaXN0ZXJzKQogICAgIHsKLSAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCi0gICAg
ICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENvZGVG
b3JDYWxsV2l0aEFyaXR5Q2hlY2spOwotICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29u
c3RydWN0KTsKLSAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwg
bV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spOworICAgICAgICAvLyBDaGVjayBp
ZiB3ZSBoYXZlIGEgY2FjaGVkIHJlc3VsdC4gV2Ugb25seSBoYXZlIGl0IGZvciBhcml0eSBjaGVj
ayBiZWNhdXNlIHdlIHVzZSB0aGUKKyAgICAgICAgLy8gbm8tYXJpdHkgZW50cnlwb2ludCBpbiBu
b24tdmlydHVhbCBjYWxscywgd2hpY2ggd2lsbCAiY2FjaGUiIHRoaXMgdmFsdWUgZGlyZWN0bHkg
aW4KKyAgICAgICAgLy8gbWFjaGluZSBjb2RlLgorICAgICAgICBpZiAoYXJpdHkgPT0gTXVzdENo
ZWNrQXJpdHkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoa2luZCkgeworICAgICAgICAgICAgY2Fz
ZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAg
ICAgICAgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2ppdENv
ZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2spCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNl
IE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQ
cmVzZXJ2ZVJlZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgICAg
ICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgICAgIGlmIChNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgcmVzdWx0ID0gbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hl
Y2spCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVy
czoKKyAgICAgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQg
PSBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncykKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcmVzdWx0
ID0KKyAgICAgICAgICAgIGdlbmVyYXRlZEpJVENvZGVGb3Ioa2luZCktPmFkZHJlc3NGb3JDYWxs
KHZtLCB0aGlzLCBhcml0eSwgcmVnaXN0ZXJzKTsKKyAgICAgICAgaWYgKGFyaXR5ID09IE11c3RD
aGVja0FyaXR5KSB7CisgICAgICAgICAgICAvLyBDYWNoZSB0aGUgcmVzdWx0OyB0aGlzIGlzIG5l
Y2Vzc2FyeSBmb3IgdGhlIEpJVCdzIHZpcnR1YWwgY2FsbCBvcHRpbWl6YXRpb25zLgorICAgICAg
ICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAgICAgICBjYXNlIENvZGVGb3JDYWxsOgorICAg
ICAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAgICAgICAgY2FzZSBS
ZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAgICAgICBtX2pp
dENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAg
ICAgICAgICAgICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2
ZVJlZ3MgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ29kZUZvckNv
bnN0cnVjdDoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAg
ICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAg
ICAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSByZXN1bHQ7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTXVzdFByZXNl
cnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RX
aXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncyA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisg
ICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcigKKyAg
ICAgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1v
ZGUgcmVnaXN0ZXJzKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAgIGNh
c2UgQ29kZUZvckNhbGw6CisgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAg
ICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAg
ICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNh
bGxXaXRoQXJpdHlDaGVjayk7CisgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVy
czoKKyAgICAgICAgICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNl
LCBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MpOworICAgICAg
ICAgICAgfQorICAgICAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgICAgICBzd2l0
Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5v
dFJlcXVpcmVkOgorICAgICAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0
YWJsZUJhc2UsIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKTsKKyAgICAgICAg
ICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgIHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhB
cml0eUNoZWNrQW5kUHJlc2VydmVSZWdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKICAg
ICB9Ci0gICAgICAgIAorICAgIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOdW1QYXJh
bWV0ZXJzRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKICAgICB7CiAgICAgICAgIGlm
IChraW5kID09IENvZGVGb3JDYWxsKQpAQCAtMjEwLDIyICsyNjksOSBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICByZXR1cm4gaW50cmluc2ljKCk7CiAgICAgICAgIHJldHVybiBOb0ludHJpbnNpYzsK
ICAgICB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgICAg
IAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBob3N0Q29kZUVudHJ5Rm9yKENvZGVTcGVjaWFs
aXphdGlvbktpbmQga2luZCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2Rl
Rm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2FsbCgpOwotICAgIH0KLQotICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBqc0NvZGVFbnRyeUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAg
ewotICAgICAgICByZXR1cm4gZ2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS0+YWRkcmVzc0ZvckNh
bGwoKTsKLSAgICB9Ci0KLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIganNDb2RlV2l0aEFyaXR5
Q2hlY2tFbnRyeUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAgewotICAgICAg
ICByZXR1cm4gZ2VuZXJhdGVkSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQpOwotICAgIH0K
LQogcHJvdGVjdGVkOgogICAgIEV4ZWN1dGFibGVCYXNlKiBtX3ByZXY7CiAgICAgRXhlY3V0YWJs
ZUJhc2UqIG1fbmV4dDsKQEAgLTIzNCw2ICsyODAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRy
PEpJVENvZGU+IG1faml0Q29kZUZvckNvbnN0cnVjdDsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrOwogICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjazsKKyAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdz
OworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJp
dHlDaGVja0FuZFByZXNlcnZlUmVnczsKIH07CiAKIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGUgOiBw
dWJsaWMgRXhlY3V0YWJsZUJhc2UgewpAQCAtMjQyLDE0ICsyOTAsMTEgQEAgY2xhc3MgTmF0aXZl
RXhlY3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYgogcHVibGljOgogICAgIHR5cGVkZWYgRXhlY3V0
YWJsZUJhc2UgQmFzZTsKIAotICAgIHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUoVk0m
IHZtLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlvbiBmdW5j
dGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvbnN0cnVjdFRodW5rLCBOYXRpdmVGdW5jdGlv
biBjb25zdHJ1Y3RvciwgSW50cmluc2ljIGludHJpbnNpYykKKyAgICBzdGF0aWMgTmF0aXZlRXhl
Y3V0YWJsZSogY3JlYXRlKFZNJiB2bSwgUGFzc1JlZlB0cjxKSVRDb2RlPiBjYWxsVGh1bmssIE5h
dGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNvbnN0cnVjdFRodW5r
LCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvciwgSW50cmluc2ljIGludHJpbnNpYykKICAgICB7
CiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGU7CiAgICAgICAgIGV4ZWN1dGFi
bGUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPih2bS5oZWFw
KSkgTmF0aXZlRXhlY3V0YWJsZSh2bSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKLSAgICAgICAg
aWYgKCFjYWxsVGh1bmspCi0gICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbih2
bSwgMCwgMCwgaW50cmluc2ljKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZXhlY3V0YWJs
ZS0+ZmluaXNoQ3JlYXRpb24odm0sIEpJVENvZGU6Omhvc3RGdW5jdGlvbihjYWxsVGh1bmspLCBK
SVRDb2RlOjpob3N0RnVuY3Rpb24oY29uc3RydWN0VGh1bmspLCBpbnRyaW5zaWMpOworICAgICAg
ICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbih2bSwgY2FsbFRodW5rLCBjb25zdHJ1Y3RUaHVu
aywgaW50cmluc2ljKTsKICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgfQogCkBAIC0y
ODgsOCArMzMzLDYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBQYXNzUmVmUHRyPEpJVENvZGU+IGNhbGxUaHVuaywgUGFzc1JlZlB0cjxKSVRDb2RlPiBjb25z
dHJ1Y3RUaHVuaywgSW50cmluc2ljIGludHJpbnNpYykKICAgICB7CiAgICAgICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNr
ID0gY2FsbFRodW5rID8gY2FsbFRodW5rLT5hZGRyZXNzRm9yQ2FsbCgpIDogTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyKCk7Ci0gICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNr
ID0gY29uc3RydWN0VGh1bmsgPyBjb25zdHJ1Y3RUaHVuay0+YWRkcmVzc0ZvckNhbGwoKSA6IE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cigpOwogICAgICAgICBtX2ppdENvZGVGb3JDYWxsID0gY2FsbFRo
dW5rOwogICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3QgPSBjb25zdHJ1Y3RUaHVuazsKICAg
ICAgICAgbV9pbnRyaW5zaWMgPSBpbnRyaW5zaWM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3LDYg
Kzk3LDkgQEAgdW5pb24gRW5jb2RlZFZhbHVlRGVzY3JpcHRvciB7CiAjZW5kaWYKIH07CiAKKyNk
ZWZpbmUgVGFnT2Zmc2V0IChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnRhZykpCisjZGVmaW5lIFBheWxvYWRPZmZzZXQgKE9CSkVDVF9PRkZTRVRPRihFbmNv
ZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpCisKIGVudW0gV2hpY2hWYWx1ZVdv
cmQgewogICAgIFRhZ1dvcmQsCiAgICAgUGF5bG9hZFdvcmQKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDYg
KzI5MCwxMCBAQCBKU0xvY2s6OkRyb3BBbGxMb2Nrczo6RHJvcEFsbExvY2tzKEV4ZWNTCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2spOwogI2Vu
ZGlmCisgICAgbV9zYXZlZFJlc2VydmVkWm9uZVNpemUgPSBtX3ZtLT5yZXNlcnZlZFpvbmVTaXpl
KCk7CisgICAgbV9zYXZlZFN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG1fdm0tPnN0YWNrUG9pbnRl
ckF0Vk1FbnRyeTsKKyAgICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBudWxscHRyOwor
CiAgICAgaWYgKGFsd2F5c0Ryb3BMb2NrcykKICAgICAgICAgbV9sb2NrQ291bnQgPSBtX3ZtLT5h
cGlMb2NrKCkuZHJvcEFsbExvY2tzVW5jb25kaXRpb25hbGx5KHNwaW5Mb2NrKTsKICAgICBlbHNl
CkBAIC0zMDYsNiArMzEwLDEwIEBAIEpTTG9jazo6RHJvcEFsbExvY2tzOjpEcm9wQWxsTG9ja3Mo
Vk0qIHYKICNpZiBQTEFURk9STShJT1MpCiAgICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZzcGlu
TG9jayk7CiAjZW5kaWYKKyAgICBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fdm0tPnJlc2Vy
dmVkWm9uZVNpemUoKTsKKyAgICBtX3NhdmVkU3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbV92bS0+
c3RhY2tQb2ludGVyQXRWTUVudHJ5OworICAgIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9
IG51bGxwdHI7CisKICAgICBpZiAoYWx3YXlzRHJvcExvY2tzKQogICAgICAgICBtX2xvY2tDb3Vu
dCA9IG1fdm0tPmFwaUxvY2soKS5kcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoc3BpbkxvY2sp
OwogICAgIGVsc2UKQEAgLTMyMSw2ICszMjksOSBAQCBKU0xvY2s6OkRyb3BBbGxMb2Nrczo6fkRy
b3BBbGxMb2NrcygpCiAgICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZzcGluTG9jayk7CiAjZW5k
aWYKICAgICBtX3ZtLT5hcGlMb2NrKCkuZ3JhYkFsbExvY2tzKG1fbG9ja0NvdW50LCBzcGluTG9j
ayk7CisKKyAgICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBtX3NhdmVkU3RhY2tQb2lu
dGVyQXRWTUVudHJ5OworICAgIG1fdm0tPnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25l
U2l6ZShtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgJKHJldmlzaW9uIDE2Mjkx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCSh3b3JraW5nIGNv
cHkpCkBAIC05NSwxMCArOTUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKU19FWFBP
UlRfUFJJVkFURSBib29sIGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCk7CiAKLSAgICAgICAg
dW5zaWduZWQgZHJvcEFsbExvY2tzKFNwaW5Mb2NrJik7Ci0gICAgICAgIHVuc2lnbmVkIGRyb3BB
bGxMb2Nrc1VuY29uZGl0aW9uYWxseShTcGluTG9jayYpOwotICAgICAgICB2b2lkIGdyYWJBbGxM
b2Nrcyh1bnNpZ25lZCBsb2NrQ291bnQsIFNwaW5Mb2NrJik7Ci0KICAgICAgICAgdm9pZCB3aWxs
RGVzdHJveVZNKFZNKik7CiAKICAgICAgICAgY2xhc3MgRHJvcEFsbExvY2tzIHsKQEAgLTExNCw5
ICsxMTAsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHByaXZhdGU6CiAgICAgICAgICAg
ICBpbnRwdHJfdCBtX2xvY2tDb3VudDsKICAgICAgICAgICAgIFJlZlB0cjxWTT4gbV92bTsKKyAg
ICAgICAgICAgIHNpemVfdCBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZTsKKyAgICAgICAgICAgIHZv
aWQqIG1fc2F2ZWRTdGFja1BvaW50ZXJBdFZNRW50cnk7CiAgICAgICAgIH07CiAKICAgICBwcml2
YXRlOgorICAgICAgICB1bnNpZ25lZCBkcm9wQWxsTG9ja3MoU3BpbkxvY2smKTsKKyAgICAgICAg
dW5zaWduZWQgZHJvcEFsbExvY2tzVW5jb25kaXRpb25hbGx5KFNwaW5Mb2NrJik7CisgICAgICAg
IHZvaWQgZ3JhYkFsbExvY2tzKHVuc2lnbmVkIGxvY2tDb3VudCwgU3BpbkxvY2smKTsKKwogICAg
ICAgICBTcGluTG9jayBtX3NwaW5Mb2NrOwogICAgICAgICBNdXRleCBtX2xvY2s7CiAgICAgICAg
IFRocmVhZElkZW50aWZpZXIgbV9vd25lclRocmVhZDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjU0LDcgKzY1NCw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1Zh
bHUKICAgICAgICAgICAgICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKICAgICAgICAg
ICAgICAgICBBU1NFUlQoaXNKU0FycmF5KGFzT2JqZWN0KGluVmFsdWUpKSB8fCBhc09iamVjdChp
blZhbHVlKS0+aW5oZXJpdHMoSlNBcnJheTo6aW5mbygpKSk7CiAgICAgICAgICAgICAgICAgaWYg
KG9iamVjdFN0YWNrLnNpemUoKSArIGFycmF5U3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJl
Y3Vyc2lvbikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fZXhlYy0+dm0oKS50aHJvd0V4
Y2VwdGlvbihtX2V4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpKTsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYyk7CiAK
ICAgICAgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkoaW5WYWx1ZSk7CiAgICAg
ICAgICAgICAgICAgYXJyYXlTdGFjay5wdXNoKGFycmF5KTsKQEAgLTcwNSw3ICs3MDUsNyBAQCBO
RVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgICAgICAgICAg
QVNTRVJUKGluVmFsdWUuaXNPYmplY3QoKSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFpc0pT
QXJyYXkoYXNPYmplY3QoaW5WYWx1ZSkpICYmICFhc09iamVjdChpblZhbHVlKS0+aW5oZXJpdHMo
SlNBcnJheTo6aW5mbygpKSk7CiAgICAgICAgICAgICAgICAgaWYgKG9iamVjdFN0YWNrLnNpemUo
KSArIGFycmF5U3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihtX2V4ZWMsIGNy
ZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYyk7CiAKICAgICAgICAgICAgICAgICBK
U09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoaW5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgb2Jq
ZWN0U3RhY2sucHVzaChvYmplY3QpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5o
PgorI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMu
aD4KICNpbmNsdWRlIDx3dGYvUGFnZUJsb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgpAQCAtMTc1LDYgKzE3Niw0NSBAQCBjb25zdCBPcHRpb25zOjpFbnRyeUluZm8gT3B0aW9u
czo6c19vcHRpCiAjdW5kZWYgRk9SX0VBQ0hfT1BUSU9OCiB9OwogCitzdGF0aWMgdm9pZCByZWNv
bXB1dGVEZXBlbmRlbnRPcHRpb25zKCkKK3sKKyNpZiAhRU5BQkxFKEpJVCkKKyAgICBPcHRpb25z
Ojp1c2VKSVQoKSA9IGZhbHNlOworICAgIE9wdGlvbnM6OnVzZURGR0pJVCgpID0gZmFsc2U7Cisj
ZW5kaWYKKyNpZiAhRU5BQkxFKFlBUlJfSklUKQorICAgIE9wdGlvbnM6OnVzZVJlZ0V4cEpJVCgp
ID0gZmFsc2U7CisjZW5kaWYKKyAgICAKKyAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5
KCkKKyAgICAgICAgfHwgT3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkKKyAgICAgICAgfHwg
T3B0aW9uczo6ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCkKKyAgICAgICAgfHwgT3B0aW9uczo6ZHVt
cEdyYXBoQXRFYWNoUGhhc2UoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRp
b24oKQorICAgICAgICB8fCBPcHRpb25zOjpsb2dDb21waWxhdGlvbkNoYW5nZXMoKQorICAgICAg
ICB8fCBPcHRpb25zOjp2YWxpZGF0ZUdyYXBoKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRh
dGVHcmFwaEF0RWFjaFBoYXNlKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpCisg
ICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkKKyAgICAgICAgfHwg
T3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkKKyAgICAgICAgfHwgT3B0aW9uczo6cmVwb3J0
RlRMQ29tcGlsZVRpbWVzKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNGQSgpCisgICAg
ICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VGVExGYWlsdXJlKCkpCisgICAgICAgIE9wdGlvbnM6OmFs
d2F5c0NvbXB1dGVIYXNoKCkgPSB0cnVlOworICAgIAorICAgIC8vIENvbXB1dGUgdGhlIG1heGlt
dW0gdmFsdWUgb2YgdGhlIHJlb3B0aW1pemF0aW9uIHJldHJ5IGNvdW50ZXIuIFRoaXMgaXMgc2lt
cGx5CisgICAgLy8gdGhlIGxhcmdlc3QgdmFsdWUgYXQgd2hpY2ggd2UgZG9uJ3Qgb3ZlcmZsb3cg
dGhlIGV4ZWN1dGUgY291bnRlciwgd2hlbiB1c2luZyBpdAorICAgIC8vIHRvIGxlZnQtc2hpZnQg
dGhlIGV4ZWN1dGlvbiBjb3VudGVyIGJ5IHRoaXMgYW1vdW50LiBDdXJyZW50bHkgdGhlIHZhbHVl
IGVuZHMKKyAgICAvLyB1cCBiZWluZyAxOCwgc28gdGhpcyBsb29wIGlzIG5vdCBzbyB0ZXJyaWJs
ZTsgaXQgcHJvYmFibHkgdGFrZXMgdXAgfjEwMCBjeWNsZXMKKyAgICAvLyB0b3RhbCBvbiBhIDMy
LWJpdCBwcm9jZXNzb3IuCisgICAgT3B0aW9uczo6cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJN
YXgoKSA9IDA7CisgICAgd2hpbGUgKChzdGF0aWNfY2FzdDxpbnQ2NF90PihPcHRpb25zOjp0aHJl
c2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCAoT3B0aW9uczo6cmVvcHRpbWl6
YXRpb25SZXRyeUNvdW50ZXJNYXgoKSArIDEpKSA8PSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6
Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSkpCisgICAgICAgIE9wdGlvbnM6OnJlb3B0
aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkrKzsKKworICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8
aW50NjRfdD4oT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkg
PDwgT3B0aW9uczo6cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSkgPiAwKTsKKyAgICBB
U1NFUlQoKHN0YXRpY19jYXN0PGludDY0X3Q+KE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXpl
QWZ0ZXJMb25nV2FybVVwKCkpIDw8IE9wdGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVy
TWF4KCkpIDw9IHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJf
dD46Om1heCgpKSk7Cit9CisKIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgLy8g
SW5pdGlhbGl6ZSBlYWNoIG9mIHRoZSBvcHRpb25zIHdpdGggdGhlaXIgZGVmYXVsdCB2YWx1ZXM6
CkBAIC0yMDQsMzAgKzI0NCwxMiBAQCB2b2lkIE9wdGlvbnM6OmluaXRpYWxpemUoKQogICAgIDsg
Ly8gRGVjb25mdXNlIGVkaXRvcnMgdGhhdCBkbyBhdXRvIGluZGVudGF0aW9uCiAjZW5kaWYKICAg
ICAKLSNpZiAhRU5BQkxFKEpJVCkKLSAgICB1c2VKSVQoKSA9IGZhbHNlOwotICAgIHVzZURGR0pJ
VCgpID0gZmFsc2U7Ci0jZW5kaWYKLSNpZiAhRU5BQkxFKFlBUlJfSklUKQotICAgIHVzZVJlZ0V4
cEpJVCgpID0gZmFsc2U7Ci0jZW5kaWYKKyAgICByZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKCk7
CiAKICAgICAvLyBEbyByYW5nZSBjaGVja3Mgd2hlcmUgbmVlZGVkIGFuZCBtYWtlIGNvcnJlY3Rp
b25zIHRvIHRoZSBvcHRpb25zOgotICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVy
TG9uZ1dhcm1VcCgpID49IHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSk7Ci0gICAg
QVNTRVJUKHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSA+PSB0aHJlc2hvbGRGb3JP
cHRpbWl6ZVNvb24oKSk7Ci0gICAgQVNTRVJUKHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJt
VXAoKSA+PSAwKTsKLQotICAgIC8vIENvbXB1dGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdGhlIHJl
b3B0aW1pemF0aW9uIHJldHJ5IGNvdW50ZXIuIFRoaXMgaXMgc2ltcGx5Ci0gICAgLy8gdGhlIGxh
cmdlc3QgdmFsdWUgYXQgd2hpY2ggd2UgZG9uJ3Qgb3ZlcmZsb3cgdGhlIGV4ZWN1dGUgY291bnRl
ciwgd2hlbiB1c2luZyBpdAotICAgIC8vIHRvIGxlZnQtc2hpZnQgdGhlIGV4ZWN1dGlvbiBjb3Vu
dGVyIGJ5IHRoaXMgYW1vdW50LiBDdXJyZW50bHkgdGhlIHZhbHVlIGVuZHMKLSAgICAvLyB1cCBi
ZWluZyAxOCwgc28gdGhpcyBsb29wIGlzIG5vdCBzbyB0ZXJyaWJsZTsgaXQgcHJvYmFibHkgdGFr
ZXMgdXAgfjEwMCBjeWNsZXMKLSAgICAvLyB0b3RhbCBvbiBhIDMyLWJpdCBwcm9jZXNzb3IuCi0g
ICAgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSA9IDA7Ci0gICAgd2hpbGUgKChzdGF0
aWNfY2FzdDxpbnQ2NF90Pih0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8
PCAocmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSArIDEpKSA8PSBzdGF0aWNfY2FzdDxp
bnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyPjo6bWF4KCkpKQotICAgICAgICByZW9w
dGltaXphdGlvblJldHJ5Q291bnRlck1heCgpKys7Ci0KLSAgICBBU1NFUlQoKHN0YXRpY19jYXN0
PGludDY0X3Q+KHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IHJlb3B0
aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkpID4gMCk7Ci0gICAgQVNTRVJUKChzdGF0aWNfY2Fz
dDxpbnQ2NF90Pih0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCByZW9w
dGltaXphdGlvblJldHJ5Q291bnRlck1heCgpKSA8PSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6
Om51bWVyaWNfbGltaXRzPGludDMyPjo6bWF4KCkpKTsKKyAgICBBU1NFUlQoT3B0aW9uczo6dGhy
ZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSA+PSBPcHRpb25zOjp0aHJlc2hvbGRG
b3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkpOworICAgIEFTU0VSVChPcHRpb25zOjp0aHJlc2hvbGRG
b3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkgPj0gT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVT
b29uKCkpOworICAgIEFTU0VSVChPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2Fy
bVVwKCkgPj0gMCk7CiB9CiAKIC8vIFBhcnNlcyBhIHNpbmdsZSBjb21tYW5kIGxpbmUgb3B0aW9u
IGluIHRoZSBmb3JtYXQgIjxvcHRpb25OYW1lPj08dmFsdWU+IgpAQCAtMjUxLDYgKzI3Myw3IEBA
IGJvb2wgT3B0aW9uczo6c2V0T3B0aW9uKGNvbnN0IGNoYXIqIGFyZykKICAgICAgICAgYm9vbCBz
dWNjZXNzID0gcGFyc2UodmFsdWVTdHIsIHZhbHVlKTsgICAgICAgICAgXAogICAgICAgICBpZiAo
c3VjY2VzcykgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAg
ICBuYW1lXygpID0gdmFsdWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICAgIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKTsgICAgICAgICAgICAgICAgXAogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg
ICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApA
QCAtMjU5LDcgKzI4Miw3IEBAIGJvb2wgT3B0aW9uczo6c2V0T3B0aW9uKGNvbnN0IGNoYXIqIGFy
ZykKICAgICBKU0NfT1BUSU9OUyhGT1JfRUFDSF9PUFRJT04pCiAjdW5kZWYgRk9SX0VBQ0hfT1BU
SU9OCiAKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBObyBvcHRpb24gbWF0Y2hlZC4KKyAgICBy
ZXR1cm4gZmFsc2U7IC8vIE5vIG9wdGlvbiBtYXRjaGVkLgogfQogCiB2b2lkIE9wdGlvbnM6OmR1
bXBBbGxPcHRpb25zKEZJTEUqIHN0cmVhbSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCiAjaW5jbHVkZSA8
c3RkaW50Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC05NCw2ICs5NSwxMCBAQCB0eXBlZGVmIE9wdGlv
blJhbmdlIG9wdGlvblJhbmdlOwogICAgIHYoYm9vbCwgdXNlREZHSklULCB0cnVlKSBcCiAgICAg
dihib29sLCB1c2VSZWdFeHBKSVQsIHRydWUpIFwKICAgICBcCisgICAgdih1bnNpZ25lZCwgbWF4
UGVyVGhyZWFkU3RhY2tVc2FnZSwgNCAqIE1CKSBcCisgICAgdih1bnNpZ25lZCwgcmVzZXJ2ZWRa
b25lU2l6ZSwgMTI4ICogS0IpIFwKKyAgICB2KHVuc2lnbmVkLCBlcnJvck1vZGVSZXNlcnZlZFpv
bmVTaXplLCA2NCAqIEtCKSBcCisgICAgXAogICAgIHYoYm9vbCwgY3Jhc2hJZkNhbnRBbGxvY2F0
ZUpJVE1lbW9yeSwgZmFsc2UpIFwKICAgICBcCiAgICAgdihib29sLCBmb3JjZURGR0NvZGVCbG9j
a0xpdmVuZXNzLCBmYWxzZSkgXApAQCAtMTE4LDExICsxMjMsMTkgQEAgdHlwZWRlZiBPcHRpb25S
YW5nZSBvcHRpb25SYW5nZTsKICAgICB2KGJvb2wsIHZlcmJvc2VDYWxsTGluaywgZmFsc2UpIFwK
ICAgICB2KGJvb2wsIHZlcmJvc2VDb21waWxhdGlvblF1ZXVlLCBmYWxzZSkgXAogICAgIHYoYm9v
bCwgcmVwb3J0Q29tcGlsZVRpbWVzLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgcmVwb3J0RlRMQ29t
cGlsZVRpbWVzLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgdmVyYm9zZUNGQSwgZmFsc2UpIFwKKyAg
ICB2KGJvb2wsIHZlcmJvc2VGVExUb0pTVGh1bmssIGZhbHNlKSBcCisgICAgdihib29sLCB2ZXJi
b3NlRlRMRmFpbHVyZSwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIGFsd2F5c0NvbXB1dGVIYXNoLCBm
YWxzZSkgXAorICAgIHYoYm9vbCwgdGVzdFRoZUZUTCwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIHZl
cmJvc2VTYW5pdGl6ZVN0YWNrLCBmYWxzZSkgXAogICAgIFwKLSAgICB2KGJvb2wsIGVuYWJsZU9T
UkVudHJ5SW5Mb29wcywgdHJ1ZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlT1NSRW50cnlUb0RGRywg
dHJ1ZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlT1NSRW50cnlUb0ZUTCwgdHJ1ZSkgXAogICAgIFwK
ICAgICB2KGJvb2wsIHVzZUV4cGVyaW1lbnRhbEZUTCwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIGVu
YWJsZUV4cGVyaW1lbnRhbEZUTENvdmVyYWdlLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgdXNlRlRM
VEJBQSwgdHJ1ZSkgXAogICAgIHYoYm9vbCwgZW5hYmxlTExWTUZhc3RJU2VsLCBmYWxzZSkgXAog
ICAgIHYoYm9vbCwgdXNlTExWTVNtYWxsQ29kZU1vZGVsLCBmYWxzZSkgXApAQCAtMTM0LDEwICsx
NDcsMTIgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KHVuc2lnbmVk
LCBsbHZtQmFja2VuZE9wdGltaXphdGlvbkxldmVsLCAyKSBcCiAgICAgdih1bnNpZ25lZCwgbGx2
bU9wdGltaXphdGlvbkxldmVsLCAyKSBcCiAgICAgdih1bnNpZ25lZCwgbGx2bVNpemVMZXZlbCwg
MCkgXAorICAgIHYoYm9vbCwgbGx2bURpc2FsbG93QVZYLCB0cnVlKSBcCiAgICAgdihib29sLCBm
dGxDcmFzaGVzLCBmYWxzZSkgLyogZm9vbC1wcm9vZiB3YXkgb2YgY2hlY2tpbmcgdGhhdCB5b3Ug
ZW5kZWQgdXAgaW4gdGhlIEZUTC4gOy0pICovXAogICAgIFwKICAgICB2KGJvb2wsIGVuYWJsZUNv
bmN1cnJlbnRKSVQsIHRydWUpIFwKLSAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkNvbXBpbGVyVGhy
ZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcygyKSAtIDEpIFwKKyAgICB2KHVuc2ln
bmVkLCBudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhy
ZWFkcygyKSAtIDEpIFwKKyAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFk
cywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcyg4KSAtIDEpIFwKICAgICBcCiAgICAgdihi
b29sLCBlbmFibGVQcm9maWxlciwgZmFsc2UpIFwKICAgICBcCkBAIC0xNDYsNiArMTYxLDggQEAg
dHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICBcCiAgICAgdihib29sLCBlbmFi
bGVBcmNoaXRlY3R1cmVTcGVjaWZpY09wdGltaXphdGlvbnMsIHRydWUpIFwKICAgICBcCisgICAg
dihib29sLCBicmVha09uVGhyb3csIGZhbHNlKSBcCisgICAgXAogICAgIHYodW5zaWduZWQsIG1h
eGltdW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxMDAwMCkgXAogICAg
IFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtRnVuY3Rpb25Gb3JDYWxsSW5saW5lQ2FuZGlkYXRl
SW5zdHJ1Y3Rpb25Db3VudCwgMTgwKSBcCkBAIC0xNTQsNiArMTcxLDEyIEBAIHR5cGVkZWYgT3B0
aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7CiAgICAgXAogICAgIC8qIERlcHRoIG9mIGlubGluZSBzdGFj
aywgc28gMSA9IG5vIGlubGluaW5nLCAyID0gb25lIGxldmVsLCBldGMuICovIFwKICAgICB2KHVu
c2lnbmVkLCBtYXhpbXVtSW5saW5pbmdEZXB0aCwgNSkgXAorICAgIHYodW5zaWduZWQsIG1heGlt
dW1JbmxpbmluZ1JlY3Vyc2lvbiwgMikgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1Jbmxpbmlu
Z0RlcHRoRm9yTXVzdElubGluZSwgNykgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1Jbmxpbmlu
Z1JlY3Vyc2lvbkZvck11c3RJbmxpbmUsIDMpIFwKKyAgICBcCisgICAgdihib29sLCBlbmFibGVQ
b2x5dmFyaWFudENhbGxJbmxpbmluZywgdHJ1ZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlUG9seXZh
cmlhbnRCeUlkSW5saW5pbmcsIHRydWUpIFwKICAgICBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11
bUJpbmFyeVN0cmluZ1N3aXRjaENhc2VMZW5ndGgsIDUwKSBcCiAgICAgdih1bnNpZ25lZCwgbWF4
aW11bUJpbmFyeVN0cmluZ1N3aXRjaFRvdGFsTGVuZ3RoLCAyMDAwKSBcCkBAIC0yMTAsNiArMjMz
LDcgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KGJvb2wsIHNob3dP
YmplY3RTdGF0aXN0aWNzLCBmYWxzZSkgXAogICAgIFwKICAgICB2KGJvb2wsIGxvZ0dDLCBmYWxz
ZSkgXAorICAgIHYoYm9vbCwgZGlzYWJsZUdDLCBmYWxzZSkgXAogICAgIHYodW5zaWduZWQsIGdj
TWF4SGVhcFNpemUsIDApIFwKICAgICB2KGJvb2wsIHJlY29yZEdDUGF1c2VUaW1lcywgZmFsc2Up
IFwKICAgICB2KGJvb2wsIGxvZ0hlYXBTdGF0aXN0aWNzQXRFeGl0LCBmYWxzZSkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZV9oCisjZGVmaW5lIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTW9kZV9oCisKK25hbWVzcGFjZSBKU0MgeworCitlbnVtIFJlZ2lzdGVyUHJlc2VydmF0aW9u
TW9kZSB7CisgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCwKKyAgICBNdXN0UHJl
c2VydmVSZWdpc3RlcnMKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gUmVn
aXN0ZXJQcmVzZXJ2YXRpb25Nb2RlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RhY2tBbGlnbm1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdGFja0FsaWdubWVudC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0FsaWdubWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw4IEBACiAjZGVmaW5lIFN0YWNrQWxpZ25tZW50X2gKIAogI2luY2x1ZGUgIkpT
Q0pTVmFsdWUuaCIKKyNpbmNsdWRlICJKU1N0YWNrLmgiCisjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTM4LDYgKzQwLDI1IEBAIGlubGluZSB1bnNp
Z25lZCBzdGFja0FsaWdubWVudFJlZ2lzdGVycygKICAgICByZXR1cm4gc3RhY2tBbGlnbm1lbnRC
eXRlcygpIC8gc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKIH0KIAorLy8gQWxpZ24gYXJndW1lbnQg
Y291bnQgdGFraW5nIGludG8gYWNjb3VudCB0aGUgQ2FsbEZyYW1lSGVhZGVyU2l6ZSBtYXkgYmUK
Ky8vIGFuICJ1bmFsaWduZWQiIGNvdW50IG9mIHJlZ2lzdGVycy4KK2lubGluZSB1bnNpZ25lZCBy
b3VuZEFyZ3VtZW50Q291bnRUb0FsaWduRnJhbWUodW5zaWduZWQgYXJndW1lbnRDb3VudCkKK3sK
KyAgICByZXR1cm4gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0
ZXJzKCksIGFyZ3VtZW50Q291bnQgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSAtIEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7Cit9CisKKy8vIEFsaWduIGxvY2FsIHJlZ2lzdGVy
IGNvdW50IHRvIG1ha2UgdGhlIGxhc3QgbG9jYWwgZW5kIG9uIGEgc3RhY2sgYWxpZ25lZCBhZGRy
ZXNzIGdpdmVuIHRoZQorLy8gQ2FsbEZyYW1lIGlzIGF0IGFuIGFkZHJlc3MgdGhhdCBpcyBzdGFj
ayBhbGlnbmVkIG1pbnVzIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplCitpbmxpbmUgdW5z
aWduZWQgcm91bmRMb2NhbFJlZ2lzdGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZzZXQodW5zaWdu
ZWQgbG9jYWxSZWdpc3RlckNvdW50KQoreworICAgIHJldHVybiBXVEY6OnJvdW5kVXBUb011bHRp
cGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbG9jYWxSZWdpc3RlckNvdW50ICsgSlNT
dGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1Np
emU7Cit9CisKK2lubGluZSB1bnNpZ25lZCBsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVycygpCit7
CisgICAgcmV0dXJuIFdURjo6ZmFzdExvZzIoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gU3RhY2tBbGlnbm1lbnRfaApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVj
dXJzaW9uQ2hlY2tlci5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBKU1ZhbHVlIFN0cmluZ1JlY3Vyc2lv
bkNoZWNrZXI6OnRocm93U3RhY2tPdmVyZmxvd0Vycm9yKCkKIHsKLSAgICByZXR1cm4gbV9leGVj
LT52bSgpLnRocm93RXhjZXB0aW9uKG1fZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKG1f
ZXhlYykpOworICAgIHJldHVybiBKU0M6OnRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYyk7
CiB9CiAKIEpTVmFsdWUgU3RyaW5nUmVjdXJzaW9uQ2hlY2tlcjo6ZW1wdHlTdHJpbmcoKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDQ4LDggKzEwNDgsMTMgQEAgdm9pZCBTdHJ1Y3R1cmU6OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgYwogICAgIGlmICh0YWJsZSkgewogICAgICAgICBQcm9wZXJ0
eVRhYmxlOjppdGVyYXRvciBpdGVyID0gdGFibGUtPmJlZ2luKCk7CiAgICAgICAgIFByb3BlcnR5
VGFibGU6Oml0ZXJhdG9yIGVuZCA9IHRhYmxlLT5lbmQoKTsKLSAgICAgICAgZm9yICg7IGl0ZXIg
IT0gZW5kOyArK2l0ZXIpCisgICAgICAgIGZvciAoOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7CiAg
ICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsIGl0ZXItPmtleSwgIjoiLCBzdGF0aWNfY2FzdDxp
bnQ+KGl0ZXItPm9mZnNldCkpOworICAgICAgICAgICAgaWYgKGl0ZXItPnNwZWNpZmljVmFsdWUp
IHsKKyAgICAgICAgICAgICAgICBEdW1wQ29udGV4dCBkdW1teUNvbnRleHQ7CisgICAgICAgICAg
ICAgICAgb3V0LnByaW50KCI9PiIsIFJhd1BvaW50ZXIoaXRlci0+c3BlY2lmaWNWYWx1ZS5nZXQo
KSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdHJ1Y3R1
cmUtPm1fbG9jay51bmxvY2soKTsKICAgICB9CkBAIC0xMDU5LDYgKzEwNjQsMTAgQEAgdm9pZCBT
dHJ1Y3R1cmU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgYwogICAgICAgICBpZiAoIXN0cnVjdHVy
ZS0+bV9uYW1lSW5QcmV2aW91cykKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBvdXQu
cHJpbnQoY29tbWEsIHN0cnVjdHVyZS0+bV9uYW1lSW5QcmV2aW91cy5nZXQoKSwgIjoiLCBzdGF0
aWNfY2FzdDxpbnQ+KHN0cnVjdHVyZS0+bV9vZmZzZXQpKTsKKyAgICAgICAgaWYgKHN0cnVjdHVy
ZS0+bV9zcGVjaWZpY1ZhbHVlSW5QcmV2aW91cykgeworICAgICAgICAgICAgRHVtcENvbnRleHQg
ZHVtbXlDb250ZXh0OworICAgICAgICAgICAgb3V0LnByaW50KCI9PiIsIFJhd1BvaW50ZXIoc3Ry
dWN0dXJlLT5tX3NwZWNpZmljVmFsdWVJblByZXZpb3VzLmdldCgpKSk7CisgICAgICAgIH0KICAg
ICB9CiAgICAgCiAgICAgb3V0LnByaW50KCJ9LCAiLCBJbmRleGluZ1R5cGVEdW1wKGluZGV4aW5n
VHlwZSgpKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lv
biAxNjI5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEx
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCwgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDExICszMCwxMyBAQAogI2luY2x1
ZGUgIlZNLmgiCiAKICNpbmNsdWRlICJBcmdMaXN0LmgiCisjaW5jbHVkZSAiQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJBcnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9p
bnQuaCIKICNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2Nr
LmgiCiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmllcnMu
aCIKKyNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJERkdMb25nTGl2ZWRT
dGF0ZS5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCiAjaW5jbHVkZSAiRGVidWdnZXJBY3Rp
dmF0aW9uLmgiCkBAIC00OSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIkluY3JlbWVudGFsU3dlZXBlci5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisj
aW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpTQVBJVmFsdWVXcmFwcGVyLmgiCiAjaW5j
bHVkZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgpAQCAtMTY2LDYgKzE2
OSw3IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIHZt
VHlwZSh2bVR5cGUpCiAgICAgLCBjbGllbnREYXRhKDApCiAgICAgLCB0b3BDYWxsRnJhbWUoQ2Fs
bEZyYW1lOjpub0NhbGxlcigpKQorICAgICwgc3RhY2tQb2ludGVyQXRWTUVudHJ5KDApCiAgICAg
LCBhcnJheUNvbnN0cnVjdG9yVGFibGUoYWRvcHRQdHIobmV3IEhhc2hUYWJsZShKU0M6OmFycmF5
Q29uc3RydWN0b3JUYWJsZSkpKQogICAgICwgYXJyYXlQcm90b3R5cGVUYWJsZShhZG9wdFB0cihu
ZXcgSGFzaFRhYmxlKEpTQzo6YXJyYXlQcm90b3R5cGVUYWJsZSkpKQogICAgICwgYm9vbGVhblBy
b3RvdHlwZVRhYmxlKGFkb3B0UHRyKG5ldyBIYXNoVGFibGUoSlNDOjpib29sZWFuUHJvdG90eXBl
VGFibGUpKSkKQEAgLTIxNyw3ICsyMjEsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5
cGUgaGVhcFR5cGUpCiAgICAgLCBtX2luaXRpYWxpemluZ09iamVjdENsYXNzKDApCiAjZW5kaWYK
ICAgICAsIG1fc3RhY2tMaW1pdCgwKQotI2lmIFVTRShTRVBBUkFURV9DX0FORF9KU19TVEFDSykK
KyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICwgbV9qc1N0YWNrTGltaXQoMCkKICNlbmRp
ZgogICAgICwgbV9pbkRlZmluZU93blByb3BlcnR5KGZhbHNlKQpAQCAtMjI1LDcgKzIyOSwxMSBA
QCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiB7CiAgICAgaW50ZXJw
cmV0ZXIgPSBuZXcgSW50ZXJwcmV0ZXIoKnRoaXMpOwogICAgIFN0YWNrQm91bmRzIHN0YWNrID0g
d3RmVGhyZWFkRGF0YSgpLnN0YWNrKCk7Ci0gICAgc2V0U3RhY2tMaW1pdChzdGFjay5yZWN1cnNp
b25MaW1pdCgpKTsKKyAgICB1cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUoT3B0
aW9uczo6cmVzZXJ2ZWRab25lU2l6ZSgpKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAg
IGludGVycHJldGVyLT5zdGFjaygpLnNldFJlc2VydmVkWm9uZVNpemUoT3B0aW9uczo6cmVzZXJ2
ZWRab25lU2l6ZSgpKTsKKyNlbmRpZgorICAgIHNldExhc3RTdGFja1RvcChzdGFjay5vcmlnaW4o
KSk7CiAKICAgICAvLyBOZWVkIHRvIGJlIGNhcmVmdWwgdG8ga2VlcCBldmVyeXRoaW5nIGNvbnNp
c3RlbnQgaGVyZQogICAgIEpTTG9ja0hvbGRlciBsb2NrKHRoaXMpOwpAQCAtMjY3LDcgKzI3NSw5
IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKIAogI2lmIEVOQUJM
RShKSVQpCiAgICAgaml0U3R1YnMgPSBhZG9wdFB0cihuZXcgSklUVGh1bmtzKCkpOworICAgIGFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzID0gc3RkOjptYWtlX3VuaXF1ZTxBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcz4oKTsKICNlbmRpZgorICAgIGFyaXR5Q2hlY2tEYXRhID0gc3RkOjptYWtl
X3VuaXF1ZTxDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhPigpOwogCiAjaWYgRU5BQkxF
KEZUTF9KSVQpCiAgICAgZnRsVGh1bmtzID0gc3RkOjptYWtlX3VuaXF1ZTxGVEw6OlRodW5rcz4o
KTsKQEAgLTI4MCw3ICsyOTAsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVh
cFR5cGUpCiAjZW5kaWYKIAogICAgIGhlYXAubm90aWZ5SXNTYWZlVG9Db2xsZWN0KCk7Ci0KKyAg
ICAKICAgICBMTEludDo6RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoKnRoaXMpOwogICAgIAogICAg
IGlmIChPcHRpb25zOjplbmFibGVQcm9maWxlcigpKSB7CkBAIC0zMDYsNiArMzE2LDE2IEBAIFZN
OjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICBtX3R5cGVkQXJyYXlD
b250cm9sbGVyID0gYWRvcHRSZWYobmV3IFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKCkpOwog
fQogCisjaWYgRU5BQkxFKERGR19KSVQpCitzdGF0aWMgdm9pZCBjbGVhbldvcmtsaXN0KFZNJiB2
bSwgREZHOjpXb3JrbGlzdCogd29ya2xpc3QpCit7CisgICAgaWYgKCF3b3JrbGlzdCkKKyAgICAg
ICAgcmV0dXJuOworICAgIHdvcmtsaXN0LT53YWl0VW50aWxBbGxQbGFuc0ZvclZNQXJlUmVhZHko
dm0pOworICAgIHdvcmtsaXN0LT5yZW1vdmVBbGxSZWFkeVBsYW5zRm9yVk0odm0pOworfQorI2Vu
ZGlmIC8vIEVOQUJMRShERkdfSklUKQorCiBWTTo6flZNKCkKIHsKICAgICAvLyBOZXZlciBHQywg
ZXZlciBhZ2Fpbi4KQEAgLTMxNCwxMCArMzM0LDggQEAgVk06On5WTSgpCiAjaWYgRU5BQkxFKERG
R19KSVQpCiAgICAgLy8gTWFrZSBzdXJlIGNvbmN1cnJlbnQgY29tcGlsYXRpb25zIGFyZSBkb25l
LCBidXQgZG9uJ3QgaW5zdGFsbCB0aGVtLCBzaW5jZSB0aGVyZSBpcwogICAgIC8vIG5vIHBvaW50
IHRvIGRvaW5nIHNvLgotICAgIGlmICh3b3JrbGlzdCkgewotICAgICAgICB3b3JrbGlzdC0+d2Fp
dFVudGlsQWxsUGxhbnNGb3JWTUFyZVJlYWR5KCp0aGlzKTsKLSAgICAgICAgd29ya2xpc3QtPnJl
bW92ZUFsbFJlYWR5UGxhbnNGb3JWTSgqdGhpcyk7Ci0gICAgfQorICAgIGNsZWFuV29ya2xpc3Qo
KnRoaXMsIERGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpKTsKKyAgICBjbGVh
bldvcmtsaXN0KCp0aGlzLCBERkc6OmV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKSk7
CiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhpcyBmaXJz
dCB0byBlbnN1cmUgdGhhdCBub2JvZHkgdHJpZXMgdG8gcmVtb3ZlIHRoZW1zZWx2ZXMgZnJvbSBp
dC4KQEAgLTQ2MSw4ICs0NzksOCBAQCBOYXRpdmVFeGVjdXRhYmxlKiBWTTo6Z2V0SG9zdEZ1bmN0
aW9uKE5hCiBOYXRpdmVFeGVjdXRhYmxlKiBWTTo6Z2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0
aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKIHsKICAgICByZXR1cm4g
TmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCp0aGlzLAotICAgICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKSwg
ZnVuY3Rpb24sCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2Rl
UmVmKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZSksIGNvbnN0cnVjdG9yLAorICAg
ICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNy
ZWF0ZUxMSW50Q29kZVJlZihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKSwgSklUQ29kZTo6
SG9zdENhbGxUaHVuaykpLCBmdW5jdGlvbiwKKyAgICAgICAgYWRvcHRSZWYobmV3IE5hdGl2ZUpJ
VENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfbmF0
aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpLCBjb25z
dHJ1Y3RvciwKICAgICAgICAgTm9JbnRyaW5zaWMpOwogfQogCkBAIC00OTAsMTQgKzUwOCwyMSBA
QCB2b2lkIFZNOjpzdG9wU2FtcGxpbmcoKQogICAgIGludGVycHJldGVyLT5zdG9wU2FtcGxpbmco
KTsKIH0KIAotdm9pZCBWTTo6cHJlcGFyZVRvRGlzY2FyZENvZGUoKQotewogI2lmIEVOQUJMRShE
RkdfSklUKQorc3RhdGljIHZvaWQgcHJlcGFyZVRvRGlzY2FyZENvZGVGb3IoVk0mIHZtLCBERkc6
OldvcmtsaXN0KiB3b3JrbGlzdCkKK3sKICAgICBpZiAoIXdvcmtsaXN0KQogICAgICAgICByZXR1
cm47Ci0gICAgCi0gICAgd29ya2xpc3QtPmNvbXBsZXRlQWxsUGxhbnNGb3JWTSgqdGhpcyk7Ci0j
ZW5kaWYKKyAgICB3b3JrbGlzdC0+Y29tcGxldGVBbGxQbGFuc0ZvclZNKHZtKTsKK30KKyNlbmRp
ZiAvLyBFTkFCTEUoREZHX0pJVCkKKwordm9pZCBWTTo6cHJlcGFyZVRvRGlzY2FyZENvZGUoKQor
eworI2lmIEVOQUJMRShERkdfSklUKQorICAgIHByZXBhcmVUb0Rpc2NhcmRDb2RlRm9yKCp0aGlz
LCBERkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKSk7CisgICAgcHJlcGFyZVRv
RGlzY2FyZENvZGVGb3IoKnRoaXMsIERGRzo6ZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVs
bCgpKTsKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKIH0KIAogdm9pZCBWTTo6ZGlzY2FyZEFs
bENvZGUoKQpAQCAtNjMyLDYgKzY1NywxMSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTb3VyY2VUb0Vy
cm9yKENhbGxGcmFtCiAgICAgCiBKU1ZhbHVlIFZNOjp0aHJvd0V4Y2VwdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgZXJyb3IpCiB7CisgICAgaWYgKE9wdGlvbnM6OmJyZWFrT25UaHJvdygp
KSB7CisgICAgICAgIGRhdGFMb2coIkluIGNhbGwgZnJhbWUgIiwgUmF3UG9pbnRlcihleGVjKSwg
IiBmb3IgY29kZSBibG9jayAiLCAqZXhlYy0+Y29kZUJsb2NrKCksICJcbiIpOworICAgICAgICBD
UkFTSCgpOworICAgIH0KKyAgICAKICAgICBBU1NFUlQoZXhlYyA9PSB0b3BDYWxsRnJhbWUgfHwg
ZXhlYyA9PSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSB8fCBleGVj
ID09IGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpKTsKICAgICAKICAg
ICBWZWN0b3I8U3RhY2tGcmFtZT4gc3RhY2tUcmFjZTsKQEAgLTcwNiw2ICs3MzYsMjQgQEAgdm9p
ZCBWTTo6IGNsZWFyRXhjZXB0aW9uU3RhY2soKQogICAgIG1fZXhjZXB0aW9uU3RhY2sgPSBSZWZD
b3VudGVkQXJyYXk8U3RhY2tGcmFtZT4oKTsKIH0KIAorc2l6ZV90IFZNOjp1cGRhdGVTdGFja0xp
bWl0V2l0aFJlc2VydmVkWm9uZVNpemUoc2l6ZV90IHJlc2VydmVkWm9uZVNpemUpCit7CisgICAg
c2l6ZV90IG9sZFJlc2VydmVkWm9uZVNpemUgPSBtX3Jlc2VydmVkWm9uZVNpemU7CisgICAgbV9y
ZXNlcnZlZFpvbmVTaXplID0gcmVzZXJ2ZWRab25lU2l6ZTsKKworICAgIHZvaWQqIHN0YWNrTGlt
aXQ7CisgICAgaWYgKHN0YWNrUG9pbnRlckF0Vk1FbnRyeSkgeworICAgICAgICBBU1NFUlQod3Rm
VGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CisgICAgICAgIGNoYXIq
IHN0YXJ0T2ZTdGFjayA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHN0YWNrUG9pbnRlckF0Vk1F
bnRyeSk7CisgICAgICAgIGNoYXIqIGRlc2lyZWRTdGFja0xpbWl0ID0gc3RhcnRPZlN0YWNrIC0g
T3B0aW9uczo6bWF4UGVyVGhyZWFkU3RhY2tVc2FnZSgpICsgcmVzZXJ2ZWRab25lU2l6ZTsKKyAg
ICAgICAgc3RhY2tMaW1pdCA9IHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLnJlY3Vyc2lvbkxpbWl0
KHJlc2VydmVkWm9uZVNpemUsIGRlc2lyZWRTdGFja0xpbWl0KTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgc3RhY2tMaW1pdCA9IHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLnJlY3Vyc2lvbkxpbWl0KHJl
c2VydmVkWm9uZVNpemUpOworCisgICAgc2V0U3RhY2tMaW1pdChzdGFja0xpbWl0KTsKKyAgICBy
ZXR1cm4gb2xkUmVzZXJ2ZWRab25lU2l6ZTsKK30KKwogdm9pZCByZWxlYXNlRXhlY3V0YWJsZU1l
bW9yeShWTSYgdm0pCiB7CiAgICAgdm0ucmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoKTsKQEAgLTcy
MiwxNiArNzcwLDE5IEBAIHZvaWQgVk06OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnYK
ICAgICAgICAgfQogICAgIH0KIH0KKyNlbmRpZgogCi1ERkc6OldvcmtsaXN0KiBWTTo6ZW5zdXJl
V29ya2xpc3QoKQordm9pZCBsb2dTYW5pdGl6ZVN0YWNrKFZNKiB2bSkKIHsKLSAgICBpZiAoIURG
Rzo6ZW5hYmxlQ29uY3VycmVudEpJVCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoIXdv
cmtsaXN0KQotICAgICAgICB3b3JrbGlzdCA9IERGRzo6Z2xvYmFsV29ya2xpc3QoKTsKLSAgICBy
ZXR1cm4gd29ya2xpc3QuZ2V0KCk7CisgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VTYW5pdGl6ZVN0
YWNrKCkgJiYgdm0tPnRvcENhbGxGcmFtZSkgeworICAgICAgICBpbnQgZHVtbXk7CisgICAgICAg
IGRhdGFMb2coCisgICAgICAgICAgICAiU2FuaXRpemluZyBzdGFjayB3aXRoIHRvcCBjYWxsIGZy
YW1lIGF0ICIsIFJhd1BvaW50ZXIodm0tPnRvcENhbGxGcmFtZSksCisgICAgICAgICAgICAiLCBj
dXJyZW50IHN0YWNrIHBvaW50ZXIgYXQgIiwgUmF3UG9pbnRlcigmZHVtbXkpLCAiLCBpbiAiLAor
ICAgICAgICAgICAgcG9pbnRlckR1bXAodm0tPnRvcENhbGxGcmFtZS0+Y29kZUJsb2NrKCkpLCAi
IGFuZCBsYXN0IGNvZGUgb3JpZ2luID0gIiwKKyAgICAgICAgICAgIHZtLT50b3BDYWxsRnJhbWUt
PmNvZGVPcmlnaW4oKSwgIlxuIik7CisgICAgfQogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVH
RVhQX1RSQUNJTkcpCiB2b2lkIFZNOjphZGRSZWdFeHBUb1RyYWNlKFJlZ0V4cCogcmVnRXhwKQpA
QCAtNzgwLDQgKzgzMSwxNCBAQCB2b2lkIFZNOjphZGRJbXB1cmVQcm9wZXJ0eShjb25zdCBTdHJp
bmcmCiAgICAgICAgIHdhdGNocG9pbnRTZXQtPmZpcmVBbGwoKTsKIH0KIAordm9pZCBzYW5pdGl6
ZVN0YWNrRm9yVk0oVk0qIHZtKQoreworICAgIGxvZ1Nhbml0aXplU3RhY2sodm0pOworI2lmIEVO
QUJMRShMTElOVF9DX0xPT1ApCisgICAgdm0tPmludGVycHJldGVyLT5zdGFjaygpLnNhbml0aXpl
U3RhY2soKTsKKyNlbHNlCisgICAgc2FuaXRpemVTdGFja0ZvclZNSW1wbCh2bSk7CisjZW5kaWYK
K30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
KyAgICBjbGFzcyBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rczsKICAgICBjbGFzcyBDb2RlQmxv
Y2s7CiAgICAgY2xhc3MgQ29kZUNhY2hlOwogICAgIGNsYXNzIENvbW1vbklkZW50aWZpZXJzOwpA
QCAtMTAzLDcgKzEwNCw2IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShERkdfSklUKQog
ICAgIG5hbWVzcGFjZSBERkcgewogICAgIGNsYXNzIExvbmdMaXZlZFN0YXRlOwotICAgIGNsYXNz
IFdvcmtsaXN0OwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKICNpZiBFTkFCTEUo
RlRMX0pJVCkKQEAgLTExMSw2ICsxMTEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBU
aHVua3M7CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorICAgIG5hbWVzcGFjZSBD
b21tb25TbG93UGF0aHMgeworICAgIHN0cnVjdCBBcml0eUNoZWNrRGF0YTsKKyAgICB9CiAKICAg
ICBzdHJ1Y3QgSGFzaFRhYmxlOwogICAgIHN0cnVjdCBJbnN0cnVjdGlvbjsKQEAgLTIwNCwxMCAr
MjA3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdm9pZCBtYWtlVXNhYmxlRnJvbU11
bHRpcGxlVGhyZWFkcygpIHsgaGVhcC5tYWNoaW5lVGhyZWFkcygpLm1ha2VVc2FibGVGcm9tTXVs
dGlwbGVUaHJlYWRzKCk7IH0KICAgICAgICAgCi0jaWYgRU5BQkxFKERGR19KSVQpCi0gICAgICAg
IERGRzo6V29ya2xpc3QqIGVuc3VyZVdvcmtsaXN0KCk7Ci0jZW5kaWYgLy8gRU5BQkxFKERGR19K
SVQpCi0KICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8SlNMb2NrPiBtX2FwaUxvY2s7CiAK
QEAgLTIyNCwxMiArMjIzLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICNpZiBFTkFC
TEUoREZHX0pJVCkKICAgICAgICAgT3duUHRyPERGRzo6TG9uZ0xpdmVkU3RhdGU+IGRmZ1N0YXRl
OwotICAgICAgICBSZWZQdHI8REZHOjpXb3JrbGlzdD4gd29ya2xpc3Q7CiAjZW5kaWYgLy8gRU5B
QkxFKERGR19KSVQpCiAKICAgICAgICAgVk1UeXBlIHZtVHlwZTsKICAgICAgICAgQ2xpZW50RGF0
YSogY2xpZW50RGF0YTsKICAgICAgICAgRXhlY1N0YXRlKiB0b3BDYWxsRnJhbWU7CisgICAgICAg
IHZvaWQqIHN0YWNrUG9pbnRlckF0Vk1FbnRyeTsKICAgICAgICAgV2F0Y2hkb2cgd2F0Y2hkb2c7
CiAKICAgICAgICAgY29uc3QgT3duUHRyPGNvbnN0IEhhc2hUYWJsZT4gYXJyYXlDb25zdHJ1Y3Rv
clRhYmxlOwpAQCAtMzQxLDcgKzM0MCwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
IHJldHVybiBqaXRTdHVicy0+Y3RpU3R1Yih0aGlzLCBnZW5lcmF0b3IpOwogICAgICAgICB9CiAg
ICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGdldEhvc3RGdW5jdGlvbihOYXRpdmVGdW5jdGlvbiwg
SW50cmluc2ljKTsKLSNlbmRpZgorICAgICAgICAKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzPiBhcml0eUNoZWNrRmFpbFJldHVyblRodW5rczsKKyNp
ZiBDUFUoWDg2KQorICAgICAgICB2b2lkKiBjdXJyZW50UmV0dXJuVGh1bmtQQzsKKyNlbmRpZiAv
LyBDUFUoWDg2KQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhPiBhcml0eUNoZWNrRGF0YTsKICNpZiBF
TkFCTEUoRlRMX0pJVCkKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEZUTDo6VGh1bmtzPiBmdGxU
aHVua3M7CiAjZW5kaWYKQEAgLTM3MywxMiArMzc4LDE2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIHRocm93RXhjZXB0aW9uKEV4ZWNTdGF0ZSos
IEpTVmFsdWUpOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogdGhyb3dFeGNl
cHRpb24oRXhlY1N0YXRlKiwgSlNPYmplY3QqKTsKICAgICAgICAgCisgICAgICAgIHNpemVfdCBy
ZXNlcnZlZFpvbmVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZXNlcnZlZFpvbmVTaXplOyB9Cisg
ICAgICAgIHNpemVfdCB1cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUoc2l6ZV90
IHJlc2VydmVkWm9uZVNpemUpOworCiAgICAgICAgIHZvaWQqKiBhZGRyZXNzT2ZKU1N0YWNrTGlt
aXQoKSB7IHJldHVybiAmbV9qc1N0YWNrTGltaXQ7IH0KKyNpZiBFTkFCTEUoTExJTlRfQ19MT09Q
KQogICAgICAgICB2b2lkKiBqc1N0YWNrTGltaXQoKSB7IHJldHVybiBtX2pzU3RhY2tMaW1pdDsg
fQogICAgICAgICB2b2lkIHNldEpTU3RhY2tMaW1pdCh2b2lkKiBsaW1pdCkgeyBtX2pzU3RhY2tM
aW1pdCA9IGxpbWl0OyB9Ci0KKyNlbmRpZgogICAgICAgICB2b2lkKiBzdGFja0xpbWl0KCkgeyBy
ZXR1cm4gbV9zdGFja0xpbWl0OyB9Ci0gICAgICAgIHZvaWQgc2V0U3RhY2tMaW1pdCh2b2lkKiBs
aW1pdCkgeyBtX3N0YWNrTGltaXQgPSBsaW1pdDsgfQorCiAgICAgICAgIGJvb2wgaXNTYWZlVG9S
ZWN1cnNlKHNpemVfdCBuZWVkZWRTdGFja0luQnl0ZXMgPSAwKSBjb25zdAogICAgICAgICB7CiAg
ICAgICAgICAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndh
cmQoKSk7CkBAIC0zODcsMTAgKzM5NiwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
IHJldHVybiBjdXJyID49IGxpbWl0ICYmIHN0YXRpY19jYXN0PHNpemVfdD4oY3VyciAtIGxpbWl0
KSA+PSBuZWVkZWRTdGFja0luQnl0ZXM7CiAgICAgICAgIH0KIAorICAgICAgICB2b2lkKiBsYXN0
U3RhY2tUb3AoKSB7IHJldHVybiBtX2xhc3RTdGFja1RvcDsgfQorICAgICAgICB2b2lkIHNldExh
c3RTdGFja1RvcCh2b2lkKiBsYXN0U3RhY2tUb3ApIHsgbV9sYXN0U3RhY2tUb3AgPSBsYXN0U3Rh
Y2tUb3A7IH0KKwogICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNvbnN0IGpzQXJyYXlDbGFzc0lu
Zm87CiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY29uc3QganNGaW5hbE9iamVjdENsYXNzSW5m
bzsKIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIGV4Y2VwdGlvbkxvY2F0aW9uOwogICAgICAg
ICBKU1ZhbHVlIGhvc3RDYWxsUmV0dXJuVmFsdWU7CiAgICAgICAgIEV4ZWNTdGF0ZSogbmV3Q2Fs
bEZyYW1lUmV0dXJuVmFsdWU7CiAgICAgICAgIEV4ZWNTdGF0ZSogY2FsbEZyYW1lRm9yVGhyb3c7
CkBAIC00MTMsNyArNDI0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAgICAgLy8g
bWF4KHNjcmF0Y2ggYnVmZmVyIHNpemUpICogNC4KICAgICAgICAgICAgICAgICBzaXplT2ZMYXN0
U2NyYXRjaEJ1ZmZlciA9IHNpemUgKiAyOwogCi0gICAgICAgICAgICAgICAgc2NyYXRjaEJ1ZmZl
cnMuYXBwZW5kKFNjcmF0Y2hCdWZmZXI6OmNyZWF0ZShzaXplT2ZMYXN0U2NyYXRjaEJ1ZmZlcikp
OworICAgICAgICAgICAgICAgIFNjcmF0Y2hCdWZmZXIqIG5ld0J1ZmZlciA9IFNjcmF0Y2hCdWZm
ZXI6OmNyZWF0ZShzaXplT2ZMYXN0U2NyYXRjaEJ1ZmZlcik7CisgICAgICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQobmV3QnVmZmVyKTsKKyAgICAgICAgICAgICAgICBzY3JhdGNoQnVmZmVycy5h
cHBlbmQobmV3QnVmZmVyKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgU2NyYXRjaEJ1
ZmZlciogcmVzdWx0ID0gc2NyYXRjaEJ1ZmZlcnMubGFzdCgpOwpAQCAtNDk1LDYgKzUwOCw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBWTShWTVR5cGUsIEhlYXBUeXBlKTsKICAgICAgICAg
c3RhdGljIFZNKiYgc2hhcmVkSW5zdGFuY2VJbnRlcm5hbCgpOwogICAgICAgICB2b2lkIGNyZWF0
ZU5hdGl2ZVRodW5rKCk7CisKKyAgICAgICAgdm9pZCBzZXRTdGFja0xpbWl0KHZvaWQqIGxpbWl0
KSB7IG1fc3RhY2tMaW1pdCA9IGxpbWl0OyB9CisKICNpZiBFTkFCTEUoQVNTRU1CTEVSKQogICAg
ICAgICBib29sIG1fY2FuVXNlQXNzZW1ibGVyOwogI2VuZGlmCkBAIC01MDcsOCArNTIzLDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCiAgICAgICAgIGNvbnN0
IENsYXNzSW5mbyogbV9pbml0aWFsaXppbmdPYmplY3RDbGFzczsKICNlbmRpZgotCi0jaWYgVVNF
KFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQorICAgICAgICBzaXplX3QgbV9yZXNlcnZlZFpvbmVT
aXplOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAg
ICAgICB2b2lkKiBtX3N0YWNrTGltaXQ7CiAgICAgICAgICAgICB2b2lkKiBtX2pzU3RhY2tMaW1p
dDsKQEAgLTUxOSw2ICs1MzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHZvaWQq
IG1fanNTdGFja0xpbWl0OwogICAgICAgICB9OwogI2VuZGlmCisgICAgICAgIHZvaWQqIG1fbGFz
dFN0YWNrVG9wOwogICAgICAgICBKU1ZhbHVlIG1fZXhjZXB0aW9uOwogICAgICAgICBib29sIG1f
aW5EZWZpbmVPd25Qcm9wZXJ0eTsKICAgICAgICAgT3duUHRyPENvZGVDYWNoZT4gbV9jb2RlQ2Fj
aGU7CkBAIC01NDQsNiArNTYxLDEzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1cm4g
Jm1fdm0tPmhlYXA7CiAgICAgfQogCisjaWYgIUVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgZXh0
ZXJuICJDIiB2b2lkIHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qKTsKKyNlbmRpZgorCisgICAg
dm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk0oVk0qKTsKKyAgICB2b2lkIGxvZ1Nhbml0aXplU3RhY2so
Vk0qKTsKKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBWTV9oCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJWTUVudHJ5U2NvcGUu
aCIKIAogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCisjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1
ZGUgIlZNLmgiCiAjaW5jbHVkZSA8d3RmL1N0YWNrQm91bmRzLmg+CiAKQEAgLTM0LDEyICszNSwx
MCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogVk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIDogbV92bSh2bSkKLSAgICAsIG1f
c3RhY2sod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkpCiAgICAgLCBtX2dsb2JhbE9iamVjdChnbG9i
YWxPYmplY3QpCi0gICAgLCBtX3ByZXYodm0uZW50cnlTY29wZSkKLSAgICAsIG1fcHJldlN0YWNr
TGltaXQodm0uc3RhY2tMaW1pdCgpKQogICAgICwgbV9yZWNvbXBpbGF0aW9uTmVlZGVkKGZhbHNl
KQogeworICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2Fy
ZCgpKTsKICAgICBpZiAoIXZtLmVudHJ5U2NvcGUpIHsKICNpZiBFTkFCTEUoQVNTRU1CTEVSKQog
ICAgICAgICBpZiAoRXhlY3V0YWJsZUFsbG9jYXRvcjo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpKQpA
QCAtNTEsMTcgKzUwLDI0IEBAIFZNRW50cnlTY29wZTo6Vk1FbnRyeVNjb3BlKFZNJiB2bSwgSlNH
bG8KICAgICAgICAgLy8gb2JzZXJ2ZSB0aW1lIHhvbmUgY2hhbmdlcy4KICAgICAgICAgdm0ucmVz
ZXREYXRlQ2FjaGUoKTsKICAgICB9Ci0gICAgLy8gQ2xlYXIgdGhlIGV4Y2VwdGlvbiBzdGFjayBi
ZXR3ZWVuIGVudHJpZXMKLSAgICB2bS5jbGVhckV4Y2VwdGlvblN0YWNrKCk7CiAKLSAgICB2b2lk
KiBsaW1pdCA9IG1fc3RhY2sucmVjdXJzaW9uTGltaXQocmVxdWlyZWRDYXBhY2l0eSgpKTsKLSAg
ICB2bS5zZXRTdGFja0xpbWl0KGxpbWl0KTsKKyAgICBpZiAoIXZtLnN0YWNrUG9pbnRlckF0Vk1F
bnRyeSkgeworICAgICAgICB2bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSB0aGlzOworICAgICAg
ICBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSA9IHZtLnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2
ZWRab25lU2l6ZShPcHRpb25zOjpyZXNlcnZlZFpvbmVTaXplKCkpOworICAgIH0KKworICAgIC8v
IENsZWFyIHRoZSBjYXB0dXJlZCBleGNlcHRpb24gc3RhY2sgYmV0d2VlbiBlbnRyaWVzCisgICAg
dm0uY2xlYXJFeGNlcHRpb25TdGFjaygpOwogfQogCiBWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2Nv
cGUoKQogewotICAgIG1fdm0uZW50cnlTY29wZSA9IG1fcHJldjsKLSAgICBtX3ZtLnNldFN0YWNr
TGltaXQobV9wcmV2U3RhY2tMaW1pdCk7CisgICAgaWYgKG1fdm0uZW50cnlTY29wZSA9PSB0aGlz
KQorICAgICAgICBtX3ZtLmVudHJ5U2NvcGUgPSBudWxscHRyOworICAgIGlmIChtX3ZtLnN0YWNr
UG9pbnRlckF0Vk1FbnRyeSA9PSB0aGlzKSB7CisgICAgICAgIG1fdm0uc3RhY2tQb2ludGVyQXRW
TUVudHJ5ID0gbnVsbHB0cjsKKyAgICAgICAgbV92bS51cGRhdGVTdGFja0xpbWl0V2l0aFJlc2Vy
dmVkWm9uZVNpemUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOworICAgIH0KIAogICAgIGlmICht
X3JlY29tcGlsYXRpb25OZWVkZWQpIHsKICAgICAgICAgaWYgKG1fdm0uZW50cnlTY29wZSkKQEAg
LTczLDIzICs3OSw0IEBAIFZNRW50cnlTY29wZTo6flZNRW50cnlTY29wZSgpCiAgICAgfQogfQog
Ci1zaXplX3QgVk1FbnRyeVNjb3BlOjpyZXF1aXJlZENhcGFjaXR5KCkgY29uc3QKLXsKLSAgICBJ
bnRlcnByZXRlciogaW50ZXJwcmV0ZXIgPSBtX3ZtLmludGVycHJldGVyOwotCi0gICAgLy8gV2Ug
cmVxdWlyZSBhIHNtYWxsZXIgc3RhY2sgYnVkZ2V0IGZvciB0aGUgZXJyb3Igc3RhY2suIFRoaXMg
aXMgdG8gYWxsb3cKLSAgICAvLyBzb21lIG1pbmltYWwgSlMgZXhlY3V0aW9uIHRvIHByb2NlZWQg
YW5kIGRvIHRoZSB3b3JrIG9mIHRocm93aW5nIGEgc3RhY2sKLSAgICAvLyBvdmVyZmxvdyBlcnJv
ciBpZiBuZWVkZWQuIEluIGNvbnRyYXN0LCBhcmJpdHJhcnkgSlMgY29kZSB3aWxsIHJlcXVpcmUg
dGhlCi0gICAgLy8gbW9yZSBnZW5lcm91cyBzdGFjayBidWRnZXQgaW4gb3JkZXIgdG8gcHJvY2Vl
ZC4KLSAgICAvLwotICAgIC8vIFRoZXNlIHNpemVzIHdlcmUgZGVyaXZlZCBmcm9tIHRoZSBzdGFj
ayB1c2FnZSBvZiBhIG51bWJlciBvZiBzaXRlcyB3aGVuCi0gICAgLy8gbGF5b3V0IG9jY3VycyB3
aGVuIHdlJ3ZlIGFscmVhZHkgY29uc3VtZWQgbW9zdCBvZiB0aGUgQyBzdGFjay4KLSAgICBjb25z
dCBzaXplX3QgcmVxdWlyZWRTdGFjayA9IDEyOCAqIEtCOwotICAgIGNvbnN0IHNpemVfdCBlcnJv
ck1vZGVSZXF1aXJlZFN0YWNrID0gNjQgKiBLQjsKLQotICAgIHNpemVfdCByZXF1aXJlZENhcGFj
aXR5ID0gaW50ZXJwcmV0ZXItPmlzSW5FcnJvckhhbmRsaW5nTW9kZSgpID8gZXJyb3JNb2RlUmVx
dWlyZWRTdGFjayA6IHJlcXVpcmVkU3RhY2s7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9zdGFjay5z
aXplKCkgPj0gcmVxdWlyZWRDYXBhY2l0eSk7Ci0gICAgcmV0dXJuIHJlcXVpcmVkQ2FwYWNpdHk7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1FbnRyeVNjb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk1FbnRyeVNjb3BlLmgJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSwxNiAr
NDUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVjb21waWxhdGlvbk5lZWRlZChib29sIHJl
Y29tcGlsZU5lZWRlZCkgeyBtX3JlY29tcGlsYXRpb25OZWVkZWQgPSByZWNvbXBpbGVOZWVkZWQ7
IH0KIAogcHJpdmF0ZToKLSAgICBzaXplX3QgcmVxdWlyZWRDYXBhY2l0eSgpIGNvbnN0OwotCiAg
ICAgVk0mIG1fdm07CiAgICAgU3RhY2tTdGF0czo6Q2hlY2tQb2ludCBtX3N0YWNrQ2hlY2tQb2lu
dDsKLSAgICBTdGFja0JvdW5kcyBtX3N0YWNrOwogICAgIEpTR2xvYmFsT2JqZWN0KiBtX2dsb2Jh
bE9iamVjdDsKLQotICAgIC8vIG1fcHJldiBhbmQgbV9wcmV2U3RhY2tMaW1pdCBtYXkgYmVsb25n
IHRvIGEgZGlmZmVyZW50IHRocmVhZCdzIHN0YWNrLgotICAgIFZNRW50cnlTY29wZSogbV9wcmV2
OwotICAgIHZvaWQqIG1fcHJldlN0YWNrTGltaXQ7CisgICAgc2l6ZV90IG1fc2F2ZWRSZXNlcnZl
ZFpvbmVTaXplOwogICAgIGJvb2wgbV9yZWNvbXBpbGF0aW9uTmVlZGVkOwogfTsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtY29uc3RhbnQtb3ZlcmZsb3ct
cmVjb3ZlcnkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9hZGQtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1jb25zdGFudC1vdmVyZmxvdy1y
ZWNvdmVyeS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28o
YSkgeworICAgIHJldHVybiBhLmYgKyAyMDAwMDAwMDAwOworfQorCitub0lubGluZShmb28pOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZv
byh7ZjoxfSk7CisgICAgaWYgKHJlc3VsdCAhPSAyMDAwMDAwMDAxKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oe2Y6
MjAwMDAwMDAwMH0pOworaWYgKHJlc3VsdCAhPSA0MDAwMDAwMDAwKQorICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvYWRkLWludDUyLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWludDUyLWNv
bnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3Zl
cnkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKGEpIHsK
KyAgICByZXR1cm4gYSAqIDIwOTcxNDQgKyAxMDczNzQ1OTIwOworfQorCitub0lubGluZShmb28p
OworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9
IGZvbygxMDczNzM2MzgzKTsKKyAgICBpZiAocmVzdWx0ICE9IDIyNTE3ODA4ODY5MzYwNzIpCisg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJl
c3VsdCA9IGZvbygxMDczNzQ1OTE5KTsKK2lmIChyZXN1bHQgIT0gMjI1MTgwMDg4NTMwMTI1NikK
KyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1sYXJnZS1jb25zdGFudC1vdmVy
Zmxvdy1yZWNvdmVyeS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2FkZC1pbnQ1Mi1sYXJnZS1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWlu
dDUyLWxhcmdlLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgcmV0dXJuIGEgKiAyMDk3MTQ0
ICsgMTAwMDAwMDAwMDA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDEwNzM3NDExNTEpOworICAg
IGlmIChyZXN1bHQgIT0gMjI1MTc5OTgxMjM3Mjc0NCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKDEwNzM3NDExNTIp
OworaWYgKHJlc3VsdCAhPSAyMjUxNzk5ODE0NDY5ODg4KQorICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvYWRkLW92ZXJmbG93LXJlY292ZXJ5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLW92ZXJmbG93LXJlY292ZXJ5LmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtb3ZlcmZsb3ct
cmVjb3ZlcnkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9v
KGEsIGIpIHsKKyAgICByZXR1cm4gYS5mICsgYi5mOworfQorCitub0lubGluZShmb28pOworCitm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7
ZjoxfSwge2Y6Mn0pOworICAgIGlmIChyZXN1bHQgIT0gMykKKyAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKHtmOjIwMDAw
MDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSk7CitpZiAocmVzdWx0ICE9IDQwMDAwMDAwMDApCisgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtc21hbGwtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3Zl
cnkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9h
ZGQtc21hbGwtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1zbWFsbC1jb25zdGFudC1vdmVy
Zmxvdy1yZWNvdmVyeS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlv
biBmb28oYSkgeworICAgIHJldHVybiBhLmYgKyAxMDAwOworfQorCitub0lubGluZShmb28pOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZv
byh7ZjoxfSk7CisgICAgaWYgKHJlc3VsdCAhPSAxMDAxKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oe2Y6MjE0NzQ4
MzE0OH0pOworaWYgKHJlc3VsdCAhPSAyMTQ3NDg0MTQ4KQorICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvYXJyYXktcHVzaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2FycmF5LXB1c2guanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2FycmF5LXB1c2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxOCBAQAorZnVuY3Rpb24gZm9vKCkgeworICAgIHZhciBhcnJheSA9IFtdOworICAgIHZh
ciByZXN1bHQgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQyOyArK2kpCisgICAgICAg
IHJlc3VsdC5wdXNoKGFycmF5LnB1c2goNyAtIGkpKTsKKyAgICByZXR1cm4gW2FycmF5LCByZXN1
bHRdOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChyZXN1bHRbMF0udG9TdHJp
bmcoKSAhPSAiNyw2LDUsNCwzLDIsMSwwLC0xLC0yLC0zLC00LC01LC02LC03LC04LC05LC0xMCwt
MTEsLTEyLC0xMywtMTQsLTE1LC0xNiwtMTcsLTE4LC0xOSwtMjAsLTIxLC0yMiwtMjMsLTI0LC0y
NSwtMjYsLTI3LC0yOCwtMjksLTMwLC0zMSwtMzIsLTMzLC0zNCIpCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIGFycmF5OiAiICsgcmVzdWx0WzBdOworICAgIGlmIChyZXN1bHRbMV0udG9TdHJp
bmcoKSAhPSAiMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTks
MjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQsMzUsMzYsMzcsMzgs
MzksNDAsNDEsNDIiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBhcnJheTogIiArIHJlc3Vs
dFsxXTsKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9lbXB0
eS1mdW5jdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2VtcHR5LWZ1bmN0aW9uLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9lbXB0eS1mdW5jdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEwIEBACitmdW5jdGlvbiBmb28oKSB7IH0KKworbm9JbmxpbmUoZm9vKTsKKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oKTsK
KyAgICBpZiAocmVzdWx0ICE9PSB2b2lkIDApCisgICAgICAgIHRocm93ICJZb3UgYnJva2UgSlND
IHNvIGhhcmQgdGhhdCBldmVuIHRoZSBlbXB0eSBmdW5jdGlvbiBkb2Vzbid0IHdvcms6ICIgKyBy
ZXN1bHQ7Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhp
dC1hZnRlci1pbnQzMi10by1kb3VibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDMyLXRvLWRvdWJsZS5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1p
bnQzMi10by1kb3VibGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rp
b24gZm9vKHgsIG8pIHsKKyAgICByZXR1cm4gby5mICsgeDsKK30KKworbm9JbmxpbmUoZm9vKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBm
b28oNDIuNSwge2Y6NX0pOworICAgIGlmIChyZXN1bHQgIT0gNDcuNSkKKyAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKCI0
MiIsIHtmOjV9KTsKK2lmIChyZXN1bHQgIT0gIjU0MiIpCisgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLWRvdWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8tZG91YmxlLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0
LWFmdGVyLWludDUyLXRvLWRvdWJsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBA
CitmdW5jdGlvbiBmb28oYSwgYiwgYykgeworICAgIHJldHVybiBhLmYgKyBiLmYgKyBjLmY7Cit9
CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsK
KyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSwge2Y6
MC41fSk7CisgICAgaWYgKHJlc3VsdCAhPSA0MDAwMDAwMDAwLjUpCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyh7Zjoy
MDAwMDAwMDAwfSwge2Y6MjAwMDAwMDAwMH0sIHtmOiI0MiJ9KTsKK2lmIChyZXN1bHQgIT0gIjQw
MDAwMDAwMDA0MiIpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50
NTItdG8tdmFsdWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyhhLCBiLCBj
KSB7CisgICAgYy5mLmYgPSBhLmYgKyBiLmY7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciBj
b3VudGVyID0gMDsKK2Z1bmN0aW9uIG1ha2VXZWlyZE9iamVjdCgpIHsKKyAgICB2YXIgcmVzdWx0
ID0ge307CisgICAgcmVzdWx0WyJibGFoIiArIChjb3VudGVyKyspXSA9IDQyOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2
YXIgbyA9IG1ha2VXZWlyZE9iamVjdCgpOworICAgIGZvbyh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAw
MDAwMDAwMH0sIHtmOm99KTsKKyAgICBpZiAoby5mICE9IDQwMDAwMDAwMDApCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHRoaW5neTsKK051
bWJlci5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKHZhbHVlKSB7IHRo
aW5neSA9IHZhbHVlOyB9KTsKK2Zvbyh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAwMDAwMDAwMH0sIHtm
OjQyfSk7CitpZiAodGhpbmd5ICE9IDQwMDAwMDAwMDApCisgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgdGhpbmd5OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9leGl0LWFmdGVyLWxsdm0tZm9sZHMtbGFyZ2UtaW50LWNvbnN0YW50LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1sbHZt
LWZvbGRzLWxhcmdlLWludC1jb25zdGFudC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1sbHZtLWZvbGRzLWxhcmdlLWludC1j
b25zdGFudC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiBmb28o
bywgaW8pIHsKKyAgICB2YXIgaSA9IGlvLmY7CisgICAgaWYgKGkgIT0gOTIxNjApCisgICAgICAg
IG8uZyA9IDQyOworICAgIHJldHVybiBvLmYuZiArIGk7Cit9CisKK25vSW5saW5lKGZvbyk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9v
KHtmOntmOjQyfX0sIHtmOjkyMTYwfSk7CisgICAgaWYgKHJlc3VsdCAhPSA5MjIwMikKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0
ID0gZm9vKHtmOntnOjIwLCBmOjIxfX0sIHtmOjkyMTYwfSk7CitpZiAocmVzdWx0ICE9IDkyMTgx
KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1mcm9tLWZ0bC13aXRoLWFyaXR5LWNo
ZWNrLWZhaWwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9leGl0LWZyb20tZnRsLXdpdGgtYXJpdHktY2hlY2stZmFpbC5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1mcm9tLWZ0bC13aXRo
LWFyaXR5LWNoZWNrLWZhaWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorZnVu
Y3Rpb24gZm9vKG8sIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGopIHsKKyAgICByZXR1cm4g
by5mOworfQorCitmdW5jdGlvbiBiYXIobykgeworICAgIHJldHVybiBmb28obyk7Cit9CisKK25v
SW5saW5lKGZvbyk7Citub0lubGluZShiYXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
MDsgKytpKQorICAgIGJhcih7Zjo0Mn0pOworCit2YXIgcmVzdWx0ID0gYmFyKHtnOjI0LCBmOjQz
fSk7CitpZiAocmVzdWx0ICE9IDQzKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwt
YXJpdGhjb3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9mdGwtYXJpdGhjb3MuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aGNvcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEzIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBNYXRoLmNvcyh4KTsKK30KKwor
bm9JbmxpbmUoZm9vKTsKKwordmFyIGogPSAwOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7
ICsraSkKKyAgICBqID0gZm9vKGkpOworCitpZiAoLTAuNTA5ODc1MzcyNDE3OTAwOSAhPSBqKXsK
KyAgICB0aHJvdyAiRXJyb3IiCit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2Z0bC1hcml0aHNpbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNpbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc2luLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIE1hdGguc2lu
KHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgaiA9IDA7Citmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKQorICAgIGogPSBmb28oaSk7CisKK2lmICgwLjg2MDI0ODI4MDc4OTc0
MiAhPSBqKXsKKyAgICB0aHJvdyAiRXJyb3IiCit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhzcXJ0LmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhzcXJ0LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0
dXJuIE1hdGguc3FydCh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFyIGogPSAwOworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICBqID0gZm9vKGkpOworCitpZiAoIDMx
Ni4yMjYxODQ4NzQwNTUgIT0gail7CisgICAgdGhyb3cgIkVycm9yIgorfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlkLmpzCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0Ynlp
ZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACisKK09iamVjdC5wcm90b3R5cGUu
X19kZWZpbmVTZXR0ZXJfXygiciIsIGZ1bmN0aW9uKHZhbCl7IG8gPSB2YWwgfSkKKworZnVuY3Rp
b24gZm9vKHgpeworICAgIHZhciBuID0geyB9CisgICAgbi5yID0geDsKK30KKworbm9JbmxpbmUo
Zm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICBmb28oaSk7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWRkaXJl
Y3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9m
dGwtcHV0YnlpZGRpcmVjdC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWRkaXJlY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMiBAQAorZnVuY3Rpb24gZm9vKHgpeworICAgIHJldHVybiB7IDAgOiAxICwgYSA6IHgg
fQorfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytp
KQorICAgIG8gPSBmb28oaSk7CisKK2lmIChvLmEgIT0gOTk5OTkgfHwgb1swXSAhPSAxKQorICAg
IHRocm93ICJFcnJvciIKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtYnktaWQtdGhyb3ctZnJvbS1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1p
ZC10aHJvdy1mcm9tLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ct
ZnJvbS1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDM3IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvLmYgKyAxOworfQor
Citub0lubGluZShmb28pOworCit2YXIgc2hvdWxkVGhyb3cgPSBmYWxzZTsKKworZnVuY3Rpb24g
bWFrZVdpdGhHZXR0ZXIoKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBvLl9fZGVmaW5lR2V0dGVy
X18oImYiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHNob3VsZFRocm93KQorICAgICAgICAg
ICAgdGhyb3cgImhlbGxvIjsKKyAgICAgICAgcmV0dXJuIDQyOworICAgIH0pOworICAgIHJldHVy
biBvOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJl
c3VsdCA9IGZvbyh7ZjoyM30pOworICAgIGlmIChyZXN1bHQgIT0gMjQpCisgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28obWFrZVdp
dGhHZXR0ZXIoKSk7CisgICAgaWYgKHJlc3VsdCAhPSA0MykKKyAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAg
IHNob3VsZFRocm93ID0gdHJ1ZTsKKyAgICBmb28obWFrZVdpdGhHZXR0ZXIoKSk7Cit9IGNhdGNo
IChlKSB7CisgICAgZGlkVGhyb3cgPSBlOworfQorCitpZiAoZGlkVGhyb3cgIT0gImhlbGxvIikK
KyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246
ICIgKyBkaWRUaHJvdzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
Z2V0LWJ5LWlkLXRocm93LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQt
Y29kZS10aGF0LWRvZXMtbm90LWV4aXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVjdGVkLWdldHRl
ci10aHJvdWdoLW9wdGltaXplZC1jb2RlLXRoYXQtZG9lcy1ub3QtZXhpdC5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93
LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS10aGF0LWRvZXMt
bm90LWV4aXQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorZnVuY3Rpb24gZm9v
KG8pIHsKKyAgICByZXR1cm4gby5mOworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiBt
YWtlV2l0aEdldHRlcigpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8uX19kZWZpbmVHZXR0ZXJf
XygiZiIsIGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyAiaGVsbG8iOworICAgIH0pOworICAg
IHJldHVybiBvOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAg
dmFyIHJlc3VsdCA9IGZvbyh7ZjoyM30pOworICAgIGlmIChyZXN1bHQgIT0gMjMpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28o
e2c6MTIsIGY6MTN9KTsKKyAgICBpZiAocmVzdWx0ICE9IDEzKQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gZm9vKHtnOjEyLCBoOjEz
LCBmOjE0fSk7CisgICAgaWYgKHJlc3VsdCAhPSAxNCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIGZv
byhtYWtlV2l0aEdldHRlcigpKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9
CisKK2lmIChkaWRUaHJvdyAhPSAiaGVsbG8iKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRo
cm93IG9yIHRocmV3IHdyb25nIGV4Y2VwdGlvbjogIiArIGRpZFRocm93OwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVj
dGVkLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tdW5leHBl
Y3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tdW5l
eHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM1IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvLmYgKyAxOwor
fQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiBtYWtlV2l0aEdldHRlcigpIHsKKyAgICB2
YXIgbyA9IHt9OworICAgIG8uX19kZWZpbmVHZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKCkgeworICAg
ICAgICB0aHJvdyAiaGVsbG8iOworICAgIH0pOworICAgIHJldHVybiBvOworfQorCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7ZjoyM30p
OworICAgIGlmIChyZXN1bHQgIT0gMjQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3Vs
dDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28oe2c6MTIsIGY6MTN9KTsKKyAgICBpZiAo
cmVzdWx0ICE9IDE0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7CisgICAgcmVzdWx0ID0gZm9vKHtnOjEyLCBoOjEzLCBmOjE0fSk7CisgICAgaWYgKHJlc3Vs
dCAhPSAxNSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fQorCit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIGZvbyhtYWtlV2l0aEdldHRlcigpKTsKK30g
Y2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAhPSAiaGVs
bG8iKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4Y2Vw
dGlvbjogIiArIGRpZFRocm93OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9pYy10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaWMtdGhyb3ctdGhyb3VnaC1vcHRpbWl6
ZWQtY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvaWMtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDI5IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvLmYgKyAxOwor
fQorCitOdW1iZXIucHJvdG90eXBlLmYgPSA0MjsKKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oMjMpOwor
ICAgIGlmIChyZXN1bHQgIT0gNDMpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28oe2Y6MjV9KTsKKyAgICBpZiAocmVzdWx0ICE9
IDI2KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAg
cmVzdWx0ID0gZm9vKHtnOjEyLCBmOjEzfSk7CisgICAgaWYgKHJlc3VsdCAhPSAxNCkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgZGlkVGhy
b3c7Cit0cnkgeworICAgIGZvbyh2b2lkIDApOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93
ID0gZTsKK30KKworaWYgKCFkaWRUaHJvdyB8fCBkaWRUaHJvdy50b1N0cmluZygpLmluZGV4T2Yo
IlR5cGVFcnJvcjoiKSAhPSAwKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRo
cmV3IHdyb25nIGV4Y2VwdGlvbjogIiArIGRpZFRocm93OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLWFuZC1jYWxsLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwt
dmFyYXJncy1hbmQtY2FsbC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFyYXJncy1hbmQtY2FsbC5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiBmb28oYSwgYikgeworICAgIHJldHVybiBi
YXIoYSwgYik7Cit9CisKK2Z1bmN0aW9uIGJhcihhLCBiKSB7CisgICAgdmFyIHggPSBiYXouYXBw
bHkobnVsbCwgYXJndW1lbnRzKTsKKyAgICB2YXIgeSA9IGJheihhLCBiKQorICAgIHJldHVybiB4
ICsgeSAqIDM7Cit9CisKK2Z1bmN0aW9uIGJheihhLCBiKSB7CisgICAgcmV0dXJuIGEgKyBiICog
MjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsr
aSkgeworICAgIHZhciByZXN1bHQgPSBmb28oNywgMTEpOworICAgIGlmIChyZXN1bHQgIT0gMTE2
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3Zh
ciByZXN1bHQgPSBmb28oNSwgMjE0NzQ4MzY0Nik7CitpZiAocmVzdWx0ICE9IDE3MTc5ODY5MTg4
KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFyYXJncy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jYWxs
LXZhcmFyZ3MuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3MuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
MyBAQAorZnVuY3Rpb24gZm9vKGEsIGIpIHsKKyAgICByZXR1cm4gYmFyKGEsIGIpOworfQorCitm
dW5jdGlvbiBiYXIoYSwgYikgeworICAgIHJldHVybiBiYXouYXBwbHkobnVsbCwgYXJndW1lbnRz
KTsKK30KKworZnVuY3Rpb24gYmF6KGEsIGIpIHsKKyAgICByZXR1cm4gYSArIGIgKiAyOworfQor
Citub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7Cisg
ICAgdmFyIHJlc3VsdCA9IGZvbyg3LCAxMSk7CisgICAgaWYgKHJlc3VsdCAhPSAyOSkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0
ID0gZm9vKDUsIDIxNDc0ODM2NDYpOworaWYgKHJlc3VsdCAhPSA0Mjk0OTY3Mjk3KQorICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNsb3N1cmUtY2FsbC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jbG9zdXJlLWNhbGwu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lu
bGluZS1jbG9zdXJlLWNhbGwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVu
Y3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oeSkgeyByZXR1cm4geCArIHk7IH0K
K30KKworZnVuY3Rpb24gYmFyKGEsIGIpIHsKKyAgICByZXR1cm4gZm9vKGEpKGIpOworfQorCitu
b0lubGluZShmb28pOworbm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBiYXIoaSwgaSArIDEpOworICAgIGlmIChyZXN1
bHQgIT0gaSAqIDIgKyAxKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgZm9yICIg
KyBpICsgIjogIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1hbmQtb3V0LW9mLWJvdW5kcy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12
YWwtaW4tYW5kLW91dC1vZi1ib3VuZHMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtaW4tYW5kLW91dC1vZi1ib3Vu
ZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rpb24gZm9vKGEpIHsK
KyAgICBhWzQyXSA9IDk1MDEwOworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiB0ZXN0
KGxlbmd0aCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgYSA9IG5ldyBJbnQxNkFycmF5KGxlbmd0aCk7
CisgICAgZm9vKGEpOworICAgIHZhciByZXN1bHQgPSBhWzQyXTsKKyAgICBpZiAocmVzdWx0ICE9
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCB2YWx1ZSBhdCBhWzQyXTogIiAr
IHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRl
c3QoMTAsIHZvaWQgMCk7CisgICAgdGVzdCgxMDAsIDI5NDc0KTsKK30KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1ib3VuZHMtdGhl
bi1leGl0LW91dC1vZi1ib3VuZHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWJvdW5kcy10aGVuLWV4aXQtb3V0
LW9mLWJvdW5kcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1ib3VuZHMtdGhlbi1leGl0LW91dC1vZi1ib3Vu
ZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gZm9vKGEpIHsK
KyAgICBhWzQyXSA9IDk1MDEwOworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiB0ZXN0
KGxlbmd0aCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgYSA9IG5ldyBJbnQxNkFycmF5KGxlbmd0aCk7
CisgICAgZm9vKGEpOworICAgIHZhciByZXN1bHQgPSBhWzQyXTsKKyAgICBpZiAocmVzdWx0ICE9
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCB2YWx1ZSBhdCBhWzQyXTogIiAr
IHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICB0ZXN0
KDEwMCwgMjk0NzQpOworCit0ZXN0KDEwLCB2b2lkIDApOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0LW9mLWJvdW5kcy1ib3Vu
ZHMtdGhlbi1kby1pbi1ib3VuZHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLW91dC1vZi1ib3VuZHMtYm91bmRzLXRo
ZW4tZG8taW4tYm91bmRzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLW91dC1vZi1ib3VuZHMtYm91bmRzLXRoZW4t
ZG8taW4tYm91bmRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9u
IGZvbyhhKSB7CisgICAgYVs0Ml0gPSA5NTAxMDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVu
Y3Rpb24gdGVzdChsZW5ndGgsIGV4cGVjdGVkKSB7CisgICAgdmFyIGEgPSBuZXcgSW50MTZBcnJh
eShsZW5ndGgpOworICAgIGZvbyhhKTsKKyAgICB2YXIgcmVzdWx0ID0gYVs0Ml07CisgICAgaWYg
KHJlc3VsdCAhPSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgdmFsdWUgYXQg
YVs0Ml06ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kp
CisgICAgdGVzdCgxMCwgdm9pZCAwKTsKKwordGVzdCgxMDAsIDI5NDc0KTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnZhbGlkYXRpb24tcG9pbnQuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnZhbGlkYXRp
b24tcG9pbnQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2ludmFsaWRhdGlvbi1wb2ludC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI0
IEBACitmdW5jdGlvbiBmb28obywgcCkgeworICAgIHBvc3NpYmx5RG9CYWRUaGluZ3MocCk7Cisg
ICAgcmV0dXJuIG8uZigpOworfQorbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gVGhpbmd5KCkg
eyB9CitUaGluZ3kucHJvdG90eXBlLmYgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDQyOyB9CisKK2Z1
bmN0aW9uIHBvc3NpYmx5RG9CYWRUaGluZ3MocCkgeworICAgIGlmIChwKQorICAgICAgICBUaGlu
Z3kucHJvdG90eXBlLmYgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDI0OyB9Cit9Citub0lubGluZShw
b3NzaWJseURvQmFkVGhpbmdzKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkg
eworICAgIHZhciByZXN1bHQgPSBmb28obmV3IFRoaW5neSgpLCBmYWxzZSk7CisgICAgaWYgKHJl
c3VsdCAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0
OworfQorCit2YXIgcmVzdWx0ID0gZm9vKG5ldyBUaGluZ3koKSwgdHJ1ZSk7CitpZiAocmVzdWx0
ICE9IDI0KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTIuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYWtlLXJvcGUtMi5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFr
ZS1yb3BlLTIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gZm9v
KHgpIHsKKyAgICByZXR1cm4gImhlbGxvIiArIHg7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKCIg
d29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBk
ZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgdHlwZTog
IiArIHJlc3VsdDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8gd29ybGQiKQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTMuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYWtlLXJvcGUtMy5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1y
b3BlLTMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gZm9vKHgp
IHsKKyAgICByZXR1cm4gImhlbGxvIiArIHggKyAiISEiOworfQorCitub0lubGluZShmb28pOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZv
bygiIHdvcmxkIik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAg
ICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IHR5
cGU6ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIHdvcmxkISEi
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXN0b3JhZ2Ut
YXJyYXktd2l0aC1zaXplLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXN0b3JhZ2UtYXJyYXktd2l0aC1zaXplLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktc3Rv
cmFnZS1hcnJheS13aXRoLXNpemUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAor
ZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gbmV3IEFycmF5KHgpOworfQorCitub0lubGlu
ZShmb28pOworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHNp
emUpOworICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgc2F3VGhpbmdzID0gZmFsc2U7Cisg
ICAgZm9yICh2YXIgcyBpbiByZXN1bHQpCisgICAgICAgIHNhd1RoaW5ncyA9IHRydWU7CisgICAg
aWYgKHNhd1RoaW5ncykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiBiYWQgc3Rh
dGU6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gIjQyLjUiOworICAgIGlmIChyZXN1bHRb
MF0gIT0gIjQyLjUiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIHdpZXJkIHN0
YXRlOiAiICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7
CisgICAgdGVzdCgxMDAwMDAwKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvbmV3LWFycmF5LXdpdGgtc2l6ZS13aXRoLWJhZC10aW1lLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXdpdGgtc2l6
ZS13aXRoLWJhZC10aW1lLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktd2l0aC1zaXplLXdpdGgtYmFkLXRpbWUuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzNCBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4g
bmV3IEFycmF5KHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgcG9rZTsKK0FycmF5LnBy
b3RvdHlwZS5fX2RlZmluZVNldHRlcl9fKCIxIiwgZnVuY3Rpb24oKSB7CisgICAgcG9rZSA9ICJw
b2tlIjsKK30pOworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9v
KHNpemUpOworICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUpCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgc2F3VGhpbmdzID0gZmFsc2U7
CisgICAgZm9yICh2YXIgcyBpbiByZXN1bHQpIHsKKyAgICAgICAgaWYgKHMgIT0gIjEiKQorICAg
ICAgICAgICAgc2F3VGhpbmdzID0gdHJ1ZTsKKyAgICB9CisgICAgaWYgKHNhd1RoaW5ncykKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gIjQyLjUiOworICAgIGlmIChyZXN1bHRbMF0gIT0gIjQyLjUiKQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIHdpZXJkIHN0YXRlOiAiICsgcmVzdWx0Owor
ICAgIHBva2UgPSBudWxsOworICAgIHJlc3VsdFsxXSA9IDQyOworICAgIGlmIChwb2tlICE9ICJw
b2tlIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBzZXR0ZXIgbm90IGNhbGxlZC4iOworfQorCitm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdGVzdCg0Mik7Cit9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1jb250aWd1b3VzLWFycmF5
LXdpdGgtc2l6ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL25ldy1jb250aWd1b3VzLWFycmF5LXdpdGgtc2l6ZS5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWNvbnRpZ3VvdXMtYXJyYXkt
d2l0aC1zaXplLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIGZv
byh4KSB7CisgICAgcmV0dXJuIG5ldyBBcnJheSh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKwor
ZnVuY3Rpb24gdGVzdChzaXplKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBp
ZiAocmVzdWx0Lmxlbmd0aCAhPSBzaXplKSB7CisgICAgICAgIHByaW50KCJHb3QgYSB3ZWlyZCBs
ZW5ndGg6ICIgKyByZXN1bHQubGVuZ3RoKTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0OiAiICsgcmVzdWx0OworICAgIH0KKyAgICB2YXIgc2F3VGhpbmdzID0gZmFsc2U7CisgICAg
Zm9yICh2YXIgcyBpbiByZXN1bHQpCisgICAgICAgIHNhd1RoaW5ncyA9IHRydWU7CisgICAgaWYg
KHNhd1RoaW5ncykgeworICAgICAgICBwcmludCgiU2F3IHRoaW5ncyEiKTsKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBhcnJheSBpcyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7CisgICAgfQorICAg
IHJlc3VsdFswXSA9ICI0Mi41IjsKKyAgICBpZiAocmVzdWx0WzBdICE9ICI0Mi41IikgeworICAg
ICAgICBwcmludCgiRGlkbid0IHN0b3JlIHdoYXQgSSB0aG91Z2h0IEkgc3RvcmVkLiIpOworICAg
ICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIHdpZXJkIHN0YXRlOiAiICsgcmVzdWx0Owor
ICAgIH0KK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRlc3Qo
MCk7CisgICAgdGVzdCgxKTsKKyAgICB0ZXN0KDQyKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWRvdWJsZS1hcnJheS13aXRoLXNpemUuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctZG91YmxlLWFy
cmF5LXdpdGgtc2l6ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvbmV3LWRvdWJsZS1hcnJheS13aXRoLXNpemUuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwyNSBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gbmV3IEFycmF5
KHgpOworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2
YXIgcmVzdWx0ID0gZm9vKHNpemUpOworICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUpCisg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgc2F3
VGhpbmdzID0gZmFsc2U7CisgICAgZm9yICh2YXIgcyBpbiByZXN1bHQpCisgICAgICAgIHNhd1Ro
aW5ncyA9IHRydWU7CisgICAgaWYgKHNhd1RoaW5ncykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBh
cnJheSBpcyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gNDIuNTsK
KyAgICBpZiAocmVzdWx0WzBdICE9IDQyLjUpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkg
aXMgaW4gd2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3QoMSk7CisgICAgdGVzdCg0Mik7
Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1pbnQzMi1h
cnJheS13aXRoLXNpemUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9uZXctaW50MzItYXJyYXktd2l0aC1zaXplLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctaW50MzItYXJyYXktd2l0aC1z
aXplLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7
CisgICAgcmV0dXJuIG5ldyBBcnJheSh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rp
b24gdGVzdChzaXplKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVz
dWx0Lmxlbmd0aCAhPSBzaXplKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7CisgICAgdmFyIHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4g
cmVzdWx0KQorICAgICAgICBzYXdUaGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpCisg
ICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IDQyOworICAgIGlmIChyZXN1bHRbMF0gIT0gNDIpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYXJyYXkgaXMgaW4gd2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7Cit9CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3Qo
MSk7CisgICAgdGVzdCg0Mik7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL25ldy11bmRlY2lkZWQtYXJyYXktd2l0aC1zaXplLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LXVuZGVjaWRlZC1hcnJheS13aXRo
LXNpemUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL25ldy11bmRlY2lkZWQtYXJyYXktd2l0aC1zaXplLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMjIgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIG5ldyBBcnJheSh4KTsK
K30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChzaXplKSB7CisgICAgdmFyIHJl
c3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSBzaXplKQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgdmFyIHNhd1RoaW5n
cyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0KQorICAgICAgICBzYXdUaGluZ3Mg
PSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkg
aXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKSB7CisgICAgdGVzdCgwKTsKKyAgICB0ZXN0KDEpOworICAgIHRlc3QoNDIpOwor
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wdXQtYnktaWQtdGhy
b3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC10aHJvdy10aHJvdWdoLW9wdGltaXplZC1j
b2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9wdXQtYnktaWQtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMzIEBACitmdW5jdGlvbiBmb28obykgeworICAgICJ1c2Ugc3RyaWN0IjsK
KyAgICBvLmYgPSA0MjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciBvID0ge307CisgICAgZm9vKG8pOworICAgIGlmIChv
LmYgIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIG8uZjsKKyAg
ICBvID0ge2Y6MjN9OworICAgIGZvbyhvKTsKKyAgICBpZiAoby5mICE9IDQyKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBvLmY7CisgICAgbyA9IHtnOjEyfTsKKyAgICBm
b28obyk7CisgICAgaWYgKG8uZiAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0OiAiICsgby5mOworfQorCit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIHZhciBvID0ge307
CisgICAgT2JqZWN0LmZyZWV6ZShvKTsKKyAgICBmb28obyk7Cit9IGNhdGNoIChlKSB7CisgICAg
ZGlkVGhyb3cgPSBlOworfQorCitpZiAoIWRpZFRocm93IHx8IGRpZFRocm93LnRvU3RyaW5nKCku
aW5kZXhPZigiVHlwZUVycm9yOiIpICE9IDApCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhy
b3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlY3Vyc2UtaW5maW5pdGVseS1vbi1nZXR0ZXIu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWN1
cnNlLWluZmluaXRlbHktb24tZ2V0dGVyLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWN1cnNlLWluZmluaXRlbHktb24tZ2V0dGVyLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyAr
K2kpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8uX19kZWZpbmVHZXR0ZXJfXygiZiIsIGZ1bmN0
aW9uKCkgeworICAgICAgICByZXR1cm4gby5mOworICAgIH0pOworICAgIHZhciBkaWRUaHJvdzsK
KyAgICB2YXIgcmVzdWx0OworICAgIHJlc3VsdCA9ICJub3Qgc2V0IjsKKyAgICB0cnkgeworICAg
ICAgICByZXN1bHQgPSBvLmY7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBkaWRUaHJvdyA9
IGU7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIm5vdCBzZXQiKQorICAgICAgICB0aHJvdyAi
RGlkIHNldCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgaWYgKCFkaWRUaHJvdyB8fCBkaWRUaHJv
dy50b1N0cmluZygpLmluZGV4T2YoIlJhbmdlRXJyb3IiKSAhPSAwKQorICAgICAgICB0aHJvdyAi
QmFkIGV4Y2VwdGlvbjogIiArIGRpZFRocm93OworfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3JlcGVhdGVkLWFyaXR5LWNoZWNrLWZhaWwuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZXBlYXRlZC1hcml0eS1j
aGVjay1mYWlsLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9yZXBlYXRlZC1hcml0eS1jaGVjay1mYWlsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsOCBAQAorZnVuY3Rpb24gYmFyKGEsYixjLGQsZSxmLGcsaCxpLGosaykgeworfQorCitu
b0lubGluZShiYXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDAwOyArK2kpCisgICAg
YmFyKCk7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcnVudGlt
ZS10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXpl
ZC1jb2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9ydW50aW1lLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwzMyBAQAorZnVuY3Rpb24gZm9vKGEsIHMpIHsKKyAgICByZXR1cm4gYVtz
XSArIDE7Cit9CisKK3ZhciBzaG91bGRUaHJvdyA9IGZhbHNlOworZnVuY3Rpb24gYmFyKCkgewor
ICAgIGlmIChzaG91bGRUaHJvdykKKyAgICAgICAgdGhyb3cgImhlbGxvIjsKKyAgICByZXR1cm4g
NDI7Cit9CisKK3ZhciBhID0ge307CithLl9fZGVmaW5lR2V0dGVyX18oImJhciIsIGJhcik7CisK
K25vSW5saW5lKGZvbyk7Citub0lubGluZShiYXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhhLCAiYmFyIik7CisgICAgaWYgKHJl
c3VsdCAhPSA0MykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0
OworfQorCit2YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIHNob3VsZFRocm93ID0gdHJ1ZTsKKyAg
ICBmb28oYSwgImJhciIpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30KKwor
aWYgKGRpZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhyb3cg
b3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1jYWxsLWlubGluaW5n
LWV4YW1wbGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZh
cmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MzIgQEAKK2Z1bmN0aW9uIGZvbyhiYXopIHsKKyAgICByZXR1cm4gYmFyKGJheik7Cit9CisKK2Z1
bmN0aW9uIGZ1enooYmF6KSB7CisgICAgcmV0dXJuIGJhcihiYXopOworfQorCitmdW5jdGlvbiBi
YXIoYmF6KSB7CisgICAgcmV0dXJuIGJheigpOworfQorCitmdW5jdGlvbiBiYXoxKCkgeworICAg
IHJldHVybiA0MjsKK30KKworZnVuY3Rpb24gYmF6MigpIHsKKyAgICByZXR1cm4gMjQ7Cit9CisK
K25vSW5saW5lKGZvbyk7Citub0lubGluZShmdXp6KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oYmF6MSk7CisgICAgaWYgKHJlc3Vs
dCAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
ICAgIHZhciByZXN1bHQgPSBmdXp6KGJhejIpOworICAgIGlmIChyZXN1bHQgIT0gMjQpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtZ2V0LWJ5
LWlkLWlubGluaW5nLWV4YW1wbGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtZ2V0LWJ5LWlkLWlubGluaW5nLWV4
YW1wbGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1nZXQtYnktaWQtaW5saW5pbmctZXhhbXBsZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDI0IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVy
biBiYXIobyk7Cit9CisKK2Z1bmN0aW9uIGZ1enoobykgeworICAgIHJldHVybiBiYXIobyk7Cit9
CisKK2Z1bmN0aW9uIGJhcihvKSB7CisgICAgcmV0dXJuIG8uZjsKK30KKworbm9JbmxpbmUoZm9v
KTsKK25vSW5saW5lKGZ1enopOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7
CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7Zjo0Mn0pOworICAgIGlmIChyZXN1bHQgIT0gNDIpCisg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgcmVz
dWx0ID0gZnV6eih7ZzoyMywgZjoyNH0pOworICAgIGlmIChyZXN1bHQgIT0gMjQpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtcHV0LWJ5LWlk
LWlubGluaW5nLWV4YW1wbGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtcHV0LWJ5LWlkLWlubGluaW5nLWV4YW1w
bGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3NpbXBsZS1wb2x5dmFyaWFudC1wdXQtYnktaWQtaW5saW5pbmctZXhhbXBsZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDI2IEBACitmdW5jdGlvbiBmb28obykgeworICAgIGJhcihvKTsK
K30KKworZnVuY3Rpb24gZnV6eihvKSB7CisgICAgYmFyKG8pOworfQorCitmdW5jdGlvbiBiYXIo
bykgeworICAgIG8uZiA9IDQyOworfQorCitub0lubGluZShmb28pOworbm9JbmxpbmUoZnV6eik7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgbyA9IHt9Owor
ICAgIGZvbyhvKTsKKyAgICBpZiAoby5mICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyBvLmY7CisgICAgbyA9IHtmOjIzfTsKKyAgICB2YXIgcmVzdWx0ID0gZnV6
eihvKTsKKyAgICBpZiAoby5mICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQ6ICIgKyBvLmY7Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Ro
cm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
MCBAQAorZnVuY3Rpb24gZm9vKGYpIHsKKyAgICByZXR1cm4gZigxKSArIDE7Cit9CisKK3ZhciBz
aG91bGRUaHJvdyA9IGZhbHNlOworZnVuY3Rpb24gYmFyKHgpIHsKKyAgICBpZiAoc2hvdWxkVGhy
b3cpCisgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgcmV0dXJuIDQyIC0geDsKK30KKworbm9J
bmxpbmUoZm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhcik7CisgICAgaWYgKHJlc3VsdCAhPSA0
MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2
YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIHNob3VsZFRocm93ID0gdHJ1ZTsKKyAgICBmb28oYmFy
KTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAh
PSAiaGVsbG8iKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25n
IGV4Y2VwdGlvbjogIiArIGRpZFRocm93OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LW9yLXN0cmluZy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3Qt
b3Itc3RyaW5nLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LW9yLXN0cmluZy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDI3IEBACitmdW5jdGlvbiBGb28oKSB7IH0KKworRm9vLnByb3RvdHlwZS50b1N0
cmluZyA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gImhlbGxvIiB9OworCitmdW5jdGlvbiBmb28obykg
eworICAgIHJldHVybiBTdHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBGb28o
KSk7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3Jp
YmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmci
OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICAKKyAgICByZXN1bHQgPSBmb28oIndvcmxk
Iik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3Jp
YmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmci
OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJ3b3JsZCIpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3QuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmlu
Zy1vbi1vYmplY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24g
Rm9vKCkgeyB9CisKK0Zvby5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgcmV0dXJu
ICJoZWxsbyIgfTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gU3RyaW5nKG8pOwor
fQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7
CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgRm9vKCkpOworICAgIGlmICh0eXBlb2YgcmVzdWx0
ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93
ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAh
PSAiaGVsbG8iKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1v
bi1zdHJpbmctb2JqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vYmplY3QuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmct
b2JqZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhv
KSB7CisgICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28obmV3IFN0
cmluZygiaGVsbG8iKSk7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAg
ICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNu
J3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmct
b2JqZWN0LXRoZW4tb2JqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0LXRoZW4t
b2JqZWN0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QtdGhlbi1vYmplY3QuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICBy
ZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgU3RyaW5nKCJoZWxs
byIpKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNj
cmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmlu
ZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIAorICAgIHJlc3VsdCA9IGZvbygid29y
bGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNj
cmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmlu
ZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIndvcmxkIikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7IH0KKwor
Rm9vLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gImhlbGxvIiB9Owor
Cit2YXIgcmVzdWx0ID0gZm9vKG5ldyBGb28oKSk7CitpZiAodHlwZW9mIHJlc3VsdCAhPSAic3Ry
aW5nIikgeworICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgdGhyb3cgIkVycm9yOiByZXN1bHQg
aXNuJ3QgYSBzdHJpbmciOworfQoraWYgKHJlc3VsdCAhPSAiaGVsbG8iKQorICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5n
LW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1v
YmplY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorZnVuY3Rpb24gZm9vKG8p
IHsKKyAgICByZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgU3Ry
aW5nKCJoZWxsbyIpKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAg
ICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24n
dCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIAorICAgIHJlc3VsdCA9
IGZvbygid29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAg
ICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24n
dCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIndvcmxkIikKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tdmFsdWUtb3Itc3RyaW5nLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3Ry
aW5nLW9uLXZhbHVlLW9yLXN0cmluZy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLW9yLXN0cmluZy5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVy
biBTdHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDQyKTsKKyAgICBpZiAodHlwZW9m
IHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAg
ICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChy
ZXN1bHQgIT0gIjQyIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVz
dWx0OworICAgIAorICAgIHJlc3VsdCA9IGZvbygid29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJl
c3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0
aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1
bHQgIT0gIndvcmxkIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVz
dWx0OworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJp
bmctb24tdmFsdWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy90by1zdHJpbmctb24tdmFsdWUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBTdHJp
bmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDQyKTsKKyAgICBpZiAodHlwZW9mIHJlc3Vs
dCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJv
dyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQg
IT0gIjQyIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fQpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE2MjkxNCkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDEtMjcgIE1hcmsgSGFobmVuYmVyZyAg
PG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSB0aGUganNDU3RhY2sgYnJh
bmNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3
NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0
Zi9CYWdUb0hhc2hNYXAuaDoKKyAgICAgICAgKFdURjo6dG9IYXNoTWFwKToKKyAgICAgICAgKiB3
dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvU3RhY2tCb3VuZHMuaDoKKyAgICAgICAgKFdU
Rjo6U3RhY2tCb3VuZHM6OnJlY3Vyc2lvbkxpbWl0KToKKwogMjAxNC0wMS0yNyAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkNvcmU6IEVuYWJsZSAt
V2ltcGxpY2l0LWZhbGx0aHJvdWdoIGFuZCBhZGQgRkFMTFRIUk9VR0ggYW5ub3RhdGlvbiB3aGVy
ZSBuZWVkZWQKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0JhZ1RvSGFzaE1hcC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL0JhZ1RvSGFzaE1hcC5oCShyZXZpc2lvbiAxNjI5MTQpCisrKyBT
b3VyY2UvV1RGL3d0Zi9CYWdUb0hhc2hNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsOCArMzIsOCBA
QAogCiBuYW1lc3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgRWxlbWVudFR5cGUsIHR5
cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1lIEtleUdldHRlckZ1bmN0b3I+Ci12b2lkIHRvSGFzaE1h
cChCYWc8RWxlbWVudFR5cGU+JiBiYWcsIEtleUdldHRlckZ1bmN0b3ImIGdldEtleSwgSGFzaE1h
cDxLZXlUeXBlLCBFbGVtZW50VHlwZSo+JiByZXN1bHQpCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbGVt
ZW50VHlwZSwgdHlwZW5hbWUgS2V5VHlwZSwgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5
R2V0dGVyRnVuY3Rvcj4KK3ZvaWQgdG9IYXNoTWFwKEJhZzxFbGVtZW50VHlwZT4mIGJhZywgS2V5
R2V0dGVyRnVuY3RvciYgZ2V0S2V5LCBIYXNoTWFwPEtleVR5cGUsIEVsZW1lbnRUeXBlKiwgSGFz
aEFyZz4mIHJlc3VsdCkKIHsKICAgICBmb3IgKHR5cGVuYW1lIEJhZzxFbGVtZW50VHlwZT46Oml0
ZXJhdG9yIGl0ZXIgPSBiYWcuYmVnaW4oKTsgISFpdGVyOyArK2l0ZXIpIHsKICAgICAgICAgRWxl
bWVudFR5cGUqIGVsZW1lbnQgPSAqaXRlcjsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gMTYy
OTE0KQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtNjYw
LDEyICs2NjAsMTIgQEAKICNkZWZpbmUgRU5BQkxFX0pJVCAwCiAjZW5kaWYKIAotLyogVGhlIEpJ
VCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4NiwgeDg2LTY0LCBBUk0gJiBNSVBTIHBs
YXRmb3JtcyBleGNlcHQgV2luNjQuICovCisvKiBUaGUgSklUIGlzIGVuYWJsZWQgYnkgZGVmYXVs
dCBvbiBhbGwgeDg2LCB4ODYtNjQsIEFSTSAmIE1JUFMgcGxhdGZvcm1zIGV4Y2VwdCBXaW5kb3dz
LiAqLwogI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpIFwKICAgICAmJiAoQ1BVKFg4NikgfHwgQ1BV
KFg4Nl82NCkgfHwgQ1BVKEFSTSkgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykpIFwKICAgICAm
JiAoT1MoREFSV0lOKSB8fCAhQ09NUElMRVIoR0NDKSB8fCBHQ0NfVkVSU0lPTl9BVF9MRUFTVCg0
LCAxLCAwKSkgXAogICAgICYmICFPUyhXSU5DRSkgXAotICAgICYmICEoT1MoV0lORE9XUykgJiYg
Q1BVKFg4Nl82NCkpCisgICAgJiYgIU9TKFdJTkRPV1MpCiAjZGVmaW5lIEVOQUJMRV9KSVQgMQog
I2VuZGlmCiAKQEAgLTgzNSwxNCArODM1LDYgQEAKICNlbmRpZgogI2VuZGlmCiAKLS8qIEZJWE1F
OiBXZSBjdXJyZW50bHkgdW5jb25kaXRpb25hbGx5IHVzZSBzcGVhcmF0ZSBzdGFja3MuIFdoZW4g
d2Ugc3dpdGNoIHRvIHVzaW5nIHRoZQotICAgQyBzdGFjayBmb3IgSlMgZnJhbWVzLCB3ZSdsbCBu
ZWVkIHRvIG1ha2UgdGhlIGZvbGxvd2luZyBjb25kaXRpb25hbCBvbiBFTkFCTEUoTExJTlRfQ0xP
T1ApCi0gICBvbmx5LgotKi8KLSNpZiBFTkFCTEUoTExJTlRfQ0xPT1ApIHx8IDEKLSNkZWZpbmUg
V1RGX1VTRV9TRVBBUkFURV9DX0FORF9KU19TVEFDSyAxCi0jZW5kaWYKLQogLyogUGljayB3aGlj
aCBhbGxvY2F0b3IgdG8gdXNlOyB3ZSBvbmx5IG5lZWQgYW4gZXhlY3V0YWJsZSBhbGxvY2F0b3Ig
aWYgdGhlIGFzc2VtYmxlciBpcyBjb21waWxlZCBpbi4KICAgIE9uIHg4Ni02NCB3ZSB1c2UgYSBz
aW5nbGUgZml4ZWQgbW1hcCwgb24gb3RoZXIgcGxhdGZvcm1zIHdlIG1tYXAgb24gZGVtYW5kLiAq
LwogI2lmIEVOQUJMRShBU1NFTUJMRVIpCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5k
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1N0YWNrQm91bmRzLmgJKHJldmlzaW9u
IDE2MjkxNCkKKysrIFNvdXJjZS9XVEYvd3RmL1N0YWNrQm91bmRzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDggQEAKICNpZm5kZWYgU3RhY2tCb3VuZHNfaAogI2RlZmluZSBTdGFja0Jv
dW5kc19oCiAKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKIG5hbWVzcGFjZSBXVEYgewogCiBjbGFz
cyBTdGFja0JvdW5kcyB7CkBAIC02Nyw2ICs2OSwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxjaGFyKj4obV9ib3VuZCkgLSBtaW5BdmFpbGFibGVEZWx0YTsKICAgICB9
CiAKKyAgICB2b2lkKiByZWN1cnNpb25MaW1pdChzaXplX3QgaG9zdFpvbmVTaXplLCB2b2lkKiBk
ZXNpcmVkTGltaXQpIGNvbnN0CisgICAgeworICAgICAgICBjaGVja0NvbnNpc3RlbmN5KCk7Cisg
ICAgICAgIGlmIChpc0dyb3dpbmdEb3dud2FyZCgpKSB7CisgICAgICAgICAgICBjaGFyKiBlbmRP
ZlN0YWNrV2l0aEhvc3Rab25lID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9ib3VuZCkgKyBo
b3N0Wm9uZVNpemU7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYXgoZGVzaXJlZExpbWl0LCBy
ZWludGVycHJldF9jYXN0PHZvaWQqPihlbmRPZlN0YWNrV2l0aEhvc3Rab25lKSk7CisgICAgICAg
IH0KKyAgICAgICAgY2hhciogZW5kT2ZTdGFja1dpdGhIb3N0Wm9uZSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KG1fYm91bmQpIC0gaG9zdFpvbmVTaXplOworICAgICAgICByZXR1cm4gc3RkOjpt
aW4oZGVzaXJlZExpbWl0LCByZWludGVycHJldF9jYXN0PHZvaWQqPihlbmRPZlN0YWNrV2l0aEhv
c3Rab25lKSk7CisgICAgfQorCiAgICAgYm9vbCBpc0dyb3dpbmdEb3dud2FyZCgpIGNvbnN0CiAg
ICAgewogICAgICAgICBBU1NFUlQobV9vcmlnaW4gJiYgbV9ib3VuZCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0wMS0yNyAgTWFyayBIYWhuZW5iZXJnICA8bWhh
aG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIHRoZSBqc0NTdGFjayBicmFuY2gK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc2Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRm9yd2Fy
ZGluZ0hlYWRlcnMvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuaDoKKyAgICAgICAg
KiBGb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvU2NyaXB0QnJlYWtwb2ludC5oOgorICAgICAg
ICAqIEZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmg6Cisg
ICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaDog
QWRkZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMveWFyci9SZWd1bGFyRXhwcmVzc2lv
bi5oOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRFeGNl
cHRpb24pOgorCiAyMDE0LTAxLTI3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBpT1MgYnVpbGQgZml4LiBGQUxMVEhST1VHSHMgZm9y
IGlPUy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvRXJy
b3JIYW5kbGluZ1Njb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3Bl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0Vy
cm9ySGFuZGxpbmdTY29wZV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0Vycm9ySGFuZGxpbmdTY29w
ZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXJyb3JIYW5kbGluZ1Njb3BlLmg+CisjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagkocmV2aXNpb24gMTYyOTE0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTg1MDIsNiArMTg1MDIsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxDb25z
dHJ1Y3REYXRhLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVh
ZGVyc1xydW50aW1lXERhdGVJbnN0YW5jZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxFcnJvci5oIiAvPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRp
bWVcRXJyb3JQcm90b3R5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndh
cmRpbmdIZWFkZXJzXHJ1bnRpbWVcRXhjZXB0aW9uSGVscGVycy5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxFeGVjdXRhYmxlLmgiIC8+
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxNjI5MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAg
LTEyNDkyLDYgKzEyNDkyLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcRXJyb3IuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgi
PgorICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAg
PC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXEVycm9yUHJvdG90eXBlLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVh
ZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDE2MjkxNCkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxpbnRlcnByZXRlci9JbnRlcnByZXRlci5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9F
cnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTE1NCw3ICsxNTUsNyBAQCB2
b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTCiAgICAgaWYgKGlzVGVybWlu
YXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihleGNlcHRpb24pKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBJbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGUgbW9kZShleGVjKTsKKyAgICBFcnJvckhh
bmRsaW5nU2NvcGUgZXJyb3JTY29wZShleGVjLT52bSgpKTsKIAogICAgIFJlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKGV4
ZWMsIGV4Y2VwdGlvbiwgU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJl
KSk7CiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MjkxNCkKKysrIFRvb2xz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE0LTAxLTI3ICBN
YXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2Ug
dGhlIGpzQ1N0YWNrIGJyYW5jaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI3NzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTY3JpcHRzL2Rpc3BsYXktcHJvZmlsZXItb3V0cHV0OgorICAgICAgICAq
IFNjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHM6CisKIDIwMTQtMDEtMjcgIERhdmlkIEZhcmxl
ciAgPGRmYXJsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIGlPUyBEdW1wUmVuZGVyVHJlZS5hcHAg
ZGllcyBsb2FkaW5nIGZvbnRzCkluZGV4OiBUb29scy9TY3JpcHRzL2Rpc3BsYXktcHJvZmlsZXIt
b3V0cHV0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxlci1vdXRw
dXQJKHJldmlzaW9uIDE2MjkxNCkKKysrIFRvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxlci1v
dXRwdXQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBydWJ5
CiAKLSMgQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDM3LDcgKzQz
NywxMSBAQCAkY29tcGlsYXRpb25zID0gJGpzb25bImNvbXBpbGF0aW9ucyJdLm1hCiAgICAgfCBz
dWJKc29uIHwKICAgICBDb21waWxhdGlvbi5uZXcoc3ViSnNvbikKIH0KLSRlbmdpbmVzID0gWyJC
YXNlbGluZSIsICJERkciXQorJGVuZ2luZXMgPSBbIkJhc2VsaW5lIiwgIkRGRyIsICJGVEwiLCAi
RlRMRm9yT1NSRW50cnkiXQorCitkZWYgaXNPcHRpbWl6aW5nKGVuZ2luZSkKKyAgICBlbmdpbmUg
PT0gIkRGRyIgb3IgZW5naW5lID09ICJGVEwiIG9yIGVuZ2luZSA9PSAiRlRMRm9yT1NSRW50cnki
CitlbmQKIAogJHNob3dDb3VudHMgPSB0cnVlCiAkc29ydE1vZGUgPSA6dGltZQpAQCAtNTcyLDkg
KzU3Niw5IEBAIGRlZiBzdW1tYXJ5KG1vZGUpCiAgICAgaWYgbW9kZSA9PSA6ZnVsbAogICAgICAg
ICBwcmludCgiICIgKyAoIiAiICogaW5zdHJ1Y3Rpb25Db3VudENvbHMpKQogICAgIGVuZAotICAg
IHByaW50KCIgIiArIGNlbnRlcigiQmFzZS9ERkciLCBjb3VudENvbHMpKQorICAgIHByaW50KCIg
IiArIGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIGNvdW50Q29scykpCiAgICAgaWYgbW9k
ZSA9PSA6ZnVsbAotICAgICAgICBwcmludCgiICIgKyBjZW50ZXIoIkJhc2UvREZHIiwgbWFjaGlu
ZUNvdW50Q29scykpCisgICAgICAgIHByaW50KCIgIiArIGNlbnRlcigiQmFzZS9ERkcvRlRML0ZU
TE9TUiIsIG1hY2hpbmVDb3VudENvbHMpKQogICAgICAgICBwcmludCgiICIgKyAoIiAiICogY29t
cGlsYXRpb25zQ29scykpCiAgICAgICAgIHByaW50KCIgIiArIGNlbnRlcigiU3JjL1RvdGFsIiwg
aW5saW5lc0NvbHMpKQogICAgICAgICBwcmludCgiICIgKyAoIiAiICogZXhpdENvdW50Q29scykp
CkBAIC02NzQsNyArNjc4LDcgQEAgZGVmIGV4ZWN1dGVDb21tYW5kKCpjb21tYW5kQXJyYXkpCiAg
ICAgICAgICAgICBpZiAkc2hvd0NvdW50cwogICAgICAgICAgICAgICAgIHB1dHMoY2VudGVyKCJT
b3VyY2UgQ291bnRzIiwgY291bnRDb2xzKSArICIgIiArIGNlbnRlcigiTWFjaGluZSBDb3VudHMi
LCBtYWNoaW5lQ29scykgKwogICAgICAgICAgICAgICAgICAgICAgKCIgIiAqIHBhZCkgKyBjZW50
ZXIoIkJ5dGVjb2RlIGZvciAje2J5dGVjb2Rlc30iLCBzY3JlZW5XaWR0aCAtIHBhZCAtIGNvdW50
Q29scyAtIDEgLSBtYWNoaW5lQ29scykpCi0gICAgICAgICAgICAgICAgcHV0cyhjZW50ZXIoIkJh
c2UvREZHIiwgY291bnRDb2xzKSArICIgIiArIGNlbnRlcigiQmFzZS9ERkciLCBjb3VudENvbHMp
KQorICAgICAgICAgICAgICAgIHB1dHMoY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgY291
bnRDb2xzKSArICIgIiArIGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIGNvdW50Q29scykp
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcHV0cygiQnl0ZWNvZGUgZm9yICN7
Ynl0ZWNvZGVzfToiKQogICAgICAgICAgICAgZW5kCkBAIC04OTQsNyArODk4LDcgQEAgZGVmIGV4
ZWN1dGVDb21tYW5kKCpjb21tYW5kQXJyYXkpCiAgICAgICAgICAgICBwdXRzKCJDb21waWxhdGlv
biAje2NvbXBpbGF0aW9ufToiKQogICAgICAgICAgICAgaWYgJHNob3dDb3VudHMKICAgICAgICAg
ICAgICAgICBwdXRzKGNlbnRlcigiQWN0dWFsIENvdW50cyIsIGFjdHVhbENvdW50Q29scykgKyAi
ICIgKyBjZW50ZXIoIlNvdXJjZSBDb3VudHMiLCBzb3VyY2VDb3VudENvbHMpICsgIiAiICsgY2Vu
dGVyKCJEaXNhc3NlbWJseSBpbiAje2NvbXBpbGF0aW9uLmVuZ2luZX0iLCBzY3JlZW5XaWR0aCAt
IDEgLSBzb3VyY2VDb3VudENvbHMgLSAxIC0gYWN0dWFsQ291bnRDb2xzKSkKLSAgICAgICAgICAg
ICAgICBwdXRzKCgiICIgKiBhY3R1YWxDb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RG
RyIsIHNvdXJjZUNvdW50Q29scykpCisgICAgICAgICAgICAgICAgcHV0cygoIiAiICogYWN0dWFs
Q291bnRDb2xzKSArICIgIiArIGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIHNvdXJjZUNv
dW50Q29scykpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcHV0cygiRGlzYXNz
ZW1ibHkgaW4gI3tjb21waWxhdGlvbi5lbmdpbmV9IikKICAgICAgICAgICAgIGVuZApAQCAtOTA1
LDExICs5MDksMTUgQEAgZGVmIGV4ZWN1dGVDb21tYW5kKCpjb21tYW5kQXJyYXkpCiAgICAgICAg
ICAgICAgICAgfCBkZXNjcmlwdGlvbiB8CiAgICAgICAgICAgICAgICAgIyBGSVhNRTogV2Ugc2hv
dWxkIGhhdmUgYSBiZXR0ZXIgd2F5IG9mIGRldGVjdGluZyB0aGluZ3MgbGlrZSBDb3VudEV4ZWN1
dGlvbiBub2RlcwogICAgICAgICAgICAgICAgICMgYW5kIHNsb3cgcGF0aCBlbnRyaWVzIGluIHRo
ZSBiYXNlbGluZSBKSVQuCi0gICAgICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24uZGVzY3JpcHRp
b24gPX4gL0NvdW50RXhlY3V0aW9uXCgvIGFuZCBjb21waWxhdGlvbi5lbmdpbmUgPT0gIkRGRyIK
KyAgICAgICAgICAgICAgICBpZiBkZXNjcmlwdGlvbi5kZXNjcmlwdGlvbiA9fiAvQ291bnRFeGVj
dXRpb25cKC8gYW5kIGlzT3B0aW1pemluZyhjb21waWxhdGlvbi5lbmdpbmUpCiAgICAgICAgICAg
ICAgICAgICAgIHNob3VsZFNob3cgPSBmYWxzZQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkU2hvdyA9IHRydWUKICAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgICAgICBpZiBub3QgZGVzY3JpcHRpb24ub3JpZ2luLmVtcHR5PyBhbmQgbm90IGRl
c2NyaXB0aW9uLm9yaWdpblstMV0KKyAgICAgICAgICAgICAgICAgICAgcCBkZXNjcmlwdGlvbi5v
cmlnaW4KKyAgICAgICAgICAgICAgICAgICAgcCBkZXNjcmlwdGlvbi5kZXNjcmlwdGlvbgorICAg
ICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgIGlmIGRlc2NyaXB0aW9uLm9yaWdpbi5l
bXB0eT8gb3Igbm90IGRlc2NyaXB0aW9uLm9yaWdpblstMV0uc2hvdWxkSGF2ZUNvdW50cz8gb3Ig
KGNvbXBpbGF0aW9uLmVuZ2luZSA9PSAiQmFzZWxpbmUiIGFuZCBkZXNjcmlwdGlvbi5kZXNjcmlw
dGlvbiA9fiAvXlxzKlwoU1wpLykKICAgICAgICAgICAgICAgICAgICAgYWN0dWFsQ291bnRzU3Ry
aW5nID0gIiIKICAgICAgICAgICAgICAgICAgICAgc291cmNlQ291bnRzU3RyaW5nID0gIiIKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwkocmV2aXNpb24gMTYyOTE0KQorKysgVG9v
bHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwkod29ya2luZyBjb3B5KQpAQCAtMTgwLDYg
KzE4MCw4IEBAICRudW1GYWlsdXJlcyA9IDAKIAogRUFHRVJfT1BUSU9OUyA9IFsiLS10aHJlc2hv
bGRGb3JKSVRBZnRlcldhcm1VcD0xMCIsICItLXRocmVzaG9sZEZvckpJVFNvb249MTAiLCAiLS10
aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1p
emVBZnRlckxvbmdXYXJtVXA9MjAiLCAiLS10aHJlc2hvbGRGb3JPcHRpbWl6ZVNvb249MjAiLCAi
LS10aHJlc2hvbGRGb3JGVExPcHRpbWl6ZUFmdGVyV2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9y
RlRMT3B0aW1pemVTb29uPTIwIl0KIAorRlRMX09QVElPTlMgPSBbIi0tdXNlRXhwZXJpbWVudGFs
RlRMPXRydWUiLCAiLS1lbmFibGVFeHBlcmltZW50YWxGVExDb3ZlcmFnZT10cnVlIl0KKwogJHJ1
bmxpc3QgPSBbXQogCiBkZWYgZnJhbWV3b3JrRnJvbUpTQ1BhdGgoanNjUGF0aCkKQEAgLTUzMiwx
OSArNTM0LDE5IEBAIGRlZiBydW5Ob0NKSVRWYWxpZGF0ZVBoYXNlcwogZW5kCiAKIGRlZiBydW5E
ZWZhdWx0RlRMCi0gICAgcnVuKCJkZWZhdWx0LWZ0bCIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10
cnVlIikKKyAgICBydW4oImRlZmF1bHQtZnRsIiwgKkZUTF9PUFRJT05TKQogZW5kCiAKIGRlZiBy
dW5GVExOb0NKSVQKLSAgICBydW4oImZ0bC1uby1jaml0IiwgIi0tZW5hYmxlQ29uY3VycmVudEpJ
VD1mYWxzZSIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIikKKyAgICBydW4oImZ0bC1uby1j
aml0IiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICpGVExfT1BUSU9OUykKIGVuZAog
CiBkZWYgcnVuRlRMTm9DSklUVmFsaWRhdGUKLSAgICBydW4oImZ0bC1uby1jaml0LXZhbGlkYXRl
IiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10
cnVlIiwgIi0tdmFsaWRhdGVHcmFwaD10cnVlIikKKyAgICBydW4oImZ0bC1uby1jaml0LXZhbGlk
YXRlIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1
ZSIsICpGVExfT1BUSU9OUykKIGVuZAogCiBkZWYgcnVuRlRMTm9DSklUT1NSVmFsaWRhdGlvbgot
ICAgIHJ1bigiZnRsLW5vLWNqaXQtb3NyLXZhbGlkYXRpb24iLCAiLS1lbmFibGVDb25jdXJyZW50
SklUPWZhbHNlIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiLCAiLS12YWxpZGF0ZUZUTE9T
UkV4aXRMaXZlbmVzcz10cnVlIikKKyAgICBydW4oImZ0bC1uby1jaml0LW9zci12YWxpZGF0aW9u
IiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlRlRMT1NSRXhpdExp
dmVuZXNzPXRydWUiLCAqRlRMX09QVElPTlMpCiBlbmQKIAogZGVmIHJ1bkRGR0VhZ2VyCkBAIC01
NTYsMTUgKzU1OCwxNSBAQCBkZWYgcnVuREZHRWFnZXJOb0NKSVRWYWxpZGF0ZQogZW5kCiAKIGRl
ZiBydW5GVExFYWdlcgotICAgIHJ1bigiZnRsLWVhZ2VyIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRM
PXRydWUiLCAqRUFHRVJfT1BUSU9OUykKKyAgICBydW4oImZ0bC1lYWdlciIsICooRlRMX09QVElP
TlMgKyBFQUdFUl9PUFRJT05TKSkKIGVuZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRWYWxpZGF0
ZQotICAgIHJ1bigiZnRsLWVhZ2VyLW5vLWNqaXQiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1
ZSIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUdyYXBoPXRydWUi
LCAqRUFHRVJfT1BUSU9OUykKKyAgICBydW4oImZ0bC1lYWdlci1uby1jaml0IiwgIi0tZW5hYmxl
Q29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICooRlRMX09QVElP
TlMgKyBFQUdFUl9PUFRJT05TKSkKIGVuZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRPU1JWYWxp
ZGF0aW9uCi0gICAgcnVuKCJmdGwtZWFnZXItbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLXVz
ZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICIt
LXZhbGlkYXRlRlRMT1NSRXhpdExpdmVuZXNzPXRydWUiLCAqRUFHRVJfT1BUSU9OUykKKyAgICBy
dW4oImZ0bC1lYWdlci1uby1jaml0LW9zci12YWxpZGF0aW9uIiwgIi0tZW5hYmxlQ29uY3VycmVu
dEpJVD1mYWxzZSIsICItLXZhbGlkYXRlRlRMT1NSRXhpdExpdmVuZXNzPXRydWUiLCAqKEZUTF9P
UFRJT05TICsgRUFHRVJfT1BUSU9OUykpCiBlbmQKIAogZGVmIHJ1bkFsd2F5c1RyaWdnZXJDb3B5
UGhhc2UKQEAgLTY0NiwxMyArNjQ4LDM0IEBAIGRlZiBydW5MYXlvdXRUZXN0REZHRWFnZXJOb0NK
SVQKICAgICBydW5MYXlvdXRUZXN0KCJkZmctZWFnZXItbm8tY2ppdCIsICItLWVuYWJsZUNvbmN1
cnJlbnRKSVQ9ZmFsc2UiLCAqRUFHRVJfT1BUSU9OUykKIGVuZAogCi1kZWYgZGVmYXVsdFJ1bkxh
eW91dFRlc3QKK2RlZiBydW5MYXlvdXRUZXN0RGVmYXVsdEZUTAorICAgIHJ1bkxheW91dFRlc3Qo
ImZ0bCIsICItLXRlc3RUaGVGVEw9dHJ1ZSIsICpGVExfT1BUSU9OUykKK2VuZAorCitkZWYgcnVu
TGF5b3V0VGVzdEZUTE5vQ0pJVAorICAgIHJ1bkxheW91dFRlc3QoImZ0bC1uby1jaml0IiwgIi0t
dGVzdFRoZUZUTD10cnVlIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICpGVExfT1BU
SU9OUykKK2VuZAorCitkZWYgcnVuTGF5b3V0VGVzdEZUTEVhZ2VyTm9DSklUCisgICAgcnVuTGF5
b3V0VGVzdCgiZnRsLWVhZ2VyLW5vLWNqaXQiLCAiLS10ZXN0VGhlRlRMPXRydWUiLCAiLS1lbmFi
bGVDb25jdXJyZW50SklUPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIEVBR0VSX09QVElPTlMpKQor
ZW5kCisKK2RlZiBub0ZUTFJ1bkxheW91dFRlc3QKICAgICBydW5MYXlvdXRUZXN0RGVmYXVsdAog
ICAgIHJ1bkxheW91dFRlc3ROb0xMSW50CiAgICAgcnVuTGF5b3V0VGVzdE5vQ0pJVAogICAgIHJ1
bkxheW91dFRlc3RERkdFYWdlck5vQ0pJVAogZW5kCiAKK2RlZiBkZWZhdWx0UnVuTGF5b3V0VGVz
dAorICAgIG5vRlRMUnVuTGF5b3V0VGVzdAorICAgIGlmICRlbmFibGVGVEwKKyAgICAgICAgcnVu
TGF5b3V0VGVzdERlZmF1bHRGVEwKKyAgICAgICAgcnVuTGF5b3V0VGVzdEZUTE5vQ0pJVAorICAg
ICAgICBydW5MYXlvdXRUZXN0RlRMRWFnZXJOb0NKSVQKKyAgICBlbmQKK2VuZAorCiBkZWYgcHJl
cGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhleHRyYUZpbGVzLCBkZXN0aW5hdGlvbikKICAgICBEaXIu
Y2hkaXIoJG91dHB1dERpcikgewogICAgICAgICBleHRyYUZpbGVzLmVhY2ggewpAQCAtNzA2LDYg
KzcyOSwxMCBAQCBkZWYgcnVuTW96aWxsYVRlc3REZWZhdWx0KG1vZGUsICpleHRyYUZpCiAgICAg
cnVuTW96aWxsYVRlc3QobmlsLCBtb2RlLCBleHRyYUZpbGVzKQogZW5kCiAKK2RlZiBydW5Nb3pp
bGxhVGVzdERlZmF1bHRGVEwobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgcnVuTW96aWxsYVRlc3Qo
ImZ0bCIsIG1vZGUsIGV4dHJhRmlsZXMsICpGVExfT1BUSU9OUykKK2VuZAorCiBkZWYgcnVuTW96
aWxsYVRlc3RMTEludChtb2RlLCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVzdCgibGxp
bnQiLCBtb2RlLCBleHRyYUZpbGVzLCAiLS11c2VKSVQ9ZmFsc2UiKQogZW5kCkBAIC03MTgsMTEg
Kzc0NSwxOSBAQCBkZWYgcnVuTW96aWxsYVRlc3RERkdFYWdlck5vQ0pJVFZhbGlkYXRlCiAgICAg
cnVuTW96aWxsYVRlc3QoImRmZy1lYWdlci1uby1jaml0LXZhbGlkYXRlLXBoYXNlcyIsIG1vZGUs
IGV4dHJhRmlsZXMsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUJ5
dGVjb2RlPXRydWUiLCAiLS12YWxpZGF0ZUdyYXBoQXRFYWNoUGhhc2U9dHJ1ZSIsICpFQUdFUl9P
UFRJT05TKQogZW5kCiAKK2RlZiBydW5Nb3ppbGxhVGVzdEZUTEVhZ2VyTm9DSklUVmFsaWRhdGVQ
aGFzZXMobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgcnVuTW96aWxsYVRlc3QoImZ0bC1lYWdlci1u
by1jaml0LXZhbGlkYXRlLXBoYXNlcyIsIG1vZGUsIGV4dHJhRmlsZXMsICItLWVuYWJsZUNvbmN1
cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUJ5dGVjb2RlPXRydWUiLCAiLS12YWxpZGF0ZUdy
YXBoQXRFYWNoUGhhc2U9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBFQUdFUl9PUFRJT05TKSkKK2Vu
ZAorCiBkZWYgZGVmYXVsdFJ1bk1vemlsbGFUZXN0KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1
bk1vemlsbGFUZXN0RGVmYXVsdChtb2RlLCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVz
dExMSW50KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0QmFzZWxpbmVKSVQo
bW9kZSwgKmV4dHJhRmlsZXMpCiAgICAgcnVuTW96aWxsYVRlc3RERkdFYWdlck5vQ0pJVFZhbGlk
YXRlUGhhc2VzKG1vZGUsICpleHRyYUZpbGVzKQorICAgIGlmICRlbmFibGVGVEwKKyAgICAgICAg
cnVuTW96aWxsYVRlc3REZWZhdWx0RlRMKG1vZGUsICpleHRyYUZpbGVzKQorICAgICAgICBydW5N
b3ppbGxhVGVzdEZUTEVhZ2VyTm9DSklUVmFsaWRhdGVQaGFzZXMobW9kZSwgKmV4dHJhRmlsZXMp
CisgICAgZW5kCiBlbmQKIAogZGVmIHNraXAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MjkxNCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisy
MDE0LTAxLTI3ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5jaAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50
eHQ6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RlcGFub3ZfY29udGFpbmVy
LmpzOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci5odG1sOgorICAgICAg
ICAqIGpzL3NjcmlwdC10ZXN0cy9kZmctYWRkLW5vdC1udW1iZXIuanM6CisgICAgICAgICoganMv
c2NyaXB0LXRlc3RzL2xhcmdlLWV4cHJlc3Npb25zLmpzOgorCiAyMDE0LTAxLTI3ICBCcmlhbiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGNsZWFuIHVw
IGluaXRpYWxpemF0aW9uIG9mIG1hbmFnZXJzIGFuZCBvYnNlcnZlcnMgaW4gSW5zcGVjdG9yVGVz
dApJbmRleDogTGF5b3V0VGVzdHMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTYyOTE0KQorKysgTGF5b3V0VGVzdHMvanMvbGFyZ2UtZXhwcmVzc2lvbnMt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01LDcgKzUsNyBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIFBBU1MgZXZhbChyZXBlYXRlZEV4cHJlc3Np
b24oImxldHRlckEiLCAiKyIsIDEwMCkpIGlzIHJlcGVhdGVkU3RyaW5nKCJhIiwgMTAwKQogUEFT
UyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMCkpIGlzIHJlcGVh
dGVkU3RyaW5nKCJhIiwgMTAwMCkKLVBBU1MgZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRl
ckEiLCAiKyIsIDEwMDAwKSkgaXMgcmVwZWF0ZWRTdHJpbmcoImEiLCAxMDAwMCkKK1BBU1MgZXZh
bChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMDAwKSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBPdXQgb2YgbWVtb3J5LgogUEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigi
bGV0dGVyQSIsICIrIiwgMTAwMDAwKSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBPdXQgb2YgbWVt
b3J5LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdGVwYW5vdl9jb250YWluZXItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxNjI5MTQpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2Nv
bnRhaW5lci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotSlNS
ZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lcgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdGVw
YW5vdl9jb250YWluZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3N0ZXBhbm92X2NvbnRhaW5lci5odG1sCShyZXZpc2lvbiAxNjI5MTQpCisrKyBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0
ZXBhbm92X2NvbnRhaW5lci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RlcGFub3ZfY29u
dGFpbmVyLmpzCShyZXZpc2lvbiAxNjI5MTQpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNjQw
NCArMCwwIEBACi0vL0Agc2xvdyEKLS8vQCBydW5EZWZhdWx0Ci0vL0AgcnVuRGVmYXVsdEZUTCBp
ZiAkZW5hYmxlRlRMCi0KLS8vIE5vdGU6IEZvciBtYXhpbXVtLXNwZWVkIGNvZGUsIHNlZSAiT3B0
aW1pemluZyBDb2RlIiBvbiB0aGUgRW1zY3JpcHRlbiB3aWtpLCBodHRwczovL2dpdGh1Yi5jb20v
a3JpcGtlbi9lbXNjcmlwdGVuL3dpa2kvT3B0aW1pemluZy1Db2RlCi0vLyBOb3RlOiBTb21lIEVt
c2NyaXB0ZW4gc2V0dGluZ3MgbWF5IGxpbWl0IHRoZSBzcGVlZCBvZiB0aGUgZ2VuZXJhdGVkIGNv
ZGUuCi0vLyBUaGUgTW9kdWxlIG9iamVjdDogT3VyIGludGVyZmFjZSB0byB0aGUgb3V0c2lkZSB3
b3JsZC4gV2UgaW1wb3J0Ci0vLyBhbmQgZXhwb3J0IHZhbHVlcyBvbiBpdCwgYW5kIGRvIHRoZSB3
b3JrIHRvIGdldCB0aGF0IHRocm91Z2gKLS8vIGNsb3N1cmUgY29tcGlsZXIgaWYgbmVjZXNzYXJ5
LiBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIE1vZHVsZSBjYW4gYmUgdXNlZDoKLS8vIDEuIE5vdCBk
ZWZpbmVkLiBXZSBjcmVhdGUgaXQgaGVyZQotLy8gMi4gQSBmdW5jdGlvbiBwYXJhbWV0ZXIsIGZ1
bmN0aW9uKE1vZHVsZSkgeyAuLmdlbmVyYXRlZCBjb2RlLi4gfQotLy8gMy4gcHJlLXJ1biBhcHBl
bmRlZCBpdCwgdmFyIE1vZHVsZSA9IHt9OyAuLmdlbmVyYXRlZCBjb2RlLi4KLS8vIDQuIEV4dGVy
bmFsIHNjcmlwdCB0YWcgZGVmaW5lcyB2YXIgTW9kdWxlLgotLy8gV2UgbmVlZCB0byBkbyBhbiBl
dmFsIGluIG9yZGVyIHRvIGhhbmRsZSB0aGUgY2xvc3VyZSBjb21waWxlcgotLy8gY2FzZSwgd2hl
cmUgdGhpcyBjb2RlIGhlcmUgaXMgbWluaWZpZWQgYnV0IE1vZHVsZSB3YXMgZGVmaW5lZAotLy8g
ZWxzZXdoZXJlIChlLmcuIGNhc2UgNCBhYm92ZSkuIFdlIGFsc28gbmVlZCB0byBjaGVjayBpZiBN
b2R1bGUKLS8vIGFscmVhZHkgZXhpc3RzIChlLmcuIGNhc2UgMyBhYm92ZSkuCi0vLyBOb3RlIHRo
YXQgaWYgeW91IHdhbnQgdG8gcnVuIGNsb3N1cmUsIGFuZCBhbHNvIHRvIHVzZSBNb2R1bGUKLS8v
IGFmdGVyIHRoZSBnZW5lcmF0ZWQgY29kZSwgeW91IHdpbGwgbmVlZCB0byBkZWZpbmUgICB2YXIg
TW9kdWxlID0ge307Ci0vLyBiZWZvcmUgdGhlIGNvZGUuIFRoZW4gdGhhdCBvYmplY3Qgd2lsbCBi
ZSB1c2VkIGluIHRoZSBjb2RlLCBhbmQgeW91Ci0vLyBjYW4gY29udGludWUgdG8gdXNlIE1vZHVs
ZSBhZnRlcndhcmRzIGFzIHdlbGwuCi12YXIgTW9kdWxlOwotaWYgKCFNb2R1bGUpIE1vZHVsZSA9
IGV2YWwoJyhmdW5jdGlvbigpIHsgdHJ5IHsgcmV0dXJuIE1vZHVsZSB8fCB7fSB9IGNhdGNoKGUp
IHsgcmV0dXJuIHt9IH0gfSkoKScpOwotLy8gU29tZXRpbWVzIGFuIGV4aXN0aW5nIE1vZHVsZSBv
YmplY3QgZXhpc3RzIHdpdGggcHJvcGVydGllcwotLy8gbWVhbnQgdG8gb3ZlcndyaXRlIHRoZSBk
ZWZhdWx0IG1vZHVsZSBmdW5jdGlvbmFsaXR5LiBIZXJlCi0vLyB3ZSBjb2xsZWN0IHRob3NlIHBy
b3BlcnRpZXMgYW5kIHJlYXBwbHkgX2FmdGVyXyB3ZSBjb25maWd1cmUKLS8vIHRoZSBjdXJyZW50
IGVudmlyb25tZW50J3MgZGVmYXVsdHMgdG8gYXZvaWQgaGF2aW5nIHRvIGJlIHNvCi0vLyBkZWZl
bnNpdmUgZHVyaW5nIGluaXRpYWxpemF0aW9uLgotdmFyIG1vZHVsZU92ZXJyaWRlcyA9IHt9Owot
Zm9yICh2YXIga2V5IGluIE1vZHVsZSkgewotICBpZiAoTW9kdWxlLmhhc093blByb3BlcnR5KGtl
eSkpIHsKLSAgICBtb2R1bGVPdmVycmlkZXNba2V5XSA9IE1vZHVsZVtrZXldOwotICB9Ci19Ci0v
LyBUaGUgZW52aXJvbm1lbnQgc2V0dXAgY29kZSBiZWxvdyBpcyBjdXN0b21pemVkIHRvIHVzZSBN
b2R1bGUuCi0vLyAqKiogRW52aXJvbm1lbnQgc2V0dXAgY29kZSAqKioKLXZhciBFTlZJUk9OTUVO
VF9JU19OT0RFID0gdHlwZW9mIHByb2Nlc3MgPT09ICdvYmplY3QnICYmIHR5cGVvZiByZXF1aXJl
ID09PSAnZnVuY3Rpb24nOwotdmFyIEVOVklST05NRU5UX0lTX1dFQiA9IHR5cGVvZiB3aW5kb3cg
PT09ICdvYmplY3QnOwotdmFyIEVOVklST05NRU5UX0lTX1dPUktFUiA9IHR5cGVvZiBpbXBvcnRT
Y3JpcHRzID09PSAnZnVuY3Rpb24nOwotdmFyIEVOVklST05NRU5UX0lTX1NIRUxMID0gIUVOVklS
T05NRU5UX0lTX1dFQiAmJiAhRU5WSVJPTk1FTlRfSVNfTk9ERSAmJiAhRU5WSVJPTk1FTlRfSVNf
V09SS0VSOwotaWYgKEVOVklST05NRU5UX0lTX05PREUpIHsKLSAgLy8gRXhwb3NlIGZ1bmN0aW9u
YWxpdHkgaW4gdGhlIHNhbWUgc2ltcGxlIHdheSB0aGF0IHRoZSBzaGVsbHMgd29yawotICAvLyBO
b3RlIHRoYXQgd2UgcG9sbHV0ZSB0aGUgZ2xvYmFsIG5hbWVzcGFjZSBoZXJlLCBvdGhlcndpc2Ug
d2UgYnJlYWsgaW4gbm9kZQotICBNb2R1bGVbJ3ByaW50J10gPSBmdW5jdGlvbih4KSB7Ci0gICAg
cHJvY2Vzc1snc3Rkb3V0J10ud3JpdGUoeCArICdcbicpOwotICB9OwotICBNb2R1bGVbJ3ByaW50
RXJyJ10gPSBmdW5jdGlvbih4KSB7Ci0gICAgcHJvY2Vzc1snc3RkZXJyJ10ud3JpdGUoeCArICdc
bicpOwotICB9OwotICB2YXIgbm9kZUZTID0gcmVxdWlyZSgnZnMnKTsKLSAgdmFyIG5vZGVQYXRo
ID0gcmVxdWlyZSgncGF0aCcpOwotICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKGZpbGVuYW1l
LCBiaW5hcnkpIHsKLSAgICBmaWxlbmFtZSA9IG5vZGVQYXRoWydub3JtYWxpemUnXShmaWxlbmFt
ZSk7Ci0gICAgdmFyIHJldCA9IG5vZGVGU1sncmVhZEZpbGVTeW5jJ10oZmlsZW5hbWUpOwotICAg
IC8vIFRoZSBwYXRoIGlzIGFic29sdXRlIGlmIHRoZSBub3JtYWxpemVkIHZlcnNpb24gaXMgdGhl
IHNhbWUgYXMgdGhlIHJlc29sdmVkLgotICAgIGlmICghcmV0ICYmIGZpbGVuYW1lICE9IG5vZGVQ
YXRoWydyZXNvbHZlJ10oZmlsZW5hbWUpKSB7Ci0gICAgICBmaWxlbmFtZSA9IHBhdGguam9pbihf
X2Rpcm5hbWUsICcuLicsICdzcmMnLCBmaWxlbmFtZSk7Ci0gICAgICByZXQgPSBub2RlRlNbJ3Jl
YWRGaWxlU3luYyddKGZpbGVuYW1lKTsKLSAgICB9Ci0gICAgaWYgKHJldCAmJiAhYmluYXJ5KSBy
ZXQgPSByZXQudG9TdHJpbmcoKTsKLSAgICByZXR1cm4gcmV0OwotICB9OwotICBNb2R1bGVbJ3Jl
YWRCaW5hcnknXSA9IGZ1bmN0aW9uKGZpbGVuYW1lKSB7IHJldHVybiBNb2R1bGVbJ3JlYWQnXShm
aWxlbmFtZSwgdHJ1ZSkgfTsKLSAgTW9kdWxlWydsb2FkJ10gPSBmdW5jdGlvbihmKSB7Ci0gICAg
Z2xvYmFsRXZhbChyZWFkKGYpKTsKLSAgfTsKLSAgTW9kdWxlWydhcmd1bWVudHMnXSA9IHByb2Nl
c3NbJ2FyZ3YnXS5zbGljZSgyKTsKLSAgbW9kdWxlLmV4cG9ydHMgPSBNb2R1bGU7Ci19Ci1lbHNl
IGlmIChFTlZJUk9OTUVOVF9JU19TSEVMTCkgewotICBNb2R1bGVbJ3ByaW50J10gPSBwcmludDsK
LSAgaWYgKHR5cGVvZiBwcmludEVyciAhPSAndW5kZWZpbmVkJykgTW9kdWxlWydwcmludEVycidd
ID0gcHJpbnRFcnI7IC8vIG5vdCBwcmVzZW50IGluIHY4IG9yIG9sZGVyIHNtCi0gIGlmICh0eXBl
b2YgcmVhZCAhPSAndW5kZWZpbmVkJykgewotICAgIE1vZHVsZVsncmVhZCddID0gcmVhZDsKLSAg
fSBlbHNlIHsKLSAgICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKCkgeyB0aHJvdyAnbm8gcmVh
ZCgpIGF2YWlsYWJsZSAoanNjPyknIH07Ci0gIH0KLSAgTW9kdWxlWydyZWFkQmluYXJ5J10gPSBm
dW5jdGlvbihmKSB7Ci0gICAgcmV0dXJuIHJlYWQoZiwgJ2JpbmFyeScpOwotICB9OwotICBpZiAo
dHlwZW9mIHNjcmlwdEFyZ3MgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBNb2R1bGVbJ2FyZ3VtZW50
cyddID0gc2NyaXB0QXJnczsKLSAgfSBlbHNlIGlmICh0eXBlb2YgYXJndW1lbnRzICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgTW9kdWxlWydhcmd1bWVudHMnXSA9IGFyZ3VtZW50czsKLSAgfQotICB0
aGlzWydNb2R1bGUnXSA9IE1vZHVsZTsKLX0KLWVsc2UgaWYgKEVOVklST05NRU5UX0lTX1dFQiB8
fCBFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHsKLSAgTW9kdWxlWydyZWFkJ10gPSBmdW5jdGlvbih1
cmwpIHsKLSAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9wZW4o
J0dFVCcsIHVybCwgZmFsc2UpOwotICAgIHhoci5zZW5kKG51bGwpOwotICAgIHJldHVybiB4aHIu
cmVzcG9uc2VUZXh0OwotICB9OwotICBpZiAodHlwZW9mIGFyZ3VtZW50cyAhPSAndW5kZWZpbmVk
JykgewotICAgIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBhcmd1bWVudHM7Ci0gIH0KLSAgaWYgKEVO
VklST05NRU5UX0lTX1dFQikgewotICAgIE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9uKHgpIHsK
LSAgICAgIGNvbnNvbGUubG9nKHgpOwotICAgIH07Ci0gICAgTW9kdWxlWydwcmludEVyciddID0g
ZnVuY3Rpb24oeCkgewotICAgICAgY29uc29sZS5sb2coeCk7Ci0gICAgfTsKLSAgICB0aGlzWydN
b2R1bGUnXSA9IE1vZHVsZTsKLSAgfSBlbHNlIGlmIChFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHsK
LSAgICAvLyBXZSBjYW4gZG8gdmVyeSBsaXR0bGUgaGVyZS4uLgotICAgIHZhciBUUllfVVNFX0RV
TVAgPSBmYWxzZTsKLSAgICBNb2R1bGVbJ3ByaW50J10gPSAoVFJZX1VTRV9EVU1QICYmICh0eXBl
b2YoZHVtcCkgIT09ICJ1bmRlZmluZWQiKSA/IChmdW5jdGlvbih4KSB7Ci0gICAgICBkdW1wKHgp
OwotICAgIH0pIDogKGZ1bmN0aW9uKHgpIHsKLSAgICAgIC8vIHNlbGYucG9zdE1lc3NhZ2UoeCk7
IC8vIGVuYWJsZSB0aGlzIGlmIHlvdSB3YW50IHN0ZG91dCB0byBiZSBzZW50IGFzIG1lc3NhZ2Vz
Ci0gICAgfSkpOwotICAgIE1vZHVsZVsnbG9hZCddID0gaW1wb3J0U2NyaXB0czsKLSAgfQotfQot
ZWxzZSB7Ci0gIC8vIFVucmVhY2hhYmxlIGJlY2F1c2UgU0hFTEwgaXMgZGVwZW5kYW50IG9uIHRo
ZSBvdGhlcnMKLSAgdGhyb3cgJ1Vua25vd24gcnVudGltZSBlbnZpcm9ubWVudC4gV2hlcmUgYXJl
IHdlPyc7Ci19Ci1mdW5jdGlvbiBnbG9iYWxFdmFsKHgpIHsKLSAgZXZhbC5jYWxsKG51bGwsIHgp
OwotfQotaWYgKCFNb2R1bGVbJ2xvYWQnXSA9PSAndW5kZWZpbmVkJyAmJiBNb2R1bGVbJ3JlYWQn
XSkgewotICBNb2R1bGVbJ2xvYWQnXSA9IGZ1bmN0aW9uKGYpIHsKLSAgICBnbG9iYWxFdmFsKE1v
ZHVsZVsncmVhZCddKGYpKTsKLSAgfTsKLX0KLWlmICghTW9kdWxlWydwcmludCddKSB7Ci0gIE1v
ZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9uKCl7fTsKLX0KLWlmICghTW9kdWxlWydwcmludEVycidd
KSB7Ci0gIE1vZHVsZVsncHJpbnRFcnInXSA9IE1vZHVsZVsncHJpbnQnXTsKLX0KLWlmICghTW9k
dWxlWydhcmd1bWVudHMnXSkgewotICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gW107Ci19Ci0vLyAq
KiogRW52aXJvbm1lbnQgc2V0dXAgY29kZSAqKioKLS8vIENsb3N1cmUgaGVscGVycwotTW9kdWxl
LnByaW50ID0gTW9kdWxlWydwcmludCddOwotTW9kdWxlLnByaW50RXJyID0gTW9kdWxlWydwcmlu
dEVyciddOwotLy8gQ2FsbGJhY2tzCi1Nb2R1bGVbJ3ByZVJ1biddID0gW107Ci1Nb2R1bGVbJ3Bv
c3RSdW4nXSA9IFtdOwotLy8gTWVyZ2UgYmFjayBpbiB0aGUgb3ZlcnJpZGVzCi1mb3IgKHZhciBr
ZXkgaW4gbW9kdWxlT3ZlcnJpZGVzKSB7Ci0gIGlmIChtb2R1bGVPdmVycmlkZXMuaGFzT3duUHJv
cGVydHkoa2V5KSkgewotICAgIE1vZHVsZVtrZXldID0gbW9kdWxlT3ZlcnJpZGVzW2tleV07Ci0g
IH0KLX0KLS8vID09PSBBdXRvLWdlbmVyYXRlZCBwcmVhbWJsZSBsaWJyYXJ5IHN0dWZmID09PQot
Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyBSdW50aW1lIGNv
ZGUgc2hhcmVkIHdpdGggY29tcGlsZXIKLS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotdmFyIFJ1bnRpbWUgPSB7Ci0gIHN0YWNrU2F2ZTogZnVuY3Rpb24gKCkgewot
ICAgIHJldHVybiBTVEFDS1RPUDsKLSAgfSwKLSAgc3RhY2tSZXN0b3JlOiBmdW5jdGlvbiAoc3Rh
Y2tUb3ApIHsKLSAgICBTVEFDS1RPUCA9IHN0YWNrVG9wOwotICB9LAotICBmb3JjZUFsaWduOiBm
dW5jdGlvbiAodGFyZ2V0LCBxdWFudHVtKSB7Ci0gICAgcXVhbnR1bSA9IHF1YW50dW0gfHwgNDsK
LSAgICBpZiAocXVhbnR1bSA9PSAxKSByZXR1cm4gdGFyZ2V0OwotICAgIGlmIChpc051bWJlcih0
YXJnZXQpICYmIGlzTnVtYmVyKHF1YW50dW0pKSB7Ci0gICAgICByZXR1cm4gTWF0aC5jZWlsKHRh
cmdldC9xdWFudHVtKSpxdWFudHVtOwotICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIocXVhbnR1bSkg
JiYgaXNQb3dlck9mVHdvKHF1YW50dW0pKSB7Ci0gICAgICB2YXIgbG9nZyA9IGxvZzIocXVhbnR1
bSk7Ci0gICAgICByZXR1cm4gJygoKCgnICt0YXJnZXQgKyAnKSsnICsgKHF1YW50dW0tMSkgKyAn
KT4+JyArIGxvZ2cgKyAnKTw8JyArIGxvZ2cgKyAnKSc7Ci0gICAgfQotICAgIHJldHVybiAnTWF0
aC5jZWlsKCgnICsgdGFyZ2V0ICsgJykvJyArIHF1YW50dW0gKyAnKSonICsgcXVhbnR1bTsKLSAg
fSwKLSAgaXNOdW1iZXJUeXBlOiBmdW5jdGlvbiAodHlwZSkgewotICAgIHJldHVybiB0eXBlIGlu
IFJ1bnRpbWUuSU5UX1RZUEVTIHx8IHR5cGUgaW4gUnVudGltZS5GTE9BVF9UWVBFUzsKLSAgfSwK
LSAgaXNQb2ludGVyVHlwZTogZnVuY3Rpb24gaXNQb2ludGVyVHlwZSh0eXBlKSB7Ci0gIHJldHVy
biB0eXBlW3R5cGUubGVuZ3RoLTFdID09ICcqJzsKLX0sCi0gIGlzU3RydWN0VHlwZTogZnVuY3Rp
b24gaXNTdHJ1Y3RUeXBlKHR5cGUpIHsKLSAgaWYgKGlzUG9pbnRlclR5cGUodHlwZSkpIHJldHVy
biBmYWxzZTsKLSAgaWYgKGlzQXJyYXlUeXBlKHR5cGUpKSByZXR1cm4gdHJ1ZTsKLSAgaWYgKC88
P3sgP1tefV0qID99Pj8vLnRlc3QodHlwZSkpIHJldHVybiB0cnVlOyAvLyB7IGkzMiwgaTggfSBl
dGMuIC0gYW5vbnltb3VzIHN0cnVjdCB0eXBlcwotICAvLyBTZWUgY29tbWVudCBpbiBpc1N0cnVj
dFBvaW50ZXJUeXBlKCkKLSAgcmV0dXJuIHR5cGVbMF0gPT0gJyUnOwotfSwKLSAgSU5UX1RZUEVT
OiB7ImkxIjowLCJpOCI6MCwiaTE2IjowLCJpMzIiOjAsImk2NCI6MH0sCi0gIEZMT0FUX1RZUEVT
OiB7ImZsb2F0IjowLCJkb3VibGUiOjB9LAotICBvcjY0OiBmdW5jdGlvbiAoeCwgeSkgewotICAg
IHZhciBsID0gKHggfCAwKSB8ICh5IHwgMCk7Ci0gICAgdmFyIGggPSAoTWF0aC5yb3VuZCh4IC8g
NDI5NDk2NzI5NikgfCBNYXRoLnJvdW5kKHkgLyA0Mjk0OTY3Mjk2KSkgKiA0Mjk0OTY3Mjk2Owot
ICAgIHJldHVybiBsICsgaDsKLSAgfSwKLSAgYW5kNjQ6IGZ1bmN0aW9uICh4LCB5KSB7Ci0gICAg
dmFyIGwgPSAoeCB8IDApICYgKHkgfCAwKTsKLSAgICB2YXIgaCA9IChNYXRoLnJvdW5kKHggLyA0
Mjk0OTY3Mjk2KSAmIE1hdGgucm91bmQoeSAvIDQyOTQ5NjcyOTYpKSAqIDQyOTQ5NjcyOTY7Ci0g
ICAgcmV0dXJuIGwgKyBoOwotICB9LAotICB4b3I2NDogZnVuY3Rpb24gKHgsIHkpIHsKLSAgICB2
YXIgbCA9ICh4IHwgMCkgXiAoeSB8IDApOwotICAgIHZhciBoID0gKE1hdGgucm91bmQoeCAvIDQy
OTQ5NjcyOTYpIF4gTWF0aC5yb3VuZCh5IC8gNDI5NDk2NzI5NikpICogNDI5NDk2NzI5NjsKLSAg
ICByZXR1cm4gbCArIGg7Ci0gIH0sCi0gIGdldE5hdGl2ZVR5cGVTaXplOiBmdW5jdGlvbiAodHlw
ZSwgcXVhbnR1bVNpemUpIHsKLSAgICBpZiAoUnVudGltZS5RVUFOVFVNX1NJWkUgPT0gMSkgcmV0
dXJuIDE7Ci0gICAgdmFyIHNpemUgPSB7Ci0gICAgICAnJWkxJzogMSwKLSAgICAgICclaTgnOiAx
LAotICAgICAgJyVpMTYnOiAyLAotICAgICAgJyVpMzInOiA0LAotICAgICAgJyVpNjQnOiA4LAot
ICAgICAgIiVmbG9hdCI6IDQsCi0gICAgICAiJWRvdWJsZSI6IDgKLSAgICB9WyclJyt0eXBlXTsg
Ly8gYWRkICclJyBzaW5jZSBmbG9hdCBhbmQgZG91YmxlIGNvbmZ1c2UgQ2xvc3VyZSBjb21waWxl
ciBhcyBrZXlzLCBhbmQgYWxzbyBzcGlkZXJtb25rZXkgYXMgYSBjb21waWxlciB3aWxsIHJlbW92
ZSAncyBmcm9tICdfaTgnIGV0YwotICAgIGlmICghc2l6ZSkgewotICAgICAgaWYgKHR5cGUuY2hh
ckF0KHR5cGUubGVuZ3RoLTEpID09ICcqJykgewotICAgICAgICBzaXplID0gUnVudGltZS5RVUFO
VFVNX1NJWkU7IC8vIEEgcG9pbnRlcgotICAgICAgfSBlbHNlIGlmICh0eXBlWzBdID09ICdpJykg
ewotICAgICAgICB2YXIgYml0cyA9IHBhcnNlSW50KHR5cGUuc3Vic3RyKDEpKTsKLSAgICAgICAg
YXNzZXJ0KGJpdHMgJSA4ID09IDApOwotICAgICAgICBzaXplID0gYml0cy84OwotICAgICAgfQot
ICAgIH0KLSAgICByZXR1cm4gc2l6ZTsKLSAgfSwKLSAgZ2V0TmF0aXZlRmllbGRTaXplOiBmdW5j
dGlvbiAodHlwZSkgewotICAgIHJldHVybiBNYXRoLm1heChSdW50aW1lLmdldE5hdGl2ZVR5cGVT
aXplKHR5cGUpLCBSdW50aW1lLlFVQU5UVU1fU0laRSk7Ci0gIH0sCi0gIGRlZHVwOiBmdW5jdGlv
biBkZWR1cChpdGVtcywgaWRlbnQpIHsKLSAgdmFyIHNlZW4gPSB7fTsKLSAgaWYgKGlkZW50KSB7
Ci0gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7Ci0gICAgICBpZiAoc2Vl
bltpdGVtW2lkZW50XV0pIHJldHVybiBmYWxzZTsKLSAgICAgIHNlZW5baXRlbVtpZGVudF1dID0g
dHJ1ZTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0pOwotICB9IGVsc2UgewotICAgIHJldHVy
biBpdGVtcy5maWx0ZXIoZnVuY3Rpb24oaXRlbSkgewotICAgICAgaWYgKHNlZW5baXRlbV0pIHJl
dHVybiBmYWxzZTsKLSAgICAgIHNlZW5baXRlbV0gPSB0cnVlOwotICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfSk7Ci0gIH0KLX0sCi0gIHNldDogZnVuY3Rpb24gc2V0KCkgewotICB2YXIgYXJncyA9
IHR5cGVvZiBhcmd1bWVudHNbMF0gPT09ICdvYmplY3QnID8gYXJndW1lbnRzWzBdIDogYXJndW1l
bnRzOwotICB2YXIgcmV0ID0ge307Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7
IGkrKykgewotICAgIHJldFthcmdzW2ldXSA9IDA7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0sCi0g
IFNUQUNLX0FMSUdOOiA4LAotICBnZXRBbGlnblNpemU6IGZ1bmN0aW9uICh0eXBlLCBzaXplLCB2
YXJhcmcpIHsKLSAgICAvLyB3ZSBhbGlnbiBpNjRzIGFuZCBkb3VibGVzIG9uIDY0LWJpdCBib3Vu
ZGFyaWVzLCB1bmxpa2UgeDg2Ci0gICAgaWYgKHR5cGUgPT0gJ2k2NCcgfHwgdHlwZSA9PSAnZG91
YmxlJyB8fCB2YXJhcmcpIHJldHVybiA4OwotICAgIGlmICghdHlwZSkgcmV0dXJuIE1hdGgubWlu
KHNpemUsIDgpOyAvLyBhbGlnbiBzdHJ1Y3R1cmVzIGludGVybmFsbHkgdG8gNjQgYml0cwotICAg
IHJldHVybiBNYXRoLm1pbihzaXplIHx8ICh0eXBlID8gUnVudGltZS5nZXROYXRpdmVGaWVsZFNp
emUodHlwZSkgOiAwKSwgUnVudGltZS5RVUFOVFVNX1NJWkUpOwotICB9LAotICBjYWxjdWxhdGVT
dHJ1Y3RBbGlnbm1lbnQ6IGZ1bmN0aW9uIGNhbGN1bGF0ZVN0cnVjdEFsaWdubWVudCh0eXBlKSB7
Ci0gICAgdHlwZS5mbGF0U2l6ZSA9IDA7Ci0gICAgdHlwZS5hbGlnblNpemUgPSAwOwotICAgIHZh
ciBkaWZmcyA9IFtdOwotICAgIHZhciBwcmV2ID0gLTE7Ci0gICAgdmFyIGluZGV4ID0gMDsKLSAg
ICB0eXBlLmZsYXRJbmRleGVzID0gdHlwZS5maWVsZHMubWFwKGZ1bmN0aW9uKGZpZWxkKSB7Ci0g
ICAgICBpbmRleCsrOwotICAgICAgdmFyIHNpemUsIGFsaWduU2l6ZTsKLSAgICAgIGlmIChSdW50
aW1lLmlzTnVtYmVyVHlwZShmaWVsZCkgfHwgUnVudGltZS5pc1BvaW50ZXJUeXBlKGZpZWxkKSkg
ewotICAgICAgICBzaXplID0gUnVudGltZS5nZXROYXRpdmVUeXBlU2l6ZShmaWVsZCk7IC8vIHBh
Y2sgY2hhcjsgY2hhcjsgaW4gc3RydWN0cywgYWxzbyBjaGFyW1hdcy4KLSAgICAgICAgYWxpZ25T
aXplID0gUnVudGltZS5nZXRBbGlnblNpemUoZmllbGQsIHNpemUpOwotICAgICAgfSBlbHNlIGlm
IChSdW50aW1lLmlzU3RydWN0VHlwZShmaWVsZCkpIHsKLSAgICAgICAgaWYgKGZpZWxkWzFdID09
PSAnMCcpIHsKLSAgICAgICAgICAvLyB0aGlzIGlzIFswIHggc29tZXRoaW5nXS4gV2hlbiBpbnNp
ZGUgYW5vdGhlciBzdHJ1Y3R1cmUgbGlrZSBoZXJlLCBpdCBtdXN0IGJlIGF0IHRoZSBlbmQsCi0g
ICAgICAgICAgLy8gYW5kIGl0IGFkZHMgbm8gc2l6ZQotICAgICAgICAgIC8vIFhYWCB0aGlzIGhh
cHBlbnMgaW4gamF2YS1uYm9keSBmb3IgZXhhbXBsZS4uLiBhc3NlcnQoaW5kZXggPT09IHR5cGUu
ZmllbGRzLmxlbmd0aCwgJ3plcm8tbGVuZ3RoIGluIHRoZSBtaWRkbGUhJyk7Ci0gICAgICAgICAg
c2l6ZSA9IDA7Ci0gICAgICAgICAgYWxpZ25TaXplID0gdHlwZS5hbGlnblNpemUgfHwgUVVBTlRV
TV9TSVpFOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHNpemUgPSBUeXBlcy50eXBlc1tm
aWVsZF0uZmxhdFNpemU7Ci0gICAgICAgICAgYWxpZ25TaXplID0gUnVudGltZS5nZXRBbGlnblNp
emUobnVsbCwgVHlwZXMudHlwZXNbZmllbGRdLmFsaWduU2l6ZSk7Ci0gICAgICAgIH0KLSAgICAg
IH0gZWxzZSBpZiAoZmllbGRbMF0gPT0gJ2InKSB7Ci0gICAgICAgIC8vIGJOLCBsYXJnZSBudW1i
ZXIgZmllbGQsIGxpa2UgYSBbTiB4IGk4XQotICAgICAgICBzaXplID0gZmllbGQuc3Vic3RyKDEp
fDA7Ci0gICAgICAgIGFsaWduU2l6ZSA9IDE7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aHJv
dyAnVW5jbGVhciB0eXBlIGluIHN0cnVjdDogJyArIGZpZWxkICsgJywgaW4gJyArIHR5cGUubmFt
ZV8gKyAnIDo6ICcgKyBkdW1wKFR5cGVzLnR5cGVzW3R5cGUubmFtZV9dKTsKLSAgICAgIH0KLSAg
ICAgIGlmICh0eXBlLnBhY2tlZCkgYWxpZ25TaXplID0gMTsKLSAgICAgIHR5cGUuYWxpZ25TaXpl
ID0gTWF0aC5tYXgodHlwZS5hbGlnblNpemUsIGFsaWduU2l6ZSk7Ci0gICAgICB2YXIgY3VyciA9
IFJ1bnRpbWUuYWxpZ25NZW1vcnkodHlwZS5mbGF0U2l6ZSwgYWxpZ25TaXplKTsgLy8gaWYgbmVj
ZXNzYXJ5LCBwbGFjZSB0aGlzIG9uIGFsaWduZWQgbWVtb3J5Ci0gICAgICB0eXBlLmZsYXRTaXpl
ID0gY3VyciArIHNpemU7Ci0gICAgICBpZiAocHJldiA+PSAwKSB7Ci0gICAgICAgIGRpZmZzLnB1
c2goY3Vyci1wcmV2KTsKLSAgICAgIH0KLSAgICAgIHByZXYgPSBjdXJyOwotICAgICAgcmV0dXJu
IGN1cnI7Ci0gICAgfSk7Ci0gICAgdHlwZS5mbGF0U2l6ZSA9IFJ1bnRpbWUuYWxpZ25NZW1vcnko
dHlwZS5mbGF0U2l6ZSwgdHlwZS5hbGlnblNpemUpOwotICAgIGlmIChkaWZmcy5sZW5ndGggPT0g
MCkgewotICAgICAgdHlwZS5mbGF0RmFjdG9yID0gdHlwZS5mbGF0U2l6ZTsKLSAgICB9IGVsc2Ug
aWYgKFJ1bnRpbWUuZGVkdXAoZGlmZnMpLmxlbmd0aCA9PSAxKSB7Ci0gICAgICB0eXBlLmZsYXRG
YWN0b3IgPSBkaWZmc1swXTsKLSAgICB9Ci0gICAgdHlwZS5uZWVkc0ZsYXR0ZW5pbmcgPSAodHlw
ZS5mbGF0RmFjdG9yICE9IDEpOwotICAgIHJldHVybiB0eXBlLmZsYXRJbmRleGVzOwotICB9LAot
ICBnZW5lcmF0ZVN0cnVjdEluZm86IGZ1bmN0aW9uIChzdHJ1Y3QsIHR5cGVOYW1lLCBvZmZzZXQp
IHsKLSAgICB2YXIgdHlwZSwgYWxpZ25tZW50OwotICAgIGlmICh0eXBlTmFtZSkgewotICAgICAg
b2Zmc2V0ID0gb2Zmc2V0IHx8IDA7Ci0gICAgICB0eXBlID0gKHR5cGVvZiBUeXBlcyA9PT0gJ3Vu
ZGVmaW5lZCcgPyBSdW50aW1lLnR5cGVJbmZvIDogVHlwZXMudHlwZXMpW3R5cGVOYW1lXTsKLSAg
ICAgIGlmICghdHlwZSkgcmV0dXJuIG51bGw7Ci0gICAgICBpZiAodHlwZS5maWVsZHMubGVuZ3Ro
ICE9IHN0cnVjdC5sZW5ndGgpIHsKLSAgICAgICAgcHJpbnRFcnIoJ051bWJlciBvZiBuYW1lZCBm
aWVsZHMgbXVzdCBtYXRjaCB0aGUgdHlwZSBmb3IgJyArIHR5cGVOYW1lICsgJzogcG9zc2libHkg
ZHVwbGljYXRlIHN0cnVjdCBuYW1lcy4gQ2Fubm90IHJldHVybiBzdHJ1Y3RJbmZvJyk7Ci0gICAg
ICAgIHJldHVybiBudWxsOwotICAgICAgfQotICAgICAgYWxpZ25tZW50ID0gdHlwZS5mbGF0SW5k
ZXhlczsKLSAgICB9IGVsc2UgewotICAgICAgdmFyIHR5cGUgPSB7IGZpZWxkczogc3RydWN0Lm1h
cChmdW5jdGlvbihpdGVtKSB7IHJldHVybiBpdGVtWzBdIH0pIH07Ci0gICAgICBhbGlnbm1lbnQg
PSBSdW50aW1lLmNhbGN1bGF0ZVN0cnVjdEFsaWdubWVudCh0eXBlKTsKLSAgICB9Ci0gICAgdmFy
IHJldCA9IHsKLSAgICAgIF9fc2l6ZV9fOiB0eXBlLmZsYXRTaXplCi0gICAgfTsKLSAgICBpZiAo
dHlwZU5hbWUpIHsKLSAgICAgIHN0cnVjdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGkpIHsKLSAg
ICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykgewotICAgICAgICAgIHJldFtpdGVt
XSA9IGFsaWdubWVudFtpXSArIG9mZnNldDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAv
LyBlbWJlZGRlZCBzdHJ1Y3QKLSAgICAgICAgICB2YXIga2V5OwotICAgICAgICAgIGZvciAodmFy
IGsgaW4gaXRlbSkga2V5ID0gazsKLSAgICAgICAgICByZXRba2V5XSA9IFJ1bnRpbWUuZ2VuZXJh
dGVTdHJ1Y3RJbmZvKGl0ZW1ba2V5XSwgdHlwZS5maWVsZHNbaV0sIGFsaWdubWVudFtpXSk7Ci0g
ICAgICAgIH0KLSAgICAgIH0pOwotICAgIH0gZWxzZSB7Ci0gICAgICBzdHJ1Y3QuZm9yRWFjaChm
dW5jdGlvbihpdGVtLCBpKSB7Ci0gICAgICAgIHJldFtpdGVtWzFdXSA9IGFsaWdubWVudFtpXTsK
LSAgICAgIH0pOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotICB9LAotICBkeW5DYWxsOiBmdW5j
dGlvbiAoc2lnLCBwdHIsIGFyZ3MpIHsKLSAgICBpZiAoYXJncyAmJiBhcmdzLmxlbmd0aCkgewot
ICAgICAgaWYgKCFhcmdzLnNwbGljZSkgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxs
KGFyZ3MpOwotICAgICAgYXJncy5zcGxpY2UoMCwgMCwgcHRyKTsKLSAgICAgIHJldHVybiBNb2R1
bGVbJ2R5bkNhbGxfJyArIHNpZ10uYXBwbHkobnVsbCwgYXJncyk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgIHJldHVybiBNb2R1bGVbJ2R5bkNhbGxfJyArIHNpZ10uY2FsbChudWxsLCBwdHIpOwotICAg
IH0KLSAgfSwKLSAgZnVuY3Rpb25Qb2ludGVyczogW10sCi0gIGFkZEZ1bmN0aW9uOiBmdW5jdGlv
biAoZnVuYykgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgUnVudGltZS5mdW5jdGlvblBvaW50
ZXJzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICBpZiAoIVJ1bnRpbWUuZnVuY3Rpb25Qb2ludGVyc1tp
XSkgewotICAgICAgICBSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnNbaV0gPSBmdW5jOwotICAgICAg
ICByZXR1cm4gMiArIDIqaTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGhyb3cgJ0ZpbmlzaGVkIHVw
IGFsbCByZXNlcnZlZCBmdW5jdGlvbiBwb2ludGVycy4gVXNlIGEgaGlnaGVyIHZhbHVlIGZvciBS
RVNFUlZFRF9GVU5DVElPTl9QT0lOVEVSUy4nOwotICB9LAotICByZW1vdmVGdW5jdGlvbjogZnVu
Y3Rpb24gKGluZGV4KSB7Ci0gICAgUnVudGltZS5mdW5jdGlvblBvaW50ZXJzWyhpbmRleC0yKS8y
XSA9IG51bGw7Ci0gIH0sCi0gIHdhcm5PbmNlOiBmdW5jdGlvbiAodGV4dCkgewotICAgIGlmICgh
UnVudGltZS53YXJuT25jZS5zaG93bikgUnVudGltZS53YXJuT25jZS5zaG93biA9IHt9OwotICAg
IGlmICghUnVudGltZS53YXJuT25jZS5zaG93blt0ZXh0XSkgewotICAgICAgUnVudGltZS53YXJu
T25jZS5zaG93blt0ZXh0XSA9IDE7Ci0gICAgICBNb2R1bGUucHJpbnRFcnIodGV4dCk7Ci0gICAg
fQotICB9LAotICBmdW5jV3JhcHBlcnM6IHt9LAotICBnZXRGdW5jV3JhcHBlcjogZnVuY3Rpb24g
KGZ1bmMsIHNpZykgewotICAgIGFzc2VydChzaWcpOwotICAgIGlmICghUnVudGltZS5mdW5jV3Jh
cHBlcnNbZnVuY10pIHsKLSAgICAgIFJ1bnRpbWUuZnVuY1dyYXBwZXJzW2Z1bmNdID0gZnVuY3Rp
b24oKSB7Ci0gICAgICAgIHJldHVybiBSdW50aW1lLmR5bkNhbGwoc2lnLCBmdW5jLCBhcmd1bWVu
dHMpOwotICAgICAgfTsKLSAgICB9Ci0gICAgcmV0dXJuIFJ1bnRpbWUuZnVuY1dyYXBwZXJzW2Z1
bmNdOwotICB9LAotICBVVEY4UHJvY2Vzc29yOiBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGJ1ZmZl
ciA9IFtdOwotICAgIHZhciBuZWVkZWQgPSAwOwotICAgIHRoaXMucHJvY2Vzc0NDaGFyID0gZnVu
Y3Rpb24gKGNvZGUpIHsKLSAgICAgIGNvZGUgPSBjb2RlICYgMHhGRjsKLSAgICAgIGlmIChidWZm
ZXIubGVuZ3RoID09IDApIHsKLSAgICAgICAgaWYgKChjb2RlICYgMHg4MCkgPT0gMHgwMCkgeyAg
ICAgICAgLy8gMHh4eHh4eHgKLSAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShj
b2RlKTsKLSAgICAgICAgfQotICAgICAgICBidWZmZXIucHVzaChjb2RlKTsKLSAgICAgICAgaWYg
KChjb2RlICYgMHhFMCkgPT0gMHhDMCkgeyAgICAgICAgLy8gMTEweHh4eHgKLSAgICAgICAgICBu
ZWVkZWQgPSAxOwotICAgICAgICB9IGVsc2UgaWYgKChjb2RlICYgMHhGMCkgPT0gMHhFMCkgeyAv
LyAxMTEweHh4eAotICAgICAgICAgIG5lZWRlZCA9IDI7Ci0gICAgICAgIH0gZWxzZSB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIDExMTEweHh4Ci0gICAgICAgICAgbmVlZGVkID0gMzsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gJyc7Ci0gICAgICB9Ci0gICAgICBpZiAobmVlZGVk
KSB7Ci0gICAgICAgIGJ1ZmZlci5wdXNoKGNvZGUpOwotICAgICAgICBuZWVkZWQtLTsKLSAgICAg
ICAgaWYgKG5lZWRlZCA+IDApIHJldHVybiAnJzsKLSAgICAgIH0KLSAgICAgIHZhciBjMSA9IGJ1
ZmZlclswXTsKLSAgICAgIHZhciBjMiA9IGJ1ZmZlclsxXTsKLSAgICAgIHZhciBjMyA9IGJ1ZmZl
clsyXTsKLSAgICAgIHZhciBjNCA9IGJ1ZmZlclszXTsKLSAgICAgIHZhciByZXQ7Ci0gICAgICBp
ZiAoYnVmZmVyLmxlbmd0aCA9PSAyKSB7Ci0gICAgICAgIHJldCA9IFN0cmluZy5mcm9tQ2hhckNv
ZGUoKChjMSAmIDB4MUYpIDw8IDYpICB8IChjMiAmIDB4M0YpKTsKLSAgICAgIH0gZWxzZSBpZiAo
YnVmZmVyLmxlbmd0aCA9PSAzKSB7Ci0gICAgICAgIHJldCA9IFN0cmluZy5mcm9tQ2hhckNvZGUo
KChjMSAmIDB4MEYpIDw8IDEyKSB8ICgoYzIgJiAweDNGKSA8PCA2KSAgfCAoYzMgJiAweDNGKSk7
Ci0gICAgICB9IGVsc2UgewotICAgICAgICAvLyBodHRwOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rl
cy9qYXZhc2NyaXB0LWVuY29kaW5nI3N1cnJvZ2F0ZS1mb3JtdWxhZQotICAgICAgICB2YXIgY29k
ZVBvaW50ID0gKChjMSAmIDB4MDcpIDw8IDE4KSB8ICgoYzIgJiAweDNGKSA8PCAxMikgfAotICAg
ICAgICAgICAgICAgICAgICAgICAgKChjMyAmIDB4M0YpIDw8IDYpICB8IChjNCAmIDB4M0YpOwot
ICAgICAgICByZXQgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKAotICAgICAgICAgIE1hdGguZmxvb3Io
KGNvZGVQb2ludCAtIDB4MTAwMDApIC8gMHg0MDApICsgMHhEODAwLAotICAgICAgICAgIChjb2Rl
UG9pbnQgLSAweDEwMDAwKSAlIDB4NDAwICsgMHhEQzAwKTsKLSAgICAgIH0KLSAgICAgIGJ1ZmZl
ci5sZW5ndGggPSAwOwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gICAgdGhpcy5wcm9jZXNz
SlNTdHJpbmcgPSBmdW5jdGlvbihzdHJpbmcpIHsKLSAgICAgIHN0cmluZyA9IHVuZXNjYXBlKGVu
Y29kZVVSSUNvbXBvbmVudChzdHJpbmcpKTsKLSAgICAgIHZhciByZXQgPSBbXTsKLSAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHJldC5wdXNo
KHN0cmluZy5jaGFyQ29kZUF0KGkpKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAg
fQotICB9LAotICBzdGFja0FsbG9jOiBmdW5jdGlvbiAoc2l6ZSkgeyB2YXIgcmV0ID0gU1RBQ0tU
T1A7U1RBQ0tUT1AgPSAoU1RBQ0tUT1AgKyBzaXplKXwwO1NUQUNLVE9QID0gKCgoKFNUQUNLVE9Q
KSs3KT4+Myk8PDMpOyByZXR1cm4gcmV0OyB9LAotICBzdGF0aWNBbGxvYzogZnVuY3Rpb24gKHNp
emUpIHsgdmFyIHJldCA9IFNUQVRJQ1RPUDtTVEFUSUNUT1AgPSAoU1RBVElDVE9QICsgc2l6ZSl8
MDtTVEFUSUNUT1AgPSAoKCgoU1RBVElDVE9QKSs3KT4+Myk8PDMpOyByZXR1cm4gcmV0OyB9LAot
ICBkeW5hbWljQWxsb2M6IGZ1bmN0aW9uIChzaXplKSB7IHZhciByZXQgPSBEWU5BTUlDVE9QO0RZ
TkFNSUNUT1AgPSAoRFlOQU1JQ1RPUCArIHNpemUpfDA7RFlOQU1JQ1RPUCA9ICgoKChEWU5BTUlD
VE9QKSs3KT4+Myk8PDMpOyBpZiAoRFlOQU1JQ1RPUCA+PSBUT1RBTF9NRU1PUlkpIGVubGFyZ2VN
ZW1vcnkoKTs7IHJldHVybiByZXQ7IH0sCi0gIGFsaWduTWVtb3J5OiBmdW5jdGlvbiAoc2l6ZSxx
dWFudHVtKSB7IHZhciByZXQgPSBzaXplID0gTWF0aC5jZWlsKChzaXplKS8ocXVhbnR1bSA/IHF1
YW50dW0gOiA4KSkqKHF1YW50dW0gPyBxdWFudHVtIDogOCk7IHJldHVybiByZXQ7IH0sCi0gIG1h
a2VCaWdJbnQ6IGZ1bmN0aW9uIChsb3csaGlnaCx1bnNpZ25lZCkgeyB2YXIgcmV0ID0gKHVuc2ln
bmVkID8gKCgrKCgobG93KT4+PigwKSkpKSsoKCsoKChoaWdoKT4+PigwKSkpKSooKyg0Mjk0OTY3
Mjk2KSkpKSA6ICgoKygoKGxvdyk+Pj4oMCkpKSkrKCgrKCgoaGlnaCl8KDApKSkpKigrKDQyOTQ5
NjcyOTYpKSkpKTsgcmV0dXJuIHJldDsgfSwKLSAgR0xPQkFMX0JBU0U6IDgsCi0gIFFVQU5UVU1f
U0laRTogNCwKLSAgX19kdW1teV9fOiAwCi19Ci0vLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS8vIFJ1bnRpbWUgZXNzZW50aWFscwotLy89PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci12YXIgX19USFJFV19fID0gMDsgLy8gVXNlZCBpbiBj
aGVja2luZyBmb3IgdGhyb3duIGV4Y2VwdGlvbnMuCi12YXIgQUJPUlQgPSBmYWxzZTsgLy8gd2hl
dGhlciB3ZSBhcmUgcXVpdHRpbmcgdGhlIGFwcGxpY2F0aW9uLiBubyBjb2RlIHNob3VsZCBydW4g
YWZ0ZXIgdGhpcy4gc2V0IGluIGV4aXQoKSBhbmQgYWJvcnQoKQotdmFyIEVYSVRTVEFUVVMgPSAw
OwotdmFyIHVuZGVmID0gMDsKLS8vIHRlbXBJbnQgaXMgdXNlZCBmb3IgMzItYml0IHNpZ25lZCB2
YWx1ZXMgb3Igc21hbGxlci4gdGVtcEJpZ0ludCBpcyB1c2VkCi0vLyBmb3IgMzItYml0IHVuc2ln
bmVkIHZhbHVlcyBvciBtb3JlIHRoYW4gMzIgYml0cy4gVE9ETzogYXVkaXQgYWxsIHVzZXMgb2Yg
dGVtcEludAotdmFyIHRlbXBWYWx1ZSwgdGVtcEludCwgdGVtcEJpZ0ludCwgdGVtcEludDIsIHRl
bXBCaWdJbnQyLCB0ZW1wUGFpciwgdGVtcEJpZ0ludEksIHRlbXBCaWdJbnRSLCB0ZW1wQmlnSW50
UywgdGVtcEJpZ0ludFAsIHRlbXBCaWdJbnREOwotdmFyIHRlbXBJNjQsIHRlbXBJNjRiOwotdmFy
IHRlbXBSZXQwLCB0ZW1wUmV0MSwgdGVtcFJldDIsIHRlbXBSZXQzLCB0ZW1wUmV0NCwgdGVtcFJl
dDUsIHRlbXBSZXQ2LCB0ZW1wUmV0NywgdGVtcFJldDgsIHRlbXBSZXQ5OwotZnVuY3Rpb24gYXNz
ZXJ0KGNvbmRpdGlvbiwgdGV4dCkgewotICBpZiAoIWNvbmRpdGlvbikgewotICAgIGFib3J0KCdB
c3NlcnRpb24gZmFpbGVkOiAnICsgdGV4dCk7Ci0gIH0KLX0KLXZhciBnbG9iYWxTY29wZSA9IHRo
aXM7Ci0vLyBDIGNhbGxpbmcgaW50ZXJmYWNlLiBBIGNvbnZlbmllbnQgd2F5IHRvIGNhbGwgQyBm
dW5jdGlvbnMgKGluIEMgZmlsZXMsIG9yCi0vLyBkZWZpbmVkIHdpdGggZXh0ZXJuICJDIikuCi0v
LwotLy8gTm90ZTogTExWTSBvcHRpbWl6YXRpb25zIGNhbiBpbmxpbmUgYW5kIHJlbW92ZSBmdW5j
dGlvbnMsIGFmdGVyIHdoaWNoIHlvdSB3aWxsIG5vdCBiZQotLy8gICAgICAgYWJsZSB0byBjYWxs
IHRoZW0uIENsb3N1cmUgY2FuIGFsc28gZG8gc28uIFRvIGF2b2lkIHRoYXQsIGFkZCB5b3VyIGZ1
bmN0aW9uIHRvCi0vLyAgICAgICB0aGUgZXhwb3J0cyB1c2luZyBzb21ldGhpbmcgbGlrZQotLy8K
LS8vICAgICAgICAgLXMgRVhQT1JURURfRlVOQ1RJT05TPSdbIl9tYWluIiwgIl9teWZ1bmMiXScK
LS8vCi0vLyBAcGFyYW0gaWRlbnQgICAgICBUaGUgbmFtZSBvZiB0aGUgQyBmdW5jdGlvbiAobm90
ZSB0aGF0IEMrKyBmdW5jdGlvbnMgd2lsbCBiZSBuYW1lLW1hbmdsZWQgLSB1c2UgZXh0ZXJuICJD
IikKLS8vIEBwYXJhbSByZXR1cm5UeXBlIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgZnVuY3Rpb24s
IG9uZSBvZiB0aGUgSlMgdHlwZXMgJ251bWJlcicsICdzdHJpbmcnIG9yICdhcnJheScgKHVzZSAn
bnVtYmVyJyBmb3IgYW55IEMgcG9pbnRlciwgYW5kCi0vLyAgICAgICAgICAgICAgICAgICAnYXJy
YXknIGZvciBKYXZhU2NyaXB0IGFycmF5cyBhbmQgdHlwZWQgYXJyYXlzOyBub3RlIHRoYXQgYXJy
YXlzIGFyZSA4LWJpdCkuCi0vLyBAcGFyYW0gYXJnVHlwZXMgICBBbiBhcnJheSBvZiB0aGUgdHlw
ZXMgb2YgYXJndW1lbnRzIGZvciB0aGUgZnVuY3Rpb24gKGlmIHRoZXJlIGFyZSBubyBhcmd1bWVu
dHMsIHRoaXMgY2FuIGJlIG9tbWl0dGVkKS4gVHlwZXMgYXJlIGFzIGluIHJldHVyblR5cGUsCi0v
LyAgICAgICAgICAgICAgICAgICBleGNlcHQgdGhhdCAnYXJyYXknIGlzIG5vdCBwb3NzaWJsZSAo
dGhlcmUgaXMgbm8gd2F5IGZvciB1cyB0byBrbm93IHRoZSBsZW5ndGggb2YgdGhlIGFycmF5KQot
Ly8gQHBhcmFtIGFyZ3MgICAgICAgQW4gYXJyYXkgb2YgdGhlIGFyZ3VtZW50cyB0byB0aGUgZnVu
Y3Rpb24sIGFzIG5hdGl2ZSBKUyB2YWx1ZXMgKGFzIGluIHJldHVyblR5cGUpCi0vLyAgICAgICAg
ICAgICAgICAgICBOb3RlIHRoYXQgc3RyaW5nIGFyZ3VtZW50cyB3aWxsIGJlIHN0b3JlZCBvbiB0
aGUgc3RhY2sgKHRoZSBKUyBzdHJpbmcgd2lsbCBiZWNvbWUgYSBDIHN0cmluZyBvbiB0aGUgc3Rh
Y2spLgotLy8gQHJldHVybiAgICAgICAgICAgVGhlIHJldHVybiB2YWx1ZSwgYXMgYSBuYXRpdmUg
SlMgdmFsdWUgKGFzIGluIHJldHVyblR5cGUpCi1mdW5jdGlvbiBjY2FsbChpZGVudCwgcmV0dXJu
VHlwZSwgYXJnVHlwZXMsIGFyZ3MpIHsKLSAgcmV0dXJuIGNjYWxsRnVuYyhnZXRDRnVuYyhpZGVu
dCksIHJldHVyblR5cGUsIGFyZ1R5cGVzLCBhcmdzKTsKLX0KLU1vZHVsZVsiY2NhbGwiXSA9IGNj
YWxsOwotLy8gUmV0dXJucyB0aGUgQyBmdW5jdGlvbiB3aXRoIGEgc3BlY2lmaWVkIGlkZW50aWZp
ZXIgKGZvciBDKyssIHlvdSBuZWVkIHRvIGRvIG1hbnVhbCBuYW1lIG1hbmdsaW5nKQotZnVuY3Rp
b24gZ2V0Q0Z1bmMoaWRlbnQpIHsKLSAgdHJ5IHsKLSAgICB2YXIgZnVuYyA9IE1vZHVsZVsnXycg
KyBpZGVudF07IC8vIGNsb3N1cmUgZXhwb3J0ZWQgZnVuY3Rpb24KLSAgICBpZiAoIWZ1bmMpIGZ1
bmMgPSBldmFsKCdfJyArIGlkZW50KTsgLy8gZXhwbGljaXQgbG9va3VwCi0gIH0gY2F0Y2goZSkg
ewotICB9Ci0gIGFzc2VydChmdW5jLCAnQ2Fubm90IGNhbGwgdW5rbm93biBmdW5jdGlvbiAnICsg
aWRlbnQgKyAnIChwZXJoYXBzIExMVk0gb3B0aW1pemF0aW9ucyBvciBjbG9zdXJlIHJlbW92ZWQg
aXQ/KScpOwotICByZXR1cm4gZnVuYzsKLX0KLS8vIEludGVybmFsIGZ1bmN0aW9uIHRoYXQgZG9l
cyBhIEMgY2FsbCB1c2luZyBhIGZ1bmN0aW9uLCBub3QgYW4gaWRlbnRpZmllcgotZnVuY3Rpb24g
Y2NhbGxGdW5jKGZ1bmMsIHJldHVyblR5cGUsIGFyZ1R5cGVzLCBhcmdzKSB7Ci0gIHZhciBzdGFj
ayA9IDA7Ci0gIGZ1bmN0aW9uIHRvQyh2YWx1ZSwgdHlwZSkgewotICAgIGlmICh0eXBlID09ICdz
dHJpbmcnKSB7Ci0gICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5l
ZCB8fCB2YWx1ZSA9PT0gMCkgcmV0dXJuIDA7IC8vIG51bGwgc3RyaW5nCi0gICAgICBpZiAoIXN0
YWNrKSBzdGFjayA9IFJ1bnRpbWUuc3RhY2tTYXZlKCk7Ci0gICAgICB2YXIgcmV0ID0gUnVudGlt
ZS5zdGFja0FsbG9jKHZhbHVlLmxlbmd0aCsxKTsKLSAgICAgIHdyaXRlU3RyaW5nVG9NZW1vcnko
dmFsdWUsIHJldCk7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0gZWxzZSBpZiAodHlwZSA9PSAn
YXJyYXknKSB7Ci0gICAgICBpZiAoIXN0YWNrKSBzdGFjayA9IFJ1bnRpbWUuc3RhY2tTYXZlKCk7
Ci0gICAgICB2YXIgcmV0ID0gUnVudGltZS5zdGFja0FsbG9jKHZhbHVlLmxlbmd0aCk7Ci0gICAg
ICB3cml0ZUFycmF5VG9NZW1vcnkodmFsdWUsIHJldCk7Ci0gICAgICByZXR1cm4gcmV0OwotICAg
IH0KLSAgICByZXR1cm4gdmFsdWU7Ci0gIH0KLSAgZnVuY3Rpb24gZnJvbUModmFsdWUsIHR5cGUp
IHsKLSAgICBpZiAodHlwZSA9PSAnc3RyaW5nJykgewotICAgICAgcmV0dXJuIFBvaW50ZXJfc3Ry
aW5naWZ5KHZhbHVlKTsKLSAgICB9Ci0gICAgYXNzZXJ0KHR5cGUgIT0gJ2FycmF5Jyk7Ci0gICAg
cmV0dXJuIHZhbHVlOwotICB9Ci0gIHZhciBpID0gMDsKLSAgdmFyIGNBcmdzID0gYXJncyA/IGFy
Z3MubWFwKGZ1bmN0aW9uKGFyZykgewotICAgIHJldHVybiB0b0MoYXJnLCBhcmdUeXBlc1tpKytd
KTsKLSAgfSkgOiBbXTsKLSAgdmFyIHJldCA9IGZyb21DKGZ1bmMuYXBwbHkobnVsbCwgY0FyZ3Mp
LCByZXR1cm5UeXBlKTsKLSAgaWYgKHN0YWNrKSBSdW50aW1lLnN0YWNrUmVzdG9yZShzdGFjayk7
Ci0gIHJldHVybiByZXQ7Ci19Ci0vLyBSZXR1cm5zIGEgbmF0aXZlIEpTIHdyYXBwZXIgZm9yIGEg
QyBmdW5jdGlvbi4gVGhpcyBpcyBzaW1pbGFyIHRvIGNjYWxsLCBidXQKLS8vIHJldHVybnMgYSBm
dW5jdGlvbiB5b3UgY2FuIGNhbGwgcmVwZWF0ZWRseSBpbiBhIG5vcm1hbCB3YXkuIEZvciBleGFt
cGxlOgotLy8KLS8vICAgdmFyIG15X2Z1bmN0aW9uID0gY3dyYXAoJ215X2NfZnVuY3Rpb24nLCAn
bnVtYmVyJywgWydudW1iZXInLCAnbnVtYmVyJ10pOwotLy8gICBhbGVydChteV9mdW5jdGlvbig1
LCAyMikpOwotLy8gICBhbGVydChteV9mdW5jdGlvbig5OSwgMTIpKTsKLS8vCi1mdW5jdGlvbiBj
d3JhcChpZGVudCwgcmV0dXJuVHlwZSwgYXJnVHlwZXMpIHsKLSAgdmFyIGZ1bmMgPSBnZXRDRnVu
YyhpZGVudCk7Ci0gIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gY2NhbGxGdW5jKGZ1
bmMsIHJldHVyblR5cGUsIGFyZ1R5cGVzLCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1
bWVudHMpKTsKLSAgfQotfQotTW9kdWxlWyJjd3JhcCJdID0gY3dyYXA7Ci0vLyBTZXRzIGEgdmFs
dWUgaW4gbWVtb3J5IGluIGEgZHluYW1pYyB3YXkgYXQgcnVuLXRpbWUuIFVzZXMgdGhlCi0vLyB0
eXBlIGRhdGEuIFRoaXMgaXMgdGhlIHNhbWUgYXMgbWFrZVNldFZhbHVlLCBleGNlcHQgdGhhdAot
Ly8gbWFrZVNldFZhbHVlIGlzIGRvbmUgYXQgY29tcGlsZS10aW1lIGFuZCBnZW5lcmF0ZXMgdGhl
IG5lZWRlZAotLy8gY29kZSB0aGVuLCB3aGVyZWFzIHRoaXMgZnVuY3Rpb24gcGlja3MgdGhlIHJp
Z2h0IGNvZGUgYXQKLS8vIHJ1bi10aW1lLgotLy8gTm90ZSB0aGF0IHNldFZhbHVlIGFuZCBnZXRW
YWx1ZSBvbmx5IGRvICphbGlnbmVkKiB3cml0ZXMgYW5kIHJlYWRzIQotLy8gTm90ZSB0aGF0IGNj
YWxsIHVzZXMgSlMgdHlwZXMgYXMgZm9yIGRlZmluaW5nIHR5cGVzLCB3aGlsZSBzZXRWYWx1ZSBh
bmQKLS8vIGdldFZhbHVlIG5lZWQgTExWTSB0eXBlcyAoJ2k4JywgJ2kzMicpIC0gdGhpcyBpcyBh
IGxvd2VyLWxldmVsIG9wZXJhdGlvbgotZnVuY3Rpb24gc2V0VmFsdWUocHRyLCB2YWx1ZSwgdHlw
ZSwgbm9TYWZlKSB7Ci0gIHR5cGUgPSB0eXBlIHx8ICdpOCc7Ci0gIGlmICh0eXBlLmNoYXJBdCh0
eXBlLmxlbmd0aC0xKSA9PT0gJyonKSB0eXBlID0gJ2kzMic7IC8vIHBvaW50ZXJzIGFyZSAzMi1i
aXQKLSAgICBzd2l0Y2godHlwZSkgewotICAgICAgY2FzZSAnaTEnOiBIRUFQOFsocHRyKV09dmFs
dWU7IGJyZWFrOwotICAgICAgY2FzZSAnaTgnOiBIRUFQOFsocHRyKV09dmFsdWU7IGJyZWFrOwot
ICAgICAgY2FzZSAnaTE2JzogSEVBUDE2WygocHRyKT4+MSldPXZhbHVlOyBicmVhazsKLSAgICAg
IGNhc2UgJ2kzMic6IEhFQVAzMlsoKHB0cik+PjIpXT12YWx1ZTsgYnJlYWs7Ci0gICAgICBjYXNl
ICdpNjQnOiAodGVtcEk2NCA9IFt2YWx1ZT4+PjAsKHRlbXBEb3VibGU9dmFsdWUsKCsoTWF0aC5h
YnModGVtcERvdWJsZSkpKSA+PSAoKygxKSkgPyAodGVtcERvdWJsZSA+ICgrKDApKSA/ICgoTWF0
aC5taW4oKCsoTWF0aC5mbG9vcigodGVtcERvdWJsZSkvKCsoNDI5NDk2NzI5NikpKSkpLCAoKyg0
Mjk0OTY3Mjk1KSkpKXwwKT4+PjAgOiAofn4oKCsoTWF0aC5jZWlsKCh0ZW1wRG91YmxlIC0gKygo
KH5+KHRlbXBEb3VibGUpKSk+Pj4wKSkvKCsoNDI5NDk2NzI5NikpKSkpKSk+Pj4wKSA6IDApXSxI
RUFQMzJbKChwdHIpPj4yKV09dGVtcEk2NFswXSxIRUFQMzJbKCgocHRyKSsoNCkpPj4yKV09dGVt
cEk2NFsxXSk7IGJyZWFrOwotICAgICAgY2FzZSAnZmxvYXQnOiBIRUFQRjMyWygocHRyKT4+Mild
PXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2UgJ2RvdWJsZSc6IEhFQVBGNjRbKChwdHIpPj4zKV09
dmFsdWU7IGJyZWFrOwotICAgICAgZGVmYXVsdDogYWJvcnQoJ2ludmFsaWQgdHlwZSBmb3Igc2V0
VmFsdWU6ICcgKyB0eXBlKTsKLSAgICB9Ci19Ci1Nb2R1bGVbJ3NldFZhbHVlJ10gPSBzZXRWYWx1
ZTsKLS8vIFBhcmFsbGVsIHRvIHNldFZhbHVlLgotZnVuY3Rpb24gZ2V0VmFsdWUocHRyLCB0eXBl
LCBub1NhZmUpIHsKLSAgdHlwZSA9IHR5cGUgfHwgJ2k4JzsKLSAgaWYgKHR5cGUuY2hhckF0KHR5
cGUubGVuZ3RoLTEpID09PSAnKicpIHR5cGUgPSAnaTMyJzsgLy8gcG9pbnRlcnMgYXJlIDMyLWJp
dAotICAgIHN3aXRjaCh0eXBlKSB7Ci0gICAgICBjYXNlICdpMSc6IHJldHVybiBIRUFQOFsocHRy
KV07Ci0gICAgICBjYXNlICdpOCc6IHJldHVybiBIRUFQOFsocHRyKV07Ci0gICAgICBjYXNlICdp
MTYnOiByZXR1cm4gSEVBUDE2WygocHRyKT4+MSldOwotICAgICAgY2FzZSAnaTMyJzogcmV0dXJu
IEhFQVAzMlsoKHB0cik+PjIpXTsKLSAgICAgIGNhc2UgJ2k2NCc6IHJldHVybiBIRUFQMzJbKChw
dHIpPj4yKV07Ci0gICAgICBjYXNlICdmbG9hdCc6IHJldHVybiBIRUFQRjMyWygocHRyKT4+Mild
OwotICAgICAgY2FzZSAnZG91YmxlJzogcmV0dXJuIEhFQVBGNjRbKChwdHIpPj4zKV07Ci0gICAg
ICBkZWZhdWx0OiBhYm9ydCgnaW52YWxpZCB0eXBlIGZvciBzZXRWYWx1ZTogJyArIHR5cGUpOwot
ICAgIH0KLSAgcmV0dXJuIG51bGw7Ci19Ci1Nb2R1bGVbJ2dldFZhbHVlJ10gPSBnZXRWYWx1ZTsK
LXZhciBBTExPQ19OT1JNQUwgPSAwOyAvLyBUcmllcyB0byB1c2UgX21hbGxvYygpCi12YXIgQUxM
T0NfU1RBQ0sgPSAxOyAvLyBMaXZlcyBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjdXJyZW50IGZ1
bmN0aW9uIGNhbGwKLXZhciBBTExPQ19TVEFUSUMgPSAyOyAvLyBDYW5ub3QgYmUgZnJlZWQKLXZh
ciBBTExPQ19EWU5BTUlDID0gMzsgLy8gQ2Fubm90IGJlIGZyZWVkIGV4Y2VwdCB0aHJvdWdoIHNi
cmsKLXZhciBBTExPQ19OT05FID0gNDsgLy8gRG8gbm90IGFsbG9jYXRlCi1Nb2R1bGVbJ0FMTE9D
X05PUk1BTCddID0gQUxMT0NfTk9STUFMOwotTW9kdWxlWydBTExPQ19TVEFDSyddID0gQUxMT0Nf
U1RBQ0s7Ci1Nb2R1bGVbJ0FMTE9DX1NUQVRJQyddID0gQUxMT0NfU1RBVElDOwotTW9kdWxlWydB
TExPQ19EWU5BTUlDJ10gPSBBTExPQ19EWU5BTUlDOwotTW9kdWxlWydBTExPQ19OT05FJ10gPSBB
TExPQ19OT05FOwotLy8gYWxsb2NhdGUoKTogVGhpcyBpcyBmb3IgaW50ZXJuYWwgdXNlLiBZb3Ug
Y2FuIHVzZSBpdCB5b3Vyc2VsZiBhcyB3ZWxsLCBidXQgdGhlIGludGVyZmFjZQotLy8gICAgICAg
ICAgICAgaXMgYSBsaXR0bGUgdHJpY2t5IChzZWUgZG9jcyByaWdodCBiZWxvdykuIFRoZSByZWFz
b24gaXMgdGhhdCBpdCBpcyBvcHRpbWl6ZWQKLS8vICAgICAgICAgICAgIGZvciBtdWx0aXBsZSBz
eW50YXhlcyB0byBzYXZlIHNwYWNlIGluIGdlbmVyYXRlZCBjb2RlLiBTbyB5b3Ugc2hvdWxkCi0v
LyAgICAgICAgICAgICBub3JtYWxseSBub3QgdXNlIGFsbG9jYXRlKCksIGFuZCBpbnN0ZWFkIGFs
bG9jYXRlIG1lbW9yeSB1c2luZyBfbWFsbG9jKCksCi0vLyAgICAgICAgICAgICBpbml0aWFsaXpl
IGl0IHdpdGggc2V0VmFsdWUoKSwgYW5kIHNvIGZvcnRoLgotLy8gQHNsYWI6IEFuIGFycmF5IG9m
IGRhdGEsIG9yIGEgbnVtYmVyLiBJZiBhIG51bWJlciwgdGhlbiB0aGUgc2l6ZSBvZiB0aGUgYmxv
Y2sgdG8gYWxsb2NhdGUsCi0vLyAgICAgICAgaW4gKmJ5dGVzKiAobm90ZSB0aGF0IHRoaXMgaXMg
c29tZXRpbWVzIGNvbmZ1c2luZzogdGhlIG5leHQgcGFyYW1ldGVyIGRvZXMgbm90Ci0vLyAgICAg
ICAgYWZmZWN0IHRoaXMhKQotLy8gQHR5cGVzOiBFaXRoZXIgYW4gYXJyYXkgb2YgdHlwZXMsIG9u
ZSBmb3IgZWFjaCBieXRlIChvciAwIGlmIG5vIHR5cGUgYXQgdGhhdCBwb3NpdGlvbiksCi0vLyAg
ICAgICAgIG9yIGEgc2luZ2xlIHR5cGUgd2hpY2ggaXMgdXNlZCBmb3IgdGhlIGVudGlyZSBibG9j
ay4gVGhpcyBvbmx5IG1hdHRlcnMgaWYgdGhlcmUKLS8vICAgICAgICAgaXMgaW5pdGlhbCBkYXRh
IC0gaWYgQHNsYWIgaXMgYSBudW1iZXIsIHRoZW4gdGhpcyBkb2VzIG5vdCBtYXR0ZXIgYXQgYWxs
IGFuZCBpcwotLy8gICAgICAgICBpZ25vcmVkLgotLy8gQGFsbG9jYXRvcjogSG93IHRvIGFsbG9j
YXRlIG1lbW9yeSwgc2VlIEFMTE9DXyoKLWZ1bmN0aW9uIGFsbG9jYXRlKHNsYWIsIHR5cGVzLCBh
bGxvY2F0b3IsIHB0cikgewotICB2YXIgemVyb2luaXQsIHNpemU7Ci0gIGlmICh0eXBlb2Ygc2xh
YiA9PT0gJ251bWJlcicpIHsKLSAgICB6ZXJvaW5pdCA9IHRydWU7Ci0gICAgc2l6ZSA9IHNsYWI7
Ci0gIH0gZWxzZSB7Ci0gICAgemVyb2luaXQgPSBmYWxzZTsKLSAgICBzaXplID0gc2xhYi5sZW5n
dGg7Ci0gIH0KLSAgdmFyIHNpbmdsZVR5cGUgPSB0eXBlb2YgdHlwZXMgPT09ICdzdHJpbmcnID8g
dHlwZXMgOiBudWxsOwotICB2YXIgcmV0OwotICBpZiAoYWxsb2NhdG9yID09IEFMTE9DX05PTkUp
IHsKLSAgICByZXQgPSBwdHI7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0ID0gW19tYWxsb2MsIFJ1bnRp
bWUuc3RhY2tBbGxvYywgUnVudGltZS5zdGF0aWNBbGxvYywgUnVudGltZS5keW5hbWljQWxsb2Nd
W2FsbG9jYXRvciA9PT0gdW5kZWZpbmVkID8gQUxMT0NfU1RBVElDIDogYWxsb2NhdG9yXShNYXRo
Lm1heChzaXplLCBzaW5nbGVUeXBlID8gMSA6IHR5cGVzLmxlbmd0aCkpOwotICB9Ci0gIGlmICh6
ZXJvaW5pdCkgewotICAgIHZhciBwdHIgPSByZXQsIHN0b3A7Ci0gICAgYXNzZXJ0KChyZXQgJiAz
KSA9PSAwKTsKLSAgICBzdG9wID0gcmV0ICsgKHNpemUgJiB+Myk7Ci0gICAgZm9yICg7IHB0ciA8
IHN0b3A7IHB0ciArPSA0KSB7Ci0gICAgICBIRUFQMzJbKChwdHIpPj4yKV09MDsKLSAgICB9Ci0g
ICAgc3RvcCA9IHJldCArIHNpemU7Ci0gICAgd2hpbGUgKHB0ciA8IHN0b3ApIHsKLSAgICAgIEhF
QVA4WygocHRyKyspfDApXT0wOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotICB9Ci0gIGlmIChz
aW5nbGVUeXBlID09PSAnaTgnKSB7Ci0gICAgaWYgKHNsYWIuc3ViYXJyYXkgfHwgc2xhYi5zbGlj
ZSkgewotICAgICAgSEVBUFU4LnNldChzbGFiLCByZXQpOwotICAgIH0gZWxzZSB7Ci0gICAgICBI
RUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHNsYWIpLCByZXQpOwotICAgIH0KLSAgICByZXR1cm4g
cmV0OwotICB9Ci0gIHZhciBpID0gMCwgdHlwZSwgdHlwZVNpemUsIHByZXZpb3VzVHlwZTsKLSAg
d2hpbGUgKGkgPCBzaXplKSB7Ci0gICAgdmFyIGN1cnIgPSBzbGFiW2ldOwotICAgIGlmICh0eXBl
b2YgY3VyciA9PT0gJ2Z1bmN0aW9uJykgewotICAgICAgY3VyciA9IFJ1bnRpbWUuZ2V0RnVuY3Rp
b25JbmRleChjdXJyKTsKLSAgICB9Ci0gICAgdHlwZSA9IHNpbmdsZVR5cGUgfHwgdHlwZXNbaV07
Ci0gICAgaWYgKHR5cGUgPT09IDApIHsKLSAgICAgIGkrKzsKLSAgICAgIGNvbnRpbnVlOwotICAg
IH0KLSAgICBpZiAodHlwZSA9PSAnaTY0JykgdHlwZSA9ICdpMzInOyAvLyBzcGVjaWFsIGNhc2U6
IHdlIGhhdmUgb25lIGkzMiBoZXJlLCBhbmQgb25lIGkzMiBsYXRlcgotICAgIHNldFZhbHVlKHJl
dCtpLCBjdXJyLCB0eXBlKTsKLSAgICAvLyBubyBuZWVkIHRvIGxvb2sgdXAgc2l6ZSB1bmxlc3Mg
dHlwZSBjaGFuZ2VzLCBzbyBjYWNoZSBpdAotICAgIGlmIChwcmV2aW91c1R5cGUgIT09IHR5cGUp
IHsKLSAgICAgIHR5cGVTaXplID0gUnVudGltZS5nZXROYXRpdmVUeXBlU2l6ZSh0eXBlKTsKLSAg
ICAgIHByZXZpb3VzVHlwZSA9IHR5cGU7Ci0gICAgfQotICAgIGkgKz0gdHlwZVNpemU7Ci0gIH0K
LSAgcmV0dXJuIHJldDsKLX0KLU1vZHVsZVsnYWxsb2NhdGUnXSA9IGFsbG9jYXRlOwotZnVuY3Rp
b24gUG9pbnRlcl9zdHJpbmdpZnkocHRyLCAvKiBvcHRpb25hbCAqLyBsZW5ndGgpIHsKLSAgLy8g
VE9ETzogdXNlIFRleHREZWNvZGVyCi0gIC8vIEZpbmQgdGhlIGxlbmd0aCwgYW5kIGNoZWNrIGZv
ciBVVEYgd2hpbGUgZG9pbmcgc28KLSAgdmFyIGhhc1V0ZiA9IGZhbHNlOwotICB2YXIgdDsKLSAg
dmFyIGkgPSAwOwotICB3aGlsZSAoMSkgewotICAgIHQgPSBIRUFQVThbKCgocHRyKSsoaSkpfDAp
XTsKLSAgICBpZiAodCA+PSAxMjgpIGhhc1V0ZiA9IHRydWU7Ci0gICAgZWxzZSBpZiAodCA9PSAw
ICYmICFsZW5ndGgpIGJyZWFrOwotICAgIGkrKzsKLSAgICBpZiAobGVuZ3RoICYmIGkgPT0gbGVu
Z3RoKSBicmVhazsKLSAgfQotICBpZiAoIWxlbmd0aCkgbGVuZ3RoID0gaTsKLSAgdmFyIHJldCA9
ICcnOwotICBpZiAoIWhhc1V0ZikgewotICAgIHZhciBNQVhfQ0hVTksgPSAxMDI0OyAvLyBzcGxp
dCB1cCBpbnRvIGNodW5rcywgYmVjYXVzZSAuYXBwbHkgb24gYSBodWdlIHN0cmluZyBjYW4gb3Zl
cmZsb3cgdGhlIHN0YWNrCi0gICAgdmFyIGN1cnI7Ci0gICAgd2hpbGUgKGxlbmd0aCA+IDApIHsK
LSAgICAgIGN1cnIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywgSEVBUFU4LnN1
YmFycmF5KHB0ciwgcHRyICsgTWF0aC5taW4obGVuZ3RoLCBNQVhfQ0hVTkspKSk7Ci0gICAgICBy
ZXQgPSByZXQgPyByZXQgKyBjdXJyIDogY3VycjsKLSAgICAgIHB0ciArPSBNQVhfQ0hVTks7Ci0g
ICAgICBsZW5ndGggLT0gTUFYX0NIVU5LOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotICB9Ci0g
IHZhciB1dGY4ID0gbmV3IFJ1bnRpbWUuVVRGOFByb2Nlc3NvcigpOwotICBmb3IgKGkgPSAwOyBp
IDwgbGVuZ3RoOyBpKyspIHsKLSAgICB0ID0gSEVBUFU4WygoKHB0cikrKGkpKXwwKV07Ci0gICAg
cmV0ICs9IHV0ZjgucHJvY2Vzc0NDaGFyKHQpOwotICB9Ci0gIHJldHVybiByZXQ7Ci19Ci1Nb2R1
bGVbJ1BvaW50ZXJfc3RyaW5naWZ5J10gPSBQb2ludGVyX3N0cmluZ2lmeTsKLS8vIE1lbW9yeSBt
YW5hZ2VtZW50Ci12YXIgUEFHRV9TSVpFID0gNDA5NjsKLWZ1bmN0aW9uIGFsaWduTWVtb3J5UGFn
ZSh4KSB7Ci0gIHJldHVybiAoKHgrNDA5NSk+PjEyKTw8MTI7Ci19Ci12YXIgSEVBUDsKLXZhciBI
RUFQOCwgSEVBUFU4LCBIRUFQMTYsIEhFQVBVMTYsIEhFQVAzMiwgSEVBUFUzMiwgSEVBUEYzMiwg
SEVBUEY2NDsKLXZhciBTVEFUSUNfQkFTRSA9IDAsIFNUQVRJQ1RPUCA9IDAsIHN0YXRpY1NlYWxl
ZCA9IGZhbHNlOyAvLyBzdGF0aWMgYXJlYQotdmFyIFNUQUNLX0JBU0UgPSAwLCBTVEFDS1RPUCA9
IDAsIFNUQUNLX01BWCA9IDA7IC8vIHN0YWNrIGFyZWEKLXZhciBEWU5BTUlDX0JBU0UgPSAwLCBE
WU5BTUlDVE9QID0gMDsgLy8gZHluYW1pYyBhcmVhIGhhbmRsZWQgYnkgc2JyawotZnVuY3Rpb24g
ZW5sYXJnZU1lbW9yeSgpIHsKLSAgYWJvcnQoJ0Nhbm5vdCBlbmxhcmdlIG1lbW9yeSBhcnJheXMg
aW4gYXNtLmpzLiBFaXRoZXIgKDEpIGNvbXBpbGUgd2l0aCAtcyBUT1RBTF9NRU1PUlk9WCB3aXRo
IFggaGlnaGVyIHRoYW4gdGhlIGN1cnJlbnQgdmFsdWUsIG9yICgyKSBzZXQgTW9kdWxlLlRPVEFM
X01FTU9SWSBiZWZvcmUgdGhlIHByb2dyYW0gcnVucy4nKTsKLX0KLXZhciBUT1RBTF9TVEFDSyA9
IE1vZHVsZVsnVE9UQUxfU1RBQ0snXSB8fCA1MjQyODgwOwotdmFyIFRPVEFMX01FTU9SWSA9IE1v
ZHVsZVsnVE9UQUxfTUVNT1JZJ10gfHwgMTY3NzcyMTY7Ci12YXIgRkFTVF9NRU1PUlkgPSBNb2R1
bGVbJ0ZBU1RfTUVNT1JZJ10gfHwgMjA5NzE1MjsKLS8vIEluaXRpYWxpemUgdGhlIHJ1bnRpbWUn
cyBtZW1vcnkKLS8vIGNoZWNrIGZvciBmdWxsIGVuZ2luZSBzdXBwb3J0ICh1c2Ugc3RyaW5nICdz
dWJhcnJheScgdG8gYXZvaWQgY2xvc3VyZSBjb21waWxlciBjb25mdXNpb24pCi1hc3NlcnQoISFJ
bnQzMkFycmF5ICYmICEhRmxvYXQ2NEFycmF5ICYmICEhKG5ldyBJbnQzMkFycmF5KDEpWydzdWJh
cnJheSddKSAmJiAhIShuZXcgSW50MzJBcnJheSgxKVsnc2V0J10pLAotICAgICAgICdDYW5ub3Qg
ZmFsbGJhY2sgdG8gbm9uLXR5cGVkIGFycmF5IGNhc2U6IENvZGUgaXMgdG9vIHNwZWNpYWxpemVk
Jyk7Ci12YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKFRPVEFMX01FTU9SWSk7Ci1IRUFQOCA9
IG5ldyBJbnQ4QXJyYXkoYnVmZmVyKTsKLUhFQVAxNiA9IG5ldyBJbnQxNkFycmF5KGJ1ZmZlcik7
Ci1IRUFQMzIgPSBuZXcgSW50MzJBcnJheShidWZmZXIpOwotSEVBUFU4ID0gbmV3IFVpbnQ4QXJy
YXkoYnVmZmVyKTsKLUhFQVBVMTYgPSBuZXcgVWludDE2QXJyYXkoYnVmZmVyKTsKLUhFQVBVMzIg
PSBuZXcgVWludDMyQXJyYXkoYnVmZmVyKTsKLUhFQVBGMzIgPSBuZXcgRmxvYXQzMkFycmF5KGJ1
ZmZlcik7Ci1IRUFQRjY0ID0gbmV3IEZsb2F0NjRBcnJheShidWZmZXIpOwotLy8gRW5kaWFubmVz
cyBjaGVjayAobm90ZTogYXNzdW1lcyBjb21waWxlciBhcmNoIHdhcyBsaXR0bGUtZW5kaWFuKQot
SEVBUDMyWzBdID0gMjU1OwotYXNzZXJ0KEhFQVBVOFswXSA9PT0gMjU1ICYmIEhFQVBVOFszXSA9
PT0gMCwgJ1R5cGVkIGFycmF5cyAyIG11c3QgYmUgcnVuIG9uIGEgbGl0dGxlLWVuZGlhbiBzeXN0
ZW0nKTsKLU1vZHVsZVsnSEVBUCddID0gSEVBUDsKLU1vZHVsZVsnSEVBUDgnXSA9IEhFQVA4Owot
TW9kdWxlWydIRUFQMTYnXSA9IEhFQVAxNjsKLU1vZHVsZVsnSEVBUDMyJ10gPSBIRUFQMzI7Ci1N
b2R1bGVbJ0hFQVBVOCddID0gSEVBUFU4OwotTW9kdWxlWydIRUFQVTE2J10gPSBIRUFQVTE2Owot
TW9kdWxlWydIRUFQVTMyJ10gPSBIRUFQVTMyOwotTW9kdWxlWydIRUFQRjMyJ10gPSBIRUFQRjMy
OwotTW9kdWxlWydIRUFQRjY0J10gPSBIRUFQRjY0OwotZnVuY3Rpb24gY2FsbFJ1bnRpbWVDYWxs
YmFja3MoY2FsbGJhY2tzKSB7Ci0gIHdoaWxlKGNhbGxiYWNrcy5sZW5ndGggPiAwKSB7Ci0gICAg
dmFyIGNhbGxiYWNrID0gY2FsbGJhY2tzLnNoaWZ0KCk7Ci0gICAgaWYgKHR5cGVvZiBjYWxsYmFj
ayA9PSAnZnVuY3Rpb24nKSB7Ci0gICAgICBjYWxsYmFjaygpOwotICAgICAgY29udGludWU7Ci0g
ICAgfQotICAgIHZhciBmdW5jID0gY2FsbGJhY2suZnVuYzsKLSAgICBpZiAodHlwZW9mIGZ1bmMg
PT09ICdudW1iZXInKSB7Ci0gICAgICBpZiAoY2FsbGJhY2suYXJnID09PSB1bmRlZmluZWQpIHsK
LSAgICAgICAgUnVudGltZS5keW5DYWxsKCd2JywgZnVuYyk7Ci0gICAgICB9IGVsc2UgewotICAg
ICAgICBSdW50aW1lLmR5bkNhbGwoJ3ZpJywgZnVuYywgW2NhbGxiYWNrLmFyZ10pOwotICAgICAg
fQotICAgIH0gZWxzZSB7Ci0gICAgICBmdW5jKGNhbGxiYWNrLmFyZyA9PT0gdW5kZWZpbmVkID8g
bnVsbCA6IGNhbGxiYWNrLmFyZyk7Ci0gICAgfQotICB9Ci19Ci12YXIgX19BVFBSRVJVTl9fICA9
IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIGJlZm9yZSB0aGUgcnVudGltZSBpcyBpbml0aWFsaXpl
ZAotdmFyIF9fQVRJTklUX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCBkdXJpbmcgc3Rh
cnR1cAotdmFyIF9fQVRNQUlOX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCB3aGVuIG1h
aW4oKSBpcyB0byBiZSBydW4KLXZhciBfX0FURVhJVF9fICAgID0gW107IC8vIGZ1bmN0aW9ucyBj
YWxsZWQgZHVyaW5nIHNodXRkb3duCi12YXIgX19BVFBPU1RSVU5fXyA9IFtdOyAvLyBmdW5jdGlv
bnMgY2FsbGVkIGFmdGVyIHRoZSBydW50aW1lIGhhcyBleGl0ZWQKLXZhciBydW50aW1lSW5pdGlh
bGl6ZWQgPSBmYWxzZTsKLWZ1bmN0aW9uIHByZVJ1bigpIHsKLSAgLy8gY29tcGF0aWJpbGl0eSAt
IG1lcmdlIGluIGFueXRoaW5nIGZyb20gTW9kdWxlWydwcmVSdW4nXSBhdCB0aGlzIHRpbWUKLSAg
aWYgKE1vZHVsZVsncHJlUnVuJ10pIHsKLSAgICBpZiAodHlwZW9mIE1vZHVsZVsncHJlUnVuJ10g
PT0gJ2Z1bmN0aW9uJykgTW9kdWxlWydwcmVSdW4nXSA9IFtNb2R1bGVbJ3ByZVJ1biddXTsKLSAg
ICB3aGlsZSAoTW9kdWxlWydwcmVSdW4nXS5sZW5ndGgpIHsKLSAgICAgIGFkZE9uUHJlUnVuKE1v
ZHVsZVsncHJlUnVuJ10uc2hpZnQoKSk7Ci0gICAgfQotICB9Ci0gIGNhbGxSdW50aW1lQ2FsbGJh
Y2tzKF9fQVRQUkVSVU5fXyk7Ci19Ci1mdW5jdGlvbiBlbnN1cmVJbml0UnVudGltZSgpIHsKLSAg
aWYgKHJ1bnRpbWVJbml0aWFsaXplZCkgcmV0dXJuOwotICBydW50aW1lSW5pdGlhbGl6ZWQgPSB0
cnVlOwotICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUSU5JVF9fKTsKLX0KLWZ1bmN0aW9uIHBy
ZU1haW4oKSB7Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRNQUlOX18pOwotfQotZnVuY3Rp
b24gZXhpdFJ1bnRpbWUoKSB7Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRFWElUX18pOwot
fQotZnVuY3Rpb24gcG9zdFJ1bigpIHsKLSAgLy8gY29tcGF0aWJpbGl0eSAtIG1lcmdlIGluIGFu
eXRoaW5nIGZyb20gTW9kdWxlWydwb3N0UnVuJ10gYXQgdGhpcyB0aW1lCi0gIGlmIChNb2R1bGVb
J3Bvc3RSdW4nXSkgewotICAgIGlmICh0eXBlb2YgTW9kdWxlWydwb3N0UnVuJ10gPT0gJ2Z1bmN0
aW9uJykgTW9kdWxlWydwb3N0UnVuJ10gPSBbTW9kdWxlWydwb3N0UnVuJ11dOwotICAgIHdoaWxl
IChNb2R1bGVbJ3Bvc3RSdW4nXS5sZW5ndGgpIHsKLSAgICAgIGFkZE9uUG9zdFJ1bihNb2R1bGVb
J3Bvc3RSdW4nXS5zaGlmdCgpKTsKLSAgICB9Ci0gIH0KLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3Mo
X19BVFBPU1RSVU5fXyk7Ci19Ci1mdW5jdGlvbiBhZGRPblByZVJ1bihjYikgewotICBfX0FUUFJF
UlVOX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uUHJlUnVuJ10gPSBNb2R1bGUuYWRk
T25QcmVSdW4gPSBhZGRPblByZVJ1bjsKLWZ1bmN0aW9uIGFkZE9uSW5pdChjYikgewotICBfX0FU
SU5JVF9fLnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPbkluaXQnXSA9IE1vZHVsZS5hZGRP
bkluaXQgPSBhZGRPbkluaXQ7Ci1mdW5jdGlvbiBhZGRPblByZU1haW4oY2IpIHsKLSAgX19BVE1B
SU5fXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25QcmVNYWluJ10gPSBNb2R1bGUuYWRk
T25QcmVNYWluID0gYWRkT25QcmVNYWluOwotZnVuY3Rpb24gYWRkT25FeGl0KGNiKSB7Ci0gIF9f
QVRFWElUX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uRXhpdCddID0gTW9kdWxlLmFk
ZE9uRXhpdCA9IGFkZE9uRXhpdDsKLWZ1bmN0aW9uIGFkZE9uUG9zdFJ1bihjYikgewotICBfX0FU
UE9TVFJVTl9fLnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPblBvc3RSdW4nXSA9IE1vZHVs
ZS5hZGRPblBvc3RSdW4gPSBhZGRPblBvc3RSdW47Ci0vLyBUb29scwotLy8gVGhpcyBwcm9jZXNz
ZXMgYSBKUyBzdHJpbmcgaW50byBhIEMtbGluZSBhcnJheSBvZiBudW1iZXJzLCAwLXRlcm1pbmF0
ZWQuCi0vLyBGb3IgTExWTS1vcmlnaW5hdGluZyBzdHJpbmdzLCBzZWUgcGFyc2VyLmpzOnBhcnNl
TExWTVN0cmluZyBmdW5jdGlvbgotZnVuY3Rpb24gaW50QXJyYXlGcm9tU3RyaW5nKHN0cmluZ3ks
IGRvbnRBZGROdWxsLCBsZW5ndGggLyogb3B0aW9uYWwgKi8pIHsKLSAgdmFyIHJldCA9IChuZXcg
UnVudGltZS5VVEY4UHJvY2Vzc29yKCkpLnByb2Nlc3NKU1N0cmluZyhzdHJpbmd5KTsKLSAgaWYg
KGxlbmd0aCkgewotICAgIHJldC5sZW5ndGggPSBsZW5ndGg7Ci0gIH0KLSAgaWYgKCFkb250QWRk
TnVsbCkgewotICAgIHJldC5wdXNoKDApOwotICB9Ci0gIHJldHVybiByZXQ7Ci19Ci1Nb2R1bGVb
J2ludEFycmF5RnJvbVN0cmluZyddID0gaW50QXJyYXlGcm9tU3RyaW5nOwotZnVuY3Rpb24gaW50
QXJyYXlUb1N0cmluZyhhcnJheSkgewotICB2YXIgcmV0ID0gW107Ci0gIGZvciAodmFyIGkgPSAw
OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKLSAgICB2YXIgY2hyID0gYXJyYXlbaV07Ci0gICAg
aWYgKGNociA+IDB4RkYpIHsKLSAgICAgIGNociAmPSAweEZGOwotICAgIH0KLSAgICByZXQucHVz
aChTdHJpbmcuZnJvbUNoYXJDb2RlKGNocikpOwotICB9Ci0gIHJldHVybiByZXQuam9pbignJyk7
Ci19Ci1Nb2R1bGVbJ2ludEFycmF5VG9TdHJpbmcnXSA9IGludEFycmF5VG9TdHJpbmc7Ci0vLyBX
cml0ZSBhIEphdmFzY3JpcHQgYXJyYXkgdG8gc29tZXdoZXJlIGluIHRoZSBoZWFwCi1mdW5jdGlv
biB3cml0ZVN0cmluZ1RvTWVtb3J5KHN0cmluZywgYnVmZmVyLCBkb250QWRkTnVsbCkgewotICB2
YXIgYXJyYXkgPSBpbnRBcnJheUZyb21TdHJpbmcoc3RyaW5nLCBkb250QWRkTnVsbCk7Ci0gIHZh
ciBpID0gMDsKLSAgd2hpbGUgKGkgPCBhcnJheS5sZW5ndGgpIHsKLSAgICB2YXIgY2hyID0gYXJy
YXlbaV07Ci0gICAgSEVBUDhbKCgoYnVmZmVyKSsoaSkpfDApXT1jaHIKLSAgICBpID0gaSArIDE7
Ci0gIH0KLX0KLU1vZHVsZVsnd3JpdGVTdHJpbmdUb01lbW9yeSddID0gd3JpdGVTdHJpbmdUb01l
bW9yeTsKLWZ1bmN0aW9uIHdyaXRlQXJyYXlUb01lbW9yeShhcnJheSwgYnVmZmVyKSB7Ci0gIGZv
ciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKLSAgICBIRUFQOFsoKChidWZm
ZXIpKyhpKSl8MCldPWFycmF5W2ldOwotICB9Ci19Ci1Nb2R1bGVbJ3dyaXRlQXJyYXlUb01lbW9y
eSddID0gd3JpdGVBcnJheVRvTWVtb3J5OwotZnVuY3Rpb24gdW5TaWduKHZhbHVlLCBiaXRzLCBp
Z25vcmUsIHNpZykgewotICBpZiAodmFsdWUgPj0gMCkgewotICAgIHJldHVybiB2YWx1ZTsKLSAg
fQotICByZXR1cm4gYml0cyA8PSAzMiA/IDIqTWF0aC5hYnMoMSA8PCAoYml0cy0xKSkgKyB2YWx1
ZSAvLyBOZWVkIHNvbWUgdHJpY2tlcnksIHNpbmNlIGlmIGJpdHMgPT0gMzIsIHdlIGFyZSByaWdo
dCBhdCB0aGUgbGltaXQgb2YgdGhlIGJpdHMgSlMgdXNlcyBpbiBiaXRzaGlmdHMKLSAgICAgICAg
ICAgICAgICAgICAgOiBNYXRoLnBvdygyLCBiaXRzKSAgICAgICAgICsgdmFsdWU7Ci19Ci1mdW5j
dGlvbiByZVNpZ24odmFsdWUsIGJpdHMsIGlnbm9yZSwgc2lnKSB7Ci0gIGlmICh2YWx1ZSA8PSAw
KSB7Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9Ci0gIHZhciBoYWxmID0gYml0cyA8PSAzMiA/IE1h
dGguYWJzKDEgPDwgKGJpdHMtMSkpIC8vIGFicyBpcyBuZWVkZWQgaWYgYml0cyA9PSAzMgotICAg
ICAgICAgICAgICAgICAgICAgICAgOiBNYXRoLnBvdygyLCBiaXRzLTEpOwotICBpZiAodmFsdWUg
Pj0gaGFsZiAmJiAoYml0cyA8PSAzMiB8fCB2YWx1ZSA+IGhhbGYpKSB7IC8vIGZvciBodWdlIHZh
bHVlcywgd2UgY2FuIGhpdCB0aGUgcHJlY2lzaW9uIGxpbWl0IGFuZCBhbHdheXMgZ2V0IHRydWUg
aGVyZS4gc28gZG9uJ3QgZG8gdGhhdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCwgaW4gZ2VuZXJhbCB0aGVyZSBpcyBubyBwZXJm
ZWN0IHNvbHV0aW9uIGhlcmUuIFdpdGggNjQtYml0IGludHMsIHdlIGdldCByb3VuZGluZyBhbmQg
ZXJyb3JzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gVE9ETzogSW4gaTY0IG1vZGUgMSwgcmVzaWduIHRoZSB0d28gcGFydHMgc2VwYXJh
dGVseSBhbmQgc2FmZWx5Ci0gICAgdmFsdWUgPSAtMipoYWxmICsgdmFsdWU7IC8vIENhbm5vdCBi
aXRzaGlmdCBoYWxmLCBhcyBpdCBtYXkgYmUgYXQgdGhlIGxpbWl0IG9mIHRoZSBiaXRzIEpTIHVz
ZXMgaW4gYml0c2hpZnRzCi0gIH0KLSAgcmV0dXJuIHZhbHVlOwotfQotaWYgKCFNYXRoWydpbXVs
J10pIE1hdGhbJ2ltdWwnXSA9IGZ1bmN0aW9uKGEsIGIpIHsKLSAgdmFyIGFoICA9IGEgPj4+IDE2
OwotICB2YXIgYWwgPSBhICYgMHhmZmZmOwotICB2YXIgYmggID0gYiA+Pj4gMTY7Ci0gIHZhciBi
bCA9IGIgJiAweGZmZmY7Ci0gIHJldHVybiAoYWwqYmwgKyAoKGFoKmJsICsgYWwqYmgpIDw8IDE2
KSl8MDsKLX07Ci1NYXRoLmltdWwgPSBNYXRoWydpbXVsJ107Ci0vLyBBIGNvdW50ZXIgb2YgZGVw
ZW5kZW5jaWVzIGZvciBjYWxsaW5nIHJ1bigpLiBJZiB3ZSBuZWVkIHRvCi0vLyBkbyBhc3luY2hy
b25vdXMgd29yayBiZWZvcmUgcnVubmluZywgaW5jcmVtZW50IHRoaXMgYW5kCi0vLyBkZWNyZW1l
bnQgaXQuIEluY3JlbWVudGluZyBtdXN0IGhhcHBlbiBpbiBhIHBsYWNlIGxpa2UKLS8vIFBSRV9S
VU5fQURESVRJT05TICh1c2VkIGJ5IGVtY2MgdG8gYWRkIGZpbGUgcHJlbG9hZGluZykuCi0vLyBO
b3RlIHRoYXQgeW91IGNhbiBhZGQgZGVwZW5kZW5jaWVzIGluIHByZVJ1biwgZXZlbiB0aG91Z2gK
LS8vIGl0IGhhcHBlbnMgcmlnaHQgYmVmb3JlIHJ1biAtIHJ1biB3aWxsIGJlIHBvc3Rwb25lZCB1
bnRpbAotLy8gdGhlIGRlcGVuZGVuY2llcyBhcmUgbWV0LgotdmFyIHJ1bkRlcGVuZGVuY2llcyA9
IDA7Ci12YXIgcnVuRGVwZW5kZW5jeVRyYWNraW5nID0ge307Ci12YXIgY2FsbGVkSW5pdCA9IGZh
bHNlLCBjYWxsZWRSdW4gPSBmYWxzZTsKLXZhciBydW5EZXBlbmRlbmN5V2F0Y2hlciA9IG51bGw7
Ci1mdW5jdGlvbiBhZGRSdW5EZXBlbmRlbmN5KGlkKSB7Ci0gIHJ1bkRlcGVuZGVuY2llcysrOwot
ICBpZiAoTW9kdWxlWydtb25pdG9yUnVuRGVwZW5kZW5jaWVzJ10pIHsKLSAgICBNb2R1bGVbJ21v
bml0b3JSdW5EZXBlbmRlbmNpZXMnXShydW5EZXBlbmRlbmNpZXMpOwotICB9Ci0gIGlmIChpZCkg
ewotICAgIGFzc2VydCghcnVuRGVwZW5kZW5jeVRyYWNraW5nW2lkXSk7Ci0gICAgcnVuRGVwZW5k
ZW5jeVRyYWNraW5nW2lkXSA9IDE7Ci0gIH0gZWxzZSB7Ci0gICAgTW9kdWxlLnByaW50RXJyKCd3
YXJuaW5nOiBydW4gZGVwZW5kZW5jeSBhZGRlZCB3aXRob3V0IElEJyk7Ci0gIH0KLX0KLU1vZHVs
ZVsnYWRkUnVuRGVwZW5kZW5jeSddID0gYWRkUnVuRGVwZW5kZW5jeTsKLWZ1bmN0aW9uIHJlbW92
ZVJ1bkRlcGVuZGVuY3koaWQpIHsKLSAgcnVuRGVwZW5kZW5jaWVzLS07Ci0gIGlmIChNb2R1bGVb
J21vbml0b3JSdW5EZXBlbmRlbmNpZXMnXSkgewotICAgIE1vZHVsZVsnbW9uaXRvclJ1bkRlcGVu
ZGVuY2llcyddKHJ1bkRlcGVuZGVuY2llcyk7Ci0gIH0KLSAgaWYgKGlkKSB7Ci0gICAgYXNzZXJ0
KHJ1bkRlcGVuZGVuY3lUcmFja2luZ1tpZF0pOwotICAgIGRlbGV0ZSBydW5EZXBlbmRlbmN5VHJh
Y2tpbmdbaWRdOwotICB9IGVsc2UgewotICAgIE1vZHVsZS5wcmludEVycignd2FybmluZzogcnVu
IGRlcGVuZGVuY3kgcmVtb3ZlZCB3aXRob3V0IElEJyk7Ci0gIH0KLSAgaWYgKHJ1bkRlcGVuZGVu
Y2llcyA9PSAwKSB7Ci0gICAgaWYgKHJ1bkRlcGVuZGVuY3lXYXRjaGVyICE9PSBudWxsKSB7Ci0g
ICAgICBjbGVhckludGVydmFsKHJ1bkRlcGVuZGVuY3lXYXRjaGVyKTsKLSAgICAgIHJ1bkRlcGVu
ZGVuY3lXYXRjaGVyID0gbnVsbDsKLSAgICB9IAotICAgIC8vIElmIHJ1biBoYXMgbmV2ZXIgYmVl
biBjYWxsZWQsIGFuZCB3ZSBzaG91bGQgY2FsbCBydW4gKElOVk9LRV9SVU4gaXMgdHJ1ZSwgYW5k
IE1vZHVsZS5ub0luaXRpYWxSdW4gaXMgbm90IGZhbHNlKQotICAgIGlmICghY2FsbGVkUnVuICYm
IHNob3VsZFJ1bk5vdykgcnVuKCk7Ci0gIH0KLX0KLU1vZHVsZVsncmVtb3ZlUnVuRGVwZW5kZW5j
eSddID0gcmVtb3ZlUnVuRGVwZW5kZW5jeTsKLU1vZHVsZVsicHJlbG9hZGVkSW1hZ2VzIl0gPSB7
fTsgLy8gbWFwcyB1cmwgdG8gaW1hZ2UgZGF0YQotTW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXSA9
IHt9OyAvLyBtYXBzIHVybCB0byBhdWRpbyBkYXRhCi1mdW5jdGlvbiBsb2FkTWVtb3J5SW5pdGlh
bGl6ZXIoZmlsZW5hbWUpIHsKLSAgZnVuY3Rpb24gYXBwbHlEYXRhKGRhdGEpIHsKLSAgICBIRUFQ
VTguc2V0KGRhdGEsIFNUQVRJQ19CQVNFKTsKLSAgfQotICAvLyBhbHdheXMgZG8gdGhpcyBhc3lu
Y2hyb25vdXNseSwgdG8ga2VlcCBzaGVsbCBhbmQgd2ViIGFzIHNpbWlsYXIgYXMgcG9zc2libGUK
LSAgYWRkT25QcmVSdW4oZnVuY3Rpb24oKSB7Ci0gICAgaWYgKEVOVklST05NRU5UX0lTX05PREUg
fHwgRU5WSVJPTk1FTlRfSVNfU0hFTEwpIHsKLSAgICAgIGFwcGx5RGF0YShNb2R1bGVbJ3JlYWRC
aW5hcnknXShmaWxlbmFtZSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICBCcm93c2VyLmFzeW5jTG9h
ZChmaWxlbmFtZSwgZnVuY3Rpb24oZGF0YSkgewotICAgICAgICBhcHBseURhdGEoZGF0YSk7Ci0g
ICAgICB9LCBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIHRocm93ICdjb3VsZCBub3QgbG9hZCBt
ZW1vcnkgaW5pdGlhbGl6ZXIgJyArIGZpbGVuYW1lOwotICAgICAgfSk7Ci0gICAgfQotICB9KTsK
LX0KLS8vID09PSBCb2R5ID09PQotU1RBVElDX0JBU0UgPSA4OwotU1RBVElDVE9QID0gU1RBVElD
X0JBU0UgKyAxNjM5MjsKLXZhciBfc3Rkb3V0OwotdmFyIF9zdGRpbjsKLXZhciBfc3RkZXJyOwot
LyogZ2xvYmFsIGluaXRpYWxpemVycyAqLyBfX0FUSU5JVF9fLnB1c2goeyBmdW5jOiBmdW5jdGlv
bigpIHsgcnVuUG9zdFNldHMoKSB9IH0seyBmdW5jOiBmdW5jdGlvbigpIHsgX19HTE9CQUxfX0lf
YSgpIH0gfSx7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBfX0dMT0JBTF9fSV9hOCgpIH0gfSk7Ci12YXIg
X19fZnNtdTg7Ci12YXIgX19fZHNvX2hhbmRsZTsKLXZhciBfX1pUVk4xMF9fY3h4YWJpdjEyMF9f
c2lfY2xhc3NfdHlwZV9pbmZvRTsKLXZhciBfX1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlw
ZV9pbmZvRTsKLXZhciBfX1pOU3QzX18xMTJfX3JzX2RlZmF1bHREMUV2OwotdmFyIF9fWk5TdDEz
cnVudGltZV9lcnJvckMxRVBLYzsKLXZhciBfX1pOU3QxM3J1bnRpbWVfZXJyb3JEMUV2OwotdmFy
IF9fWk5TdDEybGVuZ3RoX2Vycm9yRDFFdjsKLXZhciBfX1pOU3QzX18xNmxvY2FsZUMxRXY7Ci12
YXIgX19aTlN0M19fMTZsb2NhbGVDMUVSS1MwXzsKLXZhciBfX1pOU3QzX18xNmxvY2FsZUQxRXY7
Ci12YXIgX19aTlN0OGJhZF9jYXN0QzFFdjsKLXZhciBfX1pOU3Q4YmFkX2Nhc3REMUV2OwotdmFy
IF9zdGRvdXQgPSBfc3Rkb3V0PWFsbG9jYXRlKFswLDAsMCwwLDAsMCwwLDBdLCAiaTgiLCBBTExP
Q19TVEFUSUMpOwotdmFyIF9zdGRpbiA9IF9zdGRpbj1hbGxvY2F0ZShbMCwwLDAsMCwwLDAsMCww
XSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLXZhciBfc3RkZXJyID0gX3N0ZGVycj1hbGxvY2F0ZShb
MCwwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLV9fWlRWTjEwX19jeHhhYml2
MTIwX19zaV9jbGFzc190eXBlX2luZm9FPWFsbG9jYXRlKFswLDAsMCwwLDIwMCwzNywwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci1fX1pUVk4xMF9fY3h4
YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRT1hbGxvY2F0ZShbMCwwLDAsMCwyMTYsMzcsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOwotLyogbWVtb3J5IGlu
aXRpYWxpemVyICovIGFsbG9jYXRlKFswLDAsMCwwLDAsMCwzNiw2NCwwLDAsMCwwLDAsMCw4OSw2
NCwwLDAsMCwwLDAsMTM2LDE5NSw2NCwwLDAsMCwwLDEzMiwyMTUsMTUxLDY1LDAsMTI4LDIyNCw1
NSwxMjEsMTk1LDY1LDY3LDIzLDExMCw1LDE4MSwxODEsMTg0LDE0Nyw3MCwyNDUsMjQ5LDYzLDIz
MywzLDc5LDU2LDc3LDUwLDI5LDQ4LDI0OSw3MiwxMTksMTMwLDkwLDYwLDE5MSwxMTUsMTI3LDIy
MSw3OSwyMSwxMTcsNzQsMTE3LDEwOCwwLDAsMCwwLDAsNzQsMTE3LDExMCwwLDAsMCwwLDAsNjUs
MTEyLDExNCwwLDAsMCwwLDAsNzcsOTcsMTE0LDAsMCwwLDAsMCw3MCwxMDEsOTgsMCwwLDAsMCww
LDc0LDk3LDExMCwwLDAsMCwwLDAsNjgsMTAxLDk5LDEwMSwxMDksOTgsMTAxLDExNCwwLDAsMCww
LDAsMCwwLDAsNzgsMTExLDExOCwxMDEsMTA5LDk4LDEwMSwxMTQsMCwwLDAsMCwwLDAsMCwwLDc5
LDk5LDExNiwxMTEsOTgsMTAxLDExNCwwLDgzLDEwMSwxMTIsMTE2LDEwMSwxMDksOTgsMTAxLDEx
NCwwLDAsMCwwLDAsMCwwLDExNywxMTAsMTE1LDExNywxMTIsMTEyLDExMSwxMTQsMTE2LDEwMSwx
MDAsMzIsMTA4LDExMSw5OSw5NywxMDgsMTAxLDMyLDEwMiwxMTEsMTE0LDMyLDExNSwxMTYsOTcs
MTEwLDEwMCw5NywxMTQsMTAwLDMyLDEwNSwxMTAsMTEyLDExNywxMTYsMCwwLDAsNjUsMTE3LDEw
MywxMTcsMTE1LDExNiwwLDAsNzQsMTE3LDEwOCwxMjEsMCwwLDAsMCw3NCwxMTcsMTEwLDEwMSww
LDAsMCwwLDc3LDk3LDEyMSwwLDAsMCwwLDAsNjUsMTEyLDExNCwxMDUsMTA4LDAsMCwwLDc3LDk3
LDExNCw5OSwxMDQsMCwwLDAsNzAsMTAxLDk4LDExNCwxMTcsOTcsMTE0LDEyMSwwLDAsMCwwLDAs
MCwwLDAsNzQsOTcsMTEwLDExNyw5NywxMTQsMTIxLDAsNjgsMCwwLDAsMTAxLDAsMCwwLDk5LDAs
MCwwLDAsMCwwLDAsNzgsMCwwLDAsMTExLDAsMCwwLDExOCwwLDAsMCwwLDAsMCwwLDc5LDAsMCww
LDk5LDAsMCwwLDExNiwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDEwMSwwLDAsMCwxMTIsMCwwLDAs
MCwwLDAsMCw5OCw5NywxMTUsMTA1LDk5LDk1LDExNSwxMTYsMTE0LDEwNSwxMTAsMTAzLDAsMCww
LDAsNjUsMCwwLDAsMTE3LDAsMCwwLDEwMywwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNywwLDAs
MCwxMDgsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCwxMTcsMCwwLDAsMTEwLDAsMCwwLDAsMCwwLDAs
NzcsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAsMTEyLDAsMCwwLDEx
NCwwLDAsMCwwLDAsMCwwLDc3LDAsMCwwLDk3LDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDcwLDAs
MCwwLDEwMSwwLDAsMCw5OCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDk3LDAsMCwwLDExMCwwLDAs
MCwwLDAsMCwwLDY4LDAsMCwwLDEwMSwwLDAsMCw5OSwwLDAsMCwxMDEsMCwwLDAsMTA5LDAsMCww
LDk4LDAsMCwwLDEwMSwwLDAsMCwxMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc4LDAsMCwwLDEx
MSwwLDAsMCwxMTgsMCwwLDAsMTAxLDAsMCwwLDEwOSwwLDAsMCw5OCwwLDAsMCwxMDEsMCwwLDAs
MTE0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3OSwwLDAsMCw5OSwwLDAsMCwxMTYsMCwwLDAsMTEx
LDAsMCwwLDk4LDAsMCwwLDEwMSwwLDAsMCwxMTQsMCwwLDAsMCwwLDAsMCw4MywwLDAsMCwxMDEs
MCwwLDAsMTEyLDAsMCwwLDExNiwwLDAsMCwxMDEsMCwwLDAsMTA5LDAsMCwwLDk4LDAsMCwwLDEw
MSwwLDAsMCwxMTQsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCwxMTcsMCwwLDAsMTAzLDAsMCwwLDEx
NywwLDAsMCwxMTUsMCwwLDAsMTE2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCwxMTcs
MCwwLDAsMTA4LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsMTE3LDAs
MCwwLDExMCwwLDAsMCwxMDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY1LDAsMCwwLDExMiwwLDAs
MCwxMTQsMCwwLDAsMTA1LDAsMCwwLDEwOCwwLDAsMCwwLDAsMCwwLDc3LDAsMCwwLDk3LDAsMCww
LDExNCwwLDAsMCw5OSwwLDAsMCwxMDQsMCwwLDAsMCwwLDAsMCw3MCwwLDAsMCwxMDEsMCwwLDAs
OTgsMCwwLDAsMTE0LDAsMCwwLDExNywwLDAsMCw5NywwLDAsMCwxMTQsMCwwLDAsMTIxLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCw5NywwLDAsMCwxMTAsMCwwLDAsMTE3LDAsMCwwLDk3
LDAsMCwwLDExNCwwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw4MCw3NywwLDAsMCwwLDAsMCw2NSw3
NywwLDAsMCwwLDAsMCw4MCwwLDAsMCw3NywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAs
NzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEwOCwxMTEsOTksOTcsMTA4LDEwMSwzMiwxMTAsMTEx
LDExNiwzMiwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCwwLDAsMCwwLDM3LDAs
MCwwLDczLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4LDAsMCwwLDM3LDAsMCww
LDgzLDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDExMiwwLDAsMCwwLDAsMCwwLDM3LDczLDU4LDM3
LDc3LDU4LDM3LDgzLDMyLDM3LDExMiwwLDAsMCwwLDAsMzcsMCwwLDAsOTcsMCwwLDAsMzIsMCww
LDAsMzcsMCwwLDAsOTgsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsMTAwLDAsMCwwLDMyLDAsMCww
LDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4LDAsMCwwLDM3
LDAsMCwwLDgzLDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDg5LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwzNyw5NywzMiwzNyw5OCwzMiwzNywxMDAsMzIsMzcsNzIsNTgsMzcsNzcsNTgsMzcsODMsMzIs
MzcsODksMCwwLDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAs
MCw1OCwwLDAsMCwzNywwLDAsMCw4MywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzcsNzIsNTgsMzcs
NzcsNTgsMzcsODMsMCwwLDAsMCwwLDAsMCwwLDExNSwxMTYsMTAwLDU4LDU4LDk4LDk3LDEwMCw5
NSw5NywxMDgsMTA4LDExMSw5OSwwLDAsMzcsMCwwLDAsMTA5LDAsMCwwLDQ3LDAsMCwwLDM3LDAs
MCwwLDEwMCwwLDAsMCw0NywwLDAsMCwzNywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDM3LDEwOSw0NywzNywxMDAsNDcsMzcsMTIxLDAsMCwwLDAsMCwwLDAsMCwxMDIsMCwwLDAsOTcs
MCwwLDAsMTA4LDAsMCwwLDExNSwwLDAsMCwxMDEsMCwwLDAsMCwwLDAsMCwxMDIsOTcsMTA4LDEx
NSwxMDEsMCwwLDAsMTE2LDAsMCwwLDExNCwwLDAsMCwxMTcsMCwwLDAsMTAxLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwxMTYsMTE0LDExNywxMDEsMCwwLDAsMCw1OCwzMiwwLDAsMCwwLDAsMCwxMDUs
MTExLDExNSw5NSw5OCw5NywxMTUsMTAxLDU4LDU4LDk5LDEwOCwxMDEsOTcsMTE0LDAsMzcsMTEy
LDAsMCwwLDAsMCwwLDExNSwxMTYsMTAwLDU4LDU4LDk4LDk3LDEwMCw5NSw5OSw5NywxMTUsMTE2
LDAsMCwwLDY3LDAsMCwwLDAsMCwwLDAsMTE4LDEwMSw5OSwxMTYsMTExLDExNCwwLDAsMzcsNDYs
NDgsNzYsMTAyLDAsMCwwLDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTAzLDEwMSwxMTYsMzIsMTAx
LDExNCwxMTQsMTExLDExNCwwLDgzLDk3LDExNiwwLDAsMCwwLDAsNzAsMTE0LDEwNSwwLDAsMCww
LDAsODQsMTA0LDExNywwLDAsMCwwLDAsMzcsNzYsMTAyLDAsMCwwLDAsMCwxMDUsMTExLDExNSwx
MTYsMTE0LDEwMSw5NywxMDksMCwwLDAsMCwwLDAsMCwwLDg3LDEwMSwxMDAsMCwwLDAsMCwwLDg0
LDExNywxMDEsMCwwLDAsMCwwLDc3LDExMSwxMTAsMCwwLDAsMCwwLDgzLDExNywxMTAsMCwwLDAs
MCwwLDgzLDk3LDExNiwxMTcsMTE0LDEwMCw5NywxMjEsMCwwLDAsMCwwLDAsMCwwLDcwLDExNCwx
MDUsMTAwLDk3LDEyMSwwLDAsODQsMTA0LDExNywxMTQsMTE1LDEwMCw5NywxMjEsMCwwLDAsMCww
LDAsMCwwLDg3LDEwMSwxMDAsMTEwLDEwMSwxMTUsMTAwLDk3LDEyMSwwLDAsMCwwLDAsMCwwLDg0
LDExNywxMDEsMTE1LDEwMCw5NywxMjEsMCw3NywxMTEsMTEwLDEwMCw5NywxMjEsMCwwLDgzLDEx
NywxMTAsMTAwLDk3LDEyMSwwLDAsODMsMCwwLDAsOTcsMCwwLDAsMTE2LDAsMCwwLDAsMCwwLDAs
NzAsMCwwLDAsMTE0LDAsMCwwLDEwNSwwLDAsMCwwLDAsMCwwLDg0LDAsMCwwLDEwNCwwLDAsMCwx
MTcsMCwwLDAsMCwwLDAsMCw4NywwLDAsMCwxMDEsMCwwLDAsMTAwLDAsMCwwLDAsMCwwLDAsODQs
MCwwLDAsMTE3LDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDc3LDAsMCwwLDExMSwwLDAsMCwxMTAs
MCwwLDAsMCwwLDAsMCwxMTcsMTEwLDExNSwxMTIsMTAxLDk5LDEwNSwxMDIsMTA1LDEwMSwxMDAs
MzIsMTA1LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk1LDk5LDk3LDExNiwxMDEsMTAzLDEx
MSwxMTQsMTIxLDMyLDEwMSwxMTQsMTE0LDExMSwxMTQsMCwwLDAsMCwwLDgzLDAsMCwwLDExNyww
LDAsMCwxMTAsMCwwLDAsMCwwLDAsMCw4MywwLDAsMCw5NywwLDAsMCwxMTYsMCwwLDAsMTE3LDAs
MCwwLDExNCwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCw3MCwwLDAsMCwxMTQsMCwwLDAsMTA1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDg0LDAsMCwwLDEwNCwwLDAsMCwxMTcsMCwwLDAsMTE0LDAsMCww
LDExNSwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4
NywwLDAsMCwxMDEsMCwwLDAsMTAwLDAsMCwwLDExMCwwLDAsMCwxMDEsMCwwLDAsMTE1LDAsMCww
LDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw4NCwwLDAsMCwxMTcsMCwwLDAs
MTAxLDAsMCwwLDExNSwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAs
NzcsMCwwLDAsMTExLDAsMCwwLDExMCwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCw4MywwLDAsMCwxMTcsMCwwLDAsMTEwLDAsMCwwLDEwMCwwLDAsMCw5
NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY4LDEwMSw5OSwwLDAsMCwwLDAsNzgs
MTExLDExOCwwLDAsMCwwLDAsNzksOTksMTE2LDAsMCwwLDAsMCw4MywxMDEsMTEyLDAsMCwwLDAs
MCw2NSwxMTcsMTAzLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDAsMCwwLDAs
MCwwLDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDAsMCwwLDAsMCwwLDM3LDAsMCwwLDg5
LDAsMCwwLDQ1LDAsMCwwLDM3LDAsMCwwLDEwOSwwLDAsMCw0NSwwLDAsMCwzNywwLDAsMCwxMDAs
MCwwLDAsMzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCww
LDAsMzcsMCwwLDAsODMsMCwwLDAsMzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAs
NzcsMCwwLDAsMCwwLDAsMCwzNywwLDAsMCw3MywwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3Nyww
LDAsMCw1OCwwLDAsMCwzNywwLDAsMCw4MywwLDAsMCwzMiwwLDAsMCwzNywwLDAsMCwxMTIsMCww
LDAsMCwwLDAsMCwzNywwLDAsMCwxMDksMCwwLDAsNDcsMCwwLDAsMzcsMCwwLDAsMTAwLDAsMCww
LDQ3LDAsMCwwLDM3LDAsMCwwLDEyMSwwLDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwz
NywwLDAsMCw3NywwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw4MywwLDAsMCwzNyw3Miw1OCwzNyw3
Nyw1OCwzNyw4MywzNyw3Miw1OCwzNyw3NywwLDAsMCwzNyw3Myw1OCwzNyw3Nyw1OCwzNyw4Mywz
MiwzNywxMTIsMCwwLDAsMCwwLDM3LDg5LDQ1LDM3LDEwOSw0NSwzNywxMDAsMzcsMTA5LDQ3LDM3
LDEwMCw0NywzNywxMjEsMzcsNzIsNTgsMzcsNzcsNTgsMzcsODMsMzcsMCwwLDAsMCwwLDAsMCwz
NywxMTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMjQsMzEsMCwwLDMwLDAsMCwwLDExNiwwLDAsMCw5
OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0MCwzMSwwLDAsMTk2LDAs
MCwwLDE2NCwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MzIsMCwwLDcwLDAsMCwwLDYsMSwwLDAsMzgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwxNiwzMiwwLDAsOTQsMCwwLDAsOCwwLDAsMCwxMTAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwzMiwzMiwwLDAsOTQsMCwwLDAsMjAsMCwwLDAsMTEwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNTYsMzIsMCwwLDE2OCwwLDAsMCw4NCww
LDAsMCw0OCwwLDAsMCwyLDAsMCwwLDgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCw4OCwzMiwwLDAsMjMwLDAsMCwwLDE4NiwwLDAsMCw0OCwwLDAsMCw0LDAsMCwwLDE0LDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTIwLDMyLDAsMCwxNjIsMCwwLDAs
MTg4LDAsMCwwLDQ4LDAsMCwwLDgsMCwwLDAsMTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwxNTIsMzIsMCwwLDI1NCwwLDAsMCwxNDAsMCwwLDAsNDgsMCwwLDAsNiwwLDAs
MCwxMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDU2LDMzLDAsMCwyNTIs
MCwwLDAsMTYsMCwwLDAsNDgsMCwwLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4
OCwzMywwLDAsMTYwLDAsMCwwLDEwOCwwLDAsMCw0OCwwLDAsMCw0LDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDEyMCwzMywwLDAsMzgsMCwwLDAsMTEwLDAsMCwwLDQ4LDAsMCwwLDEyMCww
LDAsMCw0LDAsMCwwLDMyLDAsMCwwLDYsMCwwLDAsMjAsMCwwLDAsNTYsMCwwLDAsMiwwLDAsMCwy
NDgsMjU1LDI1NSwyNTUsMTIwLDMzLDAsMCwyMiwwLDAsMCw4LDAsMCwwLDMyLDAsMCwwLDEyLDAs
MCwwLDIsMCwwLDAsMzAsMCwwLDAsMTI0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMTYwLDMzLDAsMCwyNDIsMCwwLDAsMjIyLDAsMCwwLDQ4LDAsMCwwLDIwLDAsMCwwLDE2
LDAsMCwwLDYwLDAsMCwwLDI2LDAsMCwwLDE4LDAsMCwwLDIsMCwwLDAsNCwwLDAsMCwyNDgsMjU1
LDI1NSwyNTUsMTYwLDMzLDAsMCw3MCwwLDAsMCwxMDQsMCwwLDAsMTE2LDAsMCwwLDEyMiwwLDAs
MCw2NCwwLDAsMCw0NCwwLDAsMCw1NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDIwMCwzMywwLDAsNzgsMCwwLDAsMTkwLDAsMCwwLDQ4LDAsMCwwLDQ4LDAsMCwwLDQwLDAs
MCwwLDgsMCwwLDAsMzgsMCwwLDAsNDgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjE2
LDMzLDAsMCw1OCwwLDAsMCw2NCwwLDAsMCw0OCwwLDAsMCw0MiwwLDAsMCw4NCwwLDAsMCwxMiww
LDAsMCw1NCwwLDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIzMiwzMywwLDAs
MjQ2LDAsMCwwLDIsMCwwLDAsNDgsMCwwLDAsMjQsMCwwLDAsMzAsMCwwLDAsNjQsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsOCwzNCwwLDAsNDYsMCwwLDAsMjA4LDAsMCwwLDQ4LDAsMCww
LDM2LDAsMCwwLDE0LDAsMCwwLDE0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQwLDM0
LDAsMCwyMTAsMCwwLDAsMTEyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQ4LDM0LDAs
MCwyOCwwLDAsMCwxMzgsMCwwLDAsMzgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCw2NCwzNCwwLDAsNiwwLDAsMCwxNzQsMCwwLDAsNDgsMCwwLDAsOCwwLDAsMCw2LDAsMCww
LDEyLDAsMCwwLDQsMCwwLDAsMTAsMCwwLDAsNCwwLDAsMCwyLDAsMCwwLDEyLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsOTYsMzQsMCwwLDk4LDAsMCwwLDE4LDAsMCwwLDQ4
LDAsMCwwLDIwLDAsMCwwLDI0LDAsMCwwLDM0LDAsMCwwLDIyLDAsMCwwLDIyLDAsMCwwLDgsMCww
LDAsNiwwLDAsMCwxOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyOCwz
NCwwLDAsNDAsMCwwLDAsMjQsMCwwLDAsNDgsMCwwLDAsNDgsMCwwLDAsNDYsMCwwLDAsMzgsMCww
LDAsNDAsMCwwLDAsMzAsMCwwLDAsNDQsMCwwLDAsMzYsMCwwLDAsNTQsMCwwLDAsNTIsMCwwLDAs
NTAsMCwwLDAsMjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYwLDM0LDAsMCw1Miww
LDAsMCw0LDAsMCwwLDQ4LDAsMCwwLDc2LDAsMCwwLDcwLDAsMCwwLDY0LDAsMCwwLDY2LDAsMCww
LDU4LDAsMCwwLDY4LDAsMCwwLDYyLDAsMCwwLDI4LDAsMCwwLDc0LDAsMCwwLDcyLDAsMCwwLDQy
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE5MiwzNCwwLDAsNzQsMCwwLDAsOTIsMCww
LDAsNDgsMCwwLDAsMTYsMCwwLDAsMTIsMCwwLDAsMTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMjA4LDM0LDAsMCwyNiwwLDAsMCwxNzYsMCwwLDAsNDgsMCwwLDAsMjIsMCwwLDAsMTQs
MCwwLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMjQsMzQsMCwwLDIyOCwwLDAs
MCwxMzAsMCwwLDAsNDgsMCwwLDAsMTQsMCwwLDAsNCwwLDAsMCwyMCwwLDAsMCwxNiwwLDAsMCw2
MiwwLDAsMCw0LDAsMCwwLDc2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzUsMCww
LDE4MCwwLDAsMCw2MCwwLDAsMCw0OCwwLDAsMCwyLDAsMCwwLDgsMCwwLDAsOCwwLDAsMCwxMDYs
MCwwLDAsOTYsMCwwLDAsMTgsMCwwLDAsOTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MzIsMzUsMCwwLDE4MCwwLDAsMCwxMzIsMCwwLDAsNDgsMCwwLDAsMTYsMCwwLDAsNiwwLDAsMCwy
LDAsMCwwLDEyNiwwLDAsMCw0NiwwLDAsMCwxMiwwLDAsMCwxOCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCw2NCwzNSwwLDAsMTgwLDAsMCwwLDE1MiwwLDAsMCw0OCwwLDAsMCwxMCwwLDAs
MCwxMiwwLDAsMCwyNCwwLDAsMCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2LDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDk2LDM1LDAsMCwxODAsMCwwLDAsMzQsMCwwLDAsNDgsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMTIsMzUsMCwwLDU2LDAsMCwwLDE1
NiwwLDAsMCw0OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyOCwzNSww
LDAsMTgwLDAsMCwwLDgwLDAsMCwwLDQ4LDAsMCwwLDIwLDAsMCwwLDIsMCwwLDAsNCwwLDAsMCwx
MCwwLDAsMCwxNiwwLDAsMCwyOCwwLDAsMCwyMiwwLDAsMCw2LDAsMCwwLDYsMCwwLDAsOCwwLDAs
MCwxMCwwLDAsMCwxMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2MCwz
NSwwLDAsNCwxLDAsMCwzNiwwLDAsMCw0OCwwLDAsMCwyLDAsMCwwLDQsMCwwLDAsMTgsMCwwLDAs
MzQsMCwwLDAsOCwwLDAsMCw2LDAsMCwwLDI2LDAsMCwwLDE0LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMjA4LDM1LDAsMCw2NiwwLDAsMCwyMTgsMCwwLDAsNzgsMCwwLDAs
MiwwLDAsMCwxNCwwLDAsMCwzMiwwLDAsMCw0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMjI0LDM1LDAsMCwxODAsMCwwLDAsODYsMCwwLDAsNDgsMCwwLDAsMTAsMCwwLDAs
MTIsMCwwLDAsMjQsMCwwLDAsMzQsMCwwLDAsNzQsMCwwLDAsNiwwLDAsMCw2NiwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwyNDAsMzUsMCwwLDE4MCwwLDAsMCwyMzgsMCwwLDAsNDgsMCww
LDAsMTAsMCwwLDAsMTIsMCwwLDAsMjQsMCwwLDAsMzQsMCwwLDAsNzQsMCwwLDAsNiwwLDAsMCw2
NiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM2LDAsMCwxMjYsMCwwLDAsMjM0LDAs
MCwwLDE2LDAsMCwwLDIyLDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDg4LDAsMCwwLDEwMCwwLDAs
MCwzMCwwLDAsMCwyOCwwLDAsMCwyNiwwLDAsMCwyOCwwLDAsMCw0MCwwLDAsMCwyMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4LDM2LDAsMCwxMCwwLDAsMCwxMTgsMCwwLDAsNTgsMCww
LDAsMzgsMCwwLDAsMjgsMCwwLDAsNiwwLDAsMCw1MCwwLDAsMCw4NiwwLDAsMCwxOCwwLDAsMCw2
LDAsMCwwLDEwLDAsMCwwLDI0LDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDE2LDM2LDAsMCwxMDAsMCwwLDAsMTk0LDAsMCwwLDIsMCwwLDAsMiwwLDAsMCwx
NCwwLDAsMCwzMiwwLDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQsMCwwLDAs
MCwwLDAsMCw1NiwzNiwwLDAsNDQsMCwwLDAsMjA2LDAsMCwwLDI1MiwyNTUsMjU1LDI1NSwyNTIs
MjU1LDI1NSwyNTUsNTYsMzYsMCwwLDE0NiwwLDAsMCwxMjQsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDQsMCwwLDAsMCwwLDAsMCw4MCwzNiwwLDAsMjEyLDAsMCwwLDIzNiwwLDAsMCwyNTIsMjU1LDI1
NSwyNTUsMjUyLDI1NSwyNTUsMjU1LDgwLDM2LDAsMCwxMDYsMCwwLDAsMjAwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCw4LDAsMCwwLDAsMCwwLDAsMTA0LDM2LDAsMCw4OCwwLDAsMCw4LDEsMCwwLDI0
OCwyNTUsMjU1LDI1NSwyNDgsMjU1LDI1NSwyNTUsMTA0LDM2LDAsMCwxODIsMCwwLDAsMjMyLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCw4LDAsMCwwLDAsMCwwLDAsMTI4LDM2LDAsMCwxMDQsMCwwLDAs
MjA0LDAsMCwwLDI0OCwyNTUsMjU1LDI1NSwyNDgsMjU1LDI1NSwyNTUsMTI4LDM2LDAsMCwxMzYs
MCwwLDAsNTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDM2LDAsMCwyMDIsMCww
LDAsMTg0LDAsMCwwLDM4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTky
LDM2LDAsMCwyNDgsMCwwLDAsMjI2LDAsMCwwLDQsMCwwLDAsMjIsMCwwLDAsMTYsMCwwLDAsMTAs
MCwwLDAsNTgsMCwwLDAsMTAwLDAsMCwwLDMwLDAsMCwwLDI4LDAsMCwwLDI2LDAsMCwwLDI4LDAs
MCwwLDQwLDAsMCwwLDI2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIwOCwzNiwwLDAs
MTU0LDAsMCwwLDE3OCwwLDAsMCwzNCwwLDAsMCwzOCwwLDAsMCwyOCwwLDAsMCw2LDAsMCwwLDkw
LDAsMCwwLDg2LDAsMCwwLDE4LDAsMCwwLDYsMCwwLDAsMTAsMCwwLDAsMjQsMCwwLDAsMTYsMCww
LDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNywwLDAsMjIwLDAsMCwwLDE0
NCwwLDAsMCw0OCwwLDAsMCw2OCwwLDAsMCwxMTgsMCwwLDAsNDAsMCwwLDAsODAsMCwwLDAsNiww
LDAsMCwyOCwwLDAsMCw1MiwwLDAsMCwyMCwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwzMiwzNywwLDAsMTAyLDAsMCwwLDU0LDAsMCwwLDQ4LDAsMCwwLDExMiwwLDAsMCw0
LDAsMCwwLDY2LDAsMCwwLDc0LDAsMCwwLDc2LDAsMCwwLDIyLDAsMCwwLDExNCwwLDAsMCw1MCww
LDAsMCwxMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwzNywwLDAsMjI0LDAsMCww
LDExNCwwLDAsMCw0OCwwLDAsMCwxNCwwLDAsMCw2MCwwLDAsMCw0NiwwLDAsMCw0MiwwLDAsMCw3
OCwwLDAsMCw1MiwwLDAsMCw5MiwwLDAsMCw1NiwwLDAsMCwzMiwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCw5NiwzNywwLDAsNzYsMCwwLDAsMTcyLDAsMCwwLDQ4LDAsMCwwLDEwMiwwLDAs
MCwxMDgsMCwwLDAsMjYsMCwwLDAsNzIsMCwwLDAsMjQsMCwwLDAsMTgsMCwwLDAsODAsMCwwLDAs
NzAsMCwwLDAsNjgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDM3LDAsMCw5MCww
LDAsMCw2OCwwLDAsMCw2MiwwLDAsMCwyMiwwLDAsMCwxNiwwLDAsMCwxMCwwLDAsMCw4OCwwLDAs
MCwxMDAsMCwwLDAsMzAsMCwwLDAsNzIsMCwwLDAsODIsMCwwLDAsMTIsMCwwLDAsNDAsMCwwLDAs
MjAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTY4LDM3LDAsMCwxNCwwLDAsMCwyMTQs
MCwwLDAsNjAsMCwwLDAsMzgsMCwwLDAsMjgsMCwwLDAsNiwwLDAsMCw1MCwwLDAsMCw4NiwwLDAs
MCwxOCwwLDAsMCw1NiwwLDAsMCwyNCwwLDAsMCw0LDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE4NCwzNywwLDAsMjUwLDAsMCwwLDE5OCwwLDAsMCw2Miww
LDAsMCwxNTAsMCwwLDAsOCwwLDAsMCwyLDAsMCwwLDYsMCwwLDAsNCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsODMsMTE2LDU3LDExNiwxMjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEsMCwwLDAs
MCw4MywxMTYsNTcsMTAxLDEyMCw5OSwxMDEsMTEyLDExNiwxMDUsMTExLDExMCwwLDAsMCwwLDgz
LDExNiw1Nyw5OCw5NywxMDAsOTUsOTcsMTA4LDEwOCwxMTEsOTksMCwwLDAsMCw4MywxMTYsNTYs
OTgsOTcsMTAwLDk1LDk5LDk3LDExNSwxMTYsMCwwLDAsMCwwLDgzLDExNiw0OSw1MSwxMTQsMTE3
LDExMCwxMTYsMTA1LDEwOSwxMDEsOTUsMTAxLDExNCwxMTQsMTExLDExNCwwLDAsMCwwLDAsMCww
LDgzLDExNiw0OSw1MCwxMDgsMTAxLDExMCwxMDMsMTE2LDEwNCw5NSwxMDEsMTE0LDExNCwxMTEs
MTE0LDAsMCwwLDAsMCwwLDAsMCw4MywxMTYsNDksNDksMTA4LDExMSwxMDMsMTA1LDk5LDk1LDEw
MSwxMTQsMTE0LDExMSwxMTQsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsMTE2LDEwNSwxMDks
MTAxLDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDU3LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5
LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEs
MTE0LDk3LDExNiwxMTEsMTE0LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1
LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMDksMTExLDExMCwxMDEsMTIxLDk1LDExMiwxMTcsMTE2
LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywx
MDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDk5LDc4LDgzLDk1LDQ5LDQ5
LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2
OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsMTA5LDExMSwxMTAsMTAxLDEy
MSw5NSwxMDMsMTAxLDExNiw3MywxMTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYsMTE0LDEw
MSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMs
MTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDEx
NSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3
LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTAzLDEwMSwxMTYsNzMsOTksNzgsODMsOTUsNDksNTcs
MTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQs
OTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYs
MTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDc4LDgzLDEx
Niw1MSw5NSw5NSw0OSw1Nyw5OCw5NywxMTUsMTA1LDk5LDk1LDEwNSwxMTEsMTE1LDczLDExOSw3
OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMs
MTE5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDk4
LDk3LDExNSwxMDUsOTksOTUsMTA1LDExMSwxMTUsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0
LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDAsMCww
LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDk1LDk1LDExMCwxMTcsMTA5LDk1LDEx
MiwxMTcsMTE2LDczLDExOSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTUs
OTUsMTEwLDExNywxMDksOTUsMTEyLDExNywxMTYsNzMsOTksNjksNjksMCwwLDAsNzgsODMsMTE2
LDUxLDk1LDk1LDQ5LDU3LDk1LDk1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2LDczLDExOSw2
OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUs
MTAzLDEwMSwxMTYsNzMsOTksNjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDEx
NiwxMDUsMTA5LDEwMSw5NSwxMTIsMTE3LDExNiw3MywxMTksNzgsODMsOTUsNDksNTcsMTExLDEx
NSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2
LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5
NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNTYsMTE2LDEwNSwxMDksMTAxLDk1LDExMiwxMTcsMTE2LDczLDk5LDc4LDgz
LDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDEx
NiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5Nywx
MTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAs
MCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMTYsMTA1LDEwOSwxMDEsOTUsMTAzLDEwMSwx
MTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDEx
NywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDExOSw3OCw4Myw5NSw0
OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5
LDY5LDY5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDExNiwxMDUsMTA5
LDEwMSw5NSwxMDMsMTAxLDExNiw3Myw5OSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwxMTQs
MTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3
Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwx
MTUsNzMsOTksNjksNjksNjksNjksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDks
NTYsMTEwLDExNywxMDksMTEyLDExNywxMTAsOTksMTE2LDczLDExOSw2OSw2OSwwLDAsMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMTAsMTE3LDEwOSwxMTIsMTE3LDExMCw5OSwxMTYsNzMs
OTksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTA5LDEwMSwxMTUsMTE1
LDk3LDEwMywxMDEsMTE1LDczLDExOSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw1NiwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEwMSwxMTUsNzMsOTksNjksNjksMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTA1LDExMSwxMTUsOTUsOTgsOTcsMTE1LDEwMSw2OSww
LDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMDUsMTExLDExNSw5NSw5OCw5
NywxMTUsMTAxLDU1LDEwMiw5NywxMDUsMTA4LDExNywxMTQsMTAxLDY5LDAsMCwwLDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDExMCwxMTcsMTA5LDk1LDExMiwxMTcsMTE2LDczLDEx
OSw3OCw4Myw5NSw0OSw1NywxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1
LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3MywxMTksNzgsODMsOTUsNDksNDksOTks
MTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSw2
OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDExMCwxMTcsMTA5LDk1LDEx
MiwxMTcsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5
LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDk5LDc4LDgz
LDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2
OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDExMCwx
MTcsMTA5LDk1LDEwMywxMDEsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwx
MTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDEx
NCw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwx
MTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1
LDk1LDQ5LDU1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3
LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0
LDk3LDExNiwxMTEsMTE0LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2
LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDk5LDExMSwxMDgsMTA4LDk3LDExNiwxMDEsNzMsMTE5LDY5
LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwOCwxMDgsOTcs
MTE2LDEwMSw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDk5
LDExMSwxMDAsMTAxLDk5LDExOCwxMTYsNzMsMTE5LDk5LDQ5LDQ4LDk1LDEwOSw5OCwxMTUsMTE2
LDk3LDExNiwxMDEsOTUsMTE2LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3Myw5OSw5OSw0OSw0OCw5NSwxMDks
OTgsMTE1LDExNiw5NywxMTYsMTAxLDk1LDExNiw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDU1LDk5LDExMSwxMDAsMTAxLDk5LDExOCwxMTYsNzMsNjgsMTE1LDk5
LDQ5LDQ4LDk1LDEwOSw5OCwxMTUsMTE2LDk3LDExNiwxMDEsOTUsMTE2LDY5LDY5LDAsMCwwLDAs
MCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDk5LDExMSwxMDAsMTAxLDk5LDExOCwxMTYs
NzMsNjgsMTA1LDk5LDQ5LDQ4LDk1LDEwOSw5OCwxMTUsMTE2LDk3LDExNiwxMDEsOTUsMTE2LDY5
LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU0LDEwOCwxMTEsOTksOTcs
MTA4LDEwMSw1MywxMDIsOTcsOTksMTAxLDExNiw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUs
NDksNTQsMTA4LDExMSw5OSw5NywxMDgsMTAxLDUzLDk1LDk1LDEwNSwxMDksMTEyLDY5LDAsMCww
LDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Myw5OSwxMTYsMTIxLDExMiwxMDEsNzMsMTE5LDY5LDY5
LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDUzLDk5LDExNiwxMjEsMTEyLDEw
MSw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1MCw0OCw5
NSw5NSwxMTYsMTA1LDEwOSwxMDEsOTUsMTAzLDEwMSwxMTYsOTUsOTksOTUsMTE1LDExNiwxMTEs
MTE0LDk3LDEwMywxMDEsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1
LDk1LDQ5LDUwLDQ4LDk1LDk1LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDExNiw5NSw5OSw5
NSwxMTUsMTE2LDExMSwxMTQsOTcsMTAzLDEwMSw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Nyw5NSw5NSwxMDUsMTExLDExNSwxMTYsMTE0LDEwMSw5
NywxMDksOTUsOTksOTcsMTE2LDEwMSwxMDMsMTExLDExNCwxMjEsNjksMCwwLDAsNzgsODMsMTE2
LDUxLDk1LDk1LDQ5LDQ5LDU1LDk1LDk1LDExOSwxMDUsMTAwLDEwMSwxMTAsOTUsMTAyLDExNCwx
MTEsMTA5LDk1LDExNywxMTYsMTAyLDU2LDczLDc2LDEwNiw1MSw1MCw2OSw2OSw2OSwwLDAsMCww
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTQsOTUsOTUsMTEwLDk3LDExNCwxMTQsMTEx
LDExOSw5NSwxMTYsMTExLDk1LDExNywxMTYsMTAyLDU2LDczLDc2LDEwNiw1MSw1MCw2OSw2OSw2
OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Myw5OCw5NywxMTUsMTA1
LDk5LDk1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw3MywxMTksNzgsODMsOTUs
NDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2
OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUzLDk4LDk3
LDExNSwxMDUsOTksOTUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDczLDk5LDc4
LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5
OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUy
LDEwMSwxMTQsMTE0LDExMSwxMTQsOTUsOTksOTcsMTE2LDEwMSwxMDMsMTExLDExNCwxMjEsNjks
MCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Miw5NSw5NSwxMTUsMTA0
LDk3LDExNCwxMDEsMTAwLDk1LDk5LDExMSwxMTcsMTEwLDExNiw2OSwwLDAsMCwwLDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUyLDk1LDk1LDExMCwxMTcsMTA5LDk1LDExMiwxMTcs
MTE2LDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5
NSw0OSw0OSw1Miw5NSw5NSwxMTAsMTE3LDEwOSw5NSwxMDMsMTAxLDExNiw5NSw5OCw5NywxMTUs
MTAxLDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTEsMTA5LDEw
MSwxMTUsMTE1LDk3LDEwMywxMDEsMTE1LDk1LDk4LDk3LDExNSwxMDEsNjksMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNDksNTEsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMTEsMTE1LDExNiwxMTQsMTAx
LDk3LDEwOSw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3
LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDQ5LDUxLDk4LDk3LDExNSwxMDUsOTksOTUsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksNzMs
OTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1
LDczLDk5LDY5LDY5LDY5LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTEsOTgsOTcs
MTE1LDEwNSw5OSw5NSwxMDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3MywxMTksNzgsODMsOTUs
NDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2
OSw2OSw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUxLDk4LDk3LDExNSwxMDUsOTks
OTUsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0
LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTAsMTE1LDEyMSwxMTUsMTE2LDEwMSwxMDksOTUsMTAx
LDExNCwxMTQsMTExLDExNCw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUwLDk5LDEx
MSwxMDAsMTAxLDk5LDExOCwxMTYsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsNzgsODMsMTE2LDUx
LDk1LDk1LDQ5LDQ5LDUwLDk1LDk1LDEwMCwxMTEsOTUsMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywx
MDEsNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OSw5NSw5NSwxMTUsMTE2LDEwMCwx
MTEsMTE3LDExNiw5OCwxMTcsMTAyLDczLDExOSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDExNSwxMTYsMTAwLDExMSwxMTcsMTE2LDk4LDEx
NywxMDIsNzMsOTksNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0
OSw0OSw5NSw5NSwxMDksMTExLDExMCwxMDEsMTIxLDk1LDExMiwxMTcsMTE2LDczLDExOSw2OSw2
OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDEwOSwx
MTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYsNzMsOTksNjksNjksMCwwLDAsMCwwLDAsMCww
LDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OSw5NSw5NSwxMDksMTExLDExMCwxMDEsMTIxLDk1
LDEwMywxMDEsMTE2LDczLDExOSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1
LDk1LDQ5LDQ5LDQ5LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTAzLDEwMSwxMTYsNzMs
OTksNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCwxMDks
MTExLDExMCwxMDEsMTIxLDExMiwxMTcsMTEwLDk5LDExNiw3MywxMTksNzYsOTgsNDksNjksNjks
NjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCwxMDksMTExLDExMCwxMDEs
MTIxLDExMiwxMTcsMTEwLDk5LDExNiw3MywxMTksNzYsOTgsNDgsNjksNjksNjksMCwwLDAsMCww
LDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCwxMDksMTExLDExMCwxMDEsMTIxLDExMiwxMTcs
MTEwLDk5LDExNiw3Myw5OSw3Niw5OCw0OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUx
LDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwxMjEsMTEyLDExNywxMTAsOTksMTE2LDcz
LDk5LDc2LDk4LDQ4LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDks
NDgsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDk5LDExNiwxMjEsMTEyLDEwMSw5NSw5OCw5NywxMTUsMTAx
LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDk1LDk1LDExNiwxMDUsMTA5
LDEwMSw5NSwxMTIsMTE3LDExNiw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0
OCw5NSw5NSwxMTUsMTE2LDEwMCwxMDUsMTEwLDk4LDExNywxMDIsNzMsMTE5LDY5LDY5LDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDk1LDk1LDExNSwxMTYsMTAwLDEwNSwxMTAsOTgsMTE3
LDEwMiw3Myw5OSw2OSw2OSwwLDc4LDQ5LDQ4LDk1LDk1LDk5LDEyMCwxMjAsOTcsOTgsMTA1LDEx
OCw0OSw1MCw0OSw5NSw5NSwxMTgsMTA5LDEwNSw5NSw5OSwxMDgsOTcsMTE1LDExNSw5NSwxMTYs
MTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDY5LDAsMCwwLDc4LDQ5LDQ4LDk1LDk1LDk5
LDEyMCwxMjAsOTcsOTgsMTA1LDExOCw0OSw1MCw0OCw5NSw5NSwxMTUsMTA1LDk1LDk5LDEwOCw5
NywxMTUsMTE1LDk1LDExNiwxMjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEsNjksMCwwLDAs
MCw3OCw0OSw0OCw5NSw5NSw5OSwxMjAsMTIwLDk3LDk4LDEwNSwxMTgsNDksNDksNTUsOTUsOTUs
OTksMTA4LDk3LDExNSwxMTUsOTUsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSw2
OSwwLDAsMCwwLDAsMCwwLDc4LDQ5LDQ4LDk1LDk1LDk5LDEyMCwxMjAsOTcsOTgsMTA1LDExOCw0
OSw0OSw1NCw5NSw5NSwxMTUsMTA0LDEwNSwxMDksOTUsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwx
MTAsMTAyLDExMSw2OSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw0MCwyMCwwLDAsMCwwLDAsMCw1
NiwyMCwwLDAsMCwwLDAsMCw3MiwyMCwwLDAsMjE2LDMxLDAsMCwwLDAsMCwwLDAsMCwwLDAsODgs
MjAsMCwwLDIxNiwzMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDEwNCwyMCwwLDAsMjE2LDMxLDAsMCww
LDAsMCwwLDAsMCwwLDAsMTI4LDIwLDAsMCwzMiwzMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDE1Miwy
MCwwLDAsMjE2LDMxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTY4LDIwLDAsMCwwLDIwLDAsMCwxOTIs
MjAsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwyMjQsMzYsMCwwLDAsMCww
LDAsMCwyMCwwLDAsOCwyMSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDIz
MiwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCw4MCwyMSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1
LDAsMCwyLDAsMCwwLDI0MCwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxNTIsMjEsMCwwLDAsMCww
LDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwyNDgsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwy
MjQsMjEsMCwwLDQwLDM0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYsMjIsMCwwLDQwLDM0LDAsMCww
LDAsMCwwLDAsMjAsMCwwLDY0LDIyLDAsMCwwLDAsMCwwLDEsMCwwLDAsMzIsMzYsMCwwLDAsMCww
LDAsMCwyMCwwLDAsODgsMjIsMCwwLDAsMCwwLDAsMSwwLDAsMCwzMiwzNiwwLDAsMCwwLDAsMCww
LDIwLDAsMCwxMTIsMjIsMCwwLDAsMCwwLDAsMSwwLDAsMCw0MCwzNiwwLDAsMCwwLDAsMCwwLDIw
LDAsMCwxMzYsMjIsMCwwLDAsMCwwLDAsMSwwLDAsMCw0MCwzNiwwLDAsMCwwLDAsMCwwLDIwLDAs
MCwxNjAsMjIsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNDQsMzcsMCww
LDAsOCwwLDAsMCwyMCwwLDAsMjMyLDIyLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIs
MCwwLDAsMTQ0LDM3LDAsMCwwLDgsMCwwLDAsMjAsMCwwLDQ4LDIzLDAsMCwwLDAsMCwwLDMsMCww
LDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgsMzIsMCwwLDIsMCwwLDAsMTkyLDM1LDAsMCwwLDgsMCww
LDAsMjAsMCwwLDEyMCwyMywwLDAsMCwwLDAsMCwzLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDQ4
LDMyLDAsMCwyLDAsMCwwLDIwMCwzNSwwLDAsMCw4LDAsMCwwLDAsMCwwLDE5MiwyMywwLDAsOTYs
MzUsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMTYsMjMsMCwwLDk2LDM1LDAsMCwwLDAsMCwwLDAsMjAs
MCwwLDI0MCwyMywwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDQ4LDM2LDAs
MCwyLDAsMCwwLDAsMjAsMCwwLDgsMjQsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiww
LDAsMCw0OCwzNiwwLDAsMiwwLDAsMCwwLDAsMCwwLDMyLDI0LDAsMCwwLDAsMCwwLDU2LDI0LDAs
MCwxNTIsMzYsMCwwLDAsMCwwLDAsMCwyMCwwLDAsODgsMjQsMCwwLDAsMCwwLDAsMiwwLDAsMCw5
NiwzNSwwLDAsMiwwLDAsMCwyMTYsMzIsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTYwLDI0LDAsMCww
LDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMjQwLDMyLDAsMCwwLDAsMCwwLDAsMjAs
MCwwLDIzMiwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDgsMzMsMCww
LDAsMCwwLDAsMCwyMCwwLDAsNDgsMjUsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiww
LDAsMCwzMiwzMywwLDAsMCwwLDAsMCwwLDAsMCwwLDEyMCwyNSwwLDAsOTYsMzUsMCwwLDAsMCww
LDAsMCwwLDAsMCwxNDQsMjUsMCwwLDk2LDM1LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDE2OCwyNSww
LDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE2OCwzNiwwLDAsMiwwLDAsMCww
LDIwLDAsMCwyMDgsMjUsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNjgs
MzYsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMjQ4LDI1LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUs
MCwwLDIsMCwwLDAsMTY4LDM2LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDMyLDI2LDAsMCwwLDAsMCww
LDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTY4LDM2LDAsMCwyLDAsMCwwLDAsMCwwLDAsNzIs
MjYsMCwwLDI0LDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsOTYsMjYsMCwwLDk2LDM1LDAsMCwwLDAs
MCwwLDAsMjAsMCwwLDEyMCwyNiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCww
LDEzNiwzNywwLDAsMiwwLDAsMCwwLDIwLDAsMCwxNDQsMjYsMCwwLDAsMCwwLDAsMiwwLDAsMCw5
NiwzNSwwLDAsMiwwLDAsMCwxMzYsMzcsMCwwLDIsMCwwLDAsMCwwLDAsMCwxNjgsMjYsMCwwLDAs
MCwwLDAsMjA4LDI2LDAsMCwwLDAsMCwwLDI0OCwyNiwwLDAsMTc2LDM2LDAsMCwwLDAsMCwwLDAs
MCwwLDAsMjQsMjcsMCwwLDY0LDM1LDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMjcsMCwwLDY0LDM1
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTA0LDI3LDAsMCwwLDAsMCwwLDE2MCwyNywwLDAsMCwwLDAs
MCwyMTYsMjcsMCwwLDAsMCwwLDAsMjQ4LDI3LDAsMCwwLDAsMCwwLDI0LDI4LDAsMCwwLDAsMCww
LDU2LDI4LDAsMCwwLDAsMCwwLDg4LDI4LDAsMCwwLDIwLDAsMCwxMTIsMjgsMCwwLDAsMCwwLDAs
MSwwLDAsMCwxODQsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwyMCwwLDAsMTYwLDI4LDAsMCwwLDAs
MCwwLDEsMCwwLDAsMjAwLDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMjAsMCwwLDIwOCwyOCwwLDAs
MCwwLDAsMCwxLDAsMCwwLDE4NCwzMiwwLDAsMywyNDQsMjU1LDI1NSwwLDIwLDAsMCwwLDI5LDAs
MCwwLDAsMCwwLDEsMCwwLDAsMjAwLDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMCwwLDAsNDgsMjks
MCwwLDAsMzIsMCwwLDAsMCwwLDAsMCwwLDAsMCw3MiwyOSwwLDAsMCwwLDAsMCw5NiwyOSwwLDAs
MTYsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjAsMjksMCwwLDAsMzYsMCwwLDAsMCwwLDAsMCww
LDAsMCwxNTIsMjksMCwwLDgsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwxODQsMjksMCwwLDAsMCww
LDAsMjE2LDI5LDAsMCwwLDAsMCwwLDI0OCwyOSwwLDAsMCwwLDAsMCwyNCwzMCwwLDAsMCwyMCww
LDAsNTYsMzAsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxMjgsMzcsMCww
LDIsMCwwLDAsMCwyMCwwLDAsODgsMzAsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiww
LDAsMCwxMjgsMzcsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMTIwLDMwLDAsMCwwLDAsMCwwLDIsMCww
LDAsOTYsMzUsMCwwLDIsMCwwLDAsMTI4LDM3LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDE1MiwzMCww
LDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDEyOCwzNywwLDAsMiwwLDAsMCww
LDAsMCwwLDE4NCwzMCwwLDAsMCwwLDAsMCwyMDgsMzAsMCwwLDAsMCwwLDAsMjMyLDMwLDAsMCww
LDAsMCwwLDAsMzEsMCwwLDAsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwzMSwwLDAsOCwzNiww
LDAsMCwwLDAsMCwwLDAsMCwwLDQ4LDMxLDAsMCwyMTYsMzcsMCwwLDAsMCwwLDAsMCwwLDAsMCw4
OCwzMSwwLDAsMjE2LDM3LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDMxLDAsMCwyMzIsMzcsMCww
LDAsMCwwLDAsMCwwLDAsMCwxNjgsMzEsMCwwLDIwOCwzMSwwLDAsMCwwLDAsMCwyNTUsMjU1LDI1
NSwyNTUsMCwwLDAsMCwyNTUsMjU1LDI1NSwyNTUsMCwwLDAsMCwyNTUsMjU1LDI1NSwyNTUsMCww
LDAsMCw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw5Nyw5OCw5OSwxMDAsMTAxLDEwMiw2
NSw2Niw2Nyw2OCw2OSw3MCwxMjAsODgsNDMsNDUsMTEyLDgwLDEwNSw3MywxMTAsNzgsMCwwLDAs
MCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfTk9ORSwgUnVudGltZS5HTE9CQUxfQkFTRSkKLXZhciB0
ZW1wRG91YmxlUHRyID0gUnVudGltZS5hbGlnbk1lbW9yeShhbGxvY2F0ZSgxMiwgImk4IiwgQUxM
T0NfU1RBVElDKSwgOCk7Ci1hc3NlcnQodGVtcERvdWJsZVB0ciAlIDggPT0gMCk7Ci1mdW5jdGlv
biBjb3B5VGVtcEZsb2F0KHB0cikgeyAvLyBmdW5jdGlvbnMsIGJlY2F1c2UgaW5saW5pbmcgdGhp
cyBjb2RlIGluY3JlYXNlcyBjb2RlIHNpemUgdG9vIG11Y2gKLSAgSEVBUDhbdGVtcERvdWJsZVB0
cl0gPSBIRUFQOFtwdHJdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzFdID0gSEVBUDhbcHRyKzFd
OwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzJdID0gSEVBUDhbcHRyKzJdOwotICBIRUFQOFt0ZW1w
RG91YmxlUHRyKzNdID0gSEVBUDhbcHRyKzNdOwotfQotZnVuY3Rpb24gY29weVRlbXBEb3VibGUo
cHRyKSB7Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHJdID0gSEVBUDhbcHRyXTsKLSAgSEVBUDhbdGVt
cERvdWJsZVB0cisxXSA9IEhFQVA4W3B0cisxXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cisyXSA9
IEhFQVA4W3B0cisyXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0ciszXSA9IEhFQVA4W3B0ciszXTsK
LSAgSEVBUDhbdGVtcERvdWJsZVB0cis0XSA9IEhFQVA4W3B0cis0XTsKLSAgSEVBUDhbdGVtcERv
dWJsZVB0cis1XSA9IEhFQVA4W3B0cis1XTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cis2XSA9IEhF
QVA4W3B0cis2XTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cis3XSA9IEhFQVA4W3B0cis3XTsKLX0K
LSAgZnVuY3Rpb24gX2F0ZXhpdChmdW5jLCBhcmcpIHsKLSAgICAgIF9fQVRFWElUX18udW5zaGlm
dCh7IGZ1bmM6IGZ1bmMsIGFyZzogYXJnIH0pOwotICAgIH12YXIgX19fY3hhX2F0ZXhpdD1fYXRl
eGl0OwotICBmdW5jdGlvbiBfbGx2bV91bXVsX3dpdGhfb3ZlcmZsb3dfaTMyKHgsIHkpIHsKLSAg
ICAgIHggPSB4Pj4+MDsKLSAgICAgIHkgPSB5Pj4+MDsKLSAgICAgIHJldHVybiAoKGFzbVsic2V0
VGVtcFJldDAiXSh4KnkgPiA0Mjk0OTY3Mjk1KSwoeCp5KT4+PjApfDApOwotICAgIH0KLSAgZnVu
Y3Rpb24gX19fZ3h4X3BlcnNvbmFsaXR5X3YwKCkgewotICAgIH0KLSAgZnVuY3Rpb24gX19leGl0
KHN0YXR1cykgewotICAgICAgLy8gdm9pZCBfZXhpdChpbnQgc3RhdHVzKTsKLSAgICAgIC8vIGh0
dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL2V4
aXQuaHRtbAotICAgICAgTW9kdWxlLnByaW50KCdleGl0KCcgKyBzdGF0dXMgKyAnKSBjYWxsZWQn
KTsKLSAgICAgIE1vZHVsZVsnZXhpdCddKHN0YXR1cyk7Ci0gICAgfWZ1bmN0aW9uIF9leGl0KHN0
YXR1cykgewotICAgICAgX19leGl0KHN0YXR1cyk7Ci0gICAgfWZ1bmN0aW9uIF9fWlN0OXRlcm1p
bmF0ZXYoKSB7Ci0gICAgICBfZXhpdCgtMTIzNCk7Ci0gICAgfQotICBNb2R1bGVbIl9tZW1jcHki
XSA9IF9tZW1jcHk7dmFyIF9sbHZtX21lbWNweV9wMGk4X3AwaThfaTMyPV9tZW1jcHk7Ci0gIHZh
ciBfbG9nPU1hdGgubG9nOwotICB2YXIgX2Zsb29yPU1hdGguZmxvb3I7Ci0gIHZhciBjdGx6X2k4
ID0gYWxsb2NhdGUoWzgsNyw2LDYsNSw1LDUsNSw0LDQsNCw0LDQsNCw0LDQsMywzLDMsMywzLDMs
MywzLDMsMywzLDMsMywzLDMsMywyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwy
LDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOyAKLSAgTW9kdWxlWyJfbGx2bV9jdGx6
X2kzMiJdID0gX2xsdm1fY3Rsel9pMzI7Ci0gIGZ1bmN0aW9uIF9fWlN0MTh1bmNhdWdodF9leGNl
cHRpb252KCkgeyAvLyBzdGQ6OnVuY2F1Z2h0X2V4Y2VwdGlvbigpCi0gICAgICByZXR1cm4gISFf
X1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udi51bmNhdWdodF9leGNlcHRpb247Ci0gICAgfWZ1bmN0
aW9uIF9fX2N4YV9iZWdpbl9jYXRjaChwdHIpIHsKLSAgICAgIF9fWlN0MTh1bmNhdWdodF9leGNl
cHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbi0tOwotICAgICAgcmV0dXJuIHB0cjsKLSAgICB9Ci0g
IGZ1bmN0aW9uIF9sbHZtX2VoX2V4Y2VwdGlvbigpIHsKLSAgICAgIHJldHVybiBIRUFQMzJbKChf
bGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildOwotICAgIH0KLSAgZnVuY3Rpb24gX19fY3hhX2Zy
ZWVfZXhjZXB0aW9uKHB0cikgewotICAgICAgdHJ5IHsKLSAgICAgICAgcmV0dXJuIF9mcmVlKHB0
cik7Ci0gICAgICB9IGNhdGNoKGUpIHsgLy8gWFhYIEZJWE1FCi0gICAgICB9Ci0gICAgfWZ1bmN0
aW9uIF9fX2N4YV9lbmRfY2F0Y2goKSB7Ci0gICAgICBpZiAoX19fY3hhX2VuZF9jYXRjaC5yZXRo
cm93bikgewotICAgICAgICBfX19jeGFfZW5kX2NhdGNoLnJldGhyb3duID0gZmFsc2U7Ci0gICAg
ICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIC8vIENsZWFyIHN0YXRlIGZsYWcuCi0gICAgICBh
c21bJ3NldFRocmV3J10oMCk7Ci0gICAgICAvLyBDbGVhciB0eXBlLgotICAgICAgSEVBUDMyWygo
KF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg0KSk+PjIpXT0wCi0gICAgICAvLyBDYWxsIGRlc3Ry
dWN0b3IgaWYgb25lIGlzIHJlZ2lzdGVyZWQgdGhlbiBjbGVhciBpdC4KLSAgICAgIHZhciBwdHIg
PSBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildOwotICAgICAgdmFyIGRlc3Ry
dWN0b3IgPSBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDgpKT4+MildOwotICAg
ICAgaWYgKGRlc3RydWN0b3IpIHsKLSAgICAgICAgUnVudGltZS5keW5DYWxsKCd2aScsIGRlc3Ry
dWN0b3IsIFtwdHJdKTsKLSAgICAgICAgSEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYp
Kyg4KSk+PjIpXT0wCi0gICAgICB9Ci0gICAgICAvLyBGcmVlIHB0ciBpZiBpdCBpc24ndCBudWxs
LgotICAgICAgaWYgKHB0cikgewotICAgICAgICBfX19jeGFfZnJlZV9leGNlcHRpb24ocHRyKTsK
LSAgICAgICAgSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXT0wCi0gICAgICB9
Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV9yZXRocm93KCkgewotICAgICAgX19fY3hhX2VuZF9jYXRj
aC5yZXRocm93biA9IHRydWU7Ci0gICAgICB0aHJvdyBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRp
b24uYnVmKT4+MildICsgIiAtIEV4Y2VwdGlvbiBjYXRjaGluZyBpcyBkaXNhYmxlZCwgdGhpcyBl
eGNlcHRpb24gY2Fubm90IGJlIGNhdWdodC4gQ29tcGlsZSB3aXRoIC1zIERJU0FCTEVfRVhDRVBU
SU9OX0NBVENISU5HPTAgb3IgRElTQUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MiB0byBjYXRjaC4i
OzsKLSAgICB9Ci0gIE1vZHVsZVsiX21lbW1vdmUiXSA9IF9tZW1tb3ZlO3ZhciBfbGx2bV9tZW1t
b3ZlX3AwaThfcDBpOF9pMzI9X21lbW1vdmU7Ci0gIE1vZHVsZVsiX21lbXNldCJdID0gX21lbXNl
dDt2YXIgX2xsdm1fbWVtc2V0X3AwaThfaTY0PV9tZW1zZXQ7Ci0gIGZ1bmN0aW9uIF9sbHZtX2xp
ZmV0aW1lX3N0YXJ0KCkge30KLSAgZnVuY3Rpb24gX2xsdm1fbGlmZXRpbWVfZW5kKCkge30KLSAg
ZnVuY3Rpb24gX3B0aHJlYWRfbXV0ZXhfbG9jaygpIHt9Ci0gIGZ1bmN0aW9uIF9wdGhyZWFkX211
dGV4X3VubG9jaygpIHt9Ci0gIGZ1bmN0aW9uIF9fX2N4YV9ndWFyZF9hY3F1aXJlKHZhcmlhYmxl
KSB7Ci0gICAgICBpZiAoIUhFQVA4Wyh2YXJpYWJsZSldKSB7IC8vIGlnbm9yZSBTQUZFX0hFQVAg
c3R1ZmYgYmVjYXVzZSBsbHZtIG1peGVzIGk2NCBhbmQgaTggaGVyZQotICAgICAgICBIRUFQOFso
dmFyaWFibGUpXT0xOwotICAgICAgICByZXR1cm4gMTsKLSAgICAgIH0KLSAgICAgIHJldHVybiAw
OwotICAgIH0KLSAgZnVuY3Rpb24gX19fY3hhX2d1YXJkX3JlbGVhc2UoKSB7fQotICBmdW5jdGlv
biBfcHRocmVhZF9jb25kX2Jyb2FkY2FzdCgpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAg
ZnVuY3Rpb24gX3B0aHJlYWRfY29uZF93YWl0KCkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQot
ICBmdW5jdGlvbiBfX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uKHNpemUpIHsKLSAgICAgIHJldHVy
biBfbWFsbG9jKHNpemUpOwotICAgIH0KLSAgZnVuY3Rpb24gX19fY3hhX2lzX251bWJlcl90eXBl
KHR5cGUpIHsKLSAgICAgIHZhciBpc051bWJlciA9IGZhbHNlOwotICAgICAgdHJ5IHsgaWYgKHR5
cGUgPT0gX19aVElpKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBp
ZiAodHlwZSA9PSBfX1pUSWopIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRy
eSB7IGlmICh0eXBlID09IF9fWlRJbCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAg
ICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEltKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9
Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSXgpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNo
KGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJeSkgaXNOdW1iZXIgPSB0cnVlIH0g
Y2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVElmKSBpc051bWJlciA9IHRy
dWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWQpIGlzTnVtYmVy
ID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJZSkgaXNO
dW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVElj
KSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBf
X1pUSWEpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBl
ID09IF9fWlRJaCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYg
KHR5cGUgPT0gX19aVElzKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkg
eyBpZiAodHlwZSA9PSBfX1pUSXQpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAg
IHJldHVybiBpc051bWJlcjsKLSAgICB9ZnVuY3Rpb24gX19fY3hhX2RvZXNfaW5oZXJpdChkZWZp
bml0ZVR5cGUsIHBvc3NpYmlsaXR5VHlwZSwgcG9zc2liaWxpdHkpIHsKLSAgICAgIGlmIChwb3Nz
aWJpbGl0eSA9PSAwKSByZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAocG9zc2liaWxpdHlUeXBlID09
IDAgfHwgcG9zc2liaWxpdHlUeXBlID09IGRlZmluaXRlVHlwZSkKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICB2YXIgcG9zc2liaWxpdHlfdHlwZV9pbmZvOwotICAgICAgaWYgKF9fX2N4YV9p
c19udW1iZXJfdHlwZShwb3NzaWJpbGl0eVR5cGUpKSB7Ci0gICAgICAgIHBvc3NpYmlsaXR5X3R5
cGVfaW5mbyA9IHBvc3NpYmlsaXR5VHlwZTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBw
b3NzaWJpbGl0eV90eXBlX2luZm9BZGRyID0gSEVBUDMyWygocG9zc2liaWxpdHlUeXBlKT4+Mild
IC0gODsKLSAgICAgICAgcG9zc2liaWxpdHlfdHlwZV9pbmZvID0gSEVBUDMyWygocG9zc2liaWxp
dHlfdHlwZV9pbmZvQWRkcik+PjIpXTsKLSAgICAgIH0KLSAgICAgIHN3aXRjaCAocG9zc2liaWxp
dHlfdHlwZV9pbmZvKSB7Ci0gICAgICBjYXNlIDA6IC8vIHBvc3NpYmlsaXR5IGlzIGEgcG9pbnRl
cgotICAgICAgICAvLyBTZWUgaWYgZGVmaW5pdGUgdHlwZSBpcyBhIHBvaW50ZXIKLSAgICAgICAg
dmFyIGRlZmluaXRlX3R5cGVfaW5mb0FkZHIgPSBIRUFQMzJbKChkZWZpbml0ZVR5cGUpPj4yKV0g
LSA4OwotICAgICAgICB2YXIgZGVmaW5pdGVfdHlwZV9pbmZvID0gSEVBUDMyWygoZGVmaW5pdGVf
dHlwZV9pbmZvQWRkcik+PjIpXTsKLSAgICAgICAgaWYgKGRlZmluaXRlX3R5cGVfaW5mbyA9PSAw
KSB7Ci0gICAgICAgICAgLy8gQWxzbyBhIHBvaW50ZXI7IGNvbXBhcmUgYmFzZSB0eXBlcyBvZiBw
b2ludGVycwotICAgICAgICAgIHZhciBkZWZQb2ludGVyQmFzZUFkZHIgPSBkZWZpbml0ZVR5cGUr
ODsKLSAgICAgICAgICB2YXIgZGVmUG9pbnRlckJhc2VUeXBlID0gSEVBUDMyWygoZGVmUG9pbnRl
ckJhc2VBZGRyKT4+MildOwotICAgICAgICAgIHZhciBwb3NzUG9pbnRlckJhc2VBZGRyID0gcG9z
c2liaWxpdHlUeXBlKzg7Ci0gICAgICAgICAgdmFyIHBvc3NQb2ludGVyQmFzZVR5cGUgPSBIRUFQ
MzJbKChwb3NzUG9pbnRlckJhc2VBZGRyKT4+MildOwotICAgICAgICAgIHJldHVybiBfX19jeGFf
ZG9lc19pbmhlcml0KGRlZlBvaW50ZXJCYXNlVHlwZSwgcG9zc1BvaW50ZXJCYXNlVHlwZSwgcG9z
c2liaWxpdHkpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIG9u
ZSBwb2ludGVyIGFuZCBvbmUgbm9uLXBvaW50ZXIKLSAgICAgIGNhc2UgMTogLy8gY2xhc3Mgd2l0
aCBubyBiYXNlIGNsYXNzCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIGNhc2UgMjogLy8g
Y2xhc3Mgd2l0aCBiYXNlIGNsYXNzCi0gICAgICAgIHZhciBwYXJlbnRUeXBlQWRkciA9IHBvc3Np
YmlsaXR5VHlwZSArIDg7Ci0gICAgICAgIHZhciBwYXJlbnRUeXBlID0gSEVBUDMyWygocGFyZW50
VHlwZUFkZHIpPj4yKV07Ci0gICAgICAgIHJldHVybiBfX19jeGFfZG9lc19pbmhlcml0KGRlZmlu
aXRlVHlwZSwgcGFyZW50VHlwZSwgcG9zc2liaWxpdHkpOwotICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOyAvLyBzb21lIHVuZW5jb3VudGVyZWQgdHlwZQotICAgICAgfQotICAg
IH0KLSAgZnVuY3Rpb24gX19fcmVzdW1lRXhjZXB0aW9uKHB0cikgewotICAgICAgaWYgKEhFQVAz
MlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV0gPT0gMCkgSEVBUDMyWygoX2xsdm1fZWhf
ZXhjZXB0aW9uLmJ1Zik+PjIpXT1wdHI7Ci0gICAgICB0aHJvdyBwdHIgKyAiIC0gRXhjZXB0aW9u
IGNhdGNoaW5nIGlzIGRpc2FibGVkLCB0aGlzIGV4Y2VwdGlvbiBjYW5ub3QgYmUgY2F1Z2h0LiBD
b21waWxlIHdpdGggLXMgRElTQUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MCBvciBESVNBQkxFX0VY
Q0VQVElPTl9DQVRDSElORz0yIHRvIGNhdGNoLiI7OwotICAgIH1mdW5jdGlvbiBfX19jeGFfZmlu
ZF9tYXRjaGluZ19jYXRjaCh0aHJvd24sIHRocm93bnR5cGUpIHsKLSAgICAgIGlmICh0aHJvd24g
PT0gLTEpIHRocm93biA9IEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV07Ci0g
ICAgICBpZiAodGhyb3dudHlwZSA9PSAtMSkgdGhyb3dudHlwZSA9IEhFQVAzMlsoKChfbGx2bV9l
aF9leGNlcHRpb24uYnVmKSsoNCkpPj4yKV07Ci0gICAgICB2YXIgdHlwZUFycmF5ID0gQXJyYXku
cHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAyKTsKLSAgICAgIC8vIElmIHRocm93bnR5
cGUgaXMgYSBwb2ludGVyLCB0aGlzIG1lYW5zIGEgcG9pbnRlciBoYXMgYmVlbgotICAgICAgLy8g
dGhyb3duLiBXaGVuIGEgcG9pbnRlciBpcyB0aHJvd24sIGFjdHVhbGx5IHdoYXQncyB0aHJvd24K
LSAgICAgIC8vIGlzIGEgcG9pbnRlciB0byB0aGUgcG9pbnRlci4gV2UnbGwgZGVyZWZlcmVuY2Ug
aXQuCi0gICAgICBpZiAodGhyb3dudHlwZSAhPSAwICYmICFfX19jeGFfaXNfbnVtYmVyX3R5cGUo
dGhyb3dudHlwZSkpIHsKLSAgICAgICAgdmFyIHRocm93bnR5cGVJbmZvQWRkcj0gSEVBUDMyWygo
dGhyb3dudHlwZSk+PjIpXSAtIDg7Ci0gICAgICAgIHZhciB0aHJvd250eXBlSW5mbz0gSEVBUDMy
WygodGhyb3dudHlwZUluZm9BZGRyKT4+MildOwotICAgICAgICBpZiAodGhyb3dudHlwZUluZm8g
PT0gMCkKLSAgICAgICAgICB0aHJvd24gPSBIRUFQMzJbKCh0aHJvd24pPj4yKV07Ci0gICAgICB9
Ci0gICAgICAvLyBUaGUgZGlmZmVyZW50IGNhdGNoIGJsb2NrcyBhcmUgZGVub3RlZCBieSBkaWZm
ZXJlbnQgdHlwZXMuCi0gICAgICAvLyBEdWUgdG8gaW5oZXJpdGFuY2UsIHRob3NlIHR5cGVzIG1h
eSBub3QgcHJlY2lzZWx5IG1hdGNoIHRoZQotICAgICAgLy8gdHlwZSBvZiB0aGUgdGhyb3duIG9i
amVjdC4gRmluZCBvbmUgd2hpY2ggbWF0Y2hlcywgYW5kCi0gICAgICAvLyByZXR1cm4gdGhlIHR5
cGUgb2YgdGhlIGNhdGNoIGJsb2NrIHdoaWNoIHNob3VsZCBiZSBjYWxsZWQuCi0gICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHR5cGVBcnJheS5sZW5ndGg7IGkrKykgewotICAgICAgICBpZiAoX19f
Y3hhX2RvZXNfaW5oZXJpdCh0eXBlQXJyYXlbaV0sIHRocm93bnR5cGUsIHRocm93bikpCi0gICAg
ICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKHR5cGVBcnJheVtpXSksdGhyb3duKXww
KTsKLSAgICAgIH0KLSAgICAgIC8vIFNob3VsZG4ndCBoYXBwZW4gdW5sZXNzIHdlIGhhdmUgYm9n
dXMgZGF0YSBpbiB0eXBlQXJyYXkKLSAgICAgIC8vIG9yIGVuY291bnRlciBhIHR5cGUgZm9yIHdo
aWNoIGVtc2NyaXB0ZW4gZG9lc24ndCBoYXZlIHN1aXRhYmxlCi0gICAgICAvLyB0eXBlaW5mbyBk
ZWZpbmVkLiBCZXN0LWVmZm9ydHMgbWF0Y2gganVzdCBpbiBjYXNlLgotICAgICAgcmV0dXJuICgo
YXNtWyJzZXRUZW1wUmV0MCJdKHRocm93bnR5cGUpLHRocm93bil8MCk7Ci0gICAgfWZ1bmN0aW9u
IF9fX2N4YV90aHJvdyhwdHIsIHR5cGUsIGRlc3RydWN0b3IpIHsKLSAgICAgIGlmICghX19fY3hh
X3Rocm93LmluaXRpYWxpemVkKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgSEVBUDMyWygo
X19aVFZOMTBfX2N4eGFiaXYxMTlfX3BvaW50ZXJfdHlwZV9pbmZvRSk+PjIpXT0wOyAvLyBXb3Jr
YXJvdW5kIGZvciBsaWJjeHhhYmkgaW50ZWdyYXRpb24gYnVnCi0gICAgICAgIH0gY2F0Y2goZSl7
fQotICAgICAgICB0cnkgewotICAgICAgICAgIEhFQVAzMlsoKF9fWlRWTjEwX19jeHhhYml2MTE3
X19jbGFzc190eXBlX2luZm9FKT4+MildPTE7IC8vIFdvcmthcm91bmQgZm9yIGxpYmN4eGFiaSBp
bnRlZ3JhdGlvbiBidWcKLSAgICAgICAgfSBjYXRjaChlKXt9Ci0gICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgSEVBUDMyWygoX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0Up
Pj4yKV09MjsgLy8gV29ya2Fyb3VuZCBmb3IgbGliY3h4YWJpIGludGVncmF0aW9uIGJ1ZwotICAg
ICAgICB9IGNhdGNoKGUpe30KLSAgICAgICAgX19fY3hhX3Rocm93LmluaXRpYWxpemVkID0gdHJ1
ZTsKLSAgICAgIH0KLSAgICAgIEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV09
cHRyCi0gICAgICBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDQpKT4+MildPXR5
cGUKLSAgICAgIEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoOCkpPj4yKV09ZGVz
dHJ1Y3RvcgotICAgICAgaWYgKCEoInVuY2F1Z2h0X2V4Y2VwdGlvbiIgaW4gX19aU3QxOHVuY2F1
Z2h0X2V4Y2VwdGlvbnYpKSB7Ci0gICAgICAgIF9fWlN0MTh1bmNhdWdodF9leGNlcHRpb252LnVu
Y2F1Z2h0X2V4Y2VwdGlvbiA9IDE7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBfX1pTdDE4dW5j
YXVnaHRfZXhjZXB0aW9udi51bmNhdWdodF9leGNlcHRpb24rKzsKLSAgICAgIH0KLSAgICAgIHRo
cm93IHB0ciArICIgLSBFeGNlcHRpb24gY2F0Y2hpbmcgaXMgZGlzYWJsZWQsIHRoaXMgZXhjZXB0
aW9uIGNhbm5vdCBiZSBjYXVnaHQuIENvbXBpbGUgd2l0aCAtcyBESVNBQkxFX0VYQ0VQVElPTl9D
QVRDSElORz0wIG9yIERJU0FCTEVfRVhDRVBUSU9OX0NBVENISU5HPTIgdG8gY2F0Y2guIjs7Ci0g
ICAgfQotICB2YXIgRVJSTk9fQ09ERVM9e0VQRVJNOjEsRU5PRU5UOjIsRVNSQ0g6MyxFSU5UUjo0
LEVJTzo1LEVOWElPOjYsRTJCSUc6NyxFTk9FWEVDOjgsRUJBREY6OSxFQ0hJTEQ6MTAsRUFHQUlO
OjExLEVXT1VMREJMT0NLOjExLEVOT01FTToxMixFQUNDRVM6MTMsRUZBVUxUOjE0LEVOT1RCTEs6
MTUsRUJVU1k6MTYsRUVYSVNUOjE3LEVYREVWOjE4LEVOT0RFVjoxOSxFTk9URElSOjIwLEVJU0RJ
UjoyMSxFSU5WQUw6MjIsRU5GSUxFOjIzLEVNRklMRToyNCxFTk9UVFk6MjUsRVRYVEJTWToyNixF
RkJJRzoyNyxFTk9TUEM6MjgsRVNQSVBFOjI5LEVST0ZTOjMwLEVNTElOSzozMSxFUElQRTozMixF
RE9NOjMzLEVSQU5HRTozNCxFTk9NU0c6MzUsRUlEUk06MzYsRUNIUk5HOjM3LEVMMk5TWU5DOjM4
LEVMM0hMVDozOSxFTDNSU1Q6NDAsRUxOUk5HOjQxLEVVTkFUQ0g6NDIsRU5PQ1NJOjQzLEVMMkhM
VDo0NCxFREVBRExLOjQ1LEVOT0xDSzo0NixFQkFERTo1MCxFQkFEUjo1MSxFWEZVTEw6NTIsRU5P
QU5POjUzLEVCQURSUUM6NTQsRUJBRFNMVDo1NSxFREVBRExPQ0s6NTYsRUJGT05UOjU3LEVOT1NU
Ujo2MCxFTk9EQVRBOjYxLEVUSU1FOjYyLEVOT1NSOjYzLEVOT05FVDo2NCxFTk9QS0c6NjUsRVJF
TU9URTo2NixFTk9MSU5LOjY3LEVBRFY6NjgsRVNSTU5UOjY5LEVDT01NOjcwLEVQUk9UTzo3MSxF
TVVMVElIT1A6NzQsRURPVERPVDo3NixFQkFETVNHOjc3LEVOT1RVTklROjgwLEVCQURGRDo4MSxF
UkVNQ0hHOjgyLEVMSUJBQ0M6ODMsRUxJQkJBRDo4NCxFTElCU0NOOjg1LEVMSUJNQVg6ODYsRUxJ
QkVYRUM6ODcsRU5PU1lTOjg4LEVOT1RFTVBUWTo5MCxFTkFNRVRPT0xPTkc6OTEsRUxPT1A6OTIs
RU9QTk9UU1VQUDo5NSxFUEZOT1NVUFBPUlQ6OTYsRUNPTk5SRVNFVDoxMDQsRU5PQlVGUzoxMDUs
RUFGTk9TVVBQT1JUOjEwNixFUFJPVE9UWVBFOjEwNyxFTk9UU09DSzoxMDgsRU5PUFJPVE9PUFQ6
MTA5LEVTSFVURE9XTjoxMTAsRUNPTk5SRUZVU0VEOjExMSxFQUREUklOVVNFOjExMixFQ09OTkFC
T1JURUQ6MTEzLEVORVRVTlJFQUNIOjExNCxFTkVURE9XTjoxMTUsRVRJTUVET1VUOjExNixFSE9T
VERPV046MTE3LEVIT1NUVU5SRUFDSDoxMTgsRUlOUFJPR1JFU1M6MTE5LEVBTFJFQURZOjEyMCxF
REVTVEFERFJSRVE6MTIxLEVNU0dTSVpFOjEyMixFUFJPVE9OT1NVUFBPUlQ6MTIzLEVTT0NLVE5P
U1VQUE9SVDoxMjQsRUFERFJOT1RBVkFJTDoxMjUsRU5FVFJFU0VUOjEyNixFSVNDT05OOjEyNyxF
Tk9UQ09OTjoxMjgsRVRPT01BTllSRUZTOjEyOSxFVVNFUlM6MTMxLEVEUVVPVDoxMzIsRVNUQUxF
OjEzMyxFTk9UU1VQOjEzNCxFTk9NRURJVU06MTM1LEVJTFNFUToxMzgsRU9WRVJGTE9XOjEzOSxF
Q0FOQ0VMRUQ6MTQwLEVOT1RSRUNPVkVSQUJMRToxNDEsRU9XTkVSREVBRDoxNDIsRVNUUlBJUEU6
MTQzfTsKLSAgdmFyIEVSUk5PX01FU1NBR0VTPXswOiJTdWNjZXNzIiwxOiJOb3Qgc3VwZXItdXNl
ciIsMjoiTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSIsMzoiTm8gc3VjaCBwcm9jZXNzIiw0OiJJ
bnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbCIsNToiSS9PIGVycm9yIiw2OiJObyBzdWNoIGRldmljZSBv
ciBhZGRyZXNzIiw3OiJBcmcgbGlzdCB0b28gbG9uZyIsODoiRXhlYyBmb3JtYXQgZXJyb3IiLDk6
IkJhZCBmaWxlIG51bWJlciIsMTA6Ik5vIGNoaWxkcmVuIiwxMToiTm8gbW9yZSBwcm9jZXNzZXMi
LDEyOiJOb3QgZW5vdWdoIGNvcmUiLDEzOiJQZXJtaXNzaW9uIGRlbmllZCIsMTQ6IkJhZCBhZGRy
ZXNzIiwxNToiQmxvY2sgZGV2aWNlIHJlcXVpcmVkIiwxNjoiTW91bnQgZGV2aWNlIGJ1c3kiLDE3
OiJGaWxlIGV4aXN0cyIsMTg6IkNyb3NzLWRldmljZSBsaW5rIiwxOToiTm8gc3VjaCBkZXZpY2Ui
LDIwOiJOb3QgYSBkaXJlY3RvcnkiLDIxOiJJcyBhIGRpcmVjdG9yeSIsMjI6IkludmFsaWQgYXJn
dW1lbnQiLDIzOiJUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbSIsMjQ6IlRvbyBtYW55IG9w
ZW4gZmlsZXMiLDI1OiJOb3QgYSB0eXBld3JpdGVyIiwyNjoiVGV4dCBmaWxlIGJ1c3kiLDI3OiJG
aWxlIHRvbyBsYXJnZSIsMjg6Ik5vIHNwYWNlIGxlZnQgb24gZGV2aWNlIiwyOToiSWxsZWdhbCBz
ZWVrIiwzMDoiUmVhZCBvbmx5IGZpbGUgc3lzdGVtIiwzMToiVG9vIG1hbnkgbGlua3MiLDMyOiJC
cm9rZW4gcGlwZSIsMzM6Ik1hdGggYXJnIG91dCBvZiBkb21haW4gb2YgZnVuYyIsMzQ6Ik1hdGgg
cmVzdWx0IG5vdCByZXByZXNlbnRhYmxlIiwzNToiTm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUi
LDM2OiJJZGVudGlmaWVyIHJlbW92ZWQiLDM3OiJDaGFubmVsIG51bWJlciBvdXQgb2YgcmFuZ2Ui
LDM4OiJMZXZlbCAyIG5vdCBzeW5jaHJvbml6ZWQiLDM5OiJMZXZlbCAzIGhhbHRlZCIsNDA6Ikxl
dmVsIDMgcmVzZXQiLDQxOiJMaW5rIG51bWJlciBvdXQgb2YgcmFuZ2UiLDQyOiJQcm90b2NvbCBk
cml2ZXIgbm90IGF0dGFjaGVkIiw0MzoiTm8gQ1NJIHN0cnVjdHVyZSBhdmFpbGFibGUiLDQ0OiJM
ZXZlbCAyIGhhbHRlZCIsNDU6IkRlYWRsb2NrIGNvbmRpdGlvbiIsNDY6Ik5vIHJlY29yZCBsb2Nr
cyBhdmFpbGFibGUiLDUwOiJJbnZhbGlkIGV4Y2hhbmdlIiw1MToiSW52YWxpZCByZXF1ZXN0IGRl
c2NyaXB0b3IiLDUyOiJFeGNoYW5nZSBmdWxsIiw1MzoiTm8gYW5vZGUiLDU0OiJJbnZhbGlkIHJl
cXVlc3QgY29kZSIsNTU6IkludmFsaWQgc2xvdCIsNTY6IkZpbGUgbG9ja2luZyBkZWFkbG9jayBl
cnJvciIsNTc6IkJhZCBmb250IGZpbGUgZm10Iiw2MDoiRGV2aWNlIG5vdCBhIHN0cmVhbSIsNjE6
Ik5vIGRhdGEgKGZvciBubyBkZWxheSBpbykiLDYyOiJUaW1lciBleHBpcmVkIiw2MzoiT3V0IG9m
IHN0cmVhbXMgcmVzb3VyY2VzIiw2NDoiTWFjaGluZSBpcyBub3Qgb24gdGhlIG5ldHdvcmsiLDY1
OiJQYWNrYWdlIG5vdCBpbnN0YWxsZWQiLDY2OiJUaGUgb2JqZWN0IGlzIHJlbW90ZSIsNjc6IlRo
ZSBsaW5rIGhhcyBiZWVuIHNldmVyZWQiLDY4OiJBZHZlcnRpc2UgZXJyb3IiLDY5OiJTcm1vdW50
IGVycm9yIiw3MDoiQ29tbXVuaWNhdGlvbiBlcnJvciBvbiBzZW5kIiw3MToiUHJvdG9jb2wgZXJy
b3IiLDc0OiJNdWx0aWhvcCBhdHRlbXB0ZWQiLDc2OiJDcm9zcyBtb3VudCBwb2ludCAobm90IHJl
YWxseSBlcnJvcikiLDc3OiJUcnlpbmcgdG8gcmVhZCB1bnJlYWRhYmxlIG1lc3NhZ2UiLDgwOiJH
aXZlbiBsb2cuIG5hbWUgbm90IHVuaXF1ZSIsODE6ImYuZC4gaW52YWxpZCBmb3IgdGhpcyBvcGVy
YXRpb24iLDgyOiJSZW1vdGUgYWRkcmVzcyBjaGFuZ2VkIiw4MzoiQ2FuICAgYWNjZXNzIGEgbmVl
ZGVkIHNoYXJlZCBsaWIiLDg0OiJBY2Nlc3NpbmcgYSBjb3JydXB0ZWQgc2hhcmVkIGxpYiIsODU6
Ii5saWIgc2VjdGlvbiBpbiBhLm91dCBjb3JydXB0ZWQiLDg2OiJBdHRlbXB0aW5nIHRvIGxpbmsg
aW4gdG9vIG1hbnkgbGlicyIsODc6IkF0dGVtcHRpbmcgdG8gZXhlYyBhIHNoYXJlZCBsaWJyYXJ5
Iiw4ODoiRnVuY3Rpb24gbm90IGltcGxlbWVudGVkIiw5MDoiRGlyZWN0b3J5IG5vdCBlbXB0eSIs
OTE6IkZpbGUgb3IgcGF0aCBuYW1lIHRvbyBsb25nIiw5MjoiVG9vIG1hbnkgc3ltYm9saWMgbGlu
a3MiLDk1OiJPcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiB0cmFuc3BvcnQgZW5kcG9pbnQiLDk2
OiJQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZCIsMTA0OiJDb25uZWN0aW9uIHJlc2V0IGJ5
IHBlZXIiLDEwNToiTm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZSIsMTA2OiJBZGRyZXNzIGZhbWls
eSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sIGZhbWlseSIsMTA3OiJQcm90b2NvbCB3cm9uZyB0
eXBlIGZvciBzb2NrZXQiLDEwODoiU29ja2V0IG9wZXJhdGlvbiBvbiBub24tc29ja2V0IiwxMDk6
IlByb3RvY29sIG5vdCBhdmFpbGFibGUiLDExMDoiQ2FuJ3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1
dGRvd24iLDExMToiQ29ubmVjdGlvbiByZWZ1c2VkIiwxMTI6IkFkZHJlc3MgYWxyZWFkeSBpbiB1
c2UiLDExMzoiQ29ubmVjdGlvbiBhYm9ydGVkIiwxMTQ6Ik5ldHdvcmsgaXMgdW5yZWFjaGFibGUi
LDExNToiTmV0d29yayBpbnRlcmZhY2UgaXMgbm90IGNvbmZpZ3VyZWQiLDExNjoiQ29ubmVjdGlv
biB0aW1lZCBvdXQiLDExNzoiSG9zdCBpcyBkb3duIiwxMTg6Ikhvc3QgaXMgdW5yZWFjaGFibGUi
LDExOToiQ29ubmVjdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzIiwxMjA6IlNvY2tldCBhbHJlYWR5
IGNvbm5lY3RlZCIsMTIxOiJEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkIiwxMjI6Ik1lc3Nh
Z2UgdG9vIGxvbmciLDEyMzoiVW5rbm93biBwcm90b2NvbCIsMTI0OiJTb2NrZXQgdHlwZSBub3Qg
c3VwcG9ydGVkIiwxMjU6IkFkZHJlc3Mgbm90IGF2YWlsYWJsZSIsMTI2OiJDb25uZWN0aW9uIHJl
c2V0IGJ5IG5ldHdvcmsiLDEyNzoiU29ja2V0IGlzIGFscmVhZHkgY29ubmVjdGVkIiwxMjg6IlNv
Y2tldCBpcyBub3QgY29ubmVjdGVkIiwxMjk6IlRvbyBtYW55IHJlZmVyZW5jZXMiLDEzMToiVG9v
IG1hbnkgdXNlcnMiLDEzMjoiUXVvdGEgZXhjZWVkZWQiLDEzMzoiU3RhbGUgZmlsZSBoYW5kbGUi
LDEzNDoiTm90IHN1cHBvcnRlZCIsMTM1OiJObyBtZWRpdW0gKGluIHRhcGUgZHJpdmUpIiwxMzg6
IklsbGVnYWwgYnl0ZSBzZXF1ZW5jZSIsMTM5OiJWYWx1ZSB0b28gbGFyZ2UgZm9yIGRlZmluZWQg
ZGF0YSB0eXBlIiwxNDA6Ik9wZXJhdGlvbiBjYW5jZWxlZCIsMTQxOiJTdGF0ZSBub3QgcmVjb3Zl
cmFibGUiLDE0MjoiUHJldmlvdXMgb3duZXIgZGllZCIsMTQzOiJTdHJlYW1zIHBpcGUgZXJyb3Ii
fTsKLSAgdmFyIF9fX2Vycm5vX3N0YXRlPTA7ZnVuY3Rpb24gX19fc2V0RXJyTm8odmFsdWUpIHsK
LSAgICAgIC8vIEZvciBjb252ZW5pZW50IHNldHRpbmcgYW5kIHJldHVybmluZyBvZiBlcnJuby4K
LSAgICAgIEhFQVAzMlsoKF9fX2Vycm5vX3N0YXRlKT4+MildPXZhbHVlCi0gICAgICByZXR1cm4g
dmFsdWU7Ci0gICAgfQotICB2YXIgVkZTPXVuZGVmaW5lZDsKLSAgdmFyIFBBVEg9e3NwbGl0UGF0
aDpmdW5jdGlvbiAoZmlsZW5hbWUpIHsKLSAgICAgICAgdmFyIHNwbGl0UGF0aFJlID0gL14oXC8/
fCkoW1xzXFNdKj8pKCg/OlwuezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwpKSg/OltcL10qKSQv
OwotICAgICAgICByZXR1cm4gc3BsaXRQYXRoUmUuZXhlYyhmaWxlbmFtZSkuc2xpY2UoMSk7Ci0g
ICAgICB9LG5vcm1hbGl6ZUFycmF5OmZ1bmN0aW9uIChwYXJ0cywgYWxsb3dBYm92ZVJvb3QpIHsK
LSAgICAgICAgLy8gaWYgdGhlIHBhdGggdHJpZXMgdG8gZ28gYWJvdmUgdGhlIHJvb3QsIGB1cGAg
ZW5kcyB1cCA+IDAKLSAgICAgICAgdmFyIHVwID0gMDsKLSAgICAgICAgZm9yICh2YXIgaSA9IHBh
cnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7Ci0gICAgICAgICAgdmFyIGxhc3QgPSBwYXJ0
c1tpXTsKLSAgICAgICAgICBpZiAobGFzdCA9PT0gJy4nKSB7Ci0gICAgICAgICAgICBwYXJ0cy5z
cGxpY2UoaSwgMSk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChsYXN0ID09PSAnLi4nKSB7Ci0gICAg
ICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMSk7Ci0gICAgICAgICAgICB1cCsrOwotICAgICAgICAg
IH0gZWxzZSBpZiAodXApIHsKLSAgICAgICAgICAgIHBhcnRzLnNwbGljZShpLCAxKTsKLSAgICAg
ICAgICAgIHVwLS07Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIC8vIGlmIHRoZSBw
YXRoIGlzIGFsbG93ZWQgdG8gZ28gYWJvdmUgdGhlIHJvb3QsIHJlc3RvcmUgbGVhZGluZyAuLnMK
LSAgICAgICAgaWYgKGFsbG93QWJvdmVSb290KSB7Ci0gICAgICAgICAgZm9yICg7IHVwLS07IHVw
KSB7Ci0gICAgICAgICAgICBwYXJ0cy51bnNoaWZ0KCcuLicpOwotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gcGFydHM7Ci0gICAgICB9LG5vcm1hbGl6ZTpmdW5jdGlvbiAo
cGF0aCkgewotICAgICAgICB2YXIgaXNBYnNvbHV0ZSA9IHBhdGguY2hhckF0KDApID09PSAnLycs
Ci0gICAgICAgICAgICB0cmFpbGluZ1NsYXNoID0gcGF0aC5zdWJzdHIoLTEpID09PSAnLyc7Ci0g
ICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgcGF0aAotICAgICAgICBwYXRoID0gUEFUSC5ub3JtYWxp
emVBcnJheShwYXRoLnNwbGl0KCcvJykuZmlsdGVyKGZ1bmN0aW9uKHApIHsKLSAgICAgICAgICBy
ZXR1cm4gISFwOwotICAgICAgICB9KSwgIWlzQWJzb2x1dGUpLmpvaW4oJy8nKTsKLSAgICAgICAg
aWYgKCFwYXRoICYmICFpc0Fic29sdXRlKSB7Ci0gICAgICAgICAgcGF0aCA9ICcuJzsKLSAgICAg
ICAgfQotICAgICAgICBpZiAocGF0aCAmJiB0cmFpbGluZ1NsYXNoKSB7Ci0gICAgICAgICAgcGF0
aCArPSAnLyc7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIChpc0Fic29sdXRlID8gJy8nIDog
JycpICsgcGF0aDsKLSAgICAgIH0sZGlybmFtZTpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICB2
YXIgcmVzdWx0ID0gUEFUSC5zcGxpdFBhdGgocGF0aCksCi0gICAgICAgICAgICByb290ID0gcmVz
dWx0WzBdLAotICAgICAgICAgICAgZGlyID0gcmVzdWx0WzFdOwotICAgICAgICBpZiAoIXJvb3Qg
JiYgIWRpcikgewotICAgICAgICAgIC8vIE5vIGRpcm5hbWUgd2hhdHNvZXZlcgotICAgICAgICAg
IHJldHVybiAnLic7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGRpcikgewotICAgICAgICAgIC8v
IEl0IGhhcyBhIGRpcm5hbWUsIHN0cmlwIHRyYWlsaW5nIHNsYXNoCi0gICAgICAgICAgZGlyID0g
ZGlyLnN1YnN0cigwLCBkaXIubGVuZ3RoIC0gMSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHJvb3QgKyBkaXI7Ci0gICAgICB9LGJhc2VuYW1lOmZ1bmN0aW9uIChwYXRoLCBleHQpIHsKLSAg
ICAgICAgLy8gRU1TQ1JJUFRFTiByZXR1cm4gJy8nJyBmb3IgJy8nLCBub3QgYW4gZW1wdHkgc3Ry
aW5nCi0gICAgICAgIGlmIChwYXRoID09PSAnLycpIHJldHVybiAnLyc7Ci0gICAgICAgIHZhciBm
ID0gUEFUSC5zcGxpdFBhdGgocGF0aClbMl07Ci0gICAgICAgIGlmIChleHQgJiYgZi5zdWJzdHIo
LTEgKiBleHQubGVuZ3RoKSA9PT0gZXh0KSB7Ci0gICAgICAgICAgZiA9IGYuc3Vic3RyKDAsIGYu
bGVuZ3RoIC0gZXh0Lmxlbmd0aCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGY7Ci0gICAg
ICB9LGpvaW46ZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgcGF0aHMgPSBBcnJheS5wcm90b3R5
cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDApOwotICAgICAgICByZXR1cm4gUEFUSC5ub3JtYWxp
emUocGF0aHMuZmlsdGVyKGZ1bmN0aW9uKHAsIGluZGV4KSB7Ci0gICAgICAgICAgaWYgKHR5cGVv
ZiBwICE9PSAnc3RyaW5nJykgewotICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJn
dW1lbnRzIHRvIHBhdGguam9pbiBtdXN0IGJlIHN0cmluZ3MnKTsKLSAgICAgICAgICB9Ci0gICAg
ICAgICAgcmV0dXJuIHA7Ci0gICAgICAgIH0pLmpvaW4oJy8nKSk7Ci0gICAgICB9LHJlc29sdmU6
ZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgcmVzb2x2ZWRQYXRoID0gJycsCi0gICAgICAgICAg
cmVzb2x2ZWRBYnNvbHV0ZSA9IGZhbHNlOwotICAgICAgICBmb3IgKHZhciBpID0gYXJndW1lbnRz
Lmxlbmd0aCAtIDE7IGkgPj0gLTEgJiYgIXJlc29sdmVkQWJzb2x1dGU7IGktLSkgewotICAgICAg
ICAgIHZhciBwYXRoID0gKGkgPj0gMCkgPyBhcmd1bWVudHNbaV0gOiBGUy5jd2QoKTsKLSAgICAg
ICAgICAvLyBTa2lwIGVtcHR5IGFuZCBpbnZhbGlkIGVudHJpZXMKLSAgICAgICAgICBpZiAodHlw
ZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9y
KCdBcmd1bWVudHMgdG8gcGF0aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5ncycpOwotICAgICAgICAg
IH0gZWxzZSBpZiAoIXBhdGgpIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIH0K
LSAgICAgICAgICByZXNvbHZlZFBhdGggPSBwYXRoICsgJy8nICsgcmVzb2x2ZWRQYXRoOwotICAg
ICAgICAgIHJlc29sdmVkQWJzb2x1dGUgPSBwYXRoLmNoYXJBdCgwKSA9PT0gJy8nOwotICAgICAg
ICB9Ci0gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgdGhlIHBhdGggc2hvdWxkIGJlIHJlc29sdmVk
IHRvIGEgZnVsbCBhYnNvbHV0ZSBwYXRoLCBidXQKLSAgICAgICAgLy8gaGFuZGxlIHJlbGF0aXZl
IHBhdGhzIHRvIGJlIHNhZmUgKG1pZ2h0IGhhcHBlbiB3aGVuIHByb2Nlc3MuY3dkKCkgZmFpbHMp
Ci0gICAgICAgIHJlc29sdmVkUGF0aCA9IFBBVEgubm9ybWFsaXplQXJyYXkocmVzb2x2ZWRQYXRo
LnNwbGl0KCcvJykuZmlsdGVyKGZ1bmN0aW9uKHApIHsKLSAgICAgICAgICByZXR1cm4gISFwOwot
ICAgICAgICB9KSwgIXJlc29sdmVkQWJzb2x1dGUpLmpvaW4oJy8nKTsKLSAgICAgICAgcmV0dXJu
ICgocmVzb2x2ZWRBYnNvbHV0ZSA/ICcvJyA6ICcnKSArIHJlc29sdmVkUGF0aCkgfHwgJy4nOwot
ICAgICAgfSxyZWxhdGl2ZTpmdW5jdGlvbiAoZnJvbSwgdG8pIHsKLSAgICAgICAgZnJvbSA9IFBB
VEgucmVzb2x2ZShmcm9tKS5zdWJzdHIoMSk7Ci0gICAgICAgIHRvID0gUEFUSC5yZXNvbHZlKHRv
KS5zdWJzdHIoMSk7Ci0gICAgICAgIGZ1bmN0aW9uIHRyaW0oYXJyKSB7Ci0gICAgICAgICAgdmFy
IHN0YXJ0ID0gMDsKLSAgICAgICAgICBmb3IgKDsgc3RhcnQgPCBhcnIubGVuZ3RoOyBzdGFydCsr
KSB7Ci0gICAgICAgICAgICBpZiAoYXJyW3N0YXJ0XSAhPT0gJycpIGJyZWFrOwotICAgICAgICAg
IH0KLSAgICAgICAgICB2YXIgZW5kID0gYXJyLmxlbmd0aCAtIDE7Ci0gICAgICAgICAgZm9yICg7
IGVuZCA+PSAwOyBlbmQtLSkgewotICAgICAgICAgICAgaWYgKGFycltlbmRdICE9PSAnJykgYnJl
YWs7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChzdGFydCA+IGVuZCkgcmV0dXJuIFtdOwot
ICAgICAgICAgIHJldHVybiBhcnIuc2xpY2Uoc3RhcnQsIGVuZCAtIHN0YXJ0ICsgMSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgdmFyIGZyb21QYXJ0cyA9IHRyaW0oZnJvbS5zcGxpdCgnLycpKTsKLSAg
ICAgICAgdmFyIHRvUGFydHMgPSB0cmltKHRvLnNwbGl0KCcvJykpOwotICAgICAgICB2YXIgbGVu
Z3RoID0gTWF0aC5taW4oZnJvbVBhcnRzLmxlbmd0aCwgdG9QYXJ0cy5sZW5ndGgpOwotICAgICAg
ICB2YXIgc2FtZVBhcnRzTGVuZ3RoID0gbGVuZ3RoOwotICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgaWYgKGZyb21QYXJ0c1tpXSAhPT0gdG9QYXJ0
c1tpXSkgewotICAgICAgICAgICAgc2FtZVBhcnRzTGVuZ3RoID0gaTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB2YXIgb3V0cHV0UGFydHMgPSBb
XTsKLSAgICAgICAgZm9yICh2YXIgaSA9IHNhbWVQYXJ0c0xlbmd0aDsgaSA8IGZyb21QYXJ0cy5s
ZW5ndGg7IGkrKykgewotICAgICAgICAgIG91dHB1dFBhcnRzLnB1c2goJy4uJyk7Ci0gICAgICAg
IH0KLSAgICAgICAgb3V0cHV0UGFydHMgPSBvdXRwdXRQYXJ0cy5jb25jYXQodG9QYXJ0cy5zbGlj
ZShzYW1lUGFydHNMZW5ndGgpKTsKLSAgICAgICAgcmV0dXJuIG91dHB1dFBhcnRzLmpvaW4oJy8n
KTsKLSAgICAgIH19OwotICB2YXIgVFRZPXt0dHlzOltdLHJlZ2lzdGVyOmZ1bmN0aW9uIChkZXYs
IG9wcykgewotICAgICAgICBUVFkudHR5c1tkZXZdID0geyBpbnB1dDogW10sIG91dHB1dDogW10s
IG9wczogb3BzIH07Ci0gICAgICAgIEZTLnJlZ2lzdGVyRGV2aWNlKGRldiwgVFRZLnN0cmVhbV9v
cHMpOwotICAgICAgfSxzdHJlYW1fb3BzOntvcGVuOmZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICAg
ICAgICAvLyB0aGlzIHdvdWxkbid0IGJlIHJlcXVpcmVkIGlmIHRoZSBsaWJyYXJ5IHdhc24ndCBl
dmFsJ2QgYXQgZmlyc3QuLi4KLSAgICAgICAgICBpZiAoIVRUWS51dGY4KSB7Ci0gICAgICAgICAg
ICBUVFkudXRmOCA9IG5ldyBSdW50aW1lLlVURjhQcm9jZXNzb3IoKTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgdmFyIHR0eSA9IFRUWS50dHlzW3N0cmVhbS5ub2RlLnJkZXZdOwotICAgICAgICAg
IGlmICghdHR5KSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FTk9ERVYpOwotICAgICAgICAgIH0KLSAgICAgICAgICBzdHJlYW0udHR5ID0gdHR5Owot
ICAgICAgICAgIHN0cmVhbS5zZWVrYWJsZSA9IGZhbHNlOwotICAgICAgICB9LGNsb3NlOmZ1bmN0
aW9uIChzdHJlYW0pIHsKLSAgICAgICAgICAvLyBmbHVzaCBhbnkgcGVuZGluZyBsaW5lIGRhdGEK
LSAgICAgICAgICBpZiAoc3RyZWFtLnR0eS5vdXRwdXQubGVuZ3RoKSB7Ci0gICAgICAgICAgICBz
dHJlYW0udHR5Lm9wcy5wdXRfY2hhcihzdHJlYW0udHR5LCAxMCk7Ci0gICAgICAgICAgfQotICAg
ICAgICB9LHJlYWQ6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9z
IC8qIGlnbm9yZWQgKi8pIHsKLSAgICAgICAgICBpZiAoIXN0cmVhbS50dHkgfHwgIXN0cmVhbS50
dHkub3BzLmdldF9jaGFyKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihF
UlJOT19DT0RFUy5FTlhJTyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBieXRlc1JlYWQg
PSAwOwotICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICAgIHZhciByZXN1bHQ7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICByZXN1
bHQgPSBzdHJlYW0udHR5Lm9wcy5nZXRfY2hhcihzdHJlYW0udHR5KTsKLSAgICAgICAgICAgIH0g
Y2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUlPKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHVu
ZGVmaW5lZCAmJiBieXRlc1JlYWQgPT09IDApIHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQpIGJyZWFrOwot
ICAgICAgICAgICAgYnl0ZXNSZWFkKys7Ci0gICAgICAgICAgICBidWZmZXJbb2Zmc2V0K2ldID0g
cmVzdWx0OwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoYnl0ZXNSZWFkKSB7Ci0gICAgICAg
ICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICByZXR1cm4gYnl0ZXNSZWFkOwotICAgICAgICB9LHdyaXRlOmZ1bmN0aW9uIChzdHJl
YW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvcykgewotICAgICAgICAgIGlmICghc3RyZWFt
LnR0eSB8fCAhc3RyZWFtLnR0eS5vcHMucHV0X2NoYXIpIHsKLSAgICAgICAgICAgIHRocm93IG5l
dyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOWElPKTsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgICAgc3RyZWFtLnR0eS5vcHMucHV0X2NoYXIoc3RyZWFtLnR0eSwgYnVmZmVy
W29mZnNldCtpXSk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgfQotICAgICAgICAgIGlmIChsZW5ndGgpIHsKLSAgICAgICAgICAgIHN0cmVhbS5u
b2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVy
biBpOwotICAgICAgICB9fSxkZWZhdWx0X3R0eV9vcHM6e2dldF9jaGFyOmZ1bmN0aW9uICh0dHkp
IHsKLSAgICAgICAgICBpZiAoIXR0eS5pbnB1dC5sZW5ndGgpIHsKLSAgICAgICAgICAgIHZhciBy
ZXN1bHQgPSBudWxsOwotICAgICAgICAgICAgaWYgKEVOVklST05NRU5UX0lTX05PREUpIHsKLSAg
ICAgICAgICAgICAgaWYgKHByb2Nlc3Muc3RkaW4uZGVzdHJveWVkKSB7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICByZXN1
bHQgPSBwcm9jZXNzLnN0ZGluLnJlYWQoKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9m
IHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJgotICAgICAgICAgICAgICB0eXBlb2Ygd2luZG93LnBy
b21wdCA9PSAnZnVuY3Rpb24nKSB7Ci0gICAgICAgICAgICAgIC8vIEJyb3dzZXIuCi0gICAgICAg
ICAgICAgIHJlc3VsdCA9IHdpbmRvdy5wcm9tcHQoJ0lucHV0OiAnKTsgIC8vIHJldHVybnMgbnVs
bCBvbiBjYW5jZWwKLSAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkgewotICAgICAg
ICAgICAgICAgIHJlc3VsdCArPSAnXG4nOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
IGVsc2UgaWYgKHR5cGVvZiByZWFkbGluZSA9PSAnZnVuY3Rpb24nKSB7Ci0gICAgICAgICAgICAg
IC8vIENvbW1hbmQgbGluZS4KLSAgICAgICAgICAgICAgcmVzdWx0ID0gcmVhZGxpbmUoKTsKLSAg
ICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJlc3Vs
dCArPSAnXG4nOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAoIXJlc3VsdCkgewotICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHR0eS5pbnB1dCA9IGludEFycmF5RnJvbVN0cmluZyhyZXN1bHQsIHRydWUp
OwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gdHR5LmlucHV0LnNoaWZ0KCk7Ci0gICAg
ICAgIH0scHV0X2NoYXI6ZnVuY3Rpb24gKHR0eSwgdmFsKSB7Ci0gICAgICAgICAgaWYgKHZhbCA9
PT0gbnVsbCB8fCB2YWwgPT09IDEwKSB7Ci0gICAgICAgICAgICBNb2R1bGVbJ3ByaW50J10odHR5
Lm91dHB1dC5qb2luKCcnKSk7Ci0gICAgICAgICAgICB0dHkub3V0cHV0ID0gW107Ci0gICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHR0eS5vdXRwdXQucHVzaChUVFkudXRmOC5wcm9jZXNz
Q0NoYXIodmFsKSk7Ci0gICAgICAgICAgfQotICAgICAgICB9fSxkZWZhdWx0X3R0eTFfb3BzOntw
dXRfY2hhcjpmdW5jdGlvbiAodHR5LCB2YWwpIHsKLSAgICAgICAgICBpZiAodmFsID09PSBudWxs
IHx8IHZhbCA9PT0gMTApIHsKLSAgICAgICAgICAgIE1vZHVsZVsncHJpbnRFcnInXSh0dHkub3V0
cHV0LmpvaW4oJycpKTsKLSAgICAgICAgICAgIHR0eS5vdXRwdXQgPSBbXTsKLSAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgdHR5Lm91dHB1dC5wdXNoKFRUWS51dGY4LnByb2Nlc3NDQ2hh
cih2YWwpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH19fTsKLSAgdmFyIE1FTUZTPXttb3VudDpm
dW5jdGlvbiAobW91bnQpIHsKLSAgICAgICAgcmV0dXJuIE1FTUZTLmNyZWF0ZV9ub2RlKG51bGws
ICcvJywgMDA0MDAwMCB8IDA3NzcsIDApOwotICAgICAgfSxjcmVhdGVfbm9kZTpmdW5jdGlvbiAo
cGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpIHsKLSAgICAgICAgaWYgKEZTLmlzQmxrZGV2KG1vZGUp
IHx8IEZTLmlzRklGTyhtb2RlKSkgewotICAgICAgICAgIC8vIG5vIHN1cHBvcnRlZAotICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAg
fQotICAgICAgICB2YXIgbm9kZSA9IEZTLmNyZWF0ZU5vZGUocGFyZW50LCBuYW1lLCBtb2RlLCBk
ZXYpOwotICAgICAgICBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAgICAgIG5vZGUu
bm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5nZXRhdHRy
LAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0YXR0ciwKLSAgICAgICAg
ICAgIGxvb2t1cDogTUVNRlMubm9kZV9vcHMubG9va3VwLAotICAgICAgICAgICAgbWtub2Q6IE1F
TUZTLm5vZGVfb3BzLm1rbm9kLAotICAgICAgICAgICAgbWtub2Q6IE1FTUZTLm5vZGVfb3BzLm1r
bm9kLAotICAgICAgICAgICAgcmVuYW1lOiBNRU1GUy5ub2RlX29wcy5yZW5hbWUsCi0gICAgICAg
ICAgICB1bmxpbms6IE1FTUZTLm5vZGVfb3BzLnVubGluaywKLSAgICAgICAgICAgIHJtZGlyOiBN
RU1GUy5ub2RlX29wcy5ybWRpciwKLSAgICAgICAgICAgIHJlYWRkaXI6IE1FTUZTLm5vZGVfb3Bz
LnJlYWRkaXIsCi0gICAgICAgICAgICBzeW1saW5rOiBNRU1GUy5ub2RlX29wcy5zeW1saW5rCi0g
ICAgICAgICAgfTsKLSAgICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSB7Ci0gICAgICAgICAgICBs
bHNlZWs6IE1FTUZTLnN0cmVhbV9vcHMubGxzZWVrCi0gICAgICAgICAgfTsKLSAgICAgICAgICBu
b2RlLmNvbnRlbnRzID0ge307Ci0gICAgICAgIH0gZWxzZSBpZiAoRlMuaXNGaWxlKG5vZGUubW9k
ZSkpIHsKLSAgICAgICAgICBub2RlLm5vZGVfb3BzID0gewotICAgICAgICAgICAgZ2V0YXR0cjog
TUVNRlMubm9kZV9vcHMuZ2V0YXR0ciwKLSAgICAgICAgICAgIHNldGF0dHI6IE1FTUZTLm5vZGVf
b3BzLnNldGF0dHIKLSAgICAgICAgICB9OwotICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IHsK
LSAgICAgICAgICAgIGxsc2VlazogTUVNRlMuc3RyZWFtX29wcy5sbHNlZWssCi0gICAgICAgICAg
ICByZWFkOiBNRU1GUy5zdHJlYW1fb3BzLnJlYWQsCi0gICAgICAgICAgICB3cml0ZTogTUVNRlMu
c3RyZWFtX29wcy53cml0ZSwKLSAgICAgICAgICAgIGFsbG9jYXRlOiBNRU1GUy5zdHJlYW1fb3Bz
LmFsbG9jYXRlLAotICAgICAgICAgICAgbW1hcDogTUVNRlMuc3RyZWFtX29wcy5tbWFwCi0gICAg
ICAgICAgfTsKLSAgICAgICAgICBub2RlLmNvbnRlbnRzID0gW107Ci0gICAgICAgIH0gZWxzZSBp
ZiAoRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBub2RlLm5vZGVfb3BzID0gewot
ICAgICAgICAgICAgZ2V0YXR0cjogTUVNRlMubm9kZV9vcHMuZ2V0YXR0ciwKLSAgICAgICAgICAg
IHNldGF0dHI6IE1FTUZTLm5vZGVfb3BzLnNldGF0dHIsCi0gICAgICAgICAgICByZWFkbGluazog
TUVNRlMubm9kZV9vcHMucmVhZGxpbmsKLSAgICAgICAgICB9OwotICAgICAgICAgIG5vZGUuc3Ry
ZWFtX29wcyA9IHt9OwotICAgICAgICB9IGVsc2UgaWYgKEZTLmlzQ2hyZGV2KG5vZGUubW9kZSkp
IHsKLSAgICAgICAgICBub2RlLm5vZGVfb3BzID0gewotICAgICAgICAgICAgZ2V0YXR0cjogTUVN
RlMubm9kZV9vcHMuZ2V0YXR0ciwKLSAgICAgICAgICAgIHNldGF0dHI6IE1FTUZTLm5vZGVfb3Bz
LnNldGF0dHIKLSAgICAgICAgICB9OwotICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IEZTLmNo
cmRldl9zdHJlYW1fb3BzOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUudGltZXN0YW1wID0gRGF0
ZS5ub3coKTsKLSAgICAgICAgLy8gYWRkIHRoZSBuZXcgbm9kZSB0byB0aGUgcGFyZW50Ci0gICAg
ICAgIGlmIChwYXJlbnQpIHsKLSAgICAgICAgICBwYXJlbnQuY29udGVudHNbbmFtZV0gPSBub2Rl
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgICAgfSxub2RlX29wczp7Z2V0
YXR0cjpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICAgIHZhciBhdHRyID0ge307Ci0gICAgICAg
ICAgLy8gZGV2aWNlIG51bWJlcnMgcmV1c2UgaW5vZGUgbnVtYmVycy4KLSAgICAgICAgICBhdHRy
LmRldiA9IEZTLmlzQ2hyZGV2KG5vZGUubW9kZSkgPyBub2RlLmlkIDogMTsKLSAgICAgICAgICBh
dHRyLmlubyA9IG5vZGUuaWQ7Ci0gICAgICAgICAgYXR0ci5tb2RlID0gbm9kZS5tb2RlOwotICAg
ICAgICAgIGF0dHIubmxpbmsgPSAxOwotICAgICAgICAgIGF0dHIudWlkID0gMDsKLSAgICAgICAg
ICBhdHRyLmdpZCA9IDA7Ci0gICAgICAgICAgYXR0ci5yZGV2ID0gbm9kZS5yZGV2OwotICAgICAg
ICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICBhdHRyLnNpemUgPSA0
MDk2OwotICAgICAgICAgIH0gZWxzZSBpZiAoRlMuaXNGaWxlKG5vZGUubW9kZSkpIHsKLSAgICAg
ICAgICAgIGF0dHIuc2l6ZSA9IG5vZGUuY29udGVudHMubGVuZ3RoOwotICAgICAgICAgIH0gZWxz
ZSBpZiAoRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIGF0dHIuc2l6ZSA9IG5v
ZGUubGluay5sZW5ndGg7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF0dHIuc2l6
ZSA9IDA7Ci0gICAgICAgICAgfQotICAgICAgICAgIGF0dHIuYXRpbWUgPSBuZXcgRGF0ZShub2Rl
LnRpbWVzdGFtcCk7Ci0gICAgICAgICAgYXR0ci5tdGltZSA9IG5ldyBEYXRlKG5vZGUudGltZXN0
YW1wKTsKLSAgICAgICAgICBhdHRyLmN0aW1lID0gbmV3IERhdGUobm9kZS50aW1lc3RhbXApOwot
ICAgICAgICAgIC8vIE5PVEU6IEluIG91ciBpbXBsZW1lbnRhdGlvbiwgc3RfYmxvY2tzID0gTWF0
aC5jZWlsKHN0X3NpemUvc3RfYmxrc2l6ZSksCi0gICAgICAgICAgLy8gICAgICAgYnV0IHRoaXMg
aXMgbm90IHJlcXVpcmVkIGJ5IHRoZSBzdGFuZGFyZC4KLSAgICAgICAgICBhdHRyLmJsa3NpemUg
PSA0MDk2OwotICAgICAgICAgIGF0dHIuYmxvY2tzID0gTWF0aC5jZWlsKGF0dHIuc2l6ZSAvIGF0
dHIuYmxrc2l6ZSk7Ci0gICAgICAgICAgcmV0dXJuIGF0dHI7Ci0gICAgICAgIH0sc2V0YXR0cjpm
dW5jdGlvbiAobm9kZSwgYXR0cikgewotICAgICAgICAgIGlmIChhdHRyLm1vZGUgIT09IHVuZGVm
aW5lZCkgewotICAgICAgICAgICAgbm9kZS5tb2RlID0gYXR0ci5tb2RlOwotICAgICAgICAgIH0K
LSAgICAgICAgICBpZiAoYXR0ci50aW1lc3RhbXAgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAg
ICAgbm9kZS50aW1lc3RhbXAgPSBhdHRyLnRpbWVzdGFtcDsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgaWYgKGF0dHIuc2l6ZSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICB2YXIgY29udGVu
dHMgPSBub2RlLmNvbnRlbnRzOwotICAgICAgICAgICAgaWYgKGF0dHIuc2l6ZSA8IGNvbnRlbnRz
Lmxlbmd0aCkgY29udGVudHMubGVuZ3RoID0gYXR0ci5zaXplOwotICAgICAgICAgICAgZWxzZSB3
aGlsZSAoYXR0ci5zaXplID4gY29udGVudHMubGVuZ3RoKSBjb250ZW50cy5wdXNoKDApOwotICAg
ICAgICAgIH0KLSAgICAgICAgfSxsb29rdXA6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSkgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VOVCk7Ci0gICAg
ICAgIH0sbWtub2Q6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KSB7Ci0gICAgICAg
ICAgcmV0dXJuIE1FTUZTLmNyZWF0ZV9ub2RlKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KTsKLSAg
ICAgICAgfSxyZW5hbWU6ZnVuY3Rpb24gKG9sZF9ub2RlLCBuZXdfZGlyLCBuZXdfbmFtZSkgewot
ICAgICAgICAgIC8vIGlmIHdlJ3JlIG92ZXJ3cml0aW5nIGEgZGlyZWN0b3J5IGF0IG5ld19uYW1l
LCBtYWtlIHN1cmUgaXQncyBlbXB0eS4KLSAgICAgICAgICBpZiAoRlMuaXNEaXIob2xkX25vZGUu
bW9kZSkpIHsKLSAgICAgICAgICAgIHZhciBuZXdfbm9kZTsKLSAgICAgICAgICAgIHRyeSB7Ci0g
ICAgICAgICAgICAgIG5ld19ub2RlID0gRlMubG9va3VwTm9kZShuZXdfZGlyLCBuZXdfbmFtZSk7
Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAobmV3X25vZGUpIHsKLSAgICAgICAgICAgICAgZm9yICh2YXIgaSBpbiBuZXdfbm9kZS5jb250
ZW50cykgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVOT1RFTVBUWSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICB9Ci0gICAgICAgICAgLy8gZG8gdGhlIGludGVybmFsIHJld2lyaW5nCi0gICAgICAgICAgZGVs
ZXRlIG9sZF9ub2RlLnBhcmVudC5jb250ZW50c1tvbGRfbm9kZS5uYW1lXTsKLSAgICAgICAgICBv
bGRfbm9kZS5uYW1lID0gbmV3X25hbWU7Ci0gICAgICAgICAgbmV3X2Rpci5jb250ZW50c1tuZXdf
bmFtZV0gPSBvbGRfbm9kZTsKLSAgICAgICAgfSx1bmxpbms6ZnVuY3Rpb24gKHBhcmVudCwgbmFt
ZSkgewotICAgICAgICAgIGRlbGV0ZSBwYXJlbnQuY29udGVudHNbbmFtZV07Ci0gICAgICAgIH0s
cm1kaXI6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSkgewotICAgICAgICAgIHZhciBub2RlID0gRlMu
bG9va3VwTm9kZShwYXJlbnQsIG5hbWUpOwotICAgICAgICAgIGZvciAodmFyIGkgaW4gbm9kZS5j
b250ZW50cykgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRU5PVEVNUFRZKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgZGVsZXRlIHBhcmVudC5jb250
ZW50c1tuYW1lXTsKLSAgICAgICAgfSxyZWFkZGlyOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAg
ICAgdmFyIGVudHJpZXMgPSBbJy4nLCAnLi4nXQotICAgICAgICAgIGZvciAodmFyIGtleSBpbiBu
b2RlLmNvbnRlbnRzKSB7Ci0gICAgICAgICAgICBpZiAoIW5vZGUuY29udGVudHMuaGFzT3duUHJv
cGVydHkoa2V5KSkgewotICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGVudHJpZXMucHVzaChrZXkpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1
cm4gZW50cmllczsKLSAgICAgICAgfSxzeW1saW5rOmZ1bmN0aW9uIChwYXJlbnQsIG5ld25hbWUs
IG9sZHBhdGgpIHsKLSAgICAgICAgICB2YXIgbm9kZSA9IE1FTUZTLmNyZWF0ZV9ub2RlKHBhcmVu
dCwgbmV3bmFtZSwgMDc3NyB8IDAxMjAwMDAsIDApOwotICAgICAgICAgIG5vZGUubGluayA9IG9s
ZHBhdGg7Ci0gICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgIH0scmVhZGxpbms6ZnVuY3Rp
b24gKG5vZGUpIHsKLSAgICAgICAgICBpZiAoIUZTLmlzTGluayhub2RlLm1vZGUpKSB7Ci0gICAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAg
ICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gbm9kZS5saW5rOwotICAgICAgICB9fSxzdHJlYW1f
b3BzOntyZWFkOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0
aW9uKSB7Ci0gICAgICAgICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7Ci0g
ICAgICAgICAgdmFyIHNpemUgPSBNYXRoLm1pbihjb250ZW50cy5sZW5ndGggLSBwb3NpdGlvbiwg
bGVuZ3RoKTsKLSAgICAgICAgICBpZiAoY29udGVudHMuc3ViYXJyYXkpIHsgLy8gdHlwZWQgYXJy
YXkKLSAgICAgICAgICAgIGJ1ZmZlci5zZXQoY29udGVudHMuc3ViYXJyYXkocG9zaXRpb24sIHBv
c2l0aW9uICsgc2l6ZSksIG9mZnNldCk7Ci0gICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgewot
ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICAgICAg
ICAgYnVmZmVyW29mZnNldCArIGldID0gY29udGVudHNbcG9zaXRpb24gKyBpXTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIHNpemU7Ci0gICAgICAgIH0sd3Jp
dGU6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsK
LSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAgICAg
ICB3aGlsZSAoY29udGVudHMubGVuZ3RoIDwgcG9zaXRpb24pIGNvbnRlbnRzLnB1c2goMCk7Ci0g
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICAgICAg
Y29udGVudHNbcG9zaXRpb24gKyBpXSA9IGJ1ZmZlcltvZmZzZXQgKyBpXTsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAg
ICByZXR1cm4gbGVuZ3RoOwotICAgICAgICB9LGxsc2VlazpmdW5jdGlvbiAoc3RyZWFtLCBvZmZz
ZXQsIHdoZW5jZSkgewotICAgICAgICAgIHZhciBwb3NpdGlvbiA9IG9mZnNldDsKLSAgICAgICAg
ICBpZiAod2hlbmNlID09PSAxKSB7ICAvLyBTRUVLX0NVUi4KLSAgICAgICAgICAgIHBvc2l0aW9u
ICs9IHN0cmVhbS5wb3NpdGlvbjsKLSAgICAgICAgICB9IGVsc2UgaWYgKHdoZW5jZSA9PT0gMikg
eyAgLy8gU0VFS19FTkQuCi0gICAgICAgICAgICBpZiAoRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1v
ZGUpKSB7Ci0gICAgICAgICAgICAgIHBvc2l0aW9uICs9IHN0cmVhbS5ub2RlLmNvbnRlbnRzLmxl
bmd0aDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHBvc2l0aW9u
IDwgMCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RUlOVkFMKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgc3RyZWFtLnVuZ290dGVuID0gW107Ci0g
ICAgICAgICAgc3RyZWFtLnBvc2l0aW9uID0gcG9zaXRpb247Ci0gICAgICAgICAgcmV0dXJuIHBv
c2l0aW9uOwotICAgICAgICB9LGFsbG9jYXRlOmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNldCwgbGVu
Z3RoKSB7Ci0gICAgICAgICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7Ci0g
ICAgICAgICAgdmFyIGxpbWl0ID0gb2Zmc2V0ICsgbGVuZ3RoOwotICAgICAgICAgIHdoaWxlIChs
aW1pdCA+IGNvbnRlbnRzLmxlbmd0aCkgY29udGVudHMucHVzaCgwKTsKLSAgICAgICAgfSxtbWFw
OmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uLCBwcm90
LCBmbGFncykgewotICAgICAgICAgIGlmICghRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpKSB7
Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9ERVYp
OwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgcHRyOwotICAgICAgICAgIHZhciBhbGxvY2F0
ZWQ7Ci0gICAgICAgICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7Ci0gICAg
ICAgICAgLy8gT25seSBtYWtlIGEgbmV3IGNvcHkgd2hlbiBNQVBfUFJJVkFURSBpcyBzcGVjaWZp
ZWQuCi0gICAgICAgICAgaWYgKCEoZmxhZ3MgJiAweDAyKSkgewotICAgICAgICAgICAgLy8gV2Ug
Y2FuJ3QgZW11bGF0ZSBNQVBfU0hBUkVEIHdoZW4gdGhlIGZpbGUgaXMgbm90IGJhY2tlZCBieSB0
aGUgYnVmZmVyCi0gICAgICAgICAgICAvLyB3ZSdyZSBtYXBwaW5nIHRvIChlLmcuIHRoZSBIRUFQ
IGJ1ZmZlcikuCi0gICAgICAgICAgICBhc3NlcnQoY29udGVudHMuYnVmZmVyID09PSBidWZmZXIg
fHwgY29udGVudHMuYnVmZmVyID09PSBidWZmZXIuYnVmZmVyKTsKLSAgICAgICAgICAgIGFsbG9j
YXRlZCA9IGZhbHNlOwotICAgICAgICAgICAgcHRyID0gY29udGVudHMuYnl0ZU9mZnNldDsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gVHJ5IHRvIGF2b2lkIHVubmVjZXNzYXJ5
IHNsaWNlcy4KLSAgICAgICAgICAgIGlmIChwb3NpdGlvbiA+IDAgfHwgcG9zaXRpb24gKyBsZW5n
dGggPCBjb250ZW50cy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgaWYgKGNvbnRlbnRzLnN1YmFy
cmF5KSB7Ci0gICAgICAgICAgICAgICAgY29udGVudHMgPSBjb250ZW50cy5zdWJhcnJheShwb3Np
dGlvbiwgcG9zaXRpb24gKyBsZW5ndGgpOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGNvbnRlbnRzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoY29udGVudHMs
IHBvc2l0aW9uLCBwb3NpdGlvbiArIGxlbmd0aCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGFsbG9jYXRlZCA9IHRydWU7Ci0gICAgICAgICAgICBwdHIgPSBf
bWFsbG9jKGxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAoIXB0cikgewotICAgICAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9NRU0pOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgYnVmZmVyLnNldChjb250ZW50cywgcHRyKTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgcmV0dXJuIHsgcHRyOiBwdHIsIGFsbG9jYXRlZDogYWxsb2NhdGVkIH07Ci0gICAg
ICAgIH19fTsKLSAgdmFyIF9zdGRpbj1hbGxvY2F0ZSgxLCAiaTMyKiIsIEFMTE9DX1NUQVRJQyk7
Ci0gIHZhciBfc3Rkb3V0PWFsbG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElDKTsKLSAgdmFy
IF9zdGRlcnI9YWxsb2NhdGUoMSwgImkzMioiLCBBTExPQ19TVEFUSUMpOwotICBmdW5jdGlvbiBf
ZmZsdXNoKHN0cmVhbSkgewotICAgICAgLy8gaW50IGZmbHVzaChGSUxFICpzdHJlYW0pOwotICAg
ICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5j
dGlvbnMvZmZsdXNoLmh0bWwKLSAgICAgIC8vIHdlIGRvbid0IGN1cnJlbnRseSBwZXJmb3JtIGFu
eSB1c2VyLXNwYWNlIGJ1ZmZlcmluZyBvZiBkYXRhCi0gICAgfXZhciBGUz17cm9vdDpudWxsLG5v
ZGVzOltudWxsXSxkZXZpY2VzOltudWxsXSxzdHJlYW1zOltudWxsXSxuZXh0SW5vZGU6MSxuYW1l
X3RhYmxlOm51bGwsY3VycmVudFBhdGg6Ii8iLGluaXRpYWxpemVkOmZhbHNlLGlnbm9yZVBlcm1p
c3Npb25zOnRydWUsRXJybm9FcnJvcjpmdW5jdGlvbiBFcnJub0Vycm9yKGVycm5vKSB7Ci0gICAg
ICAgICAgdGhpcy5lcnJubyA9IGVycm5vOwotICAgICAgICAgIGZvciAodmFyIGtleSBpbiBFUlJO
T19DT0RFUykgewotICAgICAgICAgICAgaWYgKEVSUk5PX0NPREVTW2tleV0gPT09IGVycm5vKSB7
Ci0gICAgICAgICAgICAgIHRoaXMuY29kZSA9IGtleTsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHRoaXMubWVzc2FnZSA9IEVSUk5P
X01FU1NBR0VTW2Vycm5vXTsKLSAgICAgICAgfSxoYW5kbGVGU0Vycm9yOmZ1bmN0aW9uIChlKSB7
Ci0gICAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgdGhyb3cgZSArICcg
OiAnICsgbmV3IEVycm9yKCkuc3RhY2s7Ci0gICAgICAgIHJldHVybiBfX19zZXRFcnJObyhlLmVy
cm5vKTsKLSAgICAgIH0saGFzaE5hbWU6ZnVuY3Rpb24gKHBhcmVudGlkLCBuYW1lKSB7Ci0gICAg
ICAgIHZhciBoYXNoID0gMDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0
aDsgaSsrKSB7Ci0gICAgICAgICAgaGFzaCA9ICgoaGFzaCA8PCA1KSAtIGhhc2ggKyBuYW1lLmNo
YXJDb2RlQXQoaSkpIHwgMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gKChwYXJlbnRpZCAr
IGhhc2gpID4+PiAwKSAlIEZTLm5hbWVfdGFibGUubGVuZ3RoOwotICAgICAgfSxoYXNoQWRkTm9k
ZTpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICB2YXIgaGFzaCA9IEZTLmhhc2hOYW1lKG5vZGUu
cGFyZW50LmlkLCBub2RlLm5hbWUpOwotICAgICAgICBub2RlLm5hbWVfbmV4dCA9IEZTLm5hbWVf
dGFibGVbaGFzaF07Ci0gICAgICAgIEZTLm5hbWVfdGFibGVbaGFzaF0gPSBub2RlOwotICAgICAg
fSxoYXNoUmVtb3ZlTm9kZTpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICB2YXIgaGFzaCA9IEZT
Lmhhc2hOYW1lKG5vZGUucGFyZW50LmlkLCBub2RlLm5hbWUpOwotICAgICAgICBpZiAoRlMubmFt
ZV90YWJsZVtoYXNoXSA9PT0gbm9kZSkgewotICAgICAgICAgIEZTLm5hbWVfdGFibGVbaGFzaF0g
PSBub2RlLm5hbWVfbmV4dDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgY3VycmVu
dCA9IEZTLm5hbWVfdGFibGVbaGFzaF07Ci0gICAgICAgICAgd2hpbGUgKGN1cnJlbnQpIHsKLSAg
ICAgICAgICAgIGlmIChjdXJyZW50Lm5hbWVfbmV4dCA9PT0gbm9kZSkgewotICAgICAgICAgICAg
ICBjdXJyZW50Lm5hbWVfbmV4dCA9IG5vZGUubmFtZV9uZXh0OwotICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5hbWVfbmV4
dDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0sbG9va3VwTm9kZTpmdW5jdGlvbiAo
cGFyZW50LCBuYW1lKSB7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlMb29rdXAocGFyZW50KTsK
LSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVy
cik7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGhhc2ggPSBGUy5oYXNoTmFtZShwYXJlbnQuaWQs
IG5hbWUpOwotICAgICAgICBmb3IgKHZhciBub2RlID0gRlMubmFtZV90YWJsZVtoYXNoXTsgbm9k
ZTsgbm9kZSA9IG5vZGUubmFtZV9uZXh0KSB7Ci0gICAgICAgICAgaWYgKG5vZGUucGFyZW50Lmlk
ID09PSBwYXJlbnQuaWQgJiYgbm9kZS5uYW1lID09PSBuYW1lKSB7Ci0gICAgICAgICAgICByZXR1
cm4gbm9kZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gaWYgd2UgZmFpbGVk
IHRvIGZpbmQgaXQgaW4gdGhlIGNhY2hlLCBjYWxsIGludG8gdGhlIFZGUwotICAgICAgICByZXR1
cm4gRlMubG9va3VwKHBhcmVudCwgbmFtZSk7Ci0gICAgICB9LGNyZWF0ZU5vZGU6ZnVuY3Rpb24g
KHBhcmVudCwgbmFtZSwgbW9kZSwgcmRldikgewotICAgICAgICB2YXIgbm9kZSA9IHsKLSAgICAg
ICAgICBpZDogRlMubmV4dElub2RlKyssCi0gICAgICAgICAgbmFtZTogbmFtZSwKLSAgICAgICAg
ICBtb2RlOiBtb2RlLAotICAgICAgICAgIG5vZGVfb3BzOiB7fSwKLSAgICAgICAgICBzdHJlYW1f
b3BzOiB7fSwKLSAgICAgICAgICByZGV2OiByZGV2LAotICAgICAgICAgIHBhcmVudDogbnVsbCwK
LSAgICAgICAgICBtb3VudDogbnVsbAotICAgICAgICB9OwotICAgICAgICBpZiAoIXBhcmVudCkg
ewotICAgICAgICAgIHBhcmVudCA9IG5vZGU7ICAvLyByb290IG5vZGUgc2V0cyBwYXJlbnQgdG8g
aXRzZWxmCi0gICAgICAgIH0KLSAgICAgICAgbm9kZS5wYXJlbnQgPSBwYXJlbnQ7Ci0gICAgICAg
IG5vZGUubW91bnQgPSBwYXJlbnQubW91bnQ7Ci0gICAgICAgIC8vIGNvbXBhdGliaWxpdHkKLSAg
ICAgICAgdmFyIHJlYWRNb2RlID0gMjkyIHwgNzM7Ci0gICAgICAgIHZhciB3cml0ZU1vZGUgPSAx
NDY7Ci0gICAgICAgIC8vIE5PVEUgd2UgbXVzdCB1c2UgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMg
aW5zdGVhZCBvZiBpbmRpdmlkdWFsIGNhbGxzIHRvCi0gICAgICAgIC8vIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSBpbiBvcmRlciB0byBtYWtlIGNsb3N1cmUgY29tcGlsZXIgaGFwcHkKLSAgICAgICAg
T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobm9kZSwgewotICAgICAgICAgIHJlYWQ6IHsKLSAgICAg
ICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiAobm9kZS5tb2RlICYgcmVhZE1vZGUpID09
PSByZWFkTW9kZTsgfSwKLSAgICAgICAgICAgIHNldDogZnVuY3Rpb24odmFsKSB7IHZhbCA/IG5v
ZGUubW9kZSB8PSByZWFkTW9kZSA6IG5vZGUubW9kZSAmPSB+cmVhZE1vZGU7IH0KLSAgICAgICAg
ICB9LAotICAgICAgICAgIHdyaXRlOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gKG5vZGUubW9kZSAmIHdyaXRlTW9kZSkgPT09IHdyaXRlTW9kZTsgfSwKLSAgICAgICAg
ICAgIHNldDogZnVuY3Rpb24odmFsKSB7IHZhbCA/IG5vZGUubW9kZSB8PSB3cml0ZU1vZGUgOiBu
b2RlLm1vZGUgJj0gfndyaXRlTW9kZTsgfQotICAgICAgICAgIH0sCi0gICAgICAgICAgaXNGb2xk
ZXI6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBGUy5pc0Rpcihub2Rl
Lm1vZGUpOyB9LAotICAgICAgICAgIH0sCi0gICAgICAgICAgaXNEZXZpY2U6IHsKLSAgICAgICAg
ICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBGUy5pc0NocmRldihub2RlLm1vZGUpOyB9LAot
ICAgICAgICAgIH0sCi0gICAgICAgIH0pOwotICAgICAgICBGUy5oYXNoQWRkTm9kZShub2RlKTsK
LSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LGRlc3Ryb3lOb2RlOmZ1bmN0aW9uIChub2Rl
KSB7Ci0gICAgICAgIEZTLmhhc2hSZW1vdmVOb2RlKG5vZGUpOwotICAgICAgfSxpc1Jvb3Q6ZnVu
Y3Rpb24gKG5vZGUpIHsKLSAgICAgICAgcmV0dXJuIG5vZGUgPT09IG5vZGUucGFyZW50OwotICAg
ICAgfSxpc01vdW50cG9pbnQ6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgcmV0dXJuIG5vZGUu
bW91bnRlZDsKLSAgICAgIH0saXNGaWxlOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJldHVy
biAobW9kZSAmIDAxNzAwMDApID09PSAwMTAwMDAwOwotICAgICAgfSxpc0RpcjpmdW5jdGlvbiAo
bW9kZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDA0MDAwMDsKLSAg
ICAgIH0saXNMaW5rOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJldHVybiAobW9kZSAmIDAx
NzAwMDApID09PSAwMTIwMDAwOwotICAgICAgfSxpc0NocmRldjpmdW5jdGlvbiAobW9kZSkgewot
ICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDAyMDAwMDsKLSAgICAgIH0saXNC
bGtkZXY6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkg
PT09IDAwNjAwMDA7Ci0gICAgICB9LGlzRklGTzpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICBy
ZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDAxMDAwMDsKLSAgICAgIH0sY3dkOmZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgcmV0dXJuIEZTLmN1cnJlbnRQYXRoOwotICAgICAgfSxsb29rdXBQYXRo
OmZ1bmN0aW9uIChwYXRoLCBvcHRzKSB7Ci0gICAgICAgIHBhdGggPSBQQVRILnJlc29sdmUoRlMu
Y3VycmVudFBhdGgsIHBhdGgpOwotICAgICAgICBvcHRzID0gb3B0cyB8fCB7IHJlY3Vyc2VfY291
bnQ6IDAgfTsKLSAgICAgICAgaWYgKG9wdHMucmVjdXJzZV9jb3VudCA+IDgpIHsgIC8vIG1heCBy
ZWN1cnNpdmUgbG9va3VwIG9mIDgKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihF
UlJOT19DT0RFUy5FTE9PUCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gc3BsaXQgdGhlIHBhdGgK
LSAgICAgICAgdmFyIHBhcnRzID0gUEFUSC5ub3JtYWxpemVBcnJheShwYXRoLnNwbGl0KCcvJyku
ZmlsdGVyKGZ1bmN0aW9uKHApIHsKLSAgICAgICAgICByZXR1cm4gISFwOwotICAgICAgICB9KSwg
ZmFsc2UpOwotICAgICAgICAvLyBzdGFydCBhdCB0aGUgcm9vdAotICAgICAgICB2YXIgY3VycmVu
dCA9IEZTLnJvb3Q7Ci0gICAgICAgIHZhciBjdXJyZW50X3BhdGggPSAnLyc7Ci0gICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgaXNs
YXN0ID0gKGkgPT09IHBhcnRzLmxlbmd0aC0xKTsKLSAgICAgICAgICBpZiAoaXNsYXN0ICYmIG9w
dHMucGFyZW50KSB7Ci0gICAgICAgICAgICAvLyBzdG9wIHJlc29sdmluZwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgfQotICAgICAgICAgIGN1cnJlbnQgPSBGUy5sb29rdXBOb2RlKGN1
cnJlbnQsIHBhcnRzW2ldKTsKLSAgICAgICAgICBjdXJyZW50X3BhdGggPSBQQVRILmpvaW4oY3Vy
cmVudF9wYXRoLCBwYXJ0c1tpXSk7Ci0gICAgICAgICAgLy8ganVtcCB0byB0aGUgbW91bnQncyBy
b290IG5vZGUgaWYgdGhpcyBpcyBhIG1vdW50cG9pbnQKLSAgICAgICAgICBpZiAoRlMuaXNNb3Vu
dHBvaW50KGN1cnJlbnQpKSB7Ci0gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5tb3VudC5y
b290OwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBmb2xsb3cgc3ltbGlua3MKLSAgICAgICAg
ICAvLyBieSBkZWZhdWx0LCBsb29rdXBQYXRoIHdpbGwgbm90IGZvbGxvdyBhIHN5bWxpbmsgaWYg
aXQgaXMgdGhlIGZpbmFsIHBhdGggY29tcG9uZW50LgotICAgICAgICAgIC8vIHNldHRpbmcgb3B0
cy5mb2xsb3cgPSB0cnVlIHdpbGwgb3ZlcnJpZGUgdGhpcyBiZWhhdmlvci4KLSAgICAgICAgICBp
ZiAoIWlzbGFzdCB8fCBvcHRzLmZvbGxvdykgewotICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsK
LSAgICAgICAgICAgIHdoaWxlIChGUy5pc0xpbmsoY3VycmVudC5tb2RlKSkgewotICAgICAgICAg
ICAgICB2YXIgbGluayA9IEZTLnJlYWRsaW5rKGN1cnJlbnRfcGF0aCk7Ci0gICAgICAgICAgICAg
IGN1cnJlbnRfcGF0aCA9IFBBVEgucmVzb2x2ZShQQVRILmRpcm5hbWUoY3VycmVudF9wYXRoKSwg
bGluayk7Ci0gICAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKGN1cnJlbnRf
cGF0aCwgeyByZWN1cnNlX2NvdW50OiBvcHRzLnJlY3Vyc2VfY291bnQgfSk7Ci0gICAgICAgICAg
ICAgIGN1cnJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgICAgICAgaWYgKGNvdW50KysgPiA0
MCkgeyAgLy8gbGltaXQgbWF4IGNvbnNlY3V0aXZlIHN5bWxpbmtzIHRvIDQwIChTWU1MT09QX01B
WCkuCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RUxPT1ApOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiB7IHBhdGg6IGN1cnJlbnRfcGF0aCwgbm9kZTogY3VycmVu
dCB9OwotICAgICAgfSxnZXRQYXRoOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHZhciBwYXRo
OwotICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgIGlmIChGUy5pc1Jvb3Qobm9kZSkp
IHsKLSAgICAgICAgICAgIHJldHVybiBwYXRoID8gUEFUSC5qb2luKG5vZGUubW91bnQubW91bnRw
b2ludCwgcGF0aCkgOiBub2RlLm1vdW50Lm1vdW50cG9pbnQ7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIHBhdGggPSBwYXRoID8gUEFUSC5qb2luKG5vZGUubmFtZSwgcGF0aCkgOiBub2RlLm5hbWU7
Ci0gICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50OwotICAgICAgICB9Ci0gICAgICB9LGZsYWdN
b2Rlczp7InIiOjAsInJzIjo4MTkyLCJyKyI6MiwidyI6MTUzNywid3giOjM1ODUsInh3IjozNTg1
LCJ3KyI6MTUzOCwid3grIjozNTg2LCJ4dysiOjM1ODYsImEiOjUyMSwiYXgiOjI1NjksInhhIjoy
NTY5LCJhKyI6NTIyLCJheCsiOjI1NzAsInhhKyI6MjU3MH0sbW9kZVN0cmluZ1RvRmxhZ3M6ZnVu
Y3Rpb24gKHN0cikgewotICAgICAgICB2YXIgZmxhZ3MgPSBGUy5mbGFnTW9kZXNbc3RyXTsKLSAg
ICAgICAgaWYgKHR5cGVvZiBmbGFncyA9PT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoJ1Vua25vd24gZmlsZSBvcGVuIG1vZGU6ICcgKyBzdHIpOwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiBmbGFnczsKLSAgICAgIH0sZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmc6
ZnVuY3Rpb24gKGZsYWcpIHsKLSAgICAgICAgdmFyIGFjY21vZGUgPSBmbGFnICYgMzsKLSAgICAg
ICAgdmFyIHBlcm1zID0gWydyJywgJ3cnLCAncncnXVthY2Ntb2RlXTsKLSAgICAgICAgaWYgKChm
bGFnICYgMTAyNCkpIHsKLSAgICAgICAgICBwZXJtcyArPSAndyc7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHBlcm1zOwotICAgICAgfSxub2RlUGVybWlzc2lvbnM6ZnVuY3Rpb24gKG5vZGUs
IHBlcm1zKSB7Ci0gICAgICAgIGlmIChGUy5pZ25vcmVQZXJtaXNzaW9ucykgewotICAgICAgICAg
IHJldHVybiAwOwotICAgICAgICB9Ci0gICAgICAgIC8vIHJldHVybiAwIGlmIGFueSB1c2VyLCBn
cm91cCBvciBvd25lciBiaXRzIGFyZSBzZXQuCi0gICAgICAgIGlmIChwZXJtcy5pbmRleE9mKCdy
JykgIT09IC0xICYmICEobm9kZS5tb2RlICYgMjkyKSkgewotICAgICAgICAgIHJldHVybiBFUlJO
T19DT0RFUy5FQUNDRVM7Ci0gICAgICAgIH0gZWxzZSBpZiAocGVybXMuaW5kZXhPZigndycpICE9
PSAtMSAmJiAhKG5vZGUubW9kZSAmIDE0NikpIHsKLSAgICAgICAgICByZXR1cm4gRVJSTk9fQ09E
RVMuRUFDQ0VTOwotICAgICAgICB9IGVsc2UgaWYgKHBlcm1zLmluZGV4T2YoJ3gnKSAhPT0gLTEg
JiYgIShub2RlLm1vZGUgJiA3MykpIHsKLSAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUFD
Q0VTOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAwOwotICAgICAgfSxtYXlMb29rdXA6ZnVu
Y3Rpb24gKGRpcikgewotICAgICAgICByZXR1cm4gRlMubm9kZVBlcm1pc3Npb25zKGRpciwgJ3gn
KTsKLSAgICAgIH0sbWF5TWtub2Q6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgc3dpdGNoICht
b2RlICYgMDE3MDAwMCkgewotICAgICAgICAgIGNhc2UgMDEwMDAwMDoKLSAgICAgICAgICBjYXNl
IDAwMjAwMDA6Ci0gICAgICAgICAgY2FzZSAwMDYwMDAwOgotICAgICAgICAgIGNhc2UgMDAxMDAw
MDoKLSAgICAgICAgICBjYXNlIDAxNDAwMDA6Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAg
ICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVJTlZBTDsKLSAg
ICAgICAgfQotICAgICAgfSxtYXlDcmVhdGU6ZnVuY3Rpb24gKGRpciwgbmFtZSkgewotICAgICAg
ICB0cnkgewotICAgICAgICAgIHZhciBub2RlID0gRlMubG9va3VwTm9kZShkaXIsIG5hbWUpOwot
ICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FRVhJU1Q7Ci0gICAgICAgIH0gY2F0Y2ggKGUp
IHsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gRlMubm9kZVBlcm1pc3Npb25zKGRpciwgJ3d4
Jyk7Ci0gICAgICB9LG1heURlbGV0ZTpmdW5jdGlvbiAoZGlyLCBuYW1lLCBpc2RpcikgewotICAg
ICAgICB2YXIgbm9kZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBub2RlID0gRlMubG9va3Vw
Tm9kZShkaXIsIG5hbWUpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgcmV0dXJu
IGUuZXJybm87Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGVyciA9IEZTLm5vZGVQZXJtaXNzaW9u
cyhkaXIsICd3eCcpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgcmV0dXJuIGVycjsK
LSAgICAgICAgfQotICAgICAgICBpZiAoaXNkaXIpIHsKLSAgICAgICAgICBpZiAoIUZTLmlzRGly
KG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FTk9URElSOwot
ICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoRlMuaXNSb290KG5vZGUpIHx8IEZTLmdldFBhdGgo
bm9kZSkgPT09IEZTLmN1cnJlbnRQYXRoKSB7Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09E
RVMuRUJVU1k7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlmIChG
Uy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUlT
RElSOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICAgIH0s
bWF5T3BlbjpmdW5jdGlvbiAobm9kZSwgZmxhZ3MpIHsKLSAgICAgICAgaWYgKCFub2RlKSB7Ci0g
ICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVOT0VOVDsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMu
RUxPT1A7Ci0gICAgICAgIH0gZWxzZSBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAg
ICAgIGlmICgoZmxhZ3MgJiAzKSAhPT0gMCB8fCAgLy8gb3BlbmluZyBmb3Igd3JpdGUKLSAgICAg
ICAgICAgICAgKGZsYWdzICYgMTAyNCkpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RF
Uy5FSVNESVI7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBGUy5ub2Rl
UGVybWlzc2lvbnMobm9kZSwgRlMuZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoZmxhZ3MpKTsKLSAg
ICAgIH0sY2hyZGV2X3N0cmVhbV9vcHM6e29wZW46ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAg
ICAgIHZhciBkZXZpY2UgPSBGUy5nZXREZXZpY2Uoc3RyZWFtLm5vZGUucmRldik7Ci0gICAgICAg
ICAgLy8gb3ZlcnJpZGUgbm9kZSdzIHN0cmVhbSBvcHMgd2l0aCB0aGUgZGV2aWNlJ3MKLSAgICAg
ICAgICBzdHJlYW0uc3RyZWFtX29wcyA9IGRldmljZS5zdHJlYW1fb3BzOwotICAgICAgICAgIC8v
IGZvcndhcmQgdGhlIG9wZW4gY2FsbAotICAgICAgICAgIGlmIChzdHJlYW0uc3RyZWFtX29wcy5v
cGVuKSB7Ci0gICAgICAgICAgICBzdHJlYW0uc3RyZWFtX29wcy5vcGVuKHN0cmVhbSk7Ci0gICAg
ICAgICAgfQotICAgICAgICB9LGxsc2VlazpmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgdGhyb3cg
bmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVNQSVBFKTsKLSAgICAgICAgfX0sbWFqb3I6
ZnVuY3Rpb24gKGRldikgewotICAgICAgICByZXR1cm4gKChkZXYpID4+IDgpOwotICAgICAgfSxt
aW5vcjpmdW5jdGlvbiAoZGV2KSB7Ci0gICAgICAgIHJldHVybiAoKGRldikgJiAweGZmKTsKLSAg
ICAgIH0sbWFrZWRldjpmdW5jdGlvbiAobWEsIG1pKSB7Ci0gICAgICAgIHJldHVybiAoKG1hKSA8
PCA4IHwgKG1pKSk7Ci0gICAgICB9LHJlZ2lzdGVyRGV2aWNlOmZ1bmN0aW9uIChkZXYsIG9wcykg
ewotICAgICAgICBGUy5kZXZpY2VzW2Rldl0gPSB7IHN0cmVhbV9vcHM6IG9wcyB9OwotICAgICAg
fSxnZXREZXZpY2U6ZnVuY3Rpb24gKGRldikgewotICAgICAgICByZXR1cm4gRlMuZGV2aWNlc1tk
ZXZdOwotICAgICAgfSxNQVhfT1BFTl9GRFM6NDA5NixuZXh0ZmQ6ZnVuY3Rpb24gKGZkX3N0YXJ0
LCBmZF9lbmQpIHsKLSAgICAgICAgZmRfc3RhcnQgPSBmZF9zdGFydCB8fCAxOwotICAgICAgICBm
ZF9lbmQgPSBmZF9lbmQgfHwgRlMuTUFYX09QRU5fRkRTOwotICAgICAgICBmb3IgKHZhciBmZCA9
IGZkX3N0YXJ0OyBmZCA8PSBmZF9lbmQ7IGZkKyspIHsKLSAgICAgICAgICBpZiAoIUZTLnN0cmVh
bXNbZmRdKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmQ7Ci0gICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVNRklMRSk7Ci0g
ICAgICB9LGdldFN0cmVhbTpmdW5jdGlvbiAoZmQpIHsKLSAgICAgICAgcmV0dXJuIEZTLnN0cmVh
bXNbZmRdOwotICAgICAgfSxjcmVhdGVTdHJlYW06ZnVuY3Rpb24gKHN0cmVhbSwgZmRfc3RhcnQs
IGZkX2VuZCkgewotICAgICAgICB2YXIgZmQgPSBGUy5uZXh0ZmQoZmRfc3RhcnQsIGZkX2VuZCk7
Ci0gICAgICAgIHN0cmVhbS5mZCA9IGZkOwotICAgICAgICAvLyBjb21wYXRpYmlsaXR5Ci0gICAg
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHN0cmVhbSwgewotICAgICAgICAgIG9iamVjdDog
ewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIHN0cmVhbS5ub2RlOyB9LAot
ICAgICAgICAgICAgc2V0OiBmdW5jdGlvbih2YWwpIHsgc3RyZWFtLm5vZGUgPSB2YWw7IH0KLSAg
ICAgICAgICB9LAotICAgICAgICAgIGlzUmVhZDogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlv
bigpIHsgcmV0dXJuIChzdHJlYW0uZmxhZ3MgJiAzKSAhPT0gMTsgfQotICAgICAgICAgIH0sCi0g
ICAgICAgICAgaXNXcml0ZTogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJu
IChzdHJlYW0uZmxhZ3MgJiAzKSAhPT0gMDsgfQotICAgICAgICAgIH0sCi0gICAgICAgICAgaXNB
cHBlbmQ6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiAoc3RyZWFtLmZs
YWdzICYgOCk7IH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgICBGUy5zdHJlYW1z
W2ZkXSA9IHN0cmVhbTsKLSAgICAgICAgcmV0dXJuIHN0cmVhbTsKLSAgICAgIH0sY2xvc2VTdHJl
YW06ZnVuY3Rpb24gKGZkKSB7Ci0gICAgICAgIEZTLnN0cmVhbXNbZmRdID0gbnVsbDsKLSAgICAg
IH0sZ2V0TW9kZTpmdW5jdGlvbiAoY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgdmFyIG1v
ZGUgPSAwOwotICAgICAgICBpZiAoY2FuUmVhZCkgbW9kZSB8PSAyOTIgfCA3MzsKLSAgICAgICAg
aWYgKGNhbldyaXRlKSBtb2RlIHw9IDE0NjsKLSAgICAgICAgcmV0dXJuIG1vZGU7Ci0gICAgICB9
LGpvaW5QYXRoOmZ1bmN0aW9uIChwYXJ0cywgZm9yY2VSZWxhdGl2ZSkgewotICAgICAgICB2YXIg
cGF0aCA9IFBBVEguam9pbi5hcHBseShudWxsLCBwYXJ0cyk7Ci0gICAgICAgIGlmIChmb3JjZVJl
bGF0aXZlICYmIHBhdGhbMF0gPT0gJy8nKSBwYXRoID0gcGF0aC5zdWJzdHIoMSk7Ci0gICAgICAg
IHJldHVybiBwYXRoOwotICAgICAgfSxhYnNvbHV0ZVBhdGg6ZnVuY3Rpb24gKHJlbGF0aXZlLCBi
YXNlKSB7Ci0gICAgICAgIHJldHVybiBQQVRILnJlc29sdmUoYmFzZSwgcmVsYXRpdmUpOwotICAg
ICAgfSxzdGFuZGFyZGl6ZVBhdGg6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgcmV0dXJuIFBB
VEgubm9ybWFsaXplKHBhdGgpOwotICAgICAgfSxmaW5kT2JqZWN0OmZ1bmN0aW9uIChwYXRoLCBk
b250UmVzb2x2ZUxhc3RMaW5rKSB7Ci0gICAgICAgIHZhciByZXQgPSBGUy5hbmFseXplUGF0aChw
YXRoLCBkb250UmVzb2x2ZUxhc3RMaW5rKTsKLSAgICAgICAgaWYgKHJldC5leGlzdHMpIHsKLSAg
ICAgICAgICByZXR1cm4gcmV0Lm9iamVjdDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBf
X19zZXRFcnJObyhyZXQuZXJyb3IpOwotICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9
Ci0gICAgICB9LGFuYWx5emVQYXRoOmZ1bmN0aW9uIChwYXRoLCBkb250UmVzb2x2ZUxhc3RMaW5r
KSB7Ci0gICAgICAgIC8vIG9wZXJhdGUgZnJvbSB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhlIHN5
bWxpbmsncyB0YXJnZXQKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICB2YXIgbG9va3VwID0gRlMu
bG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogIWRvbnRSZXNvbHZlTGFzdExpbmsgfSk7Ci0gICAg
ICAgICAgcGF0aCA9IGxvb2t1cC5wYXRoOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
IH0KLSAgICAgICAgdmFyIHJldCA9IHsKLSAgICAgICAgICBpc1Jvb3Q6IGZhbHNlLCBleGlzdHM6
IGZhbHNlLCBlcnJvcjogMCwgbmFtZTogbnVsbCwgcGF0aDogbnVsbCwgb2JqZWN0OiBudWxsLAot
ICAgICAgICAgIHBhcmVudEV4aXN0czogZmFsc2UsIHBhcmVudFBhdGg6IG51bGwsIHBhcmVudE9i
amVjdDogbnVsbAotICAgICAgICB9OwotICAgICAgICB0cnkgewotICAgICAgICAgIHZhciBsb29r
dXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgcGFyZW50OiB0cnVlIH0pOwotICAgICAgICAgIHJl
dC5wYXJlbnRFeGlzdHMgPSB0cnVlOwotICAgICAgICAgIHJldC5wYXJlbnRQYXRoID0gbG9va3Vw
LnBhdGg7Ci0gICAgICAgICAgcmV0LnBhcmVudE9iamVjdCA9IGxvb2t1cC5ub2RlOwotICAgICAg
ICAgIHJldC5uYW1lID0gUEFUSC5iYXNlbmFtZShwYXRoKTsKLSAgICAgICAgICBsb29rdXAgPSBG
Uy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udFJlc29sdmVMYXN0TGluayB9KTsKLSAg
ICAgICAgICByZXQuZXhpc3RzID0gdHJ1ZTsKLSAgICAgICAgICByZXQucGF0aCA9IGxvb2t1cC5w
YXRoOwotICAgICAgICAgIHJldC5vYmplY3QgPSBsb29rdXAubm9kZTsKLSAgICAgICAgICByZXQu
bmFtZSA9IGxvb2t1cC5ub2RlLm5hbWU7Ci0gICAgICAgICAgcmV0LmlzUm9vdCA9IGxvb2t1cC5w
YXRoID09PSAnLyc7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICByZXQuZXJyb3Ig
PSBlLmVycm5vOwotICAgICAgICB9OwotICAgICAgICByZXR1cm4gcmV0OwotICAgICAgfSxjcmVh
dGVGb2xkZXI6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAg
ICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBw
YXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICB2YXIgbW9kZSA9IEZT
LmdldE1vZGUoY2FuUmVhZCwgY2FuV3JpdGUpOwotICAgICAgICByZXR1cm4gRlMubWtkaXIocGF0
aCwgbW9kZSk7Ci0gICAgICB9LGNyZWF0ZVBhdGg6ZnVuY3Rpb24gKHBhcmVudCwgcGF0aCwgY2Fu
UmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgcGFyZW50ID0gdHlwZW9mIHBhcmVudCA9PT0gJ3N0
cmluZycgPyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCk7Ci0gICAgICAgIHZhciBwYXJ0cyA9
IHBhdGguc3BsaXQoJy8nKS5yZXZlcnNlKCk7Ci0gICAgICAgIHdoaWxlIChwYXJ0cy5sZW5ndGgp
IHsKLSAgICAgICAgICB2YXIgcGFydCA9IHBhcnRzLnBvcCgpOwotICAgICAgICAgIGlmICghcGFy
dCkgY29udGludWU7Ci0gICAgICAgICAgdmFyIGN1cnJlbnQgPSBQQVRILmpvaW4ocGFyZW50LCBw
YXJ0KTsKLSAgICAgICAgICB0cnkgewotICAgICAgICAgICAgRlMubWtkaXIoY3VycmVudCwgMDc3
Nyk7Ci0gICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgLy8gaWdub3JlIEVFWElT
VAotICAgICAgICAgIH0KLSAgICAgICAgICBwYXJlbnQgPSBjdXJyZW50OwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBjdXJyZW50OwotICAgICAgfSxjcmVhdGVGaWxlOmZ1bmN0aW9uIChwYXJl
bnQsIG5hbWUsIHByb3BlcnRpZXMsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIHZhciBw
YXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50IDogRlMu
Z2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgdmFyIG1vZGUgPSBGUy5nZXRNb2RlKGNh
blJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgcmV0dXJuIEZTLmNyZWF0ZShwYXRoLCBtb2RlKTsK
LSAgICAgIH0sY3JlYXRlRGF0YUZpbGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgZGF0YSwgY2Fu
UmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4odHlwZW9mIHBh
cmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCksIG5hbWUpOwot
ICAgICAgICB2YXIgbW9kZSA9IEZTLmdldE1vZGUoY2FuUmVhZCwgY2FuV3JpdGUpOwotICAgICAg
ICB2YXIgbm9kZSA9IEZTLmNyZWF0ZShwYXRoLCBtb2RlKTsKLSAgICAgICAgaWYgKGRhdGEpIHsK
LSAgICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgICB2
YXIgYXJyID0gbmV3IEFycmF5KGRhdGEubGVuZ3RoKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwLCBsZW4gPSBkYXRhLmxlbmd0aDsgaSA8IGxlbjsgKytpKSBhcnJbaV0gPSBkYXRhLmNoYXJD
b2RlQXQoaSk7Ci0gICAgICAgICAgICBkYXRhID0gYXJyOwotICAgICAgICAgIH0KLSAgICAgICAg
ICAvLyBtYWtlIHN1cmUgd2UgY2FuIHdyaXRlIHRvIHRoZSBmaWxlCi0gICAgICAgICAgRlMuY2ht
b2QocGF0aCwgbW9kZSB8IDE0Nik7Ci0gICAgICAgICAgdmFyIHN0cmVhbSA9IEZTLm9wZW4ocGF0
aCwgJ3cnKTsKLSAgICAgICAgICBGUy53cml0ZShzdHJlYW0sIGRhdGEsIDAsIGRhdGEubGVuZ3Ro
LCAwKTsKLSAgICAgICAgICBGUy5jbG9zZShzdHJlYW0pOwotICAgICAgICAgIEZTLmNobW9kKHBh
dGgsIG1vZGUpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgICAgfSxjcmVh
dGVEZXZpY2U6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgaW5wdXQsIG91dHB1dCkgewotICAgICAg
ICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVu
dCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2RlID0gaW5wdXQg
JiYgb3V0cHV0ID8gMDc3NyA6IChpbnB1dCA/IDAzMzMgOiAwNTU1KTsKLSAgICAgICAgaWYgKCFG
Uy5jcmVhdGVEZXZpY2UubWFqb3IpIEZTLmNyZWF0ZURldmljZS5tYWpvciA9IDY0OwotICAgICAg
ICB2YXIgZGV2ID0gRlMubWFrZWRldihGUy5jcmVhdGVEZXZpY2UubWFqb3IrKywgMCk7Ci0gICAg
ICAgIC8vIENyZWF0ZSBhIGZha2UgZGV2aWNlIHRoYXQgYSBzZXQgb2Ygc3RyZWFtIG9wcyB0byBl
bXVsYXRlCi0gICAgICAgIC8vIHRoZSBvbGQgYmVoYXZpb3IuCi0gICAgICAgIEZTLnJlZ2lzdGVy
RGV2aWNlKGRldiwgewotICAgICAgICAgIG9wZW46IGZ1bmN0aW9uKHN0cmVhbSkgewotICAgICAg
ICAgICAgc3RyZWFtLnNlZWthYmxlID0gZmFsc2U7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBj
bG9zZTogZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgICAgICAgICAvLyBmbHVzaCBhbnkgcGVuZGlu
ZyBsaW5lIGRhdGEKLSAgICAgICAgICAgIGlmIChvdXRwdXQgJiYgb3V0cHV0LmJ1ZmZlciAmJiBv
dXRwdXQuYnVmZmVyLmxlbmd0aCkgewotICAgICAgICAgICAgICBvdXRwdXQoMTApOwotICAgICAg
ICAgICAgfQotICAgICAgICAgIH0sCi0gICAgICAgICAgcmVhZDogZnVuY3Rpb24oc3RyZWFtLCBi
dWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3MgLyogaWdub3JlZCAqLykgewotICAgICAgICAgICAg
dmFyIGJ5dGVzUmVhZCA9IDA7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0
aDsgaSsrKSB7Ci0gICAgICAgICAgICAgIHZhciByZXN1bHQ7Ci0gICAgICAgICAgICAgIHRyeSB7
Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5wdXQoKTsKLSAgICAgICAgICAgICAgfSBjYXRj
aCAoZSkgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVJTyk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0g
dW5kZWZpbmVkICYmIGJ5dGVzUmVhZCA9PT0gMCkgewotICAgICAgICAgICAgICAgIHRocm93IG5l
dyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBR0FJTik7Ci0gICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZCkg
YnJlYWs7Ci0gICAgICAgICAgICAgIGJ5dGVzUmVhZCsrOwotICAgICAgICAgICAgICBidWZmZXJb
b2Zmc2V0K2ldID0gcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGJ5dGVz
UmVhZCkgewotICAgICAgICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygp
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGJ5dGVzUmVhZDsKLSAgICAgICAg
ICB9LAotICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbihzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBs
ZW5ndGgsIHBvcykgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkr
KykgewotICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIG91dHB1dChidWZmZXJb
b2Zmc2V0K2ldKTsKLSAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChsZW5ndGgpIHsKLSAgICAgICAgICAg
ICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHJldHVybiBpOwotICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIHJl
dHVybiBGUy5ta2RldihwYXRoLCBtb2RlLCBkZXYpOwotICAgICAgfSxjcmVhdGVMaW5rOmZ1bmN0
aW9uIChwYXJlbnQsIG5hbWUsIHRhcmdldCwgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAg
dmFyIHBhdGggPSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQg
OiBGUy5nZXRQYXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICByZXR1cm4gRlMuc3ltbGluayh0
YXJnZXQsIHBhdGgpOwotICAgICAgfSxmb3JjZUxvYWRGaWxlOmZ1bmN0aW9uIChvYmopIHsKLSAg
ICAgICAgaWYgKG9iai5pc0RldmljZSB8fCBvYmouaXNGb2xkZXIgfHwgb2JqLmxpbmsgfHwgb2Jq
LmNvbnRlbnRzKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgdmFyIHN1Y2Nlc3MgPSB0cnVlOwotICAg
ICAgICBpZiAodHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykgewotICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiTGF6eSBsb2FkaW5nIHNob3VsZCBoYXZlIGJlZW4gcGVyZm9y
bWVkIChjb250ZW50cyBzZXQpIGluIGNyZWF0ZUxhenlGaWxlLCBidXQgaXQgd2FzIG5vdC4gTGF6
eSBsb2FkaW5nIG9ubHkgd29ya3MgaW4gd2ViIHdvcmtlcnMuIFVzZSAtLWVtYmVkLWZpbGUgb3Ig
LS1wcmVsb2FkLWZpbGUgaW4gZW1jYyBvbiB0aGUgbWFpbiB0aHJlYWQuIik7Ci0gICAgICAgIH0g
ZWxzZSBpZiAoTW9kdWxlWydyZWFkJ10pIHsKLSAgICAgICAgICAvLyBDb21tYW5kLWxpbmUuCi0g
ICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIC8vIFdBUk5JTkc6IENhbid0IHJlYWQgYmluYXJ5
IGZpbGVzIGluIFY4J3MgZDggb3IgdHJhY2Vtb25rZXkncyBqcywgYXMKLSAgICAgICAgICAgIC8v
ICAgICAgICAgIHJlYWQoKSB3aWxsIHRyeSB0byBwYXJzZSBVVEY4LgotICAgICAgICAgICAgb2Jq
LmNvbnRlbnRzID0gaW50QXJyYXlGcm9tU3RyaW5nKE1vZHVsZVsncmVhZCddKG9iai51cmwpLCB0
cnVlKTsKLSAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBzdWNjZXNzID0gZmFs
c2U7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHRocm93IG5ldyBF
cnJvcignQ2Fubm90IGxvYWQgd2l0aG91dCByZWFkKCkgb3IgWE1MSHR0cFJlcXVlc3QuJyk7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKCFzdWNjZXNzKSBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5F
SU8pOwotICAgICAgICByZXR1cm4gc3VjY2VzczsKLSAgICAgIH0sY3JlYXRlTGF6eUZpbGU6ZnVu
Y3Rpb24gKHBhcmVudCwgbmFtZSwgdXJsLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICBp
ZiAodHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIGlm
ICghRU5WSVJPTk1FTlRfSVNfV09SS0VSKSB0aHJvdyAnQ2Fubm90IGRvIHN5bmNocm9ub3VzIGJp
bmFyeSBYSFJzIG91dHNpZGUgd2Vid29ya2VycyBpbiBtb2Rlcm4gYnJvd3NlcnMuIFVzZSAtLWVt
YmVkLWZpbGUgb3IgLS1wcmVsb2FkLWZpbGUgaW4gZW1jYyc7Ci0gICAgICAgICAgLy8gTGF6eSBj
aHVua2VkIFVpbnQ4QXJyYXkgKGltcGxlbWVudHMgZ2V0IGFuZCBsZW5ndGggZnJvbSBVaW50OEFy
cmF5KS4gQWN0dWFsIGdldHRpbmcgaXMgYWJzdHJhY3RlZCBhd2F5IGZvciBldmVudHVhbCByZXVz
ZS4KLSAgICAgICAgICB2YXIgTGF6eVVpbnQ4QXJyYXkgPSBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgIHRoaXMubGVuZ3RoS25vd24gPSBmYWxzZTsKLSAgICAgICAgICAgIHRoaXMuY2h1bmtzID0g
W107IC8vIExvYWRlZCBjaHVua3MuIEluZGV4IGlzIHRoZSBjaHVuayBudW1iZXIKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgTGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKGlk
eCkgewotICAgICAgICAgICAgaWYgKGlkeCA+IHRoaXMubGVuZ3RoLTEgfHwgaWR4IDwgMCkgewot
ICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgdmFyIGNodW5rT2Zmc2V0ID0gaWR4ICUgdGhpcy5jaHVua1NpemU7Ci0gICAgICAgICAgICB2
YXIgY2h1bmtOdW0gPSBNYXRoLmZsb29yKGlkeCAvIHRoaXMuY2h1bmtTaXplKTsKLSAgICAgICAg
ICAgIHJldHVybiB0aGlzLmdldHRlcihjaHVua051bSlbY2h1bmtPZmZzZXRdOwotICAgICAgICAg
IH0KLSAgICAgICAgICBMYXp5VWludDhBcnJheS5wcm90b3R5cGUuc2V0RGF0YUdldHRlciA9IGZ1
bmN0aW9uKGdldHRlcikgewotICAgICAgICAgICAgdGhpcy5nZXR0ZXIgPSBnZXR0ZXI7Ci0gICAg
ICAgICAgfQotICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5jYWNoZUxlbmd0aCA9
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAvLyBGaW5kIGxlbmd0aAotICAgICAgICAgICAg
ICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgICAgICAgICAgIHhoci5vcGVu
KCdIRUFEJywgdXJsLCBmYWxzZSk7Ci0gICAgICAgICAgICAgIHhoci5zZW5kKG51bGwpOwotICAg
ICAgICAgICAgICBpZiAoISh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwIHx8
IHhoci5zdGF0dXMgPT09IDMwNCkpIHRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgbG9hZCAiICsg
dXJsICsgIi4gU3RhdHVzOiAiICsgeGhyLnN0YXR1cyk7Ci0gICAgICAgICAgICAgIHZhciBkYXRh
bGVuZ3RoID0gTnVtYmVyKHhoci5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1sZW5ndGgiKSk7
Ci0gICAgICAgICAgICAgIHZhciBoZWFkZXI7Ci0gICAgICAgICAgICAgIHZhciBoYXNCeXRlU2Vy
dmluZyA9IChoZWFkZXIgPSB4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIkFjY2VwdC1SYW5nZXMiKSkg
JiYgaGVhZGVyID09PSAiYnl0ZXMiOwotICAgICAgICAgICAgICB2YXIgY2h1bmtTaXplID0gMTAy
NCoxMDI0OyAvLyBDaHVuayBzaXplIGluIGJ5dGVzCi0gICAgICAgICAgICAgIGlmICghaGFzQnl0
ZVNlcnZpbmcpIGNodW5rU2l6ZSA9IGRhdGFsZW5ndGg7Ci0gICAgICAgICAgICAgIC8vIEZ1bmN0
aW9uIHRvIGdldCBhIHJhbmdlIGZyb20gdGhlIHJlbW90ZSBVUkwuCi0gICAgICAgICAgICAgIHZh
ciBkb1hIUiA9IChmdW5jdGlvbihmcm9tLCB0bykgewotICAgICAgICAgICAgICAgIGlmIChmcm9t
ID4gdG8pIHRocm93IG5ldyBFcnJvcigiaW52YWxpZCByYW5nZSAoIiArIGZyb20gKyAiLCAiICsg
dG8gKyAiKSBvciBubyBieXRlcyByZXF1ZXN0ZWQhIik7Ci0gICAgICAgICAgICAgICAgaWYgKHRv
ID4gZGF0YWxlbmd0aC0xKSB0aHJvdyBuZXcgRXJyb3IoIm9ubHkgIiArIGRhdGFsZW5ndGggKyAi
IGJ5dGVzIGF2YWlsYWJsZSEgcHJvZ3JhbW1lciBlcnJvciEiKTsKLSAgICAgICAgICAgICAgICAv
LyBUT0RPOiBVc2UgbW96UmVzcG9uc2VBcnJheUJ1ZmZlciwgcmVzcG9uc2VTdHJlYW0sIGV0Yy4g
aWYgYXZhaWxhYmxlLgotICAgICAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVl
c3QoKTsKLSAgICAgICAgICAgICAgICB4aHIub3BlbignR0VUJywgdXJsLCBmYWxzZSk7Ci0gICAg
ICAgICAgICAgICAgaWYgKGRhdGFsZW5ndGggIT09IGNodW5rU2l6ZSkgeGhyLnNldFJlcXVlc3RI
ZWFkZXIoIlJhbmdlIiwgImJ5dGVzPSIgKyBmcm9tICsgIi0iICsgdG8pOwotICAgICAgICAgICAg
ICAgIC8vIFNvbWUgaGludHMgdG8gdGhlIGJyb3dzZXIgdGhhdCB3ZSB3YW50IGJpbmFyeSBkYXRh
LgotICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgVWludDhBcnJheSAhPSAndW5kZWZpbmVkJykg
eGhyLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcic7Ci0gICAgICAgICAgICAgICAgaWYgKHho
ci5vdmVycmlkZU1pbWVUeXBlKSB7Ci0gICAgICAgICAgICAgICAgICB4aHIub3ZlcnJpZGVNaW1l
VHlwZSgndGV4dC9wbGFpbjsgY2hhcnNldD14LXVzZXItZGVmaW5lZCcpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICB4aHIuc2VuZChudWxsKTsKLSAgICAgICAgICAgICAgICBp
ZiAoISh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwIHx8IHhoci5zdGF0dXMg
PT09IDMwNCkpIHRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgbG9hZCAiICsgdXJsICsgIi4gU3Rh
dHVzOiAiICsgeGhyLnN0YXR1cyk7Ci0gICAgICAgICAgICAgICAgaWYgKHhoci5yZXNwb25zZSAh
PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXko
eGhyLnJlc3BvbnNlIHx8IFtdKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGludEFycmF5RnJvbVN0cmluZyh4aHIucmVzcG9uc2VUZXh0IHx8ICcn
LCB0cnVlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgICB2YXIgbGF6eUFycmF5ID0gdGhpczsKLSAgICAgICAgICAgICAgbGF6eUFycmF5LnNldERh
dGFHZXR0ZXIoZnVuY3Rpb24oY2h1bmtOdW0pIHsKLSAgICAgICAgICAgICAgICB2YXIgc3RhcnQg
PSBjaHVua051bSAqIGNodW5rU2l6ZTsKLSAgICAgICAgICAgICAgICB2YXIgZW5kID0gKGNodW5r
TnVtKzEpICogY2h1bmtTaXplIC0gMTsgLy8gaW5jbHVkaW5nIHRoaXMgYnl0ZQotICAgICAgICAg
ICAgICAgIGVuZCA9IE1hdGgubWluKGVuZCwgZGF0YWxlbmd0aC0xKTsgLy8gaWYgZGF0YWxlbmd0
aC0xIGlzIHNlbGVjdGVkLCB0aGlzIGlzIHRoZSBsYXN0IGJsb2NrCi0gICAgICAgICAgICAgICAg
aWYgKHR5cGVvZihsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXSkgPT09ICJ1bmRlZmluZWQiKSB7
Ci0gICAgICAgICAgICAgICAgICBsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXSA9IGRvWEhSKHN0
YXJ0LCBlbmQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAodHlwZW9m
KGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dKSA9PT0gInVuZGVmaW5lZCIpIHRocm93IG5ldyBF
cnJvcigiZG9YSFIgZmFpbGVkISIpOwotICAgICAgICAgICAgICAgIHJldHVybiBsYXp5QXJyYXku
Y2h1bmtzW2NodW5rTnVtXTsKLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgIHRoaXMu
X2xlbmd0aCA9IGRhdGFsZW5ndGg7Ci0gICAgICAgICAgICAgIHRoaXMuX2NodW5rU2l6ZSA9IGNo
dW5rU2l6ZTsKLSAgICAgICAgICAgICAgdGhpcy5sZW5ndGhLbm93biA9IHRydWU7Ci0gICAgICAg
ICAgfQotICAgICAgICAgIHZhciBsYXp5QXJyYXkgPSBuZXcgTGF6eVVpbnQ4QXJyYXkoKTsKLSAg
ICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobGF6eUFycmF5LCAibGVuZ3RoIiwgewotICAg
ICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgaWYoIXRoaXMu
bGVuZ3RoS25vd24pIHsKLSAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhY2hlTGVuZ3RoKCk7
Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbGVu
Z3RoOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAgT2JqZWN0LmRl
ZmluZVByb3BlcnR5KGxhenlBcnJheSwgImNodW5rU2l6ZSIsIHsKLSAgICAgICAgICAgICAgZ2V0
OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLmxlbmd0aEtub3duKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxlbmd0aCgpOwotICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NodW5rU2l6ZTsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgIH0pOwotICAgICAgICAgIHZhciBwcm9wZXJ0aWVzID0geyBp
c0RldmljZTogZmFsc2UsIGNvbnRlbnRzOiBsYXp5QXJyYXkgfTsKLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHsgaXNEZXZpY2U6IGZhbHNlLCB1cmw6IHVybCB9
OwotICAgICAgICB9Ci0gICAgICAgIHZhciBub2RlID0gRlMuY3JlYXRlRmlsZShwYXJlbnQsIG5h
bWUsIHByb3BlcnRpZXMsIGNhblJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgLy8gVGhpcyBpcyBh
IHRvdGFsIGhhY2ssIGJ1dCBJIHdhbnQgdG8gZ2V0IHRoaXMgbGF6eSBmaWxlIGNvZGUgb3V0IG9m
IHRoZQotICAgICAgICAvLyBjb3JlIG9mIE1FTUZTLiBJZiB3ZSB3YW50IHRvIGtlZXAgdGhpcyBs
YXp5IGZpbGUgY29uY2VwdCBJIGZlZWwgaXQgc2hvdWxkCi0gICAgICAgIC8vIGJlIGl0cyBvd24g
dGhpbiBMQVpZRlMgcHJveHlpbmcgY2FsbHMgdG8gTUVNRlMuCi0gICAgICAgIGlmIChwcm9wZXJ0
aWVzLmNvbnRlbnRzKSB7Ci0gICAgICAgICAgbm9kZS5jb250ZW50cyA9IHByb3BlcnRpZXMuY29u
dGVudHM7Ci0gICAgICAgIH0gZWxzZSBpZiAocHJvcGVydGllcy51cmwpIHsKLSAgICAgICAgICBu
b2RlLmNvbnRlbnRzID0gbnVsbDsKLSAgICAgICAgICBub2RlLnVybCA9IHByb3BlcnRpZXMudXJs
OwotICAgICAgICB9Ci0gICAgICAgIC8vIG92ZXJyaWRlIGVhY2ggc3RyZWFtIG9wIHdpdGggb25l
IHRoYXQgdHJpZXMgdG8gZm9yY2UgbG9hZCB0aGUgbGF6eSBmaWxlIGZpcnN0Ci0gICAgICAgIHZh
ciBzdHJlYW1fb3BzID0ge307Ci0gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMobm9kZS5z
dHJlYW1fb3BzKTsKLSAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkgewotICAgICAg
ICAgIHZhciBmbiA9IG5vZGUuc3RyZWFtX29wc1trZXldOwotICAgICAgICAgIHN0cmVhbV9vcHNb
a2V5XSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaWYgKCFGUy5mb3JjZUxvYWRGaWxlKG5v
ZGUpKSB7Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVJTyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkobnVsbCwg
YXJndW1lbnRzKTsKLSAgICAgICAgICB9OwotICAgICAgICB9KTsKLSAgICAgICAgLy8gdXNlIGEg
Y3VzdG9tIHJlYWQgZnVuY3Rpb24KLSAgICAgICAgc3RyZWFtX29wcy5yZWFkID0gZnVuY3Rpb24o
c3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewotICAgICAgICAgIGlm
ICghRlMuZm9yY2VMb2FkRmlsZShub2RlKSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGNv
bnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7Ci0gICAgICAgICAgdmFyIHNpemUgPSBNYXRo
Lm1pbihjb250ZW50cy5sZW5ndGggLSBwb3NpdGlvbiwgbGVuZ3RoKTsKLSAgICAgICAgICBpZiAo
Y29udGVudHMuc2xpY2UpIHsgLy8gbm9ybWFsIGFycmF5Ci0gICAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgaV0g
PSBjb250ZW50c1twb3NpdGlvbiArIGldOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykgeyAvLyBMYXp5
VWludDhBcnJheSBmcm9tIHN5bmMgYmluYXJ5IFhIUgotICAgICAgICAgICAgICBidWZmZXJbb2Zm
c2V0ICsgaV0gPSBjb250ZW50cy5nZXQocG9zaXRpb24gKyBpKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIHNpemU7Ci0gICAgICAgIH07Ci0gICAgICAgIG5v
ZGUuc3RyZWFtX29wcyA9IHN0cmVhbV9vcHM7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgICAg
fSxjcmVhdGVQcmVsb2FkZWRGaWxlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIHVybCwgY2FuUmVh
ZCwgY2FuV3JpdGUsIG9ubG9hZCwgb25lcnJvciwgZG9udENyZWF0ZUZpbGUpIHsKLSAgICAgICAg
QnJvd3Nlci5pbml0KCk7Ci0gICAgICAgIC8vIFRPRE8gd2Ugc2hvdWxkIGFsbG93IHBlb3BsZSB0
byBqdXN0IHBhc3MgaW4gYSBjb21wbGV0ZSBmaWxlbmFtZSBpbnN0ZWFkCi0gICAgICAgIC8vIG9m
IHBhcmVudCBhbmQgbmFtZSBiZWluZyB0aGF0IHdlIGp1c3Qgam9pbiB0aGVtIGFueXdheXMKLSAg
ICAgICAgdmFyIGZ1bGxuYW1lID0gUEFUSC5yZXNvbHZlKFBBVEguam9pbihwYXJlbnQsIG5hbWUp
KTsKLSAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc0RhdGEoYnl0ZUFycmF5KSB7Ci0gICAgICAgICAg
ZnVuY3Rpb24gZmluaXNoKGJ5dGVBcnJheSkgewotICAgICAgICAgICAgaWYgKCFkb250Q3JlYXRl
RmlsZSkgewotICAgICAgICAgICAgICBGUy5jcmVhdGVEYXRhRmlsZShwYXJlbnQsIG5hbWUsIGJ5
dGVBcnJheSwgY2FuUmVhZCwgY2FuV3JpdGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKG9ubG9hZCkgb25sb2FkKCk7Ci0gICAgICAgICAgICByZW1vdmVSdW5EZXBlbmRlbmN5KCdj
cCAnICsgZnVsbG5hbWUpOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgaGFuZGxlZCA9IGZh
bHNlOwotICAgICAgICAgIE1vZHVsZVsncHJlbG9hZFBsdWdpbnMnXS5mb3JFYWNoKGZ1bmN0aW9u
KHBsdWdpbikgewotICAgICAgICAgICAgaWYgKGhhbmRsZWQpIHJldHVybjsKLSAgICAgICAgICAg
IGlmIChwbHVnaW5bJ2NhbkhhbmRsZSddKGZ1bGxuYW1lKSkgewotICAgICAgICAgICAgICBwbHVn
aW5bJ2hhbmRsZSddKGJ5dGVBcnJheSwgZnVsbG5hbWUsIGZpbmlzaCwgZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKG9uZXJyb3IpIG9uZXJyb3IoKTsKLSAgICAgICAgICAgICAgICBy
ZW1vdmVSdW5EZXBlbmRlbmN5KCdjcCAnICsgZnVsbG5hbWUpOwotICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgaGFuZGxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
fSk7Ci0gICAgICAgICAgaWYgKCFoYW5kbGVkKSBmaW5pc2goYnl0ZUFycmF5KTsKLSAgICAgICAg
fQotICAgICAgICBhZGRSdW5EZXBlbmRlbmN5KCdjcCAnICsgZnVsbG5hbWUpOwotICAgICAgICBp
ZiAodHlwZW9mIHVybCA9PSAnc3RyaW5nJykgewotICAgICAgICAgIEJyb3dzZXIuYXN5bmNMb2Fk
KHVybCwgZnVuY3Rpb24oYnl0ZUFycmF5KSB7Ci0gICAgICAgICAgICBwcm9jZXNzRGF0YShieXRl
QXJyYXkpOwotICAgICAgICAgIH0sIG9uZXJyb3IpOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgIHByb2Nlc3NEYXRhKHVybCk7Ci0gICAgICAgIH0KLSAgICAgIH0sY3JlYXRlRGVmYXVsdERp
cmVjdG9yaWVzOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgRlMubWtkaXIoJy90bXAnLCAwNzc3KTsK
LSAgICAgIH0sY3JlYXRlRGVmYXVsdERldmljZXM6ZnVuY3Rpb24gKCkgewotICAgICAgICAvLyBj
cmVhdGUgL2RldgotICAgICAgICBGUy5ta2RpcignL2RldicsIDA3NzcpOwotICAgICAgICAvLyBz
ZXR1cCAvZGV2L251bGwKLSAgICAgICAgRlMucmVnaXN0ZXJEZXZpY2UoRlMubWFrZWRldigxLCAz
KSwgewotICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfSwKLSAgICAgICAg
ICB3cml0ZTogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9Ci0gICAgICAgIH0pOwotICAgICAgICBG
Uy5ta2RldignL2Rldi9udWxsJywgMDY2NiwgRlMubWFrZWRldigxLCAzKSk7Ci0gICAgICAgIC8v
IHNldHVwIC9kZXYvdHR5IGFuZCAvZGV2L3R0eTEKLSAgICAgICAgLy8gc3RkZXJyIG5lZWRzIHRv
IHByaW50IG91dHB1dCB1c2luZyBNb2R1bGVbJ3ByaW50RXJyJ10KLSAgICAgICAgLy8gc28gd2Ug
cmVnaXN0ZXIgYSBzZWNvbmQgdHR5IGp1c3QgZm9yIGl0LgotICAgICAgICBUVFkucmVnaXN0ZXIo
RlMubWFrZWRldig1LCAwKSwgVFRZLmRlZmF1bHRfdHR5X29wcyk7Ci0gICAgICAgIFRUWS5yZWdp
c3RlcihGUy5tYWtlZGV2KDYsIDApLCBUVFkuZGVmYXVsdF90dHkxX29wcyk7Ci0gICAgICAgIEZT
Lm1rZGV2KCcvZGV2L3R0eScsIDA2NjYsIEZTLm1ha2VkZXYoNSwgMCkpOwotICAgICAgICBGUy5t
a2RldignL2Rldi90dHkxJywgMDY2NiwgRlMubWFrZWRldig2LCAwKSk7Ci0gICAgICAgIC8vIHdl
J3JlIG5vdCBnb2luZyB0byBlbXVsYXRlIHRoZSBhY3R1YWwgc2htIGRldmljZSwKLSAgICAgICAg
Ly8ganVzdCBjcmVhdGUgdGhlIHRtcCBkaXJzIHRoYXQgcmVzaWRlIGluIGl0IGNvbW1vbmx5Ci0g
ICAgICAgIEZTLm1rZGlyKCcvZGV2L3NobScsIDA3NzcpOwotICAgICAgICBGUy5ta2RpcignL2Rl
di9zaG0vdG1wJywgMDc3Nyk7Ci0gICAgICB9LGNyZWF0ZVN0YW5kYXJkU3RyZWFtczpmdW5jdGlv
biAoKSB7Ci0gICAgICAgIC8vIFRPRE8gZGVwcmVjYXRlIHRoZSBvbGQgZnVuY3Rpb25hbGl0eSBv
ZiBhIHNpbmdsZQotICAgICAgICAvLyBpbnB1dCAvIG91dHB1dCBjYWxsYmFjayBhbmQgdGhhdCB1
dGlsaXplcyBGUy5jcmVhdGVEZXZpY2UKLSAgICAgICAgLy8gYW5kIGluc3RlYWQgcmVxdWlyZSBh
IHVuaXF1ZSBzZXQgb2Ygc3RyZWFtIG9wcwotICAgICAgICAvLyBieSBkZWZhdWx0LCB3ZSBzeW1s
aW5rIHRoZSBzdGFuZGFyZCBzdHJlYW1zIHRvIHRoZQotICAgICAgICAvLyBkZWZhdWx0IHR0eSBk
ZXZpY2VzLiBob3dldmVyLCBpZiB0aGUgc3RhbmRhcmQgc3RyZWFtcwotICAgICAgICAvLyBoYXZl
IGJlZW4gb3ZlcndyaXR0ZW4gd2UgY3JlYXRlIGEgdW5pcXVlIGRldmljZSBmb3IKLSAgICAgICAg
Ly8gdGhlbSBpbnN0ZWFkLgotICAgICAgICBpZiAoTW9kdWxlWydzdGRpbiddKSB7Ci0gICAgICAg
ICAgRlMuY3JlYXRlRGV2aWNlKCcvZGV2JywgJ3N0ZGluJywgTW9kdWxlWydzdGRpbiddKTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBGUy5zeW1saW5rKCcvZGV2L3R0eScsICcvZGV2L3N0
ZGluJyk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKE1vZHVsZVsnc3Rkb3V0J10pIHsKLSAgICAg
ICAgICBGUy5jcmVhdGVEZXZpY2UoJy9kZXYnLCAnc3Rkb3V0JywgbnVsbCwgTW9kdWxlWydzdGRv
dXQnXSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgRlMuc3ltbGluaygnL2Rldi90dHkn
LCAnL2Rldi9zdGRvdXQnKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoTW9kdWxlWydzdGRlcnIn
XSkgewotICAgICAgICAgIEZTLmNyZWF0ZURldmljZSgnL2RldicsICdzdGRlcnInLCBudWxsLCBN
b2R1bGVbJ3N0ZGVyciddKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBGUy5zeW1saW5r
KCcvZGV2L3R0eTEnLCAnL2Rldi9zdGRlcnInKTsKLSAgICAgICAgfQotICAgICAgICAvLyBvcGVu
IGRlZmF1bHQgc3RyZWFtcyBmb3IgdGhlIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyciBkZXZpY2Vz
Ci0gICAgICAgIHZhciBzdGRpbiA9IEZTLm9wZW4oJy9kZXYvc3RkaW4nLCAncicpOwotICAgICAg
ICBIRUFQMzJbKChfc3RkaW4pPj4yKV09c3RkaW4uZmQ7Ci0gICAgICAgIGFzc2VydChzdGRpbi5m
ZCA9PT0gMSwgJ2ludmFsaWQgaGFuZGxlIGZvciBzdGRpbiAoJyArIHN0ZGluLmZkICsgJyknKTsK
LSAgICAgICAgdmFyIHN0ZG91dCA9IEZTLm9wZW4oJy9kZXYvc3Rkb3V0JywgJ3cnKTsKLSAgICAg
ICAgSEVBUDMyWygoX3N0ZG91dCk+PjIpXT1zdGRvdXQuZmQ7Ci0gICAgICAgIGFzc2VydChzdGRv
dXQuZmQgPT09IDIsICdpbnZhbGlkIGhhbmRsZSBmb3Igc3Rkb3V0ICgnICsgc3Rkb3V0LmZkICsg
JyknKTsKLSAgICAgICAgdmFyIHN0ZGVyciA9IEZTLm9wZW4oJy9kZXYvc3RkZXJyJywgJ3cnKTsK
LSAgICAgICAgSEVBUDMyWygoX3N0ZGVycik+PjIpXT1zdGRlcnIuZmQ7Ci0gICAgICAgIGFzc2Vy
dChzdGRlcnIuZmQgPT09IDMsICdpbnZhbGlkIGhhbmRsZSBmb3Igc3RkZXJyICgnICsgc3RkZXJy
LmZkICsgJyknKTsKLSAgICAgIH0sc3RhdGljSW5pdDpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIEZT
Lm5hbWVfdGFibGUgPSBuZXcgQXJyYXkoNDA5Nik7Ci0gICAgICAgIEZTLnJvb3QgPSBGUy5jcmVh
dGVOb2RlKG51bGwsICcvJywgMDA0MDAwMCB8IDA3NzcsIDApOwotICAgICAgICBGUy5tb3VudChN
RU1GUywge30sICcvJyk7Ci0gICAgICAgIEZTLmNyZWF0ZURlZmF1bHREaXJlY3RvcmllcygpOwot
ICAgICAgICBGUy5jcmVhdGVEZWZhdWx0RGV2aWNlcygpOwotICAgICAgfSxpbml0OmZ1bmN0aW9u
IChpbnB1dCwgb3V0cHV0LCBlcnJvcikgewotICAgICAgICBhc3NlcnQoIUZTLmluaXQuaW5pdGlh
bGl6ZWQsICdGUy5pbml0IHdhcyBwcmV2aW91c2x5IGNhbGxlZC4gSWYgeW91IHdhbnQgdG8gaW5p
dGlhbGl6ZSBsYXRlciB3aXRoIGN1c3RvbSBwYXJhbWV0ZXJzLCByZW1vdmUgYW55IGVhcmxpZXIg
Y2FsbHMgKG5vdGUgdGhhdCBvbmUgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgZ2VuZXJh
dGVkIGNvZGUpJyk7Ci0gICAgICAgIEZTLmluaXQuaW5pdGlhbGl6ZWQgPSB0cnVlOwotICAgICAg
ICAvLyBBbGxvdyBNb2R1bGUuc3RkaW4gZXRjLiB0byBwcm92aWRlIGRlZmF1bHRzLCBpZiBub25l
IGV4cGxpY2l0bHkgcGFzc2VkIHRvIHVzIGhlcmUKLSAgICAgICAgTW9kdWxlWydzdGRpbiddID0g
aW5wdXQgfHwgTW9kdWxlWydzdGRpbiddOwotICAgICAgICBNb2R1bGVbJ3N0ZG91dCddID0gb3V0
cHV0IHx8IE1vZHVsZVsnc3Rkb3V0J107Ci0gICAgICAgIE1vZHVsZVsnc3RkZXJyJ10gPSBlcnJv
ciB8fCBNb2R1bGVbJ3N0ZGVyciddOwotICAgICAgICBGUy5jcmVhdGVTdGFuZGFyZFN0cmVhbXMo
KTsKLSAgICAgIH0scXVpdDpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIEZTLmluaXQuaW5pdGlhbGl6
ZWQgPSBmYWxzZTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBGUy5zdHJlYW1zLmxlbmd0
aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIHN0cmVhbSA9IEZTLnN0cmVhbXNbaV07Ci0gICAgICAg
ICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIH0KLSAg
ICAgICAgICBGUy5jbG9zZShzdHJlYW0pOwotICAgICAgICB9Ci0gICAgICB9LG1vdW50OmZ1bmN0
aW9uICh0eXBlLCBvcHRzLCBtb3VudHBvaW50KSB7Ci0gICAgICAgIHZhciBtb3VudCA9IHsKLSAg
ICAgICAgICB0eXBlOiB0eXBlLAotICAgICAgICAgIG9wdHM6IG9wdHMsCi0gICAgICAgICAgbW91
bnRwb2ludDogbW91bnRwb2ludCwKLSAgICAgICAgICByb290OiBudWxsCi0gICAgICAgIH07Ci0g
ICAgICAgIHZhciBsb29rdXA7Ci0gICAgICAgIGlmIChtb3VudHBvaW50KSB7Ci0gICAgICAgICAg
bG9va3VwID0gRlMubG9va3VwUGF0aChtb3VudHBvaW50LCB7IGZvbGxvdzogZmFsc2UgfSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgLy8gY3JlYXRlIGEgcm9vdCBub2RlIGZvciB0aGUgZnMKLSAgICAg
ICAgdmFyIHJvb3QgPSB0eXBlLm1vdW50KG1vdW50KTsKLSAgICAgICAgcm9vdC5tb3VudCA9IG1v
dW50OwotICAgICAgICBtb3VudC5yb290ID0gcm9vdDsKLSAgICAgICAgLy8gYXNzaWduIHRoZSBt
b3VudCBpbmZvIHRvIHRoZSBtb3VudHBvaW50J3Mgbm9kZQotICAgICAgICBpZiAobG9va3VwKSB7
Ci0gICAgICAgICAgbG9va3VwLm5vZGUubW91bnQgPSBtb3VudDsKLSAgICAgICAgICBsb29rdXAu
bm9kZS5tb3VudGVkID0gdHJ1ZTsKLSAgICAgICAgICAvLyBjb21wYXRpYmlsaXR5IHVwZGF0ZSBG
Uy5yb290IGlmIHdlIG1vdW50IHRvIC8KLSAgICAgICAgICBpZiAobW91bnRwb2ludCA9PT0gJy8n
KSB7Ci0gICAgICAgICAgICBGUy5yb290ID0gbW91bnQucm9vdDsKLSAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHJvb3Q7Ci0gICAgICB9LGxvb2t1cDpmdW5jdGlvbiAocGFy
ZW50LCBuYW1lKSB7Ci0gICAgICAgIHJldHVybiBwYXJlbnQubm9kZV9vcHMubG9va3VwKHBhcmVu
dCwgbmFtZSk7Ci0gICAgICB9LG1rbm9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlLCBkZXYpIHsKLSAg
ICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7
Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUgPSBQ
QVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5Q3JlYXRlKHBhcmVu
dCwgbmFtZSk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghcGFyZW50Lm5vZGVfb3BzLm1r
bm9kKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBF
Uk0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBwYXJlbnQubm9kZV9vcHMubWtub2QocGFy
ZW50LCBuYW1lLCBtb2RlLCBkZXYpOwotICAgICAgfSxjcmVhdGU6ZnVuY3Rpb24gKHBhdGgsIG1v
ZGUpIHsKLSAgICAgICAgbW9kZSAmPSA0MDk1OwotICAgICAgICBtb2RlIHw9IDAxMDAwMDA7Ci0g
ICAgICAgIHJldHVybiBGUy5ta25vZChwYXRoLCBtb2RlLCAwKTsKLSAgICAgIH0sbWtkaXI6ZnVu
Y3Rpb24gKHBhdGgsIG1vZGUpIHsKLSAgICAgICAgbW9kZSAmPSA1MTEgfCAwMDAxMDAwOwotICAg
ICAgICBtb2RlIHw9IDAwNDAwMDA7Ci0gICAgICAgIHJldHVybiBGUy5ta25vZChwYXRoLCBtb2Rl
LCAwKTsKLSAgICAgIH0sbWtkZXY6ZnVuY3Rpb24gKHBhdGgsIG1vZGUsIGRldikgewotICAgICAg
ICBtb2RlIHw9IDAwMjAwMDA7Ci0gICAgICAgIHJldHVybiBGUy5ta25vZChwYXRoLCBtb2RlLCBk
ZXYpOwotICAgICAgfSxzeW1saW5rOmZ1bmN0aW9uIChvbGRwYXRoLCBuZXdwYXRoKSB7Ci0gICAg
ICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKG5ld3BhdGgsIHsgcGFyZW50OiB0cnVlIH0p
OwotICAgICAgICB2YXIgcGFyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIHZhciBuZXduYW1l
ID0gUEFUSC5iYXNlbmFtZShuZXdwYXRoKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heUNyZWF0
ZShwYXJlbnQsIG5ld25hbWUpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cg
bmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBhcmVudC5u
b2RlX29wcy5zeW1saW5rKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBwYXJlbnQubm9kZV9v
cHMuc3ltbGluayhwYXJlbnQsIG5ld25hbWUsIG9sZHBhdGgpOwotICAgICAgfSxyZW5hbWU6ZnVu
Y3Rpb24gKG9sZF9wYXRoLCBuZXdfcGF0aCkgewotICAgICAgICB2YXIgb2xkX2Rpcm5hbWUgPSBQ
QVRILmRpcm5hbWUob2xkX3BhdGgpOwotICAgICAgICB2YXIgbmV3X2Rpcm5hbWUgPSBQQVRILmRp
cm5hbWUobmV3X3BhdGgpOwotICAgICAgICB2YXIgb2xkX25hbWUgPSBQQVRILmJhc2VuYW1lKG9s
ZF9wYXRoKTsKLSAgICAgICAgdmFyIG5ld19uYW1lID0gUEFUSC5iYXNlbmFtZShuZXdfcGF0aCk7
Ci0gICAgICAgIC8vIHBhcmVudHMgbXVzdCBleGlzdAotICAgICAgICB2YXIgbG9va3VwLCBvbGRf
ZGlyLCBuZXdfZGlyOwotICAgICAgICB0cnkgewotICAgICAgICAgIGxvb2t1cCA9IEZTLmxvb2t1
cFBhdGgob2xkX3BhdGgsIHsgcGFyZW50OiB0cnVlIH0pOwotICAgICAgICAgIG9sZF9kaXIgPSBs
b29rdXAubm9kZTsKLSAgICAgICAgICBsb29rdXAgPSBGUy5sb29rdXBQYXRoKG5ld19wYXRoLCB7
IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAgICAgICBuZXdfZGlyID0gbG9va3VwLm5vZGU7Ci0gICAg
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FQlVTWSk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gbmVlZCB0byBiZSBwYXJ0IG9m
IHRoZSBzYW1lIG1vdW50Ci0gICAgICAgIGlmIChvbGRfZGlyLm1vdW50ICE9PSBuZXdfZGlyLm1v
dW50KSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVhE
RVYpOwotICAgICAgICB9Ci0gICAgICAgIC8vIHNvdXJjZSBtdXN0IGV4aXN0Ci0gICAgICAgIHZh
ciBvbGRfbm9kZSA9IEZTLmxvb2t1cE5vZGUob2xkX2Rpciwgb2xkX25hbWUpOwotICAgICAgICAv
LyBvbGQgcGF0aCBzaG91bGQgbm90IGJlIGFuIGFuY2VzdG9yIG9mIHRoZSBuZXcgcGF0aAotICAg
ICAgICB2YXIgcmVsYXRpdmUgPSBQQVRILnJlbGF0aXZlKG9sZF9wYXRoLCBuZXdfZGlybmFtZSk7
Ci0gICAgICAgIGlmIChyZWxhdGl2ZS5jaGFyQXQoMCkgIT09ICcuJykgewotICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgLy8gbmV3IHBhdGggc2hvdWxkIG5vdCBiZSBhbiBhbmNlc3RvciBvZiB0aGUgb2xkIHBh
dGgKLSAgICAgICAgcmVsYXRpdmUgPSBQQVRILnJlbGF0aXZlKG5ld19wYXRoLCBvbGRfZGlybmFt
ZSk7Ci0gICAgICAgIGlmIChyZWxhdGl2ZS5jaGFyQXQoMCkgIT09ICcuJykgewotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RFTVBUWSk7Ci0gICAgICAg
IH0KLSAgICAgICAgLy8gc2VlIGlmIHRoZSBuZXcgcGF0aCBhbHJlYWR5IGV4aXN0cwotICAgICAg
ICB2YXIgbmV3X25vZGU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbmV3X25vZGUgPSBGUy5s
b29rdXBOb2RlKG5ld19kaXIsIG5ld19uYW1lKTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAg
ICAgICAgIC8vIG5vdCBmYXRhbAotICAgICAgICB9Ci0gICAgICAgIC8vIGVhcmx5IG91dCBpZiBu
b3RoaW5nIG5lZWRzIHRvIGNoYW5nZQotICAgICAgICBpZiAob2xkX25vZGUgPT09IG5ld19ub2Rl
KSB7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIC8vIHdlJ2xsIG5lZWQg
dG8gZGVsZXRlIHRoZSBvbGQgZW50cnkKLSAgICAgICAgdmFyIGlzZGlyID0gRlMuaXNEaXIob2xk
X25vZGUubW9kZSk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlEZWxldGUob2xkX2Rpciwgb2xk
X25hbWUsIGlzZGlyKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gbmVlZCBkZWxldGUgcGVy
bWlzc2lvbnMgaWYgd2UnbGwgYmUgb3ZlcndyaXRpbmcuCi0gICAgICAgIC8vIG5lZWQgY3JlYXRl
IHBlcm1pc3Npb25zIGlmIG5ldyBkb2Vzbid0IGFscmVhZHkgZXhpc3QuCi0gICAgICAgIGVyciA9
IG5ld19ub2RlID8KLSAgICAgICAgICBGUy5tYXlEZWxldGUobmV3X2RpciwgbmV3X25hbWUsIGlz
ZGlyKSA6Ci0gICAgICAgICAgRlMubWF5Q3JlYXRlKG5ld19kaXIsIG5ld19uYW1lKTsKLSAgICAg
ICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKCFvbGRfZGlyLm5vZGVfb3BzLnJlbmFtZSkgewotICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAg
fQotICAgICAgICBpZiAoRlMuaXNNb3VudHBvaW50KG9sZF9ub2RlKSB8fCAobmV3X25vZGUgJiYg
RlMuaXNNb3VudHBvaW50KG5ld19ub2RlKSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gaWYgd2Ug
YXJlIGdvaW5nIHRvIGNoYW5nZSB0aGUgcGFyZW50LCBjaGVjayB3cml0ZSBwZXJtaXNzaW9ucwot
ICAgICAgICBpZiAobmV3X2RpciAhPT0gb2xkX2RpcikgewotICAgICAgICAgIGVyciA9IEZTLm5v
ZGVQZXJtaXNzaW9ucyhvbGRfZGlyLCAndycpOwotICAgICAgICAgIGlmIChlcnIpIHsKLSAgICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIC8vIHJlbW92ZSB0aGUgbm9kZSBmcm9tIHRoZSBsb29rdXAgaGFzaAotICAg
ICAgICBGUy5oYXNoUmVtb3ZlTm9kZShvbGRfbm9kZSk7Ci0gICAgICAgIC8vIGRvIHRoZSB1bmRl
cmx5aW5nIGZzIHJlbmFtZQotICAgICAgICB0cnkgewotICAgICAgICAgIG9sZF9kaXIubm9kZV9v
cHMucmVuYW1lKG9sZF9ub2RlLCBuZXdfZGlyLCBuZXdfbmFtZSk7Ci0gICAgICAgIH0gY2F0Y2gg
KGUpIHsKLSAgICAgICAgICB0aHJvdyBlOwotICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAg
IC8vIGFkZCB0aGUgbm9kZSBiYWNrIHRvIHRoZSBoYXNoIChpbiBjYXNlIG5vZGVfb3BzLnJlbmFt
ZQotICAgICAgICAgIC8vIGNoYW5nZWQgaXRzIG5hbWUpCi0gICAgICAgICAgRlMuaGFzaEFkZE5v
ZGUob2xkX25vZGUpOwotICAgICAgICB9Ci0gICAgICB9LHJtZGlyOmZ1bmN0aW9uIChwYXRoKSB7
Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgcGFyZW50OiB0cnVl
IH0pOwotICAgICAgICB2YXIgcGFyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIHZhciBuYW1l
ID0gUEFUSC5iYXNlbmFtZShwYXRoKTsKLSAgICAgICAgdmFyIG5vZGUgPSBGUy5sb29rdXBOb2Rl
KHBhcmVudCwgbmFtZSk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlEZWxldGUocGFyZW50LCBu
YW1lLCB0cnVlKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5F
cnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFwYXJlbnQubm9kZV9vcHMu
cm1kaXIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
UEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKEZTLmlzTW91bnRwb2ludChub2RlKSkgewot
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZKTsKLSAg
ICAgICAgfQotICAgICAgICBwYXJlbnQubm9kZV9vcHMucm1kaXIocGFyZW50LCBuYW1lKTsKLSAg
ICAgICAgRlMuZGVzdHJveU5vZGUobm9kZSk7Ci0gICAgICB9LHJlYWRkaXI6ZnVuY3Rpb24gKHBh
dGgpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6
IHRydWUgfSk7Ci0gICAgICAgIHZhciBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIGlmICgh
bm9kZS5ub2RlX29wcy5yZWFkZGlyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRU5PVERJUik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGUu
bm9kZV9vcHMucmVhZGRpcihub2RlKTsKLSAgICAgIH0sdW5saW5rOmZ1bmN0aW9uIChwYXRoKSB7
Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgcGFyZW50OiB0cnVl
IH0pOwotICAgICAgICB2YXIgcGFyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIHZhciBuYW1l
ID0gUEFUSC5iYXNlbmFtZShwYXRoKTsKLSAgICAgICAgdmFyIG5vZGUgPSBGUy5sb29rdXBOb2Rl
KHBhcmVudCwgbmFtZSk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlEZWxldGUocGFyZW50LCBu
YW1lLCBmYWxzZSk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICAvLyBQT1NJWCBzYXlz
IHVubGluayBzaG91bGQgc2V0IEVQRVJNLCBub3QgRUlTRElSCi0gICAgICAgICAgaWYgKGVyciA9
PT0gRVJSTk9fQ09ERVMuRUlTRElSKSBlcnIgPSBFUlJOT19DT0RFUy5FUEVSTTsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgh
cGFyZW50Lm5vZGVfb3BzLnVubGluaykgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNNb3Vu
dHBvaW50KG5vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUJVU1kpOwotICAgICAgICB9Ci0gICAgICAgIHBhcmVudC5ub2RlX29wcy51bmxpbmso
cGFyZW50LCBuYW1lKTsKLSAgICAgICAgRlMuZGVzdHJveU5vZGUobm9kZSk7Ci0gICAgICB9LHJl
YWRsaW5rOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQ
YXRoKHBhdGgsIHsgZm9sbG93OiBmYWxzZSB9KTsKLSAgICAgICAgdmFyIGxpbmsgPSBsb29rdXAu
bm9kZTsKLSAgICAgICAgaWYgKCFsaW5rLm5vZGVfb3BzLnJlYWRsaW5rKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gbGluay5ub2RlX29wcy5yZWFkbGluayhsaW5rKTsKLSAgICAgIH0sc3Rh
dDpmdW5jdGlvbiAocGF0aCwgZG9udEZvbGxvdykgewotICAgICAgICB2YXIgbG9va3VwID0gRlMu
bG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogIWRvbnRGb2xsb3cgfSk7Ci0gICAgICAgIHZhciBu
b2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5nZXRhdHRyKSB7
Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlLm5vZGVfb3BzLmdldGF0dHIobm9kZSk7Ci0g
ICAgICB9LGxzdGF0OmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHJldHVybiBGUy5zdGF0KHBh
dGgsIHRydWUpOwotICAgICAgfSxjaG1vZDpmdW5jdGlvbiAocGF0aCwgbW9kZSwgZG9udEZvbGxv
dykgewotICAgICAgICB2YXIgbm9kZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3Ry
aW5nJykgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9s
bG93OiAhZG9udEZvbGxvdyB9KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgbm9kZSA9IHBhdGg7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKCFub2RlLm5vZGVfb3BzLnNldGF0dHIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS5ub2Rl
X29wcy5zZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICBtb2RlOiAobW9kZSAmIDQwOTUpIHwgKG5v
ZGUubW9kZSAmIH40MDk1KSwKLSAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCkKLSAgICAg
ICAgfSk7Ci0gICAgICB9LGxjaG1vZDpmdW5jdGlvbiAocGF0aCwgbW9kZSkgewotICAgICAgICBG
Uy5jaG1vZChwYXRoLCBtb2RlLCB0cnVlKTsKLSAgICAgIH0sZmNobW9kOmZ1bmN0aW9uIChmZCwg
bW9kZSkgewotICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAgICAg
aWYgKCFzdHJlYW0pIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAgICAgRlMuY2htb2Qoc3RyZWFtLm5vZGUsIG1v
ZGUpOwotICAgICAgfSxjaG93bjpmdW5jdGlvbiAocGF0aCwgdWlkLCBnaWQsIGRvbnRGb2xsb3cp
IHsKLSAgICAgICAgdmFyIG5vZGU7Ci0gICAgICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmlu
ZycpIHsKLSAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxv
dzogIWRvbnRGb2xsb3cgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgIG5vZGUgPSBwYXRoOwotICAgICAgICB9Ci0gICAgICAgIGlm
ICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5v
RXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUubm9kZV9v
cHMuc2V0YXR0cihub2RlLCB7Ci0gICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpCi0gICAg
ICAgICAgLy8gd2UgaWdub3JlIHRoZSB1aWQgLyBnaWQgZm9yIG5vdwotICAgICAgICB9KTsKLSAg
ICAgIH0sbGNob3duOmZ1bmN0aW9uIChwYXRoLCB1aWQsIGdpZCkgewotICAgICAgICBGUy5jaG93
bihwYXRoLCB1aWQsIGdpZCwgdHJ1ZSk7Ci0gICAgICB9LGZjaG93bjpmdW5jdGlvbiAoZmQsIHVp
ZCwgZ2lkKSB7Ci0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwotICAgICAg
ICBpZiAoIXN0cmVhbSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBGUy5jaG93bihzdHJlYW0ubm9kZSwg
dWlkLCBnaWQpOwotICAgICAgfSx0cnVuY2F0ZTpmdW5jdGlvbiAocGF0aCwgbGVuKSB7Ci0gICAg
ICAgIGlmIChsZW4gPCAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgbm9kZTsKLSAgICAgICAg
aWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykgewotICAgICAgICAgIHZhciBsb29rdXAgPSBG
Uy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiB0cnVlIH0pOwotICAgICAgICAgIG5vZGUgPSBs
b29rdXAubm9kZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBub2RlID0gcGF0aDsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIW5vZGUubm9kZV9vcHMuc2V0YXR0cikgewotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQot
ICAgICAgICBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJUik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KCFGUy5pc0ZpbGUobm9kZS5tb2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGVyciA9IEZT
Lm5vZGVQZXJtaXNzaW9ucyhub2RlLCAndycpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBub2Rl
Lm5vZGVfb3BzLnNldGF0dHIobm9kZSwgewotICAgICAgICAgIHNpemU6IGxlbiwKLSAgICAgICAg
ICB0aW1lc3RhbXA6IERhdGUubm93KCkKLSAgICAgICAgfSk7Ci0gICAgICB9LGZ0cnVuY2F0ZTpm
dW5jdGlvbiAoZmQsIGxlbikgewotICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZk
KTsKLSAgICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChzdHJlYW0u
ZmxhZ3MgJiAzKSA9PT0gMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgRlMudHJ1bmNhdGUoc3RyZWFt
Lm5vZGUsIGxlbik7Ci0gICAgICB9LHV0aW1lOmZ1bmN0aW9uIChwYXRoLCBhdGltZSwgbXRpbWUp
IHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6IHRy
dWUgfSk7Ci0gICAgICAgIHZhciBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIG5vZGUubm9k
ZV9vcHMuc2V0YXR0cihub2RlLCB7Ci0gICAgICAgICAgdGltZXN0YW1wOiBNYXRoLm1heChhdGlt
ZSwgbXRpbWUpCi0gICAgICAgIH0pOwotICAgICAgfSxvcGVuOmZ1bmN0aW9uIChwYXRoLCBmbGFn
cywgbW9kZSwgZmRfc3RhcnQsIGZkX2VuZCkgewotICAgICAgICBwYXRoID0gUEFUSC5ub3JtYWxp
emUocGF0aCk7Ci0gICAgICAgIGZsYWdzID0gdHlwZW9mIGZsYWdzID09PSAnc3RyaW5nJyA/IEZT
Lm1vZGVTdHJpbmdUb0ZsYWdzKGZsYWdzKSA6IGZsYWdzOwotICAgICAgICBtb2RlID0gdHlwZW9m
IG1vZGUgPT09ICd1bmRlZmluZWQnID8gMDY2NiA6IG1vZGU7Ci0gICAgICAgIGlmICgoZmxhZ3Mg
JiA1MTIpKSB7Ci0gICAgICAgICAgbW9kZSA9IChtb2RlICYgNDA5NSkgfCAwMTAwMDAwOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgIG1vZGUgPSAwOwotICAgICAgICB9Ci0gICAgICAgIHZh
ciBub2RlOwotICAgICAgICB0cnkgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQ
YXRoKHBhdGgsIHsKLSAgICAgICAgICAgIGZvbGxvdzogIShmbGFncyAmIDAyMDAwMDApCi0gICAg
ICAgICAgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgIHBhdGgg
PSBsb29rdXAucGF0aDsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIC8vIGlnbm9y
ZQotICAgICAgICB9Ci0gICAgICAgIC8vIHBlcmhhcHMgd2UgbmVlZCB0byBjcmVhdGUgdGhlIG5v
ZGUKLSAgICAgICAgaWYgKChmbGFncyAmIDUxMikpIHsKLSAgICAgICAgICBpZiAobm9kZSkgewot
ICAgICAgICAgICAgLy8gaWYgT19DUkVBVCBhbmQgT19FWENMIGFyZSBzZXQsIGVycm9yIG91dCBp
ZiB0aGUgbm9kZSBhbHJlYWR5IGV4aXN0cwotICAgICAgICAgICAgaWYgKChmbGFncyAmIDIwNDgp
KSB7Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVF
WElTVCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8v
IG5vZGUgZG9lc24ndCBleGlzdCwgdHJ5IHRvIGNyZWF0ZSBpdAotICAgICAgICAgICAgbm9kZSA9
IEZTLm1rbm9kKHBhdGgsIG1vZGUsIDApOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICBpZiAoIW5vZGUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FTk9FTlQpOwotICAgICAgICB9Ci0gICAgICAgIC8vIGNhbid0IHRydW5jYXRlIGEgZGV2
aWNlCi0gICAgICAgIGlmIChGUy5pc0NocmRldihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgZmxh
Z3MgJj0gfjEwMjQ7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gY2hlY2sgcGVybWlzc2lvbnMKLSAg
ICAgICAgdmFyIGVyciA9IEZTLm1heU9wZW4obm9kZSwgZmxhZ3MpOwotICAgICAgICBpZiAoZXJy
KSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQot
ICAgICAgICAvLyBkbyB0cnVuY2F0aW9uIGlmIG5lY2Vzc2FyeQotICAgICAgICBpZiAoKGZsYWdz
ICYgMTAyNCkpIHsKLSAgICAgICAgICBGUy50cnVuY2F0ZShub2RlLCAwKTsKLSAgICAgICAgfQot
ICAgICAgICAvLyByZWdpc3RlciB0aGUgc3RyZWFtIHdpdGggdGhlIGZpbGVzeXN0ZW0KLSAgICAg
ICAgdmFyIHN0cmVhbSA9IEZTLmNyZWF0ZVN0cmVhbSh7Ci0gICAgICAgICAgcGF0aDogcGF0aCwK
LSAgICAgICAgICBub2RlOiBub2RlLAotICAgICAgICAgIGZsYWdzOiBmbGFncywKLSAgICAgICAg
ICBzZWVrYWJsZTogdHJ1ZSwKLSAgICAgICAgICBwb3NpdGlvbjogMCwKLSAgICAgICAgICBzdHJl
YW1fb3BzOiBub2RlLnN0cmVhbV9vcHMsCi0gICAgICAgICAgLy8gdXNlZCBieSB0aGUgZmlsZSBm
YW1pbHkgbGliYyBjYWxscyAoZm9wZW4sIGZ3cml0ZSwgZmVycm9yLCBldGMuKQotICAgICAgICAg
IHVuZ290dGVuOiBbXSwKLSAgICAgICAgICBlcnJvcjogZmFsc2UKLSAgICAgICAgfSwgZmRfc3Rh
cnQsIGZkX2VuZCk7Ci0gICAgICAgIC8vIGNhbGwgdGhlIG5ldyBzdHJlYW0ncyBvcGVuIGZ1bmN0
aW9uCi0gICAgICAgIGlmIChzdHJlYW0uc3RyZWFtX29wcy5vcGVuKSB7Ci0gICAgICAgICAgc3Ry
ZWFtLnN0cmVhbV9vcHMub3BlbihzdHJlYW0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBz
dHJlYW07Ci0gICAgICB9LGNsb3NlOmZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICAgICAgdHJ5IHsK
LSAgICAgICAgICBpZiAoc3RyZWFtLnN0cmVhbV9vcHMuY2xvc2UpIHsKLSAgICAgICAgICAgIHN0
cmVhbS5zdHJlYW1fb3BzLmNsb3NlKHN0cmVhbSk7Ci0gICAgICAgICAgfQotICAgICAgICB9IGNh
dGNoIChlKSB7Ci0gICAgICAgICAgdGhyb3cgZTsKLSAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAg
ICAgICBGUy5jbG9zZVN0cmVhbShzdHJlYW0uZmQpOwotICAgICAgICB9Ci0gICAgICB9LGxsc2Vl
azpmdW5jdGlvbiAoc3RyZWFtLCBvZmZzZXQsIHdoZW5jZSkgewotICAgICAgICBpZiAoIXN0cmVh
bS5zZWVrYWJsZSB8fCAhc3RyZWFtLnN0cmVhbV9vcHMubGxzZWVrKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVNQSVBFKTsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gc3RyZWFtLnN0cmVhbV9vcHMubGxzZWVrKHN0cmVhbSwgb2Zmc2V0LCB3aGVu
Y2UpOwotICAgICAgfSxyZWFkOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5n
dGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgIGlmIChsZW5ndGggPCAwIHx8IHBvc2l0aW9uIDwgMCkg
ewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0gMSkgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAg
ICAgfQotICAgICAgICBpZiAoRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkpIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIpOwotICAgICAgICB9
Ci0gICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMucmVhZCkgewotICAgICAgICAgIHRocm93
IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgdmFyIHNlZWtpbmcgPSB0cnVlOwotICAgICAgICBpZiAodHlwZW9mIHBvc2l0aW9uID09PSAn
dW5kZWZpbmVkJykgewotICAgICAgICAgIHBvc2l0aW9uID0gc3RyZWFtLnBvc2l0aW9uOwotICAg
ICAgICAgIHNlZWtpbmcgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIGlmICghc3RyZWFtLnNlZWth
YmxlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVNQ
SVBFKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgYnl0ZXNSZWFkID0gc3RyZWFtLnN0cmVhbV9v
cHMucmVhZChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKTsKLSAgICAg
ICAgaWYgKCFzZWVraW5nKSBzdHJlYW0ucG9zaXRpb24gKz0gYnl0ZXNSZWFkOwotICAgICAgICBy
ZXR1cm4gYnl0ZXNSZWFkOwotICAgICAgfSx3cml0ZTpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIs
IG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewotICAgICAgICBpZiAobGVuZ3RoIDwgMCB8fCBw
b3NpdGlvbiA8IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykg
PT09IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
QkFERik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKEZTLmlzRGlyKHN0cmVhbS5ub2RlLm1vZGUp
KSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlTRElS
KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLndyaXRlKSB7Ci0g
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAg
ICAgICAgfQotICAgICAgICB2YXIgc2Vla2luZyA9IHRydWU7Ci0gICAgICAgIGlmICh0eXBlb2Yg
cG9zaXRpb24gPT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgcG9zaXRpb24gPSBzdHJlYW0u
cG9zaXRpb247Ci0gICAgICAgICAgc2Vla2luZyA9IGZhbHNlOwotICAgICAgICB9IGVsc2UgaWYg
KCFzdHJlYW0uc2Vla2FibGUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihF
UlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChzdHJlYW0uZmxhZ3Mg
JiA4KSB7Ci0gICAgICAgICAgLy8gc2VlayB0byB0aGUgZW5kIGJlZm9yZSB3cml0aW5nIGluIGFw
cGVuZCBtb2RlCi0gICAgICAgICAgRlMubGxzZWVrKHN0cmVhbSwgMCwgMik7Ci0gICAgICAgIH0K
LSAgICAgICAgdmFyIGJ5dGVzV3JpdHRlbiA9IHN0cmVhbS5zdHJlYW1fb3BzLndyaXRlKHN0cmVh
bSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pOwotICAgICAgICBpZiAoIXNlZWtp
bmcpIHN0cmVhbS5wb3NpdGlvbiArPSBieXRlc1dyaXR0ZW47Ci0gICAgICAgIHJldHVybiBieXRl
c1dyaXR0ZW47Ci0gICAgICB9LGFsbG9jYXRlOmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNldCwgbGVu
Z3RoKSB7Ci0gICAgICAgIGlmIChvZmZzZXQgPCAwIHx8IGxlbmd0aCA8PSAwKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAg
fQotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAwKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAg
ICAgIGlmICghRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpICYmICFGUy5pc0Rpcihub2RlLm1v
ZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5P
REVWKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLmFsbG9jYXRl
KSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU9QTk9U
U1VQUCk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMuYWxsb2NhdGUoc3Ry
ZWFtLCBvZmZzZXQsIGxlbmd0aCk7Ci0gICAgICB9LG1tYXA6ZnVuY3Rpb24gKHN0cmVhbSwgYnVm
ZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24sIHByb3QsIGZsYWdzKSB7Ci0gICAgICAgIC8v
IFRPRE8gaWYgUFJPVCBpcyBQUk9UX1dSSVRFLCBtYWtlIHN1cmUgd2UgaGF2ZSB3cml0ZSBhY2Nl
c3MKLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0gMSkgewotICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBQ0NFUyk7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy5tbWFwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3
IEZTLmVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PREVWKTsKLSAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gc3RyZWFtLnN0cmVhbV9vcHMubW1hcChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5n
dGgsIHBvc2l0aW9uLCBwcm90LCBmbGFncyk7Ci0gICAgICB9fTsKLSAgZnVuY3Rpb24gX3NlbmQo
ZmQsIGJ1ZiwgbGVuLCBmbGFncykgewotICAgICAgdmFyIGluZm8gPSBGUy5nZXRTdHJlYW0oZmQp
OwotICAgICAgaWYgKCFpbmZvKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVC
QURGKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgICAgaWYgKGluZm8uc29ja2V0
LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TSU5HIHx8IGluZm8uc29ja2V0LnJlYWR5U3Rh
dGUgPT09IFdlYlNvY2tldC5DTE9TRUQpIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09E
RVMuRU5PVENPTk4pOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9IGVsc2UgaWYgKGluZm8u
c29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DT05ORUNUSU5HKSB7Ci0gICAgICAgIF9f
X3NldEVyck5vKEVSUk5PX0NPREVTLkVBR0FJTik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAg
IH0KLSAgICAgIGluZm8uc2VuZGVyKEhFQVBVOC5zdWJhcnJheShidWYsIGJ1ZitsZW4pKTsKLSAg
ICAgIHJldHVybiBsZW47Ci0gICAgfQotICBmdW5jdGlvbiBfcHdyaXRlKGZpbGRlcywgYnVmLCBu
Ynl0ZSwgb2Zmc2V0KSB7Ci0gICAgICAvLyBzc2l6ZV90IHB3cml0ZShpbnQgZmlsZGVzLCBjb25z
dCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSwgb2ZmX3Qgb2Zmc2V0KTsKLSAgICAgIC8vIGh0dHA6
Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3dyaXRl
Lmh0bWwKLSAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmlsZGVzKTsKLSAgICAgIGlm
ICghc3RyZWFtKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAg
ICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgICAgdHJ5IHsKLSAgICAgICAgdmFyIHNsYWIg
PSBIRUFQODsKLSAgICAgICAgcmV0dXJuIEZTLndyaXRlKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0
ZSwgb2Zmc2V0KTsKLSAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgRlMuaGFuZGxlRlNFcnJv
cihlKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgIH1mdW5jdGlvbiBfd3JpdGUo
ZmlsZGVzLCBidWYsIG5ieXRlKSB7Ci0gICAgICAvLyBzc2l6ZV90IHdyaXRlKGludCBmaWxkZXMs
IGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9w
ZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3dyaXRlLmh0bWwKLSAg
ICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmlsZGVzKTsKLSAgICAgIGlmICghc3RyZWFt
KSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0
dXJuIC0xOwotICAgICAgfQotICAgICAgaWYgKHN0cmVhbSAmJiAoJ3NvY2tldCcgaW4gc3RyZWFt
KSkgewotICAgICAgICByZXR1cm4gX3NlbmQoZmlsZGVzLCBidWYsIG5ieXRlLCAwKTsKLSAgICAg
IH0KLSAgICAgIHRyeSB7Ci0gICAgICAgIHZhciBzbGFiID0gSEVBUDg7Ci0gICAgICAgIHJldHVy
biBGUy53cml0ZShzdHJlYW0sIHNsYWIsIGJ1ZiwgbmJ5dGUpOwotICAgICAgfSBjYXRjaCAoZSkg
ewotICAgICAgICBGUy5oYW5kbGVGU0Vycm9yKGUpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAg
ICB9Ci0gICAgfWZ1bmN0aW9uIF9md3JpdGUocHRyLCBzaXplLCBuaXRlbXMsIHN0cmVhbSkgewot
ICAgICAgLy8gc2l6ZV90IGZ3cml0ZShjb25zdCB2b2lkICpyZXN0cmljdCBwdHIsIHNpemVfdCBz
aXplLCBzaXplX3Qgbml0ZW1zLCBGSUxFICpyZXN0cmljdCBzdHJlYW0pOwotICAgICAgLy8gaHR0
cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZndy
aXRlLmh0bWwKLSAgICAgIHZhciBieXRlc1RvV3JpdGUgPSBuaXRlbXMgKiBzaXplOwotICAgICAg
aWYgKGJ5dGVzVG9Xcml0ZSA9PSAwKSByZXR1cm4gMDsKLSAgICAgIHZhciBieXRlc1dyaXR0ZW4g
PSBfd3JpdGUoc3RyZWFtLCBwdHIsIGJ5dGVzVG9Xcml0ZSk7Ci0gICAgICBpZiAoYnl0ZXNXcml0
dGVuID09IC0xKSB7Ci0gICAgICAgIHZhciBzdHJlYW1PYmogPSBGUy5nZXRTdHJlYW0oc3RyZWFt
KTsKLSAgICAgICAgaWYgKHN0cmVhbU9iaikgc3RyZWFtT2JqLmVycm9yID0gdHJ1ZTsKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihi
eXRlc1dyaXR0ZW4gLyBzaXplKTsKLSAgICAgIH0KLSAgICB9Ci0gIGZ1bmN0aW9uIF91bmdldGMo
Yywgc3RyZWFtKSB7Ci0gICAgICAvLyBpbnQgdW5nZXRjKGludCBjLCBGSUxFICpzdHJlYW0pOwot
ICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9m
dW5jdGlvbnMvdW5nZXRjLmh0bWwKLSAgICAgIHN0cmVhbSA9IEZTLmdldFN0cmVhbShzdHJlYW0p
OwotICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAg
ICAgaWYgKGMgPT09IC0xKSB7Ci0gICAgICAgIC8vIGRvIG5vdGhpbmcgZm9yIEVPRiBjaGFyYWN0
ZXIKLSAgICAgICAgcmV0dXJuIGM7Ci0gICAgICB9Ci0gICAgICBjID0gdW5TaWduKGMgJiAweEZG
KTsKLSAgICAgIHN0cmVhbS51bmdvdHRlbi5wdXNoKGMpOwotICAgICAgc3RyZWFtLmVvZiA9IGZh
bHNlOwotICAgICAgcmV0dXJuIGM7Ci0gICAgfQotICBmdW5jdGlvbiBfcmVjdihmZCwgYnVmLCBs
ZW4sIGZsYWdzKSB7Ci0gICAgICB2YXIgaW5mbyA9IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICBp
ZiAoIWluZm8pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoIWluZm8uaGFzRGF0YSgpKSB7Ci0g
ICAgICAgIGlmIChpbmZvLnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ0xPU0lORyB8
fCBpbmZvLnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ0xPU0VEKSB7Ci0gICAgICAg
ICAgLy8gc29ja2V0IGhhcyBjbG9zZWQKLSAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAvLyBlbHNlLCBvdXIgc29ja2V0IGlzIGluIGEgdmFsaWQgc3RhdGUg
YnV0IHRydWx5IGhhcyBub3RoaW5nIGF2YWlsYWJsZQotICAgICAgICAgIF9fX3NldEVyck5vKEVS
Uk5PX0NPREVTLkVBR0FJTik7Ci0gICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0gICAg
ICB9Ci0gICAgICB2YXIgYnVmZmVyID0gaW5mby5pblF1ZXVlLnNoaWZ0KCk7Ci0gICAgICBpZiAo
bGVuIDwgYnVmZmVyLmxlbmd0aCkgewotICAgICAgICBpZiAoaW5mby5zdHJlYW0pIHsKLSAgICAg
ICAgICAvLyBUaGlzIGlzIHRjcCAocmVsaWFibGUpLCBzbyBpZiBub3QgYWxsIHdhcyByZWFkLCBr
ZWVwIGl0Ci0gICAgICAgICAgaW5mby5pblF1ZXVlLnVuc2hpZnQoYnVmZmVyLnN1YmFycmF5KGxl
bikpOwotICAgICAgICB9Ci0gICAgICAgIGJ1ZmZlciA9IGJ1ZmZlci5zdWJhcnJheSgwLCBsZW4p
OwotICAgICAgfQotICAgICAgSEVBUFU4LnNldChidWZmZXIsIGJ1Zik7Ci0gICAgICByZXR1cm4g
YnVmZmVyLmxlbmd0aDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9wcmVhZChmaWxkZXMsIGJ1ZiwgbmJ5
dGUsIG9mZnNldCkgewotICAgICAgLy8gc3NpemVfdCBwcmVhZChpbnQgZmlsZGVzLCB2b2lkICpi
dWYsIHNpemVfdCBuYnl0ZSwgb2ZmX3Qgb2Zmc2V0KTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9w
ZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3JlYWQuaHRtbAotICAg
ICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYgKCFzdHJlYW0p
IHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICByZXR1
cm4gLTE7Ci0gICAgICB9Ci0gICAgICB0cnkgewotICAgICAgICB2YXIgc2xhYiA9IEhFQVA4Owot
ICAgICAgICByZXR1cm4gRlMucmVhZChzdHJlYW0sIHNsYWIsIGJ1ZiwgbmJ5dGUsIG9mZnNldCk7
Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEZTLmhhbmRsZUZTRXJyb3IoZSk7Ci0gICAg
ICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24gX3JlYWQoZmlsZGVzLCBidWYs
IG5ieXRlKSB7Ci0gICAgICAvLyBzc2l6ZV90IHJlYWQoaW50IGZpbGRlcywgdm9pZCAqYnVmLCBz
aXplX3QgbmJ5dGUpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVw
dWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvcmVhZC5odG1sCi0gICAgICB2YXIgc3RyZWFtID0gRlMu
Z2V0U3RyZWFtKGZpbGRlcyk7Ci0gICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICBfX19zZXRF
cnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAg
ICAgIGlmIChzdHJlYW0gJiYgKCdzb2NrZXQnIGluIHN0cmVhbSkpIHsKLSAgICAgICAgcmV0dXJu
IF9yZWN2KGZpbGRlcywgYnVmLCBuYnl0ZSwgMCk7Ci0gICAgICB9Ci0gICAgICB0cnkgewotICAg
ICAgICB2YXIgc2xhYiA9IEhFQVA4OwotICAgICAgICByZXR1cm4gRlMucmVhZChzdHJlYW0sIHNs
YWIsIGJ1ZiwgbmJ5dGUpOwotICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBGUy5oYW5kbGVG
U0Vycm9yKGUpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF9m
cmVhZChwdHIsIHNpemUsIG5pdGVtcywgc3RyZWFtKSB7Ci0gICAgICAvLyBzaXplX3QgZnJlYWQo
dm9pZCAqcmVzdHJpY3QgcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5pdGVtcywgRklMRSAqcmVz
dHJpY3Qgc3RyZWFtKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5l
cHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL2ZyZWFkLmh0bWwKLSAgICAgIHZhciBieXRlc1RvUmVh
ZCA9IG5pdGVtcyAqIHNpemU7Ci0gICAgICBpZiAoYnl0ZXNUb1JlYWQgPT0gMCkgewotICAgICAg
ICByZXR1cm4gMDsKLSAgICAgIH0KLSAgICAgIHZhciBieXRlc1JlYWQgPSAwOwotICAgICAgdmFy
IHN0cmVhbU9iaiA9IEZTLmdldFN0cmVhbShzdHJlYW0pOwotICAgICAgd2hpbGUgKHN0cmVhbU9i
ai51bmdvdHRlbi5sZW5ndGggJiYgYnl0ZXNUb1JlYWQgPiAwKSB7Ci0gICAgICAgIEhFQVA4Wygo
cHRyKyspfDApXT1zdHJlYW1PYmoudW5nb3R0ZW4ucG9wKCkKLSAgICAgICAgYnl0ZXNUb1JlYWQt
LTsKLSAgICAgICAgYnl0ZXNSZWFkKys7Ci0gICAgICB9Ci0gICAgICB2YXIgZXJyID0gX3JlYWQo
c3RyZWFtLCBwdHIsIGJ5dGVzVG9SZWFkKTsKLSAgICAgIGlmIChlcnIgPT0gLTEpIHsKLSAgICAg
ICAgaWYgKHN0cmVhbU9iaikgc3RyZWFtT2JqLmVycm9yID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgICB9Ci0gICAgICBieXRlc1JlYWQgKz0gZXJyOwotICAgICAgaWYgKGJ5dGVzUmVh
ZCA8IGJ5dGVzVG9SZWFkKSBzdHJlYW1PYmouZW9mID0gdHJ1ZTsKLSAgICAgIHJldHVybiBNYXRo
LmZsb29yKGJ5dGVzUmVhZCAvIHNpemUpOwotICAgIH1mdW5jdGlvbiBfZmdldGMoc3RyZWFtKSB7
Ci0gICAgICAvLyBpbnQgZmdldGMoRklMRSAqc3RyZWFtKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJz
Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL2ZnZXRjLmh0bWwK
LSAgICAgIHZhciBzdHJlYW1PYmogPSBGUy5nZXRTdHJlYW0oc3RyZWFtKTsKLSAgICAgIGlmICgh
c3RyZWFtT2JqKSByZXR1cm4gLTE7Ci0gICAgICBpZiAoc3RyZWFtT2JqLmVvZiB8fCBzdHJlYW1P
YmouZXJyb3IpIHJldHVybiAtMTsKLSAgICAgIHZhciByZXQgPSBfZnJlYWQoX2ZnZXRjLnJldCwg
MSwgMSwgc3RyZWFtKTsKLSAgICAgIGlmIChyZXQgPT0gMCkgewotICAgICAgICBzdHJlYW1PYmou
ZW9mID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfSBlbHNlIGlmIChyZXQgPT0g
LTEpIHsKLSAgICAgICAgc3RyZWFtT2JqLmVycm9yID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIC0x
OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIEhFQVBVOFsoKF9mZ2V0Yy5yZXQpfDAp
XTsKLSAgICAgIH0KLSAgICB9dmFyIF9nZXRjPV9mZ2V0YzsKLSAgZnVuY3Rpb24gX19fY3hhX3B1
cmVfdmlydHVhbCgpIHsKLSAgICAgIEFCT1JUID0gdHJ1ZTsKLSAgICAgIHRocm93ICdQdXJlIHZp
cnR1YWwgZnVuY3Rpb24gY2FsbGVkISc7Ci0gICAgfQotICBmdW5jdGlvbiBfX19lcnJub19sb2Nh
dGlvbigpIHsKLSAgICAgIHJldHVybiBfX19lcnJub19zdGF0ZTsKLSAgICB9dmFyIF9fX2Vycm5v
PV9fX2Vycm5vX2xvY2F0aW9uOwotICB2YXIgX2xsdm1fbWVtc2V0X3AwaThfaTMyPV9tZW1zZXQ7
Ci0gIE1vZHVsZVsiX3N0cmxlbiJdID0gX3N0cmxlbjsKLSAgZnVuY3Rpb24gX3N0cmVycm9yX3Io
ZXJybnVtLCBzdHJlcnJidWYsIGJ1ZmxlbikgewotICAgICAgaWYgKGVycm51bSBpbiBFUlJOT19N
RVNTQUdFUykgewotICAgICAgICBpZiAoRVJSTk9fTUVTU0FHRVNbZXJybnVtXS5sZW5ndGggPiBi
dWZsZW4gLSAxKSB7Ci0gICAgICAgICAgcmV0dXJuIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVS
QU5HRSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdmFyIG1zZyA9IEVSUk5PX01FU1NB
R0VTW2Vycm51bV07Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtc2cubGVuZ3RoOyBp
KyspIHsKLSAgICAgICAgICAgIEhFQVA4WygoKHN0cmVycmJ1ZikrKGkpKXwwKV09bXNnLmNoYXJD
b2RlQXQoaSkKLSAgICAgICAgICB9Ci0gICAgICAgICAgSEVBUDhbKCgoc3RyZXJyYnVmKSsoaSkp
fDApXT0wCi0gICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgIHJldHVybiBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgfQot
ICAgIH1mdW5jdGlvbiBfc3RyZXJyb3IoZXJybnVtKSB7Ci0gICAgICBpZiAoIV9zdHJlcnJvci5i
dWZmZXIpIF9zdHJlcnJvci5idWZmZXIgPSBfbWFsbG9jKDI1Nik7Ci0gICAgICBfc3RyZXJyb3Jf
cihlcnJudW0sIF9zdHJlcnJvci5idWZmZXIsIDI1Nik7Ci0gICAgICByZXR1cm4gX3N0cmVycm9y
LmJ1ZmZlcjsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9hYm9ydCgpIHsKLSAgICAgIE1vZHVsZVsnYWJv
cnQnXSgpOwotICAgIH0KLSAgZnVuY3Rpb24gX19yZWFsbHlOZWdhdGl2ZSh4KSB7Ci0gICAgICBy
ZXR1cm4geCA8IDAgfHwgKHggPT09IDAgJiYgKDEveCkgPT09IC1JbmZpbml0eSk7Ci0gICAgfWZ1
bmN0aW9uIF9fZm9ybWF0U3RyaW5nKGZvcm1hdCwgdmFyYXJncykgewotICAgICAgdmFyIHRleHRJ
bmRleCA9IGZvcm1hdDsKLSAgICAgIHZhciBhcmdJbmRleCA9IDA7Ci0gICAgICBmdW5jdGlvbiBn
ZXROZXh0QXJnKHR5cGUpIHsKLSAgICAgICAgLy8gTk9URTogRXhwbGljaXRseSBpZ25vcmluZyB0
eXBlIHNhZmV0eS4gT3RoZXJ3aXNlIHRoaXMgZmFpbHM6Ci0gICAgICAgIC8vICAgICAgIGludCB4
ID0gNDsgcHJpbnRmKCIlY1xuIiwgKGNoYXIpeCk7Ci0gICAgICAgIHZhciByZXQ7Ci0gICAgICAg
IGlmICh0eXBlID09PSAnZG91YmxlJykgewotICAgICAgICAgIHJldCA9IEhFQVBGNjRbKCgodmFy
YXJncykrKGFyZ0luZGV4KSk+PjMpXTsKLSAgICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdpNjQn
KSB7Ci0gICAgICAgICAgcmV0ID0gW0hFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+Mild
LAotICAgICAgICAgICAgICAgICBIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KzgpKT4+Mild
XTsKLSAgICAgICAgICBhcmdJbmRleCArPSA4OyAvLyBlYWNoIDMyLWJpdCBjaHVuayBpcyBpbiBh
IDY0LWJpdCBibG9jawotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHR5cGUgPSAnaTMyJzsg
Ly8gdmFyYXJncyBhcmUgYWx3YXlzIGkzMiwgaTY0LCBvciBkb3VibGUKLSAgICAgICAgICByZXQg
PSBIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+PjIpXTsKLSAgICAgICAgfQotICAgICAg
ICBhcmdJbmRleCArPSBNYXRoLm1heChSdW50aW1lLmdldE5hdGl2ZUZpZWxkU2l6ZSh0eXBlKSwg
UnVudGltZS5nZXRBbGlnblNpemUodHlwZSwgbnVsbCwgdHJ1ZSkpOwotICAgICAgICByZXR1cm4g
cmV0OwotICAgICAgfQotICAgICAgdmFyIHJldCA9IFtdOwotICAgICAgdmFyIGN1cnIsIG5leHQs
IGN1cnJBcmc7Ci0gICAgICB3aGlsZSgxKSB7Ci0gICAgICAgIHZhciBzdGFydFRleHRJbmRleCA9
IHRleHRJbmRleDsKLSAgICAgICAgY3VyciA9IEhFQVA4Wyh0ZXh0SW5kZXgpXTsKLSAgICAgICAg
aWYgKGN1cnIgPT09IDApIGJyZWFrOwotICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgr
MSl8MCldOwotICAgICAgICBpZiAoY3VyciA9PSAzNykgewotICAgICAgICAgIC8vIEhhbmRsZSBm
bGFncy4KLSAgICAgICAgICB2YXIgZmxhZ0Fsd2F5c1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAg
IHZhciBmbGFnTGVmdEFsaWduID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGZsYWdBbHRlcm5hdGl2
ZSA9IGZhbHNlOwotICAgICAgICAgIHZhciBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAgICAg
IGZsYWdzTG9vcDogd2hpbGUgKDEpIHsKLSAgICAgICAgICAgIHN3aXRjaCAobmV4dCkgewotICAg
ICAgICAgICAgICBjYXNlIDQzOgotICAgICAgICAgICAgICAgIGZsYWdBbHdheXNTaWduZWQgPSB0
cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICBjYXNlIDQ1OgotICAg
ICAgICAgICAgICAgIGZsYWdMZWZ0QWxpZ24gPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICBjYXNlIDM1OgotICAgICAgICAgICAgICAgIGZsYWdBbHRlcm5hdGl2
ZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIGNhc2UgNDg6
Ci0gICAgICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFkKSB7Ci0gICAgICAgICAgICAgICAgICBi
cmVhayBmbGFnc0xvb3A7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgIGZsYWdaZXJvUGFkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBicmVh
ayBmbGFnc0xvb3A7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAg
ICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgfQot
ICAgICAgICAgIC8vIEhhbmRsZSB3aWR0aC4KLSAgICAgICAgICB2YXIgd2lkdGggPSAwOwotICAg
ICAgICAgIGlmIChuZXh0ID09IDQyKSB7Ci0gICAgICAgICAgICB3aWR0aCA9IGdldE5leHRBcmco
J2kzMicpOwotICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICBuZXh0ID0gSEVB
UDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB3
aGlsZSAobmV4dCA+PSA0OCAmJiBuZXh0IDw9IDU3KSB7Ci0gICAgICAgICAgICAgIHdpZHRoID0g
d2lkdGggKiAxMCArIChuZXh0IC0gNDgpOwotICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAg
ICAgICAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gSGFuZGxlIHByZWNpc2lvbi4KLSAgICAgICAg
ICB2YXIgcHJlY2lzaW9uU2V0ID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKG5leHQgPT0gNDYpIHsK
LSAgICAgICAgICAgIHZhciBwcmVjaXNpb24gPSAwOwotICAgICAgICAgICAgcHJlY2lzaW9uU2V0
ID0gdHJ1ZTsKLSAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgbmV4dCA9IEhF
QVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICAgIGlmIChuZXh0ID09IDQyKSB7Ci0g
ICAgICAgICAgICAgIHByZWNpc2lvbiA9IGdldE5leHRBcmcoJ2kzMicpOwotICAgICAgICAgICAg
ICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHdoaWxl
KDEpIHsKLSAgICAgICAgICAgICAgICB2YXIgcHJlY2lzaW9uQ2hyID0gSEVBUDhbKCh0ZXh0SW5k
ZXgrMSl8MCldOwotICAgICAgICAgICAgICAgIGlmIChwcmVjaXNpb25DaHIgPCA0OCB8fAotICAg
ICAgICAgICAgICAgICAgICBwcmVjaXNpb25DaHIgPiA1NykgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uICogMTAgKyAocHJlY2lzaW9uQ2hyIC0gNDgpOwotICAg
ICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICB2YXIgcHJlY2lzaW9uID0gNjsgLy8gU3RhbmRhcmQgZGVm
YXVsdC4KLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gSGFuZGxlIGludGVnZXIgc2l6ZXMuIFdB
Uk5JTkc6IFRoZXNlIGFzc3VtZSBhIDMyLWJpdCBhcmNoaXRlY3R1cmUhCi0gICAgICAgICAgdmFy
IGFyZ1NpemU7Ci0gICAgICAgICAgc3dpdGNoIChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKSB7
Ci0gICAgICAgICAgICBjYXNlICdoJzoKLSAgICAgICAgICAgICAgdmFyIG5leHROZXh0ID0gSEVB
UDhbKCh0ZXh0SW5kZXgrMil8MCldOwotICAgICAgICAgICAgICBpZiAobmV4dE5leHQgPT0gMTA0
KSB7Ci0gICAgICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICAgICAgYXJnU2l6
ZSA9IDE7IC8vIGNoYXIgKGFjdHVhbGx5IGkzMiBpbiB2YXJhcmdzKQotICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIGFyZ1NpemUgPSAyOyAvLyBzaG9ydCAoYWN0dWFsbHkg
aTMyIGluIHZhcmFyZ3MpCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlICdsJzoKLSAgICAgICAgICAgICAgdmFyIG5leHROZXh0ID0gSEVBUDhb
KCh0ZXh0SW5kZXgrMil8MCldOwotICAgICAgICAgICAgICBpZiAobmV4dE5leHQgPT0gMTA4KSB7
Ci0gICAgICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICAgICAgYXJnU2l6ZSA9
IDg7IC8vIGxvbmcgbG9uZwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IGFyZ1NpemUgPSA0OyAvLyBsb25nCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICBjYXNlICdMJzogLy8gbG9uZyBsb25nCi0gICAgICAgICAgICBjYXNl
ICdxJzogLy8gaW50NjRfdAotICAgICAgICAgICAgY2FzZSAnaic6IC8vIGludG1heF90Ci0gICAg
ICAgICAgICAgIGFyZ1NpemUgPSA4OwotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IGNhc2UgJ3onOiAvLyBzaXplX3QKLSAgICAgICAgICAgIGNhc2UgJ3QnOiAvLyBwdHJkaWZmX3QK
LSAgICAgICAgICAgIGNhc2UgJ0knOiAvLyBzaWduZWQgcHRyZGlmZl90IG9yIHVuc2lnbmVkIHNp
emVfdAotICAgICAgICAgICAgICBhcmdTaXplID0gNDsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICBhcmdTaXplID0gbnVsbDsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgaWYgKGFyZ1NpemUpIHRleHRJbmRleCsrOwotICAgICAgICAgIG5l
eHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgLy8gSGFuZGxlIHR5cGUg
c3BlY2lmaWVyLgotICAgICAgICAgIHN3aXRjaCAoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSkg
ewotICAgICAgICAgICAgY2FzZSAnZCc6IGNhc2UgJ2knOiBjYXNlICd1JzogY2FzZSAnbyc6IGNh
c2UgJ3gnOiBjYXNlICdYJzogY2FzZSAncCc6IHsKLSAgICAgICAgICAgICAgLy8gSW50ZWdlci4K
LSAgICAgICAgICAgICAgdmFyIHNpZ25lZCA9IG5leHQgPT0gMTAwIHx8IG5leHQgPT0gMTA1Owot
ICAgICAgICAgICAgICBhcmdTaXplID0gYXJnU2l6ZSB8fCA0OwotICAgICAgICAgICAgICB2YXIg
Y3VyckFyZyA9IGdldE5leHRBcmcoJ2knICsgKGFyZ1NpemUgKiA4KSk7Ci0gICAgICAgICAgICAg
IHZhciBvcmlnQXJnID0gY3VyckFyZzsKLSAgICAgICAgICAgICAgdmFyIGFyZ1RleHQ7Ci0gICAg
ICAgICAgICAgIC8vIEZsYXR0ZW4gaTY0LTEgW2xvdywgaGlnaF0gaW50byBhIChzbGlnaHRseSBy
b3VuZGVkKSBkb3VibGUKLSAgICAgICAgICAgICAgaWYgKGFyZ1NpemUgPT0gOCkgewotICAgICAg
ICAgICAgICAgIGN1cnJBcmcgPSBSdW50aW1lLm1ha2VCaWdJbnQoY3VyckFyZ1swXSwgY3VyckFy
Z1sxXSwgbmV4dCA9PSAxMTcpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIC8vIFRy
dW5jYXRlIHRvIHJlcXVlc3RlZCBzaXplLgotICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA8PSA0
KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMjU2LCBhcmdTaXplKSAt
IDE7Ci0gICAgICAgICAgICAgICAgY3VyckFyZyA9IChzaWduZWQgPyByZVNpZ24gOiB1blNpZ24p
KGN1cnJBcmcgJiBsaW1pdCwgYXJnU2l6ZSAqIDgpOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgIC8vIEZvcm1hdCB0aGUgbnVtYmVyLgotICAgICAgICAgICAgICB2YXIgY3VyckFic0Fy
ZyA9IE1hdGguYWJzKGN1cnJBcmcpOwotICAgICAgICAgICAgICB2YXIgcHJlZml4ID0gJyc7Ci0g
ICAgICAgICAgICAgIGlmIChuZXh0ID09IDEwMCB8fCBuZXh0ID09IDEwNSkgewotICAgICAgICAg
ICAgICAgIGlmIChhcmdTaXplID09IDggJiYgaTY0TWF0aCkgYXJnVGV4dCA9IGk2NE1hdGguc3Ry
aW5naWZ5KG9yaWdBcmdbMF0sIG9yaWdBcmdbMV0sIG51bGwpOyBlbHNlCi0gICAgICAgICAgICAg
ICAgYXJnVGV4dCA9IHJlU2lnbihjdXJyQXJnLCA4ICogYXJnU2l6ZSwgMSkudG9TdHJpbmcoMTAp
OwotICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTE3KSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGFyZ1NpemUgPT0gOCAmJiBpNjRNYXRoKSBhcmdUZXh0ID0gaTY0TWF0aC5zdHJpbmdp
Znkob3JpZ0FyZ1swXSwgb3JpZ0FyZ1sxXSwgdHJ1ZSk7IGVsc2UKLSAgICAgICAgICAgICAgICBh
cmdUZXh0ID0gdW5TaWduKGN1cnJBcmcsIDggKiBhcmdTaXplLCAxKS50b1N0cmluZygxMCk7Ci0g
ICAgICAgICAgICAgICAgY3VyckFyZyA9IE1hdGguYWJzKGN1cnJBcmcpOwotICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKG5leHQgPT0gMTExKSB7Ci0gICAgICAgICAgICAgICAgYXJnVGV4dCA9IChm
bGFnQWx0ZXJuYXRpdmUgPyAnMCcgOiAnJykgKyBjdXJyQWJzQXJnLnRvU3RyaW5nKDgpOwotICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTIwIHx8IG5leHQgPT0gODgpIHsKLSAgICAg
ICAgICAgICAgICBwcmVmaXggPSAoZmxhZ0FsdGVybmF0aXZlICYmIGN1cnJBcmcgIT0gMCkgPyAn
MHgnIDogJyc7Ci0gICAgICAgICAgICAgICAgaWYgKGFyZ1NpemUgPT0gOCAmJiBpNjRNYXRoKSB7
Ci0gICAgICAgICAgICAgICAgICBpZiAob3JpZ0FyZ1sxXSkgewotICAgICAgICAgICAgICAgICAg
ICBhcmdUZXh0ID0gKG9yaWdBcmdbMV0+Pj4wKS50b1N0cmluZygxNik7Ci0gICAgICAgICAgICAg
ICAgICAgIHZhciBsb3dlciA9IChvcmlnQXJnWzBdPj4+MCkudG9TdHJpbmcoMTYpOwotICAgICAg
ICAgICAgICAgICAgICB3aGlsZSAobG93ZXIubGVuZ3RoIDwgOCkgbG93ZXIgPSAnMCcgKyBsb3dl
cjsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCArPSBsb3dlcjsKLSAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAob3JpZ0FyZ1swXT4+
PjApLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgICAgICBpZiAoY3VyckFyZyA8IDApIHsKLSAgICAgICAgICAgICAg
ICAgIC8vIFJlcHJlc2VudCBuZWdhdGl2ZSBudW1iZXJzIGluIGhleCBhcyAyJ3MgY29tcGxlbWVu
dC4KLSAgICAgICAgICAgICAgICAgIGN1cnJBcmcgPSAtY3VyckFyZzsKLSAgICAgICAgICAgICAg
ICAgIGFyZ1RleHQgPSAoY3VyckFic0FyZyAtIDEpLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAg
ICAgICAgIHZhciBidWZmZXIgPSBbXTsKLSAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgYXJnVGV4dC5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICBidWZmZXIu
cHVzaCgoMHhGIC0gcGFyc2VJbnQoYXJnVGV4dFtpXSwgMTYpKS50b1N0cmluZygxNikpOwotICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGJ1ZmZlci5qb2lu
KCcnKTsKLSAgICAgICAgICAgICAgICAgIHdoaWxlIChhcmdUZXh0Lmxlbmd0aCA8IGFyZ1NpemUg
KiAyKSBhcmdUZXh0ID0gJ2YnICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBYnNBcmcudG9TdHJpbmcoMTYpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSA4OCkgewotICAgICAg
ICAgICAgICAgICAgcHJlZml4ID0gcHJlZml4LnRvVXBwZXJDYXNlKCk7Ci0gICAgICAgICAgICAg
ICAgICBhcmdUZXh0ID0gYXJnVGV4dC50b1VwcGVyQ2FzZSgpOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09IDExMikgewotICAgICAgICAgICAgICAg
IGlmIChjdXJyQWJzQXJnID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJyhu
aWwpJzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgcHJlZml4
ID0gJzB4JzsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBjdXJyQWJzQXJnLnRvU3RyaW5n
KDE2KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
aWYgKHByZWNpc2lvblNldCkgewotICAgICAgICAgICAgICAgIHdoaWxlIChhcmdUZXh0Lmxlbmd0
aCA8IHByZWNpc2lvbikgewotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICcwJyArIGFyZ1Rl
eHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIC8v
IEFkZCBzaWduIGlmIG5lZWRlZAotICAgICAgICAgICAgICBpZiAoZmxhZ0Fsd2F5c1NpZ25lZCkg
ewotICAgICAgICAgICAgICAgIGlmIChjdXJyQXJnIDwgMCkgewotICAgICAgICAgICAgICAgICAg
cHJlZml4ID0gJy0nICsgcHJlZml4OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICBwcmVmaXggPSAnKycgKyBwcmVmaXg7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nLgotICAgICAgICAgICAg
ICB3aGlsZSAocHJlZml4Lmxlbmd0aCArIGFyZ1RleHQubGVuZ3RoIDwgd2lkdGgpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoZmxhZ0xlZnRBbGlnbikgewotICAgICAgICAgICAgICAgICAgYXJnVGV4
dCArPSAnICc7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlm
IChmbGFnWmVyb1BhZCkgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJzAnICsgYXJn
VGV4dDsKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHBy
ZWZpeCA9ICcgJyArIHByZWZpeDsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gSW5zZXJ0IHRoZSByZXN1bHQg
aW50byB0aGUgYnVmZmVyLgotICAgICAgICAgICAgICBhcmdUZXh0ID0gcHJlZml4ICsgYXJnVGV4
dDsKLSAgICAgICAgICAgICAgYXJnVGV4dC5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbihjaHIp
IHsKLSAgICAgICAgICAgICAgICByZXQucHVzaChjaHIuY2hhckNvZGVBdCgwKSk7Ci0gICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGNhc2UgJ2YnOiBjYXNlICdGJzogY2FzZSAnZSc6IGNhc2UgJ0UnOiBjYXNlICdnJzogY2Fz
ZSAnRyc6IHsKLSAgICAgICAgICAgICAgLy8gRmxvYXQuCi0gICAgICAgICAgICAgIHZhciBjdXJy
QXJnID0gZ2V0TmV4dEFyZygnZG91YmxlJyk7Ci0gICAgICAgICAgICAgIHZhciBhcmdUZXh0Owot
ICAgICAgICAgICAgICBpZiAoaXNOYU4oY3VyckFyZykpIHsKLSAgICAgICAgICAgICAgICBhcmdU
ZXh0ID0gJ25hbic7Ci0gICAgICAgICAgICAgICAgZmxhZ1plcm9QYWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgICAgfSBlbHNlIGlmICghaXNGaW5pdGUoY3VyckFyZykpIHsKLSAgICAgICAgICAgICAg
ICBhcmdUZXh0ID0gKGN1cnJBcmcgPCAwID8gJy0nIDogJycpICsgJ2luZic7Ci0gICAgICAgICAg
ICAgICAgZmxhZ1plcm9QYWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICB2YXIgaXNHZW5lcmFsID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdmFyIGVm
ZmVjdGl2ZVByZWNpc2lvbiA9IE1hdGgubWluKHByZWNpc2lvbiwgMjApOwotICAgICAgICAgICAg
ICAgIC8vIENvbnZlcnQgZy9HIHRvIGYvRiBvciBlL0UsIGFzIHBlcjoKLSAgICAgICAgICAgICAg
ICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS9mdW5j
dGlvbnMvcHJpbnRmLmh0bWwKLSAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSAxMDMgfHwgbmV4
dCA9PSA3MSkgewotICAgICAgICAgICAgICAgICAgaXNHZW5lcmFsID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICAgIHByZWNpc2lvbiA9IHByZWNpc2lvbiB8fCAxOwotICAgICAgICAgICAgICAgICAg
dmFyIGV4cG9uZW50ID0gcGFyc2VJbnQoY3VyckFyZy50b0V4cG9uZW50aWFsKGVmZmVjdGl2ZVBy
ZWNpc2lvbikuc3BsaXQoJ2UnKVsxXSwgMTApOwotICAgICAgICAgICAgICAgICAgaWYgKHByZWNp
c2lvbiA+IGV4cG9uZW50ICYmIGV4cG9uZW50ID49IC00KSB7Ci0gICAgICAgICAgICAgICAgICAg
IG5leHQgPSAoKG5leHQgPT0gMTAzKSA/ICdmJyA6ICdGJykuY2hhckNvZGVBdCgwKTsKLSAgICAg
ICAgICAgICAgICAgICAgcHJlY2lzaW9uIC09IGV4cG9uZW50ICsgMTsKLSAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIG5leHQgPSAoKG5leHQgPT0gMTAzKSA/
ICdlJyA6ICdFJykuY2hhckNvZGVBdCgwKTsKLSAgICAgICAgICAgICAgICAgICAgcHJlY2lzaW9u
LS07Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBlZmZlY3RpdmVQcmVj
aXNpb24gPSBNYXRoLm1pbihwcmVjaXNpb24sIDIwKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgaWYgKG5leHQgPT0gMTAxIHx8IG5leHQgPT0gNjkpIHsKLSAgICAgICAgICAg
ICAgICAgIGFyZ1RleHQgPSBjdXJyQXJnLnRvRXhwb25lbnRpYWwoZWZmZWN0aXZlUHJlY2lzaW9u
KTsKLSAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgZXhwb25lbnQgaGFzIGF0IGxl
YXN0IDIgZGlnaXRzLgotICAgICAgICAgICAgICAgICAgaWYgKC9bZUVdWy0rXVxkJC8udGVzdChh
cmdUZXh0KSkgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gYXJnVGV4dC5zbGljZSgw
LCAtMSkgKyAnMCcgKyBhcmdUZXh0LnNsaWNlKC0xKTsKLSAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTAyIHx8IG5leHQgPT0gNzApIHsKLSAg
ICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBjdXJyQXJnLnRvRml4ZWQoZWZmZWN0aXZlUHJlY2lz
aW9uKTsKLSAgICAgICAgICAgICAgICAgIGlmIChjdXJyQXJnID09PSAwICYmIF9fcmVhbGx5TmVn
YXRpdmUoY3VyckFyZykpIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICctJyArIGFy
Z1RleHQ7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIHZhciBwYXJ0cyA9IGFyZ1RleHQuc3BsaXQoJ2UnKTsKLSAgICAgICAgICAgICAgICBp
ZiAoaXNHZW5lcmFsICYmICFmbGFnQWx0ZXJuYXRpdmUpIHsKLSAgICAgICAgICAgICAgICAgIC8v
IERpc2NhcmQgdHJhaWxpbmcgemVyb3MgYW5kIHBlcmlvZHMuCi0gICAgICAgICAgICAgICAgICB3
aGlsZSAocGFydHNbMF0ubGVuZ3RoID4gMSAmJiBwYXJ0c1swXS5pbmRleE9mKCcuJykgIT0gLTEg
JiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAocGFydHNbMF0uc2xpY2UoLTEpID09ICcwJyB8
fCBwYXJ0c1swXS5zbGljZSgtMSkgPT0gJy4nKSkgewotICAgICAgICAgICAgICAgICAgICBwYXJ0
c1swXSA9IHBhcnRzWzBdLnNsaWNlKDAsIC0xKTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGhh
dmUgYSBwZXJpb2QgaW4gYWx0ZXJuYXRpdmUgbW9kZS4KLSAgICAgICAgICAgICAgICAgIGlmIChm
bGFnQWx0ZXJuYXRpdmUgJiYgYXJnVGV4dC5pbmRleE9mKCcuJykgPT0gLTEpIHBhcnRzWzBdICs9
ICcuJzsKLSAgICAgICAgICAgICAgICAgIC8vIFplcm8gcGFkIHVudGlsIHJlcXVpcmVkIHByZWNp
c2lvbi4KLSAgICAgICAgICAgICAgICAgIHdoaWxlIChwcmVjaXNpb24gPiBlZmZlY3RpdmVQcmVj
aXNpb24rKykgcGFydHNbMF0gKz0gJzAnOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBhcmdUZXh0ID0gcGFydHNbMF0gKyAocGFydHMubGVuZ3RoID4gMSA/ICdlJyArIHBhcnRz
WzFdIDogJycpOwotICAgICAgICAgICAgICAgIC8vIENhcGl0YWxpemUgJ0UnIGlmIG5lZWRlZC4K
LSAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSA2OSkgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBl
ckNhc2UoKTsKLSAgICAgICAgICAgICAgICAvLyBBZGQgc2lnbi4KLSAgICAgICAgICAgICAgICBp
ZiAoZmxhZ0Fsd2F5c1NpZ25lZCAmJiBjdXJyQXJnID49IDApIHsKLSAgICAgICAgICAgICAgICAg
IGFyZ1RleHQgPSAnKycgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAvLyBBZGQgcGFkZGluZy4KLSAgICAgICAgICAgICAgd2hpbGUg
KGFyZ1RleHQubGVuZ3RoIDwgd2lkdGgpIHsKLSAgICAgICAgICAgICAgICBpZiAoZmxhZ0xlZnRB
bGlnbikgewotICAgICAgICAgICAgICAgICAgYXJnVGV4dCArPSAnICc7Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIChmbGFnWmVyb1BhZCAmJiAoYXJnVGV4
dFswXSA9PSAnLScgfHwgYXJnVGV4dFswXSA9PSAnKycpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGFyZ1RleHQgPSBhcmdUZXh0WzBdICsgJzAnICsgYXJnVGV4dC5zbGljZSgxKTsKLSAgICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAoZmxhZ1pl
cm9QYWQgPyAnMCcgOiAnICcpICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gQWRqdXN0IGNh
c2UuCi0gICAgICAgICAgICAgIGlmIChuZXh0IDwgOTcpIGFyZ1RleHQgPSBhcmdUZXh0LnRvVXBw
ZXJDYXNlKCk7Ci0gICAgICAgICAgICAgIC8vIEluc2VydCB0aGUgcmVzdWx0IGludG8gdGhlIGJ1
ZmZlci4KLSAgICAgICAgICAgICAgYXJnVGV4dC5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbihj
aHIpIHsKLSAgICAgICAgICAgICAgICByZXQucHVzaChjaHIuY2hhckNvZGVBdCgwKSk7Ci0gICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGNhc2UgJ3MnOiB7Ci0gICAgICAgICAgICAgIC8vIFN0cmluZy4KLSAgICAgICAgICAg
ICAgdmFyIGFyZyA9IGdldE5leHRBcmcoJ2k4KicpOwotICAgICAgICAgICAgICB2YXIgYXJnTGVu
Z3RoID0gYXJnID8gX3N0cmxlbihhcmcpIDogJyhudWxsKScubGVuZ3RoOwotICAgICAgICAgICAg
ICBpZiAocHJlY2lzaW9uU2V0KSBhcmdMZW5ndGggPSBNYXRoLm1pbihhcmdMZW5ndGgsIHByZWNp
c2lvbik7Ci0gICAgICAgICAgICAgIGlmICghZmxhZ0xlZnRBbGlnbikgewotICAgICAgICAgICAg
ICAgIHdoaWxlIChhcmdMZW5ndGggPCB3aWR0aC0tKSB7Ci0gICAgICAgICAgICAgICAgICByZXQu
cHVzaCgzMik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIGlmIChhcmcpIHsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ0xl
bmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICByZXQucHVzaChIRUFQVThbKChhcmcrKyl8
MCldKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgcmV0ID0gcmV0LmNvbmNhdChpbnRBcnJheUZyb21TdHJpbmcoJyhudWxsKScuc3Vi
c3RyKDAsIGFyZ0xlbmd0aCksIHRydWUpKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICBpZiAoZmxhZ0xlZnRBbGlnbikgewotICAgICAgICAgICAgICAgIHdoaWxlIChhcmdMZW5ndGgg
PCB3aWR0aC0tKSB7Ci0gICAgICAgICAgICAgICAgICByZXQucHVzaCgzMik7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgY2FzZSAnYyc6IHsKLSAgICAgICAgICAgICAgLy8gQ2hhcmFjdGVy
LgotICAgICAgICAgICAgICBpZiAoZmxhZ0xlZnRBbGlnbikgcmV0LnB1c2goZ2V0TmV4dEFyZygn
aTgnKSk7Ci0gICAgICAgICAgICAgIHdoaWxlICgtLXdpZHRoID4gMCkgewotICAgICAgICAgICAg
ICAgIHJldC5wdXNoKDMyKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAoIWZs
YWdMZWZ0QWxpZ24pIHJldC5wdXNoKGdldE5leHRBcmcoJ2k4JykpOwotICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJ24nOiB7Ci0gICAgICAgICAg
ICAgIC8vIFdyaXRlIHRoZSBsZW5ndGggd3JpdHRlbiBzbyBmYXIgdG8gdGhlIG5leHQgcGFyYW1l
dGVyLgotICAgICAgICAgICAgICB2YXIgcHRyID0gZ2V0TmV4dEFyZygnaTMyKicpOwotICAgICAg
ICAgICAgICBIRUFQMzJbKChwdHIpPj4yKV09cmV0Lmxlbmd0aAotICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJyUnOiB7Ci0gICAgICAgICAgICAg
IC8vIExpdGVyYWwgcGVyY2VudCBzaWduLgotICAgICAgICAgICAgICByZXQucHVzaChjdXJyKTsK
LSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkZWZhdWx0
OiB7Ci0gICAgICAgICAgICAgIC8vIFVua25vd24gc3BlY2lmaWVycyByZW1haW4gdW50b3VjaGVk
LgotICAgICAgICAgICAgICBmb3IgKHZhciBpID0gc3RhcnRUZXh0SW5kZXg7IGkgPCB0ZXh0SW5k
ZXggKyAyOyBpKyspIHsKLSAgICAgICAgICAgICAgICByZXQucHVzaChIRUFQOFsoaSldKTsKLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICB0ZXh0
SW5kZXggKz0gMjsKLSAgICAgICAgICAvLyBUT0RPOiBTdXBwb3J0IGEvQSAoaGV4IGZsb2F0KSBh
bmQgbSAobGFzdCBlcnJvcikgc3BlY2lmaWVycy4KLSAgICAgICAgICAvLyBUT0RPOiBTdXBwb3J0
ICUxJHtzcGVjaWZpZXJ9IGZvciBhcmcgc2VsZWN0aW9uLgotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgIHJldC5wdXNoKGN1cnIpOwotICAgICAgICAgIHRleHRJbmRleCArPSAxOwotICAgICAg
ICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH1mdW5jdGlvbiBfc25wcmludGYo
cywgbiwgZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAgICAvLyBpbnQgc25wcmludGYoY2hhciAqcmVz
dHJpY3Qgcywgc2l6ZV90IG4sIGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgLi4uKTsKLSAg
ICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVu
Y3Rpb25zL3ByaW50Zi5odG1sCi0gICAgICB2YXIgcmVzdWx0ID0gX19mb3JtYXRTdHJpbmcoZm9y
bWF0LCB2YXJhcmdzKTsKLSAgICAgIHZhciBsaW1pdCA9IChuID09PSB1bmRlZmluZWQpID8gcmVz
dWx0Lmxlbmd0aAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBNYXRoLm1p
bihyZXN1bHQubGVuZ3RoLCBNYXRoLm1heChuIC0gMSwgMCkpOwotICAgICAgaWYgKHMgPCAwKSB7
Ci0gICAgICAgIHMgPSAtczsKLSAgICAgICAgdmFyIGJ1ZiA9IF9tYWxsb2MobGltaXQrMSk7Ci0g
ICAgICAgIEhFQVAzMlsoKHMpPj4yKV09YnVmOwotICAgICAgICBzID0gYnVmOwotICAgICAgfQot
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW1pdDsgaSsrKSB7Ci0gICAgICAgIEhFQVA4Wygo
KHMpKyhpKSl8MCldPXJlc3VsdFtpXTsKLSAgICAgIH0KLSAgICAgIGlmIChsaW1pdCA8IG4gfHwg
KG4gPT09IHVuZGVmaW5lZCkpIEhFQVA4WygoKHMpKyhpKSl8MCldPTA7Ci0gICAgICByZXR1cm4g
cmVzdWx0Lmxlbmd0aDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9zeXNjb25mKG5hbWUpIHsKLSAgICAg
IC8vIGxvbmcgc3lzY29uZihpbnQgbmFtZSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3Jv
dXAub3JnL29ubGluZXB1YnMvMDA5Njk1Mzk5L2Z1bmN0aW9ucy9zeXNjb25mLmh0bWwKLSAgICAg
IHN3aXRjaChuYW1lKSB7Ci0gICAgICAgIGNhc2UgODogcmV0dXJuIFBBR0VfU0laRTsKLSAgICAg
ICAgY2FzZSA1NDoKLSAgICAgICAgY2FzZSA1NjoKLSAgICAgICAgY2FzZSAyMToKLSAgICAgICAg
Y2FzZSA2MToKLSAgICAgICAgY2FzZSA2MzoKLSAgICAgICAgY2FzZSAyMjoKLSAgICAgICAgY2Fz
ZSA2NzoKLSAgICAgICAgY2FzZSAyMzoKLSAgICAgICAgY2FzZSAyNDoKLSAgICAgICAgY2FzZSAy
NToKLSAgICAgICAgY2FzZSAyNjoKLSAgICAgICAgY2FzZSAyNzoKLSAgICAgICAgY2FzZSA2OToK
LSAgICAgICAgY2FzZSAyODoKLSAgICAgICAgY2FzZSAxMDE6Ci0gICAgICAgIGNhc2UgNzA6Ci0g
ICAgICAgIGNhc2UgNzE6Ci0gICAgICAgIGNhc2UgMjk6Ci0gICAgICAgIGNhc2UgMzA6Ci0gICAg
ICAgIGNhc2UgMTk5OgotICAgICAgICBjYXNlIDc1OgotICAgICAgICBjYXNlIDc2OgotICAgICAg
ICBjYXNlIDMyOgotICAgICAgICBjYXNlIDQzOgotICAgICAgICBjYXNlIDQ0OgotICAgICAgICBj
YXNlIDgwOgotICAgICAgICBjYXNlIDQ2OgotICAgICAgICBjYXNlIDQ3OgotICAgICAgICBjYXNl
IDQ1OgotICAgICAgICBjYXNlIDQ4OgotICAgICAgICBjYXNlIDQ5OgotICAgICAgICBjYXNlIDQy
OgotICAgICAgICBjYXNlIDgyOgotICAgICAgICBjYXNlIDMzOgotICAgICAgICBjYXNlIDc6Ci0g
ICAgICAgIGNhc2UgMTA4OgotICAgICAgICBjYXNlIDEwOToKLSAgICAgICAgY2FzZSAxMDc6Ci0g
ICAgICAgIGNhc2UgMTEyOgotICAgICAgICBjYXNlIDExOToKLSAgICAgICAgY2FzZSAxMjE6Ci0g
ICAgICAgICAgcmV0dXJuIDIwMDgwOTsKLSAgICAgICAgY2FzZSAxMzoKLSAgICAgICAgY2FzZSAx
MDQ6Ci0gICAgICAgIGNhc2UgOTQ6Ci0gICAgICAgIGNhc2UgOTU6Ci0gICAgICAgIGNhc2UgMzQ6
Ci0gICAgICAgIGNhc2UgMzU6Ci0gICAgICAgIGNhc2UgNzc6Ci0gICAgICAgIGNhc2UgODE6Ci0g
ICAgICAgIGNhc2UgODM6Ci0gICAgICAgIGNhc2UgODQ6Ci0gICAgICAgIGNhc2UgODU6Ci0gICAg
ICAgIGNhc2UgODY6Ci0gICAgICAgIGNhc2UgODc6Ci0gICAgICAgIGNhc2UgODg6Ci0gICAgICAg
IGNhc2UgODk6Ci0gICAgICAgIGNhc2UgOTA6Ci0gICAgICAgIGNhc2UgOTE6Ci0gICAgICAgIGNh
c2UgOTQ6Ci0gICAgICAgIGNhc2UgOTU6Ci0gICAgICAgIGNhc2UgMTEwOgotICAgICAgICBjYXNl
IDExMToKLSAgICAgICAgY2FzZSAxMTM6Ci0gICAgICAgIGNhc2UgMTE0OgotICAgICAgICBjYXNl
IDExNToKLSAgICAgICAgY2FzZSAxMTY6Ci0gICAgICAgIGNhc2UgMTE3OgotICAgICAgICBjYXNl
IDExODoKLSAgICAgICAgY2FzZSAxMjA6Ci0gICAgICAgIGNhc2UgNDA6Ci0gICAgICAgIGNhc2Ug
MTY6Ci0gICAgICAgIGNhc2UgNzk6Ci0gICAgICAgIGNhc2UgMTk6Ci0gICAgICAgICAgcmV0dXJu
IC0xOwotICAgICAgICBjYXNlIDkyOgotICAgICAgICBjYXNlIDkzOgotICAgICAgICBjYXNlIDU6
Ci0gICAgICAgIGNhc2UgNzI6Ci0gICAgICAgIGNhc2UgNjoKLSAgICAgICAgY2FzZSA3NDoKLSAg
ICAgICAgY2FzZSA5MjoKLSAgICAgICAgY2FzZSA5MzoKLSAgICAgICAgY2FzZSA5NjoKLSAgICAg
ICAgY2FzZSA5NzoKLSAgICAgICAgY2FzZSA5ODoKLSAgICAgICAgY2FzZSA5OToKLSAgICAgICAg
Y2FzZSAxMDI6Ci0gICAgICAgIGNhc2UgMTAzOgotICAgICAgICBjYXNlIDEwNToKLSAgICAgICAg
ICByZXR1cm4gMTsKLSAgICAgICAgY2FzZSAzODoKLSAgICAgICAgY2FzZSA2NjoKLSAgICAgICAg
Y2FzZSA1MDoKLSAgICAgICAgY2FzZSA1MToKLSAgICAgICAgY2FzZSA0OgotICAgICAgICAgIHJl
dHVybiAxMDI0OwotICAgICAgICBjYXNlIDE1OgotICAgICAgICBjYXNlIDY0OgotICAgICAgICBj
YXNlIDQxOgotICAgICAgICAgIHJldHVybiAzMjsKLSAgICAgICAgY2FzZSA1NToKLSAgICAgICAg
Y2FzZSAzNzoKLSAgICAgICAgY2FzZSAxNzoKLSAgICAgICAgICByZXR1cm4gMjE0NzQ4MzY0NzsK
LSAgICAgICAgY2FzZSAxODoKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgIHJldHVybiA0Nzgz
OTsKLSAgICAgICAgY2FzZSA1OToKLSAgICAgICAgY2FzZSA1NzoKLSAgICAgICAgICByZXR1cm4g
OTk7Ci0gICAgICAgIGNhc2UgNjg6Ci0gICAgICAgIGNhc2UgNTg6Ci0gICAgICAgICAgcmV0dXJu
IDIwNDg7Ci0gICAgICAgIGNhc2UgMDogcmV0dXJuIDIwOTcxNTI7Ci0gICAgICAgIGNhc2UgMzog
cmV0dXJuIDY1NTM2OwotICAgICAgICBjYXNlIDE0OiByZXR1cm4gMzI3Njg7Ci0gICAgICAgIGNh
c2UgNzM6IHJldHVybiAzMjc2NzsKLSAgICAgICAgY2FzZSAzOTogcmV0dXJuIDE2Mzg0OwotICAg
ICAgICBjYXNlIDYwOiByZXR1cm4gMTAwMDsKLSAgICAgICAgY2FzZSAxMDY6IHJldHVybiA3MDA7
Ci0gICAgICAgIGNhc2UgNTI6IHJldHVybiAyNTY7Ci0gICAgICAgIGNhc2UgNjI6IHJldHVybiAy
NTU7Ci0gICAgICAgIGNhc2UgMjogcmV0dXJuIDEwMDsKLSAgICAgICAgY2FzZSA2NTogcmV0dXJu
IDY0OwotICAgICAgICBjYXNlIDM2OiByZXR1cm4gMjA7Ci0gICAgICAgIGNhc2UgMTAwOiByZXR1
cm4gMTY7Ci0gICAgICAgIGNhc2UgMjA6IHJldHVybiA2OwotICAgICAgICBjYXNlIDUzOiByZXR1
cm4gNDsKLSAgICAgICAgY2FzZSAxMDogcmV0dXJuIDE7Ci0gICAgICB9Ci0gICAgICBfX19zZXRF
cnJObyhFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgZnVu
Y3Rpb24gX19fY3hhX2d1YXJkX2Fib3J0KCkge30KLSAgZnVuY3Rpb24gX2lzeGRpZ2l0KGNocikg
ewotICAgICAgcmV0dXJuIChjaHIgPj0gNDggJiYgY2hyIDw9IDU3KSB8fAotICAgICAgICAgICAg
IChjaHIgPj0gOTcgJiYgY2hyIDw9IDEwMikgfHwKLSAgICAgICAgICAgICAoY2hyID49IDY1ICYm
IGNociA8PSA3MCk7Ci0gICAgfXZhciBfaXN4ZGlnaXRfbD1faXN4ZGlnaXQ7Ci0gIGZ1bmN0aW9u
IF9pc2RpZ2l0KGNocikgewotICAgICAgcmV0dXJuIGNociA+PSA0OCAmJiBjaHIgPD0gNTc7Ci0g
ICAgfXZhciBfaXNkaWdpdF9sPV9pc2RpZ2l0OwotICBmdW5jdGlvbiBfX2lzRmxvYXQodGV4dCkg
ewotICAgICAgcmV0dXJuICEhKC9eWystXT9bMC05XSpcLj9bMC05XSsoW2VFXVsrLV0/WzAtOV0r
KT8kLy5leGVjKHRleHQpKTsKLSAgICB9ZnVuY3Rpb24gX19zY2FuU3RyaW5nKGZvcm1hdCwgZ2V0
LCB1bmdldCwgdmFyYXJncykgewotICAgICAgaWYgKCFfX3NjYW5TdHJpbmcud2hpdGVTcGFjZSkg
ewotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZSA9IHt9OwotICAgICAgICBfX3NjYW5T
dHJpbmcud2hpdGVTcGFjZVszMl0gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFj
ZVs5XSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWzEwXSA9IDE7Ci0gICAg
ICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWzExXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmlu
Zy53aGl0ZVNwYWNlWzEyXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWzEz
XSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWycgJ10gPSAxOwotICAgICAg
ICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsnXHQnXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmlu
Zy53aGl0ZVNwYWNlWydcbiddID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2Vb
J1x2J10gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsnXGYnXSA9IDE7Ci0g
ICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcciddID0gMTsKLSAgICAgIH0KLSAgICAg
IC8vIFN1cHBvcnRzICV4LCAlNHgsICVkLiVkLCAlbGxkLCAlcywgJWYsICVsZi4KLSAgICAgIC8v
IFRPRE86IFN1cHBvcnQgYWxsIGZvcm1hdCBzcGVjaWZpZXJzLgotICAgICAgZm9ybWF0ID0gUG9p
bnRlcl9zdHJpbmdpZnkoZm9ybWF0KTsKLSAgICAgIHZhciBzb0ZhciA9IDA7Ci0gICAgICBpZiAo
Zm9ybWF0LmluZGV4T2YoJyVuJykgPj0gMCkgewotICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHNv
RmFyCi0gICAgICAgIHZhciBfZ2V0ID0gZ2V0OwotICAgICAgICBnZXQgPSBmdW5jdGlvbigpIHsK
LSAgICAgICAgICBzb0ZhcisrOwotICAgICAgICAgIHJldHVybiBfZ2V0KCk7Ci0gICAgICAgIH0K
LSAgICAgICAgdmFyIF91bmdldCA9IHVuZ2V0OwotICAgICAgICB1bmdldCA9IGZ1bmN0aW9uKCkg
ewotICAgICAgICAgIHNvRmFyLS07Ci0gICAgICAgICAgcmV0dXJuIF91bmdldCgpOwotICAgICAg
ICB9Ci0gICAgICB9Ci0gICAgICB2YXIgZm9ybWF0SW5kZXggPSAwOwotICAgICAgdmFyIGFyZ3Np
ID0gMDsKLSAgICAgIHZhciBmaWVsZHMgPSAwOwotICAgICAgdmFyIGFyZ0luZGV4ID0gMDsKLSAg
ICAgIHZhciBuZXh0OwotICAgICAgbWFpbkxvb3A6Ci0gICAgICBmb3IgKHZhciBmb3JtYXRJbmRl
eCA9IDA7IGZvcm1hdEluZGV4IDwgZm9ybWF0Lmxlbmd0aDspIHsKLSAgICAgICAgaWYgKGZvcm1h
dFtmb3JtYXRJbmRleF0gPT09ICclJyAmJiBmb3JtYXRbZm9ybWF0SW5kZXgrMV0gPT0gJ24nKSB7
Ci0gICAgICAgICAgdmFyIGFyZ1B0ciA9IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+
MildOwotICAgICAgICAgIGFyZ0luZGV4ICs9IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKCd2b2lkKics
IG51bGwsIHRydWUpOwotICAgICAgICAgIEhFQVAzMlsoKGFyZ1B0cik+PjIpXT1zb0ZhcjsKLSAg
ICAgICAgICBmb3JtYXRJbmRleCArPSAyOwotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9
Ci0gICAgICAgIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdID09PSAnJScpIHsKLSAgICAgICAgICB2
YXIgbmV4dEMgPSBmb3JtYXQuaW5kZXhPZignYycsIGZvcm1hdEluZGV4KzEpOwotICAgICAgICAg
IGlmIChuZXh0QyA+IDApIHsKLSAgICAgICAgICAgIHZhciBtYXh4ID0gMTsKLSAgICAgICAgICAg
IGlmIChuZXh0QyA+IGZvcm1hdEluZGV4KzEpIHsKLSAgICAgICAgICAgICAgdmFyIHN1YiA9IGZv
cm1hdC5zdWJzdHJpbmcoZm9ybWF0SW5kZXgrMSwgbmV4dEMpCi0gICAgICAgICAgICAgIG1heHgg
PSBwYXJzZUludChzdWIpOwotICAgICAgICAgICAgICBpZiAobWF4eCAhPSBzdWIpIG1heHggPSAw
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1heHgpIHsKLSAgICAgICAgICAgICAg
dmFyIGFyZ1B0ciA9IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+MildOwotICAgICAg
ICAgICAgICBhcmdJbmRleCArPSBSdW50aW1lLmdldEFsaWduU2l6ZSgndm9pZConLCBudWxsLCB0
cnVlKTsKLSAgICAgICAgICAgICAgZmllbGRzKys7Ci0gICAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbWF4eDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAg
ICAgICAgICAgICAgIEhFQVA4WygoYXJnUHRyKyspfDApXT1uZXh0OwotICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgIGZvcm1hdEluZGV4ICs9IG5leHRDIC0gZm9ybWF0SW5kZXggKyAxOwot
ICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgLy8gcmVtb3ZlIHdoaXRlc3BhY2UKLSAgICAgICAgd2hpbGUgKDEpIHsK
LSAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgaWYgKG5leHQgPT0gMCkgcmV0dXJu
IGZpZWxkczsKLSAgICAgICAgICBpZiAoIShuZXh0IGluIF9fc2NhblN0cmluZy53aGl0ZVNwYWNl
KSkgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgdW5nZXQoKTsKLSAgICAgICAgaWYgKGZvcm1h
dFtmb3JtYXRJbmRleF0gPT09ICclJykgewotICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAg
ICAgICAgdmFyIHN1cHByZXNzQXNzaWdubWVudCA9IGZhbHNlOwotICAgICAgICAgIGlmIChmb3Jt
YXRbZm9ybWF0SW5kZXhdID09ICcqJykgewotICAgICAgICAgICAgc3VwcHJlc3NBc3NpZ25tZW50
ID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIHZhciBtYXhTcGVjaWZpZXJTdGFydCA9IGZvcm1hdEluZGV4OwotICAgICAgICAgIHdoaWxl
IChmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkgPj0gNDggJiYKLSAgICAgICAgICAg
ICAgICAgZm9ybWF0W2Zvcm1hdEluZGV4XS5jaGFyQ29kZUF0KDApIDw9IDU3KSB7Ci0gICAgICAg
ICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgbWF4XzsKLSAg
ICAgICAgICBpZiAoZm9ybWF0SW5kZXggIT0gbWF4U3BlY2lmaWVyU3RhcnQpIHsKLSAgICAgICAg
ICAgIG1heF8gPSBwYXJzZUludChmb3JtYXQuc2xpY2UobWF4U3BlY2lmaWVyU3RhcnQsIGZvcm1h
dEluZGV4KSwgMTApOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgbG9uZ18gPSBmYWxzZTsK
LSAgICAgICAgICB2YXIgaGFsZiA9IGZhbHNlOwotICAgICAgICAgIHZhciBsb25nTG9uZyA9IGZh
bHNlOwotICAgICAgICAgIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdID09ICdsJykgewotICAgICAg
ICAgICAgbG9uZ18gPSB0cnVlOwotICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAg
ICAgIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdID09ICdsJykgewotICAgICAgICAgICAgICBsb25n
TG9uZyA9IHRydWU7Ci0gICAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdID09ICdoJykgewotICAg
ICAgICAgICAgaGFsZiA9IHRydWU7Ci0gICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAg
ICAgIH0KLSAgICAgICAgICB2YXIgdHlwZSA9IGZvcm1hdFtmb3JtYXRJbmRleF07Ci0gICAgICAg
ICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICB2YXIgY3VyciA9IDA7Ci0gICAgICAgICAgdmFy
IGJ1ZmZlciA9IFtdOwotICAgICAgICAgIC8vIFJlYWQgY2hhcmFjdGVycyBhY2NvcmRpbmcgdG8g
dGhlIGZvcm1hdC4gZmxvYXRzIGFyZSB0cmlja2llciwgdGhleSBtYXkgYmUgaW4gYW4gdW5mbG9h
dCBzdGF0ZSBpbiB0aGUgbWlkZGxlLCB0aGVuIGJlIGEgdmFsaWQgZmxvYXQgbGF0ZXIKLSAgICAg
ICAgICBpZiAodHlwZSA9PSAnZicgfHwgdHlwZSA9PSAnZScgfHwgdHlwZSA9PSAnZycgfHwKLSAg
ICAgICAgICAgICAgdHlwZSA9PSAnRicgfHwgdHlwZSA9PSAnRScgfHwgdHlwZSA9PSAnRycpIHsK
LSAgICAgICAgICAgIHZhciBsYXN0ID0gMDsKLSAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAg
ICAgICAgICAgIHdoaWxlIChuZXh0ID4gMCkgewotICAgICAgICAgICAgICBidWZmZXIucHVzaChT
dHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKTsKLSAgICAgICAgICAgICAgaWYgKF9faXNGbG9hdChi
dWZmZXIuam9pbignJykpKSB7Ci0gICAgICAgICAgICAgICAgbGFzdCA9IGJ1ZmZlci5sZW5ndGg7
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWZmZXIubGVuZ3RoIC0gbGFz
dCArIDE7IGkrKykgewotICAgICAgICAgICAgICB1bmdldCgpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgYnVmZmVyLmxlbmd0aCA9IGxhc3Q7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICAgIHZhciBmaXJzdCA9IHRydWU7Ci0gICAg
ICAgICAgICB3aGlsZSAoKGN1cnIgPCBtYXhfIHx8IGlzTmFOKG1heF8pKSAmJiBuZXh0ID4gMCkg
ewotICAgICAgICAgICAgICBpZiAoIShuZXh0IGluIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlKSAm
JiAvLyBzdG9wIG9uIHdoaXRlc3BhY2UKLSAgICAgICAgICAgICAgICAgICh0eXBlID09ICdzJyB8
fAotICAgICAgICAgICAgICAgICAgICgodHlwZSA9PT0gJ2QnIHx8IHR5cGUgPT0gJ3UnIHx8IHR5
cGUgPT0gJ2knKSAmJiAoKG5leHQgPj0gNDggJiYgbmV4dCA8PSA1NykgfHwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChmaXJzdCAmJiBuZXh0ID09IDQ1KSkpIHx8Ci0gICAgICAgICAgICAgICAgICAgKCh0eXBlID09
PSAneCcgfHwgdHlwZSA9PT0gJ1gnKSAmJiAobmV4dCA+PSA0OCAmJiBuZXh0IDw9IDU3IHx8Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA+PSA5NyAmJiBuZXh0IDw9
IDEwMiB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPj0gNjUg
JiYgbmV4dCA8PSA3MCkpKSAmJgotICAgICAgICAgICAgICAgICAgKGZvcm1hdEluZGV4ID49IGZv
cm1hdC5sZW5ndGggfHwgbmV4dCAhPT0gZm9ybWF0W2Zvcm1hdEluZGV4XS5jaGFyQ29kZUF0KDAp
KSkgeyAvLyBTdG9wIHdoZW4gd2UgcmVhZCBzb21ldGhpbmcgdGhhdCBpcyBjb21pbmcgdXAKLSAg
ICAgICAgICAgICAgICBidWZmZXIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKTsKLSAg
ICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgICAgICAgY3VycisrOwotICAg
ICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHVuZ2V0KCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChidWZmZXIubGVuZ3Ro
ID09PSAwKSByZXR1cm4gMDsgIC8vIEZhaWx1cmUuCi0gICAgICAgICAgaWYgKHN1cHByZXNzQXNz
aWdubWVudCkgY29udGludWU7Ci0gICAgICAgICAgdmFyIHRleHQgPSBidWZmZXIuam9pbignJyk7
Ci0gICAgICAgICAgdmFyIGFyZ1B0ciA9IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+
MildOwotICAgICAgICAgIGFyZ0luZGV4ICs9IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKCd2b2lkKics
IG51bGwsIHRydWUpOwotICAgICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICAgICAgY2Fz
ZSAnZCc6IGNhc2UgJ3UnOiBjYXNlICdpJzoKLSAgICAgICAgICAgICAgaWYgKGhhbGYpIHsKLSAg
ICAgICAgICAgICAgICBIRUFQMTZbKChhcmdQdHIpPj4xKV09cGFyc2VJbnQodGV4dCwgMTApOwot
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvbmdMb25nKSB7Ci0gICAgICAgICAgICAgICAgKHRl
bXBJNjQgPSBbcGFyc2VJbnQodGV4dCwgMTApPj4+MCwodGVtcERvdWJsZT1wYXJzZUludCh0ZXh0
LCAxMCksKCsoTWF0aC5hYnModGVtcERvdWJsZSkpKSA+PSAoKygxKSkgPyAodGVtcERvdWJsZSA+
ICgrKDApKSA/ICgoTWF0aC5taW4oKCsoTWF0aC5mbG9vcigodGVtcERvdWJsZSkvKCsoNDI5NDk2
NzI5NikpKSkpLCAoKyg0Mjk0OTY3Mjk1KSkpKXwwKT4+PjAgOiAofn4oKCsoTWF0aC5jZWlsKCh0
ZW1wRG91YmxlIC0gKygoKH5+KHRlbXBEb3VibGUpKSk+Pj4wKSkvKCsoNDI5NDk2NzI5NikpKSkp
KSk+Pj4wKSA6IDApXSxIRUFQMzJbKChhcmdQdHIpPj4yKV09dGVtcEk2NFswXSxIRUFQMzJbKCgo
YXJnUHRyKSsoNCkpPj4yKV09dGVtcEk2NFsxXSk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgSEVBUDMyWygoYXJnUHRyKT4+MildPXBhcnNlSW50KHRleHQsIDEwKTsK
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
J1gnOgotICAgICAgICAgICAgY2FzZSAneCc6Ci0gICAgICAgICAgICAgIEhFQVAzMlsoKGFyZ1B0
cik+PjIpXT1wYXJzZUludCh0ZXh0LCAxNikKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICBjYXNlICdGJzoKLSAgICAgICAgICAgIGNhc2UgJ2YnOgotICAgICAgICAgICAgY2FzZSAn
RSc6Ci0gICAgICAgICAgICBjYXNlICdlJzoKLSAgICAgICAgICAgIGNhc2UgJ0cnOgotICAgICAg
ICAgICAgY2FzZSAnZyc6Ci0gICAgICAgICAgICBjYXNlICdFJzoKLSAgICAgICAgICAgICAgLy8g
ZmFsbHRocm91Z2ggaW50ZW5kZWQKLSAgICAgICAgICAgICAgaWYgKGxvbmdfKSB7Ci0gICAgICAg
ICAgICAgICAgSEVBUEY2NFsoKGFyZ1B0cik+PjMpXT1wYXJzZUZsb2F0KHRleHQpCi0gICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgSEVBUEYzMlsoKGFyZ1B0cik+PjIpXT1w
YXJzZUZsb2F0KHRleHQpCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlICdzJzoKLSAgICAgICAgICAgICAgdmFyIGFycmF5ID0gaW50QXJyYXlG
cm9tU3RyaW5nKHRleHQpOwotICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFycmF5
Lmxlbmd0aDsgaisrKSB7Ci0gICAgICAgICAgICAgICAgSEVBUDhbKCgoYXJnUHRyKSsoaikpfDAp
XT1hcnJheVtqXQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgIH0KLSAgICAgICAgICBmaWVsZHMrKzsKLSAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRbZm9y
bWF0SW5kZXhdIGluIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlKSB7Ci0gICAgICAgICAgbmV4dCA9
IGdldCgpOwotICAgICAgICAgIHdoaWxlIChuZXh0IGluIF9fc2NhblN0cmluZy53aGl0ZVNwYWNl
KSB7Ci0gICAgICAgICAgICBpZiAobmV4dCA8PSAwKSBicmVhayBtYWluTG9vcDsgIC8vIEVuZCBv
ZiBpbnB1dC4KLSAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgdW5nZXQobmV4dCk7Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAvLyBOb3QgYSBzcGVjaWZpZXIuCi0gICAgICAgICAgbmV4dCA9IGdldCgp
OwotICAgICAgICAgIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkgIT09IG5l
eHQpIHsKLSAgICAgICAgICAgIHVuZ2V0KG5leHQpOwotICAgICAgICAgICAgYnJlYWsgbWFpbkxv
b3A7Ci0gICAgICAgICAgfQotICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgIH0KLSAg
ICAgIH0KLSAgICAgIHJldHVybiBmaWVsZHM7Ci0gICAgfWZ1bmN0aW9uIF9zc2NhbmYocywgZm9y
bWF0LCB2YXJhcmdzKSB7Ci0gICAgICAvLyBpbnQgc3NjYW5mKGNvbnN0IGNoYXIgKnJlc3RyaWN0
IHMsIGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgLi4uICk7Ci0gICAgICAvLyBodHRwOi8v
cHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9zY2FuZi5o
dG1sCi0gICAgICB2YXIgaW5kZXggPSAwOwotICAgICAgdmFyIGdldCA9IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gSEVBUDhbKCgocykrKGluZGV4KyspKXwwKV07IH07Ci0gICAgICB2YXIgdW5nZXQgPSBm
dW5jdGlvbigpIHsgaW5kZXgtLTsgfTsKLSAgICAgIHJldHVybiBfX3NjYW5TdHJpbmcoZm9ybWF0
LCBnZXQsIHVuZ2V0LCB2YXJhcmdzKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fWjdjYXRvcGVuUEtj
aSgpIHsgdGhyb3cgJ2NhdG9wZW4gbm90IGltcGxlbWVudGVkJyB9Ci0gIGZ1bmN0aW9uIF9fWjdj
YXRnZXRzUDhfbmxfY2F0ZGlpUEtjKCkgeyB0aHJvdyAnY2F0Z2V0cyBub3QgaW1wbGVtZW50ZWQn
IH0KLSAgZnVuY3Rpb24gX19aOGNhdGNsb3NlUDhfbmxfY2F0ZCgpIHsgdGhyb3cgJ2NhdGNsb3Nl
IG5vdCBpbXBsZW1lbnRlZCcgfQotICBmdW5jdGlvbiBfbmV3bG9jYWxlKG1hc2ssIGxvY2FsZSwg
YmFzZSkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICBmdW5jdGlvbiBfZnJlZWxvY2FsZShs
b2NhbGUpIHt9Ci0gIGZ1bmN0aW9uIF9fX2N0eXBlX2JfbG9jKCkgewotICAgICAgLy8gaHR0cDov
L3JlZnNwZWNzLmZyZWVzdGFuZGFyZHMub3JnL0xTQl8zLjAuMC9MU0ItQ29yZS1nZW5lcmljL0xT
Qi1Db3JlLWdlbmVyaWMvYmFzZWxpYi0tLWN0eXBlLWItbG9jLmh0bWwKLSAgICAgIHZhciBtZSA9
IF9fX2N0eXBlX2JfbG9jOwotICAgICAgaWYgKCFtZS5yZXQpIHsKLSAgICAgICAgdmFyIHZhbHVl
cyA9IFsKLSAgICAgICAgICAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsCi0gICAgICAgICAgMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLAotICAgICAgICAgIDAsMCwwLDAs
MCwwLDAsMCwwLDAsMiwyLDIsMiwyLDIsMiwyLDIsODE5NSw4MTk0LDgxOTQsODE5NCw4MTk0LDIs
MiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDI0NTc3LDQ5MTU2LDQ5MTU2LDQ5MTU2
LAotICAgICAgICAgIDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5
MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDU1MzA0LDU1MzA0LDU1MzA0LDU1MzA0LDU1MzA0
LDU1MzA0LDU1MzA0LDU1MzA0LAotICAgICAgICAgIDU1MzA0LDU1MzA0LDQ5MTU2LDQ5MTU2LDQ5
MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDU0NTM2LDU0NTM2LDU0NTM2LDU0NTM2LDU0NTM2
LDU0NTM2LDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLAotICAgICAgICAgIDUwNDQwLDUw
NDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQw
LDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LAot
ICAgICAgICAgIDQ5MTU2LDU0NzkyLDU0NzkyLDU0NzkyLDU0NzkyLDU0NzkyLDU0NzkyLDUwNjk2
LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUw
Njk2LDUwNjk2LDUwNjk2LAotICAgICAgICAgIDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2
LDUwNjk2LDUwNjk2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDIsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAgICAwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsCi0gICAgICAg
ICAgMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwCi0gICAgICAgIF07Ci0gICAgICAgIHZh
ciBpMTZzaXplID0gMjsKLSAgICAgICAgdmFyIGFyciA9IF9tYWxsb2ModmFsdWVzLmxlbmd0aCAq
IGkxNnNpemUpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkr
KykgewotICAgICAgICAgIEhFQVAxNlsoKChhcnIpKyhpICogaTE2c2l6ZSkpPj4xKV09dmFsdWVz
W2ldCi0gICAgICAgIH0KLSAgICAgICAgbWUucmV0ID0gYWxsb2NhdGUoW2FyciArIDEyOCAqIGkx
NnNpemVdLCAnaTE2KicsIEFMTE9DX05PUk1BTCk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbWUu
cmV0OwotICAgIH0KLSAgZnVuY3Rpb24gX19fY3R5cGVfdG9sb3dlcl9sb2MoKSB7Ci0gICAgICAv
LyBodHRwOi8vcmVmc3BlY3MuZnJlZXN0YW5kYXJkcy5vcmcvTFNCXzMuMS4xL0xTQi1Db3JlLWdl
bmVyaWMvTFNCLUNvcmUtZ2VuZXJpYy9saWJ1dGlsLS0tY3R5cGUtdG9sb3dlci1sb2MuaHRtbAot
ICAgICAgdmFyIG1lID0gX19fY3R5cGVfdG9sb3dlcl9sb2M7Ci0gICAgICBpZiAoIW1lLnJldCkg
ewotICAgICAgICB2YXIgdmFsdWVzID0gWwotICAgICAgICAgIDEyOCwxMjksMTMwLDEzMSwxMzIs
MTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0Niwx
NDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LAotICAgICAgICAgIDE1
OCwxNTksMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcy
LDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYs
MTg3LAotICAgICAgICAgIDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5Nywx
OTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIx
MiwyMTMsMjE0LDIxNSwyMTYsMjE3LAotICAgICAgICAgIDIxOCwyMTksMjIwLDIyMSwyMjIsMjIz
LDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcs
MjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LAotICAgICAgICAgIDI0OCwy
NDksMjUwLDI1MSwyNTIsMjUzLDI1NCwtMSwwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEz
LDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMy
LAotICAgICAgICAgIDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3
LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDk3LDk4
LDk5LDEwMCwxMDEsMTAyLDEwMywKLSAgICAgICAgICAxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwx
MTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsOTEsOTIs
OTMsOTQsOTUsOTYsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLAotICAgICAgICAgIDEwNCwxMDUs
MTA2LDEwNywxMDgsMTA5LDExMCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwx
MjAsMTIxLDEyMiwxMjMsMTI0LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLAot
ICAgICAgICAgIDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1
LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTks
MTYwLDE2MSwxNjIsMTYzLAotICAgICAgICAgIDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwx
NzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4
NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLAotICAgICAgICAgIDE5NCwxOTUsMTk2
LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAs
MjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLAotICAg
ICAgICAgIDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIz
NiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUw
LDI1MSwyNTIsMjUzLAotICAgICAgICAgIDI1NCwyNTUKLSAgICAgICAgXTsKLSAgICAgICAgdmFy
IGkzMnNpemUgPSA0OwotICAgICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICog
aTMyc2l6ZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICAgSEVBUDMyWygoKGFycikrKGkgKiBpMzJzaXplKSk+PjIpXT12YWx1ZXNb
aV0KLSAgICAgICAgfQotICAgICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTMy
c2l6ZV0sICdpMzIqJywgQUxMT0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5y
ZXQ7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jdHlwZV90b3VwcGVyX2xvYygpIHsKLSAgICAgIC8v
IGh0dHA6Ly9yZWZzcGVjcy5mcmVlc3RhbmRhcmRzLm9yZy9MU0JfMy4xLjEvTFNCLUNvcmUtZ2Vu
ZXJpYy9MU0ItQ29yZS1nZW5lcmljL2xpYnV0aWwtLS1jdHlwZS10b3VwcGVyLWxvYy5odG1sCi0g
ICAgICB2YXIgbWUgPSBfX19jdHlwZV90b3VwcGVyX2xvYzsKLSAgICAgIGlmICghbWUucmV0KSB7
Ci0gICAgICAgIHZhciB2YWx1ZXMgPSBbCi0gICAgICAgICAgMTI4LDEyOSwxMzAsMTMxLDEzMiwx
MzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0
NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsCi0gICAgICAgICAgMTU4
LDE1OSwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIs
MTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4Niwx
ODcsCi0gICAgICAgICAgMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5
OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEy
LDIxMywyMTQsMjE1LDIxNiwyMTcsCi0gICAgICAgICAgMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMs
MjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywy
MzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsCi0gICAgICAgICAgMjQ4LDI0
OSwyNTAsMjUxLDI1MiwyNTMsMjU0LC0xLDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMs
MTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIs
Ci0gICAgICAgICAgMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcs
NDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsNjUsNjYs
NjcsNjgsNjksNzAsNzEsNzIsCi0gICAgICAgICAgNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsODEs
ODIsODMsODQsODUsODYsODcsODgsODksOTAsOTEsOTIsOTMsOTQsOTUsOTYsNjUsNjYsNjcsNjgs
NjksNzAsNzEsNzIsNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsCi0gICAgICAgICAgODEsODIsODMs
ODQsODUsODYsODcsODgsODksOTAsMTIzLDEyNCwxMjUsMTI2LDEyNywxMjgsMTI5LDEzMCwxMzEs
MTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LAotICAg
ICAgICAgIDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1
NywxNTgsMTU5LDE2MCwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcx
LDE3MiwxNzMsMTc0LAotICAgICAgICAgIDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIs
MTgzLDE4NCwxODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5Niwx
OTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LAotICAgICAgICAgIDIwNSwyMDYsMjA3LDIw
OCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIy
LDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LAotICAgICAg
ICAgIDIzNSwyMzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0Nywy
NDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsMjU1Ci0gICAgICAgIF07Ci0gICAgICAgIHZhciBp
MzJzaXplID0gNDsKLSAgICAgICAgdmFyIGFyciA9IF9tYWxsb2ModmFsdWVzLmxlbmd0aCAqIGkz
MnNpemUpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykg
ewotICAgICAgICAgIEhFQVAzMlsoKChhcnIpKyhpICogaTMyc2l6ZSkpPj4yKV09dmFsdWVzW2ld
Ci0gICAgICAgIH0KLSAgICAgICAgbWUucmV0ID0gYWxsb2NhdGUoW2FyciArIDEyOCAqIGkzMnNp
emVdLCAnaTMyKicsIEFMTE9DX05PUk1BTCk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbWUucmV0
OwotICAgIH0KLSAgdmFyIF9fX3RtX3N0cnVjdF9sYXlvdXQ9e19fc2l6ZV9fOjQ0LHRtX3NlYzow
LHRtX21pbjo0LHRtX2hvdXI6OCx0bV9tZGF5OjEyLHRtX21vbjoxNix0bV95ZWFyOjIwLHRtX3dk
YXk6MjQsdG1feWRheToyOCx0bV9pc2RzdDozMix0bV9nbXRvZmY6MzYsdG1fem9uZTo0MH07Ci0g
IGZ1bmN0aW9uIF9faXNMZWFwWWVhcih5ZWFyKSB7Ci0gICAgICAgIHJldHVybiB5ZWFyJTQgPT09
IDAgJiYgKHllYXIlMTAwICE9PSAwIHx8IHllYXIlNDAwID09PSAwKTsKLSAgICB9Ci0gIGZ1bmN0
aW9uIF9fYXJyYXlTdW0oYXJyYXksIGluZGV4KSB7Ci0gICAgICB2YXIgc3VtID0gMDsKLSAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDw9IGluZGV4OyBzdW0gKz0gYXJyYXlbaSsrXSk7Ci0gICAgICBy
ZXR1cm4gc3VtOwotICAgIH0KLSAgdmFyIF9fTU9OVEhfREFZU19MRUFQPVszMSwyOSwzMSwzMCwz
MSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07Ci0gIHZhciBfX01PTlRIX0RBWVNfUkVHVUxBUj1bMzEs
MjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO2Z1bmN0aW9uIF9fYWRkRGF5cyhkYXRl
LCBkYXlzKSB7Ci0gICAgICB2YXIgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTsK
LSAgICAgIHdoaWxlKGRheXMgPiAwKSB7Ci0gICAgICAgIHZhciBsZWFwID0gX19pc0xlYXBZZWFy
KG5ld0RhdGUuZ2V0RnVsbFllYXIoKSk7Ci0gICAgICAgIHZhciBjdXJyZW50TW9udGggPSBuZXdE
YXRlLmdldE1vbnRoKCk7Ci0gICAgICAgIHZhciBkYXlzSW5DdXJyZW50TW9udGggPSAobGVhcCA/
IF9fTU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIpW2N1cnJlbnRNb250aF07
Ci0gICAgICAgIGlmIChkYXlzID4gZGF5c0luQ3VycmVudE1vbnRoLW5ld0RhdGUuZ2V0RGF0ZSgp
KSB7Ci0gICAgICAgICAgLy8gd2Ugc3BpbGwgb3ZlciB0byBuZXh0IG1vbnRoCi0gICAgICAgICAg
ZGF5cyAtPSAoZGF5c0luQ3VycmVudE1vbnRoLW5ld0RhdGUuZ2V0RGF0ZSgpKzEpOwotICAgICAg
ICAgIG5ld0RhdGUuc2V0RGF0ZSgxKTsKLSAgICAgICAgICBpZiAoY3VycmVudE1vbnRoIDwgMTEp
IHsKLSAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgoY3VycmVudE1vbnRoKzEpCi0gICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgoMCk7Ci0gICAgICAgICAg
ICBuZXdEYXRlLnNldEZ1bGxZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSsxKTsKLSAgICAgICAg
ICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgLy8gd2Ugc3RheSBpbiBjdXJyZW50IG1v
bnRoIAotICAgICAgICAgIG5ld0RhdGUuc2V0RGF0ZShuZXdEYXRlLmdldERhdGUoKStkYXlzKTsK
LSAgICAgICAgICByZXR1cm4gbmV3RGF0ZTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0
dXJuIG5ld0RhdGU7Ci0gICAgfWZ1bmN0aW9uIF9zdHJmdGltZShzLCBtYXhzaXplLCBmb3JtYXQs
IHRtKSB7Ci0gICAgICAvLyBzaXplX3Qgc3RyZnRpbWUoY2hhciAqcmVzdHJpY3Qgcywgc2l6ZV90
IG1heHNpemUsIGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgY29uc3Qgc3RydWN0IHRtICpy
ZXN0cmljdCB0aW1lcHRyKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25s
aW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3N0cmZ0aW1lLmh0bWwKLSAgICAgIHZhciBkYXRl
ID0gewotICAgICAgICB0bV9zZWM6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQu
dG1fc2VjKSk+PjIpXSwKLSAgICAgICAgdG1fbWluOiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1
Y3RfbGF5b3V0LnRtX21pbikpPj4yKV0sCi0gICAgICAgIHRtX2hvdXI6IEhFQVAzMlsoKCh0bSkr
KF9fX3RtX3N0cnVjdF9sYXlvdXQudG1faG91cikpPj4yKV0sCi0gICAgICAgIHRtX21kYXk6IEhF
QVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1fbWRheSkpPj4yKV0sCi0gICAgICAg
IHRtX21vbjogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV9tb24pKT4+Mild
LAotICAgICAgICB0bV95ZWFyOiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRt
X3llYXIpKT4+MildLAotICAgICAgICB0bV93ZGF5OiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1
Y3RfbGF5b3V0LnRtX3dkYXkpKT4+MildLAotICAgICAgICB0bV95ZGF5OiBIRUFQMzJbKCgodG0p
KyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX3lkYXkpKT4+MildLAotICAgICAgICB0bV9pc2RzdDog
SEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV9pc2RzdCkpPj4yKV0KLSAgICAg
IH07Ci0gICAgICB2YXIgcGF0dGVybiA9IFBvaW50ZXJfc3RyaW5naWZ5KGZvcm1hdCk7Ci0gICAg
ICAvLyBleHBhbmQgZm9ybWF0Ci0gICAgICB2YXIgRVhQQU5TSU9OX1JVTEVTXzEgPSB7Ci0gICAg
ICAgICclYyc6ICclYSAlYiAlZCAlSDolTTolUyAlWScsICAgICAvLyBSZXBsYWNlZCBieSB0aGUg
bG9jYWxlJ3MgYXBwcm9wcmlhdGUgZGF0ZSBhbmQgdGltZSByZXByZXNlbnRhdGlvbiAtIGUuZy4s
IE1vbiBBdWcgIDMgMTQ6MDI6MDEgMjAxMwotICAgICAgICAnJUQnOiAnJW0vJWQvJXknLCAgICAg
ICAgICAgICAgICAgLy8gRXF1aXZhbGVudCB0byAlbSAvICVkIC8gJXkKLSAgICAgICAgJyVGJzog
JyVZLSVtLSVkJywgICAgICAgICAgICAgICAgIC8vIEVxdWl2YWxlbnQgdG8gJVkgLSAlbSAtICVk
Ci0gICAgICAgICclaCc6ICclYicsICAgICAgICAgICAgICAgICAgICAgICAvLyBFcXVpdmFsZW50
IHRvICViCi0gICAgICAgICclcic6ICclSTolTTolUyAlcCcsICAgICAgICAgICAgICAvLyBSZXBs
YWNlZCBieSB0aGUgdGltZSBpbiBhLm0uIGFuZCBwLm0uIG5vdGF0aW9uCi0gICAgICAgICclUic6
ICclSDolTScsICAgICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgdGltZSBpbiAy
NC1ob3VyIG5vdGF0aW9uCi0gICAgICAgICclVCc6ICclSDolTTolUycsICAgICAgICAgICAgICAg
ICAvLyBSZXBsYWNlZCBieSB0aGUgdGltZQotICAgICAgICAnJXgnOiAnJW0vJWQvJXknLCAgICAg
ICAgICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIGxvY2FsZSdzIGFwcHJvcHJpYXRlIGRhdGUg
cmVwcmVzZW50YXRpb24KLSAgICAgICAgJyVYJzogJyVIOiVNOiVTJywgICAgICAgICAgICAgICAg
IC8vIFJlcGxhY2VkIGJ5IHRoZSBsb2NhbGUncyBhcHByb3ByaWF0ZSBkYXRlIHJlcHJlc2VudGF0
aW9uCi0gICAgICB9OwotICAgICAgZm9yICh2YXIgcnVsZSBpbiBFWFBBTlNJT05fUlVMRVNfMSkg
ewotICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKG5ldyBSZWdFeHAocnVsZSwgJ2cn
KSwgRVhQQU5TSU9OX1JVTEVTXzFbcnVsZV0pOwotICAgICAgfQotICAgICAgdmFyIFdFRUtEQVlT
ID0gWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5
JywgJ0ZyaWRheScsICdTYXR1cmRheSddOwotICAgICAgdmFyIE1PTlRIUyA9IFsnSmFudWFyeScs
ICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1
Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddOwot
ICAgICAgdmFyIGxlYWRpbmdTb21ldGhpbmcgPSBmdW5jdGlvbih2YWx1ZSwgZGlnaXRzLCBjaGFy
YWN0ZXIpIHsKLSAgICAgICAgdmFyIHN0ciA9IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2
YWx1ZS50b1N0cmluZygpIDogKHZhbHVlIHx8ICcnKTsKLSAgICAgICAgd2hpbGUgKHN0ci5sZW5n
dGggPCBkaWdpdHMpIHsKLSAgICAgICAgICBzdHIgPSBjaGFyYWN0ZXJbMF0rc3RyOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBzdHI7Ci0gICAgICB9OwotICAgICAgdmFyIGxlYWRpbmdOdWxs
cyA9IGZ1bmN0aW9uKHZhbHVlLCBkaWdpdHMpIHsKLSAgICAgICAgcmV0dXJuIGxlYWRpbmdTb21l
dGhpbmcodmFsdWUsIGRpZ2l0cywgJzAnKTsKLSAgICAgIH07Ci0gICAgICB2YXIgY29tcGFyZUJ5
RGF5ID0gZnVuY3Rpb24oZGF0ZTEsIGRhdGUyKSB7Ci0gICAgICAgIHZhciBzZ24gPSBmdW5jdGlv
bih2YWx1ZSkgewotICAgICAgICAgIHJldHVybiB2YWx1ZSA8IDAgPyAtMSA6ICh2YWx1ZSA+IDAg
PyAxIDogMCk7Ci0gICAgICAgIH07Ci0gICAgICAgIHZhciBjb21wYXJlOwotICAgICAgICBpZiAo
KGNvbXBhcmUgPSBzZ24oZGF0ZTEuZ2V0RnVsbFllYXIoKS1kYXRlMi5nZXRGdWxsWWVhcigpKSkg
PT09IDApIHsKLSAgICAgICAgICBpZiAoKGNvbXBhcmUgPSBzZ24oZGF0ZTEuZ2V0TW9udGgoKS1k
YXRlMi5nZXRNb250aCgpKSkgPT09IDApIHsKLSAgICAgICAgICAgIGNvbXBhcmUgPSBzZ24oZGF0
ZTEuZ2V0RGF0ZSgpLWRhdGUyLmdldERhdGUoKSk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBjb21wYXJlOwotICAgICAgfTsKLSAgICAgIHZhciBnZXRGaXJzdFdlZWtT
dGFydERhdGUgPSBmdW5jdGlvbihqYW5Gb3VydGgpIHsKLSAgICAgICAgICBzd2l0Y2ggKGphbkZv
dXJ0aC5nZXREYXkoKSkgewotICAgICAgICAgICAgY2FzZSAwOiAvLyBTdW5kYXkKLSAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEsIDExLCAyOSk7
Ci0gICAgICAgICAgICBjYXNlIDE6IC8vIE1vbmRheQotICAgICAgICAgICAgICByZXR1cm4gamFu
Rm91cnRoOwotICAgICAgICAgICAgY2FzZSAyOiAvLyBUdWVzZGF5Ci0gICAgICAgICAgICAgIHJl
dHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKSwgMCwgMyk7Ci0gICAgICAgICAg
ICBjYXNlIDM6IC8vIFdlZG5lc2RheQotICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoamFu
Rm91cnRoLmdldEZ1bGxZZWFyKCksIDAsIDIpOwotICAgICAgICAgICAgY2FzZSA0OiAvLyBUaHVy
c2RheQotICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFy
KCksIDAsIDEpOwotICAgICAgICAgICAgY2FzZSA1OiAvLyBGcmlkYXkKLSAgICAgICAgICAgICAg
cmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEsIDExLCAzMSk7Ci0gICAg
ICAgICAgICBjYXNlIDY6IC8vIFNhdHVyZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0
ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKS0xLCAxMSwgMzApOwotICAgICAgICAgIH0KLSAgICAg
IH07Ci0gICAgICB2YXIgZ2V0V2Vla0Jhc2VkWWVhciA9IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAg
ICAgICB2YXIgdGhpc0RhdGUgPSBfX2FkZERheXMobmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAs
IDAsIDEpLCBkYXRlLnRtX3lkYXkpOwotICAgICAgICAgIHZhciBqYW5Gb3VydGhUaGlzWWVhciA9
IG5ldyBEYXRlKHRoaXNEYXRlLmdldEZ1bGxZZWFyKCksIDAsIDQpOwotICAgICAgICAgIHZhciBq
YW5Gb3VydGhOZXh0WWVhciA9IG5ldyBEYXRlKHRoaXNEYXRlLmdldEZ1bGxZZWFyKCkrMSwgMCwg
NCk7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIgPSBnZXRGaXJzdFdlZWtT
dGFydERhdGUoamFuRm91cnRoVGhpc1llYXIpOwotICAgICAgICAgIHZhciBmaXJzdFdlZWtTdGFy
dE5leHRZZWFyID0gZ2V0Rmlyc3RXZWVrU3RhcnREYXRlKGphbkZvdXJ0aE5leHRZZWFyKTsKLSAg
ICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIsIHRoaXNEYXRl
KSA8PSAwKSB7Ci0gICAgICAgICAgICAvLyB0aGlzIGRhdGUgaXMgYWZ0ZXIgdGhlIHN0YXJ0IG9m
IHRoZSBmaXJzdCB3ZWVrIG9mIHRoaXMgeWVhcgotICAgICAgICAgICAgaWYgKGNvbXBhcmVCeURh
eShmaXJzdFdlZWtTdGFydE5leHRZZWFyLCB0aGlzRGF0ZSkgPD0gMCkgewotICAgICAgICAgICAg
ICByZXR1cm4gdGhpc0RhdGUuZ2V0RnVsbFllYXIoKSsxOwotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgcmV0dXJuIHRoaXNEYXRlLmdldEZ1bGxZZWFyKCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAgICByZXR1cm4gdGhpc0RhdGUuZ2V0
RnVsbFllYXIoKS0xOwotICAgICAgICAgIH0KLSAgICAgIH07Ci0gICAgICB2YXIgRVhQQU5TSU9O
X1JVTEVTXzIgPSB7Ci0gICAgICAgICclYSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICBy
ZXR1cm4gV0VFS0RBWVNbZGF0ZS50bV93ZGF5XS5zdWJzdHJpbmcoMCwzKTsKLSAgICAgICAgfSwK
LSAgICAgICAgJyVBJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBXRUVLREFZ
U1tkYXRlLnRtX3dkYXldOwotICAgICAgICB9LAotICAgICAgICAnJWInOiBmdW5jdGlvbihkYXRl
KSB7Ci0gICAgICAgICAgcmV0dXJuIE1PTlRIU1tkYXRlLnRtX21vbl0uc3Vic3RyaW5nKDAsMyk7
Ci0gICAgICAgIH0sCi0gICAgICAgICclQic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICBy
ZXR1cm4gTU9OVEhTW2RhdGUudG1fbW9uXTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVDJzogZnVu
Y3Rpb24oZGF0ZSkgewotICAgICAgICAgIHZhciB5ZWFyID0gZGF0ZS50bV95ZWFyKzE5MDA7Ci0g
ICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhNYXRoLmZsb29yKHllYXIvMTAwKSwyKTsKLSAg
ICAgICAgfSwKLSAgICAgICAgJyVkJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVy
biBsZWFkaW5nTnVsbHMoZGF0ZS50bV9tZGF5LCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVl
JzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5nU29tZXRoaW5nKGRh
dGUudG1fbWRheSwgMiwgJyAnKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVnJzogZnVuY3Rpb24o
ZGF0ZSkgewotICAgICAgICAgIC8vICVnLCAlRywgYW5kICVWIGdpdmUgdmFsdWVzIGFjY29yZGlu
ZyB0byB0aGUgSVNPIDg2MDE6MjAwMCBzdGFuZGFyZCB3ZWVrLWJhc2VkIHllYXIuIAotICAgICAg
ICAgIC8vIEluIHRoaXMgc3lzdGVtLCB3ZWVrcyBiZWdpbiBvbiBhIE1vbmRheSBhbmQgd2VlayAx
IG9mIHRoZSB5ZWFyIGlzIHRoZSB3ZWVrIHRoYXQgaW5jbHVkZXMgCi0gICAgICAgICAgLy8gSmFu
dWFyeSA0dGgsIHdoaWNoIGlzIGFsc28gdGhlIHdlZWsgdGhhdCBpbmNsdWRlcyB0aGUgZmlyc3Qg
VGh1cnNkYXkgb2YgdGhlIHllYXIsIGFuZCAKLSAgICAgICAgICAvLyBpcyBhbHNvIHRoZSBmaXJz
dCB3ZWVrIHRoYXQgY29udGFpbnMgYXQgbGVhc3QgZm91ciBkYXlzIGluIHRoZSB5ZWFyLiAKLSAg
ICAgICAgICAvLyBJZiB0aGUgZmlyc3QgTW9uZGF5IG9mIEphbnVhcnkgaXMgdGhlIDJuZCwgM3Jk
LCBvciA0dGgsIHRoZSBwcmVjZWRpbmcgZGF5cyBhcmUgcGFydCBvZiAKLSAgICAgICAgICAvLyB0
aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmVjZWRpbmcgeWVhcjsgdGh1cywgZm9yIFNhdHVyZGF5IDJu
ZCBKYW51YXJ5IDE5OTksIAotICAgICAgICAgIC8vICVHIGlzIHJlcGxhY2VkIGJ5IDE5OTggYW5k
ICVWIGlzIHJlcGxhY2VkIGJ5IDUzLiBJZiBEZWNlbWJlciAyOXRoLCAzMHRoLCAKLSAgICAgICAg
ICAvLyBvciAzMXN0IGlzIGEgTW9uZGF5LCBpdCBhbmQgYW55IGZvbGxvd2luZyBkYXlzIGFyZSBw
YXJ0IG9mIHdlZWsgMSBvZiB0aGUgZm9sbG93aW5nIHllYXIuIAotICAgICAgICAgIC8vIFRodXMs
IGZvciBUdWVzZGF5IDMwdGggRGVjZW1iZXIgMTk5NywgJUcgaXMgcmVwbGFjZWQgYnkgMTk5OCBh
bmQgJVYgaXMgcmVwbGFjZWQgYnkgMDEuCi0gICAgICAgICAgcmV0dXJuIGdldFdlZWtCYXNlZFll
YXIoZGF0ZSkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMik7Ci0gICAgICAgIH0sCi0gICAgICAgICcl
Ryc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gZ2V0V2Vla0Jhc2VkWWVhcihk
YXRlKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVIJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAg
ICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0ZS50bV9ob3VyLCAyKTsKLSAgICAgICAgfSwKLSAg
ICAgICAgJyVJJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVs
bHMoZGF0ZS50bV9ob3VyIDwgMTMgPyBkYXRlLnRtX2hvdXIgOiBkYXRlLnRtX2hvdXItMTIsIDIp
OwotICAgICAgICB9LAotICAgICAgICAnJWonOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAg
Ly8gRGF5IG9mIHRoZSB5ZWFyICgwMDEtMzY2KQotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVs
bHMoZGF0ZS50bV9tZGF5K19fYXJyYXlTdW0oX19pc0xlYXBZZWFyKGRhdGUudG1feWVhcisxOTAw
KSA/IF9fTU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIsIGRhdGUudG1fbW9u
LTEpLCAzKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVtJzogZnVuY3Rpb24oZGF0ZSkgewotICAg
ICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0ZS50bV9tb24rMSwgMik7Ci0gICAgICAgIH0s
Ci0gICAgICAgICclTSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gbGVhZGlu
Z051bGxzKGRhdGUudG1fbWluLCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVuJzogZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgcmV0dXJuICdcbic7Ci0gICAgICAgIH0sCi0gICAgICAgICclcCc6
IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICBpZiAoZGF0ZS50bV9ob3VyID4gMCAmJiBkYXRl
LnRtX2hvdXIgPCAxMykgewotICAgICAgICAgICAgcmV0dXJuICdBTSc7Ci0gICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIHJldHVybiAnUE0nOwotICAgICAgICAgIH0KLSAgICAgICAgfSwK
LSAgICAgICAgJyVTJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5n
TnVsbHMoZGF0ZS50bV9zZWMsIDIpOwotICAgICAgICB9LAotICAgICAgICAnJXQnOiBmdW5jdGlv
bigpIHsKLSAgICAgICAgICByZXR1cm4gJ1x0JzsKLSAgICAgICAgfSwKLSAgICAgICAgJyV1Jzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHZhciBkYXkgPSBuZXcgRGF0ZShkYXRlLnRtX3ll
YXIrMTkwMCwgZGF0ZS50bV9tb24rMSwgZGF0ZS50bV9tZGF5LCAwLCAwLCAwLCAwKTsKLSAgICAg
ICAgICByZXR1cm4gZGF5LmdldERheSgpIHx8IDc7Ci0gICAgICAgIH0sCi0gICAgICAgICclVSc6
IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgd2VlayBudW1i
ZXIgb2YgdGhlIHllYXIgYXMgYSBkZWNpbWFsIG51bWJlciBbMDAsNTNdLiAKLSAgICAgICAgICAv
LyBUaGUgZmlyc3QgU3VuZGF5IG9mIEphbnVhcnkgaXMgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIDE7
IAotICAgICAgICAgIC8vIGRheXMgaW4gdGhlIG5ldyB5ZWFyIGJlZm9yZSB0aGlzIGFyZSBpbiB3
ZWVrIDAuIFsgdG1feWVhciwgdG1fd2RheSwgdG1feWRheV0KLSAgICAgICAgICB2YXIgamFuRmly
c3QgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgMCwgMSk7Ci0gICAgICAgICAgdmFyIGZp
cnN0U3VuZGF5ID0gamFuRmlyc3QuZ2V0RGF5KCkgPT09IDAgPyBqYW5GaXJzdCA6IF9fYWRkRGF5
cyhqYW5GaXJzdCwgNy1qYW5GaXJzdC5nZXREYXkoKSk7Ci0gICAgICAgICAgdmFyIGVuZERhdGUg
PSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgZGF0ZS50bV9tb24sIGRhdGUudG1fbWRheSk7
Ci0gICAgICAgICAgLy8gaXMgdGFyZ2V0IGRhdGUgYWZ0ZXIgdGhlIGZpcnN0IFN1bmRheT8KLSAg
ICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGZpcnN0U3VuZGF5LCBlbmREYXRlKSA8IDApIHsKLSAg
ICAgICAgICAgIC8vIGNhbGN1bGF0ZSBkaWZmZXJlbmNlIGluIGRheXMgYmV0d2VlbiBmaXJzdCBT
dW5kYXkgYW5kIGVuZERhdGUKLSAgICAgICAgICAgIHZhciBmZWJydWFyeUZpcnN0VW50aWxFbmRN
b250aCA9IF9fYXJyYXlTdW0oX19pc0xlYXBZZWFyKGVuZERhdGUuZ2V0RnVsbFllYXIoKSkgPyBf
X01PTlRIX0RBWVNfTEVBUCA6IF9fTU9OVEhfREFZU19SRUdVTEFSLCBlbmREYXRlLmdldE1vbnRo
KCktMSktMzE7Ci0gICAgICAgICAgICB2YXIgZmlyc3RTdW5kYXlVbnRpbEVuZEphbnVhcnkgPSAz
MS1maXJzdFN1bmRheS5nZXREYXRlKCk7Ci0gICAgICAgICAgICB2YXIgZGF5cyA9IGZpcnN0U3Vu
ZGF5VW50aWxFbmRKYW51YXJ5K2ZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRoK2VuZERhdGUuZ2V0
RGF0ZSgpOwotICAgICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhNYXRoLmNlaWwoZGF5cy83
KSwgMik7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBjb21wYXJlQnlEYXkoZmlyc3RT
dW5kYXksIGphbkZpcnN0KSA9PT0gMCA/ICcwMSc6ICcwMCc7Ci0gICAgICAgIH0sCi0gICAgICAg
ICclVic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgd2Vl
ayBudW1iZXIgb2YgdGhlIHllYXIgKE1vbmRheSBhcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVr
KSAKLSAgICAgICAgICAvLyBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMSw1M10uIElmIHRoZSB3ZWVr
IGNvbnRhaW5pbmcgMSBKYW51YXJ5IGhhcyBmb3VyIAotICAgICAgICAgIC8vIG9yIG1vcmUgZGF5
cyBpbiB0aGUgbmV3IHllYXIsIHRoZW4gaXQgaXMgY29uc2lkZXJlZCB3ZWVrIDEuIAotICAgICAg
ICAgIC8vIE90aGVyd2lzZSwgaXQgaXMgdGhlIGxhc3Qgd2VlayBvZiB0aGUgcHJldmlvdXMgeWVh
ciwgYW5kIHRoZSBuZXh0IHdlZWsgaXMgd2VlayAxLiAKLSAgICAgICAgICAvLyBCb3RoIEphbnVh
cnkgNHRoIGFuZCB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgSmFudWFyeSBhcmUgYWx3YXlzIGluIHdl
ZWsgMS4gWyB0bV95ZWFyLCB0bV93ZGF5LCB0bV95ZGF5XQotICAgICAgICAgIHZhciBqYW5Gb3Vy
dGhUaGlzWWVhciA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCAwLCA0KTsKLSAgICAgICAg
ICB2YXIgamFuRm91cnRoTmV4dFllYXIgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMSwgMCwg
NCk7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIgPSBnZXRGaXJzdFdlZWtT
dGFydERhdGUoamFuRm91cnRoVGhpc1llYXIpOwotICAgICAgICAgIHZhciBmaXJzdFdlZWtTdGFy
dE5leHRZZWFyID0gZ2V0Rmlyc3RXZWVrU3RhcnREYXRlKGphbkZvdXJ0aE5leHRZZWFyKTsKLSAg
ICAgICAgICB2YXIgZW5kRGF0ZSA9IF9fYWRkRGF5cyhuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkw
MCwgMCwgMSksIGRhdGUudG1feWRheSk7Ci0gICAgICAgICAgaWYgKGNvbXBhcmVCeURheShlbmRE
YXRlLCBmaXJzdFdlZWtTdGFydFRoaXNZZWFyKSA8IDApIHsKLSAgICAgICAgICAgIC8vIGlmIGdp
dmVuIGRhdGUgaXMgYmVmb3JlIHRoaXMgeWVhcnMgZmlyc3Qgd2VlaywgdGhlbiBpdCBiZWxvbmdz
IHRvIHRoZSA1M3JkIHdlZWsgb2YgbGFzdCB5ZWFyCi0gICAgICAgICAgICByZXR1cm4gJzUzJzsK
LSAgICAgICAgICB9IAotICAgICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RXZWVrU3RhcnRO
ZXh0WWVhciwgZW5kRGF0ZSkgPD0gMCkgewotICAgICAgICAgICAgLy8gaWYgZ2l2ZW4gZGF0ZSBp
cyBhZnRlciBuZXh0IHllYXJzIGZpcnN0IHdlZWssIHRoZW4gaXQgYmVsb25ncyB0byB0aGUgMDF0
aCB3ZWVrIG9mIG5leHQgeWVhcgotICAgICAgICAgICAgcmV0dXJuICcwMSc7Ci0gICAgICAgICAg
fQotICAgICAgICAgIC8vIGdpdmVuIGRhdGUgaXMgaW4gYmV0d2VlbiBDVyAwMS4uNTMgb2YgdGhp
cyBjYWxlbmRhciB5ZWFyCi0gICAgICAgICAgdmFyIGRheXNEaWZmZXJlbmNlOwotICAgICAgICAg
IGlmIChmaXJzdFdlZWtTdGFydFRoaXNZZWFyLmdldEZ1bGxZZWFyKCkgPCBkYXRlLnRtX3llYXIr
MTkwMCkgewotICAgICAgICAgICAgLy8gZmlyc3QgQ1cgb2YgdGhpcyB5ZWFyIHN0YXJ0cyBsYXN0
IHllYXIKLSAgICAgICAgICAgIGRheXNEaWZmZXJlbmNlID0gZGF0ZS50bV95ZGF5KzMyLWZpcnN0
V2Vla1N0YXJ0VGhpc1llYXIuZ2V0RGF0ZSgpCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIC8vIGZpcnN0IENXIG9mIHRoaXMgeWVhciBzdGFydHMgdGhpcyB5ZWFyCi0gICAgICAgICAg
ICBkYXlzRGlmZmVyZW5jZSA9IGRhdGUudG1feWRheSsxLWZpcnN0V2Vla1N0YXJ0VGhpc1llYXIu
Z2V0RGF0ZSgpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1h
dGguY2VpbChkYXlzRGlmZmVyZW5jZS83KSwgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICcldyc6
IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICB2YXIgZGF5ID0gbmV3IERhdGUoZGF0ZS50bV95
ZWFyKzE5MDAsIGRhdGUudG1fbW9uKzEsIGRhdGUudG1fbWRheSwgMCwgMCwgMCwgMCk7Ci0gICAg
ICAgICAgcmV0dXJuIGRheS5nZXREYXkoKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVXJzogZnVu
Y3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVrIG51bWJlciBv
ZiB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw1M10uIAotICAgICAgICAgIC8vIFRo
ZSBmaXJzdCBNb25kYXkgb2YgSmFudWFyeSBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgMTsgCi0g
ICAgICAgICAgLy8gZGF5cyBpbiB0aGUgbmV3IHllYXIgYmVmb3JlIHRoaXMgYXJlIGluIHdlZWsg
MC4gWyB0bV95ZWFyLCB0bV93ZGF5LCB0bV95ZGF5XQotICAgICAgICAgIHZhciBqYW5GaXJzdCA9
IG5ldyBEYXRlKGRhdGUudG1feWVhciwgMCwgMSk7Ci0gICAgICAgICAgdmFyIGZpcnN0TW9uZGF5
ID0gamFuRmlyc3QuZ2V0RGF5KCkgPT09IDEgPyBqYW5GaXJzdCA6IF9fYWRkRGF5cyhqYW5GaXJz
dCwgamFuRmlyc3QuZ2V0RGF5KCkgPT09IDAgPyAxIDogNy1qYW5GaXJzdC5nZXREYXkoKSsxKTsK
LSAgICAgICAgICB2YXIgZW5kRGF0ZSA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCBkYXRl
LnRtX21vbiwgZGF0ZS50bV9tZGF5KTsKLSAgICAgICAgICAvLyBpcyB0YXJnZXQgZGF0ZSBhZnRl
ciB0aGUgZmlyc3QgTW9uZGF5PwotICAgICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RNb25k
YXksIGVuZERhdGUpIDwgMCkgewotICAgICAgICAgICAgdmFyIGZlYnJ1YXJ5Rmlyc3RVbnRpbEVu
ZE1vbnRoID0gX19hcnJheVN1bShfX2lzTGVhcFllYXIoZW5kRGF0ZS5nZXRGdWxsWWVhcigpKSA/
IF9fTU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIsIGVuZERhdGUuZ2V0TW9u
dGgoKS0xKS0zMTsKLSAgICAgICAgICAgIHZhciBmaXJzdE1vbmRheVVudGlsRW5kSmFudWFyeSA9
IDMxLWZpcnN0TW9uZGF5LmdldERhdGUoKTsKLSAgICAgICAgICAgIHZhciBkYXlzID0gZmlyc3RN
b25kYXlVbnRpbEVuZEphbnVhcnkrZmVicnVhcnlGaXJzdFVudGlsRW5kTW9udGgrZW5kRGF0ZS5n
ZXREYXRlKCk7Ci0gICAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguY2VpbChkYXlz
LzcpLCAyKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGNvbXBhcmVCeURheShmaXJz
dE1vbmRheSwgamFuRmlyc3QpID09PSAwID8gJzAxJzogJzAwJzsKLSAgICAgICAgfSwKLSAgICAg
ICAgJyV5JzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBs
YXN0IHR3byBkaWdpdHMgb2YgdGhlIHllYXIgYXMgYSBkZWNpbWFsIG51bWJlciBbMDAsOTldLiBb
IHRtX3llYXJdCi0gICAgICAgICAgcmV0dXJuIChkYXRlLnRtX3llYXIrMTkwMCkudG9TdHJpbmco
KS5zdWJzdHJpbmcoMik7Ci0gICAgICAgIH0sCi0gICAgICAgICclWSc6IGZ1bmN0aW9uKGRhdGUp
IHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVy
IChmb3IgZXhhbXBsZSwgMTk5NykuIFsgdG1feWVhcl0KLSAgICAgICAgICByZXR1cm4gZGF0ZS50
bV95ZWFyKzE5MDA7Ci0gICAgICAgIH0sCi0gICAgICAgICcleic6IGZ1bmN0aW9uKGRhdGUpIHsK
LSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgb2Zmc2V0IGZyb20gVVRDIGluIHRoZSBJU08g
ODYwMToyMDAwIHN0YW5kYXJkIGZvcm1hdCAoICtoaG1tIG9yIC1oaG1tICksCi0gICAgICAgICAg
Ly8gb3IgYnkgbm8gY2hhcmFjdGVycyBpZiBubyB0aW1lem9uZSBpcyBkZXRlcm1pbmFibGUuIAot
ICAgICAgICAgIC8vIEZvciBleGFtcGxlLCAiLTA0MzAiIG1lYW5zIDQgaG91cnMgMzAgbWludXRl
cyBiZWhpbmQgVVRDICh3ZXN0IG9mIEdyZWVud2ljaCkuIAotICAgICAgICAgIC8vIElmIHRtX2lz
ZHN0IGlzIHplcm8sIHRoZSBzdGFuZGFyZCB0aW1lIG9mZnNldCBpcyB1c2VkLiAKLSAgICAgICAg
ICAvLyBJZiB0bV9pc2RzdCBpcyBncmVhdGVyIHRoYW4gemVybywgdGhlIGRheWxpZ2h0IHNhdmlu
Z3MgdGltZSBvZmZzZXQgaXMgdXNlZC4gCi0gICAgICAgICAgLy8gSWYgdG1faXNkc3QgaXMgbmVn
YXRpdmUsIG5vIGNoYXJhY3RlcnMgYXJlIHJldHVybmVkLiAKLSAgICAgICAgICAvLyBGSVhNRTog
d2UgY2Fubm90IGRldGVybWluZSB0aW1lIHpvbmUgKG9yIGNhbiB3ZT8pCi0gICAgICAgICAgcmV0
dXJuICcnOwotICAgICAgICB9LAotICAgICAgICAnJVonOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAg
ICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHRpbWV6b25lIG5hbWUgb3IgYWJicmV2aWF0aW9uLCBv
ciBieSBubyBieXRlcyBpZiBubyB0aW1lem9uZSBpbmZvcm1hdGlvbiBleGlzdHMuIFsgdG1faXNk
c3RdCi0gICAgICAgICAgLy8gRklYTUU6IHdlIGNhbm5vdCBkZXRlcm1pbmUgdGltZSB6b25lIChv
ciBjYW4gd2U/KQotICAgICAgICAgIHJldHVybiAnJzsKLSAgICAgICAgfSwKLSAgICAgICAgJyUl
JzogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuICclJzsKLSAgICAgICAgfQotICAgICAg
fTsKLSAgICAgIGZvciAodmFyIHJ1bGUgaW4gRVhQQU5TSU9OX1JVTEVTXzIpIHsKLSAgICAgICAg
aWYgKHBhdHRlcm4uaW5kZXhPZihydWxlKSA+PSAwKSB7Ci0gICAgICAgICAgcGF0dGVybiA9IHBh
dHRlcm4ucmVwbGFjZShuZXcgUmVnRXhwKHJ1bGUsICdnJyksIEVYUEFOU0lPTl9SVUxFU18yW3J1
bGVdKGRhdGUpKTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgdmFyIGJ5dGVzID0gaW50QXJy
YXlGcm9tU3RyaW5nKHBhdHRlcm4sIGZhbHNlKTsKLSAgICAgIGlmIChieXRlcy5sZW5ndGggPiBt
YXhzaXplKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgICAgfSAKLSAgICAgIHdyaXRlQXJyYXlU
b01lbW9yeShieXRlcywgcyk7Ci0gICAgICByZXR1cm4gYnl0ZXMubGVuZ3RoLTE7Ci0gICAgfXZh
ciBfc3RyZnRpbWVfbD1fc3RyZnRpbWU7Ci0gIGZ1bmN0aW9uIF9pc3NwYWNlKGNocikgewotICAg
ICAgcmV0dXJuIChjaHIgPT0gMzIpIHx8IChjaHIgPj0gOSAmJiBjaHIgPD0gMTMpOwotICAgIH0K
LSAgZnVuY3Rpb24gX19wYXJzZUludDY0KHN0ciwgZW5kcHRyLCBiYXNlLCBtaW4sIG1heCwgdW5z
aWduKSB7Ci0gICAgICB2YXIgaXNOZWdhdGl2ZSA9IGZhbHNlOwotICAgICAgLy8gU2tpcCBzcGFj
ZS4KLSAgICAgIHdoaWxlIChfaXNzcGFjZShIRUFQOFsoc3RyKV0pKSBzdHIrKzsKLSAgICAgIC8v
IENoZWNrIGZvciBhIHBsdXMvbWludXMgc2lnbi4KLSAgICAgIGlmIChIRUFQOFsoc3RyKV0gPT0g
NDUpIHsKLSAgICAgICAgc3RyKys7Ci0gICAgICAgIGlzTmVnYXRpdmUgPSB0cnVlOwotICAgICAg
fSBlbHNlIGlmIChIRUFQOFsoc3RyKV0gPT0gNDMpIHsKLSAgICAgICAgc3RyKys7Ci0gICAgICB9
Ci0gICAgICAvLyBGaW5kIGJhc2UuCi0gICAgICB2YXIgb2sgPSBmYWxzZTsKLSAgICAgIHZhciBm
aW5hbEJhc2UgPSBiYXNlOwotICAgICAgaWYgKCFmaW5hbEJhc2UpIHsKLSAgICAgICAgaWYgKEhF
QVA4WyhzdHIpXSA9PSA0OCkgewotICAgICAgICAgIGlmIChIRUFQOFsoKHN0cisxKXwwKV0gPT0g
MTIwIHx8Ci0gICAgICAgICAgICAgIEhFQVA4Wygoc3RyKzEpfDApXSA9PSA4OCkgewotICAgICAg
ICAgICAgZmluYWxCYXNlID0gMTY7Ci0gICAgICAgICAgICBzdHIgKz0gMjsKLSAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgZmluYWxCYXNlID0gODsKLSAgICAgICAgICAgIG9rID0gdHJ1
ZTsgLy8gd2Ugc2F3IGFuIGluaXRpYWwgemVybywgcGVyaGFwcyB0aGUgZW50aXJlIHRoaW5nIGlz
IGp1c3QgIjAiCi0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9IGVsc2UgaWYgKGZpbmFs
QmFzZT09MTYpIHsKLSAgICAgICAgaWYgKEhFQVA4WyhzdHIpXSA9PSA0OCkgewotICAgICAgICAg
IGlmIChIRUFQOFsoKHN0cisxKXwwKV0gPT0gMTIwIHx8Ci0gICAgICAgICAgICAgIEhFQVA4Wygo
c3RyKzEpfDApXSA9PSA4OCkgewotICAgICAgICAgICAgc3RyICs9IDI7Ci0gICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiAoIWZpbmFsQmFzZSkgZmluYWxCYXNlID0gMTA7
Ci0gICAgICBzdGFydCA9IHN0cjsKLSAgICAgIC8vIEdldCBkaWdpdHMuCi0gICAgICB2YXIgY2hy
OwotICAgICAgd2hpbGUgKChjaHIgPSBIRUFQOFsoc3RyKV0pICE9IDApIHsKLSAgICAgICAgdmFy
IGRpZ2l0ID0gcGFyc2VJbnQoU3RyaW5nLmZyb21DaGFyQ29kZShjaHIpLCBmaW5hbEJhc2UpOwot
ICAgICAgICBpZiAoaXNOYU4oZGlnaXQpKSB7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgc3RyKys7Ci0gICAgICAgICAgb2sgPSB0cnVlOwotICAgICAgICB9
Ci0gICAgICB9Ci0gICAgICBpZiAoIW9rKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NP
REVTLkVJTlZBTCk7Ci0gICAgICAgIHJldHVybiAoKGFzbVsic2V0VGVtcFJldDAiXSgwKSwwKXww
KTsKLSAgICAgIH0KLSAgICAgIC8vIFNldCBlbmQgcG9pbnRlci4KLSAgICAgIGlmIChlbmRwdHIp
IHsKLSAgICAgICAgSEVBUDMyWygoZW5kcHRyKT4+MildPXN0cgotICAgICAgfQotICAgICAgdHJ5
IHsKLSAgICAgICAgdmFyIG51bWJlclN0cmluZyA9IGlzTmVnYXRpdmUgPyAnLScrUG9pbnRlcl9z
dHJpbmdpZnkoc3RhcnQsIHN0ciAtIHN0YXJ0KSA6IFBvaW50ZXJfc3RyaW5naWZ5KHN0YXJ0LCBz
dHIgLSBzdGFydCk7Ci0gICAgICAgIGk2NE1hdGguZnJvbVN0cmluZyhudW1iZXJTdHJpbmcsIGZp
bmFsQmFzZSwgbWluLCBtYXgsIHVuc2lnbik7Ci0gICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAg
X19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRVJBTkdFKTsgLy8gbm90IHF1aXRlIGNvcnJlY3QKLSAg
ICAgIH0KLSAgICAgIHJldHVybiAoKGFzbVsic2V0VGVtcFJldDAiXSgoKEhFQVAzMlsoKCh0ZW1w
RG91YmxlUHRyKSsoNCkpPj4yKV0pfDApKSwoKEhFQVAzMlsoKHRlbXBEb3VibGVQdHIpPj4yKV0p
fDApKXwwKTsKLSAgICB9ZnVuY3Rpb24gX3N0cnRvdWxsKHN0ciwgZW5kcHRyLCBiYXNlKSB7Ci0g
ICAgICByZXR1cm4gX19wYXJzZUludDY0KHN0ciwgZW5kcHRyLCBiYXNlLCAwLCAnMTg0NDY3NDQw
NzM3MDk1NTE2MTUnLCB0cnVlKTsgIC8vIFVMT05HX01BWC4KLSAgICB9dmFyIF9zdHJ0b3VsbF9s
PV9zdHJ0b3VsbDsKLSAgZnVuY3Rpb24gX3N0cnRvbGwoc3RyLCBlbmRwdHIsIGJhc2UpIHsKLSAg
ICAgIHJldHVybiBfX3BhcnNlSW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsICctOTIyMzM3MjAzNjg1
NDc3NTgwOCcsICc5MjIzMzcyMDM2ODU0Nzc1ODA3Jyk7ICAvLyBMTE9OR19NSU4sIExMT05HX01B
WC4KLSAgICB9dmFyIF9zdHJ0b2xsX2w9X3N0cnRvbGw7Ci0gIGZ1bmN0aW9uIF91c2Vsb2NhbGUo
bG9jYWxlKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2xvY2FsZV9t
Yl9jdXJfbWF4KCkgeyB0aHJvdyAnX19sb2NhbGVfbWJfY3VyX21heCBub3QgaW1wbGVtZW50ZWQn
IH0KLSAgdmFyIF9sbHZtX3ZhX3N0YXJ0PXVuZGVmaW5lZDsKLSAgZnVuY3Rpb24gX3NwcmludGYo
cywgZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAgICAvLyBpbnQgc3ByaW50ZihjaGFyICpyZXN0cmlj
dCBzLCBjb25zdCBjaGFyICpyZXN0cmljdCBmb3JtYXQsIC4uLik7Ci0gICAgICAvLyBodHRwOi8v
cHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9wcmludGYu
aHRtbAotICAgICAgcmV0dXJuIF9zbnByaW50ZihzLCB1bmRlZmluZWQsIGZvcm1hdCwgdmFyYXJn
cyk7Ci0gICAgfWZ1bmN0aW9uIF9hc3ByaW50ZihzLCBmb3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAg
IHJldHVybiBfc3ByaW50ZigtcywgZm9ybWF0LCB2YXJhcmdzKTsKLSAgICB9ZnVuY3Rpb24gX3Zh
c3ByaW50ZihzLCBmb3JtYXQsIHZhX2FyZykgewotICAgICAgcmV0dXJuIF9hc3ByaW50ZihzLCBm
b3JtYXQsIEhFQVAzMlsoKHZhX2FyZyk+PjIpXSk7Ci0gICAgfQotICBmdW5jdGlvbiBfbGx2bV92
YV9lbmQoKSB7fQotICBmdW5jdGlvbiBfdnNucHJpbnRmKHMsIG4sIGZvcm1hdCwgdmFfYXJnKSB7
Ci0gICAgICByZXR1cm4gX3NucHJpbnRmKHMsIG4sIGZvcm1hdCwgSEVBUDMyWygodmFfYXJnKT4+
MildKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF92c3NjYW5mKHMsIGZvcm1hdCwgdmFfYXJnKSB7Ci0g
ICAgICByZXR1cm4gX3NzY2FuZihzLCBmb3JtYXQsIEhFQVAzMlsoKHZhX2FyZyk+PjIpXSk7Ci0g
ICAgfQotICBmdW5jdGlvbiBfc2JyayhieXRlcykgewotICAgICAgLy8gSW1wbGVtZW50IGEgTGlu
dXgtbGlrZSAnbWVtb3J5IGFyZWEnIGZvciBvdXIgJ3Byb2Nlc3MnLgotICAgICAgLy8gQ2hhbmdl
cyB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IGFyZWEgYnkgfGJ5dGVzfDsgcmV0dXJucyB0aGUKLSAg
ICAgIC8vIGFkZHJlc3Mgb2YgdGhlIHByZXZpb3VzIHRvcCAoJ2JyZWFrJykgb2YgdGhlIG1lbW9y
eSBhcmVhCi0gICAgICAvLyBXZSBjb250cm9sIHRoZSAiZHluYW1pYyIgbWVtb3J5IC0gRFlOQU1J
Q19CQVNFIHRvIERZTkFNSUNUT1AKLSAgICAgIHZhciBzZWxmID0gX3Nicms7Ci0gICAgICBpZiAo
IXNlbGYuY2FsbGVkKSB7Ci0gICAgICAgIERZTkFNSUNUT1AgPSBhbGlnbk1lbW9yeVBhZ2UoRFlO
QU1JQ1RPUCk7IC8vIG1ha2Ugc3VyZSB3ZSBzdGFydCBvdXQgYWxpZ25lZAotICAgICAgICBzZWxm
LmNhbGxlZCA9IHRydWU7Ci0gICAgICAgIGFzc2VydChSdW50aW1lLmR5bmFtaWNBbGxvYyk7Ci0g
ICAgICAgIHNlbGYuYWxsb2MgPSBSdW50aW1lLmR5bmFtaWNBbGxvYzsKLSAgICAgICAgUnVudGlt
ZS5keW5hbWljQWxsb2MgPSBmdW5jdGlvbigpIHsgYWJvcnQoJ2Nhbm5vdCBkeW5hbWljYWxseSBh
bGxvY2F0ZSwgc2JyayBub3cgaGFzIGNvbnRyb2wnKSB9OwotICAgICAgfQotICAgICAgdmFyIHJl
dCA9IERZTkFNSUNUT1A7Ci0gICAgICBpZiAoYnl0ZXMgIT0gMCkgc2VsZi5hbGxvYyhieXRlcyk7
Ci0gICAgICByZXR1cm4gcmV0OyAgLy8gUHJldmlvdXMgYnJlYWsgbG9jYXRpb24uCi0gICAgfQot
ICBmdW5jdGlvbiBfdGltZShwdHIpIHsKLSAgICAgIHZhciByZXQgPSBNYXRoLmZsb29yKERhdGUu
bm93KCkvMTAwMCk7Ci0gICAgICBpZiAocHRyKSB7Ci0gICAgICAgIEhFQVAzMlsoKHB0cik+PjIp
XT1yZXQKLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotICBmdW5jdGlvbiBfX19j
eGFfY2FsbF91bmV4cGVjdGVkKGV4Y2VwdGlvbikgewotICAgICAgTW9kdWxlLnByaW50RXJyKCdV
bmV4cGVjdGVkIGV4Y2VwdGlvbiB0aHJvd24sIHRoaXMgaXMgbm90IHByb3Blcmx5IHN1cHBvcnRl
ZCAtIGFib3J0aW5nJyk7Ci0gICAgICBBQk9SVCA9IHRydWU7Ci0gICAgICB0aHJvdyBleGNlcHRp
b247Ci0gICAgfQotICB2YXIgQnJvd3Nlcj17bWFpbkxvb3A6e3NjaGVkdWxlcjpudWxsLHNob3Vs
ZFBhdXNlOmZhbHNlLHBhdXNlZDpmYWxzZSxxdWV1ZTpbXSxwYXVzZTpmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5zaG91bGRQYXVzZSA9IHRydWU7Ci0gICAgICAgIH0s
cmVzdW1lOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBpZiAoQnJvd3Nlci5tYWluTG9vcC5wYXVz
ZWQpIHsKLSAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3AucGF1c2VkID0gZmFsc2U7Ci0gICAg
ICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNjaGVkdWxlcigpOwotICAgICAgICAgIH0KLSAgICAg
ICAgICBCcm93c2VyLm1haW5Mb29wLnNob3VsZFBhdXNlID0gZmFsc2U7Ci0gICAgICAgIH0sdXBk
YXRlU3RhdHVzOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBpZiAoTW9kdWxlWydzZXRTdGF0dXMn
XSkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBNb2R1bGVbJ3N0YXR1c01lc3NhZ2UnXSB8
fCAnUGxlYXNlIHdhaXQuLi4nOwotICAgICAgICAgICAgdmFyIHJlbWFpbmluZyA9IEJyb3dzZXIu
bWFpbkxvb3AucmVtYWluaW5nQmxvY2tlcnM7Ci0gICAgICAgICAgICB2YXIgZXhwZWN0ZWQgPSBC
cm93c2VyLm1haW5Mb29wLmV4cGVjdGVkQmxvY2tlcnM7Ci0gICAgICAgICAgICBpZiAocmVtYWlu
aW5nKSB7Ci0gICAgICAgICAgICAgIGlmIChyZW1haW5pbmcgPCBleHBlY3RlZCkgewotICAgICAg
ICAgICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10obWVzc2FnZSArICcgKCcgKyAoZXhwZWN0ZWQg
LSByZW1haW5pbmcpICsgJy8nICsgZXhwZWN0ZWQgKyAnKScpOwotICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10obWVzc2FnZSk7Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIE1vZHVsZVsn
c2V0U3RhdHVzJ10oJycpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfX0s
aXNGdWxsU2NyZWVuOmZhbHNlLHBvaW50ZXJMb2NrOmZhbHNlLG1vZHVsZUNvbnRleHRDcmVhdGVk
Q2FsbGJhY2tzOltdLHdvcmtlcnM6W10saW5pdDpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGlmICgh
TW9kdWxlWyJwcmVsb2FkUGx1Z2lucyJdKSBNb2R1bGVbInByZWxvYWRQbHVnaW5zIl0gPSBbXTsg
Ly8gbmVlZHMgdG8gZXhpc3QgZXZlbiBpbiB3b3JrZXJzCi0gICAgICAgIGlmIChCcm93c2VyLmlu
aXR0ZWQgfHwgRU5WSVJPTk1FTlRfSVNfV09SS0VSKSByZXR1cm47Ci0gICAgICAgIEJyb3dzZXIu
aW5pdHRlZCA9IHRydWU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbmV3IEJsb2IoKTsKLSAg
ICAgICAgICBCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvciA9IHRydWU7Ci0gICAgICAgIH0gY2F0
Y2goZSkgewotICAgICAgICAgIEJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yID0gZmFsc2U7Ci0g
ICAgICAgICAgY29uc29sZS5sb2coIndhcm5pbmc6IG5vIGJsb2IgY29uc3RydWN0b3IsIGNhbm5v
dCBjcmVhdGUgYmxvYnMgd2l0aCBtaW1ldHlwZXMiKTsKLSAgICAgICAgfQotICAgICAgICBCcm93
c2VyLkJsb2JCdWlsZGVyID0gdHlwZW9mIE1vekJsb2JCdWlsZGVyICE9ICJ1bmRlZmluZWQiID8g
TW96QmxvYkJ1aWxkZXIgOiAodHlwZW9mIFdlYktpdEJsb2JCdWlsZGVyICE9ICJ1bmRlZmluZWQi
ID8gV2ViS2l0QmxvYkJ1aWxkZXIgOiAoIUJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yID8gY29u
c29sZS5sb2coIndhcm5pbmc6IG5vIEJsb2JCdWlsZGVyIikgOiBudWxsKSk7Ci0gICAgICAgIEJy
b3dzZXIuVVJMT2JqZWN0ID0gdHlwZW9mIHdpbmRvdyAhPSAidW5kZWZpbmVkIiA/ICh3aW5kb3cu
VVJMID8gd2luZG93LlVSTCA6IHdpbmRvdy53ZWJraXRVUkwpIDogdW5kZWZpbmVkOwotICAgICAg
ICBpZiAoIU1vZHVsZS5ub0ltYWdlRGVjb2RpbmcgJiYgdHlwZW9mIEJyb3dzZXIuVVJMT2JqZWN0
ID09PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIGNvbnNvbGUubG9nKCJ3YXJuaW5nOiBCcm93
c2VyIGRvZXMgbm90IHN1cHBvcnQgY3JlYXRpbmcgb2JqZWN0IFVSTHMuIEJ1aWx0LWluIGJyb3dz
ZXIgaW1hZ2UgZGVjb2Rpbmcgd2lsbCBub3QgYmUgYXZhaWxhYmxlLiIpOwotICAgICAgICAgIE1v
ZHVsZS5ub0ltYWdlRGVjb2RpbmcgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIC8vIFN1cHBv
cnQgZm9yIHBsdWdpbnMgdGhhdCBjYW4gcHJvY2VzcyBwcmVsb2FkZWQgZmlsZXMuIFlvdSBjYW4g
YWRkIG1vcmUgb2YgdGhlc2UgdG8KLSAgICAgICAgLy8geW91ciBhcHAgYnkgY3JlYXRpbmcgYW5k
IGFwcGVuZGluZyB0byBNb2R1bGUucHJlbG9hZFBsdWdpbnMuCi0gICAgICAgIC8vCi0gICAgICAg
IC8vIEVhY2ggcGx1Z2luIGlzIGFza2VkIGlmIGl0IGNhbiBoYW5kbGUgYSBmaWxlIGJhc2VkIG9u
IHRoZSBmaWxlJ3MgbmFtZS4gSWYgaXQgY2FuLAotICAgICAgICAvLyBpdCBpcyBnaXZlbiB0aGUg
ZmlsZSdzIHJhdyBkYXRhLiBXaGVuIGl0IGlzIGRvbmUsIGl0IGNhbGxzIGEgY2FsbGJhY2sgd2l0
aCB0aGUgZmlsZSdzCi0gICAgICAgIC8vIChwb3NzaWJseSBtb2RpZmllZCkgZGF0YS4gRm9yIGV4
YW1wbGUsIGEgcGx1Z2luIG1pZ2h0IGRlY29tcHJlc3MgYSBmaWxlLCBvciBpdAotICAgICAgICAv
LyBtaWdodCBjcmVhdGUgc29tZSBzaWRlIGRhdGEgc3RydWN0dXJlIGZvciB1c2UgbGF0ZXIgKGxp
a2UgYW4gSW1hZ2UgZWxlbWVudCwgZXRjLikuCi0gICAgICAgIHZhciBpbWFnZVBsdWdpbiA9IHt9
OwotICAgICAgICBpbWFnZVBsdWdpblsnY2FuSGFuZGxlJ10gPSBmdW5jdGlvbihuYW1lKSB7Ci0g
ICAgICAgICAgcmV0dXJuICFNb2R1bGUubm9JbWFnZURlY29kaW5nICYmIC9cLihqcGd8anBlZ3xw
bmd8Ym1wKSQvaS50ZXN0KG5hbWUpOwotICAgICAgICB9OwotICAgICAgICBpbWFnZVBsdWdpblsn
aGFuZGxlJ10gPSBmdW5jdGlvbihieXRlQXJyYXksIG5hbWUsIG9ubG9hZCwgb25lcnJvcikgewot
ICAgICAgICAgIHZhciBiID0gbnVsbDsKLSAgICAgICAgICBpZiAoQnJvd3Nlci5oYXNCbG9iQ29u
c3RydWN0b3IpIHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIGIgPSBuZXcgQmxv
YihbYnl0ZUFycmF5XSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpIH0pOwotICAg
ICAgICAgICAgICBpZiAoYi5zaXplICE9PSBieXRlQXJyYXkubGVuZ3RoKSB7IC8vIFNhZmFyaSBi
dWcgIzExODYzMAotICAgICAgICAgICAgICAgIC8vIFNhZmFyaSdzIEJsb2IgY2FuIG9ubHkgdGFr
ZSBhbiBBcnJheUJ1ZmZlcgotICAgICAgICAgICAgICAgIGIgPSBuZXcgQmxvYihbKG5ldyBVaW50
OEFycmF5KGJ5dGVBcnJheSkpLmJ1ZmZlcl0sIHsgdHlwZTogQnJvd3Nlci5nZXRNaW1ldHlwZShu
YW1lKSB9KTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAg
ICAgICAgICAgIFJ1bnRpbWUud2Fybk9uY2UoJ0Jsb2IgY29uc3RydWN0b3IgcHJlc2VudCBidXQg
ZmFpbHM6ICcgKyBlICsgJzsgZmFsbGluZyBiYWNrIHRvIGJsb2IgYnVpbGRlcicpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoIWIpIHsKLSAgICAgICAgICAgIHZh
ciBiYiA9IG5ldyBCcm93c2VyLkJsb2JCdWlsZGVyKCk7Ci0gICAgICAgICAgICBiYi5hcHBlbmQo
KG5ldyBVaW50OEFycmF5KGJ5dGVBcnJheSkpLmJ1ZmZlcik7IC8vIHdlIG5lZWQgdG8gcGFzcyBh
IGJ1ZmZlciwgYW5kIG11c3QgY29weSB0aGUgYXJyYXkgdG8gZ2V0IHRoZSByaWdodCBkYXRhIHJh
bmdlCi0gICAgICAgICAgICBiID0gYmIuZ2V0QmxvYigpOwotICAgICAgICAgIH0KLSAgICAgICAg
ICB2YXIgdXJsID0gQnJvd3Nlci5VUkxPYmplY3QuY3JlYXRlT2JqZWN0VVJMKGIpOwotICAgICAg
ICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKLSAgICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICBhc3NlcnQoaW1nLmNvbXBsZXRlLCAnSW1hZ2UgJyArIG5hbWUg
KyAnIGNvdWxkIG5vdCBiZSBkZWNvZGVkJyk7Ci0gICAgICAgICAgICB2YXIgY2FudmFzID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Ci0gICAgICAgICAgICBjYW52YXMud2lkdGgg
PSBpbWcud2lkdGg7Ci0gICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaW1nLmhlaWdodDsKLSAg
ICAgICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICAgICAgICAg
IGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKLSAgICAgICAgICAgIE1vZHVsZVsicHJlbG9hZGVk
SW1hZ2VzIl1bbmFtZV0gPSBjYW52YXM7Ci0gICAgICAgICAgICBCcm93c2VyLlVSTE9iamVjdC5y
ZXZva2VPYmplY3RVUkwodXJsKTsKLSAgICAgICAgICAgIGlmIChvbmxvYWQpIG9ubG9hZChieXRl
QXJyYXkpOwotICAgICAgICAgIH07Ci0gICAgICAgICAgaW1nLm9uZXJyb3IgPSBmdW5jdGlvbihl
dmVudCkgewotICAgICAgICAgICAgY29uc29sZS5sb2coJ0ltYWdlICcgKyB1cmwgKyAnIGNvdWxk
IG5vdCBiZSBkZWNvZGVkJyk7Ci0gICAgICAgICAgICBpZiAob25lcnJvcikgb25lcnJvcigpOwot
ICAgICAgICAgIH07Ci0gICAgICAgICAgaW1nLnNyYyA9IHVybDsKLSAgICAgICAgfTsKLSAgICAg
ICAgTW9kdWxlWydwcmVsb2FkUGx1Z2lucyddLnB1c2goaW1hZ2VQbHVnaW4pOwotICAgICAgICB2
YXIgYXVkaW9QbHVnaW4gPSB7fTsKLSAgICAgICAgYXVkaW9QbHVnaW5bJ2NhbkhhbmRsZSddID0g
ZnVuY3Rpb24obmFtZSkgewotICAgICAgICAgIHJldHVybiAhTW9kdWxlLm5vQXVkaW9EZWNvZGlu
ZyAmJiBuYW1lLnN1YnN0cigtNCkgaW4geyAnLm9nZyc6IDEsICcud2F2JzogMSwgJy5tcDMnOiAx
IH07Ci0gICAgICAgIH07Ci0gICAgICAgIGF1ZGlvUGx1Z2luWydoYW5kbGUnXSA9IGZ1bmN0aW9u
KGJ5dGVBcnJheSwgbmFtZSwgb25sb2FkLCBvbmVycm9yKSB7Ci0gICAgICAgICAgdmFyIGRvbmUg
PSBmYWxzZTsKLSAgICAgICAgICBmdW5jdGlvbiBmaW5pc2goYXVkaW8pIHsKLSAgICAgICAgICAg
IGlmIChkb25lKSByZXR1cm47Ci0gICAgICAgICAgICBkb25lID0gdHJ1ZTsKLSAgICAgICAgICAg
IE1vZHVsZVsicHJlbG9hZGVkQXVkaW9zIl1bbmFtZV0gPSBhdWRpbzsKLSAgICAgICAgICAgIGlm
IChvbmxvYWQpIG9ubG9hZChieXRlQXJyYXkpOwotICAgICAgICAgIH0KLSAgICAgICAgICBmdW5j
dGlvbiBmYWlsKCkgewotICAgICAgICAgICAgaWYgKGRvbmUpIHJldHVybjsKLSAgICAgICAgICAg
IGRvbmUgPSB0cnVlOwotICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXVtuYW1l
XSA9IG5ldyBBdWRpbygpOyAvLyBlbXB0eSBzaGltCi0gICAgICAgICAgICBpZiAob25lcnJvcikg
b25lcnJvcigpOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoQnJvd3Nlci5oYXNCbG9iQ29u
c3RydWN0b3IpIHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIHZhciBiID0gbmV3
IEJsb2IoW2J5dGVBcnJheV0sIHsgdHlwZTogQnJvd3Nlci5nZXRNaW1ldHlwZShuYW1lKSB9KTsK
LSAgICAgICAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICAgICAgICByZXR1cm4gZmFpbCgpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIHVybCA9IEJyb3dzZXIuVVJMT2JqZWN0LmNy
ZWF0ZU9iamVjdFVSTChiKTsgLy8gWFhYIHdlIG5ldmVyIHJldm9rZSB0aGlzIQotICAgICAgICAg
ICAgdmFyIGF1ZGlvID0gbmV3IEF1ZGlvKCk7Ci0gICAgICAgICAgICBhdWRpby5hZGRFdmVudExp
c3RlbmVyKCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgeyBmaW5pc2goYXVkaW8pIH0sIGZh
bHNlKTsgLy8gdXNlIGFkZEV2ZW50TGlzdGVuZXIgZHVlIHRvIGNocm9taXVtIGJ1ZyAxMjQ5MjYK
LSAgICAgICAgICAgIGF1ZGlvLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICAg
ICAgICBpZiAoZG9uZSkgcmV0dXJuOwotICAgICAgICAgICAgICBjb25zb2xlLmxvZygnd2Fybmlu
ZzogYnJvd3NlciBjb3VsZCBub3QgZnVsbHkgZGVjb2RlIGF1ZGlvICcgKyBuYW1lICsgJywgdHJ5
aW5nIHNsb3dlciBiYXNlNjQgYXBwcm9hY2gnKTsKLSAgICAgICAgICAgICAgZnVuY3Rpb24gZW5j
b2RlNjQoZGF0YSkgewotICAgICAgICAgICAgICAgIHZhciBCQVNFID0gJ0FCQ0RFRkdISUpLTE1O
T1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nOwotICAg
ICAgICAgICAgICAgIHZhciBQQUQgPSAnPSc7Ci0gICAgICAgICAgICAgICAgdmFyIHJldCA9ICcn
OwotICAgICAgICAgICAgICAgIHZhciBsZWZ0Y2hhciA9IDA7Ci0gICAgICAgICAgICAgICAgdmFy
IGxlZnRiaXRzID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEu
bGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgIGxlZnRjaGFyID0gKGxlZnRjaGFyIDw8
IDgpIHwgZGF0YVtpXTsKLSAgICAgICAgICAgICAgICAgIGxlZnRiaXRzICs9IDg7Ci0gICAgICAg
ICAgICAgICAgICB3aGlsZSAobGVmdGJpdHMgPj0gNikgewotICAgICAgICAgICAgICAgICAgICB2
YXIgY3VyciA9IChsZWZ0Y2hhciA+PiAobGVmdGJpdHMtNikpICYgMHgzZjsKLSAgICAgICAgICAg
ICAgICAgICAgbGVmdGJpdHMgLT0gNjsKLSAgICAgICAgICAgICAgICAgICAgcmV0ICs9IEJBU0Vb
Y3Vycl07Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIGlmIChsZWZ0Yml0cyA9PSAyKSB7Ci0gICAgICAgICAgICAgICAgICByZXQgKz0gQkFT
RVsobGVmdGNoYXImMykgPDwgNF07Ci0gICAgICAgICAgICAgICAgICByZXQgKz0gUEFEICsgUEFE
OwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGVmdGJpdHMgPT0gNCkgewotICAgICAgICAg
ICAgICAgICAgcmV0ICs9IEJBU0VbKGxlZnRjaGFyJjB4ZikgPDwgMl07Ci0gICAgICAgICAgICAg
ICAgICByZXQgKz0gUEFEOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1
cm4gcmV0OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGF1ZGlvLnNyYyA9ICdkYXRh
OmF1ZGlvL3gtJyArIG5hbWUuc3Vic3RyKC0zKSArICc7YmFzZTY0LCcgKyBlbmNvZGU2NChieXRl
QXJyYXkpOwotICAgICAgICAgICAgICBmaW5pc2goYXVkaW8pOyAvLyB3ZSBkb24ndCB3YWl0IGZv
ciBjb25maXJtYXRpb24gdGhpcyB3b3JrZWQgLSBidXQgaXQncyB3b3J0aCB0cnlpbmcKLSAgICAg
ICAgICAgIH07Ci0gICAgICAgICAgICBhdWRpby5zcmMgPSB1cmw7Ci0gICAgICAgICAgICAvLyB3
b3JrYXJvdW5kIGZvciBjaHJvbWUgYnVnIDEyNDkyNiAtIHdlIGRvIG5vdCBhbHdheXMgZ2V0IG9u
Y2FucGxheXRocm91Z2ggb3Igb25lcnJvcgotICAgICAgICAgICAgQnJvd3Nlci5zYWZlU2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgZmluaXNoKGF1ZGlvKTsgLy8gdHJ5IHRv
IHVzZSBpdCBldmVuIHRob3VnaCBpdCBpcyBub3QgbmVjZXNzYXJpbHkgcmVhZHkgdG8gcGxheQot
ICAgICAgICAgICAgfSwgMTAwMDApOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gZmFpbCgpOwotICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAgTW9kdWxlWydw
cmVsb2FkUGx1Z2lucyddLnB1c2goYXVkaW9QbHVnaW4pOwotICAgICAgICAvLyBDYW52YXMgZXZl
bnQgc2V0dXAKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAg
IGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxvY2sgPSBjYW52YXNbJ3JlcXVlc3RQb2ludGVyTG9jaydd
IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXNbJ21velJlcXVl
c3RQb2ludGVyTG9jayddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
YW52YXNbJ3dlYmtpdFJlcXVlc3RQb2ludGVyTG9jayddOwotICAgICAgICBjYW52YXMuZXhpdFBv
aW50ZXJMb2NrID0gZG9jdW1lbnRbJ2V4aXRQb2ludGVyTG9jayddIHx8Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFsnbW96RXhpdFBvaW50ZXJMb2NrJ10gfHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wyd3ZWJraXRFeGl0UG9pbnRl
ckxvY2snXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKXt9
OyAvLyBuby1vcCBpZiBmdW5jdGlvbiBkb2VzIG5vdCBleGlzdAotICAgICAgICBjYW52YXMuZXhp
dFBvaW50ZXJMb2NrID0gY2FudmFzLmV4aXRQb2ludGVyTG9jay5iaW5kKGRvY3VtZW50KTsKLSAg
ICAgICAgZnVuY3Rpb24gcG9pbnRlckxvY2tDaGFuZ2UoKSB7Ci0gICAgICAgICAgQnJvd3Nlci5w
b2ludGVyTG9jayA9IGRvY3VtZW50Wydwb2ludGVyTG9ja0VsZW1lbnQnXSA9PT0gY2FudmFzIHx8
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pQb2ludGVyTG9j
a0VsZW1lbnQnXSA9PT0gY2FudmFzIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50Wyd3ZWJraXRQb2ludGVyTG9ja0VsZW1lbnQnXSA9PT0gY2FudmFzOwotICAgICAg
ICB9Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJsb2NrY2hhbmdl
JywgcG9pbnRlckxvY2tDaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcignbW96cG9pbnRlcmxvY2tjaGFuZ2UnLCBwb2ludGVyTG9ja0NoYW5nZSwgZmFsc2Up
OwotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRwb2ludGVybG9ja2No
YW5nZScsIHBvaW50ZXJMb2NrQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgIGlmIChNb2R1bGVbJ2Vs
ZW1lbnRQb2ludGVyTG9jayddKSB7Ci0gICAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgZnVuY3Rpb24oZXYpIHsKLSAgICAgICAgICAgIGlmICghQnJvd3Nlci5wb2ludGVy
TG9jayAmJiBjYW52YXMucmVxdWVzdFBvaW50ZXJMb2NrKSB7Ci0gICAgICAgICAgICAgIGNhbnZh
cy5yZXF1ZXN0UG9pbnRlckxvY2soKTsKLSAgICAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9LCBmYWxzZSk7Ci0gICAgICAgIH0KLSAgICAg
IH0sY3JlYXRlQ29udGV4dDpmdW5jdGlvbiAoY2FudmFzLCB1c2VXZWJHTCwgc2V0SW5Nb2R1bGUp
IHsKLSAgICAgICAgdmFyIGN0eDsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBpZiAodXNlV2Vi
R0wpIHsKLSAgICAgICAgICAgIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCdleHBlcmltZW50YWwt
d2ViZ2wnLCB7Ci0gICAgICAgICAgICAgIGFscGhhOiBmYWxzZQotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcy
ZCcpOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoIWN0eCkgdGhyb3cgJzooJzsKLSAgICAg
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIE1vZHVsZS5wcmludCgnQ291bGQgbm90IGNyZWF0
ZSBjYW52YXMgLSAnICsgZSk7Ci0gICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKHVzZVdlYkdMKSB7Ci0gICAgICAgICAgLy8gU2V0IHRoZSBiYWNrZ3JvdW5kIG9m
IHRoZSBXZWJHTCBjYW52YXMgdG8gYmxhY2sKLSAgICAgICAgICBjYW52YXMuc3R5bGUuYmFja2dy
b3VuZENvbG9yID0gImJsYWNrIjsKLSAgICAgICAgICAvLyBXYXJuIG9uIGNvbnRleHQgbG9zcwot
ICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCd3ZWJnbGNvbnRleHRsb3N0JywgZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIGFsZXJ0KCdXZWJHTCBjb250ZXh0IGxvc3QuIFlv
dSB3aWxsIG5lZWQgdG8gcmVsb2FkIHRoZSBwYWdlLicpOwotICAgICAgICAgIH0sIGZhbHNlKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoc2V0SW5Nb2R1bGUpIHsKLSAgICAgICAgICBNb2R1bGUu
Y3R4ID0gY3R4OwotICAgICAgICAgIE1vZHVsZS51c2VXZWJHTCA9IHVzZVdlYkdMOwotICAgICAg
ICAgIEJyb3dzZXIubW9kdWxlQ29udGV4dENyZWF0ZWRDYWxsYmFja3MuZm9yRWFjaChmdW5jdGlv
bihjYWxsYmFjaykgeyBjYWxsYmFjaygpIH0pOwotICAgICAgICAgIEJyb3dzZXIuaW5pdCgpOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjdHg7Ci0gICAgICB9LGRlc3Ryb3lDb250ZXh0OmZ1
bmN0aW9uIChjYW52YXMsIHVzZVdlYkdMLCBzZXRJbk1vZHVsZSkge30sZnVsbFNjcmVlbkhhbmRs
ZXJzSW5zdGFsbGVkOmZhbHNlLGxvY2tQb2ludGVyOnVuZGVmaW5lZCxyZXNpemVDYW52YXM6dW5k
ZWZpbmVkLHJlcXVlc3RGdWxsU2NyZWVuOmZ1bmN0aW9uIChsb2NrUG9pbnRlciwgcmVzaXplQ2Fu
dmFzKSB7Ci0gICAgICAgIEJyb3dzZXIubG9ja1BvaW50ZXIgPSBsb2NrUG9pbnRlcjsKLSAgICAg
ICAgQnJvd3Nlci5yZXNpemVDYW52YXMgPSByZXNpemVDYW52YXM7Ci0gICAgICAgIGlmICh0eXBl
b2YgQnJvd3Nlci5sb2NrUG9pbnRlciA9PT0gJ3VuZGVmaW5lZCcpIEJyb3dzZXIubG9ja1BvaW50
ZXIgPSB0cnVlOwotICAgICAgICBpZiAodHlwZW9mIEJyb3dzZXIucmVzaXplQ2FudmFzID09PSAn
dW5kZWZpbmVkJykgQnJvd3Nlci5yZXNpemVDYW52YXMgPSBmYWxzZTsKLSAgICAgICAgdmFyIGNh
bnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIGZ1bmN0aW9uIGZ1bGxTY3JlZW5DaGFu
Z2UoKSB7Ci0gICAgICAgICAgQnJvd3Nlci5pc0Z1bGxTY3JlZW4gPSBmYWxzZTsKLSAgICAgICAg
ICBpZiAoKGRvY3VtZW50Wyd3ZWJraXRGdWxsU2NyZWVuRWxlbWVudCddIHx8IGRvY3VtZW50Wyd3
ZWJraXRGdWxsc2NyZWVuRWxlbWVudCddIHx8Ci0gICAgICAgICAgICAgICBkb2N1bWVudFsnbW96
RnVsbFNjcmVlbkVsZW1lbnQnXSB8fCBkb2N1bWVudFsnbW96RnVsbHNjcmVlbkVsZW1lbnQnXSB8
fAotICAgICAgICAgICAgICAgZG9jdW1lbnRbJ2Z1bGxTY3JlZW5FbGVtZW50J10gfHwgZG9jdW1l
bnRbJ2Z1bGxzY3JlZW5FbGVtZW50J10pID09PSBjYW52YXMpIHsKLSAgICAgICAgICAgIGNhbnZh
cy5jYW5jZWxGdWxsU2NyZWVuID0gZG9jdW1lbnRbJ2NhbmNlbEZ1bGxTY3JlZW4nXSB8fAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFsnbW96Q2FuY2VsRnVs
bFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50Wyd3ZWJraXRDYW5jZWxGdWxsU2NyZWVuJ107Ci0gICAgICAgICAgICBjYW52YXMuY2FuY2Vs
RnVsbFNjcmVlbiA9IGNhbnZhcy5jYW5jZWxGdWxsU2NyZWVuLmJpbmQoZG9jdW1lbnQpOwotICAg
ICAgICAgICAgaWYgKEJyb3dzZXIubG9ja1BvaW50ZXIpIGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxv
Y2soKTsKLSAgICAgICAgICAgIEJyb3dzZXIuaXNGdWxsU2NyZWVuID0gdHJ1ZTsKLSAgICAgICAg
ICAgIGlmIChCcm93c2VyLnJlc2l6ZUNhbnZhcykgQnJvd3Nlci5zZXRGdWxsU2NyZWVuQ2FudmFz
U2l6ZSgpOwotICAgICAgICAgIH0gZWxzZSBpZiAoQnJvd3Nlci5yZXNpemVDYW52YXMpewotICAg
ICAgICAgICAgQnJvd3Nlci5zZXRXaW5kb3dlZENhbnZhc1NpemUoKTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgaWYgKE1vZHVsZVsnb25GdWxsU2NyZWVuJ10pIE1vZHVsZVsnb25GdWxsU2NyZWVu
J10oQnJvd3Nlci5pc0Z1bGxTY3JlZW4pOwotICAgICAgICB9Ci0gICAgICAgIGlmICghQnJvd3Nl
ci5mdWxsU2NyZWVuSGFuZGxlcnNJbnN0YWxsZWQpIHsKLSAgICAgICAgICBCcm93c2VyLmZ1bGxT
Y3JlZW5IYW5kbGVyc0luc3RhbGxlZCA9IHRydWU7Ci0gICAgICAgICAgZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcignZnVsbHNjcmVlbmNoYW5nZScsIGZ1bGxTY3JlZW5DaGFuZ2UsIGZhbHNlKTsK
LSAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3pmdWxsc2NyZWVuY2hhbmdl
JywgZnVsbFNjcmVlbkNoYW5nZSwgZmFsc2UpOwotICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCBmdWxsU2NyZWVuQ2hhbmdlLCBmYWxz
ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgY2FudmFzLnJlcXVlc3RGdWxsU2NyZWVuID0gY2FudmFz
WydyZXF1ZXN0RnVsbFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhbnZhc1snbW96UmVxdWVzdEZ1bGxTY3JlZW4nXSB8fAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY2FudmFzWyd3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiddID8gZnVu
Y3Rpb24oKSB7IGNhbnZhc1snd2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4nXShFbGVtZW50WydBTExP
V19LRVlCT0FSRF9JTlBVVCddKSB9IDogbnVsbCk7Ci0gICAgICAgIGNhbnZhcy5yZXF1ZXN0RnVs
bFNjcmVlbigpOwotICAgICAgfSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWU6ZnVuY3Rpb24gKGZ1bmMp
IHsKLSAgICAgICAgaWYgKCF3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKSB7Ci0gICAgICAg
ICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHdpbmRvd1sncmVxdWVzdEFuaW1hdGlv
bkZyYW1lJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lu
ZG93Wydtb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ3dlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSdd
IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1snbXNS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aW5kb3dbJ29SZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ3NldFRpbWVvdXQnXTsKLSAg
ICAgICAgfQotICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmMpOwotICAg
ICAgfSxzYWZlQ2FsbGJhY2s6ZnVuY3Rpb24gKGZ1bmMpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKCkgewotICAgICAgICAgIGlmICghQUJPUlQpIHJldHVybiBmdW5jLmFwcGx5KG51bGwsIGFy
Z3VtZW50cyk7Ci0gICAgICAgIH07Ci0gICAgICB9LHNhZmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWU6
ZnVuY3Rpb24gKGZ1bmMpIHsKLSAgICAgICAgcmV0dXJuIEJyb3dzZXIucmVxdWVzdEFuaW1hdGlv
bkZyYW1lKGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlmICghQUJPUlQpIGZ1bmMoKTsKLSAgICAg
ICAgfSk7Ci0gICAgICB9LHNhZmVTZXRUaW1lb3V0OmZ1bmN0aW9uIChmdW5jLCB0aW1lb3V0KSB7
Ci0gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlmICgh
QUJPUlQpIGZ1bmMoKTsKLSAgICAgICAgfSwgdGltZW91dCk7Ci0gICAgICB9LHNhZmVTZXRJbnRl
cnZhbDpmdW5jdGlvbiAoZnVuYywgdGltZW91dCkgewotICAgICAgICByZXR1cm4gc2V0SW50ZXJ2
YWwoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOwotICAgICAgICB9
LCB0aW1lb3V0KTsKLSAgICAgIH0sZ2V0TWltZXR5cGU6ZnVuY3Rpb24gKG5hbWUpIHsKLSAgICAg
ICAgcmV0dXJuIHsKLSAgICAgICAgICAnanBnJzogJ2ltYWdlL2pwZWcnLAotICAgICAgICAgICdq
cGVnJzogJ2ltYWdlL2pwZWcnLAotICAgICAgICAgICdwbmcnOiAnaW1hZ2UvcG5nJywKLSAgICAg
ICAgICAnYm1wJzogJ2ltYWdlL2JtcCcsCi0gICAgICAgICAgJ29nZyc6ICdhdWRpby9vZ2cnLAot
ICAgICAgICAgICd3YXYnOiAnYXVkaW8vd2F2JywKLSAgICAgICAgICAnbXAzJzogJ2F1ZGlvL21w
ZWcnCi0gICAgICAgIH1bbmFtZS5zdWJzdHIobmFtZS5sYXN0SW5kZXhPZignLicpKzEpXTsKLSAg
ICAgIH0sZ2V0VXNlck1lZGlhOmZ1bmN0aW9uIChmdW5jKSB7Ci0gICAgICAgIGlmKCF3aW5kb3cu
Z2V0VXNlck1lZGlhKSB7Ci0gICAgICAgICAgd2luZG93LmdldFVzZXJNZWRpYSA9IG5hdmlnYXRv
clsnZ2V0VXNlck1lZGlhJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2
aWdhdG9yWydtb3pHZXRVc2VyTWVkaWEnXTsKLSAgICAgICAgfQotICAgICAgICB3aW5kb3cuZ2V0
VXNlck1lZGlhKGZ1bmMpOwotICAgICAgfSxnZXRNb3ZlbWVudFg6ZnVuY3Rpb24gKGV2ZW50KSB7
Ci0gICAgICAgIHJldHVybiBldmVudFsnbW92ZW1lbnRYJ10gfHwKLSAgICAgICAgICAgICAgIGV2
ZW50Wydtb3pNb3ZlbWVudFgnXSB8fAotICAgICAgICAgICAgICAgZXZlbnRbJ3dlYmtpdE1vdmVt
ZW50WCddIHx8Ci0gICAgICAgICAgICAgICAwOwotICAgICAgfSxnZXRNb3ZlbWVudFk6ZnVuY3Rp
b24gKGV2ZW50KSB7Ci0gICAgICAgIHJldHVybiBldmVudFsnbW92ZW1lbnRZJ10gfHwKLSAgICAg
ICAgICAgICAgIGV2ZW50Wydtb3pNb3ZlbWVudFknXSB8fAotICAgICAgICAgICAgICAgZXZlbnRb
J3dlYmtpdE1vdmVtZW50WSddIHx8Ci0gICAgICAgICAgICAgICAwOwotICAgICAgfSxtb3VzZVg6
MCxtb3VzZVk6MCxtb3VzZU1vdmVtZW50WDowLG1vdXNlTW92ZW1lbnRZOjAsY2FsY3VsYXRlTW91
c2VFdmVudDpmdW5jdGlvbiAoZXZlbnQpIHsgLy8gZXZlbnQgc2hvdWxkIGJlIG1vdXNlbW92ZSwg
bW91c2Vkb3duIG9yIG1vdXNldXAKLSAgICAgICAgaWYgKEJyb3dzZXIucG9pbnRlckxvY2spIHsK
LSAgICAgICAgICAvLyBXaGVuIHRoZSBwb2ludGVyIGlzIGxvY2tlZCwgY2FsY3VsYXRlIHRoZSBj
b29yZGluYXRlcwotICAgICAgICAgIC8vIGJhc2VkIG9uIHRoZSBtb3ZlbWVudCBvZiB0aGUgbW91
c2UuCi0gICAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgRmlyZWZveCBidWcgNzY0NDk4Ci0gICAg
ICAgICAgaWYgKGV2ZW50LnR5cGUgIT0gJ21vdXNlbW92ZScgJiYKLSAgICAgICAgICAgICAgKCdt
b3pNb3ZlbWVudFgnIGluIGV2ZW50KSkgewotICAgICAgICAgICAgQnJvd3Nlci5tb3VzZU1vdmVt
ZW50WCA9IEJyb3dzZXIubW91c2VNb3ZlbWVudFkgPSAwOwotICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1lbnRYID0gQnJvd3Nlci5nZXRNb3ZlbWVudFgo
ZXZlbnQpOwotICAgICAgICAgICAgQnJvd3Nlci5tb3VzZU1vdmVtZW50WSA9IEJyb3dzZXIuZ2V0
TW92ZW1lbnRZKGV2ZW50KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gY2hlY2sgaWYgU0RM
IGlzIGF2YWlsYWJsZQotICAgICAgICAgIGlmICh0eXBlb2YgU0RMICE9ICJ1bmRlZmluZWQiKSB7
Ci0gICAgICAgICAgCUJyb3dzZXIubW91c2VYID0gU0RMLm1vdXNlWCArIEJyb3dzZXIubW91c2VN
b3ZlbWVudFg7Ci0gICAgICAgICAgCUJyb3dzZXIubW91c2VZID0gU0RMLm1vdXNlWSArIEJyb3dz
ZXIubW91c2VNb3ZlbWVudFk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAJLy8ganVz
dCBhZGQgdGhlIG1vdXNlIGRlbHRhIHRvIHRoZSBjdXJyZW50IGFic29sdXQgbW91c2UgcG9zaXRp
b24KLSAgICAgICAgICAJLy8gRklYTUU6IGlkZWFsbHkgdGhpcyBzaG91bGQgYmUgY2xhbXBlZCBh
Z2FpbnN0IHRoZSBjYW52YXMgc2l6ZSBhbmQgemVybwotICAgICAgICAgIAlCcm93c2VyLm1vdXNl
WCArPSBCcm93c2VyLm1vdXNlTW92ZW1lbnRYOwotICAgICAgICAgIAlCcm93c2VyLm1vdXNlWSAr
PSBCcm93c2VyLm1vdXNlTW92ZW1lbnRZOwotICAgICAgICAgIH0gICAgICAgIAotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgIC8vIE90aGVyd2lzZSwgY2FsY3VsYXRlIHRoZSBtb3ZlbWVudCBi
YXNlZCBvbiB0aGUgY2hhbmdlcwotICAgICAgICAgIC8vIGluIHRoZSBjb29yZGluYXRlcy4KLSAg
ICAgICAgICB2YXIgcmVjdCA9IE1vZHVsZVsiY2FudmFzIl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7Ci0gICAgICAgICAgdmFyIHgsIHk7Ci0gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT0gJ3Rv
dWNoc3RhcnQnIHx8Ci0gICAgICAgICAgICAgIGV2ZW50LnR5cGUgPT0gJ3RvdWNoZW5kJyB8fAot
ICAgICAgICAgICAgICBldmVudC50eXBlID09ICd0b3VjaG1vdmUnKSB7Ci0gICAgICAgICAgICB2
YXIgdCA9IGV2ZW50LnRvdWNoZXMuaXRlbSgwKTsKLSAgICAgICAgICAgIGlmICh0KSB7Ci0gICAg
ICAgICAgICAgIHggPSB0LnBhZ2VYIC0gKHdpbmRvdy5zY3JvbGxYICsgcmVjdC5sZWZ0KTsKLSAg
ICAgICAgICAgICAgeSA9IHQucGFnZVkgLSAod2luZG93LnNjcm9sbFkgKyByZWN0LnRvcCk7Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHggPSBldmVudC5wYWdlWCAtICh3aW5k
b3cuc2Nyb2xsWCArIHJlY3QubGVmdCk7Ci0gICAgICAgICAgICB5ID0gZXZlbnQucGFnZVkgLSAo
d2luZG93LnNjcm9sbFkgKyByZWN0LnRvcCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIHRo
ZSBjYW52YXMgbWlnaHQgYmUgQ1NTLXNjYWxlZCBjb21wYXJlZCB0byBpdHMgYmFja2J1ZmZlcjsK
LSAgICAgICAgICAvLyBTREwtdXNpbmcgY29udGVudCB3aWxsIHdhbnQgbW91c2UgY29vcmRpbmF0
ZXMgaW4gdGVybXMKLSAgICAgICAgICAvLyBvZiBiYWNrYnVmZmVyIHVuaXRzLgotICAgICAgICAg
IHZhciBjdyA9IE1vZHVsZVsiY2FudmFzIl0ud2lkdGg7Ci0gICAgICAgICAgdmFyIGNoID0gTW9k
dWxlWyJjYW52YXMiXS5oZWlnaHQ7Ci0gICAgICAgICAgeCA9IHggKiAoY3cgLyByZWN0LndpZHRo
KTsKLSAgICAgICAgICB5ID0geSAqIChjaCAvIHJlY3QuaGVpZ2h0KTsKLSAgICAgICAgICBCcm93
c2VyLm1vdXNlTW92ZW1lbnRYID0geCAtIEJyb3dzZXIubW91c2VYOwotICAgICAgICAgIEJyb3dz
ZXIubW91c2VNb3ZlbWVudFkgPSB5IC0gQnJvd3Nlci5tb3VzZVk7Ci0gICAgICAgICAgQnJvd3Nl
ci5tb3VzZVggPSB4OwotICAgICAgICAgIEJyb3dzZXIubW91c2VZID0geTsKLSAgICAgICAgfQot
ICAgICAgfSx4aHJMb2FkOmZ1bmN0aW9uICh1cmwsIG9ubG9hZCwgb25lcnJvcikgewotICAgICAg
ICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgICAgIHhoci5vcGVuKCdHRVQn
LCB1cmwsIHRydWUpOwotICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsK
LSAgICAgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlmICh4aHIuc3Rh
dHVzID09IDIwMCB8fCAoeGhyLnN0YXR1cyA9PSAwICYmIHhoci5yZXNwb25zZSkpIHsgLy8gZmls
ZSBVUkxzIGNhbiByZXR1cm4gMAotICAgICAgICAgICAgb25sb2FkKHhoci5yZXNwb25zZSk7Ci0g
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG9uZXJyb3IoKTsKLSAgICAgICAgICB9Ci0g
ICAgICAgIH07Ci0gICAgICAgIHhoci5vbmVycm9yID0gb25lcnJvcjsKLSAgICAgICAgeGhyLnNl
bmQobnVsbCk7Ci0gICAgICB9LGFzeW5jTG9hZDpmdW5jdGlvbiAodXJsLCBvbmxvYWQsIG9uZXJy
b3IsIG5vUnVuRGVwKSB7Ci0gICAgICAgIEJyb3dzZXIueGhyTG9hZCh1cmwsIGZ1bmN0aW9uKGFy
cmF5QnVmZmVyKSB7Ci0gICAgICAgICAgYXNzZXJ0KGFycmF5QnVmZmVyLCAnTG9hZGluZyBkYXRh
IGZpbGUgIicgKyB1cmwgKyAnIiBmYWlsZWQgKG5vIGFycmF5QnVmZmVyKS4nKTsKLSAgICAgICAg
ICBvbmxvYWQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTsKLSAgICAgICAgICBpZiAoIW5v
UnVuRGVwKSByZW1vdmVSdW5EZXBlbmRlbmN5KCdhbCAnICsgdXJsKTsKLSAgICAgICAgfSwgZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICBpZiAob25lcnJvcikgewotICAgICAgICAgICAgb25l
cnJvcigpOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aHJvdyAnTG9hZGluZyBk
YXRhIGZpbGUgIicgKyB1cmwgKyAnIiBmYWlsZWQuJzsKLSAgICAgICAgICB9Ci0gICAgICAgIH0p
OwotICAgICAgICBpZiAoIW5vUnVuRGVwKSBhZGRSdW5EZXBlbmRlbmN5KCdhbCAnICsgdXJsKTsK
LSAgICAgIH0scmVzaXplTGlzdGVuZXJzOltdLHVwZGF0ZVJlc2l6ZUxpc3RlbmVyczpmdW5jdGlv
biAoKSB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBC
cm93c2VyLnJlc2l6ZUxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVyKSB7Ci0gICAg
ICAgICAgbGlzdGVuZXIoY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKLSAgICAgICAgfSk7
Ci0gICAgICB9LHNldENhbnZhc1NpemU6ZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQsIG5vVXBkYXRl
cykgewotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgY2Fu
dmFzLndpZHRoID0gd2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7Ci0gICAg
ICAgIGlmICghbm9VcGRhdGVzKSBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVycygpOwotICAg
ICAgfSx3aW5kb3dlZFdpZHRoOjAsd2luZG93ZWRIZWlnaHQ6MCxzZXRGdWxsU2NyZWVuQ2FudmFz
U2l6ZTpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcydd
OwotICAgICAgICB0aGlzLndpbmRvd2VkV2lkdGggPSBjYW52YXMud2lkdGg7Ci0gICAgICAgIHRo
aXMud2luZG93ZWRIZWlnaHQgPSBjYW52YXMuaGVpZ2h0OwotICAgICAgICBjYW52YXMud2lkdGgg
PSBzY3JlZW4ud2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBzY3JlZW4uaGVpZ2h0Owot
ICAgICAgICAvLyBjaGVjayBpZiBTREwgaXMgYXZhaWxhYmxlICAgCi0gICAgICAgIGlmICh0eXBl
b2YgU0RMICE9ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgIAl2YXIgZmxhZ3MgPSBIRUFQVTMyWygo
U0RMLnNjcmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+MildOwotICAgICAgICAJZmxhZ3Mg
PSBmbGFncyB8IDB4MDA4MDAwMDA7IC8vIHNldCBTRExfRlVMTFNDUkVFTiBmbGFnCi0gICAgICAg
IAlIRUFQMzJbKChTREwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV09ZmxhZ3MK
LSAgICAgICAgfQotICAgICAgICBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVycygpOwotICAg
ICAgfSxzZXRXaW5kb3dlZENhbnZhc1NpemU6ZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgY2Fu
dmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy53aW5k
b3dlZFdpZHRoOwotICAgICAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy53aW5kb3dlZEhlaWdodDsK
LSAgICAgICAgLy8gY2hlY2sgaWYgU0RMIGlzIGF2YWlsYWJsZSAgICAgICAKLSAgICAgICAgaWYg
KHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgCXZhciBmbGFncyA9IEhFQVBV
MzJbKChTREwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV07Ci0gICAgICAgIAlm
bGFncyA9IGZsYWdzICYgfjB4MDA4MDAwMDA7IC8vIGNsZWFyIFNETF9GVUxMU0NSRUVOIGZsYWcK
LSAgICAgICAgCUhFQVAzMlsoKFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIp
XT1mbGFncwotICAgICAgICB9Ci0gICAgICAgIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJz
KCk7Ci0gICAgICB9fTsKLV9sbHZtX2VoX2V4Y2VwdGlvbi5idWYgPSBhbGxvY2F0ZSgxMiwgInZv
aWQqIiwgQUxMT0NfU1RBVElDKTsKLUZTLnN0YXRpY0luaXQoKTtfX0FUSU5JVF9fLnVuc2hpZnQo
eyBmdW5jOiBmdW5jdGlvbigpIHsgaWYgKCFNb2R1bGVbIm5vRlNJbml0Il0gJiYgIUZTLmluaXQu
aW5pdGlhbGl6ZWQpIEZTLmluaXQoKSB9IH0pO19fQVRNQUlOX18ucHVzaCh7IGZ1bmM6IGZ1bmN0
aW9uKCkgeyBGUy5pZ25vcmVQZXJtaXNzaW9ucyA9IGZhbHNlIH0gfSk7X19BVEVYSVRfXy5wdXNo
KHsgZnVuYzogZnVuY3Rpb24oKSB7IEZTLnF1aXQoKSB9IH0pO01vZHVsZVsiRlNfY3JlYXRlRm9s
ZGVyIl0gPSBGUy5jcmVhdGVGb2xkZXI7TW9kdWxlWyJGU19jcmVhdGVQYXRoIl0gPSBGUy5jcmVh
dGVQYXRoO01vZHVsZVsiRlNfY3JlYXRlRGF0YUZpbGUiXSA9IEZTLmNyZWF0ZURhdGFGaWxlO01v
ZHVsZVsiRlNfY3JlYXRlUHJlbG9hZGVkRmlsZSJdID0gRlMuY3JlYXRlUHJlbG9hZGVkRmlsZTtN
b2R1bGVbIkZTX2NyZWF0ZUxhenlGaWxlIl0gPSBGUy5jcmVhdGVMYXp5RmlsZTtNb2R1bGVbIkZT
X2NyZWF0ZUxpbmsiXSA9IEZTLmNyZWF0ZUxpbms7TW9kdWxlWyJGU19jcmVhdGVEZXZpY2UiXSA9
IEZTLmNyZWF0ZURldmljZTsKLV9fX2Vycm5vX3N0YXRlID0gUnVudGltZS5zdGF0aWNBbGxvYyg0
KTsgSEVBUDMyWygoX19fZXJybm9fc3RhdGUpPj4yKV09MDsKLV9mZ2V0Yy5yZXQgPSBhbGxvY2F0
ZShbMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci1Nb2R1bGVbInJlcXVlc3RGdWxsU2NyZWVuIl0g
PSBmdW5jdGlvbihsb2NrUG9pbnRlciwgcmVzaXplQ2FudmFzKSB7IEJyb3dzZXIucmVxdWVzdEZ1
bGxTY3JlZW4obG9ja1BvaW50ZXIsIHJlc2l6ZUNhbnZhcykgfTsKLSAgTW9kdWxlWyJyZXF1ZXN0
QW5pbWF0aW9uRnJhbWUiXSA9IGZ1bmN0aW9uKGZ1bmMpIHsgQnJvd3Nlci5yZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoZnVuYykgfTsKLSAgTW9kdWxlWyJzZXRDYW52YXNTaXplIl0gPSBmdW5jdGlvbih3
aWR0aCwgaGVpZ2h0LCBub1VwZGF0ZXMpIHsgQnJvd3Nlci5zZXRDYW52YXNTaXplKHdpZHRoLCBo
ZWlnaHQsIG5vVXBkYXRlcykgfTsKLSAgTW9kdWxlWyJwYXVzZU1haW5Mb29wIl0gPSBmdW5jdGlv
bigpIHsgQnJvd3Nlci5tYWluTG9vcC5wYXVzZSgpIH07Ci0gIE1vZHVsZVsicmVzdW1lTWFpbkxv
b3AiXSA9IGZ1bmN0aW9uKCkgeyBCcm93c2VyLm1haW5Mb29wLnJlc3VtZSgpIH07Ci0gIE1vZHVs
ZVsiZ2V0VXNlck1lZGlhIl0gPSBmdW5jdGlvbigpIHsgQnJvd3Nlci5nZXRVc2VyTWVkaWEoKSB9
Ci1TVEFDS19CQVNFID0gU1RBQ0tUT1AgPSBSdW50aW1lLmFsaWduTWVtb3J5KFNUQVRJQ1RPUCk7
Ci1zdGF0aWNTZWFsZWQgPSB0cnVlOyAvLyBzZWFsIHRoZSBzdGF0aWMgcG9ydGlvbiBvZiBtZW1v
cnkKLVNUQUNLX01BWCA9IFNUQUNLX0JBU0UgKyA1MjQyODgwOwotRFlOQU1JQ19CQVNFID0gRFlO
QU1JQ1RPUCA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkoU1RBQ0tfTUFYKTsKLWFzc2VydChEWU5BTUlD
X0JBU0UgPCBUT1RBTF9NRU1PUlkpOyAvLyBTdGFjayBtdXN0IGZpdCBpbiBUT1RBTF9NRU1PUlk7
IGFsbG9jYXRpb25zIGZyb20gaGVyZSBvbiBtYXkgZW5sYXJnZSBUT1RBTF9NRU1PUlkKLSB2YXIg
Y3R0el9pOCA9IGFsbG9jYXRlKFs4LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwx
LDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEs
MCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDYsMCwxLDAsMiwwLDEsMCwzLDAsMSww
LDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAs
MywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNywwLDEsMCwy
LDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDUs
MCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiww
LDEsMCw2LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAs
MSwwLDIsMCwxLDAsNSwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwx
LDAsMywwLDEsMCwyLDAsMSwwXSwgImk4IiwgQUxMT0NfRFlOQU1JQyk7Ci12YXIgTWF0aF9taW4g
PSBNYXRoLm1pbjsKLWZ1bmN0aW9uIGludm9rZV92aWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUp
IHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpIl0oaW5kZXgsYTEsYTIsYTMs
YTQsYTUpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYm
IGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0g
IH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixh
NykgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaSJdKGluZGV4LGExLGEy
LGEzLGE0LGE1LGE2LGE3KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAn
bnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJd
KDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmkoaW5kZXgsYTEpIHsKLSAgdHJ5IHsK
LSAgICBNb2R1bGVbImR5bkNhbGxfdmkiXShpbmRleCxhMSk7Ci0gIH0gY2F0Y2goZSkgewotICAg
IGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwot
ICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaShp
bmRleCxhMSxhMikgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWkiXShpbmRleCxh
MSxhMik7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYg
ZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAg
fQotfQotZnVuY3Rpb24gaW52b2tlX2lpaShpbmRleCxhMSxhMikgewotICB0cnkgewotICAgIHJl
dHVybiBNb2R1bGVbImR5bkNhbGxfaWlpIl0oaW5kZXgsYTEsYTIpOwotICB9IGNhdGNoKGUpIHsK
LSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cg
ZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9p
aWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUpIHsKLSAgdHJ5IHsKLSAgICByZXR1cm4gTW9kdWxl
WyJkeW5DYWxsX2lpaWlpaSJdKGluZGV4LGExLGEyLGEzLGE0LGE1KTsKLSAgfSBjYXRjaChlKSB7
Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93
IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2Vf
aWkoaW5kZXgsYTEpIHsKLSAgdHJ5IHsKLSAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpIl0o
aW5kZXgsYTEpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXIn
ICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7
Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9paWlpKGluZGV4LGExLGEyLGEzKSB7Ci0gIHRyeSB7
Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpIl0oaW5kZXgsYTEsYTIsYTMpOwotICB9
IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25n
am1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0
aW9uIGludm9rZV92aWlpaWlmKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KSB7Ci0gIHRyeSB7Ci0g
ICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWYiXShpbmRleCxhMSxhMixhMyxhNCxhNSxhNik7Ci0g
IH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xv
bmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVu
Y3Rpb24gaW52b2tlX3ZpaWkoaW5kZXgsYTEsYTIsYTMpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVb
ImR5bkNhbGxfdmlpaSJdKGluZGV4LGExLGEyLGEzKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYg
KHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAg
YXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlp
KGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJk
eW5DYWxsX3ZpaWlpaWlpaSJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4KTsKLSAgfSBj
YXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2pt
cCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlv
biBpbnZva2VfdihpbmRleCkgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92Il0oaW5k
ZXgpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUg
IT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0K
LX0KLWZ1bmN0aW9uIGludm9rZV9paWlpaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcs
YTgpIHsKLSAgdHJ5IHsKLSAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWlpaSJdKGlu
ZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5
cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNt
WyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlpaShp
bmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSkgewotICB0cnkgewotICAgIE1vZHVsZVsi
ZHluQ2FsbF92aWlpaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgsYTkpOwot
ICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICds
b25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1
bmN0aW9uIGludm9rZV92aWlpaWlpZihpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNykgewotICB0
cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpZiJdKGluZGV4LGExLGEyLGEzLGE0LGE1
LGE2LGE3KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAm
JiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwot
ICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNikg
ewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMs
YTQsYTUsYTYpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXIn
ICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7
Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9paWlpaShpbmRleCxhMSxhMixhMyxhNCkgewotICB0
cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWkiXShpbmRleCxhMSxhMixhMyxh
NCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAh
PT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQot
fQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpKGluZGV4LGExLGEyLGEzLGE0KSB7Ci0gIHRyeSB7Ci0g
ICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQpOwotICB9IGNhdGNo
KGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykg
dGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGFz
bVByaW50SW50KHgsIHkpIHsKLSAgTW9kdWxlLnByaW50KCdpbnQgJyArIHggKyAnLCcgKyB5KTsv
LyArICcgJyArIG5ldyBFcnJvcigpLnN0YWNrKTsKLX0KLWZ1bmN0aW9uIGFzbVByaW50RmxvYXQo
eCwgeSkgewotICBNb2R1bGUucHJpbnQoJ2Zsb2F0ICcgKyB4ICsgJywnICsgeSk7Ly8gKyAnICcg
KyBuZXcgRXJyb3IoKS5zdGFjayk7Ci19Ci0vLyBFTVNDUklQVEVOX1NUQVJUX0FTTQotdmFyIGFz
bT0oZnVuY3Rpb24oZ2xvYmFsLGVudixidWZmZXIpeyJ1c2UgYXNtIjt2YXIgYT1uZXcgZ2xvYmFs
LkludDhBcnJheShidWZmZXIpO3ZhciBiPW5ldyBnbG9iYWwuSW50MTZBcnJheShidWZmZXIpO3Zh
ciBjPW5ldyBnbG9iYWwuSW50MzJBcnJheShidWZmZXIpO3ZhciBkPW5ldyBnbG9iYWwuVWludDhB
cnJheShidWZmZXIpO3ZhciBlPW5ldyBnbG9iYWwuVWludDE2QXJyYXkoYnVmZmVyKTt2YXIgZj1u
ZXcgZ2xvYmFsLlVpbnQzMkFycmF5KGJ1ZmZlcik7dmFyIGc9bmV3IGdsb2JhbC5GbG9hdDMyQXJy
YXkoYnVmZmVyKTt2YXIgaD1uZXcgZ2xvYmFsLkZsb2F0NjRBcnJheShidWZmZXIpO3ZhciBpPWVu
di5TVEFDS1RPUHwwO3ZhciBqPWVudi5TVEFDS19NQVh8MDt2YXIgaz1lbnYudGVtcERvdWJsZVB0
cnwwO3ZhciBsPWVudi5BQk9SVHwwO3ZhciBtPWVudi5jdHR6X2k4fDA7dmFyIG49ZW52LmN0bHpf
aTh8MDt2YXIgbz1lbnYuX3N0ZGlufDA7dmFyIHA9ZW52Ll9fWlRWTjEwX19jeHhhYml2MTE3X19j
bGFzc190eXBlX2luZm9FfDA7dmFyIHE9ZW52Ll9fWlRWTjEwX19jeHhhYml2MTIwX19zaV9jbGFz
c190eXBlX2luZm9FfDA7dmFyIHI9ZW52Ll9zdGRlcnJ8MDt2YXIgcz1lbnYuX19fZnNtdTh8MDt2
YXIgdD1lbnYuX3N0ZG91dHwwO3ZhciB1PWVudi5fX19kc29faGFuZGxlfDA7dmFyIHY9K2Vudi5O
YU47dmFyIHc9K2Vudi5JbmZpbml0eTt2YXIgeD0wO3ZhciB5PTA7dmFyIHo9MDt2YXIgQT0wO3Zh
ciBCPTAsQz0wLEQ9MCxFPTAsRj0wLjAsRz0wLEg9MCxJPTAsSj0wLjA7dmFyIEs9MDt2YXIgTD0w
O3ZhciBNPTA7dmFyIE49MDt2YXIgTz0wO3ZhciBQPTA7dmFyIFE9MDt2YXIgUj0wO3ZhciBTPTA7
dmFyIFQ9MDt2YXIgVT1nbG9iYWwuTWF0aC5mbG9vcjt2YXIgVj1nbG9iYWwuTWF0aC5hYnM7dmFy
IFc9Z2xvYmFsLk1hdGguc3FydDt2YXIgWD1nbG9iYWwuTWF0aC5wb3c7dmFyIFk9Z2xvYmFsLk1h
dGguY29zO3ZhciBaPWdsb2JhbC5NYXRoLnNpbjt2YXIgXz1nbG9iYWwuTWF0aC50YW47dmFyICQ9
Z2xvYmFsLk1hdGguYWNvczt2YXIgYWE9Z2xvYmFsLk1hdGguYXNpbjt2YXIgYWI9Z2xvYmFsLk1h
dGguYXRhbjt2YXIgYWM9Z2xvYmFsLk1hdGguYXRhbjI7dmFyIGFkPWdsb2JhbC5NYXRoLmV4cDt2
YXIgYWU9Z2xvYmFsLk1hdGgubG9nO3ZhciBhZj1nbG9iYWwuTWF0aC5jZWlsO3ZhciBhZz1nbG9i
YWwuTWF0aC5pbXVsO3ZhciBhaD1lbnYuYWJvcnQ7dmFyIGFpPWVudi5hc3NlcnQ7dmFyIGFqPWVu
di5hc21QcmludEludDt2YXIgYWs9ZW52LmFzbVByaW50RmxvYXQ7dmFyIGFsPWVudi5taW47dmFy
IGFtPWVudi5pbnZva2VfdmlpaWlpO3ZhciBhbj1lbnYuaW52b2tlX3ZpaWlpaWlpO3ZhciBhbz1l
bnYuaW52b2tlX3ZpO3ZhciBhcD1lbnYuaW52b2tlX3ZpaTt2YXIgYXE9ZW52Lmludm9rZV9paWk7
dmFyIGFyPWVudi5pbnZva2VfaWlpaWlpO3ZhciBhcz1lbnYuaW52b2tlX2lpO3ZhciBhdD1lbnYu
aW52b2tlX2lpaWk7dmFyIGF1PWVudi5pbnZva2VfdmlpaWlpZjt2YXIgYXY9ZW52Lmludm9rZV92
aWlpO3ZhciBhdz1lbnYuaW52b2tlX3ZpaWlpaWlpaTt2YXIgYXg9ZW52Lmludm9rZV92O3ZhciBh
eT1lbnYuaW52b2tlX2lpaWlpaWlpaTt2YXIgYXo9ZW52Lmludm9rZV92aWlpaWlpaWlpO3ZhciBh
QT1lbnYuaW52b2tlX3ZpaWlpaWlmO3ZhciBhQj1lbnYuaW52b2tlX3ZpaWlpaWk7dmFyIGFDPWVu
di5pbnZva2VfaWlpaWk7dmFyIGFEPWVudi5pbnZva2VfdmlpaWk7dmFyIGFFPWVudi5fbGx2bV9s
aWZldGltZV9lbmQ7dmFyIGFGPWVudi5fX3NjYW5TdHJpbmc7dmFyIGFHPWVudi5fcHRocmVhZF9t
dXRleF9sb2NrO3ZhciBhSD1lbnYuX19fY3hhX2VuZF9jYXRjaDt2YXIgYUk9ZW52Ll9zdHJ0b3Vs
bDt2YXIgYUo9ZW52Ll9faXNGbG9hdDt2YXIgYUs9ZW52Ll9mZmx1c2g7dmFyIGFMPWVudi5fX2lz
TGVhcFllYXI7dmFyIGFNPWVudi5fZndyaXRlO3ZhciBhTj1lbnYuX3NlbmQ7dmFyIGFPPWVudi5f
bGx2bV91bXVsX3dpdGhfb3ZlcmZsb3dfaTMyO3ZhciBhUD1lbnYuX2lzc3BhY2U7dmFyIGFRPWVu
di5fcmVhZDt2YXIgYVI9ZW52Ll9fX2N4YV9ndWFyZF9hYm9ydDt2YXIgYVM9ZW52Ll9uZXdsb2Nh
bGU7dmFyIGFUPWVudi5fX19neHhfcGVyc29uYWxpdHlfdjA7dmFyIGFVPWVudi5fcHRocmVhZF9j
b25kX3dhaXQ7dmFyIGFWPWVudi5fX19jeGFfcmV0aHJvdzt2YXIgYVc9ZW52Ll9fX3Jlc3VtZUV4
Y2VwdGlvbjt2YXIgYVg9ZW52Ll9sbHZtX3ZhX2VuZDt2YXIgYVk9ZW52Ll92c3NjYW5mO3ZhciBh
Wj1lbnYuX3NucHJpbnRmO3ZhciBhXz1lbnYuX2ZnZXRjO3ZhciBhJD1lbnYuX2F0ZXhpdDt2YXIg
YTA9ZW52Ll9fX2N4YV9mcmVlX2V4Y2VwdGlvbjt2YXIgYTE9ZW52Ll9fWjhjYXRjbG9zZVA4X25s
X2NhdGQ7dmFyIGEyPWVudi5fX19zZXRFcnJObzt2YXIgYTM9ZW52Ll9pc3hkaWdpdDt2YXIgYTQ9
ZW52Ll9leGl0O3ZhciBhNT1lbnYuX3NwcmludGY7dmFyIGE2PWVudi5fX19jdHlwZV9iX2xvYzt2
YXIgYTc9ZW52Ll9mcmVlbG9jYWxlO3ZhciBhOD1lbnYuX19aN2NhdG9wZW5QS2NpO3ZhciBhOT1l
bnYuX2FzcHJpbnRmO3ZhciBiYT1lbnYuX19fY3hhX2lzX251bWJlcl90eXBlO3ZhciBiYj1lbnYu
X19fY3hhX2RvZXNfaW5oZXJpdDt2YXIgYmM9ZW52Ll9fX2N4YV9ndWFyZF9hY3F1aXJlO3ZhciBi
ZD1lbnYuX19fbG9jYWxlX21iX2N1cl9tYXg7dmFyIGJlPWVudi5fX19jeGFfYmVnaW5fY2F0Y2g7
dmFyIGJmPWVudi5fcmVjdjt2YXIgYmc9ZW52Ll9fcGFyc2VJbnQ2NDt2YXIgYmg9ZW52Ll9fWlN0
MTh1bmNhdWdodF9leGNlcHRpb252O3ZhciBiaT1lbnYuX19fY3hhX2NhbGxfdW5leHBlY3RlZDt2
YXIgYmo9ZW52Ll9fZXhpdDt2YXIgYms9ZW52Ll9zdHJmdGltZTt2YXIgYmw9ZW52Ll9fX2N4YV90
aHJvdzt2YXIgYm09ZW52Ll9sbHZtX2VoX2V4Y2VwdGlvbjt2YXIgYm49ZW52Ll9wcmVhZDt2YXIg
Ym89ZW52Ll9fYXJyYXlTdW07dmFyIGJwPWVudi5fbG9nO3ZhciBicT1lbnYuX19fY3hhX2ZpbmRf
bWF0Y2hpbmdfY2F0Y2g7dmFyIGJyPWVudi5fX2Zvcm1hdFN0cmluZzt2YXIgYnM9ZW52Ll9wdGhy
ZWFkX2NvbmRfYnJvYWRjYXN0O3ZhciBidD1lbnYuX19aU3Q5dGVybWluYXRldjt2YXIgYnU9ZW52
Ll9wdGhyZWFkX211dGV4X3VubG9jazt2YXIgYnY9ZW52Ll9zYnJrO3ZhciBidz1lbnYuX19fZXJy
bm9fbG9jYXRpb247dmFyIGJ4PWVudi5fc3RyZXJyb3I7dmFyIGJ5PWVudi5fbGx2bV9saWZldGlt
ZV9zdGFydDt2YXIgYno9ZW52Ll9fX2N4YV9ndWFyZF9yZWxlYXNlO3ZhciBiQT1lbnYuX3VuZ2V0
Yzt2YXIgYkI9ZW52Ll91c2Vsb2NhbGU7dmFyIGJDPWVudi5fdnNucHJpbnRmO3ZhciBiRD1lbnYu
X3NzY2FuZjt2YXIgYkU9ZW52Ll9zeXNjb25mO3ZhciBiRj1lbnYuX2ZyZWFkO3ZhciBiRz1lbnYu
X2Fib3J0O3ZhciBiSD1lbnYuX2lzZGlnaXQ7dmFyIGJJPWVudi5fc3RydG9sbDt2YXIgYko9ZW52
Ll9fYWRkRGF5czt2YXIgYks9ZW52Ll9mbG9vcjt2YXIgYkw9ZW52Ll9fcmVhbGx5TmVnYXRpdmU7
dmFyIGJNPWVudi5fX1o3Y2F0Z2V0c1A4X25sX2NhdGRpaVBLYzt2YXIgYk49ZW52Ll93cml0ZTt2
YXIgYk89ZW52Ll9fX2N4YV9hbGxvY2F0ZV9leGNlcHRpb247dmFyIGJQPWVudi5fX19jeGFfcHVy
ZV92aXJ0dWFsO3ZhciBiUT1lbnYuX3Zhc3ByaW50Zjt2YXIgYlI9ZW52Ll9fX2N0eXBlX3RvdXBw
ZXJfbG9jO3ZhciBiUz1lbnYuX19fY3R5cGVfdG9sb3dlcl9sb2M7dmFyIGJUPWVudi5fcHdyaXRl
O3ZhciBiVT1lbnYuX3N0cmVycm9yX3I7dmFyIGJWPWVudi5fdGltZTsKLS8vIEVNU0NSSVBURU5f
U1RBUlRfRlVOQ1MKLWZ1bmN0aW9uIGNjKGEpe2E9YXwwO3ZhciBiPTA7Yj1pO2k9aSthfDA7aT1p
Kzc+PjM8PDM7cmV0dXJuIGJ8MH1mdW5jdGlvbiBjZCgpe3JldHVybiBpfDB9ZnVuY3Rpb24gY2Uo
YSl7YT1hfDA7aT1hfWZ1bmN0aW9uIGNmKGEsYil7YT1hfDA7Yj1ifDA7aWYoKHh8MCk9PTApe3g9
YTt5PWJ9fWZ1bmN0aW9uIGNnKGIpe2I9YnwwO2Fba109YVtiXTthW2srMXwwXT1hW2IrMXwwXTth
W2srMnwwXT1hW2IrMnwwXTthW2srM3wwXT1hW2IrM3wwXX1mdW5jdGlvbiBjaChiKXtiPWJ8MDth
W2tdPWFbYl07YVtrKzF8MF09YVtiKzF8MF07YVtrKzJ8MF09YVtiKzJ8MF07YVtrKzN8MF09YVti
KzN8MF07YVtrKzR8MF09YVtiKzR8MF07YVtrKzV8MF09YVtiKzV8MF07YVtrKzZ8MF09YVtiKzZ8
MF07YVtrKzd8MF09YVtiKzd8MF19ZnVuY3Rpb24gY2koYSl7YT1hfDA7Sz1hfWZ1bmN0aW9uIGNq
KGEpe2E9YXwwO0w9YX1mdW5jdGlvbiBjayhhKXthPWF8MDtNPWF9ZnVuY3Rpb24gY2woYSl7YT1h
fDA7Tj1hfWZ1bmN0aW9uIGNtKGEpe2E9YXwwO089YX1mdW5jdGlvbiBjbihhKXthPWF8MDtQPWF9
ZnVuY3Rpb24gY28oYSl7YT1hfDA7UT1hfWZ1bmN0aW9uIGNwKGEpe2E9YXwwO1I9YX1mdW5jdGlv
biBjcShhKXthPWF8MDtTPWF9ZnVuY3Rpb24gY3IoYSl7YT1hfDA7VD1hfWZ1bmN0aW9uIGNzKCl7
Y1txKzg+PjJdPTI1MDtjW3ErMTI+PjJdPTEyODtjW3ErMTY+PjJdPTYyO2NbcSsyMD4+Ml09MTUw
O2NbcSsyND4+Ml09ODtjW3ErMjg+PjJdPTEwO2NbcSszMj4+Ml09MjtjW3ErMzY+PjJdPTI7Y1tw
Kzg+PjJdPTI1MDtjW3ArMTI+PjJdPTI0NDtjW3ArMTY+PjJdPTYyO2NbcCsyMD4+Ml09MTUwO2Nb
cCsyND4+Ml09ODtjW3ArMjg+PjJdPTI2O2NbcCszMj4+Ml09NDtjW3ArMzY+PjJdPTg7Y1syMDM2
XT1wKzg7Y1syMDM4XT1wKzg7Y1syMDQwXT1xKzg7Y1syMDQ0XT1xKzg7Y1syMDQ4XT1xKzg7Y1sy
MDUyXT1xKzg7Y1syMDU2XT1xKzg7Y1syMDYwXT1wKzg7Y1syMDk0XT1xKzg7Y1syMDk4XT1xKzg7
Y1syMTYyXT1xKzg7Y1syMTY2XT1xKzg7Y1syMTg2XT1wKzg7Y1syMTg4XT1xKzg7Y1syMjI0XT1x
Kzg7Y1syMjI4XT1xKzg7Y1syMjY0XT1xKzg7Y1syMjY4XT1xKzg7Y1syMjg4XT1wKzg7Y1syMjkw
XT1wKzg7Y1syMjkyXT1xKzg7Y1syMjk2XT1xKzg7Y1syMzAwXT1xKzg7Y1syMzA0XT1wKzg7Y1sy
MzA2XT1wKzg7Y1syMzA4XT1wKzg7Y1syMzEwXT1wKzg7Y1syMzEyXT1wKzg7Y1syMzE0XT1wKzg7
Y1syMzE2XT1wKzg7Y1syMzQyXT1xKzg7Y1syMzQ2XT1wKzg7Y1syMzQ4XT1xKzg7Y1syMzUyXT1x
Kzg7Y1syMzU2XT1xKzg7Y1syMzYwXT1wKzg7Y1syMzYyXT1wKzg7Y1syMzY0XT1wKzg7Y1syMzY2
XT1wKzg7Y1syNDAwXT1wKzg7Y1syNDAyXT1wKzg7Y1syNDA0XT1wKzg7Y1syNDA2XT1xKzg7Y1sy
NDEwXT1xKzg7Y1syNDE0XT1xKzg7Y1syNDE4XT1xKzg7Y1syNDIyXT1xKzg7Y1syNDI2XT1xKzh9
ZnVuY3Rpb24gY3QoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1jW2E+PjJdfDA7aWYoKGJ8MCk9PTAp
e3JldHVybn1kPWErNHwwO2E9Y1tkPj4yXXwwO2lmKChifDApIT0oYXwwKSl7Y1tkPj4yXT1hKyh+
KChhLTgrKC1ifDApfDApPj4+Myk8PDMpfWtTKGIpO3JldHVybn1mdW5jdGlvbiBjdShhLGIsZCl7
YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MC4wLHc9MCx4PTAseT0wLjAsej0wLjA7ZD1pO2k9
aSsyNHwwO2U9ZHwwO2Y9ZCs4fDA7Zz1mfDA7Y1tnPj4yXT0wO2o9Zis0fDA7Y1tqPj4yXT0wO2s9
Zis4fDA7Y1trPj4yXT0wO2w9Yi1hfDA7bT1sPj4zO2Rve2lmKChtfDApPT0wKXtuPTA7bz0wfWVs
c2V7aWYobT4+PjA+NTM2ODcwOTExKXtpcihmKX1wPWtPKGwpfDA7Y1tqPj4yXT1wO2NbZz4+Ml09
cDtjW2s+PjJdPXArKG08PDMpO2lmKChhfDApPT0oYnwwKSl7bj1wO289cDticmVha31lbHNle3E9
YTtyPXB9ZG97aWYoKHJ8MCk9PTApe3M9MH1lbHNle2hbcj4+M109K2hbcT4+M107cz1jW2o+PjJd
fDB9cj1zKzh8MDtjW2o+PjJdPXI7cT1xKzh8MDt9d2hpbGUoKHF8MCkhPShifDApKTtuPWNbZz4+
Ml18MDtvPXJ9fXdoaWxlKDApO2NVKG4sbyxlKTtlPWNbZz4+Ml18MDtvPWNbaj4+Ml18MDtMMjM6
ZG97aWYoKGV8MCk9PShvfDApKXt0PWV9ZWxzZXtuPWU7d2hpbGUoMSl7dT1uKzh8MDtpZigodXww
KT09KG98MCkpe3Q9ZTticmVhayBMMjN9dj0raFtuPj4zXTtpZih2PT0raFt1Pj4zXSl7YnJlYWt9
ZWxzZXtuPXV9fWlmKChufDApPT0ob3wwKSl7dD1lO2JyZWFrfWVsc2V7dz11O3g9bjt5PXZ9TDI4
OndoaWxlKDEpe3I9dztkb3tyPXIrOHwwO2lmKChyfDApPT0ob3wwKSl7YnJlYWsgTDI4fXo9K2hb
cj4+M107fXdoaWxlKHk9PXopO2I9eCs4fDA7aFtiPj4zXT16O3c9cjt4PWI7eT16fXQ9Y1tnPj4y
XXwwfX13aGlsZSgwKTtpZigodHwwKT09MCl7aT1kO3JldHVybn1nPWNbaj4+Ml18MDtpZigodHww
KSE9KGd8MCkpe2Nbaj4+Ml09ZysofigoZy04KygtdHwwKXwwKT4+PjMpPDwzKX1rUyh0KTtpPWQ7
cmV0dXJufWZ1bmN0aW9uIGN2KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxn
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MC4wLHg9MC4wLHk9MCx6PTAuMDtkPWk7aT1pKzI0fDA7ZT1kfDA7Zj1kKzh8MDtnPWZ8MDtjW2c+
PjJdPTA7aj1mKzR8MDtjW2o+PjJdPTA7az1mKzh8MDtjW2s+PjJdPTA7bD1iLWF8MDttPWw+PjM7
ZG97aWYoKG18MCk9PTApe249MDtvPTB9ZWxzZXtpZihtPj4+MD41MzY4NzA5MTEpe2lyKGYpfXA9
a08obCl8MDtjW2o+PjJdPXA7Y1tnPj4yXT1wO2Nbaz4+Ml09cCsobTw8Myk7aWYoKGF8MCk9PShi
fDApKXtuPXA7bz1wO2JyZWFrfWVsc2V7cT1hO3I9cH1kb3tpZigocnwwKT09MCl7cz0wfWVsc2V7
aFtyPj4zXT0raFtxPj4zXTtzPWNbaj4+Ml18MH1yPXMrOHwwO2Nbaj4+Ml09cjtxPXErOHwwO313
aGlsZSgocXwwKSE9KGJ8MCkpO249Y1tnPj4yXXwwO289cn19d2hpbGUoMCk7Y1UobixvLGUpO2U9
Y1tnPj4yXXwwO289Y1tqPj4yXXwwO0w1ODpkb3tpZigoZXwwKT09KG98MCkpe3Q9ZTt1PTYyfWVs
c2V7bj1lO3doaWxlKDEpe3I9bis4fDA7aWYoKHJ8MCk9PShvfDApKXt2PWU7YnJlYWsgTDU4fWlm
KCtoW24+PjNdPT0raFtyPj4zXSl7dD1uO3U9NjI7YnJlYWt9ZWxzZXtuPXJ9fX19d2hpbGUoMCk7
ZG97aWYoKHV8MCk9PTYyKXtpZigodHwwKT09KG98MCkpe3Y9ZTticmVha31uPXQrMTZ8MDtpZigo
bnwwKT09KG98MCkpe3Y9ZTticmVha31yPW47bj10O3c9K2hbdD4+M107d2hpbGUoMSl7eD0raFty
Pj4zXTtpZih3PT14KXt5PW47ej13fWVsc2V7Yj1uKzh8MDtoW2I+PjNdPXg7eT1iO3o9eH1iPXIr
OHwwO2lmKChifDApPT0ob3wwKSl7YnJlYWt9ZWxzZXtyPWI7bj15O3c9en19dj1jW2c+PjJdfDB9
fXdoaWxlKDApO2lmKCh2fDApPT0wKXtpPWQ7cmV0dXJufWc9Y1tqPj4yXXwwO2lmKCh2fDApIT0o
Z3wwKSl7Y1tqPj4yXT1nKyh+KChnLTgrKC12fDApfDApPj4+Myk8PDMpfWtTKHYpO2k9ZDtyZXR1
cm59ZnVuY3Rpb24gY3coYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAs
Xz0wLCQ9MCxhYT0wLGFiPTA7ZD1pO2k9aSs4fDA7ZT1kfDA7Zj1lO2c9aTtpPWkrOHwwO2o9Zztr
PWk7aT1pKzF8MDtpPWkrNz4+Mzw8MztsPWk7aT1pKzh8MDttPWk7aT1pKzh8MDtuPWk7aT1pKzF8
MDtpPWkrNz4+Mzw8MztvPWk7aT1pKzI0fDA7cD1pO2k9aSs4fDA7cT1pO2k9aSs4fDA7cj1iO3M9
ci1hPj4zO2hbcD4+M109MC4wO3Q9b3wwO3U9bys0fDA7dj1vKzh8MDtrJChvfDAsMCwyNCk7ZG97
aWYoKHN8MCk9PTApe3c9MDt4PW8rMTZ8MDt5PTA7ej0wO0E9MDtCPTB9ZWxzZXtjTyhvLHMscCk7
Qz1jW3U+PjJdfDA7RD1vKzE2fDA7RT1jW0Q+PjJdfDA7Rj1jW3Y+PjJdfDA7Rz1DKyhFPj4+OTw8
Mil8MDtpZigoRnwwKT09KEN8MCkpe3c9MDt4PUQ7eT1GO3o9RTtBPUM7Qj1HO2JyZWFrfXc9KGNb
Rz4+Ml18MCkrKChFJjUxMSk8PDMpfDA7eD1EO3k9Rjt6PUU7QT1DO0I9R319d2hpbGUoMCk7aWYo
KGF8MCk9PShifDApKXtIPUE7ST16O0o9eX1lbHNle3k9YTthPXc7dz1CO3doaWxlKDEpe0I9YTt6
PShjW3c+PjJdfDApKzQwOTYtQj4+MztBPXk7cD1yLUE+PjM7aWYoKHB8MCk+KHp8MCkpe0s9eSso
ejw8Myl8MDtMPXp9ZWxzZXtLPWI7TD1wfWtfKGF8MCx5fDAsSy1BfDApO2Rve2lmKChMfDApPT0w
KXtNPWE7Tj13fWVsc2V7QT0oQi0oY1t3Pj4yXXwwKT4+MykrTHwwO2lmKChBfDApPjApe3A9dyso
KChBfDApLzUxMnwwKTw8Mil8MDtNPShjW3A+PjJdfDApKygoKEF8MCklNTEyfDApPDwzKXwwO049
cDticmVha31lbHNle3A9NTExLUF8MDtBPXcrKCgocHwwKS8tNTEyfDApPDwyKXwwO009KGNbQT4+
Ml18MCkrKDUxMS0oKHB8MCklNTEyfDApPDwzKXwwO049QTticmVha319fXdoaWxlKDApO2lmKChL
fDApPT0oYnwwKSl7YnJlYWt9ZWxzZXt5PUs7YT1NO3c9Tn19SD1jW3U+PjJdfDA7ST1jW3g+PjJd
fDA7Sj1jW3Y+PjJdfDB9Tj1IKyhJPj4+OTw8Mil8MDtpZigoSnwwKT09KEh8MCkpe0o9bysyMHww
O089MDtQPTA7UT0wO1I9MDtTPUo7VD1IKygoSSsoY1tKPj4yXXwwKXwwKT4+Pjk8PDIpfDB9ZWxz
ZXtKPW8rMjB8MDtvPUkrKGNbSj4+Ml18MCl8MDt3PUgrKG8+Pj45PDwyKXwwO089KGNbdz4+Ml18
MCkrKChvJjUxMSk8PDMpfDA7UD0wO1E9KGNbTj4+Ml18MCkrKChJJjUxMSk8PDMpfDA7Uj0wO1M9
SjtUPXd9Y1tsPj4yXT1SfE47Y1tsKzQ+PjJdPVE7Y1ttPj4yXT1QfFQ7Y1ttKzQ+PjJdPU87Y0so
bCxtLG4pO249Y1t1Pj4yXXwwO209Y1t4Pj4yXXwwO2w9bisobT4+Pjk8PDIpfDA7aWYoKGNbdj4+
Ml18MCk9PShufDApKXtVPTA7Vj0wO1c9MDtYPTA7WT1uKygobSsoY1tTPj4yXXwwKXwwKT4+Pjk8
PDIpfDB9ZWxzZXtPPW0rKGNbUz4+Ml18MCl8MDtUPW4rKE8+Pj45PDwyKXwwO1U9KGNbVD4+Ml18
MCkrKChPJjUxMSk8PDMpfDA7Vj0wO1c9KGNbbD4+Ml18MCkrKChtJjUxMSk8PDMpfDA7WD0wO1k9
VH1jW2U+PjJdPVh8bDtjW2UrND4+Ml09VztjW2c+PjJdPVZ8WTtjW2crND4+Ml09VTtjSShxLGYs
aixrKTtrPWNbdT4+Ml18MDtqPWNbeD4+Ml18MDtmPWsrKGo+Pj45PDwyKXwwO3E9Y1t2Pj4yXXww
O2lmKChxfDApPT0oa3wwKSl7Wj0wO189MH1lbHNle1U9KGNbUz4+Ml18MCkranwwO1o9KGNbayso
VT4+Pjk8PDIpPj4yXXwwKSsoKFUmNTExKTw8Myl8MDtfPShjW2Y+PjJdfDApKygoaiY1MTEpPDwz
KXwwfWo9ZjtmPV87TDExMjp3aGlsZSgxKXtfPWY7ZG97aWYoKF98MCk9PShafDApKXticmVhayBM
MTEyfV89Xys4fDA7fXdoaWxlKChfLShjW2o+PjJdfDApfDApIT00MDk2KTtfPWorNHwwO2o9Xztm
PWNbXz4+Ml18MH1jW1M+PjJdPTA7Uz1xLWs+PjI7aWYoUz4+PjA+Mil7Zj1rO3doaWxlKDEpe2tT
KGNbZj4+Ml18MCk7aj0oY1t1Pj4yXXwwKSs0fDA7Y1t1Pj4yXT1qO1o9Y1t2Pj4yXXwwO189Wi1q
Pj4yO2lmKF8+Pj4wPjIpe2Y9an1lbHNleyQ9XzthYT1qO2FiPVo7YnJlYWt9fX1lbHNleyQ9Uzth
YT1rO2FiPXF9c3dpdGNoKCR8MCl7Y2FzZSAxOntjW3g+PjJdPTI1NjticmVha307Y2FzZSAyOntj
W3g+PjJdPTUxMjticmVha307ZGVmYXVsdDp7fX1kb3tpZigoYWF8MCkhPShhYnwwKSl7eD1hYTtk
b3trUyhjW3g+PjJdfDApO3g9eCs0fDA7fXdoaWxlKCh4fDApIT0oYWJ8MCkpO3g9Y1t1Pj4yXXww
OyQ9Y1t2Pj4yXXwwO2lmKCh4fDApPT0oJHwwKSl7YnJlYWt9Y1t2Pj4yXT0kKyh+KCgkLTQrKC14
fDApfDApPj4+Mik8PDIpfX13aGlsZSgwKTt2PWNbdD4+Ml18MDtpZigodnwwKT09MCl7aT1kO3Jl
dHVybn1rUyh2KTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGN4KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAuMCx5PTAsej0wO2Q9aTtpPWkrNDh8MDtlPWR8MDtmPWQrOHww
O2c9ZCsxNnwwO2o9ZCsyNHwwO2s9ZCszMnwwO2w9a3wwO209aztjW2w+PjJdPW07bj1rKzR8MDtj
W24+PjJdPW07bz1rKzh8MDtjW28+PjJdPTA7aWYoKGF8MCk9PShifDApKXtwPW07cT0wfWVsc2V7
az1hO2E9bTtyPTA7d2hpbGUoMSl7cz1rTygxNil8MDt0PXM7dT1zKzh8MDtpZigodXwwKSE9MCl7
aFt1Pj4zXT0raFtrPj4zXX1jW2ErND4+Ml09dDtjW3M+PjJdPWNbbD4+Ml07Y1tsPj4yXT10O2Nb
cys0Pj4yXT1tO3Y9KGNbbz4+Ml18MCkrMXwwO2Nbbz4+Ml09djtzPWsrOHwwO2lmKChzfDApPT0o
YnwwKSl7YnJlYWt9ZWxzZXtrPXM7YT10O3I9dn19cD1jW24+PjJdfDA7cT12fWNbZT4+Ml09cDtj
W2Y+PjJdPW07Y0ooZyxlLGYscSxqKTtqPWNbbj4+Ml18MDtpZigoanwwKSE9KG18MCkpe3E9ajt3
aGlsZSgxKXtqPWNbcSs0Pj4yXXwwO0wxNTA6ZG97aWYoKGp8MCk9PShtfDApKXt3PW19ZWxzZXt4
PStoW3ErOD4+M107Zj1qO3doaWxlKDEpe2lmKHghPStoW2YrOD4+M10pe3c9ZjticmVhayBMMTUw
fWU9Y1tmKzQ+PjJdfDA7aWYoKGV8MCk9PShtfDApKXt3PW07YnJlYWt9ZWxzZXtmPWV9fX19d2hp
bGUoMCk7aWYoKGp8MCk9PSh3fDApKXt5PWp9ZWxzZXtmPShjW3c+PjJdfDApKzR8MDtlPWp8MDtj
WyhjW2U+PjJdfDApKzQ+PjJdPWNbZj4+Ml07Y1tjW2Y+PjJdPj4yXT1jW2U+PjJdO2U9ajt3aGls
ZSgxKXtmPWNbZSs0Pj4yXXwwO2Nbbz4+Ml09KGNbbz4+Ml18MCktMTtrUyhlKTtpZigoZnwwKT09
KHd8MCkpe3k9dzticmVha31lbHNle2U9Zn19fWlmKCh5fDApPT0obXwwKSl7YnJlYWt9ZWxzZXtx
PXl9fX1pZigoY1tvPj4yXXwwKT09MCl7aT1kO3JldHVybn15PWNbbj4+Ml18MDtuPShjW2w+PjJd
fDApKzR8MDtsPXl8MDtjWyhjW2w+PjJdfDApKzQ+PjJdPWNbbj4+Ml07Y1tjW24+PjJdPj4yXT1j
W2w+PjJdO2Nbbz4+Ml09MDtpZigoeXwwKT09KG18MCkpe2k9ZDtyZXR1cm59ZWxzZXt6PXl9d2hp
bGUoMSl7eT1jW3orND4+Ml18MDtrUyh6KTtpZigoeXwwKT09KG18MCkpe2JyZWFrfWVsc2V7ej15
fX1pPWQ7cmV0dXJufWZ1bmN0aW9uIGN5KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0w
LGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MDtkPWk7
aT1pKzMyfDA7ZT1kfDA7Zj1kKzh8MDtnPWQrMTZ8MDtqPWd8MDtrPWcrNHwwO2Nbaz4+Ml09MDts
PWcrOHwwO2NbbD4+Ml09MDttPWs7az1nfDA7Y1trPj4yXT1tO2lmKChhfDApPT0oYnwwKSl7bj0w
O2NFKGosbik7aT1kO3JldHVybn1vPWZ8MDtwPWcrNHwwO2c9YTtkb3tjW28+PjJdPW07YT1jSChq
LGYsZSxnKXwwO2lmKChjW2E+PjJdfDApPT0wKXtxPWtPKDI0KXwwO3I9cSsxNnwwO2lmKChyfDAp
IT0wKXtoW3I+PjNdPStoW2c+PjNdfXI9Y1tlPj4yXXwwO3M9cTtjW3E+PjJdPTA7Y1txKzQ+PjJd
PTA7Y1txKzg+PjJdPXI7Y1thPj4yXT1zO3I9Y1tjW2s+PjJdPj4yXXwwO2lmKChyfDApPT0wKXt0
PXN9ZWxzZXtjW2s+PjJdPXI7dD1jW2E+PjJdfDB9Y0coY1twPj4yXXwwLHQpO2NbbD4+Ml09KGNb
bD4+Ml18MCkrMX1nPWcrOHwwO313aGlsZSgoZ3wwKSE9KGJ8MCkpO249Y1twPj4yXXwwO2NFKGos
bik7aT1kO3JldHVybn1mdW5jdGlvbiBjeihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0w
LHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wO2Q9aTtpPWkr
MzJ8MDtlPWR8MDtmPWQrOHwwO2c9ZCsxNnwwO2o9Z3wwO2s9Zys0fDA7Y1trPj4yXT0wO2w9Zys4
fDA7Y1tsPj4yXT0wO209aztuPWd8MDtjW24+PjJdPW07ZG97aWYoKGF8MCkhPShifDApKXtvPWZ8
MDtwPWcrNHwwO3E9YTtkb3tjW28+PjJdPW07cj1jQyhqLGYsZSxxKXwwO3M9a08oMjQpfDA7dD1z
KzE2fDA7aWYoKHR8MCkhPTApe2hbdD4+M109K2hbcT4+M119dD1jW2U+PjJdfDA7dT1zO2Nbcz4+
Ml09MDtjW3MrND4+Ml09MDtjW3MrOD4+Ml09dDtjW3I+PjJdPXU7dD1jW2Nbbj4+Ml0+PjJdfDA7
aWYoKHR8MCk9PTApe3Y9dX1lbHNle2Nbbj4+Ml09dDt2PWNbcj4+Ml18MH1jRyhjW3A+PjJdfDAs
dik7Y1tsPj4yXT0oY1tsPj4yXXwwKSsxO3E9cSs4fDA7fXdoaWxlKChxfDApIT0oYnwwKSk7cT1j
W24+PjJdfDA7aWYoKHF8MCk9PShtfDApKXticmVha31wPWs7bz1nKzR8MDtyPXE7TDIwMjp3aGls
ZSgxKXtxPXJ8MDt0PXIrNHwwO3U9cisxNnwwO3doaWxlKDEpe3c9Y1t0Pj4yXXwwO2lmKCh3fDAp
PT0wKXtzPXE7d2hpbGUoMSl7eD1jW3MrOD4+Ml18MDtpZigoc3wwKT09KGNbeD4+Ml18MCkpe3k9
eDticmVha31lbHNle3M9eH19fWVsc2V7cz13O3doaWxlKDEpe3g9Y1tzPj4yXXwwO2lmKCh4fDAp
PT0wKXt5PXM7YnJlYWt9ZWxzZXtzPXh9fX1zPXk7aWYoKHl8MCk9PShwfDApKXt6PW87QT0yMTM7
YnJlYWsgTDIwMn1pZigraFt1Pj4zXSE9K2hbeSsxNj4+M10pe2JyZWFrfXg9Y1t5KzQ+PjJdfDA7
aWYoKHh8MCk9PTApe0I9eTt3aGlsZSgxKXtDPWNbQis4Pj4yXXwwO2lmKChCfDApPT0oY1tDPj4y
XXwwKSl7RD1DO2JyZWFrfWVsc2V7Qj1DfX19ZWxzZXtCPXg7d2hpbGUoMSl7Qz1jW0I+PjJdfDA7
aWYoKEN8MCk9PTApe0Q9QjticmVha31lbHNle0I9Q319fWlmKChjW24+PjJdfDApPT0oc3wwKSl7
Y1tuPj4yXT1EfWNbbD4+Ml09KGNbbD4+Ml18MCktMTtjQihjW28+PjJdfDAseSk7a1MoeSl9aWYo
KHd8MCk9PTApe3U9cTt3aGlsZSgxKXt0PWNbdSs4Pj4yXXwwO2lmKCh1fDApPT0oY1t0Pj4yXXww
KSl7RT10O2JyZWFrfWVsc2V7dT10fX19ZWxzZXt1PXc7d2hpbGUoMSl7cT1jW3U+PjJdfDA7aWYo
KHF8MCk9PTApe0U9dTticmVha31lbHNle3U9cX19fWlmKChFfDApPT0ocHwwKSl7ej1vO0E9MjE0
O2JyZWFrfWVsc2V7cj1FfX1pZigoQXwwKT09MjE0KXtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtp
PWQ7cmV0dXJufWVsc2UgaWYoKEF8MCk9PTIxMyl7Rj1jW3o+PjJdfDA7Rz1GO2NFKGosRyk7aT1k
O3JldHVybn19fXdoaWxlKDApO3o9Zys0fDA7Rj1jW3o+PjJdfDA7Rz1GO2NFKGosRyk7aT1kO3Jl
dHVybn1mdW5jdGlvbiBjQShhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLjAsZz0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAuMCx4PTAs
eT0wLHo9MC4wLEE9MCxCPTAuMCxDPTAsRD0wLEU9MCxGPTAuMCxHPTAsSD0wLEk9MC4wLEo9MC4w
LEw9MCxNPTAsTj0wLE89MCxQPTA7Yj1pO2k9aSsyNHwwO2Q9YnwwO2U9Yis4fDA7Zj0rKGF8MCk7
Zz1+fitVKCsoMTk5MzE1NjguNTY5MzI0MTczLyhmKigrYWUoK2YpLy42OTMxNDcxODA1NTk5NDUz
KSkpKTtqPWE8PDE7az1jWzI0NDZdfDA7bD1jWzI0NDddfDA7aWYoKGt8MCkhPShsfDApKXtjWzI0
NDddPWwrKH4oKGwtOCsoLWt8MCl8MCk+Pj4zKTw8Myl9az1lfDA7Y1trPj4yXT0wO2w9ZSs0fDA7
Y1tsPj4yXT0wO209ZSs4fDA7Y1ttPj4yXT0wO2lmKChqfDApPT0wKXtuPTB9ZWxzZXtpZihqPj4+
MD41MzY4NzA5MTEpe2lyKGUpfWU9a08oYTw8NCl8MDtjW2w+PjJdPWU7Y1trPj4yXT1lO2NbbT4+
Ml09ZSsoajw8Myk7bT1qO289ZTtkb3tpZigob3wwKT09MCl7cD0wfWVsc2V7aFtvPj4zXT0wLjA7
cD1jW2w+PjJdfDB9bz1wKzh8MDtjW2w+PjJdPW87bT1tLTF8MDt9d2hpbGUoKG18MCkhPTApO249
Y1trPj4yXXwwfW09bisoajw8Myl8MDtvPW4rKGE8PDMpfDA7aWYoKGF8MCkhPTApe3A9bjtmPTAu
MDt3aGlsZSgxKXtlPXArOHwwO2hbcD4+M109ZjtpZigoZXwwKT09KG98MCkpe2JyZWFrfWVsc2V7
cD1lO2Y9ZisxLjB9fX1pZigoanwwKSE9KGF8MCkpe2o9bztmPTAuMDt3aGlsZSgxKXtvPWorOHww
O2hbaj4+M109ZjtpZigob3wwKT09KG18MCkpe2JyZWFrfWVsc2V7aj1vO2Y9ZisxLjB9fX1jRihu
LG0pO2lmKChnfDApPjApe2o9YTw8NDthPWo+PjM7bz1hTyhhfDAsOCl8MDtwPW47aWYoSyl7ZT1n
O3doaWxlKDEpe3E9ZS0xfDA7cj1rUCgtMSl8MDtzPXI7a1kocnwwLHB8MCxqKXwwO3Q9cysoYTw8
Myl8MDtjVShzLHQsZCk7TDI2ODpkb3tpZigoc3wwKSE9KHR8MCkpe3U9czt3aGlsZSgxKXt2PXUr
OHwwO2lmKCh2fDApPT0odHwwKSl7YnJlYWsgTDI2OH13PStoW3U+PjNdO2lmKHc9PStoW3Y+PjNd
KXticmVha31lbHNle3U9dn19aWYoKHV8MCk9PSh0fDApKXticmVha31lbHNle3g9djt5PXU7ej13
fXdoaWxlKDEpe0E9eDtkb3tBPUErOHwwO2lmKChBfDApPT0odHwwKSl7YnJlYWsgTDI2OH1CPSto
W0E+PjNdO313aGlsZSh6PT1CKTtDPXkrOHwwO2hbQz4+M109Qjt4PUE7eT1DO3o9Qn19fXdoaWxl
KDApO2lmKChyfDApIT0wKXtrVChyKX1pZigocXwwKT4wKXtlPXF9ZWxzZXtEPWc7YnJlYWt9fX1l
bHNle2U9Zzt3aGlsZSgxKXt5PWUtMXwwO3g9a1Aobyl8MDt2PXg7a1koeHwwLHB8MCxqKXwwO3Q9
disoYTw8Myl8MDtjVSh2LHQsZCk7TDI4Nzpkb3tpZigodnwwKSE9KHR8MCkpe3M9djt3aGlsZSgx
KXtFPXMrOHwwO2lmKChFfDApPT0odHwwKSl7YnJlYWsgTDI4N31GPStoW3M+PjNdO2lmKEY9PSto
W0U+PjNdKXticmVha31lbHNle3M9RX19aWYoKHN8MCk9PSh0fDApKXticmVha31lbHNle0c9RTtI
PXM7ST1GfXdoaWxlKDEpe3U9Rztkb3t1PXUrOHwwO2lmKCh1fDApPT0odHwwKSl7YnJlYWsgTDI4
N31KPStoW3U+PjNdO313aGlsZShJPT1KKTtBPUgrOHwwO2hbQT4+M109SjtHPXU7SD1BO0k9Sn19
fXdoaWxlKDApO2lmKCh4fDApIT0wKXtrVCh4KX1pZigoeXwwKT4wKXtlPXl9ZWxzZXtEPWc7YnJl
YWt9fX13aGlsZSgxKXtlPUQtMXwwO2N1KG4sbSxlKTtpZigoZXwwKT4wKXtEPWV9ZWxzZXtMPWc7
YnJlYWt9fXdoaWxlKDEpe0Q9TC0xfDA7Y3YobixtLEQpO2lmKChEfDApPjApe0w9RH1lbHNle009
ZzticmVha319d2hpbGUoMSl7TD1NLTF8MDtjdyhuLG0sTCk7aWYoKEx8MCk+MCl7TT1MfWVsc2V7
Tj1nO2JyZWFrfX13aGlsZSgxKXtNPU4tMXwwO2N4KG4sbSxNKTtpZigoTXwwKT4wKXtOPU19ZWxz
ZXtPPWc7YnJlYWt9fXdoaWxlKDEpe049Ty0xfDA7Y3kobixtLE4pO2lmKChOfDApPjApe089Tn1l
bHNle1A9ZzticmVha319ZG97UD1QLTF8MDtjeihuLG0sUCk7fXdoaWxlKChQfDApPjApfVA9Y1tr
Pj4yXXwwO2lmKChQfDApPT0wKXtpPWI7cmV0dXJufWs9Y1tsPj4yXXwwO2lmKChQfDApIT0oa3ww
KSl7Y1tsPj4yXT1rKyh+KChrLTgrKC1QfDApfDApPj4+Myk8PDMpfWtTKFApO2k9YjtyZXR1cm59
ZnVuY3Rpb24gY0IoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtlPWR8MDtmPWNb
ZT4+Ml18MDtkb3tpZigoZnwwKT09MCl7Zz1kO2g9MzAxfWVsc2V7aT1jW2QrND4+Ml18MDtpZigo
aXwwKT09MCl7aj1mO2s9ZDtsPWR8MDtoPTMwMzticmVha31lbHNle209aTt3aGlsZSgxKXtpPWNb
bT4+Ml18MDtpZigoaXwwKT09MCl7Zz1tO2g9MzAxO2JyZWFrfWVsc2V7bT1pfX19fX13aGlsZSgw
KTtkb3tpZigoaHwwKT09MzAxKXtmPWd8MDttPWNbZys0Pj4yXXwwO2lmKChtfDApIT0wKXtqPW07
az1nO2w9ZjtoPTMwMzticmVha31uPTA7bz0wO3A9Zys4fDA7cT1nO3I9Zn19d2hpbGUoMCk7aWYo
KGh8MCk9PTMwMyl7Zz1rKzh8MDtjW2orOD4+Ml09Y1tnPj4yXTtuPWo7bz0xO3A9ZztxPWs7cj1s
fWw9Y1twPj4yXXwwO2s9bHwwO2Rve2lmKChxfDApPT0oY1trPj4yXXwwKSl7Y1trPj4yXT1uO2lm
KChxfDApPT0oYnwwKSl7cz1uO3Q9MDticmVha31zPWI7dD1jWyhjW3A+PjJdfDApKzQ+PjJdfDB9
ZWxzZXtjW2wrND4+Ml09bjtzPWI7dD1jW2NbcD4+Ml0+PjJdfDB9fXdoaWxlKDApO2I9cSsxMnww
O2w9KGFbYl0mMSk9PTA7aWYoKHF8MCk9PShkfDApKXt1PXN9ZWxzZXtrPWQrOHwwO2c9Y1trPj4y
XXwwO2NbcD4+Ml09ZztpZigoY1tjW2s+PjJdPj4yXXwwKT09KGR8MCkpe2NbZz4+Ml09cX1lbHNl
e2NbZys0Pj4yXT1xfWc9Y1tlPj4yXXwwO2Nbcj4+Ml09ZztjW2crOD4+Ml09cTtnPWNbZCs0Pj4y
XXwwO2NbcSs0Pj4yXT1nO2lmKChnfDApIT0wKXtjW2crOD4+Ml09cX1hW2JdPWFbZCsxMnwwXSYx
O3U9KHN8MCk9PShkfDApP3E6c31pZihsfCh1fDApPT0wKXtyZXR1cm59aWYobyl7YVtuKzEyfDBd
PTE7cmV0dXJufWVsc2V7dj11O3c9dH13aGlsZSgxKXt0PXcrOHwwO3U9Y1t0Pj4yXXwwO249dysx
MnwwO289KGFbbl0mMSkhPTA7aWYoKHd8MCk9PShjW3U+PjJdfDApKXtpZihvKXt4PXY7eT13fWVs
c2V7YVtuXT0xO2FbdSsxMnwwXT0wO2w9Y1t0Pj4yXXwwO3M9bHwwO3E9Y1tzPj4yXXwwO2Q9cSs0
fDA7Yj1jW2Q+PjJdfDA7Y1tzPj4yXT1iO2lmKChifDApIT0wKXtjW2IrOD4+Ml09bH1iPWwrOHww
O2NbcSs4Pj4yXT1jW2I+PjJdO3M9Y1tiPj4yXXwwO2c9c3wwO2lmKChjW2c+PjJdfDApPT0obHww
KSl7Y1tnPj4yXT1xfWVsc2V7Y1tzKzQ+PjJdPXF9Y1tkPj4yXT1sO2NbYj4+Ml09cTtxPWNbdys0
Pj4yXXwwO3g9KHZ8MCk9PShxfDApP3c6djt5PWNbcT4+Ml18MH16PWNbeT4+Ml18MDtBPSh6fDAp
PT0wO2lmKCFBKXtpZigoYVt6KzEyfDBdJjEpPT0wKXtoPTM2NTticmVha319cT1jW3krND4+Ml18
MDtpZigocXwwKSE9MCl7aWYoKGFbcSsxMnwwXSYxKT09MCl7aD0zNjQ7YnJlYWt9fWFbeSsxMnww
XT0wO3E9Y1t5Kzg+PjJdfDA7Qj1xKzEyfDA7aWYoKGFbQl0mMSk9PTB8KHF8MCk9PSh4fDApKXto
PTM2MTticmVha31iPWNbcSs4Pj4yXXwwO2w9Y1tiPj4yXXwwO2lmKChxfDApIT0obHwwKSl7dj14
O3c9bDtjb250aW51ZX12PXg7dz1jW2IrND4+Ml18MDtjb250aW51ZX1pZihvKXtDPXY7RD13fWVs
c2V7YVtuXT0xO2FbdSsxMnwwXT0wO3U9Y1t0Pj4yXXwwO3Q9dSs0fDA7bj1jW3Q+PjJdfDA7bz1u
fDA7Yj1jW28+PjJdfDA7Y1t0Pj4yXT1iO2lmKChifDApIT0wKXtjW2IrOD4+Ml09dX1iPXUrOHww
O2Nbbis4Pj4yXT1jW2I+PjJdO3Q9Y1tiPj4yXXwwO2w9dHwwO2lmKChjW2w+PjJdfDApPT0odXww
KSl7Y1tsPj4yXT1ufWVsc2V7Y1t0KzQ+PjJdPW59Y1tvPj4yXT11O2NbYj4+Ml09bjtuPWNbdz4+
Ml18MDtDPSh2fDApPT0obnwwKT93OnY7RD1jW24rND4+Ml18MH1FPUR8MDtGPWNbRT4+Ml18MDtp
ZigoRnwwKSE9MCl7aWYoKGFbRisxMnwwXSYxKT09MCl7aD0zMzU7YnJlYWt9fW49Y1tEKzQ+PjJd
fDA7aWYoKG58MCkhPTApe2lmKChhW24rMTJ8MF0mMSk9PTApe0c9bjtoPTMzNjticmVha319YVtE
KzEyfDBdPTA7bj1jW0QrOD4+Ml18MDtpZigobnwwKT09KEN8MCkpe0g9QztoPTMzMjticmVha31p
ZigoYVtuKzEyfDBdJjEpPT0wKXtIPW47aD0zMzI7YnJlYWt9Yj1jW24rOD4+Ml18MDt1PWNbYj4+
Ml18MDtpZigobnwwKSE9KHV8MCkpe3Y9Qzt3PXU7Y29udGludWV9dj1DO3c9Y1tiKzQ+PjJdfDB9
aWYoKGh8MCk9PTMzMil7YVtIKzEyfDBdPTE7cmV0dXJufWVsc2UgaWYoKGh8MCk9PTMzNSl7SD1j
W0QrND4+Ml18MDtpZigoSHwwKT09MCl7aD0zMzd9ZWxzZXtHPUg7aD0zMzZ9fWVsc2UgaWYoKGh8
MCk9PTM2MSl7YVtCXT0xO3JldHVybn1lbHNlIGlmKChofDApPT0zNjQpe2lmKEEpe2g9MzY2fWVs
c2V7aD0zNjV9fWlmKChofDApPT0zMzYpe2lmKChhW0crMTJ8MF0mMSk9PTApe0k9RDtoPTM0M31l
bHNle2g9MzM3fX1lbHNlIGlmKChofDApPT0zNjUpe2lmKChhW3orMTJ8MF0mMSk9PTApe0o9eTto
PTM3Mn1lbHNle2g9MzY2fX1pZigoaHwwKT09MzM3KXthW0YrMTJ8MF09MTthW0QrMTJ8MF09MDtG
PWNbRT4+Ml18MDt6PUYrNHwwO0c9Y1t6Pj4yXXwwO2NbRT4+Ml09RztpZigoR3wwKSE9MCl7Y1tH
Kzg+PjJdPUR9Rz1EKzh8MDtjW0YrOD4+Ml09Y1tHPj4yXTtFPWNbRz4+Ml18MDtBPUV8MDtpZigo
Y1tBPj4yXXwwKT09KER8MCkpe2NbQT4+Ml09Rn1lbHNle2NbRSs0Pj4yXT1GfWNbej4+Ml09RDtj
W0c+PjJdPUY7ST1GO2g9MzQzfWVsc2UgaWYoKGh8MCk9PTM2Nil7Rj15KzR8MDthWyhjW0Y+PjJd
fDApKzEyfDBdPTE7YVt5KzEyfDBdPTA7Rz1jW0Y+PjJdfDA7RD1HfDA7ej1jW0Q+PjJdfDA7Y1tG
Pj4yXT16O2lmKCh6fDApIT0wKXtjW3orOD4+Ml09eX16PXkrOHwwO2NbRys4Pj4yXT1jW3o+PjJd
O0Y9Y1t6Pj4yXXwwO0U9RnwwO2lmKChjW0U+PjJdfDApPT0oeXwwKSl7Y1tFPj4yXT1HfWVsc2V7
Y1tGKzQ+PjJdPUd9Y1tEPj4yXT15O2Nbej4+Ml09RztKPUc7aD0zNzJ9aWYoKGh8MCk9PTM0Myl7
Rz1JKzh8MDt6PShjW0c+PjJdfDApKzEyfDA7YVtJKzEyfDBdPWFbel0mMTthW3pdPTE7YVsoY1tJ
KzQ+PjJdfDApKzEyfDBdPTE7ST1jW0c+PjJdfDA7Rz1JKzR8MDt6PWNbRz4+Ml18MDt5PXp8MDtE
PWNbeT4+Ml18MDtjW0c+PjJdPUQ7aWYoKER8MCkhPTApe2NbRCs4Pj4yXT1JfUQ9SSs4fDA7Y1t6
Kzg+PjJdPWNbRD4+Ml07Rz1jW0Q+PjJdfDA7Rj1HfDA7aWYoKGNbRj4+Ml18MCk9PShJfDApKXtj
W0Y+PjJdPXp9ZWxzZXtjW0crND4+Ml09en1jW3k+PjJdPUk7Y1tEPj4yXT16O3JldHVybn1lbHNl
IGlmKChofDApPT0zNzIpe2g9Sis4fDA7ej0oY1toPj4yXXwwKSsxMnwwO2FbSisxMnwwXT1hW3pd
JjE7YVt6XT0xO2FbKGNbSj4+Ml18MCkrMTJ8MF09MTtKPWNbaD4+Ml18MDtoPUp8MDt6PWNbaD4+
Ml18MDtEPXorNHwwO0k9Y1tEPj4yXXwwO2NbaD4+Ml09STtpZigoSXwwKSE9MCl7Y1tJKzg+PjJd
PUp9ST1KKzh8MDtjW3orOD4+Ml09Y1tJPj4yXTtoPWNbST4+Ml18MDt5PWh8MDtpZigoY1t5Pj4y
XXwwKT09KEp8MCkpe2NbeT4+Ml09en1lbHNle2NbaCs0Pj4yXT16fWNbRD4+Ml09SjtjW0k+PjJd
PXo7cmV0dXJufX1mdW5jdGlvbiBjQyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2
YXIgZj0wLGc9MCxqPTAsaz0wLjAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MDtmPWk7Zz1iO2I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbYj4+Ml09Y1tnPj4yXTtn
PWErNHwwO2o9Y1tiPj4yXXwwO2Rve2lmKChqfDApIT0oZ3wwKSl7az0raFtlPj4zXTtpZigraFtq
KzE2Pj4zXT49ayl7YnJlYWt9Yj1nfDA7bD1jW2I+PjJdfDA7aWYoKGx8MCk9PTApe2NbZD4+Ml09
ZzttPWI7aT1mO3JldHVybiBtfDB9ZWxzZXtuPWx9d2hpbGUoMSl7aWYoK2hbbisxNj4+M108ayl7
bz1uKzR8MDtsPWNbbz4+Ml18MDtpZigobHwwKT09MCl7cD00MDY7YnJlYWt9ZWxzZXtuPWw7Y29u
dGludWV9fWVsc2V7cT1ufDA7bD1jW3E+PjJdfDA7aWYoKGx8MCk9PTApe3A9NDA4O2JyZWFrfWVs
c2V7bj1sO2NvbnRpbnVlfX19aWYoKHB8MCk9PTQwOCl7Y1tkPj4yXT1uO209cTtpPWY7cmV0dXJu
IG18MH1lbHNlIGlmKChwfDApPT00MDYpe2NbZD4+Ml09bjttPW87aT1mO3JldHVybiBtfDB9fX13
aGlsZSgwKTtvPWNbaj4+Ml18MDtkb3tpZigoanwwKT09KGNbYT4+Ml18MCkpe3I9an1lbHNle2lm
KChvfDApPT0wKXtuPWp8MDt3aGlsZSgxKXtxPWNbbis4Pj4yXXwwO2lmKChufDApPT0oY1txPj4y
XXwwKSl7bj1xfWVsc2V7cz1xO2JyZWFrfX19ZWxzZXtuPW87d2hpbGUoMSl7cT1jW24rND4+Ml18
MDtpZigocXwwKT09MCl7cz1uO2JyZWFrfWVsc2V7bj1xfX19az0raFtlPj4zXTtpZihrPj0raFtz
KzE2Pj4zXSl7cj1zO2JyZWFrfW49Z3wwO3E9Y1tuPj4yXXwwO2lmKChxfDApPT0wKXtjW2Q+PjJd
PWc7bT1uO2k9ZjtyZXR1cm4gbXwwfWVsc2V7dD1xfXdoaWxlKDEpe2lmKGs8K2hbdCsxNj4+M10p
e3U9dHwwO3E9Y1t1Pj4yXXwwO2lmKChxfDApPT0wKXtwPTM5OTticmVha31lbHNle3Q9cTtjb250
aW51ZX19ZWxzZXt2PXQrNHwwO3E9Y1t2Pj4yXXwwO2lmKChxfDApPT0wKXtwPTQwMTticmVha31l
bHNle3Q9cTtjb250aW51ZX19fWlmKChwfDApPT0zOTkpe2NbZD4+Ml09dDttPXU7aT1mO3JldHVy
biBtfDB9ZWxzZSBpZigocHwwKT09NDAxKXtjW2Q+PjJdPXQ7bT12O2k9ZjtyZXR1cm4gbXwwfX19
d2hpbGUoMCk7aWYoKG98MCk9PTApe2NbZD4+Ml09ajttPWp8MDtpPWY7cmV0dXJuIG18MH1lbHNl
e2NbZD4+Ml09cjttPXIrNHwwO2k9ZjtyZXR1cm4gbXwwfXJldHVybiAwfWZ1bmN0aW9uIGNEKCl7
Y0EoMWU1KTtyZXR1cm4gMH1mdW5jdGlvbiBjRShhLGIpe2E9YXwwO2I9YnwwO2lmKChifDApPT0w
KXtyZXR1cm59ZWxzZXtjRShhLGNbYj4+Ml18MCk7Y0UoYSxjW2IrND4+Ml18MCk7a1MoYik7cmV0
dXJufX1mdW5jdGlvbiBjRihhLGIpe2E9YXwwO2I9YnwwO3ZhciBjPTAsZD0wLGU9MCxmPTAsZz0w
LGo9MCxrPTAsbD0wLG09MC4wO2M9aTtpPWkrOHwwO2Q9Y3wwO2U9Yi1hfDA7aWYoKGV8MCk8PTgp
e2k9YztyZXR1cm59Y1koZCk7Zj1iLTh8MDtpZihmPj4+MD5hPj4+MCl7Yj1hO2E9ZT4+Mzt3aGls
ZSgxKXtlPWEtMXwwO2Rve2lmKChlfDApIT0wKXtpZigoYXwwKT09MCl7Zz1jWChkKXwwfWVsc2V7
aj0zMi0oa1ooYXwwKXwwKXwwO2s9KCgoLTE+Pj4oKDMzLWp8MCk+Pj4wKSZhfDApPT0wKTw8MzE+
PjMxKStqfDA7aj0oaz4+PjApLygoKChrJjMxfDApIT0wKSsoaz4+PjUpfDApPj4+MCl8MDtpZigo
anwwKT09MCl7bD0wfWVsc2V7bD0tMT4+PigoMzItanwwKT4+PjApfXdoaWxlKDEpe2o9KGNYKGQp
fDApJmw7aWYoaj4+PjA8YT4+PjApe2c9ajticmVha319fWlmKChnfDApPT0wKXticmVha31qPWIr
KGc8PDMpfDA7bT0raFtiPj4zXTtoW2I+PjNdPStoW2o+PjNdO2hbaj4+M109bX19d2hpbGUoMCk7
aj1iKzh8MDtpZihqPj4+MDxmPj4+MCl7Yj1qO2E9ZX1lbHNle2JyZWFrfX19Y1coZCk7aT1jO3Jl
dHVybn1mdW5jdGlvbiBjRyhiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0w
LGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDtlPShkfDApPT0oYnwwKTth
W2QrMTJ8MF09ZSYxO2lmKGUpe3JldHVybn1lbHNle2Y9ZH13aGlsZSgxKXtnPWYrOHwwO2g9Y1tn
Pj4yXXwwO2Q9aCsxMnwwO2lmKChhW2RdJjEpIT0wKXtpPTQ4NzticmVha31qPWgrOHwwO2s9Y1tq
Pj4yXXwwO2U9Y1trPj4yXXwwO2lmKChofDApPT0oZXwwKSl7bD1jW2srND4+Ml18MDtpZigobHww
KT09MCl7aT00NTI7YnJlYWt9bT1sKzEyfDA7aWYoKGFbbV0mMSkhPTApe2k9NDUyO2JyZWFrfWFb
ZF09MTthW2srMTJ8MF09KGt8MCk9PShifDApfDA7YVttXT0xfWVsc2V7aWYoKGV8MCk9PTApe2k9
NDY5O2JyZWFrfW09ZSsxMnwwO2lmKChhW21dJjEpIT0wKXtpPTQ2OTticmVha31hW2RdPTE7YVtr
KzEyfDBdPShrfDApPT0oYnwwKXwwO2FbbV09MX1pZigoa3wwKT09KGJ8MCkpe2k9NDg0O2JyZWFr
fWVsc2V7Zj1rfX1pZigoaXwwKT09NDY5KXtiPWh8MDtpZigoZnwwKT09KGNbYj4+Ml18MCkpe209
Zis0fDA7ZD1jW20+PjJdfDA7Y1tiPj4yXT1kO2lmKChkfDApPT0wKXtuPWt9ZWxzZXtjW2QrOD4+
Ml09aDtuPWNbaj4+Ml18MH1jW2c+PjJdPW47bj1jW2o+PjJdfDA7ZD1ufDA7aWYoKGNbZD4+Ml18
MCk9PShofDApKXtjW2Q+PjJdPWZ9ZWxzZXtjW24rND4+Ml09Zn1jW20+PjJdPWg7Y1tqPj4yXT1m
O289ZjtwPWNbZz4+Ml18MH1lbHNle289aDtwPWt9YVtvKzEyfDBdPTE7YVtwKzEyfDBdPTA7bz1w
KzR8MDtnPWNbbz4+Ml18MDttPWd8MDtuPWNbbT4+Ml18MDtjW28+PjJdPW47aWYoKG58MCkhPTAp
e2Nbbis4Pj4yXT1wfW49cCs4fDA7Y1tnKzg+PjJdPWNbbj4+Ml07bz1jW24+PjJdfDA7ZD1vfDA7
aWYoKGNbZD4+Ml18MCk9PShwfDApKXtjW2Q+PjJdPWd9ZWxzZXtjW28rND4+Ml09Z31jW20+PjJd
PXA7Y1tuPj4yXT1nO3JldHVybn1lbHNlIGlmKChpfDApPT00ODQpe3JldHVybn1lbHNlIGlmKChp
fDApPT00ODcpe3JldHVybn1lbHNlIGlmKChpfDApPT00NTIpe2lmKChmfDApPT0oY1toPj4yXXww
KSl7cT1oO3I9a31lbHNle2Y9aCs0fDA7aT1jW2Y+PjJdfDA7Zz1pfDA7bj1jW2c+PjJdfDA7Y1tm
Pj4yXT1uO2lmKChufDApPT0wKXtzPWt9ZWxzZXtjW24rOD4+Ml09aDtzPWNbaj4+Ml18MH1uPWkr
OHwwO2Nbbj4+Ml09cztzPWNbaj4+Ml18MDtrPXN8MDtpZigoY1trPj4yXXwwKT09KGh8MCkpe2Nb
az4+Ml09aX1lbHNle2Nbcys0Pj4yXT1pfWNbZz4+Ml09aDtjW2o+PjJdPWk7cT1pO3I9Y1tuPj4y
XXwwfWFbcSsxMnwwXT0xO2FbcisxMnwwXT0wO3E9cnwwO249Y1txPj4yXXwwO2k9bis0fDA7aj1j
W2k+PjJdfDA7Y1txPj4yXT1qO2lmKChqfDApIT0wKXtjW2orOD4+Ml09cn1qPXIrOHwwO2Nbbis4
Pj4yXT1jW2o+PjJdO3E9Y1tqPj4yXXwwO2g9cXwwO2lmKChjW2g+PjJdfDApPT0ocnwwKSl7Y1to
Pj4yXT1ufWVsc2V7Y1txKzQ+PjJdPW59Y1tpPj4yXT1yO2Nbaj4+Ml09bjtyZXR1cm59fWZ1bmN0
aW9uIGNIKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGo9MCxr
PTAuMCxsPTAuMCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MDtmPWk7Zz1iO2I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbYj4+Ml09Y1tn
Pj4yXTtnPWErNHwwO2o9Y1tiPj4yXXwwO2Rve2lmKChqfDApIT0oZ3wwKSl7az0raFtlPj4zXTts
PStoW2orMTY+PjNdO2lmKGs8bCl7YnJlYWt9aWYobD49ayl7Y1tkPj4yXT1qO209ZDtpPWY7cmV0
dXJuIG18MH1iPWorNHwwO249Y1tiPj4yXXwwO289KG58MCk9PTA7aWYobyl7cD1qfDA7d2hpbGUo
MSl7cT1jW3ArOD4+Ml18MDtpZigocHwwKT09KGNbcT4+Ml18MCkpe3I9cTticmVha31lbHNle3A9
cX19fWVsc2V7cD1uO3doaWxlKDEpe3E9Y1twPj4yXXwwO2lmKChxfDApPT0wKXtyPXA7YnJlYWt9
ZWxzZXtwPXF9fX1wPWc7ZG97aWYoKHJ8MCkhPShwfDApKXtpZihrPCtoW3IrMTY+PjNdKXticmVh
a31uPWd8MDtxPWNbbj4+Ml18MDtpZigocXwwKT09MCl7Y1tkPj4yXT1wO209bjtpPWY7cmV0dXJu
IG18MH1lbHNle3M9cX13aGlsZSgxKXtsPStoW3MrMTY+PjNdO2lmKGs8bCl7dD1zfDA7cT1jW3Q+
PjJdfDA7aWYoKHF8MCk9PTApe3U9NTIxO2JyZWFrfWVsc2V7cz1xO2NvbnRpbnVlfX1pZihsPj1r
KXt1PTUyNTticmVha312PXMrNHwwO3E9Y1t2Pj4yXXwwO2lmKChxfDApPT0wKXt1PTUyNDticmVh
a31lbHNle3M9cX19aWYoKHV8MCk9PTUyMSl7Y1tkPj4yXT1zO209dDtpPWY7cmV0dXJuIG18MH1l
bHNlIGlmKCh1fDApPT01MjQpe2NbZD4+Ml09czttPXY7aT1mO3JldHVybiBtfDB9ZWxzZSBpZigo
dXwwKT09NTI1KXtjW2Q+PjJdPXM7bT1kO2k9ZjtyZXR1cm4gbXwwfX19d2hpbGUoMCk7aWYobyl7
Y1tkPj4yXT1qO209YjtpPWY7cmV0dXJuIG18MH1lbHNle2NbZD4+Ml09cjttPXJ8MDtpPWY7cmV0
dXJuIG18MH19fXdoaWxlKDApO3I9Y1tqPj4yXXwwO2Rve2lmKChqfDApPT0oY1thPj4yXXwwKSl7
dz1qfWVsc2V7aWYoKHJ8MCk9PTApe3M9anwwO3doaWxlKDEpe3Y9Y1tzKzg+PjJdfDA7aWYoKHN8
MCk9PShjW3Y+PjJdfDApKXtzPXZ9ZWxzZXt4PXY7YnJlYWt9fX1lbHNle3M9cjt3aGlsZSgxKXti
PWNbcys0Pj4yXXwwO2lmKChifDApPT0wKXt4PXM7YnJlYWt9ZWxzZXtzPWJ9fX1rPStoW2U+PjNd
O2lmKCtoW3grMTY+PjNdPGspe3c9eDticmVha31zPWd8MDtiPWNbcz4+Ml18MDtpZigoYnwwKT09
MCl7Y1tkPj4yXT1nO209cztpPWY7cmV0dXJuIG18MH1lbHNle3k9Yn13aGlsZSgxKXtsPStoW3kr
MTY+PjNdO2lmKGs8bCl7ej15fDA7Yj1jW3o+PjJdfDA7aWYoKGJ8MCk9PTApe3U9NTAyO2JyZWFr
fWVsc2V7eT1iO2NvbnRpbnVlfX1pZihsPj1rKXt1PTUwNjticmVha31BPXkrNHwwO2I9Y1tBPj4y
XXwwO2lmKChifDApPT0wKXt1PTUwNTticmVha31lbHNle3k9Yn19aWYoKHV8MCk9PTUwNSl7Y1tk
Pj4yXT15O209QTtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1fDApPT01MDYpe2NbZD4+Ml09eTtt
PWQ7aT1mO3JldHVybiBtfDB9ZWxzZSBpZigodXwwKT09NTAyKXtjW2Q+PjJdPXk7bT16O2k9Zjty
ZXR1cm4gbXwwfX19d2hpbGUoMCk7aWYoKHJ8MCk9PTApe2NbZD4+Ml09ajttPWp8MDtpPWY7cmV0
dXJuIG18MH1lbHNle2NbZD4+Ml09dzttPXcrNHwwO2k9ZjtyZXR1cm4gbXwwfXJldHVybiAwfWZ1
bmN0aW9uIGNJKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAuMCxIPTAsST0wO2c9aTtqPWQ7ZD1pO2k9
aSs4fDA7Y1tkPj4yXT1jW2o+PjJdO2NbZCs0Pj4yXT1jW2orND4+Ml07aj1lO2U9aTtpPWkrOHww
O2NbZT4+Ml09Y1tqPj4yXTtjW2UrND4+Ml09Y1tqKzQ+PjJdO2o9ZjtmPWk7aT1pKzF8MDtpPWkr
Nz4+Mzw8MzthW2ZdPWFbal18MDtqPWR8MDtmPWQrNHwwO2s9Y1tmPj4yXXwwO2w9Y1tlPj4yXXww
O209Y1tlKzQ+PjJdfDA7TDY1NTpkb3tpZigoa3wwKT09KG18MCkpe249aztvPWw7cD01NDl9ZWxz
ZXtlPWNbaj4+Ml18MDtxPWU7cj1rO3M9Y1tlPj4yXXwwO3doaWxlKDEpe2U9cis4fDA7aWYoKGUt
c3wwKT09NDA5Nil7dD1xKzR8MDt1PWNbdD4+Ml18MDt2PXQ7dz11O3g9dX1lbHNle3Y9cTt3PWU7
eD1zfWlmKCh3fDApPT0obXwwKSl7YnJlYWt9aWYoK2hbcj4+M109PStoW3c+PjNdKXtuPXI7bz1x
O3A9NTQ5O2JyZWFrIEw2NTV9ZWxzZXtxPXY7cj13O3M9eH19Y1tqPj4yXT1sO2NbZj4+Ml09bX19
d2hpbGUoMCk7ZG97aWYoKHB8MCk9PTU0OSl7Y1tqPj4yXT1vO2NbZj4+Ml09bjtpZigobnwwKT09
KG18MCkpe2JyZWFrfWw9bis4fDA7eD1jW28+PjJdfDA7aWYoKGwteHwwKT09NDA5Nil7dz1vKzR8
MDt2PWNbdz4+Ml18MDt5PXc7ej12O0E9djtCPW47Qz1vfWVsc2V7eT1vO3o9bDtBPXg7Qj1uO0M9
b313aGlsZSgxKXt4PXorOHwwO2lmKCh4LUF8MCk9PTQwOTYpe2w9eSs0fDA7dj1jW2w+PjJdfDA7
RD1sO0U9djtGPXZ9ZWxzZXtEPXk7RT14O0Y9QX1pZigoRXwwKT09KG18MCkpe2JyZWFrfUc9K2hb
RT4+M107aWYoK2hbQj4+M109PUcpe3k9RDt6PUU7QT1GO0I9QjtDPUM7Y29udGludWV9eD1CKzh8
MDtjW2Y+PjJdPXg7aWYoKHgtKGNbQz4+Ml18MCl8MCk9PTQwOTYpe3Y9Qys0fDA7Y1tqPj4yXT12
O2w9Y1t2Pj4yXXwwO2NbZj4+Ml09bDtIPXY7ST1sfWVsc2V7SD1DO0k9eH1oW0k+PjNdPUc7eT1E
O3o9RTtBPWNbRD4+Ml18MDtCPUk7Qz1IfXg9Qis4fDA7Y1tmPj4yXT14O2lmKCh4LShjW0M+PjJd
fDApfDApIT00MDk2KXticmVha314PUMrNHwwO2Nbaj4+Ml09eDtjW2Y+PjJdPWNbeD4+Ml19fXdo
aWxlKDApO2Y9ZDtkPWI7Yj1jW2YrND4+Ml18MDtjW2Q+PjJdPWNbZj4+Ml07Y1tkKzQ+PjJdPWI7
aT1nO3JldHVybn1mdW5jdGlvbiBjSihhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO3ZhciBnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MC4wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLjAsRD0wO2c9aTtpPWkrNDh8
MDtqPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2o+PjJdO2o9ZDtkPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaj4+Ml07aj1nfDA7az1nKzh8MDtsPWcrMTZ8MDtt
PWcrMjR8MDtuPWcrMzJ8MDtvPWcrNDB8MDtzd2l0Y2goZXwwKXtjYXNlIDI6e3A9ZHwwO3E9Y1tj
W3A+PjJdPj4yXXwwO2NbcD4+Ml09cTtwPWNbYj4+Ml18MDtpZigraFtxKzg+PjNdPCtoW3ArOD4+
M10pe3I9cSs0fDA7cz1xfDA7Y1soY1tzPj4yXXwwKSs0Pj4yXT1jW3I+PjJdO2NbY1tyPj4yXT4+
Ml09Y1tzPj4yXTt0PXB8MDtjWyhjW3Q+PjJdfDApKzQ+PjJdPXE7Y1tzPj4yXT1jW3Q+PjJdO2Nb
dD4+Ml09cTtjW3I+PjJdPXA7Y1thPj4yXT1xO2k9ZztyZXR1cm59ZWxzZXtjW2E+PjJdPXA7aT1n
O3JldHVybn1icmVha307Y2FzZSAwOmNhc2UgMTp7Y1thPj4yXT1jW2I+PjJdO2k9ZztyZXR1cm59
O2RlZmF1bHQ6e3A9ZT4+PjE7cT1ifDA7Yj1jW3E+PjJdfDA7aWYoKHB8MCk9PTApe3U9Yn1lbHNl
e3I9cDt0PWI7d2hpbGUoMSl7cz1yLTF8MDt2PWNbdCs0Pj4yXXwwO2lmKChzfDApPjApe3I9czt0
PXZ9ZWxzZXt1PXY7YnJlYWt9fX1jW2s+PjJdPWI7Y1tsPj4yXT11O2NKKGosayxsLHAsZik7bD1j
W2o+PjJdfDA7Y1txPj4yXT1sO2Nbbj4+Ml09dTt1PWR8MDtkPWNbdT4+Ml18MDtjW28+PjJdPWQ7
Y0oobSxuLG8sZS1wfDAsZik7Zj1jW20+PjJdfDA7dz0raFtsKzg+PjNdO2lmKCtoW2YrOD4+M108
dyl7bT1jW2YrND4+Ml18MDtMNjk3OmRve2lmKChtfDApPT0oZHwwKSl7eD1kfWVsc2V7cD1tO3do
aWxlKDEpe2lmKCtoW3ArOD4+M10+PXcpe3g9cDticmVhayBMNjk3fWU9Y1twKzQ+PjJdfDA7aWYo
KGV8MCk9PShkfDApKXt4PWQ7YnJlYWt9ZWxzZXtwPWV9fX19d2hpbGUoMCk7bT1jW3g+PjJdfDA7
cD1tKzR8MDtlPWZ8MDtjWyhjW2U+PjJdfDApKzQ+PjJdPWNbcD4+Ml07Y1tjW3A+PjJdPj4yXT1j
W2U+PjJdO289Y1tsKzQ+PjJdfDA7bj1sfDA7Y1soY1tuPj4yXXwwKSs0Pj4yXT1mO2NbZT4+Ml09
Y1tuPj4yXTtjW24+PjJdPW07Y1twPj4yXT1sO3k9Zjt6PXg7QT1vfWVsc2V7eT1sO3o9ZjtBPWNb
bCs0Pj4yXXwwfWNbcT4+Ml09QTtMNzA0OmRve2lmKChBfDApIT0oenwwKSl7bD16O2Y9ejtvPUE7
eD1kO3doaWxlKDEpe3A9bCs4fDA7aWYoKGx8MCk9PSh4fDApKXticmVhayBMNzA0fWVsc2V7Qj1v
fXdoaWxlKDEpe0M9K2hbQis4Pj4zXTtpZigraFtwPj4zXTxDKXticmVha31tPWNbQis0Pj4yXXww
O2NbcT4+Ml09bTtpZigobXwwKT09KGZ8MCkpe2JyZWFrIEw3MDR9ZWxzZXtCPW19fXA9Y1tsKzQ+
PjJdfDA7TDcxMTpkb3tpZigocHwwKT09KHh8MCkpe0Q9eH1lbHNle209cDt3aGlsZSgxKXtpZigr
aFttKzg+PjNdPj1DKXtEPW07YnJlYWsgTDcxMX1uPWNbbSs0Pj4yXXwwO2lmKChufDApPT0oeHww
KSl7RD14O2JyZWFrfWVsc2V7bT1ufX19fXdoaWxlKDApO3A9Y1tEPj4yXXwwO209cCs0fDA7bj1s
fDA7Y1soY1tuPj4yXXwwKSs0Pj4yXT1jW20+PjJdO2NbY1ttPj4yXT4+Ml09Y1tuPj4yXTtlPWNb
Qis0Pj4yXXwwO2o9KGZ8MCk9PShsfDApP0Q6ZjtrPUJ8MDtjWyhjW2s+PjJdfDApKzQ+PjJdPWw7
Y1tuPj4yXT1jW2s+PjJdO2Nbaz4+Ml09cDtjW20+PjJdPUI7Y1txPj4yXT1lO2lmKChlfDApPT0o
anwwKSl7YnJlYWsgTDcwNH1sPUQ7Zj1qO289ZTt4PWNbdT4+Ml18MH19fXdoaWxlKDApO2NbYT4+
Ml09eTtpPWc7cmV0dXJufX19ZnVuY3Rpb24gY0soYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3Zh
ciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxX
PTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0w
LGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9MCxh
cz0wLGF0PTAsYXU9MCxhdj0wLGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0wLGFDPTAsYUQ9
MCxhRT0wLGFGPTAsYUc9MC4wLGFIPTAuMCxhST0wLjAsYUo9MC4wLGFLPTAuMCxhTD0wLGFNPTAs
YU49MCxhTz0wLGFQPTAsYVE9MCxhUj0wLGFTPTAuMCxhVD0wLGFVPTAsYVY9MCxhVz0wLGFYPTAs
YVk9MCxhWj0wLGFfPTAsYSQ9MCxhMD0wLjAsYTE9MCxhMj0wLGEzPTAsYTQ9MCxhNT0wLGE2PTAs
YTc9MCxhOD0wLjAsYTk9MCxiYT0wLGJiPTAsYmM9MCxiZD0wLjAsYmU9MCxiZj0wLGJnPTAsYmg9
MCxiaT0wLGJqPTAsYms9MCxibD0wLGJtPTAsYm49MCxibz0wLGJwPTAsYnE9MCxicj0wLGJzPTAs
YnQ9MCxidT0wLjAsYnY9MCxidz0wLGJ4PTAsYnk9MCxiej0wLjAsYkE9MCxiQj0wLGJDPTAsYkQ9
MCxiRT0wLGJGPTAsYkc9MCxiSD0wLGJJPTAsYko9MCxiSz0wLGJMPTAsYk09MCxiTj0wLGJPPTAs
YlA9MCxiUT0wLjAsYlI9MCxiUz0wLGJUPTA7ZT1pO2k9aSs4fDA7Zj1hO2E9aTtpPWkrOHwwO2Nb
YT4+Ml09Y1tmPj4yXTtjW2ErND4+Ml09Y1tmKzQ+PjJdO2Y9YjtiPWk7aT1pKzh8MDtjW2I+PjJd
PWNbZj4+Ml07Y1tiKzQ+PjJdPWNbZis0Pj4yXTtmPWV8MDtnPWY7aj1pO2k9aSs4fDA7az1qO2w9
aTtpPWkrOHwwO209bDtuPWk7aT1pKzh8MDtvPW47cD1pO2k9aSs4fDA7cT1wO3I9aTtpPWkrOHww
O3M9cjt0PWk7aT1pKzh8MDt1PXQ7dj1pO2k9aSs4fDA7dz12O3g9aTtpPWkrOHwwO3k9eDt6PWk7
aT1pKzh8MDtBPWk7aT1pKzh8MDtCPWk7aT1pKzh8MDtDPWk7aT1pKzh8MDtEPUM7RT1pO2k9aSs4
fDA7Rj1pO2k9aSs4fDA7Rz1pO2k9aSs4fDA7SD1HO0k9aTtpPWkrOHwwO0o9STtLPWk7aT1pKzh8
MDtMPWk7aT1pKzh8MDtNPWk7aT1pKzh8MDtOPU07Tz1iKzR8MDtQPWNbTz4+Ml18MDtRPWErNHww
O1I9Y1tRPj4yXXwwO2lmKChQfDApPT0oUnwwKSl7aT1lO3JldHVybn1TPWJ8MDtUPWF8MDtVPWE7
YT15KzR8MDtWPXg7Vz16fDA7WD16KzR8MDtZPUF8MDtaPUErNHwwO189QnwwOyQ9Qis0fDA7YWE9
RXwwO2FiPUUrNHwwO2FjPUZ8MDthZD1GKzR8MDthZT1iO2I9S3wwO2FmPUsrNHwwO2FnPUx8MDth
aD1MKzR8MDthaT1QO1A9UjtMNzI1OndoaWxlKDEpe2FqPWNbUz4+Ml18MDtSPWNbVD4+Ml18MDth
az1jW2FqPj4yXXwwO2FsPWNbUj4+Ml18MDthbT1QLWFsPj4zO2FuPShhaS1haz4+MykrKGFqLVI8
PDcpLWFtfDA7c3dpdGNoKGFufDApe2Nhc2UgNTp7YW89NjMwO2JyZWFrIEw3MjU7YnJlYWt9O2Nh
c2UgNDp7YW89NjEwO2JyZWFrIEw3MjU7YnJlYWt9O2Nhc2UgMjp7YW89NTkzO2JyZWFrIEw3MjU7
YnJlYWt9O2Nhc2UgMzp7YW89NTk3O2JyZWFrIEw3MjU7YnJlYWt9O2Nhc2UgMDpjYXNlIDE6e2Fv
PTc2MDticmVhayBMNzI1O2JyZWFrfTtkZWZhdWx0Ont9fWlmKChhbnwwKTwzMSl7YW89NjQzO2Jy
ZWFrfWlmKChhaXwwKT09KGFrfDApKXthcD1hai00fDA7YXE9YXA7YXI9KGNbYXA+PjJdfDApKzQw
OTZ8MH1lbHNle2FxPWFqO2FyPWFpfWFwPWFyLTh8MDthcz0oYW58MCkvMnwwO2F0PShhbisxfDAp
Pj4+MD4yO2Rve2lmKChhbnwwKT45OTkpe2Rve2lmKGF0KXthdT1hbSthc3wwO2lmKChhdXwwKT4w
KXthdj1SKygoKGF1fDApLzUxMnwwKTw8Mil8MDthdz1jW2F2Pj4yXXwwO2F4PWF3KygoKGF1fDAp
JTUxMnwwKTw8Myl8MDtheT1hdjthej1hdzticmVha31lbHNle2F3PTUxMS1hdXwwO2F1PVIrKCgo
YXd8MCkvLTUxMnwwKTw8Mil8MDthdj1jW2F1Pj4yXXwwO2F4PWF2Kyg1MTEtKChhd3wwKSU1MTJ8
MCk8PDMpfDA7YXk9YXU7YXo9YXY7YnJlYWt9fWVsc2V7YXg9UDtheT1SO2F6PWFsfX13aGlsZSgw
KTthdj0oYW58MCkvNHwwO2F1PWNbVT4+Ml18MDthdz1jW1UrND4+Ml18MDtjW3Y+PjJdPWF1O2Nb
dis0Pj4yXT1hdztjW3g+PjJdPWF1O2NbeCs0Pj4yXT1hdzthQT0oYW4rM3wwKT4+PjA+NjthQj1h
dTtkb3tpZihhQSl7YXU9KGF3LShjW2FCPj4yXXwwKT4+MykrYXZ8MDtpZigoYXV8MCk+MCl7YUM9
YUIrKCgoYXV8MCkvNTEyfDApPDwyKXwwO2NbVj4+Ml09YUM7Y1thPj4yXT0oY1thQz4+Ml18MCkr
KCgoYXV8MCklNTEyfDApPDwzKTtjW1c+PjJdPWF5O2NbWD4+Ml09YXg7Y1tZPj4yXT1heTtjW1o+
PjJdPWF4O2lmKCFhQSl7YnJlYWt9fWVsc2V7YUM9NTExLWF1fDA7YXU9YUIrKCgoYUN8MCkvLTUx
MnwwKTw8Mil8MDtjW1Y+PjJdPWF1O2NbYT4+Ml09KGNbYXU+PjJdfDApKyg1MTEtKChhQ3wwKSU1
MTJ8MCk8PDMpO2NbVz4+Ml09YXk7Y1tYPj4yXT1heDtjW1k+PjJdPWF5O2NbWj4+Ml09YXh9YUM9
KGF4LWF6Pj4zKSthdnwwO2lmKChhQ3wwKT4wKXthdT1heSsoKChhQ3wwKS81MTJ8MCk8PDIpfDA7
Y1tZPj4yXT1hdTtjW1o+PjJdPShjW2F1Pj4yXXwwKSsoKChhQ3wwKSU1MTJ8MCk8PDMpO2JyZWFr
fWVsc2V7YXU9NTExLWFDfDA7YUM9YXkrKCgoYXV8MCkvLTUxMnwwKTw8Mil8MDtjW1k+PjJdPWFD
O2NbWj4+Ml09KGNbYUM+PjJdfDApKyg1MTEtKChhdXwwKSU1MTJ8MCk8PDMpO2JyZWFrfX1lbHNl
e2NbVz4+Ml09YXk7Y1tYPj4yXT1heDtjW1k+PjJdPWF5O2NbWj4+Ml09YXh9fXdoaWxlKDApO2Nb
Xz4+Ml09YXE7Y1skPj4yXT1hcDthRD1jTCh3LHkseixBLEIsMCl8MDthRT1heH1lbHNle2Rve2lm
KGF0KXthdj1hbSthc3wwO2lmKChhdnwwKT4wKXthRj0oY1tSKygoKGF2fDApLzUxMnwwKTw8Mik+
PjJdfDApKygoKGF2fDApJTUxMnwwKTw8Myl8MDticmVha31lbHNle2FCPTUxMS1hdnwwO2FGPShj
W1IrKCgoYUJ8MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChhQnwwKSU1MTJ8MCk8PDMpfDA7
YnJlYWt9fWVsc2V7YUY9UH19d2hpbGUoMCk7YUI9Y1tVKzQ+PjJdfDA7YUc9K2hbYUY+PjNdO2FI
PStoW2FCPj4zXTthST0raFthcD4+M107YXY9YUk8YUc7aWYoYUc+PWFIKXtpZighYXYpe2FEPTA7
YUU9YUY7YnJlYWt9aFthRj4+M109YUk7aFthcD4+M109YUc7YUo9K2hbYUY+PjNdO2FLPStoW2FC
Pj4zXTtpZihhSj49YUspe2FEPTE7YUU9YUY7YnJlYWt9aFthQj4+M109YUo7aFthRj4+M109YUs7
YUQ9MjthRT1hRjticmVha31pZihhdil7aFthQj4+M109YUk7aFthcD4+M109YUg7YUQ9MTthRT1h
RjticmVha31oW2FCPj4zXT1hRztoW2FGPj4zXT1hSDthRz0raFthcD4+M107aWYoYUc+PWFIKXth
RD0xO2FFPWFGO2JyZWFrfWhbYUY+PjNdPWFHO2hbYXA+PjNdPWFIO2FEPTI7YUU9YUZ9fXdoaWxl
KDApO1I9Y1tUPj4yXXwwO2FzPWNbUT4+Ml18MDthSD0raFthcz4+M107YUc9K2hbYUU+PjNdO2Rv
e2lmKGFIPGFHKXthTD1hRDthTT1hcTthTj1hcDthbz03MDd9ZWxzZXthbT1hcTthdD1hcDthbj1j
W2FxPj4yXXwwO3doaWxlKDEpe2lmKChhdHwwKT09KGFufDApKXthbD1hbS00fDA7YUI9Y1thbD4+
Ml18MDthTz1hbDthUD1hQis0MDk2fDA7YVE9YUJ9ZWxzZXthTz1hbTthUD1hdDthUT1hbn1hUj1h
UC04fDA7aWYoKGFzfDApPT0oYVJ8MCkpe2JyZWFrfWFTPStoW2FSPj4zXTtpZihhUzxhRyl7YW89
NzA2O2JyZWFrfWVsc2V7YW09YU87YXQ9YVI7YW49YVF9fWlmKChhb3wwKT09NzA2KXthbz0wO2hb
YXM+PjNdPWFTO2hbYVI+PjNdPWFIO2FMPWFEKzF8MDthTT1hTzthTj1hUjthbz03MDc7YnJlYWt9
YW49YXMrOHwwO2F0PWNbUj4+Ml18MDtpZigoYW4tYXR8MCk9PTQwOTYpe2FtPVIrNHwwO2FCPWNb
YW0+PjJdfDA7YVQ9YUI7YVU9YW07YVY9YUJ9ZWxzZXthVD1hbjthVT1SO2FWPWF0fWF0PWNbUz4+
Ml18MDthbj1jW08+PjJdfDA7aWYoKGFufDApPT0oY1thdD4+Ml18MCkpe2FCPWF0LTR8MDthVz1h
QjthWD0oY1thQj4+Ml18MCkrNDA5NnwwfWVsc2V7YVc9YXQ7YVg9YW59YW49YVgtOHwwO2FJPSto
W2FuPj4zXTtkb3tpZihhSDxhSSl7YVk9YVQ7YVo9YVU7YV89YVZ9ZWxzZXthdD1hVDthQj1hVTth
bT1hVjtMNzg2OndoaWxlKDEpe2EkPWF0O3doaWxlKDEpe2lmKChhJHwwKT09KGFufDApKXthbz03
Njc7YnJlYWsgTDcyNX1hMD0raFthJD4+M107aWYoYUg8YTApe2JyZWFrIEw3ODZ9YWw9YSQrOHww
O2lmKChhbC1hbXwwKT09NDA5Nil7YnJlYWt9ZWxzZXthJD1hbH19YWw9YUIrNHwwO2F2PWNbYWw+
PjJdfDA7YXQ9YXY7YUI9YWw7YW09YXZ9aFthJD4+M109YUk7aFthbj4+M109YTA7YW09YSQrOHww
O2F0PWNbYUI+PjJdfDA7aWYoKGFtLWF0fDApIT00MDk2KXthWT1hbTthWj1hQjthXz1hdDticmVh
a31hdD1hQis0fDA7YW09Y1thdD4+Ml18MDthWT1hbTthWj1hdDthXz1hbX19d2hpbGUoMCk7aWYo
KGFZfDApPT0oYW58MCkpe2FvPTc2ODticmVhayBMNzI1fWVsc2V7YTE9YVk7YTI9YVo7YTM9YVc7
YTQ9YW47YTU9YV99d2hpbGUoMSl7YUk9K2hbY1tRPj4yXT4+M107YW09YTE7YTY9YTI7YXQ9YTU7
TDc5ODp3aGlsZSgxKXthNz1hbTt3aGlsZSgxKXthOD0raFthNz4+M107aWYoYUk8YTgpe2JyZWFr
IEw3OTh9YXY9YTcrOHwwO2lmKChhdi1hdHwwKT09NDA5Nil7YnJlYWt9ZWxzZXthNz1hdn19YXY9
YTYrNHwwO2FsPWNbYXY+PjJdfDA7YW09YWw7YTY9YXY7YXQ9YWx9YXQ9YTM7YW09YTQ7YUI9Y1th
Mz4+Ml18MDt3aGlsZSgxKXtpZigoYW18MCk9PShhQnwwKSl7YWw9YXQtNHwwO2F2PWNbYWw+PjJd
fDA7YTk9YWw7YmE9YXYrNDA5NnwwO2JiPWF2fWVsc2V7YTk9YXQ7YmE9YW07YmI9YUJ9YmM9YmEt
OHwwO2JkPStoW2JjPj4zXTtpZihhSTxiZCl7YXQ9YTk7YW09YmM7YUI9YmJ9ZWxzZXticmVha319
aWYoYTY+Pj4wPj1hOT4+PjApe2lmKGE3Pj4+MD49YmM+Pj4wfChhNnwwKSE9KGE5fDApKXticmVh
a319aFthNz4+M109YmQ7aFtiYz4+M109YTg7YUI9YTcrOHwwO2FtPWNbYTY+PjJdfDA7aWYoKGFC
LWFtfDApIT00MDk2KXthMT1hQjthMj1hNjthMz1hOTthND1iYzthNT1hbTtjb250aW51ZX1hbT1h
Nis0fDA7YUI9Y1thbT4+Ml18MDthMT1hQjthMj1hbTthMz1hOTthND1iYzthNT1hQn1jW1Q+PjJd
PWE2O2NbUT4+Ml09YTc7YmU9YTd9fXdoaWxlKDApO0w4MTY6ZG97aWYoKGFvfDApPT03MDcpe2Fv
PTA7YXA9YXMrOHwwO2FuPWNbUj4+Ml18MDtpZigoYXAtYW58MCk9PTQwOTYpe2FCPVIrNHwwO2Ft
PWNbYUI+PjJdfDA7YmY9YW07Ymc9YUI7Ymg9YW19ZWxzZXtiZj1hcDtiZz1SO2JoPWFufWlmKGJn
Pj4+MDxhTT4+PjApe2JpPWFMO2JqPWJmO2JrPWJnO2JsPWFFO2JtPWFNO2JuPWFOO2JvPWJoO2Fv
PTcxMX1lbHNle2lmKChiZ3wwKT09KGFNfDApJmJmPj4+MDxhTj4+PjApe2JpPWFMO2JqPWJmO2Jr
PWJnO2JsPWFFO2JtPWFNO2JuPWFOO2JvPWJoO2FvPTcxMX1lbHNle2JwPWFMO2JxPWJmO2JyPWJn
O2JzPWFFfX1MODIzOmRve2lmKChhb3wwKT09NzExKXt3aGlsZSgxKXthbz0wO2FIPStoW2JsPj4z
XTthbj1iajthcD1iazthbT1ibztMODI2OndoaWxlKDEpe2J0PWFuO3doaWxlKDEpe2J1PStoW2J0
Pj4zXTtpZihidT49YUgpe2JyZWFrIEw4MjZ9YUI9YnQrOHwwO2lmKChhQi1hbXwwKT09NDA5Nil7
YnJlYWt9ZWxzZXtidD1hQn19YUI9YXArNHwwO2F0PWNbYUI+PjJdfDA7YW49YXQ7YXA9YUI7YW09
YXR9YW09Ym07YW49Ym47YXQ9Y1tibT4+Ml18MDt3aGlsZSgxKXtpZigoYW58MCk9PShhdHwwKSl7
YUI9YW0tNHwwO2F2PWNbYUI+PjJdfDA7YnY9YUI7Ync9YXYrNDA5NnwwO2J4PWF2fWVsc2V7YnY9
YW07Ync9YW47Yng9YXR9Ynk9YnctOHwwO2J6PStoW2J5Pj4zXTtpZihiej49YUgpe2FtPWJ2O2Fu
PWJ5O2F0PWJ4fWVsc2V7YnJlYWt9fWlmKGJ2Pj4+MDxhcD4+PjApe2JwPWJpO2JxPWJ0O2JyPWFw
O2JzPWJsO2JyZWFrIEw4MjN9aWYoKGJ2fDApPT0oYXB8MCkmYnk+Pj4wPGJ0Pj4+MCl7YnA9Ymk7
YnE9YnQ7YnI9YXA7YnM9Ymw7YnJlYWsgTDgyM31oW2J0Pj4zXT1iejtoW2J5Pj4zXT1idTthdD1i
aSsxfDA7YW49KGJsfDApPT0oYnR8MCk/Ynk6Ymw7YW09YnQrOHwwO2F2PWNbYXA+PjJdfDA7aWYo
KGFtLWF2fDApIT00MDk2KXtiaT1hdDtiaj1hbTtiaz1hcDtibD1hbjtibT1idjtibj1ieTtibz1h
djthbz03MTE7Y29udGludWV9YXY9YXArNHwwO2FtPWNbYXY+PjJdfDA7Ymk9YXQ7Ymo9YW07Yms9
YXY7Ymw9YW47Ym09YnY7Ym49Ynk7Ym89YW07YW89NzExfX19d2hpbGUoMCk7ZG97aWYoKGJxfDAp
PT0oYnN8MCkpe2JBPWJwfWVsc2V7YUg9K2hbYnM+PjNdO2FHPStoW2JxPj4zXTtpZihhSD49YUcp
e2JBPWJwO2JyZWFrfWhbYnE+PjNdPWFIO2hbYnM+PjNdPWFHO2JBPWJwKzF8MH19d2hpbGUoMCk7
ZG97aWYoKGJBfDApPT0wKXthbT1jW1UrND4+Ml18MDtjW0M+PjJdPWNbVT4+Ml07Y1tDKzQ+PjJd
PWFtO2NbYWE+PjJdPWJyO2NbYWI+PjJdPWJxO2FtPWNOKEQsRSwwKXwwO2NbYWM+PjJdPWJyO2Nb
YWQ+PjJdPWJxO2FuPWJxLShjW2JyPj4yXXwwKT4+Mzthdj1hbisxfDA7aWYoKGF2fDApPjApe2F0
PWJyKygoKGF2fDApLzUxMnwwKTw8Mil8MDtjW2FjPj4yXT1hdDtiQj0oY1thdD4+Ml18MCkrKCgo
YXZ8MCklNTEyfDApPDwzKXwwfWVsc2V7YXY9NTEwLWFufDA7YW49YnIrKCgoYXZ8MCkvLTUxMnww
KTw8Mil8MDtjW2FjPj4yXT1hbjtiQj0oY1thbj4+Ml18MCkrKDUxMS0oKGF2fDApJTUxMnwwKTw8
Myl8MH1jW2FkPj4yXT1iQjthdj1jW2FlKzQ+PjJdfDA7Y1tHPj4yXT1jW2FlPj4yXTtjW0crND4+
Ml09YXY7aWYoY04oRixILDApfDApe2lmKGFtKXthbz03NzA7YnJlYWsgTDcyNX1jW1M+PjJdPWJy
O2NbTz4+Ml09YnE7YmU9Y1tRPj4yXXwwO2JyZWFrIEw4MTZ9aWYoIWFtKXticmVha31hbT1icSs4
fDA7aWYoKGFtLShjW2JyPj4yXXwwKXwwKT09NDA5Nil7YXY9YnIrNHwwO2JDPWNbYXY+PjJdfDA7
YkQ9YXZ9ZWxzZXtiQz1hbTtiRD1icn1jW1Q+PjJdPWJEO2NbUT4+Ml09YkM7YmU9YkM7YnJlYWsg
TDgxNn19d2hpbGUoMCk7YW09Y1tRPj4yXXwwO2lmKChicXwwKT09KGFtfDApKXtiRT0wfWVsc2V7
YXY9Y1tUPj4yXXwwO2JFPShicS0oY1ticj4+Ml18MCk+PjMpKyhici1hdjw8NyktKGFtLShjW2F2
Pj4yXXwwKT4+Myl8MH1hdj1jW08+PjJdfDA7aWYoKGF2fDApPT0oYnF8MCkpe2JGPTB9ZWxzZXth
bj1jW1M+PjJdfDA7YkY9KGF2LShjW2FuPj4yXXwwKT4+MykrKGFuLWJyPDw3KS0oYnEtKGNbYnI+
PjJdfDApPj4zKXwwfWlmKChiRXwwKTwoYkZ8MCkpe2FuPWNbVSs0Pj4yXXwwO2NbST4+Ml09Y1tV
Pj4yXTtjW0krND4+Ml09YW47Y1tiPj4yXT1icjtjW2FmPj4yXT1icTtjSyhKLEssZCk7YW49YnEr
OHwwO2lmKChhbi0oY1ticj4+Ml18MCl8MCk9PTQwOTYpe2F2PWJyKzR8MDtiRz1jW2F2Pj4yXXww
O2JIPWF2fWVsc2V7Ykc9YW47Ykg9YnJ9Y1tUPj4yXT1iSDtjW1E+PjJdPWJHO2JlPWJHO2JyZWFr
fWNbYWc+PjJdPWJyO2NbYWg+PjJdPWJxO2FuPWJxLShjW2JyPj4yXXwwKT4+Mzthdj1hbisxfDA7
aWYoKGF2fDApPjApe2F0PWJyKygoKGF2fDApLzUxMnwwKTw8Mil8MDtjW2FnPj4yXT1hdDtiST0o
Y1thdD4+Ml18MCkrKCgoYXZ8MCklNTEyfDApPDwzKXwwfWVsc2V7YXY9NTEwLWFufDA7YW49YnIr
KCgoYXZ8MCkvLTUxMnwwKTw8Mil8MDtjW2FnPj4yXT1hbjtiST0oY1thbj4+Ml18MCkrKDUxMS0o
KGF2fDApJTUxMnwwKTw8Myl8MH1jW2FoPj4yXT1iSTthdj1jW2FlKzQ+PjJdfDA7Y1tNPj4yXT1j
W2FlPj4yXTtjW00rND4+Ml09YXY7Y0soTCxOLGQpO2NbUz4+Ml09YnI7Y1tPPj4yXT1icTtiZT1h
bX19d2hpbGUoMCk7Uj1jW08+PjJdfDA7aWYoKFJ8MCk9PShiZXwwKSl7YW89NzY5O2JyZWFrfWVs
c2V7YWk9UjtQPWJlfX1pZigoYW98MCk9PTYzMCl7YmU9Y1tVPj4yXXwwO2JxPWNbVSs0Pj4yXXww
O2NbZj4+Ml09YmU7Y1tmKzQ+PjJdPWJxO2Nbaj4+Ml09YmU7Y1tqKzQ+PjJdPWJxO2Y9YnE7YnI9
ajtqPWJlO2Q9Zi0oY1tqPj4yXXwwKT4+MztOPWQrMXwwO2lmKChOfDApPjApe0w9aisoKChOfDAp
LzUxMnwwKTw8Mil8MDtjW2JyPj4yXT1MO2JKPShjW0w+PjJdfDApKygoKE58MCklNTEyfDApPDwz
KXwwfWVsc2V7Tj01MTAtZHwwO2Q9aisoKChOfDApLy01MTJ8MCk8PDIpfDA7Y1ticj4+Ml09ZDti
Sj0oY1tkPj4yXXwwKSsoNTExLSgoTnwwKSU1MTJ8MCk8PDMpfDB9Y1trKzQ+PjJdPWJKO2NbbD4+
Ml09YmU7Y1tsKzQ+PjJdPWJxO2JKPWw7bD1mLShjW2o+PjJdfDApPj4zO049bCsyfDA7aWYoKE58
MCk+MCl7ZD1qKygoKE58MCkvNTEyfDApPDwyKXwwO2NbYko+PjJdPWQ7Yks9KGNbZD4+Ml18MCkr
KCgoTnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtOPTUwOS1sfDA7bD1qKygoKE58MCkvLTUxMnwwKTw8
Mil8MDtjW2JKPj4yXT1sO2JLPShjW2w+PjJdfDApKyg1MTEtKChOfDApJTUxMnwwKTw8Myl8MH1j
W20rND4+Ml09Yks7Y1tuPj4yXT1iZTtjW24rND4+Ml09YnE7YnE9bjtuPWYtKGNbaj4+Ml18MCk+
PjM7Zj1uKzN8MDtpZigoZnwwKT4wKXtiZT1qKygoKGZ8MCkvNTEyfDApPDwyKXwwO2NbYnE+PjJd
PWJlO2JMPShjW2JlPj4yXXwwKSsoKChmfDApJTUxMnwwKTw8Myl8MH1lbHNle2Y9NTA4LW58MDtu
PWorKCgoZnwwKS8tNTEyfDApPDwyKXwwO2NbYnE+PjJdPW47Ykw9KGNbbj4+Ml18MCkrKDUxMS0o
KGZ8MCklNTEyfDApPDwzKXwwfWNbbys0Pj4yXT1iTDtpZigoYWl8MCk9PShha3wwKSl7Ykw9YWot
NHwwO2NbUz4+Ml09Ykw7Zj0oY1tiTD4+Ml18MCkrNDA5NnwwO2NbTz4+Ml09ZjtiTT1mfWVsc2V7
Yk09YWl9Y1tPPj4yXT1iTS04O2JNPWNbYWUrND4+Ml18MDtjW3A+PjJdPWNbYWU+PjJdO2NbcCs0
Pj4yXT1iTTtjTChnLGssbSxvLHEsMCl8MDtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT02MTAp
e3E9Y1tVPj4yXXwwO289Y1tVKzQ+PjJdfDA7bT1vO2s9by0oY1txPj4yXXwwKT4+MztvPWsrMXww
O2lmKChvfDApPjApe2JOPShjW3ErKCgob3wwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChvfDApJTUx
MnwwKTw8Myl8MH1lbHNle289NTEwLWt8MDtiTj0oY1txKygoKG98MCkvLTUxMnwwKTw8Mik+PjJd
fDApKyg1MTEtKChvfDApJTUxMnwwKTw8Myl8MH1vPWsrMnwwO2lmKChvfDApPjApe2JPPShjW3Er
KCgob3wwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChvfDApJTUxMnwwKTw8Myl8MH1lbHNle289NTA5
LWt8MDtiTz0oY1txKygoKG98MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChvfDApJTUxMnww
KTw8Myl8MH1pZigoYWl8MCk9PShha3wwKSl7bz1hai00fDA7Y1tTPj4yXT1vO3E9KGNbbz4+Ml18
MCkrNDA5NnwwO2NbTz4+Ml09cTtiUD1xfWVsc2V7YlA9YWl9Y1tPPj4yXT1iUC04O2JQPWNbYWUr
ND4+Ml18MDtidT0raFtiTj4+M107Yno9K2hbbT4+M107YTg9K2hbYk8+PjNdO3E9YTg8YnU7ZG97
aWYoYnU8Ynope2lmKHEpe2hbbT4+M109YTg7aFtiTz4+M109Yno7YlE9Yno7YnJlYWt9aFttPj4z
XT1idTtoW2JOPj4zXT1iejtiZD0raFtiTz4+M107aWYoYmQ+PWJ6KXtiUT1iZDticmVha31oW2JO
Pj4zXT1iZDtoW2JPPj4zXT1iejtiUT1ien1lbHNle2lmKCFxKXtiUT1hODticmVha31oW2JOPj4z
XT1hODtoW2JPPj4zXT1idTtiZD0raFtiTj4+M107YTA9K2hbbT4+M107aWYoYmQ+PWEwKXtiUT1i
dTticmVha31oW20+PjNdPWJkO2hbYk4+PjNdPWEwO2JRPStoW2JPPj4zXX19d2hpbGUoMCk7YnU9
K2hbYlA+PjNdO2lmKGJ1Pj1iUSl7aT1lO3JldHVybn1oW2JPPj4zXT1idTtoW2JQPj4zXT1iUTti
UT0raFtiTz4+M107YnU9K2hbYk4+PjNdO2lmKGJRPj1idSl7aT1lO3JldHVybn1oW2JOPj4zXT1i
UTtoW2JPPj4zXT1idTtidT0raFtiTj4+M107YlE9K2hbbT4+M107aWYoYnU+PWJRKXtpPWU7cmV0
dXJufWhbbT4+M109YnU7aFtiTj4+M109YlE7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NjQz
KXtiTj1jW1UrND4+Ml18MDtjW3I+PjJdPWNbVT4+Ml07Y1tyKzQ+PjJdPWJOO2JOPWNbYWUrND4+
Ml18MDtjW3Q+PjJdPWNbYWU+PjJdO2NbdCs0Pj4yXT1iTjtjTShzLHUsMCk7aT1lO3JldHVybn1l
bHNlIGlmKChhb3wwKT09NTkzKXtpZigoYWl8MCk9PShha3wwKSl7dT1hai00fDA7Y1tTPj4yXT11
O3M9KGNbdT4+Ml18MCkrNDA5NnwwO2NbTz4+Ml09cztiUj1zfWVsc2V7YlI9YWl9cz1iUi04fDA7
Y1tPPj4yXT1zO2JRPStoW3M+PjNdO2J1PStoW1A+PjNdO2lmKGJRPj1idSl7aT1lO3JldHVybn1o
W1A+PjNdPWJRO2hbcz4+M109YnU7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NTk3KXtzPWNb
VT4+Ml18MDtQPWNbVSs0Pj4yXXwwO1U9UDtiUj1QLShjW3M+PjJdfDApPj4zO1A9YlIrMXwwO2lm
KChQfDApPjApe2JTPShjW3MrKCgoUHwwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChQfDApJTUxMnww
KTw8Myl8MH1lbHNle1A9NTEwLWJSfDA7YlM9KGNbcysoKChQfDApLy01MTJ8MCk8PDIpPj4yXXww
KSsoNTExLSgoUHwwKSU1MTJ8MCk8PDMpfDB9aWYoKGFpfDApPT0oYWt8MCkpe2FrPWFqLTR8MDtj
W1M+PjJdPWFrO1M9KGNbYWs+PjJdfDApKzQwOTZ8MDtjW08+PjJdPVM7YlQ9U31lbHNle2JUPWFp
fWNbTz4+Ml09YlQtODtiVD1jW2FlKzQ+PjJdfDA7YnU9K2hbYlM+PjNdO2JRPStoW1U+PjNdO2E4
PStoW2JUPj4zXTthZT1hODxidTtpZihidT49YlEpe2lmKCFhZSl7aT1lO3JldHVybn1oW2JTPj4z
XT1hODtoW2JUPj4zXT1idTtiej0raFtiUz4+M107YTA9K2hbVT4+M107aWYoYno+PWEwKXtpPWU7
cmV0dXJufWhbVT4+M109Yno7aFtiUz4+M109YTA7aT1lO3JldHVybn1pZihhZSl7aFtVPj4zXT1h
ODtoW2JUPj4zXT1iUTtpPWU7cmV0dXJufWhbVT4+M109YnU7aFtiUz4+M109YlE7YnU9K2hbYlQ+
PjNdO2lmKGJ1Pj1iUSl7aT1lO3JldHVybn1oW2JTPj4zXT1idTtoW2JUPj4zXT1iUTtpPWU7cmV0
dXJufWVsc2UgaWYoKGFvfDApPT03NjApe2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTc2Nyl7
aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzY4KXtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDAp
PT03Njkpe2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTc3MCl7aT1lO3JldHVybn19ZnVuY3Rp
b24gY0woYSxiLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3Zh
ciBqPTAsaz0wLGw9MCxtPTAsbj0wLjAsbz0wLjAscD0wLjAscT0wLHI9MCxzPTAuMCx0PTAuMCx1
PTAuMCx2PTAsdz0wO2c9aTtqPWE7YT1pO2k9aSs4fDA7Y1thPj4yXT1jW2o+PjJdO2NbYSs0Pj4y
XT1jW2orND4+Ml07aj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tqPj4yXTtjW2IrND4+Ml09Y1tq
KzQ+PjJdO2o9ZDtkPWk7aT1pKzh8MDtjW2Q+PjJdPWNbaj4+Ml07Y1tkKzQ+PjJdPWNbais0Pj4y
XTtqPWU7ZT1pO2k9aSs4fDA7Y1tlPj4yXT1jW2o+PjJdO2NbZSs0Pj4yXT1jW2orND4+Ml07aj1m
O2Y9aTtpPWkrOHwwO2NbZj4+Ml09Y1tqPj4yXTtjW2YrND4+Ml09Y1tqKzQ+PjJdO2o9Y1thKzQ+
PjJdfDA7az1jW2IrND4+Ml18MDtsPWNbZCs0Pj4yXXwwO209Y1tlKzQ+PjJdfDA7bj0raFtrPj4z
XTtvPStoW2o+PjNdO3A9K2hbbD4+M107cT1wPG47ZG97aWYobjxvKXtpZihxKXtoW2o+PjNdPXA7
aFtsPj4zXT1vO3I9MTtzPW87YnJlYWt9aFtqPj4zXT1uO2hbaz4+M109bzt0PStoW2w+PjNdO2lm
KHQ+PW8pe3I9MTtzPXQ7YnJlYWt9aFtrPj4zXT10O2hbbD4+M109bztyPTI7cz1vfWVsc2V7aWYo
IXEpe3I9MDtzPXA7YnJlYWt9aFtrPj4zXT1wO2hbbD4+M109bjt0PStoW2s+PjNdO3U9K2hbaj4+
M107aWYodD49dSl7cj0xO3M9bjticmVha31oW2o+PjNdPXQ7aFtrPj4zXT11O3I9MjtzPStoW2w+
PjNdfX13aGlsZSgwKTtuPStoW20+PjNdO2Rve2lmKG48cyl7aFtsPj4zXT1uO2hbbT4+M109cztw
PStoW2w+PjNdO289K2hbaz4+M107aWYocD49byl7dj1yKzF8MDticmVha31oW2s+PjNdPXA7aFts
Pj4zXT1vO289K2hbaz4+M107cD0raFtqPj4zXTtpZihvPj1wKXt2PXIrMnwwO2JyZWFrfWhbaj4+
M109bztoW2s+PjNdPXA7dj1yKzN8MH1lbHNle3Y9cn19d2hpbGUoMCk7cj1jW2YrND4+Ml18MDtm
PWNbZSs0Pj4yXXwwO3M9K2hbcj4+M107bj0raFtmPj4zXTtpZihzPj1uKXt3PXY7aT1nO3JldHVy
biB3fDB9aFtmPj4zXT1zO2hbcj4+M109bjtyPWNbZCs0Pj4yXXwwO249K2hbZj4+M107cz0raFty
Pj4zXTtpZihuPj1zKXt3PXYrMXwwO2k9ZztyZXR1cm4gd3wwfWhbcj4+M109bjtoW2Y+PjNdPXM7
Zj1jW2IrND4+Ml18MDtzPStoW3I+PjNdO249K2hbZj4+M107aWYocz49bil7dz12KzJ8MDtpPWc7
cmV0dXJuIHd8MH1oW2Y+PjNdPXM7aFtyPj4zXT1uO3I9Y1thKzQ+PjJdfDA7bj0raFtmPj4zXTtz
PStoW3I+PjNdO2lmKG4+PXMpe3c9diszfDA7aT1nO3JldHVybiB3fDB9aFtyPj4zXT1uO2hbZj4+
M109czt3PXYrNHwwO2k9ZztyZXR1cm4gd3wwfWZ1bmN0aW9uIGNNKGEsYixkKXthPWF8MDtiPWJ8
MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAuMCxwPTAuMCxx
PTAuMCxyPTAuMCxzPTAuMCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2Q9aTtlPWE7
YT1pO2k9aSs4fDA7Y1thPj4yXT1jW2U+PjJdO2NbYSs0Pj4yXT1jW2UrND4+Ml07ZT1iO2I9aTtp
PWkrOHwwO2NbYj4+Ml09Y1tlPj4yXTtjW2IrND4+Ml09Y1tlKzQ+PjJdO2U9Y1thPj4yXXwwO2Y9
YSs0fDA7Zz0oY1tmPj4yXXwwKS0oY1tlPj4yXXwwKT4+MztqPWcrMnwwO2lmKChqfDApPjApe2s9
ZSsoKChqfDApLzUxMnwwKTw8Mil8MDtsPShjW2s+PjJdfDApKygoKGp8MCklNTEyfDApPDwzKXww
O209a31lbHNle2s9NTA5LWd8MDtnPWUrKCgoa3wwKS8tNTEyfDApPDwyKXwwO2w9KGNbZz4+Ml18
MCkrKDUxMS0oKGt8MCklNTEyfDApPDwzKXwwO209Z31nPWE7YT1jW2c+PjJdfDA7az1jW2crND4+
Ml18MDtnPWs7ZT1rLShjW2E+PjJdfDApPj4zO2s9ZSsxfDA7aWYoKGt8MCk+MCl7bj0oY1thKygo
KGt8MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgoa3wwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtrPTUxMC1l
fDA7bj0oY1thKygoKGt8MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChrfDApJTUxMnwwKTw8
Myl8MH1vPStoW24+PjNdO3A9K2hbZz4+M107cT0raFtsPj4zXTtrPXE8bztkb3tpZihvPHApe2lm
KGspe2hbZz4+M109cTtoW2w+PjNdPXA7YnJlYWt9aFtnPj4zXT1vO2hbbj4+M109cDtyPStoW2w+
PjNdO2lmKHI+PXApe2JyZWFrfWhbbj4+M109cjtoW2w+PjNdPXB9ZWxzZXtpZighayl7YnJlYWt9
aFtuPj4zXT1xO2hbbD4+M109bztyPStoW24+PjNdO3M9K2hbZz4+M107aWYocj49cyl7YnJlYWt9
aFtnPj4zXT1yO2hbbj4+M109c319d2hpbGUoMCk7bj1sLShjW20+PjJdfDApPj4zO2c9bisxfDA7
aWYoKGd8MCk+MCl7az1tKygoKGd8MCkvNTEyfDApPDwyKXwwO2E9Y1trPj4yXXwwO3Q9azt1PWEr
KCgoZ3wwKSU1MTJ8MCk8PDMpfDA7dj1hfWVsc2V7YT01MTAtbnwwO249bSsoKChhfDApLy01MTJ8
MCk8PDIpfDA7Zz1jW24+PjJdfDA7dD1uO3U9ZysoNTExLSgoYXwwKSU1MTJ8MCk8PDMpfDA7dj1n
fWc9Yis0fDA7Yj1sO2w9dDt0PXU7dT1tO209djtMMTAyMjp3aGlsZSgxKXt2PWI7YT10O249dTtr
PW07d2hpbGUoMSl7aWYoKGF8MCk9PShjW2c+PjJdfDApKXticmVhayBMMTAyMn1vPStoW2E+PjNd
O3E9K2hbdj4+M107aWYobzxxKXtlPW47aj12O3c9YTtwPXE7d2hpbGUoMSl7aFt3Pj4zXT1wO2lm
KChqfDApPT0oY1tmPj4yXXwwKSl7YnJlYWt9aWYoKGp8MCk9PShjW2U+PjJdfDApKXt4PWUtNHww
O3k9eDt6PShjW3g+PjJdfDApKzQwOTZ8MH1lbHNle3k9ZTt6PWp9eD16LTh8MDtxPStoW3g+PjNd
O2lmKG88cSl7ZT15O3c9ajtqPXg7cD1xfWVsc2V7YnJlYWt9fWhbaj4+M109bztBPWNbbD4+Ml18
MH1lbHNle0E9a313PWErOHwwO2lmKCh3LUF8MCk9PTQwOTYpe2JyZWFrfWVsc2V7dj1hO2E9dztu
PWw7az1BfX1rPWwrNHwwO249Y1trPj4yXXwwO2I9YTt1PWw7bD1rO3Q9bjttPW59aT1kO3JldHVy
bn1mdW5jdGlvbiBjTihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLjAsRT0wLjAsRj0wLEc9MCxIPTAuMCxJPTAuMCxKPTAu
MCxLPTAsTD0wLE09MCxOPTAuMCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxY
PTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wO2Q9aTtpPWkr
OHwwO2U9YTthPWk7aT1pKzh8MDtjW2E+PjJdPWNbZT4+Ml07Y1thKzQ+PjJdPWNbZSs0Pj4yXTtl
PWI7Yj1pO2k9aSs4fDA7Y1tiPj4yXT1jW2U+PjJdO2NbYis0Pj4yXT1jW2UrND4+Ml07ZT1kfDA7
Zj1lO2c9aTtpPWkrOHwwO2o9ZztrPWk7aT1pKzh8MDtsPWs7bT1pO2k9aSs4fDA7bj1tO289aTtp
PWkrOHwwO3A9bztxPWIrNHwwO3I9Y1txPj4yXXwwO3M9YSs0fDA7dD1jW3M+PjJdfDA7aWYoKHJ8
MCk9PSh0fDApKXt1PTE7aT1kO3JldHVybiB1fDB9dj1ifDA7dz1jW3Y+PjJdfDA7eD1jW2E+PjJd
fDA7eT1jW3c+PjJdfDA7ej10LShjW3g+PjJdfDApPj4zO3N3aXRjaCgoci15Pj4zKSsody14PDw3
KS16fDApe2Nhc2UgMjp7aWYoKHJ8MCk9PSh5fDApKXtBPXctNHwwO2Nbdj4+Ml09QTtCPShjW0E+
PjJdfDApKzQwOTZ8MDtjW3E+PjJdPUI7Qz1CfWVsc2V7Qz1yfUI9Qy04fDA7Y1txPj4yXT1CO0Q9
K2hbQj4+M107RT0raFt0Pj4zXTtpZihEPj1FKXt1PTE7aT1kO3JldHVybiB1fDB9aFt0Pj4zXT1E
O2hbQj4+M109RTt1PTE7aT1kO3JldHVybiB1fDB9O2Nhc2UgMDpjYXNlIDE6e3U9MTtpPWQ7cmV0
dXJuIHV8MH07Y2FzZSAzOntCPWE7dD1jW0I+PjJdfDA7Qz1jW0IrND4+Ml18MDtCPUM7QT1DLShj
W3Q+PjJdfDApPj4zO0M9QSsxfDA7aWYoKEN8MCk+MCl7Rj0oY1t0KygoKEN8MCkvNTEyfDApPDwy
KT4+Ml18MCkrKCgoQ3wwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtDPTUxMC1BfDA7Rj0oY1t0KygoKEN8
MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChDfDApJTUxMnwwKTw8Myl8MH1pZigocnwwKT09
KHl8MCkpe0M9dy00fDA7Y1t2Pj4yXT1DO3Q9KGNbQz4+Ml18MCkrNDA5NnwwO2NbcT4+Ml09dDtH
PXR9ZWxzZXtHPXJ9Y1txPj4yXT1HLTg7Rz1jW2IrND4+Ml18MDtFPStoW0Y+PjNdO0Q9K2hbQj4+
M107SD0raFtHPj4zXTt0PUg8RTtpZihFPj1EKXtpZighdCl7dT0xO2k9ZDtyZXR1cm4gdXwwfWhb
Rj4+M109SDtoW0c+PjNdPUU7ST0raFtGPj4zXTtKPStoW0I+PjNdO2lmKEk+PUope3U9MTtpPWQ7
cmV0dXJuIHV8MH1oW0I+PjNdPUk7aFtGPj4zXT1KO3U9MTtpPWQ7cmV0dXJuIHV8MH1pZih0KXto
W0I+PjNdPUg7aFtHPj4zXT1EO3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0I+PjNdPUU7aFtGPj4zXT1E
O0U9K2hbRz4+M107aWYoRT49RCl7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbRj4+M109RTtoW0c+PjNd
PUQ7dT0xO2k9ZDtyZXR1cm4gdXwwfTtjYXNlIDQ6e0c9YTtGPWNbRz4+Ml18MDtCPWNbRys0Pj4y
XXwwO0c9Qjt0PUItKGNbRj4+Ml18MCk+PjM7Qj10KzF8MDtpZigoQnwwKT4wKXtLPShjW0YrKCgo
QnwwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChCfDApJTUxMnwwKTw8Myl8MH1lbHNle0I9NTEwLXR8
MDtLPShjW0YrKCgoQnwwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKEJ8MCklNTEyfDApPDwz
KXwwfUI9dCsyfDA7aWYoKEJ8MCk+MCl7TD0oY1tGKygoKEJ8MCkvNTEyfDApPDwyKT4+Ml18MCkr
KCgoQnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtCPTUwOS10fDA7TD0oY1tGKygoKEJ8MCkvLTUxMnww
KTw8Mik+PjJdfDApKyg1MTEtKChCfDApJTUxMnwwKTw8Myl8MH1pZigocnwwKT09KHl8MCkpe0I9
dy00fDA7Y1t2Pj4yXT1CO0Y9KGNbQj4+Ml18MCkrNDA5NnwwO2NbcT4+Ml09RjtNPUZ9ZWxzZXtN
PXJ9Y1txPj4yXT1NLTg7TT1jW2IrND4+Ml18MDtEPStoW0s+PjNdO0U9K2hbRz4+M107SD0raFtM
Pj4zXTtGPUg8RDtkb3tpZihEPEUpe2lmKEYpe2hbRz4+M109SDtoW0w+PjNdPUU7Tj1FO2JyZWFr
fWhbRz4+M109RDtoW0s+PjNdPUU7Sj0raFtMPj4zXTtpZihKPj1FKXtOPUo7YnJlYWt9aFtLPj4z
XT1KO2hbTD4+M109RTtOPUV9ZWxzZXtpZighRil7Tj1IO2JyZWFrfWhbSz4+M109SDtoW0w+PjNd
PUQ7Sj0raFtLPj4zXTtJPStoW0c+PjNdO2lmKEo+PUkpe049RDticmVha31oW0c+PjNdPUo7aFtL
Pj4zXT1JO049K2hbTD4+M119fXdoaWxlKDApO0Q9K2hbTT4+M107aWYoRD49Til7dT0xO2k9ZDty
ZXR1cm4gdXwwfWhbTD4+M109RDtoW00+PjNdPU47Tj0raFtMPj4zXTtEPStoW0s+PjNdO2lmKE4+
PUQpe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0s+PjNdPU47aFtMPj4zXT1EO0Q9K2hbSz4+M107Tj0r
aFtHPj4zXTtpZihEPj1OKXt1PTE7aT1kO3JldHVybiB1fDB9aFtHPj4zXT1EO2hbSz4+M109Tjt1
PTE7aT1kO3JldHVybiB1fDB9O2Nhc2UgNTp7Sz1hO0c9Y1tLPj4yXXwwO0w9Y1tLKzQ+PjJdfDA7
Y1tlPj4yXT1HO2NbZSs0Pj4yXT1MO2NbZz4+Ml09RztjW2crND4+Ml09TDtlPUw7Sz1nO2c9RztN
PWUtKGNbZz4+Ml18MCk+PjM7Rj1NKzF8MDtpZigoRnwwKT4wKXtCPWcrKCgoRnwwKS81MTJ8MCk8
PDIpfDA7Y1tLPj4yXT1CO089KGNbQj4+Ml18MCkrKCgoRnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtG
PTUxMC1NfDA7TT1nKygoKEZ8MCkvLTUxMnwwKTw8Mil8MDtjW0s+PjJdPU07Tz0oY1tNPj4yXXww
KSsoNTExLSgoRnwwKSU1MTJ8MCk8PDMpfDB9Y1tqKzQ+PjJdPU87Y1trPj4yXT1HO2Nbays0Pj4y
XT1MO089aztrPWUtKGNbZz4+Ml18MCk+PjM7Rj1rKzJ8MDtpZigoRnwwKT4wKXtNPWcrKCgoRnww
KS81MTJ8MCk8PDIpfDA7Y1tPPj4yXT1NO1A9KGNbTT4+Ml18MCkrKCgoRnwwKSU1MTJ8MCk8PDMp
fDB9ZWxzZXtGPTUwOS1rfDA7az1nKygoKEZ8MCkvLTUxMnwwKTw8Mil8MDtjW08+PjJdPWs7UD0o
Y1trPj4yXXwwKSsoNTExLSgoRnwwKSU1MTJ8MCk8PDMpfDB9Y1tsKzQ+PjJdPVA7Y1ttPj4yXT1H
O2NbbSs0Pj4yXT1MO0w9bTttPWUtKGNbZz4+Ml18MCk+PjM7ZT1tKzN8MDtpZigoZXwwKT4wKXtH
PWcrKCgoZXwwKS81MTJ8MCk8PDIpfDA7Y1tMPj4yXT1HO1E9KGNbRz4+Ml18MCkrKCgoZXwwKSU1
MTJ8MCk8PDMpfDB9ZWxzZXtlPTUwOC1tfDA7bT1nKygoKGV8MCkvLTUxMnwwKTw8Mil8MDtjW0w+
PjJdPW07UT0oY1ttPj4yXXwwKSsoNTExLSgoZXwwKSU1MTJ8MCk8PDMpfDB9Y1tuKzQ+PjJdPVE7
aWYoKHJ8MCk9PSh5fDApKXt5PXctNHwwO2Nbdj4+Ml09eTt2PShjW3k+PjJdfDApKzQwOTZ8MDtj
W3E+PjJdPXY7Uj12fWVsc2V7Uj1yfWNbcT4+Ml09Ui04O1I9YjtiPWNbUis0Pj4yXXwwO2Nbbz4+
Ml09Y1tSPj4yXTtjW28rND4+Ml09YjtjTChmLGosbCxuLHAsMCl8MDt1PTE7aT1kO3JldHVybiB1
fDB9O2RlZmF1bHQ6e3A9eisyfDA7aWYoKHB8MCk+MCl7bj14KygoKHB8MCkvNTEyfDApPDwyKXww
O1M9bjtUPShjW24+PjJdfDApKygoKHB8MCklNTEyfDApPDwzKXwwfWVsc2V7cD01MDktenwwO3o9
eCsoKChwfDApLy01MTJ8MCk8PDIpfDA7Uz16O1Q9KGNbej4+Ml18MCkrKDUxMS0oKHB8MCklNTEy
fDApPDwzKXwwfXA9YTthPWNbcD4+Ml18MDt6PWNbcCs0Pj4yXXwwO3A9ejt4PXotKGNbYT4+Ml18
MCk+PjM7ej14KzF8MDtpZigoenwwKT4wKXtVPShjW2ErKCgoenwwKS81MTJ8MCk8PDIpPj4yXXww
KSsoKCh6fDApJTUxMnwwKTw8Myl8MH1lbHNle3o9NTEwLXh8MDtVPShjW2ErKCgoenwwKS8tNTEy
fDApPDwyKT4+Ml18MCkrKDUxMS0oKHp8MCklNTEyfDApPDwzKXwwfU49K2hbVT4+M107RD0raFtw
Pj4zXTtIPStoW1Q+PjNdO3o9SDxOO2Rve2lmKE48RCl7aWYoeil7aFtwPj4zXT1IO2hbVD4+M109
RDticmVha31oW3A+PjNdPU47aFtVPj4zXT1EO0U9K2hbVD4+M107aWYoRT49RCl7YnJlYWt9aFtV
Pj4zXT1FO2hbVD4+M109RH1lbHNle2lmKCF6KXticmVha31oW1U+PjNdPUg7aFtUPj4zXT1OO0U9
K2hbVT4+M107ST0raFtwPj4zXTtpZihFPj1JKXticmVha31oW3A+PjNdPUU7aFtVPj4zXT1JfX13
aGlsZSgwKTtVPVQtKGNbUz4+Ml18MCk+PjM7cD1VKzF8MDtpZigocHwwKT4wKXt6PVMrKCgocHww
KS81MTJ8MCk8PDIpfDA7YT1jW3o+PjJdfDA7Vj0wO1c9YSsoKChwfDApJTUxMnwwKTw8Myl8MDtY
PXo7WT1TO1o9VDtfPWF9ZWxzZXthPTUxMC1VfDA7VT1TKygoKGF8MCkvLTUxMnwwKTw8Mil8MDt6
PWNbVT4+Ml18MDtWPTA7Vz16Kyg1MTEtKChhfDApJTUxMnwwKTw8Myl8MDtYPVU7WT1TO1o9VDtf
PXp9TDEwNjU6d2hpbGUoMSl7ej1WOyQ9VztUPVk7Uz1aO1U9Xzt3aGlsZSgxKXtpZigoJHwwKT09
KGNbcT4+Ml18MCkpe3U9MTthYT05MDY7YnJlYWsgTDEwNjV9Tj0raFskPj4zXTtIPStoW1M+PjNd
O2lmKE48SCl7YT1UO3A9Uzt4PSQ7RD1IO3doaWxlKDEpe2hbeD4+M109RDtpZigocHwwKT09KGNb
cz4+Ml18MCkpe2JyZWFrfWlmKChwfDApPT0oY1thPj4yXXwwKSl7bj1hLTR8MDthYj1uO2FjPShj
W24+PjJdfDApKzQwOTZ8MH1lbHNle2FiPWE7YWM9cH1uPWFjLTh8MDtIPStoW24+PjNdO2lmKE48
SCl7YT1hYjt4PXA7cD1uO0Q9SH1lbHNle2JyZWFrfX1oW3A+PjNdPU47eD16KzF8MDtpZigoeHww
KT09OCl7YnJlYWsgTDEwNjV9YWQ9eDthZT1jW1g+PjJdfDB9ZWxzZXthZD16O2FlPVV9eD0kKzh8
MDtpZigoeC1hZXwwKT09NDA5Nil7YnJlYWt9ZWxzZXt6PWFkO1M9JDskPXg7VD1YO1U9YWV9fVU9
WCs0fDA7VD1jW1U+PjJdfDA7Vj1hZDtXPVQ7WT1YO1g9VTtaPSQ7Xz1UfWlmKChhYXwwKT09OTA2
KXtpPWQ7cmV0dXJuIHV8MH1hYT0kKzh8MDtpZigoYWEtKGNbWD4+Ml18MCl8MCk9PTQwOTYpe2Fm
PWNbWCs0Pj4yXXwwfWVsc2V7YWY9YWF9dT0oYWZ8MCk9PShjW3E+PjJdfDApO2k9ZDtyZXR1cm4g
dXwwfX1yZXR1cm4gMH1mdW5jdGlvbiBjTyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTA7ZT1hKzh8MDtmPWNbZT4+Ml18MDtnPWErNHwwO2k9Y1tnPj4y
XXwwO2lmKChmfDApPT0oaXwwKSl7aj0wfWVsc2V7aj0oZi1pPDw3KS0xfDB9az1hKzE2fDA7bD1j
W2s+PjJdfDA7bT1hKzIwfDA7bj1jW20+PjJdfDA7bz1qLWwtbnwwO2lmKG8+Pj4wPGI+Pj4wKXtj
UShhLGItb3wwKTtwPWNbbT4+Ml18MDtxPWNbaz4+Ml18MDtyPWNbZz4+Ml18MDtzPWNbZT4+Ml18
MH1lbHNle3A9bjtxPWw7cj1pO3M9Zn1mPXErcHwwO3A9cisoZj4+Pjk8PDIpfDA7aWYoKHN8MCk9
PShyfDApKXt0PTB9ZWxzZXt0PShjW3A+PjJdfDApKygoZiY1MTEpPDwzKXwwfWlmKChifDApPT0w
KXtyZXR1cm59ZWxzZXt1PXQ7dj1wO3c9Yn13aGlsZSgxKXtpZigodXwwKSE9MCl7aFt1Pj4zXT0r
aFtkPj4zXX1iPXctMXwwO3A9dSs4fDA7aWYoKHAtKGNbdj4+Ml18MCl8MCk9PTQwOTYpe3Q9dis0
fDA7eD10O3k9Y1t0Pj4yXXwwfWVsc2V7eD12O3k9cH1jW20+PjJdPShjW20+PjJdfDApKzE7aWYo
KGJ8MCk9PTApe2JyZWFrfWVsc2V7dT15O3Y9eDt3PWJ9fXJldHVybn1mdW5jdGlvbiBjUChhLGIp
e2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wO2Q9YSs0fDA7ZT1jW2Q+PjJdfDA7Zj1hfDA7ZG97
aWYoKGV8MCk9PShjW2Y+PjJdfDApKXtnPWErOHwwO2g9Y1tnPj4yXXwwO2k9YSsxMnwwO2o9Y1tp
Pj4yXXwwO2s9ajtpZihoPj4+MDxqPj4+MCl7aj1oO2w9KChrLWo+PjIpKzF8MCkvMnwwO209ai1l
fDA7aj1oKyhsLShtPj4yKTw8Mil8MDtrXyhqfDAsZXwwLG18MCk7Y1tkPj4yXT1qO2NbZz4+Ml09
KGNbZz4+Ml18MCkrKGw8PDIpO249ajticmVha31qPWstZT4+MTtrPShqfDApPT0wPzE6ajtqPWtP
KGs8PDIpfDA7bD1qKygoayszfDApPj4+Mjw8Mil8MDttPWorKGs8PDIpfDA7aWYoKGV8MCk9PSho
fDApKXtvPWw7cD1lfWVsc2V7az1lO3E9bDtkb3tpZigocXwwKT09MCl7cj0wfWVsc2V7Y1txPj4y
XT1jW2s+PjJdO3I9cX1xPXIrNHwwO2s9ays0fDA7fXdoaWxlKChrfDApIT0oaHwwKSk7bz1xO3A9
Y1tmPj4yXXwwfWNbZj4+Ml09ajtjW2Q+PjJdPWw7Y1tnPj4yXT1vO2NbaT4+Ml09bTtpZigocHww
KT09MCl7bj1sO2JyZWFrfWtTKHApO249Y1tkPj4yXXwwfWVsc2V7bj1lfX13aGlsZSgwKTtlPW4t
NHwwO2lmKChlfDApPT0wKXtzPW47dD1zLTR8MDtjW2Q+PjJdPXQ7cmV0dXJufWNbZT4+Ml09Y1ti
Pj4yXTtzPWNbZD4+Ml18MDt0PXMtNHwwO2NbZD4+Ml09dDtyZXR1cm59ZnVuY3Rpb24gY1EoYSxi
KXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAs
YWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTA7ZD1pO2k9aSszMnww
O2U9ZHwwO2Y9ZCs4fDA7Zz1hfDA7aD1hKzh8MDtqPWNbaD4+Ml18MDtrPWErNHwwO2w9Y1trPj4y
XXwwO209KChqfDApPT0obHwwKSkrYnwwO2I9KChtJjUxMXwwKSE9MCkrKG0+Pj45KXwwO209YSsx
NnwwO249Y1ttPj4yXXwwO289bj4+Pjk7cD1iPj4+MDxvPj4+MD9iOm87cT1iLXB8MDtpZigoYnww
KT09KHB8MCkpe2NbbT4+Ml09bi0oYjw8OSk7aWYoKGJ8MCk9PTApe2k9ZDtyZXR1cm59bj1hKzEy
fDA7cj1hfDA7cz1iO3Q9ajt1PWw7d2hpbGUoMSl7dj1jW3U+PjJdfDA7dz11KzR8MDtjW2s+PjJd
PXc7ZG97aWYoKHR8MCk9PShjW24+PjJdfDApKXt4PWNbcj4+Ml18MDtpZih3Pj4+MD54Pj4+MCl7
eT13O3o9KCh5LXg+PjIpKzF8MCkvLTJ8MDtBPXorMXwwO0I9dC15fDA7a18odSsoQTw8Mil8MCx3
fDAsQnwwKTt5PXUrKEErKEI+PjIpPDwyKXwwO2NbaD4+Ml09eTtjW2s+PjJdPShjW2s+PjJdfDAp
Kyh6PDwyKTtDPXk7YnJlYWt9eT10LXg+PjE7ej0oeXwwKT09MD8xOnk7eT1rTyh6PDwyKXwwO0I9
eSsoej4+PjI8PDIpfDA7QT15Kyh6PDwyKXwwO2lmKCh3fDApPT0odHwwKSl7RD1CO0U9eH1lbHNl
e3g9dzt6PUI7ZG97aWYoKHp8MCk9PTApe0Y9MH1lbHNle2Nbej4+Ml09Y1t4Pj4yXTtGPXp9ej1G
KzR8MDt4PXgrNHwwO313aGlsZSgoeHwwKSE9KHR8MCkpO0Q9ejtFPWNbcj4+Ml18MH1jW3I+PjJd
PXk7Y1trPj4yXT1CO2NbaD4+Ml09RDtjW24+PjJdPUE7aWYoKEV8MCk9PTApe0M9RDticmVha31r
UyhFKTtDPWNbaD4+Ml18MH1lbHNle0M9dH19d2hpbGUoMCk7aWYoKEN8MCk9PTApe0c9MH1lbHNl
e2NbQz4+Ml09djtHPWNbaD4+Ml18MH13PUcrNHwwO2NbaD4+Ml09dzt4PXMtMXwwO2lmKCh4fDAp
PT0wKXticmVha31zPXg7dD13O3U9Y1trPj4yXXwwfWk9ZDtyZXR1cm59dT1hKzEyfDA7dD11fDA7
cz1jW3Q+PjJdfDA7Rz1hfDA7YT1zLShjW0c+PjJdfDApfDA7Qz1qLWw+PjI7aWYocT4+PjA8PSgo
YT4+MiktQ3wwKT4+PjApe2w9cTtFPWo7aj1zO3doaWxlKDEpe2lmKChqfDApPT0oRXwwKSl7SD05
NzE7YnJlYWt9cz1rTyg0MDk2KXwwO2lmKChFfDApPT0wKXtJPTB9ZWxzZXtjW0U+PjJdPXM7ST1j
W2g+PjJdfDB9cz1JKzR8MDtjW2g+PjJdPXM7RD1sLTF8MDtpZigoRHwwKT09MCl7Sj1zO0g9OTcy
O2JyZWFrfWw9RDtFPXM7aj1jW3Q+PjJdfDB9ZG97aWYoKEh8MCk9PTk3MSl7aWYoKGx8MCk9PTAp
e0o9ajtIPTk3MjticmVha31FPX5vO0k9fmI7cz1FPj4+MD5JPj4+MD9FOkk7ST1sO2Rve2NbZT4+
Ml09a08oNDA5Nil8MDtjUChnLGUpO0k9SS0xfDA7Sz1jW2g+PjJdfDA7TD0oY1ttPj4yXXwwKSs1
MTItKChLLShjW2s+PjJdfDApfDApPT00KXwwO2NbbT4+Ml09TDt9d2hpbGUoKEl8MCkhPTApO009
bC0xLXN8MDtOPUs7Tz1MfX13aGlsZSgwKTtpZigoSHwwKT09OTcyKXtNPXA7Tj1KO089Y1ttPj4y
XXwwfWNbbT4+Ml09Ty0oTTw8OSk7aWYoKE18MCk9PTApe2k9ZDtyZXR1cm59ZWxzZXtQPU07UT1O
fWRve049Y1trPj4yXXwwO009Y1tOPj4yXXwwO089Tis0fDA7Y1trPj4yXT1PO2Rve2lmKChRfDAp
PT0oY1t0Pj4yXXwwKSl7Sj1jW0c+PjJdfDA7aWYoTz4+PjA+Sj4+PjApe0g9TztMPSgoSC1KPj4y
KSsxfDApLy0yfDA7Sz1MKzF8MDtsPVEtSHwwO2tfKE4rKEs8PDIpfDAsT3wwLGx8MCk7SD1OKyhL
KyhsPj4yKTw8Mil8MDtjW2g+PjJdPUg7Y1trPj4yXT0oY1trPj4yXXwwKSsoTDw8Mik7Uj1IO2Jy
ZWFrfUg9US1KPj4xO0w9KEh8MCk9PTA/MTpIO0g9a08oTDw8Mil8MDtsPUgrKEw+Pj4yPDwyKXww
O0s9SCsoTDw8Mil8MDtpZigoT3wwKT09KFF8MCkpe1M9bDtUPUp9ZWxzZXtKPU87TD1sO2Rve2lm
KChMfDApPT0wKXtVPTB9ZWxzZXtjW0w+PjJdPWNbSj4+Ml07VT1MfUw9VSs0fDA7Sj1KKzR8MDt9
d2hpbGUoKEp8MCkhPShRfDApKTtTPUw7VD1jW0c+PjJdfDB9Y1tHPj4yXT1IO2Nbaz4+Ml09bDtj
W2g+PjJdPVM7Y1t0Pj4yXT1LO2lmKChUfDApPT0wKXtSPVM7YnJlYWt9a1MoVCk7Uj1jW2g+PjJd
fDB9ZWxzZXtSPVF9fXdoaWxlKDApO2lmKChSfDApPT0wKXtWPTB9ZWxzZXtjW1I+PjJdPU07Vj1j
W2g+PjJdfDB9UT1WKzR8MDtjW2g+PjJdPVE7UD1QLTF8MDt9d2hpbGUoKFB8MCkhPTApO2k9ZDty
ZXR1cm59UD1wPDw5O1E9YT4+MTthPXErQ3wwO1Y9UT4+PjA8YT4+PjA/YTpRO1E9ZisxMnwwO2Nb
UT4+Ml09MDtjW2YrMTY+PjJdPXU7aWYoKFZ8MCk9PTApe1c9MH1lbHNle1c9a08oVjw8Mil8MH11
PWZ8MDtjW3U+PjJdPVc7YT1XKyhDLXA8PDIpfDA7Qz1mKzh8MDtjW0M+PjJdPWE7Uj1mKzR8MDtj
W1I+PjJdPWE7VD1XKyhWPDwyKXwwO2NbUT4+Ml09VDtWPXE7cT1XO1c9YTtTPVQ7VD1hO3doaWxl
KDEpe2E9a08oNDA5Nil8MDtkb3tpZigoV3wwKT09KFN8MCkpe2lmKFQ+Pj4wPnE+Pj4wKXtVPVQ7
Tz0oKFUtcT4+MikrMXwwKS8tMnwwO049Uy1VfDA7a18oVCsoTzw8Mil8MCxUfDAsTnwwKTtVPVQr
KE8rKE4+PjIpPDwyKXwwO2NbQz4+Ml09VTtOPShjW1I+PjJdfDApKyhPPDwyKXwwO2NbUj4+Ml09
TjtYPVU7WT1TO1o9cTtfPU47YnJlYWt9Tj1TLXE+PjE7VT0oTnwwKT09MD8xOk47Tj1rTyhVPDwy
KXwwO089TisoVT4+PjI8PDIpfDA7cz1OKyhVPDwyKXwwO2lmKChUfDApPT0oU3wwKSl7JD1PO2Fh
PXF9ZWxzZXtVPVQ7Sj1PO2Rve2lmKChKfDApPT0wKXthYj0wfWVsc2V7Y1tKPj4yXT1jW1U+PjJd
O2FiPUp9Sj1hYis0fDA7VT1VKzR8MDt9d2hpbGUoKFV8MCkhPShTfDApKTskPUo7YWE9Y1t1Pj4y
XXwwfWNbdT4+Ml09TjtjW1I+PjJdPU87Y1tDPj4yXT0kO2NbUT4+Ml09cztpZigoYWF8MCk9PTAp
e1g9JDtZPXM7Wj1OO189TzticmVha31rUyhhYSk7WD0kO1k9cztaPU47Xz1PfWVsc2V7WD1XO1k9
UztaPXE7Xz1UfX13aGlsZSgwKTtpZigoWHwwKT09MCl7YWM9MH1lbHNle2NbWD4+Ml09YTthYz1j
W0M+PjJdfDB9YWQ9YWMrNHwwO2NbQz4+Ml09YWQ7TT1WLTF8MDtpZigoTXwwKT09MCl7YnJlYWt9
ZWxzZXtWPU07cT1aO1c9YWQ7Uz1ZO1Q9X319aWYoKHB8MCkhPTApe189cDtwPWNbaz4+Ml18MDtU
PWFkO2FkPVk7WT1aO3doaWxlKDEpe2Rve2lmKChUfDApPT0oYWR8MCkpe1o9Y1tSPj4yXXwwO2lm
KFo+Pj4wPlk+Pj4wKXtTPVo7Vz0oKFMtWT4+MikrMXwwKS8tMnwwO3E9WisoVzw8Mil8MDtWPWFk
LVN8MDtrXyhxfDAsWnwwLFZ8MCk7Uz1aKyhXKyhWPj4yKTw8Mil8MDtjW0M+PjJdPVM7Y1tSPj4y
XT1xO2FlPVM7YWY9YWQ7YWc9WTticmVha31TPWFkLVk+PjE7cT0oU3wwKT09MD8xOlM7Uz1rTyhx
PDwyKXwwO1Y9UysocT4+PjI8PDIpfDA7Vz1TKyhxPDwyKXwwO2lmKChafDApPT0oYWR8MCkpe2Fo
PVY7YWk9WX1lbHNle3E9WjtaPVY7ZG97aWYoKFp8MCk9PTApe2FqPTB9ZWxzZXtjW1o+PjJdPWNb
cT4+Ml07YWo9Wn1aPWFqKzR8MDtxPXErNHwwO313aGlsZSgocXwwKSE9KGFkfDApKTthaD1aO2Fp
PWNbdT4+Ml18MH1jW3U+PjJdPVM7Y1tSPj4yXT1WO2NbQz4+Ml09YWg7Y1tRPj4yXT1XO2lmKChh
aXwwKT09MCl7YWU9YWg7YWY9VzthZz1TO2JyZWFrfWtTKGFpKTthZT1haDthZj1XO2FnPVN9ZWxz
ZXthZT1UO2FmPWFkO2FnPVl9fXdoaWxlKDApO2lmKChhZXwwKT09MCl7YWs9MH1lbHNle2NbYWU+
PjJdPWNbcD4+Ml07YWs9Y1tDPj4yXXwwfWE9YWsrNHwwO2NbQz4+Ml09YTtxPShjW2s+PjJdfDAp
KzR8MDtjW2s+PjJdPXE7Tz1fLTF8MDtpZigoT3wwKT09MCl7YnJlYWt9ZWxzZXtfPU87cD1xO1Q9
YTthZD1hZjtZPWFnfX19YWc9Y1toPj4yXXwwO3doaWxlKDEpe2lmKChhZ3wwKT09KGNbaz4+Ml18
MCkpe2JyZWFrfVk9YWctNHwwO2NTKGYsWSk7YWc9WX1mPWNbRz4+Ml18MDtjW0c+PjJdPWNbdT4+
Ml07Y1t1Pj4yXT1mO2Nbaz4+Ml09Y1tSPj4yXTtjW1I+PjJdPWFnO1I9Y1toPj4yXXwwO2NbaD4+
Ml09Y1tDPj4yXTtjW0M+PjJdPVI7aD1jW3Q+PjJdfDA7Y1t0Pj4yXT1jW1E+PjJdO2NbUT4+Ml09
aDtjW20+PjJdPShjW20+PjJdfDApLVA7aWYoKGFnfDApIT0oUnwwKSl7Y1tDPj4yXT1SKyh+KChS
LTQrKC1hZ3wwKXwwKT4+PjIpPDwyKX1pZigoZnwwKT09MCl7aT1kO3JldHVybn1rUyhmKTtpPWQ7
cmV0dXJufWZ1bmN0aW9uIGNSKGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtl
PWV8MDtmPWZ8MDt2YXIgZz0wLjAsaT0wLjAsaj0wLjAsaz0wLGw9MC4wLG09MC4wLG49MC4wLG89
MCxwPTA7Zz0raFtiPj4zXTtpPStoW2E+PjNdO2o9K2hbYz4+M107Zj1qPGc7ZG97aWYoZzxpKXtp
ZihmKXtoW2E+PjNdPWo7aFtjPj4zXT1pO2s9MTtsPWk7YnJlYWt9aFthPj4zXT1nO2hbYj4+M109
aTttPStoW2M+PjNdO2lmKG0+PWkpe2s9MTtsPW07YnJlYWt9aFtiPj4zXT1tO2hbYz4+M109aTtr
PTI7bD1pfWVsc2V7aWYoIWYpe2s9MDtsPWo7YnJlYWt9aFtiPj4zXT1qO2hbYz4+M109ZzttPSto
W2I+PjNdO249K2hbYT4+M107aWYobT49bil7az0xO2w9ZzticmVha31oW2E+PjNdPW07aFtiPj4z
XT1uO2s9MjtsPStoW2M+PjNdfX13aGlsZSgwKTtnPStoW2Q+PjNdO2Rve2lmKGc8bCl7aFtjPj4z
XT1nO2hbZD4+M109bDtqPStoW2M+PjNdO2k9K2hbYj4+M107aWYoaj49aSl7bz1rKzF8MDticmVh
a31oW2I+PjNdPWo7aFtjPj4zXT1pO2k9K2hbYj4+M107aj0raFthPj4zXTtpZihpPGope2hbYT4+
M109aTtoW2I+PjNdPWo7bz1rKzN8MDticmVha31lbHNle289aysyfDA7YnJlYWt9fWVsc2V7bz1r
fX13aGlsZSgwKTtsPStoW2U+PjNdO2c9K2hbZD4+M107aWYobD49Zyl7cD1vO3JldHVybiBwfDB9
aFtkPj4zXT1sO2hbZT4+M109ZztnPStoW2Q+PjNdO2w9K2hbYz4+M107aWYoZz49bCl7cD1vKzF8
MDtyZXR1cm4gcHwwfWhbYz4+M109ZztoW2Q+PjNdPWw7bD0raFtjPj4zXTtnPStoW2I+PjNdO2lm
KGw+PWcpe3A9bysyfDA7cmV0dXJuIHB8MH1oW2I+PjNdPWw7aFtjPj4zXT1nO2c9K2hbYj4+M107
bD0raFthPj4zXTtpZihnPj1sKXtwPW8rM3wwO3JldHVybiBwfDB9aFthPj4zXT1nO2hbYj4+M109
bDtwPW8rNHwwO3JldHVybiBwfDB9ZnVuY3Rpb24gY1MoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0w
LGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MDtkPWErNHwwO2U9Y1tkPj4yXXwwO2Y9YXwwO2Rve2lmKChlfDApPT0oY1tmPj4yXXww
KSl7Zz1hKzh8MDtoPWNbZz4+Ml18MDtpPWErMTJ8MDtqPWNbaT4+Ml18MDtrPWo7aWYoaD4+PjA8
aj4+PjApe2o9aDtsPSgoay1qPj4yKSsxfDApLzJ8MDttPWotZXwwO2o9aCsobC0obT4+Mik8PDIp
fDA7a18oanwwLGV8MCxtfDApO2NbZD4+Ml09ajtjW2c+PjJdPShjW2c+PjJdfDApKyhsPDwyKTtu
PWo7YnJlYWt9aj1rLWU+PjE7az0oanwwKT09MD8xOmo7aj1rTyhrPDwyKXwwO2w9aisoKGsrM3ww
KT4+PjI8PDIpfDA7bT1qKyhrPDwyKXwwO2lmKChlfDApPT0oaHwwKSl7bz1sO3A9ZX1lbHNle2s9
ZTtxPWw7ZG97aWYoKHF8MCk9PTApe3I9MH1lbHNle2NbcT4+Ml09Y1trPj4yXTtyPXF9cT1yKzR8
MDtrPWsrNHwwO313aGlsZSgoa3wwKSE9KGh8MCkpO289cTtwPWNbZj4+Ml18MH1jW2Y+PjJdPWo7
Y1tkPj4yXT1sO2NbZz4+Ml09bztjW2k+PjJdPW07aWYoKHB8MCk9PTApe249bDticmVha31rUyhw
KTtuPWNbZD4+Ml18MH1lbHNle249ZX19d2hpbGUoMCk7ZT1uLTR8MDtpZigoZXwwKT09MCl7cz1u
O3Q9cy00fDA7Y1tkPj4yXT10O3JldHVybn1jW2U+PjJdPWNbYj4+Ml07cz1jW2Q+PjJdfDA7dD1z
LTR8MDtjW2Q+PjJdPXQ7cmV0dXJufWZ1bmN0aW9uIGNUKCl7Y1syNDQ2XT0wO2NbMjQ0N109MDtj
WzI0NDhdPTA7YSQoNzIsOTc4NCx1fDApfDA7cmV0dXJufWZ1bmN0aW9uIGNVKGEsYixjKXthPWF8
MDtiPWJ8MDtjPWN8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAuMCxxPTAuMCxyPTAuMCxzPTAuMCx0PTAuMCx1PTAsdj0wLHc9MCx4PTAuMCx5PTAs
ej0wLjAsQT0wLEI9MCxDPTAsRD0wLjAsRT0wLEY9MCxHPTAuMCxIPTAsST0wLEo9MCxLPTAuMCxM
PTAsTT0wLE49MC4wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLjAsVT0wLFY9MCxXPTAuMCxYPTAs
WT0wLjA7ZD1hO2E9YjtMMTM5Nzp3aGlsZSgxKXtiPWE7ZT1hLTh8MDtmPWQ7TDEzOTk6d2hpbGUo
MSl7Zz1mO2k9Yi1nfDA7aj1pPj4zO3N3aXRjaChqfDApe2Nhc2UgMzp7az0xMTAyO2JyZWFrIEwx
Mzk3O2JyZWFrfTtjYXNlIDU6e2s9MTEyMjticmVhayBMMTM5NzticmVha307Y2FzZSAyOntrPTEx
MDA7YnJlYWsgTDEzOTc7YnJlYWt9O2Nhc2UgMDpjYXNlIDE6e2s9MTE4NTticmVhayBMMTM5Nzti
cmVha307Y2FzZSA0OntrPTExMTA7YnJlYWsgTDEzOTc7YnJlYWt9O2RlZmF1bHQ6e319aWYoKGl8
MCk8MjQ4KXtrPTExMjQ7YnJlYWsgTDEzOTd9bD0oanwwKS8yfDA7bT1mKyhsPDwzKXwwO2Rve2lm
KChpfDApPjc5OTIpe249KGp8MCkvNHwwO289Y1IoZixmKyhuPDwzKXwwLG0sZisobitsPDwzKXww
LGUsMCl8MH1lbHNle3A9K2hbbT4+M107cT0raFtmPj4zXTtyPStoW2U+PjNdO249cjxwO2lmKHA+
PXEpe2lmKCFuKXtvPTA7YnJlYWt9aFttPj4zXT1yO2hbZT4+M109cDtzPStoW20+PjNdO3Q9K2hb
Zj4+M107aWYocz49dCl7bz0xO2JyZWFrfWhbZj4+M109cztoW20+PjNdPXQ7bz0yO2JyZWFrfWlm
KG4pe2hbZj4+M109cjtoW2U+PjNdPXE7bz0xO2JyZWFrfWhbZj4+M109cDtoW20+PjNdPXE7cD0r
aFtlPj4zXTtpZihwPj1xKXtvPTE7YnJlYWt9aFttPj4zXT1wO2hbZT4+M109cTtvPTJ9fXdoaWxl
KDApO3E9K2hbZj4+M107cD0raFttPj4zXTtkb3tpZihxPHApe3U9ZTt2PW99ZWxzZXtsPWU7d2hp
bGUoMSl7dz1sLTh8MDtpZigoZnwwKT09KHd8MCkpe2JyZWFrfXg9K2hbdz4+M107aWYoeDxwKXtr
PTExNjI7YnJlYWt9ZWxzZXtsPXd9fWlmKChrfDApPT0xMTYyKXtrPTA7aFtmPj4zXT14O2hbdz4+
M109cTt1PXc7dj1vKzF8MDticmVha31sPWYrOHwwO3I9K2hbZT4+M107aWYocTxyKXt5PWx9ZWxz
ZXtqPWw7d2hpbGUoMSl7aWYoKGp8MCk9PShlfDApKXtrPTExOTc7YnJlYWsgTDEzOTd9ej0raFtq
Pj4zXTtBPWorOHwwO2lmKHE8eil7YnJlYWt9ZWxzZXtqPUF9fWhbaj4+M109cjtoW2U+PjNdPXo7
eT1BfWlmKCh5fDApPT0oZXwwKSl7az0xMTkyO2JyZWFrIEwxMzk3fWVsc2V7Qj1lO0M9eX13aGls
ZSgxKXt0PStoW2Y+PjNdO2w9Qzt3aGlsZSgxKXtEPStoW2w+PjNdO0U9bCs4fDA7aWYodD49RCl7
bD1FfWVsc2V7Rj1CO2JyZWFrfX1kb3tGPUYtOHwwO0c9K2hbRj4+M107fXdoaWxlKHQ8Ryk7aWYo
bD4+PjA+PUY+Pj4wKXtmPWw7Y29udGludWUgTDEzOTl9aFtsPj4zXT1HO2hbRj4+M109RDtCPUY7
Qz1FfX19d2hpbGUoMCk7aj1mKzh8MDtMMTQzODpkb3tpZihqPj4+MDx1Pj4+MCl7aT11O249ajtI
PXY7ST1tO3doaWxlKDEpe3E9K2hbST4+M107Sj1uO3doaWxlKDEpe0s9K2hbSj4+M107TD1KKzh8
MDtpZihLPHEpe0o9TH1lbHNle009aTticmVha319ZG97TT1NLTh8MDtOPStoW00+PjNdO313aGls
ZShOPj1xKTtpZihKPj4+MD5NPj4+MCl7Tz1KO1A9SDtRPUk7YnJlYWsgTDE0Mzh9aFtKPj4zXT1O
O2hbTT4+M109SztpPU07bj1MO0g9SCsxfDA7ST0oSXwwKT09KEp8MCk/TTpJfX1lbHNle089ajtQ
PXY7UT1tfX13aGlsZSgwKTtkb3tpZigoT3wwKT09KFF8MCkpe1I9UH1lbHNle3E9K2hbUT4+M107
cD0raFtPPj4zXTtpZihxPj1wKXtSPVA7YnJlYWt9aFtPPj4zXT1xO2hbUT4+M109cDtSPVArMXww
fX13aGlsZSgwKTtpZigoUnwwKT09MCl7Uz1jVihmLE8sMCl8MDttPU8rOHwwO2lmKGNWKG0sYSww
KXwwKXtrPTExNzQ7YnJlYWt9aWYoUyl7Zj1tO2NvbnRpbnVlfX1tPU87aWYoKG0tZ3wwKT49KGIt
bXwwKSl7az0xMTc4O2JyZWFrfWNVKGYsTyxjKTtmPU8rOHwwfWlmKChrfDApPT0xMTc0KXtrPTA7
aWYoUyl7az0xMTg2O2JyZWFrfWVsc2V7ZD1mO2E9Tztjb250aW51ZX19ZWxzZSBpZigoa3wwKT09
MTE3OCl7az0wO2NVKE8rOHwwLGEsYyk7ZD1mO2E9Tztjb250aW51ZX19aWYoKGt8MCk9PTExMDIp
e089Zis4fDA7Sz0raFtPPj4zXTtOPStoW2Y+PjNdO0Q9K2hbZT4+M107ZD1EPEs7aWYoSz49Til7
aWYoIWQpe3JldHVybn1oW08+PjNdPUQ7aFtlPj4zXT1LO0c9K2hbTz4+M107ej0raFtmPj4zXTtp
ZihHPj16KXtyZXR1cm59aFtmPj4zXT1HO2hbTz4+M109ejtyZXR1cm59aWYoZCl7aFtmPj4zXT1E
O2hbZT4+M109TjtyZXR1cm59aFtmPj4zXT1LO2hbTz4+M109TjtLPStoW2U+PjNdO2lmKEs+PU4p
e3JldHVybn1oW08+PjNdPUs7aFtlPj4zXT1OO3JldHVybn1lbHNlIGlmKChrfDApPT0xMTIyKXtj
UihmLGYrOHwwLGYrMTZ8MCxmKzI0fDAsZSwwKXwwO3JldHVybn1lbHNlIGlmKChrfDApPT0xMTI0
KXtPPWYrMTZ8MDtkPWYrOHwwO049K2hbZD4+M107Sz0raFtmPj4zXTtEPStoW08+PjNdO2M9RDxO
O2Rve2lmKE48Syl7aWYoYyl7aFtmPj4zXT1EO2hbTz4+M109SztUPUs7YnJlYWt9aFtmPj4zXT1O
O2hbZD4+M109SztpZihEPj1LKXtUPUQ7YnJlYWt9aFtkPj4zXT1EO2hbTz4+M109SztUPUt9ZWxz
ZXtpZighYyl7VD1EO2JyZWFrfWhbZD4+M109RDtoW08+PjNdPU47aWYoRD49Syl7VD1OO2JyZWFr
fWhbZj4+M109RDtoW2Q+PjNdPUs7VD1OfX13aGlsZSgwKTtkPWYrMjR8MDtpZigoZHwwKT09KGF8
MCkpe3JldHVybn1lbHNle1U9TztWPWQ7Vz1UfXdoaWxlKDEpe1Q9K2hbVj4+M107aWYoVDxXKXtk
PVU7Tz1WO049Vzt3aGlsZSgxKXtoW08+PjNdPU47aWYoKGR8MCk9PShmfDApKXtYPWY7YnJlYWt9
Yz1kLTh8MDtLPStoW2M+PjNdO2lmKFQ8Syl7Tz1kO2Q9YztOPUt9ZWxzZXtYPWQ7YnJlYWt9fWhb
WD4+M109VH1kPVYrOHwwO2lmKChkfDApPT0oYXwwKSl7YnJlYWt9Tj0raFtWPj4zXTtVPVY7Vj1k
O1c9Tn1yZXR1cm59ZWxzZSBpZigoa3wwKT09MTE5Nyl7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTEx
MDApe1c9K2hbZT4+M107Tj0raFtmPj4zXTtpZihXPj1OKXtyZXR1cm59aFtmPj4zXT1XO2hbZT4+
M109TjtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTE4NSl7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTEx
ODYpe3JldHVybn1lbHNlIGlmKChrfDApPT0xMTkyKXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTEx
MCl7az1mKzh8MDtWPWYrMTZ8MDtOPStoW2s+PjNdO1c9K2hbZj4+M107Sz0raFtWPj4zXTtVPUs8
Tjtkb3tpZihOPFcpe2lmKFUpe2hbZj4+M109SztoW1Y+PjNdPVc7WT1XO2JyZWFrfWhbZj4+M109
TjtoW2s+PjNdPVc7aWYoSz49Vyl7WT1LO2JyZWFrfWhbaz4+M109SztoW1Y+PjNdPVc7WT1XfWVs
c2V7aWYoIVUpe1k9SzticmVha31oW2s+PjNdPUs7aFtWPj4zXT1OO2lmKEs+PVcpe1k9TjticmVh
a31oW2Y+PjNdPUs7aFtrPj4zXT1XO1k9Tn19d2hpbGUoMCk7Tj0raFtlPj4zXTtpZihOPj1ZKXty
ZXR1cm59aFtWPj4zXT1OO2hbZT4+M109WTtZPStoW1Y+PjNdO049K2hbaz4+M107aWYoWT49Til7
cmV0dXJufWhbaz4+M109WTtoW1Y+PjNdPU47Tj0raFtmPj4zXTtpZihZPj1OKXtyZXR1cm59aFtm
Pj4zXT1ZO2hbaz4+M109TjtyZXR1cm59fWZ1bmN0aW9uIGNWKGEsYixjKXthPWF8MDtiPWJ8MDtj
PWN8MDt2YXIgZD0wLGU9MCxmPTAuMCxnPTAuMCxpPTAuMCxqPTAsaz0wLjAsbD0wLjAsbT0wLG49
MC4wLG89MC4wLHA9MCxxPTAscj0wLHM9MC4wLHQ9MCx1PTAsdj0wO3N3aXRjaChiLWE+PjN8MCl7
Y2FzZSAwOmNhc2UgMTp7ZD0xO3JldHVybiBkfDB9O2Nhc2UgMzp7Yz1hKzh8MDtlPWItOHwwO2Y9
K2hbYz4+M107Zz0raFthPj4zXTtpPStoW2U+PjNdO2o9aTxmO2lmKGY+PWcpe2lmKCFqKXtkPTE7
cmV0dXJuIGR8MH1oW2M+PjNdPWk7aFtlPj4zXT1mO2s9K2hbYz4+M107bD0raFthPj4zXTtpZihr
Pj1sKXtkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPWs7aFtjPj4zXT1sO2Q9MTtyZXR1cm4gZHwwfWlm
KGope2hbYT4+M109aTtoW2U+PjNdPWc7ZD0xO3JldHVybiBkfDB9aFthPj4zXT1mO2hbYz4+M109
ZztmPStoW2U+PjNdO2lmKGY+PWcpe2Q9MTtyZXR1cm4gZHwwfWhbYz4+M109ZjtoW2U+PjNdPWc7
ZD0xO3JldHVybiBkfDB9O2Nhc2UgMjp7ZT1iLTh8MDtnPStoW2U+PjNdO2Y9K2hbYT4+M107aWYo
Zz49Zil7ZD0xO3JldHVybiBkfDB9aFthPj4zXT1nO2hbZT4+M109ZjtkPTE7cmV0dXJuIGR8MH07
Y2FzZSA0OntlPWErOHwwO2M9YSsxNnwwO2o9Yi04fDA7Zj0raFtlPj4zXTtnPStoW2E+PjNdO2k9
K2hbYz4+M107bT1pPGY7ZG97aWYoZjxnKXtpZihtKXtoW2E+PjNdPWk7aFtjPj4zXT1nO249Zzti
cmVha31oW2E+PjNdPWY7aFtlPj4zXT1nO2lmKGk+PWcpe249aTticmVha31oW2U+PjNdPWk7aFtj
Pj4zXT1nO249Z31lbHNle2lmKCFtKXtuPWk7YnJlYWt9aFtlPj4zXT1pO2hbYz4+M109ZjtpZihp
Pj1nKXtuPWY7YnJlYWt9aFthPj4zXT1pO2hbZT4+M109ZztuPWZ9fXdoaWxlKDApO2Y9K2hbaj4+
M107aWYoZj49bil7ZD0xO3JldHVybiBkfDB9aFtjPj4zXT1mO2hbaj4+M109bjtuPStoW2M+PjNd
O2Y9K2hbZT4+M107aWYobj49Zil7ZD0xO3JldHVybiBkfDB9aFtlPj4zXT1uO2hbYz4+M109Zjtm
PStoW2E+PjNdO2lmKG4+PWYpe2Q9MTtyZXR1cm4gZHwwfWhbYT4+M109bjtoW2U+PjNdPWY7ZD0x
O3JldHVybiBkfDB9O2Nhc2UgNTp7Y1IoYSxhKzh8MCxhKzE2fDAsYSsyNHwwLGItOHwwLDApfDA7
ZD0xO3JldHVybiBkfDB9O2RlZmF1bHQ6e2U9YSsxNnwwO2M9YSs4fDA7Zj0raFtjPj4zXTtuPSto
W2E+PjNdO2c9K2hbZT4+M107aj1nPGY7ZG97aWYoZjxuKXtpZihqKXtoW2E+PjNdPWc7aFtlPj4z
XT1uO289bjticmVha31oW2E+PjNdPWY7aFtjPj4zXT1uO2lmKGc+PW4pe289ZzticmVha31oW2M+
PjNdPWc7aFtlPj4zXT1uO289bn1lbHNle2lmKCFqKXtvPWc7YnJlYWt9aFtjPj4zXT1nO2hbZT4+
M109ZjtpZihnPj1uKXtvPWY7YnJlYWt9aFthPj4zXT1nO2hbYz4+M109bjtvPWZ9fXdoaWxlKDAp
O2M9YSsyNHwwO2lmKChjfDApPT0oYnwwKSl7ZD0xO3JldHVybiBkfDB9ZWxzZXtwPWU7cT0wO3I9
YztzPW99d2hpbGUoMSl7bz0raFtyPj4zXTtpZihvPHMpe2M9cDtlPXI7Zj1zO3doaWxlKDEpe2hb
ZT4+M109ZjtpZigoY3wwKT09KGF8MCkpe3Q9YTticmVha31qPWMtOHwwO249K2hbaj4+M107aWYo
bzxuKXtlPWM7Yz1qO2Y9bn1lbHNle3Q9YzticmVha319aFt0Pj4zXT1vO2M9cSsxfDA7aWYoKGN8
MCk9PTgpe2JyZWFrfWVsc2V7dT1jfX1lbHNle3U9cX1jPXIrOHwwO2lmKChjfDApPT0oYnwwKSl7
ZD0xO3Y9MTI1NjticmVha31mPStoW3I+PjNdO3A9cjtxPXU7cj1jO3M9Zn1pZigodnwwKT09MTI1
Nil7cmV0dXJuIGR8MH1kPShyKzh8MCk9PShifDApO3JldHVybiBkfDB9fXJldHVybiAwfWZ1bmN0
aW9uIGNXKGEpe2E9YXwwO3ZhciBiPTA7YT0oY1s0MDM4XXwwKS0xfDA7Y1s0MDM4XT1hO2lmKChh
fDApIT0wKXtyZXR1cm59YjtyZXR1cm59ZnVuY3Rpb24gY1goYil7Yj1ifDA7dmFyIGQ9MCxlPTAs
Zj0wO2Rve2lmKChhWzE2MjgwXXwwKT09MCl7aWYoKGJjKDE2MjgwKXwwKT09MCl7YnJlYWt9Y1sy
OTYyXT01NDg5O2I9MTtkPTU0ODk7ZG97ZD0oYWcoZD4+PjMwXmQsMTgxMjQzMzI1Myl8MCkrYnww
O2NbMTE4NDgrKGI8PDIpPj4yXT1kO2I9YisxfDA7fXdoaWxlKGI+Pj4wPDYyNCk7Y1szNTg2XT0w
fX13aGlsZSgwKTtiPWNbMzU4Nl18MDtkPSgoYisxfDApPj4+MCklNjI0fDA7ZT0xMTg0OCsoYjw8
Mil8MDtmPWNbMTE4NDgrKGQ8PDIpPj4yXXwwO2NbZT4+Ml09LShmJjEpJi0xNzI3NDgzNjgxXmNb
MTE4NDgrKCgoKGIrMzk3fDApPj4+MCklNjI0fDApPDwyKT4+Ml1eKGYmMjE0NzQ4MzY0NnxjW2U+
PjJdJi0yMTQ3NDgzNjQ4KT4+PjE7ZT1jWzExODQ4KyhjWzM1ODZdPDwyKT4+Ml18MDtmPWU+Pj4x
MV5lO2NbMzU4Nl09ZDtkPWY8PDcmLTE2NTgwMzg2NTZeZjtmPWQ8PDE1Ji0yNzIyMzY1NDReZDty
ZXR1cm4gZj4+PjE4XmZ8MH1mdW5jdGlvbiBjWShhKXthPWF8MDt2YXIgYj0wO2I7Y1s0MDM4XT0x
O3JldHVybn1mdW5jdGlvbiBjWihiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxqPTAs
az0wLGw9MDtiPWk7aT1pKzMyfDA7ZD1ifDA7ZT1iKzh8MDtmPWIrMTZ8MDtnPWIrMjR8MDtkcSgx
NTEzNixjW28+PjJdfDAsMTUxOTIpO2NbNDAxNF09NDUwMDtjWzQwMTZdPTQ1MjA7Y1s0MDE1XT0w
O2g9Y1sxMTIyXXwwO2VrKDE2MDU2K2h8MCwxNTEzNik7Y1toKzE2MTI4Pj4yXT0wO2NbaCsxNjEz
Mj4+Ml09LTE7aD1jW3Q+PjJdfDA7ZXAoMTUwNDApO2NbMzc2MF09NDY0ODtjWzM3NjhdPWg7aU4o
ZywxNTA0NCk7aD1pWChnLDE1MzkyKXwwO2o9aDtpTyhnKTtjWzM3NjldPWo7Y1szNzcwXT0xNTIw
MDthWzE1MDg0XT0oYjBbY1soY1toPj4yXXwwKSsyOD4+Ml0mMTI3XShqKXwwKSYxO2NbMzk0OF09
NDQwNDtjWzM5NDldPTQ0MjQ7aj1jWzEwOThdfDA7ZWsoMTU3OTIranwwLDE1MDQwKTtoPWorNzJ8
MDtjWzE1NzkyK2g+PjJdPTA7Zz1qKzc2fDA7Y1sxNTc5MitnPj4yXT0tMTtrPWNbcj4+Ml18MDtl
cCgxNTA4OCk7Y1szNzcyXT00NjQ4O2NbMzc4MF09aztpTihmLDE1MDkyKTtrPWlYKGYsMTUzOTIp
fDA7bD1rO2lPKGYpO2NbMzc4MV09bDtjWzM3ODJdPTE1MjA4O2FbMTUxMzJdPShiMFtjWyhjW2s+
PjJdfDApKzI4Pj4yXSYxMjddKGwpfDApJjE7Y1szOTkyXT00NDA0O2NbMzk5M109NDQyNDtlaygx
NTk2OCtqfDAsMTUwODgpO2NbMTU5NjgraD4+Ml09MDtjWzE1OTY4K2c+PjJdPS0xO2w9Y1soY1so
Y1szOTkyXXwwKS0xMj4+Ml18MCkrMTU5OTI+PjJdfDA7Y1szOTcwXT00NDA0O2NbMzk3MV09NDQy
NDtlaygxNTg4MCtqfDAsbCk7Y1sxNTg4MCtoPj4yXT0wO2NbMTU4ODArZz4+Ml09LTE7Y1soY1so
Y1s0MDE0XXwwKS0xMj4+Ml18MCkrMTYxMjg+PjJdPTE1NzkyO2c9KGNbKGNbMzk5Ml18MCktMTI+
PjJdfDApKzE1OTcyfDA7Y1tnPj4yXT1jW2c+PjJdfDgxOTI7Y1soY1soY1szOTkyXXwwKS0xMj4+
Ml18MCkrMTYwNDA+PjJdPTE1NzkyO2MzKDE0OTg0LGNbbz4+Ml18MCwxNTIxNik7Y1szOTI2XT00
NDUyO2NbMzkyOF09NDQ3MjtjWzM5MjddPTA7Zz1jWzExMTBdfDA7ZWsoMTU3MDQrZ3wwLDE0OTg0
KTtjW2crMTU3NzY+PjJdPTA7Y1tnKzE1NzgwPj4yXT0tMTtnPWNbdD4+Ml18MDtldygxNDg4OCk7
Y1szNzIyXT00NTc2O2NbMzczMF09ZztpTihlLDE0ODkyKTtnPWlYKGUsMTUzODQpfDA7aD1nO2lP
KGUpO2NbMzczMV09aDtjWzM3MzJdPTE1MjI0O2FbMTQ5MzJdPShiMFtjWyhjW2c+PjJdfDApKzI4
Pj4yXSYxMjddKGgpfDApJjE7Y1szODU2XT00MzU2O2NbMzg1N109NDM3NjtoPWNbMTA4Nl18MDtl
aygxNTQyNCtofDAsMTQ4ODgpO2c9aCs3MnwwO2NbMTU0MjQrZz4+Ml09MDtlPWgrNzZ8MDtjWzE1
NDI0K2U+PjJdPS0xO2w9Y1tyPj4yXXwwO2V3KDE0OTM2KTtjWzM3MzRdPTQ1NzY7Y1szNzQyXT1s
O2lOKGQsMTQ5NDApO2w9aVgoZCwxNTM4NCl8MDtqPWw7aU8oZCk7Y1szNzQzXT1qO2NbMzc0NF09
MTUyMzI7YVsxNDk4MF09KGIwW2NbKGNbbD4+Ml18MCkrMjg+PjJdJjEyN10oail8MCkmMTtjWzM5
MDBdPTQzNTY7Y1szOTAxXT00Mzc2O2VrKDE1NjAwK2h8MCwxNDkzNik7Y1sxNTYwMCtnPj4yXT0w
O2NbMTU2MDArZT4+Ml09LTE7aj1jWyhjWyhjWzM5MDBdfDApLTEyPj4yXXwwKSsxNTYyND4+Ml18
MDtjWzM4NzhdPTQzNTY7Y1szODc5XT00Mzc2O2VrKDE1NTEyK2h8MCxqKTtjWzE1NTEyK2c+PjJd
PTA7Y1sxNTUxMitlPj4yXT0tMTtjWyhjWyhjWzM5MjZdfDApLTEyPj4yXXwwKSsxNTc3Nj4+Ml09
MTU0MjQ7ZT0oY1soY1szOTAwXXwwKS0xMj4+Ml18MCkrMTU2MDR8MDtjW2U+PjJdPWNbZT4+Ml18
ODE5MjtjWyhjWyhjWzM5MDBdfDApLTEyPj4yXXwwKSsxNTY3Mj4+Ml09MTU0MjQ7aT1iO3JldHVy
bn1mdW5jdGlvbiBjXyhhKXthPWF8MDtldihhfDApO3JldHVybn1mdW5jdGlvbiBjJChhKXthPWF8
MDtldihhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBjMChiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBl
PTA7YjBbY1soY1tiPj4yXXwwKSsyND4+Ml0mMTI3XShiKXwwO2U9aVgoZCwxNTM4NCl8MDtkPWU7
Y1tiKzM2Pj4yXT1kO2FbYis0NHwwXT0oYjBbY1soY1tlPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXww
KSYxO3JldHVybn1mdW5jdGlvbiBjMShhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9MCxo
PTAsaj0wLGs9MCxsPTAsbT0wLG49MDtiPWk7aT1pKzE2fDA7ZD1ifDA7ZT1iKzh8MDtmPWErMzZ8
MDtnPWErNDB8MDtoPWR8MDtqPWQrOHwwO2s9ZDtkPWErMzJ8MDtMMTY0Mjp3aGlsZSgxKXthPWNb
Zj4+Ml18MDtsPWIkW2NbKGNbYT4+Ml18MCkrMjA+PjJdJjMxXShhLGNbZz4+Ml18MCxoLGosZSl8
MDthPShjW2U+PjJdfDApLWt8MDtpZigoYU0oaHwwLDEsYXwwLGNbZD4+Ml18MCl8MCkhPShhfDAp
KXttPS0xO249MTMwNDticmVha31zd2l0Y2gobHwwKXtjYXNlIDI6e209LTE7bj0xMzA1O2JyZWFr
IEwxNjQyO2JyZWFrfTtjYXNlIDE6e2JyZWFrfTtkZWZhdWx0OntuPTEzMDE7YnJlYWsgTDE2NDJ9
fX1pZigobnwwKT09MTMwNCl7aT1iO3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTMwNSl7aT1i
O3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTMwMSl7bT0oKGFLKGNbZD4+Ml18MCl8MCkhPTAp
PDwzMT4+MzE7aT1iO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rpb24gYzIoYixkKXtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4fDA7aD1lKzE2
fDA7aj1lKzI0fDA7az0oZHwwKT09LTE7TDE2NTE6ZG97aWYoIWspe2NbZz4+Ml09ZDtpZigoYVti
KzQ0fDBdJjEpIT0wKXtpZigoYU0oZ3wwLDQsMSxjW2IrMzI+PjJdfDApfDApPT0xKXticmVha31l
bHNle2w9LTF9aT1lO3JldHVybiBsfDB9bT1mfDA7Y1toPj4yXT1tO249Zys0fDA7bz1iKzM2fDA7
cD1iKzQwfDA7cT1mKzh8MDtyPWY7cz1iKzMyfDA7dD1nO3doaWxlKDEpe3U9Y1tvPj4yXXwwO3Y9
YjZbY1soY1t1Pj4yXXwwKSsxMj4+Ml0mMzFdKHUsY1twPj4yXXwwLHQsbixqLG0scSxoKXwwO2lm
KChjW2o+PjJdfDApPT0odHwwKSl7bD0tMTt3PTEzMjA7YnJlYWt9aWYoKHZ8MCk9PTMpe3c9MTMx
MjticmVha311PSh2fDApPT0xO2lmKHY+Pj4wPj0yKXtsPS0xO3c9MTMyMjticmVha312PShjW2g+
PjJdfDApLXJ8MDtpZigoYU0obXwwLDEsdnwwLGNbcz4+Ml18MCl8MCkhPSh2fDApKXtsPS0xO3c9
MTMyMTticmVha31pZih1KXt0PXU/Y1tqPj4yXXwwOnR9ZWxzZXticmVhayBMMTY1MX19aWYoKHd8
MCk9PTEzMjEpe2k9ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTEzMjIpe2k9ZTtyZXR1cm4g
bHwwfWVsc2UgaWYoKHd8MCk9PTEzMTIpe2lmKChhTSh0fDAsMSwxLGNbcz4+Ml18MCl8MCk9PTEp
e2JyZWFrfWVsc2V7bD0tMX1pPWU7cmV0dXJuIGx8MH1lbHNlIGlmKCh3fDApPT0xMzIwKXtpPWU7
cmV0dXJuIGx8MH19fXdoaWxlKDApO2w9az8wOmQ7aT1lO3JldHVybiBsfDB9ZnVuY3Rpb24gYzMo
YixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxqPTA7Zj1pO2k9aSs4fDA7
Zz1mfDA7ZXcoYnwwKTtjW2I+PjJdPTQ5NzY7Y1tiKzMyPj4yXT1kO2NbYis0MD4+Ml09ZTtjW2Ir
NDg+PjJdPS0xO2FbYis1MnwwXT0wO2lOKGcsYis0fDApO2U9aVgoZywxNTM4NCl8MDtkPWU7aD1i
KzM2fDA7Y1toPj4yXT1kO2o9Yis0NHwwO2Nbaj4+Ml09YjBbY1soY1tlPj4yXXwwKSsyND4+Ml0m
MTI3XShkKXwwO2Q9Y1toPj4yXXwwO2FbYis1M3wwXT0oYjBbY1soY1tkPj4yXXwwKSsyOD4+Ml0m
MTI3XShkKXwwKSYxO2lmKChjW2o+PjJdfDApPD04KXtpTyhnKTtpPWY7cmV0dXJufWhWKDE4NCk7
aU8oZyk7aT1mO3JldHVybn1mdW5jdGlvbiBjNChhKXthPWF8MDtldihhfDApO3JldHVybn1mdW5j
dGlvbiBjNShhKXthPWF8MDtldihhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBjNihiLGQpe2I9
YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtlPWlYKGQsMTUzODQpfDA7ZD1lO2Y9YiszNnwwO2Nb
Zj4+Ml09ZDtnPWIrNDR8MDtjW2c+PjJdPWIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZCl8
MDtkPWNbZj4+Ml18MDthW2IrNTN8MF09KGIwW2NbKGNbZD4+Ml18MCkrMjg+PjJdJjEyN10oZCl8
MCkmMTtpZigoY1tnPj4yXXwwKTw9OCl7cmV0dXJufWhWKDE4NCk7cmV0dXJufWZ1bmN0aW9uIGM3
KGEpe2E9YXwwO3JldHVybiBkYShhLDApfDB9ZnVuY3Rpb24gYzgoYSl7YT1hfDA7cmV0dXJuIGRh
KGEsMSl8MH1mdW5jdGlvbiBjOShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAs
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9
ZSs4fDA7aD1lKzE2fDA7aj1lKzI0fDA7az1iKzUyfDA7bD0oYVtrXSYxKSE9MDtpZigoZHwwKT09
LTEpe2lmKGwpe209LTE7aT1lO3JldHVybiBtfDB9bj1jW2IrNDg+PjJdfDA7YVtrXT0obnwwKSE9
LTF8MDttPW47aT1lO3JldHVybiBtfDB9bj1iKzQ4fDA7TDE2OTQ6ZG97aWYobCl7Y1toPj4yXT1j
W24+PjJdO289Y1tiKzM2Pj4yXXwwO3A9ZnwwO3N3aXRjaChiNltjWyhjW28+PjJdfDApKzEyPj4y
XSYzMV0obyxjW2IrNDA+PjJdfDAsaCxoKzR8MCxqLHAsZis4fDAsZyl8MCl7Y2FzZSAyOmNhc2Ug
MTp7bT0tMTtpPWU7cmV0dXJuIG18MH07Y2FzZSAzOnthW3BdPWNbbj4+Ml0mMjU1O2NbZz4+Ml09
ZisxO2JyZWFrfTtkZWZhdWx0Ont9fW89YiszMnwwO3doaWxlKDEpe3E9Y1tnPj4yXXwwO2lmKHE+
Pj4wPD1wPj4+MCl7YnJlYWsgTDE2OTR9cj1xLTF8MDtjW2c+PjJdPXI7aWYoKGJBKGFbcl18MCxj
W28+PjJdfDApfDApPT0tMSl7bT0tMTticmVha319aT1lO3JldHVybiBtfDB9fXdoaWxlKDApO2Nb
bj4+Ml09ZDthW2tdPTE7bT1kO2k9ZTtyZXR1cm4gbXwwfWZ1bmN0aW9uIGRhKGIsZCl7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4
fDA7aD1lKzE2fDA7aj1lKzI0fDA7az1iKzUyfDA7aWYoKGFba10mMSkhPTApe2w9Yis0OHwwO209
Y1tsPj4yXXwwO2lmKCFkKXtuPW07aT1lO3JldHVybiBufDB9Y1tsPj4yXT0tMTthW2tdPTA7bj1t
O2k9ZTtyZXR1cm4gbnwwfW09Y1tiKzQ0Pj4yXXwwO2s9KG18MCk+MT9tOjE7TDE3MTQ6ZG97aWYo
KGt8MCk+MCl7bT1iKzMyfDA7bD0wO3doaWxlKDEpe289YV8oY1ttPj4yXXwwKXwwO2lmKChvfDAp
PT0tMSl7bj0tMTticmVha31hW2YrbHwwXT1vJjI1NTtsPWwrMXwwO2lmKChsfDApPj0oa3wwKSl7
YnJlYWsgTDE3MTR9fWk9ZTtyZXR1cm4gbnwwfX13aGlsZSgwKTtMMTcyMTpkb3tpZigoYVtiKzUz
fDBdJjEpPT0wKXtsPWIrNDB8MDttPWIrMzZ8MDtvPWZ8MDtwPWcrNHwwO3E9YiszMnwwO3I9aztM
MTcyMzp3aGlsZSgxKXtzPWNbbD4+Ml18MDt0PXM7dT1jW3Q+PjJdfDA7dj1jW3QrND4+Ml18MDt0
PWNbbT4+Ml18MDt3PWYrcnwwO3N3aXRjaChiNltjWyhjW3Q+PjJdfDApKzE2Pj4yXSYzMV0odCxz
LG8sdyxoLGcscCxqKXwwKXtjYXNlIDE6e2JyZWFrfTtjYXNlIDI6e249LTE7eD0xMzgwO2JyZWFr
IEwxNzIzO2JyZWFrfTtjYXNlIDM6e3g9MTM2OTticmVhayBMMTcyMzticmVha307ZGVmYXVsdDp7
eT1yO2JyZWFrIEwxNzIxfX1zPWNbbD4+Ml18MDtjW3M+PjJdPXU7Y1tzKzQ+PjJdPXY7aWYoKHJ8
MCk9PTgpe249LTE7eD0xMzc5O2JyZWFrfXY9YV8oY1txPj4yXXwwKXwwO2lmKCh2fDApPT0tMSl7
bj0tMTt4PTEzODU7YnJlYWt9YVt3XT12JjI1NTtyPXIrMXwwfWlmKCh4fDApPT0xMzc5KXtpPWU7
cmV0dXJuIG58MH1lbHNlIGlmKCh4fDApPT0xMzgwKXtpPWU7cmV0dXJuIG58MH1lbHNlIGlmKCh4
fDApPT0xMzg1KXtpPWU7cmV0dXJuIG58MH1lbHNlIGlmKCh4fDApPT0xMzY5KXtjW2c+PjJdPWFb
b118MDt5PXI7YnJlYWt9fWVsc2V7Y1tnPj4yXT1hW2Z8MF18MDt5PWt9fXdoaWxlKDApO2lmKGQp
e2Q9Y1tnPj4yXXwwO2NbYis0OD4+Ml09ZDtuPWQ7aT1lO3JldHVybiBufDB9ZD1iKzMyfDA7Yj15
O3doaWxlKDEpe2lmKChifDApPD0wKXticmVha315PWItMXwwO2lmKChiQShhW2YreXwwXXwwLGNb
ZD4+Ml18MCl8MCk9PS0xKXtuPS0xO3g9MTM4MjticmVha31lbHNle2I9eX19aWYoKHh8MCk9PTEz
ODIpe2k9ZTtyZXR1cm4gbnwwfW49Y1tnPj4yXXwwO2k9ZTtyZXR1cm4gbnwwfWZ1bmN0aW9uIGRi
KGEpe2E9YXwwO2VvKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGRjKGEpe2E9YXwwO2VvKGF8MCk7a1Mo
YSk7cmV0dXJufWZ1bmN0aW9uIGRkKGEpe2E9YXwwO2ZnKDE1NzkyKXwwO2ZnKDE1ODgwKXwwO2Zo
KDE1NDI0KXwwO2ZoKDE1NTEyKXwwO3JldHVybn1mdW5jdGlvbiBkZShhKXthPWF8MDtyZXR1cm59
ZnVuY3Rpb24gZGYoYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGRnKGEpe2E9YXwwO3ZhciBiPTA7
Yj1hKzR8MDtJPWNbYj4+Ml18MCxjW2I+PjJdPUkrMSxJO3JldHVybn1mdW5jdGlvbiBkaChhKXth
PWF8MDtyZXR1cm4gY1thKzQ+PjJdfDB9ZnVuY3Rpb24gZGkoYSl7YT1hfDA7cmV0dXJuIGNbYSs0
Pj4yXXwwfWZ1bmN0aW9uIGRqKGEpe2E9YXwwO2NbYT4+Ml09NDMwNDtyZXR1cm59ZnVuY3Rpb24g
ZGsoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO2NbYT4+Ml09ZDtjW2ErND4+Ml09YjtyZXR1cm59
ZnVuY3Rpb24gZGwoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTA7aWYoKGNbYis0Pj4y
XXwwKSE9KGF8MCkpe2U9MDtyZXR1cm4gZXwwfWU9KGNbYj4+Ml18MCk9PShkfDApO3JldHVybiBl
fDB9ZnVuY3Rpb24gZG0oYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wO2IwW2NbKGNbYj4+Ml18MCkr
MjQ+PjJdJjEyN10oYil8MDtlPWlYKGQsMTUzOTIpfDA7ZD1lO2NbYiszNj4+Ml09ZDthW2IrNDR8
MF09KGIwW2NbKGNbZT4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtyZXR1cm59ZnVuY3Rpb24g
ZG4oYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxu
PTA7Yj1pO2k9aSsxNnwwO2Q9YnwwO2U9Yis4fDA7Zj1hKzM2fDA7Zz1hKzQwfDA7aD1kfDA7aj1k
Kzh8MDtrPWQ7ZD1hKzMyfDA7TDE3Njc6d2hpbGUoMSl7YT1jW2Y+PjJdfDA7bD1iJFtjWyhjW2E+
PjJdfDApKzIwPj4yXSYzMV0oYSxjW2c+PjJdfDAsaCxqLGUpfDA7YT0oY1tlPj4yXXwwKS1rfDA7
aWYoKGFNKGh8MCwxLGF8MCxjW2Q+PjJdfDApfDApIT0oYXwwKSl7bT0tMTtuPTE0MTQ7YnJlYWt9
c3dpdGNoKGx8MCl7Y2FzZSAyOnttPS0xO249MTQxNTticmVhayBMMTc2NzticmVha307Y2FzZSAx
OnticmVha307ZGVmYXVsdDp7bj0xNDExO2JyZWFrIEwxNzY3fX19aWYoKG58MCk9PTE0MTUpe2k9
YjtyZXR1cm4gbXwwfWVsc2UgaWYoKG58MCk9PTE0MTEpe209KChhSyhjW2Q+PjJdfDApfDApIT0w
KTw8MzE+PjMxO2k9YjtyZXR1cm4gbXwwfWVsc2UgaWYoKG58MCk9PTE0MTQpe2k9YjtyZXR1cm4g
bXwwfXJldHVybiAwfWZ1bmN0aW9uIGRwKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0w
LGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtnPWUrOHwwO2g9ZSsxNnwwO2o9ZSsyNHwwO2s9KGR8MCk9
PS0xO0wxNzc2OmRve2lmKCFrKXthW2ddPWQmMjU1O2lmKChhW2IrNDR8MF0mMSkhPTApe2lmKChh
TShnfDAsMSwxLGNbYiszMj4+Ml18MCl8MCk9PTEpe2JyZWFrfWVsc2V7bD0tMX1pPWU7cmV0dXJu
IGx8MH1tPWZ8MDtjW2g+PjJdPW07bj1nKzF8MDtvPWIrMzZ8MDtwPWIrNDB8MDtxPWYrOHwwO3I9
ZjtzPWIrMzJ8MDt0PWc7d2hpbGUoMSl7dT1jW28+PjJdfDA7dj1iNltjWyhjW3U+PjJdfDApKzEy
Pj4yXSYzMV0odSxjW3A+PjJdfDAsdCxuLGosbSxxLGgpfDA7aWYoKGNbaj4+Ml18MCk9PSh0fDAp
KXtsPS0xO3c9MTQzMzticmVha31pZigodnwwKT09Myl7dz0xNDIyO2JyZWFrfXU9KHZ8MCk9PTE7
aWYodj4+PjA+PTIpe2w9LTE7dz0xNDMyO2JyZWFrfXY9KGNbaD4+Ml18MCktcnwwO2lmKChhTSht
fDAsMSx2fDAsY1tzPj4yXXwwKXwwKSE9KHZ8MCkpe2w9LTE7dz0xNDMwO2JyZWFrfWlmKHUpe3Q9
dT9jW2o+PjJdfDA6dH1lbHNle2JyZWFrIEwxNzc2fX1pZigod3wwKT09MTQzMCl7aT1lO3JldHVy
biBsfDB9ZWxzZSBpZigod3wwKT09MTQyMil7aWYoKGFNKHR8MCwxLDEsY1tzPj4yXXwwKXwwKT09
MSl7YnJlYWt9ZWxzZXtsPS0xfWk9ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTE0MzIpe2k9
ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTE0MzMpe2k9ZTtyZXR1cm4gbHwwfX19d2hpbGUo
MCk7bD1rPzA6ZDtpPWU7cmV0dXJuIGx8MH1mdW5jdGlvbiBkcShiLGQsZSl7Yj1ifDA7ZD1kfDA7
ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGo9MDtmPWk7aT1pKzh8MDtnPWZ8MDtlcChifDApO2NbYj4+
Ml09NTA0ODtjW2IrMzI+PjJdPWQ7Y1tiKzQwPj4yXT1lO2NbYis0OD4+Ml09LTE7YVtiKzUyfDBd
PTA7aU4oZyxiKzR8MCk7ZT1pWChnLDE1MzkyKXwwO2Q9ZTtoPWIrMzZ8MDtjW2g+PjJdPWQ7aj1i
KzQ0fDA7Y1tqPj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGQpfDA7ZD1jW2g+PjJd
fDA7YVtiKzUzfDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7aWYoKGNb
aj4+Ml18MCk8PTgpe2lPKGcpO2k9ZjtyZXR1cm59aFYoMTg0KTtpTyhnKTtpPWY7cmV0dXJufWZ1
bmN0aW9uIGRyKGEpe2E9YXwwO2VvKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGRzKGEpe2E9YXwwO2Vv
KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGR0KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wO2U9aVgoZCwxNTM5Mil8MDtkPWU7Zj1iKzM2fDA7Y1tmPj4yXT1kO2c9Yis0NHwwO2Nb
Zz4+Ml09YjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShkKXwwO2Q9Y1tmPj4yXXwwO2FbYis1
M3wwXT0oYjBbY1soY1tkPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO2lmKChjW2c+PjJdfDAp
PD04KXtyZXR1cm59aFYoMTg0KTtyZXR1cm59ZnVuY3Rpb24gZHUoYSl7YT1hfDA7cmV0dXJuIGR4
KGEsMCl8MH1mdW5jdGlvbiBkdihhKXthPWF8MDtyZXR1cm4gZHgoYSwxKXwwfWZ1bmN0aW9uIGR3
KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUrMTZ8MDtqPWUr
MjR8MDtrPWIrNTJ8MDtsPShhW2tdJjEpIT0wO2lmKChkfDApPT0tMSl7aWYobCl7bT0tMTtpPWU7
cmV0dXJuIG18MH1uPWNbYis0OD4+Ml18MDthW2tdPShufDApIT0tMXwwO209bjtpPWU7cmV0dXJu
IG18MH1uPWIrNDh8MDtMMTgxOTpkb3tpZihsKXthW2hdPWNbbj4+Ml0mMjU1O289Y1tiKzM2Pj4y
XXwwO3A9ZnwwO3N3aXRjaChiNltjWyhjW28+PjJdfDApKzEyPj4yXSYzMV0obyxjW2IrNDA+PjJd
fDAsaCxoKzF8MCxqLHAsZis4fDAsZyl8MCl7Y2FzZSAzOnthW3BdPWNbbj4+Ml0mMjU1O2NbZz4+
Ml09ZisxO2JyZWFrfTtjYXNlIDI6Y2FzZSAxOnttPS0xO2k9ZTtyZXR1cm4gbXwwfTtkZWZhdWx0
Ont9fW89YiszMnwwO3doaWxlKDEpe3E9Y1tnPj4yXXwwO2lmKHE+Pj4wPD1wPj4+MCl7YnJlYWsg
TDE4MTl9cj1xLTF8MDtjW2c+PjJdPXI7aWYoKGJBKGFbcl18MCxjW28+PjJdfDApfDApPT0tMSl7
bT0tMTticmVha319aT1lO3JldHVybiBtfDB9fXdoaWxlKDApO2Nbbj4+Ml09ZDthW2tdPTE7bT1k
O2k9ZTtyZXR1cm4gbXwwfWZ1bmN0aW9uIGR4KGIsZSl7Yj1ifDA7ZT1lfDA7dmFyIGY9MCxnPTAs
aD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wO2Y9aTtpPWkrMzJ8MDtnPWZ8MDtoPWYrOHwwO2o9ZisxNnwwO2s9
ZisyNHwwO2w9Yis1MnwwO2lmKChhW2xdJjEpIT0wKXttPWIrNDh8MDtuPWNbbT4+Ml18MDtpZigh
ZSl7bz1uO2k9ZjtyZXR1cm4gb3wwfWNbbT4+Ml09LTE7YVtsXT0wO289bjtpPWY7cmV0dXJuIG98
MH1uPWNbYis0ND4+Ml18MDtsPShufDApPjE/bjoxO0wxODM5OmRve2lmKChsfDApPjApe249Yisz
MnwwO209MDt3aGlsZSgxKXtwPWFfKGNbbj4+Ml18MCl8MDtpZigocHwwKT09LTEpe289LTE7YnJl
YWt9YVtnK218MF09cCYyNTU7bT1tKzF8MDtpZigobXwwKT49KGx8MCkpe2JyZWFrIEwxODM5fX1p
PWY7cmV0dXJuIG98MH19d2hpbGUoMCk7TDE4NDY6ZG97aWYoKGFbYis1M3wwXSYxKT09MCl7bT1i
KzQwfDA7bj1iKzM2fDA7cD1nfDA7cT1oKzF8MDtyPWIrMzJ8MDtzPWw7TDE4NDg6d2hpbGUoMSl7
dD1jW20+PjJdfDA7dT10O3Y9Y1t1Pj4yXXwwO3c9Y1t1KzQ+PjJdfDA7dT1jW24+PjJdfDA7eD1n
K3N8MDtzd2l0Y2goYjZbY1soY1t1Pj4yXXwwKSsxNj4+Ml0mMzFdKHUsdCxwLHgsaixoLHEsayl8
MCl7Y2FzZSAxOnticmVha307Y2FzZSAyOntvPS0xO3k9MTQ5MDticmVhayBMMTg0ODticmVha307
Y2FzZSAzOnt5PTE0Nzk7YnJlYWsgTDE4NDg7YnJlYWt9O2RlZmF1bHQ6e3o9czticmVhayBMMTg0
Nn19dD1jW20+PjJdfDA7Y1t0Pj4yXT12O2NbdCs0Pj4yXT13O2lmKChzfDApPT04KXtvPS0xO3k9
MTQ5MTticmVha313PWFfKGNbcj4+Ml18MCl8MDtpZigod3wwKT09LTEpe289LTE7eT0xNDk1O2Jy
ZWFrfWFbeF09dyYyNTU7cz1zKzF8MH1pZigoeXwwKT09MTQ5MCl7aT1mO3JldHVybiBvfDB9ZWxz
ZSBpZigoeXwwKT09MTQ5NSl7aT1mO3JldHVybiBvfDB9ZWxzZSBpZigoeXwwKT09MTQ3OSl7YVto
XT1hW3BdfDA7ej1zO2JyZWFrfWVsc2UgaWYoKHl8MCk9PTE0OTEpe2k9ZjtyZXR1cm4gb3wwfX1l
bHNle2FbaF09YVtnfDBdfDA7ej1sfX13aGlsZSgwKTtkb3tpZihlKXtsPWFbaF18MDtjW2IrNDg+
PjJdPWwmMjU1O0E9bH1lbHNle2w9YiszMnwwO2s9ejt3aGlsZSgxKXtpZigoa3wwKTw9MCl7eT0x
NDg2O2JyZWFrfWo9ay0xfDA7aWYoKGJBKGRbZytqfDBdfDB8MCxjW2w+PjJdfDApfDApPT0tMSl7
bz0tMTt5PTE0OTQ7YnJlYWt9ZWxzZXtrPWp9fWlmKCh5fDApPT0xNDg2KXtBPWFbaF18MDticmVh
a31lbHNlIGlmKCh5fDApPT0xNDk0KXtpPWY7cmV0dXJuIG98MH19fXdoaWxlKDApO289QSYyNTU7
aT1mO3JldHVybiBvfDB9ZnVuY3Rpb24gZHkoKXtjWigwKTthJCgxNDIsMTYxNDR8MCx1fDApfDA7
cmV0dXJufWZ1bmN0aW9uIGR6KGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9YSs0fDA7aWYoKChJPWNb
Yj4+Ml18MCxjW2I+PjJdPUkrIC0xLEkpfDApIT0wKXtkPTA7cmV0dXJuIGR8MH1iWVtjWyhjW2E+
PjJdfDApKzg+PjJdJjUxMV0oYSk7ZD0xO3JldHVybiBkfDB9ZnVuY3Rpb24gZEEoYSxiKXthPWF8
MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTA7Y1thPj4yXT0yNTM2O2Q9YSs0fDA7aWYoKGR8MCk9PTAp
e3JldHVybn1hPWswKGJ8MCl8MDtlPWErMXwwO2Y9a1AoYSsxM3wwKXwwO2NbZis0Pj4yXT1hO2Nb
Zj4+Ml09YTthPWYrMTJ8MDtjW2Q+PjJdPWE7Y1tmKzg+PjJdPTA7a1koYXwwLGJ8MCxlKXwwO3Jl
dHVybn1mdW5jdGlvbiBkQihhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTA7Y1thPj4yXT0yNTM2O2I9
YSs0fDA7ZD0oY1tiPj4yXXwwKS00fDA7aWYoKChJPWNbZD4+Ml18MCxjW2Q+PjJdPUkrIC0xLEkp
LTF8MCk+PTApe2U9YTtrUyhlKTtyZXR1cm59ZD0oY1tiPj4yXXwwKS0xMnwwO2lmKChkfDApPT0w
KXtlPWE7a1MoZSk7cmV0dXJufWtUKGQpO2U9YTtrUyhlKTtyZXR1cm59ZnVuY3Rpb24gZEMoYSl7
YT1hfDA7dmFyIGI9MDtjW2E+PjJdPTI1MzY7Yj1hKzR8MDthPShjW2I+PjJdfDApLTR8MDtpZigo
KEk9Y1thPj4yXXwwLGNbYT4+Ml09SSsgLTEsSSktMXwwKT49MCl7cmV0dXJufWE9KGNbYj4+Ml18
MCktMTJ8MDtpZigoYXwwKT09MCl7cmV0dXJufWtUKGEpO3JldHVybn1mdW5jdGlvbiBkRChiLGQp
e2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtjW2I+PjJdPTI0NzI7ZT1iKzR8MDtpZigoZXww
KT09MCl7cmV0dXJufWlmKChhW2RdJjEpPT0wKXtmPWQrMXwwfWVsc2V7Zj1jW2QrOD4+Ml18MH1k
PWswKGZ8MCl8MDtiPWQrMXwwO2c9a1AoZCsxM3wwKXwwO2NbZys0Pj4yXT1kO2NbZz4+Ml09ZDtk
PWcrMTJ8MDtjW2U+PjJdPWQ7Y1tnKzg+PjJdPTA7a1koZHwwLGZ8MCxiKXwwO3JldHVybn1mdW5j
dGlvbiBkRShhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MDtjW2E+PjJdPTI0NzI7ZD1h
KzR8MDtpZigoZHwwKT09MCl7cmV0dXJufWE9azAoYnwwKXwwO2U9YSsxfDA7Zj1rUChhKzEzfDAp
fDA7Y1tmKzQ+PjJdPWE7Y1tmPj4yXT1hO2E9ZisxMnwwO2NbZD4+Ml09YTtjW2YrOD4+Ml09MDtr
WShhfDAsYnwwLGUpfDA7cmV0dXJufWZ1bmN0aW9uIGRGKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9
MDtjW2E+PjJdPTI0NzI7Yj1hKzR8MDtkPShjW2I+PjJdfDApLTR8MDtpZigoKEk9Y1tkPj4yXXww
LGNbZD4+Ml09SSsgLTEsSSktMXwwKT49MCl7ZT1hO2tTKGUpO3JldHVybn1kPShjW2I+PjJdfDAp
LTEyfDA7aWYoKGR8MCk9PTApe2U9YTtrUyhlKTtyZXR1cm59a1QoZCk7ZT1hO2tTKGUpO3JldHVy
bn1mdW5jdGlvbiBkRyhhKXthPWF8MDt2YXIgYj0wO2NbYT4+Ml09MjQ3MjtiPWErNHwwO2E9KGNb
Yj4+Ml18MCktNHwwO2lmKCgoST1jW2E+PjJdfDAsY1thPj4yXT1JKyAtMSxJKS0xfDApPj0wKXty
ZXR1cm59YT0oY1tiPj4yXXwwKS0xMnwwO2lmKChhfDApPT0wKXtyZXR1cm59a1QoYSk7cmV0dXJu
fWZ1bmN0aW9uIGRIKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtjW2E+PjJdPTI1MzY7Yj1hKzR8
MDtkPShjW2I+PjJdfDApLTR8MDtpZigoKEk9Y1tkPj4yXXwwLGNbZD4+Ml09SSsgLTEsSSktMXww
KT49MCl7ZT1hO2tTKGUpO3JldHVybn1kPShjW2I+PjJdfDApLTEyfDA7aWYoKGR8MCk9PTApe2U9
YTtrUyhlKTtyZXR1cm59a1QoZCk7ZT1hO2tTKGUpO3JldHVybn1mdW5jdGlvbiBkSShhKXthPWF8
MDtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZEooYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MDtlPWk7aT1pKzh8MDtmPWV8MDtiM1tjWyhjW2E+PjJdfDApKzEyPj4yXSY3XShm
LGEsYik7aWYoKGNbZis0Pj4yXXwwKSE9KGNbZCs0Pj4yXXwwKSl7Zz0wO2k9ZTtyZXR1cm4gZ3ww
fWc9KGNbZj4+Ml18MCk9PShjW2Q+PjJdfDApO2k9ZTtyZXR1cm4gZ3wwfWZ1bmN0aW9uIGRLKGEs
YixjKXthPWF8MDtiPWJ8MDtjPWN8MDtiPWJ4KGN8MCl8MDtkWihhLGIsazAoYnwwKXwwKTtyZXR1
cm59ZnVuY3Rpb24gZEwoYixlLGYpe2I9YnwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2c9aTtoPWY7aj1pO2k9aSsxMnwwO2k9aSs3
Pj4zPDwzO2s9ZXwwO2w9Y1trPj4yXXwwO2lmKChsfDApPT0wKXttPWI7Y1ttPj4yXT1jW2g+PjJd
O2NbbSs0Pj4yXT1jW2grND4+Ml07Y1ttKzg+PjJdPWNbaCs4Pj4yXTtrJChofDAsMCwxMik7aT1n
O3JldHVybn1uPWRbaF18MDtpZigobiYxfDApPT0wKXtvPW4+Pj4xfWVsc2V7bz1jW2YrND4+Ml18
MH1pZigob3wwKT09MCl7cD1sfWVsc2V7ZFQoZiwxMjk2KXwwO3A9Y1trPj4yXXwwfWs9Y1tlKzQ+
PjJdfDA7YjNbY1soY1trPj4yXXwwKSsyND4+Ml0mN10oaixrLHApO3A9YVtqXXwwO2lmKChwJjEp
PT0wKXtxPWorMXwwfWVsc2V7cT1jW2orOD4+Ml18MH1rPXAmMjU1O2lmKChrJjF8MCk9PTApe3I9
az4+PjF9ZWxzZXtyPWNbais0Pj4yXXwwfWRWKGYscSxyKXwwO2RQKGopO209YjtjW20+PjJdPWNb
aD4+Ml07Y1ttKzQ+PjJdPWNbaCs0Pj4yXTtjW20rOD4+Ml09Y1toKzg+PjJdO2skKGh8MCwwLDEy
KTtpPWc7cmV0dXJufWZ1bmN0aW9uIGRNKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0w
LGY9MCxnPTA7ZT1pO2k9aSszMnwwO2Y9YjtiPWk7aT1pKzh8MDtjW2I+PjJdPWNbZj4+Ml07Y1ti
KzQ+PjJdPWNbZis0Pj4yXTtmPWV8MDtnPWUrMTZ8MDtkWihnLGQsazAoZHwwKXwwKTtkTChmLGIs
Zyk7ZEQoYXwwLGYpO2RQKGYpO2RQKGcpO2NbYT4+Ml09NDU0NDtnPWI7Yj1hKzh8MDthPWNbZys0
Pj4yXXwwO2NbYj4+Ml09Y1tnPj4yXTtjW2IrND4+Ml09YTtpPWU7cmV0dXJufWZ1bmN0aW9uIGRO
KGEpe2E9YXwwO2RHKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGRPKGEpe2E9YXwwO2RHKGF8
MCk7cmV0dXJufWZ1bmN0aW9uIGRQKGIpe2I9YnwwO2lmKChhW2JdJjEpPT0wKXtyZXR1cm59a1Mo
Y1tiKzg+PjJdfDApO3JldHVybn1mdW5jdGlvbiBkUShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO2U9azAoZHwwKXwwO2Y9YjtnPWI7aD1hW2ddfDA7
aWYoKGgmMSk9PTApe2k9MTA7aj1ofWVsc2V7aD1jW2I+PjJdfDA7aT0oaCYtMiktMXwwO2o9aCYy
NTV9aWYoaT4+PjA8ZT4+PjApe2g9aiYyNTU7aWYoKGgmMXwwKT09MCl7az1oPj4+MX1lbHNle2s9
Y1tiKzQ+PjJdfDB9ZDAoYixpLGUtaXwwLGssMCxrLGUsZCk7cmV0dXJuIGJ8MH1pZigoaiYxKT09
MCl7bD1mKzF8MH1lbHNle2w9Y1tiKzg+PjJdfDB9a18obHwwLGR8MCxlfDApO2FbbCtlfDBdPTA7
aWYoKGFbZ10mMSk9PTApe2FbZ109ZTw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1l
O3JldHVybiBifDB9cmV0dXJuIDB9ZnVuY3Rpb24gZFIoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXww
O3ZhciBmPTAsZz0wLGg9MCxpPTA7Zj1iO2c9YVtmXXwwO2g9ZyYyNTU7aWYoKGgmMXwwKT09MCl7
aT1oPj4+MX1lbHNle2k9Y1tiKzQ+PjJdfDB9aWYoaT4+PjA8ZD4+PjApe2g9ZC1pfDA7ZFMoYixo
LGUpfDA7cmV0dXJufWlmKChnJjEpPT0wKXthW2IrMStkfDBdPTA7YVtmXT1kPDwxJjI1NTtyZXR1
cm59ZWxzZXthWyhjW2IrOD4+Ml18MCkrZHwwXT0wO2NbYis0Pj4yXT1kO3JldHVybn19ZnVuY3Rp
b24gZFMoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9
MCxsPTA7aWYoKGR8MCk9PTApe3JldHVybiBifDB9Zj1iO2c9YVtmXXwwO2lmKChnJjEpPT0wKXto
PTEwO2k9Z31lbHNle2c9Y1tiPj4yXXwwO2g9KGcmLTIpLTF8MDtpPWcmMjU1fWc9aSYyNTU7aWYo
KGcmMXwwKT09MCl7aj1nPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9aWYoKGgtanwwKT4+PjA8ZD4+
PjApe2QxKGIsaCxkLWgranwwLGosaiwwLDApO2s9YVtmXXwwfWVsc2V7az1pfWlmKChrJjEpPT0w
KXtsPWIrMXwwfWVsc2V7bD1jW2IrOD4+Ml18MH1rJChsK2p8MCxlfDAsZHwwKTtlPWorZHwwO2lm
KChhW2ZdJjEpPT0wKXthW2ZdPWU8PDEmMjU1fWVsc2V7Y1tiKzQ+PjJdPWV9YVtsK2V8MF09MDty
ZXR1cm4gYnwwfWZ1bmN0aW9uIGRUKGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJuIGRWKGEsYixrMChi
fDApfDApfDB9ZnVuY3Rpb24gZFUoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0w
LGk9MCxqPTAsaz0wLGw9MCxtPTA7ZT1iO2Y9YVtlXXwwO2lmKChmJjEpPT0wKXtnPShmJjI1NSk+
Pj4xO2g9MTB9ZWxzZXtnPWNbYis0Pj4yXXwwO2g9KGNbYj4+Ml0mLTIpLTF8MH1pZigoZ3wwKT09
KGh8MCkpe2QxKGIsaCwxLGgsaCwwLDApO2k9YVtlXXwwfWVsc2V7aT1mfWlmKChpJjEpPT0wKXth
W2VdPShnPDwxKSsyJjI1NTtqPWIrMXwwO2s9ZysxfDA7bD1qK2d8MDthW2xdPWQ7bT1qK2t8MDth
W21dPTA7cmV0dXJufWVsc2V7ZT1jW2IrOD4+Ml18MDtpPWcrMXwwO2NbYis0Pj4yXT1pO2o9ZTtr
PWk7bD1qK2d8MDthW2xdPWQ7bT1qK2t8MDthW21dPTA7cmV0dXJufX1mdW5jdGlvbiBkVihiLGQs
ZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wO2Y9YjtnPWFb
Zl18MDtpZigoZyYxKT09MCl7aD0xMDtpPWd9ZWxzZXtnPWNbYj4+Ml18MDtoPShnJi0yKS0xfDA7
aT1nJjI1NX1nPWkmMjU1O2lmKChnJjF8MCk9PTApe2o9Zz4+PjF9ZWxzZXtqPWNbYis0Pj4yXXww
fWlmKChoLWp8MCk+Pj4wPGU+Pj4wKXtkMChiLGgsZS1oK2p8MCxqLGosMCxlLGQpO3JldHVybiBi
fDB9aWYoKGV8MCk9PTApe3JldHVybiBifDB9aWYoKGkmMSk9PTApe2s9YisxfDB9ZWxzZXtrPWNb
Yis4Pj4yXXwwfWk9aytqfDA7a1koaXwwLGR8MCxlKXwwO2Q9aitlfDA7aWYoKGFbZl0mMSk9PTAp
e2FbZl09ZDw8MSYyNTV9ZWxzZXtjW2IrND4+Ml09ZH1hW2srZHwwXT0wO3JldHVybiBifDB9ZnVu
Y3Rpb24gZFcoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0w
O2U7aWYoKGNbYT4+Ml18MCk9PTEpe2Rve2FVKDk3MzYsOTcyOCl8MDt9d2hpbGUoKGNbYT4+Ml18
MCk9PTEpfWlmKChjW2E+PjJdfDApIT0wKXtmO3JldHVybn1jW2E+PjJdPTE7ZztiWVtkJjUxMV0o
Yik7aDtjW2E+PjJdPS0xO2k7YnMoOTczNil8MDtyZXR1cm59ZnVuY3Rpb24gZFgoYSl7YT1hfDA7
YT1iTyg4KXwwO2RBKGEsMzYwKTtjW2E+PjJdPTI1MDQ7YmwoYXwwLDgyMDgsMzIpfWZ1bmN0aW9u
IGRZKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MDtlPWQ7aWYoKGFbZV0mMSk9
PTApe2Y9YjtjW2Y+PjJdPWNbZT4+Ml07Y1tmKzQ+PjJdPWNbZSs0Pj4yXTtjW2YrOD4+Ml09Y1tl
Kzg+PjJdO3JldHVybn1lPWNbZCs4Pj4yXXwwO2Y9Y1tkKzQ+PjJdfDA7aWYoKGZ8MCk9PS0xKXtk
WCgwKX1pZihmPj4+MDwxMSl7YVtiXT1mPDwxJjI1NTtnPWIrMXwwfWVsc2V7ZD1mKzE2Ji0xNjto
PWtPKGQpfDA7Y1tiKzg+PjJdPWg7Y1tiPj4yXT1kfDE7Y1tiKzQ+PjJdPWY7Zz1ofWtZKGd8MCxl
fDAsZil8MDthW2crZnwwXT0wO3JldHVybn1mdW5jdGlvbiBkWihiLGQsZSl7Yj1ifDA7ZD1kfDA7
ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MDtpZigoZXwwKT09LTEpe2RYKDApfWlmKGU+Pj4wPDEx
KXthW2JdPWU8PDEmMjU1O2Y9YisxfDA7a1koZnwwLGR8MCxlKXwwO2c9ZitlfDA7YVtnXT0wO3Jl
dHVybn1lbHNle2g9ZSsxNiYtMTY7aT1rTyhoKXwwO2NbYis4Pj4yXT1pO2NbYj4+Ml09aHwxO2Nb
Yis0Pj4yXT1lO2Y9aTtrWShmfDAsZHwwLGUpfDA7Zz1mK2V8MDthW2ddPTA7cmV0dXJufX1mdW5j
dGlvbiBkXyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2lmKChkfDAp
PT0tMSl7ZFgoMCl9aWYoZD4+PjA8MTEpe2FbYl09ZDw8MSYyNTU7Zj1iKzF8MH1lbHNle2c9ZCsx
NiYtMTY7aD1rTyhnKXwwO2NbYis4Pj4yXT1oO2NbYj4+Ml09Z3wxO2NbYis0Pj4yXT1kO2Y9aH1r
JChmfDAsZXwwLGR8MCk7YVtmK2R8MF09MDtyZXR1cm59ZnVuY3Rpb24gZCQoYixkKXtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MDtpZigoZHwwKT09LTEpe2RYKDApfWU9YjtmPWI7Zz1hW2ZdfDA7aWYoKGcmMSk9PTAp
e2g9MTA7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9ZyYyNTV9Zz1pJjI1NTtp
ZigoZyYxfDApPT0wKXtqPWc+Pj4xfWVsc2V7aj1jW2IrND4+Ml18MH1nPWo+Pj4wPmQ+Pj4wP2o6
ZDtpZihnPj4+MDwxMSl7az0xMX1lbHNle2s9ZysxNiYtMTZ9Zz1rLTF8MDtpZigoZ3wwKT09KGh8
MCkpe3JldHVybn1pZigoZ3wwKT09MTApe2w9ZSsxfDA7bT1jW2IrOD4+Ml18MDtuPTE7bz0wfWVs
c2V7aWYoZz4+PjA+aD4+PjApe3A9a08oayl8MH1lbHNle3A9a08oayl8MH1oPWkmMTtpZihoPDwy
ND4+MjQ9PTApe3E9ZSsxfDB9ZWxzZXtxPWNbYis4Pj4yXXwwfWw9cDttPXE7bj1oPDwyND4+MjQh
PTA7bz0xfWg9aSYyNTU7aWYoKGgmMXwwKT09MCl7cj1oPj4+MX1lbHNle3I9Y1tiKzQ+PjJdfDB9
aD1yKzF8MDtrWShsfDAsbXwwLGgpfDA7aWYobil7a1MobSl9aWYobyl7Y1tiPj4yXT1rfDE7Y1ti
KzQ+PjJdPWo7Y1tiKzg+PjJdPWw7cmV0dXJufWVsc2V7YVtmXT1qPDwxJjI1NTtyZXR1cm59fWZ1
bmN0aW9uIGQwKGIsZCxlLGYsZyxoLGksail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aT1pfDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTA7aWYoKC0zLWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09MCl7az1i
KzF8MH1lbHNle2s9Y1tiKzg+PjJdfDB9ZG97aWYoZD4+PjA8MjE0NzQ4MzYzMSl7bD1lK2R8MDtt
PWQ8PDE7bj1sPj4+MDxtPj4+MD9tOmw7aWYobj4+PjA8MTEpe289MTE7YnJlYWt9bz1uKzE2Ji0x
Nn1lbHNle289LTJ9fXdoaWxlKDApO2U9a08obyl8MDtpZigoZ3wwKSE9MCl7a1koZXwwLGt8MCxn
KXwwfWlmKChpfDApIT0wKXtuPWUrZ3wwO2tZKG58MCxqfDAsaSl8MH1qPWYtaHwwO2lmKChqfDAp
IT0oZ3wwKSl7Zj1qLWd8MDtuPWUrKGkrZyl8MDtsPWsrKGgrZyl8MDtrWShufDAsbHwwLGYpfDB9
aWYoKGR8MCk9PTEwKXtwPWIrOHwwO2NbcD4+Ml09ZTtxPW98MTtyPWJ8MDtjW3I+PjJdPXE7cz1q
K2l8MDt0PWIrNHwwO2NbdD4+Ml09czt1PWUrc3wwO2FbdV09MDtyZXR1cm59a1Moayk7cD1iKzh8
MDtjW3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1iKzR8MDtjW3Q+PjJd
PXM7dT1lK3N8MDthW3VdPTA7cmV0dXJufWZ1bmN0aW9uIGQxKGIsZCxlLGYsZyxoLGkpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO3ZhciBqPTAsaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wO2lmKCgtMy1kfDApPj4+MDxlPj4+MCl7ZFgoMCl9aWYoKGFbYl0mMSk9
PTApe2o9YisxfDB9ZWxzZXtqPWNbYis4Pj4yXXwwfWRve2lmKGQ+Pj4wPDIxNDc0ODM2MzEpe2s9
ZStkfDA7bD1kPDwxO209az4+PjA8bD4+PjA/bDprO2lmKG0+Pj4wPDExKXtuPTExO2JyZWFrfW49
bSsxNiYtMTZ9ZWxzZXtuPS0yfX13aGlsZSgwKTtlPWtPKG4pfDA7aWYoKGd8MCkhPTApe2tZKGV8
MCxqfDAsZyl8MH1tPWYtaHwwO2lmKChtfDApIT0oZ3wwKSl7Zj1tLWd8MDttPWUrKGkrZyl8MDtp
PWorKGgrZyl8MDtrWShtfDAsaXwwLGYpfDB9aWYoKGR8MCk9PTEwKXtvPWIrOHwwO2Nbbz4+Ml09
ZTtwPW58MTtxPWJ8MDtjW3E+PjJdPXA7cmV0dXJufWtTKGopO289Yis4fDA7Y1tvPj4yXT1lO3A9
bnwxO3E9YnwwO2NbcT4+Ml09cDtyZXR1cm59ZnVuY3Rpb24gZDIoYSxiKXthPWF8MDtiPWJ8MDty
ZXR1cm59ZnVuY3Rpb24gZDMoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO3JldHVybiBhfDB9ZnVu
Y3Rpb24gZDQoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZDUoYSl7YT1hfDA7cmV0dXJuIDB9
ZnVuY3Rpb24gZDYoYSl7YT1hfDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBkNyhhLGIpe2E9YXwwO2I9
YnwwO3JldHVybi0xfDB9ZnVuY3Rpb24gZDgoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4tMXwwfWZ1
bmN0aW9uIGQ5KGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJufWZ1bmN0aW9uIGVhKGEsYixjKXthPWF8
MDtiPWJ8MDtjPWN8MDtyZXR1cm4gYXwwfWZ1bmN0aW9uIGViKGEsYixkLGUsZixnKXthPWF8MDti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtnPWE7Y1tnPj4yXT0wO2NbZys0Pj4yXT0wO2c9
YSs4fDA7Y1tnPj4yXT0tMTtjW2crND4+Ml09LTE7cmV0dXJufWZ1bmN0aW9uIGVjKGEsYixkLGUp
e2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2U9aTtiPWQ7ZD1pO2k9aSsxNnwwO2NbZD4+Ml09Y1ti
Pj4yXTtjW2QrND4+Ml09Y1tiKzQ+PjJdO2NbZCs4Pj4yXT1jW2IrOD4+Ml07Y1tkKzEyPj4yXT1j
W2IrMTI+PjJdO2I9YTtjW2I+PjJdPTA7Y1tiKzQ+PjJdPTA7Yj1hKzh8MDtjW2I+PjJdPS0xO2Nb
Yis0Pj4yXT0tMTtpPWU7cmV0dXJufWZ1bmN0aW9uIGVkKGEsYixkLGUsZixnKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtnPWE7Y1tnPj4yXT0wO2NbZys0Pj4yXT0wO2c9YSs4
fDA7Y1tnPj4yXT0tMTtjW2crND4+Ml09LTE7cmV0dXJufWZ1bmN0aW9uIGVlKGIpe2I9YnwwO2lm
KChhW2JdJjEpPT0wKXtyZXR1cm59a1MoY1tiKzg+PjJdfDApO3JldHVybn1mdW5jdGlvbiBlZihh
LGIpe2E9YXwwO2I9YnwwO3JldHVybiBlZyhhLGIsa20oYil8MCl8MH1mdW5jdGlvbiBlZyhiLGQs
ZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wO2Y9YjtnPWFb
Zl18MDtpZigoZyYxKT09MCl7aD0xO2k9Z31lbHNle2c9Y1tiPj4yXXwwO2g9KGcmLTIpLTF8MDtp
PWcmMjU1fWlmKGg+Pj4wPGU+Pj4wKXtnPWkmMjU1O2lmKChnJjF8MCk9PTApe2o9Zz4+PjF9ZWxz
ZXtqPWNbYis0Pj4yXXwwfWVBKGIsaCxlLWh8MCxqLDAsaixlLGQpO3JldHVybiBifDB9aWYoKGkm
MSk9PTApe2s9Yis0fDB9ZWxzZXtrPWNbYis4Pj4yXXwwfWtvKGssZCxlKXwwO2NbaysoZTw8Mik+
PjJdPTA7aWYoKGFbZl0mMSk9PTApe2FbZl09ZTw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0
Pj4yXT1lO3JldHVybiBifDB9cmV0dXJuIDB9ZnVuY3Rpb24gZWgoYixkKXtiPWJ8MDtkPWR8MDt2
YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7ZT1iO2Y9YVtlXXwwO2lmKChm
JjEpPT0wKXtnPShmJjI1NSk+Pj4xO2g9MX1lbHNle2c9Y1tiKzQ+PjJdfDA7aD0oY1tiPj4yXSYt
MiktMXwwfWlmKChnfDApPT0oaHwwKSl7ZUIoYixoLDEsaCxoLDAsMCk7aT1hW2VdfDB9ZWxzZXtp
PWZ9aWYoKGkmMSk9PTApe2FbZV09KGc8PDEpKzImMjU1O2o9Yis0fDA7az1nKzF8MDtsPWorKGc8
PDIpfDA7Y1tsPj4yXT1kO209aisoazw8Mil8MDtjW20+PjJdPTA7cmV0dXJufWVsc2V7ZT1jW2Ir
OD4+Ml18MDtpPWcrMXwwO2NbYis0Pj4yXT1pO2o9ZTtrPWk7bD1qKyhnPDwyKXwwO2NbbD4+Ml09
ZDttPWorKGs8PDIpfDA7Y1ttPj4yXT0wO3JldHVybn19ZnVuY3Rpb24gZWkoYSl7YT1hfDA7ZUQo
YXwwKTtyZXR1cm59ZnVuY3Rpb24gZWooYSxiKXthPWF8MDtiPWJ8MDtpTihhLGIrMjh8MCk7cmV0
dXJufWZ1bmN0aW9uIGVrKGEsYil7YT1hfDA7Yj1ifDA7Y1thKzI0Pj4yXT1iO2NbYSsxNj4+Ml09
KGJ8MCk9PTA7Y1thKzIwPj4yXT0wO2NbYSs0Pj4yXT00MDk4O2NbYSsxMj4+Ml09MDtjW2ErOD4+
Ml09NjtiPWErMjh8MDtrJChhKzMyfDAsMCw0MCk7aWYoKGJ8MCk9PTApe3JldHVybn1pVyhiKTty
ZXR1cm59ZnVuY3Rpb24gZWwoYSl7YT1hfDA7ZUQoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZW0oYSl7
YT1hfDA7Y1thPj4yXT00MjMyO2lPKGErNHwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZW4oYSl7
YT1hfDA7Y1thPj4yXT00MjMyO2lPKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZW8oYSl7YT1hfDA7
Y1thPj4yXT00MjMyO2lPKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZXAoYSl7YT1hfDA7Y1thPj4y
XT00MjMyO2lXKGErNHwwKTtrJChhKzh8MCwwLDI0KTtyZXR1cm59ZnVuY3Rpb24gZXEoYixkLGUp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wO2Y9
YjtpZigoZXwwKTw9MCl7Zz0wO3JldHVybiBnfDB9aD1iKzEyfDA7aT1iKzE2fDA7aj1kO2Q9MDt3
aGlsZSgxKXtrPWNbaD4+Ml18MDtpZihrPj4+MDwoY1tpPj4yXXwwKT4+PjApe2NbaD4+Ml09aysx
O2w9YVtrXXwwfWVsc2V7az1iMFtjWyhjW2Y+PjJdfDApKzQwPj4yXSYxMjddKGIpfDA7aWYoKGt8
MCk9PS0xKXtnPWQ7bT0xODU0O2JyZWFrfWw9ayYyNTV9YVtqXT1sO2s9ZCsxfDA7aWYoKGt8MCk8
KGV8MCkpe2o9aisxfDA7ZD1rfWVsc2V7Zz1rO209MTg1NjticmVha319aWYoKG18MCk9PTE4NTQp
e3JldHVybiBnfDB9ZWxzZSBpZigobXwwKT09MTg1Nil7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5j
dGlvbiBlcihhKXthPWF8MDt2YXIgYj0wLGU9MDtpZigoYjBbY1soY1thPj4yXXwwKSszNj4+Ml0m
MTI3XShhKXwwKT09LTEpe2I9LTE7cmV0dXJuIGJ8MH1lPWErMTJ8MDthPWNbZT4+Ml18MDtjW2U+
PjJdPWErMTtiPWRbYV18MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGVzKGIsZSxmKXtiPWJ8MDtlPWV8
MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtnPWI7aWYoKGZ8MCk8
PTApe2g9MDtyZXR1cm4gaHwwfWk9YisyNHwwO2o9YisyOHwwO2s9MDtsPWU7d2hpbGUoMSl7ZT1j
W2k+PjJdfDA7aWYoZT4+PjA8KGNbaj4+Ml18MCk+Pj4wKXttPWFbbF18MDtjW2k+PjJdPWUrMTth
W2VdPW19ZWxzZXtpZigoYl9bY1soY1tnPj4yXXwwKSs1Mj4+Ml0mMzFdKGIsZFtsXXwwKXwwKT09
LTEpe2g9aztuPTE4Njk7YnJlYWt9fW09aysxfDA7aWYoKG18MCk8KGZ8MCkpe2s9bTtsPWwrMXww
fWVsc2V7aD1tO249MTg3MTticmVha319aWYoKG58MCk9PTE4Njkpe3JldHVybiBofDB9ZWxzZSBp
ZigobnwwKT09MTg3MSl7cmV0dXJuIGh8MH1yZXR1cm4gMH1mdW5jdGlvbiBldChhKXthPWF8MDtj
W2E+PjJdPTQxNjA7aU8oYSs0fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBldShhKXthPWF8MDtj
W2E+PjJdPTQxNjA7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBldihhKXthPWF8MDtjW2E+PjJd
PTQxNjA7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBldyhhKXthPWF8MDtjW2E+PjJdPTQxNjA7
aVcoYSs0fDApO2skKGErOHwwLDAsMjQpO3JldHVybn1mdW5jdGlvbiBleChiLGQsZSl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTA7aWYoZT4+PjA+MTA3Mzc0MTgyMil7
ZFgoMCl9aWYoZT4+PjA8Mil7YVtiXT1lPDwxJjI1NTtmPWIrNHwwO2c9a24oZixkLGUpfDA7aD1m
KyhlPDwyKXwwO2NbaD4+Ml09MDtyZXR1cm59ZWxzZXtpPWUrNCYtNDtqPWtPKGk8PDIpfDA7Y1ti
Kzg+PjJdPWo7Y1tiPj4yXT1pfDE7Y1tiKzQ+PjJdPWU7Zj1qO2c9a24oZixkLGUpfDA7aD1mKyhl
PDwyKXwwO2NbaD4+Ml09MDtyZXR1cm59fWZ1bmN0aW9uIGV5KGIsZCxlKXtiPWJ8MDtkPWR8MDtl
PWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MDtpZihkPj4+MD4xMDczNzQxODIyKXtkWCgwKX1p
ZihkPj4+MDwyKXthW2JdPWQ8PDEmMjU1O2Y9Yis0fDA7Zz1rcChmLGUsZCl8MDtoPWYrKGQ8PDIp
fDA7Y1toPj4yXT0wO3JldHVybn1lbHNle2k9ZCs0Ji00O2o9a08oaTw8Mil8MDtjW2IrOD4+Ml09
ajtjW2I+PjJdPWl8MTtjW2IrND4+Ml09ZDtmPWo7Zz1rcChmLGUsZCl8MDtoPWYrKGQ8PDIpfDA7
Y1toPj4yXT0wO3JldHVybn19ZnVuY3Rpb24gZXooYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9
MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wO2lmKGQ+Pj4wPjEw
NzM3NDE4MjIpe2RYKDApfWU9YjtmPWFbZV18MDtpZigoZiYxKT09MCl7Zz0xO2g9Zn1lbHNle2Y9
Y1tiPj4yXXwwO2c9KGYmLTIpLTF8MDtoPWYmMjU1fWY9aCYyNTU7aWYoKGYmMXwwKT09MCl7aT1m
Pj4+MX1lbHNle2k9Y1tiKzQ+PjJdfDB9Zj1pPj4+MD5kPj4+MD9pOmQ7aWYoZj4+PjA8Mil7aj0y
fWVsc2V7aj1mKzQmLTR9Zj1qLTF8MDtpZigoZnwwKT09KGd8MCkpe3JldHVybn1pZigoZnwwKT09
MSl7az1iKzR8MDtsPWNbYis4Pj4yXXwwO209MTtuPTB9ZWxzZXtkPWo8PDI7aWYoZj4+PjA+Zz4+
PjApe289a08oZCl8MH1lbHNle289a08oZCl8MH1kPWgmMTtpZihkPDwyND4+MjQ9PTApe3A9Yis0
fDB9ZWxzZXtwPWNbYis4Pj4yXXwwfWs9bztsPXA7bT1kPDwyND4+MjQhPTA7bj0xfWQ9aztrPWgm
MjU1O2lmKChrJjF8MCk9PTApe3E9az4+PjF9ZWxzZXtxPWNbYis0Pj4yXXwwfWtuKGQsbCxxKzF8
MCl8MDtpZihtKXtrUyhsKX1pZihuKXtjW2I+PjJdPWp8MTtjW2IrND4+Ml09aTtjW2IrOD4+Ml09
ZDtyZXR1cm59ZWxzZXthW2VdPWk8PDEmMjU1O3JldHVybn19ZnVuY3Rpb24gZUEoYixkLGUsZixn
LGgsaSxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDt2
YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtpZigoMTA3Mzc0
MTgyMS1kfDApPj4+MDxlPj4+MCl7ZFgoMCl9aWYoKGFbYl0mMSk9PTApe2s9Yis0fDB9ZWxzZXtr
PWNbYis4Pj4yXXwwfWRve2lmKGQ+Pj4wPDUzNjg3MDg5NSl7bD1lK2R8MDttPWQ8PDE7bj1sPj4+
MDxtPj4+MD9tOmw7aWYobj4+PjA8Mil7bz0yO2JyZWFrfW89bis0Ji00fWVsc2V7bz0xMDczNzQx
ODIyfX13aGlsZSgwKTtlPWtPKG88PDIpfDA7aWYoKGd8MCkhPTApe2tuKGUsayxnKXwwfWlmKChp
fDApIT0wKXtuPWUrKGc8PDIpfDA7a24obixqLGkpfDB9aj1mLWh8MDtpZigoanwwKSE9KGd8MCkp
e2Y9ai1nfDA7bj1lKyhpK2c8PDIpfDA7bD1rKyhoK2c8PDIpfDA7a24obixsLGYpfDB9aWYoKGR8
MCk9PTEpe3A9Yis4fDA7Y1twPj4yXT1lO3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtzPWoraXwwO3Q9
Yis0fDA7Y1t0Pj4yXT1zO3U9ZSsoczw8Mil8MDtjW3U+PjJdPTA7cmV0dXJufWtTKGspO3A9Yis4
fDA7Y1twPj4yXT1lO3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtzPWoraXwwO3Q9Yis0fDA7Y1t0Pj4y
XT1zO3U9ZSsoczw8Mil8MDtjW3U+PjJdPTA7cmV0dXJufWZ1bmN0aW9uIGVCKGIsZCxlLGYsZyxo
LGkpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO3ZhciBqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wO2lmKCgxMDczNzQxODIxLWR8MCk+Pj4wPGU+Pj4wKXtk
WCgwKX1pZigoYVtiXSYxKT09MCl7aj1iKzR8MH1lbHNle2o9Y1tiKzg+PjJdfDB9ZG97aWYoZD4+
PjA8NTM2ODcwODk1KXtrPWUrZHwwO2w9ZDw8MTttPWs+Pj4wPGw+Pj4wP2w6aztpZihtPj4+MDwy
KXtuPTI7YnJlYWt9bj1tKzQmLTR9ZWxzZXtuPTEwNzM3NDE4MjJ9fXdoaWxlKDApO2U9a08objw8
Mil8MDtpZigoZ3wwKSE9MCl7a24oZSxqLGcpfDB9bT1mLWh8MDtpZigobXwwKSE9KGd8MCkpe2Y9
bS1nfDA7bT1lKyhpK2c8PDIpfDA7aT1qKyhoK2c8PDIpfDA7a24obSxpLGYpfDB9aWYoKGR8MCk9
PTEpe289Yis4fDA7Y1tvPj4yXT1lO3A9bnwxO3E9YnwwO2NbcT4+Ml09cDtyZXR1cm59a1Moaik7
bz1iKzh8MDtjW28+PjJdPWU7cD1ufDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1mdW5jdGlvbiBl
QyhiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtlPWk7aT1pKzh8MDtmPWV8MDtnPShj
W2IrMjQ+PjJdfDApPT0wO2lmKGcpe2NbYisxNj4+Ml09ZHwxfWVsc2V7Y1tiKzE2Pj4yXT1kfWlm
KCgoZyYxfGQpJmNbYisyMD4+Ml18MCk9PTApe2k9ZTtyZXR1cm59ZT1iTygxNil8MDtkb3tpZigo
YVsxNjI3Ml18MCk9PTApe2lmKChiYygxNjI3Mil8MCk9PTApe2JyZWFrfWRqKDExODQwKTtjWzI5
NjBdPTRlMzthJCg2NiwxMTg0MCx1fDApfDB9fXdoaWxlKDApO2I9azMoMTE4NDAsMCwzMil8MDtk
PUs7Y1tmPj4yXT1iJjB8MTtjW2YrND4+Ml09ZHwwO2RNKGUsZiwxMzA0KTtjW2U+PjJdPTMxODQ7
YmwoZXwwLDg3NTIsMjgpfWZ1bmN0aW9uIGVEKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTA7
Y1thPj4yXT0zMTYwO2I9Y1thKzQwPj4yXXwwO2Q9YSszMnwwO2U9YSszNnwwO2lmKChifDApIT0w
KXtmPWI7ZG97Zj1mLTF8MDtiM1tjWyhjW2Q+PjJdfDApKyhmPDwyKT4+Ml0mN10oMCxhLGNbKGNb
ZT4+Ml18MCkrKGY8PDIpPj4yXXwwKTt9d2hpbGUoKGZ8MCkhPTApfWlPKGErMjh8MCk7a0soY1tk
Pj4yXXwwKTtrSyhjW2U+PjJdfDApO2tLKGNbYSs0OD4+Ml18MCk7a0soY1thKzYwPj4yXXwwKTty
ZXR1cm59ZnVuY3Rpb24gZUUoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZUYoYSl7YT1hfDA7
cmV0dXJuIDB9ZnVuY3Rpb24gZUcoYSl7YT1hfDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBlSChhLGIp
e2E9YXwwO2I9YnwwO3JldHVybi0xfDB9ZnVuY3Rpb24gZUkoYSxiKXthPWF8MDtiPWJ8MDtyZXR1
cm4tMXwwfWZ1bmN0aW9uIGVKKGEpe2E9YXwwO3JldHVybiAxNDE2fDB9ZnVuY3Rpb24gZUsoYSxi
LGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7ZT1pO2I9ZDtkPWk7aT1pKzE2fDA7Y1tkPj4y
XT1jW2I+PjJdO2NbZCs0Pj4yXT1jW2IrND4+Ml07Y1tkKzg+PjJdPWNbYis4Pj4yXTtjW2QrMTI+
PjJdPWNbYisxMj4+Ml07Yj1hO2NbYj4+Ml09MDtjW2IrND4+Ml09MDtiPWErOHwwO2NbYj4+Ml09
LTE7Y1tiKzQ+PjJdPS0xO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZUwoYixjLGQsZSxmKXtiPWJ8MDtj
PWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7TDI0Mzc6
ZG97aWYoKGV8MCk9PShmfDApKXtnPWN9ZWxzZXtiPWM7aD1lO3doaWxlKDEpe2lmKChifDApPT0o
ZHwwKSl7aT0tMTtqPTE5OTA7YnJlYWt9az1hW2JdfDA7bD1hW2hdfDA7aWYoazw8MjQ+PjI0PGw8
PDI0Pj4yNCl7aT0tMTtqPTE5OTM7YnJlYWt9aWYobDw8MjQ+PjI0PGs8PDI0Pj4yNCl7aT0xO2o9
MTk5MjticmVha31rPWIrMXwwO2w9aCsxfDA7aWYoKGx8MCk9PShmfDApKXtnPWs7YnJlYWsgTDI0
Mzd9ZWxzZXtiPWs7aD1sfX1pZigoanwwKT09MTk5Myl7cmV0dXJuIGl8MH1lbHNlIGlmKChqfDAp
PT0xOTkyKXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9PTE5OTApe3JldHVybiBpfDB9fX13aGls
ZSgwKTtpPShnfDApIT0oZHwwKXwwO3JldHVybiBpfDB9ZnVuY3Rpb24gZU0oYixjLGQpe2I9Ynww
O2M9Y3wwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTA7aWYoKGN8MCk9PShkfDApKXtlPTA7cmV0
dXJuIGV8MH1lbHNle2Y9YztnPTB9d2hpbGUoMSl7Yz0oYVtmXXwwKSsoZzw8NCl8MDtiPWMmLTI2
ODQzNTQ1NjtoPShiPj4+MjR8YileYztjPWYrMXwwO2lmKChjfDApPT0oZHwwKSl7ZT1oO2JyZWFr
fWVsc2V7Zj1jO2c9aH19cmV0dXJuIGV8MH1mdW5jdGlvbiBlTihhLGIsZCl7YT1hfDA7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1hO2lmKChkfDApPD0w
KXtmPTA7cmV0dXJuIGZ8MH1nPWErMTJ8MDtoPWErMTZ8MDtpPWI7Yj0wO3doaWxlKDEpe2o9Y1tn
Pj4yXXwwO2lmKGo+Pj4wPChjW2g+PjJdfDApPj4+MCl7Y1tnPj4yXT1qKzQ7az1jW2o+PjJdfDB9
ZWxzZXtqPWIwW2NbKGNbZT4+Ml18MCkrNDA+PjJdJjEyN10oYSl8MDtpZigoanwwKT09LTEpe2Y9
YjtsPTIwMDc7YnJlYWt9ZWxzZXtrPWp9fWNbaT4+Ml09aztqPWIrMXwwO2lmKChqfDApPChkfDAp
KXtpPWkrNHwwO2I9an1lbHNle2Y9ajtsPTIwMDg7YnJlYWt9fWlmKChsfDApPT0yMDA4KXtyZXR1
cm4gZnwwfWVsc2UgaWYoKGx8MCk9PTIwMDcpe3JldHVybiBmfDB9cmV0dXJuIDB9ZnVuY3Rpb24g
ZU8oYSl7YT1hfDA7dmFyIGI9MCxkPTA7aWYoKGIwW2NbKGNbYT4+Ml18MCkrMzY+PjJdJjEyN10o
YSl8MCk9PS0xKXtiPS0xO3JldHVybiBifDB9ZD1hKzEyfDA7YT1jW2Q+PjJdfDA7Y1tkPj4yXT1h
KzQ7Yj1jW2E+PjJdfDA7cmV0dXJuIGJ8MH1mdW5jdGlvbiBlUChhLGIsZCl7YT1hfDA7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1hO2lmKChkfDApPD0w
KXtmPTA7cmV0dXJuIGZ8MH1nPWErMjR8MDtoPWErMjh8MDtpPTA7aj1iO3doaWxlKDEpe2I9Y1tn
Pj4yXXwwO2lmKGI+Pj4wPChjW2g+PjJdfDApPj4+MCl7az1jW2o+PjJdfDA7Y1tnPj4yXT1iKzQ7
Y1tiPj4yXT1rfWVsc2V7aWYoKGJfW2NbKGNbZT4+Ml18MCkrNTI+PjJdJjMxXShhLGNbaj4+Ml18
MCl8MCk9PS0xKXtmPWk7bD0yMDIzO2JyZWFrfX1rPWkrMXwwO2lmKChrfDApPChkfDApKXtpPWs7
aj1qKzR8MH1lbHNle2Y9aztsPTIwMjI7YnJlYWt9fWlmKChsfDApPT0yMDIzKXtyZXR1cm4gZnww
fWVsc2UgaWYoKGx8MCk9PTIwMjIpe3JldHVybiBmfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZVEoYSl7
YT1hfDA7ZUQoYSs4fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlUihhKXthPWF8MDtlRChhKzh8
MCk7cmV0dXJufWZ1bmN0aW9uIGVTKGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9YTtkPWNbKGNbYT4+
Ml18MCktMTI+PjJdfDA7ZUQoYisoZCs4KXwwKTtrUyhiK2R8MCk7cmV0dXJufWZ1bmN0aW9uIGVU
KGEpe2E9YXwwO2VEKGErKChjWyhjW2E+PjJdfDApLTEyPj4yXXwwKSs4KXwwKTtyZXR1cm59ZnVu
Y3Rpb24gZVUoYSl7YT1hfDA7ZUQoYSs4fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlVihhKXth
PWF8MDtlRChhKzh8MCk7cmV0dXJufWZ1bmN0aW9uIGVXKGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9
YTtkPWNbKGNbYT4+Ml18MCktMTI+PjJdfDA7ZUQoYisoZCs4KXwwKTtrUyhiK2R8MCk7cmV0dXJu
fWZ1bmN0aW9uIGVYKGEpe2E9YXwwO2VEKGErKChjWyhjW2E+PjJdfDApLTEyPj4yXXwwKSs4KXww
KTtyZXR1cm59ZnVuY3Rpb24gZVkoYSl7YT1hfDA7ZUQoYSs0fDApO2tTKGEpO3JldHVybn1mdW5j
dGlvbiBlWihhKXthPWF8MDtlRChhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGVfKGEpe2E9YXwwO3Zh
ciBiPTAsZD0wO2I9YTtkPWNbKGNbYT4+Ml18MCktMTI+PjJdfDA7ZUQoYisoZCs0KXwwKTtrUyhi
K2R8MCk7cmV0dXJufWZ1bmN0aW9uIGUkKGEpe2E9YXwwO2VEKGErKChjWyhjW2E+PjJdfDApLTEy
Pj4yXXwwKSs0KXwwKTtyZXR1cm59ZnVuY3Rpb24gZTAoYSl7YT1hfDA7ZUQoYSs0fDApO2tTKGEp
O3JldHVybn1mdW5jdGlvbiBlMShhKXthPWF8MDtlRChhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGUy
KGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9YTtkPWNbKGNbYT4+Ml18MCktMTI+PjJdfDA7ZUQoYiso
ZCs0KXwwKTtrUyhiK2R8MCk7cmV0dXJufWZ1bmN0aW9uIGUzKGEpe2E9YXwwO2VEKGErKChjWyhj
W2E+PjJdfDApLTEyPj4yXXwwKSs0KXwwKTtyZXR1cm59ZnVuY3Rpb24gZTQoYSxiLGMpe2E9YXww
O2I9YnwwO2M9Y3wwO2lmKChjfDApPT0xKXtkWihhLDE2NDAsMzUpO3JldHVybn1lbHNle2RLKGEs
YnwwLGMpO3JldHVybn19ZnVuY3Rpb24gZTUoYSl7YT1hfDA7ZGYoYXwwKTtyZXR1cm59ZnVuY3Rp
b24gZTYoYSl7YT1hfDA7ZE8oYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZTcoYSl7YT1hfDA7
ZE8oYXwwKTtyZXR1cm59ZnVuY3Rpb24gZTgoYSl7YT1hfDA7ZUQoYSk7a1MoYSk7cmV0dXJufWZ1
bmN0aW9uIGU5KGEpe2E9YXwwO2RmKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGZhKGEpe2E9
YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGZiKGEpe2E9YXwwO2RlKGF8MCk7cmV0
dXJufWZ1bmN0aW9uIGZjKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZkKGIsZCxl
LGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wO2Q9ZTtn
PWYtZHwwO2Rve2lmKChnfDApPT0tMSl7ZFgoYik7aD0yMDU4fWVsc2V7aWYoZz4+PjA+PTExKXto
PTIwNTg7YnJlYWt9YVtiXT1nPDwxJjI1NTtpPWIrMXwwfX13aGlsZSgwKTtpZigoaHwwKT09MjA1
OCl7aD1nKzE2Ji0xNjtqPWtPKGgpfDA7Y1tiKzg+PjJdPWo7Y1tiPj4yXT1ofDE7Y1tiKzQ+PjJd
PWc7aT1qfWlmKChlfDApPT0oZnwwKSl7az1pO2Fba109MDtyZXR1cm59aj1mKygtZHwwKXwwO2Q9
aTtnPWU7d2hpbGUoMSl7YVtkXT1hW2ddfDA7ZT1nKzF8MDtpZigoZXwwKT09KGZ8MCkpe2JyZWFr
fWVsc2V7ZD1kKzF8MDtnPWV9fWs9aStqfDA7YVtrXT0wO3JldHVybn1mdW5jdGlvbiBmZShhKXth
PWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBmZihhKXthPWF8MDtkZShhfDApO3Jl
dHVybn1mdW5jdGlvbiBmZyhiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0w
O2Q9aTtpPWkrOHwwO2U9ZHwwO2Y9YjtnPWNbKGNbZj4+Ml18MCktMTI+PjJdfDA7aD1iO2lmKChj
W2grKGcrMjQpPj4yXXwwKT09MCl7aT1kO3JldHVybiBifDB9aj1lfDA7YVtqXT0wO2NbZSs0Pj4y
XT1iO2Rve2lmKChjW2grKGcrMTYpPj4yXXwwKT09MCl7az1jW2grKGcrNzIpPj4yXXwwO2lmKChr
fDApIT0wKXtmZyhrKXwwfWFbal09MTtrPWNbaCsoKGNbKGNbZj4+Ml18MCktMTI+PjJdfDApKzI0
KT4+Ml18MDtpZigoYjBbY1soY1trPj4yXXwwKSsyND4+Ml0mMTI3XShrKXwwKSE9LTEpe2JyZWFr
fWs9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtlQyhoK2t8MCxjW2grKGsrMTYpPj4yXXwxKX19d2hp
bGUoMCk7ZmkoZSk7aT1kO3JldHVybiBifDB9ZnVuY3Rpb24gZmgoYil7Yj1ifDA7dmFyIGQ9MCxl
PTAsZj0wLGc9MCxoPTAsaj0wLGs9MDtkPWk7aT1pKzh8MDtlPWR8MDtmPWI7Zz1jWyhjW2Y+PjJd
fDApLTEyPj4yXXwwO2g9YjtpZigoY1toKyhnKzI0KT4+Ml18MCk9PTApe2k9ZDtyZXR1cm4gYnww
fWo9ZXwwO2Fbal09MDtjW2UrND4+Ml09Yjtkb3tpZigoY1toKyhnKzE2KT4+Ml18MCk9PTApe2s9
Y1toKyhnKzcyKT4+Ml18MDtpZigoa3wwKSE9MCl7Zmgoayl8MH1hW2pdPTE7az1jW2grKChjWyhj
W2Y+PjJdfDApLTEyPj4yXXwwKSsyNCk+PjJdfDA7aWYoKGIwW2NbKGNbaz4+Ml18MCkrMjQ+PjJd
JjEyN10oayl8MCkhPS0xKXticmVha31rPWNbKGNbZj4+Ml18MCktMTI+PjJdfDA7ZUMoaCtrfDAs
Y1toKyhrKzE2KT4+Ml18MSl9fXdoaWxlKDApO2ZqKGUpO2k9ZDtyZXR1cm4gYnwwfWZ1bmN0aW9u
IGZpKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtiPWErNHwwO2E9Y1tiPj4yXXwwO2Q9Y1soY1th
Pj4yXXwwKS0xMj4+Ml18MDtlPWE7aWYoKGNbZSsoZCsyNCk+PjJdfDApPT0wKXtyZXR1cm59aWYo
KGNbZSsoZCsxNik+PjJdfDApIT0wKXtyZXR1cm59aWYoKGNbZSsoZCs0KT4+Ml0mODE5MnwwKT09
MCl7cmV0dXJufWlmKGJoKCl8MCl7cmV0dXJufWQ9Y1tiPj4yXXwwO2U9Y1tkKygoY1soY1tkPj4y
XXwwKS0xMj4+Ml18MCkrMjQpPj4yXXwwO2lmKChiMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjdd
KGUpfDApIT0tMSl7cmV0dXJufWU9Y1tiPj4yXXwwO2I9Y1soY1tlPj4yXXwwKS0xMj4+Ml18MDtk
PWU7ZUMoZCtifDAsY1tkKyhiKzE2KT4+Ml18MSk7cmV0dXJufWZ1bmN0aW9uIGZqKGEpe2E9YXww
O3ZhciBiPTAsZD0wLGU9MDtiPWErNHwwO2E9Y1tiPj4yXXwwO2Q9Y1soY1thPj4yXXwwKS0xMj4+
Ml18MDtlPWE7aWYoKGNbZSsoZCsyNCk+PjJdfDApPT0wKXtyZXR1cm59aWYoKGNbZSsoZCsxNik+
PjJdfDApIT0wKXtyZXR1cm59aWYoKGNbZSsoZCs0KT4+Ml0mODE5MnwwKT09MCl7cmV0dXJufWlm
KGJoKCl8MCl7cmV0dXJufWQ9Y1tiPj4yXXwwO2U9Y1tkKygoY1soY1tkPj4yXXwwKS0xMj4+Ml18
MCkrMjQpPj4yXXwwO2lmKChiMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGUpfDApIT0tMSl7
cmV0dXJufWU9Y1tiPj4yXXwwO2I9Y1soY1tlPj4yXXwwKS0xMj4+Ml18MDtkPWU7ZUMoZCtifDAs
Y1tkKyhiKzE2KT4+Ml18MSk7cmV0dXJufWZ1bmN0aW9uIGZrKGEsYixkLGUsZil7YT1hfDA7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO0wyNTk2OmRv
e2lmKChlfDApPT0oZnwwKSl7Zz1ifWVsc2V7YT1iO2g9ZTt3aGlsZSgxKXtpZigoYXwwKT09KGR8
MCkpe2k9LTE7aj0yMTQ3O2JyZWFrfWs9Y1thPj4yXXwwO2w9Y1toPj4yXXwwO2lmKChrfDApPChs
fDApKXtpPS0xO2o9MjE1MDticmVha31pZigobHwwKTwoa3wwKSl7aT0xO2o9MjE0ODticmVha31r
PWErNHwwO2w9aCs0fDA7aWYoKGx8MCk9PShmfDApKXtnPWs7YnJlYWsgTDI1OTZ9ZWxzZXthPWs7
aD1sfX1pZigoanwwKT09MjE0OCl7cmV0dXJuIGl8MH1lbHNlIGlmKChqfDApPT0yMTQ3KXtyZXR1
cm4gaXwwfWVsc2UgaWYoKGp8MCk9PTIxNTApe3JldHVybiBpfDB9fX13aGlsZSgwKTtpPShnfDAp
IT0oZHwwKXwwO3JldHVybiBpfDB9ZnVuY3Rpb24gZmwoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MCxoPTA7aWYoKGJ8MCk9PShkfDApKXtlPTA7cmV0dXJuIGV8MH1lbHNl
e2Y9YjtnPTB9d2hpbGUoMSl7Yj0oY1tmPj4yXXwwKSsoZzw8NCl8MDthPWImLTI2ODQzNTQ1Njto
PShhPj4+MjR8YSleYjtiPWYrNHwwO2lmKChifDApPT0oZHwwKSl7ZT1oO2JyZWFrfWVsc2V7Zj1i
O2c9aH19cmV0dXJuIGV8MH1mdW5jdGlvbiBmbShiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MDtkPWU7Zz1mLWR8MDtoPWc+PjI7aWYoaD4+PjA+
MTA3Mzc0MTgyMil7ZFgoYil9aWYoaD4+PjA8Mil7YVtiXT1nPj4+MSYyNTU7aT1iKzR8MH1lbHNl
e2c9aCs0Ji00O2o9a08oZzw8Mil8MDtjW2IrOD4+Ml09ajtjW2I+PjJdPWd8MTtjW2IrND4+Ml09
aDtpPWp9aWYoKGV8MCk9PShmfDApKXtrPWk7Y1trPj4yXT0wO3JldHVybn1qPShmLTQrKC1kfDAp
fDApPj4+MjtkPWk7aD1lO3doaWxlKDEpe2NbZD4+Ml09Y1toPj4yXTtlPWgrNHwwO2lmKChlfDAp
PT0oZnwwKSl7YnJlYWt9ZWxzZXtkPWQrNHwwO2g9ZX19az1pKyhqKzE8PDIpfDA7Y1trPj4yXT0w
O3JldHVybn1mdW5jdGlvbiBmbihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlv
biBmbyhhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBmcChiLGQsZSxmLGcsaCxqKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtr
PWk7aT1pKzExMnwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07
bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWt8MDttPWsrMTZ8
MDtuPWsrMzJ8MDtvPWsrNDB8MDtwPWsrNDh8MDtxPWsrNTZ8MDtyPWsrNjR8MDtzPWsrNzJ8MDt0
PWsrODB8MDt1PWsrMTA0fDA7aWYoKGNbZys0Pj4yXSYxfDApPT0wKXtjW24+PjJdPS0xO3Y9Y1so
Y1tkPj4yXXwwKSsxNj4+Ml18MDt3PWV8MDtjW3A+PjJdPWNbdz4+Ml07Y1txPj4yXT1jW2Y+PjJd
O2JYW3YmMTI3XShvLGQscCxxLGcsaCxuKTtxPWNbbz4+Ml18MDtjW3c+PjJdPXE7c3dpdGNoKGNb
bj4+Ml18MCl7Y2FzZSAxOnthW2pdPTE7YnJlYWt9O2Nhc2UgMDp7YVtqXT0wO2JyZWFrfTtkZWZh
dWx0OnthW2pdPTE7Y1toPj4yXT00fX1jW2I+PjJdPXE7aT1rO3JldHVybn1laihyLGcpO3E9cnww
O3I9Y1txPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1ttPj4yXT0xNTY5NjtjW20rND4+Ml09
MTI7Y1ttKzg+PjJdPTA7ZFcoMTU2OTYsbSw5Nil9bT0oY1szOTI1XXwwKS0xfDA7bj1jW3IrOD4+
Ml18MDtkb3tpZigoY1tyKzEyPj4yXXwwKS1uPj4yPj4+MD5tPj4+MCl7dz1jW24rKG08PDIpPj4y
XXwwO2lmKCh3fDApPT0wKXticmVha31vPXc7dz1jW3E+PjJdfDA7ZHoodyl8MDtlaihzLGcpO3c9
c3wwO3A9Y1t3Pj4yXXwwO2lmKChjWzM4MjhdfDApIT0tMSl7Y1tsPj4yXT0xNTMxMjtjW2wrND4+
Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTUzMTIsbCw5Nil9ZD0oY1szODI5XXwwKS0xfDA7dj1jW3Ar
OD4+Ml18MDtkb3tpZigoY1twKzEyPj4yXXwwKS12Pj4yPj4+MD5kPj4+MCl7eD1jW3YrKGQ8PDIp
Pj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7ej1jW3c+PjJdfDA7ZHooeil8MDt6PXR8MDtB
PXg7YlpbY1soY1tBPj4yXXwwKSsyND4+Ml0mMTI3XSh6LHkpO2JaW2NbKGNbQT4+Ml18MCkrMjg+
PjJdJjEyN10odCsxMnwwLHkpO2NbdT4+Ml09Y1tmPj4yXTthW2pdPShmcShlLHUseix0KzI0fDAs
byxoLDEpfDApPT0oenwwKXwwO2NbYj4+Ml09Y1tlPj4yXTtkUCh0KzEyfDApO2RQKHR8MCk7aT1r
O3JldHVybn19d2hpbGUoMCk7bz1iTyg0KXwwO2txKG8pO2JsKG98MCw4MTc2LDEzNCl9fXdoaWxl
KDApO2s9Yk8oNCl8MDtrcShrKTtibChrfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZxKGIsZSxmLGcs
aCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxB
PTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89
MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9
MDtsPWk7aT1pKzEwNHwwO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+
Ml07bT0oZy1mfDApLzEyfDA7bj1sfDA7ZG97aWYobT4+PjA+MTAwKXtvPWtKKG0pfDA7aWYoKG98
MCkhPTApe3A9bztxPW87YnJlYWt9a1goKTtwPTA7cT0wfWVsc2V7cD1uO3E9MH19d2hpbGUoMCk7
bj0oZnwwKT09KGd8MCk7aWYobil7cj1tO3M9MH1lbHNle289bTttPTA7dD1wO3U9Zjt3aGlsZSgx
KXt2PWRbdV18MDtpZigodiYxfDApPT0wKXt3PXY+Pj4xfWVsc2V7dz1jW3UrND4+Ml18MH1pZigo
d3wwKT09MCl7YVt0XT0yO3g9bSsxfDA7eT1vLTF8MH1lbHNle2FbdF09MTt4PW07eT1vfXY9dSsx
MnwwO2lmKCh2fDApPT0oZ3wwKSl7cj15O3M9eDticmVha31lbHNle289eTttPXg7dD10KzF8MDt1
PXZ9fX11PWJ8MDtiPWV8MDtlPWg7dD0wO3g9cztzPXI7d2hpbGUoMSl7cj1jW3U+PjJdfDA7ZG97
aWYoKHJ8MCk9PTApe3o9MH1lbHNle2lmKChjW3IrMTI+PjJdfDApIT0oY1tyKzE2Pj4yXXwwKSl7
ej1yO2JyZWFrfWlmKChiMFtjWyhjW3I+PjJdfDApKzM2Pj4yXSYxMjddKHIpfDApPT0tMSl7Y1t1
Pj4yXT0wO3o9MDticmVha31lbHNle3o9Y1t1Pj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7cj0oenww
KT09MDttPWNbYj4+Ml18MDtpZigobXwwKT09MCl7QT16O0I9MH1lbHNle2Rve2lmKChjW20rMTI+
PjJdfDApPT0oY1ttKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbbT4+Ml18MCkrMzY+PjJdJjEyN10o
bSl8MCkhPS0xKXtDPW07YnJlYWt9Y1tiPj4yXT0wO0M9MH1lbHNle0M9bX19d2hpbGUoMCk7QT1j
W3U+PjJdfDA7Qj1DfUQ9KEJ8MCk9PTA7aWYoISgocl5EKSYoc3wwKSE9MCkpe2JyZWFrfW09Y1tB
KzEyPj4yXXwwO2lmKChtfDApPT0oY1tBKzE2Pj4yXXwwKSl7RT0oYjBbY1soY1tBPj4yXXwwKSsz
Nj4+Ml0mMTI3XShBKXwwKSYyNTV9ZWxzZXtFPWFbbV18MH1pZihrKXtGPUV9ZWxzZXtGPWJfW2Nb
KGNbZT4+Ml18MCkrMTI+PjJdJjMxXShoLEUpfDB9ZG97aWYobil7Rz14O0g9c31lbHNle209dCsx
fDA7TDI3MDc6ZG97aWYoayl7eT1zO289eDt3PXA7dj0wO0k9Zjt3aGlsZSgxKXtkb3tpZigoYVt3
XXwwKT09MSl7Sj1JO2lmKChhW0pdJjEpPT0wKXtLPUkrMXwwfWVsc2V7Sz1jW0krOD4+Ml18MH1p
ZihGPDwyND4+MjQhPShhW0srdHwwXXwwKSl7YVt3XT0wO0w9djtNPW87Tj15LTF8MDticmVha31P
PWRbSl18MDtpZigoTyYxfDApPT0wKXtQPU8+Pj4xfWVsc2V7UD1jW0krND4+Ml18MH1pZigoUHww
KSE9KG18MCkpe0w9MTtNPW87Tj15O2JyZWFrfWFbd109MjtMPTE7TT1vKzF8MDtOPXktMXwwfWVs
c2V7TD12O009bztOPXl9fXdoaWxlKDApO089SSsxMnwwO2lmKChPfDApPT0oZ3wwKSl7UT1OO1I9
TTtTPUw7YnJlYWsgTDI3MDd9eT1OO289TTt3PXcrMXwwO3Y9TDtJPU99fWVsc2V7ST1zO3Y9eDt3
PXA7bz0wO3k9Zjt3aGlsZSgxKXtkb3tpZigoYVt3XXwwKT09MSl7Tz15O2lmKChhW09dJjEpPT0w
KXtUPXkrMXwwfWVsc2V7VD1jW3krOD4+Ml18MH1pZihGPDwyND4+MjQhPShiX1tjWyhjW2U+PjJd
fDApKzEyPj4yXSYzMV0oaCxhW1QrdHwwXXwwKXwwKTw8MjQ+PjI0KXthW3ddPTA7VT1vO1Y9djtX
PUktMXwwO2JyZWFrfUo9ZFtPXXwwO2lmKChKJjF8MCk9PTApe1g9Sj4+PjF9ZWxzZXtYPWNbeSs0
Pj4yXXwwfWlmKChYfDApIT0obXwwKSl7VT0xO1Y9djtXPUk7YnJlYWt9YVt3XT0yO1U9MTtWPXYr
MXwwO1c9SS0xfDB9ZWxzZXtVPW87Vj12O1c9SX19d2hpbGUoMCk7Sj15KzEyfDA7aWYoKEp8MCk9
PShnfDApKXtRPVc7Uj1WO1M9VTticmVhayBMMjcwN31JPVc7dj1WO3c9dysxfDA7bz1VO3k9Sn19
fXdoaWxlKDApO2lmKCFTKXtHPVI7SD1RO2JyZWFrfW09Y1t1Pj4yXXwwO3k9bSsxMnwwO289Y1t5
Pj4yXXwwO2lmKChvfDApPT0oY1ttKzE2Pj4yXXwwKSl7dz1jWyhjW20+PjJdfDApKzQwPj4yXXww
O2IwW3cmMTI3XShtKXwwfWVsc2V7Y1t5Pj4yXT1vKzF9aWYoKFIrUXwwKT4+PjA8MnxuKXtHPVI7
SD1RO2JyZWFrfW89dCsxfDA7eT1SO209cDt3PWY7d2hpbGUoMSl7ZG97aWYoKGFbbV18MCk9PTIp
e3Y9ZFt3XXwwO2lmKCh2JjF8MCk9PTApe1k9dj4+PjF9ZWxzZXtZPWNbdys0Pj4yXXwwfWlmKChZ
fDApPT0ob3wwKSl7Wj15O2JyZWFrfWFbbV09MDtaPXktMXwwfWVsc2V7Wj15fX13aGlsZSgwKTt2
PXcrMTJ8MDtpZigodnwwKT09KGd8MCkpe0c9WjtIPVE7YnJlYWt9ZWxzZXt5PVo7bT1tKzF8MDt3
PXZ9fX19d2hpbGUoMCk7dD10KzF8MDt4PUc7cz1IfWRve2lmKChBfDApPT0wKXtfPTB9ZWxzZXtp
ZigoY1tBKzEyPj4yXXwwKSE9KGNbQSsxNj4+Ml18MCkpe189QTticmVha31pZigoYjBbY1soY1tB
Pj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKT09LTEpe2NbdT4+Ml09MDtfPTA7YnJlYWt9ZWxzZXtf
PWNbdT4+Ml18MDticmVha319fXdoaWxlKDApO3U9KF98MCk9PTA7ZG97aWYoRCl7JD0yMjkzfWVs
c2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtpZih1KXticmVha31lbHNleyQ9
MjI5NTticmVha319aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCk9PS0xKXtj
W2I+PjJdPTA7JD0yMjkzO2JyZWFrfWVsc2V7aWYodV4oQnwwKT09MCl7YnJlYWt9ZWxzZXskPTIy
OTU7YnJlYWt9fX19d2hpbGUoMCk7aWYoKCR8MCk9PTIyOTMpe2lmKHUpeyQ9MjI5NX19aWYoKCR8
MCk9PTIyOTUpe2Nbaj4+Ml09Y1tqPj4yXXwyfUwyNzg2OmRve2lmKG4peyQ9MjMwMH1lbHNle3U9
ZjtCPXA7d2hpbGUoMSl7aWYoKGFbQl18MCk9PTIpe2FhPXU7YnJlYWsgTDI3ODZ9Yj11KzEyfDA7
aWYoKGJ8MCk9PShnfDApKXskPTIzMDA7YnJlYWsgTDI3ODZ9dT1iO0I9QisxfDB9fX13aGlsZSgw
KTtpZigoJHwwKT09MjMwMCl7Y1tqPj4yXT1jW2o+PjJdfDQ7YWE9Z31pZigocXwwKT09MCl7aT1s
O3JldHVybiBhYXwwfWtLKHEpO2k9bDtyZXR1cm4gYWF8MH1mdW5jdGlvbiBmcihiLGUsZixnLGgs
aixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAs
UD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7ZT1pO2k9aSs3MnwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+
Ml09Y1tsPj4yXTtsPWUrMzJ8MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47cD1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgNjQ6e3Q9ODticmVha307
Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307ZGVmYXVsdDp7dD0xMH19dT1l
fDA7ZngobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0w
KXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8
MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1u
fDA7ej1uKzR8MDtBPWFbbF18MDtsPXc7dz1jW2g+PjJdfDA7TDI4MDk6d2hpbGUoMSl7ZG97aWYo
KHd8MCk9PTApe0I9MH1lbHNle2lmKChjW3crMTI+PjJdfDApIT0oY1t3KzE2Pj4yXXwwKSl7Qj13
O2JyZWFrfWlmKChiMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDApIT0tMSl7Qj13O2Jy
ZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1jW2Y+PjJdfDA7ZG97aWYo
KER8MCk9PTApe0U9MjMyN31lbHNle2lmKChjW0QrMTI+PjJdfDApIT0oY1tEKzE2Pj4yXXwwKSl7
aWYoQyl7Rj1EO0c9MDticmVha31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFrIEwyODA5fX1pZigoYjBb
Y1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+Ml09MDtFPTIzMjc7YnJl
YWt9ZWxzZXtLPShEfDApPT0wO2lmKENeSyl7Rj1EO0c9SzticmVha31lbHNle0g9bDtJPUQ7Sj1L
O2JyZWFrIEwyODA5fX19fXdoaWxlKDApO2lmKChFfDApPT0yMzI3KXtFPTA7aWYoQyl7SD1sO0k9
MDtKPTE7YnJlYWt9ZWxzZXtGPTA7Rz0xfX1EPWRbb118MDtLPShEJjF8MCk9PTA7aWYoKChjW3A+
PjJdfDApLWx8MCk9PSgoSz9EPj4+MTpjW3o+PjJdfDApfDApKXtpZihLKXtMPUQ+Pj4xO009RD4+
PjF9ZWxzZXtEPWNbej4+Ml18MDtMPUQ7TT1EfWRSKG4sTDw8MSwwKTtpZigoYVtvXSYxKT09MCl7
Tj0xMH1lbHNle049KGNbZz4+Ml0mLTIpLTF8MH1kUihuLE4sMCk7aWYoKGFbb10mMSk9PTApe089
eH1lbHNle089Y1t5Pj4yXXwwfWNbcD4+Ml09TytNO1A9T31lbHNle1A9bH1EPUIrMTJ8MDtLPWNb
RD4+Ml18MDtRPUIrMTZ8MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1I9KGIwW2NbKGNbQj4+Ml18
MCkrMzY+PjJdJjEyN10oQil8MCkmMjU1fWVsc2V7Uj1hW0tdfDB9aWYoKGZzKFIsdCxQLHAscyxB
LG0sdixyLHUpfDApIT0wKXtIPVA7ST1GO0o9RzticmVha31LPWNbRD4+Ml18MDtpZigoS3wwKT09
KGNbUT4+Ml18MCkpe1E9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtRJjEyN10oQil8MDtsPVA7
dz1CO2NvbnRpbnVlfWVsc2V7Y1tEPj4yXT1LKzE7bD1QO3c9Qjtjb250aW51ZX19dz1kW21dfDA7
aWYoKHcmMXwwKT09MCl7Uz13Pj4+MX1lbHNle1M9Y1ttKzQ+PjJdfDB9ZG97aWYoKFN8MCkhPTAp
e3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9UD1jW3M+PjJdfDA7Y1tyPj4yXT13
KzQ7Y1t3Pj4yXT1QfX13aGlsZSgwKTtjW2s+PjJdPWZ1KEgsY1twPj4yXXwwLGosdCl8MDtmdCht
LHYsY1tyPj4yXXwwLGopO2Rve2lmKEMpe1Q9MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tC
KzE2Pj4yXXwwKSl7VD1CO2JyZWFrfWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIp
fDApIT0tMSl7VD1CO2JyZWFrfWNbaD4+Ml09MDtUPTB9fXdoaWxlKDApO2g9KFR8MCk9PTA7TDI4
Njk6ZG97aWYoSil7RT0yMzY4fWVsc2V7ZG97aWYoKGNbSSsxMj4+Ml18MCk9PShjW0krMTY+PjJd
fDApKXtpZigoYjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwKSE9LTEpe2JyZWFrfWNb
Zj4+Ml09MDtFPTIzNjg7YnJlYWsgTDI4Njl9fXdoaWxlKDApO2lmKCEoaF4oSXwwKT09MCkpe2Jy
ZWFrfVU9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tp
ZigoRXwwKT09MjM2OCl7aWYoaCl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1U9YnwwO2NbVT4+Ml09VDtkUChu
KTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZzKGIsZSxmLGcsaCxpLGosayxsLG0pe2I9Ynww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3Zh
ciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDtuPWNbZz4+Ml18MDtvPShufDApPT0oZnwwKTtkb3tp
ZihvKXtwPShhW20rMjR8MF18MCk9PWI8PDI0Pj4yNDtpZighcCl7aWYoKGFbbSsyNXwwXXwwKSE9
Yjw8MjQ+PjI0KXticmVha319Y1tnPj4yXT1mKzE7YVtmXT1wPzQzOjQ1O2NbaD4+Ml09MDtxPTA7
cmV0dXJuIHF8MH19d2hpbGUoMCk7cD1kW2pdfDA7aWYoKHAmMXwwKT09MCl7cj1wPj4+MX1lbHNl
e3I9Y1tqKzQ+PjJdfDB9aWYoKHJ8MCkhPTAmYjw8MjQ+PjI0PT1pPDwyND4+MjQpe2k9Y1tsPj4y
XXwwO2lmKChpLWt8MCk+PTE2MCl7cT0wO3JldHVybiBxfDB9az1jW2g+PjJdfDA7Y1tsPj4yXT1p
KzQ7Y1tpPj4yXT1rO2NbaD4+Ml09MDtxPTA7cmV0dXJuIHF8MH1rPW0rMjZ8MDtpPW07d2hpbGUo
MSl7aWYoKGl8MCk9PShrfDApKXtzPWs7YnJlYWt9aWYoKGFbaV18MCk9PWI8PDI0Pj4yNCl7cz1p
O2JyZWFrfWVsc2V7aT1pKzF8MH19aT1zLW18MDtpZigoaXwwKT4yMyl7cT0tMTtyZXR1cm4gcXww
fUwyOTA4OmRve3N3aXRjaChlfDApe2Nhc2UgODpjYXNlIDEwOntpZigoaXwwKTwoZXwwKSl7YnJl
YWsgTDI5MDh9ZWxzZXtxPS0xfXJldHVybiBxfDB9O2Nhc2UgMTY6e2lmKChpfDApPDIyKXticmVh
ayBMMjkwOH1pZihvKXtxPS0xO3JldHVybiBxfDB9aWYoKG4tZnwwKT49Myl7cT0tMTtyZXR1cm4g
cXwwfWlmKChhW24tMXwwXXwwKSE9NDgpe3E9LTE7cmV0dXJuIHF8MH1jW2g+PjJdPTA7bT1hWzk3
NDQraXwwXXwwO3M9Y1tnPj4yXXwwO2NbZz4+Ml09cysxO2Fbc109bTtxPTA7cmV0dXJuIHF8MH07
ZGVmYXVsdDp7fX19d2hpbGUoMCk7Zj1hWzk3NDQraXwwXXwwO2NbZz4+Ml09bisxO2Fbbl09Zjtj
W2g+PjJdPShjW2g+PjJdfDApKzE7cT0wO3JldHVybiBxfDB9ZnVuY3Rpb24gZnQoYixkLGUsZil7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2c9YjtoPWI7aT1hW2hdfDA7aj1pJjI1NTtp
ZigoaiYxfDApPT0wKXtrPWo+Pj4xfWVsc2V7az1jW2IrND4+Ml18MH1pZigoa3wwKT09MCl7cmV0
dXJufWRve2lmKChkfDApPT0oZXwwKSl7bD1pfWVsc2V7az1lLTR8MDtpZihrPj4+MD5kPj4+MCl7
bT1kO249a31lbHNle2w9aTticmVha31kb3trPWNbbT4+Ml18MDtjW20+PjJdPWNbbj4+Ml07Y1tu
Pj4yXT1rO209bSs0fDA7bj1uLTR8MDt9d2hpbGUobT4+PjA8bj4+PjApO2w9YVtoXXwwfX13aGls
ZSgwKTtpZigobCYxKT09MCl7bz1nKzF8MH1lbHNle289Y1tiKzg+PjJdfDB9Zz1sJjI1NTtpZigo
ZyYxfDApPT0wKXtwPWc+Pj4xfWVsc2V7cD1jW2IrND4+Ml18MH1iPWUtNHwwO2U9YVtvXXwwO2c9
ZTw8MjQ+PjI0O2w9ZTw8MjQ+PjI0PDF8ZTw8MjQ+PjI0PT0xMjc7TDI5NDc6ZG97aWYoYj4+PjA+
ZD4+PjApe2U9bytwfDA7aD1vO249ZDttPWc7aT1sO3doaWxlKDEpe2lmKCFpKXtpZigobXwwKSE9
KGNbbj4+Ml18MCkpe2JyZWFrfX1rPShlLWh8MCk+MT9oKzF8MDpoO2o9bis0fDA7cT1hW2tdfDA7
cj1xPDwyND4+MjQ7cz1xPDwyND4+MjQ8MXxxPDwyND4+MjQ9PTEyNztpZihqPj4+MDxiPj4+MCl7
aD1rO249ajttPXI7aT1zfWVsc2V7dD1yO3U9czticmVhayBMMjk0N319Y1tmPj4yXT00O3JldHVy
bn1lbHNle3Q9Zzt1PWx9fXdoaWxlKDApO2lmKHUpe3JldHVybn11PWNbYj4+Ml18MDtpZighKHQ+
Pj4wPHU+Pj4wfCh1fDApPT0wKSl7cmV0dXJufWNbZj4+Ml09NDtyZXR1cm59ZnVuY3Rpb24gZnUo
YixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTA7
Zz1pO2k9aSs4fDA7aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1
cm4ganwwfWs9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7bD1iSShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9Y1soYncoKXww
KT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09a31pZigoY1toPj4yXXwwKSE9KGR8
MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9ZD0tMTtoPTA7aWYoKGJ8MCk9PTM0fCgo
ZnwwKTwoZHwwKXwoZnwwKT09KGR8MCkmbD4+PjA8LTIxNDc0ODM2NDg+Pj4wKXwoKGZ8MCk+KGh8
MCl8KGZ8MCk9PShofDApJmw+Pj4wPjIxNDc0ODM2NDc+Pj4wKSl7Y1tlPj4yXT00O2U9MDtqPShm
fDApPihlfDApfChmfDApPT0oZXwwKSZsPj4+MD4wPj4+MD8yMTQ3NDgzNjQ3Oi0yMTQ3NDgzNjQ4
O2k9ZztyZXR1cm4ganwwfWVsc2V7aj1sO2k9ZztyZXR1cm4ganwwfXJldHVybiAwfWZ1bmN0aW9u
IGZ2KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9
a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsTD0wLE09
MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtw
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA4
Ont0PTE2O2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtkZWZh
dWx0Ont0PTEwfX11PWV8MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7
aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNb
dj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDto
PWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMjk5Nzp3
aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3cr
MTY+PjJdfDApKXtCPXc7YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8
MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNb
Zj4+Ml18MDtkb3tpZigoRHwwKT09MCl7RT0yNDc2fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShj
W0QrMTY+PjJdfDApKXtpZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsg
TDI5OTd9fWlmKChiMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4y
XT0wO0U9MjQ3NjticmVha31lbHNle0w9KER8MCk9PTA7aWYoQ15MKXtGPUQ7Rz1MO2JyZWFrfWVs
c2V7SD1sO0k9RDtKPUw7YnJlYWsgTDI5OTd9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTI0NzYpe0U9
MDtpZihDKXtIPWw7ST0wO0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0w9KEQmMXww
KT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChMP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEwp
e009RD4+PjE7Tj1EPj4+MX1lbHNle0Q9Y1t6Pj4yXXwwO009RDtOPUR9ZFIobixNPDwxLDApO2lm
KChhW29dJjEpPT0wKXtPPTEwfWVsc2V7Tz0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTywwKTtpZigo
YVtvXSYxKT09MCl7UD14fWVsc2V7UD1jW3k+PjJdfDB9Y1twPj4yXT1QK047UT1QfWVsc2V7UT1s
fUQ9QisxMnwwO0w9Y1tEPj4yXXwwO1I9QisxNnwwO2lmKChMfDApPT0oY1tSPj4yXXwwKSl7Uz0o
YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtTPWFbTF18MH1pZigo
ZnMoUyx0LFEscCxzLEEsbSx2LHIsdSl8MCkhPTApe0g9UTtJPUY7Sj1HO2JyZWFrfUw9Y1tEPj4y
XXwwO2lmKChMfDApPT0oY1tSPj4yXXwwKSl7Uj1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1Im
MTI3XShCKXwwO2w9UTt3PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUwrMTtsPVE7dz1CO2NvbnRp
bnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtUPXc+Pj4xfWVsc2V7VD1jW20rND4+Ml18MH1k
b3tpZigoVHwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31RPWNbcz4+
Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVF9fXdoaWxlKDApO3M9ZncoSCxjW3A+PjJdfDAsaix0
KXwwO2Nbaz4+Ml09cztjW2srND4+Ml09SztmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEMpe1U9
MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VT1CO2JyZWFrfWlmKChi
MFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VT1CO2JyZWFrfWNbaD4+Ml09
MDtVPTB9fXdoaWxlKDApO2g9KFV8MCk9PTA7TDMwNTc6ZG97aWYoSil7RT0yNTE3fWVsc2V7ZG97
aWYoKGNbSSsxMj4+Ml18MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJPj4yXXwwKSsz
Nj4+Ml0mMTI3XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI1MTc7YnJlYWsgTDMwNTd9
fXdoaWxlKDApO2lmKCEoaF4oSXwwKT09MCkpe2JyZWFrfVY9YnwwO2NbVj4+Ml09VTtkUChuKTtk
UChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRXwwKT09MjUxNyl7aWYoaCl7YnJlYWt9
Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09
Y1tqPj4yXXwyO1Y9YnwwO2NbVj4+Ml09VTtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9u
IGZ3KGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAs
bD0wLG09MDtnPWk7aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7
az0wO2k9ZztyZXR1cm4oSz1qLGspfDB9bD1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJd
PTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5
NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTttPWJJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8
MDtmPUs7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1sfWlm
KChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtrPTA7aT1nO3JldHVybihLPWosayl8
MH1pZigoYnwwKSE9MzQpe2o9ZjtrPW07aT1nO3JldHVybihLPWosayl8MH1jW2U+PjJdPTQ7ZT0w
O2I9KGZ8MCk+KGV8MCl8KGZ8MCk9PShlfDApJm0+Pj4wPjA+Pj4wO2o9Yj8yMTQ3NDgzNjQ3Oi0y
MTQ3NDgzNjQ4O2s9Yj8tMTowO2k9ZztyZXR1cm4oSz1qLGspfDB9ZnVuY3Rpb24gZngoYixkLGUs
Zil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MDtnPWk7aT1pKzQwfDA7aD1nfDA7aj1nKzE2fDA7az1nKzMyfDA7ZWooayxk
KTtkPWt8MDtrPWNbZD4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbaj4+Ml09MTU2OTY7Y1tq
KzQ+PjJdPTEyO2Nbais4Pj4yXT0wO2RXKDE1Njk2LGosOTYpfWo9KGNbMzkyNV18MCktMXwwO2w9
Y1trKzg+PjJdfDA7ZG97aWYoKGNbaysxMj4+Ml18MCktbD4+Mj4+PjA+aj4+PjApe209Y1tsKyhq
PDwyKT4+Ml18MDtpZigobXwwKT09MCl7YnJlYWt9bj1tO289Y1soY1ttPj4yXXwwKSszMj4+Ml18
MDtjYVtvJjE1XShuLDk3NDQsOTc3MCxlKXwwO249Y1tkPj4yXXwwO2lmKChjWzM4MjhdfDApIT0t
MSl7Y1toPj4yXT0xNTMxMjtjW2grND4+Ml09MTI7Y1toKzg+PjJdPTA7ZFcoMTUzMTIsaCw5Nil9
bz0oY1szODI5XXwwKS0xfDA7bT1jW24rOD4+Ml18MDtkb3tpZigoY1tuKzEyPj4yXXwwKS1tPj4y
Pj4+MD5vPj4+MCl7cD1jW20rKG88PDIpPj4yXXwwO2lmKChwfDApPT0wKXticmVha31xPXA7YVtm
XT1iMFtjWyhjW3A+PjJdfDApKzE2Pj4yXSYxMjddKHEpfDA7YlpbY1soY1twPj4yXXwwKSsyMD4+
Ml0mMTI3XShiLHEpO3E9Y1tkPj4yXXwwO2R6KHEpfDA7aT1nO3JldHVybn19d2hpbGUoMCk7bz1i
Tyg0KXwwO2txKG8pO2JsKG98MCw4MTc2LDEzNCl9fXdoaWxlKDApO2c9Yk8oNCl8MDtrcShnKTti
bChnfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZ5KGUsZixnLGgsaixrLGwpe2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9
MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0w
LFY9MDtmPWk7aT1pKzcyfDA7bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tt
Pj4yXTttPWg7aD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1toPj4yXT1jW20+PjJdO209ZiszMnww
O249Zis0MHwwO289Zis1NnwwO3A9bztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztyPWk7aT1pKzE2
MHwwO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRj
aChjW2orND4+Ml0mNzR8MCl7Y2FzZSAwOnt1PTA7YnJlYWt9O2Nhc2UgODp7dT0xNjticmVha307
Y2FzZSA2NDp7dT04O2JyZWFrfTtkZWZhdWx0Ont1PTEwfX12PWZ8MDtmeChuLGosdixtKTtrJChw
fDAsMCwxMik7aj1vO2RSKG8sMTAsMCk7aWYoKGFbcF0mMSk9PTApe3c9aisxfDA7eD13O3k9dzt6
PW8rOHwwfWVsc2V7dz1vKzh8MDt4PWNbdz4+Ml18MDt5PWorMXwwO3o9d31jW3E+PjJdPXg7dz1y
fDA7Y1tzPj4yXT13O2NbdD4+Ml09MDtqPWd8MDtnPWh8MDtoPW98MDtBPW8rNHwwO0I9YVttXXww
O209eDt4PWNbaj4+Ml18MDtMMzEyMjp3aGlsZSgxKXtkb3tpZigoeHwwKT09MCl7Qz0wfWVsc2V7
aWYoKGNbeCsxMj4+Ml18MCkhPShjW3grMTY+PjJdfDApKXtDPXg7YnJlYWt9aWYoKGIwW2NbKGNb
eD4+Ml18MCkrMzY+PjJdJjEyN10oeCl8MCkhPS0xKXtDPXg7YnJlYWt9Y1tqPj4yXT0wO0M9MH19
d2hpbGUoMCk7RD0oQ3wwKT09MDtFPWNbZz4+Ml18MDtkb3tpZigoRXwwKT09MCl7Rj0yNTc5fWVs
c2V7aWYoKGNbRSsxMj4+Ml18MCkhPShjW0UrMTY+PjJdfDApKXtpZihEKXtHPUU7SD0wO2JyZWFr
fWVsc2V7ST1tO0o9RTtLPTA7YnJlYWsgTDMxMjJ9fWlmKChiMFtjWyhjW0U+PjJdfDApKzM2Pj4y
XSYxMjddKEUpfDApPT0tMSl7Y1tnPj4yXT0wO0Y9MjU3OTticmVha31lbHNle0w9KEV8MCk9PTA7
aWYoRF5MKXtHPUU7SD1MO2JyZWFrfWVsc2V7ST1tO0o9RTtLPUw7YnJlYWsgTDMxMjJ9fX19d2hp
bGUoMCk7aWYoKEZ8MCk9PTI1Nzkpe0Y9MDtpZihEKXtJPW07Sj0wO0s9MTticmVha31lbHNle0c9
MDtIPTF9fUU9ZFtwXXwwO0w9KEUmMXwwKT09MDtpZigoKGNbcT4+Ml18MCktbXwwKT09KChMP0U+
Pj4xOmNbQT4+Ml18MCl8MCkpe2lmKEwpe009RT4+PjE7Tj1FPj4+MX1lbHNle0U9Y1tBPj4yXXww
O009RTtOPUV9ZFIobyxNPDwxLDApO2lmKChhW3BdJjEpPT0wKXtPPTEwfWVsc2V7Tz0oY1toPj4y
XSYtMiktMXwwfWRSKG8sTywwKTtpZigoYVtwXSYxKT09MCl7UD15fWVsc2V7UD1jW3o+PjJdfDB9
Y1txPj4yXT1QK047UT1QfWVsc2V7UT1tfUU9QysxMnwwO0w9Y1tFPj4yXXwwO1I9QysxNnwwO2lm
KChMfDApPT0oY1tSPj4yXXwwKSl7Uz0oYjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXww
KSYyNTV9ZWxzZXtTPWFbTF18MH1pZigoZnMoUyx1LFEscSx0LEIsbix3LHMsdil8MCkhPTApe0k9
UTtKPUc7Sz1IO2JyZWFrfUw9Y1tFPj4yXXwwO2lmKChMfDApPT0oY1tSPj4yXXwwKSl7Uj1jWyhj
W0M+PjJdfDApKzQwPj4yXXwwO2IwW1ImMTI3XShDKXwwO209UTt4PUM7Y29udGludWV9ZWxzZXtj
W0U+PjJdPUwrMTttPVE7eD1DO2NvbnRpbnVlfX14PWRbbl18MDtpZigoeCYxfDApPT0wKXtUPXg+
Pj4xfWVsc2V7VD1jW24rND4+Ml18MH1kb3tpZigoVHwwKSE9MCl7eD1jW3M+PjJdfDA7aWYoKHgt
cnwwKT49MTYwKXticmVha31RPWNbdD4+Ml18MDtjW3M+PjJdPXgrNDtjW3g+PjJdPVF9fXdoaWxl
KDApO2JbbD4+MV09ZnooSSxjW3E+PjJdfDAsayx1KXwwO2Z0KG4sdyxjW3M+PjJdfDAsayk7ZG97
aWYoRCl7VT0wfWVsc2V7aWYoKGNbQysxMj4+Ml18MCkhPShjW0MrMTY+PjJdfDApKXtVPUM7YnJl
YWt9aWYoKGIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MCkhPS0xKXtVPUM7YnJlYWt9
Y1tqPj4yXT0wO1U9MH19d2hpbGUoMCk7aj0oVXwwKT09MDtMMzE4Mjpkb3tpZihLKXtGPTI2MjB9
ZWxzZXtkb3tpZigoY1tKKzEyPj4yXXwwKT09KGNbSisxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0o+
PjJdfDApKzM2Pj4yXSYxMjddKEopfDApIT0tMSl7YnJlYWt9Y1tnPj4yXT0wO0Y9MjYyMDticmVh
ayBMMzE4Mn19d2hpbGUoMCk7aWYoIShqXihKfDApPT0wKSl7YnJlYWt9Vj1lfDA7Y1tWPj4yXT1V
O2RQKG8pO2RQKG4pO2k9ZjtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT0yNjIwKXtpZihq
KXticmVha31WPWV8MDtjW1Y+PjJdPVU7ZFAobyk7ZFAobik7aT1mO3JldHVybn19d2hpbGUoMCk7
Y1trPj4yXT1jW2s+PjJdfDI7Vj1lfDA7Y1tWPj4yXT1VO2RQKG8pO2RQKG4pO2k9ZjtyZXR1cm59
ZnVuY3Rpb24gZnooYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAs
aj0wLGs9MCxsPTA7Zz1pO2k9aSs4fDA7aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7
aj0wO2k9ZztyZXR1cm4ganwwfWlmKChhW2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0
dXJuIGp8MH1rPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2
NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDAp
fDB9fXdoaWxlKDApO2w9YUkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXwwO2Y9SztiPWNbKGJ3KCl8
MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWt9aWYoKGNbaD4+Ml18MCkhPShk
fDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWQ9MDtpZigoYnwwKT09MzR8KGY+Pj4w
PmQ+Pj4wfGY+Pj4wPT1kPj4+MCZsPj4+MD42NTUzNT4+PjApKXtjW2U+PjJdPTQ7aj0tMTtpPWc7
cmV0dXJuIGp8MH1lbHNle2o9bCY2NTUzNTtpPWc7cmV0dXJuIGp8MH1yZXR1cm4gMH1mdW5jdGlv
biBmQShiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtr
PWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAs
eD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxM
PTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7ZT1pO2k9aSs3MnwwO2w9Zjtm
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMzJ8MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47
cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2Ug
NjQ6e3Q9ODticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2UgODp7dD0xNjticmVha307ZGVm
YXVsdDp7dD0xMH19dT1lfDA7ZngobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDAp
O2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1j
W3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7
aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWFbbF18MDtsPXc7dz1jW2g+PjJdfDA7TDMyMzI6
d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle2lmKChjW3crMTI+PjJdfDApIT0oY1t3
KzE2Pj4yXXwwKSl7Qj13O2JyZWFrfWlmKChiMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcp
fDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1j
W2Y+PjJdfDA7ZG97aWYoKER8MCk9PTApe0U9MjY2OX1lbHNle2lmKChjW0QrMTI+PjJdfDApIT0o
Y1tEKzE2Pj4yXXwwKSl7aWYoQyl7Rj1EO0c9MDticmVha31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFr
IEwzMjMyfX1pZigoYjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+
Ml09MDtFPTI2Njk7YnJlYWt9ZWxzZXtLPShEfDApPT0wO2lmKENeSyl7Rj1EO0c9SzticmVha31l
bHNle0g9bDtJPUQ7Sj1LO2JyZWFrIEwzMjMyfX19fXdoaWxlKDApO2lmKChFfDApPT0yNjY5KXtF
PTA7aWYoQyl7SD1sO0k9MDtKPTE7YnJlYWt9ZWxzZXtGPTA7Rz0xfX1EPWRbb118MDtLPShEJjF8
MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoSz9EPj4+MTpjW3o+PjJdfDApfDApKXtpZihL
KXtMPUQ+Pj4xO009RD4+PjF9ZWxzZXtEPWNbej4+Ml18MDtMPUQ7TT1EfWRSKG4sTDw8MSwwKTtp
ZigoYVtvXSYxKT09MCl7Tj0xMH1lbHNle049KGNbZz4+Ml0mLTIpLTF8MH1kUihuLE4sMCk7aWYo
KGFbb10mMSk9PTApe089eH1lbHNle089Y1t5Pj4yXXwwfWNbcD4+Ml09TytNO1A9T31lbHNle1A9
bH1EPUIrMTJ8MDtLPWNbRD4+Ml18MDtRPUIrMTZ8MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1I9
KGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkmMjU1fWVsc2V7Uj1hW0tdfDB9aWYo
KGZzKFIsdCxQLHAscyxBLG0sdixyLHUpfDApIT0wKXtIPVA7ST1GO0o9RzticmVha31LPWNbRD4+
Ml18MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1E9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtR
JjEyN10oQil8MDtsPVA7dz1CO2NvbnRpbnVlfWVsc2V7Y1tEPj4yXT1LKzE7bD1QO3c9Qjtjb250
aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Uz13Pj4+MX1lbHNle1M9Y1ttKzQ+PjJdfDB9
ZG97aWYoKFN8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9UD1jW3M+
PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1QfX13aGlsZSgwKTtjW2s+PjJdPWZCKEgsY1twPj4y
XXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEMpe1Q9MH1lbHNle2lmKChjW0Ir
MTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VD1CO2JyZWFrfWlmKChiMFtjWyhjW0I+PjJdfDAp
KzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VD1CO2JyZWFrfWNbaD4+Ml09MDtUPTB9fXdoaWxlKDAp
O2g9KFR8MCk9PTA7TDMyOTI6ZG97aWYoSil7RT0yNzEwfWVsc2V7ZG97aWYoKGNbSSsxMj4+Ml18
MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3XShJKXww
KSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI3MTA7YnJlYWsgTDMyOTJ9fXdoaWxlKDApO2lmKCEo
aF4oSXwwKT09MCkpe2JyZWFrfVU9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJu
fX13aGlsZSgwKTtkb3tpZigoRXwwKT09MjcxMCl7aWYoaCl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1U
O2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1U9Ynww
O2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZCKGIsZCxlLGYpe2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wO2c9aTtpPWkrOHww
O2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1pZigo
YVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9az1jWyhidygpfDApPj4y
XXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWFJKGJ8MCxo
fDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0wKXtj
WyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7
cmV0dXJuIGp8MH1kPTA7aWYoKGJ8MCk9PTM0fChmPj4+MD5kPj4+MHxmPj4+MD09ZD4+PjAmbD4+
PjA+LTE+Pj4wKSl7Y1tlPj4yXT00O2o9LTE7aT1nO3JldHVybiBqfDB9ZWxzZXtqPWw7aT1nO3Jl
dHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZkMoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxU
PTAsVT0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1j
W2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzMy
fDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkr
MTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dp
dGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA4Ont0PTE2O2JyZWFr
fTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2Z4KG0saCx1LGwpO2sk
KG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12
O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2
PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1hW2xd
fDA7bD13O3c9Y1toPj4yXXwwO0wzMzQyOndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxz
ZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+Ml18MCkpe0I9dzticmVha31pZigoYjBbY1so
Y1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0w
fX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4yXXwwO2Rve2lmKChEfDApPT0wKXtFPTI3NTl9
ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsxNj4+Ml18MCkpe2lmKEMpe0Y9RDtHPTA7YnJl
YWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMzM0Mn19aWYoKGIwW2NbKGNbRD4+Ml18MCkrMzY+
PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7RT0yNzU5O2JyZWFrfWVsc2V7Sz0oRHwwKT09
MDtpZihDXkspe0Y9RDtHPUs7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9SzticmVhayBMMzM0Mn19fX13
aGlsZSgwKTtpZigoRXwwKT09Mjc1OSl7RT0wO2lmKEMpe0g9bDtJPTA7Sj0xO2JyZWFrfWVsc2V7
Rj0wO0c9MX19RD1kW29dfDA7Sz0oRCYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEs/
RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoSyl7TD1EPj4+MTtNPUQ+Pj4xfWVsc2V7RD1jW3o+PjJd
fDA7TD1EO009RH1kUihuLEw8PDEsMCk7aWYoKGFbb10mMSk9PTApe049MTB9ZWxzZXtOPShjW2c+
PjJdJi0yKS0xfDB9ZFIobixOLDApO2lmKChhW29dJjEpPT0wKXtPPXh9ZWxzZXtPPWNbeT4+Ml18
MH1jW3A+PjJdPU8rTTtQPU99ZWxzZXtQPWx9RD1CKzEyfDA7Sz1jW0Q+PjJdfDA7UT1CKzE2fDA7
aWYoKEt8MCk9PShjW1E+PjJdfDApKXtSPShiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIp
fDApJjI1NX1lbHNle1I9YVtLXXwwfWlmKChmcyhSLHQsUCxwLHMsQSxtLHYscix1KXwwKSE9MCl7
SD1QO0k9RjtKPUc7YnJlYWt9Sz1jW0Q+PjJdfDA7aWYoKEt8MCk9PShjW1E+PjJdfDApKXtRPWNb
KGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUSYxMjddKEIpfDA7bD1QO3c9Qjtjb250aW51ZX1lbHNl
e2NbRD4+Ml09SysxO2w9UDt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1M9
dz4+PjF9ZWxzZXtTPWNbbSs0Pj4yXXwwfWRve2lmKChTfDApIT0wKXt3PWNbcj4+Ml18MDtpZigo
dy1xfDApPj0xNjApe2JyZWFrfVA9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09UH19d2hp
bGUoMCk7Y1trPj4yXT1mRChILGNbcD4+Ml18MCxqLHQpfDA7ZnQobSx2LGNbcj4+Ml18MCxqKTtk
b3tpZihDKXtUPTB9ZWxzZXtpZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe1Q9Qjti
cmVha31pZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSE9LTEpe1Q9QjticmVh
a31jW2g+PjJdPTA7VD0wfX13aGlsZSgwKTtoPShUfDApPT0wO0wzNDAyOmRve2lmKEope0U9Mjgw
MH1lbHNle2Rve2lmKChjW0krMTI+PjJdfDApPT0oY1tJKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNb
ST4+Ml18MCkrMzY+PjJdJjEyN10oSSl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7RT0yODAwO2Jy
ZWFrIEwzNDAyfX13aGlsZSgwKTtpZighKGheKEl8MCk9PTApKXticmVha31VPWJ8MDtjW1U+PjJd
PVQ7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEV8MCk9PTI4MDApe2lm
KGgpe2JyZWFrfVU9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgw
KTtjW2o+PjJdPWNbaj4+Ml18MjtVPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3JldHVy
bn1mdW5jdGlvbiBmRChiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9
MCxqPTAsaz0wLGw9MDtnPWk7aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09
NDtqPTA7aT1nO3JldHVybiBqfDB9aWYoKGFbYl18MCk9PTQ1KXtjW2U+PjJdPTQ7aj0wO2k9Zzty
ZXR1cm4ganwwfWs9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2
MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7bD1hSShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9Y1soYnco
KXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09a31pZigoY1toPj4yXXwwKSE9
KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9ZD0wO2lmKChifDApPT0zNHwoZj4+
PjA+ZD4+PjB8Zj4+PjA9PWQ+Pj4wJmw+Pj4wPi0xPj4+MCkpe2NbZT4+Ml09NDtqPS0xO2k9Zzty
ZXR1cm4ganwwfWVsc2V7aj1sO2k9ZztyZXR1cm4ganwwfXJldHVybiAwfWZ1bmN0aW9uIGZFKGIs
ZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3Zh
ciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsTD0wLE09MCxOPTAs
Tz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtwPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2
O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtkZWZhdWx0Ont0
PTEwfX11PWV8MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFb
b10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18
MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtm
PWd8MDtnPW58MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMzQ1Mjp3aGlsZSgx
KXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3crMTY+PjJd
fDApKXtCPXc7YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MCkhPS0x
KXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNbZj4+Ml18
MDtkb3tpZigoRHwwKT09MCl7RT0yODQ5fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShjW0QrMTY+
PjJdfDApKXtpZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsgTDM0NTJ9
fWlmKChiMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4yXT0wO0U9
Mjg0OTticmVha31lbHNle0w9KER8MCk9PTA7aWYoQ15MKXtGPUQ7Rz1MO2JyZWFrfWVsc2V7SD1s
O0k9RDtKPUw7YnJlYWsgTDM0NTJ9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTI4NDkpe0U9MDtpZihD
KXtIPWw7ST0wO0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0w9KEQmMXwwKT09MDtp
ZigoKGNbcD4+Ml18MCktbHwwKT09KChMP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEwpe009RD4+
PjE7Tj1EPj4+MX1lbHNle0Q9Y1t6Pj4yXXwwO009RDtOPUR9ZFIobixNPDwxLDApO2lmKChhW29d
JjEpPT0wKXtPPTEwfWVsc2V7Tz0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTywwKTtpZigoYVtvXSYx
KT09MCl7UD14fWVsc2V7UD1jW3k+PjJdfDB9Y1twPj4yXT1QK047UT1QfWVsc2V7UT1sfUQ9Qisx
MnwwO0w9Y1tEPj4yXXwwO1I9QisxNnwwO2lmKChMfDApPT0oY1tSPj4yXXwwKSl7Uz0oYjBbY1so
Y1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtTPWFbTF18MH1pZigoZnMoUyx0
LFEscCxzLEEsbSx2LHIsdSl8MCkhPTApe0g9UTtJPUY7Sj1HO2JyZWFrfUw9Y1tEPj4yXXwwO2lm
KChMfDApPT0oY1tSPj4yXXwwKSl7Uj1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1ImMTI3XShC
KXwwO2w9UTt3PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUwrMTtsPVE7dz1CO2NvbnRpbnVlfX13
PWRbbV18MDtpZigodyYxfDApPT0wKXtUPXc+Pj4xfWVsc2V7VD1jW20rND4+Ml18MH1kb3tpZigo
VHwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31RPWNbcz4+Ml18MDtj
W3I+PjJdPXcrNDtjW3c+PjJdPVF9fXdoaWxlKDApO3M9ZkYoSCxjW3A+PjJdfDAsaix0KXwwO2Nb
az4+Ml09cztjW2srND4+Ml09SztmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEMpe1U9MH1lbHNl
e2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VT1CO2JyZWFrfWlmKChiMFtjWyhj
W0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VT1CO2JyZWFrfWNbaD4+Ml09MDtVPTB9
fXdoaWxlKDApO2g9KFV8MCk9PTA7TDM1MTI6ZG97aWYoSil7RT0yODkwfWVsc2V7ZG97aWYoKGNb
SSsxMj4+Ml18MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJPj4yXXwwKSszNj4+Ml0m
MTI3XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI4OTA7YnJlYWsgTDM1MTJ9fXdoaWxl
KDApO2lmKCEoaF4oSXwwKT09MCkpe2JyZWFrfVY9YnwwO2NbVj4+Ml09VTtkUChuKTtkUChtKTtp
PWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRXwwKT09Mjg5MCl7aWYoaCl7YnJlYWt9Vj1ifDA7
Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4y
XXwyO1Y9YnwwO2NbVj4+Ml09VTtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZGKGIs
ZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09
MCxuPTAsbz0wO2c9aTtpPWkrOHwwO2g9Z3wwO2Rve2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00
O2o9MDtrPTB9ZWxzZXtpZigoYVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7az0wO2JyZWFrfWw9
Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7
aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUo
MCk7bT1hSShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7bj1LO289Y1soYncoKXwwKT4+Ml18MDtp
Zigob3wwKT09MCl7Y1soYncoKXwwKT4+Ml09bH1pZigoY1toPj4yXXwwKSE9KGR8MCkpe2NbZT4+
Ml09NDtqPTA7az0wO2JyZWFrfWlmKChvfDApIT0zNCl7aj1uO2s9bTticmVha31jW2U+PjJdPTQ7
aj0tMTtrPS0xfX13aGlsZSgwKTtpPWc7cmV0dXJuKEs9aixrKXwwfWZ1bmN0aW9uIGZHKGIsZSxm
LGcsaCxpLGosayxsLG0sbixvKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtq
PWp8MDtrPWt8MDtsPWx8MDttPW18MDtuPW58MDtvPW98MDt2YXIgcD0wLHE9MCxyPTAscz0wLHQ9
MDtpZihiPDwyND4+MjQ9PWk8PDI0Pj4yNCl7aWYoKGFbZV0mMSk9PTApe3A9LTE7cmV0dXJuIHB8
MH1hW2VdPTA7aT1jW2g+PjJdfDA7Y1toPj4yXT1pKzE7YVtpXT00NjtpPWRba118MDtpZigoaSYx
fDApPT0wKXtxPWk+Pj4xfWVsc2V7cT1jW2srND4+Ml18MH1pZigocXwwKT09MCl7cD0wO3JldHVy
biBwfDB9cT1jW20+PjJdfDA7aWYoKHEtbHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8MH1pPWNbbj4+
Ml18MDtjW20+PjJdPXErNDtjW3E+PjJdPWk7cD0wO3JldHVybiBwfDB9ZG97aWYoYjw8MjQ+PjI0
PT1qPDwyND4+MjQpe2k9ZFtrXXwwO2lmKChpJjF8MCk9PTApe3I9aT4+PjF9ZWxzZXtyPWNbays0
Pj4yXXwwfWlmKChyfDApPT0wKXticmVha31pZigoYVtlXSYxKT09MCl7cD0tMTtyZXR1cm4gcHww
fWk9Y1ttPj4yXXwwO2lmKChpLWx8MCk+PTE2MCl7cD0wO3JldHVybiBwfDB9cT1jW24+PjJdfDA7
Y1ttPj4yXT1pKzQ7Y1tpPj4yXT1xO2Nbbj4+Ml09MDtwPTA7cmV0dXJuIHB8MH19d2hpbGUoMCk7
cj1vKzMyfDA7aj1vO3doaWxlKDEpe2lmKChqfDApPT0ocnwwKSl7cz1yO2JyZWFrfWlmKChhW2pd
fDApPT1iPDwyND4+MjQpe3M9ajticmVha31lbHNle2o9aisxfDB9fWo9cy1vfDA7aWYoKGp8MCk+
MzEpe3A9LTE7cmV0dXJuIHB8MH1vPWFbOTc0NCtqfDBdfDA7c3dpdGNoKGp8MCl7Y2FzZSAyNTpj
YXNlIDI0OntzPWNbaD4+Ml18MDtkb3tpZigoc3wwKSE9KGd8MCkpe2lmKChhW3MtMXwwXSY5NXww
KT09KGFbZl0mMTI3fDApKXticmVha31lbHNle3A9LTF9cmV0dXJuIHB8MH19d2hpbGUoMCk7Y1to
Pj4yXT1zKzE7YVtzXT1vO3A9MDtyZXR1cm4gcHwwfTtjYXNlIDIyOmNhc2UgMjM6e2FbZl09ODA7
cz1jW2g+PjJdfDA7Y1toPj4yXT1zKzE7YVtzXT1vO3A9MDtyZXR1cm4gcHwwfTtkZWZhdWx0Ontz
PWFbZl18MDtkb3tpZigobyY5NXwwKT09KHM8PDI0Pj4yNHwwKSl7YVtmXT1zfC0xMjg7aWYoKGFb
ZV0mMSk9PTApe2JyZWFrfWFbZV09MDtnPWRba118MDtpZigoZyYxfDApPT0wKXt0PWc+Pj4xfWVs
c2V7dD1jW2srND4+Ml18MH1pZigodHwwKT09MCl7YnJlYWt9Zz1jW20+PjJdfDA7aWYoKGctbHww
KT49MTYwKXticmVha31iPWNbbj4+Ml18MDtjW20+PjJdPWcrNDtjW2c+PjJdPWJ9fXdoaWxlKDAp
O209Y1toPj4yXXwwO2NbaD4+Ml09bSsxO2FbbV09bztpZigoanwwKT4yMSl7cD0wO3JldHVybiBw
fDB9Y1tuPj4yXT0oY1tuPj4yXXwwKSsxO3A9MDtyZXR1cm4gcHwwfX1yZXR1cm4gMH1mdW5jdGlv
biBmSChiLGUsZixoLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtoPWh8MDtqPWp8MDtrPWt8MDts
PWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxN
PTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MDtlPWk7aT1pKzgw
fDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWg7aD1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1toPj4yXT1jW20+PjJdO209ZSszMnwwO249ZSs0MHwwO289ZSs0
OHwwO3A9ZSs2NHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXww
O2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2ZKKG8saix4LG0sbik7
ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtB
PXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16
O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1ofDA7aD1w
fDA7Qz1wKzR8MDtEPWFbbV18MDttPWFbbl18MDtuPXo7ej1jW2o+PjJdfDA7TDM2MTU6d2hpbGUo
MSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle2lmKChjW3orMTI+PjJdfDApIT0oY1t6KzE2Pj4y
XXwwKSl7RT16O2JyZWFrfWlmKChiMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDApIT0t
MSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0Y9KEV8MCk9PTA7Rz1jW2Y+PjJd
fDA7ZG97aWYoKEd8MCk9PTApe0g9Mjk3OH1lbHNle2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2
Pj4yXXwwKSl7aWYoRil7ST1HO0o9MDticmVha31lbHNle0s9bjtMPUc7TT0wO2JyZWFrIEwzNjE1
fX1pZigoYjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2NbZj4+Ml09MDtI
PTI5Nzg7YnJlYWt9ZWxzZXtOPShHfDApPT0wO2lmKEZeTil7ST1HO0o9TjticmVha31lbHNle0s9
bjtMPUc7TT1OO2JyZWFrIEwzNjE1fX19fXdoaWxlKDApO2lmKChIfDApPT0yOTc4KXtIPTA7aWYo
Ril7Sz1uO0w9MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1HPWRbcV18MDtOPShHJjF8MCk9PTA7
aWYoKChjW3I+PjJdfDApLW58MCk9PSgoTj9HPj4+MTpjW0M+PjJdfDApfDApKXtpZihOKXtPPUc+
Pj4xO1A9Rz4+PjF9ZWxzZXtHPWNbQz4+Ml18MDtPPUc7UD1HfWRSKHAsTzw8MSwwKTtpZigoYVtx
XSYxKT09MCl7UT0xMH1lbHNle1E9KGNbaD4+Ml0mLTIpLTF8MH1kUihwLFEsMCk7aWYoKGFbcV0m
MSk9PTApe1I9QX1lbHNle1I9Y1tCPj4yXXwwfWNbcj4+Ml09UitQO1M9Un1lbHNle1M9bn1HPUUr
MTJ8MDtOPWNbRz4+Ml18MDtUPUUrMTZ8MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1U9KGIwW2Nb
KGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkmMjU1fWVsc2V7VT1hW05dfDB9aWYoKGZHKFUs
dix3LFMscixELG0sbyx5LHQsdSx4KXwwKSE9MCl7Sz1TO0w9STtNPUo7YnJlYWt9Tj1jW0c+PjJd
fDA7aWYoKE58MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbVCYx
MjddKEUpfDA7bj1TO3o9RTtjb250aW51ZX1lbHNle2NbRz4+Ml09TisxO249Uzt6PUU7Y29udGlu
dWV9fXo9ZFtvXXwwO2lmKCh6JjF8MCk9PTApe1Y9ej4+PjF9ZWxzZXtWPWNbbys0Pj4yXXwwfWRv
e2lmKChWfDApIT0wKXtpZigoYVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3ww
KT49MTYwKXticmVha31TPWNbdT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVN9fXdoaWxlKDAp
O2dbbD4+Ml09K2ZJKEssY1tyPj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoRil7
Vz0wfWVsc2V7aWYoKGNbRSsxMj4+Ml18MCkhPShjW0UrMTY+PjJdfDApKXtXPUU7YnJlYWt9aWYo
KGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkhPS0xKXtXPUU7YnJlYWt9Y1tqPj4y
XT0wO1c9MH19d2hpbGUoMCk7aj0oV3wwKT09MDtMMzY3Njpkb3tpZihNKXtIPTMwMjB9ZWxzZXtk
b3tpZigoY1tMKzEyPj4yXXwwKT09KGNbTCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0w+PjJdfDAp
KzM2Pj4yXSYxMjddKEwpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0g9MzAyMDticmVhayBMMzY3
Nn19d2hpbGUoMCk7aWYoIShqXihMfDApPT0wKSl7YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHAp
O2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChIfDApPT0zMDIwKXtpZihqKXticmVh
a31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4y
XT1jW2s+PjJdfDI7WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rp
b24gZkkoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MC4wLGo9MCxrPTAu
MDtmPWk7aT1pKzh8MDtnPWZ8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7
cmV0dXJuK2h9aj1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYy
NjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCww
KXwwfX13aGlsZSgwKTtrPStrVyhiLGcsY1syOTU4XXwwKTtiPWNbKGJ3KCl8MCk+PjJdfDA7aWYo
KGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWp9aWYoKGNbZz4+Ml18MCkhPShkfDApKXtjW2U+PjJd
PTQ7aD0wLjA7aT1mO3JldHVybitofWlmKChifDApPT0zNCl7Y1tlPj4yXT00fWg9aztpPWY7cmV0
dXJuK2h9ZnVuY3Rpb24gZkooYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDt2YXIgaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDtoPWk7aT1p
KzQwfDA7aj1ofDA7az1oKzE2fDA7bD1oKzMyfDA7ZWoobCxkKTtkPWx8MDtsPWNbZD4+Ml18MDtp
ZigoY1szOTI0XXwwKSE9LTEpe2Nbaz4+Ml09MTU2OTY7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0w
O2RXKDE1Njk2LGssOTYpfWs9KGNbMzkyNV18MCktMXwwO209Y1tsKzg+PjJdfDA7ZG97aWYoKGNb
bCsxMj4+Ml18MCktbT4+Mj4+PjA+az4+PjApe249Y1ttKyhrPDwyKT4+Ml18MDtpZigobnwwKT09
MCl7YnJlYWt9bz1uO3A9Y1soY1tuPj4yXXwwKSszMj4+Ml18MDtjYVtwJjE1XShvLDk3NDQsOTc3
NixlKXwwO289Y1tkPj4yXXwwO2lmKChjWzM4MjhdfDApIT0tMSl7Y1tqPj4yXT0xNTMxMjtjW2or
ND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTUzMTIsaiw5Nil9cD0oY1szODI5XXwwKS0xfDA7bj1j
W28rOD4+Ml18MDtkb3tpZigoY1tvKzEyPj4yXXwwKS1uPj4yPj4+MD5wPj4+MCl7cT1jW24rKHA8
PDIpPj4yXXwwO2lmKChxfDApPT0wKXticmVha31yPXE7cz1xO2FbZl09YjBbY1soY1tzPj4yXXww
KSsxMj4+Ml0mMTI3XShyKXwwO2FbZ109YjBbY1soY1tzPj4yXXwwKSsxNj4+Ml0mMTI3XShyKXww
O2JaW2NbKGNbcT4+Ml18MCkrMjA+PjJdJjEyN10oYixyKTtyPWNbZD4+Ml18MDtkeihyKXwwO2k9
aDtyZXR1cm59fXdoaWxlKDApO3A9Yk8oNCl8MDtrcShwKTtibChwfDAsODE3NiwxMzQpfX13aGls
ZSgwKTtoPWJPKDQpfDA7a3EoaCk7YmwoaHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmSyhiLGUsZixn
LGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAs
Qj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQ
PTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MDtlPWk7aT1pKzgwfDA7bT1mO2Y9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tnPj4yXT1jW20+PjJdO209ZSszMnwwO249ZSs0MHwwO289ZSs0OHwwO3A9ZSs2NHww
O3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwz
O3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2ZKKG8saix4LG0sbik7ayQocXwwLDAsMTIp
O2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1l
bHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+
Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1nfDA7Zz1wfDA7Qz1wKzR8MDtE
PWFbbV18MDttPWFbbl18MDtuPXo7ej1jW2o+PjJdfDA7TDM3Mzc6d2hpbGUoMSl7ZG97aWYoKHp8
MCk9PTApe0U9MH1lbHNle2lmKChjW3orMTI+PjJdfDApIT0oY1t6KzE2Pj4yXXwwKSl7RT16O2Jy
ZWFrfWlmKChiMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDApIT0tMSl7RT16O2JyZWFr
fWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0Y9KEV8MCk9PTA7Rz1jW2Y+PjJdfDA7ZG97aWYoKEd8
MCk9PTApe0g9MzA3OX1lbHNle2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4yXXwwKSl7aWYo
Ril7ST1HO0o9MDticmVha31lbHNle0s9bjtMPUc7TT0wO2JyZWFrIEwzNzM3fX1pZigoYjBbY1so
Y1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2NbZj4+Ml09MDtIPTMwNzk7YnJlYWt9
ZWxzZXtOPShHfDApPT0wO2lmKEZeTil7ST1HO0o9TjticmVha31lbHNle0s9bjtMPUc7TT1OO2Jy
ZWFrIEwzNzM3fX19fXdoaWxlKDApO2lmKChIfDApPT0zMDc5KXtIPTA7aWYoRil7Sz1uO0w9MDtN
PTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1HPWRbcV18MDtOPShHJjF8MCk9PTA7aWYoKChjW3I+PjJd
fDApLW58MCk9PSgoTj9HPj4+MTpjW0M+PjJdfDApfDApKXtpZihOKXtPPUc+Pj4xO1A9Rz4+PjF9
ZWxzZXtHPWNbQz4+Ml18MDtPPUc7UD1HfWRSKHAsTzw8MSwwKTtpZigoYVtxXSYxKT09MCl7UT0x
MH1lbHNle1E9KGNbZz4+Ml0mLTIpLTF8MH1kUihwLFEsMCk7aWYoKGFbcV0mMSk9PTApe1I9QX1l
bHNle1I9Y1tCPj4yXXwwfWNbcj4+Ml09UitQO1M9Un1lbHNle1M9bn1HPUUrMTJ8MDtOPWNbRz4+
Ml18MDtUPUUrMTZ8MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1U9KGIwW2NbKGNbRT4+Ml18MCkr
MzY+PjJdJjEyN10oRSl8MCkmMjU1fWVsc2V7VT1hW05dfDB9aWYoKGZHKFUsdix3LFMscixELG0s
byx5LHQsdSx4KXwwKSE9MCl7Sz1TO0w9STtNPUo7YnJlYWt9Tj1jW0c+PjJdfDA7aWYoKE58MCk9
PShjW1Q+PjJdfDApKXtUPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbVCYxMjddKEUpfDA7bj1T
O3o9RTtjb250aW51ZX1lbHNle2NbRz4+Ml09TisxO249Uzt6PUU7Y29udGludWV9fXo9ZFtvXXww
O2lmKCh6JjF8MCk9PTApe1Y9ej4+PjF9ZWxzZXtWPWNbbys0Pj4yXXwwfWRve2lmKChWfDApIT0w
KXtpZigoYVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVh
a31TPWNbdT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVN9fXdoaWxlKDApO2hbbD4+M109K2ZM
KEssY1tyPj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoRil7Vz0wfWVsc2V7aWYo
KGNbRSsxMj4+Ml18MCkhPShjW0UrMTY+PjJdfDApKXtXPUU7YnJlYWt9aWYoKGIwW2NbKGNbRT4+
Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkhPS0xKXtXPUU7YnJlYWt9Y1tqPj4yXT0wO1c9MH19d2hp
bGUoMCk7aj0oV3wwKT09MDtMMzc5ODpkb3tpZihNKXtIPTMxMjF9ZWxzZXtkb3tpZigoY1tMKzEy
Pj4yXXwwKT09KGNbTCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYxMjdd
KEwpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0g9MzEyMTticmVhayBMMzc5OH19d2hpbGUoMCk7
aWYoIShqXihMfDApPT0wKSl7YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTty
ZXR1cm59fXdoaWxlKDApO2Rve2lmKChIfDApPT0zMTIxKXtpZihqKXticmVha31YPWJ8MDtjW1g+
PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7
WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkwoYixkLGUp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MC4wLGo9MCxrPTAuMDtmPWk7aT1pKzh8
MDtnPWZ8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7cmV0dXJuK2h9aj1j
WyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTtrPStrVyhiLGcsY1syOTU4XXwwKTtiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2Nb
KGJ3KCl8MCk+PjJdPWp9aWYoKGNbZz4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1m
O3JldHVybitofWlmKChifDApIT0zNCl7aD1rO2k9ZjtyZXR1cm4raH1jW2U+PjJdPTQ7aD1rO2k9
ZjtyZXR1cm4raH1mdW5jdGlvbiBmTShiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAs
Vz0wLFg9MDtlPWk7aT1pKzgwfDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09
Y1ttPj4yXTttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+PjJdO209ZSsz
MnwwO249ZSs0MHwwO289ZSs0OHwwO3A9ZSs2NHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9
ZXwwO2ZKKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEp
PT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1q
KzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109
Njk7aj1mfDA7Zj1nfDA7Zz1wfDA7Qz1wKzR8MDtEPWFbbV18MDttPWFbbl18MDtuPXo7ej1jW2o+
PjJdfDA7TDY6d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle2lmKChjW3orMTI+PjJd
fDApIT0oY1t6KzE2Pj4yXXwwKSl7RT16O2JyZWFrfWlmKChiMFtjWyhjW3o+PjJdfDApKzM2Pj4y
XSYxMjddKHopfDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0Y9KEV8
MCk9PTA7Rz1jW2Y+PjJdfDA7ZG97aWYoKEd8MCk9PTApe0g9MTd9ZWxzZXtpZigoY1tHKzEyPj4y
XXwwKSE9KGNbRysxNj4+Ml18MCkpe2lmKEYpe0k9RztKPTA7YnJlYWt9ZWxzZXtLPW47TD1HO009
MDticmVhayBMNn19aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCk9PS0xKXtj
W2Y+PjJdPTA7SD0xNzticmVha31lbHNle049KEd8MCk9PTA7aWYoRl5OKXtJPUc7Sj1OO2JyZWFr
fWVsc2V7Sz1uO0w9RztNPU47YnJlYWsgTDZ9fX19d2hpbGUoMCk7aWYoKEh8MCk9PTE3KXtIPTA7
aWYoRil7Sz1uO0w9MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1HPWRbcV18MDtOPShHJjF8MCk9
PTA7aWYoKChjW3I+PjJdfDApLW58MCk9PSgoTj9HPj4+MTpjW0M+PjJdfDApfDApKXtpZihOKXtP
PUc+Pj4xO1A9Rz4+PjF9ZWxzZXtHPWNbQz4+Ml18MDtPPUc7UD1HfWRSKHAsTzw8MSwwKTtpZigo
YVtxXSYxKT09MCl7UT0xMH1lbHNle1E9KGNbZz4+Ml0mLTIpLTF8MH1kUihwLFEsMCk7aWYoKGFb
cV0mMSk9PTApe1I9QX1lbHNle1I9Y1tCPj4yXXwwfWNbcj4+Ml09UitQO1M9Un1lbHNle1M9bn1H
PUUrMTJ8MDtOPWNbRz4+Ml18MDtUPUUrMTZ8MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1U9KGIw
W2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkmMjU1fWVsc2V7VT1hW05dfDB9aWYoKGZH
KFUsdix3LFMscixELG0sbyx5LHQsdSx4KXwwKSE9MCl7Sz1TO0w9STtNPUo7YnJlYWt9Tj1jW0c+
PjJdfDA7aWYoKE58MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBb
VCYxMjddKEUpfDA7bj1TO3o9RTtjb250aW51ZX1lbHNle2NbRz4+Ml09TisxO249Uzt6PUU7Y29u
dGludWV9fXo9ZFtvXXwwO2lmKCh6JjF8MCk9PTApe1Y9ej4+PjF9ZWxzZXtWPWNbbys0Pj4yXXww
fWRve2lmKChWfDApIT0wKXtpZigoYVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHot
c3wwKT49MTYwKXticmVha31TPWNbdT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVN9fXdoaWxl
KDApO2hbbD4+M109K2ZOKEssY1tyPj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYo
Ril7Vz0wfWVsc2V7aWYoKGNbRSsxMj4+Ml18MCkhPShjW0UrMTY+PjJdfDApKXtXPUU7YnJlYWt9
aWYoKGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkhPS0xKXtXPUU7YnJlYWt9Y1tq
Pj4yXT0wO1c9MH19d2hpbGUoMCk7aj0oV3wwKT09MDtMNjc6ZG97aWYoTSl7SD01OX1lbHNle2Rv
e2lmKChjW0wrMTI+PjJdfDApPT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkr
MzY+PjJdJjEyN10oTCl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7SD01OTticmVhayBMNjd9fXdo
aWxlKDApO2lmKCEoal4oTHwwKT09MCkpe2JyZWFrfVg9YnwwO2NbWD4+Ml09VztkUChwKTtkUChv
KTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoSHwwKT09NTkpe2lmKGope2JyZWFrfVg9Ynww
O2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+
Ml18MjtYPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmTihi
LGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4wO2Y9aTtp
PWkrOHwwO2c9ZnwwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9ZjtyZXR1cm4r
aH1qPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9
PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO2s9K2tXKGIsZyxjWzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09
MCl7Y1soYncoKXwwKT4+Ml09an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtoPTAu
MDtpPWY7cmV0dXJuK2h9aWYoKGJ8MCkhPTM0KXtoPWs7aT1mO3JldHVybitofWNbZT4+Ml09NDto
PWs7aT1mO3JldHVybitofWZ1bmN0aW9uIGZPKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJu
fWZ1bmN0aW9uIGZQKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZRKGIsZSxmLGcs
aCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxB
PTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89
MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTA7ZT1pO2k9aSs2NHwwO2w9ZjtmPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZz4+Ml09Y1tsPj4yXTtsPWV8MDttPWUrMTZ8MDtuPWUrNDh8MDtvPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztwPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7cT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
cj1pO2k9aSsxNjB8MDtzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt0PWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztrJChufDAsMCwxMik7dT1wO2VqKG8saCk7aD1vfDA7bz1jW2g+PjJdfDA7aWYoKGNbMzky
NF18MCkhPS0xKXtjW2w+PjJdPTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5
NixsLDk2KX1sPShjWzM5MjVdfDApLTF8MDt2PWNbbys4Pj4yXXwwO2Rve2lmKChjW28rMTI+PjJd
fDApLXY+PjI+Pj4wPmw+Pj4wKXt3PWNbdisobDw8Mik+PjJdfDA7aWYoKHd8MCk9PTApe2JyZWFr
fXg9dzt5PW18MDt6PWNbKGNbdz4+Ml18MCkrMzI+PjJdfDA7Y2FbeiYxNV0oeCw5NzQ0LDk3NzAs
eSl8MDt4PWNbaD4+Ml18MDtkeih4KXwwO2skKHV8MCwwLDEyKTt4PXA7ZFIocCwxMCwwKTtpZigo
YVt1XSYxKT09MCl7ej14KzF8MDtBPXo7Qj16O0M9cCs4fDB9ZWxzZXt6PXArOHwwO0E9Y1t6Pj4y
XXwwO0I9eCsxfDA7Qz16fWNbcT4+Ml09QTt6PXJ8MDtjW3M+PjJdPXo7Y1t0Pj4yXT0wO3g9Znww
O3c9Z3wwO0Q9cHwwO0U9cCs0fDA7Rj1BO0c9Y1t4Pj4yXXwwO0wxMTc6d2hpbGUoMSl7ZG97aWYo
KEd8MCk9PTApe0g9MH1lbHNle2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4yXXwwKSl7SD1H
O2JyZWFrfWlmKChiMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApIT0tMSl7SD1HO2Jy
ZWFrfWNbeD4+Ml09MDtIPTB9fXdoaWxlKDApO0k9KEh8MCk9PTA7Sj1jW3c+PjJdfDA7ZG97aWYo
KEp8MCk9PTApe0s9MTEwfWVsc2V7aWYoKGNbSisxMj4+Ml18MCkhPShjW0orMTY+PjJdfDApKXtp
ZihJKXticmVha31lbHNle0w9RjticmVhayBMMTE3fX1pZigoYjBbY1soY1tKPj4yXXwwKSszNj4+
Ml0mMTI3XShKKXwwKT09LTEpe2Nbdz4+Ml09MDtLPTExMDticmVha31lbHNle2lmKEleKEp8MCk9
PTApe2JyZWFrfWVsc2V7TD1GO2JyZWFrIEwxMTd9fX19d2hpbGUoMCk7aWYoKEt8MCk9PTExMCl7
Sz0wO2lmKEkpe0w9RjticmVha319Sj1kW3VdfDA7TT0oSiYxfDApPT0wO2lmKCgoY1txPj4yXXww
KS1GfDApPT0oKE0/Sj4+PjE6Y1tFPj4yXXwwKXwwKSl7aWYoTSl7Tj1KPj4+MTtPPUo+Pj4xfWVs
c2V7Sj1jW0U+PjJdfDA7Tj1KO089Sn1kUihwLE48PDEsMCk7aWYoKGFbdV0mMSk9PTApe1A9MTB9
ZWxzZXtQPShjW0Q+PjJdJi0yKS0xfDB9ZFIocCxQLDApO2lmKChhW3VdJjEpPT0wKXtRPUJ9ZWxz
ZXtRPWNbQz4+Ml18MH1jW3E+PjJdPVErTztSPVF9ZWxzZXtSPUZ9Sj1IKzEyfDA7TT1jW0o+PjJd
fDA7Uz1IKzE2fDA7aWYoKE18MCk9PShjW1M+PjJdfDApKXtUPShiMFtjWyhjW0g+PjJdfDApKzM2
Pj4yXSYxMjddKEgpfDApJjI1NX1lbHNle1Q9YVtNXXwwfWlmKChmcyhULDE2LFIscSx0LDAsbix6
LHMseSl8MCkhPTApe0w9UjticmVha31NPWNbSj4+Ml18MDtpZigoTXwwKT09KGNbUz4+Ml18MCkp
e1M9Y1soY1tIPj4yXXwwKSs0MD4+Ml18MDtiMFtTJjEyN10oSCl8MDtGPVI7Rz1IO2NvbnRpbnVl
fWVsc2V7Y1tKPj4yXT1NKzE7Rj1SO0c9SDtjb250aW51ZX19YVtMKzN8MF09MDtkb3tpZigoYVsx
NjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0
LDApfDB9fXdoaWxlKDApO0c9ZlIoTCxjWzI5NThdfDAsMTMyMCwoRj1pLGk9aSs4fDAsY1tGPj4y
XT1rLEYpfDApfDA7aT1GO2lmKChHfDApIT0xKXtjW2o+PjJdPTR9Rz1jW3g+PjJdfDA7ZG97aWYo
KEd8MCk9PTApe1U9MH1lbHNle2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4yXXwwKSl7VT1H
O2JyZWFrfWlmKChiMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApIT0tMSl7VT1HO2Jy
ZWFrfWNbeD4+Ml09MDtVPTB9fXdoaWxlKDApO3g9KFV8MCk9PTA7Rz1jW3c+PjJdfDA7ZG97aWYo
KEd8MCk9PTApe0s9MTU1fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtp
ZigheCl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59aWYoKGIw
W2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCk9PS0xKXtjW3c+PjJdPTA7Sz0xNTU7YnJl
YWt9aWYoISh4XihHfDApPT0wKSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKHApO2RQKG4pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChLfDApPT0xNTUpe2lmKHgpe2JyZWFrfVY9YnwwO2Nb
Vj4+Ml09VTtkUChwKTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18
MjtWPWJ8MDtjW1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0
KXwwO2txKGUpO2JsKGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZlIoYSxiLGQsZSl7YT1hfDA7Yj1i
fDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2Y9aTtpPWkrMTZ8MDtnPWZ8MDtoPWc7Y1to
Pj4yXT1lO2NbaCs0Pj4yXT0wO2g9YkIoYnwwKXwwO2I9YVkoYXwwLGR8MCxnfDApfDA7aWYoKGh8
MCk9PTApe2k9ZjtyZXR1cm4gYnwwfWJCKGh8MCl8MDtpPWY7cmV0dXJuIGJ8MH1mdW5jdGlvbiBm
UyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8
MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxf
PTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTA7bD1pO2k9aSsxMDR8MDttPWU7ZT1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW20+PjJdO209KGctZnwwKS8xMnwwO249bHwwO2Rve2lmKG0+
Pj4wPjEwMCl7bz1rSihtKXwwO2lmKChvfDApIT0wKXtwPW87cT1vO2JyZWFrfWtYKCk7cD0wO3E9
MH1lbHNle3A9bjtxPTB9fXdoaWxlKDApO249KGZ8MCk9PShnfDApO2lmKG4pe3I9bTtzPTB9ZWxz
ZXtvPW07bT0wO3Q9cDt1PWY7d2hpbGUoMSl7dj1kW3VdfDA7aWYoKHYmMXwwKT09MCl7dz12Pj4+
MX1lbHNle3c9Y1t1KzQ+PjJdfDB9aWYoKHd8MCk9PTApe2FbdF09Mjt4PW0rMXwwO3k9by0xfDB9
ZWxzZXthW3RdPTE7eD1tO3k9b312PXUrMTJ8MDtpZigodnwwKT09KGd8MCkpe3I9eTtzPXg7YnJl
YWt9ZWxzZXtvPXk7bT14O3Q9dCsxfDA7dT12fX19dT1ifDA7Yj1lfDA7ZT1oO3Q9MDt4PXM7cz1y
O3doaWxlKDEpe3I9Y1t1Pj4yXXwwO2Rve2lmKChyfDApPT0wKXt6PTB9ZWxzZXttPWNbcisxMj4+
Ml18MDtpZigobXwwKT09KGNbcisxNj4+Ml18MCkpe0E9YjBbY1soY1tyPj4yXXwwKSszNj4+Ml0m
MTI3XShyKXwwfWVsc2V7QT1jW20+PjJdfDB9aWYoKEF8MCk9PS0xKXtjW3U+PjJdPTA7ej0wO2Jy
ZWFrfWVsc2V7ej1jW3U+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtyPSh6fDApPT0wO209Y1tiPj4y
XXwwO2lmKChtfDApPT0wKXtCPXo7Qz0wfWVsc2V7eT1jW20rMTI+PjJdfDA7aWYoKHl8MCk9PShj
W20rMTY+PjJdfDApKXtEPWIwW2NbKGNbbT4+Ml18MCkrMzY+PjJdJjEyN10obSl8MH1lbHNle0Q9
Y1t5Pj4yXXwwfWlmKChEfDApPT0tMSl7Y1tiPj4yXT0wO0U9MH1lbHNle0U9bX1CPWNbdT4+Ml18
MDtDPUV9Rj0oQ3wwKT09MDtpZighKChyXkYpJihzfDApIT0wKSl7YnJlYWt9cj1jW0IrMTI+PjJd
fDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtHPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEy
N10oQil8MH1lbHNle0c9Y1tyPj4yXXwwfWlmKGspe0g9R31lbHNle0g9Yl9bY1soY1tlPj4yXXww
KSsyOD4+Ml0mMzFdKGgsRyl8MH1kb3tpZihuKXtJPXg7Sj1zfWVsc2V7cj10KzF8MDtMMjQ5OmRv
e2lmKGspe209czt5PXg7bz1wO3c9MDt2PWY7d2hpbGUoMSl7ZG97aWYoKGFbb118MCk9PTEpe0s9
djtpZigoYVtLXSYxKT09MCl7TD12KzR8MH1lbHNle0w9Y1t2Kzg+PjJdfDB9aWYoKEh8MCkhPShj
W0wrKHQ8PDIpPj4yXXwwKSl7YVtvXT0wO009dztOPXk7Tz1tLTF8MDticmVha31QPWRbS118MDtp
ZigoUCYxfDApPT0wKXtRPVA+Pj4xfWVsc2V7UT1jW3YrND4+Ml18MH1pZigoUXwwKSE9KHJ8MCkp
e009MTtOPXk7Tz1tO2JyZWFrfWFbb109MjtNPTE7Tj15KzF8MDtPPW0tMXwwfWVsc2V7TT13O049
eTtPPW19fXdoaWxlKDApO1A9disxMnwwO2lmKChQfDApPT0oZ3wwKSl7Uj1PO1M9TjtUPU07YnJl
YWsgTDI0OX1tPU87eT1OO289bysxfDA7dz1NO3Y9UH19ZWxzZXt2PXM7dz14O289cDt5PTA7bT1m
O3doaWxlKDEpe2Rve2lmKChhW29dfDApPT0xKXtQPW07aWYoKGFbUF0mMSk9PTApe1U9bSs0fDB9
ZWxzZXtVPWNbbSs4Pj4yXXwwfWlmKChIfDApIT0oYl9bY1soY1tlPj4yXXwwKSsyOD4+Ml0mMzFd
KGgsY1tVKyh0PDwyKT4+Ml18MCl8MCkpe2Fbb109MDtWPXk7Vz13O1g9di0xfDA7YnJlYWt9Sz1k
W1BdfDA7aWYoKEsmMXwwKT09MCl7WT1LPj4+MX1lbHNle1k9Y1ttKzQ+PjJdfDB9aWYoKFl8MCkh
PShyfDApKXtWPTE7Vz13O1g9djticmVha31hW29dPTI7Vj0xO1c9dysxfDA7WD12LTF8MH1lbHNl
e1Y9eTtXPXc7WD12fX13aGlsZSgwKTtLPW0rMTJ8MDtpZigoS3wwKT09KGd8MCkpe1I9WDtTPVc7
VD1WO2JyZWFrIEwyNDl9dj1YO3c9VztvPW8rMXwwO3k9VjttPUt9fX13aGlsZSgwKTtpZighVCl7
ST1TO0o9UjticmVha31yPWNbdT4+Ml18MDttPXIrMTJ8MDt5PWNbbT4+Ml18MDtpZigoeXwwKT09
KGNbcisxNj4+Ml18MCkpe289Y1soY1tyPj4yXXwwKSs0MD4+Ml18MDtiMFtvJjEyN10ocil8MH1l
bHNle2NbbT4+Ml09eSs0fWlmKChTK1J8MCk+Pj4wPDJ8bil7ST1TO0o9UjticmVha315PXQrMXww
O209UztyPXA7bz1mO3doaWxlKDEpe2Rve2lmKChhW3JdfDApPT0yKXt3PWRbb118MDtpZigodyYx
fDApPT0wKXtaPXc+Pj4xfWVsc2V7Wj1jW28rND4+Ml18MH1pZigoWnwwKT09KHl8MCkpe189bTti
cmVha31hW3JdPTA7Xz1tLTF8MH1lbHNle189bX19d2hpbGUoMCk7dz1vKzEyfDA7aWYoKHd8MCk9
PShnfDApKXtJPV87Sj1SO2JyZWFrfWVsc2V7bT1fO3I9cisxfDA7bz13fX19fXdoaWxlKDApO3Q9
dCsxfDA7eD1JO3M9Sn1kb3tpZigoQnwwKT09MCl7JD0xfWVsc2V7Sj1jW0IrMTI+PjJdfDA7aWYo
KEp8MCk9PShjW0IrMTY+PjJdfDApKXthYT1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIp
fDB9ZWxzZXthYT1jW0o+PjJdfDB9aWYoKGFhfDApPT0tMSl7Y1t1Pj4yXT0wOyQ9MTticmVha31l
bHNleyQ9KGNbdT4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZihGKXthYj0yNjR9ZWxz
ZXt1PWNbQysxMj4+Ml18MDtpZigodXwwKT09KGNbQysxNj4+Ml18MCkpe2FjPWIwW2NbKGNbQz4+
Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle2FjPWNbdT4+Ml18MH1pZigoYWN8MCk9PS0xKXtj
W2I+PjJdPTA7YWI9MjY0O2JyZWFrfWVsc2V7aWYoJF4oQ3wwKT09MCl7YnJlYWt9ZWxzZXthYj0y
NjY7YnJlYWt9fX19d2hpbGUoMCk7aWYoKGFifDApPT0yNjQpe2lmKCQpe2FiPTI2Nn19aWYoKGFi
fDApPT0yNjYpe2Nbaj4+Ml09Y1tqPj4yXXwyfUwzMzA6ZG97aWYobil7YWI9MjcxfWVsc2V7JD1m
O0M9cDt3aGlsZSgxKXtpZigoYVtDXXwwKT09Mil7YWQ9JDticmVhayBMMzMwfWI9JCsxMnwwO2lm
KChifDApPT0oZ3wwKSl7YWI9MjcxO2JyZWFrIEwzMzB9JD1iO0M9QysxfDB9fX13aGlsZSgwKTtp
ZigoYWJ8MCk9PTI3MSl7Y1tqPj4yXT1jW2o+PjJdfDQ7YWQ9Z31pZigocXwwKT09MCl7aT1sO3Jl
dHVybiBhZHwwfWtLKHEpO2k9bDtyZXR1cm4gYWR8MH1mdW5jdGlvbiBmVChiLGQsZSxmLGcsaCxq
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MDtrPWk7aT1pKzExMnwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+
Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWt8MDttPWsr
MTZ8MDtuPWsrMzJ8MDtvPWsrNDB8MDtwPWsrNDh8MDtxPWsrNTZ8MDtyPWsrNjR8MDtzPWsrNzJ8
MDt0PWsrODB8MDt1PWsrMTA0fDA7aWYoKGNbZys0Pj4yXSYxfDApPT0wKXtjW24+PjJdPS0xO3Y9
Y1soY1tkPj4yXXwwKSsxNj4+Ml18MDt3PWV8MDtjW3A+PjJdPWNbdz4+Ml07Y1txPj4yXT1jW2Y+
PjJdO2JYW3YmMTI3XShvLGQscCxxLGcsaCxuKTtxPWNbbz4+Ml18MDtjW3c+PjJdPXE7c3dpdGNo
KGNbbj4+Ml18MCl7Y2FzZSAxOnthW2pdPTE7YnJlYWt9O2Nhc2UgMDp7YVtqXT0wO2JyZWFrfTtk
ZWZhdWx0OnthW2pdPTE7Y1toPj4yXT00fX1jW2I+PjJdPXE7aT1rO3JldHVybn1laihyLGcpO3E9
cnwwO3I9Y1txPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1ttPj4yXT0xNTY4ODtjW20rND4+
Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTU2ODgsbSw5Nil9bT0oY1szOTIzXXwwKS0xfDA7bj1jW3Ir
OD4+Ml18MDtkb3tpZigoY1tyKzEyPj4yXXwwKS1uPj4yPj4+MD5tPj4+MCl7dz1jW24rKG08PDIp
Pj4yXXwwO2lmKCh3fDApPT0wKXticmVha31vPXc7dz1jW3E+PjJdfDA7ZHoodyl8MDtlaihzLGcp
O3c9c3wwO3A9Y1t3Pj4yXXwwO2lmKChjWzM4MjZdfDApIT0tMSl7Y1tsPj4yXT0xNTMwNDtjW2wr
ND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTUzMDQsbCw5Nil9ZD0oY1szODI3XXwwKS0xfDA7dj1j
W3ArOD4+Ml18MDtkb3tpZigoY1twKzEyPj4yXXwwKS12Pj4yPj4+MD5kPj4+MCl7eD1jW3YrKGQ8
PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7ej1jW3c+PjJdfDA7ZHooeil8MDt6PXR8
MDtBPXg7YlpbY1soY1tBPj4yXXwwKSsyND4+Ml0mMTI3XSh6LHkpO2JaW2NbKGNbQT4+Ml18MCkr
Mjg+PjJdJjEyN10odCsxMnwwLHkpO2NbdT4+Ml09Y1tmPj4yXTthW2pdPShmUyhlLHUseix0KzI0
fDAsbyxoLDEpfDApPT0oenwwKXwwO2NbYj4+Ml09Y1tlPj4yXTtlZSh0KzEyfDApO2VlKHR8MCk7
aT1rO3JldHVybn19d2hpbGUoMCk7bz1iTyg0KXwwO2txKG8pO2JsKG98MCw4MTc2LDEzNCl9fXdo
aWxlKDApO2s9Yk8oNCl8MDtrcShrKTtibChrfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZVKGIsZSxm
LGcsaCxpLGosayxsLG0pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anww
O2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDtuPWNbZz4+Ml18
MDtvPShufDApPT0oZnwwKTtkb3tpZihvKXtwPShjW20rOTY+PjJdfDApPT0oYnwwKTtpZighcCl7
aWYoKGNbbSsxMDA+PjJdfDApIT0oYnwwKSl7YnJlYWt9fWNbZz4+Ml09ZisxO2FbZl09cD80Mzo0
NTtjW2g+PjJdPTA7cT0wO3JldHVybiBxfDB9fXdoaWxlKDApO3A9ZFtqXXwwO2lmKChwJjF8MCk9
PTApe3I9cD4+PjF9ZWxzZXtyPWNbais0Pj4yXXwwfWlmKChyfDApIT0wJihifDApPT0oaXwwKSl7
aT1jW2w+PjJdfDA7aWYoKGkta3wwKT49MTYwKXtxPTA7cmV0dXJuIHF8MH1rPWNbaD4+Ml18MDtj
W2w+PjJdPWkrNDtjW2k+PjJdPWs7Y1toPj4yXT0wO3E9MDtyZXR1cm4gcXwwfWs9bSsxMDR8MDtp
PW07d2hpbGUoMSl7aWYoKGl8MCk9PShrfDApKXtzPWs7YnJlYWt9aWYoKGNbaT4+Ml18MCk9PShi
fDApKXtzPWk7YnJlYWt9ZWxzZXtpPWkrNHwwfX1pPXMtbXwwO209aT4+MjtpZigoaXwwKT45Mil7
cT0tMTtyZXR1cm4gcXwwfUwzOTg6ZG97c3dpdGNoKGV8MCl7Y2FzZSA4OmNhc2UgMTA6e2lmKCht
fDApPChlfDApKXticmVhayBMMzk4fWVsc2V7cT0tMX1yZXR1cm4gcXwwfTtjYXNlIDE2OntpZigo
aXwwKTw4OCl7YnJlYWsgTDM5OH1pZihvKXtxPS0xO3JldHVybiBxfDB9aWYoKG4tZnwwKT49Myl7
cT0tMTtyZXR1cm4gcXwwfWlmKChhW24tMXwwXXwwKSE9NDgpe3E9LTE7cmV0dXJuIHF8MH1jW2g+
PjJdPTA7cz1hWzk3NDQrbXwwXXwwO2I9Y1tnPj4yXXwwO2NbZz4+Ml09YisxO2FbYl09cztxPTA7
cmV0dXJuIHF8MH07ZGVmYXVsdDp7fX19d2hpbGUoMCk7Zj1hWzk3NDQrbXwwXXwwO2NbZz4+Ml09
bisxO2Fbbl09ZjtjW2g+PjJdPShjW2g+PjJdfDApKzE7cT0wO3JldHVybiBxfDB9ZnVuY3Rpb24g
ZlYoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1r
fDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MDtlPWk7
aT1pKzE0NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1n
O2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzEx
MnwwO249ZSsxMjh8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDty
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1to
KzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0xNjticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2Ug
NjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAs
MTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8
MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nb
cj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDts
PXc7dz1jW2g+PjJdfDA7TDQyNjp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1j
W3crMTI+PjJdfDA7aWYoKEN8MCk9PShjW3crMTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkr
MzY+PjJdJjEyN10odyl8MH1lbHNle0Q9Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFr
fWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8
MCk9PTApe0Y9MzYzfWVsc2V7Rz1jW0MrMTI+PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDAp
KXtIPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlm
KChIfDApPT0tMSl7Y1tmPj4yXT0wO0Y9MzYzO2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcp
e0k9QztKPUc7YnJlYWt9ZWxzZXtLPWw7TD1DO009RzticmVhayBMNDI2fX19fXdoaWxlKDApO2lm
KChGfDApPT0zNjMpe0Y9MDtpZihFKXtLPWw7TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUM9
ZFtvXXwwO0c9KEMmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+
Ml18MCl8MCkpe2lmKEcpe049Qz4+PjE7Tz1DPj4+MX1lbHNle0M9Y1t6Pj4yXXwwO049QztPPUN9
ZFIobixOPDwxLDApO2lmKChhW29dJjEpPT0wKXtQPTEwfWVsc2V7UD0oY1tnPj4yXSYtMiktMXww
fWRSKG4sUCwwKTtpZigoYVtvXSYxKT09MCl7UT14fWVsc2V7UT1jW3k+PjJdfDB9Y1twPj4yXT1R
K087Uj1RfWVsc2V7Uj1sfUM9QisxMnwwO0c9Y1tDPj4yXXwwO1M9QisxNnwwO2lmKChHfDApPT0o
Y1tTPj4yXXwwKSl7VD1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtUPWNb
Rz4+Ml18MH1pZigoZlUoVCx0LFIscCxzLEEsbSx2LHIsdSl8MCkhPTApe0s9UjtMPUk7TT1KO2Jy
ZWFrfUc9Y1tDPj4yXXwwO2lmKChHfDApPT0oY1tTPj4yXXwwKSl7Uz1jWyhjW0I+PjJdfDApKzQw
Pj4yXXwwO2IwW1MmMTI3XShCKXwwO2w9Ujt3PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDts
PVI7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtVPXc+Pj4xfWVsc2V7VT1j
W20rND4+Ml18MH1kb3tpZigoVXwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXti
cmVha31SPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVJ9fXdoaWxlKDApO2Nbaz4+Ml09
ZnUoSyxjW3A+PjJdfDAsaix0KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7Vj0wfWVs
c2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtXPWIwW2NbKGNbQj4+
Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1c9Y1tyPj4yXXwwfWlmKChXfDApIT0tMSl7Vj1C
O2JyZWFrfWNbaD4+Ml09MDtWPTB9fXdoaWxlKDApO2g9KFZ8MCk9PTA7ZG97aWYoTSl7Rj00MDV9
ZWxzZXtCPWNbTCsxMj4+Ml18MDtpZigoQnwwKT09KGNbTCsxNj4+Ml18MCkpe1g9YjBbY1soY1tM
Pj4yXXwwKSszNj4+Ml0mMTI3XShMKXwwfWVsc2V7WD1jW0I+PjJdfDB9aWYoKFh8MCk9PS0xKXtj
W2Y+PjJdPTA7Rj00MDU7YnJlYWt9aWYoIShoXihMfDApPT0wKSl7YnJlYWt9WT1ifDA7Y1tZPj4y
XT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT00MDUpe2lm
KGgpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgw
KTtjW2o+PjJdPWNbaj4+Ml18MjtZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVy
bn1mdW5jdGlvbiBmVyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9
MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wO2Y9aTtpPWkrNDB8MDtnPWZ8MDtoPWYr
MTZ8MDtqPWYrMzJ8MDtlaihqLGIpO2I9anwwO2o9Y1tiPj4yXXwwO2lmKChjWzM5MjJdfDApIT0t
MSl7Y1toPj4yXT0xNTY4ODtjW2grND4+Ml09MTI7Y1toKzg+PjJdPTA7ZFcoMTU2ODgsaCw5Nil9
aD0oY1szOTIzXXwwKS0xfDA7az1jW2orOD4+Ml18MDtkb3tpZigoY1tqKzEyPj4yXXwwKS1rPj4y
Pj4+MD5oPj4+MCl7bD1jW2srKGg8PDIpPj4yXXwwO2lmKChsfDApPT0wKXticmVha31tPWw7bj1j
WyhjW2w+PjJdfDApKzQ4Pj4yXXwwO2NhW24mMTVdKG0sOTc0NCw5NzcwLGQpfDA7bT1jW2I+PjJd
fDA7aWYoKGNbMzgyNl18MCkhPS0xKXtjW2c+PjJdPTE1MzA0O2NbZys0Pj4yXT0xMjtjW2crOD4+
Ml09MDtkVygxNTMwNCxnLDk2KX1uPShjWzM4MjddfDApLTF8MDtsPWNbbSs4Pj4yXXwwO2Rve2lm
KChjW20rMTI+PjJdfDApLWw+PjI+Pj4wPm4+Pj4wKXtvPWNbbCsobjw8Mik+PjJdfDA7aWYoKG98
MCk9PTApe2JyZWFrfXA9bztjW2U+PjJdPWIwW2NbKGNbbz4+Ml18MCkrMTY+PjJdJjEyN10ocCl8
MDtiWltjWyhjW28+PjJdfDApKzIwPj4yXSYxMjddKGEscCk7cD1jW2I+PjJdfDA7ZHoocCl8MDtp
PWY7cmV0dXJufX13aGlsZSgwKTtuPWJPKDQpfDA7a3Eobik7YmwobnwwLDgxNzYsMTM0KX19d2hp
bGUoMCk7Zj1iTyg0KXwwO2txKGYpO2JsKGZ8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZlgoYixlLGYs
ZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0w
LEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0wLE49MCxPPTAs
UD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MDtlPWk7aT1pKzE0NHww
O2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzExMnwwO249ZSsx
Mjh8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0
fDApe2Nhc2UgODp7dD0xNjticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODti
cmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtk
UihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9
bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtj
W3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1jW2g+
PjJdfDA7TDUzNTp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+PjJd
fDA7aWYoKEN8MCk9PShjW3crMTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEy
N10odyl8MH1lbHNle0Q9Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09
MDtCPTB9fXdoaWxlKDApO0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTApe0Y9
NDUwfWVsc2V7Rz1jW0MrMTI+PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDApKXtIPWIwW2Nb
KGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlmKChIfDApPT0t
MSl7Y1tmPj4yXT0wO0Y9NDUwO2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztKPUc7
YnJlYWt9ZWxzZXtMPWw7TT1DO049RzticmVhayBMNTM1fX19fXdoaWxlKDApO2lmKChGfDApPT00
NTApe0Y9MDtpZihFKXtMPWw7TT0wO049MTticmVha31lbHNle0k9MDtKPTF9fUM9ZFtvXXwwO0c9
KEMmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+Ml18MCl8MCkp
e2lmKEcpe089Qz4+PjE7UD1DPj4+MX1lbHNle0M9Y1t6Pj4yXXwwO089QztQPUN9ZFIobixPPDwx
LDApO2lmKChhW29dJjEpPT0wKXtRPTEwfWVsc2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKG4sUSww
KTtpZigoYVtvXSYxKT09MCl7Uj14fWVsc2V7Uj1jW3k+PjJdfDB9Y1twPj4yXT1SK1A7Uz1SfWVs
c2V7Uz1sfUM9QisxMnwwO0c9Y1tDPj4yXXwwO1Q9QisxNnwwO2lmKChHfDApPT0oY1tUPj4yXXww
KSl7VT1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtVPWNbRz4+Ml18MH1p
ZigoZlUoVSx0LFMscCxzLEEsbSx2LHIsdSl8MCkhPTApe0w9UztNPUk7Tj1KO2JyZWFrfUc9Y1tD
Pj4yXXwwO2lmKChHfDApPT0oY1tUPj4yXXwwKSl7VD1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2Iw
W1QmMTI3XShCKXwwO2w9Uzt3PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDtsPVM7dz1CO2Nv
bnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtWPXc+Pj4xfWVsc2V7Vj1jW20rND4+Ml18
MH1kb3tpZigoVnwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31TPWNb
cz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVN9fXdoaWxlKDApO3M9ZncoTCxjW3A+PjJdfDAs
aix0KXwwO2Nbaz4+Ml09cztjW2srND4+Ml09SztmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEUp
e1c9MH1lbHNle3I9Y1tCKzEyPj4yXXwwO2lmKChyfDApPT0oY1tCKzE2Pj4yXXwwKSl7WD1iMFtj
WyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtYPWNbcj4+Ml18MH1pZigoWHwwKSE9
LTEpe1c9QjticmVha31jW2g+PjJdPTA7Vz0wfX13aGlsZSgwKTtoPShXfDApPT0wO2Rve2lmKE4p
e0Y9NDkyfWVsc2V7Qj1jW00rMTI+PjJdfDA7aWYoKEJ8MCk9PShjW00rMTY+PjJdfDApKXtZPWIw
W2NbKGNbTT4+Ml18MCkrMzY+PjJdJjEyN10oTSl8MH1lbHNle1k9Y1tCPj4yXXwwfWlmKChZfDAp
PT0tMSl7Y1tmPj4yXT0wO0Y9NDkyO2JyZWFrfWlmKCEoaF4oTXwwKT09MCkpe2JyZWFrfVo9Ynww
O2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRnwwKT09
NDkyKXtpZihoKXticmVha31aPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1lO3JldHVybn19
d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7Wj1ifDA7Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9
ZTtyZXR1cm59ZnVuY3Rpb24gZlkoZSxmLGcsaCxqLGssbCl7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1o
fDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9
MCxYPTAsWT0wLFo9MDtmPWk7aT1pKzE0NHwwO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2c+PjJdPWNbbT4+Ml07bT1oO2g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbaD4+Ml09Y1ttPj4y
XTttPWYrMTA0fDA7bj1mKzExMnwwO289ZisxMjh8MDtwPW87cT1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7cj1pO2k9aSsxNjB8MDtzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt0PWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8Mztzd2l0Y2goY1tqKzQ+PjJdJjc0fDApe2Nhc2UgODp7dT0xNjticmVha307Y2FzZSA2
NDp7dT04O2JyZWFrfTtjYXNlIDA6e3U9MDticmVha307ZGVmYXVsdDp7dT0xMH19dj1mfDA7Zlco
bixqLHYsbSk7ayQocHwwLDAsMTIpO2o9bztkUihvLDEwLDApO2lmKChhW3BdJjEpPT0wKXt3PWor
MXwwO3g9dzt5PXc7ej1vKzh8MH1lbHNle3c9bys4fDA7eD1jW3c+PjJdfDA7eT1qKzF8MDt6PXd9
Y1txPj4yXT14O3c9cnwwO2Nbcz4+Ml09dztjW3Q+PjJdPTA7aj1nfDA7Zz1ofDA7aD1vfDA7QT1v
KzR8MDtCPWNbbT4+Ml18MDttPXg7eD1jW2o+PjJdfDA7TDYyNDp3aGlsZSgxKXtkb3tpZigoeHww
KT09MCl7Qz0wfWVsc2V7RD1jW3grMTI+PjJdfDA7aWYoKER8MCk9PShjW3grMTY+PjJdfDApKXtF
PWIwW2NbKGNbeD4+Ml18MCkrMzY+PjJdJjEyN10oeCl8MH1lbHNle0U9Y1tEPj4yXXwwfWlmKChF
fDApIT0tMSl7Qz14O2JyZWFrfWNbaj4+Ml09MDtDPTB9fXdoaWxlKDApO0Y9KEN8MCk9PTA7RD1j
W2c+PjJdfDA7ZG97aWYoKER8MCk9PTApe0c9NTIwfWVsc2V7SD1jW0QrMTI+PjJdfDA7aWYoKEh8
MCk9PShjW0QrMTY+PjJdfDApKXtJPWIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MH1l
bHNle0k9Y1tIPj4yXXwwfWlmKChJfDApPT0tMSl7Y1tnPj4yXT0wO0c9NTIwO2JyZWFrfWVsc2V7
SD0oRHwwKT09MDtpZihGXkgpe0o9RDtLPUg7YnJlYWt9ZWxzZXtMPW07TT1EO049SDticmVhayBM
NjI0fX19fXdoaWxlKDApO2lmKChHfDApPT01MjApe0c9MDtpZihGKXtMPW07TT0wO049MTticmVh
a31lbHNle0o9MDtLPTF9fUQ9ZFtwXXwwO0g9KEQmMXwwKT09MDtpZigoKGNbcT4+Ml18MCktbXww
KT09KChIP0Q+Pj4xOmNbQT4+Ml18MCl8MCkpe2lmKEgpe089RD4+PjE7UD1EPj4+MX1lbHNle0Q9
Y1tBPj4yXXwwO089RDtQPUR9ZFIobyxPPDwxLDApO2lmKChhW3BdJjEpPT0wKXtRPTEwfWVsc2V7
UT0oY1toPj4yXSYtMiktMXwwfWRSKG8sUSwwKTtpZigoYVtwXSYxKT09MCl7Uj15fWVsc2V7Uj1j
W3o+PjJdfDB9Y1txPj4yXT1SK1A7Uz1SfWVsc2V7Uz1tfUQ9QysxMnwwO0g9Y1tEPj4yXXwwO1Q9
QysxNnwwO2lmKChIfDApPT0oY1tUPj4yXXwwKSl7VT1iMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYx
MjddKEMpfDB9ZWxzZXtVPWNbSD4+Ml18MH1pZigoZlUoVSx1LFMscSx0LEIsbix3LHMsdil8MCkh
PTApe0w9UztNPUo7Tj1LO2JyZWFrfUg9Y1tEPj4yXXwwO2lmKChIfDApPT0oY1tUPj4yXXwwKSl7
VD1jWyhjW0M+PjJdfDApKzQwPj4yXXwwO2IwW1QmMTI3XShDKXwwO209Uzt4PUM7Y29udGludWV9
ZWxzZXtjW0Q+PjJdPUgrNDttPVM7eD1DO2NvbnRpbnVlfX14PWRbbl18MDtpZigoeCYxfDApPT0w
KXtWPXg+Pj4xfWVsc2V7Vj1jW24rND4+Ml18MH1kb3tpZigoVnwwKSE9MCl7eD1jW3M+PjJdfDA7
aWYoKHgtcnwwKT49MTYwKXticmVha31TPWNbdD4+Ml18MDtjW3M+PjJdPXgrNDtjW3g+PjJdPVN9
fXdoaWxlKDApO2JbbD4+MV09ZnooTCxjW3E+PjJdfDAsayx1KXwwO2Z0KG4sdyxjW3M+PjJdfDAs
ayk7ZG97aWYoRil7Vz0wfWVsc2V7cz1jW0MrMTI+PjJdfDA7aWYoKHN8MCk9PShjW0MrMTY+PjJd
fDApKXtYPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle1g9Y1tzPj4yXXww
fWlmKChYfDApIT0tMSl7Vz1DO2JyZWFrfWNbaj4+Ml09MDtXPTB9fXdoaWxlKDApO2o9KFd8MCk9
PTA7ZG97aWYoTil7Rz01NjJ9ZWxzZXtDPWNbTSsxMj4+Ml18MDtpZigoQ3wwKT09KGNbTSsxNj4+
Ml18MCkpe1k9YjBbY1soY1tNPj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0M+PjJd
fDB9aWYoKFl8MCk9PS0xKXtjW2c+PjJdPTA7Rz01NjI7YnJlYWt9aWYoIShqXihNfDApPT0wKSl7
YnJlYWt9Wj1lfDA7Y1taPj4yXT1XO2RQKG8pO2RQKG4pO2k9ZjtyZXR1cm59fXdoaWxlKDApO2Rv
e2lmKChHfDApPT01NjIpe2lmKGope2JyZWFrfVo9ZXwwO2NbWj4+Ml09VztkUChvKTtkUChuKTtp
PWY7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjtaPWV8MDtjW1o+PjJdPVc7ZFAo
byk7ZFAobik7aT1mO3JldHVybn1mdW5jdGlvbiBmWihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9
MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0w
LFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wO2U9aTtpPWkrMTQ0fDA7bD1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tn
Pj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEyOHwwO289bjtwPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2O2Jy
ZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtkZWZhdWx0Ont0PTEw
fX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10m
MSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4
PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8
MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+Ml18MDtMNzEzOndoaWxlKDEp
e2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18MDtpZigoQ3wwKT09KGNbdysx
Nj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwfWVsc2V7RD1jW0M+
PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7RT0o
QnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj01OTB9ZWxzZXtHPWNbQysxMj4+
Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0m
MTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj01OTA7
YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9RzticmVha31lbHNle0s9bDtMPUM7
TT1HO2JyZWFrIEw3MTN9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTU5MCl7Rj0wO2lmKEUpe0s9bDtM
PTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0oQyYxfDApPT0wO2lmKCgoY1tw
Pj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoRyl7Tj1DPj4+MTtPPUM+
Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tj1DO089Q31kUihuLE48PDEsMCk7aWYoKGFbb10mMSk9PTAp
e1A9MTB9ZWxzZXtQPShjW2c+PjJdJi0yKS0xfDB9ZFIobixQLDApO2lmKChhW29dJjEpPT0wKXtR
PXh9ZWxzZXtRPWNbeT4+Ml18MH1jW3A+PjJdPVErTztSPVF9ZWxzZXtSPWx9Qz1CKzEyfDA7Rz1j
W0M+PjJdfDA7Uz1CKzE2fDA7aWYoKEd8MCk9PShjW1M+PjJdfDApKXtUPWIwW2NbKGNbQj4+Ml18
MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1Q9Y1tHPj4yXXwwfWlmKChmVShULHQsUixwLHMsQSxt
LHYscix1KXwwKSE9MCl7Sz1SO0w9STtNPUo7YnJlYWt9Rz1jW0M+PjJdfDA7aWYoKEd8MCk9PShj
W1M+PjJdfDApKXtTPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUyYxMjddKEIpfDA7bD1SO3c9
Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Ujt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lm
KCh3JjF8MCk9PTApe1U9dz4+PjF9ZWxzZXtVPWNbbSs0Pj4yXXwwfWRve2lmKChVfDApIT0wKXt3
PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVI9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0
O2Nbdz4+Ml09Un19d2hpbGUoMCk7Y1trPj4yXT1mQihLLGNbcD4+Ml18MCxqLHQpfDA7ZnQobSx2
LGNbcj4+Ml18MCxqKTtkb3tpZihFKXtWPTB9ZWxzZXtyPWNbQisxMj4+Ml18MDtpZigocnwwKT09
KGNbQisxNj4+Ml18MCkpe1c9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7
Vz1jW3I+PjJdfDB9aWYoKFd8MCkhPS0xKXtWPUI7YnJlYWt9Y1toPj4yXT0wO1Y9MH19d2hpbGUo
MCk7aD0oVnwwKT09MDtkb3tpZihNKXtGPTYzMn1lbHNle0I9Y1tMKzEyPj4yXXwwO2lmKChCfDAp
PT0oY1tMKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYxMjddKEwpfDB9ZWxz
ZXtYPWNbQj4+Ml18MH1pZigoWHwwKT09LTEpe2NbZj4+Ml09MDtGPTYzMjticmVha31pZighKGhe
KEx8MCk9PTApKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn19
d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTYzMil7aWYoaCl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQ
KG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1k9YnwwO2Nb
WT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZfKGIsZSxmLGcsaCxqLGsp
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAs
UT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTA7ZT1pO2k9aSsxNDR8MDtsPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtuPWUrMTI4fDA7bz1u
O3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNl
IDg6e3Q9MTY7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Rl
ZmF1bHQ6e3Q9MTB9fXU9ZXwwO2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCww
KTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9
Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0w
O2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9Y1toPj4yXXwwO0w4
MDI6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEyPj4yXXwwO2lmKChD
fDApPT0oY1t3KzE2Pj4yXXwwKSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDB9
ZWxzZXtEPWNbQz4+Ml18MH1pZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13
aGlsZSgwKTtFPShCfDApPT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0wKXtGPTY2MH1lbHNl
e0c9Y1tDKzEyPj4yXXwwO2lmKChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1iMFtjWyhjW0M+PjJd
fDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHwwKT09LTEpe2NbZj4+
Ml09MDtGPTY2MDticmVha31lbHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7Sj1HO2JyZWFrfWVs
c2V7Sz1sO0w9QztNPUc7YnJlYWsgTDgwMn19fX13aGlsZSgwKTtpZigoRnwwKT09NjYwKXtGPTA7
aWYoRSl7Sz1sO0w9MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118MDtHPShDJjF8MCk9
PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDApfDApKXtpZihHKXtO
PUM+Pj4xO089Qz4+PjF9ZWxzZXtDPWNbej4+Ml18MDtOPUM7Tz1DfWRSKG4sTjw8MSwwKTtpZigo
YVtvXSYxKT09MCl7UD0xMH1lbHNle1A9KGNbZz4+Ml0mLTIpLTF8MH1kUihuLFAsMCk7aWYoKGFb
b10mMSk9PTApe1E9eH1lbHNle1E9Y1t5Pj4yXXwwfWNbcD4+Ml09UStPO1I9UX1lbHNle1I9bH1D
PUIrMTJ8MDtHPWNbQz4+Ml18MDtTPUIrMTZ8MDtpZigoR3wwKT09KGNbUz4+Ml18MCkpe1Q9YjBb
Y1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7VD1jW0c+PjJdfDB9aWYoKGZVKFQs
dCxSLHAscyxBLG0sdixyLHUpfDApIT0wKXtLPVI7TD1JO009SjticmVha31HPWNbQz4+Ml18MDtp
ZigoR3wwKT09KGNbUz4+Ml18MCkpe1M9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtTJjEyN10o
Qil8MDtsPVI7dz1CO2NvbnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1SO3c9Qjtjb250aW51ZX19
dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7VT13Pj4+MX1lbHNle1U9Y1ttKzQ+PjJdfDB9ZG97aWYo
KFV8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9Uj1jW3M+PjJdfDA7
Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1SfX13aGlsZSgwKTtjW2s+PjJdPWZEKEssY1twPj4yXXwwLGos
dCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEUpe1Y9MH1lbHNle3I9Y1tCKzEyPj4yXXww
O2lmKChyfDApPT0oY1tCKzE2Pj4yXXwwKSl7Vz1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjdd
KEIpfDB9ZWxzZXtXPWNbcj4+Ml18MH1pZigoV3wwKSE9LTEpe1Y9QjticmVha31jW2g+PjJdPTA7
Vj0wfX13aGlsZSgwKTtoPShWfDApPT0wO2Rve2lmKE0pe0Y9NzAyfWVsc2V7Qj1jW0wrMTI+PjJd
fDA7aWYoKEJ8MCk9PShjW0wrMTY+PjJdfDApKXtYPWIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEy
N10oTCl8MH1lbHNle1g9Y1tCPj4yXXwwfWlmKChYfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NzAyO2Jy
ZWFrfWlmKCEoaF4oTHwwKT09MCkpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtp
PWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRnwwKT09NzAyKXtpZihoKXticmVha31ZPWJ8MDtj
W1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJd
fDI7WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZiQoYixl
LGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFy
IGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0wLE49MCxP
PTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MDtlPWk7aT1pKzE0
NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzExMnwwO249
ZSsxMjh8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJd
Jjc0fDApe2Nhc2UgODp7dD0xNjticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2UgNjQ6e3Q9
ODticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9
bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNl
e3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09
djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1j
W2g+PjJdfDA7TDg5MTp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+
PjJdfDA7aWYoKEN8MCk9PShjW3crMTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJd
JjEyN10odyl8MH1lbHNle0Q9Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+
Ml09MDtCPTB9fXdoaWxlKDApO0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTAp
e0Y9NzMwfWVsc2V7Rz1jW0MrMTI+PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDApKXtIPWIw
W2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlmKChIfDAp
PT0tMSl7Y1tmPj4yXT0wO0Y9NzMwO2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztK
PUc7YnJlYWt9ZWxzZXtMPWw7TT1DO049RzticmVhayBMODkxfX19fXdoaWxlKDApO2lmKChGfDAp
PT03MzApe0Y9MDtpZihFKXtMPWw7TT0wO049MTticmVha31lbHNle0k9MDtKPTF9fUM9ZFtvXXww
O0c9KEMmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+Ml18MCl8
MCkpe2lmKEcpe089Qz4+PjE7UD1DPj4+MX1lbHNle0M9Y1t6Pj4yXXwwO089QztQPUN9ZFIobixP
PDwxLDApO2lmKChhW29dJjEpPT0wKXtRPTEwfWVsc2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKG4s
USwwKTtpZigoYVtvXSYxKT09MCl7Uj14fWVsc2V7Uj1jW3k+PjJdfDB9Y1twPj4yXT1SK1A7Uz1S
fWVsc2V7Uz1sfUM9QisxMnwwO0c9Y1tDPj4yXXwwO1Q9QisxNnwwO2lmKChHfDApPT0oY1tUPj4y
XXwwKSl7VT1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtVPWNbRz4+Ml18
MH1pZigoZlUoVSx0LFMscCxzLEEsbSx2LHIsdSl8MCkhPTApe0w9UztNPUk7Tj1KO2JyZWFrfUc9
Y1tDPj4yXXwwO2lmKChHfDApPT0oY1tUPj4yXXwwKSl7VD1jWyhjW0I+PjJdfDApKzQwPj4yXXww
O2IwW1QmMTI3XShCKXwwO2w9Uzt3PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDtsPVM7dz1C
O2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtWPXc+Pj4xfWVsc2V7Vj1jW20rND4+
Ml18MH1kb3tpZigoVnwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31T
PWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVN9fXdoaWxlKDApO3M9ZkYoTCxjW3A+PjJd
fDAsaix0KXwwO2Nbaz4+Ml09cztjW2srND4+Ml09SztmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lm
KEUpe1c9MH1lbHNle3I9Y1tCKzEyPj4yXXwwO2lmKChyfDApPT0oY1tCKzE2Pj4yXXwwKSl7WD1i
MFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtYPWNbcj4+Ml18MH1pZigoWHww
KSE9LTEpe1c9QjticmVha31jW2g+PjJdPTA7Vz0wfX13aGlsZSgwKTtoPShXfDApPT0wO2Rve2lm
KE4pe0Y9NzcyfWVsc2V7Qj1jW00rMTI+PjJdfDA7aWYoKEJ8MCk9PShjW00rMTY+PjJdfDApKXtZ
PWIwW2NbKGNbTT4+Ml18MCkrMzY+PjJdJjEyN10oTSl8MH1lbHNle1k9Y1tCPj4yXXwwfWlmKChZ
fDApPT0tMSl7Y1tmPj4yXT0wO0Y9NzcyO2JyZWFrfWlmKCEoaF4oTXwwKT09MCkpe2JyZWFrfVo9
YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRnww
KT09NzcyKXtpZihoKXticmVha31aPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1lO3JldHVy
bn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7Wj1ifDA7Y1taPj4yXT1XO2RQKG4pO2RQKG0p
O2k9ZTtyZXR1cm59ZnVuY3Rpb24gZjAoYixlLGYsaCxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7
aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0w
LFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wO2U9aTtpPWkrMTc2fDA7bT1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWg7aD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1to
Pj4yXT1jW20+PjJdO209ZSsxMjh8MDtuPWUrMTM2fDA7bz1lKzE0NHwwO3A9ZSsxNjB8MDtxPXA7
cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSsxNjB8MDt0PWk7aT1pKzR8MDtpPWkrNz4+
Mzw8Mzt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt3PWk7
aT1pKzF8MDtpPWkrNz4+Mzw8Mzt4PWV8MDtmMShvLGoseCxtLG4pO2skKHF8MCwwLDEyKTtqPXA7
ZFIocCwxMCwwKTtpZigoYVtxXSYxKT09MCl7eT1qKzF8MDt6PXk7QT15O0I9cCs4fDB9ZWxzZXt5
PXArOHwwO3o9Y1t5Pj4yXXwwO0E9aisxfDA7Qj15fWNbcj4+Ml09ejt5PXN8MDtjW3Q+PjJdPXk7
Y1t1Pj4yXT0wO2Fbdl09MTthW3ddPTY5O2o9ZnwwO2Y9aHwwO2g9cHwwO0M9cCs0fDA7RD1jW20+
PjJdfDA7bT1jW24+PjJdfDA7bj16O3o9Y1tqPj4yXXwwO0w5NzU6d2hpbGUoMSl7ZG97aWYoKHp8
MCk9PTApe0U9MH1lbHNle0Y9Y1t6KzEyPj4yXXwwO2lmKChGfDApPT0oY1t6KzE2Pj4yXXwwKSl7
Rz1iMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDB9ZWxzZXtHPWNbRj4+Ml18MH1pZigo
R3wwKSE9LTEpe0U9ejticmVha31jW2o+PjJdPTA7RT0wfX13aGlsZSgwKTtIPShFfDApPT0wO0Y9
Y1tmPj4yXXwwO2Rve2lmKChGfDApPT0wKXtJPTc5Nn1lbHNle0o9Y1tGKzEyPj4yXXwwO2lmKChK
fDApPT0oY1tGKzE2Pj4yXXwwKSl7Sz1iMFtjWyhjW0Y+PjJdfDApKzM2Pj4yXSYxMjddKEYpfDB9
ZWxzZXtLPWNbSj4+Ml18MH1pZigoS3wwKT09LTEpe2NbZj4+Ml09MDtJPTc5NjticmVha31lbHNl
e0o9KEZ8MCk9PTA7aWYoSF5KKXtMPUY7TT1KO2JyZWFrfWVsc2V7Tj1uO089RjtQPUo7YnJlYWsg
TDk3NX19fX13aGlsZSgwKTtpZigoSXwwKT09Nzk2KXtJPTA7aWYoSCl7Tj1uO089MDtQPTE7YnJl
YWt9ZWxzZXtMPTA7TT0xfX1GPWRbcV18MDtKPShGJjF8MCk9PTA7aWYoKChjW3I+PjJdfDApLW58
MCk9PSgoSj9GPj4+MTpjW0M+PjJdfDApfDApKXtpZihKKXtRPUY+Pj4xO1I9Rj4+PjF9ZWxzZXtG
PWNbQz4+Ml18MDtRPUY7Uj1GfWRSKHAsUTw8MSwwKTtpZigoYVtxXSYxKT09MCl7Uz0xMH1lbHNl
e1M9KGNbaD4+Ml0mLTIpLTF8MH1kUihwLFMsMCk7aWYoKGFbcV0mMSk9PTApe1Q9QX1lbHNle1Q9
Y1tCPj4yXXwwfWNbcj4+Ml09VCtSO1U9VH1lbHNle1U9bn1GPUUrMTJ8MDtKPWNbRj4+Ml18MDtW
PUUrMTZ8MDtpZigoSnwwKT09KGNbVj4+Ml18MCkpe1c9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0m
MTI3XShFKXwwfWVsc2V7Vz1jW0o+PjJdfDB9aWYoKGYyKFcsdix3LFUscixELG0sbyx5LHQsdSx4
KXwwKSE9MCl7Tj1VO089TDtQPU07YnJlYWt9Sj1jW0Y+PjJdfDA7aWYoKEp8MCk9PShjW1Y+PjJd
fDApKXtWPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbViYxMjddKEUpfDA7bj1VO3o9RTtjb250
aW51ZX1lbHNle2NbRj4+Ml09Sis0O249VTt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6JjF8
MCk9PTApe1g9ej4+PjF9ZWxzZXtYPWNbbys0Pj4yXXwwfWRve2lmKChYfDApIT0wKXtpZigoYVt2
XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVha31VPWNbdT4+
Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVV9fXdoaWxlKDApO2dbbD4+Ml09K2ZJKE4sY1tyPj4y
XXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoSCl7WT0wfWVsc2V7dD1jW0UrMTI+PjJd
fDA7aWYoKHR8MCk9PShjW0UrMTY+PjJdfDApKXtaPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEy
N10oRSl8MH1lbHNle1o9Y1t0Pj4yXXwwfWlmKChafDApIT0tMSl7WT1FO2JyZWFrfWNbaj4+Ml09
MDtZPTB9fXdoaWxlKDApO2o9KFl8MCk9PTA7ZG97aWYoUCl7ST04Mzl9ZWxzZXtFPWNbTysxMj4+
Ml18MDtpZigoRXwwKT09KGNbTysxNj4+Ml18MCkpe189YjBbY1soY1tPPj4yXXwwKSszNj4+Ml0m
MTI3XShPKXwwfWVsc2V7Xz1jW0U+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2Y+PjJdPTA7ST04Mzk7
YnJlYWt9aWYoIShqXihPfDApPT0wKSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8p
O2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChJfDApPT04Mzkpe2lmKGope2JyZWFrfSQ9Ynww
O2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+
Ml18MjskPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmMShh
LGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2c9aTtpPWkrNDB8MDtoPWd8MDtqPWcrMTZ8
MDtrPWcrMzJ8MDtlaihrLGIpO2I9a3wwO2s9Y1tiPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7
Y1tqPj4yXT0xNTY4ODtjW2orND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTU2ODgsaiw5Nil9aj0o
Y1szOTIzXXwwKS0xfDA7bD1jW2srOD4+Ml18MDtkb3tpZigoY1trKzEyPj4yXXwwKS1sPj4yPj4+
MD5qPj4+MCl7bT1jW2wrKGo8PDIpPj4yXXwwO2lmKChtfDApPT0wKXticmVha31uPW07bz1jWyhj
W20+PjJdfDApKzQ4Pj4yXXwwO2NhW28mMTVdKG4sOTc0NCw5Nzc2LGQpfDA7bj1jW2I+PjJdfDA7
aWYoKGNbMzgyNl18MCkhPS0xKXtjW2g+PjJdPTE1MzA0O2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09
MDtkVygxNTMwNCxoLDk2KX1vPShjWzM4MjddfDApLTF8MDttPWNbbis4Pj4yXXwwO2Rve2lmKChj
W24rMTI+PjJdfDApLW0+PjI+Pj4wPm8+Pj4wKXtwPWNbbSsobzw8Mik+PjJdfDA7aWYoKHB8MCk9
PTApe2JyZWFrfXE9cDtyPXA7Y1tlPj4yXT1iMFtjWyhjW3I+PjJdfDApKzEyPj4yXSYxMjddKHEp
fDA7Y1tmPj4yXT1iMFtjWyhjW3I+PjJdfDApKzE2Pj4yXSYxMjddKHEpfDA7YlpbY1soY1twPj4y
XXwwKSsyMD4+Ml0mMTI3XShhLHEpO3E9Y1tiPj4yXXwwO2R6KHEpfDA7aT1nO3JldHVybn19d2hp
bGUoMCk7bz1iTyg0KXwwO2txKG8pO2JsKG98MCw4MTc2LDEzNCl9fXdoaWxlKDApO2c9Yk8oNCl8
MDtrcShnKTtibChnfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGYyKGIsZSxmLGcsaCxpLGosayxsLG0s
bixvKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8
MDttPW18MDtuPW58MDtvPW98MDt2YXIgcD0wLHE9MCxyPTAscz0wLHQ9MDtpZigoYnwwKT09KGl8
MCkpe2lmKChhW2VdJjEpPT0wKXtwPS0xO3JldHVybiBwfDB9YVtlXT0wO2k9Y1toPj4yXXwwO2Nb
aD4+Ml09aSsxO2FbaV09NDY7aT1kW2tdfDA7aWYoKGkmMXwwKT09MCl7cT1pPj4+MX1lbHNle3E9
Y1trKzQ+PjJdfDB9aWYoKHF8MCk9PTApe3A9MDtyZXR1cm4gcHwwfXE9Y1ttPj4yXXwwO2lmKChx
LWx8MCk+PTE2MCl7cD0wO3JldHVybiBwfDB9aT1jW24+PjJdfDA7Y1ttPj4yXT1xKzQ7Y1txPj4y
XT1pO3A9MDtyZXR1cm4gcHwwfWRve2lmKChifDApPT0oanwwKSl7aT1kW2tdfDA7aWYoKGkmMXww
KT09MCl7cj1pPj4+MX1lbHNle3I9Y1trKzQ+PjJdfDB9aWYoKHJ8MCk9PTApe2JyZWFrfWlmKChh
W2VdJjEpPT0wKXtwPS0xO3JldHVybiBwfDB9aT1jW20+PjJdfDA7aWYoKGktbHwwKT49MTYwKXtw
PTA7cmV0dXJuIHB8MH1xPWNbbj4+Ml18MDtjW20+PjJdPWkrNDtjW2k+PjJdPXE7Y1tuPj4yXT0w
O3A9MDtyZXR1cm4gcHwwfX13aGlsZSgwKTtyPW8rMTI4fDA7aj1vO3doaWxlKDEpe2lmKChqfDAp
PT0ocnwwKSl7cz1yO2JyZWFrfWlmKChjW2o+PjJdfDApPT0oYnwwKSl7cz1qO2JyZWFrfWVsc2V7
aj1qKzR8MH19aj1zLW98MDtvPWo+PjI7aWYoKGp8MCk+MTI0KXtwPS0xO3JldHVybiBwfDB9cz1h
Wzk3NDQrb3wwXXwwO0wxMTE1OmRve3N3aXRjaChvfDApe2Nhc2UgMjU6Y2FzZSAyNDp7Yj1jW2g+
PjJdfDA7ZG97aWYoKGJ8MCkhPShnfDApKXtpZigoYVtiLTF8MF0mOTV8MCk9PShhW2ZdJjEyN3ww
KSl7YnJlYWt9ZWxzZXtwPS0xfXJldHVybiBwfDB9fXdoaWxlKDApO2NbaD4+Ml09YisxO2FbYl09
cztwPTA7cmV0dXJuIHB8MH07Y2FzZSAyMjpjYXNlIDIzOnthW2ZdPTgwO2JyZWFrfTtkZWZhdWx0
OntyPWFbZl18MDtpZigocyY5NXwwKSE9KHI8PDI0Pj4yNHwwKSl7YnJlYWsgTDExMTV9YVtmXT1y
fC0xMjg7aWYoKGFbZV0mMSk9PTApe2JyZWFrIEwxMTE1fWFbZV09MDtyPWRba118MDtpZigociYx
fDApPT0wKXt0PXI+Pj4xfWVsc2V7dD1jW2srND4+Ml18MH1pZigodHwwKT09MCl7YnJlYWsgTDEx
MTV9cj1jW20+PjJdfDA7aWYoKHItbHwwKT49MTYwKXticmVhayBMMTExNX1xPWNbbj4+Ml18MDtj
W20+PjJdPXIrNDtjW3I+PjJdPXF9fX13aGlsZSgwKTttPWNbaD4+Ml18MDtjW2g+PjJdPW0rMTth
W21dPXM7aWYoKGp8MCk+ODQpe3A9MDtyZXR1cm4gcHwwfWNbbj4+Ml09KGNbbj4+Ml18MCkrMTtw
PTA7cmV0dXJuIHB8MH1mdW5jdGlvbiBmMyhiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxW
PTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTA7ZT1pO2k9aSsxNzZ8MDttPWY7Zj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2c+PjJdPWNbbT4+Ml07bT1lKzEyOHwwO249ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1lKzE2MHwwO3E9
cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9
aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2YxKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9
cDtkUihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNl
e3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09
eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1nfDA7Zz1wfDA7Qz1wKzR8MDtEPWNb
bT4+Ml18MDttPWNbbj4+Ml18MDtuPXo7ej1jW2o+PjJdfDA7TDExNDM6d2hpbGUoMSl7ZG97aWYo
KHp8MCk9PTApe0U9MH1lbHNle0Y9Y1t6KzEyPj4yXXwwO2lmKChGfDApPT0oY1t6KzE2Pj4yXXww
KSl7Rz1iMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDB9ZWxzZXtHPWNbRj4+Ml18MH1p
ZigoR3wwKSE9LTEpe0U9ejticmVha31jW2o+PjJdPTA7RT0wfX13aGlsZSgwKTtIPShFfDApPT0w
O0Y9Y1tmPj4yXXwwO2Rve2lmKChGfDApPT0wKXtJPTkyOX1lbHNle0o9Y1tGKzEyPj4yXXwwO2lm
KChKfDApPT0oY1tGKzE2Pj4yXXwwKSl7Sz1iMFtjWyhjW0Y+PjJdfDApKzM2Pj4yXSYxMjddKEYp
fDB9ZWxzZXtLPWNbSj4+Ml18MH1pZigoS3wwKT09LTEpe2NbZj4+Ml09MDtJPTkyOTticmVha31l
bHNle0o9KEZ8MCk9PTA7aWYoSF5KKXtMPUY7TT1KO2JyZWFrfWVsc2V7Tj1uO089RjtQPUo7YnJl
YWsgTDExNDN9fX19d2hpbGUoMCk7aWYoKEl8MCk9PTkyOSl7ST0wO2lmKEgpe049bjtPPTA7UD0x
O2JyZWFrfWVsc2V7TD0wO009MX19Rj1kW3FdfDA7Sj0oRiYxfDApPT0wO2lmKCgoY1tyPj4yXXww
KS1ufDApPT0oKEo/Rj4+PjE6Y1tDPj4yXXwwKXwwKSl7aWYoSil7UT1GPj4+MTtSPUY+Pj4xfWVs
c2V7Rj1jW0M+PjJdfDA7UT1GO1I9Rn1kUihwLFE8PDEsMCk7aWYoKGFbcV0mMSk9PTApe1M9MTB9
ZWxzZXtTPShjW2c+PjJdJi0yKS0xfDB9ZFIocCxTLDApO2lmKChhW3FdJjEpPT0wKXtUPUF9ZWxz
ZXtUPWNbQj4+Ml18MH1jW3I+PjJdPVQrUjtVPVR9ZWxzZXtVPW59Rj1FKzEyfDA7Sj1jW0Y+PjJd
fDA7Vj1FKzE2fDA7aWYoKEp8MCk9PShjW1Y+PjJdfDApKXtXPWIwW2NbKGNbRT4+Ml18MCkrMzY+
PjJdJjEyN10oRSl8MH1lbHNle1c9Y1tKPj4yXXwwfWlmKChmMihXLHYsdyxVLHIsRCxtLG8seSx0
LHUseCl8MCkhPTApe049VTtPPUw7UD1NO2JyZWFrfUo9Y1tGPj4yXXwwO2lmKChKfDApPT0oY1tW
Pj4yXXwwKSl7Vj1jWyhjW0U+PjJdfDApKzQwPj4yXXwwO2IwW1YmMTI3XShFKXwwO249VTt6PUU7
Y29udGludWV9ZWxzZXtjW0Y+PjJdPUorNDtuPVU7ej1FO2NvbnRpbnVlfX16PWRbb118MDtpZigo
eiYxfDApPT0wKXtYPXo+Pj4xfWVsc2V7WD1jW28rND4+Ml18MH1kb3tpZigoWHwwKSE9MCl7aWYo
KGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7YnJlYWt9VT1j
W3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6Pj4yXT1VfX13aGlsZSgwKTtoW2w+PjNdPStmTChOLGNb
cj4+Ml18MCxrKTtmdChvLHksY1t0Pj4yXXwwLGspO2Rve2lmKEgpe1k9MH1lbHNle3Q9Y1tFKzEy
Pj4yXXwwO2lmKCh0fDApPT0oY1tFKzE2Pj4yXXwwKSl7Wj1iMFtjWyhjW0U+PjJdfDApKzM2Pj4y
XSYxMjddKEUpfDB9ZWxzZXtaPWNbdD4+Ml18MH1pZigoWnwwKSE9LTEpe1k9RTticmVha31jW2o+
PjJdPTA7WT0wfX13aGlsZSgwKTtqPShZfDApPT0wO2Rve2lmKFApe0k9OTcyfWVsc2V7RT1jW08r
MTI+PjJdfDA7aWYoKEV8MCk9PShjW08rMTY+PjJdfDApKXtfPWIwW2NbKGNbTz4+Ml18MCkrMzY+
PjJdJjEyN10oTyl8MH1lbHNle189Y1tFPj4yXXwwfWlmKChffDApPT0tMSl7Y1tmPj4yXT0wO0k9
OTcyO2JyZWFrfWlmKCEoal4oT3wwKT09MCkpe2JyZWFrfSQ9YnwwO2NbJD4+Ml09WTtkUChwKTtk
UChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoSXwwKT09OTcyKXtpZihqKXticmVha30k
PWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1j
W2s+PjJdfDI7JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24g
ZjQoYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7az1rfDA7bD1s
fDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAs
JD0wO2U9aTtpPWkrMTc2fDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tt
Pj4yXTttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+PjJdO209ZSsxMjh8
MDtuPWUrMTM2fDA7bz1lKzE0NHwwO3A9ZSsxNjB8MDtxPXA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7cz1pO2k9aSsxNjB8MDt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt1PWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8Mzt2PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt3PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt4
PWV8MDtmMShvLGoseCxtLG4pO2skKHF8MCwwLDEyKTtqPXA7ZFIocCwxMCwwKTtpZigoYVtxXSYx
KT09MCl7eT1qKzF8MDt6PXk7QT15O0I9cCs4fDB9ZWxzZXt5PXArOHwwO3o9Y1t5Pj4yXXwwO0E9
aisxfDA7Qj15fWNbcj4+Ml09ejt5PXN8MDtjW3Q+PjJdPXk7Y1t1Pj4yXT0wO2Fbdl09MTthW3dd
PTY5O2o9ZnwwO2Y9Z3wwO2c9cHwwO0M9cCs0fDA7RD1jW20+PjJdfDA7bT1jW24+PjJdfDA7bj16
O3o9Y1tqPj4yXXwwO0wxMjI4OndoaWxlKDEpe2Rve2lmKCh6fDApPT0wKXtFPTB9ZWxzZXtGPWNb
eisxMj4+Ml18MDtpZigoRnwwKT09KGNbeisxNj4+Ml18MCkpe0c9YjBbY1soY1t6Pj4yXXwwKSsz
Nj4+Ml0mMTI3XSh6KXwwfWVsc2V7Rz1jW0Y+PjJdfDB9aWYoKEd8MCkhPS0xKXtFPXo7YnJlYWt9
Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7SD0oRXwwKT09MDtGPWNbZj4+Ml18MDtkb3tpZigoRnww
KT09MCl7ST05OTZ9ZWxzZXtKPWNbRisxMj4+Ml18MDtpZigoSnwwKT09KGNbRisxNj4+Ml18MCkp
e0s9YjBbY1soY1tGPj4yXXwwKSszNj4+Ml0mMTI3XShGKXwwfWVsc2V7Sz1jW0o+PjJdfDB9aWYo
KEt8MCk9PS0xKXtjW2Y+PjJdPTA7ST05OTY7YnJlYWt9ZWxzZXtKPShGfDApPT0wO2lmKEheSil7
TD1GO009SjticmVha31lbHNle049bjtPPUY7UD1KO2JyZWFrIEwxMjI4fX19fXdoaWxlKDApO2lm
KChJfDApPT05OTYpe0k9MDtpZihIKXtOPW47Tz0wO1A9MTticmVha31lbHNle0w9MDtNPTF9fUY9
ZFtxXXwwO0o9KEYmMXwwKT09MDtpZigoKGNbcj4+Ml18MCktbnwwKT09KChKP0Y+Pj4xOmNbQz4+
Ml18MCl8MCkpe2lmKEope1E9Rj4+PjE7Uj1GPj4+MX1lbHNle0Y9Y1tDPj4yXXwwO1E9RjtSPUZ9
ZFIocCxRPDwxLDApO2lmKChhW3FdJjEpPT0wKXtTPTEwfWVsc2V7Uz0oY1tnPj4yXSYtMiktMXww
fWRSKHAsUywwKTtpZigoYVtxXSYxKT09MCl7VD1BfWVsc2V7VD1jW0I+PjJdfDB9Y1tyPj4yXT1U
K1I7VT1UfWVsc2V7VT1ufUY9RSsxMnwwO0o9Y1tGPj4yXXwwO1Y9RSsxNnwwO2lmKChKfDApPT0o
Y1tWPj4yXXwwKSl7Vz1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDB9ZWxzZXtXPWNb
Sj4+Ml18MH1pZigoZjIoVyx2LHcsVSxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtOPVU7Tz1MO1A9
TTticmVha31KPWNbRj4+Ml18MDtpZigoSnwwKT09KGNbVj4+Ml18MCkpe1Y9Y1soY1tFPj4yXXww
KSs0MD4+Ml18MDtiMFtWJjEyN10oRSl8MDtuPVU7ej1FO2NvbnRpbnVlfWVsc2V7Y1tGPj4yXT1K
KzQ7bj1VO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7WD16Pj4+MX1lbHNl
e1g9Y1tvKzQ+PjJdfDB9ZG97aWYoKFh8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXticmVha316PWNb
dD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVU9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nb
ej4+Ml09VX19d2hpbGUoMCk7aFtsPj4zXT0rZk4oTixjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+
Ml18MCxrKTtkb3tpZihIKXtZPTB9ZWxzZXt0PWNbRSsxMj4+Ml18MDtpZigodHwwKT09KGNbRSsx
Nj4+Ml18MCkpe1o9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwfWVsc2V7Wj1jW3Q+
PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUU7YnJlYWt9Y1tqPj4yXT0wO1k9MH19d2hpbGUoMCk7aj0o
WXwwKT09MDtkb3tpZihQKXtJPTEwMzl9ZWxzZXtFPWNbTysxMj4+Ml18MDtpZigoRXwwKT09KGNb
TysxNj4+Ml18MCkpe189YjBbY1soY1tPPj4yXXwwKSszNj4+Ml0mMTI3XShPKXwwfWVsc2V7Xz1j
W0U+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2Y+PjJdPTA7ST0xMDM5O2JyZWFrfWlmKCEoal4oT3ww
KT09MCkpe2JyZWFrfSQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGls
ZSgwKTtkb3tpZigoSXwwKT09MTAzOSl7aWYoail7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHAp
O2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwyOyQ9YnwwO2NbJD4+
Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGY1KGEpe2E9YXwwO2RlKGF8MCk7
a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGY2KGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9u
IGY3KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9
a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0w
O2U9aTtpPWkrMTM2fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4y
XTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZXwwO209ZSsx
NnwwO249ZSsxMjB8MDtvPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztwPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7cT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cj1pO2k9aSsxNjB8MDtzPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8Mzt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztrJChufDAsMCwxMik7dT1wO2VqKG8s
aCk7aD1vfDA7bz1jW2g+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2Nb
bCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8MDt2
PWNbbys4Pj4yXXwwO2Rve2lmKChjW28rMTI+PjJdfDApLXY+PjI+Pj4wPmw+Pj4wKXt3PWNbdiso
bDw8Mik+PjJdfDA7aWYoKHd8MCk9PTApe2JyZWFrfXg9dzt5PW18MDt6PWNbKGNbdz4+Ml18MCkr
NDg+PjJdfDA7Y2FbeiYxNV0oeCw5NzQ0LDk3NzAseSl8MDt4PWNbaD4+Ml18MDtkeih4KXwwO2sk
KHV8MCwwLDEyKTt4PXA7ZFIocCwxMCwwKTtpZigoYVt1XSYxKT09MCl7ej14KzF8MDtBPXo7Qj16
O0M9cCs4fDB9ZWxzZXt6PXArOHwwO0E9Y1t6Pj4yXXwwO0I9eCsxfDA7Qz16fWNbcT4+Ml09QTt6
PXJ8MDtjW3M+PjJdPXo7Y1t0Pj4yXT0wO3g9ZnwwO3c9Z3wwO0Q9cHwwO0U9cCs0fDA7Rj1BO0c9
Y1t4Pj4yXXwwO0wxMzIzOndoaWxlKDEpe2Rve2lmKChHfDApPT0wKXtIPTB9ZWxzZXtJPWNbRysx
Mj4+Ml18MDtpZigoSXwwKT09KGNbRysxNj4+Ml18MCkpe0o9YjBbY1soY1tHPj4yXXwwKSszNj4+
Ml0mMTI3XShHKXwwfWVsc2V7Sj1jW0k+PjJdfDB9aWYoKEp8MCkhPS0xKXtIPUc7YnJlYWt9Y1t4
Pj4yXT0wO0g9MH19d2hpbGUoMCk7ST0oSHwwKT09MDtLPWNbdz4+Ml18MDtkb3tpZigoS3wwKT09
MCl7TD0xMDczfWVsc2V7TT1jW0srMTI+PjJdfDA7aWYoKE18MCk9PShjW0srMTY+PjJdfDApKXtO
PWIwW2NbKGNbSz4+Ml18MCkrMzY+PjJdJjEyN10oSyl8MH1lbHNle049Y1tNPj4yXXwwfWlmKChO
fDApPT0tMSl7Y1t3Pj4yXT0wO0w9MTA3MzticmVha31lbHNle2lmKEleKEt8MCk9PTApe2JyZWFr
fWVsc2V7Tz1GO2JyZWFrIEwxMzIzfX19fXdoaWxlKDApO2lmKChMfDApPT0xMDczKXtMPTA7aWYo
SSl7Tz1GO2JyZWFrfX1LPWRbdV18MDtNPShLJjF8MCk9PTA7aWYoKChjW3E+PjJdfDApLUZ8MCk9
PSgoTT9LPj4+MTpjW0U+PjJdfDApfDApKXtpZihNKXtQPUs+Pj4xO1E9Sz4+PjF9ZWxzZXtLPWNb
RT4+Ml18MDtQPUs7UT1LfWRSKHAsUDw8MSwwKTtpZigoYVt1XSYxKT09MCl7Uj0xMH1lbHNle1I9
KGNbRD4+Ml0mLTIpLTF8MH1kUihwLFIsMCk7aWYoKGFbdV0mMSk9PTApe1M9Qn1lbHNle1M9Y1tD
Pj4yXXwwfWNbcT4+Ml09UytRO1Q9U31lbHNle1Q9Rn1LPUgrMTJ8MDtNPWNbSz4+Ml18MDtVPUgr
MTZ8MDtpZigoTXwwKT09KGNbVT4+Ml18MCkpe1Y9YjBbY1soY1tIPj4yXXwwKSszNj4+Ml0mMTI3
XShIKXwwfWVsc2V7Vj1jW00+PjJdfDB9aWYoKGZVKFYsMTYsVCxxLHQsMCxuLHoscyx5KXwwKSE9
MCl7Tz1UO2JyZWFrfU09Y1tLPj4yXXwwO2lmKChNfDApPT0oY1tVPj4yXXwwKSl7VT1jWyhjW0g+
PjJdfDApKzQwPj4yXXwwO2IwW1UmMTI3XShIKXwwO0Y9VDtHPUg7Y29udGludWV9ZWxzZXtjW0s+
PjJdPU0rNDtGPVQ7Rz1IO2NvbnRpbnVlfX1hW08rM3wwXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09
MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hp
bGUoMCk7Rz1mUihPLGNbMjk1OF18MCwxMzIwLChGPWksaT1pKzh8MCxjW0Y+PjJdPWssRil8MCl8
MDtpPUY7aWYoKEd8MCkhPTEpe2Nbaj4+Ml09NH1HPWNbeD4+Ml18MDtkb3tpZigoR3wwKT09MCl7
Vz0wfWVsc2V7Rj1jW0crMTI+PjJdfDA7aWYoKEZ8MCk9PShjW0crMTY+PjJdfDApKXtYPWIwW2Nb
KGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MH1lbHNle1g9Y1tGPj4yXXwwfWlmKChYfDApIT0t
MSl7Vz1HO2JyZWFrfWNbeD4+Ml09MDtXPTB9fXdoaWxlKDApO3g9KFd8MCk9PTA7Rz1jW3c+PjJd
fDA7ZG97aWYoKEd8MCk9PTApe0w9MTExOH1lbHNle0Y9Y1tHKzEyPj4yXXwwO2lmKChGfDApPT0o
Y1tHKzE2Pj4yXXwwKSl7WT1iMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDB9ZWxzZXtZ
PWNbRj4+Ml18MH1pZigoWXwwKT09LTEpe2Nbdz4+Ml09MDtMPTExMTg7YnJlYWt9aWYoISh4XihH
fDApPT0wKSl7YnJlYWt9Wj1ifDA7Y1taPj4yXT1XO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59fXdo
aWxlKDApO2Rve2lmKChMfDApPT0xMTE4KXtpZih4KXticmVha31aPWJ8MDtjW1o+PjJdPVc7ZFAo
cCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7Wj1ifDA7Y1ta
Pj4yXT1XO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtrcShlKTti
bChlfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGY4KGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSs4MHwwO2o9ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8MDttPWQrNDh8
MDtuPWQrNTZ8MDtvPWQrNjR8MDtwPWQrNzJ8MDtxPWp8MDthW3FdPWFbMjM4NF18MDthW3ErMXww
XT1hWzIzODV8MF18MDthW3ErMnwwXT1hWzIzODZ8MF18MDthW3ErM3wwXT1hWzIzODd8MF18MDth
W3ErNHwwXT1hWzIzODh8MF18MDthW3ErNXwwXT1hWzIzODl8MF18MDtyPWorMXwwO3M9Zis0fDA7
dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1yfWVsc2V7YVtyXT00Mzt1PWorMnwwfWlm
KCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4O3U9disxfDA7
TDE0MTA6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9O2Nhc2UgODp7
aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwxNDEwfWVsc2V7YVt1XT04ODticmVh
ayBMMTQxMH1icmVha307ZGVmYXVsdDp7YVt1XT0xMDB9fX13aGlsZSgwKTt1PWt8MDtkb3tpZigo
YVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwx
MzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwxMixjWzI5NThdfDAscSwocT1pLGk9aSs4fDAsY1tx
Pj4yXT1oLHEpfDApfDA7aT1xO3E9ayt0fDA7TDE0MjM6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDAp
e2Nhc2UgMzI6e3c9cTticmVha307Y2FzZSAxNjp7aD1hW3VdfDA7c3dpdGNoKGg8PDI0Pj4yNCl7
Y2FzZSA0NTpjYXNlIDQzOnt3PWsrMXwwO2JyZWFrIEwxNDIzO2JyZWFrfTtkZWZhdWx0Ont9fWlm
KCEoKHR8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7eD0xMTQ3O2JyZWFrIEwxNDIzfXN3aXRjaChhW2sr
MXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xMTQ3O2JyZWFrIEwx
NDIzfX13PWsrMnwwO2JyZWFrfTtkZWZhdWx0Ont4PTExNDd9fX13aGlsZSgwKTtpZigoeHwwKT09
MTE0Nyl7dz11fXg9bHwwO2VqKG8sZik7Z2ModSx3LHEseCxtLG4sbyk7ZHooY1tvPj4yXXwwKXww
O2NbcD4+Ml09Y1tlPj4yXTtmOShiLHAseCxjW20+PjJdfDAsY1tuPj4yXXwwLGYsZyk7aT1kO3Jl
dHVybn1mdW5jdGlvbiBmOShiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7
aT1pKzE2fDA7bD1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tsPj4yXTtsPWt8
MDttPWR8MDtkPWNbbT4+Ml18MDtpZigoZHwwKT09MCl7Y1tiPj4yXT0wO2k9aztyZXR1cm59bj1n
O2c9ZTtvPW4tZ3wwO3A9aCsxMnwwO2g9Y1twPj4yXXwwO3E9KGh8MCk+KG98MCk/aC1vfDA6MDtv
PWY7aD1vLWd8MDtkb3tpZigoaHwwKT4wKXtpZigoYjFbY1soY1tkPj4yXXwwKSs0OD4+Ml0mNjNd
KGQsZSxoKXwwKT09KGh8MCkpe2JyZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7aT1rO3JldHVybn19
d2hpbGUoMCk7ZG97aWYoKHF8MCk+MCl7ZF8obCxxLGopO2lmKChhW2xdJjEpPT0wKXtyPWwrMXww
fWVsc2V7cj1jW2wrOD4+Ml18MH1pZigoYjFbY1soY1tkPj4yXXwwKSs0OD4+Ml0mNjNdKGQscixx
KXwwKT09KHF8MCkpe2RQKGwpO2JyZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7ZFAobCk7aT1rO3Jl
dHVybn19d2hpbGUoMCk7bD1uLW98MDtkb3tpZigobHwwKT4wKXtpZigoYjFbY1soY1tkPj4yXXww
KSs0OD4+Ml0mNjNdKGQsZixsKXwwKT09KGx8MCkpe2JyZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7
aT1rO3JldHVybn19d2hpbGUoMCk7Y1twPj4yXT0wO2NbYj4+Ml09ZDtpPWs7cmV0dXJufWZ1bmN0
aW9uIGdhKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2
YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wO2o9aTtpPWkrNDh8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW2s+PjJdO2s9anwwO2w9aisxNnwwO209aisyNHwwO249aiszMnwwO2lmKChjW2YrND4+Ml0m
MXwwKT09MCl7bz1jWyhjW2Q+PjJdfDApKzI0Pj4yXXwwO2NbbD4+Ml09Y1tlPj4yXTtiOVtvJjMx
XShiLGQsbCxmLGcsaCYxKTtpPWo7cmV0dXJufWVqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYo
KGNbMzgyOF18MCkhPS0xKXtjW2s+PjJdPTE1MzEyO2Nbays0Pj4yXT0xMjtjW2srOD4+Ml09MDtk
VygxNTMxMixrLDk2KX1rPShjWzM4MjldfDApLTF8MDtnPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20r
MTI+PjJdfDApLWc+PjI+Pj4wPms+Pj4wKXtsPWNbZysoazw8Mik+PjJdfDA7aWYoKGx8MCk9PTAp
e2JyZWFrfWQ9bDtvPWNbZj4+Ml18MDtkeihvKXwwO289Y1tsPj4yXXwwO2lmKGgpe2JaW2Nbbysy
ND4+Ml0mMTI3XShuLGQpfWVsc2V7YlpbY1tvKzI4Pj4yXSYxMjddKG4sZCl9ZD1uO289bjtsPWFb
b118MDtpZigobCYxKT09MCl7cD1kKzF8MDtxPXA7cj1wO3M9bis4fDB9ZWxzZXtwPW4rOHwwO3E9
Y1twPj4yXXwwO3I9ZCsxfDA7cz1wfXA9ZXwwO2Q9bis0fDA7dD1xO3U9bDt3aGlsZSgxKXtpZigo
dSYxKT09MCl7dj1yfWVsc2V7dj1jW3M+PjJdfDB9bD11JjI1NTtpZigodHwwKT09KHYrKChsJjF8
MCk9PTA/bD4+PjE6Y1tkPj4yXXwwKXwwKSl7YnJlYWt9bD1hW3RdfDA7dz1jW3A+PjJdfDA7ZG97
aWYoKHd8MCkhPTApe3g9dysyNHwwO3k9Y1t4Pj4yXXwwO2lmKCh5fDApIT0oY1t3KzI4Pj4yXXww
KSl7Y1t4Pj4yXT15KzE7YVt5XT1sO2JyZWFrfWlmKChiX1tjWyhjW3c+PjJdfDApKzUyPj4yXSYz
MV0odyxsJjI1NSl8MCkhPS0xKXticmVha31jW3A+PjJdPTB9fXdoaWxlKDApO3Q9dCsxfDA7dT1h
W29dfDB9Y1tiPj4yXT1jW3A+PjJdO2RQKG4pO2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8oNCl8
MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdiKGEsYixkLGUsZil7YT1hfDA7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wO2c9aTtpPWkrMTZ8MDtoPWd8MDtq
PWg7Y1tqPj4yXT1mO2Nbais0Pj4yXT0wO2o9YkIoZHwwKXwwO2Q9YkMoYXwwLGJ8MCxlfDAsaHww
KXwwO2lmKChqfDApPT0wKXtpPWc7cmV0dXJuIGR8MH1iQihqfDApfDA7aT1nO3JldHVybiBkfDB9
ZnVuY3Rpb24gZ2MoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9
MCxLPTAsTD0wO2w9aTtpPWkrNDh8MDttPWx8MDtuPWwrMTZ8MDtvPWwrMzJ8MDtwPWt8MDtrPWNb
cD4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbbj4+Ml09MTU2OTY7Y1tuKzQ+PjJdPTEyO2Nb
bis4Pj4yXT0wO2RXKDE1Njk2LG4sOTYpfW49KGNbMzkyNV18MCktMXwwO3E9Y1trKzg+PjJdfDA7
aWYoKGNbaysxMj4+Ml18MCktcT4+Mj4+PjA8PW4+Pj4wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2Js
KHJ8MCw4MTc2LDEzNCl9az1jW3ErKG48PDIpPj4yXXwwO2lmKChrfDApPT0wKXtyPWJPKDQpfDA7
cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9cj1rO3M9Y1twPj4yXXwwO2lmKChjWzM4MjhdfDAp
IT0tMSl7Y1ttPj4yXT0xNTMxMjtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTUzMTIsbSw5
Nil9bT0oY1szODI5XXwwKS0xfDA7cD1jW3MrOD4+Ml18MDtpZigoY1tzKzEyPj4yXXwwKS1wPj4y
Pj4+MDw9bT4+PjApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX1zPWNbcCso
bTw8Mik+PjJdfDA7aWYoKHN8MCk9PTApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYs
MTM0KX10PXM7YlpbY1soY1tzPj4yXXwwKSsyMD4+Ml0mMTI3XShvLHQpO3U9bzttPW87cD1kW21d
fDA7aWYoKHAmMXwwKT09MCl7dj1wPj4+MX1lbHNle3Y9Y1tvKzQ+PjJdfDB9ZG97aWYoKHZ8MCk9
PTApe3A9Y1soY1trPj4yXXwwKSszMj4+Ml18MDtjYVtwJjE1XShyLGIsZixnKXwwO2Nbaj4+Ml09
ZysoZi1iKX1lbHNle2Nbaj4+Ml09ZztwPWFbYl18MDtzd2l0Y2gocDw8MjQ+PjI0KXtjYXNlIDQ1
OmNhc2UgNDM6e249Yl9bY1soY1trPj4yXXwwKSsyOD4+Ml0mMzFdKHIscCl8MDtwPWNbaj4+Ml18
MDtjW2o+PjJdPXArMTthW3BdPW47dz1iKzF8MDticmVha307ZGVmYXVsdDp7dz1ifX1MMTUzMzpk
b3tpZigoZi13fDApPjEpe2lmKChhW3ddfDApIT00OCl7eD13O2JyZWFrfW49dysxfDA7c3dpdGNo
KGFbbl18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9dzticmVhayBMMTUz
M319cD1rO3E9Yl9bY1soY1twPj4yXXwwKSsyOD4+Ml0mMzFdKHIsNDgpfDA7eT1jW2o+PjJdfDA7
Y1tqPj4yXT15KzE7YVt5XT1xO3E9Yl9bY1soY1twPj4yXXwwKSsyOD4+Ml0mMzFdKHIsYVtuXXww
KXwwO249Y1tqPj4yXXwwO2Nbaj4+Ml09bisxO2Fbbl09cTt4PXcrMnwwfWVsc2V7eD13fX13aGls
ZSgwKTtkb3tpZigoeHwwKSE9KGZ8MCkpe3E9Zi0xfDA7aWYoeD4+PjA8cT4+PjApe3o9eDtBPXF9
ZWxzZXticmVha31kb3txPWFbel18MDthW3pdPWFbQV18MDthW0FdPXE7ej16KzF8MDtBPUEtMXww
O313aGlsZSh6Pj4+MDxBPj4+MCl9fXdoaWxlKDApO3E9YjBbY1soY1tzPj4yXXwwKSsxNj4+Ml0m
MTI3XSh0KXwwO2lmKHg+Pj4wPGY+Pj4wKXtuPXUrMXwwO3A9azt5PW8rNHwwO0I9bys4fDA7Qz0w
O0Q9MDtFPXg7d2hpbGUoMSl7Rj0oYVttXSYxKT09MDtkb3tpZigoYVsoRj9uOmNbQj4+Ml18MCkr
RHwwXXwwKT09MCl7Rz1EO0g9Q31lbHNle2lmKChDfDApIT0oYVsoRj9uOmNbQj4+Ml18MCkrRHww
XXwwKSl7Rz1EO0g9QzticmVha31JPWNbaj4+Ml18MDtjW2o+PjJdPUkrMTthW0ldPXE7ST1kW21d
fDA7Rz0oRD4+PjA8KCgoSSYxfDApPT0wP0k+Pj4xOmNbeT4+Ml18MCktMXwwKT4+PjApK0R8MDtI
PTB9fXdoaWxlKDApO0Y9Yl9bY1soY1twPj4yXXwwKSsyOD4+Ml0mMzFdKHIsYVtFXXwwKXwwO0k9
Y1tqPj4yXXwwO2Nbaj4+Ml09SSsxO2FbSV09RjtGPUUrMXwwO2lmKEY+Pj4wPGY+Pj4wKXtDPUgr
MXwwO0Q9RztFPUZ9ZWxzZXticmVha319fUU9ZysoeC1iKXwwO0Q9Y1tqPj4yXXwwO2lmKChFfDAp
PT0oRHwwKSl7YnJlYWt9Qz1ELTF8MDtpZihFPj4+MDxDPj4+MCl7Sj1FO0s9Q31lbHNle2JyZWFr
fWRve0M9YVtKXXwwO2FbSl09YVtLXXwwO2FbS109QztKPUorMXwwO0s9Sy0xfDA7fXdoaWxlKEo+
Pj4wPEs+Pj4wKX19d2hpbGUoMCk7aWYoKGV8MCk9PShmfDApKXtMPWNbaj4+Ml18MDtjW2g+PjJd
PUw7ZFAobyk7aT1sO3JldHVybn1lbHNle0w9ZysoZS1iKXwwO2NbaD4+Ml09TDtkUChvKTtpPWw7
cmV0dXJufX1mdW5jdGlvbiBnZChiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzExMnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrMzJ8MDtuPWQrODB8MDtv
PWQrODh8MDtwPWQrOTZ8MDtxPWQrMTA0fDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDtyPWs7az1y
KzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9a31lbHNle2Fba109
NDM7dT1yKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3Zd
PTEwODthW3YrMXwwXT0xMDg7dT12KzJ8MDtMMTU3NDpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDY0
OnthW3VdPTExMTticmVha307Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJl
YWsgTDE1NzR9ZWxzZXthW3VdPTg4O2JyZWFrIEwxNTc0fWJyZWFrfTtkZWZhdWx0OnthW3VdPTEw
MH19fXdoaWxlKDApO3U9bHwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXww
KT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDIyLGNb
Mjk1OF18MCxyLChyPWksaT1pKzE2fDAsY1tyPj4yXT1oLGNbcis4Pj4yXT1qLHIpfDApfDA7aT1y
O3I9bCt0fDA7TDE1ODc6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMTY6e2o9YVt1XXww
O3N3aXRjaChqPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7dz1sKzF8MDticmVhayBMMTU4Nzti
cmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmajw8MjQ+PjI0PT00OCkpe3g9MTI4NjticmVh
ayBMMTU4N31zd2l0Y2goYVtsKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1
bHQ6e3g9MTI4NjticmVhayBMMTU4N319dz1sKzJ8MDticmVha307Y2FzZSAzMjp7dz1yO2JyZWFr
fTtkZWZhdWx0Ont4PTEyODZ9fX13aGlsZSgwKTtpZigoeHwwKT09MTI4Nil7dz11fXg9bXwwO2Vq
KHAsZik7Z2ModSx3LHIseCxuLG8scCk7ZHooY1twPj4yXXwwKXwwO2NbcT4+Ml09Y1tlPj4yXTtm
OShiLHEseCxjW24+PjJdfDAsY1tvPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlvbiBnZShi
LGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9
aTtpPWkrODB8MDtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9
ZHwwO2s9ZCs4fDA7bD1kKzI0fDA7bT1kKzQ4fDA7bj1kKzU2fDA7bz1kKzY0fDA7cD1kKzcyfDA7
cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8MF09YVsyMzg1fDBdfDA7YVtxKzJ8MF09YVsyMzg2
fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7YVtxKzR8MF09YVsyMzg4fDBdfDA7YVtxKzV8MF09
YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTAp
e3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09
MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXwwO0wxNjA1OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2Ug
NjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDti
cmVhayBMMTYwNX1lbHNle2FbdV09ODg7YnJlYWsgTDE2MDV9YnJlYWt9O2RlZmF1bHQ6e2FbdV09
MTE3fX19d2hpbGUoMCk7dT1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMTIs
Y1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNbcT4+Ml09aCxxKXwwKXwwO2k9cTtxPWsrdHwwO0wx
NjE4OmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDMyOnt3PXE7YnJlYWt9O2Nhc2UgMTY6
e2g9YVt1XXwwO3N3aXRjaChoPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7dz1rKzF8MDticmVh
ayBMMTYxODticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmaDw8MjQ+PjI0PT00OCkpe3g9
MTMxMTticmVhayBMMTYxOH1zd2l0Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJl
YWt9O2RlZmF1bHQ6e3g9MTMxMTticmVhayBMMTYxOH19dz1rKzJ8MDticmVha307ZGVmYXVsdDp7
eD0xMzExfX19d2hpbGUoMCk7aWYoKHh8MCk9PTEzMTEpe3c9dX14PWx8MDtlaihvLGYpO2djKHUs
dyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8MDtjW3A+PjJdPWNbZT4+Ml07ZjkoYixwLHgsY1tt
Pj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2YoYixkLGUsZixnLGgs
ail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsx
MTJ8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9
ZCs4fDA7bT1kKzMyfDA7bj1kKzgwfDA7bz1kKzg4fDA7cD1kKzk2fDA7cT1kKzEwNHwwO2Nbaz4+
Ml09Mzc7Y1trKzQ+PjJdPTA7cj1rO2s9cisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYy
MDQ4fDApPT0wKXt1PWt9ZWxzZXthW2tdPTQzO3U9cisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9
ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7YVt2KzF8MF09MTA4O3U9disyfDA7TDE2MzY6
ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJl
YWsgTDE2MzZ9ZWxzZXthW3VdPTg4O2JyZWFrIEwxNjM2fWJyZWFrfTtjYXNlIDY0OnthW3VdPTEx
MTticmVha307ZGVmYXVsdDp7YVt1XT0xMTd9fX13aGlsZSgwKTt1PWx8MDtkb3tpZigoYVsxNjI2
NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDAp
fDB9fXdoaWxlKDApO3Q9Z2IodSwyMyxjWzI5NThdfDAsciwocj1pLGk9aSsxNnwwLGNbcj4+Ml09
aCxjW3IrOD4+Ml09aixyKXwwKXwwO2k9cjtyPWwrdHwwO0wxNjQ5OmRve3N3aXRjaChjW3M+PjJd
JjE3NnwwKXtjYXNlIDE2OntqPWFbdV18MDtzd2l0Y2goajw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2Ug
NDM6e3c9bCsxfDA7YnJlYWsgTDE2NDk7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmo8
PDI0Pj4yND09NDgpKXt4PTEzMzY7YnJlYWsgTDE2NDl9c3dpdGNoKGFbbCsxfDBdfDApe2Nhc2Ug
MTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTEzMzY7YnJlYWsgTDE2NDl9fXc9bCsyfDA7
YnJlYWt9O2Nhc2UgMzI6e3c9cjticmVha307ZGVmYXVsdDp7eD0xMzM2fX19d2hpbGUoMCk7aWYo
KHh8MCk9PTEzMzYpe3c9dX14PW18MDtlaihwLGYpO2djKHUsdyxyLHgsbixvLHApO2R6KGNbcD4+
Ml18MCl8MDtjW3E+PjJdPWNbZT4+Ml07ZjkoYixxLHgsY1tuPj4yXXwwLGNbbz4+Ml18MCxmLGcp
O2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2coYixkLGUsZixnLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2o9K2o7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTA7ZD1pO2k9aSsxNTJ8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzQwfDA7bj1kKzQ4fDA7bz1kKzExMnwwO3A9ZCsx
MjB8MDtxPWQrMTI4fDA7cj1kKzEzNnwwO3M9ZCsxNDR8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0w
O3Q9aztrPXQrMXwwO3U9Zis0fDA7dj1jW3U+PjJdfDA7aWYoKHYmMjA0OHwwKT09MCl7dz1rfWVs
c2V7YVtrXT00Mzt3PXQrMnwwfWlmKCh2JjEwMjR8MCk9PTApe3g9d31lbHNle2Fbd109MzU7eD13
KzF8MH13PXYmMjYwO2s9dj4+PjE0O0wxNjY3OmRve2lmKCh3fDApPT0yNjApe2lmKChrJjF8MCk9
PTApe2FbeF09OTc7eT0wO2JyZWFrfWVsc2V7YVt4XT02NTt5PTA7YnJlYWt9fWVsc2V7YVt4XT00
Njt2PXgrMnwwO2FbeCsxfDBdPTQyO3N3aXRjaCh3fDApe2Nhc2UgNDp7aWYoKGsmMXwwKT09MCl7
YVt2XT0xMDI7eT0xO2JyZWFrIEwxNjY3fWVsc2V7YVt2XT03MDt5PTE7YnJlYWsgTDE2Njd9YnJl
YWt9O2Nhc2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDE2Njd9ZWxz
ZXthW3ZdPTY5O3k9MTticmVhayBMMTY2N31icmVha307ZGVmYXVsdDp7aWYoKGsmMXwwKT09MCl7
YVt2XT0xMDM7eT0xO2JyZWFrIEwxNjY3fWVsc2V7YVt2XT03MTt5PTE7YnJlYWsgTDE2Njd9fX19
fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygx
NjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Y1sy
OTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4y
XSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3PWdiKGssMzAsbCx0LCh6PWksaT1p
Kzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lmKChBfDApPjI5KXt3PShhWzE2MjY0
XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThd
PWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrMTZ8
MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPWx9ZWxzZXtkb3tp
Zih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13
aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4y
XSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTApe0M9
QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7RD0w
O0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wxNzE2OmRve3N3aXRjaChjW3U+PjJdJjE3
NnwwKXtjYXNlIDE2OntCPWFbRV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6
e0Y9RSsxfDA7YnJlYWsgTDE3MTY7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgoQ3wwKT4xJkI8PDI0
Pj4yND09NDgpKXtHPTEzOTI7YnJlYWsgTDE3MTZ9c3dpdGNoKGFbRSsxfDBdfDApe2Nhc2UgMTIw
OmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntHPTEzOTI7YnJlYWsgTDE3MTZ9fUY9RSsyfDA7YnJl
YWt9O2Nhc2UgMzI6e0Y9QTticmVha307ZGVmYXVsdDp7Rz0xMzkyfX19d2hpbGUoMCk7aWYoKEd8
MCk9PTEzOTIpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtHPWtK
KEM8PDEpfDA7aWYoKEd8MCkhPTApe0g9RztJPUc7Sj1FO2JyZWFrfWtYKCk7SD0wO0k9MDtKPWNb
bT4+Ml18MH19d2hpbGUoMCk7ZWoocSxmKTtnaihKLEYsQSxILG8scCxxKTtkeihjW3E+PjJdfDAp
fDA7cT1lfDA7Y1tzPj4yXT1jW3E+PjJdO2Y5KHIscyxILGNbbz4+Ml18MCxjW3A+PjJdfDAsZixn
KTtnPWNbcj4+Ml18MDtjW3E+PjJdPWc7Y1tiPj4yXT1nO2lmKChJfDApIT0wKXtrSyhJKX1pZigo
RHwwKT09MCl7aT1kO3JldHVybn1rSyhEKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdoKGEsYixkLGUp
e2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtmPWk7aT1pKzE2fDA7Zz1m
fDA7aD1nO2NbaD4+Ml09ZTtjW2grND4+Ml09MDtoPWJCKGJ8MCl8MDtiPWJRKGF8MCxkfDAsZ3ww
KXwwO2lmKChofDApPT0wKXtpPWY7cmV0dXJuIGJ8MH1iQihofDApfDA7aT1mO3JldHVybiBifDB9
ZnVuY3Rpb24gZ2koYixkLGUsZixnLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9
K2o7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZD1p
O2k9aSsxNTJ8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9
ZHwwO2w9ZCs4fDA7bT1kKzQwfDA7bj1kKzQ4fDA7bz1kKzExMnwwO3A9ZCsxMjB8MDtxPWQrMTI4
fDA7cj1kKzEzNnwwO3M9ZCsxNDR8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3Q9aztrPXQrMXww
O3U9Zis0fDA7dj1jW3U+PjJdfDA7aWYoKHYmMjA0OHwwKT09MCl7dz1rfWVsc2V7YVtrXT00Mzt3
PXQrMnwwfWlmKCh2JjEwMjR8MCk9PTApe3g9d31lbHNle2Fbd109MzU7eD13KzF8MH13PXYmMjYw
O2s9dj4+PjE0O0wxNzU0OmRve2lmKCh3fDApPT0yNjApe2FbeF09NzY7dj14KzF8MDtpZigoayYx
fDApPT0wKXthW3ZdPTk3O3k9MDticmVha31lbHNle2Fbdl09NjU7eT0wO2JyZWFrfX1lbHNle2Fb
eF09NDY7YVt4KzF8MF09NDI7YVt4KzJ8MF09NzY7dj14KzN8MDtzd2l0Y2god3wwKXtjYXNlIDQ6
e2lmKChrJjF8MCk9PTApe2Fbdl09MTAyO3k9MTticmVhayBMMTc1NH1lbHNle2Fbdl09NzA7eT0x
O2JyZWFrIEwxNzU0fWJyZWFrfTtjYXNlIDI1Njp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDE7eT0x
O2JyZWFrIEwxNzU0fWVsc2V7YVt2XT02OTt5PTE7YnJlYWsgTDE3NTR9YnJlYWt9O2RlZmF1bHQ6
e2lmKChrJjF8MCk9PTApe2Fbdl09MTAzO3k9MTticmVhayBMMTc1NH1lbHNle2Fbdl09NzE7eT0x
O2JyZWFrIEwxNzU0fX19fX13aGlsZSgwKTtrPWx8MDtjW20+PjJdPWs7ZG97aWYoKGFbMTYyNjRd
fDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXww
fX13aGlsZSgwKTtsPWNbMjk1OF18MDtpZih5KXt3PWdiKGssMzAsbCx0LCh6PWksaT1pKzE2fDAs
Y1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7QT13fWVsc2V7dz1nYihr
LDMwLGwsdCwoej1pLGk9aSs4fDAsaFt6Pj4zXT1qLHopfDApfDA7aT16O0E9d31kb3tpZigoQXww
KT4yOSl7dz0oYVsxNjI2NF18MCk9PTA7aWYoeSl7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09
MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1naChtLGNbMjk1OF18
MCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtp
PXo7Qj1sfWVsc2V7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1h
UygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dz1naChtLGNbMjk1OF18MCx0LCh6PWksaT1pKzh8MCxo
W3o+PjNdPWoseil8MCl8MDtpPXo7Qj13fXc9Y1ttPj4yXXwwO2lmKCh3fDApIT0wKXtDPUI7RD13
O0U9dzticmVha31rWCgpO3c9Y1ttPj4yXXwwO0M9QjtEPXc7RT13fWVsc2V7Qz1BO0Q9MDtFPWNb
bT4+Ml18MH19d2hpbGUoMCk7QT1FK0N8MDtMMTgwMzpkb3tzd2l0Y2goY1t1Pj4yXSYxNzZ8MCl7
Y2FzZSAzMjp7Rj1BO2JyZWFrfTtjYXNlIDE2OntCPWFbRV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtj
YXNlIDQ1OmNhc2UgNDM6e0Y9RSsxfDA7YnJlYWsgTDE4MDM7YnJlYWt9O2RlZmF1bHQ6e319aWYo
ISgoQ3wwKT4xJkI8PDI0Pj4yND09NDgpKXtHPTE0Nzc7YnJlYWsgTDE4MDN9c3dpdGNoKGFbRSsx
fDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntHPTE0Nzc7YnJlYWsgTDE4
MDN9fUY9RSsyfDA7YnJlYWt9O2RlZmF1bHQ6e0c9MTQ3N319fXdoaWxlKDApO2lmKChHfDApPT0x
NDc3KXtGPUV9ZG97aWYoKEV8MCk9PShrfDApKXtIPW58MDtJPTA7Sj1rfWVsc2V7Rz1rSihDPDwx
KXwwO2lmKChHfDApIT0wKXtIPUc7ST1HO0o9RTticmVha31rWCgpO0g9MDtJPTA7Sj1jW20+PjJd
fDB9fXdoaWxlKDApO2VqKHEsZik7Z2ooSixGLEEsSCxvLHAscSk7ZHooY1txPj4yXXwwKXwwO3E9
ZXwwO2Nbcz4+Ml09Y1txPj4yXTtmOShyLHMsSCxjW28+PjJdfDAsY1twPj4yXXwwLGYsZyk7Zz1j
W3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09ZztpZigoSXwwKSE9MCl7a0soSSl9aWYoKER8MCk9
PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3JldHVybn1mdW5jdGlvbiBnaihiLGUsZixnLGgsaixr
KXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MDtsPWk7aT1p
KzQ4fDA7bT1sfDA7bj1sKzE2fDA7bz1sKzMyfDA7cD1rfDA7az1jW3A+PjJdfDA7aWYoKGNbMzky
NF18MCkhPS0xKXtjW24+PjJdPTE1Njk2O2Nbbis0Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTY5
NixuLDk2KX1uPShjWzM5MjVdfDApLTF8MDtxPWNbays4Pj4yXXwwO2lmKChjW2srMTI+PjJdfDAp
LXE+PjI+Pj4wPD1uPj4+MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfWs9
Y1txKyhuPDwyKT4+Ml18MDtpZigoa3wwKT09MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAs
ODE3NiwxMzQpfXI9aztzPWNbcD4+Ml18MDtpZigoY1szODI4XXwwKSE9LTEpe2NbbT4+Ml09MTUz
MTI7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1MzEyLG0sOTYpfW09KGNbMzgyOV18MCkt
MXwwO3A9Y1tzKzg+PjJdfDA7aWYoKGNbcysxMj4+Ml18MCktcD4+Mj4+PjA8PW0+Pj4wKXt0PWJP
KDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9cz1jW3ArKG08PDIpPj4yXXwwO2lmKChz
fDApPT0wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9dD1zO2JaW2NbKGNb
cz4+Ml18MCkrMjA+PjJdJjEyN10obyx0KTtjW2o+PjJdPWc7dT1hW2JdfDA7c3dpdGNoKHU8PDI0
Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnttPWJfW2NbKGNbaz4+Ml18MCkrMjg+PjJdJjMxXShyLHUp
fDA7dT1jW2o+PjJdfDA7Y1tqPj4yXT11KzE7YVt1XT1tO3Y9YisxfDA7YnJlYWt9O2RlZmF1bHQ6
e3Y9Yn19bT1mO0wxODUxOmRve2lmKChtLXZ8MCk+MSl7aWYoKGFbdl18MCkhPTQ4KXt3PXY7eD0x
NTMyO2JyZWFrfXU9disxfDA7c3dpdGNoKGFbdV18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9
O2RlZmF1bHQ6e3c9djt4PTE1MzI7YnJlYWsgTDE4NTF9fXA9aztuPWJfW2NbKGNbcD4+Ml18MCkr
Mjg+PjJdJjMxXShyLDQ4KXwwO3E9Y1tqPj4yXXwwO2Nbaj4+Ml09cSsxO2FbcV09bjtuPXYrMnww
O3E9Yl9bY1soY1twPj4yXXwwKSsyOD4+Ml0mMzFdKHIsYVt1XXwwKXwwO3U9Y1tqPj4yXXwwO2Nb
aj4+Ml09dSsxO2FbdV09cTtxPW47d2hpbGUoMSl7aWYocT4+PjA+PWY+Pj4wKXt5PXE7ej1uO2Jy
ZWFrIEwxODUxfXU9YVtxXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXww
KT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGEzKHU8PDI0
Pj4yNHwwLGNbMjk1OF18MCl8MCk9PTApe3k9cTt6PW47YnJlYWt9ZWxzZXtxPXErMXwwfX19ZWxz
ZXt3PXY7eD0xNTMyfX13aGlsZSgwKTtMMTg2Njpkb3tpZigoeHwwKT09MTUzMil7d2hpbGUoMSl7
eD0wO2lmKHc+Pj4wPj1mPj4+MCl7eT13O3o9djticmVhayBMMTg2Nn1xPWFbd118MDtkb3tpZigo
YVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwx
MzQ0LDApfDB9fXdoaWxlKDApO2lmKChiSChxPDwyND4+MjR8MCxjWzI5NThdfDApfDApPT0wKXt5
PXc7ej12O2JyZWFrfWVsc2V7dz13KzF8MDt4PTE1MzJ9fX19d2hpbGUoMCk7eD1vO3c9bzt2PWRb
d118MDtpZigodiYxfDApPT0wKXtBPXY+Pj4xfWVsc2V7QT1jW28rND4+Ml18MH1kb3tpZigoQXww
KT09MCl7dj1jW2o+PjJdfDA7dT1jWyhjW2s+PjJdfDApKzMyPj4yXXwwO2NhW3UmMTVdKHIseix5
LHYpfDA7Y1tqPj4yXT0oY1tqPj4yXXwwKSsoeS16KX1lbHNle2Rve2lmKCh6fDApIT0oeXwwKSl7
dj15LTF8MDtpZih6Pj4+MDx2Pj4+MCl7Qj16O0M9dn1lbHNle2JyZWFrfWRve3Y9YVtCXXwwO2Fb
Ql09YVtDXXwwO2FbQ109djtCPUIrMXwwO0M9Qy0xfDA7fXdoaWxlKEI+Pj4wPEM+Pj4wKX19d2hp
bGUoMCk7cT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjddKHQpfDA7aWYoej4+PjA8eT4+PjAp
e3Y9eCsxfDA7dT1vKzR8MDtuPW8rOHwwO3A9aztEPTA7RT0wO0Y9ejt3aGlsZSgxKXtHPShhW3dd
JjEpPT0wO2Rve2lmKChhWyhHP3Y6Y1tuPj4yXXwwKStFfDBdfDApPjApe2lmKChEfDApIT0oYVso
Rz92OmNbbj4+Ml18MCkrRXwwXXwwKSl7SD1FO0k9RDticmVha31KPWNbaj4+Ml18MDtjW2o+PjJd
PUorMTthW0pdPXE7Sj1kW3ddfDA7SD0oRT4+PjA8KCgoSiYxfDApPT0wP0o+Pj4xOmNbdT4+Ml18
MCktMXwwKT4+PjApK0V8MDtJPTB9ZWxzZXtIPUU7ST1EfX13aGlsZSgwKTtHPWJfW2NbKGNbcD4+
Ml18MCkrMjg+PjJdJjMxXShyLGFbRl18MCl8MDtKPWNbaj4+Ml18MDtjW2o+PjJdPUorMTthW0pd
PUc7Rz1GKzF8MDtpZihHPj4+MDx5Pj4+MCl7RD1JKzF8MDtFPUg7Rj1HfWVsc2V7YnJlYWt9fX1G
PWcrKHotYil8MDtFPWNbaj4+Ml18MDtpZigoRnwwKT09KEV8MCkpe2JyZWFrfUQ9RS0xfDA7aWYo
Rj4+PjA8RD4+PjApe0s9RjtMPUR9ZWxzZXticmVha31kb3tEPWFbS118MDthW0tdPWFbTF18MDth
W0xdPUQ7Sz1LKzF8MDtMPUwtMXwwO313aGlsZShLPj4+MDxMPj4+MCl9fXdoaWxlKDApO0wxOTA1
OmRve2lmKHk+Pj4wPGY+Pj4wKXtMPWs7Sz15O3doaWxlKDEpe3o9YVtLXXwwO2lmKHo8PDI0Pj4y
ND09NDYpe2JyZWFrfUg9Yl9bY1soY1tMPj4yXXwwKSsyOD4+Ml0mMzFdKHIseil8MDt6PWNbaj4+
Ml18MDtjW2o+PjJdPXorMTthW3pdPUg7SD1LKzF8MDtpZihIPj4+MDxmPj4+MCl7Sz1IfWVsc2V7
TT1IO2JyZWFrIEwxOTA1fX1MPWIwW2NbKGNbcz4+Ml18MCkrMTI+PjJdJjEyN10odCl8MDtIPWNb
aj4+Ml18MDtjW2o+PjJdPUgrMTthW0hdPUw7TT1LKzF8MH1lbHNle009eX19d2hpbGUoMCk7Y2Fb
Y1soY1trPj4yXXwwKSszMj4+Ml0mMTVdKHIsTSxmLGNbaj4+Ml18MCl8MDtyPShjW2o+PjJdfDAp
KyhtLU0pfDA7Y1tqPj4yXT1yO2lmKChlfDApPT0oZnwwKSl7Tj1yO2NbaD4+Ml09TjtkUChvKTtp
PWw7cmV0dXJufU49ZysoZS1iKXwwO2NbaD4+Ml09TjtkUChvKTtpPWw7cmV0dXJufWZ1bmN0aW9u
IGdrKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdsKGEpe2E9YXwwO2Rl
KGF8MCk7cmV0dXJufWZ1bmN0aW9uIGdtKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsxNDR8MDtqPWU7ZT1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9ZHwwO2s9ZCs4fDA7bD1kKzI0fDA7bT1kKzExMnww
O249ZCsxMjB8MDtvPWQrMTI4fDA7cD1kKzEzNnwwO3E9anwwO2FbcV09YVsyMzg0XXwwO2FbcSsx
fDBdPWFbMjM4NXwwXXwwO2FbcSsyfDBdPWFbMjM4NnwwXXwwO2FbcSszfDBdPWFbMjM4N3wwXXww
O2FbcSs0fDBdPWFbMjM4OHwwXXwwO2FbcSs1fDBdPWFbMjM4OXwwXXwwO3I9aisxfDA7cz1mKzR8
MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PXJ9ZWxzZXthW3JdPTQzO3U9aisyfDB9
aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7dT12KzF8
MDtMMTkyODpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDY0OnthW3VdPTExMTticmVha307Y2FzZSA4
OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDE5Mjh9ZWxzZXthW3VdPTg4O2Jy
ZWFrIEwxOTI4fWJyZWFrfTtkZWZhdWx0OnthW3VdPTEwMH19fXdoaWxlKDApO3U9a3wwO2Rve2lm
KChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygx
LDEzNDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDEyLGNbMjk1OF18MCxxLChxPWksaT1pKzh8MCxj
W3E+PjJdPWgscSl8MCl8MDtpPXE7cT1rK3R8MDtMMTk0MTpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8
MCl7Y2FzZSAzMjp7dz1xO2JyZWFrfTtjYXNlIDE2OntoPWFbdV18MDtzd2l0Y2goaDw8MjQ+PjI0
KXtjYXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsgTDE5NDE7YnJlYWt9O2RlZmF1bHQ6e319
aWYoISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTE2MDA7YnJlYWsgTDE5NDF9c3dpdGNoKGFb
aysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE2MDA7YnJlYWsg
TDE5NDF9fXc9aysyfDA7YnJlYWt9O2RlZmF1bHQ6e3g9MTYwMH19fXdoaWxlKDApO2lmKCh4fDAp
PT0xNjAwKXt3PXV9eD1sfDA7ZWoobyxmKTtncCh1LHcscSx4LG0sbixvKTtkeihjW28+PjJdfDAp
fDA7Y1twPj4yXT1jW2U+PjJdO2dxKGIscCx4LGNbbT4+Ml18MCxjW24+PjJdfDAsZixnKTtpPWQ7
cmV0dXJufWZ1bmN0aW9uIGduKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7ZD1pO2k9aSsxMDR8MDtqPWU7ZT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9ZHwwO2s9ZCsyNHwwO2w9ZCs0OHwwO209
ZCs4OHwwO249ZCs5NnwwO289ZCsxNnwwO2Fbb109YVsyMzkyXXwwO2FbbysxfDBdPWFbMjM5M3ww
XXwwO2FbbysyfDBdPWFbMjM5NHwwXXwwO2FbbyszfDBdPWFbMjM5NXwwXXwwO2Fbbys0fDBdPWFb
MjM5NnwwXXwwO2Fbbys1fDBdPWFbMjM5N3wwXXwwO3A9a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09
MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hp
bGUoMCk7cT1nYihwLDIwLGNbMjk1OF18MCxvLChvPWksaT1pKzh8MCxjW28+PjJdPWgsbyl8MCl8
MDtpPW87bz1rK3F8MDtMMTk1ODpkb3tzd2l0Y2goY1tmKzQ+PjJdJjE3NnwwKXtjYXNlIDE2Onto
PWFbcF18MDtzd2l0Y2goaDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3I9aysxfDA7YnJlYWsg
TDE5NTg7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgocXwwKT4xJmg8PDI0Pj4yND09NDgpKXtzPTE2
MTU7YnJlYWsgTDE5NTh9c3dpdGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFr
fTtkZWZhdWx0OntzPTE2MTU7YnJlYWsgTDE5NTh9fXI9aysyfDA7YnJlYWt9O2Nhc2UgMzI6e3I9
bzticmVha307ZGVmYXVsdDp7cz0xNjE1fX19d2hpbGUoMCk7aWYoKHN8MCk9PTE2MTUpe3I9cH1l
aihtLGYpO3M9bXwwO209Y1tzPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tqPj4yXT0xNTY5
NjtjW2orND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTU2OTYsaiw5Nil9aj0oY1szOTI1XXwwKS0x
fDA7aD1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1oPj4yPj4+MD5qPj4+MCl7dD1j
W2grKGo8PDIpPj4yXXwwO2lmKCh0fDApPT0wKXticmVha311PXQ7dj1jW3M+PjJdfDA7ZHoodil8
MDt2PWx8MDt3PWNbKGNbdD4+Ml18MCkrMzI+PjJdfDA7Y2FbdyYxNV0odSxwLG8sdil8MDt1PWwr
cXwwO2lmKChyfDApPT0ob3wwKSl7eD11O3k9ZXwwO3o9Y1t5Pj4yXXwwO0E9bnwwO2NbQT4+Ml09
ejtmOShiLG4sdix4LHUsZixnKTtpPWQ7cmV0dXJufXg9bCsoci1rKXwwO3k9ZXwwO3o9Y1t5Pj4y
XXwwO0E9bnwwO2NbQT4+Ml09ejtmOShiLG4sdix4LHUsZixnKTtpPWQ7cmV0dXJufX13aGlsZSgw
KTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnbyhiLGQsZSxmLGcs
aCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTA7aj1p
O2k9aSs0OHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1q
fDA7bD1qKzE2fDA7bT1qKzI0fDA7bj1qKzMyfDA7aWYoKGNbZis0Pj4yXSYxfDApPT0wKXtvPWNb
KGNbZD4+Ml18MCkrMjQ+PjJdfDA7Y1tsPj4yXT1jW2U+PjJdO2I5W28mMzFdKGIsZCxsLGYsZyxo
JjEpO2k9ajtyZXR1cm59ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1szODI2XXwwKSE9
LTEpe2Nbaz4+Ml09MTUzMDQ7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1MzA0LGssOTYp
fWs9KGNbMzgyN118MCktMXwwO2c9Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktZz4+
Mj4+PjA+az4+PjApe2w9Y1tnKyhrPDwyKT4+Ml18MDtpZigobHwwKT09MCl7YnJlYWt9ZD1sO289
Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2w+PjJdfDA7aWYoaCl7YlpbY1tvKzI0Pj4yXSYxMjddKG4s
ZCl9ZWxzZXtiWltjW28rMjg+PjJdJjEyN10obixkKX1kPW47bz1hW2RdfDA7aWYoKG8mMSk9PTAp
e2w9bis0fDA7cD1sO3E9bDtyPW4rOHwwfWVsc2V7bD1uKzh8MDtwPWNbbD4+Ml18MDtxPW4rNHww
O3I9bH1sPWV8MDtzPXA7dD1vO3doaWxlKDEpe2lmKCh0JjEpPT0wKXt1PXF9ZWxzZXt1PWNbcj4+
Ml18MH1vPXQmMjU1O2lmKChvJjF8MCk9PTApe3Y9bz4+PjF9ZWxzZXt2PWNbcT4+Ml18MH1pZigo
c3wwKT09KHUrKHY8PDIpfDApKXticmVha31vPWNbcz4+Ml18MDt3PWNbbD4+Ml18MDtkb3tpZigo
d3wwKSE9MCl7eD13KzI0fDA7eT1jW3g+PjJdfDA7aWYoKHl8MCk9PShjW3crMjg+PjJdfDApKXt6
PWJfW2NbKGNbdz4+Ml18MCkrNTI+PjJdJjMxXSh3LG8pfDB9ZWxzZXtjW3g+PjJdPXkrNDtjW3k+
PjJdPW87ej1vfWlmKCh6fDApIT0tMSl7YnJlYWt9Y1tsPj4yXT0wfX13aGlsZSgwKTtzPXMrNHww
O3Q9YVtkXXwwfWNbYj4+Ml09Y1tsPj4yXTtlZShuKTtpPWo7cmV0dXJufX13aGlsZSgwKTtqPWJP
KDQpfDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlvbiBncChiLGUsZixnLGgsaixrKXti
PWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTA7bD1pO2k9aSs0OHwwO209bHww
O249bCsxNnwwO289bCszMnwwO3A9a3wwO2s9Y1twPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7
Y1tuPj4yXT0xNTY4ODtjW24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7ZFcoMTU2ODgsbiw5Nil9bj0o
Y1szOTIzXXwwKS0xfDA7cT1jW2srOD4+Ml18MDtpZigoY1trKzEyPj4yXXwwKS1xPj4yPj4+MDw9
bj4+PjApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1rPWNbcSsobjw8Mik+
PjJdfDA7aWYoKGt8MCk9PTApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1y
PWs7cz1jW3A+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0xKXtjW20+PjJdPTE1MzA0O2NbbSs0Pj4y
XT0xMjtjW20rOD4+Ml09MDtkVygxNTMwNCxtLDk2KX1tPShjWzM4MjddfDApLTF8MDtwPWNbcys4
Pj4yXXwwO2lmKChjW3MrMTI+PjJdfDApLXA+PjI+Pj4wPD1tPj4+MCl7dD1iTyg0KXwwO3U9dDtr
cSh1KTtibCh0fDAsODE3NiwxMzQpfXM9Y1twKyhtPDwyKT4+Ml18MDtpZigoc3wwKT09MCl7dD1i
Tyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXQ9cztiWltjWyhjW3M+PjJdfDApKzIw
Pj4yXSYxMjddKG8sdCk7dT1vO209bztwPWRbbV18MDtpZigocCYxfDApPT0wKXt2PXA+Pj4xfWVs
c2V7dj1jW28rND4+Ml18MH1kb3tpZigodnwwKT09MCl7cD1jWyhjW2s+PjJdfDApKzQ4Pj4yXXww
O2NhW3AmMTVdKHIsYixmLGcpfDA7Y1tqPj4yXT1nKyhmLWI8PDIpfWVsc2V7Y1tqPj4yXT1nO3A9
YVtiXXwwO3N3aXRjaChwPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7bj1iX1tjWyhjW2s+PjJd
fDApKzQ0Pj4yXSYzMV0ocixwKXwwO3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCs0O2NbcD4+Ml09bjt3
PWIrMXwwO2JyZWFrfTtkZWZhdWx0Ont3PWJ9fUwyMDUwOmRve2lmKChmLXd8MCk+MSl7aWYoKGFb
d118MCkhPTQ4KXt4PXc7YnJlYWt9bj13KzF8MDtzd2l0Y2goYVtuXXwwKXtjYXNlIDEyMDpjYXNl
IDg4OnticmVha307ZGVmYXVsdDp7eD13O2JyZWFrIEwyMDUwfX1wPWs7cT1iX1tjWyhjW3A+PjJd
fDApKzQ0Pj4yXSYzMV0ociw0OCl8MDt5PWNbaj4+Ml18MDtjW2o+PjJdPXkrNDtjW3k+PjJdPXE7
cT1iX1tjWyhjW3A+PjJdfDApKzQ0Pj4yXSYzMV0ocixhW25dfDApfDA7bj1jW2o+PjJdfDA7Y1tq
Pj4yXT1uKzQ7Y1tuPj4yXT1xO3g9dysyfDB9ZWxzZXt4PXd9fXdoaWxlKDApO2Rve2lmKCh4fDAp
IT0oZnwwKSl7cT1mLTF8MDtpZih4Pj4+MDxxPj4+MCl7ej14O0E9cX1lbHNle2JyZWFrfWRve3E9
YVt6XXwwO2Fbel09YVtBXXwwO2FbQV09cTt6PXorMXwwO0E9QS0xfDA7fXdoaWxlKHo+Pj4wPEE+
Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjddKHQpfDA7aWYoeD4+
PjA8Zj4+PjApe249dSsxfDA7cD1rO3k9bys0fDA7Qj1vKzh8MDtDPTA7RD0wO0U9eDt3aGlsZSgx
KXtGPShhW21dJjEpPT0wO2Rve2lmKChhWyhGP246Y1tCPj4yXXwwKStEfDBdfDApPT0wKXtHPUQ7
SD1DfWVsc2V7aWYoKEN8MCkhPShhWyhGP246Y1tCPj4yXXwwKStEfDBdfDApKXtHPUQ7SD1DO2Jy
ZWFrfUk9Y1tqPj4yXXwwO2Nbaj4+Ml09SSs0O2NbST4+Ml09cTtJPWRbbV18MDtHPShEPj4+MDwo
KChJJjF8MCk9PTA/ST4+PjE6Y1t5Pj4yXXwwKS0xfDApPj4+MCkrRHwwO0g9MH19d2hpbGUoMCk7
Rj1iX1tjWyhjW3A+PjJdfDApKzQ0Pj4yXSYzMV0ocixhW0VdfDApfDA7ST1jW2o+PjJdfDA7Y1tq
Pj4yXT1JKzQ7Y1tJPj4yXT1GO0Y9RSsxfDA7aWYoRj4+PjA8Zj4+PjApe0M9SCsxfDA7RD1HO0U9
Rn1lbHNle2JyZWFrfX19RT1nKyh4LWI8PDIpfDA7RD1jW2o+PjJdfDA7aWYoKEV8MCk9PShEfDAp
KXticmVha31DPUQtNHwwO2lmKEU+Pj4wPEM+Pj4wKXtKPUU7Sz1DfWVsc2V7YnJlYWt9ZG97Qz1j
W0o+PjJdfDA7Y1tKPj4yXT1jW0s+PjJdO2NbSz4+Ml09QztKPUorNHwwO0s9Sy00fDA7fXdoaWxl
KEo+Pj4wPEs+Pj4wKX19d2hpbGUoMCk7aWYoKGV8MCk9PShmfDApKXtMPWNbaj4+Ml18MDtjW2g+
PjJdPUw7ZFAobyk7aT1sO3JldHVybn1lbHNle0w9ZysoZS1iPDwyKXwwO2NbaD4+Ml09TDtkUChv
KTtpPWw7cmV0dXJufX1mdW5jdGlvbiBncShiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MDtrPWk7aT1pKzE2fDA7bD1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1ts
Pj4yXTtsPWt8MDttPWR8MDtkPWNbbT4+Ml18MDtpZigoZHwwKT09MCl7Y1tiPj4yXT0wO2k9azty
ZXR1cm59bj1nO2c9ZTtvPW4tZz4+MjtwPWgrMTJ8MDtoPWNbcD4+Ml18MDtxPShofDApPihvfDAp
P2gtb3wwOjA7bz1mO2g9by1nfDA7Zz1oPj4yO2Rve2lmKChofDApPjApe2lmKChiMVtjWyhjW2Q+
PjJdfDApKzQ4Pj4yXSY2M10oZCxlLGcpfDApPT0oZ3wwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+
Ml09MDtpPWs7cmV0dXJufX13aGlsZSgwKTtkb3tpZigocXwwKT4wKXtleShsLHEsaik7aWYoKGFb
bF0mMSk9PTApe3I9bCs0fDB9ZWxzZXtyPWNbbCs4Pj4yXXwwfWlmKChiMVtjWyhjW2Q+PjJdfDAp
KzQ4Pj4yXSY2M10oZCxyLHEpfDApPT0ocXwwKSl7ZWUobCk7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+
Ml09MDtlZShsKTtpPWs7cmV0dXJufX13aGlsZSgwKTtsPW4tb3wwO289bD4+Mjtkb3tpZigobHww
KT4wKXtpZigoYjFbY1soY1tkPj4yXXwwKSs0OD4+Ml0mNjNdKGQsZixvKXwwKT09KG98MCkpe2Jy
ZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7aT1rO3JldHVybn19d2hpbGUoMCk7Y1twPj4yXT0wO2Nb
Yj4+Ml09ZDtpPWs7cmV0dXJufWZ1bmN0aW9uIGdyKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrMjMyfDA7az1lO2U9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCszMnww
O249ZCsyMDB8MDtvPWQrMjA4fDA7cD1kKzIxNnwwO3E9ZCsyMjR8MDtjW2s+PjJdPTM3O2Nbays0
Pj4yXT0wO3I9aztrPXIrMXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7
dT1rfWVsc2V7YVtrXT00Mzt1PXIrMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0z
NTt2PXUrMXwwfWFbdl09MTA4O2FbdisxfDBdPTEwODt1PXYrMnwwO0wyMTE5OmRve3N3aXRjaCh0
Jjc0fDApe2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwyMTE5fWVs
c2V7YVt1XT04ODticmVhayBMMjExOX1icmVha307Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9O2Rl
ZmF1bHQ6e2FbdV09MTAwfX19d2hpbGUoMCk7dT1sfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTt0PWdiKHUsMjIsY1syOTU4XXwwLHIsKHI9aSxpPWkrMTZ8MCxjW3I+PjJdPWgsY1tyKzg+PjJd
PWoscil8MCl8MDtpPXI7cj1sK3R8MDtMMjEzMjpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2Fz
ZSAzMjp7dz1yO2JyZWFrfTtjYXNlIDE2OntqPWFbdV18MDtzd2l0Y2goajw8MjQ+PjI0KXtjYXNl
IDQ1OmNhc2UgNDM6e3c9bCsxfDA7YnJlYWsgTDIxMzI7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgo
dHwwKT4xJmo8PDI0Pj4yND09NDgpKXt4PTE3NjA7YnJlYWsgTDIxMzJ9c3dpdGNoKGFbbCsxfDBd
fDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE3NjA7YnJlYWsgTDIxMzJ9
fXc9bCsyfDA7YnJlYWt9O2RlZmF1bHQ6e3g9MTc2MH19fXdoaWxlKDApO2lmKCh4fDApPT0xNzYw
KXt3PXV9eD1tfDA7ZWoocCxmKTtncCh1LHcscix4LG4sbyxwKTtkeihjW3A+PjJdfDApfDA7Y1tx
Pj4yXT1jW2U+PjJdO2dxKGIscSx4LGNbbj4+Ml18MCxjW28+PjJdfDAsZixnKTtpPWQ7cmV0dXJu
fWZ1bmN0aW9uIGdzKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTA7ZD1pO2k9aSsxNDR8MDtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tl
Pj4yXT1jW2o+PjJdO2o9ZHwwO2s9ZCs4fDA7bD1kKzI0fDA7bT1kKzExMnwwO249ZCsxMjB8MDtv
PWQrMTI4fDA7cD1kKzEzNnwwO3E9anwwO2FbcV09YVsyMzg0XXwwO2FbcSsxfDBdPWFbMjM4NXww
XXwwO2FbcSsyfDBdPWFbMjM4NnwwXXwwO2FbcSszfDBdPWFbMjM4N3wwXXwwO2FbcSs0fDBdPWFb
MjM4OHwwXXwwO2FbcSs1fDBdPWFbMjM4OXwwXXwwO3I9aisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18
MDtpZigodCYyMDQ4fDApPT0wKXt1PXJ9ZWxzZXthW3JdPTQzO3U9aisyfDB9aWYoKHQmNTEyfDAp
PT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7dT12KzF8MDtMMjE1MDpkb3tz
d2l0Y2godCY3NHwwKXtjYXNlIDY0OnthW3VdPTExMTticmVha307Y2FzZSA4OntpZigodCYxNjM4
NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDIxNTB9ZWxzZXthW3VdPTg4O2JyZWFrIEwyMTUwfWJy
ZWFrfTtkZWZhdWx0OnthW3VdPTExN319fXdoaWxlKDApO3U9a3wwO2Rve2lmKChhWzE2MjY0XXww
KT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19
d2hpbGUoMCk7dD1nYih1LDEyLGNbMjk1OF18MCxxLChxPWksaT1pKzh8MCxjW3E+PjJdPWgscSl8
MCl8MDtpPXE7cT1rK3R8MDtMMjE2Mzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAxNjp7
aD1hW3VdfDA7c3dpdGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWsrMXwwO2JyZWFr
IEwyMTYzO2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7eD0x
Nzg1O2JyZWFrIEwyMTYzfXN3aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVh
a307ZGVmYXVsdDp7eD0xNzg1O2JyZWFrIEwyMTYzfX13PWsrMnwwO2JyZWFrfTtjYXNlIDMyOnt3
PXE7YnJlYWt9O2RlZmF1bHQ6e3g9MTc4NX19fXdoaWxlKDApO2lmKCh4fDApPT0xNzg1KXt3PXV9
eD1sfDA7ZWoobyxmKTtncCh1LHcscSx4LG0sbixvKTtkeihjW28+PjJdfDApfDA7Y1twPj4yXT1j
W2U+PjJdO2dxKGIscCx4LGNbbT4+Ml18MCxjW24+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0
aW9uIGd0KGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wO2Q9aTtpPWkrMjQwfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+
Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCszMnwwO249ZCsyMDh8MDtvPWQrMjE2fDA7cD1k
KzIyNHwwO3E9ZCsyMzJ8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3I9aztrPXIrMXwwO3M9Zis0
fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1rfWVsc2V7YVtrXT00Mzt1PXIrMnww
fWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4O2Fbdisx
fDBdPTEwODt1PXYrMnwwO0wyMTgxOmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgODp7aWYoKHQmMTYz
ODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwyMTgxfWVsc2V7YVt1XT04ODticmVhayBMMjE4MX1i
cmVha307Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTE3fX19d2hpbGUo
MCk7dT1sfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVh
a31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMjMsY1syOTU4XXwwLHIs
KHI9aSxpPWkrMTZ8MCxjW3I+PjJdPWgsY1tyKzg+PjJdPWoscil8MCl8MDtpPXI7cj1sK3R8MDtM
MjE5NDpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aj1hW3VdfDA7c3dpdGNoKGo8
PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWwrMXwwO2JyZWFrIEwyMTk0O2JyZWFrfTtkZWZh
dWx0Ont9fWlmKCEoKHR8MCk+MSZqPDwyND4+MjQ9PTQ4KSl7eD0xODEwO2JyZWFrIEwyMTk0fXN3
aXRjaChhW2wrMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xODEw
O2JyZWFrIEwyMTk0fX13PWwrMnwwO2JyZWFrfTtjYXNlIDMyOnt3PXI7YnJlYWt9O2RlZmF1bHQ6
e3g9MTgxMH19fXdoaWxlKDApO2lmKCh4fDApPT0xODEwKXt3PXV9eD1tfDA7ZWoocCxmKTtncCh1
LHcscix4LG4sbyxwKTtkeihjW3A+PjJdfDApfDA7Y1txPj4yXT1jW2U+PjJdO2dxKGIscSx4LGNb
bj4+Ml18MCxjW28+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGd1KGIsZCxlLGYsZyxq
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPStqO3ZhciBrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2Q9aTtpPWkrMzIwfDA7az1lO2U9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCs0MHwwO249
ZCs0OHwwO289ZCsyODB8MDtwPWQrMjg4fDA7cT1kKzI5NnwwO3I9ZCszMDR8MDtzPWQrMzEyfDA7
Y1trPj4yXT0zNztjW2srND4+Ml09MDt0PWs7az10KzF8MDt1PWYrNHwwO3Y9Y1t1Pj4yXXwwO2lm
KCh2JjIwNDh8MCk9PTApe3c9a31lbHNle2Fba109NDM7dz10KzJ8MH1pZigodiYxMDI0fDApPT0w
KXt4PXd9ZWxzZXthW3ddPTM1O3g9dysxfDB9dz12JjI2MDtrPXY+Pj4xNDtMMjIxMjpkb3tpZigo
d3wwKT09MjYwKXtpZigoayYxfDApPT0wKXthW3hdPTk3O3k9MDticmVha31lbHNle2FbeF09NjU7
eT0wO2JyZWFrfX1lbHNle2FbeF09NDY7dj14KzJ8MDthW3grMXwwXT00Mjtzd2l0Y2god3wwKXtj
YXNlIDI1Njp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDE7eT0xO2JyZWFrIEwyMjEyfWVsc2V7YVt2
XT02OTt5PTE7YnJlYWsgTDIyMTJ9YnJlYWt9O2Nhc2UgNDp7aWYoKGsmMXwwKT09MCl7YVt2XT0x
MDI7eT0xO2JyZWFrIEwyMjEyfWVsc2V7YVt2XT03MDt5PTE7YnJlYWsgTDIyMTJ9YnJlYWt9O2Rl
ZmF1bHQ6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAzO3k9MTticmVhayBMMjIxMn1lbHNle2Fbdl09
NzE7eT0xO2JyZWFrIEwyMjEyfX19fX13aGlsZSgwKTtrPWx8MDtjW20+PjJdPWs7ZG97aWYoKGFb
MTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0
NCwwKXwwfX13aGlsZSgwKTtsPWNbMjk1OF18MDtpZih5KXt3PWdiKGssMzAsbCx0LCh6PWksaT1p
KzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7QT13fWVsc2V7
dz1nYihrLDMwLGwsdCwoej1pLGk9aSs4fDAsaFt6Pj4zXT1qLHopfDApfDA7aT16O0E9d31kb3tp
ZigoQXwwKT4yOSl7dz0oYVsxNjI2NF18MCk9PTA7aWYoeSl7ZG97aWYodyl7aWYoKGJjKDE2MjY0
KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1naChtLGNb
Mjk1OF18MCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8
MCl8MDtpPXo7Qj1sfWVsc2V7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1sy
OTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dz1naChtLGNbMjk1OF18MCx0LCh6PWksaT1p
KzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7Qj13fXc9Y1tt
Pj4yXXwwO2lmKCh3fDApIT0wKXtDPUI7RD13O0U9dzticmVha31rWCgpO3c9Y1ttPj4yXXwwO0M9
QjtEPXc7RT13fWVsc2V7Qz1BO0Q9MDtFPWNbbT4+Ml18MH19d2hpbGUoMCk7QT1FK0N8MDtMMjI2
MTpkb3tzd2l0Y2goY1t1Pj4yXSYxNzZ8MCl7Y2FzZSAzMjp7Rj1BO2JyZWFrfTtjYXNlIDE2OntC
PWFbRV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e0Y9RSsxfDA7YnJlYWsg
TDIyNjE7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgoQ3wwKT4xJkI8PDI0Pj4yND09NDgpKXtHPTE4
NjY7YnJlYWsgTDIyNjF9c3dpdGNoKGFbRSsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFr
fTtkZWZhdWx0OntHPTE4NjY7YnJlYWsgTDIyNjF9fUY9RSsyfDA7YnJlYWt9O2RlZmF1bHQ6e0c9
MTg2Nn19fXdoaWxlKDApO2lmKChHfDApPT0xODY2KXtGPUV9ZG97aWYoKEV8MCk9PShrfDApKXtI
PW58MDtJPTA7Sj1rfWVsc2V7Rz1rSihDPDwzKXwwO3U9RztpZigoR3wwKSE9MCl7SD11O0k9dTtK
PUU7YnJlYWt9a1goKTtIPXU7ST11O0o9Y1ttPj4yXXwwfX13aGlsZSgwKTtlaihxLGYpO2d2KEos
RixBLEgsbyxwLHEpO2R6KGNbcT4+Ml18MCl8MDtxPWV8MDtjW3M+PjJdPWNbcT4+Ml07Z3Eocixz
LEgsY1tvPj4yXXwwLGNbcD4+Ml18MCxmLGcpO2c9Y1tyPj4yXXwwO2NbcT4+Ml09ZztjW2I+PjJd
PWc7aWYoKEl8MCkhPTApe2tLKEkpfWlmKChEfDApPT0wKXtpPWQ7cmV0dXJufWtLKEQpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gZ3YoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTA7bD1pO2k9aSs0OHwwO209bHwwO249bCsxNnwwO289bCsz
MnwwO3A9a3wwO2s9Y1twPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tuPj4yXT0xNTY4ODtj
W24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7ZFcoMTU2ODgsbiw5Nil9bj0oY1szOTIzXXwwKS0xfDA7
cT1jW2srOD4+Ml18MDtpZigoY1trKzEyPj4yXXwwKS1xPj4yPj4+MDw9bj4+PjApe3I9Yk8oNCl8
MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1rPWNbcSsobjw8Mik+PjJdfDA7aWYoKGt8MCk9
PTApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1yPWs7cz1jW3A+PjJdfDA7
aWYoKGNbMzgyNl18MCkhPS0xKXtjW20+PjJdPTE1MzA0O2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09
MDtkVygxNTMwNCxtLDk2KX1tPShjWzM4MjddfDApLTF8MDtwPWNbcys4Pj4yXXwwO2lmKChjW3Mr
MTI+PjJdfDApLXA+PjI+Pj4wPD1tPj4+MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3
NiwxMzQpfXM9Y1twKyhtPDwyKT4+Ml18MDtpZigoc3wwKT09MCl7dD1iTyg0KXwwO3U9dDtrcSh1
KTtibCh0fDAsODE3NiwxMzQpfXQ9cztiWltjWyhjW3M+PjJdfDApKzIwPj4yXSYxMjddKG8sdCk7
Y1tqPj4yXT1nO3U9YVtiXXwwO3N3aXRjaCh1PDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7bT1i
X1tjWyhjW2s+PjJdfDApKzQ0Pj4yXSYzMV0ocix1KXwwO3U9Y1tqPj4yXXwwO2Nbaj4+Ml09dSs0
O2NbdT4+Ml09bTt2PWIrMXwwO2JyZWFrfTtkZWZhdWx0Ont2PWJ9fW09ZjtMMjMwOTpkb3tpZigo
bS12fDApPjEpe2lmKChhW3ZdfDApIT00OCl7dz12O3g9MTkyMTticmVha311PXYrMXwwO3N3aXRj
aChhW3VdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont3PXY7eD0xOTIxO2Jy
ZWFrIEwyMzA5fX1wPWs7bj1iX1tjWyhjW3A+PjJdfDApKzQ0Pj4yXSYzMV0ociw0OCl8MDtxPWNb
aj4+Ml18MDtjW2o+PjJdPXErNDtjW3E+PjJdPW47bj12KzJ8MDtxPWJfW2NbKGNbcD4+Ml18MCkr
NDQ+PjJdJjMxXShyLGFbdV18MCl8MDt1PWNbaj4+Ml18MDtjW2o+PjJdPXUrNDtjW3U+PjJdPXE7
cT1uO3doaWxlKDEpe2lmKHE+Pj4wPj1mPj4+MCl7eT1xO3o9bjticmVhayBMMjMwOX11PWFbcV18
MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1
OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChhMyh1PDwyND4+MjR8MCxjWzI5NThdfDAp
fDApPT0wKXt5PXE7ej1uO2JyZWFrfWVsc2V7cT1xKzF8MH19fWVsc2V7dz12O3g9MTkyMX19d2hp
bGUoMCk7TDIzMjQ6ZG97aWYoKHh8MCk9PTE5MjEpe3doaWxlKDEpe3g9MDtpZih3Pj4+MD49Zj4+
PjApe3k9dzt6PXY7YnJlYWsgTDIzMjR9cT1hW3ddfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTtpZigoYkgocTw8MjQ+PjI0fDAsY1syOTU4XXwwKXwwKT09MCl7eT13O3o9djticmVha31lbHNl
e3c9dysxfDA7eD0xOTIxfX19fXdoaWxlKDApO3g9bzt3PW87dj1kW3ddfDA7aWYoKHYmMXwwKT09
MCl7QT12Pj4+MX1lbHNle0E9Y1tvKzQ+PjJdfDB9ZG97aWYoKEF8MCk9PTApe3Y9Y1tqPj4yXXww
O3U9Y1soY1trPj4yXXwwKSs0OD4+Ml18MDtjYVt1JjE1XShyLHoseSx2KXwwO2Nbaj4+Ml09KGNb
aj4+Ml18MCkrKHktejw8Mil9ZWxzZXtkb3tpZigoenwwKSE9KHl8MCkpe3Y9eS0xfDA7aWYoej4+
PjA8dj4+PjApe0I9ejtDPXZ9ZWxzZXticmVha31kb3t2PWFbQl18MDthW0JdPWFbQ118MDthW0Nd
PXY7Qj1CKzF8MDtDPUMtMXwwO313aGlsZShCPj4+MDxDPj4+MCl9fXdoaWxlKDApO3E9YjBbY1so
Y1tzPj4yXXwwKSsxNj4+Ml0mMTI3XSh0KXwwO2lmKHo+Pj4wPHk+Pj4wKXt2PXgrMXwwO3U9bys0
fDA7bj1vKzh8MDtwPWs7RD0wO0U9MDtGPXo7d2hpbGUoMSl7Rz0oYVt3XSYxKT09MDtkb3tpZigo
YVsoRz92OmNbbj4+Ml18MCkrRXwwXXwwKT4wKXtpZigoRHwwKSE9KGFbKEc/djpjW24+PjJdfDAp
K0V8MF18MCkpe0g9RTtJPUQ7YnJlYWt9Sj1jW2o+PjJdfDA7Y1tqPj4yXT1KKzQ7Y1tKPj4yXT1x
O0o9ZFt3XXwwO0g9KEU+Pj4wPCgoKEomMXwwKT09MD9KPj4+MTpjW3U+PjJdfDApLTF8MCk+Pj4w
KStFfDA7ST0wfWVsc2V7SD1FO0k9RH19d2hpbGUoMCk7Rz1iX1tjWyhjW3A+PjJdfDApKzQ0Pj4y
XSYzMV0ocixhW0ZdfDApfDA7Sj1jW2o+PjJdfDA7Y1tqPj4yXT1KKzQ7Y1tKPj4yXT1HO0c9Risx
fDA7aWYoRz4+PjA8eT4+PjApe0Q9SSsxfDA7RT1IO0Y9R31lbHNle2JyZWFrfX19Rj1nKyh6LWI8
PDIpfDA7RT1jW2o+PjJdfDA7aWYoKEZ8MCk9PShFfDApKXticmVha31EPUUtNHwwO2lmKEY+Pj4w
PEQ+Pj4wKXtLPUY7TD1EfWVsc2V7YnJlYWt9ZG97RD1jW0s+PjJdfDA7Y1tLPj4yXT1jW0w+PjJd
O2NbTD4+Ml09RDtLPUsrNHwwO0w9TC00fDA7fXdoaWxlKEs+Pj4wPEw+Pj4wKX19d2hpbGUoMCk7
TDIzNjM6ZG97aWYoeT4+PjA8Zj4+PjApe0w9aztLPXk7d2hpbGUoMSl7ej1hW0tdfDA7aWYoejw8
MjQ+PjI0PT00Nil7YnJlYWt9SD1iX1tjWyhjW0w+PjJdfDApKzQ0Pj4yXSYzMV0ocix6KXwwO3o9
Y1tqPj4yXXwwO2Nbaj4+Ml09eis0O2Nbej4+Ml09SDtIPUsrMXwwO2lmKEg+Pj4wPGY+Pj4wKXtL
PUh9ZWxzZXtNPUg7YnJlYWsgTDIzNjN9fUw9YjBbY1soY1tzPj4yXXwwKSsxMj4+Ml0mMTI3XSh0
KXwwO0g9Y1tqPj4yXXwwO2Nbaj4+Ml09SCs0O2NbSD4+Ml09TDtNPUsrMXwwfWVsc2V7TT15fX13
aGlsZSgwKTtjYVtjWyhjW2s+PjJdfDApKzQ4Pj4yXSYxNV0ocixNLGYsY1tqPj4yXXwwKXwwO3I9
KGNbaj4+Ml18MCkrKG0tTTw8Mil8MDtjW2o+PjJdPXI7aWYoKGV8MCk9PShmfDApKXtOPXI7Y1to
Pj4yXT1OO2RQKG8pO2k9bDtyZXR1cm59Tj1nKyhlLWI8PDIpfDA7Y1toPj4yXT1OO2RQKG8pO2k9
bDtyZXR1cm59ZnVuY3Rpb24gZ3coYixkLGUsZixnLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2o9K2o7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9
MCxKPTA7ZD1pO2k9aSszMjB8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1j
W2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzQwfDA7bj1kKzQ4fDA7bz1kKzI4MHwwO3A9ZCsyODh8
MDtxPWQrMjk2fDA7cj1kKzMwNHwwO3M9ZCszMTJ8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3Q9
aztrPXQrMXwwO3U9Zis0fDA7dj1jW3U+PjJdfDA7aWYoKHYmMjA0OHwwKT09MCl7dz1rfWVsc2V7
YVtrXT00Mzt3PXQrMnwwfWlmKCh2JjEwMjR8MCk9PTApe3g9d31lbHNle2Fbd109MzU7eD13KzF8
MH13PXYmMjYwO2s9dj4+PjE0O0wyMzg0OmRve2lmKCh3fDApPT0yNjApe2FbeF09NzY7dj14KzF8
MDtpZigoayYxfDApPT0wKXthW3ZdPTk3O3k9MDticmVha31lbHNle2Fbdl09NjU7eT0wO2JyZWFr
fX1lbHNle2FbeF09NDY7YVt4KzF8MF09NDI7YVt4KzJ8MF09NzY7dj14KzN8MDtzd2l0Y2god3ww
KXtjYXNlIDI1Njp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDE7eT0xO2JyZWFrIEwyMzg0fWVsc2V7
YVt2XT02OTt5PTE7YnJlYWsgTDIzODR9YnJlYWt9O2Nhc2UgNDp7aWYoKGsmMXwwKT09MCl7YVt2
XT0xMDI7eT0xO2JyZWFrIEwyMzg0fWVsc2V7YVt2XT03MDt5PTE7YnJlYWsgTDIzODR9YnJlYWt9
O2RlZmF1bHQ6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAzO3k9MTticmVhayBMMjM4NH1lbHNle2Fb
dl09NzE7eT0xO2JyZWFrIEwyMzg0fX19fX13aGlsZSgwKTtrPWx8MDtjW20+PjJdPWs7ZG97aWYo
KGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEs
MTM0NCwwKXwwfX13aGlsZSgwKTtsPWNbMjk1OF18MDtpZih5KXt3PWdiKGssMzAsbCx0LCh6PWks
aT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7QT13fWVs
c2V7dz1nYihrLDMwLGwsdCwoej1pLGk9aSs4fDAsaFt6Pj4zXT1qLHopfDApfDA7aT16O0E9d31k
b3tpZigoQXwwKT4yOSl7dz0oYVsxNjI2NF18MCk9PTA7aWYoeSl7ZG97aWYodyl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1naCht
LGNbMjk1OF18MCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWos
eil8MCl8MDtpPXo7Qj1sfWVsc2V7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9
Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dz1naChtLGNbMjk1OF18MCx0LCh6PWks
aT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7Qj13fXc9Y1ttPj4yXXwwO2lmKCh3fDApIT0w
KXtDPUI7RD13O0U9dzticmVha31rWCgpO3c9Y1ttPj4yXXwwO0M9QjtEPXc7RT13fWVsc2V7Qz1B
O0Q9MDtFPWNbbT4+Ml18MH19d2hpbGUoMCk7QT1FK0N8MDtMMjQzMzpkb3tzd2l0Y2goY1t1Pj4y
XSYxNzZ8MCl7Y2FzZSAxNjp7Qj1hW0VdfDA7c3dpdGNoKEI8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNl
IDQzOntGPUUrMXwwO2JyZWFrIEwyNDMzO2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKEN8MCk+MSZC
PDwyND4+MjQ9PTQ4KSl7Rz0yMDE4O2JyZWFrIEwyNDMzfXN3aXRjaChhW0UrMXwwXXwwKXtjYXNl
IDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7Rz0yMDE4O2JyZWFrIEwyNDMzfX1GPUUrMnww
O2JyZWFrfTtjYXNlIDMyOntGPUE7YnJlYWt9O2RlZmF1bHQ6e0c9MjAxOH19fXdoaWxlKDApO2lm
KChHfDApPT0yMDE4KXtGPUV9ZG97aWYoKEV8MCk9PShrfDApKXtIPW58MDtJPTA7Sj1rfWVsc2V7
Rz1rSihDPDwzKXwwO3U9RztpZigoR3wwKSE9MCl7SD11O0k9dTtKPUU7YnJlYWt9a1goKTtIPXU7
ST11O0o9Y1ttPj4yXXwwfX13aGlsZSgwKTtlaihxLGYpO2d2KEosRixBLEgsbyxwLHEpO2R6KGNb
cT4+Ml18MCl8MDtxPWV8MDtjW3M+PjJdPWNbcT4+Ml07Z3EocixzLEgsY1tvPj4yXXwwLGNbcD4+
Ml18MCxmLGcpO2c9Y1tyPj4yXXwwO2NbcT4+Ml09ZztjW2I+PjJdPWc7aWYoKEl8MCkhPTApe2tL
KEkpfWlmKChEfDApPT0wKXtpPWQ7cmV0dXJufWtLKEQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ3go
YixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MDtkPWk7aT1pKzIxNnwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+
PjJdPWNbaj4+Ml07aj1kfDA7az1kKzI0fDA7bD1kKzQ4fDA7bT1kKzIwMHwwO249ZCsyMDh8MDtv
PWQrMTZ8MDthW29dPWFbMjM5Ml18MDthW28rMXwwXT1hWzIzOTN8MF18MDthW28rMnwwXT1hWzIz
OTR8MF18MDthW28rM3wwXT1hWzIzOTV8MF18MDthW28rNHwwXT1hWzIzOTZ8MF18MDthW28rNXww
XT1hWzIzOTd8MF18MDtwPWt8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3E9Z2IocCwyMCxj
WzI5NThdfDAsbywobz1pLGk9aSs4fDAsY1tvPj4yXT1oLG8pfDApfDA7aT1vO289aytxfDA7TDI0
NjQ6ZG97c3dpdGNoKGNbZis0Pj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aD1hW3BdfDA7c3dpdGNoKGg8
PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntyPWsrMXwwO2JyZWFrIEwyNDY0O2JyZWFrfTtkZWZh
dWx0Ont9fWlmKCEoKHF8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7cz0yMDUxO2JyZWFrIEwyNDY0fXN3
aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7cz0yMDUx
O2JyZWFrIEwyNDY0fX1yPWsrMnwwO2JyZWFrfTtjYXNlIDMyOntyPW87YnJlYWt9O2RlZmF1bHQ6
e3M9MjA1MX19fXdoaWxlKDApO2lmKChzfDApPT0yMDUxKXtyPXB9ZWoobSxmKTtzPW18MDttPWNb
cz4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2Nbaj4+Ml09MTU2ODg7Y1tqKzQ+PjJdPTEyO2Nb
ais4Pj4yXT0wO2RXKDE1Njg4LGosOTYpfWo9KGNbMzkyM118MCktMXwwO2g9Y1ttKzg+PjJdfDA7
ZG97aWYoKGNbbSsxMj4+Ml18MCktaD4+Mj4+PjA+aj4+PjApe3Q9Y1toKyhqPDwyKT4+Ml18MDtp
ZigodHwwKT09MCl7YnJlYWt9dT10O3Y9Y1tzPj4yXXwwO2R6KHYpfDA7dj1sfDA7dz1jWyhjW3Q+
PjJdfDApKzQ4Pj4yXXwwO2NhW3cmMTVdKHUscCxvLHYpfDA7dT1sKyhxPDwyKXwwO2lmKChyfDAp
PT0ob3wwKSl7eD11O3k9ZXwwO3o9Y1t5Pj4yXXwwO0E9bnwwO2NbQT4+Ml09ejtncShiLG4sdix4
LHUsZixnKTtpPWQ7cmV0dXJufXg9bCsoci1rPDwyKXwwO3k9ZXwwO3o9Y1t5Pj4yXXwwO0E9bnww
O2NbQT4+Ml09ejtncShiLG4sdix4LHUsZixnKTtpPWQ7cmV0dXJufX13aGlsZSgwKTtkPWJPKDQp
fDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBneShhKXthPWF8MDtyZXR1cm4gMn1m
dW5jdGlvbiBneihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBnQShhKXth
PWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBnQihhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTA7aj1pO2k9aSsx
NnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1lO2U9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHwwO2Nbaz4+Ml09
Y1tkPj4yXTtjW2w+PjJdPWNbZT4+Ml07Z0QoYSxiLGssbCxmLGcsaCwyMzc2LDIzODQpO2k9ajty
ZXR1cm59ZnVuY3Rpb24gZ0MoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7az1p
O2k9aSsxNnwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1m
O2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWt8MDttPWsrOHwwO249
ZCs4fDA7bz1iMFtjWyhjW24+PjJdfDApKzIwPj4yXSYxMjddKG4pfDA7Y1tsPj4yXT1jW2U+PjJd
O2NbbT4+Ml09Y1tmPj4yXTtmPW87ZT1hW29dfDA7aWYoKGUmMSk9PTApe3A9ZisxfDA7cT1mKzF8
MH1lbHNle2Y9Y1tvKzg+PjJdfDA7cD1mO3E9Zn1mPWUmMjU1O2lmKChmJjF8MCk9PTApe3I9Zj4+
PjF9ZWxzZXtyPWNbbys0Pj4yXXwwfWdEKGIsZCxsLG0sZyxoLGoscSxwK3J8MCk7aT1rO3JldHVy
bn1mdW5jdGlvbiBnRChkLGUsZixnLGgsaixrLGwsbSl7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxW
PTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MDtuPWk7aT1pKzQ4
fDA7bz1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tvPj4yXTtvPWc7Zz1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW28+PjJdO289bnwwO3A9bisxNnwwO3E9bisyNHww
O3I9biszMnwwO3M9bis0MHwwO2VqKHAsaCk7dD1wfDA7cD1jW3Q+PjJdfDA7aWYoKGNbMzkyNF18
MCkhPS0xKXtjW28+PjJdPTE1Njk2O2Nbbys0Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNTY5Nixv
LDk2KX1vPShjWzM5MjVdfDApLTF8MDt1PWNbcCs4Pj4yXXwwO2Rve2lmKChjW3ArMTI+PjJdfDAp
LXU+PjI+Pj4wPm8+Pj4wKXt2PWNbdSsobzw8Mik+PjJdfDA7aWYoKHZ8MCk9PTApe2JyZWFrfXc9
djt4PWNbdD4+Ml18MDtkeih4KXwwO2Nbaj4+Ml09MDt4PWZ8MDtMMjUwNjpkb3tpZigobHwwKT09
KG18MCkpe3k9MjE0MX1lbHNle3o9Z3wwO0E9djtCPXYrOHwwO0M9djtEPWU7RT1yfDA7Rj1zfDA7
Rz1xfDA7SD1sO0k9MDtMMjUwODp3aGlsZSgxKXtKPUk7d2hpbGUoMSl7aWYoKEp8MCkhPTApe3k9
MjE0MTticmVhayBMMjUwNn1LPWNbeD4+Ml18MDtkb3tpZigoS3wwKT09MCl7TD0wfWVsc2V7aWYo
KGNbSysxMj4+Ml18MCkhPShjW0srMTY+PjJdfDApKXtMPUs7YnJlYWt9aWYoKGIwW2NbKGNbSz4+
Ml18MCkrMzY+PjJdJjEyN10oSyl8MCkhPS0xKXtMPUs7YnJlYWt9Y1t4Pj4yXT0wO0w9MH19d2hp
bGUoMCk7Sz0oTHwwKT09MDtNPWNbej4+Ml18MDtMMjUxODpkb3tpZigoTXwwKT09MCl7eT0yMDk0
fWVsc2V7ZG97aWYoKGNbTSsxMj4+Ml18MCk9PShjW00rMTY+PjJdfDApKXtpZigoYjBbY1soY1tN
Pj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwKSE9LTEpe2JyZWFrfWNbej4+Ml09MDt5PTIwOTQ7YnJl
YWsgTDI1MTh9fXdoaWxlKDApO2lmKEspe049TX1lbHNle3k9MjA5NTticmVhayBMMjUwOH19fXdo
aWxlKDApO2lmKCh5fDApPT0yMDk0KXt5PTA7aWYoSyl7eT0yMDk1O2JyZWFrIEwyNTA4fWVsc2V7
Tj0wfX1pZigoYjFbY1soY1tBPj4yXXwwKSszNj4+Ml0mNjNdKHcsYVtIXXwwLDApfDApPDwyND4+
MjQ9PTM3KXt5PTIwOTg7YnJlYWt9TT1hW0hdfDA7aWYoTTw8MjQ+PjI0Pi0xKXtPPWNbQj4+Ml18
MDtpZigoYltPKyhNPDwyND4+MjQ8PDEpPj4xXSY4MTkyKSE9MCl7UD1IO3k9MjEwOTticmVha319
UT1MKzEyfDA7TT1jW1E+PjJdfDA7Uj1MKzE2fDA7aWYoKE18MCk9PShjW1I+PjJdfDApKXtTPShi
MFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYxMjddKEwpfDApJjI1NX1lbHNle1M9YVtNXXwwfU09Yl9b
Y1soY1tDPj4yXXwwKSsxMj4+Ml0mMzFdKHcsUyl8MDtpZihNPDwyND4+MjQ9PShiX1tjWyhjW0M+
PjJdfDApKzEyPj4yXSYzMV0odyxhW0hdfDApfDApPDwyND4+MjQpe3k9MjEzNjticmVha31jW2o+
PjJdPTQ7Sj00fUwyNTM2OmRve2lmKCh5fDApPT0yMTM2KXt5PTA7Sj1jW1E+PjJdfDA7aWYoKEp8
MCk9PShjW1I+PjJdfDApKXtNPWNbKGNbTD4+Ml18MCkrNDA+PjJdfDA7YjBbTSYxMjddKEwpfDB9
ZWxzZXtjW1E+PjJdPUorMX1UPUgrMXwwfWVsc2UgaWYoKHl8MCk9PTIwOTgpe3k9MDtKPUgrMXww
O2lmKChKfDApPT0obXwwKSl7eT0yMDk5O2JyZWFrIEwyNTA4fU09YjFbY1soY1tBPj4yXXwwKSsz
Nj4+Ml0mNjNdKHcsYVtKXXwwLDApfDA7c3dpdGNoKE08PDI0Pj4yNCl7Y2FzZSA2OTpjYXNlIDQ4
OntVPUgrMnwwO2lmKChVfDApPT0obXwwKSl7eT0yMTAyO2JyZWFrIEwyNTA4fVY9TTtXPWIxW2Nb
KGNbQT4+Ml18MCkrMzY+PjJdJjYzXSh3LGFbVV18MCwwKXwwO1g9VTticmVha307ZGVmYXVsdDp7
Vj0wO1c9TTtYPUp9fUo9Y1soY1tEPj4yXXwwKSszNj4+Ml18MDtjW0U+PjJdPUw7Y1tGPj4yXT1O
O2I3W0omN10ocSxlLHIscyxoLGosayxXLFYpO2NbeD4+Ml09Y1tHPj4yXTtUPVgrMXwwfWVsc2Ug
aWYoKHl8MCk9PTIxMDkpe3doaWxlKDEpe3k9MDtKPVArMXwwO2lmKChKfDApPT0obXwwKSl7WT1t
O2JyZWFrfU09YVtKXXwwO2lmKE08PDI0Pj4yNDw9LTEpe1k9SjticmVha31pZigoYltPKyhNPDwy
ND4+MjQ8PDEpPj4xXSY4MTkyKT09MCl7WT1KO2JyZWFrfWVsc2V7UD1KO3k9MjEwOX19Sz1MO0o9
Tjt3aGlsZSgxKXtkb3tpZigoS3wwKT09MCl7Wj0wfWVsc2V7aWYoKGNbSysxMj4+Ml18MCkhPShj
W0srMTY+PjJdfDApKXtaPUs7YnJlYWt9aWYoKGIwW2NbKGNbSz4+Ml18MCkrMzY+PjJdJjEyN10o
Syl8MCkhPS0xKXtaPUs7YnJlYWt9Y1t4Pj4yXT0wO1o9MH19d2hpbGUoMCk7TT0oWnwwKT09MDtk
b3tpZigoSnwwKT09MCl7eT0yMTIyfWVsc2V7aWYoKGNbSisxMj4+Ml18MCkhPShjW0orMTY+PjJd
fDApKXtpZihNKXtfPUo7YnJlYWt9ZWxzZXtUPVk7YnJlYWsgTDI1MzZ9fWlmKChiMFtjWyhjW0o+
PjJdfDApKzM2Pj4yXSYxMjddKEopfDApPT0tMSl7Y1t6Pj4yXT0wO3k9MjEyMjticmVha31lbHNl
e2lmKE1eKEp8MCk9PTApe189SjticmVha31lbHNle1Q9WTticmVhayBMMjUzNn19fX13aGlsZSgw
KTtpZigoeXwwKT09MjEyMil7eT0wO2lmKE0pe1Q9WTticmVhayBMMjUzNn1lbHNle189MH19VT1a
KzEyfDA7JD1jW1U+PjJdfDA7YWE9WisxNnwwO2lmKCgkfDApPT0oY1thYT4+Ml18MCkpe2FiPShi
MFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFopfDApJjI1NX1lbHNle2FiPWFbJF18MH1pZihh
Yjw8MjQ+PjI0PD0tMSl7VD1ZO2JyZWFrIEwyNTM2fWlmKChiWyhjW0I+PjJdfDApKyhhYjw8MjQ+
PjI0PDwxKT4+MV0mODE5Mik9PTApe1Q9WTticmVhayBMMjUzNn0kPWNbVT4+Ml18MDtpZigoJHww
KT09KGNbYWE+PjJdfDApKXthYT1jWyhjW1o+PjJdfDApKzQwPj4yXXwwO2IwW2FhJjEyN10oWil8
MDtLPVo7Sj1fO2NvbnRpbnVlfWVsc2V7Y1tVPj4yXT0kKzE7Sz1aO0o9Xztjb250aW51ZX19fX13
aGlsZSgwKTtpZigoVHwwKT09KG18MCkpe3k9MjE0MTticmVhayBMMjUwNn1IPVQ7ST1jW2o+PjJd
fDB9aWYoKHl8MCk9PTIwOTkpe2Nbaj4+Ml09NDthYz1MO2JyZWFrfWVsc2UgaWYoKHl8MCk9PTIx
MDIpe2Nbaj4+Ml09NDthYz1MO2JyZWFrfWVsc2UgaWYoKHl8MCk9PTIwOTUpe2Nbaj4+Ml09NDth
Yz1MO2JyZWFrfX19d2hpbGUoMCk7aWYoKHl8MCk9PTIxNDEpe2FjPWNbeD4+Ml18MH13PWZ8MDtk
b3tpZigoYWN8MCkhPTApe2lmKChjW2FjKzEyPj4yXXwwKSE9KGNbYWMrMTY+PjJdfDApKXticmVh
a31pZigoYjBbY1soY1thYz4+Ml18MCkrMzY+PjJdJjEyN10oYWMpfDApIT0tMSl7YnJlYWt9Y1t3
Pj4yXT0wfX13aGlsZSgwKTt4PWNbdz4+Ml18MDt2PSh4fDApPT0wO0k9Z3wwO0g9Y1tJPj4yXXww
O0wyNTk0OmRve2lmKChIfDApPT0wKXt5PTIxNTF9ZWxzZXtkb3tpZigoY1tIKzEyPj4yXXwwKT09
KGNbSCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0g+PjJdfDApKzM2Pj4yXSYxMjddKEgpfDApIT0t
MSl7YnJlYWt9Y1tJPj4yXT0wO3k9MjE1MTticmVhayBMMjU5NH19d2hpbGUoMCk7aWYoIXYpe2Jy
ZWFrfWFkPWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO2Rve2lmKCh5fDApPT0y
MTUxKXtpZih2KXticmVha31hZD1kfDA7Y1thZD4+Ml09eDtpPW47cmV0dXJufX13aGlsZSgwKTtj
W2o+PjJdPWNbaj4+Ml18MjthZD1kfDA7Y1thZD4+Ml09eDtpPW47cmV0dXJufX13aGlsZSgwKTtu
PWJPKDQpfDA7a3Eobik7YmwobnwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnRShhLGIsZCxlLGYsZyxo
KXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7aj1pO2k9aSszMnwwO2s9ZDtk
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1lO2U9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHwwO209aisyNHwwO2VqKG0sZik7
Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJdPTE1Njk2O2NbbCs0
Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVdfDApLTF8MDtuPWNb
bSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLW4+PjI+Pj4wPmw+Pj4wKXtvPWNbbisobDw8
Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztvPWNbZj4+Ml18MDtkeihvKXwwO289Y1tl
Pj4yXXwwO3E9Yis4fDA7cj1iMFtjW2NbcT4+Ml0+PjJdJjEyN10ocSl8MDtjW2s+PjJdPW87bz0o
ZnEoZCxrLHIscisxNjh8MCxwLGcsMCl8MCktcnwwO2lmKChvfDApPj0xNjgpe3M9ZHwwO3Q9Y1tz
Pj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufWNbaCsyND4+Ml09KChvfDApLzEyfDB8
MCklN3wwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufX13aGls
ZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnRihhLGIsZCxl
LGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7aj1pO2k9aSszMnww
O2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1lO2U9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHwwO209aisyNHwwO2Vq
KG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJdPTE1Njk2
O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVdfDApLTF8
MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLW4+PjI+Pj4wPmw+Pj4wKXtvPWNb
bisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztvPWNbZj4+Ml18MDtkeihvKXww
O289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjWyhjW3E+PjJdfDApKzQ+PjJdJjEyN10ocSl8MDtj
W2s+PjJdPW87bz0oZnEoZCxrLHIscisyODh8MCxwLGcsMCl8MCktcnwwO2lmKChvfDApPj0yODgp
e3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufWNbaCsxNj4+Ml09
KChvfDApLzEyfDB8MCklMTJ8MDtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1q
O3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGopO2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rp
b24gZ0coYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDtiPWk7aT1p
KzMyfDA7aj1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tqPj4yXTtqPWU7ZT1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9YnwwO2s9Yis4fDA7bD1iKzI0
fDA7ZWoobCxmKTtmPWx8MDtsPWNbZj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbaz4+Ml09
MTU2OTY7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1Njk2LGssOTYpfWs9KGNbMzkyNV18
MCktMXwwO209Y1tsKzg+PjJdfDA7ZG97aWYoKGNbbCsxMj4+Ml18MCktbT4+Mj4+PjA+az4+PjAp
e249Y1ttKyhrPDwyKT4+Ml18MDtpZigobnwwKT09MCl7YnJlYWt9bz1uO249Y1tmPj4yXXwwO2R6
KG4pfDA7Y1tqPj4yXT1jW2U+PjJdO249Z0woZCxqLGcsbyw0KXwwO2lmKChjW2c+PjJdJjR8MCkh
PTApe3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXwwO2Nbcj4+Ml09cTtpPWI7cmV0dXJufWlmKChufDAp
PDY5KXtzPW4rMmUzfDB9ZWxzZXtzPShuLTY5fDApPj4+MDwzMT9uKzE5MDB8MDpufWNbaCsyMD4+
Ml09cy0xOTAwO3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXwwO2Nbcj4+Ml09cTtpPWI7cmV0dXJufX13
aGlsZSgwKTtiPWJPKDQpfDA7a3EoYik7YmwoYnwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnSChkLGUs
ZixnLGgpe2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTA7ZD1pO2o9ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbaj4+Ml07aj1lfDA7ZT1mfDA7Zj1oKzh8MDtMMjY1Mjp3aGls
ZSgxKXtoPWNbaj4+Ml18MDtkb3tpZigoaHwwKT09MCl7az0wfWVsc2V7aWYoKGNbaCsxMj4+Ml18
MCkhPShjW2grMTY+PjJdfDApKXtrPWg7YnJlYWt9aWYoKGIwW2NbKGNbaD4+Ml18MCkrMzY+PjJd
JjEyN10oaCl8MCk9PS0xKXtjW2o+PjJdPTA7az0wO2JyZWFrfWVsc2V7az1jW2o+PjJdfDA7YnJl
YWt9fX13aGlsZSgwKTtoPShrfDApPT0wO2w9Y1tlPj4yXXwwO0wyNjYxOmRve2lmKChsfDApPT0w
KXttPTIyMDd9ZWxzZXtkb3tpZigoY1tsKzEyPj4yXXwwKT09KGNbbCsxNj4+Ml18MCkpe2lmKChi
MFtjWyhjW2w+PjJdfDApKzM2Pj4yXSYxMjddKGwpfDApIT0tMSl7YnJlYWt9Y1tlPj4yXT0wO209
MjIwNzticmVhayBMMjY2MX19d2hpbGUoMCk7aWYoaCl7bj1sO289MH1lbHNle3A9bDtxPTA7YnJl
YWsgTDI2NTJ9fX13aGlsZSgwKTtpZigobXwwKT09MjIwNyl7bT0wO2lmKGgpe3A9MDtxPTE7YnJl
YWt9ZWxzZXtuPTA7bz0xfX1sPWNbaj4+Ml18MDtyPWNbbCsxMj4+Ml18MDtpZigocnwwKT09KGNb
bCsxNj4+Ml18MCkpe3M9KGIwW2NbKGNbbD4+Ml18MCkrMzY+PjJdJjEyN10obCl8MCkmMjU1fWVs
c2V7cz1hW3JdfDB9aWYoczw8MjQ+PjI0PD0tMSl7cD1uO3E9bzticmVha31pZigoYlsoY1tmPj4y
XXwwKSsoczw8MjQ+PjI0PDwxKT4+MV0mODE5Mik9PTApe3A9bjtxPW87YnJlYWt9cj1jW2o+PjJd
fDA7bD1yKzEyfDA7dD1jW2w+PjJdfDA7aWYoKHR8MCk9PShjW3IrMTY+PjJdfDApKXt1PWNbKGNb
cj4+Ml18MCkrNDA+PjJdfDA7YjBbdSYxMjddKHIpfDA7Y29udGludWV9ZWxzZXtjW2w+PjJdPXQr
MTtjb250aW51ZX19bz1jW2o+PjJdfDA7ZG97aWYoKG98MCk9PTApe3Y9MH1lbHNle2lmKChjW28r
MTI+PjJdfDApIT0oY1tvKzE2Pj4yXXwwKSl7dj1vO2JyZWFrfWlmKChiMFtjWyhjW28+PjJdfDAp
KzM2Pj4yXSYxMjddKG8pfDApPT0tMSl7Y1tqPj4yXT0wO3Y9MDticmVha31lbHNle3Y9Y1tqPj4y
XXwwO2JyZWFrfX19d2hpbGUoMCk7aj0odnwwKT09MDtkb3tpZihxKXttPTIyMjZ9ZWxzZXtpZigo
Y1twKzEyPj4yXXwwKSE9KGNbcCsxNj4+Ml18MCkpe2lmKCEoal4ocHwwKT09MCkpe2JyZWFrfWk9
ZDtyZXR1cm59aWYoKGIwW2NbKGNbcD4+Ml18MCkrMzY+PjJdJjEyN10ocCl8MCk9PS0xKXtjW2U+
PjJdPTA7bT0yMjI2O2JyZWFrfWlmKCFqKXticmVha31pPWQ7cmV0dXJufX13aGlsZSgwKTtkb3tp
ZigobXwwKT09MjIyNil7aWYoail7YnJlYWt9aT1kO3JldHVybn19d2hpbGUoMCk7Y1tnPj4yXT1j
W2c+PjJdfDI7aT1kO3JldHVybn1mdW5jdGlvbiBnSShiLGQsZSxmLGcsaCxqLGssbCl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0w
LFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9
MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTA7
bD1pO2k9aSszMjh8MDttPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW20+PjJd
O209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1sfDA7bj1sKzh8
MDtvPWwrMTZ8MDtwPWwrMjR8MDtxPWwrMzJ8MDtyPWwrNDB8MDtzPWwrNDh8MDt0PWwrNTZ8MDt1
PWwrNjR8MDt2PWwrNzJ8MDt3PWwrODB8MDt4PWwrODh8MDt5PWwrOTZ8MDt6PWwrMTEyfDA7QT1s
KzEyMHwwO0I9bCsxMjh8MDtDPWwrMTM2fDA7RD1sKzE0NHwwO0U9bCsxNTJ8MDtGPWwrMTYwfDA7
Rz1sKzE2OHwwO0g9bCsxNzZ8MDtJPWwrMTg0fDA7Sj1sKzE5MnwwO0s9bCsyMDB8MDtMPWwrMjA4
fDA7TT1sKzIxNnwwO049bCsyMjR8MDtPPWwrMjMyfDA7UD1sKzI0MHwwO1E9bCsyNDh8MDtSPWwr
MjU2fDA7Uz1sKzI2NHwwO1Q9bCsyNzJ8MDtVPWwrMjgwfDA7Vj1sKzI4OHwwO1c9bCsyOTZ8MDtY
PWwrMzA0fDA7WT1sKzMxMnwwO1o9bCszMjB8MDtjW2g+PjJdPTA7ZWooeixnKTtfPXp8MDt6PWNb
Xz4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbeT4+Ml09MTU2OTY7Y1t5KzQ+PjJdPTEyO2Nb
eSs4Pj4yXT0wO2RXKDE1Njk2LHksOTYpfXk9KGNbMzkyNV18MCktMXwwOyQ9Y1t6Kzg+PjJdfDA7
ZG97aWYoKGNbeisxMj4+Ml18MCktJD4+Mj4+PjA+eT4+PjApe2FhPWNbJCsoeTw8Mik+PjJdfDA7
aWYoKGFhfDApPT0wKXticmVha31hYj1hYTthYT1jW18+PjJdfDA7ZHooYWEpfDA7TDI3MDk6ZG97
c3dpdGNoKGs8PDI0Pj4yNHwwKXtjYXNlIDcyOntjW3U+PjJdPWNbZj4+Ml07YWE9Z0woZSx1LGgs
YWIsMil8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAmKGFhfDApPDI0KXtjW2orOD4+Ml09
YWE7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFjfDQ7YnJlYWsgTDI3MDl9YnJlYWt9O2Nhc2Ug
OTc6Y2FzZSA2NTp7YWM9Y1tmPj4yXXwwO2FhPWQrOHwwO2FkPWIwW2NbY1thYT4+Ml0+PjJdJjEy
N10oYWEpfDA7Y1t4Pj4yXT1hYzthYz0oZnEoZSx4LGFkLGFkKzE2OHwwLGFiLGgsMCl8MCktYWR8
MDtpZigoYWN8MCk+PTE2OCl7YnJlYWsgTDI3MDl9Y1tqKzI0Pj4yXT0oKGFjfDApLzEyfDB8MCkl
N3wwO2JyZWFrfTtjYXNlIDEwOTp7Y1tyPj4yXT1jW2Y+PjJdO2FjPShnTChlLHIsaCxhYiwyKXww
KS0xfDA7YWQ9Y1toPj4yXXwwO2lmKChhZCY0fDApPT0wJihhY3wwKTwxMil7Y1tqKzE2Pj4yXT1h
YzticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVha307Y2FzZSAx
MjE6e2Nbbj4+Ml09Y1tmPj4yXTthZD1nTChlLG4saCxhYiw0KXwwO2lmKChjW2g+PjJdJjR8MCkh
PTApe2JyZWFrIEwyNzA5fWlmKChhZHwwKTw2OSl7YWU9YWQrMmUzfDB9ZWxzZXthZT0oYWQtNjl8
MCk+Pj4wPDMxP2FkKzE5MDB8MDphZH1jW2orMjA+PjJdPWFlLTE5MDA7YnJlYWt9O2Nhc2UgOTg6
Y2FzZSA2NjpjYXNlIDEwNDp7YWQ9Y1tmPj4yXXwwO2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+PjJd
fDApKzQ+PjJdJjEyN10oYWMpfDA7Y1t3Pj4yXT1hZDthZD0oZnEoZSx3LGFhLGFhKzI4OHwwLGFi
LGgsMCl8MCktYWF8MDtpZigoYWR8MCk+PTI4OCl7YnJlYWsgTDI3MDl9Y1tqKzE2Pj4yXT0oKGFk
fDApLzEyfDB8MCklMTJ8MDticmVha307Y2FzZSA3Mzp7YWQ9ais4fDA7Y1t0Pj4yXT1jW2Y+PjJd
O2FhPWdMKGUsdCxoLGFiLDIpfDA7YWM9Y1toPj4yXXwwO2Rve2lmKChhYyY0fDApPT0wKXtpZigo
YWEtMXwwKT4+PjA+PTEyKXticmVha31jW2FkPj4yXT1hYTticmVhayBMMjcwOX19d2hpbGUoMCk7
Y1toPj4yXT1hY3w0O2JyZWFrfTtjYXNlIDEwNjp7Y1tzPj4yXT1jW2Y+PjJdO2FhPWdMKGUscyxo
LGFiLDMpfDA7YWQ9Y1toPj4yXXwwO2lmKChhZCY0fDApPT0wJihhYXwwKTwzNjYpe2NbaisyOD4+
Ml09YWE7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFkfDQ7YnJlYWsgTDI3MDl9YnJlYWt9O2Nh
c2UgNjg6e2FkPWV8MDtjW0U+PjJdPWNbYWQ+PjJdO2NbRj4+Ml09Y1tmPj4yXTtnRChELGQsRSxG
LGcsaCxqLDIzNjgsMjM3Nik7Y1thZD4+Ml09Y1tEPj4yXTticmVha307Y2FzZSA4NDp7YWQ9ZXww
O2NbUz4+Ml09Y1thZD4+Ml07Y1tUPj4yXT1jW2Y+PjJdO2dEKFIsZCxTLFQsZyxoLGosMjMyOCwy
MzM2KTtjW2FkPj4yXT1jW1I+PjJdO2JyZWFrfTtjYXNlIDExOTp7Y1tvPj4yXT1jW2Y+PjJdO2Fk
PWdMKGUsbyxoLGFiLDEpfDA7YWE9Y1toPj4yXXwwO2lmKChhYSY0fDApPT0wJihhZHwwKTw3KXtj
W2orMjQ+PjJdPWFkO2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hYXw0O2JyZWFrIEwyNzA5fWJy
ZWFrfTtjYXNlIDcwOnthYT1lfDA7Y1tIPj4yXT1jW2FhPj4yXTtjW0k+PjJdPWNbZj4+Ml07Z0Qo
RyxkLEgsSSxnLGgsaiwyMzYwLDIzNjgpO2NbYWE+PjJdPWNbRz4+Ml07YnJlYWt9O2Nhc2UgODk6
e2NbbT4+Ml09Y1tmPj4yXTthYT1nTChlLG0saCxhYiw0KXwwO2lmKChjW2g+PjJdJjR8MCkhPTAp
e2JyZWFrIEwyNzA5fWNbaisyMD4+Ml09YWEtMTkwMDticmVha307Y2FzZSAzNzp7Y1taPj4yXT1j
W2Y+PjJdO2dLKDAsZSxaLGgsYWIpO2JyZWFrfTtjYXNlIDExNDp7YWE9ZXwwO2NbTT4+Ml09Y1th
YT4+Ml07Y1tOPj4yXT1jW2Y+PjJdO2dEKEwsZCxNLE4sZyxoLGosMjM0NCwyMzU1KTtjW2FhPj4y
XT1jW0w+PjJdO2JyZWFrfTtjYXNlIDgyOnthYT1lfDA7Y1tQPj4yXT1jW2FhPj4yXTtjW1E+PjJd
PWNbZj4+Ml07Z0QoTyxkLFAsUSxnLGgsaiwyMzM2LDIzNDEpO2NbYWE+PjJdPWNbTz4+Ml07YnJl
YWt9O2Nhc2UgOTk6e2FhPWQrOHwwO2FkPWIwW2NbKGNbYWE+PjJdfDApKzEyPj4yXSYxMjddKGFh
KXwwO2FhPWV8MDtjW0I+PjJdPWNbYWE+PjJdO2NbQz4+Ml09Y1tmPj4yXTthZj1hZDthZz1hW2Fk
XXwwO2lmKChhZyYxKT09MCl7YWg9YWYrMXwwO2FpPWFmKzF8MH1lbHNle2FmPWNbYWQrOD4+Ml18
MDthaD1hZjthaT1hZn1hZj1hZyYyNTU7aWYoKGFmJjF8MCk9PTApe2FqPWFmPj4+MX1lbHNle2Fq
PWNbYWQrND4+Ml18MH1nRChBLGQsQixDLGcsaCxqLGFpLGFoK2FqfDApO2NbYWE+PjJdPWNbQT4+
Ml07YnJlYWt9O2Nhc2UgODM6e2NbcD4+Ml09Y1tmPj4yXTthYT1nTChlLHAsaCxhYiwyKXwwO2Fk
PWNbaD4+Ml18MDtpZigoYWQmNHwwKT09MCYoYWF8MCk8NjEpe2Nbaj4+Ml09YWE7YnJlYWsgTDI3
MDl9ZWxzZXtjW2g+PjJdPWFkfDQ7YnJlYWsgTDI3MDl9YnJlYWt9O2Nhc2UgNzc6e2NbcT4+Ml09
Y1tmPj4yXTthZD1nTChlLHEsaCxhYiwyKXwwO2FhPWNbaD4+Ml18MDtpZigoYWEmNHwwKT09MCYo
YWR8MCk8NjApe2Nbais0Pj4yXT1hZDticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWF8NDticmVh
ayBMMjcwOX1icmVha307Y2FzZSAxMTA6Y2FzZSAxMTY6e2NbSj4+Ml09Y1tmPj4yXTtnSCgwLGUs
SixoLGFiKTticmVha307Y2FzZSAxMTI6e2NbSz4+Ml09Y1tmPj4yXTtnSihkLGorOHwwLGUsSyxo
LGFiKTticmVha307Y2FzZSAxMjA6e2FhPWNbKGNbZD4+Ml18MCkrMjA+PjJdfDA7Y1tVPj4yXT1j
W2U+PjJdO2NbVj4+Ml09Y1tmPj4yXTtiWFthYSYxMjddKGIsZCxVLFYsZyxoLGopO2k9bDtyZXR1
cm59O2Nhc2UgODg6e2FhPWQrOHwwO2FkPWIwW2NbKGNbYWE+PjJdfDApKzI0Pj4yXSYxMjddKGFh
KXwwO2FhPWV8MDtjW1g+PjJdPWNbYWE+PjJdO2NbWT4+Ml09Y1tmPj4yXTthZj1hZDthZz1hW2Fk
XXwwO2lmKChhZyYxKT09MCl7YWs9YWYrMXwwO2FsPWFmKzF8MH1lbHNle2FmPWNbYWQrOD4+Ml18
MDthaz1hZjthbD1hZn1hZj1hZyYyNTU7aWYoKGFmJjF8MCk9PTApe2FtPWFmPj4+MX1lbHNle2Ft
PWNbYWQrND4+Ml18MH1nRChXLGQsWCxZLGcsaCxqLGFsLGFrK2FtfDApO2NbYWE+PjJdPWNbVz4+
Ml07YnJlYWt9O2Nhc2UgMTAwOmNhc2UgMTAxOnthYT1qKzEyfDA7Y1t2Pj4yXT1jW2Y+PjJdO2Fk
PWdMKGUsdixoLGFiLDIpfDA7YWY9Y1toPj4yXXwwO2Rve2lmKChhZiY0fDApPT0wKXtpZigoYWQt
MXwwKT4+PjA+PTMxKXticmVha31jW2FhPj4yXT1hZDticmVhayBMMjcwOX19d2hpbGUoMCk7Y1to
Pj4yXT1hZnw0O2JyZWFrfTtkZWZhdWx0OntjW2g+PjJdPWNbaD4+Ml18NH19fXdoaWxlKDApO2Nb
Yj4+Ml09Y1tlPj4yXTtpPWw7cmV0dXJufX13aGlsZSgwKTtsPWJPKDQpfDA7a3EobCk7YmwobHww
LDgxNzYsMTM0KX1mdW5jdGlvbiBnSihhLGIsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTA7aj1pO2k9aSs4fDA7az1mO2Y9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1trPj4yXTtrPWp8MDtsPWErOHwwO2E9YjBb
Y1soY1tsPj4yXXwwKSs4Pj4yXSYxMjddKGwpfDA7bD1kW2FdfDA7aWYoKGwmMXwwKT09MCl7bT1s
Pj4+MX1lbHNle209Y1thKzQ+PjJdfDB9bD1kW2ErMTJ8MF18MDtpZigobCYxfDApPT0wKXtuPWw+
Pj4xfWVsc2V7bj1jW2ErMTY+PjJdfDB9aWYoKG18MCk9PSgtbnwwKSl7Y1tnPj4yXT1jW2c+PjJd
fDQ7aT1qO3JldHVybn1jW2s+PjJdPWNbZj4+Ml07Zj1mcShlLGssYSxhKzI0fDAsaCxnLDApfDA7
Zz1mLWF8MDtkb3tpZigoZnwwKT09KGF8MCkpe2lmKChjW2I+PjJdfDApIT0xMil7YnJlYWt9Y1ti
Pj4yXT0wO2k9ajtyZXR1cm59fXdoaWxlKDApO2lmKChnfDApIT0xMil7aT1qO3JldHVybn1nPWNb
Yj4+Ml18MDtpZigoZ3wwKT49MTIpe2k9ajtyZXR1cm59Y1tiPj4yXT1nKzEyO2k9ajtyZXR1cm59
ZnVuY3Rpb24gZ0soYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIg
aD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wO2I9aTtoPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tlPj4yXT1jW2g+PjJdO2g9ZHwwO2Q9Y1toPj4yXXwwO2Rve2lmKChkfDApPT0wKXtqPTB9
ZWxzZXtpZigoY1tkKzEyPj4yXXwwKSE9KGNbZCsxNj4+Ml18MCkpe2o9ZDticmVha31pZigoYjBb
Y1soY1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwKT09LTEpe2NbaD4+Ml09MDtqPTA7YnJlYWt9
ZWxzZXtqPWNbaD4+Ml18MDticmVha319fXdoaWxlKDApO2Q9KGp8MCk9PTA7aj1lfDA7ZT1jW2o+
PjJdfDA7TDI4MjI6ZG97aWYoKGV8MCk9PTApe2s9MjMzN31lbHNle2Rve2lmKChjW2UrMTI+PjJd
fDApPT0oY1tlKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMzY+PjJdJjEyN10oZSl8
MCkhPS0xKXticmVha31jW2o+PjJdPTA7az0yMzM3O2JyZWFrIEwyODIyfX13aGlsZSgwKTtpZihk
KXtsPWU7bT0wfWVsc2V7az0yMzM4fX19d2hpbGUoMCk7aWYoKGt8MCk9PTIzMzcpe2lmKGQpe2s9
MjMzOH1lbHNle2w9MDttPTF9fWlmKChrfDApPT0yMzM4KXtjW2Y+PjJdPWNbZj4+Ml18NjtpPWI7
cmV0dXJufWQ9Y1toPj4yXXwwO2U9Y1tkKzEyPj4yXXwwO2lmKChlfDApPT0oY1tkKzE2Pj4yXXww
KSl7bj0oYjBbY1soY1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwKSYyNTV9ZWxzZXtuPWFbZV18
MH1pZigoYjFbY1soY1tnPj4yXXwwKSszNj4+Ml0mNjNdKGcsbiwwKXwwKTw8MjQ+PjI0IT0zNyl7
Y1tmPj4yXT1jW2Y+PjJdfDQ7aT1iO3JldHVybn1uPWNbaD4+Ml18MDtnPW4rMTJ8MDtlPWNbZz4+
Ml18MDtpZigoZXwwKT09KGNbbisxNj4+Ml18MCkpe2Q9Y1soY1tuPj4yXXwwKSs0MD4+Ml18MDti
MFtkJjEyN10obil8MH1lbHNle2NbZz4+Ml09ZSsxfWU9Y1toPj4yXXwwO2Rve2lmKChlfDApPT0w
KXtvPTB9ZWxzZXtpZigoY1tlKzEyPj4yXXwwKSE9KGNbZSsxNj4+Ml18MCkpe289ZTticmVha31p
ZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXwwKT09LTEpe2NbaD4+Ml09MDtvPTA7
YnJlYWt9ZWxzZXtvPWNbaD4+Ml18MDticmVha319fXdoaWxlKDApO2g9KG98MCk9PTA7ZG97aWYo
bSl7az0yMzU3fWVsc2V7aWYoKGNbbCsxMj4+Ml18MCkhPShjW2wrMTY+PjJdfDApKXtpZighKGhe
KGx8MCk9PTApKXticmVha31pPWI7cmV0dXJufWlmKChiMFtjWyhjW2w+PjJdfDApKzM2Pj4yXSYx
MjddKGwpfDApPT0tMSl7Y1tqPj4yXT0wO2s9MjM1NzticmVha31pZighaCl7YnJlYWt9aT1iO3Jl
dHVybn19d2hpbGUoMCk7ZG97aWYoKGt8MCk9PTIzNTcpe2lmKGgpe2JyZWFrfWk9YjtyZXR1cm59
fXdoaWxlKDApO2NbZj4+Ml09Y1tmPj4yXXwyO2k9YjtyZXR1cm59ZnVuY3Rpb24gZ0woZCxlLGYs
ZyxoKXtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wO2o9aTtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2Q9Y1trPj4yXXwwO2Rve2lmKChkfDApPT0wKXtsPTB9ZWxz
ZXtpZigoY1tkKzEyPj4yXXwwKSE9KGNbZCsxNj4+Ml18MCkpe2w9ZDticmVha31pZigoYjBbY1so
Y1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwKT09LTEpe2Nbaz4+Ml09MDtsPTA7YnJlYWt9ZWxz
ZXtsPWNbaz4+Ml18MDticmVha319fXdoaWxlKDApO2Q9KGx8MCk9PTA7bD1lfDA7ZT1jW2w+PjJd
fDA7TDI4NzY6ZG97aWYoKGV8MCk9PTApe209MjM3N31lbHNle2Rve2lmKChjW2UrMTI+PjJdfDAp
PT0oY1tlKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMzY+PjJdJjEyN10oZSl8MCkh
PS0xKXticmVha31jW2w+PjJdPTA7bT0yMzc3O2JyZWFrIEwyODc2fX13aGlsZSgwKTtpZihkKXtu
PWV9ZWxzZXttPTIzNzh9fX13aGlsZSgwKTtpZigobXwwKT09MjM3Nyl7aWYoZCl7bT0yMzc4fWVs
c2V7bj0wfX1pZigobXwwKT09MjM3OCl7Y1tmPj4yXT1jW2Y+PjJdfDY7bz0wO2k9ajtyZXR1cm4g
b3wwfWQ9Y1trPj4yXXwwO2U9Y1tkKzEyPj4yXXwwO2lmKChlfDApPT0oY1tkKzE2Pj4yXXwwKSl7
cD0oYjBbY1soY1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwKSYyNTV9ZWxzZXtwPWFbZV18MH1k
b3tpZihwPDwyND4+MjQ+LTEpe2U9Zys4fDA7aWYoKGJbKGNbZT4+Ml18MCkrKHA8PDI0Pj4yNDw8
MSk+PjFdJjIwNDgpPT0wKXticmVha31kPWc7cT0oYjFbY1soY1tkPj4yXXwwKSszNj4+Ml0mNjNd
KGcscCwwKXwwKTw8MjQ+PjI0O3I9Y1trPj4yXXwwO3M9cisxMnwwO3Q9Y1tzPj4yXXwwO2lmKCh0
fDApPT0oY1tyKzE2Pj4yXXwwKSl7dT1jWyhjW3I+PjJdfDApKzQwPj4yXXwwO2IwW3UmMTI3XShy
KXwwO3Y9cTt3PWg7eD1ufWVsc2V7Y1tzPj4yXT10KzE7dj1xO3c9aDt4PW59d2hpbGUoMSl7eT12
LTQ4fDA7cT13LTF8MDt0PWNbaz4+Ml18MDtkb3tpZigodHwwKT09MCl7ej0wfWVsc2V7aWYoKGNb
dCsxMj4+Ml18MCkhPShjW3QrMTY+PjJdfDApKXt6PXQ7YnJlYWt9aWYoKGIwW2NbKGNbdD4+Ml18
MCkrMzY+PjJdJjEyN10odCl8MCk9PS0xKXtjW2s+PjJdPTA7ej0wO2JyZWFrfWVsc2V7ej1jW2s+
PjJdfDA7YnJlYWt9fX13aGlsZSgwKTt0PSh6fDApPT0wO2lmKCh4fDApPT0wKXtBPXo7Qj0wfWVs
c2V7ZG97aWYoKGNbeCsxMj4+Ml18MCk9PShjW3grMTY+PjJdfDApKXtpZigoYjBbY1soY1t4Pj4y
XXwwKSszNj4+Ml0mMTI3XSh4KXwwKSE9LTEpe0M9eDticmVha31jW2w+PjJdPTA7Qz0wfWVsc2V7
Qz14fX13aGlsZSgwKTtBPWNbaz4+Ml18MDtCPUN9RD0oQnwwKT09MDtpZighKCh0XkQpJihxfDAp
PjApKXttPTI0MDc7YnJlYWt9cz1jW0ErMTI+PjJdfDA7aWYoKHN8MCk9PShjW0ErMTY+PjJdfDAp
KXtFPShiMFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApJjI1NX1lbHNle0U9YVtzXXww
fWlmKEU8PDI0Pj4yNDw9LTEpe289eTttPTI0MjI7YnJlYWt9aWYoKGJbKGNbZT4+Ml18MCkrKEU8
PDI0Pj4yNDw8MSk+PjFdJjIwNDgpPT0wKXtvPXk7bT0yNDIzO2JyZWFrfXM9KChiMVtjWyhjW2Q+
PjJdfDApKzM2Pj4yXSY2M10oZyxFLDApfDApPDwyND4+MjQpKyh5KjEwfDApfDA7cj1jW2s+PjJd
fDA7dT1yKzEyfDA7Rj1jW3U+PjJdfDA7aWYoKEZ8MCk9PShjW3IrMTY+PjJdfDApKXtHPWNbKGNb
cj4+Ml18MCkrNDA+PjJdfDA7YjBbRyYxMjddKHIpfDA7dj1zO3c9cTt4PUI7Y29udGludWV9ZWxz
ZXtjW3U+PjJdPUYrMTt2PXM7dz1xO3g9Qjtjb250aW51ZX19aWYoKG18MCk9PTI0MDcpe2Rve2lm
KChBfDApPT0wKXtIPTB9ZWxzZXtpZigoY1tBKzEyPj4yXXwwKSE9KGNbQSsxNj4+Ml18MCkpe0g9
QTticmVha31pZigoYjBbY1soY1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKT09LTEpe2Nbaz4+
Ml09MDtIPTA7YnJlYWt9ZWxzZXtIPWNbaz4+Ml18MDticmVha319fXdoaWxlKDApO2Q9KEh8MCk9
PTA7TDI5MzM6ZG97aWYoRCl7bT0yNDE3fWVsc2V7ZG97aWYoKGNbQisxMj4+Ml18MCk9PShjW0Ir
MTY+PjJdfDApKXtpZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSE9LTEpe2Jy
ZWFrfWNbbD4+Ml09MDttPTI0MTc7YnJlYWsgTDI5MzN9fXdoaWxlKDApO2lmKGQpe289eX1lbHNl
e2JyZWFrfWk9ajtyZXR1cm4gb3wwfX13aGlsZSgwKTtkb3tpZigobXwwKT09MjQxNyl7aWYoZCl7
YnJlYWt9ZWxzZXtvPXl9aT1qO3JldHVybiBvfDB9fXdoaWxlKDApO2NbZj4+Ml09Y1tmPj4yXXwy
O289eTtpPWo7cmV0dXJuIG98MH1lbHNlIGlmKChtfDApPT0yNDIyKXtpPWo7cmV0dXJuIG98MH1l
bHNlIGlmKChtfDApPT0yNDIzKXtpPWo7cmV0dXJuIG98MH19fXdoaWxlKDApO2NbZj4+Ml09Y1tm
Pj4yXXw0O289MDtpPWo7cmV0dXJuIG98MH1mdW5jdGlvbiBnTShhKXthPWF8MDtyZXR1cm4gMn1m
dW5jdGlvbiBnTihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBnTyhhKXth
PWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBnUChhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTA7aj1pO2k9aSsx
NnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1lO2U9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHwwO2Nbaz4+Ml09
Y1tkPj4yXTtjW2w+PjJdPWNbZT4+Ml07Z1IoYSxiLGssbCxmLGcsaCwyMjk2LDIzMjgpO2k9ajty
ZXR1cm59ZnVuY3Rpb24gZ1EoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7az1p
O2k9aSsxNnwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1m
O2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWt8MDttPWsrOHwwO249
ZCs4fDA7bz1iMFtjWyhjW24+PjJdfDApKzIwPj4yXSYxMjddKG4pfDA7Y1tsPj4yXT1jW2U+PjJd
O2NbbT4+Ml09Y1tmPj4yXTtmPWFbb118MDtpZigoZiYxKT09MCl7cD1vKzR8MDtxPW8rNHwwfWVs
c2V7ZT1jW28rOD4+Ml18MDtwPWU7cT1lfWU9ZiYyNTU7aWYoKGUmMXwwKT09MCl7cj1lPj4+MX1l
bHNle3I9Y1tvKzQ+PjJdfDB9Z1IoYixkLGwsbSxnLGgsaixxLHArKHI8PDIpfDApO2k9aztyZXR1
cm59ZnVuY3Rpb24gZ1IoYSxiLGQsZSxmLGcsaCxqLGspe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxh
ZT0wLGFmPTAsYWc9MDtsPWk7aT1pKzQ4fDA7bT1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
ZD4+Ml09Y1ttPj4yXTttPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW20+PjJd
O209bHwwO249bCsxNnwwO289bCsyNHwwO3A9bCszMnwwO3E9bCs0MHwwO2VqKG4sZik7cj1ufDA7
bj1jW3I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW20+PjJdPTE1Njg4O2NbbSs0Pj4yXT0x
MjtjW20rOD4+Ml09MDtkVygxNTY4OCxtLDk2KX1tPShjWzM5MjNdfDApLTF8MDtzPWNbbis4Pj4y
XXwwO2Rve2lmKChjW24rMTI+PjJdfDApLXM+PjI+Pj4wPm0+Pj4wKXt0PWNbcysobTw8Mik+PjJd
fDA7aWYoKHR8MCk9PTApe2JyZWFrfXU9dDt2PWNbcj4+Ml18MDtkeih2KXwwO2NbZz4+Ml09MDt2
PWR8MDtMMjk2OTpkb3tpZigoanwwKT09KGt8MCkpe3c9MjUwOH1lbHNle3g9ZXwwO3k9dDt6PXQ7
QT10O0I9YjtDPXB8MDtEPXF8MDtFPW98MDtGPWo7Rz0wO0wyOTcxOndoaWxlKDEpe0g9Rzt3aGls
ZSgxKXtpZigoSHwwKSE9MCl7dz0yNTA4O2JyZWFrIEwyOTY5fUk9Y1t2Pj4yXXwwO2Rve2lmKChJ
fDApPT0wKXtKPTB9ZWxzZXtLPWNbSSsxMj4+Ml18MDtpZigoS3wwKT09KGNbSSsxNj4+Ml18MCkp
e0w9YjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwfWVsc2V7TD1jW0s+PjJdfDB9aWYo
KEx8MCkhPS0xKXtKPUk7YnJlYWt9Y1t2Pj4yXT0wO0o9MH19d2hpbGUoMCk7ST0oSnwwKT09MDtL
PWNbeD4+Ml18MDtkb3tpZigoS3wwKT09MCl7dz0yNDYwfWVsc2V7TT1jW0srMTI+PjJdfDA7aWYo
KE18MCk9PShjW0srMTY+PjJdfDApKXtOPWIwW2NbKGNbSz4+Ml18MCkrMzY+PjJdJjEyN10oSyl8
MH1lbHNle049Y1tNPj4yXXwwfWlmKChOfDApPT0tMSl7Y1t4Pj4yXT0wO3c9MjQ2MDticmVha31l
bHNle2lmKEleKEt8MCk9PTApe089SzticmVha31lbHNle3c9MjQ2MjticmVhayBMMjk3MX19fX13
aGlsZSgwKTtpZigod3wwKT09MjQ2MCl7dz0wO2lmKEkpe3c9MjQ2MjticmVhayBMMjk3MX1lbHNl
e089MH19aWYoKGIxW2NbKGNbeT4+Ml18MCkrNTI+PjJdJjYzXSh1LGNbRj4+Ml18MCwwKXwwKTw8
MjQ+PjI0PT0zNyl7dz0yNDY1O2JyZWFrfWlmKGIxW2NbKGNbej4+Ml18MCkrMTI+PjJdJjYzXSh1
LDgxOTIsY1tGPj4yXXwwKXwwKXtQPUY7dz0yNDc1O2JyZWFrfVE9SisxMnwwO0s9Y1tRPj4yXXww
O1I9SisxNnwwO2lmKChLfDApPT0oY1tSPj4yXXwwKSl7Uz1iMFtjWyhjW0o+PjJdfDApKzM2Pj4y
XSYxMjddKEopfDB9ZWxzZXtTPWNbSz4+Ml18MH1LPWJfW2NbKGNbQT4+Ml18MCkrMjg+PjJdJjMx
XSh1LFMpfDA7aWYoKEt8MCk9PShiX1tjWyhjW0E+PjJdfDApKzI4Pj4yXSYzMV0odSxjW0Y+PjJd
fDApfDApKXt3PTI1MDM7YnJlYWt9Y1tnPj4yXT00O0g9NH1MMzAwMzpkb3tpZigod3wwKT09MjUw
Myl7dz0wO0g9Y1tRPj4yXXwwO2lmKChIfDApPT0oY1tSPj4yXXwwKSl7Sz1jWyhjW0o+PjJdfDAp
KzQwPj4yXXwwO2IwW0smMTI3XShKKXwwfWVsc2V7Y1tRPj4yXT1IKzR9VD1GKzR8MH1lbHNlIGlm
KCh3fDApPT0yNDY1KXt3PTA7SD1GKzR8MDtpZigoSHwwKT09KGt8MCkpe3c9MjQ2NjticmVhayBM
Mjk3MX1LPWIxW2NbKGNbeT4+Ml18MCkrNTI+PjJdJjYzXSh1LGNbSD4+Ml18MCwwKXwwO3N3aXRj
aChLPDwyND4+MjQpe2Nhc2UgNjk6Y2FzZSA0ODp7TT1GKzh8MDtpZigoTXwwKT09KGt8MCkpe3c9
MjQ2OTticmVhayBMMjk3MX1VPUs7Vj1iMVtjWyhjW3k+PjJdfDApKzUyPj4yXSY2M10odSxjW00+
PjJdfDAsMCl8MDtXPU07YnJlYWt9O2RlZmF1bHQ6e1U9MDtWPUs7Vz1IfX1IPWNbKGNbQj4+Ml18
MCkrMzY+PjJdfDA7Y1tDPj4yXT1KO2NbRD4+Ml09TztiN1tIJjddKG8sYixwLHEsZixnLGgsVixV
KTtjW3Y+PjJdPWNbRT4+Ml07VD1XKzR8MH1lbHNlIGlmKCh3fDApPT0yNDc1KXt3aGlsZSgxKXt3
PTA7SD1QKzR8MDtpZigoSHwwKT09KGt8MCkpe1g9azticmVha31pZihiMVtjWyhjW3o+PjJdfDAp
KzEyPj4yXSY2M10odSw4MTkyLGNbSD4+Ml18MCl8MCl7UD1IO3c9MjQ3NX1lbHNle1g9SDticmVh
a319ST1KO0g9Tzt3aGlsZSgxKXtkb3tpZigoSXwwKT09MCl7WT0wfWVsc2V7Sz1jW0krMTI+PjJd
fDA7aWYoKEt8MCk9PShjW0krMTY+PjJdfDApKXtaPWIwW2NbKGNbST4+Ml18MCkrMzY+PjJdJjEy
N10oSSl8MH1lbHNle1o9Y1tLPj4yXXwwfWlmKChafDApIT0tMSl7WT1JO2JyZWFrfWNbdj4+Ml09
MDtZPTB9fXdoaWxlKDApO0s9KFl8MCk9PTA7ZG97aWYoKEh8MCk9PTApe3c9MjQ5MH1lbHNle009
Y1tIKzEyPj4yXXwwO2lmKChNfDApPT0oY1tIKzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW0g+PjJdfDAp
KzM2Pj4yXSYxMjddKEgpfDB9ZWxzZXtfPWNbTT4+Ml18MH1pZigoX3wwKT09LTEpe2NbeD4+Ml09
MDt3PTI0OTA7YnJlYWt9ZWxzZXtpZihLXihIfDApPT0wKXskPUg7YnJlYWt9ZWxzZXtUPVg7YnJl
YWsgTDMwMDN9fX19d2hpbGUoMCk7aWYoKHd8MCk9PTI0OTApe3c9MDtpZihLKXtUPVg7YnJlYWsg
TDMwMDN9ZWxzZXskPTB9fU09WSsxMnwwO2FhPWNbTT4+Ml18MDthYj1ZKzE2fDA7aWYoKGFhfDAp
PT0oY1thYj4+Ml18MCkpe2FjPWIwW2NbKGNbWT4+Ml18MCkrMzY+PjJdJjEyN10oWSl8MH1lbHNl
e2FjPWNbYWE+PjJdfDB9aWYoIShiMVtjWyhjW3o+PjJdfDApKzEyPj4yXSY2M10odSw4MTkyLGFj
KXwwKSl7VD1YO2JyZWFrIEwzMDAzfWFhPWNbTT4+Ml18MDtpZigoYWF8MCk9PShjW2FiPj4yXXww
KSl7YWI9Y1soY1tZPj4yXXwwKSs0MD4+Ml18MDtiMFthYiYxMjddKFkpfDA7ST1ZO0g9JDtjb250
aW51ZX1lbHNle2NbTT4+Ml09YWErNDtJPVk7SD0kO2NvbnRpbnVlfX19fXdoaWxlKDApO2lmKChU
fDApPT0oa3wwKSl7dz0yNTA4O2JyZWFrIEwyOTY5fUY9VDtHPWNbZz4+Ml18MH1pZigod3wwKT09
MjQ2Mil7Y1tnPj4yXT00O2FkPUo7YnJlYWt9ZWxzZSBpZigod3wwKT09MjQ2Nil7Y1tnPj4yXT00
O2FkPUo7YnJlYWt9ZWxzZSBpZigod3wwKT09MjQ2OSl7Y1tnPj4yXT00O2FkPUo7YnJlYWt9fX13
aGlsZSgwKTtpZigod3wwKT09MjUwOCl7YWQ9Y1t2Pj4yXXwwfXU9ZHwwO2Rve2lmKChhZHwwKSE9
MCl7dD1jW2FkKzEyPj4yXXwwO2lmKCh0fDApPT0oY1thZCsxNj4+Ml18MCkpe2FlPWIwW2NbKGNb
YWQ+PjJdfDApKzM2Pj4yXSYxMjddKGFkKXwwfWVsc2V7YWU9Y1t0Pj4yXXwwfWlmKChhZXwwKSE9
LTEpe2JyZWFrfWNbdT4+Ml09MH19d2hpbGUoMCk7dj1jW3U+PjJdfDA7dD0odnwwKT09MDtHPWV8
MDtGPWNbRz4+Ml18MDtkb3tpZigoRnwwKT09MCl7dz0yNTIxfWVsc2V7ej1jW0YrMTI+PjJdfDA7
aWYoKHp8MCk9PShjW0YrMTY+PjJdfDApKXthZj1iMFtjWyhjW0Y+PjJdfDApKzM2Pj4yXSYxMjdd
KEYpfDB9ZWxzZXthZj1jW3o+PjJdfDB9aWYoKGFmfDApPT0tMSl7Y1tHPj4yXT0wO3c9MjUyMTti
cmVha31pZighKHReKEZ8MCk9PTApKXticmVha31hZz1hfDA7Y1thZz4+Ml09djtpPWw7cmV0dXJu
fX13aGlsZSgwKTtkb3tpZigod3wwKT09MjUyMSl7aWYodCl7YnJlYWt9YWc9YXwwO2NbYWc+PjJd
PXY7aT1sO3JldHVybn19d2hpbGUoMCk7Y1tnPj4yXT1jW2c+PjJdfDI7YWc9YXwwO2NbYWc+PjJd
PXY7aT1sO3JldHVybn19d2hpbGUoMCk7bD1iTyg0KXwwO2txKGwpO2JsKGx8MCw4MTc2LDEzNCl9
ZnVuY3Rpb24gZ1MoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wO2o9aTtpPWkrMzJ8MDtrPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1j
W2s+PjJdO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7
bD1qKzh8MDttPWorMjR8MDtlaihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM5MjJdfDAp
IT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5
Nil9bD0oY1szOTIzXXwwKS0xfDA7bj1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1u
Pj4yPj4+MD5sPj4+MCl7bz1jW24rKGw8PDIpPj4yXXwwO2lmKChvfDApPT0wKXticmVha31wPW87
bz1jW2Y+PjJdfDA7ZHoobyl8MDtvPWNbZT4+Ml18MDtxPWIrOHwwO3I9YjBbY1tjW3E+PjJdPj4y
XSYxMjddKHEpfDA7Y1trPj4yXT1vO289KGZTKGQsayxyLHIrMTY4fDAscCxnLDApfDApLXJ8MDtp
Zigob3wwKT49MTY4KXtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVy
bn1jW2grMjQ+PjJdPSgob3wwKS8xMnwwfDApJTd8MDtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtj
W3U+PjJdPXQ7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGopO2JsKGp8MCw4MTc2
LDEzNCl9ZnVuY3Rpb24gZ1QoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wO2o9aTtpPWkrMzJ8MDtrPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tk
Pj4yXT1jW2s+PjJdO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07
az1qfDA7bD1qKzh8MDttPWorMjR8MDtlaihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM5
MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2
ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7bj1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4y
XXwwKS1uPj4yPj4+MD5sPj4+MCl7bz1jW24rKGw8PDIpPj4yXXwwO2lmKChvfDApPT0wKXticmVh
a31wPW87bz1jW2Y+PjJdfDA7ZHoobyl8MDtvPWNbZT4+Ml18MDtxPWIrOHwwO3I9YjBbY1soY1tx
Pj4yXXwwKSs0Pj4yXSYxMjddKHEpfDA7Y1trPj4yXT1vO289KGZTKGQsayxyLHIrMjg4fDAscCxn
LDApfDApLXJ8MDtpZigob3wwKT49Mjg4KXtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJd
PXQ7aT1qO3JldHVybn1jW2grMTY+PjJdPSgob3wwKS8xMnwwfDApJTEyfDA7cz1kfDA7dD1jW3M+
PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8oNCl8MDtrcShq
KTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdVKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTA7Yj1pO2k9aSszMnwwO2o9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2Q+PjJdPWNbaj4+Ml07aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tq
Pj4yXTtqPWJ8MDtrPWIrOHwwO2w9YisyNHwwO2VqKGwsZik7Zj1sfDA7bD1jW2Y+PjJdfDA7aWYo
KGNbMzkyMl18MCkhPS0xKXtjW2s+PjJdPTE1Njg4O2Nbays0Pj4yXT0xMjtjW2srOD4+Ml09MDtk
VygxNTY4OCxrLDk2KX1rPShjWzM5MjNdfDApLTF8MDttPWNbbCs4Pj4yXXwwO2Rve2lmKChjW2wr
MTI+PjJdfDApLW0+PjI+Pj4wPms+Pj4wKXtuPWNbbSsoazw8Mik+PjJdfDA7aWYoKG58MCk9PTAp
e2JyZWFrfW89bjtuPWNbZj4+Ml18MDtkeihuKXwwO2Nbaj4+Ml09Y1tlPj4yXTtuPWhjKGQsaixn
LG8sNCl8MDtpZigoY1tnPj4yXSY0fDApIT0wKXtwPWR8MDtxPWNbcD4+Ml18MDtyPWF8MDtjW3I+
PjJdPXE7aT1iO3JldHVybn1pZigobnwwKTw2OSl7cz1uKzJlM3wwfWVsc2V7cz0obi02OXwwKT4+
PjA8MzE/bisxOTAwfDA6bn1jW2grMjA+PjJdPXMtMTkwMDtwPWR8MDtxPWNbcD4+Ml18MDtyPWF8
MDtjW3I+PjJdPXE7aT1iO3JldHVybn19d2hpbGUoMCk7Yj1iTyg0KXwwO2txKGIpO2JsKGJ8MCw4
MTc2LDEzNCl9ZnVuY3Rpb24gZ1YoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MDthPWk7Zz1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+
Ml09Y1tnPj4yXTtnPWJ8MDtiPWR8MDtkPWY7TDMxMjc6d2hpbGUoMSl7aD1jW2c+PjJdfDA7ZG97
aWYoKGh8MCk9PTApe2o9MX1lbHNle2s9Y1toKzEyPj4yXXwwO2lmKChrfDApPT0oY1toKzE2Pj4y
XXwwKSl7bD1iMFtjWyhjW2g+PjJdfDApKzM2Pj4yXSYxMjddKGgpfDB9ZWxzZXtsPWNbaz4+Ml18
MH1pZigobHwwKT09LTEpe2NbZz4+Ml09MDtqPTE7YnJlYWt9ZWxzZXtqPShjW2c+PjJdfDApPT0w
O2JyZWFrfX19d2hpbGUoMCk7aD1jW2I+PjJdfDA7ZG97aWYoKGh8MCk9PTApe209MjU4MX1lbHNl
e2s9Y1toKzEyPj4yXXwwO2lmKChrfDApPT0oY1toKzE2Pj4yXXwwKSl7bj1iMFtjWyhjW2g+PjJd
fDApKzM2Pj4yXSYxMjddKGgpfDB9ZWxzZXtuPWNbaz4+Ml18MH1pZigobnwwKT09LTEpe2NbYj4+
Ml09MDttPTI1ODE7YnJlYWt9ZWxzZXtrPShofDApPT0wO2lmKGpeayl7bz1oO3A9azticmVha31l
bHNle3E9aDtyPWs7YnJlYWsgTDMxMjd9fX19d2hpbGUoMCk7aWYoKG18MCk9PTI1ODEpe209MDtp
ZihqKXtxPTA7cj0xO2JyZWFrfWVsc2V7bz0wO3A9MX19aD1jW2c+PjJdfDA7az1jW2grMTI+PjJd
fDA7aWYoKGt8MCk9PShjW2grMTY+PjJdfDApKXtzPWIwW2NbKGNbaD4+Ml18MCkrMzY+PjJdJjEy
N10oaCl8MH1lbHNle3M9Y1trPj4yXXwwfWlmKCEoYjFbY1soY1tkPj4yXXwwKSsxMj4+Ml0mNjNd
KGYsODE5MixzKXwwKSl7cT1vO3I9cDticmVha31rPWNbZz4+Ml18MDtoPWsrMTJ8MDt0PWNbaD4+
Ml18MDtpZigodHwwKT09KGNbaysxNj4+Ml18MCkpe3U9Y1soY1trPj4yXXwwKSs0MD4+Ml18MDti
MFt1JjEyN10oayl8MDtjb250aW51ZX1lbHNle2NbaD4+Ml09dCs0O2NvbnRpbnVlfX1wPWNbZz4+
Ml18MDtkb3tpZigocHwwKT09MCl7dj0xfWVsc2V7bz1jW3ArMTI+PjJdfDA7aWYoKG98MCk9PShj
W3ArMTY+PjJdfDApKXt3PWIwW2NbKGNbcD4+Ml18MCkrMzY+PjJdJjEyN10ocCl8MH1lbHNle3c9
Y1tvPj4yXXwwfWlmKCh3fDApPT0tMSl7Y1tnPj4yXT0wO3Y9MTticmVha31lbHNle3Y9KGNbZz4+
Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZihyKXttPTI2MDN9ZWxzZXtnPWNbcSsxMj4+
Ml18MDtpZigoZ3wwKT09KGNbcSsxNj4+Ml18MCkpe3g9YjBbY1soY1txPj4yXXwwKSszNj4+Ml0m
MTI3XShxKXwwfWVsc2V7eD1jW2c+PjJdfDB9aWYoKHh8MCk9PS0xKXtjW2I+PjJdPTA7bT0yNjAz
O2JyZWFrfWlmKCEodl4ocXwwKT09MCkpe2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2Rve2lm
KChtfDApPT0yNjAzKXtpZih2KXticmVha31pPWE7cmV0dXJufX13aGlsZSgwKTtjW2U+PjJdPWNb
ZT4+Ml18MjtpPWE7cmV0dXJufWZ1bmN0aW9uIGdXKGIsZCxlLGYsZyxoLGosayxsKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAs
UT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0w
LGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MDts
PWk7aT1pKzMyOHwwO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07
bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWx8MDtuPWwrOHww
O289bCsxNnwwO3A9bCsyNHwwO3E9bCszMnwwO3I9bCs0MHwwO3M9bCs0OHwwO3Q9bCs1NnwwO3U9
bCs2NHwwO3Y9bCs3MnwwO3c9bCs4MHwwO3g9bCs4OHwwO3k9bCs5NnwwO3o9bCsxMTJ8MDtBPWwr
MTIwfDA7Qj1sKzEyOHwwO0M9bCsxMzZ8MDtEPWwrMTQ0fDA7RT1sKzE1MnwwO0Y9bCsxNjB8MDtH
PWwrMTY4fDA7SD1sKzE3NnwwO0k9bCsxODR8MDtKPWwrMTkyfDA7Sz1sKzIwMHwwO0w9bCsyMDh8
MDtNPWwrMjE2fDA7Tj1sKzIyNHwwO089bCsyMzJ8MDtQPWwrMjQwfDA7UT1sKzI0OHwwO1I9bCsy
NTZ8MDtTPWwrMjY0fDA7VD1sKzI3MnwwO1U9bCsyODB8MDtWPWwrMjg4fDA7Vz1sKzI5NnwwO1g9
bCszMDR8MDtZPWwrMzEyfDA7Wj1sKzMyMHwwO2NbaD4+Ml09MDtlaih6LGcpO189enwwO3o9Y1tf
Pj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1t5Pj4yXT0xNTY4ODtjW3krND4+Ml09MTI7Y1t5
Kzg+PjJdPTA7ZFcoMTU2ODgseSw5Nil9eT0oY1szOTIzXXwwKS0xfDA7JD1jW3orOD4+Ml18MDtk
b3tpZigoY1t6KzEyPj4yXXwwKS0kPj4yPj4+MD55Pj4+MCl7YWE9Y1skKyh5PDwyKT4+Ml18MDtp
ZigoYWF8MCk9PTApe2JyZWFrfWFiPWFhO2FhPWNbXz4+Ml18MDtkeihhYSl8MDtMMzE5Mjpkb3tz
d2l0Y2goazw8MjQ+PjI0fDApe2Nhc2UgMTAwOmNhc2UgMTAxOnthYT1qKzEyfDA7Y1t2Pj4yXT1j
W2Y+PjJdO2FjPWhjKGUsdixoLGFiLDIpfDA7YWQ9Y1toPj4yXXwwO2Rve2lmKChhZCY0fDApPT0w
KXtpZigoYWMtMXwwKT4+PjA+PTMxKXticmVha31jW2FhPj4yXT1hYzticmVhayBMMzE5Mn19d2hp
bGUoMCk7Y1toPj4yXT1hZHw0O2JyZWFrfTtjYXNlIDExMDpjYXNlIDExNjp7Y1tKPj4yXT1jW2Y+
PjJdO2dWKDAsZSxKLGgsYWIpO2JyZWFrfTtjYXNlIDg4OnthYz1kKzh8MDthYT1iMFtjWyhjW2Fj
Pj4yXXwwKSsyND4+Ml0mMTI3XShhYyl8MDthYz1lfDA7Y1tYPj4yXT1jW2FjPj4yXTtjW1k+PjJd
PWNbZj4+Ml07YWU9YVthYV18MDtpZigoYWUmMSk9PTApe2FmPWFhKzR8MDthZz1hYSs0fDB9ZWxz
ZXthaD1jW2FhKzg+PjJdfDA7YWY9YWg7YWc9YWh9YWg9YWUmMjU1O2lmKChhaCYxfDApPT0wKXth
aT1haD4+PjF9ZWxzZXthaT1jW2FhKzQ+PjJdfDB9Z1IoVyxkLFgsWSxnLGgsaixhZyxhZisoYWk8
PDIpfDApO2NbYWM+PjJdPWNbVz4+Ml07YnJlYWt9O2Nhc2UgOTg6Y2FzZSA2NjpjYXNlIDEwNDp7
YWM9Y1tmPj4yXXwwO2FhPWQrOHwwO2FoPWIwW2NbKGNbYWE+PjJdfDApKzQ+PjJdJjEyN10oYWEp
fDA7Y1t3Pj4yXT1hYzthYz0oZlMoZSx3LGFoLGFoKzI4OHwwLGFiLGgsMCl8MCktYWh8MDtpZigo
YWN8MCk+PTI4OCl7YnJlYWsgTDMxOTJ9Y1tqKzE2Pj4yXT0oKGFjfDApLzEyfDB8MCklMTJ8MDti
cmVha307Y2FzZSAxMTI6e2NbSz4+Ml09Y1tmPj4yXTtnWChkLGorOHwwLGUsSyxoLGFiKTticmVh
a307Y2FzZSAxMTQ6e2FjPWV8MDtjW00+PjJdPWNbYWM+PjJdO2NbTj4+Ml09Y1tmPj4yXTtnUihM
LGQsTSxOLGcsaCxqLDIyMTYsMjI2MCk7Y1thYz4+Ml09Y1tMPj4yXTticmVha307Y2FzZSAzNzp7
Y1taPj4yXT1jW2Y+PjJdO2dZKDAsZSxaLGgsYWIpO2JyZWFrfTtjYXNlIDY4OnthYz1lfDA7Y1tF
Pj4yXT1jW2FjPj4yXTtjW0Y+PjJdPWNbZj4+Ml07Z1IoRCxkLEUsRixnLGgsaiwyMjY0LDIyOTYp
O2NbYWM+PjJdPWNbRD4+Ml07YnJlYWt9O2Nhc2UgODk6e2NbbT4+Ml09Y1tmPj4yXTthYz1oYyhl
LG0saCxhYiw0KXwwO2lmKChjW2g+PjJdJjR8MCkhPTApe2JyZWFrIEwzMTkyfWNbaisyMD4+Ml09
YWMtMTkwMDticmVha307Y2FzZSA4Mjp7YWM9ZXwwO2NbUD4+Ml09Y1thYz4+Ml07Y1tRPj4yXT1j
W2Y+PjJdO2dSKE8sZCxQLFEsZyxoLGosMjE5MiwyMjEyKTtjW2FjPj4yXT1jW08+PjJdO2JyZWFr
fTtjYXNlIDgzOntjW3A+PjJdPWNbZj4+Ml07YWM9aGMoZSxwLGgsYWIsMil8MDthaD1jW2g+PjJd
fDA7aWYoKGFoJjR8MCk9PTAmKGFjfDApPDYxKXtjW2o+PjJdPWFjO2JyZWFrIEwzMTkyfWVsc2V7
Y1toPj4yXT1haHw0O2JyZWFrIEwzMTkyfWJyZWFrfTtjYXNlIDEwNjp7Y1tzPj4yXT1jW2Y+PjJd
O2FoPWhjKGUscyxoLGFiLDMpfDA7YWM9Y1toPj4yXXwwO2lmKChhYyY0fDApPT0wJihhaHwwKTwz
NjYpe2NbaisyOD4+Ml09YWg7YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFjfDQ7YnJlYWsgTDMx
OTJ9YnJlYWt9O2Nhc2UgOTc6Y2FzZSA2NTp7YWM9Y1tmPj4yXXwwO2FoPWQrOHwwO2FhPWIwW2Nb
Y1thaD4+Ml0+PjJdJjEyN10oYWgpfDA7Y1t4Pj4yXT1hYzthYz0oZlMoZSx4LGFhLGFhKzE2OHww
LGFiLGgsMCl8MCktYWF8MDtpZigoYWN8MCk+PTE2OCl7YnJlYWsgTDMxOTJ9Y1tqKzI0Pj4yXT0o
KGFjfDApLzEyfDB8MCklN3wwO2JyZWFrfTtjYXNlIDk5OnthYz1kKzh8MDthYT1iMFtjWyhjW2Fj
Pj4yXXwwKSsxMj4+Ml0mMTI3XShhYyl8MDthYz1lfDA7Y1tCPj4yXT1jW2FjPj4yXTtjW0M+PjJd
PWNbZj4+Ml07YWg9YVthYV18MDtpZigoYWgmMSk9PTApe2FqPWFhKzR8MDthaz1hYSs0fDB9ZWxz
ZXthZT1jW2FhKzg+PjJdfDA7YWo9YWU7YWs9YWV9YWU9YWgmMjU1O2lmKChhZSYxfDApPT0wKXth
bD1hZT4+PjF9ZWxzZXthbD1jW2FhKzQ+PjJdfDB9Z1IoQSxkLEIsQyxnLGgsaixhayxhaisoYWw8
PDIpfDApO2NbYWM+PjJdPWNbQT4+Ml07YnJlYWt9O2Nhc2UgODQ6e2FjPWV8MDtjW1M+PjJdPWNb
YWM+PjJdO2NbVD4+Ml09Y1tmPj4yXTtnUihSLGQsUyxULGcsaCxqLDIxNjAsMjE5Mik7Y1thYz4+
Ml09Y1tSPj4yXTticmVha307Y2FzZSA3MDp7YWM9ZXwwO2NbSD4+Ml09Y1thYz4+Ml07Y1tJPj4y
XT1jW2Y+PjJdO2dSKEcsZCxILEksZyxoLGosMjEyOCwyMTYwKTtjW2FjPj4yXT1jW0c+PjJdO2Jy
ZWFrfTtjYXNlIDcyOntjW3U+PjJdPWNbZj4+Ml07YWM9aGMoZSx1LGgsYWIsMil8MDthYT1jW2g+
PjJdfDA7aWYoKGFhJjR8MCk9PTAmKGFjfDApPDI0KXtjW2orOD4+Ml09YWM7YnJlYWsgTDMxOTJ9
ZWxzZXtjW2g+PjJdPWFhfDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgMTIxOntjW24+PjJdPWNb
Zj4+Ml07YWE9aGMoZSxuLGgsYWIsNCl8MDtpZigoY1toPj4yXSY0fDApIT0wKXticmVhayBMMzE5
Mn1pZigoYWF8MCk8Njkpe2FtPWFhKzJlM3wwfWVsc2V7YW09KGFhLTY5fDApPj4+MDwzMT9hYSsx
OTAwfDA6YWF9Y1tqKzIwPj4yXT1hbS0xOTAwO2JyZWFrfTtjYXNlIDEwOTp7Y1tyPj4yXT1jW2Y+
PjJdO2FhPShoYyhlLHIsaCxhYiwyKXwwKS0xfDA7YWM9Y1toPj4yXXwwO2lmKChhYyY0fDApPT0w
JihhYXwwKTwxMil7Y1tqKzE2Pj4yXT1hYTticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWN8NDti
cmVhayBMMzE5Mn1icmVha307Y2FzZSA3Mzp7YWM9ais4fDA7Y1t0Pj4yXT1jW2Y+PjJdO2FhPWhj
KGUsdCxoLGFiLDIpfDA7YWU9Y1toPj4yXXwwO2Rve2lmKChhZSY0fDApPT0wKXtpZigoYWEtMXww
KT4+PjA+PTEyKXticmVha31jW2FjPj4yXT1hYTticmVhayBMMzE5Mn19d2hpbGUoMCk7Y1toPj4y
XT1hZXw0O2JyZWFrfTtjYXNlIDc3OntjW3E+PjJdPWNbZj4+Ml07YWE9aGMoZSxxLGgsYWIsMil8
MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAmKGFhfDApPDYwKXtjW2orND4+Ml09YWE7YnJl
YWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFjfDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgMTE5Ontj
W28+PjJdPWNbZj4+Ml07YWM9aGMoZSxvLGgsYWIsMSl8MDthYT1jW2g+PjJdfDA7aWYoKGFhJjR8
MCk9PTAmKGFjfDApPDcpe2NbaisyND4+Ml09YWM7YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFh
fDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgMTIwOnthYT1jWyhjW2Q+PjJdfDApKzIwPj4yXXww
O2NbVT4+Ml09Y1tlPj4yXTtjW1Y+PjJdPWNbZj4+Ml07YlhbYWEmMTI3XShiLGQsVSxWLGcsaCxq
KTtpPWw7cmV0dXJufTtkZWZhdWx0OntjW2g+PjJdPWNbaD4+Ml18NH19fXdoaWxlKDApO2NbYj4+
Ml09Y1tlPj4yXTtpPWw7cmV0dXJufX13aGlsZSgwKTtsPWJPKDQpfDA7a3EobCk7YmwobHwwLDgx
NzYsMTM0KX1mdW5jdGlvbiBnWChhLGIsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTA7aj1pO2k9aSs4fDA7az1mO2Y9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1trPj4yXTtrPWp8MDtsPWErOHwwO2E9YjBbY1so
Y1tsPj4yXXwwKSs4Pj4yXSYxMjddKGwpfDA7bD1kW2FdfDA7aWYoKGwmMXwwKT09MCl7bT1sPj4+
MX1lbHNle209Y1thKzQ+PjJdfDB9bD1kW2ErMTJ8MF18MDtpZigobCYxfDApPT0wKXtuPWw+Pj4x
fWVsc2V7bj1jW2ErMTY+PjJdfDB9aWYoKG18MCk9PSgtbnwwKSl7Y1tnPj4yXT1jW2c+PjJdfDQ7
aT1qO3JldHVybn1jW2s+PjJdPWNbZj4+Ml07Zj1mUyhlLGssYSxhKzI0fDAsaCxnLDApfDA7Zz1m
LWF8MDtkb3tpZigoZnwwKT09KGF8MCkpe2lmKChjW2I+PjJdfDApIT0xMil7YnJlYWt9Y1tiPj4y
XT0wO2k9ajtyZXR1cm59fXdoaWxlKDApO2lmKChnfDApIT0xMil7aT1qO3JldHVybn1nPWNbYj4+
Ml18MDtpZigoZ3wwKT49MTIpe2k9ajtyZXR1cm59Y1tiPj4yXT1nKzEyO2k9ajtyZXR1cm59Ci1m
dW5jdGlvbiBnWShhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBn
PTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDthPWk7Zz1kO2Q9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tnPj4yXTtnPWJ8MDtiPWNbZz4+Ml18MDtk
b3tpZigoYnwwKT09MCl7aD0xfWVsc2V7aj1jW2IrMTI+PjJdfDA7aWYoKGp8MCk9PShjW2IrMTY+
PjJdfDApKXtrPWIwW2NbKGNbYj4+Ml18MCkrMzY+PjJdJjEyN10oYil8MH1lbHNle2s9Y1tqPj4y
XXwwfWlmKChrfDApPT0tMSl7Y1tnPj4yXT0wO2g9MTticmVha31lbHNle2g9KGNbZz4+Ml18MCk9
PTA7YnJlYWt9fX13aGlsZSgwKTtrPWR8MDtkPWNbaz4+Ml18MDtkb3tpZigoZHwwKT09MCl7bD0y
NzE2fWVsc2V7Yj1jW2QrMTI+PjJdfDA7aWYoKGJ8MCk9PShjW2QrMTY+PjJdfDApKXttPWIwW2Nb
KGNbZD4+Ml18MCkrMzY+PjJdJjEyN10oZCl8MH1lbHNle209Y1tiPj4yXXwwfWlmKChtfDApPT0t
MSl7Y1trPj4yXT0wO2w9MjcxNjticmVha31lbHNle2I9KGR8MCk9PTA7aWYoaF5iKXtuPWQ7bz1i
O2JyZWFrfWVsc2V7bD0yNzE4O2JyZWFrfX19fXdoaWxlKDApO2lmKChsfDApPT0yNzE2KXtpZiho
KXtsPTI3MTh9ZWxzZXtuPTA7bz0xfX1pZigobHwwKT09MjcxOCl7Y1tlPj4yXT1jW2U+PjJdfDY7
aT1hO3JldHVybn1oPWNbZz4+Ml18MDtkPWNbaCsxMj4+Ml18MDtpZigoZHwwKT09KGNbaCsxNj4+
Ml18MCkpe3A9YjBbY1soY1toPj4yXXwwKSszNj4+Ml0mMTI3XShoKXwwfWVsc2V7cD1jW2Q+PjJd
fDB9aWYoKGIxW2NbKGNbZj4+Ml18MCkrNTI+PjJdJjYzXShmLHAsMCl8MCk8PDI0Pj4yNCE9Mzcp
e2NbZT4+Ml09Y1tlPj4yXXw0O2k9YTtyZXR1cm59cD1jW2c+PjJdfDA7Zj1wKzEyfDA7ZD1jW2Y+
PjJdfDA7aWYoKGR8MCk9PShjW3ArMTY+PjJdfDApKXtoPWNbKGNbcD4+Ml18MCkrNDA+PjJdfDA7
YjBbaCYxMjddKHApfDB9ZWxzZXtjW2Y+PjJdPWQrNH1kPWNbZz4+Ml18MDtkb3tpZigoZHwwKT09
MCl7cT0xfWVsc2V7Zj1jW2QrMTI+PjJdfDA7aWYoKGZ8MCk9PShjW2QrMTY+PjJdfDApKXtyPWIw
W2NbKGNbZD4+Ml18MCkrMzY+PjJdJjEyN10oZCl8MH1lbHNle3I9Y1tmPj4yXXwwfWlmKChyfDAp
PT0tMSl7Y1tnPj4yXT0wO3E9MTticmVha31lbHNle3E9KGNbZz4+Ml18MCk9PTA7YnJlYWt9fX13
aGlsZSgwKTtkb3tpZihvKXtsPTI3NDB9ZWxzZXtnPWNbbisxMj4+Ml18MDtpZigoZ3wwKT09KGNb
bisxNj4+Ml18MCkpe3M9YjBbY1soY1tuPj4yXXwwKSszNj4+Ml0mMTI3XShuKXwwfWVsc2V7cz1j
W2c+PjJdfDB9aWYoKHN8MCk9PS0xKXtjW2s+PjJdPTA7bD0yNzQwO2JyZWFrfWlmKCEocV4obnww
KT09MCkpe2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChsfDApPT0yNzQwKXtpZihx
KXticmVha31pPWE7cmV0dXJufX13aGlsZSgwKTtjW2U+PjJdPWNbZT4+Ml18MjtpPWE7cmV0dXJu
fWZ1bmN0aW9uIGdaKGEpe2E9YXwwO3JldHVybiAxMjd9ZnVuY3Rpb24gZ18oYSl7YT1hfDA7cmV0
dXJuIDEyN31mdW5jdGlvbiBnJChhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBnMChhKXthPWF8
MDtyZXR1cm4gMTI3fWZ1bmN0aW9uIGcxKGEpe2E9YXwwO3JldHVybiAxMjd9ZnVuY3Rpb24gZzIo
YSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZzMoYSl7YT1hfDA7cmV0dXJuIDIxNDc0ODM2NDd9
ZnVuY3Rpb24gZzQoYSl7YT1hfDA7cmV0dXJuIDIxNDc0ODM2NDd9ZnVuY3Rpb24gZzUoYSl7YT1h
fDA7cmV0dXJuIDB9ZnVuY3Rpb24gZzYoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDth
W2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1D
Pj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBnNyhiLGMpe2I9YnwwO2M9Y3wwO2M9
YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2Mr
MnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGc4KGIsYyl7
Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYy
NTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVu
Y3Rpb24gZzkoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+
ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMm
MjU1O3JldHVybn1mdW5jdGlvbiBoYShiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2Fb
Y109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+
Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGhiKGIsYyl7Yj1ifDA7Yz1jfDA7Yz1i
O0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysy
fDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gaGMoYSxiLGQs
ZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0w
LEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MDtnPWk7aD1iO2I9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbYj4+Ml09Y1toPj4yXTtoPWF8MDthPWNbaD4+Ml18MDtkb3tpZigoYXwwKT09MCl7aj0x
fWVsc2V7az1jW2ErMTI+PjJdfDA7aWYoKGt8MCk9PShjW2ErMTY+PjJdfDApKXtsPWIwW2NbKGNb
YT4+Ml18MCkrMzY+PjJdJjEyN10oYSl8MH1lbHNle2w9Y1trPj4yXXwwfWlmKChsfDApPT0tMSl7
Y1toPj4yXT0wO2o9MTticmVha31lbHNle2o9KGNbaD4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgw
KTtsPWJ8MDtiPWNbbD4+Ml18MDtkb3tpZigoYnwwKT09MCl7bT0yOX1lbHNle2E9Y1tiKzEyPj4y
XXwwO2lmKChhfDApPT0oY1tiKzE2Pj4yXXwwKSl7bj1iMFtjWyhjW2I+PjJdfDApKzM2Pj4yXSYx
MjddKGIpfDB9ZWxzZXtuPWNbYT4+Ml18MH1pZigobnwwKT09LTEpe2NbbD4+Ml09MDttPTI5O2Jy
ZWFrfWVsc2V7aWYoal4oYnwwKT09MCl7bz1iO2JyZWFrfWVsc2V7bT0zMTticmVha319fX13aGls
ZSgwKTtpZigobXwwKT09Mjkpe2lmKGope209MzF9ZWxzZXtvPTB9fWlmKChtfDApPT0zMSl7Y1tk
Pj4yXT1jW2Q+PjJdfDY7cD0wO2k9ZztyZXR1cm4gcHwwfWo9Y1toPj4yXXwwO2I9Y1tqKzEyPj4y
XXwwO2lmKChifDApPT0oY1tqKzE2Pj4yXXwwKSl7cT1iMFtjWyhjW2o+PjJdfDApKzM2Pj4yXSYx
MjddKGopfDB9ZWxzZXtxPWNbYj4+Ml18MH1iPWU7aWYoIShiMVtjWyhjW2I+PjJdfDApKzEyPj4y
XSY2M10oZSwyMDQ4LHEpfDApKXtjW2Q+PjJdPWNbZD4+Ml18NDtwPTA7aT1nO3JldHVybiBwfDB9
aj1lO249KGIxW2NbKGNbaj4+Ml18MCkrNTI+PjJdJjYzXShlLHEsMCl8MCk8PDI0Pj4yNDtxPWNb
aD4+Ml18MDthPXErMTJ8MDtrPWNbYT4+Ml18MDtpZigoa3wwKT09KGNbcSsxNj4+Ml18MCkpe3I9
Y1soY1txPj4yXXwwKSs0MD4+Ml18MDtiMFtyJjEyN10ocSl8MDtzPW47dD1mO3U9b31lbHNle2Nb
YT4+Ml09ays0O3M9bjt0PWY7dT1vfXdoaWxlKDEpe3Y9cy00OHwwO289dC0xfDA7Zj1jW2g+PjJd
fDA7ZG97aWYoKGZ8MCk9PTApe3c9MH1lbHNle249Y1tmKzEyPj4yXXwwO2lmKChufDApPT0oY1tm
KzE2Pj4yXXwwKSl7eD1iMFtjWyhjW2Y+PjJdfDApKzM2Pj4yXSYxMjddKGYpfDB9ZWxzZXt4PWNb
bj4+Ml18MH1pZigoeHwwKT09LTEpe2NbaD4+Ml09MDt3PTA7YnJlYWt9ZWxzZXt3PWNbaD4+Ml18
MDticmVha319fXdoaWxlKDApO2Y9KHd8MCk9PTA7aWYoKHV8MCk9PTApe3k9dzt6PTB9ZWxzZXtu
PWNbdSsxMj4+Ml18MDtpZigobnwwKT09KGNbdSsxNj4+Ml18MCkpe0E9YjBbY1soY1t1Pj4yXXww
KSszNj4+Ml0mMTI3XSh1KXwwfWVsc2V7QT1jW24+PjJdfDB9aWYoKEF8MCk9PS0xKXtjW2w+PjJd
PTA7Qj0wfWVsc2V7Qj11fXk9Y1toPj4yXXwwO3o9Qn1DPSh6fDApPT0wO2lmKCEoKGZeQykmKG98
MCk+MCkpe2JyZWFrfWY9Y1t5KzEyPj4yXXwwO2lmKChmfDApPT0oY1t5KzE2Pj4yXXwwKSl7RD1i
MFtjWyhjW3k+PjJdfDApKzM2Pj4yXSYxMjddKHkpfDB9ZWxzZXtEPWNbZj4+Ml18MH1pZighKGIx
W2NbKGNbYj4+Ml18MCkrMTI+PjJdJjYzXShlLDIwNDgsRCl8MCkpe3A9djttPTgxO2JyZWFrfWY9
KChiMVtjWyhjW2o+PjJdfDApKzUyPj4yXSY2M10oZSxELDApfDApPDwyND4+MjQpKyh2KjEwfDAp
fDA7bj1jW2g+PjJdfDA7az1uKzEyfDA7YT1jW2s+PjJdfDA7aWYoKGF8MCk9PShjW24rMTY+PjJd
fDApKXtxPWNbKGNbbj4+Ml18MCkrNDA+PjJdfDA7YjBbcSYxMjddKG4pfDA7cz1mO3Q9bzt1PXo7
Y29udGludWV9ZWxzZXtjW2s+PjJdPWErNDtzPWY7dD1vO3U9ejtjb250aW51ZX19aWYoKG18MCk9
PTgxKXtpPWc7cmV0dXJuIHB8MH1kb3tpZigoeXwwKT09MCl7RT0xfWVsc2V7dT1jW3krMTI+PjJd
fDA7aWYoKHV8MCk9PShjW3krMTY+PjJdfDApKXtGPWIwW2NbKGNbeT4+Ml18MCkrMzY+PjJdJjEy
N10oeSl8MH1lbHNle0Y9Y1t1Pj4yXXwwfWlmKChGfDApPT0tMSl7Y1toPj4yXT0wO0U9MTticmVh
a31lbHNle0U9KGNbaD4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZihDKXttPTc1fWVs
c2V7aD1jW3orMTI+PjJdfDA7aWYoKGh8MCk9PShjW3orMTY+PjJdfDApKXtHPWIwW2NbKGNbej4+
Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1toPj4yXXwwfWlmKChHfDApPT0tMSl7Y1ts
Pj4yXT0wO209NzU7YnJlYWt9aWYoRV4oenwwKT09MCl7cD12fWVsc2V7YnJlYWt9aT1nO3JldHVy
biBwfDB9fXdoaWxlKDApO2Rve2lmKChtfDApPT03NSl7aWYoRSl7YnJlYWt9ZWxzZXtwPXZ9aT1n
O3JldHVybiBwfDB9fXdoaWxlKDApO2NbZD4+Ml09Y1tkPj4yXXwyO3A9djtpPWc7cmV0dXJuIHB8
MH1mdW5jdGlvbiBoZChiLGQsZSxmLGcsaCxqLGspe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wO2c9aTtpPWkrMTEyfDA7Zj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
ZT4+Ml09Y1tmPj4yXTtmPWd8MDtsPWcrOHwwO209bHwwO249ZnwwO2Fbbl09Mzc7bz1mKzF8MDth
W29dPWo7cD1mKzJ8MDthW3BdPWs7YVtmKzN8MF09MDtpZihrPDwyND4+MjQhPTApe2Fbb109azth
W3BdPWp9aj1iayhtfDAsMTAwLG58MCxofDAsY1tkKzg+PjJdfDApfDA7ZD1sK2p8MDtsPWNbZT4+
Ml18MDtpZigoanwwKT09MCl7cT1sO3I9YnwwO2Nbcj4+Ml09cTtpPWc7cmV0dXJufWVsc2V7cz1s
O3Q9bX13aGlsZSgxKXttPWFbdF18MDtpZigoc3wwKT09MCl7dT0wfWVsc2V7bD1zKzI0fDA7aj1j
W2w+PjJdfDA7aWYoKGp8MCk9PShjW3MrMjg+PjJdfDApKXt2PWJfW2NbKGNbcz4+Ml18MCkrNTI+
PjJdJjMxXShzLG0mMjU1KXwwfWVsc2V7Y1tsPj4yXT1qKzE7YVtqXT1tO3Y9bSYyNTV9dT0odnww
KT09LTE/MDpzfW09dCsxfDA7aWYoKG18MCk9PShkfDApKXtxPXU7YnJlYWt9ZWxzZXtzPXU7dD1t
fX1yPWJ8MDtjW3I+PjJdPXE7aT1nO3JldHVybn1mdW5jdGlvbiBoZShhLGIsZCxlLGYsZyxoLGop
e2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2Y9aTtpPWkrNDA4fDA7ZT1kO2Q9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tlPj4yXTtlPWZ8MDtrPWYrNDAwfDA7bD1lfDA7Y1trPj4y
XT1lKzQwMDtoQyhiKzh8MCxsLGssZyxoLGopO2o9Y1trPj4yXXwwO2s9Y1tkPj4yXXwwO2lmKChs
fDApPT0oanwwKSl7bT1rO249YXwwO2Nbbj4+Ml09bTtpPWY7cmV0dXJufWVsc2V7bz1rO3A9bH13
aGlsZSgxKXtsPWNbcD4+Ml18MDtpZigob3wwKT09MCl7cT0wfWVsc2V7az1vKzI0fDA7ZD1jW2s+
PjJdfDA7aWYoKGR8MCk9PShjW28rMjg+PjJdfDApKXtyPWJfW2NbKGNbbz4+Ml18MCkrNTI+PjJd
JjMxXShvLGwpfDB9ZWxzZXtjW2s+PjJdPWQrNDtjW2Q+PjJdPWw7cj1sfXE9KHJ8MCk9PS0xPzA6
b31sPXArNHwwO2lmKChsfDApPT0oanwwKSl7bT1xO2JyZWFrfWVsc2V7bz1xO3A9bH19bj1hfDA7
Y1tuPj4yXT1tO2k9ZjtyZXR1cm59ZnVuY3Rpb24gaGYoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24gaGcoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaGgoYSxi
KXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhpKGEsYil7YT1hfDA7
Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoaihhLGIpe2E9YXwwO2I9YnwwO2sk
KGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaGsoYSxiKXthPWF8MDtiPWJ8MDtkXyhhLDEsNDUp
O3JldHVybn1mdW5jdGlvbiBobChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlv
biBobShhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBobihhLGIpe2E9YXwwO2I9Ynww
O2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaG8oYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAs
MCwxMik7cmV0dXJufWZ1bmN0aW9uIGhwKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3Jl
dHVybn1mdW5jdGlvbiBocShhLGIpe2E9YXwwO2I9YnwwO2RfKGEsMSw0NSk7cmV0dXJufWZ1bmN0
aW9uIGhyKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGhzKGEpe2E9YXww
O2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGh0KGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIp
O3JldHVybn1mdW5jdGlvbiBodShhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59
ZnVuY3Rpb24gaHYoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9u
IGh3KGEsYil7YT1hfDA7Yj1ifDA7ZXkoYSwxLDQ1KTtyZXR1cm59ZnVuY3Rpb24gaHgoYSl7YT1h
fDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaHkoYil7Yj1ifDA7dmFyIGQ9MCxlPTAs
Zj0wLGc9MDtkPWI7ZT1iKzh8MDtmPWNbZT4+Ml18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O2lmKChmfDApPT0oY1syOTU4XXwwKSl7Zz1ifDA7ZGUoZyk7a1MoZCk7cmV0dXJufWE3KGNbZT4+
Ml18MCk7Zz1ifDA7ZGUoZyk7a1MoZCk7cmV0dXJufWZ1bmN0aW9uIGh6KGIpe2I9YnwwO3ZhciBk
PTAsZT0wLGY9MDtkPWIrOHwwO2U9Y1tkPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYo
KGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7
aWYoKGV8MCk9PShjWzI5NThdfDApKXtmPWJ8MDtkZShmKTtyZXR1cm59YTcoY1tkPj4yXXwwKTtm
PWJ8MDtkZShmKTtyZXR1cm59ZnVuY3Rpb24gaEEoYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9
MDtkPWI7ZT1iKzh8MDtmPWNbZT4+Ml18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygx
NjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChm
fDApPT0oY1syOTU4XXwwKSl7Zz1ifDA7ZGUoZyk7a1MoZCk7cmV0dXJufWE3KGNbZT4+Ml18MCk7
Zz1ifDA7ZGUoZyk7a1MoZCk7cmV0dXJufWZ1bmN0aW9uIGhCKGIpe2I9YnwwO3ZhciBkPTAsZT0w
LGY9MDtkPWIrOHwwO2U9Y1tkPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGV8
MCk9PShjWzI5NThdfDApKXtmPWJ8MDtkZShmKTtyZXR1cm59YTcoY1tkPj4yXXwwKTtmPWJ8MDtk
ZShmKTtyZXR1cm59ZnVuY3Rpb24gaEMoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wO2o9aTtp
PWkrMTIwfDA7az1qfDA7bD1qKzExMnwwO209aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO249ais4fDA7
bz1rfDA7YVtvXT0zNztwPWsrMXwwO2FbcF09ZztxPWsrMnwwO2FbcV09aDthW2srM3wwXT0wO2lm
KGg8PDI0Pj4yNCE9MCl7YVtwXT1oO2FbcV09Z31nPWJ8MDtiayhufDAsMTAwLG98MCxmfDAsY1tn
Pj4yXXwwKXwwO2NbbD4+Ml09MDtjW2wrND4+Ml09MDtjW20+PjJdPW47bj0oY1tlPj4yXXwwKS1k
Pj4yO2Y9YkIoY1tnPj4yXXwwKXwwO2c9a2UoZCxtLG4sbCl8MDtpZigoZnwwKSE9MCl7YkIoZnww
KXwwfWlmKChnfDApPT0tMSl7aFYoOTA0KX1lbHNle2NbZT4+Ml09ZCsoZzw8Mik7aT1qO3JldHVy
bn19ZnVuY3Rpb24gaEQoYSl7YT1hfDA7cmV0dXJuIDIxNDc0ODM2NDd9ZnVuY3Rpb24gaEUoYSl7
YT1hfDA7cmV0dXJuIDIxNDc0ODM2NDd9ZnVuY3Rpb24gaEYoYSl7YT1hfDA7cmV0dXJuIDB9ZnVu
Y3Rpb24gaEcoYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGhIKGIsYyl7Yj1ifDA7Yz1jfDA7Yz1i
O0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysy
fDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gaEkoYixjKXti
PWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1
NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5j
dGlvbiBoSihhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoSyhhLGIpe2E9YXwwO2I9
YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaEwoYSxiKXthPWF8MDtiPWJ8MDtrJChh
fDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhNKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIp
O3JldHVybn1mdW5jdGlvbiBoTihhLGIpe2E9YXwwO2I9YnwwO2V5KGEsMSw0NSk7cmV0dXJufWZ1
bmN0aW9uIGhPKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGhQKGEpe2E9
YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhRKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0w
LEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAs
Uj0wLFM9MDtkPWk7aT1pKzI4MHwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWR8
MDttPWQrMTZ8MDtuPWQrMTIwfDA7bz1kKzEyOHwwO3A9ZCsxMzZ8MDtxPWQrMTQ0fDA7cj1kKzE1
MnwwO3M9ZCsxNjB8MDt0PWQrMTc2fDA7dT1ufDA7Y1t1Pj4yXT1tO3Y9bis0fDA7Y1t2Pj4yXT0x
NjY7dz1tKzEwMHwwO2VqKHAsaCk7bT1wfDA7eD1jW20+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0x
KXtjW2w+PjJdPTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1s
PShjWzM5MjVdfDApLTF8MDt5PWNbeCs4Pj4yXXwwO2Rve2lmKChjW3grMTI+PjJdfDApLXk+PjI+
Pj4wPmw+Pj4wKXt6PWNbeSsobDw8Mik+PjJdfDA7aWYoKHp8MCk9PTApe2JyZWFrfUE9ejthW3Fd
PTA7Qj1mfDA7Y1tyPj4yXT1jW0I+PjJdO2Rve2lmKGhSKGUscixnLHAsY1toKzQ+PjJdfDAsaixx
LEEsbixvLHcpfDApe0M9c3wwO0Q9Y1soY1t6Pj4yXXwwKSszMj4+Ml18MDtjYVtEJjE1XShBLDIx
MTIsMjEyMixDKXwwO0Q9dHwwO0U9Y1tvPj4yXXwwO0Y9Y1t1Pj4yXXwwO0c9RS1GfDA7ZG97aWYo
KEd8MCk+OTgpe0g9a0ooRysyfDApfDA7aWYoKEh8MCkhPTApe0k9SDtKPUg7YnJlYWt9a1goKTtJ
PTA7Sj0wfWVsc2V7ST1EO0o9MH19d2hpbGUoMCk7aWYoKGFbcV0mMSk9PTApe0s9SX1lbHNle2Fb
SV09NDU7Sz1JKzF8MH1pZihGPj4+MDxFPj4+MCl7Rz1zKzEwfDA7SD1zO0w9SztNPUY7d2hpbGUo
MSl7Tj1DO3doaWxlKDEpe2lmKChOfDApPT0oR3wwKSl7Tz1HO2JyZWFrfWlmKChhW05dfDApPT0o
YVtNXXwwKSl7Tz1OO2JyZWFrfWVsc2V7Tj1OKzF8MH19YVtMXT1hWzIxMTIrKE8tSCl8MF18MDtO
PU0rMXwwO1A9TCsxfDA7aWYoTj4+PjA8KGNbbz4+Ml18MCk+Pj4wKXtMPVA7TT1OfWVsc2V7UT1Q
O2JyZWFrfX19ZWxzZXtRPUt9YVtRXT0wO009YkQoRHwwLDE0MDgsKEw9aSxpPWkrOHwwLGNbTD4+
Ml09ayxMKXwwKXwwO2k9TDtpZigoTXwwKT09MSl7aWYoKEp8MCk9PTApe2JyZWFrfWtLKEopO2Jy
ZWFrfU09Yk8oOCl8MDtkRShNLDEzNjgpO2JsKE18MCw4MTkyLDIyKX19d2hpbGUoMCk7QT1lfDA7
ej1jW0E+PjJdfDA7ZG97aWYoKHp8MCk9PTApe1I9MH1lbHNle2lmKChjW3orMTI+PjJdfDApIT0o
Y1t6KzE2Pj4yXXwwKSl7Uj16O2JyZWFrfWlmKChiMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjdd
KHopfDApIT0tMSl7Uj16O2JyZWFrfWNbQT4+Ml09MDtSPTB9fXdoaWxlKDApO0E9KFJ8MCk9PTA7
ej1jW0I+PjJdfDA7ZG97aWYoKHp8MCk9PTApe1M9MjQ0fWVsc2V7aWYoKGNbeisxMj4+Ml18MCkh
PShjW3orMTY+PjJdfDApKXtpZihBKXticmVha31lbHNle1M9MjQ2O2JyZWFrfX1pZigoYjBbY1so
Y1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwKT09LTEpe2NbQj4+Ml09MDtTPTI0NDticmVha31l
bHNle2lmKEFeKHp8MCk9PTApe2JyZWFrfWVsc2V7Uz0yNDY7YnJlYWt9fX19d2hpbGUoMCk7aWYo
KFN8MCk9PTI0NCl7aWYoQSl7Uz0yNDZ9fWlmKChTfDApPT0yNDYpe2Nbaj4+Ml09Y1tqPj4yXXwy
fWNbYj4+Ml09Ujt6PWNbbT4+Ml18MDtkeih6KXwwO3o9Y1t1Pj4yXXwwO2NbdT4+Ml09MDtpZigo
enwwKT09MCl7aT1kO3JldHVybn1iWVtjW3Y+PjJdJjUxMV0oeik7aT1kO3JldHVybn19d2hpbGUo
MCk7ZD1iTyg0KXwwO2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaFIoZSxmLGcsaCxq
LGssbCxtLG4sbyxwKXtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDtt
PW18MDtuPW58MDtvPW98MDtwPXB8MDt2YXIgcT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAs
Xz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0w
LGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxh
dj0wLGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0wLGFDPTAsYUQ9MCxhRT0wLGFGPTAsYUc9
MCxhSD0wLGFJPTAsYUo9MCxhSz0wLGFMPTAsYU09MCxhTj0wLGFPPTAsYVA9MCxhUT0wLGFSPTAs
YVM9MCxhVD0wLGFVPTAsYVY9MCxhVz0wLGFYPTAsYVk9MCxhWj0wLGFfPTAsYSQ9MCxhMD0wLGEx
PTAsYTI9MCxhMz0wLGE0PTAsYTU9MCxhNj0wLGE3PTAsYTg9MCxhOT0wLGJhPTAsYmI9MCxiYz0w
LGJkPTAsYmU9MCxiZj0wLGJnPTAsYmg9MCxiaT0wLGJqPTAsYms9MCxibD0wLGJtPTAsYm49MCxi
bz0wLGJwPTAsYnE9MCxicj0wLGJzPTAsYnQ9MCxidT0wLGJ2PTAsYnc9MCxieD0wLGJ5PTAsYno9
MCxiQT0wLGJCPTAsYkM9MCxiRD0wLGJFPTA7cT1pO2k9aSs0NDB8MDtyPWY7Zj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW3I+PjJdO3I9cXwwO3M9cSs0MDB8MDt0PXErNDA4fDA7dT1x
KzQxNnwwO3Y9cSs0MjR8MDt3PXY7eD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3k9aTtpPWkrMTJ8
MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7QT1pO2k9aSsxMnwwO2k9aSs3
Pj4zPDwzO0I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0Q9
cnwwO2skKHd8MCwwLDEyKTtFPXg7Rj15O0c9ejtIPUE7ayQoRXwwLDAsMTIpO2skKEZ8MCwwLDEy
KTtrJChHfDAsMCwxMik7ayQoSHwwLDAsMTIpO2hYKGcsaCxzLHQsdSx2LHgseSx6LEIpO2g9bnww
O2Nbbz4+Ml09Y1toPj4yXTtnPWV8MDtlPWZ8MDtmPW0rOHwwO209eisxfDA7ST16KzR8MDtKPXor
OHwwO0s9eSsxfDA7TD15KzR8MDtNPXkrOHwwO049KGomNTEyfDApIT0wO2o9eCsxfDA7Tz14KzR8
MDtQPXgrOHwwO1E9QSsxfDA7Uj1BKzR8MDtTPUErOHwwO1Q9cyszfDA7VT1uKzR8MDtuPXYrNHww
O1Y9cDtwPTE2NjtXPUQ7WD1EO0Q9cis0MDB8MDtyPTA7WT0wO0wyODY6d2hpbGUoMSl7Wj1jW2c+
PjJdfDA7ZG97aWYoKFp8MCk9PTApe189MH1lbHNle2lmKChjW1orMTI+PjJdfDApIT0oY1taKzE2
Pj4yXXwwKSl7Xz1aO2JyZWFrfWlmKChiMFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFopfDAp
PT0tMSl7Y1tnPj4yXT0wO189MDticmVha31lbHNle189Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUo
MCk7Wj0oX3wwKT09MDskPWNbZT4+Ml18MDtkb3tpZigoJHwwKT09MCl7YWE9MjcxfWVsc2V7aWYo
KGNbJCsxMj4+Ml18MCkhPShjWyQrMTY+PjJdfDApKXtpZihaKXthYj0kO2JyZWFrfWVsc2V7YWM9
cDthZD1XO2FlPVg7YWY9cjthYT01MjM7YnJlYWsgTDI4Nn19aWYoKGIwW2NbKGNbJD4+Ml18MCkr
MzY+PjJdJjEyN10oJCl8MCk9PS0xKXtjW2U+PjJdPTA7YWE9MjcxO2JyZWFrfWVsc2V7aWYoWil7
YWI9JDticmVha31lbHNle2FjPXA7YWQ9VzthZT1YO2FmPXI7YWE9NTIzO2JyZWFrIEwyODZ9fX19
d2hpbGUoMCk7aWYoKGFhfDApPT0yNzEpe2FhPTA7aWYoWil7YWM9cDthZD1XO2FlPVg7YWY9cjth
YT01MjM7YnJlYWt9ZWxzZXthYj0wfX1MMzA4OmRve3N3aXRjaChhW3MrWXwwXXwwKXtjYXNlIDE6
e2lmKChZfDApPT0zKXthYz1wO2FkPVc7YWU9WDthZj1yO2FhPTUyMzticmVhayBMMjg2fSQ9Y1tn
Pj4yXXwwO2FnPWNbJCsxMj4+Ml18MDtpZigoYWd8MCk9PShjWyQrMTY+PjJdfDApKXthaD0oYjBb
Y1soY1skPj4yXXwwKSszNj4+Ml0mMTI3XSgkKXwwKSYyNTV9ZWxzZXthaD1hW2FnXXwwfWlmKGFo
PDwyND4+MjQ8PS0xKXthYT0yOTY7YnJlYWsgTDI4Nn1pZigoYlsoY1tmPj4yXXwwKSsoYWg8PDI0
Pj4yNDw8MSk+PjFdJjgxOTIpPT0wKXthYT0yOTY7YnJlYWsgTDI4Nn1hZz1jW2c+PjJdfDA7JD1h
ZysxMnwwO2FpPWNbJD4+Ml18MDtpZigoYWl8MCk9PShjW2FnKzE2Pj4yXXwwKSl7YWo9KGIwW2Nb
KGNbYWc+PjJdfDApKzQwPj4yXSYxMjddKGFnKXwwKSYyNTV9ZWxzZXtjWyQ+PjJdPWFpKzE7YWo9
YVthaV18MH1kVShBLGFqKTthYT0yOTc7YnJlYWt9O2Nhc2UgMzp7YWk9YVtGXXwwOyQ9YWkmMjU1
O2FnPSgkJjF8MCk9PTA/JD4+PjE6Y1tMPj4yXXwwOyQ9YVtHXXwwO2FrPSQmMjU1O2FsPShhayYx
fDApPT0wP2FrPj4+MTpjW0k+PjJdfDA7aWYoKGFnfDApPT0oLWFsfDApKXthbT1yO2FuPUQ7YW89
WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWFrPShhZ3wwKT09MDthZz1jW2c+PjJdfDA7YXM9
Y1thZysxMj4+Ml18MDthdD1jW2FnKzE2Pj4yXXwwO2F1PShhc3wwKT09KGF0fDApO2lmKCEoYWt8
KGFsfDApPT0wKSl7aWYoYXUpe2FsPShiMFtjWyhjW2FnPj4yXXwwKSszNj4+Ml0mMTI3XShhZyl8
MCkmMjU1O2F2PWNbZz4+Ml18MDthdz1hbDtheD1hW0ZdfDA7YXk9YXY7YXo9Y1thdisxMj4+Ml18
MDthQT1jW2F2KzE2Pj4yXXwwfWVsc2V7YXc9YVthc118MDtheD1haTtheT1hZzthej1hczthQT1h
dH1hdD1heSsxMnwwO2F2PShhenwwKT09KGFBfDApO2lmKGF3PDwyND4+MjQ9PShhWyhheCYxKT09
MD9LOmNbTT4+Ml18MF18MCkpe2lmKGF2KXthbD1jWyhjW2F5Pj4yXXwwKSs0MD4+Ml18MDtiMFth
bCYxMjddKGF5KXwwfWVsc2V7Y1thdD4+Ml09YXorMX1hdD1kW0ZdfDA7YW09KChhdCYxfDApPT0w
P2F0Pj4+MTpjW0w+PjJdfDApPj4+MD4xP3k6cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJl
YWsgTDMwOH1pZihhdil7YUI9KGIwW2NbKGNbYXk+PjJdfDApKzM2Pj4yXSYxMjddKGF5KXwwKSYy
NTV9ZWxzZXthQj1hW2F6XXwwfWlmKGFCPDwyND4+MjQhPShhWyhhW0ddJjEpPT0wP206Y1tKPj4y
XXwwXXwwKSl7YWE9MzYzO2JyZWFrIEwyODZ9YXY9Y1tnPj4yXXwwO2F0PWF2KzEyfDA7YWw9Y1th
dD4+Ml18MDtpZigoYWx8MCk9PShjW2F2KzE2Pj4yXXwwKSl7YUM9Y1soY1thdj4+Ml18MCkrNDA+
PjJdfDA7YjBbYUMmMTI3XShhdil8MH1lbHNle2NbYXQ+PjJdPWFsKzF9YVtsXT0xO2FsPWRbR118
MDthbT0oKGFsJjF8MCk9PTA/YWw+Pj4xOmNbST4+Ml18MCk+Pj4wPjE/ejpyO2FuPUQ7YW89WDth
cD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWlmKGFrKXtpZihhdSl7YWs9KGIwW2NbKGNbYWc+PjJd
fDApKzM2Pj4yXSYxMjddKGFnKXwwKSYyNTU7YUQ9YWs7YUU9YVtHXXwwfWVsc2V7YUQ9YVthc118
MDthRT0kfWlmKGFEPDwyND4+MjQhPShhWyhhRSYxKT09MD9tOmNbSj4+Ml18MF18MCkpe2FtPXI7
YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9JD1jW2c+PjJdfDA7YWs9JCsxMnww
O2FsPWNbYWs+PjJdfDA7aWYoKGFsfDApPT0oY1skKzE2Pj4yXXwwKSl7YXQ9Y1soY1skPj4yXXww
KSs0MD4+Ml18MDtiMFthdCYxMjddKCQpfDB9ZWxzZXtjW2FrPj4yXT1hbCsxfWFbbF09MTthbD1k
W0ddfDA7YW09KChhbCYxfDApPT0wP2FsPj4+MTpjW0k+PjJdfDApPj4+MD4xP3o6cjthbj1EO2Fv
PVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1pZihhdSl7YXU9KGIwW2NbKGNbYWc+PjJdfDAp
KzM2Pj4yXSYxMjddKGFnKXwwKSYyNTU7YUY9YXU7YUc9YVtGXXwwfWVsc2V7YUY9YVthc118MDth
Rz1haX1pZihhRjw8MjQ+PjI0IT0oYVsoYUcmMSk9PTA/SzpjW00+PjJdfDBdfDApKXthW2xdPTE7
YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1haT1jW2c+PjJdfDA7YXM9
YWkrMTJ8MDthdT1jW2FzPj4yXXwwO2lmKChhdXwwKT09KGNbYWkrMTY+PjJdfDApKXthZz1jWyhj
W2FpPj4yXXwwKSs0MD4+Ml18MDtiMFthZyYxMjddKGFpKXwwfWVsc2V7Y1thcz4+Ml09YXUrMX1h
dT1kW0ZdfDA7YW09KChhdSYxfDApPT0wP2F1Pj4+MTpjW0w+PjJdfDApPj4+MD4xP3k6cjthbj1E
O2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWt9O2Nhc2UgMDp7YWE9Mjk3O2JyZWFrfTtjYXNlIDI6
e2lmKCEoKHJ8MCkhPTB8WT4+PjA8Mikpe2lmKChZfDApPT0yKXthSD0oYVtUXXwwKSE9MH1lbHNl
e2FIPTB9aWYoIShOfGFIKSl7YW09MDthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMw
OH19YXU9YVtFXXwwO2FzPShhdSYxKT09MD9qOmNbUD4+Ml18MDtMMzgyOmRve2lmKChZfDApPT0w
KXthST1hc31lbHNle2lmKChkW3MrKFktMSl8MF18MCk+PTIpe2FJPWFzO2JyZWFrfWFpPWF1JjI1
NTthZz1hcysoKGFpJjF8MCk9PTA/YWk+Pj4xOmNbTz4+Ml18MCl8MDthaT1hczt3aGlsZSgxKXtp
ZigoYWl8MCk9PShhZ3wwKSl7YUo9YWc7YnJlYWt9YWw9YVthaV18MDtpZihhbDw8MjQ+PjI0PD0t
MSl7YUo9YWk7YnJlYWt9aWYoKGJbKGNbZj4+Ml18MCkrKGFsPDwyND4+MjQ8PDEpPj4xXSY4MTky
KT09MCl7YUo9YWk7YnJlYWt9ZWxzZXthaT1haSsxfDB9fWFpPWFKLWFzfDA7YWc9YVtIXXwwO2Fs
PWFnJjI1NTthaz0oYWwmMXwwKT09MD9hbD4+PjE6Y1tSPj4yXXwwO2lmKGFpPj4+MD5haz4+PjAp
e2FJPWFzO2JyZWFrfWFsPShhZyYxKT09MD9ROmNbUz4+Ml18MDthZz1hbCtha3wwO2lmKChhSnww
KT09KGFzfDApKXthST1hczticmVha30kPWFzO2F0PWFsKyhhay1haSl8MDt3aGlsZSgxKXtpZigo
YVthdF18MCkhPShhWyRdfDApKXthST1hczticmVhayBMMzgyfWFpPWF0KzF8MDtpZigoYWl8MCk9
PShhZ3wwKSl7YUk9YUo7YnJlYWt9ZWxzZXskPSQrMXwwO2F0PWFpfX19fXdoaWxlKDApO2F0PWF1
JjI1NTtMMzk2OmRve2lmKChhSXwwKT09KGFzKygoYXQmMXwwKT09MD9hdD4+PjE6Y1tPPj4yXXww
KXwwKSl7YUs9YUl9ZWxzZXskPWFiO2FnPWFJO3doaWxlKDEpe2FpPWNbZz4+Ml18MDtkb3tpZigo
YWl8MCk9PTApe2FMPTB9ZWxzZXtpZigoY1thaSsxMj4+Ml18MCkhPShjW2FpKzE2Pj4yXXwwKSl7
YUw9YWk7YnJlYWt9aWYoKGIwW2NbKGNbYWk+PjJdfDApKzM2Pj4yXSYxMjddKGFpKXwwKT09LTEp
e2NbZz4+Ml09MDthTD0wO2JyZWFrfWVsc2V7YUw9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7
YWk9KGFMfDApPT0wO2Rve2lmKCgkfDApPT0wKXthYT0zOTJ9ZWxzZXtpZigoY1skKzEyPj4yXXww
KSE9KGNbJCsxNj4+Ml18MCkpe2lmKGFpKXthTT0kO2JyZWFrfWVsc2V7YUs9YWc7YnJlYWsgTDM5
Nn19aWYoKGIwW2NbKGNbJD4+Ml18MCkrMzY+PjJdJjEyN10oJCl8MCk9PS0xKXtjW2U+PjJdPTA7
YWE9MzkyO2JyZWFrfWVsc2V7aWYoYWkpe2FNPSQ7YnJlYWt9ZWxzZXthSz1hZzticmVhayBMMzk2
fX19fXdoaWxlKDApO2lmKChhYXwwKT09MzkyKXthYT0wO2lmKGFpKXthSz1hZzticmVhayBMMzk2
fWVsc2V7YU09MH19YWs9Y1tnPj4yXXwwO2FsPWNbYWsrMTI+PjJdfDA7aWYoKGFsfDApPT0oY1th
aysxNj4+Ml18MCkpe2FOPShiMFtjWyhjW2FrPj4yXXwwKSszNj4+Ml0mMTI3XShhayl8MCkmMjU1
fWVsc2V7YU49YVthbF18MH1pZihhTjw8MjQ+PjI0IT0oYVthZ118MCkpe2FLPWFnO2JyZWFrIEwz
OTZ9YWw9Y1tnPj4yXXwwO2FrPWFsKzEyfDA7YXY9Y1thaz4+Ml18MDtpZigoYXZ8MCk9PShjW2Fs
KzE2Pj4yXXwwKSl7YUM9Y1soY1thbD4+Ml18MCkrNDA+PjJdfDA7YjBbYUMmMTI3XShhbCl8MH1l
bHNle2NbYWs+PjJdPWF2KzF9YXY9YWcrMXwwO2FrPWFbRV18MDthbD1hayYyNTU7aWYoKGF2fDAp
PT0oKChhayYxKT09MD9qOmNbUD4+Ml18MCkrKChhbCYxfDApPT0wP2FsPj4+MTpjW08+PjJdfDAp
fDApKXthSz1hdjticmVha31lbHNleyQ9YU07YWc9YXZ9fX19d2hpbGUoMCk7aWYoIU4pe2FtPXI7
YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9YXQ9YVtFXXwwO2FzPWF0JjI1NTtp
ZigoYUt8MCk9PSgoKGF0JjEpPT0wP2o6Y1tQPj4yXXwwKSsoKGFzJjF8MCk9PTA/YXM+Pj4xOmNb
Tz4+Ml18MCl8MCkpe2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WfWVsc2V7YWE9NDA1O2Jy
ZWFrIEwyODZ9YnJlYWt9O2Nhc2UgNDp7YXM9MDthdD1EO2F1PVg7YWc9VzskPXA7YXY9VjtMNDMx
OndoaWxlKDEpe2FsPWNbZz4+Ml18MDtkb3tpZigoYWx8MCk9PTApe2FPPTB9ZWxzZXtpZigoY1th
bCsxMj4+Ml18MCkhPShjW2FsKzE2Pj4yXXwwKSl7YU89YWw7YnJlYWt9aWYoKGIwW2NbKGNbYWw+
PjJdfDApKzM2Pj4yXSYxMjddKGFsKXwwKT09LTEpe2NbZz4+Ml09MDthTz0wO2JyZWFrfWVsc2V7
YU89Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7YWw9KGFPfDApPT0wO2FrPWNbZT4+Ml18MDtk
b3tpZigoYWt8MCk9PTApe2FhPTQxOH1lbHNle2lmKChjW2FrKzEyPj4yXXwwKSE9KGNbYWsrMTY+
PjJdfDApKXtpZihhbCl7YnJlYWt9ZWxzZXticmVhayBMNDMxfX1pZigoYjBbY1soY1thaz4+Ml18
MCkrMzY+PjJdJjEyN10oYWspfDApPT0tMSl7Y1tlPj4yXT0wO2FhPTQxODticmVha31lbHNle2lm
KGFsKXticmVha31lbHNle2JyZWFrIEw0MzF9fX19d2hpbGUoMCk7aWYoKGFhfDApPT00MTgpe2Fh
PTA7aWYoYWwpe2JyZWFrfX1haz1jW2c+PjJdfDA7YUM9Y1thaysxMj4+Ml18MDtpZigoYUN8MCk9
PShjW2FrKzE2Pj4yXXwwKSl7YVA9KGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXww
KSYyNTV9ZWxzZXthUD1hW2FDXXwwfWRve2lmKGFQPDwyND4+MjQ+LTEpe2lmKChiWyhjW2Y+PjJd
fDApKyhhUDw8MjQ+PjI0PDwxKT4+MV0mMjA0OCk9PTApe2FhPTQzNzticmVha31hQz1jW28+PjJd
fDA7aWYoKGFDfDApPT0oYXZ8MCkpe2FrPShjW1U+PjJdfDApIT0xNjY7YVE9Y1toPj4yXXwwO2FS
PWF2LWFRfDA7YVM9YVI+Pj4wPDIxNDc0ODM2NDc/YVI8PDE6LTE7YVQ9a0woYWs/YVE6MCxhUyl8
MDtpZigoYVR8MCk9PTApe2tYKCl9ZG97aWYoYWspe2NbaD4+Ml09YVQ7YVU9YVR9ZWxzZXthUT1j
W2g+PjJdfDA7Y1toPj4yXT1hVDtpZigoYVF8MCk9PTApe2FVPWFUO2JyZWFrfWJZW2NbVT4+Ml0m
NTExXShhUSk7YVU9Y1toPj4yXXwwfX13aGlsZSgwKTtjW1U+PjJdPTgyO2FUPWFVK2FSfDA7Y1tv
Pj4yXT1hVDthVj0oY1toPj4yXXwwKSthU3wwO2FXPWFUfWVsc2V7YVY9YXY7YVc9YUN9Y1tvPj4y
XT1hVysxO2FbYVddPWFQO2FYPWFzKzF8MDthWT1hdDthWj1hdTthXz1hZzthJD0kO2EwPWFWfWVs
c2V7YWE9NDM3fX13aGlsZSgwKTtpZigoYWF8MCk9PTQzNyl7YWE9MDthbD1kW3ddfDA7aWYoKCgo
YWwmMXwwKT09MD9hbD4+PjE6Y1tuPj4yXXwwKXwwKT09MHwoYXN8MCk9PTApe2JyZWFrfWlmKGFQ
PDwyND4+MjQhPShhW3VdfDApKXticmVha31pZigoYXV8MCk9PShhdHwwKSl7YWw9YXUtYWd8MDth
VD1hbD4+PjA8MjE0NzQ4MzY0Nz9hbDw8MTotMTtpZigoJHwwKT09MTY2KXthMT0wfWVsc2V7YTE9
YWd9YWs9a0woYTEsYVQpfDA7YWk9YWs7aWYoKGFrfDApPT0wKXtrWCgpfWEyPWFpKyhhVD4+PjI8
PDIpfDA7YTM9YWkrKGFsPj4yPDwyKXwwO2E0PWFpO2E1PTgyfWVsc2V7YTI9YXQ7YTM9YXU7YTQ9
YWc7YTU9JH1jW2EzPj4yXT1hczthWD0wO2FZPWEyO2FaPWEzKzR8MDthXz1hNDthJD1hNTthMD1h
dn1haT1jW2c+PjJdfDA7YWw9YWkrMTJ8MDthVD1jW2FsPj4yXXwwO2lmKChhVHwwKT09KGNbYWkr
MTY+PjJdfDApKXthaz1jWyhjW2FpPj4yXXwwKSs0MD4+Ml18MDtiMFthayYxMjddKGFpKXwwO2Fz
PWFYO2F0PWFZO2F1PWFaO2FnPWFfOyQ9YSQ7YXY9YTA7Y29udGludWV9ZWxzZXtjW2FsPj4yXT1h
VCsxO2FzPWFYO2F0PWFZO2F1PWFaO2FnPWFfOyQ9YSQ7YXY9YTA7Y29udGludWV9fWlmKChhZ3ww
KT09KGF1fDApfChhc3wwKT09MCl7YTY9YXQ7YTc9YXU7YTg9YWc7YTk9JH1lbHNle2lmKChhdXww
KT09KGF0fDApKXthVD1hdS1hZ3wwO2FsPWFUPj4+MDwyMTQ3NDgzNjQ3P2FUPDwxOi0xO2lmKCgk
fDApPT0xNjYpe2JhPTB9ZWxzZXtiYT1hZ31haT1rTChiYSxhbCl8MDthaz1haTtpZigoYWl8MCk9
PTApe2tYKCl9YmI9YWsrKGFsPj4+Mjw8Mil8MDtiYz1haysoYVQ+PjI8PDIpfDA7YmQ9YWs7YmU9
ODJ9ZWxzZXtiYj1hdDtiYz1hdTtiZD1hZztiZT0kfWNbYmM+PjJdPWFzO2E2PWJiO2E3PWJjKzR8
MDthOD1iZDthOT1iZX1pZigoY1tCPj4yXXwwKT4wKXthaz1jW2c+PjJdfDA7ZG97aWYoKGFrfDAp
PT0wKXtiZj0wfWVsc2V7aWYoKGNbYWsrMTI+PjJdfDApIT0oY1thaysxNj4+Ml18MCkpe2JmPWFr
O2JyZWFrfWlmKChiMFtjWyhjW2FrPj4yXXwwKSszNj4+Ml0mMTI3XShhayl8MCk9PS0xKXtjW2c+
PjJdPTA7YmY9MDticmVha31lbHNle2JmPWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO2FrPShi
ZnwwKT09MDthcz1jW2U+PjJdfDA7ZG97aWYoKGFzfDApPT0wKXthYT00NzB9ZWxzZXtpZigoY1th
cysxMj4+Ml18MCkhPShjW2FzKzE2Pj4yXXwwKSl7aWYoYWspe2JnPWFzO2JyZWFrfWVsc2V7YWE9
NDc3O2JyZWFrIEwyODZ9fWlmKChiMFtjWyhjW2FzPj4yXXwwKSszNj4+Ml0mMTI3XShhcyl8MCk9
PS0xKXtjW2U+PjJdPTA7YWE9NDcwO2JyZWFrfWVsc2V7aWYoYWspe2JnPWFzO2JyZWFrfWVsc2V7
YWE9NDc3O2JyZWFrIEwyODZ9fX19d2hpbGUoMCk7aWYoKGFhfDApPT00NzApe2FhPTA7aWYoYWsp
e2FhPTQ3NzticmVhayBMMjg2fWVsc2V7Ymc9MH19YXM9Y1tnPj4yXXwwOyQ9Y1thcysxMj4+Ml18
MDtpZigoJHwwKT09KGNbYXMrMTY+PjJdfDApKXtiaD0oYjBbY1soY1thcz4+Ml18MCkrMzY+PjJd
JjEyN10oYXMpfDApJjI1NX1lbHNle2JoPWFbJF18MH1pZihiaDw8MjQ+PjI0IT0oYVt0XXwwKSl7
YWE9NDc3O2JyZWFrIEwyODZ9JD1jW2c+PjJdfDA7YXM9JCsxMnwwO2FnPWNbYXM+PjJdfDA7aWYo
KGFnfDApPT0oY1skKzE2Pj4yXXwwKSl7YXU9Y1soY1skPj4yXXwwKSs0MD4+Ml18MDtiMFthdSYx
MjddKCQpfDA7Ymk9YXY7Ymo9Ymd9ZWxzZXtjW2FzPj4yXT1hZysxO2JpPWF2O2JqPWJnfXdoaWxl
KDEpe2FnPWNbZz4+Ml18MDtkb3tpZigoYWd8MCk9PTApe2JrPTB9ZWxzZXtpZigoY1thZysxMj4+
Ml18MCkhPShjW2FnKzE2Pj4yXXwwKSl7Yms9YWc7YnJlYWt9aWYoKGIwW2NbKGNbYWc+PjJdfDAp
KzM2Pj4yXSYxMjddKGFnKXwwKT09LTEpe2NbZz4+Ml09MDtiaz0wO2JyZWFrfWVsc2V7Yms9Y1tn
Pj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7YWc9KGJrfDApPT0wO2Rve2lmKChianwwKT09MCl7YWE9
NDkzfWVsc2V7aWYoKGNbYmorMTI+PjJdfDApIT0oY1tiaisxNj4+Ml18MCkpe2lmKGFnKXtibD1i
ajticmVha31lbHNle2FhPTUwMTticmVhayBMMjg2fX1pZigoYjBbY1soY1tiaj4+Ml18MCkrMzY+
PjJdJjEyN10oYmopfDApPT0tMSl7Y1tlPj4yXT0wO2FhPTQ5MzticmVha31lbHNle2lmKGFnKXti
bD1iajticmVha31lbHNle2FhPTUwMTticmVhayBMMjg2fX19fXdoaWxlKDApO2lmKChhYXwwKT09
NDkzKXthYT0wO2lmKGFnKXthYT01MDE7YnJlYWsgTDI4Nn1lbHNle2JsPTB9fWFzPWNbZz4+Ml18
MDskPWNbYXMrMTI+PjJdfDA7aWYoKCR8MCk9PShjW2FzKzE2Pj4yXXwwKSl7Ym09KGIwW2NbKGNb
YXM+PjJdfDApKzM2Pj4yXSYxMjddKGFzKXwwKSYyNTV9ZWxzZXtibT1hWyRdfDB9aWYoYm08PDI0
Pj4yNDw9LTEpe2FhPTUwMTticmVhayBMMjg2fWlmKChiWyhjW2Y+PjJdfDApKyhibTw8MjQ+PjI0
PDwxKT4+MV0mMjA0OCk9PTApe2FhPTUwMTticmVhayBMMjg2fSQ9Y1tvPj4yXXwwO2lmKCgkfDAp
PT0oYml8MCkpe2FzPShjW1U+PjJdfDApIT0xNjY7YXU9Y1toPj4yXXwwO2F0PWJpLWF1fDA7YVQ9
YXQ+Pj4wPDIxNDc0ODM2NDc/YXQ8PDE6LTE7YWw9a0woYXM/YXU6MCxhVCl8MDtpZigoYWx8MCk9
PTApe2tYKCl9ZG97aWYoYXMpe2NbaD4+Ml09YWw7Ym49YWx9ZWxzZXthdT1jW2g+PjJdfDA7Y1to
Pj4yXT1hbDtpZigoYXV8MCk9PTApe2JuPWFsO2JyZWFrfWJZW2NbVT4+Ml0mNTExXShhdSk7Ym49
Y1toPj4yXXwwfX13aGlsZSgwKTtjW1U+PjJdPTgyO2FsPWJuK2F0fDA7Y1tvPj4yXT1hbDtibz0o
Y1toPj4yXXwwKSthVHwwO2JwPWFsfWVsc2V7Ym89Ymk7YnA9JH1hbD1jW2c+PjJdfDA7YXM9Y1th
bCsxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FsKzE2Pj4yXXwwKSl7YWc9KGIwW2NbKGNbYWw+PjJd
fDApKzM2Pj4yXSYxMjddKGFsKXwwKSYyNTU7YnE9YWc7YnI9Y1tvPj4yXXwwfWVsc2V7YnE9YVth
c118MDticj1icH1jW28+PjJdPWJyKzE7YVticl09YnE7YXM9KGNbQj4+Ml18MCktMXwwO2NbQj4+
Ml09YXM7YWc9Y1tnPj4yXXwwO2FsPWFnKzEyfDA7YXU9Y1thbD4+Ml18MDtpZigoYXV8MCk9PShj
W2FnKzE2Pj4yXXwwKSl7YWk9Y1soY1thZz4+Ml18MCkrNDA+PjJdfDA7YjBbYWkmMTI3XShhZyl8
MH1lbHNle2NbYWw+PjJdPWF1KzF9aWYoKGFzfDApPjApe2JpPWJvO2JqPWJsfWVsc2V7YnM9Ym87
YnJlYWt9fX1lbHNle2JzPWF2fWlmKChjW28+PjJdfDApPT0oY1toPj4yXXwwKSl7YWE9NTIxO2Jy
ZWFrIEwyODZ9ZWxzZXthbT1yO2FuPWE2O2FvPWE3O2FwPWE4O2FxPWE5O2FyPWJzfWJyZWFrfTtk
ZWZhdWx0OnthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9Vn19fXdoaWxlKDApO0w1ODU6ZG97
aWYoKGFhfDApPT0yOTcpe2FhPTA7aWYoKFl8MCk9PTMpe2FjPXA7YWQ9VzthZT1YO2FmPXI7YWE9
NTIzO2JyZWFrIEwyODZ9ZWxzZXtidD1hYn13aGlsZSgxKXtaPWNbZz4+Ml18MDtkb3tpZigoWnww
KT09MCl7YnU9MH1lbHNle2lmKChjW1orMTI+PjJdfDApIT0oY1taKzE2Pj4yXXwwKSl7YnU9Wjti
cmVha31pZigoYjBbY1soY1taPj4yXXwwKSszNj4+Ml0mMTI3XShaKXwwKT09LTEpe2NbZz4+Ml09
MDtidT0wO2JyZWFrfWVsc2V7YnU9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7Wj0oYnV8MCk9
PTA7ZG97aWYoKGJ0fDApPT0wKXthYT0zMTB9ZWxzZXtpZigoY1tidCsxMj4+Ml18MCkhPShjW2J0
KzE2Pj4yXXwwKSl7aWYoWil7YnY9YnQ7YnJlYWt9ZWxzZXthbT1yO2FuPUQ7YW89WDthcD1XO2Fx
PXA7YXI9VjticmVhayBMNTg1fX1pZigoYjBbY1soY1tidD4+Ml18MCkrMzY+PjJdJjEyN10oYnQp
fDApPT0tMSl7Y1tlPj4yXT0wO2FhPTMxMDticmVha31lbHNle2lmKFope2J2PWJ0O2JyZWFrfWVs
c2V7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDU4NX19fX13aGlsZSgwKTtp
ZigoYWF8MCk9PTMxMCl7YWE9MDtpZihaKXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9Vjti
cmVhayBMNTg1fWVsc2V7YnY9MH19JD1jW2c+PjJdfDA7YVQ9Y1skKzEyPj4yXXwwO2lmKChhVHww
KT09KGNbJCsxNj4+Ml18MCkpe2J3PShiMFtjWyhjWyQ+PjJdfDApKzM2Pj4yXSYxMjddKCQpfDAp
JjI1NX1lbHNle2J3PWFbYVRdfDB9aWYoYnc8PDI0Pj4yNDw9LTEpe2FtPXI7YW49RDthbz1YO2Fw
PVc7YXE9cDthcj1WO2JyZWFrIEw1ODV9aWYoKGJbKGNbZj4+Ml18MCkrKGJ3PDwyND4+MjQ8PDEp
Pj4xXSY4MTkyKT09MCl7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDU4NX1h
VD1jW2c+PjJdfDA7JD1hVCsxMnwwO2F0PWNbJD4+Ml18MDtpZigoYXR8MCk9PShjW2FUKzE2Pj4y
XXwwKSl7Yng9KGIwW2NbKGNbYVQ+PjJdfDApKzQwPj4yXSYxMjddKGFUKXwwKSYyNTV9ZWxzZXtj
WyQ+PjJdPWF0KzE7Yng9YVthdF18MH1kVShBLGJ4KTtidD1idn19fXdoaWxlKDApO2F2PVkrMXww
O2lmKGF2Pj4+MDw0KXtWPWFyO3A9YXE7Vz1hcDtYPWFvO0Q9YW47cj1hbTtZPWF2fWVsc2V7YWM9
YXE7YWQ9YXA7YWU9YW87YWY9YW07YWE9NTIzO2JyZWFrfX1MNjIyOmRve2lmKChhYXwwKT09Mjk2
KXtjW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PVc7YkE9cH1lbHNlIGlmKChhYXwwKT09MzYzKXtj
W2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PVc7YkE9cH1lbHNlIGlmKChhYXwwKT09NDA1KXtjW2s+
PjJdPWNbaz4+Ml18NDtieT0wO2J6PVc7YkE9cH1lbHNlIGlmKChhYXwwKT09NDc3KXtjW2s+PjJd
PWNbaz4+Ml18NDtieT0wO2J6PWE4O2JBPWE5fWVsc2UgaWYoKGFhfDApPT01MDEpe2Nbaz4+Ml09
Y1trPj4yXXw0O2J5PTA7Yno9YTg7YkE9YTl9ZWxzZSBpZigoYWF8MCk9PTUyMSl7Y1trPj4yXT1j
W2s+PjJdfDQ7Ynk9MDtiej1hODtiQT1hOX1lbHNlIGlmKChhYXwwKT09NTIzKXtMNjMwOmRve2lm
KChhZnwwKSE9MCl7YW09YWY7YW89YWYrMXwwO2FwPWFmKzh8MDthcT1hZis0fDA7WT0xO0w2MzI6
d2hpbGUoMSl7cj1kW2FtXXwwO2lmKChyJjF8MCk9PTApe2JCPXI+Pj4xfWVsc2V7YkI9Y1thcT4+
Ml18MH1pZihZPj4+MD49YkI+Pj4wKXticmVhayBMNjMwfXI9Y1tnPj4yXXwwO2Rve2lmKChyfDAp
PT0wKXtiQz0wfWVsc2V7aWYoKGNbcisxMj4+Ml18MCkhPShjW3IrMTY+PjJdfDApKXtiQz1yO2Jy
ZWFrfWlmKChiMFtjWyhjW3I+PjJdfDApKzM2Pj4yXSYxMjddKHIpfDApPT0tMSl7Y1tnPj4yXT0w
O2JDPTA7YnJlYWt9ZWxzZXtiQz1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtyPShiQ3wwKT09
MDtaPWNbZT4+Ml18MDtkb3tpZigoWnwwKT09MCl7YWE9NTQxfWVsc2V7aWYoKGNbWisxMj4+Ml18
MCkhPShjW1orMTY+PjJdfDApKXtpZihyKXticmVha31lbHNle2JyZWFrIEw2MzJ9fWlmKChiMFtj
WyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFopfDApPT0tMSl7Y1tlPj4yXT0wO2FhPTU0MTticmVh
a31lbHNle2lmKHIpe2JyZWFrfWVsc2V7YnJlYWsgTDYzMn19fX13aGlsZSgwKTtpZigoYWF8MCk9
PTU0MSl7YWE9MDtpZihyKXticmVha319Wj1jW2c+PjJdfDA7YW49Y1taKzEyPj4yXXwwO2lmKChh
bnwwKT09KGNbWisxNj4+Ml18MCkpe2JEPShiMFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFop
fDApJjI1NX1lbHNle2JEPWFbYW5dfDB9aWYoKGFbYW1dJjEpPT0wKXtiRT1hb31lbHNle2JFPWNb
YXA+PjJdfDB9aWYoYkQ8PDI0Pj4yNCE9KGFbYkUrWXwwXXwwKSl7YnJlYWt9YW49WSsxfDA7Wj1j
W2c+PjJdfDA7RD1aKzEyfDA7WD1jW0Q+PjJdfDA7aWYoKFh8MCk9PShjW1orMTY+PjJdfDApKXth
cj1jWyhjW1o+PjJdfDApKzQwPj4yXXwwO2IwW2FyJjEyN10oWil8MDtZPWFuO2NvbnRpbnVlfWVs
c2V7Y1tEPj4yXT1YKzE7WT1hbjtjb250aW51ZX19Y1trPj4yXT1jW2s+PjJdfDQ7Ynk9MDtiej1h
ZDtiQT1hYzticmVhayBMNjIyfX13aGlsZSgwKTtpZigoYWR8MCk9PShhZXwwKSl7Ynk9MTtiej1h
ZTtiQT1hYzticmVha31jW0M+PjJdPTA7ZnQodixhZCxhZSxDKTtpZigoY1tDPj4yXXwwKT09MCl7
Ynk9MTtiej1hZDtiQT1hYzticmVha31jW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PWFkO2JBPWFj
fX13aGlsZSgwKTtkUChBKTtkUCh6KTtkUCh5KTtkUCh4KTtkUCh2KTtpZigoYnp8MCk9PTApe2k9
cTtyZXR1cm4gYnl8MH1iWVtiQSY1MTFdKGJ6KTtpPXE7cmV0dXJuIGJ5fDB9ZnVuY3Rpb24gaFMo
YixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAs
bT0wLG49MDtmPWI7Zz1kO2g9YVtmXXwwO2k9aCYyNTU7aWYoKGkmMXwwKT09MCl7aj1pPj4+MX1l
bHNle2o9Y1tiKzQ+PjJdfDB9aWYoKGgmMSk9PTApe2s9MTA7bD1ofWVsc2V7aD1jW2I+PjJdfDA7
az0oaCYtMiktMXwwO2w9aCYyNTV9aD1lLWd8MDtpZigoZXwwKT09KGR8MCkpe3JldHVybiBifDB9
aWYoKGstanwwKT4+PjA8aD4+PjApe2QxKGIsayxqK2gta3wwLGosaiwwLDApO209YVtmXXwwfWVs
c2V7bT1sfWlmKChtJjEpPT0wKXtuPWIrMXwwfWVsc2V7bj1jW2IrOD4+Ml18MH1tPWUrKGotZyl8
MDtnPWQ7ZD1uK2p8MDt3aGlsZSgxKXthW2RdPWFbZ118MDtsPWcrMXwwO2lmKChsfDApPT0oZXww
KSl7YnJlYWt9ZWxzZXtnPWw7ZD1kKzF8MH19YVtuK218MF09MDttPWoraHwwO2lmKChhW2ZdJjEp
PT0wKXthW2ZdPW08PDEmMjU1O3JldHVybiBifDB9ZWxzZXtjW2IrND4+Ml09bTtyZXR1cm4gYnww
fXJldHVybiAwfWZ1bmN0aW9uIGhUKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0
aW9uIGhVKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhWKGEpe2E9YXwwO3ZhciBi
PTA7Yj1iTyg4KXwwO2RFKGIsYSk7YmwoYnwwLDgxOTIsMjIpfWZ1bmN0aW9uIGhXKGIsZCxlLGYs
ZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7
dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTA7ZD1pO2k9aSsxNjB8MDtsPWU7ZT1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2Y+PjJdPWNbbD4+Ml07bD1kfDA7bT1kKzE2fDA7bj1kKzEyMHwwO289ZCsxMjh8MDtwPWQrMTM2
fDA7cT1kKzE0NHwwO3I9ZCsxNTJ8MDtzPW58MDtjW3M+PjJdPW07dD1uKzR8MDtjW3Q+PjJdPTE2
Njt1PW0rMTAwfDA7ZWoocCxoKTttPXB8MDt2PWNbbT4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEp
e2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9
KGNbMzkyNV18MCktMXwwO3c9Y1t2Kzg+PjJdfDA7ZG97aWYoKGNbdisxMj4+Ml18MCktdz4+Mj4+
PjA+bD4+PjApe3g9Y1t3KyhsPDwyKT4+Ml18MDtpZigoeHwwKT09MCl7YnJlYWt9eT14O2FbcV09
MDt6PWZ8MDtBPWNbej4+Ml18MDtjW3I+PjJdPUE7aWYoaFIoZSxyLGcscCxjW2grND4+Ml18MCxq
LHEseSxuLG8sdSl8MCl7Qj1rO2lmKChhW0JdJjEpPT0wKXthW2srMXwwXT0wO2FbQl09MH1lbHNl
e2FbY1trKzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9Qj14O2lmKChhW3FdJjEpIT0wKXtkVShrLGJf
W2NbKGNbQj4+Ml18MCkrMjg+PjJdJjMxXSh5LDQ1KXwwKX14PWJfW2NbKGNbQj4+Ml18MCkrMjg+
PjJdJjMxXSh5LDQ4KXwwO3k9Y1tvPj4yXXwwO0I9eS0xfDA7Qz1jW3M+PjJdfDA7d2hpbGUoMSl7
aWYoQz4+PjA+PUI+Pj4wKXticmVha31pZigoYVtDXXwwKT09eDw8MjQ+PjI0KXtDPUMrMXwwfWVs
c2V7YnJlYWt9fWhTKGssQyx5KXwwfXg9ZXwwO0I9Y1t4Pj4yXXwwO2Rve2lmKChCfDApPT0wKXtE
PTB9ZWxzZXtpZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe0Q9QjticmVha31pZigo
YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSE9LTEpe0Q9QjticmVha31jW3g+PjJd
PTA7RD0wfX13aGlsZSgwKTt4PShEfDApPT0wO2Rve2lmKChBfDApPT0wKXtFPTYyMX1lbHNle2lm
KChjW0ErMTI+PjJdfDApIT0oY1tBKzE2Pj4yXXwwKSl7aWYoeCl7YnJlYWt9ZWxzZXtFPTYyMzti
cmVha319aWYoKGIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MCk9PS0xKXtjW3o+PjJd
PTA7RT02MjE7YnJlYWt9ZWxzZXtpZih4XihBfDApPT0wKXticmVha31lbHNle0U9NjIzO2JyZWFr
fX19fXdoaWxlKDApO2lmKChFfDApPT02MjEpe2lmKHgpe0U9NjIzfX1pZigoRXwwKT09NjIzKXtj
W2o+PjJdPWNbaj4+Ml18Mn1jW2I+PjJdPUQ7QT1jW20+PjJdfDA7ZHooQSl8MDtBPWNbcz4+Ml18
MDtjW3M+PjJdPTA7aWYoKEF8MCk9PTApe2k9ZDtyZXR1cm59YllbY1t0Pj4yXSY1MTFdKEEpO2k9
ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0
aW9uIGhYKGIsZCxlLGYsZyxoLGosayxsLG0pe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MDtuPWk7aT1pKzU2fDA7bz1ufDA7cD1uKzE2fDA7
cT1uKzMyfDA7cj1uKzQwfDA7cz1yO3Q9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt1PXQ7dj1pO2k9
aSsxMnwwO2k9aSs3Pj4zPDwzO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eT14O3o9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztCPUE7RD1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Rz1GO0g9aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8MztJPUg7aWYoYil7Yj1jW2Q+PjJdfDA7aWYoKGNbNDA0NF18MCkhPS0x
KXtjW3A+PjJdPTE2MTc2O2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNjE3NixwLDk2KX1w
PShjWzQwNDVdfDApLTF8MDtKPWNbYis4Pj4yXXwwO2lmKChjW2IrMTI+PjJdfDApLUo+PjI+Pj4w
PD1wPj4+MCl7Sz1iTyg0KXwwO0w9SztrcShMKTtibChLfDAsODE3NiwxMzQpfWI9Y1tKKyhwPDwy
KT4+Ml18MDtpZigoYnwwKT09MCl7Sz1iTyg0KXwwO0w9SztrcShMKTtibChLfDAsODE3NiwxMzQp
fUs9YjtiWltjWyhjW2I+PjJdfDApKzQ0Pj4yXSYxMjddKHEsSyk7TD1lO0M9Y1txPj4yXXwwO2Fb
TF09QyYyNTU7Qz1DPj44O2FbTCsxfDBdPUMmMjU1O0M9Qz4+ODthW0wrMnwwXT1DJjI1NTtDPUM+
Pjg7YVtMKzN8MF09QyYyNTU7TD1iO2JaW2NbKGNbTD4+Ml18MCkrMzI+PjJdJjEyN10ocixLKTtx
PWw7aWYoKGFbcV0mMSk9PTApe2FbbCsxfDBdPTA7YVtxXT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09
MDtjW2wrND4+Ml09MH1kJChsLDApO2NbcT4+Ml09Y1tzPj4yXTtjW3ErND4+Ml09Y1tzKzQ+PjJd
O2NbcSs4Pj4yXT1jW3MrOD4+Ml07ayQoc3wwLDAsMTIpO2RQKHIpO2JaW2NbKGNbTD4+Ml18MCkr
Mjg+PjJdJjEyN10odCxLKTtyPWs7aWYoKGFbcl0mMSk9PTApe2FbaysxfDBdPTA7YVtyXT0wfWVs
c2V7YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1kJChrLDApO2Nbcj4+Ml09Y1t1Pj4yXTtj
W3IrND4+Ml09Y1t1KzQ+PjJdO2Nbcis4Pj4yXT1jW3UrOD4+Ml07ayQodXwwLDAsMTIpO2RQKHQp
O3Q9YjthW2ZdPWIwW2NbKGNbdD4+Ml18MCkrMTI+PjJdJjEyN10oSyl8MDthW2ddPWIwW2NbKGNb
dD4+Ml18MCkrMTY+PjJdJjEyN10oSyl8MDtiWltjWyhjW0w+PjJdfDApKzIwPj4yXSYxMjddKHYs
Syk7dD1oO2lmKChhW3RdJjEpPT0wKXthW2grMXwwXT0wO2FbdF09MH1lbHNle2FbY1toKzg+PjJd
fDBdPTA7Y1toKzQ+PjJdPTB9ZCQoaCwwKTtjW3Q+PjJdPWNbdz4+Ml07Y1t0KzQ+PjJdPWNbdys0
Pj4yXTtjW3QrOD4+Ml09Y1t3Kzg+PjJdO2skKHd8MCwwLDEyKTtkUCh2KTtiWltjWyhjW0w+PjJd
fDApKzI0Pj4yXSYxMjddKHgsSyk7TD1qO2lmKChhW0xdJjEpPT0wKXthW2orMXwwXT0wO2FbTF09
MH1lbHNle2FbY1tqKzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW0w+PjJdPWNbeT4+
Ml07Y1tMKzQ+PjJdPWNbeSs0Pj4yXTtjW0wrOD4+Ml09Y1t5Kzg+PjJdO2skKHl8MCwwLDEyKTtk
UCh4KTtNPWIwW2NbKGNbYj4+Ml18MCkrMzY+PjJdJjEyN10oSyl8MDtjW20+PjJdPU07aT1uO3Jl
dHVybn1lbHNle0s9Y1tkPj4yXXwwO2lmKChjWzQwNDZdfDApIT0tMSl7Y1tvPj4yXT0xNjE4NDtj
W28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxODQsbyw5Nil9bz0oY1s0MDQ3XXwwKS0xfDA7
ZD1jW0srOD4+Ml18MDtpZigoY1tLKzEyPj4yXXwwKS1kPj4yPj4+MDw9bz4+PjApe049Yk8oNCl8
MDtPPU47a3EoTyk7YmwoTnwwLDgxNzYsMTM0KX1LPWNbZCsobzw8Mik+PjJdfDA7aWYoKEt8MCk9
PTApe049Yk8oNCl8MDtPPU47a3EoTyk7YmwoTnwwLDgxNzYsMTM0KX1OPUs7YlpbY1soY1tLPj4y
XXwwKSs0ND4+Ml0mMTI3XSh6LE4pO089ZTtDPWNbej4+Ml18MDthW09dPUMmMjU1O0M9Qz4+ODth
W08rMXwwXT1DJjI1NTtDPUM+Pjg7YVtPKzJ8MF09QyYyNTU7Qz1DPj44O2FbTyszfDBdPUMmMjU1
O089SztiWltjWyhjW08+PjJdfDApKzMyPj4yXSYxMjddKEEsTik7ej1sO2lmKChhW3pdJjEpPT0w
KXthW2wrMXwwXT0wO2Fbel09MH1lbHNle2FbY1tsKzg+PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9ZCQo
bCwwKTtjW3o+PjJdPWNbQj4+Ml07Y1t6KzQ+PjJdPWNbQis0Pj4yXTtjW3orOD4+Ml09Y1tCKzg+
PjJdO2skKEJ8MCwwLDEyKTtkUChBKTtiWltjWyhjW08+PjJdfDApKzI4Pj4yXSYxMjddKEQsTik7
QT1rO2lmKChhW0FdJjEpPT0wKXthW2srMXwwXT0wO2FbQV09MH1lbHNle2FbY1trKzg+PjJdfDBd
PTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW0E+PjJdPWNbRT4+Ml07Y1tBKzQ+PjJdPWNbRSs0Pj4y
XTtjW0ErOD4+Ml09Y1tFKzg+PjJdO2skKEV8MCwwLDEyKTtkUChEKTtEPUs7YVtmXT1iMFtjWyhj
W0Q+PjJdfDApKzEyPj4yXSYxMjddKE4pfDA7YVtnXT1iMFtjWyhjW0Q+PjJdfDApKzE2Pj4yXSYx
MjddKE4pfDA7YlpbY1soY1tPPj4yXXwwKSsyMD4+Ml0mMTI3XShGLE4pO0Q9aDtpZigoYVtEXSYx
KT09MCl7YVtoKzF8MF09MDthW0RdPTB9ZWxzZXthW2NbaCs4Pj4yXXwwXT0wO2NbaCs0Pj4yXT0w
fWQkKGgsMCk7Y1tEPj4yXT1jW0c+PjJdO2NbRCs0Pj4yXT1jW0crND4+Ml07Y1tEKzg+PjJdPWNb
Rys4Pj4yXTtrJChHfDAsMCwxMik7ZFAoRik7YlpbY1soY1tPPj4yXXwwKSsyND4+Ml0mMTI3XShI
LE4pO089ajtpZigoYVtPXSYxKT09MCl7YVtqKzF8MF09MDthW09dPTB9ZWxzZXthW2Nbais4Pj4y
XXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1tPPj4yXT1jW0k+PjJdO2NbTys0Pj4yXT1jW0kr
ND4+Ml07Y1tPKzg+PjJdPWNbSSs4Pj4yXTtrJChJfDAsMCwxMik7ZFAoSCk7TT1iMFtjWyhjW0s+
PjJdfDApKzM2Pj4yXSYxMjddKE4pfDA7Y1ttPj4yXT1NO2k9bjtyZXR1cm59fWZ1bmN0aW9uIGhZ
KGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1q
fDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxL
PTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wO2Q9aTtpPWkrNjAwfDA7
bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZHwwO209ZCsxNnwwO249ZCs0MTZ8MDtv
PWQrNDI0fDA7cD1kKzQzMnwwO3E9ZCs0NDB8MDtyPWQrNDQ4fDA7cz1kKzQ1NnwwO3Q9ZCs0OTZ8
MDt1PW58MDtjW3U+PjJdPW07dj1uKzR8MDtjW3Y+PjJdPTE2Njt3PW0rNDAwfDA7ZWoocCxoKTtt
PXB8MDt4PWNbbT4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1tsKzQ+
PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO3k9Y1t4
Kzg+PjJdfDA7ZG97aWYoKGNbeCsxMj4+Ml18MCkteT4+Mj4+PjA+bD4+PjApe3o9Y1t5KyhsPDwy
KT4+Ml18MDtpZigoenwwKT09MCl7YnJlYWt9QT16O2FbcV09MDtCPWZ8MDtjW3I+PjJdPWNbQj4+
Ml07ZG97aWYoaFooZSxyLGcscCxjW2grND4+Ml18MCxqLHEsQSxuLG8sdyl8MCl7Qz1zfDA7RD1j
WyhjW3o+PjJdfDApKzQ4Pj4yXXwwO2NhW0QmMTVdKEEsMjA5NiwyMTA2LEMpfDA7RD10fDA7RT1j
W28+PjJdfDA7Rj1jW3U+PjJdfDA7Rz1FLUZ8MDtkb3tpZigoR3wwKT4zOTIpe0g9a0ooKEc+PjIp
KzJ8MCl8MDtpZigoSHwwKSE9MCl7ST1IO0o9SDticmVha31rWCgpO0k9MDtKPTB9ZWxzZXtJPUQ7
Sj0wfX13aGlsZSgwKTtpZigoYVtxXSYxKT09MCl7Sz1JfWVsc2V7YVtJXT00NTtLPUkrMXwwfWlm
KEY+Pj4wPEU+Pj4wKXtHPXMrNDB8MDtIPXM7TD1LO009Rjt3aGlsZSgxKXtOPUM7d2hpbGUoMSl7
aWYoKE58MCk9PShHfDApKXtPPUc7YnJlYWt9aWYoKGNbTj4+Ml18MCk9PShjW00+PjJdfDApKXtP
PU47YnJlYWt9ZWxzZXtOPU4rNHwwfX1hW0xdPWFbMjA5NisoTy1IPj4yKXwwXXwwO049TSs0fDA7
UD1MKzF8MDtpZihOPj4+MDwoY1tvPj4yXXwwKT4+PjApe0w9UDtNPU59ZWxzZXtRPVA7YnJlYWt9
fX1lbHNle1E9S31hW1FdPTA7TT1iRChEfDAsMTQwOCwoTD1pLGk9aSs4fDAsY1tMPj4yXT1rLEwp
fDApfDA7aT1MO2lmKChNfDApPT0xKXtpZigoSnwwKT09MCl7YnJlYWt9a0soSik7YnJlYWt9TT1i
Tyg4KXwwO2RFKE0sMTM2OCk7YmwoTXwwLDgxOTIsMjIpfX13aGlsZSgwKTtBPWV8MDt6PWNbQT4+
Ml18MDtkb3tpZigoenwwKT09MCl7Uj0wfWVsc2V7TT1jW3orMTI+PjJdfDA7aWYoKE18MCk9PShj
W3orMTY+PjJdfDApKXtTPWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle1M9
Y1tNPj4yXXwwfWlmKChTfDApIT0tMSl7Uj16O2JyZWFrfWNbQT4+Ml09MDtSPTB9fXdoaWxlKDAp
O0E9KFJ8MCk9PTA7ej1jW0I+PjJdfDA7ZG97aWYoKHp8MCk9PTApe1Q9NzM5fWVsc2V7TT1jW3or
MTI+PjJdfDA7aWYoKE18MCk9PShjW3orMTY+PjJdfDApKXtVPWIwW2NbKGNbej4+Ml18MCkrMzY+
PjJdJjEyN10oeil8MH1lbHNle1U9Y1tNPj4yXXwwfWlmKChVfDApPT0tMSl7Y1tCPj4yXT0wO1Q9
NzM5O2JyZWFrfWVsc2V7aWYoQV4oenwwKT09MCl7YnJlYWt9ZWxzZXtUPTc0MTticmVha319fX13
aGlsZSgwKTtpZigoVHwwKT09NzM5KXtpZihBKXtUPTc0MX19aWYoKFR8MCk9PTc0MSl7Y1tqPj4y
XT1jW2o+PjJdfDJ9Y1tiPj4yXT1SO3o9Y1ttPj4yXXwwO2R6KHopfDA7ej1jW3U+PjJdfDA7Y1t1
Pj4yXT0wO2lmKCh6fDApPT0wKXtpPWQ7cmV0dXJufWJZW2Nbdj4+Ml0mNTExXSh6KTtpPWQ7cmV0
dXJufX13aGlsZSgwKTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBo
WihiLGUsZixnLGgsaixrLGwsbSxuLG8pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9
anwwO2s9a3wwO2w9bHwwO209bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxX
PTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0w
LGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9MCxh
cz0wLGF0PTAsYXU9MCxhdj0wLGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0wLGFDPTAsYUQ9
MCxhRT0wLGFGPTAsYUc9MCxhSD0wLGFJPTAsYUo9MCxhSz0wLGFMPTAsYU09MCxhTj0wLGFPPTAs
YVA9MCxhUT0wLGFSPTAsYVM9MCxhVD0wLGFVPTAsYVY9MCxhVz0wLGFYPTAsYVk9MCxhWj0wLGFf
PTAsYSQ9MCxhMD0wLGExPTAsYTI9MCxhMz0wLGE0PTAsYTU9MCxhNj0wLGE3PTAsYTg9MCxhOT0w
LGJhPTAsYmI9MCxiYz0wLGJkPTAsYmU9MCxiZj0wLGJnPTAsYmg9MCxiaT0wLGJqPTAsYms9MCxi
bD0wLGJtPTAsYm49MCxibz0wLGJwPTAsYnE9MCxicj0wLGJzPTAsYnQ9MCxidT0wLGJ2PTAsYnc9
MCxieD0wLGJ5PTAsYno9MCxiQT0wLGJCPTAsYkM9MCxiRD0wO3A9aTtpPWkrNDQ4fDA7cT1lO2U9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1txPj4yXTtxPXB8MDtyPXArOHwwO3M9cCs0
MDh8MDt0PXArNDE2fDA7dT1wKzQyNHwwO3Y9cCs0MzJ8MDt3PXY7eD1pO2k9aSsxMnwwO2k9aSs3
Pj4zPDwzO3k9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7
QT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0M9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbcT4+Ml09bztvPXJ8MDtrJCh3fDAsMCwxMik7RD14O0U9eTtGPXo7
Rz1BO2skKER8MCwwLDEyKTtrJChFfDAsMCwxMik7ayQoRnwwLDAsMTIpO2skKEd8MCwwLDEyKTto
MihmLGcscyx0LHUsdix4LHkseixCKTtnPW18MDtjW24+PjJdPWNbZz4+Ml07Zj1ifDA7Yj1lfDA7
ZT1sO0g9eis0fDA7ST16Kzh8MDtKPXkrNHwwO0s9eSs4fDA7TD0oaCY1MTJ8MCkhPTA7aD14KzR8
MDtNPXgrOHwwO049QSs0fDA7Tz1BKzh8MDtQPXMrM3wwO1E9dis0fDA7Uj0xNjY7Uz1vO1Q9bztv
PXIrNDAwfDA7cj0wO1U9MDtMODkwOndoaWxlKDEpe1Y9Y1tmPj4yXXwwO2Rve2lmKChWfDApPT0w
KXtXPTF9ZWxzZXtYPWNbVisxMj4+Ml18MDtpZigoWHwwKT09KGNbVisxNj4+Ml18MCkpe1k9YjBb
Y1soY1tWPj4yXXwwKSszNj4+Ml0mMTI3XShWKXwwfWVsc2V7WT1jW1g+PjJdfDB9aWYoKFl8MCk9
PS0xKXtjW2Y+PjJdPTA7Vz0xO2JyZWFrfWVsc2V7Vz0oY1tmPj4yXXwwKT09MDticmVha319fXdo
aWxlKDApO1Y9Y1tiPj4yXXwwO2Rve2lmKChWfDApPT0wKXtaPTc2N31lbHNle1g9Y1tWKzEyPj4y
XXwwO2lmKChYfDApPT0oY1tWKzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYx
MjddKFYpfDB9ZWxzZXtfPWNbWD4+Ml18MH1pZigoX3wwKT09LTEpe2NbYj4+Ml09MDtaPTc2Nzti
cmVha31lbHNle2lmKFdeKFZ8MCk9PTApeyQ9VjticmVha31lbHNle2FhPVI7YWI9UzthYz1UO2Fk
PXI7Wj0xMDA3O2JyZWFrIEw4OTB9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTc2Nyl7Wj0wO2lmKFcp
e2FhPVI7YWI9UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrfWVsc2V7JD0wfX1MOTE0OmRve3N3aXRj
aChhW3MrVXwwXXwwKXtjYXNlIDI6e2lmKCEoKHJ8MCkhPTB8VT4+PjA8Mikpe2lmKChVfDApPT0y
KXthZT0oYVtQXXwwKSE9MH1lbHNle2FlPTB9aWYoIShMfGFlKSl7YWY9MDthZz1vO2FoPVQ7YWk9
Uzthaj1SO2JyZWFrIEw5MTR9fVY9YVtEXXwwO1g9KFYmMSk9PTA/aDpjW00+PjJdfDA7TDkyMjpk
b3tpZigoVXwwKT09MCl7YWs9WDthbD1WO2FtPSR9ZWxzZXtpZigoZFtzKyhVLTEpfDBdfDApPDIp
e2FuPVg7YW89Vn1lbHNle2FrPVg7YWw9VjthbT0kO2JyZWFrfXdoaWxlKDEpe2FwPWFvJjI1NTtp
ZigoYW58MCk9PSgoKGFvJjEpPT0wP2g6Y1tNPj4yXXwwKSsoKChhcCYxfDApPT0wP2FwPj4+MTpj
W2g+PjJdfDApPDwyKXwwKSl7YXE9YW87YnJlYWt9aWYoIShiMVtjWyhjW2U+PjJdfDApKzEyPj4y
XSY2M10obCw4MTkyLGNbYW4+PjJdfDApfDApKXtaPTg2ODticmVha31hbj1hbis0fDA7YW89YVtE
XXwwfWlmKChafDApPT04Njgpe1o9MDthcT1hW0RdfDB9YXA9KGFxJjEpPT0wO2FyPWFuLShhcD9o
OmNbTT4+Ml18MCk+PjI7YXM9YVtHXXwwO2F0PWFzJjI1NTthdT0oYXQmMXwwKT09MDtMOTMyOmRv
e2lmKGFyPj4+MDw9KGF1P2F0Pj4+MTpjW04+PjJdfDApPj4+MCl7YXY9KGFzJjEpPT0wO2F3PShh
dj9OOmNbTz4+Ml18MCkrKChhdT9hdD4+PjE6Y1tOPj4yXXwwKS1hcjw8Mil8MDtheD0oYXY/Tjpj
W08+PjJdfDApKygoYXU/YXQ+Pj4xOmNbTj4+Ml18MCk8PDIpfDA7aWYoKGF3fDApPT0oYXh8MCkp
e2FrPWFuO2FsPWFxO2FtPSQ7YnJlYWsgTDkyMn1lbHNle2F5PWF3O2F6PWFwP2g6Y1tNPj4yXXww
fXdoaWxlKDEpe2lmKChjW2F5Pj4yXXwwKSE9KGNbYXo+PjJdfDApKXticmVhayBMOTMyfWF3PWF5
KzR8MDtpZigoYXd8MCk9PShheHwwKSl7YWs9YW47YWw9YXE7YW09JDticmVhayBMOTIyfWF5PWF3
O2F6PWF6KzR8MH19fXdoaWxlKDApO2FrPWFwP2g6Y1tNPj4yXXwwO2FsPWFxO2FtPSR9fXdoaWxl
KDApO0w5Mzk6d2hpbGUoMSl7Vj1hbCYyNTU7aWYoKGFrfDApPT0oKChhbCYxKT09MD9oOmNbTT4+
Ml18MCkrKCgoViYxfDApPT0wP1Y+Pj4xOmNbaD4+Ml18MCk8PDIpfDApKXticmVha31WPWNbZj4+
Ml18MDtkb3tpZigoVnwwKT09MCl7YUE9MX1lbHNle1g9Y1tWKzEyPj4yXXwwO2lmKChYfDApPT0o
Y1tWKzE2Pj4yXXwwKSl7YUI9YjBbY1soY1tWPj4yXXwwKSszNj4+Ml0mMTI3XShWKXwwfWVsc2V7
YUI9Y1tYPj4yXXwwfWlmKChhQnwwKT09LTEpe2NbZj4+Ml09MDthQT0xO2JyZWFrfWVsc2V7YUE9
KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZigoYW18MCk9PTApe1o9ODg5fWVs
c2V7Vj1jW2FtKzEyPj4yXXwwO2lmKChWfDApPT0oY1thbSsxNj4+Ml18MCkpe2FDPWIwW2NbKGNb
YW0+PjJdfDApKzM2Pj4yXSYxMjddKGFtKXwwfWVsc2V7YUM9Y1tWPj4yXXwwfWlmKChhQ3wwKT09
LTEpe2NbYj4+Ml09MDtaPTg4OTticmVha31lbHNle2lmKGFBXihhbXwwKT09MCl7YUQ9YW07YnJl
YWt9ZWxzZXticmVhayBMOTM5fX19fXdoaWxlKDApO2lmKChafDApPT04ODkpe1o9MDtpZihhQSl7
YnJlYWt9ZWxzZXthRD0wfX1WPWNbZj4+Ml18MDthcD1jW1YrMTI+PjJdfDA7aWYoKGFwfDApPT0o
Y1tWKzE2Pj4yXXwwKSl7YUU9YjBbY1soY1tWPj4yXXwwKSszNj4+Ml0mMTI3XShWKXwwfWVsc2V7
YUU9Y1thcD4+Ml18MH1pZigoYUV8MCkhPShjW2FrPj4yXXwwKSl7YnJlYWt9YXA9Y1tmPj4yXXww
O1Y9YXArMTJ8MDtYPWNbVj4+Ml18MDtpZigoWHwwKT09KGNbYXArMTY+PjJdfDApKXthdD1jWyhj
W2FwPj4yXXwwKSs0MD4+Ml18MDtiMFthdCYxMjddKGFwKXwwfWVsc2V7Y1tWPj4yXT1YKzR9YWs9
YWsrNHwwO2FsPWFbRF18MDthbT1hRH1pZighTCl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2Jy
ZWFrIEw5MTR9WD1hW0RdfDA7Vj1YJjI1NTtpZigoYWt8MCk9PSgoKFgmMSk9PTA/aDpjW00+PjJd
fDApKygoKFYmMXwwKT09MD9WPj4+MTpjW2g+PjJdfDApPDwyKXwwKSl7YWY9cjthZz1vO2FoPVQ7
YWk9Uzthaj1SfWVsc2V7Wj05MDE7YnJlYWsgTDg5MH1icmVha307Y2FzZSA0OntWPTA7WD1vO2Fw
PVQ7YXQ9UzthdT1SO0w5NzU6d2hpbGUoMSl7YXI9Y1tmPj4yXXwwO2Rve2lmKChhcnwwKT09MCl7
YUY9MX1lbHNle2FzPWNbYXIrMTI+PjJdfDA7aWYoKGFzfDApPT0oY1thcisxNj4+Ml18MCkpe2FH
PWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YUc9Y1thcz4+Ml18MH1p
ZigoYUd8MCk9PS0xKXtjW2Y+PjJdPTA7YUY9MTticmVha31lbHNle2FGPShjW2Y+PjJdfDApPT0w
O2JyZWFrfX19d2hpbGUoMCk7YXI9Y1tiPj4yXXwwO2Rve2lmKChhcnwwKT09MCl7Wj05MTV9ZWxz
ZXthcz1jW2FyKzEyPj4yXXwwO2lmKChhc3wwKT09KGNbYXIrMTY+PjJdfDApKXthSD1iMFtjWyhj
W2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2FIPWNbYXM+PjJdfDB9aWYoKGFIfDAp
PT0tMSl7Y1tiPj4yXT0wO1o9OTE1O2JyZWFrfWVsc2V7aWYoYUZeKGFyfDApPT0wKXticmVha31l
bHNle2JyZWFrIEw5NzV9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTkxNSl7Wj0wO2lmKGFGKXticmVh
a319YXI9Y1tmPj4yXXwwO2FzPWNbYXIrMTI+PjJdfDA7aWYoKGFzfDApPT0oY1thcisxNj4+Ml18
MCkpe2FJPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YUk9Y1thcz4+
Ml18MH1pZihiMVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2M10obCwyMDQ4LGFJKXwwKXthcz1jW24+
PjJdfDA7aWYoKGFzfDApPT0oY1txPj4yXXwwKSl7aDMobSxuLHEpO2FKPWNbbj4+Ml18MH1lbHNl
e2FKPWFzfWNbbj4+Ml09YUorNDtjW2FKPj4yXT1hSTthSz1WKzF8MDthTD1YO2FNPWFwO2FOPWF0
O2FPPWF1fWVsc2V7YXM9ZFt3XXwwO2lmKCgoKGFzJjF8MCk9PTA/YXM+Pj4xOmNbUT4+Ml18MCl8
MCk9PTB8KFZ8MCk9PTApe2JyZWFrfWlmKChhSXwwKSE9KGNbdT4+Ml18MCkpe2JyZWFrfWlmKChh
cHwwKT09KFh8MCkpe2FzPShhdXwwKSE9MTY2O2FyPWFwLWF0fDA7YXg9YXI+Pj4wPDIxNDc0ODM2
NDc/YXI8PDE6LTE7aWYoYXMpe2FQPWF0fWVsc2V7YVA9MH1hcz1rTChhUCxheCl8MDthdz1hcztp
ZigoYXN8MCk9PTApe2tYKCl9YVE9YXcrKGF4Pj4+Mjw8Mil8MDthUj1hdysoYXI+PjI8PDIpfDA7
YVM9YXc7YVQ9ODJ9ZWxzZXthUT1YO2FSPWFwO2FTPWF0O2FUPWF1fWNbYVI+PjJdPVY7YUs9MDth
TD1hUTthTT1hUis0fDA7YU49YVM7YU89YVR9YXc9Y1tmPj4yXXwwO2FyPWF3KzEyfDA7YXg9Y1th
cj4+Ml18MDtpZigoYXh8MCk9PShjW2F3KzE2Pj4yXXwwKSl7YXM9Y1soY1thdz4+Ml18MCkrNDA+
PjJdfDA7YjBbYXMmMTI3XShhdyl8MDtWPWFLO1g9YUw7YXA9YU07YXQ9YU47YXU9YU87Y29udGlu
dWV9ZWxzZXtjW2FyPj4yXT1heCs0O1Y9YUs7WD1hTDthcD1hTTthdD1hTjthdT1hTztjb250aW51
ZX19aWYoKGF0fDApPT0oYXB8MCl8KFZ8MCk9PTApe2FVPVg7YVY9YXA7YVc9YXQ7YVg9YXV9ZWxz
ZXtpZigoYXB8MCk9PShYfDApKXtheD0oYXV8MCkhPTE2Njthcj1hcC1hdHwwO2F3PWFyPj4+MDwy
MTQ3NDgzNjQ3P2FyPDwxOi0xO2lmKGF4KXthWT1hdH1lbHNle2FZPTB9YXg9a0woYVksYXcpfDA7
YXM9YXg7aWYoKGF4fDApPT0wKXtrWCgpfWFaPWFzKyhhdz4+PjI8PDIpfDA7YV89YXMrKGFyPj4y
PDwyKXwwO2EkPWFzO2EwPTgyfWVsc2V7YVo9WDthXz1hcDthJD1hdDthMD1hdX1jW2FfPj4yXT1W
O2FVPWFaO2FWPWFfKzR8MDthVz1hJDthWD1hMH1hcz1jW0I+PjJdfDA7aWYoKGFzfDApPjApe2Fy
PWNbZj4+Ml18MDtkb3tpZigoYXJ8MCk9PTApe2ExPTF9ZWxzZXthdz1jW2FyKzEyPj4yXXwwO2lm
KChhd3wwKT09KGNbYXIrMTY+PjJdfDApKXthMj1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3
XShhcil8MH1lbHNle2EyPWNbYXc+PjJdfDB9aWYoKGEyfDApPT0tMSl7Y1tmPj4yXT0wO2ExPTE7
YnJlYWt9ZWxzZXthMT0oY1tmPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2FyPWNbYj4+Ml18
MDtkb3tpZigoYXJ8MCk9PTApe1o9OTY0fWVsc2V7Vj1jW2FyKzEyPj4yXXwwO2lmKChWfDApPT0o
Y1thcisxNj4+Ml18MCkpe2EzPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVs
c2V7YTM9Y1tWPj4yXXwwfWlmKChhM3wwKT09LTEpe2NbYj4+Ml09MDtaPTk2NDticmVha31lbHNl
e2lmKGExXihhcnwwKT09MCl7YTQ9YXI7YnJlYWt9ZWxzZXtaPTk3MDticmVhayBMODkwfX19fXdo
aWxlKDApO2lmKChafDApPT05NjQpe1o9MDtpZihhMSl7Wj05NzA7YnJlYWsgTDg5MH1lbHNle2E0
PTB9fWFyPWNbZj4+Ml18MDtWPWNbYXIrMTI+PjJdfDA7aWYoKFZ8MCk9PShjW2FyKzE2Pj4yXXww
KSl7YTU9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthNT1jW1Y+PjJd
fDB9aWYoKGE1fDApIT0oY1t0Pj4yXXwwKSl7Wj05NzA7YnJlYWsgTDg5MH1WPWNbZj4+Ml18MDth
cj1WKzEyfDA7YXU9Y1thcj4+Ml18MDtpZigoYXV8MCk9PShjW1YrMTY+PjJdfDApKXthdD1jWyhj
W1Y+PjJdfDApKzQwPj4yXXwwO2IwW2F0JjEyN10oVil8MDthNj1hNDthNz1hc31lbHNle2NbYXI+
PjJdPWF1KzQ7YTY9YTQ7YTc9YXN9d2hpbGUoMSl7YXU9Y1tmPj4yXXwwO2Rve2lmKChhdXwwKT09
MCl7YTg9MX1lbHNle2FyPWNbYXUrMTI+PjJdfDA7aWYoKGFyfDApPT0oY1thdSsxNj4+Ml18MCkp
e2E5PWIwW2NbKGNbYXU+PjJdfDApKzM2Pj4yXSYxMjddKGF1KXwwfWVsc2V7YTk9Y1thcj4+Ml18
MH1pZigoYTl8MCk9PS0xKXtjW2Y+PjJdPTA7YTg9MTticmVha31lbHNle2E4PShjW2Y+PjJdfDAp
PT0wO2JyZWFrfX19d2hpbGUoMCk7ZG97aWYoKGE2fDApPT0wKXtaPTk4N31lbHNle2F1PWNbYTYr
MTI+PjJdfDA7aWYoKGF1fDApPT0oY1thNisxNj4+Ml18MCkpe2JhPWIwW2NbKGNbYTY+PjJdfDAp
KzM2Pj4yXSYxMjddKGE2KXwwfWVsc2V7YmE9Y1thdT4+Ml18MH1pZigoYmF8MCk9PS0xKXtjW2I+
PjJdPTA7Wj05ODc7YnJlYWt9ZWxzZXtpZihhOF4oYTZ8MCk9PTApe2JiPWE2O2JyZWFrfWVsc2V7
Wj05OTQ7YnJlYWsgTDg5MH19fX13aGlsZSgwKTtpZigoWnwwKT09OTg3KXtaPTA7aWYoYTgpe1o9
OTk0O2JyZWFrIEw4OTB9ZWxzZXtiYj0wfX1hdT1jW2Y+PjJdfDA7YXI9Y1thdSsxMj4+Ml18MDtp
ZigoYXJ8MCk9PShjW2F1KzE2Pj4yXXwwKSl7YmM9YjBbY1soY1thdT4+Ml18MCkrMzY+PjJdJjEy
N10oYXUpfDB9ZWxzZXtiYz1jW2FyPj4yXXwwfWlmKCEoYjFbY1soY1tlPj4yXXwwKSsxMj4+Ml0m
NjNdKGwsMjA0OCxiYyl8MCkpe1o9OTk0O2JyZWFrIEw4OTB9aWYoKGNbbj4+Ml18MCk9PShjW3E+
PjJdfDApKXtoMyhtLG4scSl9YXI9Y1tmPj4yXXwwO2F1PWNbYXIrMTI+PjJdfDA7aWYoKGF1fDAp
PT0oY1thcisxNj4+Ml18MCkpe2JkPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXww
fWVsc2V7YmQ9Y1thdT4+Ml18MH1hdT1jW24+PjJdfDA7Y1tuPj4yXT1hdSs0O2NbYXU+PjJdPWJk
O2F1PWE3LTF8MDtjW0I+PjJdPWF1O2FyPWNbZj4+Ml18MDtWPWFyKzEyfDA7YXQ9Y1tWPj4yXXww
O2lmKChhdHwwKT09KGNbYXIrMTY+PjJdfDApKXthcD1jWyhjW2FyPj4yXXwwKSs0MD4+Ml18MDti
MFthcCYxMjddKGFyKXwwfWVsc2V7Y1tWPj4yXT1hdCs0fWlmKChhdXwwKT4wKXthNj1iYjthNz1h
dX1lbHNle2JyZWFrfX19aWYoKGNbbj4+Ml18MCk9PShjW2c+PjJdfDApKXtaPTEwMDU7YnJlYWsg
TDg5MH1lbHNle2FmPXI7YWc9YVU7YWg9YVY7YWk9YVc7YWo9YVh9YnJlYWt9O2Nhc2UgMTp7aWYo
KFV8MCk9PTMpe2FhPVI7YWI9UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrIEw4OTB9YXM9Y1tmPj4y
XXwwO2F1PWNbYXMrMTI+PjJdfDA7aWYoKGF1fDApPT0oY1thcysxNj4+Ml18MCkpe2JlPWIwW2Nb
KGNbYXM+PjJdfDApKzM2Pj4yXSYxMjddKGFzKXwwfWVsc2V7YmU9Y1thdT4+Ml18MH1pZighKGIx
W2NbKGNbZT4+Ml18MCkrMTI+PjJdJjYzXShsLDgxOTIsYmUpfDApKXtaPTc5MTticmVhayBMODkw
fWF1PWNbZj4+Ml18MDthcz1hdSsxMnwwO2F0PWNbYXM+PjJdfDA7aWYoKGF0fDApPT0oY1thdSsx
Nj4+Ml18MCkpe2JmPWIwW2NbKGNbYXU+PjJdfDApKzQwPj4yXSYxMjddKGF1KXwwfWVsc2V7Y1th
cz4+Ml09YXQrNDtiZj1jW2F0Pj4yXXwwfWVoKEEsYmYpO1o9NzkyO2JyZWFrfTtjYXNlIDA6e1o9
NzkyO2JyZWFrfTtjYXNlIDM6e2F0PWFbRV18MDthcz1hdCYyNTU7YXU9KGFzJjF8MCk9PTA7Vj1h
W0ZdfDA7YXI9ViYyNTU7YXA9KGFyJjF8MCk9PTA7aWYoKChhdT9hcz4+PjE6Y1tKPj4yXXwwKXww
KT09KC0oYXA/YXI+Pj4xOmNbSD4+Ml18MCl8MCkpe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9Ujti
cmVhayBMOTE0fWRve2lmKCgoYXU/YXM+Pj4xOmNbSj4+Ml18MCl8MCkhPTApe2lmKCgoYXA/YXI+
Pj4xOmNbSD4+Ml18MCl8MCk9PTApe2JyZWFrfVg9Y1tmPj4yXXwwO2F3PWNbWCsxMj4+Ml18MDtp
ZigoYXd8MCk9PShjW1grMTY+PjJdfDApKXtheD1iMFtjWyhjW1g+PjJdfDApKzM2Pj4yXSYxMjdd
KFgpfDA7Ymc9YXg7Ymg9YVtFXXwwfWVsc2V7Ymc9Y1thdz4+Ml18MDtiaD1hdH1hdz1jW2Y+PjJd
fDA7YXg9YXcrMTJ8MDtYPWNbYXg+PjJdfDA7YXY9KFh8MCk9PShjW2F3KzE2Pj4yXXwwKTtpZigo
Ymd8MCk9PShjWygoYmgmMSk9PTA/SjpjW0s+PjJdfDApPj4yXXwwKSl7aWYoYXYpe2JpPWNbKGNb
YXc+PjJdfDApKzQwPj4yXXwwO2IwW2JpJjEyN10oYXcpfDB9ZWxzZXtjW2F4Pj4yXT1YKzR9YXg9
ZFtFXXwwO2FmPSgoYXgmMXwwKT09MD9heD4+PjE6Y1tKPj4yXXwwKT4+PjA+MT95OnI7YWc9bzth
aD1UO2FpPVM7YWo9UjticmVhayBMOTE0fWlmKGF2KXtiaj1iMFtjWyhjW2F3Pj4yXXwwKSszNj4+
Ml0mMTI3XShhdyl8MH1lbHNle2JqPWNbWD4+Ml18MH1pZigoYmp8MCkhPShjWygoYVtGXSYxKT09
MD9IOmNbST4+Ml18MCk+PjJdfDApKXtaPTg1NzticmVhayBMODkwfVg9Y1tmPj4yXXwwO2F3PVgr
MTJ8MDthdj1jW2F3Pj4yXXwwO2lmKChhdnwwKT09KGNbWCsxNj4+Ml18MCkpe2F4PWNbKGNbWD4+
Ml18MCkrNDA+PjJdfDA7YjBbYXgmMTI3XShYKXwwfWVsc2V7Y1thdz4+Ml09YXYrNH1hW2tdPTE7
YXY9ZFtGXXwwO2FmPSgoYXYmMXwwKT09MD9hdj4+PjE6Y1tIPj4yXXwwKT4+PjA+MT96OnI7YWc9
bzthaD1UO2FpPVM7YWo9UjticmVhayBMOTE0fX13aGlsZSgwKTthcj1jW2Y+PjJdfDA7YXA9Y1th
cisxMj4+Ml18MDthdj0oYXB8MCk9PShjW2FyKzE2Pj4yXXwwKTtpZigoKGF1P2FzPj4+MTpjW0o+
PjJdfDApfDApPT0wKXtpZihhdil7YXc9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIp
fDA7Yms9YXc7Ymw9YVtGXXwwfWVsc2V7Yms9Y1thcD4+Ml18MDtibD1WfWlmKChia3wwKSE9KGNb
KChibCYxKT09MD9IOmNbST4+Ml18MCk+PjJdfDApKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7
YnJlYWsgTDkxNH1hdz1jW2Y+PjJdfDA7WD1hdysxMnwwO2F4PWNbWD4+Ml18MDtpZigoYXh8MCk9
PShjW2F3KzE2Pj4yXXwwKSl7Ymk9Y1soY1thdz4+Ml18MCkrNDA+PjJdfDA7YjBbYmkmMTI3XShh
dyl8MH1lbHNle2NbWD4+Ml09YXgrNH1hW2tdPTE7YXg9ZFtGXXwwO2FmPSgoYXgmMXwwKT09MD9h
eD4+PjE6Y1tIPj4yXXwwKT4+PjA+MT96OnI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMOTE0
fWlmKGF2KXthdj1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MDtibT1hdjtibj1h
W0VdfDB9ZWxzZXtibT1jW2FwPj4yXXwwO2JuPWF0fWlmKChibXwwKSE9KGNbKChibiYxKT09MD9K
OmNbSz4+Ml18MCk+PjJdfDApKXthW2tdPTE7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFr
IEw5MTR9YXA9Y1tmPj4yXXwwO2F2PWFwKzEyfDA7YXI9Y1thdj4+Ml18MDtpZigoYXJ8MCk9PShj
W2FwKzE2Pj4yXXwwKSl7YXg9Y1soY1thcD4+Ml18MCkrNDA+PjJdfDA7YjBbYXgmMTI3XShhcCl8
MH1lbHNle2NbYXY+PjJdPWFyKzR9YXI9ZFtFXXwwO2FmPSgoYXImMXwwKT09MD9hcj4+PjE6Y1tK
Pj4yXXwwKT4+PjA+MT95OnI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVha307ZGVmYXVsdDp7YWY9
cjthZz1vO2FoPVQ7YWk9Uzthaj1SfX19d2hpbGUoMCk7TDExODM6ZG97aWYoKFp8MCk9PTc5Mil7
Wj0wO2lmKChVfDApPT0zKXthYT1SO2FiPVM7YWM9VDthZD1yO1o9MTAwNzticmVhayBMODkwfWVs
c2V7Ym89JH13aGlsZSgxKXthcj1jW2Y+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXticD0xfWVsc2V7
YXY9Y1thcisxMj4+Ml18MDtpZigoYXZ8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YnE9YjBbY1soY1th
cj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXticT1jW2F2Pj4yXXwwfWlmKChicXwwKT09
LTEpe2NbZj4+Ml09MDticD0xO2JyZWFrfWVsc2V7YnA9KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13
aGlsZSgwKTtkb3tpZigoYm98MCk9PTApe1o9ODA2fWVsc2V7YXI9Y1tibysxMj4+Ml18MDtpZigo
YXJ8MCk9PShjW2JvKzE2Pj4yXXwwKSl7YnI9YjBbY1soY1tibz4+Ml18MCkrMzY+PjJdJjEyN10o
Ym8pfDB9ZWxzZXticj1jW2FyPj4yXXwwfWlmKChicnwwKT09LTEpe2NbYj4+Ml09MDtaPTgwNjti
cmVha31lbHNle2lmKGJwXihib3wwKT09MCl7YnM9Ym87YnJlYWt9ZWxzZXthZj1yO2FnPW87YWg9
VDthaT1TO2FqPVI7YnJlYWsgTDExODN9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTgwNil7Wj0wO2lm
KGJwKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDExODN9ZWxzZXticz0wfX1hcj1j
W2Y+PjJdfDA7YXY9Y1thcisxMj4+Ml18MDtpZigoYXZ8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YnQ9
YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXtidD1jW2F2Pj4yXXwwfWlm
KCEoYjFbY1soY1tlPj4yXXwwKSsxMj4+Ml0mNjNdKGwsODE5MixidCl8MCkpe2FmPXI7YWc9bzth
aD1UO2FpPVM7YWo9UjticmVhayBMMTE4M31hdj1jW2Y+PjJdfDA7YXI9YXYrMTJ8MDthcD1jW2Fy
Pj4yXXwwO2lmKChhcHwwKT09KGNbYXYrMTY+PjJdfDApKXtidT1iMFtjWyhjW2F2Pj4yXXwwKSs0
MD4+Ml0mMTI3XShhdil8MH1lbHNle2NbYXI+PjJdPWFwKzQ7YnU9Y1thcD4+Ml18MH1laChBLGJ1
KTtibz1ic319fXdoaWxlKDApO2F0PVUrMXwwO2lmKGF0Pj4+MDw0KXtSPWFqO1M9YWk7VD1haDtv
PWFnO3I9YWY7VT1hdH1lbHNle2FhPWFqO2FiPWFpO2FjPWFoO2FkPWFmO1o9MTAwNzticmVha319
TDEyMjA6ZG97aWYoKFp8MCk9PTg1Nyl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1TO2J4PVJ9
ZWxzZSBpZigoWnwwKT09OTAxKXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PVM7Yng9Un1lbHNl
IGlmKChafDApPT05NzApe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YVc7Yng9YVh9ZWxzZSBp
ZigoWnwwKT09OTk0KXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PWFXO2J4PWFYfWVsc2UgaWYo
KFp8MCk9PTEwMDUpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YVc7Yng9YVh9ZWxzZSBpZigo
WnwwKT09MTAwNyl7TDEyMjc6ZG97aWYoKGFkfDApIT0wKXthZj1hZDthaD1hZCs0fDA7YWk9YWQr
OHwwO2FqPTE7TDEyMjk6d2hpbGUoMSl7VT1kW2FmXXwwO2lmKChVJjF8MCk9PTApe2J5PVU+Pj4x
fWVsc2V7Ynk9Y1thaD4+Ml18MH1pZihhaj4+PjA+PWJ5Pj4+MCl7YnJlYWsgTDEyMjd9VT1jW2Y+
PjJdfDA7ZG97aWYoKFV8MCk9PTApe2J6PTF9ZWxzZXtyPWNbVSsxMj4+Ml18MDtpZigocnwwKT09
KGNbVSsxNj4+Ml18MCkpe2JBPWIwW2NbKGNbVT4+Ml18MCkrMzY+PjJdJjEyN10oVSl8MH1lbHNl
e2JBPWNbcj4+Ml18MH1pZigoYkF8MCk9PS0xKXtjW2Y+PjJdPTA7Yno9MTticmVha31lbHNle2J6
PShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7VT1jW2I+PjJdfDA7ZG97aWYoKFV8MCk9
PTApe1o9MTAyNn1lbHNle3I9Y1tVKzEyPj4yXXwwO2lmKChyfDApPT0oY1tVKzE2Pj4yXXwwKSl7
YkI9YjBbY1soY1tVPj4yXXwwKSszNj4+Ml0mMTI3XShVKXwwfWVsc2V7YkI9Y1tyPj4yXXwwfWlm
KChiQnwwKT09LTEpe2NbYj4+Ml09MDtaPTEwMjY7YnJlYWt9ZWxzZXtpZihiel4oVXwwKT09MCl7
YnJlYWt9ZWxzZXticmVhayBMMTIyOX19fX13aGlsZSgwKTtpZigoWnwwKT09MTAyNil7Wj0wO2lm
KGJ6KXticmVha319VT1jW2Y+PjJdfDA7cj1jW1UrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW1UrMTY+
PjJdfDApKXtiQz1iMFtjWyhjW1U+PjJdfDApKzM2Pj4yXSYxMjddKFUpfDB9ZWxzZXtiQz1jW3I+
PjJdfDB9aWYoKGFbYWZdJjEpPT0wKXtiRD1haH1lbHNle2JEPWNbYWk+PjJdfDB9aWYoKGJDfDAp
IT0oY1tiRCsoYWo8PDIpPj4yXXwwKSl7YnJlYWt9cj1haisxfDA7VT1jW2Y+PjJdfDA7YWc9VSsx
MnwwO289Y1thZz4+Ml18MDtpZigob3wwKT09KGNbVSsxNj4+Ml18MCkpe1Q9Y1soY1tVPj4yXXww
KSs0MD4+Ml18MDtiMFtUJjEyN10oVSl8MDthaj1yO2NvbnRpbnVlfWVsc2V7Y1thZz4+Ml09bys0
O2FqPXI7Y29udGludWV9fWNbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YWI7Yng9YWE7YnJlYWsg
TDEyMjB9fXdoaWxlKDApO2lmKChhYnwwKT09KGFjfDApKXtidj0xO2J3PWFjO2J4PWFhO2JyZWFr
fWNbQz4+Ml09MDtmdCh2LGFiLGFjLEMpO2lmKChjW0M+PjJdfDApPT0wKXtidj0xO2J3PWFiO2J4
PWFhO2JyZWFrfWNbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YWI7Yng9YWF9ZWxzZSBpZigoWnww
KT09NzkxKXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PVM7Yng9Un19d2hpbGUoMCk7ZWUoQSk7
ZWUoeik7ZWUoeSk7ZWUoeCk7ZFAodik7aWYoKGJ3fDApPT0wKXtpPXA7cmV0dXJuIGJ2fDB9Yllb
YngmNTExXShidyk7aT1wO3JldHVybiBidnwwfWZ1bmN0aW9uIGhfKGIsZCxlKXtiPWJ8MDtkPWR8
MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wO2Y9Yjtn
PWQ7aD1hW2ZdfDA7aT1oJjI1NTtpZigoaSYxfDApPT0wKXtqPWk+Pj4xfWVsc2V7aj1jW2IrND4+
Ml18MH1pZigoaCYxKT09MCl7az0xO2w9aH1lbHNle2g9Y1tiPj4yXXwwO2s9KGgmLTIpLTF8MDts
PWgmMjU1fWg9ZS1nPj4yO2lmKChofDApPT0wKXtyZXR1cm4gYnwwfWlmKChrLWp8MCk+Pj4wPGg+
Pj4wKXtlQihiLGssaitoLWt8MCxqLGosMCwwKTttPWFbZl18MH1lbHNle209bH1pZigobSYxKT09
MCl7bj1iKzR8MH1lbHNle249Y1tiKzg+PjJdfDB9bT1uKyhqPDwyKXwwO2lmKChkfDApPT0oZXww
KSl7bz1tfWVsc2V7bD1qKygoZS00KygtZ3wwKXwwKT4+PjIpKzF8MDtnPWQ7ZD1tO3doaWxlKDEp
e2NbZD4+Ml09Y1tnPj4yXTttPWcrNHwwO2lmKChtfDApPT0oZXwwKSl7YnJlYWt9ZWxzZXtnPW07
ZD1kKzR8MH19bz1uKyhsPDwyKXwwfWNbbz4+Ml09MDtvPWoraHwwO2lmKChhW2ZdJjEpPT0wKXth
W2ZdPW88PDEmMjU1O3JldHVybiBifDB9ZWxzZXtjW2IrND4+Ml09bztyZXR1cm4gYnwwfXJldHVy
biAwfWZ1bmN0aW9uIGgkKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGgw
KGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGgxKGIsZCxlLGYsZyxoLGosayl7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxC
PTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTA7ZD1pO2k9aSs0NTZ8MDtsPWU7ZT1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2Y+PjJdPWNbbD4+Ml07bD1kfDA7bT1kKzE2fDA7bj1kKzQxNnwwO289ZCs0MjR8MDtwPWQrNDMy
fDA7cT1kKzQ0MHwwO3I9ZCs0NDh8MDtzPW58MDtjW3M+PjJdPW07dD1uKzR8MDtjW3Q+PjJdPTE2
Njt1PW0rNDAwfDA7ZWoocCxoKTttPXB8MDt2PWNbbT4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEp
e2NbbD4+Ml09MTU2ODg7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4LGwsOTYpfWw9
KGNbMzkyM118MCktMXwwO3c9Y1t2Kzg+PjJdfDA7ZG97aWYoKGNbdisxMj4+Ml18MCktdz4+Mj4+
PjA+bD4+PjApe3g9Y1t3KyhsPDwyKT4+Ml18MDtpZigoeHwwKT09MCl7YnJlYWt9eT14O2FbcV09
MDt6PWZ8MDtBPWNbej4+Ml18MDtjW3I+PjJdPUE7aWYoaFooZSxyLGcscCxjW2grND4+Ml18MCxq
LHEseSxuLG8sdSl8MCl7Qj1rO2lmKChhW0JdJjEpPT0wKXtjW2srND4+Ml09MDthW0JdPTB9ZWxz
ZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2srND4+Ml09MH1CPXg7aWYoKGFbcV0mMSkhPTApe2VoKGss
Yl9bY1soY1tCPj4yXXwwKSs0ND4+Ml0mMzFdKHksNDUpfDApfXg9Yl9bY1soY1tCPj4yXXwwKSs0
ND4+Ml0mMzFdKHksNDgpfDA7eT1jW28+PjJdfDA7Qj15LTR8MDtDPWNbcz4+Ml18MDt3aGlsZSgx
KXtpZihDPj4+MD49Qj4+PjApe2JyZWFrfWlmKChjW0M+PjJdfDApPT0oeHwwKSl7Qz1DKzR8MH1l
bHNle2JyZWFrfX1oXyhrLEMseSl8MH14PWV8MDtCPWNbeD4+Ml18MDtkb3tpZigoQnwwKT09MCl7
RD0wfWVsc2V7RT1jW0IrMTI+PjJdfDA7aWYoKEV8MCk9PShjW0IrMTY+PjJdfDApKXtGPWIwW2Nb
KGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle0Y9Y1tFPj4yXXwwfWlmKChGfDApIT0t
MSl7RD1CO2JyZWFrfWNbeD4+Ml09MDtEPTB9fXdoaWxlKDApO3g9KER8MCk9PTA7ZG97aWYoKEF8
MCk9PTApe0c9MTEwNX1lbHNle0I9Y1tBKzEyPj4yXXwwO2lmKChCfDApPT0oY1tBKzE2Pj4yXXww
KSl7SD1iMFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDB9ZWxzZXtIPWNbQj4+Ml18MH1p
ZigoSHwwKT09LTEpe2Nbej4+Ml09MDtHPTExMDU7YnJlYWt9ZWxzZXtpZih4XihBfDApPT0wKXti
cmVha31lbHNle0c9MTEwNzticmVha319fX13aGlsZSgwKTtpZigoR3wwKT09MTEwNSl7aWYoeCl7
Rz0xMTA3fX1pZigoR3wwKT09MTEwNyl7Y1tqPj4yXT1jW2o+PjJdfDJ9Y1tiPj4yXT1EO0E9Y1tt
Pj4yXXwwO2R6KEEpfDA7QT1jW3M+PjJdfDA7Y1tzPj4yXT0wO2lmKChBfDApPT0wKXtpPWQ7cmV0
dXJufWJZW2NbdD4+Ml0mNTExXShBKTtpPWQ7cmV0dXJufX13aGlsZSgwKTtkPWJPKDQpfDA7a3Eo
ZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBoMihiLGQsZSxmLGcsaCxqLGssbCxtKXtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2
YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTA7bj1p
O2k9aSs1NnwwO289bnwwO3A9bisxNnwwO3E9biszMnwwO3I9bis0MHwwO3M9cjt0PWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7dT10O3Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt3PXY7eD1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO3k9eDt6PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzEyfDA7
aT1pKzc+PjM8PDM7Qj1BO0Q9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO0c9RjtIPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7ST1IO2lmKGIpe2I9Y1tk
Pj4yXXwwO2lmKChjWzQwNDBdfDApIT0tMSl7Y1twPj4yXT0xNjE2MDtjW3ArND4+Ml09MTI7Y1tw
Kzg+PjJdPTA7ZFcoMTYxNjAscCw5Nil9cD0oY1s0MDQxXXwwKS0xfDA7Sj1jW2IrOD4+Ml18MDtp
ZigoY1tiKzEyPj4yXXwwKS1KPj4yPj4+MDw9cD4+PjApe0s9Yk8oNCl8MDtMPUs7a3EoTCk7Ymwo
S3wwLDgxNzYsMTM0KX1iPWNbSisocDw8Mik+PjJdfDA7aWYoKGJ8MCk9PTApe0s9Yk8oNCl8MDtM
PUs7a3EoTCk7YmwoS3wwLDgxNzYsMTM0KX1LPWI7YlpbY1soY1tiPj4yXXwwKSs0ND4+Ml0mMTI3
XShxLEspO0w9ZTtDPWNbcT4+Ml18MDthW0xdPUMmMjU1O0M9Qz4+ODthW0wrMXwwXT1DJjI1NTtD
PUM+Pjg7YVtMKzJ8MF09QyYyNTU7Qz1DPj44O2FbTCszfDBdPUMmMjU1O0w9YjtiWltjWyhjW0w+
PjJdfDApKzMyPj4yXSYxMjddKHIsSyk7cT1sO2lmKChhW3FdJjEpPT0wKXtjW2wrND4+Ml09MDth
W3FdPTB9ZWxzZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2NbcT4+Ml09
Y1tzPj4yXTtjW3ErND4+Ml09Y1tzKzQ+PjJdO2NbcSs4Pj4yXT1jW3MrOD4+Ml07ayQoc3wwLDAs
MTIpO2VlKHIpO2JaW2NbKGNbTD4+Ml18MCkrMjg+PjJdJjEyN10odCxLKTtyPWs7aWYoKGFbcl0m
MSk9PTApe2Nbays0Pj4yXT0wO2Fbcl09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4y
XT0wfWV6KGssMCk7Y1tyPj4yXT1jW3U+PjJdO2Nbcis0Pj4yXT1jW3UrND4+Ml07Y1tyKzg+PjJd
PWNbdSs4Pj4yXTtrJCh1fDAsMCwxMik7ZWUodCk7dD1iO2NbZj4+Ml09YjBbY1soY1t0Pj4yXXww
KSsxMj4+Ml0mMTI3XShLKXwwO2NbZz4+Ml09YjBbY1soY1t0Pj4yXXwwKSsxNj4+Ml0mMTI3XShL
KXwwO2JaW2NbKGNbYj4+Ml18MCkrMjA+PjJdJjEyN10odixLKTtiPWg7aWYoKGFbYl0mMSk9PTAp
e2FbaCsxfDBdPTA7YVtiXT0wfWVsc2V7YVtjW2grOD4+Ml18MF09MDtjW2grND4+Ml09MH1kJCho
LDApO2NbYj4+Ml09Y1t3Pj4yXTtjW2IrND4+Ml09Y1t3KzQ+PjJdO2NbYis4Pj4yXT1jW3crOD4+
Ml07ayQod3wwLDAsMTIpO2RQKHYpO2JaW2NbKGNbTD4+Ml18MCkrMjQ+PjJdJjEyN10oeCxLKTtM
PWo7aWYoKGFbTF0mMSk9PTApe2Nbais0Pj4yXT0wO2FbTF09MH1lbHNle2NbY1tqKzg+PjJdPj4y
XT0wO2Nbais0Pj4yXT0wfWV6KGosMCk7Y1tMPj4yXT1jW3k+PjJdO2NbTCs0Pj4yXT1jW3krND4+
Ml07Y1tMKzg+PjJdPWNbeSs4Pj4yXTtrJCh5fDAsMCwxMik7ZWUoeCk7TT1iMFtjWyhjW3Q+PjJd
fDApKzM2Pj4yXSYxMjddKEspfDA7Y1ttPj4yXT1NO2k9bjtyZXR1cm59ZWxzZXtLPWNbZD4+Ml18
MDtpZigoY1s0MDQyXXwwKSE9LTEpe2Nbbz4+Ml09MTYxNjg7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4y
XT0wO2RXKDE2MTY4LG8sOTYpfW89KGNbNDA0M118MCktMXwwO2Q9Y1tLKzg+PjJdfDA7aWYoKGNb
SysxMj4+Ml18MCktZD4+Mj4+PjA8PW8+Pj4wKXtOPWJPKDQpfDA7Tz1OO2txKE8pO2JsKE58MCw4
MTc2LDEzNCl9Sz1jW2QrKG88PDIpPj4yXXwwO2lmKChLfDApPT0wKXtOPWJPKDQpfDA7Tz1OO2tx
KE8pO2JsKE58MCw4MTc2LDEzNCl9Tj1LO2JaW2NbKGNbSz4+Ml18MCkrNDQ+PjJdJjEyN10oeixO
KTtPPWU7Qz1jW3o+PjJdfDA7YVtPXT1DJjI1NTtDPUM+Pjg7YVtPKzF8MF09QyYyNTU7Qz1DPj44
O2FbTysyfDBdPUMmMjU1O0M9Qz4+ODthW08rM3wwXT1DJjI1NTtPPUs7YlpbY1soY1tPPj4yXXww
KSszMj4+Ml0mMTI3XShBLE4pO3o9bDtpZigoYVt6XSYxKT09MCl7Y1tsKzQ+PjJdPTA7YVt6XT0w
fWVsc2V7Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW3o+PjJdPWNbQj4+
Ml07Y1t6KzQ+PjJdPWNbQis0Pj4yXTtjW3orOD4+Ml09Y1tCKzg+PjJdO2skKEJ8MCwwLDEyKTtl
ZShBKTtiWltjWyhjW08+PjJdfDApKzI4Pj4yXSYxMjddKEQsTik7QT1rO2lmKChhW0FdJjEpPT0w
KXtjW2srND4+Ml09MDthW0FdPTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2srND4+Ml09MH1l
eihrLDApO2NbQT4+Ml09Y1tFPj4yXTtjW0ErND4+Ml09Y1tFKzQ+PjJdO2NbQSs4Pj4yXT1jW0Ur
OD4+Ml07ayQoRXwwLDAsMTIpO2VlKEQpO0Q9SztjW2Y+PjJdPWIwW2NbKGNbRD4+Ml18MCkrMTI+
PjJdJjEyN10oTil8MDtjW2c+PjJdPWIwW2NbKGNbRD4+Ml18MCkrMTY+PjJdJjEyN10oTil8MDti
WltjWyhjW0s+PjJdfDApKzIwPj4yXSYxMjddKEYsTik7Sz1oO2lmKChhW0tdJjEpPT0wKXthW2gr
MXwwXT0wO2FbS109MH1lbHNle2FbY1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9ZCQoaCwwKTtj
W0s+PjJdPWNbRz4+Ml07Y1tLKzQ+PjJdPWNbRys0Pj4yXTtjW0srOD4+Ml09Y1tHKzg+PjJdO2sk
KEd8MCwwLDEyKTtkUChGKTtiWltjWyhjW08+PjJdfDApKzI0Pj4yXSYxMjddKEgsTik7Tz1qO2lm
KChhW09dJjEpPT0wKXtjW2orND4+Ml09MDthW09dPTB9ZWxzZXtjW2Nbais4Pj4yXT4+Ml09MDtj
W2orND4+Ml09MH1leihqLDApO2NbTz4+Ml09Y1tJPj4yXTtjW08rND4+Ml09Y1tJKzQ+PjJdO2Nb
Tys4Pj4yXT1jW0krOD4+Ml07ayQoSXwwLDAsMTIpO2VlKEgpO009YjBbY1soY1tEPj4yXXwwKSsz
Nj4+Ml0mMTI3XShOKXwwO2NbbT4+Ml09TTtpPW47cmV0dXJufX1mdW5jdGlvbiBoMyhhLGIsZCl7
YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1h
KzR8MDtmPShjW2U+PjJdfDApIT0xNjY7Zz1hfDA7YT1jW2c+PjJdfDA7aD1hO2k9KGNbZD4+Ml18
MCktaHwwO2o9aT4+PjA8MjE0NzQ4MzY0Nz9pPDwxOi0xO2k9KGNbYj4+Ml18MCktaD4+MjtpZihm
KXtrPWF9ZWxzZXtrPTB9YT1rTChrLGopfDA7az1hO2lmKChhfDApPT0wKXtrWCgpfWRve2lmKGYp
e2NbZz4+Ml09aztsPWt9ZWxzZXthPWNbZz4+Ml18MDtjW2c+PjJdPWs7aWYoKGF8MCk9PTApe2w9
azticmVha31iWVtjW2U+PjJdJjUxMV0oYSk7bD1jW2c+PjJdfDB9fXdoaWxlKDApO2NbZT4+Ml09
ODI7Y1tiPj4yXT1sKyhpPDwyKTtjW2Q+PjJdPShjW2c+PjJdfDApKyhqPj4+Mjw8Mik7cmV0dXJu
fWZ1bmN0aW9uIGg0KGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anww
O2s9a3wwO2w9K2w7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9
MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MDtlPWk7aT1p
KzI4MHwwO209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1lfDA7
bj1lKzEyMHwwO289ZSsyMzJ8MDtwPWUrMjQwfDA7cT1lKzI0OHwwO3I9ZSsyNTZ8MDtzPWUrMjY0
fDA7dD1zO3U9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSsxMnwwO2k9aSs3Pj4z
PDwzO3g9dzt5PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzEwMHwwO2k9aSs3Pj4zPDwz
O0E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0M9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO0Q9ZSsxNnwwO2Nbbj4+Ml09RDtFPWUrMTI4fDA7Rj1hWihEfDAsMTAw
LDEzNjAsKEQ9aSxpPWkrOHwwLGhbRD4+M109bCxEKXwwKXwwO2k9RDtkb3tpZihGPj4+MD45OSl7
ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThd
PWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtHPWdoKG4sY1syOTU4XXwwLDEzNjAsKEQ9aSxpPWkr
OHwwLGhbRD4+M109bCxEKXwwKXwwO2k9RDtIPWNbbj4+Ml18MDtpZigoSHwwKT09MCl7a1goKTtJ
PWNbbj4+Ml18MH1lbHNle0k9SH1IPWtKKEcpfDA7aWYoKEh8MCkhPTApe0o9SDtLPUc7TD1JO009
SDticmVha31rWCgpO0o9MDtLPUc7TD1JO009MH1lbHNle0o9RTtLPUY7TD0wO009MH19d2hpbGUo
MCk7ZWoobyxqKTtGPW98MDtFPWNbRj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbT4+Ml09
MTU2OTY7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1Njk2LG0sOTYpfW09KGNbMzkyNV18
MCktMXwwO0k9Y1tFKzg+PjJdfDA7ZG97aWYoKGNbRSsxMj4+Ml18MCktST4+Mj4+PjA+bT4+PjAp
e0Q9Y1tJKyhtPDwyKT4+Ml18MDtpZigoRHwwKT09MCl7YnJlYWt9Rz1EO0g9Y1tuPj4yXXwwO049
SCtLfDA7Tz1jWyhjW0Q+PjJdfDApKzMyPj4yXXwwO2NhW08mMTVdKEcsSCxOLEopfDA7aWYoKEt8
MCk9PTApe1A9MH1lbHNle1A9KGFbY1tuPj4yXXwwXXwwKT09NDV9ayQodHwwLDAsMTIpO2skKHZ8
MCwwLDEyKTtrJCh4fDAsMCwxMik7aDUoZyxQLG8scCxxLHIscyx1LHcseSk7Tj16fDA7SD1jW3k+
PjJdfDA7aWYoKEt8MCk+KEh8MCkpe089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1E9Tz4+PjF9ZWxz
ZXtRPWNbdys0Pj4yXXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1I9Tz4+PjF9ZWxzZXtSPWNb
dSs0Pj4yXXwwfVM9KEstSDw8MXwxKStRK1J8MH1lbHNle089ZFt4XXwwO2lmKChPJjF8MCk9PTAp
e1Q9Tz4+PjF9ZWxzZXtUPWNbdys0Pj4yXXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1U9Tz4+
PjF9ZWxzZXtVPWNbdSs0Pj4yXXwwfVM9VCsyK1V8MH1PPVMrSHwwO2Rve2lmKE8+Pj4wPjEwMCl7
RD1rSihPKXwwO2lmKChEfDApIT0wKXtWPUQ7Vz1EO2JyZWFrfWtYKCk7Vj0wO1c9MH1lbHNle1Y9
TjtXPTB9fXdoaWxlKDApO2g2KFYsQSxCLGNbais0Pj4yXXwwLEosSitLfDAsRyxQLHAsYVtxXXww
LGFbcl18MCxzLHUsdyxIKTtjW0M+PjJdPWNbZj4+Ml07ZjkoYixDLFYsY1tBPj4yXXwwLGNbQj4+
Ml18MCxqLGspO2lmKChXfDApIT0wKXtrSyhXKX1kUCh3KTtkUCh1KTtkUChzKTtOPWNbRj4+Ml18
MDtkeihOKXwwO2lmKChNfDApIT0wKXtrSyhNKX1pZigoTHwwKT09MCl7aT1lO3JldHVybn1rSyhM
KTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1m
dW5jdGlvbiBoNShiLGQsZSxmLGcsaCxqLGssbCxtKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7
bj1pO2k9aSs0MHwwO289bnwwO3A9bisxNnwwO3E9biszMnwwO3I9cTtzPWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7dD1zO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7eD13O3k9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PXk7QT1pO2k9aSsxMnwwO2k9
aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1pO2k9aSsxMnwwO2k9
aSs3Pj4zPDwzO0c9RjtIPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztJPUg7Sj1pO2k9aSsxMnwwO2k9
aSs3Pj4zPDwzO0s9SjtMPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7TT1MO049aTtpPWkrMTJ8MDtp
PWkrNz4+Mzw8MztPPU47UD1jW2U+PjJdfDA7aWYoYil7aWYoKGNbNDA0NF18MCkhPS0xKXtjW3A+
PjJdPTE2MTc2O2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNjE3NixwLDk2KX1wPShjWzQw
NDVdfDApLTF8MDtiPWNbUCs4Pj4yXXwwO2lmKChjW1ArMTI+PjJdfDApLWI+PjI+Pj4wPD1wPj4+
MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQpfWU9Y1tiKyhwPDwyKT4+Ml18
MDtpZigoZXwwKT09MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQpfVE9ZTtS
PWNbZT4+Ml18MDtpZihkKXtiWltjW1IrNDQ+PjJdJjEyN10ocixRKTtyPWY7Qz1jW3E+PjJdfDA7
YVtyXT1DJjI1NTtDPUM+Pjg7YVtyKzF8MF09QyYyNTU7Qz1DPj44O2FbcisyfDBdPUMmMjU1O0M9
Qz4+ODthW3IrM3wwXT1DJjI1NTtiWltjWyhjW2U+PjJdfDApKzMyPj4yXSYxMjddKHMsUSk7cj1s
O2lmKChhW3JdJjEpPT0wKXthW2wrMXwwXT0wO2Fbcl09MH1lbHNle2FbY1tsKzg+PjJdfDBdPTA7
Y1tsKzQ+PjJdPTB9ZCQobCwwKTtjW3I+PjJdPWNbdD4+Ml07Y1tyKzQ+PjJdPWNbdCs0Pj4yXTtj
W3IrOD4+Ml09Y1t0Kzg+PjJdO2skKHR8MCwwLDEyKTtkUChzKX1lbHNle2JaW2NbUis0MD4+Ml0m
MTI3XSh2LFEpO3Y9ZjtDPWNbdT4+Ml18MDthW3ZdPUMmMjU1O0M9Qz4+ODthW3YrMXwwXT1DJjI1
NTtDPUM+Pjg7YVt2KzJ8MF09QyYyNTU7Qz1DPj44O2FbdiszfDBdPUMmMjU1O2JaW2NbKGNbZT4+
Ml18MCkrMjg+PjJdJjEyN10odyxRKTt2PWw7aWYoKGFbdl0mMSk9PTApe2FbbCsxfDBdPTA7YVt2
XT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChsLDApO2Nbdj4+Ml09Y1t4
Pj4yXTtjW3YrND4+Ml09Y1t4KzQ+PjJdO2Nbdis4Pj4yXT1jW3grOD4+Ml07ayQoeHwwLDAsMTIp
O2RQKHcpfXc9ZTthW2ddPWIwW2NbKGNbdz4+Ml18MCkrMTI+PjJdJjEyN10oUSl8MDthW2hdPWIw
W2NbKGNbdz4+Ml18MCkrMTY+PjJdJjEyN10oUSl8MDt3PWU7YlpbY1soY1t3Pj4yXXwwKSsyMD4+
Ml0mMTI3XSh5LFEpO3g9ajtpZigoYVt4XSYxKT09MCl7YVtqKzF8MF09MDthW3hdPTB9ZWxzZXth
W2Nbais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1t4Pj4yXT1jW3o+PjJdO2NbeCs0
Pj4yXT1jW3orND4+Ml07Y1t4Kzg+PjJdPWNbeis4Pj4yXTtrJCh6fDAsMCwxMik7ZFAoeSk7Ylpb
Y1soY1t3Pj4yXXwwKSsyND4+Ml0mMTI3XShBLFEpO3c9aztpZigoYVt3XSYxKT09MCl7YVtrKzF8
MF09MDthW3ddPTB9ZWxzZXthW2Nbays4Pj4yXXwwXT0wO2Nbays0Pj4yXT0wfWQkKGssMCk7Y1t3
Pj4yXT1jW0I+PjJdO2Nbdys0Pj4yXT1jW0IrND4+Ml07Y1t3Kzg+PjJdPWNbQis4Pj4yXTtrJChC
fDAsMCwxMik7ZFAoQSk7Uz1iMFtjWyhjW2U+PjJdfDApKzM2Pj4yXSYxMjddKFEpfDA7Y1ttPj4y
XT1TO2k9bjtyZXR1cm59ZWxzZXtpZigoY1s0MDQ2XXwwKSE9LTEpe2Nbbz4+Ml09MTYxODQ7Y1tv
KzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE2MTg0LG8sOTYpfW89KGNbNDA0N118MCktMXwwO1E9
Y1tQKzg+PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktUT4+Mj4+PjA8PW8+Pj4wKXtUPWJPKDQpfDA7
VT1UO2txKFUpO2JsKFR8MCw4MTc2LDEzNCl9UD1jW1ErKG88PDIpPj4yXXwwO2lmKChQfDApPT0w
KXtUPWJPKDQpfDA7VT1UO2txKFUpO2JsKFR8MCw4MTc2LDEzNCl9VD1QO1U9Y1tQPj4yXXwwO2lm
KGQpe2JaW2NbVSs0ND4+Ml0mMTI3XShFLFQpO0U9ZjtDPWNbRD4+Ml18MDthW0VdPUMmMjU1O0M9
Qz4+ODthW0UrMXwwXT1DJjI1NTtDPUM+Pjg7YVtFKzJ8MF09QyYyNTU7Qz1DPj44O2FbRSszfDBd
PUMmMjU1O2JaW2NbKGNbUD4+Ml18MCkrMzI+PjJdJjEyN10oRixUKTtFPWw7aWYoKGFbRV0mMSk9
PTApe2FbbCsxfDBdPTA7YVtFXT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1k
JChsLDApO2NbRT4+Ml09Y1tHPj4yXTtjW0UrND4+Ml09Y1tHKzQ+PjJdO2NbRSs4Pj4yXT1jW0cr
OD4+Ml07ayQoR3wwLDAsMTIpO2RQKEYpfWVsc2V7YlpbY1tVKzQwPj4yXSYxMjddKEksVCk7ST1m
O0M9Y1tIPj4yXXwwO2FbSV09QyYyNTU7Qz1DPj44O2FbSSsxfDBdPUMmMjU1O0M9Qz4+ODthW0kr
MnwwXT1DJjI1NTtDPUM+Pjg7YVtJKzN8MF09QyYyNTU7YlpbY1soY1tQPj4yXXwwKSsyOD4+Ml0m
MTI3XShKLFQpO0k9bDtpZigoYVtJXSYxKT09MCl7YVtsKzF8MF09MDthW0ldPTB9ZWxzZXthW2Nb
bCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1tJPj4yXT1jW0s+PjJdO2NbSSs0Pj4y
XT1jW0srND4+Ml07Y1tJKzg+PjJdPWNbSys4Pj4yXTtrJChLfDAsMCwxMik7ZFAoSil9Sj1QO2Fb
Z109YjBbY1soY1tKPj4yXXwwKSsxMj4+Ml0mMTI3XShUKXwwO2FbaF09YjBbY1soY1tKPj4yXXww
KSsxNj4+Ml0mMTI3XShUKXwwO0o9UDtiWltjWyhjW0o+PjJdfDApKzIwPj4yXSYxMjddKEwsVCk7
aD1qO2lmKChhW2hdJjEpPT0wKXthW2orMXwwXT0wO2FbaF09MH1lbHNle2FbY1tqKzg+PjJdfDBd
PTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW2g+PjJdPWNbTT4+Ml07Y1toKzQ+PjJdPWNbTSs0Pj4y
XTtjW2grOD4+Ml09Y1tNKzg+PjJdO2skKE18MCwwLDEyKTtkUChMKTtiWltjWyhjW0o+PjJdfDAp
KzI0Pj4yXSYxMjddKE4sVCk7Sj1rO2lmKChhW0pdJjEpPT0wKXthW2srMXwwXT0wO2FbSl09MH1l
bHNle2FbY1trKzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW0o+PjJdPWNbTz4+Ml07
Y1tKKzQ+PjJdPWNbTys0Pj4yXTtjW0orOD4+Ml09Y1tPKzg+PjJdO2skKE98MCwwLDEyKTtkUChO
KTtTPWIwW2NbKGNbUD4+Ml18MCkrMzY+PjJdJjEyN10oVCl8MDtjW20+PjJdPVM7aT1uO3JldHVy
bn19ZnVuY3Rpb24gaDYoZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIpe2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO249bnwwO289
b3wwO3A9cHwwO3E9cXwwO3I9cnwwO3ZhciBzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0w
LEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAs
Tz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxh
YT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9
MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxhdj0wLGF3PTAs
YXg9MCxheT0wO2NbZj4+Ml09ZDtzPWo7dD1xO3U9cSsxfDA7dj1xKzh8MDt3PXErNHwwO3E9cDt4
PShnJjUxMnwwKT09MDt5PXArMXwwO3o9cCs0fDA7QT1wKzh8MDtwPWorOHwwO0I9KHJ8MCk+MDtD
PW87RD1vKzF8MDtFPW8rOHwwO0Y9bys0fDA7bz0tcnwwO0c9aDtoPTA7d2hpbGUoMSl7TDE1ODA6
ZG97c3dpdGNoKGFbbCtofDBdfDApe2Nhc2UgMDp7Y1tlPj4yXT1jW2Y+PjJdO0g9RzticmVha307
Y2FzZSAxOntjW2U+PjJdPWNbZj4+Ml07ST1iX1tjWyhjW3M+PjJdfDApKzI4Pj4yXSYzMV0oaiwz
Mil8MDtKPWNbZj4+Ml18MDtjW2Y+PjJdPUorMTthW0pdPUk7SD1HO2JyZWFrfTtjYXNlIDM6e0k9
YVt0XXwwO0o9SSYyNTU7aWYoKEomMXwwKT09MCl7Sz1KPj4+MX1lbHNle0s9Y1t3Pj4yXXwwfWlm
KChLfDApPT0wKXtIPUc7YnJlYWsgTDE1ODB9aWYoKEkmMSk9PTApe0w9dX1lbHNle0w9Y1t2Pj4y
XXwwfUk9YVtMXXwwO0o9Y1tmPj4yXXwwO2NbZj4+Ml09SisxO2FbSl09STtIPUc7YnJlYWt9O2Nh
c2UgMjp7ST1hW3FdfDA7Sj1JJjI1NTtNPShKJjF8MCk9PTA7aWYoTSl7Tj1KPj4+MX1lbHNle049
Y1t6Pj4yXXwwfWlmKChOfDApPT0wfHgpe0g9RzticmVhayBMMTU4MH1pZigoSSYxKT09MCl7Tz15
O1A9eX1lbHNle0k9Y1tBPj4yXXwwO089STtQPUl9aWYoTSl7UT1KPj4+MX1lbHNle1E9Y1t6Pj4y
XXwwfUo9TytRfDA7TT1jW2Y+PjJdfDA7aWYoKFB8MCk9PShKfDApKXtSPU19ZWxzZXtJPVA7Uz1N
O3doaWxlKDEpe2FbU109YVtJXXwwO009SSsxfDA7VD1TKzF8MDtpZigoTXwwKT09KEp8MCkpe1I9
VDticmVha31lbHNle0k9TTtTPVR9fX1jW2Y+PjJdPVI7SD1HO2JyZWFrfTtjYXNlIDQ6e1M9Y1tm
Pj4yXXwwO0k9az9HKzF8MDpHO0o9STt3aGlsZSgxKXtpZihKPj4+MD49aT4+PjApe2JyZWFrfVQ9
YVtKXXwwO2lmKFQ8PDI0Pj4yNDw9LTEpe2JyZWFrfWlmKChiWyhjW3A+PjJdfDApKyhUPDwyND4+
MjQ8PDEpPj4xXSYyMDQ4KT09MCl7YnJlYWt9ZWxzZXtKPUorMXwwfX1UPUo7aWYoQil7aWYoSj4+
PjA+ST4+PjApe009SSsoLVR8MCl8MDtUPU0+Pj4wPG8+Pj4wP286TTtNPVQrcnwwO1U9SjtWPXI7
Vz1TO3doaWxlKDEpe1g9VS0xfDA7WT1hW1hdfDA7Y1tmPj4yXT1XKzE7YVtXXT1ZO1k9Vi0xfDA7
Wj0oWXwwKT4wO2lmKCEoWD4+PjA+ST4+PjAmWikpe2JyZWFrfVU9WDtWPVk7Vz1jW2Y+PjJdfDB9
Vz1KK1R8MDtpZihaKXtfPU07JD1XO2FhPTEzNTR9ZWxzZXthYj0wO2FjPU07YWQ9V319ZWxzZXtf
PXI7JD1KO2FhPTEzNTR9aWYoKGFhfDApPT0xMzU0KXthYT0wO2FiPWJfW2NbKGNbcz4+Ml18MCkr
Mjg+PjJdJjMxXShqLDQ4KXwwO2FjPV87YWQ9JH1XPWNbZj4+Ml18MDtjW2Y+PjJdPVcrMTtpZigo
YWN8MCk+MCl7Vj1hYztVPVc7d2hpbGUoMSl7YVtVXT1hYjtZPVYtMXwwO1g9Y1tmPj4yXXwwO2Nb
Zj4+Ml09WCsxO2lmKChZfDApPjApe1Y9WTtVPVh9ZWxzZXthZT1YO2JyZWFrfX19ZWxzZXthZT1X
fWFbYWVdPW07YWY9YWR9ZWxzZXthZj1KfWlmKChhZnwwKT09KEl8MCkpe1U9Yl9bY1soY1tzPj4y
XXwwKSsyOD4+Ml0mMzFdKGosNDgpfDA7Vj1jW2Y+PjJdfDA7Y1tmPj4yXT1WKzE7YVtWXT1VfWVs
c2V7VT1hW0NdfDA7Vj1VJjI1NTtpZigoViYxfDApPT0wKXthZz1WPj4+MX1lbHNle2FnPWNbRj4+
Ml18MH1pZigoYWd8MCk9PTApe2FoPWFmO2FpPTA7YWo9MDthaz0tMX1lbHNle2lmKChVJjEpPT0w
KXthbD1EfWVsc2V7YWw9Y1tFPj4yXXwwfWFoPWFmO2FpPTA7YWo9MDthaz1hW2FsXXwwfXdoaWxl
KDEpe2Rve2lmKChhaXwwKT09KGFrfDApKXtVPWNbZj4+Ml18MDtjW2Y+PjJdPVUrMTthW1VdPW47
VT1haisxfDA7Vj1hW0NdfDA7TT1WJjI1NTtpZigoTSYxfDApPT0wKXthbT1NPj4+MX1lbHNle2Ft
PWNbRj4+Ml18MH1pZihVPj4+MD49YW0+Pj4wKXthbj1hazthbz1VO2FwPTA7YnJlYWt9TT0oViYx
KT09MDtpZihNKXthcT1EfWVsc2V7YXE9Y1tFPj4yXXwwfWlmKChhW2FxK1V8MF18MCk9PTEyNyl7
YW49LTE7YW89VTthcD0wO2JyZWFrfWlmKE0pe2FyPUR9ZWxzZXthcj1jW0U+PjJdfDB9YW49YVth
citVfDBdfDA7YW89VTthcD0wfWVsc2V7YW49YWs7YW89YWo7YXA9YWl9fXdoaWxlKDApO1U9YWgt
MXwwO009YVtVXXwwO1Y9Y1tmPj4yXXwwO2NbZj4+Ml09VisxO2FbVl09TTtpZigoVXwwKT09KEl8
MCkpe2JyZWFrfWVsc2V7YWg9VTthaT1hcCsxfDA7YWo9YW87YWs9YW59fX1KPWNbZj4+Ml18MDtp
ZigoU3wwKT09KEp8MCkpe0g9STticmVhayBMMTU4MH1XPUotMXwwO2lmKFM+Pj4wPFc+Pj4wKXth
cz1TO2F0PVd9ZWxzZXtIPUk7YnJlYWsgTDE1ODB9d2hpbGUoMSl7Vz1hW2FzXXwwO2FbYXNdPWFb
YXRdfDA7YVthdF09VztXPWFzKzF8MDtKPWF0LTF8MDtpZihXPj4+MDxKPj4+MCl7YXM9VzthdD1K
fWVsc2V7SD1JO2JyZWFrfX1icmVha307ZGVmYXVsdDp7SD1HfX19d2hpbGUoMCk7ST1oKzF8MDtp
ZihJPj4+MDw0KXtHPUg7aD1JfWVsc2V7YnJlYWt9fWg9YVt0XXwwO3Q9aCYyNTU7SD0odCYxfDAp
PT0wO2lmKEgpe2F1PXQ+Pj4xfWVsc2V7YXU9Y1t3Pj4yXXwwfWlmKGF1Pj4+MD4xKXtpZigoaCYx
KT09MCl7YXY9dTthdz11fWVsc2V7dT1jW3Y+PjJdfDA7YXY9dTthdz11fWlmKEgpe2F4PXQ+Pj4x
fWVsc2V7YXg9Y1t3Pj4yXXwwfXc9YXYrYXh8MDtheD1jW2Y+PjJdfDA7YXY9YXcrMXwwO2lmKChh
dnwwKT09KHd8MCkpe2F5PWF4fWVsc2V7YXc9YXg7YXg9YXY7d2hpbGUoMSl7YVthd109YVtheF18
MDthdj1hdysxfDA7dD1heCsxfDA7aWYoKHR8MCk9PSh3fDApKXtheT1hdjticmVha31lbHNle2F3
PWF2O2F4PXR9fX1jW2Y+PjJdPWF5fXN3aXRjaChnJjE3NnwwKXtjYXNlIDE2OntyZXR1cm59O2Nh
c2UgMzI6e2NbZT4+Ml09Y1tmPj4yXTtyZXR1cm59O2RlZmF1bHQ6e2NbZT4+Ml09ZDtyZXR1cm59
fX1mdW5jdGlvbiBoNyhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBoOChh
KXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoOShiLGUsZixnLGgsaixrKXtiPWJ8MDtl
PWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0w
LEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAs
Uz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wO2U9
aTtpPWkrNjR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9
ZXwwO209ZSsxNnwwO249ZSsyNHwwO289ZSszMnwwO3A9ZSs0MHwwO3E9ZSs0OHwwO3I9cTtzPWk7
aT1pKzEyfDA7aT1pKzc+PjM8PDM7dD1zO3U9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7eD1pO2k9aSsxMDB8MDtpPWkrNz4+Mzw8Mzt5PWk7aT1pKzR8
MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztlaihtLGgpO0I9bXwwO0M9Y1tCPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tsPj4y
XT0xNTY5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0oY1szOTI1
XXwwKS0xfDA7RD1jW0MrOD4+Ml18MDtkb3tpZigoY1tDKzEyPj4yXXwwKS1EPj4yPj4+MD5sPj4+
MCl7RT1jW0QrKGw8PDIpPj4yXXwwO2lmKChFfDApPT0wKXticmVha31GPUU7Rz1rO0g9aztJPWFb
SF18MDtKPUkmMjU1O2lmKChKJjF8MCk9PTApe0s9Sj4+PjF9ZWxzZXtLPWNbays0Pj4yXXwwfWlm
KChLfDApPT0wKXtMPTB9ZWxzZXtpZigoSSYxKT09MCl7TT1HKzF8MH1lbHNle009Y1trKzg+PjJd
fDB9ST1hW01dfDA7TD1JPDwyND4+MjQ9PShiX1tjWyhjW0U+PjJdfDApKzI4Pj4yXSYzMV0oRiw0
NSl8MCk8PDI0Pj4yNH1rJChyfDAsMCwxMik7ayQodHwwLDAsMTIpO2skKHZ8MCwwLDEyKTtoNShn
LEwsbSxuLG8scCxxLHMsdSx3KTtFPXh8MDtJPWFbSF18MDtKPUkmMjU1O049KEomMXwwKT09MDtp
ZihOKXtPPUo+Pj4xfWVsc2V7Tz1jW2srND4+Ml18MH1QPWNbdz4+Ml18MDtpZigoT3wwKT4oUHww
KSl7aWYoTil7UT1KPj4+MX1lbHNle1E9Y1trKzQ+PjJdfDB9Sj1kW3ZdfDA7aWYoKEomMXwwKT09
MCl7Uj1KPj4+MX1lbHNle1I9Y1t1KzQ+PjJdfDB9Sj1kW3RdfDA7aWYoKEomMXwwKT09MCl7Uz1K
Pj4+MX1lbHNle1M9Y1tzKzQ+PjJdfDB9VD0oUS1QPDwxfDEpK1IrU3wwfWVsc2V7Sj1kW3ZdfDA7
aWYoKEomMXwwKT09MCl7VT1KPj4+MX1lbHNle1U9Y1t1KzQ+PjJdfDB9Sj1kW3RdfDA7aWYoKEom
MXwwKT09MCl7Vj1KPj4+MX1lbHNle1Y9Y1tzKzQ+PjJdfDB9VD1VKzIrVnwwfUo9VCtQfDA7ZG97
aWYoSj4+PjA+MTAwKXtOPWtKKEopfDA7aWYoKE58MCkhPTApe1c9TjtYPU47WT1JO2JyZWFrfWtY
KCk7Vz0wO1g9MDtZPWFbSF18MH1lbHNle1c9RTtYPTA7WT1JfX13aGlsZSgwKTtpZigoWSYxKT09
MCl7Wj1HKzF8MDtfPUcrMXwwfWVsc2V7ST1jW2srOD4+Ml18MDtaPUk7Xz1JfUk9WSYyNTU7aWYo
KEkmMXwwKT09MCl7JD1JPj4+MX1lbHNleyQ9Y1trKzQ+PjJdfDB9aDYoVyx5LHosY1toKzQ+PjJd
fDAsXyxaKyR8MCxGLEwsbixhW29dfDAsYVtwXXwwLHEscyx1LFApO2NbQT4+Ml09Y1tmPj4yXTtm
OShiLEEsVyxjW3k+PjJdfDAsY1t6Pj4yXXwwLGgsaik7aWYoKFh8MCk9PTApe2RQKHUpO2RQKHMp
O2RQKHEpO2FhPWNbQj4+Ml18MDthYj1hYXwwO2FjPWR6KGFiKXwwO2k9ZTtyZXR1cm59a0soWCk7
ZFAodSk7ZFAocyk7ZFAocSk7YWE9Y1tCPj4yXXwwO2FiPWFhfDA7YWM9ZHooYWIpfDA7aT1lO3Jl
dHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2JsKGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24g
aWEoYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7az1rfDA7bD0r
bDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAs
Tj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MDtlPWk7aT1pKzU3Nnww
O209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1lfDA7bj1lKzEy
MHwwO289ZSs1Mjh8MDtwPWUrNTM2fDA7cT1lKzU0NHwwO3I9ZSs1NTJ8MDtzPWUrNTYwfDA7dD1z
O3U9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3g9
dzt5PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzQwMHwwO0E9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO0I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0Q9
ZSsxNnwwO2Nbbj4+Ml09RDtFPWUrMTI4fDA7Rj1hWihEfDAsMTAwLDEzNjAsKEQ9aSxpPWkrOHww
LGhbRD4+M109bCxEKXwwKXwwO2k9RDtkb3tpZihGPj4+MD45OSl7ZG97aWYoKGFbMTYyNjRdfDAp
PT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13
aGlsZSgwKTtHPWdoKG4sY1syOTU4XXwwLDEzNjAsKEQ9aSxpPWkrOHwwLGhbRD4+M109bCxEKXww
KXwwO2k9RDtIPWNbbj4+Ml18MDtpZigoSHwwKT09MCl7a1goKTtJPWNbbj4+Ml18MH1lbHNle0k9
SH1IPWtKKEc8PDIpfDA7Sj1IO2lmKChIfDApIT0wKXtLPUo7TD1HO009STtOPUo7YnJlYWt9a1go
KTtLPUo7TD1HO009STtOPUp9ZWxzZXtLPUU7TD1GO009MDtOPTB9fXdoaWxlKDApO2VqKG8saik7
Rj1vfDA7RT1jW0Y+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW20+PjJdPTE1Njg4O2NbbSs0
Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTY4OCxtLDk2KX1tPShjWzM5MjNdfDApLTF8MDtJPWNb
RSs4Pj4yXXwwO2Rve2lmKChjW0UrMTI+PjJdfDApLUk+PjI+Pj4wPm0+Pj4wKXtEPWNbSSsobTw8
Mik+PjJdfDA7aWYoKER8MCk9PTApe2JyZWFrfUo9RDtHPWNbbj4+Ml18MDtIPUcrTHwwO089Y1so
Y1tEPj4yXXwwKSs0OD4+Ml18MDtjYVtPJjE1XShKLEcsSCxLKXwwO2lmKChMfDApPT0wKXtQPTB9
ZWxzZXtQPShhW2Nbbj4+Ml18MF18MCk9PTQ1fWskKHR8MCwwLDEyKTtrJCh2fDAsMCwxMik7ayQo
eHwwLDAsMTIpO2liKGcsUCxvLHAscSxyLHMsdSx3LHkpO0g9enwwO0c9Y1t5Pj4yXXwwO2lmKChM
fDApPihHfDApKXtPPWRbeF18MDtpZigoTyYxfDApPT0wKXtRPU8+Pj4xfWVsc2V7UT1jW3crND4+
Ml18MH1PPWRbdl18MDtpZigoTyYxfDApPT0wKXtSPU8+Pj4xfWVsc2V7Uj1jW3UrND4+Ml18MH1T
PShMLUc8PDF8MSkrUStSfDB9ZWxzZXtPPWRbeF18MDtpZigoTyYxfDApPT0wKXtUPU8+Pj4xfWVs
c2V7VD1jW3crND4+Ml18MH1PPWRbdl18MDtpZigoTyYxfDApPT0wKXtVPU8+Pj4xfWVsc2V7VT1j
W3UrND4+Ml18MH1TPVQrMitVfDB9Tz1TK0d8MDtkb3tpZihPPj4+MD4xMDApe0Q9a0ooTzw8Mil8
MDtWPUQ7aWYoKER8MCkhPTApe1c9VjtYPVY7YnJlYWt9a1goKTtXPVY7WD1WfWVsc2V7Vz1IO1g9
MH19d2hpbGUoMCk7aWMoVyxBLEIsY1tqKzQ+PjJdfDAsSyxLKyhMPDwyKXwwLEosUCxwLGNbcT4+
Ml18MCxjW3I+PjJdfDAscyx1LHcsRyk7Y1tDPj4yXT1jW2Y+PjJdO2dxKGIsQyxXLGNbQT4+Ml18
MCxjW0I+PjJdfDAsaixrKTtpZigoWHwwKSE9MCl7a0soWCl9ZWUodyk7ZWUodSk7ZFAocyk7SD1j
W0Y+PjJdfDA7ZHooSCl8MDtpZigoTnwwKSE9MCl7a0soTil9aWYoKE18MCk9PTApe2k9ZTtyZXR1
cm59a0soTSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2JsKGV8MCw4MTc2
LDEzNCl9ZnVuY3Rpb24gaWIoYixkLGUsZixnLGgsaixrLGwsbSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxU
PTAsVT0wO249aTtpPWkrNDB8MDtvPW58MDtwPW4rMTZ8MDtxPW4rMzJ8MDtyPXE7cz1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO3Q9czt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO3g9dzt5PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7ej15O0E9aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8MztCPUE7RD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RT1EO0Y9aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8MztHPUY7SD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ST1IO0o9aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8MztLPUo7TD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO009TDtOPWk7aT1p
KzEyfDA7aT1pKzc+PjM8PDM7Tz1OO1A9Y1tlPj4yXXwwO2lmKGIpe2lmKChjWzQwNDBdfDApIT0t
MSl7Y1twPj4yXT0xNjE2MDtjW3ArND4+Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTYxNjAscCw5Nil9
cD0oY1s0MDQxXXwwKS0xfDA7Yj1jW1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1iPj4yPj4+
MDw9cD4+PjApe1E9Yk8oNCl8MDtSPVE7a3EoUik7YmwoUXwwLDgxNzYsMTM0KX1lPWNbYisocDw8
Mik+PjJdfDA7aWYoKGV8MCk9PTApe1E9Yk8oNCl8MDtSPVE7a3EoUik7YmwoUXwwLDgxNzYsMTM0
KX1RPWU7Uj1jW2U+PjJdfDA7aWYoZCl7YlpbY1tSKzQ0Pj4yXSYxMjddKHIsUSk7cj1mO0M9Y1tx
Pj4yXXwwO2Fbcl09QyYyNTU7Qz1DPj44O2FbcisxfDBdPUMmMjU1O0M9Qz4+ODthW3IrMnwwXT1D
JjI1NTtDPUM+Pjg7YVtyKzN8MF09QyYyNTU7YlpbY1soY1tlPj4yXXwwKSszMj4+Ml0mMTI3XShz
LFEpO3I9bDtpZigoYVtyXSYxKT09MCl7Y1tsKzQ+PjJdPTA7YVtyXT0wfWVsc2V7Y1tjW2wrOD4+
Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW3I+PjJdPWNbdD4+Ml07Y1tyKzQ+PjJdPWNb
dCs0Pj4yXTtjW3IrOD4+Ml09Y1t0Kzg+PjJdO2skKHR8MCwwLDEyKTtlZShzKX1lbHNle2JaW2Nb
Uis0MD4+Ml0mMTI3XSh2LFEpO3Y9ZjtDPWNbdT4+Ml18MDthW3ZdPUMmMjU1O0M9Qz4+ODthW3Yr
MXwwXT1DJjI1NTtDPUM+Pjg7YVt2KzJ8MF09QyYyNTU7Qz1DPj44O2FbdiszfDBdPUMmMjU1O2Ja
W2NbKGNbZT4+Ml18MCkrMjg+PjJdJjEyN10odyxRKTt2PWw7aWYoKGFbdl0mMSk9PTApe2NbbCs0
Pj4yXT0wO2Fbdl09MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7
Y1t2Pj4yXT1jW3g+PjJdO2Nbdis0Pj4yXT1jW3grND4+Ml07Y1t2Kzg+PjJdPWNbeCs4Pj4yXTtr
JCh4fDAsMCwxMik7ZWUodyl9dz1lO2NbZz4+Ml09YjBbY1soY1t3Pj4yXXwwKSsxMj4+Ml0mMTI3
XShRKXwwO2NbaD4+Ml09YjBbY1soY1t3Pj4yXXwwKSsxNj4+Ml0mMTI3XShRKXwwO2JaW2NbKGNb
ZT4+Ml18MCkrMjA+PjJdJjEyN10oeSxRKTt4PWo7aWYoKGFbeF0mMSk9PTApe2FbaisxfDBdPTA7
YVt4XT0wfWVsc2V7YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbeD4+Ml09
Y1t6Pj4yXTtjW3grND4+Ml09Y1t6KzQ+PjJdO2NbeCs4Pj4yXT1jW3orOD4+Ml07ayQoenwwLDAs
MTIpO2RQKHkpO2JaW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oQSxRKTtlPWs7aWYoKGFbZV0m
MSk9PTApe2Nbays0Pj4yXT0wO2FbZV09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4y
XT0wfWV6KGssMCk7Y1tlPj4yXT1jW0I+PjJdO2NbZSs0Pj4yXT1jW0IrND4+Ml07Y1tlKzg+PjJd
PWNbQis4Pj4yXTtrJChCfDAsMCwxMik7ZWUoQSk7Uz1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYx
MjddKFEpfDA7Y1ttPj4yXT1TO2k9bjtyZXR1cm59ZWxzZXtpZigoY1s0MDQyXXwwKSE9LTEpe2Nb
bz4+Ml09MTYxNjg7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE2MTY4LG8sOTYpfW89KGNb
NDA0M118MCktMXwwO1E9Y1tQKzg+PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktUT4+Mj4+PjA8PW8+
Pj4wKXtUPWJPKDQpfDA7VT1UO2txKFUpO2JsKFR8MCw4MTc2LDEzNCl9UD1jW1ErKG88PDIpPj4y
XXwwO2lmKChQfDApPT0wKXtUPWJPKDQpfDA7VT1UO2txKFUpO2JsKFR8MCw4MTc2LDEzNCl9VD1Q
O1U9Y1tQPj4yXXwwO2lmKGQpe2JaW2NbVSs0ND4+Ml0mMTI3XShFLFQpO0U9ZjtDPWNbRD4+Ml18
MDthW0VdPUMmMjU1O0M9Qz4+ODthW0UrMXwwXT1DJjI1NTtDPUM+Pjg7YVtFKzJ8MF09QyYyNTU7
Qz1DPj44O2FbRSszfDBdPUMmMjU1O2JaW2NbKGNbUD4+Ml18MCkrMzI+PjJdJjEyN10oRixUKTtF
PWw7aWYoKGFbRV0mMSk9PTApe2NbbCs0Pj4yXT0wO2FbRV09MH1lbHNle2NbY1tsKzg+PjJdPj4y
XT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1tFPj4yXT1jW0c+PjJdO2NbRSs0Pj4yXT1jW0crND4+
Ml07Y1tFKzg+PjJdPWNbRys4Pj4yXTtrJChHfDAsMCwxMik7ZWUoRil9ZWxzZXtiWltjW1UrNDA+
PjJdJjEyN10oSSxUKTtJPWY7Qz1jW0g+PjJdfDA7YVtJXT1DJjI1NTtDPUM+Pjg7YVtJKzF8MF09
QyYyNTU7Qz1DPj44O2FbSSsyfDBdPUMmMjU1O0M9Qz4+ODthW0krM3wwXT1DJjI1NTtiWltjWyhj
W1A+PjJdfDApKzI4Pj4yXSYxMjddKEosVCk7ST1sO2lmKChhW0ldJjEpPT0wKXtjW2wrND4+Ml09
MDthW0ldPTB9ZWxzZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2NbST4+
Ml09Y1tLPj4yXTtjW0krND4+Ml09Y1tLKzQ+PjJdO2NbSSs4Pj4yXT1jW0srOD4+Ml07ayQoS3ww
LDAsMTIpO2VlKEopfUo9UDtjW2c+PjJdPWIwW2NbKGNbSj4+Ml18MCkrMTI+PjJdJjEyN10oVCl8
MDtjW2g+PjJdPWIwW2NbKGNbSj4+Ml18MCkrMTY+PjJdJjEyN10oVCl8MDtiWltjWyhjW1A+PjJd
fDApKzIwPj4yXSYxMjddKEwsVCk7aD1qO2lmKChhW2hdJjEpPT0wKXthW2orMXwwXT0wO2FbaF09
MH1lbHNle2FbY1tqKzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW2g+PjJdPWNbTT4+
Ml07Y1toKzQ+PjJdPWNbTSs0Pj4yXTtjW2grOD4+Ml09Y1tNKzg+PjJdO2skKE18MCwwLDEyKTtk
UChMKTtiWltjWyhjW1A+PjJdfDApKzI0Pj4yXSYxMjddKE4sVCk7UD1rO2lmKChhW1BdJjEpPT0w
KXtjW2srND4+Ml09MDthW1BdPTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2srND4+Ml09MH1l
eihrLDApO2NbUD4+Ml09Y1tPPj4yXTtjW1ArND4+Ml09Y1tPKzQ+PjJdO2NbUCs4Pj4yXT1jW08r
OD4+Ml07ayQoT3wwLDAsMTIpO2VlKE4pO1M9YjBbY1soY1tKPj4yXXwwKSszNj4+Ml0mMTI3XShU
KXwwO2NbbT4+Ml09UztpPW47cmV0dXJufX1mdW5jdGlvbiBpYyhiLGQsZSxmLGcsaCxpLGosayxs
LG0sbixvLHAscSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1q
fDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1vfDA7cD1wfDA7cT1xfDA7dmFyIHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxh
Zz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9
MCxhcz0wLGF0PTAsYXU9MCxhdj0wLGF3PTA7Y1tlPj4yXT1iO3I9aTtzPXA7dD1wKzR8MDt1PXAr
OHwwO3A9bzt2PShmJjUxMnwwKT09MDt3PW8rNHwwO3g9bys4fDA7bz1pO3k9KHF8MCk+MDt6PW47
QT1uKzF8MDtCPW4rOHwwO0M9bis0fDA7bj1nO2c9MDt3aGlsZSgxKXtMMTkwMTpkb3tzd2l0Y2go
YVtrK2d8MF18MCl7Y2FzZSAwOntjW2Q+PjJdPWNbZT4+Ml07RD1uO2JyZWFrfTtjYXNlIDE6e2Nb
ZD4+Ml09Y1tlPj4yXTtFPWJfW2NbKGNbcj4+Ml18MCkrNDQ+PjJdJjMxXShpLDMyKXwwO0Y9Y1tl
Pj4yXXwwO2NbZT4+Ml09Ris0O2NbRj4+Ml09RTtEPW47YnJlYWt9O2Nhc2UgMzp7RT1hW3NdfDA7
Rj1FJjI1NTtpZigoRiYxfDApPT0wKXtHPUY+Pj4xfWVsc2V7Rz1jW3Q+PjJdfDB9aWYoKEd8MCk9
PTApe0Q9bjticmVhayBMMTkwMX1pZigoRSYxKT09MCl7SD10fWVsc2V7SD1jW3U+PjJdfDB9RT1j
W0g+PjJdfDA7Rj1jW2U+PjJdfDA7Y1tlPj4yXT1GKzQ7Y1tGPj4yXT1FO0Q9bjticmVha307Y2Fz
ZSAyOntFPWFbcF18MDtGPUUmMjU1O0k9KEYmMXwwKT09MDtpZihJKXtKPUY+Pj4xfWVsc2V7Sj1j
W3c+PjJdfDB9aWYoKEp8MCk9PTB8dil7RD1uO2JyZWFrIEwxOTAxfWlmKChFJjEpPT0wKXtLPXc7
TD13O009d31lbHNle0U9Y1t4Pj4yXXwwO0s9RTtMPUU7TT1FfWlmKEkpe049Rj4+PjF9ZWxzZXtO
PWNbdz4+Ml18MH1GPUsrKE48PDIpfDA7ST1jW2U+PjJdfDA7aWYoKEx8MCk9PShGfDApKXtPPUl9
ZWxzZXtFPShLKyhOLTE8PDIpKygtTXwwKXwwKT4+PjI7UD1MO1E9STt3aGlsZSgxKXtjW1E+PjJd
PWNbUD4+Ml07Uj1QKzR8MDtpZigoUnwwKT09KEZ8MCkpe2JyZWFrfVA9UjtRPVErNHwwfU89SSso
RSsxPDwyKXwwfWNbZT4+Ml09TztEPW47YnJlYWt9O2Nhc2UgNDp7UT1jW2U+PjJdfDA7UD1qP24r
NHwwOm47Rj1QO3doaWxlKDEpe2lmKEY+Pj4wPj1oPj4+MCl7YnJlYWt9aWYoYjFbY1soY1tvPj4y
XXwwKSsxMj4+Ml0mNjNdKGksMjA0OCxjW0Y+PjJdfDApfDApe0Y9Ris0fDB9ZWxzZXticmVha319
aWYoeSl7aWYoRj4+PjA+UD4+PjApe0U9RjtJPXE7ZG97RT1FLTR8MDtSPWNbRT4+Ml18MDtTPWNb
ZT4+Ml18MDtjW2U+PjJdPVMrNDtjW1M+PjJdPVI7ST1JLTF8MDtUPShJfDApPjA7fXdoaWxlKEU+
Pj4wPlA+Pj4wJlQpO2lmKFQpe1U9STtWPUU7Vz0xNjMwfWVsc2V7WD0wO1k9STtaPUV9fWVsc2V7
VT1xO1Y9RjtXPTE2MzB9aWYoKFd8MCk9PTE2MzApe1c9MDtYPWJfW2NbKGNbcj4+Ml18MCkrNDQ+
PjJdJjMxXShpLDQ4KXwwO1k9VTtaPVZ9Uj1jW2U+PjJdfDA7Y1tlPj4yXT1SKzQ7aWYoKFl8MCk+
MCl7Uz1ZO189Ujt3aGlsZSgxKXtjW18+PjJdPVg7JD1TLTF8MDthYT1jW2U+PjJdfDA7Y1tlPj4y
XT1hYSs0O2lmKCgkfDApPjApe1M9JDtfPWFhfWVsc2V7YWI9YWE7YnJlYWt9fX1lbHNle2FiPVJ9
Y1thYj4+Ml09bDthYz1afWVsc2V7YWM9Rn1pZigoYWN8MCk9PShQfDApKXtfPWJfW2NbKGNbcj4+
Ml18MCkrNDQ+PjJdJjMxXShpLDQ4KXwwO1M9Y1tlPj4yXXwwO2NbZT4+Ml09Uys0O2NbUz4+Ml09
X31lbHNle189YVt6XXwwO1M9XyYyNTU7aWYoKFMmMXwwKT09MCl7YWQ9Uz4+PjF9ZWxzZXthZD1j
W0M+PjJdfDB9aWYoKGFkfDApPT0wKXthZT1hYzthZj0wO2FnPTA7YWg9LTF9ZWxzZXtpZigoXyYx
KT09MCl7YWk9QX1lbHNle2FpPWNbQj4+Ml18MH1hZT1hYzthZj0wO2FnPTA7YWg9YVthaV18MH13
aGlsZSgxKXtkb3tpZigoYWZ8MCk9PShhaHwwKSl7Xz1jW2U+PjJdfDA7Y1tlPj4yXT1fKzQ7Y1tf
Pj4yXT1tO189YWcrMXwwO1M9YVt6XXwwO0U9UyYyNTU7aWYoKEUmMXwwKT09MCl7YWo9RT4+PjF9
ZWxzZXthaj1jW0M+PjJdfDB9aWYoXz4+PjA+PWFqPj4+MCl7YWs9YWg7YWw9XzthbT0wO2JyZWFr
fUU9KFMmMSk9PTA7aWYoRSl7YW49QX1lbHNle2FuPWNbQj4+Ml18MH1pZigoYVthbitffDBdfDAp
PT0xMjcpe2FrPS0xO2FsPV87YW09MDticmVha31pZihFKXthbz1BfWVsc2V7YW89Y1tCPj4yXXww
fWFrPWFbYW8rX3wwXXwwO2FsPV87YW09MH1lbHNle2FrPWFoO2FsPWFnO2FtPWFmfX13aGlsZSgw
KTtfPWFlLTR8MDtFPWNbXz4+Ml18MDtTPWNbZT4+Ml18MDtjW2U+PjJdPVMrNDtjW1M+PjJdPUU7
aWYoKF98MCk9PShQfDApKXticmVha31lbHNle2FlPV87YWY9YW0rMXwwO2FnPWFsO2FoPWFrfX19
Rj1jW2U+PjJdfDA7aWYoKFF8MCk9PShGfDApKXtEPVA7YnJlYWsgTDE5MDF9Uj1GLTR8MDtpZihR
Pj4+MDxSPj4+MCl7YXA9UTthcT1SfWVsc2V7RD1QO2JyZWFrIEwxOTAxfXdoaWxlKDEpe1I9Y1th
cD4+Ml18MDtjW2FwPj4yXT1jW2FxPj4yXTtjW2FxPj4yXT1SO1I9YXArNHwwO0Y9YXEtNHwwO2lm
KFI+Pj4wPEY+Pj4wKXthcD1SO2FxPUZ9ZWxzZXtEPVA7YnJlYWt9fWJyZWFrfTtkZWZhdWx0OntE
PW59fX13aGlsZSgwKTtQPWcrMXwwO2lmKFA+Pj4wPDQpe249RDtnPVB9ZWxzZXticmVha319Zz1h
W3NdfDA7cz1nJjI1NTtEPShzJjF8MCk9PTA7aWYoRCl7YXI9cz4+PjF9ZWxzZXthcj1jW3Q+PjJd
fDB9aWYoYXI+Pj4wPjEpe2lmKChnJjEpPT0wKXthcz10O2F0PXQ7YXU9dH1lbHNle2c9Y1t1Pj4y
XXwwO2FzPWc7YXQ9ZzthdT1nfWlmKEQpe2F2PXM+Pj4xfWVsc2V7YXY9Y1t0Pj4yXXwwfXQ9YXMr
KGF2PDwyKXwwO3M9Y1tlPj4yXXwwO0Q9YXQrNHwwO2lmKChEfDApPT0odHwwKSl7YXc9c31lbHNl
e2F0PSgoYXMrKGF2LTI8PDIpKygtYXV8MCl8MCk+Pj4yKSsxfDA7YXU9czthdj1EO3doaWxlKDEp
e2NbYXU+PjJdPWNbYXY+PjJdO0Q9YXYrNHwwO2lmKChEfDApPT0odHwwKSl7YnJlYWt9ZWxzZXth
dT1hdSs0fDA7YXY9RH19YXc9cysoYXQ8PDIpfDB9Y1tlPj4yXT1hd31zd2l0Y2goZiYxNzZ8MCl7
Y2FzZSAzMjp7Y1tkPj4yXT1jW2U+PjJdO3JldHVybn07Y2FzZSAxNjp7cmV0dXJufTtkZWZhdWx0
OntjW2Q+PjJdPWI7cmV0dXJufX19ZnVuY3Rpb24gaWQoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24gaWUoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaWcoYixk
LGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYoKGFbZF0mMSk9PTApe2Y9ZCsxfDB9ZWxz
ZXtmPWNbZCs4Pj4yXXwwfWQ9YTgoZnwwLDIwMCl8MDtyZXR1cm4gZD4+PigoKGR8MCkhPS0xfDAp
Pj4+MCl8MH1mdW5jdGlvbiBpaChiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0w
LFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wO2U9aTtpPWkrNjR8MDtsPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZXwwO209ZSsxNnwwO249
ZSsyNHwwO289ZSszMnwwO3A9ZSs0MHwwO3E9ZSs0OHwwO3I9cTtzPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7dD1zO3U9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7eD1pO2k9aSs0MDB8MDt5PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztBPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztlaihtLGgpO0I9bXwwO0M9Y1tCPj4y
XXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+
PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7RD1jW0MrOD4+Ml18MDtkb3tp
ZigoY1tDKzEyPj4yXXwwKS1EPj4yPj4+MD5sPj4+MCl7RT1jW0QrKGw8PDIpPj4yXXwwO2lmKChF
fDApPT0wKXticmVha31GPUU7Rz1rO0g9YVtHXXwwO0k9SCYyNTU7aWYoKEkmMXwwKT09MCl7Sj1J
Pj4+MX1lbHNle0o9Y1trKzQ+PjJdfDB9aWYoKEp8MCk9PTApe0s9MH1lbHNle2lmKChIJjEpPT0w
KXtMPWsrNHwwfWVsc2V7TD1jW2srOD4+Ml18MH1IPWNbTD4+Ml18MDtLPShIfDApPT0oYl9bY1so
Y1tFPj4yXXwwKSs0ND4+Ml0mMzFdKEYsNDUpfDApfWskKHJ8MCwwLDEyKTtrJCh0fDAsMCwxMik7
ayQodnwwLDAsMTIpO2liKGcsSyxtLG4sbyxwLHEscyx1LHcpO0U9eHwwO0g9YVtHXXwwO0k9SCYy
NTU7TT0oSSYxfDApPT0wO2lmKE0pe049ST4+PjF9ZWxzZXtOPWNbays0Pj4yXXwwfU89Y1t3Pj4y
XXwwO2lmKChOfDApPihPfDApKXtpZihNKXtQPUk+Pj4xfWVsc2V7UD1jW2srND4+Ml18MH1JPWRb
dl18MDtpZigoSSYxfDApPT0wKXtRPUk+Pj4xfWVsc2V7UT1jW3UrND4+Ml18MH1JPWRbdF18MDtp
ZigoSSYxfDApPT0wKXtSPUk+Pj4xfWVsc2V7Uj1jW3MrND4+Ml18MH1TPShQLU88PDF8MSkrUStS
fDB9ZWxzZXtJPWRbdl18MDtpZigoSSYxfDApPT0wKXtUPUk+Pj4xfWVsc2V7VD1jW3UrND4+Ml18
MH1JPWRbdF18MDtpZigoSSYxfDApPT0wKXtVPUk+Pj4xfWVsc2V7VT1jW3MrND4+Ml18MH1TPVQr
MitVfDB9ST1TK098MDtkb3tpZihJPj4+MD4xMDApe009a0ooSTw8Mil8MDtWPU07aWYoKE18MCkh
PTApe1c9VjtYPVY7WT1IO2JyZWFrfWtYKCk7Vz1WO1g9VjtZPWFbR118MH1lbHNle1c9RTtYPTA7
WT1IfX13aGlsZSgwKTtpZigoWSYxKT09MCl7Wj1rKzR8MDtfPWsrNHwwfWVsc2V7SD1jW2srOD4+
Ml18MDtaPUg7Xz1IfUg9WSYyNTU7aWYoKEgmMXwwKT09MCl7JD1IPj4+MX1lbHNleyQ9Y1trKzQ+
PjJdfDB9aWMoVyx5LHosY1toKzQ+PjJdfDAsXyxaKygkPDwyKXwwLEYsSyxuLGNbbz4+Ml18MCxj
W3A+PjJdfDAscSxzLHUsTyk7Y1tBPj4yXT1jW2Y+PjJdO2dxKGIsQSxXLGNbeT4+Ml18MCxjW3o+
PjJdfDAsaCxqKTtpZigoWHwwKT09MCl7ZWUodSk7ZWUocyk7ZFAocSk7YWE9Y1tCPj4yXXwwO2Fi
PWFhfDA7YWM9ZHooYWIpfDA7aT1lO3JldHVybn1rSyhYKTtlZSh1KTtlZShzKTtkUChxKTthYT1j
W0I+PjJdfDA7YWI9YWF8MDthYz1keihhYil8MDtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQp
fDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBpaShiLGQsZSxmLGcsaCl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MDtkPWk7aT1pKzE2fDA7aj1kfDA7az1qO2skKGt8
MCwwLDEyKTtsPWI7bT1oO249YVtoXXwwO2lmKChuJjEpPT0wKXtvPW0rMXwwO3A9bSsxfDB9ZWxz
ZXttPWNbaCs4Pj4yXXwwO289bTtwPW19bT1uJjI1NTtpZigobSYxfDApPT0wKXtxPW0+Pj4xfWVs
c2V7cT1jW2grND4+Ml18MH1oPW8rcXwwO2Rve2lmKHA+Pj4wPGg+Pj4wKXtxPXA7ZG97ZFUoaixh
W3FdfDApO3E9cSsxfDA7fXdoaWxlKHE+Pj4wPGg+Pj4wKTtxPShlfDApPT0tMT8tMTplPDwxO2lm
KChhW2tdJjEpPT0wKXtyPXE7cz0xNzYyO2JyZWFrfXQ9Y1tqKzg+PjJdfDA7dT1xfWVsc2V7cj0o
ZXwwKT09LTE/LTE6ZTw8MTtzPTE3NjJ9fXdoaWxlKDApO2lmKChzfDApPT0xNzYyKXt0PWorMXww
O3U9cn1yPWJNKHV8MCxmfDAsZ3wwLHR8MCl8MDtrJChsfDAsMCwxMik7bD1rMChyfDApfDA7dD1y
K2x8MDtpZigobHwwKT4wKXt2PXJ9ZWxzZXtkUChqKTtpPWQ7cmV0dXJufWRve2RVKGIsYVt2XXww
KTt2PXYrMXwwO313aGlsZSh2Pj4+MDx0Pj4+MCk7ZFAoaik7aT1kO3JldHVybn1mdW5jdGlvbiBp
aihhLGIpe2E9YXwwO2I9YnwwO2ExKCgoYnwwKT09LTE/LTE6Yjw8MSl8MCl8MDtyZXR1cm59ZnVu
Y3Rpb24gaWsoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaWwoYSl7YT1h
fDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaW0oYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3Zh
ciBmPTA7aWYoKGFbZF0mMSk9PTApe2Y9ZCsxfDB9ZWxzZXtmPWNbZCs4Pj4yXXwwfWQ9YTgoZnww
LDIwMCl8MDtyZXR1cm4gZD4+PigoKGR8MCkhPS0xfDApPj4+MCl8MH1mdW5jdGlvbiBpbyhhLGIp
e2E9YXwwO2I9YnwwO2ExKCgoYnwwKT09LTE/LTE6Yjw8MSl8MCl8MDtyZXR1cm59ZnVuY3Rpb24g
aXAoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtkPWk7aT1p
KzIyNHwwO2o9ZHwwO2s9ZCs4fDA7bD1kKzQwfDA7bT1kKzQ4fDA7bj1kKzU2fDA7bz1kKzY0fDA7
cD1kKzE5MnwwO3E9ZCsyMDB8MDtyPWQrMjA4fDA7cz1yO3Q9aTtpPWkrOHwwO3U9aTtpPWkrOHww
O2skKHN8MCwwLDEyKTt2PWI7dz10fDA7Y1t0KzQ+PjJdPTA7Y1t0Pj4yXT00MTA0O3g9YVtoXXww
O2lmKCh4JjEpPT0wKXt5PWgrNHwwO3o9aCs0fDB9ZWxzZXtBPWNbaCs4Pj4yXXwwO3k9QTt6PUF9
QT14JjI1NTtpZigoQSYxfDApPT0wKXtCPUE+Pj4xfWVsc2V7Qj1jW2grND4+Ml18MH1oPXkrKEI8
PDIpfDA7TDIxMzU6ZG97aWYoej4+PjA8aD4+PjApe0I9dDt5PWt8MDtBPWsrMzJ8MDt4PXo7Qz00
MTA0O3doaWxlKDEpe2NbbT4+Ml09eDtEPShiNltjW0MrMTI+PjJdJjMxXSh3LGoseCxoLG0seSxB
LGwpfDApPT0yO0U9Y1ttPj4yXXwwO2lmKER8KEV8MCk9PSh4fDApKXticmVha31pZih5Pj4+MDwo
Y1tsPj4yXXwwKT4+PjApe0Q9eTtkb3tkVShyLGFbRF18MCk7RD1EKzF8MDt9d2hpbGUoRD4+PjA8
KGNbbD4+Ml18MCk+Pj4wKTtGPWNbbT4+Ml18MH1lbHNle0Y9RX1pZihGPj4+MD49aD4+PjApe2Jy
ZWFrIEwyMTM1fXg9RjtDPWNbQj4+Ml18MH1CPWJPKDgpfDA7ZEUoQiw5MDQpO2JsKEJ8MCw4MTky
LDIyKX19d2hpbGUoMCk7ZGUodHwwKTtpZigoYVtzXSYxKT09MCl7Rz1yKzF8MH1lbHNle0c9Y1ty
Kzg+PjJdfDB9cz1iTSgoKGV8MCk9PS0xPy0xOmU8PDEpfDAsZnwwLGd8MCxHfDApfDA7ayQodnww
LDAsMTIpO3Y9dXwwO2NbdSs0Pj4yXT0wO2NbdT4+Ml09NDA0ODtHPWswKHN8MCl8MDtnPXMrR3ww
O2lmKChHfDApPDEpe0g9dXwwO2RlKEgpO2RQKHIpO2k9ZDtyZXR1cm59Rz11O2Y9ZztlPW98MDt0
PW8rMTI4fDA7bz1zO3M9NDA0ODt3aGlsZSgxKXtjW3E+PjJdPW87Rj0oYjZbY1tzKzE2Pj4yXSYz
MV0odixuLG8sKGYtb3wwKT4zMj9vKzMyfDA6ZyxxLGUsdCxwKXwwKT09MjtoPWNbcT4+Ml18MDtp
ZihGfChofDApPT0ob3wwKSl7YnJlYWt9aWYoZT4+PjA8KGNbcD4+Ml18MCk+Pj4wKXtGPWU7ZG97
ZWgoYixjW0Y+PjJdfDApO0Y9Ris0fDA7fXdoaWxlKEY+Pj4wPChjW3A+PjJdfDApPj4+MCk7ST1j
W3E+PjJdfDB9ZWxzZXtJPWh9aWYoST4+PjA+PWc+Pj4wKXtKPTE4Mjk7YnJlYWt9bz1JO3M9Y1tH
Pj4yXXwwfWlmKChKfDApPT0xODI5KXtIPXV8MDtkZShIKTtkUChyKTtpPWQ7cmV0dXJufWQ9Yk8o
OCl8MDtkRShkLDkwNCk7YmwoZHwwLDgxOTIsMjIpfWZ1bmN0aW9uIGlxKGIpe2I9YnwwO3ZhciBk
PTAsZT0wLGY9MDtjW2I+PjJdPTM1Njg7ZD1iKzh8MDtlPWNbZD4+Ml18MDtkb3tpZigoYVsxNjI2
NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDAp
fDB9fXdoaWxlKDApO2lmKChlfDApPT0oY1syOTU4XXwwKSl7Zj1ifDA7ZGUoZik7cmV0dXJufWE3
KGNbZD4+Ml18MCk7Zj1ifDA7ZGUoZik7cmV0dXJufWZ1bmN0aW9uIGlyKGEpe2E9YXwwO2E9Yk8o
OCl8MDtkQShhLDEzNTIpO2NbYT4+Ml09MjUwNDtibChhfDAsODIwOCwzMil9ZnVuY3Rpb24gaXMo
YixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wO2U9aTtpPWkrNDQ4fDA7
Zj1lfDA7Zz1lKzE2fDA7aD1lKzMyfDA7aj1lKzQ4fDA7az1lKzY0fDA7bD1lKzgwfDA7bT1lKzk2
fDA7bj1lKzExMnwwO289ZSsxMjh8MDtwPWUrMTQ0fDA7cT1lKzE2MHwwO3I9ZSsxNzZ8MDtzPWUr
MTkyfDA7dD1lKzIwOHwwO3U9ZSsyMjR8MDt2PWUrMjQwfDA7dz1lKzI1NnwwO3g9ZSsyNzJ8MDt5
PWUrMjg4fDA7ej1lKzMwNHwwO0E9ZSszMjB8MDtCPWUrMzM2fDA7Qz1lKzM1MnwwO0Q9ZSszNjh8
MDtFPWUrMzg0fDA7Rj1lKzQwMHwwO0c9ZSs0MTZ8MDtIPWUrNDMyfDA7Y1tiKzQ+PjJdPWQtMTtj
W2I+PjJdPTM4MjQ7ZD1iKzh8MDtJPWIrMTJ8MDthW2IrMTM2fDBdPTE7Sj1iKzI0fDA7Sz1KO2Nb
ST4+Ml09SztjW2Q+PjJdPUs7Y1tiKzE2Pj4yXT1KKzExMjtKPTI4O0w9Sztkb3tpZigoTHwwKT09
MCl7TT0wfWVsc2V7Y1tMPj4yXT0wO009Y1tJPj4yXXwwfUw9TSs0fDA7Y1tJPj4yXT1MO0o9Si0x
fDA7fXdoaWxlKChKfDApIT0wKTtkWihiKzE0NHwwLDEzNDQsMSk7Sj1jW2Q+PjJdfDA7ZD1jW0k+
PjJdfDA7aWYoKEp8MCkhPShkfDApKXtjW0k+PjJdPWQrKH4oKGQtNCsoLUp8MCl8MCk+Pj4yKTw8
Mil9Y1szNjE3XT0wO2NbMzYxNl09MzUyODtpZigoY1szODQ0XXwwKSE9LTEpe2NbSD4+Ml09MTUz
NzY7Y1tIKzQ+PjJdPTEyO2NbSCs4Pj4yXT0wO2RXKDE1Mzc2LEgsOTYpfWlKKGIsMTQ0NjQsKGNb
Mzg0NV18MCktMXwwKTtjWzM2MTVdPTA7Y1szNjE0XT0zNDg4O2lmKChjWzM4NDJdfDApIT0tMSl7
Y1tHPj4yXT0xNTM2ODtjW0crND4+Ml09MTI7Y1tHKzg+PjJdPTA7ZFcoMTUzNjgsRyw5Nil9aUoo
YiwxNDQ1NiwoY1szODQzXXwwKS0xfDApO2NbMzY2N109MDtjWzM2NjZdPTM5MzY7Y1szNjY4XT0w
O2FbMTQ2NzZdPTA7Y1szNjY4XT1jWyhhNigpfDApPj4yXTtpZigoY1szOTI0XXwwKSE9LTEpe2Nb
Rj4+Ml09MTU2OTY7Y1tGKzQ+PjJdPTEyO2NbRis4Pj4yXT0wO2RXKDE1Njk2LEYsOTYpfWlKKGIs
MTQ2NjQsKGNbMzkyNV18MCktMXwwKTtjWzM2NjVdPTA7Y1szNjY0XT0zODU2O2lmKChjWzM5MjJd
fDApIT0tMSl7Y1tFPj4yXT0xNTY4ODtjW0UrND4+Ml09MTI7Y1tFKzg+PjJdPTA7ZFcoMTU2ODgs
RSw5Nil9aUooYiwxNDY1NiwoY1szOTIzXXwwKS0xfDApO2NbMzYxOV09MDtjWzM2MThdPTM2MjQ7
aWYoKGNbMzg0OF18MCkhPS0xKXtjW0Q+PjJdPTE1MzkyO2NbRCs0Pj4yXT0xMjtjW0QrOD4+Ml09
MDtkVygxNTM5MixELDk2KX1pSihiLDE0NDcyLChjWzM4NDldfDApLTF8MCk7Y1s1MjFdPTA7Y1s1
MjBdPTM1Njg7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVh
a31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtjWzUyMl09Y1syOTU4XTtpZigoY1sz
ODQ2XXwwKSE9LTEpe2NbQz4+Ml09MTUzODQ7Y1tDKzQ+PjJdPTEyO2NbQys4Pj4yXT0wO2RXKDE1
Mzg0LEMsOTYpfWlKKGIsMjA4MCwoY1szODQ3XXwwKS0xfDApO2NbMzYyMV09MDtjWzM2MjBdPTM2
ODA7aWYoKGNbMzg1MF18MCkhPS0xKXtjW0I+PjJdPTE1NDAwO2NbQis0Pj4yXT0xMjtjW0IrOD4+
Ml09MDtkVygxNTQwMCxCLDk2KX1pSihiLDE0NDgwLChjWzM4NTFdfDApLTF8MCk7Y1szNjIzXT0w
O2NbMzYyMl09MzczNjtpZigoY1szODUyXXwwKSE9LTEpe2NbQT4+Ml09MTU0MDg7Y1tBKzQ+PjJd
PTEyO2NbQSs4Pj4yXT0wO2RXKDE1NDA4LEEsOTYpfWlKKGIsMTQ0ODgsKGNbMzg1M118MCktMXww
KTtjWzM1OTddPTA7Y1szNTk2XT0zMDMyO2FbMTQzOTJdPTQ2O2FbMTQzOTNdPTQ0O2skKDE0Mzk2
LDAsMTIpO2lmKChjWzM4MjhdfDApIT0tMSl7Y1t6Pj4yXT0xNTMxMjtjW3orND4+Ml09MTI7Y1t6
Kzg+PjJdPTA7ZFcoMTUzMTIseiw5Nil9aUooYiwxNDM4NCwoY1szODI5XXwwKS0xfDApO2NbNTEz
XT0wO2NbNTEyXT0yOTg0O2NbNTE0XT00NjtjWzUxNV09NDQ7ayQoMjA2NCwwLDEyKTtpZigoY1sz
ODI2XXwwKSE9LTEpe2NbeT4+Ml09MTUzMDQ7Y1t5KzQ+PjJdPTEyO2NbeSs4Pj4yXT0wO2RXKDE1
MzA0LHksOTYpfWlKKGIsMjA0OCwoY1szODI3XXwwKS0xfDApO2NbMzYxM109MDtjWzM2MTJdPTM0
MTY7aWYoKGNbMzg0MF18MCkhPS0xKXtjW3g+PjJdPTE1MzYwO2NbeCs0Pj4yXT0xMjtjW3grOD4+
Ml09MDtkVygxNTM2MCx4LDk2KX1pSihiLDE0NDQ4LChjWzM4NDFdfDApLTF8MCk7Y1szNjExXT0w
O2NbMzYxMF09MzM0NDtpZigoY1szODM4XXwwKSE9LTEpe2Nbdz4+Ml09MTUzNTI7Y1t3KzQ+PjJd
PTEyO2Nbdys4Pj4yXT0wO2RXKDE1MzUyLHcsOTYpfWlKKGIsMTQ0NDAsKGNbMzgzOV18MCktMXww
KTtjWzM2MDldPTA7Y1szNjA4XT0zMjgwO2lmKChjWzM4MzZdfDApIT0tMSl7Y1t2Pj4yXT0xNTM0
NDtjW3YrND4+Ml09MTI7Y1t2Kzg+PjJdPTA7ZFcoMTUzNDQsdiw5Nil9aUooYiwxNDQzMiwoY1sz
ODM3XXwwKS0xfDApO2NbMzYwN109MDtjWzM2MDZdPTMyMTY7aWYoKGNbMzgzNF18MCkhPS0xKXtj
W3U+PjJdPTE1MzM2O2NbdSs0Pj4yXT0xMjtjW3UrOD4+Ml09MDtkVygxNTMzNix1LDk2KX1pSihi
LDE0NDI0LChjWzM4MzVdfDApLTF8MCk7Y1szNjc3XT0wO2NbMzY3Nl09NDkxMjtpZigoY1s0MDQ2
XXwwKSE9LTEpe2NbdD4+Ml09MTYxODQ7Y1t0KzQ+PjJdPTEyO2NbdCs4Pj4yXT0wO2RXKDE2MTg0
LHQsOTYpfWlKKGIsMTQ3MDQsKGNbNDA0N118MCktMXwwKTtjWzM2NzVdPTA7Y1szNjc0XT00ODQ4
O2lmKChjWzQwNDRdfDApIT0tMSl7Y1tzPj4yXT0xNjE3NjtjW3MrND4+Ml09MTI7Y1tzKzg+PjJd
PTA7ZFcoMTYxNzYscyw5Nil9aUooYiwxNDY5NiwoY1s0MDQ1XXwwKS0xfDApO2NbMzY3M109MDtj
WzM2NzJdPTQ3ODQ7aWYoKGNbNDA0Ml18MCkhPS0xKXtjW3I+PjJdPTE2MTY4O2Nbcis0Pj4yXT0x
MjtjW3IrOD4+Ml09MDtkVygxNjE2OCxyLDk2KX1pSihiLDE0Njg4LChjWzQwNDNdfDApLTF8MCk7
Y1szNjcxXT0wO2NbMzY3MF09NDcyMDtpZigoY1s0MDQwXXwwKSE9LTEpe2NbcT4+Ml09MTYxNjA7
Y1txKzQ+PjJdPTEyO2NbcSs4Pj4yXT0wO2RXKDE2MTYwLHEsOTYpfWlKKGIsMTQ2ODAsKGNbNDA0
MV18MCktMXwwKTtjWzM1OTVdPTA7Y1szNTk0XT0yNjg4O2lmKChjWzM4MTZdfDApIT0tMSl7Y1tw
Pj4yXT0xNTI2NDtjW3ArND4+Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTUyNjQscCw5Nil9aUooYiwx
NDM3NiwoY1szODE3XXwwKS0xfDApO2NbMzU5M109MDtjWzM1OTJdPTI2NDg7aWYoKGNbMzgxNF18
MCkhPS0xKXtjW28+PjJdPTE1MjU2O2Nbbys0Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNTI1Nixv
LDk2KX1pSihiLDE0MzY4LChjWzM4MTVdfDApLTF8MCk7Y1szNTkxXT0wO2NbMzU5MF09MjYwODtp
ZigoY1szODEyXXwwKSE9LTEpe2Nbbj4+Ml09MTUyNDg7Y1tuKzQ+PjJdPTEyO2Nbbis4Pj4yXT0w
O2RXKDE1MjQ4LG4sOTYpfWlKKGIsMTQzNjAsKGNbMzgxM118MCktMXwwKTtjWzM1ODldPTA7Y1sz
NTg4XT0yNTY4O2lmKChjWzM4MTBdfDApIT0tMSl7Y1ttPj4yXT0xNTI0MDtjW20rND4+Ml09MTI7
Y1ttKzg+PjJdPTA7ZFcoMTUyNDAsbSw5Nil9aUooYiwxNDM1MiwoY1szODExXXwwKS0xfDApO2Nb
NTA5XT0wO2NbNTA4XT0yODg4O2NbNTEwXT0yOTM2O2lmKChjWzM4MjRdfDApIT0tMSl7Y1tsPj4y
XT0xNTI5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTUyOTYsbCw5Nil9aUooYiwyMDMy
LChjWzM4MjVdfDApLTF8MCk7Y1s1MDVdPTA7Y1s1MDRdPTI3OTI7Y1s1MDZdPTI4NDA7aWYoKGNb
MzgyMl18MCkhPS0xKXtjW2s+PjJdPTE1Mjg4O2Nbays0Pj4yXT0xMjtjW2srOD4+Ml09MDtkVygx
NTI4OCxrLDk2KX1pSihiLDIwMTYsKGNbMzgyM118MCktMXwwKTtjWzUwMV09MDtjWzUwMF09Mzc5
Mjtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1
OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2NbNTAyXT1jWzI5NThdO2NbNTAwXT0yNzYwO2lm
KChjWzM4MjBdfDApIT0tMSl7Y1tqPj4yXT0xNTI4MDtjW2orND4+Ml09MTI7Y1tqKzg+PjJdPTA7
ZFcoMTUyODAsaiw5Nil9aUooYiwyZTMsKGNbMzgyMV18MCktMXwwKTtjWzQ5N109MDtjWzQ5Nl09
Mzc5Mjtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNb
Mjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2NbNDk4XT1jWzI5NThdO2NbNDk2XT0yNzI4
O2lmKChjWzM4MThdfDApIT0tMSl7Y1toPj4yXT0xNTI3MjtjW2grND4+Ml09MTI7Y1toKzg+PjJd
PTA7ZFcoMTUyNzIsaCw5Nil9aUooYiwxOTg0LChjWzM4MTldfDApLTF8MCk7Y1szNjA1XT0wO2Nb
MzYwNF09MzEyMDtpZigoY1szODMyXXwwKSE9LTEpe2NbZz4+Ml09MTUzMjg7Y1tnKzQ+PjJdPTEy
O2NbZys4Pj4yXT0wO2RXKDE1MzI4LGcsOTYpfWlKKGIsMTQ0MTYsKGNbMzgzM118MCktMXwwKTtj
WzM2MDNdPTA7Y1szNjAyXT0zMDgwO2lmKChjWzM4MzBdfDApIT0tMSl7Y1tmPj4yXT0xNTMyMDtj
W2YrND4+Ml09MTI7Y1tmKzg+PjJdPTA7ZFcoMTUzMjAsZiw5Nil9aUooYiwxNDQwOCwoY1szODMx
XXwwKS0xfDApO2k9ZTtyZXR1cm59ZnVuY3Rpb24gaXQoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4g
YnwwfWZ1bmN0aW9uIGl1KGEsYixkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7Y1tmPj4yXT1kO2NbaT4+Ml09ZztyZXR1cm4gM31mdW5j
dGlvbiBpdihhLGIsZCxlLGYsZyxoLGkpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2k9aXwwO2NbZj4+Ml09ZDtjW2k+PjJdPWc7cmV0dXJuIDN9ZnVuY3Rpb24gaXco
YSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtjW2Y+PjJdPWQ7cmV0dXJu
IDN9ZnVuY3Rpb24gaXgoYSl7YT1hfDA7cmV0dXJuIDF9ZnVuY3Rpb24gaXkoYSl7YT1hfDA7cmV0
dXJuIDF9ZnVuY3Rpb24gaXooYSl7YT1hfDA7cmV0dXJuIDF9ZnVuY3Rpb24gaUEoYSxiKXthPWF8
MDtiPWJ8MDtyZXR1cm4gYjw8MjQ+PjI0fDB9ZnVuY3Rpb24gaUIoYSxiLGMpe2E9YXwwO2I9Ynww
O2M9Y3wwO3JldHVybihiPj4+MDwxMjg/YiYyNTU6Yyl8MH1mdW5jdGlvbiBpQyhhLGIsYyl7YT1h
fDA7Yj1ifDA7Yz1jfDA7cmV0dXJuKGI8PDI0Pj4yND4tMT9iOmMpfDB9ZnVuY3Rpb24gaUQoYSxi
LGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtiPWQtY3wwO3JldHVybihiPj4+
MDxlPj4+MD9iOmUpfDB9ZnVuY3Rpb24gaUUoYSl7YT1hfDA7Y1thKzQ+PjJdPShJPWNbMzg1NF18
MCxjWzM4NTRdPUkrMSxJKSsxO3JldHVybn1mdW5jdGlvbiBpRihiLGQsZSxmKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTA7aWYoKGR8MCk9PShlfDApKXtnPWQ7cmV0dXJu
IGd8MH1lbHNle2g9ZDtpPWZ9d2hpbGUoMSl7Y1tpPj4yXT1hW2hdfDA7Zj1oKzF8MDtpZigoZnww
KT09KGV8MCkpe2c9ZTticmVha31lbHNle2g9ZjtpPWkrNHwwfX1yZXR1cm4gZ3wwfWZ1bmN0aW9u
IGlHKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxpPTAs
aj0wO2lmKChkfDApPT0oZXwwKSl7aD1kO3JldHVybiBofDB9Yj0oKGUtNCsoLWR8MCl8MCk+Pj4y
KSsxfDA7aT1kO2o9Zzt3aGlsZSgxKXtnPWNbaT4+Ml18MDthW2pdPWc+Pj4wPDEyOD9nJjI1NTpm
O2c9aSs0fDA7aWYoKGd8MCk9PShlfDApKXticmVha31lbHNle2k9ZztqPWorMXwwfX1oPWQrKGI8
PDIpfDA7cmV0dXJuIGh8MH1mdW5jdGlvbiBpSChiLGMsZCxlKXtiPWJ8MDtjPWN8MDtkPWR8MDtl
PWV8MDt2YXIgZj0wLGc9MCxoPTA7aWYoKGN8MCk9PShkfDApKXtmPWM7cmV0dXJuIGZ8MH1lbHNl
e2c9YztoPWV9d2hpbGUoMSl7YVtoXT1hW2ddfDA7ZT1nKzF8MDtpZigoZXwwKT09KGR8MCkpe2Y9
ZDticmVha31lbHNle2c9ZTtoPWgrMXwwfX1yZXR1cm4gZnwwfWZ1bmN0aW9uIGlJKGIsYyxkLGUs
Zil7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wO2lmKChjfDAp
PT0oZHwwKSl7Zz1jO3JldHVybiBnfDB9ZWxzZXtoPWM7aT1mfXdoaWxlKDEpe2Y9YVtoXXwwO2Fb
aV09Zjw8MjQ+PjI0Pi0xP2Y6ZTtmPWgrMXwwO2lmKChmfDApPT0oZHwwKSl7Zz1kO2JyZWFrfWVs
c2V7aD1mO2k9aSsxfDB9fXJldHVybiBnfDB9ZnVuY3Rpb24gaUooYSxiLGQpe2E9YXwwO2I9Ynww
O2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTA7ZGcoYnww
KTtlPWErOHwwO2Y9YSsxMnwwO2E9Y1tmPj4yXXwwO2c9ZXwwO2g9Y1tnPj4yXXwwO2k9YS1oPj4y
O2Rve2lmKGk+Pj4wPmQ+Pj4wKXtqPWh9ZWxzZXtrPWQrMXwwO2lmKGk+Pj4wPGs+Pj4wKXtqNShl
LGstaXwwKTtqPWNbZz4+Ml18MDticmVha31pZihpPj4+MDw9az4+PjApe2o9aDticmVha31sPWgr
KGs8PDIpfDA7aWYoKGx8MCk9PShhfDApKXtqPWg7YnJlYWt9Y1tmPj4yXT1hKyh+KChhLTQrKC1s
fDApfDApPj4+Mik8PDIpO2o9aH19d2hpbGUoMCk7aD1jW2orKGQ8PDIpPj4yXXwwO2lmKChofDAp
PT0wKXttPWo7bj1tKyhkPDwyKXwwO2Nbbj4+Ml09YjtyZXR1cm59ZHooaHwwKXwwO209Y1tnPj4y
XXwwO249bSsoZDw8Mil8MDtjW24+PjJdPWI7cmV0dXJufWZ1bmN0aW9uIGlLKGEpe2E9YXwwO2lM
KGEpO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpTChiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0w
LGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wO2NbYj4+Ml09MzgyNDtkPWIrMTJ8MDtlPWNbZD4+Ml18
MDtmPWIrOHwwO2c9Y1tmPj4yXXwwO2lmKChlfDApIT0oZ3wwKSl7aD0wO2k9ZztnPWU7d2hpbGUo
MSl7ZT1jW2krKGg8PDIpPj4yXXwwO2lmKChlfDApPT0wKXtqPWc7az1pfWVsc2V7bD1lfDA7ZHoo
bCl8MDtqPWNbZD4+Ml18MDtrPWNbZj4+Ml18MH1sPWgrMXwwO2lmKGw+Pj4wPGotaz4+Mj4+PjAp
e2g9bDtpPWs7Zz1qfWVsc2V7YnJlYWt9fX1kUChiKzE0NHwwKTtqPWNbZj4+Ml18MDtpZigoanww
KT09MCl7bT1ifDA7ZGUobSk7cmV0dXJufWY9Y1tkPj4yXXwwO2lmKChqfDApIT0oZnwwKSl7Y1tk
Pj4yXT1mKyh+KChmLTQrKC1qfDApfDApPj4+Mik8PDIpfWlmKChqfDApPT0oYisyNHwwKSl7YVti
KzEzNnwwXT0wO209YnwwO2RlKG0pO3JldHVybn1lbHNle2tTKGopO209YnwwO2RlKG0pO3JldHVy
bn19ZnVuY3Rpb24gaU0oKXt2YXIgYj0wLGQ9MDtpZigoYVsxNjI0OF18MCkhPTApe2I9Y1syOTUw
XXwwO3JldHVybiBifDB9aWYoKGJjKDE2MjQ4KXwwKT09MCl7Yj1jWzI5NTBdfDA7cmV0dXJuIGJ8
MH1kb3tpZigoYVsxNjI1Nl18MCk9PTApe2lmKChiYygxNjI1Nil8MCk9PTApe2JyZWFrfWlzKDE0
NDk2LDEpO2NbMjk1NF09MTQ0OTY7Y1syOTUyXT0xMTgxNn19d2hpbGUoMCk7ZD1jW2NbMjk1Ml0+
PjJdfDA7Y1syOTU2XT1kO2RnKGR8MCk7Y1syOTUwXT0xMTgyNDtiPWNbMjk1MF18MDtyZXR1cm4g
YnwwfWZ1bmN0aW9uIGlOKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MDtkPWNbYj4+Ml18MDtjW2E+
PjJdPWQ7ZGcoZHwwKTtyZXR1cm59ZnVuY3Rpb24gaU8oYSl7YT1hfDA7ZHooY1thPj4yXXwwKXww
O3JldHVybn1mdW5jdGlvbiBpUChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlv
biBpUShhKXthPWF8MDtpZigoYXwwKT09MCl7cmV0dXJufWJZW2NbKGNbYT4+Ml18MCkrND4+Ml0m
NTExXShhKTtyZXR1cm59ZnVuY3Rpb24gaVIoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59
ZnVuY3Rpb24gaVMoYil7Yj1ifDA7dmFyIGQ9MDtjW2I+PjJdPTM5MzY7ZD1jW2IrOD4+Ml18MDtk
b3tpZigoZHwwKSE9MCl7aWYoKGFbYisxMnwwXSYxKT09MCl7YnJlYWt9a1QoZCl9fXdoaWxlKDAp
O2RlKGJ8MCk7a1MoYik7cmV0dXJufWZ1bmN0aW9uIGlUKGIpe2I9YnwwO3ZhciBkPTA7Y1tiPj4y
XT0zOTM2O2Q9Y1tiKzg+PjJdfDA7ZG97aWYoKGR8MCkhPTApe2lmKChhW2IrMTJ8MF0mMSk9PTAp
e2JyZWFrfWtUKGQpfX13aGlsZSgwKTtkZShifDApO3JldHVybn1mdW5jdGlvbiBpVShhKXthPWF8
MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpVihhKXthPWF8MDtpcShhKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24gaVcoYSl7YT1hfDA7dmFyIGI9MDtiPWNbKGlNKCl8MCk+PjJdfDA7Y1th
Pj4yXT1iO2RnKGJ8MCk7cmV0dXJufWZ1bmN0aW9uIGlYKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9
MCxlPTAsZj0wLGc9MCxoPTA7ZD1pO2k9aSsxNnwwO2U9ZHwwO2Y9Y1thPj4yXXwwO2E9YnwwO2lm
KChjW2E+PjJdfDApIT0tMSl7Y1tlPj4yXT1iO2NbZSs0Pj4yXT0xMjtjW2UrOD4+Ml09MDtkVyhh
LGUsOTYpfWU9KGNbYis0Pj4yXXwwKS0xfDA7Yj1jW2YrOD4+Ml18MDtpZigoY1tmKzEyPj4yXXww
KS1iPj4yPj4+MDw9ZT4+PjApe2c9Yk8oNCl8MDtoPWc7a3EoaCk7YmwoZ3wwLDgxNzYsMTM0KTty
ZXR1cm4gMH1mPWNbYisoZTw8Mik+PjJdfDA7aWYoKGZ8MCk9PTApe2c9Yk8oNCl8MDtoPWc7a3Eo
aCk7YmwoZ3wwLDgxNzYsMTM0KTtyZXR1cm4gMH1lbHNle2k9ZDtyZXR1cm4gZnwwfXJldHVybiAw
fWZ1bmN0aW9uIGlZKGEsZCxlKXthPWF8MDtkPWR8MDtlPWV8MDt2YXIgZj0wO2lmKGU+Pj4wPj0x
Mjgpe2Y9MDtyZXR1cm4gZnwwfWY9KGJbKGNbKGE2KCl8MCk+PjJdfDApKyhlPDwxKT4+MV0mZCk8
PDE2Pj4xNiE9MDtyZXR1cm4gZnwwfWZ1bmN0aW9uIGlaKGEsZCxlLGYpe2E9YXwwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTA7aWYoKGR8MCk9PShlfDApKXtnPWQ7cmV0dXJu
IGd8MH1lbHNle2g9ZDtpPWZ9d2hpbGUoMSl7Zj1jW2g+PjJdfDA7aWYoZj4+PjA8MTI4KXtqPWJb
KGNbKGE2KCl8MCk+PjJdfDApKyhmPDwxKT4+MV18MH1lbHNle2o9MH1iW2k+PjFdPWo7Zj1oKzR8
MDtpZigoZnwwKT09KGV8MCkpe2c9ZTticmVha31lbHNle2g9ZjtpPWkrMnwwfX1yZXR1cm4gZ3ww
fWZ1bmN0aW9uIGlfKGEsZCxlLGYpe2E9YXwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0w
LGk9MDtpZigoZXwwKT09KGZ8MCkpe2c9ZTtyZXR1cm4gZ3wwfWVsc2V7aD1lfXdoaWxlKDEpe2U9
Y1toPj4yXXwwO2lmKGU+Pj4wPDEyOCl7aWYoKGJbKGNbKGE2KCl8MCk+PjJdfDApKyhlPDwxKT4+
MV0mZCk8PDE2Pj4xNiE9MCl7Zz1oO2k9MjA5NDticmVha319ZT1oKzR8MDtpZigoZXwwKT09KGZ8
MCkpe2c9ZjtpPTIwOTY7YnJlYWt9ZWxzZXtoPWV9fWlmKChpfDApPT0yMDk0KXtyZXR1cm4gZ3ww
fWVsc2UgaWYoKGl8MCk9PTIwOTYpe3JldHVybiBnfDB9cmV0dXJuIDB9ZnVuY3Rpb24gaSQoYSxk
LGUsZil7YT1hfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTA7YT1lO3doaWxlKDEpe2lm
KChhfDApPT0oZnwwKSl7Zz1mO2g9MjEwNDticmVha31lPWNbYT4+Ml18MDtpZihlPj4+MD49MTI4
KXtnPWE7aD0yMTA2O2JyZWFrfWlmKChiWyhjWyhhNigpfDApPj4yXXwwKSsoZTw8MSk+PjFdJmQp
PDwxNj4+MTY9PTApe2c9YTtoPTIxMDU7YnJlYWt9ZWxzZXthPWErNHwwfX1pZigoaHwwKT09MjEw
NCl7cmV0dXJuIGd8MH1lbHNlIGlmKChofDApPT0yMTA1KXtyZXR1cm4gZ3wwfWVsc2UgaWYoKGh8
MCk9PTIxMDYpe3JldHVybiBnfDB9cmV0dXJuIDB9ZnVuY3Rpb24gaTAoYSxiKXthPWF8MDtiPWJ8
MDt2YXIgZD0wO2lmKGI+Pj4wPj0xMjgpe2Q9YjtyZXR1cm4gZHwwfWQ9Y1soY1soYlIoKXwwKT4+
Ml18MCkrKGI8PDIpPj4yXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24gaTEoYSxiLGQpe2E9YXwwO2I9
YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtpZigoYnwwKT09KGR8MCkpe2U9YjtyZXR1cm4gZXww
fWVsc2V7Zj1ifXdoaWxlKDEpe2I9Y1tmPj4yXXwwO2lmKGI+Pj4wPDEyOCl7Zz1jWyhjWyhiUigp
fDApPj4yXXwwKSsoYjw8Mik+PjJdfDB9ZWxzZXtnPWJ9Y1tmPj4yXT1nO2I9Zis0fDA7aWYoKGJ8
MCk9PShkfDApKXtlPWQ7YnJlYWt9ZWxzZXtmPWJ9fXJldHVybiBlfDB9ZnVuY3Rpb24gaTIoYSxi
KXthPWF8MDtiPWJ8MDt2YXIgZD0wO2lmKGI+Pj4wPj0xMjgpe2Q9YjtyZXR1cm4gZHwwfWQ9Y1so
Y1soYlMoKXwwKT4+Ml18MCkrKGI8PDIpPj4yXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24gaTMoYSxi
LGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtpZigoYnwwKT09KGR8MCkpe2U9
YjtyZXR1cm4gZXwwfWVsc2V7Zj1ifXdoaWxlKDEpe2I9Y1tmPj4yXXwwO2lmKGI+Pj4wPDEyOCl7
Zz1jWyhjWyhiUygpfDApPj4yXXwwKSsoYjw8Mik+PjJdfDB9ZWxzZXtnPWJ9Y1tmPj4yXT1nO2I9
Zis0fDA7aWYoKGJ8MCk9PShkfDApKXtlPWQ7YnJlYWt9ZWxzZXtmPWJ9fXJldHVybiBlfDB9ZnVu
Y3Rpb24gaTQoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wO2lmKGI8PDI0Pj4yNDw9LTEpe2Q9Yjty
ZXR1cm4gZHwwfWQ9Y1soY1soYlIoKXwwKT4+Ml18MCkrKChiJjI1NSk8PDIpPj4yXSYyNTU7cmV0
dXJuIGR8MH1mdW5jdGlvbiBpNShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAs
aD0wO2lmKChkfDApPT0oZXwwKSl7Zj1kO3JldHVybiBmfDB9ZWxzZXtnPWR9d2hpbGUoMSl7ZD1h
W2ddfDA7aWYoZDw8MjQ+PjI0Pi0xKXtoPWNbKGNbKGJSKCl8MCk+PjJdfDApKyhkPDwyND4+MjQ8
PDIpPj4yXSYyNTV9ZWxzZXtoPWR9YVtnXT1oO2Q9ZysxfDA7aWYoKGR8MCk9PShlfDApKXtmPWU7
YnJlYWt9ZWxzZXtnPWR9fXJldHVybiBmfDB9ZnVuY3Rpb24gaTYoYSxiKXthPWF8MDtiPWJ8MDt2
YXIgZD0wO2lmKGI8PDI0Pj4yNDw9LTEpe2Q9YjtyZXR1cm4gZHwwfWQ9Y1soY1soYlMoKXwwKT4+
Ml18MCkrKGI8PDI0Pj4yNDw8Mik+PjJdJjI1NTtyZXR1cm4gZHwwfWZ1bmN0aW9uIGk3KGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7aWYoKGR8MCk9PShlfDApKXtmPWQ7
cmV0dXJuIGZ8MH1lbHNle2c9ZH13aGlsZSgxKXtkPWFbZ118MDtpZihkPDwyND4+MjQ+LTEpe2g9
Y1soY1soYlMoKXwwKT4+Ml18MCkrKGQ8PDI0Pj4yNDw8Mik+PjJdJjI1NX1lbHNle2g9ZH1hW2dd
PWg7ZD1nKzF8MDtpZigoZHwwKT09KGV8MCkpe2Y9ZTticmVha31lbHNle2c9ZH19cmV0dXJuIGZ8
MH1mdW5jdGlvbiBpOChhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBpOShhKXthPWF8MDtkZShh
fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBqYShhLGIsZCxlLGYsZyxoLGope2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wO2I9aTtpPWkr
MTZ8MDthPWJ8MDtrPWIrOHwwO2NbYT4+Ml09ZDtjW2s+PjJdPWc7bD1qbChkLGUsYSxnLGgsaywx
MTE0MTExLDApfDA7Y1tmPj4yXT1kKygoY1thPj4yXXwwKS1kPj4xPDwxKTtjW2o+PjJdPWcrKChj
W2s+PjJdfDApLWcpO2k9YjtyZXR1cm4gbHwwfWZ1bmN0aW9uIGpiKGIsZCxlLGYsZyxoLGosayl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTA7bD1pO2k9aSs4fDA7bT1s
fDA7bj1tO289aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3A9ZTt3aGlsZSgxKXtpZigocHwwKT09KGZ8
MCkpe3E9ZjticmVha31pZigoY1twPj4yXXwwKT09MCl7cT1wO2JyZWFrfWVsc2V7cD1wKzR8MH19
Y1trPj4yXT1oO2NbZz4+Ml09ZTtMMjU1NTpkb3tpZigoZXwwKT09KGZ8MCl8KGh8MCk9PShqfDAp
KXtyPWV9ZWxzZXtwPWQ7cz1qO3Q9Yis4fDA7dT1vfDA7dj1oO3c9ZTt4PXE7TDI1NTc6d2hpbGUo
MSl7eT1jW3ArND4+Ml18MDtjW20+PjJdPWNbcD4+Ml07Y1ttKzQ+PjJdPXk7eT1iQihjW3Q+PjJd
fDApfDA7ej1rcyh2LGcseC13Pj4yLHMtdnwwLGQpfDA7aWYoKHl8MCkhPTApe2JCKHl8MCl8MH1z
d2l0Y2goenwwKXtjYXNlLTE6e0E9MjE4ODticmVhayBMMjU1NzticmVha307Y2FzZSAwOntCPTE7
QT0yMjI0O2JyZWFrIEwyNTU3O2JyZWFrfTtkZWZhdWx0Ont9fXk9KGNbaz4+Ml18MCkrenwwO2Nb
az4+Ml09eTtpZigoeXwwKT09KGp8MCkpe0E9MjIyMTticmVha31pZigoeHwwKT09KGZ8MCkpe0M9
ZjtEPXk7RT1jW2c+PjJdfDB9ZWxzZXt5PWJCKGNbdD4+Ml18MCl8MDt6PWtnKHUsMCxkKXwwO2lm
KCh5fDApIT0wKXtiQih5fDApfDB9aWYoKHp8MCk9PS0xKXtCPTI7QT0yMjI2O2JyZWFrfXk9Y1tr
Pj4yXXwwO2lmKHo+Pj4wPihzLXl8MCk+Pj4wKXtCPTE7QT0yMjI3O2JyZWFrfUwyNTc0OmRve2lm
KCh6fDApIT0wKXtGPXo7Rz11O0g9eTt3aGlsZSgxKXtJPWFbR118MDtjW2s+PjJdPUgrMTthW0hd
PUk7ST1GLTF8MDtpZigoSXwwKT09MCl7YnJlYWsgTDI1NzR9Rj1JO0c9RysxfDA7SD1jW2s+PjJd
fDB9fX13aGlsZSgwKTt5PShjW2c+PjJdfDApKzR8MDtjW2c+PjJdPXk7ej15O3doaWxlKDEpe2lm
KCh6fDApPT0oZnwwKSl7Sj1mO2JyZWFrfWlmKChjW3o+PjJdfDApPT0wKXtKPXo7YnJlYWt9ZWxz
ZXt6PXorNHwwfX1DPUo7RD1jW2s+PjJdfDA7RT15fWlmKChFfDApPT0oZnwwKXwoRHwwKT09KGp8
MCkpe3I9RTticmVhayBMMjU1NX1lbHNle3Y9RDt3PUU7eD1DfX1pZigoQXwwKT09MjE4OCl7Y1tr
Pj4yXT12O0wyNTg2OmRve2lmKCh3fDApPT0oY1tnPj4yXXwwKSl7Sz13fWVsc2V7eD13O3U9djt3
aGlsZSgxKXtzPWNbeD4+Ml18MDtwPWJCKGNbdD4+Ml18MCl8MDt6PWtnKHUscyxuKXwwO2lmKChw
fDApIT0wKXtiQihwfDApfDB9aWYoKHp8MCk9PS0xKXtLPXg7YnJlYWsgTDI1ODZ9cD0oY1trPj4y
XXwwKSt6fDA7Y1trPj4yXT1wO3o9eCs0fDA7aWYoKHp8MCk9PShjW2c+PjJdfDApKXtLPXo7YnJl
YWt9ZWxzZXt4PXo7dT1wfX19fXdoaWxlKDApO2NbZz4+Ml09SztCPTI7aT1sO3JldHVybiBCfDB9
ZWxzZSBpZigoQXwwKT09MjIyMSl7cj1jW2c+PjJdfDA7YnJlYWt9ZWxzZSBpZigoQXwwKT09MjIy
NCl7aT1sO3JldHVybiBCfDB9ZWxzZSBpZigoQXwwKT09MjIyNil7aT1sO3JldHVybiBCfDB9ZWxz
ZSBpZigoQXwwKT09MjIyNyl7aT1sO3JldHVybiBCfDB9fX13aGlsZSgwKTtCPShyfDApIT0oZnww
KXwwO2k9bDtyZXR1cm4gQnwwfWZ1bmN0aW9uIGpjKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0w
LEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wO2w9aTtpPWkrOHwwO209bHwwO249bTtvPWU7d2hpbGUo
MSl7aWYoKG98MCk9PShmfDApKXtwPWY7YnJlYWt9aWYoKGFbb118MCk9PTApe3A9bzticmVha31l
bHNle289bysxfDB9fWNbaz4+Ml09aDtjW2c+PjJdPWU7TDI2MDc6ZG97aWYoKGV8MCk9PShmfDAp
fChofDApPT0oanwwKSl7cT1lfWVsc2V7bz1kO3I9ajtzPWIrOHwwO3Q9aDt1PWU7dj1wO0wyNjA5
OndoaWxlKDEpe3c9Y1tvKzQ+PjJdfDA7Y1ttPj4yXT1jW28+PjJdO2NbbSs0Pj4yXT13O3g9djt3
PWJCKGNbcz4+Ml18MCl8MDt5PWtkKHQsZyx4LXV8MCxyLXQ+PjIsZCl8MDtpZigod3wwKSE9MCl7
YkIod3wwKXwwfXN3aXRjaCh5fDApe2Nhc2UtMTp7ej0yMjQzO2JyZWFrIEwyNjA5O2JyZWFrfTtj
YXNlIDA6e0E9Mjt6PTIyNzg7YnJlYWsgTDI2MDk7YnJlYWt9O2RlZmF1bHQ6e319dz0oY1trPj4y
XXwwKSsoeTw8Mil8MDtjW2s+PjJdPXc7aWYoKHd8MCk9PShqfDApKXt6PTIyNzU7YnJlYWt9eT1j
W2c+PjJdfDA7aWYoKHZ8MCk9PShmfDApKXtCPWY7Qz13O0Q9eX1lbHNle0U9YkIoY1tzPj4yXXww
KXwwO0Y9a2Modyx5LDEsZCl8MDtpZigoRXwwKSE9MCl7YkIoRXwwKXwwfWlmKChGfDApIT0wKXtB
PTI7ej0yMjgyO2JyZWFrfWNbaz4+Ml09KGNbaz4+Ml18MCkrNDtGPShjW2c+PjJdfDApKzF8MDtj
W2c+PjJdPUY7RT1GO3doaWxlKDEpe2lmKChFfDApPT0oZnwwKSl7Rz1mO2JyZWFrfWlmKChhW0Vd
fDApPT0wKXtHPUU7YnJlYWt9ZWxzZXtFPUUrMXwwfX1CPUc7Qz1jW2s+PjJdfDA7RD1GfWlmKChE
fDApPT0oZnwwKXwoQ3wwKT09KGp8MCkpe3E9RDticmVhayBMMjYwN31lbHNle3Q9Qzt1PUQ7dj1C
fX1pZigoenwwKT09MjI0Myl7Y1trPj4yXT10O0wyNjMxOmRve2lmKCh1fDApPT0oY1tnPj4yXXww
KSl7SD11fWVsc2V7dj10O3I9dTtMMjYzMjp3aGlsZSgxKXtvPWJCKGNbcz4+Ml18MCl8MDtFPWtj
KHYscix4LXJ8MCxuKXwwO2lmKChvfDApIT0wKXtiQihvfDApfDB9c3dpdGNoKEV8MCl7Y2FzZSAw
OntJPXIrMXwwO2JyZWFrfTtjYXNlLTE6e3o9MjI1NDticmVhayBMMjYzMjticmVha307Y2FzZS0y
Ont6PTIyNTU7YnJlYWsgTDI2MzI7YnJlYWt9O2RlZmF1bHQ6e0k9citFfDB9fUU9KGNbaz4+Ml18
MCkrNHwwO2Nbaz4+Ml09RTtpZigoSXwwKT09KGNbZz4+Ml18MCkpe0g9STticmVhayBMMjYzMX1l
bHNle3Y9RTtyPUl9fWlmKCh6fDApPT0yMjU0KXtjW2c+PjJdPXI7QT0yO2k9bDtyZXR1cm4gQXww
fWVsc2UgaWYoKHp8MCk9PTIyNTUpe2NbZz4+Ml09cjtBPTE7aT1sO3JldHVybiBBfDB9fX13aGls
ZSgwKTtjW2c+PjJdPUg7QT0oSHwwKSE9KGZ8MCl8MDtpPWw7cmV0dXJuIEF8MH1lbHNlIGlmKCh6
fDApPT0yMjc1KXtxPWNbZz4+Ml18MDticmVha31lbHNlIGlmKCh6fDApPT0yMjc4KXtpPWw7cmV0
dXJuIEF8MH1lbHNlIGlmKCh6fDApPT0yMjgyKXtpPWw7cmV0dXJuIEF8MH19fXdoaWxlKDApO0E9
KHF8MCkhPShmfDApfDA7aT1sO3JldHVybiBBfDB9ZnVuY3Rpb24gamQoYixkLGUsZixnKXtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGo9MCxrPTAsbD0wLG09MCxuPTA7aD1p
O2k9aSs4fDA7Y1tnPj4yXT1lO2U9aHwwO2o9YkIoY1tiKzg+PjJdfDApfDA7Yj1rZyhlLDAsZCl8
MDtpZigoanwwKSE9MCl7YkIoanwwKXwwfXN3aXRjaChifDApe2Nhc2UtMTpjYXNlIDA6e2s9Mjtp
PWg7cmV0dXJuIGt8MH07ZGVmYXVsdDp7fX1qPWItMXwwO2I9Y1tnPj4yXXwwO2lmKGo+Pj4wPihm
LWJ8MCk+Pj4wKXtrPTE7aT1oO3JldHVybiBrfDB9aWYoKGp8MCk9PTApe2s9MDtpPWg7cmV0dXJu
IGt8MH1lbHNle2w9ajttPWU7bj1ifXdoaWxlKDEpe2I9YVttXXwwO2NbZz4+Ml09bisxO2Fbbl09
YjtiPWwtMXwwO2lmKChifDApPT0wKXtrPTA7YnJlYWt9bD1iO209bSsxfDA7bj1jW2c+PjJdfDB9
aT1oO3JldHVybiBrfDB9ZnVuY3Rpb24gamUoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MCxn
PTA7Yj1hKzh8MDthPWJCKGNbYj4+Ml18MCl8MDtkPWtmKDAsMCwxKXwwO2lmKChhfDApIT0wKXti
QihhfDApfDB9aWYoKGR8MCkhPTApe2U9LTE7cmV0dXJuIGV8MH1kPWNbYj4+Ml18MDtpZigoZHww
KT09MCl7ZT0xO3JldHVybiBlfDB9ZT1iQihkfDApfDA7ZD1iZCgpfDA7aWYoKGV8MCk9PTApe2Y9
KGR8MCk9PTE7Zz1mJjE7cmV0dXJuIGd8MH1iQihlfDApfDA7Zj0oZHwwKT09MTtnPWYmMTtyZXR1
cm4gZ3wwfWZ1bmN0aW9uIGpmKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wO2lmKChmfDApPT0wfChk
fDApPT0oZXwwKSl7Zz0wO3JldHVybiBnfDB9aD1lO2k9YSs4fDA7YT1kO2Q9MDtqPTA7TDI2OTM6
d2hpbGUoMSl7az1iQihjW2k+PjJdfDApfDA7bD1rYihhLGgtYXwwLGIpfDA7aWYoKGt8MCkhPTAp
e2JCKGt8MCl8MH1zd2l0Y2gobHwwKXtjYXNlIDA6e209MTtuPWErMXwwO2JyZWFrfTtjYXNlLTE6
Y2FzZS0yOntnPWQ7bz0yMzQzO2JyZWFrIEwyNjkzO2JyZWFrfTtkZWZhdWx0OnttPWw7bj1hK2x8
MH19bD1tK2R8MDtrPWorMXwwO2lmKGs+Pj4wPj1mPj4+MHwobnwwKT09KGV8MCkpe2c9bDtvPTIz
NDU7YnJlYWt9ZWxzZXthPW47ZD1sO2o9a319aWYoKG98MCk9PTIzNDUpe3JldHVybiBnfDB9ZWxz
ZSBpZigob3wwKT09MjM0Myl7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBqZyhhKXthPWF8
MDt2YXIgYj0wLGQ9MCxlPTA7Yj1jW2ErOD4+Ml18MDtkb3tpZigoYnwwKT09MCl7ZD0xfWVsc2V7
YT1iQihifDApfDA7ZT1iZCgpfDA7aWYoKGF8MCk9PTApe2Q9ZTticmVha31iQihhfDApfDA7ZD1l
fX13aGlsZSgwKTtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpoKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Y1tmPj4yXT1kO3JldHVybiAzfWZ1bmN0aW9uIGppKGEpe2E9YXww
O3JldHVybiAwfWZ1bmN0aW9uIGpqKGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGprKGEpe2E9
YXwwO3JldHVybiA0fWZ1bmN0aW9uIGpsKGQsZixnLGgsaSxqLGssbCl7ZD1kfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wO2NbZz4+Ml09ZDtjW2o+PjJdPWg7ZG97aWYoKGwmMnwwKSE9MCl7aWYoKGktaHwwKTwzKXtt
PTE7cmV0dXJuIG18MH1lbHNle2Nbaj4+Ml09aCsxO2FbaF09LTE3O2Q9Y1tqPj4yXXwwO2Nbaj4+
Ml09ZCsxO2FbZF09LTY5O2Q9Y1tqPj4yXXwwO2Nbaj4+Ml09ZCsxO2FbZF09LTY1O2JyZWFrfX19
d2hpbGUoMCk7aD1mO2w9Y1tnPj4yXXwwO2lmKGw+Pj4wPj1mPj4+MCl7bT0wO3JldHVybiBtfDB9
ZD1pO2k9bDtMMjcyNzp3aGlsZSgxKXtsPWJbaT4+MV18MDtuPWwmNjU1MzU7aWYobj4+PjA+az4+
PjApe209MjtvPTIzOTk7YnJlYWt9ZG97aWYoKGwmNjU1MzUpPDEyOCl7cD1jW2o+PjJdfDA7aWYo
KGQtcHwwKTwxKXttPTE7bz0yMzg4O2JyZWFrIEwyNzI3fWNbaj4+Ml09cCsxO2FbcF09bCYyNTV9
ZWxzZXtpZigobCY2NTUzNSk8MjA0OCl7cD1jW2o+PjJdfDA7aWYoKGQtcHwwKTwyKXttPTE7bz0y
Mzg5O2JyZWFrIEwyNzI3fWNbaj4+Ml09cCsxO2FbcF09KG4+Pj42fDE5MikmMjU1O3A9Y1tqPj4y
XXwwO2Nbaj4+Ml09cCsxO2FbcF09KG4mNjN8MTI4KSYyNTU7YnJlYWt9aWYoKGwmNjU1MzUpPDU1
Mjk2KXtwPWNbaj4+Ml18MDtpZigoZC1wfDApPDMpe209MTtvPTIzOTc7YnJlYWsgTDI3Mjd9Y1tq
Pj4yXT1wKzE7YVtwXT0obj4+PjEyfDIyNCkmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCsxO2Fb
cF09KG4+Pj42JjYzfDEyOCkmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCsxO2FbcF09KG4mNjN8
MTI4KSYyNTU7YnJlYWt9aWYoKGwmNjU1MzUpPj01NjMyMCl7aWYoKGwmNjU1MzUpPDU3MzQ0KXtt
PTI7bz0yMzkzO2JyZWFrIEwyNzI3fXA9Y1tqPj4yXXwwO2lmKChkLXB8MCk8Myl7bT0xO289MjM5
NDticmVhayBMMjcyN31jW2o+PjJdPXArMTthW3BdPShuPj4+MTJ8MjI0KSYyNTU7cD1jW2o+PjJd
fDA7Y1tqPj4yXT1wKzE7YVtwXT0obj4+PjYmNjN8MTI4KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4y
XT1wKzE7YVtwXT0obiY2M3wxMjgpJjI1NTticmVha31pZigoaC1pfDApPDQpe209MTtvPTIzOTE7
YnJlYWsgTDI3Mjd9cD1pKzJ8MDtxPWVbcD4+MV18MDtpZigocSY2NDUxMnwwKSE9NTYzMjApe209
MjtvPTIzOTI7YnJlYWsgTDI3Mjd9aWYoKGQtKGNbaj4+Ml18MCl8MCk8NCl7bT0xO289MjM5ODti
cmVhayBMMjcyN31yPW4mOTYwO2lmKCgocjw8MTApKzY1NTM2fG48PDEwJjY0NTEyfHEmMTAyMyk+
Pj4wPms+Pj4wKXttPTI7bz0yNDAwO2JyZWFrIEwyNzI3fWNbZz4+Ml09cDtwPShyPj4+NikrMXww
O3I9Y1tqPj4yXXwwO2Nbaj4+Ml09cisxO2Fbcl09KHA+Pj4yfDI0MCkmMjU1O3I9Y1tqPj4yXXww
O2Nbaj4+Ml09cisxO2Fbcl09KG4+Pj4yJjE1fHA8PDQmNDh8MTI4KSYyNTU7cD1jW2o+PjJdfDA7
Y1tqPj4yXT1wKzE7YVtwXT0objw8NCY0OHxxPj4+NiYxNXwxMjgpJjI1NTtwPWNbaj4+Ml18MDtj
W2o+PjJdPXArMTthW3BdPShxJjYzfDEyOCkmMjU1fX13aGlsZSgwKTtuPShjW2c+PjJdfDApKzJ8
MDtjW2c+PjJdPW47aWYobj4+PjA8Zj4+PjApe2k9bn1lbHNle209MDtvPTIzOTU7YnJlYWt9fWlm
KChvfDApPT0yMzg5KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTMpe3JldHVybiBtfDB9
ZWxzZSBpZigob3wwKT09MjM5NCl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yNDAwKXtyZXR1
cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzODgpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5
MSl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzkyKXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98
MCk9PTIzOTUpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5Nyl7cmV0dXJuIG18MH1lbHNl
IGlmKChvfDApPT0yMzk4KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTkpe3JldHVybiBt
fDB9cmV0dXJuIDB9ZnVuY3Rpb24gam0oZSxmLGcsaCxpLGosayxsKXtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wO2NbZz4+Ml09ZTtjW2o+PjJdPWg7aD1jW2c+
PjJdfDA7ZG97aWYoKGwmNHwwKT09MCl7bT1ofWVsc2V7aWYoKGYtaHwwKTw9Mil7bT1oO2JyZWFr
fWlmKChhW2hdfDApIT0tMTcpe209aDticmVha31pZigoYVtoKzF8MF18MCkhPS02OSl7bT1oO2Jy
ZWFrfWlmKChhW2grMnwwXXwwKSE9LTY1KXttPWg7YnJlYWt9ZT1oKzN8MDtjW2c+PjJdPWU7bT1l
fX13aGlsZSgwKTtMMjc3Mjpkb3tpZihtPj4+MDxmPj4+MCl7aD1mO2w9aTtlPWNbaj4+Ml18MDtu
PW07TDI3NzQ6d2hpbGUoMSl7aWYoZT4+PjA+PWk+Pj4wKXtvPW47YnJlYWsgTDI3NzJ9cD1hW25d
fDA7cT1wJjI1NTtpZihxPj4+MD5rPj4+MCl7cj0yO3M9MjQ0NDticmVha31kb3tpZihwPDwyND4+
MjQ+LTEpe2JbZT4+MV09cCYyNTU7Y1tnPj4yXT0oY1tnPj4yXXwwKSsxfWVsc2V7aWYoKHAmMjU1
KTwxOTQpe3I9MjtzPTI0NTM7YnJlYWsgTDI3NzR9aWYoKHAmMjU1KTwyMjQpe2lmKChoLW58MCk8
Mil7cj0xO3M9MjQ1NDticmVhayBMMjc3NH10PWRbbisxfDBdfDA7aWYoKHQmMTkyfDApIT0xMjgp
e3I9MjtzPTI0NTU7YnJlYWsgTDI3NzR9dT10JjYzfHE8PDYmMTk4NDtpZih1Pj4+MD5rPj4+MCl7
cj0yO3M9MjQ1NjticmVhayBMMjc3NH1iW2U+PjFdPXUmNjU1MzU7Y1tnPj4yXT0oY1tnPj4yXXww
KSsyO2JyZWFrfWlmKChwJjI1NSk8MjQwKXtpZigoaC1ufDApPDMpe3I9MTtzPTI0NTc7YnJlYWsg
TDI3NzR9dT1hW24rMXwwXXwwO3N3aXRjaChxfDApe2Nhc2UgMjI0OntpZigodSYtMzIpPDwyND4+
MjQhPS05Nil7cj0yO3M9MjQ1MDticmVhayBMMjc3NH1icmVha307Y2FzZSAyMzc6e2lmKCh1Ji0z
Mik8PDI0Pj4yNCE9LTEyOCl7cj0yO3M9MjQ1MjticmVhayBMMjc3NH1icmVha307ZGVmYXVsdDp7
aWYoKHUmLTY0KTw8MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDYyO2JyZWFrIEwyNzc0fX19dD1kW24r
MnwwXXwwO2lmKCh0JjE5MnwwKSE9MTI4KXtyPTI7cz0yNDQzO2JyZWFrIEwyNzc0fXY9KHUmMjU1
KTw8NiY0MDMyfHE8PDEyfHQmNjM7aWYoKHYmNjU1MzUpPj4+MD5rPj4+MCl7cj0yO3M9MjQ0Mjti
cmVhayBMMjc3NH1iW2U+PjFdPXYmNjU1MzU7Y1tnPj4yXT0oY1tnPj4yXXwwKSszO2JyZWFrfWlm
KChwJjI1NSk+PTI0NSl7cj0yO3M9MjQ0NzticmVhayBMMjc3NH1pZigoaC1ufDApPDQpe3I9MTtz
PTI0NTg7YnJlYWsgTDI3NzR9dj1hW24rMXwwXXwwO3N3aXRjaChxfDApe2Nhc2UgMjQwOntpZigo
disxMTImMjU1KT49NDgpe3I9MjtzPTI0NDg7YnJlYWsgTDI3NzR9YnJlYWt9O2Nhc2UgMjQ0Ontp
ZigodiYtMTYpPDwyND4+MjQhPS0xMjgpe3I9MjtzPTI0NTk7YnJlYWsgTDI3NzR9YnJlYWt9O2Rl
ZmF1bHQ6e2lmKCh2Ji02NCk8PDI0Pj4yNCE9LTEyOCl7cj0yO3M9MjQ2MDticmVhayBMMjc3NH19
fXQ9ZFtuKzJ8MF18MDtpZigodCYxOTJ8MCkhPTEyOCl7cj0yO3M9MjQ2MTticmVhayBMMjc3NH11
PWRbbiszfDBdfDA7aWYoKHUmMTkyfDApIT0xMjgpe3I9MjtzPTI0NDk7YnJlYWsgTDI3NzR9aWYo
KGwtZXwwKTw0KXtyPTE7cz0yNDQ1O2JyZWFrIEwyNzc0fXc9cSY3O3g9diYyNTU7dj10PDw2O3k9
dSY2MztpZigoeDw8MTImMjU4MDQ4fHc8PDE4fHYmNDAzMnx5KT4+PjA+az4+PjApe3I9MjtzPTI0
NDY7YnJlYWsgTDI3NzR9YltlPj4xXT0oeDw8MiY2MHx0Pj4+NCYzfCgoeD4+PjQmM3x3PDwyKTw8
NikrMTYzMjB8NTUyOTYpJjY1NTM1O3c9KGNbaj4+Ml18MCkrMnwwO2Nbaj4+Ml09dztiW3c+PjFd
PSh5fHYmOTYwfDU2MzIwKSY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDApKzR9fXdoaWxlKDApO3E9
KGNbaj4+Ml18MCkrMnwwO2Nbaj4+Ml09cTtwPWNbZz4+Ml18MDtpZihwPj4+MDxmPj4+MCl7ZT1x
O249cH1lbHNle289cDticmVhayBMMjc3Mn19aWYoKHN8MCk9PTI0NDIpe3JldHVybiByfDB9ZWxz
ZSBpZigoc3wwKT09MjQ0Myl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ0KXtyZXR1cm4g
cnwwfWVsc2UgaWYoKHN8MCk9PTI0NDgpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ0OSl7
cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDUwKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9
PTI0NDUpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ0Nil7cmV0dXJuIHJ8MH1lbHNlIGlm
KChzfDApPT0yNDQ3KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTYpe3JldHVybiByfDB9
ZWxzZSBpZigoc3wwKT09MjQ1Nyl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDU4KXtyZXR1
cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTkpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ2
MCl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDYxKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8
MCk9PTI0NjIpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1Mil7cmV0dXJuIHJ8MH1lbHNl
IGlmKChzfDApPT0yNDUzKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTQpe3JldHVybiBy
fDB9ZWxzZSBpZigoc3wwKT09MjQ1NSl7cmV0dXJuIHJ8MH19ZWxzZXtvPW19fXdoaWxlKDApO3I9
bz4+PjA8Zj4+PjB8MDtyZXR1cm4gcnwwfWZ1bmN0aW9uIGpuKGIsYyxlLGYsZyl7Yj1ifDA7Yz1j
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wO2Rve2lmKChnJjR8MCk9PTApe2g9Yn1lbHNle2lm
KChjLWJ8MCk8PTIpe2g9YjticmVha31pZigoYVtiXXwwKSE9LTE3KXtoPWI7YnJlYWt9aWYoKGFb
YisxfDBdfDApIT0tNjkpe2g9YjticmVha31oPShhW2IrMnwwXXwwKT09LTY1P2IrM3wwOmJ9fXdo
aWxlKDApO0wyODQxOmRve2lmKGg+Pj4wPGM+Pj4wJihlfDApIT0wKXtnPWM7aT0wO2o9aDtMMjg0
Mzp3aGlsZSgxKXtrPWFbal18MDtsPWsmMjU1O2lmKGw+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDI4
NDF9ZG97aWYoazw8MjQ+PjI0Pi0xKXtuPWorMXwwO289aX1lbHNle2lmKChrJjI1NSk8MTk0KXtt
PWo7YnJlYWsgTDI4NDF9aWYoKGsmMjU1KTwyMjQpe2lmKChnLWp8MCk8Mil7bT1qO2JyZWFrIEwy
ODQxfXA9ZFtqKzF8MF18MDtpZigocCYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwyODQxfWlmKChw
JjYzfGw8PDYmMTk4NCk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDI4NDF9bj1qKzJ8MDtvPWk7YnJl
YWt9aWYoKGsmMjU1KTwyNDApe3E9ajtpZigoZy1xfDApPDMpe209ajticmVhayBMMjg0MX1wPWFb
aisxfDBdfDA7c3dpdGNoKGx8MCl7Y2FzZSAyMjQ6e2lmKChwJi0zMik8PDI0Pj4yNCE9LTk2KXty
PTI0ODM7YnJlYWsgTDI4NDN9YnJlYWt9O2Nhc2UgMjM3OntpZigocCYtMzIpPDwyND4+MjQhPS0x
Mjgpe3I9MjQ4NTticmVhayBMMjg0M31icmVha307ZGVmYXVsdDp7aWYoKHAmLTY0KTw8MjQ+PjI0
IT0tMTI4KXtyPTI0ODc7YnJlYWsgTDI4NDN9fX1zPWRbaisyfDBdfDA7aWYoKHMmMTkyfDApIT0x
Mjgpe209ajticmVhayBMMjg0MX1pZigoKHAmMjU1KTw8NiY0MDMyfGw8PDEyJjYxNDQwfHMmNjMp
Pj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwyODQxfW49aiszfDA7bz1pO2JyZWFrfWlmKChrJjI1NSk+
PTI0NSl7bT1qO2JyZWFrIEwyODQxfXQ9ajtpZigoZy10fDApPDQpe209ajticmVhayBMMjg0MX1p
ZigoZS1pfDApPj4+MDwyKXttPWo7YnJlYWsgTDI4NDF9cz1hW2orMXwwXXwwO3N3aXRjaChsfDAp
e2Nhc2UgMjQwOntpZigocysxMTImMjU1KT49NDgpe3I9MjQ5NjticmVhayBMMjg0M31icmVha307
Y2FzZSAyNDQ6e2lmKChzJi0xNik8PDI0Pj4yNCE9LTEyOCl7cj0yNDk4O2JyZWFrIEwyODQzfWJy
ZWFrfTtkZWZhdWx0OntpZigocyYtNjQpPDwyND4+MjQhPS0xMjgpe3I9MjUwMDticmVhayBMMjg0
M319fXA9ZFtqKzJ8MF18MDtpZigocCYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwyODQxfXU9ZFtq
KzN8MF18MDtpZigodSYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwyODQxfWlmKCgocyYyNTUpPDwx
MiYyNTgwNDh8bDw8MTgmMTgzNTAwOHxwPDw2JjQwMzJ8dSY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJl
YWsgTDI4NDF9bj1qKzR8MDtvPWkrMXwwfX13aGlsZSgwKTtsPW8rMXwwO2lmKG4+Pj4wPGM+Pj4w
Jmw+Pj4wPGU+Pj4wKXtpPWw7aj1ufWVsc2V7bT1uO2JyZWFrIEwyODQxfX1pZigocnwwKT09MjUw
MCl7dj10LWJ8MDtyZXR1cm4gdnwwfWVsc2UgaWYoKHJ8MCk9PTI0OTYpe3Y9dC1ifDA7cmV0dXJu
IHZ8MH1lbHNlIGlmKChyfDApPT0yNDk4KXt2PXQtYnwwO3JldHVybiB2fDB9ZWxzZSBpZigocnww
KT09MjQ4Myl7dj1xLWJ8MDtyZXR1cm4gdnwwfWVsc2UgaWYoKHJ8MCk9PTI0ODUpe3Y9cS1ifDA7
cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDApPT0yNDg3KXt2PXEtYnwwO3JldHVybiB2fDB9fWVsc2V7
bT1ofX13aGlsZSgwKTt2PW0tYnwwO3JldHVybiB2fDB9ZnVuY3Rpb24gam8oYSxiLGQsZSxmLGcs
aCxqKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIg
az0wLGw9MDtiPWk7aT1pKzE2fDA7YT1ifDA7az1iKzh8MDtjW2E+PjJdPWQ7Y1trPj4yXT1nO2w9
am0oZCxlLGEsZyxoLGssMTExNDExMSwwKXwwO2NbZj4+Ml09ZCsoKGNbYT4+Ml18MCktZCk7Y1tq
Pj4yXT1nKygoY1trPj4yXXwwKS1nPj4xPDwxKTtpPWI7cmV0dXJuIGx8MH1mdW5jdGlvbiBqcChh
LGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO3JldHVybiBqbihjLGQsZSwx
MTE0MTExLDApfDB9ZnVuY3Rpb24ganEoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVu
Y3Rpb24ganIoYSxiLGQsZSxmLGcsaCxqKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MDtiPWk7aT1pKzE2fDA7YT1ifDA7az1iKzh8MDtj
W2E+PjJdPWQ7Y1trPj4yXT1nO2w9ancoZCxlLGEsZyxoLGssMTExNDExMSwwKXwwO2NbZj4+Ml09
ZCsoKGNbYT4+Ml18MCktZD4+Mjw8Mik7Y1tqPj4yXT1nKygoY1trPj4yXXwwKS1nKTtpPWI7cmV0
dXJuIGx8MH1mdW5jdGlvbiBqcyhhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2NbZj4+Ml09ZDtyZXR1cm4gM31mdW5jdGlvbiBqdChhKXthPWF8MDtyZXR1cm4gMH1mdW5j
dGlvbiBqdShhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBqdihhKXthPWF8MDtyZXR1cm4gNH1m
dW5jdGlvbiBqdyhiLGQsZSxmLGcsaCxpLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2k9aXwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTA7Y1tlPj4yXT1iO2NbaD4+Ml09
Zjtkb3tpZigoaiYyfDApIT0wKXtpZigoZy1mfDApPDMpe2s9MTtyZXR1cm4ga3wwfWVsc2V7Y1to
Pj4yXT1mKzE7YVtmXT0tMTc7Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0tNjk7Yj1jW2g+
PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0tNjU7YnJlYWt9fX13aGlsZSgwKTtmPWNbZT4+Ml18MDtp
ZihmPj4+MD49ZD4+PjApe2s9MDtyZXR1cm4ga3wwfWo9ZztnPWY7TDI5MTI6d2hpbGUoMSl7Zj1j
W2c+PjJdfDA7aWYoKGYmLTIwNDh8MCk9PTU1Mjk2fGY+Pj4wPmk+Pj4wKXtrPTI7bD0yNTQ4O2Jy
ZWFrfWRve2lmKGY+Pj4wPDEyOCl7Yj1jW2g+PjJdfDA7aWYoKGotYnwwKTwxKXtrPTE7bD0yNTQ0
O2JyZWFrIEwyOTEyfWNbaD4+Ml09YisxO2FbYl09ZiYyNTV9ZWxzZXtpZihmPj4+MDwyMDQ4KXti
PWNbaD4+Ml18MDtpZigoai1ifDApPDIpe2s9MTtsPTI1NDc7YnJlYWsgTDI5MTJ9Y1toPj4yXT1i
KzE7YVtiXT0oZj4+PjZ8MTkyKSYyNTU7Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0oZiY2
M3wxMjgpJjI1NTticmVha31iPWNbaD4+Ml18MDttPWotYnwwO2lmKGY+Pj4wPDY1NTM2KXtpZigo
bXwwKTwzKXtrPTE7bD0yNTQ5O2JyZWFrIEwyOTEyfWNbaD4+Ml09YisxO2FbYl09KGY+Pj4xMnwy
MjQpJjI1NTtuPWNbaD4+Ml18MDtjW2g+PjJdPW4rMTthW25dPShmPj4+NiY2M3wxMjgpJjI1NTtu
PWNbaD4+Ml18MDtjW2g+PjJdPW4rMTthW25dPShmJjYzfDEyOCkmMjU1O2JyZWFrfWVsc2V7aWYo
KG18MCk8NCl7az0xO2w9MjU0MjticmVhayBMMjkxMn1jW2g+PjJdPWIrMTthW2JdPShmPj4+MTh8
MjQwKSYyNTU7Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjEyJjYzfDEyOCkmMjU1
O2I9Y1toPj4yXXwwO2NbaD4+Ml09YisxO2FbYl09KGY+Pj42JjYzfDEyOCkmMjU1O2I9Y1toPj4y
XXwwO2NbaD4+Ml09YisxO2FbYl09KGYmNjN8MTI4KSYyNTU7YnJlYWt9fX13aGlsZSgwKTtmPShj
W2U+PjJdfDApKzR8MDtjW2U+PjJdPWY7aWYoZj4+PjA8ZD4+PjApe2c9Zn1lbHNle2s9MDtsPTI1
NDM7YnJlYWt9fWlmKChsfDApPT0yNTQzKXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8MCk9PTI1NDIp
e3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0NCl7cmV0dXJuIGt8MH1lbHNlIGlmKChsfDAp
PT0yNTQ4KXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8MCk9PTI1NDkpe3JldHVybiBrfDB9ZWxzZSBp
ZigobHwwKT09MjU0Nyl7cmV0dXJuIGt8MH1yZXR1cm4gMH1mdW5jdGlvbiBqeChiLGUsZixnLGgs
aSxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO3Zh
ciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7Y1tmPj4yXT1iO2NbaT4+
Ml09ZztnPWNbZj4+Ml18MDtkb3tpZigoayY0fDApPT0wKXtsPWd9ZWxzZXtpZigoZS1nfDApPD0y
KXtsPWc7YnJlYWt9aWYoKGFbZ118MCkhPS0xNyl7bD1nO2JyZWFrfWlmKChhW2crMXwwXXwwKSE9
LTY5KXtsPWc7YnJlYWt9aWYoKGFbZysyfDBdfDApIT0tNjUpe2w9ZzticmVha31iPWcrM3wwO2Nb
Zj4+Ml09YjtsPWJ9fXdoaWxlKDApO0wyOTQ0OmRve2lmKGw+Pj4wPGU+Pj4wKXtnPWU7az1jW2k+
PjJdfDA7Yj1sO0wyOTQ2OndoaWxlKDEpe2lmKGs+Pj4wPj1oPj4+MCl7bT1iO2JyZWFrIEwyOTQ0
fW49YVtiXXwwO289biYyNTU7ZG97aWYobjw8MjQ+PjI0Pi0xKXtpZihvPj4+MD5qPj4+MCl7cD0y
O3E9MjYwOTticmVhayBMMjk0Nn1jW2s+PjJdPW87Y1tmPj4yXT0oY1tmPj4yXXwwKSsxfWVsc2V7
aWYoKG4mMjU1KTwxOTQpe3A9MjtxPTI2MDI7YnJlYWsgTDI5NDZ9aWYoKG4mMjU1KTwyMjQpe2lm
KChnLWJ8MCk8Mil7cD0xO3E9MjYwNTticmVhayBMMjk0Nn1yPWRbYisxfDBdfDA7aWYoKHImMTky
fDApIT0xMjgpe3A9MjtxPTI1OTg7YnJlYWsgTDI5NDZ9cz1yJjYzfG88PDYmMTk4NDtpZihzPj4+
MD5qPj4+MCl7cD0yO3E9MjYwNDticmVhayBMMjk0Nn1jW2s+PjJdPXM7Y1tmPj4yXT0oY1tmPj4y
XXwwKSsyO2JyZWFrfWlmKChuJjI1NSk8MjQwKXtpZigoZy1ifDApPDMpe3A9MTtxPTI2MDY7YnJl
YWsgTDI5NDZ9cz1hW2IrMXwwXXwwO3N3aXRjaChvfDApe2Nhc2UgMjI0OntpZigocyYtMzIpPDwy
ND4+MjQhPS05Nil7cD0yO3E9MjU5MTticmVhayBMMjk0Nn1icmVha307Y2FzZSAyMzc6e2lmKChz
Ji0zMik8PDI0Pj4yNCE9LTEyOCl7cD0yO3E9MjU5MzticmVhayBMMjk0Nn1icmVha307ZGVmYXVs
dDp7aWYoKHMmLTY0KTw8MjQ+PjI0IT0tMTI4KXtwPTI7cT0yNjAzO2JyZWFrIEwyOTQ2fX19cj1k
W2IrMnwwXXwwO2lmKChyJjE5MnwwKSE9MTI4KXtwPTI7cT0yNTk0O2JyZWFrIEwyOTQ2fXQ9KHMm
MjU1KTw8NiY0MDMyfG88PDEyJjYxNDQwfHImNjM7aWYodD4+PjA+aj4+PjApe3A9MjtxPTI1OTI7
YnJlYWsgTDI5NDZ9Y1trPj4yXT10O2NbZj4+Ml09KGNbZj4+Ml18MCkrMzticmVha31pZigobiYy
NTUpPj0yNDUpe3A9MjtxPTI2MDc7YnJlYWsgTDI5NDZ9aWYoKGctYnwwKTw0KXtwPTE7cT0yNjA4
O2JyZWFrIEwyOTQ2fXQ9YVtiKzF8MF18MDtzd2l0Y2gob3wwKXtjYXNlIDI0MDp7aWYoKHQrMTEy
JjI1NSk+PTQ4KXtwPTI7cT0yNTkwO2JyZWFrIEwyOTQ2fWJyZWFrfTtjYXNlIDI0NDp7aWYoKHQm
LTE2KTw8MjQ+PjI0IT0tMTI4KXtwPTI7cT0yNTk2O2JyZWFrIEwyOTQ2fWJyZWFrfTtkZWZhdWx0
OntpZigodCYtNjQpPDwyND4+MjQhPS0xMjgpe3A9MjtxPTI1OTc7YnJlYWsgTDI5NDZ9fX1yPWRb
YisyfDBdfDA7aWYoKHImMTkyfDApIT0xMjgpe3A9MjtxPTI1OTk7YnJlYWsgTDI5NDZ9cz1kW2Ir
M3wwXXwwO2lmKChzJjE5MnwwKSE9MTI4KXtwPTI7cT0yNjAxO2JyZWFrIEwyOTQ2fXU9KHQmMjU1
KTw8MTImMjU4MDQ4fG88PDE4JjE4MzUwMDh8cjw8NiY0MDMyfHMmNjM7aWYodT4+PjA+aj4+PjAp
e3A9MjtxPTI2MDA7YnJlYWsgTDI5NDZ9Y1trPj4yXT11O2NbZj4+Ml09KGNbZj4+Ml18MCkrNH19
d2hpbGUoMCk7bz0oY1tpPj4yXXwwKSs0fDA7Y1tpPj4yXT1vO249Y1tmPj4yXXwwO2lmKG4+Pj4w
PGU+Pj4wKXtrPW87Yj1ufWVsc2V7bT1uO2JyZWFrIEwyOTQ0fX1pZigocXwwKT09MjU5Nyl7cmV0
dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTk4KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1
OTkpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwMCl7cmV0dXJuIHB8MH1lbHNlIGlmKChx
fDApPT0yNTkzKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTQpe3JldHVybiBwfDB9ZWxz
ZSBpZigocXwwKT09MjU5Nil7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA1KXtyZXR1cm4g
cHwwfWVsc2UgaWYoKHF8MCk9PTI2MDYpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwNyl7
cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA4KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9
PTI2MDkpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5MCl7cmV0dXJuIHB8MH1lbHNlIGlm
KChxfDApPT0yNTkxKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTIpe3JldHVybiBwfDB9
ZWxzZSBpZigocXwwKT09MjYwMSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjAyKXtyZXR1
cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDMpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYw
NCl7cmV0dXJuIHB8MH19ZWxzZXttPWx9fXdoaWxlKDApO3A9bT4+PjA8ZT4+PjB8MDtyZXR1cm4g
cHwwfWZ1bmN0aW9uIGp5KGIsYyxlLGYsZyl7Yj1ifDA7Yz1jfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTA7ZG97aWYoKGcmNHwwKT09MCl7aD1ifWVsc2V7aWYoKGMtYnwwKTw9Mil7aD1iO2JyZWFrfWlm
KChhW2JdfDApIT0tMTcpe2g9YjticmVha31pZigoYVtiKzF8MF18MCkhPS02OSl7aD1iO2JyZWFr
fWg9KGFbYisyfDBdfDApPT0tNjU/YiszfDA6Yn19d2hpbGUoMCk7TDMwMTE6ZG97aWYoaD4+PjA8
Yz4+PjAmKGV8MCkhPTApe2c9YztpPTE7aj1oO0wzMDEzOndoaWxlKDEpe2s9YVtqXXwwO2w9ayYy
NTU7ZG97aWYoazw8MjQ+PjI0Pi0xKXtpZihsPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwzMDExfW49
aisxfDB9ZWxzZXtpZigoayYyNTUpPDE5NCl7bT1qO2JyZWFrIEwzMDExfWlmKChrJjI1NSk8MjI0
KXtpZigoZy1qfDApPDIpe209ajticmVhayBMMzAxMX1vPWRbaisxfDBdfDA7aWYoKG8mMTkyfDAp
IT0xMjgpe209ajticmVhayBMMzAxMX1pZigobyY2M3xsPDw2JjE5ODQpPj4+MD5mPj4+MCl7bT1q
O2JyZWFrIEwzMDExfW49aisyfDA7YnJlYWt9aWYoKGsmMjU1KTwyNDApe3A9ajtpZigoZy1wfDAp
PDMpe209ajticmVhayBMMzAxMX1vPWFbaisxfDBdfDA7c3dpdGNoKGx8MCl7Y2FzZSAyMjQ6e2lm
KChvJi0zMik8PDI0Pj4yNCE9LTk2KXtxPTI2MzA7YnJlYWsgTDMwMTN9YnJlYWt9O2Nhc2UgMjM3
OntpZigobyYtMzIpPDwyND4+MjQhPS0xMjgpe3E9MjYzMjticmVhayBMMzAxM31icmVha307ZGVm
YXVsdDp7aWYoKG8mLTY0KTw8MjQ+PjI0IT0tMTI4KXtxPTI2MzQ7YnJlYWsgTDMwMTN9fX1yPWRb
aisyfDBdfDA7aWYoKHImMTkyfDApIT0xMjgpe209ajticmVhayBMMzAxMX1pZigoKG8mMjU1KTw8
NiY0MDMyfGw8PDEyJjYxNDQwfHImNjMpPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwzMDExfW49aisz
fDA7YnJlYWt9aWYoKGsmMjU1KT49MjQ1KXttPWo7YnJlYWsgTDMwMTF9cz1qO2lmKChnLXN8MCk8
NCl7bT1qO2JyZWFrIEwzMDExfXI9YVtqKzF8MF18MDtzd2l0Y2gobHwwKXtjYXNlIDI0MDp7aWYo
KHIrMTEyJjI1NSk+PTQ4KXtxPTI2NDI7YnJlYWsgTDMwMTN9YnJlYWt9O2Nhc2UgMjQ0OntpZigo
ciYtMTYpPDwyND4+MjQhPS0xMjgpe3E9MjY0NDticmVhayBMMzAxM31icmVha307ZGVmYXVsdDp7
aWYoKHImLTY0KTw8MjQ+PjI0IT0tMTI4KXtxPTI2NDY7YnJlYWsgTDMwMTN9fX1vPWRbaisyfDBd
fDA7aWYoKG8mMTkyfDApIT0xMjgpe209ajticmVhayBMMzAxMX10PWRbaiszfDBdfDA7aWYoKHQm
MTkyfDApIT0xMjgpe209ajticmVhayBMMzAxMX1pZigoKHImMjU1KTw8MTImMjU4MDQ4fGw8PDE4
JjE4MzUwMDh8bzw8NiY0MDMyfHQmNjMpPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwzMDExfW49ais0
fDB9fXdoaWxlKDApO2lmKCEobj4+PjA8Yz4+PjAmaT4+PjA8ZT4+PjApKXttPW47YnJlYWsgTDMw
MTF9aT1pKzF8MDtqPW59aWYoKHF8MCk9PTI2NDQpe3U9cy1ifDA7cmV0dXJuIHV8MH1lbHNlIGlm
KChxfDApPT0yNjQyKXt1PXMtYnwwO3JldHVybiB1fDB9ZWxzZSBpZigocXwwKT09MjYzMCl7dT1w
LWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYoKHF8MCk9PTI2MzIpe3U9cC1ifDA7cmV0dXJuIHV8MH1l
bHNlIGlmKChxfDApPT0yNjM0KXt1PXAtYnwwO3JldHVybiB1fDB9ZWxzZSBpZigocXwwKT09MjY0
Nil7dT1zLWJ8MDtyZXR1cm4gdXwwfX1lbHNle209aH19d2hpbGUoMCk7dT1tLWJ8MDtyZXR1cm4g
dXwwfWZ1bmN0aW9uIGp6KGIpe2I9YnwwO3JldHVybiBhW2IrOHwwXXwwfWZ1bmN0aW9uIGpBKGEp
e2E9YXwwO3JldHVybiBjW2ErOD4+Ml18MH1mdW5jdGlvbiBqQihiKXtiPWJ8MDtyZXR1cm4gYVti
Kzl8MF18MH1mdW5jdGlvbiBqQyhhKXthPWF8MDtyZXR1cm4gY1thKzEyPj4yXXwwfWZ1bmN0aW9u
IGpEKGEsYixkLGUsZixnLGgsail7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTA7Yj1pO2k9aSsxNnwwO2E9YnwwO2s9Yis4fDA7Y1thPj4y
XT1kO2Nbaz4+Ml09ZztsPWp4KGQsZSxhLGcsaCxrLDExMTQxMTEsMCl8MDtjW2Y+PjJdPWQrKChj
W2E+PjJdfDApLWQpO2Nbaj4+Ml09ZysoKGNbaz4+Ml18MCktZz4+Mjw8Mik7aT1iO3JldHVybiBs
fDB9ZnVuY3Rpb24gakUoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDty
ZXR1cm4gankoYyxkLGUsMTExNDExMSwwKXwwfWZ1bmN0aW9uIGpGKGEpe2E9YXwwO2RlKGF8MCk7
a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGpHKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1
bmN0aW9uIGpIKGEpe2E9YXwwO2NbYT4+Ml09MzAzMjtkUChhKzEyfDApO2RlKGF8MCk7a1MoYSk7
cmV0dXJufWZ1bmN0aW9uIGpJKGEpe2E9YXwwO2NbYT4+Ml09MzAzMjtkUChhKzEyfDApO2RlKGF8
MCk7cmV0dXJufWZ1bmN0aW9uIGpKKGEpe2E9YXwwO2NbYT4+Ml09Mjk4NDtkUChhKzE2fDApO2Rl
KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGpLKGEpe2E9YXwwO2NbYT4+Ml09Mjk4NDtkUChh
KzE2fDApO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGpMKGEsYil7YT1hfDA7Yj1ifDA7ZFkoYSxi
KzEyfDApO3JldHVybn1mdW5jdGlvbiBqTShhLGIpe2E9YXwwO2I9YnwwO2RZKGEsYisxNnwwKTty
ZXR1cm59ZnVuY3Rpb24gak4oYSxiKXthPWF8MDtiPWJ8MDtkWihhLDEyODgsNCk7cmV0dXJufWZ1
bmN0aW9uIGpPKGEsYil7YT1hfDA7Yj1ifDA7ZXgoYSwxMjY0LGttKDEyNjQpfDApO3JldHVybn1m
dW5jdGlvbiBqUChhLGIpe2E9YXwwO2I9YnwwO2RaKGEsMTI1Niw1KTtyZXR1cm59ZnVuY3Rpb24g
alEoYSxiKXthPWF8MDtiPWJ8MDtleChhLDEyMzIsa20oMTIzMil8MCk7cmV0dXJufWZ1bmN0aW9u
IGpSKGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYzNTJdfDApIT0wKXtkPWNbMzcwMl18MDtyZXR1
cm4gZHwwfWlmKChiYygxNjM1Mil8MCk9PTApe2Q9Y1szNzAyXXwwO3JldHVybiBkfDB9ZG97aWYo
KGFbMTYyMzJdfDApPT0wKXtpZigoYmMoMTYyMzIpfDApPT0wKXticmVha31rJCgxMTM0NCwwLDE2
OCk7YSQoMjY2LDAsdXwwKXwwfX13aGlsZSgwKTtkUSgxMTM0NCwxNTM2KXwwO2RRKDExMzU2LDE1
MjgpfDA7ZFEoMTEzNjgsMTUyMCl8MDtkUSgxMTM4MCwxNTA0KXwwO2RRKDExMzkyLDE0ODgpfDA7
ZFEoMTE0MDQsMTQ4MCl8MDtkUSgxMTQxNiwxNDY0KXwwO2RRKDExNDI4LDE0NTYpfDA7ZFEoMTE0
NDAsMTQ0OCl8MDtkUSgxMTQ1MiwxNDQwKXwwO2RRKDExNDY0LDE0MzIpfDA7ZFEoMTE0NzYsMTQw
MCl8MDtkUSgxMTQ4OCwxMzkyKXwwO2RRKDExNTAwLDEzODQpfDA7Y1szNzAyXT0xMTM0NDtkPWNb
MzcwMl18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpTKGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYy
OTZdfDApIT0wKXtkPWNbMzY4MF18MDtyZXR1cm4gZHwwfWlmKChiYygxNjI5Nil8MCk9PTApe2Q9
Y1szNjgwXXwwO3JldHVybiBkfDB9ZG97aWYoKGFbMTYyMDhdfDApPT0wKXtpZigoYmMoMTYyMDgp
fDApPT0wKXticmVha31rJCgxMDYwMCwwLDE2OCk7YSQoMTQ4LDAsdXwwKXwwfX13aGlsZSgwKTtl
ZigxMDYwMCwxOTEyKXwwO2VmKDEwNjEyLDE4ODApfDA7ZWYoMTA2MjQsMTg0OCl8MDtlZigxMDYz
NiwxODA4KXwwO2VmKDEwNjQ4LDE3NjgpfDA7ZWYoMTA2NjAsMTczNil8MDtlZigxMDY3MiwxNjk2
KXwwO2VmKDEwNjg0LDE2ODApfDA7ZWYoMTA2OTYsMTYyNCl8MDtlZigxMDcwOCwxNjA4KXwwO2Vm
KDEwNzIwLDE1OTIpfDA7ZWYoMTA3MzIsMTU3Nil8MDtlZigxMDc0NCwxNTYwKXwwO2VmKDEwNzU2
LDE1NDQpfDA7Y1szNjgwXT0xMDYwMDtkPWNbMzY4MF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpU
KGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYzNDRdfDApIT0wKXtkPWNbMzcwMF18MDtyZXR1cm4g
ZHwwfWlmKChiYygxNjM0NCl8MCk9PTApe2Q9Y1szNzAwXXwwO3JldHVybiBkfDB9ZG97aWYoKGFb
MTYyMjRdfDApPT0wKXtpZigoYmMoMTYyMjQpfDApPT0wKXticmVha31rJCgxMTA1NiwwLDI4OCk7
YSQoMTcwLDAsdXwwKXwwfX13aGlsZSgwKTtkUSgxMTA1NiwyODgpfDA7ZFEoMTEwNjgsMjcyKXww
O2RRKDExMDgwLDI2NCl8MDtkUSgxMTA5MiwyNTYpfDA7ZFEoMTExMDQsMjQ4KXwwO2RRKDExMTE2
LDI0MCl8MDtkUSgxMTEyOCwyMzIpfDA7ZFEoMTExNDAsMjI0KXwwO2RRKDExMTUyLDE2OCl8MDtk
USgxMTE2NCwxNjApfDA7ZFEoMTExNzYsMTQ0KXwwO2RRKDExMTg4LDEyOCl8MDtkUSgxMTIwMCwx
MjApfDA7ZFEoMTEyMTIsMTEyKXwwO2RRKDExMjI0LDEwNCl8MDtkUSgxMTIzNiw5Nil8MDtkUSgx
MTI0OCwyNDgpfDA7ZFEoMTEyNjAsODgpfDA7ZFEoMTEyNzIsODApfDA7ZFEoMTEyODQsMTk3Nil8
MDtkUSgxMTI5NiwxOTY4KXwwO2RRKDExMzA4LDE5NjApfDA7ZFEoMTEzMjAsMTk1Mil8MDtkUSgx
MTMzMiwxOTQ0KXwwO2NbMzcwMF09MTEwNTY7ZD1jWzM3MDBdfDA7cmV0dXJuIGR8MH1mdW5jdGlv
biBqVShiKXtiPWJ8MDt2YXIgZD0wO2lmKChhWzE2Mjg4XXwwKSE9MCl7ZD1jWzM2NzhdfDA7cmV0
dXJuIGR8MH1pZigoYmMoMTYyODgpfDApPT0wKXtkPWNbMzY3OF18MDtyZXR1cm4gZHwwfWRve2lm
KChhWzE2MjAwXXwwKT09MCl7aWYoKGJjKDE2MjAwKXwwKT09MCl7YnJlYWt9ayQoMTAzMTIsMCwy
ODgpO2EkKDEyMiwwLHV8MCl8MH19d2hpbGUoMCk7ZWYoMTAzMTIsODI0KXwwO2VmKDEwMzI0LDc4
NCl8MDtlZigxMDMzNiw3NjApfDA7ZWYoMTAzNDgsNzM2KXwwO2VmKDEwMzYwLDQyNCl8MDtlZigx
MDM3Miw3MTIpfDA7ZWYoMTAzODQsNjg4KXwwO2VmKDEwMzk2LDY1Nil8MDtlZigxMDQwOCw2MTYp
fDA7ZWYoMTA0MjAsNTg0KXwwO2VmKDEwNDMyLDU0NCl8MDtlZigxMDQ0NCw1MDQpfDA7ZWYoMTA0
NTYsNDg4KXwwO2VmKDEwNDY4LDQ3Mil8MDtlZigxMDQ4MCw0NTYpfDA7ZWYoMTA0OTIsNDQwKXww
O2VmKDEwNTA0LDQyNCl8MDtlZigxMDUxNiw0MDgpfDA7ZWYoMTA1MjgsMzkyKXwwO2VmKDEwNTQw
LDM3Nil8MDtlZigxMDU1MiwzNDQpfDA7ZWYoMTA1NjQsMzI4KXwwO2VmKDEwNTc2LDMxMil8MDtl
ZigxMDU4OCwyOTYpfDA7Y1szNjc4XT0xMDMxMjtkPWNbMzY3OF18MDtyZXR1cm4gZHwwfWZ1bmN0
aW9uIGpWKGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYzNjBdfDApIT0wKXtkPWNbMzcwNF18MDty
ZXR1cm4gZHwwfWlmKChiYygxNjM2MCl8MCk9PTApe2Q9Y1szNzA0XXwwO3JldHVybiBkfDB9ZG97
aWYoKGFbMTYyNDBdfDApPT0wKXtpZigoYmMoMTYyNDApfDApPT0wKXticmVha31rJCgxMTUxMiww
LDI4OCk7YSQoMTIwLDAsdXwwKXwwfX13aGlsZSgwKTtkUSgxMTUxMiw4NjQpfDA7ZFEoMTE1MjQs
ODU2KXwwO2NbMzcwNF09MTE1MTI7ZD1jWzM3MDRdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBqVyhi
KXtiPWJ8MDt2YXIgZD0wO2lmKChhWzE2MzA0XXwwKSE9MCl7ZD1jWzM2ODJdfDA7cmV0dXJuIGR8
MH1pZigoYmMoMTYzMDQpfDApPT0wKXtkPWNbMzY4Ml18MDtyZXR1cm4gZHwwfWRve2lmKChhWzE2
MjE2XXwwKT09MCl7aWYoKGJjKDE2MjE2KXwwKT09MCl7YnJlYWt9ayQoMTA3NjgsMCwyODgpO2Ek
KDI0MCwwLHV8MCl8MH19d2hpbGUoMCk7ZWYoMTA3NjgsODg4KXwwO2VmKDEwNzgwLDg3Mil8MDtj
WzM2ODJdPTEwNzY4O2Q9Y1szNjgyXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galgoYil7Yj1ifDA7
aWYoKGFbMTYzNjhdfDApIT0wKXtyZXR1cm4gMTQ4MjR9aWYoKGJjKDE2MzY4KXwwKT09MCl7cmV0
dXJuIDE0ODI0fWRaKDE0ODI0LDEyMTYsOCk7YSQoMjU4LDE0ODI0LHV8MCl8MDtyZXR1cm4gMTQ4
MjR9ZnVuY3Rpb24galkoYil7Yj1ifDA7aWYoKGFbMTYzMTJdfDApIT0wKXtyZXR1cm4gMTQ3MzZ9
aWYoKGJjKDE2MzEyKXwwKT09MCl7cmV0dXJuIDE0NzM2fWV4KDE0NzM2LDExNzYsa20oMTE3Nil8
MCk7YSQoMTkyLDE0NzM2LHV8MCl8MDtyZXR1cm4gMTQ3MzZ9ZnVuY3Rpb24galooYil7Yj1ifDA7
aWYoKGFbMTYzOTJdfDApIT0wKXtyZXR1cm4gMTQ4NzJ9aWYoKGJjKDE2MzkyKXwwKT09MCl7cmV0
dXJuIDE0ODcyfWRaKDE0ODcyLDExNDQsOCk7YSQoMjU4LDE0ODcyLHV8MCl8MDtyZXR1cm4gMTQ4
NzJ9ZnVuY3Rpb24gal8oYil7Yj1ifDA7aWYoKGFbMTYzMzZdfDApIT0wKXtyZXR1cm4gMTQ3ODR9
aWYoKGJjKDE2MzM2KXwwKT09MCl7cmV0dXJuIDE0Nzg0fWV4KDE0Nzg0LDExMDQsa20oMTEwNCl8
MCk7YSQoMTkyLDE0Nzg0LHV8MCl8MDtyZXR1cm4gMTQ3ODR9ZnVuY3Rpb24gaiQoYil7Yj1ifDA7
aWYoKGFbMTYzODRdfDApIT0wKXtyZXR1cm4gMTQ4NTZ9aWYoKGJjKDE2Mzg0KXwwKT09MCl7cmV0
dXJuIDE0ODU2fWRaKDE0ODU2LDEwODAsMjApO2EkKDI1OCwxNDg1Nix1fDApfDA7cmV0dXJuIDE0
ODU2fWZ1bmN0aW9uIGowKGIpe2I9YnwwO2lmKChhWzE2MzI4XXwwKSE9MCl7cmV0dXJuIDE0NzY4
fWlmKChiYygxNjMyOCl8MCk9PTApe3JldHVybiAxNDc2OH1leCgxNDc2OCw5OTIsa20oOTkyKXww
KTthJCgxOTIsMTQ3NjgsdXwwKXwwO3JldHVybiAxNDc2OH1mdW5jdGlvbiBqMShiKXtiPWJ8MDtp
ZigoYVsxNjM3Nl18MCkhPTApe3JldHVybiAxNDg0MH1pZigoYmMoMTYzNzYpfDApPT0wKXtyZXR1
cm4gMTQ4NDB9ZFooMTQ4NDAsOTc2LDExKTthJCgyNTgsMTQ4NDAsdXwwKXwwO3JldHVybiAxNDg0
MH1mdW5jdGlvbiBqMihiKXtiPWJ8MDtpZigoYVsxNjMyMF18MCkhPTApe3JldHVybiAxNDc1Mn1p
ZigoYmMoMTYzMjApfDApPT0wKXtyZXR1cm4gMTQ3NTJ9ZXgoMTQ3NTIsOTI4LGttKDkyOCl8MCk7
YSQoMTkyLDE0NzUyLHV8MCl8MDtyZXR1cm4gMTQ3NTJ9ZnVuY3Rpb24gajMoYSl7YT1hfDA7dmFy
IGI9MCxkPTAsZT0wLGY9MDtiPWErNHwwO2Q9KGNbYT4+Ml18MCkrKGNbYis0Pj4yXXwwKXwwO2E9
ZDtlPWNbYj4+Ml18MDtpZigoZSYxfDApPT0wKXtmPWU7YllbZiY1MTFdKGEpO3JldHVybn1lbHNl
e2Y9Y1soY1tkPj4yXXwwKSsoZS0xKT4+Ml18MDtiWVtmJjUxMV0oYSk7cmV0dXJufX1mdW5jdGlv
biBqNChhKXthPWF8MDtlZSgxMTA0NCk7ZWUoMTEwMzIpO2VlKDExMDIwKTtlZSgxMTAwOCk7ZWUo
MTA5OTYpO2VlKDEwOTg0KTtlZSgxMDk3Mik7ZWUoMTA5NjApO2VlKDEwOTQ4KTtlZSgxMDkzNik7
ZWUoMTA5MjQpO2VlKDEwOTEyKTtlZSgxMDkwMCk7ZWUoMTA4ODgpO2VlKDEwODc2KTtlZSgxMDg2
NCk7ZWUoMTA4NTIpO2VlKDEwODQwKTtlZSgxMDgyOCk7ZWUoMTA4MTYpO2VlKDEwODA0KTtlZSgx
MDc5Mik7ZWUoMTA3ODApO2VlKDEwNzY4KTtyZXR1cm59ZnVuY3Rpb24gajUoYixkKXtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MDtlPWIrOHwwO2Y9Yis0fDA7Zz1jW2Y+PjJdfDA7aD1jW2U+PjJdfDA7aT1nO2lmKGgt
aT4+Mj4+PjA+PWQ+Pj4wKXtqPWQ7az1nO2Rve2lmKChrfDApPT0wKXtsPTB9ZWxzZXtjW2s+PjJd
PTA7bD1jW2Y+PjJdfDB9az1sKzR8MDtjW2Y+PjJdPWs7aj1qLTF8MDt9d2hpbGUoKGp8MCkhPTAp
O3JldHVybn1qPWIrMTZ8MDtrPWJ8MDtsPWNbaz4+Ml18MDtnPWktbD4+MjtpPWcrZHwwO2lmKGk+
Pj4wPjEwNzM3NDE4MjMpe2lyKDApfW09aC1sfDA7ZG97aWYobT4+Mj4+PjA+NTM2ODcwOTEwKXtu
PTEwNzM3NDE4MjM7bz0yOTE5fWVsc2V7bD1tPj4xO2g9bD4+PjA8aT4+PjA/aTpsO2lmKChofDAp
PT0wKXtwPTA7cT0wO2JyZWFrfWw9YisxMjh8MDtpZighKChhW2xdJjEpPT0wJmg+Pj4wPDI5KSl7
bj1oO289MjkxOTticmVha31hW2xdPTE7cD1qO3E9aH19d2hpbGUoMCk7aWYoKG98MCk9PTI5MTkp
e3A9a08objw8Mil8MDtxPW59bj1kO2Q9cCsoZzw8Mil8MDtkb3tpZigoZHwwKT09MCl7cj0wfWVs
c2V7Y1tkPj4yXT0wO3I9ZH1kPXIrNHwwO249bi0xfDA7fXdoaWxlKChufDApIT0wKTtuPXArKHE8
PDIpfDA7cT1jW2s+PjJdfDA7cj0oY1tmPj4yXXwwKS1xfDA7bz1wKyhnLShyPj4yKTw8Mil8MDtn
PW87cD1xO2tZKGd8MCxwfDAscil8MDtjW2s+PjJdPW87Y1tmPj4yXT1kO2NbZT4+Ml09bjtpZigo
cXwwKT09MCl7cmV0dXJufWlmKChxfDApPT0oanwwKSl7YVtiKzEyOHwwXT0wO3JldHVybn1lbHNl
e2tTKHApO3JldHVybn19ZnVuY3Rpb24gajYoYSl7YT1hfDA7ZFAoMTE3ODgpO2RQKDExNzc2KTtk
UCgxMTc2NCk7ZFAoMTE3NTIpO2RQKDExNzQwKTtkUCgxMTcyOCk7ZFAoMTE3MTYpO2RQKDExNzA0
KTtkUCgxMTY5Mik7ZFAoMTE2ODApO2RQKDExNjY4KTtkUCgxMTY1Nik7ZFAoMTE2NDQpO2RQKDEx
NjMyKTtkUCgxMTYyMCk7ZFAoMTE2MDgpO2RQKDExNTk2KTtkUCgxMTU4NCk7ZFAoMTE1NzIpO2RQ
KDExNTYwKTtkUCgxMTU0OCk7ZFAoMTE1MzYpO2RQKDExNTI0KTtkUCgxMTUxMik7cmV0dXJufWZ1
bmN0aW9uIGo3KGEpe2E9YXwwO2VlKDEwNTg4KTtlZSgxMDU3Nik7ZWUoMTA1NjQpO2VlKDEwNTUy
KTtlZSgxMDU0MCk7ZWUoMTA1MjgpO2VlKDEwNTE2KTtlZSgxMDUwNCk7ZWUoMTA0OTIpO2VlKDEw
NDgwKTtlZSgxMDQ2OCk7ZWUoMTA0NTYpO2VlKDEwNDQ0KTtlZSgxMDQzMik7ZWUoMTA0MjApO2Vl
KDEwNDA4KTtlZSgxMDM5Nik7ZWUoMTAzODQpO2VlKDEwMzcyKTtlZSgxMDM2MCk7ZWUoMTAzNDgp
O2VlKDEwMzM2KTtlZSgxMDMyNCk7ZWUoMTAzMTIpO3JldHVybn1mdW5jdGlvbiBqOChhKXthPWF8
MDtkUCgxMTMzMik7ZFAoMTEzMjApO2RQKDExMzA4KTtkUCgxMTI5Nik7ZFAoMTEyODQpO2RQKDEx
MjcyKTtkUCgxMTI2MCk7ZFAoMTEyNDgpO2RQKDExMjM2KTtkUCgxMTIyNCk7ZFAoMTEyMTIpO2RQ
KDExMjAwKTtkUCgxMTE4OCk7ZFAoMTExNzYpO2RQKDExMTY0KTtkUCgxMTE1Mik7ZFAoMTExNDAp
O2RQKDExMTI4KTtkUCgxMTExNik7ZFAoMTExMDQpO2RQKDExMDkyKTtkUCgxMTA4MCk7ZFAoMTEw
NjgpO2RQKDExMDU2KTtyZXR1cm59ZnVuY3Rpb24gajkoYSl7YT1hfDA7ZWUoMTA3NTYpO2VlKDEw
NzQ0KTtlZSgxMDczMik7ZWUoMTA3MjApO2VlKDEwNzA4KTtlZSgxMDY5Nik7ZWUoMTA2ODQpO2Vl
KDEwNjcyKTtlZSgxMDY2MCk7ZWUoMTA2NDgpO2VlKDEwNjM2KTtlZSgxMDYyNCk7ZWUoMTA2MTIp
O2VlKDEwNjAwKTtyZXR1cm59ZnVuY3Rpb24ga2EoYSl7YT1hfDA7ZFAoMTE1MDApO2RQKDExNDg4
KTtkUCgxMTQ3Nik7ZFAoMTE0NjQpO2RQKDExNDUyKTtkUCgxMTQ0MCk7ZFAoMTE0MjgpO2RQKDEx
NDE2KTtkUCgxMTQwNCk7ZFAoMTEzOTIpO2RQKDExMzgwKTtkUCgxMTM2OCk7ZFAoMTEzNTYpO2RQ
KDExMzQ0KTtyZXR1cm59ZnVuY3Rpb24ga2IoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO3JldHVy
biBrYygwLGEsYiwoY3wwKSE9MD9jOjk4MzIpfDB9ZnVuY3Rpb24ga2MoYixkLGUsZil7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAsdD0wLHU9MCx2PTAsdz0wO2c9aTtpPWkrOHwwO2g9Z3wwO2NbaD4+Ml09YjtqPSgo
ZnwwKT09MD85ODI0OmYpfDA7Zj1jW2o+PjJdfDA7TDc6ZG97aWYoKGR8MCk9PTApe2lmKChmfDAp
PT0wKXtrPTB9ZWxzZXticmVha31pPWc7cmV0dXJuIGt8MH1lbHNle2lmKChifDApPT0wKXtsPWg7
Y1toPj4yXT1sO209bH1lbHNle209Yn1pZigoZXwwKT09MCl7az0tMjtpPWc7cmV0dXJuIGt8MH1k
b3tpZigoZnwwKT09MCl7bD1hW2RdfDA7bj1sJjI1NTtpZihsPDwyND4+MjQ+LTEpe2NbbT4+Ml09
bjtrPWw8PDI0Pj4yNCE9MHwwO2k9ZztyZXR1cm4ga3wwfWVsc2V7bD1uLTE5NHwwO2lmKGw+Pj4w
PjUwKXticmVhayBMN31vPWQrMXwwO3A9Y1tzKyhsPDwyKT4+Ml18MDtxPWUtMXwwO2JyZWFrfX1l
bHNle289ZDtwPWY7cT1lfX13aGlsZSgwKTtMMjU6ZG97aWYoKHF8MCk9PTApe3I9cH1lbHNle2w9
YVtvXXwwO249KGwmMjU1KT4+PjM7aWYoKG4tMTZ8bisocD4+MjYpKT4+PjA+Nyl7YnJlYWsgTDd9
ZWxzZXt0PW87dT1wO3Y9cTt3PWx9d2hpbGUoMSl7dD10KzF8MDt1PSh3JjI1NSktMTI4fHU8PDY7
dj12LTF8MDtpZigodXwwKT49MCl7YnJlYWt9aWYoKHZ8MCk9PTApe3I9dTticmVhayBMMjV9dz1h
W3RdfDA7aWYoKCh3JjI1NSktMTI4fDApPj4+MD42Myl7YnJlYWsgTDd9fWNbaj4+Ml09MDtjW20+
PjJdPXU7az1lLXZ8MDtpPWc7cmV0dXJuIGt8MH19d2hpbGUoMCk7Y1tqPj4yXT1yO2s9LTI7aT1n
O3JldHVybiBrfDB9fXdoaWxlKDApO2Nbaj4+Ml09MDtjWyhidygpfDApPj4yXT0xMzg7az0tMTtp
PWc7cmV0dXJuIGt8MH1mdW5jdGlvbiBrZChhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAs
Rz0wLEg9MCxJPTAsSj0wO2c9aTtpPWkrMTAzMnwwO2g9Z3wwO2o9ZysxMDI0fDA7az1jW2I+PjJd
fDA7Y1tqPj4yXT1rO2w9KGF8MCkhPTA7bT1sP2U6MjU2O2U9bD9hOmh8MDtMMzg6ZG97aWYoKGt8
MCk9PTB8KG18MCk9PTApe249MDtvPWQ7cD1tO3E9ZTtyPWt9ZWxzZXthPWh8MDtzPW07dD1kO3U9
MDt2PWU7dz1rO3doaWxlKDEpe3g9dD4+PjI7eT14Pj4+MD49cz4+PjA7aWYoISh5fHQ+Pj4wPjEz
MSkpe249dTtvPXQ7cD1zO3E9djtyPXc7YnJlYWsgTDM4fXo9eT9zOng7QT10LXp8MDt4PWtlKHYs
aix6LGYpfDA7aWYoKHh8MCk9PS0xKXticmVha31pZigodnwwKT09KGF8MCkpe0I9YTtDPXN9ZWxz
ZXtCPXYrKHg8PDIpfDA7Qz1zLXh8MH16PXgrdXwwO3g9Y1tqPj4yXXwwO2lmKCh4fDApPT0wfChD
fDApPT0wKXtuPXo7bz1BO3A9QztxPUI7cj14O2JyZWFrIEwzOH1lbHNle3M9Qzt0PUE7dT16O3Y9
Qjt3PXh9fW49LTE7bz1BO3A9MDtxPXY7cj1jW2o+PjJdfDB9fXdoaWxlKDApO0w0OTpkb3tpZigo
cnwwKT09MCl7RD1ufWVsc2V7aWYoKHB8MCk9PTB8KG98MCk9PTApe0Q9bjticmVha31lbHNle0U9
cDtGPW87Rz1uO0g9cTtJPXJ9d2hpbGUoMSl7Sj1rYyhILEksRixmKXwwO2lmKChKKzJ8MCk+Pj4w
PDMpe2JyZWFrfUE9KGNbaj4+Ml18MCkrSnwwO2Nbaj4+Ml09QTtCPUUtMXwwO0M9RysxfDA7aWYo
KEJ8MCk9PTB8KEZ8MCk9PShKfDApKXtEPUM7YnJlYWsgTDQ5fWVsc2V7RT1CO0Y9Ri1KfDA7Rz1D
O0g9SCs0fDA7ST1BfX1zd2l0Y2goSnwwKXtjYXNlIDA6e2Nbaj4+Ml09MDtEPUc7YnJlYWsgTDQ5
O2JyZWFrfTtjYXNlLTE6e0Q9LTE7YnJlYWsgTDQ5O2JyZWFrfTtkZWZhdWx0OntjW2Y+PjJdPTA7
RD1HO2JyZWFrIEw0OX19fX13aGlsZSgwKTtpZighbCl7aT1nO3JldHVybiBEfDB9Y1tiPj4yXT1j
W2o+PjJdO2k9ZztyZXR1cm4gRHwwfWZ1bmN0aW9uIGtlKGIsZSxmLGcpe2I9YnwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO3ZhciBoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxW
PTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTA7
aD1jW2U+PjJdfDA7ZG97aWYoKGd8MCk9PTApe2k9NTZ9ZWxzZXtqPWd8MDtrPWNbaj4+Ml18MDtp
Zigoa3wwKT09MCl7aT01NjticmVha31pZigoYnwwKT09MCl7bD1rO209aDtuPWY7aT02NzticmVh
a31jW2o+PjJdPTA7bz1rO3A9aDtxPWI7cj1mO2k9ODd9fXdoaWxlKDApO2lmKChpfDApPT01Nil7
aWYoKGJ8MCk9PTApe3Q9aDt1PWY7aT01OH1lbHNle3Y9aDt3PWI7eD1mO2k9NTd9fUw3MDp3aGls
ZSgxKXtpZigoaXwwKT09ODcpe2k9MDtoPWRbcF18MDtnPWg+Pj4zO2lmKChnLTE2fGcrKG8+PjI2
KSk+Pj4wPjcpe2k9ODg7YnJlYWt9Zz1wKzF8MDt5PWgtMTI4fG88PDY7ZG97aWYoKHl8MCk8MCl7
aD0oZFtnXXwwKS0xMjh8MDtpZihoPj4+MD42Myl7aT05MTticmVhayBMNzB9az1wKzJ8MDt6PWh8
eTw8NjtpZigoenwwKT49MCl7QT16O0I9azticmVha31oPShkW2tdfDApLTEyOHwwO2lmKGg+Pj4w
PjYzKXtpPTk0O2JyZWFrIEw3MH1BPWh8ejw8NjtCPXArM3wwfWVsc2V7QT15O0I9Z319d2hpbGUo
MCk7Y1txPj4yXT1BO3Y9Qjt3PXErNHwwO3g9ci0xfDA7aT01Nztjb250aW51ZX1lbHNlIGlmKChp
fDApPT01OCl7aT0wO2c9YVt0XXwwO2Rve2lmKCgoZyYyNTUpLTF8MCk+Pj4wPDEyNyl7aWYoKHQm
M3wwKSE9MCl7Qz10O0Q9dTtFPWc7YnJlYWt9aD1jW3Q+PjJdfDA7aWYoKChoLTE2ODQzMDA5fGgp
Ji0yMTM5MDYyMTQ0fDApPT0wKXtGPXU7Rz10fWVsc2V7Qz10O0Q9dTtFPWgmMjU1O2JyZWFrfWRv
e0c9Rys0fDA7Rj1GLTR8MDtIPWNbRz4+Ml18MDt9d2hpbGUoKChILTE2ODQzMDA5fEgpJi0yMTM5
MDYyMTQ0fDApPT0wKTtDPUc7RD1GO0U9SCYyNTV9ZWxzZXtDPXQ7RD11O0U9Z319d2hpbGUoMCk7
Zz1FJjI1NTtpZigoZy0xfDApPj4+MDwxMjcpe3Q9QysxfDA7dT1ELTF8MDtpPTU4O2NvbnRpbnVl
fWg9Zy0xOTR8MDtpZihoPj4+MD41MCl7ST1EO0o9YjtLPUM7aT05ODticmVha31sPWNbcysoaDw8
Mik+PjJdfDA7bT1DKzF8MDtuPUQ7aT02Nztjb250aW51ZX1lbHNlIGlmKChpfDApPT01Nyl7aT0w
O2lmKCh4fDApPT0wKXtMPWY7aT0xMDY7YnJlYWt9ZWxzZXtNPXg7Tj13O089dn13aGlsZSgxKXto
PWFbT118MDtkb3tpZigoKGgmMjU1KS0xfDApPj4+MDwxMjcpe2lmKChPJjN8MCk9PTAmTT4+PjA+
Myl7UD1NO1E9TjtSPU99ZWxzZXtTPU87VD1OO1U9TTtWPWg7YnJlYWt9d2hpbGUoMSl7Vz1jW1I+
PjJdfDA7aWYoKChXLTE2ODQzMDA5fFcpJi0yMTM5MDYyMTQ0fDApIT0wKXtpPTgxO2JyZWFrfWNb
UT4+Ml09VyYyNTU7Y1tRKzQ+PjJdPWRbUisxfDBdfDA7Y1tRKzg+PjJdPWRbUisyfDBdfDA7WD1S
KzR8MDtZPVErMTZ8MDtjW1ErMTI+PjJdPWRbUiszfDBdfDA7Wj1QLTR8MDtpZihaPj4+MD4zKXtQ
PVo7UT1ZO1I9WH1lbHNle2k9ODI7YnJlYWt9fWlmKChpfDApPT04MSl7aT0wO1M9UjtUPVE7VT1Q
O1Y9VyYyNTU7YnJlYWt9ZWxzZSBpZigoaXwwKT09ODIpe2k9MDtTPVg7VD1ZO1U9WjtWPWFbWF18
MDticmVha319ZWxzZXtTPU87VD1OO1U9TTtWPWh9fXdoaWxlKDApO189ViYyNTU7aWYoKF8tMXww
KT4+PjA+PTEyNyl7YnJlYWt9Y1tUPj4yXT1fO2g9VS0xfDA7aWYoKGh8MCk9PTApe0w9ZjtpPTEw
NTticmVhayBMNzB9ZWxzZXtNPWg7Tj1UKzR8MDtPPVMrMXwwfX1oPV8tMTk0fDA7aWYoaD4+PjA+
NTApe0k9VTtKPVQ7Sz1TO2k9OTg7YnJlYWt9bz1jW3MrKGg8PDIpPj4yXXwwO3A9UysxfDA7cT1U
O3I9VTtpPTg3O2NvbnRpbnVlfWVsc2UgaWYoKGl8MCk9PTY3KXtpPTA7aD0oZFttXXwwKT4+PjM7
aWYoKGgtMTZ8aCsobD4+MjYpKT4+PjA+Nyl7aT02ODticmVha31oPW0rMXwwO2Rve2lmKChsJjMz
NTU0NDMyfDApPT0wKXskPWh9ZWxzZXtpZigoKGRbaF18MCktMTI4fDApPj4+MD42Myl7aT03MTti
cmVhayBMNzB9Zz1tKzJ8MDtpZigobCY1MjQyODh8MCk9PTApeyQ9ZzticmVha31pZigoKGRbZ118
MCktMTI4fDApPj4+MD42Myl7aT03NDticmVhayBMNzB9JD1tKzN8MH19d2hpbGUoMCk7dD0kO3U9
bi0xfDA7aT01ODtjb250aW51ZX19aWYoKGl8MCk9PTcxKXthYT1sO2FiPW0tMXwwO2FjPWI7YWQ9
bjtpPTk3fWVsc2UgaWYoKGl8MCk9PTc0KXthYT1sO2FiPW0tMXwwO2FjPWI7YWQ9bjtpPTk3fWVs
c2UgaWYoKGl8MCk9PTY4KXthYT1sO2FiPW0tMXwwO2FjPWI7YWQ9bjtpPTk3fWVsc2UgaWYoKGl8
MCk9PTg4KXthYT1vO2FiPXAtMXwwO2FjPXE7YWQ9cjtpPTk3fWVsc2UgaWYoKGl8MCk9PTkxKXth
YT15O2FiPXAtMXwwO2FjPXE7YWQ9cjtpPTk3fWVsc2UgaWYoKGl8MCk9PTk0KXthYT16O2FiPXAt
MXwwO2FjPXE7YWQ9cjtpPTk3fWVsc2UgaWYoKGl8MCk9PTEwNSl7cmV0dXJuIEx8MH1lbHNlIGlm
KChpfDApPT0xMDYpe3JldHVybiBMfDB9aWYoKGl8MCk9PTk3KXtpZigoYWF8MCk9PTApe0k9YWQ7
Sj1hYztLPWFiO2k9OTh9ZWxzZXthZT1hYzthZj1hYn19ZG97aWYoKGl8MCk9PTk4KXtpZigoYVtL
XXwwKSE9MCl7YWU9SjthZj1LO2JyZWFrfWlmKChKfDApIT0wKXtjW0o+PjJdPTA7Y1tlPj4yXT0w
fUw9Zi1JfDA7cmV0dXJuIEx8MH19d2hpbGUoMCk7Y1soYncoKXwwKT4+Ml09MTM4O2lmKChhZXww
KT09MCl7TD0tMTtyZXR1cm4gTHwwfWNbZT4+Ml09YWY7TD0tMTtyZXR1cm4gTHwwfWZ1bmN0aW9u
IGtmKGIsZSxmKXtiPWJ8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAs
bj0wO2c9aTtpPWkrOHwwO2g9Z3wwO2NbaD4+Ml09YjtpZigoZXwwKT09MCl7aj0wO2k9ZztyZXR1
cm4ganwwfWRve2lmKChmfDApIT0wKXtpZigoYnwwKT09MCl7az1oO2NbaD4+Ml09aztsPWt9ZWxz
ZXtsPWJ9az1hW2VdfDA7bT1rJjI1NTtpZihrPDwyND4+MjQ+LTEpe2NbbD4+Ml09bTtqPWs8PDI0
Pj4yNCE9MHwwO2k9ZztyZXR1cm4ganwwfWs9bS0xOTR8MDtpZihrPj4+MD41MCl7YnJlYWt9bT1l
KzF8MDtuPWNbcysoazw8Mik+PjJdfDA7aWYoZj4+PjA8NCl7aWYoKG4mLTIxNDc0ODM2NDg+Pj4o
KChmKjZ8MCktNnwwKT4+PjApfDApIT0wKXticmVha319az1kW21dfDA7bT1rPj4+MztpZigobS0x
NnxtKyhuPj4yNikpPj4+MD43KXticmVha31tPWstMTI4fG48PDY7aWYoKG18MCk+PTApe2NbbD4+
Ml09bTtqPTI7aT1nO3JldHVybiBqfDB9bj0oZFtlKzJ8MF18MCktMTI4fDA7aWYobj4+PjA+NjMp
e2JyZWFrfWs9bnxtPDw2O2lmKChrfDApPj0wKXtjW2w+PjJdPWs7aj0zO2k9ZztyZXR1cm4ganww
fW09KGRbZSszfDBdfDApLTEyOHwwO2lmKG0+Pj4wPjYzKXticmVha31jW2w+PjJdPW18azw8Njtq
PTQ7aT1nO3JldHVybiBqfDB9fXdoaWxlKDApO2NbKGJ3KCl8MCk+PjJdPTEzODtqPS0xO2k9Zzty
ZXR1cm4ganwwfWZ1bmN0aW9uIGtnKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wO2lm
KChifDApPT0wKXtmPTE7cmV0dXJuIGZ8MH1pZihkPj4+MDwxMjgpe2FbYl09ZCYyNTU7Zj0xO3Jl
dHVybiBmfDB9aWYoZD4+PjA8MjA0OCl7YVtiXT0oZD4+PjZ8MTkyKSYyNTU7YVtiKzF8MF09KGQm
NjN8MTI4KSYyNTU7Zj0yO3JldHVybiBmfDB9aWYoZD4+PjA8NTUyOTZ8KGQtNTczNDR8MCk+Pj4w
PDgxOTIpe2FbYl09KGQ+Pj4xMnwyMjQpJjI1NTthW2IrMXwwXT0oZD4+PjYmNjN8MTI4KSYyNTU7
YVtiKzJ8MF09KGQmNjN8MTI4KSYyNTU7Zj0zO3JldHVybiBmfDB9aWYoKGQtNjU1MzZ8MCk+Pj4w
PDEwNDg1NzYpe2FbYl09KGQ+Pj4xOHwyNDApJjI1NTthW2IrMXwwXT0oZD4+PjEyJjYzfDEyOCkm
MjU1O2FbYisyfDBdPShkPj4+NiY2M3wxMjgpJjI1NTthW2IrM3wwXT0oZCY2M3wxMjgpJjI1NTtm
PTQ7cmV0dXJuIGZ8MH1lbHNle2NbKGJ3KCl8MCk+PjJdPTEzODtmPS0xO3JldHVybiBmfDB9cmV0
dXJuIDB9ZnVuY3Rpb24ga2goYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGtpKGEpe2E9YXwwO3Jl
dHVybn1mdW5jdGlvbiBraihhKXthPWF8MDtyZXR1cm4gMTMyOHwwfWZ1bmN0aW9uIGtrKGEpe2E9
YXwwO3JldHVybn1mdW5jdGlvbiBrbChhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24ga20oYSl7YT1h
fDA7dmFyIGI9MDtiPWE7d2hpbGUoMSl7aWYoKGNbYj4+Ml18MCk9PTApe2JyZWFrfWVsc2V7Yj1i
KzR8MH19cmV0dXJuIGItYT4+MnwwfWZ1bmN0aW9uIGtuKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTA7aWYoKGR8MCk9PTApe3JldHVybiBhfDB9ZWxzZXtlPWI7Zj1kO2c9
YX13aGlsZSgxKXtkPWYtMXwwO2NbZz4+Ml09Y1tlPj4yXTtpZigoZHwwKT09MCl7YnJlYWt9ZWxz
ZXtlPWUrNHwwO2Y9ZDtnPWcrNHwwfX1yZXR1cm4gYXwwfWZ1bmN0aW9uIGtvKGEsYixkKXthPWF8
MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MDtlPShkfDApPT0wO2lmKGEtYj4+
Mj4+PjA8ZD4+PjApe2lmKGUpe3JldHVybiBhfDB9ZWxzZXtmPWR9ZG97Zj1mLTF8MDtjW2ErKGY8
PDIpPj4yXT1jW2IrKGY8PDIpPj4yXTt9d2hpbGUoKGZ8MCkhPTApO3JldHVybiBhfDB9ZWxzZXtp
ZihlKXtyZXR1cm4gYXwwfWVsc2V7Zz1iO2g9ZDtpPWF9d2hpbGUoMSl7ZD1oLTF8MDtjW2k+PjJd
PWNbZz4+Ml07aWYoKGR8MCk9PTApe2JyZWFrfWVsc2V7Zz1nKzR8MDtoPWQ7aT1pKzR8MH19cmV0
dXJuIGF8MH1yZXR1cm4gMH1mdW5jdGlvbiBrcChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFy
IGU9MCxmPTA7aWYoKGR8MCk9PTApe3JldHVybiBhfDB9ZWxzZXtlPWQ7Zj1hfXdoaWxlKDEpe2Q9
ZS0xfDA7Y1tmPj4yXT1iO2lmKChkfDApPT0wKXticmVha31lbHNle2U9ZDtmPWYrNHwwfX1yZXR1
cm4gYXwwfWZ1bmN0aW9uIGtxKGEpe2E9YXwwO2NbYT4+Ml09MjQ0MDtyZXR1cm59ZnVuY3Rpb24g
a3IoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MDtpZigoY1tkKzg+PjJd
fDApIT0oYnwwKSl7cmV0dXJufWI9ZCsxNnwwO2c9Y1tiPj4yXXwwO2lmKChnfDApPT0wKXtjW2I+
PjJdPWU7Y1tkKzI0Pj4yXT1mO2NbZCszNj4+Ml09MTtyZXR1cm59aWYoKGd8MCkhPShlfDApKXtl
PWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7Y1tkKzI0Pj4yXT0yO2FbZCs1NHwwXT0xO3Jl
dHVybn1lPWQrMjR8MDtpZigoY1tlPj4yXXwwKSE9Mil7cmV0dXJufWNbZT4+Ml09ZjtyZXR1cm59
ZnVuY3Rpb24ga3MoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIg
Zz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTA7Zj1pO2k9
aSsyNjR8MDtnPWZ8MDtoPWYrMjU2fDA7aj1jW2I+PjJdfDA7Y1toPj4yXT1qO2s9KGF8MCkhPTA7
bD1rP2U6MjU2O2U9az9hOmd8MDtMMjQzOmRve2lmKChqfDApPT0wfChsfDApPT0wKXttPTA7bj1k
O289bDtwPWU7cT1qfWVsc2V7YT1nfDA7cj1sO3M9ZDt0PTA7dT1lO3Y9ajt3aGlsZSgxKXt3PXM+
Pj4wPj1yPj4+MDtpZighKHd8cz4+PjA+MzIpKXttPXQ7bj1zO289cjtwPXU7cT12O2JyZWFrIEwy
NDN9eD13P3I6czt5PXMteHwwO3c9a3QodSxoLHgsMCl8MDtpZigod3wwKT09LTEpe2JyZWFrfWlm
KCh1fDApPT0oYXwwKSl7ej1hO0E9cn1lbHNle3o9dSt3fDA7QT1yLXd8MH14PXcrdHwwO3c9Y1to
Pj4yXXwwO2lmKCh3fDApPT0wfChBfDApPT0wKXttPXg7bj15O289QTtwPXo7cT13O2JyZWFrIEwy
NDN9ZWxzZXtyPUE7cz15O3Q9eDt1PXo7dj13fX1tPS0xO249eTtvPTA7cD11O3E9Y1toPj4yXXww
fX13aGlsZSgwKTtMMjU0OmRve2lmKChxfDApPT0wKXtCPW19ZWxzZXtpZigob3wwKT09MHwobnww
KT09MCl7Qj1tO2JyZWFrfWVsc2V7Qz1vO0Q9bjtFPW07Rj1wO0c9cX13aGlsZSgxKXtIPWtnKEYs
Y1tHPj4yXXwwLDApfDA7aWYoKEgrMXwwKT4+PjA8Mil7YnJlYWt9eT0oY1toPj4yXXwwKSs0fDA7
Y1toPj4yXT15O3o9RC0xfDA7QT1FKzF8MDtpZigoQ3wwKT09KEh8MCl8KHp8MCk9PTApe0I9QTti
cmVhayBMMjU0fWVsc2V7Qz1DLUh8MDtEPXo7RT1BO0Y9RitIfDA7Rz15fX1pZigoSHwwKSE9MCl7
Qj0tMTticmVha31jW2g+PjJdPTA7Qj1FfX13aGlsZSgwKTtpZighayl7aT1mO3JldHVybiBCfDB9
Y1tiPj4yXT1jW2g+PjJdO2k9ZjtyZXR1cm4gQnwwfWZ1bmN0aW9uIGt0KGIsZCxlLGYpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2Y9aTtpPWkrOHww
O2c9ZnwwO2lmKChifDApPT0wKXtoPWNbZD4+Ml18MDtqPWd8MDtrPWNbaD4+Ml18MDtpZigoa3ww
KT09MCl7bD0wO2k9ZjtyZXR1cm4gbHwwfWVsc2V7bT0wO249aDtvPWt9d2hpbGUoMSl7aWYobz4+
PjA+MTI3KXtrPWtnKGosbywwKXwwO2lmKChrfDApPT0tMSl7bD0tMTtwPTI0MDticmVha31lbHNl
e3E9a319ZWxzZXtxPTF9az1xK218MDtoPW4rNHwwO3I9Y1toPj4yXXwwO2lmKChyfDApPT0wKXts
PWs7cD0yNDE7YnJlYWt9ZWxzZXttPWs7bj1oO289cn19aWYoKHB8MCk9PTI0MCl7aT1mO3JldHVy
biBsfDB9ZWxzZSBpZigocHwwKT09MjQxKXtpPWY7cmV0dXJuIGx8MH19TDI4MDpkb3tpZihlPj4+
MD4zKXtvPWU7bj1iO209Y1tkPj4yXXwwO3doaWxlKDEpe3E9Y1ttPj4yXXwwO2lmKChxfDApPT0w
KXtzPW87dD1uO2JyZWFrIEwyODB9aWYocT4+PjA+MTI3KXtqPWtnKG4scSwwKXwwO2lmKChqfDAp
PT0tMSl7bD0tMTticmVha311PW4ranwwO3Y9by1qfDA7dz1tfWVsc2V7YVtuXT1xJjI1NTt1PW4r
MXwwO3Y9by0xfDA7dz1jW2Q+PjJdfDB9cT13KzR8MDtjW2Q+PjJdPXE7aWYodj4+PjA+Myl7bz12
O249dTttPXF9ZWxzZXtzPXY7dD11O2JyZWFrIEwyODB9fWk9ZjtyZXR1cm4gbHwwfWVsc2V7cz1l
O3Q9Yn19d2hpbGUoMCk7TDI5Mjpkb3tpZigoc3wwKT09MCl7eD0wfWVsc2V7Yj1nfDA7dT1zO3Y9
dDt3PWNbZD4+Ml18MDt3aGlsZSgxKXttPWNbdz4+Ml18MDtpZigobXwwKT09MCl7cD0yMzY7YnJl
YWt9aWYobT4+PjA+MTI3KXtuPWtnKGIsbSwwKXwwO2lmKChufDApPT0tMSl7bD0tMTtwPTI0Mzti
cmVha31pZihuPj4+MD51Pj4+MCl7cD0yMzI7YnJlYWt9bz1jW3c+PjJdfDA7a2codixvLDApfDA7
eT12K258MDt6PXUtbnwwO0E9d31lbHNle2Fbdl09bSYyNTU7eT12KzF8MDt6PXUtMXwwO0E9Y1tk
Pj4yXXwwfW09QSs0fDA7Y1tkPj4yXT1tO2lmKCh6fDApPT0wKXt4PTA7YnJlYWsgTDI5Mn1lbHNl
e3U9ejt2PXk7dz1tfX1pZigocHwwKT09MjMyKXtsPWUtdXwwO2k9ZjtyZXR1cm4gbHwwfWVsc2Ug
aWYoKHB8MCk9PTIzNil7YVt2XT0wO3g9dTticmVha31lbHNlIGlmKChwfDApPT0yNDMpe2k9Zjty
ZXR1cm4gbHwwfX19d2hpbGUoMCk7Y1tkPj4yXT0wO2w9ZS14fDA7aT1mO3JldHVybiBsfDB9ZnVu
Y3Rpb24ga3UoYSl7YT1hfDA7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGt2KGEpe2E9YXwwO2toKGF8
MCk7cmV0dXJufWZ1bmN0aW9uIGt3KGEpe2E9YXwwO2toKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0
aW9uIGt4KGEpe2E9YXwwO2toKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGt5KGEpe2E9YXww
O2toKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGt6KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTAsaD0wO2U9aTtpPWkrNTZ8MDtmPWV8MDtpZigoYXwwKT09KGJ8MCkp
e2c9MTtpPWU7cmV0dXJuIGd8MH1pZigoYnwwKT09MCl7Zz0wO2k9ZTtyZXR1cm4gZ3wwfWg9a0Mo
Yiw5NzA0LDk2ODgsLTEpfDA7Yj1oO2lmKChofDApPT0wKXtnPTA7aT1lO3JldHVybiBnfDB9ayQo
ZnwwLDAsNTYpO2NbZj4+Ml09YjtjW2YrOD4+Ml09YTtjW2YrMTI+PjJdPS0xO2NbZis0OD4+Ml09
MTtjYltjWyhjW2g+PjJdfDApKzI4Pj4yXSYxNV0oYixmLGNbZD4+Ml18MCwxKTtpZigoY1tmKzI0
Pj4yXXwwKSE9MSl7Zz0wO2k9ZTtyZXR1cm4gZ3wwfWNbZD4+Ml09Y1tmKzE2Pj4yXTtnPTE7aT1l
O3JldHVybiBnfDB9ZnVuY3Rpb24ga0EoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
dmFyIGc9MDtpZigoYnwwKSE9KGNbZCs4Pj4yXXwwKSl7Zz1jW2IrOD4+Ml18MDtjYltjWyhjW2c+
PjJdfDApKzI4Pj4yXSYxNV0oZyxkLGUsZik7cmV0dXJufWc9ZCsxNnwwO2I9Y1tnPj4yXXwwO2lm
KChifDApPT0wKXtjW2c+PjJdPWU7Y1tkKzI0Pj4yXT1mO2NbZCszNj4+Ml09MTtyZXR1cm59aWYo
KGJ8MCkhPShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7Y1tkKzI0Pj4yXT0y
O2FbZCs1NHwwXT0xO3JldHVybn1lPWQrMjR8MDtpZigoY1tlPj4yXXwwKSE9Mil7cmV0dXJufWNb
ZT4+Ml09ZjtyZXR1cm59ZnVuY3Rpb24ga0IoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MDtpZigoYnwwKT09KGNbZCs4Pj4yXXww
KSl7Zz1kKzE2fDA7aD1jW2c+PjJdfDA7aWYoKGh8MCk9PTApe2NbZz4+Ml09ZTtjW2QrMjQ+PjJd
PWY7Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigoaHwwKSE9KGV8MCkpe2g9ZCszNnwwO2NbaD4+Ml09
KGNbaD4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7YVtkKzU0fDBdPTE7cmV0dXJufWg9ZCsyNHwwO2lm
KChjW2g+PjJdfDApIT0yKXtyZXR1cm59Y1toPj4yXT1mO3JldHVybn1oPWNbYisxMj4+Ml18MDtn
PWIrMTYrKGg8PDMpfDA7aT1jW2IrMjA+PjJdfDA7aj1pPj44O2lmKChpJjF8MCk9PTApe2s9an1l
bHNle2s9Y1soY1tlPj4yXXwwKStqPj4yXXwwfWo9Y1tiKzE2Pj4yXXwwO2NiW2NbKGNbaj4+Ml18
MCkrMjg+PjJdJjE1XShqLGQsZStrfDAsKGkmMnwwKSE9MD9mOjIpO2lmKChofDApPD0xKXtyZXR1
cm59aD1kKzU0fDA7aT1lO2s9YisyNHwwO3doaWxlKDEpe2I9Y1trKzQ+PjJdfDA7aj1iPj44O2lm
KChiJjF8MCk9PTApe2w9an1lbHNle2w9Y1soY1tpPj4yXXwwKStqPj4yXXwwfWo9Y1trPj4yXXww
O2NiW2NbKGNbaj4+Ml18MCkrMjg+PjJdJjE1XShqLGQsZStsfDAsKGImMnwwKSE9MD9mOjIpO2lm
KChhW2hdJjEpIT0wKXttPTI5NzticmVha31iPWsrOHwwO2lmKGI+Pj4wPGc+Pj4wKXtrPWJ9ZWxz
ZXttPTI5ODticmVha319aWYoKG18MCk9PTI5Nyl7cmV0dXJufWVsc2UgaWYoKG18MCk9PTI5OCl7
cmV0dXJufX1mdW5jdGlvbiBrQyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIg
Zj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Zj1pO2k9aSs1NnwwO2c9ZnwwO2g9
Y1thPj4yXXwwO2o9YSsoY1toLTg+PjJdfDApfDA7az1jW2gtND4+Ml18MDtoPWs7Y1tnPj4yXT1k
O2NbZys0Pj4yXT1hO2NbZys4Pj4yXT1iO2NbZysxMj4+Ml09ZTtlPWcrMTZ8MDtiPWcrMjB8MDth
PWcrMjR8MDtsPWcrMjh8MDttPWcrMzJ8MDtuPWcrNDB8MDtrJChlfDAsMCwzOSk7aWYoKGt8MCk9
PShkfDApKXtjW2crNDg+PjJdPTE7YjlbY1soY1trPj4yXXwwKSsyMD4+Ml0mMzFdKGgsZyxqLGos
MSwwKTtpPWY7cmV0dXJuKChjW2E+PjJdfDApPT0xP2o6MCl8MH1iV1tjWyhjW2s+PjJdfDApKzI0
Pj4yXSY3XShoLGcsaiwxLDApO3N3aXRjaChjW2crMzY+PjJdfDApe2Nhc2UgMTp7ZG97aWYoKGNb
YT4+Ml18MCkhPTEpe2lmKChjW24+PjJdfDApIT0wKXtvPTA7aT1mO3JldHVybiBvfDB9aWYoKGNb
bD4+Ml18MCkhPTEpe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1ttPj4yXXwwKT09MSl7YnJlYWt9
ZWxzZXtvPTB9aT1mO3JldHVybiBvfDB9fXdoaWxlKDApO289Y1tlPj4yXXwwO2k9ZjtyZXR1cm4g
b3wwfTtjYXNlIDA6e2lmKChjW24+PjJdfDApIT0xKXtvPTA7aT1mO3JldHVybiBvfDB9aWYoKGNb
bD4+Ml18MCkhPTEpe289MDtpPWY7cmV0dXJuIG98MH1vPShjW20+PjJdfDApPT0xP2NbYj4+Ml18
MDowO2k9ZjtyZXR1cm4gb3wwfTtkZWZhdWx0OntvPTA7aT1mO3JldHVybiBvfDB9fXJldHVybiAw
fWZ1bmN0aW9uIGtEKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aWYo
KGNbZCs4Pj4yXXwwKT09KGJ8MCkpe2lmKChjW2QrND4+Ml18MCkhPShlfDApKXtyZXR1cm59Zz1k
KzI4fDA7aWYoKGNbZz4+Ml18MCk9PTEpe3JldHVybn1jW2c+PjJdPWY7cmV0dXJufWlmKChjW2Q+
PjJdfDApIT0oYnwwKSl7cmV0dXJufWRve2lmKChjW2QrMTY+PjJdfDApIT0oZXwwKSl7Yj1kKzIw
fDA7aWYoKGNbYj4+Ml18MCk9PShlfDApKXticmVha31jW2QrMzI+PjJdPWY7Y1tiPj4yXT1lO2I9
ZCs0MHwwO2NbYj4+Ml09KGNbYj4+Ml18MCkrMTtkb3tpZigoY1tkKzM2Pj4yXXwwKT09MSl7aWYo
KGNbZCsyND4+Ml18MCkhPTIpe2JyZWFrfWFbZCs1NHwwXT0xfX13aGlsZSgwKTtjW2QrNDQ+PjJd
PTQ7cmV0dXJufX13aGlsZSgwKTtpZigoZnwwKSE9MSl7cmV0dXJufWNbZCszMj4+Ml09MTtyZXR1
cm59ZnVuY3Rpb24ga0UoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO3ZhciBpPTA7aWYoKGNbZCs4Pj4yXXwwKSE9KGJ8MCkpe3JldHVybn1hW2QrNTN8MF09
MTtpZigoY1tkKzQ+PjJdfDApIT0oZnwwKSl7cmV0dXJufWFbZCs1MnwwXT0xO2Y9ZCsxNnwwO2I9
Y1tmPj4yXXwwO2lmKChifDApPT0wKXtjW2Y+PjJdPWU7Y1tkKzI0Pj4yXT1nO2NbZCszNj4+Ml09
MTtpZighKChjW2QrNDg+PjJdfDApPT0xJihnfDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0xO3Jl
dHVybn1pZigoYnwwKSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTthW2Qr
NTR8MF09MTtyZXR1cm59ZT1kKzI0fDA7Yj1jW2U+PjJdfDA7aWYoKGJ8MCk9PTIpe2NbZT4+Ml09
ZztpPWd9ZWxzZXtpPWJ9aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYoaXwwKT09MSkpe3JldHVybn1h
W2QrNTR8MF09MTtyZXR1cm59ZnVuY3Rpb24ga0YoYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTA7aD1ifDA7aWYoKGh8MCk9PShjW2QrOD4+Ml18MCkpe2lmKChjW2QrND4+Ml18
MCkhPShlfDApKXtyZXR1cm59aT1kKzI4fDA7aWYoKGNbaT4+Ml18MCk9PTEpe3JldHVybn1jW2k+
PjJdPWY7cmV0dXJufWlmKChofDApPT0oY1tkPj4yXXwwKSl7ZG97aWYoKGNbZCsxNj4+Ml18MCkh
PShlfDApKXtoPWQrMjB8MDtpZigoY1toPj4yXXwwKT09KGV8MCkpe2JyZWFrfWNbZCszMj4+Ml09
ZjtpPWQrNDR8MDtpZigoY1tpPj4yXXwwKT09NCl7cmV0dXJufWo9Y1tiKzEyPj4yXXwwO2s9Yisx
Nisoajw8Myl8MDtMNDc0OmRve2lmKChqfDApPjApe2w9ZCs1MnwwO209ZCs1M3wwO249ZCs1NHww
O289Yis4fDA7cD1kKzI0fDA7cT1lO3I9MDtzPWIrMTZ8MDt0PTA7TDQ3Njp3aGlsZSgxKXthW2xd
PTA7YVttXT0wO3U9Y1tzKzQ+PjJdfDA7dj11Pj44O2lmKCh1JjF8MCk9PTApe3c9dn1lbHNle3c9
Y1soY1txPj4yXXwwKSt2Pj4yXXwwfXY9Y1tzPj4yXXwwO2I5W2NbKGNbdj4+Ml18MCkrMjA+PjJd
JjMxXSh2LGQsZSxlK3d8MCwyLSh1Pj4+MSYxKXwwLGcpO2lmKChhW25dJjEpIT0wKXt4PXQ7eT1y
O2JyZWFrfWRve2lmKChhW21dJjEpPT0wKXt6PXQ7QT1yfWVsc2V7aWYoKGFbbF0mMSk9PTApe2lm
KChjW28+PjJdJjF8MCk9PTApe3g9MTt5PXI7YnJlYWsgTDQ3Nn1lbHNle3o9MTtBPXI7YnJlYWt9
fWlmKChjW3A+PjJdfDApPT0xKXtCPTM4NTticmVhayBMNDc0fWlmKChjW28+PjJdJjJ8MCk9PTAp
e0I9Mzg1O2JyZWFrIEw0NzR9ZWxzZXt6PTE7QT0xfX19d2hpbGUoMCk7dT1zKzh8MDtpZih1Pj4+
MDxrPj4+MCl7cj1BO3M9dTt0PXp9ZWxzZXt4PXo7eT1BO2JyZWFrfX1pZih5KXtDPXg7Qj0zODR9
ZWxzZXtEPXg7Qj0zODF9fWVsc2V7RD0wO0I9MzgxfX13aGlsZSgwKTtkb3tpZigoQnwwKT09Mzgx
KXtjW2g+PjJdPWU7az1kKzQwfDA7Y1trPj4yXT0oY1trPj4yXXwwKSsxO2lmKChjW2QrMzY+PjJd
fDApIT0xKXtDPUQ7Qj0zODQ7YnJlYWt9aWYoKGNbZCsyND4+Ml18MCkhPTIpe0M9RDtCPTM4NDti
cmVha31hW2QrNTR8MF09MTtpZihEKXtCPTM4NX1lbHNle0I9Mzg2fX19d2hpbGUoMCk7aWYoKEJ8
MCk9PTM4NCl7aWYoQyl7Qj0zODV9ZWxzZXtCPTM4Nn19aWYoKEJ8MCk9PTM4NSl7Y1tpPj4yXT0z
O3JldHVybn1lbHNlIGlmKChCfDApPT0zODYpe2NbaT4+Ml09NDtyZXR1cm59fX13aGlsZSgwKTtp
ZigoZnwwKSE9MSl7cmV0dXJufWNbZCszMj4+Ml09MTtyZXR1cm59Qz1jW2IrMTI+PjJdfDA7RD1i
KzE2KyhDPDwzKXwwO3g9Y1tiKzIwPj4yXXwwO3k9eD4+ODtpZigoeCYxfDApPT0wKXtFPXl9ZWxz
ZXtFPWNbKGNbZT4+Ml18MCkreT4+Ml18MH15PWNbYisxNj4+Ml18MDtiV1tjWyhjW3k+PjJdfDAp
KzI0Pj4yXSY3XSh5LGQsZStFfDAsKHgmMnwwKSE9MD9mOjIsZyk7eD1iKzI0fDA7aWYoKEN8MCk8
PTEpe3JldHVybn1DPWNbYis4Pj4yXXwwO2Rve2lmKChDJjJ8MCk9PTApe2I9ZCszNnwwO2lmKChj
W2I+PjJdfDApPT0xKXticmVha31pZigoQyYxfDApPT0wKXtFPWQrNTR8MDt5PWU7QT14O3doaWxl
KDEpe2lmKChhW0VdJjEpIT0wKXtCPTQyNTticmVha31pZigoY1tiPj4yXXwwKT09MSl7Qj00MjY7
YnJlYWt9ej1jW0ErND4+Ml18MDt3PXo+Pjg7aWYoKHomMXwwKT09MCl7Rj13fWVsc2V7Rj1jWyhj
W3k+PjJdfDApK3c+PjJdfDB9dz1jW0E+PjJdfDA7YldbY1soY1t3Pj4yXXwwKSsyND4+Ml0mN10o
dyxkLGUrRnwwLCh6JjJ8MCkhPTA/ZjoyLGcpO3o9QSs4fDA7aWYoej4+PjA8RD4+PjApe0E9en1l
bHNle0I9NDEyO2JyZWFrfX1pZigoQnwwKT09NDEyKXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDI1
KXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDI2KXtyZXR1cm59fUE9ZCsyNHwwO3k9ZCs1NHwwO0U9
ZTtpPXg7d2hpbGUoMSl7aWYoKGFbeV0mMSkhPTApe0I9NDIyO2JyZWFrfWlmKChjW2I+PjJdfDAp
PT0xKXtpZigoY1tBPj4yXXwwKT09MSl7Qj00MjM7YnJlYWt9fXo9Y1tpKzQ+PjJdfDA7dz16Pj44
O2lmKCh6JjF8MCk9PTApe0c9d31lbHNle0c9Y1soY1tFPj4yXXwwKSt3Pj4yXXwwfXc9Y1tpPj4y
XXwwO2JXW2NbKGNbdz4+Ml18MCkrMjQ+PjJdJjddKHcsZCxlK0d8MCwoeiYyfDApIT0wP2Y6Mixn
KTt6PWkrOHwwO2lmKHo+Pj4wPEQ+Pj4wKXtpPXp9ZWxzZXtCPTQyNDticmVha319aWYoKEJ8MCk9
PTQyMil7cmV0dXJufWVsc2UgaWYoKEJ8MCk9PTQyMyl7cmV0dXJufWVsc2UgaWYoKEJ8MCk9PTQy
NCl7cmV0dXJufX19d2hpbGUoMCk7Rz1kKzU0fDA7Rj1lO0M9eDt3aGlsZSgxKXtpZigoYVtHXSYx
KSE9MCl7Qj00MjE7YnJlYWt9eD1jW0MrND4+Ml18MDtpPXg+Pjg7aWYoKHgmMXwwKT09MCl7SD1p
fWVsc2V7SD1jWyhjW0Y+PjJdfDApK2k+PjJdfDB9aT1jW0M+PjJdfDA7YldbY1soY1tpPj4yXXww
KSsyND4+Ml0mN10oaSxkLGUrSHwwLCh4JjJ8MCkhPTA/ZjoyLGcpO3g9Qys4fDA7aWYoeD4+PjA8
RD4+PjApe0M9eH1lbHNle0I9NDIwO2JyZWFrfX1pZigoQnwwKT09NDIwKXtyZXR1cm59ZWxzZSBp
ZigoQnwwKT09NDIxKXtyZXR1cm59fWZ1bmN0aW9uIGtHKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtoPWJ8MDtp
ZigoaHwwKT09KGNbZCs4Pj4yXXwwKSl7aWYoKGNbZCs0Pj4yXXwwKSE9KGV8MCkpe3JldHVybn1p
PWQrMjh8MDtpZigoY1tpPj4yXXwwKT09MSl7cmV0dXJufWNbaT4+Ml09ZjtyZXR1cm59aWYoKGh8
MCkhPShjW2Q+PjJdfDApKXtoPWNbYis4Pj4yXXwwO2JXW2NbKGNbaD4+Ml18MCkrMjQ+PjJdJjdd
KGgsZCxlLGYsZyk7cmV0dXJufWRve2lmKChjW2QrMTY+PjJdfDApIT0oZXwwKSl7aD1kKzIwfDA7
aWYoKGNbaD4+Ml18MCk9PShlfDApKXticmVha31jW2QrMzI+PjJdPWY7aT1kKzQ0fDA7aWYoKGNb
aT4+Ml18MCk9PTQpe3JldHVybn1qPWQrNTJ8MDthW2pdPTA7az1kKzUzfDA7YVtrXT0wO2w9Y1ti
Kzg+PjJdfDA7YjlbY1soY1tsPj4yXXwwKSsyMD4+Ml0mMzFdKGwsZCxlLGUsMSxnKTtpZigoYVtr
XSYxKT09MCl7bT0wO249NDQxfWVsc2V7aWYoKGFbal0mMSk9PTApe209MTtuPTQ0MX19TDU3Njpk
b3tpZigobnwwKT09NDQxKXtjW2g+PjJdPWU7aj1kKzQwfDA7Y1tqPj4yXT0oY1tqPj4yXXwwKSsx
O2Rve2lmKChjW2QrMzY+PjJdfDApPT0xKXtpZigoY1tkKzI0Pj4yXXwwKSE9Mil7bj00NDQ7YnJl
YWt9YVtkKzU0fDBdPTE7aWYobSl7YnJlYWsgTDU3Nn19ZWxzZXtuPTQ0NH19d2hpbGUoMCk7aWYo
KG58MCk9PTQ0NCl7aWYobSl7YnJlYWt9fWNbaT4+Ml09NDtyZXR1cm59fXdoaWxlKDApO2NbaT4+
Ml09MztyZXR1cm59fXdoaWxlKDApO2lmKChmfDApIT0xKXtyZXR1cm59Y1tkKzMyPj4yXT0xO3Jl
dHVybn1mdW5jdGlvbiBrSChiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7dmFyIGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wO2lmKChifDApIT0oY1tkKzg+PjJdfDApKXtpPWQrNTJ8MDtqPWFbaV0m
MTtrPWQrNTN8MDtsPWFba10mMTttPWNbYisxMj4+Ml18MDtuPWIrMTYrKG08PDMpfDA7YVtpXT0w
O2Fba109MDtvPWNbYisyMD4+Ml18MDtwPW8+Pjg7aWYoKG8mMXwwKT09MCl7cT1wfWVsc2V7cT1j
WyhjW2Y+PjJdfDApK3A+PjJdfDB9cD1jW2IrMTY+PjJdfDA7YjlbY1soY1twPj4yXXwwKSsyMD4+
Ml0mMzFdKHAsZCxlLGYrcXwwLChvJjJ8MCkhPTA/ZzoyLGgpO0w1OTg6ZG97aWYoKG18MCk+MSl7
bz1kKzI0fDA7cT1iKzh8MDtwPWQrNTR8MDtyPWY7cz1iKzI0fDA7ZG97aWYoKGFbcF0mMSkhPTAp
e2JyZWFrIEw1OTh9ZG97aWYoKGFbaV0mMSk9PTApe2lmKChhW2tdJjEpPT0wKXticmVha31pZigo
Y1txPj4yXSYxfDApPT0wKXticmVhayBMNTk4fX1lbHNle2lmKChjW28+PjJdfDApPT0xKXticmVh
ayBMNTk4fWlmKChjW3E+PjJdJjJ8MCk9PTApe2JyZWFrIEw1OTh9fX13aGlsZSgwKTthW2ldPTA7
YVtrXT0wO3Q9Y1tzKzQ+PjJdfDA7dT10Pj44O2lmKCh0JjF8MCk9PTApe3Y9dX1lbHNle3Y9Y1so
Y1tyPj4yXXwwKSt1Pj4yXXwwfXU9Y1tzPj4yXXwwO2I5W2NbKGNbdT4+Ml18MCkrMjA+PjJdJjMx
XSh1LGQsZSxmK3Z8MCwodCYyfDApIT0wP2c6MixoKTtzPXMrOHwwO313aGlsZShzPj4+MDxuPj4+
MCl9fXdoaWxlKDApO2FbaV09ajthW2tdPWw7cmV0dXJufWFbZCs1M3wwXT0xO2lmKChjW2QrND4+
Ml18MCkhPShmfDApKXtyZXR1cm59YVtkKzUyfDBdPTE7Zj1kKzE2fDA7bD1jW2Y+PjJdfDA7aWYo
KGx8MCk9PTApe2NbZj4+Ml09ZTtjW2QrMjQ+PjJdPWc7Y1tkKzM2Pj4yXT0xO2lmKCEoKGNbZCs0
OD4+Ml18MCk9PTEmKGd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0dXJufWlmKChsfDAp
IT0oZXwwKSl7ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2FbZCs1NHwwXT0xO3JldHVy
bn1lPWQrMjR8MDtsPWNbZT4+Ml18MDtpZigobHwwKT09Mil7Y1tlPj4yXT1nO3c9Z31lbHNle3c9
bH1pZighKChjW2QrNDg+PjJdfDApPT0xJih3fDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0xO3Jl
dHVybn1mdW5jdGlvbiBrSShiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7dmFyIGk9MCxqPTA7aWYoKGJ8MCkhPShjW2QrOD4+Ml18MCkpe2k9Y1tiKzg+PjJd
fDA7YjlbY1soY1tpPj4yXXwwKSsyMD4+Ml0mMzFdKGksZCxlLGYsZyxoKTtyZXR1cm59YVtkKzUz
fDBdPTE7aWYoKGNbZCs0Pj4yXXwwKSE9KGZ8MCkpe3JldHVybn1hW2QrNTJ8MF09MTtmPWQrMTZ8
MDtoPWNbZj4+Ml18MDtpZigoaHwwKT09MCl7Y1tmPj4yXT1lO2NbZCsyND4+Ml09ZztjW2QrMzY+
PjJdPTE7aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYoZ3wwKT09MSkpe3JldHVybn1hW2QrNTR8MF09
MTtyZXR1cm59aWYoKGh8MCkhPShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7
YVtkKzU0fDBdPTE7cmV0dXJufWU9ZCsyNHwwO2g9Y1tlPj4yXXwwO2lmKChofDApPT0yKXtjW2U+
PjJdPWc7aj1nfWVsc2V7aj1ofWlmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKGp8MCk9PTEpKXtyZXR1
cm59YVtkKzU0fDBdPTE7cmV0dXJufWZ1bmN0aW9uIGtKKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9
MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxW
PTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAs
YWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MCxhbj0wLGFvPTAsYXA9MCxhcT0wLGFy
PTAsYXM9MCxhdD0wLGF1PTAsYXY9MCxhdz0wLGF4PTAsYXk9MCxhej0wLGFBPTAsYUI9MCxhQz0w
LGFEPTAsYUU9MCxhRj0wLGFHPTA7ZG97aWYoYT4+PjA8MjQ1KXtpZihhPj4+MDwxMSl7Yj0xNn1l
bHNle2I9YSsxMSYtOH1kPWI+Pj4zO2U9Y1syNDYwXXwwO2Y9ZT4+PihkPj4+MCk7aWYoKGYmM3ww
KSE9MCl7Zz0oZiYxXjEpK2R8MDtoPWc8PDE7aT05ODgwKyhoPDwyKXwwO2o9OTg4MCsoaCsyPDwy
KXwwO2g9Y1tqPj4yXXwwO2s9aCs4fDA7bD1jW2s+PjJdfDA7ZG97aWYoKGl8MCk9PShsfDApKXtj
WzI0NjBdPWUmfigxPDxnKX1lbHNle2lmKGw+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1tPWwrMTJ8MDtpZigoY1ttPj4yXXwwKT09KGh8MCkpe2NbbT4+Ml09aTtjW2o+PjJdPWw7
YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7bD1nPDwzO2NbaCs0Pj4yXT1sfDM7
aj1oKyhsfDQpfDA7Y1tqPj4yXT1jW2o+PjJdfDE7bj1rO3JldHVybiBufDB9aWYoYj4+PjA8PShj
WzI0NjJdfDApPj4+MCl7bz1iO2JyZWFrfWlmKChmfDApIT0wKXtqPTI8PGQ7bD1mPDxkJihqfC1q
KTtqPShsJi1sKS0xfDA7bD1qPj4+MTImMTY7aT1qPj4+KGw+Pj4wKTtqPWk+Pj41Jjg7bT1pPj4+
KGo+Pj4wKTtpPW0+Pj4yJjQ7cD1tPj4+KGk+Pj4wKTttPXA+Pj4xJjI7cT1wPj4+KG0+Pj4wKTtw
PXE+Pj4xJjE7cj0oanxsfGl8bXxwKSsocT4+PihwPj4+MCkpfDA7cD1yPDwxO3E9OTg4MCsocDw8
Mil8MDttPTk4ODArKHArMjw8Mil8MDtwPWNbbT4+Ml18MDtpPXArOHwwO2w9Y1tpPj4yXXwwO2Rv
e2lmKChxfDApPT0obHwwKSl7Y1syNDYwXT1lJn4oMTw8cil9ZWxzZXtpZihsPj4+MDwoY1syNDY0
XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9aj1sKzEyfDA7aWYoKGNbaj4+Ml18MCk9PShwfDApKXtj
W2o+PjJdPXE7Y1ttPj4yXT1sO2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDApO2w9
cjw8MzttPWwtYnwwO2NbcCs0Pj4yXT1ifDM7cT1wO2U9cStifDA7Y1txKyhifDQpPj4yXT1tfDE7
Y1txK2w+PjJdPW07bD1jWzI0NjJdfDA7aWYoKGx8MCkhPTApe3E9Y1syNDY1XXwwO2Q9bD4+PjM7
bD1kPDwxO2Y9OTg4MCsobDw8Mil8MDtrPWNbMjQ2MF18MDtoPTE8PGQ7ZG97aWYoKGsmaHwwKT09
MCl7Y1syNDYwXT1rfGg7cz1mO3Q9OTg4MCsobCsyPDwyKXwwfWVsc2V7ZD05ODgwKyhsKzI8PDIp
fDA7Zz1jW2Q+PjJdfDA7aWYoZz4+PjA+PShjWzI0NjRdfDApPj4+MCl7cz1nO3Q9ZDticmVha31i
RygpO3JldHVybiAwfX13aGlsZSgwKTtjW3Q+PjJdPXE7Y1tzKzEyPj4yXT1xO2NbcSs4Pj4yXT1z
O2NbcSsxMj4+Ml09Zn1jWzI0NjJdPW07Y1syNDY1XT1lO249aTtyZXR1cm4gbnwwfWw9Y1syNDYx
XXwwO2lmKChsfDApPT0wKXtvPWI7YnJlYWt9aD0obCYtbCktMXwwO2w9aD4+PjEyJjE2O2s9aD4+
PihsPj4+MCk7aD1rPj4+NSY4O3A9az4+PihoPj4+MCk7az1wPj4+MiY0O3I9cD4+PihrPj4+MCk7
cD1yPj4+MSYyO2Q9cj4+PihwPj4+MCk7cj1kPj4+MSYxO2c9Y1sxMDE0NCsoKGh8bHxrfHB8cikr
KGQ+Pj4ocj4+PjApKTw8Mik+PjJdfDA7cj1nO2Q9ZztwPShjW2crND4+Ml0mLTgpLWJ8MDt3aGls
ZSgxKXtnPWNbcisxNj4+Ml18MDtpZigoZ3wwKT09MCl7az1jW3IrMjA+PjJdfDA7aWYoKGt8MCk9
PTApe2JyZWFrfWVsc2V7dT1rfX1lbHNle3U9Z31nPShjW3UrND4+Ml0mLTgpLWJ8MDtrPWc+Pj4w
PHA+Pj4wO3I9dTtkPWs/dTpkO3A9az9nOnB9cj1kO2k9Y1syNDY0XXwwO2lmKHI+Pj4wPGk+Pj4w
KXtiRygpO3JldHVybiAwfWU9citifDA7bT1lO2lmKHI+Pj4wPj1lPj4+MCl7YkcoKTtyZXR1cm4g
MH1lPWNbZCsyND4+Ml18MDtmPWNbZCsxMj4+Ml18MDtkb3tpZigoZnwwKT09KGR8MCkpe3E9ZCsy
MHwwO2c9Y1txPj4yXXwwO2lmKChnfDApPT0wKXtrPWQrMTZ8MDtsPWNbaz4+Ml18MDtpZigobHww
KT09MCl7dj0wO2JyZWFrfWVsc2V7dz1sO3g9a319ZWxzZXt3PWc7eD1xfXdoaWxlKDEpe3E9dysy
MHwwO2c9Y1txPj4yXXwwO2lmKChnfDApIT0wKXt3PWc7eD1xO2NvbnRpbnVlfXE9dysxNnwwO2c9
Y1txPj4yXXwwO2lmKChnfDApPT0wKXticmVha31lbHNle3c9Zzt4PXF9fWlmKHg+Pj4wPGk+Pj4w
KXtiRygpO3JldHVybiAwfWVsc2V7Y1t4Pj4yXT0wO3Y9dzticmVha319ZWxzZXtxPWNbZCs4Pj4y
XXwwO2lmKHE+Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAwfWc9cSsxMnwwO2lmKChjW2c+PjJdfDAp
IT0oZHwwKSl7YkcoKTtyZXR1cm4gMH1rPWYrOHwwO2lmKChjW2s+PjJdfDApPT0oZHwwKSl7Y1tn
Pj4yXT1mO2Nbaz4+Ml09cTt2PWY7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7
TDc0MDpkb3tpZigoZXwwKSE9MCl7Zj1kKzI4fDA7aT0xMDE0NCsoY1tmPj4yXTw8Mil8MDtkb3tp
ZigoZHwwKT09KGNbaT4+Ml18MCkpe2NbaT4+Ml09djtpZigodnwwKSE9MCl7YnJlYWt9Y1syNDYx
XT1jWzI0NjFdJn4oMTw8Y1tmPj4yXSk7YnJlYWsgTDc0MH1lbHNle2lmKGU+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKTtyZXR1cm4gMH1xPWUrMTZ8MDtpZigoY1txPj4yXXwwKT09KGR8MCkpe2Nb
cT4+Ml09dn1lbHNle2NbZSsyMD4+Ml09dn1pZigodnwwKT09MCl7YnJlYWsgTDc0MH19fXdoaWxl
KDApO2lmKHY+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1jW3YrMjQ+PjJdPWU7
Zj1jW2QrMTY+PjJdfDA7ZG97aWYoKGZ8MCkhPTApe2lmKGY+Pj4wPChjWzI0NjRdfDApPj4+MCl7
YkcoKTtyZXR1cm4gMH1lbHNle2NbdisxNj4+Ml09ZjtjW2YrMjQ+PjJdPXY7YnJlYWt9fX13aGls
ZSgwKTtmPWNbZCsyMD4+Ml18MDtpZigoZnwwKT09MCl7YnJlYWt9aWYoZj4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1t2KzIwPj4yXT1mO2NbZisyND4+Ml09djticmVh
a319fXdoaWxlKDApO2lmKHA+Pj4wPDE2KXtlPXArYnwwO2NbZCs0Pj4yXT1lfDM7Zj1yKyhlKzQp
fDA7Y1tmPj4yXT1jW2Y+PjJdfDF9ZWxzZXtjW2QrND4+Ml09YnwzO2NbcisoYnw0KT4+Ml09cHwx
O2NbcisocCtiKT4+Ml09cDtmPWNbMjQ2Ml18MDtpZigoZnwwKSE9MCl7ZT1jWzI0NjVdfDA7aT1m
Pj4+MztmPWk8PDE7cT05ODgwKyhmPDwyKXwwO2s9Y1syNDYwXXwwO2c9MTw8aTtkb3tpZigoayZn
fDApPT0wKXtjWzI0NjBdPWt8Zzt5PXE7ej05ODgwKyhmKzI8PDIpfDB9ZWxzZXtpPTk4ODArKGYr
Mjw8Mil8MDtsPWNbaT4+Ml18MDtpZihsPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXt5PWw7ej1pO2Jy
ZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2Nbej4+Ml09ZTtjW3krMTI+PjJdPWU7Y1tlKzg+
PjJdPXk7Y1tlKzEyPj4yXT1xfWNbMjQ2Ml09cDtjWzI0NjVdPW19Zj1kKzh8MDtpZigoZnwwKT09
MCl7bz1iO2JyZWFrfWVsc2V7bj1mfXJldHVybiBufDB9ZWxzZXtpZihhPj4+MD40Mjk0OTY3MjMx
KXtvPS0xO2JyZWFrfWY9YSsxMXwwO2c9ZiYtODtrPWNbMjQ2MV18MDtpZigoa3wwKT09MCl7bz1n
O2JyZWFrfXI9LWd8MDtpPWY+Pj44O2Rve2lmKChpfDApPT0wKXtBPTB9ZWxzZXtpZihnPj4+MD4x
Njc3NzIxNSl7QT0zMTticmVha31mPShpKzEwNDgzMjB8MCk+Pj4xNiY4O2w9aTw8ZjtoPShsKzUy
MDE5MnwwKT4+PjE2JjQ7aj1sPDxoO2w9KGorMjQ1NzYwfDApPj4+MTYmMjtCPTE0LShofGZ8bCkr
KGo8PGw+Pj4xNSl8MDtBPWc+Pj4oKEIrN3wwKT4+PjApJjF8Qjw8MX19d2hpbGUoMCk7aT1jWzEw
MTQ0KyhBPDwyKT4+Ml18MDtMNzg4OmRve2lmKChpfDApPT0wKXtDPTA7RD1yO0U9MH1lbHNle2lm
KChBfDApPT0zMSl7Rj0wfWVsc2V7Rj0yNS0oQT4+PjEpfDB9ZD0wO209cjtwPWk7cT1nPDxGO2U9
MDt3aGlsZSgxKXtCPWNbcCs0Pj4yXSYtODtsPUItZ3wwO2lmKGw+Pj4wPG0+Pj4wKXtpZigoQnww
KT09KGd8MCkpe0M9cDtEPWw7RT1wO2JyZWFrIEw3ODh9ZWxzZXtHPXA7SD1sfX1lbHNle0c9ZDtI
PW19bD1jW3ArMjA+PjJdfDA7Qj1jW3ArMTYrKHE+Pj4zMTw8Mik+PjJdfDA7aj0obHwwKT09MHwo
bHwwKT09KEJ8MCk/ZTpsO2lmKChCfDApPT0wKXtDPUc7RD1IO0U9ajticmVha31lbHNle2Q9Rztt
PUg7cD1CO3E9cTw8MTtlPWp9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTAmKEN8MCk9PTApe2k9Mjw8
QTtyPWsmKGl8LWkpO2lmKChyfDApPT0wKXtvPWc7YnJlYWt9aT0ociYtciktMXwwO3I9aT4+PjEy
JjE2O2U9aT4+PihyPj4+MCk7aT1lPj4+NSY4O3E9ZT4+PihpPj4+MCk7ZT1xPj4+MiY0O3A9cT4+
PihlPj4+MCk7cT1wPj4+MSYyO209cD4+PihxPj4+MCk7cD1tPj4+MSYxO0k9Y1sxMDE0NCsoKGl8
cnxlfHF8cCkrKG0+Pj4ocD4+PjApKTw8Mik+PjJdfDB9ZWxzZXtJPUV9aWYoKEl8MCk9PTApe0o9
RDtLPUN9ZWxzZXtwPUk7bT1EO3E9Qzt3aGlsZSgxKXtlPShjW3ArND4+Ml0mLTgpLWd8MDtyPWU+
Pj4wPG0+Pj4wO2k9cj9lOm07ZT1yP3A6cTtyPWNbcCsxNj4+Ml18MDtpZigocnwwKSE9MCl7cD1y
O209aTtxPWU7Y29udGludWV9cj1jW3ArMjA+PjJdfDA7aWYoKHJ8MCk9PTApe0o9aTtLPWU7YnJl
YWt9ZWxzZXtwPXI7bT1pO3E9ZX19fWlmKChLfDApPT0wKXtvPWc7YnJlYWt9aWYoSj4+PjA+PSgo
Y1syNDYyXXwwKS1nfDApPj4+MCl7bz1nO2JyZWFrfXE9SzttPWNbMjQ2NF18MDtpZihxPj4+MDxt
Pj4+MCl7YkcoKTtyZXR1cm4gMH1wPXErZ3wwO2s9cDtpZihxPj4+MD49cD4+PjApe2JHKCk7cmV0
dXJuIDB9ZT1jW0srMjQ+PjJdfDA7aT1jW0srMTI+PjJdfDA7ZG97aWYoKGl8MCk9PShLfDApKXty
PUsrMjB8MDtkPWNbcj4+Ml18MDtpZigoZHwwKT09MCl7aj1LKzE2fDA7Qj1jW2o+PjJdfDA7aWYo
KEJ8MCk9PTApe0w9MDticmVha31lbHNle009QjtOPWp9fWVsc2V7TT1kO049cn13aGlsZSgxKXty
PU0rMjB8MDtkPWNbcj4+Ml18MDtpZigoZHwwKSE9MCl7TT1kO049cjtjb250aW51ZX1yPU0rMTZ8
MDtkPWNbcj4+Ml18MDtpZigoZHwwKT09MCl7YnJlYWt9ZWxzZXtNPWQ7Tj1yfX1pZihOPj4+MDxt
Pj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbTj4+Ml09MDtMPU07YnJlYWt9fWVsc2V7cj1jW0sr
OD4+Ml18MDtpZihyPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4gMH1kPXIrMTJ8MDtpZigoY1tkPj4y
XXwwKSE9KEt8MCkpe2JHKCk7cmV0dXJuIDB9aj1pKzh8MDtpZigoY1tqPj4yXXwwKT09KEt8MCkp
e2NbZD4+Ml09aTtjW2o+PjJdPXI7TD1pO2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxl
KDApO0w4Mzg6ZG97aWYoKGV8MCkhPTApe2k9SysyOHwwO209MTAxNDQrKGNbaT4+Ml08PDIpfDA7
ZG97aWYoKEt8MCk9PShjW20+PjJdfDApKXtjW20+PjJdPUw7aWYoKEx8MCkhPTApe2JyZWFrfWNb
MjQ2MV09Y1syNDYxXSZ+KDE8PGNbaT4+Ml0pO2JyZWFrIEw4Mzh9ZWxzZXtpZihlPj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9cj1lKzE2fDA7aWYoKGNbcj4+Ml18MCk9PShLfDAp
KXtjW3I+PjJdPUx9ZWxzZXtjW2UrMjA+PjJdPUx9aWYoKEx8MCk9PTApe2JyZWFrIEw4Mzh9fX13
aGlsZSgwKTtpZihMPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9Y1tMKzI0Pj4y
XT1lO2k9Y1tLKzE2Pj4yXXwwO2Rve2lmKChpfDApIT0wKXtpZihpPj4+MDwoY1syNDY0XXwwKT4+
PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW0wrMTY+PjJdPWk7Y1tpKzI0Pj4yXT1MO2JyZWFrfX19
d2hpbGUoMCk7aT1jW0srMjA+PjJdfDA7aWYoKGl8MCk9PTApe2JyZWFrfWlmKGk+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbTCsyMD4+Ml09aTtjW2krMjQ+PjJdPUw7
YnJlYWt9fX13aGlsZSgwKTtkb3tpZihKPj4+MDwxNil7ZT1KK2d8MDtjW0srND4+Ml09ZXwzO2k9
cSsoZSs0KXwwO2NbaT4+Ml09Y1tpPj4yXXwxfWVsc2V7Y1tLKzQ+PjJdPWd8MztjW3ErKGd8NCk+
PjJdPUp8MTtjW3ErKEorZyk+PjJdPUo7aT1KPj4+MztpZihKPj4+MDwyNTYpe2U9aTw8MTttPTk4
ODArKGU8PDIpfDA7cj1jWzI0NjBdfDA7aj0xPDxpO2Rve2lmKChyJmp8MCk9PTApe2NbMjQ2MF09
cnxqO089bTtQPTk4ODArKGUrMjw8Mil8MH1lbHNle2k9OTg4MCsoZSsyPDwyKXwwO2Q9Y1tpPj4y
XXwwO2lmKGQ+Pj4wPj0oY1syNDY0XXwwKT4+PjApe089ZDtQPWk7YnJlYWt9YkcoKTtyZXR1cm4g
MH19d2hpbGUoMCk7Y1tQPj4yXT1rO2NbTysxMj4+Ml09aztjW3ErKGcrOCk+PjJdPU87Y1txKyhn
KzEyKT4+Ml09bTticmVha31lPXA7aj1KPj4+ODtkb3tpZigoanwwKT09MCl7UT0wfWVsc2V7aWYo
Sj4+PjA+MTY3NzcyMTUpe1E9MzE7YnJlYWt9cj0oaisxMDQ4MzIwfDApPj4+MTYmODtpPWo8PHI7
ZD0oaSs1MjAxOTJ8MCk+Pj4xNiY0O0I9aTw8ZDtpPShCKzI0NTc2MHwwKT4+PjE2JjI7bD0xNC0o
ZHxyfGkpKyhCPDxpPj4+MTUpfDA7UT1KPj4+KChsKzd8MCk+Pj4wKSYxfGw8PDF9fXdoaWxlKDAp
O2o9MTAxNDQrKFE8PDIpfDA7Y1txKyhnKzI4KT4+Ml09UTtjW3ErKGcrMjApPj4yXT0wO2NbcSso
ZysxNik+PjJdPTA7bT1jWzI0NjFdfDA7bD0xPDxRO2lmKChtJmx8MCk9PTApe2NbMjQ2MV09bXxs
O2Nbaj4+Ml09ZTtjW3ErKGcrMjQpPj4yXT1qO2NbcSsoZysxMik+PjJdPWU7Y1txKyhnKzgpPj4y
XT1lO2JyZWFrfWlmKChRfDApPT0zMSl7Uj0wfWVsc2V7Uj0yNS0oUT4+PjEpfDB9bD1KPDxSO209
Y1tqPj4yXXwwO3doaWxlKDEpe2lmKChjW20rND4+Ml0mLTh8MCk9PShKfDApKXticmVha31TPW0r
MTYrKGw+Pj4zMTw8Mil8MDtqPWNbUz4+Ml18MDtpZigoanwwKT09MCl7VD02NjE7YnJlYWt9ZWxz
ZXtsPWw8PDE7bT1qfX1pZigoVHwwKT09NjYxKXtpZihTPj4+MDwoY1syNDY0XXwwKT4+PjApe2JH
KCk7cmV0dXJuIDB9ZWxzZXtjW1M+PjJdPWU7Y1txKyhnKzI0KT4+Ml09bTtjW3ErKGcrMTIpPj4y
XT1lO2NbcSsoZys4KT4+Ml09ZTticmVha319bD1tKzh8MDtqPWNbbD4+Ml18MDtpPWNbMjQ2NF18
MDtpZihtPj4+MDxpPj4+MCl7YkcoKTtyZXR1cm4gMH1pZihqPj4+MDxpPj4+MCl7YkcoKTtyZXR1
cm4gMH1lbHNle2NbaisxMj4+Ml09ZTtjW2w+PjJdPWU7Y1txKyhnKzgpPj4yXT1qO2NbcSsoZysx
Mik+PjJdPW07Y1txKyhnKzI0KT4+Ml09MDticmVha319fXdoaWxlKDApO3E9Sys4fDA7aWYoKHF8
MCk9PTApe289ZzticmVha31lbHNle249cX1yZXR1cm4gbnwwfX13aGlsZSgwKTtLPWNbMjQ2Ml18
MDtpZihvPj4+MDw9Sz4+PjApe1M9Sy1vfDA7Sj1jWzI0NjVdfDA7aWYoUz4+PjA+MTUpe1I9Sjtj
WzI0NjVdPVIrbztjWzI0NjJdPVM7Y1tSKyhvKzQpPj4yXT1TfDE7Y1tSK0s+PjJdPVM7Y1tKKzQ+
PjJdPW98M31lbHNle2NbMjQ2Ml09MDtjWzI0NjVdPTA7Y1tKKzQ+PjJdPUt8MztTPUorKEsrNCl8
MDtjW1M+PjJdPWNbUz4+Ml18MX1uPUorOHwwO3JldHVybiBufDB9Sj1jWzI0NjNdfDA7aWYobz4+
PjA8Sj4+PjApe1M9Si1vfDA7Y1syNDYzXT1TO0o9Y1syNDY2XXwwO0s9SjtjWzI0NjZdPUsrbztj
W0srKG8rNCk+PjJdPVN8MTtjW0orND4+Ml09b3wzO249Sis4fDA7cmV0dXJuIG58MH1kb3tpZigo
Y1syNDUwXXwwKT09MCl7Sj1iRSg4KXwwO2lmKChKLTEmSnwwKT09MCl7Y1syNDUyXT1KO2NbMjQ1
MV09SjtjWzI0NTNdPS0xO2NbMjQ1NF09LTE7Y1syNDU1XT0wO2NbMjU3MV09MDtjWzI0NTBdPShi
VigwKXwwKSYtMTZeMTQzMTY1NTc2ODticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgw
KTtKPW8rNDh8MDtTPWNbMjQ1Ml18MDtLPW8rNDd8MDtSPVMrS3wwO1E9LVN8MDtTPVImUTtpZihT
Pj4+MDw9bz4+PjApe249MDtyZXR1cm4gbnwwfU89Y1syNTcwXXwwO2Rve2lmKChPfDApIT0wKXtQ
PWNbMjU2OF18MDtMPVArU3wwO2lmKEw+Pj4wPD1QPj4+MHxMPj4+MD5PPj4+MCl7bj0wfWVsc2V7
YnJlYWt9cmV0dXJuIG58MH19d2hpbGUoMCk7TDkzMDpkb3tpZigoY1syNTcxXSY0fDApPT0wKXtP
PWNbMjQ2Nl18MDtMOTMyOmRve2lmKChPfDApPT0wKXtUPTY5MX1lbHNle0w9TztQPTEwMjg4O3do
aWxlKDEpe1U9UHwwO009Y1tVPj4yXXwwO2lmKE0+Pj4wPD1MPj4+MCl7Vj1QKzR8MDtpZigoTSso
Y1tWPj4yXXwwKXwwKT4+PjA+TD4+PjApe2JyZWFrfX1NPWNbUCs4Pj4yXXwwO2lmKChNfDApPT0w
KXtUPTY5MTticmVhayBMOTMyfWVsc2V7UD1NfX1pZigoUHwwKT09MCl7VD02OTE7YnJlYWt9TD1S
LShjWzI0NjNdfDApJlE7aWYoTD4+PjA+PTIxNDc0ODM2NDcpe1c9MDticmVha31tPWJ2KEx8MCl8
MDtlPShtfDApPT0oKGNbVT4+Ml18MCkrKGNbVj4+Ml18MCl8MCk7WD1lP206LTE7WT1lP0w6MDta
PW07Xz1MO1Q9NzAwfX13aGlsZSgwKTtkb3tpZigoVHwwKT09NjkxKXtPPWJ2KDApfDA7aWYoKE98
MCk9PS0xKXtXPTA7YnJlYWt9Zz1PO0w9Y1syNDUxXXwwO209TC0xfDA7aWYoKG0mZ3wwKT09MCl7
JD1TfWVsc2V7JD1TLWcrKG0rZyYtTCl8MH1MPWNbMjU2OF18MDtnPUwrJHwwO2lmKCEoJD4+PjA+
bz4+PjAmJD4+PjA8MjE0NzQ4MzY0Nykpe1c9MDticmVha31tPWNbMjU3MF18MDtpZigobXwwKSE9
MCl7aWYoZz4+PjA8PUw+Pj4wfGc+Pj4wPm0+Pj4wKXtXPTA7YnJlYWt9fW09YnYoJHwwKXwwO2c9
KG18MCk9PShPfDApO1g9Zz9POi0xO1k9Zz8kOjA7Wj1tO189JDtUPTcwMH19d2hpbGUoMCk7TDk1
Mjpkb3tpZigoVHwwKT09NzAwKXttPS1ffDA7aWYoKFh8MCkhPS0xKXthYT1ZO2FiPVg7VD03MTE7
YnJlYWsgTDkzMH1kb3tpZigoWnwwKSE9LTEmXz4+PjA8MjE0NzQ4MzY0NyZfPj4+MDxKPj4+MCl7
Zz1jWzI0NTJdfDA7Tz1LLV8rZyYtZztpZihPPj4+MD49MjE0NzQ4MzY0Nyl7YWM9XzticmVha31p
ZigoYnYoT3wwKXwwKT09LTEpe2J2KG18MCl8MDtXPVk7YnJlYWsgTDk1Mn1lbHNle2FjPU8rX3ww
O2JyZWFrfX1lbHNle2FjPV99fXdoaWxlKDApO2lmKChafDApPT0tMSl7Vz1ZfWVsc2V7YWE9YWM7
YWI9WjtUPTcxMTticmVhayBMOTMwfX19d2hpbGUoMCk7Y1syNTcxXT1jWzI1NzFdfDQ7YWQ9VztU
PTcwOH1lbHNle2FkPTA7VD03MDh9fXdoaWxlKDApO2Rve2lmKChUfDApPT03MDgpe2lmKFM+Pj4w
Pj0yMTQ3NDgzNjQ3KXticmVha31XPWJ2KFN8MCl8MDtaPWJ2KDApfDA7aWYoISgoWnwwKSE9LTEm
KFd8MCkhPS0xJlc+Pj4wPFo+Pj4wKSl7YnJlYWt9YWM9Wi1XfDA7Wj1hYz4+PjA+KG8rNDB8MCk+
Pj4wO1k9Wj9XOi0xO2lmKChZfDApIT0tMSl7YWE9Wj9hYzphZDthYj1ZO1Q9NzExfX19d2hpbGUo
MCk7ZG97aWYoKFR8MCk9PTcxMSl7YWQ9KGNbMjU2OF18MCkrYWF8MDtjWzI1NjhdPWFkO2lmKGFk
Pj4+MD4oY1syNTY5XXwwKT4+PjApe2NbMjU2OV09YWR9YWQ9Y1syNDY2XXwwO0w5NzI6ZG97aWYo
KGFkfDApPT0wKXtTPWNbMjQ2NF18MDtpZigoU3wwKT09MHxhYj4+PjA8Uz4+PjApe2NbMjQ2NF09
YWJ9Y1syNTcyXT1hYjtjWzI1NzNdPWFhO2NbMjU3NV09MDtjWzI0NjldPWNbMjQ1MF07Y1syNDY4
XT0tMTtTPTA7ZG97WT1TPDwxO2FjPTk4ODArKFk8PDIpfDA7Y1s5ODgwKyhZKzM8PDIpPj4yXT1h
YztjWzk4ODArKFkrMjw8Mik+PjJdPWFjO1M9UysxfDA7fXdoaWxlKFM+Pj4wPDMyKTtTPWFiKzh8
MDtpZigoUyY3fDApPT0wKXthZT0wfWVsc2V7YWU9LVMmN31TPWFhLTQwLWFlfDA7Y1syNDY2XT1h
YithZTtjWzI0NjNdPVM7Y1thYisoYWUrNCk+PjJdPVN8MTtjW2FiKyhhYS0zNik+PjJdPTQwO2Nb
MjQ2N109Y1syNDU0XX1lbHNle1M9MTAyODg7d2hpbGUoMSl7YWY9Y1tTPj4yXXwwO2FnPVMrNHww
O2FoPWNbYWc+PjJdfDA7aWYoKGFifDApPT0oYWYrYWh8MCkpe1Q9NzIzO2JyZWFrfWFjPWNbUys4
Pj4yXXwwO2lmKChhY3wwKT09MCl7YnJlYWt9ZWxzZXtTPWFjfX1kb3tpZigoVHwwKT09NzIzKXtp
ZigoY1tTKzEyPj4yXSY4fDApIT0wKXticmVha31hYz1hZDtpZighKGFjPj4+MD49YWY+Pj4wJmFj
Pj4+MDxhYj4+PjApKXticmVha31jW2FnPj4yXT1haCthYTthYz1jWzI0NjZdfDA7WT0oY1syNDYz
XXwwKSthYXwwO1o9YWM7Vz1hYys4fDA7aWYoKFcmN3wwKT09MCl7YWk9MH1lbHNle2FpPS1XJjd9
Vz1ZLWFpfDA7Y1syNDY2XT1aK2FpO2NbMjQ2M109VztjW1orKGFpKzQpPj4yXT1XfDE7Y1taKyhZ
KzQpPj4yXT00MDtjWzI0NjddPWNbMjQ1NF07YnJlYWsgTDk3Mn19d2hpbGUoMCk7aWYoYWI+Pj4w
PChjWzI0NjRdfDApPj4+MCl7Y1syNDY0XT1hYn1TPWFiK2FhfDA7WT0xMDI4ODt3aGlsZSgxKXth
aj1ZfDA7aWYoKGNbYWo+PjJdfDApPT0oU3wwKSl7VD03MzM7YnJlYWt9Wj1jW1krOD4+Ml18MDtp
ZigoWnwwKT09MCl7YnJlYWt9ZWxzZXtZPVp9fWRve2lmKChUfDApPT03MzMpe2lmKChjW1krMTI+
PjJdJjh8MCkhPTApe2JyZWFrfWNbYWo+PjJdPWFiO1M9WSs0fDA7Y1tTPj4yXT0oY1tTPj4yXXww
KSthYTtTPWFiKzh8MDtpZigoUyY3fDApPT0wKXthaz0wfWVsc2V7YWs9LVMmN31TPWFiKyhhYSs4
KXwwO2lmKChTJjd8MCk9PTApe2FsPTB9ZWxzZXthbD0tUyY3fVM9YWIrKGFsK2FhKXwwO1o9UztX
PWFrK298MDthYz1hYitXfDA7Xz1hYztLPVMtKGFiK2FrKS1vfDA7Y1thYisoYWsrNCk+PjJdPW98
Mztkb3tpZigoWnwwKT09KGNbMjQ2Nl18MCkpe0o9KGNbMjQ2M118MCkrS3wwO2NbMjQ2M109Sjtj
WzI0NjZdPV87Y1thYisoVys0KT4+Ml09SnwxfWVsc2V7aWYoKFp8MCk9PShjWzI0NjVdfDApKXtK
PShjWzI0NjJdfDApK0t8MDtjWzI0NjJdPUo7Y1syNDY1XT1fO2NbYWIrKFcrNCk+PjJdPUp8MTtj
W2FiKyhKK1cpPj4yXT1KO2JyZWFrfUo9YWErNHwwO1g9Y1thYisoSithbCk+PjJdfDA7aWYoKFgm
M3wwKT09MSl7JD1YJi04O1Y9WD4+PjM7TDEwMTc6ZG97aWYoWD4+PjA8MjU2KXtVPWNbYWIrKChh
bHw4KSthYSk+PjJdfDA7UT1jW2FiKyhhYSsxMithbCk+PjJdfDA7Uj05ODgwKyhWPDwxPDwyKXww
O2Rve2lmKChVfDApIT0oUnwwKSl7aWYoVT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVy
biAwfWlmKChjW1UrMTI+PjJdfDApPT0oWnwwKSl7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUo
MCk7aWYoKFF8MCk9PShVfDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxWKTticmVha31kb3tpZigo
UXwwKT09KFJ8MCkpe2FtPVErOHwwfWVsc2V7aWYoUT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygp
O3JldHVybiAwfW09USs4fDA7aWYoKGNbbT4+Ml18MCk9PShafDApKXthbT1tO2JyZWFrfWJHKCk7
cmV0dXJuIDB9fXdoaWxlKDApO2NbVSsxMj4+Ml09UTtjW2FtPj4yXT1VfWVsc2V7Uj1TO209Y1th
YisoKGFsfDI0KSthYSk+PjJdfDA7UD1jW2FiKyhhYSsxMithbCk+PjJdfDA7ZG97aWYoKFB8MCk9
PShSfDApKXtPPWFsfDE2O2c9YWIrKEorTyl8MDtMPWNbZz4+Ml18MDtpZigoTHwwKT09MCl7ZT1h
YisoTythYSl8MDtPPWNbZT4+Ml18MDtpZigoT3wwKT09MCl7YW49MDticmVha31lbHNle2FvPU87
YXA9ZX19ZWxzZXthbz1MO2FwPWd9d2hpbGUoMSl7Zz1hbysyMHwwO0w9Y1tnPj4yXXwwO2lmKChM
fDApIT0wKXthbz1MO2FwPWc7Y29udGludWV9Zz1hbysxNnwwO0w9Y1tnPj4yXXwwO2lmKChMfDAp
PT0wKXticmVha31lbHNle2FvPUw7YXA9Z319aWYoYXA+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KTtyZXR1cm4gMH1lbHNle2NbYXA+PjJdPTA7YW49YW87YnJlYWt9fWVsc2V7Zz1jW2FiKygoYWx8
OCkrYWEpPj4yXXwwO2lmKGc+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1MPWcr
MTJ8MDtpZigoY1tMPj4yXXwwKSE9KFJ8MCkpe2JHKCk7cmV0dXJuIDB9ZT1QKzh8MDtpZigoY1tl
Pj4yXXwwKT09KFJ8MCkpe2NbTD4+Ml09UDtjW2U+PjJdPWc7YW49UDticmVha31lbHNle2JHKCk7
cmV0dXJuIDB9fX13aGlsZSgwKTtpZigobXwwKT09MCl7YnJlYWt9UD1hYisoYWErMjgrYWwpfDA7
VT0xMDE0NCsoY1tQPj4yXTw8Mil8MDtkb3tpZigoUnwwKT09KGNbVT4+Ml18MCkpe2NbVT4+Ml09
YW47aWYoKGFufDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW1A+PjJdKTticmVh
ayBMMTAxN31lbHNle2lmKG0+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1RPW0r
MTZ8MDtpZigoY1tRPj4yXXwwKT09KFJ8MCkpe2NbUT4+Ml09YW59ZWxzZXtjW20rMjA+PjJdPWFu
fWlmKChhbnwwKT09MCl7YnJlYWsgTDEwMTd9fX13aGlsZSgwKTtpZihhbj4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpO3JldHVybiAwfWNbYW4rMjQ+PjJdPW07Uj1hbHwxNjtQPWNbYWIrKFIrYWEp
Pj4yXXwwO2Rve2lmKChQfDApIT0wKXtpZihQPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0
dXJuIDB9ZWxzZXtjW2FuKzE2Pj4yXT1QO2NbUCsyND4+Ml09YW47YnJlYWt9fX13aGlsZSgwKTtQ
PWNbYWIrKEorUik+PjJdfDA7aWYoKFB8MCk9PTApe2JyZWFrfWlmKFA+Pj4wPChjWzI0NjRdfDAp
Pj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbYW4rMjA+PjJdPVA7Y1tQKzI0Pj4yXT1hbjticmVh
a319fXdoaWxlKDApO2FxPWFiKygoJHxhbCkrYWEpfDA7YXI9JCtLfDB9ZWxzZXthcT1aO2FyPUt9
Sj1hcSs0fDA7Y1tKPj4yXT1jW0o+PjJdJi0yO2NbYWIrKFcrNCk+PjJdPWFyfDE7Y1thYisoYXIr
Vyk+PjJdPWFyO0o9YXI+Pj4zO2lmKGFyPj4+MDwyNTYpe1Y9Sjw8MTtYPTk4ODArKFY8PDIpfDA7
UD1jWzI0NjBdfDA7bT0xPDxKO2Rve2lmKChQJm18MCk9PTApe2NbMjQ2MF09UHxtO2FzPVg7YXQ9
OTg4MCsoVisyPDwyKXwwfWVsc2V7Sj05ODgwKyhWKzI8PDIpfDA7VT1jW0o+PjJdfDA7aWYoVT4+
PjA+PShjWzI0NjRdfDApPj4+MCl7YXM9VTthdD1KO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxl
KDApO2NbYXQ+PjJdPV87Y1thcysxMj4+Ml09XztjW2FiKyhXKzgpPj4yXT1hcztjW2FiKyhXKzEy
KT4+Ml09WDticmVha31WPWFjO209YXI+Pj44O2Rve2lmKChtfDApPT0wKXthdT0wfWVsc2V7aWYo
YXI+Pj4wPjE2Nzc3MjE1KXthdT0zMTticmVha31QPShtKzEwNDgzMjB8MCk+Pj4xNiY4OyQ9bTw8
UDtKPSgkKzUyMDE5MnwwKT4+PjE2JjQ7VT0kPDxKOyQ9KFUrMjQ1NzYwfDApPj4+MTYmMjtRPTE0
LShKfFB8JCkrKFU8PCQ+Pj4xNSl8MDthdT1hcj4+PigoUSs3fDApPj4+MCkmMXxRPDwxfX13aGls
ZSgwKTttPTEwMTQ0KyhhdTw8Mil8MDtjW2FiKyhXKzI4KT4+Ml09YXU7Y1thYisoVysyMCk+PjJd
PTA7Y1thYisoVysxNik+PjJdPTA7WD1jWzI0NjFdfDA7UT0xPDxhdTtpZigoWCZRfDApPT0wKXtj
WzI0NjFdPVh8UTtjW20+PjJdPVY7Y1thYisoVysyNCk+PjJdPW07Y1thYisoVysxMik+PjJdPVY7
Y1thYisoVys4KT4+Ml09VjticmVha31pZigoYXV8MCk9PTMxKXthdj0wfWVsc2V7YXY9MjUtKGF1
Pj4+MSl8MH1RPWFyPDxhdjtYPWNbbT4+Ml18MDt3aGlsZSgxKXtpZigoY1tYKzQ+PjJdJi04fDAp
PT0oYXJ8MCkpe2JyZWFrfWF3PVgrMTYrKFE+Pj4zMTw8Mil8MDttPWNbYXc+PjJdfDA7aWYoKG18
MCk9PTApe1Q9ODA2O2JyZWFrfWVsc2V7UT1RPDwxO1g9bX19aWYoKFR8MCk9PTgwNil7aWYoYXc+
Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbYXc+PjJdPVY7Y1thYiso
VysyNCk+PjJdPVg7Y1thYisoVysxMik+PjJdPVY7Y1thYisoVys4KT4+Ml09VjticmVha319UT1Y
Kzh8MDttPWNbUT4+Ml18MDskPWNbMjQ2NF18MDtpZihYPj4+MDwkPj4+MCl7YkcoKTtyZXR1cm4g
MH1pZihtPj4+MDwkPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbbSsxMj4+Ml09VjtjW1E+PjJd
PVY7Y1thYisoVys4KT4+Ml09bTtjW2FiKyhXKzEyKT4+Ml09WDtjW2FiKyhXKzI0KT4+Ml09MDti
cmVha319fXdoaWxlKDApO249YWIrKGFrfDgpfDA7cmV0dXJuIG58MH19d2hpbGUoMCk7WT1hZDtX
PTEwMjg4O3doaWxlKDEpe2F4PWNbVz4+Ml18MDtpZihheD4+PjA8PVk+Pj4wKXtheT1jW1crND4+
Ml18MDthej1heCtheXwwO2lmKGF6Pj4+MD5ZPj4+MCl7YnJlYWt9fVc9Y1tXKzg+PjJdfDB9Vz1h
eCsoYXktMzkpfDA7aWYoKFcmN3wwKT09MCl7YUE9MH1lbHNle2FBPS1XJjd9Vz1heCsoYXktNDcr
YUEpfDA7YWM9Vz4+PjA8KGFkKzE2fDApPj4+MD9ZOlc7Vz1hYys4fDA7Xz1hYis4fDA7aWYoKF8m
N3wwKT09MCl7YUI9MH1lbHNle2FCPS1fJjd9Xz1hYS00MC1hQnwwO2NbMjQ2Nl09YWIrYUI7Y1sy
NDYzXT1fO2NbYWIrKGFCKzQpPj4yXT1ffDE7Y1thYisoYWEtMzYpPj4yXT00MDtjWzI0NjddPWNb
MjQ1NF07Y1thYys0Pj4yXT0yNztjW1c+PjJdPWNbMjU3Ml07Y1tXKzQ+PjJdPWNbMTAyOTI+PjJd
O2NbVys4Pj4yXT1jWzEwMjk2Pj4yXTtjW1crMTI+PjJdPWNbMTAzMDA+PjJdO2NbMjU3Ml09YWI7
Y1syNTczXT1hYTtjWzI1NzVdPTA7Y1syNTc0XT1XO1c9YWMrMjh8MDtjW1c+PjJdPTc7aWYoKGFj
KzMyfDApPj4+MDxhej4+PjApe189Vzt3aGlsZSgxKXtXPV8rNHwwO2NbVz4+Ml09NztpZigoXys4
fDApPj4+MDxhej4+PjApe189V31lbHNle2JyZWFrfX19aWYoKGFjfDApPT0oWXwwKSl7YnJlYWt9
Xz1hYy1hZHwwO1c9WSsoXys0KXwwO2NbVz4+Ml09Y1tXPj4yXSYtMjtjW2FkKzQ+PjJdPV98MTtj
W1krXz4+Ml09XztXPV8+Pj4zO2lmKF8+Pj4wPDI1Nil7Sz1XPDwxO1o9OTg4MCsoSzw8Mil8MDtT
PWNbMjQ2MF18MDttPTE8PFc7ZG97aWYoKFMmbXwwKT09MCl7Y1syNDYwXT1TfG07YUM9WjthRD05
ODgwKyhLKzI8PDIpfDB9ZWxzZXtXPTk4ODArKEsrMjw8Mil8MDtRPWNbVz4+Ml18MDtpZihRPj4+
MD49KGNbMjQ2NF18MCk+Pj4wKXthQz1RO2FEPVc7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUo
MCk7Y1thRD4+Ml09YWQ7Y1thQysxMj4+Ml09YWQ7Y1thZCs4Pj4yXT1hQztjW2FkKzEyPj4yXT1a
O2JyZWFrfUs9YWQ7bT1fPj4+ODtkb3tpZigobXwwKT09MCl7YUU9MH1lbHNle2lmKF8+Pj4wPjE2
Nzc3MjE1KXthRT0zMTticmVha31TPShtKzEwNDgzMjB8MCk+Pj4xNiY4O1k9bTw8UzthYz0oWSs1
MjAxOTJ8MCk+Pj4xNiY0O1c9WTw8YWM7WT0oVysyNDU3NjB8MCk+Pj4xNiYyO1E9MTQtKGFjfFN8
WSkrKFc8PFk+Pj4xNSl8MDthRT1fPj4+KChRKzd8MCk+Pj4wKSYxfFE8PDF9fXdoaWxlKDApO209
MTAxNDQrKGFFPDwyKXwwO2NbYWQrMjg+PjJdPWFFO2NbYWQrMjA+PjJdPTA7Y1thZCsxNj4+Ml09
MDtaPWNbMjQ2MV18MDtRPTE8PGFFO2lmKChaJlF8MCk9PTApe2NbMjQ2MV09WnxRO2NbbT4+Ml09
SztjW2FkKzI0Pj4yXT1tO2NbYWQrMTI+PjJdPWFkO2NbYWQrOD4+Ml09YWQ7YnJlYWt9aWYoKGFF
fDApPT0zMSl7YUY9MH1lbHNle2FGPTI1LShhRT4+PjEpfDB9UT1fPDxhRjtaPWNbbT4+Ml18MDt3
aGlsZSgxKXtpZigoY1taKzQ+PjJdJi04fDApPT0oX3wwKSl7YnJlYWt9YUc9WisxNisoUT4+PjMx
PDwyKXwwO209Y1thRz4+Ml18MDtpZigobXwwKT09MCl7VD04NDE7YnJlYWt9ZWxzZXtRPVE8PDE7
Wj1tfX1pZigoVHwwKT09ODQxKXtpZihhRz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVy
biAwfWVsc2V7Y1thRz4+Ml09SztjW2FkKzI0Pj4yXT1aO2NbYWQrMTI+PjJdPWFkO2NbYWQrOD4+
Ml09YWQ7YnJlYWt9fVE9Wis4fDA7Xz1jW1E+PjJdfDA7bT1jWzI0NjRdfDA7aWYoWj4+PjA8bT4+
PjApe2JHKCk7cmV0dXJuIDB9aWYoXz4+PjA8bT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW18r
MTI+PjJdPUs7Y1tRPj4yXT1LO2NbYWQrOD4+Ml09XztjW2FkKzEyPj4yXT1aO2NbYWQrMjQ+PjJd
PTA7YnJlYWt9fX13aGlsZSgwKTthZD1jWzI0NjNdfDA7aWYoYWQ+Pj4wPD1vPj4+MCl7YnJlYWt9
Xz1hZC1vfDA7Y1syNDYzXT1fO2FkPWNbMjQ2Nl18MDtRPWFkO2NbMjQ2Nl09UStvO2NbUSsobys0
KT4+Ml09X3wxO2NbYWQrND4+Ml09b3wzO249YWQrOHwwO3JldHVybiBufDB9fXdoaWxlKDApO2Nb
KGJ3KCl8MCk+PjJdPTEyO249MDtyZXR1cm4gbnwwfWZ1bmN0aW9uIGtLKGEpe2E9YXwwO3ZhciBi
PTAsZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MDtpZigoYXwwKT09MCl7cmV0
dXJufWI9YS04fDA7ZD1iO2U9Y1syNDY0XXwwO2lmKGI+Pj4wPGU+Pj4wKXtiRygpfWY9Y1thLTQ+
PjJdfDA7Zz1mJjM7aWYoKGd8MCk9PTEpe2JHKCl9aD1mJi04O2k9YSsoaC04KXwwO2o9aTtMMTE4
OTpkb3tpZigoZiYxfDApPT0wKXtrPWNbYj4+Ml18MDtpZigoZ3wwKT09MCl7cmV0dXJufWw9LTgt
a3wwO209YStsfDA7bj1tO289aytofDA7aWYobT4+PjA8ZT4+PjApe2JHKCl9aWYoKG58MCk9PShj
WzI0NjVdfDApKXtwPWErKGgtNCl8MDtpZigoY1twPj4yXSYzfDApIT0zKXtxPW47cj1vO2JyZWFr
fWNbMjQ2Ml09bztjW3A+PjJdPWNbcD4+Ml0mLTI7Y1thKyhsKzQpPj4yXT1vfDE7Y1tpPj4yXT1v
O3JldHVybn1wPWs+Pj4zO2lmKGs+Pj4wPDI1Nil7az1jW2ErKGwrOCk+PjJdfDA7cz1jW2ErKGwr
MTIpPj4yXXwwO3Q9OTg4MCsocDw8MTw8Mil8MDtkb3tpZigoa3wwKSE9KHR8MCkpe2lmKGs+Pj4w
PGU+Pj4wKXtiRygpfWlmKChjW2srMTI+PjJdfDApPT0obnwwKSl7YnJlYWt9YkcoKX19d2hpbGUo
MCk7aWYoKHN8MCk9PShrfDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxwKTtxPW47cj1vO2JyZWFr
fWRve2lmKChzfDApPT0odHwwKSl7dT1zKzh8MH1lbHNle2lmKHM+Pj4wPGU+Pj4wKXtiRygpfXY9
cys4fDA7aWYoKGNbdj4+Ml18MCk9PShufDApKXt1PXY7YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1tr
KzEyPj4yXT1zO2NbdT4+Ml09aztxPW47cj1vO2JyZWFrfXQ9bTtwPWNbYSsobCsyNCk+PjJdfDA7
dj1jW2ErKGwrMTIpPj4yXXwwO2Rve2lmKCh2fDApPT0odHwwKSl7dz1hKyhsKzIwKXwwO3g9Y1t3
Pj4yXXwwO2lmKCh4fDApPT0wKXt5PWErKGwrMTYpfDA7ej1jW3k+PjJdfDA7aWYoKHp8MCk9PTAp
e0E9MDticmVha31lbHNle0I9ejtDPXl9fWVsc2V7Qj14O0M9d313aGlsZSgxKXt3PUIrMjB8MDt4
PWNbdz4+Ml18MDtpZigoeHwwKSE9MCl7Qj14O0M9dztjb250aW51ZX13PUIrMTZ8MDt4PWNbdz4+
Ml18MDtpZigoeHwwKT09MCl7YnJlYWt9ZWxzZXtCPXg7Qz13fX1pZihDPj4+MDxlPj4+MCl7Ykco
KX1lbHNle2NbQz4+Ml09MDtBPUI7YnJlYWt9fWVsc2V7dz1jW2ErKGwrOCk+PjJdfDA7aWYodz4+
PjA8ZT4+PjApe2JHKCl9eD13KzEyfDA7aWYoKGNbeD4+Ml18MCkhPSh0fDApKXtiRygpfXk9dis4
fDA7aWYoKGNbeT4+Ml18MCk9PSh0fDApKXtjW3g+PjJdPXY7Y1t5Pj4yXT13O0E9djticmVha31l
bHNle2JHKCl9fX13aGlsZSgwKTtpZigocHwwKT09MCl7cT1uO3I9bzticmVha312PWErKGwrMjgp
fDA7bT0xMDE0NCsoY1t2Pj4yXTw8Mil8MDtkb3tpZigodHwwKT09KGNbbT4+Ml18MCkpe2NbbT4+
Ml09QTtpZigoQXwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1t2Pj4yXSk7cT1u
O3I9bzticmVhayBMMTE4OX1lbHNle2lmKHA+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1rPXAr
MTZ8MDtpZigoY1trPj4yXXwwKT09KHR8MCkpe2Nbaz4+Ml09QX1lbHNle2NbcCsyMD4+Ml09QX1p
ZigoQXwwKT09MCl7cT1uO3I9bzticmVhayBMMTE4OX19fXdoaWxlKDApO2lmKEE+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKX1jW0ErMjQ+PjJdPXA7dD1jW2ErKGwrMTYpPj4yXXwwO2Rve2lmKCh0
fDApIT0wKXtpZih0Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW0ErMTY+PjJdPXQ7
Y1t0KzI0Pj4yXT1BO2JyZWFrfX19d2hpbGUoMCk7dD1jW2ErKGwrMjApPj4yXXwwO2lmKCh0fDAp
PT0wKXtxPW47cj1vO2JyZWFrfWlmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2Nb
QSsyMD4+Ml09dDtjW3QrMjQ+PjJdPUE7cT1uO3I9bzticmVha319ZWxzZXtxPWQ7cj1ofX13aGls
ZSgwKTtkPXE7aWYoZD4+PjA+PWk+Pj4wKXtiRygpfUE9YSsoaC00KXwwO2U9Y1tBPj4yXXwwO2lm
KChlJjF8MCk9PTApe2JHKCl9ZG97aWYoKGUmMnwwKT09MCl7aWYoKGp8MCk9PShjWzI0NjZdfDAp
KXtCPShjWzI0NjNdfDApK3J8MDtjWzI0NjNdPUI7Y1syNDY2XT1xO2NbcSs0Pj4yXT1CfDE7aWYo
KHF8MCkhPShjWzI0NjVdfDApKXtyZXR1cm59Y1syNDY1XT0wO2NbMjQ2Ml09MDtyZXR1cm59aWYo
KGp8MCk9PShjWzI0NjVdfDApKXtCPShjWzI0NjJdfDApK3J8MDtjWzI0NjJdPUI7Y1syNDY1XT1x
O2NbcSs0Pj4yXT1CfDE7Y1tkK0I+PjJdPUI7cmV0dXJufUI9KGUmLTgpK3J8MDtDPWU+Pj4zO0wx
MjkyOmRve2lmKGU+Pj4wPDI1Nil7dT1jW2EraD4+Ml18MDtnPWNbYSsoaHw0KT4+Ml18MDtiPTk4
ODArKEM8PDE8PDIpfDA7ZG97aWYoKHV8MCkhPShifDApKXtpZih1Pj4+MDwoY1syNDY0XXwwKT4+
PjApe2JHKCl9aWYoKGNbdSsxMj4+Ml18MCk9PShqfDApKXticmVha31iRygpfX13aGlsZSgwKTtp
ZigoZ3wwKT09KHV8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PEMpO2JyZWFrfWRve2lmKChnfDAp
PT0oYnwwKSl7RD1nKzh8MH1lbHNle2lmKGc+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1mPWcr
OHwwO2lmKChjW2Y+PjJdfDApPT0oanwwKSl7RD1mO2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbdSsx
Mj4+Ml09ZztjW0Q+PjJdPXV9ZWxzZXtiPWk7Zj1jW2ErKGgrMTYpPj4yXXwwO3Q9Y1thKyhofDQp
Pj4yXXwwO2Rve2lmKCh0fDApPT0oYnwwKSl7cD1hKyhoKzEyKXwwO3Y9Y1twPj4yXXwwO2lmKCh2
fDApPT0wKXttPWErKGgrOCl8MDtrPWNbbT4+Ml18MDtpZigoa3wwKT09MCl7RT0wO2JyZWFrfWVs
c2V7Rj1rO0c9bX19ZWxzZXtGPXY7Rz1wfXdoaWxlKDEpe3A9RisyMHwwO3Y9Y1twPj4yXXwwO2lm
KCh2fDApIT0wKXtGPXY7Rz1wO2NvbnRpbnVlfXA9RisxNnwwO3Y9Y1twPj4yXXwwO2lmKCh2fDAp
PT0wKXticmVha31lbHNle0Y9djtHPXB9fWlmKEc+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1l
bHNle2NbRz4+Ml09MDtFPUY7YnJlYWt9fWVsc2V7cD1jW2EraD4+Ml18MDtpZihwPj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCl9dj1wKzEyfDA7aWYoKGNbdj4+Ml18MCkhPShifDApKXtiRygpfW09
dCs4fDA7aWYoKGNbbT4+Ml18MCk9PShifDApKXtjW3Y+PjJdPXQ7Y1ttPj4yXT1wO0U9dDticmVh
a31lbHNle2JHKCl9fX13aGlsZSgwKTtpZigoZnwwKT09MCl7YnJlYWt9dD1hKyhoKzIwKXwwO3U9
MTAxNDQrKGNbdD4+Ml08PDIpfDA7ZG97aWYoKGJ8MCk9PShjW3U+PjJdfDApKXtjW3U+PjJdPUU7
aWYoKEV8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbdD4+Ml0pO2JyZWFrIEwx
MjkyfWVsc2V7aWYoZj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWc9ZisxNnwwO2lmKChjW2c+
PjJdfDApPT0oYnwwKSl7Y1tnPj4yXT1FfWVsc2V7Y1tmKzIwPj4yXT1FfWlmKChFfDApPT0wKXti
cmVhayBMMTI5Mn19fXdoaWxlKDApO2lmKEU+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1jW0Ur
MjQ+PjJdPWY7Yj1jW2ErKGgrOCk+PjJdfDA7ZG97aWYoKGJ8MCkhPTApe2lmKGI+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbRSsxNj4+Ml09YjtjW2IrMjQ+PjJdPUU7YnJlYWt9fX13
aGlsZSgwKTtiPWNbYSsoaCsxMik+PjJdfDA7aWYoKGJ8MCk9PTApe2JyZWFrfWlmKGI+Pj4wPChj
WzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbRSsyMD4+Ml09YjtjW2IrMjQ+PjJdPUU7YnJlYWt9
fX13aGlsZSgwKTtjW3ErND4+Ml09QnwxO2NbZCtCPj4yXT1CO2lmKChxfDApIT0oY1syNDY1XXww
KSl7SD1CO2JyZWFrfWNbMjQ2Ml09QjtyZXR1cm59ZWxzZXtjW0E+PjJdPWUmLTI7Y1txKzQ+PjJd
PXJ8MTtjW2Qrcj4+Ml09cjtIPXJ9fXdoaWxlKDApO3I9SD4+PjM7aWYoSD4+PjA8MjU2KXtkPXI8
PDE7ZT05ODgwKyhkPDwyKXwwO0E9Y1syNDYwXXwwO0U9MTw8cjtkb3tpZigoQSZFfDApPT0wKXtj
WzI0NjBdPUF8RTtJPWU7Sj05ODgwKyhkKzI8PDIpfDB9ZWxzZXtyPTk4ODArKGQrMjw8Mil8MDto
PWNbcj4+Ml18MDtpZihoPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXtJPWg7Sj1yO2JyZWFrfWJHKCl9
fXdoaWxlKDApO2NbSj4+Ml09cTtjW0krMTI+PjJdPXE7Y1txKzg+PjJdPUk7Y1txKzEyPj4yXT1l
O3JldHVybn1lPXE7ST1IPj4+ODtkb3tpZigoSXwwKT09MCl7Sz0wfWVsc2V7aWYoSD4+PjA+MTY3
NzcyMTUpe0s9MzE7YnJlYWt9Sj0oSSsxMDQ4MzIwfDApPj4+MTYmODtkPUk8PEo7RT0oZCs1MjAx
OTJ8MCk+Pj4xNiY0O0E9ZDw8RTtkPShBKzI0NTc2MHwwKT4+PjE2JjI7cj0xNC0oRXxKfGQpKyhB
PDxkPj4+MTUpfDA7Sz1IPj4+KChyKzd8MCk+Pj4wKSYxfHI8PDF9fXdoaWxlKDApO0k9MTAxNDQr
KEs8PDIpfDA7Y1txKzI4Pj4yXT1LO2NbcSsyMD4+Ml09MDtjW3ErMTY+PjJdPTA7cj1jWzI0NjFd
fDA7ZD0xPDxLO2Rve2lmKChyJmR8MCk9PTApe2NbMjQ2MV09cnxkO2NbST4+Ml09ZTtjW3ErMjQ+
PjJdPUk7Y1txKzEyPj4yXT1xO2NbcSs4Pj4yXT1xfWVsc2V7aWYoKEt8MCk9PTMxKXtMPTB9ZWxz
ZXtMPTI1LShLPj4+MSl8MH1BPUg8PEw7Sj1jW0k+PjJdfDA7d2hpbGUoMSl7aWYoKGNbSis0Pj4y
XSYtOHwwKT09KEh8MCkpe2JyZWFrfU09SisxNisoQT4+PjMxPDwyKXwwO0U9Y1tNPj4yXXwwO2lm
KChFfDApPT0wKXtOPTEwMTg7YnJlYWt9ZWxzZXtBPUE8PDE7Sj1FfX1pZigoTnwwKT09MTAxOCl7
aWYoTT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tNPj4yXT1lO2NbcSsyND4+Ml09
SjtjW3ErMTI+PjJdPXE7Y1txKzg+PjJdPXE7YnJlYWt9fUE9Sis4fDA7Qj1jW0E+PjJdfDA7RT1j
WzI0NjRdfDA7aWYoSj4+PjA8RT4+PjApe2JHKCl9aWYoQj4+PjA8RT4+PjApe2JHKCl9ZWxzZXtj
W0IrMTI+PjJdPWU7Y1tBPj4yXT1lO2NbcSs4Pj4yXT1CO2NbcSsxMj4+Ml09SjtjW3ErMjQ+PjJd
PTA7YnJlYWt9fX13aGlsZSgwKTtxPShjWzI0NjhdfDApLTF8MDtjWzI0NjhdPXE7aWYoKHF8MCk9
PTApe089MTAyOTZ9ZWxzZXtyZXR1cm59d2hpbGUoMSl7cT1jW08+PjJdfDA7aWYoKHF8MCk9PTAp
e2JyZWFrfWVsc2V7Tz1xKzh8MH19Y1syNDY4XT0tMTtyZXR1cm59ZnVuY3Rpb24ga0woYSxiKXth
PWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wO2lmKChhfDApPT0wKXtkPWtKKGIpfDA7cmV0
dXJuIGR8MH1pZihiPj4+MD40Mjk0OTY3MjMxKXtjWyhidygpfDApPj4yXT0xMjtkPTA7cmV0dXJu
IGR8MH1pZihiPj4+MDwxMSl7ZT0xNn1lbHNle2U9YisxMSYtOH1mPWtNKGEtOHwwLGUpfDA7aWYo
KGZ8MCkhPTApe2Q9Zis4fDA7cmV0dXJuIGR8MH1mPWtKKGIpfDA7aWYoKGZ8MCk9PTApe2Q9MDty
ZXR1cm4gZHwwfWU9Y1thLTQ+PjJdfDA7Zz0oZSYtOCktKChlJjN8MCk9PTA/ODo0KXwwO2U9Zz4+
PjA8Yj4+PjA/ZzpiO2tZKGZ8MCxhfDAsZSl8MDtrSyhhKTtkPWY7cmV0dXJuIGR8MH1mdW5jdGlv
biBrTShhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MDtkPWErNHwwO2U9Y1tkPj4yXXwwO2Y9ZSYtODtnPWE7aD1nK2Z8MDtpPWg7aj1jWzI0
NjRdfDA7aWYoZz4+PjA8aj4+PjApe2JHKCk7cmV0dXJuIDB9az1lJjM7aWYoISgoa3wwKSE9MSZn
Pj4+MDxoPj4+MCkpe2JHKCk7cmV0dXJuIDB9bD1nKyhmfDQpfDA7bT1jW2w+PjJdfDA7aWYoKG0m
MXwwKT09MCl7YkcoKTtyZXR1cm4gMH1pZigoa3wwKT09MCl7aWYoYj4+PjA8MjU2KXtuPTA7cmV0
dXJuIG58MH1kb3tpZihmPj4+MD49KGIrNHwwKT4+PjApe2lmKChmLWJ8MCk+Pj4wPmNbMjQ1Ml08
PDE+Pj4wKXticmVha31lbHNle249YX1yZXR1cm4gbnwwfX13aGlsZSgwKTtuPTA7cmV0dXJuIG58
MH1pZihmPj4+MD49Yj4+PjApe2s9Zi1ifDA7aWYoaz4+PjA8PTE1KXtuPWE7cmV0dXJuIG58MH1j
W2Q+PjJdPWUmMXxifDI7Y1tnKyhiKzQpPj4yXT1rfDM7Y1tsPj4yXT1jW2w+PjJdfDE7a04oZyti
fDAsayk7bj1hO3JldHVybiBufDB9aWYoKGl8MCk9PShjWzI0NjZdfDApKXtrPShjWzI0NjNdfDAp
K2Z8MDtpZihrPj4+MDw9Yj4+PjApe249MDtyZXR1cm4gbnwwfWw9ay1ifDA7Y1tkPj4yXT1lJjF8
YnwyO2NbZysoYis0KT4+Ml09bHwxO2NbMjQ2Nl09ZytiO2NbMjQ2M109bDtuPWE7cmV0dXJuIG58
MH1pZigoaXwwKT09KGNbMjQ2NV18MCkpe2w9KGNbMjQ2Ml18MCkrZnwwO2lmKGw+Pj4wPGI+Pj4w
KXtuPTA7cmV0dXJuIG58MH1rPWwtYnwwO2lmKGs+Pj4wPjE1KXtjW2Q+PjJdPWUmMXxifDI7Y1tn
KyhiKzQpPj4yXT1rfDE7Y1tnK2w+PjJdPWs7bz1nKyhsKzQpfDA7Y1tvPj4yXT1jW28+PjJdJi0y
O3A9ZytifDA7cT1rfWVsc2V7Y1tkPj4yXT1lJjF8bHwyO2U9ZysobCs0KXwwO2NbZT4+Ml09Y1tl
Pj4yXXwxO3A9MDtxPTB9Y1syNDYyXT1xO2NbMjQ2NV09cDtuPWE7cmV0dXJuIG58MH1pZigobSYy
fDApIT0wKXtuPTA7cmV0dXJuIG58MH1wPShtJi04KStmfDA7aWYocD4+PjA8Yj4+PjApe249MDty
ZXR1cm4gbnwwfXE9cC1ifDA7ZT1tPj4+MztMMTQ3ODpkb3tpZihtPj4+MDwyNTYpe2w9Y1tnKyhm
KzgpPj4yXXwwO2s9Y1tnKyhmKzEyKT4+Ml18MDtvPTk4ODArKGU8PDE8PDIpfDA7ZG97aWYoKGx8
MCkhPShvfDApKXtpZihsPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1pZigoY1tsKzEyPj4yXXww
KT09KGl8MCkpe2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2lmKChrfDApPT0obHwwKSl7
Y1syNDYwXT1jWzI0NjBdJn4oMTw8ZSk7YnJlYWt9ZG97aWYoKGt8MCk9PShvfDApKXtyPWsrOHww
fWVsc2V7aWYoaz4+PjA8aj4+PjApe2JHKCk7cmV0dXJuIDB9cz1rKzh8MDtpZigoY1tzPj4yXXww
KT09KGl8MCkpe3I9czticmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtjW2wrMTI+PjJdPWs7
Y1tyPj4yXT1sfWVsc2V7bz1oO3M9Y1tnKyhmKzI0KT4+Ml18MDt0PWNbZysoZisxMik+PjJdfDA7
ZG97aWYoKHR8MCk9PShvfDApKXt1PWcrKGYrMjApfDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCk9PTAp
e3c9ZysoZisxNil8MDt4PWNbdz4+Ml18MDtpZigoeHwwKT09MCl7eT0wO2JyZWFrfWVsc2V7ej14
O0E9d319ZWxzZXt6PXY7QT11fXdoaWxlKDEpe3U9eisyMHwwO3Y9Y1t1Pj4yXXwwO2lmKCh2fDAp
IT0wKXt6PXY7QT11O2NvbnRpbnVlfXU9eisxNnwwO3Y9Y1t1Pj4yXXwwO2lmKCh2fDApPT0wKXti
cmVha31lbHNle3o9djtBPXV9fWlmKEE+Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tB
Pj4yXT0wO3k9ejticmVha319ZWxzZXt1PWNbZysoZis4KT4+Ml18MDtpZih1Pj4+MDxqPj4+MCl7
YkcoKTtyZXR1cm4gMH12PXUrMTJ8MDtpZigoY1t2Pj4yXXwwKSE9KG98MCkpe2JHKCk7cmV0dXJu
IDB9dz10Kzh8MDtpZigoY1t3Pj4yXXwwKT09KG98MCkpe2Nbdj4+Ml09dDtjW3c+PjJdPXU7eT10
O2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDApO2lmKChzfDApPT0wKXticmVha310
PWcrKGYrMjgpfDA7bD0xMDE0NCsoY1t0Pj4yXTw8Mil8MDtkb3tpZigob3wwKT09KGNbbD4+Ml18
MCkpe2NbbD4+Ml09eTtpZigoeXwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1t0
Pj4yXSk7YnJlYWsgTDE0Nzh9ZWxzZXtpZihzPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0
dXJuIDB9az1zKzE2fDA7aWYoKGNbaz4+Ml18MCk9PShvfDApKXtjW2s+PjJdPXl9ZWxzZXtjW3Mr
MjA+PjJdPXl9aWYoKHl8MCk9PTApe2JyZWFrIEwxNDc4fX19d2hpbGUoMCk7aWYoeT4+PjA8KGNb
MjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWNbeSsyND4+Ml09cztvPWNbZysoZisxNik+PjJd
fDA7ZG97aWYoKG98MCkhPTApe2lmKG8+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4g
MH1lbHNle2NbeSsxNj4+Ml09bztjW28rMjQ+PjJdPXk7YnJlYWt9fX13aGlsZSgwKTtvPWNbZyso
ZisyMCk+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfWlmKG8+Pj4wPChjWzI0NjRdfDApPj4+MCl7
YkcoKTtyZXR1cm4gMH1lbHNle2NbeSsyMD4+Ml09bztjW28rMjQ+PjJdPXk7YnJlYWt9fX13aGls
ZSgwKTtpZihxPj4+MDwxNil7Y1tkPj4yXT1wfGNbZD4+Ml0mMXwyO3k9ZysocHw0KXwwO2NbeT4+
Ml09Y1t5Pj4yXXwxO249YTtyZXR1cm4gbnwwfWVsc2V7Y1tkPj4yXT1jW2Q+PjJdJjF8YnwyO2Nb
ZysoYis0KT4+Ml09cXwzO2Q9ZysocHw0KXwwO2NbZD4+Ml09Y1tkPj4yXXwxO2tOKGcrYnwwLHEp
O249YTtyZXR1cm4gbnwwfXJldHVybiAwfWZ1bmN0aW9uIGtOKGEsYil7YT1hfDA7Yj1ifDA7dmFy
IGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTA7ZD1hO2U9ZCtifDA7Zj1lO2c9Y1thKzQ+PjJdfDA7
TDE1NTQ6ZG97aWYoKGcmMXwwKT09MCl7aD1jW2E+PjJdfDA7aWYoKGcmM3wwKT09MCl7cmV0dXJu
fWk9ZCsoLWh8MCl8MDtqPWk7az1oK2J8MDtsPWNbMjQ2NF18MDtpZihpPj4+MDxsPj4+MCl7Ykco
KX1pZigoanwwKT09KGNbMjQ2NV18MCkpe209ZCsoYis0KXwwO2lmKChjW20+PjJdJjN8MCkhPTMp
e249ajtvPWs7YnJlYWt9Y1syNDYyXT1rO2NbbT4+Ml09Y1ttPj4yXSYtMjtjW2QrKDQtaCk+PjJd
PWt8MTtjW2U+PjJdPWs7cmV0dXJufW09aD4+PjM7aWYoaD4+PjA8MjU2KXtwPWNbZCsoOC1oKT4+
Ml18MDtxPWNbZCsoMTItaCk+PjJdfDA7cj05ODgwKyhtPDwxPDwyKXwwO2Rve2lmKChwfDApIT0o
cnwwKSl7aWYocD4+PjA8bD4+PjApe2JHKCl9aWYoKGNbcCsxMj4+Ml18MCk9PShqfDApKXticmVh
a31iRygpfX13aGlsZSgwKTtpZigocXwwKT09KHB8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PG0p
O249ajtvPWs7YnJlYWt9ZG97aWYoKHF8MCk9PShyfDApKXtzPXErOHwwfWVsc2V7aWYocT4+PjA8
bD4+PjApe2JHKCl9dD1xKzh8MDtpZigoY1t0Pj4yXXwwKT09KGp8MCkpe3M9dDticmVha31iRygp
fX13aGlsZSgwKTtjW3ArMTI+PjJdPXE7Y1tzPj4yXT1wO249ajtvPWs7YnJlYWt9cj1pO209Y1tk
KygyNC1oKT4+Ml18MDt0PWNbZCsoMTItaCk+PjJdfDA7ZG97aWYoKHR8MCk9PShyfDApKXt1PTE2
LWh8MDt2PWQrKHUrNCl8MDt3PWNbdj4+Ml18MDtpZigod3wwKT09MCl7eD1kK3V8MDt1PWNbeD4+
Ml18MDtpZigodXwwKT09MCl7eT0wO2JyZWFrfWVsc2V7ej11O0E9eH19ZWxzZXt6PXc7QT12fXdo
aWxlKDEpe3Y9eisyMHwwO3c9Y1t2Pj4yXXwwO2lmKCh3fDApIT0wKXt6PXc7QT12O2NvbnRpbnVl
fXY9eisxNnwwO3c9Y1t2Pj4yXXwwO2lmKCh3fDApPT0wKXticmVha31lbHNle3o9dztBPXZ9fWlm
KEE+Pj4wPGw+Pj4wKXtiRygpfWVsc2V7Y1tBPj4yXT0wO3k9ejticmVha319ZWxzZXt2PWNbZCso
OC1oKT4+Ml18MDtpZih2Pj4+MDxsPj4+MCl7YkcoKX13PXYrMTJ8MDtpZigoY1t3Pj4yXXwwKSE9
KHJ8MCkpe2JHKCl9eD10Kzh8MDtpZigoY1t4Pj4yXXwwKT09KHJ8MCkpe2Nbdz4+Ml09dDtjW3g+
PjJdPXY7eT10O2JyZWFrfWVsc2V7YkcoKX19fXdoaWxlKDApO2lmKChtfDApPT0wKXtuPWo7bz1r
O2JyZWFrfXQ9ZCsoMjgtaCl8MDtsPTEwMTQ0KyhjW3Q+PjJdPDwyKXwwO2Rve2lmKChyfDApPT0o
Y1tsPj4yXXwwKSl7Y1tsPj4yXT15O2lmKCh5fDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0m
figxPDxjW3Q+PjJdKTtuPWo7bz1rO2JyZWFrIEwxNTU0fWVsc2V7aWYobT4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpfWk9bSsxNnwwO2lmKChjW2k+PjJdfDApPT0ocnwwKSl7Y1tpPj4yXT15fWVs
c2V7Y1ttKzIwPj4yXT15fWlmKCh5fDApPT0wKXtuPWo7bz1rO2JyZWFrIEwxNTU0fX19d2hpbGUo
MCk7aWYoeT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWNbeSsyND4+Ml09bTtyPTE2LWh8MDt0
PWNbZCtyPj4yXXwwO2Rve2lmKCh0fDApIT0wKXtpZih0Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JH
KCl9ZWxzZXtjW3krMTY+PjJdPXQ7Y1t0KzI0Pj4yXT15O2JyZWFrfX19d2hpbGUoMCk7dD1jW2Qr
KHIrNCk+PjJdfDA7aWYoKHR8MCk9PTApe249ajtvPWs7YnJlYWt9aWYodD4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpfWVsc2V7Y1t5KzIwPj4yXT10O2NbdCsyND4+Ml09eTtuPWo7bz1rO2JyZWFr
fX1lbHNle249YTtvPWJ9fXdoaWxlKDApO2E9Y1syNDY0XXwwO2lmKGU+Pj4wPGE+Pj4wKXtiRygp
fXk9ZCsoYis0KXwwO3o9Y1t5Pj4yXXwwO2Rve2lmKCh6JjJ8MCk9PTApe2lmKChmfDApPT0oY1sy
NDY2XXwwKSl7QT0oY1syNDYzXXwwKStvfDA7Y1syNDYzXT1BO2NbMjQ2Nl09bjtjW24rND4+Ml09
QXwxO2lmKChufDApIT0oY1syNDY1XXwwKSl7cmV0dXJufWNbMjQ2NV09MDtjWzI0NjJdPTA7cmV0
dXJufWlmKChmfDApPT0oY1syNDY1XXwwKSl7QT0oY1syNDYyXXwwKStvfDA7Y1syNDYyXT1BO2Nb
MjQ2NV09bjtjW24rND4+Ml09QXwxO2NbbitBPj4yXT1BO3JldHVybn1BPSh6Ji04KStvfDA7cz16
Pj4+MztMMTY1Mzpkb3tpZih6Pj4+MDwyNTYpe2c9Y1tkKyhiKzgpPj4yXXwwO3Q9Y1tkKyhiKzEy
KT4+Ml18MDtoPTk4ODArKHM8PDE8PDIpfDA7ZG97aWYoKGd8MCkhPShofDApKXtpZihnPj4+MDxh
Pj4+MCl7YkcoKX1pZigoY1tnKzEyPj4yXXwwKT09KGZ8MCkpe2JyZWFrfWJHKCl9fXdoaWxlKDAp
O2lmKCh0fDApPT0oZ3wwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8cyk7YnJlYWt9ZG97aWYoKHR8
MCk9PShofDApKXtCPXQrOHwwfWVsc2V7aWYodD4+PjA8YT4+PjApe2JHKCl9bT10Kzh8MDtpZigo
Y1ttPj4yXXwwKT09KGZ8MCkpe0I9bTticmVha31iRygpfX13aGlsZSgwKTtjW2crMTI+PjJdPXQ7
Y1tCPj4yXT1nfWVsc2V7aD1lO209Y1tkKyhiKzI0KT4+Ml18MDtsPWNbZCsoYisxMik+PjJdfDA7
ZG97aWYoKGx8MCk9PShofDApKXtpPWQrKGIrMjApfDA7cD1jW2k+PjJdfDA7aWYoKHB8MCk9PTAp
e3E9ZCsoYisxNil8MDt2PWNbcT4+Ml18MDtpZigodnwwKT09MCl7Qz0wO2JyZWFrfWVsc2V7RD12
O0U9cX19ZWxzZXtEPXA7RT1pfXdoaWxlKDEpe2k9RCsyMHwwO3A9Y1tpPj4yXXwwO2lmKChwfDAp
IT0wKXtEPXA7RT1pO2NvbnRpbnVlfWk9RCsxNnwwO3A9Y1tpPj4yXXwwO2lmKChwfDApPT0wKXti
cmVha31lbHNle0Q9cDtFPWl9fWlmKEU+Pj4wPGE+Pj4wKXtiRygpfWVsc2V7Y1tFPj4yXT0wO0M9
RDticmVha319ZWxzZXtpPWNbZCsoYis4KT4+Ml18MDtpZihpPj4+MDxhPj4+MCl7YkcoKX1wPWkr
MTJ8MDtpZigoY1twPj4yXXwwKSE9KGh8MCkpe2JHKCl9cT1sKzh8MDtpZigoY1txPj4yXXwwKT09
KGh8MCkpe2NbcD4+Ml09bDtjW3E+PjJdPWk7Qz1sO2JyZWFrfWVsc2V7YkcoKX19fXdoaWxlKDAp
O2lmKChtfDApPT0wKXticmVha31sPWQrKGIrMjgpfDA7Zz0xMDE0NCsoY1tsPj4yXTw8Mil8MDtk
b3tpZigoaHwwKT09KGNbZz4+Ml18MCkpe2NbZz4+Ml09QztpZigoQ3wwKSE9MCl7YnJlYWt9Y1sy
NDYxXT1jWzI0NjFdJn4oMTw8Y1tsPj4yXSk7YnJlYWsgTDE2NTN9ZWxzZXtpZihtPj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCl9dD1tKzE2fDA7aWYoKGNbdD4+Ml18MCk9PShofDApKXtjW3Q+PjJd
PUN9ZWxzZXtjW20rMjA+PjJdPUN9aWYoKEN8MCk9PTApe2JyZWFrIEwxNjUzfX19d2hpbGUoMCk7
aWYoQz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWNbQysyND4+Ml09bTtoPWNbZCsoYisxNik+
PjJdfDA7ZG97aWYoKGh8MCkhPTApe2lmKGg+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNl
e2NbQysxNj4+Ml09aDtjW2grMjQ+PjJdPUM7YnJlYWt9fX13aGlsZSgwKTtoPWNbZCsoYisyMCk+
PjJdfDA7aWYoKGh8MCk9PTApe2JyZWFrfWlmKGg+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1l
bHNle2NbQysyMD4+Ml09aDtjW2grMjQ+PjJdPUM7YnJlYWt9fX13aGlsZSgwKTtjW24rND4+Ml09
QXwxO2NbbitBPj4yXT1BO2lmKChufDApIT0oY1syNDY1XXwwKSl7Rj1BO2JyZWFrfWNbMjQ2Ml09
QTtyZXR1cm59ZWxzZXtjW3k+PjJdPXomLTI7Y1tuKzQ+PjJdPW98MTtjW24rbz4+Ml09bztGPW99
fXdoaWxlKDApO289Rj4+PjM7aWYoRj4+PjA8MjU2KXt6PW88PDE7eT05ODgwKyh6PDwyKXwwO0M9
Y1syNDYwXXwwO2I9MTw8bztkb3tpZigoQyZifDApPT0wKXtjWzI0NjBdPUN8YjtHPXk7SD05ODgw
Kyh6KzI8PDIpfDB9ZWxzZXtvPTk4ODArKHorMjw8Mil8MDtkPWNbbz4+Ml18MDtpZihkPj4+MD49
KGNbMjQ2NF18MCk+Pj4wKXtHPWQ7SD1vO2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbSD4+Ml09bjtj
W0crMTI+PjJdPW47Y1tuKzg+PjJdPUc7Y1tuKzEyPj4yXT15O3JldHVybn15PW47Rz1GPj4+ODtk
b3tpZigoR3wwKT09MCl7ST0wfWVsc2V7aWYoRj4+PjA+MTY3NzcyMTUpe0k9MzE7YnJlYWt9SD0o
RysxMDQ4MzIwfDApPj4+MTYmODt6PUc8PEg7Yj0oeis1MjAxOTJ8MCk+Pj4xNiY0O0M9ejw8Yjt6
PShDKzI0NTc2MHwwKT4+PjE2JjI7bz0xNC0oYnxIfHopKyhDPDx6Pj4+MTUpfDA7ST1GPj4+KChv
Kzd8MCk+Pj4wKSYxfG88PDF9fXdoaWxlKDApO0c9MTAxNDQrKEk8PDIpfDA7Y1tuKzI4Pj4yXT1J
O2NbbisyMD4+Ml09MDtjW24rMTY+PjJdPTA7bz1jWzI0NjFdfDA7ej0xPDxJO2lmKChvJnp8MCk9
PTApe2NbMjQ2MV09b3x6O2NbRz4+Ml09eTtjW24rMjQ+PjJdPUc7Y1tuKzEyPj4yXT1uO2Nbbis4
Pj4yXT1uO3JldHVybn1pZigoSXwwKT09MzEpe0o9MH1lbHNle0o9MjUtKEk+Pj4xKXwwfUk9Rjw8
SjtKPWNbRz4+Ml18MDt3aGlsZSgxKXtpZigoY1tKKzQ+PjJdJi04fDApPT0oRnwwKSl7YnJlYWt9
Sz1KKzE2KyhJPj4+MzE8PDIpfDA7Rz1jW0s+PjJdfDA7aWYoKEd8MCk9PTApe0w9MTI5ODticmVh
a31lbHNle0k9STw8MTtKPUd9fWlmKChMfDApPT0xMjk4KXtpZihLPj4+MDwoY1syNDY0XXwwKT4+
PjApe2JHKCl9Y1tLPj4yXT15O2NbbisyND4+Ml09SjtjW24rMTI+PjJdPW47Y1tuKzg+PjJdPW47
cmV0dXJufUs9Sis4fDA7TD1jW0s+PjJdfDA7ST1jWzI0NjRdfDA7aWYoSj4+PjA8ST4+PjApe2JH
KCl9aWYoTD4+PjA8ST4+PjApe2JHKCl9Y1tMKzEyPj4yXT15O2NbSz4+Ml09eTtjW24rOD4+Ml09
TDtjW24rMTI+PjJdPUo7Y1tuKzI0Pj4yXT0wO3JldHVybn1mdW5jdGlvbiBrTyhhKXthPWF8MDt2
YXIgYj0wLGQ9MCxlPTA7Yj0oYXwwKT09MD8xOmE7d2hpbGUoMSl7ZD1rSihiKXwwO2lmKChkfDAp
IT0wKXtlPTEzNDI7YnJlYWt9YT0oST1jWzQwNDhdfDAsY1s0MDQ4XT1JKzAsSSk7aWYoKGF8MCk9
PTApe2JyZWFrfWI1W2EmM10oKX1pZigoZXwwKT09MTM0Mil7cmV0dXJuIGR8MH1kPWJPKDQpfDA7
Y1tkPj4yXT0yNDA4O2JsKGR8MCw4MTYwLDMwKTtyZXR1cm4gMH1mdW5jdGlvbiBrUChhKXthPWF8
MDtyZXR1cm4ga08oYSl8MH1mdW5jdGlvbiBrUShhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24ga1Io
YSl7YT1hfDA7cmV0dXJuIDExNjB8MH1mdW5jdGlvbiBrUyhhKXthPWF8MDtpZigoYXwwKSE9MCl7
a0soYSl9cmV0dXJufWZ1bmN0aW9uIGtUKGEpe2E9YXwwO2tTKGEpO3JldHVybn1mdW5jdGlvbiBr
VShhKXthPWF8MDtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga1YoYixkKXtiPWJ8MDtkPWR8MDt2YXIg
ZT0wLGY9MCxnPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAuMCxyPTAscz0w
LHQ9MCx1PTAsdj0wLjAsdz0wLHg9MCx5PTAsej0wLjAsQT0wLjAsQj0wLEM9MCxEPTAsRT0wLjAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAuMCxPPTAsUD0wLFE9MC4wLFI9MC4w
LFM9MC4wO2U9Yjt3aGlsZSgxKXtmPWUrMXwwO2lmKChhUChhW2VdfDApfDApPT0wKXticmVha31l
bHNle2U9Zn19c3dpdGNoKGFbZV18MCl7Y2FzZSA0Mzp7Zz1mO2k9MDticmVha307Y2FzZSA0NTp7
Zz1mO2k9MTticmVha307ZGVmYXVsdDp7Zz1lO2k9MH19ZT0tMTtmPTA7aj1nO3doaWxlKDEpe2s9
YVtqXXwwO2lmKCgoazw8MjQ+PjI0KS00OHwwKT4+PjA8MTApe2w9ZX1lbHNle2lmKGs8PDI0Pj4y
NCE9NDZ8KGV8MCk+LTEpe2JyZWFrfWVsc2V7bD1mfX1lPWw7Zj1mKzF8MDtqPWorMXwwfWw9aiso
LWZ8MCl8MDtnPShlfDApPDA7bT0oKGdeMSk8PDMxPj4zMSkrZnwwO249KG18MCk+MTg7bz0obj8t
MTg6LW18MCkrKGc/ZjplKXwwO2U9bj8xODptO2Rve2lmKChlfDApPT0wKXtwPWI7cT0wLjB9ZWxz
ZXtpZigoZXwwKT45KXttPWw7bj1lO2Y9MDt3aGlsZSgxKXtnPWFbbV18MDtyPW0rMXwwO2lmKGc8
PDI0Pj4yND09NDYpe3M9YVtyXXwwO3Q9bSsyfDB9ZWxzZXtzPWc7dD1yfXU9KGYqMTB8MCktNDgr
KHM8PDI0Pj4yNCl8MDtyPW4tMXwwO2lmKChyfDApPjkpe209dDtuPXI7Zj11fWVsc2V7YnJlYWt9
fXY9Kyh1fDApKjEuMGU5O3c9OTt4PXQ7eT0xMzcwfWVsc2V7aWYoKGV8MCk+MCl7dj0wLjA7dz1l
O3g9bDt5PTEzNzB9ZWxzZXt6PTAuMDtBPTAuMH19aWYoKHl8MCk9PTEzNzApe2Y9eDtuPXc7bT0w
O3doaWxlKDEpe3I9YVtmXXwwO2c9ZisxfDA7aWYocjw8MjQ+PjI0PT00Nil7Qj1hW2ddfDA7Qz1m
KzJ8MH1lbHNle0I9cjtDPWd9RD0obSoxMHwwKS00OCsoQjw8MjQ+PjI0KXwwO2c9bi0xfDA7aWYo
KGd8MCk+MCl7Zj1DO249ZzttPUR9ZWxzZXticmVha319ej0rKER8MCk7QT12fUU9QSt6O0wxODE2
OmRve3N3aXRjaChrPDwyND4+MjQpe2Nhc2UgNjk6Y2FzZSAxMDE6e209aisxfDA7c3dpdGNoKGFb
bV18MCl7Y2FzZSA0NTp7Rj1qKzJ8MDtHPTE7YnJlYWt9O2Nhc2UgNDM6e0Y9aisyfDA7Rz0wO2Jy
ZWFrfTtkZWZhdWx0OntGPW07Rz0wfX1tPWFbRl18MDtpZigoKG08PDI0Pj4yNCktNDh8MCk+Pj4w
PDEwKXtIPUY7ST0wO0o9bX1lbHNle0s9MDtMPUY7TT1HO2JyZWFrIEwxODE2fXdoaWxlKDEpe209
KEkqMTB8MCktNDgrKEo8PDI0Pj4yNCl8MDtuPUgrMXwwO2Y9YVtuXXwwO2lmKCgoZjw8MjQ+PjI0
KS00OHwwKT4+PjA8MTApe0g9bjtJPW07Sj1mfWVsc2V7Sz1tO0w9bjtNPUc7YnJlYWt9fWJyZWFr
fTtkZWZhdWx0OntLPTA7TD1qO009MH19fXdoaWxlKDApO249bysoKE18MCk9PTA/SzotS3wwKXww
O209KG58MCk8MD8tbnwwOm47aWYoKG18MCk+NTExKXtjWyhidygpfDApPj4yXT0zNDtOPTEuMDtP
PTg7UD01MTE7eT0xMzg3fWVsc2V7aWYoKG18MCk9PTApe1E9MS4wfWVsc2V7Tj0xLjA7Tz04O1A9
bTt5PTEzODd9fWlmKCh5fDApPT0xMzg3KXt3aGlsZSgxKXt5PTA7aWYoKFAmMXwwKT09MCl7Uj1O
fWVsc2V7Uj1OKitoW08+PjNdfW09UD4+MTtpZigobXwwKT09MCl7UT1SO2JyZWFrfWVsc2V7Tj1S
O089Tys4fDA7UD1tO3k9MTM4N319fWlmKChufDApPi0xKXtwPUw7cT1FKlE7YnJlYWt9ZWxzZXtw
PUw7cT1FL1E7YnJlYWt9fX13aGlsZSgwKTtpZigoZHwwKSE9MCl7Y1tkPj4yXT1wfWlmKChpfDAp
PT0wKXtTPXE7cmV0dXJuK1N9Uz0tMC4wLXE7cmV0dXJuK1N9ZnVuY3Rpb24ga1coYSxiLGMpe2E9
YXwwO2I9YnwwO2M9Y3wwO3JldHVybisoK2tWKGEsYikpfWZ1bmN0aW9uIGtYKCl7dmFyIGE9MDth
PWJPKDQpfDA7Y1thPj4yXT0yNDA4O2JsKGF8MCw4MTYwLDMwKX1mdW5jdGlvbiBrWShiLGQsZSl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MDtmPWJ8MDtpZigoYiYzKT09KGQmMykpe3doaWxlKGIm
Myl7aWYoKGV8MCk9PTApcmV0dXJuIGZ8MDthW2JdPWFbZF18MDtiPWIrMXwwO2Q9ZCsxfDA7ZT1l
LTF8MH13aGlsZSgoZXwwKT49NCl7Y1tiPj4yXT1jW2Q+PjJdO2I9Yis0fDA7ZD1kKzR8MDtlPWUt
NHwwfX13aGlsZSgoZXwwKT4wKXthW2JdPWFbZF18MDtiPWIrMXwwO2Q9ZCsxfDA7ZT1lLTF8MH1y
ZXR1cm4gZnwwfWZ1bmN0aW9uIGtaKGIpe2I9YnwwO3ZhciBjPTA7Yz1hW24rKGI+Pj4yNCl8MF18
MDtpZigoY3wwKTw4KXJldHVybiBjfDA7Yz1hW24rKGI+PjE2JjI1NSl8MF18MDtpZigoY3wwKTw4
KXJldHVybiBjKzh8MDtjPWFbbisoYj4+OCYyNTUpfDBdfDA7aWYoKGN8MCk8OClyZXR1cm4gYysx
NnwwO3JldHVybihhW24rKGImMjU1KXwwXXwwKSsyNHwwfWZ1bmN0aW9uIGtfKGIsYyxkKXtiPWJ8
MDtjPWN8MDtkPWR8MDtpZigoY3wwKTwoYnwwKSYoYnwwKTwoYytkfDApKXtjPWMrZHwwO2I9Yitk
fDA7d2hpbGUoKGR8MCk+MCl7Yj1iLTF8MDtjPWMtMXwwO2Q9ZC0xfDA7YVtiXT1hW2NdfDB9fWVs
c2V7a1koYixjLGQpfDB9fWZ1bmN0aW9uIGskKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIg
Zj0wLGc9MCxoPTA7Zj1iK2V8MDtpZigoZXwwKT49MjApe2Q9ZCYyNTU7ZT1iJjM7Zz1kfGQ8PDh8
ZDw8MTZ8ZDw8MjQ7aD1mJn4zO2lmKGUpe2U9Yis0LWV8MDt3aGlsZSgoYnwwKTwoZXwwKSl7YVti
XT1kO2I9YisxfDB9fXdoaWxlKChifDApPChofDApKXtjW2I+PjJdPWc7Yj1iKzR8MH19d2hpbGUo
KGJ8MCk8KGZ8MCkpe2FbYl09ZDtiPWIrMXwwfX1mdW5jdGlvbiBrMChiKXtiPWJ8MDt2YXIgYz0w
O2M9Yjt3aGlsZShhW2NdfDApe2M9YysxfDB9cmV0dXJuIGMtYnwwfWZ1bmN0aW9uIGsxKGEsYixj
LGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTA7ZT1hK2M+Pj4wO3JldHVybihLPWIr
ZCsoZT4+PjA8YT4+PjB8MCk+Pj4wLGV8MCl8MH1mdW5jdGlvbiBrMihhLGIsYyxkKXthPWF8MDti
PWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wO2U9Yi1kPj4+MDtlPWItZC0oYz4+PjA+YT4+PjB8MCk+
Pj4wO3JldHVybihLPWUsYS1jPj4+MHwwKXwwfWZ1bmN0aW9uIGszKGEsYixjKXthPWF8MDtiPWJ8
MDtjPWN8MDtpZigoY3wwKTwzMil7Sz1iPDxjfChhJigxPDxjKS0xPDwzMi1jKT4+PjMyLWM7cmV0
dXJuIGE8PGN9Sz1hPDxjLTMyO3JldHVybiAwfWZ1bmN0aW9uIGs0KGEsYixjKXthPWF8MDtiPWJ8
MDtjPWN8MDtpZigoY3wwKTwzMil7Sz1iPj4+YztyZXR1cm4gYT4+PmN8KGImKDE8PGMpLTEpPDwz
Mi1jfUs9MDtyZXR1cm4gYj4+PmMtMzJ8MH1mdW5jdGlvbiBrNShhLGIsYyl7YT1hfDA7Yj1ifDA7
Yz1jfDA7aWYoKGN8MCk8MzIpe0s9Yj4+YztyZXR1cm4gYT4+PmN8KGImKDE8PGMpLTEpPDwzMi1j
fUs9KGJ8MCk8MD8tMTowO3JldHVybiBiPj5jLTMyfDB9ZnVuY3Rpb24gazYoYil7Yj1ifDA7dmFy
IGM9MDtjPWFbbSsoYiYyNTUpfDBdfDA7aWYoKGN8MCk8OClyZXR1cm4gY3wwO2M9YVttKyhiPj44
JjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjKzh8MDtjPWFbbSsoYj4+MTYmMjU1KXwwXXww
O2lmKChjfDApPDgpcmV0dXJuIGMrMTZ8MDtyZXR1cm4oYVttKyhiPj4+MjQpfDBdfDApKzI0fDB9
ZnVuY3Rpb24gazcoYSxiKXthPWF8MDtiPWJ8MDt2YXIgYz0wLGQ9MCxlPTAsZj0wO2M9YSY2NTUz
NTtkPWImNjU1MzU7ZT1hZyhkLGMpfDA7Zj1hPj4+MTY7YT0oZT4+PjE2KSsoYWcoZCxmKXwwKXww
O2Q9Yj4+PjE2O2I9YWcoZCxjKXwwO3JldHVybihLPShhPj4+MTYpKyhhZyhkLGYpfDApKygoKGEm
NjU1MzUpK2J8MCk+Pj4xNil8MCxhK2I8PDE2fGUmNjU1MzV8MCl8MH1mdW5jdGlvbiBrOChhLGIs
YyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MDtlPWI+
PjMxfCgoYnwwKTwwPy0xOjApPDwxO2Y9KChifDApPDA/LTE6MCk+PjMxfCgoYnwwKTwwPy0xOjAp
PDwxO2c9ZD4+MzF8KChkfDApPDA/LTE6MCk8PDE7aD0oKGR8MCk8MD8tMTowKT4+MzF8KChkfDAp
PDA/LTE6MCk8PDE7aT1rMihlXmEsZl5iLGUsZil8MDtiPUs7YT1nXmU7ZT1oXmY7Zj1rMigobGQo
aSxiLGsyKGdeYyxoXmQsZyxoKXwwLEssMCl8MCleYSxLXmUsYSxlKXwwO3JldHVybihLPUssZil8
MH1mdW5jdGlvbiBrOShhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9
MCxoPTAsaj0wLGs9MCxsPTAsbT0wO2Y9aTtpPWkrOHwwO2c9ZnwwO2g9Yj4+MzF8KChifDApPDA/
LTE6MCk8PDE7aj0oKGJ8MCk8MD8tMTowKT4+MzF8KChifDApPDA/LTE6MCk8PDE7az1lPj4zMXwo
KGV8MCk8MD8tMTowKTw8MTtsPSgoZXwwKTwwPy0xOjApPj4zMXwoKGV8MCk8MD8tMTowKTw8MTtt
PWsyKGheYSxqXmIsaCxqKXwwO2I9SzthPWsyKGteZCxsXmUsayxsKXwwO2xkKG0sYixhLEssZyl8
MDthPWsyKGNbZz4+Ml1eaCxjW2crND4+Ml1eaixoLGopfDA7aj1LO2k9ZjtyZXR1cm4oSz1qLGEp
fDB9ZnVuY3Rpb24gbGEoYSxiLGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7dmFyIGU9MCxm
PTA7ZT1hO2E9YztjPWs3KGUsYSl8MDtmPUs7cmV0dXJuKEs9KGFnKGIsYSl8MCkrKGFnKGQsZSl8
MCkrZnxmJjAsY3wwfDApfDB9ZnVuY3Rpb24gbGIoYSxiLGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7
ZD1kfDA7dmFyIGU9MDtlPWxkKGEsYixjLGQsMCl8MDtyZXR1cm4oSz1LLGUpfDB9ZnVuY3Rpb24g
bGMoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTA7Zj1pO2k9aSs4
fDA7Zz1mfDA7bGQoYSxiLGQsZSxnKXwwO2k9ZjtyZXR1cm4oSz1jW2crND4+Ml18MCxjW2c+PjJd
fDApfDB9ZnVuY3Rpb24gbGQoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTAsTD0wLE09MDtnPWE7aD1iO2k9aDtqPWQ7az1lO2w9aztpZigoaXwwKT09MCl7
bT0oZnwwKSE9MDtpZigobHwwKT09MCl7aWYobSl7Y1tmPj4yXT0oZz4+PjApJShqPj4+MCk7Y1tm
KzQ+PjJdPTB9bj0wO289KGc+Pj4wKS8oaj4+PjApPj4+MDtyZXR1cm4oSz1uLG8pfDB9ZWxzZXtp
ZighbSl7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9Y1tmPj4yXT1hfDA7Y1tmKzQ+PjJdPWImMDtu
PTA7bz0wO3JldHVybihLPW4sbyl8MH19bT0obHwwKT09MDtkb3tpZigoanwwKT09MCl7aWYobSl7
aWYoKGZ8MCkhPTApe2NbZj4+Ml09KGk+Pj4wKSUoaj4+PjApO2NbZis0Pj4yXT0wfW49MDtvPShp
Pj4+MCkvKGo+Pj4wKT4+PjA7cmV0dXJuKEs9bixvKXwwfWlmKChnfDApPT0wKXtpZigoZnwwKSE9
MCl7Y1tmPj4yXT0wO2NbZis0Pj4yXT0oaT4+PjApJShsPj4+MCl9bj0wO289KGk+Pj4wKS8obD4+
PjApPj4+MDtyZXR1cm4oSz1uLG8pfDB9cD1sLTF8MDtpZigocCZsfDApPT0wKXtpZigoZnwwKSE9
MCl7Y1tmPj4yXT1hfDA7Y1tmKzQ+PjJdPXAmaXxiJjB9bj0wO289aT4+PigoazYobHwwKXwwKT4+
PjApO3JldHVybihLPW4sbyl8MH1wPShrWihsfDApfDApLShrWihpfDApfDApfDA7aWYocD4+PjA8
PTMwKXtxPXArMXwwO3I9MzEtcHwwO3M9cTt0PWk8PHJ8Zz4+PihxPj4+MCk7dT1pPj4+KHE+Pj4w
KTt2PTA7dz1nPDxyO2JyZWFrfWlmKChmfDApPT0wKXtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1j
W2Y+PjJdPWF8MDtjW2YrND4+Ml09aHxiJjA7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9ZWxzZXtp
ZighbSl7cj0oa1oobHwwKXwwKS0oa1ooaXwwKXwwKXwwO2lmKHI+Pj4wPD0zMSl7cT1yKzF8MDtw
PTMxLXJ8MDt4PXItMzE+PjMxO3M9cTt0PWc+Pj4ocT4+PjApJnh8aTw8cDt1PWk+Pj4ocT4+PjAp
Jng7dj0wO3c9Zzw8cDticmVha31pZigoZnwwKT09MCl7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9
Y1tmPj4yXT1hfDA7Y1tmKzQ+PjJdPWh8YiYwO249MDtvPTA7cmV0dXJuKEs9bixvKXwwfXA9ai0x
fDA7aWYoKHAmanwwKSE9MCl7eD0oa1ooanwwKXwwKSszMy0oa1ooaXwwKXwwKXwwO3E9NjQteHww
O3I9MzIteHwwO3k9cj4+MzE7ej14LTMyfDA7QT16Pj4zMTtzPXg7dD1yLTE+PjMxJmk+Pj4oej4+
PjApfChpPDxyfGc+Pj4oeD4+PjApKSZBO3U9QSZpPj4+KHg+Pj4wKTt2PWc8PHEmeTt3PShpPDxx
fGc+Pj4oej4+PjApKSZ5fGc8PHImeC0zMz4+MzE7YnJlYWt9aWYoKGZ8MCkhPTApe2NbZj4+Ml09
cCZnO2NbZis0Pj4yXT0wfWlmKChqfDApPT0xKXtuPWh8YiYwO289YXwwfDA7cmV0dXJuKEs9bixv
KXwwfWVsc2V7cD1rNihqfDApfDA7bj1pPj4+KHA+Pj4wKXwwO289aTw8MzItcHxnPj4+KHA+Pj4w
KXwwO3JldHVybihLPW4sbyl8MH19fXdoaWxlKDApO2lmKChzfDApPT0wKXtCPXc7Qz12O0Q9dTtF
PXQ7Rj0wO0c9MH1lbHNle2c9ZHwwfDA7ZD1rfGUmMDtlPWsxKGcsZCwtMSwtMSl8MDtrPUs7aT13
O3c9djt2PXU7dT10O3Q9cztzPTA7d2hpbGUoMSl7SD13Pj4+MzF8aTw8MTtJPXN8dzw8MTtqPXU8
PDF8aT4+PjMxfDA7YT11Pj4+MzF8djw8MXwwO2syKGUsayxqLGEpfDA7Yj1LO2g9Yj4+MzF8KChi
fDApPDA/LTE6MCk8PDE7Sj1oJjE7TD1rMihqLGEsaCZnLCgoKGJ8MCk8MD8tMTowKT4+MzF8KChi
fDApPDA/LTE6MCk8PDEpJmQpfDA7TT1LO2I9dC0xfDA7aWYoKGJ8MCk9PTApe2JyZWFrfWVsc2V7
aT1IO3c9STt2PU07dT1MO3Q9YjtzPUp9fUI9SDtDPUk7RD1NO0U9TDtGPTA7Rz1KfUo9QztDPTA7
aWYoKGZ8MCkhPTApe2NbZj4+Ml09RTtjW2YrND4+Ml09RH1uPShKfDApPj4+MzF8KEJ8Qyk8PDF8
KEM8PDF8Sj4+PjMxKSYwfEY7bz0oSjw8MXwwPj4+MzEpJi0yfEc7cmV0dXJuKEs9bixvKXwwfWZ1
bmN0aW9uIGxlKCl7YlAoKX1mdW5jdGlvbiBsZihhLGIsYyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1j
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7YldbYSY3XShifDAsY3wwLGR8MCxlfDAsZnwwKX1mdW5jdGlv
biBsZyhhLGIsYyxkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2JYW2EmMTI3XShifDAsY3wwLGR8MCxlfDAsZnwwLGd8MCxofDApfWZ1bmN0
aW9uIGxoKGEsYil7YT1hfDA7Yj1ifDA7YllbYSY1MTFdKGJ8MCl9ZnVuY3Rpb24gbGkoYSxiLGMp
e2E9YXwwO2I9YnwwO2M9Y3wwO2JaW2EmMTI3XShifDAsY3wwKX1mdW5jdGlvbiBsaihhLGIsYyl7
YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJuIGJfW2EmMzFdKGJ8MCxjfDApfDB9ZnVuY3Rpb24gbGso
YSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3JldHVybiBi
JFthJjMxXShifDAsY3wwLGR8MCxlfDAsZnwwKXwwfWZ1bmN0aW9uIGxsKGEsYil7YT1hfDA7Yj1i
fDA7cmV0dXJuIGIwW2EmMTI3XShifDApfDB9ZnVuY3Rpb24gbG0oYSxiLGMsZCl7YT1hfDA7Yj1i
fDA7Yz1jfDA7ZD1kfDA7cmV0dXJuIGIxW2EmNjNdKGJ8MCxjfDAsZHwwKXwwfWZ1bmN0aW9uIGxu
KGEsYixjLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9K2c7
YjJbYSYxNV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCwrZyl9ZnVuY3Rpb24gbG8oYSxiLGMsZCl7YT1h
fDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7YjNbYSY3XShifDAsY3wwLGR8MCl9ZnVuY3Rpb24gbHAoYSxi
LGMsZCxlLGYsZyxoLGkpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2k9aXwwO2I0W2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8MCxpfDApfWZ1
bmN0aW9uIGxxKGEpe2E9YXwwO2I1W2EmM10oKX1mdW5jdGlvbiBscihhLGIsYyxkLGUsZixnLGgs
aSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7
cmV0dXJuIGI2W2EmMzFdKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8MCxpfDApfDB9ZnVuY3Rp
b24gbHMoYSxiLGMsZCxlLGYsZyxoLGksail7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7YjdbYSY3XShifDAsY3wwLGR8MCxlfDAsZnww
LGd8MCxofDAsaXwwLGp8MCl9ZnVuY3Rpb24gbHQoYSxiLGMsZCxlLGYsZyxoKXthPWF8MDtiPWJ8
MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPStoO2I4W2EmN10oYnwwLGN8MCxkfDAs
ZXwwLGZ8MCxnfDAsK2gpfWZ1bmN0aW9uIGx1KGEsYixjLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2M9
Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2I5W2EmMzFdKGJ8MCxjfDAsZHwwLGV8MCxmfDAs
Z3wwKX1mdW5jdGlvbiBsdihhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXww
O3JldHVybiBjYVthJjE1XShifDAsY3wwLGR8MCxlfDApfDB9ZnVuY3Rpb24gbHcoYSxiLGMsZCxl
KXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtjYlthJjE1XShifDAsY3wwLGR8MCxlfDAp
fWZ1bmN0aW9uIGx4KGEsYixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7YWgo
MCl9ZnVuY3Rpb24gbHkoYSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7YWgoMSl9ZnVuY3Rpb24gbHooYSl7YT1hfDA7YWgoMil9ZnVuY3Rpb24g
bEEoYSxiKXthPWF8MDtiPWJ8MDthaCgzKX1mdW5jdGlvbiBsQihhLGIpe2E9YXwwO2I9YnwwO2Fo
KDQpO3JldHVybiAwfWZ1bmN0aW9uIGxDKGEsYixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1k
fDA7ZT1lfDA7YWgoNSk7cmV0dXJuIDB9ZnVuY3Rpb24gbEQoYSl7YT1hfDA7YWgoNik7cmV0dXJu
IDB9ZnVuY3Rpb24gbEUoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2FoKDcpO3JldHVybiAwfWZ1
bmN0aW9uIGxGKGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPStm
O2FoKDgpfWZ1bmN0aW9uIGxHKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDthaCg5KX1mdW5jdGlv
biBsSChhLGIsYyxkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2FoKDEwKX1mdW5jdGlvbiBsSSgpe2FoKDExKX1mdW5jdGlvbiBsSihhLGIs
YyxkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9
aHwwO2FoKDEyKTtyZXR1cm4gMH1mdW5jdGlvbiBsSyhhLGIsYyxkLGUsZixnLGgsaSl7YT1hfDA7
Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7YWgoMTMpfWZ1
bmN0aW9uIGxMKGEsYixjLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9K2c7YWgoMTQpfWZ1bmN0aW9uIGxNKGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8
MDtkPWR8MDtlPWV8MDtmPWZ8MDthaCgxNSl9ZnVuY3Rpb24gbE4oYSxiLGMsZCl7YT1hfDA7Yj1i
fDA7Yz1jfDA7ZD1kfDA7YWgoMTYpO3JldHVybiAwfWZ1bmN0aW9uIGxPKGEsYixjLGQpe2E9YXww
O2I9YnwwO2M9Y3wwO2Q9ZHwwO2FoKDE3KX0KLS8vIEVNU0NSSVBURU5fRU5EX0ZVTkNTCi12YXIg
Ylc9W2x4LGx4LGtHLGx4LGtELGx4LGtGLGx4XTt2YXIgYlg9W2x5LGx5LGdHLGx5LGdQLGx5LGdT
LGx5LGloLGx5LGd0LGx5LGdyLGx5LGg5LGx5LGdCLGx5LGdGLGx5LGdULGx5LGdmLGx5LGY3LGx5
LGdFLGx5LGZILGx5LGZaLGx5LGdRLGx5LGdkLGx5LGYkLGx5LGZYLGx5LGZZLGx5LGZRLGx5LGZf
LGx5LGZWLGx5LGZULGx5LGY0LGx5LGYzLGx5LGYwLGx5LGdVLGx5LGZBLGx5LGdDLGx5LGZFLGx5
LGZ2LGx5LGZ5LGx5LGZDLGx5LGZyLGx5LGZNLGx5LGZLLGx5LGZwLGx5LGx5LGx5LGx5LGx5LGx5
LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5
LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5
LGx5LGx5LGx5LGx5LGx5LGx5LGx5XTt2YXIgYlk9W2x6LGx6LGlrLGx6LGZuLGx6LGdsLGx6LGRI
LGx6LGVuLGx6LGlFLGx6LGRyLGx6LGhBLGx6LGY1LGx6LGRCLGx6LGRHLGx6LGZPLGx6LGZiLGx6
LGU3LGx6LGtRLGx6LGRDLGx6LGlQLGx6LGlTLGx6LGdPLGx6LGZQLGx6LGtxLGx6LGUxLGx6LGll
LGx6LGlRLGx6LGVTLGx6LGZvLGx6LGhyLGx6LGlMLGx6LGpJLGx6LGlVLGx6LGtrLGx6LGpILGx6
LGU1LGx6LGM1LGx6LGRHLGx6LGN0LGx6LGZmLGx6LGhnLGx6LGpLLGx6LGlSLGx6LGtLLGx6LGg3
LGx6LGpHLGx6LGVWLGx6LGM0LGx6LGZlLGx6LGRDLGx6LGozLGx6LGY2LGx6LGRmLGx6LGhzLGx6
LGVSLGx6LGUkLGx6LGh5LGx6LGdOLGx6LGU4LGx6LGhsLGx6LGtVLGx6LGVtLGx6LGo2LGx6LGo3
LGx6LGUyLGx6LGV1LGx6LGt4LGx6LGlWLGx6LGk5LGx6LGtpLGx6LGVULGx6LGU2LGx6LGhPLGx6
LGRkLGx6LGh4LGx6LGUzLGx6LGo5LGx6LGtsLGx6LGpxLGx6LGRiLGx6LGlLLGx6LGlPLGx6LGh6
LGx6LGhVLGx6LGt1LGx6LGhHLGx6LGg4LGx6LGo4LGx6LGhmLGx6LGdrLGx6LGZhLGx6LGRjLGx6
LGZjLGx6LGVYLGx6LGROLGx6LGgkLGx6LGhULGx6LGpKLGx6LGVlLGx6LGRJLGx6LGtpLGx6LGt5
LGx6LGVfLGx6LGRPLGx6LGVRLGx6LGUwLGx6LGlkLGx6LGVELGx6LGVaLGx6LGRzLGx6LGlXLGx6
LGU5LGx6LGhKLGx6LGd6LGx6LGhtLGx6LGMkLGx6LGlxLGx6LGgwLGx6LGVXLGx6LGV0LGx6LGVZ
LGx6LGpGLGx6LGo0LGx6LGdBLGx6LGt3LGx6LGlsLGx6LGNfLGx6LGt2LGx6LGhCLGx6LGhQLGx6
LGNXLGx6LGRQLGx6LGlULGx6LGRGLGx6LGVVLGx6LGthLGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6XTt2YXIgYlo9W2xBLGxBLGpQLGxBLGMwLGxBLGhN
LGxBLGpNLGxBLGhiLGxBLGpMLGxBLGlqLGxBLGQ5LGxBLGhrLGxBLGhILGxBLGh3LGxBLGhqLGxB
LGhoLGxBLGhOLGxBLGlOLGxBLGc5LGxBLGRtLGxBLGhJLGxBLGpPLGxBLGhLLGxBLGhvLGxBLGRF
LGxBLGhuLGxBLGpRLGxBLGhhLGxBLGhxLGxBLGpOLGxBLGc4LGxBLGQyLGxBLGR0LGxBLGM2LGxB
LGlvLGxBLGh0LGxBLGc3LGxBLGc2LGxBLGhpLGxBLGh1LGxBLGh2LGxBLGhwLGxBLGhMLGxBLGxB
LGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxB
LGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxB
LGxBLGxBLGxBLGxBLGxBLGxBLGxBXTt2YXIgYl89W2xCLGxCLGk0LGxCLGR3LGxCLGlBLGxCLGl0
LGxCLGQ4LGxCLGM5LGxCLGRwLGxCLGkwLGxCLGk2LGxCLGVJLGxCLGkyLGxCLGQ3LGxCLGMyLGxC
LGVILGxCLGxCLGxCXTt2YXIgYiQ9W2xDLGxDLGpoLGxDLGpmLGxDLGpFLGxDLGl3LGxDLGlHLGxD
LGpwLGxDLGlJLGxDLGZrLGxDLGlELGxDLGpkLGxDLGVMLGxDLGpzLGxDLGxDLGxDLGxDLGxDLGxD
LGxDXTt2YXIgYjA9W2xELGxELGoyLGxELGc0LGxELGQ2LGxELGpVLGxELGVyLGxELGowLGxELGcw
LGxELGplLGxELGprLGxELGd5LGxELGpTLGxELGR2LGxELGVPLGxELGVHLGxELGpZLGxELGpXLGxE
LGp0LGxELGtqLGxELGRpLGxELGpDLGxELGp6LGxELGpYLGxELGpqLGxELGpBLGxELGQ0LGxELGhG
LGxELGpaLGxELGR1LGxELGMxLGxELGcxLGxELGk4LGxELGoxLGxELGp2LGxELGhELGxELGpSLGxE
LGM3LGxELGp1LGxELGpnLGxELGVKLGxELGckLGxELGM4LGxELGpCLGxELGQ1LGxELGVFLGxELGRu
LGxELGcyLGxELGl6LGxELGl5LGxELGtSLGxELGVGLGxELGdaLGxELGpULGxELGl4LGxELGdfLGxE
LGRoLGxELGczLGxELGc1LGxELGpWLGxELGhFLGxELGdNLGxELGokLGxELGpfLGxELGppLGxEXTt2
YXIgYjE9W2xFLGxFLGVNLGxFLGk1LGxFLGkzLGxFLGt6LGxFLGlCLGxFLGZsLGxFLGRKLGxFLGVz
LGxFLGVxLGxFLGlZLGxFLGVhLGxFLGltLGxFLGlDLGxFLGkxLGxFLGVOLGxFLGRsLGxFLGk3LGxF
LGlnLGxFLGQzLGxFLGVQLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxF
LGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFXTt2YXIgYjI9W2xGLGxGLGd3LGxGLGd1LGxGLGdp
LGxGLGdnLGxGLGxGLGxGLGxGLGxGLGxGLGxGXTt2YXIgYjM9W2xHLGxHLGRrLGxHLGU0LGxHLGxH
LGxHXTt2YXIgYjQ9W2xILGxILGhlLGxILGhkLGxILGhRLGxILGhZLGxILGhXLGxILGgxLGxILGxI
LGxIXTt2YXIgYjU9W2xJLGxJLGxlLGxJXTt2YXIgYjY9W2xKLGxKLGl1LGxKLGpjLGxKLGpvLGxK
LGl2LGxKLGpyLGxKLGpELGxKLGpiLGxKLGphLGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxK
LGxKLGxKLGxKLGxKLGxKXTt2YXIgYjc9W2xLLGxLLGdXLGxLLGdJLGxLLGxLLGxLXTt2YXIgYjg9
W2xMLGxMLGlhLGxMLGg0LGxMLGxMLGxMXTt2YXIgYjk9W2xNLGxNLGtILGxNLGdzLGxNLGdtLGxN
LGdvLGxNLGtJLGxNLGd4LGxNLGlpLGxNLGVkLGxNLGduLGxNLGdhLGxNLGdlLGxNLGY4LGxNLGtF
LGxNLGViLGxNLGlwLGxNXTt2YXIgY2E9W2xOLGxOLGlaLGxOLGlfLGxOLGlILGxOLGlGLGxOLGkk
LGxOLGxOLGxOLGxOLGxOXTt2YXIgY2I9W2xPLGxPLGtBLGxPLGtCLGxPLGVjLGxPLGtyLGxPLGVL
LGxPLGZtLGxPLGZkLGxPXTtyZXR1cm57X3N0cmxlbjprMCxfZnJlZTprSyxfbWFpbjpjRCxfcmVh
bGxvYzprTCxfbWVtbW92ZTprXyxfX0dMT0JBTF9fSV9hOmNULF9tZW1zZXQ6ayQsX21hbGxvYzpr
SixfbWVtY3B5OmtZLF9sbHZtX2N0bHpfaTMyOmtaLF9fR0xPQkFMX19JX2E4OmR5LHJ1blBvc3RT
ZXRzOmNzLHN0YWNrQWxsb2M6Y2Msc3RhY2tTYXZlOmNkLHN0YWNrUmVzdG9yZTpjZSxzZXRUaHJl
dzpjZixzZXRUZW1wUmV0MDpjaSxzZXRUZW1wUmV0MTpjaixzZXRUZW1wUmV0MjpjayxzZXRUZW1w
UmV0MzpjbCxzZXRUZW1wUmV0NDpjbSxzZXRUZW1wUmV0NTpjbixzZXRUZW1wUmV0NjpjbyxzZXRU
ZW1wUmV0NzpjcCxzZXRUZW1wUmV0ODpjcSxzZXRUZW1wUmV0OTpjcixkeW5DYWxsX3ZpaWlpaTps
ZixkeW5DYWxsX3ZpaWlpaWlpOmxnLGR5bkNhbGxfdmk6bGgsZHluQ2FsbF92aWk6bGksZHluQ2Fs
bF9paWk6bGosZHluQ2FsbF9paWlpaWk6bGssZHluQ2FsbF9paTpsbCxkeW5DYWxsX2lpaWk6bG0s
ZHluQ2FsbF92aWlpaWlmOmxuLGR5bkNhbGxfdmlpaTpsbyxkeW5DYWxsX3ZpaWlpaWlpaTpscCxk
eW5DYWxsX3Y6bHEsZHluQ2FsbF9paWlpaWlpaWk6bHIsZHluQ2FsbF92aWlpaWlpaWlpOmxzLGR5
bkNhbGxfdmlpaWlpaWY6bHQsZHluQ2FsbF92aWlpaWlpOmx1LGR5bkNhbGxfaWlpaWk6bHYsZHlu
Q2FsbF92aWlpaTpsd319KQotLy8gRU1TQ1JJUFRFTl9FTkRfQVNNCi0oeyAiTWF0aCI6IE1hdGgs
ICJJbnQ4QXJyYXkiOiBJbnQ4QXJyYXksICJJbnQxNkFycmF5IjogSW50MTZBcnJheSwgIkludDMy
QXJyYXkiOiBJbnQzMkFycmF5LCAiVWludDhBcnJheSI6IFVpbnQ4QXJyYXksICJVaW50MTZBcnJh
eSI6IFVpbnQxNkFycmF5LCAiVWludDMyQXJyYXkiOiBVaW50MzJBcnJheSwgIkZsb2F0MzJBcnJh
eSI6IEZsb2F0MzJBcnJheSwgIkZsb2F0NjRBcnJheSI6IEZsb2F0NjRBcnJheSB9LCB7ICJhYm9y
dCI6IGFib3J0LCAiYXNzZXJ0IjogYXNzZXJ0LCAiYXNtUHJpbnRJbnQiOiBhc21QcmludEludCwg
ImFzbVByaW50RmxvYXQiOiBhc21QcmludEZsb2F0LCAibWluIjogTWF0aF9taW4sICJpbnZva2Vf
dmlpaWlpIjogaW52b2tlX3ZpaWlpaSwgImludm9rZV92aWlpaWlpaSI6IGludm9rZV92aWlpaWlp
aSwgImludm9rZV92aSI6IGludm9rZV92aSwgImludm9rZV92aWkiOiBpbnZva2VfdmlpLCAiaW52
b2tlX2lpaSI6IGludm9rZV9paWksICJpbnZva2VfaWlpaWlpIjogaW52b2tlX2lpaWlpaSwgImlu
dm9rZV9paSI6IGludm9rZV9paSwgImludm9rZV9paWlpIjogaW52b2tlX2lpaWksICJpbnZva2Vf
dmlpaWlpZiI6IGludm9rZV92aWlpaWlmLCAiaW52b2tlX3ZpaWkiOiBpbnZva2VfdmlpaSwgImlu
dm9rZV92aWlpaWlpaWkiOiBpbnZva2VfdmlpaWlpaWlpLCAiaW52b2tlX3YiOiBpbnZva2Vfdiwg
Imludm9rZV9paWlpaWlpaWkiOiBpbnZva2VfaWlpaWlpaWlpLCAiaW52b2tlX3ZpaWlpaWlpaWki
OiBpbnZva2VfdmlpaWlpaWlpaSwgImludm9rZV92aWlpaWlpZiI6IGludm9rZV92aWlpaWlpZiwg
Imludm9rZV92aWlpaWlpIjogaW52b2tlX3ZpaWlpaWksICJpbnZva2VfaWlpaWkiOiBpbnZva2Vf
aWlpaWksICJpbnZva2VfdmlpaWkiOiBpbnZva2VfdmlpaWksICJfbGx2bV9saWZldGltZV9lbmQi
OiBfbGx2bV9saWZldGltZV9lbmQsICJfX3NjYW5TdHJpbmciOiBfX3NjYW5TdHJpbmcsICJfcHRo
cmVhZF9tdXRleF9sb2NrIjogX3B0aHJlYWRfbXV0ZXhfbG9jaywgIl9fX2N4YV9lbmRfY2F0Y2gi
OiBfX19jeGFfZW5kX2NhdGNoLCAiX3N0cnRvdWxsIjogX3N0cnRvdWxsLCAiX19pc0Zsb2F0Ijog
X19pc0Zsb2F0LCAiX2ZmbHVzaCI6IF9mZmx1c2gsICJfX2lzTGVhcFllYXIiOiBfX2lzTGVhcFll
YXIsICJfZndyaXRlIjogX2Z3cml0ZSwgIl9zZW5kIjogX3NlbmQsICJfbGx2bV91bXVsX3dpdGhf
b3ZlcmZsb3dfaTMyIjogX2xsdm1fdW11bF93aXRoX292ZXJmbG93X2kzMiwgIl9pc3NwYWNlIjog
X2lzc3BhY2UsICJfcmVhZCI6IF9yZWFkLCAiX19fY3hhX2d1YXJkX2Fib3J0IjogX19fY3hhX2d1
YXJkX2Fib3J0LCAiX25ld2xvY2FsZSI6IF9uZXdsb2NhbGUsICJfX19neHhfcGVyc29uYWxpdHlf
djAiOiBfX19neHhfcGVyc29uYWxpdHlfdjAsICJfcHRocmVhZF9jb25kX3dhaXQiOiBfcHRocmVh
ZF9jb25kX3dhaXQsICJfX19jeGFfcmV0aHJvdyI6IF9fX2N4YV9yZXRocm93LCAiX19fcmVzdW1l
RXhjZXB0aW9uIjogX19fcmVzdW1lRXhjZXB0aW9uLCAiX2xsdm1fdmFfZW5kIjogX2xsdm1fdmFf
ZW5kLCAiX3Zzc2NhbmYiOiBfdnNzY2FuZiwgIl9zbnByaW50ZiI6IF9zbnByaW50ZiwgIl9mZ2V0
YyI6IF9mZ2V0YywgIl9hdGV4aXQiOiBfYXRleGl0LCAiX19fY3hhX2ZyZWVfZXhjZXB0aW9uIjog
X19fY3hhX2ZyZWVfZXhjZXB0aW9uLCAiX19aOGNhdGNsb3NlUDhfbmxfY2F0ZCI6IF9fWjhjYXRj
bG9zZVA4X25sX2NhdGQsICJfX19zZXRFcnJObyI6IF9fX3NldEVyck5vLCAiX2lzeGRpZ2l0Ijog
X2lzeGRpZ2l0LCAiX2V4aXQiOiBfZXhpdCwgIl9zcHJpbnRmIjogX3NwcmludGYsICJfX19jdHlw
ZV9iX2xvYyI6IF9fX2N0eXBlX2JfbG9jLCAiX2ZyZWVsb2NhbGUiOiBfZnJlZWxvY2FsZSwgIl9f
WjdjYXRvcGVuUEtjaSI6IF9fWjdjYXRvcGVuUEtjaSwgIl9hc3ByaW50ZiI6IF9hc3ByaW50Ziwg
Il9fX2N4YV9pc19udW1iZXJfdHlwZSI6IF9fX2N4YV9pc19udW1iZXJfdHlwZSwgIl9fX2N4YV9k
b2VzX2luaGVyaXQiOiBfX19jeGFfZG9lc19pbmhlcml0LCAiX19fY3hhX2d1YXJkX2FjcXVpcmUi
OiBfX19jeGFfZ3VhcmRfYWNxdWlyZSwgIl9fX2xvY2FsZV9tYl9jdXJfbWF4IjogX19fbG9jYWxl
X21iX2N1cl9tYXgsICJfX19jeGFfYmVnaW5fY2F0Y2giOiBfX19jeGFfYmVnaW5fY2F0Y2gsICJf
cmVjdiI6IF9yZWN2LCAiX19wYXJzZUludDY0IjogX19wYXJzZUludDY0LCAiX19aU3QxOHVuY2F1
Z2h0X2V4Y2VwdGlvbnYiOiBfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udiwgIl9fX2N4YV9jYWxs
X3VuZXhwZWN0ZWQiOiBfX19jeGFfY2FsbF91bmV4cGVjdGVkLCAiX19leGl0IjogX19leGl0LCAi
X3N0cmZ0aW1lIjogX3N0cmZ0aW1lLCAiX19fY3hhX3Rocm93IjogX19fY3hhX3Rocm93LCAiX2xs
dm1fZWhfZXhjZXB0aW9uIjogX2xsdm1fZWhfZXhjZXB0aW9uLCAiX3ByZWFkIjogX3ByZWFkLCAi
X19hcnJheVN1bSI6IF9fYXJyYXlTdW0sICJfbG9nIjogX2xvZywgIl9fX2N4YV9maW5kX21hdGNo
aW5nX2NhdGNoIjogX19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2gsICJfX2Zvcm1hdFN0cmluZyI6
IF9fZm9ybWF0U3RyaW5nLCAiX3B0aHJlYWRfY29uZF9icm9hZGNhc3QiOiBfcHRocmVhZF9jb25k
X2Jyb2FkY2FzdCwgIl9fWlN0OXRlcm1pbmF0ZXYiOiBfX1pTdDl0ZXJtaW5hdGV2LCAiX3B0aHJl
YWRfbXV0ZXhfdW5sb2NrIjogX3B0aHJlYWRfbXV0ZXhfdW5sb2NrLCAiX3NicmsiOiBfc2Jyaywg
Il9fX2Vycm5vX2xvY2F0aW9uIjogX19fZXJybm9fbG9jYXRpb24sICJfc3RyZXJyb3IiOiBfc3Ry
ZXJyb3IsICJfbGx2bV9saWZldGltZV9zdGFydCI6IF9sbHZtX2xpZmV0aW1lX3N0YXJ0LCAiX19f
Y3hhX2d1YXJkX3JlbGVhc2UiOiBfX19jeGFfZ3VhcmRfcmVsZWFzZSwgIl91bmdldGMiOiBfdW5n
ZXRjLCAiX3VzZWxvY2FsZSI6IF91c2Vsb2NhbGUsICJfdnNucHJpbnRmIjogX3ZzbnByaW50Ziwg
Il9zc2NhbmYiOiBfc3NjYW5mLCAiX3N5c2NvbmYiOiBfc3lzY29uZiwgIl9mcmVhZCI6IF9mcmVh
ZCwgIl9hYm9ydCI6IF9hYm9ydCwgIl9pc2RpZ2l0IjogX2lzZGlnaXQsICJfc3RydG9sbCI6IF9z
dHJ0b2xsLCAiX19hZGREYXlzIjogX19hZGREYXlzLCAiX2Zsb29yIjogX2Zsb29yLCAiX19yZWFs
bHlOZWdhdGl2ZSI6IF9fcmVhbGx5TmVnYXRpdmUsICJfX1o3Y2F0Z2V0c1A4X25sX2NhdGRpaVBL
YyI6IF9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtjLCAiX3dyaXRlIjogX3dyaXRlLCAiX19fY3hh
X2FsbG9jYXRlX2V4Y2VwdGlvbiI6IF9fX2N4YV9hbGxvY2F0ZV9leGNlcHRpb24sICJfX19jeGFf
cHVyZV92aXJ0dWFsIjogX19fY3hhX3B1cmVfdmlydHVhbCwgIl92YXNwcmludGYiOiBfdmFzcHJp
bnRmLCAiX19fY3R5cGVfdG91cHBlcl9sb2MiOiBfX19jdHlwZV90b3VwcGVyX2xvYywgIl9fX2N0
eXBlX3RvbG93ZXJfbG9jIjogX19fY3R5cGVfdG9sb3dlcl9sb2MsICJfcHdyaXRlIjogX3B3cml0
ZSwgIl9zdHJlcnJvcl9yIjogX3N0cmVycm9yX3IsICJfdGltZSI6IF90aW1lLCAiU1RBQ0tUT1Ai
OiBTVEFDS1RPUCwgIlNUQUNLX01BWCI6IFNUQUNLX01BWCwgInRlbXBEb3VibGVQdHIiOiB0ZW1w
RG91YmxlUHRyLCAiQUJPUlQiOiBBQk9SVCwgImN0dHpfaTgiOiBjdHR6X2k4LCAiY3Rsel9pOCI6
IGN0bHpfaTgsICJOYU4iOiBOYU4sICJJbmZpbml0eSI6IEluZmluaXR5LCAiX3N0ZGluIjogX3N0
ZGluLCAiX19aVFZOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UiOiBfX1pUVk4xMF9f
Y3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRSwgIl9fWlRWTjEwX19jeHhhYml2MTIwX19zaV9j
bGFzc190eXBlX2luZm9FIjogX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5m
b0UsICJfc3RkZXJyIjogX3N0ZGVyciwgIl9fX2ZzbXU4IjogX19fZnNtdTgsICJfc3Rkb3V0Ijog
X3N0ZG91dCwgIl9fX2Rzb19oYW5kbGUiOiBfX19kc29faGFuZGxlIH0sIGJ1ZmZlcik7Ci12YXIg
X3N0cmxlbiA9IE1vZHVsZVsiX3N0cmxlbiJdID0gYXNtWyJfc3RybGVuIl07Ci12YXIgX2ZyZWUg
PSBNb2R1bGVbIl9mcmVlIl0gPSBhc21bIl9mcmVlIl07Ci12YXIgX21haW4gPSBNb2R1bGVbIl9t
YWluIl0gPSBhc21bIl9tYWluIl07Ci12YXIgX3JlYWxsb2MgPSBNb2R1bGVbIl9yZWFsbG9jIl0g
PSBhc21bIl9yZWFsbG9jIl07Ci12YXIgX21lbW1vdmUgPSBNb2R1bGVbIl9tZW1tb3ZlIl0gPSBh
c21bIl9tZW1tb3ZlIl07Ci12YXIgX19HTE9CQUxfX0lfYSA9IE1vZHVsZVsiX19HTE9CQUxfX0lf
YSJdID0gYXNtWyJfX0dMT0JBTF9fSV9hIl07Ci12YXIgX21lbXNldCA9IE1vZHVsZVsiX21lbXNl
dCJdID0gYXNtWyJfbWVtc2V0Il07Ci12YXIgX21hbGxvYyA9IE1vZHVsZVsiX21hbGxvYyJdID0g
YXNtWyJfbWFsbG9jIl07Ci12YXIgX21lbWNweSA9IE1vZHVsZVsiX21lbWNweSJdID0gYXNtWyJf
bWVtY3B5Il07Ci12YXIgX2xsdm1fY3Rsel9pMzIgPSBNb2R1bGVbIl9sbHZtX2N0bHpfaTMyIl0g
PSBhc21bIl9sbHZtX2N0bHpfaTMyIl07Ci12YXIgX19HTE9CQUxfX0lfYTggPSBNb2R1bGVbIl9f
R0xPQkFMX19JX2E4Il0gPSBhc21bIl9fR0xPQkFMX19JX2E4Il07Ci12YXIgcnVuUG9zdFNldHMg
PSBNb2R1bGVbInJ1blBvc3RTZXRzIl0gPSBhc21bInJ1blBvc3RTZXRzIl07Ci12YXIgZHluQ2Fs
bF92aWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWlp
Il07Ci12YXIgZHluQ2FsbF92aWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaSJdID0g
YXNtWyJkeW5DYWxsX3ZpaWlpaWlpIl07Ci12YXIgZHluQ2FsbF92aSA9IE1vZHVsZVsiZHluQ2Fs
bF92aSJdID0gYXNtWyJkeW5DYWxsX3ZpIl07Ci12YXIgZHluQ2FsbF92aWkgPSBNb2R1bGVbImR5
bkNhbGxfdmlpIl0gPSBhc21bImR5bkNhbGxfdmlpIl07Ci12YXIgZHluQ2FsbF9paWkgPSBNb2R1
bGVbImR5bkNhbGxfaWlpIl0gPSBhc21bImR5bkNhbGxfaWlpIl07Ci12YXIgZHluQ2FsbF9paWlp
aWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlpIl0gPSBhc21bImR5bkNhbGxfaWlpaWlpIl07Ci12
YXIgZHluQ2FsbF9paSA9IE1vZHVsZVsiZHluQ2FsbF9paSJdID0gYXNtWyJkeW5DYWxsX2lpIl07
Ci12YXIgZHluQ2FsbF9paWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXSA9IGFzbVsiZHluQ2Fs
bF9paWlpIl07Ci12YXIgZHluQ2FsbF92aWlpaWlmID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWYi
XSA9IGFzbVsiZHluQ2FsbF92aWlpaWlmIl07Ci12YXIgZHluQ2FsbF92aWlpID0gTW9kdWxlWyJk
eW5DYWxsX3ZpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpIl07Ci12YXIgZHluQ2FsbF92aWlpaWlp
aWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWlpaWlp
Il07Ci12YXIgZHluQ2FsbF92ID0gTW9kdWxlWyJkeW5DYWxsX3YiXSA9IGFzbVsiZHluQ2FsbF92
Il07Ci12YXIgZHluQ2FsbF9paWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWlpIl0g
PSBhc21bImR5bkNhbGxfaWlpaWlpaWlpIl07Ci12YXIgZHluQ2FsbF92aWlpaWlpaWlpID0gTW9k
dWxlWyJkeW5DYWxsX3ZpaWlpaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWlpaWlpIl07Ci12
YXIgZHluQ2FsbF92aWlpaWlpZiA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpZiJdID0gYXNtWyJk
eW5DYWxsX3ZpaWlpaWlmIl07Ci12YXIgZHluQ2FsbF92aWlpaWlpID0gTW9kdWxlWyJkeW5DYWxs
X3ZpaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWlpIl07Ci12YXIgZHluQ2FsbF9paWlpaSA9
IE1vZHVsZVsiZHluQ2FsbF9paWlpaSJdID0gYXNtWyJkeW5DYWxsX2lpaWlpIl07Ci12YXIgZHlu
Q2FsbF92aWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlp
Il07Ci1SdW50aW1lLnN0YWNrQWxsb2MgPSBmdW5jdGlvbihzaXplKSB7IHJldHVybiBhc21bJ3N0
YWNrQWxsb2MnXShzaXplKSB9OwotUnVudGltZS5zdGFja1NhdmUgPSBmdW5jdGlvbigpIHsgcmV0
dXJuIGFzbVsnc3RhY2tTYXZlJ10oKSB9OwotUnVudGltZS5zdGFja1Jlc3RvcmUgPSBmdW5jdGlv
bih0b3ApIHsgYXNtWydzdGFja1Jlc3RvcmUnXSh0b3ApIH07Ci0vLyBUT0RPOiBzdHJpcCBvdXQg
cGFydHMgb2YgdGhpcyB3ZSBkbyBub3QgbmVlZAotLy89PT09PT09IGJlZ2luIGNsb3N1cmUgaTY0
IGNvZGUgPT09PT09PQotLy8gQ29weXJpZ2h0IDIwMDkgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRo
b3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFj
aGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotLy8geW91IG1heSBub3Qg
dXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotLy8g
WW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0vLwotLy8gICAgICBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVx
dWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJl
Ci0vLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAi
QVMtSVMiIEJBU0lTLAotLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5Z
IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0vLyBTZWUgdGhlIExpY2Vuc2UgZm9y
IHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0vLyBsaW1p
dGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS8qKgotICogQGZpbGVvdmVydmlldyBEZWZpbmVz
IGEgTG9uZyBjbGFzcyBmb3IgcmVwcmVzZW50aW5nIGEgNjQtYml0IHR3bydzLWNvbXBsZW1lbnQK
LSAqIGludGVnZXIgdmFsdWUsIHdoaWNoIGZhaXRoZnVsbHkgc2ltdWxhdGVzIHRoZSBiZWhhdmlv
ciBvZiBhIEphdmEgImxvbmciLiBUaGlzCi0gKiBpbXBsZW1lbnRhdGlvbiBpcyBkZXJpdmVkIGZy
b20gTG9uZ0xpYiBpbiBHV1QuCi0gKgotICovCi12YXIgaTY0TWF0aCA9IChmdW5jdGlvbigpIHsg
Ly8gRW1zY3JpcHRlbiB3cmFwcGVyCi0gIHZhciBnb29nID0geyBtYXRoOiB7fSB9OwotICAvKioK
LSAgICogQ29uc3RydWN0cyBhIDY0LWJpdCB0d28ncy1jb21wbGVtZW50IGludGVnZXIsIGdpdmVu
IGl0cyBsb3cgYW5kIGhpZ2ggMzItYml0Ci0gICAqIHZhbHVlcyBhcyAqc2lnbmVkKiBpbnRlZ2Vy
cy4gIFNlZSB0aGUgZnJvbSogZnVuY3Rpb25zIGJlbG93IGZvciBtb3JlCi0gICAqIGNvbnZlbmll
bnQgd2F5cyBvZiBjb25zdHJ1Y3RpbmcgTG9uZ3MuCi0gICAqCi0gICAqIFRoZSBpbnRlcm5hbCBy
ZXByZXNlbnRhdGlvbiBvZiBhIGxvbmcgaXMgdGhlIHR3byBnaXZlbiBzaWduZWQsIDMyLWJpdCB2
YWx1ZXMuCi0gICAqIFdlIHVzZSAzMi1iaXQgcGllY2VzIGJlY2F1c2UgdGhlc2UgYXJlIHRoZSBz
aXplIG9mIGludGVnZXJzIG9uIHdoaWNoCi0gICAqIEphdmFzY3JpcHQgcGVyZm9ybXMgYml0LW9w
ZXJhdGlvbnMuICBGb3Igb3BlcmF0aW9ucyBsaWtlIGFkZGl0aW9uIGFuZAotICAgKiBtdWx0aXBs
aWNhdGlvbiwgd2Ugc3BsaXQgZWFjaCBudW1iZXIgaW50byAxNi1iaXQgcGllY2VzLCB3aGljaCBj
YW4gZWFzaWx5IGJlCi0gICAqIG11bHRpcGxpZWQgd2l0aGluIEphdmFzY3JpcHQncyBmbG9hdGlu
Zy1wb2ludCByZXByZXNlbnRhdGlvbiB3aXRob3V0IG92ZXJmbG93Ci0gICAqIG9yIGNoYW5nZSBp
biBzaWduLgotICAgKgotICAgKiBJbiB0aGUgYWxnb3JpdGhtcyBiZWxvdywgd2UgZnJlcXVlbnRs
eSByZWR1Y2UgdGhlIG5lZ2F0aXZlIGNhc2UgdG8gdGhlCi0gICAqIHBvc2l0aXZlIGNhc2UgYnkg
bmVnYXRpbmcgdGhlIGlucHV0KHMpIGFuZCB0aGVuIHBvc3QtcHJvY2Vzc2luZyB0aGUgcmVzdWx0
LgotICAgKiBOb3RlIHRoYXQgd2UgbXVzdCBBTFdBWVMgY2hlY2sgc3BlY2lhbGx5IHdoZXRoZXIg
dGhvc2UgdmFsdWVzIGFyZSBNSU5fVkFMVUUKLSAgICogKC0yXjYzKSBiZWNhdXNlIC1NSU5fVkFM
VUUgPT0gTUlOX1ZBTFVFIChzaW5jZSAyXjYzIGNhbm5vdCBiZSByZXByZXNlbnRlZCBhcwotICAg
KiBhIHBvc2l0aXZlIG51bWJlciwgaXQgb3ZlcmZsb3dzIGJhY2sgaW50byBhIG5lZ2F0aXZlKS4g
IE5vdCBoYW5kbGluZyB0aGlzCi0gICAqIGNhc2Ugd291bGQgb2Z0ZW4gcmVzdWx0IGluIGluZmlu
aXRlIHJlY3Vyc2lvbi4KLSAgICoKLSAgICogQHBhcmFtIHtudW1iZXJ9IGxvdyAgVGhlIGxvdyAo
c2lnbmVkKSAzMiBiaXRzIG9mIHRoZSBsb25nLgotICAgKiBAcGFyYW0ge251bWJlcn0gaGlnaCAg
VGhlIGhpZ2ggKHNpZ25lZCkgMzIgYml0cyBvZiB0aGUgbG9uZy4KLSAgICogQGNvbnN0cnVjdG9y
Ci0gICAqLwotICBnb29nLm1hdGguTG9uZyA9IGZ1bmN0aW9uKGxvdywgaGlnaCkgewotICAgIC8q
KgotICAgICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAgICogQHByaXZhdGUKLSAgICAgKi8KLSAgICB0
aGlzLmxvd18gPSBsb3cgfCAwOyAgLy8gZm9yY2UgaW50byAzMiBzaWduZWQgYml0cy4KLSAgICAv
KioKLSAgICAgKiBAdHlwZSB7bnVtYmVyfQotICAgICAqIEBwcml2YXRlCi0gICAgICovCi0gICAg
dGhpcy5oaWdoXyA9IGhpZ2ggfCAwOyAgLy8gZm9yY2UgaW50byAzMiBzaWduZWQgYml0cy4KLSAg
fTsKLSAgLy8gTk9URTogQ29tbW9uIGNvbnN0YW50IHZhbHVlcyBaRVJPLCBPTkUsIE5FR19PTkUs
IGV0Yy4gYXJlIGRlZmluZWQgYmVsb3cgdGhlCi0gIC8vIGZyb20qIG1ldGhvZHMgb24gd2hpY2gg
dGhleSBkZXBlbmQuCi0gIC8qKgotICAgKiBBIGNhY2hlIG9mIHRoZSBMb25nIHJlcHJlc2VudGF0
aW9ucyBvZiBzbWFsbCBpbnRlZ2VyIHZhbHVlcy4KLSAgICogQHR5cGUgeyFPYmplY3R9Ci0gICAq
IEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5JbnRDYWNoZV8gPSB7fTsKLSAgLyoq
Ci0gICAqIFJldHVybnMgYSBMb25nIHJlcHJlc2VudGluZyB0aGUgZ2l2ZW4gKDMyLWJpdCkgaW50
ZWdlciB2YWx1ZS4KLSAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIFRoZSAzMi1iaXQgaW50ZWdl
ciBpbiBxdWVzdGlvbi4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgY29ycmVz
cG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuZnJvbUludCA9IGZ1
bmN0aW9uKHZhbHVlKSB7Ci0gICAgaWYgKC0xMjggPD0gdmFsdWUgJiYgdmFsdWUgPCAxMjgpIHsK
LSAgICAgIHZhciBjYWNoZWRPYmogPSBnb29nLm1hdGguTG9uZy5JbnRDYWNoZV9bdmFsdWVdOwot
ICAgICAgaWYgKGNhY2hlZE9iaikgewotICAgICAgICByZXR1cm4gY2FjaGVkT2JqOwotICAgICAg
fQotICAgIH0KLSAgICB2YXIgb2JqID0gbmV3IGdvb2cubWF0aC5Mb25nKHZhbHVlIHwgMCwgdmFs
dWUgPCAwID8gLTEgOiAwKTsKLSAgICBpZiAoLTEyOCA8PSB2YWx1ZSAmJiB2YWx1ZSA8IDEyOCkg
ewotICAgICAgZ29vZy5tYXRoLkxvbmcuSW50Q2FjaGVfW3ZhbHVlXSA9IG9iajsKLSAgICB9Ci0g
ICAgcmV0dXJuIG9iajsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBMb25nIHJlcHJlc2Vu
dGluZyB0aGUgZ2l2ZW4gdmFsdWUsIHByb3ZpZGVkIHRoYXQgaXQgaXMgYSBmaW5pdGUKLSAgICog
bnVtYmVyLiAgT3RoZXJ3aXNlLCB6ZXJvIGlzIHJldHVybmVkLgotICAgKiBAcGFyYW0ge251bWJl
cn0gdmFsdWUgVGhlIG51bWJlciBpbiBxdWVzdGlvbi4KLSAgICogQHJldHVybiB7IWdvb2cubWF0
aC5Mb25nfSBUaGUgY29ycmVzcG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8KLSAgZ29vZy5tYXRo
LkxvbmcuZnJvbU51bWJlciA9IGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgaWYgKGlzTmFOKHZhbHVl
KSB8fCAhaXNGaW5pdGUodmFsdWUpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVS
TzsKLSAgICB9IGVsc2UgaWYgKHZhbHVlIDw9IC1nb29nLm1hdGguTG9uZy5UV09fUFdSXzYzX0RC
TF8pIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5NSU5fVkFMVUU7Ci0gICAgfSBlbHNl
IGlmICh2YWx1ZSArIDEgPj0gZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl82M19EQkxfKSB7Ci0gICAg
ICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuTUFYX1ZBTFVFOwotICAgIH0gZWxzZSBpZiAodmFsdWUg
PCAwKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcigtdmFsdWUpLm5l
Z2F0ZSgpOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gbmV3IGdvb2cubWF0aC5Mb25nKAot
ICAgICAgICAgICh2YWx1ZSAlIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXykgfCAwLAot
ICAgICAgICAgICh2YWx1ZSAvIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXykgfCAwKTsK
LSAgICB9Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIGEgTG9uZyByZXByZXNlbnRpbmcgdGhl
IDY0LWJpdCBpbnRlZ2VyIHRoYXQgY29tZXMgYnkgY29uY2F0ZW5hdGluZwotICAgKiB0aGUgZ2l2
ZW4gaGlnaCBhbmQgbG93IGJpdHMuICBFYWNoIGlzIGFzc3VtZWQgdG8gdXNlIDMyIGJpdHMuCi0g
ICAqIEBwYXJhbSB7bnVtYmVyfSBsb3dCaXRzIFRoZSBsb3cgMzItYml0cy4KLSAgICogQHBhcmFt
IHtudW1iZXJ9IGhpZ2hCaXRzIFRoZSBoaWdoIDMyLWJpdHMuCi0gICAqIEByZXR1cm4geyFnb29n
Lm1hdGguTG9uZ30gVGhlIGNvcnJlc3BvbmRpbmcgTG9uZyB2YWx1ZS4KLSAgICovCi0gIGdvb2cu
bWF0aC5Mb25nLmZyb21CaXRzID0gZnVuY3Rpb24obG93Qml0cywgaGlnaEJpdHMpIHsKLSAgICBy
ZXR1cm4gbmV3IGdvb2cubWF0aC5Mb25nKGxvd0JpdHMsIGhpZ2hCaXRzKTsKLSAgfTsKLSAgLyoq
Ci0gICAqIFJldHVybnMgYSBMb25nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBzdHJpbmcs
IHdyaXR0ZW4gdXNpbmcgdGhlIGdpdmVuCi0gICAqIHJhZGl4LgotICAgKiBAcGFyYW0ge3N0cmlu
Z30gc3RyIFRoZSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25nLgotICAgKiBAcGFy
YW0ge251bWJlcj19IG9wdF9yYWRpeCBUaGUgcmFkaXggaW4gd2hpY2ggdGhlIHRleHQgaXMgd3Jp
dHRlbi4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgY29ycmVzcG9uZGluZyBM
b25nIHZhbHVlLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuZnJvbVN0cmluZyA9IGZ1bmN0aW9u
KHN0ciwgb3B0X3JhZGl4KSB7Ci0gICAgaWYgKHN0ci5sZW5ndGggPT0gMCkgewotICAgICAgdGhy
b3cgRXJyb3IoJ251bWJlciBmb3JtYXQgZXJyb3I6IGVtcHR5IHN0cmluZycpOwotICAgIH0KLSAg
ICB2YXIgcmFkaXggPSBvcHRfcmFkaXggfHwgMTA7Ci0gICAgaWYgKHJhZGl4IDwgMiB8fCAzNiA8
IHJhZGl4KSB7Ci0gICAgICB0aHJvdyBFcnJvcigncmFkaXggb3V0IG9mIHJhbmdlOiAnICsgcmFk
aXgpOwotICAgIH0KLSAgICBpZiAoc3RyLmNoYXJBdCgwKSA9PSAnLScpIHsKLSAgICAgIHJldHVy
biBnb29nLm1hdGguTG9uZy5mcm9tU3RyaW5nKHN0ci5zdWJzdHJpbmcoMSksIHJhZGl4KS5uZWdh
dGUoKTsKLSAgICB9IGVsc2UgaWYgKHN0ci5pbmRleE9mKCctJykgPj0gMCkgewotICAgICAgdGhy
b3cgRXJyb3IoJ251bWJlciBmb3JtYXQgZXJyb3I6IGludGVyaW9yICItIiBjaGFyYWN0ZXI6ICcg
KyBzdHIpOwotICAgIH0KLSAgICAvLyBEbyBzZXZlcmFsICg4KSBkaWdpdHMgZWFjaCB0aW1lIHRo
cm91Z2ggdGhlIGxvb3AsIHNvIGFzIHRvCi0gICAgLy8gbWluaW1pemUgdGhlIGNhbGxzIHRvIHRo
ZSB2ZXJ5IGV4cGVuc2l2ZSBlbXVsYXRlZCBkaXYuCi0gICAgdmFyIHJhZGl4VG9Qb3dlciA9IGdv
b2cubWF0aC5Mb25nLmZyb21OdW1iZXIoTWF0aC5wb3cocmFkaXgsIDgpKTsKLSAgICB2YXIgcmVz
dWx0ID0gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5s
ZW5ndGg7IGkgKz0gOCkgewotICAgICAgdmFyIHNpemUgPSBNYXRoLm1pbig4LCBzdHIubGVuZ3Ro
IC0gaSk7Ci0gICAgICB2YXIgdmFsdWUgPSBwYXJzZUludChzdHIuc3Vic3RyaW5nKGksIGkgKyBz
aXplKSwgcmFkaXgpOwotICAgICAgaWYgKHNpemUgPCA4KSB7Ci0gICAgICAgIHZhciBwb3dlciA9
IGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIoTWF0aC5wb3cocmFkaXgsIHNpemUpKTsKLSAgICAg
ICAgcmVzdWx0ID0gcmVzdWx0Lm11bHRpcGx5KHBvd2VyKS5hZGQoZ29vZy5tYXRoLkxvbmcuZnJv
bU51bWJlcih2YWx1ZSkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0
Lm11bHRpcGx5KHJhZGl4VG9Qb3dlcik7Ci0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5hZGQoZ29v
Zy5tYXRoLkxvbmcuZnJvbU51bWJlcih2YWx1ZSkpOwotICAgICAgfQotICAgIH0KLSAgICByZXR1
cm4gcmVzdWx0OwotICB9OwotICAvLyBOT1RFOiB0aGUgY29tcGlsZXIgc2hvdWxkIGlubGluZSB0
aGVzZSBjb25zdGFudCB2YWx1ZXMgYmVsb3cgYW5kIHRoZW4gcmVtb3ZlCi0gIC8vIHRoZXNlIHZh
cmlhYmxlcywgc28gdGhlcmUgc2hvdWxkIGJlIG5vIHJ1bnRpbWUgcGVuYWx0eSBmb3IgdGhlc2Uu
Ci0gIC8qKgotICAgKiBOdW1iZXIgdXNlZCByZXBlYXRlZCBiZWxvdyBpbiBjYWxjdWxhdGlvbnMu
ICBUaGlzIG11c3QgYXBwZWFyIGJlZm9yZSB0aGUKLSAgICogZmlyc3QgY2FsbCB0byBhbnkgZnJv
bSogZnVuY3Rpb24gYmVsb3cuCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0g
ICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzE2X0RCTF8gPSAxIDw8IDE2OwotICAvKioK
LSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5M
b25nLlRXT19QV1JfMjRfREJMXyA9IDEgPDwgMjQ7Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVy
fQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxf
ID0KLSAgICAgIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMTZfREJMXyAqIGdvb2cubWF0aC5Mb25n
LlRXT19QV1JfMTZfREJMXzsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2
YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMxX0RCTF8gPQotICAgICAgZ29v
Zy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfIC8gMjsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1i
ZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzQ4X0RC
TF8gPQotICAgICAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfICogZ29vZy5tYXRoLkxv
bmcuVFdPX1BXUl8xNl9EQkxfOwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHBy
aXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfNjRfREJMXyA9Ci0gICAgICBn
b29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gKiBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMy
X0RCTF87Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQotICAgKi8K
LSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl82M19EQkxfID0KLSAgICAgIGdvb2cubWF0aC5Mb25n
LlRXT19QV1JfNjRfREJMXyAvIDI7Ci0gIC8qKiBAdHlwZSB7IWdvb2cubWF0aC5Mb25nfSAqLwot
ICBnb29nLm1hdGguTG9uZy5aRVJPID0gZ29vZy5tYXRoLkxvbmcuZnJvbUludCgwKTsKLSAgLyoq
IEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdvb2cubWF0aC5Mb25nLk9ORSA9IGdvb2cu
bWF0aC5Mb25nLmZyb21JbnQoMSk7Ci0gIC8qKiBAdHlwZSB7IWdvb2cubWF0aC5Mb25nfSAqLwot
ICBnb29nLm1hdGguTG9uZy5ORUdfT05FID0gZ29vZy5tYXRoLkxvbmcuZnJvbUludCgtMSk7Ci0g
IC8qKiBAdHlwZSB7IWdvb2cubWF0aC5Mb25nfSAqLwotICBnb29nLm1hdGguTG9uZy5NQVhfVkFM
VUUgPQotICAgICAgZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoMHhGRkZGRkZGRiB8IDAsIDB4N0ZG
RkZGRkYgfCAwKTsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdvb2cubWF0
aC5Mb25nLk1JTl9WQUxVRSA9IGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKDAsIDB4ODAwMDAwMDAg
fCAwKTsKLSAgLyoqCi0gICAqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9Ci0gICAqIEBwcml2YXRl
Ci0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzI0XyA9IGdvb2cubWF0aC5Mb25nLmZy
b21JbnQoMSA8PCAyNCk7Ci0gIC8qKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSB2YWx1ZSwgYXNzdW1p
bmcgaXQgaXMgYSAzMi1iaXQgaW50ZWdlci4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBl
LnRvSW50ID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMubG93XzsKLSAgfTsKLSAgLyoq
IEByZXR1cm4ge251bWJlcn0gVGhlIGNsb3Nlc3QgZmxvYXRpbmctcG9pbnQgcmVwcmVzZW50YXRp
b24gdG8gdGhpcyB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnRvTnVtYmVy
ID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF8gKiBnb29nLm1hdGguTG9uZy5U
V09fUFdSXzMyX0RCTF8gKwotICAgICAgICAgICB0aGlzLmdldExvd0JpdHNVbnNpZ25lZCgpOwot
ICB9OwotICAvKioKLSAgICogQHBhcmFtIHtudW1iZXI9fSBvcHRfcmFkaXggVGhlIHJhZGl4IGlu
IHdoaWNoIHRoZSB0ZXh0IHNob3VsZCBiZSB3cml0dGVuLgotICAgKiBAcmV0dXJuIHtzdHJpbmd9
IFRoZSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdmFsdWUuCi0gICAqLwotICBnb29n
Lm1hdGguTG9uZy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbihvcHRfcmFkaXgpIHsKLSAg
ICB2YXIgcmFkaXggPSBvcHRfcmFkaXggfHwgMTA7Ci0gICAgaWYgKHJhZGl4IDwgMiB8fCAzNiA8
IHJhZGl4KSB7Ci0gICAgICB0aHJvdyBFcnJvcigncmFkaXggb3V0IG9mIHJhbmdlOiAnICsgcmFk
aXgpOwotICAgIH0KLSAgICBpZiAodGhpcy5pc1plcm8oKSkgewotICAgICAgcmV0dXJuICcwJzsK
LSAgICB9Ci0gICAgaWYgKHRoaXMuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICBpZiAodGhpcy5lcXVh
bHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgICAvLyBXZSBuZWVkIHRvIGNo
YW5nZSB0aGUgTG9uZyB2YWx1ZSBiZWZvcmUgaXQgY2FuIGJlIG5lZ2F0ZWQsIHNvIHdlIHJlbW92
ZQotICAgICAgICAvLyB0aGUgYm90dG9tLW1vc3QgZGlnaXQgaW4gdGhpcyBiYXNlIGFuZCB0aGVu
IHJlY3Vyc2UgdG8gZG8gdGhlIHJlc3QuCi0gICAgICAgIHZhciByYWRpeExvbmcgPSBnb29nLm1h
dGguTG9uZy5mcm9tTnVtYmVyKHJhZGl4KTsKLSAgICAgICAgdmFyIGRpdiA9IHRoaXMuZGl2KHJh
ZGl4TG9uZyk7Ci0gICAgICAgIHZhciByZW0gPSBkaXYubXVsdGlwbHkocmFkaXhMb25nKS5zdWJ0
cmFjdCh0aGlzKTsKLSAgICAgICAgcmV0dXJuIGRpdi50b1N0cmluZyhyYWRpeCkgKyByZW0udG9J
bnQoKS50b1N0cmluZyhyYWRpeCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gJy0n
ICsgdGhpcy5uZWdhdGUoKS50b1N0cmluZyhyYWRpeCk7Ci0gICAgICB9Ci0gICAgfQotICAgIC8v
IERvIHNldmVyYWwgKDYpIGRpZ2l0cyBlYWNoIHRpbWUgdGhyb3VnaCB0aGUgbG9vcCwgc28gYXMg
dG8KLSAgICAvLyBtaW5pbWl6ZSB0aGUgY2FsbHMgdG8gdGhlIHZlcnkgZXhwZW5zaXZlIGVtdWxh
dGVkIGRpdi4KLSAgICB2YXIgcmFkaXhUb1Bvd2VyID0gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJl
cihNYXRoLnBvdyhyYWRpeCwgNikpOwotICAgIHZhciByZW0gPSB0aGlzOwotICAgIHZhciByZXN1
bHQgPSAnJzsKLSAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgdmFyIHJlbURpdiA9IHJlbS5kaXYo
cmFkaXhUb1Bvd2VyKTsKLSAgICAgIHZhciBpbnR2YWwgPSByZW0uc3VidHJhY3QocmVtRGl2Lm11
bHRpcGx5KHJhZGl4VG9Qb3dlcikpLnRvSW50KCk7Ci0gICAgICB2YXIgZGlnaXRzID0gaW50dmFs
LnRvU3RyaW5nKHJhZGl4KTsKLSAgICAgIHJlbSA9IHJlbURpdjsKLSAgICAgIGlmIChyZW0uaXNa
ZXJvKCkpIHsKLSAgICAgICAgcmV0dXJuIGRpZ2l0cyArIHJlc3VsdDsKLSAgICAgIH0gZWxzZSB7
Ci0gICAgICAgIHdoaWxlIChkaWdpdHMubGVuZ3RoIDwgNikgewotICAgICAgICAgIGRpZ2l0cyA9
ICcwJyArIGRpZ2l0czsKLSAgICAgICAgfQotICAgICAgICByZXN1bHQgPSAnJyArIGRpZ2l0cyAr
IHJlc3VsdDsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtudW1iZXJ9IFRo
ZSBoaWdoIDMyLWJpdHMgYXMgYSBzaWduZWQgdmFsdWUuICovCi0gIGdvb2cubWF0aC5Mb25nLnBy
b3RvdHlwZS5nZXRIaWdoQml0cyA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmhpZ2hf
OwotICB9OwotICAvKiogQHJldHVybiB7bnVtYmVyfSBUaGUgbG93IDMyLWJpdHMgYXMgYSBzaWdu
ZWQgdmFsdWUuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5nZXRMb3dCaXRzID0gZnVu
Y3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMubG93XzsKLSAgfTsKLSAgLyoqIEByZXR1cm4ge251
bWJlcn0gVGhlIGxvdyAzMi1iaXRzIGFzIGFuIHVuc2lnbmVkIHZhbHVlLiAqLwotICBnb29nLm1h
dGguTG9uZy5wcm90b3R5cGUuZ2V0TG93Qml0c1Vuc2lnbmVkID0gZnVuY3Rpb24oKSB7Ci0gICAg
cmV0dXJuICh0aGlzLmxvd18gPj0gMCkgPwotICAgICAgICB0aGlzLmxvd18gOiBnb29nLm1hdGgu
TG9uZy5UV09fUFdSXzMyX0RCTF8gKyB0aGlzLmxvd187Ci0gIH07Ci0gIC8qKgotICAgKiBAcmV0
dXJuIHtudW1iZXJ9IFJldHVybnMgdGhlIG51bWJlciBvZiBiaXRzIG5lZWRlZCB0byByZXByZXNl
bnQgdGhlIGFic29sdXRlCi0gICAqICAgICB2YWx1ZSBvZiB0aGlzIExvbmcuCi0gICAqLwotICBn
b29nLm1hdGguTG9uZy5wcm90b3R5cGUuZ2V0TnVtQml0c0FicyA9IGZ1bmN0aW9uKCkgewotICAg
IGlmICh0aGlzLmlzTmVnYXRpdmUoKSkgewotICAgICAgaWYgKHRoaXMuZXF1YWxzKGdvb2cubWF0
aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgICAgcmV0dXJuIDY0OwotICAgICAgfSBlbHNlIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMubmVnYXRlKCkuZ2V0TnVtQml0c0FicygpOwotICAgICAgfQot
ICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgdmFsID0gdGhpcy5oaWdoXyAhPSAwID8gdGhpcy5oaWdo
XyA6IHRoaXMubG93XzsKLSAgICAgIGZvciAodmFyIGJpdCA9IDMxOyBiaXQgPiAwOyBiaXQtLSkg
ewotICAgICAgICBpZiAoKHZhbCAmICgxIDw8IGJpdCkpICE9IDApIHsKLSAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuIHRoaXMuaGlnaF8gIT0gMCA/IGJp
dCArIDMzIDogYml0ICsgMTsKLSAgICB9Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtib29sZWFufSBX
aGV0aGVyIHRoaXMgdmFsdWUgaXMgemVyby4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBl
LmlzWmVybyA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmhpZ2hfID09IDAgJiYgdGhp
cy5sb3dfID09IDA7Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMg
dmFsdWUgaXMgbmVnYXRpdmUuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5pc05lZ2F0
aXZlID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF8gPCAwOwotICB9OwotICAv
KiogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIHZhbHVlIGlzIG9kZC4gKi8KLSAgZ29v
Zy5tYXRoLkxvbmcucHJvdG90eXBlLmlzT2RkID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuICh0
aGlzLmxvd18gJiAxKSA9PSAxOwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtnb29nLm1hdGgu
TG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xl
YW59IFdoZXRoZXIgdGhpcyBMb25nIGVxdWFscyB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1h
dGguTG9uZy5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4g
KHRoaXMuaGlnaF8gPT0gb3RoZXIuaGlnaF8pICYmICh0aGlzLmxvd18gPT0gb3RoZXIubG93Xyk7
Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRv
IGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExv
bmcgZG9lcyBub3QgZXF1YWwgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJv
dG90eXBlLm5vdEVxdWFscyA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuICh0aGlzLmhp
Z2hfICE9IG90aGVyLmhpZ2hfKSB8fCAodGhpcy5sb3dfICE9IG90aGVyLmxvd18pOwotICB9Owot
ICAvKioKLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJl
IGFnYWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBMb25nIGlzIGxl
c3MgdGhhbiB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUubGVz
c1RoYW4gPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLmNvbXBhcmUob3RoZXIp
IDwgMDsKLSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExv
bmcgdG8gY29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRo
aXMgTG9uZyBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG90aGVyLgotICAgKi8KLSAgZ29v
Zy5tYXRoLkxvbmcucHJvdG90eXBlLmxlc3NUaGFuT3JFcXVhbCA9IGZ1bmN0aW9uKG90aGVyKSB7
Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikgPD0gMDsKLSAgfTsKLSAgLyoqCi0gICAq
IEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0Lgot
ICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9uZyBpcyBncmVhdGVyIHRoYW4g
dGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmdyZWF0ZXJUaGFu
ID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhpcy5jb21wYXJlKG90aGVyKSA+IDA7
Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRv
IGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExv
bmcgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cu
bWF0aC5Mb25nLnByb3RvdHlwZS5ncmVhdGVyVGhhbk9yRXF1YWwgPSBmdW5jdGlvbihvdGhlcikg
ewotICAgIHJldHVybiB0aGlzLmNvbXBhcmUob3RoZXIpID49IDA7Ci0gIH07Ci0gIC8qKgotICAg
KiBDb21wYXJlcyB0aGlzIExvbmcgd2l0aCB0aGUgZ2l2ZW4gb25lLgotICAgKiBAcGFyYW0ge2dv
b2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVy
biB7bnVtYmVyfSAwIGlmIHRoZXkgYXJlIHRoZSBzYW1lLCAxIGlmIHRoZSB0aGlzIGlzIGdyZWF0
ZXIsIGFuZCAtMQotICAgKiAgICAgaWYgdGhlIGdpdmVuIG9uZSBpcyBncmVhdGVyLgotICAgKi8K
LSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbihvdGhlcikgewot
ICAgIGlmICh0aGlzLmVxdWFscyhvdGhlcikpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAg
ICB2YXIgdGhpc05lZyA9IHRoaXMuaXNOZWdhdGl2ZSgpOwotICAgIHZhciBvdGhlck5lZyA9IG90
aGVyLmlzTmVnYXRpdmUoKTsKLSAgICBpZiAodGhpc05lZyAmJiAhb3RoZXJOZWcpIHsKLSAgICAg
IHJldHVybiAtMTsKLSAgICB9Ci0gICAgaWYgKCF0aGlzTmVnICYmIG90aGVyTmVnKSB7Ci0gICAg
ICByZXR1cm4gMTsKLSAgICB9Ci0gICAgLy8gYXQgdGhpcyBwb2ludCwgdGhlIHNpZ25zIGFyZSB0
aGUgc2FtZSwgc28gc3VidHJhY3Rpb24gd2lsbCBub3Qgb3ZlcmZsb3cKLSAgICBpZiAodGhpcy5z
dWJ0cmFjdChvdGhlcikuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfSBl
bHNlIHsKLSAgICAgIHJldHVybiAxOwotICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4geyFnb29n
Lm1hdGguTG9uZ30gVGhlIG5lZ2F0aW9uIG9mIHRoaXMgdmFsdWUuICovCi0gIGdvb2cubWF0aC5M
b25nLnByb3RvdHlwZS5uZWdhdGUgPSBmdW5jdGlvbigpIHsKLSAgICBpZiAodGhpcy5lcXVhbHMo
Z29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25n
Lk1JTl9WQUxVRTsKLSAgICB9IGVsc2UgewotICAgICAgcmV0dXJuIHRoaXMubm90KCkuYWRkKGdv
b2cubWF0aC5Mb25nLk9ORSk7Ci0gICAgfQotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUg
c3VtIG9mIHRoaXMgYW5kIHRoZSBnaXZlbiBMb25nLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5M
b25nfSBvdGhlciBMb25nIHRvIGFkZCB0byB0aGlzIG9uZS4KLSAgICogQHJldHVybiB7IWdvb2cu
bWF0aC5Mb25nfSBUaGUgc3VtIG9mIHRoaXMgYW5kIHRoZSBnaXZlbiBMb25nLgotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgLy8g
RGl2aWRlIGVhY2ggbnVtYmVyIGludG8gNCBjaHVua3Mgb2YgMTYgYml0cywgYW5kIHRoZW4gc3Vt
IHRoZSBjaHVua3MuCi0gICAgdmFyIGE0OCA9IHRoaXMuaGlnaF8gPj4+IDE2OwotICAgIHZhciBh
MzIgPSB0aGlzLmhpZ2hfICYgMHhGRkZGOwotICAgIHZhciBhMTYgPSB0aGlzLmxvd18gPj4+IDE2
OwotICAgIHZhciBhMDAgPSB0aGlzLmxvd18gJiAweEZGRkY7Ci0gICAgdmFyIGI0OCA9IG90aGVy
LmhpZ2hfID4+PiAxNjsKLSAgICB2YXIgYjMyID0gb3RoZXIuaGlnaF8gJiAweEZGRkY7Ci0gICAg
dmFyIGIxNiA9IG90aGVyLmxvd18gPj4+IDE2OwotICAgIHZhciBiMDAgPSBvdGhlci5sb3dfICYg
MHhGRkZGOwotICAgIHZhciBjNDggPSAwLCBjMzIgPSAwLCBjMTYgPSAwLCBjMDAgPSAwOwotICAg
IGMwMCArPSBhMDAgKyBiMDA7Ci0gICAgYzE2ICs9IGMwMCA+Pj4gMTY7Ci0gICAgYzAwICY9IDB4
RkZGRjsKLSAgICBjMTYgKz0gYTE2ICsgYjE2OwotICAgIGMzMiArPSBjMTYgPj4+IDE2OwotICAg
IGMxNiAmPSAweEZGRkY7Ci0gICAgYzMyICs9IGEzMiArIGIzMjsKLSAgICBjNDggKz0gYzMyID4+
PiAxNjsKLSAgICBjMzIgJj0gMHhGRkZGOwotICAgIGM0OCArPSBhNDggKyBiNDg7Ci0gICAgYzQ4
ICY9IDB4RkZGRjsKLSAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoKGMxNiA8PCAx
NikgfCBjMDAsIChjNDggPDwgMTYpIHwgYzMyKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMg
dGhlIGRpZmZlcmVuY2Ugb2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqIEBwYXJhbSB7
Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gc3VidHJhY3QgZnJvbSB0aGlzLgotICAgKiBA
cmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBkaWZmZXJlbmNlIG9mIHRoaXMgYW5kIHRoZSBn
aXZlbiBMb25nLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnN1YnRyYWN0ID0g
ZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhpcy5hZGQob3RoZXIubmVnYXRlKCkpOwot
ICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUgcHJvZHVjdCBvZiB0aGlzIGFuZCB0aGUgZ2l2
ZW4gbG9uZy4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBtdWx0
aXBseSB3aXRoIHRoaXMuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIHByb2R1
Y3Qgb2YgdGhpcyBhbmQgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90
eXBlLm11bHRpcGx5ID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICBpZiAodGhpcy5pc1plcm8oKSkg
ewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgfSBlbHNlIGlmIChvdGhl
ci5pc1plcm8oKSkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgfQot
ICAgIGlmICh0aGlzLmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICBy
ZXR1cm4gb3RoZXIuaXNPZGQoKSA/IGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSA6IGdvb2cubWF0
aC5Mb25nLlpFUk87Ci0gICAgfSBlbHNlIGlmIChvdGhlci5lcXVhbHMoZ29vZy5tYXRoLkxvbmcu
TUlOX1ZBTFVFKSkgewotICAgICAgcmV0dXJuIHRoaXMuaXNPZGQoKSA/IGdvb2cubWF0aC5Mb25n
Lk1JTl9WQUxVRSA6IGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgfQotICAgIGlmICh0aGlzLmlz
TmVnYXRpdmUoKSkgewotICAgICAgaWYgKG90aGVyLmlzTmVnYXRpdmUoKSkgewotICAgICAgICBy
ZXR1cm4gdGhpcy5uZWdhdGUoKS5tdWx0aXBseShvdGhlci5uZWdhdGUoKSk7Ci0gICAgICB9IGVs
c2UgewotICAgICAgICByZXR1cm4gdGhpcy5uZWdhdGUoKS5tdWx0aXBseShvdGhlcikubmVnYXRl
KCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChvdGhlci5pc05lZ2F0aXZlKCkpIHsKLSAgICAg
IHJldHVybiB0aGlzLm11bHRpcGx5KG90aGVyLm5lZ2F0ZSgpKS5uZWdhdGUoKTsKLSAgICB9Ci0g
ICAgLy8gSWYgYm90aCBsb25ncyBhcmUgc21hbGwsIHVzZSBmbG9hdCBtdWx0aXBsaWNhdGlvbgot
ICAgIGlmICh0aGlzLmxlc3NUaGFuKGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfKSAmJgotICAg
ICAgICBvdGhlci5sZXNzVGhhbihnb29nLm1hdGguTG9uZy5UV09fUFdSXzI0XykpIHsKLSAgICAg
IHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKHRoaXMudG9OdW1iZXIoKSAqIG90aGVy
LnRvTnVtYmVyKCkpOwotICAgIH0KLSAgICAvLyBEaXZpZGUgZWFjaCBsb25nIGludG8gNCBjaHVu
a3Mgb2YgMTYgYml0cywgYW5kIHRoZW4gYWRkIHVwIDR4NCBwcm9kdWN0cy4KLSAgICAvLyBXZSBj
YW4gc2tpcCBwcm9kdWN0cyB0aGF0IHdvdWxkIG92ZXJmbG93LgotICAgIHZhciBhNDggPSB0aGlz
LmhpZ2hfID4+PiAxNjsKLSAgICB2YXIgYTMyID0gdGhpcy5oaWdoXyAmIDB4RkZGRjsKLSAgICB2
YXIgYTE2ID0gdGhpcy5sb3dfID4+PiAxNjsKLSAgICB2YXIgYTAwID0gdGhpcy5sb3dfICYgMHhG
RkZGOwotICAgIHZhciBiNDggPSBvdGhlci5oaWdoXyA+Pj4gMTY7Ci0gICAgdmFyIGIzMiA9IG90
aGVyLmhpZ2hfICYgMHhGRkZGOwotICAgIHZhciBiMTYgPSBvdGhlci5sb3dfID4+PiAxNjsKLSAg
ICB2YXIgYjAwID0gb3RoZXIubG93XyAmIDB4RkZGRjsKLSAgICB2YXIgYzQ4ID0gMCwgYzMyID0g
MCwgYzE2ID0gMCwgYzAwID0gMDsKLSAgICBjMDAgKz0gYTAwICogYjAwOwotICAgIGMxNiArPSBj
MDAgPj4+IDE2OwotICAgIGMwMCAmPSAweEZGRkY7Ci0gICAgYzE2ICs9IGExNiAqIGIwMDsKLSAg
ICBjMzIgKz0gYzE2ID4+PiAxNjsKLSAgICBjMTYgJj0gMHhGRkZGOwotICAgIGMxNiArPSBhMDAg
KiBiMTY7Ci0gICAgYzMyICs9IGMxNiA+Pj4gMTY7Ci0gICAgYzE2ICY9IDB4RkZGRjsKLSAgICBj
MzIgKz0gYTMyICogYjAwOwotICAgIGM0OCArPSBjMzIgPj4+IDE2OwotICAgIGMzMiAmPSAweEZG
RkY7Ci0gICAgYzMyICs9IGExNiAqIGIxNjsKLSAgICBjNDggKz0gYzMyID4+PiAxNjsKLSAgICBj
MzIgJj0gMHhGRkZGOwotICAgIGMzMiArPSBhMDAgKiBiMzI7Ci0gICAgYzQ4ICs9IGMzMiA+Pj4g
MTY7Ci0gICAgYzMyICY9IDB4RkZGRjsKLSAgICBjNDggKz0gYTQ4ICogYjAwICsgYTMyICogYjE2
ICsgYTE2ICogYjMyICsgYTAwICogYjQ4OwotICAgIGM0OCAmPSAweEZGRkY7Ci0gICAgcmV0dXJu
IGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKChjMTYgPDwgMTYpIHwgYzAwLCAoYzQ4IDw8IDE2KSB8
IGMzMik7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoaXMgTG9uZyBkaXZpZGVkIGJ5IHRo
ZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgYnkg
d2hpY2ggdG8gZGl2aWRlLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoaXMgTG9u
ZyBkaXZpZGVkIGJ5IHRoZSBnaXZlbiBvbmUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90
b3R5cGUuZGl2ID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICBpZiAob3RoZXIuaXNaZXJvKCkpIHsK
LSAgICAgIHRocm93IEVycm9yKCdkaXZpc2lvbiBieSB6ZXJvJyk7Ci0gICAgfSBlbHNlIGlmICh0
aGlzLmlzWmVybygpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9
Ci0gICAgaWYgKHRoaXMuZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAg
IGlmIChvdGhlci5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuT05FKSB8fAotICAgICAgICAgIG90aGVy
LmVxdWFscyhnb29nLm1hdGguTG9uZy5ORUdfT05FKSkgewotICAgICAgICByZXR1cm4gZ29vZy5t
YXRoLkxvbmcuTUlOX1ZBTFVFOyAgLy8gcmVjYWxsIHRoYXQgLU1JTl9WQUxVRSA9PSBNSU5fVkFM
VUUKLSAgICAgIH0gZWxzZSBpZiAob3RoZXIuZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxV
RSkpIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLk9ORTsKLSAgICAgIH0gZWxzZSB7
Ci0gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlIGhhdmUgfG90aGVyfCA+PSAyLCBzbyB8dGhp
cy9vdGhlcnwgPCB8TUlOX1ZBTFVFfC4KLSAgICAgICAgdmFyIGhhbGZUaGlzID0gdGhpcy5zaGlm
dFJpZ2h0KDEpOwotICAgICAgICB2YXIgYXBwcm94ID0gaGFsZlRoaXMuZGl2KG90aGVyKS5zaGlm
dExlZnQoMSk7Ci0gICAgICAgIGlmIChhcHByb3guZXF1YWxzKGdvb2cubWF0aC5Mb25nLlpFUk8p
KSB7Ci0gICAgICAgICAgcmV0dXJuIG90aGVyLmlzTmVnYXRpdmUoKSA/IGdvb2cubWF0aC5Mb25n
Lk9ORSA6IGdvb2cubWF0aC5Mb25nLk5FR19PTkU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgdmFyIHJlbSA9IHRoaXMuc3VidHJhY3Qob3RoZXIubXVsdGlwbHkoYXBwcm94KSk7Ci0gICAg
ICAgICAgdmFyIHJlc3VsdCA9IGFwcHJveC5hZGQocmVtLmRpdihvdGhlcikpOwotICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG90aGVy
LmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5t
YXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0gICAgaWYgKHRoaXMuaXNOZWdhdGl2ZSgpKSB7Ci0gICAg
ICBpZiAob3RoZXIuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZSgp
LmRpdihvdGhlci5uZWdhdGUoKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gdGhp
cy5uZWdhdGUoKS5kaXYob3RoZXIpLm5lZ2F0ZSgpOwotICAgICAgfQotICAgIH0gZWxzZSBpZiAo
b3RoZXIuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICByZXR1cm4gdGhpcy5kaXYob3RoZXIubmVnYXRl
KCkpLm5lZ2F0ZSgpOwotICAgIH0KLSAgICAvLyBSZXBlYXQgdGhlIGZvbGxvd2luZyB1bnRpbCB0
aGUgcmVtYWluZGVyIGlzIGxlc3MgdGhhbiBvdGhlcjogIGZpbmQgYQotICAgIC8vIGZsb2F0aW5n
LXBvaW50IHRoYXQgYXBwcm94aW1hdGVzIHJlbWFpbmRlciAvIG90aGVyICpmcm9tIGJlbG93Kiwg
YWRkIHRoaXMKLSAgICAvLyBpbnRvIHRoZSByZXN1bHQsIGFuZCBzdWJ0cmFjdCBpdCBmcm9tIHRo
ZSByZW1haW5kZXIuICBJdCBpcyBjcml0aWNhbCB0aGF0Ci0gICAgLy8gdGhlIGFwcHJveGltYXRl
IHZhbHVlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgcmVhbCB2YWx1ZSBzbyB0aGF0IHRo
ZQotICAgIC8vIHJlbWFpbmRlciBuZXZlciBiZWNvbWVzIG5lZ2F0aXZlLgotICAgIHZhciByZXMg
PSBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIHZhciByZW0gPSB0aGlzOwotICAgIHdoaWxlIChy
ZW0uZ3JlYXRlclRoYW5PckVxdWFsKG90aGVyKSkgewotICAgICAgLy8gQXBwcm94aW1hdGUgdGhl
IHJlc3VsdCBvZiBkaXZpc2lvbi4gVGhpcyBtYXkgYmUgYSBsaXR0bGUgZ3JlYXRlciBvcgotICAg
ICAgLy8gc21hbGxlciB0aGFuIHRoZSBhY3R1YWwgdmFsdWUuCi0gICAgICB2YXIgYXBwcm94ID0g
TWF0aC5tYXgoMSwgTWF0aC5mbG9vcihyZW0udG9OdW1iZXIoKSAvIG90aGVyLnRvTnVtYmVyKCkp
KTsKLSAgICAgIC8vIFdlIHdpbGwgdHdlYWsgdGhlIGFwcHJveGltYXRlIHJlc3VsdCBieSBjaGFu
Z2luZyBpdCBpbiB0aGUgNDgtdGggZGlnaXQgb3IKLSAgICAgIC8vIHRoZSBzbWFsbGVzdCBub24t
ZnJhY3Rpb25hbCBkaWdpdCwgd2hpY2hldmVyIGlzIGxhcmdlci4KLSAgICAgIHZhciBsb2cyID0g
TWF0aC5jZWlsKE1hdGgubG9nKGFwcHJveCkgLyBNYXRoLkxOMik7Ci0gICAgICB2YXIgZGVsdGEg
PSAobG9nMiA8PSA0OCkgPyAxIDogTWF0aC5wb3coMiwgbG9nMiAtIDQ4KTsKLSAgICAgIC8vIERl
Y3JlYXNlIHRoZSBhcHByb3hpbWF0aW9uIHVudGlsIGl0IGlzIHNtYWxsZXIgdGhhbiB0aGUgcmVt
YWluZGVyLiAgTm90ZQotICAgICAgLy8gdGhhdCBpZiBpdCBpcyB0b28gbGFyZ2UsIHRoZSBwcm9k
dWN0IG92ZXJmbG93cyBhbmQgaXMgbmVnYXRpdmUuCi0gICAgICB2YXIgYXBwcm94UmVzID0gZ29v
Zy5tYXRoLkxvbmcuZnJvbU51bWJlcihhcHByb3gpOwotICAgICAgdmFyIGFwcHJveFJlbSA9IGFw
cHJveFJlcy5tdWx0aXBseShvdGhlcik7Ci0gICAgICB3aGlsZSAoYXBwcm94UmVtLmlzTmVnYXRp
dmUoKSB8fCBhcHByb3hSZW0uZ3JlYXRlclRoYW4ocmVtKSkgewotICAgICAgICBhcHByb3ggLT0g
ZGVsdGE7Ci0gICAgICAgIGFwcHJveFJlcyA9IGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIoYXBw
cm94KTsKLSAgICAgICAgYXBwcm94UmVtID0gYXBwcm94UmVzLm11bHRpcGx5KG90aGVyKTsKLSAg
ICAgIH0KLSAgICAgIC8vIFdlIGtub3cgdGhlIGFuc3dlciBjYW4ndCBiZSB6ZXJvLi4uIGFuZCBh
Y3R1YWxseSwgemVybyB3b3VsZCBjYXVzZQotICAgICAgLy8gaW5maW5pdGUgcmVjdXJzaW9uIHNp
bmNlIHdlIHdvdWxkIG1ha2Ugbm8gcHJvZ3Jlc3MuCi0gICAgICBpZiAoYXBwcm94UmVzLmlzWmVy
bygpKSB7Ci0gICAgICAgIGFwcHJveFJlcyA9IGdvb2cubWF0aC5Mb25nLk9ORTsKLSAgICAgIH0K
LSAgICAgIHJlcyA9IHJlcy5hZGQoYXBwcm94UmVzKTsKLSAgICAgIHJlbSA9IHJlbS5zdWJ0cmFj
dChhcHByb3hSZW0pOwotICAgIH0KLSAgICByZXR1cm4gcmVzOwotICB9OwotICAvKioKLSAgICog
UmV0dXJucyB0aGlzIExvbmcgbW9kdWxvIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29v
Zy5tYXRoLkxvbmd9IG90aGVyIExvbmcgYnkgd2hpY2ggdG8gbW9kLgotICAgKiBAcmV0dXJuIHsh
Z29vZy5tYXRoLkxvbmd9IFRoaXMgTG9uZyBtb2R1bG8gdGhlIGdpdmVuIG9uZS4KLSAgICovCi0g
IGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5tb2R1bG8gPSBmdW5jdGlvbihvdGhlcikgewotICAg
IHJldHVybiB0aGlzLnN1YnRyYWN0KHRoaXMuZGl2KG90aGVyKS5tdWx0aXBseShvdGhlcikpOwot
ICB9OwotICAvKiogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgYml0d2lzZS1OT1Qgb2Yg
dGhpcyB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLm5vdCA9IGZ1bmN0aW9u
KCkgewotICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cyh+dGhpcy5sb3dfLCB+dGhp
cy5oaWdoXyk7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBiaXR3aXNlLUFORCBvZiB0
aGlzIExvbmcgYW5kIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9
IG90aGVyIFRoZSBMb25nIHdpdGggd2hpY2ggdG8gQU5ELgotICAgKiBAcmV0dXJuIHshZ29vZy5t
YXRoLkxvbmd9IFRoZSBiaXR3aXNlLUFORCBvZiB0aGlzIGFuZCB0aGUgb3RoZXIuCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuYW5kID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICBy
ZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHModGhpcy5sb3dfICYgb3RoZXIubG93XywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWdoXyAmIG90aGVyLmhpZ2hf
KTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhlIGJpdHdpc2UtT1Igb2YgdGhpcyBMb25n
IGFuZCB0aGUgZ2l2ZW4gb25lLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBU
aGUgTG9uZyB3aXRoIHdoaWNoIHRvIE9SLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9
IFRoZSBiaXR3aXNlLU9SIG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0
aC5Mb25nLnByb3RvdHlwZS5vciA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIGdvb2cu
bWF0aC5Mb25nLmZyb21CaXRzKHRoaXMubG93XyB8IG90aGVyLmxvd18sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlnaF8gfCBvdGhlci5oaWdoXyk7Ci0gIH07Ci0g
IC8qKgotICAgKiBSZXR1cm5zIHRoZSBiaXR3aXNlLVhPUiBvZiB0aGlzIExvbmcgYW5kIHRoZSBn
aXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIFRoZSBMb25nIHdp
dGggd2hpY2ggdG8gWE9SLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBiaXR3
aXNlLVhPUiBvZiB0aGlzIGFuZCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5w
cm90b3R5cGUueG9yID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gZ29vZy5tYXRoLkxv
bmcuZnJvbUJpdHModGhpcy5sb3dfIF4gb3RoZXIubG93XywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5oaWdoXyBeIG90aGVyLmhpZ2hfKTsKLSAgfTsKLSAgLyoqCi0g
ICAqIFJldHVybnMgdGhpcyBMb25nIHdpdGggYml0cyBzaGlmdGVkIHRvIHRoZSBsZWZ0IGJ5IHRo
ZSBnaXZlbiBhbW91bnQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1CaXRzIFRoZSBudW1iZXIg
b2YgYml0cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25n
fSBUaGlzIHNoaWZ0ZWQgdG8gdGhlIGxlZnQgYnkgdGhlIGdpdmVuIGFtb3VudC4KLSAgICovCi0g
IGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5zaGlmdExlZnQgPSBmdW5jdGlvbihudW1CaXRzKSB7
Ci0gICAgbnVtQml0cyAmPSA2MzsKLSAgICBpZiAobnVtQml0cyA9PSAwKSB7Ci0gICAgICByZXR1
cm4gdGhpczsKLSAgICB9IGVsc2UgewotICAgICAgdmFyIGxvdyA9IHRoaXMubG93XzsKLSAgICAg
IGlmIChudW1CaXRzIDwgMzIpIHsKLSAgICAgICAgdmFyIGhpZ2ggPSB0aGlzLmhpZ2hfOwotICAg
ICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoCi0gICAgICAgICAgICBsb3cgPDwg
bnVtQml0cywKLSAgICAgICAgICAgIChoaWdoIDw8IG51bUJpdHMpIHwgKGxvdyA+Pj4gKDMyIC0g
bnVtQml0cykpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9u
Zy5mcm9tQml0cygwLCBsb3cgPDwgKG51bUJpdHMgLSAzMikpOwotICAgICAgfQotICAgIH0KLSAg
fTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBMb25nIHdpdGggYml0cyBzaGlmdGVkIHRvIHRo
ZSByaWdodCBieSB0aGUgZ2l2ZW4gYW1vdW50LgotICAgKiBAcGFyYW0ge251bWJlcn0gbnVtQml0
cyBUaGUgbnVtYmVyIG9mIGJpdHMgYnkgd2hpY2ggdG8gc2hpZnQuCi0gICAqIEByZXR1cm4geyFn
b29nLm1hdGguTG9uZ30gVGhpcyBzaGlmdGVkIHRvIHRoZSByaWdodCBieSB0aGUgZ2l2ZW4gYW1v
dW50LgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0UmlnaHQgPSBmdW5j
dGlvbihudW1CaXRzKSB7Ci0gICAgbnVtQml0cyAmPSA2MzsKLSAgICBpZiAobnVtQml0cyA9PSAw
KSB7Ci0gICAgICByZXR1cm4gdGhpczsKLSAgICB9IGVsc2UgewotICAgICAgdmFyIGhpZ2ggPSB0
aGlzLmhpZ2hfOwotICAgICAgaWYgKG51bUJpdHMgPCAzMikgewotICAgICAgICB2YXIgbG93ID0g
dGhpcy5sb3dfOwotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoCi0gICAg
ICAgICAgICAobG93ID4+PiBudW1CaXRzKSB8IChoaWdoIDw8ICgzMiAtIG51bUJpdHMpKSwKLSAg
ICAgICAgICAgIGhpZ2ggPj4gbnVtQml0cyk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1
cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoCi0gICAgICAgICAgICBoaWdoID4+IChudW1CaXRz
IC0gMzIpLAotICAgICAgICAgICAgaGlnaCA+PSAwID8gMCA6IC0xKTsKLSAgICAgIH0KLSAgICB9
Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoaXMgTG9uZyB3aXRoIGJpdHMgc2hpZnRlZCB0
byB0aGUgcmlnaHQgYnkgdGhlIGdpdmVuIGFtb3VudCwgd2l0aAotICAgKiB0aGUgbmV3IHRvcCBi
aXRzIG1hdGNoaW5nIHRoZSBjdXJyZW50IHNpZ24gYml0LgotICAgKiBAcGFyYW0ge251bWJlcn0g
bnVtQml0cyBUaGUgbnVtYmVyIG9mIGJpdHMgYnkgd2hpY2ggdG8gc2hpZnQuCi0gICAqIEByZXR1
cm4geyFnb29nLm1hdGguTG9uZ30gVGhpcyBzaGlmdGVkIHRvIHRoZSByaWdodCBieSB0aGUgZ2l2
ZW4gYW1vdW50LCB3aXRoCi0gICAqICAgICB6ZXJvcyBwbGFjZWQgaW50byB0aGUgbmV3IGxlYWRp
bmcgYml0cy4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5zaGlmdFJpZ2h0VW5z
aWduZWQgPSBmdW5jdGlvbihudW1CaXRzKSB7Ci0gICAgbnVtQml0cyAmPSA2MzsKLSAgICBpZiAo
bnVtQml0cyA9PSAwKSB7Ci0gICAgICByZXR1cm4gdGhpczsKLSAgICB9IGVsc2UgewotICAgICAg
dmFyIGhpZ2ggPSB0aGlzLmhpZ2hfOwotICAgICAgaWYgKG51bUJpdHMgPCAzMikgewotICAgICAg
ICB2YXIgbG93ID0gdGhpcy5sb3dfOwotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJv
bUJpdHMoCi0gICAgICAgICAgICAobG93ID4+PiBudW1CaXRzKSB8IChoaWdoIDw8ICgzMiAtIG51
bUJpdHMpKSwKLSAgICAgICAgICAgIGhpZ2ggPj4+IG51bUJpdHMpOwotICAgICAgfSBlbHNlIGlm
IChudW1CaXRzID09IDMyKSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0
cyhoaWdoLCAwKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9u
Zy5mcm9tQml0cyhoaWdoID4+PiAobnVtQml0cyAtIDMyKSwgMCk7Ci0gICAgICB9Ci0gICAgfQot
ICB9OwotICAvLz09PT09PT0gYmVnaW4ganNibiA9PT09PT09Ci0gIHZhciBuYXZpZ2F0b3IgPSB7
IGFwcE5hbWU6ICdNb2Rlcm4gQnJvd3NlcicgfTsgLy8gcG9seWZpbGwgYSBsaXR0bGUKLSAgLy8g
Q29weXJpZ2h0IChjKSAyMDA1ICBUb20gV3UKLSAgLy8gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAg
Ly8gaHR0cDovL3d3dy1jcy1zdHVkZW50cy5zdGFuZm9yZC5lZHUvfnRqdy9qc2JuLwotICAvKgot
ICAgKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSAgVG9tIFd1Ci0gICAqIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0gICAqCi0gICAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwotICAgKiBhIGNvcHkgb2YgdGhpcyBzb2Z0
d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSAgICogIlNvZnR3
YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZwotICAgKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v
ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0gICAqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
ciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotICAgKiBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K
LSAgICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICAgKgotICAgKiBUaGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQotICAgKiBp
bmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0
d2FyZS4KLSAgICoKLSAgICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUy1JUyIgQU5EIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIAotICAgKiBFWFBSRVNTLCBJTVBMSUVEIE9SIE9U
SEVSV0lTRSwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIAotICAgKiBXQVJSQU5U
WSBPRiBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICAKLSAgICoKLSAgICogSU4gTk8gRVZFTlQgU0hBTEwgVE9NIFdVIEJFIExJQUJMRSBGT1IgQU5Z
IFNQRUNJQUwsIElOQ0lERU5UQUwsCi0gICAqIElORElSRUNUIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyBPRiBBTlkgS0lORCwgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUgotICAgKiBSRVNVTFRJ
TkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIE9SIE5PVCBBRFZJ
U0VEIE9GCi0gICAqIFRIRSBQT1NTSUJJTElUWSBPRiBEQU1BR0UsIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgQVJJU0lORyBPVVQKLSAgICogT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KLSAgICoKLSAgICogSW4g
YWRkaXRpb24sIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uIGFwcGxpZXM6Ci0gICAqCi0gICAqIEFs
bCByZWRpc3RyaWJ1dGlvbnMgbXVzdCByZXRhaW4gYW4gaW50YWN0IGNvcHkgb2YgdGhpcyBjb3B5
cmlnaHQgbm90aWNlCi0gICAqIGFuZCBkaXNjbGFpbWVyLgotICAgKi8KLSAgLy8gQmFzaWMgSmF2
YVNjcmlwdCBCTiBsaWJyYXJ5IC0gc3Vic2V0IHVzZWZ1bCBmb3IgUlNBIGVuY3J5cHRpb24uCi0g
IC8vIEJpdHMgcGVyIGRpZ2l0Ci0gIHZhciBkYml0czsKLSAgLy8gSmF2YVNjcmlwdCBlbmdpbmUg
YW5hbHlzaXMKLSAgdmFyIGNhbmFyeSA9IDB4ZGVhZGJlZWZjYWZlOwotICB2YXIgal9sbSA9ICgo
Y2FuYXJ5JjB4ZmZmZmZmKT09MHhlZmNhZmUpOwotICAvLyAocHVibGljKSBDb25zdHJ1Y3Rvcgot
ICBmdW5jdGlvbiBCaWdJbnRlZ2VyKGEsYixjKSB7Ci0gICAgaWYoYSAhPSBudWxsKQotICAgICAg
aWYoIm51bWJlciIgPT0gdHlwZW9mIGEpIHRoaXMuZnJvbU51bWJlcihhLGIsYyk7Ci0gICAgICBl
bHNlIGlmKGIgPT0gbnVsbCAmJiAic3RyaW5nIiAhPSB0eXBlb2YgYSkgdGhpcy5mcm9tU3RyaW5n
KGEsMjU2KTsKLSAgICAgIGVsc2UgdGhpcy5mcm9tU3RyaW5nKGEsYik7Ci0gIH0KLSAgLy8gcmV0
dXJuIG5ldywgdW5zZXQgQmlnSW50ZWdlcgotICBmdW5jdGlvbiBuYmkoKSB7IHJldHVybiBuZXcg
QmlnSW50ZWdlcihudWxsKTsgfQotICAvLyBhbTogQ29tcHV0ZSB3X2ogKz0gKHgqdGhpc19pKSwg
cHJvcGFnYXRlIGNhcnJpZXMsCi0gIC8vIGMgaXMgaW5pdGlhbCBjYXJyeSwgcmV0dXJucyBmaW5h
bCBjYXJyeS4KLSAgLy8gYyA8IDMqZHZhbHVlLCB4IDwgMipkdmFsdWUsIHRoaXNfaSA8IGR2YWx1
ZQotICAvLyBXZSBuZWVkIHRvIHNlbGVjdCB0aGUgZmFzdGVzdCBvbmUgdGhhdCB3b3JrcyBpbiB0
aGlzIGVudmlyb25tZW50LgotICAvLyBhbTE6IHVzZSBhIHNpbmdsZSBtdWx0IGFuZCBkaXZpZGUg
dG8gZ2V0IHRoZSBoaWdoIGJpdHMsCi0gIC8vIG1heCBkaWdpdCBiaXRzIHNob3VsZCBiZSAyNiBi
ZWNhdXNlCi0gIC8vIG1heCBpbnRlcm5hbCB2YWx1ZSA9IDIqZHZhbHVlXjItMipkdmFsdWUgKDwg
Ml41MykKLSAgZnVuY3Rpb24gYW0xKGkseCx3LGosYyxuKSB7Ci0gICAgd2hpbGUoLS1uID49IDAp
IHsKLSAgICAgIHZhciB2ID0geCp0aGlzW2krK10rd1tqXStjOwotICAgICAgYyA9IE1hdGguZmxv
b3Iodi8weDQwMDAwMDApOwotICAgICAgd1tqKytdID0gdiYweDNmZmZmZmY7Ci0gICAgfQotICAg
IHJldHVybiBjOwotICB9Ci0gIC8vIGFtMiBhdm9pZHMgYSBiaWcgbXVsdC1hbmQtZXh0cmFjdCBj
b21wbGV0ZWx5LgotICAvLyBNYXggZGlnaXQgYml0cyBzaG91bGQgYmUgPD0gMzAgYmVjYXVzZSB3
ZSBkbyBiaXR3aXNlIG9wcwotICAvLyBvbiB2YWx1ZXMgdXAgdG8gMipoZHZhbHVlXjItaGR2YWx1
ZS0xICg8IDJeMzEpCi0gIGZ1bmN0aW9uIGFtMihpLHgsdyxqLGMsbikgewotICAgIHZhciB4bCA9
IHgmMHg3ZmZmLCB4aCA9IHg+PjE1OwotICAgIHdoaWxlKC0tbiA+PSAwKSB7Ci0gICAgICB2YXIg
bCA9IHRoaXNbaV0mMHg3ZmZmOwotICAgICAgdmFyIGggPSB0aGlzW2krK10+PjE1OwotICAgICAg
dmFyIG0gPSB4aCpsK2gqeGw7Ci0gICAgICBsID0geGwqbCsoKG0mMHg3ZmZmKTw8MTUpK3dbal0r
KGMmMHgzZmZmZmZmZik7Ci0gICAgICBjID0gKGw+Pj4zMCkrKG0+Pj4xNSkreGgqaCsoYz4+PjMw
KTsKLSAgICAgIHdbaisrXSA9IGwmMHgzZmZmZmZmZjsKLSAgICB9Ci0gICAgcmV0dXJuIGM7Ci0g
IH0KLSAgLy8gQWx0ZXJuYXRlbHksIHNldCBtYXggZGlnaXQgYml0cyB0byAyOCBzaW5jZSBzb21l
Ci0gIC8vIGJyb3dzZXJzIHNsb3cgZG93biB3aGVuIGRlYWxpbmcgd2l0aCAzMi1iaXQgbnVtYmVy
cy4KLSAgZnVuY3Rpb24gYW0zKGkseCx3LGosYyxuKSB7Ci0gICAgdmFyIHhsID0geCYweDNmZmYs
IHhoID0geD4+MTQ7Ci0gICAgd2hpbGUoLS1uID49IDApIHsKLSAgICAgIHZhciBsID0gdGhpc1tp
XSYweDNmZmY7Ci0gICAgICB2YXIgaCA9IHRoaXNbaSsrXT4+MTQ7Ci0gICAgICB2YXIgbSA9IHho
KmwraCp4bDsKLSAgICAgIGwgPSB4bCpsKygobSYweDNmZmYpPDwxNCkrd1tqXStjOwotICAgICAg
YyA9IChsPj4yOCkrKG0+PjE0KSt4aCpoOwotICAgICAgd1tqKytdID0gbCYweGZmZmZmZmY7Ci0g
ICAgfQotICAgIHJldHVybiBjOwotICB9Ci0gIGlmKGpfbG0gJiYgKG5hdmlnYXRvci5hcHBOYW1l
ID09ICJNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIiKSkgewotICAgIEJpZ0ludGVnZXIucHJv
dG90eXBlLmFtID0gYW0yOwotICAgIGRiaXRzID0gMzA7Ci0gIH0KLSAgZWxzZSBpZihqX2xtICYm
IChuYXZpZ2F0b3IuYXBwTmFtZSAhPSAiTmV0c2NhcGUiKSkgewotICAgIEJpZ0ludGVnZXIucHJv
dG90eXBlLmFtID0gYW0xOwotICAgIGRiaXRzID0gMjY7Ci0gIH0KLSAgZWxzZSB7IC8vIE1vemls
bGEvTmV0c2NhcGUgc2VlbXMgdG8gcHJlZmVyIGFtMwotICAgIEJpZ0ludGVnZXIucHJvdG90eXBl
LmFtID0gYW0zOwotICAgIGRiaXRzID0gMjg7Ci0gIH0KLSAgQmlnSW50ZWdlci5wcm90b3R5cGUu
REIgPSBkYml0czsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuRE0gPSAoKDE8PGRiaXRzKS0xKTsK
LSAgQmlnSW50ZWdlci5wcm90b3R5cGUuRFYgPSAoMTw8ZGJpdHMpOwotICB2YXIgQklfRlAgPSA1
MjsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuRlYgPSBNYXRoLnBvdygyLEJJX0ZQKTsKLSAgQmln
SW50ZWdlci5wcm90b3R5cGUuRjEgPSBCSV9GUC1kYml0czsKLSAgQmlnSW50ZWdlci5wcm90b3R5
cGUuRjIgPSAyKmRiaXRzLUJJX0ZQOwotICAvLyBEaWdpdCBjb252ZXJzaW9ucwotICB2YXIgQklf
Uk0gPSAiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IjsKLSAgdmFyIEJJX1JD
ID0gbmV3IEFycmF5KCk7Ci0gIHZhciBycix2djsKLSAgcnIgPSAiMCIuY2hhckNvZGVBdCgwKTsK
LSAgZm9yKHZ2ID0gMDsgdnYgPD0gOTsgKyt2dikgQklfUkNbcnIrK10gPSB2djsKLSAgcnIgPSAi
YSIuY2hhckNvZGVBdCgwKTsKLSAgZm9yKHZ2ID0gMTA7IHZ2IDwgMzY7ICsrdnYpIEJJX1JDW3Jy
KytdID0gdnY7Ci0gIHJyID0gIkEiLmNoYXJDb2RlQXQoMCk7Ci0gIGZvcih2diA9IDEwOyB2diA8
IDM2OyArK3Z2KSBCSV9SQ1tycisrXSA9IHZ2OwotICBmdW5jdGlvbiBpbnQyY2hhcihuKSB7IHJl
dHVybiBCSV9STS5jaGFyQXQobik7IH0KLSAgZnVuY3Rpb24gaW50QXQocyxpKSB7Ci0gICAgdmFy
IGMgPSBCSV9SQ1tzLmNoYXJDb2RlQXQoaSldOwotICAgIHJldHVybiAoYz09bnVsbCk/LTE6YzsK
LSAgfQotICAvLyAocHJvdGVjdGVkKSBjb3B5IHRoaXMgdG8gcgotICBmdW5jdGlvbiBibnBDb3B5
VG8ocikgewotICAgIGZvcih2YXIgaSA9IHRoaXMudC0xOyBpID49IDA7IC0taSkgcltpXSA9IHRo
aXNbaV07Ci0gICAgci50ID0gdGhpcy50OwotICAgIHIucyA9IHRoaXMuczsKLSAgfQotICAvLyAo
cHJvdGVjdGVkKSBzZXQgZnJvbSBpbnRlZ2VyIHZhbHVlIHgsIC1EViA8PSB4IDwgRFYKLSAgZnVu
Y3Rpb24gYm5wRnJvbUludCh4KSB7Ci0gICAgdGhpcy50ID0gMTsKLSAgICB0aGlzLnMgPSAoeDww
KT8tMTowOwotICAgIGlmKHggPiAwKSB0aGlzWzBdID0geDsKLSAgICBlbHNlIGlmKHggPCAtMSkg
dGhpc1swXSA9IHgrRFY7Ci0gICAgZWxzZSB0aGlzLnQgPSAwOwotICB9Ci0gIC8vIHJldHVybiBi
aWdpbnQgaW5pdGlhbGl6ZWQgdG8gdmFsdWUKLSAgZnVuY3Rpb24gbmJ2KGkpIHsgdmFyIHIgPSBu
YmkoKTsgci5mcm9tSW50KGkpOyByZXR1cm4gcjsgfQotICAvLyAocHJvdGVjdGVkKSBzZXQgZnJv
bSBzdHJpbmcgYW5kIHJhZGl4Ci0gIGZ1bmN0aW9uIGJucEZyb21TdHJpbmcocyxiKSB7Ci0gICAg
dmFyIGs7Ci0gICAgaWYoYiA9PSAxNikgayA9IDQ7Ci0gICAgZWxzZSBpZihiID09IDgpIGsgPSAz
OwotICAgIGVsc2UgaWYoYiA9PSAyNTYpIGsgPSA4OyAvLyBieXRlIGFycmF5Ci0gICAgZWxzZSBp
ZihiID09IDIpIGsgPSAxOwotICAgIGVsc2UgaWYoYiA9PSAzMikgayA9IDU7Ci0gICAgZWxzZSBp
ZihiID09IDQpIGsgPSAyOwotICAgIGVsc2UgeyB0aGlzLmZyb21SYWRpeChzLGIpOyByZXR1cm47
IH0KLSAgICB0aGlzLnQgPSAwOwotICAgIHRoaXMucyA9IDA7Ci0gICAgdmFyIGkgPSBzLmxlbmd0
aCwgbWkgPSBmYWxzZSwgc2ggPSAwOwotICAgIHdoaWxlKC0taSA+PSAwKSB7Ci0gICAgICB2YXIg
eCA9IChrPT04KT9zW2ldJjB4ZmY6aW50QXQocyxpKTsKLSAgICAgIGlmKHggPCAwKSB7Ci0gICAg
ICAgIGlmKHMuY2hhckF0KGkpID09ICItIikgbWkgPSB0cnVlOwotICAgICAgICBjb250aW51ZTsK
LSAgICAgIH0KLSAgICAgIG1pID0gZmFsc2U7Ci0gICAgICBpZihzaCA9PSAwKQotICAgICAgICB0
aGlzW3RoaXMudCsrXSA9IHg7Ci0gICAgICBlbHNlIGlmKHNoK2sgPiB0aGlzLkRCKSB7Ci0gICAg
ICAgIHRoaXNbdGhpcy50LTFdIHw9ICh4JigoMTw8KHRoaXMuREItc2gpKS0xKSk8PHNoOwotICAg
ICAgICB0aGlzW3RoaXMudCsrXSA9ICh4Pj4odGhpcy5EQi1zaCkpOwotICAgICAgfQotICAgICAg
ZWxzZQotICAgICAgICB0aGlzW3RoaXMudC0xXSB8PSB4PDxzaDsKLSAgICAgIHNoICs9IGs7Ci0g
ICAgICBpZihzaCA+PSB0aGlzLkRCKSBzaCAtPSB0aGlzLkRCOwotICAgIH0KLSAgICBpZihrID09
IDggJiYgKHNbMF0mMHg4MCkgIT0gMCkgewotICAgICAgdGhpcy5zID0gLTE7Ci0gICAgICBpZihz
aCA+IDApIHRoaXNbdGhpcy50LTFdIHw9ICgoMTw8KHRoaXMuREItc2gpKS0xKTw8c2g7Ci0gICAg
fQotICAgIHRoaXMuY2xhbXAoKTsKLSAgICBpZihtaSkgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHRo
aXMsdGhpcyk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgY2xhbXAgb2ZmIGV4Y2VzcyBoaWdoIHdv
cmRzCi0gIGZ1bmN0aW9uIGJucENsYW1wKCkgewotICAgIHZhciBjID0gdGhpcy5zJnRoaXMuRE07
Ci0gICAgd2hpbGUodGhpcy50ID4gMCAmJiB0aGlzW3RoaXMudC0xXSA9PSBjKSAtLXRoaXMudDsK
LSAgfQotICAvLyAocHVibGljKSByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIGluIGdpdmVu
IHJhZGl4Ci0gIGZ1bmN0aW9uIGJuVG9TdHJpbmcoYikgewotICAgIGlmKHRoaXMucyA8IDApIHJl
dHVybiAiLSIrdGhpcy5uZWdhdGUoKS50b1N0cmluZyhiKTsKLSAgICB2YXIgazsKLSAgICBpZihi
ID09IDE2KSBrID0gNDsKLSAgICBlbHNlIGlmKGIgPT0gOCkgayA9IDM7Ci0gICAgZWxzZSBpZihi
ID09IDIpIGsgPSAxOwotICAgIGVsc2UgaWYoYiA9PSAzMikgayA9IDU7Ci0gICAgZWxzZSBpZihi
ID09IDQpIGsgPSAyOwotICAgIGVsc2UgcmV0dXJuIHRoaXMudG9SYWRpeChiKTsKLSAgICB2YXIg
a20gPSAoMTw8ayktMSwgZCwgbSA9IGZhbHNlLCByID0gIiIsIGkgPSB0aGlzLnQ7Ci0gICAgdmFy
IHAgPSB0aGlzLkRCLShpKnRoaXMuREIpJWs7Ci0gICAgaWYoaS0tID4gMCkgewotICAgICAgaWYo
cCA8IHRoaXMuREIgJiYgKGQgPSB0aGlzW2ldPj5wKSA+IDApIHsgbSA9IHRydWU7IHIgPSBpbnQy
Y2hhcihkKTsgfQotICAgICAgd2hpbGUoaSA+PSAwKSB7Ci0gICAgICAgIGlmKHAgPCBrKSB7Ci0g
ICAgICAgICAgZCA9ICh0aGlzW2ldJigoMTw8cCktMSkpPDwoay1wKTsKLSAgICAgICAgICBkIHw9
IHRoaXNbLS1pXT4+KHArPXRoaXMuREItayk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgZCA9ICh0aGlzW2ldPj4ocC09aykpJmttOwotICAgICAgICAgIGlmKHAgPD0gMCkg
eyBwICs9IHRoaXMuREI7IC0taTsgfQotICAgICAgICB9Ci0gICAgICAgIGlmKGQgPiAwKSBtID0g
dHJ1ZTsKLSAgICAgICAgaWYobSkgciArPSBpbnQyY2hhcihkKTsKLSAgICAgIH0KLSAgICB9Ci0g
ICAgcmV0dXJuIG0/cjoiMCI7Ci0gIH0KLSAgLy8gKHB1YmxpYykgLXRoaXMKLSAgZnVuY3Rpb24g
Ym5OZWdhdGUoKSB7IHZhciByID0gbmJpKCk7IEJpZ0ludGVnZXIuWkVSTy5zdWJUbyh0aGlzLHIp
OyByZXR1cm4gcjsgfQotICAvLyAocHVibGljKSB8dGhpc3wKLSAgZnVuY3Rpb24gYm5BYnMoKSB7
IHJldHVybiAodGhpcy5zPDApP3RoaXMubmVnYXRlKCk6dGhpczsgfQotICAvLyAocHVibGljKSBy
ZXR1cm4gKyBpZiB0aGlzID4gYSwgLSBpZiB0aGlzIDwgYSwgMCBpZiBlcXVhbAotICBmdW5jdGlv
biBibkNvbXBhcmVUbyhhKSB7Ci0gICAgdmFyIHIgPSB0aGlzLnMtYS5zOwotICAgIGlmKHIgIT0g
MCkgcmV0dXJuIHI7Ci0gICAgdmFyIGkgPSB0aGlzLnQ7Ci0gICAgciA9IGktYS50OwotICAgIGlm
KHIgIT0gMCkgcmV0dXJuICh0aGlzLnM8MCk/LXI6cjsKLSAgICB3aGlsZSgtLWkgPj0gMCkgaWYo
KHI9dGhpc1tpXS1hW2ldKSAhPSAwKSByZXR1cm4gcjsKLSAgICByZXR1cm4gMDsKLSAgfQotICAv
LyByZXR1cm5zIGJpdCBsZW5ndGggb2YgdGhlIGludGVnZXIgeAotICBmdW5jdGlvbiBuYml0cyh4
KSB7Ci0gICAgdmFyIHIgPSAxLCB0OwotICAgIGlmKCh0PXg+Pj4xNikgIT0gMCkgeyB4ID0gdDsg
ciArPSAxNjsgfQotICAgIGlmKCh0PXg+PjgpICE9IDApIHsgeCA9IHQ7IHIgKz0gODsgfQotICAg
IGlmKCh0PXg+PjQpICE9IDApIHsgeCA9IHQ7IHIgKz0gNDsgfQotICAgIGlmKCh0PXg+PjIpICE9
IDApIHsgeCA9IHQ7IHIgKz0gMjsgfQotICAgIGlmKCh0PXg+PjEpICE9IDApIHsgeCA9IHQ7IHIg
Kz0gMTsgfQotICAgIHJldHVybiByOwotICB9Ci0gIC8vIChwdWJsaWMpIHJldHVybiB0aGUgbnVt
YmVyIG9mIGJpdHMgaW4gInRoaXMiCi0gIGZ1bmN0aW9uIGJuQml0TGVuZ3RoKCkgewotICAgIGlm
KHRoaXMudCA8PSAwKSByZXR1cm4gMDsKLSAgICByZXR1cm4gdGhpcy5EQioodGhpcy50LTEpK25i
aXRzKHRoaXNbdGhpcy50LTFdXih0aGlzLnMmdGhpcy5ETSkpOwotICB9Ci0gIC8vIChwcm90ZWN0
ZWQpIHIgPSB0aGlzIDw8IG4qREIKLSAgZnVuY3Rpb24gYm5wRExTaGlmdFRvKG4scikgewotICAg
IHZhciBpOwotICAgIGZvcihpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSByW2krbl0gPSB0aGlz
W2ldOwotICAgIGZvcihpID0gbi0xOyBpID49IDA7IC0taSkgcltpXSA9IDA7Ci0gICAgci50ID0g
dGhpcy50K247Ci0gICAgci5zID0gdGhpcy5zOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0
aGlzID4+IG4qREIKLSAgZnVuY3Rpb24gYm5wRFJTaGlmdFRvKG4scikgewotICAgIGZvcih2YXIg
aSA9IG47IGkgPCB0aGlzLnQ7ICsraSkgcltpLW5dID0gdGhpc1tpXTsKLSAgICByLnQgPSBNYXRo
Lm1heCh0aGlzLnQtbiwwKTsKLSAgICByLnMgPSB0aGlzLnM7Ci0gIH0KLSAgLy8gKHByb3RlY3Rl
ZCkgciA9IHRoaXMgPDwgbgotICBmdW5jdGlvbiBibnBMU2hpZnRUbyhuLHIpIHsKLSAgICB2YXIg
YnMgPSBuJXRoaXMuREI7Ci0gICAgdmFyIGNicyA9IHRoaXMuREItYnM7Ci0gICAgdmFyIGJtID0g
KDE8PGNicyktMTsKLSAgICB2YXIgZHMgPSBNYXRoLmZsb29yKG4vdGhpcy5EQiksIGMgPSAodGhp
cy5zPDxicykmdGhpcy5ETSwgaTsKLSAgICBmb3IoaSA9IHRoaXMudC0xOyBpID49IDA7IC0taSkg
ewotICAgICAgcltpK2RzKzFdID0gKHRoaXNbaV0+PmNicyl8YzsKLSAgICAgIGMgPSAodGhpc1tp
XSZibSk8PGJzOwotICAgIH0KLSAgICBmb3IoaSA9IGRzLTE7IGkgPj0gMDsgLS1pKSByW2ldID0g
MDsKLSAgICByW2RzXSA9IGM7Ci0gICAgci50ID0gdGhpcy50K2RzKzE7Ci0gICAgci5zID0gdGhp
cy5zOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSByID0gdGhpcyA+PiBu
Ci0gIGZ1bmN0aW9uIGJucFJTaGlmdFRvKG4scikgewotICAgIHIucyA9IHRoaXMuczsKLSAgICB2
YXIgZHMgPSBNYXRoLmZsb29yKG4vdGhpcy5EQik7Ci0gICAgaWYoZHMgPj0gdGhpcy50KSB7IHIu
dCA9IDA7IHJldHVybjsgfQotICAgIHZhciBicyA9IG4ldGhpcy5EQjsKLSAgICB2YXIgY2JzID0g
dGhpcy5EQi1iczsKLSAgICB2YXIgYm0gPSAoMTw8YnMpLTE7Ci0gICAgclswXSA9IHRoaXNbZHNd
Pj5iczsKLSAgICBmb3IodmFyIGkgPSBkcysxOyBpIDwgdGhpcy50OyArK2kpIHsKLSAgICAgIHJb
aS1kcy0xXSB8PSAodGhpc1tpXSZibSk8PGNiczsKLSAgICAgIHJbaS1kc10gPSB0aGlzW2ldPj5i
czsKLSAgICB9Ci0gICAgaWYoYnMgPiAwKSByW3RoaXMudC1kcy0xXSB8PSAodGhpcy5zJmJtKTw8
Y2JzOwotICAgIHIudCA9IHRoaXMudC1kczsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHBy
b3RlY3RlZCkgciA9IHRoaXMgLSBhCi0gIGZ1bmN0aW9uIGJucFN1YlRvKGEscikgewotICAgIHZh
ciBpID0gMCwgYyA9IDAsIG0gPSBNYXRoLm1pbihhLnQsdGhpcy50KTsKLSAgICB3aGlsZShpIDwg
bSkgewotICAgICAgYyArPSB0aGlzW2ldLWFbaV07Ci0gICAgICByW2krK10gPSBjJnRoaXMuRE07
Ci0gICAgICBjID4+PSB0aGlzLkRCOwotICAgIH0KLSAgICBpZihhLnQgPCB0aGlzLnQpIHsKLSAg
ICAgIGMgLT0gYS5zOwotICAgICAgd2hpbGUoaSA8IHRoaXMudCkgewotICAgICAgICBjICs9IHRo
aXNbaV07Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0gdGhpcy5E
QjsKLSAgICAgIH0KLSAgICAgIGMgKz0gdGhpcy5zOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAg
IGMgKz0gdGhpcy5zOwotICAgICAgd2hpbGUoaSA8IGEudCkgewotICAgICAgICBjIC09IGFbaV07
Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0gdGhpcy5EQjsKLSAg
ICAgIH0KLSAgICAgIGMgLT0gYS5zOwotICAgIH0KLSAgICByLnMgPSAoYzwwKT8tMTowOwotICAg
IGlmKGMgPCAtMSkgcltpKytdID0gdGhpcy5EVitjOwotICAgIGVsc2UgaWYoYyA+IDApIHJbaSsr
XSA9IGM7Ci0gICAgci50ID0gaTsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3RlY3Rl
ZCkgciA9IHRoaXMgKiBhLCByICE9IHRoaXMsYSAoSEFDIDE0LjEyKQotICAvLyAidGhpcyIgc2hv
dWxkIGJlIHRoZSBsYXJnZXIgb25lIGlmIGFwcHJvcHJpYXRlLgotICBmdW5jdGlvbiBibnBNdWx0
aXBseVRvKGEscikgewotICAgIHZhciB4ID0gdGhpcy5hYnMoKSwgeSA9IGEuYWJzKCk7Ci0gICAg
dmFyIGkgPSB4LnQ7Ci0gICAgci50ID0gaSt5LnQ7Ci0gICAgd2hpbGUoLS1pID49IDApIHJbaV0g
PSAwOwotICAgIGZvcihpID0gMDsgaSA8IHkudDsgKytpKSByW2kreC50XSA9IHguYW0oMCx5W2ld
LHIsaSwwLHgudCk7Ci0gICAgci5zID0gMDsKLSAgICByLmNsYW1wKCk7Ci0gICAgaWYodGhpcy5z
ICE9IGEucykgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHIscik7Ci0gIH0KLSAgLy8gKHByb3RlY3Rl
ZCkgciA9IHRoaXNeMiwgciAhPSB0aGlzIChIQUMgMTQuMTYpCi0gIGZ1bmN0aW9uIGJucFNxdWFy
ZVRvKHIpIHsKLSAgICB2YXIgeCA9IHRoaXMuYWJzKCk7Ci0gICAgdmFyIGkgPSByLnQgPSAyKngu
dDsKLSAgICB3aGlsZSgtLWkgPj0gMCkgcltpXSA9IDA7Ci0gICAgZm9yKGkgPSAwOyBpIDwgeC50
LTE7ICsraSkgewotICAgICAgdmFyIGMgPSB4LmFtKGkseFtpXSxyLDIqaSwwLDEpOwotICAgICAg
aWYoKHJbaSt4LnRdKz14LmFtKGkrMSwyKnhbaV0sciwyKmkrMSxjLHgudC1pLTEpKSA+PSB4LkRW
KSB7Ci0gICAgICAgIHJbaSt4LnRdIC09IHguRFY7Ci0gICAgICAgIHJbaSt4LnQrMV0gPSAxOwot
ICAgICAgfQotICAgIH0KLSAgICBpZihyLnQgPiAwKSByW3IudC0xXSArPSB4LmFtKGkseFtpXSxy
LDIqaSwwLDEpOwotICAgIHIucyA9IDA7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIC8vIChwcm90
ZWN0ZWQpIGRpdmlkZSB0aGlzIGJ5IG0sIHF1b3RpZW50IGFuZCByZW1haW5kZXIgdG8gcSwgciAo
SEFDIDE0LjIwKQotICAvLyByICE9IHEsIHRoaXMgIT0gbS4gIHEgb3IgciBtYXkgYmUgbnVsbC4K
LSAgZnVuY3Rpb24gYm5wRGl2UmVtVG8obSxxLHIpIHsKLSAgICB2YXIgcG0gPSBtLmFicygpOwot
ICAgIGlmKHBtLnQgPD0gMCkgcmV0dXJuOwotICAgIHZhciBwdCA9IHRoaXMuYWJzKCk7Ci0gICAg
aWYocHQudCA8IHBtLnQpIHsKLSAgICAgIGlmKHEgIT0gbnVsbCkgcS5mcm9tSW50KDApOwotICAg
ICAgaWYociAhPSBudWxsKSB0aGlzLmNvcHlUbyhyKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgaWYociA9PSBudWxsKSByID0gbmJpKCk7Ci0gICAgdmFyIHkgPSBuYmkoKSwgdHMgPSB0aGlz
LnMsIG1zID0gbS5zOwotICAgIHZhciBuc2ggPSB0aGlzLkRCLW5iaXRzKHBtW3BtLnQtMV0pOwkv
LyBub3JtYWxpemUgbW9kdWx1cwotICAgIGlmKG5zaCA+IDApIHsgcG0ubFNoaWZ0VG8obnNoLHkp
OyBwdC5sU2hpZnRUbyhuc2gscik7IH0KLSAgICBlbHNlIHsgcG0uY29weVRvKHkpOyBwdC5jb3B5
VG8ocik7IH0KLSAgICB2YXIgeXMgPSB5LnQ7Ci0gICAgdmFyIHkwID0geVt5cy0xXTsKLSAgICBp
Zih5MCA9PSAwKSByZXR1cm47Ci0gICAgdmFyIHl0ID0geTAqKDE8PHRoaXMuRjEpKygoeXM+MSk/
eVt5cy0yXT4+dGhpcy5GMjowKTsKLSAgICB2YXIgZDEgPSB0aGlzLkZWL3l0LCBkMiA9ICgxPDx0
aGlzLkYxKS95dCwgZSA9IDE8PHRoaXMuRjI7Ci0gICAgdmFyIGkgPSByLnQsIGogPSBpLXlzLCB0
ID0gKHE9PW51bGwpP25iaSgpOnE7Ci0gICAgeS5kbFNoaWZ0VG8oaix0KTsKLSAgICBpZihyLmNv
bXBhcmVUbyh0KSA+PSAwKSB7Ci0gICAgICByW3IudCsrXSA9IDE7Ci0gICAgICByLnN1YlRvKHQs
cik7Ci0gICAgfQotICAgIEJpZ0ludGVnZXIuT05FLmRsU2hpZnRUbyh5cyx0KTsKLSAgICB0LnN1
YlRvKHkseSk7CS8vICJuZWdhdGl2ZSIgeSBzbyB3ZSBjYW4gcmVwbGFjZSBzdWIgd2l0aCBhbSBs
YXRlcgotICAgIHdoaWxlKHkudCA8IHlzKSB5W3kudCsrXSA9IDA7Ci0gICAgd2hpbGUoLS1qID49
IDApIHsKLSAgICAgIC8vIEVzdGltYXRlIHF1b3RpZW50IGRpZ2l0Ci0gICAgICB2YXIgcWQgPSAo
clstLWldPT15MCk/dGhpcy5ETTpNYXRoLmZsb29yKHJbaV0qZDErKHJbaS0xXStlKSpkMik7Ci0g
ICAgICBpZigocltpXSs9eS5hbSgwLHFkLHIsaiwwLHlzKSkgPCBxZCkgewkvLyBUcnkgaXQgb3V0
Ci0gICAgICAgIHkuZGxTaGlmdFRvKGosdCk7Ci0gICAgICAgIHIuc3ViVG8odCxyKTsKLSAgICAg
ICAgd2hpbGUocltpXSA8IC0tcWQpIHIuc3ViVG8odCxyKTsKLSAgICAgIH0KLSAgICB9Ci0gICAg
aWYocSAhPSBudWxsKSB7Ci0gICAgICByLmRyU2hpZnRUbyh5cyxxKTsKLSAgICAgIGlmKHRzICE9
IG1zKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8ocSxxKTsKLSAgICB9Ci0gICAgci50ID0geXM7Ci0g
ICAgci5jbGFtcCgpOwotICAgIGlmKG5zaCA+IDApIHIuclNoaWZ0VG8obnNoLHIpOwkvLyBEZW5v
cm1hbGl6ZSByZW1haW5kZXIKLSAgICBpZih0cyA8IDApIEJpZ0ludGVnZXIuWkVSTy5zdWJUbyhy
LHIpOwotICB9Ci0gIC8vIChwdWJsaWMpIHRoaXMgbW9kIGEKLSAgZnVuY3Rpb24gYm5Nb2QoYSkg
ewotICAgIHZhciByID0gbmJpKCk7Ci0gICAgdGhpcy5hYnMoKS5kaXZSZW1UbyhhLG51bGwscik7
Ci0gICAgaWYodGhpcy5zIDwgMCAmJiByLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpFUk8pID4gMCkg
YS5zdWJUbyhyLHIpOwotICAgIHJldHVybiByOwotICB9Ci0gIC8vIE1vZHVsYXIgcmVkdWN0aW9u
IHVzaW5nICJjbGFzc2ljIiBhbGdvcml0aG0KLSAgZnVuY3Rpb24gQ2xhc3NpYyhtKSB7IHRoaXMu
bSA9IG07IH0KLSAgZnVuY3Rpb24gY0NvbnZlcnQoeCkgewotICAgIGlmKHgucyA8IDAgfHwgeC5j
b21wYXJlVG8odGhpcy5tKSA+PSAwKSByZXR1cm4geC5tb2QodGhpcy5tKTsKLSAgICBlbHNlIHJl
dHVybiB4OwotICB9Ci0gIGZ1bmN0aW9uIGNSZXZlcnQoeCkgeyByZXR1cm4geDsgfQotICBmdW5j
dGlvbiBjUmVkdWNlKHgpIHsgeC5kaXZSZW1Ubyh0aGlzLm0sbnVsbCx4KTsgfQotICBmdW5jdGlv
biBjTXVsVG8oeCx5LHIpIHsgeC5tdWx0aXBseVRvKHkscik7IHRoaXMucmVkdWNlKHIpOyB9Ci0g
IGZ1bmN0aW9uIGNTcXJUbyh4LHIpIHsgeC5zcXVhcmVUbyhyKTsgdGhpcy5yZWR1Y2Uocik7IH0K
LSAgQ2xhc3NpYy5wcm90b3R5cGUuY29udmVydCA9IGNDb252ZXJ0OwotICBDbGFzc2ljLnByb3Rv
dHlwZS5yZXZlcnQgPSBjUmV2ZXJ0OwotICBDbGFzc2ljLnByb3RvdHlwZS5yZWR1Y2UgPSBjUmVk
dWNlOwotICBDbGFzc2ljLnByb3RvdHlwZS5tdWxUbyA9IGNNdWxUbzsKLSAgQ2xhc3NpYy5wcm90
b3R5cGUuc3FyVG8gPSBjU3FyVG87Ci0gIC8vIChwcm90ZWN0ZWQpIHJldHVybiAiLTEvdGhpcyAl
IDJeREIiOyB1c2VmdWwgZm9yIE1vbnQuIHJlZHVjdGlvbgotICAvLyBqdXN0aWZpY2F0aW9uOgot
ICAvLyAgICAgICAgIHh5ID09IDEgKG1vZCBtKQotICAvLyAgICAgICAgIHh5ID0gIDEra20KLSAg
Ly8gICB4eSgyLXh5KSA9ICgxK2ttKSgxLWttKQotICAvLyB4W3koMi14eSldID0gMS1rXjJtXjIK
LSAgLy8geFt5KDIteHkpXSA9PSAxIChtb2QgbV4yKQotICAvLyBpZiB5IGlzIDEveCBtb2QgbSwg
dGhlbiB5KDIteHkpIGlzIDEveCBtb2QgbV4yCi0gIC8vIHNob3VsZCByZWR1Y2UgeCBhbmQgeSgy
LXh5KSBieSBtXjIgYXQgZWFjaCBzdGVwIHRvIGtlZXAgc2l6ZSBib3VuZGVkLgotICAvLyBKUyBt
dWx0aXBseSAib3ZlcmZsb3dzIiBkaWZmZXJlbnRseSBmcm9tIEMvQysrLCBzbyBjYXJlIGlzIG5l
ZWRlZCBoZXJlLgotICBmdW5jdGlvbiBibnBJbnZEaWdpdCgpIHsKLSAgICBpZih0aGlzLnQgPCAx
KSByZXR1cm4gMDsKLSAgICB2YXIgeCA9IHRoaXNbMF07Ci0gICAgaWYoKHgmMSkgPT0gMCkgcmV0
dXJuIDA7Ci0gICAgdmFyIHkgPSB4JjM7CQkvLyB5ID09IDEveCBtb2QgMl4yCi0gICAgeSA9ICh5
KigyLSh4JjB4ZikqeSkpJjB4ZjsJLy8geSA9PSAxL3ggbW9kIDJeNAotICAgIHkgPSAoeSooMi0o
eCYweGZmKSp5KSkmMHhmZjsJLy8geSA9PSAxL3ggbW9kIDJeOAotICAgIHkgPSAoeSooMi0oKCh4
JjB4ZmZmZikqeSkmMHhmZmZmKSkpJjB4ZmZmZjsJLy8geSA9PSAxL3ggbW9kIDJeMTYKLSAgICAv
LyBsYXN0IHN0ZXAgLSBjYWxjdWxhdGUgaW52ZXJzZSBtb2QgRFYgZGlyZWN0bHk7Ci0gICAgLy8g
YXNzdW1lcyAxNiA8IERCIDw9IDMyIGFuZCBhc3N1bWVzIGFiaWxpdHkgdG8gaGFuZGxlIDQ4LWJp
dCBpbnRzCi0gICAgeSA9ICh5KigyLXgqeSV0aGlzLkRWKSkldGhpcy5EVjsJCS8vIHkgPT0gMS94
IG1vZCAyXmRiaXRzCi0gICAgLy8gd2UgcmVhbGx5IHdhbnQgdGhlIG5lZ2F0aXZlIGludmVyc2Us
IGFuZCAtRFYgPCB5IDwgRFYKLSAgICByZXR1cm4gKHk+MCk/dGhpcy5EVi15Oi15OwotICB9Ci0g
IC8vIE1vbnRnb21lcnkgcmVkdWN0aW9uCi0gIGZ1bmN0aW9uIE1vbnRnb21lcnkobSkgewotICAg
IHRoaXMubSA9IG07Ci0gICAgdGhpcy5tcCA9IG0uaW52RGlnaXQoKTsKLSAgICB0aGlzLm1wbCA9
IHRoaXMubXAmMHg3ZmZmOwotICAgIHRoaXMubXBoID0gdGhpcy5tcD4+MTU7Ci0gICAgdGhpcy51
bSA9ICgxPDwobS5EQi0xNSkpLTE7Ci0gICAgdGhpcy5tdDIgPSAyKm0udDsKLSAgfQotICAvLyB4
UiBtb2QgbQotICBmdW5jdGlvbiBtb250Q29udmVydCh4KSB7Ci0gICAgdmFyIHIgPSBuYmkoKTsK
LSAgICB4LmFicygpLmRsU2hpZnRUbyh0aGlzLm0udCxyKTsKLSAgICByLmRpdlJlbVRvKHRoaXMu
bSxudWxsLHIpOwotICAgIGlmKHgucyA8IDAgJiYgci5jb21wYXJlVG8oQmlnSW50ZWdlci5aRVJP
KSA+IDApIHRoaXMubS5zdWJUbyhyLHIpOwotICAgIHJldHVybiByOwotICB9Ci0gIC8vIHgvUiBt
b2QgbQotICBmdW5jdGlvbiBtb250UmV2ZXJ0KHgpIHsKLSAgICB2YXIgciA9IG5iaSgpOwotICAg
IHguY29weVRvKHIpOwotICAgIHRoaXMucmVkdWNlKHIpOwotICAgIHJldHVybiByOwotICB9Ci0g
IC8vIHggPSB4L1IgbW9kIG0gKEhBQyAxNC4zMikKLSAgZnVuY3Rpb24gbW9udFJlZHVjZSh4KSB7
Ci0gICAgd2hpbGUoeC50IDw9IHRoaXMubXQyKQkvLyBwYWQgeCBzbyBhbSBoYXMgZW5vdWdoIHJv
b20gbGF0ZXIKLSAgICAgIHhbeC50KytdID0gMDsKLSAgICBmb3IodmFyIGkgPSAwOyBpIDwgdGhp
cy5tLnQ7ICsraSkgewotICAgICAgLy8gZmFzdGVyIHdheSBvZiBjYWxjdWxhdGluZyB1MCA9IHhb
aV0qbXAgbW9kIERWCi0gICAgICB2YXIgaiA9IHhbaV0mMHg3ZmZmOwotICAgICAgdmFyIHUwID0g
KGoqdGhpcy5tcGwrKCgoaip0aGlzLm1waCsoeFtpXT4+MTUpKnRoaXMubXBsKSZ0aGlzLnVtKTw8
MTUpKSZ4LkRNOwotICAgICAgLy8gdXNlIGFtIHRvIGNvbWJpbmUgdGhlIG11bHRpcGx5LXNoaWZ0
LWFkZCBpbnRvIG9uZSBjYWxsCi0gICAgICBqID0gaSt0aGlzLm0udDsKLSAgICAgIHhbal0gKz0g
dGhpcy5tLmFtKDAsdTAseCxpLDAsdGhpcy5tLnQpOwotICAgICAgLy8gcHJvcGFnYXRlIGNhcnJ5
Ci0gICAgICB3aGlsZSh4W2pdID49IHguRFYpIHsgeFtqXSAtPSB4LkRWOyB4Wysral0rKzsgfQot
ICAgIH0KLSAgICB4LmNsYW1wKCk7Ci0gICAgeC5kclNoaWZ0VG8odGhpcy5tLnQseCk7Ci0gICAg
aWYoeC5jb21wYXJlVG8odGhpcy5tKSA+PSAwKSB4LnN1YlRvKHRoaXMubSx4KTsKLSAgfQotICAv
LyByID0gInheMi9SIG1vZCBtIjsgeCAhPSByCi0gIGZ1bmN0aW9uIG1vbnRTcXJUbyh4LHIpIHsg
eC5zcXVhcmVUbyhyKTsgdGhpcy5yZWR1Y2Uocik7IH0KLSAgLy8gciA9ICJ4eS9SIG1vZCBtIjsg
eCx5ICE9IHIKLSAgZnVuY3Rpb24gbW9udE11bFRvKHgseSxyKSB7IHgubXVsdGlwbHlUbyh5LHIp
OyB0aGlzLnJlZHVjZShyKTsgfQotICBNb250Z29tZXJ5LnByb3RvdHlwZS5jb252ZXJ0ID0gbW9u
dENvbnZlcnQ7Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLnJldmVydCA9IG1vbnRSZXZlcnQ7Ci0g
IE1vbnRnb21lcnkucHJvdG90eXBlLnJlZHVjZSA9IG1vbnRSZWR1Y2U7Ci0gIE1vbnRnb21lcnku
cHJvdG90eXBlLm11bFRvID0gbW9udE11bFRvOwotICBNb250Z29tZXJ5LnByb3RvdHlwZS5zcXJU
byA9IG1vbnRTcXJUbzsKLSAgLy8gKHByb3RlY3RlZCkgdHJ1ZSBpZmYgdGhpcyBpcyBldmVuCi0g
IGZ1bmN0aW9uIGJucElzRXZlbigpIHsgcmV0dXJuICgodGhpcy50PjApPyh0aGlzWzBdJjEpOnRo
aXMucykgPT0gMDsgfQotICAvLyAocHJvdGVjdGVkKSB0aGlzXmUsIGUgPCAyXjMyLCBkb2luZyBz
cXIgYW5kIG11bCB3aXRoICJyIiAoSEFDIDE0Ljc5KQotICBmdW5jdGlvbiBibnBFeHAoZSx6KSB7
Ci0gICAgaWYoZSA+IDB4ZmZmZmZmZmYgfHwgZSA8IDEpIHJldHVybiBCaWdJbnRlZ2VyLk9ORTsK
LSAgICB2YXIgciA9IG5iaSgpLCByMiA9IG5iaSgpLCBnID0gei5jb252ZXJ0KHRoaXMpLCBpID0g
bmJpdHMoZSktMTsKLSAgICBnLmNvcHlUbyhyKTsKLSAgICB3aGlsZSgtLWkgPj0gMCkgewotICAg
ICAgei5zcXJUbyhyLHIyKTsKLSAgICAgIGlmKChlJigxPDxpKSkgPiAwKSB6Lm11bFRvKHIyLGcs
cik7Ci0gICAgICBlbHNlIHsgdmFyIHQgPSByOyByID0gcjI7IHIyID0gdDsgfQotICAgIH0KLSAg
ICByZXR1cm4gei5yZXZlcnQocik7Ci0gIH0KLSAgLy8gKHB1YmxpYykgdGhpc15lICUgbSwgMCA8
PSBlIDwgMl4zMgotICBmdW5jdGlvbiBibk1vZFBvd0ludChlLG0pIHsKLSAgICB2YXIgejsKLSAg
ICBpZihlIDwgMjU2IHx8IG0uaXNFdmVuKCkpIHogPSBuZXcgQ2xhc3NpYyhtKTsgZWxzZSB6ID0g
bmV3IE1vbnRnb21lcnkobSk7Ci0gICAgcmV0dXJuIHRoaXMuZXhwKGUseik7Ci0gIH0KLSAgLy8g
cHJvdGVjdGVkCi0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmNvcHlUbyA9IGJucENvcHlUbzsKLSAg
QmlnSW50ZWdlci5wcm90b3R5cGUuZnJvbUludCA9IGJucEZyb21JbnQ7Ci0gIEJpZ0ludGVnZXIu
cHJvdG90eXBlLmZyb21TdHJpbmcgPSBibnBGcm9tU3RyaW5nOwotICBCaWdJbnRlZ2VyLnByb3Rv
dHlwZS5jbGFtcCA9IGJucENsYW1wOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kbFNoaWZ0VG8g
PSBibnBETFNoaWZ0VG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRyU2hpZnRUbyA9IGJucERS
U2hpZnRUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUubFNoaWZ0VG8gPSBibnBMU2hpZnRUbzsK
LSAgQmlnSW50ZWdlci5wcm90b3R5cGUuclNoaWZ0VG8gPSBibnBSU2hpZnRUbzsKLSAgQmlnSW50
ZWdlci5wcm90b3R5cGUuc3ViVG8gPSBibnBTdWJUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUu
bXVsdGlwbHlUbyA9IGJucE11bHRpcGx5VG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLnNxdWFy
ZVRvID0gYm5wU3F1YXJlVG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRpdlJlbVRvID0gYm5w
RGl2UmVtVG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmludkRpZ2l0ID0gYm5wSW52RGlnaXQ7
Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmlzRXZlbiA9IGJucElzRXZlbjsKLSAgQmlnSW50ZWdl
ci5wcm90b3R5cGUuZXhwID0gYm5wRXhwOwotICAvLyBwdWJsaWMKLSAgQmlnSW50ZWdlci5wcm90
b3R5cGUudG9TdHJpbmcgPSBiblRvU3RyaW5nOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5uZWdh
dGUgPSBibk5lZ2F0ZTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuYWJzID0gYm5BYnM7Ci0gIEJp
Z0ludGVnZXIucHJvdG90eXBlLmNvbXBhcmVUbyA9IGJuQ29tcGFyZVRvOwotICBCaWdJbnRlZ2Vy
LnByb3RvdHlwZS5iaXRMZW5ndGggPSBibkJpdExlbmd0aDsKLSAgQmlnSW50ZWdlci5wcm90b3R5
cGUubW9kID0gYm5Nb2Q7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLm1vZFBvd0ludCA9IGJuTW9k
UG93SW50OwotICAvLyAiY29uc3RhbnRzIgotICBCaWdJbnRlZ2VyLlpFUk8gPSBuYnYoMCk7Ci0g
IEJpZ0ludGVnZXIuT05FID0gbmJ2KDEpOwotICAvLyBqc2JuMiBzdHVmZgotICAvLyAocHJvdGVj
dGVkKSBjb252ZXJ0IGZyb20gcmFkaXggc3RyaW5nCi0gIGZ1bmN0aW9uIGJucEZyb21SYWRpeChz
LGIpIHsKLSAgICB0aGlzLmZyb21JbnQoMCk7Ci0gICAgaWYoYiA9PSBudWxsKSBiID0gMTA7Ci0g
ICAgdmFyIGNzID0gdGhpcy5jaHVua1NpemUoYik7Ci0gICAgdmFyIGQgPSBNYXRoLnBvdyhiLGNz
KSwgbWkgPSBmYWxzZSwgaiA9IDAsIHcgPSAwOwotICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzLmxl
bmd0aDsgKytpKSB7Ci0gICAgICB2YXIgeCA9IGludEF0KHMsaSk7Ci0gICAgICBpZih4IDwgMCkg
ewotICAgICAgICBpZihzLmNoYXJBdChpKSA9PSAiLSIgJiYgdGhpcy5zaWdudW0oKSA9PSAwKSBt
aSA9IHRydWU7Ci0gICAgICAgIGNvbnRpbnVlOwotICAgICAgfQotICAgICAgdyA9IGIqdyt4Owot
ICAgICAgaWYoKytqID49IGNzKSB7Ci0gICAgICAgIHRoaXMuZE11bHRpcGx5KGQpOwotICAgICAg
ICB0aGlzLmRBZGRPZmZzZXQodywwKTsKLSAgICAgICAgaiA9IDA7Ci0gICAgICAgIHcgPSAwOwot
ICAgICAgfQotICAgIH0KLSAgICBpZihqID4gMCkgewotICAgICAgdGhpcy5kTXVsdGlwbHkoTWF0
aC5wb3coYixqKSk7Ci0gICAgICB0aGlzLmRBZGRPZmZzZXQodywwKTsKLSAgICB9Ci0gICAgaWYo
bWkpIEJpZ0ludGVnZXIuWkVSTy5zdWJUbyh0aGlzLHRoaXMpOwotICB9Ci0gIC8vIChwcm90ZWN0
ZWQpIHJldHVybiB4IHMudC4gcl54IDwgRFYKLSAgZnVuY3Rpb24gYm5wQ2h1bmtTaXplKHIpIHsg
cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5MTjIqdGhpcy5EQi9NYXRoLmxvZyhyKSk7IH0KLSAgLy8g
KHB1YmxpYykgMCBpZiB0aGlzID09IDAsIDEgaWYgdGhpcyA+IDAKLSAgZnVuY3Rpb24gYm5TaWdO
dW0oKSB7Ci0gICAgaWYodGhpcy5zIDwgMCkgcmV0dXJuIC0xOwotICAgIGVsc2UgaWYodGhpcy50
IDw9IDAgfHwgKHRoaXMudCA9PSAxICYmIHRoaXNbMF0gPD0gMCkpIHJldHVybiAwOwotICAgIGVs
c2UgcmV0dXJuIDE7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgdGhpcyAqPSBuLCB0aGlzID49IDAs
IDEgPCBuIDwgRFYKLSAgZnVuY3Rpb24gYm5wRE11bHRpcGx5KG4pIHsKLSAgICB0aGlzW3RoaXMu
dF0gPSB0aGlzLmFtKDAsbi0xLHRoaXMsMCwwLHRoaXMudCk7Ci0gICAgKyt0aGlzLnQ7Ci0gICAg
dGhpcy5jbGFtcCgpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHRoaXMgKz0gbiA8PCB3IHdvcmRz
LCB0aGlzID49IDAKLSAgZnVuY3Rpb24gYm5wREFkZE9mZnNldChuLHcpIHsKLSAgICBpZihuID09
IDApIHJldHVybjsKLSAgICB3aGlsZSh0aGlzLnQgPD0gdykgdGhpc1t0aGlzLnQrK10gPSAwOwot
ICAgIHRoaXNbd10gKz0gbjsKLSAgICB3aGlsZSh0aGlzW3ddID49IHRoaXMuRFYpIHsKLSAgICAg
IHRoaXNbd10gLT0gdGhpcy5EVjsKLSAgICAgIGlmKCsrdyA+PSB0aGlzLnQpIHRoaXNbdGhpcy50
KytdID0gMDsKLSAgICAgICsrdGhpc1t3XTsKLSAgICB9Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkg
Y29udmVydCB0byByYWRpeCBzdHJpbmcKLSAgZnVuY3Rpb24gYm5wVG9SYWRpeChiKSB7Ci0gICAg
aWYoYiA9PSBudWxsKSBiID0gMTA7Ci0gICAgaWYodGhpcy5zaWdudW0oKSA9PSAwIHx8IGIgPCAy
IHx8IGIgPiAzNikgcmV0dXJuICIwIjsKLSAgICB2YXIgY3MgPSB0aGlzLmNodW5rU2l6ZShiKTsK
LSAgICB2YXIgYSA9IE1hdGgucG93KGIsY3MpOwotICAgIHZhciBkID0gbmJ2KGEpLCB5ID0gbmJp
KCksIHogPSBuYmkoKSwgciA9ICIiOwotICAgIHRoaXMuZGl2UmVtVG8oZCx5LHopOwotICAgIHdo
aWxlKHkuc2lnbnVtKCkgPiAwKSB7Ci0gICAgICByID0gKGErei5pbnRWYWx1ZSgpKS50b1N0cmlu
ZyhiKS5zdWJzdHIoMSkgKyByOwotICAgICAgeS5kaXZSZW1UbyhkLHkseik7Ci0gICAgfQotICAg
IHJldHVybiB6LmludFZhbHVlKCkudG9TdHJpbmcoYikgKyByOwotICB9Ci0gIC8vIChwdWJsaWMp
IHJldHVybiB2YWx1ZSBhcyBpbnRlZ2VyCi0gIGZ1bmN0aW9uIGJuSW50VmFsdWUoKSB7Ci0gICAg
aWYodGhpcy5zIDwgMCkgewotICAgICAgaWYodGhpcy50ID09IDEpIHJldHVybiB0aGlzWzBdLXRo
aXMuRFY7Ci0gICAgICBlbHNlIGlmKHRoaXMudCA9PSAwKSByZXR1cm4gLTE7Ci0gICAgfQotICAg
IGVsc2UgaWYodGhpcy50ID09IDEpIHJldHVybiB0aGlzWzBdOwotICAgIGVsc2UgaWYodGhpcy50
ID09IDApIHJldHVybiAwOwotICAgIC8vIGFzc3VtZXMgMTYgPCBEQiA8IDMyCi0gICAgcmV0dXJu
ICgodGhpc1sxXSYoKDE8PCgzMi10aGlzLkRCKSktMSkpPDx0aGlzLkRCKXx0aGlzWzBdOwotICB9
Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlzICsgYQotICBmdW5jdGlvbiBibnBBZGRUbyhhLHIp
IHsKLSAgICB2YXIgaSA9IDAsIGMgPSAwLCBtID0gTWF0aC5taW4oYS50LHRoaXMudCk7Ci0gICAg
d2hpbGUoaSA8IG0pIHsKLSAgICAgIGMgKz0gdGhpc1tpXSthW2ldOwotICAgICAgcltpKytdID0g
YyZ0aGlzLkRNOwotICAgICAgYyA+Pj0gdGhpcy5EQjsKLSAgICB9Ci0gICAgaWYoYS50IDwgdGhp
cy50KSB7Ci0gICAgICBjICs9IGEuczsKLSAgICAgIHdoaWxlKGkgPCB0aGlzLnQpIHsKLSAgICAg
ICAgYyArPSB0aGlzW2ldOwotICAgICAgICByW2krK10gPSBjJnRoaXMuRE07Ci0gICAgICAgIGMg
Pj49IHRoaXMuREI7Ci0gICAgICB9Ci0gICAgICBjICs9IHRoaXMuczsKLSAgICB9Ci0gICAgZWxz
ZSB7Ci0gICAgICBjICs9IHRoaXMuczsKLSAgICAgIHdoaWxlKGkgPCBhLnQpIHsKLSAgICAgICAg
YyArPSBhW2ldOwotICAgICAgICByW2krK10gPSBjJnRoaXMuRE07Ci0gICAgICAgIGMgPj49IHRo
aXMuREI7Ci0gICAgICB9Ci0gICAgICBjICs9IGEuczsKLSAgICB9Ci0gICAgci5zID0gKGM8MCk/
LTE6MDsKLSAgICBpZihjID4gMCkgcltpKytdID0gYzsKLSAgICBlbHNlIGlmKGMgPCAtMSkgcltp
KytdID0gdGhpcy5EVitjOwotICAgIHIudCA9IGk7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIEJp
Z0ludGVnZXIucHJvdG90eXBlLmZyb21SYWRpeCA9IGJucEZyb21SYWRpeDsKLSAgQmlnSW50ZWdl
ci5wcm90b3R5cGUuY2h1bmtTaXplID0gYm5wQ2h1bmtTaXplOwotICBCaWdJbnRlZ2VyLnByb3Rv
dHlwZS5zaWdudW0gPSBiblNpZ051bTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZE11bHRpcGx5
ID0gYm5wRE11bHRpcGx5OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kQWRkT2Zmc2V0ID0gYm5w
REFkZE9mZnNldDsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUudG9SYWRpeCA9IGJucFRvUmFkaXg7
Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmludFZhbHVlID0gYm5JbnRWYWx1ZTsKLSAgQmlnSW50
ZWdlci5wcm90b3R5cGUuYWRkVG8gPSBibnBBZGRUbzsKLSAgLy89PT09PT09IGVuZCBqc2JuID09
PT09PT0KLSAgLy8gRW1zY3JpcHRlbiB3cmFwcGVyCi0gIHZhciBXcmFwcGVyID0gewotICAgIGFi
czogZnVuY3Rpb24obCwgaCkgewotICAgICAgdmFyIHggPSBuZXcgZ29vZy5tYXRoLkxvbmcobCwg
aCk7Ci0gICAgICB2YXIgcmV0OwotICAgICAgaWYgKHguaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICAg
IHJldCA9IHgubmVnYXRlKCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXQgPSB4OwotICAg
ICAgfQotICAgICAgSEVBUDMyW3RlbXBEb3VibGVQdHI+PjJdID0gcmV0Lmxvd187Ci0gICAgICBI
RUFQMzJbdGVtcERvdWJsZVB0cis0Pj4yXSA9IHJldC5oaWdoXzsKLSAgICB9LAotICAgIGVuc3Vy
ZVRlbXBzOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmIChXcmFwcGVyLmVuc3VyZWRUZW1wcykgcmV0
dXJuOwotICAgICAgV3JhcHBlci5lbnN1cmVkVGVtcHMgPSB0cnVlOwotICAgICAgV3JhcHBlci50
d28zMiA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBXcmFwcGVyLnR3bzMyLmZyb21TdHJpbmco
JzQyOTQ5NjcyOTYnLCAxMCk7Ci0gICAgICBXcmFwcGVyLnR3bzY0ID0gbmV3IEJpZ0ludGVnZXIo
KTsKLSAgICAgIFdyYXBwZXIudHdvNjQuZnJvbVN0cmluZygnMTg0NDY3NDQwNzM3MDk1NTE2MTYn
LCAxMCk7Ci0gICAgICBXcmFwcGVyLnRlbXAxID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIFdy
YXBwZXIudGVtcDIgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgIH0sCi0gICAgbGgyYmlnbnVtOiBm
dW5jdGlvbihsLCBoKSB7Ci0gICAgICB2YXIgYSA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBh
LmZyb21TdHJpbmcoaC50b1N0cmluZygpLCAxMCk7Ci0gICAgICB2YXIgYiA9IG5ldyBCaWdJbnRl
Z2VyKCk7Ci0gICAgICBhLm11bHRpcGx5VG8oV3JhcHBlci50d28zMiwgYik7Ci0gICAgICB2YXIg
YyA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBjLmZyb21TdHJpbmcobC50b1N0cmluZygpLCAx
MCk7Ci0gICAgICB2YXIgZCA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBjLmFkZFRvKGIsIGQp
OwotICAgICAgcmV0dXJuIGQ7Ci0gICAgfSwKLSAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uKGwsIGgs
IHVuc2lnbmVkKSB7Ci0gICAgICB2YXIgcmV0ID0gbmV3IGdvb2cubWF0aC5Mb25nKGwsIGgpLnRv
U3RyaW5nKCk7Ci0gICAgICBpZiAodW5zaWduZWQgJiYgcmV0WzBdID09ICctJykgewotICAgICAg
ICAvLyB1bnNpZ24gc2xvd2x5IHVzaW5nIGpzYm4gYmlnbnVtcwotICAgICAgICBXcmFwcGVyLmVu
c3VyZVRlbXBzKCk7Ci0gICAgICAgIHZhciBiaWdudW0gPSBuZXcgQmlnSW50ZWdlcigpOwotICAg
ICAgICBiaWdudW0uZnJvbVN0cmluZyhyZXQsIDEwKTsKLSAgICAgICAgcmV0ID0gbmV3IEJpZ0lu
dGVnZXIoKTsKLSAgICAgICAgV3JhcHBlci50d282NC5hZGRUbyhiaWdudW0sIHJldCk7Ci0gICAg
ICAgIHJldCA9IHJldC50b1N0cmluZygxMCk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcmV0Owot
ICAgIH0sCi0gICAgZnJvbVN0cmluZzogZnVuY3Rpb24oc3RyLCBiYXNlLCBtaW4sIG1heCwgdW5z
aWduZWQpIHsKLSAgICAgIFdyYXBwZXIuZW5zdXJlVGVtcHMoKTsKLSAgICAgIHZhciBiaWdudW0g
PSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgYmlnbnVtLmZyb21TdHJpbmcoc3RyLCBiYXNlKTsK
LSAgICAgIHZhciBiaWdtaW4gPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgYmlnbWluLmZyb21T
dHJpbmcobWluLCAxMCk7Ci0gICAgICB2YXIgYmlnbWF4ID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAg
ICAgIGJpZ21heC5mcm9tU3RyaW5nKG1heCwgMTApOwotICAgICAgaWYgKHVuc2lnbmVkICYmIGJp
Z251bS5jb21wYXJlVG8oQmlnSW50ZWdlci5aRVJPKSA8IDApIHsKLSAgICAgICAgdmFyIHRlbXAg
PSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgICBiaWdudW0uYWRkVG8oV3JhcHBlci50d282NCwg
dGVtcCk7Ci0gICAgICAgIGJpZ251bSA9IHRlbXA7Ci0gICAgICB9Ci0gICAgICB2YXIgZXJyb3Ig
PSBmYWxzZTsKLSAgICAgIGlmIChiaWdudW0uY29tcGFyZVRvKGJpZ21pbikgPCAwKSB7Ci0gICAg
ICAgIGJpZ251bSA9IGJpZ21pbjsKLSAgICAgICAgZXJyb3IgPSB0cnVlOwotICAgICAgfSBlbHNl
IGlmIChiaWdudW0uY29tcGFyZVRvKGJpZ21heCkgPiAwKSB7Ci0gICAgICAgIGJpZ251bSA9IGJp
Z21heDsKLSAgICAgICAgZXJyb3IgPSB0cnVlOwotICAgICAgfQotICAgICAgdmFyIHJldCA9IGdv
b2cubWF0aC5Mb25nLmZyb21TdHJpbmcoYmlnbnVtLnRvU3RyaW5nKCkpOyAvLyBtaW4tbWF4IGNo
ZWNrcyBzaG91bGQgaGF2ZSBjbGFtcGVkIHRoaXMgdG8gYSByYW5nZSBnb29nLm1hdGguTG9uZyBj
YW4gaGFuZGxlIHdlbGwKLSAgICAgIEhFQVAzMlt0ZW1wRG91YmxlUHRyPj4yXSA9IHJldC5sb3df
OwotICAgICAgSEVBUDMyW3RlbXBEb3VibGVQdHIrND4+Ml0gPSByZXQuaGlnaF87Ci0gICAgICBp
ZiAoZXJyb3IpIHRocm93ICdyYW5nZSBlcnJvcic7Ci0gICAgfQotICB9OwotICByZXR1cm4gV3Jh
cHBlcjsKLX0pKCk7Ci0vLz09PT09PT0gZW5kIGNsb3N1cmUgaTY0IGNvZGUgPT09PT09PQotLy8g
PT09IEF1dG8tZ2VuZXJhdGVkIHBvc3RhbWJsZSBzZXR1cCBlbnRyeSBzdHVmZiA9PT0KLWZ1bmN0
aW9uIEV4aXRTdGF0dXMoc3RhdHVzKSB7Ci0gIHRoaXMubmFtZSA9ICJFeGl0U3RhdHVzIjsKLSAg
dGhpcy5tZXNzYWdlID0gIlByb2dyYW0gdGVybWluYXRlZCB3aXRoIGV4aXQoIiArIHN0YXR1cyAr
ICIpIjsKLSAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7Ci19OwotRXhpdFN0YXR1cy5wcm90b3R5cGUg
PSBuZXcgRXJyb3IoKTsKLUV4aXRTdGF0dXMucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gRXhpdFN0
YXR1czsKLXZhciBpbml0aWFsU3RhY2tUb3A7Ci12YXIgcHJlbG9hZFN0YXJ0VGltZSA9IG51bGw7
Ci1Nb2R1bGVbJ2NhbGxNYWluJ10gPSBNb2R1bGUuY2FsbE1haW4gPSBmdW5jdGlvbiBjYWxsTWFp
bihhcmdzKSB7Ci0gIGFzc2VydChydW5EZXBlbmRlbmNpZXMgPT0gMCwgJ2Nhbm5vdCBjYWxsIG1h
aW4gd2hlbiBhc3luYyBkZXBlbmRlbmNpZXMgcmVtYWluISAobGlzdGVuIG9uIF9fQVRNQUlOX18p
Jyk7Ci0gIGFzc2VydChfX0FUUFJFUlVOX18ubGVuZ3RoID09IDAsICdjYW5ub3QgY2FsbCBtYWlu
IHdoZW4gcHJlUnVuIGZ1bmN0aW9ucyByZW1haW4gdG8gYmUgY2FsbGVkJyk7Ci0gIGFyZ3MgPSBh
cmdzIHx8IFtdOwotICBpZiAoRU5WSVJPTk1FTlRfSVNfV0VCICYmIHByZWxvYWRTdGFydFRpbWUg
IT09IG51bGwpIHsKLSAgICAvL01vZHVsZS5wcmludEVycigncHJlbG9hZCB0aW1lOiAnICsgKERh
dGUubm93KCkgLSBwcmVsb2FkU3RhcnRUaW1lKSArICcgbXMnKTsKLSAgfQotICBlbnN1cmVJbml0
UnVudGltZSgpOwotICB2YXIgYXJnYyA9IGFyZ3MubGVuZ3RoKzE7Ci0gIGZ1bmN0aW9uIHBhZCgp
IHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQtMTsgaSsrKSB7Ci0gICAgICBhcmd2LnB1c2go
MCk7Ci0gICAgfQotICB9Ci0gIHZhciBhcmd2ID0gW2FsbG9jYXRlKGludEFycmF5RnJvbVN0cmlu
ZygiL2Jpbi90aGlzLnByb2dyYW0iKSwgJ2k4JywgQUxMT0NfTk9STUFMKSBdOwotICBwYWQoKTsK
LSAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdjLTE7IGkgPSBpICsgMSkgewotICAgIGFyZ3YucHVz
aChhbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcoYXJnc1tpXSksICdpOCcsIEFMTE9DX05PUk1B
TCkpOwotICAgIHBhZCgpOwotICB9Ci0gIGFyZ3YucHVzaCgwKTsKLSAgYXJndiA9IGFsbG9jYXRl
KGFyZ3YsICdpMzInLCBBTExPQ19OT1JNQUwpOwotICBpbml0aWFsU3RhY2tUb3AgPSBTVEFDS1RP
UDsKLSAgdHJ5IHsKLSAgICB2YXIgcmV0ID0gTW9kdWxlWydfbWFpbiddKGFyZ2MsIGFyZ3YsIDAp
OwotICAgIC8vIGlmIHdlJ3JlIG5vdCBydW5uaW5nIGFuIGV2ZW50ZWQgbWFpbiBsb29wLCBpdCdz
IHRpbWUgdG8gZXhpdAotICAgIGlmICghTW9kdWxlWydub0V4aXRSdW50aW1lJ10pIHsKLSAgICAg
IGV4aXQocmV0KTsKLSAgICB9Ci0gIH0KLSAgY2F0Y2goZSkgewotICAgIGlmIChlIGluc3RhbmNl
b2YgRXhpdFN0YXR1cykgewotICAgICAgLy8gZXhpdCgpIHRocm93cyB0aGlzIG9uY2UgaXQncyBk
b25lIHRvIG1ha2Ugc3VyZSBleGVjdXRpb24KLSAgICAgIC8vIGhhcyBiZWVuIHN0b3BwZWQgY29t
cGxldGVseQotICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAoZSA9PSAnU2ltdWxhdGVJbmZp
bml0ZUxvb3AnKSB7Ci0gICAgICAvLyBydW5uaW5nIGFuIGV2ZW50ZWQgbWFpbiBsb29wLCBkb24n
dCBpbW1lZGlhdGVseSBleGl0Ci0gICAgICBNb2R1bGVbJ25vRXhpdFJ1bnRpbWUnXSA9IHRydWU7
Ci0gICAgICByZXR1cm47Ci0gICAgfSBlbHNlIHsKLSAgICAgIHRocm93IGU7Ci0gICAgfQotICB9
Ci19Ci1mdW5jdGlvbiBydW4oYXJncykgewotICBhcmdzID0gYXJncyB8fCBNb2R1bGVbJ2FyZ3Vt
ZW50cyddOwotICBpZiAocHJlbG9hZFN0YXJ0VGltZSA9PT0gbnVsbCkgcHJlbG9hZFN0YXJ0VGlt
ZSA9IERhdGUubm93KCk7Ci0gIGlmIChydW5EZXBlbmRlbmNpZXMgPiAwKSB7Ci0gICAgLy9Nb2R1
bGUucHJpbnRFcnIoJ3J1bigpIGNhbGxlZCwgYnV0IGRlcGVuZGVuY2llcyByZW1haW4sIHNvIG5v
dCBydW5uaW5nJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIHByZVJ1bigpOwotICBpZiAocnVuRGVw
ZW5kZW5jaWVzID4gMCkgewotICAgIC8vIGEgcHJlUnVuIGFkZGVkIGEgZGVwZW5kZW5jeSwgcnVu
IHdpbGwgYmUgY2FsbGVkIGxhdGVyCi0gICAgcmV0dXJuOwotICB9Ci0gIGZ1bmN0aW9uIGRvUnVu
KCkgewotICAgIGVuc3VyZUluaXRSdW50aW1lKCk7Ci0gICAgcHJlTWFpbigpOwotICAgIGNhbGxl
ZFJ1biA9IHRydWU7Ci0gICAgaWYgKE1vZHVsZVsnX21haW4nXSAmJiBzaG91bGRSdW5Ob3cpIHsK
LSAgICAgIE1vZHVsZVsnY2FsbE1haW4nXShhcmdzKTsKLSAgICB9Ci0gICAgcG9zdFJ1bigpOwot
ICB9Ci0gIGlmIChNb2R1bGVbJ3NldFN0YXR1cyddKSB7Ci0gICAgTW9kdWxlWydzZXRTdGF0dXMn
XSgnUnVubmluZy4uLicpOwotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICBNb2R1bGVbJ3NldFN0YXR1cyddKCcnKTsKLSAg
ICAgIH0sIDEpOwotICAgICAgaWYgKCFBQk9SVCkgZG9SdW4oKTsKLSAgICB9LCAxKTsKLSAgfSBl
bHNlIHsKLSAgICBkb1J1bigpOwotICB9Ci19Ci1Nb2R1bGVbJ3J1biddID0gTW9kdWxlLnJ1biA9
IHJ1bjsKLWZ1bmN0aW9uIGV4aXQoc3RhdHVzKSB7Ci0gIEFCT1JUID0gdHJ1ZTsKLSAgRVhJVFNU
QVRVUyA9IHN0YXR1czsKLSAgU1RBQ0tUT1AgPSBpbml0aWFsU3RhY2tUb3A7Ci0gIC8vIGV4aXQg
dGhlIHJ1bnRpbWUKLSAgZXhpdFJ1bnRpbWUoKTsKLSAgLy8gdGhyb3cgYW4gZXhjZXB0aW9uIHRv
IGhhbHQgdGhlIGN1cnJlbnQgZXhlY3V0aW9uCi0gIHRocm93IG5ldyBFeGl0U3RhdHVzKHN0YXR1
cyk7Ci19Ci1Nb2R1bGVbJ2V4aXQnXSA9IE1vZHVsZS5leGl0ID0gZXhpdDsKLWZ1bmN0aW9uIGFi
b3J0KHRleHQpIHsKLSAgaWYgKHRleHQpIHsKLSAgICBNb2R1bGUucHJpbnQodGV4dCk7Ci0gICAg
TW9kdWxlLnByaW50RXJyKHRleHQpOwotICB9Ci0gIEFCT1JUID0gdHJ1ZTsKLSAgRVhJVFNUQVRV
UyA9IDE7Ci0gIHRocm93ICdhYm9ydCgpIGF0ICcgKyAobmV3IEVycm9yKCkuc3RhY2spOwotfQot
TW9kdWxlWydhYm9ydCddID0gTW9kdWxlLmFib3J0ID0gYWJvcnQ7Ci0vLyB7e1BSRV9SVU5fQURE
SVRJT05TfX0KLWlmIChNb2R1bGVbJ3ByZUluaXQnXSkgewotICBpZiAodHlwZW9mIE1vZHVsZVsn
cHJlSW5pdCddID09ICdmdW5jdGlvbicpIE1vZHVsZVsncHJlSW5pdCddID0gW01vZHVsZVsncHJl
SW5pdCddXTsKLSAgd2hpbGUgKE1vZHVsZVsncHJlSW5pdCddLmxlbmd0aCA+IDApIHsKLSAgICBN
b2R1bGVbJ3ByZUluaXQnXS5wb3AoKSgpOwotICB9Ci19Ci0vLyBzaG91bGRSdW5Ob3cgcmVmZXJz
IHRvIGNhbGxpbmcgbWFpbigpLCBub3QgcnVuKCkuCi12YXIgc2hvdWxkUnVuTm93ID0gdHJ1ZTsK
LWlmIChNb2R1bGVbJ25vSW5pdGlhbFJ1biddKSB7Ci0gIHNob3VsZFJ1bk5vdyA9IGZhbHNlOwot
fQotcnVuKCk7Ci0vLyB7e1BPU1RfUlVOX0FERElUSU9OU319Ci0vLyB7e01PRFVMRV9BRERJVElP
TlN9fQpJbmRleDogTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RmZy1hZGQtbm90LW51bWJl
ci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWFkZC1u
b3QtbnVtYmVyLmpzCShyZXZpc2lvbiAxNjI5MTQpCisrKyBMYXlvdXRUZXN0cy9qcy9zY3JpcHQt
dGVzdHMvZGZnLWFkZC1ub3QtbnVtYmVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNiBA
QAorLy8gVGhpcyB0ZXN0IHdvbid0IGdldCBpbnRvIHRoZSBGVEwgY3VycmVudGx5LCBzaW5jZSB0
aGUgZm9vKCkgZnVuY3Rpb24ganVzdCBleGl0cyBhIGxvdC4KKy8vQCBub0ZUTFJ1bkxheW91dFRl
c3QKKwogZGVzY3JpcHRpb24oCiAiVGVzdHMgdGhhdCBhZGRpbmcgdGhpbmdzIHRoYXQgYXJlbid0
IG51bWJlcnMgdXNpbmcgKysgZG9lcyBub3QgY3Jhc2ggb3IgZ2VuZXJhdGUgYm9ndXMgY29kZS4i
CiApOwpJbmRleDogTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2xhcmdlLWV4cHJlc3Npb25z
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9sYXJnZS1leHBy
ZXNzaW9ucy5qcwkocmV2aXNpb24gMTYyOTE0KQorKysgTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRl
c3RzL2xhcmdlLWV4cHJlc3Npb25zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw1ICszMCw1IEBA
IGZ1bmN0aW9uIHJlcGVhdGVkU3RyaW5nKHZhbHVlLCBjb3VudCkKIAogc2hvdWxkQmUoJ2V2YWwo
cmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDApKScsICdyZXBlYXRlZFN0cmlu
ZygiYSIsIDEwMCknKTsKIHNob3VsZEJlKCdldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVy
QSIsICIrIiwgMTAwMCkpJywgJ3JlcGVhdGVkU3RyaW5nKCJhIiwgMTAwMCknKTsKLXNob3VsZEJl
KCdldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDApKScsICdyZXBl
YXRlZFN0cmluZygiYSIsIDEwMDAwKScpOworc2hvdWxkVGhyb3coJ2V2YWwocmVwZWF0ZWRFeHBy
ZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMCkpJyk7CiBzaG91bGRUaHJvdygnZXZhbChyZXBl
YXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMDAwMCkpJyk7Cg==
</data>
<flag name="commit-queue"
          id="246469"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>222477</attachid>
            <date>2014-01-28 13:25:55 -0800</date>
            <delta_ts>2014-01-28 13:25:55 -0800</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-06 for mac-mountainlion</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>495170</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
6FJ2EehSdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAEtiPEQAAAAAAAAAAAAAAAALABwAaHR0cC90
ZXN0cy9VVAkAA40Q6FJ2EehSdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAACViPEQAAAAAAAAAAAAA
AAAQABwAaHR0cC90ZXN0cy9taXNjL1VUCQADRhDoUnYR6FJ1eAsAAQT1AQAABFAAAABQSwMEFAAC
AAgAJWI8RBU1NZJ6AAAAvAAAACoAHABodHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0LXN0
ZGVyci50eHRVVAkAA0YQ6FJGEOhSdXgLAAEE9QEAAARQAAAAjY5BDsMgDATveYU/QCDtoRW/IcRV
LBmMjJH6/BLlA9VeVjuH2SylEScjqYCqohE+xAinWYveb4/XGma2+A4h+EI9e8UuQzN2/+1sbk+H
o9JEzQ2ldW7AVBGegIwFq8FNl0niXSHCqGmfGhNgScd/uip95PO6lywxLz9QSwMECgAAAAAAVGI8
RAAAAAAAAAAAAAAAABQAHABodHRwL3Rlc3RzL3NlY3VyaXR5L1VUCQADoBDoUnYR6FJ1eAsAAQT1
AQAABFAAAABQSwMECgAAAAAAVWI8RAAAAAAAAAAAAAAAACoAHABodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAkAA6EQ6FJ2EehSdXgLAAEE9QEAAARQAAAAUEsDBBQA
AgAIAFRiPERjqqxsggAAAKgAAABAABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADoBDoUqAQ6FJ1eAsAAQT1AQAABFAA
AAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lII
y22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LK
nZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAFViPERjqqxsggAAAKgAAABSABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUt
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
jXmIVu2sPKMV+U5IfmHu3xtTGyNyJBHnCBvv2holo984TtUrpd6743a+Kcj99a/74fLNKB1u4qpz
RudTfR1RdWDd/+E3k/S0HNswFRx0FENREClTTN0OkjvAw3sDOJbguQezXJCWFG+J61r2Ph2Ps/mQ
MKvpmEOtOsTNey7ip4owiNzj4ZiUQLSUOmo9Xi1OxZh7qAYXBNmapM0vvvH7TakI/pNFGdDUEdOI
Lo+G2UTCOMibLyijwiDGhagi7uOBy0RsHdE2EUWB+E0vdlkt0S15yuIrlNCntG386xzew04GsjgO
WqwB5et5PwE4xykJY01lRGTRppWDYzUNsHzjbJpIJIUOA1HKblJTRRI1iMv9Ol0Ot3Vy2fJWDyE8
q4ySO/NWaXCp7g83XjN2JmI09gWKmTM8Ht2UjVkWilxpdzmz2ib5nqbfaEPatWaj9mqNJcaXdrRf
sZUzrDpthkiK9W/7f26hfAYfBKxlsJ62uA2qptKc/Q01hSu022hJnTMp0oVCtPt1dAEK34zudD1u
rQelCxstuLiQLcm+b6PSyhWnjDKXV41tNN3KMOXsidRxN8r+a3cMspV2u8uxGZedeGV9jw9W2gyD
5ag0KWUHyEnyPDPkDTU8qkLrdvrv0KkO6pT+tn2HaDD+/S/IUW5GM5q+UeqOTpmoI9XZ10ozbHrZ
oODpx+vhlmHf9InK2LH3rHSiZs7vsH90T0mEPjbyYBoURGEOLmv+06wQb/+AbQ5RFvqNx38PXjxS
k4BxZoQnqKUx22OyJIkKiHLEVEPJzw3zTzxtr4ed8U2lKItXQGJdvxA4oqHCy9301KQiLko2djnu
/tfGNW/EceCaFdsdjphcHGm96sVArxBeMfpvCfJwjmLy59Tz0kF/0qM8NrbHQ9zuP6/J61hySTt8
CICEPlTqUnaHio+tHhi0hjYCi8Z4lf35bXs4hbcOuqFe17TgEu1A2R3fRw22Ny/Wzqr02omd3Wyv
n6edscK4jWIpL8lPZEcBQut83P+UDABQZ6NCwXwvxM7RIK6Tvv8fbf/aJEdu3YnDn6gnEvfMl5Is
exWrlf3XyOt94+godhfJ8nRXtau6OUNH7Hd/EpfEOUACPxTlfRweimzyJICDg3O/zK2ZSwXbuY/p
5IT3MO1FVBXbfs6pr9D9uN7wpVGWqCfnbdxXvC0Klfjmb9tkqjCHDCBMNsggBpmpQnUwMoyN5/UO
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
AAAAMwAAACwAGAAAAAAAAQAAAKSBwdcAAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJv
eC1zdGRlcnIudHh0VVQFAAMOEOhSdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAI2I8RAAAAAAA
AAAAAAAAAAkAGAAAAAAAAAAQAO1BWdgAAGZhc3QveHNsL1VUBQADQRDoUnV4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIACJiPERy/WXyhQAAAOkAAAAlABgAAAAAAAEAAACkgZzYAABmYXN0L3hzbC90
cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQFAANAEOhSdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAImI8RIkfIf6XAAAAwAMAACcAGAAAAAAAAQAAAKSBgNkAAGZhc3QveHNsL3hzbHQtYmFk
LWltcG9ydC11cmktc3RkZXJyLnR4dFVUBQADQBDoUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ACNiPESBSnetSwAAAKwAAAA0ABgAAAAAAAEAAACkgXjaAABmYXN0L3hzbC94c2x0LXRyYW5zZm9y
bS10by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQFAANBEOhSdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAx2I8RFrwUgo6AQAA+AEAABEAGAAAAAAAAQAAAKSBMdsAAGZ1bGxfcmVzdWx0cy5q
c29uVVQFAAN1EehSdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAJWI8RAAAAAAAAAAAAAAAAAUA
GAAAAAAAAAAQAO1BttwAAGh0dHAvVVQFAANGEOhSdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA
S2I8RAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1B9dwAAGh0dHAvdGVzdHMvVVQFAAONEOhSdXgL
AAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAJWI8RAAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BOt0A
AGh0dHAvdGVzdHMvbWlzYy9VVAUAA0YQ6FJ1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAlYjxE
FTU1knoAAAC8AAAAKgAYAAAAAAABAAAApIGE3QAAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWlt
cG9ydC1zdGRlcnIudHh0VVQFAANGEOhSdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAVGI8RAAA
AAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BYt4AAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQFAAOgEOhS
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAVWI8RAAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1B
sN4AAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUBQADoRDoUnV4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAFRiPERjqqxsggAAAKgAAABAABgAAAAAAAEAAACkgRTf
AABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1z
dGRlcnIudHh0VVQFAAOgEOhSdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAVWI8RGOqrGyCAAAA
qAAAAFIAGAAAAAAAAQAAAKSBEOAAAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAUAA6EQ6FJ1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABLYjxEYEtmEJEAAAD7AQAARQAYAAAAAAABAAAApIEe
4QAAaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9y
aWdpbi1zdGRlcnIudHh0VVQFAAONEOhSdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAw2I8ROqK
fEJhBQAABQ8AAAoAGAAAAAAAAQAAAKSBLuIAAGh0dHBkLmNvbmZVVAUAA24R6FJ1eAsAAQT1AQAA
BFAAAABQSwECHgMKAAAAAABYYjxEAAAAAAAAAAAAAAAAAwAYAAAAAAAAABAA7UHT5wAAanMvVVQF
AAOoEOhSdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAWGI8REjn5t4uAQAAMSkAAB8AGAAAAAAA
AQAAAKSBEOgAAGpzL2xhcmdlLWV4cHJlc3Npb25zLWFjdHVhbC50eHRVVAUAA6cQ6FJ1eAsAAQT1
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
AFUPAADXfgcAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222496</attachid>
            <date>2014-01-28 14:51:58 -0800</date>
            <delta_ts>2014-01-28 15:42:54 -0800</delta_ts>
            <desc>Updated patch that build with ENABLE_LLINT_C_LOOP=1</desc>
            <filename>127763-5.patch</filename>
            <type>text/plain</type>
            <size>1493758</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBA
CisyMDE0LTAxLTI4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIE1lcmdlIHRoZSBqc0NTdGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZXMgZnJvbSBodHRwOi8vc3ZuLndlYmtpdC5vcmcv
cmVwb3NpdG9yeS93ZWJraXQvYnJhbmNoZXMvanNDU3RhY2sKKwogMjAxNC0wMS0yOCAgTWFyayBM
YW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgSmV0dGlzb24gREZHIGNvZGUgd2hl
biBuZWl0aGVyIGJyZWFrcG9pbnRzIG9yIHRoZSBwcm9maWxlciBhcmUgYWN0aXZlLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTYyOTYxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNTUs
NiArMjU1LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBpbnRlcnByZXRlci9W
TUluc3BlY3Rvci5jcHAKIAogICAgIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCisgICAgaml0L0Fy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcAogICAgIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0
aW5lLmNwcAogICAgIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAogICAgIGppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCkBAIC0yNzgsNiArMjc5LDcgQEAgc2V0KEphdmFT
Y3JpcHRDb3JlX1NPVVJDRVMKICAgICBqaXQvSklUU3R1YnMuY3BwCiAgICAgaml0L0pJVFRodW5r
cy5jcHAKICAgICBqaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCisg
ICAgaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAKICAgICBqaXQv
UmVnaXN0ZXJTZXQuY3BwCiAgICAgaml0L1JlcGF0Y2guY3BwCiAgICAgaml0L1RlbXBSZWdpc3Rl
clNldC5jcHAKQEAgLTM0MCw2ICszNDIsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwog
ICAgIHJ1bnRpbWUvRHVtcENvbnRleHQuY3BwCiAgICAgcnVudGltZS9FcnJvci5jcHAKICAgICBy
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisgICAgcnVudGltZS9FcnJvckhhbmRsaW5nU2Nv
cGUuY3BwCiAgICAgcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAogICAgIHJ1bnRpbWUvRXJyb3JQ
cm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNv
cHkpCkBAIC05MSw2ICs5MSw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZf
NjQuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNB
c3NlbWJsZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9SZXBhdGNoQnVm
ZmVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvU0g0QXNzZW1ibGVyLmgg
XApAQCAtNjkxLDYgKzY5Miw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9WTUluc3BlY3Rvci5jcHAgXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9WTUluc3BlY3Rvci5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguaCBcCisgICAgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIFwKKyAgICBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NDYWxsSGVscGVycy5oIFwKQEAgLTc0NCw2ICs3NDcsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV3JpdGVC
YXJyaWVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaCBc
CisgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBw
ZXJHZW5lcmF0b3IuaCBcCisgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclBy
ZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlZ2lzdGVyU2V0LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3Rl
clNldC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIFwKQEAgLTkw
NCw2ICs5MDksOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3IuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Nj
b3BlLmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Nj
b3BlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcCBcCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCShyZXZpc2lvbiAxNjI5
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIJKHdvcmtp
bmcgY29weSkKQEAgLTQ5ODEsNyArNDk4MSw2IEBAIF9sbGludF9zbG93X3BhdGhfaGFuZGxlX3dh
dGNoZG9nX3RpbWVyCiBfbGxpbnRfc2xvd19wYXRoX2RlYnVnCiBfbGxpbnRfc2xvd19wYXRoX3By
b2ZpbGVfd2lsbF9jYWxsCiBfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwKLV9sbGlu
dF90aHJvd19mcm9tX25hdGl2ZV9jYWxsCiBfbGxpbnRfYmVnaW4KIF9sbGludF9wcm9ncmFtX3By
b2xvZ3VlCiBfbGxpbnRfZXZhbF9wcm9sb2d1ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC01ODksNiArNTg5LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1
bnRpbWVcRHVtcENvbnRleHQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxFcnJvci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVy
cm9yQ29uc3RydWN0b3IuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxFcnJvckhhbmRsaW5nU2NvcGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxFcnJvckluc3RhbmNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcRXJyb3JQcm90b3R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccnVudGltZVxFeGNlcHRpb25IZWxwZXJzLmNwcCIgLz4KQEAgLTc5MSw2ICs3OTIsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1hY3JvQXNzZW1ibGVyWDg2Lmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxNYWNy
b0Fzc2VtYmxlclg4Nl82NC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1i
bGVyXE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxhc3NlbWJsZXJcUmVwYXRjaEJ1ZmZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYXNzZW1ibGVyXFg4NkFzc2VtYmxlci5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYmluZGluZ3NcU2NyaXB0RnVuY3Rpb25DYWxsLmgiIC8+CkBAIC0xMjA0LDYg
KzEyMDYsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxEdW1wQ29udGV4
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvci5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckNvbnN0cnVjdG9yLmgiIC8+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckluc3RhbmNlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yUHJvdG90eXBlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEV4Y2VwdGlvbkhlbHBlcnMu
aCIgLz4KQEAgLTE0MDYsMjIgKzE0MDksNiBAQAogICAgICAgPEZpbGVUeXBlPkRvY3VtZW50PC9G
aWxlVHlwZT4KICAgICA8L05vbmU+CiAgIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAg
IDxNQVNNIEluY2x1ZGU9Ii4uXGppdFxKSVRTdHVic01TVkM2NC5hc20iPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdT
dWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvTUFTTT4KLSAgPC9J
dGVtR3JvdXA+CiAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQu
Q3BwLnRhcmdldHMiIC8+CiAgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+
CiAgICAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXEJ1aWxkQ3VzdG9taXphdGlv
bnNcbWFzbS50YXJnZXRzIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5m
aWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC01MzcsNiArNTM3LDkgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JDb25zdHJ1Y3Rvci5jcHAiPgogICAgICAgPEZpbHRl
cj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5jcHAiPgorICAgICAgPEZpbHRlcj5y
dW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTQ0Miw2ICsxNDQ1LDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxNYWNyb0Fzc2VtYmxlclg4Nl82NC5oIj4KICAg
ICAgIDxGaWx0ZXI+YXNzZW1ibGVyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwuaCI+CisgICAgICA8RmlsdGVyPmFzc2VtYmxlcjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRl
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXFJlcGF0Y2hCdWZmZXIuaCI+
CiAgICAgICA8RmlsdGVyPmFzc2VtYmxlcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAt
MjEyOSw2ICsyMTM1LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJy
b3JDb25zdHJ1Y3Rvci5oIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckhhbmRs
aW5nU2NvcGUuaCI+CisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5j
bHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JJbnN0YW5jZS5o
Ij4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAt
MzI5NSw5ICszMzA0LDQgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSJKYXZhU2NyaXB0Q29yZVBvc3RC
dWlsZC5jbWQiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iSmF2YVNjcmlwdENvcmVQcmVCdWlsZC5j
bWQiIC8+CiAgIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxNQVNNIEluY2x1ZGU9
Ii4uXGppdFxKSVRTdHVic01TVkM2NC5hc20iPgotICAgICAgPEZpbHRlcj5qaXQ8L0ZpbHRlcj4K
LSAgICA8L01BU00+Ci0gIDwvSXRlbUdyb3VwPgogPC9Qcm9qZWN0PgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTAsNiArMjEwLDcgQEAKIAkJMEYzOEIwMTkxN0NGRTc1NTAwQjE0NEQzIC8qIERG
R0NvbXBpbGF0aW9uTW9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjM4QjAxNTE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2Rl
LmNwcCAqLzsgfTsKIAkJMEYzOEIwMUExN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9u
TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYz
OEIwMTYxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uTW9kZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0FDNzUyMTgzRUExMDQw
MDMyMDI5RiAvKiBTdGFja0FsaWdubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYzQUM3NTExODNFQTEwNDAwMzIwMjlGIC8qIFN0YWNrQWxpZ25t
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEYzQUM3NTQxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNBQzc1MzE4OEU1RUM4MDAzMjAy
OUYgLyogRXhpdGluZ0pJVFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjNCM0ExQTE1M0U2OEYyMDAzRUQwRkYgLyogREZHQ29uc3RhbnRG
b2xkaW5nUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYzQjNBMTcxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcCAqLzsgfTsKIAkJMEYzQjNBMUIxNTNFNjhGNDAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9s
ZGluZ1BoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjNCM0ExODE1M0U2OEVGMDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjNCM0Ey
NzE1NDRDOTk1MDAzRUQwRkYgLyogREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0EyNDE1NDRDOTkx
MDAzRUQwRkYgLyogREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAgKi87IH07CkBAIC0yMzYs
NiArMjM3LDEwIEBACiAJCTBGNDY4MEQ1MTRCQkQyNEIwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVy
blZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjQ2ODBEMTE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNDg1MzIxMTg3NzUw
NTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMUYxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRo
TW9kZS5jcHAgKi87IH07CiAJCTBGNDg1MzIyMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1
MzIwMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjQ4NTMyNzE4N0RGREVDMDA4M0I2ODcg
LyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjMxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJs
ZVJlY292ZXJ5LmNwcCAqLzsgfTsKKwkJMEY0ODUzMjgxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2
YWlsYWJsZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjQ4NTMyNDE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3Zlcnku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjQ4
NTMyOTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjUxODdERkRFQzAwODNC
Njg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCAqLzsgfTsKKwkJMEY0ODUzMkExODdERkRFQzAw
ODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMyNjE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3Zl
cnlPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0OTNBRjgxNkQwQ0FE
MTAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJMEY0Qjk0REMxN0I5RjA3
NTAwREQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRCOTREQjE3QjlGMDc1MDBERDAzQTQgLyogVHlwZWRB
cnJheUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjU1NDFCMTE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NTQxQUYxNjEz
QzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmNwcCAqLzsgfTsKQEAgLTI0OCw2ICsyNTMs
OCBAQAogCQkwRjU2QTFENTE1MDAxQ0Y0MDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFENDE1
MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAgKi87IH07CiAJCTBGNTcyRDRG
MTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRo
dW5rR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEY1QTUyRDAxN0FERDcxNzAwOEVDQjJEIC8qIENvcHlUb2tlbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1QTUyQ0YxN0FERDcxNzAw
OEVDQjJEIC8qIENvcHlUb2tlbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTBGNUE2MjgzMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUE2
MjgxMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmNwcCAqLzsgfTsKKwkJMEY1QTYy
ODQxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUE2MjgyMTg4Qzk4RDQwMDcyQzlERiAvKiBG
VExWYWx1ZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFRjkxQjE2ODc4Rjc4
MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLzsgfTsKIAkJMEY1RUY5MUYxNjg3OEY3RDAwM0U1
QzI1IC8qIEpJVFRodW5rcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUYwOENGMTQ2Qzc2
MzMwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGMDhDRTE0NkM3NjJGMDAwNDcyQTkgLyog
VW5jb25kaXRpb25hbEZpbmFsaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0yNjksNiArMjc2LDE4IEBACiAJCTBGNjY2RUNEMTgzNkIzN0Uw
MEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjY2RUNCMTgzNkIzN0UwMEQw
MTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjY2RTE2QjE0REYzRjE2MDBC
N0IyRTQgLyogREZHQWRqYWNlbmN5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY2NkUxNjgxNERGM0YxMzAwQjdCMkU0IC8qIERGR0FkamFjZW5j
eUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRjY2RTE2QzE0REYzRjE2MDBCN0IyRTQgLyogREZHRWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2NkUxNjkxNERGM0YxMzAwQjdCMkU0IC8q
IERGR0VkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjZCMUNCNTE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0IzMTg1RkM5RTkwMDg0
NUQ5NyAvKiBGVExKU0NhbGwuY3BwICovOyB9OworCQkwRjZCMUNCNjE4NUZDOUU5MDA4NDVEOTcg
LyogRlRMSlNDYWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjZCMUNCNDE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQjkxODYxMjQ0QzAw
ODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCNzE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01v
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
RjZCMUNCQTE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCODE4NjEy
NDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQkQxODYxMjQ2QTAwODQ1
RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCQjE4NjEyNDZBMDA4
NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcCAqLzsgfTsK
KwkJMEY2QjFDQkUxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY2QjFDQkMxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTBGNkIxQ0MzMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0JG
MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCAqLzsgfTsKKwkJMEY2
QjFDQzQxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0MwMTg2MkM0NzgwMDg0
NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQzUxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVu
d2luZEluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY2QjFDQzExODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwICovOyB9Owor
CQkwRjZCMUNDNjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQzIxODYyQzQ3ODAwODQ1
RDk3IC8qIEZUTFVud2luZEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjZCMUNDOTE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY2QjFDQzcxODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJu
VGh1bmtzLmNwcCAqLzsgfTsKKwkJMEY2QjFDQ0ExODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hl
Y2tGYWlsUmV0dXJuVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjZCMUNDODE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjcwMjVBOTE3MTRCMEZBMDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzAy
NUE3MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwICovOyB9
OwogCQkwRjcwMjVBQTE3MTRCMEZDMDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjcwMjVB
ODE3MTRCMEY4MDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3MTRDQTQxNkVBOTJG
MDAwRjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3MTRDQTExNkVBOTJFRDAwRjNF
QkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwICovOyB9OwpAQCAtMTM0Niw2
ICsxMzY1LDggQEAKIAkJRkU1OTMyQTgxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU1OTMyQTYx
ODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFQTA4NjIwMTgyQjdBMDQwMEY2RDg1MSAvKiBC
cmVha3BvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRUEwODYxRTE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFQTA4NjIxMTgyQjdBMDQwMEY2
RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZFQTA4NjFGMTgyQjdBMDQwMEY2RDg1MSAvKiBEZWJ1Z2dlclBy
aW1pdGl2ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlGRUI1OEMxNDE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFQjU4QzEyMTg3
QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuY3BwICovOyB9OworCQlGRUI1OEMx
NTE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUI1OEMxMzE4N0I4QjE2MDA5OEVGMEIg
LyogRXJyb3JIYW5kbGluZ1Njb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRkVEMjg3QjIxNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQyODdC
MTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQgLyog
V2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLzsgfTsKIAkJRkVE
OTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0
Y2hkb2cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTYwNSw2ICsxNjI2LDcgQEAKIAkJMEYzOEIwMTUxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0Nv
bXBpbGF0aW9uTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBE
RkdDb21waWxhdGlvbk1vZGUuY3BwOyBwYXRoID0gZGZnL0RGR0NvbXBpbGF0aW9uTW9kZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMzhCMDE2MTdDRkU3NTUwMEIxNDREMyAv
KiBERkdDb21waWxhdGlvbk1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
REZHQ29tcGlsYXRpb25Nb2RlLmg7IHBhdGggPSBkZmcvREZHQ29tcGlsYXRpb25Nb2RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0FDNzUxMTgzRUExMDQwMDMyMDI5RiAvKiBT
dGFja0FsaWdubWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGFja0Fs
aWdubWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjNBQzc1MzE4OEU1RUM4
MDAzMjAyOUYgLyogRXhpdGluZ0pJVFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXhpdGluZ0pJVFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYz
QjNBMTcxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcDsgcGF0aCA9IGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGM0IzQTE4MTUzRTY4RUYwMDNFRDBGRiAvKiBERkdDb25zdGFu
dEZvbGRpbmdQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0IzQTI0MTU0NEM5OTEwMDNFRDBGRiAv
KiBERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IERGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RG
R0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTYzMiw2ICsxNjU0LDEwIEBACiAJCTBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3MiAvKiBIb3N0
Q2FsbFJldHVyblZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhvc3RD
YWxsUmV0dXJuVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0ODUzMUYx
ODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdBcml0aE1vZGUuY3BwOyBwYXRoID0gZGZnL0RGR0FyaXRoTW9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDg1MzIwMTg3NzUwNTYwMDgz
QjY4NyAvKiBERkdBcml0aE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
REZHQXJpdGhNb2RlLmg7IHBhdGggPSBkZmcvREZHQXJpdGhNb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGNDg1MzIzMTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVS
ZWNvdmVyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExBdmFp
bGFibGVSZWNvdmVyeS5jcHA7IHBhdGggPSBmdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ4NTMyNDE4N0RGREVDMDA4M0I2ODcgLyog
RlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
RlRMQXZhaWxhYmxlUmVjb3ZlcnkuaDsgcGF0aCA9IGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ4NTMyNTE4N0RGREVDMDA4M0I2ODcg
LyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gRlRMUmVjb3ZlcnlPcGNvZGUuY3BwOyBwYXRoID0gZnRsL0ZUTFJlY292ZXJ5T3Bjb2Rl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0ODUzMjYxODdERkRFQzAwODNC
Njg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEZUTFJlY292ZXJ5T3Bjb2RlLmg7IHBhdGggPSBmdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0OTNBRjgxNkQwQ0FEMTAwODQ1MDhCIC8q
IFNvdXJjZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNvdXJjZVByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0Qjk0
REIxN0I5RjA3NTAwREQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVkQXJyYXlJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNTU0MUFGMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9pbnRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVjaWFsUG9pbnRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQ0LDYgKzE2NzAsOCBAQAogCQkw
RjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVjdXRpb25Db3VudGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRodW5r
R2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRodW5rR2VuZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUE1MkNGMTdBREQ3MTcwMDhF
Q0IyRCAvKiBDb3B5VG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29w
eVRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUE2MjgxMTg4Qzk4RDQw
MDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEZUTFZhbHVlUmFuZ2UuY3BwOyBwYXRoID0gZnRsL0ZUTFZhbHVlUmFuZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjVBNjI4MjE4OEM5OEQ0MDA3MkM5REYg
LyogRlRMVmFsdWVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExW
YWx1ZVJhbmdlLmg7IHBhdGggPSBmdGwvRlRMVmFsdWVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVFRodW5rcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRU
aHVua3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVGh1bmtzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBV
bmNvbmRpdGlvbmFsRmluYWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE2NjUsNiArMTY5MywxOCBAQAogCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVz
dXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oOyBwYXRoID0gZGZnL0RG
R1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjY2RTE2ODE0REYzRjEzMDBCN0IyRTQgLyogREZHQWRqYWNlbmN5TGlzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBZGphY2VuY3lMaXN0Lmg7IHBhdGgg
PSBkZmcvREZHQWRqYWNlbmN5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjY2RTE2OTE0REYzRjEzMDBCN0IyRTQgLyogREZHRWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdFZGdlLmg7IHBhdGggPSBkZmcvREZHRWRnZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCMzE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEpTQ2FsbC5jcHA7
IHBhdGggPSBmdGwvRlRMSlNDYWxsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MEY2QjFDQjQxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBGVExKU0NhbGwuaDsgcGF0aCA9IGZ0bC9GVExKU0NhbGwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQjcxODYxMjQ0QzAwODQ1RDk3IC8qIEFy
aXR5Q2hlY2tNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyaXR5Q2hl
Y2tNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0I4MTg2MTI0NEMw
MDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGNkIxQ0JCMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNl
cnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQkMxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lz
dGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQkYxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJl
Z2lzdGVyQXRPZmZzZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
RlRMUmVnaXN0ZXJBdE9mZnNldC5jcHA7IHBhdGggPSBmdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0MwMTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEZUTFJlZ2lzdGVyQXRPZmZzZXQuaDsgcGF0aCA9IGZ0bC9GVExSZWdpc3RlckF0T2Zmc2V0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0MxMTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExVbndpbmRJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEZUTFVud2luZEluZm8uY3BwOyBwYXRoID0gZnRsL0ZUTFVud2luZEluZm8uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNDMjE4NjJDNDc4MDA4NDVEOTcgLyogRlRM
VW53aW5kSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExVbndpbmRJ
bmZvLmg7IHBhdGggPSBmdGwvRlRMVW53aW5kSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjZCMUNDNzE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5U
aHVua3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJpdHlDaGVj
a0ZhaWxSZXR1cm5UaHVua3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZC
MUNDODE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MDI1QTcxNzE0QjBGODAwMzgyQzBF
IC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOyBwYXRoID0gZGZnL0RG
R09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGNzAyNUE4MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
Lmg7IHBhdGggPSBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGNzE0Q0ExMTZFQTkyRUQwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQ
cm9wYWdhdGlvblBoYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RGR0JhY2t3YXJk
c1Byb3BhZ2F0aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEx
Niw2ICsyMTU2LDcgQEAKIAkJNjU2MEE0Q0YwNEIzQjNFNzAwOEFFOTUyIC8qIENvcmVGb3VuZGF0
aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29yZUZvdW5kYXRpb24uZnJhbWV3b3Jr
OyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUZvdW5kYXRpb24uZnJhbWV3
b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQk2NTYyMUU2QjA4OUU4NTk3MDA3
NjBGMzUgLyogUHJvcGVydHlTbG90LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3BlcnR5U2xvdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJNjU2MjFFNkMwODlFODU5NzAwNzYwRjM1IC8q
IFByb3BlcnR5U2xvdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcm9wZXJ0eVNsb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB9OworCQk2NTg2MDE3NzE4NUE4RjVFMDAwMzBFRUUgLyogTWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NjU5ODdGMkMxNjdGRTg0QjAwM0MyRjhEIC8qIERGR09TUkV4aXRDb21waWxhdGlvbkluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHT1NSRXhpdENvbXBpbGF0aW9uSW5m
by5oOyBwYXRoID0gZGZnL0RGR09TUkV4aXRDb21waWxhdGlvbkluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjU5ODdGMkYxNjgyOEE3RTAwM0MyRjhEIC8qIFVudXNlZFBvaW50
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW51c2VkUG9pbnRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUMwMjg0RjE3MTc5NUUyMDAzNTFFMzUgLyog
QVJNdjdEaXNhc3NlbWJsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQVJNdjdEaXNhc3NlbWJsZXIuY3BwOyBwYXRoID0gZGlzYXNzZW1ibGVyL0FSTXY3RGlzYXNz
ZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3ODMsNiArMjgyNCw4
IEBACiAJCUZFNTkzMkE2MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVk1FbnRyeVNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUZFQTA4NjFFMTgyQjdBMDQwMEY2RDg1MSAvKiBCcmVha3BvaW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJyZWFrcG9pbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBMDg2MUYxODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2Vy
UHJpbWl0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWJ1Z2dlclBy
aW1pdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVCNThDMTIxODdCOEIx
NjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBFcnJvckhhbmRsaW5nU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGRUI1OEMxMzE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Nj
b3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVycm9ySGFuZGxpbmdTY29w
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQyODdCMTE1RUM5QTU3MDBEQTgx
NjEgLyogTExJbnRPcGNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTExJ
bnRPcGNvZGUuaDsgcGF0aCA9IGxsaW50L0xMSW50T3Bjb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXRjaGRvZy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRDk0RjJDMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRv
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXRjaGRvZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAwMSw2ICszMDQ0LDggQEAKIAkJCQkwRkVBMEExODE3
MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwLmggKi8sCiAJCQkJMEZFQTBBMTkxNzA4
QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwICovLAogCQkJCTBG
RUEwQTFBMTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggKi8s
CisJCQkJMEY0ODUzMjMxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNw
cCAqLywKKwkJCQkwRjQ4NTMyNDE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3Zl
cnkuaCAqLywKIAkJCQkwRkVBMDlGRTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJpbGl0aWVz
LmNwcCAqLywKIAkJCQkwRkVBMDlGRjE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJpbGl0aWVz
LmggKi8sCiAJCQkJMEZFQTBBMjUxNzA5NjIzQjAwQkI3MjJDIC8qIEZUTENvbW1vblZhbHVlcy5j
cHAgKi8sCkBAIC0zMDMxLDYgKzMwNzYsOCBAQAogCQkJCTBGRUEwQTAzMTcwNTEzREIwMEJCNzIy
QyAvKiBGVExKSVRDb2RlLmggKi8sCiAJCQkJQTc4QTk3N0QxNzk3MzhENTAwOURGNzQ0IC8qIEZU
TEpJVEZpbmFsaXplci5jcHAgKi8sCiAJCQkJQTc4QTk3N0UxNzk3MzhENTAwOURGNzQ0IC8qIEZU
TEpJVEZpbmFsaXplci5oICovLAorCQkJCTBGNkIxQ0IzMTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExK
U0NhbGwuY3BwICovLAorCQkJCTBGNkIxQ0I0MTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwu
aCAqLywKIAkJCQkwRjhGMkI5MzE3MkUwNDlFMDA3REJEQTUgLyogRlRMTGluay5jcHAgKi8sCiAJ
CQkJMEY4RjJCOTQxNzJFMDQ5RTAwN0RCREE1IC8qIEZUTExpbmsuaCAqLywKIAkJCQkwRkNFRkFE
RDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uY3BwICovLApAQCAtMzA0Nyw2ICszMDk0
LDEwIEBACiAJCQkJMEYyMzVCQ0ExNzE3OEUxQzAwNjkwQzdGIC8qIEZUTE9TUkV4aXRDb21waWxl
ci5oICovLAogCQkJCTBGRUEwQTI5MTcwOTYyOTYwMEJCNzIyQyAvKiBGVExPdXRwdXQuY3BwICov
LAogCQkJCTBGRUEwQTA2MTcwNTEzREIwMEJCNzIyQyAvKiBGVExPdXRwdXQuaCAqLywKKwkJCQkw
RjQ4NTMyNTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwICovLAorCQkJ
CTBGNDg1MzI2MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oICovLAorCQkJ
CTBGNkIxQ0JGMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCAqLywK
KwkJCQkwRjZCMUNDMDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5oICov
LAogCQkJCTBGQ0VGQUE5MTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5jcHAgKi8s
CiAJCQkJMEZDRUZBQUExODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmggKi8sCiAJ
CQkJMEYyNUYxQUExODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbC5jcHAgKi8sCkBA
IC0zMDYxLDkgKzMxMTIsMTMgQEAKIAkJCQkwRjIzNUJDQjE3MTc4RTFDMDA2OTBDN0YgLyogRlRM
VGh1bmtzLmNwcCAqLywKIAkJCQkwRjIzNUJDQzE3MTc4RTFDMDA2OTBDN0YgLyogRlRMVGh1bmtz
LmggKi8sCiAJCQkJMEZFQTBBMUIxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTFR5cGVkUG9pbnRlci5o
ICovLAorCQkJCTBGNkIxQ0MxMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmNwcCAq
LywKKwkJCQkwRjZCMUNDMjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oICovLAog
CQkJCTBGMjM1QkNEMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExWYWx1ZUZvcm1hdC5jcHAgKi8sCiAJ
CQkJMEYyMzVCQ0UxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFZhbHVlRm9ybWF0LmggKi8sCiAJCQkJ
MEZEQjJDQzgxNzNEQTUxRTAwN0IzQzFCIC8qIEZUTFZhbHVlRnJvbUJsb2NrLmggKi8sCisJCQkJ
MEY1QTYyODExODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuY3BwICovLAorCQkJCTBG
NUE2MjgyMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmggKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IGZ0bDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTUyLDYgKzMyMDcs
OCBAQAogCQkxNDI5RDkyQzBFRDIyRDcwMDBCODk2MTkgLyogaml0ICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkwRjZCMUNDNzE4NjQxREY4MDA4NDVEOTcg
LyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwICovLAorCQkJCTBGNkIxQ0M4MTg2NDFE
RjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oICovLAogCQkJCTBGMjRF
NTNCMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuY3BwICovLAogCQkJCTBGMjRF
NTNDMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuaCAqLywKIAkJCQkwRjI0RTUz
RDE3RUE5RjU5MDBBQkIyMTcgLyogQ0NhbGxIZWxwZXJzLmggKi8sCkBAIC0zMjA1LDYgKzMyNjIs
OCBAQAogCQkJCTBGQzcxMkUxMTdDRDg3OEYwMDhDQzkzQyAvKiBKSVRUb0RGR0RlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjay5oICovLAogCQkJCUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBK
SVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJ
bnRlcmZhY2VKSVQuaCAqLywKKwkJCQkwRjZCMUNCQjE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcCAqLywKKwkJCQkwRjZCMUNCQzE4NjEy
NDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggKi8s
CiAJCQkJMEZDMzE0MTQxODE0NkQ3MDAwMDMzMjMyIC8qIFJlZ2lzdGVyU2V0LmNwcCAqLywKIAkJ
CQkwRkMzMTQxMDE4MTQ1NTkxMDAwMzMyMzIgLyogUmVnaXN0ZXJTZXQuaCAqLywKIAkJCQkwRjI0
RTU0OTE3RUUyNzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5jcHAgKi8sCkBAIC0zNTU0LDYgKzM2MTMs
NyBAQAogCQkJCUE3NjE0MEM4MTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvckNv
bnN0cnVjdG9yLmggKi8sCiAJCQkJQTc2MTQwQzkxODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3VtZW50
c0l0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLywKIAkJCQlBNzYxNDBDQTE4Mjk4MkNCMDA3NTA2MjQg
LyogQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuaCAqLywKKwkJCQkwRjZCMUNCNzE4NjEyNDRD
MDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUuaCAqLywKIAkJCQlBN0E4QUYyNTE3QURCNUYyMDA1
QUIxNzQgLyogQXJyYXlCdWZmZXIuY3BwICovLAogCQkJCUE3QThBRjI2MTdBREI1RjMwMDVBQjE3
NCAvKiBBcnJheUJ1ZmZlci5oICovLAogCQkJCTBGRkM5OUQyMTg0RUUzMTgwMDlDMTBBQiAvKiBB
cnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuY3BwICovLApAQCAtMzYxOCw2ICszNjc4LDgg
QEAKIAkJCQlCQzMwNDYwNjBFMUY0OTdGMDAzMjMyQ0YgLyogRXJyb3IuaCAqLywKIAkJCQlCQzAy
RTkwNDBFMTgzOURCMDAwRjkyOTcgLyogRXJyb3JDb25zdHJ1Y3Rvci5jcHAgKi8sCiAJCQkJQkMw
MkU5MDUwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yQ29uc3RydWN0b3IuaCAqLywKKwkJCQlGRUI1
OEMxMjE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCAqLywKKwkJCQlG
RUI1OEMxMzE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggKi8sCiAJCQkJ
QkMwMkU5OEEwRTE4M0UzODAwMEY5Mjk3IC8qIEVycm9ySW5zdGFuY2UuY3BwICovLAogCQkJCUJD
MDJFOThCMEUxODNFMzgwMDBGOTI5NyAvKiBFcnJvckluc3RhbmNlLmggKi8sCiAJCQkJQkMwMkU5
MDYwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yUHJvdG90eXBlLmNwcCAqLywKQEAgLTM4NTEsNiAr
MzkxMyw3IEBACiAJCQkJRjY5MkE4N0MwMjU1NTk3RDAxRkY2MEY3IC8qIFJlZ0V4cE9iamVjdC5o
ICovLAogCQkJCUJDRDIwMkJGMEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBQcm90b3R5cGUuY3Bw
ICovLAogCQkJCUJDRDIwMkMwMEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBQcm90b3R5cGUuaCAq
LywKKwkJCQkwRjZCMUNCODE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25N
b2RlLmggKi8sCiAJCQkJMEZCN0YzOTExNUVEOEUzODAwRjE2N0IyIC8qIFJlamVjdC5oICovLAog
CQkJCTBGNzcwMDkxMTQwMkZGMjgwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIuY3BwICovLAog
CQkJCTBGNzcwMDhFMTQwMkZERDYwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIuaCAqLywKQEAg
LTM5NjUsNiArNDAyOCw4IEBACiAJCTg2RUM5REIzMTMyOERGNDQwMDJCMkFENyAvKiBkZmcgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJBQ0NGM0RDMTg1
RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2UuY3BwICovLAorCQkJ
CTJBQ0NGM0REMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2Uu
aCAqLywKIAkJCQlBNzdBNDIzNjE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmNw
cCAqLywKIAkJCQlBNzdBNDIzNzE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmgg
Ki8sCiAJCQkJQTcwNEQ4RkUxN0EwQkFBODAwNkJBNTU0IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0
ZXIuaCAqLywKQEAgLTQxNTMsOCArNDIxOCw2IEBACiAJCQkJMEZDMjBDQjgxODU1NkEzNTAwQzlF
OTU0IC8qIERGR1NTQUxvd2VyaW5nUGhhc2UuaCAqLywKIAkJCQkwRjlGQjRGMjE3RkNCOTE3MDBD
QjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAgKi8sCiAJCQkJMEY5RkI0RjMxN0ZDQjkx
NzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhhc2UuaCAqLywKLQkJCQkyQUNDRjNEQzE4NUZF
MjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCAqLywKLQkJCQky
QUNDRjNERDE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmgg
Ki8sCiAJCQkJMEZDMjBDQjMxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuY3BwICovLAogCQkJCTBGQzIwQ0I0MTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0
aFJlZHVjdGlvblBoYXNlLmggKi8sCiAJCQkJMEY2Mzk0NzYxNURDRTM0NzAwNkE1OTdDIC8qIERG
R1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCAqLywKQEAgLTQyNTAsNiArNDMxMyw3IEBACiAJCTk2
ODhDQjEyMEVEMTJCNEUwMDFENjQ5RiAvKiBhc3NlbWJsZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTY1ODYwMTc3MTg1QThGNUUwMDAzMEVFRSAvKiBN
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oICovLAogCQkJCTg2MDE2MURGMEYzQTgzQzEw
MEY4NDcxMCAvKiBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggKi8sCiAJCQkJODY0MDkyM0IxNTZF
RUQzQjAwNTY2Q0IyIC8qIEFSTTY0QXNzZW1ibGVyLmggKi8sCiAJCQkJODZEM0IyQkYxMDE1NkJE
RTAwMjg2NUU3IC8qIEFSTUFzc2VtYmxlci5jcHAgKi8sCkBAIC00MzIyLDYgKzQzODYsNyBAQAog
CQkJCTk2OUEwNzkyMEVEMUQzQUUwMEYxRjY4MSAvKiBFdmFsQ29kZUNhY2hlLmggKi8sCiAJCQkJ
MEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIuY3BwICovLAogCQkJ
CTBGNTZBMUQxMTUwMDBGMzEwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggKi8sCisJCQkJ
MEYzQUM3NTMxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggKi8sCiAJCQkJMEZC
MTA1ODIxNjc1NDgwQzAwRjhBQjZFIC8qIEV4aXRLaW5kLmNwcCAqLywKIAkJCQkwRkIxMDU4MzE2
NzU0ODBDMDBGOEFCNkUgLyogRXhpdEtpbmQuaCAqLywKIAkJCQkwRjBCODNBQTE0QkNGNUI5MDA4
ODVCNEYgLyogRXhwcmVzc2lvblJhbmdlSW5mby5oICovLApAQCAtNDU0MSwxMyArNDYwNiwxNCBA
QAogCQkJCTg2QUREMTQ1MEZEREVBOTgwMDA2RUVDMiAvKiBBUk12N0Fzc2VtYmxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVDRUVFMTUxODdGM0JBRDAwRTU1Qzk5IC8qIEluc3BlY3RvckFnZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUMwMjg1RDE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdE
T3Bjb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkyQTY4Mjk1QjE4NzVGODA1MDBCNkMzRTIgLyog
Q29weVdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkE0RUM5MEMxODYwRDZDMjAw
OTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisgCQkJCTJBNjgy
OTVCMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywK
KyAgICAgICAgICAgICAgICAyQTRFQzkwQzE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVy
QnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJBODE4M0M1QTI2MDBBMUVDQ0MgLyog
Vk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MzE4NTY5NzA5MDAyRUQ2
OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3MucHkgaW4gSGVhZGVycyAqLywKLQkJ
CQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weSBp
biBIZWFkZXJzICovLAorIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVy
YXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTRGMTdFRTI3NDkwMEFC
QjIxNyAvKiBUZW1wUmVnaXN0ZXJTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MEU0QjY0MTg4
MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRkVCNThDMTUxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCRkYzQzAxNzk4Njg5NDAwMDJGNDYyIC8qIERGR0ZpbHRy
YXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTI3MTg3Qzk4MUUwMDg0M0Ix
MCAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLywKIAkJCQlDMkZDQUUxMTE3QTlDMjRFMDAzNEM3
MzUgLyogQnl0ZWNvZGVCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLywKQEAgLTQ1NTYsNyArNDYy
Miw3IEBACiAJCQkJMEY4MzM1QjgxNjM5QzFFQTAwMTQ0M0I1IC8qIEFycmF5QWxsb2NhdGlvblBy
b2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTI5MTg3Q0E1RTYwMDg0M0IxMCAvKiBp
bmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSBpbiBIZWFkZXJzICov
LAogCQkJCUE1ODQwRTJCMTg3Q0E3NUIwMDg0M0IxMCAvKiBqc21pbi5weSBpbiBIZWFkZXJzICov
LAotCQkJCUE1MzI0Mzk4MTg1NkE0ODkwMDJFRDY5MiAvKiBJbnNwZWN0b3JKUy5qc29uIGluIEhl
YWRlcnMgKi8sCisgCQkJCUE1MzI0Mzk4MTg1NkE0ODkwMDJFRDY5MiAvKiBJbnNwZWN0b3JKUy5q
c29uIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMkExODdDQTc1OTAwODQzQjEwIC8qIHh4ZC5w
bCBpbiBIZWFkZXJzICovLAogCQkJCUZFQTA4NjIwMTgyQjdBMDQwMEY2RDg1MSAvKiBCcmVha3Bv
aW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0E4QUYzNTE3QURCNUYzMDA1QUIxNzQgLyogQXJy
YXlCdWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNDYyNCw2ICs0NjkwLDcgQEAKIAkJCQlDMkVB
QTNGQTE0OUE4MzVFMDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUMyQzhEMDJEMTRBM0M2RTAwMDU3OEU2NSAvKiBDb3BpZWRTcGFjZUlubGluZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNUE1MkQwMTdBREQ3MTcwMDhFQ0IyRCAvKiBDb3B5VG9rZW4uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNkIxQ0M2MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZv
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjIzOUQxODE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZp
c2l0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyMjM5RDE5MTYyNjJCREQwMDVBQzVGRCAvKiBD
b3B5VmlzaXRvcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyMThEMTQwMTY1NUNGRDUw
MDYyQkI4MSAvKiBDb3B5V29ya0xpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtNDY2NSw3ICs0NzMy
LDggQEAKIAkJCQkwRjgzNjRCNzE2NEIwQzExMDA1MzMyOUEgLyogREZHQnJhbmNoRGlyZWN0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUEwMDlDMDE4MzFBMjJEMDBDRjg3MTEgLyogTWFjcm9B
c3NlbWJsZXJBUk02NC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlEQzUxMzI4REY4MjAwMkIy
QUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTkzQ0Y4NzE4
NDAzOENBMDBCRkNFMjcgLyogSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY0ODUzMjgxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5Lmgg
aW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICBBNTkzQ0Y4NzE4NDAzOENBMDBCRkNFMjcg
LyogSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNTZDMzYx
NjI3QjBBRDAwN0YyNzgzIC8qIERGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdCMjk0QjE0QzNDRDJGMDA3QzNEQjEgLyogREZHQ2Fw
YWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZGQzk1ODE0RUY5MEEyMDBDNzI1MzIg
LyogREZHQ0ZBUGhhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtNDY5OSw2ICs0NzY3LDcgQEAKIAkJ
CQkwRkJDMEFFODE0OTZDN0M3MDBENEZCREQgLyogREZHRXhpdFByb2ZpbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3OEE5Nzc1MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGYWlsZWRGaW5hbGl6ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3OEE5Nzc3MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGaW5h
bGl6ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0I2MTg1RkM5RTkwMDg0NUQ5NyAvKiBG
VExKU0NhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzE2MTUxQzVENEYwMENEODkxMCAv
KiBERkdGaXh1cFBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlEMzM5NzE3RkZDNEU2MDA3
M0MyQkMgLyogREZHRmx1c2hlZEF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4OUNGODE3QTBC
OENDMDA3NzNBRDggLyogREZHRmx1c2hGb3JtYXQuaCBpbiBIZWFkZXJzICovLApAQCAtNDczNSw2
ICs0ODA0LDcgQEAKIAkJCQkwRkQ4QTMyNjE3RDUxRjU3MDBDQTJDNDAgLyogREZHT1NSRW50cnlw
b2ludENyZWF0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzA5NzZBMTQ2OEE2Rjcw
MENGMjQ0MiAvKiBERkdPU1JFeGl0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZDOTlEMTE4NEVD
OEFEMDA5QzEwQUIgLyogQ29uc3RhbnRNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNC
QTE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjIzNUJFQzE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NSRXhpdEJhc2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1QkExNUVEMTgyMzQwQjQwMEE4MkU2OSAvKiBSZW1vdGVJbnNw
ZWN0b3JYUENDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZCOTIxQzE2RDAyRjEx
MDA1NUE1REIgLyogREZHT1NSRXhpdENvbXBpbGF0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8sCkBA
IC00ODAzLDYgKzQ4NzMsNyBAQAogCQkJCTBGRUEwQTFGMTcwOEIwMDcwMEJCNzIyQyAvKiBGVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTk0NTU5MzE4MjQ3
NDQ3MDBDQzM4NDMgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVBMEEwQTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJpbGl0aWVzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjQ4NTMyQTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNv
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTIzMTcwOTYwNjkwMEJCNzIyQyAvKiBGVExD
b21tb25WYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBDMTcwNTEzREIwMEJCNzIy
QyAvKiBGVExDb21waWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjIzNUJENDE3MTc4RTFDMDA2
OTBDN0YgLyogRlRMRXhpdEFyZ3VtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTQ4MTksNiArNDg5
MCw3IEBACiAJCQkJMEZFQTBBMjQxNzA5NjA2OTAwQkI3MjJDIC8qIEZUTEludHJpbnNpY1JlcG9z
aXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBFMTcwNTEzREIwMEJCNzIyQyAvKiBG
VExKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc4MTE3OTczOEQ1MDA5REY3NDQg
LyogRlRMSklURmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVBNjI4NDE4OEM5OEQ0
MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RjJCOTYx
NzJFMDRBMzAwN0RCREE1IC8qIEZUTExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQ0VGQUUw
MTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
QTBBMTAxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTExvd2VyREZHVG9MTFZNLmggaW4gSGVhZGVycyAq
LywKQEAgLTQ5MDEsNiArNDk3Myw3IEBACiAJCQkJMEZDMjBDQjYxODUyRTJDNjAwQzlFOTU0IC8q
IERGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjE0RTFG
MTgxMjRBQ0UwMDlCNkI0RCAvKiBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODZDQzg1QTEwRUU3OUE0NzAwMjg4NjgyIC8qIEpJVElubGluZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNkIxQ0JFMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZh
dGlvbldyYXBwZXJHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTREMTdFRTI3
NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzkwREQ3
MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbldyYXBwZXJzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTQ5MTYsNiArNDk4OSw3IEBACiAJCQkJMEZDNzEyRTMxN0NEODc5MzAwOEND
OTNDIC8qIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzZGNTRBMzEzQjI4QUFCMDBFRjJCQ0UgLyogSklUV3JpdGVCYXJyaWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzE4QzQxNjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNBY3RpdmF0aW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNCOTE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlD
aGVja01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0MDQ4MDEzMTAyMUExRDkwMDhFN0YwMSAv
KiBKU0FQSVZhbHVlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzJDRjM5QzIxNkUxNUE4
MTAwREQ2OUJFIC8qIEpTQVBJV3JhcHBlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc2
MTQwRDIxODI5ODJDQjAwNzUwNjI0IC8qIEpTQXJndW1lbnRzSXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovLApAQCAtNDk2OSw2ICs1MDQzLDggQEAKIAkJCQlCQzE4QzQyMzBFMTZGNUNEMDBCMzQ0NjAg
LyogSlNMb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjVENzA5QzE2REU5OUY0MDBGQ0E2QkMg
LyogSlNNYW5hZ2VkVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzQyMTdDQkU4RUIw
MEMzRTY0MyAvKiBKU01hcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzQUM3NTQxODhFNUVDODAw
MzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNDNDE4
NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTQ4NzRBRTQxNUVCREU0QTAwMkUzNTg3IC8qIEpTTmFtZVNjb3BlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzQyNDBFMTZGNUNEMDBCMzQ0NjAgLyogSlNPYmplY3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDI1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU09iamVjdFJlZi5oIGluIEhl
YWRlcnMgKi8sCkBAIC01MjczLDYgKzUzNDksNyBAQAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFE
NjQ5RiAvKiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MTUzOUI5MTJEQzk5
NDUwMEVGN0FDNCAvKiBZYXJyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY2NkVDRDE4MzZCMzdF
MDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjZCMUNDQTE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg1MTJEQkEzMzcwMEE5RkU3QiAv
KiBZYXJySW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NUQ5M0E2MTg1MDEyQTgw
MDQwMERFRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0
Qjg3MTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJySklULmggaW4gSGVhZGVycyAqLywKQEAgLTU3MTYs
NiArNTc5Myw3IEBACiAJCQkJMTQyOUQ4REQwRUQyMjA1QjAwQjg5NjE5IC8qIENhbGxGcmFtZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBCODNCMDE0QkNGNzE2MDA4ODVCNEYgLyogQ2FsbExp
bmtJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1MTNFNUI3MTg1QjhCRDMwMDdFOTVBRCAv
KiBJbmplY3RlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjVBNjI4MzE4OEM5OEQ0
MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkzMzI5
RDE0Q0E3REMzMDA4NUYzQzYgLyogQ2FsbExpbmtTdGF0dXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEY3M0Q3QUUxNjVBMTQyRDAwQUNBQjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTY5QTA3OTYwRUQxRDNBRTAwRjFGNjgxIC8qIENvZGVCbG9j
ay5jcHAgaW4gU291cmNlcyAqLywKQEAgLTU3NTQsNiArNTgzMiw3IEBACiAJCQkJMEY2Mzk0ODQx
NUU0ODExODAwNkE1OTdDIC8qIERGR0FycmF5TW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
N0Q5QTI5NDE3QTBCQzc0MDBFRTI2MTggLyogREZHQXRUYWlsQWJzdHJhY3RTdGF0ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjcxNENBNDE2RUE5MkYwMDBGM0VCRUIgLyogREZHQmFja3dhcmRz
UHJvcGFnYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRUI1OEMxNDE4N0I4QjE2
MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
RDg5Q0YyMTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCYXNpY0Jsb2NrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE3MEIwODMyMTdBMEI3OUIwMERBRjE0QiAvKiBERkdCaW5hcnlTd2l0Y2guY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRjMxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5z
ZXJ0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTgzMSw5ICs1OTEwLDExIEBACiAJCQkJ
ODY4ODBGNEQxNDM1M0IyMTAwQjA4RDQyIC8qIERGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTdEODlDRkYxN0EwQjhDQzAwNzczQUQ4IC8qIERGR1NTQUNvbnZlcnNp
b25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlGQjRGNDE3RkNCOTE3MDBDQjY3Rjgg
LyogREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZCMUNCRDE4
NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5N0ExMTQ2QjI4Q0EwMENGMjQ0MiAvKiBERkdUaHVu
a3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEOEEzMjcxN0Q1MUY1NzAwQ0EyQzQwIC8qIERG
R1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEOEEz
MjkxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNDg1MzI3MTg3REZERUMwMDgzQjY4NyAvKiBGVExB
dmFpbGFibGVSZWNvdmVyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyQjE3RDUxRjU3
MDBDQTJDNDAgLyogREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYzOTQ0MDE1Qzc1RjFEMDA2QTU5N0MgLyogREZH
VHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkJFMEY3NjE2
QzFEQjBGMDA4MkM1RTggLyogREZHVW5pZmljYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTU4OTIsOSArNTk3MywxMSBAQAogCQkJCTBGQ0VGQUFCMTgwNEMxM0UwMDQ3MkNFNCAvKiBG
VExTYXZlUmVzdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI1RjFCMTE4MTYzNUYzMDA1
MjJGMzkgLyogRlRMU2xvd1BhdGhDYWxsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjVGMUIz
MTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0aENhbGxLZXkuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMEY2QjFDQzUxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY5RDMzOUExODAzQURCNzAwNzNDMkJDIC8qIEZUTFN0YWNrTWFwcy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBMEExNjE3MDZCQjkwMDBCQjcyMkMgLyogRlRMU3Rh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJN0MwMDhDRDIxODZGOEE5MzAwOTU1QzI0IC8qIEpT
UHJvbWlzZUZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKyAJCQkJN0MwMDhDRDIxODZGOEE5
MzAwOTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RjZCMUNCNTE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMjM1QkUxMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExUaHVua3MuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTU5M0NGN0MxODQwMzYwMzAwQkZDRTI3IC8qIEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjM1QkUzMTcxNzhFMUMwMDY5MEM3RiAv
KiBGVExWYWx1ZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTU5ODAsNiArNjA2Myw3IEBA
CiAJCQkJMTQyODA4NzUxMDdFQzEzRTAwMTNFN0IyIC8qIEpTTG9jay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDMjVENzA5QjE2REU5OUY0MDBGQ0E2QkMgLyogSlNNYW5hZ2VkVmFsdWUubW0gaW4g
U291cmNlcyAqLywKIAkJCQlBNzAwODc0MTE3Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY0ODUzMjkxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5
T3Bjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0ODc0QUUzMTVFQkRFNEEwMDJFMzU4NyAv
KiBKU05hbWVTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzI3MDA5MDBEQUM2QkJDMDBF
NTQ4RDcgLyogSlNOb3RBbk9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlENDEw
N0VDMzc2MDA0MjdBNDggLyogSlNPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02MDk2LDYg
KzYxODAsNyBAQAogCQkJCTBGNjY2RUNDMTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rp
b25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCMTA1OEIxNjc1
NDgzMTAwRjhBQjZFIC8qIFByb2ZpbGVyT1NSRXhpdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkIxMDU4RDE2NzU0ODM3MDBGOEFCNkUgLyogUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRjZCMUNDMzE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9m
ZnNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjEzOTEyQjE2NzcxQzNBMDA5Q0NCMDcgLyog
UHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0ZCNjBB
NDEwM0Y3REMyMDAxN0EyODYgLyogUHJvcGVydHlEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0NDY5REU3MTA3RUM3RTcwMDY1MDQ0NiAvKiBQcm9wZXJ0eU5hbWVBcnJheS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTYxMjUsNiArNjIxMCw3IEBACiAJCQkJMEY4RjJCOUUxNzMwNkM4
RDAwN0RCREE1IC8qIFNvdXJjZUNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0OTNBRkEx
NkQwQ0FEMzAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUU0OURDMTZCMTJFRjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTBGNkIxQ0M5MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBDRDRDNDE1RjZCNkJCMDAz
MkYxQzAgLyogU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU1
NDFCMTE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZEODJFODYxNDFGM0ZGMTAwMTc5Qzk0IC8qIFNwZWN1bGF0ZWRUeXBlLmNwcCBpbiBT
b3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFz
c2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QVJNNjRBc3NlbWJsZXIuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNCAr
NDAsMjYgQEAKICNkZWZpbmUgREFUQVNJWkUgREFUQVNJWkVfT0YoZGF0YXNpemUpCiAjZGVmaW5l
IE1FTU9QU0laRSBNRU1PUFNJWkVfT0YoZGF0YXNpemUpCiAjZGVmaW5lIENIRUNLX0ZQX01FTU9Q
X0RBVEFTSVpFKCkgQVNTRVJUKGRhdGFzaXplID09IDggfHwgZGF0YXNpemUgPT0gMTYgfHwgZGF0
YXNpemUgPT0gMzIgfHwgZGF0YXNpemUgPT0gNjQgfHwgZGF0YXNpemUgPT0gMTI4KQorI2RlZmlu
ZSBNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSkgKChkYXRhc2l6ZSA9PSA2NCkgPyBNZW1QYWly
T3BfNjQgOiBNZW1QYWlyT3BfMzIpCisjZGVmaW5lIE1FTVBBSVJPUFNJWkVfRlAoZGF0YXNpemUp
ICgoZGF0YXNpemUgPT0gMTI4KSA/IE1lbVBhaXJPcF9WMTI4IDogKGRhdGFzaXplID09IDY0KSA/
IE1lbVBhaXJPcF9WNjQgOiBNZW1QYWlyT3BfMzIpCiAKIG5hbWVzcGFjZSBKU0MgewogCitBTFdB
WVNfSU5MSU5FIGJvb2wgaXNJbnQ3KGludDMyX3QgdmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVl
ID09ICgodmFsdWUgPDwgMjUpID4+IDI1KTsKK30KKwogQUxXQVlTX0lOTElORSBib29sIGlzSW50
OShpbnQzMl90IHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDIzKSA+
PiAyMyk7CiB9CiAKK0FMV0FZU19JTkxJTkUgYm9vbCBpc0ludDExKGludDMyX3QgdmFsdWUpCit7
CisgICAgcmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMjEpID4+IDIxKTsKK30KKwogQUxXQVlT
X0lOTElORSBib29sIGlzVUludDUoaW50MzJfdCB2YWx1ZSkKIHsKICAgICByZXR1cm4gISh2YWx1
ZSAmIH4weDFmKTsKQEAgLTExOSw2ICsxMzEsMzQgQEAgcHJpdmF0ZToKICAgICBpbnQgbV92YWx1
ZTsKIH07CiAKK2NsYXNzIFBhaXJQb3N0SW5kZXggeworcHVibGljOgorICAgIGV4cGxpY2l0IFBh
aXJQb3N0SW5kZXgoaW50IHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUpCisgICAgewor
ICAgICAgICBBU1NFUlQoaXNJbnQxMSh2YWx1ZSkpOworICAgIH0KKworICAgIG9wZXJhdG9yIGlu
dCgpIHsgcmV0dXJuIG1fdmFsdWU7IH0KKworcHJpdmF0ZToKKyAgICBpbnQgbV92YWx1ZTsKK307
CisKK2NsYXNzIFBhaXJQcmVJbmRleCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGFpclByZUlu
ZGV4KGludCB2YWx1ZSkKKyAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzSW50MTEodmFsdWUpKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBpbnQoKSB7IHJl
dHVybiBtX3ZhbHVlOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fdmFsdWU7Cit9OworCiBjbGFz
cyBMb2dpY2FsSW1tZWRpYXRlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTG9naWNhbEltbWVkaWF0
ZSBjcmVhdGUzMih1aW50MzJfdCB2YWx1ZSkKQEAgLTgyMyw2ICs4NjMsMTYgQEAgcHJpdmF0ZToK
ICAgICAgICAgTWVtT3BfTE9BRF9zaWduZWQzMiA9IDMgLy8gc2l6ZSBtYXkgYmUgMCBvciAxCiAg
ICAgfTsKIAorICAgIGVudW0gTWVtUGFpck9wU2l6ZSB7CisgICAgICAgIE1lbVBhaXJPcF8zMiA9
IDAsCisgICAgICAgIE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyID0gMSwKKyAgICAgICAgTWVtUGFp
ck9wXzY0ID0gMiwKKworICAgICAgICBNZW1QYWlyT3BfVjMyID0gTWVtUGFpck9wXzMyLAorICAg
ICAgICBNZW1QYWlyT3BfVjY0ID0gMSwKKyAgICAgICAgTWVtUGFpck9wX1YxMjggPSAyCisgICAg
fTsKKwogICAgIGVudW0gTW92ZVdpZGVPcCB7CiAgICAgICAgIE1vdmVXaWRlT3BfTiA9IDAsCiAg
ICAgICAgIE1vdmVXaWRlT3BfWiA9IDIsCkBAIC04MzYsNiArODg2LDE0IEBAIHByaXZhdGU6CiAg
ICAgICAgIExkckxpdGVyYWxPcF8xMjhCSVQgPSAyCiAgICAgfTsKIAorICAgIHN0YXRpYyB1bnNp
Z25lZCBtZW1QYWlyT2Zmc2V0U2hpZnQoYm9vbCBWLCBNZW1QYWlyT3BTaXplIHNpemUpCisgICAg
eworICAgICAgICAvLyByZXR1cm4gdGhlIGxvZzIgb2YgdGhlIHNpemUgaW4gYnl0ZXMsIGUuZy4g
NjQgYml0IHNpemUgcmV0dXJucyAzCisgICAgICAgIGlmIChWKQorICAgICAgICAgICAgcmV0dXJu
IHNpemUgKyAyOworICAgICAgICByZXR1cm4gKHNpemUgPj4gMSkgKyAyOworICAgIH0KKwogcHVi
bGljOgogICAgIC8vIEludGVnZXIgSW5zdHJ1Y3Rpb25zOgogCkBAIC04NzEsOCArOTI5LDkgQEAg
cHVibGljOgogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhZGQoUmVnaXN0ZXJJRCByZCwgUmVnaXN0
ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSwgU2hpZnRUeXBlIHNoaWZ0LCBpbnQgYW1vdW50KQogICAg
IHsKICAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKLSAgICAgICAgaWYgKGlzU3Aocm4pKSB7Cisg
ICAgICAgIGlmIChpc1NwKHJkKSB8fCBpc1NwKHJuKSkgewogICAgICAgICAgICAgQVNTRVJUKHNo
aWZ0ID09IExTTCk7CisgICAgICAgICAgICBBU1NFUlQoIWlzU3Aocm0pKTsKICAgICAgICAgICAg
IGFkZDxkYXRhc2l6ZSwgc2V0RmxhZ3M+KHJkLCBybiwgcm0sIFVYVFgsIGFtb3VudCk7CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgaW5zbihhZGRTdWJ0cmFjdFNoaWZ0ZWRSZWdpc3RlcihE
QVRBU0laRSwgQWRkT3BfQURELCBzZXRGbGFncywgc2hpZnQsIHJtLCBhbW91bnQsIHJuLCByZCkp
OwpAQCAtMTIxNiw2ICsxMjc1LDIwIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxp
bnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGxkcChSZWdpc3RlcklEIHJ0LCBS
ZWdpc3RlcklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwgUGFpclBvc3RJbmRleCBzaW1tKQorICAgIHsK
KyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3Rl
clBhaXJQb3N0SW5kZXgoTUVNUEFJUk9QU0laRV9JTlQoZGF0YXNpemUpLCBmYWxzZSwgTWVtT3Bf
TE9BRCwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0
YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGxkcChSZWdpc3RlcklEIHJ0LCBSZWdpc3Rl
cklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwgUGFpclByZUluZGV4IHNpbW0pCisgICAgeworICAgICAg
ICBDSEVDS19EQVRBU0laRSgpOworICAgICAgICBpbnNuKGxvYWRTdG9yZVJlZ2lzdGVyUGFpclBy
ZUluZGV4KE1FTVBBSVJPUFNJWkVfSU5UKGRhdGFzaXplKSwgZmFsc2UsIE1lbU9wX0xPQUQsIHNp
bW0sIHJuLCBydCwgcnQyKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgog
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBsZHIoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwg
UmVnaXN0ZXJJRCBybSkKICAgICB7CiAgICAgICAgIGxkcjxkYXRhc2l6ZT4ocnQsIHJuLCBybSwg
VVhUWCwgMCk7CkBAIC0xNzQ4LDYgKzE4MjEsMjAgQEAgcHVibGljOgogICAgIH0KIAogICAgIHRl
bXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3RwKFJlZ2lzdGVy
SUQgcnQsIFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBQYWlyUG9zdEluZGV4IHNpbW0p
CisgICAgeworICAgICAgICBDSEVDS19EQVRBU0laRSgpOworICAgICAgICBpbnNuKGxvYWRTdG9y
ZVJlZ2lzdGVyUGFpclBvc3RJbmRleChNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSksIGZhbHNl
LCBNZW1PcF9TVE9SRSwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxpbnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIHN0cChSZWdpc3RlcklEIHJ0
LCBSZWdpc3RlcklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwgUGFpclByZUluZGV4IHNpbW0pCisgICAg
eworICAgICAgICBDSEVDS19EQVRBU0laRSgpOworICAgICAgICBpbnNuKGxvYWRTdG9yZVJlZ2lz
dGVyUGFpclByZUluZGV4KE1FTVBBSVJPUFNJWkVfSU5UKGRhdGFzaXplKSwgZmFsc2UsIE1lbU9w
X1NUT1JFLCBzaW1tLCBybiwgcnQsIHJ0MikpOworICAgIH0KKworICAgIHRlbXBsYXRlPGludCBk
YXRhc2l6ZT4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3RyKFJlZ2lzdGVySUQgcnQsIFJlZ2lz
dGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAgICBzdHI8ZGF0YXNpemU+KHJ0
LCBybiwgcm0sIFVYVFgsIDApOwpAQCAtMTg3Niw4ICsxOTYzLDkgQEAgcHVibGljOgogICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBzdWIoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0
ZXJJRCBybSwgU2hpZnRUeXBlIHNoaWZ0LCBpbnQgYW1vdW50KQogICAgIHsKICAgICAgICAgQ0hF
Q0tfREFUQVNJWkUoKTsKLSAgICAgICAgaWYgKGlzU3Aocm4pKSB7CisgICAgICAgIGlmIChpc1Nw
KHJkKSB8fCBpc1NwKHJuKSkgewogICAgICAgICAgICAgQVNTRVJUKHNoaWZ0ID09IExTTCk7Cisg
ICAgICAgICAgICBBU1NFUlQoIWlzU3Aocm0pKTsKICAgICAgICAgICAgIHN1YjxkYXRhc2l6ZSwg
c2V0RmxhZ3M+KHJkLCBybiwgcm0sIFVYVFgsIGFtb3VudCk7CiAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgaW5zbihhZGRTdWJ0cmFjdFNoaWZ0ZWRSZWdpc3RlcihEQVRBU0laRSwgQWRkT3Bf
U1VCLCBzZXRGbGFncywgc2hpZnQsIHJtLCBhbW91bnQsIHJuLCByZCkpOwpAQCAtMzM2MSw2ICsz
NDQ5LDIzIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8gJ1YnIG1lYW5zIHZlY3RvcgorICAg
IEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgo
TWVtUGFpck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGltbWVkaWF0ZSwgUmVn
aXN0ZXJJRCBybiwgRlBSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKHNpemUgPCAzKTsKKyAgICAgICAgQVNTRVJUKG9wYyA9PSAob3BjICYgMSkp
OyAvLyBPbmx5IGxvYWQgb3Igc3RvcmUsIGxvYWQgc2lnbmVkIDY0IGlzIGhhbmRsZWQgdmlhIHNp
emUuCisgICAgICAgIEFTU0VSVChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMy
KSB8fCAob3BjID09IE1lbU9wX0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9y
ZSBzaWduZWQuCisgICAgICAgIHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zm
c2V0U2hpZnQoViwgc2l6ZSk7CisgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+IGltbWVk
U2hpZnRBbW91bnQ7CisgICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9
PSBpbW1lZGlhdGUgJiYgaXNJbnQ3KGltbTcpKTsKKyAgICAgICAgcmV0dXJuICgweDI4ODAwMDAw
IHwgc2l6ZSA8PCAzMCB8IFYgPDwgMjYgfCBvcGMgPDwgMjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1
IHwgcnQyIDw8IDEwIHwgeE9yU3Aocm4pIDw8IDUgfCBydCk7CisgICAgfQorCisgICAgQUxXQVlT
X0lOTElORSBzdGF0aWMgaW50IGxvYWRTdG9yZVJlZ2lzdGVyUGFpclBvc3RJbmRleChNZW1QYWly
T3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3BjLCBpbnQgaW1tZWRpYXRlLCBSZWdpc3RlcklE
IHJuLCBSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0MikKKyAgICB7CisgICAgICAgIHJldHVy
biBsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoc2l6ZSwgViwgb3BjLCBpbW1lZGlhdGUs
IHJuLCB4T3JackFzRlBSKHJ0KSwgeE9yWnJBc0ZQUihydDIpKTsKKyAgICB9CisKKyAgICAvLyAn
VicgbWVhbnMgdmVjdG9yCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgaW50IGxvYWRTdG9yZVJl
Z2lzdGVyUHJlSW5kZXgoTWVtT3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3BjLCBpbnQgaW1t
OSwgUmVnaXN0ZXJJRCBybiwgRlBSZWdpc3RlcklEIHJ0KQogICAgIHsKICAgICAgICAgQVNTRVJU
KCEoc2l6ZSAmJiBWICYmIChvcGMgJiAyKSkpOyAvLyBNYXhpbXVtIHZlY3RvciBzaXplIGlzIDEy
OCBiaXRzLgpAQCAtMzM3NSw2ICszNDgwLDIzIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8g
J1YnIG1lYW5zIHZlY3RvcgorICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2FkU3RvcmVS
ZWdpc3RlclBhaXJQcmVJbmRleChNZW1QYWlyT3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3Bj
LCBpbnQgaW1tZWRpYXRlLCBSZWdpc3RlcklEIHJuLCBGUFJlZ2lzdGVySUQgcnQsIEZQUmVnaXN0
ZXJJRCBydDIpCisgICAgeworICAgICAgICBBU1NFUlQoc2l6ZSA8IDMpOworICAgICAgICBBU1NF
UlQob3BjID09IChvcGMgJiAxKSk7IC8vIE9ubHkgbG9hZCBvciBzdG9yZSwgbG9hZCBzaWduZWQg
NjQgaXMgaGFuZGxlZCB2aWEgc2l6ZS4KKyAgICAgICAgQVNTRVJUKFYgfHwgKHNpemUgIT0gTWVt
UGFpck9wX0xvYWRTaWduZWRfMzIpIHx8IChvcGMgPT0gTWVtT3BfTE9BRCkpOyAvLyBUaGVyZSBp
c24ndCBhbiBpbnRlZ2VyIHN0b3JlIHNpZ25lZC4KKyAgICAgICAgdW5zaWduZWQgaW1tZWRTaGlm
dEFtb3VudCA9IG1lbVBhaXJPZmZzZXRTaGlmdChWLCBzaXplKTsKKyAgICAgICAgaW50IGltbTcg
PSBpbW1lZGlhdGUgPj4gaW1tZWRTaGlmdEFtb3VudDsKKyAgICAgICAgQVNTRVJUKChpbW03IDw8
IGltbWVkU2hpZnRBbW91bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDcoaW1tNykpOworICAgICAg
ICByZXR1cm4gKDB4Mjk4MDAwMDAgfCBzaXplIDw8IDMwIHwgViA8PCAyNiB8IG9wYyA8PCAyMiB8
IChpbW03ICYgMHg3ZikgPDwgMTUgfCBydDIgPDwgMTAgfCB4T3JTcChybikgPDwgNSB8IHJ0KTsK
KyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJQ
YWlyUHJlSW5kZXgoTWVtUGFpck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGlt
bWVkaWF0ZSwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIpCisg
ICAgeworICAgICAgICByZXR1cm4gbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoc2l6ZSwg
Viwgb3BjLCBpbW1lZGlhdGUsIHJuLCB4T3JackFzRlBSKHJ0KSwgeE9yWnJBc0ZQUihydDIpKTsK
KyAgICB9CisKKyAgICAvLyAnVicgbWVhbnMgdmVjdG9yCiAgICAgLy8gJ1MnIG1lYW5zIHNoaWZ0
IHJtCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgaW50IGxvYWRTdG9yZVJlZ2lzdGVyUmVnaXN0
ZXJPZmZzZXQoTWVtT3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3BjLCBSZWdpc3RlcklEIHJt
LCBFeHRlbmRUeXBlIG9wdGlvbiwgYm9vbCBTLCBSZWdpc3RlcklEIHJuLCBGUFJlZ2lzdGVySUQg
cnQpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QVJNdjdBc3NlbWJsZXIuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02NTQsNiAr
NjU0LDggQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIGVudW0gewogICAgICAgICBPUF9CX1QxICAg
ICAgICAgPSAweEQwMDAsCiAgICAgICAgIE9QX0JfVDIgICAgICAgICA9IDB4RTAwMCwKKyAgICAg
ICAgT1BfUE9QX1QyICAgICAgID0gMHhFOEJELAorICAgICAgICBPUF9QVVNIX1QyICAgICAgPSAw
eEU5MkQsCiAgICAgICAgIE9QX0FORF9yZWdfVDIgICA9IDB4RUEwMCwKICAgICAgICAgT1BfVFNU
X3JlZ19UMiAgID0gMHhFQTEwLAogICAgICAgICBPUF9PUlJfcmVnX1QyICAgPSAweEVBNDAsCkBA
IC04OTQsNiArODk2LDExIEBAIHB1YmxpYzoKICAgICAvLyBOT1RFOiBJbiBhbiBJVCBibG9jaywg
YWRkIGRvZXNuJ3QgbW9kaWZ5IHRoZSBmbGFncyByZWdpc3Rlci4KICAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgYWRkKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAg
ICAgeworICAgICAgICBpZiAocmQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgeworICAgICAgICAgICAg
bW92KHJkLCBybik7CisgICAgICAgICAgICBybiA9IHJkOworICAgICAgICB9CisKICAgICAgICAg
aWYgKHJkID09IHJuKQogICAgICAgICAgICAgbV9mb3JtYXR0ZXIub25lV29yZE9wOFJlZ1JlZzE0
MyhPUF9BRERfcmVnX1QyLCBybSwgcmQpOwogICAgICAgICBlbHNlIGlmIChyZCA9PSBybSkKQEAg
LTE0ODgsNiArMTQ5NSwyMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRP
cDEyUmVnNEZvdXJGb3VycyhPUF9ST1JfcmVnX1QyLCBybiwgRm91ckZvdXJzKDB4ZiwgcmQsIDAs
IHJtKSk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHBvcCh1aW50MzJfdCByZWdp
c3Rlckxpc3QpCisgICAgeworICAgICAgICBBU1NFUlQoV1RGOjpiaXRDb3VudChyZWdpc3Rlckxp
c3QpID4gMSk7CisgICAgICAgIEFTU0VSVCghKCgxIDw8IEFSTVJlZ2lzdGVyczo6cGMpICYgcmVn
aXN0ZXJMaXN0KSB8fCAhKCgxIDw8IEFSTVJlZ2lzdGVyczo6bHIpICYgcmVnaXN0ZXJMaXN0KSk7
CisgICAgICAgIEFTU0VSVCghKCgxIDw8IEFSTVJlZ2lzdGVyczo6c3ApICYgcmVnaXN0ZXJMaXN0
KSk7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDE2SW1tMTYoT1BfUE9QX1QyLCByZWdp
c3Rlckxpc3QpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwdXNoKHVpbnQzMl90
IHJlZ2lzdGVyTGlzdCkKKyAgICB7CisgICAgICAgIEFTU0VSVChXVEY6OmJpdENvdW50KHJlZ2lz
dGVyTGlzdCkgPiAxKTsKKyAgICAgICAgQVNTRVJUKCEoKDEgPDwgQVJNUmVnaXN0ZXJzOjpwYykg
JiByZWdpc3Rlckxpc3QpKTsKKyAgICAgICAgQVNTRVJUKCEoKDEgPDwgQVJNUmVnaXN0ZXJzOjpz
cCkgJiByZWdpc3Rlckxpc3QpKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTZJbW0x
NihPUF9QVVNIX1QyLCByZWdpc3Rlckxpc3QpOworICAgIH0KKwogI2lmIENQVShBUFBMRV9BUk1W
N1MpCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNkaXYoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJ
RCBybiwgUmVnaXN0ZXJJRCBybSkKICAgICB7CkBAIC0yNzkxLDYgKzI4MTQsMTIgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIG1fYnVmZmVyLnB1dFNob3J0KG9wMik7CiAgICAgICAgIH0KIAorICAg
ICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdHdvV29yZE9wMTZJbW0xNihPcGNvZGVJRDEgb3AxLCB1
aW50MTZfdCBpbW0pCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fYnVmZmVyLnB1dFNob3J0KG9w
MSk7CisgICAgICAgICAgICBtX2J1ZmZlci5wdXRTaG9ydChpbW0pOworICAgICAgICB9CisgICAg
ICAgIAogICAgICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdHdvV29yZE9wNWk2SW1tNFJlZzRFbmNv
ZGVkSW1tKE9wY29kZUlEMSBvcCwgaW50IGltbTQsIFJlZ2lzdGVySUQgcmQsIEFSTVRodW1iSW1t
ZWRpYXRlIGltbSkKICAgICAgICAgewogICAgICAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgbmV3
SW1tID0gaW1tOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFj
dE1hY3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAgICAgICB7CiAgICAg
ICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlLCBvZmZzZXQgKyBhZGRpdGlvbmFsT2Zmc2V0KTsK
ICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBSZWdpc3RlcklEIGJhc2U7CiAgICAgICAg
IGludDMyX3Qgb2Zmc2V0OwogICAgIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0xpbmtCdWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI4LDEyICsyOCwyMSBAQAogCiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKIAorI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJPcHRp
b25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25UaHJlYWQu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK2Jvb2wgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5Rm9yKENv
ZGVCbG9jayogY29kZUJsb2NrKQoreworICAgIGlmIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQo
Y29kZUJsb2NrLT5qaXRUeXBlKCkpICYmIE9wdGlvbnM6OnNob3dERkdEaXNhc3NlbWJseSgpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5
KCk7Cit9CisKIExpbmtCdWZmZXI6OkNvZGVSZWYgTGlua0J1ZmZlcjo6ZmluYWxpemVDb2RlV2l0
aG91dERpc2Fzc2VtYmx5KCkKIHsKICAgICBwZXJmb3JtRmluYWxpemF0aW9uKCk7CkBAIC00Nyw4
ICs1Niw2IEBAIExpbmtCdWZmZXI6OkNvZGVSZWYgTGlua0J1ZmZlcjo6ZmluYWxpemUKIAogTGlu
a0J1ZmZlcjo6Q29kZVJlZiBMaW5rQnVmZmVyOjpmaW5hbGl6ZUNvZGVXaXRoRGlzYXNzZW1ibHko
Y29uc3QgY2hhciogZm9ybWF0LCAuLi4pCiB7Ci0gICAgQVNTRVJUKE9wdGlvbnM6OnNob3dEaXNh
c3NlbWJseSgpIHx8IE9wdGlvbnM6OnNob3dERkdEaXNhc3NlbWJseSgpKTsKLSAgICAKICAgICBD
b2RlUmVmIHJlc3VsdCA9IGZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpOwogCiAjaWYg
RU5BQkxFKERJU0FTU0VNQkxFUikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTGlua0J1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTGlua0J1ZmZlci5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTIsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDEy
LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDMsNiArNDMsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAorY2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgVk07CiAKIC8vIExpbmtCdWZmZXI6CkBAIC0xNjQs
NiArMTY1LDExIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSB1
c2VkIHRvIG9idGFpbiBoYW5kbGVzIHRvIGFsbG93IHRoZSBjb2RlIHRvIGJlIHJlbGlua2VkIC8g
cmVwYXRjaGVkIGxhdGVyLgorICAgIAorICAgIENvZGVMb2NhdGlvbkxhYmVsIGVudHJ5cG9pbnQo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIENvZGVMb2NhdGlvbkxhYmVsKGNvZGUoKSk7CisgICAg
fQogCiAgICAgQ29kZUxvY2F0aW9uQ2FsbCBsb2NhdGlvbk9mKENhbGwgY2FsbCkKICAgICB7CkBA
IC0zMDMsNiArMzA5LDExIEBAIHByaXZhdGU6CiAgICAgID8gKChsaW5rQnVmZmVyUmVmZXJlbmNl
KS5maW5hbGl6ZUNvZGVXaXRoRGlzYXNzZW1ibHkgZGF0YUxvZ0ZBcmd1bWVudHNGb3JIZWFkaW5n
KSBcCiAgICAgIDogKGxpbmtCdWZmZXJSZWZlcmVuY2UpLmZpbmFsaXplQ29kZVdpdGhvdXREaXNh
c3NlbWJseSgpKQogCitib29sIHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihDb2RlQmxvY2sqKTsK
KworI2RlZmluZSBGSU5BTElaRV9DT0RFX0ZPUihjb2RlQmxvY2ssIGxpbmtCdWZmZXJSZWZlcmVu
Y2UsIGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykgIFwKKyAgICBGSU5BTElaRV9DT0RFX0lG
KHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihjb2RlQmxvY2spLCBsaW5rQnVmZmVyUmVmZXJlbmNl
LCBkYXRhTG9nRkFyZ3VtZW50c0ZvckhlYWRpbmcpCisKIC8vIFVzZSB0aGlzIHRvIGZpbmFsaXpl
IGNvZGUsIGxpa2Ugc286CiAvLwogLy8gQ29kZVJlZiBjb2RlID0gRklOQUxJWkVfQ09ERShsaW5r
QnVmZmVyLCAoIm15IHN1cGVyIHRoaW5neSBudW1iZXIgJWQiLCBudW1iZXIpKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHJl
dmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTk1LDYgKzU5NSwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGltbSksIGFkZHJlc3MpOwogICAgIH0KIAorICAg
IHZvaWQgc3RvcmVQdHIoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Mp
CisgICAgeworICAgICAgICBzdG9yZTMyKGltbSwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9p
ZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgQmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewog
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihpbW0pLCBhZGRyZXNzKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02
NC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNNjQuaAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIwMSwxMCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZDY0KFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7
CisgICAgICAgIGlmIChzcmMgPT0gQVJNNjRSZWdpc3RlcnM6OnNwKQorICAgICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkPDY0PihkZXN0LCBzcmMsIGRlc3QpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7CiAgICAgfQogCiAgICAg
dm9pZCBhZGQ2NChUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCkBAIC0xNDM3LDYg
KzE0NDAsMTYgQEAgcHVibGljOgogICAgICAgICBDUkFTSCgpOwogICAgIH0KIAorICAgIHZvaWQg
cG9wUGFpcihSZWdpc3RlcklEIGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQorICAgIHsKKyAgICAg
ICAgbV9hc3NlbWJsZXIubGRwPDY0PihkZXN0MSwgZGVzdDIsIEFSTTY0UmVnaXN0ZXJzOjpzcCwg
UGFpclBvc3RJbmRleCgxNikpOworICAgIH0KKworICAgIHZvaWQgcHVzaFBhaXIoUmVnaXN0ZXJJ
RCBzcmMxLCBSZWdpc3RlcklEIHNyYzIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5zdHA8
NjQ+KHNyYzEsIHNyYzIsIEFSTTY0UmVnaXN0ZXJzOjpzcCwgUGFpclByZUluZGV4KC0xNikpOwor
ICAgIH0KKwogICAgIHZvaWQgcG9wVG9SZXN0b3JlKFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLmxkcjw2ND4oZGVzdCwgQVJNNjRSZWdpc3RlcnM6OnNwLCBQb3N0
SW5kZXgoMTYpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29ya2luZyBj
b3B5KQpAQCAtMTcwLDYgKzE3MCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGQzMihUcnVzdGVk
SW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAg
ICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VVSW50
MTJPckVuY29kZWRJbW0oaW1tLm1fdmFsdWUpOworCisgICAgICAgIC8vIEZvciBhZGRzIHdpdGgg
c3RhY2sgcG9pbnRlciBkZXN0aW5hdGlvbiwgbW92aW5nIHRoZSBzcmMgZmlyc3QgdG8gc3AgaXMK
KyAgICAgICAgLy8gbmVlZGVkIHRvIGF2b2lkIHVucHJlZGljdGFibGUgaW5zdHJ1Y3Rpb24KKyAg
ICAgICAgaWYgKGRlc3QgPT0gQVJNUmVnaXN0ZXJzOjpzcCAmJiBzcmMgIT0gZGVzdCkgeworICAg
ICAgICAgICAgbW92ZShzcmMsIEFSTVJlZ2lzdGVyczo6c3ApOworICAgICAgICAgICAgc3JjID0g
QVJNUmVnaXN0ZXJzOjpzcDsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxp
ZCgpKQogICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkKGRlc3QsIHNyYywgYXJtSW1tKTsKICAg
ICAgICAgZWxzZSB7CkBAIC0xMTYwLDYgKzExNjgsMTYgQEAgcHVibGljOgogICAgICAgICBwdXNo
KGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAorICAgIHZvaWQgcG9wUGFpcihSZWdpc3RlcklE
IGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucG9w
KDEgPDwgZGVzdDEgfCAxIDw8IGRlc3QyKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBwdXNoUGFp
cihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMikKKyAgICB7CisgICAgICAgIG1fYXNz
ZW1ibGVyLnB1c2goMSA8PCBzcmMxIHwgMSA8PCBzcmMyKTsKKyAgICB9CisgICAgCiAgICAgLy8g
UmVnaXN0ZXIgbW92ZSBvcGVyYXRpb25zOgogICAgIC8vCiAgICAgLy8gTW92ZSB2YWx1ZXMgaW4g
cmVnaXN0ZXJzLgpAQCAtMTI4MSwxMSArMTI5OSwxOSBAQCBwcml2YXRlOgogICAgICAgICAgICAg
bV9hc3NlbWJsZXIudHN0KHJlZywgcmVnKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBB
Uk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJ
bW0oaW1tKTsKLSAgICAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKQotICAgICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIGFybUltbSk7Ci0gICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHJl
ZyA9PSBBUk1SZWdpc3RlcnM6OnNwKSB7CisgICAgICAgICAgICAgICAgICAgIG1vdmUocmVnLCBh
ZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0
KGFkZHJlc3NUZW1wUmVnaXN0ZXIsIGFybUltbSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIGFybUltbSk7CisgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIG1vdmUobWFzaywgZGF0YVRlbXBSZWdpc3Rl
cik7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0KHJlZywgZGF0YVRlbXBSZWdpc3Rl
cik7CisgICAgICAgICAgICAgICAgaWYgKHJlZyA9PSBBUk1SZWdpc3RlcnM6OnNwKSB7CisgICAg
ICAgICAgICAgICAgICAgIG1vdmUocmVnLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0KGFkZHJlc3NUZW1wUmVnaXN0ZXIsIGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBt
X2Fzc2VtYmxlci50c3QocmVnLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkocmV2aXNpb24gMTYyOTYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAko
d29ya2luZyBjb3B5KQpAQCAtMjU0LDYgKzI1NCwxMSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
dm9pZCogdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgCisgICAgdm9pZCBk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CisgICAgeworICAgICAgICBvdXQucHJpbnQoUmF3
UG9pbnRlcihtX3ZhbHVlKSk7CisgICAgfQogCiBwcml2YXRlOgogICAgIHZvaWQqIG1fdmFsdWU7
CkBAIC0zMDksOSArMzE0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkKiBkYXRhTG9jYXRpb24oKSBj
b25zdCB7IEFTU0VSVF9WQUxJRF9DT0RFX1BPSU5URVIobV92YWx1ZSk7IHJldHVybiBtX3ZhbHVl
OyB9CiAjZW5kaWYKIAotICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QKKyAgICB0eXBlZGVmIHZv
aWQqIChNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OipVbnNwZWNpZmllZEJvb2xUeXBlKTsKKyAgICBv
cGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKigpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1
cm4gIW1fdmFsdWU7CisgICAgICAgIHJldHVybiAhIW1fdmFsdWUgPyByZWludGVycHJldF9jYXN0
PFVuc3BlY2lmaWVkQm9vbFR5cGUqPigxKSA6IDA7CiAgICAgfQogICAgIAogICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBNYWNyb0Fzc2VtYmxlckNvZGVQdHImIG90aGVyKSBjb25zdApAQCAtNDM0
LDcgKzQ0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBKU0M6OnRyeVRvRGlzYXNzZW1i
bGUobV9jb2RlUHRyLCBzaXplKCksIHByZWZpeCwgV1RGOjpkYXRhRmlsZSgpKTsKICAgICB9CiAg
ICAgCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9jb2RlUHRyOyB9Cisg
ICAgdHlwZWRlZiB2b2lkKiAoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjoqVW5zcGVjaWZpZWRCb29s
VHlwZSk7CisgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSooKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuICEhbV9jb2RlUHRyID8gcmVpbnRlcnByZXRfY2FzdDxVbnNwZWNpZmll
ZEJvb2xUeXBlKj4oMSkgOiAwOworICAgIH0KICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ2FsbExpbmtJbmZvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3
LDE1ICszNywxNSBAQCB2b2lkIENhbGxMaW5rSW5mbzo6dW5saW5rKFZNJiB2bSwgUmVwYXRjCiB7
CiAgICAgQVNTRVJUKGlzTGlua2VkKCkpOwogICAgIAorICAgIGlmIChPcHRpb25zOjpzaG93RGlz
YXNzZW1ibHkoKSkKKyAgICAgICAgZGF0YUxvZygiVW5saW5raW5nIGNhbGwgZnJvbSAiLCBjYWxs
UmV0dXJuTG9jYXRpb24sICIgdG8gIiwgcG9pbnRlckR1bXAocmVwYXRjaEJ1ZmZlci5jb2RlQmxv
Y2soKSksICJcbiIpOworCiAgICAgcmVwYXRjaEJ1ZmZlci5yZXZlcnRKdW1wUmVwbGFjZW1lbnRU
b0JyYW5jaFB0cldpdGhQYXRjaChSZXBhdGNoQnVmZmVyOjpzdGFydE9mQnJhbmNoUHRyV2l0aFBh
dGNoT25SZWdpc3Rlcihob3RQYXRoQmVnaW4pLCBzdGF0aWNfY2FzdDxNYWNyb0Fzc2VtYmxlcjo6
UmVnaXN0ZXJJRD4oY2FsbGVlR1BSKSwgMCk7Ci0gICAgaWYgKGlzREZHKSB7Ci0jaWYgRU5BQkxF
KERGR19KSVQpCi0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxSZXR1cm5Mb2NhdGlv
biwgKGNhbGxUeXBlID09IENvbnN0cnVjdCA/IHZtLmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRo
dW5rR2VuZXJhdG9yKSA6IHZtLmdldENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcikpLmNv
ZGUoKSk7Ci0jZWxzZQotICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotI2Vu
ZGlmCi0gICAgfSBlbHNlCi0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxSZXR1cm5M
b2NhdGlvbiwgY2FsbFR5cGUgPT0gQ29uc3RydWN0ID8gdm0uZ2V0Q1RJU3R1YihsaW5rQ29uc3Ry
dWN0VGh1bmtHZW5lcmF0b3IpLmNvZGUoKSA6IHZtLmdldENUSVN0dWIobGlua0NhbGxUaHVua0dl
bmVyYXRvcikuY29kZSgpKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGluaygKKyAgICAgICAgY2Fs
bFJldHVybkxvY2F0aW9uLAorICAgICAgICB2bS5nZXRDVElTdHViKGxpbmtUaHVua0dlbmVyYXRv
ckZvcigKKyAgICAgICAgICAgIGNhbGxUeXBlID09IENvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1
Y3QgOiBDb2RlRm9yQ2FsbCwKKyAgICAgICAgICAgIGlzRlRMID8gTXVzdFByZXNlcnZlUmVnaXN0
ZXJzIDogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCkpLmNvZGUoKSk7CiAgICAgaGFz
U2VlblNob3VsZFJlcGF0Y2ggPSBmYWxzZTsKICAgICBjYWxsZWUuY2xlYXIoKTsKICAgICBzdHVi
LmNsZWFyKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJ
bmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ2FsbExpbmtJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDggKzU1LDggQEAgc3Ry
dWN0IENhbGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1NlbgogICAgIH0KICAgICAgICAgCiAg
ICAgQ2FsbExpbmtJbmZvKCkKLSAgICAgICAgOiBoYXNTZWVuU2hvdWxkUmVwYXRjaChmYWxzZSkK
LSAgICAgICAgLCBpc0RGRyhmYWxzZSkKKyAgICAgICAgOiBpc0ZUTChmYWxzZSkKKyAgICAgICAg
LCBoYXNTZWVuU2hvdWxkUmVwYXRjaChmYWxzZSkKICAgICAgICAgLCBoYXNTZWVuQ2xvc3VyZShm
YWxzZSkKICAgICAgICAgLCBjYWxsVHlwZShOb25lKQogICAgIHsKQEAgLTc5LDggKzc5LDggQEAg
c3RydWN0IENhbGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1NlbgogICAgIEpJVFdyaXRlQmFy
cmllcjxKU0Z1bmN0aW9uPiBjYWxsZWU7CiAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IGxh
c3RTZWVuQ2FsbGVlOwogICAgIFJlZlB0cjxDbG9zdXJlQ2FsbFN0dWJSb3V0aW5lPiBzdHViOwor
ICAgIGJvb2wgaXNGVEwgOiAxOwogICAgIGJvb2wgaGFzU2VlblNob3VsZFJlcGF0Y2ggOiAxOwot
ICAgIGJvb2wgaXNERkcgOiAxOwogICAgIGJvb2wgaGFzU2VlbkNsb3N1cmUgOiAxOwogICAgIHVu
c2lnbmVkIGNhbGxUeXBlIDogNTsgLy8gQ2FsbFR5cGUKICAgICB1bnNpZ25lZCBjYWxsZWVHUFIg
OiA4OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExp
bmtTdGF0dXMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NiwxMyArMjYsMTcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDYWxsTGlua1N0
YXR1cy5oIgogCisjaW5jbHVkZSAiQ2FsbExpbmtJbmZvLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2Nr
LmgiCisjaW5jbHVkZSAiREZHSklUQ29kZS5oIgogI2luY2x1ZGUgIkxMSW50Q2FsbExpbmtJbmZv
LmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKKwogQ2FsbExpbmtTdGF0dXM6OkNhbGxMaW5rU3RhdHVzKEpTVmFsdWUgdmFsdWUpCiAgICAg
OiBtX2NhbGxUYXJnZXQodmFsdWUpCiAgICAgLCBtX2V4ZWN1dGFibGUoMCkKQEAgLTgxLDEyICs4
NSwyOCBAQCBJbnRyaW5zaWMgQ2FsbExpbmtTdGF0dXM6OmludHJpbnNpY0ZvcihDCiAgICAgcmV0
dXJuIG1fZXhlY3V0YWJsZS0+aW50cmluc2ljRm9yKGtpbmQpOwogfQogCi1DYWxsTGlua1N0YXR1
cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVkQmxv
Y2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpCitDYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1
czo6Y29tcHV0ZUZyb21MTEludChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIENv
ZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKIHsKICAgICBV
TlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CiAgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5k
ZXgpOwogI2lmIEVOQUJMRShMTElOVCkKKyNpZiBFTkFCTEUoREZHX0pJVCkKKyAgICBpZiAocHJv
ZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0
ZWNvZGVJbmRleCwgQmFkRnVuY3Rpb24pKSkgeworICAgICAgICAvLyBXZSBjb3VsZCBmb3JjZSB0
aGlzIHRvIGJlIGEgY2xvc3VyZSBjYWxsLCBidXQgaW5zdGVhZCB3ZSdsbCBqdXN0IGFzc3VtZSB0
aGF0IGl0CisgICAgICAgIC8vIHRha2VzIHNsb3cgcGF0aC4KKyAgICAgICAgcmV0dXJuIHRha2Vz
U2xvd1BhdGgoKTsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShsb2NrZXIpOworI2Vu
ZGlmCisKKyAgICBWTSYgdm0gPSAqcHJvZmlsZWRCbG9jay0+dm0oKTsKKyAgICAKICAgICBJbnN0
cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSBwcm9maWxlZEJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpICsgYnl0ZWNvZGVJbmRleDsKKyAgICBPcGNvZGVJRCBvcCA9IHZtLmludGVycHJldGVyLT5n
ZXRPcGNvZGVJRChpbnN0cnVjdGlvblswXS51Lm9wY29kZSk7CisgICAgaWYgKG9wICE9IG9wX2Nh
bGwgJiYgb3AgIT0gb3BfY29uc3RydWN0KQorICAgICAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXMo
KTsKKyAgICAKICAgICBMTEludENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvID0gaW5zdHJ1Y3Rp
b25bNV0udS5jYWxsTGlua0luZm87CiAgICAgCiAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKGNh
bGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuZ2V0KCkpOwpAQCAtMTAyLDI3ICsxMjIsMTIxIEBA
IENhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm8KICAgICBVTlVTRURfUEFS
QU0ocHJvZmlsZWRCbG9jayk7CiAgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwogI2lm
IEVOQUJMRShKSVQpCisgICAgaWYgKHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwg
REZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlKSkKKyAgICAgICAg
fHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNp
dGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KSkKKyAgICAgICAgfHwgcHJvZmls
ZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNv
ZGVJbmRleCwgQmFkRXhlY3V0YWJsZSkpKQorICAgICAgICByZXR1cm4gdGFrZXNTbG93UGF0aCgp
OworICAgIAogICAgIGlmICghcHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmco
KSkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0ZWNv
ZGVJbmRleCk7CisgICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50KGxvY2tlciwgcHJvZmls
ZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7CiAgICAgCiAgICAgaWYgKHByb2ZpbGVkQmxvY2stPmNv
dWxkVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpKQotICAgICAgICByZXR1cm4gQ2FsbExpbmtT
dGF0dXM6OnRha2VzU2xvd1BhdGgoKTsKKyAgICAgICAgcmV0dXJuIHRha2VzU2xvd1BhdGgoKTsK
ICAgICAKICAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IHByb2ZpbGVkQmxvY2stPmdl
dENhbGxMaW5rSW5mbyhieXRlY29kZUluZGV4KTsKKyAgICAKKyAgICBDYWxsTGlua1N0YXR1cyBy
ZXN1bHQgPSBjb21wdXRlRm9yKGxvY2tlciwgY2FsbExpbmtJbmZvKTsKKyAgICBpZiAoIXJlc3Vs
dCkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQobG9ja2VyLCBwcm9maWxlZEJsb2Nr
LCBieXRlY29kZUluZGV4KTsKKyAgICAKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+aGFzRXhpdFNp
dGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkRnVuY3Rp
b24pKSkKKyAgICAgICAgcmVzdWx0Lm1ha2VDbG9zdXJlQ2FsbCgpOworICAgIAorICAgIHJldHVy
biByZXN1bHQ7CisjZWxzZQorICAgIHJldHVybiBDYWxsTGlua1N0YXR1cygpOworI2VuZGlmCit9
CisKKyNpZiBFTkFCTEUoSklUKQorQ2FsbExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1
dGVGb3IoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJ
bmZvKQorewogICAgIGlmIChjYWxsTGlua0luZm8uc3R1YikKICAgICAgICAgcmV0dXJuIENhbGxM
aW5rU3RhdHVzKGNhbGxMaW5rSW5mby5zdHViLT5leGVjdXRhYmxlKCksIGNhbGxMaW5rSW5mby5z
dHViLT5zdHJ1Y3R1cmUoKSk7CiAgICAgCiAgICAgSlNGdW5jdGlvbiogdGFyZ2V0ID0gY2FsbExp
bmtJbmZvLmxhc3RTZWVuQ2FsbGVlLmdldCgpOwogICAgIGlmICghdGFyZ2V0KQotICAgICAgICBy
ZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KTsKKyAg
ICAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKCk7CiAgICAgCiAgICAgaWYgKGNhbGxMaW5rSW5m
by5oYXNTZWVuQ2xvc3VyZSkKICAgICAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKHRhcmdldC0+
ZXhlY3V0YWJsZSgpLCB0YXJnZXQtPnN0cnVjdHVyZSgpKTsKIAogICAgIHJldHVybiBDYWxsTGlu
a1N0YXR1cyh0YXJnZXQpOwotI2Vsc2UKLSAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXMoKTsKK30K
ICNlbmRpZgorCit2b2lkIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlREZHU3RhdHVzZXMoCisgICAg
Q29kZUJsb2NrKiBkZmdDb2RlQmxvY2ssIENhbGxMaW5rU3RhdHVzOjpDb250ZXh0TWFwJiBtYXAp
Cit7CisjaWYgRU5BQkxFKERGR19KSVQpCisgICAgUkVMRUFTRV9BU1NFUlQoZGZnQ29kZUJsb2Nr
LT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6REZHSklUKTsKKyAgICBDb2RlQmxvY2sqIGJhc2VsaW5l
Q29kZUJsb2NrID0gZGZnQ29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpOworICAgIERGRzo6SklUQ29k
ZSogaml0Q29kZSA9IGRmZ0NvZGVCbG9jay0+aml0Q29kZSgpLT5kZmcoKTsKKyAgICBSRUxFQVNF
X0FTU0VSVChkZmdDb2RlQmxvY2stPm51bWJlck9mQ2FsbExpbmtJbmZvcygpIDw9IGppdENvZGUt
PnNsb3dQYXRoQ2FsbHMuc2l6ZSgpKTsKKyAgICAKKyAgICBmb3IgKHNpemVfdCBpID0gZGZnQ29k
ZUJsb2NrLT5udW1iZXJPZkNhbGxMaW5rSW5mb3MoKTsgaS0tOykgeworICAgICAgICBDYWxsTGlu
a0luZm8mIGluZm8gPSBkZmdDb2RlQmxvY2stPmNhbGxMaW5rSW5mbyhpKTsKKyAgICAgICAgQ29k
ZU9yaWdpbiBjb2RlT3JpZ2luID0gaW5mby5jb2RlT3JpZ2luOworICAgICAgICAKKyAgICAgICAg
Ym9vbCB0YWtlU2xvd1BhdGg7CisgICAgICAgIGJvb2wgYmFkRnVuY3Rpb247CisgICAgICAgIAor
ICAgICAgICAvLyBDaGVjayBpZiB3ZSBoYWQgYWxyZWFkeSBwcmV2aW91c2x5IG1hZGUgYSB0ZXJy
aWJsZSBtaXN0YWtlIGluIHRoZSBGVEwgZm9yIHRoaXMKKyAgICAgICAgLy8gY29kZSBvcmlnaW4u
IE5vdGUgdGhhdCB0aGlzIGlzIGFwcHJveGltYXRlIGJlY2F1c2Ugd2UgY291bGQgaGF2ZSBhIG1v
bm92YXJpYW50CisgICAgICAgIC8vIGlubGluZSBpbiB0aGUgRlRMIHRoYXQgZW5kZWQgdXAgZmFp
bGluZy4gV2Ugc2hvdWxkIGZpeCB0aGF0IGF0IHNvbWUgcG9pbnQgYnkKKyAgICAgICAgLy8gaGF2
aW5nIGRhdGEgc3RydWN0dXJlcyB0byB0cmFjayB0aGUgY29udGV4dCBvZiBmcmVxdWVudCBleGl0
cy4gVGhpcyBpcyBjdXJyZW50bHkKKyAgICAgICAgLy8gY2hhbGxlbmdpbmcgYmVjYXVzZSBpdCB3
b3VsZCByZXF1aXJlIGNyZWF0aW5nIGEgQ29kZU9yaWdpbi1iYXNlZCBkYXRhYmFzZSBpbgorICAg
ICAgICAvLyBiYXNlbGluZSBDb2RlQmxvY2tzLCBidXQgdGhvc2UgQ29kZUJsb2NrcyBkb24ndCBy
ZWFsbHkgaGF2ZSBhIHBsYWNlIHRvIHB1dCB0aGUKKyAgICAgICAgLy8gSW5saW5lQ2FsbEZyYW1l
cy4KKyAgICAgICAgQ29kZUJsb2NrKiBjdXJyZW50QmFzZWxpbmUgPQorICAgICAgICAgICAgYmFz
ZWxpbmVDb2RlQmxvY2tGb3JPcmlnaW5BbmRCYXNlbGluZUNvZGVCbG9jayhjb2RlT3JpZ2luLCBi
YXNlbGluZUNvZGVCbG9jayk7CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKGN1cnJlbnRCYXNlbGluZS0+bV9sb2NrKTsKKyAgICAgICAgICAgIHRha2VT
bG93UGF0aCA9CisgICAgICAgICAgICAgICAgY3VycmVudEJhc2VsaW5lLT5oYXNFeGl0U2l0ZShs
b2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEJh
ZENhY2hlLCBFeGl0RnJvbUZUTCkpCisgICAgICAgICAgICAgICAgfHwgY3VycmVudEJhc2VsaW5l
LT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShjb2RlT3JpZ2luLmJ5
dGVjb2RlSW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCwgRXhpdEZyb21GVEwpKQorICAgICAgICAg
ICAgICAgIHx8IGN1cnJlbnRCYXNlbGluZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1
ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBCYWRFeGVjdXRhYmxlLCBFeGl0
RnJvbUZUTCkpOworICAgICAgICAgICAgYmFkRnVuY3Rpb24gPQorICAgICAgICAgICAgICAgIGN1
cnJlbnRCYXNlbGluZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUo
Y29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBCYWRGdW5jdGlvbiwgRXhpdEZyb21GVEwpKTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExv
Y2tlciBsb2NrZXIoZGZnQ29kZUJsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgaWYgKHRha2VT
bG93UGF0aCB8fCBqaXRDb2RlLT5zbG93UGF0aENhbGxzW2ldID49IE9wdGlvbnM6OmNvdWxkVGFr
ZVNsb3dDYXNlTWluaW11bUNvdW50KCkpCisgICAgICAgICAgICAgICAgbWFwLmFkZChpbmZvLmNv
ZGVPcmlnaW4sIHRha2VzU2xvd1BhdGgoKSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBDYWxsTGlua1N0YXR1cyBzdGF0dXMgPSBjb21wdXRlRm9yKGxvY2tlciwgaW5mbyk7
CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cy5pc1NldCgpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChiYWRGdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy5tYWtl
Q2xvc3VyZUNhbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgbWFwLmFkZChpbmZvLmNvZGVPcmln
aW4sIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGZnQ29kZUJsb2NrKTsKKyNlbmRpZiAv
LyBFTkFCTEUoREZHX0pJVCkKKyAgICAKKyAgICBpZiAodmVyYm9zZSkgeworICAgICAgICBkYXRh
TG9nKCJDb250ZXh0IG1hcDpcbiIpOworICAgICAgICBDb250ZXh0TWFwOjppdGVyYXRvciBpdGVy
ID0gbWFwLmJlZ2luKCk7CisgICAgICAgIENvbnRleHRNYXA6Oml0ZXJhdG9yIGVuZCA9IG1hcC5l
bmQoKTsKKyAgICAgICAgZm9yICg7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKKyAgICAgICAgICAg
IGRhdGFMb2coIiAgICAiLCBpdGVyLT5rZXksICI6XG4iKTsKKyAgICAgICAgICAgIGRhdGFMb2co
IiAgICAgICAgIiwgaXRlci0+dmFsdWUsICJcbiIpOworICAgICAgICB9CisgICAgfQorfQorCitD
YWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcigKKyAgICBDb2RlQmxvY2sq
IHByb2ZpbGVkQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgQ2FsbExpbmtTdGF0
dXM6OkNvbnRleHRNYXAmIG1hcCkKK3sKKyAgICBDb250ZXh0TWFwOjpjb25zdF9pdGVyYXRvciBp
dGVyID0gbWFwLmZpbmQoY29kZU9yaWdpbik7CisgICAgaWYgKGl0ZXIgIT0gbWFwLmVuZCgpKQor
ICAgICAgICByZXR1cm4gaXRlci0+dmFsdWU7CisgICAgCisgICAgcmV0dXJuIGNvbXB1dGVGb3Io
cHJvZmlsZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKIH0KIAogdm9pZCBDYWxs
TGlua1N0YXR1czo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw3ICsyNiw5IEBACiAjaWZuZGVmIENhbGxM
aW5rU3RhdHVzX2gKICNkZWZpbmUgQ2FsbExpbmtTdGF0dXNfaAogCisjaW5jbHVkZSAiQ29kZU9y
aWdpbi5oIgogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKKyNpbmNsdWRlICJD
b25jdXJyZW50SklUTG9jay5oIgogI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpT
Q0pTVmFsdWUuaCIKIApAQCAtMzcsNiArMzksNyBAQCBjbGFzcyBFeGVjdXRhYmxlQmFzZTsKIGNs
YXNzIEludGVybmFsRnVuY3Rpb247CiBjbGFzcyBKU0Z1bmN0aW9uOwogY2xhc3MgU3RydWN0dXJl
Oworc3RydWN0IENhbGxMaW5rSW5mbzsKIAogY2xhc3MgQ2FsbExpbmtTdGF0dXMgewogcHVibGlj
OgpAQCAtNzMsMzIgKzc2LDIyIEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiAgICAgc3RhdGljIENh
bGxMaW5rU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRl
eCk7CisKKyNpZiBFTkFCTEUoSklUKQorICAgIC8vIENvbXB1dGVzIHRoZSBzdGF0dXMgYXNzdW1p
bmcgdGhhdCB3ZSBuZXZlciB0b29rIHNsb3cgcGF0aCBhbmQgbmV2ZXIgcHJldmlvdXNseQorICAg
IC8vIGV4aXRlZC4KKyAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZvcihjb25zdCBD
b25jdXJyZW50SklUTG9ja2VyJiwgQ2FsbExpbmtJbmZvJik7CisjZW5kaWYKKyAgICAKKyAgICB0
eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgQ2FsbExpbmtTdGF0dXMsIENvZGVPcmlnaW5BcHBy
b3hpbWF0ZUhhc2g+IENvbnRleHRNYXA7CisgICAgCisgICAgLy8gQ29tcHV0ZXMgYWxsIG9mIHRo
ZSBzdGF0dXNlcyBvZiB0aGUgREZHIGNvZGUgYmxvY2suIERvZXNuJ3QgaW5jbHVkZSBzdGF0dXNl
cyB0aGF0IGhhZAorICAgIC8vIG5vIGluZm9ybWF0aW9uLiBDdXJyZW50bHkgd2UgdXNlIHRoaXMg
d2hlbiBjb21waWxpbmcgRlRMIGNvZGUsIHRvIGVuYWJsZSBwb2x5dmFyaWFudAorICAgIC8vIGlu
bGluaW5nLgorICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVERkdTdGF0dXNlcyhDb2RlQmxvY2sqIGRm
Z0NvZGVCbG9jaywgQ29udGV4dE1hcCYpOwogICAgIAotICAgIENhbGxMaW5rU3RhdHVzJiBzZXRI
YXNCYWRGdW5jdGlvbkV4aXRTaXRlKGJvb2wgZGlkSGF2ZUV4aXRTaXRlKQotICAgIHsKLSAgICAg
ICAgQVNTRVJUKCFtX2lzUHJvdmVkKTsKLSAgICAgICAgaWYgKGRpZEhhdmVFeGl0U2l0ZSkgewot
ICAgICAgICAgICAgLy8gVHVybiB0aGlzIGludG8gYSBjbG9zdXJlIGNhbGwuCi0gICAgICAgICAg
ICBtX2NhbGxUYXJnZXQgPSBKU1ZhbHVlKCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuICp0
aGlzOwotICAgIH0KLSAgICAKLSAgICBDYWxsTGlua1N0YXR1cyYgc2V0SGFzQmFkQ2FjaGVFeGl0
U2l0ZShib29sIGRpZEhhdmVFeGl0U2l0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1By
b3ZlZCk7Ci0gICAgICAgIGlmIChkaWRIYXZlRXhpdFNpdGUpCi0gICAgICAgICAgICAqdGhpcyA9
IHRha2VzU2xvd1BhdGgoKTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLSAgICAKLSAg
ICBDYWxsTGlua1N0YXR1cyYgc2V0SGFzQmFkRXhlY3V0YWJsZUV4aXRTaXRlKGJvb2wgZGlkSGF2
ZUV4aXRTaXRlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2lzUHJvdmVkKTsKLSAgICAgICAg
aWYgKGRpZEhhdmVFeGl0U2l0ZSkKLSAgICAgICAgICAgICp0aGlzID0gdGFrZXNTbG93UGF0aCgp
OwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQorICAgIC8vIEhlbHBlciB0aGF0IGZpcnN0
IGNvbnN1bHRzIHRoZSBDb250ZXh0TWFwIGFuZCB0aGVuIGRvZXMgY29tcHV0ZUZvcigpLgorICAg
IHN0YXRpYyBDYWxsTGlua1N0YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayosIENvZGVPcmlnaW4s
IGNvbnN0IENvbnRleHRNYXAmKTsKICAgICAKICAgICBib29sIGlzU2V0KCkgY29uc3QgeyByZXR1
cm4gbV9jYWxsVGFyZ2V0IHx8IG1fZXhlY3V0YWJsZSB8fCBtX2NvdWxkVGFrZVNsb3dQYXRoOyB9
CiAgICAgCkBAIC0xMTksNyArMTEyLDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mKSBjb25zdDsKICAgICAKIHByaXZhdGU6Ci0gICAgc3RhdGljIENhbGxMaW5rU3RhdHVz
IGNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7Cisg
ICAgdm9pZCBtYWtlQ2xvc3VyZUNhbGwoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX2lzUHJv
dmVkKTsKKyAgICAgICAgLy8gVHVybiB0aGlzIGludG8gYSBjbG9zdXJlIGNhbGwuCisgICAgICAg
IG1fY2FsbFRhcmdldCA9IEpTVmFsdWUoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIENhbGxM
aW5rU3RhdHVzIGNvbXB1dGVGcm9tTExJbnQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENv
ZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpOwogICAgIAogICAgIEpTVmFsdWUgbV9j
YWxsVGFyZ2V0OwogICAgIEV4ZWN1dGFibGVCYXNlKiBtX2V4ZWN1dGFibGU7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEyOSwxMCArMTI5LDE1IEBAIENTdHJpbmcgQ29kZUJsb2NrOjpzb3Vy
Y2VDb2RlT25PbmVMaW5lKCkKIAogdm9pZCBDb2RlQmxvY2s6OmR1bXBBc3N1bWluZ0pJVFR5cGUo
UHJpbnRTdHJlYW0mIG91dCwgSklUQ29kZTo6SklUVHlwZSBqaXRUeXBlKSBjb25zdAogeworICAg
IG91dC5wcmludChpbmZlcnJlZE5hbWUoKSwgIiMiKTsKICAgICBpZiAoaGFzSGFzaCgpIHx8IGlz
U2FmZVRvQ29tcHV0ZUhhc2goKSkKLSAgICAgICAgb3V0LnByaW50KGluZmVycmVkTmFtZSgpLCAi
IyIsIGhhc2goKSwgIjpbIiwgUmF3UG9pbnRlcih0aGlzKSwgIi0+IiwgUmF3UG9pbnRlcihvd25l
ckV4ZWN1dGFibGUoKSksICIsICIsIGppdFR5cGUsIGNvZGVUeXBlKCkpOworICAgICAgICBvdXQu
cHJpbnQoaGFzaCgpKTsKICAgICBlbHNlCi0gICAgICAgIG91dC5wcmludChpbmZlcnJlZE5hbWUo
KSwgIiM8bm8taGFzaD46WyIsIFJhd1BvaW50ZXIodGhpcyksICItPiIsIFJhd1BvaW50ZXIob3du
ZXJFeGVjdXRhYmxlKCkpLCAiLCAiLCBqaXRUeXBlLCBjb2RlVHlwZSgpKTsKKyAgICAgICAgb3V0
LnByaW50KCI8bm8taGFzaD4iKTsKKyAgICBvdXQucHJpbnQoIjpbIiwgUmF3UG9pbnRlcih0aGlz
KSwgIi0+Iik7CisgICAgaWYgKCEhbV9hbHRlcm5hdGl2ZSkKKyAgICAgICAgb3V0LnByaW50KFJh
d1BvaW50ZXIobV9hbHRlcm5hdGl2ZS5nZXQoKSksICItPiIpOworICAgIG91dC5wcmludChSYXdQ
b2ludGVyKG93bmVyRXhlY3V0YWJsZSgpKSwgIiwgIiwgaml0VHlwZSwgY29kZVR5cGUoKSk7CiAK
ICAgICBpZiAoY29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpCiAgICAgICAgIG91dC5wcmludChz
cGVjaWFsaXphdGlvbktpbmQoKSk7CkBAIC0xNDMsNiArMTQ4LDEwIEBAIHZvaWQgQ29kZUJsb2Nr
OjpkdW1wQXNzdW1pbmdKSVRUeXBlKFByaW4KICAgICAgICAgb3V0LnByaW50KCIgKE5ldmVySW5s
aW5lKSIpOwogICAgIGlmIChvd25lckV4ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkpCiAgICAg
ICAgIG91dC5wcmludCgiIChTdHJpY3RNb2RlKSIpOworICAgIGlmICh0aGlzLT5qaXRUeXBlKCkg
PT0gSklUQ29kZTo6QmFzZWxpbmVKSVQgJiYgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb24pCisgICAg
ICAgIG91dC5wcmludCgiIChGVExGYWlsKSIpOworICAgIGlmICh0aGlzLT5qaXRUeXBlKCkgPT0g
SklUQ29kZTo6QmFzZWxpbmVKSVQgJiYgbV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMKQorICAgICAg
ICBvdXQucHJpbnQoIiAoSGFkRlRMUmVwbGFjZW1lbnQpIik7CiAgICAgb3V0LnByaW50KCJdIik7
CiB9CiAKQEAgLTQ3NSw4ICs0ODQsOCBAQCB2b2lkIENvZGVCbG9jazo6cHJpbnRDYWxsT3AoUHJp
bnRTdHJlYW0mCiAgICAgICAgICAgICBpZiAodGFyZ2V0KQogICAgICAgICAgICAgICAgIG91dC5w
cmludGYoIiBqaXQoJXAsIGV4ZWMgJXApIiwgdGFyZ2V0LCB0YXJnZXQtPmV4ZWN1dGFibGUoKSk7
CiAgICAgICAgIH0KLSNlbmRpZgogICAgICAgICBvdXQucHJpbnQoIiBzdGF0dXMoIiwgQ2FsbExp
bmtTdGF0dXM6OmNvbXB1dGVGb3IodGhpcywgbG9jYXRpb24pLCAiKSIpOworI2VuZGlmCiAgICAg
fQogICAgICsraXQ7CiAgICAgZHVtcEFycmF5UHJvZmlsaW5nKG91dCwgaXQsIGhhc1ByaW50ZWRQ
cm9maWxpbmcpOwpAQCAtNTI2LDEyICs1MzUsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVj
b2RlKFByaW50U3RyZWFtCiAgICAgb3V0LnByaW50ZigiXG4iKTsKICAgICAKICAgICBTdHViSW5m
b01hcCBzdHViSW5mb3M7Ci0jaWYgRU5BQkxFKEpJVCkKLSAgICB7Ci0gICAgICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgICAgIGdldFN0dWJJbmZvTWFwKGxvY2tl
ciwgc3R1YkluZm9zKTsKLSAgICB9Ci0jZW5kaWYKKyAgICBnZXRTdHViSW5mb01hcChzdHViSW5m
b3MpOwogICAgIAogICAgIGNvbnN0IEluc3RydWN0aW9uKiBiZWdpbiA9IGluc3RydWN0aW9ucygp
LmJlZ2luKCk7CiAgICAgY29uc3QgSW5zdHJ1Y3Rpb24qIGVuZCA9IGluc3RydWN0aW9ucygpLmVu
ZCgpOwpAQCAtMTQ2OSw2ICsxNDczLDcgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soQ29weVBhcnNl
ZEJsb2NrVGFnLAogICAgICwgbV9pc0NvbnN0cnVjdG9yKG90aGVyLm1faXNDb25zdHJ1Y3RvcikK
ICAgICAsIG1fc2hvdWxkQWx3YXlzQmVJbmxpbmVkKHRydWUpCiAgICAgLCBtX2RpZEZhaWxGVExD
b21waWxhdGlvbihmYWxzZSkKKyAgICAsIG1faGFzQmVlbkNvbXBpbGVkV2l0aEZUTChmYWxzZSkK
ICAgICAsIG1fdW5saW5rZWRDb2RlKCpvdGhlci5tX3ZtLCBvdGhlci5tX293bmVyRXhlY3V0YWJs
ZS5nZXQoKSwgb3RoZXIubV91bmxpbmtlZENvZGUuZ2V0KCkpCiAgICAgLCBtX3N0ZXBwaW5nTW9k
ZShTdGVwcGluZ01vZGVEaXNhYmxlZCkKICAgICAsIG1fbnVtQnJlYWtwb2ludHMoMCkKQEAgLTE1
MjUsNiArMTUzMCw3IEBAIENvZGVCbG9jazo6Q29kZUJsb2NrKFNjcmlwdEV4ZWN1dGFibGUqIG8K
ICAgICAsIG1faXNDb25zdHJ1Y3Rvcih1bmxpbmtlZENvZGVCbG9jay0+aXNDb25zdHJ1Y3Rvcigp
KQogICAgICwgbV9zaG91bGRBbHdheXNCZUlubGluZWQodHJ1ZSkKICAgICAsIG1fZGlkRmFpbEZU
TENvbXBpbGF0aW9uKGZhbHNlKQorICAgICwgbV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMKGZhbHNl
KQogICAgICwgbV91bmxpbmtlZENvZGUobV9nbG9iYWxPYmplY3QtPnZtKCksIG93bmVyRXhlY3V0
YWJsZSwgdW5saW5rZWRDb2RlQmxvY2spCiAgICAgLCBtX3N0ZXBwaW5nTW9kZShTdGVwcGluZ01v
ZGVEaXNhYmxlZCkKICAgICAsIG1fbnVtQnJlYWtwb2ludHMoMCkKQEAgLTE4NTQsMjMgKzE4NjAs
MTMgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soU2NyaXB0RXhlY3V0YWJsZSogbwogCiAgICAgLy8g
SWYgdGhlIGNvbmN1cnJlbnQgdGhyZWFkIHdpbGwgd2FudCB0aGUgY29kZSBibG9jaydzIGhhc2gs
IHRoZW4gY29tcHV0ZSBpdCBoZXJlCiAgICAgLy8gc3luY2hyb25vdXNseS4KLSAgICBpZiAoT3B0
aW9uczo6c2hvd0Rpc2Fzc2VtYmx5KCkKLSAgICAgICAgfHwgT3B0aW9uczo6c2hvd0RGR0Rpc2Fz
c2VtYmx5KCkKLSAgICAgICAgfHwgT3B0aW9uczo6ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCkKLSAg
ICAgICAgfHwgT3B0aW9uczo6ZHVtcEdyYXBoQXRFYWNoUGhhc2UoKQotICAgICAgICB8fCBPcHRp
b25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKQotICAgICAgICB8fCBPcHRpb25zOjpsb2dDb21waWxh
dGlvbkNoYW5nZXMoKQotICAgICAgICB8fCBPcHRpb25zOjp2YWxpZGF0ZUdyYXBoKCkKLSAgICAg
ICAgfHwgT3B0aW9uczo6dmFsaWRhdGVHcmFwaEF0RWFjaFBoYXNlKCkKLSAgICAgICAgfHwgT3B0
aW9uczo6dmVyYm9zZU9TUigpCi0gICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlv
blF1ZXVlKCkKLSAgICAgICAgfHwgT3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkKLSAgICAg
ICAgfHwgT3B0aW9uczo6dmVyYm9zZUNGQSgpKQorICAgIGlmIChPcHRpb25zOjphbHdheXNDb21w
dXRlSGFzaCgpKQogICAgICAgICBoYXNoKCk7CiAKICAgICBpZiAoT3B0aW9uczo6ZHVtcEdlbmVy
YXRlZEJ5dGVjb2RlcygpKQogICAgICAgICBkdW1wQnl0ZWNvZGUoKTsKIAorICAgIAogICAgIG1f
aGVhcC0+bV9jb2RlQmxvY2tzLmFkZCh0aGlzKTsKICAgICBtX2hlYXAtPnJlcG9ydEV4dHJhTWVt
b3J5Q29zdChzaXplb2YoQ29kZUJsb2NrKSArIG1faW5zdHJ1Y3Rpb25zLnNpemUoKSAqIHNpemVv
ZihJbnN0cnVjdGlvbikpOwogfQpAQCAtMjMzNCwxNiArMjMzMCwyNiBAQCB2b2lkIENvZGVCbG9j
azo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoCiAjZW5kaWYKIH0KIAordm9pZCBDb2RlQmxvY2s6
OmdldFN0dWJJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01hcCYg
cmVzdWx0KQorewogI2lmIEVOQUJMRShKSVQpCi1TdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2Nr
OjphZGRTdHViSW5mbygpCisgICAgdG9IYXNoTWFwKG1fc3R1YkluZm9zLCBnZXRTdHJ1Y3R1cmVT
dHViSW5mb0NvZGVPcmlnaW4sIHJlc3VsdCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXN1
bHQpOworI2VuZGlmCit9CisKK3ZvaWQgQ29kZUJsb2NrOjpnZXRTdHViSW5mb01hcChTdHViSW5m
b01hcCYgcmVzdWx0KQogewogICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7
Ci0gICAgcmV0dXJuIG1fc3R1YkluZm9zLmFkZCgpOworICAgIGdldFN0dWJJbmZvTWFwKGxvY2tl
ciwgcmVzdWx0KTsKIH0KIAotdm9pZCBDb2RlQmxvY2s6OmdldFN0dWJJbmZvTWFwKGNvbnN0IENv
bmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01hcCYgcmVzdWx0KQorI2lmIEVOQUJMRShKSVQp
CitTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRTdHViSW5mbygpCiB7Ci0gICAgdG9I
YXNoTWFwKG1fc3R1YkluZm9zLCBnZXRTdHJ1Y3R1cmVTdHViSW5mb0NvZGVPcmlnaW4sIHJlc3Vs
dCk7CisgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICByZXR1cm4g
bV9zdHViSW5mb3MuYWRkKCk7CiB9CiAKIHZvaWQgQ29kZUJsb2NrOjpyZXNldFN0dWIoU3RydWN0
dXJlU3R1YkluZm8mIHN0dWJJbmZvKQpAQCAtMjg5OSw2ICsyOTA1LDExIEBAIHZvaWQgQ29kZUJs
b2NrOjpjb3VudFJlb3B0aW1pemF0aW9uKCkKIHVuc2lnbmVkIENvZGVCbG9jazo6bnVtYmVyT2ZE
RkdDb21waWxlcygpCiB7CiAgICAgQVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5
cGUoKSkpOworICAgIGlmIChPcHRpb25zOjp0ZXN0VGhlRlRMKCkpIHsKKyAgICAgICAgaWYgKG1f
ZGlkRmFpbEZUTENvbXBpbGF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIDEwMDAwMDA7CisgICAg
ICAgIHJldHVybiAobV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMID8gMSA6IDApICsgbV9yZW9wdGlt
aXphdGlvblJldHJ5Q291bnRlcjsKKyAgICB9CiAgICAgcmV0dXJuIChKSVRDb2RlOjppc09wdGlt
aXppbmdKSVQocmVwbGFjZW1lbnQoKS0+aml0VHlwZSgpKSA/IDEgOiAwKSArIG1fcmVvcHRpbWl6
YXRpb25SZXRyeUNvdW50ZXI7CiB9CiAKQEAgLTMwMTAsNyArMzAyMSw3IEBAIGludDMyX3QgQ29k
ZUJsb2NrOjphZGp1c3RlZENvdW50ZXJWYWx1ZSgKIGJvb2wgQ29kZUJsb2NrOjpjaGVja0lmT3B0
aW1pemF0aW9uVGhyZXNob2xkUmVhY2hlZCgpCiB7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAg
aWYgKERGRzo6V29ya2xpc3QqIHdvcmtsaXN0ID0gbV92bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAg
ICBpZiAoREZHOjpXb3JrbGlzdCogd29ya2xpc3QgPSBERkc6OmV4aXN0aW5nR2xvYmFsREZHV29y
a2xpc3RPck51bGwoKSkgewogICAgICAgICBpZiAod29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUo
REZHOjpDb21waWxhdGlvbktleSh0aGlzLCBERkc6OkRGR01vZGUpKQogICAgICAgICAgICAgPT0g
REZHOjpXb3JrbGlzdDo6Q29tcGlsZWQpIHsKICAgICAgICAgICAgIG9wdGltaXplTmV4dEludm9j
YXRpb24oKTsKQEAgLTMzNDEsNiArMzM1MiwxMSBAQCB1bnNpZ25lZCBDb2RlQmxvY2s6OmZyYW1l
UmVnaXN0ZXJDb3VudCgpCiAgICAgfQogfQogCitpbnQgQ29kZUJsb2NrOjpzdGFja1BvaW50ZXJP
ZmZzZXQoKQoreworICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lz
dGVyQ291bnQoKSAtIDEpLm9mZnNldCgpOworfQorCiBzaXplX3QgQ29kZUJsb2NrOjpwcmVkaWN0
ZWRNYWNoaW5lQ29kZVNpemUoKQogewogICAgIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgZnJvbSBD
b2RlQmxvY2s6OkNvZGVCbG9jayBiZWZvcmUgZWl0aGVyIG1fdm0gb3IgdGhlCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAxNjI5NjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE3NSw2ICsxNzUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBleHByZXNzaW9uUmFu
Z2VGb3JCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBieXRlY29kZU9mZnNldCwgaW50JiBkaXZvdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgc3RhcnRPZmZz
ZXQsIGludCYgZW5kT2Zmc2V0LCB1bnNpZ25lZCYgbGluZSwgdW5zaWduZWQmIGNvbHVtbik7CiAK
KyAgICB2b2lkIGdldFN0dWJJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHVi
SW5mb01hcCYgcmVzdWx0KTsKKyAgICB2b2lkIGdldFN0dWJJbmZvTWFwKFN0dWJJbmZvTWFwJiBy
ZXN1bHQpOworCiAjaWYgRU5BQkxFKEpJVCkKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1
YkluZm8oKTsKICAgICBCYWc8U3RydWN0dXJlU3R1YkluZm8+OjppdGVyYXRvciBiZWdpbigpIHsg
cmV0dXJuIG1fc3R1YkluZm9zLmJlZ2luKCk7IH0KQEAgLTE4Miw4ICsxODUsNiBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHJlc2V0U3R1YihTdHJ1Y3R1cmVTdHViSW5mbyYpOwogICAgIAotICAgIHZv
aWQgZ2V0U3R1YkluZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIFN0dWJJbmZvTWFw
JiByZXN1bHQpOwotCiAgICAgQnlWYWxJbmZvJiBnZXRCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNv
ZGVJbmRleCkKICAgICB7CiAgICAgICAgIHJldHVybiAqKGJpbmFyeVNlYXJjaDxCeVZhbEluZm8s
IHVuc2lnbmVkPihtX2J5VmFsSW5mb3MsIG1fYnlWYWxJbmZvcy5zaXplKCksIGJ5dGVjb2RlSW5k
ZXgsIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgpKTsKQEAgLTI1NiwxNyArMjU3LDE1IEBAIHB1
YmxpYzoKICAgICAvLyBFeGFjdGx5IGVxdWl2YWxlbnQgdG8gY29kZUJsb2NrLT5vd25lckV4ZWN1
dGFibGUoKS0+bmV3UmVwbGFjZW1lbnRDb2RlQmxvY2tGb3IoY29kZUJsb2NrLT5zcGVjaWFsaXph
dGlvbktpbmQoKSkKICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gbmV3UmVwbGFjZW1lbnQoKTsK
ICAgICAKLSAgICB2b2lkIHNldEpJVENvZGUoUGFzc1JlZlB0cjxKSVRDb2RlPiBjb2RlLCBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY29kZVdpdGhBcml0eUNoZWNrKQorICAgIHZvaWQgc2V0SklUQ29k
ZShQYXNzUmVmUHRyPEpJVENvZGU+IGNvZGUpCiAgICAgewogICAgICAgICBBU1NFUlQobV9oZWFw
LT5pc0RlZmVycmVkKCkpOwogICAgICAgICBtX2hlYXAtPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChj
b2RlLT5zaXplKCkpOwogICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2sp
OwogICAgICAgICBXVEY6OnN0b3JlU3RvcmVGZW5jZSgpOyAvLyBUaGlzIGlzIHByb2JhYmx5IG5v
dCBuZWVkZWQgYmVjYXVzZSB0aGUgbG9jayB3aWxsIGFsc28gZG8gc29tZXRoaW5nIHNpbWlsYXIs
IGJ1dCBpdCdzIGdvb2QgdG8gYmUgcGFyYW5vaWQuCiAgICAgICAgIG1faml0Q29kZSA9IGNvZGU7
Ci0gICAgICAgIG1faml0Q29kZVdpdGhBcml0eUNoZWNrID0gY29kZVdpdGhBcml0eUNoZWNrOwog
ICAgIH0KICAgICBQYXNzUmVmUHRyPEpJVENvZGU+IGppdENvZGUoKSB7IHJldHVybiBtX2ppdENv
ZGU7IH0KLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgaml0Q29kZVdpdGhBcml0eUNoZWNrKCkg
eyByZXR1cm4gbV9qaXRDb2RlV2l0aEFyaXR5Q2hlY2s7IH0KICAgICBKSVRDb2RlOjpKSVRUeXBl
IGppdFR5cGUoKSBjb25zdAogICAgIHsKICAgICAgICAgSklUQ29kZSogaml0Q29kZSA9IG1faml0
Q29kZS5nZXQoKTsKQEAgLTQ4OSw4ICs0ODgsOCBAQCBwdWJsaWM6CiAgICAgUmFyZUNhc2VQcm9m
aWxlKiBzcGVjaWFsRmFzdENhc2VQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2Rl
T2Zmc2V0KQogICAgIHsKICAgICAgICAgcmV0dXJuIHRyeUJpbmFyeVNlYXJjaDxSYXJlQ2FzZVBy
b2ZpbGUsIGludD4oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fc3BlY2lhbEZhc3RDYXNlUHJvZmlsZXMsIG1fc3BlY2lhbEZhc3RDYXNlUHJv
ZmlsZXMuc2l6ZSgpLCBieXRlY29kZU9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZz
ZXQpOworICAgICAgICAgICAgbV9zcGVjaWFsRmFzdENhc2VQcm9maWxlcywgbV9zcGVjaWFsRmFz
dENhc2VQcm9maWxlcy5zaXplKCksIGJ5dGVjb2RlT2Zmc2V0LAorICAgICAgICAgICAgZ2V0UmFy
ZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQpOwogICAgIH0KIAogICAgIGJvb2wgbGlrZWx5VG9U
YWtlU3BlY2lhbEZhc3RDYXNlKGludCBieXRlY29kZU9mZnNldCkKQEAgLTU3NiwxMSArNTc1LDE1
IEBAIHB1YmxpYzoKICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsK
ICAgICAgICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUuYWRkKGxvY2tlciwgc2l0ZSk7CiAgICAgfQot
ICAgICAgICAKKworICAgIGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYgbG9ja2VyLCBjb25zdCBERkc6OkZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShsb2NrZXIsIHNpdGUp
OworICAgIH0KICAgICBib29sIGhhc0V4aXRTaXRlKGNvbnN0IERGRzo6RnJlcXVlbnRFeGl0U2l0
ZSYgc2l0ZSkgY29uc3QKICAgICB7CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2Vy
KG1fbG9jayk7Ci0gICAgICAgIHJldHVybiBtX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKGxvY2tl
ciwgc2l0ZSk7CisgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShsb2NrZXIsIHNpdGUpOwogICAg
IH0KIAogICAgIERGRzo6RXhpdFByb2ZpbGUmIGV4aXRQcm9maWxlKCkgeyByZXR1cm4gbV9leGl0
UHJvZmlsZTsgfQpAQCAtNTg5LDExICs1OTIsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBy
ZXR1cm4gbV9sYXp5T3BlcmFuZFZhbHVlUHJvZmlsZXM7CiAgICAgfQotI2Vsc2UgLy8gRU5BQkxF
KERGR19KSVQpCi0gICAgYm9vbCBhZGRGcmVxdWVudEV4aXRTaXRlKGNvbnN0IERGRzo6RnJlcXVl
bnRFeGl0U2l0ZSYpCi0gICAgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQogI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQogCiAgICAgLy8gQ29uc3RhbnQgUG9vbApAQCAtNjc5LDkgKzY3
NywxOSBAQCBwdWJsaWM6CiAKICAgICBCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXMmIGxpdmVuZXNz
QW5hbHlzaXMoKQogICAgIHsKLSAgICAgICAgaWYgKCFtX2xpdmVuZXNzQW5hbHlzaXMpCi0gICAg
ICAgICAgICBtX2xpdmVuZXNzQW5hbHlzaXMgPSBzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVjb2RlTGl2
ZW5lc3NBbmFseXNpcz4odGhpcyk7Ci0gICAgICAgIHJldHVybiAqbV9saXZlbmVzc0FuYWx5c2lz
OworICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xv
Y2spOworICAgICAgICAgICAgaWYgKCEhbV9saXZlbmVzc0FuYWx5c2lzKQorICAgICAgICAgICAg
ICAgIHJldHVybiAqbV9saXZlbmVzc0FuYWx5c2lzOworICAgICAgICB9CisgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXM+IGFuYWx5c2lzID0KKyAgICAgICAg
ICAgIHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzPih0aGlzKTsKKyAg
ICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsK
KyAgICAgICAgICAgIGlmICghbV9saXZlbmVzc0FuYWx5c2lzKQorICAgICAgICAgICAgICAgIG1f
bGl2ZW5lc3NBbmFseXNpcyA9IHN0ZDo6bW92ZShhbmFseXNpcyk7CisgICAgICAgICAgICByZXR1
cm4gKm1fbGl2ZW5lc3NBbmFseXNpczsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICB2b2lk
IHZhbGlkYXRlKCk7CkBAIC04NjYsNiArODc0LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRl
QWxsUHJlZGljdGlvbnMoKTsKIAogICAgIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudCgpOwor
ICAgIGludCBzdGFja1BvaW50ZXJPZmZzZXQoKTsKIAogICAgIGJvb2wgaGFzT3BEZWJ1Z0Zvckxp
bmVBbmRDb2x1bW4odW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKTsKIApAQCAtODkxLDcg
KzkwMCw3IEBAIHB1YmxpYzoKIAogICAgIGludCBtX251bUNhbGxlZVJlZ2lzdGVyczsKICAgICBp
bnQgbV9udW1WYXJzOwotICAgIGJvb2wgbV9pc0NvbnN0cnVjdG9yOworICAgIGJvb2wgbV9pc0Nv
bnN0cnVjdG9yIDogMTsKICAgICAKICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgcHVibGlj
OyBpdCdzIHRoZSByZXNwb25zaWJpbGl0eSBvZiBhbnlvbmUgZG9pbmcgYW55CiAgICAgLy8gb2Yg
dGhlIGZvbGxvd2luZyB0byBob2xkIHRoZSBsb2NrOgpAQCAtOTExLDEwICs5MjAsMTEgQEAgcHVi
bGljOgogICAgIC8vIGNvbmN1cnJlbnQgY29tcGlsYXRpb24gdGhyZWFkcyBmaW5pc2ggd2hhdCB0
aGV5J3JlIGRvaW5nLgogICAgIG11dGFibGUgQ29uY3VycmVudEpJVExvY2sgbV9sb2NrOwogICAg
IAotICAgIGJvb2wgbV9zaG91bGRBbHdheXNCZUlubGluZWQ7Ci0gICAgYm9vbCBtX2FsbFRyYW5z
aXRpb25zSGF2ZUJlZW5NYXJrZWQ7IC8vIEluaXRpYWxpemVkIGFuZCB1c2VkIG9uIGV2ZXJ5IEdD
LgorICAgIGJvb2wgbV9zaG91bGRBbHdheXNCZUlubGluZWQ7IC8vIE5vdCBhIGJpdGZpZWxkIGJl
Y2F1c2UgdGhlIEpJVCB3YW50cyB0byBzdG9yZSB0byBpdC4KKyAgICBib29sIG1fYWxsVHJhbnNp
dGlvbnNIYXZlQmVlbk1hcmtlZCA6IDE7IC8vIEluaXRpYWxpemVkIGFuZCB1c2VkIG9uIGV2ZXJ5
IEdDLgogICAgIAotICAgIGJvb2wgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb247CisgICAgYm9vbCBt
X2RpZEZhaWxGVExDb21waWxhdGlvbiA6IDE7CisgICAgYm9vbCBtX2hhc0JlZW5Db21waWxlZFdp
dGhGVEwgOiAxOwogCiAgICAgLy8gSW50ZXJuYWwgbWV0aG9kcyBmb3IgdXNlIGJ5IHZhbGlkYXRp
b24gY29kZS4gSXQgd291bGQgYmUgcHJpdmF0ZSBpZiBpdCB3YXNuJ3QKICAgICAvLyBmb3IgdGhl
IGZhY3QgdGhhdCB3ZSB1c2UgaXQgZnJvbSBhbm9ueW1vdXMgbmFtZXNwYWNlcy4KQEAgLTEwNTQs
NyArMTA2NCw2IEBAIHByaXZhdGU6CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PExMSW50Q2FsbExp
bmtJbmZvLCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxMTEludENhbGxMaW5rSW5mbz4+IG1faW5jb21p
bmdMTEludENhbGxzOwogI2VuZGlmCiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29kZTsKLSAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlV2l0aEFyaXR5Q2hlY2s7CiAjaWYgRU5B
QkxFKEpJVCkKICAgICBCYWc8U3RydWN0dXJlU3R1YkluZm8+IG1fc3R1YkluZm9zOwogICAgIFZl
Y3RvcjxCeVZhbEluZm8+IG1fYnlWYWxJbmZvczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlT3JpZ2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDUsNyArNDUsNjQgQEAgdW5zaWduZWQgQ29kZU9yaWdpbjo6aW5saW5lRGVwdGgoKSBjb25z
dAogewogICAgIHJldHVybiBpbmxpbmVEZXB0aEZvckNhbGxGcmFtZShpbmxpbmVDYWxsRnJhbWUp
OwogfQorCitib29sIENvZGVPcmlnaW46OmlzQXBwcm94aW1hdGVseUVxdWFsVG8oY29uc3QgQ29k
ZU9yaWdpbiYgb3RoZXIpIGNvbnN0Cit7CisgICAgQ29kZU9yaWdpbiBhID0gKnRoaXM7CisgICAg
Q29kZU9yaWdpbiBiID0gb3RoZXI7CisKKyAgICBpZiAoIWEuaXNTZXQoKSkKKyAgICAgICAgcmV0
dXJuICFiLmlzU2V0KCk7CisgICAgaWYgKCFiLmlzU2V0KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICBpZiAoYS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKQorICAgICAgICBy
ZXR1cm4gYi5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgIGlmIChiLmlzSGFzaFRhYmxl
RGVsZXRlZFZhbHVlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBmb3IgKDs7
KSB7CisgICAgICAgIEFTU0VSVChhLmlzU2V0KCkpOworICAgICAgICBBU1NFUlQoYi5pc1NldCgp
KTsKKyAgICAgICAgCisgICAgICAgIGlmIChhLmJ5dGVjb2RlSW5kZXggIT0gYi5ieXRlY29kZUlu
ZGV4KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYgKCgh
IWEuaW5saW5lQ2FsbEZyYW1lKSAhPSAoISFiLmlubGluZUNhbGxGcmFtZSkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAoIWEuaW5saW5lQ2FsbEZyYW1l
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIAorICAgICAgICBpZiAoYS5pbmxp
bmVDYWxsRnJhbWUtPmV4ZWN1dGFibGUgIT0gYi5pbmxpbmVDYWxsRnJhbWUtPmV4ZWN1dGFibGUp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBhID0gYS5pbmxp
bmVDYWxsRnJhbWUtPmNhbGxlcjsKKyAgICAgICAgYiA9IGIuaW5saW5lQ2FsbEZyYW1lLT5jYWxs
ZXI7CisgICAgfQorfQorCit1bnNpZ25lZCBDb2RlT3JpZ2luOjphcHByb3hpbWF0ZUhhc2goKSBj
b25zdAoreworICAgIGlmICghaXNTZXQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKGlz
SGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisgICAgICAgIHJldHVybiAxOwogICAgIAorICAgIHVu
c2lnbmVkIHJlc3VsdCA9IDI7CisgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gKnRoaXM7Cisg
ICAgZm9yICg7OykgeworICAgICAgICByZXN1bHQgKz0gY29kZU9yaWdpbi5ieXRlY29kZUluZGV4
OworICAgICAgICAKKyAgICAgICAgaWYgKCFjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSkKKyAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIAorICAgICAgICByZXN1bHQgKz0gV1RG
OjpQdHJIYXNoPEpTQ2VsbCo+OjpoYXNoKGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5leGVj
dXRhYmxlLmdldCgpKTsKKyAgICAgICAgCisgICAgICAgIGNvZGVPcmlnaW4gPSBjb2RlT3JpZ2lu
LmlubGluZUNhbGxGcmFtZS0+Y2FsbGVyOworICAgIH0KK30KKwogVmVjdG9yPENvZGVPcmlnaW4+
IENvZGVPcmlnaW46OmlubGluZVN0YWNrKCkgY29uc3QKIHsKICAgICBWZWN0b3I8Q29kZU9yaWdp
bj4gcmVzdWx0KGlubGluZURlcHRoKCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZU9yaWdpbi5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2
Myw3IEBAIHN0cnVjdCBDb2RlT3JpZ2luIHsKICAgICAKICAgICBDb2RlT3JpZ2luKFdURjo6SGFz
aFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKICAgICAgICAgOiBieXRlY29kZUluZGV4KGludmFsaWRC
eXRlY29kZUluZGV4KQotICAgICAgICAsIGlubGluZUNhbGxGcmFtZShiaXR3aXNlX2Nhc3Q8SW5s
aW5lQ2FsbEZyYW1lKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigxKSkpCisgICAgICAgICwgaW5s
aW5lQ2FsbEZyYW1lKGRlbGV0ZWRNYXJrZXIoKSkKICAgICB7CiAgICAgfQogICAgIApAQCAtOTcs
MTUgKzk3LDI3IEBAIHN0cnVjdCBDb2RlT3JpZ2luIHsKICAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgQ29kZU9yaWdpbiYgb3RoZXIpIGNvbnN0OwogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBD
b2RlT3JpZ2luJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KICAg
ICAKKyAgICAvLyBUaGlzIGNoZWNrcyBpZiB0aGUgdHdvIGNvZGUgb3JpZ2lucyBjb3JyZXNwb25k
IHRvIHRoZSBzYW1lIHN0YWNrIHRyYWNlIHNuaXBwZXRzLAorICAgIC8vIGJ1dCBpZ25vcmUgd2hl
dGhlciB0aGUgSW5saW5lQ2FsbEZyYW1lJ3MgYXJlIGlkZW50aWNhbC4KKyAgICBib29sIGlzQXBw
cm94aW1hdGVseUVxdWFsVG8oY29uc3QgQ29kZU9yaWdpbiYgb3RoZXIpIGNvbnN0OworICAgIAor
ICAgIHVuc2lnbmVkIGFwcHJveGltYXRlSGFzaCgpIGNvbnN0OworICAgIAogICAgIC8vIEdldCB0
aGUgaW5saW5lIHN0YWNrLiBUaGlzIGlzIHNsb3csIGFuZCBpcyBpbnRlbmRlZCBmb3IgZGVidWdn
aW5nIG9ubHkuCiAgICAgVmVjdG9yPENvZGVPcmlnaW4+IGlubGluZVN0YWNrKCkgY29uc3Q7CiAg
ICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkdW1wSW5D
b250ZXh0KFByaW50U3RyZWFtJiwgRHVtcENvbnRleHQqKSBjb25zdDsKKworcHJpdmF0ZToKKyAg
ICBzdGF0aWMgSW5saW5lQ2FsbEZyYW1lKiBkZWxldGVkTWFya2VyKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5saW5lQ2FsbEZyYW1lKj4oc3RhdGljX2Nhc3Q8dWludHB0
cl90PigxKSk7CisgICAgfQogfTsKIAogc3RydWN0IElubGluZUNhbGxGcmFtZSB7Ci0gICAgVmVj
dG9yPFZhbHVlUmVjb3Zlcnk+IGFyZ3VtZW50czsKKyAgICBWZWN0b3I8VmFsdWVSZWNvdmVyeT4g
YXJndW1lbnRzOyAvLyBJbmNsdWRlcyAndGhpcycuCiAgICAgV3JpdGVCYXJyaWVyPFNjcmlwdEV4
ZWN1dGFibGU+IGV4ZWN1dGFibGU7CiAgICAgVmFsdWVSZWNvdmVyeSBjYWxsZWVSZWNvdmVyeTsK
ICAgICBDb2RlT3JpZ2luIGNhbGxlcjsKQEAgLTE4NSw2ICsxOTcsMTIgQEAgc3RydWN0IENvZGVP
cmlnaW5IYXNoIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9y
RGVsZXRlZCA9IHRydWU7CiB9OwogCitzdHJ1Y3QgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaCB7
CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgQ29kZU9yaWdpbiYga2V5KSB7IHJldHVy
biBrZXkuYXBwcm94aW1hdGVIYXNoKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBD
b2RlT3JpZ2luJiBhLCBjb25zdCBDb2RlT3JpZ2luJiBiKSB7IHJldHVybiBhLmlzQXBwcm94aW1h
dGVseUVxdWFsVG8oYik7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNw
YWNlIFdURiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFBy
b2ZpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9E
RkdFeGl0UHJvZmlsZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYg
KzM3LDggQEAgRXhpdFByb2ZpbGU6On5FeGl0UHJvZmlsZSgpIHsgfQogCiBib29sIEV4aXRQcm9m
aWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNp
dGUmIHNpdGUpCiB7CisgICAgQVNTRVJUKHNpdGUuaml0VHlwZSgpICE9IEV4aXRGcm9tQW55dGhp
bmcpOworICAgIAogICAgIC8vIElmIHdlJ3ZlIG5ldmVyIHNlZW4gYW55IGZyZXF1ZW50IGV4aXRz
IHRoZW4gY3JlYXRlIHRoZSBsaXN0IGFuZCBwdXQgdGhpcyBzaXRlCiAgICAgLy8gaW50byBpdC4K
ICAgICBpZiAoIW1fZnJlcXVlbnRFeGl0U2l0ZXMpIHsKQEAgLTc4LDcgKzgwLDcgQEAgYm9vbCBF
eGl0UHJvZmlsZTo6aGFzRXhpdFNpdGUoY29uc3QgQ29uYwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9mcmVxdWVudEV4aXRTaXRlcy0+c2l6ZSgp
OyBpLS07KSB7Ci0gICAgICAgIGlmIChtX2ZyZXF1ZW50RXhpdFNpdGVzLT5hdChpKSA9PSBzaXRl
KQorICAgICAgICBpZiAoc2l0ZS5zdWJzdW1lcyhtX2ZyZXF1ZW50RXhpdFNpdGVzLT5hdChpKSkp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgJ
KHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdF
eGl0UHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw4
ICsyNiwxMSBAQAogI2lmbmRlZiBERkdFeGl0UHJvZmlsZV9oCiAjZGVmaW5lIERGR0V4aXRQcm9m
aWxlX2gKIAorI2lmIEVOQUJMRShERkdfSklUKQorCiAjaW5jbHVkZSAiQ29uY3VycmVudEpJVExv
Y2suaCIKICNpbmNsdWRlICJFeGl0S2luZC5oIgorI2luY2x1ZGUgIkV4aXRpbmdKSVRUeXBlLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzksMTggKzQyLDIxIEBAIHB1YmxpYzoKICAgICBGcmVx
dWVudEV4aXRTaXRlKCkKICAgICAgICAgOiBtX2J5dGVjb2RlT2Zmc2V0KDApIC8vIDAgPSBlbXB0
eSB2YWx1ZQogICAgICAgICAsIG1fa2luZChFeGl0S2luZFVuc2V0KQorICAgICAgICAsIG1faml0
VHlwZShFeGl0RnJvbUFueXRoaW5nKQogICAgIHsKICAgICB9CiAgICAgCiAgICAgRnJlcXVlbnRF
eGl0U2l0ZShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCiAgICAgICAgIDogbV9ieXRl
Y29kZU9mZnNldCgxKSAvLyAxID0gZGVsZXRlZCB2YWx1ZQogICAgICAgICAsIG1fa2luZChFeGl0
S2luZFVuc2V0KQorICAgICAgICAsIG1faml0VHlwZShFeGl0RnJvbUFueXRoaW5nKQogICAgIHsK
ICAgICB9CiAgICAgCi0gICAgZXhwbGljaXQgRnJlcXVlbnRFeGl0U2l0ZSh1bnNpZ25lZCBieXRl
Y29kZU9mZnNldCwgRXhpdEtpbmQga2luZCkKKyAgICBleHBsaWNpdCBGcmVxdWVudEV4aXRTaXRl
KHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LCBFeGl0S2luZCBraW5kLCBFeGl0aW5nSklUVHlwZSBq
aXRUeXBlID0gRXhpdEZyb21Bbnl0aGluZykKICAgICAgICAgOiBtX2J5dGVjb2RlT2Zmc2V0KGJ5
dGVjb2RlT2Zmc2V0KQogICAgICAgICAsIG1fa2luZChraW5kKQorICAgICAgICAsIG1faml0VHlw
ZShqaXRUeXBlKQogICAgIHsKICAgICAgICAgaWYgKG1fa2luZCA9PSBBcmd1bWVudHNFc2NhcGVk
KSB7CiAgICAgICAgICAgICAvLyBDb3VudCB0aGlzIG9uZSBnbG9iYWxseS4gSXQgZG9lc24ndCBt
YXR0ZXIgd2hlcmUgaW4gdGhlIGNvZGUgYmxvY2sgdGhlIGFyZ3VtZW50cyBleGNhcGVkOwpAQCAt
NjEsOSArNjcsMTAgQEAgcHVibGljOgogICAgIAogICAgIC8vIFVzZSB0aGlzIGNvbnN0cnVjdG9y
IGlmIHlvdSB3aXNoIGZvciB0aGUgZXhpdCBzaXRlIHRvIGJlIGNvdW50ZWQgZ2xvYmFsbHkgd2l0
aGluIGl0cwogICAgIC8vIGNvZGUgYmxvY2suCi0gICAgZXhwbGljaXQgRnJlcXVlbnRFeGl0U2l0
ZShFeGl0S2luZCBraW5kKQorICAgIGV4cGxpY2l0IEZyZXF1ZW50RXhpdFNpdGUoRXhpdEtpbmQg
a2luZCwgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSA9IEV4aXRGcm9tQW55dGhpbmcpCiAgICAgICAg
IDogbV9ieXRlY29kZU9mZnNldCgwKQogICAgICAgICAsIG1fa2luZChraW5kKQorICAgICAgICAs
IG1faml0VHlwZShqaXRUeXBlKQogICAgIHsKICAgICB9CiAgICAgCkBAIC03NSwxNiArODIsMzYg
QEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBv
dGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0ID09IG90
aGVyLm1fYnl0ZWNvZGVPZmZzZXQKLSAgICAgICAgICAgICYmIG1fa2luZCA9PSBvdGhlci5tX2tp
bmQ7CisgICAgICAgICAgICAmJiBtX2tpbmQgPT0gb3RoZXIubV9raW5kCisgICAgICAgICAgICAm
JiBtX2ppdFR5cGUgPT0gb3RoZXIubV9qaXRUeXBlOworICAgIH0KKyAgICAKKyAgICBib29sIHN1
YnN1bWVzKGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAg
ICAgaWYgKG1fYnl0ZWNvZGVPZmZzZXQgIT0gb3RoZXIubV9ieXRlY29kZU9mZnNldCkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKG1fa2luZCAhPSBvdGhlci5tX2tpbmQp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChtX2ppdFR5cGUgPT0gRXhp
dEZyb21Bbnl0aGluZykKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4g
bV9qaXRUeXBlID09IG90aGVyLm1faml0VHlwZTsKICAgICB9CiAgICAgCiAgICAgdW5zaWduZWQg
aGFzaCgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjppbnRIYXNoKG1fYnl0ZWNv
ZGVPZmZzZXQpICsgbV9raW5kOworICAgICAgICByZXR1cm4gV1RGOjppbnRIYXNoKG1fYnl0ZWNv
ZGVPZmZzZXQpICsgbV9raW5kICsgbV9qaXRUeXBlICogNzsKICAgICB9CiAgICAgCiAgICAgdW5z
aWduZWQgYnl0ZWNvZGVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0OyB9
CiAgICAgRXhpdEtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQorICAgIEV4aXRp
bmdKSVRUeXBlIGppdFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ppdFR5cGU7IH0KKyAgICAKKyAg
ICBGcmVxdWVudEV4aXRTaXRlIHdpdGhKSVRUeXBlKEV4aXRpbmdKSVRUeXBlIGppdFR5cGUpIGNv
bnN0CisgICAgeworICAgICAgICBGcmVxdWVudEV4aXRTaXRlIHJlc3VsdCA9ICp0aGlzOworICAg
ICAgICByZXN1bHQubV9qaXRUeXBlID0gaml0VHlwZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CiAKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QKICAgICB7
CkBAIC05NCw2ICsxMjEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYnl0
ZWNvZGVPZmZzZXQ7CiAgICAgRXhpdEtpbmQgbV9raW5kOworICAgIEV4aXRpbmdKSVRUeXBlIG1f
aml0VHlwZTsKIH07CiAKIHN0cnVjdCBGcmVxdWVudEV4aXRTaXRlSGFzaCB7CkBAIC0xMDQsNiAr
MTMyLDcgQEAgc3RydWN0IEZyZXF1ZW50RXhpdFNpdGVIYXNoIHsKIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRwogCisKIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgRGVmYXVsdEhhc2g7CkBAIC0xNjYsNiArMTk1LDEwIEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaGFzRXhpdFNpdGUoY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYgc2l0ZSkgY29uc3QKICAgICB7
CisgICAgICAgIGlmIChzaXRlLmppdFR5cGUoKSA9PSBFeGl0RnJvbUFueXRoaW5nKSB7CisgICAg
ICAgICAgICByZXR1cm4gaGFzRXhpdFNpdGUoc2l0ZS53aXRoSklUVHlwZShFeGl0RnJvbURGRykp
CisgICAgICAgICAgICAgICAgfHwgaGFzRXhpdFNpdGUoc2l0ZS53aXRoSklUVHlwZShFeGl0RnJv
bUZUTCkpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2ZyZXF1ZW50RXhpdFNpdGVzLmZp
bmQoc2l0ZSkgIT0gbV9mcmVxdWVudEV4aXRTaXRlcy5lbmQoKTsKICAgICB9CiAgICAgCkBAIC0x
ODQsNCArMjE3LDYgQEAgcHJpdmF0ZToKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCisj
ZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisKICNlbmRpZiAvLyBERkdFeGl0UHJvZmlsZV9oCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWVudW0g
RXhpdEtpbmQgeworZW51bSBFeGl0S2luZCA6IHVpbnQ4X3QgewogICAgIEV4aXRLaW5kVW5zZXQs
CiAgICAgQmFkVHlwZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYSB0eXBlIHByZWRpY3Rpb24gd2Fz
IHdyb25nLgogICAgIEJhZEZ1bmN0aW9uLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFu
IGluY29ycmVjdCBhc3N1bXB0aW9uIGFib3V0IHdoYXQgZnVuY3Rpb24gd2Ugd291bGQgc2VlLgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVz
LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0dldEJ5SWRTdGF0dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCwx
NiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2lmIEVOQUJMRShKSVQpCitib29sIEdldEJ5SWRT
dGF0dXM6Omhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29k
ZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklU
VHlwZSBqaXRUeXBlKQoreworICAgIHJldHVybiBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShs
b2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRDYWNoZSwgaml0
VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZH
OjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCwgaml0
VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZH
OjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlLCBq
aXRUeXBlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBE
Rkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVX
YXRjaHBvaW50LCBqaXRUeXBlKSk7Cit9CisjZW5kaWYKKwogR2V0QnlJZFN0YXR1cyBHZXRCeUlk
U3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWdu
ZWQgYnl0ZWNvZGVJbmRleCwgU3RyaW5nSW1wbCogdWlkKQogewogICAgIFVOVVNFRF9QQVJBTShw
cm9maWxlZEJsb2NrKTsKQEAgLTExOSwxNCArMTI5LDM0IEBAIHZvaWQgR2V0QnlJZFN0YXR1czo6
Y29tcHV0ZUZvckNoYWluKEdldEIKIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvcihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBtYXAsIHVuc2lnbmVk
IGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICBDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihwcm9maWxlZEJsb2NrLT5tX2xvY2spOworCisgICAgR2V0QnlJZFN0YXR1cyBy
ZXN1bHQ7CisKKyNpZiBFTkFCTEUoSklUKQorICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5m
bygKKyAgICAgICAgbG9ja2VyLCBwcm9maWxlZEJsb2NrLCBtYXAuZ2V0KENvZGVPcmlnaW4oYnl0
ZWNvZGVJbmRleCkpLCB1aWQpOwogICAgIAotICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2Nr
KTsKLSAgICBVTlVTRURfUEFSQU0oYnl0ZWNvZGVJbmRleCk7Ci0gICAgVU5VU0VEX1BBUkFNKHVp
ZCk7CisgICAgaWYgKCFyZXN1bHQudGFrZXNTbG93UGF0aCgpCisgICAgICAgICYmIChoYXNFeGl0
U2l0ZShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpCisgICAgICAgICAgICB8
fCBwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShieXRlY29kZUluZGV4KSkpCisg
ICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0obWFwKTsKKyNlbmRpZgorCisgICAgaWYgKCFyZXN1bHQpCisgICAg
ICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgs
IHVpZCk7CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogI2lmIEVOQUJMRShKSVQpCi0g
ICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbWFwLmdldChDb2RlT3JpZ2luKGJ5dGVj
b2RlSW5kZXgpKTsKK0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJ
bmZvKAorICAgIGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIHByb2ZpbGVk
QmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywKKyAgICBTdHJpbmdJbXBsKiB1aWQp
Cit7CiAgICAgaWYgKCFzdHViSW5mbyB8fCAhc3R1YkluZm8tPnNlZW4pCi0gICAgICAgIHJldHVy
biBjb21wdXRlRnJvbUxMSW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7Cisg
ICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24pOwogICAgIAogICAgIGlm
IChzdHViSW5mby0+cmVzZXRCeUdDKQogICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhUYWtl
c1Nsb3dQYXRoLCB0cnVlKTsKQEAgLTE1MiwxNiArMTgyLDEyIEBAIEdldEJ5SWRTdGF0dXMgR2V0
QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVz
KE1ha2VzQ2FsbHMsIHRydWUpOwogICAgIH0KICAgICAKLSAgICAvLyBOZXh0IGNoZWNrIGlmIGl0
IHRha2VzIHNsb3cgY2FzZSwgaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHRvIGJlIGtpbmQgb2YgY2Fy
ZWZ1bC4KLSAgICBpZiAocHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UoYnl0ZWNv
ZGVJbmRleCkpCi0gICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRy
dWUpOwotICAgIAogICAgIC8vIEZpbmFsbHkgZmlndXJlIG91dCBpZiB3ZSBjYW4gZGVyaXZlIGFu
IGFjY2VzcyBzdHJhdGVneS4KICAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdDsKICAgICByZXN1bHQu
bV93YXNTZWVuSW5KSVQgPSB0cnVlOyAvLyBUaGlzIGlzIGludGVyZXN0aW5nIGZvciBieXRlY29k
ZSBkdW1waW5nIG9ubHkuCiAgICAgc3dpdGNoIChzdHViSW5mby0+YWNjZXNzVHlwZSkgewogICAg
IGNhc2UgYWNjZXNzX3Vuc2V0OgotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9m
aWxlZEJsb2NrLCBieXRlY29kZUluZGV4LCB1aWQpOworICAgICAgICByZXR1cm4gR2V0QnlJZFN0
YXR1cyhOb0luZm9ybWF0aW9uKTsKICAgICAgICAgCiAgICAgY2FzZSBhY2Nlc3NfZ2V0X2J5X2lk
X3NlbGY6IHsKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBzdHViSW5mby0+dS5nZXRC
eUlkU2VsZi5iYXNlT2JqZWN0U3RydWN0dXJlLmdldCgpOwpAQCAtMjYxLDEwICsyODcsMzkgQEAg
R2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAogICAgICAgICByZXN1bHQu
bV9zdGF0ZSA9IFNpbXBsZTsKICAgICAKICAgICByZXR1cm4gcmVzdWx0OwotI2Vsc2UgLy8gRU5B
QkxFKEpJVCkKLSAgICBVTlVTRURfUEFSQU0obWFwKTsKLSAgICByZXR1cm4gR2V0QnlJZFN0YXR1
cyhOb0luZm9ybWF0aW9uLCBmYWxzZSk7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworR2V0
QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAorICAgIENvZGVCbG9jayogcHJv
ZmlsZWRCbG9jaywgQ29kZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFw
LAorICAgIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgU3RyaW5n
SW1wbCogdWlkKQoreworI2lmIEVOQUJMRShERkdfSklUKQorICAgIGlmIChkZmdCbG9jaykgewor
ICAgICAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdDsKKyAgICAgICAgeworICAgICAgICAgICAgQ29u
Y3VycmVudEpJVExvY2tlciBsb2NrZXIoZGZnQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICBy
ZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm8obG9ja2VyLCBkZmdCbG9jaywgZGZnTWFwLmdldChj
b2RlT3JpZ2luKSwgdWlkKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAocmVzdWx0LnRh
a2VzU2xvd1BhdGgoKSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgCisgICAgICAg
IHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHByb2ZpbGVkQmxvY2st
Pm1fbG9jayk7CisgICAgICAgICAgICBpZiAoaGFzRXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJs
b2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEV4aXRGcm9tRlRMKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCB0cnVlKTsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgaWYgKHJlc3VsdC5pc1NldCgpKQorICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZmdCbG9jayk7Cisg
ICAgVU5VU0VEX1BBUkFNKGRmZ01hcCk7CisjZW5kaWYKKworICAgIHJldHVybiBjb21wdXRlRm9y
KHByb2ZpbGVkQmxvY2ssIGJhc2VsaW5lTWFwLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIHVp
ZCk7CiB9CiAKIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJpbmdJbXBsKiB1aWQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDkgQEAKICNpZm5kZWYgR2V0QnlJZFN0
YXR1c19oCiAjZGVmaW5lIEdldEJ5SWRTdGF0dXNfaAogCisjaW5jbHVkZSAiQ29kZU9yaWdpbi5o
IgorI2luY2x1ZGUgIkNvbmN1cnJlbnRKSVRMb2NrLmgiCisjaW5jbHVkZSAiRXhpdGluZ0pJVFR5
cGUuaCIKICNpbmNsdWRlICJJbnRlbmRlZFN0cnVjdHVyZUNoYWluLmgiCiAjaW5jbHVkZSAiUHJv
cGVydHlPZmZzZXQuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVTZXQuaCIKQEAgLTc0LDYgKzc3LDgg
QEAgcHVibGljOgogICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2Nr
KiwgU3R1YkluZm9NYXAmLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQp
OwogICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoVk0mLCBTdHJ1Y3R1cmUqLCBT
dHJpbmdJbXBsKiB1aWQpOwogICAgIAorICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVG
b3IoQ29kZUJsb2NrKiBiYXNlbGluZUJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5m
b01hcCYgYmFzZWxpbmVNYXAsIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4sIFN0cmlu
Z0ltcGwqIHVpZCk7CisgICAgCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0
YXRlOyB9CiAgICAgCiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgIT0g
Tm9JbmZvcm1hdGlvbjsgfQpAQCAtOTAsNiArOTUsMTAgQEAgcHVibGljOgogICAgIGJvb2wgd2Fz
U2VlbkluSklUKCkgY29uc3QgeyByZXR1cm4gbV93YXNTZWVuSW5KSVQ7IH0KICAgICAKIHByaXZh
dGU6CisjaWYgRU5BQkxFKEpJVCkKKyAgICBzdGF0aWMgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBD
b25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwg
RXhpdGluZ0pJVFR5cGUgPSBFeGl0RnJvbUFueXRoaW5nKTsKKyAgICBzdGF0aWMgR2V0QnlJZFN0
YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVC
bG9jayosIFN0cnVjdHVyZVN0dWJJbmZvKiwgU3RyaW5nSW1wbCogdWlkKTsKKyNlbmRpZgogICAg
IHN0YXRpYyB2b2lkIGNvbXB1dGVGb3JDaGFpbihHZXRCeUlkU3RhdHVzJiByZXN1bHQsIENvZGVC
bG9jayosIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0
ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBs
KiB1aWQpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2Zp
bGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dh
dGNocG9pbnQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
UHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuaCIKIAorI2lmIEVOQUJMRShE
RkdfSklUKQorCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgi
CiAjaW5jbHVkZSAiREZHRXhpdFByb2ZpbGUuaCIKQEAgLTQ5LDcgKzUxLDkgQEAgdm9pZCBQcm9m
aWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwbwogICAgIAogICAgIGlmIChzb3VyY2VCYXNl
bGluZUNvZGVCbG9jaykgewogICAgICAgICBzb3VyY2VCYXNlbGluZUNvZGVCbG9jay0+YWRkRnJl
cXVlbnRFeGl0U2l0ZSgKLSAgICAgICAgICAgIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShtX2NvZGVP
cmlnaW4uYnl0ZWNvZGVJbmRleCwgbV9leGl0S2luZCkpOworICAgICAgICAgICAgREZHOjpGcmVx
dWVudEV4aXRTaXRlKAorICAgICAgICAgICAgICAgIG1fY29kZU9yaWdpbi5ieXRlY29kZUluZGV4
LCBtX2V4aXRLaW5kLAorICAgICAgICAgICAgICAgIGV4aXRpbmdKSVRUeXBlRm9yKG1fY29kZUJs
b2NrLT5qaXRUeXBlKCkpKSk7CiAgICAgfQogICAgIAogICAgIG1fY29kZUJsb2NrLT5qZXR0aXNv
bihDb3VudFJlb3B0aW1pemF0aW9uKTsKQEAgLTYwLDMgKzY0LDQgQEAgdm9pZCBQcm9maWxlZENv
ZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwbwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAorI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5n
V2F0Y2hwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oCShyZXZpc2lvbiAxNjI5
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tK
ZXR0aXNvbmluZ1dhdGNocG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAog
I2lmbmRlZiBQcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludF9oCiAjZGVmaW5l
IFByb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50X2gKIAorI2lmIEVOQUJMRShE
RkdfSklUKQorCiAjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUgIkV4aXRLaW5kLmgi
CiAjaW5jbHVkZSAiV2F0Y2hwb2ludC5oIgpAQCAtNjEsNSArNjMsNyBAQCBwcml2YXRlOgogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKIAorI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCiAjZW5kaWYg
Ly8gUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnRfaAogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0
YXR1cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDYgKzM1LDE3IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCisjaWYgRU5BQkxFKEpJVCkKK2Jvb2wgUHV0QnlJZFN0YXR1czo6aGFz
RXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIHBy
b2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIEV4aXRpbmdKSVRUeXBlIGV4aXRU
eXBlKQoreworICAgIHJldHVybiBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERG
Rzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRDYWNoZSwgZXhpdFR5cGUpKQor
ICAgICAgICB8fCBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVl
bnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQsIGV4aXRUeXBlKSkK
KyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1
ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGUsIGV4aXRUeXBl
KSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZy
ZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBv
aW50LCBleGl0VHlwZSkpOworICAgIAorfQorI2VuZGlmCisKIFB1dEJ5SWRTdGF0dXMgUHV0QnlJ
ZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2ln
bmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICBVTlVTRURfUEFSQU0o
cHJvZmlsZWRCbG9jayk7CkBAIC04OSwxMyArMTAwLDI4IEBAIFB1dEJ5SWRTdGF0dXMgUHV0QnlJ
ZFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICBVTlVTRURfUEFSQU0oYnl0ZWNvZGVJbmRleCk7CiAg
ICAgVU5VU0VEX1BBUkFNKHVpZCk7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBpZiAocHJvZmlsZWRC
bG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpCisgICAgaWYgKHByb2Zp
bGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpCisgICAgICAgIHx8
IGhhc0V4aXRTaXRlKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCkpCiAgICAg
ICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIDAsIDAsIDAsIGludmFsaWRP
ZmZzZXQpOwogICAgIAogICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1hcC5nZXQo
Q29kZU9yaWdpbihieXRlY29kZUluZGV4KSk7Ci0gICAgaWYgKCFzdHViSW5mbyB8fCAhc3R1Yklu
Zm8tPnNlZW4pCisgICAgUHV0QnlJZFN0YXR1cyByZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm8o
bG9ja2VyLCBwcm9maWxlZEJsb2NrLCBzdHViSW5mbywgdWlkKTsKKyAgICBpZiAoIXJlc3VsdCkK
ICAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJ
bmRleCwgdWlkKTsKICAgICAKKyAgICByZXR1cm4gcmVzdWx0OworI2Vsc2UgLy8gRU5BQkxFKEpJ
VCkKKyAgICBVTlVTRURfUEFSQU0obWFwKTsKKyAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhOb0lu
Zm9ybWF0aW9uLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsKKyNlbmRpZiAvLyBFTkFCTEUoSklU
KQorfQorCisjaWYgRU5BQkxFKEpJVCkKK1B1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29t
cHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIHBy
b2ZpbGVkQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgU3RyaW5nSW1wbCogdWlk
KQoreworICAgIGlmICghc3R1YkluZm8gfHwgIXN0dWJJbmZvLT5zZWVuKQorICAgICAgICByZXR1
cm4gUHV0QnlJZFN0YXR1cygpOworICAgIAogICAgIGlmIChzdHViSW5mby0+cmVzZXRCeUdDKQog
ICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCAwLCAwLCAwLCBpbnZh
bGlkT2Zmc2V0KTsKIApAQCAtMTQyLDEwICsxNjgsMzQgQEAgUHV0QnlJZFN0YXR1cyBQdXRCeUlk
U3RhdHVzOjpjb21wdXRlRm9yKAogICAgICAgICAvLyB3ZSBjb3VsZCBkbyBhYm91dCBpdC4KICAg
ICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgMCwgMCwgMCwgaW52YWxp
ZE9mZnNldCk7CiAgICAgfQotI2Vsc2UgLy8gRU5BQkxFKEpJVCkKLSAgICBVTlVTRURfUEFSQU0o
bWFwKTsKLSAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCAwLCAwLCAwLCBp
bnZhbGlkT2Zmc2V0KTsKLSNlbmRpZiAvLyBFTkFCTEUoSklUKQorfQorI2VuZGlmCisKK1B1dEJ5
SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2VsaW5lQmxv
Y2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwgU3R1Yklu
Zm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBTdHJpbmdJbXBsKiB1aWQpCit7
CisjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAoZGZnQmxvY2spIHsKKyAgICAgICAgeworICAgICAg
ICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoYmFzZWxpbmVCbG9jay0+bV9sb2NrKTsK
KyAgICAgICAgICAgIGlmIChoYXNFeGl0U2l0ZShsb2NrZXIsIGJhc2VsaW5lQmxvY2ssIGNvZGVP
cmlnaW4uYnl0ZWNvZGVJbmRleCwgRXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHJldHVy
biBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgpOworICAgICAgICB9CisgICAgICAgICAgICAK
KyAgICAgICAgUHV0QnlJZFN0YXR1cyByZXN1bHQ7CisgICAgICAgIHsKKyAgICAgICAgICAgIENv
bmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGRmZ0Jsb2NrLT5tX2xvY2spOworICAgICAgICAgICAg
cmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKGxvY2tlciwgZGZnQmxvY2ssIGRmZ01hcC5nZXQo
Y29kZU9yaWdpbiksIHVpZCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1
bHQuaXNTZXQoKSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZGZnQmxvY2spOworICAgIFVOVVNFRF9QQVJBTShkZmdNYXApOworI2Vu
ZGlmCisKKyAgICByZXR1cm4gY29tcHV0ZUZvcihiYXNlbGluZUJsb2NrLCBiYXNlbGluZU1hcCwg
Y29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCB1aWQpOwogfQogCiBQdXRCeUlkU3RhdHVzIFB1dEJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3IoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3RyaW5nSW1wbCogdWlkLCBib29sIGlzRGlyZWN0KQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5o
CShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0
QnlJZFN0YXR1cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFB1
dEJ5SWRTdGF0dXNfaAogI2RlZmluZSBQdXRCeUlkU3RhdHVzX2gKIAorI2luY2x1ZGUgIkV4aXRp
bmdKSVRUeXBlLmgiCiAjaW5jbHVkZSAiSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oIgogI2luY2x1
ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKQEAg
LTk0LDYgKzk1LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVG
b3IoQ29kZUJsb2NrKiwgU3R1YkluZm9NYXAmLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJp
bmdJbXBsKiB1aWQpOwogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoVk0mLCBK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFN0cmluZ0ltcGwqIHVpZCwgYm9vbCBpc0RpcmVj
dCk7CiAgICAgCisgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sq
IGJhc2VsaW5lQmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGlu
ZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlkKTsK
KyAgICAKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICAK
ICAgICBib29sIGlzU2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb0luZm9ybWF0aW9u
OyB9CkBAIC0xMDgsNiArMTExLDEwIEBAIHB1YmxpYzoKICAgICBQcm9wZXJ0eU9mZnNldCBvZmZz
ZXQoKSBjb25zdCB7IHJldHVybiBtX29mZnNldDsgfQogICAgIAogcHJpdmF0ZToKKyNpZiBFTkFC
TEUoSklUKQorICAgIHN0YXRpYyBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRM
b2NrZXImLCBDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlw
ZSA9IEV4aXRGcm9tQW55dGhpbmcpOworICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVG
b3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgU3RydWN0
dXJlU3R1YkluZm8qLCBTdHJpbmdJbXBsKiB1aWQpOworI2VuZGlmCiAgICAgc3RhdGljIFB1dEJ5
SWRTdGF0dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUlu
ZGV4LCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIAogICAgIFN0YXRlIG1fc3RhdGU7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5oCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgogICAgIAogICAgIFN0
cnVjdHVyZVNldChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CisgICAgICAgIEFTU0VSVChz
dHJ1Y3R1cmUpOwogICAgICAgICBtX3N0cnVjdHVyZXMuYXBwZW5kKHN0cnVjdHVyZSk7CiAgICAg
fQogICAgIApAQCAtNTUsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBhZGQoU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgeworICAgICAgICBBU1NFUlQoc3RydWN0dXJlKTsKICAg
ICAgICAgQVNTRVJUKCFjb250YWlucyhzdHJ1Y3R1cmUpKTsKICAgICAgICAgbV9zdHJ1Y3R1cmVz
LmFwcGVuZChzdHJ1Y3R1cmUpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCShyZXZpc2lvbiAxNjI5NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjE2LDcgKzIxNiw2IEBAIHN0cnVj
dCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAKICAgICBzdHJ1Y3QgewogICAgICAgICBpbnQ4X3QgcmVn
aXN0ZXJzRmx1c2hlZDsKLSAgICAgICAgaW50OF90IGNhbGxGcmFtZVJlZ2lzdGVyOwogICAgICAg
ICBpbnQ4X3QgYmFzZUdQUjsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBpbnQ4X3Qg
dmFsdWVUYWdHUFI7CkBAIC0yOTAsNyArMjg5LDcgQEAgaW5saW5lIENvZGVPcmlnaW4gZ2V0U3Ry
dWN0dXJlU3R1YkluZm9DbwogICAgIHJldHVybiBzdHJ1Y3R1cmVTdHViSW5mby5jb2RlT3JpZ2lu
OwogfQogCi10eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgU3RydWN0dXJlU3R1YkluZm8qPiBT
dHViSW5mb01hcDsKK3R5cGVkZWYgSGFzaE1hcDxDb2RlT3JpZ2luLCBTdHJ1Y3R1cmVTdHViSW5m
byosIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g+IFN0dWJJbmZvTWFwOwogCiAjZWxzZQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgJ
KHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1
ZVJlY292ZXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw2ICsyMzAsMjcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gVmlydHVhbFJlZ2lzdGVyKG1fc291cmNlLnZpcnR1YWxSZWcpOwogICAg
IH0KICAgICAKKyAgICBWYWx1ZVJlY292ZXJ5IHdpdGhMb2NhbHNPZmZzZXQoaW50IG9mZnNldCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHN3aXRjaCAobV90ZWNobmlxdWUpIHsKKyAgICAgICAgY2Fz
ZSBEaXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgSW50MzJEaXNwbGFjZWRJbkpTU3Rh
Y2s6CisgICAgICAgIGNhc2UgRG91YmxlRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNl
IENlbGxEaXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgQm9vbGVhbkRpc3BsYWNlZElu
SlNTdGFjazoKKyAgICAgICAgY2FzZSBJbnQ1MkRpc3BsYWNlZEluSlNTdGFjazoKKyAgICAgICAg
Y2FzZSBTdHJpY3RJbnQ1MkRpc3BsYWNlZEluSlNTdGFjazogeworICAgICAgICAgICAgVmFsdWVS
ZWNvdmVyeSByZXN1bHQ7CisgICAgICAgICAgICByZXN1bHQubV90ZWNobmlxdWUgPSBtX3RlY2hu
aXF1ZTsKKyAgICAgICAgICAgIHJlc3VsdC5tX3NvdXJjZS52aXJ0dWFsUmVnID0gbV9zb3VyY2Uu
dmlydHVhbFJlZyArIG9mZnNldDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
IH0KKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuICp0
aGlzOworICAgICAgICB9CisgICAgfQorICAgIAogICAgIEpTVmFsdWUgY29uc3RhbnQoKSBjb25z
dAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09IENvbnN0YW50KTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgJ
KHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0
dWFsUmVnaXN0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAg
ICAgaW50IHRvQXJndW1lbnQoKSBjb25zdCB7IEFTU0VSVChpc0FyZ3VtZW50KCkpOyByZXR1cm4g
b3BlcmFuZFRvQXJndW1lbnQobV92aXJ0dWFsUmVnaXN0ZXIpOyB9CiAgICAgaW50IHRvQ29uc3Rh
bnRJbmRleCgpIGNvbnN0IHsgQVNTRVJUKGlzQ29uc3RhbnQoKSk7IHJldHVybiBtX3ZpcnR1YWxS
ZWdpc3RlciAtIHNfZmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXg7IH0KICAgICBpbnQgb2Zmc2V0
KCkgY29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXI7IH0KKyAgICBpbnQgb2Zmc2V0SW5C
eXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVyICogc2l6ZW9mKFJlZ2lzdGVy
KTsgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZpcnR1YWxSZWdpc3RlciBvdGhlcikg
Y29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXIgPT0gb3RoZXIubV92aXJ0dWFsUmVnaXN0
ZXI7IH0KICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgVmlydHVhbFJlZ2lzdGVyIG90aGVyKSBj
b25zdCB7IHJldHVybiBtX3ZpcnR1YWxSZWdpc3RlciAhPSBvdGhlci5tX3ZpcnR1YWxSZWdpc3Rl
cjsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZy
YW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJDYWxsRnJhbWUuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSw3ICszNSw2IEBACiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5o
IgogI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5oIgotI2luY2x1ZGUgIlZNRW50cnlTY29wZS5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
cnJheU1vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QXJyYXlNb2RlLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheU1vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNyArMTMxLDEwIEBA
IEFycmF5TW9kZSBBcnJheU1vZGU6OmZyb21PYnNlcnZlZChjb25zdCAKICAgICB9CiB9CiAKLUFy
cmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVk
VHlwZSBpbmRleCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUsIE5vZGVGbGFncyBmbGFncykgY29uc3QK
K0FycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZSgKKyAgICBHcmFwaCYgZ3JhcGgsIENvZGVPcmln
aW4gY29kZU9yaWdpbiwKKyAgICBTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBp
bmRleCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUsCisgICAgTm9kZUZsYWdzIGZsYWdzKSBjb25zdAog
ewogICAgIGlmICghYmFzZSB8fCAhaW5kZXgpIHsKICAgICAgICAgLy8gSXQgY2FuIGJlIHRoYXQg
d2UgaGFkIGEgbGVnaXRpbWF0ZSBhcnJheU1vZGUgYnV0IG5vIGluY29taW5nIHByZWRpY3Rpb25z
LiBUaGF0J2xsCkBAIC0xODYsNyArMTg5LDcgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5l
KFNwZWN1bGF0ZWRUeQogICAgICAgICAgICAgcmV0dXJuIHdpdGhDb252ZXJzaW9uKEFycmF5OjpS
YWdlQ29udmVydCk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICAgICAgCi0gICAgY2FzZSBB
cnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKKyAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2lu
Z1ByZWRpY3Rpb25zOiB7CiAgICAgICAgIGJhc2UgJj0gflNwZWNPdGhlcjsKICAgICAgICAgCiAg
ICAgICAgIGlmIChpc1N0cmluZ1NwZWN1bGF0aW9uKGJhc2UpKQpAQCAtMTk1LDM0ICsxOTgsNDEg
QEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5lKFNwZWN1bGF0ZWRUeQogICAgICAgICBpZiAo
aXNBcmd1bWVudHNTcGVjdWxhdGlvbihiYXNlKSkKICAgICAgICAgICAgIHJldHVybiB3aXRoVHlw
ZShBcnJheTo6QXJndW1lbnRzKTsKICAgICAgICAgCisgICAgICAgIEFycmF5TW9kZSByZXN1bHQ7
CisgICAgICAgIGlmIChncmFwaC5oYXNFeGl0U2l0ZShjb2RlT3JpZ2luLCBPdXRPZkJvdW5kcykp
CisgICAgICAgICAgICByZXN1bHQgPSB3aXRoU3BlY3VsYXRpb24oQXJyYXk6Ok91dE9mQm91bmRz
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gKnRoaXM7CisgICAgICAgIAog
ICAgICAgICBpZiAoaXNJbnQ4QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJl
dHVybiB3aXRoVHlwZShBcnJheTo6SW50OEFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1
bHQud2l0aFR5cGUoQXJyYXk6OkludDhBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNJ
bnQxNkFycmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUo
QXJyYXk6OkludDE2QXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShB
cnJheTo6SW50MTZBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNJbnQzMkFycmF5U3Bl
Y3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkludDMy
QXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6SW50MzJB
cnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNVaW50OEFycmF5U3BlY3VsYXRpb24oYmFz
ZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OlVpbnQ4QXJyYXkpOworICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6VWludDhBcnJheSk7CiAgICAg
ICAgIAogICAgICAgICBpZiAoaXNVaW50OENsYW1wZWRBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQot
ICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50OENsYW1wZWRBcnJheSk7Cisg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpVaW50OENsYW1wZWRBcnJh
eSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNVaW50MTZBcnJheVNwZWN1bGF0aW9uKGJhc2Up
KQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50MTZBcnJheSk7CisgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpVaW50MTZBcnJheSk7CiAgICAg
ICAgIAogICAgICAgICBpZiAoaXNVaW50MzJBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAg
ICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50MzJBcnJheSk7CisgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpVaW50MzJBcnJheSk7CiAgICAgICAgIAogICAg
ICAgICBpZiAoaXNGbG9hdDMyQXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJl
dHVybiB3aXRoVHlwZShBcnJheTo6RmxvYXQzMkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQud2l0aFR5cGUoQXJyYXk6OkZsb2F0MzJBcnJheSk7CiAgICAgICAgIAogICAgICAgICBp
ZiAoaXNGbG9hdDY0QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3
aXRoVHlwZShBcnJheTo6RmxvYXQ2NEFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQu
d2l0aFR5cGUoQXJyYXk6OkZsb2F0NjRBcnJheSk7CiAKICAgICAgICAgcmV0dXJuIEFycmF5TW9k
ZShBcnJheTo6R2VuZXJpYyk7CisgICAgfQogCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJu
ICp0aGlzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCShy
ZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9k
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTEsNyArMjExLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gQXJyYXlNb2RlKHR5cGUsIGFycmF5Q2xhc3MoKSwgc3BlY3VsYXRpb24oKSwgY29udmVy
c2lvbik7CiAgICAgfQogICAgIAotICAgIEFycmF5TW9kZSByZWZpbmUoU3BlY3VsYXRlZFR5cGUg
YmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlID0gU3BlY05v
bmUsIE5vZGVGbGFncyA9IDApIGNvbnN0OworICAgIEFycmF5TW9kZSByZWZpbmUoR3JhcGgmLCBD
b2RlT3JpZ2luLCBTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRleCwgU3Bl
Y3VsYXRlZFR5cGUgdmFsdWUgPSBTcGVjTm9uZSwgTm9kZUZsYWdzID0gMCkgY29uc3Q7CiAgICAg
CiAgICAgYm9vbCBhbHJlYWR5Q2hlY2tlZChHcmFwaCYsIE5vZGUqLCBBYnN0cmFjdFZhbHVlJikg
Y29uc3Q7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJlY2lzZUp1bXBUYXJn
ZXRzLmgiCiAjaW5jbHVkZSAiUHV0QnlJZFN0YXR1cy5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25t
ZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlIDx3dGYvQ29t
bWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTE2MCw3ICsxNjEsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlTWluTWF4KGludCByZXN1bHRPcGVyYW5kLCBOb2Rl
VHlwZSBvcCwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMpOwogICAgIAogICAgIC8vIEhhbmRsZSBjYWxscy4gVGhpcyByZXNvbHZlcyBpc3N1ZXMgc3Vy
cm91bmRpbmcgaW5saW5pbmcgYW5kIGludHJpbnNpY3MuCi0gICAgdm9pZCBoYW5kbGVDYWxsKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kKTsKKyAgICB2b2lkIGhhbmRsZUNhbGwoaW50IHJlc3VsdCwgTm9kZVR5cGUgb3As
IENvZGVTcGVjaWFsaXphdGlvbktpbmQsIHVuc2lnbmVkIGluc3RydWN0aW9uU2l6ZSwgaW50IGNh
bGxlZSwgaW50IGFyZ0NvdW50LCBpbnQgcmVnaXN0ZXJPZmZzZXQpOworICAgIHZvaWQgaGFuZGxl
Q2FsbChJbnN0cnVjdGlvbiogcGMsIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
KTsKICAgICB2b2lkIGVtaXRGdW5jdGlvbkNoZWNrcyhjb25zdCBDYWxsTGlua1N0YXR1cyYsIE5v
ZGUqIGNhbGxUYXJnZXQsIGludCByZWdpc3Rlck9mZnNldCwgQ29kZVNwZWNpYWxpemF0aW9uS2lu
ZCk7CiAgICAgdm9pZCBlbWl0QXJndW1lbnRQaGFudG9tcyhpbnQgcmVnaXN0ZXJPZmZzZXQsIGlu
dCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CiAg
ICAgLy8gSGFuZGxlIGlubGluaW5nLiBSZXR1cm4gdHJ1ZSBpZiBpdCBzdWNjZWVkZWQsIGZhbHNl
IGlmIHdlIG5lZWQgdG8gcGxhbnQgYSBjYWxsLgpAQCAtNzczLDIyICs3NzUsMjEgQEAgcHJpdmF0
ZToKICAgICAgICAgbV9udW1QYXNzZWRWYXJBcmdzKys7CiAgICAgfQogICAgIAotICAgIE5vZGUq
IGFkZENhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgTm9kZVR5cGUgb3ApCisg
ICAgTm9kZSogYWRkQ2FsbChpbnQgcmVzdWx0LCBOb2RlVHlwZSBvcCwgaW50IGNhbGxlZSwgaW50
IGFyZ0NvdW50LCBpbnQgcmVnaXN0ZXJPZmZzZXQpCiAgICAgewogICAgICAgICBTcGVjdWxhdGVk
VHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwogICAgICAgICAKLSAgICAgICAgYWRk
VmFyQXJnQ2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKSkpOwotICAgICAgICBpbnQgYXJnQ291bnQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kOwotICAgICAgICBpZiAoSlNTdGFjazo6VGhpc0FyZ3VtZW50ICsgKHVuc2lnbmVk
KWFyZ0NvdW50ID4gbV9wYXJhbWV0ZXJTbG90cykKLSAgICAgICAgICAgIG1fcGFyYW1ldGVyU2xv
dHMgPSBKU1N0YWNrOjpUaGlzQXJndW1lbnQgKyBhcmdDb3VudDsKKyAgICAgICAgYWRkVmFyQXJn
Q2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3RlcihjYWxsZWUpKSk7CisgICAgICAgIHNpemVfdCBwYXJh
bWV0ZXJTbG90cyA9IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxs
ZXJGcmFtZUFuZFBDU2l6ZSArIGFyZ0NvdW50OworICAgICAgICBpZiAocGFyYW1ldGVyU2xvdHMg
PiBtX3BhcmFtZXRlclNsb3RzKQorICAgICAgICAgICAgbV9wYXJhbWV0ZXJTbG90cyA9IHBhcmFt
ZXRlclNsb3RzOwogCi0gICAgICAgIGludCByZWdpc3Rlck9mZnNldCA9IC1jdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kOwogICAgICAgICBpbnQgZHVtbXlUaGlzQXJndW1lbnQgPSBvcCA9
PSBDYWxsID8gMCA6IDE7CiAgICAgICAgIGZvciAoaW50IGkgPSAwICsgZHVtbXlUaGlzQXJndW1l
bnQ7IGkgPCBhcmdDb3VudDsgKytpKQogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KHZp
cnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGksIHJlZ2lzdGVyT2Zmc2V0KSkpOwogCiAgICAgICAg
IE5vZGUqIGNhbGwgPSBhZGRUb0dyYXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5mbygwKSwgT3BJ
bmZvKHByZWRpY3Rpb24pKTsKLSAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgY2FsbCk7CisgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0
ZXIocmVzdWx0KSwgY2FsbCk7CiAgICAgICAgIHJldHVybiBjYWxsOwogICAgIH0KICAgICAKQEAg
LTk5Myw5ICs5OTQsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgbnVtYmVyIG9mIGxvY2FscyAo
dmFycyArIHRlbXBvcmFyaWVzKSB1c2VkIGluIHRoZSBmdW5jdGlvbi4KICAgICB1bnNpZ25lZCBt
X251bUxvY2FsczsKICAgICAvLyBUaGUgbnVtYmVyIG9mIHNsb3RzIChpbiB1bml0cyBvZiBzaXpl
b2YoUmVnaXN0ZXIpKSB0aGF0IHdlIG5lZWQgdG8KLSAgICAvLyBwcmVhbGxvY2F0ZSBmb3IgY2Fs
bHMgZW1hbmF0aW5nIGZyb20gdGhpcyBmcmFtZS4gVGhpcyBpbmNsdWRlcyB0aGUKLSAgICAvLyBz
aXplIG9mIHRoZSBDYWxsRnJhbWUsIG9ubHkgaWYgdGhpcyBpcyBub3QgYSBsZWFmIGZ1bmN0aW9u
LiAgKEkuZS4KLSAgICAvLyB0aGlzIGlzIDAgaWYgYW5kIG9ubHkgaWYgdGhpcyBmdW5jdGlvbiBp
cyBhIGxlYWYuKQorICAgIC8vIHByZWFsbG9jYXRlIGZvciBhcmd1bWVudHMgdG8gb3V0Z29pbmcg
Y2FsbHMgZnJvbSB0aGlzIGZyYW1lLiBUaGlzCisgICAgLy8gbnVtYmVyIGluY2x1ZGVzIHRoZSBD
YWxsRnJhbWUgc2xvdHMgdGhhdCB3ZSBpbml0aWFsaXplIGZvciB0aGUgY2FsbGVlCisgICAgLy8g
KGJ1dCBub3QgdGhlIGNhbGxlZS1pbml0aWFsaXplZCBDYWxsZXJGcmFtZSBhbmQgUmV0dXJuUEMg
c2xvdHMpLgorICAgIC8vIFRoaXMgbnVtYmVyIGlzIDAgaWYgYW5kIG9ubHkgaWYgdGhpcyBmdW5j
dGlvbiBpcyBhIGxlYWYuCiAgICAgdW5zaWduZWQgbV9wYXJhbWV0ZXJTbG90czsKICAgICAvLyBU
aGUgbnVtYmVyIG9mIHZhciBhcmdzIHBhc3NlZCB0byB0aGUgbmV4dCB2YXIgYXJnIG5vZGUuCiAg
ICAgdW5zaWduZWQgbV9udW1QYXNzZWRWYXJBcmdzOwpAQCAtMTEzNCw2ICsxMTM2LDEwIEBAIHBy
aXZhdGU6CiAgICAgLy8gd29yay1hcm91bmQgZm9yIHRoZSBmYWN0IHRoYXQgSlNWYWx1ZU1hcCBj
YW4ndCBoYW5kbGUgImVtcHR5IiB2YWx1ZXMuCiAgICAgdW5zaWduZWQgbV9lbXB0eUpTVmFsdWVJ
bmRleDsKICAgICAKKyAgICBDb2RlQmxvY2sqIG1fZGZnQ29kZUJsb2NrOworICAgIENhbGxMaW5r
U3RhdHVzOjpDb250ZXh0TWFwIG1fY2FsbENvbnRleHRNYXA7CisgICAgU3R1YkluZm9NYXAgbV9k
ZmdTdHViSW5mb3M7CisgICAgCiAgICAgSW5zdHJ1Y3Rpb24qIG1fY3VycmVudEluc3RydWN0aW9u
OwogfTsKIApAQCAtMTE0NSw0MyArMTE1MSw0NSBAQCBwcml2YXRlOgogICAgIG1fY3VycmVudElu
ZGV4ICs9IE9QQ09ERV9MRU5HVEgobmFtZSk7IFwKICAgICByZXR1cm4gc2hvdWxkQ29udGludWVQ
YXJzaW5nCiAKLQotdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBOb2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBr
aW5kKQordm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogcGMsIE5v
ZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7CiAgICAgQVNTRVJUKE9Q
Q09ERV9MRU5HVEgob3BfY2FsbCkgPT0gT1BDT0RFX0xFTkdUSChvcF9jb25zdHJ1Y3QpKTsKKyAg
ICBoYW5kbGVDYWxsKAorICAgICAgICBwY1sxXS51Lm9wZXJhbmQsIG9wLCBraW5kLCBPUENPREVf
TEVOR1RIKG9wX2NhbGwpLAorICAgICAgICBwY1syXS51Lm9wZXJhbmQsIHBjWzNdLnUub3BlcmFu
ZCwgLXBjWzRdLnUub3BlcmFuZCk7Cit9CisKK3ZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNh
bGwoCisgICAgaW50IHJlc3VsdCwgTm9kZVR5cGUgb3AsIENvZGVTcGVjaWFsaXphdGlvbktpbmQg
a2luZCwgdW5zaWduZWQgaW5zdHJ1Y3Rpb25TaXplLAorICAgIGludCBjYWxsZWUsIGludCBhcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcywgaW50IHJlZ2lzdGVyT2Zmc2V0KQoreworICAgIEFTU0VS
VChyZWdpc3Rlck9mZnNldCA8PSAwKTsKICAgICAKLSAgICBOb2RlKiBjYWxsVGFyZ2V0ID0gZ2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAg
Tm9kZSogY2FsbFRhcmdldCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY2FsbGVlKSk7CiAgICAgCiAg
ICAgQ2FsbExpbmtTdGF0dXMgY2FsbExpbmtTdGF0dXM7CiAKLSAgICBpZiAobV9ncmFwaC5pc0Nv
bnN0YW50KGNhbGxUYXJnZXQpKQotICAgICAgICBjYWxsTGlua1N0YXR1cyA9IENhbGxMaW5rU3Rh
dHVzKG1fZ3JhcGgudmFsdWVPZkpTQ29uc3RhbnQoY2FsbFRhcmdldCkpLnNldElzUHJvdmVkKHRy
dWUpOwotICAgIGVsc2UgewotICAgICAgICBjYWxsTGlua1N0YXR1cyA9IENhbGxMaW5rU3RhdHVz
Ojpjb21wdXRlRm9yKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9jdXJyZW50
SW5kZXgpOwotICAgICAgICBjYWxsTGlua1N0YXR1cy5zZXRIYXNCYWRGdW5jdGlvbkV4aXRTaXRl
KG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5k
ZXgsIEJhZEZ1bmN0aW9uKSk7Ci0gICAgICAgIGNhbGxMaW5rU3RhdHVzLnNldEhhc0JhZENhY2hl
RXhpdFNpdGUoCi0gICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhh
c0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkKLSAgICAgICAgICAgIHx8IG1faW5s
aW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJh
ZENhY2hlV2F0Y2hwb2ludCkpOwotICAgICAgICBjYWxsTGlua1N0YXR1cy5zZXRIYXNCYWRFeGVj
dXRhYmxlRXhpdFNpdGUobV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0
ZShtX2N1cnJlbnRJbmRleCwgQmFkRXhlY3V0YWJsZSkpOworICAgIGlmIChtX2dyYXBoLmlzQ29u
c3RhbnQoY2FsbFRhcmdldCkpIHsKKyAgICAgICAgY2FsbExpbmtTdGF0dXMgPSBDYWxsTGlua1N0
YXR1cygKKyAgICAgICAgICAgIG1fZ3JhcGgudmFsdWVPZkpTQ29uc3RhbnQoY2FsbFRhcmdldCkp
LnNldElzUHJvdmVkKHRydWUpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNhbGxMaW5rU3RhdHVz
ID0gQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3IoCisgICAgICAgICAgICBtX2lubGluZVN0YWNr
VG9wLT5tX3Byb2ZpbGVkQmxvY2ssIGN1cnJlbnRDb2RlT3JpZ2luKCksIG1fY2FsbENvbnRleHRN
YXApOwogICAgIH0KICAgICAKICAgICBpZiAoIWNhbGxMaW5rU3RhdHVzLmNhbk9wdGltaXplKCkp
IHsKICAgICAgICAgLy8gT2RkbHksIHRoaXMgY29uZmxhdGVzIGNhbGxzIHRoYXQgaGF2ZW4ndCBl
eGVjdXRlZCB3aXRoIGNhbGxzIHRoYXQgYmVoYXZlZCBzdWZmaWNpZW50bHkgcG9seW1vcnBoaWNh
bGx5CiAgICAgICAgIC8vIHRoYXQgd2UgY2Fubm90IG9wdGltaXplIHRoZW0uCiAgICAgICAgIAot
ICAgICAgICBhZGRDYWxsKGN1cnJlbnRJbnN0cnVjdGlvbiwgb3ApOworICAgICAgICBhZGRDYWxs
KHJlc3VsdCwgb3AsIGNhbGxlZSwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHJlZ2lzdGVy
T2Zmc2V0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBpbnQgYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAg
IGludCByZWdpc3Rlck9mZnNldCA9IC1jdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwot
Ci0gICAgaW50IHJlc3VsdE9wZXJhbmQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
OwotICAgIHVuc2lnbmVkIG5leHRPZmZzZXQgPSBtX2N1cnJlbnRJbmRleCArIE9QQ09ERV9MRU5H
VEgob3BfY2FsbCk7CisgICAgdW5zaWduZWQgbmV4dE9mZnNldCA9IG1fY3VycmVudEluZGV4ICsg
aW5zdHJ1Y3Rpb25TaXplOwogICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVk
aWN0aW9uKCk7CiAKICAgICBpZiAoSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24gPSBjYWxsTGlu
a1N0YXR1cy5pbnRlcm5hbEZ1bmN0aW9uKCkpIHsKLSAgICAgICAgaWYgKGhhbmRsZUNvbnN0YW50
SW50ZXJuYWxGdW5jdGlvbihyZXN1bHRPcGVyYW5kLCBmdW5jdGlvbiwgcmVnaXN0ZXJPZmZzZXQs
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBwcmVkaWN0aW9uLCBraW5kKSkgeworICAgICAg
ICBpZiAoaGFuZGxlQ29uc3RhbnRJbnRlcm5hbEZ1bmN0aW9uKHJlc3VsdCwgZnVuY3Rpb24sIHJl
Z2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcHJlZGljdGlvbiwga2lu
ZCkpIHsKICAgICAgICAgICAgIC8vIFRoaXMgcGhhbnRvbWluZyBoYXMgdG8gYmUgKmFmdGVyKiB0
aGUgY29kZSBmb3IgdGhlIGludHJpbnNpYywgdG8gc2lnbmlmeSB0aGF0CiAgICAgICAgICAgICAv
LyB0aGUgaW5wdXRzIG11c3QgYmUga2VwdCBhbGl2ZSB3aGF0ZXZlciBleGl0cyB0aGUgaW50cmlu
c2ljIG1heSBkby4KICAgICAgICAgICAgIGFkZFRvR3JhcGgoUGhhbnRvbSwgY2FsbFRhcmdldCk7
CkBAIC0xMTkwLDcgKzExOTgsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDYWxsKElu
c3RydWN0CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIENhbiBvbmx5IGhhbmRsZSB0
aGlzIHVzaW5nIHRoZSBnZW5lcmljIGNhbGwgaGFuZGxlci4KLSAgICAgICAgYWRkQ2FsbChjdXJy
ZW50SW5zdHJ1Y3Rpb24sIG9wKTsKKyAgICAgICAgYWRkQ2FsbChyZXN1bHQsIG9wLCBjYWxsZWUs
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCByZWdpc3Rlck9mZnNldCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgICAgIApAQCAtMTE5OCw3ICsxMjA2LDcgQEAgdm9pZCBCeXRlQ29k
ZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdAogICAgIGlmIChpbnRyaW5zaWMgIT0gTm9JbnRy
aW5zaWMpIHsKICAgICAgICAgZW1pdEZ1bmN0aW9uQ2hlY2tzKGNhbGxMaW5rU3RhdHVzLCBjYWxs
VGFyZ2V0LCByZWdpc3Rlck9mZnNldCwga2luZCk7CiAgICAgICAgICAgICAKLSAgICAgICAgaWYg
KGhhbmRsZUludHJpbnNpYyhyZXN1bHRPcGVyYW5kLCBpbnRyaW5zaWMsIHJlZ2lzdGVyT2Zmc2V0
LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcHJlZGljdGlvbikpIHsKKyAgICAgICAgaWYg
KGhhbmRsZUludHJpbnNpYyhyZXN1bHQsIGludHJpbnNpYywgcmVnaXN0ZXJPZmZzZXQsIGFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzLCBwcmVkaWN0aW9uKSkgewogICAgICAgICAgICAgLy8gVGhp
cyBwaGFudG9taW5nIGhhcyB0byBiZSAqYWZ0ZXIqIHRoZSBjb2RlIGZvciB0aGUgaW50cmluc2lj
LCB0byBzaWduaWZ5IHRoYXQKICAgICAgICAgICAgIC8vIHRoZSBpbnB1dHMgbXVzdCBiZSBrZXB0
IGFsaXZlIHdoYXRldmVyIGV4aXRzIHRoZSBpbnRyaW5zaWMgbWF5IGRvLgogICAgICAgICAgICAg
YWRkVG9HcmFwaChQaGFudG9tLCBjYWxsVGFyZ2V0KTsKQEAgLTEyMDcsMTMgKzEyMTUsMTMgQEAg
dm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdAogICAgICAgICAgICAgICAg
IG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwoKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoaGFuZGxlSW5saW5pbmcoY2FsbFRh
cmdldCwgcmVzdWx0T3BlcmFuZCwgY2FsbExpbmtTdGF0dXMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcywgbmV4dE9mZnNldCwga2luZCkpIHsKKyAgICB9IGVsc2Ug
aWYgKGhhbmRsZUlubGluaW5nKGNhbGxUYXJnZXQsIHJlc3VsdCwgY2FsbExpbmtTdGF0dXMsIHJl
Z2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgbmV4dE9mZnNldCwga2lu
ZCkpIHsKICAgICAgICAgaWYgKG1fZ3JhcGguY29tcGlsYXRpb24oKSkKICAgICAgICAgICAgIG1f
Z3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAKLSAgICBhZGRDYWxsKGN1cnJlbnRJbnN0cnVjdGlvbiwgb3ApOworICAg
IGFkZENhbGwocmVzdWx0LCBvcCwgY2FsbGVlLCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywg
cmVnaXN0ZXJPZmZzZXQpOwogfQogCiB2b2lkIEJ5dGVDb2RlUGFyc2VyOjplbWl0RnVuY3Rpb25D
aGVja3MoY29uc3QgQ2FsbExpbmtTdGF0dXMmIGNhbGxMaW5rU3RhdHVzLCBOb2RlKiBjYWxsVGFy
Z2V0LCBpbnQgcmVnaXN0ZXJPZmZzZXQsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKQEAg
LTEyNTAsMzAgKzEyNTgsMzIgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6ZW1pdEFyZ3VtZW50UGhh
bnRvbQogCiBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhOb2RlKiBjYWxsVGFy
Z2V0Tm9kZSwgaW50IHJlc3VsdE9wZXJhbmQsIGNvbnN0IENhbGxMaW5rU3RhdHVzJiBjYWxsTGlu
a1N0YXR1cywgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMsIHVuc2lnbmVkIG5leHRPZmZzZXQsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsK
KyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgIGRhdGFMb2coIkNvbnNpZGVyaW5nIGlubGluaW5nICIsIGNhbGxMaW5r
U3RhdHVzLCAiIGludG8gIiwgY3VycmVudENvZGVPcmlnaW4oKSwgIlxuIik7CisgICAgCiAgICAg
Ly8gRmlyc3QsIHRoZSByZWFsbHkgc2ltcGxlIGNoZWNrczogZG8gd2UgaGF2ZSBhbiBhY3R1YWwg
SlMgZnVuY3Rpb24/Ci0gICAgaWYgKCFjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCkpCisgICAg
aWYgKCFjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2Up
CisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIHRoZXJlIGlzIG5vIGV4
ZWN1dGFibGUuXG4iKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChjYWxsTGlua1N0
YXR1cy5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpCisgICAgfQorICAgIGlmIChjYWxs
TGlua1N0YXR1cy5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpIHsKKyAgICAgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIGl0J3Mg
YSBob3N0IGZ1bmN0aW9uLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAg
CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0ganNDYXN0PEZ1bmN0aW9uRXhl
Y3V0YWJsZSo+KGNhbGxMaW5rU3RhdHVzLmV4ZWN1dGFibGUoKSk7CiAgICAgCiAgICAgLy8gRG9l
cyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB3ZSdyZSBwYXNzaW5nIG1hdGNoIHRoZSBhcml0eSBv
ZiB0aGUgdGFyZ2V0PyBXZSBjdXJyZW50bHkKICAgICAvLyBpbmxpbmUgb25seSBpZiB0aGUgbnVt
YmVyIG9mIGFyZ3VtZW50cyBwYXNzZWQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBu
dW1iZXIKICAgICAvLyBhcmd1bWVudHMgZXhwZWN0ZWQuCi0gICAgaWYgKHN0YXRpY19jYXN0PGlu
dD4oZXhlY3V0YWJsZS0+cGFyYW1ldGVyQ291bnQoKSkgKyAxID4gYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMpCisgICAgaWYgKHN0YXRpY19jYXN0PGludD4oZXhlY3V0YWJsZS0+cGFyYW1ldGVy
Q291bnQoKSkgKyAxID4gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpIHsKKyAgICAgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIG9mIGFy
aXR5IG1pc21hdGNoLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICAvLyBI
YXZlIHdlIGV4Y2VlZGVkIGlubGluZSBzdGFjayBkZXB0aCwgb3IgYXJlIHdlIHRyeWluZyB0byBp
bmxpbmUgYSByZWN1cnNpdmUgY2FsbD8KLSAgICAvLyBJZiBlaXRoZXIgb2YgdGhlc2UgYXJlIGRl
dGVjdGVkLCB0aGVuIGRvbid0IGlubGluZS4KLSAgICB1bnNpZ25lZCBkZXB0aCA9IDA7Ci0gICAg
Zm9yIChJbmxpbmVTdGFja0VudHJ5KiBlbnRyeSA9IG1faW5saW5lU3RhY2tUb3A7IGVudHJ5OyBl
bnRyeSA9IGVudHJ5LT5tX2NhbGxlcikgewotICAgICAgICArK2RlcHRoOwotICAgICAgICBpZiAo
ZGVwdGggPj0gT3B0aW9uczo6bWF4aW11bUlubGluaW5nRGVwdGgoKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsgLy8gRGVwdGggZXhjZWVkZWQuCi0gICAgICAgIAotICAgICAgICBpZiAoZW50
cnktPmV4ZWN1dGFibGUoKSA9PSBleGVjdXRhYmxlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OyAvLyBSZWN1cnNpb24gZGV0ZWN0ZWQuCiAgICAgfQogICAgIAogICAgIC8vIERvIHdlIGhhdmUg
YSBjb2RlIGJsb2NrLCBhbmQgZG9lcyB0aGUgY29kZSBibG9jaydzIHNpemUgbWF0Y2ggdGhlIGhl
dXJpc3RpY3MvcmVxdWlyZW1lbnRzIGZvcgpAQCAtMTI4MywxMCArMTI5Myw1MCBAQCBib29sIEJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhOb2RlCiAgICAgLy8gZ2xvYmFsIGZ1bmN0aW9u
LCB3aGVyZSB3YXRjaHBvaW50aW5nIGdpdmVzIHVzIHN0YXRpYyBpbmZvcm1hdGlvbi4gT3ZlcmFs
bCwgaXQncyBhIHJhcmUgY2FzZQogICAgIC8vIGJlY2F1c2Ugd2UgZXhwZWN0IHRoYXQgYW55IGhv
dCBjYWxsZWVzIHdvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIGNvbXBpbGVkLgogICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gZXhlY3V0YWJsZS0+YmFzZWxpbmVDb2RlQmxvY2tGb3Ioa2luZCk7Ci0g
ICAgaWYgKCFjb2RlQmxvY2spCisgICAgaWYgKCFjb2RlQmxvY2spIHsKKyAgICAgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIG5vIGNvZGUg
YmxvY2sgYXZhaWxhYmxlLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWNh
bklubGluZUZ1bmN0aW9uRm9yKGNvZGVCbG9jaywga2luZCwgY2FsbExpbmtTdGF0dXMuaXNDbG9z
dXJlQ2FsbCgpKSkKKyAgICB9CisgICAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbCA9
IGlubGluZUZ1bmN0aW9uRm9yQ2FwYWJpbGl0eUxldmVsKAorICAgICAgICBjb2RlQmxvY2ssIGtp
bmQsIGNhbGxMaW5rU3RhdHVzLmlzQ2xvc3VyZUNhbGwoKSk7CisgICAgaWYgKCFjYW5JbmxpbmUo
Y2FwYWJpbGl0eUxldmVsKSkgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIGRh
dGFMb2coIiAgICBGYWlsaW5nIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIGlzIG5vdCBpbmxpbmVhYmxl
LlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgLy8gRklYTUU6
IHRoaXMgc2hvdWxkIGJlIGJldHRlciBhdCBwcmVkaWN0aW5nIGhvdyBtdWNoIGJsb2F0IHdlIHdp
bGwgaW50cm9kdWNlIGJ5IGlubGluaW5nCisgICAgLy8gdGhpcyBmdW5jdGlvbi4KKyAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjI3CisgICAgCisgICAg
Ly8gSGF2ZSB3ZSBleGNlZWRlZCBpbmxpbmUgc3RhY2sgZGVwdGgsIG9yIGFyZSB3ZSB0cnlpbmcg
dG8gaW5saW5lIGEgcmVjdXJzaXZlIGNhbGwgdG8KKyAgICAvLyB0b28gbWFueSBsZXZlbHM/IElm
IGVpdGhlciBvZiB0aGVzZSBhcmUgZGV0ZWN0ZWQsIHRoZW4gZG9uJ3QgaW5saW5lLiBXZSBhZGp1
c3Qgb3VyCisgICAgLy8gaGV1cmlzdGljcyBpZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgZnVuY3Rp
b24gdGhhdCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIGNvbXBpbGVkLgorICAgIAorICAgIHVuc2lnbmVk
IGRlcHRoID0gMDsKKyAgICB1bnNpZ25lZCByZWN1cnNpb24gPSAwOworICAgIAorICAgIGZvciAo
SW5saW5lU3RhY2tFbnRyeSogZW50cnkgPSBtX2lubGluZVN0YWNrVG9wOyBlbnRyeTsgZW50cnkg
PSBlbnRyeS0+bV9jYWxsZXIpIHsKKyAgICAgICAgKytkZXB0aDsKKyAgICAgICAgaWYgKGRlcHRo
ID49IE9wdGlvbnM6Om1heGltdW1JbmxpbmluZ0RlcHRoKCkpIHsKKyAgICAgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBGYWlsaW5nIGJlY2F1c2UgZGVw
dGggZXhjZWVkZWQuXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgaWYgKGVudHJ5LT5leGVjdXRhYmxlKCkgPT0gZXhlY3V0YWJsZSkg
eworICAgICAgICAgICAgKytyZWN1cnNpb247CisgICAgICAgICAgICBpZiAocmVjdXJzaW9uID49
IE9wdGlvbnM6Om1heGltdW1JbmxpbmluZ1JlY3Vyc2lvbigpKSB7CisgICAgICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBGYWlsaW5nIGJl
Y2F1c2UgcmVjdXJzaW9uIGRldGVjdGVkLlxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICBkYXRhTG9nKCIgICAgQ29tbWl0dGluZyB0byBpbmxpbmluZy5cbiIpOwog
ICAgIAogICAgIC8vIE5vdyB3ZSBrbm93IHdpdGhvdXQgYSBkb3VidCB0aGF0IHdlIGFyZSBjb21t
aXR0ZWQgdG8gaW5saW5pbmcuIFNvIGJlZ2luIHRoZSBwcm9jZXNzCiAgICAgLy8gYnkgY2hlY2tp
bmcgdGhlIGNhbGxlZSAoaWYgbmVjZXNzYXJ5KSBhbmQgbWFraW5nIHN1cmUgdGhhdCBhcmd1bWVu
dHMgYW5kIHRoZSBjYWxsZWUKQEAgLTE3NzMsMTEgKzE4MjMsNyBAQCB2b2lkIEJ5dGVDb2RlUGFy
c2VyOjpoYW5kbGVHZXRCeUlkKAogICAgIGludCBkZXN0aW5hdGlvbk9wZXJhbmQsIFNwZWN1bGF0
ZWRUeXBlIHByZWRpY3Rpb24sIE5vZGUqIGJhc2UsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIs
CiAgICAgY29uc3QgR2V0QnlJZFN0YXR1cyYgZ2V0QnlJZFN0YXR1cykKIHsKLSAgICBpZiAoIWdl
dEJ5SWRTdGF0dXMuaXNTaW1wbGUoKQotICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4
aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkKLSAgICAgICAg
fHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJ
bmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KQotICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5t
X2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRD
YWNoZSkKLSAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0
U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50KSkgewor
ICAgIGlmICghZ2V0QnlJZFN0YXR1cy5pc1NpbXBsZSgpKSB7CiAgICAgICAgIHNldChWaXJ0dWFs
UmVnaXN0ZXIoZGVzdGluYXRpb25PcGVyYW5kKSwKICAgICAgICAgICAgIGFkZFRvR3JhcGgoCiAg
ICAgICAgICAgICAgICAgZ2V0QnlJZFN0YXR1cy5tYWtlc0NhbGxzKCkgPyBHZXRCeUlkRmx1c2gg
OiBHZXRCeUlkLApAQCAtMjQ0NCw2ICsyNDkwLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFy
c2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQocHJvcGVydHkpOwog
ICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQodmFsdWUpOwogICAgICAgICAgICAgYWRkVmFyQXJn
Q2hpbGQoMCk7IC8vIExlYXZlIHJvb20gZm9yIHByb3BlcnR5IHN0b3JhZ2UuCisgICAgICAgICAg
ICBhZGRWYXJBcmdDaGlsZCgwKTsgLy8gTGVhdmUgcm9vbSBmb3IgbGVuZ3RoLgogICAgICAgICAg
ICAgYWRkVG9HcmFwaChOb2RlOjpWYXJBcmcsIG9wY29kZUlEID09IG9wX3B1dF9ieV92YWxfZGly
ZWN0ID8gUHV0QnlWYWxEaXJlY3QgOiBQdXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQo
KSksIE9wSW5mbygwKSk7CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9ieV92YWwp
OwpAQCAtMjQ1OSw4ICsyNTA2LDkgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1
bnNpZ25lZAogICAgICAgICAgICAgCiAgICAgICAgICAgICBTdHJpbmdJbXBsKiB1aWQgPSBtX2dy
YXBoLmlkZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJlcl07CiAgICAgICAgICAgICBHZXRCeUlk
U3RhdHVzIGdldEJ5SWRTdGF0dXMgPSBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAotICAgICAg
ICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9pbmxpbmVTdGFj
a1RvcC0+bV9zdHViSW5mb3MsCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50SW5kZXgsIHVpZCk7
CisgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCBtX2Rm
Z0NvZGVCbG9jaywKKyAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3N0dWJJbmZv
cywgbV9kZmdTdHViSW5mb3MsCisgICAgICAgICAgICAgICAgY3VycmVudENvZGVPcmlnaW4oKSwg
dWlkKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaGFuZGxlR2V0QnlJZCgKICAgICAgICAg
ICAgICAgICBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBwcmVkaWN0aW9uLCBiYXNl
LCBpZGVudGlmaWVyTnVtYmVyLCBnZXRCeUlkU3RhdHVzKTsKQEAgLTI0NzksMjYgKzI1MjcsMjAg
QEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAg
Ym9vbCBkaXJlY3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bOF0udS5vcGVyYW5kOwogCiAgICAgICAg
ICAgICBQdXRCeUlkU3RhdHVzIHB1dEJ5SWRTdGF0dXMgPSBQdXRCeUlkU3RhdHVzOjpjb21wdXRl
Rm9yKAotICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywg
bV9pbmxpbmVTdGFja1RvcC0+bV9zdHViSW5mb3MsCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50
SW5kZXgsIG1fZ3JhcGguaWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVtYmVyXSk7CisgICAgICAg
ICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCBtX2RmZ0NvZGVCbG9j
aywKKyAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3N0dWJJbmZvcywgbV9kZmdT
dHViSW5mb3MsCisgICAgICAgICAgICAgICAgY3VycmVudENvZGVPcmlnaW4oKSwgbV9ncmFwaC5p
ZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdKTsKICAgICAgICAgICAgIGJvb2wgY2FuQ291
bnRBc0lubGluZWQgPSB0cnVlOwogICAgICAgICAgICAgaWYgKCFwdXRCeUlkU3RhdHVzLmlzU2V0
KCkpIHsKICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKEZvcmNlT1NSRXhpdCk7CiAgICAgICAg
ICAgICAgICAgY2FuQ291bnRBc0lubGluZWQgPSBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIAotICAgICAgICAgICAgYm9vbCBoYXNFeGl0U2l0ZSA9Ci0gICAgICAgICAgICAgICAg
bV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRl
eCwgQmFkQ2FjaGUpCi0gICAgICAgICAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0
UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KQot
ICAgICAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhp
dFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlKQotICAgICAgICAgICAg
ICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJy
ZW50SW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2ludCk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIGlmICghaGFzRXhpdFNpdGUgJiYgcHV0QnlJZFN0YXR1cy5pc1NpbXBsZVJl
cGxhY2UoKSkgeworICAgICAgICAgICAgaWYgKHB1dEJ5SWRTdGF0dXMuaXNTaW1wbGVSZXBsYWNl
KCkpIHsKICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrU3RydWN0dXJlLCBPcEluZm8o
bV9ncmFwaC5hZGRTdHJ1Y3R1cmVTZXQocHV0QnlJZFN0YXR1cy5vbGRTdHJ1Y3R1cmUoKSkpLCBi
YXNlKTsKICAgICAgICAgICAgICAgICBoYW5kbGVQdXRCeU9mZnNldChiYXNlLCBpZGVudGlmaWVy
TnVtYmVyLCBwdXRCeUlkU3RhdHVzLm9mZnNldCgpLCB2YWx1ZSk7CiAgICAgICAgICAgICB9IGVs
c2UgaWYgKAotICAgICAgICAgICAgICAgICFoYXNFeGl0U2l0ZQotICAgICAgICAgICAgICAgICYm
IHB1dEJ5SWRTdGF0dXMuaXNTaW1wbGVUcmFuc2l0aW9uKCkKKyAgICAgICAgICAgICAgICBwdXRC
eUlkU3RhdHVzLmlzU2ltcGxlVHJhbnNpdGlvbigpCiAgICAgICAgICAgICAgICAgJiYgKCFwdXRC
eUlkU3RhdHVzLnN0cnVjdHVyZUNoYWluKCkKICAgICAgICAgICAgICAgICAgICAgfHwgcHV0QnlJ
ZFN0YXR1cy5zdHJ1Y3R1cmVDaGFpbigpLT5pc1N0aWxsVmFsaWQoKSkpIHsKICAgICAgICAgICAg
ICAgICAKQEAgLTI5NzMsMzAgKzMwMTUsNDEgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VC
bG9jayh1bnNpZ25lZAogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY29uc3RydWN0KTsKICAg
ICAgICAgICAgIAogICAgICAgICBjYXNlIG9wX2NhbGxfdmFyYXJnczogeworICAgICAgICAgICAg
aW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgICAgICAg
ICBpbnQgY2FsbGVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICAgICAg
ICAgIGludCB0aGlzUmVnID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICAg
ICAgICAgIGludCBhcmd1bWVudHMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwor
ICAgICAgICAgICAgaW50IGZpcnN0RnJlZVJlZyA9IGN1cnJlbnRJbnN0cnVjdGlvbls1XS51Lm9w
ZXJhbmQ7CisgICAgICAgICAgICAKICAgICAgICAgICAgIEFTU0VSVChpbmxpbmVDYWxsRnJhbWUo
KSk7Ci0gICAgICAgICAgICBBU1NFUlQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCA9
PSBtX2lubGluZVN0YWNrVG9wLT5tX2NvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKS5vZmZz
ZXQoKSk7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGFyZ3VtZW50cywgYXJndW1lbnRzID09
IG1faW5saW5lU3RhY2tUb3AtPm1fY29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpLm9mZnNl
dCgpKTsKICAgICAgICAgICAgIEFTU0VSVCghbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxvY2st
PnN5bWJvbFRhYmxlKCktPnNsb3dBcmd1bWVudHMoKSk7Ci0gICAgICAgICAgICAvLyBJdCB3b3Vs
ZCBiZSBjb29sIHRvIGZ1bm5lbCB0aGlzIGludG8gaGFuZGxlQ2FsbCgpIHNvIHRoYXQgaXQgY2Fu
IGhhbmRsZQotICAgICAgICAgICAgLy8gaW5saW5pbmcuIEJ1dCBjdXJyZW50bHkgdGhhdCB3b24n
dCBiZSBwcm9maXRhYmxlIGFueXdheSwgc2luY2Ugbm9uZSBvZiB0aGUKLSAgICAgICAgICAgIC8v
IHVzZXMgb2YgY2FsbF92YXJhcmdzIHdpbGwgYmUgaW5saW5lYWJsZS4gU28gd2Ugc2V0IHRoaXMg
dXAgbWFudWFsbHkgYW5kCi0gICAgICAgICAgICAvLyB3aXRob3V0IGlubGluZS9pbnRyaW5zaWMg
ZGV0ZWN0aW9uLgotICAgICAgICAgICAgCi0gICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVk
aWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGFk
ZFRvR3JhcGgoQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKTsKLSAgICAgICAgICAgIAorCiAgICAg
ICAgICAgICB1bnNpZ25lZCBhcmdDb3VudCA9IGlubGluZUNhbGxGcmFtZSgpLT5hcmd1bWVudHMu
c2l6ZSgpOwotICAgICAgICAgICAgaWYgKEpTU3RhY2s6OlRoaXNBcmd1bWVudCArIGFyZ0NvdW50
ID4gbV9wYXJhbWV0ZXJTbG90cykKLSAgICAgICAgICAgICAgICBtX3BhcmFtZXRlclNsb3RzID0g
SlNTdGFjazo6VGhpc0FyZ3VtZW50ICsgYXJnQ291bnQ7CiAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIGFkZFZhckFyZ0NoaWxkKGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZCkpKTsgLy8gY2FsbGVlCi0gICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChn
ZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7IC8v
IHRoaXMKKyAgICAgICAgICAgIC8vIExldCdzIGNvbXB1dGUgdGhlIHJlZ2lzdGVyIG9mZnNldC4g
V2Ugc3RhcnQgd2l0aCB0aGUgbGFzdCB1c2VkIHJlZ2lzdGVyLCBhbmQKKyAgICAgICAgICAgIC8v
IHRoZW4gYWRqdXN0IGZvciB0aGUgdGhpbmdzIHdlIHdhbnQgaW4gdGhlIGNhbGwgZnJhbWUuCisg
ICAgICAgICAgICBpbnQgcmVnaXN0ZXJPZmZzZXQgPSBmaXJzdEZyZWVSZWcgKyAxOworICAgICAg
ICAgICAgcmVnaXN0ZXJPZmZzZXQgLT0gYXJnQ291bnQ7IC8vIFdlIHdpbGwgYmUgcGFzc2luZyBz
b21lIGFyZ3VtZW50cy4KKyAgICAgICAgICAgIHJlZ2lzdGVyT2Zmc2V0IC09IEpTU3RhY2s6OkNh
bGxGcmFtZUhlYWRlclNpemU7IC8vIFdlIHdpbGwgcHJldGVuZCB0byBoYXZlIGEgY2FsbCBmcmFt
ZSBoZWFkZXIuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEdldCB0aGUgYWxpZ25tZW50
IHJpZ2h0LgorICAgICAgICAgICAgcmVnaXN0ZXJPZmZzZXQgPSAtV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mKAorICAgICAgICAgICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksCisgICAg
ICAgICAgICAgICAgLXJlZ2lzdGVyT2Zmc2V0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
Ly8gVGhlIGJ5dGVjb2RlIHdvdWxkbid0IGhhdmUgc2V0IHVwIHRoZSBhcmd1bWVudHMuIEJ1dCB3
ZSdsbCBkbyBpdCBhbmQgbWFrZSBpdAorICAgICAgICAgICAgLy8gbG9vayBsaWtlIHRoZSBieXRl
Y29kZSBoYWQgZG9uZSBpdC4KKyAgICAgICAgICAgIGludCBuZXh0UmVnaXN0ZXIgPSByZWdpc3Rl
ck9mZnNldCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7CisgICAgICAgICAgICBzZXQo
VmlydHVhbFJlZ2lzdGVyKG5leHRSZWdpc3RlcisrKSwgZ2V0KFZpcnR1YWxSZWdpc3Rlcih0aGlz
UmVnKSksIEltbWVkaWF0ZVNldCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGFyZ3VtZW50
ID0gMTsgYXJndW1lbnQgPCBhcmdDb3VudDsgKythcmd1bWVudCkKLSAgICAgICAgICAgICAgICBh
ZGRWYXJBcmdDaGlsZChnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpKSk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZCksCi0gICAgICAgICAgICAgICAgYWRkVG9HcmFwaChOb2Rl
OjpWYXJBcmcsIENhbGwsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pKSk7CisgICAgICAg
ICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihuZXh0UmVnaXN0ZXIrKyksIGdldCh2aXJ0dWFs
UmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkpLCBJbW1lZGlhdGVTZXQpOwogICAgICAgICAg
ICAgCisgICAgICAgICAgICBoYW5kbGVDYWxsKAorICAgICAgICAgICAgICAgIHJlc3VsdCwgQ2Fs
bCwgQ29kZUZvckNhbGwsIE9QQ09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKSwKKyAgICAgICAg
ICAgICAgICBjYWxsZWUsIGFyZ0NvdW50LCByZWdpc3Rlck9mZnNldCk7CiAgICAgICAgICAgICBO
RVhUX09QQ09ERShvcF9jYWxsX3ZhcmFyZ3MpOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAg
LTM2NTQsNiArMzcwNywxNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZSgpCiAgICAgLy8g
U2V0IGR1cmluZyBjb25zdHJ1Y3Rpb24uCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRJbmRleCk7CiAg
ICAgCisgICAgaWYgKGlzRlRMKG1fZ3JhcGgubV9wbGFuLm1vZGUpKSB7CisgICAgICAgIG1fZGZn
Q29kZUJsb2NrID0gbV9ncmFwaC5tX3BsYW4ucHJvZmlsZWRERkdDb2RlQmxvY2suZ2V0KCk7Cisg
ICAgICAgIGlmIChtX2RmZ0NvZGVCbG9jaykgeworICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmVu
YWJsZVBvbHl2YXJpYW50Q2FsbElubGluaW5nKCkpCisgICAgICAgICAgICAgICAgQ2FsbExpbmtT
dGF0dXM6OmNvbXB1dGVERkdTdGF0dXNlcyhtX2RmZ0NvZGVCbG9jaywgbV9jYWxsQ29udGV4dE1h
cCk7CisgICAgICAgICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlUG9seXZhcmlhbnRCeUlkSW5saW5p
bmcoKSkKKyAgICAgICAgICAgICAgICBtX2RmZ0NvZGVCbG9jay0+Z2V0U3R1YkluZm9NYXAobV9k
ZmdTdHViSW5mb3MpOworICAgICAgICB9CisgICAgfQorICAgIAogICAgIGlmIChtX2NvZGVCbG9j
ay0+Y2FwdHVyZUNvdW50KCkpIHsKICAgICAgICAgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlID0g
bV9jb2RlQmxvY2stPnN5bWJvbFRhYmxlKCk7CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKHN5bWJvbFRhYmxlLT5tX2xvY2spOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0
aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSw4IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICAgICAgICAgLy8gc3Vib3B0aW1hbCwgYmVjYXVzZSBpZiBteSBzdWNjZXNzb3Ig
aGFzIG11bHRpcGxlIHByZWRlY2Vzc29ycyB0aGVuIHdlJ2xsCiAgICAgICAgICAgICAgICAgICAg
IC8vIGJlIGtlZXBpbmcgYWxpdmUgdGhpbmdzIG9uIG90aGVyIHByZWRlY2Vzc29yIGVkZ2VzIHVu
bmVjZXNzYXJpbHkuCiAgICAgICAgICAgICAgICAgICAgIC8vIFdoYXQgd2UgcmVhbGx5IG5lZWQg
aXMgdGhlIG5vdGlvbiBvZiBlbmQtb2YtYmxvY2sgZ2hvc3RpZXMhCisgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBBbGxvdyBwdXR0aW5nIHBoYW50b21zIGFmdGVyIHRlcm1pbmFscy4KKyAg
ICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNjc3OAogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NT
RVBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NT
RVBoYXNlLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDU0VQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lm
IEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiREZHQWJzdHJhY3RIZWFwLmgiCisjaW5jbHVk
ZSAiREZHQ2xvYmJlcml6ZS5oIgogI2luY2x1ZGUgIkRGR0VkZ2VVc2VzU3RydWN0dXJlLmgiCiAj
aW5jbHVkZSAiREZHR3JhcGguaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgpAQCAtMTAwNiw2ICsx
MDA4LDE4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAor
ICAgIGJvb2wgaW52YWxpZGF0aW9uUG9pbnRFbGltaW5hdGlvbigpCisgICAgeworICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSBtX2luZGV4SW5CbG9jazsgaS0tOykgeworICAgICAgICAgICAgTm9k
ZSogbm9kZSA9IG1fY3VycmVudEJsb2NrLT5hdChpKTsKKyAgICAgICAgICAgIGlmIChub2RlLT5v
cCgpID09IEludmFsaWRhdGlvblBvaW50KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgaWYgKHdyaXRlc092ZXJsYXAobV9ncmFwaCwgbm9kZSwgV2F0Y2hwb2ludF9m
aXJlKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIAogICAgIHZvaWQgZWxpbWluYXRlSXJyZWxldmFudFBoYW50b21D
aGlsZHJlbihOb2RlKiBub2RlKQogICAgIHsKICAgICAgICAgQVNTRVJUKG5vZGUtPm9wKCkgPT0g
UGhhbnRvbSk7CkBAIC0xMzg1LDkgKzEzOTksMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGVs
aW1pbmF0ZShwdXRCeU9mZnNldFN0b3JlRWxpbWluYXRpb24obV9ncmFwaC5tX3N0b3JhZ2VBY2Nl
c3NEYXRhW25vZGUtPnN0b3JhZ2VBY2Nlc3NEYXRhSW5kZXgoKV0uaWRlbnRpZmllck51bWJlciwg
bm9kZS0+Y2hpbGQxKCkubm9kZSgpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IAorICAgICAgICBjYXNlIEludmFsaWRhdGlvblBvaW50OgorICAgICAgICAgICAgaWYgKGludmFs
aWRhdGlvblBvaW50RWxpbWluYXRpb24oKSkKKyAgICAgICAgICAgICAgICBlbGltaW5hdGUoKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgUGhhbnRvbToK
ICAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSBvdWdodCB0byByZW1vdmUgUGhhbnRvbSdzIHRoYXQg
aGF2ZSBubyBjaGlsZHJlbi4KLSAgICAgICAgICAgIAogICAgICAgICAgICAgZWxpbWluYXRlSXJy
ZWxldmFudFBoYW50b21DaGlsZHJlbihub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRp
ZXMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw2ICsxOTgsOCBAQCBDYXBh
YmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlECiAgICAgY2FzZSBvcF9jYWxsX3Zh
cmFyZ3M6CiAgICAgICAgIGlmIChjb2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSAmJiBwY1s0XS51
Lm9wZXJhbmQgPT0gY29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpLm9mZnNldCgpKQogICAg
ICAgICAgICAgcmV0dXJuIENhbklubGluZTsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBo
YW5kbGUgdGhpcy4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNzYyNgogICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKIAogICAgIGNhc2Ug
b3BfbmV3X3JlZ2V4cDogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFi
aWxpdGllcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2Fw
YWJpbGl0aWVzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2FwYWJpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDE5ICs5NiwyOCBAQCBp
bmxpbmUgQ2FwYWJpbGl0eUxldmVsIGZ1bmN0aW9uRm9yQ29uc3RyCiAgICAgcmV0dXJuIGNhcGFi
aWxpdHlMZXZlbChjb2RlQmxvY2spOwogfQogCi1pbmxpbmUgYm9vbCBjYW5JbmxpbmVGdW5jdGlv
bkZvckNhbGwoQ29kZUJsb2NrKiBjb2RlQmxvY2spCitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGlu
bGluZUZ1bmN0aW9uRm9yQ2FsbENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaykK
IHsKLSAgICByZXR1cm4gbWlnaHRJbmxpbmVGdW5jdGlvbkZvckNhbGwoY29kZUJsb2NrKSAmJiBj
YW5JbmxpbmUoY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jaykpOworICAgIGlmICghbWlnaHRJbmxp
bmVGdW5jdGlvbkZvckNhbGwoY29kZUJsb2NrKSkKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBp
bGU7CisgICAgCisgICAgcmV0dXJuIGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwogfQogCi1p
bmxpbmUgYm9vbCBjYW5JbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxsKENvZGVCbG9jayogY29k
ZUJsb2NrKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVD
YWxsQ2FwYWJpbGl0eUxldmVsKENvZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBt
aWdodElubGluZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGwoY29kZUJsb2NrKSAmJiBjYW5JbmxpbmUo
Y2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jaykpOworICAgIGlmICghbWlnaHRJbmxpbmVGdW5jdGlv
bkZvckNsb3N1cmVDYWxsKGNvZGVCbG9jaykpCisgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxl
OworICAgIAorICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAotaW5s
aW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3JDb25zdHJ1Y3QoQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGlubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0Q2Fw
YWJpbGl0eUxldmVsKENvZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBtaWdodElu
bGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KGNvZGVCbG9jaykgJiYgY2FuSW5saW5lKGNhcGFiaWxp
dHlMZXZlbChjb2RlQmxvY2spKTsKKyAgICBpZiAoIW1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDb25z
dHJ1Y3QoY29kZUJsb2NrKSkKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAgCisg
ICAgcmV0dXJuIGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwogfQogCiBpbmxpbmUgYm9vbCBt
aWdodElubGluZUZ1bmN0aW9uRm9yKENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGtpbmQpCkBAIC0xMjQsMTYgKzEzMywxNiBAQCBpbmxpbmUgYm9vbCBtaWdodElu
bGluZUZ1bmN0aW9uKENvZGVCbG9jCiAgICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3Io
Y29kZUJsb2NrLCBjb2RlQmxvY2stPnNwZWNpYWxpemF0aW9uS2luZCgpKTsKIH0KIAotaW5saW5l
IGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVTcGVj
aWFsaXphdGlvbktpbmQga2luZCwgYm9vbCBpc0Nsb3N1cmVDYWxsKQoraW5saW5lIENhcGFiaWxp
dHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBib29sIGlzQ2xvc3VyZUNhbGwpCiB7
CiAgICAgaWYgKGlzQ2xvc3VyZUNhbGwpIHsKICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZv
ckNhbGwpOwotICAgICAgICByZXR1cm4gY2FuSW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChj
b2RlQmxvY2spOworICAgICAgICByZXR1cm4gaW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbENh
cGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwogICAgIH0KICAgICBpZiAoa2luZCA9PSBDb2RlRm9y
Q2FsbCkKLSAgICAgICAgcmV0dXJuIGNhbklubGluZUZ1bmN0aW9uRm9yQ2FsbChjb2RlQmxvY2sp
OworICAgICAgICByZXR1cm4gaW5saW5lRnVuY3Rpb25Gb3JDYWxsQ2FwYWJpbGl0eUxldmVsKGNv
ZGVCbG9jayk7CiAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgcmV0
dXJuIGNhbklubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KGNvZGVCbG9jayk7CisgICAgcmV0dXJu
IGlubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0Q2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiB9
CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDb21tb24uaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtODcsMTUgKzg3LDYgQEAgaW5saW5l
IGJvb2wgdmFsaWRhdGlvbkVuYWJsZWQoKQogI2VuZGlmCiB9CiAKLWlubGluZSBib29sIGVuYWJs
ZUNvbmN1cnJlbnRKSVQoKQotewotI2lmIEVOQUJMRShDT05DVVJSRU5UX0pJVCkKLSAgICByZXR1
cm4gT3B0aW9uczo6ZW5hYmxlQ29uY3VycmVudEpJVCgpICYmIE9wdGlvbnM6Om51bWJlck9mQ29t
cGlsZXJUaHJlYWRzKCk7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBp
bmxpbmUgYm9vbCBlbmFibGVJbnQ1MigpCiB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTIzNSw3
ICsyMjYsMTMgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiAvLyBQdXQgdGhp
bmdzIGhlcmUgdGhhdCBtdXN0IGJlIGRlZmluZWQgZXZlbiBpZiBFTkFCTEUoREZHX0pJVCkgaXMg
ZmFsc2UuCiAKLWVudW0gQ2FwYWJpbGl0eUxldmVsIHsgQ2Fubm90Q29tcGlsZSwgQ2FuSW5saW5l
LCBDYW5Db21waWxlLCBDYW5Db21waWxlQW5kSW5saW5lLCBDYXBhYmlsaXR5TGV2ZWxOb3RTZXQg
fTsKK2VudW0gQ2FwYWJpbGl0eUxldmVsIHsKKyAgICBDYW5ub3RDb21waWxlLAorICAgIENhbklu
bGluZSwKKyAgICBDYW5Db21waWxlLAorICAgIENhbkNvbXBpbGVBbmRJbmxpbmUsCisgICAgQ2Fw
YWJpbGl0eUxldmVsTm90U2V0Cit9OwogCiBpbmxpbmUgYm9vbCBjYW5Db21waWxlKENhcGFiaWxp
dHlMZXZlbCBsZXZlbCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29t
cGlsYXRpb25Nb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb21waWxhdGlvbk1vZGUuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDb21waWxhdGlvbk1vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsMTcgQEAgZW51bSBDb21waWxhdGlvbk1vZGUgewogICAgIEZUTEZvck9TUkVudHJ5TW9kZQog
fTsKIAoraW5saW5lIGJvb2wgaXNGVEwoQ29tcGlsYXRpb25Nb2RlIG1vZGUpCit7CisgICAgc3dp
dGNoIChtb2RlKSB7CisgICAgY2FzZSBGVExNb2RlOgorICAgIGNhc2UgRlRMRm9yT1NSRW50cnlN
b2RlOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKIG5hbWVzcGFj
ZSBXVEYgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAkocmV2
aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw5ICs1Niw5IEBAIHVu
c2lnbmVkIGdldE51bUNvbXBpbGF0aW9ucygpCiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIHN0YXRp
YyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKLSAgICBWTSYgdm0sIENvZGVCbG9jayog
Y29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9kZSwgdW5zaWduZWQgb3NyRW50cnlCeXRlY29k
ZUluZGV4LAotICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzLAot
ICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywgV29y
a2xpc3QqIHdvcmtsaXN0KQorICAgIFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVC
bG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0aW9uTW9kZSBtb2RlLAorICAgIHVu
c2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11
c3RIYW5kbGVWYWx1ZXMsCisgICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJh
Y2s+IGNhbGxiYWNrKQogewogICAgIFNhbXBsaW5nUmVnaW9uIHNhbXBsaW5nUmVnaW9uKCJERkcg
Q29tcGlsYXRpb24gKERyaXZlcikiKTsKICAgICAKQEAgLTY3LDYgKzY3LDcgQEAgc3RhdGljIENv
bXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAogICAgIEFTU0VSVChjb2RlQmxvY2spOwogICAg
IEFTU0VSVChjb2RlQmxvY2stPmFsdGVybmF0aXZlKCkpOwogICAgIEFTU0VSVChjb2RlQmxvY2st
PmFsdGVybmF0aXZlKCktPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7CisgICAg
QVNTRVJUKCFwcm9maWxlZERGR0NvZGVCbG9jayB8fCBwcm9maWxlZERGR0NvZGVCbG9jay0+aml0
VHlwZSgpID09IEpJVENvZGU6OkRGR0pJVCk7CiAgICAgCiAgICAgaWYgKCFPcHRpb25zOjp1c2VE
RkdKSVQoKSB8fCAhTWFjcm9Bc3NlbWJsZXI6OnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKQogICAg
ICAgICByZXR1cm4gQ29tcGlsYXRpb25GYWlsZWQ7CkBAIC04OCwxNiArODksMzEgQEAgc3RhdGlj
IENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAogICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGFs
bCBKSVQgY29kZSBnZW5lcmF0aW9uIGRvZXMgZmluYWxpemF0aW9uIG9uIHRoZSBtYWluIHRocmVh
ZC4KICAgICB2bS5nZXRDVElTdHViKG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOwog
ICAgIHZtLmdldENUSVN0dWIodGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9y
KTsKLSAgICB2bS5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpOwotICAgIHZtLmdl
dENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHVi
KGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHViKHZpcnR1
YWxDYWxsVGh1bmtHZW5lcmF0b3IpOwotICAgIHZtLmdldENUSVN0dWIodmlydHVhbENvbnN0cnVj
dFRodW5rR2VuZXJhdG9yKTsKKyAgICBpZiAobW9kZSA9PSBERkdNb2RlKSB7CisgICAgICAgIHZt
LmdldENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0
dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1Yihs
aW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmly
dHVhbENhbGxUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmlydHVhbENv
bnN0cnVjdFRodW5rR2VuZXJhdG9yKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2bS5nZXRDVElT
dHViKGxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZt
LmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3Ip
OworICAgICAgICB2bS5nZXRDVElTdHViKGxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdz
VGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGhhdFBy
ZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmlydHVh
bENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAgIH0KICAgICAK
ICAgICBSZWZQdHI8UGxhbj4gcGxhbiA9IGFkb3B0UmVmKAotICAgICAgICBuZXcgUGxhbihjb2Rl
QmxvY2ssIG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcykpOwor
ICAgICAgICBuZXcgUGxhbihjb2RlQmxvY2ssIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBtb2RlLCBv
c3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RIYW5kbGVWYWx1ZXMpKTsKICAgICAKLSAgICBpZiAo
d29ya2xpc3QpIHsKKyAgICBib29sIGVuYWJsZUNvbmN1cnJlbnRKSVQ7CisjaWYgRU5BQkxFKENP
TkNVUlJFTlRfSklUKQorICAgIGVuYWJsZUNvbmN1cnJlbnRKSVQgPSBPcHRpb25zOjplbmFibGVD
b25jdXJyZW50SklUKCk7CisjZWxzZSAvLyBFTkFCTEUoQ09OQ1VSUkVOVF9KSVQpCisgICAgZW5h
YmxlQ29uY3VycmVudEpJVCA9IGZhbHNlOworI2VuZGlmIC8vIEVOQUJMRShDT05DVVJSRU5UX0pJ
VCkKKyAgICBpZiAoZW5hYmxlQ29uY3VycmVudEpJVCkgeworICAgICAgICBXb3JrbGlzdCogd29y
a2xpc3QgPSBlbnN1cmVHbG9iYWxXb3JrbGlzdEZvcihtb2RlKTsKICAgICAgICAgcGxhbi0+Y2Fs
bGJhY2sgPSBjYWxsYmFjazsKICAgICAgICAgaWYgKGxvZ0NvbXBpbGF0aW9uQ2hhbmdlcygpKQog
ICAgICAgICAgICAgZGF0YUxvZygiRGVmZXJyaW5nIERGRyBjb21waWxhdGlvbiBvZiAiLCAqY29k
ZUJsb2NrLCAiIHdpdGggcXVldWUgbGVuZ3RoICIsIHdvcmtsaXN0LT5xdWV1ZUxlbmd0aCgpLCAi
LlxuIik7CkBAIC0xMTAsMjEgKzEyNiwyMiBAQCBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29t
cGlsZUltcGwoCiB9CiAjZWxzZSAvLyBFTkFCTEUoREZHX0pJVCkKIHN0YXRpYyBDb21waWxhdGlv
blJlc3VsdCBjb21waWxlSW1wbCgKLSAgICBWTSYsIENvZGVCbG9jayosIENvbXBpbGF0aW9uTW9k
ZSwgdW5zaWduZWQsIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiwKLSAgICBQYXNzUmVmUHRyPERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4sIFdvcmtsaXN0KikKKyAgICBWTSYsIENvZGVCbG9j
ayosIENvZGVCbG9jayosIENvbXBpbGF0aW9uTW9kZSwgdW5zaWduZWQsIGNvbnN0IE9wZXJhbmRz
PEpTVmFsdWU+JiwKKyAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4p
CiB7CiAgICAgcmV0dXJuIENvbXBpbGF0aW9uRmFpbGVkOwogfQogI2VuZGlmIC8vIEVOQUJMRShE
RkdfSklUKQogCiBDb21waWxhdGlvblJlc3VsdCBjb21waWxlKAotICAgIFZNJiB2bSwgQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIENvbXBpbGF0aW9uTW9kZSBtb2RlLCB1bnNpZ25lZCBvc3JFbnRyeUJ5
dGVjb2RlSW5kZXgsCi0gICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1
ZXMsCi0gICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IHBhc3NlZENh
bGxiYWNrLCBXb3JrbGlzdCogd29ya2xpc3QpCisgICAgVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1v
ZGUsCisgICAgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LCBjb25zdCBPcGVyYW5kczxK
U1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcywKKyAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjaz4gcGFzc2VkQ2FsbGJhY2spCiB7CiAgICAgUmVmUHRyPERlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjaz4gY2FsbGJhY2sgPSBwYXNzZWRDYWxsYmFjazsKICAgICBDb21waWxh
dGlvblJlc3VsdCByZXN1bHQgPSBjb21waWxlSW1wbCgKLSAgICAgICAgdm0sIGNvZGVCbG9jaywg
bW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFsdWVzLCBjYWxsYmFjaywg
d29ya2xpc3QpOworICAgICAgICB2bSwgY29kZUJsb2NrLCBwcm9maWxlZERGR0NvZGVCbG9jaywg
bW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFsdWVzLAorICAgICAgICBj
YWxsYmFjayk7CiAgICAgaWYgKHJlc3VsdCAhPSBDb21waWxhdGlvbkRlZmVycmVkKQogICAgICAg
ICBjYWxsYmFjay0+Y29tcGlsYXRpb25EaWRDb21wbGV0ZShjb2RlQmxvY2ssIHJlc3VsdCk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJp
dmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIu
aAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsMTYgKzQwLDE0IEBAIGNsYXNzIFZN
OwogCiBuYW1lc3BhY2UgREZHIHsKIAotY2xhc3MgV29ya2xpc3Q7Ci0KIEpTX0VYUE9SVF9QUklW
QVRFIHVuc2lnbmVkIGdldE51bUNvbXBpbGF0aW9ucygpOwogCiAvLyBJZiB0aGUgd29ya2xpc3Qg
aXMgbm9uLW51bGwsIHdlIGRvIGEgY29uY3VycmVudCBjb21waWxlLiBPdGhlcndpc2Ugd2UgZG8g
YSBzeW5jaHJvbm91cwogLy8gY29tcGlsZS4gRXZlbiBpZiB3ZSBkbyBhIHN5bmNocm9ub3VzIGNv
bXBpbGUsIHdlIGNhbGwgdGhlIGNhbGxiYWNrIHdpdGggdGhlIHJlc3VsdC4KIENvbXBpbGF0aW9u
UmVzdWx0IGNvbXBpbGUoCi0gICAgVk0mLCBDb2RlQmxvY2sqLCBDb21waWxhdGlvbk1vZGUsIHVu
c2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKLSAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVl
PiYgbXVzdEhhbmRsZVZhbHVlcywKLSAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjaz4sIFdvcmtsaXN0Kik7CisgICAgVk0mLCBDb2RlQmxvY2sqLCBDb2RlQmxvY2sqIHBy
b2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUsCisgICAgdW5zaWduZWQgb3NyRW50
cnlCeXRlY29kZUluZGV4LCBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVl
cywKKyAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4pOwogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6REZHCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRmFpbGVkRmluYWxpemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzksNiArMzksMTEgQEAgRmFpbGVkRmluYWxpemVyOjp+RmFpbGVkRmluYWxpemVyKCkK
IHsKIH0KIAorc2l6ZV90IEZhaWxlZEZpbmFsaXplcjo6Y29kZVNpemUoKQoreworICAgIHJldHVy
biAwOworfQorCiBib29sIEZhaWxlZEZpbmFsaXplcjo6ZmluYWxpemUoKQogewogICAgIHJldHVy
biBmYWxzZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxp
emVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRG
aW5hbGl6ZXIuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGYWlsZWRGaW5hbGl6ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQCBw
dWJsaWM6CiAgICAgRmFpbGVkRmluYWxpemVyKFBsYW4mKTsKICAgICB2aXJ0dWFsIH5GYWlsZWRG
aW5hbGl6ZXIoKTsKICAgICAKKyAgICB2aXJ0dWFsIHNpemVfdCBjb2RlU2l6ZSgpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBmaW5hbGl6ZUZ1bmN0aW9uKCkgb3ZlcnJpZGU7CiB9OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpbmFsaXplci5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpbmFsaXplci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0
Niw3IEBAIHB1YmxpYzoKICAgICBGaW5hbGl6ZXIoUGxhbiYpOwogICAgIHZpcnR1YWwgfkZpbmFs
aXplcigpOwogICAgIAorICAgIHZpcnR1YWwgc2l6ZV90IGNvZGVTaXplKCkgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBmaW5hbGl6ZSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemVGdW5j
dGlvbigpID0gMDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBo
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTIgKzEwMCwxNCBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIEJpdFJTaGlmdDoKICAgICAgICAgY2FzZSBCaXRMU2hpZnQ6
CiAgICAgICAgIGNhc2UgQml0VVJTaGlmdDogewotICAgICAgICAgICAgZml4QmluYXJ5SW50RWRn
ZXMoKTsKKyAgICAgICAgICAgIGZpeEludEVkZ2Uobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAg
ICAgZml4SW50RWRnZShub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogCiAgICAgICAgIGNhc2UgQXJpdGhJTXVsOiB7Ci0gICAgICAgICAgICBmaXhCaW5hcnlJ
bnRFZGdlcygpOworICAgICAgICAgICAgZml4SW50RWRnZShub2RlLT5jaGlsZDEoKSk7CisgICAg
ICAgICAgICBmaXhJbnRFZGdlKG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIG5vZGUtPnNl
dE9wKEFyaXRoTXVsKTsKICAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShBcml0aDo6VW5j
aGVja2VkKTsKICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoSW50MzJVc2Up
OwpAQCAtNDUwLDYgKzQ1Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgR2V0QnlWYWw6IHsK
ICAgICAgICAgICAgIG5vZGUtPnNldEFycmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2RlLT5h
cnJheU1vZGUoKS5yZWZpbmUoCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNv
ZGVPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9u
KCksCiAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMigpLT5wcmVkaWN0aW9uKCksCiAg
ICAgICAgICAgICAgICAgICAgIFNwZWNOb25lLCBub2RlLT5mbGFncygpKSk7CkBAIC01MDcsNiAr
NTEwLDcgQEAgcHJpdmF0ZToKIAogICAgICAgICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKAogICAg
ICAgICAgICAgICAgIG5vZGUtPmFycmF5TW9kZSgpLnJlZmluZSgKKyAgICAgICAgICAgICAgICAg
ICAgbV9ncmFwaCwgbm9kZS0+Y29kZU9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgY2hpbGQx
LT5wcmVkaWN0aW9uKCksCiAgICAgICAgICAgICAgICAgICAgIGNoaWxkMi0+cHJlZGljdGlvbigp
LAogICAgICAgICAgICAgICAgICAgICBjaGlsZDMtPnByZWRpY3Rpb24oKSkpOwpAQCAtNTkyLDYg
KzU5Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyB0aGF0IHdvdWxkIGJyZWFrIHRoaW5n
cy4KICAgICAgICAgICAgIG5vZGUtPnNldEFycmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2Rl
LT5hcnJheU1vZGUoKS5yZWZpbmUoCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUt
PmNvZGVPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0
aW9uKCkgJiBTcGVjQ2VsbCwKICAgICAgICAgICAgICAgICAgICAgU3BlY0ludDMyLAogICAgICAg
ICAgICAgICAgICAgICBub2RlLT5jaGlsZDIoKS0+cHJlZGljdGlvbigpKSk7CkBAIC05NDYsNyAr
OTUxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBPcEluZm8obV9ncmFwaC5nbG9iYWxP
YmplY3RGb3Iobm9kZS0+Y29kZU9yaWdpbikpKTsKICAgICAgICAgICAgIE5vZGUqIGJhcnJpZXJO
b2RlID0gbV9ncmFwaC5hZGROb2RlKFNwZWNOb25lLCBDb25kaXRpb25hbFN0b3JlQmFycmllciwg
bV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAgICAgICAgRWRnZShnbG9iYWxP
YmplY3ROb2RlLCBLbm93bkNlbGxVc2UpLCBFZGdlKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgVW50
eXBlZFVzZSkpOwotICAgICAgICAgICAgZml4dXBOb2RlKGJhcnJpZXJOb2RlKTsKICAgICAgICAg
ICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydChtX2luZGV4SW5CbG9jaywgYmFycmllck5vZGUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTk1NCw3ICs5NTgsNiBAQCBwcml2YXRl
OgogICAgICAgICBjYXNlIFRlYXJPZmZBY3RpdmF0aW9uOiB7CiAgICAgICAgICAgICBOb2RlKiBi
YXJyaWVyTm9kZSA9IG1fZ3JhcGguYWRkTm9kZShTcGVjTm9uZSwgU3RvcmVCYXJyaWVyV2l0aE51
bGxDaGVjaywgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAgICAgICAgRWRn
ZShub2RlLT5jaGlsZDEoKS5ub2RlKCksIFVudHlwZWRVc2UpKTsKLSAgICAgICAgICAgIGZpeHVw
Tm9kZShiYXJyaWVyTm9kZSk7CiAgICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnQobV9p
bmRleEluQmxvY2ssIGJhcnJpZXJOb2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CkBAIC0xMDM0LDYgKzEwMzcsMjQgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIGlmICgh
bm9kZS0+Y29udGFpbnNNb3ZIaW50KCkpCiAgICAgICAgICAgICBERkdfTk9ERV9ET19UT19DSElM
RFJFTihtX2dyYXBoLCBub2RlLCBvYnNlcnZlVW50eXBlZEVkZ2UpOworICAgICAgICAKKyAgICAg
ICAgaWYgKG5vZGUtPmlzVGVybWluYWwoKSkgeworICAgICAgICAgICAgLy8gVGVybWluYWwgbm9k
ZXMgZG9uJ3QgbmVlZCBwb3N0LXBoYW50b21zLCBhbmQgaW5zZXJ0aW5nIHRoZW0gd291bGQgdmlv
bGF0ZQorICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgcmVxdWlyZW1lbnQgdGhhdCBhIHRlcm1p
bmFsIGlzIHRoZSBsYXN0IHRoaW5nIGluIGEgYmxvY2suIFdlCisgICAgICAgICAgICAvLyBzaG91
bGQgZXZlbnR1YWxseSBjaGFuZ2UgdGhhdCByZXF1aXJlbWVudCBidXQgZXZlbiBpZiB3ZSBkaWQs
IHRoaXMgd291bGQKKyAgICAgICAgICAgIC8vIHN0aWxsIGJlIGEgdmFsaWQgb3B0aW1pemF0aW9u
LiBBbGwgdGVybWluYWxzIGFjY2VwdCBqdXN0IG9uZSBpbnB1dCwgYW5kCisgICAgICAgICAgICAv
LyBpZiB0aGF0IGlucHV0IGlzIGEgY29udmVyc2lvbiBub2RlIHRoZW4gbm8gZnVydGhlciBzcGVj
dWxhdGlvbnMgd2lsbCBiZQorICAgICAgICAgICAgLy8gcGVyZm9ybWVkLgorICAgICAgICAgICAg
Ly8gRklYTUU6IEdldCByaWQgb2YgdGhpcyBieSBhbGxvd2luZyBQaGFudG9tcyBhZnRlciB0ZXJt
aW5hbHMuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI2Nzc4CisgICAgICAgICAgICBtX3JlcXVpcmVkUGhhbnRvbXMucmVzaXplKDApOwor
ICAgICAgICAvLyBTaW5jZSBTdG9yZUJhcnJpZXJzIGFyZSByZWN1cnNpdmVseSBmaXhlZCB1cCBz
byB0aGF0IHRoZWlyIGNoaWxkcmVuIGxvb2sgCisgICAgICAgIC8vIGlkZW50aWNhbCB0byB0aGF0
IG9mIHRoZSBub2RlIHRoZXkncmUgYmFycmllci1pbmcsIHdlIG5lZWQgdG8gYXZvaWQgYWRkaW5n
CisgICAgICAgIC8vIGFueSBQaGFudG9tcyB3aGVuIHByb2Nlc3NpbmcgdGhlbSBiZWNhdXNlIHRo
aXMgd291bGQgaW52YWxpZGF0ZSB0aGUgCisgICAgICAgIC8vIEluc2VydGlvblNldCdzIGludmFy
aWFudCBvZiBpbnNlcnRpbmcgdGhpbmdzIGluIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nCisg
ICAgICAgIC8vIG9yZGVyLiBUaGlzIHNob3VsZCBiZSBva2F5IGFueXdheXMgYmVjYXVzZSBTdG9y
ZUJhcnJpZXJzIGNhbid0IGV4aXQuIAorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFkZFBo
YW50b21zSWZOZWNlc3NhcnkoKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBvYnNlcnZlVW50eXBl
ZEVkZ2UoTm9kZSosIEVkZ2UmIGVkZ2UpCkBAIC0xMzE5LDYgKzEzNDAsNyBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBhZGRQaGFudG9tc0lmTmVj
ZXNzYXJ5KCk7CiAgICAgICAgIH0KICAgICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0ZShibG9j
ayk7CiAgICAgfQpAQCAtMTMzNCw4ICsxMzU2LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBp
ZiAobm9kZS0+b3AoKSAhPSBTZXRMb2NhbCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBV
bnR5cGVkVXNlKQorICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBV
bnR5cGVkVXNlKSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgICAgICAgICAgYWRkUGhhbnRvbXNJZk5lY2Vzc2FyeSgpOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxv
Y2spOwogICAgIH0KQEAgLTE1MDksNiArMTUzMyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgLy8gSW50OFRvRG91YmxlIHdpbGwgY29udmVydCBpbnQ1MidzIHRoYXQgZml0IGluIGFuIGlu
dDMyIGludG8gYSBkb3VibGUKICAgICAgICAgICAgICAgICAvLyByYXRoZXIgdGhhbiB0cnlpbmcg
dG8gY3JlYXRlIGEgYm94ZWQgaW50MzIgbGlrZSBJbnQ1MlRvVmFsdWUgZG9lcy4KICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBtX3JlcXVpcmVkUGhhbnRvbXMuYXBwZW5kKGVkZ2Uu
bm9kZSgpKTsKICAgICAgICAgICAgICAgICBOb2RlKiByZXN1bHQgPSBtX2luc2VydGlvblNldC5p
bnNlcnROb2RlKAogICAgICAgICAgICAgICAgICAgICBtX2luZGV4SW5CbG9jaywgU3BlY0ludDUy
QXNEb3VibGUsIEludDUyVG9Eb3VibGUsCiAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudE5v
ZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5ub2RlKCksIE51bWJlclVzZSkpOwpAQCAtMTU2Miw2
ICsxNTg3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAvLyBCdXQg
dGhlIHNvbHV0aW9uIHdlIHVzZSBoYW5kbGVzIHRoZSBhYm92ZSBncmFjZWZ1bGx5LgogICAgICAg
ICAgICAgCisgICAgICAgICAgICBtX3JlcXVpcmVkUGhhbnRvbXMuYXBwZW5kKGVkZ2Uubm9kZSgp
KTsKICAgICAgICAgICAgIE5vZGUqIHJlc3VsdCA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUo
CiAgICAgICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNJbnQ1MiwgSW50NTJUb1ZhbHVl
LAogICAgICAgICAgICAgICAgIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5u
b2RlKCksIFVudHlwZWRVc2UpKTsKQEAgLTE1ODMsMTYgKzE2MDksMTUgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGJhcnJpZXJOb2RlID0gbV9ncmFwaC5hZGROb2RlKFNwZWNOb25lLCBDb25kaXRp
b25hbFN0b3JlQmFycmllciwgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAg
ICAgICAgRWRnZShjaGlsZDEubm9kZSgpLCBjaGlsZDEudXNlS2luZCgpKSwgRWRnZShjaGlsZDIu
bm9kZSgpLCBjaGlsZDIudXNlS2luZCgpKSk7CiAgICAgICAgIH0KLSAgICAgICAgZml4dXBOb2Rl
KGJhcnJpZXJOb2RlKTsKICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0KGluZGV4SW5CbG9j
aywgYmFycmllck5vZGUpOwogICAgIH0KIAotICAgIGJvb2wgZml4SW50RWRnZShFZGdlJiBlZGdl
KQorICAgIHZvaWQgZml4SW50RWRnZShFZGdlJiBlZGdlKQogICAgIHsKICAgICAgICAgTm9kZSog
bm9kZSA9IGVkZ2Uubm9kZSgpOwogICAgICAgICBpZiAobm9kZS0+c2hvdWxkU3BlY3VsYXRlSW50
MzIoKSkgewogICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4oZWRnZSk7Ci0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIFVzZUtpbmQgdXNlS2luZDsKQEAgLTE2MTAsMjQgKzE2MzUsMTMgQEAgcHJpdmF0
ZToKICAgICAgICAgb2JzZXJ2ZVVzZUtpbmRPbk5vZGUobm9kZSwgdXNlS2luZCk7CiAgICAgICAg
IAogICAgICAgICBlZGdlID0gRWRnZShuZXdOb2RlLCBLbm93bkludDMyVXNlKTsKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAotICAgIHZvaWQgZml4QmluYXJ5SW50RWRnZXMoKQot
ICAgIHsKLSAgICAgICAgQWRqYWNlbmN5TGlzdCBjaGlsZHJlbiA9IG1fY3VycmVudE5vZGUtPmNo
aWxkcmVuOwotICAgICAgICAKLSAgICAgICAgLy8gQ2FsbCBmaXhJbnRFZGdlKCkgb24gYm90aCBl
ZGdlcy4KLSAgICAgICAgYm9vbCBuZWVkUGhhbnRvbSA9Ci0gICAgICAgICAgICBmaXhJbnRFZGdl
KG1fY3VycmVudE5vZGUtPmNoaWxkMSgpKSB8IGZpeEludEVkZ2UobV9jdXJyZW50Tm9kZS0+Y2hp
bGQyKCkpOwotICAgICAgICAKLSAgICAgICAgaWYgKCFuZWVkUGhhbnRvbSkKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9j
ayArIDEsIFNwZWNOb25lLCBQaGFudG9tLCBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBjaGls
ZHJlbik7CisgICAgICAgIG1fcmVxdWlyZWRQaGFudG9tcy5hcHBlbmQobm9kZSk7CiAgICAgfQog
ICAgIAogICAgIHZvaWQgaW5qZWN0SW50MzJUb0RvdWJsZU5vZGUoRWRnZSYgZWRnZSwgVXNlS2lu
ZCB1c2VLaW5kID0gTnVtYmVyVXNlKQogICAgIHsKKyAgICAgICAgbV9yZXF1aXJlZFBoYW50b21z
LmFwcGVuZChlZGdlLm5vZGUoKSk7CisgICAgICAgIAogICAgICAgICBOb2RlKiByZXN1bHQgPSBt
X2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNw
ZWNJbnQ1MkFzRG91YmxlLCBJbnQzMlRvRG91YmxlLAogICAgICAgICAgICAgbV9jdXJyZW50Tm9k
ZS0+Y29kZU9yaWdpbiwgRWRnZShlZGdlLm5vZGUoKSwgTnVtYmVyVXNlKSk7CkBAIC0xNzIyLDcg
KzE3MzYsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgICAg
ICAKLSAgICAgICAgYXJyYXlNb2RlID0gYXJyYXlNb2RlLnJlZmluZShub2RlLT5jaGlsZDEoKS0+
cHJlZGljdGlvbigpLCBub2RlLT5wcmVkaWN0aW9uKCkpOworICAgICAgICBhcnJheU1vZGUgPSBh
cnJheU1vZGUucmVmaW5lKAorICAgICAgICAgICAgbV9ncmFwaCwgbm9kZS0+Y29kZU9yaWdpbiwg
bm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSwgbm9kZS0+cHJlZGljdGlvbigpKTsKICAgICAg
ICAgICAgIAogICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6R2VuZXJpYykg
ewogICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGlucHV0IGlzIHNvbWV0aGluZyB0aGF0IHdl
IGNhbid0IGdldCBhcnJheSBsZW5ndGggZm9yLCBidXQgZm9yIHdoaWNoIHdlCkBAIC0xODEzLDEy
ICsxODI4LDI3IEBAIHByaXZhdGU6CiAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICAKKyAgICB2b2lk
IGFkZFBoYW50b21zSWZOZWNlc3NhcnkoKQorICAgIHsKKyAgICAgICAgaWYgKG1fcmVxdWlyZWRQ
aGFudG9tcy5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSBtX3JlcXVpcmVkUGhhbnRvbXMuc2l6ZSgpOyBpLS07KSB7Cisg
ICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAgIG1f
aW5kZXhJbkJsb2NrICsgMSwgU3BlY05vbmUsIFBoYW50b20sIG1fY3VycmVudE5vZGUtPmNvZGVP
cmlnaW4sCisgICAgICAgICAgICAgICAgRWRnZShtX3JlcXVpcmVkUGhhbnRvbXNbaV0sIFVudHlw
ZWRVc2UpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV9yZXF1aXJlZFBoYW50b21z
LnJlc2l6ZSgwKTsKKyAgICB9CiAKICAgICBCYXNpY0Jsb2NrKiBtX2Jsb2NrOwogICAgIHVuc2ln
bmVkIG1faW5kZXhJbkJsb2NrOwogICAgIE5vZGUqIG1fY3VycmVudE5vZGU7CiAgICAgSW5zZXJ0
aW9uU2V0IG1faW5zZXJ0aW9uU2V0OwogICAgIGJvb2wgbV9wcm9maXRhYmlsaXR5Q2hhbmdlZDsK
KyAgICBWZWN0b3I8Tm9kZSosIDM+IG1fcmVxdWlyZWRQaGFudG9tczsKIH07CiAgICAgCiBib29s
IHBlcmZvcm1GaXh1cChHcmFwaCYgZ3JhcGgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDggKzM2LDEwIEBACiAjaW5j
bHVkZSAiRnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1
ZGUgIkpTQWN0aXZhdGlvbi5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsLmgiCiAjaW5jbHVkZSAiT3BlcmFuZHNJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJp
bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogCkBAIC02NzgsMTAgKzY4MCwxMCBA
QCBGdWxsQnl0ZWNvZGVMaXZlbmVzcyYgR3JhcGg6OmxpdmVuZXNzRm9yCiBib29sIEdyYXBoOjpp
c0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4pCiB7CiAgICAgZm9yICg7OykgeworICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0g
VmlydHVhbFJlZ2lzdGVyKAorICAgICAgICAgICAgb3BlcmFuZC5vZmZzZXQoKSAtIGNvZGVPcmln
aW4uc3RhY2tPZmZzZXQoKSk7CisgICAgICAgIAogICAgICAgICBpZiAob3BlcmFuZC5vZmZzZXQo
KSA8IGNvZGVPcmlnaW4uc3RhY2tPZmZzZXQoKSArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNp
emUpIHsKLSAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciByZWcgPSBWaXJ0dWFsUmVnaXN0ZXIo
Ci0gICAgICAgICAgICAgICAgb3BlcmFuZC5vZmZzZXQoKSAtIGNvZGVPcmlnaW4uc3RhY2tPZmZz
ZXQoKSk7Ci0gICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChyZWcuaXNBcmd1bWVudCgpKSB7
CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVnLm9mZnNldCgpIDwgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSk7CiAgICAgICAgICAgICAgICAgCkBAIC03MDAsMTAgKzcwMiwx
OCBAQCBib29sIEdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpCiAgICAgICAgICAg
ICAgICAgcmVnLm9mZnNldCgpLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwogICAgICAgICB9
CiAgICAgICAgIAotICAgICAgICBpZiAoIWNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKQorICAg
ICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGNvZGVPcmlnaW4uaW5saW5l
Q2FsbEZyYW1lOworICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZSkKICAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgIC8vIEFyZ3VtZW50cyBhcmUgYWx3YXlzIGxpdmUuIFRoaXMgd291bGQg
YmUgcmVkdW5kYW50IGlmIGl0IHdhc24ndCBmb3Igb3VyCisgICAgICAgIC8vIG9wX2NhbGxfdmFy
YXJncyBpbmxpbmluZy4KKyAgICAgICAgaWYgKHJlZy5pc0FyZ3VtZW50KCkKKyAgICAgICAgICAg
ICYmIHJlZy50b0FyZ3VtZW50KCkKKyAgICAgICAgICAgICYmIHN0YXRpY19jYXN0PHNpemVfdD4o
cmVnLnRvQXJndW1lbnQoKSkgPCBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgCi0gICAgICAgIGNvZGVPcmlnaW4gPSBj
b2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZS0+Y2FsbGVyOworICAgICAgICBjb2RlT3JpZ2luID0g
aW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7CiAgICAgfQogICAgIAogICAgIHJldHVybiB0cnVlOwpA
QCAtNzExLDcgKzcyMSwxMyBAQCBib29sIEdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxS
ZWdpCiAKIHVuc2lnbmVkIEdyYXBoOjpmcmFtZVJlZ2lzdGVyQ291bnQoKQogewotICAgIHJldHVy
biBtX25leHRNYWNoaW5lTG9jYWwgKyBtX3BhcmFtZXRlclNsb3RzOworICAgIHVuc2lnbmVkIHJl
c3VsdCA9IG1fbmV4dE1hY2hpbmVMb2NhbCArIHN0ZDo6bWF4KG1fcGFyYW1ldGVyU2xvdHMsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0
ZXJzKSk7CisgICAgcmV0dXJuIHJvdW5kTG9jYWxSZWdpc3RlckNvdW50Rm9yRnJhbWVQb2ludGVy
T2Zmc2V0KHJlc3VsdCk7Cit9CisKK3Vuc2lnbmVkIEdyYXBoOjpzdGFja1BvaW50ZXJPZmZzZXQo
KQoreworICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVyQ291
bnQoKSAtIDEpLm9mZnNldCgpOwogfQogCiB1bnNpZ25lZCBHcmFwaDo6cmVxdWlyZWRSZWdpc3Rl
ckNvdW50Rm9yRXhpdCgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBo
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShy
ZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc5Myw2ICs3OTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xp
dmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3RlciwgQ29kZU9yaWdpbik7CiAgICAgCiAgICAgdW5z
aWduZWQgZnJhbWVSZWdpc3RlckNvdW50KCk7CisgICAgdW5zaWduZWQgc3RhY2tQb2ludGVyT2Zm
c2V0KCk7CiAgICAgdW5zaWduZWQgcmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpOwogICAg
IHVuc2lnbmVkIHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKTsKICAg
ICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkocmV2aXNp
b24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTU2LDYgKzE1Niw3IEBAIHZvaWQgSklUQ29kZTo6c2V0T3B0aW1p
emF0aW9uVGhyZXNob2xkQmEKICAgICBzd2l0Y2ggKHJlc3VsdCkgewogICAgIGNhc2UgQ29tcGls
YXRpb25TdWNjZXNzZnVsOgogICAgICAgICBvcHRpbWl6ZU5leHRJbnZvY2F0aW9uKGNvZGVCbG9j
ayk7CisgICAgICAgIGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCktPm1faGFzQmVlbkNvbXBp
bGVkV2l0aEZUTCA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbXBpbGF0aW9u
RmFpbGVkOgogICAgICAgICBkb250T3B0aW1pemVBbnl0aW1lU29vbihjb2RlQmxvY2spOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xMTksNiArMTE5LDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxERkc6Ok9TUkVudHJ5RGF0YT4g
b3NyRW50cnk7CiAgICAgU2VnbWVudGVkVmVjdG9yPERGRzo6T1NSRXhpdCwgOD4gb3NyRXhpdDsK
ICAgICBWZWN0b3I8REZHOjpTcGVjdWxhdGlvblJlY292ZXJ5PiBzcGVjdWxhdGlvblJlY292ZXJ5
OworICAgIFZlY3Rvcjx1bnNpZ25lZD4gc2xvd1BhdGhDYWxsczsKICAgICBERkc6OlZhcmlhYmxl
RXZlbnRTdHJlYW0gdmFyaWFibGVFdmVudFN0cmVhbTsKICAgICBERkc6Ok1pbmlmaWVkR3JhcGgg
bWluaWZpZWRERkc7CiAjaWYgRU5BQkxFKEZUTF9KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNs
dWRlICJERkdGYWlsZWRGaW5hbGl6ZXIuaCIKICNpbmNsdWRlICJERkdJbmxpbmVDYWNoZVdyYXBw
ZXJJbmxpbmVzLmgiCkBAIC00MCw2ICs0MSw3IEBACiAjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVK
SVQuaCIKICNpbmNsdWRlICJERkdUaHVua3MuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5l
cy5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVk
ZSAiVk0uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKQEAgLTkyLDE1ICs5NCwxNCBAQCB2
b2lkIEpJVENvbXBpbGVyOjpsaW5rT1NSRXhpdHMoKQogdm9pZCBKSVRDb21waWxlcjo6Y29tcGls
ZUVudHJ5KCkKIHsKICAgICAvLyBUaGlzIGNvZGUgY3VycmVudGx5IG1hdGNoZXMgdGhlIG9sZCBK
SVQuIEluIHRoZSBmdW5jdGlvbiBoZWFkZXIgd2UgbmVlZCB0bwotICAgIC8vIHBvcCB0aGUgcmV0
dXJuIGFkZHJlc3MgKHNpbmNlIHdlIGRvIG5vdCBhbGxvdyBhbnkgcmVjdXJzaW9uIG9uIHRoZSBt
YWNoaW5lCi0gICAgLy8gc3RhY2spLCBhbmQgcGVyZm9ybSBhIGZhc3Qgc3RhY2sgY2hlY2suCisg
ICAgLy8gc2F2ZSByZXR1cm4gYWRkcmVzcyBhbmQgY2FsbCBmcmFtZSB2aWEgdGhlIHByb2xvZ3Vl
IGFuZCBwZXJmb3JtIGEgZmFzdCBzdGFjayBjaGVjay4KICAgICAvLyBGSVhNRTogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjkyCiAgICAgLy8gV2UnbGwgbmVlZCB0
byBjb252ZXJ0IHRoZSByZW1haW5pbmcgY3RpXyBzdHlsZSBjYWxscyAoc3BlY2lmaWNhbGx5IHRo
ZSBzdGFjawogICAgIC8vIGNoZWNrKSB3aGljaCB3aWxsIGJlIGRlcGVuZGVudCBvbiBzdGFjayBs
YXlvdXQuIChXZSdkIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhpcyBpbgogICAgIC8vIGJvdGggbm9y
bWFsIHJldHVybiBjb2RlIGFuZCB3aGVuIGp1bXBpbmcgdG8gYW4gZXhjZXB0aW9uIGhhbmRsZXIp
LgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpyZWdUMik7Ci0g
ICAgZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6cmVnVDIpOworICAg
IGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1l
SGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0YWNrOjpDb2RlQmxvY2spOworICAgIGppdEFzc2VydFRh
Z3NJblBsYWNlKCk7CiB9CiAKIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVCb2R5KCkKQEAgLTEy
MSwyMiArMTIyLDI1IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVFeGNlcHRpb25IYW5kbGUK
IAogICAgIGlmICghbV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2suZW1wdHko
KSkgewogICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFjay5saW5r
KHRoaXMpOwotICAgICAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRy
KEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21D
YWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICAgICAgZG9Mb29r
dXAgPSBqdW1wKCk7CiAgICAgfQogCiAgICAgaWYgKCFtX2V4Y2VwdGlvbkNoZWNrcy5lbXB0eSgp
KQogICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrcy5saW5rKHRoaXMpOwogCi0gICAgLy8gbG9va3Vw
RXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQgb25lIGFyZ3VtZW50LCB0aGUgZXhlYyAodGhlIENh
bGxGcmFtZSopLgotICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CisgICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQg
dHdvIGFyZ3VtZW50cywgdGhlIFZNIGFuZCB0aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgorICAg
IG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7
CiAKICAgICBpZiAoZG9Mb29rdXAuaXNTZXQoKSkKICAgICAgICAgZG9Mb29rdXAubGluayh0aGlz
KTsKIAorICAgIG1vdmUoVHJ1c3RlZEltbVB0cih2bSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKKwogI2lmIENQVShYODYpCiAgICAgLy8gRklYTUU6IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJz
dHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBpbiB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5
ZXIhCiAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIHBva2UoR1BSSW5mbzo6
YXJndW1lbnRHUFIxLCAxKTsKICNlbmRpZgogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxMaW5rUmVj
b3JkKGNhbGwoKSwgbG9va3VwRXhjZXB0aW9uSGFuZGxlcikpOwogICAgIGp1bXBUb0V4Y2VwdGlv
bkhhbmRsZXIoKTsKQEAgLTIyOCwxMyArMjMyLDE2IEBAIHZvaWQgSklUQ29tcGlsZXI6Omxpbmso
TGlua0J1ZmZlciYgbGlua0IKICAgICAgICAgaW5mby5wYXRjaC5kZWx0YUNhbGxUb1Nsb3dDYXNl
ID0gZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGNhbGxSZXR1cm5Mb2NhdGlvbiwgbGlua0J1ZmZl
ci5sb2NhdGlvbk9mKG1faW5zW2ldLm1fc2xvd1BhdGhHZW5lcmF0b3ItPmxhYmVsKCkpKTsKICAg
ICB9CiAgICAgCisgICAgUkVMRUFTRV9BU1NFUlQoIW1fZ3JhcGgubV9wbGFuLndpbGxUcnlUb1Rp
ZXJVcCB8fCBtX2ppdENvZGUtPnNsb3dQYXRoQ2FsbHMuc2l6ZSgpID49IG1fanNDYWxscy5zaXpl
KCkpOwogICAgIG1fY29kZUJsb2NrLT5zZXROdW1iZXJPZkNhbGxMaW5rSW5mb3MobV9qc0NhbGxz
LnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fanNDYWxscy5zaXplKCk7
ICsraSkgewogICAgICAgICBDYWxsTGlua0luZm8mIGluZm8gPSBtX2NvZGVCbG9jay0+Y2FsbExp
bmtJbmZvKGkpOwogICAgICAgICBpbmZvLmNhbGxUeXBlID0gbV9qc0NhbGxzW2ldLm1fY2FsbFR5
cGU7Ci0gICAgICAgIGluZm8uaXNERkcgPSB0cnVlOwogICAgICAgICBpbmZvLmNvZGVPcmlnaW4g
PSBtX2pzQ2FsbHNbaV0ubV9jb2RlT3JpZ2luOwotICAgICAgICBsaW5rQnVmZmVyLmxpbmsobV9q
c0NhbGxzW2ldLm1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKChtX3ZtLT5nZXRDVElTdHViKGluZm8u
Y2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpDb25zdHJ1Y3QgPyBsaW5rQ29uc3RydWN0VGh1bmtH
ZW5lcmF0b3IgOiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKSkuY29kZSgpLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpKTsKKyAgICAgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2Vu
ZXJhdG9yRm9yKAorICAgICAgICAgICAgaW5mby5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNv
bnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwKKyAgICAgICAgICAgIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOworICAgICAgICBsaW5rQnVmZmVyLmxpbmso
bV9qc0NhbGxzW2ldLm1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKG1fdm0tPmdldENUSVN0dWIoZ2Vu
ZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgICAgICBpbmZvLmNhbGxS
ZXR1cm5Mb2NhdGlvbiA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fanNDYWxsc1tp
XS5tX3Nsb3dDYWxsKTsKICAgICAgICAgaW5mby5ob3RQYXRoQmVnaW4gPSBsaW5rQnVmZmVyLmxv
Y2F0aW9uT2YobV9qc0NhbGxzW2ldLm1fdGFyZ2V0VG9DaGVjayk7CiAgICAgICAgIGluZm8uaG90
UGF0aE90aGVyID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9qc0NhbGxzW2ldLm1f
ZmFzdENhbGwpOwpAQCAtMjc4LDYgKzI4NSw4IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGUo
KQogICAgIHNldFN0YXJ0T2ZDb2RlKCk7CiAgICAgY29tcGlsZUVudHJ5KCk7CiAgICAgbV9zcGVj
dWxhdGl2ZSA9IGFkb3B0UHRyKG5ldyBTcGVjdWxhdGl2ZUpJVCgqdGhpcykpOworICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIobV9ncmFwaC5zdGFja1BvaW50ZXJPZmZzZXQoKSAqIHNpemVvZihSZWdp
c3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIp
OworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAgICAgY29tcGlsZUJvZHkoKTsK
ICAgICBzZXRFbmRPZk1haW5QYXRoKCk7CiAKQEAgLTMyNSwxMSArMzM0LDEyIEBAIHZvaWQgSklU
Q29tcGlsZXI6OmNvbXBpbGVGdW5jdGlvbigpCiAgICAgLy8gc28gZW50ZXIgYWZ0ZXIgdGhpcy4K
ICAgICBMYWJlbCBmcm9tQXJpdHlDaGVjayh0aGlzKTsKICAgICAvLyBQbGFudCBhIGNoZWNrIHRo
YXQgc3VmZmljaWVudCBzcGFjZSBpcyBhdmFpbGFibGUgaW4gdGhlIEpTU3RhY2suCi0gICAgYWRk
UHRyKFRydXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2dyYXBoLnJlcXVpcmVk
UmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKSkub2Zmc2V0KCkgKiBzaXplb2YoUmVn
aXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsKLSAg
ICBKdW1wIHN0YWNrQ2hlY2sgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3Zt
LT5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksIEdQUkluZm86OnJlZ1QxKTsKLSAgICAvLyBSZXR1
cm4gaGVyZSBhZnRlciBzdGFjayBjaGVjay4KLSAgICBMYWJlbCBmcm9tU3RhY2tDaGVjayA9IGxh
YmVsKCk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbCht
X2dyYXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKSAtIDEpLm9m
ZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBH
UFJJbmZvOjpyZWdUMSk7CisgICAgSnVtcCBzdGFja092ZXJmbG93ID0gYnJhbmNoUHRyKEFib3Zl
LCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCBHUFJJbmZv
OjpyZWdUMSk7CiAKKyAgICAvLyBNb3ZlIHRoZSBzdGFjayBwb2ludGVyIGRvd24gdG8gYWNjb21t
b2RhdGUgbG9jYWxzCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtX2dyYXBoLnN0YWNrUG9pbnRl
ck9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQo
KTsKIAogICAgIC8vID09PSBGdW5jdGlvbiBib2R5IGNvZGUgZ2VuZXJhdGlvbiA9PT0KICAgICBt
X3NwZWN1bGF0aXZlID0gYWRvcHRQdHIobmV3IFNwZWN1bGF0aXZlSklUKCp0aGlzKSk7CkBAIC0z
MzgsMTcgKzM0OCwxOSBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogCiAg
ICAgLy8gPT09IEZ1bmN0aW9uIGZvb3RlciBjb2RlIGdlbmVyYXRpb24gPT09CiAgICAgLy8KLSAg
ICAvLyBHZW5lcmF0ZSBjb2RlIHRvIHBlcmZvcm0gdGhlIHNsb3cgc3RhY2sgY2hlY2sgKGlmIHRo
ZSBmYXN0IG9uZSBpbgorICAgIC8vIEdlbmVyYXRlIGNvZGUgdG8gcGVyZm9ybSB0aGUgc3RhY2sg
b3ZlcmZsb3cgaGFuZGxpbmcgKGlmIHRoZSBzdGFjayBjaGVjayBpbgogICAgIC8vIHRoZSBmdW5j
dGlvbiBoZWFkZXIgZmFpbHMpLCBhbmQgZ2VuZXJhdGUgdGhlIGVudHJ5IHBvaW50IHdpdGggYXJp
dHkgY2hlY2suCiAgICAgLy8KLSAgICAvLyBHZW5lcmF0ZSB0aGUgc3RhY2sgY2hlY2s7IGlmIHRo
ZSBmYXN0IGNoZWNrIGluIHRoZSBmdW5jdGlvbiBoZWFkIGZhaWxzLAotICAgIC8vIHdlIG5lZWQg
dG8gY2FsbCBvdXQgdG8gYSBoZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgd2hldGhlciBtb3JlIHNw
YWNlIGlzIGF2YWlsYWJsZS4KLSAgICAvLyBGSVhNRTogY2hhbmdlIHRoaXMgZnJvbSBhIGN0aSBj
YWxsIHRvIGEgREZHIHN0eWxlIG9wZXJhdGlvbiAobm9ybWFsIEMgY2FsbGluZyBjb252ZW50aW9u
cykuCi0gICAgc3RhY2tDaGVjay5saW5rKHRoaXMpOworICAgIC8vIEdlbmVyYXRlIHRoZSBzdGFj
ayBvdmVyZmxvdyBoYW5kbGluZzsgaWYgdGhlIHN0YWNrIGNoZWNrIGluIHRoZSBmdW5jdGlvbiBo
ZWFkIGZhaWxzLAorICAgIC8vIHdlIG5lZWQgdG8gY2FsbCBvdXQgdG8gYSBoZWxwZXIgZnVuY3Rp
b24gdG8gdGhyb3cgdGhlIFN0YWNrT3ZlcmZsb3dFcnJvci4KKyAgICBzdGFja092ZXJmbG93Lmxp
bmsodGhpcyk7CiAKICAgICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmlnaW4oMCkpOwotICAg
IG1fc3BlY3VsYXRpdmUtPmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2Vw
dGlvbihvcGVyYXRpb25TdGFja0NoZWNrLCBtX2NvZGVCbG9jayk7Ci0gICAganVtcChmcm9tU3Rh
Y2tDaGVjayk7CisKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAg
ICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwg
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisgICAgbV9zcGVjdWxhdGl2ZS0+Y2FsbE9wZXJhdGlv
bldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvblRocm93U3RhY2tPdmVy
Zmxvd0Vycm9yLCBtX2NvZGVCbG9jayk7CiAgICAgCiAgICAgLy8gVGhlIGZhc3QgZW50cnkgcG9p
bnQgaW50byBhIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSBjb3JyZWN0IG51bWJlciBvZiBh
cmd1bWVudHMKICAgICAvLyBoYXZlIGJlZW4gcGFzc2VkIHRvIHRoZSBjYWxsICh3ZSBvbmx5IHVz
ZSB0aGUgZmFzdCBlbnRyeSBwb2ludCB3aGVyZSB3ZSBjYW4gc3RhdGljYWxseQpAQCAtMzYxLDkg
KzM3MywxNSBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogICAgIGxvYWQz
MihBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdpc3RlcilKU1N0YWNrOjpB
cmd1bWVudENvdW50KSwgR1BSSW5mbzo6cmVnVDEpOwogICAgIGJyYW5jaDMyKEFib3ZlT3JFcXVh
bCwgR1BSSW5mbzo6cmVnVDEsIFRydXN0ZWRJbW0zMihtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVy
cygpKSkubGlua1RvKGZyb21Bcml0eUNoZWNrLCB0aGlzKTsKICAgICBlbWl0U3RvcmVDb2RlT3Jp
Z2luKENvZGVPcmlnaW4oMCkpOworICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCkKKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgbV9zcGVjdWxhdGl2ZS0+Y2FsbE9w
ZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG1fY29kZUJsb2NrLT5tX2lz
Q29uc3RydWN0b3IgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrIDogb3BlcmF0aW9uQ2Fs
bEFyaXR5Q2hlY2ssIEdQUkluZm86OnJlZ1QwKTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgYnJhbmNoVGVzdDMy
KFplcm8sIEdQUkluZm86OnJlZ1QwKS5saW5rVG8oZnJvbUFyaXR5Q2hlY2ssIHRoaXMpOwogICAg
IGVtaXRTdG9yZUNvZGVPcmlnaW4oQ29kZU9yaWdpbigwKSk7CisgICAgbW92ZShUcnVzdGVkSW1t
UHRyKG1fdm0tPmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5QQ3NGb3IoKm1fdm0s
IG1fY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKSwgR1BSSW5mbzo6cmVnVDUpOworICAgIGxv
YWRQdHIoQmFzZUluZGV4KEdQUkluZm86OnJlZ1Q1LCBHUFJJbmZvOjpyZWdUMCwgdGltZXNQdHIo
KSksIEdQUkluZm86OnJlZ1Q1KTsKICAgICBtX2NhbGxBcml0eUZpeHVwID0gY2FsbCgpOwogICAg
IGp1bXAoZnJvbUFyaXR5Q2hlY2spOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRDb21waWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjEsNiAr
MjIxLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1faW5zLmFwcGVuZChyZWNvcmQpOwog
ICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBjdXJyZW50SlNDYWxsSW5kZXgoKSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1fanNDYWxscy5zaXplKCk7CisgICAgfQogCiAgICAgdm9pZCBh
ZGRKU0NhbGwoQ2FsbCBmYXN0Q2FsbCwgQ2FsbCBzbG93Q2FsbCwgRGF0YUxhYmVsUHRyIHRhcmdl
dFRvQ2hlY2ssIENhbGxMaW5rSW5mbzo6Q2FsbFR5cGUgY2FsbFR5cGUsIEdQUlJlZyBjYWxsZWUs
IENvZGVPcmlnaW4gY29kZU9yaWdpbikKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDEwICs0NiwxNiBAQCBKSVRGaW5hbGl6ZXI6On5KSVRGaW5hbGl6ZXIoKQogewogfQog
CitzaXplX3QgSklURmluYWxpemVyOjpjb2RlU2l6ZSgpCit7CisgICAgcmV0dXJuIG1fbGlua0J1
ZmZlci0+c2l6ZSgpOworfQorCiBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemUoKQogewotICAg
IG1faml0Q29kZS0+aW5pdGlhbGl6ZUNvZGVSZWYobV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVX
aXRob3V0RGlzYXNzZW1ibHkoKSk7Ci0gICAgbV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZSht
X2ppdENvZGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICBtX2ppdENvZGUtPmluaXRp
YWxpemVDb2RlUmVmKAorICAgICAgICBtX2xpbmtCdWZmZXItPmZpbmFsaXplQ29kZVdpdGhvdXRE
aXNhc3NlbWJseSgpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgbV9wbGFuLmNvZGVC
bG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUpOwogICAgIAogICAgIGZpbmFsaXplQ29tbW9uKCk7
CiAgICAgCkBAIC01OSw4ICs2NSw5IEBAIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZSgpCiBi
b29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5jdGlvbigpCiB7CiAgICAgUkVMRUFTRV9BU1NF
UlQoIW1fd2l0aEFyaXR5Q2hlY2suaXNFbXB0eVZhbHVlKCkpOwotICAgIG1faml0Q29kZS0+aW5p
dGlhbGl6ZUNvZGVSZWYobV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1i
bHkoKSk7Ci0gICAgbV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUsIG1fd2l0
aEFyaXR5Q2hlY2spOworICAgIG1faml0Q29kZS0+aW5pdGlhbGl6ZUNvZGVSZWYoCisgICAgICAg
IG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2VtYmx5KCksIG1fd2l0aEFy
aXR5Q2hlY2spOworICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlKTsK
ICAgICAKICAgICBmaW5hbGl6ZUNvbW1vbigpOwogICAgIApAQCAtNzUsNiArODIsOSBAQCB2b2lk
IEpJVEZpbmFsaXplcjo6ZmluYWxpemVDb21tb24oKQogICAgIAogICAgIGlmIChtX3BsYW4uY29t
cGlsYXRpb24pCiAgICAgICAgIG1fcGxhbi52bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmFkZENv
bXBpbGF0aW9uKG1fcGxhbi5jb21waWxhdGlvbik7CisgICAgCisgICAgaWYgKCFtX3BsYW4ud2ls
bFRyeVRvVGllclVwKQorICAgICAgICBtX3BsYW4uY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24o
KS0+bV9kaWRGYWlsRlRMQ29tcGlsYXRpb24gPSB0cnVlOwogfQogCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXpl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxp
emVyLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklURmluYWxpemVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgog
ICAgIEpJVEZpbmFsaXplcihQbGFuJiwgUGFzc1JlZlB0cjxKSVRDb2RlPiwgUGFzc093blB0cjxM
aW5rQnVmZmVyPiwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHdpdGhBcml0eUNoZWNrID0gTWFjcm9B
c3NlbWJsZXJDb2RlUHRyKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6RW1wdHlWYWx1ZSkpOwogICAg
IHZpcnR1YWwgfkpJVEZpbmFsaXplcigpOwogICAgIAorICAgIHZpcnR1YWwgc2l6ZV90IGNvZGVT
aXplKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGZpbmFsaXplRnVuY3Rpb24oKSBvdmVycmlkZTsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0xMTk4LDYgKzExOTgsMTEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICAgICAg
cmV0dXJuIHNob3VsZEdlbmVyYXRlKCk7CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAgYm9v
bCBpc1NlbWFudGljYWxseVNraXBwYWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9
PSBDb3VudEV4ZWN1dGlvbjsKKyAgICB9CiAKICAgICB1bnNpZ25lZCByZWZDb3VudCgpCiAgICAg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAkocmV2
aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw5IEBAIHZvaWQgZHVtcE5vZGVGbGFncyhQ
cmludFN0cmVhbSYgYWN0dWFsT3UKICAgICAgICAgY2FzZSBOb2RlUmVzdWx0SW50MzI6CiAgICAg
ICAgICAgICBvdXQucHJpbnQoY29tbWEsICJJbnQzMiIpOwogICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTm9kZVJlc3VsdEludDUyOgorICAgICAgICAgICAgb3V0LnByaW50KGNvbW1h
LCAiSW50NTIiKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGVSZXN1bHRC
b29sZWFuOgogICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiQm9vbGVhbiIpOwogICAgICAg
ICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWls
YWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5h
bHlzaXNQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDE1ICs2MSwxMyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICAgICAgQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpLndpdGhGbHVzaCgK
ICAgICAgICAgICAgICAgICAgICAgRmx1c2hlZEF0KEZsdXNoZWRKU1ZhbHVlLCB2aXJ0dWFsUmVn
aXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkpKTsKICAgICAgICAgfQotICAgICAgICBmb3IgKHVu
c2lnbmVkIGxvY2FsID0gcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubnVtYmVyT2ZMb2Nh
bHMoKTsgbG9jYWwtLTspCi0gICAgICAgICAgICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVh
ZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCk7Ci0gICAgICAgIAor
CiAgICAgICAgIGlmIChtX2dyYXBoLm1fcGxhbi5tb2RlID09IEZUTEZvck9TUkVudHJ5TW9kZSkg
ewotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBsb2NhbCA9IG1fZ3JhcGgubV9wcm9maWxlZEJs
b2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsgbG9jYWwtLTspIHsKLSAgICAgICAgICAgICAgICBy
b290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPQotICAgICAgICAgICAg
ICAgICAgICBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCkud2l0aEZsdXNoKAotICAgICAgICAg
ICAgICAgICAgICAgICAgRmx1c2hlZEF0KEZsdXNoZWRKU1ZhbHVlLCB2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChsb2NhbCkpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgbG9jYWwgPSBtX2dyYXBoLm1fcHJvZmlsZWRCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7
IGxvY2FsLS07KQorICAgICAgICAgICAgICAgIHJvb3QtPnNzYS0+YXZhaWxhYmlsaXR5QXRIZWFk
LmxvY2FsKGxvY2FsKSA9IEF2YWlsYWJpbGl0eTo6dW5hdmFpbGFibGUoKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgbG9jYWwgPSByb290LT5zc2EtPmF2YWls
YWJpbGl0eUF0SGVhZC5udW1iZXJPZkxvY2FscygpOyBsb2NhbC0tOykKKyAgICAgICAgICAgICAg
ICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxp
dHk6OnVuYXZhaWxhYmxlKCk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFRoaXMg
Y291bGQgYmUgbWFkZSBtb3JlIGVmZmljaWVudCBieSBwcm9jZXNzaW5nIGJsb2NrcyBpbiByZXZl
cnNlIHBvc3RvcmRlci4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50
cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50
cnkuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkVudHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsMTAgQEAgdm9pZCogcHJl
cGFyZU9TUkVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgQwogICAgIEFTU0VSVChjb2RlQmxvY2stPmFs
dGVybmF0aXZlKCkpOwogICAgIEFTU0VSVChjb2RlQmxvY2stPmFsdGVybmF0aXZlKCktPmppdFR5
cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7CiAgICAgQVNTRVJUKCFjb2RlQmxvY2stPmpp
dENvZGVNYXAoKSk7Ci0gICAgCisKKyAgICBpZiAoIU9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5VG9E
RkcoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigp
KSB7CiAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAiREZHIE9TUiBpbiAiLCAqY29kZUJs
b2NrLT5hbHRlcm5hdGl2ZSgpLCAiIC0+ICIsICpjb2RlQmxvY2ssCkBAIC01Miw4ICs1NSw4IEBA
IHZvaWQqIHByZXBhcmVPU1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIEMKICAgICB9CiAgICAgCiAg
ICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0gICAgCi0gICAgdm0tPmludGVycHJldGVyLT5zdGFj
aygpLnNhbml0aXplU3RhY2soKTsKKworICAgIHNhbml0aXplU3RhY2tGb3JWTSh2bSk7CiAgICAg
CiAgICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpICE9IEpJVENvZGU6OkRGR0pJVCkgewogICAg
ICAgICBSRUxFQVNFX0FTU0VSVChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpGVExK
SVQpOwpAQCAtMTg1LDcgKzE4OCw3IEBAIHZvaWQqIHByZXBhcmVPU1JFbnRyeShFeGVjU3RhdGUq
IGV4ZWMsIEMKICAgICAvLyAgICB3b3VsZCBoYXZlIG90aGVyd2lzZSBqdXN0IGtlcHQgcnVubmlu
ZyBhbGJlaXQgbGVzcyBxdWlja2x5LgogICAgIAogICAgIHVuc2lnbmVkIGZyYW1lU2l6ZSA9IGpp
dENvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCk7
Ci0gICAgaWYgKCF2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuZ3JvdygmZXhlYy0+cmVnaXN0ZXJz
KClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZnJhbWVTaXplKS5vZmZzZXQoKV0pKSB7CisgICAg
aWYgKCF2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IoJmV4ZWMtPnJl
Z2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lU2l6ZSAtIDEpLm9mZnNldCgp
XSkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAgIGRh
dGFMb2dGKCIgICAgT1NSIGZhaWxlZCBiZWNhdXNlIHN0YWNrIGdyb3d0aCBmYWlsZWQuXG4iKTsK
ICAgICAgICAgcmV0dXJuIDA7CkBAIC0yMTMsMTIgKzIxNiwxNCBAQCB2b2lkKiBwcmVwYXJlT1NS
RW50cnkoRXhlY1N0YXRlKiBleGVjLCBDCiAgICAgCiAgICAgLy8gNSkgQ2xlYXIgdGhvc2UgcGFy
dHMgb2YgdGhlIGNhbGwgZnJhbWUgdGhhdCB0aGUgREZHIGFpbid0IHVzaW5nLiBUaGlzIGhlbHBz
IEdDIG9uIHNvbWUKICAgICAvLyAgICBwcm9ncmFtcyBieSBlbGltaW5hdGluZyBzb21lIHN0YWxl
IHBvaW50ZXIgcGF0aG9sb2dpZXMuCi0gICAgCisKKyNpZiAwIC8vIEZJWE1FOiBDU3RhY2sgLSBU
aGlzIG5lZWRzIHRvIGJlIHZlcmlmaWVkIGJlZm9yZSBiZWluZyBlbmFibGVkCiAgICAgZm9yICh1
bnNpZ25lZCBpID0gZnJhbWVTaXplOyBpLS07KSB7CiAgICAgICAgIGlmIChlbnRyeS0+bV9tYWNo
aW5lU3RhY2tVc2VkLmdldChpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICByZWdp
c3RlcnNbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSkub2Zmc2V0KCldID0gSlNWYWx1ZTo6ZW5j
b2RlKEpTVmFsdWUoKSk7CiAgICAgfQorI2VuZGlmCiAgICAgCiAgICAgLy8gNikgRml4IHRoZSBj
YWxsIGZyYW1lLgogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
bnRyeXBvaW50Q3JlYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFbnRyeXBvaW50Q3JlYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlwb2ludENyZWF0
aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Myw3ICs2MywxMCBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAg
ICAgICAgICAgICBpZiAoIWJsb2NrKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgdW5zaWduZWQgbm9kZUluZGV4ID0gMDsKICAgICAgICAgICAgIE5vZGUqIGZpcnN0Tm9k
ZSA9IGJsb2NrLT5hdCgwKTsKKyAgICAgICAgICAgIHdoaWxlIChmaXJzdE5vZGUtPmlzU2VtYW50
aWNhbGx5U2tpcHBhYmxlKCkpCisgICAgICAgICAgICAgICAgZmlyc3ROb2RlID0gYmxvY2stPmF0
KCsrbm9kZUluZGV4KTsKICAgICAgICAgICAgIGlmIChmaXJzdE5vZGUtPm9wKCkgPT0gTG9vcEhp
bnQKICAgICAgICAgICAgICAgICAmJiBmaXJzdE5vZGUtPmNvZGVPcmlnaW4gPT0gQ29kZU9yaWdp
bihieXRlY29kZUluZGV4KSkgewogICAgICAgICAgICAgICAgIHRhcmdldCA9IGJsb2NrOwpAQCAt
ODMsMTcgKzg2LDYgQEAgcHVibGljOgogICAgICAgICBCYXNpY0Jsb2NrKiBuZXdSb290ID0gaW5z
ZXJ0aW9uU2V0Lmluc2VydCgwKTsKICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gdGFy
Z2V0LT5hdCgwKS0+Y29kZU9yaWdpbjsKICAgICAgICAgCi0gICAgICAgIGZvciAoaW50IGFyZ3Vt
ZW50ID0gMDsgYXJndW1lbnQgPCBiYXNlbGluZS0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50
KSB7Ci0gICAgICAgICAgICBOb2RlKiBvbGROb2RlID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQu
YXJndW1lbnQoYXJndW1lbnQpOwotICAgICAgICAgICAgaWYgKCFvbGROb2RlKSB7Ci0gICAgICAg
ICAgICAgICAgLy8gSnVzdCBmb3Igc2FuaXR5LCBhbHdheXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2
ZW4gaWYgaXQncyBub3QgbmVlZGVkLgotICAgICAgICAgICAgICAgIG9sZE5vZGUgPSBtX2dyYXBo
Lm1fYXJndW1lbnRzW2FyZ3VtZW50XTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIE5vZGUq
IG5vZGUgPSBuZXdSb290LT5hcHBlbmROb2RlKAotICAgICAgICAgICAgICAgIG1fZ3JhcGgsIFNw
ZWNOb25lLCBTZXRBcmd1bWVudCwgY29kZU9yaWdpbiwKLSAgICAgICAgICAgICAgICBPcEluZm8o
b2xkTm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpKTsKLSAgICAgICAgICAgIG1fZ3JhcGgubV9h
cmd1bWVudHNbYXJndW1lbnRdID0gbm9kZTsKLSAgICAgICAgfQogICAgICAgICBWZWN0b3I8Tm9k
ZSo+IGxvY2FscyhiYXNlbGluZS0+bV9udW1DYWxsZWVSZWdpc3RlcnMpOwogICAgICAgICBmb3Ig
KGludCBsb2NhbCA9IDA7IGxvY2FsIDwgYmFzZWxpbmUtPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOyAr
K2xvY2FsKSB7CiAgICAgICAgICAgICBOb2RlKiBwcmV2aW91c0hlYWQgPSB0YXJnZXQtPnZhcmlh
Ymxlc0F0SGVhZC5sb2NhbChsb2NhbCk7CkBAIC0xMDgsNiArMTAwLDE5IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICAgICBtX2dyYXBoLCBTcGVjTm9uZSwgTW92SGludCwgY29kZU9yaWdpbiwgT3BJ
bmZvKHZhcmlhYmxlLT5sb2NhbCgpLm9mZnNldCgpKSwKICAgICAgICAgICAgICAgICBFZGdlKGxv
Y2Fsc1tsb2NhbF0pKTsKICAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0g
MDsgYXJndW1lbnQgPCBiYXNlbGluZS0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50KSB7Cisg
ICAgICAgICAgICBOb2RlKiBvbGROb2RlID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQuYXJndW1l
bnQoYXJndW1lbnQpOworICAgICAgICAgICAgaWYgKCFvbGROb2RlKSB7CisgICAgICAgICAgICAg
ICAgLy8gSnVzdCBmb3Igc2FuaXR5LCBhbHdheXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2ZW4gaWYg
aXQncyBub3QgbmVlZGVkLgorICAgICAgICAgICAgICAgIG9sZE5vZGUgPSBtX2dyYXBoLm1fYXJn
dW1lbnRzW2FyZ3VtZW50XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE5vZGUqIG5vZGUg
PSBuZXdSb290LT5hcHBlbmROb2RlKAorICAgICAgICAgICAgICAgIG1fZ3JhcGgsIFNwZWNOb25l
LCBTZXRBcmd1bWVudCwgY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICBPcEluZm8ob2xkTm9k
ZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpKTsKKyAgICAgICAgICAgIG1fZ3JhcGgubV9hcmd1bWVu
dHNbYXJndW1lbnRdID0gbm9kZTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgZm9yIChp
bnQgbG9jYWwgPSAwOyBsb2NhbCA8IGJhc2VsaW5lLT5tX251bUNhbGxlZVJlZ2lzdGVyczsgKyts
b2NhbCkgewogICAgICAgICAgICAgTm9kZSogcHJldmlvdXNIZWFkID0gdGFyZ2V0LT52YXJpYWJs
ZXNBdEhlYWQubG9jYWwobG9jYWwpOwogICAgICAgICAgICAgaWYgKCFwcmV2aW91c0hlYWQpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaAkocmV2aXNpb24gMTYyOTYx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEwNSw2ICsxMDUsMTEgQEAgc3RydWN0IE9TUkV4aXQgOiBwdWJsaWMgT1NSRXhpdEJh
c2UgewogICAgIHVuc2lnbmVkIG1fc3RyZWFtSW5kZXg7CiAgICAgCiAgICAgUmVmUHRyPFZhbHVl
UmVjb3ZlcnlPdmVycmlkZT4gbV92YWx1ZVJlY292ZXJ5T3ZlcnJpZGU7CisgICAgCisgICAgYm9v
bCBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29k
ZUJsb2NrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9TUkV4aXRCYXNlOjpjb25zaWRlckFkZGlu
Z0FzRnJlcXVlbnRFeGl0U2l0ZShwcm9maWxlZENvZGVCbG9jaywgRXhpdEZyb21ERkcpOworICAg
IH0KIH07CiAKIHN0cnVjdCBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0luZm8gewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5jcHAJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKIAotYm9vbCBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhp
dFNpdGVTbG93KENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2spCitib29sIE9TUkV4aXRCYXNl
Ojpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3coQ29kZUJsb2NrKiBwcm9maWxl
ZENvZGVCbG9jaywgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkKIHsKICAgICBDb2RlQmxvY2sqIHNv
dXJjZVByb2ZpbGVkQ29kZUJsb2NrID0KICAgICAgICAgYmFzZWxpbmVDb2RlQmxvY2tGb3JPcmln
aW5BbmRCYXNlbGluZUNvZGVCbG9jaygKQEAgLTQzLDcgKzQzLDcgQEAgYm9vbCBPU1JFeGl0QmFz
ZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZQogICAgIGlmICghc291cmNlUHJvZmlsZWRDb2RlQmxv
Y2spCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gc291cmNlUHJvZmlsZWRDb2Rl
QmxvY2stPmFkZEZyZXF1ZW50RXhpdFNpdGUoCi0gICAgICAgICAgICBGcmVxdWVudEV4aXRTaXRl
KG1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxlLmJ5dGVjb2RlSW5kZXgsIG1fa2luZCkpOworICAg
ICAgICBGcmVxdWVudEV4aXRTaXRlKG1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxlLmJ5dGVjb2Rl
SW5kZXgsIG1fa2luZCwgaml0VHlwZSkpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZH
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5oCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDE1ICs1OCwxNiBAQCBzdHJ1Y3QgT1NSRXhpdEJhc2Ug
ewogICAgIENvZGVPcmlnaW4gbV9jb2RlT3JpZ2luOwogICAgIENvZGVPcmlnaW4gbV9jb2RlT3Jp
Z2luRm9yRXhpdFByb2ZpbGU7CiAKLSAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4
aXRTaXRlKENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2spCitwcm90ZWN0ZWQ6CisgICAgYm9v
bCBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29k
ZUJsb2NrLCBFeGl0aW5nSklUVHlwZSBqaXRUeXBlKQogICAgIHsKICAgICAgICAgaWYgKCFtX2Nv
dW50KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gY29uc2lkZXJB
ZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KHByb2ZpbGVkQ29kZUJsb2NrKTsKKyAgICAgICAg
cmV0dXJuIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhwcm9maWxlZENvZGVC
bG9jaywgaml0VHlwZSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGJvb2wgY29uc2lkZXJBZGRp
bmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2spOwor
ICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KENvZGVCbG9jayog
cHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRpbmdKSVRUeXBlKTsKIH07CiAKIH0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDYsNiArNDYsMTIgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0
KGNvbnN0IAogICAgICAgICBtX2ppdC5kZWJ1Z0NhbGwoZGVidWdPcGVyYXRpb25QcmludFNwZWN1
bGF0aW9uRmFpbHVyZSwgZGVidWdJbmZvKTsKICAgICB9CiAgICAgCisgICAgLy8gTmVlZCB0byBl
bnN1cmUgdGhhdCB0aGUgc3RhY2sgcG9pbnRlciBhY2NvdW50cyBmb3IgdGhlIHdvcnN0LWNhc2Ug
c3RhY2sgdXNhZ2UgYXQgZXhpdC4KKyAgICBtX2ppdC5hZGRQdHIoCisgICAgICAgIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgLW1faml0LmNvZGVCbG9jaygpLT5qaXRD
b2RlKCktPmRmZ0NvbW1vbigpLT5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ICogc2l6ZW9m
KFJlZ2lzdGVyKSksCisgICAgICAgIENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIs
IENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIAogICAgIC8vIDIpIFBl
cmZvcm0gc3BlY3VsYXRpb24gcmVjb3ZlcnkuIFRoaXMgb25seSBjb21lcyBpbnRvIHBsYXkgd2hl
biBhbiBvcGVyYXRpb24KICAgICAvLyAgICBzdGFydHMgbXV0YXRpbmcgc3RhdGUgYmVmb3JlIHZl
cmlmeWluZyB0aGUgc3BlY3VsYXRpb24gaXQgaGFzIGFscmVhZHkgbWFkZS4KICAgICAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQu
Y3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkV4aXRDb21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsOCBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21w
aWxlRXhpdChjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdCBPcGVyYW5kczxWYWx1ZVJlY292ZXJ5
PiYgb3BlcmFuZHMsIFNwZWN1bGF0aW9uUmVjb3ZlcnkqIHJlY292ZXJ5KQogeworICAgIG1faml0
LmppdEFzc2VydFRhZ3NJblBsYWNlKCk7CisKICAgICAvLyAxKSBQcm8tZm9ybWEgc3R1ZmYuCiAg
ICAgaWYgKE9wdGlvbnM6OnByaW50RWFjaE9TUkV4aXQoKSkgewogICAgICAgICBTcGVjdWxhdGlv
bkZhaWx1cmVEZWJ1Z0luZm8qIGRlYnVnSW5mbyA9IG5ldyBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1
Z0luZm87CkBAIC00OCw2ICs1MCwxMiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4
aXQoY29uc3QgCiAgICAgICAgIG1faml0LmRlYnVnQ2FsbChkZWJ1Z09wZXJhdGlvblByaW50U3Bl
Y3VsYXRpb25GYWlsdXJlLCBkZWJ1Z0luZm8pOwogICAgIH0KICAgICAKKyAgICAvLyBOZWVkIHRv
IGVuc3VyZSB0aGF0IHRoZSBzdGFjayBwb2ludGVyIGFjY291bnRzIGZvciB0aGUgd29yc3QtY2Fz
ZSBzdGFjayB1c2FnZSBhdCBleGl0LgorICAgIG1faml0LmFkZFB0cigKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoCisgICAgICAgICAgICAtbV9qaXQuY29kZUJsb2NrKCktPmpp
dENvZGUoKS0+ZGZnQ29tbW9uKCktPnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQgKiBzaXpl
b2YoUmVnaXN0ZXIpKSwKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3Rl
ciwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCiAgICAgLy8gMikg
UGVyZm9ybSBzcGVjdWxhdGlvbiByZWNvdmVyeS4gVGhpcyBvbmx5IGNvbWVzIGludG8gcGxheSB3
aGVuIGFuIG9wZXJhdGlvbgogICAgIC8vICAgIHN0YXJ0cyBtdXRhdGluZyBzdGF0ZSBiZWZvcmUg
dmVyaWZ5aW5nIHRoZSBzcGVjdWxhdGlvbiBpdCBoYXMgYWxyZWFkeSBtYWRlLgogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNw
cAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
eGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgY29t
cGlsZU9TUkV4aXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAKICAgICAgICAgTGlua0J1ZmZl
ciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIGNvZGVCbG9jayk7CiAgICAgICAgIGV4aXQubV9jb2Rl
ID0gRklOQUxJWkVfQ09ERV9JRigKLSAgICAgICAgICAgIHNob3VsZFNob3dEaXNhc3NlbWJseSgp
LAorICAgICAgICAgICAgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6dmVyYm9z
ZU9TUigpLAogICAgICAgICAgICAgcGF0Y2hCdWZmZXIsCiAgICAgICAgICAgICAoIkRGRyBPU1Ig
ZXhpdCAjJXUgKCVzLCAlcykgZnJvbSAlcywgd2l0aCBvcGVyYW5kcyA9ICVzIiwKICAgICAgICAg
ICAgICAgICBleGl0SW5kZXgsIHRvQ1N0cmluZyhleGl0Lm1fY29kZU9yaWdpbikuZGF0YSgpLApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJERkdPcGVy
YXRpb25zLmgiCisjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMu
aCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKQEAgLTE3Myw3ICsxNzQsMTEgQEAgdm9pZCBh
ZGp1c3RBbmRKdW1wVG9UYXJnZXQoQ0NhbGxIZWxwZXJzJgogICAgIEFTU0VSVChtYXBwaW5nLT5t
X2J5dGVjb2RlSW5kZXggPT0gZXhpdC5tX2NvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCk7CiAgICAg
CiAgICAgdm9pZCoganVtcFRhcmdldCA9IGJhc2VsaW5lQ29kZUJsb2NrLT5qaXRDb2RlKCktPmV4
ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQobWFwcGluZy0+bV9tYWNoaW5lQ29kZU9mZnNldCk7CisK
KyAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpJVDo6c3RhY2tQ
b2ludGVyT2Zmc2V0Rm9yKGJhc2VsaW5lQ29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CiAgICAgCisgICAgaml0LmppdEFzc2VydFRhZ3NJblBsYWNlKCk7CisKICAgICBq
aXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoanVtcFRhcmdldCksIEdQUklu
Zm86OnJlZ1QyKTsKICAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMik7CiB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExNDAsNyArMTE0MCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiB0cmlnZ2Vy
VGllclVwTm93KEV4ZWMKICAgICB9CiAgICAgCiAgICAgV29ya2xpc3Q6OlN0YXRlIHdvcmtsaXN0
U3RhdGU7Ci0gICAgaWYgKFdvcmtsaXN0KiB3b3JrbGlzdCA9IHZtLT53b3JrbGlzdC5nZXQoKSkg
eworICAgIGlmIChXb3JrbGlzdCogd29ya2xpc3QgPSBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0
T3JOdWxsKCkpIHsKICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0ZUFs
bFJlYWR5UGxhbnNGb3JWTSgKICAgICAgICAgICAgICp2bSwgQ29tcGlsYXRpb25LZXkoY29kZUJs
b2NrLT5iYXNlbGluZVZlcnNpb24oKSwgRlRMTW9kZSkpOwogICAgIH0gZWxzZQpAQCAtMTE2OSw4
ICsxMTY5LDggQEAgdm9pZCBKSVRfT1BFUkFUSU9OIHRyaWdnZXJUaWVyVXBOb3coRXhlYwogCiAg
ICAgLy8gV2UgbmVlZCB0byBjb21waWxlIHRoZSBjb2RlLgogICAgIGNvbXBpbGUoCi0gICAgICAg
ICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBGVExNb2RlLCBVSU5UX01B
WCwgT3BlcmFuZHM8SlNWYWx1ZT4oKSwKLSAgICAgICAgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spLCB2bS0+ZW5zdXJlV29ya2xpc3QoKSk7CisgICAg
ICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBjb2RlQmxvY2ssIEZU
TE1vZGUsIFVJTlRfTUFYLAorICAgICAgICBPcGVyYW5kczxKU1ZhbHVlPigpLCBUb0ZUTERlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKGNvZGVCbG9jaykpOwogfQogCiBjaGFyKiBK
SVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKQEAgLTEyMDIsOCArMTIwMiwxMCBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQogICAgIAorICAgIFdvcmtsaXN0KiB3b3JrbGlzdCA9IGV4aXN0aW5nR2xvYmFsRlRM
V29ya2xpc3RPck51bGwoKTsKKwogICAgIFdvcmtsaXN0OjpTdGF0ZSB3b3JrbGlzdFN0YXRlOwot
ICAgIGlmIChXb3JrbGlzdCogd29ya2xpc3QgPSB2bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAgICBp
ZiAod29ya2xpc3QpIHsKICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0
ZUFsbFJlYWR5UGxhbnNGb3JWTSgKICAgICAgICAgICAgICp2bSwgQ29tcGlsYXRpb25LZXkoY29k
ZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKSwgRlRMRm9yT1NSRW50cnlNb2RlKSk7CiAgICAgfSBl
bHNlCkBAIC0xMjUyLDEwICsxMjU0LDkgQEAgY2hhciogSklUX09QRVJBVElPTiB0cmlnZ2VyT1NS
RW50cnlOb3coCiAgICAgT3BlcmFuZHM8SlNWYWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKICAgICBq
aXRDb2RlLT5yZWNvbnN0cnVjdCgKICAgICAgICAgZXhlYywgY29kZUJsb2NrLCBDb2RlT3JpZ2lu
KGJ5dGVjb2RlSW5kZXgpLCBzdHJlYW1JbmRleCwgbXVzdEhhbmRsZVZhbHVlcyk7Ci0gICAgQ29t
cGlsYXRpb25SZXN1bHQgZm9yRW50cnlSZXN1bHQgPSBERkc6OmNvbXBpbGUoCi0gICAgICAgICp2
bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBGVExGb3JPU1JFbnRyeU1vZGUs
IGJ5dGVjb2RlSW5kZXgsCi0gICAgICAgIG11c3RIYW5kbGVWYWx1ZXMsIFRvRlRMRm9yT1NSRW50
cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spLAotICAgICAg
ICB2bS0+ZW5zdXJlV29ya2xpc3QoKSk7CisgICAgQ29tcGlsYXRpb25SZXN1bHQgZm9yRW50cnlS
ZXN1bHQgPSBjb21waWxlKAorICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQo
KS5nZXQoKSwgY29kZUJsb2NrLCBGVExGb3JPU1JFbnRyeU1vZGUsIGJ5dGVjb2RlSW5kZXgsCisg
ICAgICAgIG11c3RIYW5kbGVWYWx1ZXMsIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0
aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spKTsKICAgICAKICAgICAvLyBCdXQgd2UgYWxz
byB3YW50IHRvIHRyaWdnZXIgYSByZXBsYWNlbWVudCBjb21waWxlLiBPZiBjb3Vyc2UsIHdlIGRv
bid0IHdhbnQgdG8KICAgICAvLyB0cmlnZ2VyIGl0IGlmIHdlIGRvbid0IG5lZWQgdG8uIE5vdGUg
dGhhdCB0aGlzIGlzIGtpbmQgb2Ygd2VpcmQgYmVjYXVzZSB3ZSBtaWdodApAQCAtMTI2OCwxMSAr
MTI2OSwxMSBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICBD
b21waWxhdGlvbktleSBrZXlGb3JSZXBsYWNlbWVudChjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lv
bigpLCBGVExNb2RlKTsKICAgICBpZiAoY29kZUJsb2NrLT5jb2RlVHlwZSgpICE9IEdsb2JhbENv
ZGUKICAgICAgICAgJiYgIWNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKQotICAg
ICAgICAmJiAoIXZtLT53b3JrbGlzdC5nZXQoKQotICAgICAgICAgICAgfHwgdm0tPndvcmtsaXN0
LT5jb21waWxhdGlvblN0YXRlKGtleUZvclJlcGxhY2VtZW50KSA9PSBXb3JrbGlzdDo6Tm90S25v
d24pKSB7CisgICAgICAgICYmICghd29ya2xpc3QKKyAgICAgICAgICAgIHx8IHdvcmtsaXN0LT5j
b21waWxhdGlvblN0YXRlKGtleUZvclJlcGxhY2VtZW50KSA9PSBXb3JrbGlzdDo6Tm90S25vd24p
KSB7CiAgICAgICAgIGNvbXBpbGUoCi0gICAgICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVw
bGFjZW1lbnQoKS5nZXQoKSwgRlRMTW9kZSwgVUlOVF9NQVgsIE9wZXJhbmRzPEpTVmFsdWU+KCks
Ci0gICAgICAgICAgICBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKGNv
ZGVCbG9jayksIHZtLT5lbnN1cmVXb3JrbGlzdCgpKTsKKyAgICAgICAgICAgICp2bSwgY29kZUJs
b2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBjb2RlQmxvY2ssIEZUTE1vZGUsIFVJTlRfTUFY
LAorICAgICAgICAgICAgT3BlcmFuZHM8SlNWYWx1ZT4oKSwgVG9GVExEZWZlcnJlZENvbXBpbGF0
aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spKTsKICAgICB9CiAgICAgCiAgICAgaWYgKGZv
ckVudHJ5UmVzdWx0ICE9IENvbXBpbGF0aW9uU3VjY2Vzc2Z1bCkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTEsMTcgKzkxLDM2IEBA
IHN0YXRpYyB2b2lkIGR1bXBBbmRWZXJpZnlHcmFwaChHcmFwaCYgZ3IKICAgICAgICAgdmFsaWRh
dGUoZ3JhcGgsIG1vZGVGb3JGaW5hbFZhbGlkYXRlKTsKIH0KIAotUGxhbjo6UGxhbigKLSAgICBQ
YXNzUmVmUHRyPENvZGVCbG9jaz4gcGFzc2VkQ29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9k
ZSwKLSAgICB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIGNvbnN0IE9wZXJhbmRzPEpT
VmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzKQorc3RhdGljIFByb2ZpbGVyOjpDb21waWxhdGlvbktp
bmQgcHJvZmlsZXJDb21waWxhdGlvbktpbmRGb3JNb2RlKENvbXBpbGF0aW9uTW9kZSBtb2RlKQor
eworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgSW52YWxpZENvbXBpbGF0aW9uTW9kZToK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFBy
b2ZpbGVyOjpERkc7CisgICAgY2FzZSBERkdNb2RlOgorICAgICAgICByZXR1cm4gUHJvZmlsZXI6
OkRGRzsKKyAgICBjYXNlIEZUTE1vZGU6CisgICAgICAgIHJldHVybiBQcm9maWxlcjo6RlRMOwor
ICAgIGNhc2UgRlRMRm9yT1NSRW50cnlNb2RlOgorICAgICAgICByZXR1cm4gUHJvZmlsZXI6OkZU
TEZvck9TUkVudHJ5OworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBQcm9maWxlcjo6REZHOworfQorCitQbGFuOjpQbGFuKFBhc3NSZWZQdHI8Q29k
ZUJsb2NrPiBwYXNzZWRDb2RlQmxvY2ssIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ss
CisgICAgQ29tcGlsYXRpb25Nb2RlIG1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRl
eCwKKyAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcykKICAgICA6
IHZtKCpwYXNzZWRDb2RlQmxvY2stPnZtKCkpCiAgICAgLCBjb2RlQmxvY2socGFzc2VkQ29kZUJs
b2NrKQorICAgICwgcHJvZmlsZWRERkdDb2RlQmxvY2socHJvZmlsZWRERkdDb2RlQmxvY2spCiAg
ICAgLCBtb2RlKG1vZGUpCiAgICAgLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgob3NyRW50cnlCeXRl
Y29kZUluZGV4KQogICAgICwgbXVzdEhhbmRsZVZhbHVlcyhtdXN0SGFuZGxlVmFsdWVzKQotICAg
ICwgY29tcGlsYXRpb24oY29kZUJsb2NrLT52bSgpLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIgPyBh
ZG9wdFJlZihuZXcgUHJvZmlsZXI6OkNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9wZXJC
eXRlY29kZVByb2ZpbGVyLT5lbnN1cmVCeXRlY29kZXNGb3IoY29kZUJsb2NrLmdldCgpKSwgUHJv
ZmlsZXI6OkRGRykpIDogMCkKKyAgICAsIGNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9w
ZXJCeXRlY29kZVByb2ZpbGVyID8gYWRvcHRSZWYobmV3IFByb2ZpbGVyOjpDb21waWxhdGlvbihj
b2RlQmxvY2stPnZtKCktPm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+ZW5zdXJlQnl0ZWNvZGVzRm9y
KGNvZGVCbG9jay5nZXQoKSksIHByb2ZpbGVyQ29tcGlsYXRpb25LaW5kRm9yTW9kZShtb2RlKSkp
IDogMCkKICAgICAsIGlkZW50aWZpZXJzKGNvZGVCbG9jay5nZXQoKSkKICAgICAsIHdlYWtSZWZl
cmVuY2VzKGNvZGVCbG9jay5nZXQoKSkKKyAgICAsIHdpbGxUcnlUb1RpZXJVcChmYWxzZSkKICAg
ICAsIGlzQ29tcGlsZWQoZmFsc2UpCiB7CiB9CkBAIC0xMTAsMTAgKzEyOSwxNiBAQCBQbGFuOjp+
UGxhbigpCiB7CiB9CiAKK2Jvb2wgUGxhbjo6cmVwb3J0Q29tcGlsZVRpbWVzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gT3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkKKyAgICAgICAgfHwgKE9w
dGlvbnM6OnJlcG9ydEZUTENvbXBpbGVUaW1lcygpICYmIGlzRlRMKG1vZGUpKTsKK30KKwogdm9p
ZCBQbGFuOjpjb21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQog
ewogICAgIGRvdWJsZSBiZWZvcmUgPSAwOwotICAgIGlmIChPcHRpb25zOjpyZXBvcnRDb21waWxl
VGltZXMoKSkKKyAgICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgIGJlZm9yZSA9
IGN1cnJlbnRUaW1lTVMoKTsKICAgICAKICAgICBTYW1wbGluZ1JlZ2lvbiBzYW1wbGluZ1JlZ2lv
bigiREZHIENvbXBpbGF0aW9uIChQbGFuKSIpOwpAQCAtMTI2LDcgKzE1MSw3IEBAIHZvaWQgUGxh
bjo6Y29tcGlsZUluVGhyZWFkKExvbmdMaXZlZFN0YXQKIAogICAgIFJFTEVBU0VfQVNTRVJUKGZp
bmFsaXplcik7CiAgICAgCi0gICAgaWYgKE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1lcygpKSB7
CisgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIHBh
dGhOYW1lOwogICAgICAgICBzd2l0Y2ggKHBhdGgpIHsKICAgICAgICAgY2FzZSBGYWlsUGF0aDoK
QEAgLTE0NCw3ICsxNjksNyBAQCB2b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRT
dGF0CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkb3VibGUgbm93ID0g
Y3VycmVudFRpbWVNUygpOwotICAgICAgICBkYXRhTG9nKCJPcHRpbWl6ZWQgIiwgKmNvZGVCbG9j
ay0+YWx0ZXJuYXRpdmUoKSwgIiB1c2luZyAiLCBtb2RlLCAiIHdpdGggIiwgcGF0aE5hbWUsICIg
aW4gIiwgbm93IC0gYmVmb3JlLCAiIG1zIik7CisgICAgICAgIGRhdGFMb2coIk9wdGltaXplZCAi
LCAqY29kZUJsb2NrLCAiIHVzaW5nICIsIG1vZGUsICIgd2l0aCAiLCBwYXRoTmFtZSwgIiBpbnRv
ICIsIGZpbmFsaXplci0+Y29kZVNpemUoKSwgIiBieXRlcyBpbiAiLCBub3cgLSBiZWZvcmUsICIg
bXMiKTsKICAgICAgICAgaWYgKHBhdGggPT0gRlRMUGF0aCkKICAgICAgICAgICAgIGRhdGFMb2co
IiAoREZHOiAiLCBiZWZvcmVGVEwgLSBiZWZvcmUsICIsIExMVk06ICIsIG5vdyAtIGJlZm9yZUZU
TCwgIikiKTsKICAgICAgICAgZGF0YUxvZygiLlxuIik7CkBAIC0yOTMsNyArMzE4LDcgQEAgUGxh
bjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJblRocgogICAgICAgICBGVEw6OlN0YXRl
IHN0YXRlKGRmZyk7CiAgICAgICAgIEZUTDo6bG93ZXJERkdUb0xMVk0oc3RhdGUpOwogICAgICAg
ICAKLSAgICAgICAgaWYgKE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1lcygpKQorICAgICAgICBp
ZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgICAgICBiZWZvcmVGVEwgPSBjdXJyZW50
VGltZU1TKCk7CiAgICAgICAgIAogICAgICAgICBpZiAoT3B0aW9uczo6bGx2bUFsd2F5c0ZhaWxz
QmVmb3JlQ29tcGlsZSgpKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Bs
YW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTU1LDcgKzU1LDggQEAgY2xhc3MgTG9uZ0xpdmVkU3RhdGU7CiAKIHN0
cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBsYW4+IHsKICAgICBQbGFu
KAotICAgICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4sIENvbXBpbGF0aW9uTW9kZSwgdW5zaWdu
ZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LAorICAgICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4g
Y29kZUJsb2NrVG9Db21waWxlLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLAorICAg
ICAgICBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKICAg
ICAgICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMpOwogICAgIH5Q
bGFuKCk7CiAgICAgCkBAIC03MCw2ICs3MSw3IEBAIHN0cnVjdCBQbGFuIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGUKICAgICAKICAgICBWTSYgdm07CiAgICAgUmVmUHRyPENvZGVCbG9jaz4g
Y29kZUJsb2NrOworICAgIFJlZlB0cjxDb2RlQmxvY2s+IHByb2ZpbGVkREZHQ29kZUJsb2NrOwog
ICAgIENvbXBpbGF0aW9uTW9kZSBtb2RlOwogICAgIGNvbnN0IHVuc2lnbmVkIG9zckVudHJ5Qnl0
ZWNvZGVJbmRleDsKICAgICBPcGVyYW5kczxKU1ZhbHVlPiBtdXN0SGFuZGxlVmFsdWVzOwpAQCAt
ODQsNiArODYsOCBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAg
ICAgRGVzaXJlZFdlYWtSZWZlcmVuY2VzIHdlYWtSZWZlcmVuY2VzOwogICAgIERlc2lyZWRXcml0
ZUJhcnJpZXJzIHdyaXRlQmFycmllcnM7CiAgICAgRGVzaXJlZFRyYW5zaXRpb25zIHRyYW5zaXRp
b25zOworICAgIAorICAgIGJvb2wgd2lsbFRyeVRvVGllclVwOwogCiAgICAgZG91YmxlIGJlZm9y
ZUZUTDsKICAgICAKQEAgLTkyLDYgKzk2LDggQEAgc3RydWN0IFBsYW4gOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZQogICAgIFJlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNh
bGxiYWNrOwogCiBwcml2YXRlOgorICAgIGJvb2wgcmVwb3J0Q29tcGlsZVRpbWVzKCkgY29uc3Q7
CisgICAgCiAgICAgZW51bSBDb21waWxhdGlvblBhdGggeyBGYWlsUGF0aCwgREZHUGF0aCwgRlRM
UGF0aCB9OwogICAgIENvbXBpbGF0aW9uUGF0aCBjb21waWxlSW5UaHJlYWRJbXBsKExvbmdMaXZl
ZFN0YXRlJik7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxv
d2VyaW5nUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU1NBTG93ZXJpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcz
LDIyICs3MywzMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAK
ICAgICAgICAgY2FzZSBQdXRCeVZhbDoKLSAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKLSAg
ICAgICAgICAgIGxvd2VyQm91bmRzQ2hlY2soCi0gICAgICAgICAgICAgICAgbV9ncmFwaC52YXJB
cmdDaGlsZChtX25vZGUsIDApLAotICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bV9ub2RlLCAxKSwKLSAgICAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwg
MykpOworICAgICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OiB7CisgICAgICAgICAgICBFZGdlIGJh
c2UgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMCk7CisgICAgICAgICAgICBFZGdlIGlu
ZGV4ID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpOworICAgICAgICAgICAgRWRnZSBz
dG9yYWdlID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDMpOworICAgICAgICAgICAgaWYg
KGxvd2VyQm91bmRzQ2hlY2soYmFzZSwgaW5kZXgsIHN0b3JhZ2UpKQorICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1vZGUo
KS50eXBlZEFycmF5VHlwZSgpICE9IE5vdFR5cGVkQXJyYXkgJiYgbV9ub2RlLT5hcnJheU1vZGUo
KS5pc091dE9mQm91bmRzKCkpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBsZW5ndGggPSBtX2lu
c2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAgICAgICBtX25vZGVJbmRleCwg
U3BlY0ludDMyLCBHZXRBcnJheUxlbmd0aCwgbV9ub2RlLT5jb2RlT3JpZ2luLAorICAgICAgICAg
ICAgICAgICAgICBPcEluZm8obV9ub2RlLT5hcnJheU1vZGUoKS5hc1dvcmQoKSksIGJhc2UsIHN0
b3JhZ2UpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJn
Q2hpbGQobV9ub2RlLCA0KSA9IEVkZ2UobGVuZ3RoLCBLbm93bkludDMyVXNlKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHZvaWQgbG93ZXJCb3VuZHNDaGVjayhFZGdlIGJh
c2UsIEVkZ2UgaW5kZXgsIEVkZ2Ugc3RvcmFnZSkKKyAgICBib29sIGxvd2VyQm91bmRzQ2hlY2so
RWRnZSBiYXNlLCBFZGdlIGluZGV4LCBFZGdlIHN0b3JhZ2UpCiAgICAgewogICAgICAgICBpZiAo
IW1fbm9kZS0+YXJyYXlNb2RlKCkucGVybWl0c0JvdW5kc0NoZWNrTG93ZXJpbmcoKSkKLSAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCiAgICAg
ICAgIGlmICghbV9ub2RlLT5hcnJheU1vZGUoKS5sZW5ndGhOZWVkc1N0b3JhZ2UoKSkKICAgICAg
ICAgICAgIHN0b3JhZ2UgPSBFZGdlKCk7CkBAIC05OSw2ICsxMTAsNyBAQCBwcml2YXRlOgogICAg
ICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgbV9ub2RlSW5kZXgs
IFNwZWNJbnQzMiwgQ2hlY2tJbkJvdW5kcywgbV9ub2RlLT5jb2RlT3JpZ2luLAogICAgICAgICAg
ICAgaW5kZXgsIEVkZ2UobGVuZ3RoLCBLbm93bkludDMyVXNlKSk7CisgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICAgICAKICAgICBJbnNlcnRpb25TZXQgbV9pbnNlcnRpb25TZXQ7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw3ICsxNzIs
NyBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkCiB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJh
c2VUYWdHUFJPck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQ
UiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJ
VENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxN
b2RlKQogewogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2Rl
QmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdp
c3RlcnMoKSwKICAgICAgICAgSlNWYWx1ZVJlZ3MoYmFzZVRhZ0dQUk9yTm9uZSwgYmFzZVBheWxv
YWRHUFIpLAogICAgICAgICBKU1ZhbHVlUmVncyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRH
UFIpLCBzcGlsbE1vZGUgIT0gTmVlZFRvU3BpbGwpOwogICAgIApAQCAtMjA0LDcgKzIwNCw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU8KIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNhY2hlZFB1dEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVBh
eWxvYWRHUFIsIEdQUlJlZyB2YWx1ZVRhZ0dQUiwgR1BSUmVnIHZhbHVlUGF5bG9hZEdQUiwgR1BS
UmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQgcHV0S2lu
ZCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpCiB7CiAgICAgSklUUHV0QnlJZEdl
bmVyYXRvciBnZW4oCi0gICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2Vk
UmVnaXN0ZXJzKCksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAorICAgICAgICBtX2ppdC5j
b2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLAogICAgICAgICBKU1ZhbHVl
UmVnczo6cGF5bG9hZE9ubHkoYmFzZVBheWxvYWRHUFIpLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ0dQ
UiwgdmFsdWVQYXlsb2FkR1BSKSwKICAgICAgICAgc2NyYXRjaEdQUiwgZmFsc2UsIG1faml0LmVj
bWFNb2RlRm9yKGNvZGVPcmlnaW4pLCBwdXRLaW5kKTsKICAgICAKQEAgLTYzMSwxMCArNjMxLDkg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZQogICAgIAogICAgIGlu
dCBudW1BcmdzID0gbnVtUGFzc2VkQXJncyArIGR1bW15VGhpc0FyZ3VtZW50OwogCi0gICAgbV9q
aXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG51bUFyZ3MpLCBjYWxsZWVG
cmFtZVBheWxvYWRTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKTsKLSAgICBt
X2ppdC5zdG9yZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgY2FsbGVlRnJhbWVDYWxs
ZXJGcmFtZShudW1BcmdzKSk7Ci0gICAgbV9qaXQuc3RvcmUzMihjYWxsZWVQYXlsb2FkR1BSLCBj
YWxsZWVGcmFtZVBheWxvYWRTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOwotICAgIG1f
aml0LnN0b3JlMzIoY2FsbGVlVGFnR1BSLCBjYWxsZWVGcmFtZVRhZ1Nsb3QobnVtQXJncywgSlNT
dGFjazo6Q2FsbGVlKSk7CisgICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6OkFyZ3VtZW50
Q291bnQpKTsKKyAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVBheWxvYWRHUFIsIGNhbGxlZUZyYW1l
UGF5bG9hZFNsb3QoSlNTdGFjazo6Q2FsbGVlKSk7CisgICAgbV9qaXQuc3RvcmUzMihjYWxsZWVU
YWdHUFIsIGNhbGxlZUZyYW1lVGFnU2xvdChKU1N0YWNrOjpDYWxsZWUpKTsKIAogICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgbnVtUGFzc2VkQXJnczsgaSsrKSB7CiAgICAgICAgIEVkZ2UgYXJnRWRn
ZSA9IG1faml0LmdyYXBoKCkubV92YXJBcmdDaGlsZHJlbltub2RlLT5maXJzdENoaWxkKCkgKyAx
ICsgaV07CkBAIC02NDMsOCArNjQyLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwo
Tm9kZSogbm9kZQogICAgICAgICBHUFJSZWcgYXJnUGF5bG9hZEdQUiA9IGFyZy5wYXlsb2FkR1BS
KCk7CiAgICAgICAgIHVzZShhcmdFZGdlKTsKIAotICAgICAgICBtX2ppdC5zdG9yZTMyKGFyZ1Rh
Z0dQUiwgY2FsbGVlQXJndW1lbnRUYWdTbG90KG51bUFyZ3MsIGkgKyBkdW1teVRoaXNBcmd1bWVu
dCkpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKGFyZ1BheWxvYWRHUFIsIGNhbGxlZUFyZ3VtZW50
UGF5bG9hZFNsb3QobnVtQXJncywgaSArIGR1bW15VGhpc0FyZ3VtZW50KSk7CisgICAgICAgIG1f
aml0LnN0b3JlMzIoYXJnVGFnR1BSLCBjYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaSArIGR1bW15VGhp
c0FyZ3VtZW50KSk7CisgICAgICAgIG1faml0LnN0b3JlMzIoYXJnUGF5bG9hZEdQUiwgY2FsbGVl
QXJndW1lbnRQYXlsb2FkU2xvdChpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKICAgICB9CiAKICAg
ICBmbHVzaFJlZ2lzdGVycygpOwpAQCAtNjU5LDEzICs2NTgsMTEgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZQogCiAgICAgbV9qaXQuZW1pdFN0b3JlQ29kZU9yaWdp
bihub2RlLT5jb2RlT3JpZ2luKTsKICAgICAKLSAgICBtX2ppdC5hZGRQdHIoVHJ1c3RlZEltbTMy
KGNhbGxlZUZyYW1lT2Zmc2V0KG51bUFyZ3MpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIp
OwotICAgIAogICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxl
cjo6Tm90RXF1YWwsIGNhbGxlZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcp
KSk7CiAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIGNhbGxlZVBheWxvYWRHUFIsIHRhcmdldFRvQ2hlY2spKTsKICAg
ICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNhbGxlZVBheWxvYWRHUFIs
IE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlc3VsdFBheWxvYWRHUFIp
OwotICAgIG1faml0LnN0b3JlUHRyKHJlc3VsdFBheWxvYWRHUFIsIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+
KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbiArIE9CSkVDVF9PRkZTRVRP
RihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpKTsKLSAgICBtX2ppdC5z
dG9yZTMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNf
Y2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbiAr
IE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOwor
ICAgIG1faml0LnN0b3JlUHRyKHJlc3VsdFBheWxvYWRHUFIsIGNhbGxlZUZyYW1lUGF5bG9hZFNs
b3QoSlNTdGFjazo6U2NvcGVDaGFpbikpOworICAgIG1faml0LnN0b3JlUHRyKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGNhbGxlZUZyYW1lVGFnU2xvdChK
U1N0YWNrOjpTY29wZUNoYWluKSk7CiAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBmYXN0Q2FsbCA9
IG1faml0Lm5lYXJDYWxsKCk7CiAKQEAgLTMwNDcsMTIgKzMwNDQsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAot
ICAgICAgICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICAgICAgbV9qaXQuZW1pdEdl
dFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMik7Ci0gICAgICAg
IC8vIFJlc3RvcmUgb3VyIGNhbGxlcidzICJyIi4KLSAgICAgICAgbV9qaXQuZW1pdEdldENhbGxl
ckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7
Ci0gICAgICAgIC8vIFJldHVybi4KLSAgICAgICAgbV9qaXQucmVzdG9yZVJldHVybkFkZHJlc3NC
ZWZvcmVSZXR1cm4oR1BSSW5mbzo6cmVnVDIpOworICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgICAgICBtX2ppdC5yZXQoKTsKICAgICAgICAgCiAgICAgICAgIG5vUmVz
dWx0KG5vZGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAs
OCArMTkwLDggQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIAogdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQ
UlJlZyBiYXNlR1BSLCBHUFJSZWcgcmVzdWx0R1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVy
LCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNw
aWxsTW9kZSkKIHsKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9qaXQu
Y29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsCi0gICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVlUmVncyhy
ZXN1bHRHUFIpLCBzcGlsbE1vZGUgIT0gTmVlZFRvU3BpbGwpOworICAgICAgICBtX2ppdC5jb2Rl
QmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBKU1ZhbHVlUmVncyhiYXNlR1BS
KSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVzdWx0R1BSKSwgc3BpbGxNb2RlICE9IE5lZWRUb1Nw
aWxsKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CiAgICAgCiAgICAgSklUQ29t
cGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKQEAgLTIxMCw5ICsyMTAsOCBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNo
ZWRQdXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB2
YWx1ZUdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1
dEtpbmQgcHV0S2luZCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpCiB7CiAgICAg
SklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2Rl
T3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAg
ICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBzY3JhdGNo
R1BSLCBmYWxzZSwKLSAgICAgICAgbV9qaXQuZWNtYU1vZGVGb3IoY29kZU9yaWdpbiksIHB1dEtp
bmQpOworICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVy
cygpLCBKU1ZhbHVlUmVncyhiYXNlR1BSKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVHUFIp
LCBzY3JhdGNoR1BSLCBmYWxzZSwgbV9qaXQuZWNtYU1vZGVGb3IoY29kZU9yaWdpbiksIHB1dEtp
bmQpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKICAgICAKICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwpAQCAtNjYzLDkgKzY2Miw4IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUKICAgICAKICAgICBpbnQgbnVtQXJncyA9IG51
bVBhc3NlZEFyZ3MgKyBkdW1teVRoaXNBcmd1bWVudDsKICAgICAKLSAgICBtX2ppdC5zdG9yZTMy
KE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIobnVtQXJncyksIGNhbGxlZUZyYW1lUGF5bG9h
ZFNsb3QobnVtQXJncywgSlNTdGFjazo6QXJndW1lbnRDb3VudCkpOwotICAgIG1faml0LnN0b3Jl
NjQoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUobnVt
QXJncykpOwotICAgIG1faml0LnN0b3JlNjQoY2FsbGVlR1BSLCBjYWxsZWVGcmFtZVNsb3QobnVt
QXJncywgSlNTdGFjazo6Q2FsbGVlKSk7CisgICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6
OkFyZ3VtZW50Q291bnQpKTsKKyAgICBtX2ppdC5zdG9yZTY0KGNhbGxlZUdQUiwgY2FsbGVlRnJh
bWVTbG90KEpTU3RhY2s6OkNhbGxlZSkpOwogICAgIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
bnVtUGFzc2VkQXJnczsgaSsrKSB7CiAgICAgICAgIEVkZ2UgYXJnRWRnZSA9IG1faml0LmdyYXBo
KCkubV92YXJBcmdDaGlsZHJlbltub2RlLT5maXJzdENoaWxkKCkgKyAxICsgaV07CkBAIC02NzMs
NyArNjcxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZQogICAg
ICAgICBHUFJSZWcgYXJnR1BSID0gYXJnLmdwcigpOwogICAgICAgICB1c2UoYXJnRWRnZSk7CiAg
ICAgICAgIAotICAgICAgICBtX2ppdC5zdG9yZTY0KGFyZ0dQUiwgY2FsbGVlQXJndW1lbnRTbG90
KG51bUFyZ3MsIGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOworICAgICAgICBtX2ppdC5zdG9yZTY0
KGFyZ0dQUiwgY2FsbGVlQXJndW1lbnRTbG90KGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOwogICAg
IH0KIAogICAgIGZsdXNoUmVnaXN0ZXJzKCk7CkBAIC02ODIsMjMgKzY4MCwyOCBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBub2RlCiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9
IHJlc3VsdC5ncHIoKTsKIAogICAgIEpJVENvbXBpbGVyOjpEYXRhTGFiZWxQdHIgdGFyZ2V0VG9D
aGVjazsKLSAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd1BhdGg7CisgICAgSklUQ29tcGls
ZXI6Okp1bXAgc2xvd1BhdGg7CiAKICAgICBtX2ppdC5lbWl0U3RvcmVDb2RlT3JpZ2luKG5vZGUt
PmNvZGVPcmlnaW4pOwogICAgIAotICAgIG1faml0LmFkZFB0cihUcnVzdGVkSW1tMzIoY2FsbGVl
RnJhbWVPZmZzZXQobnVtQXJncykpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAg
Ci0gICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fzc2Vt
Ymxlcjo6Tm90RXF1YWwsIGNhbGxlZUdQUiwgdGFyZ2V0VG9DaGVjaywgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIoMCkpKTsKKyAgICBzbG93UGF0aCA9IG1faml0LmJyYW5jaFB0cldpdGhQ
YXRjaChNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGNhbGxlZUdQUiwgdGFyZ2V0VG9DaGVjaywg
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoMCkpOwogCiAgICAgbV9qaXQubG9hZFB0cihN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjYWxsZWVHUFIsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0
aW9uLCBtX3Njb3BlKSksIHJlc3VsdEdQUik7Ci0gICAgbV9qaXQuc3RvcmU2NChyZXN1bHRHUFIs
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0
aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFp
bikpOworICAgIG1faml0LnN0b3JlNjQocmVzdWx0R1BSLCBjYWxsZWVGcmFtZVNsb3QoSlNTdGFj
azo6U2NvcGVDaGFpbikpOwogCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgZmFzdENhbGwgPSBtX2pp
dC5uZWFyQ2FsbCgpOwotICAgIAorCiAgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0
Lmp1bXAoKTsKICAgICAKICAgICBzbG93UGF0aC5saW5rKCZtX2ppdCk7CiAgICAgCisgICAgaWYg
KG1faml0LmdyYXBoKCkubV9wbGFuLndpbGxUcnlUb1RpZXJVcCkgeworICAgICAgICBtX2ppdC5h
ZGQzMigKKyAgICAgICAgICAgIFRydXN0ZWRJbW0zMigxKSwKKyAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBYnNvbHV0ZUFkZHJlc3MoCisgICAgICAgICAgICAgICAgbV9qaXQuaml0Q29kZSgp
LT5zbG93UGF0aENhbGxzLmJlZ2luKCkgKyBtX2ppdC5jdXJyZW50SlNDYWxsSW5kZXgoKSkpOwor
ICAgIH0KKyAgICAKICAgICBtX2ppdC5tb3ZlKGNhbGxlZUdQUiwgR1BSSW5mbzo6cmVnVDApOyAv
LyBDYWxsZWUgbmVlZHMgdG8gYmUgaW4gcmVnVDAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBzbG93
Q2FsbCA9IG1faml0Lm5lYXJDYWxsKCk7CiAgICAgCkBAIC0zMjAwLDcgKzMyMDMsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAogICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2Fs
bCgKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5UHVz
aCwgTm9SZXN1bHQsIHN0b3JhZ2VMZW5ndGhHUFIsCisgICAgICAgICAgICAgICAgICAgIHNsb3dQ
YXRoLCB0aGlzLCBvcGVyYXRpb25BcnJheVB1c2gsIHN0b3JhZ2VMZW5ndGhHUFIsCiAgICAgICAg
ICAgICAgICAgICAgIHZhbHVlR1BSLCBiYXNlR1BSKSk7CiAgICAgICAgIAogICAgICAgICAgICAg
anNWYWx1ZVJlc3VsdChzdG9yYWdlTGVuZ3RoR1BSLCBub2RlKTsKQEAgLTMyMjQsNyArMzIyNyw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAg
IAogICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgICAgICAgICAgc2xv
d1BhdGhDYWxsKAotICAgICAgICAgICAgICAgICAgICBzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9u
QXJyYXlQdXNoRG91YmxlLCBOb1Jlc3VsdCwgc3RvcmFnZUxlbmd0aEdQUiwKKyAgICAgICAgICAg
ICAgICAgICAgc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSwgc3RvcmFn
ZUxlbmd0aEdQUiwKICAgICAgICAgICAgICAgICAgICAgdmFsdWVGUFIsIGJhc2VHUFIpKTsKICAg
ICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHN0b3JhZ2VMZW5ndGhHUFIsIG5vZGUp
OwpAQCAtMzM4OCwxMiArMzM5MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgbV9qaXQubW92ZShvcDEuZ3ByKCksIEdQUkluZm86OnJldHVyblZhbHVlR1BS
KTsKIAotICAgICAgICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICAgICAgbV9qaXQu
ZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMSk7Ci0g
ICAgICAgIC8vIFJlc3RvcmUgb3VyIGNhbGxlcidzICJyIi4KLSAgICAgICAgbV9qaXQuZW1pdEdl
dENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3Rlcik7Ci0gICAgICAgIC8vIFJldHVybi4KLSAgICAgICAgbV9qaXQucmVzdG9yZVJldHVybkFk
ZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6cmVnVDEpOworICAgICAgICBtX2ppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICBtX2ppdC5yZXQoKTsKICAgICAgICAgCiAgICAgICAg
IG5vUmVzdWx0KG5vZGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQ2
LDYgKzEzNDYsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3VycmVudEJsb2NrCiAg
ICAgbV9zdHJlYW0tPmFwcGVuZEFuZExvZyhWYXJpYWJsZUV2ZW50OjpyZXNldCgpKTsKICAgICAK
ICAgICBtX2ppdC5qaXRBc3NlcnRIYXNWYWxpZENhbGxGcmFtZSgpOworICAgIG1faml0LmppdEFz
c2VydFRhZ3NJblBsYWNlKCk7CisgICAgbV9qaXQuaml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUo
KTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ibG9jay0+dmFyaWFibGVzQXRIZWFk
Lm51bWJlck9mQXJndW1lbnRzKCk7ICsraSkgewogICAgICAgICBtX3N0cmVhbS0+YXBwZW5kQW5k
TG9nKApAQCAtMTUzMiwxMCArMTUzNCw0MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0Fy
Z3VtZW50VHlwZXMoCiAgICAgbV9pc0NoZWNraW5nQXJndW1lbnRUeXBlcyA9IGZhbHNlOwogfQog
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpwcmVwYXJlSklUQ29kZUZvclRpZXJVcCgpCit7CisgICAg
dW5zaWduZWQgbnVtYmVyT2ZDYWxscyA9IDA7CisgICAgCisgICAgZm9yIChCbG9ja0luZGV4IGJs
b2NrSW5kZXggPSBtX2ppdC5ncmFwaCgpLm51bUJsb2NrcygpOyBibG9ja0luZGV4LS07KSB7Cisg
ICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9qaXQuZ3JhcGgoKS5ibG9jayhibG9ja0luZGV4
KTsKKyAgICAgICAgaWYgKCFibG9jaykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBub2RlSW5kZXggPSBibG9jay0+c2l6ZSgpOyBub2RlSW5k
ZXgtLTspIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CisgICAgICAg
ICAgICBjYXNlIENhbGw6CisgICAgICAgICAgICBjYXNlIENvbnN0cnVjdDoKKyAgICAgICAgICAg
ICAgICBudW1iZXJPZkNhbGxzKys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIG1faml0LmppdENvZGUoKS0+
c2xvd1BhdGhDYWxscy5maWxsKDAsIG51bWJlck9mQ2FsbHMpOworfQorCiBib29sIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKCkKIHsKICAgICBjaGVja0FyZ3VtZW50VHlwZXMoKTsKLQorICAgIAor
ICAgIGlmIChtX2ppdC5ncmFwaCgpLm1fcGxhbi53aWxsVHJ5VG9UaWVyVXApCisgICAgICAgIHBy
ZXBhcmVKSVRDb2RlRm9yVGllclVwKCk7CisgICAgCiAgICAgQVNTRVJUKCFtX2N1cnJlbnROb2Rl
KTsKICAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IDA7IGJsb2NrSW5kZXggPCBtX2pp
dC5ncmFwaCgpLm51bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgpIHsKICAgICAgICAgbV9qaXQuc2V0
Rm9yQmxvY2tJbmRleChibG9ja0luZGV4KTsKQEAgLTIzOTAsNiArMjQyMiwxMCBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJCiAgICAgQVNTRVJUKHZhbHVlR1BSICE9
IGJhc2UpOwogICAgIEFTU0VSVCh2YWx1ZUdQUiAhPSBzdG9yYWdlUmVnKTsKICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9IGp1bXBGb3JUeXBlZEFycmF5T3V0T2ZCb3VuZHMo
bm9kZSwgYmFzZSwgcHJvcGVydHkpOworICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5pc0luQm91
bmRzKCkgJiYgb3V0T2ZCb3VuZHMuaXNTZXQoKSkgeworICAgICAgICBzcGVjdWxhdGlvbkNoZWNr
KE91dE9mQm91bmRzLCBKU1ZhbHVlU291cmNlKCksIDAsIG91dE9mQm91bmRzKTsKKyAgICAgICAg
b3V0T2ZCb3VuZHMgPSBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpOworICAgIH0KIAogICAgIHN3aXRj
aCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICBjYXNlIDE6CkBAIC0yNDY1LDYgKzI1MDEsMTAg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yRgogICAgIEFTU0VSVF9V
TlVTRUQoYmFzZVVzZSwgbm9kZS0+YXJyYXlNb2RlKCkuYWxyZWFkeUNoZWNrZWQobV9qaXQuZ3Jh
cGgoKSwgbm9kZSwgbV9zdGF0ZS5mb3JOb2RlKGJhc2VVc2UpKSk7CiAgICAgCiAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRz
KG5vZGUsIGJhc2UsIHByb3BlcnR5KTsKKyAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJv
dW5kcygpICYmIG91dE9mQm91bmRzLmlzU2V0KCkpIHsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdXRPZkJvdW5kcywgSlNWYWx1ZVNvdXJjZSgpLCAwLCBvdXRPZkJvdW5kcyk7CisgICAgICAg
IG91dE9mQm91bmRzID0gTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKKyAgICB9CiAgICAgCiAgICAg
c3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgNDogewpAQCAtMzQyOSw2ICsz
NDY5LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2QKICAgICAg
ICAgR1BSUmVnIHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiA9IHF1b3RpZW50VGhlblJlbWFpbmRl
ci5ncHIoKTsKICAgICAgICAgR1BSUmVnIG11bHRpcGx5QW5zd2VyR1BSID0gbXVsdGlwbHlBbnN3
ZXIuZ3ByKCk7CiAKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IGRvbmU7CisgICAgICAg
IAorICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxvdyhub2RlLT5hcml0aE1vZGUoKSkpCisg
ICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLCBt
X2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Olplcm8sIGRpdmlzb3JHUFIpKTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBkZW5vbWluYXRvck5vdFpl
cm8gPSBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Ok5vblplcm8sIGRpdmlzb3JHUFIp
OworICAgICAgICAgICAgbV9qaXQubW92ZShkaXZpc29yR1BSLCBxdW90aWVudFRoZW5SZW1haW5k
ZXJHUFIpOworICAgICAgICAgICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKKyAgICAgICAg
ICAgIGRlbm9taW5hdG9yTm90WmVyby5saW5rKCZtX2ppdCk7CisgICAgICAgIH0KKwogICAgICAg
ICBtX2ppdC5hc3NlbWJsZXIoKS5zZGl2KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgZGl2aWRl
bmRHUFIsIGRpdmlzb3JHUFIpOwogICAgICAgICAvLyBGSVhNRTogSXQgc2VlbXMgbGlrZSB0aGVy
ZSBhcmUgY2FzZXMgd2hlcmUgd2UgZG9uJ3QgbmVlZCB0aGlzPyBXaGF0IGlmIHdlIGhhdmUKICAg
ICAgICAgLy8gYXJpdGhNb2RlKCkgPT0gQXJpdGg6OlVuY2hlY2tlZD8KQEAgLTM0NDUsNiArMzQ5
Niw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2QKICAgICAgICAg
ICAgIG51bWVyYXRvclBvc2l0aXZlLmxpbmsoJm1faml0KTsKICAgICAgICAgfQogCisgICAgICAg
IGRvbmUubGluaygmbV9qaXQpOworICAgICAgICAKICAgICAgICAgaW50MzJSZXN1bHQocXVvdGll
bnRUaGVuUmVtYWluZGVyR1BSLCBub2RlKTsKICNlbGlmIENQVShBUk02NCkKICAgICAgICAgR1BS
VGVtcG9yYXJ5IHRlbXAodGhpcyk7CkBAIC0zNDU1LDYgKzM1MDgsMTcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKE5vZAogICAgICAgICBHUFJSZWcgcXVvdGllbnRUaGVu
UmVtYWluZGVyR1BSID0gcXVvdGllbnRUaGVuUmVtYWluZGVyLmdwcigpOwogICAgICAgICBHUFJS
ZWcgbXVsdGlwbHlBbnN3ZXJHUFIgPSBtdWx0aXBseUFuc3dlci5ncHIoKTsKIAorICAgICAgICBK
SVRDb21waWxlcjo6SnVtcExpc3QgZG9uZTsKKyAgICAKKyAgICAgICAgaWYgKHNob3VsZENoZWNr
T3ZlcmZsb3cobm9kZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBp
bGVyOjpaZXJvLCBkaXZpc29yR1BSKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSklU
Q29tcGlsZXI6Okp1bXAgZGVub21pbmF0b3JOb3RaZXJvID0gbV9qaXQuYnJhbmNoVGVzdDMyKEpJ
VENvbXBpbGVyOjpOb25aZXJvLCBkaXZpc29yR1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUo
ZGl2aXNvckdQUiwgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BSKTsKKyAgICAgICAgICAgIGRvbmUu
YXBwZW5kKG1faml0Lmp1bXAoKSk7CisgICAgICAgICAgICBkZW5vbWluYXRvck5vdFplcm8ubGlu
aygmbV9qaXQpOworICAgICAgICB9CisKICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuc2Rpdjwz
Mj4ocXVvdGllbnRUaGVuUmVtYWluZGVyR1BSLCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7CiAg
ICAgICAgIC8vIEZJWE1FOiBJdCBzZWVtcyBsaWtlIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB3ZSBk
b24ndCBuZWVkIHRoaXM/IFdoYXQgaWYgd2UgaGF2ZQogICAgICAgICAvLyBhcml0aE1vZGUoKSA9
PSBBcml0aDo6VW5jaGVja2VkPwpAQCAtMzQ3MSw2ICszNTM1LDggQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKE5vZAogICAgICAgICAgICAgbnVtZXJhdG9yUG9zaXRpdmUu
bGluaygmbV9qaXQpOwogICAgICAgICB9CiAKKyAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CisK
ICAgICAgICAgaW50MzJSZXN1bHQocXVvdGllbnRUaGVuUmVtYWluZGVyR1BSLCBub2RlKTsKICNl
bHNlIC8vIG5vdCBhcmNoaXRlY3R1cmUgdGhhdCBjYW4gZG8gaW50ZWdlciBkaXZpc2lvbgogICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMTYyOTYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTksNiArMTE5LDkgQEAgcHVibGljOgogICAgIH5TcGVjdWxhdGl2ZUpJVCgpOwog
CiAgICAgYm9vbCBjb21waWxlKCk7CisgICAgCisgICAgdm9pZCBwcmVwYXJlSklUQ29kZUZvclRp
ZXJVcCgpOworICAgIAogICAgIHZvaWQgY3JlYXRlT1NSRW50cmllcygpOwogICAgIHZvaWQgbGlu
a09TUkVudHJpZXMoTGlua0J1ZmZlciYpOwogCkBAIC03NDIsNDQgKzc0NSw0NSBAQCBwdWJsaWM6
CiAgICAgCiAgICAgcHRyZGlmZl90IGNhbGxlZUZyYW1lT2Zmc2V0KGludCBudW1BcmdzKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKG1faml0LmdyYXBoKCku
bV9uZXh0TWFjaGluZUxvY2FsICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIG51bUFy
Z3MpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIHZpcnR1YWxS
ZWdpc3RlckZvckxvY2FsKG1faml0LmdyYXBoKCkubV9uZXh0TWFjaGluZUxvY2FsIC0gMSArIEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyBudW1BcmdzKS5vZmZzZXQoKSAqIHNpemVvZihS
ZWdpc3Rlcik7CiAgICAgfQogICAgIAogICAgIC8vIEFjY2VzcyB0byBvdXIgZml4ZWQgY2FsbGVl
IENhbGxGcmFtZS4KLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVNsb3Qo
aW50IG51bUFyZ3MsIGludCBzbG90KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxl
ZUZyYW1lU2xvdChpbnQgc2xvdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgY2FsbGVlRnJhbWVPZmZzZXQo
bnVtQXJncykgKyBzaXplb2YoUmVnaXN0ZXIpICogc2xvdCk7CisgICAgICAgIEFTU0VSVChzbG90
ID49IEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKTsKKyAgICAgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwg
c2l6ZW9mKFJlZ2lzdGVyKSAqIChzbG90IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUp
KTsKICAgICB9CiAKICAgICAvLyBBY2Nlc3MgdG8gb3VyIGZpeGVkIGNhbGxlZSBDYWxsRnJhbWUu
Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRTbG90KGludCBudW1B
cmdzLCBpbnQgYXJndW1lbnQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJn
dW1lbnRTbG90KGludCBhcmd1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVGcmFt
ZVNsb3QobnVtQXJncywgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpLm9mZnNl
dCgpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdCh2aXJ0dWFsUmVnaXN0ZXJGb3JB
cmd1bWVudChhcmd1bWVudCkub2Zmc2V0KCkpOwogICAgIH0KIAotICAgIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzIGNhbGxlZUZyYW1lVGFnU2xvdChpbnQgbnVtQXJncywgaW50IHNsb3QpCisgICAg
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVUYWdTbG90KGludCBzbG90KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdChudW1BcmdzLCBzbG90KS53aXRoT2Zm
c2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7
CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3Qoc2xvdCkud2l0aE9mZnNldChPQkpFQ1Rf
T0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOwogICAgIH0KIAot
ICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoaW50IG51
bUFyZ3MsIGludCBzbG90KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1l
UGF5bG9hZFNsb3QoaW50IHNsb3QpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVT
bG90KG51bUFyZ3MsIHNsb3QpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFt
ZVNsb3Qoc2xvdCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3Jp
cHRvciwgYXNCaXRzLnBheWxvYWQpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyBjYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaW50IG51bUFyZ3MsIGludCBhcmd1bWVudCkKKyAg
ICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaW50IGFyZ3Vt
ZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBh
cmd1bWVudCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnRhZykpOworICAgICAgICByZXR1cm4gY2FsbGVlQXJndW1lbnRTbG90KGFyZ3Vt
ZW50KS53aXRoT2Zmc2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBh
c0JpdHMudGFnKSk7CiAgICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVl
QXJndW1lbnRQYXlsb2FkU2xvdChpbnQgbnVtQXJncywgaW50IGFyZ3VtZW50KQorICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3QoaW50IGFyZ3VtZW50
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBhcmd1
bWVudCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnBheWxvYWQpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChhcmd1
bWVudCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnBheWxvYWQpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBj
YWxsZWVGcmFtZUNhbGxlckZyYW1lKGludCBudW1BcmdzKQorICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNh
bGxlZUZyYW1lU2xvdChudW1BcmdzLCAwKS53aXRoT2Zmc2V0KENhbGxGcmFtZTo6Y2FsbGVyRnJh
bWVPZmZzZXQoKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QoMCkud2l0aE9mZnNl
dChDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpOwogICAgIH0KIAogICAgIHZvaWQgZW1p
dENhbGwoTm9kZSopOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBD
aGVja0luamVjdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNjI5NjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhh
c2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00OSwyNyArNDksNTkgQEAgcHVibGljOgogICAgICAgICAK
ICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VFeHBlcmltZW50YWxGVEwoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLQorICAgICAgICAKKyAgICAgICAgaWYgKG1fZ3JhcGgubV9wcm9maWxl
ZEJsb2NrLT5tX2RpZEZhaWxGVExDb21waWxhdGlvbikKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAKICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgRlRMOjpDYXBhYmlsaXR5
TGV2ZWwgbGV2ZWwgPSBGVEw6OmNhbkNvbXBpbGUobV9ncmFwaCk7CiAgICAgICAgIGlmIChsZXZl
bCA9PSBGVEw6OkNhbm5vdENvbXBpbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIAorICAgICAgICBpZiAoIU9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5VG9GVEwoKSkKKyAgICAg
ICAgICAgIGxldmVsID0gRlRMOjpDYW5Db21waWxlOworICAgICAgICAKICAgICAgICAgSW5zZXJ0
aW9uU2V0IGluc2VydGlvblNldChtX2dyYXBoKTsKICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJs
b2NrSW5kZXggPSBtX2dyYXBoLm51bUJsb2NrcygpOyBibG9ja0luZGV4LS07KSB7CiAgICAgICAg
ICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAg
ICAgICAgICBpZiAoIWJsb2NrKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgCi0gICAgICAgICAgICBpZiAoYmxvY2stPmF0KDApLT5vcCgpID09IExvb3BIaW50KSB7Ci0g
ICAgICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gYmxvY2stPmF0KDApLT5jb2Rl
T3JpZ2luOwotICAgICAgICAgICAgICAgIE5vZGVUeXBlIG5vZGVUeXBlOwotICAgICAgICAgICAg
ICAgIGlmIChsZXZlbCA9PSBGVEw6OkNhbkNvbXBpbGVBbmRPU1JFbnRlciAmJiAhY29kZU9yaWdp
bi5pbmxpbmVDYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgbm9kZVR5cGUgPSBDaGVj
a1RpZXJVcEFuZE9TUkVudGVyOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChi
bG9jay0+Ynl0ZWNvZGVCZWdpbiA9PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwotICAgICAg
ICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBub2RlVHlwZSA9IENoZWNrVGll
clVwSW5Mb29wOwotICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKDEsIFNw
ZWNOb25lLCBub2RlVHlwZSwgY29kZU9yaWdpbik7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsrbm9kZUluZGV4KSB7
CisgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOworICAg
ICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpICE9IExvb3BIaW50KQorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBXZSBv
bmx5IHB1dCBPU1IgY2hlY2tzIGZvciB0aGUgZmlyc3QgTG9vcEhpbnQgaW4gdGhlIGJsb2NrLiBO
b3RlIHRoYXQKKyAgICAgICAgICAgICAgICAvLyBtb3JlIHRoYW4gb25lIExvb3BIaW50IGNvdWxk
IGhhcHBlbiBpbiBjYXNlcyB3aGVyZSB3ZSBkaWQgYSBsb3Qgb2YgQ0ZHCisgICAgICAgICAgICAg
ICAgLy8gc2ltcGxpZmljYXRpb24gaW4gdGhlIGJ5dGVjb2RlIHBhcnNlciwgYnV0IGl0IHNob3Vs
ZCBiZSB2ZXJ5IHJhcmUuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQ29kZU9y
aWdpbiBjb2RlT3JpZ2luID0gbm9kZS0+Y29kZU9yaWdpbjsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBpZiAobGV2ZWwgIT0gRlRMOjpDYW5Db21waWxlQW5kT1NSRW50ZXIgfHwg
Y29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0
aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXggKyAx
LCBTcGVjTm9uZSwgQ2hlY2tUaWVyVXBJbkxvb3AsIGNvZGVPcmlnaW4pOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgYm9vbCBpc0F0VG9wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIHN1Yk5vZGVJbmRleCA9IG5vZGVJbmRleDsgc3ViTm9kZUluZGV4LS07KSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghYmxvY2stPmF0KHN1Yk5vZGVJbmRleCktPmlzU2VtYW50aWNh
bGx5U2tpcHBhYmxlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzQXRUb3AgPSBmYWxz
ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlm
ICghaXNBdFRvcCkgeworICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9k
ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJbmRleCArIDEsIFNwZWNOb25lLCBDaGVj
a1RpZXJVcEluTG9vcCwgY29kZU9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChibG9jay0+Ynl0ZWNvZGVCZWdpbiA9PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5k
ZXgpOworICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAg
ICAgICAgICAgICBub2RlSW5kZXggKyAxLCBTcGVjTm9uZSwgQ2hlY2tUaWVyVXBBbmRPU1JFbnRl
ciwgY29kZU9yaWdpbik7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLT5vcCgpID09IFJldHVy
bikgewpAQCAtODAsNiArMTEyLDcgQEAgcHVibGljOgogICAgICAgICAgICAgaW5zZXJ0aW9uU2V0
LmV4ZWN1dGUoYmxvY2spOwogICAgICAgICB9CiAgICAgICAgIAorICAgICAgICBtX2dyYXBoLm1f
cGxhbi53aWxsVHJ5VG9UaWVyVXAgPSB0cnVlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbHNl
IC8vIEVOQUJMRShGVExfSklUKQogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xODIsNiArMTgyLDE4IEBAIHB1YmxpYzoKICAgICAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFZfRVFVQUwoKG5vZGUpLCBub2RlLT5yZWZD
b3VudCgpLCAxKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDAgOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICAg
ICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQoaSk7CisgICAgICAgICAgICAgICAgVkFMSURB
VEUoKG5vZGUpLCAhbm9kZS0+aXNUZXJtaW5hbCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KGkpOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChub2RlLT5oYXNTdHJ1Y3R1cmUoKSkKKyAg
ICAgICAgICAgICAgICAgICAgVkFMSURBVEUoKG5vZGUpLCAhIW5vZGUtPnN0cnVjdHVyZSgpKTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX2dy
YXBoLm1fZm9ybSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlz
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlz
dC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEsMjMgKzI2MSw1MiBAQCB2b2lkIFdv
cmtsaXN0Ojp0aHJlYWRGdW5jdGlvbih2b2lkKiBhcmd1CiAgICAgc3RhdGljX2Nhc3Q8V29ya2xp
c3QqPihhcmd1bWVudCktPnJ1blRocmVhZCgpOwogfQogCi1zdGF0aWMgV29ya2xpc3QqIHRoZUds
b2JhbFdvcmtsaXN0Oworc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxERkdXb3JrbGlzdDsKIAot
V29ya2xpc3QqIGdsb2JhbFdvcmtsaXN0KCkKK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxERkdXb3Jr
bGlzdCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3Jr
bGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlz
dE9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkczsKKyAgICAg
ICAgdGhlR2xvYmFsREZHV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKE9wdGlvbnM6Om51bWJl
ck9mREZHQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKKyAgICB9KTsKKyAgICByZXR1cm4g
dGhlR2xvYmFsREZHV29ya2xpc3Q7Cit9CiAKLSAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUV4cGVy
aW1lbnRhbEZUTCgpKQotICAgICAgICAgICAgbnVtYmVyT2ZUaHJlYWRzID0gMTsgLy8gV2UgZG9u
J3QgeWV0IHVzZSBMTFZNIGluIGEgdGhyZWFkLXNhZmUgd2F5LgotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBudW1iZXJPZlRocmVhZHMgPSBPcHRpb25zOjpudW1iZXJPZkNvbXBpbGVyVGhyZWFk
cygpOworV29ya2xpc3QqIGV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKQoreworICAg
IHJldHVybiB0aGVHbG9iYWxERkdXb3JrbGlzdDsKK30KIAotICAgICAgICB0aGVHbG9iYWxXb3Jr
bGlzdCA9IFdvcmtsaXN0OjpjcmVhdGUobnVtYmVyT2ZUaHJlYWRzKS5sZWFrUmVmKCk7CitzdGF0
aWMgV29ya2xpc3QqIHRoZUdsb2JhbEZUTFdvcmtsaXN0OworCitXb3JrbGlzdCogZW5zdXJlR2xv
YmFsRlRMV29ya2xpc3QoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXpl
R2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xv
YmFsV29ya2xpc3RPbmNlRmxhZywgW10geworICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9
IFdvcmtsaXN0OjpjcmVhdGUoT3B0aW9uczo6bnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMoKSku
bGVha1JlZigpOwogICAgIH0pOworICAgIHJldHVybiB0aGVHbG9iYWxGVExXb3JrbGlzdDsKK30K
KworV29ya2xpc3QqIGV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKQoreworICAgIHJl
dHVybiB0aGVHbG9iYWxGVExXb3JrbGlzdDsKK30KIAotICAgIHJldHVybiB0aGVHbG9iYWxXb3Jr
bGlzdDsKK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxXb3JrbGlzdEZvcihDb21waWxhdGlvbk1vZGUg
bW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEludmFsaWRDb21waWxhdGlv
bk1vZGU6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybiAwOworICAgIGNhc2UgREZHTW9kZToKKyAgICAgICAgcmV0dXJuIGVuc3VyZUdsb2JhbERG
R1dvcmtsaXN0KCk7CisgICAgY2FzZSBGVExNb2RlOgorICAgIGNhc2UgRlRMRm9yT1NSRW50cnlN
b2RlOgorICAgICAgICByZXR1cm4gZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKTsKKyAgICB9Cisg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdXb3JrbGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdXb3JrbGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSwxMCArOTUsMTUgQEAgcHJpdmF0
ZToKICAgICB1bnNpZ25lZCBtX251bWJlck9mQWN0aXZlVGhyZWFkczsKIH07CiAKLS8vIEZvciBu
b3cgd2UgdXNlIGEgc2luZ2xlIGdsb2JhbCB3b3JrbGlzdC4gSXQncyBub3QgY2xlYXIgdGhhdCB0
aGlzCi0vLyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8sIGJ1dCBpdCBpcyB3aGF0IHdlIGRvLCBm
b3Igbm93LiBUaGlzIGZ1bmN0aW9uCi0vLyB3aWxsIGxhemlseSBjcmVhdGUgb25lIHdoZW4gaXQn
cyBuZWVkZWQuCi1Xb3JrbGlzdCogZ2xvYmFsV29ya2xpc3QoKTsKKy8vIEZvciBERkdNb2RlIGNv
bXBpbGF0aW9ucy4KK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpOworV29ya2xp
c3QqIGV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKTsKKworLy8gRm9yIEZUTE1vZGUg
YW5kIEZUTEZvck9TUkVudHJ5TW9kZSBjb21waWxhdGlvbnMuCitXb3JrbGlzdCogZW5zdXJlR2xv
YmFsRlRMV29ya2xpc3QoKTsKK1dvcmtsaXN0KiBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JO
dWxsKCk7CisKK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxXb3JrbGlzdEZvcihDb21waWxhdGlvbk1v
ZGUpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmNwcAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9B
Uk02NC9BNjRET3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsOCBAQCBzdHJ1
Y3QgT3Bjb2RlR3JvdXBJbml0aWFsaXplciB7CiB7IGdyb3VwSW5kZXgsIGdyb3VwQ2xhc3M6Om1h
c2ssIGdyb3VwQ2xhc3M6OnBhdHRlcm4sIGdyb3VwQ2xhc3M6OmZvcm1hdCB9CiAKIHN0YXRpYyBP
cGNvZGVHcm91cEluaXRpYWxpemVyIG9wY29kZUdyb3VwTGlzdFtdID0geworICAgIE9QQ09ERV9H
Uk9VUF9FTlRSWSgweDA4LCBBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyKSwKKyAgICBP
UENPREVfR1JPVVBfRU5UUlkoMHgwOSwgQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciks
CiAgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MGEsIEE2NERPcGNvZGVMb2dpY2FsU2hpZnRlZFJl
Z2lzdGVyKSwKICAgICBPUENPREVfR1JPVVBfRU5UUlkoMHgwYiwgQTY0RE9wY29kZUFkZFN1YnRy
YWN0RXh0ZW5kZWRSZWdpc3RlciksCiAgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MGIsIEE2NERP
cGNvZGVBZGRTdWJ0cmFjdFNoaWZ0ZWRSZWdpc3RlciksCkBAIC0xNzIsNiArMTc0LDExIEBAIGNv
bnN0IGNoYXIqIEE2NERPcGNvZGU6OmZvcm1hdCgpCiAKIHZvaWQgQTY0RE9wY29kZTo6YXBwZW5k
UmVnaXN0ZXJOYW1lKHVuc2lnbmVkIHJlZ2lzdGVyTnVtYmVyLCBib29sIGlzNjRCaXQpCiB7Cisg
ICAgaWYgKHJlZ2lzdGVyTnVtYmVyID09IDI5KSB7CisgICAgICAgIGJ1ZmZlclByaW50ZihpczY0
Qml0ID8gImZwIiA6ICJ3ZnAiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChy
ZWdpc3Rlck51bWJlciA9PSAzMCkgewogICAgICAgICBidWZmZXJQcmludGYoaXM2NEJpdCA/ICJs
ciIgOiAid2xyIik7CiAgICAgICAgIHJldHVybjsKQEAgLTkzOSw2ICs5NDYsNjMgQEAgY29uc3Qg
Y2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyTwogICAgIHJldHVybiBtX2Zvcm1hdEJ1
ZmZlcjsKIH0KIAorY29uc3QgY2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpcjo6
b3BOYW1lKCkKK3sKKyAgICBpZiAoIXZCaXQoKSAmJiBsQml0KCkgJiYgc2l6ZSgpID09IDB4MSkK
KyAgICAgICAgcmV0dXJuICJsZHBzdyI7CisgICAgaWYgKGxCaXQoKSkKKyAgICAgICAgcmV0dXJu
ICJsZHAiOworICAgIHJldHVybiAic3RwIjsKK30KKworY29uc3QgY2hhciogQTY0RE9wY29kZUxv
YWRTdG9yZVJlZ2lzdGVyUGFpcjo6Zm9ybWF0KCkKK3sKKyAgICBjb25zdCBjaGFyKiB0aGlzT3BO
YW1lID0gb3BOYW1lKCk7CisgICAgCisgICAgaWYgKHNpemUoKSA9PSAweDMpCisgICAgICAgIHJl
dHVybiBBNjRET3Bjb2RlOjpmb3JtYXQoKTsKKworICAgIGlmICgob2Zmc2V0TW9kZSgpIDwgMHgx
KSB8fCAob2Zmc2V0TW9kZSgpID4gMHgzKSkKKyAgICAgICAgcmV0dXJuIEE2NERPcGNvZGU6OmZv
cm1hdCgpOworCisgICAgaWYgKChvZmZzZXRNb2RlKCkgPT0gMHgxKSAmJiAhdkJpdCgpICYmICFs
Qml0KCkpCisgICAgICAgIHJldHVybiBBNjRET3Bjb2RlOjpmb3JtYXQoKTsKKworICAgIGFwcGVu
ZEluc3RydWN0aW9uTmFtZSh0aGlzT3BOYW1lKTsKKyAgICB1bnNpZ25lZCBvZmZzZXRTaGlmdDsK
KyAgICBpZiAodkJpdCgpKSB7CisgICAgICAgIGFwcGVuZEZQUmVnaXN0ZXJOYW1lKHJ0KCksIHNp
emUoKSk7CisgICAgICAgIGFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICBhcHBlbmRGUFJlZ2lz
dGVyTmFtZShydDIoKSwgc2l6ZSgpKTsKKyAgICAgICAgb2Zmc2V0U2hpZnQgPSBzaXplKCkgKyAy
OworICAgIH0gZWxzZSB7CisgICAgICAgIGFwcGVuZFJlZ2lzdGVyTmFtZShydCgpLCBpczY0Qml0
KCkpOworICAgICAgICBhcHBlbmRTZXBhcmF0b3IoKTsKKyAgICAgICAgYXBwZW5kUmVnaXN0ZXJO
YW1lKHJ0MigpLCBpczY0Qml0KCkpOworICAgICAgICBvZmZzZXRTaGlmdCA9IChzaXplKCkgPj4g
MSkgKyAyOworICAgIH0KKworICAgIGFwcGVuZFNlcGFyYXRvcigpOworICAgIGFwcGVuZENoYXJh
Y3RlcignWycpOworICAgIGFwcGVuZFNQT3JSZWdpc3Rlck5hbWUocm4oKSk7CisKKyAgICBpbnQg
b2Zmc2V0ID0gaW1tZWRpYXRlNygpIDw8IG9mZnNldFNoaWZ0OworCisgICAgaWYgKG9mZnNldE1v
ZGUoKSA9PSAxKSB7CisgICAgICAgIGFwcGVuZENoYXJhY3RlcignXScpOworICAgICAgICBhcHBl
bmRTZXBhcmF0b3IoKTsKKyAgICAgICAgYXBwZW5kU2lnbmVkSW1tZWRpYXRlKG9mZnNldCk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIGFwcGVuZFNp
Z25lZEltbWVkaWF0ZShvZmZzZXQpOworICAgICAgICBhcHBlbmRDaGFyYWN0ZXIoJ10nKTsKKyAg
ICAgICAgaWYgKG9mZnNldE1vZGUoKSA9PSAweDMpCisgICAgICAgICAgICBhcHBlbmRDaGFyYWN0
ZXIoJyEnKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9mb3JtYXRCdWZmZXI7Cit9CisKIGNvbnN0
IGNoYXIqIEE2NERPcGNvZGVMb2FkU3RvcmVVbnNpZ25lZEltbWVkaWF0ZTo6Zm9ybWF0KCkKIHsK
ICAgICBjb25zdCBjaGFyKiB0aGlzT3BOYW1lID0gb3BOYW1lKCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuaAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9B
Uk02NC9BNjRET3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2NSw2ICs1NjUsMjIgQEAgcHVi
bGljOgogICAgIGludCBzQml0KCkgeyByZXR1cm4gKG1fb3Bjb2RlID4+IDEyKSAmIDB4MTsgfQog
fTsKIAorY2xhc3MgQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciA6IHB1YmxpYyBBNjRE
T3Bjb2RlTG9hZFN0b3JlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFz
ayA9IDB4M2EwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDI4
MDAwMDAwOworCisgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUxvYWRTdG9yZVJl
Z2lzdGVyUGFpciwgdGhpc09iaik7CisKKyAgICBjb25zdCBjaGFyKiBmb3JtYXQoKTsKKyAgICBj
b25zdCBjaGFyKiBvcE5hbWUoKTsKKworICAgIHVuc2lnbmVkIHJ0MigpIHsgcmV0dXJuIChtX29w
Y29kZSA+PiAxMCkgJiAweDFmOyB9CisgICAgaW50IGltbWVkaWF0ZTcoKSB7IHJldHVybiAoc3Rh
dGljX2Nhc3Q8aW50PigobV9vcGNvZGUgPj4gMTUpICYgMHg3ZikgPDwgMjUpID4+IDI1OyB9Cisg
ICAgdW5zaWduZWQgb2Zmc2V0TW9kZSgpIHsgcmV0dXJuIChtX29wY29kZSA+PiAyMykgJiAweDc7
IH0KKyAgICBpbnQgbEJpdCgpIHsgcmV0dXJuIChtX29wY29kZSA+PiAyMikgJiAweDE7IH0KK307
CisKIGNsYXNzIEE2NERPcGNvZGVMb2FkU3RvcmVVbnNpZ25lZEltbWVkaWF0ZSA6IHB1YmxpYyBB
NjRET3Bjb2RlTG9hZFN0b3JlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
bWFzayA9IDB4M2IwMDAwMDA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFi
YnJldmlhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEFiYnJldmlhdGlvbnMuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYmJyZXZpYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcg
QEAgc3RhdGljIGlubGluZSBMVHlwZSBmbG9hdFR5cGUoTENvbnRleHQgYwogc3RhdGljIGlubGlu
ZSBMVHlwZSBkb3VibGVUeXBlKExDb250ZXh0IGNvbnRleHQpIHsgcmV0dXJuIGxsdm0tPkRvdWJs
ZVR5cGVJbkNvbnRleHQoY29udGV4dCk7IH0KIAogc3RhdGljIGlubGluZSBMVHlwZSBwb2ludGVy
VHlwZShMVHlwZSB0eXBlKSB7IHJldHVybiBsbHZtLT5Qb2ludGVyVHlwZSh0eXBlLCAwKTsgfQor
c3RhdGljIGlubGluZSBMVHlwZSBhcnJheVR5cGUoTFR5cGUgdHlwZSwgdW5zaWduZWQgY291bnQp
IHsgcmV0dXJuIGxsdm0tPkFycmF5VHlwZSh0eXBlLCBjb3VudCk7IH0KIHN0YXRpYyBpbmxpbmUg
TFR5cGUgdmVjdG9yVHlwZShMVHlwZSB0eXBlLCB1bnNpZ25lZCBjb3VudCkgeyByZXR1cm4gbGx2
bS0+VmVjdG9yVHlwZSh0eXBlLCBjb3VudCk7IH0KIAogZW51bSBQYWNraW5nTW9kZSB7IE5vdFBh
Y2tlZCwgUGFja2VkIH07CkBAIC0xMzIsNiArMTMzLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNl
dE1ldGFkYXRhKExWYWx1ZSBpbgogc3RhdGljIGlubGluZSBMVmFsdWUgYWRkRnVuY3Rpb24oTE1v
ZHVsZSBtb2R1bGUsIGNvbnN0IGNoYXIqIG5hbWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGxsdm0t
PkFkZEZ1bmN0aW9uKG1vZHVsZSwgbmFtZSwgdHlwZSk7IH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBz
ZXRMaW5rYWdlKExWYWx1ZSBnbG9iYWwsIExMaW5rYWdlIGxpbmthZ2UpIHsgbGx2bS0+U2V0TGlu
a2FnZShnbG9iYWwsIGxpbmthZ2UpOyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0RnVuY3Rpb25D
YWxsaW5nQ29udihMVmFsdWUgZnVuY3Rpb24sIExDYWxsQ29udiBjb252ZW50aW9uKSB7IGxsdm0t
PlNldEZ1bmN0aW9uQ2FsbENvbnYoZnVuY3Rpb24sIGNvbnZlbnRpb24pOyB9CitzdGF0aWMgaW5s
aW5lIHZvaWQgYWRkVGFyZ2V0RGVwZW5kZW50RnVuY3Rpb25BdHRyKExWYWx1ZSBmdW5jdGlvbiwg
Y29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFyKiB2YWx1ZSkgeyBsbHZtLT5BZGRUYXJnZXREZXBl
bmRlbnRGdW5jdGlvbkF0dHIoZnVuY3Rpb24sIGtleSwgdmFsdWUpOyB9CiAKIHN0YXRpYyBpbmxp
bmUgTFZhbHVlIGFkZEV4dGVybkZ1bmN0aW9uKExNb2R1bGUgbW9kdWxlLCBjb25zdCBjaGFyKiBu
YW1lLCBMVHlwZSB0eXBlKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YnN0cmFjdEhlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQWJzdHJhY3RIZWFwLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw5ICs1
MywxMCBAQCB2b2lkIEFic3RyYWN0SGVhcDo6ZGVjb3JhdGVJbnN0cnVjdGlvbihMCiAgICAgc2V0
TWV0YWRhdGEoaW5zdHJ1Y3Rpb24sIHJlcG9zaXRvcnkubV90YmFhS2luZCwgdGJhYU1ldGFkYXRh
KHJlcG9zaXRvcnkpKTsKIH0KIAotSW5kZXhlZEFic3RyYWN0SGVhcDo6SW5kZXhlZEFic3RyYWN0
SGVhcChMQ29udGV4dCBjb250ZXh0LCBBYnN0cmFjdEhlYXAqIHBhcmVudCwgY29uc3QgY2hhciog
aGVhcE5hbWUsIHNpemVfdCBlbGVtZW50U2l6ZSkKK0luZGV4ZWRBYnN0cmFjdEhlYXA6OkluZGV4
ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBwYXJlbnQsIGNv
bnN0IGNoYXIqIGhlYXBOYW1lLCBwdHJkaWZmX3Qgb2Zmc2V0LCBzaXplX3QgZWxlbWVudFNpemUp
CiAgICAgOiBtX2hlYXBGb3JBbnlJbmRleChwYXJlbnQsIGhlYXBOYW1lKQogICAgICwgbV9oZWFw
TmFtZUxlbmd0aChzdHJsZW4oaGVhcE5hbWUpKQorICAgICwgbV9vZmZzZXQob2Zmc2V0KQogICAg
ICwgbV9lbGVtZW50U2l6ZShlbGVtZW50U2l6ZSkKICAgICAsIG1fc2NhbGVUZXJtKDApCiAgICAg
LCBtX2NhblNoaWZ0KGZhbHNlKQpAQCAtOTMsNyArOTQsNyBAQCBUeXBlZFBvaW50ZXIgSW5kZXhl
ZEFic3RyYWN0SGVhcDo6YmFzZUluCiAgICAgfSBlbHNlCiAgICAgICAgIHJlc3VsdCA9IG91dC5h
ZGQoYmFzZSwgb3V0Lm11bChpbmRleCwgbV9zY2FsZVRlcm0pKTsKICAgICAKLSAgICByZXR1cm4g
VHlwZWRQb2ludGVyKGF0QW55SW5kZXgoKSwgb3V0LmFkZFB0cihyZXN1bHQsIG9mZnNldCkpOwor
ICAgIHJldHVybiBUeXBlZFBvaW50ZXIoYXRBbnlJbmRleCgpLCBvdXQuYWRkUHRyKHJlc3VsdCwg
bV9vZmZzZXQgKyBvZmZzZXQpKTsKIH0KIAogY29uc3QgQWJzdHJhY3RGaWVsZCYgSW5kZXhlZEFi
c3RyYWN0SGVhcDo6YXRTbG93KHB0cmRpZmZfdCBpbmRleCkKQEAgLTE2OCwxNiArMTY5LDE1IEBA
IHZvaWQgSW5kZXhlZEFic3RyYWN0SGVhcDo6aW5pdGlhbGl6ZShBYnMKICAgICAgICAgICAgIGFj
Y3VtdWxhdG9yID4+PSA0OwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBmaWVsZC5pbml0
aWFsaXplKCZtX2hlYXBGb3JBbnlJbmRleCwgY2hhcmFjdGVycywgc2lnbmVkSW5kZXggKiBtX2Vs
ZW1lbnRTaXplKTsKKyAgICAgICAgZmllbGQuaW5pdGlhbGl6ZSgmbV9oZWFwRm9yQW55SW5kZXgs
IGNoYXJhY3RlcnMsIG1fb2Zmc2V0ICsgc2lnbmVkSW5kZXggKiBtX2VsZW1lbnRTaXplKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogfQogCi1OdW1iZXJlZEFic3RyYWN0SGVhcDo6TnVtYmVyZWRBYnN0cmFjdEhlYXAoCi0g
ICAgTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBoZWFwLCBjb25zdCBjaGFyKiBoZWFw
TmFtZSkKLSAgICA6IG1faW5kZXhlZEhlYXAoY29udGV4dCwgaGVhcCwgaGVhcE5hbWUsIDEpCitO
dW1iZXJlZEFic3RyYWN0SGVhcDo6TnVtYmVyZWRBYnN0cmFjdEhlYXAoTENvbnRleHQgY29udGV4
dCwgQWJzdHJhY3RIZWFwKiBoZWFwLCBjb25zdCBjaGFyKiBoZWFwTmFtZSkKKyAgICA6IG1faW5k
ZXhlZEhlYXAoY29udGV4dCwgaGVhcCwgaGVhcE5hbWUsIDAsIDEpCiB7CiB9CiAKQEAgLTE4NSw5
ICsxODUsOCBAQCBOdW1iZXJlZEFic3RyYWN0SGVhcDo6fk51bWJlcmVkQWJzdHJhY3RICiB7CiB9
CiAKLUFic29sdXRlQWJzdHJhY3RIZWFwOjpBYnNvbHV0ZUFic3RyYWN0SGVhcCgKLSAgICBMQ29u
dGV4dCBjb250ZXh0LCBBYnN0cmFjdEhlYXAqIGhlYXAsIGNvbnN0IGNoYXIqIGhlYXBOYW1lKQot
ICAgIDogbV9pbmRleGVkSGVhcChjb250ZXh0LCBoZWFwLCBoZWFwTmFtZSwgMSkKK0Fic29sdXRl
QWJzdHJhY3RIZWFwOjpBYnNvbHV0ZUFic3RyYWN0SGVhcChMQ29udGV4dCBjb250ZXh0LCBBYnN0
cmFjdEhlYXAqIGhlYXAsIGNvbnN0IGNoYXIqIGhlYXBOYW1lKQorICAgIDogbV9pbmRleGVkSGVh
cChjb250ZXh0LCBoZWFwLCBoZWFwTmFtZSwgMCwgMSkKIHsKIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCShyZXZpc2lvbiAxNjI5NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzksNyArMTM5LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgSW5kZXhlZEFic3RyYWN0
SGVhcCB7CiBwdWJsaWM6Ci0gICAgSW5kZXhlZEFic3RyYWN0SGVhcChMQ29udGV4dCwgQWJzdHJh
Y3RIZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIqIGhlYXBOYW1lLCBzaXplX3QgZWxlbWVudFNpemUp
OworICAgIEluZGV4ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQsIEFic3RyYWN0SGVhcCogcGFyZW50
LCBjb25zdCBjaGFyKiBoZWFwTmFtZSwgcHRyZGlmZl90IG9mZnNldCwgc2l6ZV90IGVsZW1lbnRT
aXplKTsKICAgICB+SW5kZXhlZEFic3RyYWN0SGVhcCgpOwogICAgIAogICAgIGNvbnN0IEFic3Ry
YWN0SGVhcCYgYXRBbnlJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faGVhcEZvckFueUluZGV4OyB9
CkBAIC0xNjgsNiArMTY4LDcgQEAgcHJpdmF0ZToKIAogICAgIEFic3RyYWN0SGVhcCBtX2hlYXBG
b3JBbnlJbmRleDsKICAgICBzaXplX3QgbV9oZWFwTmFtZUxlbmd0aDsKKyAgICBwdHJkaWZmX3Qg
bV9vZmZzZXQ7CiAgICAgc2l6ZV90IG1fZWxlbWVudFNpemU7CiAgICAgTFZhbHVlIG1fc2NhbGVU
ZXJtOwogICAgIGJvb2wgbV9jYW5TaGlmdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5OjpBYnN0cmFjdEhlYXBSZXBvCiAgICAgCiAgICAgLCBKU0NlbGxfZnJlZUxpc3RO
ZXh0KEpTQ2VsbF9zdHJ1Y3R1cmUpCiAgICAgCi0jZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVB
UF9JTklUSUFMSVpBVElPTihuYW1lLCBzaXplKSAsIG5hbWUoY29udGV4dCwgJnJvb3QsICNuYW1l
LCBzaXplKQorI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElBTElaQVRJT04obmFt
ZSwgb2Zmc2V0LCBzaXplKSAsIG5hbWUoY29udGV4dCwgJnJvb3QsICNuYW1lLCBvZmZzZXQsIHNp
emUpCiAgICAgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKElOREVYRURfQUJTVFJBQ1Rf
SEVBUF9JTklUSUFMSVpBVElPTikKICN1bmRlZiBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElB
TElaQVRJT04KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDgsMTEgKzQ4LDE1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRM
IHsKICAgICBtYWNybyhKU0FycmF5QnVmZmVyVmlld19tb2RlLCBKU0FycmF5QnVmZmVyVmlldzo6
b2Zmc2V0T2ZNb2RlKCkpIFwKICAgICBtYWNybyhKU0FycmF5QnVmZmVyVmlld192ZWN0b3IsIEpT
QXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZlZlY3RvcigpKSBcCiAgICAgbWFjcm8oSlNDZWxsX3N0
cnVjdHVyZSwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSkgXAorICAgIG1hY3JvKEpTRnVuY3Rp
b25fZXhlY3V0YWJsZSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpIFwKKyAgICBt
YWNybyhKU0Z1bmN0aW9uX3Njb3BlLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNjb3BlQ2hhaW4oKSkg
XAogICAgIG1hY3JvKEpTT2JqZWN0X2J1dHRlcmZseSwgSlNPYmplY3Q6OmJ1dHRlcmZseU9mZnNl
dCgpKSBcCiAgICAgbWFjcm8oSlNTY29wZV9uZXh0LCBKU1Njb3BlOjpvZmZzZXRPZk5leHQoKSkg
XAorICAgIG1hY3JvKEpTU3RyaW5nX2ZsYWdzLCBKU1N0cmluZzo6b2Zmc2V0T2ZGbGFncygpKSBc
CiAgICAgbWFjcm8oSlNTdHJpbmdfbGVuZ3RoLCBKU1N0cmluZzo6b2Zmc2V0T2ZMZW5ndGgoKSkg
XAogICAgIG1hY3JvKEpTU3RyaW5nX3ZhbHVlLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSBc
CiAgICAgbWFjcm8oSlNWYXJpYWJsZU9iamVjdF9yZWdpc3RlcnMsIEpTVmFyaWFibGVPYmplY3Q6
Om9mZnNldE9mUmVnaXN0ZXJzKCkpIFwKKyAgICBtYWNybyhKU1dyYXBwZXJPYmplY3RfaW50ZXJu
YWxWYWx1ZSwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkpIFwKICAgICBt
YWNybyhNYXJrZWRBbGxvY2F0b3JfZnJlZUxpc3RIZWFkLCBNYXJrZWRBbGxvY2F0b3I6Om9mZnNl
dE9mRnJlZUxpc3RIZWFkKCkpIFwKICAgICBtYWNybyhNYXJrZWRCbG9ja19tYXJrQml0cywgTWFy
a2VkQmxvY2s6Om9mZnNldE9mTWFya3MoKSkgXAogICAgIG1hY3JvKFN0cmluZ0ltcGxfZGF0YSwg
U3RyaW5nSW1wbDo6ZGF0YU9mZnNldCgpKSBcCkBAIC02NCwxNCArNjgsMTUgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV90eXBlSW5mb1R5cGUs
IFN0cnVjdHVyZTo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpCiAKICNkZWZpbmUgRk9SX0VBQ0hfSU5E
RVhFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCi0gICAgbWFjcm8oY2hhcmFjdGVyczgsIHNpemVv
ZihMQ2hhcikpIFwKLSAgICBtYWNybyhjaGFyYWN0ZXJzMTYsIHNpemVvZihVQ2hhcikpIFwKLSAg
ICBtYWNybyhpbmRleGVkSW50MzJQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBc
Ci0gICAgbWFjcm8oaW5kZXhlZERvdWJsZVByb3BlcnRpZXMsIHNpemVvZihkb3VibGUpKSBcCi0g
ICAgbWFjcm8oaW5kZXhlZENvbnRpZ3VvdXNQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpTVmFs
dWUpKSBcCi0gICAgbWFjcm8oaW5kZXhlZEFycmF5U3RvcmFnZVByb3BlcnRpZXMsIHNpemVvZihF
bmNvZGVkSlNWYWx1ZSkpIFwKLSAgICBtYWNybyhzaW5nbGVDaGFyYWN0ZXJTdHJpbmdzLCBzaXpl
b2YoSlNTdHJpbmcqKSkgXAotICAgIG1hY3JvKHZhcmlhYmxlcywgc2l6ZW9mKFJlZ2lzdGVyKSkK
KyAgICBtYWNybyhKU1JvcGVTdHJpbmdfZmliZXJzLCBKU1JvcGVTdHJpbmc6Om9mZnNldE9mRmli
ZXJzKCksIHNpemVvZihXcml0ZUJhcnJpZXI8SlNTdHJpbmc+KSkgXAorICAgIG1hY3JvKGNoYXJh
Y3RlcnM4LCAwLCBzaXplb2YoTENoYXIpKSBcCisgICAgbWFjcm8oY2hhcmFjdGVyczE2LCAwLCBz
aXplb2YoVUNoYXIpKSBcCisgICAgbWFjcm8oaW5kZXhlZEludDMyUHJvcGVydGllcywgMCwgc2l6
ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKGluZGV4ZWREb3VibGVQcm9wZXJ0aWVz
LCAwLCBzaXplb2YoZG91YmxlKSkgXAorICAgIG1hY3JvKGluZGV4ZWRDb250aWd1b3VzUHJvcGVy
dGllcywgMCwgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKGluZGV4ZWRBcnJh
eVN0b3JhZ2VQcm9wZXJ0aWVzLCAwLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCisgICAgbWFj
cm8oc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncywgMCwgc2l6ZW9mKEpTU3RyaW5nKikpIFwKKyAgICBt
YWNybyh2YXJpYWJsZXMsIDAsIHNpemVvZihSZWdpc3RlcikpCiAgICAgCiAjZGVmaW5lIEZPUl9F
QUNIX05VTUJFUkVEX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhwcm9wZXJ0aWVz
KQpAQCAtOTcsNyArMTAyLDcgQEAgcHVibGljOgogICAgIAogICAgIEFic3RyYWN0RmllbGQmIEpT
Q2VsbF9mcmVlTGlzdE5leHQ7CiAgICAgCi0jZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVBUF9E
RUNMQVJBVElPTihuYW1lLCBzaXplKSBJbmRleGVkQWJzdHJhY3RIZWFwIG5hbWU7CisjZGVmaW5l
IElOREVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElPTihuYW1lLCBvZmZzZXQsIHNpemUpIElu
ZGV4ZWRBYnN0cmFjdEhlYXAgbmFtZTsKICAgICBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hF
QVAoSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9OKQogI3VuZGVmIElOREVYRURfQUJT
VFJBQ1RfSEVBUF9ERUNMQVJBVElPTgogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBERkc7CiAKK3N0YXRpYyBib29sIHZlcmJvc2VDYXBhYmlsaXRpZXMoKQorewor
ICAgIHJldHVybiB2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkgfHwgT3B0aW9uczo6dmVyYm9z
ZUZUTEZhaWx1cmUoKTsKK30KKwogaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5v
ZGUqIG5vZGUpCiB7CiAgICAgLy8gTk9URTogSWYgd2UgZXZlciBoYXZlIHBoYW50b20gYXJndW1l
bnRzLCB3ZSBjYW4gY29tcGlsZSB0aGVtIGJ1dCB3ZSBjYW5ub3QKQEAgLTc3LDYgKzgyLDkgQEAg
aW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNhc2UgQXJpdGhN
aW46CiAgICAgY2FzZSBBcml0aE1heDoKICAgICBjYXNlIEFyaXRoQWJzOgorICAgIGNhc2UgQXJp
dGhTaW46CisgICAgY2FzZSBBcml0aENvczoKKyAgICBjYXNlIEFyaXRoU3FydDoKICAgICBjYXNl
IEFyaXRoTmVnYXRlOgogICAgIGNhc2UgVUludDMyVG9OdW1iZXI6CiAgICAgY2FzZSBJbnQzMlRv
RG91YmxlOgpAQCAtODgsOCArOTYsNiBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBp
bGUoTm9kZSogCiAgICAgY2FzZSBVcHNpbG9uOgogICAgIGNhc2UgRXh0cmFjdE9TUkVudHJ5TG9j
YWw6CiAgICAgY2FzZSBMb29wSGludDoKLSAgICBjYXNlIENhbGw6Ci0gICAgY2FzZSBDb25zdHJ1
Y3Q6CiAgICAgY2FzZSBHZXRNeVNjb3BlOgogICAgIGNhc2UgU2tpcFNjb3BlOgogICAgIGNhc2Ug
R2V0Q2xvc3VyZVJlZ2lzdGVyczoKQEAgLTEwOCwxNSArMTE0LDI3IEBAIGlubGluZSBDYXBhYmls
aXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiAKICAgICBjYXNlIFN0b3JlQmFycmllcjoKICAgICBj
YXNlIENvbmRpdGlvbmFsU3RvcmVCYXJyaWVyOgogICAgIGNhc2UgU3RvcmVCYXJyaWVyV2l0aE51
bGxDaGVjazoKKyAgICBjYXNlIENhbGw6CisgICAgY2FzZSBDb25zdHJ1Y3Q6CiAgICAgY2FzZSBW
YWx1ZVRvSW50MzI6CiAgICAgY2FzZSBCcmFuY2g6CiAgICAgY2FzZSBMb2dpY2FsTm90OgogICAg
IGNhc2UgQ2hlY2tJbkJvdW5kczoKICAgICBjYXNlIENvbnN0YW50U3RvcmFnZVBvaW50ZXI6CiAg
ICAgY2FzZSBDaGVjazoKKyAgICBjYXNlIENvdW50RXhlY3V0aW9uOgorICAgIGNhc2UgQ2hlY2tF
eGVjdXRhYmxlOgorICAgIGNhc2UgR2V0U2NvcGU6CisgICAgY2FzZSBBbGxvY2F0aW9uUHJvZmls
ZVdhdGNocG9pbnQ6CisgICAgY2FzZSBDaGVja0FyZ3VtZW50c05vdENyZWF0ZWQ6CisgICAgY2Fz
ZSBHZXRDYWxsZWU6CisgICAgY2FzZSBUb1N0cmluZzoKKyAgICBjYXNlIE1ha2VSb3BlOgorICAg
IGNhc2UgTmV3QXJyYXlXaXRoU2l6ZToKICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEdldEJ5SWQ6CisgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgogICAg
IGNhc2UgUHV0QnlJZDoKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBD
ZWxsVXNlKQogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMzcsOCArMjU1LDE3IEBAIGlubGluZSBD
YXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiAKIENhcGFiaWxpdHlMZXZlbCBjYW5Db21w
aWxlKEdyYXBoJiBncmFwaCkKIHsKICAgICBpZiAoZ3JhcGgubV9jb2RlQmxvY2stPmNvZGVUeXBl
KCkgIT0gRnVuY3Rpb25Db2RlKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFi
bGVkKCkpCi0gICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nIGNvZGUgYmxvY2sgdGhh
dCBkb2Vzbid0IGJlbG9uZyB0byBhIGZ1bmN0aW9uLlxuIik7CisgICAgICAgIGlmICh2ZXJib3Nl
Q2FwYWJpbGl0aWVzKCkpCisgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nICIsICpn
cmFwaC5tX2NvZGVCbG9jaywgIiBiZWNhdXNlIGl0IGRvZXNuJ3QgYmVsb25nIHRvIGEgZnVuY3Rp
b24uXG4iKTsKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAgfQorICAgIAorICAg
IGlmIChncmFwaC5tX2NvZGVCbG9jay0+bmVlZHNBY3RpdmF0aW9uKCkpIHsKKyAgICAgICAgLy8g
TmVlZCB0aGlzIGJlY2F1c2UgYWx0aG91Z2ggd2UgYWxzbyBkb24ndCBzdXBwb3J0CisgICAgICAg
IC8vIENyZWF0ZUFjdGl2YXRpb24vVGVhck9mZkFjdGl2YXRpb24sIHdlIG1pZ2h0IG5vdCBzZWUg
dGhvc2Ugbm9kZXMgaW4gY2FzZSBvZgorICAgICAgICAvLyBPU1IgZW50cnkuCisgICAgICAgIGlm
ICh2ZXJib3NlQ2FwYWJpbGl0aWVzKCkpCisgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0
aW5nICIsICpncmFwaC5tX2NvZGVCbG9jaywgIiBiZWNhdXNlIGl0IHVzZXMgYWN0aXZhdGlvbnMu
XG4iKTsKICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CiAgICAgfQogICAgIApAQCAtMjc0
LDEzICszMDEsMTcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQog
ICAgICAgICAgICAgICAgIGNhc2UgT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgT2Jq
ZWN0T3JPdGhlclVzZToKICAgICAgICAgICAgICAgICBjYXNlIFN0cmluZ1VzZToKKyAgICAgICAg
ICAgICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgorICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5n
T2JqZWN0VXNlOgorICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6
CiAgICAgICAgICAgICAgICAgY2FzZSBGaW5hbE9iamVjdFVzZToKKyAgICAgICAgICAgICAgICBj
YXNlIE5vdENlbGxVc2U6CiAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgICAgICAgICAgLy8gRG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIGFueXRoaW5nIGVsc2Uu
Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3Rpbmcgbm9kZSBiZWNh
dXNlIG9mIGJhZCB1c2Uga2luZDogIiwgZWRnZS51c2VLaW5kKCksICIgaW4gbm9kZTpcbiIpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxpdGllcygpKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nIG5vZGUgaW4gIiwgKmdyYXBo
Lm1fY29kZUJsb2NrLCAiIGJlY2F1c2Ugb2YgYmFkIHVzZSBraW5kOiAiLCBlZGdlLnVzZUtpbmQo
KSwgIiBpbiBub2RlOlxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICBncmFwaC5kdW1wKFdU
Rjo6ZGF0YUZpbGUoKSwgIiAgICAiLCBub2RlKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKQEAgLTI4OSw4ICszMjAsOCBA
QCBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIHN3aXRjaCAoY2FuQ29tcGlsZShub2RlKSkgewogICAgICAgICAgICAgY2Fz
ZSBDYW5ub3RDb21waWxlOiAKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9u
RW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3Rpbmcg
bm9kZTpcbiIpOworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlQ2FwYWJpbGl0aWVzKCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyBub2RlIGluICIsICpn
cmFwaC5tX2NvZGVCbG9jaywgIjpcbiIpOwogICAgICAgICAgICAgICAgICAgICBncmFwaC5kdW1w
KFdURjo6ZGF0YUZpbGUoKSwgIiAgICAiLCBub2RlKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExDb21tb25WYWx1ZXMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTYxLDYgKzYxLDggQEAgQ29tbW9uVmFsdWVzOjpDb21tb25WYWx1ZXMoTENvbnRleHQgY29u
dAogICAgICwgaW50UHRyRWlnaHQoY29uc3RJbnQoaW50UHRyLCA4LCBTaWduRXh0ZW5kKSkKICAg
ICAsIGludFB0clB0cihjb25zdEludChpbnRQdHIsIHNpemVvZih2b2lkKiksIFNpZ25FeHRlbmQp
KQogICAgICwgZG91YmxlWmVybyhjb25zdFJlYWwoZG91YmxlVHlwZSwgMCkpCisgICAgLCByYW5n
ZUtpbmQobWRLaW5kSUQoY29udGV4dCwgInJhbmdlIikpCisgICAgLCBub25OZWdhdGl2ZUludDMy
KGNvbnN0SW50KGludDMyLCAwLCBTaWduRXh0ZW5kKSwgY29uc3RJbnQoaW50MzIsIDFsbCA8PCAz
MSwgU2lnbkV4dGVuZCkpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fbW9kdWxl
KDApCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVz
LmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29t
bW9uVmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDYgKzMxLDcgQEAKICNpZiBFTkFCTEUoRlRM
X0pJVCkKIAogI2luY2x1ZGUgIkZUTEFiYnJldmlhdGlvbnMuaCIKKyNpbmNsdWRlICJGVExWYWx1
ZVJhbmdlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIApAQCAtNzQsNiAr
NzUsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IExWYWx1ZSBpbnRQdHJQdHI7CiAgICAgY29uc3Qg
TFZhbHVlIGRvdWJsZVplcm87CiAgICAgCisgICAgY29uc3QgdW5zaWduZWQgcmFuZ2VLaW5kOwor
ICAgIAorICAgIGNvbnN0IFZhbHVlUmFuZ2Ugbm9uTmVnYXRpdmVJbnQzMjsKKyAgICAKICAgICBM
Q29udGV4dCBjb25zdCBtX2NvbnRleHQ7CiAgICAgTE1vZHVsZSBtX21vZHVsZTsKIH07CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGVExJbmxpbmVDYWNoZVNpemUuaCIKICNp
bmNsdWRlICJGVExKSVRDb2RlLmgiCiAjaW5jbHVkZSAiRlRMVGh1bmtzLmgiCisjaW5jbHVkZSAi
RlRMVW53aW5kSW5mby5oIgogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiTExWTUFQ
SS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKQEAgLTQ5LDcgKzUwLDYgQEAgdXNpbmcgbmFt
ZXNwYWNlIERGRzsKIHN0YXRpYyB1aW50OF90KiBtbUFsbG9jYXRlQ29kZVNlY3Rpb24oCiAgICAg
dm9pZCogb3BhcXVlU3RhdGUsIHVpbnRwdHJfdCBzaXplLCB1bnNpZ25lZCBhbGlnbm1lbnQsIHVu
c2lnbmVkLCBjb25zdCBjaGFyKiBzZWN0aW9uTmFtZSkKIHsKLSAgICAKICAgICBTdGF0ZSYgc3Rh
dGUgPSAqc3RhdGljX2Nhc3Q8U3RhdGUqPihvcGFxdWVTdGF0ZSk7CiAgICAgCiAgICAgUkVMRUFT
RV9BU1NFUlQoYWxpZ25tZW50IDw9IGppdEFsbG9jYXRpb25HcmFudWxlKTsKQEAgLTU4LDYgKzU4
LDExIEBAIHN0YXRpYyB1aW50OF90KiBtbUFsbG9jYXRlQ29kZVNlY3Rpb24oCiAgICAgICAgIHN0
YXRlLmdyYXBoLm1fdm0uZXhlY3V0YWJsZUFsbG9jYXRvci5hbGxvY2F0ZSgKICAgICAgICAgICAg
IHN0YXRlLmdyYXBoLm1fdm0sIHNpemUsIHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb21w
aWxhdGlvbk11c3RTdWNjZWVkKTsKICAgICAKKyAgICBpZiAoIXN0cmNtcChzZWN0aW9uTmFtZSwg
Il9fY29tcGFjdF91bndpbmQiKSkgeworICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5kID0gcmVz
dWx0LT5zdGFydCgpOworICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5kU2l6ZSA9IHJlc3VsdC0+
c2l6ZUluQnl0ZXMoKTsKKyAgICB9CisgICAgCiAgICAgc3RhdGUuaml0Q29kZS0+YWRkSGFuZGxl
KHJlc3VsdCk7CiAgICAgc3RhdGUuY29kZVNlY3Rpb25OYW1lcy5hcHBlbmQoc2VjdGlvbk5hbWUp
OwogICAgIApAQCAtMTQ5LDggKzE1NCw2MyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2Vk
T25TdGFja01hcHMoCiAgICAgU3RhdGUmIHN0YXRlLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSklU
Q29kZSogaml0Q29kZSwgR2VuZXJhdGVkRnVuY3Rpb24gZ2VuZXJhdGVkRnVuY3Rpb24sCiAgICAg
U3RhY2tNYXBzOjpSZWNvcmRNYXAmIHJlY29yZE1hcCkKIHsKLSAgICBWTSYgdm0gPSBzdGF0ZS5n
cmFwaC5tX3ZtOworICAgIEdyYXBoJiBncmFwaCA9IHN0YXRlLmdyYXBoOworICAgIFZNJiB2bSA9
IGdyYXBoLm1fdm07CiAgICAgU3RhY2tNYXBzIHN0YWNrbWFwcyA9IGppdENvZGUtPnN0YWNrbWFw
czsKKyAgICAKKyAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJlY29y
ZE1hcC5maW5kKHN0YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCk7CisgICAgUkVMRUFTRV9BU1NFUlQo
aXRlciAhPSByZWNvcmRNYXAuZW5kKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXItPnZhbHVl
LmxvY2F0aW9ucy5zaXplKCkgPT0gMSk7CisgICAgTG9jYXRpb24gY2FwdHVyZWRMb2NhdGlvbiA9
CisgICAgICAgIExvY2F0aW9uOjpmb3JTdGFja21hcHMoJmppdENvZGUtPnN0YWNrbWFwcywgaXRl
ci0+dmFsdWUubG9jYXRpb25zWzBdKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjYXB0dXJlZExvY2F0
aW9uLmtpbmQoKSA9PSBMb2NhdGlvbjo6UmVnaXN0ZXIpOworICAgIFJFTEVBU0VfQVNTRVJUKGNh
cHR1cmVkTG9jYXRpb24uZ3ByKCkgPT0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAg
IFJFTEVBU0VfQVNTRVJUKCEoY2FwdHVyZWRMb2NhdGlvbi5hZGRlbmQoKSAlIHNpemVvZihSZWdp
c3RlcikpKTsKKyAgICBpbnQzMl90IGxvY2Fsc09mZnNldCA9IGNhcHR1cmVkTG9jYXRpb24uYWRk
ZW5kKCkgLyBzaXplb2YoUmVnaXN0ZXIpICsgZ3JhcGgubV9uZXh0TWFjaGluZUxvY2FsOworICAg
IAorICAgIGZvciAodW5zaWduZWQgaSA9IGdyYXBoLm1faW5saW5lVmFyaWFibGVEYXRhLnNpemUo
KTsgaS0tOykgeworICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGdy
YXBoLm1faW5saW5lVmFyaWFibGVEYXRhW2ldLmlubGluZUNhbGxGcmFtZTsKKyAgICAgICAgCisg
ICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1JlZ2lzdGVyLmlzVmFsaWQoKSkg
eworICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNSZWdpc3RlciA9IFZpcnR1
YWxSZWdpc3RlcigKKyAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1Jl
Z2lzdGVyLm9mZnNldCgpICsgbG9jYWxzT2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBhcmd1bWVudCA9IGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRz
LnNpemUoKTsgYXJndW1lbnQtLSA+IDE7KSB7CisgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUt
PmFyZ3VtZW50c1thcmd1bWVudF0gPQorICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+
YXJndW1lbnRzW2FyZ3VtZW50XS53aXRoTG9jYWxzT2Zmc2V0KGxvY2Fsc09mZnNldCk7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNh
bGwpIHsKKyAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3ZlcnkgPQorICAg
ICAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3Zlcnkud2l0aExvY2Fsc09m
ZnNldChsb2NhbHNPZmZzZXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlmIChjb2Rl
QmxvY2stPnVzZXNBcmd1bWVudHMoKSkgeworICAgICAgICBjb2RlQmxvY2stPnNldEFyZ3VtZW50
c1JlZ2lzdGVyKAorICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVyKGNvZGVCbG9jay0+YXJndW1l
bnRzUmVnaXN0ZXIoKS5vZmZzZXQoKSArIGxvY2Fsc09mZnNldCkpOworICAgIH0KKworICAgIHsK
KyAgICAgICAgQ0NhbGxIZWxwZXJzIGNoZWNrSklUKCZ2bSwgY29kZUJsb2NrKTsKKyAgICAgICAg
CisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgaXQncyBwZXJmZWN0bHkgZmFpciB0byBqdXN0IGJs
b3cgYXdheSBhbGwgc3RhdGUgYW5kIHJlc3RvcmUgdGhlCisgICAgICAgIC8vIEpTIEpJVCB2aWV3
IG9mIHRoZSB1bml2ZXJzZS4KKyAgICAgICAgY2hlY2tKSVQubW92ZShNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0
ZXIpOworICAgICAgICBjaGVja0pJVC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQo
VGFnTWFzayksIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CisgICAgICAgIAorICAgICAgICBj
aGVja0pJVC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZ2bSksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIGNoZWNrSklULm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGwgPSBjaGVja0pJVC5jYWxsKCk7CisgICAgICAgIGNoZWNrSklULmp1bXBUb0V4
Y2VwdGlvbkhhbmRsZXIoKTsKKyAgICAgICAgCisgICAgICAgIE93blB0cjxMaW5rQnVmZmVyPiBs
aW5rQnVmZmVyID0gYWRvcHRQdHIobmV3IExpbmtCdWZmZXIoCisgICAgICAgICAgICB2bSwgJmNo
ZWNrSklULCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAg
bGlua0J1ZmZlci0+bGluayhjYWxsLCBGdW5jdGlvblB0cihsb29rdXBFeGNlcHRpb25IYW5kbGVy
KSk7CisgICAgICAgIAorICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNM
aW5rQnVmZmVyID0gbGlua0J1ZmZlci5yZWxlYXNlKCk7CisgICAgfQogCiAgICAgRXhpdFRodW5r
R2VuZXJhdG9yIGV4aXRUaHVua0dlbmVyYXRvcihzdGF0ZSk7CiAgICAgZXhpdFRodW5rR2VuZXJh
dG9yLmVtaXRUaHVua3MoKTsKQEAgLTE2NiwxNiArMjI2LDMwIEBAIHN0YXRpYyB2b2lkIGZpeEZ1
bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKE9w
dGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhh
bmRsaW5nIE9TUiBzdGFja21hcCAjIiwgZXhpdC5tX3N0YWNrbWFwSUQsICIgZm9yICIsIGV4aXQu
bV9jb2RlT3JpZ2luLCAiXG4iKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgU3RhY2tNYXBz
OjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3RhY2tt
YXBJRCk7CisKKyAgICAgICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3RhY2tt
YXBJRCk7CiAgICAgICAgICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAg
ICAgICAgICAgICAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaW5mby5tX3Ro
dW5rQWRkcmVzcyA9IGxpbmtCdWZmZXItPmxvY2F0aW9uT2YoaW5mby5tX3RodW5rTGFiZWwpOwot
ICAgICAgICAgICAgCiAgICAgICAgICAgICBleGl0Lm1fcGF0Y2hhYmxlQ29kZU9mZnNldCA9IGxp
bmtCdWZmZXItPm9mZnNldE9mKGluZm8ubV90aHVua0p1bXApOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSBleGl0Lm1fdmFsdWVzLnNpemUoKTsgai0tOykgewor
ICAgICAgICAgICAgICAgIEV4aXRWYWx1ZSB2YWx1ZSA9IGV4aXQubV92YWx1ZXNbal07CisgICAg
ICAgICAgICAgICAgaWYgKCF2YWx1ZS5pc0luSlNTdGFja1NvbWVob3coKSkKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZS52aXJ0dWFsUmVn
aXN0ZXIoKS5pc0xvY2FsKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgIGV4aXQubV92YWx1ZXNbal0gPSB2YWx1ZS53aXRoVmlydHVhbFJlZ2lzdGVyKAor
ICAgICAgICAgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIodmFsdWUudmlydHVhbFJlZ2lzdGVy
KCkub2Zmc2V0KCkgKyBsb2NhbHNPZmZzZXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKSB7CisgICAg
ICAgICAgICAgICAgRHVtcENvbnRleHQgY29udGV4dDsKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCIgICAgRXhpdCB2YWx1ZXM6ICIsIGluQ29udGV4dChleGl0Lm1fdmFsdWVzLCAmY29udGV4dCks
ICJcbiIpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0
ZS5maW5hbGl6ZXItPmV4aXRUaHVua3NMaW5rQnVmZmVyID0gbGlua0J1ZmZlci5yZWxlYXNlKCk7
CkBAIC0xODQsMTMgKzI1OCwxNSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFj
a01hcHMoCiAgICAgaWYgKCFzdGF0ZS5nZXRCeUlkcy5pc0VtcHR5KCkgfHwgIXN0YXRlLnB1dEJ5
SWRzLmlzRW1wdHkoKSkgewogICAgICAgICBDQ2FsbEhlbHBlcnMgc2xvd1BhdGhKSVQoJnZtLCBj
b2RlQmxvY2spOwogICAgICAgICAKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBleGNl
cHRpb25UYXJnZXQ7CisgICAgICAgIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0ZS5n
ZXRCeUlkcy5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgIEdldEJ5SWREZXNjcmlwdG9yJiBn
ZXRCeUlkID0gc3RhdGUuZ2V0QnlJZHNbaV07CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlm
IChPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKSkKICAgICAgICAgICAgICAgICBkYXRhTG9n
KCJIYW5kbGluZyBHZXRCeUlkIHN0YWNrbWFwICMiLCBnZXRCeUlkLnN0YWNrbWFwSUQoKSwgIlxu
Iik7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVy
YXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZ2V0QnlJZC5zdGFja21hcElEKCkpOworICAgICAg
ICAgICAgaXRlciA9IHJlY29yZE1hcC5maW5kKGdldEJ5SWQuc3RhY2ttYXBJRCgpKTsKICAgICAg
ICAgICAgIGlmIChpdGVyID09IHJlY29yZE1hcC5lbmQoKSkgewogICAgICAgICAgICAgICAgIC8v
IEl0IHdhcyBvcHRpbWl6ZWQgb3V0LgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjAy
LDE4ICsyNzgsMTcgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAog
ICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0OjphbGxS
ZWdpc3RlcnMoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgR1BSUmVnIHJlc3VsdCA9IHJl
Y29yZC5sb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCk7Ci0gICAgICAgICAgICBHUFJSZWcgY2FsbEZy
YW1lUmVnaXN0ZXIgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwotICAgICAgICAg
ICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzJdLmRpcmVjdEdQUigpOworICAgICAg
ICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAg
ICAgICAgICBjb2RlQmxvY2ssIGdldEJ5SWQuY29kZU9yaWdpbigpLCB1c2VkUmVnaXN0ZXJzLCBj
YWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhiYXNlKSwgSlNW
YWx1ZVJlZ3MocmVzdWx0KSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGNvZGVCbG9jaywgZ2V0
QnlJZC5jb2RlT3JpZ2luKCksIHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVSZWdzKGJhc2UpLAorICAg
ICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdCksIGZhbHNlKTsKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGJlZ2luID0gc2xvd1BhdGhKSVQubGFi
ZWwoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bCA9IGNhbGxPcGVyYXRpb24oCi0gICAgICAgICAgICAgICAgc3RhdGUsIHVzZWRSZWdpc3RlcnMs
IHNsb3dQYXRoSklULCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIHJlc3VsdCwKLSAgICAgICAg
ICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgZ2VuLnN0dWJJbmZvKCksIGJhc2UsIGdldEJ5SWQu
dWlkKCkpOworICAgICAgICAgICAgICAgIHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93UGF0aEpJ
VCwgZ2V0QnlJZC5jb2RlT3JpZ2luKCksICZleGNlcHRpb25UYXJnZXQsCisgICAgICAgICAgICAg
ICAgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCByZXN1bHQsIGdlbi5zdHViSW5mbygpLCBiYXNl
LCBnZXRCeUlkLnVpZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZ2VuLnJlcG9ydFNs
b3dQYXRoQ2FsbChiZWdpbiwgY2FsbCk7CiAgICAgICAgICAgICAKQEAgLTIyNyw3ICszMDIsNyBA
QCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAgICBp
ZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxv
ZygiSGFuZGxpbmcgUHV0QnlJZCBzdGFja21hcCAjIiwgcHV0QnlJZC5zdGFja21hcElEKCksICJc
biIpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRl
cmF0b3IgaXRlciA9IHJlY29yZE1hcC5maW5kKHB1dEJ5SWQuc3RhY2ttYXBJRCgpKTsKKyAgICAg
ICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChwdXRCeUlkLnN0YWNrbWFwSUQoKSk7CiAgICAg
ICAgICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAgICAgICAgICAgICAv
LyBJdCB3YXMgb3B0aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTIz
OCwyMCArMzEzLDE5IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBMTFZNIHNob3VsZCB0ZWxsIHVzIHdoaWNoIHJlZ2lzdGVy
cyBhcmUgbGl2ZS4KICAgICAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSBSZWdp
c3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIEdQUlJl
ZyBjYWxsRnJhbWVSZWdpc3RlciA9IHJlY29yZC5sb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCk7Ci0g
ICAgICAgICAgICBHUFJSZWcgYmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCk7
Ci0gICAgICAgICAgICBHUFJSZWcgdmFsdWUgPSByZWNvcmQubG9jYXRpb25zWzJdLmRpcmVjdEdQ
UigpOworICAgICAgICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzBdLmRpcmVj
dEdQUigpOworICAgICAgICAgICAgR1BSUmVnIHZhbHVlID0gcmVjb3JkLmxvY2F0aW9uc1sxXS5k
aXJlY3RHUFIoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgSklUUHV0QnlJZEdlbmVyYXRv
ciBnZW4oCi0gICAgICAgICAgICAgICAgY29kZUJsb2NrLCBwdXRCeUlkLmNvZGVPcmlnaW4oKSwg
dXNlZFJlZ2lzdGVycywgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MoYmFzZSksIEpTVmFsdWVSZWdzKHZhbHVlKSwgTWFjcm9Bc3NlbWJsZXI6OnNjcmF0Y2hS
ZWdpc3RlciwKLSAgICAgICAgICAgICAgICBmYWxzZSwgcHV0QnlJZC5lY21hTW9kZSgpLCBwdXRC
eUlkLnB1dEtpbmQoKSk7CisgICAgICAgICAgICAgICAgY29kZUJsb2NrLCBwdXRCeUlkLmNvZGVP
cmlnaW4oKSwgdXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MoYmFzZSksCisgICAgICAgICAgICAg
ICAgSlNWYWx1ZVJlZ3ModmFsdWUpLCBNYWNyb0Fzc2VtYmxlcjo6c2NyYXRjaFJlZ2lzdGVyLCBm
YWxzZSwgcHV0QnlJZC5lY21hTW9kZSgpLAorICAgICAgICAgICAgICAgIHB1dEJ5SWQucHV0S2lu
ZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGJl
Z2luID0gc2xvd1BhdGhKSVQubGFiZWwoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oCi0gICAgICAgICAgICAgICAg
c3RhdGUsIHVzZWRSZWdpc3RlcnMsIHNsb3dQYXRoSklULCBnZW4uc2xvd1BhdGhGdW5jdGlvbigp
LCBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKSwgdmFs
dWUsIGJhc2UsIHB1dEJ5SWQudWlkKCkpOworICAgICAgICAgICAgICAgIHN0YXRlLCB1c2VkUmVn
aXN0ZXJzLCBzbG93UGF0aEpJVCwgcHV0QnlJZC5jb2RlT3JpZ2luKCksICZleGNlcHRpb25UYXJn
ZXQsCisgICAgICAgICAgICAgICAgZ2VuLnNsb3dQYXRoRnVuY3Rpb24oKSwgZ2VuLnN0dWJJbmZv
KCksIHZhbHVlLCBiYXNlLCBwdXRCeUlkLnVpZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChiZWdpbiwgY2FsbCk7CiAgICAgICAgICAgICAKQEAg
LTI1OSw4ICszMzMsMTMgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBz
KAogICAgICAgICAgICAgcHV0QnlJZC5tX2dlbmVyYXRvciA9IGdlbjsKICAgICAgICAgfQogICAg
ICAgICAKKyAgICAgICAgZXhjZXB0aW9uVGFyZ2V0LmxpbmsoJnNsb3dQYXRoSklUKTsKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZXhjZXB0aW9uSnVtcCA9IHNsb3dQYXRoSklULmp1bXAo
KTsKKyAgICAgICAgCiAgICAgICAgIHN0YXRlLmZpbmFsaXplci0+c2lkZUNvZGVMaW5rQnVmZmVy
ID0gYWRvcHRQdHIoCiAgICAgICAgICAgICBuZXcgTGlua0J1ZmZlcih2bSwgJnNsb3dQYXRoSklU
LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgc3RhdGUu
ZmluYWxpemVyLT5zaWRlQ29kZUxpbmtCdWZmZXItPmxpbmsoCisgICAgICAgICAgICBleGNlcHRp
b25KdW1wLCBzdGF0ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLT5lbnRy
eXBvaW50KCkpOwogICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhdGUuZ2V0
QnlJZHMuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBnZW5lcmF0ZUlDRmFzdFBhdGgoCkBA
IC0yNzQsMjggKzM1Myw4MSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01h
cHMoCiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVm
ZmVyKGNvZGVCbG9jayk7Ci0gICAgCi0gICAgZm9yICh1bnNpZ25lZCBleGl0SW5kZXggPSBqaXRD
b2RlLT5vc3JFeGl0LnNpemUoKTsgZXhpdEluZGV4LS07KSB7Ci0gICAgICAgIE9TUkV4aXRDb21w
aWxhdGlvbkluZm8mIGluZm8gPSBzdGF0ZS5maW5hbGl6ZXItPm9zckV4aXRbZXhpdEluZGV4XTsK
LSAgICAgICAgT1NSRXhpdCYgZXhpdCA9IGppdENvZGUtPm9zckV4aXRbZXhpdEluZGV4XTsKLSAg
ICAgICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmlu
ZChleGl0Lm1fc3RhY2ttYXBJRCk7CisgICAgLy8gSGFuZGxpbmcgSlMgY2FsbHMgaXMgd2VpcmQ6
IHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgd2Ugc29ydCB0aGVtIGJ5IHRoZSBQQyBpbiBMTFZNCisg
ICAgLy8gZ2VuZXJhdGVkIGNvZGUuIFRoYXQgaW1wbGllcyBmaXJzdCBwcnVuaW5nIHRoZSBvbmVz
IHRoYXQgTExWTSBkaWRuJ3QgZ2VuZXJhdGUuCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHN0YXRlLmpzQ2FsbHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgSlNDYWxsJiBjYWxsID0gc3Rh
dGUuanNDYWxsc1tpXTsKKyAgICAgICAgCisgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjpp
dGVyYXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoY2FsbC5zdGFja21hcElEKCkpOwogICAgICAg
ICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgY291
bGQgaGFwcGVuIGlmIExMVk0gb3B0aW1pemVzIG91dCBhbiBPU1IgZXhpdC4KKyAgICAgICAgICAg
IC8vIEl0IHdhcyBvcHRpbWl6ZWQgb3V0LiBQcnVuZSBpdC4KKyAgICAgICAgICAgIGNhbGwgPSBz
dGF0ZS5qc0NhbGxzLmxhc3QoKTsKKyAgICAgICAgICAgIHN0YXRlLmpzQ2FsbHMucmVtb3ZlTGFz
dCgpOworICAgICAgICAgICAgaS0tOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
ICAgICAgICAgCisgICAgICAgIGNhbGwubV9pbnN0cnVjdGlvbk9mZnNldCA9IGl0ZXItPnZhbHVl
Lmluc3RydWN0aW9uT2Zmc2V0OworICAgIH0KKyAgICAKKyAgICBzdGQ6OnNvcnQoc3RhdGUuanND
YWxscy5iZWdpbigpLCBzdGF0ZS5qc0NhbGxzLmVuZCgpKTsKKyAgICAKKyAgICBjb2RlQmxvY2st
PnNldE51bWJlck9mQ2FsbExpbmtJbmZvcyhzdGF0ZS5qc0NhbGxzLnNpemUoKSk7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gc3RhdGUuanNDYWxscy5zaXplKCk7IGktLTspIHsKKyAgICAgICAgSlND
YWxsJiBjYWxsID0gc3RhdGUuanNDYWxsc1tpXTsKKworICAgICAgICBDQ2FsbEhlbHBlcnMgZmFz
dFBhdGhKSVQoJnZtLCBjb2RlQmxvY2spOworICAgICAgICBjYWxsLmVtaXQoZmFzdFBhdGhKSVQp
OworICAgICAgICAKKyAgICAgICAgY2hhciogc3RhcnRPZklDID0gYml0d2lzZV9jYXN0PGNoYXIq
PihnZW5lcmF0ZWRGdW5jdGlvbikgKyBjYWxsLm1faW5zdHJ1Y3Rpb25PZmZzZXQ7CisgICAgICAg
IAorICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sICZmYXN0UGF0aEpJVCwgc3RhcnRP
ZklDLCBzaXplT2ZDYWxsKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChsaW5rQnVmZmVyLmlz
VmFsaWQoKSk7CisgICAgICAgIAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QXNzZW1ibGVyVHlw
ZV9UOjpmaWxsTm9wcygKKyAgICAgICAgICAgIHN0YXJ0T2ZJQyArIGxpbmtCdWZmZXIuc2l6ZSgp
LCBzaXplT2ZDYWxsKCkgLSBsaW5rQnVmZmVyLnNpemUoKSk7CisgICAgICAgIAorICAgICAgICBD
YWxsTGlua0luZm8mIGluZm8gPSBjb2RlQmxvY2stPmNhbGxMaW5rSW5mbyhpKTsKKyAgICAgICAg
Y2FsbC5saW5rKHZtLCBsaW5rQnVmZmVyLCBpbmZvKTsKKyAgICB9CisgICAgCisgICAgUmVwYXRj
aEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNvZGVCbG9jayk7CisgICAgCisgICAgaXRlciA9IHJlY29y
ZE1hcC5maW5kKHN0YXRlLmhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQpOworICAgIC8vIEl0J3Mg
c29ydCBvZiByZW1vdGVseSBwb3NzaWJsZSB0aGF0IHdlIHdvbid0IGhhdmUgYW4gaW4tYmFuZCBl
eGNlcHRpb24gaGFuZGxpbmcKKyAgICAvLyBwYXRoLCBmb3Igc29tZSBraW5kcyBvZiBmdW5jdGlv
bnMuCisgICAgaWYgKGl0ZXIgIT0gcmVjb3JkTWFwLmVuZCgpKSB7CiAgICAgICAgIFN0YWNrTWFw
czo6UmVjb3JkJiByZWNvcmQgPSBpdGVyLT52YWx1ZTsKICAgICAgICAgCiAgICAgICAgIENvZGVM
b2NhdGlvbkxhYmVsIHNvdXJjZSA9IENvZGVMb2NhdGlvbkxhYmVsKAogICAgICAgICAgICAgYml0
d2lzZV9jYXN0PGNoYXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyByZWNvcmQuaW5zdHJ1Y3Rpb25P
ZmZzZXQpOworCisgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKHNvdXJjZSwg
c3RhdGUuZmluYWxpemVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+ZW50cnlwb2ludCgp
KTsKKyAgICB9CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBleGl0SW5kZXggPSAwOyBleGl0SW5k
ZXggPCBqaXRDb2RlLT5vc3JFeGl0LnNpemUoKTsgKytleGl0SW5kZXgpIHsKKyAgICAgICAgT1NS
RXhpdENvbXBpbGF0aW9uSW5mbyYgaW5mbyA9IHN0YXRlLmZpbmFsaXplci0+b3NyRXhpdFtleGl0
SW5kZXhdOworICAgICAgICBPU1JFeGl0JiBleGl0ID0gaml0Q29kZS0+b3NyRXhpdFtleGl0SW5k
ZXhdOworICAgICAgICBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZXhpdC5tX3N0YWNrbWFwSUQpOwog
ICAgICAgICAKLSAgICAgICAgaWYgKGluZm8ubV9pc0ludmFsaWRhdGlvblBvaW50KSB7Ci0gICAg
ICAgICAgICBqaXRDb2RlLT5jb21tb24uanVtcFJlcGxhY2VtZW50cy5hcHBlbmQoSnVtcFJlcGxh
Y2VtZW50KHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVzcykpOwotICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIFZlY3Rvcjxjb25zdCB2b2lkKj4gY29kZUFkZHJlc3NlczsKKyAgICAgICAg
CisgICAgICAgIGlmIChpdGVyICE9IHJlY29yZE1hcC5lbmQoKSkgeworICAgICAgICAgICAgU3Rh
Y2tNYXBzOjpSZWNvcmQmIHJlY29yZCA9IGl0ZXItPnZhbHVlOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzb3VyY2UgPSBDb2RlTG9jYXRpb25MYWJlbCgKKyAg
ICAgICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8Y2hhcio+KGdlbmVyYXRlZEZ1bmN0aW9uKSArIHJl
Y29yZC5pbnN0cnVjdGlvbk9mZnNldCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvZGVB
ZGRyZXNzZXMuYXBwZW5kKGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJhdGVkRnVuY3Rpb24pICsg
cmVjb3JkLmluc3RydWN0aW9uT2Zmc2V0ICsgTWFjcm9Bc3NlbWJsZXI6Om1heEp1bXBSZXBsYWNl
bWVudFNpemUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbmZvLm1faXNJbnZh
bGlkYXRpb25Qb2ludCkKKyAgICAgICAgICAgICAgICBqaXRDb2RlLT5jb21tb24uanVtcFJlcGxh
Y2VtZW50cy5hcHBlbmQoSnVtcFJlcGxhY2VtZW50KHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVz
cykpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVw
bGFjZVdpdGhKdW1wKHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVzcyk7CiAgICAgICAgIH0KICAg
ICAgICAgCi0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKHNvdXJjZSwgaW5m
by5tX3RodW5rQWRkcmVzcyk7CisgICAgICAgIGlmIChncmFwaC5jb21waWxhdGlvbigpKQorICAg
ICAgICAgICAgZ3JhcGguY29tcGlsYXRpb24oKS0+YWRkT1NSRXhpdFNpdGUoY29kZUFkZHJlc3Nl
cyk7CiAgICAgfQogfQogCkBAIC0zNzMsNyArNTA1LDcgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBz
dGF0ZSkKICAgICAgICAgICAgIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUqIGhhbmRsZSA9IHN0YXRl
LmppdENvZGUtPmhhbmRsZXMoKVtpXS5nZXQoKTsKICAgICAgICAgICAgIGRhdGFMb2coCiAgICAg
ICAgICAgICAgICAgIkdlbmVyYXRlZCBMTFZNIGNvZGUgZm9yICIsCi0gICAgICAgICAgICAgICAg
Q29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkRG
R0pJVCksCisgICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgu
bV9jb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCksCiAgICAgICAgICAgICAgICAgIiAjIiwgaSwg
IiwgIiwgc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwogICAgICAgICAgICAgZGlz
YXNzZW1ibGUoCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGhhbmRsZS0+
c3RhcnQoKSksIGhhbmRsZS0+c2l6ZUluQnl0ZXMoKSwKQEAgLTM4NCwxNyArNTE2LDIyIEBAIHZv
aWQgY29tcGlsZShTdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICBjb25zdCBSZWZDb3VudGVkQXJy
YXk8TFNlY3Rpb25Xb3JkPiYgc2VjdGlvbiA9IHN0YXRlLmppdENvZGUtPmRhdGFTZWN0aW9ucygp
W2ldOwogICAgICAgICAgICAgZGF0YUxvZygKICAgICAgICAgICAgICAgICAiR2VuZXJhdGVkIExM
Vk0gZGF0YSBzZWN0aW9uIGZvciAiLAotICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRU
eXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLAorICAgICAgICAg
ICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRD
b2RlOjpGVExKSVQpLAogICAgICAgICAgICAgICAgICIgIyIsIGksICIsICIsIHN0YXRlLmRhdGFT
ZWN0aW9uTmFtZXNbaV0sICI6XG4iKTsKICAgICAgICAgICAgIGR1bXBEYXRhU2VjdGlvbihzZWN0
aW9uLCAiICAgICIpOwogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHN0YXRlLmppdENvZGUt
PnVud2luZEluZm8ucGFyc2UoCisgICAgICAgIHN0YXRlLmNvbXBhY3RVbndpbmQsIHN0YXRlLmNv
bXBhY3RVbndpbmRTaXplLCBzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbik7CisgICAgaWYgKERGRzo6
c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkpCisgICAgICAgIGRhdGFMb2coIlVud2luZCBpbmZvIGZv
ciAiLCBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29k
ZTo6RlRMSklUKSwgIjpcbiAgICAiLCBzdGF0ZS5qaXRDb2RlLT51bndpbmRJbmZvLCAiXG4iKTsK
KyAgICAKICAgICBpZiAoc3RhdGUuc3RhY2ttYXBzU2VjdGlvbi5zaXplKCkpIHsKICAgICAgICAg
aWYgKHNob3VsZFNob3dEaXNhc3NlbWJseSgpKSB7CiAgICAgICAgICAgICBkYXRhTG9nKAogICAg
ICAgICAgICAgICAgICJHZW5lcmF0ZWQgTExWTSBzdGFja21hcHMgc2VjdGlvbiBmb3IgIiwKLSAg
ICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9j
aywgSklUQ29kZTo6REZHSklUKSwgIjpcbiIpOworICAgICAgICAgICAgICAgIENvZGVCbG9ja1dp
dGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiOlxu
Iik7CiAgICAgICAgICAgICBkYXRhTG9nKCIgICAgUmF3IGRhdGE6XG4iKTsKICAgICAgICAgICAg
IGR1bXBEYXRhU2VjdGlvbihzdGF0ZS5zdGFja21hcHNTZWN0aW9uLCAiICAgICIpOwogICAgICAg
ICB9CkBAIC00MjEsOCArNTU4LDkgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSkKICAgICAg
ICAgICAgICAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBoYW5kbGUgPSBzdGF0ZS5qaXRDb2Rl
LT5oYW5kbGVzKClbaV0uZ2V0KCk7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygKICAgICAgICAg
ICAgICAgICAgICAgIkdlbmVyYXRlZCBMTFZNIGNvZGUgYWZ0ZXIgc3RhY2ttYXAtYmFzZWQgZml4
LXVwIGZvciAiLAotICAgICAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0
ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6REZHSklUKSwKLSAgICAgICAgICAgICAgICAg
ICAgIiAjIiwgaSwgIiwgIiwgc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOworICAg
ICAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVC
bG9jaywgSklUQ29kZTo6RlRMSklUKSwKKyAgICAgICAgICAgICAgICAgICAgIiBpbiAiLCBzdGF0
ZS5ncmFwaC5tX3BsYW4ubW9kZSwgIiAjIiwgaSwgIiwgIiwKKyAgICAgICAgICAgICAgICAgICAg
c3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwogICAgICAgICAgICAgICAgIGRpc2Fz
c2VtYmxlKAogICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoaGFuZGxl
LT5zdGFydCgpKSwgaGFuZGxlLT5zaXplSW5CeXRlcygpLAogICAgICAgICAgICAgICAgICAgICAi
ICAgICIsIFdURjo6ZGF0YUZpbGUoKSwgTExWTVN1YnNldCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5
LDYgKzU5LDkgQEAgdm9pZCBFeGl0VmFsdWU6OmR1bXBJbkNvbnRleHQoUHJpbnRTdHJlYQogICAg
IGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGU6CiAgICAgICAgIG91dC5wcmludCgiSW5K
U1N0YWNrQXNEb3VibGU6ciIsIHZpcnR1YWxSZWdpc3RlcigpKTsKICAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgRXhpdFZhbHVlUmVjb3Zlcnk6CisgICAgICAgIG91dC5wcmludCgiUmVjb3Zlcnko
IiwgcmVjb3ZlcnlPcGNvZGUoKSwgIiwgYXJnIiwgbGVmdFJlY292ZXJ5QXJndW1lbnQoKSwgIiwg
YXJnIiwgcmlnaHRSZWNvdmVyeUFyZ3VtZW50KCksICIsICIsIHJlY292ZXJ5Rm9ybWF0KCksICIp
Iik7CisgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUu
aAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBAQAogI2lmIEVOQUJMRShGVExfSklU
KQogCiAjaW5jbHVkZSAiRlRMRXhpdEFyZ3VtZW50LmgiCisjaW5jbHVkZSAiRlRMUmVjb3ZlcnlP
cGNvZGUuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lz
dGVyLmgiCiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CkBAIC01MSw3ICs1Miw4IEBAIGVu
dW0gRXhpdFZhbHVlS2luZCB7CiAgICAgRXhpdFZhbHVlSW5KU1N0YWNrLAogICAgIEV4aXRWYWx1
ZUluSlNTdGFja0FzSW50MzIsCiAgICAgRXhpdFZhbHVlSW5KU1N0YWNrQXNJbnQ1MiwKLSAgICBF
eGl0VmFsdWVJbkpTU3RhY2tBc0RvdWJsZQorICAgIEV4aXRWYWx1ZUluSlNTdGFja0FzRG91Ymxl
LAorICAgIEV4aXRWYWx1ZVJlY292ZXJ5CiB9OwogCiBjbGFzcyBFeGl0VmFsdWUgewpAQCAtMTE4
LDYgKzEyMCwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAg
IAorICAgIHN0YXRpYyBFeGl0VmFsdWUgcmVjb3ZlcnkoUmVjb3ZlcnlPcGNvZGUgb3Bjb2RlLCB1
bnNpZ25lZCBsZWZ0QXJndW1lbnQsIHVuc2lnbmVkIHJpZ2h0QXJndW1lbnQsIFZhbHVlRm9ybWF0
IGZvcm1hdCkKKyAgICB7CisgICAgICAgIEV4aXRWYWx1ZSByZXN1bHQ7CisgICAgICAgIHJlc3Vs
dC5tX2tpbmQgPSBFeGl0VmFsdWVSZWNvdmVyeTsKKyAgICAgICAgcmVzdWx0LnUucmVjb3Zlcnku
b3Bjb2RlID0gb3Bjb2RlOworICAgICAgICByZXN1bHQudS5yZWNvdmVyeS5sZWZ0QXJndW1lbnQg
PSBsZWZ0QXJndW1lbnQ7CisgICAgICAgIHJlc3VsdC51LnJlY292ZXJ5LnJpZ2h0QXJndW1lbnQg
PSByaWdodEFyZ3VtZW50OworICAgICAgICByZXN1bHQudS5yZWNvdmVyeS5mb3JtYXQgPSBmb3Jt
YXQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAogICAgIEV4aXRWYWx1ZUtp
bmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQogICAgIAogICAgIGJvb2wgaXNEZWFk
KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IEV4aXRWYWx1ZURlYWQ7IH0KQEAgLTEzNSw2ICsx
NDgsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIGJvb2wgaXNDb25zdGFudCgpIGNvbnN0IHsgcmV0
dXJuIGtpbmQoKSA9PSBFeGl0VmFsdWVDb25zdGFudDsgfQogICAgIGJvb2wgaXNBcmd1bWVudCgp
IGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBFeGl0VmFsdWVBcmd1bWVudDsgfQorICAgIGJvb2wg
aXNSZWNvdmVyeSgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBFeGl0VmFsdWVSZWNvdmVyeTsg
fQogICAgIAogICAgIEV4aXRBcmd1bWVudCBleGl0QXJndW1lbnQoKSBjb25zdAogICAgIHsKQEAg
LTE0Miw2ICsxNTYsMzAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gRXhpdEFyZ3VtZW50KHUu
YXJndW1lbnQpOwogICAgIH0KICAgICAKKyAgICB1bnNpZ25lZCBsZWZ0UmVjb3ZlcnlBcmd1bWVu
dCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNSZWNvdmVyeSgpKTsKKyAgICAgICAg
cmV0dXJuIHUucmVjb3ZlcnkubGVmdEFyZ3VtZW50OworICAgIH0KKyAgICAKKyAgICB1bnNpZ25l
ZCByaWdodFJlY292ZXJ5QXJndW1lbnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlz
UmVjb3ZlcnkoKSk7CisgICAgICAgIHJldHVybiB1LnJlY292ZXJ5LnJpZ2h0QXJndW1lbnQ7Cisg
ICAgfQorICAgIAorICAgIFZhbHVlRm9ybWF0IHJlY292ZXJ5Rm9ybWF0KCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8VmFsdWVGb3JtYXQ+KHUucmVjb3ZlcnkuZm9ybWF0KTsKKyAgICB9CisgICAgCisgICAgUmVj
b3ZlcnlPcGNvZGUgcmVjb3ZlcnlPcGNvZGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJU
KGlzUmVjb3ZlcnkoKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZWNvdmVyeU9wY29k
ZT4odS5yZWNvdmVyeS5vcGNvZGUpOworICAgIH0KKyAgICAKICAgICBKU1ZhbHVlIGNvbnN0YW50
KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0NvbnN0YW50KCkpOwpAQCAtMTUzLDYg
KzE5MSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChpc0luSlNTdGFja1NvbWVob3coKSk7
CiAgICAgICAgIHJldHVybiBWaXJ0dWFsUmVnaXN0ZXIodS52aXJ0dWFsUmVnaXN0ZXIpOwogICAg
IH0KKyAgICAKKyAgICBFeGl0VmFsdWUgd2l0aFZpcnR1YWxSZWdpc3RlcihWaXJ0dWFsUmVnaXN0
ZXIgdmlydHVhbFJlZ2lzdGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW5KU1N0YWNrU29t
ZWhvdygpKTsKKyAgICAgICAgRXhpdFZhbHVlIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fa2lu
ZCA9IG1fa2luZDsKKyAgICAgICAgcmVzdWx0LnUudmlydHVhbFJlZ2lzdGVyID0gdmlydHVhbFJl
Z2lzdGVyLm9mZnNldCgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIAogICAgIC8v
IElmIGl0J3MgaW4gdGhlIEpTU3RhY2sgc29tZWhvdywgdGhpcyB3aWxsIHRlbGwgeW91IHdoYXQg
Zm9ybWF0IGl0J3MgaW4sIGluIGEgbWFubmVyCiAgICAgLy8gdGhhdCBpcyBjb21wYXRpYmxlIHdp
dGggZXhpdEFyZ3VtZW50KCkuZm9ybWF0KCkuIElmIGl0J3MgYSBjb25zdGFudCBvciBpdCdzIGRl
YWQsIGl0CkBAIC0xODEsNiArMjI4LDkgQEAgcHVibGljOgogICAgICAgICAgICAgCiAgICAgICAg
IGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGU6CiAgICAgICAgICAgICByZXR1cm4gVmFs
dWVGb3JtYXREb3VibGU7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBFeGl0VmFsdWVSZWNv
dmVyeToKKyAgICAgICAgICAgIHJldHVybiByZWNvdmVyeUZvcm1hdCgpOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTk2LDYg
KzI0NiwxMiBAQCBwcml2YXRlOgogICAgICAgICBFeGl0QXJndW1lbnRSZXByZXNlbnRhdGlvbiBh
cmd1bWVudDsKICAgICAgICAgRW5jb2RlZEpTVmFsdWUgY29uc3RhbnQ7CiAgICAgICAgIGludCB2
aXJ0dWFsUmVnaXN0ZXI7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50MTZfdCBs
ZWZ0QXJndW1lbnQ7CisgICAgICAgICAgICB1aW50MTZfdCByaWdodEFyZ3VtZW50OworICAgICAg
ICAgICAgdWludDE2X3Qgb3Bjb2RlOworICAgICAgICAgICAgdWludDE2X3QgZm9ybWF0OworICAg
ICAgICB9IHJlY292ZXJ5OwogICAgIH0gdTsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDcsNiArNDcsMTEgQEAgc2l6ZV90IHNpemVPZlB1dEJ5SWQoKQogICAg
IHJldHVybiAzMjsKIH0KIAorc2l6ZV90IHNpemVPZkNhbGwoKQoreworICAgIHJldHVybiA0MzsK
K30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9K
SVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVT
aXplLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW5saW5lQ2FjaGVTaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCiBzaXplX3Qgc2l6ZU9mR2V0QnlJZCgpOwogc2l6
ZV90IHNpemVPZlB1dEJ5SWQoKTsKK3NpemVfdCBzaXplT2ZDYWxsKCk7CiAKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpGVEwKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRy
aW5zaWNSZXBvc2l0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00MCwxNyArNDAsMjUgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAg
IG1hY3JvKGFkZFdpdGhPdmVyZmxvdzMyLCAibGx2bS5zYWRkLndpdGgub3ZlcmZsb3cuaTMyIiwg
ZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBpbnQzMiwgYm9vbGVhbiksIGludDMy
LCBpbnQzMikpIFwKICAgICBtYWNybyhhZGRXaXRoT3ZlcmZsb3c2NCwgImxsdm0uc2FkZC53aXRo
Lm92ZXJmbG93Lmk2NCIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50NjQs
IGJvb2xlYW4pLCBpbnQ2NCwgaW50NjQpKSBcCiAgICAgbWFjcm8oZG91YmxlQWJzLCAibGx2bS5m
YWJzLmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkgXAorICAgIG1h
Y3JvKGRvdWJsZVNpbiwgImxsdm0uc2luLmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVUeXBlLCBk
b3VibGVUeXBlKSkgXAorICAgIG1hY3JvKGRvdWJsZUNvcywgImxsdm0uY29zLmY2NCIsIGZ1bmN0
aW9uVHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkgXAorICAgIG1hY3JvKGRvdWJsZVNxcnQs
ICJsbHZtLnNxcnQuZjY0IiwgZnVuY3Rpb25UeXBlKGRvdWJsZVR5cGUsIGRvdWJsZVR5cGUpKSBc
CisgICAgbWFjcm8oZnJhbWVBZGRyZXNzLCAibGx2bS5mcmFtZWFkZHJlc3MiLCBmdW5jdGlvblR5
cGUocG9pbnRlclR5cGUoaW50OCksIGludDMyKSkgXAogICAgIG1hY3JvKG11bFdpdGhPdmVyZmxv
dzMyLCAibGx2bS5zbXVsLndpdGgub3ZlcmZsb3cuaTMyIiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5
cGUobV9jb250ZXh0LCBpbnQzMiwgYm9vbGVhbiksIGludDMyLCBpbnQzMikpIFwKICAgICBtYWNy
byhtdWxXaXRoT3ZlcmZsb3c2NCwgImxsdm0uc211bC53aXRoLm92ZXJmbG93Lmk2NCIsIGZ1bmN0
aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50NjQsIGJvb2xlYW4pLCBpbnQ2NCwgaW50
NjQpKSBcCi0gICAgbWFjcm8ocGF0Y2hwb2ludEludDY0LCAibGx2bS5leHBlcmltZW50YWwucGF0
Y2hwb2ludC5pNjQiLCBmdW5jdGlvblR5cGUoaW50NjQsIGludDMyLCBpbnQzMiwgcmVmOCwgaW50
MzIsIFZhcmlhZGljKSkgXAotICAgIG1hY3JvKHBhdGNocG9pbnRWb2lkLCAibGx2bS5leHBlcmlt
ZW50YWwucGF0Y2hwb2ludC52b2lkIiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQzMiwgaW50
MzIsIHJlZjgsIGludDMyLCBWYXJpYWRpYykpIFwKLSAgICBtYWNybyhzdGFja21hcCwgImxsdm0u
ZXhwZXJpbWVudGFsLnN0YWNrbWFwIiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQzMiwgaW50
MzIsIFZhcmlhZGljKSkgXAorICAgIG1hY3JvKHBhdGNocG9pbnRJbnQ2NCwgImxsdm0uZXhwZXJp
bWVudGFsLnBhdGNocG9pbnQuaTY0IiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnQ2NCwgaW50MzIs
IHJlZjgsIGludDMyLCBWYXJpYWRpYykpIFwKKyAgICBtYWNybyhwYXRjaHBvaW50Vm9pZCwgImxs
dm0uZXhwZXJpbWVudGFsLnBhdGNocG9pbnQudm9pZCIsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwg
aW50NjQsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFkaWMpKSBcCisgICAgbWFjcm8oc3RhY2tt
YXAsICJsbHZtLmV4cGVyaW1lbnRhbC5zdGFja21hcCIsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwg
aW50NjQsIGludDMyLCBWYXJpYWRpYykpIFwKICAgICBtYWNybyhzdWJXaXRoT3ZlcmZsb3czMiwg
Imxsdm0uc3N1Yi53aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1f
Y29udGV4dCwgaW50MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBcCiAgICAgbWFjcm8oc3Vi
V2l0aE92ZXJmbG93NjQsICJsbHZtLnNzdWIud2l0aC5vdmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5
cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDY0LCBib29sZWFuKSwgaW50NjQsIGludDY0KSkg
XAogICAgIG1hY3JvKHRyYXAsICJsbHZtLnRyYXAiLCBmdW5jdGlvblR5cGUodm9pZFR5cGUpKSBc
CiAgICAgbWFjcm8oeDg2U1NFMkN2dFRTRDJTSSwgImxsdm0ueDg2LnNzZTIuY3Z0dHNkMnNpIiwg
ZnVuY3Rpb25UeXBlKGludDMyLCB2ZWN0b3JUeXBlKGRvdWJsZVR5cGUsIDIpKSkKIAogI2RlZmlu
ZSBGT1JfRUFDSF9GVU5DVElPTl9UWVBFKG1hY3JvKSBcCisgICAgbWFjcm8oQ19KSVRPcGVyYXRp
b25fRUMsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAorICAgIG1hY3Jv
KENfSklUT3BlcmF0aW9uX0VKLCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludDY0KSkg
XAorICAgIG1hY3JvKENfSklUT3BlcmF0aW9uX0VKc3NKc3MsIGZ1bmN0aW9uVHlwZShpbnRQdHIs
IGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCisgICAgbWFjcm8oQ19KSVRPcGVyYXRpb25fRUpz
c0pzc0pzcywgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50
UHRyKSkgXAogICAgIG1hY3JvKENfSklUT3BlcmF0aW9uX0VTdCwgZnVuY3Rpb25UeXBlKGludFB0
ciwgaW50UHRyLCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oSV9KSVRPcGVyYXRpb25fRUpzcywgZnVu
Y3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oSl9KSVRPcGVy
YXRpb25fRSwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIpKSBcCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0
LDI3ICs1NCwzNSBAQCB2b2lkIEpJVENvZGU6OmFkZERhdGFTZWN0aW9uKFJlZkNvdW50ZWRBCiAg
ICAgbV9kYXRhU2VjdGlvbnMuYXBwZW5kKGRhdGFTZWN0aW9uKTsKIH0KIAotdm9pZCBKSVRDb2Rl
Ojppbml0aWFsaXplQ29kZShDb2RlUmVmIGVudHJ5cG9pbnQpCit2b2lkIEpJVENvZGU6OmluaXRp
YWxpemVBcml0eUNoZWNrRW50cnlwb2ludChDb2RlUmVmIGVudHJ5cG9pbnQpCiB7Ci0gICAgbV9l
bnRyeXBvaW50ID0gZW50cnlwb2ludDsKKyAgICBtX2FyaXR5Q2hlY2tFbnRyeXBvaW50ID0gZW50
cnlwb2ludDsKIH0KIAotSklUQ29kZTo6Q29kZVB0ciBKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgp
Cit2b2lkIEpJVENvZGU6OmluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbChDb2RlUHRyIGFkZHJlc3Mp
CiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLSAgICByZXR1cm4gbV9lbnRy
eXBvaW50LmNvZGUoKTsKKyAgICBtX2FkZHJlc3NGb3JDYWxsID0gYWRkcmVzczsKK30KKworSklU
Q29kZTo6Q29kZVB0ciBKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbChWTSYsIEV4ZWN1dGFibGVCYXNl
KiwgQXJpdHlDaGVja01vZGUgYXJpdHlDaGVjaywgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKQor
eworICAgIHN3aXRjaCAoYXJpdHlDaGVjaykgeworICAgIGNhc2UgQXJpdHlDaGVja05vdFJlcXVp
cmVkOgorICAgICAgICByZXR1cm4gbV9hZGRyZXNzRm9yQ2FsbDsKKyAgICBjYXNlIE11c3RDaGVj
a0FyaXR5OgorICAgICAgICByZXR1cm4gbV9hcml0eUNoZWNrRW50cnlwb2ludC5jb2RlKCk7Cisg
ICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIENvZGVQ
dHIoKTsKIH0KIAogdm9pZCogSklUQ29kZTo6ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXpl
X3Qgb2Zmc2V0KQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1fZW50cnlwb2ludCk7Ci0gICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fZW50cnlwb2ludC5jb2RlKCkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSkgKyBvZmZzZXQ7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KG1fYWRkcmVzc0ZvckNhbGwuZXhlY3V0YWJsZUFkZHJlc3MoKSkgKyBvZmZzZXQ7CiB9CiAKIHZv
aWQqIEpJVENvZGU6OmRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90KQogewotICAgIFJFTEVBU0Vf
QVNTRVJUKG1fZW50cnlwb2ludCk7Ci0KICAgICAvLyBXZSBjYW4ndCBwYXRjaCBGVEwgY29kZSwg
eWV0LiBFdmVuIGlmIHdlIGRpZCwgaXQncyBub3QgY2xlYXIgdGhhdCB3ZSB3b3VsZCBkbyBzbwog
ICAgIC8vIHRocm91Z2ggdGhpcyBBUEkuCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTgzLDggKzkxLDYgQEAgdm9pZCogSklUQ29kZTo6ZGF0YUFkZHJlc3NBdE9mZnNldChz
aXplXwogCiB1bnNpZ25lZCBKSVRDb2RlOjpvZmZzZXRPZih2b2lkKikKIHsKLSAgICBSRUxFQVNF
X0FTU0VSVChtX2VudHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgY3VycmVudGx5IGRvbid0IGhhdmUg
dmlzaWJpbGl0eSBpbnRvIHRoZSBGVEwgY29kZS4KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiAwOwpAQCAtOTIsOCArOTgsNiBAQCB1bnNpZ25lZCBKSVRDb2Rl
OjpvZmZzZXRPZih2b2lkKikKIAogc2l6ZV90IEpJVENvZGU6OnNpemUoKQogewotICAgIFJFTEVB
U0VfQVNTRVJUKG1fZW50cnlwb2ludCk7Ci0KICAgICAvLyBXZSBkb24ndCBrbm93IHRoZSBzaXpl
IG9mIEZUTCBjb2RlLCB5ZXQuIE1ha2UgYSB3aWxkIGd1ZXNzLiBUaGlzIGlzIG1vc3RseSB1c2Vk
IGZvcgogICAgIC8vIEdDIGxvYWQgZXN0aW1hdGVzLgogICAgIHJldHVybiAxMDAwOwpAQCAtMTAx
LDggKzEwNSw2IEBAIHNpemVfdCBKSVRDb2RlOjpzaXplKCkKIAogYm9vbCBKSVRDb2RlOjpjb250
YWlucyh2b2lkKikKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQpOwotCiAgICAg
Ly8gV2UgaGF2ZSBubyBpZGVhIHdoYXQgYWRkcmVzc2VzIHRoZSBGVEwgY29kZSBjb250YWlucywg
eWV0LgogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNl
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiREZHQ29tbW9uRGF0YS5oIgogI2lu
Y2x1ZGUgIkZUTE9TUkV4aXQuaCIKICNpbmNsdWRlICJGVExTdGFja01hcHMuaCIKKyNpbmNsdWRl
ICJGVExVbndpbmRJbmZvLmgiCiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkxMVk1B
UEkuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZEFycmF5Lmg+CkBAIC00NiwxNyArNDcsMTgg
QEAgcHVibGljOgogICAgIEpJVENvZGUoKTsKICAgICB+SklUQ29kZSgpOwogICAgIAotICAgIENv
ZGVQdHIgYWRkcmVzc0ZvckNhbGwoKTsKLSAgICB2b2lkKiBleGVjdXRhYmxlQWRkcmVzc0F0T2Zm
c2V0KHNpemVfdCBvZmZzZXQpOwotICAgIHZvaWQqIGRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90
IG9mZnNldCk7Ci0gICAgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCogcG9pbnRlckludG9Db2RlKTsK
LSAgICBzaXplX3Qgc2l6ZSgpOwotICAgIGJvb2wgY29udGFpbnModm9pZCopOworICAgIENvZGVQ
dHIgYWRkcmVzc0ZvckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlLCBS
ZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpIG92ZXJyaWRlOworICAgIHZvaWQqIGV4ZWN1dGFibGVB
ZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CisgICAgdm9pZCogZGF0YUFk
ZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSBvdmVycmlkZTsKKyAgICB1bnNpZ25lZCBvZmZz
ZXRPZih2b2lkKiBwb2ludGVySW50b0NvZGUpIG92ZXJyaWRlOworICAgIHNpemVfdCBzaXplKCkg
b3ZlcnJpZGU7CisgICAgYm9vbCBjb250YWlucyh2b2lkKikgb3ZlcnJpZGU7CiAgICAgCiAgICAg
dm9pZCBpbml0aWFsaXplRXhpdFRodW5rcyhDb2RlUmVmKTsKICAgICB2b2lkIGFkZEhhbmRsZShQ
YXNzUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+KTsKICAgICB2b2lkIGFkZERhdGFTZWN0
aW9uKFJlZkNvdW50ZWRBcnJheTxMU2VjdGlvbldvcmQ+KTsKLSAgICB2b2lkIGluaXRpYWxpemVD
b2RlKENvZGVSZWYgZW50cnlwb2ludCk7CisgICAgdm9pZCBpbml0aWFsaXplQXJpdHlDaGVja0Vu
dHJ5cG9pbnQoQ29kZVJlZik7CisgICAgdm9pZCBpbml0aWFsaXplQWRkcmVzc0ZvckNhbGwoQ29k
ZVB0cik7CiAgICAgCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFu
ZGxlPj4mIGhhbmRsZXMoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZXM7IH0KICAgICBjb25zdCBW
ZWN0b3I8UmVmQ291bnRlZEFycmF5PExTZWN0aW9uV29yZD4+JiBkYXRhU2VjdGlvbnMoKSBjb25z
dCB7IHJldHVybiBtX2RhdGFTZWN0aW9uczsgfQpAQCAtNjksMTEgKzcxLDEzIEBAIHB1YmxpYzoK
ICAgICBERkc6OkNvbW1vbkRhdGEgY29tbW9uOwogICAgIFNlZ21lbnRlZFZlY3RvcjxPU1JFeGl0
LCA4PiBvc3JFeGl0OwogICAgIFN0YWNrTWFwcyBzdGFja21hcHM7CisgICAgVW53aW5kSW5mbyB1
bndpbmRJbmZvOwogICAgIAogcHJpdmF0ZToKICAgICBWZWN0b3I8UmVmQ291bnRlZEFycmF5PExT
ZWN0aW9uV29yZD4+IG1fZGF0YVNlY3Rpb25zOwogICAgIFZlY3RvcjxSZWZQdHI8RXhlY3V0YWJs
ZU1lbW9yeUhhbmRsZT4+IG1faGFuZGxlczsKLSAgICBDb2RlUmVmIG1fZW50cnlwb2ludDsKKyAg
ICBDb2RlUHRyIG1fYWRkcmVzc0ZvckNhbGw7CisgICAgQ29kZVJlZiBtX2FyaXR5Q2hlY2tFbnRy
eXBvaW50OwogICAgIENvZGVSZWYgbV9leGl0VGh1bmtzOwogfTsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmNwcAkocmV2aXNpb24gMTYyOTYx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00NSw2ICs0NSwyMiBAQCBKSVRGaW5hbGl6ZXI6On5KSVRGaW5hbGl6ZXIoKQog
ewogfQogCitzaXplX3QgSklURmluYWxpemVyOjpjb2RlU2l6ZSgpCit7CisgICAgc2l6ZV90IHJl
c3VsdCA9IDA7CisgICAgCisgICAgcmVzdWx0ICs9IGV4aXRUaHVua3NMaW5rQnVmZmVyLT5zaXpl
KCk7CisgICAgcmVzdWx0ICs9IGVudHJ5cG9pbnRMaW5rQnVmZmVyLT5zaXplKCk7CisgICAgaWYg
KHNpZGVDb2RlTGlua0J1ZmZlcikKKyAgICAgICAgcmVzdWx0ICs9IHNpZGVDb2RlTGlua0J1ZmZl
ci0+c2l6ZSgpOworICAgIHJlc3VsdCArPSBoYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+c2l6
ZSgpOworICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IGppdENvZGUtPmhhbmRsZXMoKS5zaXpl
KCk7IGktLTspCisgICAgICAgIHJlc3VsdCArPSBqaXRDb2RlLT5oYW5kbGVzKClbaV0tPnNpemVJ
bkJ5dGVzKCk7CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogYm9vbCBKSVRGaW5hbGl6
ZXI6OmZpbmFsaXplKCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
NzMsOSArODksNyBAQCBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5jdGlvbigpCiAgICAg
ICAgICAgICBleGl0VGh1bmtzTGlua0J1ZmZlci0+bGluaygKICAgICAgICAgICAgICAgICBpbmZv
Lm1fdGh1bmtKdW1wLAogICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsKAotICAgICAg
ICAgICAgICAgICAgICBtX3BsYW4udm0uZnRsVGh1bmtzLT5nZXRPU1JFeGl0R2VuZXJhdGlvblRo
dW5rKAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wbGFuLnZtLCBMb2NhdGlvbjo6Zm9yU3Rh
Y2ttYXBzKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZqaXRDb2RlLT5zdGFja21hcHMs
IGl0ZXItPnZhbHVlLmxvY2F0aW9uc1swXSkpLmNvZGUoKSkpOworICAgICAgICAgICAgICAgICAg
ICBtX3BsYW4udm0uZ2V0Q1RJU3R1Yihvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKS5j
b2RlKCkpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaml0Q29kZS0+aW5pdGlhbGl6
ZUV4aXRUaHVua3MoCkBAIC0xMDIsMTUgKzExNiwyNiBAQCBib29sIEpJVEZpbmFsaXplcjo6Zmlu
YWxpemVGdW5jdGlvbigpCiAgICAgICAgICAgICAuZXhlY3V0YWJsZU1lbW9yeSgpKTsKICAgICB9
CiAgICAgCisgICAgaWYgKGhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyKSB7CisgICAgICAgIGpp
dENvZGUtPmFkZEhhbmRsZShGSU5BTElaRV9ERkdfQ09ERSgKKyAgICAgICAgICAgICpoYW5kbGVF
eGNlcHRpb25zTGlua0J1ZmZlciwKKyAgICAgICAgICAgICgiRlRMIGV4Y2VwdGlvbiBoYW5kbGVy
IGZvciAlcyIsCisgICAgICAgICAgICAgICAgdG9DU3RyaW5nKENvZGVCbG9ja1dpdGhKSVRUeXBl
KG1fcGxhbi5jb2RlQmxvY2suZ2V0KCksIEpJVENvZGU6OkZUTEpJVCkpLmRhdGEoKSkpCisgICAg
ICAgICAgICAuZXhlY3V0YWJsZU1lbW9yeSgpKTsKKyAgICB9CisgICAgCiAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIHdpdGhBcml0eUNoZWNrOwogICAgIGlmIChhcml0eUNoZWNrLmlzU2V0KCkp
CiAgICAgICAgIHdpdGhBcml0eUNoZWNrID0gZW50cnlwb2ludExpbmtCdWZmZXItPmxvY2F0aW9u
T2YoYXJpdHlDaGVjayk7Ci0gICAgaml0Q29kZS0+aW5pdGlhbGl6ZUNvZGUoCisgICAgaml0Q29k
ZS0+aW5pdGlhbGl6ZUFyaXR5Q2hlY2tFbnRyeXBvaW50KAogICAgICAgICBGSU5BTElaRV9ERkdf
Q09ERSgKICAgICAgICAgICAgICplbnRyeXBvaW50TGlua0J1ZmZlciwKICAgICAgICAgICAgICgi
RlRMIGVudHJ5cG9pbnQgdGh1bmsgZm9yICVzIHdpdGggTExWTSBnZW5lcmF0ZWQgY29kZSBhdCAl
cCIsIHRvQ1N0cmluZyhDb2RlQmxvY2tXaXRoSklUVHlwZShtX3BsYW4uY29kZUJsb2NrLmdldCgp
LCBKSVRDb2RlOjpGVExKSVQpKS5kYXRhKCksIGZ1bmN0aW9uKSkpOwogICAgIAotICAgIG1fcGxh
bi5jb2RlQmxvY2stPnNldEpJVENvZGUoaml0Q29kZSwgd2l0aEFyaXR5Q2hlY2spOworICAgIG1f
cGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUoaml0Q29kZSk7CisgICAgCisgICAgaWYgKG1fcGxh
bi5jb21waWxhdGlvbikKKyAgICAgICAgbV9wbGFuLnZtLm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+
YWRkQ29tcGlsYXRpb24obV9wbGFuLmNvbXBpbGF0aW9uKTsKICAgICAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIu
aAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRG
aW5hbGl6ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsMTIgKzQ2LDE0IEBAIHB1YmxpYzoKICAg
ICBKSVRGaW5hbGl6ZXIoREZHOjpQbGFuJik7CiAgICAgdmlydHVhbCB+SklURmluYWxpemVyKCk7
CiAgICAgCi0gICAgYm9vbCBmaW5hbGl6ZSgpOwotICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigp
OworICAgIHNpemVfdCBjb2RlU2l6ZSgpIG92ZXJyaWRlOworICAgIGJvb2wgZmluYWxpemUoKSBv
dmVycmlkZTsKKyAgICBib29sIGZpbmFsaXplRnVuY3Rpb24oKSBvdmVycmlkZTsKIAogICAgIE93
blB0cjxMaW5rQnVmZmVyPiBleGl0VGh1bmtzTGlua0J1ZmZlcjsKICAgICBPd25QdHI8TGlua0J1
ZmZlcj4gZW50cnlwb2ludExpbmtCdWZmZXI7CiAgICAgT3duUHRyPExpbmtCdWZmZXI+IHNpZGVD
b2RlTGlua0J1ZmZlcjsKKyAgICBPd25QdHI8TGlua0J1ZmZlcj4gaGFuZGxlRXhjZXB0aW9uc0xp
bmtCdWZmZXI7CiAgICAgVmVjdG9yPFNsb3dQYXRoQ2FsbD4gc2xvd1BhdGhDYWxsczsgLy8gQ2Fs
bHMgaW5zaWRlIHRoZSBzaWRlIGNvZGUuCiAgICAgVmVjdG9yPE9TUkV4aXRDb21waWxhdGlvbklu
Zm8+IG9zckV4aXQ7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGFyaXR5Q2hlY2s7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCisjaW5jbHVkZSAiQXJpdHlDaGVj
a0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRl
ICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIK
QEAgLTM3LDEyMSArMzgsMTUwIEBACiAjaW5jbHVkZSAiSklUU3R1YnMuaCIKICNpbmNsdWRlICJM
TFZNQVBJLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIlByb2ZpbGVyQ29t
cGlsYXRpb24uaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBGVEwgewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwogCi1zdGF0aWMgdm9p
ZCBjb21waWxlRW50cnkoQ0NhbGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0LnByZXNlcnZlUmV0
dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpyZWdUMik7Ci0gICAgaml0LmVtaXRQdXRSZXR1
cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86OnJlZ1QyKTsKLSAgICBqaXQuZW1pdFB1dElt
bWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKGppdC5jb2RlQmxvY2soKSwgSlNTdGFjazo6Q29kZUJs
b2NrKTsKLX0KLQogdm9pZCBsaW5rKFN0YXRlJiBzdGF0ZSkKIHsKLSAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jayA9IHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrOworICAgIEdyYXBoJiBncmFwaCA9IHN0
YXRlLmdyYXBoOworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZ3JhcGgubV9jb2RlQmxvY2s7
CisgICAgVk0mIHZtID0gZ3JhcGgubV92bTsKICAgICAKICAgICAvLyBMTFZNIHdpbGwgY3JlYXRl
IGl0cyBvd24ganVtcCB0YWJsZXMgYXMgbmVlZGVkLgogICAgIGNvZGVCbG9jay0+Y2xlYXJTd2l0
Y2hKdW1wVGFibGVzKCk7CiAgICAgCi0gICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmZyYW1lUmVn
aXN0ZXJDb3VudCA9IHN0YXRlLmdyYXBoLmZyYW1lUmVnaXN0ZXJDb3VudCgpOwotICAgIHN0YXRl
LmppdENvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ID0gc3RhdGUuZ3Jh
cGgucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpOworICAgIC8vIEZJWE1FOiBOZWVkIHRv
IGtub3cgdGhlIHJlYWwgZnJhbWUgcmVnaXN0ZXIgY291bnQuCisgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTcyNworICAgIHN0YXRlLmppdENvZGUtPmNv
bW1vbi5mcmFtZVJlZ2lzdGVyQ291bnQgPSAxMDAwOworICAgIAorICAgIHN0YXRlLmppdENvZGUt
PmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ID0gZ3JhcGgucmVxdWlyZWRSZWdp
c3RlckNvdW50Rm9yRXhpdCgpOwogICAgIAotICAgIGlmICghc3RhdGUuZ3JhcGgubV9pbmxpbmVD
YWxsRnJhbWVzLT5pc0VtcHR5KCkpCi0gICAgICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5pbmxp
bmVDYWxsRnJhbWVzID0gc3RkOjptb3ZlKHN0YXRlLmdyYXBoLm1faW5saW5lQ2FsbEZyYW1lcyk7
CisgICAgaWYgKCFncmFwaC5tX2lubGluZUNhbGxGcmFtZXMtPmlzRW1wdHkoKSkKKyAgICAgICAg
c3RhdGUuaml0Q29kZS0+Y29tbW9uLmlubGluZUNhbGxGcmFtZXMgPSBzdGQ6Om1vdmUoZ3JhcGgu
bV9pbmxpbmVDYWxsRnJhbWVzKTsKICAgICAKICAgICAvLyBDcmVhdGUgdGhlIGVudHJ5cG9pbnQu
IE5vdGUgdGhhdCB3ZSB1c2UgdGhpcyBlbnRyeXBvaW50IHRvdGFsbHkgZGlmZmVyZW50bHkKICAg
ICAvLyBkZXBlbmRpbmcgb24gd2hldGhlciB3ZSdyZSBkb2luZyBPU1IgZW50cnkgb3Igbm90Lgot
ICAgIC8vIEZJWE1FOiBFeGNlcHQgZm9yIE9TUiBlbnRyeSwgdGhpcyBpcyBhIHRvdGFsIGtsdWRn
ZSAtIExMVk0gc2hvdWxkIGp1c3QgdXNlIG91cgotICAgIC8vIGNhbGxpbmcgY29udmVudGlvbi4K
LSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIxCi0g
ICAgQ0NhbGxIZWxwZXJzIGppdCgmc3RhdGUuZ3JhcGgubV92bSwgY29kZUJsb2NrKTsKKyAgICBD
Q2FsbEhlbHBlcnMgaml0KCZ2bSwgY29kZUJsb2NrKTsKICAgICAKICAgICBPd25QdHI8TGlua0J1
ZmZlcj4gbGlua0J1ZmZlcjsKICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGFyaXR5Q2hlY2s7Ci0g
ICAgc3dpdGNoIChzdGF0ZS5ncmFwaC5tX3BsYW4ubW9kZSkgewotICAgIGNhc2UgRlRMTW9kZTog
ewotICAgICAgICBjb21waWxlRW50cnkoaml0KTsKKworICAgIENDYWxsSGVscGVyczo6QWRkcmVz
cyBmcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgLXN0YXRpY19jYXN0PGludDMyX3Q+KHNpemVvZih2b2lkKikp
KTsKICAgICAKLSAgICAgICAgLy8gVGhpcyBwYXJ0IGlzIG9ubHkgbmVjZXNzYXJ5IGZvciBmdW5j
dGlvbnMuIFdlIGN1cnJlbnRseSBvbmx5IGNvbXBpbGUgZnVuY3Rpb25zLgotICAgICAgICAKLSAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBmcm9tQXJpdHlDaGVjayA9IGppdC5sYWJlbCgpOwot
ICAgICAgICAKLSAgICAgICAgLy8gUGxhbnQgYSBjaGVjayB0aGF0IHN1ZmZpY2llbnQgc3BhY2Ug
aXMgYXZhaWxhYmxlIGluIHRoZSBKU1N0YWNrLgotICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjkxCi0gICAgICAgIGppdC5hZGRQdHIo
Ci0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChzdGF0ZS5qaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhp
dCkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwKLSAgICAgICAgICAgIEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIENDYWxsSGVscGVyczo6
SnVtcCBzdGFja0NoZWNrID0gaml0LmJyYW5jaFB0cigKLSAgICAgICAgICAgIENDYWxsSGVscGVy
czo6QWJvdmUsCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhzdGF0
ZS5ncmFwaC5tX3ZtLmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwKLSAgICAgICAgICAgIEdQUklu
Zm86OnJlZ1QxKTsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBmcm9tU3RhY2tDaGVjayA9
IGppdC5sYWJlbCgpOwotICAgICAgICAKLSAgICAgICAgaml0LnNldHVwQXJndW1lbnRzRXhlY1N0
YXRlKCk7Ci0gICAgICAgIGppdC5tb3ZlKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9u
KSksCi0gICAgICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICAgICAgaml0LmNhbGwo
R1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgICAgIGppdC5lbWl0R2V0UmV0dXJuUENGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0LmVtaXRHZXRDYWxs
ZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIp
OwotICAgICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6
cmVnVDEpOwotICAgICAgICBqaXQucmV0KCk7Ci0gICAgICAgIAotICAgICAgICBzdGFja0NoZWNr
LmxpbmsoJmppdCk7Ci0gICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihjb2RlQmxvY2spLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgICAgICBqaXQubW92ZShH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAg
ICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihD
YWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0J5dGVjb2RlT2Zmc2V0KDApKSwKLSAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6dGFnRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNT
dGFjazo6QXJndW1lbnRDb3VudCkpKTsKLSAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCAmc3RhdGUuZ3JhcGgubV92bS50b3BDYWxsRnJhbWUpOwotICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbFN0YWNrQ2hlY2sgPSBqaXQuY2FsbCgpOwotI2lmICFB
U1NFUlRfRElTQUJMRUQKLSAgICAgICAgLy8gRklYTUU6IG5lZWQgdG8gbWFrZSB0aGlzIGNhbGwg
cmVnaXN0ZXIgd2l0aCBleGNlcHRpb24gaGFuZGxpbmcgc29tZWhvdy4gVGhpcyBpcwotICAgICAg
ICAvLyBwYXJ0IG9mIGEgYmlnZ2VyIHByb2JsZW06IEZUTCBzaG91bGQgYmUgYWJsZSB0byBoYW5k
bGUgZXhjZXB0aW9ucy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMzYyMgotICAgICAgICAvLyBVbnRpbCB0aGVuLCB1c2UgYSBKSVQgQVNTRVJU
LgotICAgICAgICBqaXQubG9hZDY0KHN0YXRlLmdyYXBoLm1fdm0uYWRkcmVzc09mRXhjZXB0aW9u
KCksIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgaml0LmppdEFzc2VydElzTnVsbChHUFJJbmZv
OjpyZWdUMCk7Ci0jZW5kaWYKLSAgICAgICAgaml0Lmp1bXAoZnJvbVN0YWNrQ2hlY2spOworICAg
IGlmIChQcm9maWxlcjo6Q29tcGlsYXRpb24qIGNvbXBpbGF0aW9uID0gZ3JhcGguY29tcGlsYXRp
b24oKSkgeworICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oCisgICAgICAgICAg
ICBQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwKKyAgICAgICAgICAgIHRvQ1N0cmluZygiR2VuZXJh
dGVkIEZUTCBKSVQgY29kZSBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUoY29kZUJsb2NrLCBK
SVRDb2RlOjpGVExKSVQpLCAiLCBpbnN0cnVjdGlvbiBjb3VudCA9ICIsIGdyYXBoLm1fY29kZUJs
b2NrLT5pbnN0cnVjdGlvbkNvdW50KCksICI6XG4iKSk7CisgICAgICAgIAorICAgICAgICBncmFw
aC5tX2RvbWluYXRvcnMuY29tcHV0ZUlmTmVjZXNzYXJ5KGdyYXBoKTsKKyAgICAgICAgZ3JhcGgu
bV9uYXR1cmFsTG9vcHMuY29tcHV0ZUlmTmVjZXNzYXJ5KGdyYXBoKTsKKyAgICAgICAgCisgICAg
ICAgIGNvbnN0IGNoYXIqIHByZWZpeCA9ICIgICAgIjsKKyAgICAgICAgCisgICAgICAgIER1bXBD
b250ZXh0IGR1bXBDb250ZXh0OworICAgICAgICBTdHJpbmdQcmludFN0cmVhbSBvdXQ7CisgICAg
ICAgIE5vZGUqIGxhc3ROb2RlID0gMDsKKyAgICAgICAgZm9yIChzaXplX3QgYmxvY2tJbmRleCA9
IDA7IGJsb2NrSW5kZXggPCBncmFwaC5udW1CbG9ja3MoKTsgKytibG9ja0luZGV4KSB7CisgICAg
ICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IGdyYXBoLmJsb2NrKGJsb2NrSW5kZXgpOworICAg
ICAgICAgICAgaWYgKCFibG9jaykKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgZ3JhcGguZHVtcEJsb2NrSGVhZGVyKG91dCwgcHJlZml4LCBibG9j
aywgR3JhcGg6OkR1bXBMaXZlUGhpc09ubHksICZkdW1wQ29udGV4dCk7CisgICAgICAgICAgICBj
b21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oUHJvZmlsZXI6Ok9yaWdpblN0YWNrKCksIG91dC50
b0NTdHJpbmcoKSk7CisgICAgICAgICAgICBvdXQucmVzZXQoKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgZm9yIChzaXplX3Qgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgYmxvY2stPnNp
emUoKTsgKytub2RlSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2st
PmF0KG5vZGVJbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKCFub2RlLT53aWxsSGF2ZUNvZGVH
ZW5Pck9TUigpICYmICFPcHRpb25zOjpzaG93QWxsREZHTm9kZXMoKSkKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUHJvZmls
ZXI6Ok9yaWdpblN0YWNrIHN0YWNrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IGlmIChub2RlLT5jb2RlT3JpZ2luLmlzU2V0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3Rh
Y2sgPSBQcm9maWxlcjo6T3JpZ2luU3RhY2soCisgICAgICAgICAgICAgICAgICAgICAgICAqdm0u
bV9wZXJCeXRlY29kZVByb2ZpbGVyLCBjb2RlQmxvY2ssIG5vZGUtPmNvZGVPcmlnaW4pOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZ3Jh
cGguZHVtcENvZGVPcmlnaW4ob3V0LCBwcmVmaXgsIGxhc3ROb2RlLCBub2RlLCAmZHVtcENvbnRl
eHQpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGF0aW9uLT5hZGREZXNjcmlwdGlvbihz
dGFjaywgb3V0LnRvQ1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnJlc2V0KCk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGdy
YXBoLmR1bXAob3V0LCBwcmVmaXgsIG5vZGUsICZkdW1wQ29udGV4dCk7CisgICAgICAgICAgICAg
ICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKHN0YWNrLCBvdXQudG9DU3RyaW5nKCkpOwor
ICAgICAgICAgICAgICAgIG91dC5yZXNldCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIGlmIChub2RlLT5jb2RlT3JpZ2luLmlzU2V0KCkpCisgICAgICAgICAgICAgICAgICAg
IGxhc3ROb2RlID0gbm9kZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgZHVtcENvbnRleHQuZHVtcChvdXQsIHByZWZpeCk7CisgICAgICAgIGNvbXBpbGF0aW9u
LT5hZGREZXNjcmlwdGlvbihQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwgb3V0LnRvQ1N0cmluZygp
KTsKKyAgICAgICAgb3V0LnJlc2V0KCk7CisgICAgICAgIAorICAgICAgICBvdXQucHJpbnQoIiAg
ICBEaXNhc3NlbWJseTpcbiIpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3Rh
dGUuaml0Q29kZS0+aGFuZGxlcygpLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoc3Rh
dGUuY29kZVNlY3Rpb25OYW1lc1tpXSAhPSAiX190ZXh0IikKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEV4ZWN1dGFibGVNZW1vcnlIYW5k
bGUqIGhhbmRsZSA9IHN0YXRlLmppdENvZGUtPmhhbmRsZXMoKVtpXS5nZXQoKTsKKyAgICAgICAg
ICAgICAgICBkaXNhc3NlbWJsZSgKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyKGhhbmRsZS0+c3RhcnQoKSksIGhhbmRsZS0+c2l6ZUluQnl0ZXMoKSwKKyAgICAgICAg
ICAgICAgICAgICAgIiAgICAgICIsIG91dCwgTExWTVN1YnNldCk7CisgICAgICAgIH0KKyAgICAg
ICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKFByb2ZpbGVyOjpPcmlnaW5TdGFjaygpLCBv
dXQudG9DU3RyaW5nKCkpOworICAgICAgICBvdXQucmVzZXQoKTsKICAgICAgICAgCi0gICAgICAg
IGFyaXR5Q2hlY2sgPSBqaXQubGFiZWwoKTsKLSAgICAgICAgY29tcGlsZUVudHJ5KGppdCk7Cisg
ICAgICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5jb21waWxhdGlvbiA9IGNvbXBpbGF0aW9uOwor
ICAgIH0KKyAgICAKKyAgICBzd2l0Y2ggKGdyYXBoLm1fcGxhbi5tb2RlKSB7CisgICAgY2FzZSBG
VExNb2RlOiB7CisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbWFpblBhdGhKdW1wczsK
KyAgICAKICAgICAgICAgaml0LmxvYWQzMigKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6cGF5
bG9hZEZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291
bnQpKSwKKyAgICAgICAgICAgIGZyYW1lLndpdGhPZmZzZXQoc2l6ZW9mKFJlZ2lzdGVyKSAqIEpT
U3RhY2s6OkFyZ3VtZW50Q291bnQpLAogICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDEpOwotICAg
ICAgICBqaXQuYnJhbmNoMzIoCisgICAgICAgIG1haW5QYXRoSnVtcHMuYXBwZW5kKGppdC5icmFu
Y2gzMigKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWJvdmVPckVxdWFsLCBHUFJJbmZvOjpy
ZWdUMSwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGNvZGVCbG9jay0+
bnVtUGFyYW1ldGVycygpKSkKLSAgICAgICAgICAgIC5saW5rVG8oZnJvbUFyaXR5Q2hlY2ssICZq
aXQpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY29kZUJsb2NrLT5u
dW1QYXJhbWV0ZXJzKCkpKSk7CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwog
ICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICAgICAgaml0LnN0b3JlMzIoCiAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihDYWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0J5dGVjb2RlT2Zm
c2V0KDApKSwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6dGFnRm9yKHN0YXRpY19jYXN0PFZp
cnR1YWxSZWdpc3Rlcj4oSlNTdGFjazo6QXJndW1lbnRDb3VudCkpKTsKLSAgICAgICAgaml0LnN0
b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAmc3RhdGUuZ3JhcGgubV92bS50b3BD
YWxsRnJhbWUpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjp0YWdGb3IoSlNTdGFjazo6QXJn
dW1lbnRDb3VudCkpOworICAgICAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsICZ2bS50b3BDYWxsRnJhbWUpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2Fs
bEFyaXR5Q2hlY2sgPSBqaXQuY2FsbCgpOwogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICAgICAg
Ly8gRklYTUU6IG5lZWQgdG8gbWFrZSB0aGlzIGNhbGwgcmVnaXN0ZXIgd2l0aCBleGNlcHRpb24g
aGFuZGxpbmcgc29tZWhvdy4gVGhpcyBpcwogICAgICAgICAvLyBwYXJ0IG9mIGEgYmlnZ2VyIHBy
b2JsZW06IEZUTCBzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUgZXhjZXB0aW9ucy4KICAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgogICAgICAg
ICAvLyBVbnRpbCB0aGVuLCB1c2UgYSBKSVQgQVNTRVJULgotICAgICAgICBqaXQubG9hZDY0KHN0
YXRlLmdyYXBoLm1fdm0uYWRkcmVzc09mRXhjZXB0aW9uKCksIEdQUkluZm86OnJlZ1QxKTsKKyAg
ICAgICAgaml0LmxvYWQ2NCh2bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwgR1BSSW5mbzo6cmVnVDEp
OwogICAgICAgICBqaXQuaml0QXNzZXJ0SXNOdWxsKEdQUkluZm86OnJlZ1QxKTsKICNlbmRpZgot
ICAgICAgICBpZiAoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgIT0gR1BSSW5mbzo6cmVnVDApCi0g
ICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmVn
VDApOwotICAgICAgICBqaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6WmVybywgR1BSSW5m
bzo6cmVnVDApLmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgJmppdCk7CisgICAgICAgIGppdC5tb3Zl
KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworICAgICAgICBtYWluUGF0aEp1bXBzLmFwcGVuZChqaXQu
YnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6WmVybywgR1BSSW5mbzo6cmVnVDApKTsKKyAgICAg
ICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cih2bS5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJu
UENzRm9yKHZtLCBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkpLCBHUFJJbmZvOjpyZWdUNSk7
CisgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QmFzZUluZGV4KEdQUkluZm86OnJl
Z1Q1LCBHUFJJbmZvOjpyZWdUMCwgQ0NhbGxIZWxwZXJzOjp0aW1lc1B0cigpKSwgR1BSSW5mbzo6
cmVnVDUpOwogICAgICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbEFyaXR5Rml4dXAgPSBqaXQu
Y2FsbCgpOwotICAgICAgICBqaXQuanVtcChmcm9tQXJpdHlDaGVjayk7Ci0gICAgICAgIAotICAg
ICAgICBsaW5rQnVmZmVyID0gYWRvcHRQdHIobmV3IExpbmtCdWZmZXIoc3RhdGUuZ3JhcGgubV92
bSwgJmppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7Ci0gICAgICAg
IGxpbmtCdWZmZXItPmxpbmsoY2FsbFN0YWNrQ2hlY2ssIG9wZXJhdGlvblN0YWNrQ2hlY2spOwor
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAgICAgbWFpblBhdGhKdW1w
cy5hcHBlbmQoaml0Lmp1bXAoKSk7CisKKyAgICAgICAgbGlua0J1ZmZlciA9IGFkb3B0UHRyKG5l
dyBMaW5rQnVmZmVyKHZtLCAmaml0LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2Nl
ZWQpKTsKICAgICAgICAgbGlua0J1ZmZlci0+bGluayhjYWxsQXJpdHlDaGVjaywgY29kZUJsb2Nr
LT5tX2lzQ29uc3RydWN0b3IgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrIDogb3BlcmF0
aW9uQ2FsbEFyaXR5Q2hlY2spOwotICAgICAgICBsaW5rQnVmZmVyLT5saW5rKGNhbGxBcml0eUZp
eHVwLCBGdW5jdGlvblB0cigoc3RhdGUuZ3JhcGgubV92bS5nZXRDVElTdHViKGFyaXR5Rml4dXAp
KS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgICAgICBsaW5rQnVmZmVyLT5saW5r
KGNhbGxBcml0eUZpeHVwLCBGdW5jdGlvblB0cigodm0uZ2V0Q1RJU3R1Yihhcml0eUZpeHVwKSku
Y29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgbGlua0J1ZmZlci0+bGluayht
YWluUGF0aEp1bXBzLCBDb2RlTG9jYXRpb25MYWJlbChiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRl
LmdlbmVyYXRlZEZ1bmN0aW9uKSkpOworCisgICAgICAgIHN0YXRlLmppdENvZGUtPmluaXRpYWxp
emVBZGRyZXNzRm9yQ2FsbChNYWNyb0Fzc2VtYmxlckNvZGVQdHIoYml0d2lzZV9jYXN0PHZvaWQq
PihzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbikpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
ICAgICAKQEAgLTE2MCwxOCArMTkwLDE0IEBAIHZvaWQgbGluayhTdGF0ZSYgc3RhdGUpCiAgICAg
ICAgIC8vIHZhbHVlcyBpbnRvIHRoZSBzY3JhdGNoIGJ1ZmZlci4gRXZlcnl0aGluZyBzaG91bGQg
YmUgZ29vZCB0byBnbyAtIGF0IHRoaXMKICAgICAgICAgLy8gcG9pbnQgd2UndmUgZXZlbiBkb25l
IHRoZSBzdGFjayBjaGVjay4gQmFzaWNhbGx5IHdlIGp1c3QgaGF2ZSB0byBtYWtlIHRoZQogICAg
ICAgICAvLyBjYWxsIHRvIHRoZSBMTFZNLWdlbmVyYXRlZCBjb2RlLgotICAgICAgICBqaXQuc2V0
dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKLSAgICAgICAgaml0Lm1vdmUoCi0gICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3RhdGUu
Z2VuZXJhdGVkRnVuY3Rpb24pKSwKLSAgICAgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjApOwot
ICAgICAgICBqaXQuY2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICAgICAgaml0LmVtaXRH
ZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6cmVnVDEpOwotICAgICAg
ICBqaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgICAgIGppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9y
ZVJldHVybihHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIGppdC5yZXQoKTsKKyAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpMYWJlbCBzdGFydCA9IGppdC5sYWJlbCgpOworICAgICAgICBqaXQuZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG1haW5QYXRoSnVt
cCA9IGppdC5qdW1wKCk7CiAgICAgICAgIAotICAgICAgICBsaW5rQnVmZmVyID0gYWRvcHRQdHIo
bmV3IExpbmtCdWZmZXIoCi0gICAgICAgICAgICBzdGF0ZS5ncmFwaC5tX3ZtLCAmaml0LCBjb2Rl
QmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgbGlua0J1ZmZlciA9
IGFkb3B0UHRyKG5ldyBMaW5rQnVmZmVyKHZtLCAmaml0LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0
aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgbGlua0J1ZmZlci0+bGluayhtYWluUGF0aEp1bXAs
IENvZGVMb2NhdGlvbkxhYmVsKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGUuZ2VuZXJhdGVkRnVu
Y3Rpb24pKSk7CisKKyAgICAgICAgc3RhdGUuaml0Q29kZS0+aW5pdGlhbGl6ZUFkZHJlc3NGb3JD
YWxsKGxpbmtCdWZmZXItPmxvY2F0aW9uT2Yoc3RhcnQpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkRGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
REZHSW5QbGFjZUFic3RyYWN0U3RhdGUuaCIKICNpbmNsdWRlICJGVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmgiCisjaW5jbHVkZSAiRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCIKICNpbmNsdWRlICJG
VExGb3JPU1JFbnRyeUpJVENvZGUuaCIKICNpbmNsdWRlICJGVExGb3JtYXR0ZWRWYWx1ZS5oIgog
I2luY2x1ZGUgIkZUTElubGluZUNhY2hlU2l6ZS5oIgpAQCAtNTEsNiArNTIsMTAgQEAgdXNpbmcg
bmFtZXNwYWNlIERGRzsKIAogc3RhdGljIHN0ZDo6YXRvbWljPGludD4gY29tcGlsZUNvdW50ZXI7
CiAKKy8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgYW5kIGludHJvZHVjZSBhIHJlYWwgc3RhY2sg
Y2hlY2suCisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NjUw
CitzdGF0aWMgdWludHB0cl90IHN0YWNrTGltaXQ7CisKIC8vIFVzaW5nIHRoaXMgaW5zdGVhZCBv
ZiB0eXBlQ2hlY2soKSBoZWxwcyB0byByZWR1Y2UgdGhlIGxvYWQgb24gTExWTSwgYnkgY3JlYXRp
bmcKIC8vIHNpZ25pZmljYW50bHkgbGVzcyBkZWFkIGNvZGUuCiAjZGVmaW5lIEZUTF9UWVBFX0NI
RUNLKGxvd1ZhbHVlLCBoaWdoVmFsdWUsIHR5cGVzUGFzc2VkVGhyb3VnaCwgZmFpbENvbmRpdGlv
bikgZG8geyBcCkBAIC05MiwxOSArOTcsMjAgQEAgcHVibGljOgogICAgICAgICAgICAgbGx2bS0+
TW9kdWxlQ3JlYXRlV2l0aE5hbWVJbkNvbnRleHQobmFtZS5kYXRhKCksIG1fZnRsU3RhdGUuY29u
dGV4dCk7CiAgICAgICAgIAogICAgICAgICBtX2Z0bFN0YXRlLmZ1bmN0aW9uID0gYWRkRnVuY3Rp
b24oCi0gICAgICAgICAgICBtX2Z0bFN0YXRlLm1vZHVsZSwgbmFtZS5kYXRhKCksIGZ1bmN0aW9u
VHlwZShtX291dC5pbnQ2NCwgbV9vdXQuaW50UHRyKSk7CisgICAgICAgICAgICBtX2Z0bFN0YXRl
Lm1vZHVsZSwgbmFtZS5kYXRhKCksIGZ1bmN0aW9uVHlwZShtX291dC5pbnQ2NCkpOwogICAgICAg
ICBzZXRGdW5jdGlvbkNhbGxpbmdDb252KG1fZnRsU3RhdGUuZnVuY3Rpb24sIExMVk1DQ2FsbENv
bnYpOworICAgICAgICBpZiAoaXNYODYoKSAmJiBPcHRpb25zOjpsbHZtRGlzYWxsb3dBVlgoKSkg
eworICAgICAgICAgICAgLy8gQVZYIG1ha2VzIFY4L3JheXRyYWNlIDgwJSBzbG93ZXIuIEl0IG1h
a2VzIEtyYWtlbi9hdWRpby1vc2NpbGxhdG9yIDQuNXgKKyAgICAgICAgICAgIC8vIHNsb3dlci4g
SXQgc2hvdWxkIGJlIGRpc2FibGVkLgorICAgICAgICAgICAgYWRkVGFyZ2V0RGVwZW5kZW50RnVu
Y3Rpb25BdHRyKG1fZnRsU3RhdGUuZnVuY3Rpb24sICJ0YXJnZXQtZmVhdHVyZXMiLCAiLWF2eCIp
OworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBtX291dC5pbml0aWFsaXplKG1fZnRsU3Rh
dGUubW9kdWxlLCBtX2Z0bFN0YXRlLmZ1bmN0aW9uLCBtX2hlYXBzKTsKICAgICAgICAgCi0gICAg
ICAgIG1fcHJvbG9ndWUgPSBhcHBlbmRCYXNpY0Jsb2NrKG1fZnRsU3RhdGUuY29udGV4dCwgbV9m
dGxTdGF0ZS5mdW5jdGlvbik7Ci0gICAgICAgIG1fb3V0LmFwcGVuZFRvKG1fcHJvbG9ndWUpOwot
ICAgICAgICBjcmVhdGVQaGlWYXJpYWJsZXMoKTsKLSAgICAgICAgCi0gICAgICAgIG1fY2FsbEZy
YW1lID0gbV9vdXQucGFyYW0oMCk7Ci0gICAgICAgIG1fdGFnVHlwZU51bWJlciA9IG1fb3V0LmNv
bnN0SW50NjQoVGFnVHlwZU51bWJlcik7Ci0gICAgICAgIG1fdGFnTWFzayA9IG1fb3V0LmNvbnN0
SW50NjQoVGFnTWFzayk7Ci0gICAgICAgIAorICAgICAgICBtX3Byb2xvZ3VlID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJQcm9sb2d1ZSIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgc3RhY2tPdmVy
ZmxvdyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3RhY2sgb3ZlcmZsb3ciKSk7CisgICAgICAg
IG1faGFuZGxlRXhjZXB0aW9ucyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiSGFuZGxlIEV4Y2Vw
dGlvbnMiKSk7CisKICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSAwOyBibG9j
a0luZGV4IDwgbV9ncmFwaC5udW1CbG9ja3MoKTsgKytibG9ja0luZGV4KSB7CiAgICAgICAgICAg
ICBtX2hpZ2hCbG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAgICAgICBp
ZiAoIW1faGlnaEJsb2NrKQpAQCAtMTEyLDggKzExOCw0MiBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICBtX2Jsb2Nrcy5hZGQobV9oaWdoQmxvY2ssIEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQmxvY2sg
IiwgKm1faGlnaEJsb2NrKSkpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBtX291dC5h
cHBlbmRUbyhtX3Byb2xvZ3VlKTsKLSAgICAgICAgbV9vdXQuanVtcChsb3dCbG9jayhtX2dyYXBo
LmJsb2NrKDApKSk7CisgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1fcHJvbG9ndWUsIHN0YWNrT3Zl
cmZsb3cpOworICAgICAgICBjcmVhdGVQaGlWYXJpYWJsZXMoKTsKKyAgICAgICAgTFZhbHVlIGNh
cHR1cmVkQWxsb2NhID0gbV9vdXQuYWxsb2NhKGFycmF5VHlwZShtX291dC5pbnQ2NCwgbV9ncmFw
aC5tX25leHRNYWNoaW5lTG9jYWwpKTsKKyAgICAgICAgbV9jYXB0dXJlZCA9IG1fb3V0LmFkZCgK
KyAgICAgICAgICAgIG1fb3V0LnB0clRvSW50KGNhcHR1cmVkQWxsb2NhLCBtX291dC5pbnRQdHIp
LAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIobV9ncmFwaC5tX25leHRNYWNoaW5lTG9j
YWwgKiBzaXplb2YoUmVnaXN0ZXIpKSk7CisgICAgICAgIAorICAgICAgICAvLyBXZSBzaG91bGQg
bm90IGNyZWF0ZSBhbnkgYWxsb2NhJ3MgYWZ0ZXIgdGhpcyBwb2ludCwgc2luY2UgdGhleSB3aWxs
IGNlYXNlIHRvCisgICAgICAgIC8vIGJlIG1lbTJyZWcgY2FuZGlkYXRlcy4KKyAgICAgICAgCisg
ICAgICAgIG1fZnRsU3RhdGUuY2FwdHVyZWRTdGFja21hcElEID0gbV9zdGFja21hcElEcysrOwor
ICAgICAgICBtX291dC5jYWxsKAorICAgICAgICAgICAgbV9vdXQuc3RhY2ttYXBJbnRyaW5zaWMo
KSwgbV9vdXQuY29uc3RJbnQ2NChtX2Z0bFN0YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCksCisgICAg
ICAgICAgICBtX291dC5pbnQzMlplcm8sIGNhcHR1cmVkQWxsb2NhKTsKKyAgICAgICAgCisgICAg
ICAgIG1fY2FsbEZyYW1lID0gbV9vdXQucHRyVG9JbnQoCisgICAgICAgICAgICBtX291dC5jYWxs
KG1fb3V0LmZyYW1lQWRkcmVzc0ludHJpbnNpYygpLCBtX291dC5pbnQzMlplcm8pLCBtX291dC5p
bnRQdHIpOworICAgICAgICBtX3RhZ1R5cGVOdW1iZXIgPSBtX291dC5jb25zdEludDY0KFRhZ1R5
cGVOdW1iZXIpOworICAgICAgICBtX3RhZ01hc2sgPSBtX291dC5jb25zdEludDY0KFRhZ01hc2sp
OworICAgICAgICAKKyAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuY29uc3RJbnRQdHIoY29k
ZUJsb2NrKCkpLCBhZGRyZXNzRm9yKEpTU3RhY2s6OkNvZGVCbG9jaykpOworICAgICAgICBtX291
dC5icmFuY2goCisgICAgICAgICAgICBtX291dC5iZWxvdyhtX2NhbGxGcmFtZSwgbV9vdXQubG9h
ZFB0cihtX291dC5hYnNvbHV0ZSgmc3RhY2tMaW1pdCkpKSwKKyAgICAgICAgICAgIHN0YWNrT3Zl
cmZsb3csIGxvd0Jsb2NrKG1fZ3JhcGguYmxvY2soMCkpKTsKKyAgICAgICAgCisgICAgICAgIG1f
b3V0LmFwcGVuZFRvKHN0YWNrT3ZlcmZsb3csIG1faGFuZGxlRXhjZXB0aW9ucyk7CisgICAgICAg
IC8vIEZJWE1FOiBEbyBhIHJlYWwgc3RhY2sgY2hlY2sgYW5kIHRocm93IHRoZSBleGNlcHRpb24g
YXBwcm9wcmlhdGVseS4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNTY1MAorICAgICAgICBtX291dC5jcmFzaCgpOworICAgICAgICAKKyAgICAg
ICAgbV9vdXQuYXBwZW5kVG8obV9oYW5kbGVFeGNlcHRpb25zLCBsb3dCbG9jayhtX2dyYXBoLmJs
b2NrKDApKSk7CisgICAgICAgIG1fZnRsU3RhdGUuaGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRCA9
IG1fc3RhY2ttYXBJRHMrKzsKKyAgICAgICAgbV9vdXQuY2FsbCgKKyAgICAgICAgICAgIG1fb3V0
LnN0YWNrbWFwSW50cmluc2ljKCksIG1fb3V0LmNvbnN0SW50NjQobV9mdGxTdGF0ZS5oYW5kbGVF
eGNlcHRpb25TdGFja21hcElEKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoTWFjcm9B
c3NlbWJsZXI6Om1heEp1bXBSZXBsYWNlbWVudFNpemUoKSkpOworICAgICAgICBtX291dC51bnJl
YWNoYWJsZSgpOwogICAgICAgICAKICAgICAgICAgVmVjdG9yPEJhc2ljQmxvY2sqPiBkZXB0aEZp
cnN0OwogICAgICAgICBtX2dyYXBoLmdldEJsb2Nrc0luRGVwdGhGaXJzdE9yZGVyKGRlcHRoRmly
c3QpOwpAQCAtMjI2LDYgKzI2Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICh2ZXJib3NlQ29t
cGlsYXRpb25FbmFibGVkKCkpCiAgICAgICAgICAgICBkYXRhTG9nKCJMb3dlcmluZyAiLCBtX25v
ZGUsICJcbiIpOwogICAgICAgICAKKyAgICAgICAgbV9hdmFpbGFibGVSZWNvdmVyaWVzLnJlc2l6
ZSgwKTsKKyAgICAgICAgCiAgICAgICAgIGJvb2wgc2hvdWxkRXhlY3V0ZUVmZmVjdHMgPSBtX2lu
dGVycHJldGVyLnN0YXJ0RXhlY3V0aW5nKG1fbm9kZSk7CiAgICAgICAgIAogICAgICAgICBzd2l0
Y2ggKG1fbm9kZS0+b3AoKSkgewpAQCAtMjY1LDE5ICszMDcsMTcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIGNvbXBpbGVWYWx1ZUFkZCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQXJpdGhBZGQ6Ci0gICAgICAgICAgICBjb21waWxlQWRkU3ViKCk7Ci0gICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcml0aFN1YjoKLSAgICAgICAgICAgIGNvbXBpbGVBZGRTdWIo
KTsKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aEFkZE9yU3ViKCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBBcml0aE11bDoKICAgICAgICAgICAgIGNvbXBpbGVBcml0aE11bCgp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhEaXY6Ci0gICAgICAgICAg
ICBjb21waWxlQXJpdGhEaXZNb2QoKTsKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aERpdigpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhNb2Q6Ci0gICAgICAgICAgICBj
b21waWxlQXJpdGhEaXZNb2QoKTsKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aE1vZCgpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhNaW46CiAgICAgICAgIGNhc2UgQXJp
dGhNYXg6CkBAIC0yODYsNiArMzI2LDE1IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJpdGhB
YnM6CiAgICAgICAgICAgICBjb21waWxlQXJpdGhBYnMoKTsKICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFyaXRoU2luOgorICAgICAgICAgICAgY29tcGlsZUFyaXRoU2luKCk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcml0aENvczoKKyAgICAgICAgICAgIGNv
bXBpbGVBcml0aENvcygpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXJpdGhT
cXJ0OgorICAgICAgICAgICAgY29tcGlsZUFyaXRoU3FydCgpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6CiAgICAgICAgICAgICBjb21waWxlQXJpdGhOZWdh
dGUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzIyLDYgKzM3MSw5IEBAIHByaXZhdGU6CiAg
ICAgICAgIGNhc2UgQ2hlY2tGdW5jdGlvbjoKICAgICAgICAgICAgIGNvbXBpbGVDaGVja0Z1bmN0
aW9uKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6
CisgICAgICAgICAgICBjb21waWxlQ2hlY2tFeGVjdXRhYmxlKCk7CisgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgogICAgICAgICAgICAgY29tcGls
ZUFycmF5aWZ5VG9TdHJ1Y3R1cmUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzM0LDYgKzM4
Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgR2V0QnlJZDoKICAgICAgICAgICAgIGNvbXBp
bGVHZXRCeUlkKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQdXRCeUlkRGly
ZWN0OgogICAgICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgICAgICBjb21waWxlUHV0QnlJZCgp
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zNzIsOSArNDI1LDE4IEBAIHByaXZhdGU6CiAgICAg
ICAgIGNhc2UgTmV3QXJyYXlCdWZmZXI6CiAgICAgICAgICAgICBjb21waWxlTmV3QXJyYXlCdWZm
ZXIoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6
CisgICAgICAgICAgICBjb21waWxlTmV3QXJyYXlXaXRoU2l6ZSgpOworICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgICAgICAgICBj
b21waWxlQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoKTsKICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFRvU3RyaW5nOgorICAgICAgICAgICAgY29tcGlsZVRvU3RyaW5nKCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNYWtlUm9wZToKKyAgICAgICAgICAgIGNvbXBp
bGVNYWtlUm9wZSgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RyaW5nQ2hh
ckF0OgogICAgICAgICAgICAgY29tcGlsZVN0cmluZ0NoYXJBdCgpOwogICAgICAgICAgICAgYnJl
YWs7CkBAIC0zOTYsNiArNDU4LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgTm90aWZ5V3Jp
dGU6CiAgICAgICAgICAgICBjb21waWxlTm90aWZ5V3JpdGUoKTsKICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEdldENhbGxlZToKKyAgICAgICAgICAgIGNvbXBpbGVHZXRDYWxsZWUo
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdldFNjb3BlOgorICAgICAgICAg
ICAgY29tcGlsZUdldFNjb3BlKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBH
ZXRNeVNjb3BlOgogICAgICAgICAgICAgY29tcGlsZUdldE15U2NvcGUoKTsKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtNDY2LDYgKzUzNCwxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEludDUy
VG9WYWx1ZToKICAgICAgICAgICAgIGNvbXBpbGVJbnQ1MlRvVmFsdWUoKTsKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENoZWNrQXJndW1lbnRzTm90Q3JlYXRlZDoKKyAgICAgICAg
ICAgIGNvbXBpbGVDaGVja0FyZ3VtZW50c05vdENyZWF0ZWQoKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENvdW50RXhlY3V0aW9uOgorICAgICAgICAgICAgY29tcGlsZUNvdW50
RXhlY3V0aW9uKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdG9yZUJhcnJp
ZXI6CiAgICAgICAgICAgICBjb21waWxlU3RvcmVCYXJyaWVyKCk7CiAgICAgICAgICAgICBicmVh
azsKQEAgLTQ4Miw2ICs1NTYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFZhcmlhYmxlV2F0
Y2hwb2ludDoKICAgICAgICAgY2FzZSBGdW5jdGlvblJlZW50cnlXYXRjaHBvaW50OgogICAgICAg
ICBjYXNlIFR5cGVkQXJyYXlXYXRjaHBvaW50OgorICAgICAgICBjYXNlIEFsbG9jYXRpb25Qcm9m
aWxlV2F0Y2hwb2ludDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTgxNSwyNCArODkwLDUz
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpLCBs
b3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgY29t
cGlsZUFkZFN1YigpCisgICAgdm9pZCBjb21waWxlQXJpdGhBZGRPclN1YigpCiAgICAgewogICAg
ICAgICBib29sIGlzU3ViID0gIG1fbm9kZS0+b3AoKSA9PSBBcml0aFN1YjsKICAgICAgICAgc3dp
dGNoIChtX25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewogICAgICAgICBjYXNlIEludDMyVXNlOiB7
CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7Ci0g
ICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gaXNTdWIgPyBtX291dC5zdWIobGVmdCwgcmlnaHQp
IDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KTsKIAogICAgICAgICAgICAgaWYgKCFzaG91bGRDaGVj
a092ZXJmbG93KG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAgc2V0SW50
MzIocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBzZXRJbnQzMihpc1N1YiA/IG1fb3V0LnN1Yihs
ZWZ0LCByaWdodCkgOiBtX291dC5hZGQobGVmdCwgcmlnaHQpKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93ID0gaXNT
dWIgPyBtX291dC5zdWJXaXRoT3ZlcmZsb3czMihsZWZ0LCByaWdodCkgOiBtX291dC5hZGRXaXRo
T3ZlcmZsb3czMihsZWZ0LCByaWdodCk7CisgICAgICAgICAgICBMVmFsdWUgcmVzdWx0OworICAg
ICAgICAgICAgaWYgKCFpc1N1YikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmFk
ZFdpdGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDIoKSkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25v
ZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0
LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBsZWZ0LCBWYWx1ZUZvcm1hdEludDMyKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkpKSB7CisgICAg
ICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAg
ICAgICAgbV9ub2RlLT5jaGlsZDEoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAg
ICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgcmlnaHQsIFZhbHVlRm9ybWF0SW50
MzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gbV9vdXQuc3ViV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQpOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxk
MigpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgPSBsZWZ0IC0gcmlnaHQKKyAg
ICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0IC0gbGVmdCA9IC1yaWdodAorICAgICAgICAgICAg
ICAgICAgICAvLyByaWdodCA9IGxlZnQgLSByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgYWRk
QXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxk
MigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQsIG1fb3V0LmV4
dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBWYWx1ZUZvcm1hdEludDMyKTsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkpKSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIHJlc3VsdCA9IGxlZnQgLSByaWdodAorICAgICAgICAgICAgICAgICAgICAvLyBy
ZXN1bHQgKyByaWdodCA9IGxlZnQKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVj
b3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgpLCBBZGRSZWNv
dmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQs
IDApLCByaWdodCwgVmFsdWVGb3JtYXRJbnQzMik7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwg
bV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93LCAxKSk7Ci0gICAgICAgICAgICBzZXRJbnQzMihy
ZXN1bHQpOworICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1f
b3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDEpKTsKKyAgICAgICAgICAgIHNldEludDMyKG1fb3V0
LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgICAgICAKQEAgLTg0OCwxMSArOTUyLDQxIEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDEoKSk7
CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dJbnQ1MihtX25vZGUtPmNoaWxkMigpKTsK
LSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBpc1N1YiA/IG1fb3V0LnN1YihsZWZ0LCByaWdo
dCkgOiBtX291dC5hZGQobGVmdCwgcmlnaHQpOwogCi0gICAgICAgICAgICBMVmFsdWUgb3ZlcmZs
b3cgPSBpc1N1YiA/IG1fb3V0LnN1YldpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KSA6IG1fb3V0
LmFkZFdpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShJ
bnQ1Mk92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvdywg
MSkpOwotICAgICAgICAgICAgc2V0SW50NTIocmVzdWx0KTsKKyAgICAgICAgICAgIExWYWx1ZSBy
ZXN1bHQ7CisgICAgICAgICAgICBpZiAoIWlzU3ViKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0
ID0gbV9vdXQuYWRkV2l0aE92ZXJmbG93NjQobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMigpKSkgeworICAg
ICAgICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1fbm9kZS0+Y2hpbGQyKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAg
ICAgICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIGxlZnQsIFZhbHVlRm9ybWF0SW50
NTIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDEo
KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAg
ICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCByaWdodCwgVmFs
dWVGb3JtYXRJbnQ1Mik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5zdWJXaXRoT3ZlcmZsb3c2NChsZWZ0LCBy
aWdodCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRvZXNLaWxsKG1f
bm9kZS0+Y2hpbGQyKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCA9IGxlZnQg
LSByaWdodAorICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgLSBsZWZ0ID0gLXJpZ2h0Cisg
ICAgICAgICAgICAgICAgICAgIC8vIHJpZ2h0ID0gbGVmdCAtIHJlc3VsdAorICAgICAgICAgICAg
ICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
bm9kZS0+Y2hpbGQyKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgbGVm
dCwgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIFZhbHVlRm9ybWF0SW50NTIpOworICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDEoKSkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0ID0gbGVmdCAtIHJpZ2h0CisgICAgICAgICAgICAg
ICAgICAgIC8vIHJlc3VsdCArIHJpZ2h0ID0gbGVmdAorICAgICAgICAgICAgICAgICAgICBhZGRB
dmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQx
KCksIEFkZFJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuZXh0cmFjdFZh
bHVlKHJlc3VsdCwgMCksIHJpZ2h0LCBWYWx1ZUZvcm1hdEludDUyKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNwZWN1bGF0ZShJbnQ1Mk92ZXJmbG93
LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDEpKTsKKyAgICAgICAg
ICAgIHNldEludDUyKG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTg3NiwxMSArMTAxMCwxNSBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIEludDMyVXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUgbGVm
dCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0
ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0
ID0gbV9vdXQubXVsKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZh
bHVlIHJlc3VsdDsKIAotICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2Rl
LT5hcml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAgIGlmICghc2hvdWxkQ2hlY2tPdmVyZmxvdyht
X25vZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5tdWwo
bGVmdCwgcmlnaHQpOworICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgTFZhbHVl
IG92ZXJmbG93UmVzdWx0ID0gbV9vdXQubXVsV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQpOwog
ICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5l
eHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9u
b2RlLT5hcml0aE1vZGUoKSkpIHsKQEAgLTkwNCwxMSArMTA0MiwxMCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgSW50NTJLaW5kIGtpbmQ7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd1do
aWNoZXZlckludDUyKG1fbm9kZS0+Y2hpbGQxKCksIGtpbmQpOwogICAgICAgICAgICAgTFZhbHVl
IHJpZ2h0ID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDIoKSwgb3Bwb3NpdGUoa2luZCkpOwotICAg
ICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0Lm11bChsZWZ0LCByaWdodCk7Ci0KIAogICAg
ICAgICAgICAgTFZhbHVlIG92ZXJmbG93UmVzdWx0ID0gbV9vdXQubXVsV2l0aE92ZXJmbG93NjQo
bGVmdCwgcmlnaHQpOwogICAgICAgICAgICAgc3BlY3VsYXRlKEludDUyT3ZlcmZsb3csIG5vVmFs
dWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7CisgICAgICAg
ICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAw
KTsKIAogICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJp
dGhNb2RlKCkpKSB7CiAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2UgPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTXVsIHNsb3cgY2FzZSIpKTsKQEAgLTkzOSwxNiArMTA3
NiwxNiBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBjb21waWxlQXJp
dGhEaXZNb2QoKQorICAgIHZvaWQgY29tcGlsZUFyaXRoRGl2KCkKICAgICB7CiAgICAgICAgIHN3
aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBJbnQzMlVzZTog
ewogICAgICAgICAgICAgTFZhbHVlIG51bWVyYXRvciA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICAgICAgTFZhbHVlIGRlbm9taW5hdG9yID0gbG93SW50MzIobV9ub2RlLT5j
aGlsZDIoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIHVuc2FmZURl
bm9taW5hdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCB1bnNhZmUgZGVu
b21pbmF0b3IiKSk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIGNvbnRpbnVhdGlvbiIpKTsKLSAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGRvbmUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9k
IGRvbmUiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayB1bnNhZmVEZW5vbWluYXRvciA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgdW5zYWZlIGRlbm9taW5hdG9yIikpOworICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwg
KCJBcml0aERpdiBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBkb25l
ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiBkb25lIikpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDM+IHJlc3VsdHM7CiAgICAgICAg
ICAgICAKQEAgLTk5MSw4ICsxMTI4LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0LmFw
cGVuZFRvKGNvbnRpbnVhdGlvbiwgZG9uZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlm
IChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIHplcm9OdW1lcmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0
LCAoIkFyaXRoRGl2TW9kIHplcm8gbnVtZXJhdG9yIikpOwotICAgICAgICAgICAgICAgIExCYXNp
Y0Jsb2NrIG51bWVyYXRvckNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJp
dGhEaXZNb2QgbnVtZXJhdG9yIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgICAgICBMQmFz
aWNCbG9jayB6ZXJvTnVtZXJhdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiB6
ZXJvIG51bWVyYXRvciIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBudW1lcmF0b3JD
b250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IG51bWVyYXRvciBj
b250aW51YXRpb24iKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgbV9vdXQu
YnJhbmNoKG1fb3V0LmlzWmVybzMyKG51bWVyYXRvciksIHplcm9OdW1lcmF0b3IsIG51bWVyYXRv
ckNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICAgICAgCkBAIC0xMDA2LDE3ICsxMTQzLDE1IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obnVtZXJhdG9yQ29udGlu
dWF0aW9uLCBpbm5lckxhc3ROZXh0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAg
ICAgICAgICAgTFZhbHVlIGRpdk1vZFJlc3VsdCA9IG1fbm9kZS0+b3AoKSA9PSBBcml0aERpdgot
ICAgICAgICAgICAgICAgID8gbV9vdXQuZGl2KG51bWVyYXRvciwgZGVub21pbmF0b3IpCi0gICAg
ICAgICAgICAgICAgOiBtX291dC5yZW0obnVtZXJhdG9yLCBkZW5vbWluYXRvcik7CisgICAgICAg
ICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuZGl2KG51bWVyYXRvciwgZGVub21pbmF0b3IpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxvdyhtX25vZGUt
PmFyaXRoTW9kZSgpKSkgewogICAgICAgICAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAg
ICAgICAgICAgT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwKLSAgICAgICAgICAgICAgICAgICAgbV9v
dXQubm90RXF1YWwobV9vdXQubXVsKGRpdk1vZFJlc3VsdCwgZGVub21pbmF0b3IpLCBudW1lcmF0
b3IpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQubm90RXF1YWwobV9vdXQubXVsKHJlc3Vs
dCwgZGVub21pbmF0b3IpLCBudW1lcmF0b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IAotICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKGRpdk1vZFJlc3VsdCkp
OworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHJlc3VsdCkpOwogICAg
ICAgICAgICAgbV9vdXQuanVtcChkb25lKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8oZG9uZSwgbGFzdE5leHQpOwpAQCAtMTAyNiw5ICsxMTYxLDggQEAgcHJpdmF0
ZToKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgTnVtYmVyVXNlOiB7Ci0g
ICAgICAgICAgICBMVmFsdWUgQzEgPSBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAg
ICAgICAgICBMVmFsdWUgQzIgPSBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAg
ICAgICBzZXREb3VibGUobV9ub2RlLT5vcCgpID09IEFyaXRoRGl2ID8gbV9vdXQuZG91YmxlRGl2
KEMxLCBDMikgOiBtX291dC5kb3VibGVSZW0oQzEsIEMyKSk7CisgICAgICAgICAgICBzZXREb3Vi
bGUobV9vdXQuZG91YmxlRGl2KAorICAgICAgICAgICAgICAgIGxvd0RvdWJsZShtX25vZGUtPmNo
aWxkMSgpKSwgbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC0xMDM4LDYgKzExNzIsOTkgQEAgcHJpdmF0
ZToKICAgICAgICAgfQogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVBcml0aE1vZCgpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CisgICAgICAg
IGNhc2UgSW50MzJVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSBudW1lcmF0b3IgPSBsb3dJbnQz
MihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBkZW5vbWluYXRvciA9IGxv
d0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFz
aWNCbG9jayB1bnNhZmVEZW5vbWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhN
b2QgdW5zYWZlIGRlbm9taW5hdG9yIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGlu
dWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBjb250aW51YXRpb24iKSk7
CisgICAgICAgICAgICBMQmFzaWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJB
cml0aE1vZCBkb25lIikpOworICAgICAgICAgICAgCisgICAgICAgICAgICBWZWN0b3I8VmFsdWVG
cm9tQmxvY2ssIDM+IHJlc3VsdHM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBh
ZGp1c3RlZERlbm9taW5hdG9yID0gbV9vdXQuYWRkKGRlbm9taW5hdG9yLCBtX291dC5pbnQzMk9u
ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5hYm92ZShh
ZGp1c3RlZERlbm9taW5hdG9yLCBtX291dC5pbnQzMk9uZSksIGNvbnRpbnVhdGlvbiwgdW5zYWZl
RGVub21pbmF0b3IpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0
TmV4dCA9IG1fb3V0LmFwcGVuZFRvKHVuc2FmZURlbm9taW5hdG9yLCBjb250aW51YXRpb24pOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgbmVnMlRvVGhlMzEgPSBtX291dC5jb25z
dEludDMyKC0yMTQ3NDgzNjQ3LTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBGSVhN
RTogLTJeMzEgLyAtMSB3aWxsIGFjdHVhbGx5IHlpZWxkIG5lZ2F0aXZlIHplcm8sIHNvIHdlIGNv
dWxkIGhhdmUgYQorICAgICAgICAgICAgLy8gc2VwYXJhdGUgY2FzZSBmb3IgdGhhdC4gQnV0IGl0
IHByb2JhYmx5IGRvZXNuJ3QgbWF0dGVyIHNvIG11Y2guCisgICAgICAgICAgICBpZiAoc2hvdWxk
Q2hlY2tPdmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgeworICAgICAgICAgICAgICAgIExW
YWx1ZSBjb25kID0gbV9vdXQuYml0T3IobV9vdXQuaXNaZXJvMzIoZGVub21pbmF0b3IpLCBtX291
dC5lcXVhbChudW1lcmF0b3IsIG5lZzJUb1RoZTMxKSk7CisgICAgICAgICAgICAgICAgc3BlY3Vs
YXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIGNvbmQpOworICAgICAgICAgICAgICAgIG1fb3V0
Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgLy8gVGhpcyBpcyB0aGUgY2FzZSB3aGVyZSB3ZSBjb252ZXJ0IHRoZSByZXN1bHQgdG8gYW4g
aW50IGFmdGVyIHdlJ3JlIGRvbmUuIFNvLAorICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZW5v
bWluYXRvciBpcyB6ZXJvLCB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIHJlc3VsdCBzaG91bGQg
YmUgemVyby4KKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZGVub21pbmF0b3IgaXMgbm90IHpl
cm8gKGkuZS4gaXQncyAtMSBiZWNhdXNlIHdlJ3JlIGd1YXJkZWQgYnkgdGhlCisgICAgICAgICAg
ICAgICAgLy8gY2hlY2sgYWJvdmUpIGFuZCB0aGUgbnVtZXJhdG9yIGlzIC0yXjMxIHRoZW4gdGhl
IHJlc3VsdCBzaG91bGQgYmUgLTJeMzEuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgbW9kQnlaZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1v
ZCBtb2R1bG8gYnkgemVybyIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RNb2RC
eVplcm8gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG5vdCBtb2R1bG8gYnkgemVy
byIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBuZWcyVG9UaGUzMUJ5TmVnMSA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgLTJeMzEvLTEiKSk7CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVybzMyKGRlbm9taW5h
dG9yKSwgbW9kQnlaZXJvLCBub3RNb2RCeVplcm8pOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1vZEJ5WmVybywgbm90TW9kQnlaZXJvKTsKKyAgICAg
ICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7
CisgICAgICAgICAgICAgICAgbV9vdXQuanVtcChkb25lKTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3RNb2RCeVplcm8sIG5lZzJUb1RoZTMxQnlO
ZWcxKTsKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwobnVtZXJhdG9y
LCBuZWcyVG9UaGUzMSksIG5lZzJUb1RoZTMxQnlOZWcxLCBjb250aW51YXRpb24pOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5lZzJUb1RoZTMxQnlO
ZWcxLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0
LmFuY2hvcihtX291dC5pbnQzMlplcm8pKTsKKyAgICAgICAgICAgICAgICBtX291dC5qdW1wKGRv
bmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhjb250aW51YXRpb24sIGRvbmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFs
dWUgcmVtYWluZGVyID0gbV9vdXQucmVtKG51bWVyYXRvciwgZGVub21pbmF0b3IpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5h
cml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBuZWdhdGl2ZU51bWVy
YXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbmVnYXRpdmUgbnVtZXJhdG9y
IikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG51bWVyYXRvckNvbnRpbnVhdGlvbiA9
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbnVtZXJhdG9yIGNvbnRpbnVhdGlvbiIp
KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAg
ICAgICAgICAgICAgICAgIG1fb3V0Lmxlc3NUaGFuKG51bWVyYXRvciwgbV9vdXQuaW50MzJaZXJv
KSwKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVOdW1lcmF0b3IsIG51bWVyYXRvckNvbnRp
bnVhdGlvbik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sg
aW5uZXJMYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5lZ2F0aXZlTnVtZXJhdG9yLCBudW1lcmF0
b3JDb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNwZWN1
bGF0ZShOZWdhdGl2ZVplcm8sIG5vVmFsdWUoKSwgMCwgbV9vdXQuaXNaZXJvMzIocmVtYWluZGVy
KSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuanVtcChudW1lcmF0
b3JDb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKG51bWVyYXRvckNvbnRpbnVhdGlvbiwgaW5uZXJMYXN0TmV4dCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFu
Y2hvcihyZW1haW5kZXIpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgc2V0SW50MzIobV9vdXQucGhpKG1fb3V0LmludDMyLCByZXN1
bHRzKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAg
ICAgIGNhc2UgTnVtYmVyVXNlOiB7CisgICAgICAgICAgICBzZXREb3VibGUoCisgICAgICAgICAg
ICAgICAgbV9vdXQuZG91YmxlUmVtKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSwgbG93RG91
YmxlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisK
ICAgICB2b2lkIGNvbXBpbGVBcml0aE1pbk9yTWF4KCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAo
bV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKQEAgLTExMTQsNiArMTM0MSwxMiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisKKyAgICB2b2lkIGNvbXBp
bGVBcml0aFNpbigpIHsgc2V0RG91YmxlKG1fb3V0LmRvdWJsZVNpbihsb3dEb3VibGUobV9ub2Rl
LT5jaGlsZDEoKSkpKTsgfQorCisgICAgdm9pZCBjb21waWxlQXJpdGhDb3MoKSB7IHNldERvdWJs
ZShtX291dC5kb3VibGVDb3MobG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7IH0KKworICAg
IHZvaWQgY29tcGlsZUFyaXRoU3FydCgpIHsgc2V0RG91YmxlKG1fb3V0LmRvdWJsZVNxcnQobG93
RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7IH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVBcml0
aE5lZ2F0ZSgpCiAgICAgewpAQCAtMTEyMSwxNiArMTM1NCwxOCBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIEludDMyVXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dJbnQzMiht
X25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgTFZhbHVlIHJlc3Vs
dCA9IG1fb3V0Lm5lZyh2YWx1ZSk7Ci0gICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxv
dyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAgICAgICAgICAgIGlmICghc2hvdWxkQ2hl
Y2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIG5lZ2F0ZS13aXRoLW92ZXJmbG93IGludHJpbnNpYy4gSG9w
ZWZ1bGx5IHRoaXMKLSAgICAgICAgICAgICAgICAgICAgLy8gZG9lcyB0aGUgdHJpY2ssIHRob3Vn
aC4KLSAgICAgICAgICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93UmVzdWx0ID0gbV9vdXQuc3Vi
V2l0aE92ZXJmbG93MzIobV9vdXQuaW50MzJaZXJvLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUo
b3ZlcmZsb3dSZXN1bHQsIDEpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LnRlc3RJc1pl
cm8zMih2YWx1ZSwgbV9vdXQuY29uc3RJbnQzMigweDdmZmZmZmZmKSkpOwotCisgICAgICAgICAg
ICBMVmFsdWUgcmVzdWx0OworICAgICAgICAgICAgaWYgKCFzaG91bGRDaGVja092ZXJmbG93KG1f
bm9kZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0Lm5lZyh2
YWx1ZSk7CisgICAgICAgICAgICBlbHNlIGlmICghc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9u
b2RlLT5hcml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYXZlIGEg
bmVnYXRlLXdpdGgtb3ZlcmZsb3cgaW50cmluc2ljLiBIb3BlZnVsbHkgdGhpcworICAgICAgICAg
ICAgICAgIC8vIGRvZXMgdGhlIHRyaWNrLCB0aG91Z2guCisgICAgICAgICAgICAgICAgTFZhbHVl
IG92ZXJmbG93UmVzdWx0ID0gbV9vdXQuc3ViV2l0aE92ZXJmbG93MzIobV9vdXQuaW50MzJaZXJv
LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCks
IDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMSkpOworICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMCk7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9W
YWx1ZSgpLCAwLCBtX291dC50ZXN0SXNaZXJvMzIodmFsdWUsIG1fb3V0LmNvbnN0SW50MzIoMHg3
ZmZmZmZmZikpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5uZWcodmFsdWUpOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBzZXRJbnQzMihyZXN1bHQpOwpAQCAtMTE1MSw3
ICsxMzg2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0ludDUy
KG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93UmVzdWx0ID0g
bV9vdXQuc3ViV2l0aE92ZXJmbG93NjQobV9vdXQuaW50NjRaZXJvLCB2YWx1ZSk7CiAgICAgICAg
ICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0
VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBt
X291dC5uZWcodmFsdWUpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmV4dHJh
Y3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMCk7CiAgICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRp
dmVaZXJvLCBub1ZhbHVlKCksIDAsIG1fb3V0LmlzWmVybzY0KHJlc3VsdCkpOwogICAgICAgICAg
ICAgc2V0SW50NTIocmVzdWx0KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTI3NSw2ICsxNTEw
LDE3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChjZWxsLCB3ZWFrUG9p
bnRlcihtX25vZGUtPmZ1bmN0aW9uKCkpKSk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGls
ZUNoZWNrRXhlY3V0YWJsZSgpCisgICAgeworICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwo
bV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIAorICAgICAgICBzcGVjdWxhdGUoCisgICAgICAg
ICAgICBCYWRFeGVjdXRhYmxlLCBqc1ZhbHVlVmFsdWUoY2VsbCksIG1fbm9kZS0+Y2hpbGQxKCku
bm9kZSgpLAorICAgICAgICAgICAgbV9vdXQubm90RXF1YWwoCisgICAgICAgICAgICAgICAgbV9v
dXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTRnVuY3Rpb25fZXhlY3V0YWJsZSksCisgICAgICAg
ICAgICAgICAgd2Vha1BvaW50ZXIobV9ub2RlLT5leGVjdXRhYmxlKCkpKSk7CisgICAgfQorICAg
IAogICAgIHZvaWQgY29tcGlsZUFycmF5aWZ5VG9TdHJ1Y3R1cmUoKQogICAgIHsKICAgICAgICAg
TFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwpAQCAtMTM3MCw4ICsxNjE2
LDggQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQuY2Fs
bCgKICAgICAgICAgICAgIG1fb3V0LnBhdGNocG9pbnRJbnQ2NEludHJpbnNpYygpLAotICAgICAg
ICAgICAgbV9vdXQuY29uc3RJbnQzMihzdGFja21hcElEKSwgbV9vdXQuY29uc3RJbnQzMihzaXpl
T2ZHZXRCeUlkKCkpLAotICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5j
b25zdEludDMyKDIpLCBtX2NhbGxGcmFtZSwgYmFzZSk7CisgICAgICAgICAgICBtX291dC5jb25z
dEludDY0KHN0YWNrbWFwSUQpLCBtX291dC5jb25zdEludDMyKHNpemVPZkdldEJ5SWQoKSksCisg
ICAgICAgICAgICBjb25zdE51bGwobV9vdXQucmVmOCksIG1fb3V0LmNvbnN0SW50MzIoMSksIGJh
c2UpOwogICAgICAgICBzZXRJbnN0cnVjdGlvbkNhbGxpbmdDb252ZW50aW9uKGNhbGwsIExMVk1B
bnlSZWdDYWxsQ29udik7CiAgICAgICAgIHNldEpTVmFsdWUoY2FsbCk7CiAgICAgICAgIApAQCAt
MTM5NSw4ICsxNjQxLDggQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIExWYWx1ZSBjYWxs
ID0gbV9vdXQuY2FsbCgKICAgICAgICAgICAgIG1fb3V0LnBhdGNocG9pbnRWb2lkSW50cmluc2lj
KCksCi0gICAgICAgICAgICBtX291dC5jb25zdEludDMyKHN0YWNrbWFwSUQpLCBtX291dC5jb25z
dEludDMyKHNpemVPZlB1dEJ5SWQoKSksCi0gICAgICAgICAgICBjb25zdE51bGwobV9vdXQucmVm
OCksIG1fb3V0LmNvbnN0SW50MzIoMyksIG1fY2FsbEZyYW1lLCBiYXNlLCB2YWx1ZSk7CisgICAg
ICAgICAgICBtX291dC5jb25zdEludDY0KHN0YWNrbWFwSUQpLCBtX291dC5jb25zdEludDMyKHNp
emVPZlB1dEJ5SWQoKSksCisgICAgICAgICAgICBjb25zdE51bGwobV9vdXQucmVmOCksIG1fb3V0
LmNvbnN0SW50MzIoMiksIGJhc2UsIHZhbHVlKTsKICAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxs
aW5nQ29udmVudGlvbihjYWxsLCBMTFZNQW55UmVnQ2FsbENvbnYpOwogICAgICAgICAKICAgICAg
ICAgbV9mdGxTdGF0ZS5wdXRCeUlkcy5hcHBlbmQoUHV0QnlJZERlc2NyaXB0b3IoCkBAIC0xNDYz
LDIwICsxNzA5LDIwIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAg
ICAgICBjYXNlIEFycmF5OjpEb3VibGU6CiAgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6
IHsKLSAgICAgICAgICAgIHNldEludDMyKG1fb3V0LmxvYWQzMihsb3dTdG9yYWdlKG1fbm9kZS0+
Y2hpbGQyKCkpLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsKKyAgICAgICAgICAg
IHNldEludDMyKG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGxvd1N0b3JhZ2UobV9ub2RlLT5jaGls
ZDIoKSksIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheTo6U3RyaW5n
OiB7CiAgICAgICAgICAgICBMVmFsdWUgc3RyaW5nID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgp
KTsKLSAgICAgICAgICAgIHNldEludDMyKG1fb3V0LmxvYWQzMihzdHJpbmcsIG1faGVhcHMuSlNT
dHJpbmdfbGVuZ3RoKSk7CisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzJOb25OZWdh
dGl2ZShzdHJpbmcsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgaWYgKGlzVHlwZWRWaWV3KG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSkp
IHsKICAgICAgICAgICAgICAgICBzZXRJbnQzMigKLSAgICAgICAgICAgICAgICAgICAgbV9vdXQu
bG9hZDMyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZp
ZXdfbGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZl
KGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZpZXdfbGVu
Z3RoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgCkBAIC0xNTE4LDcgKzE3NjQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKAot
ICAgICAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyKHN0b3JhZ2UsIG1faGVhcHMu
QnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpLAorICAgICAgICAgICAgICAgICAgICBpbmRleCwgbV9v
dXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVu
Z3RoKSksCiAgICAgICAgICAgICAgICAgc2xvd0Nhc2UsIGZhc3RDYXNlKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhmYXN0
Q2FzZSwgc2xvd0Nhc2UpOwpAQCAtMTU2NSw3ICsxODExLDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fb3V0LmFi
b3ZlT3JFcXVhbCgKLSAgICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihzdG9y
YWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKKyAgICAgICAgICAgICAgICAg
ICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVy
Zmx5X3B1YmxpY0xlbmd0aCkpLAogICAgICAgICAgICAgICAgIHNsb3dDYXNlLCBpbkJvdW5kcyk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQu
YXBwZW5kVG8oaW5Cb3VuZHMsIGJveFBhdGgpOwpAQCAtMTY4Nyw2ICsxOTMzLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgRWRnZSBjaGlsZDIgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSk7
CiAgICAgICAgIEVkZ2UgY2hpbGQzID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDIpOwog
ICAgICAgICBFZGdlIGNoaWxkNCA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAzKTsKKyAg
ICAgICAgRWRnZSBjaGlsZDUgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgNCk7CiAgICAg
ICAgIAogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7CiAgICAg
ICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKQEAgLTE4MDEsNiArMjA0OCw5IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuemVyb0V4dChpbmRleCwgbV9vdXQu
aW50UHRyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihs
b2dFbGVtZW50U2l6ZSh0eXBlKSkpKSk7CiAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgTFR5cGUgcmVmVHlwZTsKKyAgICAgICAgICAgICAgICBMVmFsdWUgdmFsdWVUb1N0b3JlOwor
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChpc0ludCh0eXBlKSkgewogICAg
ICAgICAgICAgICAgICAgICBMVmFsdWUgaW50VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgIHN3
aXRjaCAoY2hpbGQzLnVzZUtpbmQoKSkgewpAQCAtMTg3NiwzNCArMjEyNiw1MyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChlbGVt
ZW50U2l6ZSh0eXBlKSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBtX291dC5zdG9yZTgobV9vdXQuaW50Q2FzdChpbnRWYWx1ZSwgbV9vdXQu
aW50OCksIHBvaW50ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3JlID0g
bV9vdXQuaW50Q2FzdChpbnRWYWx1ZSwgbV9vdXQuaW50OCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICByZWZUeXBlID0gbV9vdXQucmVmODsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAgICAgICAgICAgICBt
X291dC5zdG9yZTE2KG1fb3V0LmludENhc3QoaW50VmFsdWUsIG1fb3V0LmludDE2KSwgcG9pbnRl
cik7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvU3RvcmUgPSBtX291dC5pbnRDYXN0
KGludFZhbHVlLCBtX291dC5pbnQxNik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZUeXBl
ID0gbV9vdXQucmVmMTY7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICAgICAgY2FzZSA0OgotICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmUz
MihpbnRWYWx1ZSwgcG9pbnRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvU3Rv
cmUgPSBpbnRWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlR5cGUgPSBtX291dC5y
ZWYzMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSAv
KiAhaXNJbnQodHlwZSkgKi8geworICAgICAgICAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBs
b3dEb3VibGUoY2hpbGQzKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUZsb2F0MzI6CisgICAgICAgICAgICAgICAgICAg
ICAgICB2YWx1ZVRvU3RvcmUgPSBtX291dC5mcENhc3QodmFsdWUsIG1fb3V0LmZsb2F0VHlwZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICByZWZUeXBlID0gbV9vdXQucmVmRmxvYXQ7CisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBl
RmxvYXQ2NDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9TdG9yZSA9IHZhbHVlOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZkRvdWJsZTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBBU1NFUlQoaXNGbG9hdCh0eXBlKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKGNoaWxkMyk7Ci0gICAgICAgICAg
ICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBUeXBlRmxvYXQzMjoK
LSAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmVGbG9hdChtX291dC5mcENhc3QodmFsdWUs
IG1fb3V0LmZsb2F0VHlwZSksIHBvaW50ZXIpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICBjYXNlIFR5cGVGbG9hdDY0OgotICAgICAgICAgICAgICAgICAgICBt
X291dC5zdG9yZURvdWJsZSh2YWx1ZSwgcG9pbnRlcik7Ci0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgaWYgKG1fbm9kZS0+YXJy
YXlNb2RlKCkuaXNJbkJvdW5kcygpKQorICAgICAgICAgICAgICAgICAgICBtX291dC5zdG9yZSh2
YWx1ZVRvU3RvcmUsIHBvaW50ZXIsIHJlZlR5cGUpOworICAgICAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpc0luQm91bmRzID0gRlRMX05FV19CTE9D
SyhtX291dCwgKCJQdXRCeVZhbCB0eXBlZCBhcnJheSBpbiBib3VuZHMgY2FzZSIpKTsKKyAgICAg
ICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyht
X291dCwgKCJQdXRCeVZhbCB0eXBlZCBhcnJheSBjb250aW51YXRpb24iKSk7CisgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoaW5kZXgsIGxvd0ludDMyKGNoaWxkNSkp
LAorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWF0aW9uLCBpc0luQm91bmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3RO
ZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNJbkJvdW5kcywgY29udGludWF0aW9uKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9vdXQuc3RvcmUodmFsdWVUb1N0b3JlLCBwb2ludGVyLCByZWZUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0
aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMjA2
MCw2ICsyMzI5LDEwOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIo
bV9ub2RlLT5udW1Db25zdGFudHMoKSkpKTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxl
TmV3QXJyYXlXaXRoU2l6ZSgpCisgICAgeworICAgICAgICBMVmFsdWUgcHVibGljTGVuZ3RoID0g
bG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIAorICAgICAgICBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2RlLT5jb2Rl
T3JpZ2luKTsKKyAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmFy
cmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbigKKyAgICAgICAgICAg
IG1fbm9kZS0+aW5kZXhpbmdUeXBlKCkpOworICAgICAgICAKKyAgICAgICAgaWYgKCFnbG9iYWxP
YmplY3QtPmlzSGF2aW5nQUJhZFRpbWUoKSAmJiAhaGFzQXJyYXlTdG9yYWdlKG1fbm9kZS0+aW5k
ZXhpbmdUeXBlKCkpKSB7CisgICAgICAgICAgICBBU1NFUlQoCisgICAgICAgICAgICAgICAgaGFz
VW5kZWNpZGVkKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCisgICAgICAgICAgICAgICAgfHwg
aGFzSW50MzIoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkKKyAgICAgICAgICAgICAgICB8fCBo
YXNEb3VibGUoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkKKyAgICAgICAgICAgICAgICB8fCBo
YXNDb250aWd1b3VzKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpKTsKKworICAgICAgICAgICAg
TEJhc2ljQmxvY2sgZmFzdENhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0
aFNpemUgZmFzdCBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFyZ2VDYXNlID0g
RlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGxhcmdlIGNhc2UiKSk7Cisg
ICAgICAgICAgICBMQmFzaWNCbG9jayBmYWlsQ2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgi
TmV3QXJyYXlXaXRoU2l6ZSBmYWlsIGNhc2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBz
bG93Q2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBzbG93IGNh
c2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JM
T0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgY29udGludWF0aW9uIikpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICAgICAgbV9vdXQuYWJv
dmVPckVxdWFsKHB1YmxpY0xlbmd0aCwgbV9vdXQuY29uc3RJbnQzMihNSU5fU1BBUlNFX0FSUkFZ
X0lOREVYKSksCisgICAgICAgICAgICAgICAgbGFyZ2VDYXNlLCBmYXN0Q2FzZSk7CisKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZmFzdENhc2UsIGxh
cmdlQ2FzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFdlIGRvbid0IHJvdW5kIHVw
IHRvIEJBU0VfVkVDVE9SX0xFTiBmb3IgbmV3IEFycmF5KGJsYWgpLgorICAgICAgICAgICAgTFZh
bHVlIHZlY3Rvckxlbmd0aCA9IHB1YmxpY0xlbmd0aDsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgTFZhbHVlIHBheWxvYWRTaXplID0KKyAgICAgICAgICAgICAgICBtX291dC5zaGwobV9vdXQu
emVyb0V4dCh2ZWN0b3JMZW5ndGgsIG1fb3V0LmludFB0ciksIG1fb3V0LmNvbnN0SW50UHRyKDMp
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGJ1dHRlcmZseVNpemUgPSBtX291
dC5hZGQoCisgICAgICAgICAgICAgICAgcGF5bG9hZFNpemUsIG1fb3V0LmNvbnN0SW50UHRyKHNp
emVvZihJbmRleGluZ0hlYWRlcikpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVl
IGVuZE9mU3RvcmFnZSA9IGFsbG9jYXRlQmFzaWNTdG9yYWdlQW5kR2V0RW5kKGJ1dHRlcmZseVNp
emUsIGZhaWxDYXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGJ1dHRlcmZs
eSA9IG1fb3V0LnN1YihlbmRPZlN0b3JhZ2UsIHBheWxvYWRTaXplKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgTFZhbHVlIG9iamVjdCA9IGFsbG9jYXRlT2JqZWN0PEpTQXJyYXk+KAorICAg
ICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHN0cnVjdHVyZSksIGJ1dHRlcmZseSwgZmFp
bENhc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5zdG9yZTMyKHB1YmxpY0xl
bmd0aCwgYnV0dGVyZmx5LCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpOworICAgICAg
ICAgICAgbV9vdXQuc3RvcmUzMih2ZWN0b3JMZW5ndGgsIGJ1dHRlcmZseSwgbV9oZWFwcy5CdXR0
ZXJmbHlfdmVjdG9yTGVuZ3RoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGhhc0Rv
dWJsZShtX25vZGUtPmluZGV4aW5nVHlwZSgpKSkgeworICAgICAgICAgICAgICAgIExCYXNpY0Js
b2NrIGluaXRMb29wID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGRv
dWJsZSBpbml0IGxvb3AiKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgaW5pdERvbmUg
PSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgZG91YmxlIGluaXQgZG9u
ZSIpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBv
cmlnaW5hbEluZGV4ID0gbV9vdXQuYW5jaG9yKHZlY3Rvckxlbmd0aCk7CisgICAgICAgICAgICAg
ICAgVmFsdWVGcm9tQmxvY2sgb3JpZ2luYWxQb2ludGVyID0gbV9vdXQuYW5jaG9yKGJ1dHRlcmZs
eSk7CisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdFplcm8zMih2ZWN0b3JM
ZW5ndGgpLCBpbml0TG9vcCwgaW5pdERvbmUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGluaXRMYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGluaXRMb29w
LCBpbml0RG9uZSk7CisgICAgICAgICAgICAgICAgTFZhbHVlIGluZGV4ID0gbV9vdXQucGhpKG1f
b3V0LmludDMyLCBvcmlnaW5hbEluZGV4KTsKKyAgICAgICAgICAgICAgICBMVmFsdWUgcG9pbnRl
ciA9IG1fb3V0LnBoaShtX291dC5pbnRQdHIsIG9yaWdpbmFsUG9pbnRlcik7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmU2NCgKKyAgICAgICAgICAgICAgICAg
ICAgbV9vdXQuY29uc3RJbnQ2NChiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oUU5hTikpLAorICAgICAg
ICAgICAgICAgICAgICBUeXBlZFBvaW50ZXIobV9oZWFwcy5pbmRleGVkRG91YmxlUHJvcGVydGll
cy5hdEFueUluZGV4KCksIHBvaW50ZXIpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBMVmFsdWUgbmV4dEluZGV4ID0gbV9vdXQuc3ViKGluZGV4LCBtX291dC5pbnQzMk9uZSk7
CisgICAgICAgICAgICAgICAgYWRkSW5jb21pbmcoaW5kZXgsIG1fb3V0LmFuY2hvcihuZXh0SW5k
ZXgpKTsKKyAgICAgICAgICAgICAgICBhZGRJbmNvbWluZyhwb2ludGVyLCBtX291dC5hbmNob3Io
bV9vdXQuYWRkKHBvaW50ZXIsIG1fb3V0LmludFB0ckVpZ2h0KSkpOworICAgICAgICAgICAgICAg
IG1fb3V0LmJyYW5jaChtX291dC5ub3RaZXJvMzIobmV4dEluZGV4KSwgaW5pdExvb3AsIGluaXRE
b25lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhp
bml0RG9uZSwgaW5pdExhc3ROZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihvYmplY3Qp
OworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBtX291dC5hcHBlbmRUbyhsYXJnZUNhc2UsIGZhaWxDYXNlKTsKKyAgICAgICAg
ICAgIFZhbHVlRnJvbUJsb2NrIGxhcmdlU3RydWN0dXJlID0gbV9vdXQuYW5jaG9yKG1fb3V0LmNv
bnN0SW50UHRyKAorICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVG
b3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aEFycmF5U3RvcmFnZSkpKTsK
KyAgICAgICAgICAgIG1fb3V0Lmp1bXAoc2xvd0Nhc2UpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBtX291dC5hcHBlbmRUbyhmYWlsQ2FzZSwgc2xvd0Nhc2UpOworICAgICAgICAgICAgVmFs
dWVGcm9tQmxvY2sgZmFpbFN0cnVjdHVyZSA9IG1fb3V0LmFuY2hvcihtX291dC5jb25zdEludFB0
cihzdHJ1Y3R1cmUpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoc2xvd0Nhc2UpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9u
KTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVWYWx1ZSA9IG1fb3V0LnBoaSgKKyAgICAg
ICAgICAgICAgICBtX291dC5pbnRQdHIsIGxhcmdlU3RydWN0dXJlLCBmYWlsU3RydWN0dXJlKTsK
KyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Iodm1D
YWxsKAorICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25OZXdBcnJheVdp
dGhTaXplKSwKKyAgICAgICAgICAgICAgICBtX2NhbGxGcmFtZSwgc3RydWN0dXJlVmFsdWUsIHB1
YmxpY0xlbmd0aCkpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3RO
ZXh0KTsKKyAgICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKG1fb3V0LmludFB0ciwgZmFz
dFJlc3VsdCwgc2xvd1Jlc3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICBMVmFsdWUgc3RydWN0dXJlVmFsdWUgPSBtX291dC5zZWxlY3QoCisg
ICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwocHVibGljTGVuZ3RoLCBtX291dC5jb25zdElu
dDMyKE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50
UHRyKAorICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRl
eGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aEFycmF5U3RvcmFnZSkpLAorICAgICAg
ICAgICAgbV9vdXQuY29uc3RJbnRQdHIoc3RydWN0dXJlKSk7CisgICAgICAgIHNldEpTVmFsdWUo
dm1DYWxsKG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplKSwgbV9jYWxs
RnJhbWUsIHN0cnVjdHVyZVZhbHVlLCBwdWJsaWNMZW5ndGgpKTsKKyAgICB9CisgICAgCiAgICAg
dm9pZCBjb21waWxlQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoKQogICAgIHsKICAgICAgICAgU3Ry
dWN0dXJlVHJhbnNpdGlvbkRhdGEmIGRhdGEgPSBtX25vZGUtPnN0cnVjdHVyZVRyYW5zaXRpb25E
YXRhKCk7CkBAIC0yMTAyLDYgKzI0NzQsMTYwIEBAIHByaXZhdGU6CiAgICAgICAgIHNldFN0b3Jh
Z2UocmVzdWx0KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlVG9TdHJpbmcoKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgeworICAgICAg
ICBjYXNlIFN0cmluZ09iamVjdFVzZTogeworICAgICAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dD
ZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0
Rm9yQ2VsbChtX25vZGUtPmNoaWxkMSgpLCBjZWxsKTsKKyAgICAgICAgICAgIG1faW50ZXJwcmV0
ZXIuZmlsdGVyKG1fbm9kZS0+Y2hpbGQxKCksIFNwZWNTdHJpbmdPYmplY3QpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5K
U1dyYXBwZXJPYmplY3RfaW50ZXJuYWxWYWx1ZSkpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVz
ZTogeworICAgICAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9o
ZWFwcy5KU0NlbGxfc3RydWN0dXJlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2lj
QmxvY2sgbm90U3RyaW5nID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJUb1N0cmluZyBTdHJpbmdP
clN0cmluZ09iamVjdCBub3Qgc3RyaW5nIGNhc2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9j
ayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIFN0cmluZ09y
U3RyaW5nT2JqZWN0IGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
VmFsdWVGcm9tQmxvY2sgc2ltcGxlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGNlbGwpOworICAgICAg
ICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgIG1fb3V0LmVxdWFsKHN0cnVjdHVy
ZSwgbV9vdXQuY29uc3RJbnRQdHIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSwKKyAgICAg
ICAgICAgICAgICBjb250aW51YXRpb24sIG5vdFN0cmluZyk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90U3RyaW5nLCBj
b250aW51YXRpb24pOworICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yU3RydWN0
dXJlKG1fbm9kZS0+Y2hpbGQxKCksIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBWYWx1ZUZyb21C
bG9jayB1bmJveGVkUmVzdWx0ID0gbV9vdXQuYW5jaG9yKAorICAgICAgICAgICAgICAgIG1fb3V0
LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5KU1dyYXBwZXJPYmplY3RfaW50ZXJuYWxWYWx1ZSkpOwor
ICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAg
ICAgIHNldEpTVmFsdWUobV9vdXQucGhpKG1fb3V0LmludDY0LCBzaW1wbGVSZXN1bHQsIHVuYm94
ZWRSZXN1bHQpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9pbnRlcnByZXRlci5maWx0
ZXIobV9ub2RlLT5jaGlsZDEoKSwgU3BlY1N0cmluZyB8IFNwZWNTdHJpbmdPYmplY3QpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBD
ZWxsVXNlOgorICAgICAgICBjYXNlIFVudHlwZWRVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSB2
YWx1ZTsKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxs
VXNlKQorICAgICAgICAgICAgICAgIHZhbHVlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGxvd0pTVmFsdWUobV9u
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlz
Q2VsbCA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiVG9TdHJpbmcgQ2VsbFVzZS9VbnR5cGVkVXNl
IGlzIGNlbGwiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RTdHJpbmcgPSBGVExfTkVX
X0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIENlbGxVc2UvVW50eXBlZFVzZSBub3Qgc3RyaW5nIikp
OworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyht
X291dCwgKCJUb1N0cmluZyBDZWxsVXNlL1VudHlwZWRVc2UgY29udGludWF0aW9uIikpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgaXNDZWxsUHJlZGljYXRlOworICAgICAgICAg
ICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UpCisgICAgICAgICAg
ICAgICAgaXNDZWxsUHJlZGljYXRlID0gbV9vdXQuYm9vbGVhblRydWU7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgaXNDZWxsUHJlZGljYXRlID0gdGhpcy0+aXNDZWxsKHZhbHVl
KTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0NlbGxQcmVkaWNhdGUsIGlzQ2VsbCwgbm90
U3RyaW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQg
PSBtX291dC5hcHBlbmRUbyhpc0NlbGwsIG5vdFN0cmluZyk7CisgICAgICAgICAgICBWYWx1ZUZy
b21CbG9jayBzaW1wbGVSZXN1bHQgPSBtX291dC5hbmNob3IodmFsdWUpOworICAgICAgICAgICAg
TFZhbHVlIGlzU3RyaW5nUHJlZGljYXRlOworICAgICAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQx
KCktPnByZWRpY3Rpb24oKSAmIFNwZWNTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICBpc1N0cmlu
Z1ByZWRpY2F0ZSA9IG1fb3V0LmVxdWFsKAorICAgICAgICAgICAgICAgICAgICBtX291dC5sb2Fk
UHRyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUpLAorICAgICAgICAgICAgICAgICAg
ICBtX291dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgaXNTdHJpbmdQcmVkaWNhdGUgPSBtX291dC5i
b29sZWFuRmFsc2U7CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNTdHJpbmdQcmVkaWNhdGUs
IGNvbnRpbnVhdGlvbiwgbm90U3RyaW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8obm90U3RyaW5nLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgTFZhbHVl
IG9wZXJhdGlvbjsKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9
PSBDZWxsVXNlKQorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IG1fb3V0Lm9wZXJhdGlvbihv
cGVyYXRpb25Ub1N0cmluZ09uQ2VsbCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgb3BlcmF0aW9uID0gbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvblRvU3RyaW5nKTsKKyAgICAg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIGNvbnZlcnRlZFJlc3VsdCA9IG1fb3V0LmFuY2hvcih2bUNh
bGwob3BlcmF0aW9uLCBtX2NhbGxGcmFtZSwgdmFsdWUpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1
bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0
LnBoaShtX291dC5pbnQ2NCwgc2ltcGxlUmVzdWx0LCBjb252ZXJ0ZWRSZXN1bHQpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCBjb21waWxlTWFrZVJvcGUo
KQorICAgIHsKKyAgICAgICAgTFZhbHVlIGtpZHNbM107CisgICAgICAgIHVuc2lnbmVkIG51bUtp
ZHM7CisgICAgICAgIGtpZHNbMF0gPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICBraWRzWzFdID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgaWYgKG1fbm9k
ZS0+Y2hpbGQzKCkpIHsKKyAgICAgICAgICAgIGtpZHNbMl0gPSBsb3dDZWxsKG1fbm9kZS0+Y2hp
bGQzKCkpOworICAgICAgICAgICAgbnVtS2lkcyA9IDM7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBraWRzWzJdID0gMDsKKyAgICAgICAgICAgIG51bUtpZHMgPSAyOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBMQmFzaWNCbG9jayBzbG93UGF0aCA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiTWFrZVJvcGUgc2xvdyBwYXRoIikpOworICAgICAgICBMQmFzaWNCbG9jayBjb250
aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk1ha2VSb3BlIGNvbnRpbnVhdGlvbiIp
KTsKKyAgICAgICAgCisgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0
TmV3QmxvY2tzQmVmb3JlKHNsb3dQYXRoKTsKKyAgICAgICAgCisgICAgICAgIE1hcmtlZEFsbG9j
YXRvciYgYWxsb2NhdG9yID0KKyAgICAgICAgICAgIHZtKCkuaGVhcC5hbGxvY2F0b3JGb3JPYmpl
Y3RXaXRoSW1tb3J0YWxTdHJ1Y3R1cmVEZXN0cnVjdG9yKHNpemVvZihKU1JvcGVTdHJpbmcpKTsK
KyAgICAgICAgCisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBhbGxvY2F0ZUNlbGwoCisgICAgICAg
ICAgICBtX291dC5jb25zdEludFB0cigmYWxsb2NhdG9yKSwKKyAgICAgICAgICAgIG1fb3V0LmNv
bnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJlLmdldCgpKSwKKyAgICAgICAgICAgIHNsb3dQ
YXRoKTsKKyAgICAgICAgCisgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmludFB0clplcm8s
IHJlc3VsdCwgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBudW1LaWRzOyArK2kpCisgICAgICAgICAgICBtX291dC5zdG9yZVB0cihraWRz
W2ldLCByZXN1bHQsIG1faGVhcHMuSlNSb3BlU3RyaW5nX2ZpYmVyc1tpXSk7CisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IG51bUtpZHM7IGkgPCBKU1JvcGVTdHJpbmc6OnNfbWF4SW50ZXJuYWxS
b3BlTGVuZ3RoOyArK2kpCisgICAgICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5pbnRQdHJa
ZXJvLCByZXN1bHQsIG1faGVhcHMuSlNSb3BlU3RyaW5nX2ZpYmVyc1tpXSk7CisgICAgICAgIExW
YWx1ZSBmbGFncyA9IG1fb3V0LmxvYWQzMihraWRzWzBdLCBtX2hlYXBzLkpTU3RyaW5nX2ZsYWdz
KTsKKyAgICAgICAgTFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMihraWRzWzBdLCBtX2hlYXBz
LkpTU3RyaW5nX2xlbmd0aCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBudW1L
aWRzOyArK2kpIHsKKyAgICAgICAgICAgIGZsYWdzID0gbV9vdXQuYml0QW5kKGZsYWdzLCBtX291
dC5sb2FkMzIoa2lkc1tpXSwgbV9oZWFwcy5KU1N0cmluZ19mbGFncykpOworICAgICAgICAgICAg
bGVuZ3RoID0gbV9vdXQuYWRkKGxlbmd0aCwgbV9vdXQubG9hZDMyKGtpZHNbaV0sIG1faGVhcHMu
SlNTdHJpbmdfbGVuZ3RoKSk7CisgICAgICAgIH0KKyAgICAgICAgbV9vdXQuc3RvcmUzMigKKyAg
ICAgICAgICAgIG1fb3V0LmJpdEFuZChtX291dC5jb25zdEludDMyKEpTU3RyaW5nOjpJczhCaXQp
LCBmbGFncyksCisgICAgICAgICAgICByZXN1bHQsIG1faGVhcHMuSlNTdHJpbmdfZmxhZ3MpOwor
ICAgICAgICBtX291dC5zdG9yZTMyKGxlbmd0aCwgcmVzdWx0LCBtX2hlYXBzLkpTU3RyaW5nX2xl
bmd0aCk7CisgICAgICAgIAorICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9v
dXQuYW5jaG9yKHJlc3VsdCk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAg
ICAgICAgCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dQYXRoLCBjb250aW51YXRpb24pOwor
ICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0OworICAgICAgICBzd2l0Y2ggKG51bUtp
ZHMpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgc2xvd1Jlc3VsdCA9IG1fb3V0LmFu
Y2hvcih2bUNhbGwoCisgICAgICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbk1h
a2VSb3BlMiksIG1fY2FsbEZyYW1lLCBraWRzWzBdLCBraWRzWzFdKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgc2xvd1Jlc3VsdCA9IG1fb3V0LmFu
Y2hvcih2bUNhbGwoCisgICAgICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbk1h
a2VSb3BlMyksIG1fY2FsbEZyYW1lLCBraWRzWzBdLCBraWRzWzFdLCBraWRzWzJdKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgIAorICAgICAgICBtX291dC5hcHBl
bmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5w
aGkobV9vdXQuaW50NjQsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpKTsKKyAgICB9CisgICAgCiAg
ICAgdm9pZCBjb21waWxlU3RyaW5nQ2hhckF0KCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBiYXNl
ID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKQEAgLTIxMTQsNyArMjY0MCw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgbV9v
dXQuYWJvdmVPckVxdWFsKAotICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIoYmFz
ZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpKSwKKyAgICAgICAgICAgICAgICBpbmRleCwgbV9v
dXQubG9hZDMyTm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpKSwKICAg
ICAgICAgICAgIHNsb3dQYXRoLCBmYXN0UGF0aCk7CiAgICAgICAgICAgICAKICAgICAgICAgTEJh
c2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhmYXN0UGF0aCwgc2xvd1BhdGgpOwpA
QCAtMjIxMCw3ICsyNzM2LDggQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIHNwZWN1bGF0
ZSgKICAgICAgICAgICAgIFVuY291bnRhYmxlLCBub1ZhbHVlKCksIDAsCi0gICAgICAgICAgICBt
X291dC5hYm92ZU9yRXF1YWwoaW5kZXgsIG1fb3V0LmxvYWQzMihiYXNlLCBtX2hlYXBzLkpTU3Ry
aW5nX2xlbmd0aCkpKTsKKyAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKKyAgICAgICAg
ICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFwcy5KU1N0
cmluZ19sZW5ndGgpKSk7CiAgICAgICAgIAogICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1f
b3V0LmxvYWRQdHIoYmFzZSwgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7CiAgICAgICAgIApAQCAt
MjM0NSw2ICsyODcyLDE2IEBAIHByaXZhdGU6CiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRp
bnVhdGlvbiwgbGFzdE5leHQpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVHZXRDYWxs
ZWUoKQorICAgIHsKKyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkUHRyKGFkZHJlc3NGb3Io
SlNTdGFjazo6Q2FsbGVlKSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGNvbXBpbGVHZXRTY29w
ZSgpCisgICAgeworICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWRQdHIobG93Q2VsbChtX25v
ZGUtPmNoaWxkMSgpKSwgbV9oZWFwcy5KU0Z1bmN0aW9uX3Njb3BlKSk7CisgICAgfQorICAgIAog
ICAgIHZvaWQgY29tcGlsZUdldE15U2NvcGUoKQogICAgIHsKICAgICAgICAgc2V0SlNWYWx1ZSht
X291dC5sb2FkUHRyKGFkZHJlc3NGb3IoCkBAIC0yNDg4LDM1ICszMDI1LDM3IEBAIHByaXZhdGU6
CiAgICAgCiAgICAgdm9pZCBjb21waWxlQ2FsbE9yQ29uc3RydWN0KCkKICAgICB7Ci0gICAgICAg
IC8vIEZJWE1FOiBUaGlzIGlzIHVuYWNjZXB0YWJseSBzbG93LgotICAgICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIxCisgICAgICAgIGludCBkdW1t
eVRoaXNBcmd1bWVudCA9IG1fbm9kZS0+b3AoKSA9PSBDYWxsID8gMCA6IDE7CisgICAgICAgIGlu
dCBudW1QYXNzZWRBcmdzID0gbV9ub2RlLT5udW1DaGlsZHJlbigpIC0gMTsKKyAgICAgICAgaW50
IG51bUFyZ3MgPSBudW1QYXNzZWRBcmdzICsgZHVtbXlUaGlzQXJndW1lbnQ7CiAgICAgICAgIAot
ICAgICAgICBKX0pJVE9wZXJhdGlvbl9FIGZ1bmN0aW9uID0KLSAgICAgICAgICAgIG1fbm9kZS0+
b3AoKSA9PSBDYWxsID8gb3BlcmF0aW9uRlRMQ2FsbCA6IG9wZXJhdGlvbkZUTENvbnN0cnVjdDsK
KyAgICAgICAgTFZhbHVlIGNhbGxlZSA9IGxvd0pTVmFsdWUobV9ncmFwaC52YXJBcmdDaGlsZCht
X25vZGUsIDApKTsKICAgICAgICAgCi0gICAgICAgIGludCBkdW1teVRoaXNBcmd1bWVudCA9IG1f
bm9kZS0+b3AoKSA9PSBDYWxsID8gMCA6IDE7CisgICAgICAgIHVuc2lnbmVkIHN0YWNrbWFwSUQg
PSBtX3N0YWNrbWFwSURzKys7CiAgICAgICAgIAotICAgICAgICBpbnQgbnVtUGFzc2VkQXJncyA9
IG1fbm9kZS0+bnVtQ2hpbGRyZW4oKSAtIDE7CisgICAgICAgIFZlY3RvcjxMVmFsdWU+IGFyZ3Vt
ZW50czsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDY0KHN0YWNrbWFw
SUQpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDMyKHNpemVPZkNh
bGwoKSkpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGNvbnN0TnVsbChtX291dC5yZWY4KSk7
CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQzMigxICsgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplICsgbnVt
QXJncykpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGNhbGxlZSk7IC8vIGNhbGxlZSAtPiAl
cmF4CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoZ2V0VW5kZWYobV9vdXQuaW50NjQpKTsgLy8g
Y29kZSBibG9jaworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGdldFVuZGVmKG1fb3V0LmludDY0
KSk7IC8vIHNjb3BlIGNoYWluCisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoY2FsbGVlKTsgLy8g
Y2FsbGVlIC0+IHN0YWNrCisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQ2
NChudW1BcmdzKSk7IC8vIGFyZ3VtZW50IGNvdW50IGFuZCB6ZXJvcyBmb3IgdGhlIHRhZworICAg
ICAgICBpZiAoZHVtbXlUaGlzQXJndW1lbnQpCisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5k
KGdldFVuZGVmKG1fb3V0LmludDY0KSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVt
UGFzc2VkQXJnczsgKytpKQorICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChsb3dKU1ZhbHVl
KG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxICsgaSkpKTsKICAgICAgICAgCi0gICAgICAg
IExWYWx1ZSBjYWxsZWVGcmFtZSA9IG1fb3V0LmFkZCgKLSAgICAgICAgICAgIG1fY2FsbEZyYW1l
LAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIoc2l6ZW9mKFJlZ2lzdGVyKSAqIHZpcnR1
YWxSZWdpc3RlckZvckxvY2FsKG1fZ3JhcGguZnJhbWVSZWdpc3RlckNvdW50KCkpLm9mZnNldCgp
KSk7CisgICAgICAgIGNhbGxQcmVmbGlnaHQoKTsKICAgICAgICAgCi0gICAgICAgIG1fb3V0LnN0
b3JlMzIoCi0gICAgICAgICAgICBtX291dC5jb25zdEludDMyKG51bVBhc3NlZEFyZ3MgKyBkdW1t
eVRoaXNBcmd1bWVudCksCi0gICAgICAgICAgICBwYXlsb2FkRm9yKGNhbGxlZUZyYW1lLCBKU1N0
YWNrOjpBcmd1bWVudENvdW50KSk7Ci0gICAgICAgIG1fb3V0LnN0b3JlNjQobV9jYWxsRnJhbWUs
IGNhbGxlZUZyYW1lLCBtX2hlYXBzLkNhbGxGcmFtZV9jYWxsZXJGcmFtZSk7Ci0gICAgICAgIG1f
b3V0LnN0b3JlNjQoCi0gICAgICAgICAgICBsb3dKU1ZhbHVlKG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bV9ub2RlLCAwKSksCi0gICAgICAgICAgICBhZGRyZXNzRm9yKGNhbGxlZUZyYW1lLCBKU1N0YWNr
OjpDYWxsZWUpKTsKKyAgICAgICAgTFZhbHVlIGNhbGwgPSBtX291dC5jYWxsKG1fb3V0LnBhdGNo
cG9pbnRJbnQ2NEludHJpbnNpYygpLCBhcmd1bWVudHMpOworICAgICAgICBzZXRJbnN0cnVjdGlv
bkNhbGxpbmdDb252ZW50aW9uKGNhbGwsIExMVk1XZWJLaXRKU0NhbGxDb252KTsKICAgICAgICAg
Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUGFzc2VkQXJnczsgKytpKSB7Ci0gICAg
ICAgICAgICBtX291dC5zdG9yZTY0KAotICAgICAgICAgICAgICAgIGxvd0pTVmFsdWUobV9ncmFw
aC52YXJBcmdDaGlsZChtX25vZGUsIDEgKyBpKSksCi0gICAgICAgICAgICAgICAgYWRkcmVzc0Zv
cihjYWxsZWVGcmFtZSwgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoaSArIGR1bW15VGhpc0Fy
Z3VtZW50KS5vZmZzZXQoKSkpOwotICAgICAgICB9CisgICAgICAgIG1fZnRsU3RhdGUuanNDYWxs
cy5hcHBlbmQoSlNDYWxsKHN0YWNrbWFwSUQsIG1fbm9kZSkpOwogICAgICAgICAKLSAgICAgICAg
c2V0SlNWYWx1ZSh2bUNhbGwobV9vdXQub3BlcmF0aW9uKGZ1bmN0aW9uKSwgY2FsbGVlRnJhbWUp
KTsKKyAgICAgICAgc2V0SlNWYWx1ZShjYWxsKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBjb21w
aWxlSnVtcCgpCkBAIC0yNjI3LDcgKzMxNjYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgbV9vdXQubm90RXF1YWwo
Ci0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMihzdHJpbmdWYWx1ZSwgbV9oZWFwcy5K
U1N0cmluZ19sZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzJOb25OZWdh
dGl2ZShzdHJpbmdWYWx1ZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpLAogICAgICAgICAgICAg
ICAgICAgICBtX291dC5pbnQzMk9uZSksCiAgICAgICAgICAgICAgICAgbG93QmxvY2soZGF0YS0+
ZmFsbFRocm91Z2gpLCBsZW5ndGhJczEpOwogICAgICAgICAgICAgCkBAIC0yNzA4LDYgKzMyNDcs
MjIgQEAgcHJpdmF0ZToKICAgICAgICAgaW5mby5tX2lzSW52YWxpZGF0aW9uUG9pbnQgPSB0cnVl
OwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVDaGVja0FyZ3VtZW50c05vdENyZWF0ZWQo
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFpc0VtcHR5U3BlY3VsYXRpb24oCisgICAgICAgICAg
ICBtX3N0YXRlLnZhcmlhYmxlcygpLm9wZXJhbmQoCisgICAgICAgICAgICAgICAgbV9ncmFwaC5h
cmd1bWVudHNSZWdpc3RlckZvcihtX25vZGUtPmNvZGVPcmlnaW4pKS5tX3R5cGUpKTsKKyAgICAg
ICAgCisgICAgICAgIFZpcnR1YWxSZWdpc3RlciByZWcgPSBtX2dyYXBoLm1hY2hpbmVBcmd1bWVu
dHNSZWdpc3RlckZvcihtX25vZGUtPmNvZGVPcmlnaW4pOworICAgICAgICBzcGVjdWxhdGUoQXJn
dW1lbnRzRXNjYXBlZCwgbm9WYWx1ZSgpLCAwLCBtX291dC5ub3RaZXJvNjQobV9vdXQubG9hZDY0
KGFkZHJlc3NGb3IocmVnKSkpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBjb21waWxlQ291bnRF
eGVjdXRpb24oKQorICAgIHsKKyAgICAgICAgVHlwZWRQb2ludGVyIGNvdW50ZXIgPSBtX291dC5h
YnNvbHV0ZShtX25vZGUtPmV4ZWN1dGlvbkNvdW50ZXIoKS0+YWRkcmVzcygpKTsKKyAgICAgICAg
bV9vdXQuc3RvcmU2NChtX291dC5hZGQobV9vdXQubG9hZDY0KGNvdW50ZXIpLCBtX291dC5jb25z
dEludDY0KDEpKSwgY291bnRlcik7CisgICAgfQorICAgIAogICAgIFR5cGVkUG9pbnRlciBiYXNl
SW5kZXgoSW5kZXhlZEFic3RyYWN0SGVhcCYgaGVhcCwgTFZhbHVlIHN0b3JhZ2UsIExWYWx1ZSBp
bmRleCwgRWRnZSBlZGdlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb3V0LmJhc2VJbmRleCgK
QEAgLTI5MjQsNyArMzQ3OSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBpZiAoSlNBcnJh
eUJ1ZmZlclZpZXcqIHZpZXcgPSBtX2dyYXBoLnRyeUdldEZvbGRhYmxlVmlldyhiYXNlRWRnZS5u
b2RlKCksIGFycmF5TW9kZSkpCiAgICAgICAgICAgICByZXR1cm4gbV9vdXQuY29uc3RJbnQzMih2
aWV3LT5sZW5ndGgoKSk7Ci0gICAgICAgIHJldHVybiBtX291dC5sb2FkMzIoYmFzZSwgbV9oZWFw
cy5KU0FycmF5QnVmZmVyVmlld19sZW5ndGgpOworICAgICAgICByZXR1cm4gbV9vdXQubG9hZDMy
Tm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFwcy5KU0FycmF5QnVmZmVyVmlld19sZW5ndGgpOwogICAg
IH0KICAgICAKICAgICBMVmFsdWUgdHlwZWRBcnJheUxlbmd0aChFZGdlIGJhc2VFZGdlLCBBcnJh
eU1vZGUgYXJyYXlNb2RlKQpAQCAtMjk0OCw3ICszNTAzLDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICAgICAgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKSk7CiAgICAgICAgIGNhc2UgU3Ry
aW5nVXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUgc3RyaW5nVmFsdWUgPSBsb3dTdHJpbmcobV9u
b2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgbGVuZ3RoID0gbV9vdXQubG9hZDMy
KHN0cmluZ1ZhbHVlLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCk7CisgICAgICAgICAgICBMVmFs
dWUgbGVuZ3RoID0gbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RyaW5nVmFsdWUsIG1faGVhcHMu
SlNTdHJpbmdfbGVuZ3RoKTsKICAgICAgICAgICAgIHJldHVybiBtX291dC5ub3RFcXVhbChsZW5n
dGgsIG1fb3V0LmludDMyWmVybyk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBVbnR5cGVkVXNl
OiB7CkBAIC0zMDgyLDcgKzM2MzcsNyBAQCBwcml2YXRlOgogICAgICAgICBMQmFzaWNCbG9jayBj
b250aW51YXRpb24pCiAgICAgewogICAgICAgICBMVmFsdWUgaXNOb3RJbkJvdW5kcyA9IG1fb3V0
LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIoc3RvcmFnZSwg
bV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSk7CisgICAgICAgICAgICBpbmRleCwgbV9v
dXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVu
Z3RoKSk7CiAgICAgICAgIGlmICghbV9ub2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzKCkpIHsK
ICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdEluQm91bmRzQ2FzZSA9CiAgICAgICAgICAgICAg
ICAgRlRMX05FV19CTE9DSyhtX291dCwgKCJQdXRCeVZhbCBub3QgaW4gYm91bmRzIikpOwpAQCAt
MzA5NCw3ICszNjQ5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3RO
ZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90SW5Cb3VuZHNDYXNlLCBwZXJmb3JtU3RvcmUpOwogICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIGlzT3V0T2ZCb3VuZHMgPSBtX291dC5h
Ym92ZU9yRXF1YWwoCi0gICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihzdG9yYWdl
LCBtX2hlYXBzLkJ1dHRlcmZseV92ZWN0b3JMZW5ndGgpKTsKKyAgICAgICAgICAgICAgICBpbmRl
eCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfdmVj
dG9yTGVuZ3RoKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIW1fbm9kZS0+
YXJyYXlNb2RlKCkuaXNPdXRPZkJvdW5kcygpKQogICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShP
dXRPZkJvdW5kcywgbm9WYWx1ZSgpLCAwLCBpc091dE9mQm91bmRzKTsKQEAgLTM3MTgsNiArNDI3
Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBLbm93bklu
dDMyVXNlOgogICAgICAgICBjYXNlIEtub3duTnVtYmVyVXNlOgorICAgICAgICBjYXNlIEtub3du
U3RyaW5nVXNlOgogICAgICAgICAgICAgQVNTRVJUKCFtX2ludGVycHJldGVyLm5lZWRzVHlwZUNo
ZWNrKGVkZ2UpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEludDMyVXNlOgpA
QCAtMzc0MSw2ICs0Mjk3LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgU3RyaW5nVXNlOgog
ICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5n
T2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU3RyaW5nT3JT
dHJpbmdPYmplY3RVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdPclN0cmluZ09iamVj
dChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJlYWxOdW1iZXJVc2U6
CiAgICAgICAgICAgICBzcGVjdWxhdGVSZWFsTnVtYmVyKGVkZ2UpOwogICAgICAgICAgICAgYnJl
YWs7CkBAIC0zNzUzLDYgKzQzMTUsOSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEJvb2xlYW5V
c2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVCb29sZWFuKGVkZ2UpOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgTm90Q2VsbFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZU5vdENl
bGwoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg
ICAgIGRhdGFMb2coIlVuc3VwcG9ydGVkIHNwZWN1bGF0aW9uIHVzZSBraW5kOiAiLCBlZGdlLnVz
ZUtpbmQoKSwgIlxuIik7CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtMzkyOCw2ICs0NDkzLDU1IEBAIHByaXZhdGU6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmlu
ZyhlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKICAgICB9CiAgICAgCisgICAgdm9pZCBzcGVjdWxhdGVT
dHJpbmdPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2ludGVycHJldGVy
Lm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmdPYmplY3QpKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yQ2VsbChlZGdl
LCBsb3dDZWxsKGVkZ2UpKTsKKyAgICAgICAgbV9pbnRlcnByZXRlci5maWx0ZXIoZWRnZSwgU3Bl
Y1N0cmluZ09iamVjdCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JT
dHJpbmdPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2ludGVycHJldGVy
Lm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2JqZWN0KSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIExCYXNpY0Jsb2NrIG5vdFN0cmlu
ZyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3BlY3VsYXRlIFN0cmluZ09yU3RyaW5nT2JqZWN0
IG5vdCBzdHJpbmcgY2FzZSIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0g
RlRMX05FV19CTE9DSyhtX291dCwgKCJTcGVjdWxhdGUgU3RyaW5nT3JTdHJpbmdPYmplY3QgY29u
dGludWF0aW9uIikpOworICAgICAgICAKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IG1fb3V0
LmxvYWRQdHIobG93Q2VsbChlZGdlKSwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlKTsKKyAgICAg
ICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgbV9vdXQuZXF1YWwoc3RydWN0dXJlLCBtX291
dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpLAorICAgICAgICAgICAg
Y29udGludWF0aW9uLCBub3RTdHJpbmcpOworICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sg
bGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RTdHJpbmcsIGNvbnRpbnVhdGlvbik7CisgICAg
ICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvclN0cnVjdHVyZShlZGdlLCBzdHJ1Y3R1cmUpOwor
ICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgIAorICAgICAgICBtX291
dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgCisgICAgICAgIG1f
aW50ZXJwcmV0ZXIuZmlsdGVyKGVkZ2UsIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2JqZWN0KTsK
KyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JDZWxsKEVkZ2Ug
ZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3RG
b3JTdHJ1Y3R1cmUoZWRnZSwgbV9vdXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1
Y3R1cmUpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JT
dHJ1Y3R1cmUoRWRnZSBlZGdlLCBMVmFsdWUgc3RydWN0dXJlKQorICAgIHsKKyAgICAgICAgU3Ry
dWN0dXJlKiBzdHJpbmdPYmplY3RTdHJ1Y3R1cmUgPQorICAgICAgICAgICAgbV9ncmFwaC5nbG9i
YWxPYmplY3RGb3IobV9ub2RlLT5jb2RlT3JpZ2luKS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCk7
CisgICAgICAgIAorICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKGVkZ2UpLm1fY3VycmVudEtu
b3duU3RydWN0dXJlLmlzU3Vic2V0T2YoU3RydWN0dXJlU2V0KHN0cmluZ09iamVjdFN0cnVjdHVy
ZSkpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgc3BlY3VsYXRlKAor
ICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0LCBub1ZhbHVlKCksIDAsCisgICAgICAgICAgICBt
X291dC5ub3RFcXVhbChzdHJ1Y3R1cmUsIHdlYWtQb2ludGVyKHN0cmluZ09iamVjdFN0cnVjdHVy
ZSkpKTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVOb25OdWxsT2JqZWN0KEVkZ2Ug
ZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewogICAgICAgICBMVmFsdWUgc3RydWN0dXJlID0gbV9v
dXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUpOwpAQCAtMzk3OSw2ICs0
NTkzLDE1IEBAIHByaXZhdGU6CiAgICAgICAgIGxvd0Jvb2xlYW4oZWRnZSk7CiAgICAgfQogICAg
IAorICAgIHZvaWQgc3BlY3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBp
ZiAoIW1faW50ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2soZWRnZSkpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIAorICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKGVkZ2UpOwor
ICAgICAgICB0eXBlQ2hlY2soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwgflNwZWNDZWxsLCBp
c0NlbGwodmFsdWUpKTsKKyAgICB9CisgICAgCiAgICAgYm9vbCBtYXNxdWVyYWRlc0FzVW5kZWZp
bmVkV2F0Y2hwb2ludElzU3RpbGxWYWxpZCgpCiAgICAgewogICAgICAgICByZXR1cm4gbV9ncmFw
aC5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludElzU3RpbGxWYWxpZChtX25vZGUtPmNv
ZGVPcmlnaW4pOwpAQCAtNDEwNiwxOCArNDcyOSwxMyBAQCBwcml2YXRlOgogICAgICAgICBpZiAo
bW9kZSA9PSBOb0V4Y2VwdGlvbnMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAg
ICAgICBMQmFzaWNCbG9jayBkaWRIYXZlRXhjZXB0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwg
KCJEaWQgaGF2ZSBleGNlcHRpb24iKSk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlv
biA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiRXhjZXB0aW9uIGNoZWNrIGNvbnRpbnVhdGlvbiIp
KTsKICAgICAgICAgCiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0Lm5v
dFplcm82NChtX291dC5sb2FkNjQobV9vdXQuYWJzb2x1dGUodm0oKS5hZGRyZXNzT2ZFeGNlcHRp
b24oKSkpKSwKLSAgICAgICAgICAgIGRpZEhhdmVFeGNlcHRpb24sIGNvbnRpbnVhdGlvbik7Cisg
ICAgICAgICAgICBtX2hhbmRsZUV4Y2VwdGlvbnMsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgIAot
ICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGRpZEhhdmVFeGNl
cHRpb24sIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgZXhjZXB0aW9u
cy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgotICAgICAg
ICBtX291dC5jcmFzaCgpOwotICAgICAgICAKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGlu
dWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbik7
CiAgICAgfQogICAgIAogICAgIExCYXNpY0Jsb2NrIGxvd0Jsb2NrKEJhc2ljQmxvY2sqIGJsb2Nr
KQpAQCAtNDEzMyw4ICs0NzUxLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBlbmRPU1JFeGl0
KAogICAgICAgICBFeGl0S2luZCBraW5kLCBGb3JtYXR0ZWRWYWx1ZSBsb3dWYWx1ZSwgTm9kZSog
aGlnaFZhbHVlLCBMVmFsdWUgZmFpbENvbmRpdGlvbikKICAgICB7Ci0gICAgICAgIGlmICh2ZXJi
b3NlQ29tcGlsYXRpb25FbmFibGVkKCkpCisgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25F
bmFibGVkKCkpIHsKICAgICAgICAgICAgIGRhdGFMb2coIiAgICBPU1IgZXhpdCAjIiwgbV9mdGxT
dGF0ZS5qaXRDb2RlLT5vc3JFeGl0LnNpemUoKSwgIiB3aXRoIGF2YWlsYWJpbGl0eTogIiwgbV9h
dmFpbGFiaWxpdHksICJcbiIpOworICAgICAgICAgICAgaWYgKCFtX2F2YWlsYWJsZVJlY292ZXJp
ZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICAgICAgQXZhaWxhYmxl
IHJlY292ZXJpZXM6ICIsIGxpc3REdW1wKG1fYXZhaWxhYmxlUmVjb3ZlcmllcyksICJcbiIpOwor
ICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKG1fZnRsU3RhdGUuaml0Q29kZS0+b3NyRXhpdC5z
aXplKCkgPT0gbV9mdGxTdGF0ZS5maW5hbGl6ZXItPm9zckV4aXQuc2l6ZSgpKTsKICAgICAgICAg
CkBAIC00MTc4LDcgKzQ3OTksNiBAQCBwcml2YXRlOgogICAgICAgICBPU1JFeGl0JiBleGl0LCBF
eGl0QXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIEZvcm1hdHRlZFZhbHVlIGxvd1ZhbHVlLAogICAg
ICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgewotICAgICAgICBhcmd1bWVudHMuYXBw
ZW5kKG1fY2FsbEZyYW1lKTsKICAgICAgICAgaWYgKCEhbG93VmFsdWUpCiAgICAgICAgICAgICBh
cmd1bWVudHMuYXBwZW5kKGxvd1ZhbHVlLnZhbHVlKCkpOwogICAgICAgICAKQEAgLTQyNDYsNyAr
NDg2Niw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBleGl0Lm1fc3RhY2ttYXBJRCA9IG1f
c3RhY2ttYXBJRHMrKzsKICAgICAgICAgYXJndW1lbnRzLmluc2VydCgwLCBtX291dC5jb25zdElu
dDMyKE1hY3JvQXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkpKTsKLSAgICAgICAg
YXJndW1lbnRzLmluc2VydCgwLCBtX291dC5jb25zdEludDMyKGV4aXQubV9zdGFja21hcElEKSk7
CisgICAgICAgIGFyZ3VtZW50cy5pbnNlcnQoMCwgbV9vdXQuY29uc3RJbnQ2NChleGl0Lm1fc3Rh
Y2ttYXBJRCkpOwogICAgICAgICAKICAgICAgICAgbV9vdXQuY2FsbChtX291dC5zdGFja21hcElu
dHJpbnNpYygpLCBhcmd1bWVudHMpOwogICAgIH0KQEAgLTQyNjAsNiArNDg4MCwxOSBAQCBwcml2
YXRlOgogICAgICAgICBpZiAodHJ5VG9TZXRDb25zdGFudEV4aXRBcmd1bWVudChleGl0LCBpbmRl
eCwgbm9kZSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAorICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbV9hdmFpbGFibGVSZWNvdmVyaWVzLnNpemUoKTsgKytpKSB7Cisg
ICAgICAgICAgICBBdmFpbGFibGVSZWNvdmVyeSByZWNvdmVyeSA9IG1fYXZhaWxhYmxlUmVjb3Zl
cmllc1tpXTsKKyAgICAgICAgICAgIGlmIChyZWNvdmVyeS5ub2RlKCkgIT0gbm9kZSkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZXhpdC5tX3Zh
bHVlc1tpbmRleF0gPSBFeGl0VmFsdWU6OnJlY292ZXJ5KAorICAgICAgICAgICAgICAgIHJlY292
ZXJ5Lm9wY29kZSgpLCBhcmd1bWVudHMuc2l6ZSgpLCBhcmd1bWVudHMuc2l6ZSgpICsgMSwKKyAg
ICAgICAgICAgICAgICByZWNvdmVyeS5mb3JtYXQoKSk7CisgICAgICAgICAgICBhcmd1bWVudHMu
YXBwZW5kKHJlY292ZXJ5LmxlZnQoKSk7CisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJl
Y292ZXJ5LnJpZ2h0KCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg
IAogICAgICAgICBMb3dlcmVkTm9kZVZhbHVlIHZhbHVlID0gbV9pbnQzMlZhbHVlcy5nZXQobm9k
ZSk7CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewogICAgICAgICAgICAgYWRkRXhpdEFy
Z3VtZW50KGV4aXQsIGFyZ3VtZW50cywgaW5kZXgsIFZhbHVlRm9ybWF0SW50MzIsIHZhbHVlLnZh
bHVlKCkpOwpAQCAtNDMyOSw2ICs0OTYyLDI5IEBAIHByaXZhdGU6CiAgICAgICAgIGFyZ3VtZW50
cy5hcHBlbmQodmFsdWUpOwogICAgIH0KICAgICAKKyAgICBib29sIGRvZXNLaWxsKEVkZ2UgZWRn
ZSkKKyAgICB7CisgICAgICAgIGlmIChlZGdlLmRvZXNOb3RLaWxsKCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAoZWRnZS0+aGFzQ29uc3RhbnQoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIHZvaWQgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgIE5vZGUq
IG5vZGUsIFJlY292ZXJ5T3Bjb2RlIG9wY29kZSwgTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCwg
VmFsdWVGb3JtYXQgZm9ybWF0KQorICAgIHsKKyAgICAgICAgbV9hdmFpbGFibGVSZWNvdmVyaWVz
LmFwcGVuZChBdmFpbGFibGVSZWNvdmVyeShub2RlLCBvcGNvZGUsIGxlZnQsIHJpZ2h0LCBmb3Jt
YXQpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAg
ICAgRWRnZSBlZGdlLCBSZWNvdmVyeU9wY29kZSBvcGNvZGUsIExWYWx1ZSBsZWZ0LCBMVmFsdWUg
cmlnaHQsIFZhbHVlRm9ybWF0IGZvcm1hdCkKKyAgICB7CisgICAgICAgIGFkZEF2YWlsYWJsZVJl
Y292ZXJ5KGVkZ2Uubm9kZSgpLCBvcGNvZGUsIGxlZnQsIHJpZ2h0LCBmb3JtYXQpOworICAgIH0K
KyAgICAKICAgICB2b2lkIHNldEludDMyKE5vZGUqIG5vZGUsIExWYWx1ZSB2YWx1ZSkKICAgICB7
CiAgICAgICAgIG1faW50MzJWYWx1ZXMuc2V0KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFsdWUs
IG1faGlnaEJsb2NrKSk7CkBAIC00NDMxLDM1ICs1MDg3LDM3IEBAIHByaXZhdGU6CiAgICAgfQog
ICAgIFR5cGVkUG9pbnRlciBwYXlsb2FkRm9yKExWYWx1ZSBiYXNlLCBpbnQgb3BlcmFuZCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZGRyZXNzRm9yKGJhc2UsIG9wZXJhbmQsIE9CSkVDVF9PRkZT
RVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpOworICAgICAgICBy
ZXR1cm4gYWRkcmVzc0ZvcihiYXNlLCBvcGVyYW5kLCBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CiAg
ICAgVHlwZWRQb2ludGVyIHRhZ0ZvcihMVmFsdWUgYmFzZSwgaW50IG9wZXJhbmQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihiYXNlLCBvcGVyYW5kLCBPQkpFQ1RfT0ZGU0VUT0Yo
RW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOworICAgICAgICByZXR1cm4gYWRk
cmVzc0ZvcihiYXNlLCBvcGVyYW5kLCBUYWdPZmZzZXQpOwogICAgIH0KLSAgICBUeXBlZFBvaW50
ZXIgYWRkcmVzc0ZvcihpbnQgb3BlcmFuZCkKKyAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0Zvcihp
bnQgb3BlcmFuZCwgcHRyZGlmZl90IG9mZnNldCA9IDApCiAgICAgewotICAgICAgICByZXR1cm4g
YWRkcmVzc0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZCk7CisgICAgICAgIHJldHVybiBhZGRyZXNz
Rm9yKFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKSwgb2Zmc2V0KTsKICAgICB9Ci0gICAgVHlwZWRQ
b2ludGVyIGFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQpCisgICAgVHlwZWRQb2lu
dGVyIGFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQsIHB0cmRpZmZfdCBvZmZzZXQg
PSAwKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IobV9jYWxsRnJhbWUsIG9wZXJh
bmQub2Zmc2V0KCkpOworICAgICAgICBpZiAob3BlcmFuZC5pc0xvY2FsKCkpCisgICAgICAgICAg
ICByZXR1cm4gYWRkcmVzc0ZvcihtX2NhcHR1cmVkLCBvcGVyYW5kLm9mZnNldCgpLCBvZmZzZXQp
OworICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZC5vZmZzZXQo
KSwgb2Zmc2V0KTsKICAgICB9CiAgICAgVHlwZWRQb2ludGVyIHBheWxvYWRGb3IoaW50IG9wZXJh
bmQpCiAgICAgewotICAgICAgICByZXR1cm4gcGF5bG9hZEZvcihtX2NhbGxGcmFtZSwgb3BlcmFu
ZCk7CisgICAgICAgIHJldHVybiBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKSk7
CiAgICAgfQogICAgIFR5cGVkUG9pbnRlciBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciBvcGVy
YW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHBheWxvYWRGb3IobV9jYWxsRnJhbWUsIG9wZXJh
bmQub2Zmc2V0KCkpOworICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihvcGVyYW5kLCBQYXlsb2Fk
T2Zmc2V0KTsKICAgICB9CiAgICAgVHlwZWRQb2ludGVyIHRhZ0ZvcihpbnQgb3BlcmFuZCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiB0YWdGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQpOworICAgICAg
ICByZXR1cm4gdGFnRm9yKFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKSk7CiAgICAgfQogICAgIFR5
cGVkUG9pbnRlciB0YWdGb3IoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQpCiAgICAgewotICAgICAg
ICByZXR1cm4gdGFnRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5kLm9mZnNldCgpKTsKKyAgICAgICAg
cmV0dXJuIGFkZHJlc3NGb3Iob3BlcmFuZCwgVGFnT2Zmc2V0KTsKICAgICB9CiAgICAgCiAgICAg
Vk0mIHZtKCkgeyByZXR1cm4gbV9ncmFwaC5tX3ZtOyB9CkBAIC00NDcxLDkgKzUxMjksMTEgQEAg
cHJpdmF0ZToKICAgICBPdXRwdXQgbV9vdXQ7CiAgICAgCiAgICAgTEJhc2ljQmxvY2sgbV9wcm9s
b2d1ZTsKKyAgICBMQmFzaWNCbG9jayBtX2hhbmRsZUV4Y2VwdGlvbnM7CiAgICAgSGFzaE1hcDxC
YXNpY0Jsb2NrKiwgTEJhc2ljQmxvY2s+IG1fYmxvY2tzOwogICAgIAogICAgIExWYWx1ZSBtX2Nh
bGxGcmFtZTsKKyAgICBMVmFsdWUgbV9jYXB0dXJlZDsKICAgICBMVmFsdWUgbV90YWdUeXBlTnVt
YmVyOwogICAgIExWYWx1ZSBtX3RhZ01hc2s7CiAgICAgCkBAIC00NDg5LDYgKzUxNDksOCBAQCBw
cml2YXRlOgogICAgIAogICAgIE9wZXJhbmRzPEF2YWlsYWJpbGl0eT4gbV9hdmFpbGFiaWxpdHk7
CiAgICAgCisgICAgVmVjdG9yPEF2YWlsYWJsZVJlY292ZXJ5LCAzPiBtX2F2YWlsYWJsZVJlY292
ZXJpZXM7CisgICAgCiAgICAgSW5QbGFjZUFic3RyYWN0U3RhdGUgbV9zdGF0ZTsKICAgICBBYnN0
cmFjdEludGVycHJldGVyPEluUGxhY2VBYnN0cmFjdFN0YXRlPiBtX2ludGVycHJldGVyOwogICAg
IEJhc2ljQmxvY2sqIG1faGlnaEJsb2NrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPU1JFbnRyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPU1JFbnRyeS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT1NSRW50cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBA
IHZvaWQqIHByZXBhcmVPU1JFbnRyeSgKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAg
IENvZGVCbG9jayogYmFzZWxpbmUgPSBkZmdDb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigpOwor
ICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlID0gZGZnQ29kZUJsb2NrLT5vd25lckV4ZWN1
dGFibGUoKTsKICAgICBERkc6OkpJVENvZGUqIGRmZ0NvZGUgPSBkZmdDb2RlQmxvY2stPmppdENv
ZGUoKS0+ZGZnKCk7CiAgICAgRm9yT1NSRW50cnlKSVRDb2RlKiBlbnRyeUNvZGUgPSBlbnRyeUNv
ZGVCbG9jay0+aml0Q29kZSgpLT5mdGxGb3JPU1JFbnRyeSgpOwogICAgIApAQCAtODAsNyArODEs
NyBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoCiAgICAgICAgIHNjcmF0Y2hbbG9jYWxdID0gSlNW
YWx1ZTo6ZW5jb2RlKHZhbHVlcy5sb2NhbChsb2NhbCkpOwogICAgIAogICAgIGludCBzdGFja0Zy
YW1lU2l6ZSA9IGVudHJ5Q29kZS0+Y29tbW9uLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1
dGlvbkFuZEV4aXQoKTsKLSAgICBpZiAoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4
ZWMtPnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKHN0YWNrRnJhbWVTaXplKS5v
ZmZzZXQoKV0pKSB7CisgICAgaWYgKCF2bS5pbnRlcnByZXRlci0+c3RhY2soKS5lbnN1cmVDYXBh
Y2l0eUZvcigmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoc3RhY2tG
cmFtZVNpemUgLSAxKS5vZmZzZXQoKV0pKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3Nl
T1NSKCkpCiAgICAgICAgICAgICBkYXRhTG9nKCIgICAgT1NSIGZhaWxlZCBiZWNhdXNlIHN0YWNr
IGdyb3d0aCBmYWlsZWQuXG4iKTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC04OCw3ICs4OSw5IEBA
IHZvaWQqIHByZXBhcmVPU1JFbnRyeSgKICAgICAKICAgICBleGVjLT5zZXRDb2RlQmxvY2soZW50
cnlDb2RlQmxvY2spOwogICAgIAotICAgIHZvaWQqIHJlc3VsdCA9IGVudHJ5Q29kZS0+YWRkcmVz
c0ZvckNhbGwoKS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgIHZvaWQqIHJlc3VsdCA9IGVudHJ5
Q29kZS0+YWRkcmVzc0ZvckNhbGwoCisgICAgICAgIHZtLCBleGVjdXRhYmxlLCBBcml0eUNoZWNr
Tm90UmVxdWlyZWQsCisgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpLmV4
ZWN1dGFibGVBZGRyZXNzKCk7CiAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAg
ICAgZGF0YUxvZygiICAgIEVudHJ5IHdpbGwgc3VjY2VlZCwgZ29pbmcgdG8gYWRkcmVzcyIsIFJh
d1BvaW50ZXIocmVzdWx0KSwgIlxuIik7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE9TUkV4aXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTE9TUkV4aXQuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPU1JFeGl0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsMTEgQEAg
c3RydWN0IE9TUkV4aXQgOiBwdWJsaWMgREZHOjpPU1JFeGl0QmFzZQogICAgIHVpbnQzMl90IG1f
c3RhY2ttYXBJRDsKICAgICAKICAgICBDb2RlTG9jYXRpb25KdW1wIGNvZGVMb2NhdGlvbkZvclJl
cGF0Y2goQ29kZUJsb2NrKiBmdGxDb2RlQmxvY2spIGNvbnN0OworICAgIAorICAgIGJvb2wgY29u
c2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9j
aykKKyAgICB7CisgICAgICAgIHJldHVybiBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0Zy
ZXF1ZW50RXhpdFNpdGUocHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRGcm9tRlRMKTsKKyAgICB9CiB9
OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM0LDggKzM0LDEwIEBACiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgogI2luY2x1
ZGUgIkZUTE9TUkV4aXQuaCIKICNpbmNsdWRlICJGVExTYXZlUmVzdG9yZS5oIgorI2luY2x1ZGUg
Ik1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3BlcmFuZHNJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyUHJlc2Vy
dmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewpAQCAtNjIsOSArNjQsMTAgQEAgc3RhdGlj
IHZvaWQgY29tcGlsZVN0dWIoCiAgICAgCiAgICAgLy8gV2UgbmVlZCBzY3JhdGNoIHNwYWNlIHRv
IHNhdmUgYWxsIHJlZ2lzdGVycyBhbmQgdG8gYnVpbGQgdXAgdGhlIEpTU3RhY2suCiAgICAgLy8g
VXNlIGEgc2NyYXRjaCBidWZmZXIgdG8gdHJhbnNmZXIgYWxsIHZhbHVlcy4KLSAgICBTY3JhdGNo
QnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0tPnNjcmF0Y2hCdWZmZXJGb3JTaXplKHNpemVvZihF
bmNvZGVkSlNWYWx1ZSkgKiBleGl0Lm1fdmFsdWVzLnNpemUoKSArIHJlcXVpcmVkU2NyYXRjaE1l
bW9yeVNpemVJbkJ5dGVzKCkpOworICAgIFNjcmF0Y2hCdWZmZXIqIHNjcmF0Y2hCdWZmZXIgPSB2
bS0+c2NyYXRjaEJ1ZmZlckZvclNpemUoc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSAqIGV4aXQubV92
YWx1ZXMuc2l6ZSgpICsgcmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSArIGppdENv
ZGUtPnVud2luZEluZm8ubV9yZWdpc3RlcnMuc2l6ZSgpICogc2l6ZW9mKHVpbnQ2NF90KSk7CiAg
ICAgRW5jb2RlZEpTVmFsdWUqIHNjcmF0Y2ggPSBzY3JhdGNoQnVmZmVyID8gc3RhdGljX2Nhc3Q8
RW5jb2RlZEpTVmFsdWUqPihzY3JhdGNoQnVmZmVyLT5kYXRhQnVmZmVyKCkpIDogMDsKICAgICBj
aGFyKiByZWdpc3RlclNjcmF0Y2ggPSBiaXR3aXNlX2Nhc3Q8Y2hhcio+KHNjcmF0Y2ggKyBleGl0
Lm1fdmFsdWVzLnNpemUoKSk7CisgICAgdWludDY0X3QqIHVud2luZFNjcmF0Y2ggPSBiaXR3aXNl
X2Nhc3Q8dWludDY0X3QqPihyZWdpc3RlclNjcmF0Y2ggKyByZXF1aXJlZFNjcmF0Y2hNZW1vcnlT
aXplSW5CeXRlcygpKTsKICAgICAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBzYXZlQWxsUmVnaXN0
ZXJzKCkgaGFzIGEgcGxhY2Ugb24gdG9wIG9mIHRoZSBzdGFjayB0byBzcGlsbCB0aGluZ3MuIFRo
YXQKICAgICAvLyBmdW5jdGlvbiBleHBlY3RzIHRvIGJlIGFibGUgdG8gdXNlIHRvcCBvZiBzdGFj
ayBmb3Igc2NyYXRjaCBtZW1vcnkuCkBAIC03NSwxOCArNzgsMjcgQEAgc3RhdGljIHZvaWQgY29t
cGlsZVN0dWIoCiAgICAgaml0LnBvcChHUFJJbmZvOjpyZWdUMCk7CiAgICAgaml0LnBvcChHUFJJ
bmZvOjpyZWdUMCk7CiAgICAgCisgICAgaWYgKHZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIgJiYg
Y29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5jb21waWxhdGlvbikgeworICAgICAg
ICBQcm9maWxlcjo6RGF0YWJhc2UmIGRhdGFiYXNlID0gKnZtLT5tX3BlckJ5dGVjb2RlUHJvZmls
ZXI7CisgICAgICAgIFByb2ZpbGVyOjpDb21waWxhdGlvbiogY29tcGlsYXRpb24gPSBjb2RlQmxv
Y2stPmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPmNvbXBpbGF0aW9uLmdldCgpOworICAgICAgICAK
KyAgICAgICAgUHJvZmlsZXI6Ok9TUkV4aXQqIHByb2ZpbGVyRXhpdCA9IGNvbXBpbGF0aW9uLT5h
ZGRPU1JFeGl0KAorICAgICAgICAgICAgZXhpdElELCBQcm9maWxlcjo6T3JpZ2luU3RhY2soZGF0
YWJhc2UsIGNvZGVCbG9jaywgZXhpdC5tX2NvZGVPcmlnaW4pLAorICAgICAgICAgICAgZXhpdC5t
X2tpbmQsIGlzV2F0Y2hwb2ludChleGl0Lm1fa2luZCkpOworICAgICAgICBqaXQuYWRkNjQoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNz
KHByb2ZpbGVyRXhpdC0+Y291bnRlckFkZHJlc3MoKSkpOworICAgIH0KKwogICAgIC8vIFRoZSBy
ZW1haW5pbmcgY29kZSBhc3N1bWVzIHRoYXQgU1AvRlAgYXJlIGluIHRoZSBzYW1lIHN0YXRlIHRo
YXQgdGhleSB3ZXJlIGluIHRoZSBGVEwncwogICAgIC8vIGNhbGwgZnJhbWUuCiAgICAgCiAgICAg
Ly8gR2V0IHRoZSBjYWxsIGZyYW1lIGFuZCB0YWcgdGhpbmdpZXMuCiAgICAgLy8gUmVzdG9yZSB0
aGUgZXhpdGluZyBmdW5jdGlvbidzIGNhbGxGcmFtZSB2YWx1ZSBpbnRvIGEgcmVnVDQKLSAgICBy
ZWNvcmQtPmxvY2F0aW9uc1swXS5yZXN0b3JlSW50byhqaXQsIGppdENvZGUtPnN0YWNrbWFwcywg
cmVnaXN0ZXJTY3JhdGNoLCBHUFJJbmZvOjpyZWdUNCk7CiAgICAgaml0Lm1vdmUoTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJl
clJlZ2lzdGVyKTsKICAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KFRh
Z01hc2spLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOwogICAgIAogICAgIC8vIERvIHNvbWUg
dmFsdWUgcHJvZmlsaW5nLgogICAgIGlmIChleGl0Lm1fcHJvZmlsZVZhbHVlRm9ybWF0ICE9IElu
dmFsaWRWYWx1ZUZvcm1hdCkgewotICAgICAgICByZWNvcmQtPmxvY2F0aW9uc1sxXS5yZXN0b3Jl
SW50byhqaXQsIGppdENvZGUtPnN0YWNrbWFwcywgcmVnaXN0ZXJTY3JhdGNoLCBHUFJJbmZvOjpy
ZWdUMCk7CisgICAgICAgIHJlY29yZC0+bG9jYXRpb25zWzBdLnJlc3RvcmVJbnRvKGppdCwgaml0
Q29kZS0+c3RhY2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86OnJlZ1QwKTsKICAgICAg
ICAgcmVib3hBY2NvcmRpbmdUb0Zvcm1hdCgKICAgICAgICAgICAgIGV4aXQubV9wcm9maWxlVmFs
dWVGb3JtYXQsIGppdCwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpy
ZWdUMik7CiAgICAgICAgIApAQCAtMTMwLDcgKzE0Miw0NSBAQCBzdGF0aWMgdm9pZCBjb21waWxl
U3R1YigKICAgICAgICAgY2FzZSBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDMyOgogICAgICAgICBj
YXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzSW50NTI6CiAgICAgICAgIGNhc2UgRXhpdFZhbHVlSW5K
U1N0YWNrQXNEb3VibGU6Ci0gICAgICAgICAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6
YWRkcmVzc0Zvcih2YWx1ZS52aXJ0dWFsUmVnaXN0ZXIoKSwgR1BSSW5mbzo6cmVnVDQpLCBHUFJJ
bmZvOjpyZWdUMCk7CisgICAgICAgICAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6YWRk
cmVzc0Zvcih2YWx1ZS52aXJ0dWFsUmVnaXN0ZXIoKSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgRXhpdFZhbHVlUmVjb3Zl
cnk6CisgICAgICAgICAgICByZWNvcmQtPmxvY2F0aW9uc1t2YWx1ZS5yaWdodFJlY292ZXJ5QXJn
dW1lbnQoKV0ucmVzdG9yZUludG8oCisgICAgICAgICAgICAgICAgaml0LCBqaXRDb2RlLT5zdGFj
a21hcHMsIHJlZ2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVnVDEpOworICAgICAgICAgICAgcmVj
b3JkLT5sb2NhdGlvbnNbdmFsdWUubGVmdFJlY292ZXJ5QXJndW1lbnQoKV0ucmVzdG9yZUludG8o
CisgICAgICAgICAgICAgICAgaml0LCBqaXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVyU2NyYXRj
aCwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS5yZWNvdmVyeU9w
Y29kZSgpKSB7CisgICAgICAgICAgICBjYXNlIEFkZFJlY292ZXJ5OgorICAgICAgICAgICAgICAg
IHN3aXRjaCAodmFsdWUucmVjb3ZlcnlGb3JtYXQoKSkgeworICAgICAgICAgICAgICAgIGNhc2Ug
VmFsdWVGb3JtYXRJbnQzMjoKKyAgICAgICAgICAgICAgICAgICAgaml0LmFkZDMyKEdQUkluZm86
OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIGNhc2UgVmFsdWVGb3JtYXRJbnQ1MjoKKyAgICAgICAgICAgICAgICAgICAg
aml0LmFkZDY0KEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgU3ViUmVjb3Zlcnk6CisgICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS5yZWNv
dmVyeUZvcm1hdCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZUZvcm1hdEludDMyOgor
ICAgICAgICAgICAgICAgICAgICBqaXQuc3ViMzIoR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJl
Z1QwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBW
YWx1ZUZvcm1hdEludDUyOgorICAgICAgICAgICAgICAgICAgICBqaXQuc3ViNjQoR1BSSW5mbzo6
cmVnVDEsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAK
ICAgICAgICAgZGVmYXVsdDoKQEAgLTE0MSw2ICsxOTEsMTM3IEBAIHN0YXRpYyB2b2lkIGNvbXBp
bGVTdHViKAogICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgc2NyYXRjaCArIGlu
ZGV4KTsKICAgICB9CiAgICAgCisgICAgLy8gSGVuY2Vmb3J0aCB3ZSBtYWtlIGl0IGxvb2sgbGlr
ZSB0aGUgZXhpdGluZyBmdW5jdGlvbiB3YXMgY2FsbGVkIHRocm91Z2ggYSByZWdpc3RlcgorICAg
IC8vIHByZXNlcnZhdGlvbiB3cmFwcGVyLiBUaGlzIGltcGxpZXMgdGhhdCBGUCBtdXN0IGJlIG51
ZGdlZCBkb3duIGJ5IGEgY2VydGFpbiBhbW91bnQuIFRoZW4KKyAgICAvLyB3ZSByZXN0b3JlIHRo
ZSB2YXJpb3VzIHRoaW5ncyBhY2NvcmRpbmcgdG8gZWl0aGVyIGV4aXQubV92YWx1ZXMgb3IgYnkg
Y29weWluZyBmcm9tIHRoZQorICAgIC8vIG9sZCBmcmFtZSwgYW5kIGZpbmFsbHkgd2Ugc2F2ZSB0
aGUgdmFyaW91cyBjYWxsZWUtc2F2ZSByZWdpc3RlcnMgaW50byB3aGVyZSB0aGUKKyAgICAvLyBy
ZXN0b3JhdGlvbiB0aHVuayB3b3VsZCByZXN0b3JlIHRoZW0gZnJvbS4KKyAgICAKKyAgICBwdHJk
aWZmX3Qgb2Zmc2V0ID0gcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKTsKKyAgICBSZWdpc3Rl
clNldCB0b1NhdmUgPSByZWdpc3RlcnNUb1ByZXNlcnZlKCk7CisgICAgCisgICAgLy8gQmVmb3Jl
IHdlIHN0YXJ0IG1lc3Npbmcgd2l0aCB0aGUgZnJhbWUsIHdlIG5lZWQgdG8gc2V0IGFzaWRlIGFu
eSByZWdpc3RlcnMgdGhhdCB0aGUKKyAgICAvLyBGVEwgY29kZSB3YXMgcHJlc2VydmluZy4KKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSBqaXRDb2RlLT51bndpbmRJbmZvLm1fcmVnaXN0ZXJzLnNpemUo
KTsgaS0tOykgeworICAgICAgICBSZWdpc3RlckF0T2Zmc2V0IGVudHJ5ID0gaml0Q29kZS0+dW53
aW5kSW5mby5tX3JlZ2lzdGVyc1tpXTsKKyAgICAgICAgaml0LmxvYWQ2NCgKKyAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdp
c3RlciwgZW50cnkub2Zmc2V0KCkpLAorICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDApOworICAg
ICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgdW53aW5kU2NyYXRjaCArIGkpOworICAg
IH0KKyAgICAKKyAgICBqaXQubG9hZDMyKENDYWxsSGVscGVyczo6cGF5bG9hZEZvcihKU1N0YWNr
OjpBcmd1bWVudENvdW50KSwgR1BSSW5mbzo6cmVnVDIpOworICAgIAorICAgIC8vIExldCdzIHNh
eSB0aGF0IHRoZSBGVEwgZnVuY3Rpb24gaGFkIGZhaWxlZCBpdHMgYXJpdHkgY2hlY2suIEluIHRo
YXQgY2FzZSwgdGhlIHN0YWNrIHdpbGwKKyAgICAvLyBjb250YWluIHNvbWUgZXh0cmEgc3R1ZmYu
CisgICAgLy8KKyAgICAvLyBGaXJzdCB3ZSBjb21wdXRlIHRoZSBwYWRkZWQgc3RhY2sgc3BhY2U6
CisgICAgLy8KKyAgICAvLyAgICAgcGFkZGVkU3RhY2tTcGFjZSA9IHJvdW5kVXAoY29kZUJsb2Nr
LT5udW1QYXJhbWV0ZXJzIC0gcmVnVDIgKyAxKQorICAgIC8vCisgICAgLy8gVGhlIHN0YWNrIHdp
bGwgaGF2ZSByZWdUMiArIENhbGxGcmFtZUhlYWRlclNpemUgc3R1ZmYsIGJ1dCBhYm92ZSBpdCB0
aGVyZSB3aWxsIGJlCisgICAgLy8gcGFkZGVkU3RhY2tTcGFjZSBndW5rIHVzZWQgYnkgdGhlIGFy
aXR5IGNoZWNrIGZhaWwgcmVzdG9yYXRpb24gdGh1bmsuIFdoZW4gdGhhdCBoYXBwZW5zCisgICAg
Ly8gd2Ugd2FudCB0byBtYWtlIHRoZSBzdGFjayBsb29rIGxpa2UgdGhpcywgZnJvbSBoaWdoZXIg
YWRkcmVzc2VzIGRvd246CisgICAgLy8KKyAgICAvLyAgICAgLSByZWdpc3RlciBwcmVzZXJ2YXRp
b24gcmV0dXJuIFBDCisgICAgLy8gICAgIC0gcHJlc2VydmVkIHJlZ2lzdGVycworICAgIC8vICAg
ICAtIGFyaXR5IGNoZWNrIGZhaWwgcmV0dXJuIFBDCisgICAgLy8gICAgIC0gYXJndW1lbnQgcGFk
ZGluZworICAgIC8vICAgICAtIGFjdHVhbCBhcmd1bWVudHMKKyAgICAvLyAgICAgLSBjYWxsIGZy
YW1lIGhlYWRlcgorICAgIC8vCisgICAgLy8gU28gdGhhdCB0aGUgYWN0dWFsIGNhbGwgZnJhbWUg
aGVhZGVyIGFwcGVhcnMgdG8gcmV0dXJuIHRvIHRoZSBhcml0eSBjaGVjayBmYWlsIHJldHVybgor
ICAgIC8vIFBDLCBhbmQgdGhhdCB0aGVuIHJldHVybnMgdG8gdGhlIHJlZ2lzdGVyIHByZXNlcnZh
dGlvbiB0aHVuay4gVGhlIGFyaXR5IGNoZWNrIHRodW5rIHRoYXQKKyAgICAvLyB3ZSByZXR1cm4g
dG8gd2lsbCBoYXZlIHRoZSBwYWRkaW5nIHNpemUgZW5jb2RlZCBpbnRvIGl0LiBJdCB3aWxsIHRo
ZW4ga25vdyB0byByZXR1cm4KKyAgICAvLyBpbnRvIHRoZSByZWdpc3RlciBwcmVzZXJ2YXRpb24g
dGh1bmssIHdoaWNoIHVzZXMgdGhlIGFyZ3VtZW50IGNvdW50IHRvIGZpZ3VyZSBvdXQgd2hlcmUK
KyAgICAvLyByZWdpc3RlcnMgYXJlIHByZXNlcnZlZC4KKworICAgIC8vIFRoaXMgY29kZSBhc3N1
bWVzIHRoYXQgd2UncmUgZGVhbGluZyB3aXRoIEZ1bmN0aW9uQ29kZS4KKyAgICBSRUxFQVNFX0FT
U0VSVChjb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKTsKKyAgICAKKyAgICBq
aXQuYWRkMzIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLWNvZGVCbG9j
ay0+bnVtUGFyYW1ldGVycygpKSwgR1BSSW5mbzo6cmVnVDIsCisgICAgICAgIEdQUkluZm86OnJl
Z1QzKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBhcml0eUludGFjdCA9IGppdC5icmFuY2hU
ZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIEdQUkluZm86OnJlZ1QzKTsKKyAgICBqaXQubmVn
MzIoR1BSSW5mbzo6cmVnVDMpOworICAgIGppdC5hZGQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKDEgKyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpIC0gMSksIEdQUkluZm86OnJlZ1Qz
KTsKKyAgICBqaXQuYW5kMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtc3RhY2tBbGln
bm1lbnRSZWdpc3RlcnMoKSksIEdQUkluZm86OnJlZ1QzKTsKKyAgICBqaXQuYWRkMzIoR1BSSW5m
bzo6cmVnVDMsIEdQUkluZm86OnJlZ1QyKTsKKyAgICBhcml0eUludGFjdC5saW5rKCZqaXQpOwor
CisgICAgLy8gRmlyc3Qgc2V0IHVwIFNQIHNvIHRoYXQgb3VyIGRhdGEgZG9lc24ndCBnZXQgY2xv
YmJlcmVkIGJ5IHNpZ25hbHMuCisgICAgaml0LmFkZFB0cigKKyAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMigKKyAgICAgICAgICAgIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZigK
KyAgICAgICAgICAgICAgICBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLAorICAgICAgICAgICAg
ICAgIC1yZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpIC0gZXhpdC5tX3ZhbHVlcy5udW1iZXJP
ZkxvY2FscygpICogc2l6ZW9mKFJlZ2lzdGVyKSAtIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKSksCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFj
cm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAKKyAgICBqaXQuc3ViUHRy
KAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHJlZ2lzdGVyUHJlc2VydmF0
aW9uT2Zmc2V0KCkpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0
ZXIpOworICAgIAorICAgIC8vIENvcHkgdGhlIG9sZCBmcmFtZSBkYXRhIGludG8gaXRzIG5ldyBs
b2NhdGlvbi4KKyAgICBqaXQuYWRkMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1N0
YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5tb3Zl
KE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOwor
ICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBsb29wID0gaml0LmxhYmVsKCk7CisgICAgaml0LnN1
YjMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMSksIEdQUkluZm86OnJlZ1QyKTsKKyAg
ICBqaXQubG9hZDY0KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QxLCBvZmZz
ZXQpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEdQ
UkluZm86OnJlZ1QxKTsKKyAgICBqaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuYnJhbmNoVGVz
dDMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMikubGlua1RvKGxvb3As
ICZqaXQpOworICAgIAorICAgIC8vIEF0IHRoaXMgcG9pbnQgcmVnVDEgcG9pbnRzIHRvIHdoZXJl
IHdlIHdvdWxkIHNhdmUgb3VyIHJlZ2lzdGVycy4gU2F2ZSB0aGVtIGhlcmUuCisgICAgcHRyZGlm
Zl90IGN1cnJlbnRPZmZzZXQgPSAwOworICAgIGZvciAoR1BSUmVnIGdwciA9IEFzc2VtYmx5SGVs
cGVyczo6Zmlyc3RSZWdpc3RlcigpOyBncHIgPD0gQXNzZW1ibHlIZWxwZXJzOjpsYXN0UmVnaXN0
ZXIoKTsgZ3ByID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihncHIgKyAxKSkgeworICAgICAgICBpZiAo
IXRvU2F2ZS5nZXQoZ3ByKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjdXJyZW50
T2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CisgICAgICAgIHVuc2lnbmVkIHVud2luZEluZGV4
ID0gaml0Q29kZS0+dW53aW5kSW5mby5pbmRleE9mKGdwcik7CisgICAgICAgIGlmICh1bndpbmRJ
bmRleCA9PSBVSU5UX01BWCkgeworICAgICAgICAgICAgLy8gVGhlIEZUTCBjb21waWxhdGlvbiBk
aWRuJ3QgcHJlc2VydmUgdGhpcyByZWdpc3Rlci4gVGhpcyBtZWFucyB0aGF0IGl0IGFsc28KKyAg
ICAgICAgICAgIC8vIGRpZG4ndCB1c2UgdGhlIHJlZ2lzdGVyLiBTbyBpdHMgdmFsdWUgYXQgdGhl
IGJlZ2lubmluZyBvZiBPU1IgZXhpdCBzaG91bGQgYmUKKyAgICAgICAgICAgIC8vIHByZXNlcnZl
ZCBieSB0aGUgdGh1bmsuIEx1Y2tpbHksIHdlIHNhdmVkIGFsbCByZWdpc3RlcnMgaW50byB0aGUg
cmVnaXN0ZXIKKyAgICAgICAgICAgIC8vIHNjcmF0Y2ggYnVmZmVyLCBzbyB3ZSBjYW4gcmVzdG9y
ZSB0aGVtIGZyb20gdGhlcmUuCisgICAgICAgICAgICBqaXQubG9hZDY0KHJlZ2lzdGVyU2NyYXRj
aCArIG9mZnNldE9mR1BSKGdwciksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIC8vIFRoZSBGVEwgY29tcGlsYXRpb24gcHJlc2VydmVkIHRoZSByZWdpc3Rl
ci4gSXRzIG5ldyB2YWx1ZSBpcyB0aGVyZWZvcmUKKyAgICAgICAgICAgIC8vIGlycmVsZXZhbnQs
IGJ1dCB3ZSBjYW4gZ2V0IHRoZSB2YWx1ZSB0aGF0IHdhcyBwcmVzZXJ2ZWQgYnkgdXNpbmcgdGhl
IHVud2luZAorICAgICAgICAgICAgLy8gZGF0YS4gV2UndmUgYWxyZWFkeSBjb3BpZWQgYWxsIHVu
d2luZC1hYmxlIHByZXNlcnZlZCByZWdpc3RlcnMgaW50byB0aGUgdW53aW5kCisgICAgICAgICAg
ICAvLyBzY3JhdGNoIGJ1ZmZlciwgc28gd2UgY2FuIGdldCBpdCBmcm9tIHRoZXJlLgorICAgICAg
ICAgICAgaml0LmxvYWQ2NCh1bndpbmRTY3JhdGNoICsgdW53aW5kSW5kZXgsIEdQUkluZm86OnJl
Z1QwKTsKKyAgICAgICAgfQorICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgQXNz
ZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QxLCBjdXJyZW50T2Zmc2V0KSk7Cisg
ICAgfQorICAgIAorICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2UgcmV0dXJuIGlu
dG8gdGhlIHJlZ2lzdGVyIHJlc3RvcmF0aW9uIHRodW5rLiBUaGlzIHdvcmtzCisgICAgLy8gZGlm
ZmVyZW50bHkgZGVwZW5kaW5nIG9uIHdoZXRoZXIgb3Igbm90IHdlIGhhZCBhcml0eSBpc3N1ZXMu
CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYXJpdHlJbnRhY3RGb3JSZXR1cm5QQyA9CisgICAg
ICAgIGppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIEdQUkluZm86OnJlZ1Qz
KTsKKyAgICAKKyAgICAvLyBUaGUgcmV0dXJuIFBDIGluIHRoZSBjYWxsIGZyYW1lIGhlYWRlciBw
b2ludHMgYXQgZXhhY3RseSB0aGUgcmlnaHQgYXJpdHkgcmVzdG9yYXRpb24KKyAgICAvLyB0aHVu
ay4gV2UgZG9uJ3Qgd2FudCB0byBjaGFuZ2UgdGhhdC4gQnV0IHRoZSBhcml0eSByZXN0b3JhdGlv
biB0aHVuaydzIGZyYW1lIGhhcyBhCisgICAgLy8gcmV0dXJuIFBDIGFuZCB3ZSB3YW50IHRvIHJl
cm91dGUgdGhhdCB0byBvdXIgcmVnaXN0ZXIgcmVzdG9yYXRpb24gdGh1bmsuIFRoZSBhcml0eQor
ICAgIC8vIHJlc3RvcmF0aW9uJ3MgcmV0dXJuIFBDIGp1c3QganVzdCBiZWxvdyByZWdUMSwgYW5k
IHRoZSByZWdpc3RlciByZXN0b3JhdGlvbidzIHJldHVybiBQQworICAgIC8vIGlzIHJpZ2h0IGF0
IHJlZ1QxLgorICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86
OnJlZ1QxLCAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSksIEdQUklu
Zm86OnJlZ1QwKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJl
Z1QxKTsKKyAgICBqaXQuc3RvcmVQdHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKHZtLT5nZXRDVElTdHViKHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvciku
Y29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhHUFJJbmZvOjpyZWdUMSwgLXN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lz
dGVyKSkpKTsKKyAgICAKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBhcml0eVJldHVyblBDUmVh
ZHkgPSBqaXQuanVtcCgpOworCisgICAgYXJpdHlJbnRhY3RGb3JSZXR1cm5QQy5saW5rKCZqaXQp
OworICAgIAorICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNz
ZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgp
KSwgR1BSSW5mbzo6cmVnVDApOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMCwgR1BS
SW5mbzo6cmVnVDEpOworICAgIGppdC5zdG9yZVB0cigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIodm0tPmdldENUSVN0dWIocmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2Vu
ZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSksCisgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgQ2FsbEZy
YW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CisgICAgCisgICAgYXJpdHlSZXR1cm5QQ1JlYWR5Lmxp
bmsoJmppdCk7CisgICAgCiAgICAgLy8gTm93IGdldCBzdGF0ZSBvdXQgb2YgdGhlIHNjcmF0Y2gg
YnVmZmVyIGFuZCBwbGFjZSBpdCBiYWNrIGludG8gdGhlIHN0YWNrLiBUaGlzIHBhcnQgZG9lcwog
ICAgIC8vIGFsbCByZWJveGluZy4KICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gZXhpdC5tX3Zh
bHVlcy5zaXplKCk7IGluZGV4LS07KSB7CkBAIC0xNTAsMjYgKzMzMSwxNiBAQCBzdGF0aWMgdm9p
ZCBjb21waWxlU3R1YigKICAgICAgICAgaml0LmxvYWQ2NChzY3JhdGNoICsgaW5kZXgsIEdQUklu
Zm86OnJlZ1QwKTsKICAgICAgICAgcmVib3hBY2NvcmRpbmdUb0Zvcm1hdCgKICAgICAgICAgICAg
IHZhbHVlLnZhbHVlRm9ybWF0KCksIGppdCwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1Qx
LCBHUFJJbmZvOjpyZWdUMik7Ci0gICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBB
c3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihv
cGVyYW5kKSwgR1BSSW5mbzo6cmVnVDQpKTsKKyAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6
cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVn
aXN0ZXI+KG9wZXJhbmQpKSk7CiAgICAgfQogICAgIAotICAgIC8vIFJlc3RvcmUgdGhlIG9sZCBz
dGFjayBwb2ludGVyIGFuZCB0aGVuIHB1dCByZWdUNCBpbnRvIGNhbGxGcmFtZVJlZ2lzdGVyLiBU
aGUgaWRlYSBpcwotICAgIC8vIHRoYXQgdGhlIEZUTCBjYWxsIGZyYW1lIGlzIHB1c2hlZCBvbnRv
IHRoZSBKUyBjYWxsIGZyYW1lIGFuZCB3ZSBjYW4gcmVjb3ZlciB0aGUgb2xkCi0gICAgLy8gdmFs
dWUgb2YgdGhlIHN0YWNrIHBvaW50ZXIgYnkgcG9wcGluZyB0aGUgRlRMIGNhbGwgZnJhbWUuIFdl
IGFscmVhZHkga25vdyB3aGF0IHRoZQotICAgIC8vIGZyYW1lIHBvaW50ZXIgaW4gdGhlIEpTIGNh
bGwgZnJhbWUgd2FzIGJlY2F1c2UgaXQgd291bGQgaGF2ZSBiZWVuIHBhc3NlZCBhcyBhbiBhcmd1
bWVudAotICAgIC8vIHRvIHRoZSBGVEwgY2FsbCBmcmFtZS4KLSAgICBqaXQubW92ZShNYWNyb0Fz
c2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50
ZXJSZWdpc3Rlcik7Ci0gICAgaml0LnBvcChHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICBqaXQu
cG9wKEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgIGppdC5tb3ZlKEdQUkluZm86OnJlZ1Q0LCBH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgCiAgICAgaGFuZGxlRXhpdENvdW50cyhq
aXQsIGV4aXQpOwogICAgIHJlaWZ5SW5saW5lZENhbGxGcmFtZXMoaml0LCBleGl0KTsKICAgICBh
ZGp1c3RBbmRKdW1wVG9UYXJnZXQoaml0LCBleGl0KTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBh
dGNoQnVmZmVyKCp2bSwgJmppdCwgY29kZUJsb2NrKTsKICAgICBleGl0Lm1fY29kZSA9IEZJTkFM
SVpFX0NPREVfSUYoCi0gICAgICAgIHNob3VsZFNob3dEaXNhc3NlbWJseSgpLAorICAgICAgICBz
aG91bGRTaG93RGlzYXNzZW1ibHkoKSB8fCBPcHRpb25zOjp2ZXJib3NlT1NSKCksCiAgICAgICAg
IHBhdGNoQnVmZmVyLAogICAgICAgICAoIkZUTCBPU1IgZXhpdCAjJXUgKCVzLCAlcykgZnJvbSAl
cywgd2l0aCBvcGVyYW5kcyA9ICVzLCBhbmQgcmVjb3JkID0gJXMiLAogICAgICAgICAgICAgZXhp
dElELCB0b0NTdHJpbmcoZXhpdC5tX2NvZGVPcmlnaW4pLmRhdGEoKSwKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg0LDcgKzE4NCwy
MyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gY2FsbChkb3VibGVBYnNJbnRyaW5z
aWMoKSwgdmFsdWUpOwogICAgIH0KLSAgICAKKyAgICBMVmFsdWUgZG91YmxlU2luKExWYWx1ZSB2
YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxsKGRvdWJsZVNpbkludHJpbnNpYygpLCB2
YWx1ZSk7CisgICAgfQorCisKKyAgICBMVmFsdWUgZG91YmxlQ29zKExWYWx1ZSB2YWx1ZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBjYWxsKGRvdWJsZUNvc0ludHJpbnNpYygpLCB2YWx1ZSk7Cisg
ICAgfQorCisgICAgTFZhbHVlIGRvdWJsZVNxcnQoTFZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGNhbGwoZG91YmxlU3FydEludHJpbnNpYygpLCB2YWx1ZSk7CisgICAgfQorCisK
ICAgICBzdGF0aWMgYm9vbCBoYXNTZW5zaWJsZURvdWJsZVRvSW50KCkgeyByZXR1cm4gaXNYODYo
KTsgfQogICAgIExWYWx1ZSBzZW5zaWJsZURvdWJsZVRvSW50KExWYWx1ZSB2YWx1ZSkKICAgICB7
CkBAIC0yMTAsNiArMjI2LDcgQEAgcHVibGljOgogICAgIExWYWx1ZSBjYXN0VG9JbnQzMihMVmFs
dWUgdmFsdWUpIHsgcmV0dXJuIGludENhc3QodmFsdWUsIGludDMyKTsgfQogICAgIExWYWx1ZSBm
cENhc3QoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZEZQQ2FzdChtX2J1
aWxkZXIsIHZhbHVlLCB0eXBlKTsgfQogICAgIExWYWx1ZSBpbnRUb1B0cihMVmFsdWUgdmFsdWUs
IExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxkSW50VG9QdHIobV9idWlsZGVyLCB2YWx1ZSwgdHlw
ZSk7IH0KKyAgICBMVmFsdWUgcHRyVG9JbnQoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJl
dHVybiBidWlsZFB0clRvSW50KG1fYnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CiAgICAgTFZhbHVl
IGJpdENhc3QoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZEJpdENhc3Qo
bV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0KICAgICAKICAgICBMVmFsdWUgYWxsb2NhKExUeXBl
IHR5cGUpIHsgcmV0dXJuIGJ1aWxkQWxsb2NhKG1fYnVpbGRlciwgdHlwZSk7IH0KQEAgLTMxNCw2
ICszMzEsMjAgQEAgcHVibGljOgogICAgIHZvaWQgc3RvcmVQdHIoTFZhbHVlIHZhbHVlLCBMVmFs
dWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgc3RvcmVQdHIodmFsdWUsIGFk
ZHJlc3MoYmFzZSwgZmllbGQpKTsgfQogICAgIHZvaWQgc3RvcmVEb3VibGUoTFZhbHVlIHZhbHVl
LCBMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgc3RvcmVEb3VibGUo
dmFsdWUsIGFkZHJlc3MoYmFzZSwgZmllbGQpKTsgfQogICAgIAorICAgIHZvaWQgYXNjcmliZVJh
bmdlKExWYWx1ZSBsb2FkSW5zdHJ1Y3Rpb24sIGNvbnN0IFZhbHVlUmFuZ2UmIHJhbmdlKQorICAg
IHsKKyAgICAgICAgcmFuZ2UuZGVjb3JhdGVJbnN0cnVjdGlvbihtX2NvbnRleHQsIGxvYWRJbnN0
cnVjdGlvbiwgcmFuZ2VLaW5kKTsKKyAgICB9CisgICAgCisgICAgTFZhbHVlIG5vbk5lZ2F0aXZl
MzIoTFZhbHVlIGxvYWRJbnN0cnVjdGlvbikKKyAgICB7CisgICAgICAgIGFzY3JpYmVSYW5nZShs
b2FkSW5zdHJ1Y3Rpb24sIG5vbk5lZ2F0aXZlSW50MzIpOworICAgICAgICByZXR1cm4gbG9hZElu
c3RydWN0aW9uOworICAgIH0KKyAgICAKKyAgICBMVmFsdWUgbG9hZDMyTm9uTmVnYXRpdmUoVHlw
ZWRQb2ludGVyIHBvaW50ZXIpIHsgcmV0dXJuIG5vbk5lZ2F0aXZlMzIobG9hZDMyKHBvaW50ZXIp
KTsgfQorICAgIExWYWx1ZSBsb2FkMzJOb25OZWdhdGl2ZShMVmFsdWUgYmFzZSwgY29uc3QgQWJz
dHJhY3RGaWVsZCYgZmllbGQpIHsgcmV0dXJuIG5vbk5lZ2F0aXZlMzIobG9hZDMyKGJhc2UsIGZp
ZWxkKSk7IH0KKyAgICAKICAgICBMVmFsdWUgaWNtcChMSW50UHJlZGljYXRlIGNvbmQsIExWYWx1
ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIGJ1aWxkSUNtcChtX2J1aWxkZXIsIGNvbmQs
IGxlZnQsIHJpZ2h0KTsgfQogICAgIExWYWx1ZSBlcXVhbChMVmFsdWUgbGVmdCwgTFZhbHVlIHJp
Z2h0KSB7IHJldHVybiBpY21wKExMVk1JbnRFUSwgbGVmdCwgcmlnaHQpOyB9CiAgICAgTFZhbHVl
IG5vdEVxdWFsKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIGljbXAoTExWTUlu
dE5FLCBsZWZ0LCByaWdodCk7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
U2xvd1BhdGhDYWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTFNsb3dQYXRoQ2FsbC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjks
NyBAQAogI2lmIEVOQUJMRShGVExfSklUKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisj
aW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkZUTFN0YXRlLmgiCiAjaW5j
bHVkZSAiR1BSSW5mby5oIgogCkBAIC0xMzQsMTEgKzEzNSwxMyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBTbG93UGF0aENhbGxLZXkodXNlZFJlZ2lzdGVycygpLCBjYWxsVGFyZ2V0LCBvZmZz
ZXQoKSk7CiAgICAgfQogICAgIAotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIG1ha2VDYWxsKHZv
aWQqIGNhbGxUYXJnZXQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgbWFrZUNhbGwodm9pZCog
Y2FsbFRhcmdldCwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0KiBleGNlcHRpb25UYXJnZXQpCiAg
ICAgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCByZXN1bHQgPSBtX2ppdC5jYWxsKCk7
CiAgICAgICAgIG1fc3RhdGUuZmluYWxpemVyLT5zbG93UGF0aENhbGxzLmFwcGVuZChTbG93UGF0
aENhbGwoCiAgICAgICAgICAgICByZXN1bHQsIGtleVdpdGhUYXJnZXQoY2FsbFRhcmdldCkpKTsK
KyAgICAgICAgaWYgKGV4Y2VwdGlvblRhcmdldCkKKyAgICAgICAgICAgIGV4Y2VwdGlvblRhcmdl
dC0+YXBwZW5kKG1faml0LmVtaXRFeGNlcHRpb25DaGVjaygpKTsKICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICB9CiAgICAgCkBAIC0xNTcsMzIgKzE2MCw0NCBAQCBwcml2YXRlOgogCiB9IC8v
IGFub255bW91cyBuYW1lc3BhY2UKIAordm9pZCBzdG9yZUNvZGVPcmlnaW4oU3RhdGUmIHN0YXRl
LCBDQ2FsbEhlbHBlcnMmIGppdCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQoreworICAgIGlmICgh
Y29kZU9yaWdpbi5pc1NldCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgdW5zaWduZWQg
aW5kZXggPSBzdGF0ZS5qaXRDb2RlLT5jb21tb24uYWRkQ29kZU9yaWdpbihjb2RlT3JpZ2luKTsK
KyAgICB1bnNpZ25lZCBsb2NhdGlvbkJpdHMgPSBDYWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVB
c0NvZGVPcmlnaW5JbmRleChpbmRleCk7CisgICAgaml0LnN0b3JlMzIoCisgICAgICAgIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksCisgICAgICAgIENDYWxsSGVscGVy
czo6dGFnRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNTdGFjazo6QXJndW1lbnRD
b3VudCkpKTsKK30KKwogTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKLSAgICBT
dGF0ZSYgc3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDQ2FsbEhlbHBl
cnMmIGppdCwgCi0gICAgSl9KSVRPcGVyYXRpb25fRVNzaUpJIG9wZXJhdGlvbiwgR1BSUmVnIHJl
c3VsdCwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgR1BSUmVnIG9iamVjdCwgU3RyaW5nSW1wbCogdWlkKQorICAgIFN0YXRlJiBzdGF0
ZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENDYWxsSGVscGVycyYgaml0LAor
ICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0KiBleGNl
cHRpb25UYXJnZXQsCisgICAgSl9KSVRPcGVyYXRpb25fRVNzaUpJIG9wZXJhdGlvbiwgR1BSUmVn
IHJlc3VsdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLAorICAgIEdQUlJlZyBvYmplY3Qs
IFN0cmluZ0ltcGwqIHVpZCkKIHsKKyAgICBzdG9yZUNvZGVPcmlnaW4oc3RhdGUsIGppdCwgY29k
ZU9yaWdpbik7CiAgICAgQ2FsbENvbnRleHQgY29udGV4dChzdGF0ZSwgdXNlZFJlZ2lzdGVycywg
aml0LCA0LCByZXN1bHQpOwotICAgIGppdC5zZXR1cEFyZ3VtZW50cygKLSAgICAgICAgY2FsbEZy
YW1lUmVnaXN0ZXIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihzdHViSW5mbyksIG9iamVj
dCwKKyAgICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKAorICAgICAgICBDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW1QdHIoc3R1YkluZm8pLCBvYmplY3QsCiAgICAgICAgIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cih1aWQpKTsKLSAgICByZXR1cm4gY29udGV4dC5tYWtlQ2FsbChi
aXR3aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlvbikpOwotICAgIC8vIEZJWE1FOiBGVEwgc2hvdWxk
IHN1cHBvcnQgZXhjZXB0aW9ucy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTEzNjIyCisgICAgcmV0dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9j
YXN0PHZvaWQqPihvcGVyYXRpb24pLCBleGNlcHRpb25UYXJnZXQpOwogfQogCiBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKAogICAgIFN0YXRlJiBzdGF0ZSwgY29uc3QgUmVnaXN0
ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENDYWxsSGVscGVycyYgaml0LCAKLSAgICBWX0pJVE9wZXJh
dGlvbl9FU3NpSkpJIG9wZXJhdGlvbiwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgR1BSUmVnIHZhbHVlLCBHUFJSZWcgb2JqZWN0LCBT
dHJpbmdJbXBsKiB1aWQpCisgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBNYWNyb0Fzc2VtYmxl
cjo6SnVtcExpc3QqIGV4Y2VwdGlvblRhcmdldCwKKyAgICBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJ
IG9wZXJhdGlvbiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBHUFJSZWcgdmFsdWUsCisg
ICAgR1BSUmVnIG9iamVjdCwgU3RyaW5nSW1wbCogdWlkKQogeworICAgIHN0b3JlQ29kZU9yaWdp
bihzdGF0ZSwgaml0LCBjb2RlT3JpZ2luKTsKICAgICBDYWxsQ29udGV4dCBjb250ZXh0KHN0YXRl
LCB1c2VkUmVnaXN0ZXJzLCBqaXQsIDUsIEludmFsaWRHUFJSZWcpOwotICAgIGppdC5zZXR1cEFy
Z3VtZW50cygKLSAgICAgICAgY2FsbEZyYW1lUmVnaXN0ZXIsIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cihzdHViSW5mbyksIHZhbHVlLCBvYmplY3QsCisgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0dWJJ
bmZvKSwgdmFsdWUsIG9iamVjdCwKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KHVpZCkpOwotICAgIHJldHVybiBjb250ZXh0Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lkKj4o
b3BlcmF0aW9uKSk7Ci0gICAgLy8gRklYTUU6IEZUTCBzaG91bGQgc3VwcG9ydCBleGNlcHRpb25z
LgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjIK
KyAgICByZXR1cm4gY29udGV4dC5tYWtlQ2FsbChiaXR3aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlv
biksIGV4Y2VwdGlvblRhcmdldCk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuaAkocmV2aXNp
b24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNTUsMTMgKzU1LDE1IEBAIHByaXZhdGU6CiAgICAgU2xvd1BhdGhD
YWxsS2V5IG1fa2V5OwogfTsKIAordm9pZCBzdG9yZUNvZGVPcmlnaW4oU3RhdGUmLCBDQ2FsbEhl
bHBlcnMmLCBDb2RlT3JpZ2luKTsKKwogTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bigKLSAgICBTdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0JiwgQ0NhbGxIZWxwZXJzJiwgSl9KSVRP
cGVyYXRpb25fRVNzaUpJLAotICAgIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBjYWxsRnJhbWVSZWdp
c3RlciwgU3RydWN0dXJlU3R1YkluZm8qLCBHUFJSZWcgb2JqZWN0LAorICAgIFN0YXRlJiwgY29u
c3QgUmVnaXN0ZXJTZXQmLCBDQ2FsbEhlbHBlcnMmLCBDb2RlT3JpZ2luLCBDQ2FsbEhlbHBlcnM6
Okp1bXBMaXN0KiwKKyAgICBKX0pJVE9wZXJhdGlvbl9FU3NpSkksIEdQUlJlZyByZXN1bHQsIFN0
cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnIG9iamVjdCwKICAgICBTdHJpbmdJbXBsKiB1aWQpOwog
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKLSAgICBTdGF0ZSYsIGNvbnN0IFJl
Z2lzdGVyU2V0JiwgQ0NhbGxIZWxwZXJzJiwgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSwKLSAgICBH
UFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIFN0cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnIHZhbHVl
LCBHUFJSZWcgb2JqZWN0LAorICAgIFN0YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmLCBDQ2FsbEhl
bHBlcnMmLCBDb2RlT3JpZ2luLCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0KiwKKyAgICBWX0pJVE9w
ZXJhdGlvbl9FU3NpSkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZyB2YWx1ZSwgR1BSUmVn
IG9iamVjdCwKICAgICBTdHJpbmdJbXBsKiB1aWQpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
RlRMCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMuY3BwCShy
ZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFw
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDkgQEAgdm9pZCBTdGFja01hcHM6Okxv
Y2F0aW9uOjpyZXN0b3JlSW50bygKIAogYm9vbCBTdGFja01hcHM6OlJlY29yZDo6cGFyc2UoRGF0
YVZpZXcqIHZpZXcsIHVuc2lnbmVkJiBvZmZzZXQpCiB7Ci0gICAgcGF0Y2hwb2ludElEID0gdmll
dy0+cmVhZDx1aW50MzJfdD4ob2Zmc2V0LCB0cnVlKTsKKyAgICBpbnQ2NF90IGlkID0gdmlldy0+
cmVhZDxpbnQ2NF90PihvZmZzZXQsIHRydWUpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQz
Ml90PihpZCkgPT0gaWQpOworICAgIHBhdGNocG9pbnRJRCA9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihpZCk7CiAgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KHBhdGNocG9pbnRJRCkgPCAwKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCkBAIC05MCw2ICs5MiwxMyBAQCBib29sIFN0YWNr
TWFwczo6UmVjb3JkOjpwYXJzZShEYXRhVmlldyogCiAgICAgd2hpbGUgKGxlbmd0aC0tKQogICAg
ICAgICBsb2NhdGlvbnMuYXBwZW5kKHJlYWRPYmplY3Q8TG9jYXRpb24+KHZpZXcsIG9mZnNldCkp
OwogICAgIAorICAgIHVuc2lnbmVkIG51bUxpdmVPdXRzID0gdmlldy0+cmVhZDx1aW50MTZfdD4o
b2Zmc2V0LCB0cnVlKTsKKyAgICB3aGlsZSAobnVtTGl2ZU91dHMtLSkgeworICAgICAgICB2aWV3
LT5yZWFkPHVpbnQxNl90PihvZmZzZXQsIHRydWUpOyAvLyByZWdudW0KKyAgICAgICAgdmlldy0+
cmVhZDx1aW50OF90PihvZmZzZXQsIHRydWUpOyAvLyByZXNlcnZlZAorICAgICAgICB2aWV3LT5y
ZWFkPHVpbnQ4X3Q+KG9mZnNldCwgdHJ1ZSk7IC8vIHNpemUgaW4gYnl0ZXMKKyAgICB9CisgICAg
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMU3RhY2tNYXBzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExTdGFja01hcHMuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExTdGFja01hcHMuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBzdHJ1
Y3QgU3RhY2tNYXBzIHsKICAgICAgICAgdWludDE2X3QgZHdhcmZSZWdOdW07IC8vIFJlcHJlc2Vu
dGVkIGFzIGEgMTItYml0IGludCBpbiB0aGUgc2VjdGlvbi4KICAgICAgICAgaW50OF90IHNpemU7
CiAgICAgICAgIEtpbmQga2luZDsKLSAgICAgICAgaW50MTZfdCBvZmZzZXQ7CisgICAgICAgIGlu
dDMyX3Qgb2Zmc2V0OwogICAgICAgICAKICAgICAgICAgdm9pZCBwYXJzZShEYXRhVmlldyosIHVu
c2lnbmVkJiBvZmZzZXQpOwogICAgICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29u
c3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmNwcAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQzLDYgKzQzLDggQEAgU3RhdGU6OlN0YXRlKEdyYXBoJiBncmFwaCkKICAg
ICAsIG1vZHVsZSgwKQogICAgICwgZnVuY3Rpb24oMCkKICAgICAsIGdlbmVyYXRlZEZ1bmN0aW9u
KDApCisgICAgLCBjb21wYWN0VW53aW5kKDApCisgICAgLCBjb21wYWN0VW53aW5kU2l6ZSgwKQog
ewogICAgIHN3aXRjaCAoZ3JhcGgubV9wbGFuLm1vZGUpIHsKICAgICBjYXNlIEZUTE1vZGU6IHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmgJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oIgogI2lu
Y2x1ZGUgIkZUTEpJVENvZGUuaCIKICNpbmNsdWRlICJGVExKSVRGaW5hbGl6ZXIuaCIKKyNpbmNs
dWRlICJGVExKU0NhbGwuaCIKICNpbmNsdWRlICJGVExTdGFja01hcHMuaCIKICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KIApAQCAtNTcsMTAgKzU4LDE1IEBAIHB1YmxpYzoKICAgICBSZWZQ
dHI8SklUQ29kZT4gaml0Q29kZTsKICAgICBHZW5lcmF0ZWRGdW5jdGlvbiBnZW5lcmF0ZWRGdW5j
dGlvbjsKICAgICBKSVRGaW5hbGl6ZXIqIGZpbmFsaXplcjsKKyAgICB1bnNpZ25lZCBoYW5kbGVF
eGNlcHRpb25TdGFja21hcElEOworICAgIHVuc2lnbmVkIGNhcHR1cmVkU3RhY2ttYXBJRDsKICAg
ICBTZWdtZW50ZWRWZWN0b3I8R2V0QnlJZERlc2NyaXB0b3I+IGdldEJ5SWRzOwogICAgIFNlZ21l
bnRlZFZlY3RvcjxQdXRCeUlkRGVzY3JpcHRvcj4gcHV0QnlJZHM7CisgICAgVmVjdG9yPEpTQ2Fs
bD4ganNDYWxsczsKICAgICBWZWN0b3I8Q1N0cmluZz4gY29kZVNlY3Rpb25OYW1lczsKICAgICBW
ZWN0b3I8Q1N0cmluZz4gZGF0YVNlY3Rpb25OYW1lczsKKyAgICB2b2lkKiBjb21wYWN0VW53aW5k
OworICAgIHNpemVfdCBjb21wYWN0VW53aW5kU2l6ZTsKICAgICBSZWZDb3VudGVkQXJyYXk8TFNl
Y3Rpb25Xb3JkPiBzdGFja21hcHNTZWN0aW9uOwogICAgIAogICAgIHZvaWQgZHVtcFN0YXRlKGNv
bnN0IGNoYXIqIHdoZW4pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVu
a3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtz
LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExU
aHVua3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw5ICszOSw5IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgRlRMIHsKIAogdXNpbmcgbmFtZXNwYWNlIERGRzsKIAotTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0mIHZtLCBjb25zdCBM
b2NhdGlvbiYgbG9jYXRpb24pCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRp
b25UaHVua0dlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgQXNzZW1ibHlIZWxwZXJzIGppdCgmdm0s
IDApOworICAgIEFzc2VtYmx5SGVscGVycyBqaXQodm0sIDApOwogICAgIAogICAgIC8vIE5vdGUg
dGhhdCB0aGUgInJldHVybiBhZGRyZXNzIiB3aWxsIGJlIHRoZSBPU1IgZXhpdCBJRC4KICAgICAK
QEAgLTUxLDcgKzUxLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9u
VAogICAgIGppdC5wdXNoKEdQUkluZm86OnJlZ1QwKTsKICAgICBqaXQucHVzaChHUFJJbmZvOjpy
ZWdUMCk7CiAgICAgCi0gICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLnNjcmF0
Y2hCdWZmZXJGb3JTaXplKHJlcXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVzKCkpOworICAg
IFNjcmF0Y2hCdWZmZXIqIHNjcmF0Y2hCdWZmZXIgPSB2bS0+c2NyYXRjaEJ1ZmZlckZvclNpemUo
cmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSk7CiAgICAgY2hhciogYnVmZmVyID0g
c3RhdGljX2Nhc3Q8Y2hhcio+KHNjcmF0Y2hCdWZmZXItPmRhdGFCdWZmZXIoKSk7CiAgICAgCiAg
ICAgc2F2ZUFsbFJlZ2lzdGVycyhqaXQsIGJ1ZmZlcik7CkBAIC02MCw3ICs2MCw3IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblQKICAgICBqaXQubW92ZShNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzY3JhdGNoQnVmZmVyLT5hY3RpdmVMZW5ndGhQdHIoKSks
IEdQUkluZm86Om5vbkFyZ0dQUjEpOwogICAgIGppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbVB0cihyZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKSwgR1BSSW5m
bzo6bm9uQXJnR1BSMSk7CiAKLSAgICBsb2NhdGlvbi5yZXN0b3JlSW50byhqaXQsIGJ1ZmZlciwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwLCAxKTsKKyAgICBqaXQubG9hZFB0cihHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBqaXQucGVlayhHUFJJ
bmZvOjphcmd1bWVudEdQUjEsIDMpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGZ1bmN0aW9u
Q2FsbCA9IGppdC5jYWxsKCk7CiAgICAgCkBAIC03MSw2ICs3MSwxMCBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25UCiAgICAgCiAgICAgaml0Lm1vdmUoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJlZ1QwKTsKICAgICAKKyAgICAvLyBNYWtlIHN1cmUg
d2UgdGVsbCB0aGUgR0MgdGhhdCB3ZSdyZSBub3QgdXNpbmcgdGhlIHNjcmF0Y2ggYnVmZmVyIGFu
eW1vcmUuCisgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc2NyYXRj
aEJ1ZmZlci0+YWN0aXZlTGVuZ3RoUHRyKCkpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0
b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKDApLCBHUFJJbmZvOjpyZWdUMSk7
CisgICAgCiAgICAgLy8gUHJlcGFyZSBmb3IgdGFpbCBjYWxsLgogICAgIGppdC5wb3AoR1BSSW5m
bzo6cmVnVDEpOwogICAgIGppdC5wb3AoR1BSSW5mbzo6cmVnVDEpOwpAQCAtODEsMTQgKzg1LDE0
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblQKICAgICAvLyByZXN0
b3JlIGFsbCByZWdpc3RlcnMuCiAgICAgCiAgICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVm
b3JlUmV0dXJuKEdQUkluZm86OnJlZ1QwKTsKLSAgICAKKwogICAgIHJlc3RvcmVBbGxSZWdpc3Rl
cnMoaml0LCBidWZmZXIpOwogCiAgICAgaml0LnJldCgpOwogICAgIAotICAgIExpbmtCdWZmZXIg
cGF0Y2hCdWZmZXIodm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7CisgICAgTGlua0J1ZmZlciBw
YXRjaEJ1ZmZlcigqdm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7CiAgICAgcGF0Y2hCdWZmZXIu
bGluayhmdW5jdGlvbkNhbGwsIGNvbXBpbGVGVExPU1JFeGl0KTsKLSAgICByZXR1cm4gRklOQUxJ
WkVfQ09ERShwYXRjaEJ1ZmZlciwgKCJGVEwgT1NSIGV4aXQgZ2VuZXJhdGlvbiB0aHVuayBmb3Ig
Y2FsbEZyYW1lIGF0ICVzIiwgdG9DU3RyaW5nKGxvY2F0aW9uKS5kYXRhKCkpKTsKKyAgICByZXR1
cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgKCJGVEwgT1NSIGV4aXQgZ2VuZXJhdGlvbiB0
aHVuayIpKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNsb3dQYXRoQ2FsbFRodW5rR2Vu
ZXJhdG9yKFZNJiB2bSwgY29uc3QgU2xvd1BhdGhDYWxsS2V5JiBrZXkpCkBAIC0xMTksMTEgKzEy
MywxMyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1bmtHCiAgICAgICAg
IGN1cnJlbnRPZmZzZXQgKz0gc2l6ZW9mKGRvdWJsZSk7CiAgICAgfQogICAgIAorICAgIC8vIEZJ
WE1FOiBDU3RhY2sgLSBOZWVkIHRvIGRvIHNvZW1ldGhpbmcgbGlrZSBqaXQuZW1pdEZ1bmN0aW9u
UHJvbG9ndWUoKTsKICAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUklu
Zm86Om5vbkFyZ0dQUjApOwogICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpub25BcmdHUFIwLCBB
c3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyLCBrZXkub2Zmc2V0KCkpKTsKICAgICAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsID0g
aml0LmNhbGwoKTsKLSAgICAKKworICAgIC8vIEZJWE1FOiBDU3RhY2sgLSBOZWVkIHRvIGRvIHNv
bWV0aGluZyBsaWtlIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIGppdC5sb2FkUHRy
KEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIsIGtleS5vZmZzZXQoKSksIEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7
CiAgICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86Om5vblBy
ZXNlcnZlZE5vblJldHVybkdQUik7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFRodW5rcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMVGh1bmtzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMVGh1bmtzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgVk07
CiAKIG5hbWVzcGFjZSBGVEwgewogCi1NYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVy
YXRpb25UaHVua0dlbmVyYXRvcihWTSYsIGNvbnN0IExvY2F0aW9uJik7CitNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSopOwogTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIHNsb3dQYXRoQ2FsbFRodW5rR2VuZXJhdG9yKFZNJiwgY29uc3QgU2xvd1Bh
dGhDYWxsS2V5Jik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGVBcmd1bWVudD4KQEAgLTc4
LDEyICs3OCw2IEBAIHR5cGVuYW1lIE1hcFR5cGU6OktleVR5cGUga2V5Rm9yVGh1bmsoTWEKIAog
Y2xhc3MgVGh1bmtzIHsKIHB1YmxpYzoKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2V0T1NS
RXhpdEdlbmVyYXRpb25UaHVuayhWTSYgdm0sIGNvbnN0IExvY2F0aW9uJiBsb2NhdGlvbikKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0ZUlmTmVjZXNzYXJ5KAotICAgICAgICAgICAgdm0s
IG1fb3NyRXhpdFRodW5rcywgbG9jYXRpb24sIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0
b3IpOwotICAgIH0KLSAgICAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2V0U2xvd1BhdGhD
YWxsVGh1bmsoVk0mIHZtLCBjb25zdCBTbG93UGF0aENhbGxLZXkmIGtleSkKICAgICB7CiAgICAg
ICAgIHJldHVybiBnZW5lcmF0ZUlmTmVjZXNzYXJ5KApAQCAtOTYsNyArOTAsNiBAQCBwdWJsaWM6
CiAgICAgfQogICAgIAogcHJpdmF0ZToKLSAgICBUaHVua01hcDxMb2NhdGlvbj4gbV9vc3JFeGl0
VGh1bmtzOwogICAgIFRodW5rTWFwPFNsb3dQYXRoQ2FsbEtleT4gbV9zbG93UGF0aENhbGxUaHVu
a3M7CiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVS
b290cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2Vy
dmF0aXZlUm9vdHMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5
LDYgQEAgdm9pZCBDb25zZXJ2YXRpdmVSb290czo6Z2VuZXJpY0FkZFNwYW4odgogICAgICAgICBl
bmQgPSBzd2FwVGVtcDsKICAgICB9CiAKLSAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGNoYXIqPihl
bmQpIC0gc3RhdGljX2Nhc3Q8Y2hhcio+KGJlZ2luKSkgPCAweDEwMDAwMDApOwogICAgIEFTU0VS
VChpc1BvaW50ZXJBbGlnbmVkKGJlZ2luKSk7CiAgICAgQVNTRVJUKGlzUG9pbnRlckFsaWduZWQo
ZW5kKSk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAx
NjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAy
MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDksIDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJr
aXQub3JnPgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00NTEsMjQgKzQ1MSwyNyBAQCB2b2lkIEhlYXA6Om1h
cmtSb290cygpCiAgICAgZG91YmxlIGdjU3RhcnRUaW1lID0gV1RGOjptb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoKTsKICNlbmRpZgogCisgICAgbV9jb2RlQmxvY2tzLmNsZWFyTWFya3MoKTsK
ICAgICB2b2lkKiBkdW1teTsKLSAgICAKKwogICAgIC8vIFdlIGdhdGhlciBjb25zZXJ2YXRpdmUg
cm9vdHMgYmVmb3JlIGNsZWFyaW5nIG1hcmsgYml0cyBiZWNhdXNlIGNvbnNlcnZhdGl2ZQogICAg
IC8vIGdhdGhlcmluZyB1c2VzIHRoZSBtYXJrIGJpdHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBy
ZWZlcmVuY2UgaXMgdmFsaWQuCiAgICAgQ29uc2VydmF0aXZlUm9vdHMgbWFjaGluZVRocmVhZFJv
b3RzKCZtX29iamVjdFNwYWNlLmJsb2NrcygpLCAmbV9zdG9yYWdlU3BhY2UpOwogICAgIG1faml0
U3R1YlJvdXRpbmVzLmNsZWFyTWFya3MoKTsKICAgICB7CiAgICAgICAgIEdDUEhBU0UoR2F0aGVy
Q29uc2VydmF0aXZlUm9vdHMpOwotICAgICAgICBtX21hY2hpbmVUaHJlYWRzLmdhdGhlckNvbnNl
cnZhdGl2ZVJvb3RzKG1hY2hpbmVUaHJlYWRSb290cywgJmR1bW15KTsKKyAgICAgICAgbV9tYWNo
aW5lVGhyZWFkcy5nYXRoZXJDb25zZXJ2YXRpdmVSb290cyhtYWNoaW5lVGhyZWFkUm9vdHMsIG1f
aml0U3R1YlJvdXRpbmVzLCBtX2NvZGVCbG9ja3MsICZkdW1teSk7CiAgICAgfQogCisjaWYgRU5B
QkxFKExMSU5UX0NfTE9PUCkKICAgICBDb25zZXJ2YXRpdmVSb290cyBzdGFja1Jvb3RzKCZtX29i
amVjdFNwYWNlLmJsb2NrcygpLCAmbV9zdG9yYWdlU3BhY2UpOwotICAgIG1fY29kZUJsb2Nrcy5j
bGVhck1hcmtzKCk7CiAgICAgewogICAgICAgICBHQ1BIQVNFKEdhdGhlclN0YWNrUm9vdHMpOwog
ICAgICAgICBzdGFjaygpLmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKHN0YWNrUm9vdHMsIG1faml0
U3R1YlJvdXRpbmVzLCBtX2NvZGVCbG9ja3MpOwotICAgICAgICBzdGFjaygpLnNhbml0aXplU3Rh
Y2soKTsKICAgICB9CisjZW5kaWYKKworICAgIHNhbml0aXplU3RhY2tGb3JWTShtX3ZtKTsKIAog
I2lmIEVOQUJMRShERkdfSklUKQogICAgIENvbnNlcnZhdGl2ZVJvb3RzIHNjcmF0Y2hCdWZmZXJS
b290cygmbV9vYmplY3RTcGFjZS5ibG9ja3MoKSwgJm1fc3RvcmFnZVNwYWNlKTsKQEAgLTUwNSwx
MiArNTA4LDE0IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKCkKICAgICAgICAgICAgIHZpc2l0b3Iu
YXBwZW5kKG1hY2hpbmVUaHJlYWRSb290cyk7CiAgICAgICAgICAgICB2aXNpdG9yLmRvbmF0ZUFu
ZERyYWluKCk7CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICAgICB7
CiAgICAgICAgICAgICBHQ1BIQVNFKFZpc2l0U3RhY2tSb290cyk7CiAgICAgICAgICAgICBNQVJL
X0xPR19ST09UKHZpc2l0b3IsICJTdGFjayIpOwogICAgICAgICAgICAgdmlzaXRvci5hcHBlbmQo
c3RhY2tSb290cyk7CiAgICAgICAgICAgICB2aXNpdG9yLmRvbmF0ZUFuZERyYWluKCk7CiAgICAg
ICAgIH0KKyNlbmRpZgogI2lmIEVOQUJMRShERkdfSklUKQogICAgICAgICB7CiAgICAgICAgICAg
ICBHQ1BIQVNFKFZpc2l0U2NyYXRjaEJ1ZmZlclJvb3RzKTsKQEAgLTk1MiwxMiArOTU3LDEyIEBA
IHZvaWQgSGVhcDo6Y29sbGVjdCgpCiAKIGJvb2wgSGVhcDo6Y29sbGVjdElmTmVjZXNzYXJ5T3JE
ZWZlcigpCiB7Ci0gICAgaWYgKG1fZGVmZXJyYWxEZXB0aCkKKyAgICBpZiAoaXNEZWZlcnJlZCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBpZiAoIXNob3VsZENvbGxlY3Qo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAorCiAgICAgY29sbGVjdCgpOwogICAgIHJl
dHVybiB0cnVlOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xOTcsNyArMTk3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAg
ICB2b2lkIGFkZFJlZmVyZW5jZShKU0NlbGwqLCBBcnJheUJ1ZmZlciopOwogICAgICAgICAKLSAg
ICAgICAgYm9vbCBpc0RlZmVycmVkKCkgY29uc3QgeyByZXR1cm4gISFtX2RlZmVycmFsRGVwdGg7
IH0KKyAgICAgICAgYm9vbCBpc0RlZmVycmVkKCkgY29uc3QgeyByZXR1cm4gISFtX2RlZmVycmFs
RGVwdGggfHwgT3B0aW9uczo6ZGlzYWJsZUdDKCk7IH0KIAogI2lmIFVTRShDRikKICAgICAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCByZWxlYXNlU29vbihSZXRhaW5QdHI8VD4mJik7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtl
ci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
Y2hpbmVTdGFja01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMiw3ICsyMzIsNyBAQCB2
b2lkIE1hY2hpbmVUaHJlYWRzOjpyZW1vdmVDdXJyZW50VGhyZWFkCiAjZGVmaW5lIFJFR0lTVEVS
X0JVRkZFUl9BTElHTk1FTlQKICNlbmRpZgogCi12b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJG
cm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIHZv
aWQqIHN0YWNrQ3VycmVudCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50
VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgSklUU3R1YlJvdXRp
bmVTZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzLCB2b2lkKiBz
dGFja0N1cnJlbnQpCiB7CiAgICAgLy8gc2V0am1wIGZvcmNlcyB2b2xhdGlsZSByZWdpc3RlcnMg
b250byB0aGUgc3RhY2sKICAgICBqbXBfYnVmIHJlZ2lzdGVycyBSRUdJU1RFUl9CVUZGRVJfQUxJ
R05NRU5UOwpAQCAtMjQ4LDEyICsyNDgsMTIgQEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVy
RnJvbUN1cnJlbnRUaAogICAgIHZvaWQqIHJlZ2lzdGVyc0JlZ2luID0gJnJlZ2lzdGVyczsKICAg
ICB2b2lkKiByZWdpc3RlcnNFbmQgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihyb3VuZFVwVG9N
dWx0aXBsZU9mPHNpemVvZih2b2lkKik+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PigmcmVn
aXN0ZXJzICsgMSkpKTsKICAgICBzd2FwSWZCYWNrd2FyZHMocmVnaXN0ZXJzQmVnaW4sIHJlZ2lz
dGVyc0VuZCk7Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHJlZ2lzdGVyc0JlZ2luLCByZWdp
c3RlcnNFbmQpOworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChyZWdpc3RlcnNCZWdpbiwgcmVn
aXN0ZXJzRW5kLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogCiAgICAgdm9pZCogc3Rh
Y2tCZWdpbiA9IHN0YWNrQ3VycmVudDsKICAgICB2b2lkKiBzdGFja0VuZCA9IHd0ZlRocmVhZERh
dGEoKS5zdGFjaygpLm9yaWdpbigpOwogICAgIHN3YXBJZkJhY2t3YXJkcyhzdGFja0JlZ2luLCBz
dGFja0VuZCk7Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrQmVnaW4sIHN0YWNrRW5k
KTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoc3RhY2tCZWdpbiwgc3RhY2tFbmQsIGppdFN0
dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzdXNwZW5k
VGhyZWFkKGNvbnN0IFBsYXRmb3JtVGhyZWFkJiBwbGF0Zm9ybVRocmVhZCkKQEAgLTQzNCwyNCAr
NDM0LDI0IEBAIHN0YXRpYyB2b2lkIGZyZWVQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycygKICNlbmRp
ZgogfQogCi12b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29uc2Vy
dmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBUaHJlYWQqIHRocmVhZCkKK3ZvaWQgTWFj
aGluZVRocmVhZHM6OmdhdGhlckZyb21PdGhlclRocmVhZChDb25zZXJ2YXRpdmVSb290cyYgY29u
c2VydmF0aXZlUm9vdHMsIFRocmVhZCogdGhyZWFkLCBKSVRTdHViUm91dGluZVNldCYgaml0U3R1
YlJvdXRpbmVzLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3MpCiB7CiAgICAgUGxhdGZvcm1UaHJl
YWRSZWdpc3RlcnMgcmVnczsKICAgICBzaXplX3QgcmVnU2l6ZSA9IGdldFBsYXRmb3JtVGhyZWFk
UmVnaXN0ZXJzKHRocmVhZC0+cGxhdGZvcm1UaHJlYWQsIHJlZ3MpOwogCi0gICAgY29uc2VydmF0
aXZlUm9vdHMuYWRkKHN0YXRpY19jYXN0PHZvaWQqPigmcmVncyksIHN0YXRpY19jYXN0PHZvaWQq
PihyZWludGVycHJldF9jYXN0PGNoYXIqPigmcmVncykgKyByZWdTaXplKSk7CisgICAgY29uc2Vy
dmF0aXZlUm9vdHMuYWRkKHN0YXRpY19jYXN0PHZvaWQqPigmcmVncyksIHN0YXRpY19jYXN0PHZv
aWQqPihyZWludGVycHJldF9jYXN0PGNoYXIqPigmcmVncykgKyByZWdTaXplKSwgaml0U3R1YlJv
dXRpbmVzLCBjb2RlQmxvY2tzKTsKIAogICAgIHZvaWQqIHN0YWNrUG9pbnRlciA9IG90aGVyVGhy
ZWFkU3RhY2tQb2ludGVyKHJlZ3MpOwogICAgIHZvaWQqIHN0YWNrQmFzZSA9IHRocmVhZC0+c3Rh
Y2tCYXNlOwogICAgIHN3YXBJZkJhY2t3YXJkcyhzdGFja1BvaW50ZXIsIHN0YWNrQmFzZSk7Ci0g
ICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrUG9pbnRlciwgc3RhY2tCYXNlKTsKKyAgICBj
b25zZXJ2YXRpdmVSb290cy5hZGQoc3RhY2tQb2ludGVyLCBzdGFja0Jhc2UsIGppdFN0dWJSb3V0
aW5lcywgY29kZUJsb2Nrcyk7CiAKICAgICBmcmVlUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMocmVn
cyk7CiB9CiAKLXZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENv
bnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgdm9pZCogc3RhY2tDdXJyZW50KQor
dm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZl
Um9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBKSVRTdHViUm91dGluZVNldCYgaml0U3R1YlJvdXRp
bmVzLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3MsIHZvaWQqIHN0YWNrQ3VycmVudCkKIHsKLSAg
ICBnYXRoZXJGcm9tQ3VycmVudFRocmVhZChjb25zZXJ2YXRpdmVSb290cywgc3RhY2tDdXJyZW50
KTsKKyAgICBnYXRoZXJGcm9tQ3VycmVudFRocmVhZChjb25zZXJ2YXRpdmVSb290cywgaml0U3R1
YlJvdXRpbmVzLCBjb2RlQmxvY2tzLCBzdGFja0N1cnJlbnQpOwogCiAgICAgaWYgKG1fdGhyZWFk
U3BlY2lmaWMpIHsKICAgICAgICAgUGxhdGZvcm1UaHJlYWQgY3VycmVudFBsYXRmb3JtVGhyZWFk
ID0gZ2V0Q3VycmVudFBsYXRmb3JtVGhyZWFkKCk7CkBAIC00NzMsNyArNDczLDcgQEAgdm9pZCBN
YWNoaW5lVGhyZWFkczo6Z2F0aGVyQ29uc2VydmF0aXZlUgogICAgICAgICAvLyBhbmQgc2luY2Ug
dGhpcyBpcyBhIHNoYXJlZCBoZWFwLCB0aGV5IGFyZSByZWFsIGxvY2tzLgogICAgICAgICBmb3Ig
KFRocmVhZCogdGhyZWFkID0gbV9yZWdpc3RlcmVkVGhyZWFkczsgdGhyZWFkOyB0aHJlYWQgPSB0
aHJlYWQtPm5leHQpIHsKICAgICAgICAgICAgIGlmICghZXF1YWxUaHJlYWQodGhyZWFkLT5wbGF0
Zm9ybVRocmVhZCwgY3VycmVudFBsYXRmb3JtVGhyZWFkKSkKLSAgICAgICAgICAgICAgICBnYXRo
ZXJGcm9tT3RoZXJUaHJlYWQoY29uc2VydmF0aXZlUm9vdHMsIHRocmVhZCk7CisgICAgICAgICAg
ICAgICAgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKGNvbnNlcnZhdGl2ZVJvb3RzLCB0aHJlYWQsIGpp
dFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKFRo
cmVhZCogdGhyZWFkID0gbV9yZWdpc3RlcmVkVGhyZWFkczsgdGhyZWFkOyB0aHJlYWQgPSB0aHJl
YWQtPm5leHQpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFj
a01hcmtlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hp
bmVTdGFja01hcmtlci5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgs
MTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyAgICBjbGFzcyBDb2RlQmxvY2tTZXQ7CiAgICAg
Y2xhc3MgQ29uc2VydmF0aXZlUm9vdHM7CiAgICAgY2xhc3MgSGVhcDsKKyAgICBjbGFzcyBKSVRT
dHViUm91dGluZVNldDsKIAogICAgIGNsYXNzIE1hY2hpbmVUaHJlYWRzIHsKICAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoTWFjaGluZVRocmVhZHMpOwpAQCAtMzcsMjAgKzM5LDIwIEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBNYWNoaW5lVGhyZWFkcyhIZWFwKik7CiAgICAgICAgIH5N
YWNoaW5lVGhyZWFkcygpOwogCi0gICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMo
Q29uc2VydmF0aXZlUm9vdHMmLCB2b2lkKiBzdGFja0N1cnJlbnQpOworICAgICAgICB2b2lkIGdh
dGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVT
ZXQmLCBDb2RlQmxvY2tTZXQmLCB2b2lkKiBzdGFja0N1cnJlbnQpOwogCiAgICAgICAgIEpTX0VY
UE9SVF9QUklWQVRFIHZvaWQgbWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKTsKICAgICAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRDdXJyZW50VGhyZWFkKCk7IC8vIE9ubHkgbmVl
ZHMgdG8gYmUgY2FsbGVkIGJ5IGNsaWVudHMgdGhhdCBjYW4gdXNlIHRoZSBzYW1lIGhlYXAgZnJv
bSBtdWx0aXBsZSB0aHJlYWRzLgogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBnYXRoZXJG
cm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYsIHZvaWQqIHN0YWNrQ3VycmVudCk7
CisgICAgICAgIHZvaWQgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMm
LCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYsIHZvaWQqIHN0YWNrQ3VycmVudCk7
CiAKICAgICAgICAgY2xhc3MgVGhyZWFkOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRo
cmVhZCh2b2lkKik7CiAgICAgICAgIHZvaWQgcmVtb3ZlQ3VycmVudFRocmVhZCgpOwogCi0gICAg
ICAgIHZvaWQgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiwgVGhyZWFk
Kik7CisgICAgICAgIHZvaWQgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3Rz
JiwgVGhyZWFkKiwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2RlQmxvY2tTZXQmKTsKIAogICAgICAg
ICBNdXRleCBtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXg7CiAgICAgICAgIFRocmVhZCogbV9yZWdp
c3RlcmVkVGhyZWFkczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9D
YWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsRnJhbWUuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDEx
ICsxMTYsMTEgQEAgQ29kZU9yaWdpbiBDYWxsRnJhbWU6OmNvZGVPcmlnaW4oKQogICAgIHJldHVy
biBDb2RlT3JpZ2luKGxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKIH0KIAotUmVnaXN0ZXIq
IENhbGxGcmFtZTo6ZnJhbWVFeHRlbnRJbnRlcm5hbCgpCitSZWdpc3RlciogQ2FsbEZyYW1lOjp0
b3BPZkZyYW1lSW50ZXJuYWwoKQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+
Y29kZUJsb2NrKCk7CiAgICAgQVNTRVJUKGNvZGVCbG9jayk7Ci0gICAgcmV0dXJuIHJlZ2lzdGVy
cygpICsgdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29kZUJsb2NrLT5mcmFtZVJlZ2lzdGVyQ291
bnQoKSkub2Zmc2V0KCk7CisgICAgcmV0dXJuIHJlZ2lzdGVycygpICsgY29kZUJsb2NrLT5zdGFj
a1BvaW50ZXJPZmZzZXQoKTsKIH0KIAogSlNHbG9iYWxPYmplY3QqIENhbGxGcmFtZTo6dm1FbnRy
eUdsb2JhbE9iamVjdCgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
Q2FsbEZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0NhbGxGcmFtZS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NiwxNSArMTc2
LDEzIEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgLy8gQ29kZU9yaWdpbigwKSBpZiB3ZSdy
ZSBpbiBuYXRpdmUgY29kZS4KICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKCk7CiAKLSAg
ICAgICAgUmVnaXN0ZXIqIGZyYW1lRXh0ZW50KCkKKyAgICAgICAgUmVnaXN0ZXIqIHRvcE9mRnJh
bWUoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoaXNWTUVudHJ5U2VudGluZWwoKSB8fCAh
Y29kZUJsb2NrKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdGVycygpIC0gMTsKLSAg
ICAgICAgICAgIHJldHVybiBmcmFtZUV4dGVudEludGVybmFsKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHJlZ2lzdGVycygpOworICAgICAgICAgICAgcmV0dXJuIHRvcE9mRnJhbWVJbnRlcm5h
bCgpOwogICAgICAgICB9CiAgICAgCi0gICAgICAgIFJlZ2lzdGVyKiBmcmFtZUV4dGVudEludGVy
bmFsKCk7Ci0KICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBJbnN0cnVjdGlvbiogY3Vy
cmVudFZQQygpIGNvbnN0CiAgICAgICAgIHsKQEAgLTMxOCw2ICszMTYsOCBAQCBuYW1lc3BhY2Ug
SlNDICB7CiAgICAgICAgIEV4ZWNTdGF0ZSgpOwogICAgICAgICB+RXhlY1N0YXRlKCk7CiAKKyAg
ICAgICAgUmVnaXN0ZXIqIHRvcE9mRnJhbWVJbnRlcm5hbCgpOworCiAgICAgICAgIC8vIFRoZSBm
b2xsb3dpbmcgYXJlIGZvciBpbnRlcm5hbCB1c2UgaW4gZGVidWdnaW5nIGFuZCB2ZXJpZmljYXRp
b24KICAgICAgICAgLy8gY29kZSBvbmx5IGFuZCBub3QgbWVhbnQgYXMgYW4gQVBJIGZvciBnZW5l
cmFsIHVzYWdlOgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1
LDYgKzY1LDcgQEAKICNpbmNsdWRlICJSZWdFeHBQcm90b3R5cGUuaCIKICNpbmNsdWRlICJSZWdp
c3Rlci5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25t
ZW50LmgiCiAjaW5jbHVkZSAiU3RhY2tWaXNpdG9yLmgiCiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFj
dGl2YXRpb24uaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCkBAIC03NCw2ICs3NSw3IEBA
CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYv
U3RhY2tTdGF0cy5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL1dURlRocmVhZERhdGEuaD4KQEAgLTg5LDIyICs5MSw2IEBAIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBKU0MgewogCi1JbnRlcnByZXRlcjo6RXJyb3JIYW5kbGlu
Z01vZGU6OkVycm9ySGFuZGxpbmdNb2RlKEV4ZWNTdGF0ZSAqZXhlYykKLSAgICA6IG1faW50ZXJw
cmV0ZXIoKmV4ZWMtPmludGVycHJldGVyKCkpCi17Ci0gICAgaWYgKCFtX2ludGVycHJldGVyLm1f
ZXJyb3JIYW5kbGluZ01vZGVSZWVudHJ5KQotICAgICAgICBtX2ludGVycHJldGVyLnN0YWNrKCku
ZW5hYmxlRXJyb3JTdGFja1Jlc2VydmUoKTsKLSAgICBtX2ludGVycHJldGVyLm1fZXJyb3JIYW5k
bGluZ01vZGVSZWVudHJ5Kys7Ci19Ci0KLUludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZTo6
fkVycm9ySGFuZGxpbmdNb2RlKCkKLXsKLSAgICBtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGlu
Z01vZGVSZWVudHJ5LS07Ci0gICAgQVNTRVJUKG1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5n
TW9kZVJlZW50cnkgPj0gMCk7Ci0gICAgaWYgKCFtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGlu
Z01vZGVSZWVudHJ5KQotICAgICAgICBtX2ludGVycHJldGVyLnN0YWNrKCkuZGlzYWJsZUVycm9y
U3RhY2tSZXNlcnZlKCk7Ci19Ci0KIEpTVmFsdWUgZXZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
IHsKICAgICBpZiAoIWNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKQpAQCAtMTUyLDIyICsxMzgs
MjUgQEAgSlNWYWx1ZSBldmFsKENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgIHJldHVybiBpbnRl
cnByZXRlci0+ZXhlY3V0ZShldmFsLCBjYWxsRnJhbWUsIHRoaXNWYWx1ZSwgY2FsbGVyU2NvcGVD
aGFpbik7CiB9CiAKLUNhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENhbGxG
cmFtZSogY2FsbEZyYW1lLCBKU1N0YWNrKiBzdGFjaywgSlNWYWx1ZSBhcmd1bWVudHMsIGludCBm
aXJzdEZyZWVSZWdpc3RlcikKK0NhbGxGcmFtZSogc2l6ZUZyYW1lRm9yVmFyYXJncyhDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgSlNTdGFjayogc3RhY2ssIEpTVmFsdWUgYXJndW1lbnRzLCBpbnQgZmly
c3RGcmVlUmVnaXN0ZXIpCiB7CiAgICAgaWYgKCFhcmd1bWVudHMpIHsgLy8gZi5hcHBseSh4LCBh
cmd1bWVudHMpLCB3aXRoIGFyZ3VtZW50cyB1bm1vZGlmaWVkLgogICAgICAgICB1bnNpZ25lZCBh
cmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA9IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMoKTsKLSAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6
OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSBhcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcyAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSAx
KTsKLSAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID4gQXJndW1lbnRzOjpN
YXhBcmd1bWVudHMgKyAxIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygp
KSkgewotICAgICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFt
ZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25l
ZCBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFj
a0FsaWdubWVudFJlZ2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcyArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyAxKTsKKyAgICAg
ICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUt
PnJlZ2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAoYXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyArIDEgfHwg
IXN0YWNrLT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewor
ICAgICAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAg
ICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiAg
ICAgfQogCiAgICAgaWYgKGFyZ3VtZW50cy5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAg
IENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5y
ZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gMSAtIEpTU3RhY2s6OkNhbGxGcmFtZUhl
YWRlclNpemUgLSAxKTsKLSAgICAgICAgaWYgKCFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJl
Z2lzdGVycygpKSkgewotICAgICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9u
KGNhbGxGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAg
ICB1bnNpZ25lZCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA9IDE7CisgICAgICAgIHVuc2ln
bmVkIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0
YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksICAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcyArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyAxKTsKKyAg
ICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJh
bWUtPnJlZ2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAo
IXN0YWNrLT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewor
ICAgICAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAg
ICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBA
IC0xODEsOSArMTcwLDEwIEBAIENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdz
KEMKICAgICBpZiAoYXNPYmplY3QoYXJndW1lbnRzKS0+Y2xhc3NJbmZvKCkgPT0gQXJndW1lbnRz
OjppbmZvKCkpIHsKICAgICAgICAgQXJndW1lbnRzKiBhcmdzT2JqZWN0ID0gYXNBcmd1bWVudHMo
YXJndW1lbnRzKTsKICAgICAgICAgdW5zaWduZWQgYXJnQ291bnQgPSBhcmdzT2JqZWN0LT5sZW5n
dGgoY2FsbEZyYW1lKTsKLSAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJh
bWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSBD
YWxsRnJhbWU6Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsKLSAgICAgICAgaWYgKGFyZ0NvdW50
ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+
cmVnaXN0ZXJzKCkpKSB7Ci0gICAgICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRp
b24oY2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAg
ICAgIHVuc2lnbmVkIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIC1maXJzdEZyZWVSZWdpc3RlciArIENh
bGxGcmFtZTo6b2Zmc2V0Rm9yKGFyZ0NvdW50ICsgMSkpOworICAgICAgICBDYWxsRnJhbWUqIG5l
d0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgLSBw
YWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7CisgICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50
czo6TWF4QXJndW1lbnRzIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1l
LT5yZWdpc3RlcnMoKSkpIHsKKyAgICAgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNh
bGxGcmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gbmV3Q2FsbEZyYW1lOwpAQCAtMTkyLDkgKzE4MiwxMCBAQCBDYWxsRnJhbWUqIHNpemVBbmRB
bGxvY0ZyYW1lRm9yVmFyYXJncyhDCiAgICAgaWYgKGlzSlNBcnJheShhcmd1bWVudHMpKSB7CiAg
ICAgICAgIEpTQXJyYXkqIGFycmF5ID0gYXNBcnJheShhcmd1bWVudHMpOwogICAgICAgICB1bnNp
Z25lZCBhcmdDb3VudCA9IGFycmF5LT5sZW5ndGgoKTsKLSAgICAgICAgQ2FsbEZyYW1lKiBuZXdD
YWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmly
c3RGcmVlUmVnaXN0ZXIgLSBDYWxsRnJhbWU6Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsKLSAg
ICAgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5n
cm93KG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7Ci0gICAgICAgICAgICBjYWxsRnJhbWUt
PnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3Io
Y2FsbEZyYW1lKSk7CisgICAgICAgIHVuc2lnbmVkIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0g
V1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIC1maXJz
dEZyZWVSZWdpc3RlciArIENhbGxGcmFtZTo6b2Zmc2V0Rm9yKGFyZ0NvdW50ICsgMSkpOworICAg
ICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFt
ZS0+cmVnaXN0ZXJzKCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7CisgICAgICAgIGlmIChh
cmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNp
dHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKKyAgICAgICAgICAgIHRocm93U3Rh
Y2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwpAQCAtMjAyLDkgKzE5MywxMCBAQCBD
YWxsRnJhbWUqIHNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhDCiAKICAgICBKU09iamVjdCog
YXJnT2JqZWN0ID0gYXNPYmplY3QoYXJndW1lbnRzKTsKICAgICB1bnNpZ25lZCBhcmdDb3VudCA9
IGFyZ09iamVjdC0+Z2V0KGNhbGxGcmFtZSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoKS50b1VJbnQzMihjYWxsRnJhbWUpOwotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0g
Q2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lz
dGVyIC0gQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7Ci0gICAgaWYgKGFyZ0Nv
dW50ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFt
ZS0+cmVnaXN0ZXJzKCkpKSB7Ci0gICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlv
bihjYWxsRnJhbWUsICBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAg
dW5zaWduZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxl
T2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lzdGVyICsgQ2FsbEZy
YW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7CisgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJh
bWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVkQ2Fs
bGVlRnJhbWVPZmZzZXQpOworICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1l
bnRzIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMo
KSkpIHsKKyAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC00MjEsNyAr
NDEzLDYgQEAgc3RhdGljIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrVmlzaXRvcgogewogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gdmlzaXRvci0+Y2FsbEZyYW1lKCk7CiAgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSB2aXNpdG9yLT5jb2RlQmxvY2soKTsKLSAgICBDb2RlQmxvY2sqIG9s
ZENvZGVCbG9jayA9IGNvZGVCbG9jazsKICAgICBKU1Njb3BlKiBzY29wZSA9IGNhbGxGcmFtZS0+
c2NvcGUoKTsKIAogICAgIGlmIChEZWJ1Z2dlciogZGVidWdnZXIgPSBjYWxsRnJhbWUtPnZtRW50
cnlHbG9iYWxPYmplY3QoKS0+ZGVidWdnZXIoKSkgewpAQCAtNDMyLDE2ICs0MjMsMTYgQEAgc3Rh
dGljIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrVmlzaXRvcgogICAgIH0KIAogICAgIEpTVmFs
dWUgYWN0aXZhdGlvbjsKLSAgICBpZiAob2xkQ29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0
aW9uQ29kZSAmJiBvbGRDb2RlQmxvY2stPm5lZWRzQWN0aXZhdGlvbigpKSB7CisgICAgaWYgKGNv
ZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUgJiYgY29kZUJsb2NrLT5uZWVkc0Fj
dGl2YXRpb24oKSkgewogI2lmIEVOQUJMRShERkdfSklUKQogICAgICAgICBSRUxFQVNFX0FTU0VS
VCghdmlzaXRvci0+aXNJbmxpbmVkRnJhbWUoKSk7CiAjZW5kaWYKLSAgICAgICAgYWN0aXZhdGlv
biA9IGNhbGxGcmFtZS0+dW5jaGVja2VkUihvbGRDb2RlQmxvY2stPmFjdGl2YXRpb25SZWdpc3Rl
cigpLm9mZnNldCgpKS5qc1ZhbHVlKCk7CisgICAgICAgIGFjdGl2YXRpb24gPSBjYWxsRnJhbWUt
PnVuY2hlY2tlZFIoY29kZUJsb2NrLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKS5vZmZzZXQoKSkuanNW
YWx1ZSgpOwogICAgICAgICBpZiAoYWN0aXZhdGlvbikKICAgICAgICAgICAgIGpzQ2FzdDxKU0Fj
dGl2YXRpb24qPihhY3RpdmF0aW9uKS0+dGVhck9mZigqc2NvcGUtPnZtKCkpOwogICAgIH0KIAot
ICAgIGlmIChvbGRDb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlICYmIG9sZENv
ZGVCbG9jay0+dXNlc0FyZ3VtZW50cygpKSB7CisgICAgaWYgKGNvZGVCbG9jay0+Y29kZVR5cGUo
KSA9PSBGdW5jdGlvbkNvZGUgJiYgY29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpIHsKICAgICAg
ICAgaWYgKEFyZ3VtZW50cyogYXJndW1lbnRzID0gdmlzaXRvci0+ZXhpc3RpbmdBcmd1bWVudHMo
KSkgewogICAgICAgICAgICAgaWYgKGFjdGl2YXRpb24pCiAgICAgICAgICAgICAgICAgYXJndW1l
bnRzLT5kaWRUZWFyT2ZmQWN0aXZhdGlvbihjYWxsRnJhbWUsIGpzQ2FzdDxKU0FjdGl2YXRpb24q
PihhY3RpdmF0aW9uKSk7CkBAIC00NTUsMTEgKzQ0Niw3IEBAIHN0YXRpYyBib29sIHVud2luZENh
bGxGcmFtZShTdGFja1Zpc2l0b3IKICAgICB9CiAKICAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1l
ID0gY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgpOwotICAgIGlmIChjYWxsZXJGcmFtZS0+aXNWTUVu
dHJ5U2VudGluZWwoKSkgewotICAgICAgICBjYWxsRnJhbWUtPnZtKCkudG9wQ2FsbEZyYW1lID0g
Y2FsbGVyRnJhbWUtPnZtRW50cnlTZW50aW5lbENhbGxlckZyYW1lKCk7Ci0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuICFjYWxsZXJGcmFt
ZS0+aXNWTUVudHJ5U2VudGluZWwoKTsKIH0KIAogc3RhdGljIFN0YWNrRnJhbWVDb2RlVHlwZSBn
ZXRTdGFja0ZyYW1lQ29kZVR5cGUoU3RhY2tWaXNpdG9yJiB2aXNpdG9yKQpAQCAtNjYyLDcgKzY0
OSwxNyBAQCBwcml2YXRlOgogCiBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8qIEludGVycHJldGVy
Ojp1bndpbmQoQ2FsbEZyYW1lKiYgY2FsbEZyYW1lLCBKU1ZhbHVlJiBleGNlcHRpb25WYWx1ZSkK
IHsKKyAgICBpZiAoY2FsbEZyYW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpKSB7CisgICAgICAgIC8v
IFRoaXMgaGFwcGVucyB3aGVuIHdlIHRocm93IHN0YWNrIG92ZXJmbG93IGluIGEgZnVuY3Rpb24g
dGhhdCBpcyBjYWxsZWQKKyAgICAgICAgLy8gZGlyZWN0bHkgZnJvbSBjYWxsVG9KYXZhU2NyaXB0
LiBTdGFjayBvdmVyZmxvdyB0aHJvd3MgdGhlIGV4Y2VwdGlvbiBpbiB0aGUKKyAgICAgICAgLy8g
Y29udGV4dCBvZiB0aGUgY2FsbGVyLiBJbiB0aGF0IGNhc2UgdGhlIGNhbGxlciBpcyB0aGUgc2Vu
dGluZWwgZnJhbWUuIFRoZQorICAgICAgICAvLyByaWdodCB0aGluZyB0byBkbyBpcyB0byBwcmV0
ZW5kIHRoYXQgdGhlIGV4Y2VwdGlvbiBpcyB1bmNhdWdodCBzbyB0aGF0IHdlCisgICAgICAgIC8v
IGdvIHRvIHRoZSB1bmNhdWdodCBleGNlcHRpb24gaGFuZGxlciwgd2hpY2ggcmV0dXJucyB0aHJv
dWdoIGNhbGxUb0phdmFTY3JpcHQuCisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKICAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CisgICAgQVNT
RVJUKGNvZGVCbG9jayk7CiAgICAgYm9vbCBpc1Rlcm1pbmF0aW9uID0gZmFsc2U7CiAKICAgICBB
U1NFUlQoIWV4Y2VwdGlvblZhbHVlLmlzRW1wdHkoKSk7CkBAIC03NjcsNyArNzY0LDYgQEAgSlNW
YWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShQcm9ncmFtRXhlYwogICAgIGlmICh2bS5pc0NvbGxl
Y3RvckJ1c3koKSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCi0gICAgVk1FbnRyeVNjb3Bl
IGVudHJ5U2NvcGUodm0sIHNjb3BlLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgaWYgKCF2bS5pc1Nh
ZmVUb1JlY3Vyc2UoKSkKICAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092
ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CiAKQEAgLTg3NCw2ICs4NzAsOCBAQCBmYWlsZWRKU09O
UDoKICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgdGhlbiB3ZSBoYXZlIGFscmVhZHkgcHJvdmVuIHRo
YXQgdGhlIHNjcmlwdCBpcyBub3QgYSBKU09OCiAgICAgLy8gb2JqZWN0LgogCisgICAgVk1FbnRy
eVNjb3BlIGVudHJ5U2NvcGUodm0sIHNjb3BlLT5nbG9iYWxPYmplY3QoKSk7CisKICAgICAvLyBD
b21waWxlIHNvdXJjZSB0byBieXRlY29kZSBpZiBuZWNlc3Nhcnk6CiAgICAgaWYgKEpTT2JqZWN0
KiBlcnJvciA9IHByb2dyYW0tPmluaXRpYWxpemVHbG9iYWxQcm9wZXJ0aWVzKHZtLCBjYWxsRnJh
bWUsIHNjb3BlKSkKICAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4oY2FsbEZyYW1lLT52bSgp
LnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgZXJyb3IpKTsKQEAgLTg4OCw5ICs4ODYsNiBAQCBm
YWlsZWRKU09OUDoKIAogICAgIEFTU0VSVChjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSA9PSAx
KTsgLy8gMSBwYXJhbWV0ZXIgZm9yICd0aGlzJy4KIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFj
ay5lbnRyeUNoZWNrKGNvZGVCbG9jaywgMSkpKQotICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVy
bih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKLQogICAgIFByb3RvQ2FsbEZy
YW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJsb2NrLCBz
Y29wZSwgMCwgdGhpc09iaiwgMSk7CiAKQEAgLTkwMyw3ICs4OTgsNyBAQCBmYWlsZWRKU09OUDoK
ICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdl
dCgpKTsKICAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cp
OwogCi0gICAgICAgIHJlc3VsdCA9IHByb2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhlY3V0
ZSgmdm0sICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpOworICAgICAg
ICByZXN1bHQgPSBwcm9ncmFtLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJv
dG9DYWxsRnJhbWUpOwogICAgIH0KIAogICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIg
PSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKQEAgLTk1MSw5ICs5NDYsNiBAQCBKU1ZhbHVlIEludGVy
cHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhCiAgICAgaWYgKFVOTElLRUxZKHZtLndhdGNoZG9n
LmRpZEZpcmUoY2FsbEZyYW1lKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1Rlcm1pbmF0ZWRFeGVj
dXRpb25FeGNlcHRpb24oY2FsbEZyYW1lKTsKIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5l
bnRyeUNoZWNrKG5ld0NvZGVCbG9jaywgYXJnc0NvdW50KSkpCi0gICAgICAgIHJldHVybiBjaGVj
a2VkUmV0dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwotCiAgICAgUHJv
dG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChuZXdD
b2RlQmxvY2ssIHNjb3BlLCBmdW5jdGlvbiwgdGhpc1ZhbHVlLCBhcmdzQ291bnQsIGFyZ3MuZGF0
YSgpKTsKIApAQCAtOTY3LDkgKzk1OSwxMiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRl
Q2FsbChDYWxsRnJhCiAKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKICAgICAgICAgaWYg
KGlzSlNDYWxsKQotICAgICAgICAgICAgcmVzdWx0ID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVj
dXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2Fs
bEZyYW1lLCBtX3N0YWNrLmdldFRvcE9mU3RhY2soKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9OYXRpdmVGdW5jdGlvbihyZWludGVy
cHJldF9jYXN0PHZvaWQqPihjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0udG9wQ2FsbEZy
YW1lLCAmcHJvdG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKSk7CisgICAgICAg
ICAgICByZXN1bHQgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJ
VENvZGVGb3JDYWxsKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOworICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9OYXRpdmVG
dW5jdGlvbihyZWludGVycHJldF9jYXN0PHZvaWQqPihjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24p
LCAmdm0sICZwcm90b0NhbGxGcmFtZSkpOworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS0+aGFk
RXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0ganNOdWxsKCk7CisgICAgICAg
IH0KICAgICB9CiAKICAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxl
ZFByb2ZpbGVyKCkpCkBAIC0xMDE5LDkgKzEwMTQsNiBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6
OmV4ZWN1dGVDb25zdHJ1Y3QoCiAgICAgaWYgKFVOTElLRUxZKHZtLndhdGNoZG9nLmRpZEZpcmUo
Y2FsbEZyYW1lKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNl
cHRpb24oY2FsbEZyYW1lKTsKIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5lbnRyeUNoZWNr
KG5ld0NvZGVCbG9jaywgYXJnc0NvdW50KSkpCi0gICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJu
KHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwotCiAgICAgUHJvdG9DYWxsRnJh
bWUgcHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChuZXdDb2RlQmxvY2ss
IHNjb3BlLCBjb25zdHJ1Y3RvciwganNVbmRlZmluZWQoKSwgYXJnc0NvdW50LCBhcmdzLmRhdGEo
KSk7CiAKQEAgLTEwMzUsOSArMTAyNyw5IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0
ZUNvbnN0cnVjdCgKIAogICAgICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlLgogICAgICAgICBpZiAo
aXNKU0NvbnN0cnVjdCkKLSAgICAgICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdERhdGEuanMuZnVu
Y3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0KCktPmV4ZWN1dGUo
JnZtLCAmcHJvdG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICAgICAg
ICAgIHJlc3VsdCA9IGNvbnN0cnVjdERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0
ZWRKSVRDb2RlRm9yQ29uc3RydWN0KCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwog
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxs
VG9OYXRpdmVGdW5jdGlvbihyZWludGVycHJldF9jYXN0PHZvaWQqPihjb25zdHJ1Y3REYXRhLm5h
dGl2ZS5mdW5jdGlvbiksICZ2bS50b3BDYWxsRnJhbWUsICZwcm90b0NhbGxGcmFtZSwgbV9zdGFj
ay5nZXRUb3BPZlN0YWNrKCkpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29k
ZShjYWxsVG9OYXRpdmVGdW5jdGlvbihyZWludGVycHJldF9jYXN0PHZvaWQqPihjb25zdHJ1Y3RE
YXRhLm5hdGl2ZS5mdW5jdGlvbiksICZ2bSwgJnByb3RvQ2FsbEZyYW1lKSk7CiAKICAgICAgICAg
ICAgIGlmICghY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChyZXN1bHQuaXNPYmplY3QoKSk7CkBAIC0xMDcyLDExICsxMDY0LDYgQEAgQ2Fs
bEZyYW1lQ2xvc3VyZSBJbnRlcnByZXRlcjo6cHJlcGFyZUZvcgogCiAgICAgc2l6ZV90IGFyZ3ND
b3VudCA9IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOwogCi0gICAgaWYgKFVOTElLRUxZKCFt
X3N0YWNrLmVudHJ5Q2hlY2sobmV3Q29kZUJsb2NrLCBhcmdzQ291bnQpKSkgewotICAgICAgICB0
aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwotICAgICAgICByZXR1cm4gQ2FsbEZy
YW1lQ2xvc3VyZSgpOwotICAgIH0KLQogICAgIHByb3RvQ2FsbEZyYW1lLT5pbml0KG5ld0NvZGVC
bG9jaywgc2NvcGUsIGZ1bmN0aW9uLCBqc1VuZGVmaW5lZCgpLCBhcmdzQ291bnQsIGFyZ3MpOwog
ICAgIC8vIFJldHVybiB0aGUgc3VjY2Vzc2Z1bCBjbG9zdXJlOgogICAgIENhbGxGcmFtZUNsb3N1
cmUgcmVzdWx0ID0geyBjYWxsRnJhbWUsIHByb3RvQ2FsbEZyYW1lLCBmdW5jdGlvbiwgZnVuY3Rp
b25FeGVjdXRhYmxlLCAmdm0sIHNjb3BlLCBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSwg
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgfTsKQEAgLTExMDcsNyArMTA5NCw3IEBAIEpTVmFs
dWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2wKICAgICAgICAgU2FtcGxpbmdUb29s
OjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgV2F0Y2hk
b2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cpOwogCi0gICAgICAgIHJlc3VsdCA9
IGNsb3N1cmUuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5l
eGVjdXRlKCZ2bSwgY2xvc3VyZS5wcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNr
KCkpOworICAgICAgICByZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJh
dGVkSklUQ29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJvdG9DYWxsRnJhbWUp
OwogICAgIH0KIAogICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVk
UHJvZmlsZXIoKSkKQEAgLTExNzgsOSArMTE2NSw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4
ZWN1dGUoRXZhbEV4ZWN1dGEKIAogICAgIEFTU0VSVChjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMo
KSA9PSAxKTsgLy8gMSBwYXJhbWV0ZXIgZm9yICd0aGlzJy4KIAotICAgIGlmIChVTkxJS0VMWSgh
bV9zdGFjay5lbnRyeUNoZWNrKGNvZGVCbG9jaywgMSkpKQotICAgICAgICByZXR1cm4gY2hlY2tl
ZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKLQogICAgIFByb3Rv
Q2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJs
b2NrLCBzY29wZSwgMCwgdGhpc1ZhbHVlLCAxKTsKIApAQCAtMTE5Myw3ICsxMTc3LDcgQEAgSlNW
YWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YQogICAgICAgICBTYW1wbGluZ1Rv
b2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwogICAgICAgICBXYXRj
aGRvZzo6U2NvcGUgd2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZyk7CiAKLSAgICAgICAgcmVzdWx0
ID0gZXZhbC0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1l
LCBtX3N0YWNrLmdldFRvcE9mU3RhY2soKSk7CisgICAgICAgIHJlc3VsdCA9IGV2YWwtPmdlbmVy
YXRlZEpJVENvZGUoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSk7CiAgICAgfQogCiAg
ICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVy
LmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDE1IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICAgICAgQVNTRVJUKCFjYWxsRnJhbWUtPmlzVk1FbnRyeVNlbnRp
bmVsKCkpOwogICAgICAgICAgICAgdm0tPnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKICAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgZW51bSBWTUVudHJ5U2VudGluZWxPS1RhZyB7IFZNRW50
cnlTZW50aW5lbE9LIH07CisgICAgICAgIEFMV0FZU19JTkxJTkUgTmF0aXZlQ2FsbEZyYW1lVHJh
Y2VyKFZNKiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIFZNRW50cnlTZW50aW5lbE9LVGFnKQor
ICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodm0pOworICAgICAgICAgICAgQVNTRVJUKGNh
bGxGcmFtZSk7CisgICAgICAgICAgICBpZiAoIWNhbGxGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwo
KSkKKyAgICAgICAgICAgICAgICB2bS0+dG9wQ2FsbEZyYW1lID0gY2FsbEZyYW1lOworICAgICAg
ICB9CiAgICAgfTsKIAogICAgIGNsYXNzIEludGVycHJldGVyIHsKQEAgLTE5MCwxNCArMTk5LDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBWTTsKIAogICAgIHB1Ymxp
YzoKLSAgICAgICAgY2xhc3MgRXJyb3JIYW5kbGluZ01vZGUgewotICAgICAgICBwdWJsaWM6Ci0g
ICAgICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBFcnJvckhhbmRsaW5nTW9kZShFeGVjU3RhdGUq
KTsKLSAgICAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIH5FcnJvckhhbmRsaW5nTW9kZSgpOwot
ICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAgSW50ZXJwcmV0ZXImIG1faW50ZXJwcmV0ZXI7
Ci0gICAgICAgIH07Ci0KICAgICAgICAgSW50ZXJwcmV0ZXIoVk0gJik7CiAgICAgICAgIH5JbnRl
cnByZXRlcigpOwogICAgICAgICAKQEAgLTIzNyw4ICsyMzgsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgCiAgICAgICAgIFNhbXBsaW5nVG9vbCogc2FtcGxlcigpIHsgcmV0dXJuIG1fc2Ft
cGxlci5nZXQoKTsgfQogCi0gICAgICAgIGJvb2wgaXNJbkVycm9ySGFuZGxpbmdNb2RlKCkgeyBy
ZXR1cm4gbV9lcnJvckhhbmRsaW5nTW9kZVJlZW50cnk7IH0KLQogICAgICAgICBORVZFUl9JTkxJ
TkUgSGFuZGxlckluZm8qIHVud2luZChDYWxsRnJhbWUqJiwgSlNWYWx1ZSYpOwogICAgICAgICBO
RVZFUl9JTkxJTkUgdm9pZCBkZWJ1ZyhDYWxsRnJhbWUqLCBEZWJ1Z0hvb2tJRCk7CiAgICAgICAg
IEpTU3RyaW5nKiBzdGFja1RyYWNlQXNTdHJpbmcoRXhlY1N0YXRlKiwgVmVjdG9yPFN0YWNrRnJh
bWU+KTsKQEAgLTI4Niw3ICsyODUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB9OwogCiAgICAg
SlNWYWx1ZSBldmFsKENhbGxGcmFtZSopOwotICAgIENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJh
bWVGb3JWYXJhcmdzKENhbGxGcmFtZSosIEpTU3RhY2sqLCBKU1ZhbHVlLCBpbnQpOworICAgIENh
bGxGcmFtZSogc2l6ZUZyYW1lRm9yVmFyYXJncyhDYWxsRnJhbWUqLCBKU1N0YWNrKiwgSlNWYWx1
ZSwgaW50KTsKICAgICB2b2lkIGxvYWRWYXJhcmdzKENhbGxGcmFtZSosIENhbGxGcmFtZSosIEpT
VmFsdWUsIEpTVmFsdWUpOwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsOSArMzEsMTEgQEAKIAogI2luY2x1ZGUgIkNvbnNlcnZh
dGl2ZVJvb3RzLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcHRpb25z
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKIHN0YXRp
YyBzaXplX3QgY29tbWl0dGVkQnl0ZXNDb3VudCA9IDA7CiAKIHN0YXRpYyBNdXRleCYgc3RhY2tT
dGF0aXN0aWNzTXV0ZXgoKQpAQCAtNDEsODcgKzQzLDk4IEBAIHN0YXRpYyBNdXRleCYgc3RhY2tT
dGF0aXN0aWNzTXV0ZXgoKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHN0YXRpY011
dGV4LCAoKSk7CiAgICAgcmV0dXJuIHN0YXRpY011dGV4OwogfSAgICAKKyNlbmRpZiAvLyBFTkFC
TEUoTExJTlRfQ19MT09QKQogCi1KU1N0YWNrOjpKU1N0YWNrKFZNJiB2bSwgc2l6ZV90IGNhcGFj
aXR5KQorSlNTdGFjazo6SlNTdGFjayhWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQotICAgICwgbV9l
bmQoMCkKICAgICAsIG1fdG9wQ2FsbEZyYW1lKHZtLnRvcENhbGxGcmFtZSkKKyNpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQorICAgICwgbV9lbmQoMCkKKyAgICAsIG1fcmVzZXJ2ZWRab25lU2l6ZUlu
UmVnaXN0ZXJzKDApCisjZW5kaWYKIHsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIHNp
emVfdCBjYXBhY2l0eSA9IE9wdGlvbnM6Om1heFBlclRocmVhZFN0YWNrVXNhZ2UoKTsKICAgICBB
U1NFUlQoY2FwYWNpdHkgJiYgaXNQYWdlQWxpZ25lZChjYXBhY2l0eSkpOwogCi0gICAgbV9yZXNl
cnZhdGlvbiA9IFBhZ2VSZXNlcnZhdGlvbjo6cmVzZXJ2ZShyb3VuZFVwQWxsb2NhdGlvblNpemUo
Y2FwYWNpdHkgKiBzaXplb2YoUmVnaXN0ZXIpLCBjb21taXRTaXplKSwgT1NBbGxvY2F0b3I6OkpT
Vk1TdGFja1BhZ2VzKTsKLSAgICB1cGRhdGVTdGFja0xpbWl0KGhpZ2hBZGRyZXNzKCkpOwotICAg
IG1fY29tbWl0RW5kID0gaGlnaEFkZHJlc3MoKTsKKyAgICBtX3Jlc2VydmF0aW9uID0gUGFnZVJl
c2VydmF0aW9uOjpyZXNlcnZlKFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihjb21taXRTaXplLCBj
YXBhY2l0eSksIE9TQWxsb2NhdG9yOjpKU1ZNU3RhY2tQYWdlcyk7CisgICAgc2V0U3RhY2tMaW1p
dChoaWdoQWRkcmVzcygpKTsKKyAgICBtX2NvbW1pdFRvcCA9IGhpZ2hBZGRyZXNzKCk7CiAgICAg
Ci0gICAgbV9sYXN0U3RhY2tUb3AgPSBnZXRCYXNlT2ZTdGFjaygpOwotCi0gICAgZGlzYWJsZUVy
cm9yU3RhY2tSZXNlcnZlKCk7CisgICAgbV9sYXN0U3RhY2tUb3AgPSBiYXNlT2ZTdGFjaygpOwor
I2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKICAgICBtX3RvcENhbGxGcmFtZSA9IDA7
CiB9CiAKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogSlNTdGFjazo6fkpTU3RhY2soKQogewot
ICAgIHZvaWQqIGhpZ2hBZGRyZXNzID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3RhdGljX2Nh
c3Q8Y2hhcio+KG1fcmVzZXJ2YXRpb24uYmFzZSgpKSArIG1fcmVzZXJ2YXRpb24uc2l6ZSgpKTsK
LSAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fY29t
bWl0RW5kKSwgcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oaGlnaEFkZHJlc3MpIC0gcmVpbnRl
cnByZXRfY2FzdDxpbnRwdHJfdD4obV9jb21taXRFbmQpKTsKLSAgICBhZGRUb0NvbW1pdHRlZEJ5
dGVDb3VudCgtKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGhpZ2hBZGRyZXNzKSAtIHJlaW50
ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KG1fY29tbWl0RW5kKSkpOworICAgIHB0cmRpZmZfdCBzaXpl
VG9EZWNvbW1pdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGhpZ2hBZGRyZXNzKCkpIC0gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRUb3ApOworICAgIG1fcmVzZXJ2YXRpb24uZGVj
b21taXQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9jb21taXRUb3ApLCBzaXplVG9EZWNvbW1p
dCk7CisgICAgYWRkVG9Db21taXR0ZWRCeXRlQ291bnQoLXNpemVUb0RlY29tbWl0KTsKICAgICBt
X3Jlc2VydmF0aW9uLmRlYWxsb2NhdGUoKTsKIH0KIAotYm9vbCBKU1N0YWNrOjpncm93U2xvd0Nh
c2UoUmVnaXN0ZXIqIG5ld0VuZCkKK2Jvb2wgSlNTdGFjazo6Z3Jvd1Nsb3dDYXNlKFJlZ2lzdGVy
KiBuZXdUb3BPZlN0YWNrKQogeworICAgIFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrV2l0aFJlc2Vy
dmVkWm9uZSA9IG5ld1RvcE9mU3RhY2sgLSBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVyczsK
KwogICAgIC8vIElmIHdlIGhhdmUgYWxyZWFkeSBjb21taXR0ZWQgZW5vdWdoIG1lbW9yeSB0byBz
YXRpc2Z5IHRoaXMgcmVxdWVzdCwKICAgICAvLyBqdXN0IHVwZGF0ZSB0aGUgZW5kIHBvaW50ZXIg
YW5kIHJldHVybi4KLSAgICBpZiAobmV3RW5kID49IG1fY29tbWl0RW5kKSB7Ci0gICAgICAgIHVw
ZGF0ZVN0YWNrTGltaXQobmV3RW5kKTsKKyAgICBpZiAobmV3VG9wT2ZTdGFja1dpdGhSZXNlcnZl
ZFpvbmUgPj0gbV9jb21taXRUb3ApIHsKKyAgICAgICAgc2V0U3RhY2tMaW1pdChuZXdUb3BPZlN0
YWNrKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgLy8gQ29tcHV0ZSB0aGUg
Y2h1bmsgc2l6ZSBvZiBhZGRpdGlvbmFsIG1lbW9yeSB0byBjb21taXQsIGFuZCBzZWUgaWYgd2UK
ICAgICAvLyBoYXZlIGl0IGlzIHN0aWxsIHdpdGhpbiBvdXIgYnVkZ2V0LiBJZiBub3QsIHdlJ2xs
IGZhaWwgdG8gZ3JvdyBhbmQKICAgICAvLyByZXR1cm4gZmFsc2UuCi0gICAgbG9uZyBkZWx0YSA9
IHJvdW5kVXBBbGxvY2F0aW9uU2l6ZShyZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVu
ZCkgLSByZWludGVycHJldF9jYXN0PGNoYXIqPihuZXdFbmQpLCBjb21taXRTaXplKTsKLSAgICBp
ZiAocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpIC0gZGVsdGEgPD0gcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4obV91c2VhYmxlRW5kKSkKKyAgICBwdHJkaWZmX3QgZGVsdGEgPSBy
ZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdFRvcCkgLSByZWludGVycHJldF9jYXN0PGNo
YXIqPihuZXdUb3BPZlN0YWNrV2l0aFJlc2VydmVkWm9uZSk7CisgICAgZGVsdGEgPSBXVEY6OnJv
dW5kVXBUb011bHRpcGxlT2YoY29tbWl0U2l6ZSwgZGVsdGEpOworICAgIFJlZ2lzdGVyKiBuZXdD
b21taXRUb3AgPSBtX2NvbW1pdFRvcCAtIChkZWx0YSAvIHNpemVvZihSZWdpc3RlcikpOworICAg
IGlmIChuZXdDb21taXRUb3AgPCByZXNlcnZhdGlvblRvcCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAvLyBPdGhlcndpc2UsIHRoZSBncm93dGggaXMgc3RpbGwgd2l0aGluIG91ciBi
dWRnZXQuIEdvIGFoZWFkIGFuZCBjb21taXQKICAgICAvLyBpdCBhbmQgcmV0dXJuIHRydWUuCi0g
ICAgbV9yZXNlcnZhdGlvbi5jb21taXQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRF
bmQpIC0gZGVsdGEsIGRlbHRhKTsKKyAgICBtX3Jlc2VydmF0aW9uLmNvbW1pdChuZXdDb21taXRU
b3AsIGRlbHRhKTsKICAgICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChkZWx0YSk7Ci0gICAgbV9j
b21taXRFbmQgPSByZWludGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KG1fY29tbWl0RW5kKSAtIGRlbHRhKTsKLSAgICB1cGRhdGVTdGFja0xpbWl0KG5l
d0VuZCk7CisgICAgbV9jb21taXRUb3AgPSBuZXdDb21taXRUb3A7CisgICAgc2V0U3RhY2tMaW1p
dChuZXdUb3BPZlN0YWNrKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBKU1N0YWNrOjpn
YXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9v
dHMpCiB7Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKGdldEJhc2VPZlN0YWNrKCksIGdldFRv
cE9mU3RhY2soKSk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHRvcE9mU3RhY2soKSArIDEs
IGhpZ2hBZGRyZXNzKCkpOwogfQogCiB2b2lkIEpTU3RhY2s6OmdhdGhlckNvbnNlcnZhdGl2ZVJv
b3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgSklUU3R1YlJvdXRpbmVT
ZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzKQogewotICAgIGNv
bnNlcnZhdGl2ZVJvb3RzLmFkZChnZXRCYXNlT2ZTdGFjaygpLCBnZXRUb3BPZlN0YWNrKCksIGpp
dFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHRv
cE9mU3RhY2soKSArIDEsIGhpZ2hBZGRyZXNzKCksIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nr
cyk7CiB9CiAKIHZvaWQgSlNTdGFjazo6c2FuaXRpemVTdGFjaygpCiB7Ci0gICAgQVNTRVJUKGdl
dFRvcE9mU3RhY2soKSA8PSBnZXRCYXNlT2ZTdGFjaygpKTsKKyAgICBBU1NFUlQodG9wT2ZTdGFj
aygpIDw9IGJhc2VPZlN0YWNrKCkpOwogICAgIAotICAgIGlmIChtX2xhc3RTdGFja1RvcCA8IGdl
dFRvcE9mU3RhY2soKSkgewotICAgICAgICBjaGFyKiBiZWdpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KG1fbGFzdFN0YWNrVG9wKTsKLSAgICAgICAgY2hhciogZW5kID0gcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4oZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICBpZiAobV9sYXN0U3RhY2tUb3AgPCB0
b3BPZlN0YWNrKCkpIHsKKyAgICAgICAgY2hhciogYmVnaW4gPSByZWludGVycHJldF9jYXN0PGNo
YXIqPihtX2xhc3RTdGFja1RvcCArIDEpOworICAgICAgICBjaGFyKiBlbmQgPSByZWludGVycHJl
dF9jYXN0PGNoYXIqPih0b3BPZlN0YWNrKCkgKyAxKTsKICAgICAgICAgbWVtc2V0KGJlZ2luLCAw
LCBlbmQgLSBiZWdpbik7CiAgICAgfQogICAgIAotICAgIG1fbGFzdFN0YWNrVG9wID0gZ2V0VG9w
T2ZTdGFjaygpOworICAgIG1fbGFzdFN0YWNrVG9wID0gdG9wT2ZTdGFjaygpOwogfQogCiB2b2lk
IEpTU3RhY2s6OnJlbGVhc2VFeGNlc3NDYXBhY2l0eSgpCiB7Ci0gICAgcHRyZGlmZl90IGRlbHRh
ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGhpZ2hBZGRyZXNzKCkpIC0gcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KG1fY29tbWl0RW5kKTsKLSAgICBtX3Jlc2VydmF0aW9uLmRlY29t
bWl0KG1fY29tbWl0RW5kLCBkZWx0YSk7CisgICAgUmVnaXN0ZXIqIGhpZ2hBZGRyZXNzV2l0aFJl
c2VydmVkWm9uZSA9IGhpZ2hBZGRyZXNzKCkgLSBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVy
czsKKyAgICBwdHJkaWZmX3QgZGVsdGEgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihoaWdoQWRk
cmVzc1dpdGhSZXNlcnZlZFpvbmUpIC0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRU
b3ApOworICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQobV9jb21taXRUb3AsIGRlbHRhKTsKICAg
ICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudCgtZGVsdGEpOwotICAgIG1fY29tbWl0RW5kID0gaGln
aEFkZHJlc3MoKTsKKyAgICBtX2NvbW1pdFRvcCA9IGhpZ2hBZGRyZXNzV2l0aFJlc2VydmVkWm9u
ZTsKIH0KIAogdm9pZCBKU1N0YWNrOjppbml0aWFsaXplVGhyZWFkaW5nKCkKQEAgLTEyOSwxMiAr
MTQyLDYgQEAgdm9pZCBKU1N0YWNrOjppbml0aWFsaXplVGhyZWFkaW5nKCkKICAgICBzdGFja1N0
YXRpc3RpY3NNdXRleCgpOwogfQogCi1zaXplX3QgSlNTdGFjazo6Y29tbWl0dGVkQnl0ZUNvdW50
KCkKLXsKLSAgICBNdXRleExvY2tlciBsb2NrZXIoc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKSk7Ci0g
ICAgcmV0dXJuIGNvbW1pdHRlZEJ5dGVzQ291bnQ7Ci19Ci0KIHZvaWQgSlNTdGFjazo6YWRkVG9D
b21taXR0ZWRCeXRlQ291bnQobG9uZyBieXRlQ291bnQpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKHN0YWNrU3RhdGlzdGljc011dGV4KCkpOwpAQCAtMTQyLDI1ICsxNDksNDEgQEAgdm9pZCBK
U1N0YWNrOjphZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChsbwogICAgIGNvbW1pdHRlZEJ5dGVzQ291
bnQgKz0gYnl0ZUNvdW50OwogfQogCi12b2lkIEpTU3RhY2s6OmVuYWJsZUVycm9yU3RhY2tSZXNl
cnZlKCkKK3ZvaWQgSlNTdGFjazo6c2V0UmVzZXJ2ZWRab25lU2l6ZShzaXplX3QgcmVzZXJ2ZWRa
b25lU2l6ZSkKIHsKLSAgICBtX3VzZWFibGVFbmQgPSByZXNlcnZhdGlvbkVuZCgpOworICAgIG1f
cmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzID0gcmVzZXJ2ZWRab25lU2l6ZSAvIHNpemVvZihS
ZWdpc3Rlcik7CisgICAgaWYgKG1fY29tbWl0VG9wID49IChtX2VuZCArIDEpIC0gbV9yZXNlcnZl
ZFpvbmVTaXplSW5SZWdpc3RlcnMpCisgICAgICAgIGdyb3dTbG93Q2FzZShtX2VuZCArIDEpOwog
fQorI2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKLXZvaWQgSlNTdGFjazo6ZGlzYWJs
ZUVycm9yU3RhY2tSZXNlcnZlKCkKKyNpZiAhRU5BQkxFKExMSU5UX0NfTE9PUCkKK1JlZ2lzdGVy
KiBKU1N0YWNrOjpsb3dBZGRyZXNzKCkgY29uc3QKIHsKLSAgICBjaGFyKiB1c2VhYmxlRW5kID0g
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4ocmVzZXJ2YXRpb25FbmQoKSkgKyBjb21taXRTaXplOwot
ICAgIG1fdXNlYWJsZUVuZCA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4odXNlYWJs
ZUVuZCk7CisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253
YXJkKCkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4obV92bS5zdGFj
a0xpbWl0KCkpOworfQogCi0gICAgLy8gQnkgdGhlIHRpbWUgd2UgZ2V0IGhlcmUsIHdlIGFyZSBn
dWFyYW50ZWVkIHRvIGJlIGRlc3RydWN0aW5nIHRoZSBsYXN0Ci0gICAgLy8gSW50ZXJwcmV0ZXI6
OkVycm9ySGFuZGxpbmdNb2RlIHRoYXQgZW5hYmxlZCB0aGlzIHJlc2VydmUgaW4gdGhlIGZpcnN0
Ci0gICAgLy8gcGxhY2UuIFRoYXQgbWVhbnMgdGhlIHN0YWNrIHNwYWNlIGJleW9uZCBtX3VzZWFi
bGVFbmQgYmVmb3JlIHdlCi0gICAgLy8gZW5hYmxlZCB0aGUgcmVzZXJ2ZSB3YXMgbm90IHByZXZp
b3VzbHkgaW4gdXNlLiBIZW5jZSwgaXQgaXMgc2FmZSB0bwotICAgIC8vIHNocmluayBiYWNrIHRv
IHRoYXQgbV91c2VhYmxlRW5kLgotICAgIGlmIChtX2VuZCA8IG1fdXNlYWJsZUVuZCkgewotICAg
ICAgICBBU1NFUlQobV90b3BDYWxsRnJhbWUtPmZyYW1lRXh0ZW50KCkgPj0gbV91c2VhYmxlRW5k
KTsKLSAgICAgICAgc2hyaW5rKG1fdXNlYWJsZUVuZCk7Ci0gICAgfQorUmVnaXN0ZXIqIEpTU3Rh
Y2s6OmhpZ2hBZGRyZXNzKCkgY29uc3QKK3sKKyAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0
YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
UmVnaXN0ZXIqPih3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5vcmlnaW4oKSk7Cit9CisjZW5kaWYg
Ly8gIUVOQUJMRShMTElOVF9DX0xPT1ApCisKK3NpemVfdCBKU1N0YWNrOjpjb21taXR0ZWRCeXRl
Q291bnQoKQoreworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKHN0YWNrU3RhdGlzdGljc011dGV4KCkpOworICAgIHJldHVybiBjb21taXR0ZWRCeXRlc0Nv
dW50OworI2Vsc2UKKyAgICAvLyBXaGVuIHVzaW5nIHRoZSBDIHN0YWNrLCB3ZSBkb24ndCBrbm93
IGhvdyBtYW55IHN0YWNrIHBhZ2VzIGFyZSBhY3R1YWxseQorICAgIC8vIGNvbW1pdHRlZC4gU28s
IHdlIHVzZSB0aGUgY3VycmVudCBzdGFjayB1c2FnZSBhcyBhbiBlc3RpbWF0ZS4KKyAgICBBU1NF
UlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CisgICAgaW50
OF90KiBjdXJyZW50ID0gcmVpbnRlcnByZXRfY2FzdDxpbnQ4X3QqPigmY3VycmVudCk7CisgICAg
aW50OF90KiBoaWdoID0gcmVpbnRlcnByZXRfY2FzdDxpbnQ4X3QqPih3dGZUaHJlYWREYXRhKCku
c3RhY2soKS5vcmlnaW4oKSk7CisgICAgcmV0dXJuIGhpZ2ggLSBjdXJyZW50OworI2VuZGlmCiB9
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0pTU3RhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvSlNTdGFjay5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zNSwxMSArMzUsNiBAQAogI2luY2x1ZGUgPHd0Zi9QYWdlUmVzZXJ2YXRpb24u
aD4KICNpbmNsdWRlIDx3dGYvVk1UYWdzLmg+CiAKLSNkZWZpbmUgRU5BQkxFX0RFQlVHX0pTU1RB
Q0sgMAotI2lmICFkZWZpbmVkKE5ERUJVRykgJiYgIWRlZmluZWQoRU5BQkxFX0RFQlVHX0pTU1RB
Q0spCi0jZGVmaW5lIEVOQUJMRV9ERUJVR19KU1NUQUNLIDEKLSNlbmRpZgotCiBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgIGNsYXNzIENvZGVCbG9ja1NldDsKQEAgLTYxLDcgKzU2LDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTU3RhY2spOwogICAgIHB1
YmxpYzoKICAgICAgICAgZW51bSBDYWxsRnJhbWVIZWFkZXJFbnRyeSB7Ci0gICAgICAgICAgICBD
b2RlQmxvY2sgPSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykgLyBzaXplb2YoUmVnaXN0ZXIpLAor
ICAgICAgICAgICAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgPSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQ
QykgLyBzaXplb2YoUmVnaXN0ZXIpLAorICAgICAgICAgICAgQ29kZUJsb2NrID0gQ2FsbGVyRnJh
bWVBbmRQQ1NpemUsCiAgICAgICAgICAgICBTY29wZUNoYWluLAogICAgICAgICAgICAgQ2FsbGVl
LAogICAgICAgICAgICAgQXJndW1lbnRDb3VudCwKQEAgLTcyLDkyICs2OCw4NyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIEZpcnN0QXJndW1lbnQsCiAgICAgICAgIH07CiAKLSAgICAg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBkZWZhdWx0Q2FwYWNpdHkgPSA1MTIgKiAxMDI0OwogICAg
ICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGNvbW1pdFNpemUgPSAxNiAqIDEwMjQ7CiAgICAgICAg
IC8vIEFsbG93IDhrIG9mIGV4Y2VzcyByZWdpc3RlcnMgYmVmb3JlIHdlIHN0YXJ0IHRyeWluZyB0
byByZWFwIHRoZSBzdGFjawogICAgICAgICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IG1heEV4Y2Vz
c0NhcGFjaXR5ID0gOCAqIDEwMjQ7CiAKLSAgICAgICAgSlNTdGFjayhWTSYsIHNpemVfdCBjYXBh
Y2l0eSA9IGRlZmF1bHRDYXBhY2l0eSk7Ci0gICAgICAgIH5KU1N0YWNrKCk7CisgICAgICAgIEpT
U3RhY2soVk0mKTsKICAgICAgICAgCisgICAgICAgIGJvb2wgZW5zdXJlQ2FwYWNpdHlGb3IoUmVn
aXN0ZXIqIG5ld1RvcE9mU3RhY2spOworCisgICAgICAgIGJvb2wgY29udGFpbnNBZGRyZXNzKFJl
Z2lzdGVyKiBhZGRyZXNzKSB7IHJldHVybiAobG93QWRkcmVzcygpIDw9IGFkZHJlc3MgJiYgYWRk
cmVzcyA8IGhpZ2hBZGRyZXNzKCkpOyB9CisgICAgICAgIHN0YXRpYyBzaXplX3QgY29tbWl0dGVk
Qnl0ZUNvdW50KCk7CisKKyNpZiAhRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICAgICAgdm9pZCBn
YXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYpIHsgfQorICAgICAgICB2
b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJv
dXRpbmVTZXQmLCBDb2RlQmxvY2tTZXQmKSB7IH0KKyAgICAgICAgdm9pZCBzYW5pdGl6ZVN0YWNr
KCkgeyB9CisgICAgICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKSB7IH0KKyNl
bHNlCisgICAgICAgIH5KU1N0YWNrKCk7CisKICAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRp
dmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYpOwogICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZh
dGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2RlQmxv
Y2tTZXQmKTsKICAgICAgICAgdm9pZCBzYW5pdGl6ZVN0YWNrKCk7CiAKLSAgICAgICAgUmVnaXN0
ZXIqIGdldEJhc2VPZlN0YWNrKCkgY29uc3QKKyAgICAgICAgUmVnaXN0ZXIqIGJhc2VPZlN0YWNr
KCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGhpZ2hBZGRyZXNzKCkgLSAx
OwogICAgICAgICB9CiAKICAgICAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBoaWdo
QWRkcmVzcygpIC0gbG93QWRkcmVzcygpOyB9CiAKLSAgICAgICAgYm9vbCBncm93KFJlZ2lzdGVy
Kik7Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVDb3VudCgp
OwogICAgICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCk7CiAKLSAgICAgICAg
UmVnaXN0ZXIqIGdldFRvcE9mRnJhbWUoQ2FsbEZyYW1lKik7Ci0gICAgICAgIFJlZ2lzdGVyKiBn
ZXRTdGFydE9mRnJhbWUoQ2FsbEZyYW1lKik7Ci0gICAgICAgIFJlZ2lzdGVyKiBnZXRUb3BPZlN0
YWNrKCk7Ci0KLSAgICAgICAgYm9vbCBlbnRyeUNoZWNrKGNsYXNzIENvZGVCbG9jayosIGludCk7
CisgICAgICAgIHZvaWQgc2V0UmVzZXJ2ZWRab25lU2l6ZShzaXplX3QpOwogCi0gICAgICAgIENh
bGxGcmFtZSogcHVzaEZyYW1lKGNsYXNzIENvZGVCbG9jayosIEpTU2NvcGUqLCBpbnQgYXJnc0Nv
dW50LCBKU09iamVjdCogY2FsbGVlKTsKLQotICAgICAgICB2b2lkIHBvcEZyYW1lKENhbGxGcmFt
ZSopOwotCi0gICAgICAgIGJvb2wgY29udGFpbnNBZGRyZXNzKFJlZ2lzdGVyKiBhZGRyZXNzKSB7
IHJldHVybiAobG93QWRkcmVzcygpIDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8PSBoaWdoQWRkcmVz
cygpKTsgfQotCi0gICAgICAgIHZvaWQgZW5hYmxlRXJyb3JTdGFja1Jlc2VydmUoKTsKLSAgICAg
ICAgdm9pZCBkaXNhYmxlRXJyb3JTdGFja1Jlc2VydmUoKTsKLQotI2lmIEVOQUJMRShERUJVR19K
U1NUQUNLKQotICAgICAgICB2b2lkIGluc3RhbGxGZW5jZShDYWxsRnJhbWUqLCBjb25zdCBjaGFy
ICpmdW5jdGlvbiA9ICIiLCBpbnQgbGluZU5vID0gMCk7Ci0gICAgICAgIHZvaWQgdmFsaWRhdGVG
ZW5jZShDYWxsRnJhbWUqLCBjb25zdCBjaGFyICpmdW5jdGlvbiA9ICIiLCBpbnQgbGluZU5vID0g
MCk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgRmVuY2VTaXplID0gNDsKLSNlbHNlIC8vICFF
TkFCTEUoREVCVUdfSlNTVEFDSykKLSAgICAgICAgdm9pZCBpbnN0YWxsRmVuY2UoQ2FsbEZyYW1l
KiwgY29uc3QgY2hhciogPSAiIiwgaW50ID0gMCkgeyB9Ci0gICAgICAgIHZvaWQgdmFsaWRhdGVG
ZW5jZShDYWxsRnJhbWUqLCBjb25zdCBjaGFyKiA9ICIiLCBpbnQgPSAwKSB7IH0KLSNlbmRpZiAv
LyAhRU5BQkxFKERFQlVHX0pTU1RBQ0spCisgICAgICAgIGlubGluZSBSZWdpc3RlciogdG9wT2ZT
dGFjaygpOworI2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKICAgICBwcml2YXRlOgor
CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKICAgICAgICAgUmVnaXN0ZXIqIGxvd0FkZHJlc3Mo
KSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9lbmQ7CisgICAgICAgICAg
ICByZXR1cm4gbV9lbmQgKyAxOwogICAgICAgICB9CiAKICAgICAgICAgUmVnaXN0ZXIqIGhpZ2hB
ZGRyZXNzKCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3RfcHRyPFJlZ2lzdGVyKj4oc3RhdGljX2Nhc3Q8Y2hhcio+KG1fcmVzZXJ2YXRpb24uYmFz
ZSgpKSArIG1fcmVzZXJ2YXRpb24uc2l6ZSgpKTsKICAgICAgICAgfQorI2Vsc2UKKyAgICAgICAg
UmVnaXN0ZXIqIGxvd0FkZHJlc3MoKSBjb25zdDsKKyAgICAgICAgUmVnaXN0ZXIqIGhpZ2hBZGRy
ZXNzKCkgY29uc3Q7CisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAotICAgICAgICBS
ZWdpc3RlciogcmVzZXJ2YXRpb25FbmQoKSBjb25zdAorI2lmIEVOQUJMRShMTElOVF9DX0xPT1Ap
CisgICAgICAgIGlubGluZSBSZWdpc3RlciogdG9wT2ZGcmFtZUZvcihDYWxsRnJhbWUqKTsKKwor
ICAgICAgICBSZWdpc3RlciogcmVzZXJ2YXRpb25Ub3AoKSBjb25zdAogICAgICAgICB7Ci0gICAg
ICAgICAgICBjaGFyKiByZXNlcnZhdGlvbkVuZCA9IHN0YXRpY19jYXN0PGNoYXIqPihtX3Jlc2Vy
dmF0aW9uLmJhc2UoKSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdF9wdHI8
UmVnaXN0ZXIqPihyZXNlcnZhdGlvbkVuZCk7CisgICAgICAgICAgICBjaGFyKiByZXNlcnZhdGlv
blRvcCA9IHN0YXRpY19jYXN0PGNoYXIqPihtX3Jlc2VydmF0aW9uLmJhc2UoKSk7CisgICAgICAg
ICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0ZXIqPihyZXNlcnZhdGlvblRv
cCk7CiAgICAgICAgIH0KIAotI2lmIEVOQUJMRShERUJVR19KU1NUQUNLKQotICAgICAgICBzdGF0
aWMgSlNWYWx1ZSBnZW5lcmF0ZUZlbmNlVmFsdWUoc2l6ZV90IGFyZ0luZGV4KTsKLSAgICAgICAg
dm9pZCBpbnN0YWxsVHJhcHNBZnRlckZyYW1lKENhbGxGcmFtZSopOwotI2Vsc2UKLSAgICAgICAg
dm9pZCBpbnN0YWxsVHJhcHNBZnRlckZyYW1lKENhbGxGcmFtZSopIHsgfQotI2VuZGlmCi0KLSAg
ICAgICAgYm9vbCBncm93U2xvd0Nhc2UoUmVnaXN0ZXIqKTsKLSAgICAgICAgdm9pZCBzaHJpbmso
UmVnaXN0ZXIqKTsKKyAgICAgICAgYm9vbCBncm93KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsK
KyAgICAgICAgYm9vbCBncm93U2xvd0Nhc2UoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spOworICAg
ICAgICB2b2lkIHNocmluayhSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CiAgICAgICAgIHZvaWQg
cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KCk7CiAgICAgICAgIHZvaWQgYWRkVG9Db21taXR0ZWRCeXRl
Q291bnQobG9uZyk7CiAKLSAgICAgICAgdm9pZCB1cGRhdGVTdGFja0xpbWl0KFJlZ2lzdGVyKiBu
ZXdFbmQpOworICAgICAgICB2b2lkIHNldFN0YWNrTGltaXQoUmVnaXN0ZXIqIG5ld1RvcE9mU3Rh
Y2spOworI2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKICAgICAgICAgVk0mIG1fdm07
CisgICAgICAgIENhbGxGcmFtZSomIG1fdG9wQ2FsbEZyYW1lOworI2lmIEVOQUJMRShMTElOVF9D
X0xPT1ApCiAgICAgICAgIFJlZ2lzdGVyKiBtX2VuZDsKLSAgICAgICAgUmVnaXN0ZXIqIG1fY29t
bWl0RW5kOwotICAgICAgICBSZWdpc3RlciogbV91c2VhYmxlRW5kOworICAgICAgICBSZWdpc3Rl
ciogbV9jb21taXRUb3A7CiAgICAgICAgIFBhZ2VSZXNlcnZhdGlvbiBtX3Jlc2VydmF0aW9uOwot
ICAgICAgICBDYWxsRnJhbWUqJiBtX3RvcENhbGxGcmFtZTsKICAgICAgICAgUmVnaXN0ZXIqIG1f
bGFzdFN0YWNrVG9wOworICAgICAgICBwdHJkaWZmX3QgbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdp
c3RlcnM7CisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogICAgICAgICBmcmllbmQg
Y2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogICAgIH07CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMuaAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2tJbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDI2MiArMzMsNjUgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLWlubGluZSBSZWdpc3RlciogSlNTdGFjazo6Z2V0VG9wT2ZGcmFtZShD
YWxsRnJhbWUqIGZyYW1lKQoraW5saW5lIGJvb2wgSlNTdGFjazo6ZW5zdXJlQ2FwYWNpdHlGb3Io
UmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7Ci0gICAgaWYgKFVOTElLRUxZKCFmcmFtZSkpCi0g
ICAgICAgIHJldHVybiBnZXRCYXNlT2ZTdGFjaygpOwotICAgIHJldHVybiBmcmFtZS0+ZnJhbWVF
eHRlbnQoKTsKLX0KLQotaW5saW5lIFJlZ2lzdGVyKiBKU1N0YWNrOjpnZXRUb3BPZlN0YWNrKCkK
LXsKLSAgICByZXR1cm4gZ2V0VG9wT2ZGcmFtZShtX3RvcENhbGxGcmFtZSk7CisjaWYgRU5BQkxF
KExMSU5UX0NfTE9PUCkKKyAgICByZXR1cm4gZ3JvdyhuZXdUb3BPZlN0YWNrKTsKKyNlbHNlCisg
ICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOwor
ICAgIHJldHVybiBuZXdUb3BPZlN0YWNrID49IG1fdm0uc3RhY2tMaW1pdCgpOworI2VuZGlmCiB9
CiAKLWlubGluZSBSZWdpc3RlciogSlNTdGFjazo6Z2V0U3RhcnRPZkZyYW1lKENhbGxGcmFtZSog
ZnJhbWUpCi17Ci0gICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGZyYW1lLT5jYWxsZXJGcmFt
ZVNraXBwaW5nVk1FbnRyeVNlbnRpbmVsKCk7Ci0gICAgcmV0dXJuIGdldFRvcE9mRnJhbWUoY2Fs
bGVyRnJhbWUpOwotfQorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKLWlubGluZSBib29sIEpT
U3RhY2s6OmVudHJ5Q2hlY2soY2xhc3MgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGludCBhcmdzQ291
bnQpCitpbmxpbmUgUmVnaXN0ZXIqIEpTU3RhY2s6OnRvcE9mRnJhbWVGb3IoQ2FsbEZyYW1lKiBm
cmFtZSkKIHsKLSAgICBSZWdpc3Rlciogb2xkRW5kID0gZ2V0VG9wT2ZTdGFjaygpOwotCi0gICAg
Ly8gRW5zdXJlIHRoYXQgd2UgaGF2ZSBlbm91Z2ggc3BhY2UgZm9yIHRoZSBwYXJhbWV0ZXJzOgot
ICAgIHNpemVfdCBwYWRkZWRBcmdzQ291bnQgPSBhcmdzQ291bnQ7Ci0gICAgaWYgKGNvZGVCbG9j
aykgewotICAgICAgICBzaXplX3QgbnVtUGFyYW1ldGVycyA9IGNvZGVCbG9jay0+bnVtUGFyYW1l
dGVycygpOwotICAgICAgICBpZiAocGFkZGVkQXJnc0NvdW50IDwgbnVtUGFyYW1ldGVycykKLSAg
ICAgICAgICAgIHBhZGRlZEFyZ3NDb3VudCA9IG51bVBhcmFtZXRlcnM7Ci0gICAgfQotCi0gICAg
UmVnaXN0ZXIqIG5ld0NhbGxGcmFtZVNsb3QgPSBvbGRFbmQgLSBwYWRkZWRBcmdzQ291bnQgLSAo
MiAqIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpICsgMTsKLQotI2lmIEVOQUJMRShERUJV
R19KU1NUQUNLKQotICAgIG5ld0NhbGxGcmFtZVNsb3QgLT0gSlNTdGFjazo6RmVuY2VTaXplOwor
I2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgaWYgKFVOTElLRUxZKCFmcmFtZSkpCisgICAg
ICAgIHJldHVybiBiYXNlT2ZTdGFjaygpOwogI2VuZGlmCi0KLSAgICBSZWdpc3RlciogbmV3RW5k
ID0gbmV3Q2FsbEZyYW1lU2xvdDsKLSAgICBpZiAoISFjb2RlQmxvY2spCi0gICAgICAgIG5ld0Vu
ZCArPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3Vu
dCgpKS5vZmZzZXQoKTsKLQotICAgIC8vIEVuc3VyZSB0aGF0IHdlIGhhdmUgdGhlIG5lZWRlZCBz
dGFjayBjYXBhY2l0eSB0byBwdXNoIHRoZSBuZXcgZnJhbWU6Ci0gICAgaWYgKCFncm93KG5ld0Vu
ZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVy
biBmcmFtZS0+dG9wT2ZGcmFtZSgpIC0gMTsKIH0KIAotaW5saW5lIENhbGxGcmFtZSogSlNTdGFj
azo6cHVzaEZyYW1lKGNsYXNzIENvZGVCbG9jayogY29kZUJsb2NrLCBKU1Njb3BlKiBzY29wZSwg
aW50IGFyZ3NDb3VudCwgSlNPYmplY3QqIGNhbGxlZSkKK2lubGluZSBSZWdpc3RlciogSlNTdGFj
azo6dG9wT2ZTdGFjaygpCiB7Ci0gICAgQVNTRVJUKCEhc2NvcGUpOwotICAgIFJlZ2lzdGVyKiBv
bGRFbmQgPSBnZXRUb3BPZlN0YWNrKCk7Ci0KLSAgICAvLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVu
b3VnaCBzcGFjZSBmb3IgdGhlIHBhcmFtZXRlcnM6Ci0gICAgc2l6ZV90IHBhZGRlZEFyZ3NDb3Vu
dCA9IGFyZ3NDb3VudDsKLSAgICBpZiAoY29kZUJsb2NrKSB7Ci0gICAgICAgIHNpemVfdCBudW1Q
YXJhbWV0ZXJzID0gY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7Ci0gICAgICAgIGlmIChwYWRk
ZWRBcmdzQ291bnQgPCBudW1QYXJhbWV0ZXJzKQotICAgICAgICAgICAgcGFkZGVkQXJnc0NvdW50
ID0gbnVtUGFyYW1ldGVyczsKLSAgICB9Ci0KLSAgICBSZWdpc3RlciogbmV3Q2FsbEZyYW1lU2xv
dCA9IG9sZEVuZCAtIHBhZGRlZEFyZ3NDb3VudCAtICgyICogSlNTdGFjazo6Q2FsbEZyYW1lSGVh
ZGVyU2l6ZSkgKyAxOwotCi0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0gICAgbmV3Q2FsbEZy
YW1lU2xvdCAtPSBKU1N0YWNrOjpGZW5jZVNpemU7Ci0jZW5kaWYKLQotICAgIFJlZ2lzdGVyKiBu
ZXdFbmQgPSBuZXdDYWxsRnJhbWVTbG90OwotICAgIGlmICghIWNvZGVCbG9jaykKLSAgICAgICAg
bmV3RW5kICs9IHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3Rl
ckNvdW50KCkpLm9mZnNldCgpOwotCi0gICAgLy8gRW5zdXJlIHRoYXQgd2UgaGF2ZSB0aGUgbmVl
ZGVkIHN0YWNrIGNhcGFjaXR5IHRvIHB1c2ggdGhlIG5ldyBmcmFtZToKLSAgICBpZiAoIWdyb3co
bmV3RW5kKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAvLyBDb21wdXRlIHRoZSBhZGRyZXNz
IG9mIHRoZSBuZXcgVk0gc2VudGluZWwgZnJhbWUgZm9yIHRoaXMgaW52b2NhdGlvbjoKLSAgICBD
YWxsRnJhbWUqIG5ld1ZNRW50cnlTZW50aW5lbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobmV3
Q2FsbEZyYW1lU2xvdCArIHBhZGRlZEFyZ3NDb3VudCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRl
clNpemUpOwotICAgIEFTU0VSVCghIW5ld1ZNRW50cnlTZW50aW5lbEZyYW1lKTsKLQotICAgIC8v
IENvbXB1dGUgdGhlIGFkZHJlc3Mgb2YgdGhlIG5ldyBmcmFtZSBmb3IgdGhpcyBpbnZvY2F0aW9u
OgotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobmV3Q2Fs
bEZyYW1lU2xvdCk7Ci0gICAgQVNTRVJUKCEhbmV3Q2FsbEZyYW1lKTsKLQotICAgIC8vIFRoZSBj
YWxsZXIgZnJhbWUgc2hvdWxkIGFsd2F5cyBiZSB0aGUgcmVhbCBwcmV2aW91cyBmcmFtZSBvbiB0
aGUgc3RhY2ssCi0gICAgLy8gYW5kIG5vdCBhIHBvdGVudGlhbCBHbG9iYWxFeGVjIHRoYXQgd2Fz
IHBhc3NlZCBpbi4gUG9pbnQgY2FsbGVyRnJhbWUgdG8KLSAgICAvLyB0aGUgdG9wIGZyYW1lIG9u
IHRoZSBzdGFjay4KLSAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gbV90b3BDYWxsRnJhbWU7
Ci0KLSAgICAvLyBJbml0aWFsaXplIHRoZSBWTSBzZW50aW5lbCBmcmFtZSBoZWFkZXI6Ci0gICAg
bmV3Vk1FbnRyeVNlbnRpbmVsRnJhbWUtPmluaXRpYWxpemVWTUVudHJ5U2VudGluZWxGcmFtZShj
YWxsZXJGcmFtZSk7Ci0KLSAgICAvLyBJbml0aWFsaXplIHRoZSBjYWxsZWUgZnJhbWUgaGVhZGVy
OgotICAgIG5ld0NhbGxGcmFtZS0+aW5pdChjb2RlQmxvY2ssIDAsIHNjb3BlLCBuZXdWTUVudHJ5
U2VudGluZWxGcmFtZSwgYXJnc0NvdW50LCBjYWxsZWUpOwotCi0gICAgQVNTRVJUKCEhbmV3Q2Fs
bEZyYW1lLT5zY29wZSgpKTsKLQotICAgIC8vIFBhZCBhZGRpdGlvbmFsIGFyZ3MgaWYgbmVlZGVk
OgotICAgIC8vIE5vdGU6IHdlIG5lZWQgdG8gc3VidHJhY3QgMSBmcm9tIGFyZ3NDb3VudCBhbmQg
cGFkZGVkQXJnc0NvdW50IHRvCi0gICAgLy8gZXhjbHVkZSB0aGUgdGhpcyBwb2ludGVyLgotICAg
IGZvciAoc2l6ZV90IGkgPSBhcmdzQ291bnQtMTsgaSA8IHBhZGRlZEFyZ3NDb3VudC0xOyArK2kp
Ci0gICAgICAgIG5ld0NhbGxGcmFtZS0+c2V0QXJndW1lbnQoaSwganNVbmRlZmluZWQoKSk7Ci0K
LSAgICBpbnN0YWxsRmVuY2UobmV3Q2FsbEZyYW1lLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsK
LSAgICB2YWxpZGF0ZUZlbmNlKG5ld0NhbGxGcmFtZSwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7
Ci0gICAgaW5zdGFsbFRyYXBzQWZ0ZXJGcmFtZShuZXdDYWxsRnJhbWUpOwotCi0gICAgLy8gUHVz
aCB0aGUgbmV3IGZyYW1lOgotICAgIG1fdG9wQ2FsbEZyYW1lID0gbmV3Q2FsbEZyYW1lOwotCi0g
ICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKLX0KLQotaW5saW5lIHZvaWQgSlNTdGFjazo6cG9wRnJh
bWUoQ2FsbEZyYW1lKiBmcmFtZSkKLXsKLSAgICB2YWxpZGF0ZUZlbmNlKGZyYW1lLCBfX0ZVTkNU
SU9OX18sIF9fTElORV9fKTsKLQotICAgIC8vIFBvcCBvZmYgdGhlIGNhbGxlZSBmcmFtZSBhbmQg
dGhlIHNlbnRpbmVsIGZyYW1lLgotICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBmcmFtZS0+
Y2FsbGVyRnJhbWUoKS0+dm1FbnRyeVNlbnRpbmVsQ2FsbGVyRnJhbWUoKTsKLQotICAgIC8vIFBv
cCB0byB0aGUgY2FsbGVyOgotICAgIG1fdG9wQ2FsbEZyYW1lID0gY2FsbGVyRnJhbWU7Ci0KLSAg
ICAvLyBJZiB3ZSBhcmUgcG9wcGluZyB0aGUgdmVyeSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzdGFj
ayBpLmUuIG5vIG1vcmUKLSAgICAvLyBmcmFtZXMgYmVmb3JlIHRoaXMsIHRoZW4gd2UgY2FuIG5v
dyBzYWZlbHkgc2hyaW5rIHRoZSBzdGFjay4gSW4KLSAgICAvLyB0aGlzIGNhc2UsIHdlJ3JlIHNo
cmlua2luZyBhbGwgdGhlIHdheSB0byB0aGUgYmVnaW5uaW5nIHNpbmNlIHRoZXJlCi0gICAgLy8g
YXJlIG5vIG1vcmUgZnJhbWVzIG9uIHRoZSBzdGFjay4KLSAgICBpZiAoIWNhbGxlckZyYW1lKQot
ICAgICAgICBzaHJpbmsoZ2V0QmFzZU9mU3RhY2soKSk7Ci0KLSAgICBpbnN0YWxsVHJhcHNBZnRl
ckZyYW1lKGNhbGxlckZyYW1lKTsKKyAgICByZXR1cm4gdG9wT2ZGcmFtZUZvcihtX3RvcENhbGxG
cmFtZSk7CiB9CiAKLWlubGluZSB2b2lkIEpTU3RhY2s6OnNocmluayhSZWdpc3RlciogbmV3RW5k
KQoraW5saW5lIHZvaWQgSlNTdGFjazo6c2hyaW5rKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQog
eworICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBuZXdUb3BPZlN0YWNrIC0gMTsKICAgICBpZiAobmV3
RW5kID49IG1fZW5kKQogICAgICAgICByZXR1cm47Ci0gICAgdXBkYXRlU3RhY2tMaW1pdChuZXdF
bmQpOwotICAgIGlmIChtX2VuZCA9PSBnZXRCYXNlT2ZTdGFjaygpICYmIChtX2NvbW1pdEVuZCAt
IGdldEJhc2VPZlN0YWNrKCkpID49IG1heEV4Y2Vzc0NhcGFjaXR5KQorICAgIHNldFN0YWNrTGlt
aXQobmV3VG9wT2ZTdGFjayk7CisgICAgLy8gTm90ZTogQ2xhbmcgY29tcGxhaW5zIG9mIGFuIHVu
cmVzb2x2ZWQgbGlua2FnZSB0byBtYXhFeGNlc3NDYXBhY2l0eSBpZgorICAgIC8vIGludm9rZSBz
dGQ6Om1heCgpIHdpdGggaXQgYXMgYW4gYXJndW1lbnQuIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHdl
IGZpcnN0CisgICAgLy8gYXNzaWduIHRoZSBjb25zdGFudCB0byBhIGxvY2FsIHZhcmlhYmxlLCBh
bmQgdXNlIHRoZSBsb2NhbCBpbnN0ZWFkLgorICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NDYXBhY2l0
eSA9IEpTU3RhY2s6Om1heEV4Y2Vzc0NhcGFjaXR5OworICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NJ
blJlZ2lzdGVycyA9IHN0ZDo6bWF4KG1heEV4Y2Vzc0NhcGFjaXR5LCBtX3Jlc2VydmVkWm9uZVNp
emVJblJlZ2lzdGVycyk7CisgICAgaWYgKG1fZW5kID09IGJhc2VPZlN0YWNrKCkgJiYgKGhpZ2hB
ZGRyZXNzKCkgLSBtX2NvbW1pdFRvcCkgPj0gbWF4RXhjZXNzSW5SZWdpc3RlcnMpCiAgICAgICAg
IHJlbGVhc2VFeGNlc3NDYXBhY2l0eSgpOwogfQogCi1pbmxpbmUgYm9vbCBKU1N0YWNrOjpncm93
KFJlZ2lzdGVyKiBuZXdFbmQpCitpbmxpbmUgYm9vbCBKU1N0YWNrOjpncm93KFJlZ2lzdGVyKiBu
ZXdUb3BPZlN0YWNrKQogeworICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBuZXdUb3BPZlN0YWNrIC0g
MTsKICAgICBpZiAobmV3RW5kID49IG1fZW5kKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBy
ZXR1cm4gZ3Jvd1Nsb3dDYXNlKG5ld0VuZCk7CisgICAgcmV0dXJuIGdyb3dTbG93Q2FzZShuZXdU
b3BPZlN0YWNrKTsKIH0KIAotaW5saW5lIHZvaWQgSlNTdGFjazo6dXBkYXRlU3RhY2tMaW1pdChS
ZWdpc3RlciogbmV3RW5kKQoraW5saW5lIHZvaWQgSlNTdGFjazo6c2V0U3RhY2tMaW1pdChSZWdp
c3RlciogbmV3VG9wT2ZTdGFjaykKIHsKKyAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3VG9wT2ZT
dGFjayAtIDE7CiAgICAgbV9lbmQgPSBuZXdFbmQ7Ci0jaWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pT
X1NUQUNLKQotICAgIG1fdm0uc2V0SlNTdGFja0xpbWl0KG5ld0VuZCk7CisjaWYgRU5BQkxFKExM
SU5UX0NfTE9PUCkKKyAgICBtX3ZtLnNldEpTU3RhY2tMaW1pdChuZXdUb3BPZlN0YWNrKTsKICNl
bmRpZgogfQogCi0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0spCi1pbmxpbmUgSlNWYWx1ZSBKU1N0
YWNrOjpnZW5lcmF0ZUZlbmNlVmFsdWUoc2l6ZV90IGFyZ0luZGV4KQotewotICAgIHVuc2lnbmVk
IGZlbmNlQml0cyA9IDB4ZmFjZWJhZDAgfCAoKGFyZ0luZGV4KzEpICYgMHhmKTsKLSAgICBKU1Zh
bHVlIGZlbmNlVmFsdWUgPSBKU1ZhbHVlKGZlbmNlQml0cyk7Ci0gICAgcmV0dXJuIGZlbmNlVmFs
dWU7Ci19Ci0KLS8vIFRoZSBKU1N0YWNrIGZlbmNlcyBtZWNoYW5pc20gd29ya3MgYXMgZm9sbG93
czoKLS8vIDEuIEEgZmVuY2UgaXMgYSBudW1iZXIgKEpTU3RhY2s6OkZlbmNlU2l6ZSkgb2YgSlNW
YWx1ZXMgdGhhdCBhcmUgaW5pdGlhbGl6ZWQKLS8vICAgIHdpdGggdmFsdWVzIGdlbmVyYXRlZCBi
eSBKU1N0YWNrOjpnZW5lcmF0ZUZlbmNlVmFsdWUoKS4KLS8vIDIuIFdoZW4gcHVzaEZyYW1lKCkg
aXMgY2FsbGVkLCB0aGUgZmVuY2UgaXMgaW5zdGFsbGVkIGFmdGVyIHRoZSBtYXggZXh0ZW50Ci0v
LyAgICBvZiB0aGUgcHJldmlvdXMgdG9wQ2FsbEZyYW1lIGFuZCB0aGUgbGFzdCBhcmcgb2YgdGhl
IG5ldyBmcmFtZToKLS8vCi0vLyAgICAgICAgICAgICAgICAgICAgIHwgLi4uICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8
IEZyYW1lIEhlYWRlciBvZiBwcmV2aW91cyBmcmFtZSAgICAgICB8Ci0vLyAgICAgICAgICAgICAg
ICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgIHRv
cENhbGxGcmFtZSAtLT4gfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAot
Ly8gICAgICAgICAgICAgICAgICAgICB8IExvY2FscyBvZiBwcmV2aW91cyBmcmFtZSAgICAgICAg
ICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAqKiogdGhlIEZlbmNlICoq
KiAgICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwg
Vk0gZW50cnkgc2VudGluZWwgZnJhbWUgaGVhZGVyICAgICAgIHwKLS8vICAgICAgICAgICAgICAg
ICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAg
ICAgICAgICAgICAgICB8IEFyZ3Mgb2YgbmV3IGZyYW1lICAgICAgICAgICAgICAgICAgICB8Ci0v
LyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCBGcmFtZSBIZWFkZXIgb2YgbmV3IGZyYW1l
ICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgZnJhbWUgLS0+IHwgTG9jYWxzIG9m
IG5ldyBmcmFtZSAgICAgICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotLy8KLS8vIDMuIEluIHBvcEZy
YW1lKCkgYW5kIGVsc2V3aGVyZSwgd2UgY2FuIGNhbGwgSlNTdGFjazo6dmFsaWRhdGVGZW5jZSgp
IHRvCi0vLyAgICBhc3NlcnQgdGhhdCB0aGUgZmVuY2UgY29udGFpbnMgdGhlIHZhbHVlcyB3ZSBl
eHBlY3QuCi0KLWlubGluZSB2b2lkIEpTU3RhY2s6Omluc3RhbGxGZW5jZShDYWxsRnJhbWUqIGZy
YW1lLCBjb25zdCBjaGFyICpmdW5jdGlvbiwgaW50IGxpbmVObykKLXsKLSAgICBVTlVTRURfUEFS
QU0oZnVuY3Rpb24pOwotICAgIFVOVVNFRF9QQVJBTShsaW5lTm8pOwotICAgIFJlZ2lzdGVyKiBz
dGFydE9mRnJhbWUgPSBnZXRTdGFydE9mRnJhbWUoZnJhbWUpOwotCi0gICAgLy8gVGhlIGxhc3Qg
YXJnSW5kZXggaXMgYXQ6Ci0gICAgc2l6ZV90IG1heEluZGV4ID0gZnJhbWUtPmFyZ0luZGV4Rm9y
UmVnaXN0ZXIoc3RhcnRPZkZyYW1lKSArIDE7Ci0gICAgc2l6ZV90IHN0YXJ0SW5kZXggPSBtYXhJ
bmRleCAtIEZlbmNlU2l6ZTsKLSAgICBmb3IgKHNpemVfdCBpID0gc3RhcnRJbmRleDsgaSA8IG1h
eEluZGV4OyArK2kpIHsKLSAgICAgICAgSlNWYWx1ZSBmZW5jZVZhbHVlID0gZ2VuZXJhdGVGZW5j
ZVZhbHVlKGkpOwotICAgICAgICBmcmFtZS0+c2V0QXJndW1lbnQoaSwgZmVuY2VWYWx1ZSk7Ci0g
ICAgfQotfQotCi1pbmxpbmUgdm9pZCBKU1N0YWNrOjp2YWxpZGF0ZUZlbmNlKENhbGxGcmFtZSog
ZnJhbWUsIGNvbnN0IGNoYXIgKmZ1bmN0aW9uLCBpbnQgbGluZU5vKQotewotICAgIFVOVVNFRF9Q
QVJBTShmdW5jdGlvbik7Ci0gICAgVU5VU0VEX1BBUkFNKGxpbmVObyk7Ci0gICAgQVNTRVJUKCEh
ZnJhbWUtPnNjb3BlKCkpOwotICAgIFJlZ2lzdGVyKiBzdGFydE9mRnJhbWUgPSBnZXRTdGFydE9m
RnJhbWUoZnJhbWUpOwotICAgIHNpemVfdCBtYXhJbmRleCA9IGZyYW1lLT5hcmdJbmRleEZvclJl
Z2lzdGVyKHN0YXJ0T2ZGcmFtZSkgKyAxOwotICAgIHNpemVfdCBzdGFydEluZGV4ID0gbWF4SW5k
ZXggLSBGZW5jZVNpemU7Ci0gICAgZm9yIChzaXplX3QgaSA9IHN0YXJ0SW5kZXg7IGkgPCBtYXhJ
bmRleDsgKytpKSB7Ci0gICAgICAgIEpTVmFsdWUgZmVuY2VWYWx1ZSA9IGdlbmVyYXRlRmVuY2VW
YWx1ZShpKTsKLSAgICAgICAgSlNWYWx1ZSBhY3R1YWxWYWx1ZSA9IGZyYW1lLT5nZXRBcmd1bWVu
dFVuc2FmZShpKTsKLSAgICAgICAgQVNTRVJUKGZlbmNlVmFsdWUgPT0gYWN0dWFsVmFsdWUpOwot
ICAgIH0KLX0KLQotLy8gV2hlbiBkZWJ1Z2dpbmcgdGhlIEpTU3RhY2ssIHdlIGluc3RhbGwgYmFk
IHZhbHVlcyBhZnRlciB0aGUgZXh0ZW50IG9mIHRoZQotLy8gdG9wQ2FsbEZyYW1lIGF0IHRoZSBl
bmQgb2YgcHVzaEZyYW1lKCkgYW5kIHBvcEZyYW1lKCkuIFRoZSBpbnRlbnRpb24gaXMKLS8vIHRv
IHRyaWdnZXIgY3Jhc2hlcyBpbiB0aGUgZXZlbnQgdGhhdCBtZW1vcnkgaW4gdGhpcyBzdXBwb3Nl
ZGx5IHVudXNlZAotLy8gcmVnaW9uIGlzIHJlYWQgYW5kIGNvbnN1bWVkIHdpdGhvdXQgcHJvcGVy
IGluaXRpYWxpemF0aW9uLiBBZnRlciB0aGUgdHJhcAotLy8gd29yZHMgYXJlIGluc3RhbGxlZCwg
dGhlIHN0YWNrIGxvb2tzIGxpa2UgdGhpczoKLS8vCi0vLyAgICAgICAgICAgICAgICAgICAgIHwg
Li4uICAgICAgICAgICAgICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8IEZy
YW1lIEhlYWRlciBvZiBmcmFtZSAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgIHRvcENhbGxGcmFtZSAtLT4gfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8IExvY2Fs
cyBvZiBmcmFtZSAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAqKiogVHJh
cCB3b3JkcyAqKiogICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgVW51c2VkIHNw
YWNlIC4uLiAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAuLi4gICAgICAg
ICAgICAgICAgICAgICAgICAgfAotCi1pbmxpbmUgdm9pZCBKU1N0YWNrOjppbnN0YWxsVHJhcHNB
ZnRlckZyYW1lKENhbGxGcmFtZSogZnJhbWUpCi17Ci0gICAgUmVnaXN0ZXIqIHRvcE9mRnJhbWUg
PSBnZXRUb3BPZkZyYW1lKGZyYW1lKTsKLSAgICBjb25zdCBpbnQgc2l6ZU9mVHJhcCA9IDY0Owot
ICAgIGludDMyX3QqIHN0YXJ0T2ZUcmFwID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4odG9w
T2ZGcmFtZSk7Ci0gICAgaW50MzJfdCogZW5kT2ZUcmFwID0gc3RhcnRPZlRyYXAgLSBzaXplT2ZU
cmFwOwotICAgIGludDMyX3QqIGVuZE9mQ29tbWl0ZWRNZW1vcnkgPSByZWludGVycHJldF9jYXN0
PGludDMyX3QqPihtX2NvbW1pdEVuZCk7Ci0KLSAgICAvLyBNYWtlIHN1cmUgd2UncmUgbm90IGV4
Y2VlZGluZyB0aGUgYW1vdW50IG9mIGF2YWlsYWJsZSBtZW1vcnkgdG8gd3JpdGUgdG86Ci0gICAg
aWYgKGVuZE9mVHJhcCA8IGVuZE9mQ29tbWl0ZWRNZW1vcnkpCi0gICAgICAgIGVuZE9mVHJhcCA9
IGVuZE9mQ29tbWl0ZWRNZW1vcnk7Ci0KLSAgICAvLyBMYXkgdGhlIHRyYXBzOgotICAgIGludDMy
X3QqIHAgPSBzdGFydE9mVHJhcDsKLSAgICB3aGlsZSAocCA+IGVuZE9mVHJhcCkKLSAgICAgICAg
KnAtLSA9IDB4YWJhZGNhZmU7IC8vIEEgYmFkIHdvcmQgdG8gdHJpZ2dlciBhIGNyYXNoIGlmIGRl
cmVmJ2VkLgotfQotI2VuZGlmIC8vIEVOQUJMRShERUJVR19KU1NUQUNLKQorI2VuZGlmIC8vIEVO
QUJMRShMTElOVF9DX0xPT1ApCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5jcHAJ
KHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Q
cm90b0NhbGxGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs
dWRlICJQcm90b0NhbGxGcmFtZS5oIgogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVk
ZSAiU3RhY2tBbGlnbm1lbnQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQzLDcgKzQ0LDkg
QEAgdm9pZCBQcm90b0NhbGxGcmFtZTo6aW5pdChDb2RlQmxvY2sqIGNvZAogICAgICAgICBpZiAo
cGFkZGVkQXJnc0NvdW50IDwgbnVtUGFyYW1ldGVycykKICAgICAgICAgICAgIHBhZGRlZEFyZ3ND
b3VudCA9IG51bVBhcmFtZXRlcnM7CiAgICAgfQotICAgIHRoaXMtPnNldFBhZGRlZEFyZ3NDb3Vu
dChwYWRkZWRBcmdzQ291bnQpOworICAgIC8vIFJvdW5kIHVwIHBhZGRlZEFyZ3NDb3VudCB0byBr
ZWVwIHRoZSBzdGFjayBmcmFtZSBzaXplIGFsaWduZWQuCisgICAgcGFkZGVkQXJnc0NvdW50ID0g
cm91bmRBcmd1bWVudENvdW50VG9BbGlnbkZyYW1lKHBhZGRlZEFyZ3NDb3VudCk7CisgICAgdGhp
cy0+c2V0UGFkZGVkQXJnQ291bnQocGFkZGVkQXJnc0NvdW50KTsKICAgICB0aGlzLT5jbGVhckN1
cnJlbnRWUEMoKTsKICAgICB0aGlzLT5zZXRUaGlzVmFsdWUodGhpc1ZhbHVlKTsKIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFt
ZS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvUHJvdG9DYWxsRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBzdHJ1
Y3QgUHJvdG9DYWxsRnJhbWUgewogICAgIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygp
IGNvbnN0IHsgcmV0dXJuIGFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVlLnBheWxvYWQoKTsgfQog
ICAgIGludCBhcmd1bWVudENvdW50KCkgY29uc3QgeyByZXR1cm4gYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMoKSAtIDE7IH0KICAgICB2b2lkIHNldEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
KGludCBjb3VudCkgeyBhcmdDb3VudEFuZENvZGVPcmlnaW5WYWx1ZS5wYXlsb2FkKCkgPSBjb3Vu
dDsgfQotICAgIHZvaWQgc2V0UGFkZGVkQXJnc0NvdW50KHNpemVfdCBhcmdDb3VudCkgeyBwYWRk
ZWRBcmdDb3VudCA9IGFyZ0NvdW50OyB9CisgICAgdm9pZCBzZXRQYWRkZWRBcmdDb3VudChzaXpl
X3QgYXJnQ291bnQpIHsgcGFkZGVkQXJnQ291bnQgPSBhcmdDb3VudDsgfQogCiAgICAgdm9pZCBj
bGVhckN1cnJlbnRWUEMoKSB7IGFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVlLnRhZygpID0gMDsg
fQogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNiArMTEwLDE3IEBAIHZv
aWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0NlbGwoR1AKICAgICBicmVha3BvaW50KCk7
CiAgICAgY2hlY2tDZWxsLmxpbmsodGhpcyk7CiB9CisKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpq
aXRBc3NlcnRUYWdzSW5QbGFjZSgpCit7CisgICAgSnVtcCBvayA9IGJyYW5jaDY0KEVxdWFsLCBH
UFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIFRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVy
KSk7CisgICAgYnJlYWtwb2ludCgpOworICAgIG9rLmxpbmsodGhpcyk7CisgICAgCisgICAgb2sg
PSBicmFuY2g2NChFcXVhbCwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyLCBUcnVzdGVkSW1tNjQo
VGFnTWFzaykpOworICAgIGJyZWFrcG9pbnQoKTsKKyAgICBvay5saW5rKHRoaXMpOworfQogI2Vs
aWYgVVNFKEpTVkFMVUUzMl82NCkKIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0lu
dDMyKEdQUlJlZyBncHIpCiB7CkBAIC0xNDUsNiArMTU2LDEwIEBAIHZvaWQgQXNzZW1ibHlIZWxw
ZXJzOjpqaXRBc3NlcnRJc0NlbGwoR1AKICAgICBicmVha3BvaW50KCk7CiAgICAgY2hlY2tDZWxs
LmxpbmsodGhpcyk7CiB9CisKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5Q
bGFjZSgpCit7Cit9CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAogdm9pZCBBc3NlbWJs
eUhlbHBlcnM6OmppdEFzc2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCkKQEAgLTE2MCw2ICsxNzUsMTMg
QEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzTnVsbChHUAogICAgIGJyZWFrcG9p
bnQoKTsKICAgICBjaGVja051bGwubGluayh0aGlzKTsKIH0KKwordm9pZCBBc3NlbWJseUhlbHBl
cnM6OmppdEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCkKK3sKKyAgICBKdW1wIG9rID0gYnJhbmNo
MzIoQmVsb3csIHBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCksIFRydXN0ZWRJbW0z
MigxMDAwMDAwMCkpOworICAgIGJyZWFrcG9pbnQoKTsKKyAgICBvay5saW5rKHRoaXMpOworfQog
I2VuZGlmIC8vICFBU1NFUlRfRElTQUJMRUQKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU4LDggKzU4LDM2IEBAIHB1YmxpYzoKICAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jaygpIHsgcmV0dXJuIG1fY29kZUJsb2NrOyB9CiAgICAgVk0qIHZtKCkgeyByZXR1cm4g
bV92bTsgfQogICAgIEFzc2VtYmxlclR5cGVfVCYgYXNzZW1ibGVyKCkgeyByZXR1cm4gbV9hc3Nl
bWJsZXI7IH0KLSAgICAKKworICAgIHZvaWQgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKQor
ICAgIHsKKyAgICAgICAgLy8gVGhpcyBjaGVjayBpcyBib3RoIHVubmVlZGVkIGFuZCBoYXJkZXIg
dG8gd3JpdGUgY29ycmVjdGx5IGZvciBBUk02NAorI2lmICFkZWZpbmVkKE5ERUJVRykgJiYgIUNQ
VShBUk02NCkKKyAgICAgICAgSnVtcCBzdGFja1BvaW50ZXJBbGlnbmVkID0gYnJhbmNoVGVzdFB0
cihaZXJvLCBzdGFja1BvaW50ZXJSZWdpc3RlciwgVHJ1c3RlZEltbTMyKDB4ZikpOworICAgICAg
ICBicmVha3BvaW50KCk7CisgICAgICAgIHN0YWNrUG9pbnRlckFsaWduZWQubGluayh0aGlzKTsK
KyNlbmRpZgorICAgIH0KKwogI2lmIENQVShYODZfNjQpIHx8IENQVShYODYpCisgICAgc2l6ZV90
IHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKQorICAgIHsKKyAgICAgICAgLy8gUHJvbG9ndWUg
b25seSBzYXZlcyB0aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIKKyAgICAgICAgcmV0dXJuIHNpemVv
Zih2b2lkKik7CisgICAgfQorCisgICAgdm9pZCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAg
eworICAgICAgICBwdXNoKGZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShzdGFj
a1BvaW50ZXJSZWdpc3RlciwgZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgIH0KKworICAgIHZv
aWQgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIHsKKyAgICAgICAgbW92ZShmcmFtZVBvaW50
ZXJSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBwb3AoZnJhbWVQb2lu
dGVyUmVnaXN0ZXIpOworICAgIH0KKwogICAgIHZvaWQgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0
ZXJDYWxsKEdQUlJlZyByZWcpCiAgICAgewogICAgICAgICBwb3AocmVnKTsKQEAgLTc3LDYgKzEw
NSwyNCBAQCBwdWJsaWM6CiAjZW5kaWYgLy8gQ1BVKFg4Nl82NCkgfHwgQ1BVKFg4NikKIAogI2lm
IENQVShBUk0pIHx8IENQVShBUk02NCkKKyAgICBzaXplX3QgcHJvbG9ndWVTdGFja1BvaW50ZXJE
ZWx0YSgpCisgICAgeworICAgICAgICAvLyBQcm9sb2d1ZSBzYXZlcyB0aGUgZnJhbWVQb2ludGVy
UmVnaXN0ZXIgYW5kIGxpbmtSZWdpc3RlcgorICAgICAgICByZXR1cm4gMiAqIHNpemVvZih2b2lk
Kik7CisgICAgfQorCisgICAgdm9pZCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAgeworICAg
ICAgICBwdXNoUGFpcihmcmFtZVBvaW50ZXJSZWdpc3RlciwgbGlua1JlZ2lzdGVyKTsKKyAgICAg
ICAgbW92ZShzdGFja1BvaW50ZXJSZWdpc3RlciwgZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAg
IH0KKworICAgIHZvaWQgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIHsKKyAgICAgICAgbW92
ZShmcmFtZVBvaW50ZXJSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBw
b3BQYWlyKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBsaW5rUmVnaXN0ZXIpOworICAgIH0KKwogICAg
IEFMV0FZU19JTkxJTkUgdm9pZCBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoUmVnaXN0
ZXJJRCByZWcpCiAgICAgewogICAgICAgICBtb3ZlKGxpbmtSZWdpc3RlciwgcmVnKTsKQEAgLTk0
LDYgKzE0MCwxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIENQVShNSVBTKQorICAgIHNpemVf
dCBwcm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkKKyAgICB7CisgICAgICAgIC8vIFByb2xvZ3Vl
IHNhdmVzIHRoZSBmcmFtZVBvaW50ZXJSZWdpc3RlciBhbmQgcmV0dXJuQWRkcmVzc1JlZ2lzdGVy
CisgICAgICAgIHJldHVybiAyICogc2l6ZW9mKHZvaWQqKTsKKyAgICB9CisKICAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKFJlZ2lzdGVySUQgcmVn
KQogICAgIHsKICAgICAgICAgbW92ZShyZXR1cm5BZGRyZXNzUmVnaXN0ZXIsIHJlZyk7CkBAIC0x
MTEsNiArMTYzLDEyIEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgQ1BVKFNINCkKKyAgICBzaXpl
X3QgcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpCisgICAgeworICAgICAgICAvLyBQcm9sb2d1
ZSBzYXZlcyB0aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5kIGxpbmsgcmVnaXN0ZXIKKyAgICAg
ICAgcmV0dXJuIDIgKiBzaXplb2Yodm9pZCopOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoUmVnaXN0ZXJJRCByZWcpCiAgICAg
ewogICAgICAgICBtX2Fzc2VtYmxlci5zdHNwcihyZWcpOwpAQCAtMTUwLDEwICsyMDgsNiBAQCBw
dWJsaWM6CiAgICAgICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwogICAgIH0KIAotICAg
IHZvaWQgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlcklEIHRv
KQotICAgIHsKLSAgICAgICAgbG9hZFB0cihBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpLCB0byk7Ci0gICAgfQogICAgIHZvaWQg
ZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tKQogICAgIHsK
ICAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
ciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CkBAIC0xNjMsNiArMjE3LDI5IEBAIHB1
YmxpYzoKICAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CiAgICAgfQogCisgICAgLy8g
ZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoKSBhbmQgcmVsYXRlZCBhcmUg
dXNlZCB0byBhY2Nlc3MgY2FsbGVlIGZyYW1lIGhlYWRlcgorICAgIC8vIGZpZWxkcyBiZWZvcmUg
dGhlIGNvZGUgZnJvbSBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpIGhhcyBleGVjdXRlZC4KKyAgICAv
LyBGaXJzdCwgdGhlIGFjY2VzcyBpcyB2aWEgdGhlIHN0YWNrIHBvaW50ZXIuIFNlY29uZCwgdGhl
IGFkZHJlc3MgY2FsY3VsYXRpb24gbXVzdCBhbHNvIHRha2UKKyAgICAvLyBpbnRvIGFjY291bnQg
dGhhdCB0aGUgc3RhY2sgcG9pbnRlciBtYXkgbm90IGhhdmUgYmVlbiBhZGp1c3RlZCBkb3duIGZv
ciB0aGUgcmV0dXJuIFBDIGFuZC9vcgorICAgIC8vIGNhbGxlcidzIGZyYW1lIHBvaW50ZXIuIE9u
IHNvbWUgcGxhdGZvcm1zLCB0aGUgY2FsbGVlIGlzIHJlc3BvbnNpYmxlIGZvciBwdXNoaW5nIHRo
ZQorICAgIC8vICJsaW5rIHJlZ2lzdGVyIiBjb250YWluaW5nIHRoZSByZXR1cm4gYWRkcmVzcyBp
biB0aGUgZnVuY3Rpb24gcHJvbG9ndWUuCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICB2b2lkIGVt
aXRQdXRUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKEdQUlJlZyBmcm9tLCBKU1N0YWNr
OjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSkKKyAgICB7CisgICAgICAgIHN0b3JlUHRyKGZy
b20sIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGVudHJ5ICogc3RhdGljX2Nhc3Q8cHRy
ZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAtIHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKSkp
OworICAgIH0KKyNlbHNlCisgICAgdm9pZCBlbWl0UHV0UGF5bG9hZFRvQ2FsbEZyYW1lSGVhZGVy
QmVmb3JlUHJvbG9ndWUoR1BSUmVnIGZyb20sIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlckVudHJ5
IGVudHJ5KQorICAgIHsKKyAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhzdGFja1BvaW50
ZXJSZWdpc3RlciwgZW50cnkgKiBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3Rl
cikpIC0gcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpICsgT0JKRUNUX09GRlNFVE9GKEVuY29k
ZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOworICAgIH0KKworICAgIHZvaWQg
ZW1pdFB1dFRhZ1RvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoVHJ1c3RlZEltbTMyIHRh
ZywgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCisgICAgeworICAgICAgICBz
dG9yZVB0cih0YWcsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGVudHJ5ICogc3RhdGlj
X2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAtIHByb2xvZ3VlU3RhY2tQb2ludGVy
RGVsdGEoKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMu
dGFnKSkpOworICAgIH0KKyNlbmRpZgorCiAgICAgSnVtcCBicmFuY2hJZk5vdENlbGwoR1BSUmVn
IHJlZykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTE5NCw3ICsyNzEsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIEFkZHJlc3MgdGFnRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVn
aXN0ZXIpCiAgICAgewogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7
Ci0gICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0
dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgT0JKRUNUX09GRlNFVE9G
KEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKTsKKyAgICAgICAgcmV0dXJuIEFk
ZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQo
KSAqIHNpemVvZihSZWdpc3RlcikgKyBUYWdPZmZzZXQpOwogICAgIH0KICAgICBzdGF0aWMgQWRk
cmVzcyB0YWdGb3IoaW50IG9wZXJhbmQpCiAgICAgewpAQCAtMjA0LDcgKzI4MSw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgQWRkcmVzcyBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFs
UmVnaXN0ZXIpCiAgICAgewogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQo
KSk7Ci0gICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2
aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgT0JKRUNUX09GRlNF
VE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJl
dHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIu
b2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCk7CiAgICAgfQogICAg
IHN0YXRpYyBBZGRyZXNzIHBheWxvYWRGb3IoaW50IG9wZXJhbmQpCiAgICAgewpAQCAtMjk4LDYg
KzM3NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGppdEFzc2VydElzQ2VsbChHUFJSZWcpOwogICAg
IHZvaWQgaml0QXNzZXJ0SGFzVmFsaWRDYWxsRnJhbWUoKTsKICAgICB2b2lkIGppdEFzc2VydElz
TnVsbChHUFJSZWcpOworICAgIHZvaWQgaml0QXNzZXJ0VGFnc0luUGxhY2UoKTsKKyAgICB2b2lk
IGppdEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCk7CiAjZWxzZQogICAgIHZvaWQgaml0QXNzZXJ0
SXNJbnQzMihHUFJSZWcpIHsgfQogICAgIHZvaWQgaml0QXNzZXJ0SXNKU0ludDMyKEdQUlJlZykg
eyB9CkBAIC0zMDYsNiArMzg1LDggQEAgcHVibGljOgogICAgIHZvaWQgaml0QXNzZXJ0SXNDZWxs
KEdQUlJlZykgeyB9CiAgICAgdm9pZCBqaXRBc3NlcnRIYXNWYWxpZENhbGxGcmFtZSgpIHsgfQog
ICAgIHZvaWQgaml0QXNzZXJ0SXNOdWxsKEdQUlJlZykgeyB9CisgICAgdm9pZCBqaXRBc3NlcnRU
YWdzSW5QbGFjZSgpIHsgfQorICAgIHZvaWQgaml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUoKSB7
IH0KICNlbmRpZgogCiAgICAgLy8gVGhlc2UgbWV0aG9kcyBjb252ZXJ0IGJldHdlZW4gZG91Ymxl
cywgYW5kIGRvdWJsZXMgYm94ZWQgYW5kIEpTVmFsdWVzLgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5
NSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcyKTsKICAgICB9CiAg
ICAgCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzKFRydXN0ZWRJbW1QdHIg
YXJnMSwgR1BSUmVnIGFyZzIpCisgICAgeworICAgICAgICByZXNldENhbGxBcmd1bWVudHMoKTsK
KyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzEpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQo
YXJnMik7CisgICAgfQorICAgIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50
cyhHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQogICAgIHsKICAgICAgICAg
cmVzZXRDYWxsQXJndW1lbnRzKCk7CkBAIC05MzksNiArOTQ2LDEyIEBAIHB1YmxpYzoKICAgICAg
ICAgbW92ZShhcmcxLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJlZyBh
cmcyKQorICAgIHsKKyAgICAgICAgbW92ZShhcmcyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwor
ICAgICAgICBtb3ZlKGFyZzEsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorICAgIAog
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhHUFJSZWcgYXJnMSwgR1BSUmVn
IGFyZzIpCiAgICAgewogICAgICAgICBzZXR1cFR3b1N0dWJBcmdzR1BSPEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxPihhcmcxLCBhcmcyKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsMjEgKzc4LDYgQEAgdm9pZCByZWxlYXNlRXhlY3V0
YWJsZU1lbW9yeShWTSYpOwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgaml0QWxsb2NhdGlvbkdy
YW51bGUgPSAzMjsKIAotaW5saW5lIHNpemVfdCByb3VuZFVwQWxsb2NhdGlvblNpemUoc2l6ZV90
IHJlcXVlc3QsIHNpemVfdCBncmFudWxhcml0eSkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVCgoc3Rk
OjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSAtIGdyYW51bGFyaXR5KSA+IHJlcXVlc3Qp
OwotICAgIAotICAgIC8vIFJvdW5kIHVwIHRvIG5leHQgcGFnZSBib3VuZGFyeQotICAgIHNpemVf
dCBzaXplID0gcmVxdWVzdCArIChncmFudWxhcml0eSAtIDEpOwotICAgIHNpemUgPSBzaXplICYg
fihncmFudWxhcml0eSAtIDEpOwotICAgIEFTU0VSVChzaXplID49IHJlcXVlc3QpOwotICAgIHJl
dHVybiBzaXplOwotfQotCi19Ci0KLW5hbWVzcGFjZSBKU0MgewotCiB0eXBlZGVmIFdURjo6TWV0
YUFsbG9jYXRvckhhbmRsZSBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOwogCiAjaWYgRU5BQkxFKEFT
U0VNQkxFUikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNiArMzQsNyBAQAogSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNoZWNr
U3RhdGUgSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19zc2UyQ2hlY2tTdGF0ZSA9IE5v
dENoZWNrZWRTU0UyOwogI2VuZGlmCiAKKyNpbmNsdWRlICJBcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR0NhcGFiaWxpdGll
cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCkBAIC00MiwxMSArNDMsMTMgQEAgSlNDOjpN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNoZWNrUwogI2luY2x1ZGUgIkpTQXJyYXkuaCIK
ICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1
ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgi
CiAjaW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgiCisj
aW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2Fs
bHlSYW5kb21OdW1iZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTk4LDYgKzEwMSw3
IEBAIHZvaWQgSklUOjplbWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjaygpCiAgICAgQVNTRVJUKCFt
X2J5dGVjb2RlT2Zmc2V0KTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk9wdGltaXplLCBt
X2J5dGVjb2RlT2Zmc2V0KTsKICAgICBza2lwT3B0aW1pemUuYXBwZW5kKGJyYW5jaFRlc3RQdHIo
WmVybywgcmV0dXJuVmFsdWVHUFIpKTsKKyAgICBtb3ZlKHJldHVyblZhbHVlR1BSMiwgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOwogICAgIGp1bXAocmV0dXJuVmFsdWVHUFIpOwogICAgIHNraXBPcHRp
bWl6ZS5saW5rKHRoaXMpOwogfQpAQCAtMTI4LDYgKzEzMiw5IEBAIHZvaWQgSklUOjplbWl0RW50
ZXJPcHRpbWl6YXRpb25DaGVjaygpCiAKIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNz
KCkKIHsKKyAgICBqaXRBc3NlcnRUYWdzSW5QbGFjZSgpOworICAgIGppdEFzc2VydEFyZ3VtZW50
Q291bnRTYW5lKCk7CisgICAgCiAgICAgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uc0JlZ2luID0g
bV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgdW5zaWduZWQgaW5zdHJ1
Y3Rpb25Db3VudCA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5zaXplKCk7CiAKQEAgLTQ5
Niw4ICs1MDMsNyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAg
ICAgaWYgKG1fcmFuZG9tR2VuZXJhdG9yLmdldFVpbnQzMigpICYgMSkKICAgICAgICAgbm9wKCk7
CiAKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDIpOwotICAgIGVtaXRQ
dXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QyKTsKKyAgICBlbWl0RnVuY3Rpb25Qcm9s
b2d1ZSgpOwogICAgIGVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcihtX2NvZGVCbG9j
aywgSlNTdGFjazo6Q29kZUJsb2NrKTsKIAogICAgIExhYmVsIGJlZ2luTGFiZWwodGhpcyk7CkBA
IC01MDcsNyArNTEzLDcgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShK
SQogICAgIHNhbXBsZUluc3RydWN0aW9uKG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpKTsKICNlbmRpZgogCi0gICAgSnVtcCBzdGFja0NoZWNrOworICAgIEp1bXAgc3RhY2tPdmVy
ZmxvdzsKICAgICBpZiAobV9jb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKSB7
CiAgICAgICAgIEFTU0VSVChtX2J5dGVjb2RlT2Zmc2V0ID09ICh1bnNpZ25lZCktMSk7CiAgICAg
ICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKQEAgLTUyNywxMiArNTMzLDEzIEBAIENv
bXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogCi0gICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9y
TG9jYWwoZnJhbWVSZWdpc3RlckNvdW50Rm9yKG1fY29kZUJsb2NrKSkub2Zmc2V0KCkgKiBzaXpl
b2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QxKTsKLSAgICAgICAgc3RhY2tD
aGVjayA9IGJyYW5jaFB0cihBYm92ZSwgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmFkZHJlc3NPZkpT
U3RhY2tMaW1pdCgpKSwgcmVnVDEpOworICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNr
UG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZy
YW1lUmVnaXN0ZXIsIHJlZ1QxKTsKKyAgICAgICAgc3RhY2tPdmVyZmxvdyA9IGJyYW5jaFB0cihB
Ym92ZSwgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwgcmVn
VDEpOwogICAgIH0KIAotICAgIExhYmVsIGZ1bmN0aW9uQm9keSA9IGxhYmVsKCk7Ci0gICAgCisg
ICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2sp
ICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKwogICAgIHByaXZhdGVD
b21waWxlTWFpblBhc3MoKTsKICAgICBwcml2YXRlQ29tcGlsZUxpbmtQYXNzKCk7CiAgICAgcHJp
dmF0ZUNvbXBpbGVTbG93Q2FzZXMoKTsKQEAgLTU0MiwxOCArNTQ5LDE1IEBAIENvbXBpbGF0aW9u
UmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKIAogICAgIExhYmVsIGFyaXR5Q2hlY2s7CiAg
ICAgaWYgKG1fY29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSkgewotICAgICAg
ICBzdGFja0NoZWNrLmxpbmsodGhpcyk7CisgICAgICAgIHN0YWNrT3ZlcmZsb3cubGluayh0aGlz
KTsKICAgICAgICAgbV9ieXRlY29kZU9mZnNldCA9IDA7Ci0gICAgICAgIGNhbGxPcGVyYXRpb25X
aXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25TdGFja0NoZWNrLCBtX2Nv
ZGVCbG9jayk7Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0ID0gKHVu
c2lnbmVkKS0xOyAvLyBSZXNldCB0aGlzLCBpbiBvcmRlciB0byBndWFyZCBpdHMgdXNlIHdpdGgg
QVNTRVJUcy4KLSNlbmRpZgotICAgICAgICBqdW1wKGZ1bmN0aW9uQm9keSk7CisgICAgICAgIGlm
IChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0cihUcnVz
dGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVn
aXN0ZXIpOworICAgICAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNl
cHRpb24ob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IsIG1fY29kZUJsb2NrKTsKIAog
ICAgICAgICBhcml0eUNoZWNrID0gbGFiZWwoKTsKICAgICAgICAgc3RvcmU4KFRydXN0ZWRJbW0z
MigwKSwgJm1fY29kZUJsb2NrLT5tX3Nob3VsZEFsd2F5c0JlSW5saW5lZCk7Ci0gICAgICAgIHBy
ZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMik7Ci0gICAgICAgIGVtaXRQdXRSZXR1
cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QyKTsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9n
dWUoKTsKICAgICAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKG1fY29kZUJs
b2NrLCBKU1N0YWNrOjpDb2RlQmxvY2spOwogCiAgICAgICAgIGxvYWQzMihwYXlsb2FkRm9yKEpT
U3RhY2s6OkFyZ3VtZW50Q291bnQpLCByZWdUMSk7CkBAIC01NjEsMTAgKzU2NSwxNiBAQCBDb21w
aWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAKICAgICAgICAgbV9ieXRlY29k
ZU9mZnNldCA9IDA7CiAKKyAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
KQorICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIGNhbGxPcGVyYXRpb25X
aXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihtX2NvZGVCbG9jay0+bV9pc0NvbnN0cnVj
dG9yID8gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayA6IG9wZXJhdGlvbkNhbGxBcml0eUNo
ZWNrKTsKKyAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAg
ICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCks
IHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAgaWYgKHJldHVyblZhbHVlR1BSICE9IHJl
Z1QwKQogICAgICAgICAgICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgcmVnVDApOwogICAgICAgICBi
cmFuY2hUZXN0MzIoWmVybywgcmVnVDApLmxpbmtUbyhiZWdpbkxhYmVsLCB0aGlzKTsKKyAgICAg
ICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fdm0tPmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5y
ZXR1cm5QQ3NGb3IoKm1fdm0sIG1fY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKSwgcmVnVDUp
OworICAgICAgICBsb2FkUHRyKEJhc2VJbmRleChyZWdUNSwgcmVnVDAsIHRpbWVzUHRyKCkpLCBy
ZWdUNSk7CiAgICAgICAgIGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1Yihhcml0eUZpeHVw
KS5jb2RlKCkpOwogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRApAQCAtNjUzLDIwICs2NjMsMTIgQEAg
Q29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSQogICAgICAgICBpbmZvLmNh
bGxlZUdQUiA9IHJlZ1QwOwogICAgIH0KIAotI2lmIEVOQUJMRShERkdfSklUKSB8fCBFTkFCTEUo
TExJTlQpCi0gICAgaWYgKGNhbkJlT3B0aW1pemVkT3JJbmxpbmVkKCkKLSNpZiBFTkFCTEUoTExJ
TlQpCi0gICAgICAgIHx8IHRydWUKLSNlbmRpZgotICAgICAgICApIHsKLSAgICAgICAgQ29tcGFj
dEpJVENvZGVNYXA6OkVuY29kZXIgaml0Q29kZU1hcEVuY29kZXI7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgYnl0ZWNvZGVPZmZzZXQgPSAwOyBieXRlY29kZU9mZnNldCA8IG1fbGFiZWxzLnNpemUo
KTsgKytieXRlY29kZU9mZnNldCkgewotICAgICAgICAgICAgaWYgKG1fbGFiZWxzW2J5dGVjb2Rl
T2Zmc2V0XS5pc1NldCgpKQotICAgICAgICAgICAgICAgIGppdENvZGVNYXBFbmNvZGVyLmFwcGVu
ZChieXRlY29kZU9mZnNldCwgcGF0Y2hCdWZmZXIub2Zmc2V0T2YobV9sYWJlbHNbYnl0ZWNvZGVP
ZmZzZXRdKSk7Ci0gICAgICAgIH0KLSAgICAgICAgbV9jb2RlQmxvY2stPnNldEpJVENvZGVNYXAo
aml0Q29kZU1hcEVuY29kZXIuZmluaXNoKCkpOworICAgIENvbXBhY3RKSVRDb2RlTWFwOjpFbmNv
ZGVyIGppdENvZGVNYXBFbmNvZGVyOworICAgIGZvciAodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQg
PSAwOyBieXRlY29kZU9mZnNldCA8IG1fbGFiZWxzLnNpemUoKTsgKytieXRlY29kZU9mZnNldCkg
eworICAgICAgICBpZiAobV9sYWJlbHNbYnl0ZWNvZGVPZmZzZXRdLmlzU2V0KCkpCisgICAgICAg
ICAgICBqaXRDb2RlTWFwRW5jb2Rlci5hcHBlbmQoYnl0ZWNvZGVPZmZzZXQsIHBhdGNoQnVmZmVy
Lm9mZnNldE9mKG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XSkpOwogICAgIH0KLSNlbmRpZgorICAg
IG1fY29kZUJsb2NrLT5zZXRKSVRDb2RlTWFwKGppdENvZGVNYXBFbmNvZGVyLmZpbmlzaCgpKTsK
IAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVjazsKICAgICBpZiAobV9j
b2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKQpAQCAtNjg3LDggKzY4OSw3IEBA
IENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAgICAKICAgICBtX2Nv
ZGVCbG9jay0+c2hyaW5rVG9GaXQoQ29kZUJsb2NrOjpMYXRlU2hyaW5rKTsKICAgICBtX2NvZGVC
bG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUocmVz
dWx0LCBKSVRDb2RlOjpCYXNlbGluZUpJVCkpLAotICAgICAgICB3aXRoQXJpdHlDaGVjayk7Cisg
ICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHJlc3VsdCwgd2l0aEFyaXR5Q2hlY2ss
IEpJVENvZGU6OkJhc2VsaW5lSklUKSkpOwogICAgIAogI2lmIEVOQUJMRShKSVRfVkVSQk9TRSkK
ICAgICBkYXRhTG9nRigiSklUIGdlbmVyYXRlZCBjb2RlIGZvciAlcCBhdCBbJXAsICVwKS5cbiIs
IG1fY29kZUJsb2NrLCByZXN1bHQuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFydCgpLCByZXN1bHQu
ZXhlY3V0YWJsZU1lbW9yeSgpLT5lbmQoKSk7CkBAIC02OTcsNDIgKzY5OCw2IEBAIENvbXBpbGF0
aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAgICByZXR1cm4gQ29tcGlsYXRpb25T
dWNjZXNzZnVsOwogfQogCi12b2lkIEpJVDo6bGlua0ZvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRnVu
Y3Rpb24qIGNhbGxlZSwgQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ssIENvZGVCbG9jayogY2Fs
bGVlQ29kZUJsb2NrLCBKSVQ6OkNvZGVQdHIgY29kZSwgQ2FsbExpbmtJbmZvKiBjYWxsTGlua0lu
Zm8sIFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQotewotICAgIFJlcGF0Y2hC
dWZmZXIgcmVwYXRjaEJ1ZmZlcihjYWxsZXJDb2RlQmxvY2spOwotCi0gICAgQVNTRVJUKCFjYWxs
TGlua0luZm8tPmlzTGlua2VkKCkpOwotICAgIGNhbGxMaW5rSW5mby0+Y2FsbGVlLnNldCgqdm0s
IGNhbGxMaW5rSW5mby0+aG90UGF0aEJlZ2luLCBjYWxsZXJDb2RlQmxvY2stPm93bmVyRXhlY3V0
YWJsZSgpLCBjYWxsZWUpOwotICAgIGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuc2V0KCp2
bSwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVlKTsKLSAgICByZXBh
dGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8tPmhvdFBhdGhPdGhlciwgY29kZSk7Ci0KLSAg
ICBpZiAoY2FsbGVlQ29kZUJsb2NrKQotICAgICAgICBjYWxsZWVDb2RlQmxvY2stPmxpbmtJbmNv
bWluZ0NhbGwoZXhlYywgY2FsbExpbmtJbmZvKTsKLQotICAgIC8vIFBhdGNoIHRoZSBzbG93IHBh
dGNoIHNvIHdlIGRvIG5vdCBjb250aW51ZSB0byB0cnkgdG8gbGluay4KLSAgICBpZiAoa2luZCA9
PSBDb2RlRm9yQ2FsbCkgewotICAgICAgICBBU1NFUlQoY2FsbExpbmtJbmZvLT5jYWxsVHlwZSA9
PSBDYWxsTGlua0luZm86OkNhbGwKLSAgICAgICAgICAgICAgIHx8IGNhbGxMaW5rSW5mby0+Y2Fs
bFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpDYWxsVmFyYXJncyk7Ci0gICAgICAgIGlmIChjYWxsTGlu
a0luZm8tPmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2FsbCkgewotICAgICAgICAgICAgcmVw
YXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5n
ZXRDVElTdHViKGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmso
Y2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRDVElTdHViKHZpcnR1YWxD
YWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICByZXBhdGNoQnVmZmVyLnJl
bGluayhjYWxsTGlua0luZm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIodmly
dHVhbENvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotfQotCi12b2lkIEpJVDo6bGlu
a1Nsb3dDYWxsKENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrLCBDYWxsTGlua0luZm8qIGNhbGxM
aW5rSW5mbykKLXsKLSAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIoY2FsbGVyQ29kZUJs
b2NrKTsKLQotICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby0+Y2FsbFJldHVy
bkxvY2F0aW9uLCBjYWxsZXJDb2RlQmxvY2stPnZtKCktPmdldENUSVN0dWIodmlydHVhbENhbGxU
aHVua0dlbmVyYXRvcikuY29kZSgpKTsKLX0KLQogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlRXhj
ZXB0aW9uSGFuZGxlcnMoKQogewogICAgIGlmIChtX2V4Y2VwdGlvbkNoZWNrcy5lbXB0eSgpICYm
IG1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLmVtcHR5KCkpCkBAIC03NDIs
NyArNzA3LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlRXhjZXB0aW9uSGFuZGxlcgogCiAg
ICAgaWYgKCFtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFjay5lbXB0eSgpKSB7
CiAgICAgICAgIG1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLmxpbmsodGhp
cyk7Ci0gICAgICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxG
cmFtZUhlYWRlclB0cihHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgICAgICBkb0xvb2t1cCA9
IGp1bXAoKTsKICAgICB9CiAKQEAgLTc1MCwxOSArNzE1LDMzIEBAIHZvaWQgSklUOjpwcml2YXRl
Q29tcGlsZUV4Y2VwdGlvbkhhbmRsZXIKICAgICAgICAgbV9leGNlcHRpb25DaGVja3MubGluayh0
aGlzKTsKICAgICAKICAgICAvLyBsb29rdXBFeGNlcHRpb25IYW5kbGVyIGlzIHBhc3NlZCBvbmUg
YXJndW1lbnQsIHRoZSBleGVjICh0aGUgQ2FsbEZyYW1lKikuCi0gICAgbW92ZShHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBtb3ZlKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogCiAgICAgaWYg
KGRvTG9va3VwLmlzU2V0KCkpCiAgICAgICAgIGRvTG9va3VwLmxpbmsodGhpcyk7CiAKKyAgICBt
b3ZlKFRydXN0ZWRJbW1QdHIodm0oKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisKICNpZiBD
UFUoWDg2KQogICAgIC8vIEZJWE1FOiBzaG91bGQgdXNlIHRoZSBjYWxsIGFic3RyYWN0aW9uLCBi
dXQgdGhpcyBpcyBjdXJyZW50bHkgaW4gdGhlIFNwZWN1bGF0aXZlSklUIGxheWVyIQogICAgIHBv
a2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BS
MSwgMSk7CiAjZW5kaWYKICAgICBtX2NhbGxzLmFwcGVuZChDYWxsUmVjb3JkKGNhbGwoKSwgKHVu
c2lnbmVkKS0xLCBGdW5jdGlvblB0cihsb29rdXBFeGNlcHRpb25IYW5kbGVyKS52YWx1ZSgpKSk7
CiAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcigpOwogfQogCit1bnNpZ25lZCBKSVQ6OmZyYW1l
UmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3sKKyAgICBBU1NFUlQoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMpID09IFdU
Rjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVycykpKTsKKworICAg
IHJldHVybiByb3VuZExvY2FsUmVnaXN0ZXJDb3VudEZvckZyYW1lUG9pbnRlck9mZnNldChjb2Rl
QmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzICsgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGxJblJlZ2lzdGVycyk7Cit9CisKK2ludCBKSVQ6OnN0YWNrUG9pbnRlck9mZnNldEZvcihDb2Rl
QmxvY2sqIGNvZGVCbG9jaykKK3sKKyAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwo
ZnJhbWVSZWdpc3RlckNvdW50Rm9yKGNvZGVCbG9jaykgLSAxKS5vZmZzZXQoKTsKK30KIAogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjQxLDEzICsyNDEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVy
biBqaXQucHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5jKTsKICAgICAgICAgfQog
Ci0gICAgICAgIHN0YXRpYyB2b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiwgSlNGdW5jdGlvbiogY2Fs
bGVlLCBDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jaywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxv
Y2ssIENvZGVQdHIsIENhbGxMaW5rSW5mbyosIFZNKiwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7
Ci0gICAgICAgIHN0YXRpYyB2b2lkIGxpbmtTbG93Q2FsbChDb2RlQmxvY2sqIGNhbGxlckNvZGVC
bG9jaywgQ2FsbExpbmtJbmZvKik7Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgdW5zaWduZWQg
ZnJhbWVSZWdpc3RlckNvdW50Rm9yKENvZGVCbG9jayogY29kZUJsb2NrKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsKLSAgICAg
ICAgfQorICAgICAgICBzdGF0aWMgdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50Rm9yKENvZGVC
bG9jayopOworICAgICAgICBzdGF0aWMgaW50IHN0YWNrUG9pbnRlck9mZnNldEZvcihDb2RlQmxv
Y2sqKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpJVChWTSosIENvZGVCbG9jayogPSAwKTsK
QEAgLTY5NywxMSArNjkyLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlvbl9F
UGMsIGludCwgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FWiwgaW50LCBpbnQzMl90KTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9FSlMsIEdQUlJl
Zywgc2l6ZV90KTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihQ
X0pJVE9wZXJhdGlvbl9FWiwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUNDLCBSZWdpc3RlcklELCBSZWdpc3RlcklE
KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJh
dGlvbl9FSiwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUpKLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9F
T0pzcywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oU3BydF9KSVRPcGVyYXRpb25fRVosIGludDMyX3QpOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0UpOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VDLCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FQ0MsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwpAQCAtNzI2
LDYgKzcyMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VQYywgSW5zdHJ1Y3Rpb24qKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FWiwg
aW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25XaXRo
Q2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihKX0pJVE9wZXJhdGlvbl9FKTsKKyAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soSl9KSVRP
cGVyYXRpb25fRUUsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24oVl9KSVRPcGVyYXRp
b25fRUNiLCBDb2RlQmxvY2sqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKFpfSklUT3BlcmF0aW9uX0Up
OwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVENhbGwzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRDYWxsMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5
LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzdWx0
VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25t
ZW50LmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKIApAQCAtNTYsMTAg
KzU3LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0KEluc3RydWN0aW9uKiBjdXJyZQogICAgIHVu
c2lnbmVkIGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAKICAgICBlbWl0
TG9hZChkc3QsIHJlZ1QxLCByZWdUMCk7Ci0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFt
ZUhlYWRlclB0cihyZWdUMik7Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhl
YWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7CiAKLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0Jl
Zm9yZVJldHVybihyZWdUMik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAg
ICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC03MywyMCArNzMs
MTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0X29iamVjdF9vcl90aGlzKElucwogICAgIGxvYWRQ
dHIoQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHJlZ1QyKTsKICAg
ICBKdW1wIG5vdE9iamVjdCA9IGVtaXRKdW1wSWZOb3RPYmplY3QocmVnVDIpOwogCi0gICAgZW1p
dEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMik7Ci0gICAgZW1pdEdldENh
bGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KLSAg
ICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMik7CisgICAgY2hlY2tTdGFj
a1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJl
dCgpOwogCiAgICAgbm90SlNDZWxsLmxpbmsodGhpcyk7CiAgICAgbm90T2JqZWN0LmxpbmsodGhp
cyk7CiAgICAgZW1pdExvYWQodGhpc1JlZywgcmVnVDEsIHJlZ1QwKTsKIAotICAgIGVtaXRHZXRS
ZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVnVDIpOwotICAgIGVtaXRHZXRDYWxsZXJG
cmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwotCi0gICAgcmVz
dG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDIpOworICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KCk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsK
IH0KIApAQCAtMTUxLDggKzE0NywxMiBAQCB2b2lkIEpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKElu
c3RydWN0aW9uCiAgICAgICAgIC8vIHJlZ1QyOiBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcwog
CiAgICAgICAgIG1vdmUocmVnVDIsIHJlZ1QzKTsKKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0z
MigtZmlyc3RGcmVlUmVnaXN0ZXIgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgcmVn
VDMpOworICAgICAgICAvLyByZWdUMSBub3cgaGFzIHRoZSByZXF1aXJlZCBmcmFtZSBzaXplIGlu
IFJlZ2lzdGVyIHVuaXRzCisgICAgICAgIC8vIFJvdW5kIHJlZ1QxIHRvIG5leHQgbXVsdGlwbGUg
b2Ygc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKQorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMy
KHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSwgcmVnVDMpOworICAgICAgICBhbmRQdHIo
VHJ1c3RlZEltbTMyKH4oc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSAtIDEpKSwgcmVnVDMpOwog
ICAgICAgICBuZWczMihyZWdUMyk7Ci0gICAgICAgIGFkZDMyKFRydXN0ZWRJbW0zMihmaXJzdEZy
ZWVSZWdpc3RlciAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCByZWdUMyk7CiAgICAg
ICAgIGxzaGlmdDMyKFRydXN0ZWRJbW0zMigzKSwgcmVnVDMpOwogICAgICAgICBhZGRQdHIoY2Fs
bEZyYW1lUmVnaXN0ZXIsIHJlZ1QzKTsKICAgICAgICAgLy8gcmVnVDM6IG5ld0NhbGxGcmFtZQpA
QCAtMTg1LDIyICsxODUsMzQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyhJbnN0cnVj
dGlvbgogICAgICAgICBzbG93Q2FzZS5saW5rKHRoaXMpOwogCiAgICAgZW1pdExvYWQoYXJndW1l
bnRzLCByZWdUMSwgcmVnVDApOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUFuZEFs
bG9jRnJhbWVGb3JWYXJhcmdzLCByZWdUMSwgcmVnVDAsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKLSAg
ICBtb3ZlKHJldHVyblZhbHVlR1BSLCByZWdUNSk7Ci0gICAgZW1pdExvYWQodGhpc1ZhbHVlLCBy
ZWdUMSwgcmVnVDApOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFy
YXJncywgcmVnVDEsIHJlZ1QwLCBmaXJzdEZyZWVSZWdpc3Rlcik7CisgICAgbW92ZShyZXR1cm5W
YWx1ZUdQUiwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGVtaXRMb2FkKHRoaXNWYWx1ZSwg
cmVnVDEsIHJlZ1Q0KTsKICAgICBlbWl0TG9hZChhcmd1bWVudHMsIHJlZ1QzLCByZWdUMik7Ci0g
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmVnVDUsIHJlZ1QxLCByZWdU
MCwgcmVnVDMsIHJlZ1QyKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkxvYWRWYXJhcmdz
LCByZXR1cm5WYWx1ZUdQUiwgcmVnVDEsIHJlZ1Q0LCByZWdUMywgcmVnVDIpOwogICAgIG1vdmUo
cmV0dXJuVmFsdWVHUFIsIHJlZ1QzKTsKIAogICAgIGlmIChjYW5PcHRpbWl6ZSkKICAgICAgICAg
ZW5kLmxpbmsodGhpcyk7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihDYWxsZXJG
cmFtZUFuZFBDKSksIHJlZ1QzLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiB9CiAKIHZvaWQgSklU
Ojpjb21waWxlQ2FsbEV2YWwoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogewotICAgIGNhbGxP
cGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25DYWxsRXZh
bCk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykpKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHJlZ1QxKTsKKwor
ICAgIGNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkNhbGxFdmFsLCByZWdU
MSk7CisKKyAgICBKdW1wIG5vRXhjZXB0aW9uID0gZW1pdEV4Y2VwdGlvbkNoZWNrKEludmVydGVk
RXhjZXB0aW9uQ2hlY2spOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zm
c2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rl
ciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGV4Y2VwdGlvbkNoZWNrKGp1bXAoKSk7CisK
KyAgICBub0V4Y2VwdGlvbi5saW5rKHRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKEVx
dWFsLCByZWdUMSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKSk7Ci0gICAg
ZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rl
cik7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2Nv
ZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAg
c2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTIxMSw4ICsyMjMsMTMgQEAg
dm9pZCBKSVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dDYXNlKEluc3RydQogewogICAgIGxpbmtTbG93
Q2FzZShpdGVyKTsKIAorICAgIGxvYWRQdHIoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rlciwg
c2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OkNhbGxlZSAtIHNpemVvZihDYWxsZXJGcmFtZUFu
ZFBDKSksIHJlZ1QwKTsKKyAgICBsb2FkUHRyKEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIs
IHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpDYWxsZWUgLSBzaXplb2YoQ2FsbGVyRnJhbWVB
bmRQQykpLCByZWdUMSk7CisKICAgICBlbWl0TG9hZChKU1N0YWNrOjpDYWxsZWUsIHJlZ1QxLCBy
ZWdUMCk7CiAgICAgZW1pdE5ha2VkQ2FsbChtX3ZtLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1
bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50
ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJl
Z2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGln
bm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgCkBAIC0y
NTEsMTggKzI2OCwxNyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJ
CiAgICAgICAgICAgICBkb25lLmxpbmsodGhpcyk7CiAgICAgICAgIH0KICAgICAKLSAgICAgICAg
YWRkUHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikpLCBj
YWxsRnJhbWVSZWdpc3RlciwgcmVnVDMpOworICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHJl
Z2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lzdGVyKSArIHNpemVvZihDYWxsZXJGcmFtZUFuZFBD
KSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKLSAgICAgICAg
c3RvcmUzMihUcnVzdGVkSW1tMzIoYXJnQ291bnQpLCBwYXlsb2FkRm9yKEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQsIHJlZ1QzKSk7Ci0gICAgfSAvLyByZWdUMyBob2xkcyBuZXdDYWxsRnJhbWUgd2l0
aCBBcmd1bWVudENvdW50IGluaXRpYWxpemVkLgorICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0z
MihhcmdDb3VudCksIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9m
ZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworICAgIH0gLy8gU1AgaG9sZHMgbmV3
Q2FsbEZyYW1lICsgc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpLCB3aXRoIEFyZ3VtZW50Q291bnQg
aW5pdGlhbGl6ZWQuCiAgICAgCiAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbEZyYW1l
OjpMb2NhdGlvbjo6ZW5jb2RlQXNCeXRlY29kZUluc3RydWN0aW9uKGluc3RydWN0aW9uKTsKICAg
ICBzdG9yZTMyKFRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCB0YWdGb3IoSlNTdGFjazo6QXJn
dW1lbnRDb3VudCwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKICAgICBlbWl0TG9hZChjYWxsZWUsIHJl
Z1QxLCByZWdUMCk7IC8vIHJlZ1QxLCByZWdUMCBob2xkcyBjYWxsZWUuCiAKLSAgICBzdG9yZVB0
cihjYWxsRnJhbWVSZWdpc3RlciwgQWRkcmVzcyhyZWdUMywgQ2FsbEZyYW1lOjpjYWxsZXJGcmFt
ZU9mZnNldCgpKSk7Ci0gICAgZW1pdFN0b3JlKEpTU3RhY2s6OkNhbGxlZSwgcmVnVDEsIHJlZ1Qw
LCByZWdUMyk7Ci0gICAgbW92ZShyZWdUMywgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIHN0b3Jl
MzIocmVnVDAsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAq
IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6
ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisgICAgc3RvcmUzMihyZWdUMSwgQWRkcmVzcyhzdGFj
a1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6Q2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXpl
b2YoUmVnaXN0ZXIpKSArIFRhZ09mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOwog
CiAgICAgaWYgKG9wY29kZUlEID09IG9wX2NhbGxfZXZhbCkgewogICAgICAgICBjb21waWxlQ2Fs
bEV2YWwoaW5zdHJ1Y3Rpb24pOwpAQCAtMjgxLDEwICsyOTcsMTYgQEAgdm9pZCBKSVQ6OmNvbXBp
bGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSQogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxh
dGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxUeXBlID0gQ2FsbExpbmtJbmZvOjpjYWxs
VHlwZUZvcihvcGNvZGVJRCk7CiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5m
b1tjYWxsTGlua0luZm9JbmRleF0uYnl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVPZmZzZXQ7CiAK
LSAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBt
X3Njb3BlKSksIHJlZ1QxKTsKLSAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1Qx
LCBKU1N0YWNrOjpTY29wZUNoYWluKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVD
VF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlZ1QyKTsKKyAgICBzdG9yZTMyKHJl
Z1QyLCBBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFj
azo6U2NvcGVDaGFpbiAqIHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9m
KENhbGxlckZyYW1lQW5kUEMpKSk7CisgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
Q2VsbFRhZyksIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OlNjb3BlQ2hh
aW4gKiBzaXplb2YoUmVnaXN0ZXIpICsgVGFnT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5k
UEMpKSk7CisKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogICAgIG1fY2FsbFN0
cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmhvdFBhdGhPdGhl
ciA9IGVtaXROYWtlZENhbGwoKTsKIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2lu
dGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVS
ZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KCk7CisKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIGVtaXRQ
dXRDYWxsUmVzdWx0KGluc3RydWN0aW9uKTsKIH0KQEAgLTI5OSw3ICszMjEsMTQgQEAgdm9pZCBK
SVQ6OmNvbXBpbGVPcENhbGxTbG93Q2FzZShPcGNvZGVJRAogICAgIGxpbmtTbG93Q2FzZShpdGVy
KTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKLSAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29t
cGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0
TmFrZWRDYWxsKG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCA/IG1fdm0tPmdldENUSVN0dWIobGlu
a0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5jb2RlKCkgOiBtX3ZtLT5nZXRDVElTdHViKGxpbmtD
YWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9y
ID0gbGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgICAgICBvcGNvZGVJRCA9PSBvcF9jb25zdHJ1
Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisgICAgICAgIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTm90UmVxdWlyZWQpOworICAgIAorICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21w
aWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGVtaXRO
YWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNvZGUoKSk7CisKKyAgICBhZGRQ
dHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXpl
b2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2Nr
KG1fY29kZUJsb2NrKTsKICAgICBlbWl0UHV0Q2FsbFJlc3VsdChpbnN0cnVjdGlvbik7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVz
dWx0VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxp
Z25tZW50LmgiCiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCiAjaW5jbHVkZSA8d3RmL1N0
cmluZ1ByaW50U3RyZWFtLmg+CiAKQEAgLTcxLDEwICs3MiwxNCBAQCB2b2lkIEpJVDo6Y29tcGls
ZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uCiAgICAgICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVh
ZGVyMzIoSlNTdGFjazo6QXJndW1lbnRDb3VudCwgcmVnVDApOwogICAgICAgICBzbG93Q2FzZS5h
cHBlbmQoYnJhbmNoMzIoQWJvdmUsIHJlZ1QwLCBUcnVzdGVkSW1tMzIoQXJndW1lbnRzOjpNYXhB
cmd1bWVudHMgKyAxKSkpOwogICAgICAgICAvLyByZWdUMDogYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMKLQogICAgICAgICBtb3ZlKHJlZ1QwLCByZWdUMSk7CisgICAgICAgIGFkZDY0KFRydXN0
ZWRJbW0zMigtZmlyc3RGcmVlUmVnaXN0ZXIgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXpl
KSwgcmVnVDEpOworICAgICAgICAvLyByZWdUMSBub3cgaGFzIHRoZSByZXF1aXJlZCBmcmFtZSBz
aXplIGluIFJlZ2lzdGVyIHVuaXRzCisgICAgICAgIC8vIFJvdW5kIHJlZ1QxIHRvIG5leHQgbXVs
dGlwbGUgb2Ygc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKQorICAgICAgICBhZGQ2NChUcnVzdGVk
SW1tMzIoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSAtIDEpLCByZWdUMSk7CisgICAgICAgIGFu
ZDY0KFRydXN0ZWRJbW0zMih+KHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSksIHJlZ1Qx
KTsKKwogICAgICAgICBuZWc2NChyZWdUMSk7Ci0gICAgICAgIGFkZDY0KFRydXN0ZWRJbW0zMihm
aXJzdEZyZWVSZWdpc3RlciAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCByZWdUMSk7
CiAgICAgICAgIGxzaGlmdDY0KFRydXN0ZWRJbW0zMigzKSwgcmVnVDEpOwogICAgICAgICBhZGRQ
dHIoY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QxKTsKICAgICAgICAgLy8gcmVnVDE6IG5ld0NhbGxG
cmFtZQpAQCAtMTA1LDcgKzExMCw4IEBAIHZvaWQgSklUOjpjb21waWxlTG9hZFZhcmFyZ3MoSW5z
dHJ1Y3Rpb24KICAgICAgICAgc2xvd0Nhc2UubGluayh0aGlzKTsKIAogICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXIoYXJndW1lbnRzLCByZWdUMSk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25TaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MsIHJlZ1QxLCBmaXJzdEZyZWVSZWdpc3Rlcik7
CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCByZWdUMSwg
Zmlyc3RGcmVlUmVnaXN0ZXIpOworICAgIG1vdmUocmV0dXJuVmFsdWVHUFIsIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHRoaXNWYWx1ZSwgcmVnVDEp
OwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYXJndW1lbnRzLCByZWdUMik7CiAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmV0dXJuVmFsdWVHUFIsIHJlZ1QxLCBy
ZWdUMik7CkBAIC0xMTMsMTMgKzExOSwyNCBAQCB2b2lkIEpJVDo6Y29tcGlsZUxvYWRWYXJhcmdz
KEluc3RydWN0aW9uCiAKICAgICBpZiAoY2FuT3B0aW1pemUpCiAgICAgICAgIGVuZC5saW5rKHRo
aXMpOworICAgIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc2l6ZW9mKENhbGxlckZyYW1lQW5k
UEMpKSwgcmVnVDEsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIH0KIAogdm9pZCBKSVQ6OmNvbXBp
bGVDYWxsRXZhbChJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiB7Ci0gICAgY2FsbE9wZXJhdGlv
bldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbkNhbGxFdmFsKTsKKyAg
ICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihDYWxs
ZXJGcmFtZUFuZFBDKSkpLCBzdGFja1BvaW50ZXJSZWdpc3RlciwgcmVnVDEpOworICAgIGNhbGxP
cGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkNhbGxFdmFsLCByZWdUMSk7CisKKyAg
ICBKdW1wIG5vRXhjZXB0aW9uID0gZW1pdEV4Y2VwdGlvbkNoZWNrKEludmVydGVkRXhjZXB0aW9u
Q2hlY2spOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1f
Y29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOyAgICAKKyAgICBleGNlcHRpb25DaGVjayhqdW1wKCkpOworCisgICAg
bm9FeGNlcHRpb24ubGluayh0aGlzKTsKICAgICBhZGRTbG93Q2FzZShicmFuY2g2NChFcXVhbCwg
cmVnVDAsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKSkpKTsKLSAgICBl
bWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVy
KTsKKworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29k
ZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKICAgICBz
YW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIApAQCAtMTMwLDggKzE0NywxMCBAQCB2
b2lkIEpJVDo6Y29tcGlsZUNhbGxFdmFsU2xvd0Nhc2UoSW5zdHJ1CiB7CiAgICAgbGlua1Nsb3dD
YXNlKGl0ZXIpOwogCi0gICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXI2NChKU1N0YWNrOjpD
YWxsZWUsIHJlZ1QwKTsKKyAgICBsb2FkNjQoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rlciwg
c2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OkNhbGxlZSAtIHNpemVvZihDYWxsZXJGcmFtZUFu
ZFBDKSksIHJlZ1QwKTsKICAgICBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENUSVN0dWIodmlydHVh
bENhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0
YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2Fs
bEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9p
bnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAg
ICAKQEAgLTE3MCwxOCArMTg5LDE2IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKE9wY29kZUlE
IG9wY29kZUkKICAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsKICAgICAgICAgfQogICAgIAot
ICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lz
dGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3Rl
ZEltbTMyKGFyZ0NvdW50KSwgQWRkcmVzcyhyZWdUMSwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAq
IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5j
b2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgfSAvLyByZWdUMSBo
b2xkcyBuZXdDYWxsRnJhbWUgd2l0aCBBcmd1bWVudENvdW50IGluaXRpYWxpemVkLgorICAgICAg
ICBhZGRQdHIoVHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lzdGVyKSAr
IHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CisgICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGFyZ0NvdW50KSwgQWRk
cmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRp
Y19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENh
bGxlckZyYW1lQW5kUEMpKSk7CisgICAgfSAvLyBTUCBob2xkcyBuZXdDYWxsRnJhbWUgKyBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQyksIHdpdGggQXJndW1lbnRDb3VudCBpbml0aWFsaXplZC4KICAg
ICAKICAgICB1aW50MzJfdCBieXRlY29kZU9mZnNldCA9IGluc3RydWN0aW9uIC0gbV9jb2RlQmxv
Y2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0g
Q2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNCeXRlY29kZU9mZnNldChieXRlY29kZU9mZnNl
dCk7Ci0gICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQWRkcmVzcyhjYWxs
RnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4o
c2l6ZW9mKFJlZ2lzdGVyKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnRhZykpKTsKKyAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMp
LCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc3Rh
dGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFRhZ09mZnNldCkpOwogICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIoY2FsbGVlLCByZWdUMCk7IC8vIHJlZ1QwIGhvbGRzIGNhbGxlZS4K
IAotICAgIHN0b3JlNjQoY2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MocmVnVDEsIENhbGxGcmFt
ZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwotICAgIHN0b3JlNjQocmVnVDAsIEFkZHJlc3MocmVn
VDEsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkp
KTsKLSAgICBtb3ZlKHJlZ1QxLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgc3RvcmU2NChyZWdU
MCwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6Q2FsbGVlICogc3RhdGlj
X2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkp
OwogCiAgICAgaWYgKG9wY29kZUlEID09IG9wX2NhbGxfZXZhbCkgewogICAgICAgICBjb21waWxl
Q2FsbEV2YWwoaW5zdHJ1Y3Rpb24pOwpAQCAtMTk4LDEwICsyMTUsMTQgQEAgdm9pZCBKSVQ6OmNv
bXBpbGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSQogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21w
aWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxUeXBlID0gQ2FsbExpbmtJbmZvOjpj
YWxsVHlwZUZvcihvcGNvZGVJRCk7CiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9u
SW5mb1tjYWxsTGlua0luZm9JbmRleF0uYnl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVPZmZzZXQ7
CiAKLSAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9u
LCBtX3Njb3BlKSksIHJlZ1QxKTsKLSAgICBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIocmVnVDEs
IEpTU3RhY2s6OlNjb3BlQ2hhaW4pOworICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgT0JKRUNU
X09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGUpKSwgcmVnVDIpOworICAgIHN0b3JlNjQocmVn
VDIsIEFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNr
OjpTY29wZUNoYWluICogc2l6ZW9mKFJlZ2lzdGVyKSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBD
KSkpOworCiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0lu
Zm9JbmRleF0uaG90UGF0aE90aGVyID0gZW1pdE5ha2VkQ2FsbCgpOwogCisgICAgYWRkUHRyKFRy
dXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJl
Z2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAg
Y2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKwogICAgIHNhbXBsZUNvZGVCbG9jayhtX2Nv
ZGVCbG9jayk7CiAgICAgCiAgICAgZW1pdFB1dENhbGxSZXN1bHQoaW5zdHJ1Y3Rpb24pOwpAQCAt
MjE2LDcgKzIzNywxNCBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKE9wY29kZUlE
CiAKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKLSAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29t
cGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0
TmFrZWRDYWxsKG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCA/IG1fdm0tPmdldENUSVN0dWIobGlu
a0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5jb2RlKCkgOiBtX3ZtLT5nZXRDVElTdHViKGxpbmtD
YWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9y
ID0gbGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgICAgICBvcGNvZGVJRCA9PSBvcF9jb25zdHJ1
Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisgICAgICAgIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTm90UmVxdWlyZWQpOworICAgIAorICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21w
aWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGVtaXRO
YWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNvZGUoKSk7CisKKyAgICBhZGRQ
dHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXpl
b2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2Nr
KG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTIyNiw3ICsyNTQsNyBAQCB2b2lkIEpJVDo6Y29tcGls
ZU9wQ2FsbFNsb3dDYXNlKE9wY29kZUlECiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDbG9zdXJl
Q2FsbChDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxv
Y2ssIFN0cnVjdHVyZSogZXhwZWN0ZWRTdHJ1Y3R1cmUsIEV4ZWN1dGFibGVCYXNlKiBleHBlY3Rl
ZEV4ZWN1dGFibGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyKQogewogICAgIEp1bXBM
aXN0IHNsb3dDYXNlczsKLSAgICAKKwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0
cihOb25aZXJvLCByZWdUMCwgdGFnTWFza1JlZ2lzdGVyKSk7CiAgICAgc2xvd0Nhc2VzLmFwcGVu
ZChicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlT2Zm
c2V0KCkpLCBUcnVzdGVkSW1tUHRyKGV4cGVjdGVkU3RydWN0dXJlKSkpOwogICAgIHNsb3dDYXNl
cy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0Z1bmN0aW9uOjpv
ZmZzZXRPZkV4ZWN1dGFibGUoKSksIFRydXN0ZWRJbW1QdHIoZXhwZWN0ZWRFeGVjdXRhYmxlKSkp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwCShyZXZpc2lvbiAxNjI5
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJMTEludFRodW5rcy5oIgogI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJH
ZW5lcmF0b3IuaCIKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpT
QyB7CkBAIC00MSwxMSArNDIsOSBAQCBKSVRDb2RlOjp+SklUQ29kZSgpCiB7CiB9CiAKLUpTVmFs
dWUgSklUQ29kZTo6ZXhlY3V0ZShWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFt
ZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCitKU1ZhbHVlIEpJVENvZGU6OmV4ZWN1dGUoVk0qIHZt
LCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUpCiB7Ci0gICAgQVNTRVJUKCF2bS0+dG9w
Q2FsbEZyYW1lIHx8ICgoUmVnaXN0ZXIqKSh2bS0+dG9wQ2FsbEZyYW1lKSA+PSB0b3BPZlN0YWNr
KSk7Ci0KLSAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9KYXZhU2Ny
aXB0KGV4ZWN1dGFibGVBZGRyZXNzKCksICZ2bS0+dG9wQ2FsbEZyYW1lLCBwcm90b0NhbGxGcmFt
ZSwgdG9wT2ZTdGFjaykpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2RlKGNh
bGxUb0phdmFTY3JpcHQoZXhlY3V0YWJsZUFkZHJlc3MoKSwgdm0sIHByb3RvQ2FsbEZyYW1lKSk7
CiAgICAgcmV0dXJuIHZtLT5leGNlcHRpb24oKSA/IGpzTnVsbCgpIDogcmVzdWx0OwogfQogCkBA
IC03Myw1MiArNzIsMzUgQEAgRlRMOjpGb3JPU1JFbnRyeUpJVENvZGUqIEpJVENvZGU6OmZ0bEZv
cgogICAgIHJldHVybiAwOwogfQogCi1QYXNzUmVmUHRyPEpJVENvZGU+IEpJVENvZGU6Omhvc3RG
dW5jdGlvbihKSVRDb2RlOjpDb2RlUmVmIGNvZGUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBEaXJlY3RKSVRDb2RlKGNvZGUsIEhvc3RDYWxsVGh1bmspKTsKLX0KLQotRGlyZWN0SklUQ29k
ZTo6RGlyZWN0SklUQ29kZShKSVRUeXBlIGppdFR5cGUpCitKSVRDb2RlV2l0aENvZGVSZWY6OkpJ
VENvZGVXaXRoQ29kZVJlZihKSVRUeXBlIGppdFR5cGUpCiAgICAgOiBKSVRDb2RlKGppdFR5cGUp
CiB7CiB9CiAKLURpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENvZGUoY29uc3QgSklUQ29kZTo6Q29k
ZVJlZiByZWYsIEpJVFR5cGUgaml0VHlwZSkKK0pJVENvZGVXaXRoQ29kZVJlZjo6SklUQ29kZVdp
dGhDb2RlUmVmKENvZGVSZWYgcmVmLCBKSVRUeXBlIGppdFR5cGUpCiAgICAgOiBKSVRDb2RlKGpp
dFR5cGUpCiAgICAgLCBtX3JlZihyZWYpCiB7CiB9CiAKLURpcmVjdEpJVENvZGU6On5EaXJlY3RK
SVRDb2RlKCkKLXsKLX0KLQotdm9pZCBEaXJlY3RKSVRDb2RlOjppbml0aWFsaXplQ29kZVJlZihj
b25zdCBKSVRDb2RlOjpDb2RlUmVmIHJlZikKK0pJVENvZGVXaXRoQ29kZVJlZjo6fkpJVENvZGVX
aXRoQ29kZVJlZigpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoIW1fcmVmKTsKLSAgICBtX3JlZiA9
IHJlZjsKIH0KIAotSklUQ29kZTo6Q29kZVB0ciBEaXJlY3RKSVRDb2RlOjphZGRyZXNzRm9yQ2Fs
bCgpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwotICAgIHJldHVybiBtX3JlZi5jb2Rl
KCk7Ci19Ci0KLXZvaWQqIERpcmVjdEpJVENvZGU6OmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQo
c2l6ZV90IG9mZnNldCkKK3ZvaWQqIEpJVENvZGVXaXRoQ29kZVJlZjo6ZXhlY3V0YWJsZUFkZHJl
c3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KQogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsK
ICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9yZWYuY29kZSgpLmV4ZWN1dGFi
bGVBZGRyZXNzKCkpICsgb2Zmc2V0OwogfQogCi12b2lkKiBEaXJlY3RKSVRDb2RlOjpkYXRhQWRk
cmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCit2b2lkKiBKSVRDb2RlV2l0aENvZGVSZWY6OmRh
dGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVCht
X3JlZik7CiAgICAgQVNTRVJUKG9mZnNldCA8PSBzaXplKCkpOyAvLyB1c2UgPD0gaW5zdGVhZCBv
ZiA8IGJlY2F1c2UgaXQgaXMgdmFsaWQgdG8gYXNrIGZvciBhbiBhZGRyZXNzIGF0IHRoZSBleGNs
dXNpdmUgZW5kIG9mIHRoZSBjb2RlLgogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIq
PihtX3JlZi5jb2RlKCkuZGF0YUxvY2F0aW9uKCkpICsgb2Zmc2V0OwogfQogCi11bnNpZ25lZCBE
aXJlY3RKSVRDb2RlOjpvZmZzZXRPZih2b2lkKiBwb2ludGVySW50b0NvZGUpCit1bnNpZ25lZCBK
SVRDb2RlV2l0aENvZGVSZWY6Om9mZnNldE9mKHZvaWQqIHBvaW50ZXJJbnRvQ29kZSkKIHsKICAg
ICBSRUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgaW50cHRyX3QgcmVzdWx0ID0gcmVpbnRlcnBy
ZXRfY2FzdDxpbnRwdHJfdD4ocG9pbnRlckludG9Db2RlKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50
cHRyX3Q+KG1fcmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKQEAgLTEyNiwxOCArMTA4
LDExNiBAQCB1bnNpZ25lZCBEaXJlY3RKSVRDb2RlOjpvZmZzZXRPZih2b2lkKiBwCiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZXN1bHQpOwogfQogCi1zaXplX3QgRGlyZWN0SklU
Q29kZTo6c2l6ZSgpCitzaXplX3QgSklUQ29kZVdpdGhDb2RlUmVmOjpzaXplKCkKIHsKICAgICBS
RUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgcmV0dXJuIG1fcmVmLnNpemUoKTsKIH0KIAotYm9v
bCBEaXJlY3RKSVRDb2RlOjpjb250YWlucyh2b2lkKiBhZGRyZXNzKQorYm9vbCBKSVRDb2RlV2l0
aENvZGVSZWY6OmNvbnRhaW5zKHZvaWQqIGFkZHJlc3MpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQo
bV9yZWYpOwogICAgIHJldHVybiBtX3JlZi5leGVjdXRhYmxlTWVtb3J5KCktPmNvbnRhaW5zKGFk
ZHJlc3MpOwogfQogCitEaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRDb2RlKEpJVFR5cGUgaml0VHlw
ZSkKKyAgICA6IEpJVENvZGVXaXRoQ29kZVJlZihqaXRUeXBlKQoreworfQorCitEaXJlY3RKSVRD
b2RlOjpEaXJlY3RKSVRDb2RlKEpJVENvZGU6OkNvZGVSZWYgcmVmLCBKSVRDb2RlOjpDb2RlUHRy
IHdpdGhBcml0eUNoZWNrLCBKSVRUeXBlIGppdFR5cGUpCisgICAgOiBKSVRDb2RlV2l0aENvZGVS
ZWYocmVmLCBqaXRUeXBlKQorICAgICwgbV93aXRoQXJpdHlDaGVjayh3aXRoQXJpdHlDaGVjaykK
K3sKK30KKworRGlyZWN0SklUQ29kZTo6fkRpcmVjdEpJVENvZGUoKQoreworfQorCit2b2lkIERp
cmVjdEpJVENvZGU6OmluaXRpYWxpemVDb2RlUmVmKEpJVENvZGU6OkNvZGVSZWYgcmVmLCBKSVRD
b2RlOjpDb2RlUHRyIHdpdGhBcml0eUNoZWNrKQoreworICAgIFJFTEVBU0VfQVNTRVJUKCFtX3Jl
Zik7CisgICAgbV9yZWYgPSByZWY7CisgICAgbV93aXRoQXJpdHlDaGVjayA9IHdpdGhBcml0eUNo
ZWNrOworfQorCitEaXJlY3RKSVRDb2RlOjpSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzKiBE
aXJlY3RKSVRDb2RlOjplbnN1cmVXcmFwcGVycygpCit7CisgICAgaWYgKCFtX3dyYXBwZXJzKQor
ICAgICAgICBtX3dyYXBwZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxSZWdpc3RlclByZXNlcnZhdGlv
bldyYXBwZXJzPigpOworICAgIHJldHVybiBtX3dyYXBwZXJzLmdldCgpOworfQorCitKSVRDb2Rl
OjpDb2RlUHRyIERpcmVjdEpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKAorICAgIFZNJiB2bSwgRXhl
Y3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUsIEFyaXR5Q2hlY2tNb2RlIGFyaXR5LAorICAgIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChhcml0eSkgewor
ICAgIGNhc2UgQXJpdHlDaGVja05vdFJlcXVpcmVkOgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVy
cykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3JlZik7CisgICAgICAgICAgICByZXR1cm4gbV9yZWYu
Y29kZSgpOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczogeworI2lmIEVOQUJM
RShKSVQpCisgICAgICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzKiB3cmFwcGVy
cyA9IGVuc3VyZVdyYXBwZXJzKCk7CisgICAgICAgICAgICBpZiAoIXdyYXBwZXJzLT53aXRob3V0
QXJpdHlDaGVjaykKKyAgICAgICAgICAgICAgICB3cmFwcGVycy0+d2l0aG91dEFyaXR5Q2hlY2sg
PSBnZW5lcmF0ZVJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcih2bSwgZXhlY3V0YWJsZSwgbV9y
ZWYuY29kZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB3cmFwcGVycy0+d2l0aG91dEFyaXR5Q2hl
Y2suY29kZSgpOworI2Vsc2UKKyAgICAgICAgICAgIFVOVVNFRF9QQVJBTSh2bSk7CisgICAgICAg
ICAgICBVTlVTRURfUEFSQU0oZXhlY3V0YWJsZSk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIH0gfQorICAgIGNhc2UgTXVzdENoZWNr
QXJpdHk6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1f
d2l0aEFyaXR5Q2hlY2spOworICAgICAgICAgICAgcmV0dXJuIG1fd2l0aEFyaXR5Q2hlY2s7Cisg
ICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOiB7CisjaWYgRU5BQkxFKEpJVCkKKyAg
ICAgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnMqIHdyYXBwZXJzID0gZW5zdXJl
V3JhcHBlcnMoKTsKKyAgICAgICAgICAgIGlmICghd3JhcHBlcnMtPndpdGhBcml0eUNoZWNrKQor
ICAgICAgICAgICAgICAgIHdyYXBwZXJzLT53aXRoQXJpdHlDaGVjayA9IGdlbmVyYXRlUmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKHZtLCBleGVjdXRhYmxlLCBtX3dpdGhBcml0eUNoZWNrKTsK
KyAgICAgICAgICAgIHJldHVybiB3cmFwcGVycy0+d2l0aEFyaXR5Q2hlY2suY29kZSgpOworI2Vs
c2UKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAg
ICAgICAgfSB9CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIENvZGVQdHIoKTsKK30KKworTmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZShKSVRU
eXBlIGppdFR5cGUpCisgICAgOiBKSVRDb2RlV2l0aENvZGVSZWYoaml0VHlwZSkKK3sKK30KKwor
TmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZShDb2RlUmVmIHJlZiwgSklUVHlwZSBqaXRUeXBl
KQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlwZSkKK3sKK30KKworTmF0aXZl
SklUQ29kZTo6fk5hdGl2ZUpJVENvZGUoKQoreworfQorCit2b2lkIE5hdGl2ZUpJVENvZGU6Omlu
aXRpYWxpemVDb2RlUmVmKENvZGVSZWYgcmVmKQoreworICAgIEFTU0VSVCghbV9yZWYpOworICAg
IG1fcmVmID0gcmVmOworfQorCitKSVRDb2RlOjpDb2RlUHRyIE5hdGl2ZUpJVENvZGU6OmFkZHJl
c3NGb3JDYWxsKAorICAgIFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9kZSwgUmVn
aXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKQoreworICAgIFJFTEVBU0VfQVNTRVJUKCEhbV9yZWYpOwor
ICAgIHJldHVybiBtX3JlZi5jb2RlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiBuYW1l
c3BhY2UgV1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsMTQgKzI2LDE0IEBACiAjaWZuZGVmIEpJVENvZGVfaAogI2RlZmluZSBK
SVRDb2RlX2gKIAotI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKKyNpbmNsdWRlICJB
cml0eUNoZWNrTW9kZS5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkRpc2Fz
c2VtYmxlci5oIgogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5o
IgogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmLmgiCi0jZW5kaWYKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTU0LDcgKzU0LDE0IEBAIHB1YmxpYzoKICAgICB0eXBl
ZGVmIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBDb2RlUmVmOwogICAgIHR5cGVkZWYgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIENvZGVQdHI7CiAKLSAgICBlbnVtIEpJVFR5cGUgeyBOb25lLCBIb3N0Q2Fs
bFRodW5rLCBJbnRlcnByZXRlclRodW5rLCBCYXNlbGluZUpJVCwgREZHSklULCBGVExKSVQgfTsK
KyAgICBlbnVtIEpJVFR5cGUgOiB1aW50OF90IHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgSG9z
dENhbGxUaHVuaywKKyAgICAgICAgSW50ZXJwcmV0ZXJUaHVuaywKKyAgICAgICAgQmFzZWxpbmVK
SVQsCisgICAgICAgIERGR0pJVCwKKyAgICAgICAgRlRMSklUCisgICAgfTsKICAgICAKICAgICBz
dGF0aWMgSklUVHlwZSBib3R0b21UaWVySklUKCkKICAgICB7CkBAIC0xNjQsNyArMTcxLDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gaml0Q29kZS0+aml0VHlwZSgpOwogICAgIH0KICAgICAK
LSAgICB2aXJ0dWFsIENvZGVQdHIgYWRkcmVzc0ZvckNhbGwoKSA9IDA7CisgICAgdmlydHVhbCBD
b2RlUHRyIGFkZHJlc3NGb3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9k
ZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkKiBleGVj
dXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpID0gMDsKICAgICB2b2lkKiBleGVj
dXRhYmxlQWRkcmVzcygpIHsgcmV0dXJuIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoMCk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQqIGRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgPSAw
OwpAQCAtMTc1LDcgKzE4Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEZUTDo6SklUQ29kZSog
ZnRsKCk7CiAgICAgdmlydHVhbCBGVEw6OkZvck9TUkVudHJ5SklUQ29kZSogZnRsRm9yT1NSRW50
cnkoKTsKICAgICAKLSAgICBKU1ZhbHVlIGV4ZWN1dGUoVk0qLCBQcm90b0NhbGxGcmFtZSosIFJl
Z2lzdGVyKik7CisgICAgSlNWYWx1ZSBleGVjdXRlKFZNKiwgUHJvdG9DYWxsRnJhbWUqKTsKICAg
ICAKICAgICB2b2lkKiBzdGFydCgpIHsgcmV0dXJuIGRhdGFBZGRyZXNzQXRPZmZzZXQoMCk7IH0K
ICAgICB2aXJ0dWFsIHNpemVfdCBzaXplKCkgPSAwOwpAQCAtMTgzLDMxICsxOTAsNjIgQEAgcHVi
bGljOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyh2b2lkKikgPSAwOwogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8SklUQ29kZT4gaG9zdEZ1bmN0aW9uKENvZGVSZWYpOwotCiBwcml2
YXRlOgogICAgIEpJVFR5cGUgbV9qaXRUeXBlOwogfTsKIAotY2xhc3MgRGlyZWN0SklUQ29kZSA6
IHB1YmxpYyBKSVRDb2RlIHsKK2NsYXNzIEpJVENvZGVXaXRoQ29kZVJlZiA6IHB1YmxpYyBKSVRD
b2RlIHsKK3Byb3RlY3RlZDoKKyAgICBKSVRDb2RlV2l0aENvZGVSZWYoSklUVHlwZSk7CisgICAg
SklUQ29kZVdpdGhDb2RlUmVmKENvZGVSZWYsIEpJVFR5cGUpOworCiBwdWJsaWM6Ci0gICAgRGly
ZWN0SklUQ29kZShKSVRUeXBlKTsKLSAgICBEaXJlY3RKSVRDb2RlKGNvbnN0IENvZGVSZWYsIEpJ
VFR5cGUpOwotICAgIHZpcnR1YWwgfkRpcmVjdEpJVENvZGUoKTsKLSAgICAKLSAgICB2b2lkIGlu
aXRpYWxpemVDb2RlUmVmKENvZGVSZWYgcmVmKTsKKyAgICB2aXJ0dWFsIH5KSVRDb2RlV2l0aENv
ZGVSZWYoKTsKIAotICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbCgpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zm
c2V0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQqIGRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6
ZV90IG9mZnNldCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBvZmZzZXRPZih2b2lk
KiBwb2ludGVySW50b0NvZGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgc2l6ZV90IHNpemUoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnModm9pZCopIG92ZXJyaWRlOwogCi1w
cml2YXRlOgorcHJvdGVjdGVkOgogICAgIENvZGVSZWYgbV9yZWY7CiB9OwogCitjbGFzcyBEaXJl
Y3RKSVRDb2RlIDogcHVibGljIEpJVENvZGVXaXRoQ29kZVJlZiB7CitwdWJsaWM6CisgICAgRGly
ZWN0SklUQ29kZShKSVRUeXBlKTsKKyAgICBEaXJlY3RKSVRDb2RlKENvZGVSZWYsIENvZGVQdHIg
d2l0aEFyaXR5Q2hlY2ssIEpJVFR5cGUpOworICAgIHZpcnR1YWwgfkRpcmVjdEpJVENvZGUoKTsK
KyAgICAKKyAgICB2b2lkIGluaXRpYWxpemVDb2RlUmVmKENvZGVSZWYsIENvZGVQdHIgd2l0aEFy
aXR5Q2hlY2spOworCisgICAgdmlydHVhbCBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKFZNJiwgRXhl
Y3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9kZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKSBv
dmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFw
cGVycyB7CisgICAgICAgIENvZGVSZWYgd2l0aG91dEFyaXR5Q2hlY2s7CisgICAgICAgIENvZGVS
ZWYgd2l0aEFyaXR5Q2hlY2s7CisgICAgfTsKKworICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3Jh
cHBlcnMqIGVuc3VyZVdyYXBwZXJzKCk7CisgICAgCisgICAgQ29kZVB0ciBtX3dpdGhBcml0eUNo
ZWNrOworICAgIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWdpc3RlclByZXNlcnZhdGlvbldyYXBw
ZXJzPiBtX3dyYXBwZXJzOworfTsKKworY2xhc3MgTmF0aXZlSklUQ29kZSA6IHB1YmxpYyBKSVRD
b2RlV2l0aENvZGVSZWYgeworcHVibGljOgorICAgIE5hdGl2ZUpJVENvZGUoSklUVHlwZSk7Cisg
ICAgTmF0aXZlSklUQ29kZShDb2RlUmVmLCBKSVRUeXBlKTsKKyAgICB2aXJ0dWFsIH5OYXRpdmVK
SVRDb2RlKCk7CisgICAgCisgICAgdm9pZCBpbml0aWFsaXplQ29kZVJlZihDb2RlUmVmKTsKKwor
ICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbChWTSYsIEV4ZWN1dGFibGVCYXNlKiwg
QXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkgb3ZlcnJpZGU7Cit9Owor
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNlIFdURiB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDYgKzQzLDExIEBAIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIGdlbmVyaWNVbndp
bmQoVk0qIHZtLCBFeGVjU3RhdGUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZSkK
IHsKKyAgICBpZiAoT3B0aW9uczo6YnJlYWtPblRocm93KCkpIHsKKyAgICAgICAgZGF0YUxvZygi
SW4gY2FsbCBmcmFtZSAiLCBSYXdQb2ludGVyKGNhbGxGcmFtZSksICIgZm9yIGNvZGUgYmxvY2sg
IiwgKmNhbGxGcmFtZS0+Y29kZUJsb2NrKCksICJcbiIpOworICAgICAgICBDUkFTSCgpOworICAg
IH0KKyAgICAKICAgICBSRUxFQVNFX0FTU0VSVChleGNlcHRpb25WYWx1ZSk7CiAgICAgSGFuZGxl
ckluZm8qIGhhbmRsZXIgPSB2bS0+aW50ZXJwcmV0ZXItPnVud2luZChjYWxsRnJhbWUsIGV4Y2Vw
dGlvblZhbHVlKTsgLy8gVGhpcyBtYXkgdXBkYXRlIGNhbGxGcmFtZS4KIApAQCAtNTYsNyArNjEs
NyBAQCB2b2lkIGdlbmVyaWNVbndpbmQoVk0qIHZtLCBFeGVjU3RhdGUqIGNhCiAgICAgICAgIGNh
dGNoUm91dGluZSA9IGNhdGNoUENGb3JJbnRlcnByZXRlci0+dS5wb2ludGVyOwogI2VuZGlmCiAg
ICAgfSBlbHNlCi0gICAgICAgIGNhdGNoUm91dGluZSA9IExMSW50OjpnZXRDb2RlUHRyKHJldHVy
bkZyb21KYXZhU2NyaXB0KTsKKyAgICAgICAgY2F0Y2hSb3V0aW5lID0gTExJbnQ6OmdldENvZGVQ
dHIoaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24pOwogICAgIAogICAgIHZtLT5jYWxsRnJhbWVGb3JU
aHJvdyA9IGNhbGxGcmFtZTsKICAgICB2bS0+dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3cgPSBjYXRj
aFJvdXRpbmU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hl
R2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ5LDcgKzQ5LDcgQEAgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3I6OkpJVElubGluZUNh
Y2hlRwogCiBKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKAogICAgIENvZGVCbG9j
ayogY29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1
c2VkUmVnaXN0ZXJzLAotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3Mg
YmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKKyAgICBKU1Zh
bHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgYm9vbCByZWdpc3RlcnNGbHVzaGVkKQog
ICAgIDogSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IoY29kZUJsb2NrLCBjb2RlT3JpZ2luKQogICAg
ICwgbV9iYXNlKGJhc2UpCiAgICAgLCBtX3ZhbHVlKHZhbHVlKQpAQCAtNjIsNyArNjIsNiBAQCBK
SVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKAogICAgIG1fc3R1YkluZm8tPnBhdGNo
LnVzZWRSZWdpc3RlcnMuc2V0KGJhc2UpOwogICAgIG1fc3R1YkluZm8tPnBhdGNoLnVzZWRSZWdp
c3RlcnMuc2V0KHZhbHVlKTsKICAgICAKLSAgICBtX3N0dWJJbmZvLT5wYXRjaC5jYWxsRnJhbWVS
ZWdpc3RlciA9IHN0YXRpY19jYXN0PGludDhfdD4oY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIG1f
c3R1YkluZm8tPnBhdGNoLmJhc2VHUFIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KGJhc2UucGF5bG9h
ZEdQUigpKTsKICAgICBtX3N0dWJJbmZvLT5wYXRjaC52YWx1ZUdQUiA9IHN0YXRpY19jYXN0PGlu
dDhfdD4odmFsdWUucGF5bG9hZEdQUigpKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtMTMw
LDExICsxMjksOSBAQCB2b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhCiAK
IEpJVFB1dEJ5SWRHZW5lcmF0b3I6OkpJVFB1dEJ5SWRHZW5lcmF0b3IoCiAgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVz
ZWRSZWdpc3RlcnMsCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyBi
YXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsCi0gICAgYm9vbCByZWdpc3Rl
cnNGbHVzaGVkLCBFQ01BTW9kZSBlY21hTW9kZSwgUHV0S2luZCBwdXRLaW5kKQotICAgIDogSklU
QnlJZEdlbmVyYXRvcigKLSAgICAgICAgY29kZUJsb2NrLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0
ZXJzLCBjYWxsRnJhbWVSZWdpc3RlciwgYmFzZSwgdmFsdWUsCi0gICAgICAgIHJlZ2lzdGVyc0Zs
dXNoZWQpCisgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBz
Y3JhdGNoLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQsCisgICAgRUNNQU1vZGUgZWNtYU1vZGUsIFB1
dEtpbmQgcHV0S2luZCkKKyAgICA6IEpJVEJ5SWRHZW5lcmF0b3IoY29kZUJsb2NrLCBjb2RlT3Jp
Z2luLCB1c2VkUmVnaXN0ZXJzLCBiYXNlLCB2YWx1ZSwgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICAs
IG1fc2NyYXRjaChzY3JhdGNoKQogICAgICwgbV9lY21hTW9kZShlY21hTW9kZSkKICAgICAsIG1f
cHV0S2luZChwdXRLaW5kKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVDYWNoZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC01Niw4ICs1Niw4IEBAIHByb3RlY3RlZDoKICAgICBKSVRCeUlkR2VuZXJhdG9yKCkg
eyB9CiAKICAgICBKSVRCeUlkR2VuZXJhdG9yKAotICAgICAgICBDb2RlQmxvY2sqLCBDb2RlT3Jp
Z2luLCBjb25zdCBSZWdpc3RlclNldCYsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAg
ICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIGJvb2wgcmVnaXN0ZXJzRmx1
c2hlZCk7CisgICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0
JiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsCisgICAgICAgIGJvb2wgcmVn
aXN0ZXJzRmx1c2hlZCk7CiAgICAgCiBwdWJsaWM6CiAgICAgdm9pZCByZXBvcnRTbG93UGF0aENh
bGwoTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQYXRoQmVnaW4sIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGwpCkBAIC05NiwxMSArOTYsOCBAQCBwdWJsaWM6CiAKICAgICBKSVRHZXRCeUlkR2Vu
ZXJhdG9yKAogICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2RlT3Jp
Z2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKLSAgICAgICAgR1BSUmVnIGNh
bGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwKLSAg
ICAgICAgYm9vbCByZWdpc3RlcnNGbHVzaGVkKQotICAgICAgICA6IEpJVEJ5SWRHZW5lcmF0b3Io
Ci0gICAgICAgICAgICBjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMsIGNhbGxG
cmFtZVJlZ2lzdGVyLCBiYXNlLCB2YWx1ZSwKLSAgICAgICAgICAgIHJlZ2lzdGVyc0ZsdXNoZWQp
CisgICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBib29sIHJlZ2lz
dGVyc0ZsdXNoZWQpCisgICAgICAgIDogSklUQnlJZEdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVP
cmlnaW4sIHVzZWRSZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCByZWdpc3RlcnNGbHVzaGVkKQogICAg
IHsKICAgICB9CiAgICAgCkBAIC0xMTIsOSArMTA5LDggQEAgcHVibGljOgogICAgIEpJVFB1dEJ5
SWRHZW5lcmF0b3IoKSB7IH0KIAogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIENv
ZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBH
UFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFs
dWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgYm9vbCByZWdpc3RlcnNGbHVzaGVkLAotICAg
ICAgICBFQ01BTW9kZSwgUHV0S2luZCk7CisgICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4s
IGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyBiYXNlLAorICAg
ICAgICBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIGJvb2wgcmVnaXN0ZXJzRmx1
c2hlZCwgRUNNQU1vZGUsIFB1dEtpbmQpOwogICAgIAogICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0
aChNYWNyb0Fzc2VtYmxlciYpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw3ICs5Myw2IEBAIEFMV0FZU19J
TkxJTkUgdm9pZCBKSVQ6OmVtaXRMb2FkQ2hhcmFjdGUKIEFMV0FZU19JTkxJTkUgSklUOjpDYWxs
IEpJVDo6ZW1pdE5ha2VkQ2FsbChDb2RlUHRyIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChtX2J5
dGVjb2RlT2Zmc2V0ICE9ICh1bnNpZ25lZCktMSk7IC8vIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5
IGJlIGNhbGxlZCBkdXJpbmcgaG90L2NvbGQgcGF0aCBnZW5lcmF0aW9uLCBzbyB0aGF0IG1fYnl0
ZWNvZGVPZmZzZXQgaXMgc2V0LgotCiAgICAgQ2FsbCBuYWtlZENhbGwgPSBuZWFyQ2FsbCgpOwog
ICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQobmFrZWRDYWxsLCBtX2J5dGVjb2RlT2Zmc2V0
LCBmdW5jdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgcmV0dXJuIG5ha2VkQ2FsbDsK
QEAgLTIyMywyMSArMjIyLDIxIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
SklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVS
ZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9FWiBvcGVyYXRpb24sIGlu
dDMyX3Qgb3ApCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FQ0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwg
UmVnaXN0ZXJJRCByZWdPcDIpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRy
dXN0ZWRJbW0zMihvcCkpOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEs
IHJlZ09wMik7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0
aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEs
IFJlZ2lzdGVySUQgcmVnT3AyKQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRU9Kc3Mgb3BlcmF0aW9uLCBSZWdpc3Rl
cklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyKTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FT0pzcyBvcGVyYXRpb24s
IFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMikKK0FMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNwcnRfSklUT3BlcmF0aW9uX0Va
IG9wZXJhdGlvbiwgaW50MzJfdCBvcCkKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUocmVnT3AxLCByZWdPcDIpOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVz
dGVkSW1tMzIob3ApKTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhv
cGVyYXRpb24pOwogfQogCkBAIC0yNzcsNiArMjc2LDEzIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhDYWxsRnJhbWVS
b2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbik7CiB9CiAKK0FMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhKX0pJVE9w
ZXJhdGlvbl9FRSBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3ApCit7CisgICAgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wKTsKKyAgICB1cGRhdGVUb3BDYWxsRnJhbWUoKTsKKyAg
ICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09u
RXhjZXB0aW9uKFZfSklUT3BlcmF0aW9uX0VDYiBvcGVyYXRpb24sIENvZGVCbG9jayogcG9pbnRl
cikKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihwb2lu
dGVyKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJf
NjQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA5LCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5z
dGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzksNiArMzks
NyBAQAogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1Zh
cmlhYmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgiCiAj
aW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAKQEAgLTQ4LDYgKzQ5LDcgQEAgSklUOjpDb2Rl
UmVmIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdgogewogICAgIENhbGwgbmF0aXZlQ2FsbDsK
IAorICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2Fs
bEZyYW1lSGVhZGVyKDAsIEpTU3RhY2s6OkNvZGVCbG9jayk7CiAgICAgc3RvcmVQdHIoY2FsbEZy
YW1lUmVnaXN0ZXIsICZtX3ZtLT50b3BDYWxsRnJhbWUpOwogCkBAIC01OCwyMSArNjAsMTcgQEAg
SklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdgogICAgIGVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMCk7CiAg
ICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFp
bik7CiAKLSAgICBwZWVrKHJlZ1QxKTsKLSAgICBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhl
YWRlcihyZWdUMSk7Ci0KICAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246ICAgICAgZihlY3gsIGVk
eCwgLi4uKTsKICAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsK
ICAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVjeCk7CiAKLSAgICBz
dWJQdHIoVHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZvaWQqKSksIHN0YWNrUG9pbnRlclJlZ2lz
dGVyKTsgLy8gQWxpZ24gc3RhY2sgYWZ0ZXIgY2FsbC4KLQotICAgIG1vdmUocmVnVDAsIGNhbGxG
cmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0
byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCisgICAgc3ViUHRyKFRydXN0ZWRJbW0zMig4KSwg
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBmb3IgY2FsbC4KKyAgICBzdG9y
ZVB0cihYODZSZWdpc3RlcnM6OmVjeCwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlcikpOwog
CiAgICAgLy8gY2FsbCB0aGUgZnVuY3Rpb24KICAgICBuYXRpdmVDYWxsID0gY2FsbCgpOwogCi0g
ICAgYWRkUHRyKFRydXN0ZWRJbW0zMigxNiAtIHNpemVvZih2b2lkKikpLCBzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMig4KSwgc3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwogCiAjZWxpZiBDUFUoQVJNKSB8fCBDUFUoU0g0KSB8fCBDUFUoTUlQUykKICAgICAvLyBM
b2FkIGNhbGxlciBmcmFtZSdzIHNjb3BlIGNoYWluIGludG8gdGhpcyBjYWxsZnJhbWUgc28gdGhh
dCB3aGF0ZXZlciB3ZSBjYWxsIGNhbiBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgpAQCAtODAsOSAr
NzgsNiBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2CiAgICAgZW1p
dEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgcmVnVDEsIHJl
Z1QyKTsKICAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpT
Y29wZUNoYWluKTsKIAotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMyk7
IC8vIENhbGxlZSBwcmVzZXJ2ZWQKLSAgICBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRl
cihyZWdUMyk7Ci0KICNpZiBDUFUoTUlQUykKICAgICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBm
b3IgKHVudXNlZCkgMTYgYnl0ZXMgKDgtYnl0ZSBhbGlnbmVkKSBmb3IgNCBhcmd1bWVudHMuCiAg
ICAgc3ViUHRyKFRydXN0ZWRJbW0zMigxNiksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTkz
LDcgKzg4LDYgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdgogICAg
IG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIGFyZ3VtZW50R1BSMCk7CiAKICAgICBlbWl0R2V0RnJv
bUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIGFyZ3VtZW50R1BSMSk7Ci0gICAg
bW92ZShyZWdUMiwgY2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVy
IGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBsb2FkUHRy
KEFkZHJlc3MoYXJndW1lbnRHUFIxLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9leGVj
dXRhYmxlKSksIHJlZ1QyKTsKIAogICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCkBAIC0xMTMsMzAg
KzEwNywyNyBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29tcGlsZUNUSU5hdGl2CiAgICAg
Ly8gQ2hlY2sgZm9yIGFuIGV4Y2VwdGlvbgogICAgIEp1bXAgc2F3RXhjZXB0aW9uID0gYnJhbmNo
MzIoTm90RXF1YWwsIEFic29sdXRlQWRkcmVzcyhyZWludGVycHJldF9jYXN0PGNoYXIqPih2bS0+
YWRkcmVzc09mRXhjZXB0aW9uKCkpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRz
LnRhZykpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOyAKIAorICAgIGVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgLy8gUmV0dXJuLgogICAgIHJldCgpOwogCiAgICAg
Ly8gSGFuZGxlIGFuIGV4Y2VwdGlvbgogICAgIHNhd0V4Y2VwdGlvbi5saW5rKHRoaXMpOwogCi0g
ICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNz
QWZ0ZXJDYWxsKHJlZ1QxKTsKLQotICAgIG1vdmUoVHJ1c3RlZEltbVB0cigmdm0tPmV4Y2VwdGlv
bkxvY2F0aW9uKSwgcmVnVDIpOwotICAgIHN0b3JlUHRyKHJlZ1QxLCByZWdUMik7CiAgICAgc3Rv
cmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsICZtX3ZtLT50b3BDYWxsRnJhbWUpOwogCiAjaWYgQ1BV
KFg4NikKLSAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC0xMiksIHN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKLSAgICBwdXNoKGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMy
KC00KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJh
bWVSZWdpc3RlciksIFg4NlJlZ2lzdGVyczo6ZWN4KTsKKyAgICBwdXNoKFg4NlJlZ2lzdGVyczo6
ZWN4KTsKICNlbHNlCi0gICAgbW92ZShjYWxsRnJhbWVSZWdpc3RlciwgYXJndW1lbnRHUFIwKTsK
KyAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIpLCBhcmd1bWVudEdQUjApOwog
I2VuZGlmCiAgICAgbW92ZShUcnVzdGVkSW1tUHRyKEZ1bmN0aW9uUHRyKG9wZXJhdGlvblZNSGFu
ZGxlRXhjZXB0aW9uKS52YWx1ZSgpKSwgcmVnVDMpOwogICAgIGNhbGwocmVnVDMpOwogCiAjaWYg
Q1BVKFg4NikKLSAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDE2KSwgc3RhY2tQb2ludGVyUmVnaXN0
ZXIpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoOCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
ICNlbmRpZgogCiAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcigpOwpAQCAtMTc1LDcgKzE2Niw3
IEBAIHZvaWQgSklUOjplbWl0X29wX2VuZChJbnN0cnVjdGlvbiogY3VycmUKIHsKICAgICBBU1NF
UlQocmV0dXJuVmFsdWVHUFIgIT0gY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIGVtaXRMb2FkKGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QxLCByZWdUMCk7Ci0gICAgcmVzdG9y
ZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgQ2Fs
bEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICAgICByZXQoKTsKIH0KIApAQCAtOTI3LDYgKzkxOCw5IEBAIHZvaWQgSklUOjplbWl0X29wX2Nh
dGNoKEluc3RydWN0aW9uKiBjdXIKICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIobV92bSksIHJlZ1Qz
KTsKICAgICAvLyBvcGVyYXRpb25UaHJvdyByZXR1cm5zIHRoZSBjYWxsRnJhbWUgZm9yIHRoZSBo
YW5kbGVyLgogICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QzLCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dP
ZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIo
c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKGNvZGVCbG9jaygpKSAqIHNpemVvZihSZWdpc3RlcikpLCBj
YWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCiAgICAgLy8gTm93IHN0
b3JlIHRoZSBleGNlcHRpb24gcmV0dXJuZWQgYnkgb3BlcmF0aW9uVGhyb3cuCiAgICAgbG9hZDMy
KEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihK
U1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSksIHJlZ1QwKTsKICAgICBsb2FkMzIoQWRkcmVzcyhy
ZWdUMywgVk06OmV4Y2VwdGlvbk9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUu
YXNCaXRzLnRhZykpLCByZWdUMSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs
dWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIgog
I2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbC5oIgogI2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIlZpcnR1YWxS
ZWdpc3Rlci5oIgogCkBAIC03Myw3ICs3NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2VuZChJbnN0
cnVjdGlvbiogY3VycmUKIHsKICAgICBSRUxFQVNFX0FTU0VSVChyZXR1cm5WYWx1ZUdQUiAhPSBj
YWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZXR1cm5WYWx1ZUdQUik7Ci0gICAgcmVzdG9yZVJldHVy
bkFkZHJlc3NCZWZvcmVSZXR1cm4oQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1l
OjpyZXR1cm5QQ09mZnNldCgpKSk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICBy
ZXQoKTsKIH0KIApAQCAtMjYyLDE0ICsyNjMsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXQoSW5z
dHJ1Y3Rpb24qIGN1cnJlCiAgICAgLy8gUmV0dXJuIHRoZSByZXN1bHQgaW4gJWVheC4KICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJl
dHVyblZhbHVlR1BSKTsKIAotICAgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIGVt
aXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVnVDEpOwotCi0gICAgLy8gUmVz
dG9yZSBvdXIgY2FsbGVyJ3MgInIiLgotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwotCi0gICAgLy8gUmV0dXJuLgotICAgIHJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QxKTsKKyAgICBjaGVja1N0YWNrUG9p
bnRlckFsaWdubWVudCgpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7
CiB9CiAKQEAgLTI4NSwxNCArMjgwLDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0X29iamVjdF9v
cl90aGlzKElucwogICAgIGxvYWRQdHIoQWRkcmVzcyhyZXR1cm5WYWx1ZUdQUiwgSlNDZWxsOjpz
dHJ1Y3R1cmVPZmZzZXQoKSksIHJlZ1QyKTsKICAgICBKdW1wIG5vdE9iamVjdCA9IGVtaXRKdW1w
SWZOb3RPYmplY3QocmVnVDIpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0g
ICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMSk7Ci0KLSAgICAv
LyBSZXN0b3JlIG91ciBjYWxsZXIncyAiciIuCi0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNh
bGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KICAgICAvLyBSZXR1cm4uCi0g
ICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDEpOworICAgIGVtaXRGdW5j
dGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiAKICAgICAvLyBSZXR1cm4gJ3RoaXMnIGluICVl
YXguCkBAIC0zMDAsMTQgKzI4OSw4IEBAIHZvaWQgSklUOjplbWl0X29wX3JldF9vYmplY3Rfb3Jf
dGhpcyhJbnMKICAgICBub3RPYmplY3QubGluayh0aGlzKTsKICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQsIHJldHVyblZhbHVlR1BSKTsK
IAotICAgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIGVtaXRHZXRSZXR1cm5QQ0Zy
b21DYWxsRnJhbWVIZWFkZXJQdHIocmVnVDEpOwotCi0gICAgLy8gUmVzdG9yZSBvdXIgY2FsbGVy
J3MgInIiLgotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2Fs
bEZyYW1lUmVnaXN0ZXIpOwotCiAgICAgLy8gUmV0dXJuLgotICAgIHJlc3RvcmVSZXR1cm5BZGRy
ZXNzQmVmb3JlUmV0dXJuKHJlZ1QxKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
IHJldCgpOwogfQogCkBAIC02NTAsNiArNjMzLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2go
SW5zdHJ1Y3Rpb24qIGN1cgogewogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihtX3ZtKSwgcmVnVDMp
OwogICAgIGxvYWQ2NChBZGRyZXNzKHJlZ1QzLCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dPZmZzZXQo
KSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQ
b2ludGVyT2Zmc2V0Rm9yKGNvZGVCbG9jaygpKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJh
bWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCiAgICAgbG9hZDY0KEFkZHJlc3Mo
cmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSksIHJlZ1QwKTsKICAgICBzdG9yZTY0KFRydXN0
ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKSksIEFkZHJlc3MocmVnVDMsIFZNOjpl
eGNlcHRpb25PZmZzZXQoKSkpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CkBAIC0xMTAzLDIwICsxMDg5LDggQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfbG9vcF9oaW50KEluc3RydWN0aW9uKgogewogICAgIC8vIEVtaXQgdGhlIEpJVCBv
cHRpbWl6YXRpb24gY2hlY2s6IAogICAgIGlmIChjYW5CZU9wdGltaXplZCgpKSB7Ci0gICAgICAg
IGlmIChPcHRpb25zOjplbmFibGVPU1JFbnRyeUluTG9vcHMoKSkgewotICAgICAgICAgICAgYWRk
U2xvd0Nhc2UoYnJhbmNoQWRkMzIoUG9zaXRpdmVPclplcm8sIFRydXN0ZWRJbW0zMihPcHRpb25z
OjpleGVjdXRpb25Db3VudGVySW5jcmVtZW50Rm9yTG9vcCgpKSwKLSAgICAgICAgICAgICAgICBB
YnNvbHV0ZUFkZHJlc3MobV9jb2RlQmxvY2stPmFkZHJlc3NPZkpJVEV4ZWN1dGVDb3VudGVyKCkp
KSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBBZGQgd2l0aCBzYXR1cmF0aW9u
LgotICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fY29kZUJsb2NrLT5hZGRyZXNzT2ZK
SVRFeGVjdXRlQ291bnRlcigpKSwgcmVnVDMpOwotICAgICAgICAgICAgbG9hZDMyKHJlZ1QzLCBy
ZWdUMik7Ci0gICAgICAgICAgICBKdW1wIGRvbnRBZGQgPSBicmFuY2gzMigKLSAgICAgICAgICAg
ICAgICBHcmVhdGVyVGhhbiwgcmVnVDIsCi0gICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpIC0gT3B0aW9uczo6ZXhlY3V0aW9uQ291
bnRlckluY3JlbWVudEZvckxvb3AoKSkpOwotICAgICAgICAgICAgYWRkMzIoVHJ1c3RlZEltbTMy
KE9wdGlvbnM6OmV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JMb29wKCkpLCByZWdUMik7Ci0g
ICAgICAgICAgICBzdG9yZTMyKHJlZ1QyLCByZWdUMyk7Ci0gICAgICAgICAgICBkb250QWRkLmxp
bmsodGhpcyk7Ci0gICAgICAgIH0KKyAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoQWRkMzIoUG9z
aXRpdmVPclplcm8sIFRydXN0ZWRJbW0zMihPcHRpb25zOjpleGVjdXRpb25Db3VudGVySW5jcmVt
ZW50Rm9yTG9vcCgpKSwKKyAgICAgICAgICAgIEFic29sdXRlQWRkcmVzcyhtX2NvZGVCbG9jay0+
YWRkcmVzc09mSklURXhlY3V0ZUNvdW50ZXIoKSkpKTsKICAgICB9CiAKICAgICAvLyBFbWl0IHRo
ZSB3YXRjaGRvZyB0aW1lciBjaGVjazoKQEAgLTExMjgsMTEgKzExMDIsMTIgQEAgdm9pZCBKSVQ6
OmVtaXRTbG93X29wX2xvb3BfaGludChJbnN0cnVjdAogewogI2lmIEVOQUJMRShERkdfSklUKQog
ICAgIC8vIEVtaXQgdGhlIHNsb3cgcGF0aCBmb3IgdGhlIEpJVCBvcHRpbWl6YXRpb24gY2hlY2s6
Ci0gICAgaWYgKGNhbkJlT3B0aW1pemVkKCkgJiYgT3B0aW9uczo6ZW5hYmxlT1NSRW50cnlJbkxv
b3BzKCkpIHsKKyAgICBpZiAoY2FuQmVPcHRpbWl6ZWQoKSkgewogICAgICAgICBsaW5rU2xvd0Nh
c2UoaXRlcik7CiAgICAgICAgIAogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk9wdGlt
aXplLCBtX2J5dGVjb2RlT2Zmc2V0KTsKICAgICAgICAgSnVtcCBub09wdGltaXplZEVudHJ5ID0g
YnJhbmNoVGVzdFB0cihaZXJvLCByZXR1cm5WYWx1ZUdQUik7CisgICAgICAgIG1vdmUocmV0dXJu
VmFsdWVHUFIyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIGp1bXAocmV0dXJuVmFs
dWVHUFIpOwogICAgICAgICBub09wdGltaXplZEVudHJ5LmxpbmsodGhpcyk7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzAsMTIgKzMwLDEyIEBACiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5j
bHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIK
LSNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1v
ZGUuaCIKICNpbmNsdWRlICJERkdEcml2ZXIuaCIKICNpbmNsdWRlICJERkdPU1JFbnRyeS5oIgog
I2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJF
cnJvckhhbmRsaW5nU2NvcGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRl
ICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSklULmgiCkBAIC03MSw3ICs3MSw3
IEBAIHZvaWQgKiBfUmV0dXJuQWRkcmVzcyh2b2lkKTsKICNlbmRpZgogCiAKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25TdGFja0NoZWNrKEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBj
b2RlQmxvY2spCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93
RXJyb3IoRXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAgICAvLyBX
ZSBwYXNzIGluIG91ciBvd24gY29kZSBibG9jaywgYmVjYXVzZSB0aGUgY2FsbGZyYW1lIGhhc24n
dCBiZWVuIHBvcHVsYXRlZC4KICAgICBWTSogdm0gPSBjb2RlQmxvY2stPnZtKCk7CkBAIC04MCwx
MSArODAsOCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RhY2tDaGVjayhFCiAgICAg
ICAgIGNhbGxlckZyYW1lID0gZXhlYzsKIAogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxlckZyYW1lKTsKLQotICAgIEpTU3RhY2smIHN0YWNrID0gdm0tPmludGVycHJl
dGVyLT5zdGFjaygpOwotCi0gICAgaWYgKFVOTElLRUxZKCFzdGFjay5ncm93KCZleGVjLT5yZWdp
c3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJD
b3VudCgpKS5vZmZzZXQoKV0pKSkKLSAgICAgICAgdm0tPnRocm93RXhjZXB0aW9uKGNhbGxlckZy
YW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUpKTsKKyAgICBFcnJvckhh
bmRsaW5nU2NvcGUgZXJyb3JTY29wZSgqdm0pOworICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxs
ZXJGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZyYW1lKSk7CiB9CiAKIGlu
dDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsQXJpdHlDaGVjayhFeGVjU3RhdGUqIGV4
ZWMpCkBAIC05Nyw3ICs5NCw3IEBAIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxs
QXJpdHkKIAogICAgIGludDMyX3QgbWlzc2luZ0FyZ0NvdW50ID0gQ29tbW9uU2xvd1BhdGhzOjph
cml0eUNoZWNrRm9yKGV4ZWMsICZzdGFjaywgQ29kZUZvckNhbGwpOwogICAgIGlmIChtaXNzaW5n
QXJnQ291bnQgPCAwKQotICAgICAgICB2bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJhbWUsIGNy
ZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsZXJGcmFtZSkpOworICAgICAgICB0aHJvd1N0YWNr
T3ZlcmZsb3dFcnJvcihjYWxsZXJGcmFtZSk7CiAKICAgICByZXR1cm4gbWlzc2luZ0FyZ0NvdW50
OwogfQpAQCAtMTEyLDcgKzEwOSw3IEBAIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25D
b25zdHJ1Y3QKIAogICAgIGludDMyX3QgbWlzc2luZ0FyZ0NvdW50ID0gQ29tbW9uU2xvd1BhdGhz
Ojphcml0eUNoZWNrRm9yKGV4ZWMsICZzdGFjaywgQ29kZUZvckNvbnN0cnVjdCk7CiAgICAgaWYg
KG1pc3NpbmdBcmdDb3VudCA8IDApCi0gICAgICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJG
cmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZyYW1lKSk7CisgICAgICAgIHRo
cm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZyYW1lKTsKIAogICAgIHJldHVybiBtaXNzaW5n
QXJnQ291bnQ7CiB9CkBAIC02MTIsMTUgKzYwOSwxMyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uRGlyZWN0UHV0QnlWCiAgICAgZGlyZWN0UHV0QnlWYWwoZXhlYywgYXNPYmplY3QoYmFz
ZVZhbHVlKSwgc3Vic2NyaXB0LCB2YWx1ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqIGV4ZWMsIEV4
ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gZXhl
Y0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKLSAgICBBU1NFUlQoZXhlY0NhbGxlZS0+Y2FsbGVyRnJh
bWUoKS0+Y29kZUJsb2NrKCktPmNvZGVUeXBlKCkgIT0gRnVuY3Rpb25Db2RlCi0gICAgICAgIHx8
ICFleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+bmVlZHNGdWxsU2NvcGVD
aGFpbigpCi0gICAgICAgIHx8IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCktPnVuY2hlY2tlZFIo
ZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmFjdGl2YXRpb25SZWdpc3Rl
cigpLm9mZnNldCgpKS5qc1ZhbHVlKCkpOworICAgIEFTU0VSVChleGVjLT5jb2RlQmxvY2soKS0+
Y29kZVR5cGUoKSAhPSBGdW5jdGlvbkNvZGUKKyAgICAgICAgfHwgIWV4ZWMtPmNvZGVCbG9jaygp
LT5uZWVkc0Z1bGxTY29wZUNoYWluKCkKKyAgICAgICAgfHwgZXhlYy0+dW5jaGVja2VkUihleGVj
LT5jb2RlQmxvY2soKS0+YWN0aXZhdGlvblJlZ2lzdGVyKCkub2Zmc2V0KCkpLmpzVmFsdWUoKSk7
CiAKLSAgICBleGVjQ2FsbGVlLT5zZXRTY29wZShjYWxsZXJGcmFtZS0+c2NvcGUoKSk7Ci0gICAg
ZXhlY0NhbGxlZS0+c2V0UmV0dXJuUEMoc3RhdGljX2Nhc3Q8SW5zdHJ1Y3Rpb24qPihPVVJfUkVU
VVJOX0FERFJFU1MpKTsKKyAgICBleGVjQ2FsbGVlLT5zZXRTY29wZShleGVjLT5zY29wZSgpKTsK
ICAgICBleGVjQ2FsbGVlLT5zZXRDb2RlQmxvY2soMCk7CiAKICAgICBpZiAoIWlzSG9zdEZ1bmN0
aW9uKGV4ZWNDYWxsZWUtPmNhbGxlZUFzVmFsdWUoKSwgZ2xvYmFsRnVuY0V2YWwpKQpAQCAtNjg1
LDcgKzY4MCw4IEBAIHN0YXRpYyB2b2lkKiBoYW5kbGVIb3N0Q2FsbChFeGVjU3RhdGUqIGUKICAg
ICByZXR1cm4gdm0tPmdldENUSVN0dWIodGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2Vu
ZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKIH0KIAotaW5saW5lIGNoYXIqIGxp
bmtGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQp
CitpbmxpbmUgY2hhciogbGlua0ZvcigKKyAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVT
cGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVy
cykKIHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwog
ICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwpAQCAtNzA0LDM4ICs3MDAsNTIgQEAgaW5saW5lIGNo
YXIqIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbAogICAgIENvZGVCbG9jayogY29kZUJsb2Nr
ID0gMDsKICAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygp
LT5nZXRDYWxsTGlua0luZm8oZXhlY0NhbGxlZS0+cmV0dXJuUEMoKSk7CiAgICAgaWYgKGV4ZWN1
dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpCi0gICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5n
ZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2FsbCgpOworICAgICAgICBjb2Rl
UHRyID0gZXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcigqdm0sIGtpbmQsIE11c3RDaGVja0FyaXR5
LCByZWdpc3RlcnMpOwogICAgIGVsc2UgewogICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uRXhlY3V0YWJsZSA9IHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGV4ZWN1
dGFibGUpOwogICAgICAgICBKU09iamVjdCogZXJyb3IgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPnBy
ZXBhcmVGb3JFeGVjdXRpb24oZXhlY0NhbGxlZSwgY2FsbGVlLT5zY29wZSgpLCBraW5kKTsKICAg
ICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICB2bS0+dGhyb3dFeGNlcHRpb24oZXhlYywg
Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKKyAgICAgICAgICAgIHRocm93U3RhY2tP
dmVyZmxvd0Vycm9yKGV4ZWMpOwogICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KHZtLT5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVy
YXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogICAgICAgICB9CiAgICAgICAgIGNv
ZGVCbG9jayA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Y29kZUJsb2NrRm9yKGtpbmQpOworICAgICAg
ICBBcml0eUNoZWNrTW9kZSBhcml0eTsKICAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVt
UGFyYW1ldGVycygpKSB8fCBjYWxsTGlua0luZm8uY2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpD
YWxsVmFyYXJncykKLSAgICAgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmdl
bmVyYXRlZEpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5kKTsKKyAgICAgICAgICAgIGFyaXR5
ID0gTXVzdENoZWNrQXJpdHk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvZGVQdHIgPSBm
dW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3Ioa2luZCktPmFkZHJlc3NGb3JD
YWxsKCk7CisgICAgICAgICAgICBhcml0eSA9IEFyaXR5Q2hlY2tOb3RSZXF1aXJlZDsKKyAgICAg
ICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcigqdm0sIGtpbmQs
IGFyaXR5LCByZWdpc3RlcnMpOwogICAgIH0KICAgICBpZiAoIWNhbGxMaW5rSW5mby5zZWVuT25j
ZSgpKQogICAgICAgICBjYWxsTGlua0luZm8uc2V0U2VlbigpOwogICAgIGVsc2UKLSAgICAgICAg
bGlua0ZvcihleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIGNvZGVCbG9jaywgY2FsbGVlLCBjb2Rl
UHRyLCBraW5kKTsKKyAgICAgICAgbGlua0ZvcihleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIGNv
ZGVCbG9jaywgY2FsbGVlLCBjb2RlUHRyLCBraW5kLCByZWdpc3RlcnMpOwogICAgIHJldHVybiBy
ZWludGVycHJldF9jYXN0PGNoYXIqPihjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogfQog
CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSogZXhlY0Nh
bGxlZSkKIHsKLSAgICByZXR1cm4gbGlua0ZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCk7Cisg
ICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTm90UmVxdWlyZWQpOwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxp
bmtDb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewotICAgIHJldHVybiBsaW5rRm9y
KGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJldHVybiBsaW5rRm9yKGV4ZWND
YWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQp
OworfQorCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsVGhhdFByZXNlcnZl
c1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIHJldHVybiBsaW5rRm9yKGV4ZWND
YWxsZWUsIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOwogfQogCi1pbmxpbmUg
Y2hhciogdmlydHVhbEZvcldpdGhGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVT
cGVjaWFsaXphdGlvbktpbmQga2luZCwgSlNDZWxsKiYgY2FsbGVlQXNGdW5jdGlvbkNlbGwpCitj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVn
cyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCit7CisgICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxl
ZSwgQ29kZUZvckNvbnN0cnVjdCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KKworaW5saW5l
IGNoYXIqIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVl
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSBy
ZWdpc3RlcnMsCisgICAgSlNDZWxsKiYgY2FsbGVlQXNGdW5jdGlvbkNlbGwpCiB7CiAgICAgRXhl
Y1N0YXRlKiBleGVjID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKICAgICBWTSogdm0gPSAm
ZXhlYy0+dm0oKTsKQEAgLTc1NywxNiArNzY3LDIwIEBAIGlubGluZSBjaGFyKiB2aXJ0dWFsRm9y
V2l0aEZ1bmN0aW9uKEV4ZWMKICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNo
YXIqPih2bS0+Z2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1BhdGhHZW5lcmF0
b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKICAgICAgICAgfQogICAgIH0KLSAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oZXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29k
ZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PGNoYXIqPihleGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9yKAorICAg
ICAgICAqdm0sIGtpbmQsIE11c3RDaGVja0FyaXR5LCByZWdpc3RlcnMpLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpOwogfQogCi1pbmxpbmUgY2hhciogdmlydHVhbEZvcihFeGVjU3RhdGUqIGV4ZWNDYWxs
ZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK2lubGluZSBjaGFyKiB2aXJ0dWFsRm9y
KAorICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
LCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIEpTQ2VsbCogY2Fs
bGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVkOwotICAgIHJldHVybiB2aXJ0dWFsRm9yV2l0aEZ1bmN0
aW9uKGV4ZWNDYWxsZWUsIGtpbmQsIGNhbGxlZUFzRnVuY3Rpb25DZWxsSWdub3JlZCk7CisgICAg
cmV0dXJuIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwga2luZCwgcmVnaXN0ZXJz
LCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbElnbm9yZWQpOwogfQogCi1zdGF0aWMgYm9vbCBhdHRlbXB0
VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgSlNDZWxsKiBjYWxs
ZWVBc0Z1bmN0aW9uQ2VsbCwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCitzdGF0aWMgYm9v
bCBhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKAorICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxl
ZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycywgSlNDZWxsKiBjYWxsZWVBc0Z1
bmN0aW9uQ2VsbCwKKyAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKIHsKICAgICBpZiAo
IWNhbGxlZUFzRnVuY3Rpb25DZWxsKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03ODAsNyAr
Nzk0LDEwIEBAIHN0YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIEFTU0VSVChjYWxsZWUtPmV4ZWN1dGFibGUoKS0+
aGFzSklUQ29kZUZvckNhbGwoKSk7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIg
PSBjYWxsZWUtPmV4ZWN1dGFibGUoKS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+YWRkcmVz
c0ZvckNhbGwoKTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9CisgICAgICAg
IGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5hZGRyZXNz
Rm9yQ2FsbCgKKyAgICAgICAgICAgICpleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxv
Y2soKS0+dm0oKSwgY2FsbGVlLT5leGVjdXRhYmxlKCksCisgICAgICAgICAgICBBcml0eUNoZWNr
Tm90UmVxdWlyZWQsIHJlZ2lzdGVycyk7CiAgICAgCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2s7
CiAgICAgaWYgKGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5pc0hvc3RGdW5jdGlvbigpKQpAQCAtNzkz
LDcgKzgxMCw3IEBAIHN0YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwKICAg
ICAKICAgICBsaW5rQ2xvc3VyZUNhbGwoCiAgICAgICAgIGV4ZWNDYWxsZWUsIGNhbGxMaW5rSW5m
bywgY29kZUJsb2NrLAotICAgICAgICBjYWxsZWUtPnN0cnVjdHVyZSgpLCBjYWxsZWUtPmV4ZWN1
dGFibGUoKSwgY29kZVB0cik7CisgICAgICAgIGNhbGxlZS0+c3RydWN0dXJlKCksIGNhbGxlZS0+
ZXhlY3V0YWJsZSgpLCBjb2RlUHRyLCByZWdpc3RlcnMpOwogICAgIAogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtODAxLDI1ICs4MTgsNDYgQEAgc3RhdGljIGJvb2wgYXR0ZW1wdFRvT3B0aW1pemVD
bG9zdXJlQ2FsbAogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGwo
RXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewogICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNl
bGw7Ci0gICAgY2hhciogcmVzdWx0ID0gdmlydHVhbEZvcldpdGhGdW5jdGlvbihleGVjQ2FsbGVl
LCBDb2RlRm9yQ2FsbCwgY2FsbGVlQXNGdW5jdGlvbkNlbGwpOworICAgIGNoYXIqIHJlc3VsdCA9
IHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTm90UmVxdWlyZWQsIGNhbGxlZUFzRnVuY3Rpb25DZWxsKTsKICAgICBDYWxs
TGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCktPmNvZGVC
bG9jaygpLT5nZXRDYWxsTGlua0luZm8oZXhlY0NhbGxlZS0+cmV0dXJuUEMoKSk7CiAKLSAgICBp
ZiAoIWF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwoZXhlY0NhbGxlZSwgY2FsbGVlQXNGdW5j
dGlvbkNlbGwsIGNhbGxMaW5rSW5mbykpCi0gICAgICAgIGxpbmtTbG93Rm9yKGV4ZWNDYWxsZWUs
IGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwpOworICAgIGlmICghYXR0ZW1wdFRvT3B0aW1pemVD
bG9zdXJlQ2FsbChleGVjQ2FsbGVlLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkLCBj
YWxsZWVBc0Z1bmN0aW9uQ2VsbCwgY2FsbExpbmtJbmZvKSkKKyAgICAgICAgbGlua1Nsb3dGb3Io
ZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Ob3RSZXF1aXJlZCk7CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCiB7
ICAgIAotICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsKTsKKyAg
ICByZXR1cm4gdmlydHVhbEZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9CiAKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmlydHVhbENvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCiB7Ci0gICAgcmV0dXJuIHZp
cnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgcmV0dXJuIHZpcnR1
YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0cnVjdCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25O
b3RSZXF1aXJlZCk7CiB9CiAKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Nsb3N1
cmVDYWxsVGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIEpT
Q2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGw7CisgICAgY2hhciogcmVzdWx0ID0gdmlydHVhbEZv
cldpdGhGdW5jdGlvbihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0
ZXJzLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCk7CisgICAgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0lu
Zm8gPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+Z2V0Q2FsbExpbmtJ
bmZvKGV4ZWNDYWxsZWUtPnJldHVyblBDKCkpOworCisgICAgaWYgKCFhdHRlbXB0VG9PcHRpbWl6
ZUNsb3N1cmVDYWxsKGV4ZWNDYWxsZWUsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycywgY2FsbGVlQXNG
dW5jdGlvbkNlbGwsIGNhbGxMaW5rSW5mbykpCisgICAgICAgIGxpbmtTbG93Rm9yKGV4ZWNDYWxs
ZWUsIGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cisg
ICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRp
b25WaXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3sg
ICAgCisgICAgcmV0dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIE11c3RQ
cmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmly
dHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3sK
KyAgICByZXR1cm4gdmlydHVhbEZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0LCBNdXN0
UHJlc2VydmVSZWdpc3RlcnMpOworfQogCiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25D
b21wYXJlTGVzcyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7CkBAIC05NzQsNyArMTAxMiw3IEBAIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25EZWJ1ZyhFeGVjU3QKIH0KIAogI2lmIEVOQUJMRShERkdfSklU
KQotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMs
IGludDMyX3QgYnl0ZWNvZGVJbmRleCkKK1Nsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4
KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtMTAyNCw3ICsxMDYyLDcgQEAgY2hhciogSklUX09QRVJB
VElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICBjb2RlQmxvY2stPnVwZGF0ZUFsbFBy
ZWRpY3Rpb25zKCk7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAg
ICAgICBkYXRhTG9nKCJDaG9vc2luZyBub3QgdG8gb3B0aW1pemUgIiwgKmNvZGVCbG9jaywgIiB5
ZXQsIGJlY2F1c2UgdGhlIHRocmVzaG9sZCBoYXNuJ3QgYmVlbiByZWFjaGVkLlxuIik7Ci0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgIH0K
ICAgICAKICAgICBpZiAoY29kZUJsb2NrLT5tX3Nob3VsZEFsd2F5c0JlSW5saW5lZCkgewpAQCAt
MTAzMiwxOCArMTA3MCwxOSBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXpl
KEV4CiAgICAgICAgIGNvZGVCbG9jay0+b3B0aW1pemVBZnRlcldhcm1VcCgpOwogICAgICAgICBp
ZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAgICAgZGF0YUxvZygiQ2hvb3Npbmcg
bm90IHRvIG9wdGltaXplICIsICpjb2RlQmxvY2ssICIgeWV0LCBiZWNhdXNlIG1fc2hvdWxkQWx3
YXlzQmVJbmxpbmVkID09IHRydWUuXG4iKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgfQogCiAgICAgLy8gV2UgY2Fubm90IGJlIGlu
IHRoZSBwcm9jZXNzIG9mIGFzeW5jaHJvbm91cyBjb21waWxhdGlvbiBhbmQgYWxzbyBoYXZlIGFu
IG9wdGltaXplZAogICAgIC8vIHJlcGxhY2VtZW50LgorICAgIERGRzo6V29ya2xpc3QqIHdvcmts
aXN0ID0gREZHOjpleGlzdGluZ0dsb2JhbERGR1dvcmtsaXN0T3JOdWxsKCk7CiAgICAgQVNTRVJU
KAotICAgICAgICAhdm0ud29ya2xpc3QKLSAgICAgICAgfHwgISh2bS53b3JrbGlzdC0+Y29tcGls
YXRpb25TdGF0ZShERkc6OkNvbXBpbGF0aW9uS2V5KGNvZGVCbG9jaywgREZHOjpERkdNb2RlKSkg
IT0gREZHOjpXb3JrbGlzdDo6Tm90S25vd24KKyAgICAgICAgIXdvcmtsaXN0CisgICAgICAgIHx8
ICEod29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUoREZHOjpDb21waWxhdGlvbktleShjb2RlQmxv
Y2ssIERGRzo6REZHTW9kZSkpICE9IERGRzo6V29ya2xpc3Q6Ok5vdEtub3duCiAgICAgICAgICYm
IGNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKSkpOwogCiAgICAgREZHOjpXb3Jr
bGlzdDo6U3RhdGUgd29ya2xpc3RTdGF0ZTsKLSAgICBpZiAodm0ud29ya2xpc3QpIHsKKyAgICBp
ZiAod29ya2xpc3QpIHsKICAgICAgICAgLy8gVGhlIGNhbGwgdG8gREZHOjpXb3JrbGlzdDo6Y29t
cGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oKSB3aWxsIGNvbXBsZXRlIGFsbCByZWFkeQogICAgICAg
ICAvLyAoaS5lLiBjb21waWxlZCkgY29kZSBibG9ja3MuIEJ1dCBpZiBpdCBjb21wbGV0ZXMgb3Vy
cywgd2UgYWxzbyBuZWVkIHRvIGtub3cKICAgICAgICAgLy8gd2hhdCB0aGUgcmVzdWx0IHdhcyBz
byB0aGF0IHdlIGRvbid0IHBsb3cgYWhlYWQgYW5kIGF0dGVtcHQgT1NSIG9yIGltbWVkaWF0ZQpA
QCAtMTA2Miw3ICsxMTAxLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6
ZShFeAogICAgICAgICAvLyBwcm9iYWJseSBhIHdhc3RlIG9mIG1lbW9yeS4gT3VyIGdvYWwgaGVy
ZSBpcyB0byBjb21wbGV0ZSBjb2RlIGJsb2NrcyBhcyBzb29uIGFzCiAgICAgICAgIC8vIHBvc3Np
YmxlIGluIG9yZGVyIHRvIG1pbmltaXplIHRoZSBjaGFuY2VzIG9mIHVzIGV4ZWN1dGluZyBiYXNl
bGluZSBjb2RlIGFmdGVyCiAgICAgICAgIC8vIG9wdGltaXplZCBjb2RlIGlzIGFscmVhZHkgYXZh
aWxhYmxlLgotICAgICAgICB3b3JrbGlzdFN0YXRlID0gdm0ud29ya2xpc3QtPmNvbXBsZXRlQWxs
UmVhZHlQbGFuc0ZvclZNKAorICAgICAgICB3b3JrbGlzdFN0YXRlID0gd29ya2xpc3QtPmNvbXBs
ZXRlQWxsUmVhZHlQbGFuc0ZvclZNKAogICAgICAgICAgICAgdm0sIERGRzo6Q29tcGlsYXRpb25L
ZXkoY29kZUJsb2NrLCBERkc6OkRGR01vZGUpKTsKICAgICB9IGVsc2UKICAgICAgICAgd29ya2xp
c3RTdGF0ZSA9IERGRzo6V29ya2xpc3Q6Ok5vdEtub3duOwpAQCAtMTA3Miw3ICsxMTExLDcgQEAg
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICAvLyByZXBs
YWNlbWVudC4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvZGVCbG9jay0+aGFzT3B0aW1pemVk
UmVwbGFjZW1lbnQoKSk7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0T3B0aW1pemF0aW9uVGhyZXNo
b2xkQmFzZWRPbkNvbXBpbGF0aW9uUmVzdWx0KENvbXBpbGF0aW9uRGVmZXJyZWQpOwotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICB9CiAK
ICAgICBpZiAod29ya2xpc3RTdGF0ZSA9PSBERkc6OldvcmtsaXN0OjpDb21waWxlZCkgewpAQCAt
MTA4NSw3ICsxMTI0LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShF
eAogICAgICAgICAgICAgY29kZUJsb2NrLT51cGRhdGVBbGxQcmVkaWN0aW9ucygpOwogICAgICAg
ICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAgICAgICBkYXRhTG9n
KCJDb2RlIGJsb2NrICIsICpjb2RlQmxvY2ssICIgd2FzIGNvbXBpbGVkIGJ1dCBpdCBkb2Vzbid0
IGhhdmUgYW4gb3B0aW1pemVkIHJlcGxhY2VtZW50LlxuIik7Ci0gICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgaWYgKGNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKSkgewogICAg
ICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQpAQCAtMTExMCw3ICsxMTQ5LDcgQEAgY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICAgICAgICAgICAg
ICAiKCIsICpjb2RlQmxvY2stPnJlcGxhY2VtZW50KCksICIpIChpbiBsb29wKS5cbiIpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgY29kZUJsb2NrLT5yZXBsYWNlbWVudCgpLT5qZXR0aXNv
bihDb3VudFJlb3B0aW1pemF0aW9uKTsKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAg
ICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGlmICghY29kZUJsb2NrLT5zaG91bGRPcHRpbWl6ZU5vdygpKSB7CkBAIC0xMTE5LDcg
KzExNTgsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4CiAgICAg
ICAgICAgICAgICAgICAgICJEZWxheWluZyBvcHRpbWl6YXRpb24gZm9yICIsICpjb2RlQmxvY2ss
CiAgICAgICAgICAgICAgICAgICAgICIgYmVjYXVzZSBvZiBpbnN1ZmZpY2llbnQgcHJvZmlsaW5n
LlxuIik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg
IHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoT3B0
aW9uczo6dmVyYm9zZU9TUigpKQpAQCAtMTE0NywxMiArMTE4NiwxMSBAQCBjaGFyKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4CiAgICAgICAgIH0KIAogICAgICAgICBDb21waWxh
dGlvblJlc3VsdCByZXN1bHQgPSBERkc6OmNvbXBpbGUoCi0gICAgICAgICAgICB2bSwgY29kZUJs
b2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBERkc6OkRGR01vZGUsIGJ5dGVjb2RlSW5kZXgs
Ci0gICAgICAgICAgICBtdXN0SGFuZGxlVmFsdWVzLCBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjazo6Y3JlYXRlKCksCi0gICAgICAgICAgICB2bS5lbnN1cmVXb3JrbGlzdCgpKTsK
KyAgICAgICAgICAgIHZtLCBjb2RlQmxvY2stPm5ld1JlcGxhY2VtZW50KCkuZ2V0KCksIDAsIERG
Rzo6REZHTW9kZSwgYnl0ZWNvZGVJbmRleCwKKyAgICAgICAgICAgIG11c3RIYW5kbGVWYWx1ZXMs
IEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoKSk7CiAgICAgICAg
IAogICAgICAgICBpZiAocmVzdWx0ICE9IENvbXBpbGF0aW9uU3VjY2Vzc2Z1bCkKLSAgICAgICAg
ICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAg
ICB9CiAgICAgCiAgICAgQ29kZUJsb2NrKiBvcHRpbWl6ZWRDb2RlQmxvY2sgPSBjb2RlQmxvY2st
PnJlcGxhY2VtZW50KCk7CkBAIC0xMTY2LDcgKzEyMDQsOCBAQCBjaGFyKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk9wdGltaXplKEV4CiAgICAgICAgIH0KIAogICAgICAgICBjb2RlQmxvY2stPm9w
dGltaXplU29vbigpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y2hhcio+KGFkZHJlc3Mp
OworICAgICAgICBBU1NFUlQoZXhlYy0+Y29kZUJsb2NrKCkgPT0gb3B0aW1pemVkQ29kZUJsb2Nr
KTsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChhZGRyZXNzLCBleGVjLT50b3BPZkZyYW1l
KCkpOwogICAgIH0KIAogICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsKQEAgLTExOTUs
MTQgKzEyMzQsMTQgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAog
ICAgICAgICAgICAgICAgICpjb2RlQmxvY2stPnJlcGxhY2VtZW50KCksICIgKGFmdGVyIE9TUiBm
YWlsKS5cbiIpOwogICAgICAgICB9CiAgICAgICAgIG9wdGltaXplZENvZGVCbG9jay0+amV0dGlz
b24oQ291bnRSZW9wdGltaXphdGlvbik7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgIH0KIAogICAgIC8vIE9TUiBmYWlsZWQgdGhpcyB0
aW1lLCBidXQgaXQgbWlnaHQgc3VjY2VlZCBuZXh0IHRpbWUhIExldCB0aGUgY29kZSBydW4gYSBi
aXQKICAgICAvLyBsb25nZXIgYW5kIHRoZW4gdHJ5IGFnYWluLgogICAgIGNvZGVCbG9jay0+b3B0
aW1pemVBZnRlcldhcm1VcCgpOwogICAgIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBlbmNv
ZGVSZXN1bHQoMCwgMCk7CiB9CiAjZW5kaWYKIApAQCAtMTUzMCwxMyArMTU2OSwxMyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0Jvb2xlYW4ocmVzdWx0KSk7CiB9CiAKLUNhbGxGcmFtZSogSklUX09QRVJBVElP
TiBvcGVyYXRpb25TaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IGZpcnN0RnJlZVJlZ2lzdGVy
KQorQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3Mo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90
IGZpcnN0RnJlZVJlZ2lzdGVyKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0
aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogICAgIEpTU3RhY2sqIHN0YWNr
ID0gJmV4ZWMtPmludGVycHJldGVyKCktPnN0YWNrKCk7CiAgICAgSlNWYWx1ZSBhcmd1bWVudHMg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEFyZ3VtZW50cyk7Ci0gICAgQ2FsbEZyYW1lKiBuZXdD
YWxsRnJhbWUgPSBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoZXhlYywgc3RhY2ssIGFyZ3Vt
ZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIpOworICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0g
c2l6ZUZyYW1lRm9yVmFyYXJncyhleGVjLCBzdGFjaywgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdp
c3Rlcik7CiAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKIH0KIApAQCAtMTcyOSwxMiArMTc2OCwx
MSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5pdEdsb2JhbENvCiAgICAgcGNbMV0u
dS5yZWdpc3RlclBvaW50ZXItPnNldCgqdm0sIGV4ZWMtPmNvZGVCbG9jaygpLT5nbG9iYWxPYmpl
Y3QoKSwgdmFsdWUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9uSGFu
ZGxlcihFeGVjU3RhdGUqIGV4ZWMpCit2b2lkIEpJVF9PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9u
SGFuZGxlcihWTSogdm0sIEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBWTSogdm0gPSAmZXhlYy0+
dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjLCBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXI6OlZNRW50cnlTZW50aW5lbE9LKTsKIAotICAgIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUgPSBl
eGVjLT5leGNlcHRpb24oKTsKKyAgICBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlID0gdm0tPmV4Y2Vw
dGlvbigpOwogICAgIEFTU0VSVChleGNlcHRpb25WYWx1ZSk7CiAgICAgCiAgICAgZ2VuZXJpY1Vu
d2luZCh2bSwgZXhlYywgZXhjZXB0aW9uVmFsdWUpOwpAQCAtMTc2Nyw3ICsxODA1LDYgQEAgYXNt
ICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIK
IEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9TVFJJTkco
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibW92IDAoJXJicCksICVyYnBc
biIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAibW92ICVyYnAsICVyZGlc
biIKICAgICAiam1wICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRo
RXhlY1N0YXRlKSAiXG4iCiApOwpAQCAtMTc3OCw4ICsxODE1LDExIEBAIGFzbSAoCiAiLmdsb2Js
ICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURFX1NZTUJP
TChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxs
UmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgIm1vdiAwKCVlYnApLCAlZWJwXG4iIC8vIENhbGxl
ckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCi0gICAgIm1vdiAlZWJwLCA0KCVlc3ApXG4iCisgICAg
Im1vdiAoJWVzcCksICVlYXhcbiIKKyAgICAicHVzaCAlZWJwXG4iCisgICAgImxlYWwgLTQoJWVz
cCksICVlc3BcbiIKKyAgICAicHVzaCAlZWJwXG4iCisgICAgInB1c2ggJWVheFxuIgogICAgICJq
bXAgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUp
ICJcbiIKICk7CiAKQEAgLTE3OTIsNyArMTgzMiw2IEBAIEhJREVfU1lNQk9MKGdldEhvc3RDYWxs
UmV0dXJuVmFsdWUpICJcbiIKICIudGh1bWIiICJcbiIKICIudGh1bWJfZnVuYyAiIFRIVU1CX0ZV
TkNfUEFSQU0oZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgotICAgICJsZHIgcjcsIFtyNywgIzBdIiAiXG4i
IC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdiByMCwgcjciICJcbiIK
ICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNT
dGF0ZSkgIlxuIgogKTsKQEAgLTE4MDQsNyArMTg0Myw2IEBAIGFzbSAoCiBISURFX1NZTUJPTChn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBJTkxJTkVfQVJNX0ZVTkNUSU9OKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUpCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6
IiAiXG4iCi0gICAgImxkciByMTEsIFtyMTEsICMwXSIgIlxuIiAvLyBDYWxsZXJGcmFtZUFuZFBD
OjpjYWxsZXJGcmFtZQogICAgICJtb3YgcjAsIHIxMSIgIlxuIgogICAgICJiICIgTE9DQUxfUkVG
RVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOwpAQCAt
MTgxNiw3ICsxODU0LDYgQEAgYXNtICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUpICJcbiIKIEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUp
ICJcbiIKIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAg
ICAibGR1ciB4MjksIFt4MjksICMwXSIgIlxuIgogICAgICAibW92IHgwLCB4MjkiICJcbiIKICAg
ICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3Rh
dGUpICJcbiIKICk7CkBAIC0xODI4LDcgKzE4NjUsNiBAQCBhc20gKAogSElERV9TWU1CT0woZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVy
blZhbHVlKSAiOiIgIlxuIgogICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVdpdGhFeGVjU3RhdGUpCi0gICAgImx3ICRmcCwgMCgkZnApIiAiXG4iIC8vIENhbGxl
ckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdmUgJGEwLCAkZnAiICJcbiIKICAgICAi
YiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkg
IlxuIgogKTsKQEAgLTE4MzksNyArMTg3NSw2IEBAIGFzbSAoCiAiLmdsb2JsICIgU1lNQk9MX1NU
UklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURFX1NZTUJPTChnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUp
ICI6IiAiXG4iCi0gICAgIm1vdi5sIEByMTQsIHIxNCIgIlxuIiAvLyBDYWxsZXJGcmFtZUFuZFBD
OjpjYWxsZXJGcmFtZQogICAgICJtb3YgcjE0LCByNCIgIlxuIgogICAgICJtb3YubCAyZiwgIiBT
SDRfU0NSQVRDSF9SRUdJU1RFUiAiXG4iCiAgICAgImJyYWYgIiBTSDRfU0NSQVRDSF9SRUdJU1RF
UiAiXG4iCkBAIC0xODUyLDcgKzE4ODcsNiBAQCBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICI6CiBleHRlcm4gIkMiIHsKICAgICBfX2RlY2xzcGVjKG5ha2VkKSBFbmNvZGVk
SlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKCkKICAgICB7Ci0gICAgICAgIF9fYXNtIG1vdiBlYnAsIFtlYnAgKyAwXTsgLy8gQ2FsbGVy
RnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAgICAgX19hc20gbW92IFtlc3AgKyA0XSwgZWJw
OwogICAgICAgICBfX2FzbSBqbXAgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUK
ICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoSklUKQog
CiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAj
aW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRl
ICJKU0NKU1ZhbHVlLmgiCkBAIC03Miw2ICs3Myw3IEBAIGV4dGVybiAiQyIgewogICAgIFBjOiBJ
bnN0cnVjdGlvbiogaS5lLiBieXRlY29kZSBQQwogICAgIFI6IFJlZ2lzdGVyCiAgICAgUzogc2l6
ZV90CisgICAgU3BydDogU2xvd1BhdGhSZXR1cm5UeXBlCiAgICAgU3NpOiBTdHJ1Y3R1cmVTdHVi
SW5mbyoKICAgICBTdDogU3RydWN0dXJlKgogICAgIFY6IHZvaWQKQEAgLTkyLDYgKzk0LDcgQEAg
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSgogdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUNJKShFeGVjU3RhdGUqLCBK
U0NlbGwqLCBTdHJpbmdJbXBsKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gKCpKX0pJVE9wZXJhdGlvbl9FQ0opKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1Zh
bHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0
aW9uX0VEQSkoRXhlY1N0YXRlKiwgZG91YmxlLCBKU0FycmF5Kik7Cit0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FRSkoRXhlY1N0YXRlKiwgRXhl
Y1N0YXRlKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9w
ZXJhdGlvbl9FSSkoRXhlY1N0YXRlKiwgU3RyaW5nSW1wbCopOwogdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUopKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklU
T3BlcmF0aW9uX0VKQSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTQXJyYXkqKTsKQEAg
LTEzMyw2ICsxMzYsNyBAQCB0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVy
CiB0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVyYXRpb25fRUpKKShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBzaXplX3Qg
SklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0aW9uX0VPSnNzKShFeGVjU3RhdGUqLCBKU09iamVj
dCosIEpTU3RyaW5nKik7CiB0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVy
YXRpb25fSikoRW5jb2RlZEpTVmFsdWUpOwordHlwZWRlZiBTbG93UGF0aFJldHVyblR5cGUgSklU
X09QRVJBVElPTiAoKlNwcnRfSklUT3BlcmF0aW9uX0VaKShFeGVjU3RhdGUqLCBpbnQzMl90KTsK
IHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRSkoRXhlY1N0YXRl
Kik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDKShFeGVj
U3RhdGUqLCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVy
YXRpb25fRUNiKShFeGVjU3RhdGUqLCBDb2RlQmxvY2sqKTsKQEAgLTE3NCwxOCArMTc4LDE3IEBA
IHR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAoKlBfSklUT3BlcmEKIHR5cGVkZWYgY2hhciog
SklUX09QRVJBVElPTiAoKlBfSklUT3BlcmF0aW9uX0VTdFBTKShFeGVjU3RhdGUqLCBTdHJ1Y3R1
cmUqLCB2b2lkKiwgc2l6ZV90KTsKIHR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAoKlBfSklU
T3BlcmF0aW9uX0VTdFNTKShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBzaXplX3QsIHNpemVfdCk7
CiB0eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FU3RaKShFeGVj
U3RhdGUqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90KTsKLXR5cGVkZWYgY2hhciogSklUX09QRVJBVElP
TiAoKlBfSklUT3BlcmF0aW9uX0VaKShFeGVjU3RhdGUqLCBpbnQzMl90KTsKIHR5cGVkZWYgY2hh
ciogSklUX09QRVJBVElPTiAoKlBfSklUT3BlcmF0aW9uX0VaWikoRXhlY1N0YXRlKiwgaW50MzJf
dCwgaW50MzJfdCk7CiB0eXBlZGVmIFN0cmluZ0ltcGwqIEpJVF9PUEVSQVRJT04gKCpJX0pJVE9w
ZXJhdGlvbl9FSnNzKShFeGVjU3RhdGUqLCBKU1N0cmluZyopOwogdHlwZWRlZiBKU1N0cmluZyog
SklUX09QRVJBVElPTiAoKkpzc19KSVRPcGVyYXRpb25fRVopKEV4ZWNTdGF0ZSosIGludDMyX3Qp
OwogCiAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGxvb2t1cCBhbiBleGNlcHRpb24gaGFuZGVy
LCBrZXllZCBieSBmYXVsdExvY2F0aW9uLCB3aGljaCBpcwogLy8gdGhlIHJldHVybiBsb2NhdGlv
biBmcm9tIG9uZSBvZiB0aGUgY2FsbHMgb3V0IHRvIG9uZSBvZiB0aGUgaGVscGVyIG9wZXJhdGlv
bnMgYWJvdmUuCi0gICAgCi12b2lkIEpJVF9PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9uSGFuZGxl
cihFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CisKK3ZvaWQgSklUX09QRVJBVElPTiBsb29rdXBF
eGNlcHRpb25IYW5kbGVyKFZNKiwgRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKEV4ZWNTdGF0ZSopIFdURl9JTlRF
Uk5BTDsKIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0YWNrQ2hlY2soRXhlY1N0YXRl
KiwgQ29kZUJsb2NrKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blRocm93U3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNTdGF0ZSosIENvZGVCbG9jayopIFdURl9JTlRF
Uk5BTDsKIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsQXJpdHlDaGVjayhFeGVj
U3RhdGUqKSBXVEZfSU5URVJOQUw7CiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29u
c3RydWN0QXJpdHlDaGVjayhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWQoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgU3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKQEAgLTIx
MywxMiArMjE2LDE4IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGUK
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9J
TlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVy
aWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25DYWxsRXZhbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZpcnR1YWxDYWxsKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiwgRXhlY1N0
YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2Fs
bChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDYWxsKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIGNo
YXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdChFeGVjU3RhdGUqKSBX
VEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3Qo
RXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25M
aW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsVGhhdFByZXNlcnZlc1JlZ3Mo
RXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25W
aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2No
YXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNS
ZWdzKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5B
TDsKKwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUxlc3MoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBzaXplX3Qg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlTGVzc0VxKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogc2l6ZV90IEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CkBAIC0yNDIsNyArMjUxLDcgQEAgdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhdGljRQogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblRocm93KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVidWcoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lO
VEVSTkFMOwogI2lmIEVOQUJMRShERkdfSklUKQotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRp
b25PcHRpbWl6ZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CitTbG93UGF0aFJl
dHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBpbnQz
Ml90KSBXVEZfSU5URVJOQUw7CiAjZW5kaWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRCeUluZGV4KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNW
YWx1ZSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTI2Nyw3ICsyNzYsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVGVhck9mZkFyZ3VtCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwg
Y29uc3QgSWRlbnRpZmllciopIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXRQTmFtZXMoRXhlY1N0YXRlKiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3RhbmNlT2YoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHByb3RvKSBXVEZfSU5URVJOQUw7Ci1D
YWxsRnJhbWUqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJh
cmdzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBmaXJzdEZy
ZWVSZWdpc3RlcikgV1RGX0lOVEVSTkFMOworQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblNpemVGcmFtZUZvclZhcmFyZ3MoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgYXJndW1l
bnRzLCBpbnQzMl90IGZpcnN0RnJlZVJlZ2lzdGVyKSBXVEZfSU5URVJOQUw7CiBDYWxsRnJhbWUq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTG9hZFZhcmFyZ3MoRXhlY1N0YXRlKiwgQ2FsbEZyYW1l
KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMpIFdU
Rl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9PYmpl
Y3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIApAQCAtMjg3LDYg
KzI5Niw2OCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5pdEdsb2JhbENvCiAKIH0g
Ly8gZXh0ZXJuICJDIgogCitpbmxpbmUgUF9KSVRPcGVyYXRpb25fRSBvcGVyYXRpb25MaW5rRm9y
KAorICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25N
b2RlIHJlZ2lzdGVycykKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIENvZGVGb3JD
YWxsOgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uTGlu
a0NhbGw7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAg
cmV0dXJuIG9wZXJhdGlvbkxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3M7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0OgorICAgICAgICBzd2l0Y2gg
KHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWly
ZWQ6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uTGlua0NvbnN0cnVjdDsKKyAgICAgICAg
Y2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9u
TGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAw
OworfQorCitpbmxpbmUgUF9KSVRPcGVyYXRpb25fRSBvcGVyYXRpb25WaXJ0dWFsRm9yKAorICAg
IENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJl
Z2lzdGVycykKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIENvZGVGb3JDYWxsOgor
ICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uVmlydHVhbENh
bGw7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0
dXJuIG9wZXJhdGlvblZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3M7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0OgorICAgICAgICBzd2l0Y2gg
KHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWly
ZWQ6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdDsKKyAgICAg
ICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0
aW9uVmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiAwOworfQorCitpbmxpbmUgUF9KSVRPcGVyYXRpb25fRSBvcGVyYXRpb25MaW5rQ2xvc3Vy
ZUNhbGxGb3IoUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBzd2l0
Y2ggKHJlZ2lzdGVycykgeworICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJl
ZDoKKyAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbDsKKyAgICBjYXNlIE11
c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDbG9zdXJl
Q2FsbFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlm
IC8vIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAw
OSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRf
YnlfaWQoSW5zdHJ1Y3Rpb24qCiAKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAg
ICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0
OjpzcGVjaWFsUmVnaXN0ZXJzKCksCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVl
UmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCB0cnVl
KTsKKyAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3Mo
cmVnVDEsIHJlZ1QwKSwgdHJ1ZSk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwog
ICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBl
bmQoZ2VuKTsKQEAgLTUzMCw3ICs1MzAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQo
SW5zdHJ1Y3Rpb24qCiAKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVj
aWFsUmVnaXN0ZXJzKCksCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVnczo6
cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLAorICAgICAgICBK
U1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIp
LAogICAgICAgICByZWdUMSwgdHJ1ZSwgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksIGRpcmVjdCA/
IERpcmVjdCA6IE5vdERpcmVjdCk7CiAgICAgCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRo
aXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MjAsNyAr
NTIwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkKEluc3RydWN0aW9uKgogCiAgICAg
SklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2lu
KG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAg
ICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhy
ZWdUMCksIHRydWUpOworICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJl
Z1QwKSwgdHJ1ZSk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNs
b3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsK
QEAgLTU2Niw4ICs1NjYsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQoSW5zdHJ1Y3Rp
b24qCiAKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ss
IENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0
ZXJzKCksCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyhyZWdUMCksIEpT
VmFsdWVSZWdzKHJlZ1QxKSwgcmVnVDIsIHRydWUsCi0gICAgICAgIG1fY29kZUJsb2NrLT5lY21h
TW9kZSgpLCBkaXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOworICAgICAgICBKU1ZhbHVlUmVn
cyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxKSwgcmVnVDIsIHRydWUsIG1fY29kZUJsb2NrLT5l
Y21hTW9kZSgpLAorICAgICAgICBkaXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOwogICAgIAog
ICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xv
d1BhdGhKdW1wKCkpOwpAQCAtMTA3OCw3ICsxMDc4LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21w
aWxlR2V0QnlWYWwoQnlWYWxJbgogICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgYnlWYWxJbmZv
LT5iYWRUeXBlSnVtcC5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5mby0+YmFkVHlwZUp1bXBUb0RvbmUp
KTsKICAgICAKICAgICBieVZhbEluZm8tPnN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1Jf
U1RVQigKLSAgICAgICAgcGF0Y2hCdWZmZXIsCisgICAgICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1
ZmZlciwKICAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlfdmFsIHN0dWIgZm9yICVzLCByZXR1cm4g
cG9pbnQgJXAiLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5kYXRhKCksIHJldHVybkFkZHJlc3Mu
dmFsdWUoKSkpOwogICAgIAogICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVC
bG9jayk7CkBAIC0xMTQxLDEyICsxMTQxLDEyIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVB1
dEJ5VmFsKEJ5VmFsSW4KICAgICBib29sIGlzRGlyZWN0ID0gbV9pbnRlcnByZXRlci0+Z2V0T3Bj
b2RlSUQoY3VycmVudEluc3RydWN0aW9uLT51Lm9wY29kZSkgPT0gb3BfcHV0X2J5X3ZhbF9kaXJl
Y3Q7CiAgICAgaWYgKCFpc0RpcmVjdCkgewogICAgICAgICBieVZhbEluZm8tPnN0dWJSb3V0aW5l
ID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKLSAgICAgICAgICAgIHBhdGNoQnVmZmVyLAorICAg
ICAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAogICAgICAgICAgICAgKCJCYXNlbGlu
ZSBwdXRfYnlfdmFsIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCB0b0NTdHJpbmcoKm1f
Y29kZUJsb2NrKS5kYXRhKCksIHJldHVybkFkZHJlc3MudmFsdWUoKSkpOwogICAgICAgICAKICAg
ICB9IGVsc2UgewogICAgICAgICBieVZhbEluZm8tPnN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09E
RV9GT1JfU1RVQigKLSAgICAgICAgICAgIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAgbV9jb2Rl
QmxvY2ssIHBhdGNoQnVmZmVyLAogICAgICAgICAgICAgKCJCYXNlbGluZSBwdXRfYnlfdmFsX2Rp
cmVjdCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwgdG9DU3RyaW5nKCptX2NvZGVCbG9j
aykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKICAgICB9CiAgICAgUmVwYXRjaEJ1
ZmZlciByZXBhdGNoQnVmZmVyKG1fY29kZUJsb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTUwLDEx
ICsxNTAsOCBAQCBwcm90ZWN0ZWQ6CiB9OwogCiAvLyBIZWxwZXIgZm9yIHRoZSBjcmVhdGlvbiBv
ZiBzaW1wbGUgc3R1YiByb3V0aW5lcyB0aGF0IG5lZWQgbm8gaGVscCBmcm9tIHRoZSBHQy4KLSNk
ZWZpbmUgRklOQUxJWkVfQ09ERV9GT1JfU1RVQihwYXRjaEJ1ZmZlciwgZGF0YUxvZ0ZBcmd1bWVu
dHMpIFwKLSAgICAoYWRvcHRSZWYobmV3IEpJVFN0dWJSb3V0aW5lKEZJTkFMSVpFX0NPREUoKHBh
dGNoQnVmZmVyKSwgZGF0YUxvZ0ZBcmd1bWVudHMpKSkpCi0KLSNkZWZpbmUgRklOQUxJWkVfQ09E
RV9GT1JfREZHX1NUVUIocGF0Y2hCdWZmZXIsIGRhdGFMb2dGQXJndW1lbnRzKSBcCi0gICAgKGFk
b3B0UmVmKG5ldyBKSVRTdHViUm91dGluZShGSU5BTElaRV9ERkdfQ09ERSgocGF0Y2hCdWZmZXIp
LCBkYXRhTG9nRkFyZ3VtZW50cykpKSkKKyNkZWZpbmUgRklOQUxJWkVfQ09ERV9GT1JfU1RVQihj
b2RlQmxvY2ssIHBhdGNoQnVmZmVyLCBkYXRhTG9nRkFyZ3VtZW50cykgXAorICAgIChhZG9wdFJl
ZihuZXcgSklUU3R1YlJvdXRpbmUoRklOQUxJWkVfQ09ERV9GT1IoKGNvZGVCbG9jayksIChwYXRj
aEJ1ZmZlciksIGRhdGFMb2dGQXJndW1lbnRzKSkpKQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkocmV2aXNpb24gMTYyOTYxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNywxNCArMzcsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKEpJVCkKIAogI2lm
IE9TKFdJTkRPV1MpCi1jbGFzcyBFeGVjU3RhdGU7Ci1jbGFzcyBSZWdpc3RlcjsKIHN0cnVjdCBQ
cm90b0NhbGxGcmFtZTsKK2NsYXNzIFZNOwogCiBleHRlcm4gIkMiIHsKLSAgICBFbmNvZGVkSlNW
YWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUq
LCBSZWdpc3RlciopOwotICAgIHZvaWQgcmV0dXJuRnJvbUphdmFTY3JpcHQoKTsKLSAgICBFbmNv
ZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiwgRXhlY1N0YXRlKiosIFByb3Rv
Q2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKKyAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2Ny
aXB0KHZvaWQqLCBWTSosIFByb3RvQ2FsbEZyYW1lKik7CisgICAgRW5jb2RlZEpTVmFsdWUgY2Fs
bFRvTmF0aXZlRnVuY3Rpb24odm9pZCosIFZNKiwgUHJvdG9DYWxsRnJhbWUqKTsKKyAgICB2b2lk
IGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uKCk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20JKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZDNjQuYXNtCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDI1NSArMCwwIEBACi07LyoKLTsgQ29weXJpZ2h0IChDKSAyMDEzIERpZ2lh
IFBsYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi07Ci07IFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotOyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLTsgYXJlIG1ldDoKLTsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotOyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
OyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi07ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi07Ci07IFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotOyBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotOyBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLTsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLTsgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi07IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLTsgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi07
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLTsgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi07IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotOyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotOyovCi0K
LUVYVEVSTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSA6IG5lYXIKLQotUFVC
TElDIGNhbGxUb0phdmFTY3JpcHQKLVBVQkxJQyByZXR1cm5Gcm9tSmF2YVNjcmlwdAotUFVCTElD
IGdldEhvc3RDYWxsUmV0dXJuVmFsdWUKLQotX1RFWFQgICBTRUdNRU5UCi0KLWNhbGxUb0phdmFT
Y3JpcHQgUFJPQwotICAgIDs7IFRoaXMgZnVuY3Rpb24gaXMgYmVsaWV2ZWQgdG8gYmUgYW4gYWNj
dXJhdGUgYWRhcHRhdGlvbiBvZiB0aGUgYXNzZW1ibHkgY3JlYXRlZCBieSB0aGUgbGxpbnQgc3R1
YiBvZiB0aGUKLSAgICA7OyBzYW1lIG5hbWUgd2l0aCBjaGFuZ2VzIGZvciBhcmd1bWVudCByZWdp
c3RlciBkaWZmZXJlbmNlcy4KLSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcnNwXQotICAgIHB1c2gg
cmJwCi0gICAgbW92IHJheCwgcmJwIDsgU2F2ZSBwcmV2aW91cyBmcmFtZSBwb2ludGVyCi0gICAg
bW92IHJicCwgcnNwCi0gICAgcHVzaCByMTIKLSAgICBwdXNoIHIxMwotICAgIHB1c2ggcjE0Ci0g
ICAgcHVzaCByMTUKLSAgICBwdXNoIHJieAotICAgIHB1c2ggcnNpCi0gICAgcHVzaCByZGkKLQot
ICAgIDsgSklUIG9wZXJhdGlvbnMgY2FuIHVzZSB1cCB0byA2IGFyZ3MgKDQgaW4gcmVnaXN0ZXJz
IGFuZCAyIG9uIHRoZSBzdGFjaykuCi0gICAgOyBJbiBhZGRpdGlvbiwgWDg2XzY0IEFCSSBzcGVj
aWZpZXMgdGhhdCB0aGUgd29yc2UgY2FzZSBzdGFjayBhbGlnbm1lbnQKLSAgICA7IHJlcXVpcmVt
ZW50IGlzIDMyIGJ5dGVzLiBCYXNlZCBvbiB0aGVzZSBmYWN0b3JzLCB3ZSBuZWVkIHRvIHBhZCB0
aGUgc3RhY2sKLSAgICA7IGFuIGFkZGl0aW9uYWwgMjhoIGJ5dGVzLgotICAgIHN1YiByc3AsIDI4
aAotCi0gICAgbW92IHJicCwgcjkKLSAgICBzdWIgcmJwLCA0MAotICAgIG1vdiBxd29yZCBwdHJb
cmJwICsgNDBdLCAwCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAzMl0sIHJkeAotCi0gICAgbW92
IHJheCwgcXdvcmQgcHRyW3JkeF0KLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDI0XSwgcmF4Ci0g
ICAgbW92IHF3b3JkIHB0cltyYnAgKyAxNl0sIDEKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDhd
LCByMTAKLSAgICBtb3YgcXdvcmQgcHRyW3JicF0sIHJheAotICAgIG1vdiByYXgsIHJicAotCi0g
ICAgbW92IGVieCwgZHdvcmQgcHRyW3I4ICsgNDBdCi0gICAgYWRkIHJieCwgNgotICAgIHNhbCBy
YngsIDMKLSAgICBzdWIgcmJwLCByYngKLSAgICBtb3YgcXdvcmQgcHRyW3JicF0sIHJheAotCi0g
ICAgbW92IHJheCwgNQotCi1jb3B5SGVhZGVyTG9vcDoKLSAgICBzdWIgcmF4LCAxCi0gICAgbW92
IHIxMCwgcXdvcmQgcHRyW3I4ICsgcmF4ICogOF0KLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIHJh
eCAqIDggKyAxNl0sIHIxMAotICAgIHRlc3QgcmF4LCByYXgKLSAgICBqbnogY29weUhlYWRlckxv
b3AKLQotICAgIG1vdiBlYngsIGR3b3JkIHB0cltyOCArIDI0XQotICAgIHN1YiByYngsIDEKLSAg
ICBtb3YgcjEwZCwgZHdvcmQgcHRyW3I4ICsgNDBdCi0gICAgc3ViIHIxMCwgMQotICAgIGNtcCBy
YngsIHIxMAotICAgIGplIGNvcHlBcmdzCi0gICAgbW92IHJheCwgMGFoCi0KLWZpbGxFeHRyYUFy
Z3NMb29wOgotICAgIHN1YiByMTAsIDEKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIHIxMCAqIDgg
KyA1Nl0sIHJheAotICAgIGNtcCByYngsIHIxMAotICAgIGpuZSBmaWxsRXh0cmFBcmdzTG9vcAot
Ci1jb3B5QXJnczoKLSAgICBtb3YgcmF4LCBxd29yZCBwdHJbcjggKyA0OF0KLQotY29weUFyZ3NM
b29wOgotICAgIHRlc3QgZWJ4LCBlYngKLSAgICBqeiBjb3B5QXJnc0RvbmUKLSAgICBzdWIgZWJ4
LCAxCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3JheCArIHJieCAqIDhdCi0gICAgbW92IHF3b3Jk
IHB0cltyYnAgKyByYnggKiA4ICsgNTZdLCByMTAKLSAgICBqbXAgY29weUFyZ3NMb29wCi0KLWNv
cHlBcmdzRG9uZToKLSAgICBtb3YgcXdvcmQgcHRyW3JkeF0sIHJicAotICAgIG1vdiByMTQsIDBG
RkZGMDAwMDAwMDAwMDAwaAotICAgIG1vdiByMTUsIDBGRkZGMDAwMDAwMDAwMDAyaAotICAgIGNh
bGwgcmN4Ci0gICAgY21wIHF3b3JkIHB0cltyYnAgKyAxNl0sIDEKLSAgICBqZSBjYWxsZWVGcmFt
ZVBvcHBlZAotICAgIG1vdiByYnAsIHF3b3JkIHB0cltyYnBdCi0KLWNhbGxlZUZyYW1lUG9wcGVk
OgotICAgIG1vdiByYngsIHF3b3JkIHB0cltyYnAgKyAzMl0gOyBWTS50b3BDYWxsRnJhbWUKLSAg
ICBtb3YgcjEwLCBxd29yZCBwdHJbcmJwICsgMjRdCi0gICAgbW92IHF3b3JkIHB0cltyYnhdLCBy
MTAKLSAgICBhZGQgcnNwLCAyOGgKLSAgICBwb3AgcmRpCi0gICAgcG9wIHJzaQotICAgIHBvcCBy
YngKLSAgICBwb3AgcjE1Ci0gICAgcG9wIHIxNAotICAgIHBvcCByMTMKLSAgICBwb3AgcjEyCi0g
ICAgcG9wIHJicAotICAgIHJldAotY2FsbFRvSmF2YVNjcmlwdCBFTkRQCi0KLWNhbGxUb05hdGl2
ZUZ1bmN0aW9uIFBST0MKLSAgICA7OyBUaGlzIGZ1bmN0aW9uIGlzIGJlbGlldmVkIHRvIGJlIGFu
IGFjY3VyYXRlIGFkYXB0YXRpb24gb2YgdGhlIGFzc2VtYmx5IGNyZWF0ZWQgYnkgdGhlIGxsaW50
IHN0dWIgb2YgdGhlCi0gICAgOzsgc2FtZSBuYW1lIHdpdGggY2hhbmdlcyBmb3IgYXJndW1lbnQg
cmVnaXN0ZXIgZGlmZmVyZW5jZXMuCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3JzcF0KLSAgICBw
dXNoIHJicAotICAgIG1vdiByYXgsIHJicCA7IFNhdmUgcHJldmlvdXMgZnJhbWUgcG9pbnRlcgot
ICAgIG1vdiByYnAsIHJzcAotICAgIHB1c2ggcjEyCi0gICAgcHVzaCByMTMKLSAgICBwdXNoIHIx
NAotICAgIHB1c2ggcjE1Ci0gICAgcHVzaCByYngKLSAgICBwdXNoIHJzaQotICAgIHB1c2ggcmRp
Ci0KLSAgICA7IEpJVCBvcGVyYXRpb25zIGNhbiB1c2UgdXAgdG8gNiBhcmdzICg0IGluIHJlZ2lz
dGVycyBhbmQgMiBvbiB0aGUgc3RhY2spLgotICAgIDsgSW4gYWRkaXRpb24sIFg4Nl82NCBBQkkg
c3BlY2lmaWVzIHRoYXQgdGhlIHdvcnNlIGNhc2Ugc3RhY2sgYWxpZ25tZW50Ci0gICAgOyByZXF1
aXJlbWVudCBpcyAzMiBieXRlcy4gQmFzZWQgb24gdGhlc2UgZmFjdG9ycywgd2UgbmVlZCB0byBw
YWQgdGhlIHN0YWNrCi0gICAgOyBhbiBhZGRpdGlvbmFsIDI4aCBieXRlcy4KLSAgICBzdWIgcnNw
LCAyOGgKLQotICAgIG1vdiByYnAsIHI5Ci0gICAgc3ViIHJicCwgNDAKLSAgICBtb3YgcXdvcmQg
cHRyW3JicCArIDQwXSwgMAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMzJdLCByZHgKLQotICAg
IG1vdiByYXgsIHF3b3JkIHB0cltyZHhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAyNF0sIHJh
eAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMTZdLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAg
KyA4XSwgcjEwCi0gICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLSAgICBtb3YgcmF4LCByYnAK
LQotICAgIG1vdiBlYngsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIGFkZCByYngsIDYKLSAgICBz
YWwgcmJ4LCAzCi0gICAgc3ViIHJicCwgcmJ4Ci0gICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgK
LQotICAgIG1vdiByYXgsIDUKLQotY29weUhlYWRlckxvb3A6Ci0gICAgc3ViIHJheCwgMQotICAg
IG1vdiByMTAsIHF3b3JkIHB0cltyOCArIHJheCAqIDhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAg
KyByYXggKiA4ICsgMTZdLCByMTAKLSAgICB0ZXN0IHJheCwgcmF4Ci0gICAgam56IGNvcHlIZWFk
ZXJMb29wCi0KLSAgICBtb3YgZWJ4LCBkd29yZCBwdHJbcjggKyAyNF0KLSAgICBzdWIgcmJ4LCAx
Ci0gICAgbW92IHIxMGQsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIHN1YiByMTAsIDEKLSAgICBj
bXAgcmJ4LCByMTAKLSAgICBqZSBjb3B5QXJncwotICAgIG1vdiByYXgsIDBhaAotCi1maWxsRXh0
cmFBcmdzTG9vcDoKLSAgICBzdWIgcjEwLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByMTAg
KiA4ICsgNTZdLCByYXgKLSAgICBjbXAgcmJ4LCByMTAKLSAgICBqbmUgZmlsbEV4dHJhQXJnc0xv
b3AKLQotY29weUFyZ3M6Ci0gICAgbW92IHJheCwgcXdvcmQgcHRyW3I4ICsgNDhdCi0KLWNvcHlB
cmdzTG9vcDoKLSAgICB0ZXN0IHJieCwgcmJ4Ci0gICAganogY29weUFyZ3NEb25lCi0gICAgc3Vi
IHJieCwgMQotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyYXggKyByYnggKiA4XQotICAgIG1vdiBx
d29yZCBwdHJbcmJwICsgcmJ4ICogOCArIDU2XSwgcjEwCi0gICAgam1wIGNvcHlBcmdzTG9vcAot
Ci1jb3B5QXJnc0RvbmU6Ci0gICAgbW92IHF3b3JkIHB0cltyZHhdLCByYnAKLSAgICBtb3YgcjE0
LCAwRkZGRjAwMDAwMDAwMDAwMGgKLSAgICBtb3YgcjE1LCAwRkZGRjAwMDAwMDAwMDAwMmgKLQot
ICAgIG1vdiByYXgsIHJjeAotICAgIG1vdiByY3gsIHJicAotICAgIGNhbGwgcmF4Ci0KLSAgICBj
bXAgcXdvcmQgcHRyW3JicCArIDE2XSwgMQotICAgIGplIGNhbGxlZUZyYW1lUG9wcGVkCi0gICAg
bW92IHJicCwgcXdvcmQgcHRyW3JicF0KLQotY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAgbW92IHJi
eCwgcXdvcmQgcHRyW3JicCArIDMyXSA7IFZNLnRvcENhbGxGcmFtZQotICAgIG1vdiByMTAsIHF3
b3JkIHB0cltyYnAgKyAyNF0KLSAgICBtb3YgcXdvcmQgcHRyW3JieF0sIHIxMAotICAgIGFkZCBy
c3AsIDI4aAotICAgIHBvcCByZGkKLSAgICBwb3AgcnNpCi0gICAgcG9wIHJieAotICAgIHBvcCBy
MTUKLSAgICBwb3AgcjE0Ci0gICAgcG9wIHIxMwotICAgIHBvcCByMTIKLSAgICBwb3AgcmJwCi0g
ICAgcmV0Ci1jYWxsVG9OYXRpdmVGdW5jdGlvbiBFTkRQCi0KLXJldHVybkZyb21KYXZhU2NyaXB0
IFBST0MKLSAgICBhZGQgcnNwLCAyOGgKLSAgICBwb3AgcmRpCi0gICAgcG9wIHJzaQotICAgIHBv
cCByYngKLSAgICBwb3AgcjE1Ci0gICAgcG9wIHIxNAotICAgIHBvcCByMTMKLSAgICBwb3AgcjEy
Ci0gICAgcG9wIHJicAotICAgIHJldAotcmV0dXJuRnJvbUphdmFTY3JpcHQgRU5EUAotCQotZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSBQUk9DCi0gICAgbW92IHJicCwgW3JicF0gOyBDYWxsRnJhbWUK
LSAgICBtb3YgcmN4LCByYnAgOyByY3ggaXMgZmlyc3QgYXJndW1lbnQgcmVnaXN0ZXIgb24gV2lu
ZG93cwotICAgIGptcCBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZQotZ2V0SG9z
dENhbGxSZXR1cm5WYWx1ZSBFTkRQCi0KLV9URVhUICAgRU5EUwotCi1FTkQKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNYODYuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNYODYuaAkod29ya2luZyBjb3B5KQpAQCAt
MjAwLDIzMCArMjAwLDYgQEAgU1lNQk9MX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5k
KQogCiAjZW5kaWYgLy8gQ09NUElMRVIoR0NDKQogCi0jaWYgQ09NUElMRVIoTVNWQykKLQotZXh0
ZXJuICJDIiB7Ci0KLSAgICAvLyBGSVhNRTogU2luY2UgV2luZG93cyBkb2Vzbid0IHVzZSB0aGUg
TExJbnQsIHdlIGhhdmUgaW5saW5lIHN0dWJzIGhlcmUuCi0gICAgLy8gVW50aWwgdGhlIExMSW50
IGlzIGNoYW5nZWQgdG8gc3VwcG9ydCBXaW5kb3dzLCB0aGVzZSBzdHViIG5lZWRzIHRvIGJlIHVw
ZGF0ZWQuCi0gICAgX19kZWNsc3BlYyhuYWtlZCkgRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNj
cmlwdCh2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3Rlciop
Ci0gICAgewotICAgICAgICBfX2FzbSB7Ci0gICAgICAgICAgICBtb3YgZWR4LCBbZXNwXQotICAg
ICAgICAgICAgcHVzaCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWF4LCBlYnA7Ci0gICAgICAgICAg
ICBtb3YgZWJwLCBlc3A7Ci0gICAgICAgICAgICBwdXNoIGVzaTsKLSAgICAgICAgICAgIHB1c2gg
ZWRpOwotICAgICAgICAgICAgcHVzaCBlYng7Ci0gICAgICAgICAgICBzdWIgZXNwLCAweDFjOwot
ICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzcCArIDB4MzRdOwotICAgICAgICAgICAg
bW92IGVzaSwgZHdvcmQgcHRyW2VzcCArIDB4MzhdOwotICAgICAgICAgICAgbW92IGVicCwgZHdv
cmQgcHRyW2VzcCArIDB4M2NdOwotICAgICAgICAgICAgc3ViIGVicCwgMHgyMDsKLSAgICAgICAg
ICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgyNF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQg
cHRyW2VicCArIDB4MjBdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDFj
XSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxOF0sIGVjeDsKLSAgICAg
ICAgICAgIG1vdiBlYngsIFtlY3hdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAw
eDE0XSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxMF0sIGVieDsKLSAg
ICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHhjXSwgMDsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHJbZWJwICsgMHg4XSwgMTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsg
MHg0XSwgZWR4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnBdLCBlYXg7Ci0gICAgICAg
ICAgICBtb3YgZWF4LCBlYnA7Ci0KLSAgICAgICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltlc2kg
KyAweDI4XTsKLSAgICAgICAgICAgIGFkZCBlZHgsIDU7Ci0gICAgICAgICAgICBzYWwgZWR4LCAz
OwotICAgICAgICAgICAgc3ViIGVicCwgZWR4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltl
YnBdLCBlYXg7Ci0KLSAgICAgICAgICAgIG1vdiBlYXgsIDU7Ci0KLSAgICAgICAgY29weUhlYWRl
ckxvb3A6Ci0gICAgICAgICAgICBzdWIgZWF4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdv
cmQgcHRyW2VzaSArIGVheCAqIDhdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciA4W2VicCAr
IGVheCAqIDhdLCBlY3g7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHIgNFtlc2kgKyBl
YXggKiA4XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMTJbZWJwICsgZWF4ICogOF0sIGVj
eDsKLSAgICAgICAgICAgIHRlc3QgZWF4LCBlYXg7Ci0gICAgICAgICAgICBqbnogY29weUhlYWRl
ckxvb3A7Ci0KLSAgICAgICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltlc2kgKyAweDE4XTsKLSAg
ICAgICAgICAgIHN1YiBlZHgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNp
ICsgMHgyOF07Ci0gICAgICAgICAgICBzdWIgZWN4LCAxOwotCi0gICAgICAgICAgICBjbXAgZWR4
LCBlY3g7Ci0gICAgICAgICAgICBqZSBjb3B5QXJnczsKLQotICAgICAgICAgICAgeG9yIGVheCwg
ZWF4OwotICAgICAgICAgICAgbW92IGVieCwgLTQ7Ci0KLSAgICAgICAgZmlsbEV4dHJhQXJnc0xv
b3A6Ci0gICAgICAgICAgICBzdWIgZWN4LCAxOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAw
eDMwW2VicCArIGVjeCAqIDhdLCBlYXg7ICAgICAgICAgICAgCi0gICAgICAgICAgICBtb3YgZHdv
cmQgcHRyIDB4MzRbZWJwICsgZWN4ICogOF0sIGVieDsKLSAgICAgICAgICAgIGNtcCBlZHgsIGVj
eDsKLSAgICAgICAgICAgIGpuZSBmaWxsRXh0cmFBcmdzTG9vcDsKLQotICAgICAgICBjb3B5QXJn
czoKLSAgICAgICAgICAgIG1vdiBlYXgsIGR3b3JkIHB0cltlc2kgKyAweDJjXTsKLQotICAgICAg
ICBjb3B5QXJnc0xvb3A6Ci0gICAgICAgICAgICB0ZXN0IGVkeCwgZWR4OwotICAgICAgICAgICAg
anogY29weUFyZ3NEb25lOwotICAgICAgICAgICAgc3ViIGVkeCwgMTsKLSAgICAgICAgICAgIG1v
diBlY3gsIGR3b3JkIHB0ciAwW2VheCArIGVkeCAqIDhdOwotICAgICAgICAgICAgbW92IGVieCwg
ZHdvcmQgcHRyIDRbZWF4ICsgZWR4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4
MzBbZWJwICsgZWR4ICogOF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzNFtl
YnAgKyBlZHggKiA4XSwgZWJ4OwotICAgICAgICAgICAgam1wIGNvcHlBcmdzTG9vcDsKLQotICAg
ICAgICBjb3B5QXJnc0RvbmU6Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNwICsg
MHgzNF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VjeF0sIGVicDsKLQotICAgICAgICAg
ICAgY2FsbCBkd29yZCBwdHJbZXNwICsgMHgzMF07Ci0KLSAgICAgICAgICAgIGNtcCBkd29yZCBw
dHJbZWJwICsgOF0sIDE7Ci0gICAgICAgICAgICBqZSBjYWxsZWVGcmFtZVBvcHBlZDsKLSAgICAg
ICAgICAgIG1vdiBlYnAsIGR3b3JkIHB0cltlYnBdOwotCi0gICAgICAgIGNhbGxlZUZyYW1lUG9w
cGVkOgotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VicCArIDB4MThdOwotICAgICAg
ICAgICAgbW92IGVieCwgZHdvcmQgcHRyW2VicCArIDB4MTBdOwotICAgICAgICAgICAgbW92IGR3
b3JkIHB0cltlY3hdLCBlYng7Ci0KLSAgICAgICAgICAgIGFkZCBlc3AsIDB4MWM7Ci0gICAgICAg
ICAgICBwb3AgZWJ4OwotICAgICAgICAgICAgcG9wIGVkaTsKLSAgICAgICAgICAgIHBvcCBlc2k7
Ci0gICAgICAgICAgICBwb3AgZWJwOwotICAgICAgICAgICAgcmV0OwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgX19kZWNsc3BlYyhuYWtlZCkgdm9pZCByZXR1cm5Gcm9tSmF2YVNjcmlwdCgpCi0g
ICAgewotICAgICAgICBfX2FzbSB7Ci0gICAgICAgICAgICBhZGQgZXNwLCAweDFjOwotICAgICAg
ICAgICAgcG9wIGVieDsKLSAgICAgICAgICAgIHBvcCBlZGk7Ci0gICAgICAgICAgICBwb3AgZXNp
OwotICAgICAgICAgICAgcG9wIGVicDsKLSAgICAgICAgICAgIHJldDsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIF9fZGVjbHNwZWMobmFrZWQpIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1
bmN0aW9uKHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVy
KikKLSAgICB7Ci0gICAgICAgIF9fYXNtIHsKLSAgICAgICAgICAgIG1vdiBlZHgsIFtlc3BdCi0g
ICAgICAgICAgICBwdXNoIGVicDsKLSAgICAgICAgICAgIG1vdiBlYXgsIGVicDsKLSAgICAgICAg
ICAgIG1vdiBlYnAsIGVzcDsKLSAgICAgICAgICAgIHB1c2ggZXNpOwotICAgICAgICAgICAgcHVz
aCBlZGk7Ci0gICAgICAgICAgICBwdXNoIGVieDsKLSAgICAgICAgICAgIHN1YiBlc3AsIDB4MWM7
Ci0gICAgICAgICAgICBtb3YgZWN4LCBbZXNwICsgMHgzNF07Ci0gICAgICAgICAgICBtb3YgZXNp
LCBbZXNwICsgMHgzOF07Ci0gICAgICAgICAgICBtb3YgZWJwLCBbZXNwICsgMHgzY107Ci0gICAg
ICAgICAgICBzdWIgZWJwLCAweDIwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAw
eDI0XSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgyMF0sIDA7Ci0gICAg
ICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MWNdLCAwOwotICAgICAgICAgICAgbW92IGR3
b3JkIHB0cltlYnAgKyAweDE4XSwgZWN4OwotICAgICAgICAgICAgbW92IGVieCwgW2VjeF07Ci0g
ICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MTRdLCAwOwotICAgICAgICAgICAgbW92
IGR3b3JkIHB0cltlYnAgKyAweDEwXSwgZWJ4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltl
YnAgKyAweGNdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDhdLCAxOwot
ICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDRdLCBlZHg7Ci0gICAgICAgICAgICBt
b3YgZHdvcmQgcHRyW2VicF0sIGVheDsKLSAgICAgICAgICAgIG1vdiBlYXgsIGVicDsKLQotICAg
ICAgICAgICAgbW92IGVkeCwgZHdvcmQgcHRyW2VzaSArIDB4MjhdOwotICAgICAgICAgICAgYWRk
IGVkeCwgNTsKLSAgICAgICAgICAgIHNhbCBlZHgsIDM7Ci0gICAgICAgICAgICBzdWIgZWJwLCBl
ZHg7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicF0sIGVheDsKLQotICAgICAgICAgICAg
bW92IGVheCwgNTsKLQotICAgICAgICBjb3B5SGVhZGVyTG9vcDoKLSAgICAgICAgICAgIHN1YiBl
YXgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNpICsgZWF4ICogOF07Ci0g
ICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDhbZWJwICsgZWF4ICogOF0sIGVjeDsKLSAgICAgICAg
ICAgIG1vdiBlY3gsIGR3b3JkIHB0ciA0W2VzaSArIGVheCAqIDhdOwotICAgICAgICAgICAgbW92
IGR3b3JkIHB0ciAxMltlYnAgKyBlYXggKiA4XSwgZWN4OwotICAgICAgICAgICAgdGVzdCBlYXgs
IGVheDsKLSAgICAgICAgICAgIGpueiBjb3B5SGVhZGVyTG9vcDsKLQotICAgICAgICAgICAgbW92
IGVkeCwgZHdvcmQgcHRyW2VzaSArIDB4MThdOwotICAgICAgICAgICAgc3ViIGVkeCwgMTsKLSAg
ICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc2kgKyAweDI4XTsKLSAgICAgICAgICAgIHN1
YiBlY3gsIDE7Ci0KLSAgICAgICAgICAgIGNtcCBlZHgsIGVjeDsKLSAgICAgICAgICAgIGplIGNv
cHlBcmdzOwotCi0gICAgICAgICAgICB4b3IgZWF4LCBlYXg7Ci0gICAgICAgICAgICBtb3YgZWJ4
LCAtNDsKLQotICAgICAgICBmaWxsRXh0cmFBcmdzTG9vcDoKLSAgICAgICAgICAgIHN1YiBlY3gs
IDE7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzBbZWJwICsgZWN4ICogOF0sIGVheDsg
ICAgICAgICAgICAKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzNFtlYnAgKyBlY3ggKiA4
XSwgZWJ4OwotICAgICAgICAgICAgY21wIGVkeCwgZWN4OwotICAgICAgICAgICAgam5lIGZpbGxF
eHRyYUFyZ3NMb29wOwotCi0gICAgICAgIGNvcHlBcmdzOgotICAgICAgICAgICAgbW92IGVheCwg
ZHdvcmQgcHRyW2VzaSArIDB4MmNdOwotCi0gICAgICAgIGNvcHlBcmdzTG9vcDoKLSAgICAgICAg
ICAgIHRlc3QgZWR4LCBlZHg7Ci0gICAgICAgICAgICBqeiBjb3B5QXJnc0RvbmU7Ci0gICAgICAg
ICAgICBzdWIgZWR4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyIDBbZWF4ICsg
ZWR4ICogOF07Ci0gICAgICAgICAgICBtb3YgZWJ4LCBkd29yZCBwdHIgNFtlYXggKyBlZHggKiA4
XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzMFtlYnAgKyBlZHggKiA4XSwgZWN4Owot
ICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDM0W2VicCArIGVkeCAqIDhdLCBlYng7Ci0gICAg
ICAgICAgICBqbXAgY29weUFyZ3NMb29wOwotCi0gICAgICAgIGNvcHlBcmdzRG9uZToKLSAgICAg
ICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc3AgKyAweDM0XTsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHJbZWN4XSwgZWJwOwotCi0gICAgICAgICAgICBtb3YgZWRpLCBkd29yZCBwdHJbZXNw
ICsgMHgzMF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VzcCArIDB4MzBdLCBlYnA7Ci0g
ICAgICAgICAgICBtb3YgZWN4LCBlYnA7Ci0gICAgICAgICAgICBjYWxsIGVkaTsKLQotICAgICAg
ICAgICAgY21wIGR3b3JkIHB0cltlYnAgKyA4XSwgMTsKLSAgICAgICAgICAgIGplIGNhbGxlZUZy
YW1lUG9wcGVkOwotICAgICAgICAgICAgbW92IGVicCwgZHdvcmQgcHRyW2VicF07Ci0KLSAgICAg
ICAgY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZWJw
ICsgMHgxOF07Ci0gICAgICAgICAgICBtb3YgZWJ4LCBkd29yZCBwdHJbZWJwICsgMHgxMF07Ci0g
ICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VjeF0sIGVieDsKLQotICAgICAgICAgICAgYWRkIGVz
cCwgMHgxYzsKLSAgICAgICAgICAgIHBvcCBlYng7Ci0gICAgICAgICAgICBwb3AgZWRpOwotICAg
ICAgICAgICAgcG9wIGVzaTsKLSAgICAgICAgICAgIHBvcCBlYnA7Ci0gICAgICAgICAgICByZXQ7
Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLSNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKQotCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEpJVFN0dWJzWDg2X2gKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIs
NiArNTIsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpCiAjZW5k
aWYKICAgICByZXR1cm4gY3RpU3R1Yih2bSwgbmF0aXZlQ2FsbEdlbmVyYXRvcikuY29kZSgpOwog
fQorCiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVDb25zdHJ1Y3Qo
Vk0qIHZtKQogewogI2lmIEVOQUJMRShMTElOVCkKQEAgLTYxLDYgKzYyLDEyIEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBKSVRUaHVua3M6OmN0aU5hdGkKICAgICByZXR1cm4gY3RpU3R1Yih2bSwg
bmF0aXZlQ29uc3RydWN0R2VuZXJhdG9yKS5jb2RlKCk7CiB9CiAKK01hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBKSVRUaHVua3M6OmN0aU5hdGl2ZVRhaWxDYWxsKFZNKiB2bSkKK3sKKyAgICBBU1NFUlQo
dm0tPmNhblVzZUpJVCgpKTsKKyAgICByZXR1cm4gY3RpU3R1Yih2bSwgbmF0aXZlVGFpbENhbGxH
ZW5lcmF0b3IpLmNvZGUoKTsKK30KKwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIEpJVFRodW5rczo6
Y3RpU3R1YihWTSogdm0sIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvcikKIHsKICAgICBMb2NrZXIg
bG9ja2VyKG1fbG9jayk7CkBAIC04MCw3ICs4NywxMiBAQCBOYXRpdmVFeGVjdXRhYmxlKiBKSVRU
aHVua3M6Omhvc3RGdW5jdGlvCiAgICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1
dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJNYXAtPmdldChzdGQ6Om1ha2VfcGFpcihmdW5jdGlv
biwgY29uc3RydWN0b3IpKSkKICAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CiAKLSAg
ICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6
Y3JlYXRlKCp2bSwgSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVuY3Rpb24pLCBmdW5j
dGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3Rp
TmF0aXZlQ29uc3RydWN0KHZtKSksIGNvbnN0cnVjdG9yLCBOb0ludHJpbnNpYyk7CisgICAgTmF0
aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0
ZSgKKyAgICAgICAgKnZtLAorICAgICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShKSVQ6
OmNvbXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5jdGlvbiksIEpJVENvZGU6Okhvc3RDYWxsVGh1
bmspKSwKKyAgICAgICAgZnVuY3Rpb24sCisgICAgICAgIGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRD
b2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5h
dGl2ZUNvbnN0cnVjdCh2bSkpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksCisgICAgICAgIGNv
bnN0cnVjdG9yLCBOb0ludHJpbnNpYyk7CiAgICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHVi
TWFwLCBzdGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwgY29uc3RydWN0b3IpLCBXZWFrPE5hdGl2ZUV4
ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFibGUpKTsKICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJs
ZTsKIH0KQEAgLTkyLDE2ICsxMDQsMTggQEAgTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpo
b3N0RnVuY3RpbwogICAgIGlmIChOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0g
bV9ob3N0RnVuY3Rpb25TdHViTWFwLT5nZXQoc3RkOjptYWtlX3BhaXIoZnVuY3Rpb24sICZjYWxs
SG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvcikpKQogICAgICAgICByZXR1cm4gbmF0aXZlRXhlY3V0
YWJsZTsKIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb2RlOworICAgIFJlZlB0cjxKSVRD
b2RlPiBmb3JDYWxsOwogICAgIGlmIChnZW5lcmF0b3IpIHsKLSAgICAgICAgaWYgKHZtLT5jYW5V
c2VKSVQoKSkKLSAgICAgICAgICAgIGNvZGUgPSBnZW5lcmF0b3Iodm0pOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBjb2RlID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7CisgICAgICAgIGlm
ICh2bS0+Y2FuVXNlSklUKCkpIHsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBl
bnRyeSA9IGdlbmVyYXRvcih2bSk7CisgICAgICAgICAgICBmb3JDYWxsID0gYWRvcHRSZWYobmV3
IERpcmVjdEpJVENvZGUoZW50cnksIGVudHJ5LmNvZGUoKSwgSklUQ29kZTo6SG9zdENhbGxUaHVu
aykpOworICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIGNvZGUgPSBKSVQ6OmNvbXBpbGVD
VElOYXRpdmVDYWxsKHZtLCBmdW5jdGlvbik7Ci0KLSAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRp
dmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCp2bSwgY29kZSwgZnVuY3Rp
b24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5h
dGl2ZUNvbnN0cnVjdCh2bSkpLCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgaW50cmlu
c2ljKTsKKyAgICAgICAgZm9yQ2FsbCA9IGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2RlKEpJVDo6
Y29tcGlsZUNUSU5hdGl2ZUNhbGwodm0sIGZ1bmN0aW9uKSwgSklUQ29kZTo6SG9zdENhbGxUaHVu
aykpOworICAgIAorICAgIFJlZlB0cjxKSVRDb2RlPiBmb3JDb25zdHJ1Y3QgPSBhZG9wdFJlZihu
ZXcgTmF0aXZlSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2Vk
Q29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3Qodm0pKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykp
OworICAgIAorICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVF
eGVjdXRhYmxlOjpjcmVhdGUoKnZtLCBmb3JDYWxsLCBmdW5jdGlvbiwgZm9yQ29uc3RydWN0LCBj
YWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgaW50cmluc2ljKTsKICAgICB3ZWFrQWRkKCpt
X2hvc3RGdW5jdGlvblN0dWJNYXAsIHN0ZDo6bWFrZV9wYWlyKGZ1bmN0aW9uLCAmY2FsbEhvc3RG
dW5jdGlvbkFzQ29uc3RydWN0b3IpLCBXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1
dGFibGUpKTsKICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKIH0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQs
NyBAQCBwdWJsaWM6CiAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ2FsbChW
TSopOwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoVk0qKTsK
KyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlVGFpbENhbGwoVk0qKTsgICAgCiAK
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY3RpU3R1YihWTSosIFRodW5rR2VuZXJhdG9yKTsK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCShyZXZpc2lvbiAxNjI5
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MSwxMSArNTEsNiBAQCBuYW1lc3BhY2UgSlND
IHsKIC8vIHRoYXQgd291bGQgb3JkaW5hcmlseSBoYXZlIHdlbGwta25vd24gdmFsdWVzOgogLy8g
LSB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIKIC8vIC0gdGFnTWFza1JlZ2lzdGVyCi0vLyAtIGNhbGxG
cmFtZVJlZ2lzdGVyICoqCi0vLwotLy8gV2UgY3VycmVudGx5IG9ubHkgdXNlIHRoZSBjYWxsRnJh
bWVSZWdpc3RlciBmb3IgY2xvc3VyZSBjYWxsIHBhdGNoaW5nLCBhbmQgd2UncmUgbm90IGdvaW5n
IHRvCi0vLyBnaXZlIHRoZSBGVEwgY2xvc3VyZSBjYWxsIHBhdGNoaW5nIHN1cHBvcnQgdW50aWwg
d2Ugc3dpdGNoIHRvIHRoZSBDIHN0YWNrIC0gYnV0IHdoZW4gd2UgZG8gdGhhdCwKLS8vIGNhbGxG
cmFtZVJlZ2lzdGVyIHdpbGwgZGlzYXBwZWFyLgogCiBzdGF0aWMgRnVuY3Rpb25QdHIgcmVhZENh
bGxUYXJnZXQoUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlciwgQ29kZUxvY2F0aW9uQ2FsbCBj
YWxsKQogewpAQCAtMjk4LDIzICsyOTMsMjMgQEAgc3RhdGljIFByb3RvQ2hhaW5HZW5lcmF0aW9u
UmVzdWx0IGdlbmVyYQogI2VuZGlmCiAgICAgICAgIH0KICAgICB9CisKICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBvcGVyYXRpb25DYWxsOwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGhhbmRs
ZXJDYWxsOwogICAgIEZ1bmN0aW9uUHRyIG9wZXJhdGlvbkZ1bmN0aW9uOwogICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIHN1Y2Nlc3MsIGZhaWw7CiAgICAgaWYgKGlzQWNjZXNzb3IpIHsKLSAgICAg
ICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5m
by5wYXRjaC5jYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxl
R2V0dGVyKCkpIHsKLSAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1l
UmVnaXN0ZXIsIHNjcmF0Y2hHUFIsIHJlc3VsdEdQUik7CisgICAgICAgICAgICBzdHViSml0LnNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShzY3JhdGNoR1BSLCByZXN1bHRHUFIpOwogICAgICAg
ICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBvcGVyYXRpb25DYWxsR2V0dGVyOwogICAgICAgICB9
IGVsc2UgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICAvLyBFbmNvZGVkSlNWYWx1
ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICAgICAgICAgIHN0dWJK
aXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tUHRyKHByb3RvT2JqZWN0KSwgc2NyYXRjaEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpOworICAgICAgICAgICAgc3R1YkppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJv
dG9PYmplY3QpLCBzY3JhdGNoR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm9w
ZXJ0eU5hbWUuaW1wbCgpKSk7CiAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IEZ1bmN0
aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpOwogI2Vsc2UKICAgICAgICAgICAgIHN0dWJKaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm90b09iamVjdCksIHNjcmF0Y2hH
UFIpOwotICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3Rl
ciwgc2NyYXRjaEdQUiwKKyAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKHNjcmF0Y2hHUFIsCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW1QdHIoRnVuY3Rpb25QdHIoc2xvdC5jdXN0b21HZXR0ZXIoKSkuZXhlY3V0YWJsZUFkZHJl
c3MoKSksCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJv
cGVydHlOYW1lLmltcGwoKSkpOwogICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBvcGVy
YXRpb25DYWxsQ3VzdG9tR2V0dGVyOwpAQCAtMzUwLDkgKzM0NSwxMCBAQCBzdGF0aWMgUHJvdG9D
aGFpbkdlbmVyYXRpb25SZXN1bHQgZ2VuZXJhCiAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsob3Bl
cmF0aW9uQ2FsbCwgb3BlcmF0aW9uRnVuY3Rpb24pOwogICAgICAgICBwYXRjaEJ1ZmZlci5saW5r
KGhhbmRsZXJDYWxsLCBsb29rdXBFeGNlcHRpb25IYW5kbGVyKTsKICAgICB9Ci0gICAgc3R1YlJv
dXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdfU1RVQigKLSAgICAgICAgcGF0Y2hCdWZmZXIs
Ci0gICAgICAgICgiREZHIHByb3RvdHlwZSBjaGFpbiBhY2Nlc3Mgc3R1YiBmb3IgJXMsIHJldHVy
biBwb2ludCAlcCIsCisgICAgCisgICAgc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9T
VFVCKAorICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisgICAgICAgICgi
UHJvdG90eXBlIGNoYWluIGFjY2VzcyBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKICAg
ICAgICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwgc3VjY2Vzc0xh
YmVsLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKICAgICByZXR1cm4gUHJvdG9DaGFpbkdlbmVyYXRp
b25TdWNjZWVkZWQ7CiB9CkBAIC00MTIsOSArNDA4LDkgQEAgc3RhdGljIGJvb2wgdHJ5Q2FjaGVH
ZXRCeUlEKEV4ZWNTdGF0ZSogZQogICAgICAgICAKICAgICAgICAgbGlua1Jlc3RvcmVTY3JhdGNo
KHBhdGNoQnVmZmVyLCBuZWVkVG9SZXN0b3JlU2NyYXRjaCwgc3R1YkluZm8sIHN1Y2Nlc3MsIGZh
aWwsIGZhaWx1cmVDYXNlcyk7CiAgICAgICAgIAotICAgICAgICBzdHViSW5mby5zdHViUm91dGlu
ZSA9IEZJTkFMSVpFX0NPREVfRk9SX0RGR19TVFVCKAotICAgICAgICAgICAgcGF0Y2hCdWZmZXIs
Ci0gICAgICAgICAgICAoIkRGRyBHZXRCeUlkIGFycmF5IGxlbmd0aCBzdHViIGZvciAlcywgcmV0
dXJuIHBvaW50ICVwIiwKKyAgICAgICAgc3R1YkluZm8uc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9D
T0RFX0ZPUl9TVFVCKAorICAgICAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVy
LAorICAgICAgICAgICAgKCJHZXRCeUlkIGFycmF5IGxlbmd0aCBzdHViIGZvciAlcywgcmV0dXJu
IHBvaW50ICVwIiwKICAgICAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9jaygp
KS5kYXRhKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KAogICAg
ICAgICAgICAgICAgICAgICBzdHViSW5mby5wYXRjaC5kZWx0YUNhbGxUb0RvbmUpLmV4ZWN1dGFi
bGVBZGRyZXNzKCkpKTsKICAgICAgICAgCkBAIC01NzIsNyArNTY4LDYgQEAgc3RhdGljIGJvb2wg
dHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdAogICAgICAgICAKICAgICAgICAgc3R1YkluZm8u
dS5nZXRCeUlkU2VsZkxpc3QubGlzdFNpemUrKzsKICAgICAgICAgCi0gICAgICAgIEdQUlJlZyBj
YWxsRnJhbWVSZWdpc3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guY2Fs
bEZyYW1lUmVnaXN0ZXIpOwogICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IHN0YXRpY19jYXN0PEdQ
UlJlZz4oc3R1YkluZm8ucGF0Y2guYmFzZUdQUik7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAg
ICAgICAgR1BSUmVnIHJlc3VsdFRhZ0dQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8u
cGF0Y2gudmFsdWVUYWdHUFIpOwpAQCAtNTk2LDYgKzU5MSwxMCBAQCBzdGF0aWMgYm9vbCB0cnlC
dWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHN1
Y2Nlc3M7CiAgICAgICAgIAogICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUdldHRlcigpIHx8
IHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSkgeworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
Y29kZSBzaG91bGRuJ3QgYmUgYXNzdW1pbmcgdGhhdCB0aGUgdG9wIG9mIHN0YWNrIGlzIHNldCB1
cCBmb3IgSlNDCisgICAgICAgICAgICAvLyBKSVQtc3R5bGUgQyBjYWxscywgc2luY2Ugd2UgbWF5
IGJlIGN1cnJlbnRseSBvbiB0b3Agb2YgYW4gRlRMIGZyYW1lLgorICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTcxMQorICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUdldHRlcigpKSB7CiAgICAgICAgICAg
ICAgICAgQVNTRVJUKHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZyk7CiAgICAgICAgICAgICAg
ICAgQVNTRVJUKGJhc2VHUFIgIT0gc2NyYXRjaEdQUik7CkBAIC02MTMsMTYgKzYxMiwxNiBAQCBz
dGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAgICAgICAgICAgICAgICAg
ICAgIHN0dWJKaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIG9m
ZnNldFJlbGF0aXZlVG9CYXNlKHNsb3QuY2FjaGVkT2Zmc2V0KCkpKSwgc2NyYXRjaEdQUik7CiAj
ZW5kaWYKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFy
Z3VtZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgYmFzZUdQUiwgc2NyYXRjaEdQUik7CisgICAgICAg
ICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQUiwgc2Ny
YXRjaEdQUik7CiAgICAgICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBvcGVyYXRpb25D
YWxsR2V0dGVyOwogICAgICAgICAgICAgfSBlbHNlIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAg
ICAgICAgICAgICAgIC8vIEVuY29kZWRKU1ZhbHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwotICAgICAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZy
YW1lUmVnaXN0ZXIsIGJhc2VHUFIsIGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKGlkZW50LmltcGwoKSkpOworICAgICAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIsIGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKGlkZW50LmltcGwoKSkpOwogICAgICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9u
ID0gRnVuY3Rpb25QdHIoc2xvdC5jdXN0b21HZXR0ZXIoKSk7CiAjZWxzZQotICAgICAgICAgICAg
ICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoCi0gICAgICAgICAgICAgICAgICAgIGNhbGxGcmFt
ZVJlZ2lzdGVyLCBiYXNlR1BSLAorICAgICAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKAorICAgICAgICAgICAgICAgICAgICBiYXNlR1BSLAogICAgICAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihGdW5jdGlvblB0cihzbG90
LmN1c3RvbUdldHRlcigpKS5leGVjdXRhYmxlQWRkcmVzcygpKSwKICAgICAgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CiAgICAgICAg
ICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBvcGVyYXRpb25DYWxsQ3VzdG9tR2V0dGVyOwpA
QCAtNjQ0LDcgKzY0Myw3IEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0
YXQKICNlbmRpZgogICAgICAgICAgICAgc3VjY2VzcyA9IHN0dWJKaXQuZW1pdEV4Y2VwdGlvbkNo
ZWNrKENDYWxsSGVscGVyczo6SW52ZXJ0ZWRFeGNlcHRpb25DaGVjayk7CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKKyAgICAgICAg
ICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZt
KSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgICAgICAgICAgaGFuZGxlckNhbGwg
PSBzdHViSml0LmNhbGwoKTsKICAgICAgICAgICAgIHN0dWJKaXQuanVtcFRvRXhjZXB0aW9uSGFu
ZGxlcigpOwogICAgICAgICB9IGVsc2UgewpAQCAtNjg0LDkgKzY4Myw5IEBAIHN0YXRpYyBib29s
IHRyeUJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXQKICAgICAgICAgCiAgICAgICAgIFJlZlB0cjxK
SVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmUgPQogICAgICAgICAgICAgY3JlYXRlSklUU3R1YlJv
dXRpbmUoCi0gICAgICAgICAgICAgICAgRklOQUxJWkVfREZHX0NPREUoCi0gICAgICAgICAgICAg
ICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAoIkRGRyBHZXRCeUlkIHBv
bHltb3JwaGljIGxpc3QgYWNjZXNzIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICAgICAg
ICAgICAgICBGSU5BTElaRV9DT0RFX0ZPUigKKyAgICAgICAgICAgICAgICAgICAgZXhlYy0+Y29k
ZUJsb2NrKCksIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAoIkdldEJ5SWQgcG9s
eW1vcnBoaWMgbGlzdCBhY2Nlc3MgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgdG9DU3RyaW5nKCpleGVjLT5jb2RlQmxvY2soKSkuZGF0YSgpLCBzdHVi
SW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldCgKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHViSW5mby5wYXRjaC5kZWx0YUNhbGxUb0RvbmUpLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpKSwKICAgICAgICAgICAgICAgICAqdm0sCkBAIC03NzUsNyArNzc0LDcgQEAgc3RhdGlj
IFZfSklUT3BlcmF0aW9uX0VTc2lKSkkgYXBwcm9wcmlhdAogfQogCiAjaWYgRU5BQkxFKEdHQykK
LXN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKEND
YWxsSGVscGVycyYgaml0LCBHUFJSZWcgY2VsbCwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2Ny
YXRjaDIsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9y
JiBhbGxvY2F0b3IpCitzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgc3RvcmVUb1dyaXRlQmFy
cmllckJ1ZmZlcihDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVnIGNlbGwsIEdQUlJlZyBzY3JhdGNo
MSwgR1BSUmVnIHNjcmF0Y2gyLCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3ImIGFsbG9jYXRvcikK
IHsKICAgICBBU1NFUlQoc2NyYXRjaDEgIT0gc2NyYXRjaDIpOwogICAgIFdyaXRlQmFycmllckJ1
ZmZlciogd3JpdGVCYXJyaWVyQnVmZmVyID0gJmppdC52bSgpLT5oZWFwLndyaXRlQmFycmllckJ1
ZmZlcigpOwpAQCAtODA4LDcgKzgwNyw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBz
dG9yZVRvV3JpdGUKICAgICBpZiAoYnl0ZXNUb1N1YnRyYWN0KQogICAgICAgICBqaXQuc3ViUHRy
KE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoYnl0ZXNUb1N1YnRyYWN0KSwgTWFjcm9Bc3Nl
bWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgCiAKLSAgICBqaXQuc2V0dXBBcmd1bWVudHMo
Y2FsbEZyYW1lUmVnaXN0ZXIsIGNlbGwpOworICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoY2VsbCk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IGppdC5jYWxsKCk7
CiAKICAgICBpZiAoYnl0ZXNUb1N1YnRyYWN0KQpAQCAtODIwLDEzICs4MTksMTMgQEAgc3RhdGlj
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0ZQogICAgIHJldHVybiBjYWxsOwogfQog
Ci1zdGF0aWMgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyKENDYWxsSGVscGVycyYg
aml0LCBHUFJSZWcgb3duZXIsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyLCBHUFJS
ZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciYgYWxsb2NhdG9y
KQorc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdyaXRlQmFycmllcihDQ2FsbEhlbHBlcnMm
IGppdCwgR1BSUmVnIG93bmVyLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwgU2Ny
YXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBhbGxvY2F0b3IpCiB7CiAgICAgQVNTRVJUKG93bmVyICE9
IHNjcmF0Y2gxKTsKICAgICBBU1NFUlQob3duZXIgIT0gc2NyYXRjaDIpOwogCiAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgZGVmaW5pdGVseU5vdE1hcmtlZCA9IERGRzo6U3BlY3VsYXRpdmVKSVQ6
OmdlbmVyaWNXcml0ZUJhcnJpZXIoaml0LCBvd25lciwgc2NyYXRjaDEsIHNjcmF0Y2gyKTsKLSAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gc3RvcmVUb1dyaXRlQmFycmllckJ1ZmZlcihq
aXQsIG93bmVyLCBzY3JhdGNoMSwgc2NyYXRjaDIsIGNhbGxGcmFtZVJlZ2lzdGVyLCBhbGxvY2F0
b3IpOworICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBzdG9yZVRvV3JpdGVCYXJyaWVy
QnVmZmVyKGppdCwgb3duZXIsIHNjcmF0Y2gxLCBzY3JhdGNoMiwgYWxsb2NhdG9yKTsKICAgICBk
ZWZpbml0ZWx5Tm90TWFya2VkLmxpbmsoJmppdCk7CiAgICAgcmV0dXJuIGNhbGw7CiB9CkBAIC04
NDQsOSArODQzLDYgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFJlcGxhY2VTdHViKAogICAgIFJlZlB0
cjxKSVRTdHViUm91dGluZT4mIHN0dWJSb3V0aW5lKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52
bSgpOwotI2lmIEVOQUJMRShHR0MpCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gc3Rh
dGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5jYWxsRnJhbWVSZWdpc3Rlcik7Ci0jZW5k
aWYKICAgICBHUFJSZWcgYmFzZUdQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0
Y2guYmFzZUdQUik7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBHUFJSZWcgdmFsdWVUYWdH
UFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLnZhbHVlVGFnR1BSKTsKQEAg
LTg5Myw3ICs4ODksNyBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0UmVwbGFjZVN0dWIoCiAjZW5kaWYK
ICAgICAKICNpZiBFTkFCTEUoR0dDKQotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdyaXRlQmFy
cmllck9wZXJhdGlvbiA9IHdyaXRlQmFycmllcihzdHViSml0LCBiYXNlR1BSLCBzY3JhdGNoR1BS
MSwgc2NyYXRjaEdQUjIsIGNhbGxGcmFtZVJlZ2lzdGVyLCBhbGxvY2F0b3IpOworICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIHdyaXRlQmFycmllck9wZXJhdGlvbiA9IHdyaXRlQmFycmllcihzdHVi
Sml0LCBiYXNlR1BSLCBzY3JhdGNoR1BSMSwgc2NyYXRjaEdQUjIsIGFsbG9jYXRvcik7CiAjZW5k
aWYKICAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzOwpAQCAtOTE4LDkgKzkx
NCw5IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRSZXBsYWNlU3R1YigKICAgICBwYXRjaEJ1ZmZlci5s
aW5rKHN1Y2Nlc3MsIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KHN0
dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkpOwogICAgIHBhdGNoQnVmZmVyLmxpbmsoZmFp
bHVyZSwgZmFpbHVyZUxhYmVsKTsKICAgICAgICAgICAgIAotICAgIHN0dWJSb3V0aW5lID0gRklO
QUxJWkVfQ09ERV9GT1JfREZHX1NUVUIoCi0gICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAo
IkRGRyBQdXRCeUlkIHJlcGxhY2Ugc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCisgICAg
c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICBleGVjLT5jb2Rl
QmxvY2soKSwgcGF0Y2hCdWZmZXIsCisgICAgICAgICgiUHV0QnlJZCByZXBsYWNlIHN0dWIgZm9y
ICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgdG9DU3RyaW5nKCpleGVjLT5jb2Rl
QmxvY2soKSkuZGF0YSgpLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNl
dCgKICAgICAgICAgICAgICAgICBzdHViSW5mby5wYXRjaC5kZWx0YUNhbGxUb0RvbmUpLmV4ZWN1
dGFibGVBZGRyZXNzKCkpKTsKIH0KQEAgLTk0MCw3ICs5MzYsNiBAQCBzdGF0aWMgdm9pZCBlbWl0
UHV0VHJhbnNpdGlvblN0dWIoCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAKLSAgICBH
UFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBh
dGNoLmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBHUFJSZWcgYmFzZUdQUiA9IHN0YXRpY19jYXN0
PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guYmFzZUdQUik7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkK
ICAgICBHUFJSZWcgdmFsdWVUYWdHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBh
dGNoLnZhbHVlVGFnR1BSKTsKQEAgLTEwNjAsNyArMTA1NSw3IEBAIHN0YXRpYyB2b2lkIGVtaXRQ
dXRUcmFuc2l0aW9uU3R1YigKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShHR0MpCi0gICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyT3BlcmF0aW9uID0gd3JpdGVCYXJyaWVyKHN0
dWJKaXQsIGJhc2VHUFIsIHNjcmF0Y2hHUFIxLCBzY3JhdGNoR1BSMiwgY2FsbEZyYW1lUmVnaXN0
ZXIsIGFsbG9jYXRvcik7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyT3Bl
cmF0aW9uID0gd3JpdGVCYXJyaWVyKHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0Y2hHUFIxLCBzY3Jh
dGNoR1BSMiwgYWxsb2NhdG9yKTsKICNlbmRpZgogICAgIAogICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wIHN1Y2Nlc3M7CkBAIC0xMDg2LDkgKzEwODEsOSBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0VHJh
bnNpdGlvblN0dWIoCiAgICAgICAgIFNjcmF0Y2hCdWZmZXIqIHNjcmF0Y2hCdWZmZXIgPSB2bS0+
c2NyYXRjaEJ1ZmZlckZvclNpemUoYWxsb2NhdG9yLmRlc2lyZWRTY3JhdGNoQnVmZmVyU2l6ZSgp
KTsKICAgICAgICAgYWxsb2NhdG9yLnByZXNlcnZlVXNlZFJlZ2lzdGVyc1RvU2NyYXRjaEJ1ZmZl
cihzdHViSml0LCBzY3JhdGNoQnVmZmVyLCBzY3JhdGNoR1BSMSk7CiAjaWYgVVNFKEpTVkFMVUU2
NCkKLSAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgYmFz
ZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSwgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMihzbG90LmNhY2hlZE9mZnNldCgpKSwgdmFsdWVHUFIpOworICAg
ICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShiYXNlR1BSLCBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKHNsb3QuY2FjaGVkT2Zmc2V0KCkpLCB2YWx1ZUdQUik7CiAjZWxzZQotICAgICAgICBz
dHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKHNsb3QuY2FjaGVkT2Zmc2V0KCkpLCB2YWx1ZUdQUiwgdmFsdWVUYWdHUFIpOworICAg
ICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShiYXNlR1BSLCBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKHNsb3QuY2FjaGVkT2Zmc2V0KCkpLCB2YWx1ZUdQUiwgdmFsdWVUYWdHUFIpOwogI2Vu
ZGlmCiAgICAgICAgIG9wZXJhdGlvbkNhbGwgPSBzdHViSml0LmNhbGwoKTsKICAgICAgICAgYWxs
b2NhdG9yLnJlc3RvcmVVc2VkUmVnaXN0ZXJzRnJvbVNjcmF0Y2hCdWZmZXIoc3R1YkppdCwgc2Ny
YXRjaEJ1ZmZlciwgc2NyYXRjaEdQUjEpOwpAQCAtMTExMSw5ICsxMTA2LDkgQEAgc3RhdGljIHZv
aWQgZW1pdFB1dFRyYW5zaXRpb25TdHViKAogICAgIAogICAgIHN0dWJSb3V0aW5lID0KICAgICAg
ICAgY3JlYXRlSklUU3R1YlJvdXRpbmUoCi0gICAgICAgICAgICBGSU5BTElaRV9ERkdfQ09ERSgK
LSAgICAgICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgICAgICAgICAoIkRGRyBQdXRC
eUlkICVzdHJhbnNpdGlvbiBzdHViICglcCAtPiAlcCkgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAi
LAorICAgICAgICAgICAgRklOQUxJWkVfQ09ERV9GT1IoCisgICAgICAgICAgICAgICAgZXhlYy0+
Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAgICAgICgiUHV0QnlJZCAlc3Ry
YW5zaXRpb24gc3R1YiAoJXAgLT4gJXApIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKICAgICAg
ICAgICAgICAgICAgICAgc3RydWN0dXJlLT5vdXRPZkxpbmVDYXBhY2l0eSgpICE9IG9sZFN0cnVj
dHVyZS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSA/ICJyZWFsbG9jYXRpbmcgIiA6ICIiLAogICAgICAg
ICAgICAgICAgICAgICBvbGRTdHJ1Y3R1cmUsIHN0cnVjdHVyZSwKICAgICAgICAgICAgICAgICAg
ICAgdG9DU3RyaW5nKCpleGVjLT5jb2RlQmxvY2soKSkuZGF0YSgpLCBzdHViSW5mby5jYWxsUmV0
dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldCgKQEAgLTEzOTQsOSArMTM4OSw5IEBAIHN0YXRpYyBi
b29sIHRyeVJlcGF0Y2hJbigKIAogICAgICAgICBsaW5rUmVzdG9yZVNjcmF0Y2gocGF0Y2hCdWZm
ZXIsIG5lZWRUb1Jlc3RvcmVTY3JhdGNoLCBzdWNjZXNzLCBmYWlsLCBmYWlsdXJlQ2FzZXMsIHN1
Y2Nlc3NMYWJlbCwgc2xvd0Nhc2VMYWJlbCk7CiAgICAgICAgIAotICAgICAgICBzdHViUm91dGlu
ZSA9IEZJTkFMSVpFX0NPREVfRk9SX0RGR19TVFVCKAotICAgICAgICAgICAgcGF0Y2hCdWZmZXIs
Ci0gICAgICAgICAgICAoIkRGRyBJbiAoZm91bmQgPSAlcykgc3R1YiBmb3IgJXMsIHJldHVybiBw
b2ludCAlcCIsCisgICAgICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigK
KyAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAg
ICgiSW4gKGZvdW5kID0gJXMpIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAg
ICAgICAgICAgIHdhc0ZvdW5kID8gInllcyIgOiAibm8iLCB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVC
bG9jaygpKS5kYXRhKCksCiAgICAgICAgICAgICAgICAgc3VjY2Vzc0xhYmVsLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpKTsKICAgICB9CkBAIC0xNDE5LDE3ICsxNDE0LDE5IEBAIHZvaWQgcmVwYXRjaElu
KAogICAgIHJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5jYWxsUmV0dXJu
TG9jYXRpb24sIG9wZXJhdGlvbkluKTsKIH0KIAotc3RhdGljIHZvaWQgbGlua1Nsb3dGb3IoUmVw
YXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlciwgVk0qIHZtLCBDYWxsTGlua0luZm8mIGNhbGxMaW5r
SW5mbywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQorc3RhdGljIHZvaWQgbGlua1Nsb3dG
b3IoCisgICAgUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlciwgVk0qIHZtLCBDYWxsTGlua0lu
Zm8mIGNhbGxMaW5rSW5mbywKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7Ci0gICAgaWYgKGtpbmQgPT0gQ29kZUZv
ckNhbGwpIHsKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLmNhbGxS
ZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvciku
Y29kZSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBBU1NFUlQoa2luZCA9PSBDb2Rl
Rm9yQ29uc3RydWN0KTsKLSAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8uY2Fs
bFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ29uc3RydWN0VGh1bmtHZW5l
cmF0b3IpLmNvZGUoKSk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoCisgICAgICAgIGNhbGxM
aW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sCisgICAgICAgIHZtLT5nZXRDVElTdHViKHZpcnR1
YWxUaHVua0dlbmVyYXRvckZvcihraW5kLCByZWdpc3RlcnMpKS5jb2RlKCkpOwogfQogCi12b2lk
IGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29k
ZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGNvZGVQdHIsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK3ZvaWQgbGlu
a0ZvcigKKyAgICBFeGVjU3RhdGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBD
b2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywKKyAgICBKU0Z1bmN0aW9uKiBjYWxsZWUsIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsCisg
ICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBBU1NFUlQoIWNh
bGxMaW5rSW5mby5zdHViKTsKICAgICAKQEAgLTE0NDUsMzEgKzE0NDIsMzggQEAgdm9pZCBsaW5r
Rm9yKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbgogICAgIEFTU0VSVCghY2FsbExpbmtJbmZv
LmlzTGlua2VkKCkpOwogICAgIGNhbGxMaW5rSW5mby5jYWxsZWUuc2V0KGV4ZWMtPmNhbGxlckZy
YW1lKCktPnZtKCksIGNhbGxMaW5rSW5mby5ob3RQYXRoQmVnaW4sIGNhbGxlckNvZGVCbG9jay0+
b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7CiAgICAgY2FsbExpbmtJbmZvLmxhc3RTZWVuQ2Fs
bGVlLnNldChleGVjLT5jYWxsZXJGcmFtZSgpLT52bSgpLCBjYWxsZXJDb2RlQmxvY2stPm93bmVy
RXhlY3V0YWJsZSgpLCBjYWxsZWUpOworICAgIGlmIChzaG91bGRTaG93RGlzYXNzZW1ibHlGb3Io
Y2FsbGVyQ29kZUJsb2NrKSkKKyAgICAgICAgZGF0YUxvZygiTGlua2luZyBjYWxsIGluICIsICpj
YWxsZXJDb2RlQmxvY2ssICIgYXQgIiwgY2FsbExpbmtJbmZvLmNvZGVPcmlnaW4sICIgdG8gIiwg
cG9pbnRlckR1bXAoY2FsbGVlQ29kZUJsb2NrKSwgIiwgZW50cnlwb2ludCBhdCAiLCBjb2RlUHRy
LCAiXG4iKTsKICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8uaG90UGF0aE90
aGVyLCBjb2RlUHRyKTsKICAgICAKICAgICBpZiAoY2FsbGVlQ29kZUJsb2NrKQogICAgICAgICBj
YWxsZWVDb2RlQmxvY2stPmxpbmtJbmNvbWluZ0NhbGwoZXhlYy0+Y2FsbGVyRnJhbWUoKSwgJmNh
bGxMaW5rSW5mbyk7CiAgICAgCiAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpIHsKLSAgICAg
ICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwg
dm0tPmdldENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7Cisg
ICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRp
b24sIHZtLT5nZXRDVElTdHViKGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yRm9yKHJlZ2lz
dGVycykpLmNvZGUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgQVNTRVJU
KGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZl
ciwgdm0sIGNhbGxMaW5rSW5mbywgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgbGlua1Nsb3dGb3Io
cmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywgQ29kZUZvckNvbnN0cnVjdCwgcmVnaXN0
ZXJzKTsKIH0KIAotdm9pZCBsaW5rU2xvd0ZvcihFeGVjU3RhdGUqIGV4ZWMsIENhbGxMaW5rSW5m
byYgY2FsbExpbmtJbmZvLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCit2b2lkIGxpbmtT
bG93Rm9yKAorICAgIEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8s
IENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwKKyAgICBSZWdpc3RlclByZXNlcnZhdGlvbk1v
ZGUgcmVnaXN0ZXJzKQogewogICAgIENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrID0gZXhlYy0+
Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCk7CiAgICAgVk0qIHZtID0gY2FsbGVyQ29kZUJsb2Nr
LT52bSgpOwogICAgIAogICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjYWxsZXJDb2Rl
QmxvY2spOwogICAgIAotICAgIGxpbmtTbG93Rm9yKHJlcGF0Y2hCdWZmZXIsIHZtLCBjYWxsTGlu
a0luZm8sIGtpbmQpOworICAgIGxpbmtTbG93Rm9yKHJlcGF0Y2hCdWZmZXIsIHZtLCBjYWxsTGlu
a0luZm8sIGtpbmQsIHJlZ2lzdGVycyk7CiB9CiAKLXZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNT
dGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsbGVl
Q29kZUJsb2NrLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFi
bGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyKQordm9pZCBsaW5rQ2xvc3VyZUNhbGwo
CisgICAgRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZUJs
b2NrKiBjYWxsZWVDb2RlQmxvY2ssCisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEV4ZWN1dGFi
bGVCYXNlKiBleGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciwKKyAgICBS
ZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIEFTU0VSVCghY2FsbExp
bmtJbmZvLnN0dWIpOwogICAgIApAQCAtMTQ4Miw2ICsxNDg2LDE1IEBAIHZvaWQgbGlua0Nsb3N1
cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2EKICAgICAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBM
aXN0IHNsb3dQYXRoOwogICAgIAorICAgIHB0cmRpZmZfdCBvZmZzZXRUb0ZyYW1lID0gLXNpemVv
ZihDYWxsZXJGcmFtZUFuZFBDKTsKKworICAgIGlmICghQVNTRVJUX0RJU0FCTEVEKSB7CisgICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcCBva0FyZ3VtZW50Q291bnQgPSBzdHViSml0LmJyYW5jaDMy
KAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpCZWxvdywgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZf
dD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpICsgb2Zmc2V0VG9G
cmFtZSArIFBheWxvYWRPZmZzZXQpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxMDAwMDAw
MCkpOworICAgICAgICBzdHViSml0LmJyZWFrcG9pbnQoKTsKKyAgICAgICAgb2tBcmd1bWVudENv
dW50LmxpbmsoJnN0dWJKaXQpOworICAgIH0KKwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgLy8g
V2UgY2FuIHNhZmVseSBjbG9iYmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBjYWxsZWVHUFIuIFdl
IGNhbid0IHJlbHkgb24gdGFnTWFza1JlZ2lzdGVyCiAgICAgLy8gYmVpbmcgc2V0LiBTbyB3ZSBk
byB0aGlzIHRoZSBoYXJkIHdheS4KQEAgLTE1MDcsMTggKzE1MjAsMTggQEAgdm9pZCBsaW5rQ2xv
c3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYQogICAgIHN0dWJKaXQubG9hZFB0cigKICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGNhbGxlZUdQUiwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZT
Y29wZUNoYWluKCkpLAogICAgICAgICBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0KKyAgICAK
ICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHN0dWJKaXQuc3RvcmU2NCgKICAgICAgICAgR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIsCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0
ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikpKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRy
ZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBvZmZzZXRU
b0ZyYW1lKSk7CiAjZWxzZQogICAgIHN0dWJKaXQuc3RvcmVQdHIoCiAgICAgICAgIEdQUkluZm86
OnJldHVyblZhbHVlR1BSLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVy
KSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURl
c2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOworICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSArIE9CSkVDVF9P
RkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkgKyBvZmZzZXRU
b0ZyYW1lKSk7CiAgICAgc3R1YkppdC5zdG9yZTMyKAogICAgICAgICBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNp
emVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSArIE9CSkVDVF9PRkZTRVRPRihF
bmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzdGF0aWNf
Y2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSAr
IE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSArIG9m
ZnNldFRvRnJhbWUpKTsKICNlbmRpZgogICAgIAogICAgIEFzc2VtYmx5SGVscGVyczo6Q2FsbCBj
YWxsID0gc3R1YkppdC5uZWFyQ2FsbCgpOwpAQCAtMTUyOSwyMCArMTU0MiwyNCBAQCB2b2lkIGxp
bmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIENhCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkK
ICAgICBzdHViSml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZyksIEdQUkluZm86OnJlZ1QxKTsKICNlbmRpZgotICAgIHN0dWJKaXQubW92ZShDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW1QdHIoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5leGVj
dXRhYmxlQWRkcmVzcygpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMik7Ci0gICAgc3R1YkppdC5yZXN0
b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpub25BcmdHUFIyKTsKKyAgICBz
dHViSml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGNhbGxMaW5rSW5mby5jYWxs
UmV0dXJuTG9jYXRpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSksIEdQUkluZm86OnJlZ1QyKTsKKyAg
ICAKKyAgICBzdHViSml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86
OnJlZ1QyKTsKICAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAgc2xvdyA9IHN0dWJKaXQuanVtcCgp
OwogICAgIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmc3R1YkppdCwgY2FsbGVy
Q29kZUJsb2NrKTsKICAgICAKICAgICBwYXRjaEJ1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9uUHRy
KGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwotICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9u
ZSwgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KDApKTsKLSAg
ICBwYXRjaEJ1ZmZlci5saW5rKHNsb3csIENvZGVMb2NhdGlvbkxhYmVsKHZtLT5nZXRDVElTdHVi
KHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSkpOworICAgIGlmIChKSVRDb2RlOjpp
c09wdGltaXppbmdKSVQoY2FsbGVyQ29kZUJsb2NrLT5qaXRUeXBlKCkpKQorICAgICAgICBwYXRj
aEJ1ZmZlci5saW5rKGRvbmUsIGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxB
dE9mZnNldCgwKSk7CisgICAgZWxzZQorICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUsIGNh
bGxMaW5rSW5mby5ob3RQYXRoT3RoZXIubGFiZWxBdE9mZnNldCgwKSk7CisgICAgcGF0Y2hCdWZm
ZXIubGluayhzbG93LCBDb2RlTG9jYXRpb25MYWJlbCh2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsVGh1
bmtHZW5lcmF0b3JGb3IoQ29kZUZvckNhbGwsIHJlZ2lzdGVycykpLmNvZGUoKSkpOwogICAgIAog
ICAgIFJlZlB0cjxDbG9zdXJlQ2FsbFN0dWJSb3V0aW5lPiBzdHViUm91dGluZSA9IGFkb3B0UmVm
KG5ldyBDbG9zdXJlQ2FsbFN0dWJSb3V0aW5lKAotICAgICAgICBGSU5BTElaRV9ERkdfQ09ERSgK
LSAgICAgICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAgICAgKCJERkcgY2xvc3VyZSBjYWxs
IHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAsIHRhcmdldCAlcCAoJXMpIiwKKyAgICAgICAg
RklOQUxJWkVfQ09ERV9GT1IoCisgICAgICAgICAgICBjYWxsZXJDb2RlQmxvY2ssIHBhdGNoQnVm
ZmVyLAorICAgICAgICAgICAgKCJDbG9zdXJlIGNhbGwgc3R1YiBmb3IgJXMsIHJldHVybiBwb2lu
dCAlcCwgdGFyZ2V0ICVwICglcykiLAogICAgICAgICAgICAgICAgIHRvQ1N0cmluZygqY2FsbGVy
Q29kZUJsb2NrKS5kYXRhKCksIGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxB
dE9mZnNldCgwKS5leGVjdXRhYmxlQWRkcmVzcygpLAogICAgICAgICAgICAgICAgIGNvZGVQdHIu
ZXhlY3V0YWJsZUFkZHJlc3MoKSwgdG9DU3RyaW5nKHBvaW50ZXJEdW1wKGNhbGxlZUNvZGVCbG9j
aykpLmRhdGEoKSkpLAogICAgICAgICAqdm0sIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRh
YmxlKCksIHN0cnVjdHVyZSwgZXhlY3V0YWJsZSwgY2FsbExpbmtJbmZvLmNvZGVPcmlnaW4pKTsK
QEAgLTE1NTIsNyArMTU2OSw3IEBAIHZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhl
YywgQ2EKICAgICByZXBhdGNoQnVmZmVyLnJlcGxhY2VXaXRoSnVtcCgKICAgICAgICAgUmVwYXRj
aEJ1ZmZlcjo6c3RhcnRPZkJyYW5jaFB0cldpdGhQYXRjaE9uUmVnaXN0ZXIoY2FsbExpbmtJbmZv
LmhvdFBhdGhCZWdpbiksCiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsKHN0dWJSb3V0aW5lLT5j
b2RlKCkuY29kZSgpKSk7Ci0gICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxM
aW5rSW5mbywgQ29kZUZvckNhbGwpOworICAgIGxpbmtTbG93Rm9yKHJlcGF0Y2hCdWZmZXIsIHZt
LCBjYWxsTGlua0luZm8sIENvZGVGb3JDYWxsLCByZWdpc3RlcnMpOwogICAgIAogICAgIGNhbGxM
aW5rSW5mby5zdHViID0gc3R1YlJvdXRpbmUucmVsZWFzZSgpOwogICAgIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw5ICs0MSw5IEBA
IHZvaWQgYnVpbGRHZXRCeUlEUHJvdG9MaXN0KEV4ZWNTdGF0ZSosIEoKIHZvaWQgcmVwYXRjaFB1
dEJ5SUQoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFB1dFBy
b3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2luZCk7CiB2b2lkIGJ1aWxkUHV0
QnlJZExpc3QoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFB1
dFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2luZCk7CiB2b2lkIHJlcGF0
Y2hJbihFeGVjU3RhdGUqLCBKU0NlbGwqLCBjb25zdCBJZGVudGlmaWVyJiwgYm9vbCB3YXNGb3Vu
ZCwgY29uc3QgUHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mKTsKLXZvaWQgbGlua0Zv
cihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBKU0Z1bmN0aW9uKiBjYWxs
ZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7Ci12b2lk
IGxpbmtTbG93Rm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVTcGVjaWFsaXphdGlv
bktpbmQpOwotdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwg
Q29kZUJsb2NrKiwgU3RydWN0dXJlKiwgRXhlY3V0YWJsZUJhc2UqLCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIpOwordm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9j
ayosIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyLCBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpOwordm9pZCBsaW5rU2xvd0Zv
cihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCBSZWdp
c3RlclByZXNlcnZhdGlvbk1vZGUpOwordm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiwg
Q2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlKiwgRXhlY3V0YWJsZUJhc2UqLCBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSk7CiB2b2lkIHJl
c2V0R2V0QnlJRChSZXBhdGNoQnVmZmVyJiwgU3RydWN0dXJlU3R1YkluZm8mKTsKIHZvaWQgcmVz
ZXRQdXRCeUlEKFJlcGF0Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9pZCByZXNl
dEluKFJlcGF0Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmgJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBTcGVjaWFsaXplZFRodW5rSklUKFZNKiB2bSwgaW50IGV4cGVjdGVkQXJnQ291bnQpCiAgICAg
ICAgICAgICA6IEpTSW50ZXJmYWNlSklUKHZtKQogICAgICAgICB7CisgICAgICAgICAgICBlbWl0
RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB3ZSBoYXZlIHRo
ZSBleHBlY3RlZCBudW1iZXIgb2YgYXJndW1lbnRzCiAgICAgICAgICAgICBtX2ZhaWx1cmVzLmFw
cGVuZChicmFuY2gzMihOb3RFcXVhbCwgcGF5bG9hZEZvcihKU1N0YWNrOjpBcmd1bWVudENvdW50
KSwgVHJ1c3RlZEltbTMyKGV4cGVjdGVkQXJnQ291bnQgKyAxKSkpOwogICAgICAgICB9CkBAIC00
OCw2ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBleHBsaWNpdCBTcGVjaWFsaXpl
ZFRodW5rSklUKFZNKiB2bSkKICAgICAgICAgICAgIDogSlNJbnRlcmZhY2VKSVQodm0pCiAgICAg
ICAgIHsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIHZvaWQgbG9hZERvdWJsZUFyZ3VtZW50KGludCBhcmd1bWVudCwgRlBS
ZWdpc3RlcklEIGRzdCwgUmVnaXN0ZXJJRCBzY3JhdGNoKQpAQCAtOTcsNyArOTksNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHNyYyAhPSByZWdUMCkKICAg
ICAgICAgICAgICAgICBtb3ZlKHNyYywgcmVnVDApOwotICAgICAgICAgICAgbG9hZFB0cihBZGRy
ZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpLCBj
YWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwog
ICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KICNlbHNlCkBAIC0xMDUsNyArMTA3LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQocGF5
bG9hZCwgcGF5bG9hZCA9PSByZWdUMCk7CiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHRhZywg
dGFnID09IHJlZ1QxKTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdp
c3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIp
OworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIHJldCgp
OwogICAgICAgICB9CiAjZW5kaWYKQEAgLTEzNiw3ICsxMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgICAgIGxvd05vblplcm8ubGluayh0aGlzKTsKICAgICAgICAgICAgIGhpZ2hOb25a
ZXJvLmxpbmsodGhpcyk7CiAjZW5kaWYKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxs
RnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1l
UmVnaXN0ZXIpOworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAg
ICAgIHJldCgpOwogICAgICAgICB9CiAKQEAgLTE0NSw3ICsxNDcsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAgICAgICAgICAgICAgICAgbW92ZShz
cmMsIHJlZ1QwKTsKICAgICAgICAgICAgIHRhZ1JldHVybkFzSW50MzIoKTsKLSAgICAgICAgICAg
IGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFt
ZU9mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgICAgICAgICAgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKICAgICAgICAgICAgIHJldCgpOwogICAgICAgICB9CiAKQEAgLTE1NCw3ICsx
NTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAg
ICAgICAgICAgICAgICAgbW92ZShzcmMsIHJlZ1QwKTsKICAgICAgICAgICAgIHRhZ1JldHVybkFz
SlNDZWxsKCk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIs
IENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAg
ICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQoKTsKICAg
ICAgICAgfQogICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtH
ZW5lcmF0b3JzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Ro
dW5rR2VuZXJhdG9ycy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyLCAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRl
ICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1N0YWNrLmgiCisjaW5jbHVkZSAiTWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSAiU3BlY2lhbGl6ZWRUaHVua0pJVC5oIgogI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00u
aD4KQEAgLTY2LDEwICs2Nyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB0aHJvd0V4Y2VwdGlv
bkZyb20KICAgICAvLyBldmVuIHRob3VnaCB3ZSB3b24ndCB1c2UgaXQuCiAgICAgaml0LnByZXNl
cnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5H
UFIpOwogCi0gICAgLy8gVGhlIENhbGxGcmFtZSByZWdpc3RlciBwb2ludHMgdG8gdGhlIChmYWls
ZWQpIGNhbGxlZSBmcmFtZSwgc28gd2UgbmVlZCB0byBwb3AgYmFjayBvbmUgZnJhbWUuCi0gICAg
aml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIpOwotCi0gICAgaml0LnNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7Cisg
ICAgaml0LnNldHVwQXJndW1lbnRzKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2bSksIEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoYml0d2lzZV9jYXN0PHZvaWQqPihsb29rdXBFeGNlcHRpb25IYW5kbGVyKSks
IEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQ
UkluZm86Om5vbkFyZ0dQUjApOwogICAgIGppdC5jYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOwpA
QCAtODIsMjkgKzgwLDI4IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB0aHJvd0V4Y2VwdGlvbkZy
b20KIHN0YXRpYyB2b2lkIHNsb3dQYXRoRm9yKAogICAgIENDYWxsSGVscGVycyYgaml0LCBWTSog
dm0sIFBfSklUT3BlcmF0aW9uX0Ugc2xvd1BhdGhGdW5jdGlvbikKIHsKLSAgICBqaXQucHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86Om5vbkFyZ0dQUjIpOwotICAgIGVtaXRQ
b2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86Om5vbkFyZ0dQUjIpOwotICAgIGppdC5lbWl0
UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjpub25BcmdHUFIyKTsKKyAgICBq
aXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsICZ2bS0+dG9wQ2FsbEZyYW1lKTsKKyAgICBpZiAobWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgaml0LnNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7
CiAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJpdHdpc2VfY2FzdDx2
b2lkKj4oc2xvd1BhdGhGdW5jdGlvbikpLCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBlbWl0
UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBqaXQuY2Fs
bChHUFJJbmZvOjpub25BcmdHUFIwKTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwpCisgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKICAgICAKICAgICAvLyBUaGlzIHNsb3cgY2FsbCB3aWxsIHJldHVybiB0aGUgYWRk
cmVzcyBvZiBvbmUgb2YgdGhlIGZvbGxvd2luZzoKICAgICAvLyAxKSBFeGNlcHRpb24gdGhyb3dp
bmcgdGh1bmsuCiAgICAgLy8gMikgSG9zdCBjYWxsIHJldHVybiB2YWx1ZSByZXR1cm5lciB0aGlu
Z3kuCiAgICAgLy8gMykgVGhlIGZ1bmN0aW9uIHRvIGNhbGwuCi0gICAgaml0LmVtaXRHZXRSZXR1
cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJu
R1BSKTsKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tUHRyKDApKTsKLSAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBH
UFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwotICAgIGppdC5yZXN0b3JlUmV0dXJu
QWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwog
ICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsK
KyAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICBqaXQuanVtcChHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUik7CiB9CiAKIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0Zv
clRodW5rR2VuZXJhdG9yKAotICAgIFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
KQorICAgIFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNl
cnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIC8vIFRoZSByZXR1cm4gYWRkcmVzcyBpcyBv
biB0aGUgc3RhY2sgb3IgaW4gdGhlIGxpbmsgcmVnaXN0ZXIuIFdlIHdpbGwgaGVuY2UKICAgICAv
LyBzYXZlIHRoZSByZXR1cm4gYWRkcmVzcyB0byB0aGUgY2FsbCBmcmFtZSB3aGlsZSB3ZSBtYWtl
IGEgQysrIGZ1bmN0aW9uIGNhbGwKQEAgLTExNCwzOCArMTExLDU5IEBAIHN0YXRpYyBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbGlua0ZvclRodW4KICAgICAKICAgICBDQ2FsbEhlbHBlcnMgaml0KHZt
KTsKICAgICAKLSAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBraW5kID09IENvZGVGb3JDYWxsID8g
b3BlcmF0aW9uTGlua0NhbGwgOiBvcGVyYXRpb25MaW5rQ29uc3RydWN0KTsKKyAgICBzbG93UGF0
aEZvcihqaXQsIHZtLCBvcGVyYXRpb25MaW5rRm9yKGtpbmQsIHJlZ2lzdGVycykpOwogICAgIAog
ICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOwog
ICAgIHJldHVybiBGSU5BTElaRV9DT0RFKAogICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAg
KCJMaW5rICVzIHNsb3cgcGF0aCB0aHVuayIsIGtpbmQgPT0gQ29kZUZvckNhbGwgPyAiY2FsbCIg
OiAiY29uc3RydWN0IikpOworICAgICAgICAoIkxpbmsgJXMlcyBzbG93IHBhdGggdGh1bmsiLCBr
aW5kID09IENvZGVGb3JDYWxsID8gImNhbGwiIDogImNvbnN0cnVjdCIsIHJlZ2lzdGVycyA9PSBN
dXN0UHJlc2VydmVSZWdpc3RlcnMgPyAiIHRoYXQgcHJlc2VydmVzIHJlZ2lzdGVycyIgOiAiIikp
OwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaHVua0dlbmVyYXRvcihWTSog
dm0pCiB7Ci0gICAgcmV0dXJuIGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwp
OworICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBSZWdp
c3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIGxpbmtG
b3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgcmV0dXJuIGxpbmtG
b3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCwgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Ob3RSZXF1aXJlZCk7CiB9CiAKLS8vIEZvciBjbG9zdXJlIG9wdGltaXphdGlvbnMsIHdlIG9u
bHkgaW5jbHVkZSBjYWxscywgc2luY2UgaWYgeW91J3JlIHVzaW5nIGNsb3N1cmVzIGZvcgotLy8g
b2JqZWN0IGNvbnN0cnVjdGlvbiB0aGVuIHlvdSdyZSBnb2luZyB0byBsb3NlIGJpZyB0aW1lIGFu
eXdheS4KLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRv
cihWTSogdm0pCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaGF0UHJlc2VydmVzUmVn
c1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJh
dG9yKHZtLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KKworTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJh
dG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2Rl
Rm9yQ29uc3RydWN0LCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitzdGF0aWMgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbEZvclRodW5rR2VuZXJhdG9yKAorICAgIFZN
KiB2bSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBDQ2FsbEhl
bHBlcnMgaml0KHZtKTsKICAgICAKLSAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBvcGVyYXRpb25M
aW5rQ2xvc3VyZUNhbGwpOworICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIG9wZXJhdGlvbkxpbmtD
bG9zdXJlQ2FsbEZvcihyZWdpc3RlcnMpKTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVm
ZmVyKCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKLSAgICByZXR1cm4gRklOQUxJWkVfQ09E
RShwYXRjaEJ1ZmZlciwgKCJMaW5rIGNsb3N1cmUgY2FsbCBzbG93IHBhdGggdGh1bmsiKSk7Cisg
ICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiTGluayBjbG9zdXJlIGNhbGwg
JXMgc2xvdyBwYXRoIHRodW5rIiwgcmVnaXN0ZXJzID09IE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyA/
ICIgdGhhdCBwcmVzZXJ2ZXMgcmVnaXN0ZXJzIiA6ICIiKSk7Cit9CisKKy8vIEZvciBjbG9zdXJl
IG9wdGltaXphdGlvbnMsIHdlIG9ubHkgaW5jbHVkZSBjYWxscywgc2luY2UgaWYgeW91J3JlIHVz
aW5nIGNsb3N1cmVzIGZvcgorLy8gb2JqZWN0IGNvbnN0cnVjdGlvbiB0aGVuIHlvdSdyZSBnb2lu
ZyB0byBsb3NlIGJpZyB0aW1lIGFueXdheS4KK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2xv
c3VyZUNhbGxUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIGxpbmtDbG9zdXJl
Q2FsbEZvclRodW5rR2VuZXJhdG9yKHZtLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVk
KTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2
ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBsaW5rQ2xvc3VyZUNh
bGxGb3JUaHVua0dlbmVyYXRvcih2bSwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKIH0KIAogc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3IoCi0gICAg
Vk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgVk0qIHZtLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMp
CiB7CiAgICAgLy8gVGhlIGNhbGxlZSBpcyBpbiByZWdUMCAoZm9yIEpTVkFMVUUzMl82NCwgdGhl
IHRhZyBpcyBpbiByZWdUMSkuCiAgICAgLy8gVGhlIHJldHVybiBhZGRyZXNzIGlzIG9uIHRoZSBz
dGFjaywgb3IgaW4gdGhlIGxpbmsgcmVnaXN0ZXIuIFdlIHdpbGwgaGVuY2UKQEAgLTE2MCwzMyAr
MTc4LDM0IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbEZvclQKICAgICAv
LyB0aGUgREZHIGtub3dzIHRoYXQgdGhlIHZhbHVlIGlzIGRlZmluaXRlbHkgYSBjZWxsLCBvciBk
ZWZpbml0ZWx5IGEgZnVuY3Rpb24uCiAgICAgCiAjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBqaXQu
bW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChUYWdNYXNrKSwgR1BSSW5mbzo6cmVnVDIp
OworICAgIAogICAgIHNsb3dDYXNlLmFwcGVuZCgKICAgICAgICAgaml0LmJyYW5jaFRlc3Q2NCgK
LSAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm9uWmVybywgR1BSSW5mbzo6cmVnVDAsIEdQUklu
Zm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb25aZXJv
LCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDIpKTsKICNlbHNlCiAgICAgc2xvd0Nhc2Uu
YXBwZW5kKAogICAgICAgICBqaXQuYnJhbmNoMzIoCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
Ok5vdEVxdWFsLCBHUFJJbmZvOjpyZWdUMSwKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAjZW5kaWYKLSAgICBqaXQubG9hZFB0cihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlT2Zm
c2V0KCkpLCBHUFJJbmZvOjpub25BcmdHUFIyKTsKKyAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBH
UFJJbmZvOjpyZWdUMik7CiAgICAgc2xvd0Nhc2UuYXBwZW5kKAogICAgICAgICBqaXQuYnJhbmNo
UHRyKAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwKLSAgICAgICAgICAgIEND
YWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpub25BcmdHUFIyLCBTdHJ1Y3R1cmU6OmNsYXNz
SW5mb09mZnNldCgpKSwKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZv
OjpyZWdUMiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSksCiAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoSlNGdW5jdGlvbjo6aW5mbygpKSkpOwogICAgIAogICAg
IC8vIE5vdyB3ZSBrbm93IHdlIGhhdmUgYSBKU0Z1bmN0aW9uLgogICAgIAogICAgIGppdC5sb2Fk
UHRyKAogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTRnVu
Y3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwKLSAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BS
Mik7Ci0gICAgc2xvd0Nhc2UuYXBwZW5kKAotICAgICAgICBqaXQuYnJhbmNoMzIoCi0gICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6Okxlc3NUaGFuLAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKAotICAgICAgICAgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjIsIEV4ZWN1dGFibGVC
YXNlOjpvZmZzZXRPZk51bVBhcmFtZXRlcnNGb3Ioa2luZCkpLAotICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCkpKTsKKyAgICAgICAgR1BSSW5mbzo6cmVnVDIpOworICAg
IGppdC5sb2FkUHRyKAorICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAg
ICBHUFJJbmZvOjpyZWdUMiwgRXhlY3V0YWJsZUJhc2U6Om9mZnNldE9mSklUQ29kZVdpdGhBcml0
eUNoZWNrRm9yKGtpbmQsIHJlZ2lzdGVycykpLAorICAgICAgICBHUFJJbmZvOjpyZWdUMik7Cisg
ICAgc2xvd0Nhc2UuYXBwZW5kKGppdC5icmFuY2hUZXN0UHRyKENDYWxsSGVscGVyczo6WmVybywg
R1BSSW5mbzo6cmVnVDIpKTsKICAgICAKICAgICAvLyBOb3cgd2Uga25vdyB0aGF0IHdlIGhhdmUg
YSBDb2RlQmxvY2ssIGFuZCB3ZSdyZSBjb21taXR0ZWQgdG8gbWFraW5nIGEgZmFzdAogICAgIC8v
IGNhbGwuCkBAIC0xOTUsNjIgKzIxNCw2MCBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IHZpcnR1YWxGb3JUCiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdU
MCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZTY29wZUNoYWluKCkpLAogICAgICAgICBHUFJJbmZvOjpy
ZWdUMSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBqaXQuc3RvcmU2NCgKLSAgICAgICAgR1BS
SW5mbzo6cmVnVDEsCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygKLSAgICAgICAgICAg
IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8cHRy
ZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pKTsKKyAgICBq
aXQuZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoR1BSSW5mbzo6cmVnVDEs
IEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogI2Vsc2UKLSAgICBqaXQuc3RvcmVQdHIoCi0gICAgICAg
IEdQUkluZm86OnJlZ1QxLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCi0gICAgICAg
ICAgICBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgIHN0YXRpY19jYXN0
PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKiBKU1N0YWNrOjpTY29wZUNoYWluICsKLSAg
ICAgICAgICAgIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMu
cGF5bG9hZCkpKTsKLSAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVz
cygKLSAgICAgICAgICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpTU3RhY2s6OlNjb3Bl
Q2hhaW4gKwotICAgICAgICAgICAgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0
b3IsIGFzQml0cy50YWcpKSk7CisgICAgaml0LmVtaXRQdXRQYXlsb2FkVG9DYWxsRnJhbWVIZWFk
ZXJCZWZvcmVQcm9sb2d1ZShHUFJJbmZvOjpyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7Cisg
ICAgaml0LmVtaXRQdXRUYWdUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAorICAgICAgICBKU1N0YWNrOjpT
Y29wZUNoYWluKTsKICNlbmRpZgogICAgIAotICAgIGppdC5sb2FkUHRyKAotICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6bm9uQXJnR1BSMiwgRXhlY3V0YWJsZUJhc2U6Om9m
ZnNldE9mSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQpKSwKLSAgICAgICAgR1BSSW5mbzo6
cmVnVDApOwotICAgIAogICAgIC8vIE1ha2UgYSB0YWlsIGNhbGwuIFRoaXMgd2lsbCByZXR1cm4g
YmFjayB0byBKSVQgY29kZS4KLSAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZv
OjpyZWdUMCk7Ci0gICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDApOworICAgIGVtaXRQb2ludGVy
VmFsaWRhdGlvbihqaXQsIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQuanVtcChHUFJJbmZvOjpy
ZWdUMik7CiAKICAgICBzbG93Q2FzZS5saW5rKCZqaXQpOwogICAgIAogICAgIC8vIEhlcmUgd2Ug
ZG9uJ3Qga25vdyBhbnl0aGluZywgc28gcmV2ZXJ0IHRvIHRoZSBmdWxsIHNsb3cgcGF0aC4KICAg
ICAKLSAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBraW5kID09IENvZGVGb3JDYWxsID8gb3BlcmF0
aW9uVmlydHVhbENhbGwgOiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0KTsKKyAgICBzbG93UGF0
aEZvcihqaXQsIHZtLCBvcGVyYXRpb25WaXJ0dWFsRm9yKGtpbmQsIHJlZ2lzdGVycykpOwogICAg
IAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQp
OwogICAgIHJldHVybiBGSU5BTElaRV9DT0RFKAogICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAg
ICAgKCJWaXJ0dWFsICVzIHNsb3cgcGF0aCB0aHVuayIsIGtpbmQgPT0gQ29kZUZvckNhbGwgPyAi
Y2FsbCIgOiAiY29uc3RydWN0IikpOworICAgICAgICAoIlZpcnR1YWwgJXMlcyBzbG93IHBhdGgg
dGh1bmsiLCBraW5kID09IENvZGVGb3JDYWxsID8gImNhbGwiIDogImNvbnN0cnVjdCIsIHJlZ2lz
dGVycyA9PSBNdXN0UHJlc2VydmVSZWdpc3RlcnMgPyAiIHRoYXQgcHJlc2VydmVzIHJlZ2lzdGVy
cyIgOiAiIikpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENhbGxUaHVua0dl
bmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcih2
bSwgQ29kZUZvckNhbGwpOworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0s
IENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAogTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcihWTSogdm0p
CiB7Ci0gICAgcmV0dXJuIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0
cnVjdCk7CisgICAgcmV0dXJuIHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNv
bnN0cnVjdCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9CiAKLXN0YXRpYyBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNp
YWxpemF0aW9uS2luZCBraW5kKQorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDYWxsVGhh
dFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIHZpcnR1
YWxGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVy
cyk7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ29uc3RydWN0VGhhdFByZXNl
cnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIHZpcnR1YWxGb3JU
aHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJz
KTsKK30KKworZW51bSBUaHVua0VudHJ5VHlwZSB7IEVudGVyVmlhQ2FsbCwgRW50ZXJWaWFKdW1w
IH07CisKK3N0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZN
KiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBUaHVua0VudHJ5VHlwZSBlbnRyeVR5
cGUgPSBFbnRlclZpYUNhbGwpCiB7CiAgICAgaW50IGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9u
ID0gTmF0aXZlRXhlY3V0YWJsZTo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKTsKICAg
ICAKICAgICBKU0ludGVyZmFjZUpJVCBqaXQodm0pOwotICAgIAorCisgICAgaWYgKGVudHJ5VHlw
ZSA9PSBFbnRlclZpYUNhbGwpCisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwor
CiAgICAgaml0LmVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcigwLCBKU1N0YWNrOjpD
b2RlQmxvY2spOwogICAgIGppdC5zdG9yZVB0cihKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVn
aXN0ZXIsICZ2bS0+dG9wQ2FsbEZyYW1lKTsKIApAQCAtMjYxLDIyICsyNzgsMTggQEAgc3RhdGlj
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogICAgIGppdC5lbWl0R2V0RnJvbUNh
bGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpTY29wZUNoYWluLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDEsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CiAgICAgaml0LmVtaXRQdXRDZWxsVG9DYWxsRnJh
bWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKIAot
ICAgIGppdC5wZWVrKEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmVtaXRQdXRSZXR1
cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0KICAgICAvLyBD
YWxsaW5nIGNvbnZlbnRpb246ICAgICAgZihlY3gsIGVkeCwgLi4uKTsKICAgICAvLyBIb3N0IGZ1
bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFj
ZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWN4KTsKIAotICAgIGppdC5z
dWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZih2b2lkKikpLCBK
U0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBhZnRl
ciBjYWxsLgorICAgIGppdC5zdWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwg
SlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgLy8gQWxpZ24gc3RhY2sgYWZ0
ZXIgcHJvbG9ndWUuCiAKICAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgogICAgIGppdC5lbWl0R2V0
RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMSk7CiAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJm
YWNlSklUOjpyZWdUMSk7Ci0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVy
IGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBqaXQuY2Fs
bChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIGV4ZWN1dGFi
bGVPZmZzZXRUb0Z1bmN0aW9uKSk7CiAKLSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpU
cnVzdGVkSW1tMzIoMTYgLSBzaXplb2Yodm9pZCopKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1t
MzIoOCksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKICNlbGlmIENQ
VShYODZfNjQpCiAgICAgLy8gTG9hZCBjYWxsZXIgZnJhbWUncyBzY29wZSBjaGFpbiBpbnRvIHRo
aXMgY2FsbGZyYW1lIHNvIHRoYXQgd2hhdGV2ZXIgd2UgY2FsbCBjYW4KQEAgLTI4NCwyMyArMjk3
LDE1IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKICAgICBqaXQu
ZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU0ludGVyZmFjZUpJVDo6
cmVnVDApOwogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpT
Y29wZUNoYWluLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7
CiAgICAgaml0LmVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKLQotICAgIGppdC5wZWVrKEpTSW50ZXJmYWNlSklU
OjpyZWdUMSk7Ci0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEpTSW50
ZXJmYWNlSklUOjpyZWdUMSk7Ci0KICNpZiAhT1MoV0lORE9XUykKICAgICAvLyBDYWxsaW5nIGNv
bnZlbnRpb246ICAgICAgZihlZGksIGVzaSwgZWR4LCBlY3gsIC4uLik7CiAgICAgLy8gSG9zdCBm
dW5jdGlvbiBzaWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZh
Y2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVkaSk7CiAKLSAgICBqaXQu
c3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2YoaW50NjRfdCkp
LCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBh
ZnRlciBjYWxsLgotCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3Rh
Y2s6OkNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplc2kpOwogICAgIGppdC5sb2FkUHRyKEpTSW50ZXJm
YWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNpLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4
ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNl
SklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJs
eSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3Rh
Y2suCiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjpy
OSwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIAotICAgIGppdC5hZGRQdHIoSlNJbnRl
cmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZihpbnQ2NF90KSksIEpTSW50ZXJmYWNl
SklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAjZWxzZQogICAgIC8vIENhbGxpbmcgY29udmVu
dGlvbjogICAgICBmKGVjeCwgZWR4LCByOCwgcjksIC4uLik7CiAgICAgLy8gSG9zdCBmdW5jdGlv
biBzaWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CkBAIC0zMTEsNyArMzE2LDYgQEAgc3RhdGljIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplZHgpOwogICAg
IGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWR4LCBK
U0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkpOwotICAg
IGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFt
ZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBh
dm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFk
ZHJlc3MoWDg2UmVnaXN0ZXJzOjpyOSwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIAog
ICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig0ICogc2l6ZW9mKGlu
dDY0X3QpICsgMTYgLSBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwpAQCAtMzMwLDI4ICszMzQsMTggQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBuYXRpdmVGb3JHZQogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0
cihKU1N0YWNrOjpTY29wZUNoYWluLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEFSTTY0UmVnaXN0
ZXJzOjp4Myk7CiAgICAgaml0LmVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKIAotICAgIGppdC5wcmVzZXJ2ZVJl
dHVybkFkZHJlc3NBZnRlckNhbGwoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsgLy8gQ2FsbGVlIHBy
ZXNlcnZlZAotICAgIGppdC5lbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihBUk02NFJl
Z2lzdGVyczo6bHIpOwotCiAgICAgLy8gSG9zdCBmdW5jdGlvbiBzaWduYXR1cmU6IGYoRXhlY1N0
YXRlKik7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBB
Uk02NFJlZ2lzdGVyczo6eDApOwogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVy
UHRyKEpTU3RhY2s6OkNhbGxlZSwgQVJNNjRSZWdpc3RlcnM6OngxKTsKICAgICBqaXQubG9hZFB0
cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVyczo6eDEsIEpTRnVuY3Rpb246
Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgQVJNNjRSZWdpc3RlcnM6OngyKTsKLSAgICBqaXQubW92
ZShBUk02NFJlZ2lzdGVyczo6eDMsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7
IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGlu
ZyBmcm9tIHN0YWNrLgogICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0
UmVnaXN0ZXJzOjp4MiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKLQotICAgIGppdC5y
ZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwot
CiAjZWxpZiBDUFUoQVJNKSB8fCBDUFUoU0g0KSB8fCBDUFUoTUlQUykKICAgICAvLyBMb2FkIGNh
bGxlciBmcmFtZSdzIHNjb3BlIGNoYWluIGludG8gdGhpcyBjYWxsZnJhbWUgc28gdGhhdCB3aGF0
ZXZlciB3ZSBjYWxsIGNhbiBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgogICAgIGppdC5lbWl0R2V0
Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMik7
CiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hh
aW4sIEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAgICBq
aXQuZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpT
U3RhY2s6OlNjb3BlQ2hhaW4pOwogCi0gICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVy
Q2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMpOyAvLyBDYWxsZWUgcHJlc2VydmVkCi0gICAgaml0
LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7
Ci0KICNpZiBDUFUoTUlQUykKICAgICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBmb3IgKHVudXNl
ZCkgMTYgYnl0ZXMgKDgtYnl0ZSBhbGlnbmVkKSBmb3IgNCBhcmd1bWVudHMuCiAgICAgaml0LnN1
YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2KSwgSlNJbnRlcmZhY2VKSVQ6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTM2Miw3ICszNTYsNiBAQCBzdGF0aWMgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNh
bGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKIAogICAgIGpp
dC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIEpTSW50ZXJm
YWNlSklUOjphcmd1bWVudEdQUjEpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdU
MiwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3Jl
IGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAg
aml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmFyZ3Vt
ZW50R1BSMSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDIpOwogICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJm
YWNlSklUOjpyZWdUMiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIApAQCAtMzcwLDgg
KzM2Myw2IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKICAgICAv
LyBSZXN0b3JlIHN0YWNrIHNwYWNlCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1
c3RlZEltbTMyKDE2KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICNl
bmRpZgotCi0gICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEpTSW50ZXJm
YWNlSklUOjpyZWdUMyk7CiAjZWxzZQogI2Vycm9yICJKSVQgbm90IHN1cHBvcnRlZCBvbiB0aGlz
IHBsYXRmb3JtLiIKICAgICBVTlVTRURfUEFSQU0oZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24p
OwpAQCAtMzg5LDI1ICszODAsMjEgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRp
dmVGb3JHZQogICAgICAgICBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVt
cHR5VmFsdWVUYWcpKTsKICNlbmRpZgogCisgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CiAgICAgLy8gUmV0dXJuLgogICAgIGppdC5yZXQoKTsKIAogICAgIC8vIEhhbmRsZSBhbiBleGNl
cHRpb24KICAgICBleGNlcHRpb25IYW5kbGVyLmxpbmsoJmppdCk7CiAKLSAgICAvLyBHcmFiIHRo
ZSByZXR1cm4gYWRkcmVzcy4KLSAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxs
KEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgCi0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VK
SVQ6OlRydXN0ZWRJbW1QdHIoJnZtLT5leGNlcHRpb25Mb2NhdGlvbiksIEpTSW50ZXJmYWNlSklU
OjpyZWdUMik7Ci0gICAgaml0LnN0b3JlUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QyKTsKLQogICAgIGppdC5zdG9yZVB0cihKU0ludGVyZmFjZUpJVDo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsICZ2bS0+dG9wQ2FsbEZyYW1lKTsKIAogI2lmIENQVShYODYpICYmIFVT
RShKU1ZBTFVFMzJfNjQpCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZElt
bTMyKC0xMiksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0gICAgaml0
LnB1c2goSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBqaXQubG9hZFB0
cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0
ZXIpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOworICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklU
OjpyZWdUMCk7CiAjZWxzZQotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVS
ZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCk7CisgICAgaml0LmxvYWRQdHIo
SlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVy
KSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCk7CiAjZW5kaWYKICAgICBqaXQubW92ZShK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbVB0cihGdW5jdGlvblB0cihvcGVyYXRpb25WTUhhbmRs
ZUV4Y2VwdGlvbikudmFsdWUoKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAgICAgaml0LmNh
bGwoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKQEAgLTQxOCw3ICs0MDUsNyBAQCBzdGF0aWMgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgaml0Lmp1bXBUb0V4Y2VwdGlvbkhh
bmRsZXIoKTsKIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxf
VEhVTktfSUQpOwotICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIm5hdGl2
ZSAlcyB0cmFtcG9saW5lIiwgdG9DU3RyaW5nKGtpbmQpLmRhdGEoKSkpOworICAgIHJldHVybiBG
SU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIm5hdGl2ZSAlcyVzIHRyYW1wb2xpbmUiLCBlbnRy
eVR5cGUgPT0gRW50ZXJWaWFKdW1wID8gIlRhaWwgIiA6ICIiLCB0b0NTdHJpbmcoa2luZCkuZGF0
YSgpKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDYWxsR2VuZXJhdG9yKFZN
KiB2bSkKQEAgLTQyNiw2ICs0MTMsMTEgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNh
bGxHZW5lcmF0bwogICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxs
KTsKIH0KIAorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxsR2VuZXJhdG9yKFZN
KiB2bSkKK3sKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCwg
RW50ZXJWaWFKdW1wKTsKK30KKwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNvbnN0cnVj
dEdlbmVyYXRvcihWTSogdm0pCiB7CiAgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwg
Q29kZUZvckNvbnN0cnVjdCk7CkBAIC00MzUsMzQgKzQyNyw0NiBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgYXJpdHlGaXh1cChWTSogdm0pCiB7CiAgICAgSlNJbnRlcmZhY2VKSVQgaml0KHZtKTsK
IAotICAgIC8vIFdlIGVudGVyIHdpdGggZml4dXAgY291bnQgaW4gcmVnVDAKKyAgICAvLyBXZSBl
bnRlciB3aXRoIGZpeHVwIGNvdW50LCBpbiBhbGlnbmVkIHN0YWNrIHVuaXRzLCBpbiByZWdUMCBh
bmQgdGhlIHJldHVybiB0aHVuayBpbgorICAgIC8vIHJlZ1Q1LiBXZSB1c2UgVk06OmN1cnJlbnRS
ZXR1cm5UaHVua1BDIGluc3RlYWQgb2YgcmVnVDUgb24gWDg2LTMyLgogI2lmIFVTRShKU1ZBTFVF
NjQpCiAjICBpZiBDUFUoWDg2XzY0KQogICAgIGppdC5wb3AoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0
KTsKICMgIGVuZGlmCisgICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1t
MzIobG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7
CiAgICAgaml0Lm5lZzY0KEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7Ci0gICAgaml0Lm1vdmUoSlNJ
bnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwot
ICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNh
bGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogOCksIEpTSW50ZXJmYWNl
SklUOjpyZWdUMik7CisgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lz
dGVyLCBKU0ludGVyZmFjZUpJVDo6cmVnVDYpOworICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VK
SVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpB
cmd1bWVudENvdW50ICogc2l6ZW9mKFJlZ2lzdGVyKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7
CiAgICAgaml0LmFkZDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoSlNTdGFjazo6Q2Fs
bEZyYW1lSGVhZGVyU2l6ZSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CiAKICAgICAvLyBNb3Zl
IGN1cnJlbnQgZnJhbWUgZG93biByZWdUMCBudW1iZXIgb2Ygc2xvdHMKICAgICBKU0ludGVyZmFj
ZUpJVDo6TGFiZWwgY29weUxvb3Aoaml0LmxhYmVsKCkpOwotICAgIGppdC5sb2FkNjQoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5zdG9yZTY0
KEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVy
ZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRp
bWVzRWlnaHQpKTsKLSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIo
OCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CisgICAgaml0LmxvYWQ2NChKU0ludGVyZmFjZUpJ
VDo6cmVnVDYsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CisgICAgaml0LnN0b3JlNjQoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklU
OjpyZWdUNiwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdo
dCkpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1Q2KTsKICAgICBqaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6
Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklU
OjpyZWdUMikubGlua1RvKGNvcHlMb29wLCAmaml0KTsKIAotICAgIC8vIEZpbGwgaW4gcmVnVDAg
bWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKKyAgICAvLyBGaWxsIGluIHJlZ1QwIC0g
MSBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAogICAgIGppdC5tb3ZlKEpTSW50ZXJm
YWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAgICBqaXQubW92ZShKU0lu
dGVyZmFjZUpJVDo6VHJ1c3RlZEltbTY0KFZhbHVlVW5kZWZpbmVkKSwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QxKTsKKyAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwg
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgZmlsbFVu
ZGVmaW5lZExvb3Aoaml0LmxhYmVsKCkpOwotICAgIGppdC5zdG9yZTY0KEpTSW50ZXJmYWNlSklU
OjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDMs
IEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKLSAg
ICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNl
SklUOjpyZWdUMyk7CisgICAgaml0LnN0b3JlNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBNYWNy
b0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUNiwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOworICAgIGppdC5hZGRQdHIo
SlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q2KTsK
ICAgICBqaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNl
SklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGZpbGxV
bmRlZmluZWRMb29wLCAmaml0KTsKLQotICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lzdGVy
IHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncwotICAgIGppdC5sc2hpZnQ2NChKU0ludGVyZmFj
ZUpJVDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwotICAgIGppdC5h
ZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVn
aXN0ZXIpOworICAgIAorICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lzdGVyIGFuZCBzdGFj
ayBwb2ludGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncworICAgIGppdC5tb3ZlKEpTSW50
ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQubHNoaWZ0
NjQoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qx
KTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6
OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdU
MSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgIC8vIFNhdmUg
dGhlIG9yaWdpbmFsIHJldHVybiBQQy4KKyAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0
dXJuUENPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5m
bzo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q2
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7Cisg
ICAgCisgICAgLy8gSW5zdGFsbCB0aGUgbmV3IHJldHVybiBQQy4KKyAgICBqaXQuc3RvcmVQdHIo
R1BSSW5mbzo6cmVnVDUsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpj
YWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CiAKICMgIGlm
IENQVShYODZfNjQpCiAgICAgaml0LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsKQEAgLTQ3
Miw5ICs0NzYsMTAgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZtKQog
IyAgaWYgQ1BVKFg4NikKICAgICBqaXQucG9wKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CiAjICBl
bmRpZgorICAgIGppdC5sc2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKGxvZ1N0
YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGpp
dC5uZWczMihKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNl
SklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLSAgICBqaXQu
bG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVS
ZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIDgpLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDIpOworICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VK
SVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc2l6ZW9mKFJl
Z2lzdGVyKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CiAgICAgaml0LmFkZDMyKEpTSW50ZXJm
YWNlSklUOjpUcnVzdGVkSW1tMzIoSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIEpTSW50
ZXJmYWNlSklUOjpyZWdUMik7CiAKICAgICAvLyBNb3ZlIGN1cnJlbnQgZnJhbWUgZG93biByZWdU
MCBudW1iZXIgb2Ygc2xvdHMKQEAgLTQ4Niw4ICs0OTEsOSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgYXJpdHlGaXh1cChWTSogdm0pCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1
c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwogICAgIGppdC5icmFuY2hTdWIz
MihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigx
KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8oY29weUxvb3AsICZqaXQpOwogCi0gICAg
Ly8gRmlsbCBpbiByZWdUMCBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAorICAgIC8v
IEZpbGwgaW4gcmVnVDAgLSAxIG1pc3NpbmcgYXJnIHNsb3RzIHdpdGggdW5kZWZpbmVkCiAgICAg
aml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwor
ICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFj
ZUpJVDo6cmVnVDIpOwogICAgIEpTSW50ZXJmYWNlSklUOjpMYWJlbCBmaWxsVW5kZWZpbmVkTG9v
cChqaXQubGFiZWwoKSk7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0z
MigwKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKICAgICBqaXQuc3RvcmUzMihKU0ludGVyZmFj
ZUpJVDo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7
CkBAIC00OTcsMTAgKzUwMywyNSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChW
TSogdm0pCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBK
U0ludGVyZmFjZUpJVDo6cmVnVDMpOwogICAgIGppdC5icmFuY2hBZGQzMihNYWNyb0Fzc2VtYmxl
cjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QyKS5saW5rVG8oZmlsbFVuZGVmaW5lZExvb3AsICZqaXQpOwogCi0gICAgLy8gQWRq
dXN0IGNhbGwgZnJhbWUgcmVnaXN0ZXIgdG8gYWNjb3VudCBmb3IgbWlzc2luZyBhcmdzCi0gICAg
aml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNl
SklUOjpyZWdUMCk7Ci0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50
ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KKyAgICAvLyBBZGp1c3QgY2FsbCBmcmFt
ZSByZWdpc3RlciBhbmQgc3RhY2sgcG9pbnRlciB0byBhY2NvdW50IGZvciBtaXNzaW5nIGFyZ3MK
KyAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdU
MSk7CisgICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpT
SW50ZXJmYWNlSklUOjpyZWdUMSk7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVn
VDEsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihK
U0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CisKKyAgICAvLyBTYXZlIHRoZSBvcmlnaW5hbCByZXR1cm4gUEMuCisgICAgaml0LmxvYWRQ
dHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lz
dGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAg
aml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpT
SW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJ
VDo6VGltZXNFaWdodCkpOworICAgIAorICAgIC8vIEluc3RhbGwgdGhlIG5ldyByZXR1cm4gUEMu
CisgICAgLy8gRklYTUU6IEkgZG9uJ3QgdGhpbmsgY3VycmVudFJldHVyblRodW5rUEMgaXMgdXNl
ZCBhbmQgc2hvdWxkIGJlIGRlbGV0ZWQuCisjICBpZiAwCisgICAgaml0LmxvYWRQdHIoJnZtLT5j
dXJyZW50UmV0dXJuVGh1bmtQQywgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5zdG9yZVB0cihH
UFJJbmZvOjpyZWdUMiwgSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNh
bGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKKyMgICBlbHNl
CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1Q1LCBKU0ludGVyZmFjZUpJVDo6QWRkcmVz
cyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENP
ZmZzZXQoKSkpOworIyAgIGVuZGlmCisgICAgCiAjICBpZiBDUFUoWDg2KQogICAgIGppdC5wdXNo
KEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CiAjICBlbmRpZgpAQCAtNTU0LDcgKzU3NSw3IEBAIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBjaGFyQ29kZUF0VGh1bmtHZW4KICAgICBTcGVjaWFsaXplZFRo
dW5rSklUIGppdCh2bSwgMSk7CiAgICAgc3RyaW5nQ2hhckxvYWQoaml0LCB2bSk7CiAgICAgaml0
LnJldHVybkludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKLSAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJjaGFyQ29kZUF0Iik7
CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxs
KHZtKSwgImNoYXJDb2RlQXQiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJBdFRo
dW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTU2Myw3ICs1ODQsNyBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0CiAgICAgc3RyaW5nQ2hhckxvYWQoaml0LCB2bSk7CiAg
ICAgY2hhclRvU3RyaW5nKGppdCwgdm0sIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVj
aWFsaXplZFRodW5rSklUOjpyZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDEpOwogICAg
IGppdC5yZXR1cm5KU0NlbGwoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwotICAgIHJldHVy
biBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImNoYXJBdCIp
OworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2Fs
bCh2bSksICJjaGFyQXQiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29k
ZVRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTU3Myw3ICs1OTQsNyBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgZnJvbUNoYXJDb2RlVGh1bmtHCiAgICAgaml0LmxvYWRJbnQzMkFyZ3VtZW50KDAs
IFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBjaGFyVG9TdHJpbmcoaml0LCB2bSwg
U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBT
cGVjaWFsaXplZFRodW5rSklUOjpyZWdUMSk7CiAgICAgaml0LnJldHVybkpTQ2VsbChTcGVjaWFs
aXplZFRodW5rSklUOjpyZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1
YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiZnJvbUNoYXJDb2RlIik7CisgICAgcmV0dXJuIGppdC5m
aW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImZyb21DaGFyQ29k
ZSIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9yKFZNKiB2
bSkKQEAgLTU4NSw3ICs2MDYsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc3FydFRodW5rR2Vu
ZXJhdG9yCiAgICAgaml0LmxvYWREb3VibGVBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklU
OjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgaml0LnNxcnREb3Vi
bGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBS
ZWdUMCk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1Qw
KTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2
bSksICJzcXJ0Iik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5h
dGl2ZVRhaWxDYWxsKHZtKSwgInNxcnQiKTsKIH0KIAogCkBAIC02MTEsNyArNjMyLDkgQEAgZG91
YmxlIGpzUm91bmQoZG91YmxlIGQpCiAgICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1
bmN0aW9uIyNUaHVuaykgIlxuIiBcCiAgICAgICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uIyNUaHVu
aykgIlxuIiBcCiAgICAgICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAiOiIgIlxu
IiBcCisgICAgICAgICJwdXNocSAlcmF4XG4iIFwKICAgICAgICAgImNhbGwgIiBHTE9CQUxfUkVG
RVJFTkNFKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICAgICAgInBvcHEgJXJjeFxuIiBcCiAgICAgICAg
ICJyZXRcbiIgXAogICAgICk7XAogICAgIGV4dGVybiAiQyIgeyBcCkBAIC02MjYsMTIgKzY0OSwx
MiBAQCBkb3VibGUganNSb3VuZChkb3VibGUgZCkKICAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9T
VFJJTkcoZnVuY3Rpb24jI1RodW5rKSAiXG4iIFwKICAgICAgICAgSElERV9TWU1CT0woZnVuY3Rp
b24jI1RodW5rKSAiXG4iIFwKICAgICAgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMjVGh1bmsp
ICI6IiAiXG4iIFwKLSAgICAgICAgInN1YmwgJDgsICVlc3BcbiIgXAorICAgICAgICAic3VibCAk
MjAsICVlc3BcbiIgXAogICAgICAgICAibW92c2QgJXhtbTAsICglZXNwKSBcbiIgXAogICAgICAg
ICAiY2FsbCAiIEdMT0JBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJcbiIgXAogICAgICAgICAiZnN0
cGwgKCVlc3ApIFxuIiBcCiAgICAgICAgICJtb3ZzZCAoJWVzcCksICV4bW0wIFxuIiBcCi0gICAg
ICAgICJhZGRsICQ4LCAlZXNwXG4iIFwKKyAgICAgICAgImFkZGwgJDIwLCAlZXNwXG4iIFwKICAg
ICAgICAgInJldFxuIiBcCiAgICAgKTtcCiAgICAgZXh0ZXJuICJDIiB7IFwKQEAgLTczMyw3ICs3
NTYsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZmxvb3JUaHVua0dlbmVyYXRvCiAgICAgZG91
YmxlUmVzdWx0LmxpbmsoJmppdCk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRo
dW5rSklUOjpmcFJlZ1QwKTsKICNlbmRpZiAvLyBDUFUoQVJNNjQpCi0gICAgcmV0dXJuIGppdC5m
aW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiZmxvb3IiKTsKKyAgICBy
ZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAi
Zmxvb3IiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxUaHVua0dlbmVyYXRvcihW
TSogdm0pCkBAIC03NTYsNyArNzc5LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNlaWxUaHVu
a0dlbmVyYXRvcgogICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdU
MCk7CiAgICAgZG91YmxlUmVzdWx0LmxpbmsoJmppdCk7CiAgICAgaml0LnJldHVybkRvdWJsZShT
cGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZt
LT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJjZWlsIik7CisgICAgcmV0dXJuIGppdC5m
aW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImNlaWwiKTsKIH0K
IAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAt
NzkwLDcgKzgxMyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiByb3VuZFRodW5rR2VuZXJhdG8K
ICAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGRv
dWJsZVJlc3VsdC5saW5rKCZqaXQpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRU
aHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMt
PmN0aU5hdGl2ZUNhbGwodm0pLCAicm91bmQiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZt
LT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAicm91bmQiKTsKIH0KIAogTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGV4cFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTgwMyw3ICs4MjYs
NyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZXhwVGh1bmtHZW5lcmF0b3IoCiAgICAgaml0Lmxv
YWREb3VibGVBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFs
aXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgaml0LmNhbGxEb3VibGVUb0RvdWJsZVByZXNlcnZp
bmdSZXR1cm4oVW5hcnlEb3VibGVPcFdyYXBwZXIoZXhwKSk7CiAgICAgaml0LnJldHVybkRvdWJs
ZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXpl
KHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJleHAiKTsKKyAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiZXhwIik7CiB9
CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsb2dUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC04
MTYsNyArODM5LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxvZ1RodW5rR2VuZXJhdG9yKAog
ICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdU
MCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGppdC5jYWxsRG91YmxlVG9Eb3Vi
bGVQcmVzZXJ2aW5nUmV0dXJuKFVuYXJ5RG91YmxlT3BXcmFwcGVyKGxvZykpOwogICAgIGppdC5y
ZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGpp
dC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAibG9nIik7CisgICAg
cmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwg
ImxvZyIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYWJzVGh1bmtHZW5lcmF0b3IoVk0q
IHZtKQpAQCAtODM2LDcgKzg1OSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhYnNUaHVua0dl
bmVyYXRvcigKICAgICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtK
SVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuYWJzRG91
YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZw
UmVnVDEpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdU
MSk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwo
dm0pLCAiYWJzIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5h
dGl2ZVRhaWxDYWxsKHZtKSwgImFicyIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93
VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtODg4LDcgKzkxMSw3IEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBwb3dUaHVua0dlbmVyYXRvcigKICAgICB9IGVsc2UKICAgICAgICAgaml0LmFwcGVu
ZEZhaWx1cmUobm9uSW50RXhwb25lbnQpOwogCi0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+
aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAicG93Iik7CisgICAgcmV0dXJuIGppdC5maW5h
bGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgInBvdyIpOwogfQogCiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgaW11bFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTkyMSw3
ICs5NDQsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgaW11bFRodW5rR2VuZXJhdG9yCiAgICAg
fSBlbHNlCiAgICAgICAgIGppdC5hcHBlbmRGYWlsdXJlKG5vbkludEFyZzFKdW1wKTsKIAotICAg
IHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImlt
dWwiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFp
bENhbGwodm0pLCAiaW11bCIpOwogfQogCiBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFy
cmF5SXRlcmF0b3JOZXh0VGh1bmtHZW5lcmF0b3IoVk0qIHZtLCBBcnJheUl0ZXJhdGlvbktpbmQg
a2luZCkKQEAgLTk2MSw3ICs5ODQsNyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFy
cmF5SXRlcmF0CiAgICAgaWYgKGtpbmQgPT0gQXJyYXlJdGVyYXRlS2V5KSB7CiAgICAgICAgIGpp
dC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIEFkZHJlc3MoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVn
VDQsIEpTQXJyYXlJdGVyYXRvcjo6b2Zmc2V0T2ZOZXh0SW5kZXgoKSkpOwogICAgICAgICBqaXQu
cmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDEpOwotICAgICAgICByZXR1cm4g
aml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJhcnJheS1pdGVy
YXRvci1uZXh0LWtleSIpOworICAgICAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVi
cy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4dC1rZXkiKTsKICAg
ICAgICAgCiAgICAgfQogICAgIEFTU0VSVChraW5kID09IEFycmF5SXRlcmF0ZVZhbHVlKTsKQEAg
LTEwMTIsNyArMTAzNSw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJyYXlJdGVy
YXQKICAgICBqaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBBZGRyZXNzKFNwZWNpYWxpemVkVGh1
bmtKSVQ6OnJlZ1Q0LCBKU0FycmF5SXRlcmF0b3I6Om9mZnNldE9mTmV4dEluZGV4KCkpKTsKICAg
ICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwogICAgIAot
ICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwg
ImFycmF5LWl0ZXJhdG9yLW5leHQtdmFsdWUiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZt
LT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4dC12
YWx1ZSIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJyYXlJdGVyYXRvck5leHRLZXlU
aHVua0dlbmVyYXRvcihWTSogdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Ro
dW5rR2VuZXJhdG9ycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
VGh1bmtHZW5lcmF0b3JzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDgg
QEAKICNpZm5kZWYgVGh1bmtHZW5lcmF0b3JzX2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0b3JzX2gK
IAorI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKKyNpbmNsdWRlICJSZWdpc3Rl
clByZXNlcnZhdGlvbk1vZGUuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvci5oIgogCiAjaWYg
RU5BQkxFKEpJVCkKQEAgLTM1LDE0ICszNyw4MiBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdGhy
b3dFeGNlcHRpb25Gcm9tCiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRodW5rR2Vu
ZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRodW5rR2Vu
ZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaGF0UHJlc2VydmVz
UmVnc1RodW5rR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NvbnN0
cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qKTsKKworaW5saW5lIFRodW5r
R2VuZXJhdG9yIGxpbmtUaHVua0dlbmVyYXRvckZvcigKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dp
dGNoIChraW5kKSB7CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgc3dpdGNoIChyZWdp
c3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgor
ICAgICAgICAgICAgcmV0dXJuIGxpbmtDYWxsVGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2Ug
TXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIGxpbmtDYWxsVGhhdFBy
ZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7Cisg
ICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAg
IHJldHVybiBsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFBy
ZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIGxpbmtDb25zdHJ1Y3RUaGF0UHJl
c2VydmVzUmVnc1RodW5rR2VuZXJhdG9yOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQog
CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IoVk0q
KTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVn
c1RodW5rR2VuZXJhdG9yKFZNKik7CisKK2lubGluZSBUaHVua0dlbmVyYXRvciBsaW5rQ2xvc3Vy
ZUNhbGxUaHVua0dlbmVyYXRvckZvcihSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJz
KQoreworICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgY2FzZSBSZWdpc3RlclByZXNlcnZh
dGlvbk5vdFJlcXVpcmVkOgorICAgICAgICByZXR1cm4gbGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5l
cmF0b3I7CisgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgIHJldHVybiBs
aW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yOworICAgIH0KKyAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQogCiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENhbGxUaHVua0dlbmVyYXRvcihWTSopOwogTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcihWTSopOworTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVy
YXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJl
c2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKik7CisKK2lubGluZSBUaHVua0dlbmVyYXRvciB2
aXJ0dWFsVGh1bmtHZW5lcmF0b3JGb3IoCisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
LCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAoa2lu
ZCkgeworICAgIGNhc2UgQ29kZUZvckNhbGw6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7
CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAg
ICAgIHJldHVybiB2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQ
cmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiB2aXJ0dWFsQ2FsbFRoYXRQcmVz
ZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3I7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDb2RlRm9yQ29uc3RydWN0OgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAg
ICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICBy
ZXR1cm4gdmlydHVhbENvbnN0cnVjdFRodW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQ
cmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiB2aXJ0dWFsQ29uc3RydWN0VGhh
dFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsK
KyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsK
K30KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNhbGxHZW5lcmF0b3IoVk0qKTsKIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IoVk0qKTsKK01hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVUYWlsQ2FsbEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qKTsKIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNo
YXJDb2RlQXRUaHVua0dlbmVyYXRvcihWTSopOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50Q0xvb3AuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludENMb29wLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICsz
NSw3IEBAIG5hbWVzcGFjZSBMTEludCB7CiAKIHZvaWQgQ0xvb3A6OmluaXRpYWxpemUoKQogewot
ICAgIGV4ZWN1dGUoMCwgZ2V0T3Bjb2RlKGxsaW50X3VudXNlZCksIHRydWUpOworICAgIGV4ZWN1
dGUobGxpbnRfdW51c2VkLCAwLCAwLCAwLCB0cnVlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgTExJ
bnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludENMb29wLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuaAkocmV2aXNp
b24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgog
I2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKKyNpbmNsdWRlICJQ
cm90b0NhbGxGcmFtZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBMTEludCB7CkBA
IC00MCw3ICs0MSw3IEBAIGNvbnN0IE9wY29kZUlEIGxsaW50X3VudXNlZCA9IGxsaW50X2VuZDsK
IGNsYXNzIENMb29wIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7Ci0g
ICAgc3RhdGljIEpTVmFsdWUgZXhlY3V0ZShDYWxsRnJhbWUqLCBPcGNvZGUgZW50cnlPcGNvZGUs
IGJvb2wgaXNJbml0aWFsaXphdGlvblBhc3MgPSBmYWxzZSk7CisgICAgc3RhdGljIEpTVmFsdWUg
ZXhlY3V0ZShPcGNvZGVJRCBlbnRyeU9wY29kZUlELCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywg
Vk0qLCBQcm90b0NhbGxGcmFtZSosIGJvb2wgaXNJbml0aWFsaXphdGlvblBhc3MgPSBmYWxzZSk7
CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkluc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTY29wZS5o
IgogI2luY2x1ZGUgIkxMSW50Q0xvb3AuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlByb3BlcnR5T2Zm
c2V0LmgiCiAKQEAgLTg3LDYgKzg4LDcgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhW
TSYgdm0pCiAgICAgQVNTRVJUKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgPT0gQ2FsbEZy
YW1lSGVhZGVyU2xvdHMpOwogCiAgICAgQVNTRVJUKCFDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zm
c2V0KCkpOworICAgIEFTU0VSVChKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSA9PSAoUHRy
U2l6ZSAqIDIpIC8gU2xvdFNpemUpOwogICAgIEFTU0VSVChDYWxsRnJhbWU6OnJldHVyblBDT2Zm
c2V0KCkgPT0gQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpICsgUHRyU2l6ZSk7CiAgICAg
QVNTRVJUKEpTU3RhY2s6OkNvZGVCbG9jayAqIHNpemVvZihSZWdpc3RlcikgPT0gQ2FsbEZyYW1l
OjpyZXR1cm5QQ09mZnNldCgpICsgUHRyU2l6ZSk7CiAgICAgQVNTRVJUKEpTU3RhY2s6OlNjb3Bl
Q2hhaW4gKiBzaXplb2YoUmVnaXN0ZXIpID09IEpTU3RhY2s6OkNvZGVCbG9jayAqIHNpemVvZihS
ZWdpc3RlcikgKyBTbG90U2l6ZSk7CkBAIC0xMjMsNiArMTI1LDEzIEBAIHZvaWQgRGF0YTo6cGVy
Zm9ybUFzc2VydGlvbnMoVk0mIHZtKQogICAgIEFTU0VSVChWYWx1ZVVuZGVmaW5lZCA9PSAoVGFn
Qml0VHlwZU90aGVyIHwgVGFnQml0VW5kZWZpbmVkKSk7CiAgICAgQVNTRVJUKFZhbHVlTnVsbCA9
PSBUYWdCaXRUeXBlT3RoZXIpOwogI2VuZGlmCisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0
KSB8fCBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIEFTU0VSVCghbWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpOworI2VsaWYgQ1BVKEFSTSkgfHwgQ1BVKFNINCkKKyAgICBBU1NFUlQobWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPT0gMjQpOworI2VsaWYgQ1BVKFg4NikgfHwgQ1BV
KE1JUFMpCisgICAgQVNTRVJUKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID09IDQwKTsK
KyNlbmRpZgogICAgIEFTU0VSVChTdHJpbmdUeXBlID09IDUpOwogICAgIEFTU0VSVChPYmplY3RU
eXBlID09IDE3KTsKICAgICBBU1NFUlQoRmluYWxPYmplY3RUeXBlID09IDE4KTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBv
aW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiTExJbnRUaHVua3MuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVy
cHJldGVyLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKKyNp
bmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgTExJbnQgewpAQCAtNDUsMTQgKzQ3LDEyIEBAIHN0YXRpYyB2b2lkIHNl
dEZ1bmN0aW9uRW50cnlwb2ludChWTSYgdm0KICAgICBpZiAodm0uY2FuVXNlSklUKCkpIHsKICAg
ICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpIHsKICAgICAgICAgICAgIGNvZGVCbG9jay0+
c2V0SklUQ29kZSgKLSAgICAgICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2
bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ2FsbEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBKSVRDb2Rl
OjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgICAgICAgICAgdm0uZ2V0Q1RJU3R1YihmdW5j
dGlvbkZvckNhbGxBcml0eUNoZWNrVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgICAgICAg
ICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZv
ckNhbGxFbnRyeVRodW5rR2VuZXJhdG9yKSwgdm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNhbGxB
cml0eUNoZWNrVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVu
aykpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBBU1NFUlQoa2lu
ZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKICAgICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAot
ICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihmdW5j
dGlvbkZvckNvbnN0cnVjdEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBKSVRDb2RlOjpJbnRlcnByZXRl
clRodW5rKSksCi0gICAgICAgICAgICB2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ29uc3RydWN0
QXJpdHlDaGVja1RodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgICAgICAgICAgYWRvcHRSZWYo
bmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEVudHJ5
VGh1bmtHZW5lcmF0b3IpLCB2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ29uc3RydWN0QXJpdHlD
aGVja1RodW5rR2VuZXJhdG9yKS5jb2RlKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKQEAgLTYwLDE0
ICs2MCwxMiBAQCBzdGF0aWMgdm9pZCBzZXRGdW5jdGlvbkVudHJ5cG9pbnQoVk0mIHZtCiAgICAg
VU5VU0VEX1BBUkFNKHZtKTsKICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewogICAgICAg
ICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0
SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9m
dW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwK
LSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxs
aW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrKSk7CisgICAgICAgICAgICBhZG9wdFJl
ZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29k
ZVJlZihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2No
ZWNrKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKICAgICBjb2RlQmxvY2st
PnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2Z1bmN0aW9uX2Zvcl9jb25z
dHJ1Y3RfcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zv
cl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2spKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJ
VENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZnVu
Y3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3Jl
YXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2sp
LCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogfQogCiBzdGF0aWMgdm9pZCBzZXRFdmFs
RW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQpAQCAtNzUsMTYgKzczLDE0
IEBAIHN0YXRpYyB2b2lkIHNldEV2YWxFbnRyeXBvaW50KFZNJiB2bSwgQ28KICNpZiBFTkFCTEUo
SklUKQogICAgIGlmICh2bS5jYW5Vc2VKSVQoKSkgewogICAgICAgICBjb2RlQmxvY2stPnNldEpJ
VENvZGUoCi0gICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElT
dHViKGV2YWxFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykp
LAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICAgICAgYWRv
cHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihldmFsRW50cnlUaHVua0dlbmVy
YXRvciksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5r
KSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKICAg
ICBVTlVTRURfUEFSQU0odm0pOwogICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAg
YWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVM
TEludENvZGVSZWYobGxpbnRfZXZhbF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1
bmspKSwKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICBhZG9wdFJl
ZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29k
ZVJlZihsbGludF9ldmFsX3Byb2xvZ3VlKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCksIEpJVENv
ZGU6OkludGVycHJldGVyVGh1bmspKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldFByb2dyYW1FbnRy
eXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC05MiwxNiArODgsMTQgQEAg
c3RhdGljIHZvaWQgc2V0UHJvZ3JhbUVudHJ5cG9pbnQoVk0mIHZtLAogI2lmIEVOQUJMRShKSVQp
CiAgICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29k
ZSgKLSAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIo
cHJvZ3JhbUVudHJ5VGh1bmtHZW5lcmF0b3IpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSks
Ci0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgICAgICAgICBhZG9w
dFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKHByb2dyYW1FbnRyeVRodW5rR2Vu
ZXJhdG9yKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1
bmspKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAog
ICAgIFVOVVNFRF9QQVJBTSh2bSk7CiAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAg
ICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0
ZUxMSW50Q29kZVJlZihsbGludF9wcm9ncmFtX3Byb2xvZ3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0
ZXJUaHVuaykpLAotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgICAgIGFk
b3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJ
bnRDb2RlUmVmKGxsaW50X3Byb2dyYW1fcHJvbG9ndWUpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIo
KSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKIH0KIAogdm9pZCBzZXRFbnRyeXBvaW50
KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC0xMjMsNyArMTE3LDkgQEAgdm9pZCBz
ZXRFbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjbwogCiB1bnNpZ25lZCBmcmFtZVJlZ2lz
dGVyQ291bnRGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCiB7Ci0gICAgcmV0dXJuIGNvZGVCbG9j
ay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHVuc2lnbmVk
Pihjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSA9PSBXVEY6OnJvdW5kVXBUb011bHRp
cGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNv
ZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMpKSk7CisKKyAgICByZXR1cm4gcm91bmRMb2Nh
bFJlZ2lzdGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZzZXQoY29kZUJsb2NrLT5tX251bUNhbGxl
ZVJlZ2lzdGVycyArIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5SZWdpc3RlcnMpOwog
fQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0
cmFjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAi
QXJyYXlQcm9maWxlLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiQ29tbW9u
U2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiRGVidWdnZXIuaCIKICNpbmNsdWRlICJFeGVjdXRhYmxl
LmgiCiAjaW5jbHVkZSAiSGVhcC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50T3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50T3Bjb2RlLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludE9wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICsz
NCwxOCBAQAogCiAjZGVmaW5lIEZPUl9FQUNIX0xMSU5UX05PSklUX05BVElWRV9IRUxQRVIobWFj
cm8pIFwKICAgICBtYWNybyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlLCAxKSBcCi0gICAgbWFjcm8o
cmV0dXJuRnJvbUphdmFTY3JpcHQsIDEpCisgICAgbWFjcm8obGxpbnRfcmV0dXJuX3RvX2hvc3Qs
IDEpIFwKKyAgICBtYWNybyhsbGludF9jYWxsX3RvX2phdmFzY3JpcHQsIDEpIFwKKyAgICBtYWNy
byhsbGludF9jYWxsX3RvX25hdGl2ZV9mdW5jdGlvbiwgMSkgXAorICAgIG1hY3JvKGhhbmRsZVVu
Y2F1Z2h0RXhjZXB0aW9uLCAxKSBcCisgICAgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2RpZF9y
ZXR1cm5fZnJvbV9qc18xLCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9m
cm9tX2pzXzIsIDEpIFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNf
MywgMSkgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc180LCAxKSBc
CisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzUsIDEpIFwKKyAgICBt
YWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfNiwgMSkgXAorICAgIG1hY3JvKGxs
aW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc183LCAxKSBcCiAKICNlbHNlIC8vICFFTkFCTEUo
TExJTlRfQ19MT09QKQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRT
bG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNs
dWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHNFeGNlcHRp
b25zLmgiCisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVkZSAiR2V0dGVy
U2V0dGVyLmgiCiAjaW5jbHVkZSAiSG9zdENhbGxSZXR1cm5WYWx1ZS5oIgogI2luY2x1ZGUgIklu
dGVycHJldGVyLmgiCkBAIC01MSw2ICs1Miw3IEBACiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnBy
ZXRlci5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgorI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJl
UmFyZURhdGFJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAK
QEAgLTgyLDcgKzg0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CiAgICAg
ICAgIHJldHVybiBlbmNvZGVSZXN1bHQoZmlyc3QsIHNlY29uZCk7ICAgICAgICBcCiAgICAgfSB3
aGlsZSAoZmFsc2UpCiAKLSNkZWZpbmUgTExJTlRfRU5EX0lNUEwoKSBMTElOVF9SRVRVUk5fVFdP
KHBjLCBleGVjKQorI2RlZmluZSBMTElOVF9FTkRfSU1QTCgpIExMSU5UX1JFVFVSTl9UV08ocGMs
IDApCiAKICNkZWZpbmUgTExJTlRfVEhST1coZXhjZXB0aW9uVG9UaHJvdykgZG8geyAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICAgICAgdm0udGhyb3dFeGNlcHRpb24oZXhlYywgZXhjZXB0
aW9uVG9UaHJvdyk7ICAgICAgICAgICAgICAgIFwKQEAgLTEzNywyMiArMTM5LDI4IEBAIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgTExJbnQgewogI2RlZmluZSBMTElOVF9DQUxMX1RIUk9XKGV4
ZWMsIGV4Y2VwdGlvblRvVGhyb3cpIGRvIHsgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBF
eGVjU3RhdGUqIF9fY3RfZXhlYyA9IChleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAogICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihfX2N0X2V4ZWMsIGV4Y2VwdGlvblRv
VGhyb3cpOyAgICAgICAgICAgICAgICAgXAotICAgICAgICBMTElOVF9DQUxMX0VORF9JTVBMKF9f
Y3RfZXhlYywgY2FsbFRvVGhyb3coX19jdF9leGVjKSk7ICAgICAgICAgXAorICAgICAgICBMTElO
VF9DQUxMX0VORF9JTVBMKDAsIGNhbGxUb1Rocm93KF9fY3RfZXhlYykpOyAgICAgICAgICAgICAg
ICAgXAogICAgIH0gd2hpbGUgKGZhbHNlKQogCiAjZGVmaW5lIExMSU5UX0NBTExfQ0hFQ0tfRVhD
RVBUSU9OKGV4ZWMpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEV4
ZWNTdGF0ZSogX19jY2VfZXhlYyA9IChleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgIGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBMTElOVF9DQUxMX0VORF9JTVBM
KF9fY2NlX2V4ZWMsIGNhbGxUb1Rocm93KF9fY2NlX2V4ZWMpKTsgICBcCisgICAgICAgICAgICBM
TElOVF9DQUxMX0VORF9JTVBMKDAsIGNhbGxUb1Rocm93KF9fY2NlX2V4ZWMpKTsgICAgICAgICAg
ICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKICNkZWZpbmUgTExJTlRfQ0FMTF9SRVRVUk4oZXhl
YywgY2FsbFRhcmdldCkgZG8geyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRXhl
Y1N0YXRlKiBfX2NyX2V4ZWMgPSAoZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICAgICAgdm9pZCogX19jcl9jYWxsVGFyZ2V0ID0gKGNhbGxUYXJnZXQpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgTExJTlRfQ0FMTF9DSEVDS19FWENFUFRJ
T04oX19jcl9leGVjLT5jYWxsZXJGcmFtZSgpKTsgICAgICAgICAgIFwKKyAgICAgICAgTExJTlRf
Q0FMTF9DSEVDS19FWENFUFRJT04oX19jcl9leGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKICAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1QTChfX2NyX2V4ZWMsIF9fY3JfY2FsbFRhcmdl
dCk7ICAgICAgICAgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAorI2RlZmluZSBMTElO
VF9SRVRVUk5fQ0FMTEVFX0ZSQU1FKGV4ZWNDYWxsZWUpIGRvIHsgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICBFeGVjU3RhdGUqIF9fcmNmX2V4ZWMgPSAoZXhlY0NhbGxlZSk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCBfX3Jj
Zl9leGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKGZh
bHNlKQorICAgIAorCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV9v
cGVyYW5kKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24qIHBjLCBpbnQgZnJvbVdoZXJlLCBp
bnQgb3BlcmFuZCkKIHsKICAgICBMTElOVF9CRUdJTigpOwpAQCAtMjQyLDYgKzI1MCwxMCBAQCBM
TElOVF9TTE9XX1BBVEhfREVDTCh0cmFjZSkKICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludHB0
cl90PihwYyAtIGV4ZWMtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKSwKICAg
ICAgICAgICAgIG9wY29kZU5hbWVzW2V4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlE
KHBjWzBdLnUub3Bjb2RlKV0sCiAgICAgICAgICAgICBleGVjLT5zY29wZSgpLCBwYyk7CisgICAg
aWYgKGV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKSA9
PSBvcF9lbnRlcikgeworICAgICAgICBkYXRhTG9nRigiRnJhbWUgd2lsbCBldmVudHVhbGx5IHJl
dHVybiB0byAlcFxuIiwgZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKKyAgICAgICAgKmJpdHdp
c2VfY2FzdDx2b2xhdGlsZSBjaGFyKj4oZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKKyAgICB9
CiAgICAgaWYgKGV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bj
b2RlKSA9PSBvcF9yZXQpIHsKICAgICAgICAgZGF0YUxvZ0YoIldpbGwgYmUgcmV0dXJuaW5nIHRv
ICVwXG4iLCBleGVjLT5yZXR1cm5QQygpLnZhbHVlKCkpOwogICAgICAgICBkYXRhTG9nRigiVGhl
IG5ldyBjZnIgd2lsbCBiZSAlcFxuIiwgZXhlYy0+Y2FsbGVyRnJhbWUoKSk7CkBAIC0zMjUsMTUg
KzMzNywxNyBAQCBzdGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGVudHJ5T1NSKEV4ZWNTCiAgICAg
CiAgICAgaWYgKCFzaG91bGRKSVQoZXhlYykpIHsKICAgICAgICAgY29kZUJsb2NrLT5kb250SklU
QW55dGltZVNvb24oKTsKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICAg
ICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsKICAgICB9CiAgICAgaWYgKCFqaXRDb21waWxlQW5k
U2V0SGV1cmlzdGljcyhjb2RlQmxvY2ssIGV4ZWMpKQotICAgICAgICBMTElOVF9SRVRVUk5fVFdP
KDAsIGV4ZWMpOworICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAgIAogICAgIGlm
IChraW5kID09IFByb2xvZ3VlKQotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKGNvZGVCbG9jay0+
aml0Q29kZSgpLT5leGVjdXRhYmxlQWRkcmVzcygpLCBleGVjKTsKKyAgICAgICAgTExJTlRfUkVU
VVJOX1RXTyhjb2RlQmxvY2stPmppdENvZGUoKS0+ZXhlY3V0YWJsZUFkZHJlc3MoKSwgMCk7CiAg
ICAgQVNTRVJUKGtpbmQgPT0gQXJpdHlDaGVjayk7Ci0gICAgTExJTlRfUkVUVVJOX1RXTyhjb2Rl
QmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpLmV4ZWN1dGFibGVBZGRyZXNzKCksIGV4ZWMp
OworICAgIExMSU5UX1JFVFVSTl9UV08oY29kZUJsb2NrLT5qaXRDb2RlKCktPmFkZHJlc3NGb3JD
YWxsKAorICAgICAgICAqY29kZUJsb2NrLT52bSgpLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJs
ZSgpLCBNdXN0Q2hlY2tBcml0eSwKKyAgICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1
aXJlZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwgMCk7CiB9CiAjZWxzZSAvLyBFTkFCTEUoSklUKQog
c3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBlbnRyeU9TUihFeGVjU3RhdGUqIGV4ZWMsIEluc3Ry
dWN0aW9uKiwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IGNoYXIqLCBFbnRyeUtpbmQpCkBA
IC0zODEsMTEgKzM5NSwxMSBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChsb29wX29zcikKICAgICAK
ICAgICBpZiAoIXNob3VsZEpJVChleGVjKSkgewogICAgICAgICBjb2RlQmxvY2stPmRvbnRKSVRB
bnl0aW1lU29vbigpOwotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIGV4ZWMpOworICAgICAg
ICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAgIH0KICAgICAKICAgICBpZiAoIWppdENvbXBp
bGVBbmRTZXRIZXVyaXN0aWNzKGNvZGVCbG9jaywgZXhlYykpCi0gICAgICAgIExMSU5UX1JFVFVS
Tl9UV08oMCwgZXhlYyk7CisgICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgMCk7CiAgICAgCiAg
ICAgQVNTRVJUKGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2VsaW5lSklUKTsK
ICAgICAKQEAgLTM5OCwxMCArNDEyLDEwIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKGxvb3Bfb3Ny
KQogICAgIHZvaWQqIGp1bXBUYXJnZXQgPSBjb2RlQmxvY2stPmppdENvZGUoKS0+ZXhlY3V0YWJs
ZUFkZHJlc3NBdE9mZnNldChtYXBwaW5nLT5tX21hY2hpbmVDb2RlT2Zmc2V0KTsKICAgICBBU1NF
UlQoanVtcFRhcmdldCk7CiAgICAgCi0gICAgTExJTlRfUkVUVVJOX1RXTyhqdW1wVGFyZ2V0LCBl
eGVjKTsKKyAgICBMTElOVF9SRVRVUk5fVFdPKGp1bXBUYXJnZXQsIGV4ZWMtPnRvcE9mRnJhbWUo
KSk7CiAjZWxzZSAvLyBFTkFCTEUoSklUKQogICAgIGNvZGVCbG9jay0+ZG9udEpJVEFueXRpbWVT
b29uKCk7Ci0gICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICBMTElOVF9SRVRVUk5f
VFdPKDAsIDApOwogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiB9CiAKQEAgLTQzNywxMyArNDUxLDM0
IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHN0YWNrX2NoZWNrKQogICAgIGRhdGFMb2dGKCJOdW0g
dmFycyA9ICV1LlxuIiwgZXhlYy0+Y29kZUJsb2NrKCktPm1fbnVtVmFycyk7CiAgICAgZGF0YUxv
Z0YoIkN1cnJlbnQgZW5kIGlzIGF0ICVwLlxuIiwgZXhlYy0+dm0oKS5pbnRlcnByZXRlci0+c3Rh
Y2soKS5lbmQoKSk7CiAjZW5kaWYKLSAgICBBU1NFUlQoIWV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXIt
PnN0YWNrKCkuY29udGFpbnNBZGRyZXNzKCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0
ZXJGb3JMb2NhbChleGVjLT5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3RlcnMpLm9mZnNl
dCgpXSkpOwotICAgIGlmIChVTkxJS0VMWSghdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCkuZ3Jvdygm
ZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZXhlYy0+Y29kZUJsb2Nr
KCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKS5vZmZzZXQoKV0pKSkgewotICAgICAgICBleGVjID0g
ZXhlYy0+Y2FsbGVyRnJhbWUoKTsKLSAgICAgICAgQ29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRl
clRocm93SW5DYWxsZXIoZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKLSAg
ICAgICAgcGMgPSByZXR1cm5Ub1Rocm93Rm9yVGhyb3duRXhjZXB0aW9uKGV4ZWMpOwotICAgIH0K
LSAgICBMTElOVF9FTkRfSU1QTCgpOworCisgICAgLy8gVGhpcyBzdGFjayBjaGVjayBpcyBkb25l
IGluIHRoZSBwcm9sb2d1ZSBmb3IgYSBmdW5jdGlvbiBjYWxsLCBhbmQgdGhlCisgICAgLy8gQ2Fs
bEZyYW1lIGlzIG5vdCBjb21wbGV0ZWx5IHNldCB1cCB5ZXQuIEZvciBleGFtcGxlLCBpZiB0aGUg
ZnJhbWUgbmVlZHMKKyAgICAvLyBhbiBhY3RpdmF0aW9uIG9iamVjdCwgdGhlIGFjdGl2YXRpb24g
b2JqZWN0IHdpbGwgb25seSBiZSBzZXQgdXAgYWZ0ZXIKKyAgICAvLyB3ZSBzdGFydCBleGVjdXRp
bmcgdGhlIGZ1bmN0aW9uLiBJZiB3ZSBuZWVkIHRvIHRocm93IGEgU3RhY2tPdmVyZmxvd0Vycm9y
CisgICAgLy8gaGVyZSwgdGhlbiB3ZSBuZWVkIHRvIHRlbGwgdGhlIHByb2xvZ3VlIHRvIHN0YXJ0
IHRoZSBzdGFjayB1bndpbmRpbmcgZnJvbQorICAgIC8vIHRoZSBjYWxsZXIgZnJhbWUgKHdoaWNo
IGlzIGZ1bGx5IHNldCB1cCkgaW5zdGVhZC4gVG8gZG8gdGhhdCwgd2UgcmV0dXJuCisgICAgLy8g
dGhlIGNhbGxlcidzIENhbGxGcmFtZSBpbiB0aGUgc2Vjb25kIHJldHVybiB2YWx1ZS4KKyAgICAv
LworICAgIC8vIElmIHRoZSBzdGFjayBjaGVjayBzdWNjZWVkcyBhbmQgd2UgZG9uJ3QgbmVlZCB0
byB0aHJvdyB0aGUgZXJyb3IsIHRoZW4KKyAgICAvLyB3ZSdsbCByZXR1cm4gMCBpbnN0ZWFkLiBU
aGUgcHJvbG9ndWUgd2lsbCBjaGVjayBmb3IgYSBub24temVybyB2YWx1ZQorICAgIC8vIHdoZW4g
ZGV0ZXJtaW5pbmcgd2hldGhlciB0byBzZXQgdGhlIGNhbGxGcmFtZSBvciBub3QuCisKKyAgICAv
LyBGb3IgSklUIGVuYWJsZWQgYnVpbGRzIHdoaWNoIHVzZXMgdGhlIEMgc3RhY2ssIHRoZSBzdGFj
ayBpcyBub3QgZ3Jvd2FibGUuCisgICAgLy8gSGVuY2UsIGlmIHdlIGdldCBoZXJlLCB0aGVuIHdl
IGtub3cgYSBzdGFjayBvdmVyZmxvdyBpcyBpbW1pbmVudC4gU28sIGp1c3QKKyAgICAvLyB0aHJv
dyB0aGUgU3RhY2tPdmVyZmxvd0Vycm9yIHVuY29uZGl0aW9uYWxseS4KKyNpZiBFTkFCTEUoTExJ
TlRfQ19MT09QKQorICAgIEFTU0VSVCghdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCkuY29udGFpbnNB
ZGRyZXNzKGV4ZWMtPnRvcE9mRnJhbWUoKSkpOworICAgIGlmIChMSUtFTFkodm0uaW50ZXJwcmV0
ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IoZXhlYy0+dG9wT2ZGcmFtZSgpKSkpCisgICAg
ICAgIExMSU5UX1JFVFVSTl9UV08ocGMsIDApOworI2VuZGlmCisKKyAgICBleGVjID0gZXhlYy0+
Y2FsbGVyRnJhbWUoKTsKKyAgICB2bS50b3BDYWxsRnJhbWUgPSBleGVjOworICAgIEVycm9ySGFu
ZGxpbmdTY29wZSBlcnJvclNjb3BlKHZtKTsKKyAgICBDb21tb25TbG93UGF0aHM6OmludGVycHJl
dGVyVGhyb3dJbkNhbGxlcihleGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOwor
ICAgIHBjID0gcmV0dXJuVG9UaHJvd0ZvclRocm93bkV4Y2VwdGlvbihleGVjKTsKKyAgICBMTElO
VF9SRVRVUk5fVFdPKHBjLCBleGVjKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX2NyZWF0ZV9hY3RpdmF0aW9uKQpAQCAtMTA0NSw3ICsxMDgwLDcgQEAgaW5saW5lIFNsb3dQ
YXRoUmV0dXJuVHlwZSBzZXRVcENhbGwoRXhlYwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBj
b2RlUHRyOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gMDsKICAgICBpZiAoZXhlY3V0YWJs
ZS0+aXNIb3N0RnVuY3Rpb24oKSkKLSAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUtPmhvc3RD
b2RlRW50cnlGb3Ioa2luZCk7CisgICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5lbnRyeXBv
aW50Rm9yKHZtLCBraW5kLCBNdXN0Q2hlY2tBcml0eSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RS
ZXF1aXJlZCk7CiAgICAgZWxzZSB7CiAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rp
b25FeGVjdXRhYmxlID0gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oZXhlY3V0YWJs
ZSk7CiAgICAgICAgIEpTT2JqZWN0KiBlcnJvciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+cHJlcGFy
ZUZvckV4ZWN1dGlvbihleGVjQ2FsbGVlLCBjYWxsZWUtPnNjb3BlKCksIGtpbmQpOwpAQCAtMTA1
MywxMiArMTA4OCwxNiBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHNldFVwQ2FsbChFeGVj
CiAgICAgICAgICAgICBMTElOVF9DQUxMX1RIUk9XKGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCks
IGVycm9yKTsKICAgICAgICAgY29kZUJsb2NrID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5jb2RlQmxv
Y2tGb3Ioa2luZCk7CiAgICAgICAgIEFTU0VSVChjb2RlQmxvY2spOworICAgICAgICBBcml0eUNo
ZWNrTW9kZSBhcml0eTsKICAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVtUGFyYW1ldGVy
cygpKSkKLSAgICAgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmpzQ29kZVdp
dGhBcml0eUNoZWNrRW50cnlGb3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9IE11c3RDaGVj
a0FyaXR5OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVj
dXRhYmxlLT5qc0NvZGVFbnRyeUZvcihraW5kKTsKKyAgICAgICAgICAgIGFyaXR5ID0gQXJpdHlD
aGVja05vdFJlcXVpcmVkOworICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5l
bnRyeXBvaW50Rm9yKHZtLCBraW5kLCBhcml0eSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1
aXJlZCk7CiAgICAgfQogICAgIAorICAgIEFTU0VSVCghIWNvZGVQdHIpOworICAgIAogICAgIGlm
ICghTExJTlRfQUxXQVlTX0FDQ0VTU19TTE9XICYmIGNhbGxMaW5rSW5mbykgewogICAgICAgICBF
eGVjU3RhdGUqIGV4ZWNDYWxsZXIgPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwogICAgICAg
ICAKQEAgLTExMTAsMTkgKzExNDksMTkgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X2NvbnN0cnVjdAogICAgIHJldHVybiBnZW5lcmljQ2FsbChleGVjLCBwYywgQ29kZUZvckNvbnN0
cnVjdCk7CiB9CiAKLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zaXplX2FuZF9hbGxv
Y19mcmFtZV9mb3JfdmFyYXJncykKK0xMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9zaXpl
X2ZyYW1lX2Zvcl92YXJhcmdzKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgLy8gVGhpcyBu
ZWVkcyB0bzoKICAgICAvLyAtIFNldCB1cCBhIGNhbGwgZnJhbWUgd2hpbGUgcmVzcGVjdGluZyB0
aGUgdmFyaWFibGUgYXJndW1lbnRzLgogICAgIAotICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSA9
IHNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNr
KCksCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlID0gc2l6ZUZyYW1lRm9yVmFyYXJncyhleGVj
LCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksCiAgICAgICAgIExMSU5UX09QX0MoNCkuanNWYWx1
ZSgpLCBwY1s1XS51Lm9wZXJhbmQpOwogICAgIExMSU5UX0NBTExfQ0hFQ0tfRVhDRVBUSU9OKGV4
ZWMpOwogICAgIAogICAgIHZtLm5ld0NhbGxGcmFtZVJldHVyblZhbHVlID0gZXhlY0NhbGxlZTsK
IAotICAgIExMSU5UX0VORCgpOworICAgIExMSU5UX1JFVFVSTl9DQUxMRUVfRlJBTUUoZXhlY0Nh
bGxlZSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX3ZhcmFyZ3Mp
CkBAIC0xMzEyLDEzICsxMzUxLDYgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3By
b2ZpbGVfZAogICAgIExMSU5UX0VORCgpOwogfQogCi1MTElOVF9TTE9XX1BBVEhfREVDTCh0aHJv
d19mcm9tX25hdGl2ZV9jYWxsKQotewotICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgQVNTRVJUKHZt
LmV4Y2VwdGlvbigpKTsKLSAgICBMTElOVF9FTkQoKTsKLX0KLQogTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX2hhbmRsZV9leGNlcHRpb24pCiB7CiAgICAgTExJTlRfQkVHSU5fTk9fU0VU
X1BDKCk7CkBAIC0xMzg4LDYgKzE0MjAsMjMgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX3B1dF90b19zYwogICAgIExMSU5UX0VORCgpOwogfQogCitleHRlcm4gIkMiIFNsb3dQYXRo
UmV0dXJuVHlwZSBsbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvcihWTSogdm0sIFByb3Rv
Q2FsbEZyYW1lKiBwcm90b0ZyYW1lKQoreworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHZtLT50b3BD
YWxsRnJhbWU7CisgICAgaWYgKCFleGVjKQorICAgICAgICBleGVjID0gcHJvdG9GcmFtZS0+c2Nv
cGUoKS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKKyAgICB0aHJvd1N0YWNrT3ZlcmZs
b3dFcnJvcihleGVjKTsKKyAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOworfQorCisjaWYg
RU5BQkxFKExMSU5UX0NfTE9PUCkKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50
X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5KFZNKiB2bSwgUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2sp
Cit7CisgICAgYm9vbCBzdWNjZXNzID0gdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNh
cGFjaXR5Rm9yKG5ld1RvcE9mU3RhY2spOworICAgIHJldHVybiBlbmNvZGVSZXN1bHQocmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oc3VjY2VzcyksIDApOworfQorI2VuZGlmCisKIGV4dGVybiAiQyIg
dm9pZCBsbGludF93cml0ZV9iYXJyaWVyX3Nsb3coRXhlY1N0YXRlKiwgSlNDZWxsKiBjZWxsKQog
ewogICAgIEhlYXA6OndyaXRlQmFycmllcihjZWxsKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzYsMTIgKzM2LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBFeGVjU3RhdGU7CiBzdHJ1
Y3QgSW5zdHJ1Y3Rpb247CitzdHJ1Y3QgUHJvdG9DYWxsRnJhbWU7CiAKIG5hbWVzcGFjZSBMTElu
dCB7CiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3RyYWNlX29wZXJhbmQo
RXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24qLCBpbnQgZnJvbVdoZXJlLCBpbnQgb3BlcmFuZCk7CiBl
eHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV92YWx1ZShFeGVjU3RhdGUq
LCBJbnN0cnVjdGlvbiosIGludCBmcm9tV2hlcmUsIGludCBvcGVyYW5kKTsKLWV4dGVybiAiQyIg
dm9pZCBsbGludF93cml0ZV9iYXJyaWVyX3Nsb3coRXhlY1N0YXRlKiwgSlNDZWxsKik7CitleHRl
cm4gIkMiIHZvaWQgbGxpbnRfd3JpdGVfYmFycmllcl9zbG93KEV4ZWNTdGF0ZSosIEpTQ2VsbCop
IFdURl9JTlRFUk5BTDsKIAogI2RlZmluZSBMTElOVF9TTE9XX1BBVEhfREVDTChuYW1lKSBcCiAg
ICAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfIyNuYW1lKEV4ZWNTdGF0ZSog
ZXhlYywgSW5zdHJ1Y3Rpb24qIHBjKQpAQCAtMTAxLDcgKzEwMiw3IEBAIExMSU5UX1NMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfbmUKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChz
bG93X3BhdGhfbmV3X2Z1bmNfZXhwKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfY2FsbCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2NvbnN0
cnVjdCk7Ci1MTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3NpemVfYW5kX2Fs
bG9jX2ZyYW1lX2Zvcl92YXJhcmdzKTsKK0xMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfc2l6ZV9mcmFtZV9mb3JfdmFyYXJncyk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RF
Q0woc2xvd19wYXRoX2NhbGxfdmFyYXJncyk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0wo
c2xvd19wYXRoX2NhbGxfZXZhbCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19w
YXRoX3RlYXJfb2ZmX2FjdGl2YXRpb24pOwpAQCAtMTE5LDExICsxMjAsMTQgQEAgTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9oYQogTExJTlRfU0xPV19QQVRIX0hJRERFTl9E
RUNMKHNsb3dfcGF0aF9kZWJ1Zyk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19w
YXRoX3Byb2ZpbGVfd2lsbF9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfcHJvZmlsZV9kaWRfY2FsbCk7Ci1MTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0wodGhy
b3dfZnJvbV9uYXRpdmVfY2FsbCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19w
YXRoX2hhbmRsZV9leGNlcHRpb24pOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3df
cGF0aF9yZXNvbHZlX3Njb3BlKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfZ2V0X2Zyb21fc2NvcGUpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9wdXRfdG9fc2NvcGUpOworZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdGhy
b3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IoVk0qLCBQcm90b0NhbGxGcmFtZSopIFdURl9JTlRFUk5B
TDsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5
cGUgbGxpbnRfc3RhY2tfY2hlY2tfYXRfdm1fZW50cnkoVk0qLCBSZWdpc3RlciopIFdURl9JTlRF
Uk5BTDsKKyNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3BwCShyZXZpc2lvbiAxNjI5
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05NCw1OCArOTQsMTYgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHByb2dy
YW1FbnRyeVRodW5rRwogCiAvLyBOb24tSklUIChpLmUuIEMgTG9vcCBMTElOVCkgY2FzZToKIAot
dHlwZWRlZiBKU1ZhbHVlICgqRXhlY3V0ZUNvZGUpIChDYWxsRnJhbWUqLCB2b2lkKiBleGVjdXRh
YmxlQWRkcmVzcyk7Ci0KLXRlbXBsYXRlPEV4ZWN1dGVDb2RlIGV4ZWN1dGU+Ci1FbmNvZGVkSlNW
YWx1ZSBkb0NhbGxUb0phdmFTY3JpcHQodm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFByb3RvQ2Fs
bEZyYW1lKiBwcm90b0NhbGxGcmFtZSkKK0VuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQo
dm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZNKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2Fs
bEZyYW1lKQogewotICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gcHJvdG9DYWxsRnJhbWUtPmNv
ZGVCbG9jaygpOwotICAgIEpTU2NvcGUqIHNjb3BlID0gcHJvdG9DYWxsRnJhbWUtPnNjb3BlKCk7
Ci0gICAgSlNPYmplY3QqIGNhbGxlZSA9IHByb3RvQ2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBp
bnQgYXJnQ291bnRJbmNsdWRpbmdUaGlzID0gcHJvdG9DYWxsRnJhbWUtPmFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzKCk7Ci0gICAgaW50IGFyZ0NvdW50ID0gcHJvdG9DYWxsRnJhbWUtPmFyZ3Vt
ZW50Q291bnQoKTsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IHByb3RvQ2FsbEZyYW1lLT50aGlz
VmFsdWUoKTsKLSAgICBKU1N0YWNrJiBzdGFjayA9IHNjb3BlLT52bSgpLT5pbnRlcnByZXRlci0+
c3RhY2soKTsKLQotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gc3RhY2sucHVzaEZyYW1l
KGNvZGVCbG9jaywgc2NvcGUsIGFyZ0NvdW50SW5jbHVkaW5nVGhpcywgY2FsbGVlKTsKLSAgICBp
ZiAoVU5MSUtFTFkoIW5ld0NhbGxGcmFtZSkpIHsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCA9IHNjb3BlLT5nbG9iYWxPYmplY3QoKTsKLSAgICAgICAgRXhlY1N0YXRlKiBl
eGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUodGhyb3dTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOwotICAgIH0KLQotICAgIC8v
IFNldCB0aGUgYXJndW1lbnRzIGZvciB0aGUgY2FsbGVlOgotICAgIG5ld0NhbGxGcmFtZS0+c2V0
VGhpc1ZhbHVlKHRoaXNWYWx1ZSk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdDb3VudDsg
KytpKQotICAgICAgICBuZXdDYWxsRnJhbWUtPnNldEFyZ3VtZW50KGksIHByb3RvQ2FsbEZyYW1l
LT5hcmd1bWVudChpKSk7Ci0KLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGV4ZWN1dGUobmV3Q2FsbEZy
YW1lLCBleGVjdXRhYmxlQWRkcmVzcyk7Ci0KLSAgICBzdGFjay5wb3BGcmFtZShuZXdDYWxsRnJh
bWUpOwotCisgICAgSlNWYWx1ZSByZXN1bHQgPSBDTG9vcDo6ZXhlY3V0ZShsbGludF9jYWxsX3Rv
X2phdmFzY3JpcHQsIGV4ZWN1dGFibGVBZGRyZXNzLCB2bSwgcHJvdG9DYWxsRnJhbWUpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIGlubGluZSBKU1Zh
bHVlIGV4ZWN1dGVKUyhDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgdm9pZCogZXhlY3V0YWJsZUFk
ZHJlc3MpCi17Ci0gICAgT3Bjb2RlIGVudHJ5T3Bjb2RlID0gKnJlaW50ZXJwcmV0X2Nhc3Q8T3Bj
b2RlKj4oJmV4ZWN1dGFibGVBZGRyZXNzKTsKLSAgICByZXR1cm4gQ0xvb3A6OmV4ZWN1dGUobmV3
Q2FsbEZyYW1lLCBlbnRyeU9wY29kZSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFT
Y3JpcHQodm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFt
ZSogcHJvdG9DYWxsRnJhbWUsIFJlZ2lzdGVyKikKLXsKLSAgICByZXR1cm4gZG9DYWxsVG9KYXZh
U2NyaXB0PGV4ZWN1dGVKUz4oZXhlY3V0YWJsZUFkZHJlc3MsIHByb3RvQ2FsbEZyYW1lKTsKLX0K
LQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGV4ZWN1dGVOYXRpdmUoQ2FsbEZyYW1lKiBuZXdDYWxs
RnJhbWUsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzKQorRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0
aXZlRnVuY3Rpb24odm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZNKiB2bSwgUHJvdG9DYWxsRnJh
bWUqIHByb3RvQ2FsbEZyYW1lKQogewotICAgIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uID0gcmVp
bnRlcnByZXRfY2FzdDxOYXRpdmVGdW5jdGlvbj4oZXhlY3V0YWJsZUFkZHJlc3MpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjpkZWNvZGUoZnVuY3Rpb24obmV3Q2FsbEZyYW1lKSk7Ci19Ci0KLUVuY29k
ZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBF
eGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lLCBSZWdpc3RlciopCi17
Ci0gICAgcmV0dXJuIGRvQ2FsbFRvSmF2YVNjcmlwdDxleGVjdXRlTmF0aXZlPihleGVjdXRhYmxl
QWRkcmVzcywgcHJvdG9DYWxsRnJhbWUpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gQ0xvb3A6OmV4
ZWN1dGUobGxpbnRfY2FsbF90b19uYXRpdmVfZnVuY3Rpb24sIGV4ZWN1dGFibGVBZGRyZXNzLCB2
bSwgcHJvdG9DYWxsRnJhbWUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRUaHVua3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRUaHVua3MuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDE2ICszNCwx
NCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgRXhlY1N0YXRlOwotY2xhc3MgUmVnaXN0
ZXI7CiBjbGFzcyBWTTsKIHN0cnVjdCBQcm90b0NhbGxGcmFtZTsKIAogZXh0ZXJuICJDIiB7Ci0g
ICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwgRXhlY1N0YXRlKiosIFBy
b3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKLSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRp
dmVGdW5jdGlvbih2b2lkKiwgRXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIq
KTsKKyAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqLCBWTSosIFByb3Rv
Q2FsbEZyYW1lKik7CisgICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9p
ZCosIFZNKiwgUHJvdG9DYWxsRnJhbWUqKTsKICNpZiBFTkFCTEUoSklUKQotICAgIHZvaWQgcmV0
dXJuRnJvbUphdmFTY3JpcHQoKTsKKyAgICB2b2lkIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uKCk7
CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9uIDE2Mjk2MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTEsIDIw
MTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDIsOSArMTAyLDExIEBAIG1hY3JvIGND
YWxsMihmdW5jdGlvbiwgYXJnMSwgYXJnMikKICAgICAgICAgbW92ZSBhcmcyLCBhMQogICAgICAg
ICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYgWDg2Ci0gICAgICAgIHBva2UgYXJnMSwgMAotICAg
ICAgICBwb2tlIGFyZzIsIDEKKyAgICAgICAgc3VicCA4LCBzcAorICAgICAgICBwdXNoIGFyZzIK
KyAgICAgICAgcHVzaCBhcmcxCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KKyAgICAgICAgYWRkcCAx
Niwgc3AKICAgICBlbHNpZiBTSDQKICAgICAgICAgc2V0YXJncyBhcmcxLCBhcmcyCiAgICAgICAg
IGNhbGwgZnVuY3Rpb24KQEAgLTEyNCwxMSArMTI2LDEyIEBAIG1hY3JvIGNDYWxsNChmdW5jdGlv
biwgYXJnMSwgYXJnMiwgYXJnMywKICAgICAgICAgbW92ZSBhcmc0LCBhMwogICAgICAgICBjYWxs
IGZ1bmN0aW9uCiAgICAgZWxzaWYgWDg2Ci0gICAgICAgIHBva2UgYXJnMSwgMAotICAgICAgICBw
b2tlIGFyZzIsIDEKLSAgICAgICAgcG9rZSBhcmczLCAyCi0gICAgICAgIHBva2UgYXJnNCwgMwor
ICAgICAgICBwdXNoIGFyZzQKKyAgICAgICAgcHVzaCBhcmczCisgICAgICAgIHB1c2ggYXJnMgor
ICAgICAgICBwdXNoIGFyZzEKICAgICAgICAgY2FsbCBmdW5jdGlvbgorICAgICAgICBhZGRwIDE2
LCBzcAogICAgIGVsc2lmIFNINAogICAgICAgICBzZXRhcmdzIGFyZzEsIGFyZzIsIGFyZzMsIGFy
ZzQKICAgICAgICAgY2FsbCBmdW5jdGlvbgpAQCAtMTQyLDg1ICsxNDUsNDIgQEAgZW5kCiBtYWNy
byBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQog
ICAgIG1vdmUgdDAsIFBDCi0gICAgbW92ZSB0MSwgY2ZyCi1lbmQKLQotbWFjcm8gZnVuY3Rpb25Q
cm9sb2d1ZShleHRyYVN0YWNrU3BhY2UpCi0gICAgaWYgWDg2Ci0gICAgICAgIHB1c2ggY2ZyCi0g
ICAgICAgIG1vdmUgc3AsIGNmcgotICAgIGVuZAotICAgIHB1c2hDYWxsZWVTYXZlcwotICAgIGlm
IEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTCi0gICAgICAgIHB1c2gg
Y2ZyCi0gICAgICAgIHB1c2ggbHIKLSAgICBlbmQKLSAgICBzdWJwIGV4dHJhU3RhY2tTcGFjZSwg
c3AKIGVuZAogCi1tYWNybyBmdW5jdGlvbkVwaWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBh
ZGRwIGV4dHJhU3RhY2tTcGFjZSwgc3AKLSAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJB
RElUSU9OQUwgb3IgTUlQUwotICAgICAgICBwb3AgbHIKLSAgICAgICAgcG9wIGNmcgotICAgIGVu
ZAotICAgIHBvcENhbGxlZVNhdmVzCittYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwp
CiAgICAgaWYgWDg2Ci0gICAgICAgIHBvcCBjZnIKLSAgICBlbmQKLWVuZAorICAgICAgICBjb25z
dCBlbnRyeSA9IHQ0CisgICAgICAgIGNvbnN0IHZtID0gdDMKKyAgICAgICAgY29uc3QgcHJvdG9D
YWxsRnJhbWUgPSB0NQogCi1tYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0
dXJuKQotICAgIGlmIFg4NgotICAgICAgICBjb25zdCBlbnRyeSA9IHQ1Ci0gICAgICAgIGNvbnN0
IHZtVG9wQ2FsbEZyYW1lID0gdDIKLSAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSB0NAot
Ci0gICAgICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDI4CiAgICAgICAgIGNvbnN0IHByZXZp
b3VzQ0ZSID0gdDAKICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IHQxCiAgICAgICAgIGNvbnN0
IHRlbXAxID0gdDAgIyBTYW1lIGFzIHByZXZpb3VzQ0ZSCiAgICAgICAgIGNvbnN0IHRlbXAyID0g
dDEgIyBTYW1lIGFzIHByZXZpb3VzUEMKLSAgICAgICAgY29uc3QgdGVtcDMgPSB0MiAjIHNhbWUg
YXMgdm1Ub3BDYWxsRnJhbWUKLSAgICAgICAgY29uc3QgdGVtcDQgPSB0MwotICAgIGVsc2lmIEFS
TSBvciBBUk12N19UUkFESVRJT05BTAotICAgICAgICBjb25zdCBlbnRyeSA9IGEwCi0gICAgICAg
IGNvbnN0IHZtVG9wQ2FsbEZyYW1lID0gYTEKLSAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUg
PSBhMgotICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gYTMKLQotICAgICAgICBjb25zdCBleHRy
YVN0YWNrU3BhY2UgPSAxNgotICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQzCi0gICAgICAg
IGNvbnN0IHByZXZpb3VzUEMgPSBscgotICAgICAgICBjb25zdCB0ZW1wMSA9IHQzICMgU2FtZSBh
cyBwcmV2aW91c0NGUgotICAgICAgICBjb25zdCB0ZW1wMiA9IGEzICMgU2FtZSBhcyB0b3BPZlN0
YWNrCi0gICAgICAgIGNvbnN0IHRlbXAzID0gdDQKLSAgICAgICAgY29uc3QgdGVtcDQgPSB0NQot
ICAgIGVsc2lmIEFSTXY3CisgICAgICAgIGNvbnN0IHRlbXAzID0gdDIKKyAgICAgICAgY29uc3Qg
dGVtcDQgPSB0MyAjIHNhbWUgYXMgdm0KKyAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdf
VFJBRElUSU9OQUwgb3IgQ19MT09QCiAgICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAg
Y29uc3Qgdm1Ub3BDYWxsRnJhbWUgPSBhMQorICAgICAgICBjb25zdCB2bSA9IGExCiAgICAgICAg
IGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKLSAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEz
CiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gMjgKICAgICAgICAgY29uc3QgcHJl
dmlvdXNDRlIgPSB0MwogICAgICAgICBjb25zdCBwcmV2aW91c1BDID0gbHIKICAgICAgICAgY29u
c3QgdGVtcDEgPSB0MyAjIFNhbWUgYXMgcHJldmlvdXNDRlIKLSAgICAgICAgY29uc3QgdGVtcDIg
PSBhMyAjIFNhbWUgYXMgdG9wT2ZTdGFjawotICAgICAgICBjb25zdCB0ZW1wMyA9IHQ0Ci0gICAg
ICAgIGNvbnN0IHRlbXA0ID0gdDUKKyAgICAgICAgY29uc3QgdGVtcDIgPSB0NAorICAgICAgICBj
b25zdCB0ZW1wMyA9IHQ1CisgICAgICAgIGNvbnN0IHRlbXA0ID0gdDQgIyBTYW1lIGFzIHRlbXAy
CiAgICAgZWxzaWYgTUlQUwogICAgICAgICBjb25zdCBlbnRyeSA9IGEwCiAgICAgICAgIGNvbnN0
IHZtVG9wQ2FsbEZyYW1lID0gYTEKICAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSBhMgog
ICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gYTMKIAotICAgICAgICBjb25zdCBleHRyYVN0YWNr
U3BhY2UgPSAzNgogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQyCiAgICAgICAgIGNvbnN0
IHByZXZpb3VzUEMgPSBscgogICAgICAgICBjb25zdCB0ZW1wMSA9IHQzCi0gICAgICAgIGNvbnN0
IHRlbXAyID0gdDQKLSAgICAgICAgY29uc3QgdGVtcDMgPSB0NQorICAgICAgICBjb25zdCB0ZW1w
MiA9IHQ1CisgICAgICAgIGNvbnN0IHRlbXAzID0gdDQKICAgICAgICAgY29uc3QgdGVtcDQgPSB0
NgogICAgIGVsc2lmIFNINAogICAgICAgICBjb25zdCBlbnRyeSA9IGEwCkBAIC0yMjgsNyArMTg4
LDYgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldAogICAgICAgICBj
b25zdCBwcm90b0NhbGxGcmFtZSA9IGEyCiAgICAgICAgIGNvbnN0IHRvcE9mU3RhY2sgPSBhMwog
Ci0gICAgICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDIwCiAgICAgICAgIGNvbnN0IHByZXZp
b3VzQ0ZSID0gdDMKICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IGxyCiAgICAgICAgIGNvbnN0
IHRlbXAxID0gdDMgIyBTYW1lIGFzIHByZXZpb3VzQ0ZSCkBAIC0yMzcsNDkgKzE5Niw3OCBAQCBt
YWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0CiAgICAgICAgIGNvbnN0IHRl
bXA0ID0gdDkKICAgICBlbmQKIAorICAgIGNhbGxUb0phdmFTY3JpcHRQcm9sb2d1ZSgpCisKICAg
ICBpZiBYODYKLSAgICAgICAgbG9hZHAgW3NwXSwgcHJldmlvdXNQQwotICAgICAgICBtb3ZlIGNm
ciwgcHJldmlvdXNDRlIKLSAgICBlbmQKLSAgICBmdW5jdGlvblByb2xvZ3VlKGV4dHJhU3RhY2tT
cGFjZSkKLSAgICBpZiBYODYKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1NwYWNlKzIwW3NwXSwg
ZW50cnkKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1NwYWNlKzI0W3NwXSwgdm1Ub3BDYWxsRnJh
bWUKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1NwYWNlKzI4W3NwXSwgcHJvdG9DYWxsRnJhbWUK
LSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1NwYWNlKzMyW3NwXSwgY2ZyCisgICAgICAgIGxvYWRw
IDM2W3NwXSwgdm0KKyAgICAgICAgbG9hZHAgMzJbc3BdLCBlbnRyeQogICAgIGVsc2UKICAgICAg
ICAgbW92ZSBjZnIsIHByZXZpb3VzQ0ZSCi0gICAgICAgIG1vdmUgdG9wT2ZTdGFjaywgY2ZyCiAg
ICAgZW5kCiAKLSAgICBzdWJwIChDYWxsRnJhbWVIZWFkZXJTbG90cy0xKSo4LCBjZnIKLSAgICBz
dG9yZXAgMCwgQXJndW1lbnRDb3VudCs0W2Nmcl0KKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdu
bWVudCh0ZW1wMiwgMHhiYWQwZGMwMSkKKworICAgICMgVGhlIHN0YWNrIHJlc2VydmVkIHpvbmUg
ZW5zdXJlcyB0aGF0IHdlIGhhdmUgYWRlcXVhdGUgc3BhY2UgZm9yIHRoZQorICAgICMgVk1FbnRy
eVNlbnRpbmVsRnJhbWUuIFByb2NlZWQgd2l0aCBhbGxvY2F0aW5nIGFuZCBpbml0aWFsaXppbmcg
dGhlCisgICAgIyBzZW50aW5lbCBmcmFtZS4KKyAgICBtb3ZlIHNwLCBjZnIKKyAgICBzdWJwIENh
bGxGcmFtZUhlYWRlclNsb3RzICogOCwgY2ZyCiAgICAgc3RvcmVwIDAsIEFyZ3VtZW50Q291bnRb
Y2ZyXQotICAgIHN0b3JlcCAwLCBDYWxsZWUrNFtjZnJdCi0gICAgc3RvcmVwIHZtVG9wQ2FsbEZy
YW1lLCBDYWxsZWVbY2ZyXQotICAgIGxvYWRwIFt2bVRvcENhbGxGcmFtZV0sIHRlbXA0Ci0gICAg
c3RvcmVwIDAsIFNjb3BlQ2hhaW4rNFtjZnJdCi0gICAgc3RvcmVwIHRlbXA0LCBTY29wZUNoYWlu
W2Nmcl0KLSAgICBzdG9yZXAgMCwgQ29kZUJsb2NrKzRbY2ZyXQorICAgIHN0b3JlcCB2bSwgQ2Fs
bGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXSwgdGVtcDIKKyAgICBzdG9y
ZXAgdGVtcDIsIFNjb3BlQ2hhaW5bY2ZyXQogICAgIHN0b3JlcCAxLCBDb2RlQmxvY2tbY2ZyXQor
ICAgIGlmIFg4NgorICAgICAgICBsb2FkcCAyOFtzcF0sIHByZXZpb3VzUEMKKyAgICAgICAgbG9h
ZHAgMjRbc3BdLCBwcmV2aW91c0NGUgorICAgIGVuZAogICAgIHN0b3JlcCBwcmV2aW91c1BDLCBS
ZXR1cm5QQ1tjZnJdCiAgICAgc3RvcmVwIHByZXZpb3VzQ0ZSLCBDYWxsZXJGcmFtZVtjZnJdCi0g
ICAgbW92ZSBjZnIsIHRlbXAxCisKKyAgICBpZiBYODYKKyAgICAgICAgbG9hZHAgNDBbc3BdLCBw
cm90b0NhbGxGcmFtZQorICAgIGVuZAogCiAgICAgbG9hZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRl
ZEFyZ0NvdW50W3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDIKICAgICBhZGRwIENhbGxGcmFtZUhlYWRl
clNsb3RzLCB0ZW1wMiwgdGVtcDIKICAgICBsc2hpZnRwIDMsIHRlbXAyCi0gICAgc3VicCB0ZW1w
MiwgY2ZyCi0gICAgc3RvcmVwIHRlbXAxLCBDYWxsZXJGcmFtZVtjZnJdCisgICAgc3VicCBjZnIs
IHRlbXAyLCB0ZW1wMQorCisgICAgIyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlv
bmFsIHN0YWNrIGNhcGFjaXR5IGZvciB0aGUgaW5jb21pbmcgYXJncywKKyAgICAjIGFuZCB0aGUg
ZnJhbWUgZm9yIHRoZSBKUyBjb2RlIHdlJ3JlIGV4ZWN1dGluZy4gV2UgbmVlZCB0byBkbyB0aGlz
IGNoZWNrCisgICAgIyBiZWZvcmUgd2Ugc3RhcnQgY29weWluZyB0aGUgYXJncyBmcm9tIHRoZSBw
cm90b0NhbGxGcmFtZSBiZWxvdy4KKyAgICBicGFlcSB0ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0
W3ZtXSwgLnN0YWNrSGVpZ2h0T0sKKworICAgIHN1YnAgY2ZyLCA4LCBzcAorCisgICAgaWYgQ19M
T09QCisgICAgICAgIG1vdmUgZW50cnksIHRlbXAyCisgICAgICAgIG1vdmUgdm0sIHRlbXAzCisg
ICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIF9sbGludF9zdGFja19jaGVja19hdF92bV9lbnRyeSwg
dm0sIHRlbXAxCisgICAgICAgIGJwZXEgdDAsIDAsIC5zdGFja0NoZWNrRmFpbGVkCisgICAgICAg
IG1vdmUgdGVtcDIsIGVudHJ5CisgICAgICAgIG1vdmUgdGVtcDMsIHZtCisgICAgICAgIGptcCAu
c3RhY2tIZWlnaHRPSworCisuc3RhY2tDaGVja0ZhaWxlZDoKKyAgICAgICAgbW92ZSB0ZW1wMiwg
ZW50cnkKKyAgICAgICAgbW92ZSB0ZW1wMywgdm0KKyAgICBlbmQKKworICAgIGNDYWxsMihfbGxp
bnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IsIHZtLCBwcm90b0NhbGxGcmFtZSkKKyAgICBj
YWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQorICAgIHJldAogCisuc3RhY2tIZWlnaHRPSzoKKyAg
ICBtb3ZlIHRlbXAxLCBzcAogICAgIG1vdmUgNSwgdGVtcDEKIAogLmNvcHlIZWFkZXJMb29wOgog
ICAgIHN1YmkgMSwgdGVtcDEKLSAgICBsb2FkcCBbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwg
dGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIENvZGVCbG9ja1tjZnIsIHRlbXAxLCA4XQotICAgIGxv
YWRwIDRbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMs
IENvZGVCbG9jays0W2NmciwgdGVtcDEsIDhdCisgICAgbG9hZGkgVGFnT2Zmc2V0W3Byb3RvQ2Fs
bEZyYW1lLCB0ZW1wMSwgOF0sIHRlbXAzCisgICAgc3RvcmVpIHRlbXAzLCBUYWdPZmZzZXQgKyBD
b2RlQmxvY2tbc3AsIHRlbXAxLCA4XQorICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbcHJvdG9DYWxs
RnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKKyAgICBzdG9yZWkgdGVtcDMsIFBheWxvYWRPZmZzZXQg
KyBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4XQogICAgIGJ0aW56IHRlbXAxLCAuY29weUhlYWRlckxv
b3AKIAogICAgIGxvYWRpIFByb3RvQ2FsbEZyYW1lOjphcmdDb3VudEFuZENvZGVPcmlnaW5WYWx1
ZVtwcm90b0NhbGxGcmFtZV0sIHRlbXAyCkBAIC0yODgsMTIgKzI3NiwxMCBAQCBtYWNybyBkb0Nh
bGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0CiAgICAgc3ViaSAxLCB0ZW1wMwogCiAgICAg
YmllcSB0ZW1wMiwgdGVtcDMsIC5jb3B5QXJncwotICAgIG1vdmUgMCwgdGVtcDEKLSAgICBtb3Zl
IFVuZGVmaW5lZFRhZywgdGVtcDQKIC5maWxsRXh0cmFBcmdzTG9vcDoKICAgICBzdWJpIDEsIHRl
bXAzCi0gICAgc3RvcmVwIHRlbXAxLCBUaGlzQXJndW1lbnRPZmZzZXQrOCtQYXlsb2FkT2Zmc2V0
W2NmciwgdGVtcDMsIDhdCi0gICAgc3RvcmVwIHRlbXA0LCBUaGlzQXJndW1lbnRPZmZzZXQrOCtU
YWdPZmZzZXRbY2ZyLCB0ZW1wMywgOF0KKyAgICBzdG9yZWkgVW5kZWZpbmVkVGFnLCBUaGlzQXJn
dW1lbnRPZmZzZXQgKyA4ICsgVGFnT2Zmc2V0W3NwLCB0ZW1wMywgOF0KKyAgICBzdG9yZWkgMCwg
VGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCArIFBheWxvYWRPZmZzZXRbc3AsIHRlbXAzLCA4XQogICAg
IGJpbmVxIHRlbXAyLCB0ZW1wMywgLmZpbGxFeHRyYUFyZ3NMb29wCiAKIC5jb3B5QXJnczoKQEAg
LTMwMiw1MiArMjg4LDg3IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9S
ZXQKIC5jb3B5QXJnc0xvb3A6CiAgICAgYnRpeiB0ZW1wMiwgLmNvcHlBcmdzRG9uZQogICAgIHN1
YmkgMSwgdGVtcDIKLSAgICBsb2FkcCBQYXlsb2FkT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0sIHRl
bXAzCi0gICAgbG9hZHAgVGFnT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXA0Ci0gICAgc3Rv
cmVwIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQrOCtQYXlsb2FkT2Zmc2V0W2NmciwgdGVtcDIs
IDhdCi0gICAgc3RvcmVwIHRlbXA0LCBUaGlzQXJndW1lbnRPZmZzZXQrOCtUYWdPZmZzZXRbY2Zy
LCB0ZW1wMiwgOF0KKyAgICBsb2FkaSBUYWdPZmZzZXRbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMK
KyAgICBzdG9yZWkgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNldCArIDggKyBUYWdPZmZzZXRbc3As
IHRlbXAyLCA4XQorICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbdGVtcDEsIHRlbXAyLCA4XSwgdGVt
cDMKKyAgICBzdG9yZWkgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNldCArIDggKyBQYXlsb2FkT2Zm
c2V0W3NwLCB0ZW1wMiwgOF0KICAgICBqbXAgLmNvcHlBcmdzTG9vcAogCiAuY29weUFyZ3NEb25l
OgotICAgIGlmIFg4NgotICAgICAgICBsb2FkcCBleHRyYVN0YWNrU3BhY2UrMjRbc3BdLCB2bVRv
cENhbGxGcmFtZQotICAgIGVuZAotICAgIHN0b3JlcCBjZnIsIFt2bVRvcENhbGxGcmFtZV0KKyAg
ICBzdG9yZXAgc3AsIFZNOjp0b3BDYWxsRnJhbWVbdm1dCiAKLSAgICBtYWtlQ2FsbChlbnRyeSwg
dGVtcDEpCisgICAgbWFrZUNhbGwoZW50cnksIHRlbXAxLCB0ZW1wMikKIAogICAgIGJwZXEgQ29k
ZUJsb2NrW2Nmcl0sIDEsIC5jYWxsZWVGcmFtZVBvcHBlZAogICAgIGxvYWRwIENhbGxlckZyYW1l
W2Nmcl0sIGNmcgogCiAuY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0s
IHRlbXAzICMgVk0udG9wQ2FsbEZyYW1lCi0gICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0ZW1w
NAotICAgIHN0b3JlcCB0ZW1wNCwgW3RlbXAzXQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0ZW1w
MyAjIFZNCisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0ZW1wNCAjIHByZXZpb3VzIHRvcENh
bGxGcmFtZQorICAgIHN0b3JlcCB0ZW1wNCwgVk06OnRvcENhbGxGcmFtZVt0ZW1wM10KIAotICAg
IGRvUmV0dXJuKGV4dHJhU3RhY2tTcGFjZSkKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUo
KQorICAgIHJldAogZW5kCiAKLW1hY3JvIG1ha2VKYXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCkK
LSAgICBjYWxsIGVudHJ5CittYWNybyBtYWtlSmF2YVNjcmlwdENhbGwoZW50cnksIHRlbXAsIHVu
dXNlZCkKKyAgICBhZGRwIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAorICAgIGNoZWNrU3RhY2tQ
b2ludGVyQWxpZ25tZW50KHQyLCAweGJhZDBkYzAyKQorICAgIGlmIENfTE9PUAorICAgICAgICBj
bG9vcENhbGxKU0Z1bmN0aW9uIGVudHJ5CisgICAgZWxzZQorICAgICAgICBjYWxsIGVudHJ5Cisg
ICAgZW5kCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4YmFkMGRjMDMpCisg
ICAgc3VicCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKIGVuZAogCi1tYWNybyBtYWtlSG9zdEZ1
bmN0aW9uQ2FsbChlbnRyeSwgdGVtcCkKLSAgICBtb3ZlIGVudHJ5LCB0ZW1wCi0gICAgaWYgWDg2
Ci0gICAgICAgICMgUHV0IGNmciBvbiBzdGFjayBhcyBhcmcwLCBhbHNvIHB1dCBpdCBpbiBlY3gg
Zm9yICJmYXN0Y2FsbCIgdGFyZ2V0cwotICAgICAgICBwb2tlIGNmciwgMAotICAgICAgICBtb3Zl
IGNmciwgdDIKK21hY3JvIG1ha2VIb3N0RnVuY3Rpb25DYWxsKGVudHJ5LCB0ZW1wMSwgdGVtcDIp
CisgICAgbW92ZSBlbnRyeSwgdGVtcDEKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgbW92ZSBzcCwg
YTAKKyAgICAgICAgc3RvcmVwIGNmciwgW3NwXQorICAgICAgICBzdG9yZXAgbHIsIFB0clNpemVb
c3BdCisgICAgICAgIGNsb29wQ2FsbE5hdGl2ZSB0ZW1wMQogICAgIGVsc2UKLSAgICAgICAgbW92
ZSBjZnIsIGEwCisgICAgICAgIGlmIFg4NgorICAgICAgICAgICAgIyBQdXQgY2FsbGVlIGZyYW1l
IHBvaW50ZXIgb24gc3RhY2sgYXMgYXJnMCwgYWxzbyBwdXQgaXQgaW4gZWN4IGZvciAiZmFzdGNh
bGwiIHRhcmdldHMKKyAgICAgICAgICAgIG1vdmUgMCwgdGVtcDIKKyAgICAgICAgICAgIG1vdmUg
dGVtcDIsIDRbc3BdICMgcHV0IDAgaW4gUmV0dXJuUEMKKyAgICAgICAgICAgIG1vdmUgY2ZyLCBb
c3BdICMgcHV0IGNhbGxlciBmcmFtZSBwb2ludGVyIGludG8gY2FsbGVlIGZyYW1lIHNpbmNlIGNh
bGxlZSBwcm9sb2d1ZSBjYW4ndAorICAgICAgICAgICAgbW92ZSBzcCwgdDIgIyB0MiBpcyBlY3gK
KyAgICAgICAgICAgIHB1c2ggdGVtcDIgIyBQdXNoIGR1bW15IGFyZzEKKyAgICAgICAgICAgIHB1
c2ggdDIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbW92ZSBzcCwgYTAKKyAgICAgICAgICAg
IGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHNwCisgICAgICAgIGVuZAorICAgICAgICBjYWxs
IHRlbXAxCisgICAgICAgIGlmIFg4NgorICAgICAgICAgICAgYWRkcCA4LCBzcAorICAgICAgICBl
bHNlCisgICAgICAgICAgICBzdWJwIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAorICAgICAgICBl
bmQKICAgICBlbmQKLSAgICBjYWxsIHRlbXAKIGVuZAogCi1tYWNybyBkb1JldHVybkZyb21KYXZh
U2NyaXB0KGV4dHJhU3RhY2tTcGFjZSkKLV9yZXR1cm5Gcm9tSmF2YVNjcmlwdDoKLSAgICBmdW5j
dGlvbkVwaWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKK19oYW5kbGVVbmNhdWdodEV4Y2VwdGlvbjoK
KyAgICBsb2FkcCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MworICAgIGFuZHAg
TWFya2VkQmxvY2tNYXNrLCB0MworICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBX
ZWFrU2V0OjptX3ZtW3QzXSwgdDMKKyAgICBsb2FkcCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDNd
LCBjZnIKKworICAgICMgU28gZmFyLCB3ZSd2ZSB1bndvdW5kIHRoZSBzdGFjayB0byB0aGUgZnJh
bWUganVzdCBiZWxvdyB0aGUgc2VudGluZWwgZnJhbWUuCisgICAgIyBXZSBuZWVkIHRvIHBvcCB0
byB0aGUgc2VudGluZWwgZnJhbWUgYW5kIGRvIHRoZSBuZWNlc3NhcnkgY2xlYW4gdXAgZm9yCisg
ICAgIyByZXR1cm5pbmcgdG8gdGhlIGNhbGxlciBDIGZyYW1lLgorICAgIGxvYWRwIENhbGxlckZy
YW1lICsgUGF5bG9hZE9mZnNldFtjZnJdLCBjZnIKKworICAgIGxvYWRwIENhbGxlZSArIFBheWxv
YWRPZmZzZXRbY2ZyXSwgdDMgIyBWTQorICAgIGxvYWRwIFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zm
c2V0W2Nmcl0sIHQ1ICMgcHJldmlvdXMgdG9wQ2FsbEZyYW1lCisgICAgc3RvcmVwIHQ1LCBWTTo6
dG9wQ2FsbEZyYW1lW3QzXQorCisgICAgY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKICAgICBy
ZXQKLWVuZAogCiBtYWNybyBkb1JldHVybkZyb21Ib3N0RnVuY3Rpb24oZXh0cmFTdGFja1NwYWNl
KQogICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1NwYWNlKQpAQCAtMzc3LDE0ICszOTgs
MTIgQEAgZW5kCiBtYWNybyBjYWxsQ2FsbFNsb3dQYXRoKHNsb3dQYXRoLCBhY3Rpb24pCiAgICAg
c3RvcmVwIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICBjQ2FsbDIoc2xv
d1BhdGgsIGNmciwgUEMpCi0gICAgbW92ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQwKQogZW5kCiAK
IG1hY3JvIGNhbGxXYXRjaGRvZ1RpbWVySGFuZGxlcih0aHJvd0hhbmRsZXIpCiAgICAgc3RvcmVp
IFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICBjQ2FsbDIoX2xsaW50X3Ns
b3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIsIGNmciwgUEMpCi0gICAgbW92ZSB0MSwgY2Zy
CiAgICAgYnRwbnogdDAsIHRocm93SGFuZGxlcgogICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBU
YWdPZmZzZXRbY2ZyXSwgUEMKIGVuZApAQCAtMzk1LDggKzQxNCw4IEBAIG1hY3JvIGNoZWNrU3dp
dGNoVG9KSVRGb3JMb29wKCkKICAgICAgICAgbWFjcm8gKCkKICAgICAgICAgICAgIHN0b3JlaSBQ
QywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCiAgICAgICAgICAgICBjQ2FsbDIoX2xs
aW50X2xvb3Bfb3NyLCBjZnIsIFBDKQotICAgICAgICAgICAgbW92ZSB0MSwgY2ZyCiAgICAgICAg
ICAgICBidHB6IHQwLCAucmVjb3ZlcgorICAgICAgICAgICAgbW92ZSB0MSwgc3AKICAgICAgICAg
ICAgIGptcCB0MAogICAgICAgICAucmVjb3ZlcjoKICAgICAgICAgICAgIGxvYWRpIEFyZ3VtZW50
Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKQEAgLTU1MywxOCArNTcyLDM0IEBAIGVuZAogIyBF
bnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlcgogCiAjIEV4cGVjdHMgdGhhdCBDb2RlQmxv
Y2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgotbWFj
cm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd19wYXRoKQorbWFjcm8gZnVuY3Rp
b25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd1BhdGgpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNl
dCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDAKICAgICBiaWFlcSB0MCwgQ29kZUJsb2NrOjptX251
bVBhcmFtZXRlcnNbdDFdLCBkb25lTGFiZWwKLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBD
KSAgICMgVGhpcyBzbG93X3BhdGggaGFzIGEgc2ltcGxlIHByb3RvY29sOiB0MCA9IDAgPT4gbm8g
ZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IKLSAgICBidGl6IHQwLCAuaXNBcml0eUZpeHVwTmVlZGVk
CisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKSAgICMgVGhpcyBzbG93UGF0aCBoYXMgYSBz
aW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgorICAg
IGJ0aXogdDAsIC5ub0Vycm9yCiAgICAgbW92ZSB0MSwgY2ZyICAgIyB0MSBjb250YWlucyBjYWxs
ZXIgZnJhbWUKICAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUK
IAotLmlzQXJpdHlGaXh1cE5lZWRlZDoKKy5ub0Vycm9yOgorICAgICMgdDEgcG9pbnRzIHRvIEFy
aXR5Q2hlY2tEYXRhLgorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6
OnRodW5rVG9DYWxsW3QxXSwgdDIKKyAgICBidHB6IHQyLCAucHJvY2VlZElubGluZQorICAgIAor
ICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnJldHVyblBDW3QxXSwg
dDUKKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFj
a1NwYWNlW3QxXSwgdDAKKyAgICBjYWxsIHQyCisgICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAg
ICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDAKKyAgICAgICAgbG9hZHAgW3QwXSwgdDAKKyAgICBl
bmQKKyAgICBqbXAgLmNvbnRpbnVlCisKKy5wcm9jZWVkSW5saW5lOgorICAgIGxvYWRpIENvbW1v
blNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MQogICAg
IGJ0aXogdDEsIC5jb250aW51ZQogCi0gICAgLy8gTW92ZSBmcmFtZSB1cCAidDEiIHNsb3RzCisg
ICAgLy8gTW92ZSBmcmFtZSB1cCAidDEgKiAyIiBzbG90cworICAgIGxzaGlmdHAgMSwgdDEKICAg
ICBuZWdpIHQxCiAgICAgbW92ZSBjZnIsIHQzCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFy
Z3VtZW50Q291bnRbY2ZyXSwgdDIKQEAgLTU4OSw2ICs2MjQsNyBAQCBtYWNybyBmdW5jdGlvbkFy
aXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAKICAgICBsc2hpZnRwIDMsIHQxCiAgICAgYWRkcCB0
MSwgY2ZyCisgICAgYWRkcCB0MSwgc3AKIC5jb250aW51ZToKICAgICAjIFJlbG9hZCBDb2RlQmxv
Y2sgYW5kIFBDLCBzaW5jZSB0aGUgc2xvd19wYXRoIGNsb2JiZXJlZCBpdC4KICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDEKQEAgLTU5Niw3ICs2MzIsNiBAQCBtYWNybyBmdW5jdGlvbkFyaXR5
Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAgICAgam1wIGRvbmVMYWJlbAogZW5kCiAKLQogbWFjcm8g
YnJhbmNoSWZFeGNlcHRpb24obGFiZWwpCiAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0Mwog
ICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwpAQCAtNjExLDYgKzY0Niw3IEBAIGVuZAogCiBf
bGxpbnRfb3BfZW50ZXI6CiAgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KHQyLCAweGRlYWQwMGUxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0
MiAgICAgICAgICAgICAgICAvLyB0MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jawogICAgIGxv
YWRpIENvZGVCbG9jazo6bV9udW1WYXJzW3QyXSwgdDIgICAgICAvLyB0MjxzaXplX3Q+ID0gdDI8
Q29kZUJsb2NrPi5tX251bVZhcnMKICAgICBidGl6IHQyLCAub3BFbnRlckRvbmUKQEAgLTE5MjAs
MTIgKzE5NTYsMTEgQEAgbWFjcm8gZG9DYWxsKHNsb3dQYXRoKQogICAgIHN0b3JlaSB0MCwgU2Nv
cGVDaGFpbiArIFBheWxvYWRPZmZzZXRbdDNdCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIHN0
b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCi0gICAgc3RvcmVwIGNmciwg
Q2FsbGVyRnJhbWVbdDNdCiAgICAgc3RvcmVpIHQyLCBBcmd1bWVudENvdW50ICsgUGF5bG9hZE9m
ZnNldFt0M10KICAgICBzdG9yZWkgQ2VsbFRhZywgQ2FsbGVlICsgVGFnT2Zmc2V0W3QzXQogICAg
IHN0b3JlaSBDZWxsVGFnLCBTY29wZUNoYWluICsgVGFnT2Zmc2V0W3QzXQotICAgIG1vdmUgdDMs
IGNmcgotICAgIGNhbGxUYXJnZXRGdW5jdGlvbih0MSkKKyAgICBhZGRwIENhbGxlckZyYW1lQW5k
UENTaXplLCB0MworICAgIGNhbGxUYXJnZXRGdW5jdGlvbih0MSwgdDMpCiAKIC5vcENhbGxTbG93
OgogICAgIHNsb3dQYXRoRm9yQ2FsbChzbG93UGF0aCkKQEAgLTIwMzksMTAgKzIwNzQsMTIgQEAg
X2xsaW50X29wX2NhdGNoOgogICAgICMgdGhlIGludGVycHJldGVyJ3MgdGhyb3cgdHJhbXBvbGlu
ZSAoc2VlIF9sbGludF90aHJvd190cmFtcG9saW5lKS4KICAgICAjIFRoZSB0aHJvd2luZyBjb2Rl
IG11c3QgaGF2ZSBrbm93biB0aGF0IHdlIHdlcmUgdGhyb3dpbmcgdG8gdGhlIGludGVycHJldGVy
LAogICAgICMgYW5kIGhhdmUgc2V0IFZNOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3cuCi0g
ICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MworICAgIGxvYWRwIFNjb3BlQ2hhaW4gKyBQYXls
b2FkT2Zmc2V0W2Nmcl0sIHQzCiAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgbG9h
ZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwogICAgIGxv
YWRwIFZNOjpjYWxsRnJhbWVGb3JUaHJvd1t0M10sIGNmcgorICAgIHJlc3RvcmVTdGFja1BvaW50
ZXJBZnRlckNhbGwoKQorCiAgICAgbG9hZGkgVk06OnRhcmdldEludGVycHJldGVyUENGb3JUaHJv
d1t0M10sIFBDCiAgICAgbG9hZGkgVk06Om1fZXhjZXB0aW9uICsgUGF5bG9hZE9mZnNldFt0M10s
IHQwCiAgICAgbG9hZGkgVk06Om1fZXhjZXB0aW9uICsgVGFnT2Zmc2V0W3QzXSwgdDEKQEAgLTIx
MTYsNzQgKzIxNTMsNjIgQEAgX2xsaW50X3Rocm93X2R1cmluZ19jYWxsX3RyYW1wb2xpbmU6CiAK
IAogbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24p
CisKKyAgICBmdW5jdGlvblByb2xvZ3VlKCkKICAgICBzdG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0K
ICAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCB0MAogICAgIGxvYWRpIFNjb3BlQ2hhaW4gKyBQ
YXlsb2FkT2Zmc2V0W3QwXSwgdDEKICAgICBzdG9yZWkgQ2VsbFRhZywgU2NvcGVDaGFpbiArIFRh
Z09mZnNldFtjZnJdCiAgICAgc3RvcmVpIHQxLCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtj
ZnJdCiAgICAgaWYgWDg2Ci0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAg
ICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjpt
X3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKKyAgICAgICAgc3VicCA4LCBzcCAjIGFs
aWduIHN0YWNrIHBvaW50ZXIKKyAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQxCisgICAg
ICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QxXSwgdDMK
ICAgICAgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KLSAgICAgICAgcGVlayAw
LCB0MQotICAgICAgICBzdG9yZXAgdDEsIFJldHVyblBDW2Nmcl0KICAgICAgICAgbW92ZSBjZnIs
IHQyICAjIHQyID0gZWN4Ci0gICAgICAgIHN1YnAgMTYgLSA0LCBzcAorICAgICAgICBzdG9yZXAg
dDIsIFtzcF0KICAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQog
ICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQotICAgICAgICBt
b3ZlIHQwLCBjZnIKKyAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVh
ZDAwMDEpCiAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0gICAg
ICAgIGFkZHAgMTYgLSA0LCBzcAotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0g
ICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9j
azo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQVJNIG9yIEFS
TXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMgb3IgU0g0CiAgICAgICAgIGxvYWRwIFNj
b3BlQ2hhaW5bY2ZyXSwgdDMKICAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAg
ICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMK
LSAgICAgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KLSAgICAgICAgbW92ZSB0
MCwgdDIKLSAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAg
ICBzdG9yZXAgdDMsIFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCi0gICAgICAg
IGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKLSAgICAgICAgbG9hZHAgSlNG
dW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKLSAgICAgICAgbW92ZSB0MiwgY2ZyCisgICAg
ICAgIGFkZHAgOCwgc3AKKyAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9O
QUwgb3IgQ19MT09QIG9yIE1JUFMgb3IgU0g0CisgICAgICAgIHN1YnAgOCwgc3AgIyBhbGlnbiBz
dGFjayBwb2ludGVyCisgICAgICAgICMgdDEgYWxyZWFkeSBjb250YWlucyB0aGUgU2NvcGVDaGFp
bi4KKyAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQxCisgICAgICAgIGxvYWRwIE1hcmtl
ZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QxXSwgdDEKKyAgICAgICAgc3RvcmVw
IGNmciwgVk06OnRvcENhbGxGcmFtZVt0MV0KICAgICAgICAgaWYgTUlQUyBvciBTSDQKLSAgICAg
ICAgICAgIG1vdmUgdDAsIGEwCisgICAgICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgbW92ZSBjZnIsIHQwCiAgICAgICAgIGVuZAotICAgICAgICBjYWxsIGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVz
c0JlZm9yZVJldHVybih0MykKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAg
ICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6
Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgIGVsc2lmIENfTE9PUAotICAg
ICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFya2VkQmxvY2tN
YXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6
bV92bVt0M10sIHQzCi0gICAgICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0g
ICAgICAgIG1vdmUgdDAsIHQyCi0gICAgICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2Fs
bCh0MykKLSAgICAgICAgc3RvcmVwIHQzLCBSZXR1cm5QQ1tjZnJdCi0gICAgICAgIG1vdmUgY2Zy
LCB0MAogICAgICAgICBsb2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAg
ICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCi0gICAgICAgIG1vdmUg
dDIsIGNmcgotICAgICAgICBjbG9vcENhbGxOYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rp
b25bdDFdCi0gICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQorICAg
ICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKKyAgICAgICAg
aWYgQ19MT09QCisgICAgICAgICAgICBjbG9vcENhbGxOYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRv
RnVuY3Rpb25bdDFdCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9m
ZnNldFRvRnVuY3Rpb25bdDFdCisgICAgICAgIGVuZAogICAgICAgICBsb2FkcCBTY29wZUNoYWlu
W2Nmcl0sIHQzCiAgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2Fk
cCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCisgICAgICAg
IGFkZHAgOCwgc3AKICAgICBlbHNlCiAgICAgICAgIGVycm9yCiAgICAgZW5kCi0gICAgYmluZXEg
Vk06Om1fZXhjZXB0aW9uICsgVGFnT2Zmc2V0W3QzXSwgRW1wdHlWYWx1ZVRhZywgLmV4Y2VwdGlv
bgorICAgIAorICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIGJpbmVxIFZNOjptX2V4Y2VwdGlv
biArIFRhZ09mZnNldFt0M10sIEVtcHR5VmFsdWVUYWcsIC5oYW5kbGVFeGNlcHRpb24KICAgICBy
ZXQKLS5leGNlcHRpb246Ci0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQxKSAj
IFRoaXMgaXMgcmVhbGx5IG9ubHkgbmVlZGVkIG9uIFg4NgotICAgIGxvYWRpIEFyZ3VtZW50Q291
bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Rocm93X2Zy
b21fbmF0aXZlX2NhbGwpCisKKy5oYW5kbGVFeGNlcHRpb246CisgICAgc3RvcmVwIGNmciwgVk06
OnRvcENhbGxGcmFtZVt0M10KKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAg
ICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIGVuZAogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbQkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0
IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTUyLDkgKzUyLDEwIEBAIG1hY3JvIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKIGVuZAogCiBtYWNy
byBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGln
bm1lbnQodDQsIDB4YmFkMGMwMDIpCiAgICAgaWYgWDg2XzY0Ci0gICAgICAgIG1vdmUgYXJnMSwg
dDUKLSAgICAgICAgbW92ZSBhcmcyLCB0NAorICAgICAgICBtb3ZlIGFyZzEsIHQ0CisgICAgICAg
IG1vdmUgYXJnMiwgdDUKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIEFSTTY0CiAg
ICAgICAgIG1vdmUgYXJnMSwgdDAKQEAgLTY5LDkgKzcwLDEwIEBAIGVuZAogCiAjIFRoaXMgYmFy
ZWx5IHdvcmtzLiBhcmczIGFuZCBhcmc0IHNob3VsZCBwcm9iYWJseSBiZSBpbW1lZGlhdGVzLgog
bWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQorICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KHQ0LCAweGJhZDBjMDA0KQogICAgIGlmIFg4Nl82NAotICAg
ICAgICBtb3ZlIGFyZzEsIHQ1Ci0gICAgICAgIG1vdmUgYXJnMiwgdDQKKyAgICAgICAgbW92ZSBh
cmcxLCB0NAorICAgICAgICBtb3ZlIGFyZzIsIHQ1CiAgICAgICAgIG1vdmUgYXJnMywgdDEKICAg
ICAgICAgbW92ZSBhcmc0LCB0MgogICAgICAgICBjYWxsIGZ1bmN0aW9uCkBAIC04OCw2NiArOTAs
NDkgQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLAogICAgIGVuZAog
ZW5kCiAKLW1hY3JvIGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQorbWFjcm8gZG9D
YWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsKQogICAgIGlmIFg4Nl82NAotICAgICAgICBwdXNoIGNm
cgotICAgICAgICBtb3ZlIHNwLCBjZnIKLSAgICBlbHNpZiBBUk02NAotICAgICAgICBwdXNoTFJB
bmRGUAotICAgIGVuZAotICAgIHB1c2hDYWxsZWVTYXZlcwotICAgIGlmIFg4Nl82NAotICAgICAg
ICBzdWJwIGV4dHJhU3RhY2tTcGFjZSwgc3AKLSAgICBlbmQKLWVuZAotCi1tYWNybyBmdW5jdGlv
bkVwaWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBpZiBYODZfNjQKLSAgICAgICAgYWRkcCBl
eHRyYVN0YWNrU3BhY2UsIHNwCi0gICAgZW5kCi0gICAgcG9wQ2FsbGVlU2F2ZXMKLSAgICBpZiBY
ODZfNjQKLSAgICAgICAgcG9wIGNmcgotICAgIGVsc2lmIEFSTTY0Ci0gICAgICAgIHBvcExSQW5k
RlAKLSAgICBlbmQKLWVuZAotCi1tYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRv
UmV0dXJuKQotICAgIGlmIFg4Nl82NAotICAgICAgICBjb25zdCBlbnRyeSA9IHQ1Ci0gICAgICAg
IGNvbnN0IHZtVG9wQ2FsbEZyYW1lID0gdDQKKyAgICAgICAgY29uc3QgZW50cnkgPSB0NAorICAg
ICAgICBjb25zdCB2bSA9IHQ1CiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gdDEKLSAg
ICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IHQyCiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1Nw
YWNlID0gOAogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQwCiAgICAgICAgIGNvbnN0IHBy
ZXZpb3VzUEMgPSB0NgogICAgICAgICBjb25zdCB0ZW1wMSA9IHQwCiAgICAgICAgIGNvbnN0IHRl
bXAyID0gdDMKICAgICAgICAgY29uc3QgdGVtcDMgPSB0NgotICAgIGVsc2lmIEFSTTY0CisgICAg
ZWxzaWYgQVJNNjQgb3IgQ19MT09QCiAgICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAg
Y29uc3Qgdm1Ub3BDYWxsRnJhbWUgPSBhMQorICAgICAgICBjb25zdCB2bSA9IGExCiAgICAgICAg
IGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKLSAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEz
CiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gMAotICAgICAgICBjb25zdCBwcmV2
aW91c0NGUiA9IHQ0CisgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDUKICAgICAgICAgY29u
c3QgcHJldmlvdXNQQyA9IGxyCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDMKLSAgICAgICAgY29u
c3QgdGVtcDIgPSB0NQorICAgICAgICBjb25zdCB0ZW1wMiA9IHQ0CiAgICAgICAgIGNvbnN0IHRl
bXAzID0gdDYKICAgICBlbmQKIAotICAgIGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNl
KQorICAgIGNhbGxUb0phdmFTY3JpcHRQcm9sb2d1ZSgpCisKKyAgICBpZiBYODZfNjQKKyAgICAg
ICAgbG9hZHAgNyo4W3NwXSwgcHJldmlvdXNQQworICAgICAgICBtb3ZlIDYqOFtzcF0sIHByZXZp
b3VzQ0ZSCisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAgbW92ZSBjZnIsIHByZXZpb3VzQ0ZSCisg
ICAgZW5kCisKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMiwgMHhiYWQwZGMw
MSkKIAotICAgIG1vdmUgdG9wT2ZTdGFjaywgY2ZyCi0gICAgc3VicCAoQ2FsbEZyYW1lSGVhZGVy
U2xvdHMtMSkqOCwgY2ZyCisgICAgIyBUaGUgc3RhY2sgcmVzZXJ2ZWQgem9uZSBlbnN1cmVzIHRo
YXQgd2UgaGF2ZSBhZGVxdWF0ZSBzcGFjZSBmb3IgdGhlCisgICAgIyBWTUVudHJ5U2VudGluZWxG
cmFtZS4gUHJvY2VlZCB3aXRoIGFsbG9jYXRpbmcgYW5kIGluaXRpYWxpemluZyB0aGUKKyAgICAj
IHNlbnRpbmVsIGZyYW1lLgorICAgIG1vdmUgc3AsIGNmcgorICAgIHN1YnAgQ2FsbEZyYW1lSGVh
ZGVyU2xvdHMgKiA4LCBjZnIKICAgICBzdG9yZXAgMCwgQXJndW1lbnRDb3VudFtjZnJdCi0gICAg
c3RvcmVwIHZtVG9wQ2FsbEZyYW1lLCBDYWxsZWVbY2ZyXQotICAgIGxvYWRwIFt2bVRvcENhbGxG
cmFtZV0sIHRlbXAxCi0gICAgc3RvcmVwIHRlbXAxLCBTY29wZUNoYWluW2Nmcl0KKyAgICBzdG9y
ZXAgdm0sIENhbGxlZVtjZnJdCisgICAgbG9hZHAgVk06OnRvcENhbGxGcmFtZVt2bV0sIHRlbXAy
CisgICAgc3RvcmVwIHRlbXAyLCBTY29wZUNoYWluW2Nmcl0KICAgICBzdG9yZXAgMSwgQ29kZUJs
b2NrW2Nmcl0KICAgICBpZiBYODZfNjQKICAgICAgICAgbG9hZHAgNyo4W3NwXSwgcHJldmlvdXNQ
QwpAQCAtMTU1LDIwICsxNDAsNDUgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxs
LCBkb1JldAogICAgIGVuZAogICAgIHN0b3JlcCBwcmV2aW91c1BDLCBSZXR1cm5QQ1tjZnJdCiAg
ICAgc3RvcmVwIHByZXZpb3VzQ0ZSLCBDYWxsZXJGcmFtZVtjZnJdCi0gICAgbW92ZSBjZnIsIHRl
bXAxCiAKICAgICBsb2FkaSBQcm90b0NhbGxGcmFtZTo6cGFkZGVkQXJnQ291bnRbcHJvdG9DYWxs
RnJhbWVdLCB0ZW1wMgogICAgIGFkZHAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMsIHRlbXAyLCB0ZW1w
MgogICAgIGxzaGlmdHAgMywgdGVtcDIKLSAgICBzdWJwIHRlbXAyLCBjZnIKLSAgICBzdG9yZXAg
dGVtcDEsIENhbGxlckZyYW1lW2Nmcl0KKyAgICBzdWJwIGNmciwgdGVtcDIsIHRlbXAxCiAKKyAg
ICAjIEVuc3VyZSB0aGF0IHdlIGhhdmUgZW5vdWdoIGFkZGl0aW9uYWwgc3RhY2sgY2FwYWNpdHkg
Zm9yIHRoZSBpbmNvbWluZyBhcmdzLAorICAgICMgYW5kIHRoZSBmcmFtZSBmb3IgdGhlIEpTIGNv
ZGUgd2UncmUgZXhlY3V0aW5nLiBXZSBuZWVkIHRvIGRvIHRoaXMgY2hlY2sKKyAgICAjIGJlZm9y
ZSB3ZSBzdGFydCBjb3B5aW5nIHRoZSBhcmdzIGZyb20gdGhlIHByb3RvQ2FsbEZyYW1lIGJlbG93
LgorICAgIGJwYWVxIHRlbXAxLCBWTTo6bV9qc1N0YWNrTGltaXRbdm1dLCAuc3RhY2tIZWlnaHRP
SworCisgICAgbW92ZSBjZnIsIHNwCisKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgbW92ZSBlbnRy
eSwgdGVtcDIKKyAgICAgICAgbW92ZSB2bSwgdGVtcDMKKyAgICAgICAgY2xvb3BDYWxsU2xvd1Bh
dGggX2xsaW50X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5LCB2bSwgdGVtcDEKKyAgICAgICAgYnBl
cSB0MCwgMCwgLnN0YWNrQ2hlY2tGYWlsZWQKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAg
ICAgICAgbW92ZSB0ZW1wMywgdm0KKyAgICAgICAgam1wIC5zdGFja0hlaWdodE9LCisKKy5zdGFj
a0NoZWNrRmFpbGVkOgorICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQorICAgICAgICBtb3ZlIHRl
bXAzLCB2bQorICAgIGVuZAorCisgICAgY0NhbGwyKF9sbGludF90aHJvd19zdGFja19vdmVyZmxv
d19lcnJvciwgdm0sIHByb3RvQ2FsbEZyYW1lKQorICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1
ZSgpCisgICAgcmV0CisKKy5zdGFja0hlaWdodE9LOgorICAgIG1vdmUgdGVtcDEsIHNwCiAgICAg
bW92ZSA1LCB0ZW1wMQogCiAuY29weUhlYWRlckxvb3A6CiAgICAgc3ViaSAxLCB0ZW1wMQotICAg
IGxvYWRwIFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1w
MywgQ29kZUJsb2NrW2NmciwgdGVtcDEsIDhdCisgICAgbG9hZHEgW3Byb3RvQ2FsbEZyYW1lLCB0
ZW1wMSwgOF0sIHRlbXAzCisgICAgc3RvcmVxIHRlbXAzLCBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4
XQogICAgIGJ0aW56IHRlbXAxLCAuY29weUhlYWRlckxvb3AKIAogICAgIGxvYWRpIFByb3RvQ2Fs
bEZyYW1lOjphcmdDb3VudEFuZENvZGVPcmlnaW5WYWx1ZVtwcm90b0NhbGxGcmFtZV0sIHRlbXAy
CkBAIC0xODAsNyArMTkwLDcgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBk
b1JldAogICAgIG1vdmUgVmFsdWVVbmRlZmluZWQsIHRlbXAxCiAuZmlsbEV4dHJhQXJnc0xvb3A6
CiAgICAgc3ViaSAxLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMSwgVGhpc0FyZ3VtZW50T2Zmc2V0
KzhbY2ZyLCB0ZW1wMywgOF0KKyAgICBzdG9yZXEgdGVtcDEsIFRoaXNBcmd1bWVudE9mZnNldCAr
IDhbc3AsIHRlbXAzLCA4XQogICAgIGJpbmVxIHRlbXAyLCB0ZW1wMywgLmZpbGxFeHRyYUFyZ3NM
b29wCiAKIC5jb3B5QXJnczoKQEAgLTE4OSw1MyArMTk5LDk3IEBAIG1hY3JvIGRvQ2FsbFRvSmF2
YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXQKIC5jb3B5QXJnc0xvb3A6CiAgICAgYnRpeiB0ZW1wMiwg
LmNvcHlBcmdzRG9uZQogICAgIHN1YmkgMSwgdGVtcDIKLSAgICBsb2FkcCBbdGVtcDEsIHRlbXAy
LCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNldCs4W2Nmciwg
dGVtcDIsIDhdCisgICAgbG9hZHEgW3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCisgICAgc3RvcmVx
IHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4W3NwLCB0ZW1wMiwgOF0KICAgICBqbXAgLmNv
cHlBcmdzTG9vcAogCiAuY29weUFyZ3NEb25lOgotICAgIHN0b3JlcCBjZnIsIFt2bVRvcENhbGxG
cmFtZV0KKyAgICBpZiBBUk02NAorICAgICAgICBtb3ZlIHNwLCB0ZW1wMgorICAgICAgICBzdG9y
ZXAgdGVtcDIsIFZNOjp0b3BDYWxsRnJhbWVbdm1dCisgICAgZWxzZQorICAgICAgICBzdG9yZXAg
c3AsIFZNOjp0b3BDYWxsRnJhbWVbdm1dCisgICAgZW5kCiAKICAgICBtb3ZlIDB4ZmZmZjAwMDAw
MDAwMDAwMCwgY3NyMQogICAgIGFkZHAgMiwgY3NyMSwgY3NyMgogCisgICAgY2hlY2tTdGFja1Bv
aW50ZXJBbGlnbm1lbnQodGVtcDMsIDB4YmFkMGRjMDIpCisKICAgICBtYWtlQ2FsbChlbnRyeSwg
dGVtcDEpCiAKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMywgMHhiYWQwZGMw
MykKKwogICAgIGJwZXEgQ29kZUJsb2NrW2Nmcl0sIDEsIC5jYWxsZWVGcmFtZVBvcHBlZAogICAg
IGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgogCiAuY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAg
bG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAyICMgVk0udG9wQ2FsbEZyYW1lCi0gICAgbG9hZHAgU2Nv
cGVDaGFpbltjZnJdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgW3RlbXAyXQorICAgIGxvYWRw
IENhbGxlZVtjZnJdLCB0ZW1wMiAjIFZNCisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0ZW1w
MyAjIHByZXZpb3VzIHRvcENhbGxGcmFtZQorICAgIHN0b3JlcCB0ZW1wMywgVk06OnRvcENhbGxG
cmFtZVt0ZW1wMl0KKworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAzLCAweGJh
ZDBkYzA0KQogCi0gICAgZG9SZXR1cm4oZXh0cmFTdGFja1NwYWNlKQorICAgIGlmIFg4Nl82NAor
ICAgICAgICBwb3AgdDUKKyAgICBlbmQKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQor
CisgICAgcmV0CiBlbmQKIAorCiBtYWNybyBtYWtlSmF2YVNjcmlwdENhbGwoZW50cnksIHRlbXAp
Ci0gICAgY2FsbCBlbnRyeQorICAgIGFkZHAgMTYsIHNwCisgICAgaWYgQ19MT09QCisgICAgICAg
IGNsb29wQ2FsbEpTRnVuY3Rpb24gZW50cnkKKyAgICBlbHNlCisgICAgICAgIGNhbGwgZW50cnkK
KyAgICBlbmQKKyAgICBzdWJwIDE2LCBzcAogZW5kCiAKKwogbWFjcm8gbWFrZUhvc3RGdW5jdGlv
bkNhbGwoZW50cnksIHRlbXApCiAgICAgbW92ZSBlbnRyeSwgdGVtcAogICAgIGlmIFg4Nl82NAot
ICAgICAgICBtb3ZlIGNmciwgdDUKKyAgICAgICAgbW92ZSBzcCwgdDQKICAgICBlbHNpZiBBUk02
NCBvciBDX0xPT1AKLSAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAgIG1vdmUgc3AsIGEwCisg
ICAgZW5kCisgICAgaWYgQ19MT09QCisgICAgICAgIHN0b3JlcCBjZnIsIFtzcF0KKyAgICAgICAg
c3RvcmVwIGxyLCA4W3NwXQorICAgICAgICBjbG9vcENhbGxOYXRpdmUgdGVtcAorICAgIGVsc2UK
KyAgICAgICAgYWRkcCAxNiwgc3AgCisgICAgICAgIGNhbGwgdGVtcAorICAgICAgICBzdWJwIDE2
LCBzcAogICAgIGVuZAotICAgIGNhbGwgdGVtcAogZW5kCiAKLW1hY3JvIGRvUmV0dXJuRnJvbUph
dmFTY3JpcHQoZXh0cmFTdGFja1NwYWNlKQotX3JldHVybkZyb21KYXZhU2NyaXB0OgotICAgIGZ1
bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1NwYWNlKQotICAgIHJldAotZW5kCiAKLW1hY3JvIGRv
UmV0dXJuRnJvbUhvc3RGdW5jdGlvbihleHRyYVN0YWNrU3BhY2UpCi0gICAgZnVuY3Rpb25FcGls
b2d1ZShleHRyYVN0YWNrU3BhY2UpCitfaGFuZGxlVW5jYXVnaHRFeGNlcHRpb246CisgICAgbG9h
ZHAgU2NvcGVDaGFpbltjZnJdLCB0MworICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MworICAg
IGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKKyAg
ICBsb2FkcCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKworICAgICMgU28gZmFyLCB3
ZSd2ZSB1bndvdW5kIHRoZSBzdGFjayB0byB0aGUgZnJhbWUganVzdCBiZWxvdyB0aGUgc2VudGlu
ZWwgZnJhbWUsIGV4Y2VwdAorICAgICMgaW4gdGhlIGNhc2Ugb2Ygc3RhY2sgb3ZlcmZsb3cgaW4g
dGhlIGZpcnN0IGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGNhbGxUb0phdmFTY3JpcHQuCisgICAgIyBD
aGVjayBpZiB3ZSBuZWVkIHRvIHBvcCB0byB0aGUgc2VudGluZWwgZnJhbWUgYW5kIGRvIHRoZSBu
ZWNlc3NhcnkgY2xlYW4gdXAgZm9yCisgICAgIyByZXR1cm5pbmcgdG8gdGhlIGNhbGxlciBDIGZy
YW1lLgorICAgIGJwZXEgQ29kZUJsb2NrW2Nmcl0sIDEsIC5oYW5kbGVVbmNhdWdodEV4Y2VwdGlv
bkFscmVhZHlJc1NlbnRpbmVsCisgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2ZyCisuaGFu
ZGxlVW5jYXVnaHRFeGNlcHRpb25BbHJlYWR5SXNTZW50aW5lbDoKKworICAgIGxvYWRwIENhbGxl
ZVtjZnJdLCB0MyAjIFZNCisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0NSAjIHByZXZpb3Vz
IHRvcENhbGxGcmFtZQorICAgIHN0b3JlcCB0NSwgVk06OnRvcENhbGxGcmFtZVt0M10KKworICAg
IGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCiAgICAgcmV0Ci1lbmQKKwogCiBtYWNybyBwcmVw
YXJlU3RhdGVGb3JDQ2FsbCgpCiAgICAgbGVhcCBbUEIsIFBDLCA4XSwgUEMKQEAgLTI0NCw3ICsy
OTgsNiBAQCBlbmQKIAogbWFjcm8gcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCiAgICAgbW92ZSB0
MCwgUEMKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBtb3ZlIHQzLCBQQgogICAgIHN1YnAgUEIsIFBD
CiAgICAgcnNoaWZ0cCAzLCBQQwpAQCAtMjczLDcgKzMyNiw2IEBAIG1hY3JvIGNhbGxDYWxsU2xv
d1BhdGgoc2xvd1BhdGgsIGFjdGlvbikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBU
YWdPZmZzZXRbY2ZyXQogICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKICAgICBjQ2FsbDIoc2xv
d1BhdGgsIGNmciwgUEMpCi0gICAgbW92ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQwKQogZW5kCiAK
QEAgLTI4MSw3ICszMzMsNiBAQCBtYWNybyBjYWxsV2F0Y2hkb2dUaW1lckhhbmRsZXIodGhyb3dI
YW5kCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICBw
cmVwYXJlU3RhdGVGb3JDQ2FsbCgpCiAgICAgY0NhbGwyKF9sbGludF9zbG93X3BhdGhfaGFuZGxl
X3dhdGNoZG9nX3RpbWVyLCBjZnIsIFBDKQotICAgIG1vdmUgdDEsIGNmcgogICAgIGJ0cG56IHQw
LCB0aHJvd0hhbmRsZXIKICAgICBtb3ZlIHQzLCBQQgogICAgIGxvYWRpIEFyZ3VtZW50Q291bnQg
KyBUYWdPZmZzZXRbY2ZyXSwgUEMKQEAgLTI5NCw4ICszNDUsOCBAQCBtYWNybyBjaGVja1N3aXRj
aFRvSklURm9yTG9vcCgpCiAgICAgICAgICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBU
YWdPZmZzZXRbY2ZyXQogICAgICAgICAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQogICAgICAg
ICAgICAgY0NhbGwyKF9sbGludF9sb29wX29zciwgY2ZyLCBQQykKLSAgICAgICAgICAgIG1vdmUg
dDEsIGNmcgogICAgICAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKKyAgICAgICAgICAgIG1vdmUg
dDEsIHNwCiAgICAgICAgICAgICBqbXAgdDAKICAgICAgICAgLnJlY292ZXI6CiAgICAgICAgICAg
ICBtb3ZlIHQzLCBQQgpAQCAtMzg3LDE5ICs0MzgsMzUgQEAgZW5kCiAjIEVudHJ5cG9pbnRzIGlu
dG8gdGhlIGludGVycHJldGVyLgogCiAjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEs
IHdoaWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgotbWFjcm8gZnVuY3Rpb25B
cml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd19wYXRoKQorbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNr
KGRvbmVMYWJlbCwgc2xvd1BhdGgpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50
Q291bnRbY2ZyXSwgdDAKICAgICBiaWFlcSB0MCwgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNb
dDFdLCBkb25lTGFiZWwKICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgY0NhbGwyKHNs
b3dfcGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd19wYXRoIGhhcyBhIHNpbXBsZSBwcm90b2Nv
bDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCi0gICAgYnRpeiB0MCwgLmlz
QXJpdHlGaXh1cE5lZWRlZAorICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykgICAjIFRoaXMg
c2xvd1BhdGggaGFzIHRoZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+
IGVycm9yCisgICAgYnRpeiB0MCwgLm5vRXJyb3IKICAgICBtb3ZlIHQxLCBjZnIgICAjIHQxIGNv
bnRhaW5zIGNhbGxlciBmcmFtZQogICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhf
dHJhbXBvbGluZQogCi0uaXNBcml0eUZpeHVwTmVlZGVkOgorLm5vRXJyb3I6CisgICAgIyB0MSBw
b2ludHMgdG8gQXJpdHlDaGVja0RhdGEuCisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0
eUNoZWNrRGF0YTo6dGh1bmtUb0NhbGxbdDFdLCB0MgorICAgIGJ0cHogdDIsIC5wcm9jZWVkSW5s
aW5lCisgICAgCisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cmV0
dXJuUENbdDFdLCB0NQorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6
OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MAorICAgIGNhbGwgdDIKKyAgICBpZiBBU1NFUlRfRU5B
QkxFRAorICAgICAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MAorICAgICAgICBsb2FkcCBbdDBd
LCB0MAorICAgIGVuZAorICAgIGptcCAuY29udGludWUKKworLnByb2NlZWRJbmxpbmU6CisgICAg
bG9hZGkgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cGFkZGVkU3RhY2tTcGFjZVt0
MV0sIHQxCiAgICAgYnRpeiB0MSwgLmNvbnRpbnVlCiAKLSAgICAvLyBNb3ZlIGZyYW1lIHVwICJ0
MSIgc2xvdHMKKyAgICAvLyBNb3ZlIGZyYW1lIHVwICJ0MSAqIDIiIHNsb3RzCisgICAgbHNoaWZ0
cCAxLCB0MQogICAgIG5lZ3EgdDEKICAgICBtb3ZlIGNmciwgdDMKICAgICBsb2FkaSBQYXlsb2Fk
T2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MgpAQCAtNDIwLDYgKzQ4Nyw3IEBAIG1hY3Jv
IGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3cKIAogICAgIGxzaGlmdHAgMywgdDEK
ICAgICBhZGRwIHQxLCBjZnIKKyAgICBhZGRwIHQxLCBzcAogCiAuY29udGludWU6CiAgICAgIyBS
ZWxvYWQgQ29kZUJsb2NrIGFuZCByZXNldCBQQywgc2luY2UgdGhlIHNsb3dfcGF0aCBjbG9iYmVy
ZWQgdGhlbS4KQEAgLTQyOSw3ICs0OTcsNiBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9u
ZUxhYmVsLCBzbG93CiAgICAgam1wIGRvbmVMYWJlbAogZW5kCiAKLQogbWFjcm8gYnJhbmNoSWZF
eGNlcHRpb24obGFiZWwpCiAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwogICAgIGFuZHAg
TWFya2VkQmxvY2tNYXNrLCB0MwpAQCAtNDQ0LDYgKzUxMSw3IEBAIGVuZAogCiBfbGxpbnRfb3Bf
ZW50ZXI6CiAgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25t
ZW50KHQyLCAweGRlYWQwMGUxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MiAgICAgICAg
ICAgICAgICAvLyB0MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jawogICAgIGxvYWRpIENvZGVC
bG9jazo6bV9udW1WYXJzW3QyXSwgdDIgICAgICAvLyB0MjxzaXplX3Q+ID0gdDI8Q29kZUJsb2Nr
Pi5tX251bVZhcnMKICAgICBidGl6IHQyLCAub3BFbnRlckRvbmUKQEAgLTE3MTcsMTAgKzE3ODUs
OSBAQCBtYWNybyBkb0NhbGwoc2xvd1BhdGgpCiAgICAgc3RvcmVxIHQwLCBTY29wZUNoYWluW3Qz
XQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigzLCB0MikKICAgICBzdG9yZWkgUEMsIEFyZ3Vt
ZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQotICAgIHN0b3JlcSBjZnIsIENhbGxlckZyYW1lW3Qz
XQogICAgIHN0b3JlaSB0MiwgQXJndW1lbnRDb3VudCArIFBheWxvYWRPZmZzZXRbdDNdCi0gICAg
bW92ZSB0MywgY2ZyCi0gICAgY2FsbFRhcmdldEZ1bmN0aW9uKHQxKQorICAgIGFkZHAgQ2FsbGVy
RnJhbWVBbmRQQ1NpemUsIHQzCisgICAgY2FsbFRhcmdldEZ1bmN0aW9uKHQxLCB0MykKIAogLm9w
Q2FsbFNsb3c6CiAgICAgc2xvd1BhdGhGb3JDYWxsKHNsb3dQYXRoKQpAQCAtMTg0MCw2ICsxOTA3
LDggQEAgX2xsaW50X29wX2NhdGNoOgogICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAg
IGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKICAg
ICBsb2FkcCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKyAgICByZXN0b3JlU3RhY2tQ
b2ludGVyQWZ0ZXJDYWxsKCkKKwogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgogICAgIGxv
YWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbUEJdLCBQQgogICAgIGxvYWRwIFZNOjp0YXJn
ZXRJbnRlcnByZXRlclBDRm9yVGhyb3dbdDNdLCBQQwpAQCAtMTg3OSw2ICsxOTQ4LDggQEAgX2xs
aW50X3Rocm93X2R1cmluZ19jYWxsX3RyYW1wb2xpbmU6CiAKIAogbWFjcm8gbmF0aXZlQ2FsbFRy
YW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCisKKyAgICBmdW5jdGlvblByb2xv
Z3VlKCkKICAgICBzdG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0KICAgICBpZiBYODZfNjQKICAgICAg
ICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MApAQCAtMTg4OCwxOSArMTk1OSwxNSBAQCBtYWNy
byBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2ZmCiAgICAgICAgIGxvYWRwIENhbGxl
ckZyYW1lW2Nmcl0sIHQwCiAgICAgICAgIGxvYWRxIFNjb3BlQ2hhaW5bdDBdLCB0MQogICAgICAg
ICBzdG9yZXEgdDEsIFNjb3BlQ2hhaW5bY2ZyXQotICAgICAgICBwZWVrIDAsIHQxCi0gICAgICAg
IHN0b3JlcCB0MSwgUmV0dXJuUENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDUgICMgdDUgPSBy
ZGkKLSAgICAgICAgc3VicCAxNiAtIDgsIHNwCi0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0
NCAjIHQ0ID0gcnNpCi0gICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0NF0s
IHQxCi0gICAgICAgIG1vdmUgdDAsIGNmciAjIFJlc3RvcmUgY2ZyIHRvIGF2b2lkIGxvYWRpbmcg
ZnJvbSBzdGFjaworICAgICAgICBtb3ZlIGNmciwgdDQgICMgdDQgPSByZGkKKyAgICAgICAgbG9h
ZHAgQ2FsbGVlW2Nmcl0sIHQ1ICMgdDUgPSByc2kKKyAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6
bV9leGVjdXRhYmxlW3Q1XSwgdDEKKyAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQo
dDMsIDB4ZGVhZDAwMDEpCiAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25b
dDFdCi0gICAgICAgIGFkZHAgMTYgLSA4LCBzcAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nm
cl0sIHQzCiAgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2FkcCBN
YXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYg
QVJNNjQKKyAgICBlbHNpZiBBUk02NCBvciBDX0xPT1AKICAgICAgICAgbG9hZHAgU2NvcGVDaGFp
bltjZnJdLCB0MAogICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDAKICAgICAgICAgbG9h
ZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDBdLCB0MApAQCAtMTkx
NCwzMCArMTk4MSwxMSBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zm
CiAgICAgICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MQogICAgICAgICBsb2FkcCBKU0Z1bmN0aW9u
OjptX2V4ZWN1dGFibGVbdDFdLCB0MQogICAgICAgICBtb3ZlIHQyLCBjZnIgIyBSZXN0b3JlIGNm
ciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2sKLSAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zm
c2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1
cm4odDMpCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBN
YXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQg
KyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICBlbHNpZiBDX0xPT1AKLSAgICAgICAgbG9hZHAg
Q2FsbGVyRnJhbWVbY2ZyXSwgdDAKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpblt0MF0sIHQxCi0g
ICAgICAgIHN0b3JlcCB0MSwgU2NvcGVDaGFpbltjZnJdCi0KLSAgICAgICAgbG9hZHAgU2NvcGVD
aGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKLSAgICAgICAg
bG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAg
ICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQotCi0gICAgICAgIG1vdmUgdDAs
IHQyCi0gICAgICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKLSAgICAgICAg
c3RvcmVwIHQzLCBSZXR1cm5QQ1tjZnJdCi0gICAgICAgIG1vdmUgY2ZyLCB0MAotICAgICAgICBs
b2FkcCBDYWxsZWVbY2ZyXSwgdDEKLSAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRh
YmxlW3QxXSwgdDEKLSAgICAgICAgbW92ZSB0MiwgY2ZyCi0gICAgICAgIGNsb29wQ2FsbE5hdGl2
ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLQorICAgICAgICBpZiBDX0xPT1AKKyAg
ICAgICAgICAgIGNsb29wQ2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0K
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlv
blt0MV0KKyAgICAgICAgZW5kCiAgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0
dXJuKHQzKQogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAgICAgIGFuZHAg
TWFya2VkQmxvY2tNYXNrLCB0MwpAQCAtMTk0NiwxNiArMTk5NCwxNCBAQCBtYWNybyBuYXRpdmVD
YWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2ZmCiAgICAgICAgIGVycm9yCiAgICAgZW5kCiAKLSAg
ICBidHFueiBWTTo6bV9leGNlcHRpb25bdDNdLCAuZXhjZXB0aW9uCisgICAgZnVuY3Rpb25FcGls
b2d1ZSgpCisKKyAgICBidHFueiBWTTo6bV9leGNlcHRpb25bdDNdLCAuaGFuZGxlRXhjZXB0aW9u
CiAgICAgcmV0Ci0uZXhjZXB0aW9uOgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2Fs
bCh0MSkgIyBUaGlzIGlzIHJlYWxseSBvbmx5IG5lZWRlZCBvbiBYODZfNjQKLSAgICBsb2FkaSBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIFBCCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW1BCXSwgdDAKLSAgICBsb2FkcCBDb2Rl
QmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BCXSwgUEIKLSAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2Fs
bEZyYW1lW3QwXQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdGhyb3dfZnJvbV9uYXRpdmVfY2Fs
bCkKKworLmhhbmRsZUV4Y2VwdGlvbjoKKyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1l
W3QzXQorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAgIGptcCBfbGxpbnRf
dGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogZW5kCiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyLmFzbQkod29ya2luZyBjb3B5KQpAQCAtMzgsOSArMzgsMTIgQEAgY29uc3QgQ2FsbEZy
YW1lSGVhZGVyU2xvdHMgPSA2CiBlbHNlCiBjb25zdCBQdHJTaXplID0gNAogY29uc3QgQ2FsbEZy
YW1lSGVhZGVyU2xvdHMgPSA1Citjb25zdCBDYWxsRnJhbWVBbGlnblNsb3RzID0gMQogZW5kCiBj
b25zdCBTbG90U2l6ZSA9IDgKIAorY29uc3QgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgPSAyICogUHRy
U2l6ZQorCiBjb25zdCBDYWxsZXJGcmFtZSA9IDAKIGNvbnN0IFJldHVyblBDID0gQ2FsbGVyRnJh
bWUgKyBQdHJTaXplCiBjb25zdCBDb2RlQmxvY2sgPSBSZXR1cm5QQyArIFB0clNpemUKQEAgLTcx
LDYgKzc0LDE2IEBAIGNvbnN0IERlbGV0ZWRWYWx1ZVRhZyA9IC03CiBjb25zdCBMb3dlc3RUYWcg
PSBEZWxldGVkVmFsdWVUYWcKIGVuZAogCitpZiBYODZfNjQgb3IgQVJNNjQgb3IgQ19MT09QCitj
b25zdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDAKK2Vsc2lmIEFSTSBvciBBUk12
N19UUkFESVRJT05BTCBvciBBUk12NyBvciBTSDQKK2NvbnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsID0gMjQKK2Vsc2lmIFg4NgorY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwgPSA0MAorZWxzaWYgTUlQUworY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwgPSA0MAorZW5kCisKICMgV2F0Y2hwb2ludCBzdGF0ZXMKIGNvbnN0IENsZWFyV2F0Y2hwb2lu
dCA9IDAKIGNvbnN0IElzV2F0Y2hlZCA9IDEKQEAgLTg1LDcgKzk4LDcgQEAgaWYgSlNWQUxVRTY0
CiAgICAgIyAgIHRvIEMgZnVuY3Rpb25zLgogICAgICMgLSBDIGNhbGxzIGFyZSBzdGlsbCBnaXZl
biB0aGUgSW5zdHJ1Y3Rpb24qIHJhdGhlciB0aGFuIHRoZSBQQyBpbmRleC4KICAgICAjICAgVGhp
cyByZXF1aXJlcyBhbiBhZGQgYmVmb3JlIHRoZSBjYWxsLCBhbmQgYSBzdWIgYWZ0ZXIuCi0gICAg
Y29uc3QgUEMgPSB0NAorICAgIGNvbnN0IFBDID0gdDUKICAgICBjb25zdCBQQiA9IHQ2CiAgICAg
Y29uc3QgdGFnVHlwZU51bWJlciA9IGNzcjEKICAgICBjb25zdCB0YWdNYXNrID0gY3NyMgpAQCAt
MTAzLDcgKzExNiw3IEBAIGlmIEpTVkFMVUU2NAogICAgIGVuZAogCiBlbHNlCi0gICAgY29uc3Qg
UEMgPSB0NAorICAgIGNvbnN0IFBDID0gdDUKICAgICBtYWNybyBsb2FkaXNGcm9tSW5zdHJ1Y3Rp
b24ob2Zmc2V0LCBkZXN0KQogICAgICAgICBsb2FkaXMgb2Zmc2V0ICogNFtQQ10sIGRlc3QKICAg
ICBlbmQKQEAgLTIxMCw2ICsyMjMsNTIgQEAgbWFjcm8gYXNzZXJ0KGFzc2VydGlvbikKICAgICBl
bmQKIGVuZAogCittYWNybyBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wUmVnLCBsb2Nh
dGlvbikKKyAgICBpZiBBUk02NCBvciBDX0xPT1AKKyAgICAgICAgIyBBUk02NCB3aWxsIGNoZWNr
IGZvciB1cyEKKyAgICAgICAgIyBDX0xPT1AgZG9lcyBub3QgbmVlZCB0aGUgYWxpZ25tZW50LCBh
bmQgY2FuIHVzZSBhIGxpdHRsZSBwZXJmCisgICAgICAgICMgaW1wcm92ZW1lbnQgZnJvbSBhdm9p
ZGluZyB1c2VsZXNzIHdvcmsuCisgICAgZWxzZQorICAgICAgICBpZiBBUk0gb3IgQVJNdjcgb3Ig
QVJNdjdfVFJBRElUSU9OQUwKKyAgICAgICAgICAgICMgQVJNIGNhbid0IGRvIGxvZ2ljYWwgb3Bz
IHdpdGggdGhlIHNwIGFzIGEgc291cmNlCisgICAgICAgICAgICBtb3ZlIHNwLCB0ZW1wUmVnCisg
ICAgICAgICAgICBhbmRwIDB4ZiwgdGVtcFJlZworICAgICAgICBlbHNlCisgICAgICAgICAgICBh
bmRwIHNwLCAweGYsIHRlbXBSZWcKKyAgICAgICAgZW5kCisgICAgICAgIGJ0cHogdGVtcFJlZywg
LnN0YWNrUG9pbnRlck9rYXkKKyAgICAgICAgbW92ZSBsb2NhdGlvbiwgdGVtcFJlZworICAgICAg
ICBicmVhaworICAgIC5zdGFja1BvaW50ZXJPa2F5OgorICAgIGVuZAorZW5kCisKK21hY3JvIHBy
ZXNlcnZlQ2FsbGVyUENBbmRDRlIoKQorICAgIGlmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3Ig
QVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKKyAgICAgICAgcHVzaCBscgorICAgICAg
ICBwdXNoIGNmcgorICAgIGVsc2lmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcHVzaCBjZnIKKyAg
ICBlbHNpZiBBUk02NAorICAgICAgICBwdXNoTFJBbmRGUAorICAgIGVsc2UKKyAgICAgICAgZXJy
b3IKKyAgICBlbmQKKyAgICBtb3ZlIHNwLCBjZnIKK2VuZAorCittYWNybyByZXN0b3JlQ2FsbGVy
UENBbmRDRlIoKQorICAgIG1vdmUgY2ZyLCBzcAorICAgIGlmIENfTE9PUCBvciBBUk0gb3IgQVJN
djcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKKyAgICAgICAgcG9wIGNmcgor
ICAgICAgICBwb3AgbHIKKyAgICBlbHNpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHBvcCBjZnIK
KyAgICBlbHNpZiBBUk02NAorICAgICAgICBwb3BMUkFuZEZQCisgICAgZW5kCitlbmQKKwogbWFj
cm8gcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCiAg
ICAgaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBBUk02
NCBvciBNSVBTIG9yIFNINAogICAgICAgICAjIEluIENfTE9PUCBjYXNlLCB3ZSdyZSBvbmx5IHBy
ZXNlcnZpbmcgdGhlIGJ5dGVjb2RlIHZQQy4KQEAgLTIzMiwzMSArMjkxLDEyMiBAQCBtYWNybyBy
ZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzCiAgICAgZW5kCiBlbmQKIAorbWFjcm8g
ZnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAgaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwdXNoIGNm
cgorICAgIGVsc2lmIEFSTTY0CisgICAgICAgIHB1c2hMUkFuZEZQCisgICAgZWxzaWYgQ19MT09Q
IG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTCisgICAgICAgIHB1
c2ggbHIKKyAgICAgICAgcHVzaCBjZnIKKyAgICBlbmQKKyAgICBtb3ZlIHNwLCBjZnIKK2VuZAor
CittYWNybyBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICBpZiBYODYgb3IgWDg2XzY0CisgICAgICAg
IHBvcCBjZnIKKyAgICBlbHNpZiBBUk02NAorICAgICAgICBwb3BMUkFuZEZQCisgICAgZWxzaWYg
Q19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTCisgICAg
ICAgIHBvcCBjZnIKKyAgICAgICAgcG9wIGxyCisgICAgZW5kCitlbmQKKworbWFjcm8gY2FsbFRv
SmF2YVNjcmlwdFByb2xvZ3VlKCkKKyAgICBpZiBYODZfNjQKKyAgICAgICAgcHVzaCBjZnIKKyAg
ICAgICAgcHVzaCB0MAorICAgIGVsc2lmIFg4NgorICAgICAgICBwdXNoIGNmcgorICAgIGVsc2lm
IEFSTTY0CisgICAgICAgIHB1c2hMUkFuZEZQCisgICAgZWxzaWYgQ19MT09QIG9yIEFSTSBvciBB
Uk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTCisgICAgICAgIHB1c2ggbHIKKyAgICAg
ICAgcHVzaCBjZnIKKyAgICBlbmQKKyAgICBwdXNoQ2FsbGVlU2F2ZXMKKyAgICBpZiBYODYKKyAg
ICAgICAgc3VicCAxMiwgc3AKKyAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElU
SU9OQUwKKyAgICAgICAgc3VicCA0LCBzcAorICAgICAgICBtb3ZlIHNwLCB0NAorICAgICAgICBj
bHJicCB0NCwgMHhmLCB0NQorICAgICAgICBtb3ZlIHQ1LCBzcAorICAgICAgICBzdG9yZXAgdDQs
IFtzcF0KKyAgICBlbmQKK2VuZAorCittYWNybyBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQor
ICAgIGFkZHAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMgKiA4LCBjZnIsIHNwCisgICAgbG9hZHAgQ2Fs
bGVyRnJhbWVbY2ZyXSwgY2ZyCisKKyAgICBpZiBYODYKKyAgICAgICAgYWRkcCAxMiwgc3AKKyAg
ICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwKKyAgICAgICAgcG9wIHQ0
CisgICAgICAgIG1vdmUgdDQsIHNwCisgICAgICAgIGFkZHAgNCwgc3AKKyAgICBlbmQKKworICAg
IHBvcENhbGxlZVNhdmVzCisgICAgaWYgWDg2XzY0CisgICAgICAgIHBvcCB0MgorICAgICAgICBw
b3AgY2ZyCisgICAgZWxzaWYgWDg2CisgICAgICAgIHBvcCBjZnIKKyAgICBlbHNpZiBBUk02NAor
ICAgICAgICBwb3BMUkFuZEZQCisgICAgZWxzaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBB
Uk12N19UUkFESVRJT05BTCBvciBNSVBTCisgICAgICAgIHBvcCBjZnIKKyAgICAgICAgcG9wIGxy
CisgICAgZW5kCitlbmQKKworbWFjcm8gbW92ZVN0YWNrUG9pbnRlckZvckNvZGVCbG9jayhjb2Rl
QmxvY2ssIHNjcmF0Y2gpCisgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVy
c1tjb2RlQmxvY2tdLCBzY3JhdGNoCisgICAgbHNoaWZ0cCAzLCBzY3JhdGNoCisgICAgYWRkcCBt
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgc2NyYXRjaAorICAgIHN1YnAgY2ZyLCBzY3Jh
dGNoLCBzcAorZW5kCisKK21hY3JvIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQorICAg
IGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MgorICAgIG1vdmVTdGFja1BvaW50ZXJGb3JDb2RlQmxv
Y2sodDIsIHQ0KQorZW5kCisKIG1hY3JvIHRyYWNlRXhlY3V0aW9uKCkKICAgICBpZiBFWEVDVVRJ
T05fVFJBQ0lORwogICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3RyYWNlKQogICAgIGVuZAog
ZW5kCiAKLW1hY3JvIGNhbGxUYXJnZXRGdW5jdGlvbihjYWxsTGlua0luZm8pCittYWNybyBjYWxs
VGFyZ2V0RnVuY3Rpb24oY2FsbExpbmtJbmZvLCBjYWxsZWVGcmFtZVB0cikKKyAgICBtb3ZlIGNh
bGxlZUZyYW1lUHRyLCBzcAogICAgIGlmIENfTE9PUAogICAgICAgICBjbG9vcENhbGxKU0Z1bmN0
aW9uIExMSW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFtjYWxsTGlua0luZm9dCiAg
ICAgZWxzZQogICAgICAgICBjYWxsIExMSW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdl
dFtjYWxsTGlua0luZm9dCi0gICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKICAgICBlbmQKKyAg
ICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKKyAgICBkaXNwYXRjaEFmdGVyQ2FsbCgp
CiBlbmQKIAogbWFjcm8gc2xvd1BhdGhGb3JDYWxsKHNsb3dQYXRoKQogICAgIGNhbGxDYWxsU2xv
d1BhdGgoCiAgICAgICAgIHNsb3dQYXRoLAogICAgICAgICBtYWNybyAoY2FsbGVlKQorICAgICAg
ICAgICAgYnRweiB0MSwgLmRvbnRVcGRhdGVTUAorICAgICAgICAgICAgYWRkcCBDYWxsZXJGcmFt
ZUFuZFBDU2l6ZSwgdDEsIHNwCisgICAgICAgIC5kb250VXBkYXRlU1A6CiAgICAgICAgICAgICBp
ZiBDX0xPT1AKICAgICAgICAgICAgICAgICBjbG9vcENhbGxKU0Z1bmN0aW9uIGNhbGxlZQogICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGNhbGwgY2FsbGVlCi0gICAgICAgICAgICAg
ICAgZGlzcGF0Y2hBZnRlckNhbGwoKQogICAgICAgICAgICAgZW5kCisgICAgICAgICAgICByZXN0
b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKKyAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxs
KCkKICAgICAgICAgZW5kKQogZW5kCiAKQEAgLTMyNSwyNiArNDc1LDQ4IEBAIGVuZAogIyBEbyB0
aGUgYmFyZSBtaW5pbXVtIHJlcXVpcmVkIHRvIGV4ZWN1dGUgY29kZS4gU2V0cyB1cCB0aGUgUEMs
IGxlYXZlIHRoZSBDb2RlQmxvY2sqCiAjIGluIHQxLiBNYXkgYWxzbyB0cmlnZ2VyIHByb2xvZ3Vl
IGVudHJ5IE9TUi4KIG1hY3JvIHByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0
dGVyLCBvc3JTbG93UGF0aCwgdHJhY2VTbG93UGF0aCkKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJl
c3NBZnRlckNhbGwodDIpCi0gICAgCiAgICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNo
ZWNrIGlmIHdlIHNob3VsZCBPU1IuCi0gICAgc3RvcmVwIHQyLCBSZXR1cm5QQ1tjZnJdCisgICAg
cHJlc2VydmVDYWxsZXJQQ0FuZENGUigpCisKICAgICBpZiBFWEVDVVRJT05fVFJBQ0lORworICAg
ICAgICBzdWJwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCBzcAogICAgICAgICBjYWxs
U2xvd1BhdGgodHJhY2VTbG93UGF0aCkKKyAgICAgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCwgc3AKICAgICBlbmQKICAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCitpZiBDX0xP
T1AKK2Vsc2UKICAgICBiYWRkaXMgNSwgQ29kZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXIg
KyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDFdLCAuY29udGludWUKLSAgICBjQ2FsbDIo
b3NyU2xvd1BhdGgsIGNmciwgUEMpCi0gICAgbW92ZSB0MSwgY2ZyCisgICAgaWYgSlNWQUxVRTY0
CisgICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykKKyAgICBlbHNlCisgICAgICAg
ICMgV2UgYXJlIGFmdGVyIHRoZSBmdW5jdGlvbiBwcm9sb2d1ZSwgYnV0IGJlZm9yZSB3ZSBoYXZl
IHNldCB1cCBzcCBmcm9tIHRoZSBDb2RlQmxvY2suCisgICAgICAgICMgVGVtcG9yYXJpbHkgYWxp
Z24gc3RhY2sgcG9pbnRlciBmb3IgdGhpcyBjYWxsLgorICAgICAgICBzdWJwIDgsIHNwCisgICAg
ICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykKKyAgICAgICAgYWRkcCA4LCBzcAorICAg
IGVuZAogICAgIGJ0cHogdDAsIC5yZWNvdmVyCi0gICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIK
LSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MikKKyAgICBtb3ZlIGNmciwg
c3AgIyByZXN0b3JlIHRoZSBwcmV2aW91cyBzcAorICAgICMgcG9wIHRoZSBjYWxsZXJGcmFtZSBz
aW5jZSB3ZSB3aWxsIGp1bXAgdG8gYSBmdW5jdGlvbiB0aGF0IHdhbnRzIHRvIHNhdmUgaXQKKyAg
ICBpZiBBUk02NAorICAgICAgICBwb3BMUkFuZEZQCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9y
IEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMgb3IgU0g0CisgICAgICAgIHBvcCBjZnIKKyAgICAg
ICAgcG9wIGxyCisgICAgZWxzZQorICAgICAgICBwb3AgY2ZyCisgICAgZW5kCiAgICAgam1wIHQw
CiAucmVjb3ZlcjoKICAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCiAuY29udGludWU6CitlbmQKKwog
ICAgIGNvZGVCbG9ja1NldHRlcih0MSkKICAgICAKKyAgICBtb3ZlU3RhY2tQb2ludGVyRm9yQ29k
ZUJsb2NrKHQxLCB0MikKKwogICAgICMgU2V0IHVwIHRoZSBQQy4KICAgICBpZiBKU1ZBTFVFNjQK
ICAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIFBCCkBAIC0zODks
MTQgKzU2MSwxNiBAQCBtYWNybyBmdW5jdGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVBcmdTCiAg
ICAgICAgIAogICAgICMgQ2hlY2sgc3RhY2sgaGVpZ2h0LgogICAgIGxvYWRpIENvZGVCbG9jazo6
bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MAotICAgIGFkZGkgMSwgdDAgIyBBY2NvdW50IHRo
YXQgbG9jYWwwIGdvZXMgYXQgc2xvdCAtMQogICAgIGxvYWRwIENvZGVCbG9jazo6bV92bVt0MV0s
IHQyCiAgICAgbHNoaWZ0cCAzLCB0MAorICAgIGFkZGkgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwsIHQwCiAgICAgc3VicCBjZnIsIHQwLCB0MAogICAgIGJwYmVxIFZNOjptX2pzU3RhY2tM
aW1pdFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSwogCiAgICAgIyBTdGFjayBoZWlnaHQgY2hlY2sg
ZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgogICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc3RhY2tfY2hlY2spCisgICAgYnBlcSB0MSwgMCwgLnN0YWNrSGVpZ2h0T0sKKyAgICBtb3Zl
IHQxLCBjZnIKIC5zdGFja0hlaWdodE9LOgogZW5kCiAKQEAgLTQyMywyNSArNTk3LDY5IEBAIG1h
Y3JvIGFsbG9jYXRlSlNPYmplY3QoYWxsb2NhdG9yLCBzdHJ1Y3QKIGVuZAogCiBtYWNybyBkb1Jl
dHVybigpCi0gICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIKLSAgICBsb2FkcCBDYWxsZXJGcmFt
ZVtjZnJdLCBjZnIKLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MikKKyAg
ICByZXN0b3JlQ2FsbGVyUENBbmRDRlIoKQogICAgIHJldAogZW5kCiAKLWlmIENfTE9PUAotZWxz
ZQogIyBzdHViIHRvIGNhbGwgaW50byBKYXZhU2NyaXB0IG9yIE5hdGl2ZSBmdW5jdGlvbnMKLSMg
RW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2
bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvRnJhbWUsIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKQotIyBF
bmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiBjb2RlLCBFeGVjU3RhdGUq
KiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvRnJhbWUsIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKQor
IyBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoq
IHZtVG9wQ2FsbEZyYW1lLCBQcm90b0NhbGxGcmFtZSogcHJvdG9GcmFtZSkKKyMgRW5jb2RlZEpT
VmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm1Ub3BD
YWxsRnJhbWUsIFByb3RvQ2FsbEZyYW1lKiBwcm90b0ZyYW1lKQogIyBOb3RlLCBpZiB0aGVzZSBz
dHVicyBvciBvbmUgb2YgdGhlaXIgcmVsYXRlZCBtYWNyb3MgYXJlIGNoYW5nZWQsIG1ha2UgdGhl
CiAjIGVxdWl2YWxlbnQgY2hhbmdlcyBpbiBqaXQvSklUU3R1YnNYODYuaCBhbmQvb3Igaml0L0pJ
VFN0dWJzTVNWQzY0LmFzbQorCitpZiBDX0xPT1AKK19sbGludF9jYWxsX3RvX2phdmFzY3JpcHQ6
CitlbHNlCiBfY2FsbFRvSmF2YVNjcmlwdDoKLSAgICBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUph
dmFTY3JpcHRDYWxsLCBkb1JldHVybkZyb21KYXZhU2NyaXB0KQorZW5kCisgICAgZG9DYWxsVG9K
YXZhU2NyaXB0KG1ha2VKYXZhU2NyaXB0Q2FsbCkKKwogCitpZiBDX0xPT1AKK19sbGludF9jYWxs
X3RvX25hdGl2ZV9mdW5jdGlvbjoKK2Vsc2UKIF9jYWxsVG9OYXRpdmVGdW5jdGlvbjoKLSAgICBk
b0NhbGxUb0phdmFTY3JpcHQobWFrZUhvc3RGdW5jdGlvbkNhbGwsIGRvUmV0dXJuRnJvbUhvc3RG
dW5jdGlvbikKIGVuZAorICAgIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlSG9zdEZ1bmN0aW9uQ2Fs
bCkKKworCitpZiBDX0xPT1AKK2Vsc2UKKyMgdm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk1JbXBsKFZN
KiB2bSkKK19zYW5pdGl6ZVN0YWNrRm9yVk1JbXBsOgorICAgIGlmIFg4Nl82NAorICAgICAgICBj
b25zdCB2bSA9IHQ0CisgICAgICAgIGNvbnN0IGFkZHJlc3MgPSB0MQorICAgICAgICBjb25zdCB6
ZXJvVmFsdWUgPSB0MAorICAgIGVsc2lmIFg4NgorICAgICAgICBjb25zdCB2bSA9IHQyCisgICAg
ICAgIGNvbnN0IGFkZHJlc3MgPSB0MQorICAgICAgICBjb25zdCB6ZXJvVmFsdWUgPSB0MAorICAg
IGVsc2UKKyAgICAgICAgY29uc3Qgdm0gPSBhMAorICAgICAgICBjb25zdCBhZGRyZXNzID0gdDEK
KyAgICAgICAgY29uc3QgemVyb1ZhbHVlID0gdDIKKyAgICBlbmQKKworICAgIGlmIFg4NgorICAg
ICAgICBsb2FkcCA0W3NwXSwgdm0KKyAgICBlbmQKKworICAgIGxvYWRwIFZNOjptX2xhc3RTdGFj
a1RvcFt2bV0sIGFkZHJlc3MKKyAgICBicGJlcSBzcCwgYWRkcmVzcywgLnplcm9GaWxsRG9uZQor
CisgICAgbW92ZSAwLCB6ZXJvVmFsdWUKKy56ZXJvRmlsbExvb3A6CisgICAgc3RvcmVwIHplcm9W
YWx1ZSwgW2FkZHJlc3NdCisgICAgYWRkcCBQdHJTaXplLCBhZGRyZXNzCisgICAgYnBhIHNwLCBh
ZGRyZXNzLCAuemVyb0ZpbGxMb29wCisKKy56ZXJvRmlsbERvbmU6CisgICAgbW92ZSBzcCwgYWRk
cmVzcworICAgIHN0b3JlcCBhZGRyZXNzLCBWTTo6bV9sYXN0U3RhY2tUb3Bbdm1dCisgICAgcmV0
CitlbmQKKwogCiAjIEluZGljYXRlIHRoZSBiZWdpbm5pbmcgb2YgTExJbnQuCiBfbGxpbnRfYmVn
aW46CkBAIC03MzEsOCArOTQ5LDE1IEBAIF9sbGludF9vcF9jb25zdHJ1Y3Q6CiAKIF9sbGludF9v
cF9jYWxsX3ZhcmFyZ3M6CiAgICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX3NpemVfYW5kX2FsbG9jX2ZyYW1lX2Zvcl92YXJhcmdzKQorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3NpemVfZnJhbWVfZm9yX3ZhcmFyZ3MpCiAgICAg
YnJhbmNoSWZFeGNlcHRpb24oX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUp
CisgICAgIyBjYWxsZWVGcmFtZSBpbiB0MQorICAgIGlmIEpTVkFMVUU2NAorICAgICAgICBtb3Zl
IHQxLCBzcAorICAgIGVsc2UKKyAgICAgICAgIyBUaGUgY2FsbGVlRnJhbWUgaXMgbm90IHN0YWNr
IGFsaWduZWQsIG1vdmUgZG93biBieSBDYWxsZXJGcmFtZUFuZFBDU2l6ZSB0byBhbGlnbgorICAg
ICAgICBzdWJwIHQxLCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKKyAgICBlbmQKICAgICBzbG93
UGF0aEZvckNhbGwoX2xsaW50X3Nsb3dfcGF0aF9jYWxsX3ZhcmFyZ3MpCiAKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNw
cAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05MCw2ICs5MCwxMiBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOjpMTEludDsKICNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4KICNkZWZpbmUg
T0ZGTElORV9BU01fRU5ECiAKKyNpZiBFTkFCTEUoT1BDT0RFX1RSQUNJTkcpCisjZGVmaW5lIFRS
QUNFX09QQ09ERShvcGNvZGUpIGRhdGFMb2dGKCIgICBvcCAlc1xuIiwgI29wY29kZSkKKyNlbHNl
CisjZGVmaW5lIFRSQUNFX09QQ09ERShvcGNvZGUpCisjZW5kaWYKKwogLy8gVG8ga2VlcCBjb21w
aWxlcnMgaGFwcHkgaW4gY2FzZSBvZiB1bnVzZWQgbGFiZWxzLCBmb3JjZSB1c2FnZSBvZiB0aGUg
bGFiZWw6CiAjZGVmaW5lIFVTRV9MQUJFTChsYWJlbCkgXAogICAgIGRvIHsgXApAQCAtOTcsNyAr
MTAzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6TExJbnQ7CiAgICAgICAgICAgICBnb3RvIGxh
YmVsOyBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKLSNkZWZpbmUgT0ZGTElORV9BU01fT1BDT0RF
X0xBQkVMKG9wY29kZSkgREVGSU5FX09QQ09ERShvcGNvZGUpIFVTRV9MQUJFTChvcGNvZGUpOwor
I2RlZmluZSBPRkZMSU5FX0FTTV9PUENPREVfTEFCRUwob3Bjb2RlKSBERUZJTkVfT1BDT0RFKG9w
Y29kZSkgVVNFX0xBQkVMKG9wY29kZSk7IFRSQUNFX09QQ09ERShvcGNvZGUpOwogCiAjaWYgRU5B
QkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKICNkZWZpbmUgT0ZGTElORV9BU01fR0xVRV9MQUJF
TChsYWJlbCkgIGxhYmVsOiBVU0VfTEFCRUwobGFiZWwpOwpAQCAtMjEyLDEwICsyMTgsMTQgQEAg
c3RydWN0IENMb29wUmVnaXN0ZXIgewogI2VuZGlmIC8vICFDUFUoQklHX0VORElBTikKICNlbmRp
ZiAvLyAhVVNFKEpTVkFMVUU2NCkKIAorICAgICAgICBpbnRwdHJfdCogaXA7CiAgICAgICAgIGlu
dDhfdCogaThwOwogICAgICAgICB2b2lkKiB2cDsKKyAgICAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWU7CiAgICAgICAgIEV4ZWNTdGF0ZSogZXhlY1N0YXRlOwogICAgICAgICB2b2lkKiBpbnN0cnVj
dGlvbjsKKyAgICAgICAgVk0qIHZtOworICAgICAgICBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxs
RnJhbWU7CiAgICAgICAgIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmM7CiAjaWYgVVNFKEpTVkFM
VUU2NCkKICAgICAgICAgaW50NjRfdCBpNjQ7CkBAIC0yMjYsNiArMjM2LDEyIEBAIHN0cnVjdCBD
TG9vcFJlZ2lzdGVyIHsKICAgICAgICAgT3Bjb2RlIG9wY29kZTsKICAgICB9OwogCisgICAgb3Bl
cmF0b3IgRXhlY1N0YXRlKigpIHsgcmV0dXJuIGV4ZWNTdGF0ZTsgfQorICAgIG9wZXJhdG9yIElu
c3RydWN0aW9uKigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHJ1Y3Rpb24qPihpbnN0
cnVjdGlvbik7IH0KKyAgICBvcGVyYXRvciBWTSooKSB7IHJldHVybiB2bTsgfQorICAgIG9wZXJh
dG9yIFByb3RvQ2FsbEZyYW1lKigpIHsgcmV0dXJuIHByb3RvQ2FsbEZyYW1lOyB9CisgICAgb3Bl
cmF0b3IgUmVnaXN0ZXIqKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxSZWdpc3Rlcio+KHZw
KTsgfQorCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBpbmxpbmUgdm9pZCBjbGVhckhpZ2hXb3Jk
KCkgeyBpMzJwYWRkaW5nID0gMDsgfQogI2Vsc2UKQEAgLTIzNyw3ICsyNTMsNyBAQCBzdHJ1Y3Qg
Q0xvb3BSZWdpc3RlciB7CiAvLyBUaGUgbGxpbnQgQysrIGludGVycHJldGVyIGxvb3A6CiAvLwog
Ci1KU1ZhbHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBPcGNvZGUgZW50
cnlPcGNvZGUsIGJvb2wgaXNJbml0aWFsaXphdGlvblBhc3MpCitKU1ZhbHVlIENMb29wOjpleGVj
dXRlKE9wY29kZUlEIGVudHJ5T3Bjb2RlSUQsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSog
dm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSwgYm9vbCBpc0luaXRpYWxpemF0aW9u
UGFzcykKIHsKICAgICAjZGVmaW5lIENBU1QgcmVpbnRlcnByZXRfY2FzdAogICAgICNkZWZpbmUg
U0lHTl9CSVQzMih4KSAoKHgpICYgMHg4MDAwMDAwMCkKQEAgLTI3Miw4ICsyODgsNiBAQCBKU1Zh
bHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlKCk7CiAgICAgfQogCi0gICAgQVNTRVJUKGNhbGxGcmFtZS0+dm0oKS50b3BDYWxsRnJhbWUg
PT0gY2FsbEZyYW1lKTsKLQogICAgIC8vIERlZmluZSB0aGUgcHNldWRvIHJlZ2lzdGVycyB1c2Vk
IGJ5IHRoZSBMTElOVCBDIExvb3AgYmFja2VuZDoKICAgICBBU1NFUlQoc2l6ZW9mKENMb29wUmVn
aXN0ZXIpID09IHNpemVvZihpbnRwdHJfdCkpOwogCkBAIC0zMDgsNjkgKzMyMiw2NiBAQCBKU1Zh
bHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyCiAgICAgLy8gMi4gMzIgYml0IHJl
c3VsdCB2YWx1ZXMgd2lsbCBiZSBpbiB0aGUgbG93IDMyLWJpdCBvZiB0MC4KICAgICAvLyAzLiA2
NCBiaXQgcmVzdWx0IHZhbHVlcyB3aWxsIGJlIGluIHQwLgogCi0gICAgQ0xvb3BSZWdpc3RlciB0
MCwgdDEsIHQyLCB0MzsKKyAgICBDTG9vcFJlZ2lzdGVyIHQwLCB0MSwgdDIsIHQzLCB0NSwgc3As
IGNmciwgbHIsIHBjOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgQ0xvb3BSZWdpc3RlciByQmFz
ZVBDLCB0YWdUeXBlTnVtYmVyLCB0YWdNYXNrOworICAgIENMb29wUmVnaXN0ZXIgcGNCYXNlLCB0
YWdUeXBlTnVtYmVyLCB0YWdNYXNrOwogI2VuZGlmCi0gICAgQ0xvb3BSZWdpc3RlciByUmV0VlBD
OwogICAgIENMb29wRG91YmxlUmVnaXN0ZXIgZDAsIGQxOwogCi0gICAgLy8gS2VlcCB0aGUgY29t
cGlsZXIgaGFwcHkuIFdlIGRvbid0IHJlYWxseSBuZWVkIHRoaXMsIGJ1dCB0aGUgY29tcGlsZXIK
LSAgICAvLyB3aWxsIGNvbXBsYWluLiBUaGlzIG1ha2VzIHRoZSB3YXJuaW5nIGdvIGF3YXkuCi0g
ICAgdDAuaSA9IDA7Ci0gICAgdDEuaSA9IDA7Ci0KLSAgICBWTSogdm0gPSAmY2FsbEZyYW1lLT52
bSgpOwotCi0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygp
OwotICAgIEluc3RydWN0aW9uKiB2UEM7Ci0KLSAgICAvLyByUEMgaXMgYW4gYWxpYXMgZm9yIHZQ
Qy4gU2V0IHVwIHRoZSBhbGlhczoKLSAgICBDTG9vcFJlZ2lzdGVyJiByUEMgPSAqQ0FTVDxDTG9v
cFJlZ2lzdGVyKj4oJnZQQyk7CisgICAgbHIub3Bjb2RlID0gZ2V0T3Bjb2RlKGxsaW50X3JldHVy
bl90b19ob3N0KTsKKyAgICBzcC52cCA9IHZtLT5pbnRlcnByZXRlci0+c3RhY2soKS50b3BPZlN0
YWNrKCkgKyAxOworICAgIGNmci5jYWxsRnJhbWUgPSB2bS0+dG9wQ2FsbEZyYW1lOworI2lmbmRl
ZiBOREVCVUcKKyAgICB2b2lkKiBzdGFydFNQID0gc3AudnA7CisgICAgQ2FsbEZyYW1lKiBzdGFy
dENGUiA9IGNmci5jYWxsRnJhbWU7CisjZW5kaWYKIAotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0g
ICAgdlBDID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwotI2Vsc2UgLy8gVVNF
KEpTVkFMVUU2NCkKLSAgICB2UEMgPSAwOwotICAgIHJCYXNlUEMudnAgPSBjb2RlQmxvY2stPmlu
c3RydWN0aW9ucygpLmJlZ2luKCk7CisgICAgLy8gSW5pdGlhbGl6ZSB0aGUgaW5jb21pbmcgYXJn
cyBmb3IgZG9DYWxsVG9KYXZhU2NyaXB0OgorICAgIHQwLnZwID0gZXhlY3V0YWJsZUFkZHJlc3M7
CisgICAgdDEudm0gPSB2bTsKKyAgICB0Mi5wcm90b0NhbGxGcmFtZSA9IHByb3RvQ2FsbEZyYW1l
OwogCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAvLyBGb3IgdGhlIEFTTSBsbGludCwgSklUU3R1
YnMgdGFrZXMgY2FyZSBvZiB0aGlzIGluaXRpYWxpemF0aW9uLiBXZSBkbwogICAgIC8vIGl0IGV4
cGxpY2l0bHkgaGVyZSBmb3IgdGhlIEMgbG9vcDoKICAgICB0YWdUeXBlTnVtYmVyLmkgPSAweEZG
RkYwMDAwMDAwMDAwMDA7CiAgICAgdGFnTWFzay5pID0gMHhGRkZGMDAwMDAwMDAwMDAyOwogI2Vu
ZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAKLSAgICAvLyBjZnIgaXMgYW4gYWxpYXMgZm9yIGNhbGxG
cmFtZS4gU2V0IHVwIHRoaXMgYWxpYXM6Ci0gICAgQ0xvb3BSZWdpc3RlciYgY2ZyID0gKkNBU1Q8
Q0xvb3BSZWdpc3Rlcio+KCZjYWxsRnJhbWUpOwotCi0gICAgLy8gU2ltdWxhdGUgYSBuYXRpdmUg
cmV0dXJuIFBDIHdoaWNoIHNob3VsZCBuZXZlciBiZSB1c2VkOgotICAgIHJSZXRWUEMuaSA9IDB4
YmJhZGJlZWY7Ci0KICAgICAvLyBJbnRlcnByZXRlciB2YXJpYWJsZXMgZm9yIHZhbHVlIHBhc3Np
bmcgYmV0d2VlbiBvcGNvZGVzIGFuZC9vciBoZWxwZXJzOgogICAgIE5hdGl2ZUZ1bmN0aW9uIG5h
dGl2ZUZ1bmMgPSAwOwogICAgIEpTVmFsdWUgZnVuY3Rpb25SZXR1cm5WYWx1ZTsKLSAgICBPcGNv
ZGUgb3Bjb2RlOworICAgIE9wY29kZSBvcGNvZGUgPSBnZXRPcGNvZGUoZW50cnlPcGNvZGVJRCk7
CiAKLSAgICBvcGNvZGUgPSBlbnRyeU9wY29kZTsKKyNkZWZpbmUgUFVTSChjbG9vcFJlZykgXAor
ICAgIGRvIHsgXAorICAgICAgICBzcC5pcC0tOyBcCisgICAgICAgICpzcC5pcCA9IGNsb29wUmVn
Lmk7IFwKKyAgICB9IHdoaWxlIChmYWxzZSkKKworI2RlZmluZSBQT1AoY2xvb3BSZWcpIFwKKyAg
ICBkbyB7IFwKKyAgICAgICAgY2xvb3BSZWcuaSA9ICpzcC5pcDsgXAorICAgICAgICBzcC5pcCsr
OyBcCisgICAgfSB3aGlsZSAoZmFsc2UpCisKKyNpZiBFTkFCTEUoT1BDT0RFX1NUQVRTKQorI2Rl
ZmluZSBSRUNPUkRfT1BDT0RFX1NUQVRTKF9fb3Bjb2RlKSBPcGNvZGVTdGF0czo6cmVjb3JkSW5z
dHJ1Y3Rpb24oX19vcGNvZGUpCisjZWxzZQorI2RlZmluZSBSRUNPUkRfT1BDT0RFX1NUQVRTKF9f
b3Bjb2RlKQorI2VuZGlmCiAKLSAgICAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKLSAgICAgICAg
I2RlZmluZSBSRUNPUkRfT1BDT0RFX1NUQVRTKF9fb3Bjb2RlKSBcCi0gICAgICAgICAgICBPcGNv
ZGVTdGF0czo6cmVjb3JkSW5zdHJ1Y3Rpb24oX19vcGNvZGUpCi0gICAgI2Vsc2UKLSAgICAgICAg
I2RlZmluZSBSRUNPUkRfT1BDT0RFX1NUQVRTKF9fb3Bjb2RlKQotICAgICNlbmRpZgotCi0gICAg
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICNkZWZpbmUgRkVUQ0hfT1BDT0RFKCkgdlBD
LT51Lm9wY29kZQotICAgICNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICNkZWZpbmUg
RkVUQ0hfT1BDT0RFKCkgKmJpdHdpc2VfY2FzdDxPcGNvZGUqPihyQmFzZVBDLmk4cCArIHJQQy5p
ICogOCkKLSAgICAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKLQotICAgICNkZWZpbmUgTkVYVF9J
TlNUUlVDVElPTigpIFwKLSAgICAgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICBvcGNvZGUgPSBGRVRDSF9PUENPREUoKTsgXAotICAgICAgICAgICAgRElTUEFU
Q0hfT1BDT0RFKCk7ICAgICAgIFwKLSAgICAgICAgfSB3aGlsZSAoZmFsc2UpCisjaWYgVVNFKEpT
VkFMVUUzMl82NCkKKyNkZWZpbmUgRkVUQ0hfT1BDT0RFKCkgcGMub3Bjb2RlCisjZWxzZSAvLyBV
U0UoSlNWQUxVRTY0KQorI2RlZmluZSBGRVRDSF9PUENPREUoKSAqYml0d2lzZV9jYXN0PE9wY29k
ZSo+KHBjQmFzZS5pOHAgKyBwYy5pICogOCkKKyNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQorCisj
ZGVmaW5lIE5FWFRfSU5TVFJVQ1RJT04oKSBcCisgICAgZG8geyAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgIG9wY29kZSA9IEZFVENIX09QQ09ERSgpOyBcCisgICAgICAgIERJU1BB
VENIX09QQ09ERSgpOyAgICAgICBcCisgICAgfSB3aGlsZSAoZmFsc2UpCiAKICNpZiBFTkFCTEUo
Q09NUFVURURfR09UT19PUENPREVTKQogCkBAIC00MTIsMTQgKzQyMywyMiBAQCBKU1ZhbHVlIENM
b29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyCiAKICAgICAgICAgI2luY2x1ZGUgIkxMSW50
QXNzZW1ibHkuaCIKIAorICAgICAgICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKGxsaW50X3JldHVy
bl90b19ob3N0KQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoc3RhcnRTUCA9PSBzcC52
cCk7CisgICAgICAgICAgICBBU1NFUlQoc3RhcnRDRlIgPT0gY2ZyLmNhbGxGcmFtZSk7CisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKHQxLmksIHQwLmkp
OyAvLyByZXR1cm5pbmcgSlNWYWx1ZSh0YWcsIHBheWxvYWQpOworI2Vsc2UKKyAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodDAuZW5jb2RlZEpTVmFsdWUpOworI2VuZGlmCisgICAg
ICAgIH0KKwogICAgICAgICAvLyBJbiB0aGUgQVNNIGxsaW50LCBnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKCkgaXMgYSBwaWVjZSBvZiBnbHVlCi0gICAgICAgIC8vIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5
IHRoZSBKSVQgKHNlZSBkZmcvREZHT3BlcmF0aW9ucy5jcHApLgorICAgICAgICAvLyBmdW5jdGlv
biBwcm92aWRlZCBieSB0aGUgSklUIChzZWUgaml0L0pJVE9wZXJhdGlvbnMuY3BwKS4KICAgICAg
ICAgLy8gV2Ugc2ltdWxhdGUgaXQgaGVyZSB3aXRoIGEgcHNlZHVvLW9wY29kZSBoYW5kbGVyLgog
ICAgICAgICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIC8vIFRoZSBBU00gcGFydCBwb3BzIHRoZSBmcmFtZToKLSAg
ICAgICAgICAgIGNhbGxGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKLQogICAgICAg
ICAgICAgLy8gVGhlIHBhcnQgaW4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUo
KToKICAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gdm0tPmhvc3RDYWxsUmV0dXJuVmFsdWU7
CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKQEAgLTQyOCwxMiArNDQ3LDggQEAgSlNWYWx1ZSBDTG9v
cDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogI2Vsc2UKICAgICAgICAgICAgIHQwLmVuY29k
ZWRKU1ZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAjZW5kaWYKLSAgICAgICAgICAg
IGdvdG8gZG9SZXR1cm5IZWxwZXI7Ci0gICAgICAgIH0KLQotICAgICAgICBPRkZMSU5FX0FTTV9H
TFVFX0xBQkVMKHJldHVybkZyb21KYXZhU2NyaXB0KQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gdm0tPmV4Y2VwdGlvbigpOworICAgICAgICAgICAgb3Bjb2RlID0gbHIub3Bjb2RlOwor
ICAgICAgICAgICAgRElTUEFUQ0hfT1BDT0RFKCk7CiAgICAgICAgIH0KIAogI2lmICFFTkFCTEUo
Q09NUFVURURfR09UT19PUENPREVTKQpAQCAtNDQzLDU1ICs0NTgsNiBAQCBKU1ZhbHVlIENMb29w
OjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyCiAKICAgICB9IC8vIEVORCBieXRlY29kZSBoYW5k
bGVyIGNhc2VzLgogCi0gICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICAvLyBCeXRlY29kZSBoZWxw
ZXJzOgotCi0gICAgZG9SZXR1cm5IZWxwZXI6IHsKLSAgICAgICAgQVNTRVJUKCEhY2FsbEZyYW1l
KTsKLSAgICAgICAgaWYgKGNhbGxGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSkgewotI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSh0MS5pLCB0MC5pKTsg
Ly8gcmV0dXJuaW5nIEpTVmFsdWUodGFnLCBwYXlsb2FkKTsKLSNlbHNlCi0gICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHQwLmVuY29kZWRKU1ZhbHVlKTsKLSNlbmRpZgotICAgICAg
ICB9Ci0KLSAgICAgICAgLy8gVGhlIG5vcm1hbCBBU00gbGxpbnQgY2FsbCBpbXBsZW1lbnRhdGlv
biByZXR1cm5zIHRvIHRoZSBjYWxsZXIgYXMKLSAgICAgICAgLy8gcmVjb3JkZWQgaW4gclJldFZQ
QywgYW5kIHRoZSBjYWxsZXIgd291bGQgZmV0Y2ggdGhlIHJldHVybiBhZGRyZXNzCi0gICAgICAg
IC8vIGZyb20gQXJndW1lbnRDb3VudC50YWcoKSAoc2VlIHRoZSBkaXNwYXRjaEFmdGVyQ2FsbCgp
IG1hY3JvIHVzZWQgaW4KLSAgICAgICAgLy8gdGhlIGNhbGxUYXJnZXRGdW5jdGlvbigpIG1hY3Jv
IGluIHRoZSBsbGludCBhc20gZmlsZXMpLgotICAgICAgICAvLwotICAgICAgICAvLyBGb3IgdGhl
IEMgbG9vcCwgd2UgZG9uJ3QgaGF2ZSB0aGUgSklUIHN0dWIgdG8gZG8gdGhpcyB3b3JrIGZvciB1
cy4gU28sCi0gICAgICAgIC8vIHdlIGp1bXAgdG8gbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQu
Ci0KLSAgICAgICAgdlBDID0gY2FsbEZyYW1lLT5jdXJyZW50VlBDKCk7Ci0KLSNpZiBVU0UoSlNW
QUxVRTY0KQotICAgICAgICAvLyBCYXNlZCBvbiBMb3dMZXZlbEludGVycHJldGVyNjQuYXNtJ3Mg
ZGlzcGF0Y2hBZnRlckNhbGwoKToKLQotICAgICAgICAvLyBXaGVuIHJldHVybmluZyBmcm9tIGEg
bmF0aXZlIHRyYW1wb2xpbmUgY2FsbCwgdW5saWtlIHRoZSBhc3NlbWJseQotICAgICAgICAvLyBM
TEludCwgd2UgY2FuJ3Qgc2ltcGx5IHJldHVybiB0byB0aGUgY2FsbGVyLiBJbiBvdXIgY2FzZSwg
d2UgZ3JhYgotICAgICAgICAvLyB0aGUgY2FsbGVyJ3MgVlBDIGFuZCByZXN1bWUgZXhlY3V0aW9u
IHRoZXJlLiBIb3dldmVyLCB0aGUgY2FsbGVyJ3MKLSAgICAgICAgLy8gVlBDIHJldHVybmVkIGJ5
IGNhbGxGcmFtZS0+Y3VycmVudFZQQygpIGlzIGluIHRoZSBmb3JtIG9mIHRoZSByZWFsCi0gICAg
ICAgIC8vIGFkZHJlc3Mgb2YgdGhlIHRhcmdldCBieXRlY29kZSwgYnV0IHRoZSA2NC1iaXQgbGxp
bnQgZXhwZWN0cyB0aGUKLSAgICAgICAgLy8gVlBDIHRvIGJlIGEgYnl0ZWNvZGUgb2Zmc2V0LiBI
ZW5jZSwgd2UgbmVlZCB0byBtYXAgaXQgYmFjayB0byBhCi0gICAgICAgIC8vIGJ5dGVjb2RlIG9m
ZnNldCBiZWZvcmUgd2UgZGlzcGF0Y2ggdmlhIHRoZSB1c3VhbCBkaXNwYXRjaCBtZWNoYW5pc20K
LSAgICAgICAgLy8gaS5lLiBORVhUX0lOU1RSVUNUSU9OKCk6Ci0KLSAgICAgICAgY29kZUJsb2Nr
ID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKLSAgICAgICAgQVNTRVJUKGNvZGVCbG9jayk7Ci0g
ICAgICAgIHJQQy52cCA9IGNhbGxGcmFtZS0+Y3VycmVudFZQQygpOwotICAgICAgICByUEMuaSA9
IHJQQy5pOHAgLSByZWludGVycHJldF9jYXN0PGludDhfdCo+KGNvZGVCbG9jay0+aW5zdHJ1Y3Rp
b25zKCkuYmVnaW4oKSk7Ci0gICAgICAgIHJQQy5pID4+PSAzOwotCi0gICAgICAgIHJCYXNlUEMu
dnAgPSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7Ci0jZW5kaWYgLy8gVVNFKEpT
VkFMVUU2NCkKLQotICAgICAgICBnb3RvIGxsaW50X2dlbmVyaWNfcmV0dXJuX3BvaW50OwotCi0g
ICAgfSAvLyBFTkQgZG9SZXR1cm5IZWxwZXIuCi0KLQogI2lmIEVOQUJMRShDT01QVVRFRF9HT1RP
X09QQ09ERVMpCiAgICAgLy8gS2VlcCB0aGUgY29tcGlsZXIgaGFwcHkgc28gdGhhdCBpdCBkb2Vz
bid0IGNvbXBsYWluIGFib3V0IHVudXNlZAogICAgIC8vIGxhYmVscyBmb3IgdGhlIExMSW50IHRy
YW1wb2xpbmUgZ2x1ZS4gVGhlIGxhYmVscyBhcmUgYXV0b21hdGljYWxseQpAQCAtNTIzLDEyICs0
ODksMTIgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogCiAvLyBU
aGVzZSBhcmUgZm9yIGJ1aWxkaW5nIGFuIGludGVycHJldGVyIGZyb20gZ2VuZXJhdGVkIGFzc2Vt
Ymx5IGNvZGU6CiAjaWYgQ1BVKFg4Nl82NCkgJiYgQ09NUElMRVIoQ0xBTkcpCi0jZGVmaW5lIE9G
RkxJTkVfQVNNX0JFR0lOICAgYXNtICggXAorI2RlZmluZSBPRkZMSU5FX0FTTV9CRUdJTiAgIGFz
bSAoICAgICAgICAgICAgICAgIFwKICAgICAiLmNmaV9zdGFydHByb2NcbiIKIAotI2RlZmluZSBP
RkZMSU5FX0FTTV9FTkQgICAgIFwKLSAgICAiLmNmaV9lbmRwcm9jXG4iIFwKLSk7CisjZGVmaW5l
IE9GRkxJTkVfQVNNX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICIuY2ZpX2Vu
ZHByb2NcbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApOwogI2Vsc2UKICNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4gICBhc20gKAog
I2RlZmluZSBPRkZMSU5FX0FTTV9FTkQgICAgICk7CkBAIC01NTEsOSArNTE3LDkgQEAgSlNWYWx1
ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogICAgICIuZ2xvYmwgIiBTWU1CT0xf
U1RSSU5HKGxhYmVsKSAiXG4iICAgICAgICAgXAogICAgIEhJREVfU1lNQk9MKGxhYmVsKSAiXG4i
ICAgICAgICAgICAgICAgICAgICAgXAogICAgIFNZTUJPTF9TVFJJTkcobGFiZWwpICI6XG4iICAg
ICAgICAgICAgICAgICAgXAotICAgICIuY2ZpX2RlZl9jZmEgcmJwLCAwXG4iICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICIuY2ZpX29mZnNldCAxNiwgOFxuIiAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgICIuY2ZpX29mZnNldCA2LCAwXG4iCisgICAgIi5jZmlfZGVmX2NmYV9vZmZzZXQg
MTZcbiIgICAgICAgICAgICAgICAgICBcCisgICAgIi5jZmlfb2Zmc2V0ICVyYnAsIC0xNlxuIiAg
ICAgICAgICAgICAgICAgICBcCisgICAgIi5jZmlfZGVmX2NmYV9yZWdpc3RlciByYnBcbiIKICNl
bHNlCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0dMT0JBTF9MQUJFTChsYWJlbCkgICAgICAgICBcCiAg
ICAgIi50ZXh0XG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNw
cAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsdm0vbGlicmFy
eS9MTFZNRXhwb3J0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDEwIEBAIGV4dGVy
biAiQyIgSlNDOjpMTFZNQVBJKiBpbml0aWFsaXplQW5kR2UKICAgICBnX2xsdm1UcmFwQ2FsbGJh
Y2sgPSBjYWxsYmFjazsKICAgICAKICAgICBMTFZNSW5zdGFsbEZhdGFsRXJyb3JIYW5kbGVyKGxs
dm1DcmFzaCk7CisKKyAgICBpZiAoIUxMVk1TdGFydE11bHRpdGhyZWFkZWQoKSkKKyAgICAgICAg
Y2FsbGJhY2soIkNvdWxkIG5vdCBzdGFydCBMTFZNIG11bHRpdGhyZWFkaW5nIik7CisgICAgCiAg
ICAgTExWTUxpbmtJbk1DSklUKCk7CiAgICAgTExWTUluaXRpYWxpemVOYXRpdmVUYXJnZXQoKTsK
ICAgICBMTFZNSW5pdGlhbGl6ZVg4NkFzbVByaW50ZXIoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgkod29ya2luZyBjb3B5KQpAQCAtNDAs
MTQgKzQwLDE0IEBAIHJlcXVpcmUgInJpc2MiCiAjICB4MSAgPT4gdDEsIGExLCByMQogIyAgeDIg
ID0+IHQyLCBhMgogIyAgeDMgID0+IGEzCisjICB4NSAgPT4gdDUKKyMgIHg2ICA9PiB0NgogIyAg
eDkgID0+IChub25BcmdHUFIxIGluIGJhc2VsaW5lKQotIyB4MTAgID0+IHQ0ICh1bnVzZWQgaW4g
YmFzZWxpbmUpCi0jIHgxMSAgPT4gdDUgKHVudXNlZCBpbiBiYXNlbGluZSkKLSMgeDEyICA9PiB0
NiAodW51c2VkIGluIGJhc2VsaW5lKQogIyB4MTMgID0+IHNjcmF0Y2ggKHVudXNlZCBpbiBiYXNl
bGluZSkKICMgeDE2ICA9PiBzY3JhdGNoCiAjIHgxNyAgPT4gc2NyYXRjaAogIyB4MjMgID0+IHQz
CisjIHgyNCAgPT4gdDQKICMgeDI3ICA9PiBjc3IxICh0YWdUeXBlTnVtYmVyKQogIyB4MjggID0+
IGNzcjIgKHRhZ01hc2spCiAjIHgyOSAgPT4gY2ZyCkBAIC0xMTMsMTEgKzExMywxMSBAQCBjbGFz
cyBSZWdpc3RlcklECiAgICAgICAgIHdoZW4gJ3QzJwogICAgICAgICAgICAgYXJtNjRHUFJOYW1l
KCd4MjMnLCBraW5kKQogICAgICAgICB3aGVuICd0NCcKLSAgICAgICAgICAgIGFybTY0R1BSTmFt
ZSgneDEwJywga2luZCkKKyAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDI0Jywga2luZCkKICAg
ICAgICAgd2hlbiAndDUnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gxMScsIGtpbmQpCisg
ICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3g1Jywga2luZCkKICAgICAgICAgd2hlbiAndDYnCi0g
ICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gxMicsIGtpbmQpCisgICAgICAgICAgICBhcm02NEdQ
Uk5hbWUoJ3g2Jywga2luZCkKICAgICAgICAgd2hlbiAnY2ZyJwogICAgICAgICAgICAgYXJtNjRH
UFJOYW1lKCd4MjknLCBraW5kKQogICAgICAgICB3aGVuICdjc3IxJwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCSh3b3JraW5nIGNvcHkpCkBAIC02MDEs
NiArNjAxLDggQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAic211
bGwgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1szXS5hcm1PcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAg
ICAgICAgd2hlbiAibWVtZmVuY2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImRtYiBzeSIKKyAg
ICAgICAgd2hlbiAiY2xyYnAiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJpYyAje29wZXJhbmRz
WzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFd
LmFybU9wZXJhbmR9IgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBsb3dlckRlZmF1bHQKICAg
ICAgICAgZW5kCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5y
Ygo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5y
YgkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
Y2xvb3AucmIJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAx
MiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTY4LDM0ICs2OCwyMiBAQCBDX0xPT1BfU0NSQVRDSF9GUFIgPSBTcGVj
aWFsUmVnaXN0ZXIubmV3CiBjbGFzcyBSZWdpc3RlcklECiAgICAgZGVmIGNsRHVtcAogICAgICAg
ICBjYXNlIG5hbWUKLSAgICAgICAgd2hlbiAiYTAiCi0gICAgICAgICAgICAiYTAiCi0gICAgICAg
IHdoZW4gImExIgotICAgICAgICAgICAgImExIgotICAgICAgICB3aGVuICJhMiIKLSAgICAgICAg
ICAgICJhMiIKLSAgICAgICAgd2hlbiAiYTMiCi0gICAgICAgICAgICAiYTMiCi0gICAgICAgIHdo
ZW4gImE0IgotICAgICAgICAgICAgImE0IgotICAgICAgICB3aGVuICJhNSIKLSAgICAgICAgICAg
ICJhNSIKLSAgICAgICAgd2hlbiAiYTYiCi0gICAgICAgICAgICAiYTYiCi0gICAgICAgIHdoZW4g
ImE2IgotICAgICAgICAgICAgImE2IgotICAgICAgICB3aGVuICJ0MCIKKyAgICAgICAgIyBUaGUg
Y2xvb3AgaXMgbW9kZWxsZWQgb24gdGhlIEFSTSBpbXBsZW1lbnRhdGlvbi4gSGVuY2UsIHRoZSBh
MC1hMworICAgICAgICAjIHJlZ2lzdGVycyBhcmUgYWxpYXNlcyBmb3IgcjAtcjMgaS5lLiB0MC10
MyBpbiBvdXIgY2FzZS4KKyAgICAgICAgd2hlbiAidDAiLCAiYTAiCiAgICAgICAgICAgICAidDAi
Ci0gICAgICAgIHdoZW4gInQxIgorICAgICAgICB3aGVuICJ0MSIsICJhMSIKICAgICAgICAgICAg
ICJ0MSIKLSAgICAgICAgd2hlbiAidDIiCisgICAgICAgIHdoZW4gInQyIiwgImEyIgogICAgICAg
ICAgICAgInQyIgotICAgICAgICB3aGVuICJ0MyIKKyAgICAgICAgd2hlbiAidDMiLCAiYTMiCiAg
ICAgICAgICAgICAidDMiCiAgICAgICAgIHdoZW4gInQ0IgotICAgICAgICAgICAgInJQQyIKKyAg
ICAgICAgICAgICJwYyIKKyAgICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICAidDUiCiAgICAg
ICAgIHdoZW4gInQ2IgotICAgICAgICAgICAgInJCYXNlUEMiCisgICAgICAgICAgICAicGNCYXNl
IgogICAgICAgICB3aGVuICJjc3IxIgogICAgICAgICAgICAgInRhZ1R5cGVOdW1iZXIiCiAgICAg
ICAgIHdoZW4gImNzcjIiCkBAIC0xMDMsNyArOTEsNyBAQCBjbGFzcyBSZWdpc3RlcklECiAgICAg
ICAgIHdoZW4gImNmciIKICAgICAgICAgICAgICJjZnIiCiAgICAgICAgIHdoZW4gImxyIgotICAg
ICAgICAgICAgInJSZXRWUEMiCisgICAgICAgICAgICAibHIiCiAgICAgICAgIHdoZW4gInNwIgog
ICAgICAgICAgICAgInNwIgogICAgICAgICBlbHNlCkBAIC01NTUsMTQgKzU0MywxNCBAQCBlbmQK
ICMgb3BlcmFuZHM6IGNhbGxUYXJnZXQsIGN1cnJlbnRGcmFtZSwgY3VycmVudFBDCiBkZWYgY2xv
b3BFbWl0Q2FsbFNsb3dQYXRoKG9wZXJhbmRzKQogICAgICRhc20ucHV0YyAieyIKLSAgICAkYXNt
LnB1dGMgIiAgICBFeGVjU3RhdGUqIGV4ZWMgPSBDQVNUPEV4ZWNTdGF0ZSo+KCN7b3BlcmFuZHNb
MV0uY2xWYWx1ZSg6dm9pZFB0cil9KTsiCi0gICAgJGFzbS5wdXRjICIgICAgSW5zdHJ1Y3Rpb24q
IHBjID0gQ0FTVDxJbnN0cnVjdGlvbio+KCN7b3BlcmFuZHNbMl0uY2xWYWx1ZSg6dm9pZFB0cil9
KTsiCi0gICAgJGFzbS5wdXRjICIgICAgU2xvd1BhdGhSZXR1cm5UeXBlIHJlc3VsdCA9ICN7b3Bl
cmFuZHNbMF0uY0xhYmVsfShleGVjLCBwYyk7IgotICAgICRhc20ucHV0YyAiICAgIGRlY29kZVJl
c3VsdChyZXN1bHQsIHQwLmluc3RydWN0aW9uLCB0MS52cCk7IgorICAgICRhc20ucHV0YyAiICAg
IFNsb3dQYXRoUmV0dXJuVHlwZSByZXN1bHQgPSAje29wZXJhbmRzWzBdLmNMYWJlbH0oI3tvcGVy
YW5kc1sxXS5jbER1bXB9LCAje29wZXJhbmRzWzJdLmNsRHVtcH0pOyIKKyAgICAkYXNtLnB1dGMg
IiAgICBkZWNvZGVSZXN1bHQocmVzdWx0LCB0MC52cCwgdDEudnApOyIKICAgICAkYXNtLnB1dGMg
In0iCiBlbmQKIAogY2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBAQGRpZFJldHVybkZyb21KU0xhYmVs
Q291bnRlciA9IDAKKwogICAgIGRlZiBsb3dlckNfTE9PUAogICAgICAgICAkYXNtLmNvZGVPcmln
aW4gY29kZU9yaWdpblN0cmluZyBpZiAkZW5hYmxlQ29kZU9yaWdpbkNvbW1lbnRzCiAgICAgICAg
ICRhc20uYW5ub3RhdGlvbiBhbm5vdGF0aW9uIGlmICRlbmFibGVJbnN0ckFubm90YXRpb25zICYm
IChvcGNvZGUgIT0gImNsb29wRG8iKQpAQCAtODc2LDcgKzg2NCw4IEBAIGNsYXNzIEluc3RydWN0
aW9uCiAgICAgICAgIHdoZW4gImJyZWFrIgogICAgICAgICAgICAgJGFzbS5wdXRjICJDUkFTSCgp
OyAvLyBicmVhayBpbnN0cnVjdGlvbiBub3QgaW1wbGVtZW50ZWQuIgogICAgICAgICB3aGVuICJy
ZXQiCi0gICAgICAgICAgICAkYXNtLnB1dGMgImdvdG8gZG9SZXR1cm5IZWxwZXI7IgorICAgICAg
ICAgICAgJGFzbS5wdXRjICJvcGNvZGUgPSBsci5vcGNvZGU7IgorICAgICAgICAgICAgJGFzbS5w
dXRjICJESVNQQVRDSF9PUENPREUoKTsiCiAKICAgICAgICAgd2hlbiAiY2JlcSIKICAgICAgICAg
ICAgIGNsb29wRW1pdENvbXBhcmVBbmRTZXQob3BlcmFuZHMsIDp1aW50OCwgIj09IikKQEAgLTEw
OTcsNiArMTA4NiwxMiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgY2xvb3BFbWl0
T3BBbmRCcmFuY2gob3BlcmFuZHMsICJ8IiwgOmludDMyLCAiIT0gMCIpCiAgICAgICAgICAgICAK
ICAgICAgICAgd2hlbiAibWVtZmVuY2UiCisKKyAgICAgICAgd2hlbiAicHVzaCIKKyAgICAgICAg
ICAgICRhc20ucHV0YyAiUFVTSCgje29wZXJhbmRzWzBdLmNsRHVtcH0pOyIKKyAgICAgICAgd2hl
biAicG9wIgorICAgICAgICAgICAgJGFzbS5wdXRjICJQT1AoI3tvcGVyYW5kc1swXS5jbER1bXB9
KTsiCisKICAgICAgICAgd2hlbiAicHVzaENhbGxlZVNhdmVzIgogICAgICAgICB3aGVuICJwb3BD
YWxsZWVTYXZlcyIKIApAQCAtMTExMyw4ICsxMTA4LDExIEBAIGNsYXNzIEluc3RydWN0aW9uCiAg
ICAgICAgICMgdXNlIG9mIHRoZSBjYWxsIGluc3RydWN0aW9uLiBJbnN0ZWFkLCB3ZSBqdXN0IGlt
cGxlbWVudCBKUyBjYWxscwogICAgICAgICAjIGFzIGFuIG9wY29kZSBkaXNwYXRjaC4KICAgICAg
ICAgd2hlbiAiY2xvb3BDYWxsSlNGdW5jdGlvbiIKKyAgICAgICAgICAgIEBAZGlkUmV0dXJuRnJv
bUpTTGFiZWxDb3VudGVyICs9IDEKKyAgICAgICAgICAgICRhc20ucHV0YyAibHIub3Bjb2RlID0g
Z2V0T3Bjb2RlKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc18je0BAZGlkUmV0dXJuRnJv
bUpTTGFiZWxDb3VudGVyfSk7IgogICAgICAgICAgICAgJGFzbS5wdXRjICJvcGNvZGUgPSAje29w
ZXJhbmRzWzBdLmNsVmFsdWUoOm9wY29kZSl9OyIKICAgICAgICAgICAgICRhc20ucHV0YyAiRElT
UEFUQ0hfT1BDT0RFKCk7IgorICAgICAgICAgICAgJGFzbS5wdXRzTGFiZWwoImxsaW50X2Nsb29w
X2RpZF9yZXR1cm5fZnJvbV9qc18je0BAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3VudGVyfSIpCiAK
ICAgICAgICAgIyBXZSBjYW4ndCBkbyBnZW5lcmljIGZ1bmN0aW9uIGNhbGxzIHdpdGggYW4gYXJi
aXRyYXJ5IHNldCBvZiBhcmdzLCBidXQKICAgICAgICAgIyBmb3J0dW5hdGVseSB3ZSBkb24ndCBo
YXZlIHRvIGhlcmUuIEFsbCBuYXRpdmUgZnVuY3Rpb24gY2FsbHMgYWx3YXlzCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVj
dGlvbnMucmIJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsMTEgQEAgWDg2X0lOU1RSVUNU
SU9OUyA9CiAgICAgICJpZGl2aSIKICAgICBdCiAKK0FSTV9JTlNUUlVDVElPTlMgPQorICAgIFsK
KyAgICAgImNscmJwIgorICAgIF0KKwogQVJNNjRfSU5TVFJVQ1RJT05TID0KICAgICBbCiAgICAg
ICJwb3BMUkFuZEZQIiwgICAjIEFSTTY0IHJlcXVpcmVzIHJlZ2lzdGVycyB0byBiZSBwdXNoZWQg
YW5kIHBvcHBlZCBpbiBwYWlycywKQEAgLTMxMyw3ICszMTgsNyBAQCBDWFhfSU5TVFJVQ1RJT05T
ID0KICAgICAgImNsb29wRG8iLCAgICAgICAgICAgICAgIyBubyBvcGVyYW5kcwogICAgIF0KIAot
SU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFS
TTY0X0lOU1RSVUNUSU9OUyArIFJJU0NfSU5TVFJVQ1RJT05TICsgTUlQU19JTlNUUlVDVElPTlMg
KyBTSDRfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUworSU5TVFJVQ1RJT05TID0gTUFD
Uk9fSU5TVFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTV9JTlNUUlVDVElPTlMgKyBB
Uk02NF9JTlNUUlVDVElPTlMgKyBSSVNDX0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05T
ICsgU0g0X0lOU1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKIAogSU5TVFJVQ1RJT05fUEFU
VEVSTiA9IFJlZ2V4cC5uZXcoJ1xcQSgoJyArIElOU1RSVUNUSU9OUy5qb2luKCcpfCgnKSArICcp
KVxcWicpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHJl
dmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5y
Ygkod29ya2luZyBjb3B5KQpAQCAtMTUwLDE1ICsxNTAsMTUgQEAgY2xhc3MgUmVnaXN0ZXJJRAog
ICAgICAgICB3aGVuICJ0NCIKICAgICAgICAgICAgIGNhc2Uga2luZAogICAgICAgICAgICAgd2hl
biA6Ynl0ZQotICAgICAgICAgICAgICAgICIlc2lsIgorICAgICAgICAgICAgICAgICIlZGlsIgog
ICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgICIlc2kiCisgICAgICAgICAg
ICAgICAgIiVkaSIKICAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgICIlZXNp
IgorICAgICAgICAgICAgICAgICIlZWRpIgogICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAg
ICAgICAgICAgaXNYNjQgPyAiJXJzaSIgOiAiJWVzaSIKKyAgICAgICAgICAgICAgICBpc1g2NCA/
ICIlcmRpIiA6ICIlZWRpIgogICAgICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAg
IGlzWDY0ID8gIiVyc2kiIDogcmFpc2UKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcmRpIiA6
IHJhaXNlCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAg
ICAgIGVuZApAQCAtMjA2LDE1ICsyMDYsMTUgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICB3
aGVuICJ0NSIKICAgICAgICAgICAgIGNhc2Uga2luZAogICAgICAgICAgICAgd2hlbiA6Ynl0ZQot
ICAgICAgICAgICAgICAgICIlZGlsIgorICAgICAgICAgICAgICAgICIlc2lsIgogICAgICAgICAg
ICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgICIlZGkiCisgICAgICAgICAgICAgICAgIiVz
aSIKICAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgICIlZWRpIgorICAgICAg
ICAgICAgICAgICIlZXNpIgogICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAg
aXNYNjQgPyAiJXJkaSIgOiAiJWVkaSIKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcnNpIiA6
ICIlZXNpIgogICAgICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgIGlzWDY0ID8g
IiVyZGkiIDogcmFpc2UKKyAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcnNpIiA6IHJhaXNlCiAg
ICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAidDYiCiAgICAgICAgICAgICByYWlzZSAiQ2Fu
bm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5s
ZXNzIGlzWDY0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJv
ci5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlckVycm9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgUGFy
c2VyRXJyb3JfaAogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5n
U2NvcGUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiUGFyc2Vy
VG9rZW5zLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05NCw4ICs5NSwx
MCBAQCBzdHJ1Y3QgUGFyc2VyRXJyb3IgewogICAgICAgICAgICAgcmV0dXJuIGFkZEVycm9ySW5m
byhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBtX21lc3NhZ2UpLCBtX2xpbmUsIHNvdXJjZSk7CiAgICAgICAgIGNhc2UgRXZhbEVycm9y
OgogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgbV9t
ZXNzYWdlKTsKLSAgICAgICAgY2FzZSBTdGFja092ZXJmbG93OgorICAgICAgICBjYXNlIFN0YWNr
T3ZlcmZsb3c6IHsKKyAgICAgICAgICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKGds
b2JhbE9iamVjdC0+dm0oKSk7CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhY2tPdmVyZmxv
d0Vycm9yKGdsb2JhbE9iamVjdCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBPdXRPZk1lbW9y
eToKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVj
dCk7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckNvbXBpbGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEy
LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjcsNiArNjcsMTEgQEAgdm9pZCBDb21waWxhdGlvbjo6
YWRkRGVzY3JpcHRpb24oY29uc3QgQwogICAgIG1fZGVzY3JpcHRpb25zLmFwcGVuZChjb21waWxl
ZEJ5dGVjb2RlKTsKIH0KIAordm9pZCBDb21waWxhdGlvbjo6YWRkRGVzY3JpcHRpb24oY29uc3Qg
T3JpZ2luU3RhY2smIHN0YWNrLCBjb25zdCBDU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBh
ZGREZXNjcmlwdGlvbihDb21waWxlZEJ5dGVjb2RlKHN0YWNrLCBkZXNjcmlwdGlvbikpOworfQor
CiBFeGVjdXRpb25Db3VudGVyKiBDb21waWxhdGlvbjo6ZXhlY3V0aW9uQ291bnRlckZvcihjb25z
dCBPcmlnaW5TdGFjayYgb3JpZ2luKQogewogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeGVjdXRpb25D
b3VudGVyPiYgY291bnRlciA9IG1fY291bnRlcnMuYWRkKG9yaWdpbiwgbnVsbHB0cikuaXRlcmF0
b3ItPnZhbHVlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
Q29tcGlsYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJDb21waWxhdGlvbi5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICBDb21waWxhdGlvbktpbmQg
a2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQogICAgIAogICAgIHZvaWQgYWRkRGVzY3Jp
cHRpb24oY29uc3QgQ29tcGlsZWRCeXRlY29kZSYpOworICAgIHZvaWQgYWRkRGVzY3JpcHRpb24o
Y29uc3QgT3JpZ2luU3RhY2smLCBjb25zdCBDU3RyaW5nJiBkZXNjcmlwdGlvbik7CiAgICAgRXhl
Y3V0aW9uQ291bnRlciogZXhlY3V0aW9uQ291bnRlckZvcihjb25zdCBPcmlnaW5TdGFjayYpOwog
ICAgIHZvaWQgYWRkT1NSRXhpdFNpdGUoY29uc3QgVmVjdG9yPGNvbnN0IHZvaWQqPiYgY29kZUFk
ZHJlc3Nlcyk7CiAgICAgT1NSRXhpdCogYWRkT1NSRXhpdCh1bnNpZ25lZCBpZCwgY29uc3QgT3Jp
Z2luU3RhY2smLCBFeGl0S2luZCwgYm9vbCBpc1dhdGNocG9pbnQpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlv
bktpbmQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw2ICs0
MiwxMiBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgSlNDCiAgICAgY2Fz
ZSBKU0M6OlByb2ZpbGVyOjpERkc6CiAgICAgICAgIG91dC5wcmludCgiREZHIik7CiAgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIEpTQzo6UHJvZmlsZXI6OkZUTDoKKyAgICAgICAgb3V0LnByaW50
KCJGVEwiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQcm9maWxlcjo6RlRMRm9y
T1NSRW50cnk6CisgICAgICAgIG91dC5wcmludCgiRlRMRm9yT1NSRW50cnkiKTsKKyAgICAgICAg
cmV0dXJuOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIHJldHVybjsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9u
S2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckNvbXBpbGF0aW9uS2luZC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzEsNyArMzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIGVu
dW0gQ29tcGlsYXRpb25LaW5kIHsKICAgICBMTEludCwKICAgICBCYXNlbGluZSwKLSAgICBERkcK
KyAgICBERkcsCisgICAgRlRMLAorICAgIEZUTEZvck9TUkVudHJ5CiB9OwogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6UHJvZmlsZXIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAy
MDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTAgKzI5LDEyIEBACiAjaWYgRU5BQkxFKEpJ
VCkgfHwgRU5BQkxFKExMSU5UKQogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSAi
QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9y
LmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgog
I2luY2x1ZGUgIkNvbW1vblNsb3dQYXRoc0V4Y2VwdGlvbnMuaCIKKyNpbmNsdWRlICJFcnJvckhh
bmRsaW5nU2NvcGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJIb3N0
Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKQEAgLTE2MSwyOCAr
MTYzLDQ3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBDQUxMX0VORF9JTVBMKGNyRXhlYywg
Y3JDYWxsVGFyZ2V0KTsgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKGZhbHNlKQogCitz
dGF0aWMgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YSogc2V0dXBBcml0eUNoZWNrRGF0
YShWTSYgdm0sIGludCBzbG90c1RvQWRkKQoreworICAgIENvbW1vblNsb3dQYXRoczo6QXJpdHlD
aGVja0RhdGEqIHJlc3VsdCA9IHZtLmFyaXR5Q2hlY2tEYXRhLmdldCgpOworICAgIHJlc3VsdC0+
cGFkZGVkU3RhY2tTcGFjZSA9IHNsb3RzVG9BZGQ7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAo
dm0uY2FuVXNlSklUKCkpIHsKKyAgICAgICAgcmVzdWx0LT50aHVua1RvQ2FsbCA9IHZtLmdldENU
SVN0dWIoYXJpdHlGaXh1cCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CisgICAgICAgIHJl
c3VsdC0+cmV0dXJuUEMgPSB2bS5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENG
b3Iodm0sIHNsb3RzVG9BZGQgKiBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKS5leGVjdXRhYmxl
QWRkcmVzcygpOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgeworICAgICAgICByZXN1bHQtPnRo
dW5rVG9DYWxsID0gMDsKKyAgICAgICAgcmVzdWx0LT5yZXR1cm5QQyA9IDA7CisgICAgfQorICAg
IHJldHVybiByZXN1bHQ7Cit9CisKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX2FyaXR5
Q2hlY2spCiB7CiAgICAgQkVHSU4oKTsKLSAgICBpbnQgU2xvdHNUb0FkZCA9IENvbW1vblNsb3dQ
YXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksIENvZGVG
b3JDYWxsKTsKLSAgICBpZiAoU2xvdHNUb0FkZCA8IDApIHsKKyAgICBpbnQgc2xvdHNUb0FkZCA9
IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0
YWNrKCksIENvZGVGb3JDYWxsKTsKKyAgICBpZiAoc2xvdHNUb0FkZCA8IDApIHsKICAgICAgICAg
ZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7CisgICAgICAgIEVycm9ySGFuZGxpbmdTY29wZSBl
cnJvclNjb3BlKGV4ZWMtPnZtKCkpOwogICAgICAgICBDb21tb25TbG93UGF0aHM6OmludGVycHJl
dGVyVGhyb3dJbkNhbGxlcihleGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOwog
ICAgICAgICBSRVRVUk5fVFdPKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0
cl90PigxKSksIGV4ZWMpOwogICAgIH0KLSAgICBSRVRVUk5fVFdPKDAsIHJlaW50ZXJwcmV0X2Nh
c3Q8RXhlY1N0YXRlKj4oU2xvdHNUb0FkZCkpOworICAgIFJFVFVSTl9UV08oMCwgc2V0dXBBcml0
eUNoZWNrRGF0YSh2bSwgc2xvdHNUb0FkZCkpOwogfQogCiBTTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfY29uc3RydWN0X2FyaXR5Q2hlY2spCiB7CiAgICAgQkVHSU4oKTsKLSAgICBpbnQgU2xvdHNU
b0FkZCA9IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0
ZXItPnN0YWNrKCksIENvZGVGb3JDb25zdHJ1Y3QpOwotICAgIGlmIChTbG90c1RvQWRkIDwgMCkg
eworICAgIGludCBzbG90c1RvQWRkID0gQ29tbW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4
ZWMsICZ2bS5pbnRlcnByZXRlci0+c3RhY2soKSwgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgaWYg
KHNsb3RzVG9BZGQgPCAwKSB7CiAgICAgICAgIGV4ZWMgPSBleGVjLT5jYWxsZXJGcmFtZSgpOwor
ICAgICAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZShleGVjLT52bSgpKTsKICAgICAg
ICAgQ29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywgY3JlYXRl
U3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKICAgICAgICAgUkVUVVJOX1RXTyhiaXR3aXNlX2Nh
c3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSkpLCBleGVjKTsKICAgICB9Ci0gICAg
UkVUVVJOX1RXTygwLCByZWludGVycHJldF9jYXN0PEV4ZWNTdGF0ZSo+KFNsb3RzVG9BZGQpKTsK
KyAgICBSRVRVUk5fVFdPKDAsIHNldHVwQXJpdHlDaGVja0RhdGEodm0sIHNsb3RzVG9BZGQpKTsK
IH0KIAogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3RvdWNoX2VudHJ5KQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgJKHJldmlzaW9u
IDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
bmFtZXNwYWNlIENvbW1vblNsb3dQYXRocyB7CiAKK3N0cnVjdCBBcml0eUNoZWNrRGF0YSB7Cisg
ICAgdW5zaWduZWQgcGFkZGVkU3RhY2tTcGFjZTsKKyAgICB2b2lkKiB0aHVua1RvQ2FsbDsKKyAg
ICB2b2lkKiByZXR1cm5QQzsKK307CisKIEFMV0FZU19JTkxJTkUgaW50IGFyaXR5Q2hlY2tGb3Io
RXhlY1N0YXRlKiBleGVjLCBKU1N0YWNrKiBzdGFjaywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBr
aW5kKQogewogICAgIEpTRnVuY3Rpb24qIGNhbGxlZSA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oZXhl
Yy0+Y2FsbGVlKCkpOwpAQCAtNTgsMTggKzY0LDEyIEBAIEFMV0FZU19JTkxJTkUgaW50IGFyaXR5
Q2hlY2tGb3IoRXhlY1N0YXQKICAgICAKICAgICBBU1NFUlQoYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMgPCBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSk7CiAgICAgaW50IG1pc3NpbmdB
cmd1bWVudENvdW50ID0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgLSBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpczsKLSAgICBpbnQgcGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291bnQgPSBX
VEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbWlzc2lu
Z0FyZ3VtZW50Q291bnQpOworICAgIGludCBuZWVkZWRTdGFja1NwYWNlID0gbWlzc2luZ0FyZ3Vt
ZW50Q291bnQgKyAxOyAvLyBBbGxvdyBzcGFjZSB0byBzYXZlIHRoZSBvcmlnaW5hbCByZXR1cm4g
UEMuCisgICAgaW50IHBhZGRlZFN0YWNrU3BhY2UgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yo
c3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbmVlZGVkU3RhY2tTcGFjZSk7CiAKLSNpZiBVU0Uo
U0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0spCi0gICAgaWYgKCFzdGFjay0+Z3JvdyhleGVjLT5yZWdp
c3RlcnMoKSAtIHBhZGRlZE1pc3NpbmdBcmd1bWVudENvdW50KSkKKyAgICBpZiAoIXN0YWNrLT5l
bnN1cmVDYXBhY2l0eUZvcihleGVjLT5yZWdpc3RlcnMoKSAtIHBhZGRlZFN0YWNrU3BhY2UpKQog
ICAgICAgICByZXR1cm4gLTE7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdGFjayk7Ci0gICAg
aWYgKCFleGVjLT52bSgpLmlzU2FmZVRvUmVjdXJzZShwYWRkZWRNaXNzaW5nQXJndW1lbnRDb3Vu
dCAqIHNpemVvZihSZWdpc3RlcikpKQotICAgICAgICByZXR1cm4gLTE7Ci0jZW5kaWYgLy8gVVNF
KFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQotCi0gICAgcmV0dXJuIHBhZGRlZE1pc3NpbmdBcmd1
bWVudENvdW50OworICAgIHJldHVybiBwYWRkZWRTdGFja1NwYWNlIC8gc3RhY2tBbGlnbm1lbnRS
ZWdpc3RlcnMoKTsKIH0KIAogaW5saW5lIGJvb2wgb3BJbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgcHJvcE5hbWUsIEpTVmFsdWUgYmFzZVZhbCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCShyZXZpc2lvbiAxNjI5NjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgi
CiAjaW5jbHVkZSAiRXJyb3JJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKQEAgLTE2MCwxNCArMTYxLDE2IEBAIEpT
T2JqZWN0KiB0aHJvd091dE9mTWVtb3J5RXJyb3IoRXhlY1N0YXQKIAogSlNPYmplY3QqIHRocm93
U3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBJbnRlcnByZXRlcjo6
RXJyb3JIYW5kbGluZ01vZGUgbW9kZShleGVjKTsKLSAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJv
d0V4Y2VwdGlvbihleGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOworICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUodm0p
OworICAgIHJldHVybiB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVTdGFja092ZXJmbG93
RXJyb3IoZXhlYykpOwogfQogCiBKU09iamVjdCogdGhyb3dUZXJtaW5hdGVkRXhlY3V0aW9uRXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBJbnRlcnByZXRlcjo6RXJyb3JIYW5kbGlu
Z01vZGUgbW9kZShleGVjKTsKLSAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihl
eGVjLCBjcmVhdGVUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKCZleGVjLT52bSgpKSk7Cisg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29w
ZSh2bSk7CisgICAgcmV0dXJuIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVRlcm1pbmF0
ZWRFeGVjdXRpb25FeGNlcHRpb24oJnZtKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTExJbnRFbnRy
eXBvaW50LmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgor
I2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0xMTgsMTIgKzExOSwxNCBA
QCB2b2lkIFNjcmlwdEV4ZWN1dGFibGU6Omluc3RhbGxDb2RlKENvZGVCCiAgICAgc3dpdGNoIChr
aW5kKSB7CiAgICAgY2FzZSBDb2RlRm9yQ2FsbDoKICAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbCA9
IGdlbmVyaWNDb2RlQmxvY2stPmppdENvZGUoKTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbFdp
dGhBcml0eUNoZWNrID0gZ2VuZXJpY0NvZGVCbG9jay0+aml0Q29kZVdpdGhBcml0eUNoZWNrKCk7
CisgICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVy
Q29kZVB0cigpOworICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVz
ZXJ2ZVJlZ3MgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAgICAgICAgbV9udW1QYXJhbWV0
ZXJzRm9yQ2FsbCA9IGdlbmVyaWNDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0OgogICAgICAgICBtX2ppdENvZGVGb3JD
b25zdHJ1Y3QgPSBnZW5lcmljQ29kZUJsb2NrLT5qaXRDb2RlKCk7Ci0gICAgICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrID0gZ2VuZXJpY0NvZGVCbG9jay0+aml0Q29kZVdp
dGhBcml0eUNoZWNrKCk7CisgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNo
ZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CisgICAgICAgIG1faml0Q29kZUZvckNvbnN0
cnVjdFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
KCk7CiAgICAgICAgIG1fbnVtUGFyYW1ldGVyc0ZvckNvbnN0cnVjdCA9IGdlbmVyaWNDb2RlQmxv
Y2stPm51bVBhcmFtZXRlcnMoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMTMzLDcgKzEz
Niw2IEBAIHZvaWQgU2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUoQ29kZUIKICAgICAgICAg
UHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBqc0Nhc3Q8UHJvZ3JhbUV4ZWN1dGFibGUq
Pih0aGlzKTsKICAgICAgICAgUHJvZ3JhbUNvZGVCbG9jayogY29kZUJsb2NrID0gc3RhdGljX2Nh
c3Q8UHJvZ3JhbUNvZGVCbG9jayo+KGdlbmVyaWNDb2RlQmxvY2spOwogICAgICAgICAKLSAgICAg
ICAgQVNTRVJUKCFjb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpKTsKICAgICAgICAg
QVNTRVJUKGtpbmQgPT0gQ29kZUZvckNhbGwpOwogICAgICAgICAKICAgICAgICAgb2xkQ29kZUJs
b2NrID0gZXhlY3V0YWJsZS0+bV9wcm9ncmFtQ29kZUJsb2NrOwpAQCAtMTQ1LDcgKzE0Nyw2IEBA
IHZvaWQgU2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUoQ29kZUIKICAgICAgICAgRXZhbEV4
ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBqc0Nhc3Q8RXZhbEV4ZWN1dGFibGUqPih0aGlzKTsKICAg
ICAgICAgRXZhbENvZGVCbG9jayogY29kZUJsb2NrID0gc3RhdGljX2Nhc3Q8RXZhbENvZGVCbG9j
ayo+KGdlbmVyaWNDb2RlQmxvY2spOwogICAgICAgICAKLSAgICAgICAgQVNTRVJUKCFjb2RlQmxv
Y2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpKTsKICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29k
ZUZvckNhbGwpOwogICAgICAgICAKICAgICAgICAgb2xkQ29kZUJsb2NrID0gZXhlY3V0YWJsZS0+
bV9ldmFsQ29kZUJsb2NrOwpAQCAtNjEwLDYgKzYxMSw0NiBAQCBTdHJpbmcgRnVuY3Rpb25FeGVj
dXRhYmxlOjpwYXJhbVN0cmluZygpCiAgICAgcmV0dXJuIG1fdW5saW5rZWRFeGVjdXRhYmxlLT5w
YXJhbVN0cmluZygpOwogfQogCit2b2lkIEV4ZWN1dGFibGVCYXNlOjpkdW1wKFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0Cit7CisgICAgRXhlY3V0YWJsZUJhc2UqIHJlYWxUaGlzID0gY29uc3RfY2Fz
dDxFeGVjdXRhYmxlQmFzZSo+KHRoaXMpOworICAgIAorICAgIGlmIChjbGFzc0luZm8oKSA9PSBO
YXRpdmVFeGVjdXRhYmxlOjppbmZvKCkpIHsKKyAgICAgICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0
aXZlID0ganNDYXN0PE5hdGl2ZUV4ZWN1dGFibGUqPihyZWFsVGhpcyk7CisgICAgICAgIG91dC5w
cmludCgiTmF0aXZlRXhlY3V0YWJsZToiLCBSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4o
bmF0aXZlLT5mdW5jdGlvbigpKSksICIvIiwgUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+
KG5hdGl2ZS0+Y29uc3RydWN0b3IoKSkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAK
KyAgICBpZiAoY2xhc3NJbmZvKCkgPT0gRXZhbEV4ZWN1dGFibGU6OmluZm8oKSkgeworICAgICAg
ICBFdmFsRXhlY3V0YWJsZSogZXZhbCA9IGpzQ2FzdDxFdmFsRXhlY3V0YWJsZSo+KHJlYWxUaGlz
KTsKKyAgICAgICAgaWYgKENvZGVCbG9jayogY29kZUJsb2NrID0gZXZhbC0+Y29kZUJsb2NrKCkp
CisgICAgICAgICAgICBvdXQucHJpbnQoKmNvZGVCbG9jayk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG91dC5wcmludCgiRXZhbEV4ZWN1dGFibGUgdy9vIENvZGVCbG9jayIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmIChjbGFzc0luZm8oKSA9PSBQcm9ncmFtRXhl
Y3V0YWJsZTo6aW5mbygpKSB7CisgICAgICAgIFByb2dyYW1FeGVjdXRhYmxlKiBldmFsID0ganND
YXN0PFByb2dyYW1FeGVjdXRhYmxlKj4ocmVhbFRoaXMpOworICAgICAgICBpZiAoQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSBldmFsLT5jb2RlQmxvY2soKSkKKyAgICAgICAgICAgIG91dC5wcmludCgq
Y29kZUJsb2NrKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0LnByaW50KCJQcm9ncmFt
RXhlY3V0YWJsZSB3L28gQ29kZUJsb2NrIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
CisgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbiA9IGpzQ2FzdDxGdW5jdGlvbkV4ZWN1
dGFibGUqPihyZWFsVGhpcyk7CisgICAgaWYgKCFmdW5jdGlvbi0+ZWl0aGVyQ29kZUJsb2NrKCkp
CisgICAgICAgIG91dC5wcmludCgiRnVuY3Rpb25FeGVjdXRhYmxlIHcvbyBDb2RlQmxvY2siKTsK
KyAgICBlbHNlIHsKKyAgICAgICAgQ29tbWFQcmludGVyIGNvbW1hKCIvIik7CisgICAgICAgIGlm
IChmdW5jdGlvbi0+Y29kZUJsb2NrRm9yQ2FsbCgpKQorICAgICAgICAgICAgb3V0LnByaW50KGNv
bW1hLCAqZnVuY3Rpb24tPmNvZGVCbG9ja0ZvckNhbGwoKSk7CisgICAgICAgIGlmIChmdW5jdGlv
bi0+Y29kZUJsb2NrRm9yQ29uc3RydWN0KCkpCisgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEs
ICpmdW5jdGlvbi0+Y29kZUJsb2NrRm9yQ29uc3RydWN0KCkpOworICAgIH0KK30KKwogQ29kZUJs
b2NrSGFzaCBFeGVjdXRhYmxlQmFzZTo6aGFzaEZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtp
bmQpIGNvbnN0CiB7CiAgICAgaWYgKHRoaXMtPmNsYXNzSW5mbygpID09IE5hdGl2ZUV4ZWN1dGFi
bGU6OmluZm8oKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRh
YmxlLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4ZWN1dGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBF
eGVjdXRhYmxlX2gKICNkZWZpbmUgRXhlY3V0YWJsZV9oCiAKKyNpbmNsdWRlICJBcml0eUNoZWNr
TW9kZS5oIgogI2luY2x1ZGUgIkNhbGxEYXRhLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrSGFzaC5o
IgogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKQEAgLTM2LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRl
ICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5o
IgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogI2luY2x1ZGUgIlNvdXJjZUNvZGUuaCIKICNp
bmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgpAQCAtMTQ0LDM3ICsxNDYsOTQgQEAgcHVibGlj
OgogICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKICAgICAgICAgcmV0
dXJuIGdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3QoKTsKICAgICB9Ci0KLSAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgZ2VuZXJhdGVkSklUQ29kZUZvckNhbGxXaXRoQXJpdHlDaGVjaygpCi0g
ICAgewotICAgICAgICBBU1NFUlQobV9qaXRDb2RlRm9yQ2FsbCk7Ci0gICAgICAgIEFTU0VSVCht
X2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2spOwotICAgICAgICByZXR1cm4gbV9qaXRDb2Rl
Rm9yQ2FsbFdpdGhBcml0eUNoZWNrOwotICAgIH0KLQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBnZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2soKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1faml0Q29kZUZvckNvbnN0cnVjdCk7Ci0gICAgICAgIEFTU0VSVChtX2pp
dENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayk7Ci0gICAgICAgIHJldHVybiBtX2ppdENv
ZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjazsKLSAgICB9Ci0gICAgICAgIAotICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBnZW5lcmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3IoQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCBraW5kKQotICAgIHsKLSAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZv
ckNhbGwpCi0gICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGVkSklUQ29kZUZvckNhbGxXaXRoQXJp
dHlDaGVjaygpOwotICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKLSAg
ICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjaygp
OwotICAgIH0KLSAgICAgICAgCi0gICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkpJVENvZGVX
aXRoQXJpdHlDaGVja0ZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgCisgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGVudHJ5cG9pbnRGb3IoCisgICAgICAgIFZNJiB2bSwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBBcml0eUNoZWNrTW9kZSBhcml0eSwgUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKICAgICB7Ci0gICAgICAgIGlmIChraW5kID09IENv
ZGVGb3JDYWxsKQotICAgICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRhYmxl
QmFzZSwgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrKTsKLSAgICAgICAgQVNTRVJUKGtp
bmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
RXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKTsKKyAg
ICAgICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhIGNhY2hlZCByZXN1bHQuIFdlIG9ubHkgaGF2ZSBp
dCBmb3IgYXJpdHkgY2hlY2sgYmVjYXVzZSB3ZSB1c2UgdGhlCisgICAgICAgIC8vIG5vLWFyaXR5
IGVudHJ5cG9pbnQgaW4gbm9uLXZpcnR1YWwgY2FsbHMsIHdoaWNoIHdpbGwgImNhY2hlIiB0aGlz
IHZhbHVlIGRpcmVjdGx5IGluCisgICAgICAgIC8vIG1hY2hpbmUgY29kZS4KKyAgICAgICAgaWYg
KGFyaXR5ID09IE11c3RDaGVja0FyaXR5KSB7CisgICAgICAgICAgICBzd2l0Y2ggKGtpbmQpIHsK
KyAgICAgICAgICAgIGNhc2UgQ29kZUZvckNhbGw6CisgICAgICAgICAgICAgICAgc3dpdGNoIChy
ZWdpc3RlcnMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90
UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgICAgIGlmIChNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
cmVzdWx0ID0gbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICAgICAg
ICAgIGlmIChNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcmVzdWx0ID0gbV9qaXRDb2RlRm9yQ2FsbFdp
dGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDb2RlRm9yQ29uc3Ry
dWN0OgorICAgICAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAgICAg
ICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAg
ICAgICBpZiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJlc3VsdCA9IG1faml0Q29kZUZvckNvbnN0
cnVjdFdpdGhBcml0eUNoZWNrKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBNdXN0
UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICAgICAgICAgIGlmIChNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgcmVzdWx0ID0gbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2tBbmRQ
cmVzZXJ2ZVJlZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIHJlc3VsdCA9CisgICAgICAgICAgICBnZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQp
LT5hZGRyZXNzRm9yQ2FsbCh2bSwgdGhpcywgYXJpdHksIHJlZ2lzdGVycyk7CisgICAgICAgIGlm
IChhcml0eSA9PSBNdXN0Q2hlY2tBcml0eSkgeworICAgICAgICAgICAgLy8gQ2FjaGUgdGhlIHJl
c3VsdDsgdGhpcyBpcyBuZWNlc3NhcnkgZm9yIHRoZSBKSVQncyB2aXJ0dWFsIGNhbGwgb3B0aW1p
emF0aW9ucy4KKyAgICAgICAgICAgIHN3aXRjaCAoa2luZCkgeworICAgICAgICAgICAgY2FzZSBD
b2RlRm9yQ2FsbDoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAg
ICAgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAg
ICAgICAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0gcmVzdWx0OworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2
ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgICAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0
eUNoZWNrQW5kUHJlc2VydmVSZWdzID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgICAgICAgICAgc3dpdGNoIChyZWdpc3Rl
cnMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWly
ZWQ6CisgICAgICAgICAgICAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNo
ZWNrID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgICAgICAgICAgbV9qaXRD
b2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSByZXN1bHQ7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZKSVRDb2RlV2l0aEFy
aXR5Q2hlY2tGb3IoCisgICAgICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKKyAgICB7CisgICAgICAgIHN3aXRjaCAoa2lu
ZCkgeworICAgICAgICBjYXNlIENvZGVGb3JDYWxsOgorICAgICAgICAgICAgc3dpdGNoIChyZWdp
c3RlcnMpIHsKKyAgICAgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJl
ZDoKKyAgICAgICAgICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNl
LCBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2spOworICAgICAgICAgICAgY2FzZSBNdXN0
UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRP
RihFeGVjdXRhYmxlQmFzZSwgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2Vy
dmVSZWdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0Ogor
ICAgICAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgICAgIGNhc2UgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgICAgICByZXR1cm4gT0JKRUNU
X09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlD
aGVjayk7CisgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENvZGVG
b3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncyk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQotICAgICAgICAKKyAgICAKICAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mTnVtUGFyYW1ldGVyc0ZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiAg
ICAgewogICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKQEAgLTIxMCwyMiArMjY5LDkg
QEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIGludHJpbnNpYygpOwogICAgICAgICByZXR1
cm4gTm9JbnRyaW5zaWM7CiAgICAgfQorICAgIAorICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYp
IGNvbnN0OwogICAgICAgICAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgaG9zdENvZGVFbnRy
eUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAgewotICAgICAgICByZXR1cm4g
Z2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS0+YWRkcmVzc0ZvckNhbGwoKTsKLSAgICB9Ci0KLSAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIganNDb2RlRW50cnlGb3IoQ29kZVNwZWNpYWxpemF0aW9u
S2luZCBraW5kKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVGb3Ioa2lu
ZCktPmFkZHJlc3NGb3JDYWxsKCk7Ci0gICAgfQotCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IGpzQ29kZVdpdGhBcml0eUNoZWNrRW50cnlGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVXaXRoQXJpdHlDaGVja0Zv
cihraW5kKTsKLSAgICB9Ci0KIHByb3RlY3RlZDoKICAgICBFeGVjdXRhYmxlQmFzZSogbV9wcmV2
OwogICAgIEV4ZWN1dGFibGVCYXNlKiBtX25leHQ7CkBAIC0yMzQsNiArMjgwLDggQEAgcHJvdGVj
dGVkOgogICAgIFJlZlB0cjxKSVRDb2RlPiBtX2ppdENvZGVGb3JDb25zdHJ1Y3Q7CiAgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjazsKICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2s7
CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVj
a0FuZFByZXNlcnZlUmVnczsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlRm9y
Q29uc3RydWN0V2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3M7CiB9OwogCiBjbGFzcyBOYXRp
dmVFeGVjdXRhYmxlIDogcHVibGljIEV4ZWN1dGFibGVCYXNlIHsKQEAgLTI0MiwxNCArMjkwLDEx
IEBAIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGUgOiBwdWJsaWMgRXhlY3V0YWIKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEV4ZWN1dGFibGVCYXNlIEJhc2U7CiAKLSAgICBzdGF0aWMgTmF0aXZlRXhlY3V0
YWJsZSogY3JlYXRlKFZNJiB2bSwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNhbGxUaHVuaywgTmF0
aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb25zdHJ1Y3RUaHVu
aywgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCisgICAg
c3RhdGljIE5hdGl2ZUV4ZWN1dGFibGUqIGNyZWF0ZShWTSYgdm0sIFBhc3NSZWZQdHI8SklUQ29k
ZT4gY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgUGFzc1JlZlB0cjxKSVRDb2Rl
PiBjb25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IsIEludHJpbnNpYyBp
bnRyaW5zaWMpCiAgICAgewogICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlOwog
ICAgICAgICBleGVjdXRhYmxlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8TmF0aXZlRXhl
Y3V0YWJsZT4odm0uaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUodm0sIGZ1bmN0aW9uLCBjb25zdHJ1
Y3Rvcik7Ci0gICAgICAgIGlmICghY2FsbFRodW5rKQotICAgICAgICAgICAgZXhlY3V0YWJsZS0+
ZmluaXNoQ3JlYXRpb24odm0sIDAsIDAsIGludHJpbnNpYyk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKHZtLCBKSVRDb2RlOjpob3N0RnVuY3Rp
b24oY2FsbFRodW5rKSwgSklUQ29kZTo6aG9zdEZ1bmN0aW9uKGNvbnN0cnVjdFRodW5rKSwgaW50
cmluc2ljKTsKKyAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24odm0sIGNhbGxUaHVu
aywgY29uc3RydWN0VGh1bmssIGludHJpbnNpYyk7CiAgICAgICAgIHJldHVybiBleGVjdXRhYmxl
OwogICAgIH0KIApAQCAtMjg4LDggKzMzMyw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgUGFzc1JlZlB0cjxKSVRDb2RlPiBjYWxsVGh1bmssIFBhc3NSZWZQ
dHI8SklUQ29kZT4gY29uc3RydWN0VGh1bmssIEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgewog
ICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIG1faml0Q29kZUZvckNh
bGxXaXRoQXJpdHlDaGVjayA9IGNhbGxUaHVuayA/IGNhbGxUaHVuay0+YWRkcmVzc0ZvckNhbGwo
KSA6IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOwotICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1
Y3RXaXRoQXJpdHlDaGVjayA9IGNvbnN0cnVjdFRodW5rID8gY29uc3RydWN0VGh1bmstPmFkZHJl
c3NGb3JDYWxsKCkgOiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAgICAgICAgbV9qaXRDb2Rl
Rm9yQ2FsbCA9IGNhbGxUaHVuazsKICAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gY29u
c3RydWN0VGh1bms7CiAgICAgICAgIG1faW50cmluc2ljID0gaW50cmluc2ljOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAkocmV2aXNpb24gMTYyOTYx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC05Nyw2ICs5Nyw5IEBAIHVuaW9uIEVuY29kZWRWYWx1ZURlc2NyaXB0b3Igewog
I2VuZGlmCiB9OwogCisjZGVmaW5lIFRhZ09mZnNldCAoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRW
YWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKQorI2RlZmluZSBQYXlsb2FkT2Zmc2V0IChPQkpF
Q1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKQorCiBl
bnVtIFdoaWNoVmFsdWVXb3JkIHsKICAgICBUYWdXb3JkLAogICAgIFBheWxvYWRXb3JkCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5MCw2ICsyOTAsMTAgQEAgSlNMb2NrOjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxM
b2NrcyhFeGVjUwogI2lmIFBMQVRGT1JNKElPUykKICAgICBTcGluTG9ja0hvbGRlciBob2xkZXIo
JnNwaW5Mb2NrKTsKICNlbmRpZgorICAgIG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplID0gbV92bS0+
cmVzZXJ2ZWRab25lU2l6ZSgpOworICAgIG1fc2F2ZWRTdGFja1BvaW50ZXJBdFZNRW50cnkgPSBt
X3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnk7CisgICAgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVu
dHJ5ID0gbnVsbHB0cjsKKwogICAgIGlmIChhbHdheXNEcm9wTG9ja3MpCiAgICAgICAgIG1fbG9j
a0NvdW50ID0gbV92bS0+YXBpTG9jaygpLmRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseShzcGlu
TG9jayk7CiAgICAgZWxzZQpAQCAtMzA2LDYgKzMxMCwxMCBAQCBKU0xvY2s6OkRyb3BBbGxMb2Nr
czo6RHJvcEFsbExvY2tzKFZNKiB2CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFNwaW5Mb2NrSG9s
ZGVyIGhvbGRlcigmc3BpbkxvY2spOwogI2VuZGlmCisgICAgbV9zYXZlZFJlc2VydmVkWm9uZVNp
emUgPSBtX3ZtLT5yZXNlcnZlZFpvbmVTaXplKCk7CisgICAgbV9zYXZlZFN0YWNrUG9pbnRlckF0
Vk1FbnRyeSA9IG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeTsKKyAgICBtX3ZtLT5zdGFja1Bv
aW50ZXJBdFZNRW50cnkgPSBudWxscHRyOworCiAgICAgaWYgKGFsd2F5c0Ryb3BMb2NrcykKICAg
ICAgICAgbV9sb2NrQ291bnQgPSBtX3ZtLT5hcGlMb2NrKCkuZHJvcEFsbExvY2tzVW5jb25kaXRp
b25hbGx5KHNwaW5Mb2NrKTsKICAgICBlbHNlCkBAIC0zMjEsNiArMzI5LDkgQEAgSlNMb2NrOjpE
cm9wQWxsTG9ja3M6On5Ecm9wQWxsTG9ja3MoKQogICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigm
c3BpbkxvY2spOwogI2VuZGlmCiAgICAgbV92bS0+YXBpTG9jaygpLmdyYWJBbGxMb2NrcyhtX2xv
Y2tDb3VudCwgc3BpbkxvY2spOworCisgICAgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0g
bV9zYXZlZFN0YWNrUG9pbnRlckF0Vk1FbnRyeTsKKyAgICBtX3ZtLT51cGRhdGVTdGFja0xpbWl0
V2l0aFJlc2VydmVkWm9uZVNpemUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9j
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5o
CShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xv
Y2suaAkod29ya2luZyBjb3B5KQpAQCAtOTUsMTAgKzk1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9j
aygpOwogCi0gICAgICAgIHVuc2lnbmVkIGRyb3BBbGxMb2NrcyhTcGluTG9jayYpOwotICAgICAg
ICB1bnNpZ25lZCBkcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoU3BpbkxvY2smKTsKLSAgICAg
ICAgdm9pZCBncmFiQWxsTG9ja3ModW5zaWduZWQgbG9ja0NvdW50LCBTcGluTG9jayYpOwotCiAg
ICAgICAgIHZvaWQgd2lsbERlc3Ryb3lWTShWTSopOwogCiAgICAgICAgIGNsYXNzIERyb3BBbGxM
b2NrcyB7CkBAIC0xMTQsOSArMTEwLDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBwcml2
YXRlOgogICAgICAgICAgICAgaW50cHRyX3QgbV9sb2NrQ291bnQ7CiAgICAgICAgICAgICBSZWZQ
dHI8Vk0+IG1fdm07CisgICAgICAgICAgICBzaXplX3QgbV9zYXZlZFJlc2VydmVkWm9uZVNpemU7
CisgICAgICAgICAgICB2b2lkKiBtX3NhdmVkU3RhY2tQb2ludGVyQXRWTUVudHJ5OwogICAgICAg
ICB9OwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgdW5zaWduZWQgZHJvcEFsbExvY2tzKFNwaW5M
b2NrJik7CisgICAgICAgIHVuc2lnbmVkIGRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseShTcGlu
TG9jayYpOworICAgICAgICB2b2lkIGdyYWJBbGxMb2Nrcyh1bnNpZ25lZCBsb2NrQ291bnQsIFNw
aW5Mb2NrJik7CisKICAgICAgICAgU3BpbkxvY2sgbV9zcGluTG9jazsKICAgICAgICAgTXV0ZXgg
bV9sb2NrOwogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1fb3duZXJUaHJlYWQ7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY1NCw3ICs2NTQsNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBX
YWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgICAgICAgICAgQVNTRVJUKGluVmFsdWUuaXNPYmpl
Y3QoKSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGlzSlNBcnJheShhc09iamVjdChpblZhbHVl
KSkgfHwgYXNPYmplY3QoaW5WYWx1ZSktPmluaGVyaXRzKEpTQXJyYXk6OmluZm8oKSkpOwogICAg
ICAgICAgICAgICAgIGlmIChvYmplY3RTdGFjay5zaXplKCkgKyBhcnJheVN0YWNrLnNpemUoKSA+
IG1heGltdW1GaWx0ZXJSZWN1cnNpb24pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2V4
ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24obV9leGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3Io
bV9leGVjKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dF
cnJvcihtX2V4ZWMpOwogCiAgICAgICAgICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5
KGluVmFsdWUpOwogICAgICAgICAgICAgICAgIGFycmF5U3RhY2sucHVzaChhcnJheSk7CkBAIC03
MDUsNyArNzA1LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdQog
ICAgICAgICAgICAgICAgIEFTU0VSVChpblZhbHVlLmlzT2JqZWN0KCkpOwogICAgICAgICAgICAg
ICAgIEFTU0VSVCghaXNKU0FycmF5KGFzT2JqZWN0KGluVmFsdWUpKSAmJiAhYXNPYmplY3QoaW5W
YWx1ZSktPmluaGVyaXRzKEpTQXJyYXk6OmluZm8oKSkpOwogICAgICAgICAgICAgICAgIGlmIChv
YmplY3RTdGFjay5zaXplKCkgKyBhcnJheVN0YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1
cnNpb24pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2V4ZWMtPnZtKCkudGhyb3dFeGNl
cHRpb24obV9leGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IobV9leGVjKSk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpOwogCiAg
ICAgICAgICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGluVmFsdWUpOwogICAg
ICAgICAgICAgICAgIG9iamVjdFN0YWNrLnB1c2gob2JqZWN0KTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNp
bmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogI2luY2x1ZGUgPHd0
Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3RmL1BhZ2VCbG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTE3NSw2ICsxNzYsNDUgQEAgY29uc3QgT3B0aW9uczo6
RW50cnlJbmZvIE9wdGlvbnM6OnNfb3B0aQogI3VuZGVmIEZPUl9FQUNIX09QVElPTgogfTsKIAor
c3RhdGljIHZvaWQgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygpCit7CisjaWYgIUVOQUJMRShK
SVQpCisgICAgT3B0aW9uczo6dXNlSklUKCkgPSBmYWxzZTsKKyAgICBPcHRpb25zOjp1c2VERkdK
SVQoKSA9IGZhbHNlOworI2VuZGlmCisjaWYgIUVOQUJMRShZQVJSX0pJVCkKKyAgICBPcHRpb25z
Ojp1c2VSZWdFeHBKSVQoKSA9IGZhbHNlOworI2VuZGlmCisgICAgCisgICAgaWYgKE9wdGlvbnM6
OnNob3dEaXNhc3NlbWJseSgpCisgICAgICAgIHx8IE9wdGlvbnM6OnNob3dERkdEaXNhc3NlbWJs
eSgpCisgICAgICAgIHx8IE9wdGlvbnM6OmR1bXBCeXRlY29kZUF0REZHVGltZSgpCisgICAgICAg
IHx8IE9wdGlvbnM6OmR1bXBHcmFwaEF0RWFjaFBoYXNlKCkKKyAgICAgICAgfHwgT3B0aW9uczo6
dmVyYm9zZUNvbXBpbGF0aW9uKCkKKyAgICAgICAgfHwgT3B0aW9uczo6bG9nQ29tcGlsYXRpb25D
aGFuZ2VzKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRhdGVHcmFwaCgpCisgICAgICAgIHx8
IE9wdGlvbnM6OnZhbGlkYXRlR3JhcGhBdEVhY2hQaGFzZSgpCisgICAgICAgIHx8IE9wdGlvbnM6
OnZlcmJvc2VPU1IoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb25RdWV1
ZSgpCisgICAgICAgIHx8IE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1lcygpCisgICAgICAgIHx8
IE9wdGlvbnM6OnJlcG9ydEZUTENvbXBpbGVUaW1lcygpCisgICAgICAgIHx8IE9wdGlvbnM6OnZl
cmJvc2VDRkEoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlRlRMRmFpbHVyZSgpKQorICAg
ICAgICBPcHRpb25zOjphbHdheXNDb21wdXRlSGFzaCgpID0gdHJ1ZTsKKyAgICAKKyAgICAvLyBD
b21wdXRlIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSByZW9wdGltaXphdGlvbiByZXRyeSBjb3Vu
dGVyLiBUaGlzIGlzIHNpbXBseQorICAgIC8vIHRoZSBsYXJnZXN0IHZhbHVlIGF0IHdoaWNoIHdl
IGRvbid0IG92ZXJmbG93IHRoZSBleGVjdXRlIGNvdW50ZXIsIHdoZW4gdXNpbmcgaXQKKyAgICAv
LyB0byBsZWZ0LXNoaWZ0IHRoZSBleGVjdXRpb24gY291bnRlciBieSB0aGlzIGFtb3VudC4gQ3Vy
cmVudGx5IHRoZSB2YWx1ZSBlbmRzCisgICAgLy8gdXAgYmVpbmcgMTgsIHNvIHRoaXMgbG9vcCBp
cyBub3Qgc28gdGVycmlibGU7IGl0IHByb2JhYmx5IHRha2VzIHVwIH4xMDAgY3ljbGVzCisgICAg
Ly8gdG90YWwgb24gYSAzMi1iaXQgcHJvY2Vzc29yLgorICAgIE9wdGlvbnM6OnJlb3B0aW1pemF0
aW9uUmV0cnlDb3VudGVyTWF4KCkgPSAwOworICAgIHdoaWxlICgoc3RhdGljX2Nhc3Q8aW50NjRf
dD4oT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgKE9w
dGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkgKyAxKSkgPD0gc3RhdGljX2Nh
c3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpKQorICAgICAg
ICBPcHRpb25zOjpyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpKys7CisKKyAgICBBU1NF
UlQoKHN0YXRpY19jYXN0PGludDY0X3Q+KE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXplQWZ0
ZXJMb25nV2FybVVwKCkpIDw8IE9wdGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4
KCkpID4gMCk7CisgICAgQVNTRVJUKChzdGF0aWNfY2FzdDxpbnQ2NF90PihPcHRpb25zOjp0aHJl
c2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCBPcHRpb25zOjpyZW9wdGltaXph
dGlvblJldHJ5Q291bnRlck1heCgpKSA8PSBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6Om51bWVy
aWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSkpOworfQorCiB2b2lkIE9wdGlvbnM6OmluaXRpYWxp
emUoKQogewogICAgIC8vIEluaXRpYWxpemUgZWFjaCBvZiB0aGUgb3B0aW9ucyB3aXRoIHRoZWly
IGRlZmF1bHQgdmFsdWVzOgpAQCAtMjA0LDMwICsyNDQsMTIgQEAgdm9pZCBPcHRpb25zOjppbml0
aWFsaXplKCkKICAgICA7IC8vIERlY29uZnVzZSBlZGl0b3JzIHRoYXQgZG8gYXV0byBpbmRlbnRh
dGlvbgogI2VuZGlmCiAgICAgCi0jaWYgIUVOQUJMRShKSVQpCi0gICAgdXNlSklUKCkgPSBmYWxz
ZTsKLSAgICB1c2VERkdKSVQoKSA9IGZhbHNlOwotI2VuZGlmCi0jaWYgIUVOQUJMRShZQVJSX0pJ
VCkKLSAgICB1c2VSZWdFeHBKSVQoKSA9IGZhbHNlOwotI2VuZGlmCisgICAgcmVjb21wdXRlRGVw
ZW5kZW50T3B0aW9ucygpOwogCiAgICAgLy8gRG8gcmFuZ2UgY2hlY2tzIHdoZXJlIG5lZWRlZCBh
bmQgbWFrZSBjb3JyZWN0aW9ucyB0byB0aGUgb3B0aW9uczoKLSAgICBBU1NFUlQodGhyZXNob2xk
Rm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSA+PSB0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVy
V2FybVVwKCkpOwotICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkg
Pj0gdGhyZXNob2xkRm9yT3B0aW1pemVTb29uKCkpOwotICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JP
cHRpbWl6ZUFmdGVyV2FybVVwKCkgPj0gMCk7Ci0KLSAgICAvLyBDb21wdXRlIHRoZSBtYXhpbXVt
IHZhbHVlIG9mIHRoZSByZW9wdGltaXphdGlvbiByZXRyeSBjb3VudGVyLiBUaGlzIGlzIHNpbXBs
eQotICAgIC8vIHRoZSBsYXJnZXN0IHZhbHVlIGF0IHdoaWNoIHdlIGRvbid0IG92ZXJmbG93IHRo
ZSBleGVjdXRlIGNvdW50ZXIsIHdoZW4gdXNpbmcgaXQKLSAgICAvLyB0byBsZWZ0LXNoaWZ0IHRo
ZSBleGVjdXRpb24gY291bnRlciBieSB0aGlzIGFtb3VudC4gQ3VycmVudGx5IHRoZSB2YWx1ZSBl
bmRzCi0gICAgLy8gdXAgYmVpbmcgMTgsIHNvIHRoaXMgbG9vcCBpcyBub3Qgc28gdGVycmlibGU7
IGl0IHByb2JhYmx5IHRha2VzIHVwIH4xMDAgY3ljbGVzCi0gICAgLy8gdG90YWwgb24gYSAzMi1i
aXQgcHJvY2Vzc29yLgotICAgIHJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkgPSAwOwot
ICAgIHdoaWxlICgoc3RhdGljX2Nhc3Q8aW50NjRfdD4odGhyZXNob2xkRm9yT3B0aW1pemVBZnRl
ckxvbmdXYXJtVXAoKSkgPDwgKHJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkgKyAxKSkg
PD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMj46Om1heCgp
KSkKLSAgICAgICAgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSsrOwotCi0gICAgQVNT
RVJUKChzdGF0aWNfY2FzdDxpbnQ2NF90Pih0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dh
cm1VcCgpKSA8PCByZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpKSA+IDApOwotICAgIEFT
U0VSVCgoc3RhdGljX2Nhc3Q8aW50NjRfdD4odGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdX
YXJtVXAoKSkgPDwgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSkgPD0gc3RhdGljX2Nh
c3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMj46Om1heCgpKSk7CisgICAgQVNT
RVJUKE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkgPj0gT3B0
aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgpKTsKKyAgICBBU1NFUlQoT3B0
aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgpID49IE9wdGlvbnM6OnRocmVz
aG9sZEZvck9wdGltaXplU29vbigpKTsKKyAgICBBU1NFUlQoT3B0aW9uczo6dGhyZXNob2xkRm9y
T3B0aW1pemVBZnRlcldhcm1VcCgpID49IDApOwogfQogCiAvLyBQYXJzZXMgYSBzaW5nbGUgY29t
bWFuZCBsaW5lIG9wdGlvbiBpbiB0aGUgZm9ybWF0ICI8b3B0aW9uTmFtZT49PHZhbHVlPiIKQEAg
LTI1MSw2ICsyNzMsNyBAQCBib29sIE9wdGlvbnM6OnNldE9wdGlvbihjb25zdCBjaGFyKiBhcmcp
CiAgICAgICAgIGJvb2wgc3VjY2VzcyA9IHBhcnNlKHZhbHVlU3RyLCB2YWx1ZSk7ICAgICAgICAg
IFwKICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogICAgICAgICAgICAgbmFtZV8oKSA9IHZhbHVlOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgICAgICByZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKCk7ICAgICAgICAg
ICAgICAgIFwKICAgICAgICAgICAgIHJldHVybiB0cnVlOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAogICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCiAgICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKQEAgLTI1OSw3ICsyODIsNyBAQCBib29sIE9wdGlvbnM6OnNldE9wdGlv
bihjb25zdCBjaGFyKiBhcmcpCiAgICAgSlNDX09QVElPTlMoRk9SX0VBQ0hfT1BUSU9OKQogI3Vu
ZGVmIEZPUl9FQUNIX09QVElPTgogCi0gICAgICAgIHJldHVybiBmYWxzZTsgLy8gTm8gb3B0aW9u
IG1hdGNoZWQuCisgICAgcmV0dXJuIGZhbHNlOyAvLyBObyBvcHRpb24gbWF0Y2hlZC4KIH0KIAog
dm9pZCBPcHRpb25zOjpkdW1wQWxsT3B0aW9ucyhGSUxFKiBzdHJlYW0pCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAx
MywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0V4cG9ydE1hY3Jv
cy5oIgogI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtOTQsNiArOTUsMTAg
QEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KGJvb2wsIHVzZURGR0pJ
VCwgdHJ1ZSkgXAogICAgIHYoYm9vbCwgdXNlUmVnRXhwSklULCB0cnVlKSBcCiAgICAgXAorICAg
IHYodW5zaWduZWQsIG1heFBlclRocmVhZFN0YWNrVXNhZ2UsIDQgKiBNQikgXAorICAgIHYodW5z
aWduZWQsIHJlc2VydmVkWm9uZVNpemUsIDEyOCAqIEtCKSBcCisgICAgdih1bnNpZ25lZCwgZXJy
b3JNb2RlUmVzZXJ2ZWRab25lU2l6ZSwgNjQgKiBLQikgXAorICAgIFwKICAgICB2KGJvb2wsIGNy
YXNoSWZDYW50QWxsb2NhdGVKSVRNZW1vcnksIGZhbHNlKSBcCiAgICAgXAogICAgIHYoYm9vbCwg
Zm9yY2VERkdDb2RlQmxvY2tMaXZlbmVzcywgZmFsc2UpIFwKQEAgLTExOCwxMSArMTIzLDE5IEBA
IHR5cGVkZWYgT3B0aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7CiAgICAgdihib29sLCB2ZXJib3NlQ2Fs
bExpbmssIGZhbHNlKSBcCiAgICAgdihib29sLCB2ZXJib3NlQ29tcGlsYXRpb25RdWV1ZSwgZmFs
c2UpIFwKICAgICB2KGJvb2wsIHJlcG9ydENvbXBpbGVUaW1lcywgZmFsc2UpIFwKKyAgICB2KGJv
b2wsIHJlcG9ydEZUTENvbXBpbGVUaW1lcywgZmFsc2UpIFwKICAgICB2KGJvb2wsIHZlcmJvc2VD
RkEsIGZhbHNlKSBcCisgICAgdihib29sLCB2ZXJib3NlRlRMVG9KU1RodW5rLCBmYWxzZSkgXAor
ICAgIHYoYm9vbCwgdmVyYm9zZUZUTEZhaWx1cmUsIGZhbHNlKSBcCisgICAgdihib29sLCBhbHdh
eXNDb21wdXRlSGFzaCwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIHRlc3RUaGVGVEwsIGZhbHNlKSBc
CisgICAgdihib29sLCB2ZXJib3NlU2FuaXRpemVTdGFjaywgZmFsc2UpIFwKICAgICBcCi0gICAg
dihib29sLCBlbmFibGVPU1JFbnRyeUluTG9vcHMsIHRydWUpIFwKKyAgICB2KGJvb2wsIGVuYWJs
ZU9TUkVudHJ5VG9ERkcsIHRydWUpIFwKKyAgICB2KGJvb2wsIGVuYWJsZU9TUkVudHJ5VG9GVEws
IHRydWUpIFwKICAgICBcCiAgICAgdihib29sLCB1c2VFeHBlcmltZW50YWxGVEwsIGZhbHNlKSBc
CisgICAgdihib29sLCBlbmFibGVFeHBlcmltZW50YWxGVExDb3ZlcmFnZSwgZmFsc2UpIFwKICAg
ICB2KGJvb2wsIHVzZUZUTFRCQUEsIHRydWUpIFwKICAgICB2KGJvb2wsIGVuYWJsZUxMVk1GYXN0
SVNlbCwgZmFsc2UpIFwKICAgICB2KGJvb2wsIHVzZUxMVk1TbWFsbENvZGVNb2RlbCwgZmFsc2Up
IFwKQEAgLTEzNCwxMCArMTQ3LDEyIEBAIHR5cGVkZWYgT3B0aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7
CiAgICAgdih1bnNpZ25lZCwgbGx2bUJhY2tlbmRPcHRpbWl6YXRpb25MZXZlbCwgMikgXAogICAg
IHYodW5zaWduZWQsIGxsdm1PcHRpbWl6YXRpb25MZXZlbCwgMikgXAogICAgIHYodW5zaWduZWQs
IGxsdm1TaXplTGV2ZWwsIDApIFwKKyAgICB2KGJvb2wsIGxsdm1EaXNhbGxvd0FWWCwgdHJ1ZSkg
XAogICAgIHYoYm9vbCwgZnRsQ3Jhc2hlcywgZmFsc2UpIC8qIGZvb2wtcHJvb2Ygd2F5IG9mIGNo
ZWNraW5nIHRoYXQgeW91IGVuZGVkIHVwIGluIHRoZSBGVEwuIDstKSAqL1wKICAgICBcCiAgICAg
dihib29sLCBlbmFibGVDb25jdXJyZW50SklULCB0cnVlKSBcCi0gICAgdih1bnNpZ25lZCwgbnVt
YmVyT2ZDb21waWxlclRocmVhZHMsIGNvbXB1dGVOdW1iZXJPZldvcmtlclRocmVhZHMoMikgLSAx
KSBcCisgICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMsIGNvbXB1dGVO
dW1iZXJPZldvcmtlclRocmVhZHMoMikgLSAxKSBcCisgICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZG
VExDb21waWxlclRocmVhZHMsIGNvbXB1dGVOdW1iZXJPZldvcmtlclRocmVhZHMoOCkgLSAxKSBc
CiAgICAgXAogICAgIHYoYm9vbCwgZW5hYmxlUHJvZmlsZXIsIGZhbHNlKSBcCiAgICAgXApAQCAt
MTQ2LDYgKzE2MSw4IEBAIHR5cGVkZWYgT3B0aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7CiAgICAgXAog
ICAgIHYoYm9vbCwgZW5hYmxlQXJjaGl0ZWN0dXJlU3BlY2lmaWNPcHRpbWl6YXRpb25zLCB0cnVl
KSBcCiAgICAgXAorICAgIHYoYm9vbCwgYnJlYWtPblRocm93LCBmYWxzZSkgXAorICAgIFwKICAg
ICB2KHVuc2lnbmVkLCBtYXhpbXVtT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3Vu
dCwgMTAwMDApIFwKICAgICBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUZ1bmN0aW9uRm9yQ2Fs
bElubGluZUNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQsIDE4MCkgXApAQCAtMTU0LDYgKzE3MSwx
MiBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIFwKICAgICAvKiBEZXB0
aCBvZiBpbmxpbmUgc3RhY2ssIHNvIDEgPSBubyBpbmxpbmluZywgMiA9IG9uZSBsZXZlbCwgZXRj
LiAqLyBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUlubGluaW5nRGVwdGgsIDUpIFwKKyAgICB2
KHVuc2lnbmVkLCBtYXhpbXVtSW5saW5pbmdSZWN1cnNpb24sIDIpIFwKKyAgICB2KHVuc2lnbmVk
LCBtYXhpbXVtSW5saW5pbmdEZXB0aEZvck11c3RJbmxpbmUsIDcpIFwKKyAgICB2KHVuc2lnbmVk
LCBtYXhpbXVtSW5saW5pbmdSZWN1cnNpb25Gb3JNdXN0SW5saW5lLCAzKSBcCisgICAgXAorICAg
IHYoYm9vbCwgZW5hYmxlUG9seXZhcmlhbnRDYWxsSW5saW5pbmcsIHRydWUpIFwKKyAgICB2KGJv
b2wsIGVuYWJsZVBvbHl2YXJpYW50QnlJZElubGluaW5nLCB0cnVlKSBcCiAgICAgXAogICAgIHYo
dW5zaWduZWQsIG1heGltdW1CaW5hcnlTdHJpbmdTd2l0Y2hDYXNlTGVuZ3RoLCA1MCkgXAogICAg
IHYodW5zaWduZWQsIG1heGltdW1CaW5hcnlTdHJpbmdTd2l0Y2hUb3RhbExlbmd0aCwgMjAwMCkg
XApAQCAtMjEwLDYgKzIzMyw3IEBAIHR5cGVkZWYgT3B0aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7CiAg
ICAgdihib29sLCBzaG93T2JqZWN0U3RhdGlzdGljcywgZmFsc2UpIFwKICAgICBcCiAgICAgdihi
b29sLCBsb2dHQywgZmFsc2UpIFwKKyAgICB2KGJvb2wsIGRpc2FibGVHQywgZmFsc2UpIFwKICAg
ICB2KHVuc2lnbmVkLCBnY01heEhlYXBTaXplLCAwKSBcCiAgICAgdihib29sLCByZWNvcmRHQ1Bh
dXNlVGltZXMsIGZhbHNlKSBcCiAgICAgdihib29sLCBsb2dIZWFwU3RhdGlzdGljc0F0RXhpdCwg
ZmFsc2UpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0FsaWdubWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrQWxp
Z25tZW50LmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0YWNrQWxpZ25tZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDggQEAKICNk
ZWZpbmUgU3RhY2tBbGlnbm1lbnRfaAogCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgorI2luY2x1
ZGUgIkpTU3RhY2suaCIKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApAQCAtMzgsNiArNDAsMjUgQEAgaW5saW5lIHVuc2lnbmVkIHN0YWNrQWxpZ25tZW50
UmVnaXN0ZXJzKAogICAgIHJldHVybiBzdGFja0FsaWdubWVudEJ5dGVzKCkgLyBzaXplb2YoRW5j
b2RlZEpTVmFsdWUpOwogfQogCisvLyBBbGlnbiBhcmd1bWVudCBjb3VudCB0YWtpbmcgaW50byBh
Y2NvdW50IHRoZSBDYWxsRnJhbWVIZWFkZXJTaXplIG1heSBiZQorLy8gYW4gInVuYWxpZ25lZCIg
Y291bnQgb2YgcmVnaXN0ZXJzLgoraW5saW5lIHVuc2lnbmVkIHJvdW5kQXJndW1lbnRDb3VudFRv
QWxpZ25GcmFtZSh1bnNpZ25lZCBhcmd1bWVudENvdW50KQoreworICAgIHJldHVybiBXVEY6OnJv
dW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgYXJndW1lbnRDb3Vu
dCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpIC0gSlNTdGFjazo6Q2FsbEZyYW1lSGVh
ZGVyU2l6ZTsKK30KKworLy8gQWxpZ24gbG9jYWwgcmVnaXN0ZXIgY291bnQgdG8gbWFrZSB0aGUg
bGFzdCBsb2NhbCBlbmQgb24gYSBzdGFjayBhbGlnbmVkIGFkZHJlc3MgZ2l2ZW4gdGhlCisvLyBD
YWxsRnJhbWUgaXMgYXQgYW4gYWRkcmVzcyB0aGF0IGlzIHN0YWNrIGFsaWduZWQgbWludXMgSlNT
dGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUKK2lubGluZSB1bnNpZ25lZCByb3VuZExvY2FsUmVn
aXN0ZXJDb3VudEZvckZyYW1lUG9pbnRlck9mZnNldCh1bnNpZ25lZCBsb2NhbFJlZ2lzdGVyQ291
bnQpCit7CisgICAgcmV0dXJuIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVu
dFJlZ2lzdGVycygpLCBsb2NhbFJlZ2lzdGVyQ291bnQgKyBKU1N0YWNrOjpDYWxsZXJGcmFtZUFu
ZFBDU2l6ZSkgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZTsKK30KKworaW5saW5lIHVu
c2lnbmVkIGxvZ1N0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkKK3sKKyAgICByZXR1cm4gV1RGOjpm
YXN0TG9nMihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKICNlbmRpZiAvLyBTdGFja0FsaWdubWVudF9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UmVjdXJzaW9uQ2hlY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKIEpTVmFsdWUgU3RyaW5nUmVjdXJzaW9uQ2hlY2tlcjo6dGhyb3dTdGFj
a092ZXJmbG93RXJyb3IoKQogewotICAgIHJldHVybiBtX2V4ZWMtPnZtKCkudGhyb3dFeGNlcHRp
b24obV9leGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IobV9leGVjKSk7CisgICAgcmV0dXJu
IEpTQzo6dGhyb3dTdGFja092ZXJmbG93RXJyb3IobV9leGVjKTsKIH0KIAogSlNWYWx1ZSBTdHJp
bmdSZWN1cnNpb25DaGVja2VyOjplbXB0eVN0cmluZygpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwNDgsOCArMTA0OCwxMyBAQCB2b2lkIFN0cnVjdHVyZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0
KSBjCiAgICAgaWYgKHRhYmxlKSB7CiAgICAgICAgIFByb3BlcnR5VGFibGU6Oml0ZXJhdG9yIGl0
ZXIgPSB0YWJsZS0+YmVnaW4oKTsKICAgICAgICAgUHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgZW5k
ID0gdGFibGUtPmVuZCgpOwotICAgICAgICBmb3IgKDsgaXRlciAhPSBlbmQ7ICsraXRlcikKKyAg
ICAgICAgZm9yICg7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKICAgICAgICAgICAgIG91dC5wcmlu
dChjb21tYSwgaXRlci0+a2V5LCAiOiIsIHN0YXRpY19jYXN0PGludD4oaXRlci0+b2Zmc2V0KSk7
CisgICAgICAgICAgICBpZiAoaXRlci0+c3BlY2lmaWNWYWx1ZSkgeworICAgICAgICAgICAgICAg
IER1bXBDb250ZXh0IGR1bW15Q29udGV4dDsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoIj0+
IiwgUmF3UG9pbnRlcihpdGVyLT5zcGVjaWZpY1ZhbHVlLmdldCgpKSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0cnVjdHVyZS0+bV9sb2NrLnVubG9jaygp
OwogICAgIH0KQEAgLTEwNTksNiArMTA2NCwxMCBAQCB2b2lkIFN0cnVjdHVyZTo6ZHVtcChQcmlu
dFN0cmVhbSYgb3V0KSBjCiAgICAgICAgIGlmICghc3RydWN0dXJlLT5tX25hbWVJblByZXZpb3Vz
KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIG91dC5wcmludChjb21tYSwgc3RydWN0
dXJlLT5tX25hbWVJblByZXZpb3VzLmdldCgpLCAiOiIsIHN0YXRpY19jYXN0PGludD4oc3RydWN0
dXJlLT5tX29mZnNldCkpOworICAgICAgICBpZiAoc3RydWN0dXJlLT5tX3NwZWNpZmljVmFsdWVJ
blByZXZpb3VzKSB7CisgICAgICAgICAgICBEdW1wQ29udGV4dCBkdW1teUNvbnRleHQ7CisgICAg
ICAgICAgICBvdXQucHJpbnQoIj0+IiwgUmF3UG9pbnRlcihzdHJ1Y3R1cmUtPm1fc3BlY2lmaWNW
YWx1ZUluUHJldmlvdXMuZ2V0KCkpKTsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICBvdXQu
cHJpbnQoIn0sICIsIEluZGV4aW5nVHlwZUR1bXAoaW5kZXhpbmdUeXBlKCkpKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDExLCAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzAsMTEgKzMwLDEzIEBACiAjaW5jbHVkZSAiVk0uaCIKIAogI2luY2x1
ZGUgIkFyZ0xpc3QuaCIKKyNpbmNsdWRlICJBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIgog
I2luY2x1ZGUgIkFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgIkNh
bGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJDb2Rl
Q2FjaGUuaCIKICNpbmNsdWRlICJDb21tb25JZGVudGlmaWVycy5oIgorI2luY2x1ZGUgIkNvbW1v
blNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkRGR0xvbmdMaXZlZFN0YXRlLmgiCiAjaW5jbHVkZSAi
REZHV29ya2xpc3QuaCIKICNpbmNsdWRlICJEZWJ1Z2dlckFjdGl2YXRpb24uaCIKQEAgLTQ5LDYg
KzUxLDcgQEAKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSW5jcmVtZW50YWxT
d2VlcGVyLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJKSVRDb2RlLmgi
CiAjaW5jbHVkZSAiSlNBUElWYWx1ZVdyYXBwZXIuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24u
aCIKICNpbmNsdWRlICJKU0FycmF5LmgiCkBAIC0xNjYsNiArMTY5LDcgQEAgVk06OlZNKFZNVHlw
ZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgICwgdm1UeXBlKHZtVHlwZSkKICAgICAs
IGNsaWVudERhdGEoMCkKICAgICAsIHRvcENhbGxGcmFtZShDYWxsRnJhbWU6Om5vQ2FsbGVyKCkp
CisgICAgLCBzdGFja1BvaW50ZXJBdFZNRW50cnkoMCkKICAgICAsIGFycmF5Q29uc3RydWN0b3JU
YWJsZShhZG9wdFB0cihuZXcgSGFzaFRhYmxlKEpTQzo6YXJyYXlDb25zdHJ1Y3RvclRhYmxlKSkp
CiAgICAgLCBhcnJheVByb3RvdHlwZVRhYmxlKGFkb3B0UHRyKG5ldyBIYXNoVGFibGUoSlNDOjph
cnJheVByb3RvdHlwZVRhYmxlKSkpCiAgICAgLCBib29sZWFuUHJvdG90eXBlVGFibGUoYWRvcHRQ
dHIobmV3IEhhc2hUYWJsZShKU0M6OmJvb2xlYW5Qcm90b3R5cGVUYWJsZSkpKQpAQCAtMjE2LDcg
KzIyMCw3IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAs
IG1faW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3MoMCkKICNlbmRpZgogICAgICwgbV9zdGFja0xpbWl0
KDApCi0jaWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQorI2lmIEVOQUJMRShMTElOVF9D
X0xPT1ApCiAgICAgLCBtX2pzU3RhY2tMaW1pdCgwKQogI2VuZGlmCiAgICAgLCBtX2luRGVmaW5l
T3duUHJvcGVydHkoZmFsc2UpCkBAIC0yMjUsNyArMjI5LDExIEBAIFZNOjpWTShWTVR5cGUgdm1U
eXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKIHsKICAgICBpbnRlcnByZXRlciA9IG5ldyBJbnRlcnBy
ZXRlcigqdGhpcyk7CiAgICAgU3RhY2tCb3VuZHMgc3RhY2sgPSB3dGZUaHJlYWREYXRhKCkuc3Rh
Y2soKTsKLSAgICBzZXRTdGFja0xpbWl0KHN0YWNrLnJlY3Vyc2lvbkxpbWl0KCkpOworICAgIHVw
ZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShPcHRpb25zOjpyZXNlcnZlZFpvbmVT
aXplKCkpOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgaW50ZXJwcmV0ZXItPnN0YWNr
KCkuc2V0UmVzZXJ2ZWRab25lU2l6ZShPcHRpb25zOjpyZXNlcnZlZFpvbmVTaXplKCkpOworI2Vu
ZGlmCisgICAgc2V0TGFzdFN0YWNrVG9wKHN0YWNrLm9yaWdpbigpKTsKIAogICAgIC8vIE5lZWQg
dG8gYmUgY2FyZWZ1bCB0byBrZWVwIGV2ZXJ5dGhpbmcgY29uc2lzdGVudCBoZXJlCiAgICAgSlNM
b2NrSG9sZGVyIGxvY2sodGhpcyk7CkBAIC0yNjcsNyArMjc1LDkgQEAgVk06OlZNKFZNVHlwZSB2
bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogCiAjaWYgRU5BQkxFKEpJVCkKICAgICBqaXRTdHVi
cyA9IGFkb3B0UHRyKG5ldyBKSVRUaHVua3MoKSk7CisgICAgYXJpdHlDaGVja0ZhaWxSZXR1cm5U
aHVua3MgPSBzdGQ6Om1ha2VfdW5pcXVlPEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzPigpOwog
I2VuZGlmCisgICAgYXJpdHlDaGVja0RhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbW1vblNsb3dQ
YXRoczo6QXJpdHlDaGVja0RhdGE+KCk7CiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICBmdGxU
aHVua3MgPSBzdGQ6Om1ha2VfdW5pcXVlPEZUTDo6VGh1bmtzPigpOwpAQCAtMjgwLDcgKzI5MCw3
IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICNlbmRpZgogCiAg
ICAgaGVhcC5ub3RpZnlJc1NhZmVUb0NvbGxlY3QoKTsKLQorICAgIAogICAgIExMSW50OjpEYXRh
OjpwZXJmb3JtQXNzZXJ0aW9ucygqdGhpcyk7CiAgICAgCiAgICAgaWYgKE9wdGlvbnM6OmVuYWJs
ZVByb2ZpbGVyKCkpIHsKQEAgLTMwNiw2ICszMTYsMTYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUs
IEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIG1fdHlwZWRBcnJheUNvbnRyb2xsZXIgPSBhZG9wdFJl
ZihuZXcgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKSk7CiB9CiAKKyNpZiBFTkFCTEUoREZH
X0pJVCkKK3N0YXRpYyB2b2lkIGNsZWFuV29ya2xpc3QoVk0mIHZtLCBERkc6OldvcmtsaXN0KiB3
b3JrbGlzdCkKK3sKKyAgICBpZiAoIXdvcmtsaXN0KQorICAgICAgICByZXR1cm47CisgICAgd29y
a2xpc3QtPndhaXRVbnRpbEFsbFBsYW5zRm9yVk1BcmVSZWFkeSh2bSk7CisgICAgd29ya2xpc3Qt
PnJlbW92ZUFsbFJlYWR5UGxhbnNGb3JWTSh2bSk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKERGR19K
SVQpCisKIFZNOjp+Vk0oKQogewogICAgIC8vIE5ldmVyIEdDLCBldmVyIGFnYWluLgpAQCAtMzE0
LDEwICszMzQsOCBAQCBWTTo6flZNKCkKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAvLyBNYWtl
IHN1cmUgY29uY3VycmVudCBjb21waWxhdGlvbnMgYXJlIGRvbmUsIGJ1dCBkb24ndCBpbnN0YWxs
IHRoZW0sIHNpbmNlIHRoZXJlIGlzCiAgICAgLy8gbm8gcG9pbnQgdG8gZG9pbmcgc28uCi0gICAg
aWYgKHdvcmtsaXN0KSB7Ci0gICAgICAgIHdvcmtsaXN0LT53YWl0VW50aWxBbGxQbGFuc0ZvclZN
QXJlUmVhZHkoKnRoaXMpOwotICAgICAgICB3b3JrbGlzdC0+cmVtb3ZlQWxsUmVhZHlQbGFuc0Zv
clZNKCp0aGlzKTsKLSAgICB9CisgICAgY2xlYW5Xb3JrbGlzdCgqdGhpcywgREZHOjpleGlzdGlu
Z0dsb2JhbERGR1dvcmtsaXN0T3JOdWxsKCkpOworICAgIGNsZWFuV29ya2xpc3QoKnRoaXMsIERG
Rzo6ZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVsbCgpKTsKICNlbmRpZiAvLyBFTkFCTEUo
REZHX0pJVCkKICAgICAKICAgICAvLyBDbGVhciB0aGlzIGZpcnN0IHRvIGVuc3VyZSB0aGF0IG5v
Ym9keSB0cmllcyB0byByZW1vdmUgdGhlbXNlbHZlcyBmcm9tIGl0LgpAQCAtNDYxLDggKzQ3OSw4
IEBAIE5hdGl2ZUV4ZWN1dGFibGUqIFZNOjpnZXRIb3N0RnVuY3Rpb24oTmEKIE5hdGl2ZUV4ZWN1
dGFibGUqIFZNOjpnZXRIb3N0RnVuY3Rpb24oTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2
ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQogewogICAgIHJldHVybiBOYXRpdmVFeGVjdXRhYmxlOjpj
cmVhdGUoKnRoaXMsCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRD
b2RlUmVmKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpLCBmdW5jdGlvbiwKLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfbmF0aXZlX2Nv
bnN0cnVjdF90cmFtcG9saW5lKSwgY29uc3RydWN0b3IsCisgICAgICAgIGFkb3B0UmVmKG5ldyBO
YXRpdmVKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxs
aW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksIGZ1
bmN0aW9uLAorICAgICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1w
b2xpbmUpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksIGNvbnN0cnVjdG9yLAogICAgICAgICBO
b0ludHJpbnNpYyk7CiB9CiAKQEAgLTQ5MCwxNCArNTA4LDIxIEBAIHZvaWQgVk06OnN0b3BTYW1w
bGluZygpCiAgICAgaW50ZXJwcmV0ZXItPnN0b3BTYW1wbGluZygpOwogfQogCi12b2lkIFZNOjpw
cmVwYXJlVG9EaXNjYXJkQ29kZSgpCi17CiAjaWYgRU5BQkxFKERGR19KSVQpCitzdGF0aWMgdm9p
ZCBwcmVwYXJlVG9EaXNjYXJkQ29kZUZvcihWTSYgdm0sIERGRzo6V29ya2xpc3QqIHdvcmtsaXN0
KQorewogICAgIGlmICghd29ya2xpc3QpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICB3b3Jr
bGlzdC0+Y29tcGxldGVBbGxQbGFuc0ZvclZNKCp0aGlzKTsKLSNlbmRpZgorICAgIHdvcmtsaXN0
LT5jb21wbGV0ZUFsbFBsYW5zRm9yVk0odm0pOworfQorI2VuZGlmIC8vIEVOQUJMRShERkdfSklU
KQorCit2b2lkIFZNOjpwcmVwYXJlVG9EaXNjYXJkQ29kZSgpCit7CisjaWYgRU5BQkxFKERGR19K
SVQpCisgICAgcHJlcGFyZVRvRGlzY2FyZENvZGVGb3IoKnRoaXMsIERGRzo6ZXhpc3RpbmdHbG9i
YWxERkdXb3JrbGlzdE9yTnVsbCgpKTsKKyAgICBwcmVwYXJlVG9EaXNjYXJkQ29kZUZvcigqdGhp
cywgREZHOjpleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkpOworI2VuZGlmIC8vIEVO
QUJMRShERkdfSklUKQogfQogCiB2b2lkIFZNOjpkaXNjYXJkQWxsQ29kZSgpCkBAIC02MzIsNiAr
NjU3LDExIEBAIHN0YXRpYyB2b2lkIGFwcGVuZFNvdXJjZVRvRXJyb3IoQ2FsbEZyYW0KICAgICAK
IEpTVmFsdWUgVk06OnRocm93RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBlcnJv
cikKIHsKKyAgICBpZiAoT3B0aW9uczo6YnJlYWtPblRocm93KCkpIHsKKyAgICAgICAgZGF0YUxv
ZygiSW4gY2FsbCBmcmFtZSAiLCBSYXdQb2ludGVyKGV4ZWMpLCAiIGZvciBjb2RlIGJsb2NrICIs
ICpleGVjLT5jb2RlQmxvY2soKSwgIlxuIik7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorICAg
IAogICAgIEFTU0VSVChleGVjID09IHRvcENhbGxGcmFtZSB8fCBleGVjID09IGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpIHx8IGV4ZWMgPT0gZXhlYy0+dm1FbnRyeUds
b2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCkpOwogICAgIAogICAgIFZlY3RvcjxTdGFja0ZyYW1l
PiBzdGFja1RyYWNlOwpAQCAtNzA2LDYgKzczNiwyNCBAQCB2b2lkIFZNOjogY2xlYXJFeGNlcHRp
b25TdGFjaygpCiAgICAgbV9leGNlcHRpb25TdGFjayA9IFJlZkNvdW50ZWRBcnJheTxTdGFja0Zy
YW1lPigpOwogfQogCitzaXplX3QgVk06OnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25l
U2l6ZShzaXplX3QgcmVzZXJ2ZWRab25lU2l6ZSkKK3sKKyAgICBzaXplX3Qgb2xkUmVzZXJ2ZWRa
b25lU2l6ZSA9IG1fcmVzZXJ2ZWRab25lU2l6ZTsKKyAgICBtX3Jlc2VydmVkWm9uZVNpemUgPSBy
ZXNlcnZlZFpvbmVTaXplOworCisgICAgdm9pZCogc3RhY2tMaW1pdDsKKyAgICBpZiAoc3RhY2tQ
b2ludGVyQXRWTUVudHJ5KSB7CisgICAgICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2so
KS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKKyAgICAgICAgY2hhciogc3RhcnRPZlN0YWNrID0gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oc3RhY2tQb2ludGVyQXRWTUVudHJ5KTsKKyAgICAgICAgY2hh
ciogZGVzaXJlZFN0YWNrTGltaXQgPSBzdGFydE9mU3RhY2sgLSBPcHRpb25zOjptYXhQZXJUaHJl
YWRTdGFja1VzYWdlKCkgKyByZXNlcnZlZFpvbmVTaXplOworICAgICAgICBzdGFja0xpbWl0ID0g
d3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkucmVjdXJzaW9uTGltaXQocmVzZXJ2ZWRab25lU2l6ZSwg
ZGVzaXJlZFN0YWNrTGltaXQpOworICAgIH0gZWxzZQorICAgICAgICBzdGFja0xpbWl0ID0gd3Rm
VGhyZWFkRGF0YSgpLnN0YWNrKCkucmVjdXJzaW9uTGltaXQocmVzZXJ2ZWRab25lU2l6ZSk7CisK
KyAgICBzZXRTdGFja0xpbWl0KHN0YWNrTGltaXQpOworICAgIHJldHVybiBvbGRSZXNlcnZlZFpv
bmVTaXplOworfQorCiB2b2lkIHJlbGVhc2VFeGVjdXRhYmxlTWVtb3J5KFZNJiB2bSkKIHsKICAg
ICB2bS5yZWxlYXNlRXhlY3V0YWJsZU1lbW9yeSgpOwpAQCAtNzIyLDE2ICs3NzAsMTkgQEAgdm9p
ZCBWTTo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydgogICAgICAgICB9CiAgICAgfQog
fQorI2VuZGlmCiAKLURGRzo6V29ya2xpc3QqIFZNOjplbnN1cmVXb3JrbGlzdCgpCit2b2lkIGxv
Z1Nhbml0aXplU3RhY2soVk0qIHZtKQogewotICAgIGlmICghREZHOjplbmFibGVDb25jdXJyZW50
SklUKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmICghd29ya2xpc3QpCi0gICAgICAgIHdv
cmtsaXN0ID0gREZHOjpnbG9iYWxXb3JrbGlzdCgpOwotICAgIHJldHVybiB3b3JrbGlzdC5nZXQo
KTsKKyAgICBpZiAoT3B0aW9uczo6dmVyYm9zZVNhbml0aXplU3RhY2soKSAmJiB2bS0+dG9wQ2Fs
bEZyYW1lKSB7CisgICAgICAgIGludCBkdW1teTsKKyAgICAgICAgZGF0YUxvZygKKyAgICAgICAg
ICAgICJTYW5pdGl6aW5nIHN0YWNrIHdpdGggdG9wIGNhbGwgZnJhbWUgYXQgIiwgUmF3UG9pbnRl
cih2bS0+dG9wQ2FsbEZyYW1lKSwKKyAgICAgICAgICAgICIsIGN1cnJlbnQgc3RhY2sgcG9pbnRl
ciBhdCAiLCBSYXdQb2ludGVyKCZkdW1teSksICIsIGluICIsCisgICAgICAgICAgICBwb2ludGVy
RHVtcCh2bS0+dG9wQ2FsbEZyYW1lLT5jb2RlQmxvY2soKSksICIgYW5kIGxhc3QgY29kZSBvcmln
aW4gPSAiLAorICAgICAgICAgICAgdm0tPnRvcENhbGxGcmFtZS0+Y29kZU9yaWdpbigpLCAiXG4i
KTsKKyAgICB9CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lORykKIHZvaWQg
Vk06OmFkZFJlZ0V4cFRvVHJhY2UoUmVnRXhwKiByZWdFeHApCkBAIC03OTksNCArODUwLDE0IEBA
IHZvaWQgVk06OnNldEVuYWJsZWRQcm9maWxlcihMZWdhY3lQcm9maWwKICAgICB9CiB9CiAKK3Zv
aWQgc2FuaXRpemVTdGFja0ZvclZNKFZNKiB2bSkKK3sKKyAgICBsb2dTYW5pdGl6ZVN0YWNrKHZt
KTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIHZtLT5pbnRlcnByZXRlci0+c3RhY2so
KS5zYW5pdGl6ZVN0YWNrKCk7CisjZWxzZQorICAgIHNhbml0aXplU3RhY2tGb3JWTUltcGwodm0p
OworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw3IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCisgICAgY2xhc3MgQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M7CiAgICAgY2xh
c3MgQ29kZUJsb2NrOwogICAgIGNsYXNzIENvZGVDYWNoZTsKICAgICBjbGFzcyBDb21tb25JZGVu
dGlmaWVyczsKQEAgLTEwMyw3ICsxMDQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICNpZiBFTkFCTEUo
REZHX0pJVCkKICAgICBuYW1lc3BhY2UgREZHIHsKICAgICBjbGFzcyBMb25nTGl2ZWRTdGF0ZTsK
LSAgICBjbGFzcyBXb3JrbGlzdDsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAj
aWYgRU5BQkxFKEZUTF9KSVQpCkBAIC0xMTEsNiArMTExLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgY2xhc3MgVGh1bmtzOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKyAgICBu
YW1lc3BhY2UgQ29tbW9uU2xvd1BhdGhzIHsKKyAgICBzdHJ1Y3QgQXJpdHlDaGVja0RhdGE7Cisg
ICAgfQogCiAgICAgc3RydWN0IEhhc2hUYWJsZTsKICAgICBzdHJ1Y3QgSW5zdHJ1Y3Rpb247CkBA
IC0yMDQsMTAgKzIwNyw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQgbWFrZVVz
YWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKSB7IGhlYXAubWFjaGluZVRocmVhZHMoKS5tYWtlVXNh
YmxlRnJvbU11bHRpcGxlVGhyZWFkcygpOyB9CiAgICAgICAgIAotI2lmIEVOQUJMRShERkdfSklU
KQotICAgICAgICBERkc6OldvcmtsaXN0KiBlbnN1cmVXb3JrbGlzdCgpOwotI2VuZGlmIC8vIEVO
QUJMRShERkdfSklUKQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRyPEpTTG9jaz4gbV9h
cGlMb2NrOwogCkBAIC0yMjQsMTIgKzIyMywxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
CiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgICAgIE93blB0cjxERkc6OkxvbmdMaXZlZFN0YXRl
PiBkZmdTdGF0ZTsKLSAgICAgICAgUmVmUHRyPERGRzo6V29ya2xpc3Q+IHdvcmtsaXN0OwogI2Vu
ZGlmIC8vIEVOQUJMRShERkdfSklUKQogCiAgICAgICAgIFZNVHlwZSB2bVR5cGU7CiAgICAgICAg
IENsaWVudERhdGEqIGNsaWVudERhdGE7CiAgICAgICAgIEV4ZWNTdGF0ZSogdG9wQ2FsbEZyYW1l
OworICAgICAgICB2b2lkKiBzdGFja1BvaW50ZXJBdFZNRW50cnk7CiAgICAgICAgIFdhdGNoZG9n
IHdhdGNoZG9nOwogCiAgICAgICAgIGNvbnN0IE93blB0cjxjb25zdCBIYXNoVGFibGU+IGFycmF5
Q29uc3RydWN0b3JUYWJsZTsKQEAgLTM0MCw3ICszMzksMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICAgICByZXR1cm4gaml0U3R1YnMtPmN0aVN0dWIodGhpcywgZ2VuZXJhdG9yKTsKICAg
ICAgICAgfQogICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBnZXRIb3N0RnVuY3Rpb24oTmF0aXZl
RnVuY3Rpb24sIEludHJpbnNpYyk7Ci0jZW5kaWYKKyAgICAgICAgCisgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcz4gYXJpdHlDaGVja0ZhaWxSZXR1cm5U
aHVua3M7CisjaWYgQ1BVKFg4NikKKyAgICAgICAgdm9pZCogY3VycmVudFJldHVyblRodW5rUEM7
CisjZW5kaWYgLy8gQ1BVKFg4NikKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YT4gYXJpdHlDaGVja0Rh
dGE7CiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxGVEw6OlRo
dW5rcz4gZnRsVGh1bmtzOwogI2VuZGlmCkBAIC0zNzIsMTIgKzM3NywxNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSB0aHJvd0V4Y2VwdGlvbihF
eGVjU3RhdGUqLCBKU1ZhbHVlKTsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3Qq
IHRocm93RXhjZXB0aW9uKEV4ZWNTdGF0ZSosIEpTT2JqZWN0Kik7CiAgICAgICAgIAorICAgICAg
ICBzaXplX3QgcmVzZXJ2ZWRab25lU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzZXJ2ZWRab25l
U2l6ZTsgfQorICAgICAgICBzaXplX3QgdXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVT
aXplKHNpemVfdCByZXNlcnZlZFpvbmVTaXplKTsKKwogICAgICAgICB2b2lkKiogYWRkcmVzc09m
SlNTdGFja0xpbWl0KCkgeyByZXR1cm4gJm1fanNTdGFja0xpbWl0OyB9CisjaWYgRU5BQkxFKExM
SU5UX0NfTE9PUCkKICAgICAgICAgdm9pZCoganNTdGFja0xpbWl0KCkgeyByZXR1cm4gbV9qc1N0
YWNrTGltaXQ7IH0KICAgICAgICAgdm9pZCBzZXRKU1N0YWNrTGltaXQodm9pZCogbGltaXQpIHsg
bV9qc1N0YWNrTGltaXQgPSBsaW1pdDsgfQotCisjZW5kaWYKICAgICAgICAgdm9pZCogc3RhY2tM
aW1pdCgpIHsgcmV0dXJuIG1fc3RhY2tMaW1pdDsgfQotICAgICAgICB2b2lkIHNldFN0YWNrTGlt
aXQodm9pZCogbGltaXQpIHsgbV9zdGFja0xpbWl0ID0gbGltaXQ7IH0KKwogICAgICAgICBib29s
IGlzU2FmZVRvUmVjdXJzZShzaXplX3QgbmVlZGVkU3RhY2tJbkJ5dGVzID0gMCkgY29uc3QKICAg
ICAgICAgewogICAgICAgICAgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jv
d2luZ0Rvd253YXJkKCkpOwpAQCAtMzg2LDEwICszOTUsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICAgICByZXR1cm4gY3VyciA+PSBsaW1pdCAmJiBzdGF0aWNfY2FzdDxzaXplX3Q+KGN1
cnIgLSBsaW1pdCkgPj0gbmVlZGVkU3RhY2tJbkJ5dGVzOwogICAgICAgICB9CiAKKyAgICAgICAg
dm9pZCogbGFzdFN0YWNrVG9wKCkgeyByZXR1cm4gbV9sYXN0U3RhY2tUb3A7IH0KKyAgICAgICAg
dm9pZCBzZXRMYXN0U3RhY2tUb3Aodm9pZCogbGFzdFN0YWNrVG9wKSB7IG1fbGFzdFN0YWNrVG9w
ID0gbGFzdFN0YWNrVG9wOyB9CisKICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjb25zdCBqc0Fy
cmF5Q2xhc3NJbmZvOwogICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNvbnN0IGpzRmluYWxPYmpl
Y3RDbGFzc0luZm87CiAKLSAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciBleGNlcHRpb25Mb2NhdGlv
bjsKICAgICAgICAgSlNWYWx1ZSBob3N0Q2FsbFJldHVyblZhbHVlOwogICAgICAgICBFeGVjU3Rh
dGUqIG5ld0NhbGxGcmFtZVJldHVyblZhbHVlOwogICAgICAgICBFeGVjU3RhdGUqIGNhbGxGcmFt
ZUZvclRocm93OwpAQCAtNDEyLDcgKzQyMyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgICAgIC8vIG1heChzY3JhdGNoIGJ1ZmZlciBzaXplKSAqIDQuCiAgICAgICAgICAgICAgICAg
c2l6ZU9mTGFzdFNjcmF0Y2hCdWZmZXIgPSBzaXplICogMjsKIAotICAgICAgICAgICAgICAgIHNj
cmF0Y2hCdWZmZXJzLmFwcGVuZChTY3JhdGNoQnVmZmVyOjpjcmVhdGUoc2l6ZU9mTGFzdFNjcmF0
Y2hCdWZmZXIpKTsKKyAgICAgICAgICAgICAgICBTY3JhdGNoQnVmZmVyKiBuZXdCdWZmZXIgPSBT
Y3JhdGNoQnVmZmVyOjpjcmVhdGUoc2l6ZU9mTGFzdFNjcmF0Y2hCdWZmZXIpOworICAgICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKG5ld0J1ZmZlcik7CisgICAgICAgICAgICAgICAgc2NyYXRj
aEJ1ZmZlcnMuYXBwZW5kKG5ld0J1ZmZlcik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IFNjcmF0Y2hCdWZmZXIqIHJlc3VsdCA9IHNjcmF0Y2hCdWZmZXJzLmxhc3QoKTsKQEAgLTQ5Myw2
ICs1MDYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVk0oVk1UeXBlLCBIZWFwVHlwZSk7
CiAgICAgICAgIHN0YXRpYyBWTSomIHNoYXJlZEluc3RhbmNlSW50ZXJuYWwoKTsKICAgICAgICAg
dm9pZCBjcmVhdGVOYXRpdmVUaHVuaygpOworCisgICAgICAgIHZvaWQgc2V0U3RhY2tMaW1pdCh2
b2lkKiBsaW1pdCkgeyBtX3N0YWNrTGltaXQgPSBsaW1pdDsgfQorCiAjaWYgRU5BQkxFKEFTU0VN
QkxFUikKICAgICAgICAgYm9vbCBtX2NhblVzZUFzc2VtYmxlcjsKICNlbmRpZgpAQCAtNTA1LDgg
KzUyMSw4IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQogICAg
ICAgICBjb25zdCBDbGFzc0luZm8qIG1faW5pdGlhbGl6aW5nT2JqZWN0Q2xhc3M7CiAjZW5kaWYK
LQotI2lmIFVTRShTRVBBUkFURV9DX0FORF9KU19TVEFDSykKKyAgICAgICAgc2l6ZV90IG1fcmVz
ZXJ2ZWRab25lU2l6ZTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICAgICBzdHJ1Y3Qg
ewogICAgICAgICAgICAgdm9pZCogbV9zdGFja0xpbWl0OwogICAgICAgICAgICAgdm9pZCogbV9q
c1N0YWNrTGltaXQ7CkBAIC01MTcsNiArNTMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICB2b2lkKiBtX2pzU3RhY2tMaW1pdDsKICAgICAgICAgfTsKICNlbmRpZgorICAgICAgICB2
b2lkKiBtX2xhc3RTdGFja1RvcDsKICAgICAgICAgSlNWYWx1ZSBtX2V4Y2VwdGlvbjsKICAgICAg
ICAgYm9vbCBtX2luRGVmaW5lT3duUHJvcGVydHk7CiAgICAgICAgIE93blB0cjxDb2RlQ2FjaGU+
IG1fY29kZUNhY2hlOwpAQCAtNTQ0LDYgKzU2MSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgcmV0dXJuICZtX3ZtLT5oZWFwOwogICAgIH0KIAorI2lmICFFTkFCTEUoTExJTlRfQ19MT09Q
KQorICAgIGV4dGVybiAiQyIgdm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk1JbXBsKFZNKik7CisjZW5k
aWYKKworICAgIHZvaWQgc2FuaXRpemVTdGFja0ZvclZNKFZNKik7CisgICAgdm9pZCBsb2dTYW5p
dGl6ZVN0YWNrKFZNKik7CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gVk1faApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3Bw
CShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVu
dHJ5U2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiVk1F
bnRyeVNjb3BlLmgiCiAKICNpbmNsdWRlICJEZWJ1Z2dlci5oIgorI2luY2x1ZGUgIk9wdGlvbnMu
aCIKICNpbmNsdWRlICJWTS5oIgogI2luY2x1ZGUgPHd0Zi9TdGFja0JvdW5kcy5oPgogCkBAIC0z
NCwxMiArMzUsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIFZNRW50cnlTY29wZTo6Vk1FbnRyeVNj
b3BlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICA6IG1fdm0odm0p
Ci0gICAgLCBtX3N0YWNrKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpKQogICAgICwgbV9nbG9iYWxP
YmplY3QoZ2xvYmFsT2JqZWN0KQotICAgICwgbV9wcmV2KHZtLmVudHJ5U2NvcGUpCi0gICAgLCBt
X3ByZXZTdGFja0xpbWl0KHZtLnN0YWNrTGltaXQoKSkKICAgICAsIG1fcmVjb21waWxhdGlvbk5l
ZWRlZChmYWxzZSkKIHsKKyAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93
aW5nRG93bndhcmQoKSk7CiAgICAgaWYgKCF2bS5lbnRyeVNjb3BlKSB7CiAjaWYgRU5BQkxFKEFT
U0VNQkxFUikKICAgICAgICAgaWYgKEV4ZWN1dGFibGVBbGxvY2F0b3I6OnVuZGVyTWVtb3J5UHJl
c3N1cmUoKSkKQEAgLTUxLDE3ICs1MCwyNCBAQCBWTUVudHJ5U2NvcGU6OlZNRW50cnlTY29wZShW
TSYgdm0sIEpTR2xvCiAgICAgICAgIC8vIG9ic2VydmUgdGltZSB4b25lIGNoYW5nZXMuCiAgICAg
ICAgIHZtLnJlc2V0RGF0ZUNhY2hlKCk7CiAgICAgfQotICAgIC8vIENsZWFyIHRoZSBleGNlcHRp
b24gc3RhY2sgYmV0d2VlbiBlbnRyaWVzCi0gICAgdm0uY2xlYXJFeGNlcHRpb25TdGFjaygpOwog
Ci0gICAgdm9pZCogbGltaXQgPSBtX3N0YWNrLnJlY3Vyc2lvbkxpbWl0KHJlcXVpcmVkQ2FwYWNp
dHkoKSk7Ci0gICAgdm0uc2V0U3RhY2tMaW1pdChsaW1pdCk7CisgICAgaWYgKCF2bS5zdGFja1Bv
aW50ZXJBdFZNRW50cnkpIHsKKyAgICAgICAgdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gdGhp
czsKKyAgICAgICAgbV9zYXZlZFJlc2VydmVkWm9uZVNpemUgPSB2bS51cGRhdGVTdGFja0xpbWl0
V2l0aFJlc2VydmVkWm9uZVNpemUoT3B0aW9uczo6cmVzZXJ2ZWRab25lU2l6ZSgpKTsKKyAgICB9
CisKKyAgICAvLyBDbGVhciB0aGUgY2FwdHVyZWQgZXhjZXB0aW9uIHN0YWNrIGJldHdlZW4gZW50
cmllcworICAgIHZtLmNsZWFyRXhjZXB0aW9uU3RhY2soKTsKIH0KIAogVk1FbnRyeVNjb3BlOjp+
Vk1FbnRyeVNjb3BlKCkKIHsKLSAgICBtX3ZtLmVudHJ5U2NvcGUgPSBtX3ByZXY7Ci0gICAgbV92
bS5zZXRTdGFja0xpbWl0KG1fcHJldlN0YWNrTGltaXQpOworICAgIGlmIChtX3ZtLmVudHJ5U2Nv
cGUgPT0gdGhpcykKKyAgICAgICAgbV92bS5lbnRyeVNjb3BlID0gbnVsbHB0cjsKKyAgICBpZiAo
bV92bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPT0gdGhpcykgeworICAgICAgICBtX3ZtLnN0YWNr
UG9pbnRlckF0Vk1FbnRyeSA9IG51bGxwdHI7CisgICAgICAgIG1fdm0udXBkYXRlU3RhY2tMaW1p
dFdpdGhSZXNlcnZlZFpvbmVTaXplKG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplKTsKKyAgICB9CiAK
ICAgICBpZiAobV9yZWNvbXBpbGF0aW9uTmVlZGVkKSB7CiAgICAgICAgIGlmIChtX3ZtLmVudHJ5
U2NvcGUpCkBAIC03MywyMyArNzksNCBAQCBWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUoKQog
ICAgIH0KIH0KIAotc2l6ZV90IFZNRW50cnlTY29wZTo6cmVxdWlyZWRDYXBhY2l0eSgpIGNvbnN0
Ci17Ci0gICAgSW50ZXJwcmV0ZXIqIGludGVycHJldGVyID0gbV92bS5pbnRlcnByZXRlcjsKLQot
ICAgIC8vIFdlIHJlcXVpcmUgYSBzbWFsbGVyIHN0YWNrIGJ1ZGdldCBmb3IgdGhlIGVycm9yIHN0
YWNrLiBUaGlzIGlzIHRvIGFsbG93Ci0gICAgLy8gc29tZSBtaW5pbWFsIEpTIGV4ZWN1dGlvbiB0
byBwcm9jZWVkIGFuZCBkbyB0aGUgd29yayBvZiB0aHJvd2luZyBhIHN0YWNrCi0gICAgLy8gb3Zl
cmZsb3cgZXJyb3IgaWYgbmVlZGVkLiBJbiBjb250cmFzdCwgYXJiaXRyYXJ5IEpTIGNvZGUgd2ls
bCByZXF1aXJlIHRoZQotICAgIC8vIG1vcmUgZ2VuZXJvdXMgc3RhY2sgYnVkZ2V0IGluIG9yZGVy
IHRvIHByb2NlZWQuCi0gICAgLy8KLSAgICAvLyBUaGVzZSBzaXplcyB3ZXJlIGRlcml2ZWQgZnJv
bSB0aGUgc3RhY2sgdXNhZ2Ugb2YgYSBudW1iZXIgb2Ygc2l0ZXMgd2hlbgotICAgIC8vIGxheW91
dCBvY2N1cnMgd2hlbiB3ZSd2ZSBhbHJlYWR5IGNvbnN1bWVkIG1vc3Qgb2YgdGhlIEMgc3RhY2su
Ci0gICAgY29uc3Qgc2l6ZV90IHJlcXVpcmVkU3RhY2sgPSAxMjggKiBLQjsKLSAgICBjb25zdCBz
aXplX3QgZXJyb3JNb2RlUmVxdWlyZWRTdGFjayA9IDY0ICogS0I7Ci0KLSAgICBzaXplX3QgcmVx
dWlyZWRDYXBhY2l0eSA9IGludGVycHJldGVyLT5pc0luRXJyb3JIYW5kbGluZ01vZGUoKSA/IGVy
cm9yTW9kZVJlcXVpcmVkU3RhY2sgOiByZXF1aXJlZFN0YWNrOwotICAgIFJFTEVBU0VfQVNTRVJU
KG1fc3RhY2suc2l6ZSgpID49IHJlcXVpcmVkQ2FwYWNpdHkpOwotICAgIHJldHVybiByZXF1aXJl
ZENhcGFjaXR5OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDUsMTYgKzQ1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlY29tcGlsYXRpb25OZWVk
ZWQoYm9vbCByZWNvbXBpbGVOZWVkZWQpIHsgbV9yZWNvbXBpbGF0aW9uTmVlZGVkID0gcmVjb21w
aWxlTmVlZGVkOyB9CiAKIHByaXZhdGU6Ci0gICAgc2l6ZV90IHJlcXVpcmVkQ2FwYWNpdHkoKSBj
b25zdDsKLQogICAgIFZNJiBtX3ZtOwogICAgIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQgbV9zdGFj
a0NoZWNrUG9pbnQ7Ci0gICAgU3RhY2tCb3VuZHMgbV9zdGFjazsKICAgICBKU0dsb2JhbE9iamVj
dCogbV9nbG9iYWxPYmplY3Q7Ci0KLSAgICAvLyBtX3ByZXYgYW5kIG1fcHJldlN0YWNrTGltaXQg
bWF5IGJlbG9uZyB0byBhIGRpZmZlcmVudCB0aHJlYWQncyBzdGFjay4KLSAgICBWTUVudHJ5U2Nv
cGUqIG1fcHJldjsKLSAgICB2b2lkKiBtX3ByZXZTdGFja0xpbWl0OworICAgIHNpemVfdCBtX3Nh
dmVkUmVzZXJ2ZWRab25lU2l6ZTsKICAgICBib29sIG1fcmVjb21waWxhdGlvbk5lZWRlZDsKIH07
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXRvLWZ0bC1h
cml0eS1maXh1cC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2Z0bC10by1mdGwtYXJpdHktZml4dXAuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC10by1mdGwtYXJpdHktZml4dXAuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorZnVuY3Rpb24gZm9vKGEsIGIsIGMpIHsKKyAg
ICByZXR1cm4gKGF8MCkgKyAoYnwwKSArIChjfDApOworfQorCitmdW5jdGlvbiBiYXIobykgewor
ICAgIC8vIFNhdmUgYSBidW5jaCBvZiBzdGF0ZSBpbiBsb2NhbCB2YXJpYWJsZXMuCisgICAgdmFy
IGEgPSBvLmY7CisgICAgdmFyIGIgPSBvLmc7CisgICAgdmFyIGMgPSBvLmg7CisgICAgdmFyIGQg
PSBvLmk7CisgICAgdmFyIGUgPSBvLmo7CisgICAgdmFyIGYgPSBvLms7CisgICAgdmFyIGcgPSBv
Lmw7CisgICAgLy8gTWFrZSBhIGNhbGwgdGhhdCB3aWxsIGJlIHN1YmplY3QgdG8gYXJpdHkgZml4
dXAgYW5kIHRoZW4gdXNlIHRoZSBzYXZlZCBzdGF0ZS4gV2UncmUKKyAgICAvLyBjb3VudGluZyBv
biBMTFZNIHRvIHB1dCB0aG9zZSB2YXJpYWJsZXMgaW4gY2FsbGVlLXNhdmVzLCBzaW5jZSB0aGF0
J3MgcHJldHR5IG11Y2ggdGhlCisgICAgLy8gb25seSBzZW5zaWJsZSBjaG9pY2UuCisgICAgcmV0
dXJuIGZvbyg0MikgKyBhICsgYiArIGMgKyBkICsgZSArIGYgKyBnOworfQorCitub0lubGluZShm
b28pOworbm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkg
eworICAgIC8vIENhbGwgYmFyKCkgaW4gc3VjaCBhIHdheSB0aGF0IGFsbCBvZiB0aG9zZSBjYWxs
ZWUtc2F2ZSB2YXJpYWJsZXMgaGF2ZSBmYWlybHkgdW5pcXVlCisgICAgLy8gbG9va2luZyB2YWx1
ZXMsIHRvIG1heGltaXplIHRoZSBjaGFuY2VzIG9mIGZvbygpIGNsb2JiZXJpbmcgdGhlbSBpbiBh
IHJlY29nbml6YWJsZQorICAgIC8vIHdheS4KKyAgICB2YXIgcmVzdWx0ID0gYmFyKHsKKyAgICAg
ICAgZjppICogMywgZzppIC0gMSwgaDooaSAvIDIpfDAsIGk6LWksIGo6MTMgKyAoKGkgLyA1KXww
KSwgazoxNCAtICgoaSAvIDYpfDApLAorICAgICAgICBsOjEgLSBpfSk7CisgICAgCisgICAgdmFy
IGV4cGVjdGVkID0gNDIgKyBpICogMyArIGkgLSAxICsgKChpIC8gMil8MCkgLSBpICsgMTMgKyAo
KGkgLyA1KXwwKSArIDE0IC0KKyAgICAgICAgKChpIC8gNil8MCkgKyAxIC0gaTsKKyAgICAKKyAg
ICBpZiAocmVzdWx0ICE9IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGZvciBpdGVy
YXRpb24gIiArIGkgKyAiIGV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgYnV0IGdvdCAiICsgcmVz
dWx0OworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9ub3QtY2Vs
bC11c2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9ub3QtY2VsbC11c2UuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL25vdC1jZWxsLXVzZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI5
IEBACitmdW5jdGlvbiBmb28oYSwgYiwgYykgeworICAgIHJldHVybiAoYXwwKSArIChifDApICsg
KGN8MCk7Cit9CisKK2Z1bmN0aW9uIGJhcihvKSB7CisgICAgdmFyIGEgPSBvLmY7CisgICAgdmFy
IGIgPSBvLmc7CisgICAgdmFyIGMgPSBvLmg7CisgICAgdmFyIGQgPSBvLmk7CisgICAgdmFyIGUg
PSBvLmo7CisgICAgdmFyIGYgPSBvLms7CisgICAgdmFyIGcgPSBvLmw7CisgICAgcmV0dXJuIGZv
byg0Miwgdm9pZCAwLCB2b2lkIDApICsgYSArIGIgKyBjICsgZCArIGUgKyBmICsgZzsKK30KKwor
bm9JbmxpbmUoZm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gYmFyKHsKKyAgICAgICAgZjppICogMywgZzpp
IC0gMSwgaDooaSAvIDIpfDAsIGk6LWksIGo6MTMgKyAoKGkgLyA1KXwwKSwgazoxNCAtICgoaSAv
IDYpfDApLAorICAgICAgICBsOjEgLSBpfSk7CisgICAgCisgICAgdmFyIGV4cGVjdGVkID0gNDIg
KyBpICogMyArIGkgLSAxICsgKChpIC8gMil8MCkgLSBpICsgMTMgKyAoKGkgLyA1KXwwKSArIDE0
IC0KKyAgICAgICAgKChpIC8gNil8MCkgKyAxIC0gaTsKKyAgICAKKyAgICBpZiAocmVzdWx0ICE9
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGZvciBpdGVyYXRpb24gIiArIGkgKyAi
IGV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgYnV0IGdvdCAiICsgcmVzdWx0OworfQpJbmRleDog
U291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDEtMjggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBh
cHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5jaAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzYzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlcyBmcm9tIGh0dHA6
Ly9zdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC9icmFuY2hlcy9qc0NTdGFjaworCiAy
MDE0LTAxLTI4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWN0dWFsbHkgdHVybiBzdGFjayBzdGF0cyBiYWNrIG9mZi4KSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL0JhZ1RvSGFzaE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0JhZ1RvSGFz
aE1hcC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvV1RGL3d0Zi9CYWdUb0hhc2hNYXAu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotdGVt
cGxhdGU8dHlwZW5hbWUgRWxlbWVudFR5cGUsIHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1lIEtl
eUdldHRlckZ1bmN0b3I+Ci12b2lkIHRvSGFzaE1hcChCYWc8RWxlbWVudFR5cGU+JiBiYWcsIEtl
eUdldHRlckZ1bmN0b3ImIGdldEtleSwgSGFzaE1hcDxLZXlUeXBlLCBFbGVtZW50VHlwZSo+JiBy
ZXN1bHQpCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbGVtZW50VHlwZSwgdHlwZW5hbWUgS2V5VHlwZSwg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5R2V0dGVyRnVuY3Rvcj4KK3ZvaWQgdG9IYXNo
TWFwKEJhZzxFbGVtZW50VHlwZT4mIGJhZywgS2V5R2V0dGVyRnVuY3RvciYgZ2V0S2V5LCBIYXNo
TWFwPEtleVR5cGUsIEVsZW1lbnRUeXBlKiwgSGFzaEFyZz4mIHJlc3VsdCkKIHsKICAgICBmb3Ig
KHR5cGVuYW1lIEJhZzxFbGVtZW50VHlwZT46Oml0ZXJhdG9yIGl0ZXIgPSBiYWcuYmVnaW4oKTsg
ISFpdGVyOyArK2l0ZXIpIHsKICAgICAgICAgRWxlbWVudFR5cGUqIGVsZW1lbnQgPSAqaXRlcjsK
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtNjYwLDEyICs2NjAsMTIgQEAKICNkZWZpbmUgRU5B
QkxFX0pJVCAwCiAjZW5kaWYKIAotLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24g
YWxsIHg4NiwgeDg2LTY0LCBBUk0gJiBNSVBTIHBsYXRmb3JtcyBleGNlcHQgV2luNjQuICovCisv
KiBUaGUgSklUIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LCB4ODYtNjQsIEFSTSAm
IE1JUFMgcGxhdGZvcm1zIGV4Y2VwdCBXaW5kb3dzLiAqLwogI2lmICFkZWZpbmVkKEVOQUJMRV9K
SVQpIFwKICAgICAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTSkgfHwgQ1BV
KEFSTTY0KSB8fCBDUFUoTUlQUykpIFwKICAgICAmJiAoT1MoREFSV0lOKSB8fCAhQ09NUElMRVIo
R0NDKSB8fCBHQ0NfVkVSU0lPTl9BVF9MRUFTVCg0LCAxLCAwKSkgXAogICAgICYmICFPUyhXSU5D
RSkgXAotICAgICYmICEoT1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82NCkpCisgICAgJiYgIU9TKFdJ
TkRPV1MpCiAjZGVmaW5lIEVOQUJMRV9KSVQgMQogI2VuZGlmCiAKQEAgLTgzNSwxNCArODM1LDYg
QEAKICNlbmRpZgogI2VuZGlmCiAKLS8qIEZJWE1FOiBXZSBjdXJyZW50bHkgdW5jb25kaXRpb25h
bGx5IHVzZSBzcGVhcmF0ZSBzdGFja3MuIFdoZW4gd2Ugc3dpdGNoIHRvIHVzaW5nIHRoZQotICAg
QyBzdGFjayBmb3IgSlMgZnJhbWVzLCB3ZSdsbCBuZWVkIHRvIG1ha2UgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25hbCBvbiBFTkFCTEUoTExJTlRfQ0xPT1ApCi0gICBvbmx5LgotKi8KLSNpZiBFTkFC
TEUoTExJTlRfQ0xPT1ApIHx8IDEKLSNkZWZpbmUgV1RGX1VTRV9TRVBBUkFURV9DX0FORF9KU19T
VEFDSyAxCi0jZW5kaWYKLQogLyogUGljayB3aGljaCBhbGxvY2F0b3IgdG8gdXNlOyB3ZSBvbmx5
IG5lZWQgYW4gZXhlY3V0YWJsZSBhbGxvY2F0b3IgaWYgdGhlIGFzc2VtYmxlciBpcyBjb21waWxl
ZCBpbi4KICAgIE9uIHg4Ni02NCB3ZSB1c2UgYSBzaW5nbGUgZml4ZWQgbW1hcCwgb24gb3RoZXIg
cGxhdGZvcm1zIHdlIG1tYXAgb24gZGVtYW5kLiAqLwogI2lmIEVOQUJMRShBU1NFTUJMRVIpCklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1N0YWNrQm91bmRzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9XVEYvd3Rm
L1N0YWNrQm91bmRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDggQEAKICNpZm5kZWYg
U3RhY2tCb3VuZHNfaAogI2RlZmluZSBTdGFja0JvdW5kc19oCiAKKyNpbmNsdWRlIDxhbGdvcml0
aG0+CisKIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBTdGFja0JvdW5kcyB7CkBAIC02Nyw2ICs2
OSwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjaGFyKj4obV9ib3Vu
ZCkgLSBtaW5BdmFpbGFibGVEZWx0YTsKICAgICB9CiAKKyAgICB2b2lkKiByZWN1cnNpb25MaW1p
dChzaXplX3QgaG9zdFpvbmVTaXplLCB2b2lkKiBkZXNpcmVkTGltaXQpIGNvbnN0CisgICAgewor
ICAgICAgICBjaGVja0NvbnNpc3RlbmN5KCk7CisgICAgICAgIGlmIChpc0dyb3dpbmdEb3dud2Fy
ZCgpKSB7CisgICAgICAgICAgICBjaGFyKiBlbmRPZlN0YWNrV2l0aEhvc3Rab25lID0gcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4obV9ib3VuZCkgKyBob3N0Wm9uZVNpemU7CisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjptYXgoZGVzaXJlZExpbWl0LCByZWludGVycHJldF9jYXN0PHZvaWQqPihlbmRP
ZlN0YWNrV2l0aEhvc3Rab25lKSk7CisgICAgICAgIH0KKyAgICAgICAgY2hhciogZW5kT2ZTdGFj
a1dpdGhIb3N0Wm9uZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fYm91bmQpIC0gaG9zdFpv
bmVTaXplOworICAgICAgICByZXR1cm4gc3RkOjptaW4oZGVzaXJlZExpbWl0LCByZWludGVycHJl
dF9jYXN0PHZvaWQqPihlbmRPZlN0YWNrV2l0aEhvc3Rab25lKSk7CisgICAgfQorCiAgICAgYm9v
bCBpc0dyb3dpbmdEb3dud2FyZCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9vcmln
aW4gJiYgbV9ib3VuZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAx
NC0wMS0yOCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KKworICAgICAgICBN
ZXJnZSB0aGUganNDU3RhY2sgYnJhbmNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjc3NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDaGFuZ2VzIGZyb20gaHR0cDovL3N2bi53ZWJraXQub3JnL3JlcG9z
aXRvcnkvd2Via2l0L2JyYW5jaGVzL2pzQ1N0YWNrCisKIDIwMTQtMDEtMjggIFZpYXRjaGVzbGF2
IE9zdGFwZW5rbyAgPHNsLm9zdGFwZW5rb0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBTdGlja3kg
cG9zaXRpb25pbmcgaXMgYnJva2VuIGZvciB0YWJsZSByb3dzCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTE4NTEyLDYgKzE4NTEyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcQ29uc3RydWN0RGF0YS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxEYXRlSW5zdGFu
Y2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1
bnRpbWVcRXJyb3IuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdI
ZWFkZXJzXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9yUHJvdG90eXBlLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEV4
Y2VwdGlvbkhlbHBlcnMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcRXhlY3V0YWJsZS5oIiAvPgpJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2
aXNpb24gMTYyOTYxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUxMCw2ICsxMjUxMCw5IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9y
LmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVh
ZGVyc1xydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2Fy
ZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxFcnJvclByb3RvdHlw
ZS5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAj
aW5jbHVkZSA8aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaD4KICNpbmNsdWRlIDxydW50aW1lL0Rh
dGVJbnN0YW5jZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRlIDxydW50
aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhjZXB0aW9uSGVs
cGVycy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNGdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CkBAIC0xNTQsNyArMTU1LDcgQEAgdm9pZCByZXBvcnRFeGNlcHRpb24oRXhl
Y1N0YXRlKiBleGVjLCBKUwogICAgIGlmIChpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24o
ZXhjZXB0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW50ZXJwcmV0ZXI6OkVycm9ySGFu
ZGxpbmdNb2RlIG1vZGUoZXhlYyk7CisgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUo
ZXhlYy0+dm0oKSk7CiAKICAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3Jl
YXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4Y2VwdGlvbihleGVjLCBleGNlcHRpb24sIFNjcmlwdENh
bGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSkpOwogICAgIGV4ZWMtPmNsZWFyRXhj
ZXB0aW9uKCk7CkluZGV4OiBUb29scy9TY3JpcHRzL2Rpc3BsYXktcHJvZmlsZXItb3V0cHV0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxlci1vdXRwdXQJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFRvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxlci1vdXRwdXQJKHdv
cmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBydWJ5CiAKLSMgQ29w
eXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDM3LDcgKzQzNywxMSBAQCAk
Y29tcGlsYXRpb25zID0gJGpzb25bImNvbXBpbGF0aW9ucyJdLm1hCiAgICAgfCBzdWJKc29uIHwK
ICAgICBDb21waWxhdGlvbi5uZXcoc3ViSnNvbikKIH0KLSRlbmdpbmVzID0gWyJCYXNlbGluZSIs
ICJERkciXQorJGVuZ2luZXMgPSBbIkJhc2VsaW5lIiwgIkRGRyIsICJGVEwiLCAiRlRMRm9yT1NS
RW50cnkiXQorCitkZWYgaXNPcHRpbWl6aW5nKGVuZ2luZSkKKyAgICBlbmdpbmUgPT0gIkRGRyIg
b3IgZW5naW5lID09ICJGVEwiIG9yIGVuZ2luZSA9PSAiRlRMRm9yT1NSRW50cnkiCitlbmQKIAog
JHNob3dDb3VudHMgPSB0cnVlCiAkc29ydE1vZGUgPSA6dGltZQpAQCAtNTcyLDkgKzU3Niw5IEBA
IGRlZiBzdW1tYXJ5KG1vZGUpCiAgICAgaWYgbW9kZSA9PSA6ZnVsbAogICAgICAgICBwcmludCgi
ICIgKyAoIiAiICogaW5zdHJ1Y3Rpb25Db3VudENvbHMpKQogICAgIGVuZAotICAgIHByaW50KCIg
IiArIGNlbnRlcigiQmFzZS9ERkciLCBjb3VudENvbHMpKQorICAgIHByaW50KCIgIiArIGNlbnRl
cigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIGNvdW50Q29scykpCiAgICAgaWYgbW9kZSA9PSA6ZnVs
bAotICAgICAgICBwcmludCgiICIgKyBjZW50ZXIoIkJhc2UvREZHIiwgbWFjaGluZUNvdW50Q29s
cykpCisgICAgICAgIHByaW50KCIgIiArIGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIG1h
Y2hpbmVDb3VudENvbHMpKQogICAgICAgICBwcmludCgiICIgKyAoIiAiICogY29tcGlsYXRpb25z
Q29scykpCiAgICAgICAgIHByaW50KCIgIiArIGNlbnRlcigiU3JjL1RvdGFsIiwgaW5saW5lc0Nv
bHMpKQogICAgICAgICBwcmludCgiICIgKyAoIiAiICogZXhpdENvdW50Q29scykpCkBAIC02NzQs
NyArNjc4LDcgQEAgZGVmIGV4ZWN1dGVDb21tYW5kKCpjb21tYW5kQXJyYXkpCiAgICAgICAgICAg
ICBpZiAkc2hvd0NvdW50cwogICAgICAgICAgICAgICAgIHB1dHMoY2VudGVyKCJTb3VyY2UgQ291
bnRzIiwgY291bnRDb2xzKSArICIgIiArIGNlbnRlcigiTWFjaGluZSBDb3VudHMiLCBtYWNoaW5l
Q29scykgKwogICAgICAgICAgICAgICAgICAgICAgKCIgIiAqIHBhZCkgKyBjZW50ZXIoIkJ5dGVj
b2RlIGZvciAje2J5dGVjb2Rlc30iLCBzY3JlZW5XaWR0aCAtIHBhZCAtIGNvdW50Q29scyAtIDEg
LSBtYWNoaW5lQ29scykpCi0gICAgICAgICAgICAgICAgcHV0cyhjZW50ZXIoIkJhc2UvREZHIiwg
Y291bnRDb2xzKSArICIgIiArIGNlbnRlcigiQmFzZS9ERkciLCBjb3VudENvbHMpKQorICAgICAg
ICAgICAgICAgIHB1dHMoY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgY291bnRDb2xzKSAr
ICIgIiArIGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIGNvdW50Q29scykpCiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcHV0cygiQnl0ZWNvZGUgZm9yICN7Ynl0ZWNvZGVz
fToiKQogICAgICAgICAgICAgZW5kCkBAIC04OTQsNyArODk4LDcgQEAgZGVmIGV4ZWN1dGVDb21t
YW5kKCpjb21tYW5kQXJyYXkpCiAgICAgICAgICAgICBwdXRzKCJDb21waWxhdGlvbiAje2NvbXBp
bGF0aW9ufToiKQogICAgICAgICAgICAgaWYgJHNob3dDb3VudHMKICAgICAgICAgICAgICAgICBw
dXRzKGNlbnRlcigiQWN0dWFsIENvdW50cyIsIGFjdHVhbENvdW50Q29scykgKyAiICIgKyBjZW50
ZXIoIlNvdXJjZSBDb3VudHMiLCBzb3VyY2VDb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJEaXNh
c3NlbWJseSBpbiAje2NvbXBpbGF0aW9uLmVuZ2luZX0iLCBzY3JlZW5XaWR0aCAtIDEgLSBzb3Vy
Y2VDb3VudENvbHMgLSAxIC0gYWN0dWFsQ291bnRDb2xzKSkKLSAgICAgICAgICAgICAgICBwdXRz
KCgiICIgKiBhY3R1YWxDb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RGRyIsIHNvdXJj
ZUNvdW50Q29scykpCisgICAgICAgICAgICAgICAgcHV0cygoIiAiICogYWN0dWFsQ291bnRDb2xz
KSArICIgIiArIGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIsIHNvdXJjZUNvdW50Q29scykp
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcHV0cygiRGlzYXNzZW1ibHkgaW4g
I3tjb21waWxhdGlvbi5lbmdpbmV9IikKICAgICAgICAgICAgIGVuZApAQCAtOTA1LDExICs5MDks
MTUgQEAgZGVmIGV4ZWN1dGVDb21tYW5kKCpjb21tYW5kQXJyYXkpCiAgICAgICAgICAgICAgICAg
fCBkZXNjcmlwdGlvbiB8CiAgICAgICAgICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUg
YSBiZXR0ZXIgd2F5IG9mIGRldGVjdGluZyB0aGluZ3MgbGlrZSBDb3VudEV4ZWN1dGlvbiBub2Rl
cwogICAgICAgICAgICAgICAgICMgYW5kIHNsb3cgcGF0aCBlbnRyaWVzIGluIHRoZSBiYXNlbGlu
ZSBKSVQuCi0gICAgICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24uZGVzY3JpcHRpb24gPX4gL0Nv
dW50RXhlY3V0aW9uXCgvIGFuZCBjb21waWxhdGlvbi5lbmdpbmUgPT0gIkRGRyIKKyAgICAgICAg
ICAgICAgICBpZiBkZXNjcmlwdGlvbi5kZXNjcmlwdGlvbiA9fiAvQ291bnRFeGVjdXRpb25cKC8g
YW5kIGlzT3B0aW1pemluZyhjb21waWxhdGlvbi5lbmdpbmUpCiAgICAgICAgICAgICAgICAgICAg
IHNob3VsZFNob3cgPSBmYWxzZQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkU2hvdyA9IHRydWUKICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAg
ICAgICBpZiBub3QgZGVzY3JpcHRpb24ub3JpZ2luLmVtcHR5PyBhbmQgbm90IGRlc2NyaXB0aW9u
Lm9yaWdpblstMV0KKyAgICAgICAgICAgICAgICAgICAgcCBkZXNjcmlwdGlvbi5vcmlnaW4KKyAg
ICAgICAgICAgICAgICAgICAgcCBkZXNjcmlwdGlvbi5kZXNjcmlwdGlvbgorICAgICAgICAgICAg
ICAgIGVuZAogICAgICAgICAgICAgICAgIGlmIGRlc2NyaXB0aW9uLm9yaWdpbi5lbXB0eT8gb3Ig
bm90IGRlc2NyaXB0aW9uLm9yaWdpblstMV0uc2hvdWxkSGF2ZUNvdW50cz8gb3IgKGNvbXBpbGF0
aW9uLmVuZ2luZSA9PSAiQmFzZWxpbmUiIGFuZCBkZXNjcmlwdGlvbi5kZXNjcmlwdGlvbiA9fiAv
XlxzKlwoU1wpLykKICAgICAgICAgICAgICAgICAgICAgYWN0dWFsQ291bnRzU3RyaW5nID0gIiIK
ICAgICAgICAgICAgICAgICAgICAgc291cmNlQ291bnRzU3RyaW5nID0gIiIKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy9ydW4tanNjLXN0cmVzcy10ZXN0cwkocmV2aXNpb24gMTYyOTYxKQorKysgVG9vbHMvU2NyaXB0
cy9ydW4tanNjLXN0cmVzcy10ZXN0cwkod29ya2luZyBjb3B5KQpAQCAtMTgwLDYgKzE4MCw4IEBA
ICRudW1GYWlsdXJlcyA9IDAKIAogRUFHRVJfT1BUSU9OUyA9IFsiLS10aHJlc2hvbGRGb3JKSVRB
ZnRlcldhcm1VcD0xMCIsICItLXRocmVzaG9sZEZvckpJVFNvb249MTAiLCAiLS10aHJlc2hvbGRG
b3JPcHRpbWl6ZUFmdGVyV2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxv
bmdXYXJtVXA9MjAiLCAiLS10aHJlc2hvbGRGb3JPcHRpbWl6ZVNvb249MjAiLCAiLS10aHJlc2hv
bGRGb3JGVExPcHRpbWl6ZUFmdGVyV2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9yRlRMT3B0aW1p
emVTb29uPTIwIl0KIAorRlRMX09QVElPTlMgPSBbIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUi
LCAiLS1lbmFibGVFeHBlcmltZW50YWxGVExDb3ZlcmFnZT10cnVlIl0KKwogJHJ1bmxpc3QgPSBb
XQogCiBkZWYgZnJhbWV3b3JrRnJvbUpTQ1BhdGgoanNjUGF0aCkKQEAgLTUzMiwxOSArNTM0LDE5
IEBAIGRlZiBydW5Ob0NKSVRWYWxpZGF0ZVBoYXNlcwogZW5kCiAKIGRlZiBydW5EZWZhdWx0RlRM
Ci0gICAgcnVuKCJkZWZhdWx0LWZ0bCIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIikKKyAg
ICBydW4oImRlZmF1bHQtZnRsIiwgKkZUTF9PUFRJT05TKQogZW5kCiAKIGRlZiBydW5GVExOb0NK
SVQKLSAgICBydW4oImZ0bC1uby1jaml0IiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIs
ICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIikKKyAgICBydW4oImZ0bC1uby1jaml0IiwgIi0t
ZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICpGVExfT1BUSU9OUykKIGVuZAogCiBkZWYgcnVu
RlRMTm9DSklUVmFsaWRhdGUKLSAgICBydW4oImZ0bC1uby1jaml0LXZhbGlkYXRlIiwgIi0tZW5h
YmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwgIi0t
dmFsaWRhdGVHcmFwaD10cnVlIikKKyAgICBydW4oImZ0bC1uby1jaml0LXZhbGlkYXRlIiwgIi0t
ZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICpGVExf
T1BUSU9OUykKIGVuZAogCiBkZWYgcnVuRlRMTm9DSklUT1NSVmFsaWRhdGlvbgotICAgIHJ1bigi
ZnRsLW5vLWNqaXQtb3NyLXZhbGlkYXRpb24iLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNl
IiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiLCAiLS12YWxpZGF0ZUZUTE9TUkV4aXRMaXZl
bmVzcz10cnVlIikKKyAgICBydW4oImZ0bC1uby1jaml0LW9zci12YWxpZGF0aW9uIiwgIi0tZW5h
YmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlRlRMT1NSRXhpdExpdmVuZXNzPXRy
dWUiLCAqRlRMX09QVElPTlMpCiBlbmQKIAogZGVmIHJ1bkRGR0VhZ2VyCkBAIC01NTYsMTUgKzU1
OCwxNSBAQCBkZWYgcnVuREZHRWFnZXJOb0NKSVRWYWxpZGF0ZQogZW5kCiAKIGRlZiBydW5GVExF
YWdlcgotICAgIHJ1bigiZnRsLWVhZ2VyIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiLCAq
RUFHRVJfT1BUSU9OUykKKyAgICBydW4oImZ0bC1lYWdlciIsICooRlRMX09QVElPTlMgKyBFQUdF
Ul9PUFRJT05TKSkKIGVuZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRWYWxpZGF0ZQotICAgIHJ1
bigiZnRsLWVhZ2VyLW5vLWNqaXQiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIsICItLWVu
YWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUdyYXBoPXRydWUiLCAqRUFHRVJf
T1BUSU9OUykKKyAgICBydW4oImZ0bC1lYWdlci1uby1jaml0IiwgIi0tZW5hYmxlQ29uY3VycmVu
dEpJVD1mYWxzZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBFQUdF
Ul9PUFRJT05TKSkKIGVuZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRPU1JWYWxpZGF0aW9uCi0g
ICAgcnVuKCJmdGwtZWFnZXItbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLXVzZUV4cGVyaW1l
bnRhbEZUTD10cnVlIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRl
RlRMT1NSRXhpdExpdmVuZXNzPXRydWUiLCAqRUFHRVJfT1BUSU9OUykKKyAgICBydW4oImZ0bC1l
YWdlci1uby1jaml0LW9zci12YWxpZGF0aW9uIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxz
ZSIsICItLXZhbGlkYXRlRlRMT1NSRXhpdExpdmVuZXNzPXRydWUiLCAqKEZUTF9PUFRJT05TICsg
RUFHRVJfT1BUSU9OUykpCiBlbmQKIAogZGVmIHJ1bkFsd2F5c1RyaWdnZXJDb3B5UGhhc2UKQEAg
LTY0NiwxMyArNjQ4LDM0IEBAIGRlZiBydW5MYXlvdXRUZXN0REZHRWFnZXJOb0NKSVQKICAgICBy
dW5MYXlvdXRUZXN0KCJkZmctZWFnZXItbm8tY2ppdCIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9
ZmFsc2UiLCAqRUFHRVJfT1BUSU9OUykKIGVuZAogCi1kZWYgZGVmYXVsdFJ1bkxheW91dFRlc3QK
K2RlZiBydW5MYXlvdXRUZXN0RGVmYXVsdEZUTAorICAgIHJ1bkxheW91dFRlc3QoImZ0bCIsICIt
LXRlc3RUaGVGVEw9dHJ1ZSIsICpGVExfT1BUSU9OUykKK2VuZAorCitkZWYgcnVuTGF5b3V0VGVz
dEZUTE5vQ0pJVAorICAgIHJ1bkxheW91dFRlc3QoImZ0bC1uby1jaml0IiwgIi0tdGVzdFRoZUZU
TD10cnVlIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICpGVExfT1BUSU9OUykKK2Vu
ZAorCitkZWYgcnVuTGF5b3V0VGVzdEZUTEVhZ2VyTm9DSklUCisgICAgcnVuTGF5b3V0VGVzdCgi
ZnRsLWVhZ2VyLW5vLWNqaXQiLCAiLS10ZXN0VGhlRlRMPXRydWUiLCAiLS1lbmFibGVDb25jdXJy
ZW50SklUPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIEVBR0VSX09QVElPTlMpKQorZW5kCisKK2Rl
ZiBub0ZUTFJ1bkxheW91dFRlc3QKICAgICBydW5MYXlvdXRUZXN0RGVmYXVsdAogICAgIHJ1bkxh
eW91dFRlc3ROb0xMSW50CiAgICAgcnVuTGF5b3V0VGVzdE5vQ0pJVAogICAgIHJ1bkxheW91dFRl
c3RERkdFYWdlck5vQ0pJVAogZW5kCiAKK2RlZiBkZWZhdWx0UnVuTGF5b3V0VGVzdAorICAgIG5v
RlRMUnVuTGF5b3V0VGVzdAorICAgIGlmICRlbmFibGVGVEwKKyAgICAgICAgcnVuTGF5b3V0VGVz
dERlZmF1bHRGVEwKKyAgICAgICAgcnVuTGF5b3V0VGVzdEZUTE5vQ0pJVAorICAgICAgICBydW5M
YXlvdXRUZXN0RlRMRWFnZXJOb0NKSVQKKyAgICBlbmQKK2VuZAorCiBkZWYgcHJlcGFyZUV4dHJh
UmVsYXRpdmVGaWxlcyhleHRyYUZpbGVzLCBkZXN0aW5hdGlvbikKICAgICBEaXIuY2hkaXIoJG91
dHB1dERpcikgewogICAgICAgICBleHRyYUZpbGVzLmVhY2ggewpAQCAtNzA2LDYgKzcyOSwxMCBA
QCBkZWYgcnVuTW96aWxsYVRlc3REZWZhdWx0KG1vZGUsICpleHRyYUZpCiAgICAgcnVuTW96aWxs
YVRlc3QobmlsLCBtb2RlLCBleHRyYUZpbGVzKQogZW5kCiAKK2RlZiBydW5Nb3ppbGxhVGVzdERl
ZmF1bHRGVEwobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgcnVuTW96aWxsYVRlc3QoImZ0bCIsIG1v
ZGUsIGV4dHJhRmlsZXMsICpGVExfT1BUSU9OUykKK2VuZAorCiBkZWYgcnVuTW96aWxsYVRlc3RM
TEludChtb2RlLCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVzdCgibGxpbnQiLCBtb2Rl
LCBleHRyYUZpbGVzLCAiLS11c2VKSVQ9ZmFsc2UiKQogZW5kCkBAIC03MTgsMTEgKzc0NSwxOSBA
QCBkZWYgcnVuTW96aWxsYVRlc3RERkdFYWdlck5vQ0pJVFZhbGlkYXRlCiAgICAgcnVuTW96aWxs
YVRlc3QoImRmZy1lYWdlci1uby1jaml0LXZhbGlkYXRlLXBoYXNlcyIsIG1vZGUsIGV4dHJhRmls
ZXMsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUJ5dGVjb2RlPXRy
dWUiLCAiLS12YWxpZGF0ZUdyYXBoQXRFYWNoUGhhc2U9dHJ1ZSIsICpFQUdFUl9PUFRJT05TKQog
ZW5kCiAKK2RlZiBydW5Nb3ppbGxhVGVzdEZUTEVhZ2VyTm9DSklUVmFsaWRhdGVQaGFzZXMobW9k
ZSwgKmV4dHJhRmlsZXMpCisgICAgcnVuTW96aWxsYVRlc3QoImZ0bC1lYWdlci1uby1jaml0LXZh
bGlkYXRlLXBoYXNlcyIsIG1vZGUsIGV4dHJhRmlsZXMsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9
ZmFsc2UiLCAiLS12YWxpZGF0ZUJ5dGVjb2RlPXRydWUiLCAiLS12YWxpZGF0ZUdyYXBoQXRFYWNo
UGhhc2U9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBFQUdFUl9PUFRJT05TKSkKK2VuZAorCiBkZWYg
ZGVmYXVsdFJ1bk1vemlsbGFUZXN0KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFU
ZXN0RGVmYXVsdChtb2RlLCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVzdExMSW50KG1v
ZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0QmFzZWxpbmVKSVQobW9kZSwgKmV4
dHJhRmlsZXMpCiAgICAgcnVuTW96aWxsYVRlc3RERkdFYWdlck5vQ0pJVFZhbGlkYXRlUGhhc2Vz
KG1vZGUsICpleHRyYUZpbGVzKQorICAgIGlmICRlbmFibGVGVEwKKyAgICAgICAgcnVuTW96aWxs
YVRlc3REZWZhdWx0RlRMKG1vZGUsICpleHRyYUZpbGVzKQorICAgICAgICBydW5Nb3ppbGxhVGVz
dEZUTEVhZ2VyTm9DSklUVmFsaWRhdGVQaGFzZXMobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgZW5k
CiBlbmQKIAogZGVmIHNraXAKSW5kZXg6IExheW91dFRlc3RzL2pzL2xhcmdlLWV4cHJlc3Npb25z
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9sYXJnZS1leHByZXNz
aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2Mjk2MSkKKysrIExheW91dFRlc3RzL2pzL2xh
cmdlLWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDYg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiBQQVNTIGV2YWwo
cmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDApKSBpcyByZXBlYXRlZFN0cmlu
ZygiYSIsIDEwMCkKIFBBU1MgZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIs
IDEwMDApKSBpcyByZXBlYXRlZFN0cmluZygiYSIsIDEwMDApCi1QQVNTIGV2YWwocmVwZWF0ZWRF
eHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMCkpIGlzIHJlcGVhdGVkU3RyaW5nKCJhIiwg
MTAwMDApCiBQQVNTIGV2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAw
MDApKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RlcGFu
b3ZfY29udGFpbmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3Mvc3RlcGFub3ZfY29u
dGFpbmVyCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlv
biB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVy
Lmh0bWwJKHJldmlzaW9uIDE2Mjk2MSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RlcGFu
b3ZfY29udGFpbmVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RlcGFub3ZfY29udGFpbmVyLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIuanMJKHJldmlzaW9u
IDE2Mjk2MSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0ZXBhbm92
X2NvbnRhaW5lci5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw2NDA0ICswLDAgQEAKLS8vQCBzbG93
IQotLy9AIHJ1bkRlZmF1bHQKLS8vQCBydW5EZWZhdWx0RlRMIGlmICRlbmFibGVGVEwKLQotLy8g
Tm90ZTogRm9yIG1heGltdW0tc3BlZWQgY29kZSwgc2VlICJPcHRpbWl6aW5nIENvZGUiIG9uIHRo
ZSBFbXNjcmlwdGVuIHdpa2ksIGh0dHBzOi8vZ2l0aHViLmNvbS9rcmlwa2VuL2Vtc2NyaXB0ZW4v
d2lraS9PcHRpbWl6aW5nLUNvZGUKLS8vIE5vdGU6IFNvbWUgRW1zY3JpcHRlbiBzZXR0aW5ncyBt
YXkgbGltaXQgdGhlIHNwZWVkIG9mIHRoZSBnZW5lcmF0ZWQgY29kZS4KLS8vIFRoZSBNb2R1bGUg
b2JqZWN0OiBPdXIgaW50ZXJmYWNlIHRvIHRoZSBvdXRzaWRlIHdvcmxkLiBXZSBpbXBvcnQKLS8v
IGFuZCBleHBvcnQgdmFsdWVzIG9uIGl0LCBhbmQgZG8gdGhlIHdvcmsgdG8gZ2V0IHRoYXQgdGhy
b3VnaAotLy8gY2xvc3VyZSBjb21waWxlciBpZiBuZWNlc3NhcnkuIFRoZXJlIGFyZSB2YXJpb3Vz
IHdheXMgTW9kdWxlIGNhbiBiZSB1c2VkOgotLy8gMS4gTm90IGRlZmluZWQuIFdlIGNyZWF0ZSBp
dCBoZXJlCi0vLyAyLiBBIGZ1bmN0aW9uIHBhcmFtZXRlciwgZnVuY3Rpb24oTW9kdWxlKSB7IC4u
Z2VuZXJhdGVkIGNvZGUuLiB9Ci0vLyAzLiBwcmUtcnVuIGFwcGVuZGVkIGl0LCB2YXIgTW9kdWxl
ID0ge307IC4uZ2VuZXJhdGVkIGNvZGUuLgotLy8gNC4gRXh0ZXJuYWwgc2NyaXB0IHRhZyBkZWZp
bmVzIHZhciBNb2R1bGUuCi0vLyBXZSBuZWVkIHRvIGRvIGFuIGV2YWwgaW4gb3JkZXIgdG8gaGFu
ZGxlIHRoZSBjbG9zdXJlIGNvbXBpbGVyCi0vLyBjYXNlLCB3aGVyZSB0aGlzIGNvZGUgaGVyZSBp
cyBtaW5pZmllZCBidXQgTW9kdWxlIHdhcyBkZWZpbmVkCi0vLyBlbHNld2hlcmUgKGUuZy4gY2Fz
ZSA0IGFib3ZlKS4gV2UgYWxzbyBuZWVkIHRvIGNoZWNrIGlmIE1vZHVsZQotLy8gYWxyZWFkeSBl
eGlzdHMgKGUuZy4gY2FzZSAzIGFib3ZlKS4KLS8vIE5vdGUgdGhhdCBpZiB5b3Ugd2FudCB0byBy
dW4gY2xvc3VyZSwgYW5kIGFsc28gdG8gdXNlIE1vZHVsZQotLy8gYWZ0ZXIgdGhlIGdlbmVyYXRl
ZCBjb2RlLCB5b3Ugd2lsbCBuZWVkIHRvIGRlZmluZSAgIHZhciBNb2R1bGUgPSB7fTsKLS8vIGJl
Zm9yZSB0aGUgY29kZS4gVGhlbiB0aGF0IG9iamVjdCB3aWxsIGJlIHVzZWQgaW4gdGhlIGNvZGUs
IGFuZCB5b3UKLS8vIGNhbiBjb250aW51ZSB0byB1c2UgTW9kdWxlIGFmdGVyd2FyZHMgYXMgd2Vs
bC4KLXZhciBNb2R1bGU7Ci1pZiAoIU1vZHVsZSkgTW9kdWxlID0gZXZhbCgnKGZ1bmN0aW9uKCkg
eyB0cnkgeyByZXR1cm4gTW9kdWxlIHx8IHt9IH0gY2F0Y2goZSkgeyByZXR1cm4ge30gfSB9KSgp
Jyk7Ci0vLyBTb21ldGltZXMgYW4gZXhpc3RpbmcgTW9kdWxlIG9iamVjdCBleGlzdHMgd2l0aCBw
cm9wZXJ0aWVzCi0vLyBtZWFudCB0byBvdmVyd3JpdGUgdGhlIGRlZmF1bHQgbW9kdWxlIGZ1bmN0
aW9uYWxpdHkuIEhlcmUKLS8vIHdlIGNvbGxlY3QgdGhvc2UgcHJvcGVydGllcyBhbmQgcmVhcHBs
eSBfYWZ0ZXJfIHdlIGNvbmZpZ3VyZQotLy8gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQncyBkZWZh
dWx0cyB0byBhdm9pZCBoYXZpbmcgdG8gYmUgc28KLS8vIGRlZmVuc2l2ZSBkdXJpbmcgaW5pdGlh
bGl6YXRpb24uCi12YXIgbW9kdWxlT3ZlcnJpZGVzID0ge307Ci1mb3IgKHZhciBrZXkgaW4gTW9k
dWxlKSB7Ci0gIGlmIChNb2R1bGUuaGFzT3duUHJvcGVydHkoa2V5KSkgewotICAgIG1vZHVsZU92
ZXJyaWRlc1trZXldID0gTW9kdWxlW2tleV07Ci0gIH0KLX0KLS8vIFRoZSBlbnZpcm9ubWVudCBz
ZXR1cCBjb2RlIGJlbG93IGlzIGN1c3RvbWl6ZWQgdG8gdXNlIE1vZHVsZS4KLS8vICoqKiBFbnZp
cm9ubWVudCBzZXR1cCBjb2RlICoqKgotdmFyIEVOVklST05NRU5UX0lTX05PREUgPSB0eXBlb2Yg
cHJvY2VzcyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbic7Ci12
YXIgRU5WSVJPTk1FTlRfSVNfV0VCID0gdHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCc7Ci12YXIg
RU5WSVJPTk1FTlRfSVNfV09SS0VSID0gdHlwZW9mIGltcG9ydFNjcmlwdHMgPT09ICdmdW5jdGlv
bic7Ci12YXIgRU5WSVJPTk1FTlRfSVNfU0hFTEwgPSAhRU5WSVJPTk1FTlRfSVNfV0VCICYmICFF
TlZJUk9OTUVOVF9JU19OT0RFICYmICFFTlZJUk9OTUVOVF9JU19XT1JLRVI7Ci1pZiAoRU5WSVJP
Tk1FTlRfSVNfTk9ERSkgewotICAvLyBFeHBvc2UgZnVuY3Rpb25hbGl0eSBpbiB0aGUgc2FtZSBz
aW1wbGUgd2F5IHRoYXQgdGhlIHNoZWxscyB3b3JrCi0gIC8vIE5vdGUgdGhhdCB3ZSBwb2xsdXRl
IHRoZSBnbG9iYWwgbmFtZXNwYWNlIGhlcmUsIG90aGVyd2lzZSB3ZSBicmVhayBpbiBub2RlCi0g
IE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9uKHgpIHsKLSAgICBwcm9jZXNzWydzdGRvdXQnXS53
cml0ZSh4ICsgJ1xuJyk7Ci0gIH07Ci0gIE1vZHVsZVsncHJpbnRFcnInXSA9IGZ1bmN0aW9uKHgp
IHsKLSAgICBwcm9jZXNzWydzdGRlcnInXS53cml0ZSh4ICsgJ1xuJyk7Ci0gIH07Ci0gIHZhciBu
b2RlRlMgPSByZXF1aXJlKCdmcycpOwotICB2YXIgbm9kZVBhdGggPSByZXF1aXJlKCdwYXRoJyk7
Ci0gIE1vZHVsZVsncmVhZCddID0gZnVuY3Rpb24oZmlsZW5hbWUsIGJpbmFyeSkgewotICAgIGZp
bGVuYW1lID0gbm9kZVBhdGhbJ25vcm1hbGl6ZSddKGZpbGVuYW1lKTsKLSAgICB2YXIgcmV0ID0g
bm9kZUZTWydyZWFkRmlsZVN5bmMnXShmaWxlbmFtZSk7Ci0gICAgLy8gVGhlIHBhdGggaXMgYWJz
b2x1dGUgaWYgdGhlIG5vcm1hbGl6ZWQgdmVyc2lvbiBpcyB0aGUgc2FtZSBhcyB0aGUgcmVzb2x2
ZWQuCi0gICAgaWYgKCFyZXQgJiYgZmlsZW5hbWUgIT0gbm9kZVBhdGhbJ3Jlc29sdmUnXShmaWxl
bmFtZSkpIHsKLSAgICAgIGZpbGVuYW1lID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJ3Ny
YycsIGZpbGVuYW1lKTsKLSAgICAgIHJldCA9IG5vZGVGU1sncmVhZEZpbGVTeW5jJ10oZmlsZW5h
bWUpOwotICAgIH0KLSAgICBpZiAocmV0ICYmICFiaW5hcnkpIHJldCA9IHJldC50b1N0cmluZygp
OwotICAgIHJldHVybiByZXQ7Ci0gIH07Ci0gIE1vZHVsZVsncmVhZEJpbmFyeSddID0gZnVuY3Rp
b24oZmlsZW5hbWUpIHsgcmV0dXJuIE1vZHVsZVsncmVhZCddKGZpbGVuYW1lLCB0cnVlKSB9Owot
ICBNb2R1bGVbJ2xvYWQnXSA9IGZ1bmN0aW9uKGYpIHsKLSAgICBnbG9iYWxFdmFsKHJlYWQoZikp
OwotICB9OwotICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gcHJvY2Vzc1snYXJndiddLnNsaWNlKDIp
OwotICBtb2R1bGUuZXhwb3J0cyA9IE1vZHVsZTsKLX0KLWVsc2UgaWYgKEVOVklST05NRU5UX0lT
X1NIRUxMKSB7Ci0gIE1vZHVsZVsncHJpbnQnXSA9IHByaW50OwotICBpZiAodHlwZW9mIHByaW50
RXJyICE9ICd1bmRlZmluZWQnKSBNb2R1bGVbJ3ByaW50RXJyJ10gPSBwcmludEVycjsgLy8gbm90
IHByZXNlbnQgaW4gdjggb3Igb2xkZXIgc20KLSAgaWYgKHR5cGVvZiByZWFkICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgTW9kdWxlWydyZWFkJ10gPSByZWFkOwotICB9IGVsc2UgewotICAgIE1vZHVs
ZVsncmVhZCddID0gZnVuY3Rpb24oKSB7IHRocm93ICdubyByZWFkKCkgYXZhaWxhYmxlIChqc2M/
KScgfTsKLSAgfQotICBNb2R1bGVbJ3JlYWRCaW5hcnknXSA9IGZ1bmN0aW9uKGYpIHsKLSAgICBy
ZXR1cm4gcmVhZChmLCAnYmluYXJ5Jyk7Ci0gIH07Ci0gIGlmICh0eXBlb2Ygc2NyaXB0QXJncyAh
PSAndW5kZWZpbmVkJykgewotICAgIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBzY3JpcHRBcmdzOwot
ICB9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudHMgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBNb2R1
bGVbJ2FyZ3VtZW50cyddID0gYXJndW1lbnRzOwotICB9Ci0gIHRoaXNbJ01vZHVsZSddID0gTW9k
dWxlOwotfQotZWxzZSBpZiAoRU5WSVJPTk1FTlRfSVNfV0VCIHx8IEVOVklST05NRU5UX0lTX1dP
UktFUikgewotICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKHVybCkgewotICAgIHZhciB4aHIg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub3BlbignR0VUJywgdXJsLCBmYWxzZSk7
Ci0gICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgcmV0dXJuIHhoci5yZXNwb25zZVRleHQ7Ci0gIH07
Ci0gIGlmICh0eXBlb2YgYXJndW1lbnRzICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgTW9kdWxlWydh
cmd1bWVudHMnXSA9IGFyZ3VtZW50czsKLSAgfQotICBpZiAoRU5WSVJPTk1FTlRfSVNfV0VCKSB7
Ci0gICAgTW9kdWxlWydwcmludCddID0gZnVuY3Rpb24oeCkgewotICAgICAgY29uc29sZS5sb2co
eCk7Ci0gICAgfTsKLSAgICBNb2R1bGVbJ3ByaW50RXJyJ10gPSBmdW5jdGlvbih4KSB7Ci0gICAg
ICBjb25zb2xlLmxvZyh4KTsKLSAgICB9OwotICAgIHRoaXNbJ01vZHVsZSddID0gTW9kdWxlOwot
ICB9IGVsc2UgaWYgKEVOVklST05NRU5UX0lTX1dPUktFUikgewotICAgIC8vIFdlIGNhbiBkbyB2
ZXJ5IGxpdHRsZSBoZXJlLi4uCi0gICAgdmFyIFRSWV9VU0VfRFVNUCA9IGZhbHNlOwotICAgIE1v
ZHVsZVsncHJpbnQnXSA9IChUUllfVVNFX0RVTVAgJiYgKHR5cGVvZihkdW1wKSAhPT0gInVuZGVm
aW5lZCIpID8gKGZ1bmN0aW9uKHgpIHsKLSAgICAgIGR1bXAoeCk7Ci0gICAgfSkgOiAoZnVuY3Rp
b24oeCkgewotICAgICAgLy8gc2VsZi5wb3N0TWVzc2FnZSh4KTsgLy8gZW5hYmxlIHRoaXMgaWYg
eW91IHdhbnQgc3Rkb3V0IHRvIGJlIHNlbnQgYXMgbWVzc2FnZXMKLSAgICB9KSk7Ci0gICAgTW9k
dWxlWydsb2FkJ10gPSBpbXBvcnRTY3JpcHRzOwotICB9Ci19Ci1lbHNlIHsKLSAgLy8gVW5yZWFj
aGFibGUgYmVjYXVzZSBTSEVMTCBpcyBkZXBlbmRhbnQgb24gdGhlIG90aGVycwotICB0aHJvdyAn
VW5rbm93biBydW50aW1lIGVudmlyb25tZW50LiBXaGVyZSBhcmUgd2U/JzsKLX0KLWZ1bmN0aW9u
IGdsb2JhbEV2YWwoeCkgewotICBldmFsLmNhbGwobnVsbCwgeCk7Ci19Ci1pZiAoIU1vZHVsZVsn
bG9hZCddID09ICd1bmRlZmluZWQnICYmIE1vZHVsZVsncmVhZCddKSB7Ci0gIE1vZHVsZVsnbG9h
ZCddID0gZnVuY3Rpb24oZikgewotICAgIGdsb2JhbEV2YWwoTW9kdWxlWydyZWFkJ10oZikpOwot
ICB9OwotfQotaWYgKCFNb2R1bGVbJ3ByaW50J10pIHsKLSAgTW9kdWxlWydwcmludCddID0gZnVu
Y3Rpb24oKXt9OwotfQotaWYgKCFNb2R1bGVbJ3ByaW50RXJyJ10pIHsKLSAgTW9kdWxlWydwcmlu
dEVyciddID0gTW9kdWxlWydwcmludCddOwotfQotaWYgKCFNb2R1bGVbJ2FyZ3VtZW50cyddKSB7
Ci0gIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBbXTsKLX0KLS8vICoqKiBFbnZpcm9ubWVudCBzZXR1
cCBjb2RlICoqKgotLy8gQ2xvc3VyZSBoZWxwZXJzCi1Nb2R1bGUucHJpbnQgPSBNb2R1bGVbJ3By
aW50J107Ci1Nb2R1bGUucHJpbnRFcnIgPSBNb2R1bGVbJ3ByaW50RXJyJ107Ci0vLyBDYWxsYmFj
a3MKLU1vZHVsZVsncHJlUnVuJ10gPSBbXTsKLU1vZHVsZVsncG9zdFJ1biddID0gW107Ci0vLyBN
ZXJnZSBiYWNrIGluIHRoZSBvdmVycmlkZXMKLWZvciAodmFyIGtleSBpbiBtb2R1bGVPdmVycmlk
ZXMpIHsKLSAgaWYgKG1vZHVsZU92ZXJyaWRlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7Ci0gICAg
TW9kdWxlW2tleV0gPSBtb2R1bGVPdmVycmlkZXNba2V5XTsKLSAgfQotfQotLy8gPT09IEF1dG8t
Z2VuZXJhdGVkIHByZWFtYmxlIGxpYnJhcnkgc3R1ZmYgPT09Ci0vLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS8vIFJ1bnRpbWUgY29kZSBzaGFyZWQgd2l0aCBjb21w
aWxlcgotLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci12YXIgUnVu
dGltZSA9IHsKLSAgc3RhY2tTYXZlOiBmdW5jdGlvbiAoKSB7Ci0gICAgcmV0dXJuIFNUQUNLVE9Q
OwotICB9LAotICBzdGFja1Jlc3RvcmU6IGZ1bmN0aW9uIChzdGFja1RvcCkgewotICAgIFNUQUNL
VE9QID0gc3RhY2tUb3A7Ci0gIH0sCi0gIGZvcmNlQWxpZ246IGZ1bmN0aW9uICh0YXJnZXQsIHF1
YW50dW0pIHsKLSAgICBxdWFudHVtID0gcXVhbnR1bSB8fCA0OwotICAgIGlmIChxdWFudHVtID09
IDEpIHJldHVybiB0YXJnZXQ7Ci0gICAgaWYgKGlzTnVtYmVyKHRhcmdldCkgJiYgaXNOdW1iZXIo
cXVhbnR1bSkpIHsKLSAgICAgIHJldHVybiBNYXRoLmNlaWwodGFyZ2V0L3F1YW50dW0pKnF1YW50
dW07Ci0gICAgfSBlbHNlIGlmIChpc051bWJlcihxdWFudHVtKSAmJiBpc1Bvd2VyT2ZUd28ocXVh
bnR1bSkpIHsKLSAgICAgIHZhciBsb2dnID0gbG9nMihxdWFudHVtKTsKLSAgICAgIHJldHVybiAn
KCgoKCcgK3RhcmdldCArICcpKycgKyAocXVhbnR1bS0xKSArICcpPj4nICsgbG9nZyArICcpPDwn
ICsgbG9nZyArICcpJzsKLSAgICB9Ci0gICAgcmV0dXJuICdNYXRoLmNlaWwoKCcgKyB0YXJnZXQg
KyAnKS8nICsgcXVhbnR1bSArICcpKicgKyBxdWFudHVtOwotICB9LAotICBpc051bWJlclR5cGU6
IGZ1bmN0aW9uICh0eXBlKSB7Ci0gICAgcmV0dXJuIHR5cGUgaW4gUnVudGltZS5JTlRfVFlQRVMg
fHwgdHlwZSBpbiBSdW50aW1lLkZMT0FUX1RZUEVTOwotICB9LAotICBpc1BvaW50ZXJUeXBlOiBm
dW5jdGlvbiBpc1BvaW50ZXJUeXBlKHR5cGUpIHsKLSAgcmV0dXJuIHR5cGVbdHlwZS5sZW5ndGgt
MV0gPT0gJyonOwotfSwKLSAgaXNTdHJ1Y3RUeXBlOiBmdW5jdGlvbiBpc1N0cnVjdFR5cGUodHlw
ZSkgewotICBpZiAoaXNQb2ludGVyVHlwZSh0eXBlKSkgcmV0dXJuIGZhbHNlOwotICBpZiAoaXNB
cnJheVR5cGUodHlwZSkpIHJldHVybiB0cnVlOwotICBpZiAoLzw/eyA/W159XSogP30+Py8udGVz
dCh0eXBlKSkgcmV0dXJuIHRydWU7IC8vIHsgaTMyLCBpOCB9IGV0Yy4gLSBhbm9ueW1vdXMgc3Ry
dWN0IHR5cGVzCi0gIC8vIFNlZSBjb21tZW50IGluIGlzU3RydWN0UG9pbnRlclR5cGUoKQotICBy
ZXR1cm4gdHlwZVswXSA9PSAnJSc7Ci19LAotICBJTlRfVFlQRVM6IHsiaTEiOjAsImk4IjowLCJp
MTYiOjAsImkzMiI6MCwiaTY0IjowfSwKLSAgRkxPQVRfVFlQRVM6IHsiZmxvYXQiOjAsImRvdWJs
ZSI6MH0sCi0gIG9yNjQ6IGZ1bmN0aW9uICh4LCB5KSB7Ci0gICAgdmFyIGwgPSAoeCB8IDApIHwg
KHkgfCAwKTsKLSAgICB2YXIgaCA9IChNYXRoLnJvdW5kKHggLyA0Mjk0OTY3Mjk2KSB8IE1hdGgu
cm91bmQoeSAvIDQyOTQ5NjcyOTYpKSAqIDQyOTQ5NjcyOTY7Ci0gICAgcmV0dXJuIGwgKyBoOwot
ICB9LAotICBhbmQ2NDogZnVuY3Rpb24gKHgsIHkpIHsKLSAgICB2YXIgbCA9ICh4IHwgMCkgJiAo
eSB8IDApOwotICAgIHZhciBoID0gKE1hdGgucm91bmQoeCAvIDQyOTQ5NjcyOTYpICYgTWF0aC5y
b3VuZCh5IC8gNDI5NDk2NzI5NikpICogNDI5NDk2NzI5NjsKLSAgICByZXR1cm4gbCArIGg7Ci0g
IH0sCi0gIHhvcjY0OiBmdW5jdGlvbiAoeCwgeSkgewotICAgIHZhciBsID0gKHggfCAwKSBeICh5
IHwgMCk7Ci0gICAgdmFyIGggPSAoTWF0aC5yb3VuZCh4IC8gNDI5NDk2NzI5NikgXiBNYXRoLnJv
dW5kKHkgLyA0Mjk0OTY3Mjk2KSkgKiA0Mjk0OTY3Mjk2OwotICAgIHJldHVybiBsICsgaDsKLSAg
fSwKLSAgZ2V0TmF0aXZlVHlwZVNpemU6IGZ1bmN0aW9uICh0eXBlLCBxdWFudHVtU2l6ZSkgewot
ICAgIGlmIChSdW50aW1lLlFVQU5UVU1fU0laRSA9PSAxKSByZXR1cm4gMTsKLSAgICB2YXIgc2l6
ZSA9IHsKLSAgICAgICclaTEnOiAxLAotICAgICAgJyVpOCc6IDEsCi0gICAgICAnJWkxNic6IDIs
Ci0gICAgICAnJWkzMic6IDQsCi0gICAgICAnJWk2NCc6IDgsCi0gICAgICAiJWZsb2F0IjogNCwK
LSAgICAgICIlZG91YmxlIjogOAotICAgIH1bJyUnK3R5cGVdOyAvLyBhZGQgJyUnIHNpbmNlIGZs
b2F0IGFuZCBkb3VibGUgY29uZnVzZSBDbG9zdXJlIGNvbXBpbGVyIGFzIGtleXMsIGFuZCBhbHNv
IHNwaWRlcm1vbmtleSBhcyBhIGNvbXBpbGVyIHdpbGwgcmVtb3ZlICdzIGZyb20gJ19pOCcgZXRj
Ci0gICAgaWYgKCFzaXplKSB7Ci0gICAgICBpZiAodHlwZS5jaGFyQXQodHlwZS5sZW5ndGgtMSkg
PT0gJyonKSB7Ci0gICAgICAgIHNpemUgPSBSdW50aW1lLlFVQU5UVU1fU0laRTsgLy8gQSBwb2lu
dGVyCi0gICAgICB9IGVsc2UgaWYgKHR5cGVbMF0gPT0gJ2knKSB7Ci0gICAgICAgIHZhciBiaXRz
ID0gcGFyc2VJbnQodHlwZS5zdWJzdHIoMSkpOwotICAgICAgICBhc3NlcnQoYml0cyAlIDggPT0g
MCk7Ci0gICAgICAgIHNpemUgPSBiaXRzLzg7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiBz
aXplOwotICB9LAotICBnZXROYXRpdmVGaWVsZFNpemU6IGZ1bmN0aW9uICh0eXBlKSB7Ci0gICAg
cmV0dXJuIE1hdGgubWF4KFJ1bnRpbWUuZ2V0TmF0aXZlVHlwZVNpemUodHlwZSksIFJ1bnRpbWUu
UVVBTlRVTV9TSVpFKTsKLSAgfSwKLSAgZGVkdXA6IGZ1bmN0aW9uIGRlZHVwKGl0ZW1zLCBpZGVu
dCkgewotICB2YXIgc2VlbiA9IHt9OwotICBpZiAoaWRlbnQpIHsKLSAgICByZXR1cm4gaXRlbXMu
ZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHsKLSAgICAgIGlmIChzZWVuW2l0ZW1baWRlbnRdXSkgcmV0
dXJuIGZhbHNlOwotICAgICAgc2VlbltpdGVtW2lkZW50XV0gPSB0cnVlOwotICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfSk7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcihmdW5j
dGlvbihpdGVtKSB7Ci0gICAgICBpZiAoc2VlbltpdGVtXSkgcmV0dXJuIGZhbHNlOwotICAgICAg
c2VlbltpdGVtXSA9IHRydWU7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9KTsKLSAgfQotfSwK
LSAgc2V0OiBmdW5jdGlvbiBzZXQoKSB7Ci0gIHZhciBhcmdzID0gdHlwZW9mIGFyZ3VtZW50c1sw
XSA9PT0gJ29iamVjdCcgPyBhcmd1bWVudHNbMF0gOiBhcmd1bWVudHM7Ci0gIHZhciByZXQgPSB7
fTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7Ci0gICAgcmV0W2Fy
Z3NbaV1dID0gMDsKLSAgfQotICByZXR1cm4gcmV0OwotfSwKLSAgU1RBQ0tfQUxJR046IDgsCi0g
IGdldEFsaWduU2l6ZTogZnVuY3Rpb24gKHR5cGUsIHNpemUsIHZhcmFyZykgewotICAgIC8vIHdl
IGFsaWduIGk2NHMgYW5kIGRvdWJsZXMgb24gNjQtYml0IGJvdW5kYXJpZXMsIHVubGlrZSB4ODYK
LSAgICBpZiAodHlwZSA9PSAnaTY0JyB8fCB0eXBlID09ICdkb3VibGUnIHx8IHZhcmFyZykgcmV0
dXJuIDg7Ci0gICAgaWYgKCF0eXBlKSByZXR1cm4gTWF0aC5taW4oc2l6ZSwgOCk7IC8vIGFsaWdu
IHN0cnVjdHVyZXMgaW50ZXJuYWxseSB0byA2NCBiaXRzCi0gICAgcmV0dXJuIE1hdGgubWluKHNp
emUgfHwgKHR5cGUgPyBSdW50aW1lLmdldE5hdGl2ZUZpZWxkU2l6ZSh0eXBlKSA6IDApLCBSdW50
aW1lLlFVQU5UVU1fU0laRSk7Ci0gIH0sCi0gIGNhbGN1bGF0ZVN0cnVjdEFsaWdubWVudDogZnVu
Y3Rpb24gY2FsY3VsYXRlU3RydWN0QWxpZ25tZW50KHR5cGUpIHsKLSAgICB0eXBlLmZsYXRTaXpl
ID0gMDsKLSAgICB0eXBlLmFsaWduU2l6ZSA9IDA7Ci0gICAgdmFyIGRpZmZzID0gW107Ci0gICAg
dmFyIHByZXYgPSAtMTsKLSAgICB2YXIgaW5kZXggPSAwOwotICAgIHR5cGUuZmxhdEluZGV4ZXMg
PSB0eXBlLmZpZWxkcy5tYXAoZnVuY3Rpb24oZmllbGQpIHsKLSAgICAgIGluZGV4Kys7Ci0gICAg
ICB2YXIgc2l6ZSwgYWxpZ25TaXplOwotICAgICAgaWYgKFJ1bnRpbWUuaXNOdW1iZXJUeXBlKGZp
ZWxkKSB8fCBSdW50aW1lLmlzUG9pbnRlclR5cGUoZmllbGQpKSB7Ci0gICAgICAgIHNpemUgPSBS
dW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKGZpZWxkKTsgLy8gcGFjayBjaGFyOyBjaGFyOyBpbiBz
dHJ1Y3RzLCBhbHNvIGNoYXJbWF1zLgotICAgICAgICBhbGlnblNpemUgPSBSdW50aW1lLmdldEFs
aWduU2l6ZShmaWVsZCwgc2l6ZSk7Ci0gICAgICB9IGVsc2UgaWYgKFJ1bnRpbWUuaXNTdHJ1Y3RU
eXBlKGZpZWxkKSkgewotICAgICAgICBpZiAoZmllbGRbMV0gPT09ICcwJykgewotICAgICAgICAg
IC8vIHRoaXMgaXMgWzAgeCBzb21ldGhpbmddLiBXaGVuIGluc2lkZSBhbm90aGVyIHN0cnVjdHVy
ZSBsaWtlIGhlcmUsIGl0IG11c3QgYmUgYXQgdGhlIGVuZCwKLSAgICAgICAgICAvLyBhbmQgaXQg
YWRkcyBubyBzaXplCi0gICAgICAgICAgLy8gWFhYIHRoaXMgaGFwcGVucyBpbiBqYXZhLW5ib2R5
IGZvciBleGFtcGxlLi4uIGFzc2VydChpbmRleCA9PT0gdHlwZS5maWVsZHMubGVuZ3RoLCAnemVy
by1sZW5ndGggaW4gdGhlIG1pZGRsZSEnKTsKLSAgICAgICAgICBzaXplID0gMDsKLSAgICAgICAg
ICBhbGlnblNpemUgPSB0eXBlLmFsaWduU2l6ZSB8fCBRVUFOVFVNX1NJWkU7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgc2l6ZSA9IFR5cGVzLnR5cGVzW2ZpZWxkXS5mbGF0U2l6ZTsKLSAg
ICAgICAgICBhbGlnblNpemUgPSBSdW50aW1lLmdldEFsaWduU2l6ZShudWxsLCBUeXBlcy50eXBl
c1tmaWVsZF0uYWxpZ25TaXplKTsKLSAgICAgICAgfQotICAgICAgfSBlbHNlIGlmIChmaWVsZFsw
XSA9PSAnYicpIHsKLSAgICAgICAgLy8gYk4sIGxhcmdlIG51bWJlciBmaWVsZCwgbGlrZSBhIFtO
IHggaThdCi0gICAgICAgIHNpemUgPSBmaWVsZC5zdWJzdHIoMSl8MDsKLSAgICAgICAgYWxpZ25T
aXplID0gMTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRocm93ICdVbmNsZWFyIHR5cGUgaW4g
c3RydWN0OiAnICsgZmllbGQgKyAnLCBpbiAnICsgdHlwZS5uYW1lXyArICcgOjogJyArIGR1bXAo
VHlwZXMudHlwZXNbdHlwZS5uYW1lX10pOwotICAgICAgfQotICAgICAgaWYgKHR5cGUucGFja2Vk
KSBhbGlnblNpemUgPSAxOwotICAgICAgdHlwZS5hbGlnblNpemUgPSBNYXRoLm1heCh0eXBlLmFs
aWduU2l6ZSwgYWxpZ25TaXplKTsKLSAgICAgIHZhciBjdXJyID0gUnVudGltZS5hbGlnbk1lbW9y
eSh0eXBlLmZsYXRTaXplLCBhbGlnblNpemUpOyAvLyBpZiBuZWNlc3NhcnksIHBsYWNlIHRoaXMg
b24gYWxpZ25lZCBtZW1vcnkKLSAgICAgIHR5cGUuZmxhdFNpemUgPSBjdXJyICsgc2l6ZTsKLSAg
ICAgIGlmIChwcmV2ID49IDApIHsKLSAgICAgICAgZGlmZnMucHVzaChjdXJyLXByZXYpOwotICAg
ICAgfQotICAgICAgcHJldiA9IGN1cnI7Ci0gICAgICByZXR1cm4gY3VycjsKLSAgICB9KTsKLSAg
ICB0eXBlLmZsYXRTaXplID0gUnVudGltZS5hbGlnbk1lbW9yeSh0eXBlLmZsYXRTaXplLCB0eXBl
LmFsaWduU2l6ZSk7Ci0gICAgaWYgKGRpZmZzLmxlbmd0aCA9PSAwKSB7Ci0gICAgICB0eXBlLmZs
YXRGYWN0b3IgPSB0eXBlLmZsYXRTaXplOwotICAgIH0gZWxzZSBpZiAoUnVudGltZS5kZWR1cChk
aWZmcykubGVuZ3RoID09IDEpIHsKLSAgICAgIHR5cGUuZmxhdEZhY3RvciA9IGRpZmZzWzBdOwot
ICAgIH0KLSAgICB0eXBlLm5lZWRzRmxhdHRlbmluZyA9ICh0eXBlLmZsYXRGYWN0b3IgIT0gMSk7
Ci0gICAgcmV0dXJuIHR5cGUuZmxhdEluZGV4ZXM7Ci0gIH0sCi0gIGdlbmVyYXRlU3RydWN0SW5m
bzogZnVuY3Rpb24gKHN0cnVjdCwgdHlwZU5hbWUsIG9mZnNldCkgewotICAgIHZhciB0eXBlLCBh
bGlnbm1lbnQ7Ci0gICAgaWYgKHR5cGVOYW1lKSB7Ci0gICAgICBvZmZzZXQgPSBvZmZzZXQgfHwg
MDsKLSAgICAgIHR5cGUgPSAodHlwZW9mIFR5cGVzID09PSAndW5kZWZpbmVkJyA/IFJ1bnRpbWUu
dHlwZUluZm8gOiBUeXBlcy50eXBlcylbdHlwZU5hbWVdOwotICAgICAgaWYgKCF0eXBlKSByZXR1
cm4gbnVsbDsKLSAgICAgIGlmICh0eXBlLmZpZWxkcy5sZW5ndGggIT0gc3RydWN0Lmxlbmd0aCkg
ewotICAgICAgICBwcmludEVycignTnVtYmVyIG9mIG5hbWVkIGZpZWxkcyBtdXN0IG1hdGNoIHRo
ZSB0eXBlIGZvciAnICsgdHlwZU5hbWUgKyAnOiBwb3NzaWJseSBkdXBsaWNhdGUgc3RydWN0IG5h
bWVzLiBDYW5ub3QgcmV0dXJuIHN0cnVjdEluZm8nKTsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0g
ICAgICB9Ci0gICAgICBhbGlnbm1lbnQgPSB0eXBlLmZsYXRJbmRleGVzOwotICAgIH0gZWxzZSB7
Ci0gICAgICB2YXIgdHlwZSA9IHsgZmllbGRzOiBzdHJ1Y3QubWFwKGZ1bmN0aW9uKGl0ZW0pIHsg
cmV0dXJuIGl0ZW1bMF0gfSkgfTsKLSAgICAgIGFsaWdubWVudCA9IFJ1bnRpbWUuY2FsY3VsYXRl
U3RydWN0QWxpZ25tZW50KHR5cGUpOwotICAgIH0KLSAgICB2YXIgcmV0ID0gewotICAgICAgX19z
aXplX186IHR5cGUuZmxhdFNpemUKLSAgICB9OwotICAgIGlmICh0eXBlTmFtZSkgewotICAgICAg
c3RydWN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaSkgewotICAgICAgICBpZiAodHlwZW9mIGl0
ZW0gPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgcmV0W2l0ZW1dID0gYWxpZ25tZW50W2ldICsg
b2Zmc2V0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8vIGVtYmVkZGVkIHN0cnVjdAot
ICAgICAgICAgIHZhciBrZXk7Ci0gICAgICAgICAgZm9yICh2YXIgayBpbiBpdGVtKSBrZXkgPSBr
OwotICAgICAgICAgIHJldFtrZXldID0gUnVudGltZS5nZW5lcmF0ZVN0cnVjdEluZm8oaXRlbVtr
ZXldLCB0eXBlLmZpZWxkc1tpXSwgYWxpZ25tZW50W2ldKTsKLSAgICAgICAgfQotICAgICAgfSk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgIHN0cnVjdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGkpIHsK
LSAgICAgICAgcmV0W2l0ZW1bMV1dID0gYWxpZ25tZW50W2ldOwotICAgICAgfSk7Ci0gICAgfQot
ICAgIHJldHVybiByZXQ7Ci0gIH0sCi0gIGR5bkNhbGw6IGZ1bmN0aW9uIChzaWcsIHB0ciwgYXJn
cykgewotICAgIGlmIChhcmdzICYmIGFyZ3MubGVuZ3RoKSB7Ci0gICAgICBpZiAoIWFyZ3Muc3Bs
aWNlKSBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncyk7Ci0gICAgICBhcmdz
LnNwbGljZSgwLCAwLCBwdHIpOwotICAgICAgcmV0dXJuIE1vZHVsZVsnZHluQ2FsbF8nICsgc2ln
XS5hcHBseShudWxsLCBhcmdzKTsKLSAgICB9IGVsc2UgewotICAgICAgcmV0dXJuIE1vZHVsZVsn
ZHluQ2FsbF8nICsgc2lnXS5jYWxsKG51bGwsIHB0cik7Ci0gICAgfQotICB9LAotICBmdW5jdGlv
blBvaW50ZXJzOiBbXSwKLSAgYWRkRnVuY3Rpb246IGZ1bmN0aW9uIChmdW5jKSB7Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnMubGVuZ3RoOyBpKyspIHsK
LSAgICAgIGlmICghUnVudGltZS5mdW5jdGlvblBvaW50ZXJzW2ldKSB7Ci0gICAgICAgIFJ1bnRp
bWUuZnVuY3Rpb25Qb2ludGVyc1tpXSA9IGZ1bmM7Ci0gICAgICAgIHJldHVybiAyICsgMippOwot
ICAgICAgfQotICAgIH0KLSAgICB0aHJvdyAnRmluaXNoZWQgdXAgYWxsIHJlc2VydmVkIGZ1bmN0
aW9uIHBvaW50ZXJzLiBVc2UgYSBoaWdoZXIgdmFsdWUgZm9yIFJFU0VSVkVEX0ZVTkNUSU9OX1BP
SU5URVJTLic7Ci0gIH0sCi0gIHJlbW92ZUZ1bmN0aW9uOiBmdW5jdGlvbiAoaW5kZXgpIHsKLSAg
ICBSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnNbKGluZGV4LTIpLzJdID0gbnVsbDsKLSAgfSwKLSAg
d2Fybk9uY2U6IGZ1bmN0aW9uICh0ZXh0KSB7Ci0gICAgaWYgKCFSdW50aW1lLndhcm5PbmNlLnNo
b3duKSBSdW50aW1lLndhcm5PbmNlLnNob3duID0ge307Ci0gICAgaWYgKCFSdW50aW1lLndhcm5P
bmNlLnNob3duW3RleHRdKSB7Ci0gICAgICBSdW50aW1lLndhcm5PbmNlLnNob3duW3RleHRdID0g
MTsKLSAgICAgIE1vZHVsZS5wcmludEVycih0ZXh0KTsKLSAgICB9Ci0gIH0sCi0gIGZ1bmNXcmFw
cGVyczoge30sCi0gIGdldEZ1bmNXcmFwcGVyOiBmdW5jdGlvbiAoZnVuYywgc2lnKSB7Ci0gICAg
YXNzZXJ0KHNpZyk7Ci0gICAgaWYgKCFSdW50aW1lLmZ1bmNXcmFwcGVyc1tmdW5jXSkgewotICAg
ICAgUnVudGltZS5mdW5jV3JhcHBlcnNbZnVuY10gPSBmdW5jdGlvbigpIHsKLSAgICAgICAgcmV0
dXJuIFJ1bnRpbWUuZHluQ2FsbChzaWcsIGZ1bmMsIGFyZ3VtZW50cyk7Ci0gICAgICB9OwotICAg
IH0KLSAgICByZXR1cm4gUnVudGltZS5mdW5jV3JhcHBlcnNbZnVuY107Ci0gIH0sCi0gIFVURjhQ
cm9jZXNzb3I6IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgYnVmZmVyID0gW107Ci0gICAgdmFyIG5l
ZWRlZCA9IDA7Ci0gICAgdGhpcy5wcm9jZXNzQ0NoYXIgPSBmdW5jdGlvbiAoY29kZSkgewotICAg
ICAgY29kZSA9IGNvZGUgJiAweEZGOwotICAgICAgaWYgKGJ1ZmZlci5sZW5ndGggPT0gMCkgewot
ICAgICAgICBpZiAoKGNvZGUgJiAweDgwKSA9PSAweDAwKSB7ICAgICAgICAvLyAweHh4eHh4eAot
ICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwotICAgICAgICB9Ci0g
ICAgICAgIGJ1ZmZlci5wdXNoKGNvZGUpOwotICAgICAgICBpZiAoKGNvZGUgJiAweEUwKSA9PSAw
eEMwKSB7ICAgICAgICAvLyAxMTB4eHh4eAotICAgICAgICAgIG5lZWRlZCA9IDE7Ci0gICAgICAg
IH0gZWxzZSBpZiAoKGNvZGUgJiAweEYwKSA9PSAweEUwKSB7IC8vIDExMTB4eHh4Ci0gICAgICAg
ICAgbmVlZGVkID0gMjsKLSAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gMTExMTB4eHgKLSAgICAgICAgICBuZWVkZWQgPSAzOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiAnJzsKLSAgICAgIH0KLSAgICAgIGlmIChuZWVkZWQpIHsKLSAgICAgICAgYnVmZmVy
LnB1c2goY29kZSk7Ci0gICAgICAgIG5lZWRlZC0tOwotICAgICAgICBpZiAobmVlZGVkID4gMCkg
cmV0dXJuICcnOwotICAgICAgfQotICAgICAgdmFyIGMxID0gYnVmZmVyWzBdOwotICAgICAgdmFy
IGMyID0gYnVmZmVyWzFdOwotICAgICAgdmFyIGMzID0gYnVmZmVyWzJdOwotICAgICAgdmFyIGM0
ID0gYnVmZmVyWzNdOwotICAgICAgdmFyIHJldDsKLSAgICAgIGlmIChidWZmZXIubGVuZ3RoID09
IDIpIHsKLSAgICAgICAgcmV0ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMxICYgMHgxRikgPDwg
NikgIHwgKGMyICYgMHgzRikpOwotICAgICAgfSBlbHNlIGlmIChidWZmZXIubGVuZ3RoID09IDMp
IHsKLSAgICAgICAgcmV0ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMxICYgMHgwRikgPDwgMTIp
IHwgKChjMiAmIDB4M0YpIDw8IDYpICB8IChjMyAmIDB4M0YpKTsKLSAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgIC8vIGh0dHA6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2phdmFzY3JpcHQtZW5jb2Rp
bmcjc3Vycm9nYXRlLWZvcm11bGFlCi0gICAgICAgIHZhciBjb2RlUG9pbnQgPSAoKGMxICYgMHgw
NykgPDwgMTgpIHwgKChjMiAmIDB4M0YpIDw8IDEyKSB8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAoKGMzICYgMHgzRikgPDwgNikgIHwgKGM0ICYgMHgzRik7Ci0gICAgICAgIHJldCA9IFN0cmlu
Zy5mcm9tQ2hhckNvZGUoCi0gICAgICAgICAgTWF0aC5mbG9vcigoY29kZVBvaW50IC0gMHgxMDAw
MCkgLyAweDQwMCkgKyAweEQ4MDAsCi0gICAgICAgICAgKGNvZGVQb2ludCAtIDB4MTAwMDApICUg
MHg0MDAgKyAweERDMDApOwotICAgICAgfQotICAgICAgYnVmZmVyLmxlbmd0aCA9IDA7Ci0gICAg
ICByZXR1cm4gcmV0OwotICAgIH0KLSAgICB0aGlzLnByb2Nlc3NKU1N0cmluZyA9IGZ1bmN0aW9u
KHN0cmluZykgewotICAgICAgc3RyaW5nID0gdW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHN0
cmluZykpOwotICAgICAgdmFyIHJldCA9IFtdOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBz
dHJpbmcubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgcmV0LnB1c2goc3RyaW5nLmNoYXJDb2RlQXQo
aSkpOwotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gIH0sCi0gIHN0YWNrQWxs
b2M6IGZ1bmN0aW9uIChzaXplKSB7IHZhciByZXQgPSBTVEFDS1RPUDtTVEFDS1RPUCA9IChTVEFD
S1RPUCArIHNpemUpfDA7U1RBQ0tUT1AgPSAoKCgoU1RBQ0tUT1ApKzcpPj4zKTw8Myk7IHJldHVy
biByZXQ7IH0sCi0gIHN0YXRpY0FsbG9jOiBmdW5jdGlvbiAoc2l6ZSkgeyB2YXIgcmV0ID0gU1RB
VElDVE9QO1NUQVRJQ1RPUCA9IChTVEFUSUNUT1AgKyBzaXplKXwwO1NUQVRJQ1RPUCA9ICgoKChT
VEFUSUNUT1ApKzcpPj4zKTw8Myk7IHJldHVybiByZXQ7IH0sCi0gIGR5bmFtaWNBbGxvYzogZnVu
Y3Rpb24gKHNpemUpIHsgdmFyIHJldCA9IERZTkFNSUNUT1A7RFlOQU1JQ1RPUCA9IChEWU5BTUlD
VE9QICsgc2l6ZSl8MDtEWU5BTUlDVE9QID0gKCgoKERZTkFNSUNUT1ApKzcpPj4zKTw8Myk7IGlm
IChEWU5BTUlDVE9QID49IFRPVEFMX01FTU9SWSkgZW5sYXJnZU1lbW9yeSgpOzsgcmV0dXJuIHJl
dDsgfSwKLSAgYWxpZ25NZW1vcnk6IGZ1bmN0aW9uIChzaXplLHF1YW50dW0pIHsgdmFyIHJldCA9
IHNpemUgPSBNYXRoLmNlaWwoKHNpemUpLyhxdWFudHVtID8gcXVhbnR1bSA6IDgpKSoocXVhbnR1
bSA/IHF1YW50dW0gOiA4KTsgcmV0dXJuIHJldDsgfSwKLSAgbWFrZUJpZ0ludDogZnVuY3Rpb24g
KGxvdyxoaWdoLHVuc2lnbmVkKSB7IHZhciByZXQgPSAodW5zaWduZWQgPyAoKCsoKChsb3cpPj4+
KDApKSkpKygoKygoKGhpZ2gpPj4+KDApKSkpKigrKDQyOTQ5NjcyOTYpKSkpIDogKCgrKCgobG93
KT4+PigwKSkpKSsoKCsoKChoaWdoKXwoMCkpKSkqKCsoNDI5NDk2NzI5NikpKSkpOyByZXR1cm4g
cmV0OyB9LAotICBHTE9CQUxfQkFTRTogOCwKLSAgUVVBTlRVTV9TSVpFOiA0LAotICBfX2R1bW15
X186IDAKLX0KLS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8g
UnVudGltZSBlc3NlbnRpYWxzCi0vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLXZhciBfX1RIUkVXX18gPSAwOyAvLyBVc2VkIGluIGNoZWNraW5nIGZvciB0aHJvd24g
ZXhjZXB0aW9ucy4KLXZhciBBQk9SVCA9IGZhbHNlOyAvLyB3aGV0aGVyIHdlIGFyZSBxdWl0dGlu
ZyB0aGUgYXBwbGljYXRpb24uIG5vIGNvZGUgc2hvdWxkIHJ1biBhZnRlciB0aGlzLiBzZXQgaW4g
ZXhpdCgpIGFuZCBhYm9ydCgpCi12YXIgRVhJVFNUQVRVUyA9IDA7Ci12YXIgdW5kZWYgPSAwOwot
Ly8gdGVtcEludCBpcyB1c2VkIGZvciAzMi1iaXQgc2lnbmVkIHZhbHVlcyBvciBzbWFsbGVyLiB0
ZW1wQmlnSW50IGlzIHVzZWQKLS8vIGZvciAzMi1iaXQgdW5zaWduZWQgdmFsdWVzIG9yIG1vcmUg
dGhhbiAzMiBiaXRzLiBUT0RPOiBhdWRpdCBhbGwgdXNlcyBvZiB0ZW1wSW50Ci12YXIgdGVtcFZh
bHVlLCB0ZW1wSW50LCB0ZW1wQmlnSW50LCB0ZW1wSW50MiwgdGVtcEJpZ0ludDIsIHRlbXBQYWly
LCB0ZW1wQmlnSW50SSwgdGVtcEJpZ0ludFIsIHRlbXBCaWdJbnRTLCB0ZW1wQmlnSW50UCwgdGVt
cEJpZ0ludEQ7Ci12YXIgdGVtcEk2NCwgdGVtcEk2NGI7Ci12YXIgdGVtcFJldDAsIHRlbXBSZXQx
LCB0ZW1wUmV0MiwgdGVtcFJldDMsIHRlbXBSZXQ0LCB0ZW1wUmV0NSwgdGVtcFJldDYsIHRlbXBS
ZXQ3LCB0ZW1wUmV0OCwgdGVtcFJldDk7Ci1mdW5jdGlvbiBhc3NlcnQoY29uZGl0aW9uLCB0ZXh0
KSB7Ci0gIGlmICghY29uZGl0aW9uKSB7Ci0gICAgYWJvcnQoJ0Fzc2VydGlvbiBmYWlsZWQ6ICcg
KyB0ZXh0KTsKLSAgfQotfQotdmFyIGdsb2JhbFNjb3BlID0gdGhpczsKLS8vIEMgY2FsbGluZyBp
bnRlcmZhY2UuIEEgY29udmVuaWVudCB3YXkgdG8gY2FsbCBDIGZ1bmN0aW9ucyAoaW4gQyBmaWxl
cywgb3IKLS8vIGRlZmluZWQgd2l0aCBleHRlcm4gIkMiKS4KLS8vCi0vLyBOb3RlOiBMTFZNIG9w
dGltaXphdGlvbnMgY2FuIGlubGluZSBhbmQgcmVtb3ZlIGZ1bmN0aW9ucywgYWZ0ZXIgd2hpY2gg
eW91IHdpbGwgbm90IGJlCi0vLyAgICAgICBhYmxlIHRvIGNhbGwgdGhlbS4gQ2xvc3VyZSBjYW4g
YWxzbyBkbyBzby4gVG8gYXZvaWQgdGhhdCwgYWRkIHlvdXIgZnVuY3Rpb24gdG8KLS8vICAgICAg
IHRoZSBleHBvcnRzIHVzaW5nIHNvbWV0aGluZyBsaWtlCi0vLwotLy8gICAgICAgICAtcyBFWFBP
UlRFRF9GVU5DVElPTlM9J1siX21haW4iLCAiX215ZnVuYyJdJwotLy8KLS8vIEBwYXJhbSBpZGVu
dCAgICAgIFRoZSBuYW1lIG9mIHRoZSBDIGZ1bmN0aW9uIChub3RlIHRoYXQgQysrIGZ1bmN0aW9u
cyB3aWxsIGJlIG5hbWUtbWFuZ2xlZCAtIHVzZSBleHRlcm4gIkMiKQotLy8gQHBhcmFtIHJldHVy
blR5cGUgVGhlIHJldHVybiB0eXBlIG9mIHRoZSBmdW5jdGlvbiwgb25lIG9mIHRoZSBKUyB0eXBl
cyAnbnVtYmVyJywgJ3N0cmluZycgb3IgJ2FycmF5JyAodXNlICdudW1iZXInIGZvciBhbnkgQyBw
b2ludGVyLCBhbmQKLS8vICAgICAgICAgICAgICAgICAgICdhcnJheScgZm9yIEphdmFTY3JpcHQg
YXJyYXlzIGFuZCB0eXBlZCBhcnJheXM7IG5vdGUgdGhhdCBhcnJheXMgYXJlIDgtYml0KS4KLS8v
IEBwYXJhbSBhcmdUeXBlcyAgIEFuIGFycmF5IG9mIHRoZSB0eXBlcyBvZiBhcmd1bWVudHMgZm9y
IHRoZSBmdW5jdGlvbiAoaWYgdGhlcmUgYXJlIG5vIGFyZ3VtZW50cywgdGhpcyBjYW4gYmUgb21t
aXR0ZWQpLiBUeXBlcyBhcmUgYXMgaW4gcmV0dXJuVHlwZSwKLS8vICAgICAgICAgICAgICAgICAg
IGV4Y2VwdCB0aGF0ICdhcnJheScgaXMgbm90IHBvc3NpYmxlICh0aGVyZSBpcyBubyB3YXkgZm9y
IHVzIHRvIGtub3cgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkpCi0vLyBAcGFyYW0gYXJncyAgICAg
ICBBbiBhcnJheSBvZiB0aGUgYXJndW1lbnRzIHRvIHRoZSBmdW5jdGlvbiwgYXMgbmF0aXZlIEpT
IHZhbHVlcyAoYXMgaW4gcmV0dXJuVHlwZSkKLS8vICAgICAgICAgICAgICAgICAgIE5vdGUgdGhh
dCBzdHJpbmcgYXJndW1lbnRzIHdpbGwgYmUgc3RvcmVkIG9uIHRoZSBzdGFjayAodGhlIEpTIHN0
cmluZyB3aWxsIGJlY29tZSBhIEMgc3RyaW5nIG9uIHRoZSBzdGFjaykuCi0vLyBAcmV0dXJuICAg
ICAgICAgICBUaGUgcmV0dXJuIHZhbHVlLCBhcyBhIG5hdGl2ZSBKUyB2YWx1ZSAoYXMgaW4gcmV0
dXJuVHlwZSkKLWZ1bmN0aW9uIGNjYWxsKGlkZW50LCByZXR1cm5UeXBlLCBhcmdUeXBlcywgYXJn
cykgewotICByZXR1cm4gY2NhbGxGdW5jKGdldENGdW5jKGlkZW50KSwgcmV0dXJuVHlwZSwgYXJn
VHlwZXMsIGFyZ3MpOwotfQotTW9kdWxlWyJjY2FsbCJdID0gY2NhbGw7Ci0vLyBSZXR1cm5zIHRo
ZSBDIGZ1bmN0aW9uIHdpdGggYSBzcGVjaWZpZWQgaWRlbnRpZmllciAoZm9yIEMrKywgeW91IG5l
ZWQgdG8gZG8gbWFudWFsIG5hbWUgbWFuZ2xpbmcpCi1mdW5jdGlvbiBnZXRDRnVuYyhpZGVudCkg
ewotICB0cnkgewotICAgIHZhciBmdW5jID0gTW9kdWxlWydfJyArIGlkZW50XTsgLy8gY2xvc3Vy
ZSBleHBvcnRlZCBmdW5jdGlvbgotICAgIGlmICghZnVuYykgZnVuYyA9IGV2YWwoJ18nICsgaWRl
bnQpOyAvLyBleHBsaWNpdCBsb29rdXAKLSAgfSBjYXRjaChlKSB7Ci0gIH0KLSAgYXNzZXJ0KGZ1
bmMsICdDYW5ub3QgY2FsbCB1bmtub3duIGZ1bmN0aW9uICcgKyBpZGVudCArICcgKHBlcmhhcHMg
TExWTSBvcHRpbWl6YXRpb25zIG9yIGNsb3N1cmUgcmVtb3ZlZCBpdD8pJyk7Ci0gIHJldHVybiBm
dW5jOwotfQotLy8gSW50ZXJuYWwgZnVuY3Rpb24gdGhhdCBkb2VzIGEgQyBjYWxsIHVzaW5nIGEg
ZnVuY3Rpb24sIG5vdCBhbiBpZGVudGlmaWVyCi1mdW5jdGlvbiBjY2FsbEZ1bmMoZnVuYywgcmV0
dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3MpIHsKLSAgdmFyIHN0YWNrID0gMDsKLSAgZnVuY3Rpb24g
dG9DKHZhbHVlLCB0eXBlKSB7Ci0gICAgaWYgKHR5cGUgPT0gJ3N0cmluZycpIHsKLSAgICAgIGlm
ICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAwKSBy
ZXR1cm4gMDsgLy8gbnVsbCBzdHJpbmcKLSAgICAgIGlmICghc3RhY2spIHN0YWNrID0gUnVudGlt
ZS5zdGFja1NhdmUoKTsKLSAgICAgIHZhciByZXQgPSBSdW50aW1lLnN0YWNrQWxsb2ModmFsdWUu
bGVuZ3RoKzEpOwotICAgICAgd3JpdGVTdHJpbmdUb01lbW9yeSh2YWx1ZSwgcmV0KTsKLSAgICAg
IHJldHVybiByZXQ7Ci0gICAgfSBlbHNlIGlmICh0eXBlID09ICdhcnJheScpIHsKLSAgICAgIGlm
ICghc3RhY2spIHN0YWNrID0gUnVudGltZS5zdGFja1NhdmUoKTsKLSAgICAgIHZhciByZXQgPSBS
dW50aW1lLnN0YWNrQWxsb2ModmFsdWUubGVuZ3RoKTsKLSAgICAgIHdyaXRlQXJyYXlUb01lbW9y
eSh2YWx1ZSwgcmV0KTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotICAgIHJldHVybiB2YWx1
ZTsKLSAgfQotICBmdW5jdGlvbiBmcm9tQyh2YWx1ZSwgdHlwZSkgewotICAgIGlmICh0eXBlID09
ICdzdHJpbmcnKSB7Ci0gICAgICByZXR1cm4gUG9pbnRlcl9zdHJpbmdpZnkodmFsdWUpOwotICAg
IH0KLSAgICBhc3NlcnQodHlwZSAhPSAnYXJyYXknKTsKLSAgICByZXR1cm4gdmFsdWU7Ci0gIH0K
LSAgdmFyIGkgPSAwOwotICB2YXIgY0FyZ3MgPSBhcmdzID8gYXJncy5tYXAoZnVuY3Rpb24oYXJn
KSB7Ci0gICAgcmV0dXJuIHRvQyhhcmcsIGFyZ1R5cGVzW2krK10pOwotICB9KSA6IFtdOwotICB2
YXIgcmV0ID0gZnJvbUMoZnVuYy5hcHBseShudWxsLCBjQXJncyksIHJldHVyblR5cGUpOwotICBp
ZiAoc3RhY2spIFJ1bnRpbWUuc3RhY2tSZXN0b3JlKHN0YWNrKTsKLSAgcmV0dXJuIHJldDsKLX0K
LS8vIFJldHVybnMgYSBuYXRpdmUgSlMgd3JhcHBlciBmb3IgYSBDIGZ1bmN0aW9uLiBUaGlzIGlz
IHNpbWlsYXIgdG8gY2NhbGwsIGJ1dAotLy8gcmV0dXJucyBhIGZ1bmN0aW9uIHlvdSBjYW4gY2Fs
bCByZXBlYXRlZGx5IGluIGEgbm9ybWFsIHdheS4gRm9yIGV4YW1wbGU6Ci0vLwotLy8gICB2YXIg
bXlfZnVuY3Rpb24gPSBjd3JhcCgnbXlfY19mdW5jdGlvbicsICdudW1iZXInLCBbJ251bWJlcics
ICdudW1iZXInXSk7Ci0vLyAgIGFsZXJ0KG15X2Z1bmN0aW9uKDUsIDIyKSk7Ci0vLyAgIGFsZXJ0
KG15X2Z1bmN0aW9uKDk5LCAxMikpOwotLy8KLWZ1bmN0aW9uIGN3cmFwKGlkZW50LCByZXR1cm5U
eXBlLCBhcmdUeXBlcykgewotICB2YXIgZnVuYyA9IGdldENGdW5jKGlkZW50KTsKLSAgcmV0dXJu
IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBjY2FsbEZ1bmMoZnVuYywgcmV0dXJuVHlwZSwgYXJn
VHlwZXMsIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpOwotICB9Ci19Ci1N
b2R1bGVbImN3cmFwIl0gPSBjd3JhcDsKLS8vIFNldHMgYSB2YWx1ZSBpbiBtZW1vcnkgaW4gYSBk
eW5hbWljIHdheSBhdCBydW4tdGltZS4gVXNlcyB0aGUKLS8vIHR5cGUgZGF0YS4gVGhpcyBpcyB0
aGUgc2FtZSBhcyBtYWtlU2V0VmFsdWUsIGV4Y2VwdCB0aGF0Ci0vLyBtYWtlU2V0VmFsdWUgaXMg
ZG9uZSBhdCBjb21waWxlLXRpbWUgYW5kIGdlbmVyYXRlcyB0aGUgbmVlZGVkCi0vLyBjb2RlIHRo
ZW4sIHdoZXJlYXMgdGhpcyBmdW5jdGlvbiBwaWNrcyB0aGUgcmlnaHQgY29kZSBhdAotLy8gcnVu
LXRpbWUuCi0vLyBOb3RlIHRoYXQgc2V0VmFsdWUgYW5kIGdldFZhbHVlIG9ubHkgZG8gKmFsaWdu
ZWQqIHdyaXRlcyBhbmQgcmVhZHMhCi0vLyBOb3RlIHRoYXQgY2NhbGwgdXNlcyBKUyB0eXBlcyBh
cyBmb3IgZGVmaW5pbmcgdHlwZXMsIHdoaWxlIHNldFZhbHVlIGFuZAotLy8gZ2V0VmFsdWUgbmVl
ZCBMTFZNIHR5cGVzICgnaTgnLCAnaTMyJykgLSB0aGlzIGlzIGEgbG93ZXItbGV2ZWwgb3BlcmF0
aW9uCi1mdW5jdGlvbiBzZXRWYWx1ZShwdHIsIHZhbHVlLCB0eXBlLCBub1NhZmUpIHsKLSAgdHlw
ZSA9IHR5cGUgfHwgJ2k4JzsKLSAgaWYgKHR5cGUuY2hhckF0KHR5cGUubGVuZ3RoLTEpID09PSAn
KicpIHR5cGUgPSAnaTMyJzsgLy8gcG9pbnRlcnMgYXJlIDMyLWJpdAotICAgIHN3aXRjaCh0eXBl
KSB7Ci0gICAgICBjYXNlICdpMSc6IEhFQVA4WyhwdHIpXT12YWx1ZTsgYnJlYWs7Ci0gICAgICBj
YXNlICdpOCc6IEhFQVA4WyhwdHIpXT12YWx1ZTsgYnJlYWs7Ci0gICAgICBjYXNlICdpMTYnOiBI
RUFQMTZbKChwdHIpPj4xKV09dmFsdWU7IGJyZWFrOwotICAgICAgY2FzZSAnaTMyJzogSEVBUDMy
WygocHRyKT4+MildPXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2UgJ2k2NCc6ICh0ZW1wSTY0ID0g
W3ZhbHVlPj4+MCwodGVtcERvdWJsZT12YWx1ZSwoKyhNYXRoLmFicyh0ZW1wRG91YmxlKSkpID49
ICgrKDEpKSA/ICh0ZW1wRG91YmxlID4gKCsoMCkpID8gKChNYXRoLm1pbigoKyhNYXRoLmZsb29y
KCh0ZW1wRG91YmxlKS8oKyg0Mjk0OTY3Mjk2KSkpKSksICgrKDQyOTQ5NjcyOTUpKSkpfDApPj4+
MCA6ICh+figoKyhNYXRoLmNlaWwoKHRlbXBEb3VibGUgLSArKCgofn4odGVtcERvdWJsZSkpKT4+
PjApKS8oKyg0Mjk0OTY3Mjk2KSkpKSkpKT4+PjApIDogMCldLEhFQVAzMlsoKHB0cik+PjIpXT10
ZW1wSTY0WzBdLEhFQVAzMlsoKChwdHIpKyg0KSk+PjIpXT10ZW1wSTY0WzFdKTsgYnJlYWs7Ci0g
ICAgICBjYXNlICdmbG9hdCc6IEhFQVBGMzJbKChwdHIpPj4yKV09dmFsdWU7IGJyZWFrOwotICAg
ICAgY2FzZSAnZG91YmxlJzogSEVBUEY2NFsoKHB0cik+PjMpXT12YWx1ZTsgYnJlYWs7Ci0gICAg
ICBkZWZhdWx0OiBhYm9ydCgnaW52YWxpZCB0eXBlIGZvciBzZXRWYWx1ZTogJyArIHR5cGUpOwot
ICAgIH0KLX0KLU1vZHVsZVsnc2V0VmFsdWUnXSA9IHNldFZhbHVlOwotLy8gUGFyYWxsZWwgdG8g
c2V0VmFsdWUuCi1mdW5jdGlvbiBnZXRWYWx1ZShwdHIsIHR5cGUsIG5vU2FmZSkgewotICB0eXBl
ID0gdHlwZSB8fCAnaTgnOwotICBpZiAodHlwZS5jaGFyQXQodHlwZS5sZW5ndGgtMSkgPT09ICcq
JykgdHlwZSA9ICdpMzInOyAvLyBwb2ludGVycyBhcmUgMzItYml0Ci0gICAgc3dpdGNoKHR5cGUp
IHsKLSAgICAgIGNhc2UgJ2kxJzogcmV0dXJuIEhFQVA4WyhwdHIpXTsKLSAgICAgIGNhc2UgJ2k4
JzogcmV0dXJuIEhFQVA4WyhwdHIpXTsKLSAgICAgIGNhc2UgJ2kxNic6IHJldHVybiBIRUFQMTZb
KChwdHIpPj4xKV07Ci0gICAgICBjYXNlICdpMzInOiByZXR1cm4gSEVBUDMyWygocHRyKT4+Mild
OwotICAgICAgY2FzZSAnaTY0JzogcmV0dXJuIEhFQVAzMlsoKHB0cik+PjIpXTsKLSAgICAgIGNh
c2UgJ2Zsb2F0JzogcmV0dXJuIEhFQVBGMzJbKChwdHIpPj4yKV07Ci0gICAgICBjYXNlICdkb3Vi
bGUnOiByZXR1cm4gSEVBUEY2NFsoKHB0cik+PjMpXTsKLSAgICAgIGRlZmF1bHQ6IGFib3J0KCdp
bnZhbGlkIHR5cGUgZm9yIHNldFZhbHVlOiAnICsgdHlwZSk7Ci0gICAgfQotICByZXR1cm4gbnVs
bDsKLX0KLU1vZHVsZVsnZ2V0VmFsdWUnXSA9IGdldFZhbHVlOwotdmFyIEFMTE9DX05PUk1BTCA9
IDA7IC8vIFRyaWVzIHRvIHVzZSBfbWFsbG9jKCkKLXZhciBBTExPQ19TVEFDSyA9IDE7IC8vIExp
dmVzIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGN1cnJlbnQgZnVuY3Rpb24gY2FsbAotdmFyIEFM
TE9DX1NUQVRJQyA9IDI7IC8vIENhbm5vdCBiZSBmcmVlZAotdmFyIEFMTE9DX0RZTkFNSUMgPSAz
OyAvLyBDYW5ub3QgYmUgZnJlZWQgZXhjZXB0IHRocm91Z2ggc2JyawotdmFyIEFMTE9DX05PTkUg
PSA0OyAvLyBEbyBub3QgYWxsb2NhdGUKLU1vZHVsZVsnQUxMT0NfTk9STUFMJ10gPSBBTExPQ19O
T1JNQUw7Ci1Nb2R1bGVbJ0FMTE9DX1NUQUNLJ10gPSBBTExPQ19TVEFDSzsKLU1vZHVsZVsnQUxM
T0NfU1RBVElDJ10gPSBBTExPQ19TVEFUSUM7Ci1Nb2R1bGVbJ0FMTE9DX0RZTkFNSUMnXSA9IEFM
TE9DX0RZTkFNSUM7Ci1Nb2R1bGVbJ0FMTE9DX05PTkUnXSA9IEFMTE9DX05PTkU7Ci0vLyBhbGxv
Y2F0ZSgpOiBUaGlzIGlzIGZvciBpbnRlcm5hbCB1c2UuIFlvdSBjYW4gdXNlIGl0IHlvdXJzZWxm
IGFzIHdlbGwsIGJ1dCB0aGUgaW50ZXJmYWNlCi0vLyAgICAgICAgICAgICBpcyBhIGxpdHRsZSB0
cmlja3kgKHNlZSBkb2NzIHJpZ2h0IGJlbG93KS4gVGhlIHJlYXNvbiBpcyB0aGF0IGl0IGlzIG9w
dGltaXplZAotLy8gICAgICAgICAgICAgZm9yIG11bHRpcGxlIHN5bnRheGVzIHRvIHNhdmUgc3Bh
Y2UgaW4gZ2VuZXJhdGVkIGNvZGUuIFNvIHlvdSBzaG91bGQKLS8vICAgICAgICAgICAgIG5vcm1h
bGx5IG5vdCB1c2UgYWxsb2NhdGUoKSwgYW5kIGluc3RlYWQgYWxsb2NhdGUgbWVtb3J5IHVzaW5n
IF9tYWxsb2MoKSwKLS8vICAgICAgICAgICAgIGluaXRpYWxpemUgaXQgd2l0aCBzZXRWYWx1ZSgp
LCBhbmQgc28gZm9ydGguCi0vLyBAc2xhYjogQW4gYXJyYXkgb2YgZGF0YSwgb3IgYSBudW1iZXIu
IElmIGEgbnVtYmVyLCB0aGVuIHRoZSBzaXplIG9mIHRoZSBibG9jayB0byBhbGxvY2F0ZSwKLS8v
ICAgICAgICBpbiAqYnl0ZXMqIChub3RlIHRoYXQgdGhpcyBpcyBzb21ldGltZXMgY29uZnVzaW5n
OiB0aGUgbmV4dCBwYXJhbWV0ZXIgZG9lcyBub3QKLS8vICAgICAgICBhZmZlY3QgdGhpcyEpCi0v
LyBAdHlwZXM6IEVpdGhlciBhbiBhcnJheSBvZiB0eXBlcywgb25lIGZvciBlYWNoIGJ5dGUgKG9y
IDAgaWYgbm8gdHlwZSBhdCB0aGF0IHBvc2l0aW9uKSwKLS8vICAgICAgICAgb3IgYSBzaW5nbGUg
dHlwZSB3aGljaCBpcyB1c2VkIGZvciB0aGUgZW50aXJlIGJsb2NrLiBUaGlzIG9ubHkgbWF0dGVy
cyBpZiB0aGVyZQotLy8gICAgICAgICBpcyBpbml0aWFsIGRhdGEgLSBpZiBAc2xhYiBpcyBhIG51
bWJlciwgdGhlbiB0aGlzIGRvZXMgbm90IG1hdHRlciBhdCBhbGwgYW5kIGlzCi0vLyAgICAgICAg
IGlnbm9yZWQuCi0vLyBAYWxsb2NhdG9yOiBIb3cgdG8gYWxsb2NhdGUgbWVtb3J5LCBzZWUgQUxM
T0NfKgotZnVuY3Rpb24gYWxsb2NhdGUoc2xhYiwgdHlwZXMsIGFsbG9jYXRvciwgcHRyKSB7Ci0g
IHZhciB6ZXJvaW5pdCwgc2l6ZTsKLSAgaWYgKHR5cGVvZiBzbGFiID09PSAnbnVtYmVyJykgewot
ICAgIHplcm9pbml0ID0gdHJ1ZTsKLSAgICBzaXplID0gc2xhYjsKLSAgfSBlbHNlIHsKLSAgICB6
ZXJvaW5pdCA9IGZhbHNlOwotICAgIHNpemUgPSBzbGFiLmxlbmd0aDsKLSAgfQotICB2YXIgc2lu
Z2xlVHlwZSA9IHR5cGVvZiB0eXBlcyA9PT0gJ3N0cmluZycgPyB0eXBlcyA6IG51bGw7Ci0gIHZh
ciByZXQ7Ci0gIGlmIChhbGxvY2F0b3IgPT0gQUxMT0NfTk9ORSkgewotICAgIHJldCA9IHB0cjsK
LSAgfSBlbHNlIHsKLSAgICByZXQgPSBbX21hbGxvYywgUnVudGltZS5zdGFja0FsbG9jLCBSdW50
aW1lLnN0YXRpY0FsbG9jLCBSdW50aW1lLmR5bmFtaWNBbGxvY11bYWxsb2NhdG9yID09PSB1bmRl
ZmluZWQgPyBBTExPQ19TVEFUSUMgOiBhbGxvY2F0b3JdKE1hdGgubWF4KHNpemUsIHNpbmdsZVR5
cGUgPyAxIDogdHlwZXMubGVuZ3RoKSk7Ci0gIH0KLSAgaWYgKHplcm9pbml0KSB7Ci0gICAgdmFy
IHB0ciA9IHJldCwgc3RvcDsKLSAgICBhc3NlcnQoKHJldCAmIDMpID09IDApOwotICAgIHN0b3Ag
PSByZXQgKyAoc2l6ZSAmIH4zKTsKLSAgICBmb3IgKDsgcHRyIDwgc3RvcDsgcHRyICs9IDQpIHsK
LSAgICAgIEhFQVAzMlsoKHB0cik+PjIpXT0wOwotICAgIH0KLSAgICBzdG9wID0gcmV0ICsgc2l6
ZTsKLSAgICB3aGlsZSAocHRyIDwgc3RvcCkgewotICAgICAgSEVBUDhbKChwdHIrKyl8MCldPTA7
Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAgaWYgKHNpbmdsZVR5cGUgPT09ICdpOCcp
IHsKLSAgICBpZiAoc2xhYi5zdWJhcnJheSB8fCBzbGFiLnNsaWNlKSB7Ci0gICAgICBIRUFQVTgu
c2V0KHNsYWIsIHJldCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIEhFQVBVOC5zZXQobmV3IFVpbnQ4
QXJyYXkoc2xhYiksIHJldCk7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAgdmFyIGkg
PSAwLCB0eXBlLCB0eXBlU2l6ZSwgcHJldmlvdXNUeXBlOwotICB3aGlsZSAoaSA8IHNpemUpIHsK
LSAgICB2YXIgY3VyciA9IHNsYWJbaV07Ci0gICAgaWYgKHR5cGVvZiBjdXJyID09PSAnZnVuY3Rp
b24nKSB7Ci0gICAgICBjdXJyID0gUnVudGltZS5nZXRGdW5jdGlvbkluZGV4KGN1cnIpOwotICAg
IH0KLSAgICB0eXBlID0gc2luZ2xlVHlwZSB8fCB0eXBlc1tpXTsKLSAgICBpZiAodHlwZSA9PT0g
MCkgewotICAgICAgaSsrOwotICAgICAgY29udGludWU7Ci0gICAgfQotICAgIGlmICh0eXBlID09
ICdpNjQnKSB0eXBlID0gJ2kzMic7IC8vIHNwZWNpYWwgY2FzZTogd2UgaGF2ZSBvbmUgaTMyIGhl
cmUsIGFuZCBvbmUgaTMyIGxhdGVyCi0gICAgc2V0VmFsdWUocmV0K2ksIGN1cnIsIHR5cGUpOwot
ICAgIC8vIG5vIG5lZWQgdG8gbG9vayB1cCBzaXplIHVubGVzcyB0eXBlIGNoYW5nZXMsIHNvIGNh
Y2hlIGl0Ci0gICAgaWYgKHByZXZpb3VzVHlwZSAhPT0gdHlwZSkgewotICAgICAgdHlwZVNpemUg
PSBSdW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKHR5cGUpOwotICAgICAgcHJldmlvdXNUeXBlID0g
dHlwZTsKLSAgICB9Ci0gICAgaSArPSB0eXBlU2l6ZTsKLSAgfQotICByZXR1cm4gcmV0OwotfQot
TW9kdWxlWydhbGxvY2F0ZSddID0gYWxsb2NhdGU7Ci1mdW5jdGlvbiBQb2ludGVyX3N0cmluZ2lm
eShwdHIsIC8qIG9wdGlvbmFsICovIGxlbmd0aCkgewotICAvLyBUT0RPOiB1c2UgVGV4dERlY29k
ZXIKLSAgLy8gRmluZCB0aGUgbGVuZ3RoLCBhbmQgY2hlY2sgZm9yIFVURiB3aGlsZSBkb2luZyBz
bwotICB2YXIgaGFzVXRmID0gZmFsc2U7Ci0gIHZhciB0OwotICB2YXIgaSA9IDA7Ci0gIHdoaWxl
ICgxKSB7Ci0gICAgdCA9IEhFQVBVOFsoKChwdHIpKyhpKSl8MCldOwotICAgIGlmICh0ID49IDEy
OCkgaGFzVXRmID0gdHJ1ZTsKLSAgICBlbHNlIGlmICh0ID09IDAgJiYgIWxlbmd0aCkgYnJlYWs7
Ci0gICAgaSsrOwotICAgIGlmIChsZW5ndGggJiYgaSA9PSBsZW5ndGgpIGJyZWFrOwotICB9Ci0g
IGlmICghbGVuZ3RoKSBsZW5ndGggPSBpOwotICB2YXIgcmV0ID0gJyc7Ci0gIGlmICghaGFzVXRm
KSB7Ci0gICAgdmFyIE1BWF9DSFVOSyA9IDEwMjQ7IC8vIHNwbGl0IHVwIGludG8gY2h1bmtzLCBi
ZWNhdXNlIC5hcHBseSBvbiBhIGh1Z2Ugc3RyaW5nIGNhbiBvdmVyZmxvdyB0aGUgc3RhY2sKLSAg
ICB2YXIgY3VycjsKLSAgICB3aGlsZSAobGVuZ3RoID4gMCkgewotICAgICAgY3VyciA9IFN0cmlu
Zy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBIRUFQVTguc3ViYXJyYXkocHRyLCBwdHIgKyBN
YXRoLm1pbihsZW5ndGgsIE1BWF9DSFVOSykpKTsKLSAgICAgIHJldCA9IHJldCA/IHJldCArIGN1
cnIgOiBjdXJyOwotICAgICAgcHRyICs9IE1BWF9DSFVOSzsKLSAgICAgIGxlbmd0aCAtPSBNQVhf
Q0hVTks7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAgdmFyIHV0ZjggPSBuZXcgUnVu
dGltZS5VVEY4UHJvY2Vzc29yKCk7Ci0gIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewot
ICAgIHQgPSBIRUFQVThbKCgocHRyKSsoaSkpfDApXTsKLSAgICByZXQgKz0gdXRmOC5wcm9jZXNz
Q0NoYXIodCk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVsZVsnUG9pbnRlcl9zdHJpbmdp
ZnknXSA9IFBvaW50ZXJfc3RyaW5naWZ5OwotLy8gTWVtb3J5IG1hbmFnZW1lbnQKLXZhciBQQUdF
X1NJWkUgPSA0MDk2OwotZnVuY3Rpb24gYWxpZ25NZW1vcnlQYWdlKHgpIHsKLSAgcmV0dXJuICgo
eCs0MDk1KT4+MTIpPDwxMjsKLX0KLXZhciBIRUFQOwotdmFyIEhFQVA4LCBIRUFQVTgsIEhFQVAx
NiwgSEVBUFUxNiwgSEVBUDMyLCBIRUFQVTMyLCBIRUFQRjMyLCBIRUFQRjY0OwotdmFyIFNUQVRJ
Q19CQVNFID0gMCwgU1RBVElDVE9QID0gMCwgc3RhdGljU2VhbGVkID0gZmFsc2U7IC8vIHN0YXRp
YyBhcmVhCi12YXIgU1RBQ0tfQkFTRSA9IDAsIFNUQUNLVE9QID0gMCwgU1RBQ0tfTUFYID0gMDsg
Ly8gc3RhY2sgYXJlYQotdmFyIERZTkFNSUNfQkFTRSA9IDAsIERZTkFNSUNUT1AgPSAwOyAvLyBk
eW5hbWljIGFyZWEgaGFuZGxlZCBieSBzYnJrCi1mdW5jdGlvbiBlbmxhcmdlTWVtb3J5KCkgewot
ICBhYm9ydCgnQ2Fubm90IGVubGFyZ2UgbWVtb3J5IGFycmF5cyBpbiBhc20uanMuIEVpdGhlciAo
MSkgY29tcGlsZSB3aXRoIC1zIFRPVEFMX01FTU9SWT1YIHdpdGggWCBoaWdoZXIgdGhhbiB0aGUg
Y3VycmVudCB2YWx1ZSwgb3IgKDIpIHNldCBNb2R1bGUuVE9UQUxfTUVNT1JZIGJlZm9yZSB0aGUg
cHJvZ3JhbSBydW5zLicpOwotfQotdmFyIFRPVEFMX1NUQUNLID0gTW9kdWxlWydUT1RBTF9TVEFD
SyddIHx8IDUyNDI4ODA7Ci12YXIgVE9UQUxfTUVNT1JZID0gTW9kdWxlWydUT1RBTF9NRU1PUlkn
XSB8fCAxNjc3NzIxNjsKLXZhciBGQVNUX01FTU9SWSA9IE1vZHVsZVsnRkFTVF9NRU1PUlknXSB8
fCAyMDk3MTUyOwotLy8gSW5pdGlhbGl6ZSB0aGUgcnVudGltZSdzIG1lbW9yeQotLy8gY2hlY2sg
Zm9yIGZ1bGwgZW5naW5lIHN1cHBvcnQgKHVzZSBzdHJpbmcgJ3N1YmFycmF5JyB0byBhdm9pZCBj
bG9zdXJlIGNvbXBpbGVyIGNvbmZ1c2lvbikKLWFzc2VydCghIUludDMyQXJyYXkgJiYgISFGbG9h
dDY0QXJyYXkgJiYgISEobmV3IEludDMyQXJyYXkoMSlbJ3N1YmFycmF5J10pICYmICEhKG5ldyBJ
bnQzMkFycmF5KDEpWydzZXQnXSksCi0gICAgICAgJ0Nhbm5vdCBmYWxsYmFjayB0byBub24tdHlw
ZWQgYXJyYXkgY2FzZTogQ29kZSBpcyB0b28gc3BlY2lhbGl6ZWQnKTsKLXZhciBidWZmZXIgPSBu
ZXcgQXJyYXlCdWZmZXIoVE9UQUxfTUVNT1JZKTsKLUhFQVA4ID0gbmV3IEludDhBcnJheShidWZm
ZXIpOwotSEVBUDE2ID0gbmV3IEludDE2QXJyYXkoYnVmZmVyKTsKLUhFQVAzMiA9IG5ldyBJbnQz
MkFycmF5KGJ1ZmZlcik7Ci1IRUFQVTggPSBuZXcgVWludDhBcnJheShidWZmZXIpOwotSEVBUFUx
NiA9IG5ldyBVaW50MTZBcnJheShidWZmZXIpOwotSEVBUFUzMiA9IG5ldyBVaW50MzJBcnJheShi
dWZmZXIpOwotSEVBUEYzMiA9IG5ldyBGbG9hdDMyQXJyYXkoYnVmZmVyKTsKLUhFQVBGNjQgPSBu
ZXcgRmxvYXQ2NEFycmF5KGJ1ZmZlcik7Ci0vLyBFbmRpYW5uZXNzIGNoZWNrIChub3RlOiBhc3N1
bWVzIGNvbXBpbGVyIGFyY2ggd2FzIGxpdHRsZS1lbmRpYW4pCi1IRUFQMzJbMF0gPSAyNTU7Ci1h
c3NlcnQoSEVBUFU4WzBdID09PSAyNTUgJiYgSEVBUFU4WzNdID09PSAwLCAnVHlwZWQgYXJyYXlz
IDIgbXVzdCBiZSBydW4gb24gYSBsaXR0bGUtZW5kaWFuIHN5c3RlbScpOwotTW9kdWxlWydIRUFQ
J10gPSBIRUFQOwotTW9kdWxlWydIRUFQOCddID0gSEVBUDg7Ci1Nb2R1bGVbJ0hFQVAxNiddID0g
SEVBUDE2OwotTW9kdWxlWydIRUFQMzInXSA9IEhFQVAzMjsKLU1vZHVsZVsnSEVBUFU4J10gPSBI
RUFQVTg7Ci1Nb2R1bGVbJ0hFQVBVMTYnXSA9IEhFQVBVMTY7Ci1Nb2R1bGVbJ0hFQVBVMzInXSA9
IEhFQVBVMzI7Ci1Nb2R1bGVbJ0hFQVBGMzInXSA9IEhFQVBGMzI7Ci1Nb2R1bGVbJ0hFQVBGNjQn
XSA9IEhFQVBGNjQ7Ci1mdW5jdGlvbiBjYWxsUnVudGltZUNhbGxiYWNrcyhjYWxsYmFja3MpIHsK
LSAgd2hpbGUoY2FsbGJhY2tzLmxlbmd0aCA+IDApIHsKLSAgICB2YXIgY2FsbGJhY2sgPSBjYWxs
YmFja3Muc2hpZnQoKTsKLSAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09ICdmdW5jdGlvbicpIHsK
LSAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICBjb250aW51ZTsKLSAgICB9Ci0gICAgdmFyIGZ1bmMg
PSBjYWxsYmFjay5mdW5jOwotICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ251bWJlcicpIHsKLSAg
ICAgIGlmIChjYWxsYmFjay5hcmcgPT09IHVuZGVmaW5lZCkgewotICAgICAgICBSdW50aW1lLmR5
bkNhbGwoJ3YnLCBmdW5jKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIFJ1bnRpbWUuZHluQ2Fs
bCgndmknLCBmdW5jLCBbY2FsbGJhY2suYXJnXSk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAg
ICAgIGZ1bmMoY2FsbGJhY2suYXJnID09PSB1bmRlZmluZWQgPyBudWxsIDogY2FsbGJhY2suYXJn
KTsKLSAgICB9Ci0gIH0KLX0KLXZhciBfX0FUUFJFUlVOX18gID0gW107IC8vIGZ1bmN0aW9ucyBj
YWxsZWQgYmVmb3JlIHRoZSBydW50aW1lIGlzIGluaXRpYWxpemVkCi12YXIgX19BVElOSVRfXyAg
ICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIGR1cmluZyBzdGFydHVwCi12YXIgX19BVE1BSU5f
XyAgICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIHdoZW4gbWFpbigpIGlzIHRvIGJlIHJ1bgot
dmFyIF9fQVRFWElUX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCBkdXJpbmcgc2h1dGRv
d24KLXZhciBfX0FUUE9TVFJVTl9fID0gW107IC8vIGZ1bmN0aW9ucyBjYWxsZWQgYWZ0ZXIgdGhl
IHJ1bnRpbWUgaGFzIGV4aXRlZAotdmFyIHJ1bnRpbWVJbml0aWFsaXplZCA9IGZhbHNlOwotZnVu
Y3Rpb24gcHJlUnVuKCkgewotICAvLyBjb21wYXRpYmlsaXR5IC0gbWVyZ2UgaW4gYW55dGhpbmcg
ZnJvbSBNb2R1bGVbJ3ByZVJ1biddIGF0IHRoaXMgdGltZQotICBpZiAoTW9kdWxlWydwcmVSdW4n
XSkgewotICAgIGlmICh0eXBlb2YgTW9kdWxlWydwcmVSdW4nXSA9PSAnZnVuY3Rpb24nKSBNb2R1
bGVbJ3ByZVJ1biddID0gW01vZHVsZVsncHJlUnVuJ11dOwotICAgIHdoaWxlIChNb2R1bGVbJ3By
ZVJ1biddLmxlbmd0aCkgewotICAgICAgYWRkT25QcmVSdW4oTW9kdWxlWydwcmVSdW4nXS5zaGlm
dCgpKTsKLSAgICB9Ci0gIH0KLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVFBSRVJVTl9fKTsK
LX0KLWZ1bmN0aW9uIGVuc3VyZUluaXRSdW50aW1lKCkgewotICBpZiAocnVudGltZUluaXRpYWxp
emVkKSByZXR1cm47Ci0gIHJ1bnRpbWVJbml0aWFsaXplZCA9IHRydWU7Ci0gIGNhbGxSdW50aW1l
Q2FsbGJhY2tzKF9fQVRJTklUX18pOwotfQotZnVuY3Rpb24gcHJlTWFpbigpIHsKLSAgY2FsbFJ1
bnRpbWVDYWxsYmFja3MoX19BVE1BSU5fXyk7Ci19Ci1mdW5jdGlvbiBleGl0UnVudGltZSgpIHsK
LSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVEVYSVRfXyk7Ci19Ci1mdW5jdGlvbiBwb3N0UnVu
KCkgewotICAvLyBjb21wYXRpYmlsaXR5IC0gbWVyZ2UgaW4gYW55dGhpbmcgZnJvbSBNb2R1bGVb
J3Bvc3RSdW4nXSBhdCB0aGlzIHRpbWUKLSAgaWYgKE1vZHVsZVsncG9zdFJ1biddKSB7Ci0gICAg
aWYgKHR5cGVvZiBNb2R1bGVbJ3Bvc3RSdW4nXSA9PSAnZnVuY3Rpb24nKSBNb2R1bGVbJ3Bvc3RS
dW4nXSA9IFtNb2R1bGVbJ3Bvc3RSdW4nXV07Ci0gICAgd2hpbGUgKE1vZHVsZVsncG9zdFJ1bidd
Lmxlbmd0aCkgewotICAgICAgYWRkT25Qb3N0UnVuKE1vZHVsZVsncG9zdFJ1biddLnNoaWZ0KCkp
OwotICAgIH0KLSAgfQotICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUUE9TVFJVTl9fKTsKLX0K
LWZ1bmN0aW9uIGFkZE9uUHJlUnVuKGNiKSB7Ci0gIF9fQVRQUkVSVU5fXy51bnNoaWZ0KGNiKTsK
LX0KLU1vZHVsZVsnYWRkT25QcmVSdW4nXSA9IE1vZHVsZS5hZGRPblByZVJ1biA9IGFkZE9uUHJl
UnVuOwotZnVuY3Rpb24gYWRkT25Jbml0KGNiKSB7Ci0gIF9fQVRJTklUX18udW5zaGlmdChjYik7
Ci19Ci1Nb2R1bGVbJ2FkZE9uSW5pdCddID0gTW9kdWxlLmFkZE9uSW5pdCA9IGFkZE9uSW5pdDsK
LWZ1bmN0aW9uIGFkZE9uUHJlTWFpbihjYikgewotICBfX0FUTUFJTl9fLnVuc2hpZnQoY2IpOwot
fQotTW9kdWxlWydhZGRPblByZU1haW4nXSA9IE1vZHVsZS5hZGRPblByZU1haW4gPSBhZGRPblBy
ZU1haW47Ci1mdW5jdGlvbiBhZGRPbkV4aXQoY2IpIHsKLSAgX19BVEVYSVRfXy51bnNoaWZ0KGNi
KTsKLX0KLU1vZHVsZVsnYWRkT25FeGl0J10gPSBNb2R1bGUuYWRkT25FeGl0ID0gYWRkT25FeGl0
OwotZnVuY3Rpb24gYWRkT25Qb3N0UnVuKGNiKSB7Ci0gIF9fQVRQT1NUUlVOX18udW5zaGlmdChj
Yik7Ci19Ci1Nb2R1bGVbJ2FkZE9uUG9zdFJ1biddID0gTW9kdWxlLmFkZE9uUG9zdFJ1biA9IGFk
ZE9uUG9zdFJ1bjsKLS8vIFRvb2xzCi0vLyBUaGlzIHByb2Nlc3NlcyBhIEpTIHN0cmluZyBpbnRv
IGEgQy1saW5lIGFycmF5IG9mIG51bWJlcnMsIDAtdGVybWluYXRlZC4KLS8vIEZvciBMTFZNLW9y
aWdpbmF0aW5nIHN0cmluZ3MsIHNlZSBwYXJzZXIuanM6cGFyc2VMTFZNU3RyaW5nIGZ1bmN0aW9u
Ci1mdW5jdGlvbiBpbnRBcnJheUZyb21TdHJpbmcoc3RyaW5neSwgZG9udEFkZE51bGwsIGxlbmd0
aCAvKiBvcHRpb25hbCAqLykgewotICB2YXIgcmV0ID0gKG5ldyBSdW50aW1lLlVURjhQcm9jZXNz
b3IoKSkucHJvY2Vzc0pTU3RyaW5nKHN0cmluZ3kpOwotICBpZiAobGVuZ3RoKSB7Ci0gICAgcmV0
Lmxlbmd0aCA9IGxlbmd0aDsKLSAgfQotICBpZiAoIWRvbnRBZGROdWxsKSB7Ci0gICAgcmV0LnB1
c2goMCk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVsZVsnaW50QXJyYXlGcm9tU3RyaW5n
J10gPSBpbnRBcnJheUZyb21TdHJpbmc7Ci1mdW5jdGlvbiBpbnRBcnJheVRvU3RyaW5nKGFycmF5
KSB7Ci0gIHZhciByZXQgPSBbXTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7
IGkrKykgewotICAgIHZhciBjaHIgPSBhcnJheVtpXTsKLSAgICBpZiAoY2hyID4gMHhGRikgewot
ICAgICAgY2hyICY9IDB4RkY7Ci0gICAgfQotICAgIHJldC5wdXNoKFN0cmluZy5mcm9tQ2hhckNv
ZGUoY2hyKSk7Ci0gIH0KLSAgcmV0dXJuIHJldC5qb2luKCcnKTsKLX0KLU1vZHVsZVsnaW50QXJy
YXlUb1N0cmluZyddID0gaW50QXJyYXlUb1N0cmluZzsKLS8vIFdyaXRlIGEgSmF2YXNjcmlwdCBh
cnJheSB0byBzb21ld2hlcmUgaW4gdGhlIGhlYXAKLWZ1bmN0aW9uIHdyaXRlU3RyaW5nVG9NZW1v
cnkoc3RyaW5nLCBidWZmZXIsIGRvbnRBZGROdWxsKSB7Ci0gIHZhciBhcnJheSA9IGludEFycmF5
RnJvbVN0cmluZyhzdHJpbmcsIGRvbnRBZGROdWxsKTsKLSAgdmFyIGkgPSAwOwotICB3aGlsZSAo
aSA8IGFycmF5Lmxlbmd0aCkgewotICAgIHZhciBjaHIgPSBhcnJheVtpXTsKLSAgICBIRUFQOFso
KChidWZmZXIpKyhpKSl8MCldPWNocgotICAgIGkgPSBpICsgMTsKLSAgfQotfQotTW9kdWxlWyd3
cml0ZVN0cmluZ1RvTWVtb3J5J10gPSB3cml0ZVN0cmluZ1RvTWVtb3J5OwotZnVuY3Rpb24gd3Jp
dGVBcnJheVRvTWVtb3J5KGFycmF5LCBidWZmZXIpIHsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBh
cnJheS5sZW5ndGg7IGkrKykgewotICAgIEhFQVA4WygoKGJ1ZmZlcikrKGkpKXwwKV09YXJyYXlb
aV07Ci0gIH0KLX0KLU1vZHVsZVsnd3JpdGVBcnJheVRvTWVtb3J5J10gPSB3cml0ZUFycmF5VG9N
ZW1vcnk7Ci1mdW5jdGlvbiB1blNpZ24odmFsdWUsIGJpdHMsIGlnbm9yZSwgc2lnKSB7Ci0gIGlm
ICh2YWx1ZSA+PSAwKSB7Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9Ci0gIHJldHVybiBiaXRzIDw9
IDMyID8gMipNYXRoLmFicygxIDw8IChiaXRzLTEpKSArIHZhbHVlIC8vIE5lZWQgc29tZSB0cmlj
a2VyeSwgc2luY2UgaWYgYml0cyA9PSAzMiwgd2UgYXJlIHJpZ2h0IGF0IHRoZSBsaW1pdCBvZiB0
aGUgYml0cyBKUyB1c2VzIGluIGJpdHNoaWZ0cwotICAgICAgICAgICAgICAgICAgICA6IE1hdGgu
cG93KDIsIGJpdHMpICAgICAgICAgKyB2YWx1ZTsKLX0KLWZ1bmN0aW9uIHJlU2lnbih2YWx1ZSwg
Yml0cywgaWdub3JlLCBzaWcpIHsKLSAgaWYgKHZhbHVlIDw9IDApIHsKLSAgICByZXR1cm4gdmFs
dWU7Ci0gIH0KLSAgdmFyIGhhbGYgPSBiaXRzIDw9IDMyID8gTWF0aC5hYnMoMSA8PCAoYml0cy0x
KSkgLy8gYWJzIGlzIG5lZWRlZCBpZiBiaXRzID09IDMyCi0gICAgICAgICAgICAgICAgICAgICAg
ICA6IE1hdGgucG93KDIsIGJpdHMtMSk7Ci0gIGlmICh2YWx1ZSA+PSBoYWxmICYmIChiaXRzIDw9
IDMyIHx8IHZhbHVlID4gaGFsZikpIHsgLy8gZm9yIGh1Z2UgdmFsdWVzLCB3ZSBjYW4gaGl0IHRo
ZSBwcmVjaXNpb24gbGltaXQgYW5kIGFsd2F5cyBnZXQgdHJ1ZSBoZXJlLiBzbyBkb24ndCBkbyB0
aGF0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gYnV0LCBpbiBnZW5lcmFsIHRoZXJlIGlzIG5vIHBlcmZlY3Qgc29sdXRpb24gaGVyZS4g
V2l0aCA2NC1iaXQgaW50cywgd2UgZ2V0IHJvdW5kaW5nIGFuZCBlcnJvcnMKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBJbiBp
NjQgbW9kZSAxLCByZXNpZ24gdGhlIHR3byBwYXJ0cyBzZXBhcmF0ZWx5IGFuZCBzYWZlbHkKLSAg
ICB2YWx1ZSA9IC0yKmhhbGYgKyB2YWx1ZTsgLy8gQ2Fubm90IGJpdHNoaWZ0IGhhbGYsIGFzIGl0
IG1heSBiZSBhdCB0aGUgbGltaXQgb2YgdGhlIGJpdHMgSlMgdXNlcyBpbiBiaXRzaGlmdHMKLSAg
fQotICByZXR1cm4gdmFsdWU7Ci19Ci1pZiAoIU1hdGhbJ2ltdWwnXSkgTWF0aFsnaW11bCddID0g
ZnVuY3Rpb24oYSwgYikgewotICB2YXIgYWggID0gYSA+Pj4gMTY7Ci0gIHZhciBhbCA9IGEgJiAw
eGZmZmY7Ci0gIHZhciBiaCAgPSBiID4+PiAxNjsKLSAgdmFyIGJsID0gYiAmIDB4ZmZmZjsKLSAg
cmV0dXJuIChhbCpibCArICgoYWgqYmwgKyBhbCpiaCkgPDwgMTYpKXwwOwotfTsKLU1hdGguaW11
bCA9IE1hdGhbJ2ltdWwnXTsKLS8vIEEgY291bnRlciBvZiBkZXBlbmRlbmNpZXMgZm9yIGNhbGxp
bmcgcnVuKCkuIElmIHdlIG5lZWQgdG8KLS8vIGRvIGFzeW5jaHJvbm91cyB3b3JrIGJlZm9yZSBy
dW5uaW5nLCBpbmNyZW1lbnQgdGhpcyBhbmQKLS8vIGRlY3JlbWVudCBpdC4gSW5jcmVtZW50aW5n
IG11c3QgaGFwcGVuIGluIGEgcGxhY2UgbGlrZQotLy8gUFJFX1JVTl9BRERJVElPTlMgKHVzZWQg
YnkgZW1jYyB0byBhZGQgZmlsZSBwcmVsb2FkaW5nKS4KLS8vIE5vdGUgdGhhdCB5b3UgY2FuIGFk
ZCBkZXBlbmRlbmNpZXMgaW4gcHJlUnVuLCBldmVuIHRob3VnaAotLy8gaXQgaGFwcGVucyByaWdo
dCBiZWZvcmUgcnVuIC0gcnVuIHdpbGwgYmUgcG9zdHBvbmVkIHVudGlsCi0vLyB0aGUgZGVwZW5k
ZW5jaWVzIGFyZSBtZXQuCi12YXIgcnVuRGVwZW5kZW5jaWVzID0gMDsKLXZhciBydW5EZXBlbmRl
bmN5VHJhY2tpbmcgPSB7fTsKLXZhciBjYWxsZWRJbml0ID0gZmFsc2UsIGNhbGxlZFJ1biA9IGZh
bHNlOwotdmFyIHJ1bkRlcGVuZGVuY3lXYXRjaGVyID0gbnVsbDsKLWZ1bmN0aW9uIGFkZFJ1bkRl
cGVuZGVuY3koaWQpIHsKLSAgcnVuRGVwZW5kZW5jaWVzKys7Ci0gIGlmIChNb2R1bGVbJ21vbml0
b3JSdW5EZXBlbmRlbmNpZXMnXSkgewotICAgIE1vZHVsZVsnbW9uaXRvclJ1bkRlcGVuZGVuY2ll
cyddKHJ1bkRlcGVuZGVuY2llcyk7Ci0gIH0KLSAgaWYgKGlkKSB7Ci0gICAgYXNzZXJ0KCFydW5E
ZXBlbmRlbmN5VHJhY2tpbmdbaWRdKTsKLSAgICBydW5EZXBlbmRlbmN5VHJhY2tpbmdbaWRdID0g
MTsKLSAgfSBlbHNlIHsKLSAgICBNb2R1bGUucHJpbnRFcnIoJ3dhcm5pbmc6IHJ1biBkZXBlbmRl
bmN5IGFkZGVkIHdpdGhvdXQgSUQnKTsKLSAgfQotfQotTW9kdWxlWydhZGRSdW5EZXBlbmRlbmN5
J10gPSBhZGRSdW5EZXBlbmRlbmN5OwotZnVuY3Rpb24gcmVtb3ZlUnVuRGVwZW5kZW5jeShpZCkg
ewotICBydW5EZXBlbmRlbmNpZXMtLTsKLSAgaWYgKE1vZHVsZVsnbW9uaXRvclJ1bkRlcGVuZGVu
Y2llcyddKSB7Ci0gICAgTW9kdWxlWydtb25pdG9yUnVuRGVwZW5kZW5jaWVzJ10ocnVuRGVwZW5k
ZW5jaWVzKTsKLSAgfQotICBpZiAoaWQpIHsKLSAgICBhc3NlcnQocnVuRGVwZW5kZW5jeVRyYWNr
aW5nW2lkXSk7Ci0gICAgZGVsZXRlIHJ1bkRlcGVuZGVuY3lUcmFja2luZ1tpZF07Ci0gIH0gZWxz
ZSB7Ci0gICAgTW9kdWxlLnByaW50RXJyKCd3YXJuaW5nOiBydW4gZGVwZW5kZW5jeSByZW1vdmVk
IHdpdGhvdXQgSUQnKTsKLSAgfQotICBpZiAocnVuRGVwZW5kZW5jaWVzID09IDApIHsKLSAgICBp
ZiAocnVuRGVwZW5kZW5jeVdhdGNoZXIgIT09IG51bGwpIHsKLSAgICAgIGNsZWFySW50ZXJ2YWwo
cnVuRGVwZW5kZW5jeVdhdGNoZXIpOwotICAgICAgcnVuRGVwZW5kZW5jeVdhdGNoZXIgPSBudWxs
OwotICAgIH0gCi0gICAgLy8gSWYgcnVuIGhhcyBuZXZlciBiZWVuIGNhbGxlZCwgYW5kIHdlIHNo
b3VsZCBjYWxsIHJ1biAoSU5WT0tFX1JVTiBpcyB0cnVlLCBhbmQgTW9kdWxlLm5vSW5pdGlhbFJ1
biBpcyBub3QgZmFsc2UpCi0gICAgaWYgKCFjYWxsZWRSdW4gJiYgc2hvdWxkUnVuTm93KSBydW4o
KTsKLSAgfQotfQotTW9kdWxlWydyZW1vdmVSdW5EZXBlbmRlbmN5J10gPSByZW1vdmVSdW5EZXBl
bmRlbmN5OwotTW9kdWxlWyJwcmVsb2FkZWRJbWFnZXMiXSA9IHt9OyAvLyBtYXBzIHVybCB0byBp
bWFnZSBkYXRhCi1Nb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdID0ge307IC8vIG1hcHMgdXJsIHRv
IGF1ZGlvIGRhdGEKLWZ1bmN0aW9uIGxvYWRNZW1vcnlJbml0aWFsaXplcihmaWxlbmFtZSkgewot
ICBmdW5jdGlvbiBhcHBseURhdGEoZGF0YSkgewotICAgIEhFQVBVOC5zZXQoZGF0YSwgU1RBVElD
X0JBU0UpOwotICB9Ci0gIC8vIGFsd2F5cyBkbyB0aGlzIGFzeW5jaHJvbm91c2x5LCB0byBrZWVw
IHNoZWxsIGFuZCB3ZWIgYXMgc2ltaWxhciBhcyBwb3NzaWJsZQotICBhZGRPblByZVJ1bihmdW5j
dGlvbigpIHsKLSAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSB8fCBFTlZJUk9OTUVOVF9JU19T
SEVMTCkgewotICAgICAgYXBwbHlEYXRhKE1vZHVsZVsncmVhZEJpbmFyeSddKGZpbGVuYW1lKSk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgIEJyb3dzZXIuYXN5bmNMb2FkKGZpbGVuYW1lLCBmdW5jdGlv
bihkYXRhKSB7Ci0gICAgICAgIGFwcGx5RGF0YShkYXRhKTsKLSAgICAgIH0sIGZ1bmN0aW9uKGRh
dGEpIHsKLSAgICAgICAgdGhyb3cgJ2NvdWxkIG5vdCBsb2FkIG1lbW9yeSBpbml0aWFsaXplciAn
ICsgZmlsZW5hbWU7Ci0gICAgICB9KTsKLSAgICB9Ci0gIH0pOwotfQotLy8gPT09IEJvZHkgPT09
Ci1TVEFUSUNfQkFTRSA9IDg7Ci1TVEFUSUNUT1AgPSBTVEFUSUNfQkFTRSArIDE2MzkyOwotdmFy
IF9zdGRvdXQ7Ci12YXIgX3N0ZGluOwotdmFyIF9zdGRlcnI7Ci0vKiBnbG9iYWwgaW5pdGlhbGl6
ZXJzICovIF9fQVRJTklUX18ucHVzaCh7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBydW5Qb3N0U2V0cygp
IH0gfSx7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBfX0dMT0JBTF9fSV9hKCkgfSB9LHsgZnVuYzogZnVu
Y3Rpb24oKSB7IF9fR0xPQkFMX19JX2E4KCkgfSB9KTsKLXZhciBfX19mc211ODsKLXZhciBfX19k
c29faGFuZGxlOwotdmFyIF9fWlRWTjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9F
OwotdmFyIF9fWlRWTjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FOwotdmFyIF9fWk5T
dDNfXzExMl9fcnNfZGVmYXVsdEQxRXY7Ci12YXIgX19aTlN0MTNydW50aW1lX2Vycm9yQzFFUEtj
OwotdmFyIF9fWk5TdDEzcnVudGltZV9lcnJvckQxRXY7Ci12YXIgX19aTlN0MTJsZW5ndGhfZXJy
b3JEMUV2OwotdmFyIF9fWk5TdDNfXzE2bG9jYWxlQzFFdjsKLXZhciBfX1pOU3QzX18xNmxvY2Fs
ZUMxRVJLUzBfOwotdmFyIF9fWk5TdDNfXzE2bG9jYWxlRDFFdjsKLXZhciBfX1pOU3Q4YmFkX2Nh
c3RDMUV2OwotdmFyIF9fWk5TdDhiYWRfY2FzdEQxRXY7Ci12YXIgX3N0ZG91dCA9IF9zdGRvdXQ9
YWxsb2NhdGUoWzAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci12YXIgX3N0
ZGluID0gX3N0ZGluPWFsbG9jYXRlKFswLDAsMCwwLDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFU
SUMpOwotdmFyIF9zdGRlcnIgPSBfc3RkZXJyPWFsbG9jYXRlKFswLDAsMCwwLDAsMCwwLDBdLCAi
aTgiLCBBTExPQ19TVEFUSUMpOwotX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVf
aW5mb0U9YWxsb2NhdGUoWzAsMCwwLDAsMjAwLDM3LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
XSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLV9fWlRWTjEwX19jeHhhYml2MTE3X19jbGFzc190eXBl
X2luZm9FPWFsbG9jYXRlKFswLDAsMCwwLDIxNiwzNywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci0vKiBtZW1vcnkgaW5pdGlhbGl6ZXIgKi8gYWxsb2Nh
dGUoWzAsMCwwLDAsMCwwLDM2LDY0LDAsMCwwLDAsMCwwLDg5LDY0LDAsMCwwLDAsMCwxMzYsMTk1
LDY0LDAsMCwwLDAsMTMyLDIxNSwxNTEsNjUsMCwxMjgsMjI0LDU1LDEyMSwxOTUsNjUsNjcsMjMs
MTEwLDUsMTgxLDE4MSwxODQsMTQ3LDcwLDI0NSwyNDksNjMsMjMzLDMsNzksNTYsNzcsNTAsMjks
NDgsMjQ5LDcyLDExOSwxMzAsOTAsNjAsMTkxLDExNSwxMjcsMjIxLDc5LDIxLDExNyw3NCwxMTcs
MTA4LDAsMCwwLDAsMCw3NCwxMTcsMTEwLDAsMCwwLDAsMCw2NSwxMTIsMTE0LDAsMCwwLDAsMCw3
Nyw5NywxMTQsMCwwLDAsMCwwLDcwLDEwMSw5OCwwLDAsMCwwLDAsNzQsOTcsMTEwLDAsMCwwLDAs
MCw2OCwxMDEsOTksMTAxLDEwOSw5OCwxMDEsMTE0LDAsMCwwLDAsMCwwLDAsMCw3OCwxMTEsMTE4
LDEwMSwxMDksOTgsMTAxLDExNCwwLDAsMCwwLDAsMCwwLDAsNzksOTksMTE2LDExMSw5OCwxMDEs
MTE0LDAsODMsMTAxLDExMiwxMTYsMTAxLDEwOSw5OCwxMDEsMTE0LDAsMCwwLDAsMCwwLDAsMTE3
LDExMCwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCwzMiwxMDgsMTExLDk5LDk3
LDEwOCwxMDEsMzIsMTAyLDExMSwxMTQsMzIsMTE1LDExNiw5NywxMTAsMTAwLDk3LDExNCwxMDAs
MzIsMTA1LDExMCwxMTIsMTE3LDExNiwwLDAsMCw2NSwxMTcsMTAzLDExNywxMTUsMTE2LDAsMCw3
NCwxMTcsMTA4LDEyMSwwLDAsMCwwLDc0LDExNywxMTAsMTAxLDAsMCwwLDAsNzcsOTcsMTIxLDAs
MCwwLDAsMCw2NSwxMTIsMTE0LDEwNSwxMDgsMCwwLDAsNzcsOTcsMTE0LDk5LDEwNCwwLDAsMCw3
MCwxMDEsOTgsMTE0LDExNyw5NywxMTQsMTIxLDAsMCwwLDAsMCwwLDAsMCw3NCw5NywxMTAsMTE3
LDk3LDExNCwxMjEsMCw2OCwwLDAsMCwxMDEsMCwwLDAsOTksMCwwLDAsMCwwLDAsMCw3OCwwLDAs
MCwxMTEsMCwwLDAsMTE4LDAsMCwwLDAsMCwwLDAsNzksMCwwLDAsOTksMCwwLDAsMTE2LDAsMCww
LDAsMCwwLDAsODMsMCwwLDAsMTAxLDAsMCwwLDExMiwwLDAsMCwwLDAsMCwwLDk4LDk3LDExNSwx
MDUsOTksOTUsMTE1LDExNiwxMTQsMTA1LDExMCwxMDMsMCwwLDAsMCw2NSwwLDAsMCwxMTcsMCww
LDAsMTAzLDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsMTE3LDAsMCwwLDEwOCwwLDAsMCwwLDAsMCww
LDc0LDAsMCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMCwwLDAsMCw3NywwLDAsMCw5NywwLDAsMCwx
MjEsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCwxMTIsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsNzcs
MCwwLDAsOTcsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsNzAsMCwwLDAsMTAxLDAsMCwwLDk4LDAs
MCwwLDAsMCwwLDAsNzQsMCwwLDAsOTcsMCwwLDAsMTEwLDAsMCwwLDAsMCwwLDAsNjgsMCwwLDAs
MTAxLDAsMCwwLDk5LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAsOTgsMCwwLDAsMTAxLDAsMCww
LDExNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzgsMCwwLDAsMTExLDAsMCwwLDExOCwwLDAsMCwx
MDEsMCwwLDAsMTA5LDAsMCwwLDk4LDAsMCwwLDEwMSwwLDAsMCwxMTQsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDc5LDAsMCwwLDk5LDAsMCwwLDExNiwwLDAsMCwxMTEsMCwwLDAsOTgsMCwwLDAsMTAx
LDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDEwMSwwLDAsMCwxMTIsMCwwLDAsMTE2
LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAsOTgsMCwwLDAsMTAxLDAsMCwwLDExNCwwLDAsMCww
LDAsMCwwLDY1LDAsMCwwLDExNywwLDAsMCwxMDMsMCwwLDAsMTE3LDAsMCwwLDExNSwwLDAsMCwx
MTYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNywwLDAsMCwxMDgsMCwwLDAsMTIx
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCwxMTcsMCwwLDAsMTEwLDAsMCwwLDEwMSww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAsMTEyLDAsMCwwLDExNCwwLDAsMCwxMDUsMCww
LDAsMTA4LDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsOTcsMCwwLDAsMTE0LDAsMCwwLDk5LDAsMCww
LDEwNCwwLDAsMCwwLDAsMCwwLDcwLDAsMCwwLDEwMSwwLDAsMCw5OCwwLDAsMCwxMTQsMCwwLDAs
MTE3LDAsMCwwLDk3LDAsMCwwLDExNCwwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc0
LDAsMCwwLDk3LDAsMCwwLDExMCwwLDAsMCwxMTcsMCwwLDAsOTcsMCwwLDAsMTE0LDAsMCwwLDEy
MSwwLDAsMCwwLDAsMCwwLDgwLDc3LDAsMCwwLDAsMCwwLDY1LDc3LDAsMCwwLDAsMCwwLDgwLDAs
MCwwLDc3LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCw3NywwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMTA4LDExMSw5OSw5NywxMDgsMTAxLDMyLDExMCwxMTEsMTE2LDMyLDExNSwxMTcsMTEy
LDExMiwxMTEsMTE0LDExNiwxMDEsMTAwLDAsMCwwLDAsMzcsMCwwLDAsNzMsMCwwLDAsNTgsMCww
LDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsODMsMCwwLDAsMzIsMCwwLDAs
MzcsMCwwLDAsMTEyLDAsMCwwLDAsMCwwLDAsMzcsNzMsNTgsMzcsNzcsNTgsMzcsODMsMzIsMzcs
MTEyLDAsMCwwLDAsMCwzNywwLDAsMCw5NywwLDAsMCwzMiwwLDAsMCwzNywwLDAsMCw5OCwwLDAs
MCwzMiwwLDAsMCwzNywwLDAsMCwxMDAsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsNzIsMCwwLDAs
NTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsODMsMCwwLDAsMzIs
MCwwLDAsMzcsMCwwLDAsODksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM3LDk3LDMyLDM3LDk4LDMy
LDM3LDEwMCwzMiwzNyw3Miw1OCwzNyw3Nyw1OCwzNyw4MywzMiwzNyw4OSwwLDAsMCwwLDM3LDAs
MCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4LDAsMCwwLDM3LDAsMCww
LDgzLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNyw3Miw1OCwzNyw3Nyw1OCwzNyw4MywwLDAsMCww
LDAsMCwwLDAsMTE1LDExNiwxMDAsNTgsNTgsOTgsOTcsMTAwLDk1LDk3LDEwOCwxMDgsMTExLDk5
LDAsMCwzNywwLDAsMCwxMDksMCwwLDAsNDcsMCwwLDAsMzcsMCwwLDAsMTAwLDAsMCwwLDQ3LDAs
MCwwLDM3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzcsMTA5LDQ3LDM3LDEwMCw0
NywzNywxMjEsMCwwLDAsMCwwLDAsMCwwLDEwMiwwLDAsMCw5NywwLDAsMCwxMDgsMCwwLDAsMTE1
LDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDEwMiw5NywxMDgsMTE1LDEwMSwwLDAsMCwxMTYsMCww
LDAsMTE0LDAsMCwwLDExNywwLDAsMCwxMDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDExNiwxMTQs
MTE3LDEwMSwwLDAsMCwwLDU4LDMyLDAsMCwwLDAsMCwwLDEwNSwxMTEsMTE1LDk1LDk4LDk3LDEx
NSwxMDEsNTgsNTgsOTksMTA4LDEwMSw5NywxMTQsMCwzNywxMTIsMCwwLDAsMCwwLDAsMTE1LDEx
NiwxMDAsNTgsNTgsOTgsOTcsMTAwLDk1LDk5LDk3LDExNSwxMTYsMCwwLDAsNjcsMCwwLDAsMCww
LDAsMCwxMTgsMTAxLDk5LDExNiwxMTEsMTE0LDAsMCwzNyw0Niw0OCw3NiwxMDIsMCwwLDAsMTA5
LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiwzMiwxMDEsMTE0LDExNCwxMTEsMTE0LDAs
ODMsOTcsMTE2LDAsMCwwLDAsMCw3MCwxMTQsMTA1LDAsMCwwLDAsMCw4NCwxMDQsMTE3LDAsMCww
LDAsMCwzNyw3NiwxMDIsMCwwLDAsMCwwLDEwNSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSww
LDAsMCwwLDAsMCwwLDAsODcsMTAxLDEwMCwwLDAsMCwwLDAsODQsMTE3LDEwMSwwLDAsMCwwLDAs
NzcsMTExLDExMCwwLDAsMCwwLDAsODMsMTE3LDExMCwwLDAsMCwwLDAsODMsOTcsMTE2LDExNywx
MTQsMTAwLDk3LDEyMSwwLDAsMCwwLDAsMCwwLDAsNzAsMTE0LDEwNSwxMDAsOTcsMTIxLDAsMCw4
NCwxMDQsMTE3LDExNCwxMTUsMTAwLDk3LDEyMSwwLDAsMCwwLDAsMCwwLDAsODcsMTAxLDEwMCwx
MTAsMTAxLDExNSwxMDAsOTcsMTIxLDAsMCwwLDAsMCwwLDAsODQsMTE3LDEwMSwxMTUsMTAwLDk3
LDEyMSwwLDc3LDExMSwxMTAsMTAwLDk3LDEyMSwwLDAsODMsMTE3LDExMCwxMDAsOTcsMTIxLDAs
MCw4MywwLDAsMCw5NywwLDAsMCwxMTYsMCwwLDAsMCwwLDAsMCw3MCwwLDAsMCwxMTQsMCwwLDAs
MTA1LDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTA0LDAsMCwwLDExNywwLDAsMCwwLDAsMCwwLDg3
LDAsMCwwLDEwMSwwLDAsMCwxMDAsMCwwLDAsMCwwLDAsMCw4NCwwLDAsMCwxMTcsMCwwLDAsMTAx
LDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsMTExLDAsMCwwLDExMCwwLDAsMCwwLDAsMCwwLDExNywx
MTAsMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMDUsMTExLDExNSwxMTYs
MTE0LDEwMSw5NywxMDksOTUsOTksOTcsMTE2LDEwMSwxMDMsMTExLDExNCwxMjEsMzIsMTAxLDEx
NCwxMTQsMTExLDExNCwwLDAsMCwwLDAsODMsMCwwLDAsMTE3LDAsMCwwLDExMCwwLDAsMCwwLDAs
MCwwLDgzLDAsMCwwLDk3LDAsMCwwLDExNiwwLDAsMCwxMTcsMCwwLDAsMTE0LDAsMCwwLDEwMCww
LDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDcwLDAsMCwwLDExNCwwLDAs
MCwxMDUsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
ODQsMCwwLDAsMTA0LDAsMCwwLDExNywwLDAsMCwxMTQsMCwwLDAsMTE1LDAsMCwwLDEwMCwwLDAs
MCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg3LDAsMCwwLDEwMSwwLDAsMCwx
MDAsMCwwLDAsMTEwLDAsMCwwLDEwMSwwLDAsMCwxMTUsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCww
LDEyMSwwLDAsMCwwLDAsMCwwLDg0LDAsMCwwLDExNywwLDAsMCwxMDEsMCwwLDAsMTE1LDAsMCww
LDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw3NywwLDAsMCwxMTEsMCwwLDAs
MTEwLDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgz
LDAsMCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsNjgsMTAxLDk5LDAsMCwwLDAsMCw3OCwxMTEsMTE4LDAsMCwwLDAsMCw3
OSw5OSwxMTYsMCwwLDAsMCwwLDgzLDEwMSwxMTIsMCwwLDAsMCwwLDY1LDExNywxMDMsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
NDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsMCwwLDAsMCwwLDAsNDgsNDksNTAsNTEsNTIs
NTMsNTQsNTUsNTYsNTcsMCwwLDAsMCwwLDAsMzcsMCwwLDAsODksMCwwLDAsNDUsMCwwLDAsMzcs
MCwwLDAsMTA5LDAsMCwwLDQ1LDAsMCwwLDM3LDAsMCwwLDEwMCwwLDAsMCwzNywwLDAsMCw3Miww
LDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw4MywwLDAs
MCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCwwLDAsMCwwLDM3
LDAsMCwwLDczLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4LDAsMCwwLDM3LDAs
MCwwLDgzLDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDExMiwwLDAsMCwwLDAsMCwwLDM3LDAsMCww
LDEwOSwwLDAsMCw0NywwLDAsMCwzNywwLDAsMCwxMDAsMCwwLDAsNDcsMCwwLDAsMzcsMCwwLDAs
MTIxLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4
LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDM3LDcyLDU4LDM3LDc3LDU4LDM3LDgzLDM3LDcyLDU4
LDM3LDc3LDAsMCwwLDM3LDczLDU4LDM3LDc3LDU4LDM3LDgzLDMyLDM3LDExMiwwLDAsMCwwLDAs
MzcsODksNDUsMzcsMTA5LDQ1LDM3LDEwMCwzNywxMDksNDcsMzcsMTAwLDQ3LDM3LDEyMSwzNyw3
Miw1OCwzNyw3Nyw1OCwzNyw4MywzNywwLDAsMCwwLDAsMCwwLDM3LDExMiwwLDAsMCwwLDAsMCww
LDAsMCwwLDIyNCwzMSwwLDAsMzAsMCwwLDAsMTE2LDAsMCwwLDk4LDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQwLDMxLDAsMCwxOTYsMCwwLDAsMTY0LDAsMCwwLDM2LDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzMiwwLDAsNzAsMCwwLDAsNiwx
LDAsMCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2LDMyLDAsMCw5
NCwwLDAsMCw4LDAsMCwwLDExMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDMyLDMyLDAsMCw5NCwwLDAsMCwyMCwwLDAsMCwxMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCw1NiwzMiwwLDAsMTY4LDAsMCwwLDg0LDAsMCwwLDQ4LDAsMCwwLDIsMCww
LDAsOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg4LDMyLDAsMCwyMzAs
MCwwLDAsMTg2LDAsMCwwLDQ4LDAsMCwwLDQsMCwwLDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwxMjAsMzIsMCwwLDE2MiwwLDAsMCwxODgsMCwwLDAsNDgsMCwwLDAs
OCwwLDAsMCwxMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE1MiwzMiww
LDAsMjU0LDAsMCwwLDE0MCwwLDAsMCw0OCwwLDAsMCw2LDAsMCwwLDEwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNTYsMzMsMCwwLDI1MiwwLDAsMCwxNiwwLDAsMCw0OCww
LDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg4LDMzLDAsMCwxNjAsMCwwLDAs
MTA4LDAsMCwwLDQ4LDAsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTIwLDMz
LDAsMCwzOCwwLDAsMCwxMTAsMCwwLDAsNDgsMCwwLDAsMTIwLDAsMCwwLDQsMCwwLDAsMzIsMCww
LDAsNiwwLDAsMCwyMCwwLDAsMCw1NiwwLDAsMCwyLDAsMCwwLDI0OCwyNTUsMjU1LDI1NSwxMjAs
MzMsMCwwLDIyLDAsMCwwLDgsMCwwLDAsMzIsMCwwLDAsMTIsMCwwLDAsMiwwLDAsMCwzMCwwLDAs
MCwxMjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjAsMzMsMCwwLDI0
MiwwLDAsMCwyMjIsMCwwLDAsNDgsMCwwLDAsMjAsMCwwLDAsMTYsMCwwLDAsNjAsMCwwLDAsMjYs
MCwwLDAsMTgsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDI0OCwyNTUsMjU1LDI1NSwxNjAsMzMsMCww
LDcwLDAsMCwwLDEwNCwwLDAsMCwxMTYsMCwwLDAsMTIyLDAsMCwwLDY0LDAsMCwwLDQ0LDAsMCww
LDU0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjAwLDMzLDAsMCw3OCww
LDAsMCwxOTAsMCwwLDAsNDgsMCwwLDAsNDgsMCwwLDAsNDAsMCwwLDAsOCwwLDAsMCwzOCwwLDAs
MCw0OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMTYsMzMsMCwwLDU4LDAsMCwwLDY0
LDAsMCwwLDQ4LDAsMCwwLDQyLDAsMCwwLDg0LDAsMCwwLDEyLDAsMCwwLDU0LDAsMCwwLDIsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjMyLDMzLDAsMCwyNDYsMCwwLDAsMiwwLDAsMCw0
OCwwLDAsMCwyNCwwLDAsMCwzMCwwLDAsMCw2NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCw4LDM0LDAsMCw0NiwwLDAsMCwyMDgsMCwwLDAsNDgsMCwwLDAsMzYsMCwwLDAsMTQsMCwwLDAs
MTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDAsMzQsMCwwLDIxMCwwLDAsMCwxMTIs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDgsMzQsMCwwLDI4LDAsMCwwLDEzOCwwLDAs
MCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDM0LDAsMCw2LDAs
MCwwLDE3NCwwLDAsMCw0OCwwLDAsMCw4LDAsMCwwLDYsMCwwLDAsMTIsMCwwLDAsNCwwLDAsMCwx
MCwwLDAsMCw0LDAsMCwwLDIsMCwwLDAsMTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCw5NiwzNCwwLDAsOTgsMCwwLDAsMTgsMCwwLDAsNDgsMCwwLDAsMjAsMCwwLDAsMjQs
MCwwLDAsMzQsMCwwLDAsMjIsMCwwLDAsMjIsMCwwLDAsOCwwLDAsMCw2LDAsMCwwLDE4LDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDM0LDAsMCw0MCwwLDAsMCwyNCww
LDAsMCw0OCwwLDAsMCw0OCwwLDAsMCw0NiwwLDAsMCwzOCwwLDAsMCw0MCwwLDAsMCwzMCwwLDAs
MCw0NCwwLDAsMCwzNiwwLDAsMCw1NCwwLDAsMCw1MiwwLDAsMCw1MCwwLDAsMCwyNCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjAsMzQsMCwwLDUyLDAsMCwwLDQsMCwwLDAsNDgsMCww
LDAsNzYsMCwwLDAsNzAsMCwwLDAsNjQsMCwwLDAsNjYsMCwwLDAsNTgsMCwwLDAsNjgsMCwwLDAs
NjIsMCwwLDAsMjgsMCwwLDAsNzQsMCwwLDAsNzIsMCwwLDAsNDIsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMTkyLDM0LDAsMCw3NCwwLDAsMCw5MiwwLDAsMCw0OCwwLDAsMCwxNiwwLDAs
MCwxMiwwLDAsMCwxMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMDgsMzQsMCwwLDI2
LDAsMCwwLDE3NiwwLDAsMCw0OCwwLDAsMCwyMiwwLDAsMCwxNCwwLDAsMCwyLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDIyNCwzNCwwLDAsMjI4LDAsMCwwLDEzMCwwLDAsMCw0OCwwLDAs
MCwxNCwwLDAsMCw0LDAsMCwwLDIwLDAsMCwwLDE2LDAsMCwwLDYyLDAsMCwwLDQsMCwwLDAsNzYs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNSwwLDAsMTgwLDAsMCwwLDYwLDAsMCww
LDQ4LDAsMCwwLDIsMCwwLDAsOCwwLDAsMCw4LDAsMCwwLDEwNiwwLDAsMCw5NiwwLDAsMCwxOCww
LDAsMCw5NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzMiwzNSwwLDAsMTgwLDAsMCww
LDEzMiwwLDAsMCw0OCwwLDAsMCwxNiwwLDAsMCw2LDAsMCwwLDIsMCwwLDAsMTI2LDAsMCwwLDQ2
LDAsMCwwLDEyLDAsMCwwLDE4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDM1LDAs
MCwxODAsMCwwLDAsMTUyLDAsMCwwLDQ4LDAsMCwwLDEwLDAsMCwwLDEyLDAsMCwwLDI0LDAsMCww
LDM0LDAsMCwwLDc0LDAsMCwwLDYsMCwwLDAsNjYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsOTYsMzUsMCwwLDE4MCwwLDAsMCwzNCwwLDAsMCw0OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDExMiwzNSwwLDAsNTYsMCwwLDAsMTU2LDAsMCwwLDQ4LDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDM1LDAsMCwxODAsMCwwLDAsODAsMCww
LDAsNDgsMCwwLDAsMjAsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDEwLDAsMCwwLDE2LDAsMCwwLDI4
LDAsMCwwLDIyLDAsMCwwLDYsMCwwLDAsNiwwLDAsMCw4LDAsMCwwLDEwLDAsMCwwLDEwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYwLDM1LDAsMCw0LDEsMCwwLDM2LDAs
MCwwLDQ4LDAsMCwwLDIsMCwwLDAsNCwwLDAsMCwxOCwwLDAsMCwzNCwwLDAsMCw4LDAsMCwwLDYs
MCwwLDAsMjYsMCwwLDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwy
MDgsMzUsMCwwLDY2LDAsMCwwLDIxOCwwLDAsMCw3OCwwLDAsMCwyLDAsMCwwLDE0LDAsMCwwLDMy
LDAsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMjQsMzUsMCww
LDE4MCwwLDAsMCw4NiwwLDAsMCw0OCwwLDAsMCwxMCwwLDAsMCwxMiwwLDAsMCwyNCwwLDAsMCwz
NCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDI0MCwzNSwwLDAsMTgwLDAsMCwwLDIzOCwwLDAsMCw0OCwwLDAsMCwxMCwwLDAsMCwxMiwwLDAs
MCwyNCwwLDAsMCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2LDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMzYsMCwwLDEyNiwwLDAsMCwyMzQsMCwwLDAsMTYsMCwwLDAsMjIsMCww
LDAsMTYsMCwwLDAsMTAsMCwwLDAsODgsMCwwLDAsMTAwLDAsMCwwLDMwLDAsMCwwLDI4LDAsMCww
LDI2LDAsMCwwLDI4LDAsMCwwLDQwLDAsMCwwLDIwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDgsMzYsMCwwLDEwLDAsMCwwLDExOCwwLDAsMCw1OCwwLDAsMCwzOCwwLDAsMCwyOCwwLDAs
MCw2LDAsMCwwLDUwLDAsMCwwLDg2LDAsMCwwLDE4LDAsMCwwLDYsMCwwLDAsMTAsMCwwLDAsMjQs
MCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYsMzYsMCww
LDEwMCwwLDAsMCwxOTQsMCwwLDAsMiwwLDAsMCwyLDAsMCwwLDE0LDAsMCwwLDMyLDAsMCwwLDIs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNCwwLDAsMCwwLDAsMCwwLDU2LDM2LDAsMCw0
NCwwLDAsMCwyMDYsMCwwLDAsMjUyLDI1NSwyNTUsMjU1LDI1MiwyNTUsMjU1LDI1NSw1NiwzNiww
LDAsMTQ2LDAsMCwwLDEyNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNCwwLDAsMCwwLDAsMCwwLDgw
LDM2LDAsMCwyMTIsMCwwLDAsMjM2LDAsMCwwLDI1MiwyNTUsMjU1LDI1NSwyNTIsMjU1LDI1NSwy
NTUsODAsMzYsMCwwLDEwNiwwLDAsMCwyMDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgsMCwwLDAs
MCwwLDAsMCwxMDQsMzYsMCwwLDg4LDAsMCwwLDgsMSwwLDAsMjQ4LDI1NSwyNTUsMjU1LDI0OCwy
NTUsMjU1LDI1NSwxMDQsMzYsMCwwLDE4MiwwLDAsMCwyMzIsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDgsMCwwLDAsMCwwLDAsMCwxMjgsMzYsMCwwLDEwNCwwLDAsMCwyMDQsMCwwLDAsMjQ4LDI1NSwy
NTUsMjU1LDI0OCwyNTUsMjU1LDI1NSwxMjgsMzYsMCwwLDEzNiwwLDAsMCw1MCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzYsMCwwLDIwMiwwLDAsMCwxODQsMCwwLDAsMzgsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxOTIsMzYsMCwwLDI0OCwwLDAsMCwy
MjYsMCwwLDAsNCwwLDAsMCwyMiwwLDAsMCwxNiwwLDAsMCwxMCwwLDAsMCw1OCwwLDAsMCwxMDAs
MCwwLDAsMzAsMCwwLDAsMjgsMCwwLDAsMjYsMCwwLDAsMjgsMCwwLDAsNDAsMCwwLDAsMjYsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjA4LDM2LDAsMCwxNTQsMCwwLDAsMTc4LDAsMCww
LDM0LDAsMCwwLDM4LDAsMCwwLDI4LDAsMCwwLDYsMCwwLDAsOTAsMCwwLDAsODYsMCwwLDAsMTgs
MCwwLDAsNiwwLDAsMCwxMCwwLDAsMCwyNCwwLDAsMCwxNiwwLDAsMCwxNCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDM3LDAsMCwyMjAsMCwwLDAsMTQ0LDAsMCwwLDQ4LDAsMCwwLDY4
LDAsMCwwLDExOCwwLDAsMCw0MCwwLDAsMCw4MCwwLDAsMCw2LDAsMCwwLDI4LDAsMCwwLDUyLDAs
MCwwLDIwLDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDMyLDM3LDAsMCwx
MDIsMCwwLDAsNTQsMCwwLDAsNDgsMCwwLDAsMTEyLDAsMCwwLDQsMCwwLDAsNjYsMCwwLDAsNzQs
MCwwLDAsNzYsMCwwLDAsMjIsMCwwLDAsMTE0LDAsMCwwLDUwLDAsMCwwLDEwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDY0LDM3LDAsMCwyMjQsMCwwLDAsMTE0LDAsMCwwLDQ4LDAsMCww
LDE0LDAsMCwwLDYwLDAsMCwwLDQ2LDAsMCwwLDQyLDAsMCwwLDc4LDAsMCwwLDUyLDAsMCwwLDky
LDAsMCwwLDU2LDAsMCwwLDMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDk2LDM3LDAs
MCw3NiwwLDAsMCwxNzIsMCwwLDAsNDgsMCwwLDAsMTAyLDAsMCwwLDEwOCwwLDAsMCwyNiwwLDAs
MCw3MiwwLDAsMCwyNCwwLDAsMCwxOCwwLDAsMCw4MCwwLDAsMCw3MCwwLDAsMCw2OCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzcsMCwwLDkwLDAsMCwwLDY4LDAsMCwwLDYyLDAs
MCwwLDIyLDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDg4LDAsMCwwLDEwMCwwLDAsMCwzMCwwLDAs
MCw3MiwwLDAsMCw4MiwwLDAsMCwxMiwwLDAsMCw0MCwwLDAsMCwyMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwxNjgsMzcsMCwwLDE0LDAsMCwwLDIxNCwwLDAsMCw2MCwwLDAsMCwzOCww
LDAsMCwyOCwwLDAsMCw2LDAsMCwwLDUwLDAsMCwwLDg2LDAsMCwwLDE4LDAsMCwwLDU2LDAsMCww
LDI0LDAsMCwwLDQsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMTg0LDM3LDAsMCwyNTAsMCwwLDAsMTk4LDAsMCwwLDYyLDAsMCwwLDE1MCwwLDAsMCw4LDAs
MCwwLDIsMCwwLDAsNiwwLDAsMCw0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4MywxMTYsNTcsMTE2
LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSwwLDAsMCwwLDgzLDExNiw1NywxMDEsMTIw
LDk5LDEwMSwxMTIsMTE2LDEwNSwxMTEsMTEwLDAsMCwwLDAsODMsMTE2LDU3LDk4LDk3LDEwMCw5
NSw5NywxMDgsMTA4LDExMSw5OSwwLDAsMCwwLDgzLDExNiw1Niw5OCw5NywxMDAsOTUsOTksOTcs
MTE1LDExNiwwLDAsMCwwLDAsODMsMTE2LDQ5LDUxLDExNCwxMTcsMTEwLDExNiwxMDUsMTA5LDEw
MSw5NSwxMDEsMTE0LDExNCwxMTEsMTE0LDAsMCwwLDAsMCwwLDAsODMsMTE2LDQ5LDUwLDEwOCwx
MDEsMTEwLDEwMywxMTYsMTA0LDk1LDEwMSwxMTQsMTE0LDExMSwxMTQsMCwwLDAsMCwwLDAsMCww
LDgzLDExNiw0OSw0OSwxMDgsMTExLDEwMywxMDUsOTksOTUsMTAxLDExNCwxMTQsMTExLDExNCww
LDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMTYsMTA1LDEwOSwxMDEsOTUsOTgsOTcsMTE1LDEw
MSw2OSwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsMTA5LDExMSwxMTAsMTAx
LDEyMSw5NSwxMTIsMTE3LDExNiw3MywxMTksNzgsODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0
LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQs
NzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2
LDExNSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDU3LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYsNzMsOTksNzgsODMsOTUsNDks
NTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwx
MTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwx
MTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDc4LDgz
LDExNiw1MSw5NSw5NSw0OSw1NywxMDksMTExLDExMCwxMDEsMTIxLDk1LDEwMywxMDEsMTE2LDcz
LDExOSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAy
LDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3MywxMTksNzgsODMsOTUsNDksNDks
OTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2
OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsMTA5LDExMSwxMTAsMTAxLDEy
MSw5NSwxMDMsMTAxLDExNiw3Myw5OSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwxMTQsMTAx
LDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3Myw5
OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUs
NzMsOTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDk4
LDk3LDExNSwxMDUsOTksOTUsMTA1LDExMSwxMTUsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEw
NCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksMCww
LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTgsOTcsMTE1LDEwNSw5OSw5NSwx
MDUsMTExLDExNSw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQs
OTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUsMTEyLDExNywxMTYsNzMsMTE5LDY5
LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5NSw5NSwxMTAsMTE3LDEwOSw5NSwx
MTIsMTE3LDExNiw3Myw5OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTUs
OTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDc4LDgzLDEx
Niw1MSw5NSw5NSw0OSw1Nyw5NSw5NSwxMTAsMTE3LDEwOSw5NSwxMDMsMTAxLDExNiw3Myw5OSw2
OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2LDEwNSwxMDksMTAxLDk1LDEx
MiwxMTcsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEw
OSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3MywxMTksNzgs
ODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDEx
OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMTYs
MTA1LDEwOSwxMDEsOTUsMTEyLDExNywxMTYsNzMsOTksNzgsODMsOTUsNDksNTcsMTExLDExNSwx
MTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDEx
MSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEw
NSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1
LDk1LDQ5LDU2LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDExNiw3MywxMTksNzgsODMsOTUs
NDksNTcsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEw
MSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQs
OTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAs
MCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2LDEwNSwxMDksMTAxLDk1LDEwMywxMDEsMTE2
LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywx
MDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDk5LDc4LDgzLDk1LDQ5LDQ5
LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2
OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMTAsMTE3LDEwOSwxMTIs
MTE3LDExMCw5OSwxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDU2LDExMCwxMTcsMTA5LDExMiwxMTcsMTEwLDk5LDExNiw3Myw5OSw2OSw2OSwwLDAsMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEwMSwxMTUsNzMs
MTE5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDEwOSwxMDEsMTE1LDEx
NSw5NywxMDMsMTAxLDExNSw3Myw5OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw1NiwxMDUsMTExLDExNSw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCwwLDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDU2LDEwNSwxMTEsMTE1LDk1LDk4LDk3LDExNSwxMDEsNTUsMTAyLDk3
LDEwNSwxMDgsMTE3LDExNCwxMDEsNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUs
NDksNTUsMTEwLDExNywxMDksOTUsMTEyLDExNywxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDEx
MSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3
LDExNiwxMTEsMTE0LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwx
MTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywxMDksOTUsMTEyLDExNywxMTYsNzMsOTksNzgs
ODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUs
MTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3
LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAs
MCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwx
MTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDEx
NywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDExOSw3OCw4Myw5NSw0
OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5
LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywx
MDksOTUsMTAzLDEwMSwxMTYsNzMsOTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYsMTE0LDEw
MSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMs
OTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1
LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDks
NTUsOTksMTExLDEwOCwxMDgsOTcsMTE2LDEwMSw3MywxMTksNjksNjksMCwwLDAsMCwwLDc4LDgz
LDExNiw1MSw5NSw5NSw0OSw1NSw5OSwxMTEsMTA4LDEwOCw5NywxMTYsMTAxLDczLDk5LDY5LDY5
LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4
LDExNiw3MywxMTksOTksNDksNDgsOTUsMTA5LDk4LDExNSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYs
NjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSw5OSwxMTEsMTAw
LDEwMSw5OSwxMTgsMTE2LDczLDk5LDk5LDQ5LDQ4LDk1LDEwOSw5OCwxMTUsMTE2LDk3LDExNiwx
MDEsOTUsMTE2LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUs
OTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3Myw2OCwxMTUsOTksNDksNDgsOTUsMTA5LDk4LDEx
NSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3Myw2OCwxMDUsOTksNDksNDgs
OTUsMTA5LDk4LDExNSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNTQsMTA4LDExMSw5OSw5NywxMDgsMTAxLDUzLDEwMiw5Nyw5
OSwxMDEsMTE2LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NCwxMDgsMTExLDk5LDk3
LDEwOCwxMDEsNTMsOTUsOTUsMTA1LDEwOSwxMTIsNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDUzLDk5LDExNiwxMjEsMTEyLDEwMSw3MywxMTksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNTMsOTksMTE2LDEyMSwxMTIsMTAxLDczLDk5LDY5LDY5LDAsMCww
LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDUwLDQ4LDk1LDk1LDExNiwxMDUsMTA5LDEw
MSw5NSwxMDMsMTAxLDExNiw5NSw5OSw5NSwxMTUsMTE2LDExMSwxMTQsOTcsMTAzLDEwMSw3Mywx
MTksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTAsNDgsOTUsOTUs
MTE2LDEwNSwxMDksMTAxLDk1LDEwMywxMDEsMTE2LDk1LDk5LDk1LDExNSwxMTYsMTExLDExNCw5
NywxMDMsMTAxLDczLDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDQ5LDU3LDk1LDk1LDEwNSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5NSw5OSw5NywxMTYs
MTAxLDEwMywxMTEsMTE0LDEyMSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTUs
OTUsOTUsMTE5LDEwNSwxMDAsMTAxLDExMCw5NSwxMDIsMTE0LDExMSwxMDksOTUsMTE3LDExNiwx
MDIsNTYsNzMsNzYsMTA2LDUxLDUwLDY5LDY5LDY5LDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5
NSw5NSw0OSw0OSw1NCw5NSw5NSwxMTAsOTcsMTE0LDExNCwxMTEsMTE5LDk1LDExNiwxMTEsOTUs
MTE3LDExNiwxMDIsNTYsNzMsNzYsMTA2LDUxLDUwLDY5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUzLDk4LDk3LDExNSwxMDUsOTksOTUsMTE1LDExNiwxMTQs
MTAxLDk3LDEwOSw5OCwxMTcsMTAyLDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0
LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCww
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTMsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMTUs
MTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0
LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDAsMCww
LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTIsMTAxLDExNCwxMTQsMTExLDEx
NCw5NSw5OSw5NywxMTYsMTAxLDEwMywxMTEsMTE0LDEyMSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUyLDk1LDk1LDExNSwxMDQsOTcsMTE0LDEwMSwxMDAsOTUs
OTksMTExLDExNywxMTAsMTE2LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUs
NDksNDksNTIsOTUsOTUsMTEwLDExNywxMDksOTUsMTEyLDExNywxMTYsOTUsOTgsOTcsMTE1LDEw
MSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUyLDk1LDk1LDEx
MCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2LDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCwwLDAs
MCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEw
MSwxMTUsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSw5
OCw5NywxMTUsMTA1LDk5LDk1LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDczLDExOSw3OCw4
Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5
LDY5LDY5LDY5LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTEsOTgsOTcsMTE1LDEw
NSw5OSw5NSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5
OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjks
MCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSw5OCw5NywxMTUsMTA1LDk5LDk1LDEwNSwx
MTUsMTE2LDExNCwxMDEsOTcsMTA5LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0
LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNDksNTEsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMDUsMTE1LDExNiwxMTQs
MTAxLDk3LDEwOSw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQs
OTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw0OSw1MCwxMTUsMTIxLDExNSwxMTYsMTAxLDEwOSw5NSwxMDEsMTE0LDExNCwxMTEsMTE0LDY5
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTAsOTksMTExLDEwMCwxMDEsOTksMTE4LDEx
Niw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTAsOTUs
OTUsMTAwLDExMSw5NSwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEwMSw2OSwwLDAsNzgsODMsMTE2
LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDExNSwxMTYsMTAwLDExMSwxMTcsMTE2LDk4LDExNywx
MDIsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDks
NDksOTUsOTUsMTE1LDExNiwxMDAsMTExLDExNywxMTYsOTgsMTE3LDEwMiw3Myw5OSw2OSw2OSww
LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDEwOSwxMTEs
MTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwx
MTIsMTE3LDExNiw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDQ5LDQ5LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTAzLDEwMSwxMTYsNzMsMTE5
LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUs
MTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiw3Myw5OSw2OSw2OSwwLDAsMCwwLDAs
MCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwxMjEsMTEy
LDExNywxMTAsOTksMTE2LDczLDExOSw3Niw5OCw0OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwxMjEsMTEyLDExNywxMTAsOTks
MTE2LDczLDExOSw3Niw5OCw0OCw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwxMjEsMTEyLDExNywxMTAsOTksMTE2LDczLDk5LDc2
LDk4LDQ5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsMTA5
LDExMSwxMTAsMTAxLDEyMSwxMTIsMTE3LDExMCw5OSwxMTYsNzMsOTksNzYsOTgsNDgsNjksNjks
NjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCwxMDksMTExLDExMCwxMDEs
MTIxLDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDks
NDgsOTksMTE2LDEyMSwxMTIsMTAxLDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNDksNDgsOTUsOTUsMTE2LDEwNSwxMDksMTAxLDk1LDExMiwxMTcsMTE2
LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDk1LDk1LDExNSwxMTYsMTAw
LDEwNSwxMTAsOTgsMTE3LDEwMiw3MywxMTksNjksNjksMCw3OCw4MywxMTYsNTEsOTUsOTUsNDks
NDksNDgsOTUsOTUsMTE1LDExNiwxMDAsMTA1LDExMCw5OCwxMTcsMTAyLDczLDk5LDY5LDY5LDAs
NzgsNDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5LDUwLDQ5LDk1LDk1LDEx
OCwxMDksMTA1LDk1LDk5LDEwOCw5NywxMTUsMTE1LDk1LDExNiwxMjEsMTEyLDEwMSw5NSwxMDUs
MTEwLDEwMiwxMTEsNjksMCwwLDAsNzgsNDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUs
MTE4LDQ5LDUwLDQ4LDk1LDk1LDExNSwxMDUsOTUsOTksMTA4LDk3LDExNSwxMTUsOTUsMTE2LDEy
MSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSw2OSwwLDAsMCwwLDc4LDQ5LDQ4LDk1LDk1LDk5
LDEyMCwxMjAsOTcsOTgsMTA1LDExOCw0OSw0OSw1NSw5NSw5NSw5OSwxMDgsOTcsMTE1LDExNSw5
NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDY5LDAsMCwwLDAsMCwwLDAsNzgs
NDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5LDQ5LDU0LDk1LDk1LDExNSwx
MDQsMTA1LDEwOSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDY5LDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDQwLDIwLDAsMCwwLDAsMCwwLDU2LDIwLDAsMCwwLDAsMCwwLDcy
LDIwLDAsMCwyMTYsMzEsMCwwLDAsMCwwLDAsMCwwLDAsMCw4OCwyMCwwLDAsMjE2LDMxLDAsMCww
LDAsMCwwLDAsMCwwLDAsMTA0LDIwLDAsMCwyMTYsMzEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjgs
MjAsMCwwLDMyLDMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDIwLDAsMCwyMTYsMzEsMCwwLDAs
MCwwLDAsMCwwLDAsMCwxNjgsMjAsMCwwLDAsMjAsMCwwLDE5MiwyMCwwLDAsMCwwLDAsMCwyLDAs
MCwwLDk2LDM1LDAsMCwyLDAsMCwwLDIyNCwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCw4LDIxLDAs
MCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMjMyLDM2LDAsMCwwLDAsMCwwLDAs
MjAsMCwwLDgwLDIxLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMjQwLDM2
LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDE1MiwyMSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAs
MCwyLDAsMCwwLDI0OCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDIyNCwyMSwwLDAsNDAsMzQsMCww
LDAsMCwwLDAsMCwwLDAsMCwxNiwyMiwwLDAsNDAsMzQsMCwwLDAsMCwwLDAsMCwyMCwwLDAsNjQs
MjIsMCwwLDAsMCwwLDAsMSwwLDAsMCwzMiwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCw4OCwyMiww
LDAsMCwwLDAsMCwxLDAsMCwwLDMyLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDExMiwyMiwwLDAs
MCwwLDAsMCwxLDAsMCwwLDQwLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDEzNiwyMiwwLDAsMCww
LDAsMCwxLDAsMCwwLDQwLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDE2MCwyMiwwLDAsMCwwLDAs
MCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE0NCwzNywwLDAsMCw4LDAsMCwwLDIwLDAsMCwy
MzIsMjIsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNDQsMzcsMCwwLDAs
OCwwLDAsMCwyMCwwLDAsNDgsMjMsMCwwLDAsMCwwLDAsMywwLDAsMCw5NiwzNSwwLDAsMiwwLDAs
MCw0OCwzMiwwLDAsMiwwLDAsMCwxOTIsMzUsMCwwLDAsOCwwLDAsMCwyMCwwLDAsMTIwLDIzLDAs
MCwwLDAsMCwwLDMsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgsMzIsMCwwLDIsMCwwLDAsMjAw
LDM1LDAsMCwwLDgsMCwwLDAsMCwwLDAsMTkyLDIzLDAsMCw5NiwzNSwwLDAsMCwwLDAsMCwwLDAs
MCwwLDIxNiwyMywwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMjQwLDIzLDAsMCwwLDAs
MCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgsMzYsMCwwLDIsMCwwLDAsMCwyMCwwLDAs
OCwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDQ4LDM2LDAsMCwyLDAs
MCwwLDAsMCwwLDAsMzIsMjQsMCwwLDAsMCwwLDAsNTYsMjQsMCwwLDE1MiwzNiwwLDAsMCwwLDAs
MCwwLDIwLDAsMCw4OCwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDIx
NiwzMiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxNjAsMjQsMCwwLDAsMCwwLDAsMiwwLDAsMCw5Niwz
NSwwLDAsMiwwLDAsMCwyNDAsMzIsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMjMyLDI0LDAsMCwwLDAs
MCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsOCwzMywwLDAsMCwwLDAsMCwwLDIwLDAsMCw0
OCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDMyLDMzLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMTIwLDI1LDAsMCw5NiwzNSwwLDAsMCwwLDAsMCwwLDAsMCwwLDE0NCwyNSww
LDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTY4LDI1LDAsMCwwLDAsMCwwLDIsMCwwLDAs
OTYsMzUsMCwwLDIsMCwwLDAsMTY4LDM2LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDIwOCwyNSwwLDAs
MCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE2OCwzNiwwLDAsMiwwLDAsMCwwLDIw
LDAsMCwyNDgsMjUsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNjgsMzYs
MCwwLDIsMCwwLDAsMCwyMCwwLDAsMzIsMjYsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAs
MiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwwLDAsMCw3MiwyNiwwLDAsMjQsMzYsMCwwLDAs
MCwwLDAsMCwwLDAsMCw5NiwyNiwwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTIwLDI2
LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTM2LDM3LDAsMCwyLDAsMCww
LDAsMjAsMCwwLDE0NCwyNiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDEz
NiwzNywwLDAsMiwwLDAsMCwwLDAsMCwwLDE2OCwyNiwwLDAsMCwwLDAsMCwyMDgsMjYsMCwwLDAs
MCwwLDAsMjQ4LDI2LDAsMCwxNzYsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwyNywwLDAsNjQs
MzUsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwyNywwLDAsNjQsMzUsMCwwLDAsMCwwLDAsMCwwLDAs
MCwxMDQsMjcsMCwwLDAsMCwwLDAsMTYwLDI3LDAsMCwwLDAsMCwwLDIxNiwyNywwLDAsMCwwLDAs
MCwyNDgsMjcsMCwwLDAsMCwwLDAsMjQsMjgsMCwwLDAsMCwwLDAsNTYsMjgsMCwwLDAsMCwwLDAs
ODgsMjgsMCwwLDAsMjAsMCwwLDExMiwyOCwwLDAsMCwwLDAsMCwxLDAsMCwwLDE4NCwzMiwwLDAs
MywyNDQsMjU1LDI1NSwwLDIwLDAsMCwxNjAsMjgsMCwwLDAsMCwwLDAsMSwwLDAsMCwyMDAsMzIs
MCwwLDMsMjQ0LDI1NSwyNTUsMCwyMCwwLDAsMjA4LDI4LDAsMCwwLDAsMCwwLDEsMCwwLDAsMTg0
LDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMjAsMCwwLDAsMjksMCwwLDAsMCwwLDAsMSwwLDAsMCwy
MDAsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwwLDAsMCw0OCwyOSwwLDAsMCwzMiwwLDAsMCwwLDAs
MCwwLDAsMCwwLDcyLDI5LDAsMCwwLDAsMCwwLDk2LDI5LDAsMCwxNiwzNiwwLDAsMCwwLDAsMCww
LDAsMCwwLDEyMCwyOSwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDE1MiwyOSwwLDAsOCwz
NiwwLDAsMCwwLDAsMCwwLDAsMCwwLDE4NCwyOSwwLDAsMCwwLDAsMCwyMTYsMjksMCwwLDAsMCww
LDAsMjQ4LDI5LDAsMCwwLDAsMCwwLDI0LDMwLDAsMCwwLDIwLDAsMCw1NiwzMCwwLDAsMCwwLDAs
MCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDEyOCwzNywwLDAsMiwwLDAsMCwwLDIwLDAsMCw4
OCwzMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDEyOCwzNywwLDAsMiww
LDAsMCwwLDIwLDAsMCwxMjAsMzAsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAs
MCwxMjgsMzcsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMTUyLDMwLDAsMCwwLDAsMCwwLDIsMCwwLDAs
OTYsMzUsMCwwLDIsMCwwLDAsMTI4LDM3LDAsMCwyLDAsMCwwLDAsMCwwLDAsMTg0LDMwLDAsMCww
LDAsMCwwLDIwOCwzMCwwLDAsMCwwLDAsMCwyMzIsMzAsMCwwLDAsMCwwLDAsMCwzMSwwLDAsMCwz
NiwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0LDMxLDAsMCw4LDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAs
NDgsMzEsMCwwLDIxNiwzNywwLDAsMCwwLDAsMCwwLDAsMCwwLDg4LDMxLDAsMCwyMTYsMzcsMCww
LDAsMCwwLDAsMCwwLDAsMCwxMjgsMzEsMCwwLDIzMiwzNywwLDAsMCwwLDAsMCwwLDAsMCwwLDE2
OCwzMSwwLDAsMjA4LDMxLDAsMCwwLDAsMCwwLDI1NSwyNTUsMjU1LDI1NSwwLDAsMCwwLDI1NSwy
NTUsMjU1LDI1NSwwLDAsMCwwLDI1NSwyNTUsMjU1LDI1NSwwLDAsMCwwLDQ4LDQ5LDUwLDUxLDUy
LDUzLDU0LDU1LDU2LDU3LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDY1LDY2LDY3LDY4LDY5LDcwLDEy
MCw4OCw0Myw0NSwxMTIsODAsMTA1LDczLDExMCw3OCwwLDAsMCwwLDAsMCwwLDBdLCAiaTgiLCBB
TExPQ19OT05FLCBSdW50aW1lLkdMT0JBTF9CQVNFKQotdmFyIHRlbXBEb3VibGVQdHIgPSBSdW50
aW1lLmFsaWduTWVtb3J5KGFsbG9jYXRlKDEyLCAiaTgiLCBBTExPQ19TVEFUSUMpLCA4KTsKLWFz
c2VydCh0ZW1wRG91YmxlUHRyICUgOCA9PSAwKTsKLWZ1bmN0aW9uIGNvcHlUZW1wRmxvYXQocHRy
KSB7IC8vIGZ1bmN0aW9ucywgYmVjYXVzZSBpbmxpbmluZyB0aGlzIGNvZGUgaW5jcmVhc2VzIGNv
ZGUgc2l6ZSB0b28gbXVjaAotICBIRUFQOFt0ZW1wRG91YmxlUHRyXSA9IEhFQVA4W3B0cl07Ci0g
IEhFQVA4W3RlbXBEb3VibGVQdHIrMV0gPSBIRUFQOFtwdHIrMV07Ci0gIEhFQVA4W3RlbXBEb3Vi
bGVQdHIrMl0gPSBIRUFQOFtwdHIrMl07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrM10gPSBIRUFQ
OFtwdHIrM107Ci19Ci1mdW5jdGlvbiBjb3B5VGVtcERvdWJsZShwdHIpIHsKLSAgSEVBUDhbdGVt
cERvdWJsZVB0cl0gPSBIRUFQOFtwdHJdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzFdID0gSEVB
UDhbcHRyKzFdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzJdID0gSEVBUDhbcHRyKzJdOwotICBI
RUFQOFt0ZW1wRG91YmxlUHRyKzNdID0gSEVBUDhbcHRyKzNdOwotICBIRUFQOFt0ZW1wRG91Ymxl
UHRyKzRdID0gSEVBUDhbcHRyKzRdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzVdID0gSEVBUDhb
cHRyKzVdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzZdID0gSEVBUDhbcHRyKzZdOwotICBIRUFQ
OFt0ZW1wRG91YmxlUHRyKzddID0gSEVBUDhbcHRyKzddOwotfQotICBmdW5jdGlvbiBfYXRleGl0
KGZ1bmMsIGFyZykgewotICAgICAgX19BVEVYSVRfXy51bnNoaWZ0KHsgZnVuYzogZnVuYywgYXJn
OiBhcmcgfSk7Ci0gICAgfXZhciBfX19jeGFfYXRleGl0PV9hdGV4aXQ7Ci0gIGZ1bmN0aW9uIF9s
bHZtX3VtdWxfd2l0aF9vdmVyZmxvd19pMzIoeCwgeSkgewotICAgICAgeCA9IHg+Pj4wOwotICAg
ICAgeSA9IHk+Pj4wOwotICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKHgqeSA+IDQy
OTQ5NjcyOTUpLCh4KnkpPj4+MCl8MCk7Ci0gICAgfQotICBmdW5jdGlvbiBfX19neHhfcGVyc29u
YWxpdHlfdjAoKSB7Ci0gICAgfQotICBmdW5jdGlvbiBfX2V4aXQoc3RhdHVzKSB7Ci0gICAgICAv
LyB2b2lkIF9leGl0KGludCBzdGF0dXMpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3Vw
Lm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZXhpdC5odG1sCi0gICAgICBNb2R1
bGUucHJpbnQoJ2V4aXQoJyArIHN0YXR1cyArICcpIGNhbGxlZCcpOwotICAgICAgTW9kdWxlWydl
eGl0J10oc3RhdHVzKTsKLSAgICB9ZnVuY3Rpb24gX2V4aXQoc3RhdHVzKSB7Ci0gICAgICBfX2V4
aXQoc3RhdHVzKTsKLSAgICB9ZnVuY3Rpb24gX19aU3Q5dGVybWluYXRldigpIHsKLSAgICAgIF9l
eGl0KC0xMjM0KTsKLSAgICB9Ci0gIE1vZHVsZVsiX21lbWNweSJdID0gX21lbWNweTt2YXIgX2xs
dm1fbWVtY3B5X3AwaThfcDBpOF9pMzI9X21lbWNweTsKLSAgdmFyIF9sb2c9TWF0aC5sb2c7Ci0g
IHZhciBfZmxvb3I9TWF0aC5mbG9vcjsKLSAgdmFyIGN0bHpfaTggPSBhbGxvY2F0ZShbOCw3LDYs
Niw1LDUsNSw1LDQsNCw0LDQsNCw0LDQsNCwzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywz
LDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIs
MiwyLDIsMiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sICJpOCIs
IEFMTE9DX1NUQVRJQyk7IAotICBNb2R1bGVbIl9sbHZtX2N0bHpfaTMyIl0gPSBfbGx2bV9jdGx6
X2kzMjsKLSAgZnVuY3Rpb24gX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYoKSB7IC8vIHN0ZDo6
dW5jYXVnaHRfZXhjZXB0aW9uKCkKLSAgICAgIHJldHVybiAhIV9fWlN0MTh1bmNhdWdodF9leGNl
cHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbjsKLSAgICB9ZnVuY3Rpb24gX19fY3hhX2JlZ2luX2Nh
dGNoKHB0cikgewotICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYudW5jYXVnaHRfZXhj
ZXB0aW9uLS07Ci0gICAgICByZXR1cm4gcHRyOwotICAgIH0KLSAgZnVuY3Rpb24gX2xsdm1fZWhf
ZXhjZXB0aW9uKCkgewotICAgICAgcmV0dXJuIEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5i
dWYpPj4yKV07Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfZnJlZV9leGNlcHRpb24ocHRyKSB7
Ci0gICAgICB0cnkgewotICAgICAgICByZXR1cm4gX2ZyZWUocHRyKTsKLSAgICAgIH0gY2F0Y2go
ZSkgeyAvLyBYWFggRklYTUUKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24gX19fY3hhX2VuZF9jYXRj
aCgpIHsKLSAgICAgIGlmIChfX19jeGFfZW5kX2NhdGNoLnJldGhyb3duKSB7Ci0gICAgICAgIF9f
X2N4YV9lbmRfY2F0Y2gucmV0aHJvd24gPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuOwotICAgICAg
fQotICAgICAgLy8gQ2xlYXIgc3RhdGUgZmxhZy4KLSAgICAgIGFzbVsnc2V0VGhyZXcnXSgwKTsK
LSAgICAgIC8vIENsZWFyIHR5cGUuCi0gICAgICBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9u
LmJ1ZikrKDQpKT4+MildPTAKLSAgICAgIC8vIENhbGwgZGVzdHJ1Y3RvciBpZiBvbmUgaXMgcmVn
aXN0ZXJlZCB0aGVuIGNsZWFyIGl0LgotICAgICAgdmFyIHB0ciA9IEhFQVAzMlsoKF9sbHZtX2Vo
X2V4Y2VwdGlvbi5idWYpPj4yKV07Ci0gICAgICB2YXIgZGVzdHJ1Y3RvciA9IEhFQVAzMlsoKChf
bGx2bV9laF9leGNlcHRpb24uYnVmKSsoOCkpPj4yKV07Ci0gICAgICBpZiAoZGVzdHJ1Y3Rvcikg
ewotICAgICAgICBSdW50aW1lLmR5bkNhbGwoJ3ZpJywgZGVzdHJ1Y3RvciwgW3B0cl0pOwotICAg
ICAgICBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDgpKT4+MildPTAKLSAgICAg
IH0KLSAgICAgIC8vIEZyZWUgcHRyIGlmIGl0IGlzbid0IG51bGwuCi0gICAgICBpZiAocHRyKSB7
Ci0gICAgICAgIF9fX2N4YV9mcmVlX2V4Y2VwdGlvbihwdHIpOwotICAgICAgICBIRUFQMzJbKChf
bGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildPTAKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24gX19f
Y3hhX3JldGhyb3coKSB7Ci0gICAgICBfX19jeGFfZW5kX2NhdGNoLnJldGhyb3duID0gdHJ1ZTsK
LSAgICAgIHRocm93IEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV0gKyAiIC0g
RXhjZXB0aW9uIGNhdGNoaW5nIGlzIGRpc2FibGVkLCB0aGlzIGV4Y2VwdGlvbiBjYW5ub3QgYmUg
Y2F1Z2h0LiBDb21waWxlIHdpdGggLXMgRElTQUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MCBvciBE
SVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0yIHRvIGNhdGNoLiI7OwotICAgIH0KLSAgTW9kdWxl
WyJfbWVtbW92ZSJdID0gX21lbW1vdmU7dmFyIF9sbHZtX21lbW1vdmVfcDBpOF9wMGk4X2kzMj1f
bWVtbW92ZTsKLSAgTW9kdWxlWyJfbWVtc2V0Il0gPSBfbWVtc2V0O3ZhciBfbGx2bV9tZW1zZXRf
cDBpOF9pNjQ9X21lbXNldDsKLSAgZnVuY3Rpb24gX2xsdm1fbGlmZXRpbWVfc3RhcnQoKSB7fQot
ICBmdW5jdGlvbiBfbGx2bV9saWZldGltZV9lbmQoKSB7fQotICBmdW5jdGlvbiBfcHRocmVhZF9t
dXRleF9sb2NrKCkge30KLSAgZnVuY3Rpb24gX3B0aHJlYWRfbXV0ZXhfdW5sb2NrKCkge30KLSAg
ZnVuY3Rpb24gX19fY3hhX2d1YXJkX2FjcXVpcmUodmFyaWFibGUpIHsKLSAgICAgIGlmICghSEVB
UDhbKHZhcmlhYmxlKV0pIHsgLy8gaWdub3JlIFNBRkVfSEVBUCBzdHVmZiBiZWNhdXNlIGxsdm0g
bWl4ZXMgaTY0IGFuZCBpOCBoZXJlCi0gICAgICAgIEhFQVA4Wyh2YXJpYWJsZSldPTE7Ci0gICAg
ICAgIHJldHVybiAxOwotICAgICAgfQotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICBmdW5jdGlv
biBfX19jeGFfZ3VhcmRfcmVsZWFzZSgpIHt9Ci0gIGZ1bmN0aW9uIF9wdGhyZWFkX2NvbmRfYnJv
YWRjYXN0KCkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICBmdW5jdGlvbiBfcHRocmVhZF9j
b25kX3dhaXQoKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4YV9h
bGxvY2F0ZV9leGNlcHRpb24oc2l6ZSkgewotICAgICAgcmV0dXJuIF9tYWxsb2Moc2l6ZSk7Ci0g
ICAgfQotICBmdW5jdGlvbiBfX19jeGFfaXNfbnVtYmVyX3R5cGUodHlwZSkgewotICAgICAgdmFy
IGlzTnVtYmVyID0gZmFsc2U7Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWkpIGlzTnVt
YmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJaikg
aXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19a
VElsKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9
PSBfX1pUSW0pIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0
eXBlID09IF9fWlRJeCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsg
aWYgKHR5cGUgPT0gX19aVEl5KSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0
cnkgeyBpZiAodHlwZSA9PSBfX1pUSWYpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAg
ICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJZCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7
fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEllKSBpc051bWJlciA9IHRydWUgfSBjYXRj
aChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWMpIGlzTnVtYmVyID0gdHJ1ZSB9
IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJYSkgaXNOdW1iZXIgPSB0
cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEloKSBpc051bWJl
ciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSXMpIGlz
TnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJ
dCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgcmV0dXJuIGlzTnVtYmVyOwot
ICAgIH1mdW5jdGlvbiBfX19jeGFfZG9lc19pbmhlcml0KGRlZmluaXRlVHlwZSwgcG9zc2liaWxp
dHlUeXBlLCBwb3NzaWJpbGl0eSkgewotICAgICAgaWYgKHBvc3NpYmlsaXR5ID09IDApIHJldHVy
biBmYWxzZTsKLSAgICAgIGlmIChwb3NzaWJpbGl0eVR5cGUgPT0gMCB8fCBwb3NzaWJpbGl0eVR5
cGUgPT0gZGVmaW5pdGVUeXBlKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIHZhciBwb3Nz
aWJpbGl0eV90eXBlX2luZm87Ci0gICAgICBpZiAoX19fY3hhX2lzX251bWJlcl90eXBlKHBvc3Np
YmlsaXR5VHlwZSkpIHsKLSAgICAgICAgcG9zc2liaWxpdHlfdHlwZV9pbmZvID0gcG9zc2liaWxp
dHlUeXBlOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIHBvc3NpYmlsaXR5X3R5cGVfaW5m
b0FkZHIgPSBIRUFQMzJbKChwb3NzaWJpbGl0eVR5cGUpPj4yKV0gLSA4OwotICAgICAgICBwb3Nz
aWJpbGl0eV90eXBlX2luZm8gPSBIRUFQMzJbKChwb3NzaWJpbGl0eV90eXBlX2luZm9BZGRyKT4+
MildOwotICAgICAgfQotICAgICAgc3dpdGNoIChwb3NzaWJpbGl0eV90eXBlX2luZm8pIHsKLSAg
ICAgIGNhc2UgMDogLy8gcG9zc2liaWxpdHkgaXMgYSBwb2ludGVyCi0gICAgICAgIC8vIFNlZSBp
ZiBkZWZpbml0ZSB0eXBlIGlzIGEgcG9pbnRlcgotICAgICAgICB2YXIgZGVmaW5pdGVfdHlwZV9p
bmZvQWRkciA9IEhFQVAzMlsoKGRlZmluaXRlVHlwZSk+PjIpXSAtIDg7Ci0gICAgICAgIHZhciBk
ZWZpbml0ZV90eXBlX2luZm8gPSBIRUFQMzJbKChkZWZpbml0ZV90eXBlX2luZm9BZGRyKT4+Mild
OwotICAgICAgICBpZiAoZGVmaW5pdGVfdHlwZV9pbmZvID09IDApIHsKLSAgICAgICAgICAvLyBB
bHNvIGEgcG9pbnRlcjsgY29tcGFyZSBiYXNlIHR5cGVzIG9mIHBvaW50ZXJzCi0gICAgICAgICAg
dmFyIGRlZlBvaW50ZXJCYXNlQWRkciA9IGRlZmluaXRlVHlwZSs4OwotICAgICAgICAgIHZhciBk
ZWZQb2ludGVyQmFzZVR5cGUgPSBIRUFQMzJbKChkZWZQb2ludGVyQmFzZUFkZHIpPj4yKV07Ci0g
ICAgICAgICAgdmFyIHBvc3NQb2ludGVyQmFzZUFkZHIgPSBwb3NzaWJpbGl0eVR5cGUrODsKLSAg
ICAgICAgICB2YXIgcG9zc1BvaW50ZXJCYXNlVHlwZSA9IEhFQVAzMlsoKHBvc3NQb2ludGVyQmFz
ZUFkZHIpPj4yKV07Ci0gICAgICAgICAgcmV0dXJuIF9fX2N4YV9kb2VzX2luaGVyaXQoZGVmUG9p
bnRlckJhc2VUeXBlLCBwb3NzUG9pbnRlckJhc2VUeXBlLCBwb3NzaWJpbGl0eSk7Ci0gICAgICAg
IH0gZWxzZQotICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gb25lIHBvaW50ZXIgYW5kIG9uZSBu
b24tcG9pbnRlcgotICAgICAgY2FzZSAxOiAvLyBjbGFzcyB3aXRoIG5vIGJhc2UgY2xhc3MKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgY2FzZSAyOiAvLyBjbGFzcyB3aXRoIGJhc2UgY2xh
c3MKLSAgICAgICAgdmFyIHBhcmVudFR5cGVBZGRyID0gcG9zc2liaWxpdHlUeXBlICsgODsKLSAg
ICAgICAgdmFyIHBhcmVudFR5cGUgPSBIRUFQMzJbKChwYXJlbnRUeXBlQWRkcik+PjIpXTsKLSAg
ICAgICAgcmV0dXJuIF9fX2N4YV9kb2VzX2luaGVyaXQoZGVmaW5pdGVUeXBlLCBwYXJlbnRUeXBl
LCBwb3NzaWJpbGl0eSk7Ci0gICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7IC8v
IHNvbWUgdW5lbmNvdW50ZXJlZCB0eXBlCi0gICAgICB9Ci0gICAgfQotICBmdW5jdGlvbiBfX19y
ZXN1bWVFeGNlcHRpb24ocHRyKSB7Ci0gICAgICBpZiAoSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0
aW9uLmJ1Zik+PjIpXSA9PSAwKSBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+Mild
PXB0cjsKLSAgICAgIHRocm93IHB0ciArICIgLSBFeGNlcHRpb24gY2F0Y2hpbmcgaXMgZGlzYWJs
ZWQsIHRoaXMgZXhjZXB0aW9uIGNhbm5vdCBiZSBjYXVnaHQuIENvbXBpbGUgd2l0aCAtcyBESVNB
QkxFX0VYQ0VQVElPTl9DQVRDSElORz0wIG9yIERJU0FCTEVfRVhDRVBUSU9OX0NBVENISU5HPTIg
dG8gY2F0Y2guIjs7Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoKHRo
cm93biwgdGhyb3dudHlwZSkgewotICAgICAgaWYgKHRocm93biA9PSAtMSkgdGhyb3duID0gSEVB
UDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXTsKLSAgICAgIGlmICh0aHJvd250eXBl
ID09IC0xKSB0aHJvd250eXBlID0gSEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg0
KSk+PjIpXTsKLSAgICAgIHZhciB0eXBlQXJyYXkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2Fs
bChhcmd1bWVudHMsIDIpOwotICAgICAgLy8gSWYgdGhyb3dudHlwZSBpcyBhIHBvaW50ZXIsIHRo
aXMgbWVhbnMgYSBwb2ludGVyIGhhcyBiZWVuCi0gICAgICAvLyB0aHJvd24uIFdoZW4gYSBwb2lu
dGVyIGlzIHRocm93biwgYWN0dWFsbHkgd2hhdCdzIHRocm93bgotICAgICAgLy8gaXMgYSBwb2lu
dGVyIHRvIHRoZSBwb2ludGVyLiBXZSdsbCBkZXJlZmVyZW5jZSBpdC4KLSAgICAgIGlmICh0aHJv
d250eXBlICE9IDAgJiYgIV9fX2N4YV9pc19udW1iZXJfdHlwZSh0aHJvd250eXBlKSkgewotICAg
ICAgICB2YXIgdGhyb3dudHlwZUluZm9BZGRyPSBIRUFQMzJbKCh0aHJvd250eXBlKT4+MildIC0g
ODsKLSAgICAgICAgdmFyIHRocm93bnR5cGVJbmZvPSBIRUFQMzJbKCh0aHJvd250eXBlSW5mb0Fk
ZHIpPj4yKV07Ci0gICAgICAgIGlmICh0aHJvd250eXBlSW5mbyA9PSAwKQotICAgICAgICAgIHRo
cm93biA9IEhFQVAzMlsoKHRocm93bik+PjIpXTsKLSAgICAgIH0KLSAgICAgIC8vIFRoZSBkaWZm
ZXJlbnQgY2F0Y2ggYmxvY2tzIGFyZSBkZW5vdGVkIGJ5IGRpZmZlcmVudCB0eXBlcy4KLSAgICAg
IC8vIER1ZSB0byBpbmhlcml0YW5jZSwgdGhvc2UgdHlwZXMgbWF5IG5vdCBwcmVjaXNlbHkgbWF0
Y2ggdGhlCi0gICAgICAvLyB0eXBlIG9mIHRoZSB0aHJvd24gb2JqZWN0LiBGaW5kIG9uZSB3aGlj
aCBtYXRjaGVzLCBhbmQKLSAgICAgIC8vIHJldHVybiB0aGUgdHlwZSBvZiB0aGUgY2F0Y2ggYmxv
Y2sgd2hpY2ggc2hvdWxkIGJlIGNhbGxlZC4KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlw
ZUFycmF5Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChfX19jeGFfZG9lc19pbmhlcml0KHR5
cGVBcnJheVtpXSwgdGhyb3dudHlwZSwgdGhyb3duKSkKLSAgICAgICAgICByZXR1cm4gKChhc21b
InNldFRlbXBSZXQwIl0odHlwZUFycmF5W2ldKSx0aHJvd24pfDApOwotICAgICAgfQotICAgICAg
Ly8gU2hvdWxkbid0IGhhcHBlbiB1bmxlc3Mgd2UgaGF2ZSBib2d1cyBkYXRhIGluIHR5cGVBcnJh
eQotICAgICAgLy8gb3IgZW5jb3VudGVyIGEgdHlwZSBmb3Igd2hpY2ggZW1zY3JpcHRlbiBkb2Vz
bid0IGhhdmUgc3VpdGFibGUKLSAgICAgIC8vIHR5cGVpbmZvIGRlZmluZWQuIEJlc3QtZWZmb3J0
cyBtYXRjaCBqdXN0IGluIGNhc2UuCi0gICAgICByZXR1cm4gKChhc21bInNldFRlbXBSZXQwIl0o
dGhyb3dudHlwZSksdGhyb3duKXwwKTsKLSAgICB9ZnVuY3Rpb24gX19fY3hhX3Rocm93KHB0ciwg
dHlwZSwgZGVzdHJ1Y3RvcikgewotICAgICAgaWYgKCFfX19jeGFfdGhyb3cuaW5pdGlhbGl6ZWQp
IHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBIRUFQMzJbKChfX1pUVk4xMF9fY3h4YWJpdjEx
OV9fcG9pbnRlcl90eXBlX2luZm9FKT4+MildPTA7IC8vIFdvcmthcm91bmQgZm9yIGxpYmN4eGFi
aSBpbnRlZ3JhdGlvbiBidWcKLSAgICAgICAgfSBjYXRjaChlKXt9Ci0gICAgICAgIHRyeSB7Ci0g
ICAgICAgICAgSEVBUDMyWygoX19aVFZOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0Up
Pj4yKV09MTsgLy8gV29ya2Fyb3VuZCBmb3IgbGliY3h4YWJpIGludGVncmF0aW9uIGJ1ZwotICAg
ICAgICB9IGNhdGNoKGUpe30KLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBIRUFQMzJbKChfX1pU
Vk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRSk+PjIpXT0yOyAvLyBXb3JrYXJv
dW5kIGZvciBsaWJjeHhhYmkgaW50ZWdyYXRpb24gYnVnCi0gICAgICAgIH0gY2F0Y2goZSl7fQot
ICAgICAgICBfX19jeGFfdGhyb3cuaW5pdGlhbGl6ZWQgPSB0cnVlOwotICAgICAgfQotICAgICAg
SEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXT1wdHIKLSAgICAgIEhFQVAzMlso
KChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoNCkpPj4yKV09dHlwZQotICAgICAgSEVBUDMyWygo
KF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg4KSk+PjIpXT1kZXN0cnVjdG9yCi0gICAgICBpZiAo
ISgidW5jYXVnaHRfZXhjZXB0aW9uIiBpbiBfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udikpIHsK
LSAgICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYudW5jYXVnaHRfZXhjZXB0aW9uID0g
MTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIF9fWlN0MTh1bmNhdWdodF9leGNlcHRpb252LnVu
Y2F1Z2h0X2V4Y2VwdGlvbisrOwotICAgICAgfQotICAgICAgdGhyb3cgcHRyICsgIiAtIEV4Y2Vw
dGlvbiBjYXRjaGluZyBpcyBkaXNhYmxlZCwgdGhpcyBleGNlcHRpb24gY2Fubm90IGJlIGNhdWdo
dC4gQ29tcGlsZSB3aXRoIC1zIERJU0FCTEVfRVhDRVBUSU9OX0NBVENISU5HPTAgb3IgRElTQUJM
RV9FWENFUFRJT05fQ0FUQ0hJTkc9MiB0byBjYXRjaC4iOzsKLSAgICB9Ci0gIHZhciBFUlJOT19D
T0RFUz17RVBFUk06MSxFTk9FTlQ6MixFU1JDSDozLEVJTlRSOjQsRUlPOjUsRU5YSU86NixFMkJJ
Rzo3LEVOT0VYRUM6OCxFQkFERjo5LEVDSElMRDoxMCxFQUdBSU46MTEsRVdPVUxEQkxPQ0s6MTEs
RU5PTUVNOjEyLEVBQ0NFUzoxMyxFRkFVTFQ6MTQsRU5PVEJMSzoxNSxFQlVTWToxNixFRVhJU1Q6
MTcsRVhERVY6MTgsRU5PREVWOjE5LEVOT1RESVI6MjAsRUlTRElSOjIxLEVJTlZBTDoyMixFTkZJ
TEU6MjMsRU1GSUxFOjI0LEVOT1RUWToyNSxFVFhUQlNZOjI2LEVGQklHOjI3LEVOT1NQQzoyOCxF
U1BJUEU6MjksRVJPRlM6MzAsRU1MSU5LOjMxLEVQSVBFOjMyLEVET006MzMsRVJBTkdFOjM0LEVO
T01TRzozNSxFSURSTTozNixFQ0hSTkc6MzcsRUwyTlNZTkM6MzgsRUwzSExUOjM5LEVMM1JTVDo0
MCxFTE5STkc6NDEsRVVOQVRDSDo0MixFTk9DU0k6NDMsRUwySExUOjQ0LEVERUFETEs6NDUsRU5P
TENLOjQ2LEVCQURFOjUwLEVCQURSOjUxLEVYRlVMTDo1MixFTk9BTk86NTMsRUJBRFJRQzo1NCxF
QkFEU0xUOjU1LEVERUFETE9DSzo1NixFQkZPTlQ6NTcsRU5PU1RSOjYwLEVOT0RBVEE6NjEsRVRJ
TUU6NjIsRU5PU1I6NjMsRU5PTkVUOjY0LEVOT1BLRzo2NSxFUkVNT1RFOjY2LEVOT0xJTks6Njcs
RUFEVjo2OCxFU1JNTlQ6NjksRUNPTU06NzAsRVBST1RPOjcxLEVNVUxUSUhPUDo3NCxFRE9URE9U
Ojc2LEVCQURNU0c6NzcsRU5PVFVOSVE6ODAsRUJBREZEOjgxLEVSRU1DSEc6ODIsRUxJQkFDQzo4
MyxFTElCQkFEOjg0LEVMSUJTQ046ODUsRUxJQk1BWDo4NixFTElCRVhFQzo4NyxFTk9TWVM6ODgs
RU5PVEVNUFRZOjkwLEVOQU1FVE9PTE9ORzo5MSxFTE9PUDo5MixFT1BOT1RTVVBQOjk1LEVQRk5P
U1VQUE9SVDo5NixFQ09OTlJFU0VUOjEwNCxFTk9CVUZTOjEwNSxFQUZOT1NVUFBPUlQ6MTA2LEVQ
Uk9UT1RZUEU6MTA3LEVOT1RTT0NLOjEwOCxFTk9QUk9UT09QVDoxMDksRVNIVVRET1dOOjExMCxF
Q09OTlJFRlVTRUQ6MTExLEVBRERSSU5VU0U6MTEyLEVDT05OQUJPUlRFRDoxMTMsRU5FVFVOUkVB
Q0g6MTE0LEVORVRET1dOOjExNSxFVElNRURPVVQ6MTE2LEVIT1NURE9XTjoxMTcsRUhPU1RVTlJF
QUNIOjExOCxFSU5QUk9HUkVTUzoxMTksRUFMUkVBRFk6MTIwLEVERVNUQUREUlJFUToxMjEsRU1T
R1NJWkU6MTIyLEVQUk9UT05PU1VQUE9SVDoxMjMsRVNPQ0tUTk9TVVBQT1JUOjEyNCxFQUREUk5P
VEFWQUlMOjEyNSxFTkVUUkVTRVQ6MTI2LEVJU0NPTk46MTI3LEVOT1RDT05OOjEyOCxFVE9PTUFO
WVJFRlM6MTI5LEVVU0VSUzoxMzEsRURRVU9UOjEzMixFU1RBTEU6MTMzLEVOT1RTVVA6MTM0LEVO
T01FRElVTToxMzUsRUlMU0VROjEzOCxFT1ZFUkZMT1c6MTM5LEVDQU5DRUxFRDoxNDAsRU5PVFJF
Q09WRVJBQkxFOjE0MSxFT1dORVJERUFEOjE0MixFU1RSUElQRToxNDN9OwotICB2YXIgRVJSTk9f
TUVTU0FHRVM9ezA6IlN1Y2Nlc3MiLDE6Ik5vdCBzdXBlci11c2VyIiwyOiJObyBzdWNoIGZpbGUg
b3IgZGlyZWN0b3J5IiwzOiJObyBzdWNoIHByb2Nlc3MiLDQ6IkludGVycnVwdGVkIHN5c3RlbSBj
YWxsIiw1OiJJL08gZXJyb3IiLDY6Ik5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MiLDc6IkFyZyBs
aXN0IHRvbyBsb25nIiw4OiJFeGVjIGZvcm1hdCBlcnJvciIsOToiQmFkIGZpbGUgbnVtYmVyIiwx
MDoiTm8gY2hpbGRyZW4iLDExOiJObyBtb3JlIHByb2Nlc3NlcyIsMTI6Ik5vdCBlbm91Z2ggY29y
ZSIsMTM6IlBlcm1pc3Npb24gZGVuaWVkIiwxNDoiQmFkIGFkZHJlc3MiLDE1OiJCbG9jayBkZXZp
Y2UgcmVxdWlyZWQiLDE2OiJNb3VudCBkZXZpY2UgYnVzeSIsMTc6IkZpbGUgZXhpc3RzIiwxODoi
Q3Jvc3MtZGV2aWNlIGxpbmsiLDE5OiJObyBzdWNoIGRldmljZSIsMjA6Ik5vdCBhIGRpcmVjdG9y
eSIsMjE6IklzIGEgZGlyZWN0b3J5IiwyMjoiSW52YWxpZCBhcmd1bWVudCIsMjM6IlRvbyBtYW55
IG9wZW4gZmlsZXMgaW4gc3lzdGVtIiwyNDoiVG9vIG1hbnkgb3BlbiBmaWxlcyIsMjU6Ik5vdCBh
IHR5cGV3cml0ZXIiLDI2OiJUZXh0IGZpbGUgYnVzeSIsMjc6IkZpbGUgdG9vIGxhcmdlIiwyODoi
Tm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UiLDI5OiJJbGxlZ2FsIHNlZWsiLDMwOiJSZWFkIG9ubHkg
ZmlsZSBzeXN0ZW0iLDMxOiJUb28gbWFueSBsaW5rcyIsMzI6IkJyb2tlbiBwaXBlIiwzMzoiTWF0
aCBhcmcgb3V0IG9mIGRvbWFpbiBvZiBmdW5jIiwzNDoiTWF0aCByZXN1bHQgbm90IHJlcHJlc2Vu
dGFibGUiLDM1OiJObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZSIsMzY6IklkZW50aWZpZXIgcmVt
b3ZlZCIsMzc6IkNoYW5uZWwgbnVtYmVyIG91dCBvZiByYW5nZSIsMzg6IkxldmVsIDIgbm90IHN5
bmNocm9uaXplZCIsMzk6IkxldmVsIDMgaGFsdGVkIiw0MDoiTGV2ZWwgMyByZXNldCIsNDE6Ikxp
bmsgbnVtYmVyIG91dCBvZiByYW5nZSIsNDI6IlByb3RvY29sIGRyaXZlciBub3QgYXR0YWNoZWQi
LDQzOiJObyBDU0kgc3RydWN0dXJlIGF2YWlsYWJsZSIsNDQ6IkxldmVsIDIgaGFsdGVkIiw0NToi
RGVhZGxvY2sgY29uZGl0aW9uIiw0NjoiTm8gcmVjb3JkIGxvY2tzIGF2YWlsYWJsZSIsNTA6Iklu
dmFsaWQgZXhjaGFuZ2UiLDUxOiJJbnZhbGlkIHJlcXVlc3QgZGVzY3JpcHRvciIsNTI6IkV4Y2hh
bmdlIGZ1bGwiLDUzOiJObyBhbm9kZSIsNTQ6IkludmFsaWQgcmVxdWVzdCBjb2RlIiw1NToiSW52
YWxpZCBzbG90Iiw1NjoiRmlsZSBsb2NraW5nIGRlYWRsb2NrIGVycm9yIiw1NzoiQmFkIGZvbnQg
ZmlsZSBmbXQiLDYwOiJEZXZpY2Ugbm90IGEgc3RyZWFtIiw2MToiTm8gZGF0YSAoZm9yIG5vIGRl
bGF5IGlvKSIsNjI6IlRpbWVyIGV4cGlyZWQiLDYzOiJPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMi
LDY0OiJNYWNoaW5lIGlzIG5vdCBvbiB0aGUgbmV0d29yayIsNjU6IlBhY2thZ2Ugbm90IGluc3Rh
bGxlZCIsNjY6IlRoZSBvYmplY3QgaXMgcmVtb3RlIiw2NzoiVGhlIGxpbmsgaGFzIGJlZW4gc2V2
ZXJlZCIsNjg6IkFkdmVydGlzZSBlcnJvciIsNjk6IlNybW91bnQgZXJyb3IiLDcwOiJDb21tdW5p
Y2F0aW9uIGVycm9yIG9uIHNlbmQiLDcxOiJQcm90b2NvbCBlcnJvciIsNzQ6Ik11bHRpaG9wIGF0
dGVtcHRlZCIsNzY6IkNyb3NzIG1vdW50IHBvaW50IChub3QgcmVhbGx5IGVycm9yKSIsNzc6IlRy
eWluZyB0byByZWFkIHVucmVhZGFibGUgbWVzc2FnZSIsODA6IkdpdmVuIGxvZy4gbmFtZSBub3Qg
dW5pcXVlIiw4MToiZi5kLiBpbnZhbGlkIGZvciB0aGlzIG9wZXJhdGlvbiIsODI6IlJlbW90ZSBh
ZGRyZXNzIGNoYW5nZWQiLDgzOiJDYW4gICBhY2Nlc3MgYSBuZWVkZWQgc2hhcmVkIGxpYiIsODQ6
IkFjY2Vzc2luZyBhIGNvcnJ1cHRlZCBzaGFyZWQgbGliIiw4NToiLmxpYiBzZWN0aW9uIGluIGEu
b3V0IGNvcnJ1cHRlZCIsODY6IkF0dGVtcHRpbmcgdG8gbGluayBpbiB0b28gbWFueSBsaWJzIiw4
NzoiQXR0ZW1wdGluZyB0byBleGVjIGEgc2hhcmVkIGxpYnJhcnkiLDg4OiJGdW5jdGlvbiBub3Qg
aW1wbGVtZW50ZWQiLDkwOiJEaXJlY3Rvcnkgbm90IGVtcHR5Iiw5MToiRmlsZSBvciBwYXRoIG5h
bWUgdG9vIGxvbmciLDkyOiJUb28gbWFueSBzeW1ib2xpYyBsaW5rcyIsOTU6Ik9wZXJhdGlvbiBu
b3Qgc3VwcG9ydGVkIG9uIHRyYW5zcG9ydCBlbmRwb2ludCIsOTY6IlByb3RvY29sIGZhbWlseSBu
b3Qgc3VwcG9ydGVkIiwxMDQ6IkNvbm5lY3Rpb24gcmVzZXQgYnkgcGVlciIsMTA1OiJObyBidWZm
ZXIgc3BhY2UgYXZhaWxhYmxlIiwxMDY6IkFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkg
cHJvdG9jb2wgZmFtaWx5IiwxMDc6IlByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldCIsMTA4
OiJTb2NrZXQgb3BlcmF0aW9uIG9uIG5vbi1zb2NrZXQiLDEwOToiUHJvdG9jb2wgbm90IGF2YWls
YWJsZSIsMTEwOiJDYW4ndCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93biIsMTExOiJDb25uZWN0
aW9uIHJlZnVzZWQiLDExMjoiQWRkcmVzcyBhbHJlYWR5IGluIHVzZSIsMTEzOiJDb25uZWN0aW9u
IGFib3J0ZWQiLDExNDoiTmV0d29yayBpcyB1bnJlYWNoYWJsZSIsMTE1OiJOZXR3b3JrIGludGVy
ZmFjZSBpcyBub3QgY29uZmlndXJlZCIsMTE2OiJDb25uZWN0aW9uIHRpbWVkIG91dCIsMTE3OiJI
b3N0IGlzIGRvd24iLDExODoiSG9zdCBpcyB1bnJlYWNoYWJsZSIsMTE5OiJDb25uZWN0aW9uIGFs
cmVhZHkgaW4gcHJvZ3Jlc3MiLDEyMDoiU29ja2V0IGFscmVhZHkgY29ubmVjdGVkIiwxMjE6IkRl
c3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQiLDEyMjoiTWVzc2FnZSB0b28gbG9uZyIsMTIzOiJV
bmtub3duIHByb3RvY29sIiwxMjQ6IlNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQiLDEyNToiQWRk
cmVzcyBub3QgYXZhaWxhYmxlIiwxMjY6IkNvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yayIsMTI3
OiJTb2NrZXQgaXMgYWxyZWFkeSBjb25uZWN0ZWQiLDEyODoiU29ja2V0IGlzIG5vdCBjb25uZWN0
ZWQiLDEyOToiVG9vIG1hbnkgcmVmZXJlbmNlcyIsMTMxOiJUb28gbWFueSB1c2VycyIsMTMyOiJR
dW90YSBleGNlZWRlZCIsMTMzOiJTdGFsZSBmaWxlIGhhbmRsZSIsMTM0OiJOb3Qgc3VwcG9ydGVk
IiwxMzU6Ik5vIG1lZGl1bSAoaW4gdGFwZSBkcml2ZSkiLDEzODoiSWxsZWdhbCBieXRlIHNlcXVl
bmNlIiwxMzk6IlZhbHVlIHRvbyBsYXJnZSBmb3IgZGVmaW5lZCBkYXRhIHR5cGUiLDE0MDoiT3Bl
cmF0aW9uIGNhbmNlbGVkIiwxNDE6IlN0YXRlIG5vdCByZWNvdmVyYWJsZSIsMTQyOiJQcmV2aW91
cyBvd25lciBkaWVkIiwxNDM6IlN0cmVhbXMgcGlwZSBlcnJvciJ9OwotICB2YXIgX19fZXJybm9f
c3RhdGU9MDtmdW5jdGlvbiBfX19zZXRFcnJObyh2YWx1ZSkgewotICAgICAgLy8gRm9yIGNvbnZl
bmllbnQgc2V0dGluZyBhbmQgcmV0dXJuaW5nIG9mIGVycm5vLgotICAgICAgSEVBUDMyWygoX19f
ZXJybm9fc3RhdGUpPj4yKV09dmFsdWUKLSAgICAgIHJldHVybiB2YWx1ZTsKLSAgICB9Ci0gIHZh
ciBWRlM9dW5kZWZpbmVkOwotICB2YXIgUEFUSD17c3BsaXRQYXRoOmZ1bmN0aW9uIChmaWxlbmFt
ZSkgewotICAgICAgICB2YXIgc3BsaXRQYXRoUmUgPSAvXihcLz98KShbXHNcU10qPykoKD86XC57
MSwyfXxbXlwvXSs/fCkoXC5bXi5cL10qfCkpKD86W1wvXSopJC87Ci0gICAgICAgIHJldHVybiBz
cGxpdFBhdGhSZS5leGVjKGZpbGVuYW1lKS5zbGljZSgxKTsKLSAgICAgIH0sbm9ybWFsaXplQXJy
YXk6ZnVuY3Rpb24gKHBhcnRzLCBhbGxvd0Fib3ZlUm9vdCkgewotICAgICAgICAvLyBpZiB0aGUg
cGF0aCB0cmllcyB0byBnbyBhYm92ZSB0aGUgcm9vdCwgYHVwYCBlbmRzIHVwID4gMAotICAgICAg
ICB2YXIgdXAgPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gcGFydHMubGVuZ3RoIC0gMTsgaSA+
PSAwOyBpLS0pIHsKLSAgICAgICAgICB2YXIgbGFzdCA9IHBhcnRzW2ldOwotICAgICAgICAgIGlm
IChsYXN0ID09PSAnLicpIHsKLSAgICAgICAgICAgIHBhcnRzLnNwbGljZShpLCAxKTsKLSAgICAg
ICAgICB9IGVsc2UgaWYgKGxhc3QgPT09ICcuLicpIHsKLSAgICAgICAgICAgIHBhcnRzLnNwbGlj
ZShpLCAxKTsKLSAgICAgICAgICAgIHVwKys7Ci0gICAgICAgICAgfSBlbHNlIGlmICh1cCkgewot
ICAgICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwotICAgICAgICAgICAgdXAtLTsKLSAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gaWYgdGhlIHBhdGggaXMgYWxsb3dlZCB0byBn
byBhYm92ZSB0aGUgcm9vdCwgcmVzdG9yZSBsZWFkaW5nIC4ucwotICAgICAgICBpZiAoYWxsb3dB
Ym92ZVJvb3QpIHsKLSAgICAgICAgICBmb3IgKDsgdXAtLTsgdXApIHsKLSAgICAgICAgICAgIHBh
cnRzLnVuc2hpZnQoJy4uJyk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBwYXJ0czsKLSAgICAgIH0sbm9ybWFsaXplOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHZh
ciBpc0Fic29sdXRlID0gcGF0aC5jaGFyQXQoMCkgPT09ICcvJywKLSAgICAgICAgICAgIHRyYWls
aW5nU2xhc2ggPSBwYXRoLnN1YnN0cigtMSkgPT09ICcvJzsKLSAgICAgICAgLy8gTm9ybWFsaXpl
IHRoZSBwYXRoCi0gICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6ZUFycmF5KHBhdGguc3BsaXQo
Jy8nKS5maWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJldHVybiAhIXA7Ci0gICAgICAg
IH0pLCAhaXNBYnNvbHV0ZSkuam9pbignLycpOwotICAgICAgICBpZiAoIXBhdGggJiYgIWlzQWJz
b2x1dGUpIHsKLSAgICAgICAgICBwYXRoID0gJy4nOwotICAgICAgICB9Ci0gICAgICAgIGlmIChw
YXRoICYmIHRyYWlsaW5nU2xhc2gpIHsKLSAgICAgICAgICBwYXRoICs9ICcvJzsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gKGlzQWJzb2x1dGUgPyAnLycgOiAnJykgKyBwYXRoOwotICAgICAg
fSxkaXJuYW1lOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHZhciByZXN1bHQgPSBQQVRILnNw
bGl0UGF0aChwYXRoKSwKLSAgICAgICAgICAgIHJvb3QgPSByZXN1bHRbMF0sCi0gICAgICAgICAg
ICBkaXIgPSByZXN1bHRbMV07Ci0gICAgICAgIGlmICghcm9vdCAmJiAhZGlyKSB7Ci0gICAgICAg
ICAgLy8gTm8gZGlybmFtZSB3aGF0c29ldmVyCi0gICAgICAgICAgcmV0dXJuICcuJzsKLSAgICAg
ICAgfQotICAgICAgICBpZiAoZGlyKSB7Ci0gICAgICAgICAgLy8gSXQgaGFzIGEgZGlybmFtZSwg
c3RyaXAgdHJhaWxpbmcgc2xhc2gKLSAgICAgICAgICBkaXIgPSBkaXIuc3Vic3RyKDAsIGRpci5s
ZW5ndGggLSAxKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcm9vdCArIGRpcjsKLSAgICAg
IH0sYmFzZW5hbWU6ZnVuY3Rpb24gKHBhdGgsIGV4dCkgewotICAgICAgICAvLyBFTVNDUklQVEVO
IHJldHVybiAnLycnIGZvciAnLycsIG5vdCBhbiBlbXB0eSBzdHJpbmcKLSAgICAgICAgaWYgKHBh
dGggPT09ICcvJykgcmV0dXJuICcvJzsKLSAgICAgICAgdmFyIGYgPSBQQVRILnNwbGl0UGF0aChw
YXRoKVsyXTsKLSAgICAgICAgaWYgKGV4dCAmJiBmLnN1YnN0cigtMSAqIGV4dC5sZW5ndGgpID09
PSBleHQpIHsKLSAgICAgICAgICBmID0gZi5zdWJzdHIoMCwgZi5sZW5ndGggLSBleHQubGVuZ3Ro
KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZjsKLSAgICAgIH0sam9pbjpmdW5jdGlvbiAo
KSB7Ci0gICAgICAgIHZhciBwYXRocyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3Vt
ZW50cywgMCk7Ci0gICAgICAgIHJldHVybiBQQVRILm5vcm1hbGl6ZShwYXRocy5maWx0ZXIoZnVu
Y3Rpb24ocCwgaW5kZXgpIHsKLSAgICAgICAgICBpZiAodHlwZW9mIHAgIT09ICdzdHJpbmcnKSB7
Ci0gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudHMgdG8gcGF0aC5qb2lu
IG11c3QgYmUgc3RyaW5ncycpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gcDsKLSAg
ICAgICAgfSkuam9pbignLycpKTsKLSAgICAgIH0scmVzb2x2ZTpmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIHZhciByZXNvbHZlZFBhdGggPSAnJywKLSAgICAgICAgICByZXNvbHZlZEFic29sdXRlID0g
ZmFsc2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSA+PSAt
MSAmJiAhcmVzb2x2ZWRBYnNvbHV0ZTsgaS0tKSB7Ci0gICAgICAgICAgdmFyIHBhdGggPSAoaSA+
PSAwKSA/IGFyZ3VtZW50c1tpXSA6IEZTLmN3ZCgpOwotICAgICAgICAgIC8vIFNraXAgZW1wdHkg
YW5kIGludmFsaWQgZW50cmllcwotICAgICAgICAgIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmlu
ZycpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyB0byBwYXRo
LnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzJyk7Ci0gICAgICAgICAgfSBlbHNlIGlmICghcGF0aCkg
ewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJlc29sdmVk
UGF0aCA9IHBhdGggKyAnLycgKyByZXNvbHZlZFBhdGg7Ci0gICAgICAgICAgcmVzb2x2ZWRBYnNv
bHV0ZSA9IHBhdGguY2hhckF0KDApID09PSAnLyc7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gQXQg
dGhpcyBwb2ludCB0aGUgcGF0aCBzaG91bGQgYmUgcmVzb2x2ZWQgdG8gYSBmdWxsIGFic29sdXRl
IHBhdGgsIGJ1dAotICAgICAgICAvLyBoYW5kbGUgcmVsYXRpdmUgcGF0aHMgdG8gYmUgc2FmZSAo
bWlnaHQgaGFwcGVuIHdoZW4gcHJvY2Vzcy5jd2QoKSBmYWlscykKLSAgICAgICAgcmVzb2x2ZWRQ
YXRoID0gUEFUSC5ub3JtYWxpemVBcnJheShyZXNvbHZlZFBhdGguc3BsaXQoJy8nKS5maWx0ZXIo
ZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJldHVybiAhIXA7Ci0gICAgICAgIH0pLCAhcmVzb2x2
ZWRBYnNvbHV0ZSkuam9pbignLycpOwotICAgICAgICByZXR1cm4gKChyZXNvbHZlZEFic29sdXRl
ID8gJy8nIDogJycpICsgcmVzb2x2ZWRQYXRoKSB8fCAnLic7Ci0gICAgICB9LHJlbGF0aXZlOmZ1
bmN0aW9uIChmcm9tLCB0bykgewotICAgICAgICBmcm9tID0gUEFUSC5yZXNvbHZlKGZyb20pLnN1
YnN0cigxKTsKLSAgICAgICAgdG8gPSBQQVRILnJlc29sdmUodG8pLnN1YnN0cigxKTsKLSAgICAg
ICAgZnVuY3Rpb24gdHJpbShhcnIpIHsKLSAgICAgICAgICB2YXIgc3RhcnQgPSAwOwotICAgICAg
ICAgIGZvciAoOyBzdGFydCA8IGFyci5sZW5ndGg7IHN0YXJ0KyspIHsKLSAgICAgICAgICAgIGlm
IChhcnJbc3RhcnRdICE9PSAnJykgYnJlYWs7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBl
bmQgPSBhcnIubGVuZ3RoIC0gMTsKLSAgICAgICAgICBmb3IgKDsgZW5kID49IDA7IGVuZC0tKSB7
Ci0gICAgICAgICAgICBpZiAoYXJyW2VuZF0gIT09ICcnKSBicmVhazsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSByZXR1cm4gW107Ci0gICAgICAgICAgcmV0dXJuIGFy
ci5zbGljZShzdGFydCwgZW5kIC0gc3RhcnQgKyAxKTsKLSAgICAgICAgfQotICAgICAgICB2YXIg
ZnJvbVBhcnRzID0gdHJpbShmcm9tLnNwbGl0KCcvJykpOwotICAgICAgICB2YXIgdG9QYXJ0cyA9
IHRyaW0odG8uc3BsaXQoJy8nKSk7Ci0gICAgICAgIHZhciBsZW5ndGggPSBNYXRoLm1pbihmcm9t
UGFydHMubGVuZ3RoLCB0b1BhcnRzLmxlbmd0aCk7Ci0gICAgICAgIHZhciBzYW1lUGFydHNMZW5n
dGggPSBsZW5ndGg7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsK
LSAgICAgICAgICBpZiAoZnJvbVBhcnRzW2ldICE9PSB0b1BhcnRzW2ldKSB7Ci0gICAgICAgICAg
ICBzYW1lUGFydHNMZW5ndGggPSBpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICAgIHZhciBvdXRwdXRQYXJ0cyA9IFtdOwotICAgICAgICBmb3IgKHZh
ciBpID0gc2FtZVBhcnRzTGVuZ3RoOyBpIDwgZnJvbVBhcnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAg
ICAgICAgb3V0cHV0UGFydHMucHVzaCgnLi4nKTsKLSAgICAgICAgfQotICAgICAgICBvdXRwdXRQ
YXJ0cyA9IG91dHB1dFBhcnRzLmNvbmNhdCh0b1BhcnRzLnNsaWNlKHNhbWVQYXJ0c0xlbmd0aCkp
OwotICAgICAgICByZXR1cm4gb3V0cHV0UGFydHMuam9pbignLycpOwotICAgICAgfX07Ci0gIHZh
ciBUVFk9e3R0eXM6W10scmVnaXN0ZXI6ZnVuY3Rpb24gKGRldiwgb3BzKSB7Ci0gICAgICAgIFRU
WS50dHlzW2Rldl0gPSB7IGlucHV0OiBbXSwgb3V0cHV0OiBbXSwgb3BzOiBvcHMgfTsKLSAgICAg
ICAgRlMucmVnaXN0ZXJEZXZpY2UoZGV2LCBUVFkuc3RyZWFtX29wcyk7Ci0gICAgICB9LHN0cmVh
bV9vcHM6e29wZW46ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAgICAgIC8vIHRoaXMgd291bGRu
J3QgYmUgcmVxdWlyZWQgaWYgdGhlIGxpYnJhcnkgd2Fzbid0IGV2YWwnZCBhdCBmaXJzdC4uLgot
ICAgICAgICAgIGlmICghVFRZLnV0ZjgpIHsKLSAgICAgICAgICAgIFRUWS51dGY4ID0gbmV3IFJ1
bnRpbWUuVVRGOFByb2Nlc3NvcigpOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgdHR5ID0g
VFRZLnR0eXNbc3RyZWFtLm5vZGUucmRldl07Ci0gICAgICAgICAgaWYgKCF0dHkpIHsKLSAgICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVik7Ci0gICAg
ICAgICAgfQotICAgICAgICAgIHN0cmVhbS50dHkgPSB0dHk7Ci0gICAgICAgICAgc3RyZWFtLnNl
ZWthYmxlID0gZmFsc2U7Ci0gICAgICAgIH0sY2xvc2U6ZnVuY3Rpb24gKHN0cmVhbSkgewotICAg
ICAgICAgIC8vIGZsdXNoIGFueSBwZW5kaW5nIGxpbmUgZGF0YQotICAgICAgICAgIGlmIChzdHJl
YW0udHR5Lm91dHB1dC5sZW5ndGgpIHsKLSAgICAgICAgICAgIHN0cmVhbS50dHkub3BzLnB1dF9j
aGFyKHN0cmVhbS50dHksIDEwKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0scmVhZDpmdW5jdGlv
biAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3MgLyogaWdub3JlZCAqLykgewot
ICAgICAgICAgIGlmICghc3RyZWFtLnR0eSB8fCAhc3RyZWFtLnR0eS5vcHMuZ2V0X2NoYXIpIHsK
LSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOWElPKTsK
LSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGJ5dGVzUmVhZCA9IDA7Ci0gICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICAgICAgdmFyIHJlc3VsdDsK
LSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIHJlc3VsdCA9IHN0cmVhbS50dHkub3Bz
LmdldF9jaGFyKHN0cmVhbS50dHkpOwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkICYmIGJ5dGVzUmVh
ZCA9PT0gMCkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FQUdBSU4pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0g
bnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZCkgYnJlYWs7Ci0gICAgICAgICAgICBieXRlc1Jl
YWQrKzsKLSAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQraV0gPSByZXN1bHQ7Ci0gICAgICAgICAg
fQotICAgICAgICAgIGlmIChieXRlc1JlYWQpIHsKLSAgICAgICAgICAgIHN0cmVhbS5ub2RlLnRp
bWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBieXRl
c1JlYWQ7Ci0gICAgICAgIH0sd3JpdGU6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQs
IGxlbmd0aCwgcG9zKSB7Ci0gICAgICAgICAgaWYgKCFzdHJlYW0udHR5IHx8ICFzdHJlYW0udHR5
Lm9wcy5wdXRfY2hhcikgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRU5YSU8pOwotICAgICAgICAgIH0KLSAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICBzdHJl
YW0udHR5Lm9wcy5wdXRfY2hhcihzdHJlYW0udHR5LCBidWZmZXJbb2Zmc2V0K2ldKTsKLSAgICAg
ICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAg
ICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0
ZS5ub3coKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgIH19LGRl
ZmF1bHRfdHR5X29wczp7Z2V0X2NoYXI6ZnVuY3Rpb24gKHR0eSkgewotICAgICAgICAgIGlmICgh
dHR5LmlucHV0Lmxlbmd0aCkgewotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG51bGw7Ci0gICAg
ICAgICAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewotICAgICAgICAgICAgICBpZiAocHJv
Y2Vzcy5zdGRpbi5kZXN0cm95ZWQpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVk
OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIHJlc3VsdCA9IHByb2Nlc3Muc3RkaW4u
cmVhZCgpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygd2luZG93ICE9ICd1bmRlZmlu
ZWQnICYmCi0gICAgICAgICAgICAgIHR5cGVvZiB3aW5kb3cucHJvbXB0ID09ICdmdW5jdGlvbicp
IHsKLSAgICAgICAgICAgICAgLy8gQnJvd3Nlci4KLSAgICAgICAgICAgICAgcmVzdWx0ID0gd2lu
ZG93LnByb21wdCgnSW5wdXQ6ICcpOyAgLy8gcmV0dXJucyBudWxsIG9uIGNhbmNlbAotICAgICAg
ICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ICs9
ICdcbic7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJl
YWRsaW5lID09ICdmdW5jdGlvbicpIHsKLSAgICAgICAgICAgICAgLy8gQ29tbWFuZCBsaW5lLgot
ICAgICAgICAgICAgICByZXN1bHQgPSByZWFkbGluZSgpOwotICAgICAgICAgICAgICBpZiAocmVz
dWx0ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdcbic7Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghcmVzdWx0KSB7Ci0gICAg
ICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdHR5Lmlu
cHV0ID0gaW50QXJyYXlGcm9tU3RyaW5nKHJlc3VsdCwgdHJ1ZSk7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIHJldHVybiB0dHkuaW5wdXQuc2hpZnQoKTsKLSAgICAgICAgfSxwdXRfY2hhcjpmdW5j
dGlvbiAodHR5LCB2YWwpIHsKLSAgICAgICAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0g
MTApIHsKLSAgICAgICAgICAgIE1vZHVsZVsncHJpbnQnXSh0dHkub3V0cHV0LmpvaW4oJycpKTsK
LSAgICAgICAgICAgIHR0eS5vdXRwdXQgPSBbXTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgdHR5Lm91dHB1dC5wdXNoKFRUWS51dGY4LnByb2Nlc3NDQ2hhcih2YWwpKTsKLSAgICAg
ICAgICB9Ci0gICAgICAgIH19LGRlZmF1bHRfdHR5MV9vcHM6e3B1dF9jaGFyOmZ1bmN0aW9uICh0
dHksIHZhbCkgewotICAgICAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSAxMCkgewot
ICAgICAgICAgICAgTW9kdWxlWydwcmludEVyciddKHR0eS5vdXRwdXQuam9pbignJykpOwotICAg
ICAgICAgICAgdHR5Lm91dHB1dCA9IFtdOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICB0dHkub3V0cHV0LnB1c2goVFRZLnV0ZjgucHJvY2Vzc0NDaGFyKHZhbCkpOwotICAgICAgICAg
IH0KLSAgICAgICAgfX19OwotICB2YXIgTUVNRlM9e21vdW50OmZ1bmN0aW9uIChtb3VudCkgewot
ICAgICAgICByZXR1cm4gTUVNRlMuY3JlYXRlX25vZGUobnVsbCwgJy8nLCAwMDQwMDAwIHwgMDc3
NywgMCk7Ci0gICAgICB9LGNyZWF0ZV9ub2RlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIG1vZGUs
IGRldikgewotICAgICAgICBpZiAoRlMuaXNCbGtkZXYobW9kZSkgfHwgRlMuaXNGSUZPKG1vZGUp
KSB7Ci0gICAgICAgICAgLy8gbm8gc3VwcG9ydGVkCi0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIHZhciBub2Rl
ID0gRlMuY3JlYXRlTm9kZShwYXJlbnQsIG5hbWUsIG1vZGUsIGRldik7Ci0gICAgICAgIGlmIChG
Uy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgbm9kZS5ub2RlX29wcyA9IHsKLSAgICAg
ICAgICAgIGdldGF0dHI6IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIsCi0gICAgICAgICAgICBzZXRh
dHRyOiBNRU1GUy5ub2RlX29wcy5zZXRhdHRyLAotICAgICAgICAgICAgbG9va3VwOiBNRU1GUy5u
b2RlX29wcy5sb29rdXAsCi0gICAgICAgICAgICBta25vZDogTUVNRlMubm9kZV9vcHMubWtub2Qs
Ci0gICAgICAgICAgICBta25vZDogTUVNRlMubm9kZV9vcHMubWtub2QsCi0gICAgICAgICAgICBy
ZW5hbWU6IE1FTUZTLm5vZGVfb3BzLnJlbmFtZSwKLSAgICAgICAgICAgIHVubGluazogTUVNRlMu
bm9kZV9vcHMudW5saW5rLAotICAgICAgICAgICAgcm1kaXI6IE1FTUZTLm5vZGVfb3BzLnJtZGly
LAotICAgICAgICAgICAgcmVhZGRpcjogTUVNRlMubm9kZV9vcHMucmVhZGRpciwKLSAgICAgICAg
ICAgIHN5bWxpbms6IE1FTUZTLm5vZGVfb3BzLnN5bWxpbmsKLSAgICAgICAgICB9OwotICAgICAg
ICAgIG5vZGUuc3RyZWFtX29wcyA9IHsKLSAgICAgICAgICAgIGxsc2VlazogTUVNRlMuc3RyZWFt
X29wcy5sbHNlZWsKLSAgICAgICAgICB9OwotICAgICAgICAgIG5vZGUuY29udGVudHMgPSB7fTsK
LSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0ZpbGUobm9kZS5tb2RlKSkgewotICAgICAgICAgIG5v
ZGUubm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5nZXRh
dHRyLAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0YXR0cgotICAgICAg
ICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gewotICAgICAgICAgICAgbGxzZWVr
OiBNRU1GUy5zdHJlYW1fb3BzLmxsc2VlaywKLSAgICAgICAgICAgIHJlYWQ6IE1FTUZTLnN0cmVh
bV9vcHMucmVhZCwKLSAgICAgICAgICAgIHdyaXRlOiBNRU1GUy5zdHJlYW1fb3BzLndyaXRlLAot
ICAgICAgICAgICAgYWxsb2NhdGU6IE1FTUZTLnN0cmVhbV9vcHMuYWxsb2NhdGUsCi0gICAgICAg
ICAgICBtbWFwOiBNRU1GUy5zdHJlYW1fb3BzLm1tYXAKLSAgICAgICAgICB9OwotICAgICAgICAg
IG5vZGUuY29udGVudHMgPSBbXTsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0xpbmsobm9kZS5t
b2RlKSkgewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRy
OiBNRU1GUy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9k
ZV9vcHMuc2V0YXR0ciwKLSAgICAgICAgICAgIHJlYWRsaW5rOiBNRU1GUy5ub2RlX29wcy5yZWFk
bGluawotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0ge307Ci0gICAg
ICAgIH0gZWxzZSBpZiAoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSkgewotICAgICAgICAgIG5vZGUu
bm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5nZXRhdHRy
LAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0YXR0cgotICAgICAgICAg
IH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gRlMuY2hyZGV2X3N0cmVhbV9vcHM7Ci0g
ICAgICAgIH0KLSAgICAgICAgbm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAv
LyBhZGQgdGhlIG5ldyBub2RlIHRvIHRoZSBwYXJlbnQKLSAgICAgICAgaWYgKHBhcmVudCkgewot
ICAgICAgICAgIHBhcmVudC5jb250ZW50c1tuYW1lXSA9IG5vZGU7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LG5vZGVfb3BzOntnZXRhdHRyOmZ1bmN0aW9uIChub2Rl
KSB7Ci0gICAgICAgICAgdmFyIGF0dHIgPSB7fTsKLSAgICAgICAgICAvLyBkZXZpY2UgbnVtYmVy
cyByZXVzZSBpbm9kZSBudW1iZXJzLgotICAgICAgICAgIGF0dHIuZGV2ID0gRlMuaXNDaHJkZXYo
bm9kZS5tb2RlKSA/IG5vZGUuaWQgOiAxOwotICAgICAgICAgIGF0dHIuaW5vID0gbm9kZS5pZDsK
LSAgICAgICAgICBhdHRyLm1vZGUgPSBub2RlLm1vZGU7Ci0gICAgICAgICAgYXR0ci5ubGluayA9
IDE7Ci0gICAgICAgICAgYXR0ci51aWQgPSAwOwotICAgICAgICAgIGF0dHIuZ2lkID0gMDsKLSAg
ICAgICAgICBhdHRyLnJkZXYgPSBub2RlLnJkZXY7Ci0gICAgICAgICAgaWYgKEZTLmlzRGlyKG5v
ZGUubW9kZSkpIHsKLSAgICAgICAgICAgIGF0dHIuc2l6ZSA9IDQwOTY7Ci0gICAgICAgICAgfSBl
bHNlIGlmIChGUy5pc0ZpbGUobm9kZS5tb2RlKSkgewotICAgICAgICAgICAgYXR0ci5zaXplID0g
bm9kZS5jb250ZW50cy5sZW5ndGg7Ci0gICAgICAgICAgfSBlbHNlIGlmIChGUy5pc0xpbmsobm9k
ZS5tb2RlKSkgewotICAgICAgICAgICAgYXR0ci5zaXplID0gbm9kZS5saW5rLmxlbmd0aDsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXR0ci5zaXplID0gMDsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgYXR0ci5hdGltZSA9IG5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTsKLSAgICAg
ICAgICBhdHRyLm10aW1lID0gbmV3IERhdGUobm9kZS50aW1lc3RhbXApOwotICAgICAgICAgIGF0
dHIuY3RpbWUgPSBuZXcgRGF0ZShub2RlLnRpbWVzdGFtcCk7Ci0gICAgICAgICAgLy8gTk9URTog
SW4gb3VyIGltcGxlbWVudGF0aW9uLCBzdF9ibG9ja3MgPSBNYXRoLmNlaWwoc3Rfc2l6ZS9zdF9i
bGtzaXplKSwKLSAgICAgICAgICAvLyAgICAgICBidXQgdGhpcyBpcyBub3QgcmVxdWlyZWQgYnkg
dGhlIHN0YW5kYXJkLgotICAgICAgICAgIGF0dHIuYmxrc2l6ZSA9IDQwOTY7Ci0gICAgICAgICAg
YXR0ci5ibG9ja3MgPSBNYXRoLmNlaWwoYXR0ci5zaXplIC8gYXR0ci5ibGtzaXplKTsKLSAgICAg
ICAgICByZXR1cm4gYXR0cjsKLSAgICAgICAgfSxzZXRhdHRyOmZ1bmN0aW9uIChub2RlLCBhdHRy
KSB7Ci0gICAgICAgICAgaWYgKGF0dHIubW9kZSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAg
ICBub2RlLm1vZGUgPSBhdHRyLm1vZGU7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChhdHRy
LnRpbWVzdGFtcCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICBub2RlLnRpbWVzdGFtcCA9
IGF0dHIudGltZXN0YW1wOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoYXR0ci5zaXplICE9
PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHZhciBjb250ZW50cyA9IG5vZGUuY29udGVudHM7
Ci0gICAgICAgICAgICBpZiAoYXR0ci5zaXplIDwgY29udGVudHMubGVuZ3RoKSBjb250ZW50cy5s
ZW5ndGggPSBhdHRyLnNpemU7Ci0gICAgICAgICAgICBlbHNlIHdoaWxlIChhdHRyLnNpemUgPiBj
b250ZW50cy5sZW5ndGgpIGNvbnRlbnRzLnB1c2goMCk7Ci0gICAgICAgICAgfQotICAgICAgICB9
LGxvb2t1cDpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKTsKLSAgICAgICAgfSxta25vZDpmdW5jdGlv
biAocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpIHsKLSAgICAgICAgICByZXR1cm4gTUVNRlMuY3Jl
YXRlX25vZGUocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpOwotICAgICAgICB9LHJlbmFtZTpmdW5j
dGlvbiAob2xkX25vZGUsIG5ld19kaXIsIG5ld19uYW1lKSB7Ci0gICAgICAgICAgLy8gaWYgd2Un
cmUgb3ZlcndyaXRpbmcgYSBkaXJlY3RvcnkgYXQgbmV3X25hbWUsIG1ha2Ugc3VyZSBpdCdzIGVt
cHR5LgotICAgICAgICAgIGlmIChGUy5pc0RpcihvbGRfbm9kZS5tb2RlKSkgewotICAgICAgICAg
ICAgdmFyIG5ld19ub2RlOwotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgbmV3X25v
ZGUgPSBGUy5sb29rdXBOb2RlKG5ld19kaXIsIG5ld19uYW1lKTsKLSAgICAgICAgICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChuZXdfbm9kZSkgewotICAg
ICAgICAgICAgICBmb3IgKHZhciBpIGluIG5ld19ub2RlLmNvbnRlbnRzKSB7Ci0gICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PVEVNUFRZKTsKLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBk
byB0aGUgaW50ZXJuYWwgcmV3aXJpbmcKLSAgICAgICAgICBkZWxldGUgb2xkX25vZGUucGFyZW50
LmNvbnRlbnRzW29sZF9ub2RlLm5hbWVdOwotICAgICAgICAgIG9sZF9ub2RlLm5hbWUgPSBuZXdf
bmFtZTsKLSAgICAgICAgICBuZXdfZGlyLmNvbnRlbnRzW25ld19uYW1lXSA9IG9sZF9ub2RlOwot
ICAgICAgICB9LHVubGluazpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAgICAgICAgZGVs
ZXRlIHBhcmVudC5jb250ZW50c1tuYW1lXTsKLSAgICAgICAgfSxybWRpcjpmdW5jdGlvbiAocGFy
ZW50LCBuYW1lKSB7Ci0gICAgICAgICAgdmFyIG5vZGUgPSBGUy5sb29rdXBOb2RlKHBhcmVudCwg
bmFtZSk7Ci0gICAgICAgICAgZm9yICh2YXIgaSBpbiBub2RlLmNvbnRlbnRzKSB7Ci0gICAgICAg
ICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9URU1QVFkpOwotICAg
ICAgICAgIH0KLSAgICAgICAgICBkZWxldGUgcGFyZW50LmNvbnRlbnRzW25hbWVdOwotICAgICAg
ICB9LHJlYWRkaXI6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgICB2YXIgZW50cmllcyA9IFsn
LicsICcuLiddCi0gICAgICAgICAgZm9yICh2YXIga2V5IGluIG5vZGUuY29udGVudHMpIHsKLSAg
ICAgICAgICAgIGlmICghbm9kZS5jb250ZW50cy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7Ci0gICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZW50cmllcy5w
dXNoKGtleSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBlbnRyaWVzOwotICAgICAg
ICB9LHN5bWxpbms6ZnVuY3Rpb24gKHBhcmVudCwgbmV3bmFtZSwgb2xkcGF0aCkgewotICAgICAg
ICAgIHZhciBub2RlID0gTUVNRlMuY3JlYXRlX25vZGUocGFyZW50LCBuZXduYW1lLCAwNzc3IHwg
MDEyMDAwMCwgMCk7Ci0gICAgICAgICAgbm9kZS5saW5rID0gb2xkcGF0aDsKLSAgICAgICAgICBy
ZXR1cm4gbm9kZTsKLSAgICAgICAgfSxyZWFkbGluazpmdW5jdGlvbiAobm9kZSkgewotICAgICAg
ICAgIGlmICghRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgICAgfQotICAgICAgICAg
IHJldHVybiBub2RlLmxpbms7Ci0gICAgICAgIH19LHN0cmVhbV9vcHM6e3JlYWQ6ZnVuY3Rpb24g
KHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKLSAgICAgICAgICB2
YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAgICAgICB2YXIgc2l6ZSA9
IE1hdGgubWluKGNvbnRlbnRzLmxlbmd0aCAtIHBvc2l0aW9uLCBsZW5ndGgpOwotICAgICAgICAg
IGlmIChjb250ZW50cy5zdWJhcnJheSkgeyAvLyB0eXBlZCBhcnJheQotICAgICAgICAgICAgYnVm
ZmVyLnNldChjb250ZW50cy5zdWJhcnJheShwb3NpdGlvbiwgcG9zaXRpb24gKyBzaXplKSwgb2Zm
c2V0KTsKLSAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsg
aV0gPSBjb250ZW50c1twb3NpdGlvbiArIGldOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0K
LSAgICAgICAgICByZXR1cm4gc2l6ZTsKLSAgICAgICAgfSx3cml0ZTpmdW5jdGlvbiAoc3RyZWFt
LCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewotICAgICAgICAgIHZhciBjb250
ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwotICAgICAgICAgIHdoaWxlIChjb250ZW50cy5s
ZW5ndGggPCBwb3NpdGlvbikgY29udGVudHMucHVzaCgwKTsKLSAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBjb250ZW50c1twb3NpdGlvbiAr
IGldID0gYnVmZmVyW29mZnNldCArIGldOwotICAgICAgICAgIH0KLSAgICAgICAgICBzdHJlYW0u
bm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgIHJldHVybiBsZW5ndGg7Ci0g
ICAgICAgIH0sbGxzZWVrOmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNldCwgd2hlbmNlKSB7Ci0gICAg
ICAgICAgdmFyIHBvc2l0aW9uID0gb2Zmc2V0OwotICAgICAgICAgIGlmICh3aGVuY2UgPT09IDEp
IHsgIC8vIFNFRUtfQ1VSLgotICAgICAgICAgICAgcG9zaXRpb24gKz0gc3RyZWFtLnBvc2l0aW9u
OwotICAgICAgICAgIH0gZWxzZSBpZiAod2hlbmNlID09PSAyKSB7ICAvLyBTRUVLX0VORC4KLSAg
ICAgICAgICAgIGlmIChGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpIHsKLSAgICAgICAgICAg
ICAgcG9zaXRpb24gKz0gc3RyZWFtLm5vZGUuY29udGVudHMubGVuZ3RoOwotICAgICAgICAgICAg
fQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAocG9zaXRpb24gPCAwKSB7Ci0gICAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICAg
IH0KLSAgICAgICAgICBzdHJlYW0udW5nb3R0ZW4gPSBbXTsKLSAgICAgICAgICBzdHJlYW0ucG9z
aXRpb24gPSBwb3NpdGlvbjsKLSAgICAgICAgICByZXR1cm4gcG9zaXRpb247Ci0gICAgICAgIH0s
YWxsb2NhdGU6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCBsZW5ndGgpIHsKLSAgICAgICAgICB2
YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAgICAgICB2YXIgbGltaXQg
PSBvZmZzZXQgKyBsZW5ndGg7Ci0gICAgICAgICAgd2hpbGUgKGxpbWl0ID4gY29udGVudHMubGVu
Z3RoKSBjb250ZW50cy5wdXNoKDApOwotICAgICAgICB9LG1tYXA6ZnVuY3Rpb24gKHN0cmVhbSwg
YnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24sIHByb3QsIGZsYWdzKSB7Ci0gICAgICAg
ICAgaWYgKCFGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIHRocm93
IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVik7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIHZhciBwdHI7Ci0gICAgICAgICAgdmFyIGFsbG9jYXRlZDsKLSAgICAgICAgICB2YXIg
Y29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAgICAgICAvLyBPbmx5IG1ha2Ug
YSBuZXcgY29weSB3aGVuIE1BUF9QUklWQVRFIGlzIHNwZWNpZmllZC4KLSAgICAgICAgICBpZiAo
IShmbGFncyAmIDB4MDIpKSB7Ci0gICAgICAgICAgICAvLyBXZSBjYW4ndCBlbXVsYXRlIE1BUF9T
SEFSRUQgd2hlbiB0aGUgZmlsZSBpcyBub3QgYmFja2VkIGJ5IHRoZSBidWZmZXIKLSAgICAgICAg
ICAgIC8vIHdlJ3JlIG1hcHBpbmcgdG8gKGUuZy4gdGhlIEhFQVAgYnVmZmVyKS4KLSAgICAgICAg
ICAgIGFzc2VydChjb250ZW50cy5idWZmZXIgPT09IGJ1ZmZlciB8fCBjb250ZW50cy5idWZmZXIg
PT09IGJ1ZmZlci5idWZmZXIpOwotICAgICAgICAgICAgYWxsb2NhdGVkID0gZmFsc2U7Ci0gICAg
ICAgICAgICBwdHIgPSBjb250ZW50cy5ieXRlT2Zmc2V0OwotICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAvLyBUcnkgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgc2xpY2VzLgotICAgICAgICAg
ICAgaWYgKHBvc2l0aW9uID4gMCB8fCBwb3NpdGlvbiArIGxlbmd0aCA8IGNvbnRlbnRzLmxlbmd0
aCkgewotICAgICAgICAgICAgICBpZiAoY29udGVudHMuc3ViYXJyYXkpIHsKLSAgICAgICAgICAg
ICAgICBjb250ZW50cyA9IGNvbnRlbnRzLnN1YmFycmF5KHBvc2l0aW9uLCBwb3NpdGlvbiArIGxl
bmd0aCk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgY29udGVudHMg
PSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjb250ZW50cywgcG9zaXRpb24sIHBvc2l0aW9u
ICsgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAg
YWxsb2NhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHB0ciA9IF9tYWxsb2MobGVuZ3RoKTsKLSAg
ICAgICAgICAgIGlmICghcHRyKSB7Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVOT01FTSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBidWZm
ZXIuc2V0KGNvbnRlbnRzLCBwdHIpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4geyBw
dHI6IHB0ciwgYWxsb2NhdGVkOiBhbGxvY2F0ZWQgfTsKLSAgICAgICAgfX19OwotICB2YXIgX3N0
ZGluPWFsbG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElDKTsKLSAgdmFyIF9zdGRvdXQ9YWxs
b2NhdGUoMSwgImkzMioiLCBBTExPQ19TVEFUSUMpOwotICB2YXIgX3N0ZGVycj1hbGxvY2F0ZSgx
LCAiaTMyKiIsIEFMTE9DX1NUQVRJQyk7Ci0gIGZ1bmN0aW9uIF9mZmx1c2goc3RyZWFtKSB7Ci0g
ICAgICAvLyBpbnQgZmZsdXNoKEZJTEUgKnN0cmVhbSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5v
cGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9mZmx1c2guaHRtbAot
ICAgICAgLy8gd2UgZG9uJ3QgY3VycmVudGx5IHBlcmZvcm0gYW55IHVzZXItc3BhY2UgYnVmZmVy
aW5nIG9mIGRhdGEKLSAgICB9dmFyIEZTPXtyb290Om51bGwsbm9kZXM6W251bGxdLGRldmljZXM6
W251bGxdLHN0cmVhbXM6W251bGxdLG5leHRJbm9kZToxLG5hbWVfdGFibGU6bnVsbCxjdXJyZW50
UGF0aDoiLyIsaW5pdGlhbGl6ZWQ6ZmFsc2UsaWdub3JlUGVybWlzc2lvbnM6dHJ1ZSxFcnJub0Vy
cm9yOmZ1bmN0aW9uIEVycm5vRXJyb3IoZXJybm8pIHsKLSAgICAgICAgICB0aGlzLmVycm5vID0g
ZXJybm87Ci0gICAgICAgICAgZm9yICh2YXIga2V5IGluIEVSUk5PX0NPREVTKSB7Ci0gICAgICAg
ICAgICBpZiAoRVJSTk9fQ09ERVNba2V5XSA9PT0gZXJybm8pIHsKLSAgICAgICAgICAgICAgdGhp
cy5jb2RlID0ga2V5OwotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICB9Ci0gICAgICAgICAgdGhpcy5tZXNzYWdlID0gRVJSTk9fTUVTU0FHRVNbZXJybm9dOwot
ICAgICAgICB9LGhhbmRsZUZTRXJyb3I6ZnVuY3Rpb24gKGUpIHsKLSAgICAgICAgaWYgKCEoZSBp
bnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSB0aHJvdyBlICsgJyA6ICcgKyBuZXcgRXJyb3IoKS5z
dGFjazsKLSAgICAgICAgcmV0dXJuIF9fX3NldEVyck5vKGUuZXJybm8pOwotICAgICAgfSxoYXNo
TmFtZTpmdW5jdGlvbiAocGFyZW50aWQsIG5hbWUpIHsKLSAgICAgICAgdmFyIGhhc2ggPSAwOwot
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspIHsKLSAgICAgICAg
ICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCArIG5hbWUuY2hhckNvZGVBdChpKSkgfCAwOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiAoKHBhcmVudGlkICsgaGFzaCkgPj4+IDApICUgRlMu
bmFtZV90YWJsZS5sZW5ndGg7Ci0gICAgICB9LGhhc2hBZGROb2RlOmZ1bmN0aW9uIChub2RlKSB7
Ci0gICAgICAgIHZhciBoYXNoID0gRlMuaGFzaE5hbWUobm9kZS5wYXJlbnQuaWQsIG5vZGUubmFt
ZSk7Ci0gICAgICAgIG5vZGUubmFtZV9uZXh0ID0gRlMubmFtZV90YWJsZVtoYXNoXTsKLSAgICAg
ICAgRlMubmFtZV90YWJsZVtoYXNoXSA9IG5vZGU7Ci0gICAgICB9LGhhc2hSZW1vdmVOb2RlOmZ1
bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHZhciBoYXNoID0gRlMuaGFzaE5hbWUobm9kZS5wYXJl
bnQuaWQsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmIChGUy5uYW1lX3RhYmxlW2hhc2hdID09PSBu
b2RlKSB7Ci0gICAgICAgICAgRlMubmFtZV90YWJsZVtoYXNoXSA9IG5vZGUubmFtZV9uZXh0Owot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHZhciBjdXJyZW50ID0gRlMubmFtZV90YWJsZVto
YXNoXTsKLSAgICAgICAgICB3aGlsZSAoY3VycmVudCkgewotICAgICAgICAgICAgaWYgKGN1cnJl
bnQubmFtZV9uZXh0ID09PSBub2RlKSB7Ci0gICAgICAgICAgICAgIGN1cnJlbnQubmFtZV9uZXh0
ID0gbm9kZS5uYW1lX25leHQ7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmFtZV9uZXh0OwotICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgICAgfSxsb29rdXBOb2RlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUpIHsKLSAg
ICAgICAgdmFyIGVyciA9IEZTLm1heUxvb2t1cChwYXJlbnQpOwotICAgICAgICBpZiAoZXJyKSB7
Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAg
ICAgICB2YXIgaGFzaCA9IEZTLmhhc2hOYW1lKHBhcmVudC5pZCwgbmFtZSk7Ci0gICAgICAgIGZv
ciAodmFyIG5vZGUgPSBGUy5uYW1lX3RhYmxlW2hhc2hdOyBub2RlOyBub2RlID0gbm9kZS5uYW1l
X25leHQpIHsKLSAgICAgICAgICBpZiAobm9kZS5wYXJlbnQuaWQgPT09IHBhcmVudC5pZCAmJiBu
b2RlLm5hbWUgPT09IG5hbWUpIHsKLSAgICAgICAgICAgIHJldHVybiBub2RlOwotICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgICAvLyBpZiB3ZSBmYWlsZWQgdG8gZmluZCBpdCBpbiB0aGUg
Y2FjaGUsIGNhbGwgaW50byB0aGUgVkZTCi0gICAgICAgIHJldHVybiBGUy5sb29rdXAocGFyZW50
LCBuYW1lKTsKLSAgICAgIH0sY3JlYXRlTm9kZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBtb2Rl
LCByZGV2KSB7Ci0gICAgICAgIHZhciBub2RlID0gewotICAgICAgICAgIGlkOiBGUy5uZXh0SW5v
ZGUrKywKLSAgICAgICAgICBuYW1lOiBuYW1lLAotICAgICAgICAgIG1vZGU6IG1vZGUsCi0gICAg
ICAgICAgbm9kZV9vcHM6IHt9LAotICAgICAgICAgIHN0cmVhbV9vcHM6IHt9LAotICAgICAgICAg
IHJkZXY6IHJkZXYsCi0gICAgICAgICAgcGFyZW50OiBudWxsLAotICAgICAgICAgIG1vdW50OiBu
dWxsCi0gICAgICAgIH07Ci0gICAgICAgIGlmICghcGFyZW50KSB7Ci0gICAgICAgICAgcGFyZW50
ID0gbm9kZTsgIC8vIHJvb3Qgbm9kZSBzZXRzIHBhcmVudCB0byBpdHNlbGYKLSAgICAgICAgfQot
ICAgICAgICBub2RlLnBhcmVudCA9IHBhcmVudDsKLSAgICAgICAgbm9kZS5tb3VudCA9IHBhcmVu
dC5tb3VudDsKLSAgICAgICAgLy8gY29tcGF0aWJpbGl0eQotICAgICAgICB2YXIgcmVhZE1vZGUg
PSAyOTIgfCA3MzsKLSAgICAgICAgdmFyIHdyaXRlTW9kZSA9IDE0NjsKLSAgICAgICAgLy8gTk9U
RSB3ZSBtdXN0IHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydGllcyBpbnN0ZWFkIG9mIGluZGl2aWR1
YWwgY2FsbHMgdG8KLSAgICAgICAgLy8gT2JqZWN0LmRlZmluZVByb3BlcnR5IGluIG9yZGVyIHRv
IG1ha2UgY2xvc3VyZSBjb21waWxlciBoYXBweQotICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dGllcyhub2RlLCB7Ci0gICAgICAgICAgcmVhZDogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlv
bigpIHsgcmV0dXJuIChub2RlLm1vZGUgJiByZWFkTW9kZSkgPT09IHJlYWRNb2RlOyB9LAotICAg
ICAgICAgICAgc2V0OiBmdW5jdGlvbih2YWwpIHsgdmFsID8gbm9kZS5tb2RlIHw9IHJlYWRNb2Rl
IDogbm9kZS5tb2RlICY9IH5yZWFkTW9kZTsgfQotICAgICAgICAgIH0sCi0gICAgICAgICAgd3Jp
dGU6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiAobm9kZS5tb2RlICYg
d3JpdGVNb2RlKSA9PT0gd3JpdGVNb2RlOyB9LAotICAgICAgICAgICAgc2V0OiBmdW5jdGlvbih2
YWwpIHsgdmFsID8gbm9kZS5tb2RlIHw9IHdyaXRlTW9kZSA6IG5vZGUubW9kZSAmPSB+d3JpdGVN
b2RlOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0ZvbGRlcjogewotICAgICAgICAgICAg
Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIEZTLmlzRGlyKG5vZGUubW9kZSk7IH0sCi0gICAgICAg
ICAgfSwKLSAgICAgICAgICBpc0RldmljZTogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigp
IHsgcmV0dXJuIEZTLmlzQ2hyZGV2KG5vZGUubW9kZSk7IH0sCi0gICAgICAgICAgfSwKLSAgICAg
ICAgfSk7Ci0gICAgICAgIEZTLmhhc2hBZGROb2RlKG5vZGUpOwotICAgICAgICByZXR1cm4gbm9k
ZTsKLSAgICAgIH0sZGVzdHJveU5vZGU6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgRlMuaGFz
aFJlbW92ZU5vZGUobm9kZSk7Ci0gICAgICB9LGlzUm9vdDpmdW5jdGlvbiAobm9kZSkgewotICAg
ICAgICByZXR1cm4gbm9kZSA9PT0gbm9kZS5wYXJlbnQ7Ci0gICAgICB9LGlzTW91bnRwb2ludDpm
dW5jdGlvbiAobm9kZSkgewotICAgICAgICByZXR1cm4gbm9kZS5tb3VudGVkOwotICAgICAgfSxp
c0ZpbGU6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkg
PT09IDAxMDAwMDA7Ci0gICAgICB9LGlzRGlyOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJl
dHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDQwMDAwOwotICAgICAgfSxpc0xpbms6ZnVuY3Rp
b24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAxMjAwMDA7
Ci0gICAgICB9LGlzQ2hyZGV2OmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJldHVybiAobW9k
ZSAmIDAxNzAwMDApID09PSAwMDIwMDAwOwotICAgICAgfSxpc0Jsa2RldjpmdW5jdGlvbiAobW9k
ZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDA2MDAwMDsKLSAgICAg
IH0saXNGSUZPOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAw
MDApID09PSAwMDEwMDAwOwotICAgICAgfSxjd2Q6ZnVuY3Rpb24gKCkgewotICAgICAgICByZXR1
cm4gRlMuY3VycmVudFBhdGg7Ci0gICAgICB9LGxvb2t1cFBhdGg6ZnVuY3Rpb24gKHBhdGgsIG9w
dHMpIHsKLSAgICAgICAgcGF0aCA9IFBBVEgucmVzb2x2ZShGUy5jdXJyZW50UGF0aCwgcGF0aCk7
Ci0gICAgICAgIG9wdHMgPSBvcHRzIHx8IHsgcmVjdXJzZV9jb3VudDogMCB9OwotICAgICAgICBp
ZiAob3B0cy5yZWN1cnNlX2NvdW50ID4gOCkgeyAgLy8gbWF4IHJlY3Vyc2l2ZSBsb29rdXAgb2Yg
OAotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVMT09QKTsK
LSAgICAgICAgfQotICAgICAgICAvLyBzcGxpdCB0aGUgcGF0aAotICAgICAgICB2YXIgcGFydHMg
PSBQQVRILm5vcm1hbGl6ZUFycmF5KHBhdGguc3BsaXQoJy8nKS5maWx0ZXIoZnVuY3Rpb24ocCkg
ewotICAgICAgICAgIHJldHVybiAhIXA7Ci0gICAgICAgIH0pLCBmYWxzZSk7Ci0gICAgICAgIC8v
IHN0YXJ0IGF0IHRoZSByb290Ci0gICAgICAgIHZhciBjdXJyZW50ID0gRlMucm9vdDsKLSAgICAg
ICAgdmFyIGN1cnJlbnRfcGF0aCA9ICcvJzsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBw
YXJ0cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIHZhciBpc2xhc3QgPSAoaSA9PT0gcGFydHMu
bGVuZ3RoLTEpOwotICAgICAgICAgIGlmIChpc2xhc3QgJiYgb3B0cy5wYXJlbnQpIHsKLSAgICAg
ICAgICAgIC8vIHN0b3AgcmVzb2x2aW5nCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgY3VycmVudCA9IEZTLmxvb2t1cE5vZGUoY3VycmVudCwgcGFydHNbaV0pOwot
ICAgICAgICAgIGN1cnJlbnRfcGF0aCA9IFBBVEguam9pbihjdXJyZW50X3BhdGgsIHBhcnRzW2ld
KTsKLSAgICAgICAgICAvLyBqdW1wIHRvIHRoZSBtb3VudCdzIHJvb3Qgbm9kZSBpZiB0aGlzIGlz
IGEgbW91bnRwb2ludAotICAgICAgICAgIGlmIChGUy5pc01vdW50cG9pbnQoY3VycmVudCkpIHsK
LSAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm1vdW50LnJvb3Q7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIC8vIGZvbGxvdyBzeW1saW5rcwotICAgICAgICAgIC8vIGJ5IGRlZmF1bHQsIGxv
b2t1cFBhdGggd2lsbCBub3QgZm9sbG93IGEgc3ltbGluayBpZiBpdCBpcyB0aGUgZmluYWwgcGF0
aCBjb21wb25lbnQuCi0gICAgICAgICAgLy8gc2V0dGluZyBvcHRzLmZvbGxvdyA9IHRydWUgd2ls
bCBvdmVycmlkZSB0aGlzIGJlaGF2aW9yLgotICAgICAgICAgIGlmICghaXNsYXN0IHx8IG9wdHMu
Zm9sbG93KSB7Ci0gICAgICAgICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICAgICAgd2hpbGUg
KEZTLmlzTGluayhjdXJyZW50Lm1vZGUpKSB7Ci0gICAgICAgICAgICAgIHZhciBsaW5rID0gRlMu
cmVhZGxpbmsoY3VycmVudF9wYXRoKTsKLSAgICAgICAgICAgICAgY3VycmVudF9wYXRoID0gUEFU
SC5yZXNvbHZlKFBBVEguZGlybmFtZShjdXJyZW50X3BhdGgpLCBsaW5rKTsKLSAgICAgICAgICAg
ICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgoY3VycmVudF9wYXRoLCB7IHJlY3Vyc2VfY291
bnQ6IG9wdHMucmVjdXJzZV9jb3VudCB9KTsKLSAgICAgICAgICAgICAgY3VycmVudCA9IGxvb2t1
cC5ub2RlOwotICAgICAgICAgICAgICBpZiAoY291bnQrKyA+IDQwKSB7ICAvLyBsaW1pdCBtYXgg
Y29uc2VjdXRpdmUgc3ltbGlua3MgdG8gNDAgKFNZTUxPT1BfTUFYKS4KLSAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTE9PUCk7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHsgcGF0aDogY3VycmVudF9wYXRoLCBub2RlOiBjdXJyZW50IH07Ci0gICAgICB9LGdldFBh
dGg6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgdmFyIHBhdGg7Ci0gICAgICAgIHdoaWxlICh0
cnVlKSB7Ci0gICAgICAgICAgaWYgKEZTLmlzUm9vdChub2RlKSkgewotICAgICAgICAgICAgcmV0
dXJuIHBhdGggPyBQQVRILmpvaW4obm9kZS5tb3VudC5tb3VudHBvaW50LCBwYXRoKSA6IG5vZGUu
bW91bnQubW91bnRwb2ludDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcGF0aCA9IHBhdGggPyBQ
QVRILmpvaW4obm9kZS5uYW1lLCBwYXRoKSA6IG5vZGUubmFtZTsKLSAgICAgICAgICBub2RlID0g
bm9kZS5wYXJlbnQ7Ci0gICAgICAgIH0KLSAgICAgIH0sZmxhZ01vZGVzOnsiciI6MCwicnMiOjgx
OTIsInIrIjoyLCJ3IjoxNTM3LCJ3eCI6MzU4NSwieHciOjM1ODUsIncrIjoxNTM4LCJ3eCsiOjM1
ODYsInh3KyI6MzU4NiwiYSI6NTIxLCJheCI6MjU2OSwieGEiOjI1NjksImErIjo1MjIsImF4KyI6
MjU3MCwieGErIjoyNTcwfSxtb2RlU3RyaW5nVG9GbGFnczpmdW5jdGlvbiAoc3RyKSB7Ci0gICAg
ICAgIHZhciBmbGFncyA9IEZTLmZsYWdNb2Rlc1tzdHJdOwotICAgICAgICBpZiAodHlwZW9mIGZs
YWdzID09PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93
biBmaWxlIG9wZW4gbW9kZTogJyArIHN0cik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZs
YWdzOwotICAgICAgfSxmbGFnc1RvUGVybWlzc2lvblN0cmluZzpmdW5jdGlvbiAoZmxhZykgewot
ICAgICAgICB2YXIgYWNjbW9kZSA9IGZsYWcgJiAzOwotICAgICAgICB2YXIgcGVybXMgPSBbJ3In
LCAndycsICdydyddW2FjY21vZGVdOwotICAgICAgICBpZiAoKGZsYWcgJiAxMDI0KSkgewotICAg
ICAgICAgIHBlcm1zICs9ICd3JzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcGVybXM7Ci0g
ICAgICB9LG5vZGVQZXJtaXNzaW9uczpmdW5jdGlvbiAobm9kZSwgcGVybXMpIHsKLSAgICAgICAg
aWYgKEZTLmlnbm9yZVBlcm1pc3Npb25zKSB7Ci0gICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAg
IH0KLSAgICAgICAgLy8gcmV0dXJuIDAgaWYgYW55IHVzZXIsIGdyb3VwIG9yIG93bmVyIGJpdHMg
YXJlIHNldC4KLSAgICAgICAgaWYgKHBlcm1zLmluZGV4T2YoJ3InKSAhPT0gLTEgJiYgIShub2Rl
Lm1vZGUgJiAyOTIpKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVBQ0NFUzsKLSAg
ICAgICAgfSBlbHNlIGlmIChwZXJtcy5pbmRleE9mKCd3JykgIT09IC0xICYmICEobm9kZS5tb2Rl
ICYgMTQ2KSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FQUNDRVM7Ci0gICAgICAg
IH0gZWxzZSBpZiAocGVybXMuaW5kZXhPZigneCcpICE9PSAtMSAmJiAhKG5vZGUubW9kZSAmIDcz
KSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FQUNDRVM7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgICB9LG1heUxvb2t1cDpmdW5jdGlvbiAoZGlyKSB7Ci0gICAg
ICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAneCcpOwotICAgICAgfSxtYXlNa25v
ZDpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICBzd2l0Y2ggKG1vZGUgJiAwMTcwMDAwKSB7Ci0g
ICAgICAgICAgY2FzZSAwMTAwMDAwOgotICAgICAgICAgIGNhc2UgMDAyMDAwMDoKLSAgICAgICAg
ICBjYXNlIDAwNjAwMDA6Ci0gICAgICAgICAgY2FzZSAwMDEwMDAwOgotICAgICAgICAgIGNhc2Ug
MDE0MDAwMDoKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUlOVkFMOwotICAgICAgICB9Ci0gICAgICB9LG1h
eUNyZWF0ZTpmdW5jdGlvbiAoZGlyLCBuYW1lKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAg
dmFyIG5vZGUgPSBGUy5sb29rdXBOb2RlKGRpciwgbmFtZSk7Ci0gICAgICAgICAgcmV0dXJuIEVS
Uk5PX0NPREVTLkVFWElTVDsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAnd3gnKTsKLSAgICAgIH0sbWF5RGVs
ZXRlOmZ1bmN0aW9uIChkaXIsIG5hbWUsIGlzZGlyKSB7Ci0gICAgICAgIHZhciBub2RlOwotICAg
ICAgICB0cnkgewotICAgICAgICAgIG5vZGUgPSBGUy5sb29rdXBOb2RlKGRpciwgbmFtZSk7Ci0g
ICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICByZXR1cm4gZS5lcnJubzsKLSAgICAgICAg
fQotICAgICAgICB2YXIgZXJyID0gRlMubm9kZVBlcm1pc3Npb25zKGRpciwgJ3d4Jyk7Ci0gICAg
ICAgIGlmIChlcnIpIHsKLSAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICB9Ci0gICAgICAg
IGlmIChpc2RpcikgewotICAgICAgICAgIGlmICghRlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAg
ICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVOT1RESVI7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIGlmIChGUy5pc1Jvb3Qobm9kZSkgfHwgRlMuZ2V0UGF0aChub2RlKSA9PT0gRlMuY3VycmVu
dFBhdGgpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FQlVTWTsKLSAgICAgICAg
ICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkp
IHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FSVNESVI7Ci0gICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiAwOwotICAgICAgfSxtYXlPcGVuOmZ1bmN0aW9uIChu
b2RlLCBmbGFncykgewotICAgICAgICBpZiAoIW5vZGUpIHsKLSAgICAgICAgICByZXR1cm4gRVJS
Tk9fQ09ERVMuRU5PRU5UOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5pc0xpbmsobm9kZS5t
b2RlKSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FTE9PUDsKLSAgICAgICAgfSBl
bHNlIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgaWYgKChmbGFncyAmIDMp
ICE9PSAwIHx8ICAvLyBvcGVuaW5nIGZvciB3cml0ZQotICAgICAgICAgICAgICAoZmxhZ3MgJiAx
MDI0KSkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVJU0RJUjsKLSAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIEZTLm5vZGVQZXJtaXNzaW9ucyhub2RlLCBG
Uy5mbGFnc1RvUGVybWlzc2lvblN0cmluZyhmbGFncykpOwotICAgICAgfSxjaHJkZXZfc3RyZWFt
X29wczp7b3BlbjpmdW5jdGlvbiAoc3RyZWFtKSB7Ci0gICAgICAgICAgdmFyIGRldmljZSA9IEZT
LmdldERldmljZShzdHJlYW0ubm9kZS5yZGV2KTsKLSAgICAgICAgICAvLyBvdmVycmlkZSBub2Rl
J3Mgc3RyZWFtIG9wcyB3aXRoIHRoZSBkZXZpY2UncwotICAgICAgICAgIHN0cmVhbS5zdHJlYW1f
b3BzID0gZGV2aWNlLnN0cmVhbV9vcHM7Ci0gICAgICAgICAgLy8gZm9yd2FyZCB0aGUgb3BlbiBj
YWxsCi0gICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4pIHsKLSAgICAgICAgICAg
IHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0s
bGxzZWVrOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihF
UlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9fSxtYWpvcjpmdW5jdGlvbiAoZGV2KSB7Ci0g
ICAgICAgIHJldHVybiAoKGRldikgPj4gOCk7Ci0gICAgICB9LG1pbm9yOmZ1bmN0aW9uIChkZXYp
IHsKLSAgICAgICAgcmV0dXJuICgoZGV2KSAmIDB4ZmYpOwotICAgICAgfSxtYWtlZGV2OmZ1bmN0
aW9uIChtYSwgbWkpIHsKLSAgICAgICAgcmV0dXJuICgobWEpIDw8IDggfCAobWkpKTsKLSAgICAg
IH0scmVnaXN0ZXJEZXZpY2U6ZnVuY3Rpb24gKGRldiwgb3BzKSB7Ci0gICAgICAgIEZTLmRldmlj
ZXNbZGV2XSA9IHsgc3RyZWFtX29wczogb3BzIH07Ci0gICAgICB9LGdldERldmljZTpmdW5jdGlv
biAoZGV2KSB7Ci0gICAgICAgIHJldHVybiBGUy5kZXZpY2VzW2Rldl07Ci0gICAgICB9LE1BWF9P
UEVOX0ZEUzo0MDk2LG5leHRmZDpmdW5jdGlvbiAoZmRfc3RhcnQsIGZkX2VuZCkgewotICAgICAg
ICBmZF9zdGFydCA9IGZkX3N0YXJ0IHx8IDE7Ci0gICAgICAgIGZkX2VuZCA9IGZkX2VuZCB8fCBG
Uy5NQVhfT1BFTl9GRFM7Ci0gICAgICAgIGZvciAodmFyIGZkID0gZmRfc3RhcnQ7IGZkIDw9IGZk
X2VuZDsgZmQrKykgewotICAgICAgICAgIGlmICghRlMuc3RyZWFtc1tmZF0pIHsKLSAgICAgICAg
ICAgIHJldHVybiBmZDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU1GSUxFKTsKLSAgICAgIH0sZ2V0U3RyZWFtOmZ1
bmN0aW9uIChmZCkgewotICAgICAgICByZXR1cm4gRlMuc3RyZWFtc1tmZF07Ci0gICAgICB9LGNy
ZWF0ZVN0cmVhbTpmdW5jdGlvbiAoc3RyZWFtLCBmZF9zdGFydCwgZmRfZW5kKSB7Ci0gICAgICAg
IHZhciBmZCA9IEZTLm5leHRmZChmZF9zdGFydCwgZmRfZW5kKTsKLSAgICAgICAgc3RyZWFtLmZk
ID0gZmQ7Ci0gICAgICAgIC8vIGNvbXBhdGliaWxpdHkKLSAgICAgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnRpZXMoc3RyZWFtLCB7Ci0gICAgICAgICAgb2JqZWN0OiB7Ci0gICAgICAgICAgICBnZXQ6
IGZ1bmN0aW9uKCkgeyByZXR1cm4gc3RyZWFtLm5vZGU7IH0sCi0gICAgICAgICAgICBzZXQ6IGZ1
bmN0aW9uKHZhbCkgeyBzdHJlYW0ubm9kZSA9IHZhbDsgfQotICAgICAgICAgIH0sCi0gICAgICAg
ICAgaXNSZWFkOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gKHN0cmVh
bS5mbGFncyAmIDMpICE9PSAxOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc1dyaXRlOiB7
Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gKHN0cmVhbS5mbGFncyAmIDMp
ICE9PSAwOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0FwcGVuZDogewotICAgICAgICAg
ICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChzdHJlYW0uZmxhZ3MgJiA4KTsgfQotICAgICAg
ICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIEZTLnN0cmVhbXNbZmRdID0gc3RyZWFtOwotICAg
ICAgICByZXR1cm4gc3RyZWFtOwotICAgICAgfSxjbG9zZVN0cmVhbTpmdW5jdGlvbiAoZmQpIHsK
LSAgICAgICAgRlMuc3RyZWFtc1tmZF0gPSBudWxsOwotICAgICAgfSxnZXRNb2RlOmZ1bmN0aW9u
IChjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgbW9kZSA9IDA7Ci0gICAgICAgIGlm
IChjYW5SZWFkKSBtb2RlIHw9IDI5MiB8IDczOwotICAgICAgICBpZiAoY2FuV3JpdGUpIG1vZGUg
fD0gMTQ2OwotICAgICAgICByZXR1cm4gbW9kZTsKLSAgICAgIH0sam9pblBhdGg6ZnVuY3Rpb24g
KHBhcnRzLCBmb3JjZVJlbGF0aXZlKSB7Ci0gICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luLmFw
cGx5KG51bGwsIHBhcnRzKTsKLSAgICAgICAgaWYgKGZvcmNlUmVsYXRpdmUgJiYgcGF0aFswXSA9
PSAnLycpIHBhdGggPSBwYXRoLnN1YnN0cigxKTsKLSAgICAgICAgcmV0dXJuIHBhdGg7Ci0gICAg
ICB9LGFic29sdXRlUGF0aDpmdW5jdGlvbiAocmVsYXRpdmUsIGJhc2UpIHsKLSAgICAgICAgcmV0
dXJuIFBBVEgucmVzb2x2ZShiYXNlLCByZWxhdGl2ZSk7Ci0gICAgICB9LHN0YW5kYXJkaXplUGF0
aDpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICByZXR1cm4gUEFUSC5ub3JtYWxpemUocGF0aCk7
Ci0gICAgICB9LGZpbmRPYmplY3Q6ZnVuY3Rpb24gKHBhdGgsIGRvbnRSZXNvbHZlTGFzdExpbmsp
IHsKLSAgICAgICAgdmFyIHJldCA9IEZTLmFuYWx5emVQYXRoKHBhdGgsIGRvbnRSZXNvbHZlTGFz
dExpbmspOwotICAgICAgICBpZiAocmV0LmV4aXN0cykgewotICAgICAgICAgIHJldHVybiByZXQu
b2JqZWN0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIF9fX3NldEVyck5vKHJldC5lcnJv
cik7Ci0gICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLSAgICAgIH0sYW5hbHl6ZVBh
dGg6ZnVuY3Rpb24gKHBhdGgsIGRvbnRSZXNvbHZlTGFzdExpbmspIHsKLSAgICAgICAgLy8gb3Bl
cmF0ZSBmcm9tIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgc3ltbGluaydzIHRhcmdldAotICAg
ICAgICB0cnkgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsg
Zm9sbG93OiAhZG9udFJlc29sdmVMYXN0TGluayB9KTsKLSAgICAgICAgICBwYXRoID0gbG9va3Vw
LnBhdGg7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgfQotICAgICAgICB2YXIgcmV0
ID0gewotICAgICAgICAgIGlzUm9vdDogZmFsc2UsIGV4aXN0czogZmFsc2UsIGVycm9yOiAwLCBu
YW1lOiBudWxsLCBwYXRoOiBudWxsLCBvYmplY3Q6IG51bGwsCi0gICAgICAgICAgcGFyZW50RXhp
c3RzOiBmYWxzZSwgcGFyZW50UGF0aDogbnVsbCwgcGFyZW50T2JqZWN0OiBudWxsCi0gICAgICAg
IH07Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgo
cGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgcmV0LnBhcmVudEV4aXN0cyA9IHRy
dWU7Ci0gICAgICAgICAgcmV0LnBhcmVudFBhdGggPSBsb29rdXAucGF0aDsKLSAgICAgICAgICBy
ZXQucGFyZW50T2JqZWN0ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgcmV0Lm5hbWUgPSBQQVRI
LmJhc2VuYW1lKHBhdGgpOwotICAgICAgICAgIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwg
eyBmb2xsb3c6ICFkb250UmVzb2x2ZUxhc3RMaW5rIH0pOwotICAgICAgICAgIHJldC5leGlzdHMg
PSB0cnVlOwotICAgICAgICAgIHJldC5wYXRoID0gbG9va3VwLnBhdGg7Ci0gICAgICAgICAgcmV0
Lm9iamVjdCA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgIHJldC5uYW1lID0gbG9va3VwLm5vZGUu
bmFtZTsKLSAgICAgICAgICByZXQuaXNSb290ID0gbG9va3VwLnBhdGggPT09ICcvJzsKLSAgICAg
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHJldC5lcnJvciA9IGUuZXJybm87Ci0gICAgICAg
IH07Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgICB9LGNyZWF0ZUZvbGRlcjpmdW5jdGlvbiAo
cGFyZW50LCBuYW1lLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgcGF0aCA9IFBB
VEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZTLmdldFBhdGgo
cGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2RlID0gRlMuZ2V0TW9kZShjYW5SZWFkLCBj
YW5Xcml0ZSk7Ci0gICAgICAgIHJldHVybiBGUy5ta2RpcihwYXRoLCBtb2RlKTsKLSAgICAgIH0s
Y3JlYXRlUGF0aDpmdW5jdGlvbiAocGFyZW50LCBwYXRoLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewot
ICAgICAgICBwYXJlbnQgPSB0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZT
LmdldFBhdGgocGFyZW50KTsKLSAgICAgICAgdmFyIHBhcnRzID0gcGF0aC5zcGxpdCgnLycpLnJl
dmVyc2UoKTsKLSAgICAgICAgd2hpbGUgKHBhcnRzLmxlbmd0aCkgewotICAgICAgICAgIHZhciBw
YXJ0ID0gcGFydHMucG9wKCk7Ci0gICAgICAgICAgaWYgKCFwYXJ0KSBjb250aW51ZTsKLSAgICAg
ICAgICB2YXIgY3VycmVudCA9IFBBVEguam9pbihwYXJlbnQsIHBhcnQpOwotICAgICAgICAgIHRy
eSB7Ci0gICAgICAgICAgICBGUy5ta2RpcihjdXJyZW50LCAwNzc3KTsKLSAgICAgICAgICB9IGNh
dGNoIChlKSB7Ci0gICAgICAgICAgICAvLyBpZ25vcmUgRUVYSVNUCi0gICAgICAgICAgfQotICAg
ICAgICAgIHBhcmVudCA9IGN1cnJlbnQ7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGN1cnJl
bnQ7Ci0gICAgICB9LGNyZWF0ZUZpbGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgcHJvcGVydGll
cywgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4odHlw
ZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCksIG5h
bWUpOwotICAgICAgICB2YXIgbW9kZSA9IEZTLmdldE1vZGUoY2FuUmVhZCwgY2FuV3JpdGUpOwot
ICAgICAgICByZXR1cm4gRlMuY3JlYXRlKHBhdGgsIG1vZGUpOwotICAgICAgfSxjcmVhdGVEYXRh
RmlsZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBkYXRhLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewot
ICAgICAgICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/
IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2RlID0g
RlMuZ2V0TW9kZShjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgIHZhciBub2RlID0gRlMuY3Jl
YXRlKHBhdGgsIG1vZGUpOwotICAgICAgICBpZiAoZGF0YSkgewotICAgICAgICAgIGlmICh0eXBl
b2YgZGF0YSA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICAgIHZhciBhcnIgPSBuZXcgQXJyYXko
ZGF0YS5sZW5ndGgpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGRhdGEubGVu
Z3RoOyBpIDwgbGVuOyArK2kpIGFycltpXSA9IGRhdGEuY2hhckNvZGVBdChpKTsKLSAgICAgICAg
ICAgIGRhdGEgPSBhcnI7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIG1ha2Ugc3VyZSB3ZSBj
YW4gd3JpdGUgdG8gdGhlIGZpbGUKLSAgICAgICAgICBGUy5jaG1vZChwYXRoLCBtb2RlIHwgMTQ2
KTsKLSAgICAgICAgICB2YXIgc3RyZWFtID0gRlMub3BlbihwYXRoLCAndycpOwotICAgICAgICAg
IEZTLndyaXRlKHN0cmVhbSwgZGF0YSwgMCwgZGF0YS5sZW5ndGgsIDApOwotICAgICAgICAgIEZT
LmNsb3NlKHN0cmVhbSk7Ci0gICAgICAgICAgRlMuY2htb2QocGF0aCwgbW9kZSk7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LGNyZWF0ZURldmljZTpmdW5jdGlvbiAo
cGFyZW50LCBuYW1lLCBpbnB1dCwgb3V0cHV0KSB7Ci0gICAgICAgIHZhciBwYXRoID0gUEFUSC5q
b2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJl
bnQpLCBuYW1lKTsKLSAgICAgICAgdmFyIG1vZGUgPSBpbnB1dCAmJiBvdXRwdXQgPyAwNzc3IDog
KGlucHV0ID8gMDMzMyA6IDA1NTUpOwotICAgICAgICBpZiAoIUZTLmNyZWF0ZURldmljZS5tYWpv
cikgRlMuY3JlYXRlRGV2aWNlLm1ham9yID0gNjQ7Ci0gICAgICAgIHZhciBkZXYgPSBGUy5tYWtl
ZGV2KEZTLmNyZWF0ZURldmljZS5tYWpvcisrLCAwKTsKLSAgICAgICAgLy8gQ3JlYXRlIGEgZmFr
ZSBkZXZpY2UgdGhhdCBhIHNldCBvZiBzdHJlYW0gb3BzIHRvIGVtdWxhdGUKLSAgICAgICAgLy8g
dGhlIG9sZCBiZWhhdmlvci4KLSAgICAgICAgRlMucmVnaXN0ZXJEZXZpY2UoZGV2LCB7Ci0gICAg
ICAgICAgb3BlbjogZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgICAgICAgICBzdHJlYW0uc2Vla2Fi
bGUgPSBmYWxzZTsKLSAgICAgICAgICB9LAotICAgICAgICAgIGNsb3NlOiBmdW5jdGlvbihzdHJl
YW0pIHsKLSAgICAgICAgICAgIC8vIGZsdXNoIGFueSBwZW5kaW5nIGxpbmUgZGF0YQotICAgICAg
ICAgICAgaWYgKG91dHB1dCAmJiBvdXRwdXQuYnVmZmVyICYmIG91dHB1dC5idWZmZXIubGVuZ3Ro
KSB7Ci0gICAgICAgICAgICAgIG91dHB1dCgxMCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
fSwKLSAgICAgICAgICByZWFkOiBmdW5jdGlvbihzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5n
dGgsIHBvcyAvKiBpZ25vcmVkICovKSB7Ci0gICAgICAgICAgICB2YXIgYnl0ZXNSZWFkID0gMDsK
LSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAg
ICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBpbnB1dCgpOwotICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQgJiYgYnl0ZXNS
ZWFkID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAocmVz
dWx0ID09PSBudWxsIHx8IHJlc3VsdCA9PT0gdW5kZWZpbmVkKSBicmVhazsKLSAgICAgICAgICAg
ICAgYnl0ZXNSZWFkKys7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQraV0gPSByZXN1bHQ7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYnl0ZXNSZWFkKSB7Ci0gICAgICAgICAg
ICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICByZXR1cm4gYnl0ZXNSZWFkOwotICAgICAgICAgIH0sCi0gICAgICAgICAgd3Jp
dGU6IGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zKSB7Ci0gICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAg
IHRyeSB7Ci0gICAgICAgICAgICAgICAgb3V0cHV0KGJ1ZmZlcltvZmZzZXQraV0pOwotICAgICAg
ICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5v
RXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAgICBzdHJlYW0ubm9kZS50aW1l
c3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGk7
Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIEZTLm1rZGV2KHBhdGgs
IG1vZGUsIGRldik7Ci0gICAgICB9LGNyZWF0ZUxpbms6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwg
dGFyZ2V0LCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgcGF0aCA9IFBBVEguam9p
bih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50
KSwgbmFtZSk7Ci0gICAgICAgIHJldHVybiBGUy5zeW1saW5rKHRhcmdldCwgcGF0aCk7Ci0gICAg
ICB9LGZvcmNlTG9hZEZpbGU6ZnVuY3Rpb24gKG9iaikgewotICAgICAgICBpZiAob2JqLmlzRGV2
aWNlIHx8IG9iai5pc0ZvbGRlciB8fCBvYmoubGluayB8fCBvYmouY29udGVudHMpIHJldHVybiB0
cnVlOwotICAgICAgICB2YXIgc3VjY2VzcyA9IHRydWU7Ci0gICAgICAgIGlmICh0eXBlb2YgWE1M
SHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJMYXp5IGxvYWRpbmcgc2hvdWxkIGhhdmUgYmVlbiBwZXJmb3JtZWQgKGNvbnRlbnRzIHNldCkg
aW4gY3JlYXRlTGF6eUZpbGUsIGJ1dCBpdCB3YXMgbm90LiBMYXp5IGxvYWRpbmcgb25seSB3b3Jr
cyBpbiB3ZWIgd29ya2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBl
bWNjIG9uIHRoZSBtYWluIHRocmVhZC4iKTsKLSAgICAgICAgfSBlbHNlIGlmIChNb2R1bGVbJ3Jl
YWQnXSkgewotICAgICAgICAgIC8vIENvbW1hbmQtbGluZS4KLSAgICAgICAgICB0cnkgewotICAg
ICAgICAgICAgLy8gV0FSTklORzogQ2FuJ3QgcmVhZCBiaW5hcnkgZmlsZXMgaW4gVjgncyBkOCBv
ciB0cmFjZW1vbmtleSdzIGpzLCBhcwotICAgICAgICAgICAgLy8gICAgICAgICAgcmVhZCgpIHdp
bGwgdHJ5IHRvIHBhcnNlIFVURjguCi0gICAgICAgICAgICBvYmouY29udGVudHMgPSBpbnRBcnJh
eUZyb21TdHJpbmcoTW9kdWxlWydyZWFkJ10ob2JqLnVybCksIHRydWUpOwotICAgICAgICAgIH0g
Y2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgbG9hZCB3
aXRob3V0IHJlYWQoKSBvciBYTUxIdHRwUmVxdWVzdC4nKTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoIXN1Y2Nlc3MpIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAgIHJldHVy
biBzdWNjZXNzOwotICAgICAgfSxjcmVhdGVMYXp5RmlsZTpmdW5jdGlvbiAocGFyZW50LCBuYW1l
LCB1cmwsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIGlmICh0eXBlb2YgWE1MSHR0cFJl
cXVlc3QgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgaWYgKCFFTlZJUk9OTUVOVF9JU19X
T1JLRVIpIHRocm93ICdDYW5ub3QgZG8gc3luY2hyb25vdXMgYmluYXJ5IFhIUnMgb3V0c2lkZSB3
ZWJ3b3JrZXJzIGluIG1vZGVybiBicm93c2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXByZWxv
YWQtZmlsZSBpbiBlbWNjJzsKLSAgICAgICAgICAvLyBMYXp5IGNodW5rZWQgVWludDhBcnJheSAo
aW1wbGVtZW50cyBnZXQgYW5kIGxlbmd0aCBmcm9tIFVpbnQ4QXJyYXkpLiBBY3R1YWwgZ2V0dGlu
ZyBpcyBhYnN0cmFjdGVkIGF3YXkgZm9yIGV2ZW50dWFsIHJldXNlLgotICAgICAgICAgIHZhciBM
YXp5VWludDhBcnJheSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdGhpcy5sZW5ndGhLbm93
biA9IGZhbHNlOwotICAgICAgICAgICAgdGhpcy5jaHVua3MgPSBbXTsgLy8gTG9hZGVkIGNodW5r
cy4gSW5kZXggaXMgdGhlIGNodW5rIG51bWJlcgotICAgICAgICAgIH0KLSAgICAgICAgICBMYXp5
VWludDhBcnJheS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oaWR4KSB7Ci0gICAgICAgICAgICBp
ZiAoaWR4ID4gdGhpcy5sZW5ndGgtMSB8fCBpZHggPCAwKSB7Ci0gICAgICAgICAgICAgIHJldHVy
biB1bmRlZmluZWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB2YXIgY2h1bmtPZmZzZXQg
PSBpZHggJSB0aGlzLmNodW5rU2l6ZTsKLSAgICAgICAgICAgIHZhciBjaHVua051bSA9IE1hdGgu
Zmxvb3IoaWR4IC8gdGhpcy5jaHVua1NpemUpOwotICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0
dGVyKGNodW5rTnVtKVtjaHVua09mZnNldF07Ci0gICAgICAgICAgfQotICAgICAgICAgIExhenlV
aW50OEFycmF5LnByb3RvdHlwZS5zZXREYXRhR2V0dGVyID0gZnVuY3Rpb24oZ2V0dGVyKSB7Ci0g
ICAgICAgICAgICB0aGlzLmdldHRlciA9IGdldHRlcjsKLSAgICAgICAgICB9Ci0gICAgICAgICAg
TGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLmNhY2hlTGVuZ3RoID0gZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICAgIC8vIEZpbmQgbGVuZ3RoCi0gICAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1M
SHR0cFJlcXVlc3QoKTsKLSAgICAgICAgICAgICAgeGhyLm9wZW4oJ0hFQUQnLCB1cmwsIGZhbHNl
KTsKLSAgICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgICAgICAgICAgIGlmICghKHho
ci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwgeGhyLnN0YXR1cyA9PT0gMzA0
KSkgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1cmwgKyAiLiBTdGF0dXM6ICIg
KyB4aHIuc3RhdHVzKTsKLSAgICAgICAgICAgICAgdmFyIGRhdGFsZW5ndGggPSBOdW1iZXIoeGhy
LmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LWxlbmd0aCIpKTsKLSAgICAgICAgICAgICAgdmFy
IGhlYWRlcjsKLSAgICAgICAgICAgICAgdmFyIGhhc0J5dGVTZXJ2aW5nID0gKGhlYWRlciA9IHho
ci5nZXRSZXNwb25zZUhlYWRlcigiQWNjZXB0LVJhbmdlcyIpKSAmJiBoZWFkZXIgPT09ICJieXRl
cyI7Ci0gICAgICAgICAgICAgIHZhciBjaHVua1NpemUgPSAxMDI0KjEwMjQ7IC8vIENodW5rIHNp
emUgaW4gYnl0ZXMKLSAgICAgICAgICAgICAgaWYgKCFoYXNCeXRlU2VydmluZykgY2h1bmtTaXpl
ID0gZGF0YWxlbmd0aDsKLSAgICAgICAgICAgICAgLy8gRnVuY3Rpb24gdG8gZ2V0IGEgcmFuZ2Ug
ZnJvbSB0aGUgcmVtb3RlIFVSTC4KLSAgICAgICAgICAgICAgdmFyIGRvWEhSID0gKGZ1bmN0aW9u
KGZyb20sIHRvKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZyb20gPiB0bykgdGhyb3cgbmV3IEVy
cm9yKCJpbnZhbGlkIHJhbmdlICgiICsgZnJvbSArICIsICIgKyB0byArICIpIG9yIG5vIGJ5dGVz
IHJlcXVlc3RlZCEiKTsKLSAgICAgICAgICAgICAgICBpZiAodG8gPiBkYXRhbGVuZ3RoLTEpIHRo
cm93IG5ldyBFcnJvcigib25seSAiICsgZGF0YWxlbmd0aCArICIgYnl0ZXMgYXZhaWxhYmxlISBw
cm9ncmFtbWVyIGVycm9yISIpOwotICAgICAgICAgICAgICAgIC8vIFRPRE86IFVzZSBtb3pSZXNw
b25zZUFycmF5QnVmZmVyLCByZXNwb25zZVN0cmVhbSwgZXRjLiBpZiBhdmFpbGFibGUuCi0gICAg
ICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgICAgICAgICAg
ICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBpZiAoZGF0
YWxlbmd0aCAhPT0gY2h1bmtTaXplKSB4aHIuc2V0UmVxdWVzdEhlYWRlcigiUmFuZ2UiLCAiYnl0
ZXM9IiArIGZyb20gKyAiLSIgKyB0byk7Ci0gICAgICAgICAgICAgICAgLy8gU29tZSBoaW50cyB0
byB0aGUgYnJvd3NlciB0aGF0IHdlIHdhbnQgYmluYXJ5IGRhdGEuCi0gICAgICAgICAgICAgICAg
aWYgKHR5cGVvZiBVaW50OEFycmF5ICE9ICd1bmRlZmluZWQnKSB4aHIucmVzcG9uc2VUeXBlID0g
J2FycmF5YnVmZmVyJzsKLSAgICAgICAgICAgICAgICBpZiAoeGhyLm92ZXJyaWRlTWltZVR5cGUp
IHsKLSAgICAgICAgICAgICAgICAgIHhoci5vdmVycmlkZU1pbWVUeXBlKCd0ZXh0L3BsYWluOyBj
aGFyc2V0PXgtdXNlci1kZWZpbmVkJyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIHhoci5zZW5kKG51bGwpOwotICAgICAgICAgICAgICAgIGlmICghKHhoci5zdGF0dXMgPj0g
MjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwgeGhyLnN0YXR1cyA9PT0gMzA0KSkgdGhyb3cgbmV3
IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1cmwgKyAiLiBTdGF0dXM6ICIgKyB4aHIuc3RhdHVz
KTsKLSAgICAgICAgICAgICAgICBpZiAoeGhyLnJlc3BvbnNlICE9PSB1bmRlZmluZWQpIHsKLSAg
ICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheSh4aHIucmVzcG9uc2UgfHwgW10p
OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gaW50
QXJyYXlGcm9tU3RyaW5nKHhoci5yZXNwb25zZVRleHQgfHwgJycsIHRydWUpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgIHZhciBsYXp5QXJyYXkg
PSB0aGlzOwotICAgICAgICAgICAgICBsYXp5QXJyYXkuc2V0RGF0YUdldHRlcihmdW5jdGlvbihj
aHVua051bSkgewotICAgICAgICAgICAgICAgIHZhciBzdGFydCA9IGNodW5rTnVtICogY2h1bmtT
aXplOwotICAgICAgICAgICAgICAgIHZhciBlbmQgPSAoY2h1bmtOdW0rMSkgKiBjaHVua1NpemUg
LSAxOyAvLyBpbmNsdWRpbmcgdGhpcyBieXRlCi0gICAgICAgICAgICAgICAgZW5kID0gTWF0aC5t
aW4oZW5kLCBkYXRhbGVuZ3RoLTEpOyAvLyBpZiBkYXRhbGVuZ3RoLTEgaXMgc2VsZWN0ZWQsIHRo
aXMgaXMgdGhlIGxhc3QgYmxvY2sKLSAgICAgICAgICAgICAgICBpZiAodHlwZW9mKGxhenlBcnJh
eS5jaHVua3NbY2h1bmtOdW1dKSA9PT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgICAgICAgICAg
IGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dID0gZG9YSFIoc3RhcnQsIGVuZCk7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh0eXBlb2YobGF6eUFycmF5LmNodW5rc1tj
aHVua051bV0pID09PSAidW5kZWZpbmVkIikgdGhyb3cgbmV3IEVycm9yKCJkb1hIUiBmYWlsZWQh
Iik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dOwot
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgdGhpcy5fbGVuZ3RoID0gZGF0YWxlbmd0
aDsKLSAgICAgICAgICAgICAgdGhpcy5fY2h1bmtTaXplID0gY2h1bmtTaXplOwotICAgICAgICAg
ICAgICB0aGlzLmxlbmd0aEtub3duID0gdHJ1ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFy
IGxhenlBcnJheSA9IG5ldyBMYXp5VWludDhBcnJheSgpOwotICAgICAgICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShsYXp5QXJyYXksICJsZW5ndGgiLCB7Ci0gICAgICAgICAgICAgIGdldDogZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBpZighdGhpcy5sZW5ndGhLbm93bikgewotICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVMZW5ndGgoKTsKLSAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sZW5ndGg7Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobGF6eUFy
cmF5LCAiY2h1bmtTaXplIiwgewotICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICAgICAgaWYoIXRoaXMubGVuZ3RoS25vd24pIHsKLSAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLmNhY2hlTGVuZ3RoKCk7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fY2h1bmtTaXplOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgfSk7Ci0gICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSB7IGlzRGV2aWNlOiBmYWxzZSwgY29u
dGVudHM6IGxhenlBcnJheSB9OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHZhciBwcm9w
ZXJ0aWVzID0geyBpc0RldmljZTogZmFsc2UsIHVybDogdXJsIH07Ci0gICAgICAgIH0KLSAgICAg
ICAgdmFyIG5vZGUgPSBGUy5jcmVhdGVGaWxlKHBhcmVudCwgbmFtZSwgcHJvcGVydGllcywgY2Fu
UmVhZCwgY2FuV3JpdGUpOwotICAgICAgICAvLyBUaGlzIGlzIGEgdG90YWwgaGFjaywgYnV0IEkg
d2FudCB0byBnZXQgdGhpcyBsYXp5IGZpbGUgY29kZSBvdXQgb2YgdGhlCi0gICAgICAgIC8vIGNv
cmUgb2YgTUVNRlMuIElmIHdlIHdhbnQgdG8ga2VlcCB0aGlzIGxhenkgZmlsZSBjb25jZXB0IEkg
ZmVlbCBpdCBzaG91bGQKLSAgICAgICAgLy8gYmUgaXRzIG93biB0aGluIExBWllGUyBwcm94eWlu
ZyBjYWxscyB0byBNRU1GUy4KLSAgICAgICAgaWYgKHByb3BlcnRpZXMuY29udGVudHMpIHsKLSAg
ICAgICAgICBub2RlLmNvbnRlbnRzID0gcHJvcGVydGllcy5jb250ZW50czsKLSAgICAgICAgfSBl
bHNlIGlmIChwcm9wZXJ0aWVzLnVybCkgewotICAgICAgICAgIG5vZGUuY29udGVudHMgPSBudWxs
OwotICAgICAgICAgIG5vZGUudXJsID0gcHJvcGVydGllcy51cmw7Ci0gICAgICAgIH0KLSAgICAg
ICAgLy8gb3ZlcnJpZGUgZWFjaCBzdHJlYW0gb3Agd2l0aCBvbmUgdGhhdCB0cmllcyB0byBmb3Jj
ZSBsb2FkIHRoZSBsYXp5IGZpbGUgZmlyc3QKLSAgICAgICAgdmFyIHN0cmVhbV9vcHMgPSB7fTsK
LSAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhub2RlLnN0cmVhbV9vcHMpOwotICAgICAg
ICBrZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7Ci0gICAgICAgICAgdmFyIGZuID0gbm9kZS5z
dHJlYW1fb3BzW2tleV07Ci0gICAgICAgICAgc3RyZWFtX29wc1trZXldID0gZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICBpZiAoIUZTLmZvcmNlTG9hZEZpbGUobm9kZSkpIHsKLSAgICAgICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShudWxsLCBhcmd1bWVudHMpOwotICAgICAg
ICAgIH07Ci0gICAgICAgIH0pOwotICAgICAgICAvLyB1c2UgYSBjdXN0b20gcmVhZCBmdW5jdGlv
bgotICAgICAgICBzdHJlYW1fb3BzLnJlYWQgPSBmdW5jdGlvbihzdHJlYW0sIGJ1ZmZlciwgb2Zm
c2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgICAgaWYgKCFGUy5mb3JjZUxvYWRGaWxl
KG5vZGUpKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FSU8pOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9k
ZS5jb250ZW50czsKLSAgICAgICAgICB2YXIgc2l6ZSA9IE1hdGgubWluKGNvbnRlbnRzLmxlbmd0
aCAtIHBvc2l0aW9uLCBsZW5ndGgpOwotICAgICAgICAgIGlmIChjb250ZW50cy5zbGljZSkgeyAv
LyBub3JtYWwgYXJyYXkKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsr
KSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGNvbnRlbnRzW3Bvc2l0aW9u
ICsgaV07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7IC8vIExhenlVaW50OEFycmF5IGZyb20gc3lu
YyBiaW5hcnkgWEhSCi0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGNvbnRlbnRz
LmdldChwb3NpdGlvbiArIGkpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAg
ICByZXR1cm4gc2l6ZTsKLSAgICAgICAgfTsKLSAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gc3Ry
ZWFtX29wczsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LGNyZWF0ZVByZWxvYWRlZEZp
bGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgdXJsLCBjYW5SZWFkLCBjYW5Xcml0ZSwgb25sb2Fk
LCBvbmVycm9yLCBkb250Q3JlYXRlRmlsZSkgewotICAgICAgICBCcm93c2VyLmluaXQoKTsKLSAg
ICAgICAgLy8gVE9ETyB3ZSBzaG91bGQgYWxsb3cgcGVvcGxlIHRvIGp1c3QgcGFzcyBpbiBhIGNv
bXBsZXRlIGZpbGVuYW1lIGluc3RlYWQKLSAgICAgICAgLy8gb2YgcGFyZW50IGFuZCBuYW1lIGJl
aW5nIHRoYXQgd2UganVzdCBqb2luIHRoZW0gYW55d2F5cwotICAgICAgICB2YXIgZnVsbG5hbWUg
PSBQQVRILnJlc29sdmUoUEFUSC5qb2luKHBhcmVudCwgbmFtZSkpOwotICAgICAgICBmdW5jdGlv
biBwcm9jZXNzRGF0YShieXRlQXJyYXkpIHsKLSAgICAgICAgICBmdW5jdGlvbiBmaW5pc2goYnl0
ZUFycmF5KSB7Ci0gICAgICAgICAgICBpZiAoIWRvbnRDcmVhdGVGaWxlKSB7Ci0gICAgICAgICAg
ICAgIEZTLmNyZWF0ZURhdGFGaWxlKHBhcmVudCwgbmFtZSwgYnl0ZUFycmF5LCBjYW5SZWFkLCBj
YW5Xcml0ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAob25sb2FkKSBvbmxvYWQo
KTsKLSAgICAgICAgICAgIHJlbW92ZVJ1bkRlcGVuZGVuY3koJ2NwICcgKyBmdWxsbmFtZSk7Ci0g
ICAgICAgICAgfQotICAgICAgICAgIHZhciBoYW5kbGVkID0gZmFsc2U7Ci0gICAgICAgICAgTW9k
dWxlWydwcmVsb2FkUGx1Z2lucyddLmZvckVhY2goZnVuY3Rpb24ocGx1Z2luKSB7Ci0gICAgICAg
ICAgICBpZiAoaGFuZGxlZCkgcmV0dXJuOwotICAgICAgICAgICAgaWYgKHBsdWdpblsnY2FuSGFu
ZGxlJ10oZnVsbG5hbWUpKSB7Ci0gICAgICAgICAgICAgIHBsdWdpblsnaGFuZGxlJ10oYnl0ZUFy
cmF5LCBmdWxsbmFtZSwgZmluaXNoLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBpZiAo
b25lcnJvcikgb25lcnJvcigpOwotICAgICAgICAgICAgICAgIHJlbW92ZVJ1bkRlcGVuZGVuY3ko
J2NwICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICBoYW5k
bGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICBpZiAo
IWhhbmRsZWQpIGZpbmlzaChieXRlQXJyYXkpOwotICAgICAgICB9Ci0gICAgICAgIGFkZFJ1bkRl
cGVuZGVuY3koJ2NwICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgIGlmICh0eXBlb2YgdXJsID09ICdz
dHJpbmcnKSB7Ci0gICAgICAgICAgQnJvd3Nlci5hc3luY0xvYWQodXJsLCBmdW5jdGlvbihieXRl
QXJyYXkpIHsKLSAgICAgICAgICAgIHByb2Nlc3NEYXRhKGJ5dGVBcnJheSk7Ci0gICAgICAgICAg
fSwgb25lcnJvcik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcHJvY2Vzc0RhdGEodXJs
KTsKLSAgICAgICAgfQotICAgICAgfSxjcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXM6ZnVuY3Rpb24g
KCkgewotICAgICAgICBGUy5ta2RpcignL3RtcCcsIDA3NzcpOwotICAgICAgfSxjcmVhdGVEZWZh
dWx0RGV2aWNlczpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIC8vIGNyZWF0ZSAvZGV2Ci0gICAgICAg
IEZTLm1rZGlyKCcvZGV2JywgMDc3Nyk7Ci0gICAgICAgIC8vIHNldHVwIC9kZXYvbnVsbAotICAg
ICAgICBGUy5yZWdpc3RlckRldmljZShGUy5tYWtlZGV2KDEsIDMpLCB7Ci0gICAgICAgICAgcmVh
ZDogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9LAotICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigp
IHsgcmV0dXJuIDA7IH0KLSAgICAgICAgfSk7Ci0gICAgICAgIEZTLm1rZGV2KCcvZGV2L251bGwn
LCAwNjY2LCBGUy5tYWtlZGV2KDEsIDMpKTsKLSAgICAgICAgLy8gc2V0dXAgL2Rldi90dHkgYW5k
IC9kZXYvdHR5MQotICAgICAgICAvLyBzdGRlcnIgbmVlZHMgdG8gcHJpbnQgb3V0cHV0IHVzaW5n
IE1vZHVsZVsncHJpbnRFcnInXQotICAgICAgICAvLyBzbyB3ZSByZWdpc3RlciBhIHNlY29uZCB0
dHkganVzdCBmb3IgaXQuCi0gICAgICAgIFRUWS5yZWdpc3RlcihGUy5tYWtlZGV2KDUsIDApLCBU
VFkuZGVmYXVsdF90dHlfb3BzKTsKLSAgICAgICAgVFRZLnJlZ2lzdGVyKEZTLm1ha2VkZXYoNiwg
MCksIFRUWS5kZWZhdWx0X3R0eTFfb3BzKTsKLSAgICAgICAgRlMubWtkZXYoJy9kZXYvdHR5Jywg
MDY2NiwgRlMubWFrZWRldig1LCAwKSk7Ci0gICAgICAgIEZTLm1rZGV2KCcvZGV2L3R0eTEnLCAw
NjY2LCBGUy5tYWtlZGV2KDYsIDApKTsKLSAgICAgICAgLy8gd2UncmUgbm90IGdvaW5nIHRvIGVt
dWxhdGUgdGhlIGFjdHVhbCBzaG0gZGV2aWNlLAotICAgICAgICAvLyBqdXN0IGNyZWF0ZSB0aGUg
dG1wIGRpcnMgdGhhdCByZXNpZGUgaW4gaXQgY29tbW9ubHkKLSAgICAgICAgRlMubWtkaXIoJy9k
ZXYvc2htJywgMDc3Nyk7Ci0gICAgICAgIEZTLm1rZGlyKCcvZGV2L3NobS90bXAnLCAwNzc3KTsK
LSAgICAgIH0sY3JlYXRlU3RhbmRhcmRTdHJlYW1zOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgLy8g
VE9ETyBkZXByZWNhdGUgdGhlIG9sZCBmdW5jdGlvbmFsaXR5IG9mIGEgc2luZ2xlCi0gICAgICAg
IC8vIGlucHV0IC8gb3V0cHV0IGNhbGxiYWNrIGFuZCB0aGF0IHV0aWxpemVzIEZTLmNyZWF0ZURl
dmljZQotICAgICAgICAvLyBhbmQgaW5zdGVhZCByZXF1aXJlIGEgdW5pcXVlIHNldCBvZiBzdHJl
YW0gb3BzCi0gICAgICAgIC8vIGJ5IGRlZmF1bHQsIHdlIHN5bWxpbmsgdGhlIHN0YW5kYXJkIHN0
cmVhbXMgdG8gdGhlCi0gICAgICAgIC8vIGRlZmF1bHQgdHR5IGRldmljZXMuIGhvd2V2ZXIsIGlm
IHRoZSBzdGFuZGFyZCBzdHJlYW1zCi0gICAgICAgIC8vIGhhdmUgYmVlbiBvdmVyd3JpdHRlbiB3
ZSBjcmVhdGUgYSB1bmlxdWUgZGV2aWNlIGZvcgotICAgICAgICAvLyB0aGVtIGluc3RlYWQuCi0g
ICAgICAgIGlmIChNb2R1bGVbJ3N0ZGluJ10pIHsKLSAgICAgICAgICBGUy5jcmVhdGVEZXZpY2Uo
Jy9kZXYnLCAnc3RkaW4nLCBNb2R1bGVbJ3N0ZGluJ10pOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgIEZTLnN5bWxpbmsoJy9kZXYvdHR5JywgJy9kZXYvc3RkaW4nKTsKLSAgICAgICAgfQot
ICAgICAgICBpZiAoTW9kdWxlWydzdGRvdXQnXSkgewotICAgICAgICAgIEZTLmNyZWF0ZURldmlj
ZSgnL2RldicsICdzdGRvdXQnLCBudWxsLCBNb2R1bGVbJ3N0ZG91dCddKTsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICBGUy5zeW1saW5rKCcvZGV2L3R0eScsICcvZGV2L3N0ZG91dCcpOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChNb2R1bGVbJ3N0ZGVyciddKSB7Ci0gICAgICAgICAgRlMu
Y3JlYXRlRGV2aWNlKCcvZGV2JywgJ3N0ZGVycicsIG51bGwsIE1vZHVsZVsnc3RkZXJyJ10pOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5bWxpbmsoJy9kZXYvdHR5MScsICcvZGV2
L3N0ZGVycicpOwotICAgICAgICB9Ci0gICAgICAgIC8vIG9wZW4gZGVmYXVsdCBzdHJlYW1zIGZv
ciB0aGUgc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIGRldmljZXMKLSAgICAgICAgdmFyIHN0ZGlu
ID0gRlMub3BlbignL2Rldi9zdGRpbicsICdyJyk7Ci0gICAgICAgIEhFQVAzMlsoKF9zdGRpbik+
PjIpXT1zdGRpbi5mZDsKLSAgICAgICAgYXNzZXJ0KHN0ZGluLmZkID09PSAxLCAnaW52YWxpZCBo
YW5kbGUgZm9yIHN0ZGluICgnICsgc3RkaW4uZmQgKyAnKScpOwotICAgICAgICB2YXIgc3Rkb3V0
ID0gRlMub3BlbignL2Rldi9zdGRvdXQnLCAndycpOwotICAgICAgICBIRUFQMzJbKChfc3Rkb3V0
KT4+MildPXN0ZG91dC5mZDsKLSAgICAgICAgYXNzZXJ0KHN0ZG91dC5mZCA9PT0gMiwgJ2ludmFs
aWQgaGFuZGxlIGZvciBzdGRvdXQgKCcgKyBzdGRvdXQuZmQgKyAnKScpOwotICAgICAgICB2YXIg
c3RkZXJyID0gRlMub3BlbignL2Rldi9zdGRlcnInLCAndycpOwotICAgICAgICBIRUFQMzJbKChf
c3RkZXJyKT4+MildPXN0ZGVyci5mZDsKLSAgICAgICAgYXNzZXJ0KHN0ZGVyci5mZCA9PT0gMywg
J2ludmFsaWQgaGFuZGxlIGZvciBzdGRlcnIgKCcgKyBzdGRlcnIuZmQgKyAnKScpOwotICAgICAg
fSxzdGF0aWNJbml0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgRlMubmFtZV90YWJsZSA9IG5ldyBB
cnJheSg0MDk2KTsKLSAgICAgICAgRlMucm9vdCA9IEZTLmNyZWF0ZU5vZGUobnVsbCwgJy8nLCAw
MDQwMDAwIHwgMDc3NywgMCk7Ci0gICAgICAgIEZTLm1vdW50KE1FTUZTLCB7fSwgJy8nKTsKLSAg
ICAgICAgRlMuY3JlYXRlRGVmYXVsdERpcmVjdG9yaWVzKCk7Ci0gICAgICAgIEZTLmNyZWF0ZURl
ZmF1bHREZXZpY2VzKCk7Ci0gICAgICB9LGluaXQ6ZnVuY3Rpb24gKGlucHV0LCBvdXRwdXQsIGVy
cm9yKSB7Ci0gICAgICAgIGFzc2VydCghRlMuaW5pdC5pbml0aWFsaXplZCwgJ0ZTLmluaXQgd2Fz
IHByZXZpb3VzbHkgY2FsbGVkLiBJZiB5b3Ugd2FudCB0byBpbml0aWFsaXplIGxhdGVyIHdpdGgg
Y3VzdG9tIHBhcmFtZXRlcnMsIHJlbW92ZSBhbnkgZWFybGllciBjYWxscyAobm90ZSB0aGF0IG9u
ZSBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQgY29kZSknKTsKLSAgICAg
ICAgRlMuaW5pdC5pbml0aWFsaXplZCA9IHRydWU7Ci0gICAgICAgIC8vIEFsbG93IE1vZHVsZS5z
dGRpbiBldGMuIHRvIHByb3ZpZGUgZGVmYXVsdHMsIGlmIG5vbmUgZXhwbGljaXRseSBwYXNzZWQg
dG8gdXMgaGVyZQotICAgICAgICBNb2R1bGVbJ3N0ZGluJ10gPSBpbnB1dCB8fCBNb2R1bGVbJ3N0
ZGluJ107Ci0gICAgICAgIE1vZHVsZVsnc3Rkb3V0J10gPSBvdXRwdXQgfHwgTW9kdWxlWydzdGRv
dXQnXTsKLSAgICAgICAgTW9kdWxlWydzdGRlcnInXSA9IGVycm9yIHx8IE1vZHVsZVsnc3RkZXJy
J107Ci0gICAgICAgIEZTLmNyZWF0ZVN0YW5kYXJkU3RyZWFtcygpOwotICAgICAgfSxxdWl0OmZ1
bmN0aW9uICgpIHsKLSAgICAgICAgRlMuaW5pdC5pbml0aWFsaXplZCA9IGZhbHNlOwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IEZTLnN0cmVhbXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAg
ICB2YXIgc3RyZWFtID0gRlMuc3RyZWFtc1tpXTsKLSAgICAgICAgICBpZiAoIXN0cmVhbSkgewot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQotICAgICAgICAgIEZTLmNsb3NlKHN0
cmVhbSk7Ci0gICAgICAgIH0KLSAgICAgIH0sbW91bnQ6ZnVuY3Rpb24gKHR5cGUsIG9wdHMsIG1v
dW50cG9pbnQpIHsKLSAgICAgICAgdmFyIG1vdW50ID0gewotICAgICAgICAgIHR5cGU6IHR5cGUs
Ci0gICAgICAgICAgb3B0czogb3B0cywKLSAgICAgICAgICBtb3VudHBvaW50OiBtb3VudHBvaW50
LAotICAgICAgICAgIHJvb3Q6IG51bGwKLSAgICAgICAgfTsKLSAgICAgICAgdmFyIGxvb2t1cDsK
LSAgICAgICAgaWYgKG1vdW50cG9pbnQpIHsKLSAgICAgICAgICBsb29rdXAgPSBGUy5sb29rdXBQ
YXRoKG1vdW50cG9pbnQsIHsgZm9sbG93OiBmYWxzZSB9KTsKLSAgICAgICAgfQotICAgICAgICAv
LyBjcmVhdGUgYSByb290IG5vZGUgZm9yIHRoZSBmcwotICAgICAgICB2YXIgcm9vdCA9IHR5cGUu
bW91bnQobW91bnQpOwotICAgICAgICByb290Lm1vdW50ID0gbW91bnQ7Ci0gICAgICAgIG1vdW50
LnJvb3QgPSByb290OwotICAgICAgICAvLyBhc3NpZ24gdGhlIG1vdW50IGluZm8gdG8gdGhlIG1v
dW50cG9pbnQncyBub2RlCi0gICAgICAgIGlmIChsb29rdXApIHsKLSAgICAgICAgICBsb29rdXAu
bm9kZS5tb3VudCA9IG1vdW50OwotICAgICAgICAgIGxvb2t1cC5ub2RlLm1vdW50ZWQgPSB0cnVl
OwotICAgICAgICAgIC8vIGNvbXBhdGliaWxpdHkgdXBkYXRlIEZTLnJvb3QgaWYgd2UgbW91bnQg
dG8gLwotICAgICAgICAgIGlmIChtb3VudHBvaW50ID09PSAnLycpIHsKLSAgICAgICAgICAgIEZT
LnJvb3QgPSBtb3VudC5yb290OwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gcm9vdDsKLSAgICAgIH0sbG9va3VwOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUpIHsKLSAgICAg
ICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5sb29rdXAocGFyZW50LCBuYW1lKTsKLSAgICAgIH0s
bWtub2Q6ZnVuY3Rpb24gKHBhdGgsIG1vZGUsIGRldikgewotICAgICAgICB2YXIgbG9va3VwID0g
RlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAgICAgdmFyIHBhcmVu
dCA9IGxvb2t1cC5ub2RlOwotICAgICAgICB2YXIgbmFtZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7
Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlDcmVhdGUocGFyZW50LCBuYW1lKTsKLSAgICAgICAg
aWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKCFwYXJlbnQubm9kZV9vcHMubWtub2QpIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5ta25vZChwYXJlbnQsIG5hbWUsIG1vZGUsIGRl
dik7Ci0gICAgICB9LGNyZWF0ZTpmdW5jdGlvbiAocGF0aCwgbW9kZSkgewotICAgICAgICBtb2Rl
ICY9IDQwOTU7Ci0gICAgICAgIG1vZGUgfD0gMDEwMDAwMDsKLSAgICAgICAgcmV0dXJuIEZTLm1r
bm9kKHBhdGgsIG1vZGUsIDApOwotICAgICAgfSxta2RpcjpmdW5jdGlvbiAocGF0aCwgbW9kZSkg
ewotICAgICAgICBtb2RlICY9IDUxMSB8IDAwMDEwMDA7Ci0gICAgICAgIG1vZGUgfD0gMDA0MDAw
MDsKLSAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIDApOwotICAgICAgfSxta2Rl
djpmdW5jdGlvbiAocGF0aCwgbW9kZSwgZGV2KSB7Ci0gICAgICAgIG1vZGUgfD0gMDAyMDAwMDsK
LSAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIGRldik7Ci0gICAgICB9LHN5bWxp
bms6ZnVuY3Rpb24gKG9sZHBhdGgsIG5ld3BhdGgpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgobmV3cGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgIHZhciBwYXJl
bnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5ld25hbWUgPSBQQVRILmJhc2VuYW1lKG5l
d3BhdGgpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5Q3JlYXRlKHBhcmVudCwgbmV3bmFtZSk7
Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihl
cnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghcGFyZW50Lm5vZGVfb3BzLnN5bWxpbmspIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5zeW1saW5rKHBhcmVudCwg
bmV3bmFtZSwgb2xkcGF0aCk7Ci0gICAgICB9LHJlbmFtZTpmdW5jdGlvbiAob2xkX3BhdGgsIG5l
d19wYXRoKSB7Ci0gICAgICAgIHZhciBvbGRfZGlybmFtZSA9IFBBVEguZGlybmFtZShvbGRfcGF0
aCk7Ci0gICAgICAgIHZhciBuZXdfZGlybmFtZSA9IFBBVEguZGlybmFtZShuZXdfcGF0aCk7Ci0g
ICAgICAgIHZhciBvbGRfbmFtZSA9IFBBVEguYmFzZW5hbWUob2xkX3BhdGgpOwotICAgICAgICB2
YXIgbmV3X25hbWUgPSBQQVRILmJhc2VuYW1lKG5ld19wYXRoKTsKLSAgICAgICAgLy8gcGFyZW50
cyBtdXN0IGV4aXN0Ci0gICAgICAgIHZhciBsb29rdXAsIG9sZF9kaXIsIG5ld19kaXI7Ci0gICAg
ICAgIHRyeSB7Ci0gICAgICAgICAgbG9va3VwID0gRlMubG9va3VwUGF0aChvbGRfcGF0aCwgeyBw
YXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgb2xkX2RpciA9IGxvb2t1cC5ub2RlOwotICAgICAg
ICAgIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobmV3X3BhdGgsIHsgcGFyZW50OiB0cnVlIH0pOwot
ICAgICAgICAgIG5ld19kaXIgPSBsb29rdXAubm9kZTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZKTsKLSAg
ICAgICAgfQotICAgICAgICAvLyBuZWVkIHRvIGJlIHBhcnQgb2YgdGhlIHNhbWUgbW91bnQKLSAg
ICAgICAgaWYgKG9sZF9kaXIubW91bnQgIT09IG5ld19kaXIubW91bnQpIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FWERFVik7Ci0gICAgICAgIH0KLSAg
ICAgICAgLy8gc291cmNlIG11c3QgZXhpc3QKLSAgICAgICAgdmFyIG9sZF9ub2RlID0gRlMubG9v
a3VwTm9kZShvbGRfZGlyLCBvbGRfbmFtZSk7Ci0gICAgICAgIC8vIG9sZCBwYXRoIHNob3VsZCBu
b3QgYmUgYW4gYW5jZXN0b3Igb2YgdGhlIG5ldyBwYXRoCi0gICAgICAgIHZhciByZWxhdGl2ZSA9
IFBBVEgucmVsYXRpdmUob2xkX3BhdGgsIG5ld19kaXJuYW1lKTsKLSAgICAgICAgaWYgKHJlbGF0
aXZlLmNoYXJBdCgwKSAhPT0gJy4nKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICAvLyBuZXcgcGF0aCBz
aG91bGQgbm90IGJlIGFuIGFuY2VzdG9yIG9mIHRoZSBvbGQgcGF0aAotICAgICAgICByZWxhdGl2
ZSA9IFBBVEgucmVsYXRpdmUobmV3X3BhdGgsIG9sZF9kaXJuYW1lKTsKLSAgICAgICAgaWYgKHJl
bGF0aXZlLmNoYXJBdCgwKSAhPT0gJy4nKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5v
RXJyb3IoRVJSTk9fQ09ERVMuRU5PVEVNUFRZKTsKLSAgICAgICAgfQotICAgICAgICAvLyBzZWUg
aWYgdGhlIG5ldyBwYXRoIGFscmVhZHkgZXhpc3RzCi0gICAgICAgIHZhciBuZXdfbm9kZTsKLSAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICBuZXdfbm9kZSA9IEZTLmxvb2t1cE5vZGUobmV3X2Rpciwg
bmV3X25hbWUpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgLy8gbm90IGZhdGFs
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gZWFybHkgb3V0IGlmIG5vdGhpbmcgbmVlZHMgdG8gY2hh
bmdlCi0gICAgICAgIGlmIChvbGRfbm9kZSA9PT0gbmV3X25vZGUpIHsKLSAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLSAgICAgICAgLy8gd2UnbGwgbmVlZCB0byBkZWxldGUgdGhlIG9sZCBl
bnRyeQotICAgICAgICB2YXIgaXNkaXIgPSBGUy5pc0RpcihvbGRfbm9kZS5tb2RlKTsKLSAgICAg
ICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShvbGRfZGlyLCBvbGRfbmFtZSwgaXNkaXIpOwotICAg
ICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsK
LSAgICAgICAgfQotICAgICAgICAvLyBuZWVkIGRlbGV0ZSBwZXJtaXNzaW9ucyBpZiB3ZSdsbCBi
ZSBvdmVyd3JpdGluZy4KLSAgICAgICAgLy8gbmVlZCBjcmVhdGUgcGVybWlzc2lvbnMgaWYgbmV3
IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4KLSAgICAgICAgZXJyID0gbmV3X25vZGUgPwotICAgICAg
ICAgIEZTLm1heURlbGV0ZShuZXdfZGlyLCBuZXdfbmFtZSwgaXNkaXIpIDoKLSAgICAgICAgICBG
Uy5tYXlDcmVhdGUobmV3X2RpciwgbmV3X25hbWUpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoIW9sZF9kaXIubm9kZV9vcHMucmVuYW1lKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5p
c01vdW50cG9pbnQob2xkX25vZGUpIHx8IChuZXdfbm9kZSAmJiBGUy5pc01vdW50cG9pbnQobmV3
X25vZGUpKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICAvLyBpZiB3ZSBhcmUgZ29pbmcgdG8gY2hhbmdl
IHRoZSBwYXJlbnQsIGNoZWNrIHdyaXRlIHBlcm1pc3Npb25zCi0gICAgICAgIGlmIChuZXdfZGly
ICE9PSBvbGRfZGlyKSB7Ci0gICAgICAgICAgZXJyID0gRlMubm9kZVBlcm1pc3Npb25zKG9sZF9k
aXIsICd3Jyk7Ci0gICAgICAgICAgaWYgKGVycikgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gcmVt
b3ZlIHRoZSBub2RlIGZyb20gdGhlIGxvb2t1cCBoYXNoCi0gICAgICAgIEZTLmhhc2hSZW1vdmVO
b2RlKG9sZF9ub2RlKTsKLSAgICAgICAgLy8gZG8gdGhlIHVuZGVybHlpbmcgZnMgcmVuYW1lCi0g
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgb2xkX2Rpci5ub2RlX29wcy5yZW5hbWUob2xkX25vZGUs
IG5ld19kaXIsIG5ld19uYW1lKTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHRo
cm93IGU7Ci0gICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgLy8gYWRkIHRoZSBub2RlIGJh
Y2sgdG8gdGhlIGhhc2ggKGluIGNhc2Ugbm9kZV9vcHMucmVuYW1lCi0gICAgICAgICAgLy8gY2hh
bmdlZCBpdHMgbmFtZSkKLSAgICAgICAgICBGUy5oYXNoQWRkTm9kZShvbGRfbm9kZSk7Ci0gICAg
ICAgIH0KLSAgICAgIH0scm1kaXI6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgdmFyIGxvb2t1
cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgIHZhciBw
YXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUgPSBQQVRILmJhc2VuYW1lKHBh
dGgpOwotICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUocGFyZW50LCBuYW1lKTsKLSAg
ICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5hbWUsIHRydWUpOwotICAgICAg
ICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIXBhcmVudC5ub2RlX29wcy5ybWRpcikgewotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQot
ICAgICAgICBpZiAoRlMuaXNNb3VudHBvaW50KG5vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpOwotICAgICAgICB9Ci0gICAgICAgIHBh
cmVudC5ub2RlX29wcy5ybWRpcihwYXJlbnQsIG5hbWUpOwotICAgICAgICBGUy5kZXN0cm95Tm9k
ZShub2RlKTsKLSAgICAgIH0scmVhZGRpcjpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICB2YXIg
bG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogdHJ1ZSB9KTsKLSAgICAgICAg
dmFyIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLnJlYWRk
aXIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9U
RElSKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS5ub2RlX29wcy5yZWFkZGlyKG5v
ZGUpOwotICAgICAgfSx1bmxpbms6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgdmFyIGxvb2t1
cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgIHZhciBw
YXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUgPSBQQVRILmJhc2VuYW1lKHBh
dGgpOwotICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUocGFyZW50LCBuYW1lKTsKLSAg
ICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5hbWUsIGZhbHNlKTsKLSAgICAg
ICAgaWYgKGVycikgewotICAgICAgICAgIC8vIFBPU0lYIHNheXMgdW5saW5rIHNob3VsZCBzZXQg
RVBFUk0sIG5vdCBFSVNESVIKLSAgICAgICAgICBpZiAoZXJyID09PSBFUlJOT19DT0RFUy5FSVNE
SVIpIGVyciA9IEVSUk5PX0NPREVTLkVQRVJNOwotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFwYXJlbnQubm9kZV9vcHMudW5s
aW5rKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBF
Uk0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5pc01vdW50cG9pbnQobm9kZSkpIHsKLSAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgcGFyZW50Lm5vZGVfb3BzLnVubGluayhwYXJlbnQsIG5hbWUpOwotICAg
ICAgICBGUy5kZXN0cm95Tm9kZShub2RlKTsKLSAgICAgIH0scmVhZGxpbms6ZnVuY3Rpb24gKHBh
dGgpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6
IGZhbHNlIH0pOwotICAgICAgICB2YXIgbGluayA9IGxvb2t1cC5ub2RlOwotICAgICAgICBpZiAo
IWxpbmsubm9kZV9vcHMucmVhZGxpbmspIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBsaW5r
Lm5vZGVfb3BzLnJlYWRsaW5rKGxpbmspOwotICAgICAgfSxzdGF0OmZ1bmN0aW9uIChwYXRoLCBk
b250Rm9sbG93KSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsg
Zm9sbG93OiAhZG9udEZvbGxvdyB9KTsKLSAgICAgICAgdmFyIG5vZGUgPSBsb29rdXAubm9kZTsK
LSAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLmdldGF0dHIpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIG5vZGUubm9kZV9vcHMuZ2V0YXR0cihub2RlKTsKLSAgICAgIH0sbHN0YXQ6ZnVuY3Rp
b24gKHBhdGgpIHsKLSAgICAgICAgcmV0dXJuIEZTLnN0YXQocGF0aCwgdHJ1ZSk7Ci0gICAgICB9
LGNobW9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlLCBkb250Rm9sbG93KSB7Ci0gICAgICAgIHZhciBu
b2RlOwotICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAg
dmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250Rm9sbG93IH0p
OwotICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICBub2RlID0gcGF0aDsKLSAgICAgICAgfQotICAgICAgICBpZiAoIW5vZGUubm9kZV9vcHMu
c2V0YXR0cikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICBub2RlLm5vZGVfb3BzLnNldGF0dHIobm9kZSwg
ewotICAgICAgICAgIG1vZGU6IChtb2RlICYgNDA5NSkgfCAobm9kZS5tb2RlICYgfjQwOTUpLAot
ICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKQotICAgICAgICB9KTsKLSAgICAgIH0sbGNo
bW9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlKSB7Ci0gICAgICAgIEZTLmNobW9kKHBhdGgsIG1vZGUs
IHRydWUpOwotICAgICAgfSxmY2htb2Q6ZnVuY3Rpb24gKGZkLCBtb2RlKSB7Ci0gICAgICAgIHZh
ciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwotICAgICAgICBpZiAoIXN0cmVhbSkgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAg
ICAgfQotICAgICAgICBGUy5jaG1vZChzdHJlYW0ubm9kZSwgbW9kZSk7Ci0gICAgICB9LGNob3du
OmZ1bmN0aW9uIChwYXRoLCB1aWQsIGdpZCwgZG9udEZvbGxvdykgewotICAgICAgICB2YXIgbm9k
ZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykgewotICAgICAgICAgIHZh
ciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udEZvbGxvdyB9KTsK
LSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgbm9kZSA9IHBhdGg7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLnNl
dGF0dHIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
UEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUsIHsK
LSAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCkKLSAgICAgICAgICAvLyB3ZSBpZ25vcmUg
dGhlIHVpZCAvIGdpZCBmb3Igbm93Ci0gICAgICAgIH0pOwotICAgICAgfSxsY2hvd246ZnVuY3Rp
b24gKHBhdGgsIHVpZCwgZ2lkKSB7Ci0gICAgICAgIEZTLmNob3duKHBhdGgsIHVpZCwgZ2lkLCB0
cnVlKTsKLSAgICAgIH0sZmNob3duOmZ1bmN0aW9uIChmZCwgdWlkLCBnaWQpIHsKLSAgICAgICAg
dmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICAgIGlmICghc3RyZWFtKSB7Ci0g
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAg
ICAgICB9Ci0gICAgICAgIEZTLmNob3duKHN0cmVhbS5ub2RlLCB1aWQsIGdpZCk7Ci0gICAgICB9
LHRydW5jYXRlOmZ1bmN0aW9uIChwYXRoLCBsZW4pIHsKLSAgICAgICAgaWYgKGxlbiA8IDApIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwot
ICAgICAgICB9Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09
ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwg
eyBmb2xsb3c6IHRydWUgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgIG5vZGUgPSBwYXRoOwotICAgICAgICB9Ci0gICAgICAgIGlm
ICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5v
RXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5pc0Rp
cihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUlTRElSKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIUZTLmlzRmlsZShub2RlLm1v
ZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlO
VkFMKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgZXJyID0gRlMubm9kZVBlcm1pc3Npb25zKG5v
ZGUsICd3Jyk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUubm9kZV9vcHMuc2V0YXR0cihu
b2RlLCB7Ci0gICAgICAgICAgc2l6ZTogbGVuLAotICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5u
b3coKQotICAgICAgICB9KTsKLSAgICAgIH0sZnRydW5jYXRlOmZ1bmN0aW9uIChmZCwgbGVuKSB7
Ci0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwotICAgICAgICBpZiAoIXN0
cmVhbSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVC
QURGKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAwKSB7
Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsK
LSAgICAgICAgfQotICAgICAgICBGUy50cnVuY2F0ZShzdHJlYW0ubm9kZSwgbGVuKTsKLSAgICAg
IH0sdXRpbWU6ZnVuY3Rpb24gKHBhdGgsIGF0aW1lLCBtdGltZSkgewotICAgICAgICB2YXIgbG9v
a3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogdHJ1ZSB9KTsKLSAgICAgICAgdmFy
IG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgbm9kZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUs
IHsKLSAgICAgICAgICB0aW1lc3RhbXA6IE1hdGgubWF4KGF0aW1lLCBtdGltZSkKLSAgICAgICAg
fSk7Ci0gICAgICB9LG9wZW46ZnVuY3Rpb24gKHBhdGgsIGZsYWdzLCBtb2RlLCBmZF9zdGFydCwg
ZmRfZW5kKSB7Ci0gICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6ZShwYXRoKTsKLSAgICAgICAg
ZmxhZ3MgPSB0eXBlb2YgZmxhZ3MgPT09ICdzdHJpbmcnID8gRlMubW9kZVN0cmluZ1RvRmxhZ3Mo
ZmxhZ3MpIDogZmxhZ3M7Ci0gICAgICAgIG1vZGUgPSB0eXBlb2YgbW9kZSA9PT0gJ3VuZGVmaW5l
ZCcgPyAwNjY2IDogbW9kZTsKLSAgICAgICAgaWYgKChmbGFncyAmIDUxMikpIHsKLSAgICAgICAg
ICBtb2RlID0gKG1vZGUgJiA0MDk1KSB8IDAxMDAwMDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgbW9kZSA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG5vZGU7Ci0gICAgICAgIHRy
eSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgewotICAgICAg
ICAgICAgZm9sbG93OiAhKGZsYWdzICYgMDIwMDAwMCkKLSAgICAgICAgICB9KTsKLSAgICAgICAg
ICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgcGF0aCA9IGxvb2t1cC5wYXRoOwotICAg
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgLy8gaWdub3JlCi0gICAgICAgIH0KLSAgICAg
ICAgLy8gcGVyaGFwcyB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgbm9kZQotICAgICAgICBpZiAoKGZs
YWdzICYgNTEyKSkgewotICAgICAgICAgIGlmIChub2RlKSB7Ci0gICAgICAgICAgICAvLyBpZiBP
X0NSRUFUIGFuZCBPX0VYQ0wgYXJlIHNldCwgZXJyb3Igb3V0IGlmIHRoZSBub2RlIGFscmVhZHkg
ZXhpc3RzCi0gICAgICAgICAgICBpZiAoKGZsYWdzICYgMjA0OCkpIHsKLSAgICAgICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUVYSVNUKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gbm9kZSBkb2Vzbid0IGV4aXN0
LCB0cnkgdG8gY3JlYXRlIGl0Ci0gICAgICAgICAgICBub2RlID0gRlMubWtub2QocGF0aCwgbW9k
ZSwgMCk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmICghbm9kZSkgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VOVCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgLy8gY2FuJ3QgdHJ1bmNhdGUgYSBkZXZpY2UKLSAgICAgICAgaWYgKEZT
LmlzQ2hyZGV2KG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBmbGFncyAmPSB+MTAyNDsKLSAgICAg
ICAgfQotICAgICAgICAvLyBjaGVjayBwZXJtaXNzaW9ucwotICAgICAgICB2YXIgZXJyID0gRlMu
bWF5T3Blbihub2RlLCBmbGFncyk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIC8vIGRvIHRydW5j
YXRpb24gaWYgbmVjZXNzYXJ5Ci0gICAgICAgIGlmICgoZmxhZ3MgJiAxMDI0KSkgewotICAgICAg
ICAgIEZTLnRydW5jYXRlKG5vZGUsIDApOwotICAgICAgICB9Ci0gICAgICAgIC8vIHJlZ2lzdGVy
IHRoZSBzdHJlYW0gd2l0aCB0aGUgZmlsZXN5c3RlbQotICAgICAgICB2YXIgc3RyZWFtID0gRlMu
Y3JlYXRlU3RyZWFtKHsKLSAgICAgICAgICBwYXRoOiBwYXRoLAotICAgICAgICAgIG5vZGU6IG5v
ZGUsCi0gICAgICAgICAgZmxhZ3M6IGZsYWdzLAotICAgICAgICAgIHNlZWthYmxlOiB0cnVlLAot
ICAgICAgICAgIHBvc2l0aW9uOiAwLAotICAgICAgICAgIHN0cmVhbV9vcHM6IG5vZGUuc3RyZWFt
X29wcywKLSAgICAgICAgICAvLyB1c2VkIGJ5IHRoZSBmaWxlIGZhbWlseSBsaWJjIGNhbGxzIChm
b3BlbiwgZndyaXRlLCBmZXJyb3IsIGV0Yy4pCi0gICAgICAgICAgdW5nb3R0ZW46IFtdLAotICAg
ICAgICAgIGVycm9yOiBmYWxzZQotICAgICAgICB9LCBmZF9zdGFydCwgZmRfZW5kKTsKLSAgICAg
ICAgLy8gY2FsbCB0aGUgbmV3IHN0cmVhbSdzIG9wZW4gZnVuY3Rpb24KLSAgICAgICAgaWYgKHN0
cmVhbS5zdHJlYW1fb3BzLm9wZW4pIHsKLSAgICAgICAgICBzdHJlYW0uc3RyZWFtX29wcy5vcGVu
KHN0cmVhbSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN0cmVhbTsKLSAgICAgIH0sY2xv
c2U6ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAgICB0cnkgewotICAgICAgICAgIGlmIChzdHJl
YW0uc3RyZWFtX29wcy5jbG9zZSkgewotICAgICAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMuY2xv
c2Uoc3RyZWFtKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
ICB0aHJvdyBlOwotICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgIEZTLmNsb3NlU3RyZWFt
KHN0cmVhbS5mZCk7Ci0gICAgICAgIH0KLSAgICAgIH0sbGxzZWVrOmZ1bmN0aW9uIChzdHJlYW0s
IG9mZnNldCwgd2hlbmNlKSB7Ci0gICAgICAgIGlmICghc3RyZWFtLnNlZWthYmxlIHx8ICFzdHJl
YW0uc3RyZWFtX29wcy5sbHNlZWspIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBzdHJlYW0u
c3RyZWFtX29wcy5sbHNlZWsoc3RyZWFtLCBvZmZzZXQsIHdoZW5jZSk7Ci0gICAgICB9LHJlYWQ6
ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKLSAg
ICAgICAgaWYgKGxlbmd0aCA8IDAgfHwgcG9zaXRpb24gPCAwKSB7Ci0gICAgICAgICAgdGhyb3cg
bmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAxKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChG
Uy5pc0RpcihzdHJlYW0ubm9kZS5tb2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJUik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFzdHJl
YW0uc3RyZWFtX29wcy5yZWFkKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
RVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgc2Vla2luZyA9IHRy
dWU7Ci0gICAgICAgIGlmICh0eXBlb2YgcG9zaXRpb24gPT09ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgICAgcG9zaXRpb24gPSBzdHJlYW0ucG9zaXRpb247Ci0gICAgICAgICAgc2Vla2luZyA9IGZh
bHNlOwotICAgICAgICB9IGVsc2UgaWYgKCFzdHJlYW0uc2Vla2FibGUpIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9Ci0g
ICAgICAgIHZhciBieXRlc1JlYWQgPSBzdHJlYW0uc3RyZWFtX29wcy5yZWFkKHN0cmVhbSwgYnVm
ZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pOwotICAgICAgICBpZiAoIXNlZWtpbmcpIHN0
cmVhbS5wb3NpdGlvbiArPSBieXRlc1JlYWQ7Ci0gICAgICAgIHJldHVybiBieXRlc1JlYWQ7Ci0g
ICAgICB9LHdyaXRlOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBv
c2l0aW9uKSB7Ci0gICAgICAgIGlmIChsZW5ndGggPCAwIHx8IHBvc2l0aW9uIDwgMCkgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0gMCkgewotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgfQot
ICAgICAgICBpZiAoRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkpIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIpOwotICAgICAgICB9Ci0gICAg
ICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIHZh
ciBzZWVraW5nID0gdHJ1ZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwb3NpdGlvbiA9PT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgICBwb3NpdGlvbiA9IHN0cmVhbS5wb3NpdGlvbjsKLSAgICAgICAg
ICBzZWVraW5nID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXN0cmVhbS5zZWVrYWJsZSkg
ewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSk7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0cmVhbS5mbGFncyAmIDgpIHsKLSAgICAgICAgICAv
LyBzZWVrIHRvIHRoZSBlbmQgYmVmb3JlIHdyaXRpbmcgaW4gYXBwZW5kIG1vZGUKLSAgICAgICAg
ICBGUy5sbHNlZWsoc3RyZWFtLCAwLCAyKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgYnl0ZXNX
cml0dGVuID0gc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwg
bGVuZ3RoLCBwb3NpdGlvbik7Ci0gICAgICAgIGlmICghc2Vla2luZykgc3RyZWFtLnBvc2l0aW9u
ICs9IGJ5dGVzV3JpdHRlbjsKLSAgICAgICAgcmV0dXJuIGJ5dGVzV3JpdHRlbjsKLSAgICAgIH0s
YWxsb2NhdGU6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCBsZW5ndGgpIHsKLSAgICAgICAgaWYg
KG9mZnNldCA8IDAgfHwgbGVuZ3RoIDw9IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoc3Ry
ZWFtLmZsYWdzICYgMykgPT09IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFGUy5pc0ZpbGUo
c3RyZWFtLm5vZGUubW9kZSkgJiYgIUZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9ERVYpOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMuYWxsb2NhdGUpIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FT1BOT1RTVVBQKTsKLSAgICAgICAgfQot
ICAgICAgICBzdHJlYW0uc3RyZWFtX29wcy5hbGxvY2F0ZShzdHJlYW0sIG9mZnNldCwgbGVuZ3Ro
KTsKLSAgICAgIH0sbW1hcDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3Ro
LCBwb3NpdGlvbiwgcHJvdCwgZmxhZ3MpIHsKLSAgICAgICAgLy8gVE9ETyBpZiBQUk9UIGlzIFBS
T1RfV1JJVEUsIG1ha2Ugc3VyZSB3ZSBoYXZlIHdyaXRlIGFjY2VzcwotICAgICAgICBpZiAoKHN0
cmVhbS5mbGFncyAmIDMpID09PSAxKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRUFDQ0VTKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXN0cmVhbS5z
dHJlYW1fb3BzLm1tYXApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuZXJybm9FcnJvcihFUlJO
T19DT0RFUy5FTk9ERVYpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBzdHJlYW0uc3RyZWFt
X29wcy5tbWFwKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24sIHByb3Qs
IGZsYWdzKTsKLSAgICAgIH19OwotICBmdW5jdGlvbiBfc2VuZChmZCwgYnVmLCBsZW4sIGZsYWdz
KSB7Ci0gICAgICB2YXIgaW5mbyA9IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICBpZiAoIWluZm8p
IHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICByZXR1
cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoaW5mby5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gV2Vi
U29ja2V0LkNMT1NJTkcgfHwgaW5mby5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNM
T1NFRCkgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FTk9UQ09OTik7Ci0gICAg
ICAgIHJldHVybiAtMTsKLSAgICAgIH0gZWxzZSBpZiAoaW5mby5zb2NrZXQucmVhZHlTdGF0ZSA9
PT0gV2ViU29ja2V0LkNPTk5FQ1RJTkcpIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09E
RVMuRUFHQUlOKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgICAgaW5mby5zZW5k
ZXIoSEVBUFU4LnN1YmFycmF5KGJ1ZiwgYnVmK2xlbikpOwotICAgICAgcmV0dXJuIGxlbjsKLSAg
ICB9Ci0gIGZ1bmN0aW9uIF9wd3JpdGUoZmlsZGVzLCBidWYsIG5ieXRlLCBvZmZzZXQpIHsKLSAg
ICAgIC8vIHNzaXplX3QgcHdyaXRlKGludCBmaWxkZXMsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90
IG5ieXRlLCBvZmZfdCBvZmZzZXQpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9y
Zy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvd3JpdGUuaHRtbAotICAgICAgdmFyIHN0
cmVhbSA9IEZTLmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAg
ICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICByZXR1cm4gLTE7Ci0g
ICAgICB9Ci0gICAgICB0cnkgewotICAgICAgICB2YXIgc2xhYiA9IEhFQVA4OwotICAgICAgICBy
ZXR1cm4gRlMud3JpdGUoc3RyZWFtLCBzbGFiLCBidWYsIG5ieXRlLCBvZmZzZXQpOwotICAgICAg
fSBjYXRjaCAoZSkgewotICAgICAgICBGUy5oYW5kbGVGU0Vycm9yKGUpOwotICAgICAgICByZXR1
cm4gLTE7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF93cml0ZShmaWxkZXMsIGJ1ZiwgbmJ5dGUp
IHsKLSAgICAgIC8vIHNzaXplX3Qgd3JpdGUoaW50IGZpbGRlcywgY29uc3Qgdm9pZCAqYnVmLCBz
aXplX3QgbmJ5dGUpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVw
dWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvd3JpdGUuaHRtbAotICAgICAgdmFyIHN0cmVhbSA9IEZT
LmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgX19fc2V0
RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0g
ICAgICBpZiAoc3RyZWFtICYmICgnc29ja2V0JyBpbiBzdHJlYW0pKSB7Ci0gICAgICAgIHJldHVy
biBfc2VuZChmaWxkZXMsIGJ1ZiwgbmJ5dGUsIDApOwotICAgICAgfQotICAgICAgdHJ5IHsKLSAg
ICAgICAgdmFyIHNsYWIgPSBIRUFQODsKLSAgICAgICAgcmV0dXJuIEZTLndyaXRlKHN0cmVhbSwg
c2xhYiwgYnVmLCBuYnl0ZSk7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEZTLmhhbmRs
ZUZTRXJyb3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24g
X2Z3cml0ZShwdHIsIHNpemUsIG5pdGVtcywgc3RyZWFtKSB7Ci0gICAgICAvLyBzaXplX3QgZndy
aXRlKGNvbnN0IHZvaWQgKnJlc3RyaWN0IHB0ciwgc2l6ZV90IHNpemUsIHNpemVfdCBuaXRlbXMs
IEZJTEUgKnJlc3RyaWN0IHN0cmVhbSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAu
b3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9md3JpdGUuaHRtbAotICAgICAgdmFy
IGJ5dGVzVG9Xcml0ZSA9IG5pdGVtcyAqIHNpemU7Ci0gICAgICBpZiAoYnl0ZXNUb1dyaXRlID09
IDApIHJldHVybiAwOwotICAgICAgdmFyIGJ5dGVzV3JpdHRlbiA9IF93cml0ZShzdHJlYW0sIHB0
ciwgYnl0ZXNUb1dyaXRlKTsKLSAgICAgIGlmIChieXRlc1dyaXR0ZW4gPT0gLTEpIHsKLSAgICAg
ICAgdmFyIHN0cmVhbU9iaiA9IEZTLmdldFN0cmVhbShzdHJlYW0pOwotICAgICAgICBpZiAoc3Ry
ZWFtT2JqKSBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICByZXR1cm4gMDsKLSAgICAg
IH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBNYXRoLmZsb29yKGJ5dGVzV3JpdHRlbiAvIHNpemUp
OwotICAgICAgfQotICAgIH0KLSAgZnVuY3Rpb24gX3VuZ2V0YyhjLCBzdHJlYW0pIHsKLSAgICAg
IC8vIGludCB1bmdldGMoaW50IGMsIEZJTEUgKnN0cmVhbSk7Ci0gICAgICAvLyBodHRwOi8vcHVi
cy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy91bmdldGMuaHRt
bAotICAgICAgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7Ci0gICAgICBpZiAoIXN0cmVh
bSkgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoYyA9PT0gLTEpIHsK
LSAgICAgICAgLy8gZG8gbm90aGluZyBmb3IgRU9GIGNoYXJhY3RlcgotICAgICAgICByZXR1cm4g
YzsKLSAgICAgIH0KLSAgICAgIGMgPSB1blNpZ24oYyAmIDB4RkYpOwotICAgICAgc3RyZWFtLnVu
Z290dGVuLnB1c2goYyk7Ci0gICAgICBzdHJlYW0uZW9mID0gZmFsc2U7Ci0gICAgICByZXR1cm4g
YzsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9yZWN2KGZkLCBidWYsIGxlbiwgZmxhZ3MpIHsKLSAgICAg
IHZhciBpbmZvID0gRlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAgIGlmICghaW5mbykgewotICAgICAg
ICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAg
ICAgIH0KLSAgICAgIGlmICghaW5mby5oYXNEYXRhKCkpIHsKLSAgICAgICAgaWYgKGluZm8uc29j
a2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TSU5HIHx8IGluZm8uc29ja2V0LnJlYWR5
U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TRUQpIHsKLSAgICAgICAgICAvLyBzb2NrZXQgaGFzIGNs
b3NlZAotICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8v
IGVsc2UsIG91ciBzb2NrZXQgaXMgaW4gYSB2YWxpZCBzdGF0ZSBidXQgdHJ1bHkgaGFzIG5vdGhp
bmcgYXZhaWxhYmxlCi0gICAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUFHQUlOKTsK
LSAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHZhciBidWZm
ZXIgPSBpbmZvLmluUXVldWUuc2hpZnQoKTsKLSAgICAgIGlmIChsZW4gPCBidWZmZXIubGVuZ3Ro
KSB7Ci0gICAgICAgIGlmIChpbmZvLnN0cmVhbSkgewotICAgICAgICAgIC8vIFRoaXMgaXMgdGNw
IChyZWxpYWJsZSksIHNvIGlmIG5vdCBhbGwgd2FzIHJlYWQsIGtlZXAgaXQKLSAgICAgICAgICBp
bmZvLmluUXVldWUudW5zaGlmdChidWZmZXIuc3ViYXJyYXkobGVuKSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgYnVmZmVyID0gYnVmZmVyLnN1YmFycmF5KDAsIGxlbik7Ci0gICAgICB9Ci0gICAgICBI
RUFQVTguc2V0KGJ1ZmZlciwgYnVmKTsKLSAgICAgIHJldHVybiBidWZmZXIubGVuZ3RoOwotICAg
IH0KLSAgZnVuY3Rpb24gX3ByZWFkKGZpbGRlcywgYnVmLCBuYnl0ZSwgb2Zmc2V0KSB7Ci0gICAg
ICAvLyBzc2l6ZV90IHByZWFkKGludCBmaWxkZXMsIHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlLCBv
ZmZfdCBvZmZzZXQpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVw
dWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvcmVhZC5odG1sCi0gICAgICB2YXIgc3RyZWFtID0gRlMu
Z2V0U3RyZWFtKGZpbGRlcyk7Ci0gICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICBfX19zZXRF
cnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAg
ICAgIHRyeSB7Ci0gICAgICAgIHZhciBzbGFiID0gSEVBUDg7Ci0gICAgICAgIHJldHVybiBGUy5y
ZWFkKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0ZSwgb2Zmc2V0KTsKLSAgICAgIH0gY2F0Y2ggKGUp
IHsKLSAgICAgICAgRlMuaGFuZGxlRlNFcnJvcihlKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAg
ICAgfQotICAgIH1mdW5jdGlvbiBfcmVhZChmaWxkZXMsIGJ1ZiwgbmJ5dGUpIHsKLSAgICAgIC8v
IHNzaXplX3QgcmVhZChpbnQgZmlsZGVzLCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSk7Ci0gICAg
ICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0
aW9ucy9yZWFkLmh0bWwKLSAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmlsZGVzKTsK
LSAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVC
QURGKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgICAgaWYgKHN0cmVhbSAmJiAo
J3NvY2tldCcgaW4gc3RyZWFtKSkgewotICAgICAgICByZXR1cm4gX3JlY3YoZmlsZGVzLCBidWYs
IG5ieXRlLCAwKTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAgICAgIHZhciBzbGFiID0gSEVB
UDg7Ci0gICAgICAgIHJldHVybiBGUy5yZWFkKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0ZSk7Ci0g
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEZTLmhhbmRsZUZTRXJyb3IoZSk7Ci0gICAgICAg
IHJldHVybiAtMTsKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24gX2ZyZWFkKHB0ciwgc2l6ZSwgbml0
ZW1zLCBzdHJlYW0pIHsKLSAgICAgIC8vIHNpemVfdCBmcmVhZCh2b2lkICpyZXN0cmljdCBwdHIs
IHNpemVfdCBzaXplLCBzaXplX3Qgbml0ZW1zLCBGSUxFICpyZXN0cmljdCBzdHJlYW0pOwotICAg
ICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5j
dGlvbnMvZnJlYWQuaHRtbAotICAgICAgdmFyIGJ5dGVzVG9SZWFkID0gbml0ZW1zICogc2l6ZTsK
LSAgICAgIGlmIChieXRlc1RvUmVhZCA9PSAwKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgICAg
fQotICAgICAgdmFyIGJ5dGVzUmVhZCA9IDA7Ci0gICAgICB2YXIgc3RyZWFtT2JqID0gRlMuZ2V0
U3RyZWFtKHN0cmVhbSk7Ci0gICAgICB3aGlsZSAoc3RyZWFtT2JqLnVuZ290dGVuLmxlbmd0aCAm
JiBieXRlc1RvUmVhZCA+IDApIHsKLSAgICAgICAgSEVBUDhbKChwdHIrKyl8MCldPXN0cmVhbU9i
ai51bmdvdHRlbi5wb3AoKQotICAgICAgICBieXRlc1RvUmVhZC0tOwotICAgICAgICBieXRlc1Jl
YWQrKzsKLSAgICAgIH0KLSAgICAgIHZhciBlcnIgPSBfcmVhZChzdHJlYW0sIHB0ciwgYnl0ZXNU
b1JlYWQpOwotICAgICAgaWYgKGVyciA9PSAtMSkgewotICAgICAgICBpZiAoc3RyZWFtT2JqKSBz
dHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICByZXR1cm4gMDsKLSAgICAgIH0KLSAgICAg
IGJ5dGVzUmVhZCArPSBlcnI7Ci0gICAgICBpZiAoYnl0ZXNSZWFkIDwgYnl0ZXNUb1JlYWQpIHN0
cmVhbU9iai5lb2YgPSB0cnVlOwotICAgICAgcmV0dXJuIE1hdGguZmxvb3IoYnl0ZXNSZWFkIC8g
c2l6ZSk7Ci0gICAgfWZ1bmN0aW9uIF9mZ2V0YyhzdHJlYW0pIHsKLSAgICAgIC8vIGludCBmZ2V0
YyhGSUxFICpzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxp
bmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZmdldGMuaHRtbAotICAgICAgdmFyIHN0cmVhbU9i
aiA9IEZTLmdldFN0cmVhbShzdHJlYW0pOwotICAgICAgaWYgKCFzdHJlYW1PYmopIHJldHVybiAt
MTsKLSAgICAgIGlmIChzdHJlYW1PYmouZW9mIHx8IHN0cmVhbU9iai5lcnJvcikgcmV0dXJuIC0x
OwotICAgICAgdmFyIHJldCA9IF9mcmVhZChfZmdldGMucmV0LCAxLCAxLCBzdHJlYW0pOwotICAg
ICAgaWYgKHJldCA9PSAwKSB7Ci0gICAgICAgIHN0cmVhbU9iai5lb2YgPSB0cnVlOwotICAgICAg
ICByZXR1cm4gLTE7Ci0gICAgICB9IGVsc2UgaWYgKHJldCA9PSAtMSkgewotICAgICAgICBzdHJl
YW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9IGVsc2Ugewot
ICAgICAgICByZXR1cm4gSEVBUFU4WygoX2ZnZXRjLnJldCl8MCldOwotICAgICAgfQotICAgIH12
YXIgX2dldGM9X2ZnZXRjOwotICBmdW5jdGlvbiBfX19jeGFfcHVyZV92aXJ0dWFsKCkgewotICAg
ICAgQUJPUlQgPSB0cnVlOwotICAgICAgdGhyb3cgJ1B1cmUgdmlydHVhbCBmdW5jdGlvbiBjYWxs
ZWQhJzsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2Vycm5vX2xvY2F0aW9uKCkgewotICAgICAgcmV0
dXJuIF9fX2Vycm5vX3N0YXRlOwotICAgIH12YXIgX19fZXJybm89X19fZXJybm9fbG9jYXRpb247
Ci0gIHZhciBfbGx2bV9tZW1zZXRfcDBpOF9pMzI9X21lbXNldDsKLSAgTW9kdWxlWyJfc3RybGVu
Il0gPSBfc3RybGVuOwotICBmdW5jdGlvbiBfc3RyZXJyb3JfcihlcnJudW0sIHN0cmVycmJ1Ziwg
YnVmbGVuKSB7Ci0gICAgICBpZiAoZXJybnVtIGluIEVSUk5PX01FU1NBR0VTKSB7Ci0gICAgICAg
IGlmIChFUlJOT19NRVNTQUdFU1tlcnJudW1dLmxlbmd0aCA+IGJ1ZmxlbiAtIDEpIHsKLSAgICAg
ICAgICByZXR1cm4gX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRVJBTkdFKTsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICB2YXIgbXNnID0gRVJSTk9fTUVTU0FHRVNbZXJybnVtXTsKLSAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1zZy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAg
SEVBUDhbKCgoc3RyZXJyYnVmKSsoaSkpfDApXT1tc2cuY2hhckNvZGVBdChpKQotICAgICAgICAg
IH0KLSAgICAgICAgICBIRUFQOFsoKChzdHJlcnJidWYpKyhpKSl8MCldPTAKLSAgICAgICAgICBy
ZXR1cm4gMDsKLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIF9fX3Nl
dEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF9zdHJl
cnJvcihlcnJudW0pIHsKLSAgICAgIGlmICghX3N0cmVycm9yLmJ1ZmZlcikgX3N0cmVycm9yLmJ1
ZmZlciA9IF9tYWxsb2MoMjU2KTsKLSAgICAgIF9zdHJlcnJvcl9yKGVycm51bSwgX3N0cmVycm9y
LmJ1ZmZlciwgMjU2KTsKLSAgICAgIHJldHVybiBfc3RyZXJyb3IuYnVmZmVyOwotICAgIH0KLSAg
ZnVuY3Rpb24gX2Fib3J0KCkgewotICAgICAgTW9kdWxlWydhYm9ydCddKCk7Ci0gICAgfQotICBm
dW5jdGlvbiBfX3JlYWxseU5lZ2F0aXZlKHgpIHsKLSAgICAgIHJldHVybiB4IDwgMCB8fCAoeCA9
PT0gMCAmJiAoMS94KSA9PT0gLUluZmluaXR5KTsKLSAgICB9ZnVuY3Rpb24gX19mb3JtYXRTdHJp
bmcoZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAgICB2YXIgdGV4dEluZGV4ID0gZm9ybWF0OwotICAg
ICAgdmFyIGFyZ0luZGV4ID0gMDsKLSAgICAgIGZ1bmN0aW9uIGdldE5leHRBcmcodHlwZSkgewot
ICAgICAgICAvLyBOT1RFOiBFeHBsaWNpdGx5IGlnbm9yaW5nIHR5cGUgc2FmZXR5LiBPdGhlcndp
c2UgdGhpcyBmYWlsczoKLSAgICAgICAgLy8gICAgICAgaW50IHggPSA0OyBwcmludGYoIiVjXG4i
LCAoY2hhcil4KTsKLSAgICAgICAgdmFyIHJldDsKLSAgICAgICAgaWYgKHR5cGUgPT09ICdkb3Vi
bGUnKSB7Ci0gICAgICAgICAgcmV0ID0gSEVBUEY2NFsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+
MyldOwotICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2k2NCcpIHsKLSAgICAgICAgICByZXQg
PSBbSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV0sCi0gICAgICAgICAgICAgICAg
IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgrOCkpPj4yKV1dOwotICAgICAgICAgIGFyZ0lu
ZGV4ICs9IDg7IC8vIGVhY2ggMzItYml0IGNodW5rIGlzIGluIGEgNjQtYml0IGJsb2NrCi0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdHlwZSA9ICdpMzInOyAvLyB2YXJhcmdzIGFyZSBhbHdh
eXMgaTMyLCBpNjQsIG9yIGRvdWJsZQotICAgICAgICAgIHJldCA9IEhFQVAzMlsoKCh2YXJhcmdz
KSsoYXJnSW5kZXgpKT4+MildOwotICAgICAgICB9Ci0gICAgICAgIGFyZ0luZGV4ICs9IE1hdGgu
bWF4KFJ1bnRpbWUuZ2V0TmF0aXZlRmllbGRTaXplKHR5cGUpLCBSdW50aW1lLmdldEFsaWduU2l6
ZSh0eXBlLCBudWxsLCB0cnVlKSk7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgICB9Ci0gICAg
ICB2YXIgcmV0ID0gW107Ci0gICAgICB2YXIgY3VyciwgbmV4dCwgY3VyckFyZzsKLSAgICAgIHdo
aWxlKDEpIHsKLSAgICAgICAgdmFyIHN0YXJ0VGV4dEluZGV4ID0gdGV4dEluZGV4OwotICAgICAg
ICBjdXJyID0gSEVBUDhbKHRleHRJbmRleCldOwotICAgICAgICBpZiAoY3VyciA9PT0gMCkgYnJl
YWs7Ci0gICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgIGlm
IChjdXJyID09IDM3KSB7Ci0gICAgICAgICAgLy8gSGFuZGxlIGZsYWdzLgotICAgICAgICAgIHZh
ciBmbGFnQWx3YXlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGZsYWdMZWZ0QWxpZ24g
PSBmYWxzZTsKLSAgICAgICAgICB2YXIgZmxhZ0FsdGVybmF0aXZlID0gZmFsc2U7Ci0gICAgICAg
ICAgdmFyIGZsYWdaZXJvUGFkID0gZmFsc2U7Ci0gICAgICAgICAgZmxhZ3NMb29wOiB3aGlsZSAo
MSkgewotICAgICAgICAgICAgc3dpdGNoIChuZXh0KSB7Ci0gICAgICAgICAgICAgIGNhc2UgNDM6
Ci0gICAgICAgICAgICAgICAgZmxhZ0Fsd2F5c1NpZ25lZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgIGNhc2UgNDU6Ci0gICAgICAgICAgICAgICAgZmxhZ0xl
ZnRBbGlnbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIGNh
c2UgMzU6Ci0gICAgICAgICAgICAgICAgZmxhZ0FsdGVybmF0aXZlID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgY2FzZSA0ODoKLSAgICAgICAgICAgICAgICBp
ZiAoZmxhZ1plcm9QYWQpIHsKLSAgICAgICAgICAgICAgICAgIGJyZWFrIGZsYWdzTG9vcDsKLSAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgZmxhZ1plcm9QYWQgPSB0
cnVlOwotICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGJyZWFrIGZsYWdzTG9vcDsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgbmV4dCA9IEhF
QVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gSGFuZGxl
IHdpZHRoLgotICAgICAgICAgIHZhciB3aWR0aCA9IDA7Ci0gICAgICAgICAgaWYgKG5leHQgPT0g
NDIpIHsKLSAgICAgICAgICAgIHdpZHRoID0gZ2V0TmV4dEFyZygnaTMyJyk7Ci0gICAgICAgICAg
ICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXww
KV07Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHdoaWxlIChuZXh0ID49IDQ4ICYm
IG5leHQgPD0gNTcpIHsKLSAgICAgICAgICAgICAgd2lkdGggPSB3aWR0aCAqIDEwICsgKG5leHQg
LSA0OCk7Ci0gICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgICBuZXh0ID0g
SEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAg
ICAgICAgICAvLyBIYW5kbGUgcHJlY2lzaW9uLgotICAgICAgICAgIHZhciBwcmVjaXNpb25TZXQg
PSBmYWxzZTsKLSAgICAgICAgICBpZiAobmV4dCA9PSA0NikgewotICAgICAgICAgICAgdmFyIHBy
ZWNpc2lvbiA9IDA7Ci0gICAgICAgICAgICBwcmVjaXNpb25TZXQgPSB0cnVlOwotICAgICAgICAg
ICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8
MCldOwotICAgICAgICAgICAgaWYgKG5leHQgPT0gNDIpIHsKLSAgICAgICAgICAgICAgcHJlY2lz
aW9uID0gZ2V0TmV4dEFyZygnaTMyJyk7Ci0gICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgd2hpbGUoMSkgewotICAgICAgICAgICAg
ICAgIHZhciBwcmVjaXNpb25DaHIgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAg
ICAgICAgICAgaWYgKHByZWNpc2lvbkNociA8IDQ4IHx8Ci0gICAgICAgICAgICAgICAgICAgIHBy
ZWNpc2lvbkNociA+IDU3KSBicmVhazsKLSAgICAgICAgICAgICAgICBwcmVjaXNpb24gPSBwcmVj
aXNpb24gKiAxMCArIChwcmVjaXNpb25DaHIgLSA0OCk7Ci0gICAgICAgICAgICAgICAgdGV4dElu
ZGV4Kys7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5leHQg
PSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHZhciBwcmVjaXNpb24gPSA2OyAvLyBTdGFuZGFyZCBkZWZhdWx0LgotICAgICAgICAgIH0K
LSAgICAgICAgICAvLyBIYW5kbGUgaW50ZWdlciBzaXplcy4gV0FSTklORzogVGhlc2UgYXNzdW1l
IGEgMzItYml0IGFyY2hpdGVjdHVyZSEKLSAgICAgICAgICB2YXIgYXJnU2l6ZTsKLSAgICAgICAg
ICBzd2l0Y2ggKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpIHsKLSAgICAgICAgICAgIGNhc2Ug
J2gnOgotICAgICAgICAgICAgICB2YXIgbmV4dE5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsyKXww
KV07Ci0gICAgICAgICAgICAgIGlmIChuZXh0TmV4dCA9PSAxMDQpIHsKLSAgICAgICAgICAgICAg
ICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgICBhcmdTaXplID0gMTsgLy8gY2hhciAoYWN0
dWFsbHkgaTMyIGluIHZhcmFyZ3MpCi0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgYXJnU2l6ZSA9IDI7IC8vIHNob3J0IChhY3R1YWxseSBpMzIgaW4gdmFyYXJncykKLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ2wn
OgotICAgICAgICAgICAgICB2YXIgbmV4dE5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsyKXwwKV07
Ci0gICAgICAgICAgICAgIGlmIChuZXh0TmV4dCA9PSAxMDgpIHsKLSAgICAgICAgICAgICAgICB0
ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgICBhcmdTaXplID0gODsgLy8gbG9uZyBsb25nCi0g
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXJnU2l6ZSA9IDQ7IC8vIGxv
bmcKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNh
c2UgJ0wnOiAvLyBsb25nIGxvbmcKLSAgICAgICAgICAgIGNhc2UgJ3EnOiAvLyBpbnQ2NF90Ci0g
ICAgICAgICAgICBjYXNlICdqJzogLy8gaW50bWF4X3QKLSAgICAgICAgICAgICAgYXJnU2l6ZSA9
IDg7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAneic6IC8vIHNpemVf
dAotICAgICAgICAgICAgY2FzZSAndCc6IC8vIHB0cmRpZmZfdAotICAgICAgICAgICAgY2FzZSAn
SSc6IC8vIHNpZ25lZCBwdHJkaWZmX3Qgb3IgdW5zaWduZWQgc2l6ZV90Ci0gICAgICAgICAgICAg
IGFyZ1NpemUgPSA0OwotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgIGFyZ1NpemUgPSBudWxsOwotICAgICAgICAgIH0KLSAgICAgICAgICBp
ZiAoYXJnU2l6ZSkgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dElu
ZGV4KzEpfDApXTsKLSAgICAgICAgICAvLyBIYW5kbGUgdHlwZSBzcGVjaWZpZXIuCi0gICAgICAg
ICAgc3dpdGNoIChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKSB7Ci0gICAgICAgICAgICBjYXNl
ICdkJzogY2FzZSAnaSc6IGNhc2UgJ3UnOiBjYXNlICdvJzogY2FzZSAneCc6IGNhc2UgJ1gnOiBj
YXNlICdwJzogewotICAgICAgICAgICAgICAvLyBJbnRlZ2VyLgotICAgICAgICAgICAgICB2YXIg
c2lnbmVkID0gbmV4dCA9PSAxMDAgfHwgbmV4dCA9PSAxMDU7Ci0gICAgICAgICAgICAgIGFyZ1Np
emUgPSBhcmdTaXplIHx8IDQ7Ci0gICAgICAgICAgICAgIHZhciBjdXJyQXJnID0gZ2V0TmV4dEFy
ZygnaScgKyAoYXJnU2l6ZSAqIDgpKTsKLSAgICAgICAgICAgICAgdmFyIG9yaWdBcmcgPSBjdXJy
QXJnOwotICAgICAgICAgICAgICB2YXIgYXJnVGV4dDsKLSAgICAgICAgICAgICAgLy8gRmxhdHRl
biBpNjQtMSBbbG93LCBoaWdoXSBpbnRvIGEgKHNsaWdodGx5IHJvdW5kZWQpIGRvdWJsZQotICAg
ICAgICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4KSB7Ci0gICAgICAgICAgICAgICAgY3VyckFyZyA9
IFJ1bnRpbWUubWFrZUJpZ0ludChjdXJyQXJnWzBdLCBjdXJyQXJnWzFdLCBuZXh0ID09IDExNyk7
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gVHJ1bmNhdGUgdG8gcmVxdWVzdGVk
IHNpemUuCi0gICAgICAgICAgICAgIGlmIChhcmdTaXplIDw9IDQpIHsKLSAgICAgICAgICAgICAg
ICB2YXIgbGltaXQgPSBNYXRoLnBvdygyNTYsIGFyZ1NpemUpIC0gMTsKLSAgICAgICAgICAgICAg
ICBjdXJyQXJnID0gKHNpZ25lZCA/IHJlU2lnbiA6IHVuU2lnbikoY3VyckFyZyAmIGxpbWl0LCBh
cmdTaXplICogOCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gRm9ybWF0IHRo
ZSBudW1iZXIuCi0gICAgICAgICAgICAgIHZhciBjdXJyQWJzQXJnID0gTWF0aC5hYnMoY3VyckFy
Zyk7Ci0gICAgICAgICAgICAgIHZhciBwcmVmaXggPSAnJzsKLSAgICAgICAgICAgICAgaWYgKG5l
eHQgPT0gMTAwIHx8IG5leHQgPT0gMTA1KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGFyZ1NpemUg
PT0gOCAmJiBpNjRNYXRoKSBhcmdUZXh0ID0gaTY0TWF0aC5zdHJpbmdpZnkob3JpZ0FyZ1swXSwg
b3JpZ0FyZ1sxXSwgbnVsbCk7IGVsc2UKLSAgICAgICAgICAgICAgICBhcmdUZXh0ID0gcmVTaWdu
KGN1cnJBcmcsIDggKiBhcmdTaXplLCAxKS50b1N0cmluZygxMCk7Ci0gICAgICAgICAgICAgIH0g
ZWxzZSBpZiAobmV4dCA9PSAxMTcpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4
ICYmIGk2NE1hdGgpIGFyZ1RleHQgPSBpNjRNYXRoLnN0cmluZ2lmeShvcmlnQXJnWzBdLCBvcmln
QXJnWzFdLCB0cnVlKTsgZWxzZQotICAgICAgICAgICAgICAgIGFyZ1RleHQgPSB1blNpZ24oY3Vy
ckFyZywgOCAqIGFyZ1NpemUsIDEpLnRvU3RyaW5nKDEwKTsKLSAgICAgICAgICAgICAgICBjdXJy
QXJnID0gTWF0aC5hYnMoY3VyckFyZyk7Ci0gICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9
PSAxMTEpIHsKLSAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKGZsYWdBbHRlcm5hdGl2ZSA/ICcw
JyA6ICcnKSArIGN1cnJBYnNBcmcudG9TdHJpbmcoOCk7Ci0gICAgICAgICAgICAgIH0gZWxzZSBp
ZiAobmV4dCA9PSAxMjAgfHwgbmV4dCA9PSA4OCkgewotICAgICAgICAgICAgICAgIHByZWZpeCA9
IChmbGFnQWx0ZXJuYXRpdmUgJiYgY3VyckFyZyAhPSAwKSA/ICcweCcgOiAnJzsKLSAgICAgICAg
ICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4ICYmIGk2NE1hdGgpIHsKLSAgICAgICAgICAgICAgICAg
IGlmIChvcmlnQXJnWzFdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAob3JpZ0Fy
Z1sxXT4+PjApLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGxvd2VyID0g
KG9yaWdBcmdbMF0+Pj4wKS50b1N0cmluZygxNik7Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxl
IChsb3dlci5sZW5ndGggPCA4KSBsb3dlciA9ICcwJyArIGxvd2VyOwotICAgICAgICAgICAgICAg
ICAgICBhcmdUZXh0ICs9IGxvd2VyOwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgYXJnVGV4dCA9IChvcmlnQXJnWzBdPj4+MCkudG9TdHJpbmcoMTYpOwot
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgIGlmIChjdXJyQXJnIDwgMCkgewotICAgICAgICAgICAgICAgICAgLy8gUmVwcmVzZW50IG5l
Z2F0aXZlIG51bWJlcnMgaW4gaGV4IGFzIDIncyBjb21wbGVtZW50LgotICAgICAgICAgICAgICAg
ICAgY3VyckFyZyA9IC1jdXJyQXJnOwotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChjdXJy
QWJzQXJnIC0gMSkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9
IFtdOwotICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdUZXh0Lmxlbmd0
aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKCgweEYgLSBwYXJzZUlu
dChhcmdUZXh0W2ldLCAxNikpLnRvU3RyaW5nKDE2KSk7Ci0gICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gYnVmZmVyLmpvaW4oJycpOwotICAgICAgICAgICAg
ICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwgYXJnU2l6ZSAqIDIpIGFyZ1RleHQgPSAnZicg
KyBhcmdUZXh0OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBh
cmdUZXh0ID0gY3VyckFic0FyZy50b1N0cmluZygxNik7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIGlmIChuZXh0ID09IDg4KSB7Ci0gICAgICAgICAgICAgICAgICBwcmVmaXgg
PSBwcmVmaXgudG9VcHBlckNhc2UoKTsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBhcmdU
ZXh0LnRvVXBwZXJDYXNlKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVs
c2UgaWYgKG5leHQgPT0gMTEyKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGN1cnJBYnNBcmcgPT09
IDApIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnKG5pbCknOwotICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwcmVmaXggPSAnMHgnOwotICAgICAgICAg
ICAgICAgICAgYXJnVGV4dCA9IGN1cnJBYnNBcmcudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAocHJlY2lzaW9uU2V0KSB7
Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwgcHJlY2lzaW9uKSB7Ci0g
ICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJzAnICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gQWRkIHNpZ24gaWYgbmVlZGVk
Ci0gICAgICAgICAgICAgIGlmIChmbGFnQWx3YXlzU2lnbmVkKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGN1cnJBcmcgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICBwcmVmaXggPSAnLScgKyBwcmVm
aXg7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHByZWZpeCA9
ICcrJyArIHByZWZpeDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgLy8gQWRkIHBhZGRpbmcuCi0gICAgICAgICAgICAgIHdoaWxlIChwcmVmaXgubGVu
Z3RoICsgYXJnVGV4dC5sZW5ndGggPCB3aWR0aCkgewotICAgICAgICAgICAgICAgIGlmIChmbGFn
TGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9ICcgJzsKLSAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFkKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnMCcgKyBhcmdUZXh0OwotICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gJyAnICsgcHJlZml4
OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAvLyBJbnNlcnQgdGhlIHJlc3VsdCBpbnRvIHRoZSBidWZmZXIuCi0g
ICAgICAgICAgICAgIGFyZ1RleHQgPSBwcmVmaXggKyBhcmdUZXh0OwotICAgICAgICAgICAgICBh
cmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNocikgewotICAgICAgICAgICAgICAg
IHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnZic6IGNhc2Ug
J0YnOiBjYXNlICdlJzogY2FzZSAnRSc6IGNhc2UgJ2cnOiBjYXNlICdHJzogewotICAgICAgICAg
ICAgICAvLyBGbG9hdC4KLSAgICAgICAgICAgICAgdmFyIGN1cnJBcmcgPSBnZXROZXh0QXJnKCdk
b3VibGUnKTsKLSAgICAgICAgICAgICAgdmFyIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgIGlmIChp
c05hTihjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnbmFuJzsKLSAgICAg
ICAgICAgICAgICBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAgICAgICAgICB9IGVsc2UgaWYg
KCFpc0Zpbml0ZShjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAoY3VyckFy
ZyA8IDAgPyAnLScgOiAnJykgKyAnaW5mJzsKLSAgICAgICAgICAgICAgICBmbGFnWmVyb1BhZCA9
IGZhbHNlOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHZhciBpc0dl
bmVyYWwgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB2YXIgZWZmZWN0aXZlUHJlY2lzaW9uID0g
TWF0aC5taW4ocHJlY2lzaW9uLCAyMCk7Ci0gICAgICAgICAgICAgICAgLy8gQ29udmVydCBnL0cg
dG8gZi9GIG9yIGUvRSwgYXMgcGVyOgotICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly9wdWJzLm9w
ZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L2Z1bmN0aW9ucy9wcmludGYuaHRtbAot
ICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDEwMyB8fCBuZXh0ID09IDcxKSB7Ci0gICAgICAg
ICAgICAgICAgICBpc0dlbmVyYWwgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgcHJlY2lzaW9u
ID0gcHJlY2lzaW9uIHx8IDE7Ci0gICAgICAgICAgICAgICAgICB2YXIgZXhwb25lbnQgPSBwYXJz
ZUludChjdXJyQXJnLnRvRXhwb25lbnRpYWwoZWZmZWN0aXZlUHJlY2lzaW9uKS5zcGxpdCgnZScp
WzFdLCAxMCk7Ci0gICAgICAgICAgICAgICAgICBpZiAocHJlY2lzaW9uID4gZXhwb25lbnQgJiYg
ZXhwb25lbnQgPj0gLTQpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV4dCA9ICgobmV4dCA9PSAx
MDMpID8gJ2YnIDogJ0YnKS5jaGFyQ29kZUF0KDApOwotICAgICAgICAgICAgICAgICAgICBwcmVj
aXNpb24gLT0gZXhwb25lbnQgKyAxOwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgbmV4dCA9ICgobmV4dCA9PSAxMDMpID8gJ2UnIDogJ0UnKS5jaGFyQ29k
ZUF0KDApOwotICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb24tLTsKLSAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgIGVmZmVjdGl2ZVByZWNpc2lvbiA9IE1hdGgubWluKHBy
ZWNpc2lvbiwgMjApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAobmV4
dCA9PSAxMDEgfHwgbmV4dCA9PSA2OSkgewotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1
cnJBcmcudG9FeHBvbmVudGlhbChlZmZlY3RpdmVQcmVjaXNpb24pOwotICAgICAgICAgICAgICAg
ICAgLy8gTWFrZSBzdXJlIHRoZSBleHBvbmVudCBoYXMgYXQgbGVhc3QgMiBkaWdpdHMuCi0gICAg
ICAgICAgICAgICAgICBpZiAoL1tlRV1bLStdXGQkLy50ZXN0KGFyZ1RleHQpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGFyZ1RleHQgPSBhcmdUZXh0LnNsaWNlKDAsIC0xKSArICcwJyArIGFyZ1Rl
eHQuc2xpY2UoLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAobmV4dCA9PSAxMDIgfHwgbmV4dCA9PSA3MCkgewotICAgICAgICAgICAgICAgICAgYXJn
VGV4dCA9IGN1cnJBcmcudG9GaXhlZChlZmZlY3RpdmVQcmVjaXNpb24pOwotICAgICAgICAgICAg
ICAgICAgaWYgKGN1cnJBcmcgPT09IDAgJiYgX19yZWFsbHlOZWdhdGl2ZShjdXJyQXJnKSkgewot
ICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJy0nICsgYXJnVGV4dDsKLSAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIHBhcnRzID0g
YXJnVGV4dC5zcGxpdCgnZScpOwotICAgICAgICAgICAgICAgIGlmIChpc0dlbmVyYWwgJiYgIWZs
YWdBbHRlcm5hdGl2ZSkgewotICAgICAgICAgICAgICAgICAgLy8gRGlzY2FyZCB0cmFpbGluZyB6
ZXJvcyBhbmQgcGVyaW9kcy4KLSAgICAgICAgICAgICAgICAgIHdoaWxlIChwYXJ0c1swXS5sZW5n
dGggPiAxICYmIHBhcnRzWzBdLmluZGV4T2YoJy4nKSAhPSAtMSAmJgotICAgICAgICAgICAgICAg
ICAgICAgICAgIChwYXJ0c1swXS5zbGljZSgtMSkgPT0gJzAnIHx8IHBhcnRzWzBdLnNsaWNlKC0x
KSA9PSAnLicpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhcnRzWzBdID0gcGFydHNbMF0uc2xp
Y2UoMCwgLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSBhIHBlcmlvZCBpbiBhbHRl
cm5hdGl2ZSBtb2RlLgotICAgICAgICAgICAgICAgICAgaWYgKGZsYWdBbHRlcm5hdGl2ZSAmJiBh
cmdUZXh0LmluZGV4T2YoJy4nKSA9PSAtMSkgcGFydHNbMF0gKz0gJy4nOwotICAgICAgICAgICAg
ICAgICAgLy8gWmVybyBwYWQgdW50aWwgcmVxdWlyZWQgcHJlY2lzaW9uLgotICAgICAgICAgICAg
ICAgICAgd2hpbGUgKHByZWNpc2lvbiA+IGVmZmVjdGl2ZVByZWNpc2lvbisrKSBwYXJ0c1swXSAr
PSAnMCc7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBwYXJ0
c1swXSArIChwYXJ0cy5sZW5ndGggPiAxID8gJ2UnICsgcGFydHNbMV0gOiAnJyk7Ci0gICAgICAg
ICAgICAgICAgLy8gQ2FwaXRhbGl6ZSAnRScgaWYgbmVlZGVkLgotICAgICAgICAgICAgICAgIGlm
IChuZXh0ID09IDY5KSBhcmdUZXh0ID0gYXJnVGV4dC50b1VwcGVyQ2FzZSgpOwotICAgICAgICAg
ICAgICAgIC8vIEFkZCBzaWduLgotICAgICAgICAgICAgICAgIGlmIChmbGFnQWx3YXlzU2lnbmVk
ICYmIGN1cnJBcmcgPj0gMCkgewotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICcrJyArIGFy
Z1RleHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IC8vIEFkZCBwYWRkaW5nLgotICAgICAgICAgICAgICB3aGlsZSAoYXJnVGV4dC5sZW5ndGggPCB3
aWR0aCkgewotICAgICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAg
ICAgICAgICBhcmdUZXh0ICs9ICcgJzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFkICYmIChhcmdUZXh0WzBdID09ICctJyB8fCBhcmdU
ZXh0WzBdID09ICcrJykpIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGFyZ1RleHRb
MF0gKyAnMCcgKyBhcmdUZXh0LnNsaWNlKDEpOwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChmbGFnWmVyb1BhZCA/ICcwJyA6ICcgJykg
KyBhcmdUZXh0OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBBZGp1c3QgY2FzZS4KLSAgICAgICAgICAgICAg
aWYgKG5leHQgPCA5NykgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBlckNhc2UoKTsKLSAgICAgICAg
ICAgICAgLy8gSW5zZXJ0IHRoZSByZXN1bHQgaW50byB0aGUgYnVmZmVyLgotICAgICAgICAgICAg
ICBhcmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNocikgewotICAgICAgICAgICAg
ICAgIHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAncyc6IHsK
LSAgICAgICAgICAgICAgLy8gU3RyaW5nLgotICAgICAgICAgICAgICB2YXIgYXJnID0gZ2V0TmV4
dEFyZygnaTgqJyk7Ci0gICAgICAgICAgICAgIHZhciBhcmdMZW5ndGggPSBhcmcgPyBfc3RybGVu
KGFyZykgOiAnKG51bGwpJy5sZW5ndGg7Ci0gICAgICAgICAgICAgIGlmIChwcmVjaXNpb25TZXQp
IGFyZ0xlbmd0aCA9IE1hdGgubWluKGFyZ0xlbmd0aCwgcHJlY2lzaW9uKTsKLSAgICAgICAgICAg
ICAgaWYgKCFmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ0xlbmd0
aCA8IHdpZHRoLS0pIHsKLSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKDMyKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKGFyZykgewotICAg
ICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJnTGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICAgICAgICAgIHJldC5wdXNoKEhFQVBVOFsoKGFyZysrKXwwKV0pOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICByZXQgPSByZXQu
Y29uY2F0KGludEFycmF5RnJvbVN0cmluZygnKG51bGwpJy5zdWJzdHIoMCwgYXJnTGVuZ3RoKSwg
dHJ1ZSkpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWdu
KSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ0xlbmd0aCA8IHdpZHRoLS0pIHsKLSAgICAg
ICAgICAgICAgICAgIHJldC5wdXNoKDMyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBj
YXNlICdjJzogewotICAgICAgICAgICAgICAvLyBDaGFyYWN0ZXIuCi0gICAgICAgICAgICAgIGlm
IChmbGFnTGVmdEFsaWduKSByZXQucHVzaChnZXROZXh0QXJnKCdpOCcpKTsKLSAgICAgICAgICAg
ICAgd2hpbGUgKC0td2lkdGggPiAwKSB7Ci0gICAgICAgICAgICAgICAgcmV0LnB1c2goMzIpOwot
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmICghZmxhZ0xlZnRBbGlnbikgcmV0LnB1
c2goZ2V0TmV4dEFyZygnaTgnKSk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgY2FzZSAnbic6IHsKLSAgICAgICAgICAgICAgLy8gV3JpdGUgdGhlIGxl
bmd0aCB3cml0dGVuIHNvIGZhciB0byB0aGUgbmV4dCBwYXJhbWV0ZXIuCi0gICAgICAgICAgICAg
IHZhciBwdHIgPSBnZXROZXh0QXJnKCdpMzIqJyk7Ci0gICAgICAgICAgICAgIEhFQVAzMlsoKHB0
cik+PjIpXT1yZXQubGVuZ3RoCi0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgY2FzZSAnJSc6IHsKLSAgICAgICAgICAgICAgLy8gTGl0ZXJhbCBwZXJjZW50
IHNpZ24uCi0gICAgICAgICAgICAgIHJldC5wdXNoKGN1cnIpOwotICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRlZmF1bHQ6IHsKLSAgICAgICAgICAgICAg
Ly8gVW5rbm93biBzcGVjaWZpZXJzIHJlbWFpbiB1bnRvdWNoZWQuCi0gICAgICAgICAgICAgIGZv
ciAodmFyIGkgPSBzdGFydFRleHRJbmRleDsgaSA8IHRleHRJbmRleCArIDI7IGkrKykgewotICAg
ICAgICAgICAgICAgIHJldC5wdXNoKEhFQVA4WyhpKV0pOwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHRleHRJbmRleCArPSAyOwotICAgICAg
ICAgIC8vIFRPRE86IFN1cHBvcnQgYS9BIChoZXggZmxvYXQpIGFuZCBtIChsYXN0IGVycm9yKSBz
cGVjaWZpZXJzLgotICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQgJTEke3NwZWNpZmllcn0gZm9y
IGFyZyBzZWxlY3Rpb24uCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmV0LnB1c2goY3Vy
cik7Ci0gICAgICAgICAgdGV4dEluZGV4ICs9IDE7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAg
IHJldHVybiByZXQ7Ci0gICAgfWZ1bmN0aW9uIF9zbnByaW50ZihzLCBuLCBmb3JtYXQsIHZhcmFy
Z3MpIHsKLSAgICAgIC8vIGludCBzbnByaW50ZihjaGFyICpyZXN0cmljdCBzLCBzaXplX3Qgbiwg
Y29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCAuLi4pOwotICAgICAgLy8gaHR0cDovL3B1YnMu
b3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvcHJpbnRmLmh0bWwK
LSAgICAgIHZhciByZXN1bHQgPSBfX2Zvcm1hdFN0cmluZyhmb3JtYXQsIHZhcmFyZ3MpOwotICAg
ICAgdmFyIGxpbWl0ID0gKG4gPT09IHVuZGVmaW5lZCkgPyByZXN1bHQubGVuZ3RoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE1hdGgubWluKHJlc3VsdC5sZW5ndGgsIE1h
dGgubWF4KG4gLSAxLCAwKSk7Ci0gICAgICBpZiAocyA8IDApIHsKLSAgICAgICAgcyA9IC1zOwot
ICAgICAgICB2YXIgYnVmID0gX21hbGxvYyhsaW1pdCsxKTsKLSAgICAgICAgSEVBUDMyWygocyk+
PjIpXT1idWY7Ci0gICAgICAgIHMgPSBidWY7Ci0gICAgICB9Ci0gICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGxpbWl0OyBpKyspIHsKLSAgICAgICAgSEVBUDhbKCgocykrKGkpKXwwKV09cmVzdWx0
W2ldOwotICAgICAgfQotICAgICAgaWYgKGxpbWl0IDwgbiB8fCAobiA9PT0gdW5kZWZpbmVkKSkg
SEVBUDhbKCgocykrKGkpKXwwKV09MDsKLSAgICAgIHJldHVybiByZXN1bHQubGVuZ3RoOwotICAg
IH0KLSAgZnVuY3Rpb24gX3N5c2NvbmYobmFtZSkgewotICAgICAgLy8gbG9uZyBzeXNjb25mKGlu
dCBuYW1lKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8w
MDk2OTUzOTkvZnVuY3Rpb25zL3N5c2NvbmYuaHRtbAotICAgICAgc3dpdGNoKG5hbWUpIHsKLSAg
ICAgICAgY2FzZSA4OiByZXR1cm4gUEFHRV9TSVpFOwotICAgICAgICBjYXNlIDU0OgotICAgICAg
ICBjYXNlIDU2OgotICAgICAgICBjYXNlIDIxOgotICAgICAgICBjYXNlIDYxOgotICAgICAgICBj
YXNlIDYzOgotICAgICAgICBjYXNlIDIyOgotICAgICAgICBjYXNlIDY3OgotICAgICAgICBjYXNl
IDIzOgotICAgICAgICBjYXNlIDI0OgotICAgICAgICBjYXNlIDI1OgotICAgICAgICBjYXNlIDI2
OgotICAgICAgICBjYXNlIDI3OgotICAgICAgICBjYXNlIDY5OgotICAgICAgICBjYXNlIDI4Ogot
ICAgICAgICBjYXNlIDEwMToKLSAgICAgICAgY2FzZSA3MDoKLSAgICAgICAgY2FzZSA3MToKLSAg
ICAgICAgY2FzZSAyOToKLSAgICAgICAgY2FzZSAzMDoKLSAgICAgICAgY2FzZSAxOTk6Ci0gICAg
ICAgIGNhc2UgNzU6Ci0gICAgICAgIGNhc2UgNzY6Ci0gICAgICAgIGNhc2UgMzI6Ci0gICAgICAg
IGNhc2UgNDM6Ci0gICAgICAgIGNhc2UgNDQ6Ci0gICAgICAgIGNhc2UgODA6Ci0gICAgICAgIGNh
c2UgNDY6Ci0gICAgICAgIGNhc2UgNDc6Ci0gICAgICAgIGNhc2UgNDU6Ci0gICAgICAgIGNhc2Ug
NDg6Ci0gICAgICAgIGNhc2UgNDk6Ci0gICAgICAgIGNhc2UgNDI6Ci0gICAgICAgIGNhc2UgODI6
Ci0gICAgICAgIGNhc2UgMzM6Ci0gICAgICAgIGNhc2UgNzoKLSAgICAgICAgY2FzZSAxMDg6Ci0g
ICAgICAgIGNhc2UgMTA5OgotICAgICAgICBjYXNlIDEwNzoKLSAgICAgICAgY2FzZSAxMTI6Ci0g
ICAgICAgIGNhc2UgMTE5OgotICAgICAgICBjYXNlIDEyMToKLSAgICAgICAgICByZXR1cm4gMjAw
ODA5OwotICAgICAgICBjYXNlIDEzOgotICAgICAgICBjYXNlIDEwNDoKLSAgICAgICAgY2FzZSA5
NDoKLSAgICAgICAgY2FzZSA5NToKLSAgICAgICAgY2FzZSAzNDoKLSAgICAgICAgY2FzZSAzNToK
LSAgICAgICAgY2FzZSA3NzoKLSAgICAgICAgY2FzZSA4MToKLSAgICAgICAgY2FzZSA4MzoKLSAg
ICAgICAgY2FzZSA4NDoKLSAgICAgICAgY2FzZSA4NToKLSAgICAgICAgY2FzZSA4NjoKLSAgICAg
ICAgY2FzZSA4NzoKLSAgICAgICAgY2FzZSA4ODoKLSAgICAgICAgY2FzZSA4OToKLSAgICAgICAg
Y2FzZSA5MDoKLSAgICAgICAgY2FzZSA5MToKLSAgICAgICAgY2FzZSA5NDoKLSAgICAgICAgY2Fz
ZSA5NToKLSAgICAgICAgY2FzZSAxMTA6Ci0gICAgICAgIGNhc2UgMTExOgotICAgICAgICBjYXNl
IDExMzoKLSAgICAgICAgY2FzZSAxMTQ6Ci0gICAgICAgIGNhc2UgMTE1OgotICAgICAgICBjYXNl
IDExNjoKLSAgICAgICAgY2FzZSAxMTc6Ci0gICAgICAgIGNhc2UgMTE4OgotICAgICAgICBjYXNl
IDEyMDoKLSAgICAgICAgY2FzZSA0MDoKLSAgICAgICAgY2FzZSAxNjoKLSAgICAgICAgY2FzZSA3
OToKLSAgICAgICAgY2FzZSAxOToKLSAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIGNhc2Ug
OTI6Ci0gICAgICAgIGNhc2UgOTM6Ci0gICAgICAgIGNhc2UgNToKLSAgICAgICAgY2FzZSA3MjoK
LSAgICAgICAgY2FzZSA2OgotICAgICAgICBjYXNlIDc0OgotICAgICAgICBjYXNlIDkyOgotICAg
ICAgICBjYXNlIDkzOgotICAgICAgICBjYXNlIDk2OgotICAgICAgICBjYXNlIDk3OgotICAgICAg
ICBjYXNlIDk4OgotICAgICAgICBjYXNlIDk5OgotICAgICAgICBjYXNlIDEwMjoKLSAgICAgICAg
Y2FzZSAxMDM6Ci0gICAgICAgIGNhc2UgMTA1OgotICAgICAgICAgIHJldHVybiAxOwotICAgICAg
ICBjYXNlIDM4OgotICAgICAgICBjYXNlIDY2OgotICAgICAgICBjYXNlIDUwOgotICAgICAgICBj
YXNlIDUxOgotICAgICAgICBjYXNlIDQ6Ci0gICAgICAgICAgcmV0dXJuIDEwMjQ7Ci0gICAgICAg
IGNhc2UgMTU6Ci0gICAgICAgIGNhc2UgNjQ6Ci0gICAgICAgIGNhc2UgNDE6Ci0gICAgICAgICAg
cmV0dXJuIDMyOwotICAgICAgICBjYXNlIDU1OgotICAgICAgICBjYXNlIDM3OgotICAgICAgICBj
YXNlIDE3OgotICAgICAgICAgIHJldHVybiAyMTQ3NDgzNjQ3OwotICAgICAgICBjYXNlIDE4Ogot
ICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgcmV0dXJuIDQ3ODM5OwotICAgICAgICBjYXNlIDU5
OgotICAgICAgICBjYXNlIDU3OgotICAgICAgICAgIHJldHVybiA5OTsKLSAgICAgICAgY2FzZSA2
ODoKLSAgICAgICAgY2FzZSA1ODoKLSAgICAgICAgICByZXR1cm4gMjA0ODsKLSAgICAgICAgY2Fz
ZSAwOiByZXR1cm4gMjA5NzE1MjsKLSAgICAgICAgY2FzZSAzOiByZXR1cm4gNjU1MzY7Ci0gICAg
ICAgIGNhc2UgMTQ6IHJldHVybiAzMjc2ODsKLSAgICAgICAgY2FzZSA3MzogcmV0dXJuIDMyNzY3
OwotICAgICAgICBjYXNlIDM5OiByZXR1cm4gMTYzODQ7Ci0gICAgICAgIGNhc2UgNjA6IHJldHVy
biAxMDAwOwotICAgICAgICBjYXNlIDEwNjogcmV0dXJuIDcwMDsKLSAgICAgICAgY2FzZSA1Mjog
cmV0dXJuIDI1NjsKLSAgICAgICAgY2FzZSA2MjogcmV0dXJuIDI1NTsKLSAgICAgICAgY2FzZSAy
OiByZXR1cm4gMTAwOwotICAgICAgICBjYXNlIDY1OiByZXR1cm4gNjQ7Ci0gICAgICAgIGNhc2Ug
MzY6IHJldHVybiAyMDsKLSAgICAgICAgY2FzZSAxMDA6IHJldHVybiAxNjsKLSAgICAgICAgY2Fz
ZSAyMDogcmV0dXJuIDY7Ci0gICAgICAgIGNhc2UgNTM6IHJldHVybiA0OwotICAgICAgICBjYXNl
IDEwOiByZXR1cm4gMTsKLSAgICAgIH0KLSAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJ
TlZBTCk7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfZ3VhcmRf
YWJvcnQoKSB7fQotICBmdW5jdGlvbiBfaXN4ZGlnaXQoY2hyKSB7Ci0gICAgICByZXR1cm4gKGNo
ciA+PSA0OCAmJiBjaHIgPD0gNTcpIHx8Ci0gICAgICAgICAgICAgKGNociA+PSA5NyAmJiBjaHIg
PD0gMTAyKSB8fAotICAgICAgICAgICAgIChjaHIgPj0gNjUgJiYgY2hyIDw9IDcwKTsKLSAgICB9
dmFyIF9pc3hkaWdpdF9sPV9pc3hkaWdpdDsKLSAgZnVuY3Rpb24gX2lzZGlnaXQoY2hyKSB7Ci0g
ICAgICByZXR1cm4gY2hyID49IDQ4ICYmIGNociA8PSA1NzsKLSAgICB9dmFyIF9pc2RpZ2l0X2w9
X2lzZGlnaXQ7Ci0gIGZ1bmN0aW9uIF9faXNGbG9hdCh0ZXh0KSB7Ci0gICAgICByZXR1cm4gISEo
L15bKy1dP1swLTldKlwuP1swLTldKyhbZUVdWystXT9bMC05XSspPyQvLmV4ZWModGV4dCkpOwot
ICAgIH1mdW5jdGlvbiBfX3NjYW5TdHJpbmcoZm9ybWF0LCBnZXQsIHVuZ2V0LCB2YXJhcmdzKSB7
Ci0gICAgICBpZiAoIV9fc2NhblN0cmluZy53aGl0ZVNwYWNlKSB7Ci0gICAgICAgIF9fc2NhblN0
cmluZy53aGl0ZVNwYWNlID0ge307Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWzMy
XSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWzldID0gMTsKLSAgICAgICAg
X19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTBdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndo
aXRlU3BhY2VbMTFdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTJdID0g
MTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTNdID0gMTsKLSAgICAgICAgX19z
Y2FuU3RyaW5nLndoaXRlU3BhY2VbJyAnXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0
ZVNwYWNlWydcdCddID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJ1xuJ10g
PSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsnXHYnXSA9IDE7Ci0gICAgICAg
IF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcZiddID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5n
LndoaXRlU3BhY2VbJ1xyJ10gPSAxOwotICAgICAgfQotICAgICAgLy8gU3VwcG9ydHMgJXgsICU0
eCwgJWQuJWQsICVsbGQsICVzLCAlZiwgJWxmLgotICAgICAgLy8gVE9ETzogU3VwcG9ydCBhbGwg
Zm9ybWF0IHNwZWNpZmllcnMuCi0gICAgICBmb3JtYXQgPSBQb2ludGVyX3N0cmluZ2lmeShmb3Jt
YXQpOwotICAgICAgdmFyIHNvRmFyID0gMDsKLSAgICAgIGlmIChmb3JtYXQuaW5kZXhPZignJW4n
KSA+PSAwKSB7Ci0gICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgc29GYXIKLSAgICAgICAgdmFyIF9n
ZXQgPSBnZXQ7Ci0gICAgICAgIGdldCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgIHNvRmFyKys7
Ci0gICAgICAgICAgcmV0dXJuIF9nZXQoKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgX3VuZ2V0
ID0gdW5nZXQ7Ci0gICAgICAgIHVuZ2V0ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgc29GYXIt
LTsKLSAgICAgICAgICByZXR1cm4gX3VuZ2V0KCk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAg
IHZhciBmb3JtYXRJbmRleCA9IDA7Ci0gICAgICB2YXIgYXJnc2kgPSAwOwotICAgICAgdmFyIGZp
ZWxkcyA9IDA7Ci0gICAgICB2YXIgYXJnSW5kZXggPSAwOwotICAgICAgdmFyIG5leHQ7Ci0gICAg
ICBtYWluTG9vcDoKLSAgICAgIGZvciAodmFyIGZvcm1hdEluZGV4ID0gMDsgZm9ybWF0SW5kZXgg
PCBmb3JtYXQubGVuZ3RoOykgewotICAgICAgICBpZiAoZm9ybWF0W2Zvcm1hdEluZGV4XSA9PT0g
JyUnICYmIGZvcm1hdFtmb3JtYXRJbmRleCsxXSA9PSAnbicpIHsKLSAgICAgICAgICB2YXIgYXJn
UHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07Ci0gICAgICAgICAgYXJn
SW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywgbnVsbCwgdHJ1ZSk7Ci0gICAg
ICAgICAgSEVBUDMyWygoYXJnUHRyKT4+MildPXNvRmFyOwotICAgICAgICAgIGZvcm1hdEluZGV4
ICs9IDI7Ci0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGZvcm1h
dFtmb3JtYXRJbmRleF0gPT09ICclJykgewotICAgICAgICAgIHZhciBuZXh0QyA9IGZvcm1hdC5p
bmRleE9mKCdjJywgZm9ybWF0SW5kZXgrMSk7Ci0gICAgICAgICAgaWYgKG5leHRDID4gMCkgewot
ICAgICAgICAgICAgdmFyIG1heHggPSAxOwotICAgICAgICAgICAgaWYgKG5leHRDID4gZm9ybWF0
SW5kZXgrMSkgewotICAgICAgICAgICAgICB2YXIgc3ViID0gZm9ybWF0LnN1YnN0cmluZyhmb3Jt
YXRJbmRleCsxLCBuZXh0QykKLSAgICAgICAgICAgICAgbWF4eCA9IHBhcnNlSW50KHN1Yik7Ci0g
ICAgICAgICAgICAgIGlmIChtYXh4ICE9IHN1YikgbWF4eCA9IDA7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBpZiAobWF4eCkgewotICAgICAgICAgICAgICB2YXIgYXJnUHRyID0gSEVBUDMy
WygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07Ci0gICAgICAgICAgICAgIGFyZ0luZGV4ICs9
IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKCd2b2lkKicsIG51bGwsIHRydWUpOwotICAgICAgICAgICAg
ICBmaWVsZHMrKzsKLSAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXh4OyBpKysp
IHsKLSAgICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgICAgICAgSEVBUDhb
KChhcmdQdHIrKyl8MCldPW5leHQ7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZm9y
bWF0SW5kZXggKz0gbmV4dEMgLSBmb3JtYXRJbmRleCArIDE7Ci0gICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAvLyBy
ZW1vdmUgd2hpdGVzcGFjZQotICAgICAgICB3aGlsZSAoMSkgewotICAgICAgICAgIG5leHQgPSBn
ZXQoKTsKLSAgICAgICAgICBpZiAobmV4dCA9PSAwKSByZXR1cm4gZmllbGRzOwotICAgICAgICAg
IGlmICghKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpKSBicmVhazsKLSAgICAgICAg
fQotICAgICAgICB1bmdldCgpOwotICAgICAgICBpZiAoZm9ybWF0W2Zvcm1hdEluZGV4XSA9PT0g
JyUnKSB7Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICB2YXIgc3VwcHJlc3NB
c3NpZ25tZW50ID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0g
JyonKSB7Ci0gICAgICAgICAgICBzdXBwcmVzc0Fzc2lnbm1lbnQgPSB0cnVlOwotICAgICAgICAg
ICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIG1heFNwZWNpZmll
clN0YXJ0ID0gZm9ybWF0SW5kZXg7Ci0gICAgICAgICAgd2hpbGUgKGZvcm1hdFtmb3JtYXRJbmRl
eF0uY2hhckNvZGVBdCgwKSA+PSA0OCAmJgotICAgICAgICAgICAgICAgICBmb3JtYXRbZm9ybWF0
SW5kZXhdLmNoYXJDb2RlQXQoMCkgPD0gNTcpIHsKLSAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7
Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBtYXhfOwotICAgICAgICAgIGlmIChmb3JtYXRJ
bmRleCAhPSBtYXhTcGVjaWZpZXJTdGFydCkgewotICAgICAgICAgICAgbWF4XyA9IHBhcnNlSW50
KGZvcm1hdC5zbGljZShtYXhTcGVjaWZpZXJTdGFydCwgZm9ybWF0SW5kZXgpLCAxMCk7Ci0gICAg
ICAgICAgfQotICAgICAgICAgIHZhciBsb25nXyA9IGZhbHNlOwotICAgICAgICAgIHZhciBoYWxm
ID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGxvbmdMb25nID0gZmFsc2U7Ci0gICAgICAgICAgaWYg
KGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2wnKSB7Ci0gICAgICAgICAgICBsb25nXyA9IHRydWU7
Ci0gICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgICAgaWYgKGZvcm1hdFtmb3Jt
YXRJbmRleF0gPT0gJ2wnKSB7Ci0gICAgICAgICAgICAgIGxvbmdMb25nID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2Ug
aWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2gnKSB7Ci0gICAgICAgICAgICBoYWxmID0gdHJ1
ZTsKLSAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZh
ciB0eXBlID0gZm9ybWF0W2Zvcm1hdEluZGV4XTsKLSAgICAgICAgICBmb3JtYXRJbmRleCsrOwot
ICAgICAgICAgIHZhciBjdXJyID0gMDsKLSAgICAgICAgICB2YXIgYnVmZmVyID0gW107Ci0gICAg
ICAgICAgLy8gUmVhZCBjaGFyYWN0ZXJzIGFjY29yZGluZyB0byB0aGUgZm9ybWF0LiBmbG9hdHMg
YXJlIHRyaWNraWVyLCB0aGV5IG1heSBiZSBpbiBhbiB1bmZsb2F0IHN0YXRlIGluIHRoZSBtaWRk
bGUsIHRoZW4gYmUgYSB2YWxpZCBmbG9hdCBsYXRlcgotICAgICAgICAgIGlmICh0eXBlID09ICdm
JyB8fCB0eXBlID09ICdlJyB8fCB0eXBlID09ICdnJyB8fAotICAgICAgICAgICAgICB0eXBlID09
ICdGJyB8fCB0eXBlID09ICdFJyB8fCB0eXBlID09ICdHJykgewotICAgICAgICAgICAgdmFyIGxh
c3QgPSAwOwotICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgICAgd2hpbGUgKG5l
eHQgPiAwKSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUo
bmV4dCkpOwotICAgICAgICAgICAgICBpZiAoX19pc0Zsb2F0KGJ1ZmZlci5qb2luKCcnKSkpIHsK
LSAgICAgICAgICAgICAgICBsYXN0ID0gYnVmZmVyLmxlbmd0aDsKLSAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGJ1ZmZlci5sZW5ndGggLSBsYXN0ICsgMTsgaSsrKSB7Ci0gICAg
ICAgICAgICAgIHVuZ2V0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBidWZmZXIubGVu
Z3RoID0gbGFzdDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbmV4dCA9IGdldCgp
OwotICAgICAgICAgICAgdmFyIGZpcnN0ID0gdHJ1ZTsKLSAgICAgICAgICAgIHdoaWxlICgoY3Vy
ciA8IG1heF8gfHwgaXNOYU4obWF4XykpICYmIG5leHQgPiAwKSB7Ci0gICAgICAgICAgICAgIGlm
ICghKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpICYmIC8vIHN0b3Agb24gd2hpdGVz
cGFjZQotICAgICAgICAgICAgICAgICAgKHR5cGUgPT0gJ3MnIHx8Ci0gICAgICAgICAgICAgICAg
ICAgKCh0eXBlID09PSAnZCcgfHwgdHlwZSA9PSAndScgfHwgdHlwZSA9PSAnaScpICYmICgobmV4
dCA+PSA0OCAmJiBuZXh0IDw9IDU3KSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpcnN0ICYmIG5leHQgPT0g
NDUpKSkgfHwKLSAgICAgICAgICAgICAgICAgICAoKHR5cGUgPT09ICd4JyB8fCB0eXBlID09PSAn
WCcpICYmIChuZXh0ID49IDQ4ICYmIG5leHQgPD0gNTcgfHwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuZXh0ID49IDk3ICYmIG5leHQgPD0gMTAyIHx8Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA+PSA2NSAmJiBuZXh0IDw9IDcwKSkpICYm
Ci0gICAgICAgICAgICAgICAgICAoZm9ybWF0SW5kZXggPj0gZm9ybWF0Lmxlbmd0aCB8fCBuZXh0
ICE9PSBmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkpKSB7IC8vIFN0b3Agd2hlbiB3
ZSByZWFkIHNvbWV0aGluZyB0aGF0IGlzIGNvbWluZyB1cAotICAgICAgICAgICAgICAgIGJ1ZmZl
ci5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpOwotICAgICAgICAgICAgICAgIG5leHQg
PSBnZXQoKTsKLSAgICAgICAgICAgICAgICBjdXJyKys7Ci0gICAgICAgICAgICAgICAgZmlyc3Qg
PSBmYWxzZTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgdW5nZXQoKTsKLSAg
ICAgICAgICB9Ci0gICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGggPT09IDApIHJldHVybiAwOyAg
Ly8gRmFpbHVyZS4KLSAgICAgICAgICBpZiAoc3VwcHJlc3NBc3NpZ25tZW50KSBjb250aW51ZTsK
LSAgICAgICAgICB2YXIgdGV4dCA9IGJ1ZmZlci5qb2luKCcnKTsKLSAgICAgICAgICB2YXIgYXJn
UHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07Ci0gICAgICAgICAgYXJn
SW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywgbnVsbCwgdHJ1ZSk7Ci0gICAg
ICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgICAgICBjYXNlICdkJzogY2FzZSAndSc6IGNh
c2UgJ2knOgotICAgICAgICAgICAgICBpZiAoaGFsZikgewotICAgICAgICAgICAgICAgIEhFQVAx
NlsoKGFyZ1B0cik+PjEpXT1wYXJzZUludCh0ZXh0LCAxMCk7Ci0gICAgICAgICAgICAgIH0gZWxz
ZSBpZiAobG9uZ0xvbmcpIHsKLSAgICAgICAgICAgICAgICAodGVtcEk2NCA9IFtwYXJzZUludCh0
ZXh0LCAxMCk+Pj4wLCh0ZW1wRG91YmxlPXBhcnNlSW50KHRleHQsIDEwKSwoKyhNYXRoLmFicyh0
ZW1wRG91YmxlKSkpID49ICgrKDEpKSA/ICh0ZW1wRG91YmxlID4gKCsoMCkpID8gKChNYXRoLm1p
bigoKyhNYXRoLmZsb29yKCh0ZW1wRG91YmxlKS8oKyg0Mjk0OTY3Mjk2KSkpKSksICgrKDQyOTQ5
NjcyOTUpKSkpfDApPj4+MCA6ICh+figoKyhNYXRoLmNlaWwoKHRlbXBEb3VibGUgLSArKCgofn4o
dGVtcERvdWJsZSkpKT4+PjApKS8oKyg0Mjk0OTY3Mjk2KSkpKSkpKT4+PjApIDogMCldLEhFQVAz
MlsoKGFyZ1B0cik+PjIpXT10ZW1wSTY0WzBdLEhFQVAzMlsoKChhcmdQdHIpKyg0KSk+PjIpXT10
ZW1wSTY0WzFdKTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBIRUFQ
MzJbKChhcmdQdHIpPj4yKV09cGFyc2VJbnQodGV4dCwgMTApOwotICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAnWCc6Ci0gICAgICAgICAgICBj
YXNlICd4JzoKLSAgICAgICAgICAgICAgSEVBUDMyWygoYXJnUHRyKT4+MildPXBhcnNlSW50KHRl
eHQsIDE2KQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ0YnOgotICAg
ICAgICAgICAgY2FzZSAnZic6Ci0gICAgICAgICAgICBjYXNlICdFJzoKLSAgICAgICAgICAgIGNh
c2UgJ2UnOgotICAgICAgICAgICAgY2FzZSAnRyc6Ci0gICAgICAgICAgICBjYXNlICdnJzoKLSAg
ICAgICAgICAgIGNhc2UgJ0UnOgotICAgICAgICAgICAgICAvLyBmYWxsdGhyb3VnaCBpbnRlbmRl
ZAotICAgICAgICAgICAgICBpZiAobG9uZ18pIHsKLSAgICAgICAgICAgICAgICBIRUFQRjY0Wygo
YXJnUHRyKT4+MyldPXBhcnNlRmxvYXQodGV4dCkKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBIRUFQRjMyWygoYXJnUHRyKT4+MildPXBhcnNlRmxvYXQodGV4dCkKLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ3Mn
OgotICAgICAgICAgICAgICB2YXIgYXJyYXkgPSBpbnRBcnJheUZyb21TdHJpbmcodGV4dCk7Ci0g
ICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXJyYXkubGVuZ3RoOyBqKyspIHsKLSAg
ICAgICAgICAgICAgICBIRUFQOFsoKChhcmdQdHIpKyhqKSl8MCldPWFycmF5W2pdCi0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgfQotICAgICAgICAgIGZp
ZWxkcysrOwotICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gaW4gX19zY2Fu
U3RyaW5nLndoaXRlU3BhY2UpIHsKLSAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAg
d2hpbGUgKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpIHsKLSAgICAgICAgICAgIGlm
IChuZXh0IDw9IDApIGJyZWFrIG1haW5Mb29wOyAgLy8gRW5kIG9mIGlucHV0LgotICAgICAgICAg
ICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgIH0KLSAgICAgICAgICB1bmdldChuZXh0KTsKLSAg
ICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8vIE5v
dCBhIHNwZWNpZmllci4KLSAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgaWYgKGZv
cm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSAhPT0gbmV4dCkgewotICAgICAgICAgICAg
dW5nZXQobmV4dCk7Ci0gICAgICAgICAgICBicmVhayBtYWluTG9vcDsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJu
IGZpZWxkczsKLSAgICB9ZnVuY3Rpb24gX3NzY2FuZihzLCBmb3JtYXQsIHZhcmFyZ3MpIHsKLSAg
ICAgIC8vIGludCBzc2NhbmYoY29uc3QgY2hhciAqcmVzdHJpY3QgcywgY29uc3QgY2hhciAqcmVz
dHJpY3QgZm9ybWF0LCAuLi4gKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcv
b25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3NjYW5mLmh0bWwKLSAgICAgIHZhciBpbmRl
eCA9IDA7Ci0gICAgICB2YXIgZ2V0ID0gZnVuY3Rpb24oKSB7IHJldHVybiBIRUFQOFsoKChzKSso
aW5kZXgrKykpfDApXTsgfTsKLSAgICAgIHZhciB1bmdldCA9IGZ1bmN0aW9uKCkgeyBpbmRleC0t
OyB9OwotICAgICAgcmV0dXJuIF9fc2NhblN0cmluZyhmb3JtYXQsIGdldCwgdW5nZXQsIHZhcmFy
Z3MpOwotICAgIH0KLSAgZnVuY3Rpb24gX19aN2NhdG9wZW5QS2NpKCkgeyB0aHJvdyAnY2F0b3Bl
biBub3QgaW1wbGVtZW50ZWQnIH0KLSAgZnVuY3Rpb24gX19aN2NhdGdldHNQOF9ubF9jYXRkaWlQ
S2MoKSB7IHRocm93ICdjYXRnZXRzIG5vdCBpbXBsZW1lbnRlZCcgfQotICBmdW5jdGlvbiBfX1o4
Y2F0Y2xvc2VQOF9ubF9jYXRkKCkgeyB0aHJvdyAnY2F0Y2xvc2Ugbm90IGltcGxlbWVudGVkJyB9
Ci0gIGZ1bmN0aW9uIF9uZXdsb2NhbGUobWFzaywgbG9jYWxlLCBiYXNlKSB7Ci0gICAgICByZXR1
cm4gMDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9mcmVlbG9jYWxlKGxvY2FsZSkge30KLSAgZnVuY3Rp
b24gX19fY3R5cGVfYl9sb2MoKSB7Ci0gICAgICAvLyBodHRwOi8vcmVmc3BlY3MuZnJlZXN0YW5k
YXJkcy5vcmcvTFNCXzMuMC4wL0xTQi1Db3JlLWdlbmVyaWMvTFNCLUNvcmUtZ2VuZXJpYy9iYXNl
bGliLS0tY3R5cGUtYi1sb2MuaHRtbAotICAgICAgdmFyIG1lID0gX19fY3R5cGVfYl9sb2M7Ci0g
ICAgICBpZiAoIW1lLnJldCkgewotICAgICAgICB2YXIgdmFsdWVzID0gWwotICAgICAgICAgIDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwKLSAgICAgICAgICAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsCi0gICAgICAgICAgMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDIsMiwy
LDIsMiwyLDIsMiw4MTk1LDgxOTQsODE5NCw4MTk0LDgxOTQsMiwyLDIsMiwyLDIsMiwyLDIsMiwy
LDIsMiwyLDIsMiwyLDIsMjQ1NzcsNDkxNTYsNDkxNTYsNDkxNTYsCi0gICAgICAgICAgNDkxNTYs
NDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkx
NTYsNDkxNTYsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQs
Ci0gICAgICAgICAgNTUzMDQsNTUzMDQsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkx
NTYsNDkxNTYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTA0NDAsNTA0NDAs
NTA0NDAsNTA0NDAsNTA0NDAsCi0gICAgICAgICAgNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0
NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAs
NTA0NDAsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsCi0gICAgICAgICAgNDkxNTYsNTQ3
OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYs
NTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsCi0g
ICAgICAgICAgNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNDkxNTYs
NDkxNTYsNDkxNTYsNDkxNTYsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLAotICAgICAgICAgIDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAgICAwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAKLSAgICAgICAgXTsKLSAgICAgICAgdmFyIGkxNnNpemUgPSAyOwotICAg
ICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICogaTE2c2l6ZSk7Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgSEVB
UDE2WygoKGFycikrKGkgKiBpMTZzaXplKSk+PjEpXT12YWx1ZXNbaV0KLSAgICAgICAgfQotICAg
ICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTE2c2l6ZV0sICdpMTYqJywgQUxM
T0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5yZXQ7Ci0gICAgfQotICBmdW5j
dGlvbiBfX19jdHlwZV90b2xvd2VyX2xvYygpIHsKLSAgICAgIC8vIGh0dHA6Ly9yZWZzcGVjcy5m
cmVlc3RhbmRhcmRzLm9yZy9MU0JfMy4xLjEvTFNCLUNvcmUtZ2VuZXJpYy9MU0ItQ29yZS1nZW5l
cmljL2xpYnV0aWwtLS1jdHlwZS10b2xvd2VyLWxvYy5odG1sCi0gICAgICB2YXIgbWUgPSBfX19j
dHlwZV90b2xvd2VyX2xvYzsKLSAgICAgIGlmICghbWUucmV0KSB7Ci0gICAgICAgIHZhciB2YWx1
ZXMgPSBbCi0gICAgICAgICAgMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3
LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEs
MTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsCi0gICAgICAgICAgMTU4LDE1OSwxNjAsMTYxLDE2Miwx
NjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3
NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsCi0gICAgICAgICAgMTg4
LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIs
MjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwy
MTcsCi0gICAgICAgICAgMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIy
OCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQy
LDI0MywyNDQsMjQ1LDI0NiwyNDcsCi0gICAgICAgICAgMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMs
MjU0LC0xLDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTks
MjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsCi0gICAgICAgICAgMzMsMzQs
MzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMs
NTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAz
LAotICAgICAgICAgIDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDExMCwxMTEsMTEyLDExMywxMTQs
MTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiw5MSw5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5
OSwxMDAsMTAxLDEwMiwxMDMsCi0gICAgICAgICAgMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEw
LDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQs
MTI1LDEyNiwxMjcsMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsCi0gICAgICAgICAgMTM0LDEzNSwx
MzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1
MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsMTYxLDE2MiwxNjMsCi0g
ICAgICAgICAgMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUs
MTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwx
OTAsMTkxLDE5MiwxOTMsCi0gICAgICAgICAgMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIw
MSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1
LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsCi0gICAgICAgICAgMjI0LDIyNSwyMjYs
MjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwy
NDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsCi0gICAg
ICAgICAgMjU0LDI1NQotICAgICAgICBdOwotICAgICAgICB2YXIgaTMyc2l6ZSA9IDQ7Ci0gICAg
ICAgIHZhciBhcnIgPSBfbWFsbG9jKHZhbHVlcy5sZW5ndGggKiBpMzJzaXplKTsKLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICBIRUFQ
MzJbKCgoYXJyKSsoaSAqIGkzMnNpemUpKT4+MildPXZhbHVlc1tpXQotICAgICAgICB9Ci0gICAg
ICAgIG1lLnJldCA9IGFsbG9jYXRlKFthcnIgKyAxMjggKiBpMzJzaXplXSwgJ2kzMionLCBBTExP
Q19OT1JNQUwpOwotICAgICAgfQotICAgICAgcmV0dXJuIG1lLnJldDsKLSAgICB9Ci0gIGZ1bmN0
aW9uIF9fX2N0eXBlX3RvdXBwZXJfbG9jKCkgewotICAgICAgLy8gaHR0cDovL3JlZnNwZWNzLmZy
ZWVzdGFuZGFyZHMub3JnL0xTQl8zLjEuMS9MU0ItQ29yZS1nZW5lcmljL0xTQi1Db3JlLWdlbmVy
aWMvbGlidXRpbC0tLWN0eXBlLXRvdXBwZXItbG9jLmh0bWwKLSAgICAgIHZhciBtZSA9IF9fX2N0
eXBlX3RvdXBwZXJfbG9jOwotICAgICAgaWYgKCFtZS5yZXQpIHsKLSAgICAgICAgdmFyIHZhbHVl
cyA9IFsKLSAgICAgICAgICAxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcs
MTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwx
NTIsMTUzLDE1NCwxNTUsMTU2LDE1NywKLSAgICAgICAgICAxNTgsMTU5LDE2MCwxNjEsMTYyLDE2
MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3
LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywKLSAgICAgICAgICAxODgs
MTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwy
MDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIx
NywKLSAgICAgICAgICAyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4
LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIs
MjQzLDI0NCwyNDUsMjQ2LDI0NywKLSAgICAgICAgICAyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1Mywy
NTQsLTEsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwy
MCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwKLSAgICAgICAgICAzMywzNCwz
NSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1
NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3MiwK
LSAgICAgICAgICA3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4
OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3
NSw3Niw3Nyw3OCw3OSw4MCwKLSAgICAgICAgICA4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5
MCwxMjMsMTI0LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2
LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsCi0gICAgICAgICAgMTQ1LDE0NiwxNDcs
MTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDE2MSwx
NjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsCi0gICAg
ICAgICAgMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3
LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEs
MjAyLDIwMywyMDQsCi0gICAgICAgICAgMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwy
MTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIy
NywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsCi0gICAgICAgICAgMjM1LDIzNiwyMzcsMjM4
LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIs
MjUzLDI1NCwyNTUKLSAgICAgICAgXTsKLSAgICAgICAgdmFyIGkzMnNpemUgPSA0OwotICAgICAg
ICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICogaTMyc2l6ZSk7Ci0gICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgSEVBUDMy
WygoKGFycikrKGkgKiBpMzJzaXplKSk+PjIpXT12YWx1ZXNbaV0KLSAgICAgICAgfQotICAgICAg
ICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTMyc2l6ZV0sICdpMzIqJywgQUxMT0Nf
Tk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5yZXQ7Ci0gICAgfQotICB2YXIgX19f
dG1fc3RydWN0X2xheW91dD17X19zaXplX186NDQsdG1fc2VjOjAsdG1fbWluOjQsdG1faG91cjo4
LHRtX21kYXk6MTIsdG1fbW9uOjE2LHRtX3llYXI6MjAsdG1fd2RheToyNCx0bV95ZGF5OjI4LHRt
X2lzZHN0OjMyLHRtX2dtdG9mZjozNix0bV96b25lOjQwfTsKLSAgZnVuY3Rpb24gX19pc0xlYXBZ
ZWFyKHllYXIpIHsKLSAgICAgICAgcmV0dXJuIHllYXIlNCA9PT0gMCAmJiAoeWVhciUxMDAgIT09
IDAgfHwgeWVhciU0MDAgPT09IDApOwotICAgIH0KLSAgZnVuY3Rpb24gX19hcnJheVN1bShhcnJh
eSwgaW5kZXgpIHsKLSAgICAgIHZhciBzdW0gPSAwOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PD0gaW5kZXg7IHN1bSArPSBhcnJheVtpKytdKTsKLSAgICAgIHJldHVybiBzdW07Ci0gICAgfQot
ICB2YXIgX19NT05USF9EQVlTX0xFQVA9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMw
LDMxXTsKLSAgdmFyIF9fTU9OVEhfREFZU19SRUdVTEFSPVszMSwyOCwzMSwzMCwzMSwzMCwzMSwz
MSwzMCwzMSwzMCwzMV07ZnVuY3Rpb24gX19hZGREYXlzKGRhdGUsIGRheXMpIHsKLSAgICAgIHZh
ciBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpOwotICAgICAgd2hpbGUoZGF5cyA+
IDApIHsKLSAgICAgICAgdmFyIGxlYXAgPSBfX2lzTGVhcFllYXIobmV3RGF0ZS5nZXRGdWxsWWVh
cigpKTsKLSAgICAgICAgdmFyIGN1cnJlbnRNb250aCA9IG5ld0RhdGUuZ2V0TW9udGgoKTsKLSAg
ICAgICAgdmFyIGRheXNJbkN1cnJlbnRNb250aCA9IChsZWFwID8gX19NT05USF9EQVlTX0xFQVAg
OiBfX01PTlRIX0RBWVNfUkVHVUxBUilbY3VycmVudE1vbnRoXTsKLSAgICAgICAgaWYgKGRheXMg
PiBkYXlzSW5DdXJyZW50TW9udGgtbmV3RGF0ZS5nZXREYXRlKCkpIHsKLSAgICAgICAgICAvLyB3
ZSBzcGlsbCBvdmVyIHRvIG5leHQgbW9udGgKLSAgICAgICAgICBkYXlzIC09IChkYXlzSW5DdXJy
ZW50TW9udGgtbmV3RGF0ZS5nZXREYXRlKCkrMSk7Ci0gICAgICAgICAgbmV3RGF0ZS5zZXREYXRl
KDEpOwotICAgICAgICAgIGlmIChjdXJyZW50TW9udGggPCAxMSkgewotICAgICAgICAgICAgbmV3
RGF0ZS5zZXRNb250aChjdXJyZW50TW9udGgrMSkKLSAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgbmV3RGF0ZS5zZXRNb250aCgwKTsKLSAgICAgICAgICAgIG5ld0RhdGUuc2V0RnVsbFll
YXIobmV3RGF0ZS5nZXRGdWxsWWVhcigpKzEpOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAvLyB3ZSBzdGF5IGluIGN1cnJlbnQgbW9udGggCi0gICAgICAgICAgbmV3
RGF0ZS5zZXREYXRlKG5ld0RhdGUuZ2V0RGF0ZSgpK2RheXMpOwotICAgICAgICAgIHJldHVybiBu
ZXdEYXRlOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbmV3RGF0ZTsKLSAgICB9
ZnVuY3Rpb24gX3N0cmZ0aW1lKHMsIG1heHNpemUsIGZvcm1hdCwgdG0pIHsKLSAgICAgIC8vIHNp
emVfdCBzdHJmdGltZShjaGFyICpyZXN0cmljdCBzLCBzaXplX3QgbWF4c2l6ZSwgY29uc3QgY2hh
ciAqcmVzdHJpY3QgZm9ybWF0LCBjb25zdCBzdHJ1Y3QgdG0gKnJlc3RyaWN0IHRpbWVwdHIpOwot
ICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9m
dW5jdGlvbnMvc3RyZnRpbWUuaHRtbAotICAgICAgdmFyIGRhdGUgPSB7Ci0gICAgICAgIHRtX3Nl
YzogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV9zZWMpKT4+MildLAotICAg
ICAgICB0bV9taW46IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1fbWluKSk+
PjIpXSwKLSAgICAgICAgdG1faG91cjogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91
dC50bV9ob3VyKSk+PjIpXSwKLSAgICAgICAgdG1fbWRheTogSEVBUDMyWygoKHRtKSsoX19fdG1f
c3RydWN0X2xheW91dC50bV9tZGF5KSk+PjIpXSwKLSAgICAgICAgdG1fbW9uOiBIRUFQMzJbKCgo
dG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX21vbikpPj4yKV0sCi0gICAgICAgIHRtX3llYXI6
IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1feWVhcikpPj4yKV0sCi0gICAg
ICAgIHRtX3dkYXk6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1fd2RheSkp
Pj4yKV0sCi0gICAgICAgIHRtX3lkYXk6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlv
dXQudG1feWRheSkpPj4yKV0sCi0gICAgICAgIHRtX2lzZHN0OiBIRUFQMzJbKCgodG0pKyhfX190
bV9zdHJ1Y3RfbGF5b3V0LnRtX2lzZHN0KSk+PjIpXQotICAgICAgfTsKLSAgICAgIHZhciBwYXR0
ZXJuID0gUG9pbnRlcl9zdHJpbmdpZnkoZm9ybWF0KTsKLSAgICAgIC8vIGV4cGFuZCBmb3JtYXQK
LSAgICAgIHZhciBFWFBBTlNJT05fUlVMRVNfMSA9IHsKLSAgICAgICAgJyVjJzogJyVhICViICVk
ICVIOiVNOiVTICVZJywgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBsb2NhbGUncyBhcHByb3ByaWF0
ZSBkYXRlIGFuZCB0aW1lIHJlcHJlc2VudGF0aW9uIC0gZS5nLiwgTW9uIEF1ZyAgMyAxNDowMjow
MSAyMDEzCi0gICAgICAgICclRCc6ICclbS8lZC8leScsICAgICAgICAgICAgICAgICAvLyBFcXVp
dmFsZW50IHRvICVtIC8gJWQgLyAleQotICAgICAgICAnJUYnOiAnJVktJW0tJWQnLCAgICAgICAg
ICAgICAgICAgLy8gRXF1aXZhbGVudCB0byAlWSAtICVtIC0gJWQKLSAgICAgICAgJyVoJzogJyVi
JywgICAgICAgICAgICAgICAgICAgICAgIC8vIEVxdWl2YWxlbnQgdG8gJWIKLSAgICAgICAgJyVy
JzogJyVJOiVNOiVTICVwJywgICAgICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB0aW1lIGlu
IGEubS4gYW5kIHAubS4gbm90YXRpb24KLSAgICAgICAgJyVSJzogJyVIOiVNJywgICAgICAgICAg
ICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB0aW1lIGluIDI0LWhvdXIgbm90YXRpb24KLSAg
ICAgICAgJyVUJzogJyVIOiVNOiVTJywgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRo
ZSB0aW1lCi0gICAgICAgICcleCc6ICclbS8lZC8leScsICAgICAgICAgICAgICAgICAvLyBSZXBs
YWNlZCBieSB0aGUgbG9jYWxlJ3MgYXBwcm9wcmlhdGUgZGF0ZSByZXByZXNlbnRhdGlvbgotICAg
ICAgICAnJVgnOiAnJUg6JU06JVMnLCAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhl
IGxvY2FsZSdzIGFwcHJvcHJpYXRlIGRhdGUgcmVwcmVzZW50YXRpb24KLSAgICAgIH07Ci0gICAg
ICBmb3IgKHZhciBydWxlIGluIEVYUEFOU0lPTl9SVUxFU18xKSB7Ci0gICAgICAgIHBhdHRlcm4g
PSBwYXR0ZXJuLnJlcGxhY2UobmV3IFJlZ0V4cChydWxlLCAnZycpLCBFWFBBTlNJT05fUlVMRVNf
MVtydWxlXSk7Ci0gICAgICB9Ci0gICAgICB2YXIgV0VFS0RBWVMgPSBbJ1N1bmRheScsICdNb25k
YXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5JywgJ1NhdHVy
ZGF5J107Ci0gICAgICB2YXIgTU9OVEhTID0gWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNo
JywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcics
ICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ107Ci0gICAgICB2YXIgbGVhZGluZ1Nv
bWV0aGluZyA9IGZ1bmN0aW9uKHZhbHVlLCBkaWdpdHMsIGNoYXJhY3RlcikgewotICAgICAgICB2
YXIgc3RyID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlLnRvU3RyaW5nKCkgOiAo
dmFsdWUgfHwgJycpOwotICAgICAgICB3aGlsZSAoc3RyLmxlbmd0aCA8IGRpZ2l0cykgewotICAg
ICAgICAgIHN0ciA9IGNoYXJhY3RlclswXStzdHI7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHN0cjsKLSAgICAgIH07Ci0gICAgICB2YXIgbGVhZGluZ051bGxzID0gZnVuY3Rpb24odmFsdWUs
IGRpZ2l0cykgewotICAgICAgICByZXR1cm4gbGVhZGluZ1NvbWV0aGluZyh2YWx1ZSwgZGlnaXRz
LCAnMCcpOwotICAgICAgfTsKLSAgICAgIHZhciBjb21wYXJlQnlEYXkgPSBmdW5jdGlvbihkYXRl
MSwgZGF0ZTIpIHsKLSAgICAgICAgdmFyIHNnbiA9IGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAg
ICAgcmV0dXJuIHZhbHVlIDwgMCA/IC0xIDogKHZhbHVlID4gMCA/IDEgOiAwKTsKLSAgICAgICAg
fTsKLSAgICAgICAgdmFyIGNvbXBhcmU7Ci0gICAgICAgIGlmICgoY29tcGFyZSA9IHNnbihkYXRl
MS5nZXRGdWxsWWVhcigpLWRhdGUyLmdldEZ1bGxZZWFyKCkpKSA9PT0gMCkgewotICAgICAgICAg
IGlmICgoY29tcGFyZSA9IHNnbihkYXRlMS5nZXRNb250aCgpLWRhdGUyLmdldE1vbnRoKCkpKSA9
PT0gMCkgewotICAgICAgICAgICAgY29tcGFyZSA9IHNnbihkYXRlMS5nZXREYXRlKCktZGF0ZTIu
Z2V0RGF0ZSgpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGNvbXBh
cmU7Ci0gICAgICB9OwotICAgICAgdmFyIGdldEZpcnN0V2Vla1N0YXJ0RGF0ZSA9IGZ1bmN0aW9u
KGphbkZvdXJ0aCkgewotICAgICAgICAgIHN3aXRjaCAoamFuRm91cnRoLmdldERheSgpKSB7Ci0g
ICAgICAgICAgICBjYXNlIDA6IC8vIFN1bmRheQotICAgICAgICAgICAgICByZXR1cm4gbmV3IERh
dGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwgMTEsIDI5KTsKLSAgICAgICAgICAgIGNhc2Ug
MTogLy8gTW9uZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBqYW5Gb3VydGg7Ci0gICAgICAgICAg
ICBjYXNlIDI6IC8vIFR1ZXNkYXkKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGphbkZv
dXJ0aC5nZXRGdWxsWWVhcigpLCAwLCAzKTsKLSAgICAgICAgICAgIGNhc2UgMzogLy8gV2VkbmVz
ZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIo
KSwgMCwgMik7Ci0gICAgICAgICAgICBjYXNlIDQ6IC8vIFRodXJzZGF5Ci0gICAgICAgICAgICAg
IHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKSwgMCwgMSk7Ci0gICAgICAg
ICAgICBjYXNlIDU6IC8vIEZyaWRheQotICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoamFu
Rm91cnRoLmdldEZ1bGxZZWFyKCktMSwgMTEsIDMxKTsKLSAgICAgICAgICAgIGNhc2UgNjogLy8g
U2F0dXJkYXkKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxs
WWVhcigpLTEsIDExLCAzMCk7Ci0gICAgICAgICAgfQotICAgICAgfTsKLSAgICAgIHZhciBnZXRX
ZWVrQmFzZWRZZWFyID0gZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHZhciB0aGlzRGF0ZSA9
IF9fYWRkRGF5cyhuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgMCwgMSksIGRhdGUudG1feWRh
eSk7Ci0gICAgICAgICAgdmFyIGphbkZvdXJ0aFRoaXNZZWFyID0gbmV3IERhdGUodGhpc0RhdGUu
Z2V0RnVsbFllYXIoKSwgMCwgNCk7Ci0gICAgICAgICAgdmFyIGphbkZvdXJ0aE5leHRZZWFyID0g
bmV3IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSsxLCAwLCA0KTsKLSAgICAgICAgICB2YXIg
Zmlyc3RXZWVrU3RhcnRUaGlzWWVhciA9IGdldEZpcnN0V2Vla1N0YXJ0RGF0ZShqYW5Gb3VydGhU
aGlzWWVhcik7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0TmV4dFllYXIgPSBnZXRGaXJz
dFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpOwotICAgICAgICAgIGlmIChjb21wYXJl
QnlEYXkoZmlyc3RXZWVrU3RhcnRUaGlzWWVhciwgdGhpc0RhdGUpIDw9IDApIHsKLSAgICAgICAg
ICAgIC8vIHRoaXMgZGF0ZSBpcyBhZnRlciB0aGUgc3RhcnQgb2YgdGhlIGZpcnN0IHdlZWsgb2Yg
dGhpcyB5ZWFyCi0gICAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGZpcnN0V2Vla1N0YXJ0TmV4
dFllYXIsIHRoaXNEYXRlKSA8PSAwKSB7Ci0gICAgICAgICAgICAgIHJldHVybiB0aGlzRGF0ZS5n
ZXRGdWxsWWVhcigpKzE7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXR1
cm4gdGhpc0RhdGUuZ2V0RnVsbFllYXIoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVs
c2UgeyAKLSAgICAgICAgICAgIHJldHVybiB0aGlzRGF0ZS5nZXRGdWxsWWVhcigpLTE7Ci0gICAg
ICAgICAgfQotICAgICAgfTsKLSAgICAgIHZhciBFWFBBTlNJT05fUlVMRVNfMiA9IHsKLSAgICAg
ICAgJyVhJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBXRUVLREFZU1tkYXRl
LnRtX3dkYXldLnN1YnN0cmluZygwLDMpOwotICAgICAgICB9LAotICAgICAgICAnJUEnOiBmdW5j
dGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIFdFRUtEQVlTW2RhdGUudG1fd2RheV07Ci0g
ICAgICAgIH0sCi0gICAgICAgICclYic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1
cm4gTU9OVEhTW2RhdGUudG1fbW9uXS5zdWJzdHJpbmcoMCwzKTsKLSAgICAgICAgfSwKLSAgICAg
ICAgJyVCJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBNT05USFNbZGF0ZS50
bV9tb25dOwotICAgICAgICB9LAotICAgICAgICAnJUMnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAg
ICAgICAgdmFyIHllYXIgPSBkYXRlLnRtX3llYXIrMTkwMDsKLSAgICAgICAgICByZXR1cm4gbGVh
ZGluZ051bGxzKE1hdGguZmxvb3IoeWVhci8xMDApLDIpOwotICAgICAgICB9LAotICAgICAgICAn
JWQnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRl
LnRtX21kYXksIDIpOwotICAgICAgICB9LAotICAgICAgICAnJWUnOiBmdW5jdGlvbihkYXRlKSB7
Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdTb21ldGhpbmcoZGF0ZS50bV9tZGF5LCAyLCAnICcp
OwotICAgICAgICB9LAotICAgICAgICAnJWcnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAg
Ly8gJWcsICVHLCBhbmQgJVYgZ2l2ZSB2YWx1ZXMgYWNjb3JkaW5nIHRvIHRoZSBJU08gODYwMToy
MDAwIHN0YW5kYXJkIHdlZWstYmFzZWQgeWVhci4gCi0gICAgICAgICAgLy8gSW4gdGhpcyBzeXN0
ZW0sIHdlZWtzIGJlZ2luIG9uIGEgTW9uZGF5IGFuZCB3ZWVrIDEgb2YgdGhlIHllYXIgaXMgdGhl
IHdlZWsgdGhhdCBpbmNsdWRlcyAKLSAgICAgICAgICAvLyBKYW51YXJ5IDR0aCwgd2hpY2ggaXMg
YWxzbyB0aGUgd2VlayB0aGF0IGluY2x1ZGVzIHRoZSBmaXJzdCBUaHVyc2RheSBvZiB0aGUgeWVh
ciwgYW5kIAotICAgICAgICAgIC8vIGlzIGFsc28gdGhlIGZpcnN0IHdlZWsgdGhhdCBjb250YWlu
cyBhdCBsZWFzdCBmb3VyIGRheXMgaW4gdGhlIHllYXIuIAotICAgICAgICAgIC8vIElmIHRoZSBm
aXJzdCBNb25kYXkgb2YgSmFudWFyeSBpcyB0aGUgMm5kLCAzcmQsIG9yIDR0aCwgdGhlIHByZWNl
ZGluZyBkYXlzIGFyZSBwYXJ0IG9mIAotICAgICAgICAgIC8vIHRoZSBsYXN0IHdlZWsgb2YgdGhl
IHByZWNlZGluZyB5ZWFyOyB0aHVzLCBmb3IgU2F0dXJkYXkgMm5kIEphbnVhcnkgMTk5OSwgCi0g
ICAgICAgICAgLy8gJUcgaXMgcmVwbGFjZWQgYnkgMTk5OCBhbmQgJVYgaXMgcmVwbGFjZWQgYnkg
NTMuIElmIERlY2VtYmVyIDI5dGgsIDMwdGgsIAotICAgICAgICAgIC8vIG9yIDMxc3QgaXMgYSBN
b25kYXksIGl0IGFuZCBhbnkgZm9sbG93aW5nIGRheXMgYXJlIHBhcnQgb2Ygd2VlayAxIG9mIHRo
ZSBmb2xsb3dpbmcgeWVhci4gCi0gICAgICAgICAgLy8gVGh1cywgZm9yIFR1ZXNkYXkgMzB0aCBE
ZWNlbWJlciAxOTk3LCAlRyBpcyByZXBsYWNlZCBieSAxOTk4IGFuZCAlViBpcyByZXBsYWNlZCBi
eSAwMS4KLSAgICAgICAgICByZXR1cm4gZ2V0V2Vla0Jhc2VkWWVhcihkYXRlKS50b1N0cmluZygp
LnN1YnN0cmluZygyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVHJzogZnVuY3Rpb24oZGF0ZSkg
ewotICAgICAgICAgIHJldHVybiBnZXRXZWVrQmFzZWRZZWFyKGRhdGUpOwotICAgICAgICB9LAot
ICAgICAgICAnJUgnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdO
dWxscyhkYXRlLnRtX2hvdXIsIDIpOwotICAgICAgICB9LAotICAgICAgICAnJUknOiBmdW5jdGlv
bihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRlLnRtX2hvdXIgPCAx
MyA/IGRhdGUudG1faG91ciA6IGRhdGUudG1faG91ci0xMiwgMik7Ci0gICAgICAgIH0sCi0gICAg
ICAgICclaic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBEYXkgb2YgdGhlIHllYXIg
KDAwMS0zNjYpCi0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRlLnRtX21kYXkrX19h
cnJheVN1bShfX2lzTGVhcFllYXIoZGF0ZS50bV95ZWFyKzE5MDApID8gX19NT05USF9EQVlTX0xF
QVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZGF0ZS50bV9tb24tMSksIDMpOwotICAgICAgICB9
LAotICAgICAgICAnJW0nOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRp
bmdOdWxscyhkYXRlLnRtX21vbisxLCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVNJzogZnVu
Y3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0ZS50bV9taW4s
IDIpOwotICAgICAgICB9LAotICAgICAgICAnJW4nOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICBy
ZXR1cm4gJ1xuJzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVwJzogZnVuY3Rpb24oZGF0ZSkgewot
ICAgICAgICAgIGlmIChkYXRlLnRtX2hvdXIgPiAwICYmIGRhdGUudG1faG91ciA8IDEzKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gJ0FNJzsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
cmV0dXJuICdQTSc7Ci0gICAgICAgICAgfQotICAgICAgICB9LAotICAgICAgICAnJVMnOiBmdW5j
dGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRlLnRtX3NlYywg
Mik7Ci0gICAgICAgIH0sCi0gICAgICAgICcldCc6IGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJl
dHVybiAnXHQnOwotICAgICAgICB9LAotICAgICAgICAnJXUnOiBmdW5jdGlvbihkYXRlKSB7Ci0g
ICAgICAgICAgdmFyIGRheSA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCBkYXRlLnRtX21v
bisxLCBkYXRlLnRtX21kYXksIDAsIDAsIDAsIDApOwotICAgICAgICAgIHJldHVybiBkYXkuZ2V0
RGF5KCkgfHwgNzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVVJzogZnVuY3Rpb24oZGF0ZSkgewot
ICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVrIG51bWJlciBvZiB0aGUgeWVhciBhcyBh
IGRlY2ltYWwgbnVtYmVyIFswMCw1M10uIAotICAgICAgICAgIC8vIFRoZSBmaXJzdCBTdW5kYXkg
b2YgSmFudWFyeSBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgMTsgCi0gICAgICAgICAgLy8gZGF5
cyBpbiB0aGUgbmV3IHllYXIgYmVmb3JlIHRoaXMgYXJlIGluIHdlZWsgMC4gWyB0bV95ZWFyLCB0
bV93ZGF5LCB0bV95ZGF5XQotICAgICAgICAgIHZhciBqYW5GaXJzdCA9IG5ldyBEYXRlKGRhdGUu
dG1feWVhcisxOTAwLCAwLCAxKTsKLSAgICAgICAgICB2YXIgZmlyc3RTdW5kYXkgPSBqYW5GaXJz
dC5nZXREYXkoKSA9PT0gMCA/IGphbkZpcnN0IDogX19hZGREYXlzKGphbkZpcnN0LCA3LWphbkZp
cnN0LmdldERheSgpKTsKLSAgICAgICAgICB2YXIgZW5kRGF0ZSA9IG5ldyBEYXRlKGRhdGUudG1f
eWVhcisxOTAwLCBkYXRlLnRtX21vbiwgZGF0ZS50bV9tZGF5KTsKLSAgICAgICAgICAvLyBpcyB0
YXJnZXQgZGF0ZSBhZnRlciB0aGUgZmlyc3QgU3VuZGF5PwotICAgICAgICAgIGlmIChjb21wYXJl
QnlEYXkoZmlyc3RTdW5kYXksIGVuZERhdGUpIDwgMCkgewotICAgICAgICAgICAgLy8gY2FsY3Vs
YXRlIGRpZmZlcmVuY2UgaW4gZGF5cyBiZXR3ZWVuIGZpcnN0IFN1bmRheSBhbmQgZW5kRGF0ZQot
ICAgICAgICAgICAgdmFyIGZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRoID0gX19hcnJheVN1bShf
X2lzTGVhcFllYXIoZW5kRGF0ZS5nZXRGdWxsWWVhcigpKSA/IF9fTU9OVEhfREFZU19MRUFQIDog
X19NT05USF9EQVlTX1JFR1VMQVIsIGVuZERhdGUuZ2V0TW9udGgoKS0xKS0zMTsKLSAgICAgICAg
ICAgIHZhciBmaXJzdFN1bmRheVVudGlsRW5kSmFudWFyeSA9IDMxLWZpcnN0U3VuZGF5LmdldERh
dGUoKTsKLSAgICAgICAgICAgIHZhciBkYXlzID0gZmlyc3RTdW5kYXlVbnRpbEVuZEphbnVhcnkr
ZmVicnVhcnlGaXJzdFVudGlsRW5kTW9udGgrZW5kRGF0ZS5nZXREYXRlKCk7Ci0gICAgICAgICAg
ICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguY2VpbChkYXlzLzcpLCAyKTsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgcmV0dXJuIGNvbXBhcmVCeURheShmaXJzdFN1bmRheSwgamFuRmlyc3QpID09
PSAwID8gJzAxJzogJzAwJzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVWJzogZnVuY3Rpb24oZGF0
ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVrIG51bWJlciBvZiB0aGUgeWVh
ciAoTW9uZGF5IGFzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWspIAotICAgICAgICAgIC8vIGFz
IGEgZGVjaW1hbCBudW1iZXIgWzAxLDUzXS4gSWYgdGhlIHdlZWsgY29udGFpbmluZyAxIEphbnVh
cnkgaGFzIGZvdXIgCi0gICAgICAgICAgLy8gb3IgbW9yZSBkYXlzIGluIHRoZSBuZXcgeWVhciwg
dGhlbiBpdCBpcyBjb25zaWRlcmVkIHdlZWsgMS4gCi0gICAgICAgICAgLy8gT3RoZXJ3aXNlLCBp
dCBpcyB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmV2aW91cyB5ZWFyLCBhbmQgdGhlIG5leHQgd2Vl
ayBpcyB3ZWVrIDEuIAotICAgICAgICAgIC8vIEJvdGggSmFudWFyeSA0dGggYW5kIHRoZSBmaXJz
dCBUaHVyc2RheSBvZiBKYW51YXJ5IGFyZSBhbHdheXMgaW4gd2VlayAxLiBbIHRtX3llYXIsIHRt
X3dkYXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZvdXJ0aFRoaXNZZWFyID0gbmV3IERh
dGUoZGF0ZS50bV95ZWFyKzE5MDAsIDAsIDQpOwotICAgICAgICAgIHZhciBqYW5Gb3VydGhOZXh0
WWVhciA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAxLCAwLCA0KTsKLSAgICAgICAgICB2YXIg
Zmlyc3RXZWVrU3RhcnRUaGlzWWVhciA9IGdldEZpcnN0V2Vla1N0YXJ0RGF0ZShqYW5Gb3VydGhU
aGlzWWVhcik7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0TmV4dFllYXIgPSBnZXRGaXJz
dFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpOwotICAgICAgICAgIHZhciBlbmREYXRl
ID0gX19hZGREYXlzKG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCAwLCAxKSwgZGF0ZS50bV95
ZGF5KTsKLSAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGVuZERhdGUsIGZpcnN0V2Vla1N0YXJ0
VGhpc1llYXIpIDwgMCkgewotICAgICAgICAgICAgLy8gaWYgZ2l2ZW4gZGF0ZSBpcyBiZWZvcmUg
dGhpcyB5ZWFycyBmaXJzdCB3ZWVrLCB0aGVuIGl0IGJlbG9uZ3MgdG8gdGhlIDUzcmQgd2VlayBv
ZiBsYXN0IHllYXIKLSAgICAgICAgICAgIHJldHVybiAnNTMnOwotICAgICAgICAgIH0gCi0gICAg
ICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdFdlZWtTdGFydE5leHRZZWFyLCBlbmREYXRlKSA8
PSAwKSB7Ci0gICAgICAgICAgICAvLyBpZiBnaXZlbiBkYXRlIGlzIGFmdGVyIG5leHQgeWVhcnMg
Zmlyc3Qgd2VlaywgdGhlbiBpdCBiZWxvbmdzIHRvIHRoZSAwMXRoIHdlZWsgb2YgbmV4dCB5ZWFy
Ci0gICAgICAgICAgICByZXR1cm4gJzAxJzsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gZ2l2
ZW4gZGF0ZSBpcyBpbiBiZXR3ZWVuIENXIDAxLi41MyBvZiB0aGlzIGNhbGVuZGFyIHllYXIKLSAg
ICAgICAgICB2YXIgZGF5c0RpZmZlcmVuY2U7Ci0gICAgICAgICAgaWYgKGZpcnN0V2Vla1N0YXJ0
VGhpc1llYXIuZ2V0RnVsbFllYXIoKSA8IGRhdGUudG1feWVhcisxOTAwKSB7Ci0gICAgICAgICAg
ICAvLyBmaXJzdCBDVyBvZiB0aGlzIHllYXIgc3RhcnRzIGxhc3QgeWVhcgotICAgICAgICAgICAg
ZGF5c0RpZmZlcmVuY2UgPSBkYXRlLnRtX3lkYXkrMzItZmlyc3RXZWVrU3RhcnRUaGlzWWVhci5n
ZXREYXRlKCkKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gZmlyc3QgQ1cgb2Yg
dGhpcyB5ZWFyIHN0YXJ0cyB0aGlzIHllYXIKLSAgICAgICAgICAgIGRheXNEaWZmZXJlbmNlID0g
ZGF0ZS50bV95ZGF5KzEtZmlyc3RXZWVrU3RhcnRUaGlzWWVhci5nZXREYXRlKCk7Ci0gICAgICAg
ICAgfQotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5jZWlsKGRheXNEaWZmZXJl
bmNlLzcpLCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyV3JzogZnVuY3Rpb24oZGF0ZSkgewot
ICAgICAgICAgIHZhciBkYXkgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgZGF0ZS50bV9t
b24rMSwgZGF0ZS50bV9tZGF5LCAwLCAwLCAwLCAwKTsKLSAgICAgICAgICByZXR1cm4gZGF5Lmdl
dERheSgpOwotICAgICAgICB9LAotICAgICAgICAnJVcnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAg
ICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHdlZWsgbnVtYmVyIG9mIHRoZSB5ZWFyIGFzIGEgZGVj
aW1hbCBudW1iZXIgWzAwLDUzXS4gCi0gICAgICAgICAgLy8gVGhlIGZpcnN0IE1vbmRheSBvZiBK
YW51YXJ5IGlzIHRoZSBmaXJzdCBkYXkgb2Ygd2VlayAxOyAKLSAgICAgICAgICAvLyBkYXlzIGlu
IHRoZSBuZXcgeWVhciBiZWZvcmUgdGhpcyBhcmUgaW4gd2VlayAwLiBbIHRtX3llYXIsIHRtX3dk
YXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZpcnN0ID0gbmV3IERhdGUoZGF0ZS50bV95
ZWFyLCAwLCAxKTsKLSAgICAgICAgICB2YXIgZmlyc3RNb25kYXkgPSBqYW5GaXJzdC5nZXREYXko
KSA9PT0gMSA/IGphbkZpcnN0IDogX19hZGREYXlzKGphbkZpcnN0LCBqYW5GaXJzdC5nZXREYXko
KSA9PT0gMCA/IDEgOiA3LWphbkZpcnN0LmdldERheSgpKzEpOwotICAgICAgICAgIHZhciBlbmRE
YXRlID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIGRhdGUudG1fbW9uLCBkYXRlLnRtX21k
YXkpOwotICAgICAgICAgIC8vIGlzIHRhcmdldCBkYXRlIGFmdGVyIHRoZSBmaXJzdCBNb25kYXk/
Ci0gICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdE1vbmRheSwgZW5kRGF0ZSkgPCAwKSB7
Ci0gICAgICAgICAgICB2YXIgZmVicnVhcnlGaXJzdFVudGlsRW5kTW9udGggPSBfX2FycmF5U3Vt
KF9faXNMZWFwWWVhcihlbmREYXRlLmdldEZ1bGxZZWFyKCkpID8gX19NT05USF9EQVlTX0xFQVAg
OiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZW5kRGF0ZS5nZXRNb250aCgpLTEpLTMxOwotICAgICAg
ICAgICAgdmFyIGZpcnN0TW9uZGF5VW50aWxFbmRKYW51YXJ5ID0gMzEtZmlyc3RNb25kYXkuZ2V0
RGF0ZSgpOwotICAgICAgICAgICAgdmFyIGRheXMgPSBmaXJzdE1vbmRheVVudGlsRW5kSmFudWFy
eStmZWJydWFyeUZpcnN0VW50aWxFbmRNb250aCtlbmREYXRlLmdldERhdGUoKTsKLSAgICAgICAg
ICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5jZWlsKGRheXMvNyksIDIpOwotICAgICAgICAg
IH0KLSAgICAgICAgICByZXR1cm4gY29tcGFyZUJ5RGF5KGZpcnN0TW9uZGF5LCBqYW5GaXJzdCkg
PT09IDAgPyAnMDEnOiAnMDAnOwotICAgICAgICB9LAotICAgICAgICAnJXknOiBmdW5jdGlvbihk
YXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIGxhc3QgdHdvIGRpZ2l0cyBvZiB0
aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw5OV0uIFsgdG1feWVhcl0KLSAgICAgICAg
ICByZXR1cm4gKGRhdGUudG1feWVhcisxOTAwKS50b1N0cmluZygpLnN1YnN0cmluZygyKTsKLSAg
ICAgICAgfSwKLSAgICAgICAgJyVZJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJl
cGxhY2VkIGJ5IHRoZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgKGZvciBleGFtcGxlLCAxOTk3
KS4gWyB0bV95ZWFyXQotICAgICAgICAgIHJldHVybiBkYXRlLnRtX3llYXIrMTkwMDsKLSAgICAg
ICAgfSwKLSAgICAgICAgJyV6JzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxh
Y2VkIGJ5IHRoZSBvZmZzZXQgZnJvbSBVVEMgaW4gdGhlIElTTyA4NjAxOjIwMDAgc3RhbmRhcmQg
Zm9ybWF0ICggK2hobW0gb3IgLWhobW0gKSwKLSAgICAgICAgICAvLyBvciBieSBubyBjaGFyYWN0
ZXJzIGlmIG5vIHRpbWV6b25lIGlzIGRldGVybWluYWJsZS4gCi0gICAgICAgICAgLy8gRm9yIGV4
YW1wbGUsICItMDQzMCIgbWVhbnMgNCBob3VycyAzMCBtaW51dGVzIGJlaGluZCBVVEMgKHdlc3Qg
b2YgR3JlZW53aWNoKS4gCi0gICAgICAgICAgLy8gSWYgdG1faXNkc3QgaXMgemVybywgdGhlIHN0
YW5kYXJkIHRpbWUgb2Zmc2V0IGlzIHVzZWQuIAotICAgICAgICAgIC8vIElmIHRtX2lzZHN0IGlz
IGdyZWF0ZXIgdGhhbiB6ZXJvLCB0aGUgZGF5bGlnaHQgc2F2aW5ncyB0aW1lIG9mZnNldCBpcyB1
c2VkLiAKLSAgICAgICAgICAvLyBJZiB0bV9pc2RzdCBpcyBuZWdhdGl2ZSwgbm8gY2hhcmFjdGVy
cyBhcmUgcmV0dXJuZWQuIAotICAgICAgICAgIC8vIEZJWE1FOiB3ZSBjYW5ub3QgZGV0ZXJtaW5l
IHRpbWUgem9uZSAob3IgY2FuIHdlPykKLSAgICAgICAgICByZXR1cm4gJyc7Ci0gICAgICAgIH0s
Ci0gICAgICAgICclWic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBi
eSB0aGUgdGltZXpvbmUgbmFtZSBvciBhYmJyZXZpYXRpb24sIG9yIGJ5IG5vIGJ5dGVzIGlmIG5v
IHRpbWV6b25lIGluZm9ybWF0aW9uIGV4aXN0cy4gWyB0bV9pc2RzdF0KLSAgICAgICAgICAvLyBG
SVhNRTogd2UgY2Fubm90IGRldGVybWluZSB0aW1lIHpvbmUgKG9yIGNhbiB3ZT8pCi0gICAgICAg
ICAgcmV0dXJuICcnOwotICAgICAgICB9LAotICAgICAgICAnJSUnOiBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICByZXR1cm4gJyUnOwotICAgICAgICB9Ci0gICAgICB9OwotICAgICAgZm9yICh2YXIg
cnVsZSBpbiBFWFBBTlNJT05fUlVMRVNfMikgewotICAgICAgICBpZiAocGF0dGVybi5pbmRleE9m
KHJ1bGUpID49IDApIHsKLSAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKG5ldyBS
ZWdFeHAocnVsZSwgJ2cnKSwgRVhQQU5TSU9OX1JVTEVTXzJbcnVsZV0oZGF0ZSkpOwotICAgICAg
ICB9Ci0gICAgICB9Ci0gICAgICB2YXIgYnl0ZXMgPSBpbnRBcnJheUZyb21TdHJpbmcocGF0dGVy
biwgZmFsc2UpOwotICAgICAgaWYgKGJ5dGVzLmxlbmd0aCA+IG1heHNpemUpIHsKLSAgICAgICAg
cmV0dXJuIDA7Ci0gICAgICB9IAotICAgICAgd3JpdGVBcnJheVRvTWVtb3J5KGJ5dGVzLCBzKTsK
LSAgICAgIHJldHVybiBieXRlcy5sZW5ndGgtMTsKLSAgICB9dmFyIF9zdHJmdGltZV9sPV9zdHJm
dGltZTsKLSAgZnVuY3Rpb24gX2lzc3BhY2UoY2hyKSB7Ci0gICAgICByZXR1cm4gKGNociA9PSAz
MikgfHwgKGNociA+PSA5ICYmIGNociA8PSAxMyk7Ci0gICAgfQotICBmdW5jdGlvbiBfX3BhcnNl
SW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsIG1pbiwgbWF4LCB1bnNpZ24pIHsKLSAgICAgIHZhciBp
c05lZ2F0aXZlID0gZmFsc2U7Ci0gICAgICAvLyBTa2lwIHNwYWNlLgotICAgICAgd2hpbGUgKF9p
c3NwYWNlKEhFQVA4WyhzdHIpXSkpIHN0cisrOwotICAgICAgLy8gQ2hlY2sgZm9yIGEgcGx1cy9t
aW51cyBzaWduLgotICAgICAgaWYgKEhFQVA4WyhzdHIpXSA9PSA0NSkgewotICAgICAgICBzdHIr
KzsKLSAgICAgICAgaXNOZWdhdGl2ZSA9IHRydWU7Ci0gICAgICB9IGVsc2UgaWYgKEhFQVA4Wyhz
dHIpXSA9PSA0MykgewotICAgICAgICBzdHIrKzsKLSAgICAgIH0KLSAgICAgIC8vIEZpbmQgYmFz
ZS4KLSAgICAgIHZhciBvayA9IGZhbHNlOwotICAgICAgdmFyIGZpbmFsQmFzZSA9IGJhc2U7Ci0g
ICAgICBpZiAoIWZpbmFsQmFzZSkgewotICAgICAgICBpZiAoSEVBUDhbKHN0cildID09IDQ4KSB7
Ci0gICAgICAgICAgaWYgKEhFQVA4Wygoc3RyKzEpfDApXSA9PSAxMjAgfHwKLSAgICAgICAgICAg
ICAgSEVBUDhbKChzdHIrMSl8MCldID09IDg4KSB7Ci0gICAgICAgICAgICBmaW5hbEJhc2UgPSAx
NjsKLSAgICAgICAgICAgIHN0ciArPSAyOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBmaW5hbEJhc2UgPSA4OwotICAgICAgICAgICAgb2sgPSB0cnVlOyAvLyB3ZSBzYXcgYW4gaW5p
dGlhbCB6ZXJvLCBwZXJoYXBzIHRoZSBlbnRpcmUgdGhpbmcgaXMganVzdCAiMCIKLSAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoZmluYWxCYXNlPT0xNikgewotICAgICAg
ICBpZiAoSEVBUDhbKHN0cildID09IDQ4KSB7Ci0gICAgICAgICAgaWYgKEhFQVA4Wygoc3RyKzEp
fDApXSA9PSAxMjAgfHwKLSAgICAgICAgICAgICAgSEVBUDhbKChzdHIrMSl8MCldID09IDg4KSB7
Ci0gICAgICAgICAgICBzdHIgKz0gMjsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0K
LSAgICAgIGlmICghZmluYWxCYXNlKSBmaW5hbEJhc2UgPSAxMDsKLSAgICAgIHN0YXJ0ID0gc3Ry
OwotICAgICAgLy8gR2V0IGRpZ2l0cy4KLSAgICAgIHZhciBjaHI7Ci0gICAgICB3aGlsZSAoKGNo
ciA9IEhFQVA4WyhzdHIpXSkgIT0gMCkgewotICAgICAgICB2YXIgZGlnaXQgPSBwYXJzZUludChT
dHJpbmcuZnJvbUNoYXJDb2RlKGNociksIGZpbmFsQmFzZSk7Ci0gICAgICAgIGlmIChpc05hTihk
aWdpdCkpIHsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBz
dHIrKzsKLSAgICAgICAgICBvayA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlm
ICghb2spIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAg
ICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKDApLDApfDApOwotICAgICAgfQotICAgICAg
Ly8gU2V0IGVuZCBwb2ludGVyLgotICAgICAgaWYgKGVuZHB0cikgewotICAgICAgICBIRUFQMzJb
KChlbmRwdHIpPj4yKV09c3RyCi0gICAgICB9Ci0gICAgICB0cnkgewotICAgICAgICB2YXIgbnVt
YmVyU3RyaW5nID0gaXNOZWdhdGl2ZSA/ICctJytQb2ludGVyX3N0cmluZ2lmeShzdGFydCwgc3Ry
IC0gc3RhcnQpIDogUG9pbnRlcl9zdHJpbmdpZnkoc3RhcnQsIHN0ciAtIHN0YXJ0KTsKLSAgICAg
ICAgaTY0TWF0aC5mcm9tU3RyaW5nKG51bWJlclN0cmluZywgZmluYWxCYXNlLCBtaW4sIG1heCwg
dW5zaWduKTsKLSAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19D
T0RFUy5FUkFOR0UpOyAvLyBub3QgcXVpdGUgY29ycmVjdAotICAgICAgfQotICAgICAgcmV0dXJu
ICgoYXNtWyJzZXRUZW1wUmV0MCJdKCgoSEVBUDMyWygoKHRlbXBEb3VibGVQdHIpKyg0KSk+PjIp
XSl8MCkpLCgoSEVBUDMyWygodGVtcERvdWJsZVB0cik+PjIpXSl8MCkpfDApOwotICAgIH1mdW5j
dGlvbiBfc3RydG91bGwoc3RyLCBlbmRwdHIsIGJhc2UpIHsKLSAgICAgIHJldHVybiBfX3BhcnNl
SW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsIDAsICcxODQ0Njc0NDA3MzcwOTU1MTYxNScsIHRydWUp
OyAgLy8gVUxPTkdfTUFYLgotICAgIH12YXIgX3N0cnRvdWxsX2w9X3N0cnRvdWxsOwotICBmdW5j
dGlvbiBfc3RydG9sbChzdHIsIGVuZHB0ciwgYmFzZSkgewotICAgICAgcmV0dXJuIF9fcGFyc2VJ
bnQ2NChzdHIsIGVuZHB0ciwgYmFzZSwgJy05MjIzMzcyMDM2ODU0Nzc1ODA4JywgJzkyMjMzNzIw
MzY4NTQ3NzU4MDcnKTsgIC8vIExMT05HX01JTiwgTExPTkdfTUFYLgotICAgIH12YXIgX3N0cnRv
bGxfbD1fc3RydG9sbDsKLSAgZnVuY3Rpb24gX3VzZWxvY2FsZShsb2NhbGUpIHsKLSAgICAgIHJl
dHVybiAwOwotICAgIH0KLSAgZnVuY3Rpb24gX19fbG9jYWxlX21iX2N1cl9tYXgoKSB7IHRocm93
ICdfX2xvY2FsZV9tYl9jdXJfbWF4IG5vdCBpbXBsZW1lbnRlZCcgfQotICB2YXIgX2xsdm1fdmFf
c3RhcnQ9dW5kZWZpbmVkOwotICBmdW5jdGlvbiBfc3ByaW50ZihzLCBmb3JtYXQsIHZhcmFyZ3Mp
IHsKLSAgICAgIC8vIGludCBzcHJpbnRmKGNoYXIgKnJlc3RyaWN0IHMsIGNvbnN0IGNoYXIgKnJl
c3RyaWN0IGZvcm1hdCwgLi4uKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcv
b25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3ByaW50Zi5odG1sCi0gICAgICByZXR1cm4g
X3NucHJpbnRmKHMsIHVuZGVmaW5lZCwgZm9ybWF0LCB2YXJhcmdzKTsKLSAgICB9ZnVuY3Rpb24g
X2FzcHJpbnRmKHMsIGZvcm1hdCwgdmFyYXJncykgewotICAgICAgcmV0dXJuIF9zcHJpbnRmKC1z
LCBmb3JtYXQsIHZhcmFyZ3MpOwotICAgIH1mdW5jdGlvbiBfdmFzcHJpbnRmKHMsIGZvcm1hdCwg
dmFfYXJnKSB7Ci0gICAgICByZXR1cm4gX2FzcHJpbnRmKHMsIGZvcm1hdCwgSEVBUDMyWygodmFf
YXJnKT4+MildKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9sbHZtX3ZhX2VuZCgpIHt9Ci0gIGZ1bmN0
aW9uIF92c25wcmludGYocywgbiwgZm9ybWF0LCB2YV9hcmcpIHsKLSAgICAgIHJldHVybiBfc25w
cmludGYocywgbiwgZm9ybWF0LCBIRUFQMzJbKCh2YV9hcmcpPj4yKV0pOwotICAgIH0KLSAgZnVu
Y3Rpb24gX3Zzc2NhbmYocywgZm9ybWF0LCB2YV9hcmcpIHsKLSAgICAgIHJldHVybiBfc3NjYW5m
KHMsIGZvcm1hdCwgSEVBUDMyWygodmFfYXJnKT4+MildKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9z
YnJrKGJ5dGVzKSB7Ci0gICAgICAvLyBJbXBsZW1lbnQgYSBMaW51eC1saWtlICdtZW1vcnkgYXJl
YScgZm9yIG91ciAncHJvY2VzcycuCi0gICAgICAvLyBDaGFuZ2VzIHRoZSBzaXplIG9mIHRoZSBt
ZW1vcnkgYXJlYSBieSB8Ynl0ZXN8OyByZXR1cm5zIHRoZQotICAgICAgLy8gYWRkcmVzcyBvZiB0
aGUgcHJldmlvdXMgdG9wICgnYnJlYWsnKSBvZiB0aGUgbWVtb3J5IGFyZWEKLSAgICAgIC8vIFdl
IGNvbnRyb2wgdGhlICJkeW5hbWljIiBtZW1vcnkgLSBEWU5BTUlDX0JBU0UgdG8gRFlOQU1JQ1RP
UAotICAgICAgdmFyIHNlbGYgPSBfc2JyazsKLSAgICAgIGlmICghc2VsZi5jYWxsZWQpIHsKLSAg
ICAgICAgRFlOQU1JQ1RPUCA9IGFsaWduTWVtb3J5UGFnZShEWU5BTUlDVE9QKTsgLy8gbWFrZSBz
dXJlIHdlIHN0YXJ0IG91dCBhbGlnbmVkCi0gICAgICAgIHNlbGYuY2FsbGVkID0gdHJ1ZTsKLSAg
ICAgICAgYXNzZXJ0KFJ1bnRpbWUuZHluYW1pY0FsbG9jKTsKLSAgICAgICAgc2VsZi5hbGxvYyA9
IFJ1bnRpbWUuZHluYW1pY0FsbG9jOwotICAgICAgICBSdW50aW1lLmR5bmFtaWNBbGxvYyA9IGZ1
bmN0aW9uKCkgeyBhYm9ydCgnY2Fubm90IGR5bmFtaWNhbGx5IGFsbG9jYXRlLCBzYnJrIG5vdyBo
YXMgY29udHJvbCcpIH07Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0ID0gRFlOQU1JQ1RPUDsKLSAg
ICAgIGlmIChieXRlcyAhPSAwKSBzZWxmLmFsbG9jKGJ5dGVzKTsKLSAgICAgIHJldHVybiByZXQ7
ICAvLyBQcmV2aW91cyBicmVhayBsb2NhdGlvbi4KLSAgICB9Ci0gIGZ1bmN0aW9uIF90aW1lKHB0
cikgewotICAgICAgdmFyIHJldCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKS8xMDAwKTsKLSAgICAg
IGlmIChwdHIpIHsKLSAgICAgICAgSEVBUDMyWygocHRyKT4+MildPXJldAotICAgICAgfQotICAg
ICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4YV9jYWxsX3VuZXhwZWN0ZWQo
ZXhjZXB0aW9uKSB7Ci0gICAgICBNb2R1bGUucHJpbnRFcnIoJ1VuZXhwZWN0ZWQgZXhjZXB0aW9u
IHRocm93biwgdGhpcyBpcyBub3QgcHJvcGVybHkgc3VwcG9ydGVkIC0gYWJvcnRpbmcnKTsKLSAg
ICAgIEFCT1JUID0gdHJ1ZTsKLSAgICAgIHRocm93IGV4Y2VwdGlvbjsKLSAgICB9Ci0gIHZhciBC
cm93c2VyPXttYWluTG9vcDp7c2NoZWR1bGVyOm51bGwsc2hvdWxkUGF1c2U6ZmFsc2UscGF1c2Vk
OmZhbHNlLHF1ZXVlOltdLHBhdXNlOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBCcm93c2VyLm1h
aW5Mb29wLnNob3VsZFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgfSxyZXN1bWU6ZnVuY3Rpb24gKCkg
ewotICAgICAgICAgIGlmIChCcm93c2VyLm1haW5Mb29wLnBhdXNlZCkgewotICAgICAgICAgICAg
QnJvd3Nlci5tYWluTG9vcC5wYXVzZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIEJyb3dzZXIubWFp
bkxvb3Auc2NoZWR1bGVyKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIEJyb3dzZXIubWFpbkxv
b3Auc2hvdWxkUGF1c2UgPSBmYWxzZTsKLSAgICAgICAgfSx1cGRhdGVTdGF0dXM6ZnVuY3Rpb24g
KCkgewotICAgICAgICAgIGlmIChNb2R1bGVbJ3NldFN0YXR1cyddKSB7Ci0gICAgICAgICAgICB2
YXIgbWVzc2FnZSA9IE1vZHVsZVsnc3RhdHVzTWVzc2FnZSddIHx8ICdQbGVhc2Ugd2FpdC4uLic7
Ci0gICAgICAgICAgICB2YXIgcmVtYWluaW5nID0gQnJvd3Nlci5tYWluTG9vcC5yZW1haW5pbmdC
bG9ja2VyczsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IEJyb3dzZXIubWFpbkxvb3AuZXhw
ZWN0ZWRCbG9ja2VyczsKLSAgICAgICAgICAgIGlmIChyZW1haW5pbmcpIHsKLSAgICAgICAgICAg
ICAgaWYgKHJlbWFpbmluZyA8IGV4cGVjdGVkKSB7Ci0gICAgICAgICAgICAgICAgTW9kdWxlWydz
ZXRTdGF0dXMnXShtZXNzYWdlICsgJyAoJyArIChleHBlY3RlZCAtIHJlbWFpbmluZykgKyAnLycg
KyBleHBlY3RlZCArICcpJyk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgTW9kdWxlWydzZXRTdGF0dXMnXShtZXNzYWdlKTsKLSAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXSgnJyk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9fSxpc0Z1bGxTY3JlZW46ZmFsc2Us
cG9pbnRlckxvY2s6ZmFsc2UsbW9kdWxlQ29udGV4dENyZWF0ZWRDYWxsYmFja3M6W10sd29ya2Vy
czpbXSxpbml0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgaWYgKCFNb2R1bGVbInByZWxvYWRQbHVn
aW5zIl0pIE1vZHVsZVsicHJlbG9hZFBsdWdpbnMiXSA9IFtdOyAvLyBuZWVkcyB0byBleGlzdCBl
dmVuIGluIHdvcmtlcnMKLSAgICAgICAgaWYgKEJyb3dzZXIuaW5pdHRlZCB8fCBFTlZJUk9OTUVO
VF9JU19XT1JLRVIpIHJldHVybjsKLSAgICAgICAgQnJvd3Nlci5pbml0dGVkID0gdHJ1ZTsKLSAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICBuZXcgQmxvYigpOwotICAgICAgICAgIEJyb3dzZXIuaGFz
QmxvYkNvbnN0cnVjdG9yID0gdHJ1ZTsKLSAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAg
QnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPSBmYWxzZTsKLSAgICAgICAgICBjb25zb2xlLmxv
Zygid2FybmluZzogbm8gYmxvYiBjb25zdHJ1Y3RvciwgY2Fubm90IGNyZWF0ZSBibG9icyB3aXRo
IG1pbWV0eXBlcyIpOwotICAgICAgICB9Ci0gICAgICAgIEJyb3dzZXIuQmxvYkJ1aWxkZXIgPSB0
eXBlb2YgTW96QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIgPyBNb3pCbG9iQnVpbGRlciA6ICh0
eXBlb2YgV2ViS2l0QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIgPyBXZWJLaXRCbG9iQnVpbGRl
ciA6ICghQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPyBjb25zb2xlLmxvZygid2FybmluZzog
bm8gQmxvYkJ1aWxkZXIiKSA6IG51bGwpKTsKLSAgICAgICAgQnJvd3Nlci5VUkxPYmplY3QgPSB0
eXBlb2Ygd2luZG93ICE9ICJ1bmRlZmluZWQiID8gKHdpbmRvdy5VUkwgPyB3aW5kb3cuVVJMIDog
d2luZG93LndlYmtpdFVSTCkgOiB1bmRlZmluZWQ7Ci0gICAgICAgIGlmICghTW9kdWxlLm5vSW1h
Z2VEZWNvZGluZyAmJiB0eXBlb2YgQnJvd3Nlci5VUkxPYmplY3QgPT09ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgICAgY29uc29sZS5sb2coIndhcm5pbmc6IEJyb3dzZXIgZG9lcyBub3Qgc3VwcG9y
dCBjcmVhdGluZyBvYmplY3QgVVJMcy4gQnVpbHQtaW4gYnJvd3NlciBpbWFnZSBkZWNvZGluZyB3
aWxsIG5vdCBiZSBhdmFpbGFibGUuIik7Ci0gICAgICAgICAgTW9kdWxlLm5vSW1hZ2VEZWNvZGlu
ZyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gU3VwcG9ydCBmb3IgcGx1Z2lucyB0aGF0
IGNhbiBwcm9jZXNzIHByZWxvYWRlZCBmaWxlcy4gWW91IGNhbiBhZGQgbW9yZSBvZiB0aGVzZSB0
bwotICAgICAgICAvLyB5b3VyIGFwcCBieSBjcmVhdGluZyBhbmQgYXBwZW5kaW5nIHRvIE1vZHVs
ZS5wcmVsb2FkUGx1Z2lucy4KLSAgICAgICAgLy8KLSAgICAgICAgLy8gRWFjaCBwbHVnaW4gaXMg
YXNrZWQgaWYgaXQgY2FuIGhhbmRsZSBhIGZpbGUgYmFzZWQgb24gdGhlIGZpbGUncyBuYW1lLiBJ
ZiBpdCBjYW4sCi0gICAgICAgIC8vIGl0IGlzIGdpdmVuIHRoZSBmaWxlJ3MgcmF3IGRhdGEuIFdo
ZW4gaXQgaXMgZG9uZSwgaXQgY2FsbHMgYSBjYWxsYmFjayB3aXRoIHRoZSBmaWxlJ3MKLSAgICAg
ICAgLy8gKHBvc3NpYmx5IG1vZGlmaWVkKSBkYXRhLiBGb3IgZXhhbXBsZSwgYSBwbHVnaW4gbWln
aHQgZGVjb21wcmVzcyBhIGZpbGUsIG9yIGl0Ci0gICAgICAgIC8vIG1pZ2h0IGNyZWF0ZSBzb21l
IHNpZGUgZGF0YSBzdHJ1Y3R1cmUgZm9yIHVzZSBsYXRlciAobGlrZSBhbiBJbWFnZSBlbGVtZW50
LCBldGMuKS4KLSAgICAgICAgdmFyIGltYWdlUGx1Z2luID0ge307Ci0gICAgICAgIGltYWdlUGx1
Z2luWydjYW5IYW5kbGUnXSA9IGZ1bmN0aW9uKG5hbWUpIHsKLSAgICAgICAgICByZXR1cm4gIU1v
ZHVsZS5ub0ltYWdlRGVjb2RpbmcgJiYgL1wuKGpwZ3xqcGVnfHBuZ3xibXApJC9pLnRlc3QobmFt
ZSk7Ci0gICAgICAgIH07Ci0gICAgICAgIGltYWdlUGx1Z2luWydoYW5kbGUnXSA9IGZ1bmN0aW9u
KGJ5dGVBcnJheSwgbmFtZSwgb25sb2FkLCBvbmVycm9yKSB7Ci0gICAgICAgICAgdmFyIGIgPSBu
dWxsOwotICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvcikgewotICAgICAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5
cGU6IEJyb3dzZXIuZ2V0TWltZXR5cGUobmFtZSkgfSk7Ci0gICAgICAgICAgICAgIGlmIChiLnNp
emUgIT09IGJ5dGVBcnJheS5sZW5ndGgpIHsgLy8gU2FmYXJpIGJ1ZyAjMTE4NjMwCi0gICAgICAg
ICAgICAgICAgLy8gU2FmYXJpJ3MgQmxvYiBjYW4gb25seSB0YWtlIGFuIEFycmF5QnVmZmVyCi0g
ICAgICAgICAgICAgICAgYiA9IG5ldyBCbG9iKFsobmV3IFVpbnQ4QXJyYXkoYnl0ZUFycmF5KSku
YnVmZmVyXSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpIH0pOwotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgICAgUnVudGltZS53
YXJuT25jZSgnQmxvYiBjb25zdHJ1Y3RvciBwcmVzZW50IGJ1dCBmYWlsczogJyArIGUgKyAnOyBm
YWxsaW5nIGJhY2sgdG8gYmxvYiBidWlsZGVyJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
fQotICAgICAgICAgIGlmICghYikgewotICAgICAgICAgICAgdmFyIGJiID0gbmV3IEJyb3dzZXIu
QmxvYkJ1aWxkZXIoKTsKLSAgICAgICAgICAgIGJiLmFwcGVuZCgobmV3IFVpbnQ4QXJyYXkoYnl0
ZUFycmF5KSkuYnVmZmVyKTsgLy8gd2UgbmVlZCB0byBwYXNzIGEgYnVmZmVyLCBhbmQgbXVzdCBj
b3B5IHRoZSBhcnJheSB0byBnZXQgdGhlIHJpZ2h0IGRhdGEgcmFuZ2UKLSAgICAgICAgICAgIGIg
PSBiYi5nZXRCbG9iKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciB1cmwgPSBCcm93c2Vy
LlVSTE9iamVjdC5jcmVhdGVPYmplY3RVUkwoYik7Ci0gICAgICAgICAgdmFyIGltZyA9IG5ldyBJ
bWFnZSgpOwotICAgICAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
IGFzc2VydChpbWcuY29tcGxldGUsICdJbWFnZSAnICsgbmFtZSArICcgY291bGQgbm90IGJlIGRl
Y29kZWQnKTsKLSAgICAgICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdjYW52YXMnKTsKLSAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IGltZy53aWR0aDsKLSAgICAg
ICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0OwotICAgICAgICAgICAgdmFyIGN0eCA9
IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwotICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcs
IDAsIDApOwotICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRJbWFnZXMiXVtuYW1lXSA9IGNh
bnZhczsKLSAgICAgICAgICAgIEJyb3dzZXIuVVJMT2JqZWN0LnJldm9rZU9iamVjdFVSTCh1cmwp
OwotICAgICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2FkKGJ5dGVBcnJheSk7Ci0gICAgICAgICAg
fTsKLSAgICAgICAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAg
ICBjb25zb2xlLmxvZygnSW1hZ2UgJyArIHVybCArICcgY291bGQgbm90IGJlIGRlY29kZWQnKTsK
LSAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7Ci0gICAgICAgICAgfTsKLSAgICAg
ICAgICBpbWcuc3JjID0gdXJsOwotICAgICAgICB9OwotICAgICAgICBNb2R1bGVbJ3ByZWxvYWRQ
bHVnaW5zJ10ucHVzaChpbWFnZVBsdWdpbik7Ci0gICAgICAgIHZhciBhdWRpb1BsdWdpbiA9IHt9
OwotICAgICAgICBhdWRpb1BsdWdpblsnY2FuSGFuZGxlJ10gPSBmdW5jdGlvbihuYW1lKSB7Ci0g
ICAgICAgICAgcmV0dXJuICFNb2R1bGUubm9BdWRpb0RlY29kaW5nICYmIG5hbWUuc3Vic3RyKC00
KSBpbiB7ICcub2dnJzogMSwgJy53YXYnOiAxLCAnLm1wMyc6IDEgfTsKLSAgICAgICAgfTsKLSAg
ICAgICAgYXVkaW9QbHVnaW5bJ2hhbmRsZSddID0gZnVuY3Rpb24oYnl0ZUFycmF5LCBuYW1lLCBv
bmxvYWQsIG9uZXJyb3IpIHsKLSAgICAgICAgICB2YXIgZG9uZSA9IGZhbHNlOwotICAgICAgICAg
IGZ1bmN0aW9uIGZpbmlzaChhdWRpbykgewotICAgICAgICAgICAgaWYgKGRvbmUpIHJldHVybjsK
LSAgICAgICAgICAgIGRvbmUgPSB0cnVlOwotICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRB
dWRpb3MiXVtuYW1lXSA9IGF1ZGlvOwotICAgICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2FkKGJ5
dGVBcnJheSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGZ1bmN0aW9uIGZhaWwoKSB7Ci0gICAg
ICAgICAgICBpZiAoZG9uZSkgcmV0dXJuOwotICAgICAgICAgICAgZG9uZSA9IHRydWU7Ci0gICAg
ICAgICAgICBNb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdW25hbWVdID0gbmV3IEF1ZGlvKCk7IC8v
IGVtcHR5IHNoaW0KLSAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7Ci0gICAgICAg
ICAgfQotICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvcikgewotICAgICAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgdmFyIGIgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwg
eyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpIH0pOwotICAgICAgICAgICAgfSBjYXRj
aChlKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWlsKCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB2YXIgdXJsID0gQnJvd3Nlci5VUkxPYmplY3QuY3JlYXRlT2JqZWN0VVJMKGIpOyAv
LyBYWFggd2UgbmV2ZXIgcmV2b2tlIHRoaXMhCi0gICAgICAgICAgICB2YXIgYXVkaW8gPSBuZXcg
QXVkaW8oKTsKLSAgICAgICAgICAgIGF1ZGlvLmFkZEV2ZW50TGlzdGVuZXIoJ2NhbnBsYXl0aHJv
dWdoJywgZnVuY3Rpb24oKSB7IGZpbmlzaChhdWRpbykgfSwgZmFsc2UpOyAvLyB1c2UgYWRkRXZl
bnRMaXN0ZW5lciBkdWUgdG8gY2hyb21pdW0gYnVnIDEyNDkyNgotICAgICAgICAgICAgYXVkaW8u
b25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICAgIGlmIChkb25lKSByZXR1
cm47Ci0gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3YXJuaW5nOiBicm93c2VyIGNvdWxkIG5v
dCBmdWxseSBkZWNvZGUgYXVkaW8gJyArIG5hbWUgKyAnLCB0cnlpbmcgc2xvd2VyIGJhc2U2NCBh
cHByb2FjaCcpOwotICAgICAgICAgICAgICBmdW5jdGlvbiBlbmNvZGU2NChkYXRhKSB7Ci0gICAg
ICAgICAgICAgICAgdmFyIEJBU0UgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7Ci0gICAgICAgICAgICAgICAgdmFyIFBB
RCA9ICc9JzsKLSAgICAgICAgICAgICAgICB2YXIgcmV0ID0gJyc7Ci0gICAgICAgICAgICAgICAg
dmFyIGxlZnRjaGFyID0gMDsKLSAgICAgICAgICAgICAgICB2YXIgbGVmdGJpdHMgPSAwOwotICAg
ICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgewotICAg
ICAgICAgICAgICAgICAgbGVmdGNoYXIgPSAobGVmdGNoYXIgPDwgOCkgfCBkYXRhW2ldOwotICAg
ICAgICAgICAgICAgICAgbGVmdGJpdHMgKz0gODsKLSAgICAgICAgICAgICAgICAgIHdoaWxlIChs
ZWZ0Yml0cyA+PSA2KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBjdXJyID0gKGxlZnRjaGFy
ID4+IChsZWZ0Yml0cy02KSkgJiAweDNmOwotICAgICAgICAgICAgICAgICAgICBsZWZ0Yml0cyAt
PSA2OwotICAgICAgICAgICAgICAgICAgICByZXQgKz0gQkFTRVtjdXJyXTsKLSAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGxlZnRiaXRz
ID09IDIpIHsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBCQVNFWyhsZWZ0Y2hhciYzKSA8PCA0
XTsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBQQUQgKyBQQUQ7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChsZWZ0Yml0cyA9PSA0KSB7Ci0gICAgICAgICAgICAgICAgICByZXQgKz0gQkFT
RVsobGVmdGNoYXImMHhmKSA8PCAyXTsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBQQUQ7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgYXVkaW8uc3JjID0gJ2RhdGE6YXVkaW8veC0nICsgbmFtZS5z
dWJzdHIoLTMpICsgJztiYXNlNjQsJyArIGVuY29kZTY0KGJ5dGVBcnJheSk7Ci0gICAgICAgICAg
ICAgIGZpbmlzaChhdWRpbyk7IC8vIHdlIGRvbid0IHdhaXQgZm9yIGNvbmZpcm1hdGlvbiB0aGlz
IHdvcmtlZCAtIGJ1dCBpdCdzIHdvcnRoIHRyeWluZwotICAgICAgICAgICAgfTsKLSAgICAgICAg
ICAgIGF1ZGlvLnNyYyA9IHVybDsKLSAgICAgICAgICAgIC8vIHdvcmthcm91bmQgZm9yIGNocm9t
ZSBidWcgMTI0OTI2IC0gd2UgZG8gbm90IGFsd2F5cyBnZXQgb25jYW5wbGF5dGhyb3VnaCBvciBv
bmVycm9yCi0gICAgICAgICAgICBCcm93c2VyLnNhZmVTZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICBmaW5pc2goYXVkaW8pOyAvLyB0cnkgdG8gdXNlIGl0IGV2ZW4gdGhvdWdo
IGl0IGlzIG5vdCBuZWNlc3NhcmlseSByZWFkeSB0byBwbGF5Ci0gICAgICAgICAgICB9LCAxMDAw
MCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBmYWlsKCk7Ci0gICAg
ICAgICAgfQotICAgICAgICB9OwotICAgICAgICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10ucHVz
aChhdWRpb1BsdWdpbik7Ci0gICAgICAgIC8vIENhbnZhcyBldmVudCBzZXR1cAotICAgICAgICB2
YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgY2FudmFzLnJlcXVlc3RQb2lu
dGVyTG9jayA9IGNhbnZhc1sncmVxdWVzdFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc1snbW96UmVxdWVzdFBvaW50ZXJMb2NrJ10gfHwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc1snd2Via2l0UmVxdWVz
dFBvaW50ZXJMb2NrJ107Ci0gICAgICAgIGNhbnZhcy5leGl0UG9pbnRlckxvY2sgPSBkb2N1bWVu
dFsnZXhpdFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50Wydtb3pFeGl0UG9pbnRlckxvY2snXSB8fAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnRbJ3dlYmtpdEV4aXRQb2ludGVyTG9jayddIHx8Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpe307IC8vIG5vLW9wIGlmIGZ1bmN0
aW9uIGRvZXMgbm90IGV4aXN0Ci0gICAgICAgIGNhbnZhcy5leGl0UG9pbnRlckxvY2sgPSBjYW52
YXMuZXhpdFBvaW50ZXJMb2NrLmJpbmQoZG9jdW1lbnQpOwotICAgICAgICBmdW5jdGlvbiBwb2lu
dGVyTG9ja0NoYW5nZSgpIHsKLSAgICAgICAgICBCcm93c2VyLnBvaW50ZXJMb2NrID0gZG9jdW1l
bnRbJ3BvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXMgfHwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnRbJ21velBvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52
YXMgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ3dlYmtpdFBv
aW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXM7Ci0gICAgICAgIH0KLSAgICAgICAgZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxvY2tjaGFuZ2UnLCBwb2ludGVyTG9ja0NoYW5n
ZSwgZmFsc2UpOwotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3pwb2ludGVy
bG9ja2NoYW5nZScsIHBvaW50ZXJMb2NrQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgIGRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdHBvaW50ZXJsb2NrY2hhbmdlJywgcG9pbnRlckxvY2tD
aGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgaWYgKE1vZHVsZVsnZWxlbWVudFBvaW50ZXJMb2NrJ10p
IHsKLSAgICAgICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihl
dikgewotICAgICAgICAgICAgaWYgKCFCcm93c2VyLnBvaW50ZXJMb2NrICYmIGNhbnZhcy5yZXF1
ZXN0UG9pbnRlckxvY2spIHsKLSAgICAgICAgICAgICAgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9j
aygpOwotICAgICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgfQot
ICAgICAgICAgIH0sIGZhbHNlKTsKLSAgICAgICAgfQotICAgICAgfSxjcmVhdGVDb250ZXh0OmZ1
bmN0aW9uIChjYW52YXMsIHVzZVdlYkdMLCBzZXRJbk1vZHVsZSkgewotICAgICAgICB2YXIgY3R4
OwotICAgICAgICB0cnkgewotICAgICAgICAgIGlmICh1c2VXZWJHTCkgewotICAgICAgICAgICAg
Y3R4ID0gY2FudmFzLmdldENvbnRleHQoJ2V4cGVyaW1lbnRhbC13ZWJnbCcsIHsKLSAgICAgICAg
ICAgICAgYWxwaGE6IGZhbHNlCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIGlmICghY3R4KSB0aHJvdyAnOignOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0g
ICAgICAgICAgTW9kdWxlLnByaW50KCdDb3VsZCBub3QgY3JlYXRlIGNhbnZhcyAtICcgKyBlKTsK
LSAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotICAgICAgICBpZiAodXNlV2ViR0wp
IHsKLSAgICAgICAgICAvLyBTZXQgdGhlIGJhY2tncm91bmQgb2YgdGhlIFdlYkdMIGNhbnZhcyB0
byBibGFjawotICAgICAgICAgIGNhbnZhcy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiYmxhY2si
OwotICAgICAgICAgIC8vIFdhcm4gb24gY29udGV4dCBsb3NzCi0gICAgICAgICAgY2FudmFzLmFk
ZEV2ZW50TGlzdGVuZXIoJ3dlYmdsY29udGV4dGxvc3QnLCBmdW5jdGlvbihldmVudCkgewotICAg
ICAgICAgICAgYWxlcnQoJ1dlYkdMIGNvbnRleHQgbG9zdC4gWW91IHdpbGwgbmVlZCB0byByZWxv
YWQgdGhlIHBhZ2UuJyk7Ci0gICAgICAgICAgfSwgZmFsc2UpOwotICAgICAgICB9Ci0gICAgICAg
IGlmIChzZXRJbk1vZHVsZSkgewotICAgICAgICAgIE1vZHVsZS5jdHggPSBjdHg7Ci0gICAgICAg
ICAgTW9kdWxlLnVzZVdlYkdMID0gdXNlV2ViR0w7Ci0gICAgICAgICAgQnJvd3Nlci5tb2R1bGVD
b250ZXh0Q3JlYXRlZENhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9uKGNhbGxiYWNrKSB7IGNhbGxi
YWNrKCkgfSk7Ci0gICAgICAgICAgQnJvd3Nlci5pbml0KCk7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIGN0eDsKLSAgICAgIH0sZGVzdHJveUNvbnRleHQ6ZnVuY3Rpb24gKGNhbnZhcywgdXNl
V2ViR0wsIHNldEluTW9kdWxlKSB7fSxmdWxsU2NyZWVuSGFuZGxlcnNJbnN0YWxsZWQ6ZmFsc2Us
bG9ja1BvaW50ZXI6dW5kZWZpbmVkLHJlc2l6ZUNhbnZhczp1bmRlZmluZWQscmVxdWVzdEZ1bGxT
Y3JlZW46ZnVuY3Rpb24gKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMpIHsKLSAgICAgICAgQnJv
d3Nlci5sb2NrUG9pbnRlciA9IGxvY2tQb2ludGVyOwotICAgICAgICBCcm93c2VyLnJlc2l6ZUNh
bnZhcyA9IHJlc2l6ZUNhbnZhczsKLSAgICAgICAgaWYgKHR5cGVvZiBCcm93c2VyLmxvY2tQb2lu
dGVyID09PSAndW5kZWZpbmVkJykgQnJvd3Nlci5sb2NrUG9pbnRlciA9IHRydWU7Ci0gICAgICAg
IGlmICh0eXBlb2YgQnJvd3Nlci5yZXNpemVDYW52YXMgPT09ICd1bmRlZmluZWQnKSBCcm93c2Vy
LnJlc2l6ZUNhbnZhcyA9IGZhbHNlOwotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52
YXMnXTsKLSAgICAgICAgZnVuY3Rpb24gZnVsbFNjcmVlbkNoYW5nZSgpIHsKLSAgICAgICAgICBC
cm93c2VyLmlzRnVsbFNjcmVlbiA9IGZhbHNlOwotICAgICAgICAgIGlmICgoZG9jdW1lbnRbJ3dl
YmtpdEZ1bGxTY3JlZW5FbGVtZW50J10gfHwgZG9jdW1lbnRbJ3dlYmtpdEZ1bGxzY3JlZW5FbGVt
ZW50J10gfHwKLSAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pGdWxsU2NyZWVuRWxlbWVudCdd
IHx8IGRvY3VtZW50Wydtb3pGdWxsc2NyZWVuRWxlbWVudCddIHx8Ci0gICAgICAgICAgICAgICBk
b2N1bWVudFsnZnVsbFNjcmVlbkVsZW1lbnQnXSB8fCBkb2N1bWVudFsnZnVsbHNjcmVlbkVsZW1l
bnQnXSkgPT09IGNhbnZhcykgewotICAgICAgICAgICAgY2FudmFzLmNhbmNlbEZ1bGxTY3JlZW4g
PSBkb2N1bWVudFsnY2FuY2VsRnVsbFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pDYW5jZWxGdWxsU2NyZWVuJ10gfHwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ3dlYmtpdENhbmNlbEZ1
bGxTY3JlZW4nXTsKLSAgICAgICAgICAgIGNhbnZhcy5jYW5jZWxGdWxsU2NyZWVuID0gY2FudmFz
LmNhbmNlbEZ1bGxTY3JlZW4uYmluZChkb2N1bWVudCk7Ci0gICAgICAgICAgICBpZiAoQnJvd3Nl
ci5sb2NrUG9pbnRlcikgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9jaygpOwotICAgICAgICAgICAg
QnJvd3Nlci5pc0Z1bGxTY3JlZW4gPSB0cnVlOwotICAgICAgICAgICAgaWYgKEJyb3dzZXIucmVz
aXplQ2FudmFzKSBCcm93c2VyLnNldEZ1bGxTY3JlZW5DYW52YXNTaXplKCk7Ci0gICAgICAgICAg
fSBlbHNlIGlmIChCcm93c2VyLnJlc2l6ZUNhbnZhcyl7Ci0gICAgICAgICAgICBCcm93c2VyLnNl
dFdpbmRvd2VkQ2FudmFzU2l6ZSgpOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoTW9kdWxl
WydvbkZ1bGxTY3JlZW4nXSkgTW9kdWxlWydvbkZ1bGxTY3JlZW4nXShCcm93c2VyLmlzRnVsbFNj
cmVlbik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFCcm93c2VyLmZ1bGxTY3JlZW5IYW5kbGVy
c0luc3RhbGxlZCkgewotICAgICAgICAgIEJyb3dzZXIuZnVsbFNjcmVlbkhhbmRsZXJzSW5zdGFs
bGVkID0gdHJ1ZTsKLSAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmdWxsc2Ny
ZWVuY2hhbmdlJywgZnVsbFNjcmVlbkNoYW5nZSwgZmFsc2UpOwotICAgICAgICAgIGRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoJ21vemZ1bGxzY3JlZW5jaGFuZ2UnLCBmdWxsU2NyZWVuQ2hhbmdl
LCBmYWxzZSk7Ci0gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZnVs
bHNjcmVlbmNoYW5nZScsIGZ1bGxTY3JlZW5DaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgfQotICAg
ICAgICBjYW52YXMucmVxdWVzdEZ1bGxTY3JlZW4gPSBjYW52YXNbJ3JlcXVlc3RGdWxsU2NyZWVu
J10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzWydtb3pSZXF1
ZXN0RnVsbFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj
YW52YXNbJ3dlYmtpdFJlcXVlc3RGdWxsU2NyZWVuJ10gPyBmdW5jdGlvbigpIHsgY2FudmFzWyd3
ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiddKEVsZW1lbnRbJ0FMTE9XX0tFWUJPQVJEX0lOUFVUJ10p
IH0gOiBudWxsKTsKLSAgICAgICAgY2FudmFzLnJlcXVlc3RGdWxsU2NyZWVuKCk7Ci0gICAgICB9
LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbiAoZnVuYykgewotICAgICAgICBpZiAoIXdp
bmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIHsKLSAgICAgICAgICB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lID0gd2luZG93WydyZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ21velJlcXVlc3RBbmlt
YXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdpbmRvd1snd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Wydtc1JlcXVlc3RBbmltYXRpb25GcmFt
ZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1sn
b1JlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpbmRvd1snc2V0VGltZW91dCddOwotICAgICAgICB9Ci0gICAgICAgIHdp
bmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuYyk7Ci0gICAgICB9LHNhZmVDYWxsYmFjazpm
dW5jdGlvbiAoZnVuYykgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
aWYgKCFBQk9SVCkgcmV0dXJuIGZ1bmMuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKLSAgICAgICAg
fTsKLSAgICAgIH0sc2FmZVJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbiAoZnVuYykgewot
ICAgICAgICByZXR1cm4gQnJvd3Nlci5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOwotICAgICAgICB9KTsKLSAgICAgIH0sc2Fm
ZVNldFRpbWVvdXQ6ZnVuY3Rpb24gKGZ1bmMsIHRpbWVvdXQpIHsKLSAgICAgICAgcmV0dXJuIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOwotICAg
ICAgICB9LCB0aW1lb3V0KTsKLSAgICAgIH0sc2FmZVNldEludGVydmFsOmZ1bmN0aW9uIChmdW5j
LCB0aW1lb3V0KSB7Ci0gICAgICAgIHJldHVybiBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKLSAg
ICAgICAgICBpZiAoIUFCT1JUKSBmdW5jKCk7Ci0gICAgICAgIH0sIHRpbWVvdXQpOwotICAgICAg
fSxnZXRNaW1ldHlwZTpmdW5jdGlvbiAobmFtZSkgewotICAgICAgICByZXR1cm4gewotICAgICAg
ICAgICdqcGcnOiAnaW1hZ2UvanBlZycsCi0gICAgICAgICAgJ2pwZWcnOiAnaW1hZ2UvanBlZycs
Ci0gICAgICAgICAgJ3BuZyc6ICdpbWFnZS9wbmcnLAotICAgICAgICAgICdibXAnOiAnaW1hZ2Uv
Ym1wJywKLSAgICAgICAgICAnb2dnJzogJ2F1ZGlvL29nZycsCi0gICAgICAgICAgJ3dhdic6ICdh
dWRpby93YXYnLAotICAgICAgICAgICdtcDMnOiAnYXVkaW8vbXBlZycKLSAgICAgICAgfVtuYW1l
LnN1YnN0cihuYW1lLmxhc3RJbmRleE9mKCcuJykrMSldOwotICAgICAgfSxnZXRVc2VyTWVkaWE6
ZnVuY3Rpb24gKGZ1bmMpIHsKLSAgICAgICAgaWYoIXdpbmRvdy5nZXRVc2VyTWVkaWEpIHsKLSAg
ICAgICAgICB3aW5kb3cuZ2V0VXNlck1lZGlhID0gbmF2aWdhdG9yWydnZXRVc2VyTWVkaWEnXSB8
fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3JbJ21vekdldFVzZXJN
ZWRpYSddOwotICAgICAgICB9Ci0gICAgICAgIHdpbmRvdy5nZXRVc2VyTWVkaWEoZnVuYyk7Ci0g
ICAgICB9LGdldE1vdmVtZW50WDpmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgICAgcmV0dXJuIGV2
ZW50Wydtb3ZlbWVudFgnXSB8fAotICAgICAgICAgICAgICAgZXZlbnRbJ21vek1vdmVtZW50WCdd
IHx8Ci0gICAgICAgICAgICAgICBldmVudFsnd2Via2l0TW92ZW1lbnRYJ10gfHwKLSAgICAgICAg
ICAgICAgIDA7Ci0gICAgICB9LGdldE1vdmVtZW50WTpmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAg
ICAgcmV0dXJuIGV2ZW50Wydtb3ZlbWVudFknXSB8fAotICAgICAgICAgICAgICAgZXZlbnRbJ21v
ek1vdmVtZW50WSddIHx8Ci0gICAgICAgICAgICAgICBldmVudFsnd2Via2l0TW92ZW1lbnRZJ10g
fHwKLSAgICAgICAgICAgICAgIDA7Ci0gICAgICB9LG1vdXNlWDowLG1vdXNlWTowLG1vdXNlTW92
ZW1lbnRYOjAsbW91c2VNb3ZlbWVudFk6MCxjYWxjdWxhdGVNb3VzZUV2ZW50OmZ1bmN0aW9uIChl
dmVudCkgeyAvLyBldmVudCBzaG91bGQgYmUgbW91c2Vtb3ZlLCBtb3VzZWRvd24gb3IgbW91c2V1
cAotICAgICAgICBpZiAoQnJvd3Nlci5wb2ludGVyTG9jaykgewotICAgICAgICAgIC8vIFdoZW4g
dGhlIHBvaW50ZXIgaXMgbG9ja2VkLCBjYWxjdWxhdGUgdGhlIGNvb3JkaW5hdGVzCi0gICAgICAg
ICAgLy8gYmFzZWQgb24gdGhlIG1vdmVtZW50IG9mIHRoZSBtb3VzZS4KLSAgICAgICAgICAvLyBX
b3JrYXJvdW5kIGZvciBGaXJlZm94IGJ1ZyA3NjQ0OTgKLSAgICAgICAgICBpZiAoZXZlbnQudHlw
ZSAhPSAnbW91c2Vtb3ZlJyAmJgotICAgICAgICAgICAgICAoJ21vek1vdmVtZW50WCcgaW4gZXZl
bnQpKSB7Ci0gICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1lbnRYID0gQnJvd3Nlci5tb3Vz
ZU1vdmVtZW50WSA9IDA7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEJyb3dzZXIu
bW91c2VNb3ZlbWVudFggPSBCcm93c2VyLmdldE1vdmVtZW50WChldmVudCk7Ci0gICAgICAgICAg
ICBCcm93c2VyLm1vdXNlTW92ZW1lbnRZID0gQnJvd3Nlci5nZXRNb3ZlbWVudFkoZXZlbnQpOwot
ICAgICAgICAgIH0KLSAgICAgICAgICAvLyBjaGVjayBpZiBTREwgaXMgYXZhaWxhYmxlCi0gICAg
ICAgICAgaWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgICAJQnJvd3Nl
ci5tb3VzZVggPSBTREwubW91c2VYICsgQnJvd3Nlci5tb3VzZU1vdmVtZW50WDsKLSAgICAgICAg
ICAJQnJvd3Nlci5tb3VzZVkgPSBTREwubW91c2VZICsgQnJvd3Nlci5tb3VzZU1vdmVtZW50WTsK
LSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgIAkvLyBqdXN0IGFkZCB0aGUgbW91c2UgZGVs
dGEgdG8gdGhlIGN1cnJlbnQgYWJzb2x1dCBtb3VzZSBwb3NpdGlvbgotICAgICAgICAgIAkvLyBG
SVhNRTogaWRlYWxseSB0aGlzIHNob3VsZCBiZSBjbGFtcGVkIGFnYWluc3QgdGhlIGNhbnZhcyBz
aXplIGFuZCB6ZXJvCi0gICAgICAgICAgCUJyb3dzZXIubW91c2VYICs9IEJyb3dzZXIubW91c2VN
b3ZlbWVudFg7Ci0gICAgICAgICAgCUJyb3dzZXIubW91c2VZICs9IEJyb3dzZXIubW91c2VNb3Zl
bWVudFk7Ci0gICAgICAgICAgfSAgICAgICAgCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
Ly8gT3RoZXJ3aXNlLCBjYWxjdWxhdGUgdGhlIG1vdmVtZW50IGJhc2VkIG9uIHRoZSBjaGFuZ2Vz
Ci0gICAgICAgICAgLy8gaW4gdGhlIGNvb3JkaW5hdGVzLgotICAgICAgICAgIHZhciByZWN0ID0g
TW9kdWxlWyJjYW52YXMiXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgICB2YXIg
eCwgeTsKLSAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PSAndG91Y2hzdGFydCcgfHwKLSAgICAg
ICAgICAgICAgZXZlbnQudHlwZSA9PSAndG91Y2hlbmQnIHx8Ci0gICAgICAgICAgICAgIGV2ZW50
LnR5cGUgPT0gJ3RvdWNobW92ZScpIHsKLSAgICAgICAgICAgIHZhciB0ID0gZXZlbnQudG91Y2hl
cy5pdGVtKDApOwotICAgICAgICAgICAgaWYgKHQpIHsKLSAgICAgICAgICAgICAgeCA9IHQucGFn
ZVggLSAod2luZG93LnNjcm9sbFggKyByZWN0LmxlZnQpOwotICAgICAgICAgICAgICB5ID0gdC5w
YWdlWSAtICh3aW5kb3cuc2Nyb2xsWSArIHJlY3QudG9wKTsKLSAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgeCA9IGV2ZW50LnBhZ2VYIC0gKHdpbmRvdy5zY3JvbGxYICsgcmVjdC5s
ZWZ0KTsKLSAgICAgICAgICAgIHkgPSBldmVudC5wYWdlWSAtICh3aW5kb3cuc2Nyb2xsWSArIHJl
Y3QudG9wKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gdGhlIGNhbnZhcyBtaWdodCBiZSBD
U1Mtc2NhbGVkIGNvbXBhcmVkIHRvIGl0cyBiYWNrYnVmZmVyOwotICAgICAgICAgIC8vIFNETC11
c2luZyBjb250ZW50IHdpbGwgd2FudCBtb3VzZSBjb29yZGluYXRlcyBpbiB0ZXJtcwotICAgICAg
ICAgIC8vIG9mIGJhY2tidWZmZXIgdW5pdHMuCi0gICAgICAgICAgdmFyIGN3ID0gTW9kdWxlWyJj
YW52YXMiXS53aWR0aDsKLSAgICAgICAgICB2YXIgY2ggPSBNb2R1bGVbImNhbnZhcyJdLmhlaWdo
dDsKLSAgICAgICAgICB4ID0geCAqIChjdyAvIHJlY3Qud2lkdGgpOwotICAgICAgICAgIHkgPSB5
ICogKGNoIC8gcmVjdC5oZWlnaHQpOwotICAgICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFgg
PSB4IC0gQnJvd3Nlci5tb3VzZVg7Ci0gICAgICAgICAgQnJvd3Nlci5tb3VzZU1vdmVtZW50WSA9
IHkgLSBCcm93c2VyLm1vdXNlWTsKLSAgICAgICAgICBCcm93c2VyLm1vdXNlWCA9IHg7Ci0gICAg
ICAgICAgQnJvd3Nlci5tb3VzZVkgPSB5OwotICAgICAgICB9Ci0gICAgICB9LHhockxvYWQ6ZnVu
Y3Rpb24gKHVybCwgb25sb2FkLCBvbmVycm9yKSB7Ci0gICAgICAgIHZhciB4aHIgPSBuZXcgWE1M
SHR0cFJlcXVlc3QoKTsKLSAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwgdHJ1ZSk7Ci0gICAg
ICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOwotICAgICAgICB4aHIub25sb2Fk
ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKHhoci5zdGF0dXMgPT0gMjAwIHx8ICh4aHIu
c3RhdHVzID09IDAgJiYgeGhyLnJlc3BvbnNlKSkgeyAvLyBmaWxlIFVSTHMgY2FuIHJldHVybiAw
Ci0gICAgICAgICAgICBvbmxvYWQoeGhyLnJlc3BvbnNlKTsKLSAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgb25lcnJvcigpOwotICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAg
eGhyLm9uZXJyb3IgPSBvbmVycm9yOwotICAgICAgICB4aHIuc2VuZChudWxsKTsKLSAgICAgIH0s
YXN5bmNMb2FkOmZ1bmN0aW9uICh1cmwsIG9ubG9hZCwgb25lcnJvciwgbm9SdW5EZXApIHsKLSAg
ICAgICAgQnJvd3Nlci54aHJMb2FkKHVybCwgZnVuY3Rpb24oYXJyYXlCdWZmZXIpIHsKLSAgICAg
ICAgICBhc3NlcnQoYXJyYXlCdWZmZXIsICdMb2FkaW5nIGRhdGEgZmlsZSAiJyArIHVybCArICci
IGZhaWxlZCAobm8gYXJyYXlCdWZmZXIpLicpOwotICAgICAgICAgIG9ubG9hZChuZXcgVWludDhB
cnJheShhcnJheUJ1ZmZlcikpOwotICAgICAgICAgIGlmICghbm9SdW5EZXApIHJlbW92ZVJ1bkRl
cGVuZGVuY3koJ2FsICcgKyB1cmwpOwotICAgICAgICB9LCBmdW5jdGlvbihldmVudCkgewotICAg
ICAgICAgIGlmIChvbmVycm9yKSB7Ci0gICAgICAgICAgICBvbmVycm9yKCk7Ci0gICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHRocm93ICdMb2FkaW5nIGRhdGEgZmlsZSAiJyArIHVybCAr
ICciIGZhaWxlZC4nOwotICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIGlmICghbm9S
dW5EZXApIGFkZFJ1bkRlcGVuZGVuY3koJ2FsICcgKyB1cmwpOwotICAgICAgfSxyZXNpemVMaXN0
ZW5lcnM6W10sdXBkYXRlUmVzaXplTGlzdGVuZXJzOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFy
IGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIEJyb3dzZXIucmVzaXplTGlzdGVu
ZXJzLmZvckVhY2goZnVuY3Rpb24obGlzdGVuZXIpIHsKLSAgICAgICAgICBsaXN0ZW5lcihjYW52
YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwotICAgICAgICB9KTsKLSAgICAgIH0sc2V0Q2FudmFz
U2l6ZTpmdW5jdGlvbiAod2lkdGgsIGhlaWdodCwgbm9VcGRhdGVzKSB7Ci0gICAgICAgIHZhciBj
YW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aDsK
LSAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDsKLSAgICAgICAgaWYgKCFub1VwZGF0ZXMp
IEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7Ci0gICAgICB9LHdpbmRvd2VkV2lkdGg6
MCx3aW5kb3dlZEhlaWdodDowLHNldEZ1bGxTY3JlZW5DYW52YXNTaXplOmZ1bmN0aW9uICgpIHsK
LSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIHRoaXMud2lu
ZG93ZWRXaWR0aCA9IGNhbnZhcy53aWR0aDsKLSAgICAgICAgdGhpcy53aW5kb3dlZEhlaWdodCA9
IGNhbnZhcy5oZWlnaHQ7Ci0gICAgICAgIGNhbnZhcy53aWR0aCA9IHNjcmVlbi53aWR0aDsKLSAg
ICAgICAgY2FudmFzLmhlaWdodCA9IHNjcmVlbi5oZWlnaHQ7Ci0gICAgICAgIC8vIGNoZWNrIGlm
IFNETCBpcyBhdmFpbGFibGUgICAKLSAgICAgICAgaWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5l
ZCIpIHsKLSAgICAgICAgCXZhciBmbGFncyA9IEhFQVBVMzJbKChTREwuc2NyZWVuK1J1bnRpbWUu
UVVBTlRVTV9TSVpFKjApPj4yKV07Ci0gICAgICAgIAlmbGFncyA9IGZsYWdzIHwgMHgwMDgwMDAw
MDsgLy8gc2V0IFNETF9GVUxMU0NSRUVOIGZsYWcKLSAgICAgICAgCUhFQVAzMlsoKFNETC5zY3Jl
ZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXT1mbGFncwotICAgICAgICB9Ci0gICAgICAg
IEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7Ci0gICAgICB9LHNldFdpbmRvd2VkQ2Fu
dmFzU2l6ZTpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZh
cyddOwotICAgICAgICBjYW52YXMud2lkdGggPSB0aGlzLndpbmRvd2VkV2lkdGg7Ci0gICAgICAg
IGNhbnZhcy5oZWlnaHQgPSB0aGlzLndpbmRvd2VkSGVpZ2h0OwotICAgICAgICAvLyBjaGVjayBp
ZiBTREwgaXMgYXZhaWxhYmxlICAgICAgIAotICAgICAgICBpZiAodHlwZW9mIFNETCAhPSAidW5k
ZWZpbmVkIikgewotICAgICAgICAJdmFyIGZsYWdzID0gSEVBUFUzMlsoKFNETC5zY3JlZW4rUnVu
dGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXTsKLSAgICAgICAgCWZsYWdzID0gZmxhZ3MgJiB+MHgw
MDgwMDAwMDsgLy8gY2xlYXIgU0RMX0ZVTExTQ1JFRU4gZmxhZwotICAgICAgICAJSEVBUDMyWygo
U0RMLnNjcmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+MildPWZsYWdzCi0gICAgICAgIH0K
LSAgICAgICAgQnJvd3Nlci51cGRhdGVSZXNpemVMaXN0ZW5lcnMoKTsKLSAgICAgIH19OwotX2xs
dm1fZWhfZXhjZXB0aW9uLmJ1ZiA9IGFsbG9jYXRlKDEyLCAidm9pZCoiLCBBTExPQ19TVEFUSUMp
OwotRlMuc3RhdGljSW5pdCgpO19fQVRJTklUX18udW5zaGlmdCh7IGZ1bmM6IGZ1bmN0aW9uKCkg
eyBpZiAoIU1vZHVsZVsibm9GU0luaXQiXSAmJiAhRlMuaW5pdC5pbml0aWFsaXplZCkgRlMuaW5p
dCgpIH0gfSk7X19BVE1BSU5fXy5wdXNoKHsgZnVuYzogZnVuY3Rpb24oKSB7IEZTLmlnbm9yZVBl
cm1pc3Npb25zID0gZmFsc2UgfSB9KTtfX0FURVhJVF9fLnB1c2goeyBmdW5jOiBmdW5jdGlvbigp
IHsgRlMucXVpdCgpIH0gfSk7TW9kdWxlWyJGU19jcmVhdGVGb2xkZXIiXSA9IEZTLmNyZWF0ZUZv
bGRlcjtNb2R1bGVbIkZTX2NyZWF0ZVBhdGgiXSA9IEZTLmNyZWF0ZVBhdGg7TW9kdWxlWyJGU19j
cmVhdGVEYXRhRmlsZSJdID0gRlMuY3JlYXRlRGF0YUZpbGU7TW9kdWxlWyJGU19jcmVhdGVQcmVs
b2FkZWRGaWxlIl0gPSBGUy5jcmVhdGVQcmVsb2FkZWRGaWxlO01vZHVsZVsiRlNfY3JlYXRlTGF6
eUZpbGUiXSA9IEZTLmNyZWF0ZUxhenlGaWxlO01vZHVsZVsiRlNfY3JlYXRlTGluayJdID0gRlMu
Y3JlYXRlTGluaztNb2R1bGVbIkZTX2NyZWF0ZURldmljZSJdID0gRlMuY3JlYXRlRGV2aWNlOwot
X19fZXJybm9fc3RhdGUgPSBSdW50aW1lLnN0YXRpY0FsbG9jKDQpOyBIRUFQMzJbKChfX19lcnJu
b19zdGF0ZSk+PjIpXT0wOwotX2ZnZXRjLnJldCA9IGFsbG9jYXRlKFswXSwgImk4IiwgQUxMT0Nf
U1RBVElDKTsKLU1vZHVsZVsicmVxdWVzdEZ1bGxTY3JlZW4iXSA9IGZ1bmN0aW9uKGxvY2tQb2lu
dGVyLCByZXNpemVDYW52YXMpIHsgQnJvd3Nlci5yZXF1ZXN0RnVsbFNjcmVlbihsb2NrUG9pbnRl
ciwgcmVzaXplQ2FudmFzKSB9OwotICBNb2R1bGVbInJlcXVlc3RBbmltYXRpb25GcmFtZSJdID0g
ZnVuY3Rpb24oZnVuYykgeyBCcm93c2VyLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jKSB9Owot
ICBNb2R1bGVbInNldENhbnZhc1NpemUiXSA9IGZ1bmN0aW9uKHdpZHRoLCBoZWlnaHQsIG5vVXBk
YXRlcykgeyBCcm93c2VyLnNldENhbnZhc1NpemUod2lkdGgsIGhlaWdodCwgbm9VcGRhdGVzKSB9
OwotICBNb2R1bGVbInBhdXNlTWFpbkxvb3AiXSA9IGZ1bmN0aW9uKCkgeyBCcm93c2VyLm1haW5M
b29wLnBhdXNlKCkgfTsKLSAgTW9kdWxlWyJyZXN1bWVNYWluTG9vcCJdID0gZnVuY3Rpb24oKSB7
IEJyb3dzZXIubWFpbkxvb3AucmVzdW1lKCkgfTsKLSAgTW9kdWxlWyJnZXRVc2VyTWVkaWEiXSA9
IGZ1bmN0aW9uKCkgeyBCcm93c2VyLmdldFVzZXJNZWRpYSgpIH0KLVNUQUNLX0JBU0UgPSBTVEFD
S1RPUCA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkoU1RBVElDVE9QKTsKLXN0YXRpY1NlYWxlZCA9IHRy
dWU7IC8vIHNlYWwgdGhlIHN0YXRpYyBwb3J0aW9uIG9mIG1lbW9yeQotU1RBQ0tfTUFYID0gU1RB
Q0tfQkFTRSArIDUyNDI4ODA7Ci1EWU5BTUlDX0JBU0UgPSBEWU5BTUlDVE9QID0gUnVudGltZS5h
bGlnbk1lbW9yeShTVEFDS19NQVgpOwotYXNzZXJ0KERZTkFNSUNfQkFTRSA8IFRPVEFMX01FTU9S
WSk7IC8vIFN0YWNrIG11c3QgZml0IGluIFRPVEFMX01FTU9SWTsgYWxsb2NhdGlvbnMgZnJvbSBo
ZXJlIG9uIG1heSBlbmxhcmdlIFRPVEFMX01FTU9SWQotIHZhciBjdHR6X2k4ID0gYWxsb2NhdGUo
WzgsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAs
MiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwz
LDAsMSwwLDIsMCwxLDAsNiwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIs
MCwxLDAsMywwLDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCww
LDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw3LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAs
MSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEsMCwyLDAsMSwwLDMsMCwx
LDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDYsMCwxLDAsMiwwLDEs
MCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSww
LDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDBd
LCAiaTgiLCBBTExPQ19EWU5BTUlDKTsKLXZhciBNYXRoX21pbiA9IE1hdGgubWluOwotZnVuY3Rp
b24gaW52b2tlX3ZpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSkgewotICB0cnkgewotICAgIE1v
ZHVsZVsiZHluQ2FsbF92aWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxhNSk7Ci0gIH0gY2F0Y2go
ZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0
aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52
b2tlX3ZpaWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3KSB7Ci0gIHRyeSB7Ci0gICAg
TW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcpOwot
ICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICds
b25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1
bmN0aW9uIGludm9rZV92aShpbmRleCxhMSkgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2Fs
bF92aSJdKGluZGV4LGExKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAn
bnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJd
KDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpKGluZGV4LGExLGEyKSB7Ci0gIHRy
eSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaSJdKGluZGV4LGExLGEyKTsKLSAgfSBjYXRjaChl
KSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRo
cm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZv
a2VfaWlpKGluZGV4LGExLGEyKSB7Ci0gIHRyeSB7Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2Fs
bF9paWkiXShpbmRleCxhMSxhMik7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAh
PT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhy
ZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lpaWlpaShpbmRleCxhMSxhMixh
MyxhNCxhNSkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlpIl0o
aW5kZXgsYTEsYTIsYTMsYTQsYTUpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUg
IT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRo
cmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9paShpbmRleCxhMSkgewotICB0
cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWkiXShpbmRleCxhMSk7Ci0gIH0gY2F0
Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAn
KSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24g
aW52b2tlX2lpaWkoaW5kZXgsYTEsYTIsYTMpIHsKLSAgdHJ5IHsKLSAgICByZXR1cm4gTW9kdWxl
WyJkeW5DYWxsX2lpaWkiXShpbmRleCxhMSxhMixhMyk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlm
ICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAg
IGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWYo
aW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxf
dmlpaWlpZiJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAg
aWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0g
ICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpaShp
bmRleCxhMSxhMixhMykgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpIl0oaW5k
ZXgsYTEsYTIsYTMpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1i
ZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwg
MCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQs
YTUsYTYsYTcsYTgpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWlpIl0o
aW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAo
dHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBh
c21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92KGluZGV4KSB7
Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3YiXShpbmRleCk7Ci0gIH0gY2F0Y2goZSkg
ewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJv
dyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tl
X2lpaWlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCkgewotICB0cnkgewotICAg
IHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUs
YTYsYTcsYTgpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXIn
ICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7
Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1
LGE2LGE3LGE4LGE5KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaWki
XShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSk7Ci0gIH0gY2F0Y2goZSkgewotICAg
IGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwot
ICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWlp
aWlmKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJk
eW5DYWxsX3ZpaWlpaWlmIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcpOwotICB9IGNhdGNo
KGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykg
dGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGlu
dm9rZV92aWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KSB7Ci0gIHRyeSB7Ci0gICAgTW9k
dWxlWyJkeW5DYWxsX3ZpaWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxhNSxhNik7Ci0gIH0gY2F0
Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAn
KSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24g
aW52b2tlX2lpaWlpKGluZGV4LGExLGEyLGEzLGE0KSB7Ci0gIHRyeSB7Ci0gICAgcmV0dXJuIE1v
ZHVsZVsiZHluQ2FsbF9paWlpaSJdKGluZGV4LGExLGEyLGEzLGE0KTsKLSAgfSBjYXRjaChlKSB7
Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93
IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2Vf
dmlpaWkoaW5kZXgsYTEsYTIsYTMsYTQpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxf
dmlpaWkiXShpbmRleCxhMSxhMixhMyxhNCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBl
b2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsi
c2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gYXNtUHJpbnRJbnQoeCwgeSkgewot
ICBNb2R1bGUucHJpbnQoJ2ludCAnICsgeCArICcsJyArIHkpOy8vICsgJyAnICsgbmV3IEVycm9y
KCkuc3RhY2spOwotfQotZnVuY3Rpb24gYXNtUHJpbnRGbG9hdCh4LCB5KSB7Ci0gIE1vZHVsZS5w
cmludCgnZmxvYXQgJyArIHggKyAnLCcgKyB5KTsvLyArICcgJyArIG5ldyBFcnJvcigpLnN0YWNr
KTsKLX0KLS8vIEVNU0NSSVBURU5fU1RBUlRfQVNNCi12YXIgYXNtPShmdW5jdGlvbihnbG9iYWws
ZW52LGJ1ZmZlcil7InVzZSBhc20iO3ZhciBhPW5ldyBnbG9iYWwuSW50OEFycmF5KGJ1ZmZlcik7
dmFyIGI9bmV3IGdsb2JhbC5JbnQxNkFycmF5KGJ1ZmZlcik7dmFyIGM9bmV3IGdsb2JhbC5JbnQz
MkFycmF5KGJ1ZmZlcik7dmFyIGQ9bmV3IGdsb2JhbC5VaW50OEFycmF5KGJ1ZmZlcik7dmFyIGU9
bmV3IGdsb2JhbC5VaW50MTZBcnJheShidWZmZXIpO3ZhciBmPW5ldyBnbG9iYWwuVWludDMyQXJy
YXkoYnVmZmVyKTt2YXIgZz1uZXcgZ2xvYmFsLkZsb2F0MzJBcnJheShidWZmZXIpO3ZhciBoPW5l
dyBnbG9iYWwuRmxvYXQ2NEFycmF5KGJ1ZmZlcik7dmFyIGk9ZW52LlNUQUNLVE9QfDA7dmFyIGo9
ZW52LlNUQUNLX01BWHwwO3ZhciBrPWVudi50ZW1wRG91YmxlUHRyfDA7dmFyIGw9ZW52LkFCT1JU
fDA7dmFyIG09ZW52LmN0dHpfaTh8MDt2YXIgbj1lbnYuY3Rsel9pOHwwO3ZhciBvPWVudi5fc3Rk
aW58MDt2YXIgcD1lbnYuX19aVFZOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0V8MDt2
YXIgcT1lbnYuX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0V8MDt2YXIg
cj1lbnYuX3N0ZGVycnwwO3ZhciBzPWVudi5fX19mc211OHwwO3ZhciB0PWVudi5fc3Rkb3V0fDA7
dmFyIHU9ZW52Ll9fX2Rzb19oYW5kbGV8MDt2YXIgdj0rZW52Lk5hTjt2YXIgdz0rZW52LkluZmlu
aXR5O3ZhciB4PTA7dmFyIHk9MDt2YXIgej0wO3ZhciBBPTA7dmFyIEI9MCxDPTAsRD0wLEU9MCxG
PTAuMCxHPTAsSD0wLEk9MCxKPTAuMDt2YXIgSz0wO3ZhciBMPTA7dmFyIE09MDt2YXIgTj0wO3Zh
ciBPPTA7dmFyIFA9MDt2YXIgUT0wO3ZhciBSPTA7dmFyIFM9MDt2YXIgVD0wO3ZhciBVPWdsb2Jh
bC5NYXRoLmZsb29yO3ZhciBWPWdsb2JhbC5NYXRoLmFiczt2YXIgVz1nbG9iYWwuTWF0aC5zcXJ0
O3ZhciBYPWdsb2JhbC5NYXRoLnBvdzt2YXIgWT1nbG9iYWwuTWF0aC5jb3M7dmFyIFo9Z2xvYmFs
Lk1hdGguc2luO3ZhciBfPWdsb2JhbC5NYXRoLnRhbjt2YXIgJD1nbG9iYWwuTWF0aC5hY29zO3Zh
ciBhYT1nbG9iYWwuTWF0aC5hc2luO3ZhciBhYj1nbG9iYWwuTWF0aC5hdGFuO3ZhciBhYz1nbG9i
YWwuTWF0aC5hdGFuMjt2YXIgYWQ9Z2xvYmFsLk1hdGguZXhwO3ZhciBhZT1nbG9iYWwuTWF0aC5s
b2c7dmFyIGFmPWdsb2JhbC5NYXRoLmNlaWw7dmFyIGFnPWdsb2JhbC5NYXRoLmltdWw7dmFyIGFo
PWVudi5hYm9ydDt2YXIgYWk9ZW52LmFzc2VydDt2YXIgYWo9ZW52LmFzbVByaW50SW50O3ZhciBh
az1lbnYuYXNtUHJpbnRGbG9hdDt2YXIgYWw9ZW52Lm1pbjt2YXIgYW09ZW52Lmludm9rZV92aWlp
aWk7dmFyIGFuPWVudi5pbnZva2VfdmlpaWlpaWk7dmFyIGFvPWVudi5pbnZva2Vfdmk7dmFyIGFw
PWVudi5pbnZva2VfdmlpO3ZhciBhcT1lbnYuaW52b2tlX2lpaTt2YXIgYXI9ZW52Lmludm9rZV9p
aWlpaWk7dmFyIGFzPWVudi5pbnZva2VfaWk7dmFyIGF0PWVudi5pbnZva2VfaWlpaTt2YXIgYXU9
ZW52Lmludm9rZV92aWlpaWlmO3ZhciBhdj1lbnYuaW52b2tlX3ZpaWk7dmFyIGF3PWVudi5pbnZv
a2VfdmlpaWlpaWlpO3ZhciBheD1lbnYuaW52b2tlX3Y7dmFyIGF5PWVudi5pbnZva2VfaWlpaWlp
aWlpO3ZhciBhej1lbnYuaW52b2tlX3ZpaWlpaWlpaWk7dmFyIGFBPWVudi5pbnZva2VfdmlpaWlp
aWY7dmFyIGFCPWVudi5pbnZva2VfdmlpaWlpaTt2YXIgYUM9ZW52Lmludm9rZV9paWlpaTt2YXIg
YUQ9ZW52Lmludm9rZV92aWlpaTt2YXIgYUU9ZW52Ll9sbHZtX2xpZmV0aW1lX2VuZDt2YXIgYUY9
ZW52Ll9fc2NhblN0cmluZzt2YXIgYUc9ZW52Ll9wdGhyZWFkX211dGV4X2xvY2s7dmFyIGFIPWVu
di5fX19jeGFfZW5kX2NhdGNoO3ZhciBhST1lbnYuX3N0cnRvdWxsO3ZhciBhSj1lbnYuX19pc0Zs
b2F0O3ZhciBhSz1lbnYuX2ZmbHVzaDt2YXIgYUw9ZW52Ll9faXNMZWFwWWVhcjt2YXIgYU09ZW52
Ll9md3JpdGU7dmFyIGFOPWVudi5fc2VuZDt2YXIgYU89ZW52Ll9sbHZtX3VtdWxfd2l0aF9vdmVy
Zmxvd19pMzI7dmFyIGFQPWVudi5faXNzcGFjZTt2YXIgYVE9ZW52Ll9yZWFkO3ZhciBhUj1lbnYu
X19fY3hhX2d1YXJkX2Fib3J0O3ZhciBhUz1lbnYuX25ld2xvY2FsZTt2YXIgYVQ9ZW52Ll9fX2d4
eF9wZXJzb25hbGl0eV92MDt2YXIgYVU9ZW52Ll9wdGhyZWFkX2NvbmRfd2FpdDt2YXIgYVY9ZW52
Ll9fX2N4YV9yZXRocm93O3ZhciBhVz1lbnYuX19fcmVzdW1lRXhjZXB0aW9uO3ZhciBhWD1lbnYu
X2xsdm1fdmFfZW5kO3ZhciBhWT1lbnYuX3Zzc2NhbmY7dmFyIGFaPWVudi5fc25wcmludGY7dmFy
IGFfPWVudi5fZmdldGM7dmFyIGEkPWVudi5fYXRleGl0O3ZhciBhMD1lbnYuX19fY3hhX2ZyZWVf
ZXhjZXB0aW9uO3ZhciBhMT1lbnYuX19aOGNhdGNsb3NlUDhfbmxfY2F0ZDt2YXIgYTI9ZW52Ll9f
X3NldEVyck5vO3ZhciBhMz1lbnYuX2lzeGRpZ2l0O3ZhciBhND1lbnYuX2V4aXQ7dmFyIGE1PWVu
di5fc3ByaW50Zjt2YXIgYTY9ZW52Ll9fX2N0eXBlX2JfbG9jO3ZhciBhNz1lbnYuX2ZyZWVsb2Nh
bGU7dmFyIGE4PWVudi5fX1o3Y2F0b3BlblBLY2k7dmFyIGE5PWVudi5fYXNwcmludGY7dmFyIGJh
PWVudi5fX19jeGFfaXNfbnVtYmVyX3R5cGU7dmFyIGJiPWVudi5fX19jeGFfZG9lc19pbmhlcml0
O3ZhciBiYz1lbnYuX19fY3hhX2d1YXJkX2FjcXVpcmU7dmFyIGJkPWVudi5fX19sb2NhbGVfbWJf
Y3VyX21heDt2YXIgYmU9ZW52Ll9fX2N4YV9iZWdpbl9jYXRjaDt2YXIgYmY9ZW52Ll9yZWN2O3Zh
ciBiZz1lbnYuX19wYXJzZUludDY0O3ZhciBiaD1lbnYuX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlv
bnY7dmFyIGJpPWVudi5fX19jeGFfY2FsbF91bmV4cGVjdGVkO3ZhciBiaj1lbnYuX19leGl0O3Zh
ciBiaz1lbnYuX3N0cmZ0aW1lO3ZhciBibD1lbnYuX19fY3hhX3Rocm93O3ZhciBibT1lbnYuX2xs
dm1fZWhfZXhjZXB0aW9uO3ZhciBibj1lbnYuX3ByZWFkO3ZhciBibz1lbnYuX19hcnJheVN1bTt2
YXIgYnA9ZW52Ll9sb2c7dmFyIGJxPWVudi5fX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaDt2YXIg
YnI9ZW52Ll9fZm9ybWF0U3RyaW5nO3ZhciBicz1lbnYuX3B0aHJlYWRfY29uZF9icm9hZGNhc3Q7
dmFyIGJ0PWVudi5fX1pTdDl0ZXJtaW5hdGV2O3ZhciBidT1lbnYuX3B0aHJlYWRfbXV0ZXhfdW5s
b2NrO3ZhciBidj1lbnYuX3Nicms7dmFyIGJ3PWVudi5fX19lcnJub19sb2NhdGlvbjt2YXIgYng9
ZW52Ll9zdHJlcnJvcjt2YXIgYnk9ZW52Ll9sbHZtX2xpZmV0aW1lX3N0YXJ0O3ZhciBiej1lbnYu
X19fY3hhX2d1YXJkX3JlbGVhc2U7dmFyIGJBPWVudi5fdW5nZXRjO3ZhciBiQj1lbnYuX3VzZWxv
Y2FsZTt2YXIgYkM9ZW52Ll92c25wcmludGY7dmFyIGJEPWVudi5fc3NjYW5mO3ZhciBiRT1lbnYu
X3N5c2NvbmY7dmFyIGJGPWVudi5fZnJlYWQ7dmFyIGJHPWVudi5fYWJvcnQ7dmFyIGJIPWVudi5f
aXNkaWdpdDt2YXIgYkk9ZW52Ll9zdHJ0b2xsO3ZhciBiSj1lbnYuX19hZGREYXlzO3ZhciBiSz1l
bnYuX2Zsb29yO3ZhciBiTD1lbnYuX19yZWFsbHlOZWdhdGl2ZTt2YXIgYk09ZW52Ll9fWjdjYXRn
ZXRzUDhfbmxfY2F0ZGlpUEtjO3ZhciBiTj1lbnYuX3dyaXRlO3ZhciBiTz1lbnYuX19fY3hhX2Fs
bG9jYXRlX2V4Y2VwdGlvbjt2YXIgYlA9ZW52Ll9fX2N4YV9wdXJlX3ZpcnR1YWw7dmFyIGJRPWVu
di5fdmFzcHJpbnRmO3ZhciBiUj1lbnYuX19fY3R5cGVfdG91cHBlcl9sb2M7dmFyIGJTPWVudi5f
X19jdHlwZV90b2xvd2VyX2xvYzt2YXIgYlQ9ZW52Ll9wd3JpdGU7dmFyIGJVPWVudi5fc3RyZXJy
b3Jfcjt2YXIgYlY9ZW52Ll90aW1lOwotLy8gRU1TQ1JJUFRFTl9TVEFSVF9GVU5DUwotZnVuY3Rp
b24gY2MoYSl7YT1hfDA7dmFyIGI9MDtiPWk7aT1pK2F8MDtpPWkrNz4+Mzw8MztyZXR1cm4gYnww
fWZ1bmN0aW9uIGNkKCl7cmV0dXJuIGl8MH1mdW5jdGlvbiBjZShhKXthPWF8MDtpPWF9ZnVuY3Rp
b24gY2YoYSxiKXthPWF8MDtiPWJ8MDtpZigoeHwwKT09MCl7eD1hO3k9Yn19ZnVuY3Rpb24gY2co
Yil7Yj1ifDA7YVtrXT1hW2JdO2FbaysxfDBdPWFbYisxfDBdO2FbaysyfDBdPWFbYisyfDBdO2Fb
ayszfDBdPWFbYiszfDBdfWZ1bmN0aW9uIGNoKGIpe2I9YnwwO2Fba109YVtiXTthW2srMXwwXT1h
W2IrMXwwXTthW2srMnwwXT1hW2IrMnwwXTthW2srM3wwXT1hW2IrM3wwXTthW2srNHwwXT1hW2Ir
NHwwXTthW2srNXwwXT1hW2IrNXwwXTthW2srNnwwXT1hW2IrNnwwXTthW2srN3wwXT1hW2IrN3ww
XX1mdW5jdGlvbiBjaShhKXthPWF8MDtLPWF9ZnVuY3Rpb24gY2ooYSl7YT1hfDA7TD1hfWZ1bmN0
aW9uIGNrKGEpe2E9YXwwO009YX1mdW5jdGlvbiBjbChhKXthPWF8MDtOPWF9ZnVuY3Rpb24gY20o
YSl7YT1hfDA7Tz1hfWZ1bmN0aW9uIGNuKGEpe2E9YXwwO1A9YX1mdW5jdGlvbiBjbyhhKXthPWF8
MDtRPWF9ZnVuY3Rpb24gY3AoYSl7YT1hfDA7Uj1hfWZ1bmN0aW9uIGNxKGEpe2E9YXwwO1M9YX1m
dW5jdGlvbiBjcihhKXthPWF8MDtUPWF9ZnVuY3Rpb24gY3MoKXtjW3ErOD4+Ml09MjUwO2NbcSsx
Mj4+Ml09MTI4O2NbcSsxNj4+Ml09NjI7Y1txKzIwPj4yXT0xNTA7Y1txKzI0Pj4yXT04O2NbcSsy
OD4+Ml09MTA7Y1txKzMyPj4yXT0yO2NbcSszNj4+Ml09MjtjW3ArOD4+Ml09MjUwO2NbcCsxMj4+
Ml09MjQ0O2NbcCsxNj4+Ml09NjI7Y1twKzIwPj4yXT0xNTA7Y1twKzI0Pj4yXT04O2NbcCsyOD4+
Ml09MjY7Y1twKzMyPj4yXT00O2NbcCszNj4+Ml09ODtjWzIwMzZdPXArODtjWzIwMzhdPXArODtj
WzIwNDBdPXErODtjWzIwNDRdPXErODtjWzIwNDhdPXErODtjWzIwNTJdPXErODtjWzIwNTZdPXEr
ODtjWzIwNjBdPXArODtjWzIwOTRdPXErODtjWzIwOThdPXErODtjWzIxNjJdPXErODtjWzIxNjZd
PXErODtjWzIxODZdPXArODtjWzIxODhdPXErODtjWzIyMjRdPXErODtjWzIyMjhdPXErODtjWzIy
NjRdPXErODtjWzIyNjhdPXErODtjWzIyODhdPXArODtjWzIyOTBdPXArODtjWzIyOTJdPXErODtj
WzIyOTZdPXErODtjWzIzMDBdPXErODtjWzIzMDRdPXArODtjWzIzMDZdPXArODtjWzIzMDhdPXAr
ODtjWzIzMTBdPXArODtjWzIzMTJdPXArODtjWzIzMTRdPXArODtjWzIzMTZdPXArODtjWzIzNDJd
PXErODtjWzIzNDZdPXArODtjWzIzNDhdPXErODtjWzIzNTJdPXErODtjWzIzNTZdPXErODtjWzIz
NjBdPXArODtjWzIzNjJdPXArODtjWzIzNjRdPXArODtjWzIzNjZdPXArODtjWzI0MDBdPXArODtj
WzI0MDJdPXArODtjWzI0MDRdPXArODtjWzI0MDZdPXErODtjWzI0MTBdPXErODtjWzI0MTRdPXEr
ODtjWzI0MThdPXErODtjWzI0MjJdPXErODtjWzI0MjZdPXErOH1mdW5jdGlvbiBjdChhKXthPWF8
MDt2YXIgYj0wLGQ9MDtiPWNbYT4+Ml18MDtpZigoYnwwKT09MCl7cmV0dXJufWQ9YSs0fDA7YT1j
W2Q+PjJdfDA7aWYoKGJ8MCkhPShhfDApKXtjW2Q+PjJdPWErKH4oKGEtOCsoLWJ8MCl8MCk+Pj4z
KTw8Myl9a1MoYik7cmV0dXJufWZ1bmN0aW9uIGN1KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2
YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLjAsdz0wLHg9MCx5PTAuMCx6PTAuMDtkPWk7aT1pKzI0fDA7ZT1kfDA7Zj1kKzh8
MDtnPWZ8MDtjW2c+PjJdPTA7aj1mKzR8MDtjW2o+PjJdPTA7az1mKzh8MDtjW2s+PjJdPTA7bD1i
LWF8MDttPWw+PjM7ZG97aWYoKG18MCk9PTApe249MDtvPTB9ZWxzZXtpZihtPj4+MD41MzY4NzA5
MTEpe2lyKGYpfXA9a08obCl8MDtjW2o+PjJdPXA7Y1tnPj4yXT1wO2Nbaz4+Ml09cCsobTw8Myk7
aWYoKGF8MCk9PShifDApKXtuPXA7bz1wO2JyZWFrfWVsc2V7cT1hO3I9cH1kb3tpZigocnwwKT09
MCl7cz0wfWVsc2V7aFtyPj4zXT0raFtxPj4zXTtzPWNbaj4+Ml18MH1yPXMrOHwwO2Nbaj4+Ml09
cjtxPXErOHwwO313aGlsZSgocXwwKSE9KGJ8MCkpO249Y1tnPj4yXXwwO289cn19d2hpbGUoMCk7
Y1UobixvLGUpO2U9Y1tnPj4yXXwwO289Y1tqPj4yXXwwO0wyMzpkb3tpZigoZXwwKT09KG98MCkp
e3Q9ZX1lbHNle249ZTt3aGlsZSgxKXt1PW4rOHwwO2lmKCh1fDApPT0ob3wwKSl7dD1lO2JyZWFr
IEwyM312PStoW24+PjNdO2lmKHY9PStoW3U+PjNdKXticmVha31lbHNle249dX19aWYoKG58MCk9
PShvfDApKXt0PWU7YnJlYWt9ZWxzZXt3PXU7eD1uO3k9dn1MMjg6d2hpbGUoMSl7cj13O2Rve3I9
cis4fDA7aWYoKHJ8MCk9PShvfDApKXticmVhayBMMjh9ej0raFtyPj4zXTt9d2hpbGUoeT09eik7
Yj14Kzh8MDtoW2I+PjNdPXo7dz1yO3g9Yjt5PXp9dD1jW2c+PjJdfDB9fXdoaWxlKDApO2lmKCh0
fDApPT0wKXtpPWQ7cmV0dXJufWc9Y1tqPj4yXXwwO2lmKCh0fDApIT0oZ3wwKSl7Y1tqPj4yXT1n
Kyh+KChnLTgrKC10fDApfDApPj4+Myk8PDMpfWtTKHQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gY3Yo
YSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLjAseD0wLjAseT0wLHo9MC4w
O2Q9aTtpPWkrMjR8MDtlPWR8MDtmPWQrOHwwO2c9ZnwwO2NbZz4+Ml09MDtqPWYrNHwwO2Nbaj4+
Ml09MDtrPWYrOHwwO2Nbaz4+Ml09MDtsPWItYXwwO209bD4+Mztkb3tpZigobXwwKT09MCl7bj0w
O289MH1lbHNle2lmKG0+Pj4wPjUzNjg3MDkxMSl7aXIoZil9cD1rTyhsKXwwO2Nbaj4+Ml09cDtj
W2c+PjJdPXA7Y1trPj4yXT1wKyhtPDwzKTtpZigoYXwwKT09KGJ8MCkpe249cDtvPXA7YnJlYWt9
ZWxzZXtxPWE7cj1wfWRve2lmKChyfDApPT0wKXtzPTB9ZWxzZXtoW3I+PjNdPStoW3E+PjNdO3M9
Y1tqPj4yXXwwfXI9cys4fDA7Y1tqPj4yXT1yO3E9cSs4fDA7fXdoaWxlKChxfDApIT0oYnwwKSk7
bj1jW2c+PjJdfDA7bz1yfX13aGlsZSgwKTtjVShuLG8sZSk7ZT1jW2c+PjJdfDA7bz1jW2o+PjJd
fDA7TDU4OmRve2lmKChlfDApPT0ob3wwKSl7dD1lO3U9NjJ9ZWxzZXtuPWU7d2hpbGUoMSl7cj1u
Kzh8MDtpZigocnwwKT09KG98MCkpe3Y9ZTticmVhayBMNTh9aWYoK2hbbj4+M109PStoW3I+PjNd
KXt0PW47dT02MjticmVha31lbHNle249cn19fX13aGlsZSgwKTtkb3tpZigodXwwKT09NjIpe2lm
KCh0fDApPT0ob3wwKSl7dj1lO2JyZWFrfW49dCsxNnwwO2lmKChufDApPT0ob3wwKSl7dj1lO2Jy
ZWFrfXI9bjtuPXQ7dz0raFt0Pj4zXTt3aGlsZSgxKXt4PStoW3I+PjNdO2lmKHc9PXgpe3k9bjt6
PXd9ZWxzZXtiPW4rOHwwO2hbYj4+M109eDt5PWI7ej14fWI9cis4fDA7aWYoKGJ8MCk9PShvfDAp
KXticmVha31lbHNle3I9YjtuPXk7dz16fX12PWNbZz4+Ml18MH19d2hpbGUoMCk7aWYoKHZ8MCk9
PTApe2k9ZDtyZXR1cm59Zz1jW2o+PjJdfDA7aWYoKHZ8MCkhPShnfDApKXtjW2o+PjJdPWcrKH4o
KGctOCsoLXZ8MCl8MCk+Pj4zKTw8Myl9a1Modik7aT1kO3JldHVybn1mdW5jdGlvbiBjdyhhLGIs
ZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9
MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MDtk
PWk7aT1pKzh8MDtlPWR8MDtmPWU7Zz1pO2k9aSs4fDA7aj1nO2s9aTtpPWkrMXwwO2k9aSs3Pj4z
PDwzO2w9aTtpPWkrOHwwO209aTtpPWkrOHwwO249aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO289aTtp
PWkrMjR8MDtwPWk7aT1pKzh8MDtxPWk7aT1pKzh8MDtyPWI7cz1yLWE+PjM7aFtwPj4zXT0wLjA7
dD1vfDA7dT1vKzR8MDt2PW8rOHwwO2skKG98MCwwLDI0KTtkb3tpZigoc3wwKT09MCl7dz0wO3g9
bysxNnwwO3k9MDt6PTA7QT0wO0I9MH1lbHNle2NPKG8scyxwKTtDPWNbdT4+Ml18MDtEPW8rMTZ8
MDtFPWNbRD4+Ml18MDtGPWNbdj4+Ml18MDtHPUMrKEU+Pj45PDwyKXwwO2lmKChGfDApPT0oQ3ww
KSl7dz0wO3g9RDt5PUY7ej1FO0E9QztCPUc7YnJlYWt9dz0oY1tHPj4yXXwwKSsoKEUmNTExKTw8
Myl8MDt4PUQ7eT1GO3o9RTtBPUM7Qj1HfX13aGlsZSgwKTtpZigoYXwwKT09KGJ8MCkpe0g9QTtJ
PXo7Sj15fWVsc2V7eT1hO2E9dzt3PUI7d2hpbGUoMSl7Qj1hO3o9KGNbdz4+Ml18MCkrNDA5Ni1C
Pj4zO0E9eTtwPXItQT4+MztpZigocHwwKT4oenwwKSl7Sz15Kyh6PDwzKXwwO0w9en1lbHNle0s9
YjtMPXB9a18oYXwwLHl8MCxLLUF8MCk7ZG97aWYoKEx8MCk9PTApe009YTtOPXd9ZWxzZXtBPShC
LShjW3c+PjJdfDApPj4zKStMfDA7aWYoKEF8MCk+MCl7cD13KygoKEF8MCkvNTEyfDApPDwyKXww
O009KGNbcD4+Ml18MCkrKCgoQXwwKSU1MTJ8MCk8PDMpfDA7Tj1wO2JyZWFrfWVsc2V7cD01MTEt
QXwwO0E9dysoKChwfDApLy01MTJ8MCk8PDIpfDA7TT0oY1tBPj4yXXwwKSsoNTExLSgocHwwKSU1
MTJ8MCk8PDMpfDA7Tj1BO2JyZWFrfX19d2hpbGUoMCk7aWYoKEt8MCk9PShifDApKXticmVha31l
bHNle3k9SzthPU07dz1OfX1IPWNbdT4+Ml18MDtJPWNbeD4+Ml18MDtKPWNbdj4+Ml18MH1OPUgr
KEk+Pj45PDwyKXwwO2lmKChKfDApPT0oSHwwKSl7Sj1vKzIwfDA7Tz0wO1A9MDtRPTA7Uj0wO1M9
SjtUPUgrKChJKyhjW0o+PjJdfDApfDApPj4+OTw8Mil8MH1lbHNle0o9bysyMHwwO289SSsoY1tK
Pj4yXXwwKXwwO3c9SCsobz4+Pjk8PDIpfDA7Tz0oY1t3Pj4yXXwwKSsoKG8mNTExKTw8Myl8MDtQ
PTA7UT0oY1tOPj4yXXwwKSsoKEkmNTExKTw8Myl8MDtSPTA7Uz1KO1Q9d31jW2w+PjJdPVJ8Tjtj
W2wrND4+Ml09UTtjW20+PjJdPVB8VDtjW20rND4+Ml09TztjSyhsLG0sbik7bj1jW3U+PjJdfDA7
bT1jW3g+PjJdfDA7bD1uKyhtPj4+OTw8Mil8MDtpZigoY1t2Pj4yXXwwKT09KG58MCkpe1U9MDtW
PTA7Vz0wO1g9MDtZPW4rKChtKyhjW1M+PjJdfDApfDApPj4+OTw8Mil8MH1lbHNle089bSsoY1tT
Pj4yXXwwKXwwO1Q9bisoTz4+Pjk8PDIpfDA7VT0oY1tUPj4yXXwwKSsoKE8mNTExKTw8Myl8MDtW
PTA7Vz0oY1tsPj4yXXwwKSsoKG0mNTExKTw8Myl8MDtYPTA7WT1UfWNbZT4+Ml09WHxsO2NbZSs0
Pj4yXT1XO2NbZz4+Ml09VnxZO2NbZys0Pj4yXT1VO2NJKHEsZixqLGspO2s9Y1t1Pj4yXXwwO2o9
Y1t4Pj4yXXwwO2Y9aysoaj4+Pjk8PDIpfDA7cT1jW3Y+PjJdfDA7aWYoKHF8MCk9PShrfDApKXta
PTA7Xz0wfWVsc2V7VT0oY1tTPj4yXXwwKStqfDA7Wj0oY1trKyhVPj4+OTw8Mik+PjJdfDApKygo
VSY1MTEpPDwzKXwwO189KGNbZj4+Ml18MCkrKChqJjUxMSk8PDMpfDB9aj1mO2Y9XztMMTEyOndo
aWxlKDEpe189Zjtkb3tpZigoX3wwKT09KFp8MCkpe2JyZWFrIEwxMTJ9Xz1fKzh8MDt9d2hpbGUo
KF8tKGNbaj4+Ml18MCl8MCkhPTQwOTYpO189ais0fDA7aj1fO2Y9Y1tfPj4yXXwwfWNbUz4+Ml09
MDtTPXEtaz4+MjtpZihTPj4+MD4yKXtmPWs7d2hpbGUoMSl7a1MoY1tmPj4yXXwwKTtqPShjW3U+
PjJdfDApKzR8MDtjW3U+PjJdPWo7Wj1jW3Y+PjJdfDA7Xz1aLWo+PjI7aWYoXz4+PjA+Mil7Zj1q
fWVsc2V7JD1fO2FhPWo7YWI9WjticmVha319fWVsc2V7JD1TO2FhPWs7YWI9cX1zd2l0Y2goJHww
KXtjYXNlIDE6e2NbeD4+Ml09MjU2O2JyZWFrfTtjYXNlIDI6e2NbeD4+Ml09NTEyO2JyZWFrfTtk
ZWZhdWx0Ont9fWRve2lmKChhYXwwKSE9KGFifDApKXt4PWFhO2Rve2tTKGNbeD4+Ml18MCk7eD14
KzR8MDt9d2hpbGUoKHh8MCkhPShhYnwwKSk7eD1jW3U+PjJdfDA7JD1jW3Y+PjJdfDA7aWYoKHh8
MCk9PSgkfDApKXticmVha31jW3Y+PjJdPSQrKH4oKCQtNCsoLXh8MCl8MCk+Pj4yKTw8Mil9fXdo
aWxlKDApO3Y9Y1t0Pj4yXXwwO2lmKCh2fDApPT0wKXtpPWQ7cmV0dXJufWtTKHYpO2k9ZDtyZXR1
cm59ZnVuY3Rpb24gY3goYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MC4wLHk9MCx6PTA7ZD1pO2k9aSs0OHwwO2U9ZHwwO2Y9ZCs4fDA7Zz1kKzE2fDA7aj1kKzI0fDA7
az1kKzMyfDA7bD1rfDA7bT1rO2NbbD4+Ml09bTtuPWsrNHwwO2Nbbj4+Ml09bTtvPWsrOHwwO2Nb
bz4+Ml09MDtpZigoYXwwKT09KGJ8MCkpe3A9bTtxPTB9ZWxzZXtrPWE7YT1tO3I9MDt3aGlsZSgx
KXtzPWtPKDE2KXwwO3Q9czt1PXMrOHwwO2lmKCh1fDApIT0wKXtoW3U+PjNdPStoW2s+PjNdfWNb
YSs0Pj4yXT10O2Nbcz4+Ml09Y1tsPj4yXTtjW2w+PjJdPXQ7Y1tzKzQ+PjJdPW07dj0oY1tvPj4y
XXwwKSsxfDA7Y1tvPj4yXT12O3M9ays4fDA7aWYoKHN8MCk9PShifDApKXticmVha31lbHNle2s9
czthPXQ7cj12fX1wPWNbbj4+Ml18MDtxPXZ9Y1tlPj4yXT1wO2NbZj4+Ml09bTtjSihnLGUsZixx
LGopO2o9Y1tuPj4yXXwwO2lmKChqfDApIT0obXwwKSl7cT1qO3doaWxlKDEpe2o9Y1txKzQ+PjJd
fDA7TDE1MDpkb3tpZigoanwwKT09KG18MCkpe3c9bX1lbHNle3g9K2hbcSs4Pj4zXTtmPWo7d2hp
bGUoMSl7aWYoeCE9K2hbZis4Pj4zXSl7dz1mO2JyZWFrIEwxNTB9ZT1jW2YrND4+Ml18MDtpZigo
ZXwwKT09KG18MCkpe3c9bTticmVha31lbHNle2Y9ZX19fX13aGlsZSgwKTtpZigoanwwKT09KHd8
MCkpe3k9an1lbHNle2Y9KGNbdz4+Ml18MCkrNHwwO2U9anwwO2NbKGNbZT4+Ml18MCkrND4+Ml09
Y1tmPj4yXTtjW2NbZj4+Ml0+PjJdPWNbZT4+Ml07ZT1qO3doaWxlKDEpe2Y9Y1tlKzQ+PjJdfDA7
Y1tvPj4yXT0oY1tvPj4yXXwwKS0xO2tTKGUpO2lmKChmfDApPT0od3wwKSl7eT13O2JyZWFrfWVs
c2V7ZT1mfX19aWYoKHl8MCk9PShtfDApKXticmVha31lbHNle3E9eX19fWlmKChjW28+PjJdfDAp
PT0wKXtpPWQ7cmV0dXJufXk9Y1tuPj4yXXwwO249KGNbbD4+Ml18MCkrNHwwO2w9eXwwO2NbKGNb
bD4+Ml18MCkrND4+Ml09Y1tuPj4yXTtjW2Nbbj4+Ml0+PjJdPWNbbD4+Ml07Y1tvPj4yXT0wO2lm
KCh5fDApPT0obXwwKSl7aT1kO3JldHVybn1lbHNle3o9eX13aGlsZSgxKXt5PWNbeis0Pj4yXXww
O2tTKHopO2lmKCh5fDApPT0obXwwKSl7YnJlYWt9ZWxzZXt6PXl9fWk9ZDtyZXR1cm59ZnVuY3Rp
b24gY3koYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wO2Q9aTtpPWkrMzJ8MDtlPWR8MDtmPWQr
OHwwO2c9ZCsxNnwwO2o9Z3wwO2s9Zys0fDA7Y1trPj4yXT0wO2w9Zys4fDA7Y1tsPj4yXT0wO209
aztrPWd8MDtjW2s+PjJdPW07aWYoKGF8MCk9PShifDApKXtuPTA7Y0UoaixuKTtpPWQ7cmV0dXJu
fW89ZnwwO3A9Zys0fDA7Zz1hO2Rve2Nbbz4+Ml09bTthPWNIKGosZixlLGcpfDA7aWYoKGNbYT4+
Ml18MCk9PTApe3E9a08oMjQpfDA7cj1xKzE2fDA7aWYoKHJ8MCkhPTApe2hbcj4+M109K2hbZz4+
M119cj1jW2U+PjJdfDA7cz1xO2NbcT4+Ml09MDtjW3ErND4+Ml09MDtjW3ErOD4+Ml09cjtjW2E+
PjJdPXM7cj1jW2Nbaz4+Ml0+PjJdfDA7aWYoKHJ8MCk9PTApe3Q9c31lbHNle2Nbaz4+Ml09cjt0
PWNbYT4+Ml18MH1jRyhjW3A+PjJdfDAsdCk7Y1tsPj4yXT0oY1tsPj4yXXwwKSsxfWc9Zys4fDA7
fXdoaWxlKChnfDApIT0oYnwwKSk7bj1jW3A+PjJdfDA7Y0UoaixuKTtpPWQ7cmV0dXJufWZ1bmN0
aW9uIGN6KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9
MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTA7ZD1pO2k9aSszMnwwO2U9ZHwwO2Y9ZCs4fDA7
Zz1kKzE2fDA7aj1nfDA7az1nKzR8MDtjW2s+PjJdPTA7bD1nKzh8MDtjW2w+PjJdPTA7bT1rO249
Z3wwO2Nbbj4+Ml09bTtkb3tpZigoYXwwKSE9KGJ8MCkpe289ZnwwO3A9Zys0fDA7cT1hO2Rve2Nb
bz4+Ml09bTtyPWNDKGosZixlLHEpfDA7cz1rTygyNCl8MDt0PXMrMTZ8MDtpZigodHwwKSE9MCl7
aFt0Pj4zXT0raFtxPj4zXX10PWNbZT4+Ml18MDt1PXM7Y1tzPj4yXT0wO2Nbcys0Pj4yXT0wO2Nb
cys4Pj4yXT10O2Nbcj4+Ml09dTt0PWNbY1tuPj4yXT4+Ml18MDtpZigodHwwKT09MCl7dj11fWVs
c2V7Y1tuPj4yXT10O3Y9Y1tyPj4yXXwwfWNHKGNbcD4+Ml18MCx2KTtjW2w+PjJdPShjW2w+PjJd
fDApKzE7cT1xKzh8MDt9d2hpbGUoKHF8MCkhPShifDApKTtxPWNbbj4+Ml18MDtpZigocXwwKT09
KG18MCkpe2JyZWFrfXA9aztvPWcrNHwwO3I9cTtMMjAyOndoaWxlKDEpe3E9cnwwO3Q9cis0fDA7
dT1yKzE2fDA7d2hpbGUoMSl7dz1jW3Q+PjJdfDA7aWYoKHd8MCk9PTApe3M9cTt3aGlsZSgxKXt4
PWNbcys4Pj4yXXwwO2lmKChzfDApPT0oY1t4Pj4yXXwwKSl7eT14O2JyZWFrfWVsc2V7cz14fX19
ZWxzZXtzPXc7d2hpbGUoMSl7eD1jW3M+PjJdfDA7aWYoKHh8MCk9PTApe3k9czticmVha31lbHNl
e3M9eH19fXM9eTtpZigoeXwwKT09KHB8MCkpe3o9bztBPTIxMzticmVhayBMMjAyfWlmKCtoW3U+
PjNdIT0raFt5KzE2Pj4zXSl7YnJlYWt9eD1jW3krND4+Ml18MDtpZigoeHwwKT09MCl7Qj15O3do
aWxlKDEpe0M9Y1tCKzg+PjJdfDA7aWYoKEJ8MCk9PShjW0M+PjJdfDApKXtEPUM7YnJlYWt9ZWxz
ZXtCPUN9fX1lbHNle0I9eDt3aGlsZSgxKXtDPWNbQj4+Ml18MDtpZigoQ3wwKT09MCl7RD1CO2Jy
ZWFrfWVsc2V7Qj1DfX19aWYoKGNbbj4+Ml18MCk9PShzfDApKXtjW24+PjJdPUR9Y1tsPj4yXT0o
Y1tsPj4yXXwwKS0xO2NCKGNbbz4+Ml18MCx5KTtrUyh5KX1pZigod3wwKT09MCl7dT1xO3doaWxl
KDEpe3Q9Y1t1Kzg+PjJdfDA7aWYoKHV8MCk9PShjW3Q+PjJdfDApKXtFPXQ7YnJlYWt9ZWxzZXt1
PXR9fX1lbHNle3U9dzt3aGlsZSgxKXtxPWNbdT4+Ml18MDtpZigocXwwKT09MCl7RT11O2JyZWFr
fWVsc2V7dT1xfX19aWYoKEV8MCk9PShwfDApKXt6PW87QT0yMTQ7YnJlYWt9ZWxzZXtyPUV9fWlm
KChBfDApPT0yMTQpe0Y9Y1t6Pj4yXXwwO0c9RjtjRShqLEcpO2k9ZDtyZXR1cm59ZWxzZSBpZigo
QXwwKT09MjEzKXtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtpPWQ7cmV0dXJufX19d2hpbGUoMCk7
ej1nKzR8MDtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGNBKGEp
e2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAuMCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MC4wLHg9MCx5PTAsej0wLjAsQT0wLEI9MC4w
LEM9MCxEPTAsRT0wLEY9MC4wLEc9MCxIPTAsST0wLjAsSj0wLjAsTD0wLE09MCxOPTAsTz0wLFA9
MDtiPWk7aT1pKzI0fDA7ZD1ifDA7ZT1iKzh8MDtmPSsoYXwwKTtnPX5+K1UoKygxOTkzMTU2OC41
NjkzMjQxNzMvKGYqKCthZSgrZikvLjY5MzE0NzE4MDU1OTk0NTMpKSkpO2o9YTw8MTtrPWNbMjQ0
Nl18MDtsPWNbMjQ0N118MDtpZigoa3wwKSE9KGx8MCkpe2NbMjQ0N109bCsofigobC04Kygta3ww
KXwwKT4+PjMpPDwzKX1rPWV8MDtjW2s+PjJdPTA7bD1lKzR8MDtjW2w+PjJdPTA7bT1lKzh8MDtj
W20+PjJdPTA7aWYoKGp8MCk9PTApe249MH1lbHNle2lmKGo+Pj4wPjUzNjg3MDkxMSl7aXIoZSl9
ZT1rTyhhPDw0KXwwO2NbbD4+Ml09ZTtjW2s+PjJdPWU7Y1ttPj4yXT1lKyhqPDwzKTttPWo7bz1l
O2Rve2lmKChvfDApPT0wKXtwPTB9ZWxzZXtoW28+PjNdPTAuMDtwPWNbbD4+Ml18MH1vPXArOHww
O2NbbD4+Ml09bzttPW0tMXwwO313aGlsZSgobXwwKSE9MCk7bj1jW2s+PjJdfDB9bT1uKyhqPDwz
KXwwO289bisoYTw8Myl8MDtpZigoYXwwKSE9MCl7cD1uO2Y9MC4wO3doaWxlKDEpe2U9cCs4fDA7
aFtwPj4zXT1mO2lmKChlfDApPT0ob3wwKSl7YnJlYWt9ZWxzZXtwPWU7Zj1mKzEuMH19fWlmKChq
fDApIT0oYXwwKSl7aj1vO2Y9MC4wO3doaWxlKDEpe289ais4fDA7aFtqPj4zXT1mO2lmKChvfDAp
PT0obXwwKSl7YnJlYWt9ZWxzZXtqPW87Zj1mKzEuMH19fWNGKG4sbSk7aWYoKGd8MCk+MCl7aj1h
PDw0O2E9aj4+MztvPWFPKGF8MCw4KXwwO3A9bjtpZihLKXtlPWc7d2hpbGUoMSl7cT1lLTF8MDty
PWtQKC0xKXwwO3M9cjtrWShyfDAscHwwLGopfDA7dD1zKyhhPDwzKXwwO2NVKHMsdCxkKTtMMjY4
OmRve2lmKChzfDApIT0odHwwKSl7dT1zO3doaWxlKDEpe3Y9dSs4fDA7aWYoKHZ8MCk9PSh0fDAp
KXticmVhayBMMjY4fXc9K2hbdT4+M107aWYodz09K2hbdj4+M10pe2JyZWFrfWVsc2V7dT12fX1p
ZigodXwwKT09KHR8MCkpe2JyZWFrfWVsc2V7eD12O3k9dTt6PXd9d2hpbGUoMSl7QT14O2Rve0E9
QSs4fDA7aWYoKEF8MCk9PSh0fDApKXticmVhayBMMjY4fUI9K2hbQT4+M107fXdoaWxlKHo9PUIp
O0M9eSs4fDA7aFtDPj4zXT1CO3g9QTt5PUM7ej1CfX19d2hpbGUoMCk7aWYoKHJ8MCkhPTApe2tU
KHIpfWlmKChxfDApPjApe2U9cX1lbHNle0Q9ZzticmVha319fWVsc2V7ZT1nO3doaWxlKDEpe3k9
ZS0xfDA7eD1rUChvKXwwO3Y9eDtrWSh4fDAscHwwLGopfDA7dD12KyhhPDwzKXwwO2NVKHYsdCxk
KTtMMjg3OmRve2lmKCh2fDApIT0odHwwKSl7cz12O3doaWxlKDEpe0U9cys4fDA7aWYoKEV8MCk9
PSh0fDApKXticmVhayBMMjg3fUY9K2hbcz4+M107aWYoRj09K2hbRT4+M10pe2JyZWFrfWVsc2V7
cz1FfX1pZigoc3wwKT09KHR8MCkpe2JyZWFrfWVsc2V7Rz1FO0g9cztJPUZ9d2hpbGUoMSl7dT1H
O2Rve3U9dSs4fDA7aWYoKHV8MCk9PSh0fDApKXticmVhayBMMjg3fUo9K2hbdT4+M107fXdoaWxl
KEk9PUopO0E9SCs4fDA7aFtBPj4zXT1KO0c9dTtIPUE7ST1KfX19d2hpbGUoMCk7aWYoKHh8MCkh
PTApe2tUKHgpfWlmKCh5fDApPjApe2U9eX1lbHNle0Q9ZzticmVha319fXdoaWxlKDEpe2U9RC0x
fDA7Y3UobixtLGUpO2lmKChlfDApPjApe0Q9ZX1lbHNle0w9ZzticmVha319d2hpbGUoMSl7RD1M
LTF8MDtjdihuLG0sRCk7aWYoKER8MCk+MCl7TD1EfWVsc2V7TT1nO2JyZWFrfX13aGlsZSgxKXtM
PU0tMXwwO2N3KG4sbSxMKTtpZigoTHwwKT4wKXtNPUx9ZWxzZXtOPWc7YnJlYWt9fXdoaWxlKDEp
e009Ti0xfDA7Y3gobixtLE0pO2lmKChNfDApPjApe049TX1lbHNle089ZzticmVha319d2hpbGUo
MSl7Tj1PLTF8MDtjeShuLG0sTik7aWYoKE58MCk+MCl7Tz1OfWVsc2V7UD1nO2JyZWFrfX1kb3tQ
PVAtMXwwO2N6KG4sbSxQKTt9d2hpbGUoKFB8MCk+MCl9UD1jW2s+PjJdfDA7aWYoKFB8MCk9PTAp
e2k9YjtyZXR1cm59az1jW2w+PjJdfDA7aWYoKFB8MCkhPShrfDApKXtjW2w+PjJdPWsrKH4oKGst
OCsoLVB8MCl8MCk+Pj4zKTw8Myl9a1MoUCk7aT1iO3JldHVybn1mdW5jdGlvbiBjQihiLGQpe2I9
YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2U9ZHwwO2Y9Y1tlPj4yXXwwO2Rve2lmKChmfDAp
PT0wKXtnPWQ7aD0zMDF9ZWxzZXtpPWNbZCs0Pj4yXXwwO2lmKChpfDApPT0wKXtqPWY7az1kO2w9
ZHwwO2g9MzAzO2JyZWFrfWVsc2V7bT1pO3doaWxlKDEpe2k9Y1ttPj4yXXwwO2lmKChpfDApPT0w
KXtnPW07aD0zMDE7YnJlYWt9ZWxzZXttPWl9fX19fXdoaWxlKDApO2Rve2lmKChofDApPT0zMDEp
e2Y9Z3wwO209Y1tnKzQ+PjJdfDA7aWYoKG18MCkhPTApe2o9bTtrPWc7bD1mO2g9MzAzO2JyZWFr
fW49MDtvPTA7cD1nKzh8MDtxPWc7cj1mfX13aGlsZSgwKTtpZigoaHwwKT09MzAzKXtnPWsrOHww
O2Nbais4Pj4yXT1jW2c+PjJdO249ajtvPTE7cD1nO3E9aztyPWx9bD1jW3A+PjJdfDA7az1sfDA7
ZG97aWYoKHF8MCk9PShjW2s+PjJdfDApKXtjW2s+PjJdPW47aWYoKHF8MCk9PShifDApKXtzPW47
dD0wO2JyZWFrfXM9Yjt0PWNbKGNbcD4+Ml18MCkrND4+Ml18MH1lbHNle2NbbCs0Pj4yXT1uO3M9
Yjt0PWNbY1twPj4yXT4+Ml18MH19d2hpbGUoMCk7Yj1xKzEyfDA7bD0oYVtiXSYxKT09MDtpZigo
cXwwKT09KGR8MCkpe3U9c31lbHNle2s9ZCs4fDA7Zz1jW2s+PjJdfDA7Y1twPj4yXT1nO2lmKChj
W2Nbaz4+Ml0+PjJdfDApPT0oZHwwKSl7Y1tnPj4yXT1xfWVsc2V7Y1tnKzQ+PjJdPXF9Zz1jW2U+
PjJdfDA7Y1tyPj4yXT1nO2NbZys4Pj4yXT1xO2c9Y1tkKzQ+PjJdfDA7Y1txKzQ+PjJdPWc7aWYo
KGd8MCkhPTApe2NbZys4Pj4yXT1xfWFbYl09YVtkKzEyfDBdJjE7dT0oc3wwKT09KGR8MCk/cTpz
fWlmKGx8KHV8MCk9PTApe3JldHVybn1pZihvKXthW24rMTJ8MF09MTtyZXR1cm59ZWxzZXt2PXU7
dz10fXdoaWxlKDEpe3Q9dys4fDA7dT1jW3Q+PjJdfDA7bj13KzEyfDA7bz0oYVtuXSYxKSE9MDtp
Zigod3wwKT09KGNbdT4+Ml18MCkpe2lmKG8pe3g9djt5PXd9ZWxzZXthW25dPTE7YVt1KzEyfDBd
PTA7bD1jW3Q+PjJdfDA7cz1sfDA7cT1jW3M+PjJdfDA7ZD1xKzR8MDtiPWNbZD4+Ml18MDtjW3M+
PjJdPWI7aWYoKGJ8MCkhPTApe2NbYis4Pj4yXT1sfWI9bCs4fDA7Y1txKzg+PjJdPWNbYj4+Ml07
cz1jW2I+PjJdfDA7Zz1zfDA7aWYoKGNbZz4+Ml18MCk9PShsfDApKXtjW2c+PjJdPXF9ZWxzZXtj
W3MrND4+Ml09cX1jW2Q+PjJdPWw7Y1tiPj4yXT1xO3E9Y1t3KzQ+PjJdfDA7eD0odnwwKT09KHF8
MCk/dzp2O3k9Y1txPj4yXXwwfXo9Y1t5Pj4yXXwwO0E9KHp8MCk9PTA7aWYoIUEpe2lmKChhW3or
MTJ8MF0mMSk9PTApe2g9MzY1O2JyZWFrfX1xPWNbeSs0Pj4yXXwwO2lmKChxfDApIT0wKXtpZigo
YVtxKzEyfDBdJjEpPT0wKXtoPTM2NDticmVha319YVt5KzEyfDBdPTA7cT1jW3krOD4+Ml18MDtC
PXErMTJ8MDtpZigoYVtCXSYxKT09MHwocXwwKT09KHh8MCkpe2g9MzYxO2JyZWFrfWI9Y1txKzg+
PjJdfDA7bD1jW2I+PjJdfDA7aWYoKHF8MCkhPShsfDApKXt2PXg7dz1sO2NvbnRpbnVlfXY9eDt3
PWNbYis0Pj4yXXwwO2NvbnRpbnVlfWlmKG8pe0M9djtEPXd9ZWxzZXthW25dPTE7YVt1KzEyfDBd
PTA7dT1jW3Q+PjJdfDA7dD11KzR8MDtuPWNbdD4+Ml18MDtvPW58MDtiPWNbbz4+Ml18MDtjW3Q+
PjJdPWI7aWYoKGJ8MCkhPTApe2NbYis4Pj4yXT11fWI9dSs4fDA7Y1tuKzg+PjJdPWNbYj4+Ml07
dD1jW2I+PjJdfDA7bD10fDA7aWYoKGNbbD4+Ml18MCk9PSh1fDApKXtjW2w+PjJdPW59ZWxzZXtj
W3QrND4+Ml09bn1jW28+PjJdPXU7Y1tiPj4yXT1uO249Y1t3Pj4yXXwwO0M9KHZ8MCk9PShufDAp
P3c6djtEPWNbbis0Pj4yXXwwfUU9RHwwO0Y9Y1tFPj4yXXwwO2lmKChGfDApIT0wKXtpZigoYVtG
KzEyfDBdJjEpPT0wKXtoPTMzNTticmVha319bj1jW0QrND4+Ml18MDtpZigobnwwKSE9MCl7aWYo
KGFbbisxMnwwXSYxKT09MCl7Rz1uO2g9MzM2O2JyZWFrfX1hW0QrMTJ8MF09MDtuPWNbRCs4Pj4y
XXwwO2lmKChufDApPT0oQ3wwKSl7SD1DO2g9MzMyO2JyZWFrfWlmKChhW24rMTJ8MF0mMSk9PTAp
e0g9bjtoPTMzMjticmVha31iPWNbbis4Pj4yXXwwO3U9Y1tiPj4yXXwwO2lmKChufDApIT0odXww
KSl7dj1DO3c9dTtjb250aW51ZX12PUM7dz1jW2IrND4+Ml18MH1pZigoaHwwKT09MzMyKXthW0gr
MTJ8MF09MTtyZXR1cm59ZWxzZSBpZigoaHwwKT09MzM1KXtIPWNbRCs0Pj4yXXwwO2lmKChIfDAp
PT0wKXtoPTMzN31lbHNle0c9SDtoPTMzNn19ZWxzZSBpZigoaHwwKT09MzYxKXthW0JdPTE7cmV0
dXJufWVsc2UgaWYoKGh8MCk9PTM2NCl7aWYoQSl7aD0zNjZ9ZWxzZXtoPTM2NX19aWYoKGh8MCk9
PTMzNil7aWYoKGFbRysxMnwwXSYxKT09MCl7ST1EO2g9MzQzfWVsc2V7aD0zMzd9fWVsc2UgaWYo
KGh8MCk9PTM2NSl7aWYoKGFbeisxMnwwXSYxKT09MCl7Sj15O2g9MzcyfWVsc2V7aD0zNjZ9fWlm
KChofDApPT0zMzcpe2FbRisxMnwwXT0xO2FbRCsxMnwwXT0wO0Y9Y1tFPj4yXXwwO3o9Ris0fDA7
Rz1jW3o+PjJdfDA7Y1tFPj4yXT1HO2lmKChHfDApIT0wKXtjW0crOD4+Ml09RH1HPUQrOHwwO2Nb
Ris4Pj4yXT1jW0c+PjJdO0U9Y1tHPj4yXXwwO0E9RXwwO2lmKChjW0E+PjJdfDApPT0oRHwwKSl7
Y1tBPj4yXT1GfWVsc2V7Y1tFKzQ+PjJdPUZ9Y1t6Pj4yXT1EO2NbRz4+Ml09RjtJPUY7aD0zNDN9
ZWxzZSBpZigoaHwwKT09MzY2KXtGPXkrNHwwO2FbKGNbRj4+Ml18MCkrMTJ8MF09MTthW3krMTJ8
MF09MDtHPWNbRj4+Ml18MDtEPUd8MDt6PWNbRD4+Ml18MDtjW0Y+PjJdPXo7aWYoKHp8MCkhPTAp
e2Nbeis4Pj4yXT15fXo9eSs4fDA7Y1tHKzg+PjJdPWNbej4+Ml07Rj1jW3o+PjJdfDA7RT1GfDA7
aWYoKGNbRT4+Ml18MCk9PSh5fDApKXtjW0U+PjJdPUd9ZWxzZXtjW0YrND4+Ml09R31jW0Q+PjJd
PXk7Y1t6Pj4yXT1HO0o9RztoPTM3Mn1pZigoaHwwKT09MzQzKXtHPUkrOHwwO3o9KGNbRz4+Ml18
MCkrMTJ8MDthW0krMTJ8MF09YVt6XSYxO2Fbel09MTthWyhjW0krND4+Ml18MCkrMTJ8MF09MTtJ
PWNbRz4+Ml18MDtHPUkrNHwwO3o9Y1tHPj4yXXwwO3k9enwwO0Q9Y1t5Pj4yXXwwO2NbRz4+Ml09
RDtpZigoRHwwKSE9MCl7Y1tEKzg+PjJdPUl9RD1JKzh8MDtjW3orOD4+Ml09Y1tEPj4yXTtHPWNb
RD4+Ml18MDtGPUd8MDtpZigoY1tGPj4yXXwwKT09KEl8MCkpe2NbRj4+Ml09en1lbHNle2NbRys0
Pj4yXT16fWNbeT4+Ml09STtjW0Q+PjJdPXo7cmV0dXJufWVsc2UgaWYoKGh8MCk9PTM3Mil7aD1K
Kzh8MDt6PShjW2g+PjJdfDApKzEyfDA7YVtKKzEyfDBdPWFbel0mMTthW3pdPTE7YVsoY1tKPj4y
XXwwKSsxMnwwXT0xO0o9Y1toPj4yXXwwO2g9SnwwO3o9Y1toPj4yXXwwO0Q9eis0fDA7ST1jW0Q+
PjJdfDA7Y1toPj4yXT1JO2lmKChJfDApIT0wKXtjW0krOD4+Ml09Sn1JPUorOHwwO2Nbeis4Pj4y
XT1jW0k+PjJdO2g9Y1tJPj4yXXwwO3k9aHwwO2lmKChjW3k+PjJdfDApPT0oSnwwKSl7Y1t5Pj4y
XT16fWVsc2V7Y1toKzQ+PjJdPXp9Y1tEPj4yXT1KO2NbST4+Ml09ejtyZXR1cm59fWZ1bmN0aW9u
IGNDKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGo9MCxrPTAu
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wO2Y9aTtnPWI7Yj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2c+PjJdO2c9YSs0fDA7aj1jW2I+PjJdfDA7
ZG97aWYoKGp8MCkhPShnfDApKXtrPStoW2U+PjNdO2lmKCtoW2orMTY+PjNdPj1rKXticmVha31i
PWd8MDtsPWNbYj4+Ml18MDtpZigobHwwKT09MCl7Y1tkPj4yXT1nO209YjtpPWY7cmV0dXJuIG18
MH1lbHNle249bH13aGlsZSgxKXtpZigraFtuKzE2Pj4zXTxrKXtvPW4rNHwwO2w9Y1tvPj4yXXww
O2lmKChsfDApPT0wKXtwPTQwNjticmVha31lbHNle249bDtjb250aW51ZX19ZWxzZXtxPW58MDts
PWNbcT4+Ml18MDtpZigobHwwKT09MCl7cD00MDg7YnJlYWt9ZWxzZXtuPWw7Y29udGludWV9fX1p
ZigocHwwKT09NDA4KXtjW2Q+PjJdPW47bT1xO2k9ZjtyZXR1cm4gbXwwfWVsc2UgaWYoKHB8MCk9
PTQwNil7Y1tkPj4yXT1uO209bztpPWY7cmV0dXJuIG18MH19fXdoaWxlKDApO289Y1tqPj4yXXww
O2Rve2lmKChqfDApPT0oY1thPj4yXXwwKSl7cj1qfWVsc2V7aWYoKG98MCk9PTApe249anwwO3do
aWxlKDEpe3E9Y1tuKzg+PjJdfDA7aWYoKG58MCk9PShjW3E+PjJdfDApKXtuPXF9ZWxzZXtzPXE7
YnJlYWt9fX1lbHNle249bzt3aGlsZSgxKXtxPWNbbis0Pj4yXXwwO2lmKChxfDApPT0wKXtzPW47
YnJlYWt9ZWxzZXtuPXF9fX1rPStoW2U+PjNdO2lmKGs+PStoW3MrMTY+PjNdKXtyPXM7YnJlYWt9
bj1nfDA7cT1jW24+PjJdfDA7aWYoKHF8MCk9PTApe2NbZD4+Ml09ZzttPW47aT1mO3JldHVybiBt
fDB9ZWxzZXt0PXF9d2hpbGUoMSl7aWYoazwraFt0KzE2Pj4zXSl7dT10fDA7cT1jW3U+PjJdfDA7
aWYoKHF8MCk9PTApe3A9Mzk5O2JyZWFrfWVsc2V7dD1xO2NvbnRpbnVlfX1lbHNle3Y9dCs0fDA7
cT1jW3Y+PjJdfDA7aWYoKHF8MCk9PTApe3A9NDAxO2JyZWFrfWVsc2V7dD1xO2NvbnRpbnVlfX19
aWYoKHB8MCk9PTM5OSl7Y1tkPj4yXT10O209dTtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKChwfDAp
PT00MDEpe2NbZD4+Ml09dDttPXY7aT1mO3JldHVybiBtfDB9fX13aGlsZSgwKTtpZigob3wwKT09
MCl7Y1tkPj4yXT1qO209anwwO2k9ZjtyZXR1cm4gbXwwfWVsc2V7Y1tkPj4yXT1yO209cis0fDA7
aT1mO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rpb24gY0QoKXtjQSgxZTUpO3JldHVybiAwfWZ1
bmN0aW9uIGNFKGEsYil7YT1hfDA7Yj1ifDA7aWYoKGJ8MCk9PTApe3JldHVybn1lbHNle2NFKGEs
Y1tiPj4yXXwwKTtjRShhLGNbYis0Pj4yXXwwKTtrUyhiKTtyZXR1cm59fWZ1bmN0aW9uIGNGKGEs
Yil7YT1hfDA7Yj1ifDA7dmFyIGM9MCxkPTAsZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLjA7
Yz1pO2k9aSs4fDA7ZD1jfDA7ZT1iLWF8MDtpZigoZXwwKTw9OCl7aT1jO3JldHVybn1jWShkKTtm
PWItOHwwO2lmKGY+Pj4wPmE+Pj4wKXtiPWE7YT1lPj4zO3doaWxlKDEpe2U9YS0xfDA7ZG97aWYo
KGV8MCkhPTApe2lmKChhfDApPT0wKXtnPWNYKGQpfDB9ZWxzZXtqPTMyLShrWihhfDApfDApfDA7
az0oKCgtMT4+PigoMzMtanwwKT4+PjApJmF8MCk9PTApPDwzMT4+MzEpK2p8MDtqPShrPj4+MCkv
KCgoKGsmMzF8MCkhPTApKyhrPj4+NSl8MCk+Pj4wKXwwO2lmKChqfDApPT0wKXtsPTB9ZWxzZXts
PS0xPj4+KCgzMi1qfDApPj4+MCl9d2hpbGUoMSl7aj0oY1goZCl8MCkmbDtpZihqPj4+MDxhPj4+
MCl7Zz1qO2JyZWFrfX19aWYoKGd8MCk9PTApe2JyZWFrfWo9YisoZzw8Myl8MDttPStoW2I+PjNd
O2hbYj4+M109K2hbaj4+M107aFtqPj4zXT1tfX13aGlsZSgwKTtqPWIrOHwwO2lmKGo+Pj4wPGY+
Pj4wKXtiPWo7YT1lfWVsc2V7YnJlYWt9fX1jVyhkKTtpPWM7cmV0dXJufWZ1bmN0aW9uIGNHKGIs
ZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wO2U9KGR8MCk9PShifDApO2FbZCsxMnwwXT1lJjE7aWYoZSl7
cmV0dXJufWVsc2V7Zj1kfXdoaWxlKDEpe2c9Zis4fDA7aD1jW2c+PjJdfDA7ZD1oKzEyfDA7aWYo
KGFbZF0mMSkhPTApe2k9NDg3O2JyZWFrfWo9aCs4fDA7az1jW2o+PjJdfDA7ZT1jW2s+PjJdfDA7
aWYoKGh8MCk9PShlfDApKXtsPWNbays0Pj4yXXwwO2lmKChsfDApPT0wKXtpPTQ1MjticmVha31t
PWwrMTJ8MDtpZigoYVttXSYxKSE9MCl7aT00NTI7YnJlYWt9YVtkXT0xO2FbaysxMnwwXT0oa3ww
KT09KGJ8MCl8MDthW21dPTF9ZWxzZXtpZigoZXwwKT09MCl7aT00Njk7YnJlYWt9bT1lKzEyfDA7
aWYoKGFbbV0mMSkhPTApe2k9NDY5O2JyZWFrfWFbZF09MTthW2srMTJ8MF09KGt8MCk9PShifDAp
fDA7YVttXT0xfWlmKChrfDApPT0oYnwwKSl7aT00ODQ7YnJlYWt9ZWxzZXtmPWt9fWlmKChpfDAp
PT00Njkpe2I9aHwwO2lmKChmfDApPT0oY1tiPj4yXXwwKSl7bT1mKzR8MDtkPWNbbT4+Ml18MDtj
W2I+PjJdPWQ7aWYoKGR8MCk9PTApe249a31lbHNle2NbZCs4Pj4yXT1oO249Y1tqPj4yXXwwfWNb
Zz4+Ml09bjtuPWNbaj4+Ml18MDtkPW58MDtpZigoY1tkPj4yXXwwKT09KGh8MCkpe2NbZD4+Ml09
Zn1lbHNle2Nbbis0Pj4yXT1mfWNbbT4+Ml09aDtjW2o+PjJdPWY7bz1mO3A9Y1tnPj4yXXwwfWVs
c2V7bz1oO3A9a31hW28rMTJ8MF09MTthW3ArMTJ8MF09MDtvPXArNHwwO2c9Y1tvPj4yXXwwO209
Z3wwO249Y1ttPj4yXXwwO2Nbbz4+Ml09bjtpZigobnwwKSE9MCl7Y1tuKzg+PjJdPXB9bj1wKzh8
MDtjW2crOD4+Ml09Y1tuPj4yXTtvPWNbbj4+Ml18MDtkPW98MDtpZigoY1tkPj4yXXwwKT09KHB8
MCkpe2NbZD4+Ml09Z31lbHNle2Nbbys0Pj4yXT1nfWNbbT4+Ml09cDtjW24+PjJdPWc7cmV0dXJu
fWVsc2UgaWYoKGl8MCk9PTQ4NCl7cmV0dXJufWVsc2UgaWYoKGl8MCk9PTQ4Nyl7cmV0dXJufWVs
c2UgaWYoKGl8MCk9PTQ1Mil7aWYoKGZ8MCk9PShjW2g+PjJdfDApKXtxPWg7cj1rfWVsc2V7Zj1o
KzR8MDtpPWNbZj4+Ml18MDtnPWl8MDtuPWNbZz4+Ml18MDtjW2Y+PjJdPW47aWYoKG58MCk9PTAp
e3M9a31lbHNle2Nbbis4Pj4yXT1oO3M9Y1tqPj4yXXwwfW49aSs4fDA7Y1tuPj4yXT1zO3M9Y1tq
Pj4yXXwwO2s9c3wwO2lmKChjW2s+PjJdfDApPT0oaHwwKSl7Y1trPj4yXT1pfWVsc2V7Y1tzKzQ+
PjJdPWl9Y1tnPj4yXT1oO2Nbaj4+Ml09aTtxPWk7cj1jW24+PjJdfDB9YVtxKzEyfDBdPTE7YVty
KzEyfDBdPTA7cT1yfDA7bj1jW3E+PjJdfDA7aT1uKzR8MDtqPWNbaT4+Ml18MDtjW3E+PjJdPWo7
aWYoKGp8MCkhPTApe2Nbais4Pj4yXT1yfWo9cis4fDA7Y1tuKzg+PjJdPWNbaj4+Ml07cT1jW2o+
PjJdfDA7aD1xfDA7aWYoKGNbaD4+Ml18MCk9PShyfDApKXtjW2g+PjJdPW59ZWxzZXtjW3ErND4+
Ml09bn1jW2k+PjJdPXI7Y1tqPj4yXT1uO3JldHVybn19ZnVuY3Rpb24gY0goYSxiLGQsZSl7YT1h
fDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaj0wLGs9MC4wLGw9MC4wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2Y9aTtn
PWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2c+PjJdO2c9YSs0fDA7aj1jW2I+
PjJdfDA7ZG97aWYoKGp8MCkhPShnfDApKXtrPStoW2U+PjNdO2w9K2hbaisxNj4+M107aWYoazxs
KXticmVha31pZihsPj1rKXtjW2Q+PjJdPWo7bT1kO2k9ZjtyZXR1cm4gbXwwfWI9ais0fDA7bj1j
W2I+PjJdfDA7bz0obnwwKT09MDtpZihvKXtwPWp8MDt3aGlsZSgxKXtxPWNbcCs4Pj4yXXwwO2lm
KChwfDApPT0oY1txPj4yXXwwKSl7cj1xO2JyZWFrfWVsc2V7cD1xfX19ZWxzZXtwPW47d2hpbGUo
MSl7cT1jW3A+PjJdfDA7aWYoKHF8MCk9PTApe3I9cDticmVha31lbHNle3A9cX19fXA9Zztkb3tp
ZigocnwwKSE9KHB8MCkpe2lmKGs8K2hbcisxNj4+M10pe2JyZWFrfW49Z3wwO3E9Y1tuPj4yXXww
O2lmKChxfDApPT0wKXtjW2Q+PjJdPXA7bT1uO2k9ZjtyZXR1cm4gbXwwfWVsc2V7cz1xfXdoaWxl
KDEpe2w9K2hbcysxNj4+M107aWYoazxsKXt0PXN8MDtxPWNbdD4+Ml18MDtpZigocXwwKT09MCl7
dT01MjE7YnJlYWt9ZWxzZXtzPXE7Y29udGludWV9fWlmKGw+PWspe3U9NTI1O2JyZWFrfXY9cys0
fDA7cT1jW3Y+PjJdfDA7aWYoKHF8MCk9PTApe3U9NTI0O2JyZWFrfWVsc2V7cz1xfX1pZigodXww
KT09NTIxKXtjW2Q+PjJdPXM7bT10O2k9ZjtyZXR1cm4gbXwwfWVsc2UgaWYoKHV8MCk9PTUyNCl7
Y1tkPj4yXT1zO209djtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1fDApPT01MjUpe2NbZD4+Ml09
czttPWQ7aT1mO3JldHVybiBtfDB9fX13aGlsZSgwKTtpZihvKXtjW2Q+PjJdPWo7bT1iO2k9Zjty
ZXR1cm4gbXwwfWVsc2V7Y1tkPj4yXT1yO209cnwwO2k9ZjtyZXR1cm4gbXwwfX19d2hpbGUoMCk7
cj1jW2o+PjJdfDA7ZG97aWYoKGp8MCk9PShjW2E+PjJdfDApKXt3PWp9ZWxzZXtpZigocnwwKT09
MCl7cz1qfDA7d2hpbGUoMSl7dj1jW3MrOD4+Ml18MDtpZigoc3wwKT09KGNbdj4+Ml18MCkpe3M9
dn1lbHNle3g9djticmVha319fWVsc2V7cz1yO3doaWxlKDEpe2I9Y1tzKzQ+PjJdfDA7aWYoKGJ8
MCk9PTApe3g9czticmVha31lbHNle3M9Yn19fWs9K2hbZT4+M107aWYoK2hbeCsxNj4+M108ayl7
dz14O2JyZWFrfXM9Z3wwO2I9Y1tzPj4yXXwwO2lmKChifDApPT0wKXtjW2Q+PjJdPWc7bT1zO2k9
ZjtyZXR1cm4gbXwwfWVsc2V7eT1ifXdoaWxlKDEpe2w9K2hbeSsxNj4+M107aWYoazxsKXt6PXl8
MDtiPWNbej4+Ml18MDtpZigoYnwwKT09MCl7dT01MDI7YnJlYWt9ZWxzZXt5PWI7Y29udGludWV9
fWlmKGw+PWspe3U9NTA2O2JyZWFrfUE9eSs0fDA7Yj1jW0E+PjJdfDA7aWYoKGJ8MCk9PTApe3U9
NTA1O2JyZWFrfWVsc2V7eT1ifX1pZigodXwwKT09NTA1KXtjW2Q+PjJdPXk7bT1BO2k9ZjtyZXR1
cm4gbXwwfWVsc2UgaWYoKHV8MCk9PTUwNil7Y1tkPj4yXT15O209ZDtpPWY7cmV0dXJuIG18MH1l
bHNlIGlmKCh1fDApPT01MDIpe2NbZD4+Ml09eTttPXo7aT1mO3JldHVybiBtfDB9fX13aGlsZSgw
KTtpZigocnwwKT09MCl7Y1tkPj4yXT1qO209anwwO2k9ZjtyZXR1cm4gbXwwfWVsc2V7Y1tkPj4y
XT13O209dys0fDA7aT1mO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rpb24gY0koYixkLGUsZil7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9
MCxFPTAsRj0wLEc9MC4wLEg9MCxJPTA7Zz1pO2o9ZDtkPWk7aT1pKzh8MDtjW2Q+PjJdPWNbaj4+
Ml07Y1tkKzQ+PjJdPWNbais0Pj4yXTtqPWU7ZT1pO2k9aSs4fDA7Y1tlPj4yXT1jW2o+PjJdO2Nb
ZSs0Pj4yXT1jW2orND4+Ml07aj1mO2Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO2FbZl09YVtqXXww
O2o9ZHwwO2Y9ZCs0fDA7az1jW2Y+PjJdfDA7bD1jW2U+PjJdfDA7bT1jW2UrND4+Ml18MDtMNjU1
OmRve2lmKChrfDApPT0obXwwKSl7bj1rO289bDtwPTU0OX1lbHNle2U9Y1tqPj4yXXwwO3E9ZTty
PWs7cz1jW2U+PjJdfDA7d2hpbGUoMSl7ZT1yKzh8MDtpZigoZS1zfDApPT00MDk2KXt0PXErNHww
O3U9Y1t0Pj4yXXwwO3Y9dDt3PXU7eD11fWVsc2V7dj1xO3c9ZTt4PXN9aWYoKHd8MCk9PShtfDAp
KXticmVha31pZigraFtyPj4zXT09K2hbdz4+M10pe249cjtvPXE7cD01NDk7YnJlYWsgTDY1NX1l
bHNle3E9djtyPXc7cz14fX1jW2o+PjJdPWw7Y1tmPj4yXT1tfX13aGlsZSgwKTtkb3tpZigocHww
KT09NTQ5KXtjW2o+PjJdPW87Y1tmPj4yXT1uO2lmKChufDApPT0obXwwKSl7YnJlYWt9bD1uKzh8
MDt4PWNbbz4+Ml18MDtpZigobC14fDApPT00MDk2KXt3PW8rNHwwO3Y9Y1t3Pj4yXXwwO3k9dzt6
PXY7QT12O0I9bjtDPW99ZWxzZXt5PW87ej1sO0E9eDtCPW47Qz1vfXdoaWxlKDEpe3g9eis4fDA7
aWYoKHgtQXwwKT09NDA5Nil7bD15KzR8MDt2PWNbbD4+Ml18MDtEPWw7RT12O0Y9dn1lbHNle0Q9
eTtFPXg7Rj1BfWlmKChFfDApPT0obXwwKSl7YnJlYWt9Rz0raFtFPj4zXTtpZigraFtCPj4zXT09
Ryl7eT1EO3o9RTtBPUY7Qj1CO0M9Qztjb250aW51ZX14PUIrOHwwO2NbZj4+Ml09eDtpZigoeC0o
Y1tDPj4yXXwwKXwwKT09NDA5Nil7dj1DKzR8MDtjW2o+PjJdPXY7bD1jW3Y+PjJdfDA7Y1tmPj4y
XT1sO0g9djtJPWx9ZWxzZXtIPUM7ST14fWhbST4+M109Rzt5PUQ7ej1FO0E9Y1tEPj4yXXwwO0I9
STtDPUh9eD1CKzh8MDtjW2Y+PjJdPXg7aWYoKHgtKGNbQz4+Ml18MCl8MCkhPTQwOTYpe2JyZWFr
fXg9Qys0fDA7Y1tqPj4yXT14O2NbZj4+Ml09Y1t4Pj4yXX19d2hpbGUoMCk7Zj1kO2Q9YjtiPWNb
Zis0Pj4yXXwwO2NbZD4+Ml09Y1tmPj4yXTtjW2QrND4+Ml09YjtpPWc7cmV0dXJufWZ1bmN0aW9u
IGNKKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLjAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAuMCxEPTA7Zz1pO2k9aSs0OHwwO2o9YjtiPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2I+PjJdPWNbaj4+Ml07aj1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
ZD4+Ml09Y1tqPj4yXTtqPWd8MDtrPWcrOHwwO2w9ZysxNnwwO209ZysyNHwwO249ZyszMnwwO289
Zys0MHwwO3N3aXRjaChlfDApe2Nhc2UgMjp7cD1kfDA7cT1jW2NbcD4+Ml0+PjJdfDA7Y1twPj4y
XT1xO3A9Y1tiPj4yXXwwO2lmKCtoW3ErOD4+M108K2hbcCs4Pj4zXSl7cj1xKzR8MDtzPXF8MDtj
WyhjW3M+PjJdfDApKzQ+PjJdPWNbcj4+Ml07Y1tjW3I+PjJdPj4yXT1jW3M+PjJdO3Q9cHwwO2Nb
KGNbdD4+Ml18MCkrND4+Ml09cTtjW3M+PjJdPWNbdD4+Ml07Y1t0Pj4yXT1xO2Nbcj4+Ml09cDtj
W2E+PjJdPXE7aT1nO3JldHVybn1lbHNle2NbYT4+Ml09cDtpPWc7cmV0dXJufWJyZWFrfTtjYXNl
IDA6Y2FzZSAxOntjW2E+PjJdPWNbYj4+Ml07aT1nO3JldHVybn07ZGVmYXVsdDp7cD1lPj4+MTtx
PWJ8MDtiPWNbcT4+Ml18MDtpZigocHwwKT09MCl7dT1ifWVsc2V7cj1wO3Q9Yjt3aGlsZSgxKXtz
PXItMXwwO3Y9Y1t0KzQ+PjJdfDA7aWYoKHN8MCk+MCl7cj1zO3Q9dn1lbHNle3U9djticmVha319
fWNbaz4+Ml09YjtjW2w+PjJdPXU7Y0ooaixrLGwscCxmKTtsPWNbaj4+Ml18MDtjW3E+PjJdPWw7
Y1tuPj4yXT11O3U9ZHwwO2Q9Y1t1Pj4yXXwwO2Nbbz4+Ml09ZDtjSihtLG4sbyxlLXB8MCxmKTtm
PWNbbT4+Ml18MDt3PStoW2wrOD4+M107aWYoK2hbZis4Pj4zXTx3KXttPWNbZis0Pj4yXXwwO0w2
OTc6ZG97aWYoKG18MCk9PShkfDApKXt4PWR9ZWxzZXtwPW07d2hpbGUoMSl7aWYoK2hbcCs4Pj4z
XT49dyl7eD1wO2JyZWFrIEw2OTd9ZT1jW3ArND4+Ml18MDtpZigoZXwwKT09KGR8MCkpe3g9ZDti
cmVha31lbHNle3A9ZX19fX13aGlsZSgwKTttPWNbeD4+Ml18MDtwPW0rNHwwO2U9ZnwwO2NbKGNb
ZT4+Ml18MCkrND4+Ml09Y1twPj4yXTtjW2NbcD4+Ml0+PjJdPWNbZT4+Ml07bz1jW2wrND4+Ml18
MDtuPWx8MDtjWyhjW24+PjJdfDApKzQ+PjJdPWY7Y1tlPj4yXT1jW24+PjJdO2Nbbj4+Ml09bTtj
W3A+PjJdPWw7eT1mO3o9eDtBPW99ZWxzZXt5PWw7ej1mO0E9Y1tsKzQ+PjJdfDB9Y1txPj4yXT1B
O0w3MDQ6ZG97aWYoKEF8MCkhPSh6fDApKXtsPXo7Zj16O289QTt4PWQ7d2hpbGUoMSl7cD1sKzh8
MDtpZigobHwwKT09KHh8MCkpe2JyZWFrIEw3MDR9ZWxzZXtCPW99d2hpbGUoMSl7Qz0raFtCKzg+
PjNdO2lmKCtoW3A+PjNdPEMpe2JyZWFrfW09Y1tCKzQ+PjJdfDA7Y1txPj4yXT1tO2lmKChtfDAp
PT0oZnwwKSl7YnJlYWsgTDcwNH1lbHNle0I9bX19cD1jW2wrND4+Ml18MDtMNzExOmRve2lmKChw
fDApPT0oeHwwKSl7RD14fWVsc2V7bT1wO3doaWxlKDEpe2lmKCtoW20rOD4+M10+PUMpe0Q9bTti
cmVhayBMNzExfW49Y1ttKzQ+PjJdfDA7aWYoKG58MCk9PSh4fDApKXtEPXg7YnJlYWt9ZWxzZXtt
PW59fX19d2hpbGUoMCk7cD1jW0Q+PjJdfDA7bT1wKzR8MDtuPWx8MDtjWyhjW24+PjJdfDApKzQ+
PjJdPWNbbT4+Ml07Y1tjW20+PjJdPj4yXT1jW24+PjJdO2U9Y1tCKzQ+PjJdfDA7aj0oZnwwKT09
KGx8MCk/RDpmO2s9QnwwO2NbKGNbaz4+Ml18MCkrND4+Ml09bDtjW24+PjJdPWNbaz4+Ml07Y1tr
Pj4yXT1wO2NbbT4+Ml09QjtjW3E+PjJdPWU7aWYoKGV8MCk9PShqfDApKXticmVhayBMNzA0fWw9
RDtmPWo7bz1lO3g9Y1t1Pj4yXXwwfX19d2hpbGUoMCk7Y1thPj4yXT15O2k9ZztyZXR1cm59fX1m
dW5jdGlvbiBjSyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAs
JD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9
MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2PTAs
YXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0wLGFFPTAsYUY9MCxhRz0wLjAs
YUg9MC4wLGFJPTAuMCxhSj0wLjAsYUs9MC4wLGFMPTAsYU09MCxhTj0wLGFPPTAsYVA9MCxhUT0w
LGFSPTAsYVM9MC4wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxhWT0wLGFaPTAsYV89MCxhJD0w
LGEwPTAuMCxhMT0wLGEyPTAsYTM9MCxhND0wLGE1PTAsYTY9MCxhNz0wLGE4PTAuMCxhOT0wLGJh
PTAsYmI9MCxiYz0wLGJkPTAuMCxiZT0wLGJmPTAsYmc9MCxiaD0wLGJpPTAsYmo9MCxiaz0wLGJs
PTAsYm09MCxibj0wLGJvPTAsYnA9MCxicT0wLGJyPTAsYnM9MCxidD0wLGJ1PTAuMCxidj0wLGJ3
PTAsYng9MCxieT0wLGJ6PTAuMCxiQT0wLGJCPTAsYkM9MCxiRD0wLGJFPTAsYkY9MCxiRz0wLGJI
PTAsYkk9MCxiSj0wLGJLPTAsYkw9MCxiTT0wLGJOPTAsYk89MCxiUD0wLGJRPTAuMCxiUj0wLGJT
PTAsYlQ9MDtlPWk7aT1pKzh8MDtmPWE7YT1pO2k9aSs4fDA7Y1thPj4yXT1jW2Y+PjJdO2NbYSs0
Pj4yXT1jW2YrND4+Ml07Zj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tmPj4yXTtjW2IrND4+Ml09
Y1tmKzQ+PjJdO2Y9ZXwwO2c9ZjtqPWk7aT1pKzh8MDtrPWo7bD1pO2k9aSs4fDA7bT1sO249aTtp
PWkrOHwwO289bjtwPWk7aT1pKzh8MDtxPXA7cj1pO2k9aSs4fDA7cz1yO3Q9aTtpPWkrOHwwO3U9
dDt2PWk7aT1pKzh8MDt3PXY7eD1pO2k9aSs4fDA7eT14O3o9aTtpPWkrOHwwO0E9aTtpPWkrOHww
O0I9aTtpPWkrOHwwO0M9aTtpPWkrOHwwO0Q9QztFPWk7aT1pKzh8MDtGPWk7aT1pKzh8MDtHPWk7
aT1pKzh8MDtIPUc7ST1pO2k9aSs4fDA7Sj1JO0s9aTtpPWkrOHwwO0w9aTtpPWkrOHwwO009aTtp
PWkrOHwwO049TTtPPWIrNHwwO1A9Y1tPPj4yXXwwO1E9YSs0fDA7Uj1jW1E+PjJdfDA7aWYoKFB8
MCk9PShSfDApKXtpPWU7cmV0dXJufVM9YnwwO1Q9YXwwO1U9YTthPXkrNHwwO1Y9eDtXPXp8MDtY
PXorNHwwO1k9QXwwO1o9QSs0fDA7Xz1CfDA7JD1CKzR8MDthYT1FfDA7YWI9RSs0fDA7YWM9Rnww
O2FkPUYrNHwwO2FlPWI7Yj1LfDA7YWY9Sys0fDA7YWc9THwwO2FoPUwrNHwwO2FpPVA7UD1SO0w3
MjU6d2hpbGUoMSl7YWo9Y1tTPj4yXXwwO1I9Y1tUPj4yXXwwO2FrPWNbYWo+PjJdfDA7YWw9Y1tS
Pj4yXXwwO2FtPVAtYWw+PjM7YW49KGFpLWFrPj4zKSsoYWotUjw8NyktYW18MDtzd2l0Y2goYW58
MCl7Y2FzZSA1Onthbz02MzA7YnJlYWsgTDcyNTticmVha307Y2FzZSA0Onthbz02MTA7YnJlYWsg
TDcyNTticmVha307Y2FzZSAyOnthbz01OTM7YnJlYWsgTDcyNTticmVha307Y2FzZSAzOnthbz01
OTc7YnJlYWsgTDcyNTticmVha307Y2FzZSAwOmNhc2UgMTp7YW89NzYwO2JyZWFrIEw3MjU7YnJl
YWt9O2RlZmF1bHQ6e319aWYoKGFufDApPDMxKXthbz02NDM7YnJlYWt9aWYoKGFpfDApPT0oYWt8
MCkpe2FwPWFqLTR8MDthcT1hcDthcj0oY1thcD4+Ml18MCkrNDA5NnwwfWVsc2V7YXE9YWo7YXI9
YWl9YXA9YXItOHwwO2FzPShhbnwwKS8yfDA7YXQ9KGFuKzF8MCk+Pj4wPjI7ZG97aWYoKGFufDAp
Pjk5OSl7ZG97aWYoYXQpe2F1PWFtK2FzfDA7aWYoKGF1fDApPjApe2F2PVIrKCgoYXV8MCkvNTEy
fDApPDwyKXwwO2F3PWNbYXY+PjJdfDA7YXg9YXcrKCgoYXV8MCklNTEyfDApPDwzKXwwO2F5PWF2
O2F6PWF3O2JyZWFrfWVsc2V7YXc9NTExLWF1fDA7YXU9UisoKChhd3wwKS8tNTEyfDApPDwyKXww
O2F2PWNbYXU+PjJdfDA7YXg9YXYrKDUxMS0oKGF3fDApJTUxMnwwKTw8Myl8MDtheT1hdTthej1h
djticmVha319ZWxzZXtheD1QO2F5PVI7YXo9YWx9fXdoaWxlKDApO2F2PShhbnwwKS80fDA7YXU9
Y1tVPj4yXXwwO2F3PWNbVSs0Pj4yXXwwO2Nbdj4+Ml09YXU7Y1t2KzQ+PjJdPWF3O2NbeD4+Ml09
YXU7Y1t4KzQ+PjJdPWF3O2FBPShhbiszfDApPj4+MD42O2FCPWF1O2Rve2lmKGFBKXthdT0oYXct
KGNbYUI+PjJdfDApPj4zKSthdnwwO2lmKChhdXwwKT4wKXthQz1hQisoKChhdXwwKS81MTJ8MCk8
PDIpfDA7Y1tWPj4yXT1hQztjW2E+PjJdPShjW2FDPj4yXXwwKSsoKChhdXwwKSU1MTJ8MCk8PDMp
O2NbVz4+Ml09YXk7Y1tYPj4yXT1heDtjW1k+PjJdPWF5O2NbWj4+Ml09YXg7aWYoIWFBKXticmVh
a319ZWxzZXthQz01MTEtYXV8MDthdT1hQisoKChhQ3wwKS8tNTEyfDApPDwyKXwwO2NbVj4+Ml09
YXU7Y1thPj4yXT0oY1thdT4+Ml18MCkrKDUxMS0oKGFDfDApJTUxMnwwKTw8Myk7Y1tXPj4yXT1h
eTtjW1g+PjJdPWF4O2NbWT4+Ml09YXk7Y1taPj4yXT1heH1hQz0oYXgtYXo+PjMpK2F2fDA7aWYo
KGFDfDApPjApe2F1PWF5KygoKGFDfDApLzUxMnwwKTw8Mil8MDtjW1k+PjJdPWF1O2NbWj4+Ml09
KGNbYXU+PjJdfDApKygoKGFDfDApJTUxMnwwKTw8Myk7YnJlYWt9ZWxzZXthdT01MTEtYUN8MDth
Qz1heSsoKChhdXwwKS8tNTEyfDApPDwyKXwwO2NbWT4+Ml09YUM7Y1taPj4yXT0oY1thQz4+Ml18
MCkrKDUxMS0oKGF1fDApJTUxMnwwKTw8Myk7YnJlYWt9fWVsc2V7Y1tXPj4yXT1heTtjW1g+PjJd
PWF4O2NbWT4+Ml09YXk7Y1taPj4yXT1heH19d2hpbGUoMCk7Y1tfPj4yXT1hcTtjWyQ+PjJdPWFw
O2FEPWNMKHcseSx6LEEsQiwwKXwwO2FFPWF4fWVsc2V7ZG97aWYoYXQpe2F2PWFtK2FzfDA7aWYo
KGF2fDApPjApe2FGPShjW1IrKCgoYXZ8MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgoYXZ8MCklNTEy
fDApPDwzKXwwO2JyZWFrfWVsc2V7YUI9NTExLWF2fDA7YUY9KGNbUisoKChhQnwwKS8tNTEyfDAp
PDwyKT4+Ml18MCkrKDUxMS0oKGFCfDApJTUxMnwwKTw8Myl8MDticmVha319ZWxzZXthRj1QfX13
aGlsZSgwKTthQj1jW1UrND4+Ml18MDthRz0raFthRj4+M107YUg9K2hbYUI+PjNdO2FJPStoW2Fw
Pj4zXTthdj1hSTxhRztpZihhRz49YUgpe2lmKCFhdil7YUQ9MDthRT1hRjticmVha31oW2FGPj4z
XT1hSTtoW2FwPj4zXT1hRzthSj0raFthRj4+M107YUs9K2hbYUI+PjNdO2lmKGFKPj1hSyl7YUQ9
MTthRT1hRjticmVha31oW2FCPj4zXT1hSjtoW2FGPj4zXT1hSzthRD0yO2FFPWFGO2JyZWFrfWlm
KGF2KXtoW2FCPj4zXT1hSTtoW2FwPj4zXT1hSDthRD0xO2FFPWFGO2JyZWFrfWhbYUI+PjNdPWFH
O2hbYUY+PjNdPWFIO2FHPStoW2FwPj4zXTtpZihhRz49YUgpe2FEPTE7YUU9YUY7YnJlYWt9aFth
Rj4+M109YUc7aFthcD4+M109YUg7YUQ9MjthRT1hRn19d2hpbGUoMCk7Uj1jW1Q+PjJdfDA7YXM9
Y1tRPj4yXXwwO2FIPStoW2FzPj4zXTthRz0raFthRT4+M107ZG97aWYoYUg8YUcpe2FMPWFEO2FN
PWFxO2FOPWFwO2FvPTcwN31lbHNle2FtPWFxO2F0PWFwO2FuPWNbYXE+PjJdfDA7d2hpbGUoMSl7
aWYoKGF0fDApPT0oYW58MCkpe2FsPWFtLTR8MDthQj1jW2FsPj4yXXwwO2FPPWFsO2FQPWFCKzQw
OTZ8MDthUT1hQn1lbHNle2FPPWFtO2FQPWF0O2FRPWFufWFSPWFQLTh8MDtpZigoYXN8MCk9PShh
UnwwKSl7YnJlYWt9YVM9K2hbYVI+PjNdO2lmKGFTPGFHKXthbz03MDY7YnJlYWt9ZWxzZXthbT1h
TzthdD1hUjthbj1hUX19aWYoKGFvfDApPT03MDYpe2FvPTA7aFthcz4+M109YVM7aFthUj4+M109
YUg7YUw9YUQrMXwwO2FNPWFPO2FOPWFSO2FvPTcwNzticmVha31hbj1hcys4fDA7YXQ9Y1tSPj4y
XXwwO2lmKChhbi1hdHwwKT09NDA5Nil7YW09Uis0fDA7YUI9Y1thbT4+Ml18MDthVD1hQjthVT1h
bTthVj1hQn1lbHNle2FUPWFuO2FVPVI7YVY9YXR9YXQ9Y1tTPj4yXXwwO2FuPWNbTz4+Ml18MDtp
ZigoYW58MCk9PShjW2F0Pj4yXXwwKSl7YUI9YXQtNHwwO2FXPWFCO2FYPShjW2FCPj4yXXwwKSs0
MDk2fDB9ZWxzZXthVz1hdDthWD1hbn1hbj1hWC04fDA7YUk9K2hbYW4+PjNdO2Rve2lmKGFIPGFJ
KXthWT1hVDthWj1hVTthXz1hVn1lbHNle2F0PWFUO2FCPWFVO2FtPWFWO0w3ODY6d2hpbGUoMSl7
YSQ9YXQ7d2hpbGUoMSl7aWYoKGEkfDApPT0oYW58MCkpe2FvPTc2NzticmVhayBMNzI1fWEwPSto
W2EkPj4zXTtpZihhSDxhMCl7YnJlYWsgTDc4Nn1hbD1hJCs4fDA7aWYoKGFsLWFtfDApPT00MDk2
KXticmVha31lbHNle2EkPWFsfX1hbD1hQis0fDA7YXY9Y1thbD4+Ml18MDthdD1hdjthQj1hbDth
bT1hdn1oW2EkPj4zXT1hSTtoW2FuPj4zXT1hMDthbT1hJCs4fDA7YXQ9Y1thQj4+Ml18MDtpZigo
YW0tYXR8MCkhPTQwOTYpe2FZPWFtO2FaPWFCO2FfPWF0O2JyZWFrfWF0PWFCKzR8MDthbT1jW2F0
Pj4yXXwwO2FZPWFtO2FaPWF0O2FfPWFtfX13aGlsZSgwKTtpZigoYVl8MCk9PShhbnwwKSl7YW89
NzY4O2JyZWFrIEw3MjV9ZWxzZXthMT1hWTthMj1hWjthMz1hVzthND1hbjthNT1hX313aGlsZSgx
KXthST0raFtjW1E+PjJdPj4zXTthbT1hMTthNj1hMjthdD1hNTtMNzk4OndoaWxlKDEpe2E3PWFt
O3doaWxlKDEpe2E4PStoW2E3Pj4zXTtpZihhSTxhOCl7YnJlYWsgTDc5OH1hdj1hNys4fDA7aWYo
KGF2LWF0fDApPT00MDk2KXticmVha31lbHNle2E3PWF2fX1hdj1hNis0fDA7YWw9Y1thdj4+Ml18
MDthbT1hbDthNj1hdjthdD1hbH1hdD1hMzthbT1hNDthQj1jW2EzPj4yXXwwO3doaWxlKDEpe2lm
KChhbXwwKT09KGFCfDApKXthbD1hdC00fDA7YXY9Y1thbD4+Ml18MDthOT1hbDtiYT1hdis0MDk2
fDA7YmI9YXZ9ZWxzZXthOT1hdDtiYT1hbTtiYj1hQn1iYz1iYS04fDA7YmQ9K2hbYmM+PjNdO2lm
KGFJPGJkKXthdD1hOTthbT1iYzthQj1iYn1lbHNle2JyZWFrfX1pZihhNj4+PjA+PWE5Pj4+MCl7
aWYoYTc+Pj4wPj1iYz4+PjB8KGE2fDApIT0oYTl8MCkpe2JyZWFrfX1oW2E3Pj4zXT1iZDtoW2Jj
Pj4zXT1hODthQj1hNys4fDA7YW09Y1thNj4+Ml18MDtpZigoYUItYW18MCkhPTQwOTYpe2ExPWFC
O2EyPWE2O2EzPWE5O2E0PWJjO2E1PWFtO2NvbnRpbnVlfWFtPWE2KzR8MDthQj1jW2FtPj4yXXww
O2ExPWFCO2EyPWFtO2EzPWE5O2E0PWJjO2E1PWFCfWNbVD4+Ml09YTY7Y1tRPj4yXT1hNztiZT1h
N319d2hpbGUoMCk7TDgxNjpkb3tpZigoYW98MCk9PTcwNyl7YW89MDthcD1hcys4fDA7YW49Y1tS
Pj4yXXwwO2lmKChhcC1hbnwwKT09NDA5Nil7YUI9Uis0fDA7YW09Y1thQj4+Ml18MDtiZj1hbTti
Zz1hQjtiaD1hbX1lbHNle2JmPWFwO2JnPVI7Ymg9YW59aWYoYmc+Pj4wPGFNPj4+MCl7Ymk9YUw7
Ymo9YmY7Yms9Ymc7Ymw9YUU7Ym09YU07Ym49YU47Ym89Ymg7YW89NzExfWVsc2V7aWYoKGJnfDAp
PT0oYU18MCkmYmY+Pj4wPGFOPj4+MCl7Ymk9YUw7Ymo9YmY7Yms9Ymc7Ymw9YUU7Ym09YU07Ym49
YU47Ym89Ymg7YW89NzExfWVsc2V7YnA9YUw7YnE9YmY7YnI9Ymc7YnM9YUV9fUw4MjM6ZG97aWYo
KGFvfDApPT03MTEpe3doaWxlKDEpe2FvPTA7YUg9K2hbYmw+PjNdO2FuPWJqO2FwPWJrO2FtPWJv
O0w4MjY6d2hpbGUoMSl7YnQ9YW47d2hpbGUoMSl7YnU9K2hbYnQ+PjNdO2lmKGJ1Pj1hSCl7YnJl
YWsgTDgyNn1hQj1idCs4fDA7aWYoKGFCLWFtfDApPT00MDk2KXticmVha31lbHNle2J0PWFCfX1h
Qj1hcCs0fDA7YXQ9Y1thQj4+Ml18MDthbj1hdDthcD1hQjthbT1hdH1hbT1ibTthbj1ibjthdD1j
W2JtPj4yXXwwO3doaWxlKDEpe2lmKChhbnwwKT09KGF0fDApKXthQj1hbS00fDA7YXY9Y1thQj4+
Ml18MDtidj1hQjtidz1hdis0MDk2fDA7Yng9YXZ9ZWxzZXtidj1hbTtidz1hbjtieD1hdH1ieT1i
dy04fDA7Yno9K2hbYnk+PjNdO2lmKGJ6Pj1hSCl7YW09YnY7YW49Ynk7YXQ9Ynh9ZWxzZXticmVh
a319aWYoYnY+Pj4wPGFwPj4+MCl7YnA9Ymk7YnE9YnQ7YnI9YXA7YnM9Ymw7YnJlYWsgTDgyM31p
ZigoYnZ8MCk9PShhcHwwKSZieT4+PjA8YnQ+Pj4wKXticD1iaTticT1idDticj1hcDticz1ibDti
cmVhayBMODIzfWhbYnQ+PjNdPWJ6O2hbYnk+PjNdPWJ1O2F0PWJpKzF8MDthbj0oYmx8MCk9PShi
dHwwKT9ieTpibDthbT1idCs4fDA7YXY9Y1thcD4+Ml18MDtpZigoYW0tYXZ8MCkhPTQwOTYpe2Jp
PWF0O2JqPWFtO2JrPWFwO2JsPWFuO2JtPWJ2O2JuPWJ5O2JvPWF2O2FvPTcxMTtjb250aW51ZX1h
dj1hcCs0fDA7YW09Y1thdj4+Ml18MDtiaT1hdDtiaj1hbTtiaz1hdjtibD1hbjtibT1idjtibj1i
eTtibz1hbTthbz03MTF9fX13aGlsZSgwKTtkb3tpZigoYnF8MCk9PShic3wwKSl7YkE9YnB9ZWxz
ZXthSD0raFticz4+M107YUc9K2hbYnE+PjNdO2lmKGFIPj1hRyl7YkE9YnA7YnJlYWt9aFticT4+
M109YUg7aFticz4+M109YUc7YkE9YnArMXwwfX13aGlsZSgwKTtkb3tpZigoYkF8MCk9PTApe2Ft
PWNbVSs0Pj4yXXwwO2NbQz4+Ml09Y1tVPj4yXTtjW0MrND4+Ml09YW07Y1thYT4+Ml09YnI7Y1th
Yj4+Ml09YnE7YW09Y04oRCxFLDApfDA7Y1thYz4+Ml09YnI7Y1thZD4+Ml09YnE7YW49YnEtKGNb
YnI+PjJdfDApPj4zO2F2PWFuKzF8MDtpZigoYXZ8MCk+MCl7YXQ9YnIrKCgoYXZ8MCkvNTEyfDAp
PDwyKXwwO2NbYWM+PjJdPWF0O2JCPShjW2F0Pj4yXXwwKSsoKChhdnwwKSU1MTJ8MCk8PDMpfDB9
ZWxzZXthdj01MTAtYW58MDthbj1icisoKChhdnwwKS8tNTEyfDApPDwyKXwwO2NbYWM+PjJdPWFu
O2JCPShjW2FuPj4yXXwwKSsoNTExLSgoYXZ8MCklNTEyfDApPDwzKXwwfWNbYWQ+PjJdPWJCO2F2
PWNbYWUrND4+Ml18MDtjW0c+PjJdPWNbYWU+PjJdO2NbRys0Pj4yXT1hdjtpZihjTihGLEgsMCl8
MCl7aWYoYW0pe2FvPTc3MDticmVhayBMNzI1fWNbUz4+Ml09YnI7Y1tPPj4yXT1icTtiZT1jW1E+
PjJdfDA7YnJlYWsgTDgxNn1pZighYW0pe2JyZWFrfWFtPWJxKzh8MDtpZigoYW0tKGNbYnI+PjJd
fDApfDApPT00MDk2KXthdj1icis0fDA7YkM9Y1thdj4+Ml18MDtiRD1hdn1lbHNle2JDPWFtO2JE
PWJyfWNbVD4+Ml09YkQ7Y1tRPj4yXT1iQztiZT1iQzticmVhayBMODE2fX13aGlsZSgwKTthbT1j
W1E+PjJdfDA7aWYoKGJxfDApPT0oYW18MCkpe2JFPTB9ZWxzZXthdj1jW1Q+PjJdfDA7YkU9KGJx
LShjW2JyPj4yXXwwKT4+MykrKGJyLWF2PDw3KS0oYW0tKGNbYXY+PjJdfDApPj4zKXwwfWF2PWNb
Tz4+Ml18MDtpZigoYXZ8MCk9PShicXwwKSl7YkY9MH1lbHNle2FuPWNbUz4+Ml18MDtiRj0oYXYt
KGNbYW4+PjJdfDApPj4zKSsoYW4tYnI8PDcpLShicS0oY1ticj4+Ml18MCk+PjMpfDB9aWYoKGJF
fDApPChiRnwwKSl7YW49Y1tVKzQ+PjJdfDA7Y1tJPj4yXT1jW1U+PjJdO2NbSSs0Pj4yXT1hbjtj
W2I+PjJdPWJyO2NbYWY+PjJdPWJxO2NLKEosSyxkKTthbj1icSs4fDA7aWYoKGFuLShjW2JyPj4y
XXwwKXwwKT09NDA5Nil7YXY9YnIrNHwwO2JHPWNbYXY+PjJdfDA7Ykg9YXZ9ZWxzZXtiRz1hbjti
SD1icn1jW1Q+PjJdPWJIO2NbUT4+Ml09Ykc7YmU9Ykc7YnJlYWt9Y1thZz4+Ml09YnI7Y1thaD4+
Ml09YnE7YW49YnEtKGNbYnI+PjJdfDApPj4zO2F2PWFuKzF8MDtpZigoYXZ8MCk+MCl7YXQ9YnIr
KCgoYXZ8MCkvNTEyfDApPDwyKXwwO2NbYWc+PjJdPWF0O2JJPShjW2F0Pj4yXXwwKSsoKChhdnww
KSU1MTJ8MCk8PDMpfDB9ZWxzZXthdj01MTAtYW58MDthbj1icisoKChhdnwwKS8tNTEyfDApPDwy
KXwwO2NbYWc+PjJdPWFuO2JJPShjW2FuPj4yXXwwKSsoNTExLSgoYXZ8MCklNTEyfDApPDwzKXww
fWNbYWg+PjJdPWJJO2F2PWNbYWUrND4+Ml18MDtjW00+PjJdPWNbYWU+PjJdO2NbTSs0Pj4yXT1h
djtjSyhMLE4sZCk7Y1tTPj4yXT1icjtjW08+PjJdPWJxO2JlPWFtfX13aGlsZSgwKTtSPWNbTz4+
Ml18MDtpZigoUnwwKT09KGJlfDApKXthbz03Njk7YnJlYWt9ZWxzZXthaT1SO1A9YmV9fWlmKChh
b3wwKT09NjMwKXtiZT1jW1U+PjJdfDA7YnE9Y1tVKzQ+PjJdfDA7Y1tmPj4yXT1iZTtjW2YrND4+
Ml09YnE7Y1tqPj4yXT1iZTtjW2orND4+Ml09YnE7Zj1icTticj1qO2o9YmU7ZD1mLShjW2o+PjJd
fDApPj4zO049ZCsxfDA7aWYoKE58MCk+MCl7TD1qKygoKE58MCkvNTEyfDApPDwyKXwwO2NbYnI+
PjJdPUw7Yko9KGNbTD4+Ml18MCkrKCgoTnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtOPTUxMC1kfDA7
ZD1qKygoKE58MCkvLTUxMnwwKTw8Mil8MDtjW2JyPj4yXT1kO2JKPShjW2Q+PjJdfDApKyg1MTEt
KChOfDApJTUxMnwwKTw8Myl8MH1jW2srND4+Ml09Yko7Y1tsPj4yXT1iZTtjW2wrND4+Ml09YnE7
Yko9bDtsPWYtKGNbaj4+Ml18MCk+PjM7Tj1sKzJ8MDtpZigoTnwwKT4wKXtkPWorKCgoTnwwKS81
MTJ8MCk8PDIpfDA7Y1tiSj4+Ml09ZDtiSz0oY1tkPj4yXXwwKSsoKChOfDApJTUxMnwwKTw8Myl8
MH1lbHNle049NTA5LWx8MDtsPWorKCgoTnwwKS8tNTEyfDApPDwyKXwwO2NbYko+PjJdPWw7Yks9
KGNbbD4+Ml18MCkrKDUxMS0oKE58MCklNTEyfDApPDwzKXwwfWNbbSs0Pj4yXT1iSztjW24+PjJd
PWJlO2Nbbis0Pj4yXT1icTticT1uO249Zi0oY1tqPj4yXXwwKT4+MztmPW4rM3wwO2lmKChmfDAp
PjApe2JlPWorKCgoZnwwKS81MTJ8MCk8PDIpfDA7Y1ticT4+Ml09YmU7Ykw9KGNbYmU+PjJdfDAp
KygoKGZ8MCklNTEyfDApPDwzKXwwfWVsc2V7Zj01MDgtbnwwO249aisoKChmfDApLy01MTJ8MCk8
PDIpfDA7Y1ticT4+Ml09bjtiTD0oY1tuPj4yXXwwKSsoNTExLSgoZnwwKSU1MTJ8MCk8PDMpfDB9
Y1tvKzQ+PjJdPWJMO2lmKChhaXwwKT09KGFrfDApKXtiTD1hai00fDA7Y1tTPj4yXT1iTDtmPShj
W2JMPj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1mO2JNPWZ9ZWxzZXtiTT1haX1jW08+PjJdPWJNLTg7
Yk09Y1thZSs0Pj4yXXwwO2NbcD4+Ml09Y1thZT4+Ml07Y1twKzQ+PjJdPWJNO2NMKGcsayxtLG8s
cSwwKXwwO2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTYxMCl7cT1jW1U+PjJdfDA7bz1jW1Ur
ND4+Ml18MDttPW87az1vLShjW3E+PjJdfDApPj4zO289aysxfDA7aWYoKG98MCk+MCl7Yk49KGNb
cSsoKChvfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKG98MCklNTEyfDApPDwzKXwwfWVsc2V7bz01
MTAta3wwO2JOPShjW3ErKCgob3wwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKG98MCklNTEy
fDApPDwzKXwwfW89aysyfDA7aWYoKG98MCk+MCl7Yk89KGNbcSsoKChvfDApLzUxMnwwKTw8Mik+
PjJdfDApKygoKG98MCklNTEyfDApPDwzKXwwfWVsc2V7bz01MDkta3wwO2JPPShjW3ErKCgob3ww
KS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKG98MCklNTEyfDApPDwzKXwwfWlmKChhaXwwKT09
KGFrfDApKXtvPWFqLTR8MDtjW1M+PjJdPW87cT0oY1tvPj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1x
O2JQPXF9ZWxzZXtiUD1haX1jW08+PjJdPWJQLTg7YlA9Y1thZSs0Pj4yXXwwO2J1PStoW2JOPj4z
XTtiej0raFttPj4zXTthOD0raFtiTz4+M107cT1hODxidTtkb3tpZihidTxieil7aWYocSl7aFtt
Pj4zXT1hODtoW2JPPj4zXT1iejtiUT1iejticmVha31oW20+PjNdPWJ1O2hbYk4+PjNdPWJ6O2Jk
PStoW2JPPj4zXTtpZihiZD49Ynope2JRPWJkO2JyZWFrfWhbYk4+PjNdPWJkO2hbYk8+PjNdPWJ6
O2JRPWJ6fWVsc2V7aWYoIXEpe2JRPWE4O2JyZWFrfWhbYk4+PjNdPWE4O2hbYk8+PjNdPWJ1O2Jk
PStoW2JOPj4zXTthMD0raFttPj4zXTtpZihiZD49YTApe2JRPWJ1O2JyZWFrfWhbbT4+M109YmQ7
aFtiTj4+M109YTA7YlE9K2hbYk8+PjNdfX13aGlsZSgwKTtidT0raFtiUD4+M107aWYoYnU+PWJR
KXtpPWU7cmV0dXJufWhbYk8+PjNdPWJ1O2hbYlA+PjNdPWJRO2JRPStoW2JPPj4zXTtidT0raFti
Tj4+M107aWYoYlE+PWJ1KXtpPWU7cmV0dXJufWhbYk4+PjNdPWJRO2hbYk8+PjNdPWJ1O2J1PSto
W2JOPj4zXTtiUT0raFttPj4zXTtpZihidT49YlEpe2k9ZTtyZXR1cm59aFttPj4zXT1idTtoW2JO
Pj4zXT1iUTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT02NDMpe2JOPWNbVSs0Pj4yXXwwO2Nb
cj4+Ml09Y1tVPj4yXTtjW3IrND4+Ml09Yk47Yk49Y1thZSs0Pj4yXXwwO2NbdD4+Ml09Y1thZT4+
Ml07Y1t0KzQ+PjJdPWJOO2NNKHMsdSwwKTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT01OTMp
e2lmKChhaXwwKT09KGFrfDApKXt1PWFqLTR8MDtjW1M+PjJdPXU7cz0oY1t1Pj4yXXwwKSs0MDk2
fDA7Y1tPPj4yXT1zO2JSPXN9ZWxzZXtiUj1haX1zPWJSLTh8MDtjW08+PjJdPXM7YlE9K2hbcz4+
M107YnU9K2hbUD4+M107aWYoYlE+PWJ1KXtpPWU7cmV0dXJufWhbUD4+M109YlE7aFtzPj4zXT1i
dTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT01OTcpe3M9Y1tVPj4yXXwwO1A9Y1tVKzQ+PjJd
fDA7VT1QO2JSPVAtKGNbcz4+Ml18MCk+PjM7UD1iUisxfDA7aWYoKFB8MCk+MCl7YlM9KGNbcyso
KChQfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKFB8MCklNTEyfDApPDwzKXwwfWVsc2V7UD01MTAt
YlJ8MDtiUz0oY1tzKygoKFB8MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChQfDApJTUxMnww
KTw8Myl8MH1pZigoYWl8MCk9PShha3wwKSl7YWs9YWotNHwwO2NbUz4+Ml09YWs7Uz0oY1thaz4+
Ml18MCkrNDA5NnwwO2NbTz4+Ml09UztiVD1TfWVsc2V7YlQ9YWl9Y1tPPj4yXT1iVC04O2JUPWNb
YWUrND4+Ml18MDtidT0raFtiUz4+M107YlE9K2hbVT4+M107YTg9K2hbYlQ+PjNdO2FlPWE4PGJ1
O2lmKGJ1Pj1iUSl7aWYoIWFlKXtpPWU7cmV0dXJufWhbYlM+PjNdPWE4O2hbYlQ+PjNdPWJ1O2J6
PStoW2JTPj4zXTthMD0raFtVPj4zXTtpZihiej49YTApe2k9ZTtyZXR1cm59aFtVPj4zXT1iejto
W2JTPj4zXT1hMDtpPWU7cmV0dXJufWlmKGFlKXtoW1U+PjNdPWE4O2hbYlQ+PjNdPWJRO2k9ZTty
ZXR1cm59aFtVPj4zXT1idTtoW2JTPj4zXT1iUTtidT0raFtiVD4+M107aWYoYnU+PWJRKXtpPWU7
cmV0dXJufWhbYlM+PjNdPWJ1O2hbYlQ+PjNdPWJRO2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9
PTc2MCl7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzY3KXtpPWU7cmV0dXJufWVsc2UgaWYo
KGFvfDApPT03Njgpe2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTc2OSl7aT1lO3JldHVybn1l
bHNlIGlmKChhb3wwKT09NzcwKXtpPWU7cmV0dXJufX1mdW5jdGlvbiBjTChhLGIsZCxlLGYsZyl7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGo9MCxrPTAsbD0wLG09MCxu
PTAuMCxvPTAuMCxwPTAuMCxxPTAscj0wLHM9MC4wLHQ9MC4wLHU9MC4wLHY9MCx3PTA7Zz1pO2o9
YTthPWk7aT1pKzh8MDtjW2E+PjJdPWNbaj4+Ml07Y1thKzQ+PjJdPWNbais0Pj4yXTtqPWI7Yj1p
O2k9aSs4fDA7Y1tiPj4yXT1jW2o+PjJdO2NbYis0Pj4yXT1jW2orND4+Ml07aj1kO2Q9aTtpPWkr
OHwwO2NbZD4+Ml09Y1tqPj4yXTtjW2QrND4+Ml09Y1tqKzQ+PjJdO2o9ZTtlPWk7aT1pKzh8MDtj
W2U+PjJdPWNbaj4+Ml07Y1tlKzQ+PjJdPWNbais0Pj4yXTtqPWY7Zj1pO2k9aSs4fDA7Y1tmPj4y
XT1jW2o+PjJdO2NbZis0Pj4yXT1jW2orND4+Ml07aj1jW2ErND4+Ml18MDtrPWNbYis0Pj4yXXww
O2w9Y1tkKzQ+PjJdfDA7bT1jW2UrND4+Ml18MDtuPStoW2s+PjNdO289K2hbaj4+M107cD0raFts
Pj4zXTtxPXA8bjtkb3tpZihuPG8pe2lmKHEpe2hbaj4+M109cDtoW2w+PjNdPW87cj0xO3M9bzti
cmVha31oW2o+PjNdPW47aFtrPj4zXT1vO3Q9K2hbbD4+M107aWYodD49byl7cj0xO3M9dDticmVh
a31oW2s+PjNdPXQ7aFtsPj4zXT1vO3I9MjtzPW99ZWxzZXtpZighcSl7cj0wO3M9cDticmVha31o
W2s+PjNdPXA7aFtsPj4zXT1uO3Q9K2hbaz4+M107dT0raFtqPj4zXTtpZih0Pj11KXtyPTE7cz1u
O2JyZWFrfWhbaj4+M109dDtoW2s+PjNdPXU7cj0yO3M9K2hbbD4+M119fXdoaWxlKDApO249K2hb
bT4+M107ZG97aWYobjxzKXtoW2w+PjNdPW47aFttPj4zXT1zO3A9K2hbbD4+M107bz0raFtrPj4z
XTtpZihwPj1vKXt2PXIrMXwwO2JyZWFrfWhbaz4+M109cDtoW2w+PjNdPW87bz0raFtrPj4zXTtw
PStoW2o+PjNdO2lmKG8+PXApe3Y9cisyfDA7YnJlYWt9aFtqPj4zXT1vO2hbaz4+M109cDt2PXIr
M3wwfWVsc2V7dj1yfX13aGlsZSgwKTtyPWNbZis0Pj4yXXwwO2Y9Y1tlKzQ+PjJdfDA7cz0raFty
Pj4zXTtuPStoW2Y+PjNdO2lmKHM+PW4pe3c9djtpPWc7cmV0dXJuIHd8MH1oW2Y+PjNdPXM7aFty
Pj4zXT1uO3I9Y1tkKzQ+PjJdfDA7bj0raFtmPj4zXTtzPStoW3I+PjNdO2lmKG4+PXMpe3c9disx
fDA7aT1nO3JldHVybiB3fDB9aFtyPj4zXT1uO2hbZj4+M109cztmPWNbYis0Pj4yXXwwO3M9K2hb
cj4+M107bj0raFtmPj4zXTtpZihzPj1uKXt3PXYrMnwwO2k9ZztyZXR1cm4gd3wwfWhbZj4+M109
cztoW3I+PjNdPW47cj1jW2ErND4+Ml18MDtuPStoW2Y+PjNdO3M9K2hbcj4+M107aWYobj49cyl7
dz12KzN8MDtpPWc7cmV0dXJuIHd8MH1oW3I+PjNdPW47aFtmPj4zXT1zO3c9dis0fDA7aT1nO3Jl
dHVybiB3fDB9ZnVuY3Rpb24gY00oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0w
LGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MC4wLHA9MC4wLHE9MC4wLHI9MC4wLHM9MC4wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7ZD1pO2U9YTthPWk7aT1pKzh8MDtjW2E+PjJd
PWNbZT4+Ml07Y1thKzQ+PjJdPWNbZSs0Pj4yXTtlPWI7Yj1pO2k9aSs4fDA7Y1tiPj4yXT1jW2U+
PjJdO2NbYis0Pj4yXT1jW2UrND4+Ml07ZT1jW2E+PjJdfDA7Zj1hKzR8MDtnPShjW2Y+PjJdfDAp
LShjW2U+PjJdfDApPj4zO2o9ZysyfDA7aWYoKGp8MCk+MCl7az1lKygoKGp8MCkvNTEyfDApPDwy
KXwwO2w9KGNbaz4+Ml18MCkrKCgoanwwKSU1MTJ8MCk8PDMpfDA7bT1rfWVsc2V7az01MDktZ3ww
O2c9ZSsoKChrfDApLy01MTJ8MCk8PDIpfDA7bD0oY1tnPj4yXXwwKSsoNTExLSgoa3wwKSU1MTJ8
MCk8PDMpfDA7bT1nfWc9YTthPWNbZz4+Ml18MDtrPWNbZys0Pj4yXXwwO2c9aztlPWstKGNbYT4+
Ml18MCk+PjM7az1lKzF8MDtpZigoa3wwKT4wKXtuPShjW2ErKCgoa3wwKS81MTJ8MCk8PDIpPj4y
XXwwKSsoKChrfDApJTUxMnwwKTw8Myl8MH1lbHNle2s9NTEwLWV8MDtuPShjW2ErKCgoa3wwKS8t
NTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKGt8MCklNTEyfDApPDwzKXwwfW89K2hbbj4+M107cD0r
aFtnPj4zXTtxPStoW2w+PjNdO2s9cTxvO2Rve2lmKG88cCl7aWYoayl7aFtnPj4zXT1xO2hbbD4+
M109cDticmVha31oW2c+PjNdPW87aFtuPj4zXT1wO3I9K2hbbD4+M107aWYocj49cCl7YnJlYWt9
aFtuPj4zXT1yO2hbbD4+M109cH1lbHNle2lmKCFrKXticmVha31oW24+PjNdPXE7aFtsPj4zXT1v
O3I9K2hbbj4+M107cz0raFtnPj4zXTtpZihyPj1zKXticmVha31oW2c+PjNdPXI7aFtuPj4zXT1z
fX13aGlsZSgwKTtuPWwtKGNbbT4+Ml18MCk+PjM7Zz1uKzF8MDtpZigoZ3wwKT4wKXtrPW0rKCgo
Z3wwKS81MTJ8MCk8PDIpfDA7YT1jW2s+PjJdfDA7dD1rO3U9YSsoKChnfDApJTUxMnwwKTw8Myl8
MDt2PWF9ZWxzZXthPTUxMC1ufDA7bj1tKygoKGF8MCkvLTUxMnwwKTw8Mil8MDtnPWNbbj4+Ml18
MDt0PW47dT1nKyg1MTEtKChhfDApJTUxMnwwKTw8Myl8MDt2PWd9Zz1iKzR8MDtiPWw7bD10O3Q9
dTt1PW07bT12O0wxMDIyOndoaWxlKDEpe3Y9YjthPXQ7bj11O2s9bTt3aGlsZSgxKXtpZigoYXww
KT09KGNbZz4+Ml18MCkpe2JyZWFrIEwxMDIyfW89K2hbYT4+M107cT0raFt2Pj4zXTtpZihvPHEp
e2U9bjtqPXY7dz1hO3A9cTt3aGlsZSgxKXtoW3c+PjNdPXA7aWYoKGp8MCk9PShjW2Y+PjJdfDAp
KXticmVha31pZigoanwwKT09KGNbZT4+Ml18MCkpe3g9ZS00fDA7eT14O3o9KGNbeD4+Ml18MCkr
NDA5NnwwfWVsc2V7eT1lO3o9an14PXotOHwwO3E9K2hbeD4+M107aWYobzxxKXtlPXk7dz1qO2o9
eDtwPXF9ZWxzZXticmVha319aFtqPj4zXT1vO0E9Y1tsPj4yXXwwfWVsc2V7QT1rfXc9YSs4fDA7
aWYoKHctQXwwKT09NDA5Nil7YnJlYWt9ZWxzZXt2PWE7YT13O249bDtrPUF9fWs9bCs0fDA7bj1j
W2s+PjJdfDA7Yj1hO3U9bDtsPWs7dD1uO209bn1pPWQ7cmV0dXJufWZ1bmN0aW9uIGNOKGEsYixk
KXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAuMCxFPTAuMCxGPTAsRz0wLEg9MC4wLEk9MC4wLEo9MC4wLEs9MCxMPTAsTT0wLE49MC4w
LE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAs
YWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTA7ZD1pO2k9aSs4fDA7ZT1hO2E9aTtpPWkrOHww
O2NbYT4+Ml09Y1tlPj4yXTtjW2ErND4+Ml09Y1tlKzQ+PjJdO2U9YjtiPWk7aT1pKzh8MDtjW2I+
PjJdPWNbZT4+Ml07Y1tiKzQ+PjJdPWNbZSs0Pj4yXTtlPWR8MDtmPWU7Zz1pO2k9aSs4fDA7aj1n
O2s9aTtpPWkrOHwwO2w9azttPWk7aT1pKzh8MDtuPW07bz1pO2k9aSs4fDA7cD1vO3E9Yis0fDA7
cj1jW3E+PjJdfDA7cz1hKzR8MDt0PWNbcz4+Ml18MDtpZigocnwwKT09KHR8MCkpe3U9MTtpPWQ7
cmV0dXJuIHV8MH12PWJ8MDt3PWNbdj4+Ml18MDt4PWNbYT4+Ml18MDt5PWNbdz4+Ml18MDt6PXQt
KGNbeD4+Ml18MCk+PjM7c3dpdGNoKChyLXk+PjMpKyh3LXg8PDcpLXp8MCl7Y2FzZSAyOntpZigo
cnwwKT09KHl8MCkpe0E9dy00fDA7Y1t2Pj4yXT1BO0I9KGNbQT4+Ml18MCkrNDA5NnwwO2NbcT4+
Ml09QjtDPUJ9ZWxzZXtDPXJ9Qj1DLTh8MDtjW3E+PjJdPUI7RD0raFtCPj4zXTtFPStoW3Q+PjNd
O2lmKEQ+PUUpe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW3Q+PjNdPUQ7aFtCPj4zXT1FO3U9MTtpPWQ7
cmV0dXJuIHV8MH07Y2FzZSAwOmNhc2UgMTp7dT0xO2k9ZDtyZXR1cm4gdXwwfTtjYXNlIDM6e0I9
YTt0PWNbQj4+Ml18MDtDPWNbQis0Pj4yXXwwO0I9QztBPUMtKGNbdD4+Ml18MCk+PjM7Qz1BKzF8
MDtpZigoQ3wwKT4wKXtGPShjW3QrKCgoQ3wwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChDfDApJTUx
MnwwKTw8Myl8MH1lbHNle0M9NTEwLUF8MDtGPShjW3QrKCgoQ3wwKS8tNTEyfDApPDwyKT4+Ml18
MCkrKDUxMS0oKEN8MCklNTEyfDApPDwzKXwwfWlmKChyfDApPT0oeXwwKSl7Qz13LTR8MDtjW3Y+
PjJdPUM7dD0oY1tDPj4yXXwwKSs0MDk2fDA7Y1txPj4yXT10O0c9dH1lbHNle0c9cn1jW3E+PjJd
PUctODtHPWNbYis0Pj4yXXwwO0U9K2hbRj4+M107RD0raFtCPj4zXTtIPStoW0c+PjNdO3Q9SDxF
O2lmKEU+PUQpe2lmKCF0KXt1PTE7aT1kO3JldHVybiB1fDB9aFtGPj4zXT1IO2hbRz4+M109RTtJ
PStoW0Y+PjNdO0o9K2hbQj4+M107aWYoST49Sil7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbQj4+M109
STtoW0Y+PjNdPUo7dT0xO2k9ZDtyZXR1cm4gdXwwfWlmKHQpe2hbQj4+M109SDtoW0c+PjNdPUQ7
dT0xO2k9ZDtyZXR1cm4gdXwwfWhbQj4+M109RTtoW0Y+PjNdPUQ7RT0raFtHPj4zXTtpZihFPj1E
KXt1PTE7aT1kO3JldHVybiB1fDB9aFtGPj4zXT1FO2hbRz4+M109RDt1PTE7aT1kO3JldHVybiB1
fDB9O2Nhc2UgNDp7Rz1hO0Y9Y1tHPj4yXXwwO0I9Y1tHKzQ+PjJdfDA7Rz1CO3Q9Qi0oY1tGPj4y
XXwwKT4+MztCPXQrMXwwO2lmKChCfDApPjApe0s9KGNbRisoKChCfDApLzUxMnwwKTw8Mik+PjJd
fDApKygoKEJ8MCklNTEyfDApPDwzKXwwfWVsc2V7Qj01MTAtdHwwO0s9KGNbRisoKChCfDApLy01
MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgoQnwwKSU1MTJ8MCk8PDMpfDB9Qj10KzJ8MDtpZigoQnww
KT4wKXtMPShjW0YrKCgoQnwwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChCfDApJTUxMnwwKTw8Myl8
MH1lbHNle0I9NTA5LXR8MDtMPShjW0YrKCgoQnwwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0o
KEJ8MCklNTEyfDApPDwzKXwwfWlmKChyfDApPT0oeXwwKSl7Qj13LTR8MDtjW3Y+PjJdPUI7Rj0o
Y1tCPj4yXXwwKSs0MDk2fDA7Y1txPj4yXT1GO009Rn1lbHNle009cn1jW3E+PjJdPU0tODtNPWNb
Yis0Pj4yXXwwO0Q9K2hbSz4+M107RT0raFtHPj4zXTtIPStoW0w+PjNdO0Y9SDxEO2Rve2lmKEQ8
RSl7aWYoRil7aFtHPj4zXT1IO2hbTD4+M109RTtOPUU7YnJlYWt9aFtHPj4zXT1EO2hbSz4+M109
RTtKPStoW0w+PjNdO2lmKEo+PUUpe049SjticmVha31oW0s+PjNdPUo7aFtMPj4zXT1FO049RX1l
bHNle2lmKCFGKXtOPUg7YnJlYWt9aFtLPj4zXT1IO2hbTD4+M109RDtKPStoW0s+PjNdO0k9K2hb
Rz4+M107aWYoSj49SSl7Tj1EO2JyZWFrfWhbRz4+M109SjtoW0s+PjNdPUk7Tj0raFtMPj4zXX19
d2hpbGUoMCk7RD0raFtNPj4zXTtpZihEPj1OKXt1PTE7aT1kO3JldHVybiB1fDB9aFtMPj4zXT1E
O2hbTT4+M109TjtOPStoW0w+PjNdO0Q9K2hbSz4+M107aWYoTj49RCl7dT0xO2k9ZDtyZXR1cm4g
dXwwfWhbSz4+M109TjtoW0w+PjNdPUQ7RD0raFtLPj4zXTtOPStoW0c+PjNdO2lmKEQ+PU4pe3U9
MTtpPWQ7cmV0dXJuIHV8MH1oW0c+PjNdPUQ7aFtLPj4zXT1OO3U9MTtpPWQ7cmV0dXJuIHV8MH07
Y2FzZSA1OntLPWE7Rz1jW0s+PjJdfDA7TD1jW0srND4+Ml18MDtjW2U+PjJdPUc7Y1tlKzQ+PjJd
PUw7Y1tnPj4yXT1HO2NbZys0Pj4yXT1MO2U9TDtLPWc7Zz1HO009ZS0oY1tnPj4yXXwwKT4+MztG
PU0rMXwwO2lmKChGfDApPjApe0I9ZysoKChGfDApLzUxMnwwKTw8Mil8MDtjW0s+PjJdPUI7Tz0o
Y1tCPj4yXXwwKSsoKChGfDApJTUxMnwwKTw8Myl8MH1lbHNle0Y9NTEwLU18MDtNPWcrKCgoRnww
KS8tNTEyfDApPDwyKXwwO2NbSz4+Ml09TTtPPShjW00+PjJdfDApKyg1MTEtKChGfDApJTUxMnww
KTw8Myl8MH1jW2orND4+Ml09TztjW2s+PjJdPUc7Y1trKzQ+PjJdPUw7Tz1rO2s9ZS0oY1tnPj4y
XXwwKT4+MztGPWsrMnwwO2lmKChGfDApPjApe009ZysoKChGfDApLzUxMnwwKTw8Mil8MDtjW08+
PjJdPU07UD0oY1tNPj4yXXwwKSsoKChGfDApJTUxMnwwKTw8Myl8MH1lbHNle0Y9NTA5LWt8MDtr
PWcrKCgoRnwwKS8tNTEyfDApPDwyKXwwO2NbTz4+Ml09aztQPShjW2s+PjJdfDApKyg1MTEtKChG
fDApJTUxMnwwKTw8Myl8MH1jW2wrND4+Ml09UDtjW20+PjJdPUc7Y1ttKzQ+PjJdPUw7TD1tO209
ZS0oY1tnPj4yXXwwKT4+MztlPW0rM3wwO2lmKChlfDApPjApe0c9ZysoKChlfDApLzUxMnwwKTw8
Mil8MDtjW0w+PjJdPUc7UT0oY1tHPj4yXXwwKSsoKChlfDApJTUxMnwwKTw8Myl8MH1lbHNle2U9
NTA4LW18MDttPWcrKCgoZXwwKS8tNTEyfDApPDwyKXwwO2NbTD4+Ml09bTtRPShjW20+PjJdfDAp
Kyg1MTEtKChlfDApJTUxMnwwKTw8Myl8MH1jW24rND4+Ml09UTtpZigocnwwKT09KHl8MCkpe3k9
dy00fDA7Y1t2Pj4yXT15O3Y9KGNbeT4+Ml18MCkrNDA5NnwwO2NbcT4+Ml09djtSPXZ9ZWxzZXtS
PXJ9Y1txPj4yXT1SLTg7Uj1iO2I9Y1tSKzQ+PjJdfDA7Y1tvPj4yXT1jW1I+PjJdO2Nbbys0Pj4y
XT1iO2NMKGYsaixsLG4scCwwKXwwO3U9MTtpPWQ7cmV0dXJuIHV8MH07ZGVmYXVsdDp7cD16KzJ8
MDtpZigocHwwKT4wKXtuPXgrKCgocHwwKS81MTJ8MCk8PDIpfDA7Uz1uO1Q9KGNbbj4+Ml18MCkr
KCgocHwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtwPTUwOS16fDA7ej14KygoKHB8MCkvLTUxMnwwKTw8
Mil8MDtTPXo7VD0oY1t6Pj4yXXwwKSsoNTExLSgocHwwKSU1MTJ8MCk8PDMpfDB9cD1hO2E9Y1tw
Pj4yXXwwO3o9Y1twKzQ+PjJdfDA7cD16O3g9ei0oY1thPj4yXXwwKT4+Mzt6PXgrMXwwO2lmKCh6
fDApPjApe1U9KGNbYSsoKCh6fDApLzUxMnwwKTw8Mik+PjJdfDApKygoKHp8MCklNTEyfDApPDwz
KXwwfWVsc2V7ej01MTAteHwwO1U9KGNbYSsoKCh6fDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTEx
LSgoenwwKSU1MTJ8MCk8PDMpfDB9Tj0raFtVPj4zXTtEPStoW3A+PjNdO0g9K2hbVD4+M107ej1I
PE47ZG97aWYoTjxEKXtpZih6KXtoW3A+PjNdPUg7aFtUPj4zXT1EO2JyZWFrfWhbcD4+M109Tjto
W1U+PjNdPUQ7RT0raFtUPj4zXTtpZihFPj1EKXticmVha31oW1U+PjNdPUU7aFtUPj4zXT1EfWVs
c2V7aWYoIXope2JyZWFrfWhbVT4+M109SDtoW1Q+PjNdPU47RT0raFtVPj4zXTtJPStoW3A+PjNd
O2lmKEU+PUkpe2JyZWFrfWhbcD4+M109RTtoW1U+PjNdPUl9fXdoaWxlKDApO1U9VC0oY1tTPj4y
XXwwKT4+MztwPVUrMXwwO2lmKChwfDApPjApe3o9UysoKChwfDApLzUxMnwwKTw8Mil8MDthPWNb
ej4+Ml18MDtWPTA7Vz1hKygoKHB8MCklNTEyfDApPDwzKXwwO1g9ejtZPVM7Wj1UO189YX1lbHNl
e2E9NTEwLVV8MDtVPVMrKCgoYXwwKS8tNTEyfDApPDwyKXwwO3o9Y1tVPj4yXXwwO1Y9MDtXPXor
KDUxMS0oKGF8MCklNTEyfDApPDwzKXwwO1g9VTtZPVM7Wj1UO189en1MMTA2NTp3aGlsZSgxKXt6
PVY7JD1XO1Q9WTtTPVo7VT1fO3doaWxlKDEpe2lmKCgkfDApPT0oY1txPj4yXXwwKSl7dT0xO2Fh
PTkwNjticmVhayBMMTA2NX1OPStoWyQ+PjNdO0g9K2hbUz4+M107aWYoTjxIKXthPVQ7cD1TO3g9
JDtEPUg7d2hpbGUoMSl7aFt4Pj4zXT1EO2lmKChwfDApPT0oY1tzPj4yXXwwKSl7YnJlYWt9aWYo
KHB8MCk9PShjW2E+PjJdfDApKXtuPWEtNHwwO2FiPW47YWM9KGNbbj4+Ml18MCkrNDA5NnwwfWVs
c2V7YWI9YTthYz1wfW49YWMtOHwwO0g9K2hbbj4+M107aWYoTjxIKXthPWFiO3g9cDtwPW47RD1I
fWVsc2V7YnJlYWt9fWhbcD4+M109Tjt4PXorMXwwO2lmKCh4fDApPT04KXticmVhayBMMTA2NX1h
ZD14O2FlPWNbWD4+Ml18MH1lbHNle2FkPXo7YWU9VX14PSQrOHwwO2lmKCh4LWFlfDApPT00MDk2
KXticmVha31lbHNle3o9YWQ7Uz0kOyQ9eDtUPVg7VT1hZX19VT1YKzR8MDtUPWNbVT4+Ml18MDtW
PWFkO1c9VDtZPVg7WD1VO1o9JDtfPVR9aWYoKGFhfDApPT05MDYpe2k9ZDtyZXR1cm4gdXwwfWFh
PSQrOHwwO2lmKChhYS0oY1tYPj4yXXwwKXwwKT09NDA5Nil7YWY9Y1tYKzQ+PjJdfDB9ZWxzZXth
Zj1hYX11PShhZnwwKT09KGNbcT4+Ml18MCk7aT1kO3JldHVybiB1fDB9fXJldHVybiAwfWZ1bmN0
aW9uIGNPKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaT0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MDtlPWErOHwwO2Y9Y1tlPj4yXXwwO2c9YSs0fDA7aT1jW2c+PjJdfDA7aWYoKGZ8MCk9PShpfDAp
KXtqPTB9ZWxzZXtqPShmLWk8PDcpLTF8MH1rPWErMTZ8MDtsPWNbaz4+Ml18MDttPWErMjB8MDtu
PWNbbT4+Ml18MDtvPWotbC1ufDA7aWYobz4+PjA8Yj4+PjApe2NRKGEsYi1vfDApO3A9Y1ttPj4y
XXwwO3E9Y1trPj4yXXwwO3I9Y1tnPj4yXXwwO3M9Y1tlPj4yXXwwfWVsc2V7cD1uO3E9bDtyPWk7
cz1mfWY9cStwfDA7cD1yKyhmPj4+OTw8Mil8MDtpZigoc3wwKT09KHJ8MCkpe3Q9MH1lbHNle3Q9
KGNbcD4+Ml18MCkrKChmJjUxMSk8PDMpfDB9aWYoKGJ8MCk9PTApe3JldHVybn1lbHNle3U9dDt2
PXA7dz1ifXdoaWxlKDEpe2lmKCh1fDApIT0wKXtoW3U+PjNdPStoW2Q+PjNdfWI9dy0xfDA7cD11
Kzh8MDtpZigocC0oY1t2Pj4yXXwwKXwwKT09NDA5Nil7dD12KzR8MDt4PXQ7eT1jW3Q+PjJdfDB9
ZWxzZXt4PXY7eT1wfWNbbT4+Ml09KGNbbT4+Ml18MCkrMTtpZigoYnwwKT09MCl7YnJlYWt9ZWxz
ZXt1PXk7dj14O3c9Yn19cmV0dXJufWZ1bmN0aW9uIGNQKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9
MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTA7ZD1hKzR8MDtlPWNbZD4+Ml18MDtmPWF8MDtkb3tpZigoZXwwKT09KGNbZj4+Ml18
MCkpe2c9YSs4fDA7aD1jW2c+PjJdfDA7aT1hKzEyfDA7aj1jW2k+PjJdfDA7az1qO2lmKGg+Pj4w
PGo+Pj4wKXtqPWg7bD0oKGstaj4+MikrMXwwKS8yfDA7bT1qLWV8MDtqPWgrKGwtKG0+PjIpPDwy
KXwwO2tfKGp8MCxlfDAsbXwwKTtjW2Q+PjJdPWo7Y1tnPj4yXT0oY1tnPj4yXXwwKSsobDw8Mik7
bj1qO2JyZWFrfWo9ay1lPj4xO2s9KGp8MCk9PTA/MTpqO2o9a08oazw8Mil8MDtsPWorKChrKzN8
MCk+Pj4yPDwyKXwwO209aisoazw8Mil8MDtpZigoZXwwKT09KGh8MCkpe289bDtwPWV9ZWxzZXtr
PWU7cT1sO2Rve2lmKChxfDApPT0wKXtyPTB9ZWxzZXtjW3E+PjJdPWNbaz4+Ml07cj1xfXE9cis0
fDA7az1rKzR8MDt9d2hpbGUoKGt8MCkhPShofDApKTtvPXE7cD1jW2Y+PjJdfDB9Y1tmPj4yXT1q
O2NbZD4+Ml09bDtjW2c+PjJdPW87Y1tpPj4yXT1tO2lmKChwfDApPT0wKXtuPWw7YnJlYWt9a1Mo
cCk7bj1jW2Q+PjJdfDB9ZWxzZXtuPWV9fXdoaWxlKDApO2U9bi00fDA7aWYoKGV8MCk9PTApe3M9
bjt0PXMtNHwwO2NbZD4+Ml09dDtyZXR1cm59Y1tlPj4yXT1jW2I+PjJdO3M9Y1tkPj4yXXwwO3Q9
cy00fDA7Y1tkPj4yXT10O3JldHVybn1mdW5jdGlvbiBjUShhLGIpe2E9YXwwO2I9YnwwO3ZhciBk
PTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAs
Vj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0w
LGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MDtkPWk7aT1pKzMyfDA7ZT1kfDA7Zj1kKzh8MDtnPWF8
MDtoPWErOHwwO2o9Y1toPj4yXXwwO2s9YSs0fDA7bD1jW2s+PjJdfDA7bT0oKGp8MCk9PShsfDAp
KStifDA7Yj0oKG0mNTExfDApIT0wKSsobT4+PjkpfDA7bT1hKzE2fDA7bj1jW20+PjJdfDA7bz1u
Pj4+OTtwPWI+Pj4wPG8+Pj4wP2I6bztxPWItcHwwO2lmKChifDApPT0ocHwwKSl7Y1ttPj4yXT1u
LShiPDw5KTtpZigoYnwwKT09MCl7aT1kO3JldHVybn1uPWErMTJ8MDtyPWF8MDtzPWI7dD1qO3U9
bDt3aGlsZSgxKXt2PWNbdT4+Ml18MDt3PXUrNHwwO2Nbaz4+Ml09dztkb3tpZigodHwwKT09KGNb
bj4+Ml18MCkpe3g9Y1tyPj4yXXwwO2lmKHc+Pj4wPng+Pj4wKXt5PXc7ej0oKHkteD4+MikrMXww
KS8tMnwwO0E9eisxfDA7Qj10LXl8MDtrXyh1KyhBPDwyKXwwLHd8MCxCfDApO3k9dSsoQSsoQj4+
Mik8PDIpfDA7Y1toPj4yXT15O2Nbaz4+Ml09KGNbaz4+Ml18MCkrKHo8PDIpO0M9eTticmVha315
PXQteD4+MTt6PSh5fDApPT0wPzE6eTt5PWtPKHo8PDIpfDA7Qj15Kyh6Pj4+Mjw8Mil8MDtBPXkr
KHo8PDIpfDA7aWYoKHd8MCk9PSh0fDApKXtEPUI7RT14fWVsc2V7eD13O3o9Qjtkb3tpZigoenww
KT09MCl7Rj0wfWVsc2V7Y1t6Pj4yXT1jW3g+PjJdO0Y9en16PUYrNHwwO3g9eCs0fDA7fXdoaWxl
KCh4fDApIT0odHwwKSk7RD16O0U9Y1tyPj4yXXwwfWNbcj4+Ml09eTtjW2s+PjJdPUI7Y1toPj4y
XT1EO2Nbbj4+Ml09QTtpZigoRXwwKT09MCl7Qz1EO2JyZWFrfWtTKEUpO0M9Y1toPj4yXXwwfWVs
c2V7Qz10fX13aGlsZSgwKTtpZigoQ3wwKT09MCl7Rz0wfWVsc2V7Y1tDPj4yXT12O0c9Y1toPj4y
XXwwfXc9Rys0fDA7Y1toPj4yXT13O3g9cy0xfDA7aWYoKHh8MCk9PTApe2JyZWFrfXM9eDt0PXc7
dT1jW2s+PjJdfDB9aT1kO3JldHVybn11PWErMTJ8MDt0PXV8MDtzPWNbdD4+Ml18MDtHPWF8MDth
PXMtKGNbRz4+Ml18MCl8MDtDPWotbD4+MjtpZihxPj4+MDw9KChhPj4yKS1DfDApPj4+MCl7bD1x
O0U9ajtqPXM7d2hpbGUoMSl7aWYoKGp8MCk9PShFfDApKXtIPTk3MTticmVha31zPWtPKDQwOTYp
fDA7aWYoKEV8MCk9PTApe0k9MH1lbHNle2NbRT4+Ml09cztJPWNbaD4+Ml18MH1zPUkrNHwwO2Nb
aD4+Ml09cztEPWwtMXwwO2lmKChEfDApPT0wKXtKPXM7SD05NzI7YnJlYWt9bD1EO0U9cztqPWNb
dD4+Ml18MH1kb3tpZigoSHwwKT09OTcxKXtpZigobHwwKT09MCl7Sj1qO0g9OTcyO2JyZWFrfUU9
fm87ST1+YjtzPUU+Pj4wPkk+Pj4wP0U6STtJPWw7ZG97Y1tlPj4yXT1rTyg0MDk2KXwwO2NQKGcs
ZSk7ST1JLTF8MDtLPWNbaD4+Ml18MDtMPShjW20+PjJdfDApKzUxMi0oKEstKGNbaz4+Ml18MCl8
MCk9PTQpfDA7Y1ttPj4yXT1MO313aGlsZSgoSXwwKSE9MCk7TT1sLTEtc3wwO049SztPPUx9fXdo
aWxlKDApO2lmKChIfDApPT05NzIpe009cDtOPUo7Tz1jW20+PjJdfDB9Y1ttPj4yXT1PLShNPDw5
KTtpZigoTXwwKT09MCl7aT1kO3JldHVybn1lbHNle1A9TTtRPU59ZG97Tj1jW2s+PjJdfDA7TT1j
W04+PjJdfDA7Tz1OKzR8MDtjW2s+PjJdPU87ZG97aWYoKFF8MCk9PShjW3Q+PjJdfDApKXtKPWNb
Rz4+Ml18MDtpZihPPj4+MD5KPj4+MCl7SD1PO0w9KChILUo+PjIpKzF8MCkvLTJ8MDtLPUwrMXww
O2w9US1IfDA7a18oTisoSzw8Mil8MCxPfDAsbHwwKTtIPU4rKEsrKGw+PjIpPDwyKXwwO2NbaD4+
Ml09SDtjW2s+PjJdPShjW2s+PjJdfDApKyhMPDwyKTtSPUg7YnJlYWt9SD1RLUo+PjE7TD0oSHww
KT09MD8xOkg7SD1rTyhMPDwyKXwwO2w9SCsoTD4+PjI8PDIpfDA7Sz1IKyhMPDwyKXwwO2lmKChP
fDApPT0oUXwwKSl7Uz1sO1Q9Sn1lbHNle0o9TztMPWw7ZG97aWYoKEx8MCk9PTApe1U9MH1lbHNl
e2NbTD4+Ml09Y1tKPj4yXTtVPUx9TD1VKzR8MDtKPUorNHwwO313aGlsZSgoSnwwKSE9KFF8MCkp
O1M9TDtUPWNbRz4+Ml18MH1jW0c+PjJdPUg7Y1trPj4yXT1sO2NbaD4+Ml09UztjW3Q+PjJdPUs7
aWYoKFR8MCk9PTApe1I9UzticmVha31rUyhUKTtSPWNbaD4+Ml18MH1lbHNle1I9UX19d2hpbGUo
MCk7aWYoKFJ8MCk9PTApe1Y9MH1lbHNle2NbUj4+Ml09TTtWPWNbaD4+Ml18MH1RPVYrNHwwO2Nb
aD4+Ml09UTtQPVAtMXwwO313aGlsZSgoUHwwKSE9MCk7aT1kO3JldHVybn1QPXA8PDk7UT1hPj4x
O2E9cStDfDA7Vj1RPj4+MDxhPj4+MD9hOlE7UT1mKzEyfDA7Y1tRPj4yXT0wO2NbZisxNj4+Ml09
dTtpZigoVnwwKT09MCl7Vz0wfWVsc2V7Vz1rTyhWPDwyKXwwfXU9ZnwwO2NbdT4+Ml09VzthPVcr
KEMtcDw8Mil8MDtDPWYrOHwwO2NbQz4+Ml09YTtSPWYrNHwwO2NbUj4+Ml09YTtUPVcrKFY8PDIp
fDA7Y1tRPj4yXT1UO1Y9cTtxPVc7Vz1hO1M9VDtUPWE7d2hpbGUoMSl7YT1rTyg0MDk2KXwwO2Rv
e2lmKChXfDApPT0oU3wwKSl7aWYoVD4+PjA+cT4+PjApe1U9VDtPPSgoVS1xPj4yKSsxfDApLy0y
fDA7Tj1TLVV8MDtrXyhUKyhPPDwyKXwwLFR8MCxOfDApO1U9VCsoTysoTj4+Mik8PDIpfDA7Y1tD
Pj4yXT1VO049KGNbUj4+Ml18MCkrKE88PDIpfDA7Y1tSPj4yXT1OO1g9VTtZPVM7Wj1xO189Tjti
cmVha31OPVMtcT4+MTtVPShOfDApPT0wPzE6TjtOPWtPKFU8PDIpfDA7Tz1OKyhVPj4+Mjw8Mil8
MDtzPU4rKFU8PDIpfDA7aWYoKFR8MCk9PShTfDApKXskPU87YWE9cX1lbHNle1U9VDtKPU87ZG97
aWYoKEp8MCk9PTApe2FiPTB9ZWxzZXtjW0o+PjJdPWNbVT4+Ml07YWI9Sn1KPWFiKzR8MDtVPVUr
NHwwO313aGlsZSgoVXwwKSE9KFN8MCkpOyQ9SjthYT1jW3U+PjJdfDB9Y1t1Pj4yXT1OO2NbUj4+
Ml09TztjW0M+PjJdPSQ7Y1tRPj4yXT1zO2lmKChhYXwwKT09MCl7WD0kO1k9cztaPU47Xz1PO2Jy
ZWFrfWtTKGFhKTtYPSQ7WT1zO1o9TjtfPU99ZWxzZXtYPVc7WT1TO1o9cTtfPVR9fXdoaWxlKDAp
O2lmKChYfDApPT0wKXthYz0wfWVsc2V7Y1tYPj4yXT1hO2FjPWNbQz4+Ml18MH1hZD1hYys0fDA7
Y1tDPj4yXT1hZDtNPVYtMXwwO2lmKChNfDApPT0wKXticmVha31lbHNle1Y9TTtxPVo7Vz1hZDtT
PVk7VD1ffX1pZigocHwwKSE9MCl7Xz1wO3A9Y1trPj4yXXwwO1Q9YWQ7YWQ9WTtZPVo7d2hpbGUo
MSl7ZG97aWYoKFR8MCk9PShhZHwwKSl7Wj1jW1I+PjJdfDA7aWYoWj4+PjA+WT4+PjApe1M9WjtX
PSgoUy1ZPj4yKSsxfDApLy0yfDA7cT1aKyhXPDwyKXwwO1Y9YWQtU3wwO2tfKHF8MCxafDAsVnww
KTtTPVorKFcrKFY+PjIpPDwyKXwwO2NbQz4+Ml09UztjW1I+PjJdPXE7YWU9UzthZj1hZDthZz1Z
O2JyZWFrfVM9YWQtWT4+MTtxPShTfDApPT0wPzE6UztTPWtPKHE8PDIpfDA7Vj1TKyhxPj4+Mjw8
Mil8MDtXPVMrKHE8PDIpfDA7aWYoKFp8MCk9PShhZHwwKSl7YWg9VjthaT1ZfWVsc2V7cT1aO1o9
Vjtkb3tpZigoWnwwKT09MCl7YWo9MH1lbHNle2NbWj4+Ml09Y1txPj4yXTthaj1afVo9YWorNHww
O3E9cSs0fDA7fXdoaWxlKChxfDApIT0oYWR8MCkpO2FoPVo7YWk9Y1t1Pj4yXXwwfWNbdT4+Ml09
UztjW1I+PjJdPVY7Y1tDPj4yXT1haDtjW1E+PjJdPVc7aWYoKGFpfDApPT0wKXthZT1haDthZj1X
O2FnPVM7YnJlYWt9a1MoYWkpO2FlPWFoO2FmPVc7YWc9U31lbHNle2FlPVQ7YWY9YWQ7YWc9WX19
d2hpbGUoMCk7aWYoKGFlfDApPT0wKXthaz0wfWVsc2V7Y1thZT4+Ml09Y1twPj4yXTthaz1jW0M+
PjJdfDB9YT1hays0fDA7Y1tDPj4yXT1hO3E9KGNbaz4+Ml18MCkrNHwwO2Nbaz4+Ml09cTtPPV8t
MXwwO2lmKChPfDApPT0wKXticmVha31lbHNle189TztwPXE7VD1hO2FkPWFmO1k9YWd9fX1hZz1j
W2g+PjJdfDA7d2hpbGUoMSl7aWYoKGFnfDApPT0oY1trPj4yXXwwKSl7YnJlYWt9WT1hZy00fDA7
Y1MoZixZKTthZz1ZfWY9Y1tHPj4yXXwwO2NbRz4+Ml09Y1t1Pj4yXTtjW3U+PjJdPWY7Y1trPj4y
XT1jW1I+PjJdO2NbUj4+Ml09YWc7Uj1jW2g+PjJdfDA7Y1toPj4yXT1jW0M+PjJdO2NbQz4+Ml09
UjtoPWNbdD4+Ml18MDtjW3Q+PjJdPWNbUT4+Ml07Y1tRPj4yXT1oO2NbbT4+Ml09KGNbbT4+Ml18
MCktUDtpZigoYWd8MCkhPShSfDApKXtjW0M+PjJdPVIrKH4oKFItNCsoLWFnfDApfDApPj4+Mik8
PDIpfWlmKChmfDApPT0wKXtpPWQ7cmV0dXJufWtTKGYpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gY1Io
YSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAu
MCxpPTAuMCxqPTAuMCxrPTAsbD0wLjAsbT0wLjAsbj0wLjAsbz0wLHA9MDtnPStoW2I+PjNdO2k9
K2hbYT4+M107aj0raFtjPj4zXTtmPWo8Zztkb3tpZihnPGkpe2lmKGYpe2hbYT4+M109ajtoW2M+
PjNdPWk7az0xO2w9aTticmVha31oW2E+PjNdPWc7aFtiPj4zXT1pO209K2hbYz4+M107aWYobT49
aSl7az0xO2w9bTticmVha31oW2I+PjNdPW07aFtjPj4zXT1pO2s9MjtsPWl9ZWxzZXtpZighZil7
az0wO2w9ajticmVha31oW2I+PjNdPWo7aFtjPj4zXT1nO209K2hbYj4+M107bj0raFthPj4zXTtp
ZihtPj1uKXtrPTE7bD1nO2JyZWFrfWhbYT4+M109bTtoW2I+PjNdPW47az0yO2w9K2hbYz4+M119
fXdoaWxlKDApO2c9K2hbZD4+M107ZG97aWYoZzxsKXtoW2M+PjNdPWc7aFtkPj4zXT1sO2o9K2hb
Yz4+M107aT0raFtiPj4zXTtpZihqPj1pKXtvPWsrMXwwO2JyZWFrfWhbYj4+M109ajtoW2M+PjNd
PWk7aT0raFtiPj4zXTtqPStoW2E+PjNdO2lmKGk8ail7aFthPj4zXT1pO2hbYj4+M109ajtvPWsr
M3wwO2JyZWFrfWVsc2V7bz1rKzJ8MDticmVha319ZWxzZXtvPWt9fXdoaWxlKDApO2w9K2hbZT4+
M107Zz0raFtkPj4zXTtpZihsPj1nKXtwPW87cmV0dXJuIHB8MH1oW2Q+PjNdPWw7aFtlPj4zXT1n
O2c9K2hbZD4+M107bD0raFtjPj4zXTtpZihnPj1sKXtwPW8rMXwwO3JldHVybiBwfDB9aFtjPj4z
XT1nO2hbZD4+M109bDtsPStoW2M+PjNdO2c9K2hbYj4+M107aWYobD49Zyl7cD1vKzJ8MDtyZXR1
cm4gcHwwfWhbYj4+M109bDtoW2M+PjNdPWc7Zz0raFtiPj4zXTtsPStoW2E+PjNdO2lmKGc+PWwp
e3A9byszfDA7cmV0dXJuIHB8MH1oW2E+PjNdPWc7aFtiPj4zXT1sO3A9bys0fDA7cmV0dXJuIHB8
MH1mdW5jdGlvbiBjUyhhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGk9
MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wO2Q9YSs0fDA7ZT1j
W2Q+PjJdfDA7Zj1hfDA7ZG97aWYoKGV8MCk9PShjW2Y+PjJdfDApKXtnPWErOHwwO2g9Y1tnPj4y
XXwwO2k9YSsxMnwwO2o9Y1tpPj4yXXwwO2s9ajtpZihoPj4+MDxqPj4+MCl7aj1oO2w9KChrLWo+
PjIpKzF8MCkvMnwwO209ai1lfDA7aj1oKyhsLShtPj4yKTw8Mil8MDtrXyhqfDAsZXwwLG18MCk7
Y1tkPj4yXT1qO2NbZz4+Ml09KGNbZz4+Ml18MCkrKGw8PDIpO249ajticmVha31qPWstZT4+MTtr
PShqfDApPT0wPzE6ajtqPWtPKGs8PDIpfDA7bD1qKygoayszfDApPj4+Mjw8Mil8MDttPWorKGs8
PDIpfDA7aWYoKGV8MCk9PShofDApKXtvPWw7cD1lfWVsc2V7az1lO3E9bDtkb3tpZigocXwwKT09
MCl7cj0wfWVsc2V7Y1txPj4yXT1jW2s+PjJdO3I9cX1xPXIrNHwwO2s9ays0fDA7fXdoaWxlKChr
fDApIT0oaHwwKSk7bz1xO3A9Y1tmPj4yXXwwfWNbZj4+Ml09ajtjW2Q+PjJdPWw7Y1tnPj4yXT1v
O2NbaT4+Ml09bTtpZigocHwwKT09MCl7bj1sO2JyZWFrfWtTKHApO249Y1tkPj4yXXwwfWVsc2V7
bj1lfX13aGlsZSgwKTtlPW4tNHwwO2lmKChlfDApPT0wKXtzPW47dD1zLTR8MDtjW2Q+PjJdPXQ7
cmV0dXJufWNbZT4+Ml09Y1tiPj4yXTtzPWNbZD4+Ml18MDt0PXMtNHwwO2NbZD4+Ml09dDtyZXR1
cm59ZnVuY3Rpb24gY1QoKXtjWzI0NDZdPTA7Y1syNDQ3XT0wO2NbMjQ0OF09MDthJCg3Miw5Nzg0
LHV8MCl8MDtyZXR1cm59ZnVuY3Rpb24gY1UoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO3ZhciBk
PTAsZT0wLGY9MCxnPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MC4wLHE9MC4wLHI9
MC4wLHM9MC4wLHQ9MC4wLHU9MCx2PTAsdz0wLHg9MC4wLHk9MCx6PTAuMCxBPTAsQj0wLEM9MCxE
PTAuMCxFPTAsRj0wLEc9MC4wLEg9MCxJPTAsSj0wLEs9MC4wLEw9MCxNPTAsTj0wLjAsTz0wLFA9
MCxRPTAsUj0wLFM9MCxUPTAuMCxVPTAsVj0wLFc9MC4wLFg9MCxZPTAuMDtkPWE7YT1iO0wxMzk3
OndoaWxlKDEpe2I9YTtlPWEtOHwwO2Y9ZDtMMTM5OTp3aGlsZSgxKXtnPWY7aT1iLWd8MDtqPWk+
PjM7c3dpdGNoKGp8MCl7Y2FzZSAzOntrPTExMDI7YnJlYWsgTDEzOTc7YnJlYWt9O2Nhc2UgNTp7
az0xMTIyO2JyZWFrIEwxMzk3O2JyZWFrfTtjYXNlIDI6e2s9MTEwMDticmVhayBMMTM5NzticmVh
a307Y2FzZSAwOmNhc2UgMTp7az0xMTg1O2JyZWFrIEwxMzk3O2JyZWFrfTtjYXNlIDQ6e2s9MTEx
MDticmVhayBMMTM5NzticmVha307ZGVmYXVsdDp7fX1pZigoaXwwKTwyNDgpe2s9MTEyNDticmVh
ayBMMTM5N31sPShqfDApLzJ8MDttPWYrKGw8PDMpfDA7ZG97aWYoKGl8MCk+Nzk5Mil7bj0oanww
KS80fDA7bz1jUihmLGYrKG48PDMpfDAsbSxmKyhuK2w8PDMpfDAsZSwwKXwwfWVsc2V7cD0raFtt
Pj4zXTtxPStoW2Y+PjNdO3I9K2hbZT4+M107bj1yPHA7aWYocD49cSl7aWYoIW4pe289MDticmVh
a31oW20+PjNdPXI7aFtlPj4zXT1wO3M9K2hbbT4+M107dD0raFtmPj4zXTtpZihzPj10KXtvPTE7
YnJlYWt9aFtmPj4zXT1zO2hbbT4+M109dDtvPTI7YnJlYWt9aWYobil7aFtmPj4zXT1yO2hbZT4+
M109cTtvPTE7YnJlYWt9aFtmPj4zXT1wO2hbbT4+M109cTtwPStoW2U+PjNdO2lmKHA+PXEpe289
MTticmVha31oW20+PjNdPXA7aFtlPj4zXT1xO289Mn19d2hpbGUoMCk7cT0raFtmPj4zXTtwPSto
W20+PjNdO2Rve2lmKHE8cCl7dT1lO3Y9b31lbHNle2w9ZTt3aGlsZSgxKXt3PWwtOHwwO2lmKChm
fDApPT0od3wwKSl7YnJlYWt9eD0raFt3Pj4zXTtpZih4PHApe2s9MTE2MjticmVha31lbHNle2w9
d319aWYoKGt8MCk9PTExNjIpe2s9MDtoW2Y+PjNdPXg7aFt3Pj4zXT1xO3U9dzt2PW8rMXwwO2Jy
ZWFrfWw9Zis4fDA7cj0raFtlPj4zXTtpZihxPHIpe3k9bH1lbHNle2o9bDt3aGlsZSgxKXtpZigo
anwwKT09KGV8MCkpe2s9MTE5NzticmVhayBMMTM5N316PStoW2o+PjNdO0E9ais4fDA7aWYocTx6
KXticmVha31lbHNle2o9QX19aFtqPj4zXT1yO2hbZT4+M109ejt5PUF9aWYoKHl8MCk9PShlfDAp
KXtrPTExOTI7YnJlYWsgTDEzOTd9ZWxzZXtCPWU7Qz15fXdoaWxlKDEpe3Q9K2hbZj4+M107bD1D
O3doaWxlKDEpe0Q9K2hbbD4+M107RT1sKzh8MDtpZih0Pj1EKXtsPUV9ZWxzZXtGPUI7YnJlYWt9
fWRve0Y9Ri04fDA7Rz0raFtGPj4zXTt9d2hpbGUodDxHKTtpZihsPj4+MD49Rj4+PjApe2Y9bDtj
b250aW51ZSBMMTM5OX1oW2w+PjNdPUc7aFtGPj4zXT1EO0I9RjtDPUV9fX13aGlsZSgwKTtqPWYr
OHwwO0wxNDM4OmRve2lmKGo+Pj4wPHU+Pj4wKXtpPXU7bj1qO0g9djtJPW07d2hpbGUoMSl7cT0r
aFtJPj4zXTtKPW47d2hpbGUoMSl7Sz0raFtKPj4zXTtMPUorOHwwO2lmKEs8cSl7Sj1MfWVsc2V7
TT1pO2JyZWFrfX1kb3tNPU0tOHwwO049K2hbTT4+M107fXdoaWxlKE4+PXEpO2lmKEo+Pj4wPk0+
Pj4wKXtPPUo7UD1IO1E9STticmVhayBMMTQzOH1oW0o+PjNdPU47aFtNPj4zXT1LO2k9TTtuPUw7
SD1IKzF8MDtJPShJfDApPT0oSnwwKT9NOkl9fWVsc2V7Tz1qO1A9djtRPW19fXdoaWxlKDApO2Rv
e2lmKChPfDApPT0oUXwwKSl7Uj1QfWVsc2V7cT0raFtRPj4zXTtwPStoW08+PjNdO2lmKHE+PXAp
e1I9UDticmVha31oW08+PjNdPXE7aFtRPj4zXT1wO1I9UCsxfDB9fXdoaWxlKDApO2lmKChSfDAp
PT0wKXtTPWNWKGYsTywwKXwwO209Tys4fDA7aWYoY1YobSxhLDApfDApe2s9MTE3NDticmVha31p
ZihTKXtmPW07Y29udGludWV9fW09TztpZigobS1nfDApPj0oYi1tfDApKXtrPTExNzg7YnJlYWt9
Y1UoZixPLGMpO2Y9Tys4fDB9aWYoKGt8MCk9PTExNzQpe2s9MDtpZihTKXtrPTExODY7YnJlYWt9
ZWxzZXtkPWY7YT1PO2NvbnRpbnVlfX1lbHNlIGlmKChrfDApPT0xMTc4KXtrPTA7Y1UoTys4fDAs
YSxjKTtkPWY7YT1PO2NvbnRpbnVlfX1pZigoa3wwKT09MTEwMil7Tz1mKzh8MDtLPStoW08+PjNd
O049K2hbZj4+M107RD0raFtlPj4zXTtkPUQ8SztpZihLPj1OKXtpZighZCl7cmV0dXJufWhbTz4+
M109RDtoW2U+PjNdPUs7Rz0raFtPPj4zXTt6PStoW2Y+PjNdO2lmKEc+PXope3JldHVybn1oW2Y+
PjNdPUc7aFtPPj4zXT16O3JldHVybn1pZihkKXtoW2Y+PjNdPUQ7aFtlPj4zXT1OO3JldHVybn1o
W2Y+PjNdPUs7aFtPPj4zXT1OO0s9K2hbZT4+M107aWYoSz49Til7cmV0dXJufWhbTz4+M109Szto
W2U+PjNdPU47cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMjIpe2NSKGYsZis4fDAsZisxNnwwLGYr
MjR8MCxlLDApfDA7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMjQpe089ZisxNnwwO2Q9Zis4fDA7
Tj0raFtkPj4zXTtLPStoW2Y+PjNdO0Q9K2hbTz4+M107Yz1EPE47ZG97aWYoTjxLKXtpZihjKXto
W2Y+PjNdPUQ7aFtPPj4zXT1LO1Q9SzticmVha31oW2Y+PjNdPU47aFtkPj4zXT1LO2lmKEQ+PUsp
e1Q9RDticmVha31oW2Q+PjNdPUQ7aFtPPj4zXT1LO1Q9S31lbHNle2lmKCFjKXtUPUQ7YnJlYWt9
aFtkPj4zXT1EO2hbTz4+M109TjtpZihEPj1LKXtUPU47YnJlYWt9aFtmPj4zXT1EO2hbZD4+M109
SztUPU59fXdoaWxlKDApO2Q9ZisyNHwwO2lmKChkfDApPT0oYXwwKSl7cmV0dXJufWVsc2V7VT1P
O1Y9ZDtXPVR9d2hpbGUoMSl7VD0raFtWPj4zXTtpZihUPFcpe2Q9VTtPPVY7Tj1XO3doaWxlKDEp
e2hbTz4+M109TjtpZigoZHwwKT09KGZ8MCkpe1g9ZjticmVha31jPWQtOHwwO0s9K2hbYz4+M107
aWYoVDxLKXtPPWQ7ZD1jO049S31lbHNle1g9ZDticmVha319aFtYPj4zXT1UfWQ9Vis4fDA7aWYo
KGR8MCk9PShhfDApKXticmVha31OPStoW1Y+PjNdO1U9VjtWPWQ7Vz1OfXJldHVybn1lbHNlIGlm
KChrfDApPT0xMTk3KXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTEwMCl7Vz0raFtlPj4zXTtOPSto
W2Y+PjNdO2lmKFc+PU4pe3JldHVybn1oW2Y+PjNdPVc7aFtlPj4zXT1OO3JldHVybn1lbHNlIGlm
KChrfDApPT0xMTg1KXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTE4Nil7cmV0dXJufWVsc2UgaWYo
KGt8MCk9PTExOTIpe3JldHVybn1lbHNlIGlmKChrfDApPT0xMTEwKXtrPWYrOHwwO1Y9ZisxNnww
O049K2hbaz4+M107Vz0raFtmPj4zXTtLPStoW1Y+PjNdO1U9SzxOO2Rve2lmKE48Vyl7aWYoVSl7
aFtmPj4zXT1LO2hbVj4+M109VztZPVc7YnJlYWt9aFtmPj4zXT1OO2hbaz4+M109VztpZihLPj1X
KXtZPUs7YnJlYWt9aFtrPj4zXT1LO2hbVj4+M109VztZPVd9ZWxzZXtpZighVSl7WT1LO2JyZWFr
fWhbaz4+M109SztoW1Y+PjNdPU47aWYoSz49Vyl7WT1OO2JyZWFrfWhbZj4+M109SztoW2s+PjNd
PVc7WT1OfX13aGlsZSgwKTtOPStoW2U+PjNdO2lmKE4+PVkpe3JldHVybn1oW1Y+PjNdPU47aFtl
Pj4zXT1ZO1k9K2hbVj4+M107Tj0raFtrPj4zXTtpZihZPj1OKXtyZXR1cm59aFtrPj4zXT1ZO2hb
Vj4+M109TjtOPStoW2Y+PjNdO2lmKFk+PU4pe3JldHVybn1oW2Y+PjNdPVk7aFtrPj4zXT1OO3Jl
dHVybn19ZnVuY3Rpb24gY1YoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO3ZhciBkPTAsZT0wLGY9
MC4wLGc9MC4wLGk9MC4wLGo9MCxrPTAuMCxsPTAuMCxtPTAsbj0wLjAsbz0wLjAscD0wLHE9MCxy
PTAscz0wLjAsdD0wLHU9MCx2PTA7c3dpdGNoKGItYT4+M3wwKXtjYXNlIDA6Y2FzZSAxOntkPTE7
cmV0dXJuIGR8MH07Y2FzZSAzOntjPWErOHwwO2U9Yi04fDA7Zj0raFtjPj4zXTtnPStoW2E+PjNd
O2k9K2hbZT4+M107aj1pPGY7aWYoZj49Zyl7aWYoIWope2Q9MTtyZXR1cm4gZHwwfWhbYz4+M109
aTtoW2U+PjNdPWY7az0raFtjPj4zXTtsPStoW2E+PjNdO2lmKGs+PWwpe2Q9MTtyZXR1cm4gZHww
fWhbYT4+M109aztoW2M+PjNdPWw7ZD0xO3JldHVybiBkfDB9aWYoail7aFthPj4zXT1pO2hbZT4+
M109ZztkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPWY7aFtjPj4zXT1nO2Y9K2hbZT4+M107aWYoZj49
Zyl7ZD0xO3JldHVybiBkfDB9aFtjPj4zXT1mO2hbZT4+M109ZztkPTE7cmV0dXJuIGR8MH07Y2Fz
ZSAyOntlPWItOHwwO2c9K2hbZT4+M107Zj0raFthPj4zXTtpZihnPj1mKXtkPTE7cmV0dXJuIGR8
MH1oW2E+PjNdPWc7aFtlPj4zXT1mO2Q9MTtyZXR1cm4gZHwwfTtjYXNlIDQ6e2U9YSs4fDA7Yz1h
KzE2fDA7aj1iLTh8MDtmPStoW2U+PjNdO2c9K2hbYT4+M107aT0raFtjPj4zXTttPWk8Zjtkb3tp
ZihmPGcpe2lmKG0pe2hbYT4+M109aTtoW2M+PjNdPWc7bj1nO2JyZWFrfWhbYT4+M109ZjtoW2U+
PjNdPWc7aWYoaT49Zyl7bj1pO2JyZWFrfWhbZT4+M109aTtoW2M+PjNdPWc7bj1nfWVsc2V7aWYo
IW0pe249aTticmVha31oW2U+PjNdPWk7aFtjPj4zXT1mO2lmKGk+PWcpe249ZjticmVha31oW2E+
PjNdPWk7aFtlPj4zXT1nO249Zn19d2hpbGUoMCk7Zj0raFtqPj4zXTtpZihmPj1uKXtkPTE7cmV0
dXJuIGR8MH1oW2M+PjNdPWY7aFtqPj4zXT1uO249K2hbYz4+M107Zj0raFtlPj4zXTtpZihuPj1m
KXtkPTE7cmV0dXJuIGR8MH1oW2U+PjNdPW47aFtjPj4zXT1mO2Y9K2hbYT4+M107aWYobj49Zil7
ZD0xO3JldHVybiBkfDB9aFthPj4zXT1uO2hbZT4+M109ZjtkPTE7cmV0dXJuIGR8MH07Y2FzZSA1
OntjUihhLGErOHwwLGErMTZ8MCxhKzI0fDAsYi04fDAsMCl8MDtkPTE7cmV0dXJuIGR8MH07ZGVm
YXVsdDp7ZT1hKzE2fDA7Yz1hKzh8MDtmPStoW2M+PjNdO249K2hbYT4+M107Zz0raFtlPj4zXTtq
PWc8Zjtkb3tpZihmPG4pe2lmKGope2hbYT4+M109ZztoW2U+PjNdPW47bz1uO2JyZWFrfWhbYT4+
M109ZjtoW2M+PjNdPW47aWYoZz49bil7bz1nO2JyZWFrfWhbYz4+M109ZztoW2U+PjNdPW47bz1u
fWVsc2V7aWYoIWope289ZzticmVha31oW2M+PjNdPWc7aFtlPj4zXT1mO2lmKGc+PW4pe289Zjti
cmVha31oW2E+PjNdPWc7aFtjPj4zXT1uO289Zn19d2hpbGUoMCk7Yz1hKzI0fDA7aWYoKGN8MCk9
PShifDApKXtkPTE7cmV0dXJuIGR8MH1lbHNle3A9ZTtxPTA7cj1jO3M9b313aGlsZSgxKXtvPSto
W3I+PjNdO2lmKG88cyl7Yz1wO2U9cjtmPXM7d2hpbGUoMSl7aFtlPj4zXT1mO2lmKChjfDApPT0o
YXwwKSl7dD1hO2JyZWFrfWo9Yy04fDA7bj0raFtqPj4zXTtpZihvPG4pe2U9YztjPWo7Zj1ufWVs
c2V7dD1jO2JyZWFrfX1oW3Q+PjNdPW87Yz1xKzF8MDtpZigoY3wwKT09OCl7YnJlYWt9ZWxzZXt1
PWN9fWVsc2V7dT1xfWM9cis4fDA7aWYoKGN8MCk9PShifDApKXtkPTE7dj0xMjU2O2JyZWFrfWY9
K2hbcj4+M107cD1yO3E9dTtyPWM7cz1mfWlmKCh2fDApPT0xMjU2KXtyZXR1cm4gZHwwfWQ9KHIr
OHwwKT09KGJ8MCk7cmV0dXJuIGR8MH19cmV0dXJuIDB9ZnVuY3Rpb24gY1coYSl7YT1hfDA7dmFy
IGI9MDthPShjWzQwMzhdfDApLTF8MDtjWzQwMzhdPWE7aWYoKGF8MCkhPTApe3JldHVybn1iO3Jl
dHVybn1mdW5jdGlvbiBjWChiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTA7ZG97aWYoKGFbMTYyODBd
fDApPT0wKXtpZigoYmMoMTYyODApfDApPT0wKXticmVha31jWzI5NjJdPTU0ODk7Yj0xO2Q9NTQ4
OTtkb3tkPShhZyhkPj4+MzBeZCwxODEyNDMzMjUzKXwwKStifDA7Y1sxMTg0OCsoYjw8Mik+PjJd
PWQ7Yj1iKzF8MDt9d2hpbGUoYj4+PjA8NjI0KTtjWzM1ODZdPTB9fXdoaWxlKDApO2I9Y1szNTg2
XXwwO2Q9KChiKzF8MCk+Pj4wKSU2MjR8MDtlPTExODQ4KyhiPDwyKXwwO2Y9Y1sxMTg0OCsoZDw8
Mik+PjJdfDA7Y1tlPj4yXT0tKGYmMSkmLTE3Mjc0ODM2ODFeY1sxMTg0OCsoKCgoYiszOTd8MCk+
Pj4wKSU2MjR8MCk8PDIpPj4yXV4oZiYyMTQ3NDgzNjQ2fGNbZT4+Ml0mLTIxNDc0ODM2NDgpPj4+
MTtlPWNbMTE4NDgrKGNbMzU4Nl08PDIpPj4yXXwwO2Y9ZT4+PjExXmU7Y1szNTg2XT1kO2Q9Zjw8
NyYtMTY1ODAzODY1Nl5mO2Y9ZDw8MTUmLTI3MjIzNjU0NF5kO3JldHVybiBmPj4+MTheZnwwfWZ1
bmN0aW9uIGNZKGEpe2E9YXwwO3ZhciBiPTA7YjtjWzQwMzhdPTE7cmV0dXJufWZ1bmN0aW9uIGNa
KGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wO2I9aTtpPWkrMzJ8
MDtkPWJ8MDtlPWIrOHwwO2Y9YisxNnwwO2c9YisyNHwwO2RxKDE1MTM2LGNbbz4+Ml18MCwxNTE5
Mik7Y1s0MDE0XT00NTAwO2NbNDAxNl09NDUyMDtjWzQwMTVdPTA7aD1jWzExMjJdfDA7ZWsoMTYw
NTYraHwwLDE1MTM2KTtjW2grMTYxMjg+PjJdPTA7Y1toKzE2MTMyPj4yXT0tMTtoPWNbdD4+Ml18
MDtlcCgxNTA0MCk7Y1szNzYwXT00NjQ4O2NbMzc2OF09aDtpTihnLDE1MDQ0KTtoPWlYKGcsMTUz
OTIpfDA7aj1oO2lPKGcpO2NbMzc2OV09ajtjWzM3NzBdPTE1MjAwO2FbMTUwODRdPShiMFtjWyhj
W2g+PjJdfDApKzI4Pj4yXSYxMjddKGopfDApJjE7Y1szOTQ4XT00NDA0O2NbMzk0OV09NDQyNDtq
PWNbMTA5OF18MDtlaygxNTc5MitqfDAsMTUwNDApO2g9ais3MnwwO2NbMTU3OTIraD4+Ml09MDtn
PWorNzZ8MDtjWzE1NzkyK2c+PjJdPS0xO2s9Y1tyPj4yXXwwO2VwKDE1MDg4KTtjWzM3NzJdPTQ2
NDg7Y1szNzgwXT1rO2lOKGYsMTUwOTIpO2s9aVgoZiwxNTM5Mil8MDtsPWs7aU8oZik7Y1szNzgx
XT1sO2NbMzc4Ml09MTUyMDg7YVsxNTEzMl09KGIwW2NbKGNbaz4+Ml18MCkrMjg+PjJdJjEyN10o
bCl8MCkmMTtjWzM5OTJdPTQ0MDQ7Y1szOTkzXT00NDI0O2VrKDE1OTY4K2p8MCwxNTA4OCk7Y1sx
NTk2OCtoPj4yXT0wO2NbMTU5NjgrZz4+Ml09LTE7bD1jWyhjWyhjWzM5OTJdfDApLTEyPj4yXXww
KSsxNTk5Mj4+Ml18MDtjWzM5NzBdPTQ0MDQ7Y1szOTcxXT00NDI0O2VrKDE1ODgwK2p8MCxsKTtj
WzE1ODgwK2g+PjJdPTA7Y1sxNTg4MCtnPj4yXT0tMTtjWyhjWyhjWzQwMTRdfDApLTEyPj4yXXww
KSsxNjEyOD4+Ml09MTU3OTI7Zz0oY1soY1szOTkyXXwwKS0xMj4+Ml18MCkrMTU5NzJ8MDtjW2c+
PjJdPWNbZz4+Ml18ODE5MjtjWyhjWyhjWzM5OTJdfDApLTEyPj4yXXwwKSsxNjA0MD4+Ml09MTU3
OTI7YzMoMTQ5ODQsY1tvPj4yXXwwLDE1MjE2KTtjWzM5MjZdPTQ0NTI7Y1szOTI4XT00NDcyO2Nb
MzkyN109MDtnPWNbMTExMF18MDtlaygxNTcwNCtnfDAsMTQ5ODQpO2NbZysxNTc3Nj4+Ml09MDtj
W2crMTU3ODA+PjJdPS0xO2c9Y1t0Pj4yXXwwO2V3KDE0ODg4KTtjWzM3MjJdPTQ1NzY7Y1szNzMw
XT1nO2lOKGUsMTQ4OTIpO2c9aVgoZSwxNTM4NCl8MDtoPWc7aU8oZSk7Y1szNzMxXT1oO2NbMzcz
Ml09MTUyMjQ7YVsxNDkzMl09KGIwW2NbKGNbZz4+Ml18MCkrMjg+PjJdJjEyN10oaCl8MCkmMTtj
WzM4NTZdPTQzNTY7Y1szODU3XT00Mzc2O2g9Y1sxMDg2XXwwO2VrKDE1NDI0K2h8MCwxNDg4OCk7
Zz1oKzcyfDA7Y1sxNTQyNCtnPj4yXT0wO2U9aCs3NnwwO2NbMTU0MjQrZT4+Ml09LTE7bD1jW3I+
PjJdfDA7ZXcoMTQ5MzYpO2NbMzczNF09NDU3NjtjWzM3NDJdPWw7aU4oZCwxNDk0MCk7bD1pWChk
LDE1Mzg0KXwwO2o9bDtpTyhkKTtjWzM3NDNdPWo7Y1szNzQ0XT0xNTIzMjthWzE0OTgwXT0oYjBb
Y1soY1tsPj4yXXwwKSsyOD4+Ml0mMTI3XShqKXwwKSYxO2NbMzkwMF09NDM1NjtjWzM5MDFdPTQz
NzY7ZWsoMTU2MDAraHwwLDE0OTM2KTtjWzE1NjAwK2c+PjJdPTA7Y1sxNTYwMCtlPj4yXT0tMTtq
PWNbKGNbKGNbMzkwMF18MCktMTI+PjJdfDApKzE1NjI0Pj4yXXwwO2NbMzg3OF09NDM1NjtjWzM4
NzldPTQzNzY7ZWsoMTU1MTIraHwwLGopO2NbMTU1MTIrZz4+Ml09MDtjWzE1NTEyK2U+PjJdPS0x
O2NbKGNbKGNbMzkyNl18MCktMTI+PjJdfDApKzE1Nzc2Pj4yXT0xNTQyNDtlPShjWyhjWzM5MDBd
fDApLTEyPj4yXXwwKSsxNTYwNHwwO2NbZT4+Ml09Y1tlPj4yXXw4MTkyO2NbKGNbKGNbMzkwMF18
MCktMTI+PjJdfDApKzE1NjcyPj4yXT0xNTQyNDtpPWI7cmV0dXJufWZ1bmN0aW9uIGNfKGEpe2E9
YXwwO2V2KGF8MCk7cmV0dXJufWZ1bmN0aW9uIGMkKGEpe2E9YXwwO2V2KGF8MCk7a1MoYSk7cmV0
dXJufWZ1bmN0aW9uIGMwKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MDtiMFtjWyhjW2I+PjJdfDAp
KzI0Pj4yXSYxMjddKGIpfDA7ZT1pWChkLDE1Mzg0KXwwO2Q9ZTtjW2IrMzY+PjJdPWQ7YVtiKzQ0
fDBdPShiMFtjWyhjW2U+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7cmV0dXJufWZ1bmN0aW9u
IGMxKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAs
bj0wO2I9aTtpPWkrMTZ8MDtkPWJ8MDtlPWIrOHwwO2Y9YSszNnwwO2c9YSs0MHwwO2g9ZHwwO2o9
ZCs4fDA7az1kO2Q9YSszMnwwO0wxNjQyOndoaWxlKDEpe2E9Y1tmPj4yXXwwO2w9YiRbY1soY1th
Pj4yXXwwKSsyMD4+Ml0mMzFdKGEsY1tnPj4yXXwwLGgsaixlKXwwO2E9KGNbZT4+Ml18MCkta3ww
O2lmKChhTShofDAsMSxhfDAsY1tkPj4yXXwwKXwwKSE9KGF8MCkpe209LTE7bj0xMzA0O2JyZWFr
fXN3aXRjaChsfDApe2Nhc2UgMjp7bT0tMTtuPTEzMDU7YnJlYWsgTDE2NDI7YnJlYWt9O2Nhc2Ug
MTp7YnJlYWt9O2RlZmF1bHQ6e249MTMwMTticmVhayBMMTY0Mn19fWlmKChufDApPT0xMzA0KXtp
PWI7cmV0dXJuIG18MH1lbHNlIGlmKChufDApPT0xMzA1KXtpPWI7cmV0dXJuIG18MH1lbHNlIGlm
KChufDApPT0xMzAxKXttPSgoYUsoY1tkPj4yXXwwKXwwKSE9MCk8PDMxPj4zMTtpPWI7cmV0dXJu
IG18MH1yZXR1cm4gMH1mdW5jdGlvbiBjMihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9
MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUrMTZ8MDtqPWUrMjR8MDtrPShkfDAp
PT0tMTtMMTY1MTpkb3tpZighayl7Y1tnPj4yXT1kO2lmKChhW2IrNDR8MF0mMSkhPTApe2lmKChh
TShnfDAsNCwxLGNbYiszMj4+Ml18MCl8MCk9PTEpe2JyZWFrfWVsc2V7bD0tMX1pPWU7cmV0dXJu
IGx8MH1tPWZ8MDtjW2g+PjJdPW07bj1nKzR8MDtvPWIrMzZ8MDtwPWIrNDB8MDtxPWYrOHwwO3I9
ZjtzPWIrMzJ8MDt0PWc7d2hpbGUoMSl7dT1jW28+PjJdfDA7dj1iNltjWyhjW3U+PjJdfDApKzEy
Pj4yXSYzMV0odSxjW3A+PjJdfDAsdCxuLGosbSxxLGgpfDA7aWYoKGNbaj4+Ml18MCk9PSh0fDAp
KXtsPS0xO3c9MTMyMDticmVha31pZigodnwwKT09Myl7dz0xMzEyO2JyZWFrfXU9KHZ8MCk9PTE7
aWYodj4+PjA+PTIpe2w9LTE7dz0xMzIyO2JyZWFrfXY9KGNbaD4+Ml18MCktcnwwO2lmKChhTSht
fDAsMSx2fDAsY1tzPj4yXXwwKXwwKSE9KHZ8MCkpe2w9LTE7dz0xMzIxO2JyZWFrfWlmKHUpe3Q9
dT9jW2o+PjJdfDA6dH1lbHNle2JyZWFrIEwxNjUxfX1pZigod3wwKT09MTMyMSl7aT1lO3JldHVy
biBsfDB9ZWxzZSBpZigod3wwKT09MTMyMil7aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09
MTMxMil7aWYoKGFNKHR8MCwxLDEsY1tzPj4yXXwwKXwwKT09MSl7YnJlYWt9ZWxzZXtsPS0xfWk9
ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTEzMjApe2k9ZTtyZXR1cm4gbHwwfX19d2hpbGUo
MCk7bD1rPzA6ZDtpPWU7cmV0dXJuIGx8MH1mdW5jdGlvbiBjMyhiLGQsZSl7Yj1ifDA7ZD1kfDA7
ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGo9MDtmPWk7aT1pKzh8MDtnPWZ8MDtldyhifDApO2NbYj4+
Ml09NDk3NjtjW2IrMzI+PjJdPWQ7Y1tiKzQwPj4yXT1lO2NbYis0OD4+Ml09LTE7YVtiKzUyfDBd
PTA7aU4oZyxiKzR8MCk7ZT1pWChnLDE1Mzg0KXwwO2Q9ZTtoPWIrMzZ8MDtjW2g+PjJdPWQ7aj1i
KzQ0fDA7Y1tqPj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGQpfDA7ZD1jW2g+PjJd
fDA7YVtiKzUzfDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7aWYoKGNb
aj4+Ml18MCk8PTgpe2lPKGcpO2k9ZjtyZXR1cm59aFYoMTg0KTtpTyhnKTtpPWY7cmV0dXJufWZ1
bmN0aW9uIGM0KGEpe2E9YXwwO2V2KGF8MCk7cmV0dXJufWZ1bmN0aW9uIGM1KGEpe2E9YXwwO2V2
KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGM2KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wO2U9aVgoZCwxNTM4NCl8MDtkPWU7Zj1iKzM2fDA7Y1tmPj4yXT1kO2c9Yis0NHwwO2Nb
Zz4+Ml09YjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShkKXwwO2Q9Y1tmPj4yXXwwO2FbYis1
M3wwXT0oYjBbY1soY1tkPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO2lmKChjW2c+PjJdfDAp
PD04KXtyZXR1cm59aFYoMTg0KTtyZXR1cm59ZnVuY3Rpb24gYzcoYSl7YT1hfDA7cmV0dXJuIGRh
KGEsMCl8MH1mdW5jdGlvbiBjOChhKXthPWF8MDtyZXR1cm4gZGEoYSwxKXwwfWZ1bmN0aW9uIGM5
KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUrMTZ8MDtqPWUr
MjR8MDtrPWIrNTJ8MDtsPShhW2tdJjEpIT0wO2lmKChkfDApPT0tMSl7aWYobCl7bT0tMTtpPWU7
cmV0dXJuIG18MH1uPWNbYis0OD4+Ml18MDthW2tdPShufDApIT0tMXwwO209bjtpPWU7cmV0dXJu
IG18MH1uPWIrNDh8MDtMMTY5NDpkb3tpZihsKXtjW2g+PjJdPWNbbj4+Ml07bz1jW2IrMzY+PjJd
fDA7cD1mfDA7c3dpdGNoKGI2W2NbKGNbbz4+Ml18MCkrMTI+PjJdJjMxXShvLGNbYis0MD4+Ml18
MCxoLGgrNHwwLGoscCxmKzh8MCxnKXwwKXtjYXNlIDI6Y2FzZSAxOnttPS0xO2k9ZTtyZXR1cm4g
bXwwfTtjYXNlIDM6e2FbcF09Y1tuPj4yXSYyNTU7Y1tnPj4yXT1mKzE7YnJlYWt9O2RlZmF1bHQ6
e319bz1iKzMyfDA7d2hpbGUoMSl7cT1jW2c+PjJdfDA7aWYocT4+PjA8PXA+Pj4wKXticmVhayBM
MTY5NH1yPXEtMXwwO2NbZz4+Ml09cjtpZigoYkEoYVtyXXwwLGNbbz4+Ml18MCl8MCk9PS0xKXtt
PS0xO2JyZWFrfX1pPWU7cmV0dXJuIG18MH19d2hpbGUoMCk7Y1tuPj4yXT1kO2Fba109MTttPWQ7
aT1lO3JldHVybiBtfDB9ZnVuY3Rpb24gZGEoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxn
PTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUrMTZ8MDtqPWUrMjR8
MDtrPWIrNTJ8MDtpZigoYVtrXSYxKSE9MCl7bD1iKzQ4fDA7bT1jW2w+PjJdfDA7aWYoIWQpe249
bTtpPWU7cmV0dXJuIG58MH1jW2w+PjJdPS0xO2Fba109MDtuPW07aT1lO3JldHVybiBufDB9bT1j
W2IrNDQ+PjJdfDA7az0obXwwKT4xP206MTtMMTcxNDpkb3tpZigoa3wwKT4wKXttPWIrMzJ8MDts
PTA7d2hpbGUoMSl7bz1hXyhjW20+PjJdfDApfDA7aWYoKG98MCk9PS0xKXtuPS0xO2JyZWFrfWFb
ZitsfDBdPW8mMjU1O2w9bCsxfDA7aWYoKGx8MCk+PShrfDApKXticmVhayBMMTcxNH19aT1lO3Jl
dHVybiBufDB9fXdoaWxlKDApO0wxNzIxOmRve2lmKChhW2IrNTN8MF0mMSk9PTApe2w9Yis0MHww
O209YiszNnwwO289ZnwwO3A9Zys0fDA7cT1iKzMyfDA7cj1rO0wxNzIzOndoaWxlKDEpe3M9Y1ts
Pj4yXXwwO3Q9czt1PWNbdD4+Ml18MDt2PWNbdCs0Pj4yXXwwO3Q9Y1ttPj4yXXwwO3c9ZityfDA7
c3dpdGNoKGI2W2NbKGNbdD4+Ml18MCkrMTY+PjJdJjMxXSh0LHMsbyx3LGgsZyxwLGopfDApe2Nh
c2UgMTp7YnJlYWt9O2Nhc2UgMjp7bj0tMTt4PTEzODA7YnJlYWsgTDE3MjM7YnJlYWt9O2Nhc2Ug
Mzp7eD0xMzY5O2JyZWFrIEwxNzIzO2JyZWFrfTtkZWZhdWx0Ont5PXI7YnJlYWsgTDE3MjF9fXM9
Y1tsPj4yXXwwO2Nbcz4+Ml09dTtjW3MrND4+Ml09djtpZigocnwwKT09OCl7bj0tMTt4PTEzNzk7
YnJlYWt9dj1hXyhjW3E+PjJdfDApfDA7aWYoKHZ8MCk9PS0xKXtuPS0xO3g9MTM4NTticmVha31h
W3ddPXYmMjU1O3I9cisxfDB9aWYoKHh8MCk9PTEzNzkpe2k9ZTtyZXR1cm4gbnwwfWVsc2UgaWYo
KHh8MCk9PTEzODApe2k9ZTtyZXR1cm4gbnwwfWVsc2UgaWYoKHh8MCk9PTEzODUpe2k9ZTtyZXR1
cm4gbnwwfWVsc2UgaWYoKHh8MCk9PTEzNjkpe2NbZz4+Ml09YVtvXXwwO3k9cjticmVha319ZWxz
ZXtjW2c+PjJdPWFbZnwwXXwwO3k9a319d2hpbGUoMCk7aWYoZCl7ZD1jW2c+PjJdfDA7Y1tiKzQ4
Pj4yXT1kO249ZDtpPWU7cmV0dXJuIG58MH1kPWIrMzJ8MDtiPXk7d2hpbGUoMSl7aWYoKGJ8MCk8
PTApe2JyZWFrfXk9Yi0xfDA7aWYoKGJBKGFbZit5fDBdfDAsY1tkPj4yXXwwKXwwKT09LTEpe249
LTE7eD0xMzgyO2JyZWFrfWVsc2V7Yj15fX1pZigoeHwwKT09MTM4Mil7aT1lO3JldHVybiBufDB9
bj1jW2c+PjJdfDA7aT1lO3JldHVybiBufDB9ZnVuY3Rpb24gZGIoYSl7YT1hfDA7ZW8oYXwwKTty
ZXR1cm59ZnVuY3Rpb24gZGMoYSl7YT1hfDA7ZW8oYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24g
ZGQoYSl7YT1hfDA7ZmcoMTU3OTIpfDA7ZmcoMTU4ODApfDA7ZmgoMTU0MjQpfDA7ZmgoMTU1MTIp
fDA7cmV0dXJufWZ1bmN0aW9uIGRlKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBkZihhKXthPWF8
MDtyZXR1cm59ZnVuY3Rpb24gZGcoYSl7YT1hfDA7dmFyIGI9MDtiPWErNHwwO0k9Y1tiPj4yXXww
LGNbYj4+Ml09SSsxLEk7cmV0dXJufWZ1bmN0aW9uIGRoKGEpe2E9YXwwO3JldHVybiBjW2ErND4+
Ml18MH1mdW5jdGlvbiBkaShhKXthPWF8MDtyZXR1cm4gY1thKzQ+PjJdfDB9ZnVuY3Rpb24gZGoo
YSl7YT1hfDA7Y1thPj4yXT00MzA0O3JldHVybn1mdW5jdGlvbiBkayhhLGIsZCl7YT1hfDA7Yj1i
fDA7ZD1kfDA7Y1thPj4yXT1kO2NbYSs0Pj4yXT1iO3JldHVybn1mdW5jdGlvbiBkbChhLGIsZCl7
YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MDtpZigoY1tiKzQ+PjJdfDApIT0oYXwwKSl7ZT0wO3Jl
dHVybiBlfDB9ZT0oY1tiPj4yXXwwKT09KGR8MCk7cmV0dXJuIGV8MH1mdW5jdGlvbiBkbShiLGQp
e2I9YnwwO2Q9ZHwwO3ZhciBlPTA7YjBbY1soY1tiPj4yXXwwKSsyND4+Ml0mMTI3XShiKXwwO2U9
aVgoZCwxNTM5Mil8MDtkPWU7Y1tiKzM2Pj4yXT1kO2FbYis0NHwwXT0oYjBbY1soY1tlPj4yXXww
KSsyOD4+Ml0mMTI3XShkKXwwKSYxO3JldHVybn1mdW5jdGlvbiBkbihhKXthPWF8MDt2YXIgYj0w
LGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtiPWk7aT1pKzE2fDA7ZD1i
fDA7ZT1iKzh8MDtmPWErMzZ8MDtnPWErNDB8MDtoPWR8MDtqPWQrOHwwO2s9ZDtkPWErMzJ8MDtM
MTc2Nzp3aGlsZSgxKXthPWNbZj4+Ml18MDtsPWIkW2NbKGNbYT4+Ml18MCkrMjA+PjJdJjMxXShh
LGNbZz4+Ml18MCxoLGosZSl8MDthPShjW2U+PjJdfDApLWt8MDtpZigoYU0oaHwwLDEsYXwwLGNb
ZD4+Ml18MCl8MCkhPShhfDApKXttPS0xO249MTQxNDticmVha31zd2l0Y2gobHwwKXtjYXNlIDI6
e209LTE7bj0xNDE1O2JyZWFrIEwxNzY3O2JyZWFrfTtjYXNlIDE6e2JyZWFrfTtkZWZhdWx0Ontu
PTE0MTE7YnJlYWsgTDE3Njd9fX1pZigobnwwKT09MTQxNSl7aT1iO3JldHVybiBtfDB9ZWxzZSBp
ZigobnwwKT09MTQxMSl7bT0oKGFLKGNbZD4+Ml18MCl8MCkhPTApPDwzMT4+MzE7aT1iO3JldHVy
biBtfDB9ZWxzZSBpZigobnwwKT09MTQxNCl7aT1iO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rp
b24gZHAoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTA7ZT1pO2k9aSszMnwwO2Y9
ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1lKzI0fDA7az0oZHwwKT09LTE7TDE3NzY6ZG97aWYoIWsp
e2FbZ109ZCYyNTU7aWYoKGFbYis0NHwwXSYxKSE9MCl7aWYoKGFNKGd8MCwxLDEsY1tiKzMyPj4y
XXwwKXwwKT09MSl7YnJlYWt9ZWxzZXtsPS0xfWk9ZTtyZXR1cm4gbHwwfW09ZnwwO2NbaD4+Ml09
bTtuPWcrMXwwO289YiszNnwwO3A9Yis0MHwwO3E9Zis4fDA7cj1mO3M9YiszMnwwO3Q9Zzt3aGls
ZSgxKXt1PWNbbz4+Ml18MDt2PWI2W2NbKGNbdT4+Ml18MCkrMTI+PjJdJjMxXSh1LGNbcD4+Ml18
MCx0LG4saixtLHEsaCl8MDtpZigoY1tqPj4yXXwwKT09KHR8MCkpe2w9LTE7dz0xNDMzO2JyZWFr
fWlmKCh2fDApPT0zKXt3PTE0MjI7YnJlYWt9dT0odnwwKT09MTtpZih2Pj4+MD49Mil7bD0tMTt3
PTE0MzI7YnJlYWt9dj0oY1toPj4yXXwwKS1yfDA7aWYoKGFNKG18MCwxLHZ8MCxjW3M+PjJdfDAp
fDApIT0odnwwKSl7bD0tMTt3PTE0MzA7YnJlYWt9aWYodSl7dD11P2Nbaj4+Ml18MDp0fWVsc2V7
YnJlYWsgTDE3NzZ9fWlmKCh3fDApPT0xNDMwKXtpPWU7cmV0dXJuIGx8MH1lbHNlIGlmKCh3fDAp
PT0xNDIyKXtpZigoYU0odHwwLDEsMSxjW3M+PjJdfDApfDApPT0xKXticmVha31lbHNle2w9LTF9
aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTQzMil7aT1lO3JldHVybiBsfDB9ZWxzZSBp
Zigod3wwKT09MTQzMyl7aT1lO3JldHVybiBsfDB9fX13aGlsZSgwKTtsPWs/MDpkO2k9ZTtyZXR1
cm4gbHwwfWZ1bmN0aW9uIGRxKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxo
PTAsaj0wO2Y9aTtpPWkrOHwwO2c9ZnwwO2VwKGJ8MCk7Y1tiPj4yXT01MDQ4O2NbYiszMj4+Ml09
ZDtjW2IrNDA+PjJdPWU7Y1tiKzQ4Pj4yXT0tMTthW2IrNTJ8MF09MDtpTihnLGIrNHwwKTtlPWlY
KGcsMTUzOTIpfDA7ZD1lO2g9YiszNnwwO2NbaD4+Ml09ZDtqPWIrNDR8MDtjW2o+PjJdPWIwW2Nb
KGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZCl8MDtkPWNbaD4+Ml18MDthW2IrNTN8MF09KGIwW2Nb
KGNbZD4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtpZigoY1tqPj4yXXwwKTw9OCl7aU8oZyk7
aT1mO3JldHVybn1oVigxODQpO2lPKGcpO2k9ZjtyZXR1cm59ZnVuY3Rpb24gZHIoYSl7YT1hfDA7
ZW8oYXwwKTtyZXR1cm59ZnVuY3Rpb24gZHMoYSl7YT1hfDA7ZW8oYXwwKTtrUyhhKTtyZXR1cm59
ZnVuY3Rpb24gZHQoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7ZT1pWChkLDE1Mzky
KXwwO2Q9ZTtmPWIrMzZ8MDtjW2Y+PjJdPWQ7Zz1iKzQ0fDA7Y1tnPj4yXT1iMFtjWyhjW2U+PjJd
fDApKzI0Pj4yXSYxMjddKGQpfDA7ZD1jW2Y+PjJdfDA7YVtiKzUzfDBdPShiMFtjWyhjW2Q+PjJd
fDApKzI4Pj4yXSYxMjddKGQpfDApJjE7aWYoKGNbZz4+Ml18MCk8PTgpe3JldHVybn1oVigxODQp
O3JldHVybn1mdW5jdGlvbiBkdShhKXthPWF8MDtyZXR1cm4gZHgoYSwwKXwwfWZ1bmN0aW9uIGR2
KGEpe2E9YXwwO3JldHVybiBkeChhLDEpfDB9ZnVuY3Rpb24gZHcoYixkKXtiPWJ8MDtkPWR8MDt2
YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2U9
aTtpPWkrMzJ8MDtmPWV8MDtnPWUrOHwwO2g9ZSsxNnwwO2o9ZSsyNHwwO2s9Yis1MnwwO2w9KGFb
a10mMSkhPTA7aWYoKGR8MCk9PS0xKXtpZihsKXttPS0xO2k9ZTtyZXR1cm4gbXwwfW49Y1tiKzQ4
Pj4yXXwwO2Fba109KG58MCkhPS0xfDA7bT1uO2k9ZTtyZXR1cm4gbXwwfW49Yis0OHwwO0wxODE5
OmRve2lmKGwpe2FbaF09Y1tuPj4yXSYyNTU7bz1jW2IrMzY+PjJdfDA7cD1mfDA7c3dpdGNoKGI2
W2NbKGNbbz4+Ml18MCkrMTI+PjJdJjMxXShvLGNbYis0MD4+Ml18MCxoLGgrMXwwLGoscCxmKzh8
MCxnKXwwKXtjYXNlIDM6e2FbcF09Y1tuPj4yXSYyNTU7Y1tnPj4yXT1mKzE7YnJlYWt9O2Nhc2Ug
MjpjYXNlIDE6e209LTE7aT1lO3JldHVybiBtfDB9O2RlZmF1bHQ6e319bz1iKzMyfDA7d2hpbGUo
MSl7cT1jW2c+PjJdfDA7aWYocT4+PjA8PXA+Pj4wKXticmVhayBMMTgxOX1yPXEtMXwwO2NbZz4+
Ml09cjtpZigoYkEoYVtyXXwwLGNbbz4+Ml18MCl8MCk9PS0xKXttPS0xO2JyZWFrfX1pPWU7cmV0
dXJuIG18MH19d2hpbGUoMCk7Y1tuPj4yXT1kO2Fba109MTttPWQ7aT1lO3JldHVybiBtfDB9ZnVu
Y3Rpb24gZHgoYixlKXtiPWJ8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7
Zj1pO2k9aSszMnwwO2c9ZnwwO2g9Zis4fDA7aj1mKzE2fDA7az1mKzI0fDA7bD1iKzUyfDA7aWYo
KGFbbF0mMSkhPTApe209Yis0OHwwO249Y1ttPj4yXXwwO2lmKCFlKXtvPW47aT1mO3JldHVybiBv
fDB9Y1ttPj4yXT0tMTthW2xdPTA7bz1uO2k9ZjtyZXR1cm4gb3wwfW49Y1tiKzQ0Pj4yXXwwO2w9
KG58MCk+MT9uOjE7TDE4Mzk6ZG97aWYoKGx8MCk+MCl7bj1iKzMyfDA7bT0wO3doaWxlKDEpe3A9
YV8oY1tuPj4yXXwwKXwwO2lmKChwfDApPT0tMSl7bz0tMTticmVha31hW2crbXwwXT1wJjI1NTtt
PW0rMXwwO2lmKChtfDApPj0obHwwKSl7YnJlYWsgTDE4Mzl9fWk9ZjtyZXR1cm4gb3wwfX13aGls
ZSgwKTtMMTg0Njpkb3tpZigoYVtiKzUzfDBdJjEpPT0wKXttPWIrNDB8MDtuPWIrMzZ8MDtwPWd8
MDtxPWgrMXwwO3I9YiszMnwwO3M9bDtMMTg0ODp3aGlsZSgxKXt0PWNbbT4+Ml18MDt1PXQ7dj1j
W3U+PjJdfDA7dz1jW3UrND4+Ml18MDt1PWNbbj4+Ml18MDt4PWcrc3wwO3N3aXRjaChiNltjWyhj
W3U+PjJdfDApKzE2Pj4yXSYzMV0odSx0LHAseCxqLGgscSxrKXwwKXtjYXNlIDE6e2JyZWFrfTtj
YXNlIDI6e289LTE7eT0xNDkwO2JyZWFrIEwxODQ4O2JyZWFrfTtjYXNlIDM6e3k9MTQ3OTticmVh
ayBMMTg0ODticmVha307ZGVmYXVsdDp7ej1zO2JyZWFrIEwxODQ2fX10PWNbbT4+Ml18MDtjW3Q+
PjJdPXY7Y1t0KzQ+PjJdPXc7aWYoKHN8MCk9PTgpe289LTE7eT0xNDkxO2JyZWFrfXc9YV8oY1ty
Pj4yXXwwKXwwO2lmKCh3fDApPT0tMSl7bz0tMTt5PTE0OTU7YnJlYWt9YVt4XT13JjI1NTtzPXMr
MXwwfWlmKCh5fDApPT0xNDkwKXtpPWY7cmV0dXJuIG98MH1lbHNlIGlmKCh5fDApPT0xNDk1KXtp
PWY7cmV0dXJuIG98MH1lbHNlIGlmKCh5fDApPT0xNDc5KXthW2hdPWFbcF18MDt6PXM7YnJlYWt9
ZWxzZSBpZigoeXwwKT09MTQ5MSl7aT1mO3JldHVybiBvfDB9fWVsc2V7YVtoXT1hW2d8MF18MDt6
PWx9fXdoaWxlKDApO2Rve2lmKGUpe2w9YVtoXXwwO2NbYis0OD4+Ml09bCYyNTU7QT1sfWVsc2V7
bD1iKzMyfDA7az16O3doaWxlKDEpe2lmKChrfDApPD0wKXt5PTE0ODY7YnJlYWt9aj1rLTF8MDtp
ZigoYkEoZFtnK2p8MF18MHwwLGNbbD4+Ml18MCl8MCk9PS0xKXtvPS0xO3k9MTQ5NDticmVha31l
bHNle2s9an19aWYoKHl8MCk9PTE0ODYpe0E9YVtoXXwwO2JyZWFrfWVsc2UgaWYoKHl8MCk9PTE0
OTQpe2k9ZjtyZXR1cm4gb3wwfX19d2hpbGUoMCk7bz1BJjI1NTtpPWY7cmV0dXJuIG98MH1mdW5j
dGlvbiBkeSgpe2NaKDApO2EkKDE0MiwxNjE0NHwwLHV8MCl8MDtyZXR1cm59ZnVuY3Rpb24gZHoo
YSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hKzR8MDtpZigoKEk9Y1tiPj4yXXwwLGNbYj4+Ml09SSsg
LTEsSSl8MCkhPTApe2Q9MDtyZXR1cm4gZHwwfWJZW2NbKGNbYT4+Ml18MCkrOD4+Ml0mNTExXShh
KTtkPTE7cmV0dXJuIGR8MH1mdW5jdGlvbiBkQShhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0w
LGY9MDtjW2E+PjJdPTI1MzY7ZD1hKzR8MDtpZigoZHwwKT09MCl7cmV0dXJufWE9azAoYnwwKXww
O2U9YSsxfDA7Zj1rUChhKzEzfDApfDA7Y1tmKzQ+PjJdPWE7Y1tmPj4yXT1hO2E9ZisxMnwwO2Nb
ZD4+Ml09YTtjW2YrOD4+Ml09MDtrWShhfDAsYnwwLGUpfDA7cmV0dXJufWZ1bmN0aW9uIGRCKGEp
e2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtjW2E+PjJdPTI1MzY7Yj1hKzR8MDtkPShjW2I+PjJdfDAp
LTR8MDtpZigoKEk9Y1tkPj4yXXwwLGNbZD4+Ml09SSsgLTEsSSktMXwwKT49MCl7ZT1hO2tTKGUp
O3JldHVybn1kPShjW2I+PjJdfDApLTEyfDA7aWYoKGR8MCk9PTApe2U9YTtrUyhlKTtyZXR1cm59
a1QoZCk7ZT1hO2tTKGUpO3JldHVybn1mdW5jdGlvbiBkQyhhKXthPWF8MDt2YXIgYj0wO2NbYT4+
Ml09MjUzNjtiPWErNHwwO2E9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2E+PjJdfDAsY1thPj4y
XT1JKyAtMSxJKS0xfDApPj0wKXtyZXR1cm59YT0oY1tiPj4yXXwwKS0xMnwwO2lmKChhfDApPT0w
KXtyZXR1cm59a1QoYSk7cmV0dXJufWZ1bmN0aW9uIGREKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wO2NbYj4+Ml09MjQ3MjtlPWIrNHwwO2lmKChlfDApPT0wKXtyZXR1cm59aWYoKGFb
ZF0mMSk9PTApe2Y9ZCsxfDB9ZWxzZXtmPWNbZCs4Pj4yXXwwfWQ9azAoZnwwKXwwO2I9ZCsxfDA7
Zz1rUChkKzEzfDApfDA7Y1tnKzQ+PjJdPWQ7Y1tnPj4yXT1kO2Q9ZysxMnwwO2NbZT4+Ml09ZDtj
W2crOD4+Ml09MDtrWShkfDAsZnwwLGIpfDA7cmV0dXJufWZ1bmN0aW9uIGRFKGEsYil7YT1hfDA7
Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wO2NbYT4+Ml09MjQ3MjtkPWErNHwwO2lmKChkfDApPT0wKXty
ZXR1cm59YT1rMChifDApfDA7ZT1hKzF8MDtmPWtQKGErMTN8MCl8MDtjW2YrND4+Ml09YTtjW2Y+
PjJdPWE7YT1mKzEyfDA7Y1tkPj4yXT1hO2NbZis4Pj4yXT0wO2tZKGF8MCxifDAsZSl8MDtyZXR1
cm59ZnVuY3Rpb24gZEYoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2NbYT4+Ml09MjQ3MjtiPWEr
NHwwO2Q9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2Q+PjJdfDAsY1tkPj4yXT1JKyAtMSxJKS0x
fDApPj0wKXtlPWE7a1MoZSk7cmV0dXJufWQ9KGNbYj4+Ml18MCktMTJ8MDtpZigoZHwwKT09MCl7
ZT1hO2tTKGUpO3JldHVybn1rVChkKTtlPWE7a1MoZSk7cmV0dXJufWZ1bmN0aW9uIGRHKGEpe2E9
YXwwO3ZhciBiPTA7Y1thPj4yXT0yNDcyO2I9YSs0fDA7YT0oY1tiPj4yXXwwKS00fDA7aWYoKChJ
PWNbYT4+Ml18MCxjW2E+PjJdPUkrIC0xLEkpLTF8MCk+PTApe3JldHVybn1hPShjW2I+PjJdfDAp
LTEyfDA7aWYoKGF8MCk9PTApe3JldHVybn1rVChhKTtyZXR1cm59ZnVuY3Rpb24gZEgoYSl7YT1h
fDA7dmFyIGI9MCxkPTAsZT0wO2NbYT4+Ml09MjUzNjtiPWErNHwwO2Q9KGNbYj4+Ml18MCktNHww
O2lmKCgoST1jW2Q+PjJdfDAsY1tkPj4yXT1JKyAtMSxJKS0xfDApPj0wKXtlPWE7a1MoZSk7cmV0
dXJufWQ9KGNbYj4+Ml18MCktMTJ8MDtpZigoZHwwKT09MCl7ZT1hO2tTKGUpO3JldHVybn1rVChk
KTtlPWE7a1MoZSk7cmV0dXJufWZ1bmN0aW9uIGRJKGEpe2E9YXwwO2tTKGEpO3JldHVybn1mdW5j
dGlvbiBkSihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2U9aTtpPWkr
OHwwO2Y9ZXwwO2IzW2NbKGNbYT4+Ml18MCkrMTI+PjJdJjddKGYsYSxiKTtpZigoY1tmKzQ+PjJd
fDApIT0oY1tkKzQ+PjJdfDApKXtnPTA7aT1lO3JldHVybiBnfDB9Zz0oY1tmPj4yXXwwKT09KGNb
ZD4+Ml18MCk7aT1lO3JldHVybiBnfDB9ZnVuY3Rpb24gZEsoYSxiLGMpe2E9YXwwO2I9YnwwO2M9
Y3wwO2I9YngoY3wwKXwwO2RaKGEsYixrMChifDApfDApO3JldHVybn1mdW5jdGlvbiBkTChiLGUs
Zil7Yj1ifDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTA7Zz1pO2g9ZjtqPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7az1lfDA7bD1jW2s+
PjJdfDA7aWYoKGx8MCk9PTApe209YjtjW20+PjJdPWNbaD4+Ml07Y1ttKzQ+PjJdPWNbaCs0Pj4y
XTtjW20rOD4+Ml09Y1toKzg+PjJdO2skKGh8MCwwLDEyKTtpPWc7cmV0dXJufW49ZFtoXXwwO2lm
KChuJjF8MCk9PTApe289bj4+PjF9ZWxzZXtvPWNbZis0Pj4yXXwwfWlmKChvfDApPT0wKXtwPWx9
ZWxzZXtkVChmLDEyOTYpfDA7cD1jW2s+PjJdfDB9az1jW2UrND4+Ml18MDtiM1tjWyhjW2s+PjJd
fDApKzI0Pj4yXSY3XShqLGsscCk7cD1hW2pdfDA7aWYoKHAmMSk9PTApe3E9aisxfDB9ZWxzZXtx
PWNbais4Pj4yXXwwfWs9cCYyNTU7aWYoKGsmMXwwKT09MCl7cj1rPj4+MX1lbHNle3I9Y1tqKzQ+
PjJdfDB9ZFYoZixxLHIpfDA7ZFAoaik7bT1iO2NbbT4+Ml09Y1toPj4yXTtjW20rND4+Ml09Y1to
KzQ+PjJdO2NbbSs4Pj4yXT1jW2grOD4+Ml07ayQoaHwwLDAsMTIpO2k9ZztyZXR1cm59ZnVuY3Rp
b24gZE0oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtlPWk7aT1pKzMy
fDA7Zj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tmPj4yXTtjW2IrND4+Ml09Y1tmKzQ+PjJdO2Y9
ZXwwO2c9ZSsxNnwwO2RaKGcsZCxrMChkfDApfDApO2RMKGYsYixnKTtkRChhfDAsZik7ZFAoZik7
ZFAoZyk7Y1thPj4yXT00NTQ0O2c9YjtiPWErOHwwO2E9Y1tnKzQ+PjJdfDA7Y1tiPj4yXT1jW2c+
PjJdO2NbYis0Pj4yXT1hO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZE4oYSl7YT1hfDA7ZEcoYXwwKTtr
UyhhKTtyZXR1cm59ZnVuY3Rpb24gZE8oYSl7YT1hfDA7ZEcoYXwwKTtyZXR1cm59ZnVuY3Rpb24g
ZFAoYil7Yj1ifDA7aWYoKGFbYl0mMSk9PTApe3JldHVybn1rUyhjW2IrOD4+Ml18MCk7cmV0dXJu
fWZ1bmN0aW9uIGRRKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0w
LGs9MCxsPTA7ZT1rMChkfDApfDA7Zj1iO2c9YjtoPWFbZ118MDtpZigoaCYxKT09MCl7aT0xMDtq
PWh9ZWxzZXtoPWNbYj4+Ml18MDtpPShoJi0yKS0xfDA7aj1oJjI1NX1pZihpPj4+MDxlPj4+MCl7
aD1qJjI1NTtpZigoaCYxfDApPT0wKXtrPWg+Pj4xfWVsc2V7az1jW2IrND4+Ml18MH1kMChiLGks
ZS1pfDAsaywwLGssZSxkKTtyZXR1cm4gYnwwfWlmKChqJjEpPT0wKXtsPWYrMXwwfWVsc2V7bD1j
W2IrOD4+Ml18MH1rXyhsfDAsZHwwLGV8MCk7YVtsK2V8MF09MDtpZigoYVtnXSYxKT09MCl7YVtn
XT1lPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+PjJdPWU7cmV0dXJuIGJ8MH1yZXR1cm4g
MH1mdW5jdGlvbiBkUihiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9
MDtmPWI7Zz1hW2ZdfDA7aD1nJjI1NTtpZigoaCYxfDApPT0wKXtpPWg+Pj4xfWVsc2V7aT1jW2Ir
ND4+Ml18MH1pZihpPj4+MDxkPj4+MCl7aD1kLWl8MDtkUyhiLGgsZSl8MDtyZXR1cm59aWYoKGcm
MSk9PTApe2FbYisxK2R8MF09MDthW2ZdPWQ8PDEmMjU1O3JldHVybn1lbHNle2FbKGNbYis4Pj4y
XXwwKStkfDBdPTA7Y1tiKzQ+PjJdPWQ7cmV0dXJufX1mdW5jdGlvbiBkUyhiLGQsZSl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtpZigoZHwwKT09MCl7
cmV0dXJuIGJ8MH1mPWI7Zz1hW2ZdfDA7aWYoKGcmMSk9PTApe2g9MTA7aT1nfWVsc2V7Zz1jW2I+
PjJdfDA7aD0oZyYtMiktMXwwO2k9ZyYyNTV9Zz1pJjI1NTtpZigoZyYxfDApPT0wKXtqPWc+Pj4x
fWVsc2V7aj1jW2IrND4+Ml18MH1pZigoaC1qfDApPj4+MDxkPj4+MCl7ZDEoYixoLGQtaCtqfDAs
aixqLDAsMCk7az1hW2ZdfDB9ZWxzZXtrPWl9aWYoKGsmMSk9PTApe2w9YisxfDB9ZWxzZXtsPWNb
Yis4Pj4yXXwwfWskKGwranwwLGV8MCxkfDApO2U9aitkfDA7aWYoKGFbZl0mMSk9PTApe2FbZl09
ZTw8MSYyNTV9ZWxzZXtjW2IrND4+Ml09ZX1hW2wrZXwwXT0wO3JldHVybiBifDB9ZnVuY3Rpb24g
ZFQoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4gZFYoYSxiLGswKGJ8MCl8MCl8MH1mdW5jdGlvbiBk
VShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09
MDtlPWI7Zj1hW2VdfDA7aWYoKGYmMSk9PTApe2c9KGYmMjU1KT4+PjE7aD0xMH1lbHNle2c9Y1ti
KzQ+PjJdfDA7aD0oY1tiPj4yXSYtMiktMXwwfWlmKChnfDApPT0oaHwwKSl7ZDEoYixoLDEsaCxo
LDAsMCk7aT1hW2VdfDB9ZWxzZXtpPWZ9aWYoKGkmMSk9PTApe2FbZV09KGc8PDEpKzImMjU1O2o9
YisxfDA7az1nKzF8MDtsPWorZ3wwO2FbbF09ZDttPWora3wwO2FbbV09MDtyZXR1cm59ZWxzZXtl
PWNbYis4Pj4yXXwwO2k9ZysxfDA7Y1tiKzQ+PjJdPWk7aj1lO2s9aTtsPWorZ3wwO2FbbF09ZDtt
PWora3wwO2FbbV09MDtyZXR1cm59fWZ1bmN0aW9uIGRWKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8
MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTA7Zj1iO2c9YVtmXXwwO2lmKChnJjEpPT0wKXto
PTEwO2k9Z31lbHNle2c9Y1tiPj4yXXwwO2g9KGcmLTIpLTF8MDtpPWcmMjU1fWc9aSYyNTU7aWYo
KGcmMXwwKT09MCl7aj1nPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9aWYoKGgtanwwKT4+PjA8ZT4+
PjApe2QwKGIsaCxlLWgranwwLGosaiwwLGUsZCk7cmV0dXJuIGJ8MH1pZigoZXwwKT09MCl7cmV0
dXJuIGJ8MH1pZigoaSYxKT09MCl7az1iKzF8MH1lbHNle2s9Y1tiKzg+PjJdfDB9aT1rK2p8MDtr
WShpfDAsZHwwLGUpfDA7ZD1qK2V8MDtpZigoYVtmXSYxKT09MCl7YVtmXT1kPDwxJjI1NX1lbHNl
e2NbYis0Pj4yXT1kfWFbaytkfDBdPTA7cmV0dXJuIGJ8MH1mdW5jdGlvbiBkVyhhLGIsZCl7YT1h
fDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTA7ZTtpZigoY1thPj4yXXwwKT09
MSl7ZG97YVUoOTczNiw5NzI4KXwwO313aGlsZSgoY1thPj4yXXwwKT09MSl9aWYoKGNbYT4+Ml18
MCkhPTApe2Y7cmV0dXJufWNbYT4+Ml09MTtnO2JZW2QmNTExXShiKTtoO2NbYT4+Ml09LTE7aTti
cyg5NzM2KXwwO3JldHVybn1mdW5jdGlvbiBkWChhKXthPWF8MDthPWJPKDgpfDA7ZEEoYSwzNjAp
O2NbYT4+Ml09MjUwNDtibChhfDAsODIwOCwzMil9ZnVuY3Rpb24gZFkoYixkKXtiPWJ8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTAsaD0wO2U9ZDtpZigoYVtlXSYxKT09MCl7Zj1iO2NbZj4+Ml09Y1tl
Pj4yXTtjW2YrND4+Ml09Y1tlKzQ+PjJdO2NbZis4Pj4yXT1jW2UrOD4+Ml07cmV0dXJufWU9Y1tk
Kzg+PjJdfDA7Zj1jW2QrND4+Ml18MDtpZigoZnwwKT09LTEpe2RYKDApfWlmKGY+Pj4wPDExKXth
W2JdPWY8PDEmMjU1O2c9YisxfDB9ZWxzZXtkPWYrMTYmLTE2O2g9a08oZCl8MDtjW2IrOD4+Ml09
aDtjW2I+PjJdPWR8MTtjW2IrND4+Ml09ZjtnPWh9a1koZ3wwLGV8MCxmKXwwO2FbZytmfDBdPTA7
cmV0dXJufWZ1bmN0aW9uIGRaKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxo
PTAsaT0wO2lmKChlfDApPT0tMSl7ZFgoMCl9aWYoZT4+PjA8MTEpe2FbYl09ZTw8MSYyNTU7Zj1i
KzF8MDtrWShmfDAsZHwwLGUpfDA7Zz1mK2V8MDthW2ddPTA7cmV0dXJufWVsc2V7aD1lKzE2Ji0x
NjtpPWtPKGgpfDA7Y1tiKzg+PjJdPWk7Y1tiPj4yXT1ofDE7Y1tiKzQ+PjJdPWU7Zj1pO2tZKGZ8
MCxkfDAsZSl8MDtnPWYrZXwwO2FbZ109MDtyZXR1cm59fWZ1bmN0aW9uIGRfKGIsZCxlKXtiPWJ8
MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7aWYoKGR8MCk9PS0xKXtkWCgwKX1pZihkPj4+
MDwxMSl7YVtiXT1kPDwxJjI1NTtmPWIrMXwwfWVsc2V7Zz1kKzE2Ji0xNjtoPWtPKGcpfDA7Y1ti
Kzg+PjJdPWg7Y1tiPj4yXT1nfDE7Y1tiKzQ+PjJdPWQ7Zj1ofWskKGZ8MCxlfDAsZHwwKTthW2Yr
ZHwwXT0wO3JldHVybn1mdW5jdGlvbiBkJChiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9
MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2lmKChkfDApPT0t
MSl7ZFgoMCl9ZT1iO2Y9YjtnPWFbZl18MDtpZigoZyYxKT09MCl7aD0xMDtpPWd9ZWxzZXtnPWNb
Yj4+Ml18MDtoPShnJi0yKS0xfDA7aT1nJjI1NX1nPWkmMjU1O2lmKChnJjF8MCk9PTApe2o9Zz4+
PjF9ZWxzZXtqPWNbYis0Pj4yXXwwfWc9aj4+PjA+ZD4+PjA/ajpkO2lmKGc+Pj4wPDExKXtrPTEx
fWVsc2V7az1nKzE2Ji0xNn1nPWstMXwwO2lmKChnfDApPT0oaHwwKSl7cmV0dXJufWlmKChnfDAp
PT0xMCl7bD1lKzF8MDttPWNbYis4Pj4yXXwwO249MTtvPTB9ZWxzZXtpZihnPj4+MD5oPj4+MCl7
cD1rTyhrKXwwfWVsc2V7cD1rTyhrKXwwfWg9aSYxO2lmKGg8PDI0Pj4yND09MCl7cT1lKzF8MH1l
bHNle3E9Y1tiKzg+PjJdfDB9bD1wO209cTtuPWg8PDI0Pj4yNCE9MDtvPTF9aD1pJjI1NTtpZigo
aCYxfDApPT0wKXtyPWg+Pj4xfWVsc2V7cj1jW2IrND4+Ml18MH1oPXIrMXwwO2tZKGx8MCxtfDAs
aCl8MDtpZihuKXtrUyhtKX1pZihvKXtjW2I+PjJdPWt8MTtjW2IrND4+Ml09ajtjW2IrOD4+Ml09
bDtyZXR1cm59ZWxzZXthW2ZdPWo8PDEmMjU1O3JldHVybn19ZnVuY3Rpb24gZDAoYixkLGUsZixn
LGgsaSxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDt2
YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtpZigoLTMtZHww
KT4+PjA8ZT4+PjApe2RYKDApfWlmKChhW2JdJjEpPT0wKXtrPWIrMXwwfWVsc2V7az1jW2IrOD4+
Ml18MH1kb3tpZihkPj4+MDwyMTQ3NDgzNjMxKXtsPWUrZHwwO209ZDw8MTtuPWw+Pj4wPG0+Pj4w
P206bDtpZihuPj4+MDwxMSl7bz0xMTticmVha31vPW4rMTYmLTE2fWVsc2V7bz0tMn19d2hpbGUo
MCk7ZT1rTyhvKXwwO2lmKChnfDApIT0wKXtrWShlfDAsa3wwLGcpfDB9aWYoKGl8MCkhPTApe249
ZStnfDA7a1kobnwwLGp8MCxpKXwwfWo9Zi1ofDA7aWYoKGp8MCkhPShnfDApKXtmPWotZ3wwO249
ZSsoaStnKXwwO2w9aysoaCtnKXwwO2tZKG58MCxsfDAsZil8MH1pZigoZHwwKT09MTApe3A9Yis4
fDA7Y1twPj4yXT1lO3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtzPWoraXwwO3Q9Yis0fDA7Y1t0Pj4y
XT1zO3U9ZStzfDA7YVt1XT0wO3JldHVybn1rUyhrKTtwPWIrOHwwO2NbcD4+Ml09ZTtxPW98MTty
PWJ8MDtjW3I+PjJdPXE7cz1qK2l8MDt0PWIrNHwwO2NbdD4+Ml09czt1PWUrc3wwO2FbdV09MDty
ZXR1cm59ZnVuY3Rpb24gZDEoYixkLGUsZixnLGgsaSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7aT1pfDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aWYo
KC0zLWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09MCl7aj1iKzF8MH1lbHNle2o9
Y1tiKzg+PjJdfDB9ZG97aWYoZD4+PjA8MjE0NzQ4MzYzMSl7az1lK2R8MDtsPWQ8PDE7bT1rPj4+
MDxsPj4+MD9sOms7aWYobT4+PjA8MTEpe249MTE7YnJlYWt9bj1tKzE2Ji0xNn1lbHNle249LTJ9
fXdoaWxlKDApO2U9a08obil8MDtpZigoZ3wwKSE9MCl7a1koZXwwLGp8MCxnKXwwfW09Zi1ofDA7
aWYoKG18MCkhPShnfDApKXtmPW0tZ3wwO209ZSsoaStnKXwwO2k9aisoaCtnKXwwO2tZKG18MCxp
fDAsZil8MH1pZigoZHwwKT09MTApe289Yis4fDA7Y1tvPj4yXT1lO3A9bnwxO3E9YnwwO2NbcT4+
Ml09cDtyZXR1cm59a1Moaik7bz1iKzh8MDtjW28+PjJdPWU7cD1ufDE7cT1ifDA7Y1txPj4yXT1w
O3JldHVybn1mdW5jdGlvbiBkMihhLGIpe2E9YXwwO2I9YnwwO3JldHVybn1mdW5jdGlvbiBkMyhh
LGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJuIGF8MH1mdW5jdGlvbiBkNChhKXthPWF8MDty
ZXR1cm4gMH1mdW5jdGlvbiBkNShhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBkNihhKXthPWF8
MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGQ3KGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJuLTF8MH1mdW5j
dGlvbiBkOChhLGIpe2E9YXwwO2I9YnwwO3JldHVybi0xfDB9ZnVuY3Rpb24gZDkoYSxiKXthPWF8
MDtiPWJ8MDtyZXR1cm59ZnVuY3Rpb24gZWEoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO3JldHVy
biBhfDB9ZnVuY3Rpb24gZWIoYSxiLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2c9YTtjW2c+PjJdPTA7Y1tnKzQ+PjJdPTA7Zz1hKzh8MDtjW2c+PjJdPS0xO2Nb
Zys0Pj4yXT0tMTtyZXR1cm59ZnVuY3Rpb24gZWMoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7
ZT1lfDA7ZT1pO2I9ZDtkPWk7aT1pKzE2fDA7Y1tkPj4yXT1jW2I+PjJdO2NbZCs0Pj4yXT1jW2Ir
ND4+Ml07Y1tkKzg+PjJdPWNbYis4Pj4yXTtjW2QrMTI+PjJdPWNbYisxMj4+Ml07Yj1hO2NbYj4+
Ml09MDtjW2IrND4+Ml09MDtiPWErOHwwO2NbYj4+Ml09LTE7Y1tiKzQ+PjJdPS0xO2k9ZTtyZXR1
cm59ZnVuY3Rpb24gZWQoYSxiLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2c9YTtjW2c+PjJdPTA7Y1tnKzQ+PjJdPTA7Zz1hKzh8MDtjW2c+PjJdPS0xO2NbZys0
Pj4yXT0tMTtyZXR1cm59ZnVuY3Rpb24gZWUoYil7Yj1ifDA7aWYoKGFbYl0mMSk9PTApe3JldHVy
bn1rUyhjW2IrOD4+Ml18MCk7cmV0dXJufWZ1bmN0aW9uIGVmKGEsYil7YT1hfDA7Yj1ifDA7cmV0
dXJuIGVnKGEsYixrbShiKXwwKXwwfWZ1bmN0aW9uIGVnKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8
MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTA7Zj1iO2c9YVtmXXwwO2lmKChnJjEpPT0wKXto
PTE7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9ZyYyNTV9aWYoaD4+PjA8ZT4+
PjApe2c9aSYyNTU7aWYoKGcmMXwwKT09MCl7aj1nPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9ZUEo
YixoLGUtaHwwLGosMCxqLGUsZCk7cmV0dXJuIGJ8MH1pZigoaSYxKT09MCl7az1iKzR8MH1lbHNl
e2s9Y1tiKzg+PjJdfDB9a28oayxkLGUpfDA7Y1trKyhlPDwyKT4+Ml09MDtpZigoYVtmXSYxKT09
MCl7YVtmXT1lPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+PjJdPWU7cmV0dXJuIGJ8MH1y
ZXR1cm4gMH1mdW5jdGlvbiBlaChiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAs
aT0wLGo9MCxrPTAsbD0wLG09MDtlPWI7Zj1hW2VdfDA7aWYoKGYmMSk9PTApe2c9KGYmMjU1KT4+
PjE7aD0xfWVsc2V7Zz1jW2IrND4+Ml18MDtoPShjW2I+PjJdJi0yKS0xfDB9aWYoKGd8MCk9PSho
fDApKXtlQihiLGgsMSxoLGgsMCwwKTtpPWFbZV18MH1lbHNle2k9Zn1pZigoaSYxKT09MCl7YVtl
XT0oZzw8MSkrMiYyNTU7aj1iKzR8MDtrPWcrMXwwO2w9aisoZzw8Mil8MDtjW2w+PjJdPWQ7bT1q
KyhrPDwyKXwwO2NbbT4+Ml09MDtyZXR1cm59ZWxzZXtlPWNbYis4Pj4yXXwwO2k9ZysxfDA7Y1ti
KzQ+PjJdPWk7aj1lO2s9aTtsPWorKGc8PDIpfDA7Y1tsPj4yXT1kO209aisoazw8Mil8MDtjW20+
PjJdPTA7cmV0dXJufX1mdW5jdGlvbiBlaShhKXthPWF8MDtlRChhfDApO3JldHVybn1mdW5jdGlv
biBlaihhLGIpe2E9YXwwO2I9YnwwO2lOKGEsYisyOHwwKTtyZXR1cm59ZnVuY3Rpb24gZWsoYSxi
KXthPWF8MDtiPWJ8MDtjW2ErMjQ+PjJdPWI7Y1thKzE2Pj4yXT0oYnwwKT09MDtjW2ErMjA+PjJd
PTA7Y1thKzQ+PjJdPTQwOTg7Y1thKzEyPj4yXT0wO2NbYSs4Pj4yXT02O2I9YSsyOHwwO2skKGEr
MzJ8MCwwLDQwKTtpZigoYnwwKT09MCl7cmV0dXJufWlXKGIpO3JldHVybn1mdW5jdGlvbiBlbChh
KXthPWF8MDtlRChhfDApO3JldHVybn1mdW5jdGlvbiBlbShhKXthPWF8MDtjW2E+PjJdPTQyMzI7
aU8oYSs0fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlbihhKXthPWF8MDtjW2E+PjJdPTQyMzI7
aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBlbyhhKXthPWF8MDtjW2E+PjJdPTQyMzI7aU8oYSs0
fDApO3JldHVybn1mdW5jdGlvbiBlcChhKXthPWF8MDtjW2E+PjJdPTQyMzI7aVcoYSs0fDApO2sk
KGErOHwwLDAsMjQpO3JldHVybn1mdW5jdGlvbiBlcShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7Zj1iO2lmKChlfDApPD0wKXtnPTA7
cmV0dXJuIGd8MH1oPWIrMTJ8MDtpPWIrMTZ8MDtqPWQ7ZD0wO3doaWxlKDEpe2s9Y1toPj4yXXww
O2lmKGs+Pj4wPChjW2k+PjJdfDApPj4+MCl7Y1toPj4yXT1rKzE7bD1hW2tdfDB9ZWxzZXtrPWIw
W2NbKGNbZj4+Ml18MCkrNDA+PjJdJjEyN10oYil8MDtpZigoa3wwKT09LTEpe2c9ZDttPTE4NTQ7
YnJlYWt9bD1rJjI1NX1hW2pdPWw7az1kKzF8MDtpZigoa3wwKTwoZXwwKSl7aj1qKzF8MDtkPWt9
ZWxzZXtnPWs7bT0xODU2O2JyZWFrfX1pZigobXwwKT09MTg1NCl7cmV0dXJuIGd8MH1lbHNlIGlm
KChtfDApPT0xODU2KXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0aW9uIGVyKGEpe2E9YXwwO3Zh
ciBiPTAsZT0wO2lmKChiMFtjWyhjW2E+PjJdfDApKzM2Pj4yXSYxMjddKGEpfDApPT0tMSl7Yj0t
MTtyZXR1cm4gYnwwfWU9YSsxMnwwO2E9Y1tlPj4yXXwwO2NbZT4+Ml09YSsxO2I9ZFthXXwwO3Jl
dHVybiBifDB9ZnVuY3Rpb24gZXMoYixlLGYpe2I9YnwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0w
LGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2c9YjtpZigoZnwwKTw9MCl7aD0wO3JldHVybiBofDB9
aT1iKzI0fDA7aj1iKzI4fDA7az0wO2w9ZTt3aGlsZSgxKXtlPWNbaT4+Ml18MDtpZihlPj4+MDwo
Y1tqPj4yXXwwKT4+PjApe209YVtsXXwwO2NbaT4+Ml09ZSsxO2FbZV09bX1lbHNle2lmKChiX1tj
WyhjW2c+PjJdfDApKzUyPj4yXSYzMV0oYixkW2xdfDApfDApPT0tMSl7aD1rO249MTg2OTticmVh
a319bT1rKzF8MDtpZigobXwwKTwoZnwwKSl7az1tO2w9bCsxfDB9ZWxzZXtoPW07bj0xODcxO2Jy
ZWFrfX1pZigobnwwKT09MTg2OSl7cmV0dXJuIGh8MH1lbHNlIGlmKChufDApPT0xODcxKXtyZXR1
cm4gaHwwfXJldHVybiAwfWZ1bmN0aW9uIGV0KGEpe2E9YXwwO2NbYT4+Ml09NDE2MDtpTyhhKzR8
MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGV1KGEpe2E9YXwwO2NbYT4+Ml09NDE2MDtpTyhhKzR8
MCk7cmV0dXJufWZ1bmN0aW9uIGV2KGEpe2E9YXwwO2NbYT4+Ml09NDE2MDtpTyhhKzR8MCk7cmV0
dXJufWZ1bmN0aW9uIGV3KGEpe2E9YXwwO2NbYT4+Ml09NDE2MDtpVyhhKzR8MCk7ayQoYSs4fDAs
MCwyNCk7cmV0dXJufWZ1bmN0aW9uIGV4KGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0w
LGc9MCxoPTAsaT0wLGo9MDtpZihlPj4+MD4xMDczNzQxODIyKXtkWCgwKX1pZihlPj4+MDwyKXth
W2JdPWU8PDEmMjU1O2Y9Yis0fDA7Zz1rbihmLGQsZSl8MDtoPWYrKGU8PDIpfDA7Y1toPj4yXT0w
O3JldHVybn1lbHNle2k9ZSs0Ji00O2o9a08oaTw8Mil8MDtjW2IrOD4+Ml09ajtjW2I+PjJdPWl8
MTtjW2IrND4+Ml09ZTtmPWo7Zz1rbihmLGQsZSl8MDtoPWYrKGU8PDIpfDA7Y1toPj4yXT0wO3Jl
dHVybn19ZnVuY3Rpb24gZXkoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9
MCxpPTAsaj0wO2lmKGQ+Pj4wPjEwNzM3NDE4MjIpe2RYKDApfWlmKGQ+Pj4wPDIpe2FbYl09ZDw8
MSYyNTU7Zj1iKzR8MDtnPWtwKGYsZSxkKXwwO2g9ZisoZDw8Mil8MDtjW2g+PjJdPTA7cmV0dXJu
fWVsc2V7aT1kKzQmLTQ7aj1rTyhpPDwyKXwwO2NbYis4Pj4yXT1qO2NbYj4+Ml09aXwxO2NbYis0
Pj4yXT1kO2Y9ajtnPWtwKGYsZSxkKXwwO2g9ZisoZDw8Mil8MDtjW2g+PjJdPTA7cmV0dXJufX1m
dW5jdGlvbiBleihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aWYoZD4+PjA+MTA3Mzc0MTgyMil7ZFgoMCl9ZT1i
O2Y9YVtlXXwwO2lmKChmJjEpPT0wKXtnPTE7aD1mfWVsc2V7Zj1jW2I+PjJdfDA7Zz0oZiYtMikt
MXwwO2g9ZiYyNTV9Zj1oJjI1NTtpZigoZiYxfDApPT0wKXtpPWY+Pj4xfWVsc2V7aT1jW2IrND4+
Ml18MH1mPWk+Pj4wPmQ+Pj4wP2k6ZDtpZihmPj4+MDwyKXtqPTJ9ZWxzZXtqPWYrNCYtNH1mPWot
MXwwO2lmKChmfDApPT0oZ3wwKSl7cmV0dXJufWlmKChmfDApPT0xKXtrPWIrNHwwO2w9Y1tiKzg+
PjJdfDA7bT0xO249MH1lbHNle2Q9ajw8MjtpZihmPj4+MD5nPj4+MCl7bz1rTyhkKXwwfWVsc2V7
bz1rTyhkKXwwfWQ9aCYxO2lmKGQ8PDI0Pj4yND09MCl7cD1iKzR8MH1lbHNle3A9Y1tiKzg+PjJd
fDB9az1vO2w9cDttPWQ8PDI0Pj4yNCE9MDtuPTF9ZD1rO2s9aCYyNTU7aWYoKGsmMXwwKT09MCl7
cT1rPj4+MX1lbHNle3E9Y1tiKzQ+PjJdfDB9a24oZCxsLHErMXwwKXwwO2lmKG0pe2tTKGwpfWlm
KG4pe2NbYj4+Ml09anwxO2NbYis0Pj4yXT1pO2NbYis4Pj4yXT1kO3JldHVybn1lbHNle2FbZV09
aTw8MSYyNTU7cmV0dXJufX1mdW5jdGlvbiBlQShiLGQsZSxmLGcsaCxpLGope2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2lmKCgxMDczNzQxODIxLWR8MCk+Pj4wPGU+Pj4w
KXtkWCgwKX1pZigoYVtiXSYxKT09MCl7az1iKzR8MH1lbHNle2s9Y1tiKzg+PjJdfDB9ZG97aWYo
ZD4+PjA8NTM2ODcwODk1KXtsPWUrZHwwO209ZDw8MTtuPWw+Pj4wPG0+Pj4wP206bDtpZihuPj4+
MDwyKXtvPTI7YnJlYWt9bz1uKzQmLTR9ZWxzZXtvPTEwNzM3NDE4MjJ9fXdoaWxlKDApO2U9a08o
bzw8Mil8MDtpZigoZ3wwKSE9MCl7a24oZSxrLGcpfDB9aWYoKGl8MCkhPTApe249ZSsoZzw8Mil8
MDtrbihuLGosaSl8MH1qPWYtaHwwO2lmKChqfDApIT0oZ3wwKSl7Zj1qLWd8MDtuPWUrKGkrZzw8
Mil8MDtsPWsrKGgrZzw8Mil8MDtrbihuLGwsZil8MH1pZigoZHwwKT09MSl7cD1iKzh8MDtjW3A+
PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1iKzR8MDtjW3Q+PjJdPXM7dT1l
KyhzPDwyKXwwO2NbdT4+Ml09MDtyZXR1cm59a1Moayk7cD1iKzh8MDtjW3A+PjJdPWU7cT1vfDE7
cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1iKzR8MDtjW3Q+PjJdPXM7dT1lKyhzPDwyKXwwO2Nb
dT4+Ml09MDtyZXR1cm59ZnVuY3Rpb24gZUIoYixkLGUsZixnLGgsaSl7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTA7aWYoKDEwNzM3NDE4MjEtZHwwKT4+PjA8ZT4+PjApe2RYKDApfWlmKChhW2JdJjEpPT0w
KXtqPWIrNHwwfWVsc2V7aj1jW2IrOD4+Ml18MH1kb3tpZihkPj4+MDw1MzY4NzA4OTUpe2s9ZStk
fDA7bD1kPDwxO209az4+PjA8bD4+PjA/bDprO2lmKG0+Pj4wPDIpe249MjticmVha31uPW0rNCYt
NH1lbHNle249MTA3Mzc0MTgyMn19d2hpbGUoMCk7ZT1rTyhuPDwyKXwwO2lmKChnfDApIT0wKXtr
bihlLGosZyl8MH1tPWYtaHwwO2lmKChtfDApIT0oZ3wwKSl7Zj1tLWd8MDttPWUrKGkrZzw8Mil8
MDtpPWorKGgrZzw8Mil8MDtrbihtLGksZil8MH1pZigoZHwwKT09MSl7bz1iKzh8MDtjW28+PjJd
PWU7cD1ufDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1rUyhqKTtvPWIrOHwwO2Nbbz4+Ml09ZTtw
PW58MTtxPWJ8MDtjW3E+PjJdPXA7cmV0dXJufWZ1bmN0aW9uIGVDKGIsZCl7Yj1ifDA7ZD1kfDA7
dmFyIGU9MCxmPTAsZz0wO2U9aTtpPWkrOHwwO2Y9ZXwwO2c9KGNbYisyND4+Ml18MCk9PTA7aWYo
Zyl7Y1tiKzE2Pj4yXT1kfDF9ZWxzZXtjW2IrMTY+PjJdPWR9aWYoKChnJjF8ZCkmY1tiKzIwPj4y
XXwwKT09MCl7aT1lO3JldHVybn1lPWJPKDE2KXwwO2Rve2lmKChhWzE2MjcyXXwwKT09MCl7aWYo
KGJjKDE2MjcyKXwwKT09MCl7YnJlYWt9ZGooMTE4NDApO2NbMjk2MF09NGUzO2EkKDY2LDExODQw
LHV8MCl8MH19d2hpbGUoMCk7Yj1rMygxMTg0MCwwLDMyKXwwO2Q9SztjW2Y+PjJdPWImMHwxO2Nb
Zis0Pj4yXT1kfDA7ZE0oZSxmLDEzMDQpO2NbZT4+Ml09MzE4NDtibChlfDAsODc1MiwyOCl9ZnVu
Y3Rpb24gZUQoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MDtjW2E+PjJdPTMxNjA7Yj1jW2Er
NDA+PjJdfDA7ZD1hKzMyfDA7ZT1hKzM2fDA7aWYoKGJ8MCkhPTApe2Y9Yjtkb3tmPWYtMXwwO2Iz
W2NbKGNbZD4+Ml18MCkrKGY8PDIpPj4yXSY3XSgwLGEsY1soY1tlPj4yXXwwKSsoZjw8Mik+PjJd
fDApO313aGlsZSgoZnwwKSE9MCl9aU8oYSsyOHwwKTtrSyhjW2Q+PjJdfDApO2tLKGNbZT4+Ml18
MCk7a0soY1thKzQ4Pj4yXXwwKTtrSyhjW2ErNjA+PjJdfDApO3JldHVybn1mdW5jdGlvbiBlRShh
KXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBlRihhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBl
RyhhKXthPWF8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGVIKGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJu
LTF8MH1mdW5jdGlvbiBlSShhLGIpe2E9YXwwO2I9YnwwO3JldHVybi0xfDB9ZnVuY3Rpb24gZUoo
YSl7YT1hfDA7cmV0dXJuIDE0MTZ8MH1mdW5jdGlvbiBlSyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtk
PWR8MDtlPWV8MDtlPWk7Yj1kO2Q9aTtpPWkrMTZ8MDtjW2Q+PjJdPWNbYj4+Ml07Y1tkKzQ+PjJd
PWNbYis0Pj4yXTtjW2QrOD4+Ml09Y1tiKzg+PjJdO2NbZCsxMj4+Ml09Y1tiKzEyPj4yXTtiPWE7
Y1tiPj4yXT0wO2NbYis0Pj4yXT0wO2I9YSs4fDA7Y1tiPj4yXT0tMTtjW2IrND4+Ml09LTE7aT1l
O3JldHVybn1mdW5jdGlvbiBlTChiLGMsZCxlLGYpe2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtMMjQzNzpkb3tpZigoZXwwKT09KGZ8MCkp
e2c9Y31lbHNle2I9YztoPWU7d2hpbGUoMSl7aWYoKGJ8MCk9PShkfDApKXtpPS0xO2o9MTk5MDti
cmVha31rPWFbYl18MDtsPWFbaF18MDtpZihrPDwyND4+MjQ8bDw8MjQ+PjI0KXtpPS0xO2o9MTk5
MzticmVha31pZihsPDwyND4+MjQ8azw8MjQ+PjI0KXtpPTE7aj0xOTkyO2JyZWFrfWs9YisxfDA7
bD1oKzF8MDtpZigobHwwKT09KGZ8MCkpe2c9azticmVhayBMMjQzN31lbHNle2I9aztoPWx9fWlm
KChqfDApPT0xOTkzKXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9PTE5OTIpe3JldHVybiBpfDB9
ZWxzZSBpZigoanwwKT09MTk5MCl7cmV0dXJuIGl8MH19fXdoaWxlKDApO2k9KGd8MCkhPShkfDAp
fDA7cmV0dXJuIGl8MH1mdW5jdGlvbiBlTShiLGMsZCl7Yj1ifDA7Yz1jfDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wLGg9MDtpZigoY3wwKT09KGR8MCkpe2U9MDtyZXR1cm4gZXwwfWVsc2V7Zj1jO2c9
MH13aGlsZSgxKXtjPShhW2ZdfDApKyhnPDw0KXwwO2I9YyYtMjY4NDM1NDU2O2g9KGI+Pj4yNHxi
KV5jO2M9ZisxfDA7aWYoKGN8MCk9PShkfDApKXtlPWg7YnJlYWt9ZWxzZXtmPWM7Zz1ofX1yZXR1
cm4gZXwwfWZ1bmN0aW9uIGVOKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxn
PTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWE7aWYoKGR8MCk8PTApe2Y9MDtyZXR1cm4gZnwwfWc9
YSsxMnwwO2g9YSsxNnwwO2k9YjtiPTA7d2hpbGUoMSl7aj1jW2c+PjJdfDA7aWYoaj4+PjA8KGNb
aD4+Ml18MCk+Pj4wKXtjW2c+PjJdPWorNDtrPWNbaj4+Ml18MH1lbHNle2o9YjBbY1soY1tlPj4y
XXwwKSs0MD4+Ml0mMTI3XShhKXwwO2lmKChqfDApPT0tMSl7Zj1iO2w9MjAwNzticmVha31lbHNl
e2s9an19Y1tpPj4yXT1rO2o9YisxfDA7aWYoKGp8MCk8KGR8MCkpe2k9aSs0fDA7Yj1qfWVsc2V7
Zj1qO2w9MjAwODticmVha319aWYoKGx8MCk9PTIwMDgpe3JldHVybiBmfDB9ZWxzZSBpZigobHww
KT09MjAwNyl7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBlTyhhKXthPWF8MDt2YXIgYj0w
LGQ9MDtpZigoYjBbY1soY1thPj4yXXwwKSszNj4+Ml0mMTI3XShhKXwwKT09LTEpe2I9LTE7cmV0
dXJuIGJ8MH1kPWErMTJ8MDthPWNbZD4+Ml18MDtjW2Q+PjJdPWErNDtiPWNbYT4+Ml18MDtyZXR1
cm4gYnwwfWZ1bmN0aW9uIGVQKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxn
PTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWE7aWYoKGR8MCk8PTApe2Y9MDtyZXR1cm4gZnwwfWc9
YSsyNHwwO2g9YSsyOHwwO2k9MDtqPWI7d2hpbGUoMSl7Yj1jW2c+PjJdfDA7aWYoYj4+PjA8KGNb
aD4+Ml18MCk+Pj4wKXtrPWNbaj4+Ml18MDtjW2c+PjJdPWIrNDtjW2I+PjJdPWt9ZWxzZXtpZigo
Yl9bY1soY1tlPj4yXXwwKSs1Mj4+Ml0mMzFdKGEsY1tqPj4yXXwwKXwwKT09LTEpe2Y9aTtsPTIw
MjM7YnJlYWt9fWs9aSsxfDA7aWYoKGt8MCk8KGR8MCkpe2k9aztqPWorNHwwfWVsc2V7Zj1rO2w9
MjAyMjticmVha319aWYoKGx8MCk9PTIwMjMpe3JldHVybiBmfDB9ZWxzZSBpZigobHwwKT09MjAy
Mil7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBlUShhKXthPWF8MDtlRChhKzh8MCk7a1Mo
YSk7cmV0dXJufWZ1bmN0aW9uIGVSKGEpe2E9YXwwO2VEKGErOHwwKTtyZXR1cm59ZnVuY3Rpb24g
ZVMoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChi
KyhkKzgpfDApO2tTKGIrZHwwKTtyZXR1cm59ZnVuY3Rpb24gZVQoYSl7YT1hfDA7ZUQoYSsoKGNb
KGNbYT4+Ml18MCktMTI+PjJdfDApKzgpfDApO3JldHVybn1mdW5jdGlvbiBlVShhKXthPWF8MDtl
RChhKzh8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVWKGEpe2E9YXwwO2VEKGErOHwwKTtyZXR1
cm59ZnVuY3Rpb24gZVcoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4yXXwwKS0x
Mj4+Ml18MDtlRChiKyhkKzgpfDApO2tTKGIrZHwwKTtyZXR1cm59ZnVuY3Rpb24gZVgoYSl7YT1h
fDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJdfDApKzgpfDApO3JldHVybn1mdW5jdGlvbiBl
WShhKXthPWF8MDtlRChhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVaKGEpe2E9YXwwO2VE
KGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZV8oYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9Y1so
Y1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhkKzQpfDApO2tTKGIrZHwwKTtyZXR1cm59ZnVuY3Rp
b24gZSQoYSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJdfDApKzQpfDApO3JldHVy
bn1mdW5jdGlvbiBlMChhKXthPWF8MDtlRChhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGUx
KGEpe2E9YXwwO2VEKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZTIoYSl7YT1hfDA7dmFyIGI9MCxk
PTA7Yj1hO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhkKzQpfDApO2tTKGIrZHwwKTty
ZXR1cm59ZnVuY3Rpb24gZTMoYSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJdfDAp
KzQpfDApO3JldHVybn1mdW5jdGlvbiBlNChhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7aWYoKGN8
MCk9PTEpe2RaKGEsMTY0MCwzNSk7cmV0dXJufWVsc2V7ZEsoYSxifDAsYyk7cmV0dXJufX1mdW5j
dGlvbiBlNShhKXthPWF8MDtkZihhfDApO3JldHVybn1mdW5jdGlvbiBlNihhKXthPWF8MDtkTyhh
fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlNyhhKXthPWF8MDtkTyhhfDApO3JldHVybn1mdW5j
dGlvbiBlOChhKXthPWF8MDtlRChhKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZTkoYSl7YT1hfDA7
ZGYoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZmEoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24gZmIoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZmMoYSl7
YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZmQoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTA7ZD1lO2c9Zi1kfDA7ZG97aWYoKGd8MCk9
PS0xKXtkWChiKTtoPTIwNTh9ZWxzZXtpZihnPj4+MD49MTEpe2g9MjA1ODticmVha31hW2JdPWc8
PDEmMjU1O2k9YisxfDB9fXdoaWxlKDApO2lmKChofDApPT0yMDU4KXtoPWcrMTYmLTE2O2o9a08o
aCl8MDtjW2IrOD4+Ml09ajtjW2I+PjJdPWh8MTtjW2IrND4+Ml09ZztpPWp9aWYoKGV8MCk9PShm
fDApKXtrPWk7YVtrXT0wO3JldHVybn1qPWYrKC1kfDApfDA7ZD1pO2c9ZTt3aGlsZSgxKXthW2Rd
PWFbZ118MDtlPWcrMXwwO2lmKChlfDApPT0oZnwwKSl7YnJlYWt9ZWxzZXtkPWQrMXwwO2c9ZX19
az1pK2p8MDthW2tdPTA7cmV0dXJufWZ1bmN0aW9uIGZlKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7
cmV0dXJufWZ1bmN0aW9uIGZmKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZnKGIp
e2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTA7ZD1pO2k9aSs4fDA7ZT1kfDA7
Zj1iO2c9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtoPWI7aWYoKGNbaCsoZysyNCk+PjJdfDApPT0w
KXtpPWQ7cmV0dXJuIGJ8MH1qPWV8MDthW2pdPTA7Y1tlKzQ+PjJdPWI7ZG97aWYoKGNbaCsoZysx
Nik+PjJdfDApPT0wKXtrPWNbaCsoZys3Mik+PjJdfDA7aWYoKGt8MCkhPTApe2ZnKGspfDB9YVtq
XT0xO2s9Y1toKygoY1soY1tmPj4yXXwwKS0xMj4+Ml18MCkrMjQpPj4yXXwwO2lmKChiMFtjWyhj
W2s+PjJdfDApKzI0Pj4yXSYxMjddKGspfDApIT0tMSl7YnJlYWt9az1jWyhjW2Y+PjJdfDApLTEy
Pj4yXXwwO2VDKGgra3wwLGNbaCsoaysxNik+PjJdfDEpfX13aGlsZSgwKTtmaShlKTtpPWQ7cmV0
dXJuIGJ8MH1mdW5jdGlvbiBmaChiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxqPTAs
az0wO2Q9aTtpPWkrOHwwO2U9ZHwwO2Y9YjtnPWNbKGNbZj4+Ml18MCktMTI+PjJdfDA7aD1iO2lm
KChjW2grKGcrMjQpPj4yXXwwKT09MCl7aT1kO3JldHVybiBifDB9aj1lfDA7YVtqXT0wO2NbZSs0
Pj4yXT1iO2Rve2lmKChjW2grKGcrMTYpPj4yXXwwKT09MCl7az1jW2grKGcrNzIpPj4yXXwwO2lm
KChrfDApIT0wKXtmaChrKXwwfWFbal09MTtrPWNbaCsoKGNbKGNbZj4+Ml18MCktMTI+PjJdfDAp
KzI0KT4+Ml18MDtpZigoYjBbY1soY1trPj4yXXwwKSsyND4+Ml0mMTI3XShrKXwwKSE9LTEpe2Jy
ZWFrfWs9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtlQyhoK2t8MCxjW2grKGsrMTYpPj4yXXwxKX19
d2hpbGUoMCk7ZmooZSk7aT1kO3JldHVybiBifDB9ZnVuY3Rpb24gZmkoYSl7YT1hfDA7dmFyIGI9
MCxkPTAsZT0wO2I9YSs0fDA7YT1jW2I+PjJdfDA7ZD1jWyhjW2E+PjJdfDApLTEyPj4yXXwwO2U9
YTtpZigoY1tlKyhkKzI0KT4+Ml18MCk9PTApe3JldHVybn1pZigoY1tlKyhkKzE2KT4+Ml18MCkh
PTApe3JldHVybn1pZigoY1tlKyhkKzQpPj4yXSY4MTkyfDApPT0wKXtyZXR1cm59aWYoYmgoKXww
KXtyZXR1cm59ZD1jW2I+PjJdfDA7ZT1jW2QrKChjWyhjW2Q+PjJdfDApLTEyPj4yXXwwKSsyNCk+
PjJdfDA7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZSl8MCkhPS0xKXtyZXR1cm59
ZT1jW2I+PjJdfDA7Yj1jWyhjW2U+PjJdfDApLTEyPj4yXXwwO2Q9ZTtlQyhkK2J8MCxjW2QrKGIr
MTYpPj4yXXwxKTtyZXR1cm59ZnVuY3Rpb24gZmooYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2I9
YSs0fDA7YT1jW2I+PjJdfDA7ZD1jWyhjW2E+PjJdfDApLTEyPj4yXXwwO2U9YTtpZigoY1tlKyhk
KzI0KT4+Ml18MCk9PTApe3JldHVybn1pZigoY1tlKyhkKzE2KT4+Ml18MCkhPTApe3JldHVybn1p
ZigoY1tlKyhkKzQpPj4yXSY4MTkyfDApPT0wKXtyZXR1cm59aWYoYmgoKXwwKXtyZXR1cm59ZD1j
W2I+PjJdfDA7ZT1jW2QrKChjWyhjW2Q+PjJdfDApLTEyPj4yXXwwKSsyNCk+PjJdfDA7aWYoKGIw
W2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZSl8MCkhPS0xKXtyZXR1cm59ZT1jW2I+PjJdfDA7
Yj1jWyhjW2U+PjJdfDApLTEyPj4yXXwwO2Q9ZTtlQyhkK2J8MCxjW2QrKGIrMTYpPj4yXXwxKTty
ZXR1cm59ZnVuY3Rpb24gZmsoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7TDI1OTY6ZG97aWYoKGV8MCk9PShmfDApKXtn
PWJ9ZWxzZXthPWI7aD1lO3doaWxlKDEpe2lmKChhfDApPT0oZHwwKSl7aT0tMTtqPTIxNDc7YnJl
YWt9az1jW2E+PjJdfDA7bD1jW2g+PjJdfDA7aWYoKGt8MCk8KGx8MCkpe2k9LTE7aj0yMTUwO2Jy
ZWFrfWlmKChsfDApPChrfDApKXtpPTE7aj0yMTQ4O2JyZWFrfWs9YSs0fDA7bD1oKzR8MDtpZigo
bHwwKT09KGZ8MCkpe2c9azticmVhayBMMjU5Nn1lbHNle2E9aztoPWx9fWlmKChqfDApPT0yMTQ4
KXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9PTIxNDcpe3JldHVybiBpfDB9ZWxzZSBpZigoanww
KT09MjE1MCl7cmV0dXJuIGl8MH19fXdoaWxlKDApO2k9KGd8MCkhPShkfDApfDA7cmV0dXJuIGl8
MH1mdW5jdGlvbiBmbChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9
MDtpZigoYnwwKT09KGR8MCkpe2U9MDtyZXR1cm4gZXwwfWVsc2V7Zj1iO2c9MH13aGlsZSgxKXti
PShjW2Y+PjJdfDApKyhnPDw0KXwwO2E9YiYtMjY4NDM1NDU2O2g9KGE+Pj4yNHxhKV5iO2I9Zis0
fDA7aWYoKGJ8MCk9PShkfDApKXtlPWg7YnJlYWt9ZWxzZXtmPWI7Zz1ofX1yZXR1cm4gZXwwfWZ1
bmN0aW9uIGZtKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9
MCxqPTAsaz0wO2Q9ZTtnPWYtZHwwO2g9Zz4+MjtpZihoPj4+MD4xMDczNzQxODIyKXtkWChiKX1p
ZihoPj4+MDwyKXthW2JdPWc+Pj4xJjI1NTtpPWIrNHwwfWVsc2V7Zz1oKzQmLTQ7aj1rTyhnPDwy
KXwwO2NbYis4Pj4yXT1qO2NbYj4+Ml09Z3wxO2NbYis0Pj4yXT1oO2k9an1pZigoZXwwKT09KGZ8
MCkpe2s9aTtjW2s+PjJdPTA7cmV0dXJufWo9KGYtNCsoLWR8MCl8MCk+Pj4yO2Q9aTtoPWU7d2hp
bGUoMSl7Y1tkPj4yXT1jW2g+PjJdO2U9aCs0fDA7aWYoKGV8MCk9PShmfDApKXticmVha31lbHNl
e2Q9ZCs0fDA7aD1lfX1rPWkrKGorMTw8Mil8MDtjW2s+PjJdPTA7cmV0dXJufWZ1bmN0aW9uIGZu
KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGZvKGEpe2E9YXwwO2RlKGF8
MCk7cmV0dXJufWZ1bmN0aW9uIGZwKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2s9aTtpPWkrMTEyfDA7bD1lO2U9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209aysxNnwwO249ayszMnwwO289ays0MHww
O3A9ays0OHwwO3E9ays1NnwwO3I9ays2NHwwO3M9ays3MnwwO3Q9ays4MHwwO3U9aysxMDR8MDtp
ZigoY1tnKzQ+PjJdJjF8MCk9PTApe2Nbbj4+Ml09LTE7dj1jWyhjW2Q+PjJdfDApKzE2Pj4yXXww
O3c9ZXwwO2NbcD4+Ml09Y1t3Pj4yXTtjW3E+PjJdPWNbZj4+Ml07YlhbdiYxMjddKG8sZCxwLHEs
ZyxoLG4pO3E9Y1tvPj4yXXwwO2Nbdz4+Ml09cTtzd2l0Y2goY1tuPj4yXXwwKXtjYXNlIDE6e2Fb
al09MTticmVha307Y2FzZSAwOnthW2pdPTA7YnJlYWt9O2RlZmF1bHQ6e2Fbal09MTtjW2g+PjJd
PTR9fWNbYj4+Ml09cTtpPWs7cmV0dXJufWVqKHIsZyk7cT1yfDA7cj1jW3E+PjJdfDA7aWYoKGNb
MzkyNF18MCkhPS0xKXtjW20+PjJdPTE1Njk2O2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygx
NTY5NixtLDk2KX1tPShjWzM5MjVdfDApLTF8MDtuPWNbcis4Pj4yXXwwO2Rve2lmKChjW3IrMTI+
PjJdfDApLW4+PjI+Pj4wPm0+Pj4wKXt3PWNbbisobTw8Mik+PjJdfDA7aWYoKHd8MCk9PTApe2Jy
ZWFrfW89dzt3PWNbcT4+Ml18MDtkeih3KXwwO2VqKHMsZyk7dz1zfDA7cD1jW3c+PjJdfDA7aWYo
KGNbMzgyOF18MCkhPS0xKXtjW2w+PjJdPTE1MzEyO2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtk
VygxNTMxMixsLDk2KX1kPShjWzM4MjldfDApLTF8MDt2PWNbcCs4Pj4yXXwwO2Rve2lmKChjW3Ar
MTI+PjJdfDApLXY+PjI+Pj4wPmQ+Pj4wKXt4PWNbdisoZDw8Mik+PjJdfDA7aWYoKHh8MCk9PTAp
e2JyZWFrfXk9eDt6PWNbdz4+Ml18MDtkeih6KXwwO3o9dHwwO0E9eDtiWltjWyhjW0E+PjJdfDAp
KzI0Pj4yXSYxMjddKHoseSk7YlpbY1soY1tBPj4yXXwwKSsyOD4+Ml0mMTI3XSh0KzEyfDAseSk7
Y1t1Pj4yXT1jW2Y+PjJdO2Fbal09KGZxKGUsdSx6LHQrMjR8MCxvLGgsMSl8MCk9PSh6fDApfDA7
Y1tiPj4yXT1jW2U+PjJdO2RQKHQrMTJ8MCk7ZFAodHwwKTtpPWs7cmV0dXJufX13aGlsZSgwKTtv
PWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7az1iTyg0KXwwO2txKGsp
O2JsKGt8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZnEoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxU
PTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wO2w9aTtpPWkrMTA0fDA7bT1l
O2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4yXTttPShnLWZ8MCkvMTJ8MDtu
PWx8MDtkb3tpZihtPj4+MD4xMDApe289a0oobSl8MDtpZigob3wwKSE9MCl7cD1vO3E9bzticmVh
a31rWCgpO3A9MDtxPTB9ZWxzZXtwPW47cT0wfX13aGlsZSgwKTtuPShmfDApPT0oZ3wwKTtpZihu
KXtyPW07cz0wfWVsc2V7bz1tO209MDt0PXA7dT1mO3doaWxlKDEpe3Y9ZFt1XXwwO2lmKCh2JjF8
MCk9PTApe3c9dj4+PjF9ZWxzZXt3PWNbdSs0Pj4yXXwwfWlmKCh3fDApPT0wKXthW3RdPTI7eD1t
KzF8MDt5PW8tMXwwfWVsc2V7YVt0XT0xO3g9bTt5PW99dj11KzEyfDA7aWYoKHZ8MCk9PShnfDAp
KXtyPXk7cz14O2JyZWFrfWVsc2V7bz15O209eDt0PXQrMXwwO3U9dn19fXU9YnwwO2I9ZXwwO2U9
aDt0PTA7eD1zO3M9cjt3aGlsZSgxKXtyPWNbdT4+Ml18MDtkb3tpZigocnwwKT09MCl7ej0wfWVs
c2V7aWYoKGNbcisxMj4+Ml18MCkhPShjW3IrMTY+PjJdfDApKXt6PXI7YnJlYWt9aWYoKGIwW2Nb
KGNbcj4+Ml18MCkrMzY+PjJdJjEyN10ocil8MCk9PS0xKXtjW3U+PjJdPTA7ej0wO2JyZWFrfWVs
c2V7ej1jW3U+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtyPSh6fDApPT0wO209Y1tiPj4yXXwwO2lm
KChtfDApPT0wKXtBPXo7Qj0wfWVsc2V7ZG97aWYoKGNbbSsxMj4+Ml18MCk9PShjW20rMTY+PjJd
fDApKXtpZigoYjBbY1soY1ttPj4yXXwwKSszNj4+Ml0mMTI3XShtKXwwKSE9LTEpe0M9bTticmVh
a31jW2I+PjJdPTA7Qz0wfWVsc2V7Qz1tfX13aGlsZSgwKTtBPWNbdT4+Ml18MDtCPUN9RD0oQnww
KT09MDtpZighKChyXkQpJihzfDApIT0wKSl7YnJlYWt9bT1jW0ErMTI+PjJdfDA7aWYoKG18MCk9
PShjW0ErMTY+PjJdfDApKXtFPShiMFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApJjI1
NX1lbHNle0U9YVttXXwwfWlmKGspe0Y9RX1lbHNle0Y9Yl9bY1soY1tlPj4yXXwwKSsxMj4+Ml0m
MzFdKGgsRSl8MH1kb3tpZihuKXtHPXg7SD1zfWVsc2V7bT10KzF8MDtMMjcwNzpkb3tpZihrKXt5
PXM7bz14O3c9cDt2PTA7ST1mO3doaWxlKDEpe2Rve2lmKChhW3ddfDApPT0xKXtKPUk7aWYoKGFb
Sl0mMSk9PTApe0s9SSsxfDB9ZWxzZXtLPWNbSSs4Pj4yXXwwfWlmKEY8PDI0Pj4yNCE9KGFbSyt0
fDBdfDApKXthW3ddPTA7TD12O009bztOPXktMXwwO2JyZWFrfU89ZFtKXXwwO2lmKChPJjF8MCk9
PTApe1A9Tz4+PjF9ZWxzZXtQPWNbSSs0Pj4yXXwwfWlmKChQfDApIT0obXwwKSl7TD0xO009bztO
PXk7YnJlYWt9YVt3XT0yO0w9MTtNPW8rMXwwO049eS0xfDB9ZWxzZXtMPXY7TT1vO049eX19d2hp
bGUoMCk7Tz1JKzEyfDA7aWYoKE98MCk9PShnfDApKXtRPU47Uj1NO1M9TDticmVhayBMMjcwN315
PU47bz1NO3c9dysxfDA7dj1MO0k9T319ZWxzZXtJPXM7dj14O3c9cDtvPTA7eT1mO3doaWxlKDEp
e2Rve2lmKChhW3ddfDApPT0xKXtPPXk7aWYoKGFbT10mMSk9PTApe1Q9eSsxfDB9ZWxzZXtUPWNb
eSs4Pj4yXXwwfWlmKEY8PDI0Pj4yNCE9KGJfW2NbKGNbZT4+Ml18MCkrMTI+PjJdJjMxXShoLGFb
VCt0fDBdfDApfDApPDwyND4+MjQpe2Fbd109MDtVPW87Vj12O1c9SS0xfDA7YnJlYWt9Sj1kW09d
fDA7aWYoKEomMXwwKT09MCl7WD1KPj4+MX1lbHNle1g9Y1t5KzQ+PjJdfDB9aWYoKFh8MCkhPSht
fDApKXtVPTE7Vj12O1c9STticmVha31hW3ddPTI7VT0xO1Y9disxfDA7Vz1JLTF8MH1lbHNle1U9
bztWPXY7Vz1JfX13aGlsZSgwKTtKPXkrMTJ8MDtpZigoSnwwKT09KGd8MCkpe1E9VztSPVY7Uz1V
O2JyZWFrIEwyNzA3fUk9Vzt2PVY7dz13KzF8MDtvPVU7eT1KfX19d2hpbGUoMCk7aWYoIVMpe0c9
UjtIPVE7YnJlYWt9bT1jW3U+PjJdfDA7eT1tKzEyfDA7bz1jW3k+PjJdfDA7aWYoKG98MCk9PShj
W20rMTY+PjJdfDApKXt3PWNbKGNbbT4+Ml18MCkrNDA+PjJdfDA7YjBbdyYxMjddKG0pfDB9ZWxz
ZXtjW3k+PjJdPW8rMX1pZigoUitRfDApPj4+MDwyfG4pe0c9UjtIPVE7YnJlYWt9bz10KzF8MDt5
PVI7bT1wO3c9Zjt3aGlsZSgxKXtkb3tpZigoYVttXXwwKT09Mil7dj1kW3ddfDA7aWYoKHYmMXww
KT09MCl7WT12Pj4+MX1lbHNle1k9Y1t3KzQ+PjJdfDB9aWYoKFl8MCk9PShvfDApKXtaPXk7YnJl
YWt9YVttXT0wO1o9eS0xfDB9ZWxzZXtaPXl9fXdoaWxlKDApO3Y9dysxMnwwO2lmKCh2fDApPT0o
Z3wwKSl7Rz1aO0g9UTticmVha31lbHNle3k9WjttPW0rMXwwO3c9dn19fX13aGlsZSgwKTt0PXQr
MXwwO3g9RztzPUh9ZG97aWYoKEF8MCk9PTApe189MH1lbHNle2lmKChjW0ErMTI+PjJdfDApIT0o
Y1tBKzE2Pj4yXXwwKSl7Xz1BO2JyZWFrfWlmKChiMFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjdd
KEEpfDApPT0tMSl7Y1t1Pj4yXT0wO189MDticmVha31lbHNle189Y1t1Pj4yXXwwO2JyZWFrfX19
d2hpbGUoMCk7dT0oX3wwKT09MDtkb3tpZihEKXskPTIyOTN9ZWxzZXtpZigoY1tCKzEyPj4yXXww
KSE9KGNbQisxNj4+Ml18MCkpe2lmKHUpe2JyZWFrfWVsc2V7JD0yMjk1O2JyZWFrfX1pZigoYjBb
Y1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKT09LTEpe2NbYj4+Ml09MDskPTIyOTM7YnJl
YWt9ZWxzZXtpZih1XihCfDApPT0wKXticmVha31lbHNleyQ9MjI5NTticmVha319fX13aGlsZSgw
KTtpZigoJHwwKT09MjI5Myl7aWYodSl7JD0yMjk1fX1pZigoJHwwKT09MjI5NSl7Y1tqPj4yXT1j
W2o+PjJdfDJ9TDI3ODY6ZG97aWYobil7JD0yMzAwfWVsc2V7dT1mO0I9cDt3aGlsZSgxKXtpZigo
YVtCXXwwKT09Mil7YWE9dTticmVhayBMMjc4Nn1iPXUrMTJ8MDtpZigoYnwwKT09KGd8MCkpeyQ9
MjMwMDticmVhayBMMjc4Nn11PWI7Qj1CKzF8MH19fXdoaWxlKDApO2lmKCgkfDApPT0yMzAwKXtj
W2o+PjJdPWNbaj4+Ml18NDthYT1nfWlmKChxfDApPT0wKXtpPWw7cmV0dXJuIGFhfDB9a0socSk7
aT1sO3JldHVybiBhYXwwfWZ1bmN0aW9uIGZyKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9
MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0w
LFU9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ts
Pj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSszMnww
O209ZSs0MHwwO249ZSs1NnwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2
MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRj
aChjW2grND4+Ml0mNzR8MCl7Y2FzZSA2NDp7dD04O2JyZWFrfTtjYXNlIDg6e3Q9MTY7YnJlYWt9
O2Nhc2UgMDp7dD0wO2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmeChtLGgsdSxsKTtrJChv
fDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5
PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1x
fDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9YVtsXXww
O2w9dzt3PWNbaD4+Ml18MDtMMjgwOTp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7
aWYoKGNbdysxMj4+Ml18MCkhPShjW3crMTY+PjJdfDApKXtCPXc7YnJlYWt9aWYoKGIwW2NbKGNb
dz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19
d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNbZj4+Ml18MDtkb3tpZigoRHwwKT09MCl7RT0yMzI3fWVs
c2V7aWYoKGNbRCsxMj4+Ml18MCkhPShjW0QrMTY+PjJdfDApKXtpZihDKXtGPUQ7Rz0wO2JyZWFr
fWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsgTDI4MDl9fWlmKChiMFtjWyhjW0Q+PjJdfDApKzM2Pj4y
XSYxMjddKEQpfDApPT0tMSl7Y1tmPj4yXT0wO0U9MjMyNzticmVha31lbHNle0s9KER8MCk9PTA7
aWYoQ15LKXtGPUQ7Rz1LO2JyZWFrfWVsc2V7SD1sO0k9RDtKPUs7YnJlYWsgTDI4MDl9fX19d2hp
bGUoMCk7aWYoKEV8MCk9PTIzMjcpe0U9MDtpZihDKXtIPWw7ST0wO0o9MTticmVha31lbHNle0Y9
MDtHPTF9fUQ9ZFtvXXwwO0s9KEQmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChLP0Q+
Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEspe0w9RD4+PjE7TT1EPj4+MX1lbHNle0Q9Y1t6Pj4yXXww
O0w9RDtNPUR9ZFIobixMPDwxLDApO2lmKChhW29dJjEpPT0wKXtOPTEwfWVsc2V7Tj0oY1tnPj4y
XSYtMiktMXwwfWRSKG4sTiwwKTtpZigoYVtvXSYxKT09MCl7Tz14fWVsc2V7Tz1jW3k+PjJdfDB9
Y1twPj4yXT1PK007UD1PfWVsc2V7UD1sfUQ9QisxMnwwO0s9Y1tEPj4yXXwwO1E9QisxNnwwO2lm
KChLfDApPT0oY1tRPj4yXXwwKSl7Uj0oYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXww
KSYyNTV9ZWxzZXtSPWFbS118MH1pZigoZnMoUix0LFAscCxzLEEsbSx2LHIsdSl8MCkhPTApe0g9
UDtJPUY7Sj1HO2JyZWFrfUs9Y1tEPj4yXXwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7UT1jWyhj
W0I+PjJdfDApKzQwPj4yXXwwO2IwW1EmMTI3XShCKXwwO2w9UDt3PUI7Y29udGludWV9ZWxzZXtj
W0Q+PjJdPUsrMTtsPVA7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtTPXc+
Pj4xfWVsc2V7Uz1jW20rND4+Ml18MH1kb3tpZigoU3wwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHct
cXwwKT49MTYwKXticmVha31QPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVB9fXdoaWxl
KDApO2Nbaz4+Ml09ZnUoSCxjW3A+PjJdfDAsaix0KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97
aWYoQyl7VD0wfWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtUPUI7YnJl
YWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtUPUI7YnJlYWt9
Y1toPj4yXT0wO1Q9MH19d2hpbGUoMCk7aD0oVHwwKT09MDtMMjg2OTpkb3tpZihKKXtFPTIzNjh9
ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+
PjJdfDApKzM2Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjM2ODticmVh
ayBMMjg2OX19d2hpbGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1U
O2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChFfDApPT0yMzY4KXtpZiho
KXticmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7
Y1tqPj4yXT1jW2o+PjJdfDI7VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59
ZnVuY3Rpb24gZnMoYixlLGYsZyxoLGksaixrLGwsbSl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxy
PTAscz0wO249Y1tnPj4yXXwwO289KG58MCk9PShmfDApO2Rve2lmKG8pe3A9KGFbbSsyNHwwXXww
KT09Yjw8MjQ+PjI0O2lmKCFwKXtpZigoYVttKzI1fDBdfDApIT1iPDwyND4+MjQpe2JyZWFrfX1j
W2c+PjJdPWYrMTthW2ZdPXA/NDM6NDU7Y1toPj4yXT0wO3E9MDtyZXR1cm4gcXwwfX13aGlsZSgw
KTtwPWRbal18MDtpZigocCYxfDApPT0wKXtyPXA+Pj4xfWVsc2V7cj1jW2orND4+Ml18MH1pZigo
cnwwKSE9MCZiPDwyND4+MjQ9PWk8PDI0Pj4yNCl7aT1jW2w+PjJdfDA7aWYoKGkta3wwKT49MTYw
KXtxPTA7cmV0dXJuIHF8MH1rPWNbaD4+Ml18MDtjW2w+PjJdPWkrNDtjW2k+PjJdPWs7Y1toPj4y
XT0wO3E9MDtyZXR1cm4gcXwwfWs9bSsyNnwwO2k9bTt3aGlsZSgxKXtpZigoaXwwKT09KGt8MCkp
e3M9azticmVha31pZigoYVtpXXwwKT09Yjw8MjQ+PjI0KXtzPWk7YnJlYWt9ZWxzZXtpPWkrMXww
fX1pPXMtbXwwO2lmKChpfDApPjIzKXtxPS0xO3JldHVybiBxfDB9TDI5MDg6ZG97c3dpdGNoKGV8
MCl7Y2FzZSA4OmNhc2UgMTA6e2lmKChpfDApPChlfDApKXticmVhayBMMjkwOH1lbHNle3E9LTF9
cmV0dXJuIHF8MH07Y2FzZSAxNjp7aWYoKGl8MCk8MjIpe2JyZWFrIEwyOTA4fWlmKG8pe3E9LTE7
cmV0dXJuIHF8MH1pZigobi1mfDApPj0zKXtxPS0xO3JldHVybiBxfDB9aWYoKGFbbi0xfDBdfDAp
IT00OCl7cT0tMTtyZXR1cm4gcXwwfWNbaD4+Ml09MDttPWFbOTc0NCtpfDBdfDA7cz1jW2c+PjJd
fDA7Y1tnPj4yXT1zKzE7YVtzXT1tO3E9MDtyZXR1cm4gcXwwfTtkZWZhdWx0Ont9fX13aGlsZSgw
KTtmPWFbOTc0NCtpfDBdfDA7Y1tnPj4yXT1uKzE7YVtuXT1mO2NbaD4+Ml09KGNbaD4+Ml18MCkr
MTtxPTA7cmV0dXJuIHF8MH1mdW5jdGlvbiBmdChiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTA7Zz1iO2g9YjtpPWFbaF18MDtqPWkmMjU1O2lmKChqJjF8MCk9PTApe2s9aj4+
PjF9ZWxzZXtrPWNbYis0Pj4yXXwwfWlmKChrfDApPT0wKXtyZXR1cm59ZG97aWYoKGR8MCk9PShl
fDApKXtsPWl9ZWxzZXtrPWUtNHwwO2lmKGs+Pj4wPmQ+Pj4wKXttPWQ7bj1rfWVsc2V7bD1pO2Jy
ZWFrfWRve2s9Y1ttPj4yXXwwO2NbbT4+Ml09Y1tuPj4yXTtjW24+PjJdPWs7bT1tKzR8MDtuPW4t
NHwwO313aGlsZShtPj4+MDxuPj4+MCk7bD1hW2hdfDB9fXdoaWxlKDApO2lmKChsJjEpPT0wKXtv
PWcrMXwwfWVsc2V7bz1jW2IrOD4+Ml18MH1nPWwmMjU1O2lmKChnJjF8MCk9PTApe3A9Zz4+PjF9
ZWxzZXtwPWNbYis0Pj4yXXwwfWI9ZS00fDA7ZT1hW29dfDA7Zz1lPDwyND4+MjQ7bD1lPDwyND4+
MjQ8MXxlPDwyND4+MjQ9PTEyNztMMjk0Nzpkb3tpZihiPj4+MD5kPj4+MCl7ZT1vK3B8MDtoPW87
bj1kO209ZztpPWw7d2hpbGUoMSl7aWYoIWkpe2lmKChtfDApIT0oY1tuPj4yXXwwKSl7YnJlYWt9
fWs9KGUtaHwwKT4xP2grMXwwOmg7aj1uKzR8MDtxPWFba118MDtyPXE8PDI0Pj4yNDtzPXE8PDI0
Pj4yNDwxfHE8PDI0Pj4yND09MTI3O2lmKGo+Pj4wPGI+Pj4wKXtoPWs7bj1qO209cjtpPXN9ZWxz
ZXt0PXI7dT1zO2JyZWFrIEwyOTQ3fX1jW2Y+PjJdPTQ7cmV0dXJufWVsc2V7dD1nO3U9bH19d2hp
bGUoMCk7aWYodSl7cmV0dXJufXU9Y1tiPj4yXXwwO2lmKCEodD4+PjA8dT4+PjB8KHV8MCk9PTAp
KXtyZXR1cm59Y1tmPj4yXT00O3JldHVybn1mdW5jdGlvbiBmdShiLGQsZSxmKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MDtnPWk7aT1pKzh8MDtoPWd8MDtp
ZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9az1jWyhidygpfDAp
Pj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYy
NjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWJJKGJ8
MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0w
KXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtp
PWc7cmV0dXJuIGp8MH1kPS0xO2g9MDtpZigoYnwwKT09MzR8KChmfDApPChkfDApfChmfDApPT0o
ZHwwKSZsPj4+MDwtMjE0NzQ4MzY0OD4+PjApfCgoZnwwKT4oaHwwKXwoZnwwKT09KGh8MCkmbD4+
PjA+MjE0NzQ4MzY0Nz4+PjApKXtjW2U+PjJdPTQ7ZT0wO2o9KGZ8MCk+KGV8MCl8KGZ8MCk9PShl
fDApJmw+Pj4wPjA+Pj4wPzIxNDc0ODM2NDc6LTIxNDc0ODM2NDg7aT1nO3JldHVybiBqfDB9ZWxz
ZXtqPWw7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZnYoYixlLGYsZyxoLGosayl7
Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxS
PTAsUz0wLFQ9MCxVPTAsVj0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNb
bD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2Ug
NjQ6e3Q9ODticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2Z4
KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1o
KzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12
fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9
bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wyOTk3OndoaWxlKDEpe2Rve2lmKCh3fDAp
PT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+Ml18MCkpe0I9dzticmVh
a31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9LTEpe0I9dzticmVha31j
W2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4yXXwwO2Rve2lmKChEfDAp
PT0wKXtFPTI0NzZ9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsxNj4+Ml18MCkpe2lmKEMp
e0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMjk5N319aWYoKGIwW2NbKGNb
RD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7RT0yNDc2O2JyZWFrfWVs
c2V7TD0oRHwwKT09MDtpZihDXkwpe0Y9RDtHPUw7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9TDticmVh
ayBMMjk5N319fX13aGlsZSgwKTtpZigoRXwwKT09MjQ3Nil7RT0wO2lmKEMpe0g9bDtJPTA7Sj0x
O2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7TD0oRCYxfDApPT0wO2lmKCgoY1twPj4yXXww
KS1sfDApPT0oKEw/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoTCl7TT1EPj4+MTtOPUQ+Pj4xfWVs
c2V7RD1jW3o+PjJdfDA7TT1EO049RH1kUihuLE08PDEsMCk7aWYoKGFbb10mMSk9PTApe089MTB9
ZWxzZXtPPShjW2c+PjJdJi0yKS0xfDB9ZFIobixPLDApO2lmKChhW29dJjEpPT0wKXtQPXh9ZWxz
ZXtQPWNbeT4+Ml18MH1jW3A+PjJdPVArTjtRPVB9ZWxzZXtRPWx9RD1CKzEyfDA7TD1jW0Q+PjJd
fDA7Uj1CKzE2fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtTPShiMFtjWyhjW0I+PjJdfDApKzM2
Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1M9YVtMXXwwfWlmKChmcyhTLHQsUSxwLHMsQSxtLHYs
cix1KXwwKSE9MCl7SD1RO0k9RjtKPUc7YnJlYWt9TD1jW0Q+PjJdfDA7aWYoKEx8MCk9PShjW1I+
PjJdfDApKXtSPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUiYxMjddKEIpfDA7bD1RO3c9Qjtj
b250aW51ZX1lbHNle2NbRD4+Ml09TCsxO2w9UTt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lmKCh3
JjF8MCk9PTApe1Q9dz4+PjF9ZWxzZXtUPWNbbSs0Pj4yXXwwfWRve2lmKChUfDApIT0wKXt3PWNb
cj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVE9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nb
dz4+Ml09UX19d2hpbGUoMCk7cz1mdyhILGNbcD4+Ml18MCxqLHQpfDA7Y1trPj4yXT1zO2Nbays0
Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VT0wfWVsc2V7aWYoKGNbQisxMj4+
Ml18MCkhPShjW0IrMTY+PjJdfDApKXtVPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+
PjJdJjEyN10oQil8MCkhPS0xKXtVPUI7YnJlYWt9Y1toPj4yXT0wO1U9MH19d2hpbGUoMCk7aD0o
VXwwKT09MDtMMzA1Nzpkb3tpZihKKXtFPTI1MTd9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXwwKT09
KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDApIT0t
MSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjUxNzticmVhayBMMzA1N319d2hpbGUoMCk7aWYoIShoXihJ
fDApPT0wKSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdo
aWxlKDApO2Rve2lmKChFfDApPT0yNTE3KXtpZihoKXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAo
bik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7Vj1ifDA7Y1tW
Pj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZncoYixkLGUsZil7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wO2c9aTtpPWkrOHww
O2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtrPTA7aT1nO3JldHVybihLPWos
ayl8MH1sPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18
MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9
fXdoaWxlKDApO209YkkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXwwO2Y9SztiPWNbKGJ3KCl8MCk+
PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWx9aWYoKGNbaD4+Ml18MCkhPShkfDAp
KXtjW2U+PjJdPTQ7aj0wO2s9MDtpPWc7cmV0dXJuKEs9aixrKXwwfWlmKChifDApIT0zNCl7aj1m
O2s9bTtpPWc7cmV0dXJuKEs9aixrKXwwfWNbZT4+Ml09NDtlPTA7Yj0oZnwwKT4oZXwwKXwoZnww
KT09KGV8MCkmbT4+PjA+MD4+PjA7aj1iPzIxNDc0ODM2NDc6LTIxNDc0ODM2NDg7az1iPy0xOjA7
aT1nO3JldHVybihLPWosayl8MH1mdW5jdGlvbiBmeChiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wO2c9aTtp
PWkrNDB8MDtoPWd8MDtqPWcrMTZ8MDtrPWcrMzJ8MDtlaihrLGQpO2Q9a3wwO2s9Y1tkPj4yXXww
O2lmKChjWzM5MjRdfDApIT0tMSl7Y1tqPj4yXT0xNTY5NjtjW2orND4+Ml09MTI7Y1tqKzg+PjJd
PTA7ZFcoMTU2OTYsaiw5Nil9aj0oY1szOTI1XXwwKS0xfDA7bD1jW2srOD4+Ml18MDtkb3tpZigo
Y1trKzEyPj4yXXwwKS1sPj4yPj4+MD5qPj4+MCl7bT1jW2wrKGo8PDIpPj4yXXwwO2lmKChtfDAp
PT0wKXticmVha31uPW07bz1jWyhjW20+PjJdfDApKzMyPj4yXXwwO2NhW28mMTVdKG4sOTc0NCw5
NzcwLGUpfDA7bj1jW2Q+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW2g+PjJdPTE1MzEyO2Nb
aCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTMxMixoLDk2KX1vPShjWzM4MjldfDApLTF8MDtt
PWNbbis4Pj4yXXwwO2Rve2lmKChjW24rMTI+PjJdfDApLW0+PjI+Pj4wPm8+Pj4wKXtwPWNbbSso
bzw8Mik+PjJdfDA7aWYoKHB8MCk9PTApe2JyZWFrfXE9cDthW2ZdPWIwW2NbKGNbcD4+Ml18MCkr
MTY+PjJdJjEyN10ocSl8MDtiWltjWyhjW3A+PjJdfDApKzIwPj4yXSYxMjddKGIscSk7cT1jW2Q+
PjJdfDA7ZHoocSl8MDtpPWc7cmV0dXJufX13aGlsZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3ww
LDgxNzYsMTM0KX19d2hpbGUoMCk7Zz1iTyg0KXwwO2txKGcpO2JsKGd8MCw4MTc2LDEzNCl9ZnVu
Y3Rpb24gZnkoZSxmLGcsaCxqLGssbCl7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1r
fDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAs
eD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxM
PTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wO2Y9aTtpPWkrNzJ8MDtt
PWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+PjJdO209aDtoPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+Ml07bT1mKzMyfDA7bj1mKzQwfDA7bz1mKzU2fDA7
cD1vO3E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3I9aTtpPWkrMTYwfDA7cz1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbais0Pj4yXSY3NHwwKXtj
YXNlIDA6e3U9MDticmVha307Y2FzZSA4Ont1PTE2O2JyZWFrfTtjYXNlIDY0Ont1PTg7YnJlYWt9
O2RlZmF1bHQ6e3U9MTB9fXY9ZnwwO2Z4KG4saix2LG0pO2skKHB8MCwwLDEyKTtqPW87ZFIobywx
MCwwKTtpZigoYVtwXSYxKT09MCl7dz1qKzF8MDt4PXc7eT13O3o9bys4fDB9ZWxzZXt3PW8rOHww
O3g9Y1t3Pj4yXXwwO3k9aisxfDA7ej13fWNbcT4+Ml09eDt3PXJ8MDtjW3M+PjJdPXc7Y1t0Pj4y
XT0wO2o9Z3wwO2c9aHwwO2g9b3wwO0E9bys0fDA7Qj1hW21dfDA7bT14O3g9Y1tqPj4yXXwwO0wz
MTIyOndoaWxlKDEpe2Rve2lmKCh4fDApPT0wKXtDPTB9ZWxzZXtpZigoY1t4KzEyPj4yXXwwKSE9
KGNbeCsxNj4+Ml18MCkpe0M9eDticmVha31pZigoYjBbY1soY1t4Pj4yXXwwKSszNj4+Ml0mMTI3
XSh4KXwwKSE9LTEpe0M9eDticmVha31jW2o+PjJdPTA7Qz0wfX13aGlsZSgwKTtEPShDfDApPT0w
O0U9Y1tnPj4yXXwwO2Rve2lmKChFfDApPT0wKXtGPTI1Nzl9ZWxzZXtpZigoY1tFKzEyPj4yXXww
KSE9KGNbRSsxNj4+Ml18MCkpe2lmKEQpe0c9RTtIPTA7YnJlYWt9ZWxzZXtJPW07Sj1FO0s9MDti
cmVhayBMMzEyMn19aWYoKGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCk9PS0xKXtj
W2c+PjJdPTA7Rj0yNTc5O2JyZWFrfWVsc2V7TD0oRXwwKT09MDtpZihEXkwpe0c9RTtIPUw7YnJl
YWt9ZWxzZXtJPW07Sj1FO0s9TDticmVhayBMMzEyMn19fX13aGlsZSgwKTtpZigoRnwwKT09MjU3
OSl7Rj0wO2lmKEQpe0k9bTtKPTA7Sz0xO2JyZWFrfWVsc2V7Rz0wO0g9MX19RT1kW3BdfDA7TD0o
RSYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1tfDApPT0oKEw/RT4+PjE6Y1tBPj4yXXwwKXwwKSl7
aWYoTCl7TT1FPj4+MTtOPUU+Pj4xfWVsc2V7RT1jW0E+PjJdfDA7TT1FO049RX1kUihvLE08PDEs
MCk7aWYoKGFbcF0mMSk9PTApe089MTB9ZWxzZXtPPShjW2g+PjJdJi0yKS0xfDB9ZFIobyxPLDAp
O2lmKChhW3BdJjEpPT0wKXtQPXl9ZWxzZXtQPWNbej4+Ml18MH1jW3E+PjJdPVArTjtRPVB9ZWxz
ZXtRPW19RT1DKzEyfDA7TD1jW0U+PjJdfDA7Uj1DKzE2fDA7aWYoKEx8MCk9PShjW1I+PjJdfDAp
KXtTPShiMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDApJjI1NX1lbHNle1M9YVtMXXww
fWlmKChmcyhTLHUsUSxxLHQsQixuLHcscyx2KXwwKSE9MCl7ST1RO0o9RztLPUg7YnJlYWt9TD1j
W0U+PjJdfDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNbQz4+Ml18MCkrNDA+PjJdfDA7
YjBbUiYxMjddKEMpfDA7bT1RO3g9Qztjb250aW51ZX1lbHNle2NbRT4+Ml09TCsxO209UTt4PUM7
Y29udGludWV9fXg9ZFtuXXwwO2lmKCh4JjF8MCk9PTApe1Q9eD4+PjF9ZWxzZXtUPWNbbis0Pj4y
XXwwfWRve2lmKChUfDApIT0wKXt4PWNbcz4+Ml18MDtpZigoeC1yfDApPj0xNjApe2JyZWFrfVE9
Y1t0Pj4yXXwwO2Nbcz4+Ml09eCs0O2NbeD4+Ml09UX19d2hpbGUoMCk7YltsPj4xXT1meihJLGNb
cT4+Ml18MCxrLHUpfDA7ZnQobix3LGNbcz4+Ml18MCxrKTtkb3tpZihEKXtVPTB9ZWxzZXtpZigo
Y1tDKzEyPj4yXXwwKSE9KGNbQysxNj4+Ml18MCkpe1U9QzticmVha31pZigoYjBbY1soY1tDPj4y
XXwwKSszNj4+Ml0mMTI3XShDKXwwKSE9LTEpe1U9QzticmVha31jW2o+PjJdPTA7VT0wfX13aGls
ZSgwKTtqPShVfDApPT0wO0wzMTgyOmRve2lmKEspe0Y9MjYyMH1lbHNle2Rve2lmKChjW0orMTI+
PjJdfDApPT0oY1tKKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbSj4+Ml18MCkrMzY+PjJdJjEyN10o
Sil8MCkhPS0xKXticmVha31jW2c+PjJdPTA7Rj0yNjIwO2JyZWFrIEwzMTgyfX13aGlsZSgwKTtp
ZighKGpeKEp8MCk9PTApKXticmVha31WPWV8MDtjW1Y+PjJdPVU7ZFAobyk7ZFAobik7aT1mO3Jl
dHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTI2MjApe2lmKGope2JyZWFrfVY9ZXwwO2NbVj4+
Ml09VTtkUChvKTtkUChuKTtpPWY7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjtW
PWV8MDtjW1Y+PjJdPVU7ZFAobyk7ZFAobik7aT1mO3JldHVybn1mdW5jdGlvbiBmeihiLGQsZSxm
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MDtnPWk7aT1p
Kzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9
aWYoKGFbYl18MCk9PTQ1KXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWs9Y1soYncoKXww
KT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1hSShi
fDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09
MCl7Y1soYncoKXwwKT4+Ml09a31pZigoY1toPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtqPTA7
aT1nO3JldHVybiBqfDB9ZD0wO2lmKChifDApPT0zNHwoZj4+PjA+ZD4+PjB8Zj4+PjA9PWQ+Pj4w
Jmw+Pj4wPjY1NTM1Pj4+MCkpe2NbZT4+Ml09NDtqPS0xO2k9ZztyZXR1cm4ganwwfWVsc2V7aj1s
JjY1NTM1O2k9ZztyZXR1cm4ganwwfXJldHVybiAwfWZ1bmN0aW9uIGZBKGIsZSxmLGcsaCxqLGsp
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAs
UT0wLFI9MCxTPTAsVD0wLFU9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1j
W2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA2NDp7dD04O2JyZWFrfTtjYXNl
IDA6e3Q9MDticmVha307Y2FzZSA4Ont0PTE2O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtm
eChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9
aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9
dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6
PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMzIzMjp3aGlsZSgxKXtkb3tpZigod3ww
KT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3crMTY+PjJdfDApKXtCPXc7YnJl
YWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MCkhPS0xKXtCPXc7YnJlYWt9
Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNbZj4+Ml18MDtkb3tpZigoRHww
KT09MCl7RT0yNjY5fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShjW0QrMTY+PjJdfDApKXtpZihD
KXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsgTDMyMzJ9fWlmKChiMFtjWyhj
W0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4yXT0wO0U9MjY2OTticmVha31l
bHNle0s9KER8MCk9PTA7aWYoQ15LKXtGPUQ7Rz1LO2JyZWFrfWVsc2V7SD1sO0k9RDtKPUs7YnJl
YWsgTDMyMzJ9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTI2Njkpe0U9MDtpZihDKXtIPWw7ST0wO0o9
MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0s9KEQmMXwwKT09MDtpZigoKGNbcD4+Ml18
MCktbHwwKT09KChLP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEspe0w9RD4+PjE7TT1EPj4+MX1l
bHNle0Q9Y1t6Pj4yXXwwO0w9RDtNPUR9ZFIobixMPDwxLDApO2lmKChhW29dJjEpPT0wKXtOPTEw
fWVsc2V7Tj0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTiwwKTtpZigoYVtvXSYxKT09MCl7Tz14fWVs
c2V7Tz1jW3k+PjJdfDB9Y1twPj4yXT1PK007UD1PfWVsc2V7UD1sfUQ9QisxMnwwO0s9Y1tEPj4y
XXwwO1E9QisxNnwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7Uj0oYjBbY1soY1tCPj4yXXwwKSsz
Nj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtSPWFbS118MH1pZigoZnMoUix0LFAscCxzLEEsbSx2
LHIsdSl8MCkhPTApe0g9UDtJPUY7Sj1HO2JyZWFrfUs9Y1tEPj4yXXwwO2lmKChLfDApPT0oY1tR
Pj4yXXwwKSl7UT1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1EmMTI3XShCKXwwO2w9UDt3PUI7
Y29udGludWV9ZWxzZXtjW0Q+PjJdPUsrMTtsPVA7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigo
dyYxfDApPT0wKXtTPXc+Pj4xfWVsc2V7Uz1jW20rND4+Ml18MH1kb3tpZigoU3wwKSE9MCl7dz1j
W3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31QPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtj
W3c+PjJdPVB9fXdoaWxlKDApO2Nbaz4+Ml09ZkIoSCxjW3A+PjJdfDAsaix0KXwwO2Z0KG0sdixj
W3I+PjJdfDAsaik7ZG97aWYoQyl7VD0wfWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+
PjJdfDApKXtUPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkh
PS0xKXtUPUI7YnJlYWt9Y1toPj4yXT0wO1Q9MH19d2hpbGUoMCk7aD0oVHwwKT09MDtMMzI5Mjpk
b3tpZihKKXtFPTI3MTB9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkp
e2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4y
XT0wO0U9MjcxMDticmVhayBMMzI5Mn19d2hpbGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9
VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChF
fDApPT0yNzEwKXtpZihoKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3Jl
dHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQ
KG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkIoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTA7Zz1pO2k9aSs4fDA7aD1nfDA7aWYoKGJ8MCk9PShk
fDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWlmKChhW2JdfDApPT00NSl7Y1tlPj4y
XT00O2o9MDtpPWc7cmV0dXJuIGp8MH1rPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09
MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1
OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9YUkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXww
O2Y9SztiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWt9aWYo
KGNbaD4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWQ9MDtpZigo
YnwwKT09MzR8KGY+Pj4wPmQ+Pj4wfGY+Pj4wPT1kPj4+MCZsPj4+MD4tMT4+PjApKXtjW2U+PjJd
PTQ7aj0tMTtpPWc7cmV0dXJuIGp8MH1lbHNle2o9bDtpPWc7cmV0dXJuIGp8MH1yZXR1cm4gMH1m
dW5jdGlvbiBmQyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtq
PWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7ZT1pO2k9aSs3Mnww
O2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMzJ8MDttPWUrNDB8MDtuPWUrNTZ8
MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDAp
e2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVh
a307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZngobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihu
LDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4
fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+
PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWFbbF18MDtsPXc7dz1jW2g+PjJdfDA7
TDMzNDI6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle2lmKChjW3crMTI+PjJdfDAp
IT0oY1t3KzE2Pj4yXXwwKSl7Qj13O2JyZWFrfWlmKChiMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYx
MjddKHcpfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0M9KEJ8MCk9
PTA7RD1jW2Y+PjJdfDA7ZG97aWYoKER8MCk9PTApe0U9Mjc1OX1lbHNle2lmKChjW0QrMTI+PjJd
fDApIT0oY1tEKzE2Pj4yXXwwKSl7aWYoQyl7Rj1EO0c9MDticmVha31lbHNle0g9bDtJPUQ7Sj0w
O2JyZWFrIEwzMzQyfX1pZigoYjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwKT09LTEp
e2NbZj4+Ml09MDtFPTI3NTk7YnJlYWt9ZWxzZXtLPShEfDApPT0wO2lmKENeSyl7Rj1EO0c9Szti
cmVha31lbHNle0g9bDtJPUQ7Sj1LO2JyZWFrIEwzMzQyfX19fXdoaWxlKDApO2lmKChFfDApPT0y
NzU5KXtFPTA7aWYoQyl7SD1sO0k9MDtKPTE7YnJlYWt9ZWxzZXtGPTA7Rz0xfX1EPWRbb118MDtL
PShEJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoSz9EPj4+MTpjW3o+PjJdfDApfDAp
KXtpZihLKXtMPUQ+Pj4xO009RD4+PjF9ZWxzZXtEPWNbej4+Ml18MDtMPUQ7TT1EfWRSKG4sTDw8
MSwwKTtpZigoYVtvXSYxKT09MCl7Tj0xMH1lbHNle049KGNbZz4+Ml0mLTIpLTF8MH1kUihuLE4s
MCk7aWYoKGFbb10mMSk9PTApe089eH1lbHNle089Y1t5Pj4yXXwwfWNbcD4+Ml09TytNO1A9T31l
bHNle1A9bH1EPUIrMTJ8MDtLPWNbRD4+Ml18MDtRPUIrMTZ8MDtpZigoS3wwKT09KGNbUT4+Ml18
MCkpe1I9KGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkmMjU1fWVsc2V7Uj1hW0td
fDB9aWYoKGZzKFIsdCxQLHAscyxBLG0sdixyLHUpfDApIT0wKXtIPVA7ST1GO0o9RzticmVha31L
PWNbRD4+Ml18MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1E9Y1soY1tCPj4yXXwwKSs0MD4+Ml18
MDtiMFtRJjEyN10oQil8MDtsPVA7dz1CO2NvbnRpbnVlfWVsc2V7Y1tEPj4yXT1LKzE7bD1QO3c9
Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Uz13Pj4+MX1lbHNle1M9Y1ttKzQ+
PjJdfDB9ZG97aWYoKFN8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9
UD1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1QfX13aGlsZSgwKTtjW2s+PjJdPWZEKEgs
Y1twPj4yXXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEMpe1Q9MH1lbHNle2lm
KChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VD1CO2JyZWFrfWlmKChiMFtjWyhjW0I+
PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VD1CO2JyZWFrfWNbaD4+Ml09MDtUPTB9fXdo
aWxlKDApO2g9KFR8MCk9PTA7TDM0MDI6ZG97aWYoSil7RT0yODAwfWVsc2V7ZG97aWYoKGNbSSsx
Mj4+Ml18MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3
XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI4MDA7YnJlYWsgTDM0MDJ9fXdoaWxlKDAp
O2lmKCEoaF4oSXwwKT09MCkpe2JyZWFrfVU9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7
cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRXwwKT09MjgwMCl7aWYoaCl7YnJlYWt9VT1ifDA7Y1tV
Pj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwy
O1U9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZEKGIsZCxl
LGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wO2c9aTtp
PWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8
MH1pZigoYVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9az1jWyhidygp
fDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMo
MTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWFJ
KGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDAp
PT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2o9
MDtpPWc7cmV0dXJuIGp8MH1kPTA7aWYoKGJ8MCk9PTM0fChmPj4+MD5kPj4+MHxmPj4+MD09ZD4+
PjAmbD4+PjA+LTE+Pj4wKSl7Y1tlPj4yXT00O2o9LTE7aT1nO3JldHVybiBqfDB9ZWxzZXtqPWw7
aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZkUoYixlLGYsZyxoLGosayl7Yj1ifDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9
MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0w
LFQ9MCxVPTAsVj0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tm
Pj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07
bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9
aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0w
O2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2Z4KG0saCx1
LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3
PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+
Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7
QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wzNDUyOndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtC
PTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+Ml18MCkpe0I9dzticmVha31pZigo
YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9LTEpe0I9dzticmVha31jW2g+PjJd
PTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4yXXwwO2Rve2lmKChEfDApPT0wKXtF
PTI4NDl9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsxNj4+Ml18MCkpe2lmKEMpe0Y9RDtH
PTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMzQ1Mn19aWYoKGIwW2NbKGNbRD4+Ml18
MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7RT0yODQ5O2JyZWFrfWVsc2V7TD0o
RHwwKT09MDtpZihDXkwpe0Y9RDtHPUw7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9TDticmVhayBMMzQ1
Mn19fX13aGlsZSgwKTtpZigoRXwwKT09Mjg0OSl7RT0wO2lmKEMpe0g9bDtJPTA7Sj0xO2JyZWFr
fWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7TD0oRCYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDAp
PT0oKEw/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoTCl7TT1EPj4+MTtOPUQ+Pj4xfWVsc2V7RD1j
W3o+PjJdfDA7TT1EO049RH1kUihuLE08PDEsMCk7aWYoKGFbb10mMSk9PTApe089MTB9ZWxzZXtP
PShjW2c+PjJdJi0yKS0xfDB9ZFIobixPLDApO2lmKChhW29dJjEpPT0wKXtQPXh9ZWxzZXtQPWNb
eT4+Ml18MH1jW3A+PjJdPVArTjtRPVB9ZWxzZXtRPWx9RD1CKzEyfDA7TD1jW0Q+PjJdfDA7Uj1C
KzE2fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtTPShiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYx
MjddKEIpfDApJjI1NX1lbHNle1M9YVtMXXwwfWlmKChmcyhTLHQsUSxwLHMsQSxtLHYscix1KXww
KSE9MCl7SD1RO0k9RjtKPUc7YnJlYWt9TD1jW0Q+PjJdfDA7aWYoKEx8MCk9PShjW1I+PjJdfDAp
KXtSPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUiYxMjddKEIpfDA7bD1RO3c9Qjtjb250aW51
ZX1lbHNle2NbRD4+Ml09TCsxO2w9UTt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9
PTApe1Q9dz4+PjF9ZWxzZXtUPWNbbSs0Pj4yXXwwfWRve2lmKChUfDApIT0wKXt3PWNbcj4+Ml18
MDtpZigody1xfDApPj0xNjApe2JyZWFrfVE9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09
UX19d2hpbGUoMCk7cz1mRihILGNbcD4+Ml18MCxqLHQpfDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1L
O2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VT0wfWVsc2V7aWYoKGNbQisxMj4+Ml18MCkh
PShjW0IrMTY+PjJdfDApKXtVPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEy
N10oQil8MCkhPS0xKXtVPUI7YnJlYWt9Y1toPj4yXT0wO1U9MH19d2hpbGUoMCk7aD0oVXwwKT09
MDtMMzUxMjpkb3tpZihKKXtFPTI4OTB9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXwwKT09KGNbSSsx
Nj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJl
YWt9Y1tmPj4yXT0wO0U9Mjg5MDticmVhayBMMzUxMn19d2hpbGUoMCk7aWYoIShoXihJfDApPT0w
KSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Rve2lmKChFfDApPT0yODkwKXtpZihoKXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAobik7ZFAo
bSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7Vj1ifDA7Y1tWPj4yXT1V
O2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkYoYixkLGUsZil7Yj1ifDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Zz1pO2k9aSs4
fDA7aD1nfDA7ZG97aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0wO2s9MH1lbHNle2lmKChh
W2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtrPTA7YnJlYWt9bD1jWyhidygpfDApPj4yXXwwO2Nb
KGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0w
KXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTttPWFJKGJ8MCxofDAsZnww
LGNbMjk1OF18MCl8MDtuPUs7bz1jWyhidygpfDApPj4yXXwwO2lmKChvfDApPT0wKXtjWyhidygp
fDApPj4yXT1sfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtrPTA7YnJlYWt9
aWYoKG98MCkhPTM0KXtqPW47az1tO2JyZWFrfWNbZT4+Ml09NDtqPS0xO2s9LTF9fXdoaWxlKDAp
O2k9ZztyZXR1cm4oSz1qLGspfDB9ZnVuY3Rpb24gZkcoYixlLGYsZyxoLGksaixrLGwsbSxuLG8p
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO209
bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9MCxzPTAsdD0wO2lmKGI8PDI0Pj4yND09aTw8
MjQ+PjI0KXtpZigoYVtlXSYxKT09MCl7cD0tMTtyZXR1cm4gcHwwfWFbZV09MDtpPWNbaD4+Ml18
MDtjW2g+PjJdPWkrMTthW2ldPTQ2O2k9ZFtrXXwwO2lmKChpJjF8MCk9PTApe3E9aT4+PjF9ZWxz
ZXtxPWNbays0Pj4yXXwwfWlmKChxfDApPT0wKXtwPTA7cmV0dXJuIHB8MH1xPWNbbT4+Ml18MDtp
ZigocS1sfDApPj0xNjApe3A9MDtyZXR1cm4gcHwwfWk9Y1tuPj4yXXwwO2NbbT4+Ml09cSs0O2Nb
cT4+Ml09aTtwPTA7cmV0dXJuIHB8MH1kb3tpZihiPDwyND4+MjQ9PWo8PDI0Pj4yNCl7aT1kW2td
fDA7aWYoKGkmMXwwKT09MCl7cj1pPj4+MX1lbHNle3I9Y1trKzQ+PjJdfDB9aWYoKHJ8MCk9PTAp
e2JyZWFrfWlmKChhW2VdJjEpPT0wKXtwPS0xO3JldHVybiBwfDB9aT1jW20+PjJdfDA7aWYoKGkt
bHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8MH1xPWNbbj4+Ml18MDtjW20+PjJdPWkrNDtjW2k+PjJd
PXE7Y1tuPj4yXT0wO3A9MDtyZXR1cm4gcHwwfX13aGlsZSgwKTtyPW8rMzJ8MDtqPW87d2hpbGUo
MSl7aWYoKGp8MCk9PShyfDApKXtzPXI7YnJlYWt9aWYoKGFbal18MCk9PWI8PDI0Pj4yNCl7cz1q
O2JyZWFrfWVsc2V7aj1qKzF8MH19aj1zLW98MDtpZigoanwwKT4zMSl7cD0tMTtyZXR1cm4gcHww
fW89YVs5NzQ0K2p8MF18MDtzd2l0Y2goanwwKXtjYXNlIDI1OmNhc2UgMjQ6e3M9Y1toPj4yXXww
O2Rve2lmKChzfDApIT0oZ3wwKSl7aWYoKGFbcy0xfDBdJjk1fDApPT0oYVtmXSYxMjd8MCkpe2Jy
ZWFrfWVsc2V7cD0tMX1yZXR1cm4gcHwwfX13aGlsZSgwKTtjW2g+PjJdPXMrMTthW3NdPW87cD0w
O3JldHVybiBwfDB9O2Nhc2UgMjI6Y2FzZSAyMzp7YVtmXT04MDtzPWNbaD4+Ml18MDtjW2g+PjJd
PXMrMTthW3NdPW87cD0wO3JldHVybiBwfDB9O2RlZmF1bHQ6e3M9YVtmXXwwO2Rve2lmKChvJjk1
fDApPT0oczw8MjQ+PjI0fDApKXthW2ZdPXN8LTEyODtpZigoYVtlXSYxKT09MCl7YnJlYWt9YVtl
XT0wO2c9ZFtrXXwwO2lmKChnJjF8MCk9PTApe3Q9Zz4+PjF9ZWxzZXt0PWNbays0Pj4yXXwwfWlm
KCh0fDApPT0wKXticmVha31nPWNbbT4+Ml18MDtpZigoZy1sfDApPj0xNjApe2JyZWFrfWI9Y1tu
Pj4yXXwwO2NbbT4+Ml09Zys0O2NbZz4+Ml09Yn19d2hpbGUoMCk7bT1jW2g+PjJdfDA7Y1toPj4y
XT1tKzE7YVttXT1vO2lmKChqfDApPjIxKXtwPTA7cmV0dXJuIHB8MH1jW24+PjJdPShjW24+PjJd
fDApKzE7cD0wO3JldHVybiBwfDB9fXJldHVybiAwfWZ1bmN0aW9uIGZIKGIsZSxmLGgsaixrLGwp
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0w
LEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAs
Uj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrODB8MDttPWY7Zj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2g+PjJdPWNbbT4+Ml07bT1lKzMyfDA7bj1lKzQwfDA7bz1lKzQ4fDA7cD1lKzY0fDA7cT1wO3I9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1pO2k9
aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZkoobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1wO2RS
KHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7eT1w
Kzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15O2Nb
dT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWh8MDtoPXB8MDtDPXArNHwwO0Q9YVttXXww
O209YVtuXXwwO249ejt6PWNbaj4+Ml18MDtMMzYxNTp3aGlsZSgxKXtkb3tpZigoenwwKT09MCl7
RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJdfDApKXtFPXo7YnJlYWt9aWYo
KGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0xKXtFPXo7YnJlYWt9Y1tqPj4y
XT0wO0U9MH19d2hpbGUoMCk7Rj0oRXwwKT09MDtHPWNbZj4+Ml18MDtkb3tpZigoR3wwKT09MCl7
SD0yOTc4fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtpZihGKXtJPUc7
Sj0wO2JyZWFrfWVsc2V7Sz1uO0w9RztNPTA7YnJlYWsgTDM2MTV9fWlmKChiMFtjWyhjW0c+PjJd
fDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1tmPj4yXT0wO0g9Mjk3ODticmVha31lbHNle049
KEd8MCk9PTA7aWYoRl5OKXtJPUc7Sj1OO2JyZWFrfWVsc2V7Sz1uO0w9RztNPU47YnJlYWsgTDM2
MTV9fX19d2hpbGUoMCk7aWYoKEh8MCk9PTI5Nzgpe0g9MDtpZihGKXtLPW47TD0wO009MTticmVh
a31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtpZigoKGNbcj4+Ml18MCktbnww
KT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+PjE7UD1HPj4+MX1lbHNle0c9
Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3FdJjEpPT0wKXtRPTEwfWVsc2V7
UT0oY1toPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYxKT09MCl7Uj1BfWVsc2V7Uj1j
W0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsxMnwwO049Y1tHPj4yXXwwO1Q9
RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1soY1tFPj4yXXwwKSszNj4+Ml0m
MTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2LHcsUyxyLEQsbSxvLHksdCx1
LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+Ml18MDtpZigoTnwwKT09KGNbVD4+
Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10oRSl8MDtuPVM7ej1FO2Nv
bnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYoKHom
MXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97aWYoKFZ8MCkhPTApe2lmKChh
W3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVM9Y1t1
Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7Z1tsPj4yXT0rZkkoSyxjW3I+
PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtXPTB9ZWxzZXtpZigoY1tFKzEy
Pj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31pZigoYjBbY1soY1tFPj4yXXwwKSsz
Nj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJdPTA7Vz0wfX13aGlsZSgwKTtq
PShXfDApPT0wO0wzNjc2OmRve2lmKE0pe0g9MzAyMH1lbHNle2Rve2lmKChjW0wrMTI+PjJdfDAp
PT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MCkh
PS0xKXticmVha31jW2Y+PjJdPTA7SD0zMDIwO2JyZWFrIEwzNjc2fX13aGlsZSgwKTtpZighKGpe
KEx8MCk9PTApKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19
d2hpbGUoMCk7ZG97aWYoKEh8MCk9PTMwMjApe2lmKGope2JyZWFrfVg9YnwwO2NbWD4+Ml09Vztk
UChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjtYPWJ8MDtj
W1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmSShiLGQsZSl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4wO2Y9aTtpPWkrOHwwO2c9Znww
O2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9ZjtyZXR1cm4raH1qPWNbKGJ3KCl8
MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygx
NjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2s9K2tX
KGIsZyxjWzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXww
KT4+Ml09an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7cmV0dXJu
K2h9aWYoKGJ8MCk9PTM0KXtjW2U+PjJdPTR9aD1rO2k9ZjtyZXR1cm4raH1mdW5jdGlvbiBmSihi
LGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2g9aTtpPWkrNDB8MDtqPWh8MDtrPWgrMTZ8
MDtsPWgrMzJ8MDtlaihsLGQpO2Q9bHwwO2w9Y1tkPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7
Y1trPj4yXT0xNTY5NjtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTU2OTYsayw5Nil9az0o
Y1szOTI1XXwwKS0xfDA7bT1jW2wrOD4+Ml18MDtkb3tpZigoY1tsKzEyPj4yXXwwKS1tPj4yPj4+
MD5rPj4+MCl7bj1jW20rKGs8PDIpPj4yXXwwO2lmKChufDApPT0wKXticmVha31vPW47cD1jWyhj
W24+PjJdfDApKzMyPj4yXXwwO2NhW3AmMTVdKG8sOTc0NCw5Nzc2LGUpfDA7bz1jW2Q+PjJdfDA7
aWYoKGNbMzgyOF18MCkhPS0xKXtjW2o+PjJdPTE1MzEyO2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09
MDtkVygxNTMxMixqLDk2KX1wPShjWzM4MjldfDApLTF8MDtuPWNbbys4Pj4yXXwwO2Rve2lmKChj
W28rMTI+PjJdfDApLW4+PjI+Pj4wPnA+Pj4wKXtxPWNbbisocDw8Mik+PjJdfDA7aWYoKHF8MCk9
PTApe2JyZWFrfXI9cTtzPXE7YVtmXT1iMFtjWyhjW3M+PjJdfDApKzEyPj4yXSYxMjddKHIpfDA7
YVtnXT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjddKHIpfDA7YlpbY1soY1txPj4yXXwwKSsy
MD4+Ml0mMTI3XShiLHIpO3I9Y1tkPj4yXXwwO2R6KHIpfDA7aT1oO3JldHVybn19d2hpbGUoMCk7
cD1iTyg0KXwwO2txKHApO2JsKHB8MCw4MTc2LDEzNCl9fXdoaWxlKDApO2g9Yk8oNCl8MDtrcSho
KTtibChofDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZLKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0w
LEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAs
VT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrODB8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tmPj4yXT1jW20+PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+
Ml07bT1lKzMyfDA7bj1lKzQwfDA7bz1lKzQ4fDA7cD1lKzY0fDA7cT1wO3I9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+
PjM8PDM7eD1lfDA7ZkoobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYo
KGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+
Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3Zd
PTE7YVt3XT02OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9YVttXXwwO209YVtuXXwwO249
ejt6PWNbaj4+Ml18MDtMMzczNzp3aGlsZSgxKXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7aWYo
KGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJdfDApKXtFPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+
Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0xKXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hp
bGUoMCk7Rj0oRXwwKT09MDtHPWNbZj4+Ml18MDtkb3tpZigoR3wwKT09MCl7SD0zMDc5fWVsc2V7
aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtpZihGKXtJPUc7Sj0wO2JyZWFrfWVs
c2V7Sz1uO0w9RztNPTA7YnJlYWsgTDM3Mzd9fWlmKChiMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYx
MjddKEcpfDApPT0tMSl7Y1tmPj4yXT0wO0g9MzA3OTticmVha31lbHNle049KEd8MCk9PTA7aWYo
Rl5OKXtJPUc7Sj1OO2JyZWFrfWVsc2V7Sz1uO0w9RztNPU47YnJlYWsgTDM3Mzd9fX19d2hpbGUo
MCk7aWYoKEh8MCk9PTMwNzkpe0g9MDtpZihGKXtLPW47TD0wO009MTticmVha31lbHNle0k9MDtK
PTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtpZigoKGNbcj4+Ml18MCktbnwwKT09KChOP0c+Pj4x
OmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+PjE7UD1HPj4+MX1lbHNle0c9Y1tDPj4yXXwwO089
RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3FdJjEpPT0wKXtRPTEwfWVsc2V7UT0oY1tnPj4yXSYt
MiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYxKT09MCl7Uj1BfWVsc2V7Uj1jW0I+PjJdfDB9Y1ty
Pj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsxMnwwO049Y1tHPj4yXXwwO1Q9RSsxNnwwO2lmKChO
fDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSYy
NTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2LHcsUyxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtL
PVM7TD1JO009SjticmVha31OPWNbRz4+Ml18MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1Q9Y1so
Y1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10oRSl8MDtuPVM7ej1FO2NvbnRpbnVlfWVsc2V7
Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7Vj16
Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97aWYoKFZ8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXti
cmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVM9Y1t1Pj4yXXwwO2NbdD4+
Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7aFtsPj4zXT0rZkwoSyxjW3I+PjJdfDAsayk7ZnQo
byx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtXPTB9ZWxzZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNb
RSsxNj4+Ml18MCkpe1c9RTticmVha31pZigoYjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShF
KXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJdPTA7Vz0wfX13aGlsZSgwKTtqPShXfDApPT0wO0wz
Nzk4OmRve2lmKE0pe0g9MzEyMX1lbHNle2Rve2lmKChjW0wrMTI+PjJdfDApPT0oY1tMKzE2Pj4y
XXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MCkhPS0xKXticmVha31j
W2Y+PjJdPTA7SD0zMTIxO2JyZWFrIEwzNzk4fX13aGlsZSgwKTtpZighKGpeKEx8MCk9PTApKXti
cmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97
aWYoKEh8MCk9PTMxMjEpe2lmKGope2JyZWFrfVg9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtp
PWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjtYPWJ8MDtjW1g+PjJdPVc7ZFAo
cCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmTChiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4wO2Y9aTtpPWkrOHwwO2c9ZnwwO2lmKChifDApPT0o
ZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9ZjtyZXR1cm4raH1qPWNbKGJ3KCl8MCk+PjJdfDA7Y1so
YncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTAp
e2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2s9K2tXKGIsZyxjWzI5NThd
fDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09an1pZigo
Y1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7cmV0dXJuK2h9aWYoKGJ8MCkh
PTM0KXtoPWs7aT1mO3JldHVybitofWNbZT4+Ml09NDtoPWs7aT1mO3JldHVybitofWZ1bmN0aW9u
IGZNKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3wwO2w9
bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09
MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrODB8
MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZztnPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzMyfDA7bj1lKzQwfDA7bz1lKzQ4
fDA7cD1lKzY0fDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7
aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZkoobyxqLHgsbSxuKTtr
JChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9
eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7
eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWd8MDtnPXB8
MDtDPXArNHwwO0Q9YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+Ml18MDtMNjp3aGlsZSgxKXtk
b3tpZigoenwwKT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJdfDAp
KXtFPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0xKXtF
PXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXwwKT09MDtHPWNbZj4+Ml18MDtk
b3tpZigoR3wwKT09MCl7SD0xN31lbHNle2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4yXXww
KSl7aWYoRil7ST1HO0o9MDticmVha31lbHNle0s9bjtMPUc7TT0wO2JyZWFrIEw2fX1pZigoYjBb
Y1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2NbZj4+Ml09MDtIPTE3O2JyZWFr
fWVsc2V7Tj0oR3wwKT09MDtpZihGXk4pe0k9RztKPU47YnJlYWt9ZWxzZXtLPW47TD1HO009Tjti
cmVhayBMNn19fX13aGlsZSgwKTtpZigoSHwwKT09MTcpe0g9MDtpZihGKXtLPW47TD0wO009MTti
cmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtpZigoKGNbcj4+Ml18MCkt
bnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+PjE7UD1HPj4+MX1lbHNl
e0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3FdJjEpPT0wKXtRPTEwfWVs
c2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYxKT09MCl7Uj1BfWVsc2V7
Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsxMnwwO049Y1tHPj4yXXww
O1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1soY1tFPj4yXXwwKSszNj4+
Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2LHcsUyxyLEQsbSxvLHks
dCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+Ml18MDtpZigoTnwwKT09KGNb
VD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10oRSl8MDtuPVM7ej1F
O2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYo
KHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97aWYoKFZ8MCkhPTApe2lm
KChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVM9
Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7aFtsPj4zXT0rZk4oSyxj
W3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtXPTB9ZWxzZXtpZigoY1tF
KzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31pZigoYjBbY1soY1tFPj4yXXww
KSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJdPTA7Vz0wfX13aGlsZSgw
KTtqPShXfDApPT0wO0w2Nzpkb3tpZihNKXtIPTU5fWVsc2V7ZG97aWYoKGNbTCsxMj4+Ml18MCk9
PShjW0wrMTY+PjJdfDApKXtpZigoYjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3XShMKXwwKSE9
LTEpe2JyZWFrfWNbZj4+Ml09MDtIPTU5O2JyZWFrIEw2N319d2hpbGUoMCk7aWYoIShqXihMfDAp
PT0wKSl7YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxl
KDApO2Rve2lmKChIfDApPT01OSl7aWYoail7YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQ
KG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwyO1g9YnwwO2NbWD4+Ml09
VztkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZOKGIsZCxlKXtiPWJ8MDtkPWR8MDtl
PWV8MDt2YXIgZj0wLGc9MCxoPTAuMCxqPTAsaz0wLjA7Zj1pO2k9aSs4fDA7Zz1mfDA7aWYoKGJ8
MCk9PShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVybitofWo9Y1soYncoKXwwKT4+Ml18
MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXww
KT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7az0ra1coYixnLGNb
Mjk1OF18MCk7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1q
fWlmKChjW2c+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9ZjtyZXR1cm4raH1pZigo
YnwwKSE9MzQpe2g9aztpPWY7cmV0dXJuK2h9Y1tlPj4yXT00O2g9aztpPWY7cmV0dXJuK2h9ZnVu
Y3Rpb24gZk8oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZlAoYSl7YT1h
fDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZlEoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxU
PTAsVT0wLFY9MDtlPWk7aT1pKzY0fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+
Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9
ZXwwO209ZSsxNnwwO249ZSs0OHwwO289aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3A9aTtpPWkrMTJ8
MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztyPWk7aT1pKzE2MHwwO3M9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2skKG58MCwwLDEyKTt1
PXA7ZWoobyxoKTtoPW98MDtvPWNbaD4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09
MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18
MCktMXwwO3Y9Y1tvKzg+PjJdfDA7ZG97aWYoKGNbbysxMj4+Ml18MCktdj4+Mj4+PjA+bD4+PjAp
e3c9Y1t2KyhsPDwyKT4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9eD13O3k9bXwwO3o9Y1soY1t3
Pj4yXXwwKSszMj4+Ml18MDtjYVt6JjE1XSh4LDk3NDQsOTc3MCx5KXwwO3g9Y1toPj4yXXwwO2R6
KHgpfDA7ayQodXwwLDAsMTIpO3g9cDtkUihwLDEwLDApO2lmKChhW3VdJjEpPT0wKXt6PXgrMXww
O0E9ejtCPXo7Qz1wKzh8MH1lbHNle3o9cCs4fDA7QT1jW3o+PjJdfDA7Qj14KzF8MDtDPXp9Y1tx
Pj4yXT1BO3o9cnwwO2Nbcz4+Ml09ejtjW3Q+PjJdPTA7eD1mfDA7dz1nfDA7RD1wfDA7RT1wKzR8
MDtGPUE7Rz1jW3g+PjJdfDA7TDExNzp3aGlsZSgxKXtkb3tpZigoR3wwKT09MCl7SD0wfWVsc2V7
aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtIPUc7YnJlYWt9aWYoKGIwW2NbKGNb
Rz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCkhPS0xKXtIPUc7YnJlYWt9Y1t4Pj4yXT0wO0g9MH19
d2hpbGUoMCk7ST0oSHwwKT09MDtKPWNbdz4+Ml18MDtkb3tpZigoSnwwKT09MCl7Sz0xMTB9ZWxz
ZXtpZigoY1tKKzEyPj4yXXwwKSE9KGNbSisxNj4+Ml18MCkpe2lmKEkpe2JyZWFrfWVsc2V7TD1G
O2JyZWFrIEwxMTd9fWlmKChiMFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYxMjddKEopfDApPT0tMSl7
Y1t3Pj4yXT0wO0s9MTEwO2JyZWFrfWVsc2V7aWYoSV4oSnwwKT09MCl7YnJlYWt9ZWxzZXtMPUY7
YnJlYWsgTDExN319fX13aGlsZSgwKTtpZigoS3wwKT09MTEwKXtLPTA7aWYoSSl7TD1GO2JyZWFr
fX1KPWRbdV18MDtNPShKJjF8MCk9PTA7aWYoKChjW3E+PjJdfDApLUZ8MCk9PSgoTT9KPj4+MTpj
W0U+PjJdfDApfDApKXtpZihNKXtOPUo+Pj4xO089Sj4+PjF9ZWxzZXtKPWNbRT4+Ml18MDtOPUo7
Tz1KfWRSKHAsTjw8MSwwKTtpZigoYVt1XSYxKT09MCl7UD0xMH1lbHNle1A9KGNbRD4+Ml0mLTIp
LTF8MH1kUihwLFAsMCk7aWYoKGFbdV0mMSk9PTApe1E9Qn1lbHNle1E9Y1tDPj4yXXwwfWNbcT4+
Ml09UStPO1I9UX1lbHNle1I9Rn1KPUgrMTJ8MDtNPWNbSj4+Ml18MDtTPUgrMTZ8MDtpZigoTXww
KT09KGNbUz4+Ml18MCkpe1Q9KGIwW2NbKGNbSD4+Ml18MCkrMzY+PjJdJjEyN10oSCl8MCkmMjU1
fWVsc2V7VD1hW01dfDB9aWYoKGZzKFQsMTYsUixxLHQsMCxuLHoscyx5KXwwKSE9MCl7TD1SO2Jy
ZWFrfU09Y1tKPj4yXXwwO2lmKChNfDApPT0oY1tTPj4yXXwwKSl7Uz1jWyhjW0g+PjJdfDApKzQw
Pj4yXXwwO2IwW1MmMTI3XShIKXwwO0Y9UjtHPUg7Y29udGludWV9ZWxzZXtjW0o+PjJdPU0rMTtG
PVI7Rz1IO2NvbnRpbnVlfX1hW0wrM3wwXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJj
KDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Rz1m
UihMLGNbMjk1OF18MCwxMzIwLChGPWksaT1pKzh8MCxjW0Y+PjJdPWssRil8MCl8MDtpPUY7aWYo
KEd8MCkhPTEpe2Nbaj4+Ml09NH1HPWNbeD4+Ml18MDtkb3tpZigoR3wwKT09MCl7VT0wfWVsc2V7
aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtVPUc7YnJlYWt9aWYoKGIwW2NbKGNb
Rz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCkhPS0xKXtVPUc7YnJlYWt9Y1t4Pj4yXT0wO1U9MH19
d2hpbGUoMCk7eD0oVXwwKT09MDtHPWNbdz4+Ml18MDtkb3tpZigoR3wwKT09MCl7Sz0xNTV9ZWxz
ZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe2lmKCF4KXticmVha31WPWJ8MDtj
W1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1lO3JldHVybn1pZigoYjBbY1soY1tHPj4yXXwwKSszNj4+
Ml0mMTI3XShHKXwwKT09LTEpe2Nbdz4+Ml09MDtLPTE1NTticmVha31pZighKHheKEd8MCk9PTAp
KXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7
ZG97aWYoKEt8MCk9PTE1NSl7aWYoeCl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKHApO2RQKG4p
O2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1Y9YnwwO2NbVj4+Ml09VTtk
UChwKTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgx
NzYsMTM0KX1mdW5jdGlvbiBmUihhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIg
Zj0wLGc9MCxoPTA7Zj1pO2k9aSsxNnwwO2c9ZnwwO2g9ZztjW2g+PjJdPWU7Y1toKzQ+PjJdPTA7
aD1iQihifDApfDA7Yj1hWShhfDAsZHwwLGd8MCl8MDtpZigoaHwwKT09MCl7aT1mO3JldHVybiBi
fDB9YkIoaHwwKXwwO2k9ZjtyZXR1cm4gYnwwfWZ1bmN0aW9uIGZTKGIsZSxmLGcsaCxqLGspe2I9
YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0w
LFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFj
PTAsYWQ9MDtsPWk7aT1pKzEwNHwwO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbbT4+Ml07bT0oZy1mfDApLzEyfDA7bj1sfDA7ZG97aWYobT4+PjA+MTAwKXtvPWtKKG0pfDA7
aWYoKG98MCkhPTApe3A9bztxPW87YnJlYWt9a1goKTtwPTA7cT0wfWVsc2V7cD1uO3E9MH19d2hp
bGUoMCk7bj0oZnwwKT09KGd8MCk7aWYobil7cj1tO3M9MH1lbHNle289bTttPTA7dD1wO3U9Zjt3
aGlsZSgxKXt2PWRbdV18MDtpZigodiYxfDApPT0wKXt3PXY+Pj4xfWVsc2V7dz1jW3UrND4+Ml18
MH1pZigod3wwKT09MCl7YVt0XT0yO3g9bSsxfDA7eT1vLTF8MH1lbHNle2FbdF09MTt4PW07eT1v
fXY9dSsxMnwwO2lmKCh2fDApPT0oZ3wwKSl7cj15O3M9eDticmVha31lbHNle289eTttPXg7dD10
KzF8MDt1PXZ9fX11PWJ8MDtiPWV8MDtlPWg7dD0wO3g9cztzPXI7d2hpbGUoMSl7cj1jW3U+PjJd
fDA7ZG97aWYoKHJ8MCk9PTApe3o9MH1lbHNle209Y1tyKzEyPj4yXXwwO2lmKChtfDApPT0oY1ty
KzE2Pj4yXXwwKSl7QT1iMFtjWyhjW3I+PjJdfDApKzM2Pj4yXSYxMjddKHIpfDB9ZWxzZXtBPWNb
bT4+Ml18MH1pZigoQXwwKT09LTEpe2NbdT4+Ml09MDt6PTA7YnJlYWt9ZWxzZXt6PWNbdT4+Ml18
MDticmVha319fXdoaWxlKDApO3I9KHp8MCk9PTA7bT1jW2I+PjJdfDA7aWYoKG18MCk9PTApe0I9
ejtDPTB9ZWxzZXt5PWNbbSsxMj4+Ml18MDtpZigoeXwwKT09KGNbbSsxNj4+Ml18MCkpe0Q9YjBb
Y1soY1ttPj4yXXwwKSszNj4+Ml0mMTI3XShtKXwwfWVsc2V7RD1jW3k+PjJdfDB9aWYoKER8MCk9
PS0xKXtjW2I+PjJdPTA7RT0wfWVsc2V7RT1tfUI9Y1t1Pj4yXXwwO0M9RX1GPShDfDApPT0wO2lm
KCEoKHJeRikmKHN8MCkhPTApKXticmVha31yPWNbQisxMj4+Ml18MDtpZigocnwwKT09KGNbQisx
Nj4+Ml18MCkpe0c9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7Rz1jW3I+
PjJdfDB9aWYoayl7SD1HfWVsc2V7SD1iX1tjWyhjW2U+PjJdfDApKzI4Pj4yXSYzMV0oaCxHKXww
fWRve2lmKG4pe0k9eDtKPXN9ZWxzZXtyPXQrMXwwO0wyNDk6ZG97aWYoayl7bT1zO3k9eDtvPXA7
dz0wO3Y9Zjt3aGlsZSgxKXtkb3tpZigoYVtvXXwwKT09MSl7Sz12O2lmKChhW0tdJjEpPT0wKXtM
PXYrNHwwfWVsc2V7TD1jW3YrOD4+Ml18MH1pZigoSHwwKSE9KGNbTCsodDw8Mik+PjJdfDApKXth
W29dPTA7TT13O049eTtPPW0tMXwwO2JyZWFrfVA9ZFtLXXwwO2lmKChQJjF8MCk9PTApe1E9UD4+
PjF9ZWxzZXtRPWNbdis0Pj4yXXwwfWlmKChRfDApIT0ocnwwKSl7TT0xO049eTtPPW07YnJlYWt9
YVtvXT0yO009MTtOPXkrMXwwO089bS0xfDB9ZWxzZXtNPXc7Tj15O089bX19d2hpbGUoMCk7UD12
KzEyfDA7aWYoKFB8MCk9PShnfDApKXtSPU87Uz1OO1Q9TTticmVhayBMMjQ5fW09Tzt5PU47bz1v
KzF8MDt3PU07dj1QfX1lbHNle3Y9czt3PXg7bz1wO3k9MDttPWY7d2hpbGUoMSl7ZG97aWYoKGFb
b118MCk9PTEpe1A9bTtpZigoYVtQXSYxKT09MCl7VT1tKzR8MH1lbHNle1U9Y1ttKzg+PjJdfDB9
aWYoKEh8MCkhPShiX1tjWyhjW2U+PjJdfDApKzI4Pj4yXSYzMV0oaCxjW1UrKHQ8PDIpPj4yXXww
KXwwKSl7YVtvXT0wO1Y9eTtXPXc7WD12LTF8MDticmVha31LPWRbUF18MDtpZigoSyYxfDApPT0w
KXtZPUs+Pj4xfWVsc2V7WT1jW20rND4+Ml18MH1pZigoWXwwKSE9KHJ8MCkpe1Y9MTtXPXc7WD12
O2JyZWFrfWFbb109MjtWPTE7Vz13KzF8MDtYPXYtMXwwfWVsc2V7Vj15O1c9dztYPXZ9fXdoaWxl
KDApO0s9bSsxMnwwO2lmKChLfDApPT0oZ3wwKSl7Uj1YO1M9VztUPVY7YnJlYWsgTDI0OX12PVg7
dz1XO289bysxfDA7eT1WO209S319fXdoaWxlKDApO2lmKCFUKXtJPVM7Sj1SO2JyZWFrfXI9Y1t1
Pj4yXXwwO209cisxMnwwO3k9Y1ttPj4yXXwwO2lmKCh5fDApPT0oY1tyKzE2Pj4yXXwwKSl7bz1j
WyhjW3I+PjJdfDApKzQwPj4yXXwwO2IwW28mMTI3XShyKXwwfWVsc2V7Y1ttPj4yXT15KzR9aWYo
KFMrUnwwKT4+PjA8MnxuKXtJPVM7Sj1SO2JyZWFrfXk9dCsxfDA7bT1TO3I9cDtvPWY7d2hpbGUo
MSl7ZG97aWYoKGFbcl18MCk9PTIpe3c9ZFtvXXwwO2lmKCh3JjF8MCk9PTApe1o9dz4+PjF9ZWxz
ZXtaPWNbbys0Pj4yXXwwfWlmKChafDApPT0oeXwwKSl7Xz1tO2JyZWFrfWFbcl09MDtfPW0tMXww
fWVsc2V7Xz1tfX13aGlsZSgwKTt3PW8rMTJ8MDtpZigod3wwKT09KGd8MCkpe0k9XztKPVI7YnJl
YWt9ZWxzZXttPV87cj1yKzF8MDtvPXd9fX19d2hpbGUoMCk7dD10KzF8MDt4PUk7cz1KfWRve2lm
KChCfDApPT0wKXskPTF9ZWxzZXtKPWNbQisxMj4+Ml18MDtpZigoSnwwKT09KGNbQisxNj4+Ml18
MCkpe2FhPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle2FhPWNbSj4+Ml18
MH1pZigoYWF8MCk9PS0xKXtjW3U+PjJdPTA7JD0xO2JyZWFrfWVsc2V7JD0oY1t1Pj4yXXwwKT09
MDticmVha319fXdoaWxlKDApO2Rve2lmKEYpe2FiPTI2NH1lbHNle3U9Y1tDKzEyPj4yXXwwO2lm
KCh1fDApPT0oY1tDKzE2Pj4yXXwwKSl7YWM9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShD
KXwwfWVsc2V7YWM9Y1t1Pj4yXXwwfWlmKChhY3wwKT09LTEpe2NbYj4+Ml09MDthYj0yNjQ7YnJl
YWt9ZWxzZXtpZigkXihDfDApPT0wKXticmVha31lbHNle2FiPTI2NjticmVha319fX13aGlsZSgw
KTtpZigoYWJ8MCk9PTI2NCl7aWYoJCl7YWI9MjY2fX1pZigoYWJ8MCk9PTI2Nil7Y1tqPj4yXT1j
W2o+PjJdfDJ9TDMzMDpkb3tpZihuKXthYj0yNzF9ZWxzZXskPWY7Qz1wO3doaWxlKDEpe2lmKChh
W0NdfDApPT0yKXthZD0kO2JyZWFrIEwzMzB9Yj0kKzEyfDA7aWYoKGJ8MCk9PShnfDApKXthYj0y
NzE7YnJlYWsgTDMzMH0kPWI7Qz1DKzF8MH19fXdoaWxlKDApO2lmKChhYnwwKT09MjcxKXtjW2o+
PjJdPWNbaj4+Ml18NDthZD1nfWlmKChxfDApPT0wKXtpPWw7cmV0dXJuIGFkfDB9a0socSk7aT1s
O3JldHVybiBhZHwwfWZ1bmN0aW9uIGZUKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2s9aTtpPWkrMTEyfDA7bD1l
O2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209aysxNnwwO249ayszMnwwO289ays0
MHwwO3A9ays0OHwwO3E9ays1NnwwO3I9ays2NHwwO3M9ays3MnwwO3Q9ays4MHwwO3U9aysxMDR8
MDtpZigoY1tnKzQ+PjJdJjF8MCk9PTApe2Nbbj4+Ml09LTE7dj1jWyhjW2Q+PjJdfDApKzE2Pj4y
XXwwO3c9ZXwwO2NbcD4+Ml09Y1t3Pj4yXTtjW3E+PjJdPWNbZj4+Ml07YlhbdiYxMjddKG8sZCxw
LHEsZyxoLG4pO3E9Y1tvPj4yXXwwO2Nbdz4+Ml09cTtzd2l0Y2goY1tuPj4yXXwwKXtjYXNlIDE6
e2Fbal09MTticmVha307Y2FzZSAwOnthW2pdPTA7YnJlYWt9O2RlZmF1bHQ6e2Fbal09MTtjW2g+
PjJdPTR9fWNbYj4+Ml09cTtpPWs7cmV0dXJufWVqKHIsZyk7cT1yfDA7cj1jW3E+PjJdfDA7aWYo
KGNbMzkyMl18MCkhPS0xKXtjW20+PjJdPTE1Njg4O2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtk
VygxNTY4OCxtLDk2KX1tPShjWzM5MjNdfDApLTF8MDtuPWNbcis4Pj4yXXwwO2Rve2lmKChjW3Ir
MTI+PjJdfDApLW4+PjI+Pj4wPm0+Pj4wKXt3PWNbbisobTw8Mik+PjJdfDA7aWYoKHd8MCk9PTAp
e2JyZWFrfW89dzt3PWNbcT4+Ml18MDtkeih3KXwwO2VqKHMsZyk7dz1zfDA7cD1jW3c+PjJdfDA7
aWYoKGNbMzgyNl18MCkhPS0xKXtjW2w+PjJdPTE1MzA0O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09
MDtkVygxNTMwNCxsLDk2KX1kPShjWzM4MjddfDApLTF8MDt2PWNbcCs4Pj4yXXwwO2Rve2lmKChj
W3ArMTI+PjJdfDApLXY+PjI+Pj4wPmQ+Pj4wKXt4PWNbdisoZDw8Mik+PjJdfDA7aWYoKHh8MCk9
PTApe2JyZWFrfXk9eDt6PWNbdz4+Ml18MDtkeih6KXwwO3o9dHwwO0E9eDtiWltjWyhjW0E+PjJd
fDApKzI0Pj4yXSYxMjddKHoseSk7YlpbY1soY1tBPj4yXXwwKSsyOD4+Ml0mMTI3XSh0KzEyfDAs
eSk7Y1t1Pj4yXT1jW2Y+PjJdO2Fbal09KGZTKGUsdSx6LHQrMjR8MCxvLGgsMSl8MCk9PSh6fDAp
fDA7Y1tiPj4yXT1jW2U+PjJdO2VlKHQrMTJ8MCk7ZWUodHwwKTtpPWs7cmV0dXJufX13aGlsZSgw
KTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7az1iTyg0KXwwO2tx
KGspO2JsKGt8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZlUoYixlLGYsZyxoLGksaixrLGwsbSl7Yj1i
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7
dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0wO249Y1tnPj4yXXwwO289KG58MCk9PShmfDApO2Rv
e2lmKG8pe3A9KGNbbSs5Nj4+Ml18MCk9PShifDApO2lmKCFwKXtpZigoY1ttKzEwMD4+Ml18MCkh
PShifDApKXticmVha319Y1tnPj4yXT1mKzE7YVtmXT1wPzQzOjQ1O2NbaD4+Ml09MDtxPTA7cmV0
dXJuIHF8MH19d2hpbGUoMCk7cD1kW2pdfDA7aWYoKHAmMXwwKT09MCl7cj1wPj4+MX1lbHNle3I9
Y1tqKzQ+PjJdfDB9aWYoKHJ8MCkhPTAmKGJ8MCk9PShpfDApKXtpPWNbbD4+Ml18MDtpZigoaS1r
fDApPj0xNjApe3E9MDtyZXR1cm4gcXwwfWs9Y1toPj4yXXwwO2NbbD4+Ml09aSs0O2NbaT4+Ml09
aztjW2g+PjJdPTA7cT0wO3JldHVybiBxfDB9az1tKzEwNHwwO2k9bTt3aGlsZSgxKXtpZigoaXww
KT09KGt8MCkpe3M9azticmVha31pZigoY1tpPj4yXXwwKT09KGJ8MCkpe3M9aTticmVha31lbHNl
e2k9aSs0fDB9fWk9cy1tfDA7bT1pPj4yO2lmKChpfDApPjkyKXtxPS0xO3JldHVybiBxfDB9TDM5
ODpkb3tzd2l0Y2goZXwwKXtjYXNlIDg6Y2FzZSAxMDp7aWYoKG18MCk8KGV8MCkpe2JyZWFrIEwz
OTh9ZWxzZXtxPS0xfXJldHVybiBxfDB9O2Nhc2UgMTY6e2lmKChpfDApPDg4KXticmVhayBMMzk4
fWlmKG8pe3E9LTE7cmV0dXJuIHF8MH1pZigobi1mfDApPj0zKXtxPS0xO3JldHVybiBxfDB9aWYo
KGFbbi0xfDBdfDApIT00OCl7cT0tMTtyZXR1cm4gcXwwfWNbaD4+Ml09MDtzPWFbOTc0NCttfDBd
fDA7Yj1jW2c+PjJdfDA7Y1tnPj4yXT1iKzE7YVtiXT1zO3E9MDtyZXR1cm4gcXwwfTtkZWZhdWx0
Ont9fX13aGlsZSgwKTtmPWFbOTc0NCttfDBdfDA7Y1tnPj4yXT1uKzE7YVtuXT1mO2NbaD4+Ml09
KGNbaD4+Ml18MCkrMTtxPTA7cmV0dXJuIHF8MH1mdW5jdGlvbiBmVihiLGUsZixnLGgsaixrKXti
PWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9
MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wO2U9aTtpPWkrMTQ0fDA7bD1mO2Y9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEyOHwwO289bjtw
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA4
Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtkZWZh
dWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7
aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNb
dj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDto
PWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+Ml18MDtMNDI2
OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18MDtpZigoQ3ww
KT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwfWVs
c2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hp
bGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj0zNjN9ZWxzZXtH
PWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1soY1tDPj4yXXww
KSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0xKXtjW2Y+PjJd
PTA7Rj0zNjM7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9RzticmVha31lbHNl
e0s9bDtMPUM7TT1HO2JyZWFrIEw0MjZ9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTM2Myl7Rj0wO2lm
KEUpe0s9bDtMPTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0oQyYxfDApPT0w
O2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoRyl7Tj1D
Pj4+MTtPPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tj1DO089Q31kUihuLE48PDEsMCk7aWYoKGFb
b10mMSk9PTApe1A9MTB9ZWxzZXtQPShjW2c+PjJdJi0yKS0xfDB9ZFIobixQLDApO2lmKChhW29d
JjEpPT0wKXtRPXh9ZWxzZXtRPWNbeT4+Ml18MH1jW3A+PjJdPVErTztSPVF9ZWxzZXtSPWx9Qz1C
KzEyfDA7Rz1jW0M+PjJdfDA7Uz1CKzE2fDA7aWYoKEd8MCk9PShjW1M+PjJdfDApKXtUPWIwW2Nb
KGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1Q9Y1tHPj4yXXwwfWlmKChmVShULHQs
UixwLHMsQSxtLHYscix1KXwwKSE9MCl7Sz1SO0w9STtNPUo7YnJlYWt9Rz1jW0M+PjJdfDA7aWYo
KEd8MCk9PShjW1M+PjJdfDApKXtTPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUyYxMjddKEIp
fDA7bD1SO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Ujt3PUI7Y29udGludWV9fXc9
ZFttXXwwO2lmKCh3JjF8MCk9PTApe1U9dz4+PjF9ZWxzZXtVPWNbbSs0Pj4yXXwwfWRve2lmKChV
fDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVI9Y1tzPj4yXXwwO2Nb
cj4+Ml09dys0O2Nbdz4+Ml09Un19d2hpbGUoMCk7Y1trPj4yXT1mdShLLGNbcD4+Ml18MCxqLHQp
fDA7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihFKXtWPTB9ZWxzZXtyPWNbQisxMj4+Ml18MDtp
ZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1c9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShC
KXwwfWVsc2V7Vz1jW3I+PjJdfDB9aWYoKFd8MCkhPS0xKXtWPUI7YnJlYWt9Y1toPj4yXT0wO1Y9
MH19d2hpbGUoMCk7aD0oVnwwKT09MDtkb3tpZihNKXtGPTQwNX1lbHNle0I9Y1tMKzEyPj4yXXww
O2lmKChCfDApPT0oY1tMKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYxMjdd
KEwpfDB9ZWxzZXtYPWNbQj4+Ml18MH1pZigoWHwwKT09LTEpe2NbZj4+Ml09MDtGPTQwNTticmVh
a31pZighKGheKEx8MCk9PTApKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1l
O3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTQwNSl7aWYoaCl7YnJlYWt9WT1ifDA7Y1tZ
Pj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwy
O1k9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZXKGEsYixk
LGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxt
PTAsbj0wLG89MCxwPTA7Zj1pO2k9aSs0MHwwO2c9ZnwwO2g9ZisxNnwwO2o9ZiszMnwwO2VqKGos
Yik7Yj1qfDA7aj1jW2I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2g+PjJdPTE1Njg4O2Nb
aCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTY4OCxoLDk2KX1oPShjWzM5MjNdfDApLTF8MDtr
PWNbais4Pj4yXXwwO2Rve2lmKChjW2orMTI+PjJdfDApLWs+PjI+Pj4wPmg+Pj4wKXtsPWNbayso
aDw8Mik+PjJdfDA7aWYoKGx8MCk9PTApe2JyZWFrfW09bDtuPWNbKGNbbD4+Ml18MCkrNDg+PjJd
fDA7Y2FbbiYxNV0obSw5NzQ0LDk3NzAsZCl8MDttPWNbYj4+Ml18MDtpZigoY1szODI2XXwwKSE9
LTEpe2NbZz4+Ml09MTUzMDQ7Y1tnKzQ+PjJdPTEyO2NbZys4Pj4yXT0wO2RXKDE1MzA0LGcsOTYp
fW49KGNbMzgyN118MCktMXwwO2w9Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktbD4+
Mj4+PjA+bj4+PjApe289Y1tsKyhuPDwyKT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1vO2Nb
ZT4+Ml09YjBbY1soY1tvPj4yXXwwKSsxNj4+Ml0mMTI3XShwKXwwO2JaW2NbKGNbbz4+Ml18MCkr
MjA+PjJdJjEyN10oYSxwKTtwPWNbYj4+Ml18MDtkeihwKXwwO2k9ZjtyZXR1cm59fXdoaWxlKDAp
O249Yk8oNCl8MDtrcShuKTtibChufDAsODE3NiwxMzQpfX13aGlsZSgwKTtmPWJPKDQpfDA7a3Eo
Zik7YmwoZnwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmWChiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9
MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0w
LFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2U9aTtpPWkrMTQ0fDA7bD1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tn
Pj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEyOHwwO289bjtwPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2O2Jy
ZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtkZWZhdWx0Ont0PTEw
fX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10m
MSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4
PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8
MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+Ml18MDtMNTM1OndoaWxlKDEp
e2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18MDtpZigoQ3wwKT09KGNbdysx
Nj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwfWVsc2V7RD1jW0M+
PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7RT0o
QnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj00NTB9ZWxzZXtHPWNbQysxMj4+
Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0m
MTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj00NTA7
YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9RzticmVha31lbHNle0w9bDtNPUM7
Tj1HO2JyZWFrIEw1MzV9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTQ1MCl7Rj0wO2lmKEUpe0w9bDtN
PTA7Tj0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0oQyYxfDApPT0wO2lmKCgoY1tw
Pj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoRyl7Tz1DPj4+MTtQPUM+
Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tz1DO1A9Q31kUihuLE88PDEsMCk7aWYoKGFbb10mMSk9PTAp
e1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIobixRLDApO2lmKChhW29dJjEpPT0wKXtS
PXh9ZWxzZXtSPWNbeT4+Ml18MH1jW3A+PjJdPVIrUDtTPVJ9ZWxzZXtTPWx9Qz1CKzEyfDA7Rz1j
W0M+PjJdfDA7VD1CKzE2fDA7aWYoKEd8MCk9PShjW1Q+PjJdfDApKXtVPWIwW2NbKGNbQj4+Ml18
MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1U9Y1tHPj4yXXwwfWlmKChmVShVLHQsUyxwLHMsQSxt
LHYscix1KXwwKSE9MCl7TD1TO009STtOPUo7YnJlYWt9Rz1jW0M+PjJdfDA7aWYoKEd8MCk9PShj
W1Q+PjJdfDApKXtUPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbVCYxMjddKEIpfDA7bD1TO3c9
Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Uzt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lm
KCh3JjF8MCk9PTApe1Y9dz4+PjF9ZWxzZXtWPWNbbSs0Pj4yXXwwfWRve2lmKChWfDApIT0wKXt3
PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVM9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0
O2Nbdz4+Ml09U319d2hpbGUoMCk7cz1mdyhMLGNbcD4+Ml18MCxqLHQpfDA7Y1trPj4yXT1zO2Nb
ays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7Vz0wfWVsc2V7cj1jW0IrMTI+
PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtYPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJd
JjEyN10oQil8MH1lbHNle1g9Y1tyPj4yXXwwfWlmKChYfDApIT0tMSl7Vz1CO2JyZWFrfWNbaD4+
Ml09MDtXPTB9fXdoaWxlKDApO2g9KFd8MCk9PTA7ZG97aWYoTil7Rj00OTJ9ZWxzZXtCPWNbTSsx
Mj4+Ml18MDtpZigoQnwwKT09KGNbTSsxNj4+Ml18MCkpe1k9YjBbY1soY1tNPj4yXXwwKSszNj4+
Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0I+PjJdfDB9aWYoKFl8MCk9PS0xKXtjW2Y+PjJdPTA7Rj00
OTI7YnJlYWt9aWYoIShoXihNfDApPT0wKSl7YnJlYWt9Wj1ifDA7Y1taPj4yXT1XO2RQKG4pO2RQ
KG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT00OTIpe2lmKGgpe2JyZWFrfVo9
YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNb
aj4+Ml18MjtaPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBm
WShlLGYsZyxoLGosayxsKXtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8
MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAs
Tj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2Y9aTtp
PWkrMTQ0fDA7bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1ttPj4yXTttPWg7
aD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1toPj4yXT1jW20+PjJdO209ZisxMDR8MDtuPWYrMTEy
fDA7bz1mKzEyOHwwO3A9bztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztyPWk7aT1pKzE2MHwwO3M9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2or
ND4+Ml0mNzR8MCl7Y2FzZSA4Ont1PTE2O2JyZWFrfTtjYXNlIDY0Ont1PTg7YnJlYWt9O2Nhc2Ug
MDp7dT0wO2JyZWFrfTtkZWZhdWx0Ont1PTEwfX12PWZ8MDtmVyhuLGosdixtKTtrJChwfDAsMCwx
Mik7aj1vO2RSKG8sMTAsMCk7aWYoKGFbcF0mMSk9PTApe3c9aisxfDA7eD13O3k9dzt6PW8rOHww
fWVsc2V7dz1vKzh8MDt4PWNbdz4+Ml18MDt5PWorMXwwO3o9d31jW3E+PjJdPXg7dz1yfDA7Y1tz
Pj4yXT13O2NbdD4+Ml09MDtqPWd8MDtnPWh8MDtoPW98MDtBPW8rNHwwO0I9Y1ttPj4yXXwwO209
eDt4PWNbaj4+Ml18MDtMNjI0OndoaWxlKDEpe2Rve2lmKCh4fDApPT0wKXtDPTB9ZWxzZXtEPWNb
eCsxMj4+Ml18MDtpZigoRHwwKT09KGNbeCsxNj4+Ml18MCkpe0U9YjBbY1soY1t4Pj4yXXwwKSsz
Nj4+Ml0mMTI3XSh4KXwwfWVsc2V7RT1jW0Q+PjJdfDB9aWYoKEV8MCkhPS0xKXtDPXg7YnJlYWt9
Y1tqPj4yXT0wO0M9MH19d2hpbGUoMCk7Rj0oQ3wwKT09MDtEPWNbZz4+Ml18MDtkb3tpZigoRHww
KT09MCl7Rz01MjB9ZWxzZXtIPWNbRCsxMj4+Ml18MDtpZigoSHwwKT09KGNbRCsxNj4+Ml18MCkp
e0k9YjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwfWVsc2V7ST1jW0g+PjJdfDB9aWYo
KEl8MCk9PS0xKXtjW2c+PjJdPTA7Rz01MjA7YnJlYWt9ZWxzZXtIPShEfDApPT0wO2lmKEZeSCl7
Sj1EO0s9SDticmVha31lbHNle0w9bTtNPUQ7Tj1IO2JyZWFrIEw2MjR9fX19d2hpbGUoMCk7aWYo
KEd8MCk9PTUyMCl7Rz0wO2lmKEYpe0w9bTtNPTA7Tj0xO2JyZWFrfWVsc2V7Sj0wO0s9MX19RD1k
W3BdfDA7SD0oRCYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1tfDApPT0oKEg/RD4+PjE6Y1tBPj4y
XXwwKXwwKSl7aWYoSCl7Tz1EPj4+MTtQPUQ+Pj4xfWVsc2V7RD1jW0E+PjJdfDA7Tz1EO1A9RH1k
UihvLE88PDEsMCk7aWYoKGFbcF0mMSk9PTApe1E9MTB9ZWxzZXtRPShjW2g+PjJdJi0yKS0xfDB9
ZFIobyxRLDApO2lmKChhW3BdJjEpPT0wKXtSPXl9ZWxzZXtSPWNbej4+Ml18MH1jW3E+PjJdPVIr
UDtTPVJ9ZWxzZXtTPW19RD1DKzEyfDA7SD1jW0Q+PjJdfDA7VD1DKzE2fDA7aWYoKEh8MCk9PShj
W1Q+PjJdfDApKXtVPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle1U9Y1tI
Pj4yXXwwfWlmKChmVShVLHUsUyxxLHQsQixuLHcscyx2KXwwKSE9MCl7TD1TO009SjtOPUs7YnJl
YWt9SD1jW0Q+PjJdfDA7aWYoKEh8MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbQz4+Ml18MCkrNDA+
PjJdfDA7YjBbVCYxMjddKEMpfDA7bT1TO3g9Qztjb250aW51ZX1lbHNle2NbRD4+Ml09SCs0O209
Uzt4PUM7Y29udGludWV9fXg9ZFtuXXwwO2lmKCh4JjF8MCk9PTApe1Y9eD4+PjF9ZWxzZXtWPWNb
bis0Pj4yXXwwfWRve2lmKChWfDApIT0wKXt4PWNbcz4+Ml18MDtpZigoeC1yfDApPj0xNjApe2Jy
ZWFrfVM9Y1t0Pj4yXXwwO2Nbcz4+Ml09eCs0O2NbeD4+Ml09U319d2hpbGUoMCk7YltsPj4xXT1m
eihMLGNbcT4+Ml18MCxrLHUpfDA7ZnQobix3LGNbcz4+Ml18MCxrKTtkb3tpZihGKXtXPTB9ZWxz
ZXtzPWNbQysxMj4+Ml18MDtpZigoc3wwKT09KGNbQysxNj4+Ml18MCkpe1g9YjBbY1soY1tDPj4y
XXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7WD1jW3M+PjJdfDB9aWYoKFh8MCkhPS0xKXtXPUM7
YnJlYWt9Y1tqPj4yXT0wO1c9MH19d2hpbGUoMCk7aj0oV3wwKT09MDtkb3tpZihOKXtHPTU2Mn1l
bHNle0M9Y1tNKzEyPj4yXXwwO2lmKChDfDApPT0oY1tNKzE2Pj4yXXwwKSl7WT1iMFtjWyhjW00+
PjJdfDApKzM2Pj4yXSYxMjddKE0pfDB9ZWxzZXtZPWNbQz4+Ml18MH1pZigoWXwwKT09LTEpe2Nb
Zz4+Ml09MDtHPTU2MjticmVha31pZighKGpeKE18MCk9PTApKXticmVha31aPWV8MDtjW1o+PjJd
PVc7ZFAobyk7ZFAobik7aT1mO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEd8MCk9PTU2Mil7aWYo
ail7YnJlYWt9Wj1lfDA7Y1taPj4yXT1XO2RQKG8pO2RQKG4pO2k9ZjtyZXR1cm59fXdoaWxlKDAp
O2Nbaz4+Ml09Y1trPj4yXXwyO1o9ZXwwO2NbWj4+Ml09VztkUChvKTtkUChuKTtpPWY7cmV0dXJu
fWZ1bmN0aW9uIGZaKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxK
PTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9
MCxZPTA7ZT1pO2k9aSsxNDR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1j
W2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzEw
NHwwO209ZSsxMTJ8MDtuPWUrMTI4fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtp
PWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0wO2Jy
ZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2ZXKG0saCx1LGwp
O2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7
eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09
dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1j
W2w+PjJdfDA7bD13O3c9Y1toPj4yXXwwO0w3MTM6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9
MH1lbHNle0M9Y1t3KzEyPj4yXXwwO2lmKChDfDApPT0oY1t3KzE2Pj4yXXwwKSl7RD1iMFtjWyhj
W3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDB9ZWxzZXtEPWNbQz4+Ml18MH1pZigoRHwwKSE9LTEp
e0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtFPShCfDApPT0wO0M9Y1tmPj4yXXww
O2Rve2lmKChDfDApPT0wKXtGPTU5MH1lbHNle0c9Y1tDKzEyPj4yXXwwO2lmKChHfDApPT0oY1tD
KzE2Pj4yXXwwKSl7SD1iMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtIPWNb
Rz4+Ml18MH1pZigoSHwwKT09LTEpe2NbZj4+Ml09MDtGPTU5MDticmVha31lbHNle0c9KEN8MCk9
PTA7aWYoRV5HKXtJPUM7Sj1HO2JyZWFrfWVsc2V7Sz1sO0w9QztNPUc7YnJlYWsgTDcxM319fX13
aGlsZSgwKTtpZigoRnwwKT09NTkwKXtGPTA7aWYoRSl7Sz1sO0w9MDtNPTE7YnJlYWt9ZWxzZXtJ
PTA7Sj0xfX1DPWRbb118MDtHPShDJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoRz9D
Pj4+MTpjW3o+PjJdfDApfDApKXtpZihHKXtOPUM+Pj4xO089Qz4+PjF9ZWxzZXtDPWNbej4+Ml18
MDtOPUM7Tz1DfWRSKG4sTjw8MSwwKTtpZigoYVtvXSYxKT09MCl7UD0xMH1lbHNle1A9KGNbZz4+
Ml0mLTIpLTF8MH1kUihuLFAsMCk7aWYoKGFbb10mMSk9PTApe1E9eH1lbHNle1E9Y1t5Pj4yXXww
fWNbcD4+Ml09UStPO1I9UX1lbHNle1I9bH1DPUIrMTJ8MDtHPWNbQz4+Ml18MDtTPUIrMTZ8MDtp
ZigoR3wwKT09KGNbUz4+Ml18MCkpe1Q9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXww
fWVsc2V7VD1jW0c+PjJdfDB9aWYoKGZVKFQsdCxSLHAscyxBLG0sdixyLHUpfDApIT0wKXtLPVI7
TD1JO009SjticmVha31HPWNbQz4+Ml18MDtpZigoR3wwKT09KGNbUz4+Ml18MCkpe1M9Y1soY1tC
Pj4yXXwwKSs0MD4+Ml18MDtiMFtTJjEyN10oQil8MDtsPVI7dz1CO2NvbnRpbnVlfWVsc2V7Y1tD
Pj4yXT1HKzQ7bD1SO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7VT13Pj4+
MX1lbHNle1U9Y1ttKzQ+PjJdfDB9ZG97aWYoKFV8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8
MCk+PTE2MCl7YnJlYWt9Uj1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1SfX13aGlsZSgw
KTtjW2s+PjJdPWZCKEssY1twPj4yXXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lm
KEUpe1Y9MH1lbHNle3I9Y1tCKzEyPj4yXXwwO2lmKChyfDApPT0oY1tCKzE2Pj4yXXwwKSl7Vz1i
MFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtXPWNbcj4+Ml18MH1pZigoV3ww
KSE9LTEpe1Y9QjticmVha31jW2g+PjJdPTA7Vj0wfX13aGlsZSgwKTtoPShWfDApPT0wO2Rve2lm
KE0pe0Y9NjMyfWVsc2V7Qj1jW0wrMTI+PjJdfDA7aWYoKEJ8MCk9PShjW0wrMTY+PjJdfDApKXtY
PWIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MH1lbHNle1g9Y1tCPj4yXXwwfWlmKChY
fDApPT0tMSl7Y1tmPj4yXT0wO0Y9NjMyO2JyZWFrfWlmKCEoaF4oTHwwKT09MCkpe2JyZWFrfVk9
YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRnww
KT09NjMyKXtpZihoKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVy
bn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0p
O2k9ZTtyZXR1cm59ZnVuY3Rpb24gZl8oYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9
MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0w
LFY9MCxXPTAsWD0wLFk9MDtlPWk7aT1pKzE0NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1ts
Pj4yXTtsPWUrMTA0fDA7bT1lKzExMnwwO249ZSsxMjh8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0xNjticmVha307Y2Fz
ZSA2NDp7dD04O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7
ZlcobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2
PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5
PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7
ej1uKzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1jW2g+PjJdfDA7TDgwMjp3aGlsZSgxKXtkb3tpZigo
d3wwKT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+PjJdfDA7aWYoKEN8MCk9PShjW3crMTY+PjJdfDAp
KXtEPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MH1lbHNle0Q9Y1tDPj4yXXwwfWlm
KChEfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0U9KEJ8MCk9PTA7
Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTApe0Y9NjYwfWVsc2V7Rz1jW0MrMTI+PjJdfDA7aWYo
KEd8MCk9PShjW0MrMTY+PjJdfDApKXtIPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8
MH1lbHNle0g9Y1tHPj4yXXwwfWlmKChIfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NjYwO2JyZWFrfWVs
c2V7Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztKPUc7YnJlYWt9ZWxzZXtLPWw7TD1DO009RzticmVh
ayBMODAyfX19fXdoaWxlKDApO2lmKChGfDApPT02NjApe0Y9MDtpZihFKXtLPWw7TD0wO009MTti
cmVha31lbHNle0k9MDtKPTF9fUM9ZFtvXXwwO0c9KEMmMXwwKT09MDtpZigoKGNbcD4+Ml18MCkt
bHwwKT09KChHP0M+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEcpe049Qz4+PjE7Tz1DPj4+MX1lbHNl
e0M9Y1t6Pj4yXXwwO049QztPPUN9ZFIobixOPDwxLDApO2lmKChhW29dJjEpPT0wKXtQPTEwfWVs
c2V7UD0oY1tnPj4yXSYtMiktMXwwfWRSKG4sUCwwKTtpZigoYVtvXSYxKT09MCl7UT14fWVsc2V7
UT1jW3k+PjJdfDB9Y1twPj4yXT1RK087Uj1RfWVsc2V7Uj1sfUM9QisxMnwwO0c9Y1tDPj4yXXww
O1M9QisxNnwwO2lmKChHfDApPT0oY1tTPj4yXXwwKSl7VD1iMFtjWyhjW0I+PjJdfDApKzM2Pj4y
XSYxMjddKEIpfDB9ZWxzZXtUPWNbRz4+Ml18MH1pZigoZlUoVCx0LFIscCxzLEEsbSx2LHIsdSl8
MCkhPTApe0s9UjtMPUk7TT1KO2JyZWFrfUc9Y1tDPj4yXXwwO2lmKChHfDApPT0oY1tTPj4yXXww
KSl7Uz1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShCKXwwO2w9Ujt3PUI7Y29udGlu
dWV9ZWxzZXtjW0M+PjJdPUcrNDtsPVI7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDAp
PT0wKXtVPXc+Pj4xfWVsc2V7VT1jW20rND4+Ml18MH1kb3tpZigoVXwwKSE9MCl7dz1jW3I+PjJd
fDA7aWYoKHctcXwwKT49MTYwKXticmVha31SPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJd
PVJ9fXdoaWxlKDApO2Nbaz4+Ml09ZkQoSyxjW3A+PjJdfDAsaix0KXwwO2Z0KG0sdixjW3I+PjJd
fDAsaik7ZG97aWYoRSl7Vj0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+
PjJdfDApKXtXPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1c9Y1tyPj4y
XXwwfWlmKChXfDApIT0tMSl7Vj1CO2JyZWFrfWNbaD4+Ml09MDtWPTB9fXdoaWxlKDApO2g9KFZ8
MCk9PTA7ZG97aWYoTSl7Rj03MDJ9ZWxzZXtCPWNbTCsxMj4+Ml18MDtpZigoQnwwKT09KGNbTCsx
Nj4+Ml18MCkpe1g9YjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3XShMKXwwfWVsc2V7WD1jW0I+
PjJdfDB9aWYoKFh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj03MDI7YnJlYWt9aWYoIShoXihMfDApPT0w
KSl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Rve2lmKChGfDApPT03MDIpe2lmKGgpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChuKTtkUCht
KTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtZPWJ8MDtjW1k+PjJdPVY7
ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmJChiLGUsZixnLGgsaixrKXtiPWJ8MDtl
PWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0w
LEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2U9aTtpPWkrMTQ0fDA7bD1mO2Y9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEyOHwwO289bjtwPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2
O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtkZWZhdWx0Ont0
PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFb
b10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18
MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtm
PWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+Ml18MDtMODkxOndoaWxl
KDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18MDtpZigoQ3wwKT09KGNb
dysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwfWVsc2V7RD1j
W0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7
RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj03MzB9ZWxzZXtHPWNbQysx
Mj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1soY1tDPj4yXXwwKSszNj4+
Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj03
MzA7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9RzticmVha31lbHNle0w9bDtN
PUM7Tj1HO2JyZWFrIEw4OTF9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTczMCl7Rj0wO2lmKEUpe0w9
bDtNPTA7Tj0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0oQyYxfDApPT0wO2lmKCgo
Y1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoRyl7Tz1DPj4+MTtQ
PUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tz1DO1A9Q31kUihuLE88PDEsMCk7aWYoKGFbb10mMSk9
PTApe1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIobixRLDApO2lmKChhW29dJjEpPT0w
KXtSPXh9ZWxzZXtSPWNbeT4+Ml18MH1jW3A+PjJdPVIrUDtTPVJ9ZWxzZXtTPWx9Qz1CKzEyfDA7
Rz1jW0M+PjJdfDA7VD1CKzE2fDA7aWYoKEd8MCk9PShjW1Q+PjJdfDApKXtVPWIwW2NbKGNbQj4+
Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1U9Y1tHPj4yXXwwfWlmKChmVShVLHQsUyxwLHMs
QSxtLHYscix1KXwwKSE9MCl7TD1TO009STtOPUo7YnJlYWt9Rz1jW0M+PjJdfDA7aWYoKEd8MCk9
PShjW1Q+PjJdfDApKXtUPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbVCYxMjddKEIpfDA7bD1T
O3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Uzt3PUI7Y29udGludWV9fXc9ZFttXXww
O2lmKCh3JjF8MCk9PTApe1Y9dz4+PjF9ZWxzZXtWPWNbbSs0Pj4yXXwwfWRve2lmKChWfDApIT0w
KXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVM9Y1tzPj4yXXwwO2Nbcj4+Ml09
dys0O2Nbdz4+Ml09U319d2hpbGUoMCk7cz1mRihMLGNbcD4+Ml18MCxqLHQpfDA7Y1trPj4yXT1z
O2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7Vz0wfWVsc2V7cj1jW0Ir
MTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtYPWIwW2NbKGNbQj4+Ml18MCkrMzY+
PjJdJjEyN10oQil8MH1lbHNle1g9Y1tyPj4yXXwwfWlmKChYfDApIT0tMSl7Vz1CO2JyZWFrfWNb
aD4+Ml09MDtXPTB9fXdoaWxlKDApO2g9KFd8MCk9PTA7ZG97aWYoTil7Rj03NzJ9ZWxzZXtCPWNb
TSsxMj4+Ml18MDtpZigoQnwwKT09KGNbTSsxNj4+Ml18MCkpe1k9YjBbY1soY1tNPj4yXXwwKSsz
Nj4+Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0I+PjJdfDB9aWYoKFl8MCk9PS0xKXtjW2Y+PjJdPTA7
Rj03NzI7YnJlYWt9aWYoIShoXihNfDApPT0wKSl7YnJlYWt9Wj1ifDA7Y1taPj4yXT1XO2RQKG4p
O2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT03NzIpe2lmKGgpe2JyZWFr
fVo9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJd
PWNbaj4+Ml18MjtaPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlv
biBmMChiLGUsZixoLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtoPWh8MDtqPWp8MDtrPWt8MDts
PWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxN
PTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89
MCwkPTA7ZT1pO2k9aSsxNzZ8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1j
W20+PjJdO209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+Ml07bT1lKzEy
OHwwO249ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1lKzE2MHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwz
O3g9ZXwwO2YxKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3Fd
JjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7
QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fb
d109Njk7aj1mfDA7Zj1ofDA7aD1wfDA7Qz1wKzR8MDtEPWNbbT4+Ml18MDttPWNbbj4+Ml18MDtu
PXo7ej1jW2o+PjJdfDA7TDk3NTp3aGlsZSgxKXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7Rj1j
W3orMTI+PjJdfDA7aWYoKEZ8MCk9PShjW3orMTY+PjJdfDApKXtHPWIwW2NbKGNbej4+Ml18MCkr
MzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1tGPj4yXXwwfWlmKChHfDApIT0tMSl7RT16O2JyZWFr
fWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7Rj1jW2Y+PjJdfDA7ZG97aWYoKEZ8
MCk9PTApe0k9Nzk2fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYoKEp8MCk9PShjW0YrMTY+PjJdfDAp
KXtLPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8MH1lbHNle0s9Y1tKPj4yXXwwfWlm
KChLfDApPT0tMSl7Y1tmPj4yXT0wO0k9Nzk2O2JyZWFrfWVsc2V7Sj0oRnwwKT09MDtpZihIXkop
e0w9RjtNPUo7YnJlYWt9ZWxzZXtOPW47Tz1GO1A9SjticmVhayBMOTc1fX19fXdoaWxlKDApO2lm
KChJfDApPT03OTYpe0k9MDtpZihIKXtOPW47Tz0wO1A9MTticmVha31lbHNle0w9MDtNPTF9fUY9
ZFtxXXwwO0o9KEYmMXwwKT09MDtpZigoKGNbcj4+Ml18MCktbnwwKT09KChKP0Y+Pj4xOmNbQz4+
Ml18MCl8MCkpe2lmKEope1E9Rj4+PjE7Uj1GPj4+MX1lbHNle0Y9Y1tDPj4yXXwwO1E9RjtSPUZ9
ZFIocCxRPDwxLDApO2lmKChhW3FdJjEpPT0wKXtTPTEwfWVsc2V7Uz0oY1toPj4yXSYtMiktMXww
fWRSKHAsUywwKTtpZigoYVtxXSYxKT09MCl7VD1BfWVsc2V7VD1jW0I+PjJdfDB9Y1tyPj4yXT1U
K1I7VT1UfWVsc2V7VT1ufUY9RSsxMnwwO0o9Y1tGPj4yXXwwO1Y9RSsxNnwwO2lmKChKfDApPT0o
Y1tWPj4yXXwwKSl7Vz1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDB9ZWxzZXtXPWNb
Sj4+Ml18MH1pZigoZjIoVyx2LHcsVSxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtOPVU7Tz1MO1A9
TTticmVha31KPWNbRj4+Ml18MDtpZigoSnwwKT09KGNbVj4+Ml18MCkpe1Y9Y1soY1tFPj4yXXww
KSs0MD4+Ml18MDtiMFtWJjEyN10oRSl8MDtuPVU7ej1FO2NvbnRpbnVlfWVsc2V7Y1tGPj4yXT1K
KzQ7bj1VO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7WD16Pj4+MX1lbHNl
e1g9Y1tvKzQ+PjJdfDB9ZG97aWYoKFh8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXticmVha316PWNb
dD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVU9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nb
ej4+Ml09VX19d2hpbGUoMCk7Z1tsPj4yXT0rZkkoTixjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+
Ml18MCxrKTtkb3tpZihIKXtZPTB9ZWxzZXt0PWNbRSsxMj4+Ml18MDtpZigodHwwKT09KGNbRSsx
Nj4+Ml18MCkpe1o9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwfWVsc2V7Wj1jW3Q+
PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUU7YnJlYWt9Y1tqPj4yXT0wO1k9MH19d2hpbGUoMCk7aj0o
WXwwKT09MDtkb3tpZihQKXtJPTgzOX1lbHNle0U9Y1tPKzEyPj4yXXwwO2lmKChFfDApPT0oY1tP
KzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW08+PjJdfDApKzM2Pj4yXSYxMjddKE8pfDB9ZWxzZXtfPWNb
RT4+Ml18MH1pZigoX3wwKT09LTEpe2NbZj4+Ml09MDtJPTgzOTticmVha31pZighKGpeKE98MCk9
PTApKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUo
MCk7ZG97aWYoKEl8MCk9PTgzOSl7aWYoail7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQ
KG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwyOyQ9YnwwO2NbJD4+Ml09
WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGYxKGEsYixkLGUsZil7YT1hfDA7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTA7Zz1pO2k9aSs0MHwwO2g9Z3wwO2o9ZysxNnwwO2s9ZyszMnwwO2VqKGssYik7
Yj1rfDA7az1jW2I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2o+PjJdPTE1Njg4O2Nbais0
Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTY4OCxqLDk2KX1qPShjWzM5MjNdfDApLTF8MDtsPWNb
ays4Pj4yXXwwO2Rve2lmKChjW2srMTI+PjJdfDApLWw+PjI+Pj4wPmo+Pj4wKXttPWNbbCsoajw8
Mik+PjJdfDA7aWYoKG18MCk9PTApe2JyZWFrfW49bTtvPWNbKGNbbT4+Ml18MCkrNDg+PjJdfDA7
Y2FbbyYxNV0obiw5NzQ0LDk3NzYsZCl8MDtuPWNbYj4+Ml18MDtpZigoY1szODI2XXwwKSE9LTEp
e2NbaD4+Ml09MTUzMDQ7Y1toKzQ+PjJdPTEyO2NbaCs4Pj4yXT0wO2RXKDE1MzA0LGgsOTYpfW89
KGNbMzgyN118MCktMXwwO209Y1tuKzg+PjJdfDA7ZG97aWYoKGNbbisxMj4+Ml18MCktbT4+Mj4+
PjA+bz4+PjApe3A9Y1ttKyhvPDwyKT4+Ml18MDtpZigocHwwKT09MCl7YnJlYWt9cT1wO3I9cDtj
W2U+PjJdPWIwW2NbKGNbcj4+Ml18MCkrMTI+PjJdJjEyN10ocSl8MDtjW2Y+PjJdPWIwW2NbKGNb
cj4+Ml18MCkrMTY+PjJdJjEyN10ocSl8MDtiWltjWyhjW3A+PjJdfDApKzIwPj4yXSYxMjddKGEs
cSk7cT1jW2I+PjJdfDA7ZHoocSl8MDtpPWc7cmV0dXJufX13aGlsZSgwKTtvPWJPKDQpfDA7a3Eo
byk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7Zz1iTyg0KXwwO2txKGcpO2JsKGd8MCw4MTc2
LDEzNCl9ZnVuY3Rpb24gZjIoYixlLGYsZyxoLGksaixrLGwsbSxuLG8pe2I9YnwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO249bnwwO289b3ww
O3ZhciBwPTAscT0wLHI9MCxzPTAsdD0wO2lmKChifDApPT0oaXwwKSl7aWYoKGFbZV0mMSk9PTAp
e3A9LTE7cmV0dXJuIHB8MH1hW2VdPTA7aT1jW2g+PjJdfDA7Y1toPj4yXT1pKzE7YVtpXT00Njtp
PWRba118MDtpZigoaSYxfDApPT0wKXtxPWk+Pj4xfWVsc2V7cT1jW2srND4+Ml18MH1pZigocXww
KT09MCl7cD0wO3JldHVybiBwfDB9cT1jW20+PjJdfDA7aWYoKHEtbHwwKT49MTYwKXtwPTA7cmV0
dXJuIHB8MH1pPWNbbj4+Ml18MDtjW20+PjJdPXErNDtjW3E+PjJdPWk7cD0wO3JldHVybiBwfDB9
ZG97aWYoKGJ8MCk9PShqfDApKXtpPWRba118MDtpZigoaSYxfDApPT0wKXtyPWk+Pj4xfWVsc2V7
cj1jW2srND4+Ml18MH1pZigocnwwKT09MCl7YnJlYWt9aWYoKGFbZV0mMSk9PTApe3A9LTE7cmV0
dXJuIHB8MH1pPWNbbT4+Ml18MDtpZigoaS1sfDApPj0xNjApe3A9MDtyZXR1cm4gcHwwfXE9Y1tu
Pj4yXXwwO2NbbT4+Ml09aSs0O2NbaT4+Ml09cTtjW24+PjJdPTA7cD0wO3JldHVybiBwfDB9fXdo
aWxlKDApO3I9bysxMjh8MDtqPW87d2hpbGUoMSl7aWYoKGp8MCk9PShyfDApKXtzPXI7YnJlYWt9
aWYoKGNbaj4+Ml18MCk9PShifDApKXtzPWo7YnJlYWt9ZWxzZXtqPWorNHwwfX1qPXMtb3wwO289
aj4+MjtpZigoanwwKT4xMjQpe3A9LTE7cmV0dXJuIHB8MH1zPWFbOTc0NCtvfDBdfDA7TDExMTU6
ZG97c3dpdGNoKG98MCl7Y2FzZSAyNTpjYXNlIDI0OntiPWNbaD4+Ml18MDtkb3tpZigoYnwwKSE9
KGd8MCkpe2lmKChhW2ItMXwwXSY5NXwwKT09KGFbZl0mMTI3fDApKXticmVha31lbHNle3A9LTF9
cmV0dXJuIHB8MH19d2hpbGUoMCk7Y1toPj4yXT1iKzE7YVtiXT1zO3A9MDtyZXR1cm4gcHwwfTtj
YXNlIDIyOmNhc2UgMjM6e2FbZl09ODA7YnJlYWt9O2RlZmF1bHQ6e3I9YVtmXXwwO2lmKChzJjk1
fDApIT0ocjw8MjQ+PjI0fDApKXticmVhayBMMTExNX1hW2ZdPXJ8LTEyODtpZigoYVtlXSYxKT09
MCl7YnJlYWsgTDExMTV9YVtlXT0wO3I9ZFtrXXwwO2lmKChyJjF8MCk9PTApe3Q9cj4+PjF9ZWxz
ZXt0PWNbays0Pj4yXXwwfWlmKCh0fDApPT0wKXticmVhayBMMTExNX1yPWNbbT4+Ml18MDtpZigo
ci1sfDApPj0xNjApe2JyZWFrIEwxMTE1fXE9Y1tuPj4yXXwwO2NbbT4+Ml09cis0O2Nbcj4+Ml09
cX19fXdoaWxlKDApO209Y1toPj4yXXwwO2NbaD4+Ml09bSsxO2FbbV09cztpZigoanwwKT44NCl7
cD0wO3JldHVybiBwfDB9Y1tuPj4yXT0oY1tuPj4yXXwwKSsxO3A9MDtyZXR1cm4gcHwwfWZ1bmN0
aW9uIGYzKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3ww
O2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAs
Xz0wLCQ9MDtlPWk7aT1pKzE3NnwwO209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJd
PWNbbT4+Ml07bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1ttPj4yXTttPWUr
MTI4fDA7bj1lKzEzNnwwO289ZSsxNDR8MDtwPWUrMTYwfDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8
PDM7eD1lfDA7ZjEobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFb
cV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18
MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7
YVt3XT02OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9Y1ttPj4yXXwwO209Y1tuPj4yXXww
O249ejt6PWNbaj4+Ml18MDtMMTE0Mzp3aGlsZSgxKXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7
Rj1jW3orMTI+PjJdfDA7aWYoKEZ8MCk9PShjW3orMTY+PjJdfDApKXtHPWIwW2NbKGNbej4+Ml18
MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1tGPj4yXXwwfWlmKChHfDApIT0tMSl7RT16O2Jy
ZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7Rj1jW2Y+PjJdfDA7ZG97aWYo
KEZ8MCk9PTApe0k9OTI5fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYoKEp8MCk9PShjW0YrMTY+PjJd
fDApKXtLPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8MH1lbHNle0s9Y1tKPj4yXXww
fWlmKChLfDApPT0tMSl7Y1tmPj4yXT0wO0k9OTI5O2JyZWFrfWVsc2V7Sj0oRnwwKT09MDtpZihI
Xkope0w9RjtNPUo7YnJlYWt9ZWxzZXtOPW47Tz1GO1A9SjticmVhayBMMTE0M319fX13aGlsZSgw
KTtpZigoSXwwKT09OTI5KXtJPTA7aWYoSCl7Tj1uO089MDtQPTE7YnJlYWt9ZWxzZXtMPTA7TT0x
fX1GPWRbcV18MDtKPShGJjF8MCk9PTA7aWYoKChjW3I+PjJdfDApLW58MCk9PSgoSj9GPj4+MTpj
W0M+PjJdfDApfDApKXtpZihKKXtRPUY+Pj4xO1I9Rj4+PjF9ZWxzZXtGPWNbQz4+Ml18MDtRPUY7
Uj1GfWRSKHAsUTw8MSwwKTtpZigoYVtxXSYxKT09MCl7Uz0xMH1lbHNle1M9KGNbZz4+Ml0mLTIp
LTF8MH1kUihwLFMsMCk7aWYoKGFbcV0mMSk9PTApe1Q9QX1lbHNle1Q9Y1tCPj4yXXwwfWNbcj4+
Ml09VCtSO1U9VH1lbHNle1U9bn1GPUUrMTJ8MDtKPWNbRj4+Ml18MDtWPUUrMTZ8MDtpZigoSnww
KT09KGNbVj4+Ml18MCkpe1c9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwfWVsc2V7
Vz1jW0o+PjJdfDB9aWYoKGYyKFcsdix3LFUscixELG0sbyx5LHQsdSx4KXwwKSE9MCl7Tj1VO089
TDtQPU07YnJlYWt9Sj1jW0Y+PjJdfDA7aWYoKEp8MCk9PShjW1Y+PjJdfDApKXtWPWNbKGNbRT4+
Ml18MCkrNDA+PjJdfDA7YjBbViYxMjddKEUpfDA7bj1VO3o9RTtjb250aW51ZX1lbHNle2NbRj4+
Ml09Sis0O249VTt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6JjF8MCk9PTApe1g9ej4+PjF9
ZWxzZXtYPWNbbys0Pj4yXXwwfWRve2lmKChYfDApIT0wKXtpZigoYVt2XSYxKT09MCl7YnJlYWt9
ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVha31VPWNbdT4+Ml18MDtjW3Q+PjJdPXor
NDtjW3o+PjJdPVV9fXdoaWxlKDApO2hbbD4+M109K2ZMKE4sY1tyPj4yXXwwLGspO2Z0KG8seSxj
W3Q+PjJdfDAsayk7ZG97aWYoSCl7WT0wfWVsc2V7dD1jW0UrMTI+PjJdfDA7aWYoKHR8MCk9PShj
W0UrMTY+PjJdfDApKXtaPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1lbHNle1o9
Y1t0Pj4yXXwwfWlmKChafDApIT0tMSl7WT1FO2JyZWFrfWNbaj4+Ml09MDtZPTB9fXdoaWxlKDAp
O2o9KFl8MCk9PTA7ZG97aWYoUCl7ST05NzJ9ZWxzZXtFPWNbTysxMj4+Ml18MDtpZigoRXwwKT09
KGNbTysxNj4+Ml18MCkpe189YjBbY1soY1tPPj4yXXwwKSszNj4+Ml0mMTI3XShPKXwwfWVsc2V7
Xz1jW0U+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2Y+PjJdPTA7ST05NzI7YnJlYWt9aWYoIShqXihP
fDApPT0wKSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdo
aWxlKDApO2Rve2lmKChJfDApPT05NzIpe2lmKGope2JyZWFrfSQ9YnwwO2NbJD4+Ml09WTtkUChw
KTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjskPWJ8MDtjWyQ+
PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmNChiLGUsZixnLGosayxsKXti
PWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxE
PTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9
MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTA7ZT1pO2k9aSsxNzZ8MDtt
PWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZztnPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzEyOHwwO249ZSsxMzZ8MDtvPWUrMTQ0
fDA7cD1lKzE2MHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXww
O2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2YxKG8saix4LG0sbik7
ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtB
PXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16
O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1nfDA7Zz1w
fDA7Qz1wKzR8MDtEPWNbbT4+Ml18MDttPWNbbj4+Ml18MDtuPXo7ej1jW2o+PjJdfDA7TDEyMjg6
d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle0Y9Y1t6KzEyPj4yXXwwO2lmKChGfDAp
PT0oY1t6KzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDB9ZWxz
ZXtHPWNbRj4+Ml18MH1pZigoR3wwKSE9LTEpe0U9ejticmVha31jW2o+PjJdPTA7RT0wfX13aGls
ZSgwKTtIPShFfDApPT0wO0Y9Y1tmPj4yXXwwO2Rve2lmKChGfDApPT0wKXtJPTk5Nn1lbHNle0o9
Y1tGKzEyPj4yXXwwO2lmKChKfDApPT0oY1tGKzE2Pj4yXXwwKSl7Sz1iMFtjWyhjW0Y+PjJdfDAp
KzM2Pj4yXSYxMjddKEYpfDB9ZWxzZXtLPWNbSj4+Ml18MH1pZigoS3wwKT09LTEpe2NbZj4+Ml09
MDtJPTk5NjticmVha31lbHNle0o9KEZ8MCk9PTA7aWYoSF5KKXtMPUY7TT1KO2JyZWFrfWVsc2V7
Tj1uO089RjtQPUo7YnJlYWsgTDEyMjh9fX19d2hpbGUoMCk7aWYoKEl8MCk9PTk5Nil7ST0wO2lm
KEgpe049bjtPPTA7UD0xO2JyZWFrfWVsc2V7TD0wO009MX19Rj1kW3FdfDA7Sj0oRiYxfDApPT0w
O2lmKCgoY1tyPj4yXXwwKS1ufDApPT0oKEo/Rj4+PjE6Y1tDPj4yXXwwKXwwKSl7aWYoSil7UT1G
Pj4+MTtSPUY+Pj4xfWVsc2V7Rj1jW0M+PjJdfDA7UT1GO1I9Rn1kUihwLFE8PDEsMCk7aWYoKGFb
cV0mMSk9PTApe1M9MTB9ZWxzZXtTPShjW2c+PjJdJi0yKS0xfDB9ZFIocCxTLDApO2lmKChhW3Fd
JjEpPT0wKXtUPUF9ZWxzZXtUPWNbQj4+Ml18MH1jW3I+PjJdPVQrUjtVPVR9ZWxzZXtVPW59Rj1F
KzEyfDA7Sj1jW0Y+PjJdfDA7Vj1FKzE2fDA7aWYoKEp8MCk9PShjW1Y+PjJdfDApKXtXPWIwW2Nb
KGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1lbHNle1c9Y1tKPj4yXXwwfWlmKChmMihXLHYs
dyxVLHIsRCxtLG8seSx0LHUseCl8MCkhPTApe049VTtPPUw7UD1NO2JyZWFrfUo9Y1tGPj4yXXww
O2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vj1jWyhjW0U+PjJdfDApKzQwPj4yXXwwO2IwW1YmMTI3
XShFKXwwO249VTt6PUU7Y29udGludWV9ZWxzZXtjW0Y+PjJdPUorNDtuPVU7ej1FO2NvbnRpbnVl
fX16PWRbb118MDtpZigoeiYxfDApPT0wKXtYPXo+Pj4xfWVsc2V7WD1jW28rND4+Ml18MH1kb3tp
ZigoWHwwKSE9MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0Pj4yXXwwO2lmKCh6LXN8MCk+
PTE2MCl7YnJlYWt9VT1jW3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6Pj4yXT1VfX13aGlsZSgwKTto
W2w+PjNdPStmTihOLGNbcj4+Ml18MCxrKTtmdChvLHksY1t0Pj4yXXwwLGspO2Rve2lmKEgpe1k9
MH1lbHNle3Q9Y1tFKzEyPj4yXXwwO2lmKCh0fDApPT0oY1tFKzE2Pj4yXXwwKSl7Wj1iMFtjWyhj
W0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDB9ZWxzZXtaPWNbdD4+Ml18MH1pZigoWnwwKSE9LTEp
e1k9RTticmVha31jW2o+PjJdPTA7WT0wfX13aGlsZSgwKTtqPShZfDApPT0wO2Rve2lmKFApe0k9
MTAzOX1lbHNle0U9Y1tPKzEyPj4yXXwwO2lmKChFfDApPT0oY1tPKzE2Pj4yXXwwKSl7Xz1iMFtj
WyhjW08+PjJdfDApKzM2Pj4yXSYxMjddKE8pfDB9ZWxzZXtfPWNbRT4+Ml18MH1pZigoX3wwKT09
LTEpe2NbZj4+Ml09MDtJPTEwMzk7YnJlYWt9aWYoIShqXihPfDApPT0wKSl7YnJlYWt9JD1ifDA7
Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChJfDApPT0x
MDM5KXtpZihqKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19
d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9
ZTtyZXR1cm59ZnVuY3Rpb24gZjUoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24gZjYoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZjcoYixlLGYsZyxoLGosayl7
Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTA7ZT1pO2k9aSsxMzZ8MDtsPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2fDA7bj1lKzEyMHwwO289aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO3A9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztyPWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2skKG58MCwwLDEyKTt1PXA7ZWoobyxoKTtoPW98MDtvPWNbaD4+Ml18
MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4y
XT0wO2RXKDE1Njg4LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO3Y9Y1tvKzg+PjJdfDA7ZG97aWYo
KGNbbysxMj4+Ml18MCktdj4+Mj4+PjA+bD4+PjApe3c9Y1t2KyhsPDwyKT4+Ml18MDtpZigod3ww
KT09MCl7YnJlYWt9eD13O3k9bXwwO3o9Y1soY1t3Pj4yXXwwKSs0OD4+Ml18MDtjYVt6JjE1XSh4
LDk3NDQsOTc3MCx5KXwwO3g9Y1toPj4yXXwwO2R6KHgpfDA7ayQodXwwLDAsMTIpO3g9cDtkUihw
LDEwLDApO2lmKChhW3VdJjEpPT0wKXt6PXgrMXwwO0E9ejtCPXo7Qz1wKzh8MH1lbHNle3o9cCs4
fDA7QT1jW3o+PjJdfDA7Qj14KzF8MDtDPXp9Y1txPj4yXT1BO3o9cnwwO2Nbcz4+Ml09ejtjW3Q+
PjJdPTA7eD1mfDA7dz1nfDA7RD1wfDA7RT1wKzR8MDtGPUE7Rz1jW3g+PjJdfDA7TDEzMjM6d2hp
bGUoMSl7ZG97aWYoKEd8MCk9PTApe0g9MH1lbHNle0k9Y1tHKzEyPj4yXXwwO2lmKChJfDApPT0o
Y1tHKzE2Pj4yXXwwKSl7Sj1iMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDB9ZWxzZXtK
PWNbST4+Ml18MH1pZigoSnwwKSE9LTEpe0g9RzticmVha31jW3g+PjJdPTA7SD0wfX13aGlsZSgw
KTtJPShIfDApPT0wO0s9Y1t3Pj4yXXwwO2Rve2lmKChLfDApPT0wKXtMPTEwNzN9ZWxzZXtNPWNb
SysxMj4+Ml18MDtpZigoTXwwKT09KGNbSysxNj4+Ml18MCkpe049YjBbY1soY1tLPj4yXXwwKSsz
Nj4+Ml0mMTI3XShLKXwwfWVsc2V7Tj1jW00+PjJdfDB9aWYoKE58MCk9PS0xKXtjW3c+PjJdPTA7
TD0xMDczO2JyZWFrfWVsc2V7aWYoSV4oS3wwKT09MCl7YnJlYWt9ZWxzZXtPPUY7YnJlYWsgTDEz
MjN9fX19d2hpbGUoMCk7aWYoKEx8MCk9PTEwNzMpe0w9MDtpZihJKXtPPUY7YnJlYWt9fUs9ZFt1
XXwwO009KEsmMXwwKT09MDtpZigoKGNbcT4+Ml18MCktRnwwKT09KChNP0s+Pj4xOmNbRT4+Ml18
MCl8MCkpe2lmKE0pe1A9Sz4+PjE7UT1LPj4+MX1lbHNle0s9Y1tFPj4yXXwwO1A9SztRPUt9ZFIo
cCxQPDwxLDApO2lmKChhW3VdJjEpPT0wKXtSPTEwfWVsc2V7Uj0oY1tEPj4yXSYtMiktMXwwfWRS
KHAsUiwwKTtpZigoYVt1XSYxKT09MCl7Uz1CfWVsc2V7Uz1jW0M+PjJdfDB9Y1txPj4yXT1TK1E7
VD1TfWVsc2V7VD1GfUs9SCsxMnwwO009Y1tLPj4yXXwwO1U9SCsxNnwwO2lmKChNfDApPT0oY1tV
Pj4yXXwwKSl7Vj1iMFtjWyhjW0g+PjJdfDApKzM2Pj4yXSYxMjddKEgpfDB9ZWxzZXtWPWNbTT4+
Ml18MH1pZigoZlUoViwxNixULHEsdCwwLG4seixzLHkpfDApIT0wKXtPPVQ7YnJlYWt9TT1jW0s+
PjJdfDA7aWYoKE18MCk9PShjW1U+PjJdfDApKXtVPWNbKGNbSD4+Ml18MCkrNDA+PjJdfDA7YjBb
VSYxMjddKEgpfDA7Rj1UO0c9SDtjb250aW51ZX1lbHNle2NbSz4+Ml09TSs0O0Y9VDtHPUg7Y29u
dGludWV9fWFbTyszfDBdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDAp
PT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtHPWZSKE8sY1syOTU4
XXwwLDEzMjAsKEY9aSxpPWkrOHwwLGNbRj4+Ml09ayxGKXwwKXwwO2k9RjtpZigoR3wwKSE9MSl7
Y1tqPj4yXT00fUc9Y1t4Pj4yXXwwO2Rve2lmKChHfDApPT0wKXtXPTB9ZWxzZXtGPWNbRysxMj4+
Ml18MDtpZigoRnwwKT09KGNbRysxNj4+Ml18MCkpe1g9YjBbY1soY1tHPj4yXXwwKSszNj4+Ml0m
MTI3XShHKXwwfWVsc2V7WD1jW0Y+PjJdfDB9aWYoKFh8MCkhPS0xKXtXPUc7YnJlYWt9Y1t4Pj4y
XT0wO1c9MH19d2hpbGUoMCk7eD0oV3wwKT09MDtHPWNbdz4+Ml18MDtkb3tpZigoR3wwKT09MCl7
TD0xMTE4fWVsc2V7Rj1jW0crMTI+PjJdfDA7aWYoKEZ8MCk9PShjW0crMTY+PjJdfDApKXtZPWIw
W2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MH1lbHNle1k9Y1tGPj4yXXwwfWlmKChZfDAp
PT0tMSl7Y1t3Pj4yXT0wO0w9MTExODticmVha31pZighKHheKEd8MCk9PTApKXticmVha31aPWJ8
MDtjW1o+PjJdPVc7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEx8MCk9
PTExMTgpe2lmKHgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChwKTtkUChuKTtpPWU7cmV0dXJu
fX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+PjJdPVc7ZFAocCk7ZFAobik7
aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2JsKGV8MCw4MTc2LDEzNCl9ZnVu
Y3Rpb24gZjgoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MDtkPWk7aT1pKzgwfDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09
Y1tqPj4yXTtqPWR8MDtrPWQrOHwwO2w9ZCsyNHwwO209ZCs0OHwwO249ZCs1NnwwO289ZCs2NHww
O3A9ZCs3MnwwO3E9anwwO2FbcV09YVsyMzg0XXwwO2FbcSsxfDBdPWFbMjM4NXwwXXwwO2FbcSsy
fDBdPWFbMjM4NnwwXXwwO2FbcSszfDBdPWFbMjM4N3wwXXwwO2FbcSs0fDBdPWFbMjM4OHwwXXww
O2FbcSs1fDBdPWFbMjM4OXwwXXwwO3I9aisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYy
MDQ4fDApPT0wKXt1PXJ9ZWxzZXthW3JdPTQzO3U9aisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9
ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7dT12KzF8MDtMMTQxMDpkb3tzd2l0Y2godCY3
NHwwKXtjYXNlIDY0OnthW3VdPTExMTticmVha307Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7
YVt1XT0xMjA7YnJlYWsgTDE0MTB9ZWxzZXthW3VdPTg4O2JyZWFrIEwxNDEwfWJyZWFrfTtkZWZh
dWx0OnthW3VdPTEwMH19fXdoaWxlKDApO3U9a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYo
KGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7
dD1nYih1LDEyLGNbMjk1OF18MCxxLChxPWksaT1pKzh8MCxjW3E+PjJdPWgscSl8MCl8MDtpPXE7
cT1rK3R8MDtMMTQyMzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAzMjp7dz1xO2JyZWFr
fTtjYXNlIDE2OntoPWFbdV18MDtzd2l0Y2goaDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9
aysxfDA7YnJlYWsgTDE0MjM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmg8PDI0Pj4y
ND09NDgpKXt4PTExNDc7YnJlYWsgTDE0MjN9c3dpdGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNh
c2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTExNDc7YnJlYWsgTDE0MjN9fXc9aysyfDA7YnJlYWt9
O2RlZmF1bHQ6e3g9MTE0N319fXdoaWxlKDApO2lmKCh4fDApPT0xMTQ3KXt3PXV9eD1sfDA7ZWoo
byxmKTtnYyh1LHcscSx4LG0sbixvKTtkeihjW28+PjJdfDApfDA7Y1twPj4yXT1jW2U+PjJdO2Y5
KGIscCx4LGNbbT4+Ml18MCxjW24+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGY5KGIs
ZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3Zh
ciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2s9aTtpPWkrMTZ8MDtsPWQ7ZD1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2w+PjJdO2w9a3wwO209ZHwwO2Q9Y1ttPj4yXXww
O2lmKChkfDApPT0wKXtjW2I+PjJdPTA7aT1rO3JldHVybn1uPWc7Zz1lO289bi1nfDA7cD1oKzEy
fDA7aD1jW3A+PjJdfDA7cT0oaHwwKT4ob3wwKT9oLW98MDowO289ZjtoPW8tZ3wwO2Rve2lmKCho
fDApPjApe2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxlLGgpfDApPT0oaHwwKSl7
YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13aGlsZSgwKTtkb3tpZigocXww
KT4wKXtkXyhsLHEsaik7aWYoKGFbbF0mMSk9PTApe3I9bCsxfDB9ZWxzZXtyPWNbbCs4Pj4yXXww
fWlmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxyLHEpfDApPT0ocXwwKSl7ZFAobCk7
YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtkUChsKTtpPWs7cmV0dXJufX13aGlsZSgwKTtsPW4t
b3wwO2Rve2lmKChsfDApPjApe2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxmLGwp
fDApPT0obHwwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13aGlsZSgw
KTtjW3A+PjJdPTA7Y1tiPj4yXT1kO2k9aztyZXR1cm59ZnVuY3Rpb24gZ2EoYixkLGUsZixnLGgp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTA7aj1pO2k9aSs0
OHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7bD1q
KzE2fDA7bT1qKzI0fDA7bj1qKzMyfDA7aWYoKGNbZis0Pj4yXSYxfDApPT0wKXtvPWNbKGNbZD4+
Ml18MCkrMjQ+PjJdfDA7Y1tsPj4yXT1jW2U+PjJdO2I5W28mMzFdKGIsZCxsLGYsZyxoJjEpO2k9
ajtyZXR1cm59ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1szODI4XXwwKSE9LTEpe2Nb
az4+Ml09MTUzMTI7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1MzEyLGssOTYpfWs9KGNb
MzgyOV18MCktMXwwO2c9Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktZz4+Mj4+PjA+
az4+PjApe2w9Y1tnKyhrPDwyKT4+Ml18MDtpZigobHwwKT09MCl7YnJlYWt9ZD1sO289Y1tmPj4y
XXwwO2R6KG8pfDA7bz1jW2w+PjJdfDA7aWYoaCl7YlpbY1tvKzI0Pj4yXSYxMjddKG4sZCl9ZWxz
ZXtiWltjW28rMjg+PjJdJjEyN10obixkKX1kPW47bz1uO2w9YVtvXXwwO2lmKChsJjEpPT0wKXtw
PWQrMXwwO3E9cDtyPXA7cz1uKzh8MH1lbHNle3A9bis4fDA7cT1jW3A+PjJdfDA7cj1kKzF8MDtz
PXB9cD1lfDA7ZD1uKzR8MDt0PXE7dT1sO3doaWxlKDEpe2lmKCh1JjEpPT0wKXt2PXJ9ZWxzZXt2
PWNbcz4+Ml18MH1sPXUmMjU1O2lmKCh0fDApPT0odisoKGwmMXwwKT09MD9sPj4+MTpjW2Q+PjJd
fDApfDApKXticmVha31sPWFbdF18MDt3PWNbcD4+Ml18MDtkb3tpZigod3wwKSE9MCl7eD13KzI0
fDA7eT1jW3g+PjJdfDA7aWYoKHl8MCkhPShjW3crMjg+PjJdfDApKXtjW3g+PjJdPXkrMTthW3ld
PWw7YnJlYWt9aWYoKGJfW2NbKGNbdz4+Ml18MCkrNTI+PjJdJjMxXSh3LGwmMjU1KXwwKSE9LTEp
e2JyZWFrfWNbcD4+Ml09MH19d2hpbGUoMCk7dD10KzF8MDt1PWFbb118MH1jW2I+PjJdPWNbcD4+
Ml07ZFAobik7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGopO2JsKGp8MCw4MTc2
LDEzNCl9ZnVuY3Rpb24gZ2IoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDt2YXIgZz0wLGg9MCxqPTA7Zz1pO2k9aSsxNnwwO2g9Z3wwO2o9aDtjW2o+PjJdPWY7Y1tqKzQ+
PjJdPTA7aj1iQihkfDApfDA7ZD1iQyhhfDAsYnwwLGV8MCxofDApfDA7aWYoKGp8MCk9PTApe2k9
ZztyZXR1cm4gZHwwfWJCKGp8MCl8MDtpPWc7cmV0dXJuIGR8MH1mdW5jdGlvbiBnYyhiLGUsZixn
LGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTA7bD1pO2k9aSs0
OHwwO209bHwwO249bCsxNnwwO289bCszMnwwO3A9a3wwO2s9Y1twPj4yXXwwO2lmKChjWzM5MjRd
fDApIT0tMSl7Y1tuPj4yXT0xNTY5NjtjW24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7ZFcoMTU2OTYs
biw5Nil9bj0oY1szOTI1XXwwKS0xfDA7cT1jW2srOD4+Ml18MDtpZigoY1trKzEyPj4yXXwwKS1x
Pj4yPj4+MDw9bj4+PjApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1rPWNb
cSsobjw8Mik+PjJdfDA7aWYoKGt8MCk9PTApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgx
NzYsMTM0KX1yPWs7cz1jW3A+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW20+PjJdPTE1MzEy
O2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTMxMixtLDk2KX1tPShjWzM4MjldfDApLTF8
MDtwPWNbcys4Pj4yXXwwO2lmKChjW3MrMTI+PjJdfDApLXA+PjI+Pj4wPD1tPj4+MCl7dD1iTyg0
KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXM9Y1twKyhtPDwyKT4+Ml18MDtpZigoc3ww
KT09MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXQ9cztiWltjWyhjW3M+
PjJdfDApKzIwPj4yXSYxMjddKG8sdCk7dT1vO209bztwPWRbbV18MDtpZigocCYxfDApPT0wKXt2
PXA+Pj4xfWVsc2V7dj1jW28rND4+Ml18MH1kb3tpZigodnwwKT09MCl7cD1jWyhjW2s+PjJdfDAp
KzMyPj4yXXwwO2NhW3AmMTVdKHIsYixmLGcpfDA7Y1tqPj4yXT1nKyhmLWIpfWVsc2V7Y1tqPj4y
XT1nO3A9YVtiXXwwO3N3aXRjaChwPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7bj1iX1tjWyhj
W2s+PjJdfDApKzI4Pj4yXSYzMV0ocixwKXwwO3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCsxO2FbcF09
bjt3PWIrMXwwO2JyZWFrfTtkZWZhdWx0Ont3PWJ9fUwxNTMzOmRve2lmKChmLXd8MCk+MSl7aWYo
KGFbd118MCkhPTQ4KXt4PXc7YnJlYWt9bj13KzF8MDtzd2l0Y2goYVtuXXwwKXtjYXNlIDEyMDpj
YXNlIDg4OnticmVha307ZGVmYXVsdDp7eD13O2JyZWFrIEwxNTMzfX1wPWs7cT1iX1tjWyhjW3A+
PjJdfDApKzI4Pj4yXSYzMV0ociw0OCl8MDt5PWNbaj4+Ml18MDtjW2o+PjJdPXkrMTthW3ldPXE7
cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW25dfDApfDA7bj1jW2o+PjJdfDA7Y1tq
Pj4yXT1uKzE7YVtuXT1xO3g9dysyfDB9ZWxzZXt4PXd9fXdoaWxlKDApO2Rve2lmKCh4fDApIT0o
ZnwwKSl7cT1mLTF8MDtpZih4Pj4+MDxxPj4+MCl7ej14O0E9cX1lbHNle2JyZWFrfWRve3E9YVt6
XXwwO2Fbel09YVtBXXwwO2FbQV09cTt6PXorMXwwO0E9QS0xfDA7fXdoaWxlKHo+Pj4wPEE+Pj4w
KX19d2hpbGUoMCk7cT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjddKHQpfDA7aWYoeD4+PjA8
Zj4+PjApe249dSsxfDA7cD1rO3k9bys0fDA7Qj1vKzh8MDtDPTA7RD0wO0U9eDt3aGlsZSgxKXtG
PShhW21dJjEpPT0wO2Rve2lmKChhWyhGP246Y1tCPj4yXXwwKStEfDBdfDApPT0wKXtHPUQ7SD1D
fWVsc2V7aWYoKEN8MCkhPShhWyhGP246Y1tCPj4yXXwwKStEfDBdfDApKXtHPUQ7SD1DO2JyZWFr
fUk9Y1tqPj4yXXwwO2Nbaj4+Ml09SSsxO2FbSV09cTtJPWRbbV18MDtHPShEPj4+MDwoKChJJjF8
MCk9PTA/ST4+PjE6Y1t5Pj4yXXwwKS0xfDApPj4+MCkrRHwwO0g9MH19d2hpbGUoMCk7Rj1iX1tj
WyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW0VdfDApfDA7ST1jW2o+PjJdfDA7Y1tqPj4yXT1J
KzE7YVtJXT1GO0Y9RSsxfDA7aWYoRj4+PjA8Zj4+PjApe0M9SCsxfDA7RD1HO0U9Rn1lbHNle2Jy
ZWFrfX19RT1nKyh4LWIpfDA7RD1jW2o+PjJdfDA7aWYoKEV8MCk9PShEfDApKXticmVha31DPUQt
MXwwO2lmKEU+Pj4wPEM+Pj4wKXtKPUU7Sz1DfWVsc2V7YnJlYWt9ZG97Qz1hW0pdfDA7YVtKXT1h
W0tdfDA7YVtLXT1DO0o9SisxfDA7Sz1LLTF8MDt9d2hpbGUoSj4+PjA8Sz4+PjApfX13aGlsZSgw
KTtpZigoZXwwKT09KGZ8MCkpe0w9Y1tqPj4yXXwwO2NbaD4+Ml09TDtkUChvKTtpPWw7cmV0dXJu
fWVsc2V7TD1nKyhlLWIpfDA7Y1toPj4yXT1MO2RQKG8pO2k9bDtyZXR1cm59fWZ1bmN0aW9uIGdk
KGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anww
O3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAs
eD0wO2Q9aTtpPWkrMTEyfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tr
Pj4yXTtrPWR8MDtsPWQrOHwwO209ZCszMnwwO249ZCs4MHwwO289ZCs4OHwwO3A9ZCs5NnwwO3E9
ZCsxMDR8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3I9aztrPXIrMXwwO3M9Zis0fDA7dD1jW3M+
PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1rfWVsc2V7YVtrXT00Mzt1PXIrMnwwfWlmKCh0JjUx
MnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4O2FbdisxfDBdPTEwODt1
PXYrMnwwO0wxNTc0OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtj
YXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBMMTU3NH1lbHNle2FbdV09
ODg7YnJlYWsgTDE1NzR9YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAwfX19d2hpbGUoMCk7dT1sfDA7
ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThd
PWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMjIsY1syOTU4XXwwLHIsKHI9aSxpPWkr
MTZ8MCxjW3I+PjJdPWgsY1tyKzg+PjJdPWoscil8MCl8MDtpPXI7cj1sK3R8MDtMMTU4Nzpkb3tz
d2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aj1hW3VdfDA7c3dpdGNoKGo8PDI0Pj4yNCl7
Y2FzZSA0NTpjYXNlIDQzOnt3PWwrMXwwO2JyZWFrIEwxNTg3O2JyZWFrfTtkZWZhdWx0Ont9fWlm
KCEoKHR8MCk+MSZqPDwyND4+MjQ9PTQ4KSl7eD0xMjg2O2JyZWFrIEwxNTg3fXN3aXRjaChhW2wr
MXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xMjg2O2JyZWFrIEwx
NTg3fX13PWwrMnwwO2JyZWFrfTtjYXNlIDMyOnt3PXI7YnJlYWt9O2RlZmF1bHQ6e3g9MTI4Nn19
fXdoaWxlKDApO2lmKCh4fDApPT0xMjg2KXt3PXV9eD1tfDA7ZWoocCxmKTtnYyh1LHcscix4LG4s
byxwKTtkeihjW3A+PjJdfDApfDA7Y1txPj4yXT1jW2U+PjJdO2Y5KGIscSx4LGNbbj4+Ml18MCxj
W28+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdlKGIsZCxlLGYsZyxoKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSs4MHwwO2o9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8
MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8MDtwPWQrNzJ8MDtxPWp8MDthW3FdPWFbMjM4NF18
MDthW3ErMXwwXT1hWzIzODV8MF18MDthW3ErMnwwXT1hWzIzODZ8MF18MDthW3ErM3wwXT1hWzIz
ODd8MF18MDthW3ErNHwwXT1hWzIzODh8MF18MDthW3ErNXwwXT1hWzIzODl8MF18MDtyPWorMXww
O3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1yfWVsc2V7YVtyXT00Mzt1
PWorMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4
O3U9disxfDA7TDE2MDU6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9
O2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwxNjA1fWVsc2V7YVt1
XT04ODticmVhayBMMTYwNX1icmVha307ZGVmYXVsdDp7YVt1XT0xMTd9fX13aGlsZSgwKTt1PWt8
MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1
OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwxMixjWzI5NThdfDAscSwocT1pLGk9
aSs4fDAsY1txPj4yXT1oLHEpfDApfDA7aT1xO3E9ayt0fDA7TDE2MTg6ZG97c3dpdGNoKGNbcz4+
Ml0mMTc2fDApe2Nhc2UgMzI6e3c9cTticmVha307Y2FzZSAxNjp7aD1hW3VdfDA7c3dpdGNoKGg8
PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWsrMXwwO2JyZWFrIEwxNjE4O2JyZWFrfTtkZWZh
dWx0Ont9fWlmKCEoKHR8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7eD0xMzExO2JyZWFrIEwxNjE4fXN3
aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xMzEx
O2JyZWFrIEwxNjE4fX13PWsrMnwwO2JyZWFrfTtkZWZhdWx0Ont4PTEzMTF9fX13aGlsZSgwKTtp
ZigoeHwwKT09MTMxMSl7dz11fXg9bHwwO2VqKG8sZik7Z2ModSx3LHEseCxtLG4sbyk7ZHooY1tv
Pj4yXXwwKXwwO2NbcD4+Ml09Y1tlPj4yXTtmOShiLHAseCxjW20+PjJdfDAsY1tuPj4yXXwwLGYs
Zyk7aT1kO3JldHVybn1mdW5jdGlvbiBnZihiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzExMnwwO2s9ZTtlPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrMzJ8MDtuPWQr
ODB8MDtvPWQrODh8MDtwPWQrOTZ8MDtxPWQrMTA0fDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDty
PWs7az1yKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9a31lbHNl
e2Fba109NDM7dT1yKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8
MH1hW3ZdPTEwODthW3YrMXwwXT0xMDg7dT12KzJ8MDtMMTYzNjpkb3tzd2l0Y2godCY3NHwwKXtj
YXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBMMTYzNn1lbHNle2FbdV09
ODg7YnJlYWsgTDE2MzZ9YnJlYWt9O2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtkZWZhdWx0Onth
W3VdPTExN319fXdoaWxlKDApO3U9bHwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dD1nYih1
LDIzLGNbMjk1OF18MCxyLChyPWksaT1pKzE2fDAsY1tyPj4yXT1oLGNbcis4Pj4yXT1qLHIpfDAp
fDA7aT1yO3I9bCt0fDA7TDE2NDk6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMTY6e2o9
YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7dz1sKzF8MDticmVhayBM
MTY0OTticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmajw8MjQ+PjI0PT00OCkpe3g9MTMz
NjticmVhayBMMTY0OX1zd2l0Y2goYVtsKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9
O2RlZmF1bHQ6e3g9MTMzNjticmVhayBMMTY0OX19dz1sKzJ8MDticmVha307Y2FzZSAzMjp7dz1y
O2JyZWFrfTtkZWZhdWx0Ont4PTEzMzZ9fX13aGlsZSgwKTtpZigoeHwwKT09MTMzNil7dz11fXg9
bXwwO2VqKHAsZik7Z2ModSx3LHIseCxuLG8scCk7ZHooY1twPj4yXXwwKXwwO2NbcT4+Ml09Y1tl
Pj4yXTtmOShiLHEseCxjW24+PjJdfDAsY1tvPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlv
biBnZyhiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj0rajt2YXIg
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtkPWk7aT1pKzE1
MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1k
Kzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMTEyfDA7cD1kKzEyMHwwO3E9ZCsxMjh8MDtyPWQr
MTM2fDA7cz1kKzE0NHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1rO2s9dCsxfDA7dT1mKzR8
MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXthW2tdPTQzO3c9dCsyfDB9
aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXwwfXc9diYyNjA7az12Pj4+
MTQ7TDE2Njc6ZG97aWYoKHd8MCk9PTI2MCl7aWYoKGsmMXwwKT09MCl7YVt4XT05Nzt5PTA7YnJl
YWt9ZWxzZXthW3hdPTY1O3k9MDticmVha319ZWxzZXthW3hdPTQ2O3Y9eCsyfDA7YVt4KzF8MF09
NDI7c3dpdGNoKHd8MCl7Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3ZdPTEwMjt5PTE7YnJlYWsg
TDE2Njd9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMTY2N31icmVha307Y2FzZSAyNTY6e2lmKChr
JjF8MCk9PTApe2Fbdl09MTAxO3k9MTticmVhayBMMTY2N31lbHNle2Fbdl09Njk7eT0xO2JyZWFr
IEwxNjY3fWJyZWFrfTtkZWZhdWx0OntpZigoayYxfDApPT0wKXthW3ZdPTEwMzt5PTE7YnJlYWsg
TDE2Njd9ZWxzZXthW3ZdPTcxO3k9MTticmVhayBMMTY2N319fX19d2hpbGUoMCk7az1sfDA7Y1tt
Pj4yXT1rO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9
Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1jWzI5NThdfDA7aWYoeSl7dz1nYihr
LDMwLGwsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDAp
fDA7aT16O0E9d31lbHNle3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrOHwwLGhbej4+M109aix6KXww
KXwwO2k9ejtBPXd9ZG97aWYoKEF8MCk+Mjkpe3c9KGFbMTYyNjRdfDApPT0wO2lmKHkpe2Rve2lm
KHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO2w9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJd
LGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9bH1lbHNle2Rve2lmKHcpe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3c9Z2gobSxjWzI5
NThdfDAsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDAp
fDA7aT16O0I9d313PWNbbT4+Ml18MDtpZigod3wwKSE9MCl7Qz1CO0Q9dztFPXc7YnJlYWt9a1go
KTt3PWNbbT4+Ml18MDtDPUI7RD13O0U9d31lbHNle0M9QTtEPTA7RT1jW20+PjJdfDB9fXdoaWxl
KDApO0E9RStDfDA7TDE3MTY6ZG97c3dpdGNoKGNbdT4+Ml0mMTc2fDApe2Nhc2UgMTY6e0I9YVtF
XXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7Rj1FKzF8MDticmVhayBMMTcx
NjticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEmQjw8MjQ+PjI0PT00OCkpe0c9MTM5Mjti
cmVhayBMMTcxNn1zd2l0Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2Rl
ZmF1bHQ6e0c9MTM5MjticmVhayBMMTcxNn19Rj1FKzJ8MDticmVha307Y2FzZSAzMjp7Rj1BO2Jy
ZWFrfTtkZWZhdWx0OntHPTEzOTJ9fX13aGlsZSgwKTtpZigoR3wwKT09MTM5Mil7Rj1FfWRve2lm
KChFfDApPT0oa3wwKSl7SD1ufDA7ST0wO0o9a31lbHNle0c9a0ooQzw8MSl8MDtpZigoR3wwKSE9
MCl7SD1HO0k9RztKPUU7YnJlYWt9a1goKTtIPTA7ST0wO0o9Y1ttPj4yXXwwfX13aGlsZSgwKTtl
aihxLGYpO2dqKEosRixBLEgsbyxwLHEpO2R6KGNbcT4+Ml18MCl8MDtxPWV8MDtjW3M+PjJdPWNb
cT4+Ml07ZjkocixzLEgsY1tvPj4yXXwwLGNbcD4+Ml18MCxmLGcpO2c9Y1tyPj4yXXwwO2NbcT4+
Ml09ZztjW2I+PjJdPWc7aWYoKEl8MCkhPTApe2tLKEkpfWlmKChEfDApPT0wKXtpPWQ7cmV0dXJu
fWtLKEQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2goYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7
ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2Y9aTtpPWkrMTZ8MDtnPWZ8MDtoPWc7Y1toPj4yXT1lO2Nb
aCs0Pj4yXT0wO2g9YkIoYnwwKXwwO2I9YlEoYXwwLGR8MCxnfDApfDA7aWYoKGh8MCk9PTApe2k9
ZjtyZXR1cm4gYnwwfWJCKGh8MCl8MDtpPWY7cmV0dXJuIGJ8MH1mdW5jdGlvbiBnaShiLGQsZSxm
LGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj0rajt2YXIgaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxC
PTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtkPWk7aT1pKzE1MnwwO2s9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrNDB8
MDtuPWQrNDh8MDtvPWQrMTEyfDA7cD1kKzEyMHwwO3E9ZCsxMjh8MDtyPWQrMTM2fDA7cz1kKzE0
NHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1rO2s9dCsxfDA7dT1mKzR8MDt2PWNbdT4+Ml18
MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXthW2tdPTQzO3c9dCsyfDB9aWYoKHYmMTAyNHww
KT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXwwfXc9diYyNjA7az12Pj4+MTQ7TDE3NTQ6ZG97
aWYoKHd8MCk9PTI2MCl7YVt4XT03Njt2PXgrMXwwO2lmKChrJjF8MCk9PTApe2Fbdl09OTc7eT0w
O2JyZWFrfWVsc2V7YVt2XT02NTt5PTA7YnJlYWt9fWVsc2V7YVt4XT00NjthW3grMXwwXT00Mjth
W3grMnwwXT03Njt2PXgrM3wwO3N3aXRjaCh3fDApe2Nhc2UgNDp7aWYoKGsmMXwwKT09MCl7YVt2
XT0xMDI7eT0xO2JyZWFrIEwxNzU0fWVsc2V7YVt2XT03MDt5PTE7YnJlYWsgTDE3NTR9YnJlYWt9
O2Nhc2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDE3NTR9ZWxzZXth
W3ZdPTY5O3k9MTticmVhayBMMTc1NH1icmVha307ZGVmYXVsdDp7aWYoKGsmMXwwKT09MCl7YVt2
XT0xMDM7eT0xO2JyZWFrIEwxNzU0fWVsc2V7YVt2XT03MTt5PTE7YnJlYWsgTDE3NTR9fX19fXdo
aWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2
NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Y1syOTU4
XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxo
W3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3PWdiKGssMzAsbCx0LCh6PWksaT1pKzh8
MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lmKChBfDApPjI5KXt3PShhWzE2MjY0XXww
KT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFT
KDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxj
W3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPWx9ZWxzZXtkb3tpZih3
KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGls
ZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrOHwwLGhbej4+M109aix6KXwwKXwwO2k9
ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTApe0M9QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1j
W20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7RD0wO0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtB
PUUrQ3wwO0wxODAzOmRve3N3aXRjaChjW3U+PjJdJjE3NnwwKXtjYXNlIDMyOntGPUE7YnJlYWt9
O2Nhc2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7Rj1F
KzF8MDticmVhayBMMTgwMzticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEmQjw8MjQ+PjI0
PT00OCkpe0c9MTQ3NzticmVhayBMMTgwM31zd2l0Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6Y2Fz
ZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MTQ3NzticmVhayBMMTgwM319Rj1FKzJ8MDticmVha307
ZGVmYXVsdDp7Rz0xNDc3fX19d2hpbGUoMCk7aWYoKEd8MCk9PTE0Nzcpe0Y9RX1kb3tpZigoRXww
KT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtHPWtKKEM8PDEpfDA7aWYoKEd8MCkhPTApe0g9
RztJPUc7Sj1FO2JyZWFrfWtYKCk7SD0wO0k9MDtKPWNbbT4+Ml18MH19d2hpbGUoMCk7ZWoocSxm
KTtnaihKLEYsQSxILG8scCxxKTtkeihjW3E+PjJdfDApfDA7cT1lfDA7Y1tzPj4yXT1jW3E+PjJd
O2Y5KHIscyxILGNbbz4+Ml18MCxjW3A+PjJdfDAsZixnKTtnPWNbcj4+Ml18MDtjW3E+PjJdPWc7
Y1tiPj4yXT1nO2lmKChJfDApIT0wKXtrSyhJKX1pZigoRHwwKT09MCl7aT1kO3JldHVybn1rSyhE
KTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdqKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wO2w9aTtpPWkrNDh8MDttPWx8MDtuPWwrMTZ8
MDtvPWwrMzJ8MDtwPWt8MDtrPWNbcD4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbbj4+Ml09
MTU2OTY7Y1tuKzQ+PjJdPTEyO2Nbbis4Pj4yXT0wO2RXKDE1Njk2LG4sOTYpfW49KGNbMzkyNV18
MCktMXwwO3E9Y1trKzg+PjJdfDA7aWYoKGNbaysxMj4+Ml18MCktcT4+Mj4+PjA8PW4+Pj4wKXty
PWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9az1jW3ErKG48PDIpPj4yXXwwO2lm
KChrfDApPT0wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9cj1rO3M9Y1tw
Pj4yXXwwO2lmKChjWzM4MjhdfDApIT0tMSl7Y1ttPj4yXT0xNTMxMjtjW20rND4+Ml09MTI7Y1tt
Kzg+PjJdPTA7ZFcoMTUzMTIsbSw5Nil9bT0oY1szODI5XXwwKS0xfDA7cD1jW3MrOD4+Ml18MDtp
ZigoY1tzKzEyPj4yXXwwKS1wPj4yPj4+MDw9bT4+PjApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7Ymwo
dHwwLDgxNzYsMTM0KX1zPWNbcCsobTw8Mik+PjJdfDA7aWYoKHN8MCk9PTApe3Q9Yk8oNCl8MDt1
PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX10PXM7YlpbY1soY1tzPj4yXXwwKSsyMD4+Ml0mMTI3
XShvLHQpO2Nbaj4+Ml09Zzt1PWFbYl18MDtzd2l0Y2godTw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2Ug
NDM6e209Yl9bY1soY1trPj4yXXwwKSsyOD4+Ml0mMzFdKHIsdSl8MDt1PWNbaj4+Ml18MDtjW2o+
PjJdPXUrMTthW3VdPW07dj1iKzF8MDticmVha307ZGVmYXVsdDp7dj1ifX1tPWY7TDE4NTE6ZG97
aWYoKG0tdnwwKT4xKXtpZigoYVt2XXwwKSE9NDgpe3c9djt4PTE1MzI7YnJlYWt9dT12KzF8MDtz
d2l0Y2goYVt1XXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7dz12O3g9MTUz
MjticmVhayBMMTg1MX19cD1rO249Yl9bY1soY1twPj4yXXwwKSsyOD4+Ml0mMzFdKHIsNDgpfDA7
cT1jW2o+PjJdfDA7Y1tqPj4yXT1xKzE7YVtxXT1uO249disyfDA7cT1iX1tjWyhjW3A+PjJdfDAp
KzI4Pj4yXSYzMV0ocixhW3VdfDApfDA7dT1jW2o+PjJdfDA7Y1tqPj4yXT11KzE7YVt1XT1xO3E9
bjt3aGlsZSgxKXtpZihxPj4+MD49Zj4+PjApe3k9cTt6PW47YnJlYWsgTDE4NTF9dT1hW3FdfDA7
ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThd
PWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoYTModTw8MjQ+PjI0fDAsY1syOTU4XXwwKXww
KT09MCl7eT1xO3o9bjticmVha31lbHNle3E9cSsxfDB9fX1lbHNle3c9djt4PTE1MzJ9fXdoaWxl
KDApO0wxODY2OmRve2lmKCh4fDApPT0xNTMyKXt3aGlsZSgxKXt4PTA7aWYodz4+PjA+PWY+Pj4w
KXt5PXc7ej12O2JyZWFrIEwxODY2fXE9YVt3XXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYo
KGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7
aWYoKGJIKHE8PDI0Pj4yNHwwLGNbMjk1OF18MCl8MCk9PTApe3k9dzt6PXY7YnJlYWt9ZWxzZXt3
PXcrMXwwO3g9MTUzMn19fX13aGlsZSgwKTt4PW87dz1vO3Y9ZFt3XXwwO2lmKCh2JjF8MCk9PTAp
e0E9dj4+PjF9ZWxzZXtBPWNbbys0Pj4yXXwwfWRve2lmKChBfDApPT0wKXt2PWNbaj4+Ml18MDt1
PWNbKGNbaz4+Ml18MCkrMzI+PjJdfDA7Y2FbdSYxNV0ocix6LHksdil8MDtjW2o+PjJdPShjW2o+
PjJdfDApKyh5LXopfWVsc2V7ZG97aWYoKHp8MCkhPSh5fDApKXt2PXktMXwwO2lmKHo+Pj4wPHY+
Pj4wKXtCPXo7Qz12fWVsc2V7YnJlYWt9ZG97dj1hW0JdfDA7YVtCXT1hW0NdfDA7YVtDXT12O0I9
QisxfDA7Qz1DLTF8MDt9d2hpbGUoQj4+PjA8Qz4+PjApfX13aGlsZSgwKTtxPWIwW2NbKGNbcz4+
Ml18MCkrMTY+PjJdJjEyN10odCl8MDtpZih6Pj4+MDx5Pj4+MCl7dj14KzF8MDt1PW8rNHwwO249
bys4fDA7cD1rO0Q9MDtFPTA7Rj16O3doaWxlKDEpe0c9KGFbd10mMSk9PTA7ZG97aWYoKGFbKEc/
djpjW24+PjJdfDApK0V8MF18MCk+MCl7aWYoKER8MCkhPShhWyhHP3Y6Y1tuPj4yXXwwKStFfDBd
fDApKXtIPUU7ST1EO2JyZWFrfUo9Y1tqPj4yXXwwO2Nbaj4+Ml09SisxO2FbSl09cTtKPWRbd118
MDtIPShFPj4+MDwoKChKJjF8MCk9PTA/Sj4+PjE6Y1t1Pj4yXXwwKS0xfDApPj4+MCkrRXwwO0k9
MH1lbHNle0g9RTtJPUR9fXdoaWxlKDApO0c9Yl9bY1soY1twPj4yXXwwKSsyOD4+Ml0mMzFdKHIs
YVtGXXwwKXwwO0o9Y1tqPj4yXXwwO2Nbaj4+Ml09SisxO2FbSl09RztHPUYrMXwwO2lmKEc+Pj4w
PHk+Pj4wKXtEPUkrMXwwO0U9SDtGPUd9ZWxzZXticmVha319fUY9Zysoei1iKXwwO0U9Y1tqPj4y
XXwwO2lmKChGfDApPT0oRXwwKSl7YnJlYWt9RD1FLTF8MDtpZihGPj4+MDxEPj4+MCl7Sz1GO0w9
RH1lbHNle2JyZWFrfWRve0Q9YVtLXXwwO2FbS109YVtMXXwwO2FbTF09RDtLPUsrMXwwO0w9TC0x
fDA7fXdoaWxlKEs+Pj4wPEw+Pj4wKX19d2hpbGUoMCk7TDE5MDU6ZG97aWYoeT4+PjA8Zj4+PjAp
e0w9aztLPXk7d2hpbGUoMSl7ej1hW0tdfDA7aWYoejw8MjQ+PjI0PT00Nil7YnJlYWt9SD1iX1tj
WyhjW0w+PjJdfDApKzI4Pj4yXSYzMV0ocix6KXwwO3o9Y1tqPj4yXXwwO2Nbaj4+Ml09eisxO2Fb
el09SDtIPUsrMXwwO2lmKEg+Pj4wPGY+Pj4wKXtLPUh9ZWxzZXtNPUg7YnJlYWsgTDE5MDV9fUw9
YjBbY1soY1tzPj4yXXwwKSsxMj4+Ml0mMTI3XSh0KXwwO0g9Y1tqPj4yXXwwO2Nbaj4+Ml09SCsx
O2FbSF09TDtNPUsrMXwwfWVsc2V7TT15fX13aGlsZSgwKTtjYVtjWyhjW2s+PjJdfDApKzMyPj4y
XSYxNV0ocixNLGYsY1tqPj4yXXwwKXwwO3I9KGNbaj4+Ml18MCkrKG0tTSl8MDtjW2o+PjJdPXI7
aWYoKGV8MCk9PShmfDApKXtOPXI7Y1toPj4yXT1OO2RQKG8pO2k9bDtyZXR1cm59Tj1nKyhlLWIp
fDA7Y1toPj4yXT1OO2RQKG8pO2k9bDtyZXR1cm59ZnVuY3Rpb24gZ2soYSl7YT1hfDA7ZGUoYXww
KTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZ2woYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rp
b24gZ20oYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3Zh
ciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MDtkPWk7aT1pKzE0NHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNb
aj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8MDttPWQrMTEyfDA7bj1kKzEyMHwwO289ZCsxMjh8
MDtwPWQrMTM2fDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8MF09YVsyMzg1fDBdfDA7YVtx
KzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7YVtxKzR8MF09YVsyMzg4fDBd
fDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0
JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9
dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXwwO0wxOTI4OmRve3N3aXRjaCh0
Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0w
KXthW3VdPTEyMDticmVhayBMMTkyOH1lbHNle2FbdV09ODg7YnJlYWsgTDE5Mjh9YnJlYWt9O2Rl
ZmF1bHQ6e2FbdV09MTAwfX19d2hpbGUoMCk7dT1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNbcT4+Ml09aCxxKXwwKXwwO2k9
cTtxPWsrdHwwO0wxOTQxOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDMyOnt3PXE7YnJl
YWt9O2Nhc2UgMTY6e2g9YVt1XXwwO3N3aXRjaChoPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7
dz1rKzF8MDticmVhayBMMTk0MTticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmaDw8MjQ+
PjI0PT00OCkpe3g9MTYwMDticmVhayBMMTk0MX1zd2l0Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6
Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTYwMDticmVhayBMMTk0MX19dz1rKzJ8MDticmVh
a307ZGVmYXVsdDp7eD0xNjAwfX19d2hpbGUoMCk7aWYoKHh8MCk9PTE2MDApe3c9dX14PWx8MDtl
aihvLGYpO2dwKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8MDtjW3A+PjJdPWNbZT4+Ml07
Z3EoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ24o
YixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MDtkPWk7aT1pKzEwNHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+
PjJdPWNbaj4+Ml07aj1kfDA7az1kKzI0fDA7bD1kKzQ4fDA7bT1kKzg4fDA7bj1kKzk2fDA7bz1k
KzE2fDA7YVtvXT1hWzIzOTJdfDA7YVtvKzF8MF09YVsyMzkzfDBdfDA7YVtvKzJ8MF09YVsyMzk0
fDBdfDA7YVtvKzN8MF09YVsyMzk1fDBdfDA7YVtvKzR8MF09YVsyMzk2fDBdfDA7YVtvKzV8MF09
YVsyMzk3fDBdfDA7cD1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDAp
PT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtxPWdiKHAsMjAsY1sy
OTU4XXwwLG8sKG89aSxpPWkrOHwwLGNbbz4+Ml09aCxvKXwwKXwwO2k9bztvPWsrcXwwO0wxOTU4
OmRve3N3aXRjaChjW2YrND4+Ml0mMTc2fDApe2Nhc2UgMTY6e2g9YVtwXXwwO3N3aXRjaChoPDwy
ND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7cj1rKzF8MDticmVhayBMMTk1ODticmVha307ZGVmYXVs
dDp7fX1pZighKChxfDApPjEmaDw8MjQ+PjI0PT00OCkpe3M9MTYxNTticmVhayBMMTk1OH1zd2l0
Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3M9MTYxNTti
cmVhayBMMTk1OH19cj1rKzJ8MDticmVha307Y2FzZSAzMjp7cj1vO2JyZWFrfTtkZWZhdWx0Ontz
PTE2MTV9fX13aGlsZSgwKTtpZigoc3wwKT09MTYxNSl7cj1wfWVqKG0sZik7cz1tfDA7bT1jW3M+
PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2o+PjJdPTE1Njk2O2Nbais0Pj4yXT0xMjtjW2or
OD4+Ml09MDtkVygxNTY5NixqLDk2KX1qPShjWzM5MjVdfDApLTF8MDtoPWNbbSs4Pj4yXXwwO2Rv
e2lmKChjW20rMTI+PjJdfDApLWg+PjI+Pj4wPmo+Pj4wKXt0PWNbaCsoajw8Mik+PjJdfDA7aWYo
KHR8MCk9PTApe2JyZWFrfXU9dDt2PWNbcz4+Ml18MDtkeih2KXwwO3Y9bHwwO3c9Y1soY1t0Pj4y
XXwwKSszMj4+Ml18MDtjYVt3JjE1XSh1LHAsbyx2KXwwO3U9bCtxfDA7aWYoKHJ8MCk9PShvfDAp
KXt4PXU7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16O2Y5KGIsbix2LHgsdSxmLGcp
O2k9ZDtyZXR1cm59eD1sKyhyLWspfDA7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16
O2Y5KGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShkKTti
bChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdvKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MDtqPWk7aT1pKzQ4fDA7az1lO2U9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorMTZ8MDttPWorMjR8
MDtuPWorMzJ8MDtpZigoY1tmKzQ+PjJdJjF8MCk9PTApe289Y1soY1tkPj4yXXwwKSsyND4+Ml18
MDtjW2w+PjJdPWNbZT4+Ml07YjlbbyYzMV0oYixkLGwsZixnLGgmMSk7aT1qO3JldHVybn1laiht
LGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM4MjZdfDApIT0tMSl7Y1trPj4yXT0xNTMwNDtj
W2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTUzMDQsayw5Nil9az0oY1szODI3XXwwKS0xfDA7
Zz1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1nPj4yPj4+MD5rPj4+MCl7bD1jW2cr
KGs8PDIpPj4yXXwwO2lmKChsfDApPT0wKXticmVha31kPWw7bz1jW2Y+PjJdfDA7ZHoobyl8MDtv
PWNbbD4+Ml18MDtpZihoKXtiWltjW28rMjQ+PjJdJjEyN10obixkKX1lbHNle2JaW2NbbysyOD4+
Ml0mMTI3XShuLGQpfWQ9bjtvPWFbZF18MDtpZigobyYxKT09MCl7bD1uKzR8MDtwPWw7cT1sO3I9
bis4fDB9ZWxzZXtsPW4rOHwwO3A9Y1tsPj4yXXwwO3E9bis0fDA7cj1sfWw9ZXwwO3M9cDt0PW87
d2hpbGUoMSl7aWYoKHQmMSk9PTApe3U9cX1lbHNle3U9Y1tyPj4yXXwwfW89dCYyNTU7aWYoKG8m
MXwwKT09MCl7dj1vPj4+MX1lbHNle3Y9Y1txPj4yXXwwfWlmKChzfDApPT0odSsodjw8Mil8MCkp
e2JyZWFrfW89Y1tzPj4yXXwwO3c9Y1tsPj4yXXwwO2Rve2lmKCh3fDApIT0wKXt4PXcrMjR8MDt5
PWNbeD4+Ml18MDtpZigoeXwwKT09KGNbdysyOD4+Ml18MCkpe3o9Yl9bY1soY1t3Pj4yXXwwKSs1
Mj4+Ml0mMzFdKHcsbyl8MH1lbHNle2NbeD4+Ml09eSs0O2NbeT4+Ml09bzt6PW99aWYoKHp8MCkh
PS0xKXticmVha31jW2w+PjJdPTB9fXdoaWxlKDApO3M9cys0fDA7dD1hW2RdfDB9Y1tiPj4yXT1j
W2w+PjJdO2VlKG4pO2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8oNCl8MDtrcShqKTtibChqfDAs
ODE3NiwxMzQpfWZ1bmN0aW9uIGdwKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTAsSz0wLEw9MDtsPWk7aT1pKzQ4fDA7bT1sfDA7bj1sKzE2fDA7bz1sKzMyfDA7
cD1rfDA7az1jW3A+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW24+PjJdPTE1Njg4O2Nbbis0
Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTY4OCxuLDk2KX1uPShjWzM5MjNdfDApLTF8MDtxPWNb
ays4Pj4yXXwwO2lmKChjW2srMTI+PjJdfDApLXE+PjI+Pj4wPD1uPj4+MCl7cj1iTyg0KXwwO3M9
cjtrcShzKTtibChyfDAsODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+Ml18MDtpZigoa3wwKT09MCl7
cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfXI9aztzPWNbcD4+Ml18MDtpZigo
Y1szODI2XXwwKSE9LTEpe2NbbT4+Ml09MTUzMDQ7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0wO2RX
KDE1MzA0LG0sOTYpfW09KGNbMzgyN118MCktMXwwO3A9Y1tzKzg+PjJdfDA7aWYoKGNbcysxMj4+
Ml18MCktcD4+Mj4+PjA8PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEz
NCl9cz1jW3ArKG08PDIpPj4yXXwwO2lmKChzfDApPT0wKXt0PWJPKDQpfDA7dT10O2txKHUpO2Js
KHR8MCw4MTc2LDEzNCl9dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+PjJdJjEyN10obyx0KTt1PW87
bT1vO3A9ZFttXXwwO2lmKChwJjF8MCk9PTApe3Y9cD4+PjF9ZWxzZXt2PWNbbys0Pj4yXXwwfWRv
e2lmKCh2fDApPT0wKXtwPWNbKGNbaz4+Ml18MCkrNDg+PjJdfDA7Y2FbcCYxNV0ocixiLGYsZyl8
MDtjW2o+PjJdPWcrKGYtYjw8Mil9ZWxzZXtjW2o+PjJdPWc7cD1hW2JdfDA7c3dpdGNoKHA8PDI0
Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntuPWJfW2NbKGNbaz4+Ml18MCkrNDQ+PjJdJjMxXShyLHAp
fDA7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzQ7Y1twPj4yXT1uO3c9YisxfDA7YnJlYWt9O2RlZmF1
bHQ6e3c9Yn19TDIwNTA6ZG97aWYoKGYtd3wwKT4xKXtpZigoYVt3XXwwKSE9NDgpe3g9dzticmVh
a31uPXcrMXwwO3N3aXRjaChhW25dfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0
Ont4PXc7YnJlYWsgTDIwNTB9fXA9aztxPWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLDQ4
KXwwO3k9Y1tqPj4yXXwwO2Nbaj4+Ml09eSs0O2NbeT4+Ml09cTtxPWJfW2NbKGNbcD4+Ml18MCkr
NDQ+PjJdJjMxXShyLGFbbl18MCl8MDtuPWNbaj4+Ml18MDtjW2o+PjJdPW4rNDtjW24+PjJdPXE7
eD13KzJ8MH1lbHNle3g9d319d2hpbGUoMCk7ZG97aWYoKHh8MCkhPShmfDApKXtxPWYtMXwwO2lm
KHg+Pj4wPHE+Pj4wKXt6PXg7QT1xfWVsc2V7YnJlYWt9ZG97cT1hW3pdfDA7YVt6XT1hW0FdfDA7
YVtBXT1xO3o9eisxfDA7QT1BLTF8MDt9d2hpbGUoej4+PjA8QT4+PjApfX13aGlsZSgwKTtxPWIw
W2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10odCl8MDtpZih4Pj4+MDxmPj4+MCl7bj11KzF8MDtw
PWs7eT1vKzR8MDtCPW8rOHwwO0M9MDtEPTA7RT14O3doaWxlKDEpe0Y9KGFbbV0mMSk9PTA7ZG97
aWYoKGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCk9PTApe0c9RDtIPUN9ZWxzZXtpZigoQ3wwKSE9
KGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCkpe0c9RDtIPUM7YnJlYWt9ST1jW2o+PjJdfDA7Y1tq
Pj4yXT1JKzQ7Y1tJPj4yXT1xO0k9ZFttXXwwO0c9KEQ+Pj4wPCgoKEkmMXwwKT09MD9JPj4+MTpj
W3k+PjJdfDApLTF8MCk+Pj4wKStEfDA7SD0wfX13aGlsZSgwKTtGPWJfW2NbKGNbcD4+Ml18MCkr
NDQ+PjJdJjMxXShyLGFbRV18MCl8MDtJPWNbaj4+Ml18MDtjW2o+PjJdPUkrNDtjW0k+PjJdPUY7
Rj1FKzF8MDtpZihGPj4+MDxmPj4+MCl7Qz1IKzF8MDtEPUc7RT1GfWVsc2V7YnJlYWt9fX1FPWcr
KHgtYjw8Mil8MDtEPWNbaj4+Ml18MDtpZigoRXwwKT09KER8MCkpe2JyZWFrfUM9RC00fDA7aWYo
RT4+PjA8Qz4+PjApe0o9RTtLPUN9ZWxzZXticmVha31kb3tDPWNbSj4+Ml18MDtjW0o+PjJdPWNb
Sz4+Ml07Y1tLPj4yXT1DO0o9Sis0fDA7Sz1LLTR8MDt9d2hpbGUoSj4+PjA8Sz4+PjApfX13aGls
ZSgwKTtpZigoZXwwKT09KGZ8MCkpe0w9Y1tqPj4yXXwwO2NbaD4+Ml09TDtkUChvKTtpPWw7cmV0
dXJufWVsc2V7TD1nKyhlLWI8PDIpfDA7Y1toPj4yXT1MO2RQKG8pO2k9bDtyZXR1cm59fWZ1bmN0
aW9uIGdxKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2s9aTtpPWkrMTZ8MDts
PWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2w+PjJdO2w9a3wwO209ZHwwO2Q9
Y1ttPj4yXXwwO2lmKChkfDApPT0wKXtjW2I+PjJdPTA7aT1rO3JldHVybn1uPWc7Zz1lO289bi1n
Pj4yO3A9aCsxMnwwO2g9Y1twPj4yXXwwO3E9KGh8MCk+KG98MCk/aC1vfDA6MDtvPWY7aD1vLWd8
MDtnPWg+PjI7ZG97aWYoKGh8MCk+MCl7aWYoKGIxW2NbKGNbZD4+Ml18MCkrNDg+PjJdJjYzXShk
LGUsZyl8MCk9PShnfDApKXticmVha31jW20+PjJdPTA7Y1tiPj4yXT0wO2k9aztyZXR1cm59fXdo
aWxlKDApO2Rve2lmKChxfDApPjApe2V5KGwscSxqKTtpZigoYVtsXSYxKT09MCl7cj1sKzR8MH1l
bHNle3I9Y1tsKzg+PjJdfDB9aWYoKGIxW2NbKGNbZD4+Ml18MCkrNDg+PjJdJjYzXShkLHIscSl8
MCk9PShxfDApKXtlZShsKTticmVha31jW20+PjJdPTA7Y1tiPj4yXT0wO2VlKGwpO2k9aztyZXR1
cm59fXdoaWxlKDApO2w9bi1vfDA7bz1sPj4yO2Rve2lmKChsfDApPjApe2lmKChiMVtjWyhjW2Q+
PjJdfDApKzQ4Pj4yXSY2M10oZCxmLG8pfDApPT0ob3wwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+
Ml09MDtpPWs7cmV0dXJufX13aGlsZSgwKTtjW3A+PjJdPTA7Y1tiPj4yXT1kO2k9aztyZXR1cm59
ZnVuY3Rpb24gZ3IoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsyMzJ8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7bj1kKzIwMHwwO289ZCsyMDh8
MDtwPWQrMjE2fDA7cT1kKzIyNHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7cj1rO2s9cisxfDA7
cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PWt9ZWxzZXthW2tdPTQzO3U9
cisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7
YVt2KzF8MF09MTA4O3U9disyfDA7TDIxMTk6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA4OntpZigo
dCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDIxMTl9ZWxzZXthW3VdPTg4O2JyZWFrIEwy
MTE5fWJyZWFrfTtjYXNlIDY0OnthW3VdPTExMTticmVha307ZGVmYXVsdDp7YVt1XT0xMDB9fX13
aGlsZSgwKTt1PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTAp
e2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwyMixjWzI5NThd
fDAsciwocj1pLGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09aixyKXwwKXwwO2k9cjtyPWwr
dHwwO0wyMTMyOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDMyOnt3PXI7YnJlYWt9O2Nh
c2UgMTY6e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7dz1sKzF8
MDticmVhayBMMjEzMjticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmajw8MjQ+PjI0PT00
OCkpe3g9MTc2MDticmVhayBMMjEzMn1zd2l0Y2goYVtsKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4
ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTc2MDticmVhayBMMjEzMn19dz1sKzJ8MDticmVha307ZGVm
YXVsdDp7eD0xNzYwfX19d2hpbGUoMCk7aWYoKHh8MCk9PTE3NjApe3c9dX14PW18MDtlaihwLGYp
O2dwKHUsdyxyLHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+PjJdPWNbZT4+Ml07Z3EoYixx
LHgsY1tuPj4yXXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ3MoYixkLGUs
ZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1p
KzE0NHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7
az1kKzh8MDtsPWQrMjR8MDttPWQrMTEyfDA7bj1kKzEyMHwwO289ZCsxMjh8MDtwPWQrMTM2fDA7
cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8MF09YVsyMzg1fDBdfDA7YVtxKzJ8MF09YVsyMzg2
fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7YVtxKzR8MF09YVsyMzg4fDBdfDA7YVtxKzV8MF09
YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTAp
e3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09
MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXwwO0wyMTUwOmRve3N3aXRjaCh0Jjc0fDApe2Nhc2Ug
NjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDti
cmVhayBMMjE1MH1lbHNle2FbdV09ODg7YnJlYWsgTDIxNTB9YnJlYWt9O2RlZmF1bHQ6e2FbdV09
MTE3fX19d2hpbGUoMCk7dT1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMTIs
Y1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNbcT4+Ml09aCxxKXwwKXwwO2k9cTtxPWsrdHwwO0wy
MTYzOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2OntoPWFbdV18MDtzd2l0Y2goaDw8
MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsgTDIxNjM7YnJlYWt9O2RlZmF1
bHQ6e319aWYoISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTE3ODU7YnJlYWsgTDIxNjN9c3dp
dGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE3ODU7
YnJlYWsgTDIxNjN9fXc9aysyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9cTticmVha307ZGVmYXVsdDp7
eD0xNzg1fX19d2hpbGUoMCk7aWYoKHh8MCk9PTE3ODUpe3c9dX14PWx8MDtlaihvLGYpO2dwKHUs
dyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8MDtjW3A+PjJdPWNbZT4+Ml07Z3EoYixwLHgsY1tt
Pj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ3QoYixkLGUsZixnLGgs
ail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsy
NDB8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9
ZCs4fDA7bT1kKzMyfDA7bj1kKzIwOHwwO289ZCsyMTZ8MDtwPWQrMjI0fDA7cT1kKzIzMnwwO2Nb
az4+Ml09Mzc7Y1trKzQ+PjJdPTA7cj1rO2s9cisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigo
dCYyMDQ4fDApPT0wKXt1PWt9ZWxzZXthW2tdPTQzO3U9cisyfDB9aWYoKHQmNTEyfDApPT0wKXt2
PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7YVt2KzF8MF09MTA4O3U9disyfDA7TDIx
ODE6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7
YnJlYWsgTDIxODF9ZWxzZXthW3VdPTg4O2JyZWFrIEwyMTgxfWJyZWFrfTtjYXNlIDY0OnthW3Vd
PTExMTticmVha307ZGVmYXVsdDp7YVt1XT0xMTd9fX13aGlsZSgwKTt1PWx8MDtkb3tpZigoYVsx
NjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0
LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwyMyxjWzI5NThdfDAsciwocj1pLGk9aSsxNnwwLGNbcj4+
Ml09aCxjW3IrOD4+Ml09aixyKXwwKXwwO2k9cjtyPWwrdHwwO0wyMTk0OmRve3N3aXRjaChjW3M+
PjJdJjE3NnwwKXtjYXNlIDE2OntqPWFbdV18MDtzd2l0Y2goajw8MjQ+PjI0KXtjYXNlIDQ1OmNh
c2UgNDM6e3c9bCsxfDA7YnJlYWsgTDIxOTQ7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4x
Jmo8PDI0Pj4yND09NDgpKXt4PTE4MTA7YnJlYWsgTDIxOTR9c3dpdGNoKGFbbCsxfDBdfDApe2Nh
c2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE4MTA7YnJlYWsgTDIxOTR9fXc9bCsy
fDA7YnJlYWt9O2Nhc2UgMzI6e3c9cjticmVha307ZGVmYXVsdDp7eD0xODEwfX19d2hpbGUoMCk7
aWYoKHh8MCk9PTE4MTApe3c9dX14PW18MDtlaihwLGYpO2dwKHUsdyxyLHgsbixvLHApO2R6KGNb
cD4+Ml18MCl8MDtjW3E+PjJdPWNbZT4+Ml07Z3EoYixxLHgsY1tuPj4yXXwwLGNbbz4+Ml18MCxm
LGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ3UoYixkLGUsZixnLGope2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2o9K2o7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTA7ZD1pO2k9aSszMjB8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tl
Pj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzQwfDA7bj1kKzQ4fDA7bz1kKzI4MHwwO3A9
ZCsyODh8MDtxPWQrMjk2fDA7cj1kKzMwNHwwO3M9ZCszMTJ8MDtjW2s+PjJdPTM3O2Nbays0Pj4y
XT0wO3Q9aztrPXQrMXwwO3U9Zis0fDA7dj1jW3U+PjJdfDA7aWYoKHYmMjA0OHwwKT09MCl7dz1r
fWVsc2V7YVtrXT00Mzt3PXQrMnwwfWlmKCh2JjEwMjR8MCk9PTApe3g9d31lbHNle2Fbd109MzU7
eD13KzF8MH13PXYmMjYwO2s9dj4+PjE0O0wyMjEyOmRve2lmKCh3fDApPT0yNjApe2lmKChrJjF8
MCk9PTApe2FbeF09OTc7eT0wO2JyZWFrfWVsc2V7YVt4XT02NTt5PTA7YnJlYWt9fWVsc2V7YVt4
XT00Njt2PXgrMnwwO2FbeCsxfDBdPTQyO3N3aXRjaCh3fDApe2Nhc2UgMjU2OntpZigoayYxfDAp
PT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDIyMTJ9ZWxzZXthW3ZdPTY5O3k9MTticmVhayBMMjIx
Mn1icmVha307Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3ZdPTEwMjt5PTE7YnJlYWsgTDIyMTJ9
ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMjIxMn1icmVha307ZGVmYXVsdDp7aWYoKGsmMXwwKT09
MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwyMjEyfWVsc2V7YVt2XT03MTt5PTE7YnJlYWsgTDIyMTJ9
fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChi
YygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9
Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4
Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3PWdiKGssMzAsbCx0LCh6PWks
aT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lmKChBfDApPjI5KXt3PShhWzE2
MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5
NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkr
MTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPWx9ZWxzZXtk
b3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXww
fX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4
Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTAp
e0M9QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7
RD0wO0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wyMjYxOmRve3N3aXRjaChjW3U+PjJd
JjE3NnwwKXtjYXNlIDMyOntGPUE7YnJlYWt9O2Nhc2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwy
ND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7Rj1FKzF8MDticmVhayBMMjI2MTticmVha307ZGVmYXVs
dDp7fX1pZighKChDfDApPjEmQjw8MjQ+PjI0PT00OCkpe0c9MTg2NjticmVhayBMMjI2MX1zd2l0
Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MTg2Njti
cmVhayBMMjI2MX19Rj1FKzJ8MDticmVha307ZGVmYXVsdDp7Rz0xODY2fX19d2hpbGUoMCk7aWYo
KEd8MCk9PTE4NjYpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtH
PWtKKEM8PDMpfDA7dT1HO2lmKChHfDApIT0wKXtIPXU7ST11O0o9RTticmVha31rWCgpO0g9dTtJ
PXU7Sj1jW20+PjJdfDB9fXdoaWxlKDApO2VqKHEsZik7Z3YoSixGLEEsSCxvLHAscSk7ZHooY1tx
Pj4yXXwwKXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4yXTtncShyLHMsSCxjW28+PjJdfDAsY1twPj4y
XXwwLGYsZyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09ZztpZigoSXwwKSE9MCl7a0so
SSl9aWYoKER8MCk9PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3JldHVybn1mdW5jdGlvbiBndihi
LGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2
YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0w
LE49MDtsPWk7aT1pKzQ4fDA7bT1sfDA7bj1sKzE2fDA7bz1sKzMyfDA7cD1rfDA7az1jW3A+PjJd
fDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW24+PjJdPTE1Njg4O2Nbbis0Pj4yXT0xMjtjW24rOD4+
Ml09MDtkVygxNTY4OCxuLDk2KX1uPShjWzM5MjNdfDApLTF8MDtxPWNbays4Pj4yXXwwO2lmKChj
W2srMTI+PjJdfDApLXE+PjI+Pj4wPD1uPj4+MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAs
ODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+Ml18MDtpZigoa3wwKT09MCl7cj1iTyg0KXwwO3M9cjtr
cShzKTtibChyfDAsODE3NiwxMzQpfXI9aztzPWNbcD4+Ml18MDtpZigoY1szODI2XXwwKSE9LTEp
e2NbbT4+Ml09MTUzMDQ7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1MzA0LG0sOTYpfW09
KGNbMzgyN118MCktMXwwO3A9Y1tzKzg+PjJdfDA7aWYoKGNbcysxMj4+Ml18MCktcD4+Mj4+PjA8
PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9cz1jW3ArKG08PDIp
Pj4yXXwwO2lmKChzfDApPT0wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9
dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+PjJdJjEyN10obyx0KTtjW2o+PjJdPWc7dT1hW2JdfDA7
c3dpdGNoKHU8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnttPWJfW2NbKGNbaz4+Ml18MCkrNDQ+
PjJdJjMxXShyLHUpfDA7dT1jW2o+PjJdfDA7Y1tqPj4yXT11KzQ7Y1t1Pj4yXT1tO3Y9YisxfDA7
YnJlYWt9O2RlZmF1bHQ6e3Y9Yn19bT1mO0wyMzA5OmRve2lmKChtLXZ8MCk+MSl7aWYoKGFbdl18
MCkhPTQ4KXt3PXY7eD0xOTIxO2JyZWFrfXU9disxfDA7c3dpdGNoKGFbdV18MCl7Y2FzZSAxMjA6
Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3c9djt4PTE5MjE7YnJlYWsgTDIzMDl9fXA9aztuPWJf
W2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLDQ4KXwwO3E9Y1tqPj4yXXwwO2Nbaj4+Ml09cSs0
O2NbcT4+Ml09bjtuPXYrMnwwO3E9Yl9bY1soY1twPj4yXXwwKSs0ND4+Ml0mMzFdKHIsYVt1XXww
KXwwO3U9Y1tqPj4yXXwwO2Nbaj4+Ml09dSs0O2NbdT4+Ml09cTtxPW47d2hpbGUoMSl7aWYocT4+
PjA+PWY+Pj4wKXt5PXE7ej1uO2JyZWFrIEwyMzA5fXU9YVtxXXwwO2Rve2lmKChhWzE2MjY0XXww
KT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19
d2hpbGUoMCk7aWYoKGEzKHU8PDI0Pj4yNHwwLGNbMjk1OF18MCl8MCk9PTApe3k9cTt6PW47YnJl
YWt9ZWxzZXtxPXErMXwwfX19ZWxzZXt3PXY7eD0xOTIxfX13aGlsZSgwKTtMMjMyNDpkb3tpZigo
eHwwKT09MTkyMSl7d2hpbGUoMSl7eD0wO2lmKHc+Pj4wPj1mPj4+MCl7eT13O3o9djticmVhayBM
MjMyNH1xPWFbd118MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTAp
e2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChiSChxPDwyND4+MjR8
MCxjWzI5NThdfDApfDApPT0wKXt5PXc7ej12O2JyZWFrfWVsc2V7dz13KzF8MDt4PTE5MjF9fX19
d2hpbGUoMCk7eD1vO3c9bzt2PWRbd118MDtpZigodiYxfDApPT0wKXtBPXY+Pj4xfWVsc2V7QT1j
W28rND4+Ml18MH1kb3tpZigoQXwwKT09MCl7dj1jW2o+PjJdfDA7dT1jWyhjW2s+PjJdfDApKzQ4
Pj4yXXwwO2NhW3UmMTVdKHIseix5LHYpfDA7Y1tqPj4yXT0oY1tqPj4yXXwwKSsoeS16PDwyKX1l
bHNle2Rve2lmKCh6fDApIT0oeXwwKSl7dj15LTF8MDtpZih6Pj4+MDx2Pj4+MCl7Qj16O0M9dn1l
bHNle2JyZWFrfWRve3Y9YVtCXXwwO2FbQl09YVtDXXwwO2FbQ109djtCPUIrMXwwO0M9Qy0xfDA7
fXdoaWxlKEI+Pj4wPEM+Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYx
MjddKHQpfDA7aWYoej4+PjA8eT4+PjApe3Y9eCsxfDA7dT1vKzR8MDtuPW8rOHwwO3A9aztEPTA7
RT0wO0Y9ejt3aGlsZSgxKXtHPShhW3ddJjEpPT0wO2Rve2lmKChhWyhHP3Y6Y1tuPj4yXXwwKStF
fDBdfDApPjApe2lmKChEfDApIT0oYVsoRz92OmNbbj4+Ml18MCkrRXwwXXwwKSl7SD1FO0k9RDti
cmVha31KPWNbaj4+Ml18MDtjW2o+PjJdPUorNDtjW0o+PjJdPXE7Sj1kW3ddfDA7SD0oRT4+PjA8
KCgoSiYxfDApPT0wP0o+Pj4xOmNbdT4+Ml18MCktMXwwKT4+PjApK0V8MDtJPTB9ZWxzZXtIPUU7
ST1EfX13aGlsZSgwKTtHPWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLGFbRl18MCl8MDtK
PWNbaj4+Ml18MDtjW2o+PjJdPUorNDtjW0o+PjJdPUc7Rz1GKzF8MDtpZihHPj4+MDx5Pj4+MCl7
RD1JKzF8MDtFPUg7Rj1HfWVsc2V7YnJlYWt9fX1GPWcrKHotYjw8Mil8MDtFPWNbaj4+Ml18MDtp
ZigoRnwwKT09KEV8MCkpe2JyZWFrfUQ9RS00fDA7aWYoRj4+PjA8RD4+PjApe0s9RjtMPUR9ZWxz
ZXticmVha31kb3tEPWNbSz4+Ml18MDtjW0s+PjJdPWNbTD4+Ml07Y1tMPj4yXT1EO0s9Sys0fDA7
TD1MLTR8MDt9d2hpbGUoSz4+PjA8TD4+PjApfX13aGlsZSgwKTtMMjM2Mzpkb3tpZih5Pj4+MDxm
Pj4+MCl7TD1rO0s9eTt3aGlsZSgxKXt6PWFbS118MDtpZih6PDwyND4+MjQ9PTQ2KXticmVha31I
PWJfW2NbKGNbTD4+Ml18MCkrNDQ+PjJdJjMxXShyLHopfDA7ej1jW2o+PjJdfDA7Y1tqPj4yXT16
KzQ7Y1t6Pj4yXT1IO0g9SysxfDA7aWYoSD4+PjA8Zj4+PjApe0s9SH1lbHNle009SDticmVhayBM
MjM2M319TD1iMFtjWyhjW3M+PjJdfDApKzEyPj4yXSYxMjddKHQpfDA7SD1jW2o+PjJdfDA7Y1tq
Pj4yXT1IKzQ7Y1tIPj4yXT1MO009SysxfDB9ZWxzZXtNPXl9fXdoaWxlKDApO2NhW2NbKGNbaz4+
Ml18MCkrNDg+PjJdJjE1XShyLE0sZixjW2o+PjJdfDApfDA7cj0oY1tqPj4yXXwwKSsobS1NPDwy
KXwwO2Nbaj4+Ml09cjtpZigoZXwwKT09KGZ8MCkpe049cjtjW2g+PjJdPU47ZFAobyk7aT1sO3Jl
dHVybn1OPWcrKGUtYjw8Mil8MDtjW2g+PjJdPU47ZFAobyk7aT1sO3JldHVybn1mdW5jdGlvbiBn
dyhiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj0rajt2YXIgaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtkPWk7aT1pKzMyMHww
O2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1kKzh8
MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMjgwfDA7cD1kKzI4OHwwO3E9ZCsyOTZ8MDtyPWQrMzA0
fDA7cz1kKzMxMnwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1rO2s9dCsxfDA7dT1mKzR8MDt2
PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXthW2tdPTQzO3c9dCsyfDB9aWYo
KHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXwwfXc9diYyNjA7az12Pj4+MTQ7
TDIzODQ6ZG97aWYoKHd8MCk9PTI2MCl7YVt4XT03Njt2PXgrMXwwO2lmKChrJjF8MCk9PTApe2Fb
dl09OTc7eT0wO2JyZWFrfWVsc2V7YVt2XT02NTt5PTA7YnJlYWt9fWVsc2V7YVt4XT00NjthW3gr
MXwwXT00MjthW3grMnwwXT03Njt2PXgrM3wwO3N3aXRjaCh3fDApe2Nhc2UgMjU2OntpZigoayYx
fDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDIzODR9ZWxzZXthW3ZdPTY5O3k9MTticmVhayBM
MjM4NH1icmVha307Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3ZdPTEwMjt5PTE7YnJlYWsgTDIz
ODR9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMjM4NH1icmVha307ZGVmYXVsdDp7aWYoKGsmMXww
KT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwyMzg0fWVsc2V7YVt2XT03MTt5PTE7YnJlYWsgTDIz
ODR9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNb
Zis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3PWdiKGssMzAsbCx0LCh6
PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lmKChBfDApPjI5KXt3PShh
WzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31j
WzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1syOTU4XXwwLHQsKHo9aSxp
PWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPWx9ZWxz
ZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCww
KXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrOHwwLGhbej4+M109aix6
KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTApe0M9QjtEPXc7RT13O2JyZWFr
fWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7RD0wO0U9Y1ttPj4yXXwwfX13
aGlsZSgwKTtBPUUrQ3wwO0wyNDMzOmRve3N3aXRjaChjW3U+PjJdJjE3NnwwKXtjYXNlIDE2OntC
PWFbRV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e0Y9RSsxfDA7YnJlYWsg
TDI0MzM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgoQ3wwKT4xJkI8PDI0Pj4yND09NDgpKXtHPTIw
MTg7YnJlYWsgTDI0MzN9c3dpdGNoKGFbRSsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFr
fTtkZWZhdWx0OntHPTIwMTg7YnJlYWsgTDI0MzN9fUY9RSsyfDA7YnJlYWt9O2Nhc2UgMzI6e0Y9
QTticmVha307ZGVmYXVsdDp7Rz0yMDE4fX19d2hpbGUoMCk7aWYoKEd8MCk9PTIwMTgpe0Y9RX1k
b3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtHPWtKKEM8PDMpfDA7dT1HO2lm
KChHfDApIT0wKXtIPXU7ST11O0o9RTticmVha31rWCgpO0g9dTtJPXU7Sj1jW20+PjJdfDB9fXdo
aWxlKDApO2VqKHEsZik7Z3YoSixGLEEsSCxvLHAscSk7ZHooY1txPj4yXXwwKXwwO3E9ZXwwO2Nb
cz4+Ml09Y1txPj4yXTtncShyLHMsSCxjW28+PjJdfDAsY1twPj4yXXwwLGYsZyk7Zz1jW3I+PjJd
fDA7Y1txPj4yXT1nO2NbYj4+Ml09ZztpZigoSXwwKSE9MCl7a0soSSl9aWYoKER8MCk9PTApe2k9
ZDtyZXR1cm59a0soRCk7aT1kO3JldHVybn1mdW5jdGlvbiBneChiLGQsZSxmLGcsaCl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2Q9aTtpPWkr
MjE2fDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWR8MDtr
PWQrMjR8MDtsPWQrNDh8MDttPWQrMjAwfDA7bj1kKzIwOHwwO289ZCsxNnwwO2Fbb109YVsyMzky
XXwwO2FbbysxfDBdPWFbMjM5M3wwXXwwO2FbbysyfDBdPWFbMjM5NHwwXXwwO2FbbyszfDBdPWFb
MjM5NXwwXXwwO2Fbbys0fDBdPWFbMjM5NnwwXXwwO2Fbbys1fDBdPWFbMjM5N3wwXXwwO3A9a3ww
O2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7cT1nYihwLDIwLGNbMjk1OF18MCxvLChvPWksaT1p
Kzh8MCxjW28+PjJdPWgsbyl8MCl8MDtpPW87bz1rK3F8MDtMMjQ2NDpkb3tzd2l0Y2goY1tmKzQ+
PjJdJjE3NnwwKXtjYXNlIDE2OntoPWFbcF18MDtzd2l0Y2goaDw8MjQ+PjI0KXtjYXNlIDQ1OmNh
c2UgNDM6e3I9aysxfDA7YnJlYWsgTDI0NjQ7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgocXwwKT4x
Jmg8PDI0Pj4yND09NDgpKXtzPTIwNTE7YnJlYWsgTDI0NjR9c3dpdGNoKGFbaysxfDBdfDApe2Nh
c2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntzPTIwNTE7YnJlYWsgTDI0NjR9fXI9aysy
fDA7YnJlYWt9O2Nhc2UgMzI6e3I9bzticmVha307ZGVmYXVsdDp7cz0yMDUxfX19d2hpbGUoMCk7
aWYoKHN8MCk9PTIwNTEpe3I9cH1laihtLGYpO3M9bXwwO209Y1tzPj4yXXwwO2lmKChjWzM5MjJd
fDApIT0tMSl7Y1tqPj4yXT0xNTY4ODtjW2orND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTU2ODgs
aiw5Nil9aj0oY1szOTIzXXwwKS0xfDA7aD1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXww
KS1oPj4yPj4+MD5qPj4+MCl7dD1jW2grKGo8PDIpPj4yXXwwO2lmKCh0fDApPT0wKXticmVha311
PXQ7dj1jW3M+PjJdfDA7ZHoodil8MDt2PWx8MDt3PWNbKGNbdD4+Ml18MCkrNDg+PjJdfDA7Y2Fb
dyYxNV0odSxwLG8sdil8MDt1PWwrKHE8PDIpfDA7aWYoKHJ8MCk9PShvfDApKXt4PXU7eT1lfDA7
ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16O2dxKGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59
eD1sKyhyLWs8PDIpfDA7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16O2dxKGIsbix2
LHgsdSxmLGcpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3
NiwxMzQpfWZ1bmN0aW9uIGd5KGEpe2E9YXwwO3JldHVybiAyfWZ1bmN0aW9uIGd6KGEpe2E9YXww
O2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdBKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJu
fWZ1bmN0aW9uIGdCKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MDtqPWk7aT1pKzE2fDA7az1kO2Q9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7Y1trPj4yXT1jW2Q+PjJdO2NbbD4+Ml09Y1tl
Pj4yXTtnRChhLGIsayxsLGYsZyxoLDIzNzYsMjM4NCk7aT1qO3JldHVybn1mdW5jdGlvbiBnQyhi
LGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2
YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7aT1pKzE2fDA7bD1lO2U9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209ays4fDA7bj1kKzh8MDtvPWIwW2NbKGNbbj4+
Ml18MCkrMjA+PjJdJjEyN10obil8MDtjW2w+PjJdPWNbZT4+Ml07Y1ttPj4yXT1jW2Y+PjJdO2Y9
bztlPWFbb118MDtpZigoZSYxKT09MCl7cD1mKzF8MDtxPWYrMXwwfWVsc2V7Zj1jW28rOD4+Ml18
MDtwPWY7cT1mfWY9ZSYyNTU7aWYoKGYmMXwwKT09MCl7cj1mPj4+MX1lbHNle3I9Y1tvKzQ+PjJd
fDB9Z0QoYixkLGwsbSxnLGgsaixxLHArcnwwKTtpPWs7cmV0dXJufWZ1bmN0aW9uIGdEKGQsZSxm
LGcsaCxqLGssbCxtKXtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDts
PWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAs
Xz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wO249aTtpPWkrNDh8MDtvPWY7Zj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW28+PjJdO289ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2c+PjJdPWNbbz4+Ml07bz1ufDA7cD1uKzE2fDA7cT1uKzI0fDA7cj1uKzMyfDA7cz1uKzQwfDA7
ZWoocCxoKTt0PXB8MDtwPWNbdD4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbbz4+Ml09MTU2
OTY7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE1Njk2LG8sOTYpfW89KGNbMzkyNV18MCkt
MXwwO3U9Y1twKzg+PjJdfDA7ZG97aWYoKGNbcCsxMj4+Ml18MCktdT4+Mj4+PjA+bz4+PjApe3Y9
Y1t1KyhvPDwyKT4+Ml18MDtpZigodnwwKT09MCl7YnJlYWt9dz12O3g9Y1t0Pj4yXXwwO2R6KHgp
fDA7Y1tqPj4yXT0wO3g9ZnwwO0wyNTA2OmRve2lmKChsfDApPT0obXwwKSl7eT0yMTQxfWVsc2V7
ej1nfDA7QT12O0I9dis4fDA7Qz12O0Q9ZTtFPXJ8MDtGPXN8MDtHPXF8MDtIPWw7ST0wO0wyNTA4
OndoaWxlKDEpe0o9STt3aGlsZSgxKXtpZigoSnwwKSE9MCl7eT0yMTQxO2JyZWFrIEwyNTA2fUs9
Y1t4Pj4yXXwwO2Rve2lmKChLfDApPT0wKXtMPTB9ZWxzZXtpZigoY1tLKzEyPj4yXXwwKSE9KGNb
SysxNj4+Ml18MCkpe0w9SzticmVha31pZigoYjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShL
KXwwKSE9LTEpe0w9SzticmVha31jW3g+PjJdPTA7TD0wfX13aGlsZSgwKTtLPShMfDApPT0wO009
Y1t6Pj4yXXwwO0wyNTE4OmRve2lmKChNfDApPT0wKXt5PTIwOTR9ZWxzZXtkb3tpZigoY1tNKzEy
Pj4yXXwwKT09KGNbTSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW00+PjJdfDApKzM2Pj4yXSYxMjdd
KE0pfDApIT0tMSl7YnJlYWt9Y1t6Pj4yXT0wO3k9MjA5NDticmVhayBMMjUxOH19d2hpbGUoMCk7
aWYoSyl7Tj1NfWVsc2V7eT0yMDk1O2JyZWFrIEwyNTA4fX19d2hpbGUoMCk7aWYoKHl8MCk9PTIw
OTQpe3k9MDtpZihLKXt5PTIwOTU7YnJlYWsgTDI1MDh9ZWxzZXtOPTB9fWlmKChiMVtjWyhjW0E+
PjJdfDApKzM2Pj4yXSY2M10odyxhW0hdfDAsMCl8MCk8PDI0Pj4yND09Mzcpe3k9MjA5ODticmVh
a31NPWFbSF18MDtpZihNPDwyND4+MjQ+LTEpe089Y1tCPj4yXXwwO2lmKChiW08rKE08PDI0Pj4y
NDw8MSk+PjFdJjgxOTIpIT0wKXtQPUg7eT0yMTA5O2JyZWFrfX1RPUwrMTJ8MDtNPWNbUT4+Ml18
MDtSPUwrMTZ8MDtpZigoTXwwKT09KGNbUj4+Ml18MCkpe1M9KGIwW2NbKGNbTD4+Ml18MCkrMzY+
PjJdJjEyN10oTCl8MCkmMjU1fWVsc2V7Uz1hW01dfDB9TT1iX1tjWyhjW0M+PjJdfDApKzEyPj4y
XSYzMV0odyxTKXwwO2lmKE08PDI0Pj4yND09KGJfW2NbKGNbQz4+Ml18MCkrMTI+PjJdJjMxXSh3
LGFbSF18MCl8MCk8PDI0Pj4yNCl7eT0yMTM2O2JyZWFrfWNbaj4+Ml09NDtKPTR9TDI1MzY6ZG97
aWYoKHl8MCk9PTIxMzYpe3k9MDtKPWNbUT4+Ml18MDtpZigoSnwwKT09KGNbUj4+Ml18MCkpe009
Y1soY1tMPj4yXXwwKSs0MD4+Ml18MDtiMFtNJjEyN10oTCl8MH1lbHNle2NbUT4+Ml09SisxfVQ9
SCsxfDB9ZWxzZSBpZigoeXwwKT09MjA5OCl7eT0wO0o9SCsxfDA7aWYoKEp8MCk9PShtfDApKXt5
PTIwOTk7YnJlYWsgTDI1MDh9TT1iMVtjWyhjW0E+PjJdfDApKzM2Pj4yXSY2M10odyxhW0pdfDAs
MCl8MDtzd2l0Y2goTTw8MjQ+PjI0KXtjYXNlIDY5OmNhc2UgNDg6e1U9SCsyfDA7aWYoKFV8MCk9
PShtfDApKXt5PTIxMDI7YnJlYWsgTDI1MDh9Vj1NO1c9YjFbY1soY1tBPj4yXXwwKSszNj4+Ml0m
NjNdKHcsYVtVXXwwLDApfDA7WD1VO2JyZWFrfTtkZWZhdWx0OntWPTA7Vz1NO1g9Sn19Sj1jWyhj
W0Q+PjJdfDApKzM2Pj4yXXwwO2NbRT4+Ml09TDtjW0Y+PjJdPU47YjdbSiY3XShxLGUscixzLGgs
aixrLFcsVik7Y1t4Pj4yXT1jW0c+PjJdO1Q9WCsxfDB9ZWxzZSBpZigoeXwwKT09MjEwOSl7d2hp
bGUoMSl7eT0wO0o9UCsxfDA7aWYoKEp8MCk9PShtfDApKXtZPW07YnJlYWt9TT1hW0pdfDA7aWYo
TTw8MjQ+PjI0PD0tMSl7WT1KO2JyZWFrfWlmKChiW08rKE08PDI0Pj4yNDw8MSk+PjFdJjgxOTIp
PT0wKXtZPUo7YnJlYWt9ZWxzZXtQPUo7eT0yMTA5fX1LPUw7Sj1OO3doaWxlKDEpe2Rve2lmKChL
fDApPT0wKXtaPTB9ZWxzZXtpZigoY1tLKzEyPj4yXXwwKSE9KGNbSysxNj4+Ml18MCkpe1o9Szti
cmVha31pZigoYjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShLKXwwKSE9LTEpe1o9SzticmVh
a31jW3g+PjJdPTA7Wj0wfX13aGlsZSgwKTtNPShafDApPT0wO2Rve2lmKChKfDApPT0wKXt5PTIx
MjJ9ZWxzZXtpZigoY1tKKzEyPj4yXXwwKSE9KGNbSisxNj4+Ml18MCkpe2lmKE0pe189SjticmVh
a31lbHNle1Q9WTticmVhayBMMjUzNn19aWYoKGIwW2NbKGNbSj4+Ml18MCkrMzY+PjJdJjEyN10o
Sil8MCk9PS0xKXtjW3o+PjJdPTA7eT0yMTIyO2JyZWFrfWVsc2V7aWYoTV4oSnwwKT09MCl7Xz1K
O2JyZWFrfWVsc2V7VD1ZO2JyZWFrIEwyNTM2fX19fXdoaWxlKDApO2lmKCh5fDApPT0yMTIyKXt5
PTA7aWYoTSl7VD1ZO2JyZWFrIEwyNTM2fWVsc2V7Xz0wfX1VPVorMTJ8MDskPWNbVT4+Ml18MDth
YT1aKzE2fDA7aWYoKCR8MCk9PShjW2FhPj4yXXwwKSl7YWI9KGIwW2NbKGNbWj4+Ml18MCkrMzY+
PjJdJjEyN10oWil8MCkmMjU1fWVsc2V7YWI9YVskXXwwfWlmKGFiPDwyND4+MjQ8PS0xKXtUPVk7
YnJlYWsgTDI1MzZ9aWYoKGJbKGNbQj4+Ml18MCkrKGFiPDwyND4+MjQ8PDEpPj4xXSY4MTkyKT09
MCl7VD1ZO2JyZWFrIEwyNTM2fSQ9Y1tVPj4yXXwwO2lmKCgkfDApPT0oY1thYT4+Ml18MCkpe2Fh
PWNbKGNbWj4+Ml18MCkrNDA+PjJdfDA7YjBbYWEmMTI3XShaKXwwO0s9WjtKPV87Y29udGludWV9
ZWxzZXtjW1U+PjJdPSQrMTtLPVo7Sj1fO2NvbnRpbnVlfX19fXdoaWxlKDApO2lmKChUfDApPT0o
bXwwKSl7eT0yMTQxO2JyZWFrIEwyNTA2fUg9VDtJPWNbaj4+Ml18MH1pZigoeXwwKT09MjA5OSl7
Y1tqPj4yXT00O2FjPUw7YnJlYWt9ZWxzZSBpZigoeXwwKT09MjEwMil7Y1tqPj4yXT00O2FjPUw7
YnJlYWt9ZWxzZSBpZigoeXwwKT09MjA5NSl7Y1tqPj4yXT00O2FjPUw7YnJlYWt9fX13aGlsZSgw
KTtpZigoeXwwKT09MjE0MSl7YWM9Y1t4Pj4yXXwwfXc9ZnwwO2Rve2lmKChhY3wwKSE9MCl7aWYo
KGNbYWMrMTI+PjJdfDApIT0oY1thYysxNj4+Ml18MCkpe2JyZWFrfWlmKChiMFtjWyhjW2FjPj4y
XXwwKSszNj4+Ml0mMTI3XShhYyl8MCkhPS0xKXticmVha31jW3c+PjJdPTB9fXdoaWxlKDApO3g9
Y1t3Pj4yXXwwO3Y9KHh8MCk9PTA7ST1nfDA7SD1jW0k+PjJdfDA7TDI1OTQ6ZG97aWYoKEh8MCk9
PTApe3k9MjE1MX1lbHNle2Rve2lmKChjW0grMTI+PjJdfDApPT0oY1tIKzE2Pj4yXXwwKSl7aWYo
KGIwW2NbKGNbSD4+Ml18MCkrMzY+PjJdJjEyN10oSCl8MCkhPS0xKXticmVha31jW0k+PjJdPTA7
eT0yMTUxO2JyZWFrIEwyNTk0fX13aGlsZSgwKTtpZighdil7YnJlYWt9YWQ9ZHwwO2NbYWQ+PjJd
PXg7aT1uO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKHl8MCk9PTIxNTEpe2lmKHYpe2JyZWFrfWFk
PWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO2Fk
PWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO249Yk8oNCl8MDtrcShuKTtibChu
fDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdFKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MDtqPWk7aT1pKzMyfDA7az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1j
W2s+PjJdO2s9anwwO2w9ais4fDA7bT1qKzI0fDA7ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtp
ZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0w
O2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO249Y1ttKzg+PjJdfDA7ZG97aWYoKGNb
bSsxMj4+Ml18MCktbj4+Mj4+PjA+bD4+PjApe289Y1tuKyhsPDwyKT4+Ml18MDtpZigob3wwKT09
MCl7YnJlYWt9cD1vO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2U+PjJdfDA7cT1iKzh8MDtyPWIw
W2NbY1txPj4yXT4+Ml0mMTI3XShxKXwwO2Nbaz4+Ml09bztvPShmcShkLGsscixyKzE2OHwwLHAs
ZywwKXwwKS1yfDA7aWYoKG98MCk+PTE2OCl7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4y
XT10O2k9ajtyZXR1cm59Y1toKzI0Pj4yXT0oKG98MCkvMTJ8MHwwKSU3fDA7cz1kfDA7dD1jW3M+
PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8oNCl8MDtrcShq
KTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdGKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtqPWk7aT1pKzMyfDA7az1kO2Q9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tl
Pj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7bT1qKzI0fDA7ZWoobSxmKTtmPW18MDttPWNbZj4+
Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4
Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO249Y1ttKzg+PjJdfDA7ZG97
aWYoKGNbbSsxMj4+Ml18MCktbj4+Mj4+PjA+bD4+PjApe289Y1tuKyhsPDwyKT4+Ml18MDtpZigo
b3wwKT09MCl7YnJlYWt9cD1vO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2U+PjJdfDA7cT1iKzh8
MDtyPWIwW2NbKGNbcT4+Ml18MCkrND4+Ml0mMTI3XShxKXwwO2Nbaz4+Ml09bztvPShmcShkLGss
cixyKzI4OHwwLHAsZywwKXwwKS1yfDA7aWYoKG98MCk+PTI4OCl7cz1kfDA7dD1jW3M+PjJdfDA7
dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59Y1toKzE2Pj4yXT0oKG98MCkvMTJ8MHwwKSUxMnww
O3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufX13aGlsZSgwKTtq
PWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnRyhhLGIsZCxlLGYsZyxo
KXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2I9aTtpPWkrMzJ8MDtqPWQ7ZD1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2o+PjJdO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2U+PjJdPWNbaj4+Ml07aj1ifDA7az1iKzh8MDtsPWIrMjR8MDtlaihsLGYpO2Y9bHwwO2w9
Y1tmPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1trPj4yXT0xNTY5NjtjW2srND4+Ml09MTI7
Y1trKzg+PjJdPTA7ZFcoMTU2OTYsayw5Nil9az0oY1szOTI1XXwwKS0xfDA7bT1jW2wrOD4+Ml18
MDtkb3tpZigoY1tsKzEyPj4yXXwwKS1tPj4yPj4+MD5rPj4+MCl7bj1jW20rKGs8PDIpPj4yXXww
O2lmKChufDApPT0wKXticmVha31vPW47bj1jW2Y+PjJdfDA7ZHoobil8MDtjW2o+PjJdPWNbZT4+
Ml07bj1nTChkLGosZyxvLDQpfDA7aWYoKGNbZz4+Ml0mNHwwKSE9MCl7cD1kfDA7cT1jW3A+PjJd
fDA7cj1hfDA7Y1tyPj4yXT1xO2k9YjtyZXR1cm59aWYoKG58MCk8Njkpe3M9bisyZTN8MH1lbHNl
e3M9KG4tNjl8MCk+Pj4wPDMxP24rMTkwMHwwOm59Y1toKzIwPj4yXT1zLTE5MDA7cD1kfDA7cT1j
W3A+PjJdfDA7cj1hfDA7Y1tyPj4yXT1xO2k9YjtyZXR1cm59fXdoaWxlKDApO2I9Yk8oNCl8MDtr
cShiKTtibChifDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdIKGQsZSxmLGcsaCl7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MDtkPWk7aj1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09
Y1tqPj4yXTtqPWV8MDtlPWZ8MDtmPWgrOHwwO0wyNjUyOndoaWxlKDEpe2g9Y1tqPj4yXXwwO2Rv
e2lmKChofDApPT0wKXtrPTB9ZWxzZXtpZigoY1toKzEyPj4yXXwwKSE9KGNbaCsxNj4+Ml18MCkp
e2s9aDticmVha31pZigoYjBbY1soY1toPj4yXXwwKSszNj4+Ml0mMTI3XShoKXwwKT09LTEpe2Nb
aj4+Ml09MDtrPTA7YnJlYWt9ZWxzZXtrPWNbaj4+Ml18MDticmVha319fXdoaWxlKDApO2g9KGt8
MCk9PTA7bD1jW2U+PjJdfDA7TDI2NjE6ZG97aWYoKGx8MCk9PTApe209MjIwN31lbHNle2Rve2lm
KChjW2wrMTI+PjJdfDApPT0oY1tsKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbbD4+Ml18MCkrMzY+
PjJdJjEyN10obCl8MCkhPS0xKXticmVha31jW2U+PjJdPTA7bT0yMjA3O2JyZWFrIEwyNjYxfX13
aGlsZSgwKTtpZihoKXtuPWw7bz0wfWVsc2V7cD1sO3E9MDticmVhayBMMjY1Mn19fXdoaWxlKDAp
O2lmKChtfDApPT0yMjA3KXttPTA7aWYoaCl7cD0wO3E9MTticmVha31lbHNle249MDtvPTF9fWw9
Y1tqPj4yXXwwO3I9Y1tsKzEyPj4yXXwwO2lmKChyfDApPT0oY1tsKzE2Pj4yXXwwKSl7cz0oYjBb
Y1soY1tsPj4yXXwwKSszNj4+Ml0mMTI3XShsKXwwKSYyNTV9ZWxzZXtzPWFbcl18MH1pZihzPDwy
ND4+MjQ8PS0xKXtwPW47cT1vO2JyZWFrfWlmKChiWyhjW2Y+PjJdfDApKyhzPDwyND4+MjQ8PDEp
Pj4xXSY4MTkyKT09MCl7cD1uO3E9bzticmVha31yPWNbaj4+Ml18MDtsPXIrMTJ8MDt0PWNbbD4+
Ml18MDtpZigodHwwKT09KGNbcisxNj4+Ml18MCkpe3U9Y1soY1tyPj4yXXwwKSs0MD4+Ml18MDti
MFt1JjEyN10ocil8MDtjb250aW51ZX1lbHNle2NbbD4+Ml09dCsxO2NvbnRpbnVlfX1vPWNbaj4+
Ml18MDtkb3tpZigob3wwKT09MCl7dj0wfWVsc2V7aWYoKGNbbysxMj4+Ml18MCkhPShjW28rMTY+
PjJdfDApKXt2PW87YnJlYWt9aWYoKGIwW2NbKGNbbz4+Ml18MCkrMzY+PjJdJjEyN10obyl8MCk9
PS0xKXtjW2o+PjJdPTA7dj0wO2JyZWFrfWVsc2V7dj1jW2o+PjJdfDA7YnJlYWt9fX13aGlsZSgw
KTtqPSh2fDApPT0wO2Rve2lmKHEpe209MjIyNn1lbHNle2lmKChjW3ArMTI+PjJdfDApIT0oY1tw
KzE2Pj4yXXwwKSl7aWYoIShqXihwfDApPT0wKSl7YnJlYWt9aT1kO3JldHVybn1pZigoYjBbY1so
Y1twPj4yXXwwKSszNj4+Ml0mMTI3XShwKXwwKT09LTEpe2NbZT4+Ml09MDttPTIyMjY7YnJlYWt9
aWYoIWope2JyZWFrfWk9ZDtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChtfDApPT0yMjI2KXtpZihq
KXticmVha31pPWQ7cmV0dXJufX13aGlsZSgwKTtjW2c+PjJdPWNbZz4+Ml18MjtpPWQ7cmV0dXJu
fWZ1bmN0aW9uIGdJKGIsZCxlLGYsZyxoLGosayxsKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9
MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFm
PTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MDtsPWk7aT1pKzMyOHwwO209ZTtl
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07bT1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWx8MDtuPWwrOHwwO289bCsxNnwwO3A9bCsyNHww
O3E9bCszMnwwO3I9bCs0MHwwO3M9bCs0OHwwO3Q9bCs1NnwwO3U9bCs2NHwwO3Y9bCs3MnwwO3c9
bCs4MHwwO3g9bCs4OHwwO3k9bCs5NnwwO3o9bCsxMTJ8MDtBPWwrMTIwfDA7Qj1sKzEyOHwwO0M9
bCsxMzZ8MDtEPWwrMTQ0fDA7RT1sKzE1MnwwO0Y9bCsxNjB8MDtHPWwrMTY4fDA7SD1sKzE3Nnww
O0k9bCsxODR8MDtKPWwrMTkyfDA7Sz1sKzIwMHwwO0w9bCsyMDh8MDtNPWwrMjE2fDA7Tj1sKzIy
NHwwO089bCsyMzJ8MDtQPWwrMjQwfDA7UT1sKzI0OHwwO1I9bCsyNTZ8MDtTPWwrMjY0fDA7VD1s
KzI3MnwwO1U9bCsyODB8MDtWPWwrMjg4fDA7Vz1sKzI5NnwwO1g9bCszMDR8MDtZPWwrMzEyfDA7
Wj1sKzMyMHwwO2NbaD4+Ml09MDtlaih6LGcpO189enwwO3o9Y1tfPj4yXXwwO2lmKChjWzM5MjRd
fDApIT0tMSl7Y1t5Pj4yXT0xNTY5NjtjW3krND4+Ml09MTI7Y1t5Kzg+PjJdPTA7ZFcoMTU2OTYs
eSw5Nil9eT0oY1szOTI1XXwwKS0xfDA7JD1jW3orOD4+Ml18MDtkb3tpZigoY1t6KzEyPj4yXXww
KS0kPj4yPj4+MD55Pj4+MCl7YWE9Y1skKyh5PDwyKT4+Ml18MDtpZigoYWF8MCk9PTApe2JyZWFr
fWFiPWFhO2FhPWNbXz4+Ml18MDtkeihhYSl8MDtMMjcwOTpkb3tzd2l0Y2goazw8MjQ+PjI0fDAp
e2Nhc2UgNzI6e2NbdT4+Ml09Y1tmPj4yXTthYT1nTChlLHUsaCxhYiwyKXwwO2FjPWNbaD4+Ml18
MDtpZigoYWMmNHwwKT09MCYoYWF8MCk8MjQpe2Nbais4Pj4yXT1hYTticmVhayBMMjcwOX1lbHNl
e2NbaD4+Ml09YWN8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA5NzpjYXNlIDY1OnthYz1jW2Y+
PjJdfDA7YWE9ZCs4fDA7YWQ9YjBbY1tjW2FhPj4yXT4+Ml0mMTI3XShhYSl8MDtjW3g+PjJdPWFj
O2FjPShmcShlLHgsYWQsYWQrMTY4fDAsYWIsaCwwKXwwKS1hZHwwO2lmKChhY3wwKT49MTY4KXti
cmVhayBMMjcwOX1jW2orMjQ+PjJdPSgoYWN8MCkvMTJ8MHwwKSU3fDA7YnJlYWt9O2Nhc2UgMTA5
OntjW3I+PjJdPWNbZj4+Ml07YWM9KGdMKGUscixoLGFiLDIpfDApLTF8MDthZD1jW2g+PjJdfDA7
aWYoKGFkJjR8MCk9PTAmKGFjfDApPDEyKXtjW2orMTY+PjJdPWFjO2JyZWFrIEwyNzA5fWVsc2V7
Y1toPj4yXT1hZHw0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNlIDEyMTp7Y1tuPj4yXT1jW2Y+PjJd
O2FkPWdMKGUsbixoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7YnJlYWsgTDI3MDl9aWYo
KGFkfDApPDY5KXthZT1hZCsyZTN8MH1lbHNle2FlPShhZC02OXwwKT4+PjA8MzE/YWQrMTkwMHww
OmFkfWNbaisyMD4+Ml09YWUtMTkwMDticmVha307Y2FzZSA5ODpjYXNlIDY2OmNhc2UgMTA0Onth
ZD1jW2Y+PjJdfDA7YWM9ZCs4fDA7YWE9YjBbY1soY1thYz4+Ml18MCkrND4+Ml0mMTI3XShhYyl8
MDtjW3c+PjJdPWFkO2FkPShmcShlLHcsYWEsYWErMjg4fDAsYWIsaCwwKXwwKS1hYXwwO2lmKChh
ZHwwKT49Mjg4KXticmVhayBMMjcwOX1jW2orMTY+PjJdPSgoYWR8MCkvMTJ8MHwwKSUxMnwwO2Jy
ZWFrfTtjYXNlIDczOnthZD1qKzh8MDtjW3Q+PjJdPWNbZj4+Ml07YWE9Z0woZSx0LGgsYWIsMil8
MDthYz1jW2g+PjJdfDA7ZG97aWYoKGFjJjR8MCk9PTApe2lmKChhYS0xfDApPj4+MD49MTIpe2Jy
ZWFrfWNbYWQ+PjJdPWFhO2JyZWFrIEwyNzA5fX13aGlsZSgwKTtjW2g+PjJdPWFjfDQ7YnJlYWt9
O2Nhc2UgMTA2OntjW3M+PjJdPWNbZj4+Ml07YWE9Z0woZSxzLGgsYWIsMyl8MDthZD1jW2g+PjJd
fDA7aWYoKGFkJjR8MCk9PTAmKGFhfDApPDM2Nil7Y1tqKzI4Pj4yXT1hYTticmVhayBMMjcwOX1l
bHNle2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA2ODp7YWQ9ZXwwO2NbRT4+
Ml09Y1thZD4+Ml07Y1tGPj4yXT1jW2Y+PjJdO2dEKEQsZCxFLEYsZyxoLGosMjM2OCwyMzc2KTtj
W2FkPj4yXT1jW0Q+PjJdO2JyZWFrfTtjYXNlIDg0OnthZD1lfDA7Y1tTPj4yXT1jW2FkPj4yXTtj
W1Q+PjJdPWNbZj4+Ml07Z0QoUixkLFMsVCxnLGgsaiwyMzI4LDIzMzYpO2NbYWQ+PjJdPWNbUj4+
Ml07YnJlYWt9O2Nhc2UgMTE5OntjW28+PjJdPWNbZj4+Ml07YWQ9Z0woZSxvLGgsYWIsMSl8MDth
YT1jW2g+PjJdfDA7aWYoKGFhJjR8MCk9PTAmKGFkfDApPDcpe2NbaisyND4+Ml09YWQ7YnJlYWsg
TDI3MDl9ZWxzZXtjW2g+PjJdPWFhfDQ7YnJlYWsgTDI3MDl9YnJlYWt9O2Nhc2UgNzA6e2FhPWV8
MDtjW0g+PjJdPWNbYWE+PjJdO2NbST4+Ml09Y1tmPj4yXTtnRChHLGQsSCxJLGcsaCxqLDIzNjAs
MjM2OCk7Y1thYT4+Ml09Y1tHPj4yXTticmVha307Y2FzZSA4OTp7Y1ttPj4yXT1jW2Y+PjJdO2Fh
PWdMKGUsbSxoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7YnJlYWsgTDI3MDl9Y1tqKzIw
Pj4yXT1hYS0xOTAwO2JyZWFrfTtjYXNlIDM3OntjW1o+PjJdPWNbZj4+Ml07Z0soMCxlLFosaCxh
Yik7YnJlYWt9O2Nhc2UgMTE0OnthYT1lfDA7Y1tNPj4yXT1jW2FhPj4yXTtjW04+PjJdPWNbZj4+
Ml07Z0QoTCxkLE0sTixnLGgsaiwyMzQ0LDIzNTUpO2NbYWE+PjJdPWNbTD4+Ml07YnJlYWt9O2Nh
c2UgODI6e2FhPWV8MDtjW1A+PjJdPWNbYWE+PjJdO2NbUT4+Ml09Y1tmPj4yXTtnRChPLGQsUCxR
LGcsaCxqLDIzMzYsMjM0MSk7Y1thYT4+Ml09Y1tPPj4yXTticmVha307Y2FzZSA5OTp7YWE9ZCs4
fDA7YWQ9YjBbY1soY1thYT4+Ml18MCkrMTI+PjJdJjEyN10oYWEpfDA7YWE9ZXwwO2NbQj4+Ml09
Y1thYT4+Ml07Y1tDPj4yXT1jW2Y+PjJdO2FmPWFkO2FnPWFbYWRdfDA7aWYoKGFnJjEpPT0wKXth
aD1hZisxfDA7YWk9YWYrMXwwfWVsc2V7YWY9Y1thZCs4Pj4yXXwwO2FoPWFmO2FpPWFmfWFmPWFn
JjI1NTtpZigoYWYmMXwwKT09MCl7YWo9YWY+Pj4xfWVsc2V7YWo9Y1thZCs0Pj4yXXwwfWdEKEEs
ZCxCLEMsZyxoLGosYWksYWgrYWp8MCk7Y1thYT4+Ml09Y1tBPj4yXTticmVha307Y2FzZSA4Mzp7
Y1twPj4yXT1jW2Y+PjJdO2FhPWdMKGUscCxoLGFiLDIpfDA7YWQ9Y1toPj4yXXwwO2lmKChhZCY0
fDApPT0wJihhYXwwKTw2MSl7Y1tqPj4yXT1hYTticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWR8
NDticmVhayBMMjcwOX1icmVha307Y2FzZSA3Nzp7Y1txPj4yXT1jW2Y+PjJdO2FkPWdMKGUscSxo
LGFiLDIpfDA7YWE9Y1toPj4yXXwwO2lmKChhYSY0fDApPT0wJihhZHwwKTw2MCl7Y1tqKzQ+PjJd
PWFkO2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hYXw0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNl
IDExMDpjYXNlIDExNjp7Y1tKPj4yXT1jW2Y+PjJdO2dIKDAsZSxKLGgsYWIpO2JyZWFrfTtjYXNl
IDExMjp7Y1tLPj4yXT1jW2Y+PjJdO2dKKGQsais4fDAsZSxLLGgsYWIpO2JyZWFrfTtjYXNlIDEy
MDp7YWE9Y1soY1tkPj4yXXwwKSsyMD4+Ml18MDtjW1U+PjJdPWNbZT4+Ml07Y1tWPj4yXT1jW2Y+
PjJdO2JYW2FhJjEyN10oYixkLFUsVixnLGgsaik7aT1sO3JldHVybn07Y2FzZSA4ODp7YWE9ZCs4
fDA7YWQ9YjBbY1soY1thYT4+Ml18MCkrMjQ+PjJdJjEyN10oYWEpfDA7YWE9ZXwwO2NbWD4+Ml09
Y1thYT4+Ml07Y1tZPj4yXT1jW2Y+PjJdO2FmPWFkO2FnPWFbYWRdfDA7aWYoKGFnJjEpPT0wKXth
az1hZisxfDA7YWw9YWYrMXwwfWVsc2V7YWY9Y1thZCs4Pj4yXXwwO2FrPWFmO2FsPWFmfWFmPWFn
JjI1NTtpZigoYWYmMXwwKT09MCl7YW09YWY+Pj4xfWVsc2V7YW09Y1thZCs0Pj4yXXwwfWdEKFcs
ZCxYLFksZyxoLGosYWwsYWsrYW18MCk7Y1thYT4+Ml09Y1tXPj4yXTticmVha307Y2FzZSAxMDA6
Y2FzZSAxMDE6e2FhPWorMTJ8MDtjW3Y+PjJdPWNbZj4+Ml07YWQ9Z0woZSx2LGgsYWIsMil8MDth
Zj1jW2g+PjJdfDA7ZG97aWYoKGFmJjR8MCk9PTApe2lmKChhZC0xfDApPj4+MD49MzEpe2JyZWFr
fWNbYWE+PjJdPWFkO2JyZWFrIEwyNzA5fX13aGlsZSgwKTtjW2g+PjJdPWFmfDQ7YnJlYWt9O2Rl
ZmF1bHQ6e2NbaD4+Ml09Y1toPj4yXXw0fX19d2hpbGUoMCk7Y1tiPj4yXT1jW2U+PjJdO2k9bDty
ZXR1cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAsODE3NiwxMzQpfWZ1bmN0aW9u
IGdKKGEsYixlLGYsZyxoKXthPWF8MDtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIg
aj0wLGs9MCxsPTAsbT0wLG49MDtqPWk7aT1pKzh8MDtrPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tmPj4yXT1jW2s+PjJdO2s9anwwO2w9YSs4fDA7YT1iMFtjWyhjW2w+PjJdfDApKzg+PjJd
JjEyN10obCl8MDtsPWRbYV18MDtpZigobCYxfDApPT0wKXttPWw+Pj4xfWVsc2V7bT1jW2ErND4+
Ml18MH1sPWRbYSsxMnwwXXwwO2lmKChsJjF8MCk9PTApe249bD4+PjF9ZWxzZXtuPWNbYSsxNj4+
Ml18MH1pZigobXwwKT09KC1ufDApKXtjW2c+PjJdPWNbZz4+Ml18NDtpPWo7cmV0dXJufWNbaz4+
Ml09Y1tmPj4yXTtmPWZxKGUsayxhLGErMjR8MCxoLGcsMCl8MDtnPWYtYXwwO2Rve2lmKChmfDAp
PT0oYXwwKSl7aWYoKGNbYj4+Ml18MCkhPTEyKXticmVha31jW2I+PjJdPTA7aT1qO3JldHVybn19
d2hpbGUoMCk7aWYoKGd8MCkhPTEyKXtpPWo7cmV0dXJufWc9Y1tiPj4yXXwwO2lmKChnfDApPj0x
Mil7aT1qO3JldHVybn1jW2I+PjJdPWcrMTI7aT1qO3JldHVybn1mdW5jdGlvbiBnSyhiLGQsZSxm
LGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTA7Yj1pO2g9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaD4+Ml07
aD1kfDA7ZD1jW2g+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2o9MH1lbHNle2lmKChjW2QrMTI+PjJd
fDApIT0oY1tkKzE2Pj4yXXwwKSl7aj1kO2JyZWFrfWlmKChiMFtjWyhjW2Q+PjJdfDApKzM2Pj4y
XSYxMjddKGQpfDApPT0tMSl7Y1toPj4yXT0wO2o9MDticmVha31lbHNle2o9Y1toPj4yXXwwO2Jy
ZWFrfX19d2hpbGUoMCk7ZD0oanwwKT09MDtqPWV8MDtlPWNbaj4+Ml18MDtMMjgyMjpkb3tpZigo
ZXwwKT09MCl7az0yMzM3fWVsc2V7ZG97aWYoKGNbZSsxMj4+Ml18MCk9PShjW2UrMTY+PjJdfDAp
KXtpZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXwwKSE9LTEpe2JyZWFrfWNbaj4+
Ml09MDtrPTIzMzc7YnJlYWsgTDI4MjJ9fXdoaWxlKDApO2lmKGQpe2w9ZTttPTB9ZWxzZXtrPTIz
Mzh9fX13aGlsZSgwKTtpZigoa3wwKT09MjMzNyl7aWYoZCl7az0yMzM4fWVsc2V7bD0wO209MX19
aWYoKGt8MCk9PTIzMzgpe2NbZj4+Ml09Y1tmPj4yXXw2O2k9YjtyZXR1cm59ZD1jW2g+PjJdfDA7
ZT1jW2QrMTI+PjJdfDA7aWYoKGV8MCk9PShjW2QrMTY+PjJdfDApKXtuPShiMFtjWyhjW2Q+PjJd
fDApKzM2Pj4yXSYxMjddKGQpfDApJjI1NX1lbHNle249YVtlXXwwfWlmKChiMVtjWyhjW2c+PjJd
fDApKzM2Pj4yXSY2M10oZyxuLDApfDApPDwyND4+MjQhPTM3KXtjW2Y+PjJdPWNbZj4+Ml18NDtp
PWI7cmV0dXJufW49Y1toPj4yXXwwO2c9bisxMnwwO2U9Y1tnPj4yXXwwO2lmKChlfDApPT0oY1tu
KzE2Pj4yXXwwKSl7ZD1jWyhjW24+PjJdfDApKzQwPj4yXXwwO2IwW2QmMTI3XShuKXwwfWVsc2V7
Y1tnPj4yXT1lKzF9ZT1jW2g+PjJdfDA7ZG97aWYoKGV8MCk9PTApe289MH1lbHNle2lmKChjW2Ur
MTI+PjJdfDApIT0oY1tlKzE2Pj4yXXwwKSl7bz1lO2JyZWFrfWlmKChiMFtjWyhjW2U+PjJdfDAp
KzM2Pj4yXSYxMjddKGUpfDApPT0tMSl7Y1toPj4yXT0wO289MDticmVha31lbHNle289Y1toPj4y
XXwwO2JyZWFrfX19d2hpbGUoMCk7aD0ob3wwKT09MDtkb3tpZihtKXtrPTIzNTd9ZWxzZXtpZigo
Y1tsKzEyPj4yXXwwKSE9KGNbbCsxNj4+Ml18MCkpe2lmKCEoaF4obHwwKT09MCkpe2JyZWFrfWk9
YjtyZXR1cm59aWYoKGIwW2NbKGNbbD4+Ml18MCkrMzY+PjJdJjEyN10obCl8MCk9PS0xKXtjW2o+
PjJdPTA7az0yMzU3O2JyZWFrfWlmKCFoKXticmVha31pPWI7cmV0dXJufX13aGlsZSgwKTtkb3tp
Zigoa3wwKT09MjM1Nyl7aWYoaCl7YnJlYWt9aT1iO3JldHVybn19d2hpbGUoMCk7Y1tmPj4yXT1j
W2Y+PjJdfDI7aT1iO3JldHVybn1mdW5jdGlvbiBnTChkLGUsZixnLGgpe2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9
MCxIPTA7aj1pO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1k
fDA7ZD1jW2s+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2w9MH1lbHNle2lmKChjW2QrMTI+PjJdfDAp
IT0oY1tkKzE2Pj4yXXwwKSl7bD1kO2JyZWFrfWlmKChiMFtjWyhjW2Q+PjJdfDApKzM2Pj4yXSYx
MjddKGQpfDApPT0tMSl7Y1trPj4yXT0wO2w9MDticmVha31lbHNle2w9Y1trPj4yXXwwO2JyZWFr
fX19d2hpbGUoMCk7ZD0obHwwKT09MDtsPWV8MDtlPWNbbD4+Ml18MDtMMjg3Njpkb3tpZigoZXww
KT09MCl7bT0yMzc3fWVsc2V7ZG97aWYoKGNbZSsxMj4+Ml18MCk9PShjW2UrMTY+PjJdfDApKXtp
ZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXwwKSE9LTEpe2JyZWFrfWNbbD4+Ml09
MDttPTIzNzc7YnJlYWsgTDI4NzZ9fXdoaWxlKDApO2lmKGQpe249ZX1lbHNle209MjM3OH19fXdo
aWxlKDApO2lmKChtfDApPT0yMzc3KXtpZihkKXttPTIzNzh9ZWxzZXtuPTB9fWlmKChtfDApPT0y
Mzc4KXtjW2Y+PjJdPWNbZj4+Ml18NjtvPTA7aT1qO3JldHVybiBvfDB9ZD1jW2s+PjJdfDA7ZT1j
W2QrMTI+PjJdfDA7aWYoKGV8MCk9PShjW2QrMTY+PjJdfDApKXtwPShiMFtjWyhjW2Q+PjJdfDAp
KzM2Pj4yXSYxMjddKGQpfDApJjI1NX1lbHNle3A9YVtlXXwwfWRve2lmKHA8PDI0Pj4yND4tMSl7
ZT1nKzh8MDtpZigoYlsoY1tlPj4yXXwwKSsocDw8MjQ+PjI0PDwxKT4+MV0mMjA0OCk9PTApe2Jy
ZWFrfWQ9ZztxPShiMVtjWyhjW2Q+PjJdfDApKzM2Pj4yXSY2M10oZyxwLDApfDApPDwyND4+MjQ7
cj1jW2s+PjJdfDA7cz1yKzEyfDA7dD1jW3M+PjJdfDA7aWYoKHR8MCk9PShjW3IrMTY+PjJdfDAp
KXt1PWNbKGNbcj4+Ml18MCkrNDA+PjJdfDA7YjBbdSYxMjddKHIpfDA7dj1xO3c9aDt4PW59ZWxz
ZXtjW3M+PjJdPXQrMTt2PXE7dz1oO3g9bn13aGlsZSgxKXt5PXYtNDh8MDtxPXctMXwwO3Q9Y1tr
Pj4yXXwwO2Rve2lmKCh0fDApPT0wKXt6PTB9ZWxzZXtpZigoY1t0KzEyPj4yXXwwKSE9KGNbdCsx
Nj4+Ml18MCkpe3o9dDticmVha31pZigoYjBbY1soY1t0Pj4yXXwwKSszNj4+Ml0mMTI3XSh0KXww
KT09LTEpe2Nbaz4+Ml09MDt6PTA7YnJlYWt9ZWxzZXt6PWNbaz4+Ml18MDticmVha319fXdoaWxl
KDApO3Q9KHp8MCk9PTA7aWYoKHh8MCk9PTApe0E9ejtCPTB9ZWxzZXtkb3tpZigoY1t4KzEyPj4y
XXwwKT09KGNbeCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW3g+PjJdfDApKzM2Pj4yXSYxMjddKHgp
fDApIT0tMSl7Qz14O2JyZWFrfWNbbD4+Ml09MDtDPTB9ZWxzZXtDPXh9fXdoaWxlKDApO0E9Y1tr
Pj4yXXwwO0I9Q31EPShCfDApPT0wO2lmKCEoKHReRCkmKHF8MCk+MCkpe209MjQwNzticmVha31z
PWNbQSsxMj4+Ml18MDtpZigoc3wwKT09KGNbQSsxNj4+Ml18MCkpe0U9KGIwW2NbKGNbQT4+Ml18
MCkrMzY+PjJdJjEyN10oQSl8MCkmMjU1fWVsc2V7RT1hW3NdfDB9aWYoRTw8MjQ+PjI0PD0tMSl7
bz15O209MjQyMjticmVha31pZigoYlsoY1tlPj4yXXwwKSsoRTw8MjQ+PjI0PDwxKT4+MV0mMjA0
OCk9PTApe289eTttPTI0MjM7YnJlYWt9cz0oKGIxW2NbKGNbZD4+Ml18MCkrMzY+PjJdJjYzXShn
LEUsMCl8MCk8PDI0Pj4yNCkrKHkqMTB8MCl8MDtyPWNbaz4+Ml18MDt1PXIrMTJ8MDtGPWNbdT4+
Ml18MDtpZigoRnwwKT09KGNbcisxNj4+Ml18MCkpe0c9Y1soY1tyPj4yXXwwKSs0MD4+Ml18MDti
MFtHJjEyN10ocil8MDt2PXM7dz1xO3g9Qjtjb250aW51ZX1lbHNle2NbdT4+Ml09RisxO3Y9czt3
PXE7eD1CO2NvbnRpbnVlfX1pZigobXwwKT09MjQwNyl7ZG97aWYoKEF8MCk9PTApe0g9MH1lbHNl
e2lmKChjW0ErMTI+PjJdfDApIT0oY1tBKzE2Pj4yXXwwKSl7SD1BO2JyZWFrfWlmKChiMFtjWyhj
W0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApPT0tMSl7Y1trPj4yXT0wO0g9MDticmVha31lbHNl
e0g9Y1trPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0oSHwwKT09MDtMMjkzMzpkb3tpZihEKXtt
PTI0MTd9ZWxzZXtkb3tpZigoY1tCKzEyPj4yXXwwKT09KGNbQisxNj4+Ml18MCkpe2lmKChiMFtj
WyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7YnJlYWt9Y1tsPj4yXT0wO209MjQx
NzticmVhayBMMjkzM319d2hpbGUoMCk7aWYoZCl7bz15fWVsc2V7YnJlYWt9aT1qO3JldHVybiBv
fDB9fXdoaWxlKDApO2Rve2lmKChtfDApPT0yNDE3KXtpZihkKXticmVha31lbHNle289eX1pPWo7
cmV0dXJuIG98MH19d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+PjJdfDI7bz15O2k9ajtyZXR1cm4gb3ww
fWVsc2UgaWYoKG18MCk9PTI0MjIpe2k9ajtyZXR1cm4gb3wwfWVsc2UgaWYoKG18MCk9PTI0MjMp
e2k9ajtyZXR1cm4gb3wwfX19d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+PjJdfDQ7bz0wO2k9ajtyZXR1
cm4gb3wwfWZ1bmN0aW9uIGdNKGEpe2E9YXwwO3JldHVybiAyfWZ1bmN0aW9uIGdOKGEpe2E9YXww
O2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdPKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJu
fWZ1bmN0aW9uIGdQKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MDtqPWk7aT1pKzE2fDA7az1kO2Q9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7Y1trPj4yXT1jW2Q+PjJdO2NbbD4+Ml09Y1tl
Pj4yXTtnUihhLGIsayxsLGYsZyxoLDIyOTYsMjMyOCk7aT1qO3JldHVybn1mdW5jdGlvbiBnUShi
LGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2
YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7aT1pKzE2fDA7bD1lO2U9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209ays4fDA7bj1kKzh8MDtvPWIwW2NbKGNbbj4+
Ml18MCkrMjA+PjJdJjEyN10obil8MDtjW2w+PjJdPWNbZT4+Ml07Y1ttPj4yXT1jW2Y+PjJdO2Y9
YVtvXXwwO2lmKChmJjEpPT0wKXtwPW8rNHwwO3E9bys0fDB9ZWxzZXtlPWNbbys4Pj4yXXwwO3A9
ZTtxPWV9ZT1mJjI1NTtpZigoZSYxfDApPT0wKXtyPWU+Pj4xfWVsc2V7cj1jW28rND4+Ml18MH1n
UihiLGQsbCxtLGcsaCxqLHEscCsocjw8Mil8MCk7aT1rO3JldHVybn1mdW5jdGlvbiBnUihhLGIs
ZCxlLGYsZyxoLGosayl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9
MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0w
LFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wO2w9aTtp
PWkrNDh8MDttPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW20+PjJdO209ZTtl
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07bT1sfDA7bj1sKzE2fDA7bz1s
KzI0fDA7cD1sKzMyfDA7cT1sKzQwfDA7ZWoobixmKTtyPW58MDtuPWNbcj4+Ml18MDtpZigoY1sz
OTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1
Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO3M9Y1tuKzg+PjJdfDA7ZG97aWYoKGNbbisxMj4+
Ml18MCktcz4+Mj4+PjA+bT4+PjApe3Q9Y1tzKyhtPDwyKT4+Ml18MDtpZigodHwwKT09MCl7YnJl
YWt9dT10O3Y9Y1tyPj4yXXwwO2R6KHYpfDA7Y1tnPj4yXT0wO3Y9ZHwwO0wyOTY5OmRve2lmKChq
fDApPT0oa3wwKSl7dz0yNTA4fWVsc2V7eD1lfDA7eT10O3o9dDtBPXQ7Qj1iO0M9cHwwO0Q9cXww
O0U9b3wwO0Y9ajtHPTA7TDI5NzE6d2hpbGUoMSl7SD1HO3doaWxlKDEpe2lmKChIfDApIT0wKXt3
PTI1MDg7YnJlYWsgTDI5Njl9ST1jW3Y+PjJdfDA7ZG97aWYoKEl8MCk9PTApe0o9MH1lbHNle0s9
Y1tJKzEyPj4yXXwwO2lmKChLfDApPT0oY1tJKzE2Pj4yXXwwKSl7TD1iMFtjWyhjW0k+PjJdfDAp
KzM2Pj4yXSYxMjddKEkpfDB9ZWxzZXtMPWNbSz4+Ml18MH1pZigoTHwwKSE9LTEpe0o9STticmVh
a31jW3Y+PjJdPTA7Sj0wfX13aGlsZSgwKTtJPShKfDApPT0wO0s9Y1t4Pj4yXXwwO2Rve2lmKChL
fDApPT0wKXt3PTI0NjB9ZWxzZXtNPWNbSysxMj4+Ml18MDtpZigoTXwwKT09KGNbSysxNj4+Ml18
MCkpe049YjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShLKXwwfWVsc2V7Tj1jW00+PjJdfDB9
aWYoKE58MCk9PS0xKXtjW3g+PjJdPTA7dz0yNDYwO2JyZWFrfWVsc2V7aWYoSV4oS3wwKT09MCl7
Tz1LO2JyZWFrfWVsc2V7dz0yNDYyO2JyZWFrIEwyOTcxfX19fXdoaWxlKDApO2lmKCh3fDApPT0y
NDYwKXt3PTA7aWYoSSl7dz0yNDYyO2JyZWFrIEwyOTcxfWVsc2V7Tz0wfX1pZigoYjFbY1soY1t5
Pj4yXXwwKSs1Mj4+Ml0mNjNdKHUsY1tGPj4yXXwwLDApfDApPDwyND4+MjQ9PTM3KXt3PTI0NjU7
YnJlYWt9aWYoYjFbY1soY1t6Pj4yXXwwKSsxMj4+Ml0mNjNdKHUsODE5MixjW0Y+PjJdfDApfDAp
e1A9Rjt3PTI0NzU7YnJlYWt9UT1KKzEyfDA7Sz1jW1E+PjJdfDA7Uj1KKzE2fDA7aWYoKEt8MCk9
PShjW1I+PjJdfDApKXtTPWIwW2NbKGNbSj4+Ml18MCkrMzY+PjJdJjEyN10oSil8MH1lbHNle1M9
Y1tLPj4yXXwwfUs9Yl9bY1soY1tBPj4yXXwwKSsyOD4+Ml0mMzFdKHUsUyl8MDtpZigoS3wwKT09
KGJfW2NbKGNbQT4+Ml18MCkrMjg+PjJdJjMxXSh1LGNbRj4+Ml18MCl8MCkpe3c9MjUwMzticmVh
a31jW2c+PjJdPTQ7SD00fUwzMDAzOmRve2lmKCh3fDApPT0yNTAzKXt3PTA7SD1jW1E+PjJdfDA7
aWYoKEh8MCk9PShjW1I+PjJdfDApKXtLPWNbKGNbSj4+Ml18MCkrNDA+PjJdfDA7YjBbSyYxMjdd
KEopfDB9ZWxzZXtjW1E+PjJdPUgrNH1UPUYrNHwwfWVsc2UgaWYoKHd8MCk9PTI0NjUpe3c9MDtI
PUYrNHwwO2lmKChIfDApPT0oa3wwKSl7dz0yNDY2O2JyZWFrIEwyOTcxfUs9YjFbY1soY1t5Pj4y
XXwwKSs1Mj4+Ml0mNjNdKHUsY1tIPj4yXXwwLDApfDA7c3dpdGNoKEs8PDI0Pj4yNCl7Y2FzZSA2
OTpjYXNlIDQ4OntNPUYrOHwwO2lmKChNfDApPT0oa3wwKSl7dz0yNDY5O2JyZWFrIEwyOTcxfVU9
SztWPWIxW2NbKGNbeT4+Ml18MCkrNTI+PjJdJjYzXSh1LGNbTT4+Ml18MCwwKXwwO1c9TTticmVh
a307ZGVmYXVsdDp7VT0wO1Y9SztXPUh9fUg9Y1soY1tCPj4yXXwwKSszNj4+Ml18MDtjW0M+PjJd
PUo7Y1tEPj4yXT1PO2I3W0gmN10obyxiLHAscSxmLGcsaCxWLFUpO2Nbdj4+Ml09Y1tFPj4yXTtU
PVcrNHwwfWVsc2UgaWYoKHd8MCk9PTI0NzUpe3doaWxlKDEpe3c9MDtIPVArNHwwO2lmKChIfDAp
PT0oa3wwKSl7WD1rO2JyZWFrfWlmKGIxW2NbKGNbej4+Ml18MCkrMTI+PjJdJjYzXSh1LDgxOTIs
Y1tIPj4yXXwwKXwwKXtQPUg7dz0yNDc1fWVsc2V7WD1IO2JyZWFrfX1JPUo7SD1PO3doaWxlKDEp
e2Rve2lmKChJfDApPT0wKXtZPTB9ZWxzZXtLPWNbSSsxMj4+Ml18MDtpZigoS3wwKT09KGNbSSsx
Nj4+Ml18MCkpe1o9YjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwfWVsc2V7Wj1jW0s+
PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUk7YnJlYWt9Y1t2Pj4yXT0wO1k9MH19d2hpbGUoMCk7Sz0o
WXwwKT09MDtkb3tpZigoSHwwKT09MCl7dz0yNDkwfWVsc2V7TT1jW0grMTI+PjJdfDA7aWYoKE18
MCk9PShjW0grMTY+PjJdfDApKXtfPWIwW2NbKGNbSD4+Ml18MCkrMzY+PjJdJjEyN10oSCl8MH1l
bHNle189Y1tNPj4yXXwwfWlmKChffDApPT0tMSl7Y1t4Pj4yXT0wO3c9MjQ5MDticmVha31lbHNl
e2lmKEteKEh8MCk9PTApeyQ9SDticmVha31lbHNle1Q9WDticmVhayBMMzAwM319fX13aGlsZSgw
KTtpZigod3wwKT09MjQ5MCl7dz0wO2lmKEspe1Q9WDticmVhayBMMzAwM31lbHNleyQ9MH19TT1Z
KzEyfDA7YWE9Y1tNPj4yXXwwO2FiPVkrMTZ8MDtpZigoYWF8MCk9PShjW2FiPj4yXXwwKSl7YWM9
YjBbY1soY1tZPj4yXXwwKSszNj4+Ml0mMTI3XShZKXwwfWVsc2V7YWM9Y1thYT4+Ml18MH1pZigh
KGIxW2NbKGNbej4+Ml18MCkrMTI+PjJdJjYzXSh1LDgxOTIsYWMpfDApKXtUPVg7YnJlYWsgTDMw
MDN9YWE9Y1tNPj4yXXwwO2lmKChhYXwwKT09KGNbYWI+PjJdfDApKXthYj1jWyhjW1k+PjJdfDAp
KzQwPj4yXXwwO2IwW2FiJjEyN10oWSl8MDtJPVk7SD0kO2NvbnRpbnVlfWVsc2V7Y1tNPj4yXT1h
YSs0O0k9WTtIPSQ7Y29udGludWV9fX19d2hpbGUoMCk7aWYoKFR8MCk9PShrfDApKXt3PTI1MDg7
YnJlYWsgTDI5Njl9Rj1UO0c9Y1tnPj4yXXwwfWlmKCh3fDApPT0yNDYyKXtjW2c+PjJdPTQ7YWQ9
SjticmVha31lbHNlIGlmKCh3fDApPT0yNDY2KXtjW2c+PjJdPTQ7YWQ9SjticmVha31lbHNlIGlm
KCh3fDApPT0yNDY5KXtjW2c+PjJdPTQ7YWQ9SjticmVha319fXdoaWxlKDApO2lmKCh3fDApPT0y
NTA4KXthZD1jW3Y+PjJdfDB9dT1kfDA7ZG97aWYoKGFkfDApIT0wKXt0PWNbYWQrMTI+PjJdfDA7
aWYoKHR8MCk9PShjW2FkKzE2Pj4yXXwwKSl7YWU9YjBbY1soY1thZD4+Ml18MCkrMzY+PjJdJjEy
N10oYWQpfDB9ZWxzZXthZT1jW3Q+PjJdfDB9aWYoKGFlfDApIT0tMSl7YnJlYWt9Y1t1Pj4yXT0w
fX13aGlsZSgwKTt2PWNbdT4+Ml18MDt0PSh2fDApPT0wO0c9ZXwwO0Y9Y1tHPj4yXXwwO2Rve2lm
KChGfDApPT0wKXt3PTI1MjF9ZWxzZXt6PWNbRisxMj4+Ml18MDtpZigoenwwKT09KGNbRisxNj4+
Ml18MCkpe2FmPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8MH1lbHNle2FmPWNbej4+
Ml18MH1pZigoYWZ8MCk9PS0xKXtjW0c+PjJdPTA7dz0yNTIxO2JyZWFrfWlmKCEodF4oRnwwKT09
MCkpe2JyZWFrfWFnPWF8MDtjW2FnPj4yXT12O2k9bDtyZXR1cm59fXdoaWxlKDApO2Rve2lmKCh3
fDApPT0yNTIxKXtpZih0KXticmVha31hZz1hfDA7Y1thZz4+Ml09djtpPWw7cmV0dXJufX13aGls
ZSgwKTtjW2c+PjJdPWNbZz4+Ml18MjthZz1hfDA7Y1thZz4+Ml09djtpPWw7cmV0dXJufX13aGls
ZSgwKTtsPWJPKDQpfDA7a3EobCk7YmwobHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnUyhhLGIsZCxl
LGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7aj1pO2k9aSszMnww
O2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1lO2U9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHwwO209aisyNHwwO2Vq
KG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJdPTE1Njg4
O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8
MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLW4+PjI+Pj4wPmw+Pj4wKXtvPWNb
bisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztvPWNbZj4+Ml18MDtkeihvKXww
O289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjW2NbcT4+Ml0+PjJdJjEyN10ocSl8MDtjW2s+PjJd
PW87bz0oZlMoZCxrLHIscisxNjh8MCxwLGcsMCl8MCktcnwwO2lmKChvfDApPj0xNjgpe3M9ZHww
O3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufWNbaCsyND4+Ml09KChvfDAp
LzEyfDB8MCklN3wwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJu
fX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnVChh
LGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2
YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7aj1pO2k9
aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1lO2U9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHwwO209aisy
NHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJd
PTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNd
fDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLW4+PjI+Pj4wPmw+Pj4w
KXtvPWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztvPWNbZj4+Ml18MDtk
eihvKXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjWyhjW3E+PjJdfDApKzQ+PjJdJjEyN10o
cSl8MDtjW2s+PjJdPW87bz0oZlMoZCxrLHIscisyODh8MCxwLGcsMCl8MCktcnwwO2lmKChvfDAp
Pj0yODgpe3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufWNbaCsx
Nj4+Ml09KChvfDApLzEyfDB8MCklMTJ8MDtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJd
PXQ7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGopO2JsKGp8MCw4MTc2LDEzNCl9
ZnVuY3Rpb24gZ1UoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDti
PWk7aT1pKzMyfDA7aj1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tqPj4yXTtq
PWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9YnwwO2s9Yis4fDA7
bD1iKzI0fDA7ZWoobCxmKTtmPWx8MDtsPWNbZj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2Nb
az4+Ml09MTU2ODg7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1Njg4LGssOTYpfWs9KGNb
MzkyM118MCktMXwwO209Y1tsKzg+PjJdfDA7ZG97aWYoKGNbbCsxMj4+Ml18MCktbT4+Mj4+PjA+
az4+PjApe249Y1ttKyhrPDwyKT4+Ml18MDtpZigobnwwKT09MCl7YnJlYWt9bz1uO249Y1tmPj4y
XXwwO2R6KG4pfDA7Y1tqPj4yXT1jW2U+PjJdO249aGMoZCxqLGcsbyw0KXwwO2lmKChjW2c+PjJd
JjR8MCkhPTApe3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXwwO2Nbcj4+Ml09cTtpPWI7cmV0dXJufWlm
KChufDApPDY5KXtzPW4rMmUzfDB9ZWxzZXtzPShuLTY5fDApPj4+MDwzMT9uKzE5MDB8MDpufWNb
aCsyMD4+Ml09cy0xOTAwO3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXwwO2Nbcj4+Ml09cTtpPWI7cmV0
dXJufX13aGlsZSgwKTtiPWJPKDQpfDA7a3EoYik7YmwoYnwwLDgxNzYsMTM0KX1mdW5jdGlvbiBn
VihhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
O2E9aTtnPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2c+PjJdO2c9YnwwO2I9
ZHwwO2Q9ZjtMMzEyNzp3aGlsZSgxKXtoPWNbZz4+Ml18MDtkb3tpZigoaHwwKT09MCl7aj0xfWVs
c2V7az1jW2grMTI+PjJdfDA7aWYoKGt8MCk9PShjW2grMTY+PjJdfDApKXtsPWIwW2NbKGNbaD4+
Ml18MCkrMzY+PjJdJjEyN10oaCl8MH1lbHNle2w9Y1trPj4yXXwwfWlmKChsfDApPT0tMSl7Y1tn
Pj4yXT0wO2o9MTticmVha31lbHNle2o9KGNbZz4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTto
PWNbYj4+Ml18MDtkb3tpZigoaHwwKT09MCl7bT0yNTgxfWVsc2V7az1jW2grMTI+PjJdfDA7aWYo
KGt8MCk9PShjW2grMTY+PjJdfDApKXtuPWIwW2NbKGNbaD4+Ml18MCkrMzY+PjJdJjEyN10oaCl8
MH1lbHNle249Y1trPj4yXXwwfWlmKChufDApPT0tMSl7Y1tiPj4yXT0wO209MjU4MTticmVha31l
bHNle2s9KGh8MCk9PTA7aWYoal5rKXtvPWg7cD1rO2JyZWFrfWVsc2V7cT1oO3I9azticmVhayBM
MzEyN319fX13aGlsZSgwKTtpZigobXwwKT09MjU4MSl7bT0wO2lmKGope3E9MDtyPTE7YnJlYWt9
ZWxzZXtvPTA7cD0xfX1oPWNbZz4+Ml18MDtrPWNbaCsxMj4+Ml18MDtpZigoa3wwKT09KGNbaCsx
Nj4+Ml18MCkpe3M9YjBbY1soY1toPj4yXXwwKSszNj4+Ml0mMTI3XShoKXwwfWVsc2V7cz1jW2s+
PjJdfDB9aWYoIShiMVtjWyhjW2Q+PjJdfDApKzEyPj4yXSY2M10oZiw4MTkyLHMpfDApKXtxPW87
cj1wO2JyZWFrfWs9Y1tnPj4yXXwwO2g9aysxMnwwO3Q9Y1toPj4yXXwwO2lmKCh0fDApPT0oY1tr
KzE2Pj4yXXwwKSl7dT1jWyhjW2s+PjJdfDApKzQwPj4yXXwwO2IwW3UmMTI3XShrKXwwO2NvbnRp
bnVlfWVsc2V7Y1toPj4yXT10KzQ7Y29udGludWV9fXA9Y1tnPj4yXXwwO2Rve2lmKChwfDApPT0w
KXt2PTF9ZWxzZXtvPWNbcCsxMj4+Ml18MDtpZigob3wwKT09KGNbcCsxNj4+Ml18MCkpe3c9YjBb
Y1soY1twPj4yXXwwKSszNj4+Ml0mMTI3XShwKXwwfWVsc2V7dz1jW28+PjJdfDB9aWYoKHd8MCk9
PS0xKXtjW2c+PjJdPTA7dj0xO2JyZWFrfWVsc2V7dj0oY1tnPj4yXXwwKT09MDticmVha319fXdo
aWxlKDApO2Rve2lmKHIpe209MjYwM31lbHNle2c9Y1txKzEyPj4yXXwwO2lmKChnfDApPT0oY1tx
KzE2Pj4yXXwwKSl7eD1iMFtjWyhjW3E+PjJdfDApKzM2Pj4yXSYxMjddKHEpfDB9ZWxzZXt4PWNb
Zz4+Ml18MH1pZigoeHwwKT09LTEpe2NbYj4+Ml09MDttPTI2MDM7YnJlYWt9aWYoISh2XihxfDAp
PT0wKSl7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKG18MCk9PTI2MDMpe2lmKHYp
e2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2NbZT4+Ml09Y1tlPj4yXXwyO2k9YTtyZXR1cm59
ZnVuY3Rpb24gZ1coYixkLGUsZixnLGgsaixrLGwpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9
MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0w
LFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9
MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wO2w9aTtpPWkrMzI4fDA7bT1lO2U9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4yXTttPWY7Zj1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209bHwwO249bCs4fDA7bz1sKzE2fDA7cD1sKzI0fDA7
cT1sKzMyfDA7cj1sKzQwfDA7cz1sKzQ4fDA7dD1sKzU2fDA7dT1sKzY0fDA7dj1sKzcyfDA7dz1s
KzgwfDA7eD1sKzg4fDA7eT1sKzk2fDA7ej1sKzExMnwwO0E9bCsxMjB8MDtCPWwrMTI4fDA7Qz1s
KzEzNnwwO0Q9bCsxNDR8MDtFPWwrMTUyfDA7Rj1sKzE2MHwwO0c9bCsxNjh8MDtIPWwrMTc2fDA7
ST1sKzE4NHwwO0o9bCsxOTJ8MDtLPWwrMjAwfDA7TD1sKzIwOHwwO009bCsyMTZ8MDtOPWwrMjI0
fDA7Tz1sKzIzMnwwO1A9bCsyNDB8MDtRPWwrMjQ4fDA7Uj1sKzI1NnwwO1M9bCsyNjR8MDtUPWwr
MjcyfDA7VT1sKzI4MHwwO1Y9bCsyODh8MDtXPWwrMjk2fDA7WD1sKzMwNHwwO1k9bCszMTJ8MDta
PWwrMzIwfDA7Y1toPj4yXT0wO2VqKHosZyk7Xz16fDA7ej1jW18+PjJdfDA7aWYoKGNbMzkyMl18
MCkhPS0xKXtjW3k+PjJdPTE1Njg4O2NbeSs0Pj4yXT0xMjtjW3krOD4+Ml09MDtkVygxNTY4OCx5
LDk2KX15PShjWzM5MjNdfDApLTF8MDskPWNbeis4Pj4yXXwwO2Rve2lmKChjW3orMTI+PjJdfDAp
LSQ+PjI+Pj4wPnk+Pj4wKXthYT1jWyQrKHk8PDIpPj4yXXwwO2lmKChhYXwwKT09MCl7YnJlYWt9
YWI9YWE7YWE9Y1tfPj4yXXwwO2R6KGFhKXwwO0wzMTkyOmRve3N3aXRjaChrPDwyND4+MjR8MCl7
Y2FzZSAxMDA6Y2FzZSAxMDE6e2FhPWorMTJ8MDtjW3Y+PjJdPWNbZj4+Ml07YWM9aGMoZSx2LGgs
YWIsMil8MDthZD1jW2g+PjJdfDA7ZG97aWYoKGFkJjR8MCk9PTApe2lmKChhYy0xfDApPj4+MD49
MzEpe2JyZWFrfWNbYWE+PjJdPWFjO2JyZWFrIEwzMTkyfX13aGlsZSgwKTtjW2g+PjJdPWFkfDQ7
YnJlYWt9O2Nhc2UgMTEwOmNhc2UgMTE2OntjW0o+PjJdPWNbZj4+Ml07Z1YoMCxlLEosaCxhYik7
YnJlYWt9O2Nhc2UgODg6e2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+PjJdfDApKzI0Pj4yXSYxMjdd
KGFjKXwwO2FjPWV8MDtjW1g+PjJdPWNbYWM+PjJdO2NbWT4+Ml09Y1tmPj4yXTthZT1hW2FhXXww
O2lmKChhZSYxKT09MCl7YWY9YWErNHwwO2FnPWFhKzR8MH1lbHNle2FoPWNbYWErOD4+Ml18MDth
Zj1haDthZz1haH1haD1hZSYyNTU7aWYoKGFoJjF8MCk9PTApe2FpPWFoPj4+MX1lbHNle2FpPWNb
YWErND4+Ml18MH1nUihXLGQsWCxZLGcsaCxqLGFnLGFmKyhhaTw8Mil8MCk7Y1thYz4+Ml09Y1tX
Pj4yXTticmVha307Y2FzZSA5ODpjYXNlIDY2OmNhc2UgMTA0OnthYz1jW2Y+PjJdfDA7YWE9ZCs4
fDA7YWg9YjBbY1soY1thYT4+Ml18MCkrND4+Ml0mMTI3XShhYSl8MDtjW3c+PjJdPWFjO2FjPShm
UyhlLHcsYWgsYWgrMjg4fDAsYWIsaCwwKXwwKS1haHwwO2lmKChhY3wwKT49Mjg4KXticmVhayBM
MzE5Mn1jW2orMTY+PjJdPSgoYWN8MCkvMTJ8MHwwKSUxMnwwO2JyZWFrfTtjYXNlIDExMjp7Y1tL
Pj4yXT1jW2Y+PjJdO2dYKGQsais4fDAsZSxLLGgsYWIpO2JyZWFrfTtjYXNlIDExNDp7YWM9ZXww
O2NbTT4+Ml09Y1thYz4+Ml07Y1tOPj4yXT1jW2Y+PjJdO2dSKEwsZCxNLE4sZyxoLGosMjIxNiwy
MjYwKTtjW2FjPj4yXT1jW0w+PjJdO2JyZWFrfTtjYXNlIDM3OntjW1o+PjJdPWNbZj4+Ml07Z1ko
MCxlLFosaCxhYik7YnJlYWt9O2Nhc2UgNjg6e2FjPWV8MDtjW0U+PjJdPWNbYWM+PjJdO2NbRj4+
Ml09Y1tmPj4yXTtnUihELGQsRSxGLGcsaCxqLDIyNjQsMjI5Nik7Y1thYz4+Ml09Y1tEPj4yXTti
cmVha307Y2FzZSA4OTp7Y1ttPj4yXT1jW2Y+PjJdO2FjPWhjKGUsbSxoLGFiLDQpfDA7aWYoKGNb
aD4+Ml0mNHwwKSE9MCl7YnJlYWsgTDMxOTJ9Y1tqKzIwPj4yXT1hYy0xOTAwO2JyZWFrfTtjYXNl
IDgyOnthYz1lfDA7Y1tQPj4yXT1jW2FjPj4yXTtjW1E+PjJdPWNbZj4+Ml07Z1IoTyxkLFAsUSxn
LGgsaiwyMTkyLDIyMTIpO2NbYWM+PjJdPWNbTz4+Ml07YnJlYWt9O2Nhc2UgODM6e2NbcD4+Ml09
Y1tmPj4yXTthYz1oYyhlLHAsaCxhYiwyKXwwO2FoPWNbaD4+Ml18MDtpZigoYWgmNHwwKT09MCYo
YWN8MCk8NjEpe2Nbaj4+Ml09YWM7YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFofDQ7YnJlYWsg
TDMxOTJ9YnJlYWt9O2Nhc2UgMTA2OntjW3M+PjJdPWNbZj4+Ml07YWg9aGMoZSxzLGgsYWIsMyl8
MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAmKGFofDApPDM2Nil7Y1tqKzI4Pj4yXT1haDti
cmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSA5Nzpj
YXNlIDY1OnthYz1jW2Y+PjJdfDA7YWg9ZCs4fDA7YWE9YjBbY1tjW2FoPj4yXT4+Ml0mMTI3XShh
aCl8MDtjW3g+PjJdPWFjO2FjPShmUyhlLHgsYWEsYWErMTY4fDAsYWIsaCwwKXwwKS1hYXwwO2lm
KChhY3wwKT49MTY4KXticmVhayBMMzE5Mn1jW2orMjQ+PjJdPSgoYWN8MCkvMTJ8MHwwKSU3fDA7
YnJlYWt9O2Nhc2UgOTk6e2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+PjJdfDApKzEyPj4yXSYxMjdd
KGFjKXwwO2FjPWV8MDtjW0I+PjJdPWNbYWM+PjJdO2NbQz4+Ml09Y1tmPj4yXTthaD1hW2FhXXww
O2lmKChhaCYxKT09MCl7YWo9YWErNHwwO2FrPWFhKzR8MH1lbHNle2FlPWNbYWErOD4+Ml18MDth
aj1hZTthaz1hZX1hZT1haCYyNTU7aWYoKGFlJjF8MCk9PTApe2FsPWFlPj4+MX1lbHNle2FsPWNb
YWErND4+Ml18MH1nUihBLGQsQixDLGcsaCxqLGFrLGFqKyhhbDw8Mil8MCk7Y1thYz4+Ml09Y1tB
Pj4yXTticmVha307Y2FzZSA4NDp7YWM9ZXwwO2NbUz4+Ml09Y1thYz4+Ml07Y1tUPj4yXT1jW2Y+
PjJdO2dSKFIsZCxTLFQsZyxoLGosMjE2MCwyMTkyKTtjW2FjPj4yXT1jW1I+PjJdO2JyZWFrfTtj
YXNlIDcwOnthYz1lfDA7Y1tIPj4yXT1jW2FjPj4yXTtjW0k+PjJdPWNbZj4+Ml07Z1IoRyxkLEgs
SSxnLGgsaiwyMTI4LDIxNjApO2NbYWM+PjJdPWNbRz4+Ml07YnJlYWt9O2Nhc2UgNzI6e2NbdT4+
Ml09Y1tmPj4yXTthYz1oYyhlLHUsaCxhYiwyKXwwO2FhPWNbaD4+Ml18MDtpZigoYWEmNHwwKT09
MCYoYWN8MCk8MjQpe2Nbais4Pj4yXT1hYzticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWF8NDti
cmVhayBMMzE5Mn1icmVha307Y2FzZSAxMjE6e2Nbbj4+Ml09Y1tmPj4yXTthYT1oYyhlLG4saCxh
Yiw0KXwwO2lmKChjW2g+PjJdJjR8MCkhPTApe2JyZWFrIEwzMTkyfWlmKChhYXwwKTw2OSl7YW09
YWErMmUzfDB9ZWxzZXthbT0oYWEtNjl8MCk+Pj4wPDMxP2FhKzE5MDB8MDphYX1jW2orMjA+PjJd
PWFtLTE5MDA7YnJlYWt9O2Nhc2UgMTA5OntjW3I+PjJdPWNbZj4+Ml07YWE9KGhjKGUscixoLGFi
LDIpfDApLTF8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAmKGFhfDApPDEyKXtjW2orMTY+
PjJdPWFhO2JyZWFrIEwzMTkyfWVsc2V7Y1toPj4yXT1hY3w0O2JyZWFrIEwzMTkyfWJyZWFrfTtj
YXNlIDczOnthYz1qKzh8MDtjW3Q+PjJdPWNbZj4+Ml07YWE9aGMoZSx0LGgsYWIsMil8MDthZT1j
W2g+PjJdfDA7ZG97aWYoKGFlJjR8MCk9PTApe2lmKChhYS0xfDApPj4+MD49MTIpe2JyZWFrfWNb
YWM+PjJdPWFhO2JyZWFrIEwzMTkyfX13aGlsZSgwKTtjW2g+PjJdPWFlfDQ7YnJlYWt9O2Nhc2Ug
Nzc6e2NbcT4+Ml09Y1tmPj4yXTthYT1oYyhlLHEsaCxhYiwyKXwwO2FjPWNbaD4+Ml18MDtpZigo
YWMmNHwwKT09MCYoYWF8MCk8NjApe2Nbais0Pj4yXT1hYTticmVhayBMMzE5Mn1lbHNle2NbaD4+
Ml09YWN8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMTk6e2Nbbz4+Ml09Y1tmPj4yXTthYz1o
YyhlLG8saCxhYiwxKXwwO2FhPWNbaD4+Ml18MDtpZigoYWEmNHwwKT09MCYoYWN8MCk8Nyl7Y1tq
KzI0Pj4yXT1hYzticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWF8NDticmVhayBMMzE5Mn1icmVh
a307Y2FzZSAxMjA6e2FhPWNbKGNbZD4+Ml18MCkrMjA+PjJdfDA7Y1tVPj4yXT1jW2U+PjJdO2Nb
Vj4+Ml09Y1tmPj4yXTtiWFthYSYxMjddKGIsZCxVLFYsZyxoLGopO2k9bDtyZXR1cm59O2RlZmF1
bHQ6e2NbaD4+Ml09Y1toPj4yXXw0fX19d2hpbGUoMCk7Y1tiPj4yXT1jW2U+PjJdO2k9bDtyZXR1
cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdY
KGEsYixlLGYsZyxoKXthPWF8MDtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0w
LGs9MCxsPTAsbT0wLG49MDtqPWk7aT1pKzh8MDtrPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tmPj4yXT1jW2s+PjJdO2s9anwwO2w9YSs4fDA7YT1iMFtjWyhjW2w+PjJdfDApKzg+PjJdJjEy
N10obCl8MDtsPWRbYV18MDtpZigobCYxfDApPT0wKXttPWw+Pj4xfWVsc2V7bT1jW2ErND4+Ml18
MH1sPWRbYSsxMnwwXXwwO2lmKChsJjF8MCk9PTApe249bD4+PjF9ZWxzZXtuPWNbYSsxNj4+Ml18
MH1pZigobXwwKT09KC1ufDApKXtjW2c+PjJdPWNbZz4+Ml18NDtpPWo7cmV0dXJufWNbaz4+Ml09
Y1tmPj4yXTtmPWZTKGUsayxhLGErMjR8MCxoLGcsMCl8MDtnPWYtYXwwO2Rve2lmKChmfDApPT0o
YXwwKSl7aWYoKGNbYj4+Ml18MCkhPTEyKXticmVha31jW2I+PjJdPTA7aT1qO3JldHVybn19d2hp
bGUoMCk7aWYoKGd8MCkhPTEyKXtpPWo7cmV0dXJufWc9Y1tiPj4yXXwwO2lmKChnfDApPj0xMil7
aT1qO3JldHVybn1jW2I+PjJdPWcrMTI7aT1qO3JldHVybn0KLWZ1bmN0aW9uIGdZKGEsYixkLGUs
Zil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2E9aTtnPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tkPj4yXT1jW2c+PjJdO2c9YnwwO2I9Y1tnPj4yXXwwO2Rve2lmKChifDApPT0wKXtoPTF9
ZWxzZXtqPWNbYisxMj4+Ml18MDtpZigoanwwKT09KGNbYisxNj4+Ml18MCkpe2s9YjBbY1soY1ti
Pj4yXXwwKSszNj4+Ml0mMTI3XShiKXwwfWVsc2V7az1jW2o+PjJdfDB9aWYoKGt8MCk9PS0xKXtj
W2c+PjJdPTA7aD0xO2JyZWFrfWVsc2V7aD0oY1tnPj4yXXwwKT09MDticmVha319fXdoaWxlKDAp
O2s9ZHwwO2Q9Y1trPj4yXXwwO2Rve2lmKChkfDApPT0wKXtsPTI3MTZ9ZWxzZXtiPWNbZCsxMj4+
Ml18MDtpZigoYnwwKT09KGNbZCsxNj4+Ml18MCkpe209YjBbY1soY1tkPj4yXXwwKSszNj4+Ml0m
MTI3XShkKXwwfWVsc2V7bT1jW2I+PjJdfDB9aWYoKG18MCk9PS0xKXtjW2s+PjJdPTA7bD0yNzE2
O2JyZWFrfWVsc2V7Yj0oZHwwKT09MDtpZihoXmIpe249ZDtvPWI7YnJlYWt9ZWxzZXtsPTI3MTg7
YnJlYWt9fX19d2hpbGUoMCk7aWYoKGx8MCk9PTI3MTYpe2lmKGgpe2w9MjcxOH1lbHNle249MDtv
PTF9fWlmKChsfDApPT0yNzE4KXtjW2U+PjJdPWNbZT4+Ml18NjtpPWE7cmV0dXJufWg9Y1tnPj4y
XXwwO2Q9Y1toKzEyPj4yXXwwO2lmKChkfDApPT0oY1toKzE2Pj4yXXwwKSl7cD1iMFtjWyhjW2g+
PjJdfDApKzM2Pj4yXSYxMjddKGgpfDB9ZWxzZXtwPWNbZD4+Ml18MH1pZigoYjFbY1soY1tmPj4y
XXwwKSs1Mj4+Ml0mNjNdKGYscCwwKXwwKTw8MjQ+PjI0IT0zNyl7Y1tlPj4yXT1jW2U+PjJdfDQ7
aT1hO3JldHVybn1wPWNbZz4+Ml18MDtmPXArMTJ8MDtkPWNbZj4+Ml18MDtpZigoZHwwKT09KGNb
cCsxNj4+Ml18MCkpe2g9Y1soY1twPj4yXXwwKSs0MD4+Ml18MDtiMFtoJjEyN10ocCl8MH1lbHNl
e2NbZj4+Ml09ZCs0fWQ9Y1tnPj4yXXwwO2Rve2lmKChkfDApPT0wKXtxPTF9ZWxzZXtmPWNbZCsx
Mj4+Ml18MDtpZigoZnwwKT09KGNbZCsxNj4+Ml18MCkpe3I9YjBbY1soY1tkPj4yXXwwKSszNj4+
Ml0mMTI3XShkKXwwfWVsc2V7cj1jW2Y+PjJdfDB9aWYoKHJ8MCk9PS0xKXtjW2c+PjJdPTA7cT0x
O2JyZWFrfWVsc2V7cT0oY1tnPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKG8pe2w9
Mjc0MH1lbHNle2c9Y1tuKzEyPj4yXXwwO2lmKChnfDApPT0oY1tuKzE2Pj4yXXwwKSl7cz1iMFtj
WyhjW24+PjJdfDApKzM2Pj4yXSYxMjddKG4pfDB9ZWxzZXtzPWNbZz4+Ml18MH1pZigoc3wwKT09
LTEpe2Nbaz4+Ml09MDtsPTI3NDA7YnJlYWt9aWYoIShxXihufDApPT0wKSl7YnJlYWt9aT1hO3Jl
dHVybn19d2hpbGUoMCk7ZG97aWYoKGx8MCk9PTI3NDApe2lmKHEpe2JyZWFrfWk9YTtyZXR1cm59
fXdoaWxlKDApO2NbZT4+Ml09Y1tlPj4yXXwyO2k9YTtyZXR1cm59ZnVuY3Rpb24gZ1ooYSl7YT1h
fDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnXyhhKXthPWF8MDtyZXR1cm4gMTI3fWZ1bmN0aW9uIGck
KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGcwKGEpe2E9YXwwO3JldHVybiAxMjd9ZnVuY3Rp
b24gZzEoYSl7YT1hfDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnMihhKXthPWF8MDtyZXR1cm4gMH1m
dW5jdGlvbiBnMyhhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBnNChhKXthPWF8
MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBnNShhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlv
biBnNihiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2Fb
YysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7
cmV0dXJufWZ1bmN0aW9uIGc3KGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1D
JjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODth
W2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gZzgoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02
NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09
QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBnOShiLGMpe2I9Ynww
O2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9
Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9u
IGhhKGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtj
KzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTty
ZXR1cm59ZnVuY3Rpb24gaGIoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMm
MjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2Fb
YyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoYyhhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9
MCxGPTAsRz0wO2c9aTtoPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2g+PjJd
O2g9YXwwO2E9Y1toPj4yXXwwO2Rve2lmKChhfDApPT0wKXtqPTF9ZWxzZXtrPWNbYSsxMj4+Ml18
MDtpZigoa3wwKT09KGNbYSsxNj4+Ml18MCkpe2w9YjBbY1soY1thPj4yXXwwKSszNj4+Ml0mMTI3
XShhKXwwfWVsc2V7bD1jW2s+PjJdfDB9aWYoKGx8MCk9PS0xKXtjW2g+PjJdPTA7aj0xO2JyZWFr
fWVsc2V7aj0oY1toPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2w9YnwwO2I9Y1tsPj4yXXww
O2Rve2lmKChifDApPT0wKXttPTI5fWVsc2V7YT1jW2IrMTI+PjJdfDA7aWYoKGF8MCk9PShjW2Ir
MTY+PjJdfDApKXtuPWIwW2NbKGNbYj4+Ml18MCkrMzY+PjJdJjEyN10oYil8MH1lbHNle249Y1th
Pj4yXXwwfWlmKChufDApPT0tMSl7Y1tsPj4yXT0wO209Mjk7YnJlYWt9ZWxzZXtpZihqXihifDAp
PT0wKXtvPWI7YnJlYWt9ZWxzZXttPTMxO2JyZWFrfX19fXdoaWxlKDApO2lmKChtfDApPT0yOSl7
aWYoail7bT0zMX1lbHNle289MH19aWYoKG18MCk9PTMxKXtjW2Q+PjJdPWNbZD4+Ml18NjtwPTA7
aT1nO3JldHVybiBwfDB9aj1jW2g+PjJdfDA7Yj1jW2orMTI+PjJdfDA7aWYoKGJ8MCk9PShjW2or
MTY+PjJdfDApKXtxPWIwW2NbKGNbaj4+Ml18MCkrMzY+PjJdJjEyN10oail8MH1lbHNle3E9Y1ti
Pj4yXXwwfWI9ZTtpZighKGIxW2NbKGNbYj4+Ml18MCkrMTI+PjJdJjYzXShlLDIwNDgscSl8MCkp
e2NbZD4+Ml09Y1tkPj4yXXw0O3A9MDtpPWc7cmV0dXJuIHB8MH1qPWU7bj0oYjFbY1soY1tqPj4y
XXwwKSs1Mj4+Ml0mNjNdKGUscSwwKXwwKTw8MjQ+PjI0O3E9Y1toPj4yXXwwO2E9cSsxMnwwO2s9
Y1thPj4yXXwwO2lmKChrfDApPT0oY1txKzE2Pj4yXXwwKSl7cj1jWyhjW3E+PjJdfDApKzQwPj4y
XXwwO2IwW3ImMTI3XShxKXwwO3M9bjt0PWY7dT1vfWVsc2V7Y1thPj4yXT1rKzQ7cz1uO3Q9Zjt1
PW99d2hpbGUoMSl7dj1zLTQ4fDA7bz10LTF8MDtmPWNbaD4+Ml18MDtkb3tpZigoZnwwKT09MCl7
dz0wfWVsc2V7bj1jW2YrMTI+PjJdfDA7aWYoKG58MCk9PShjW2YrMTY+PjJdfDApKXt4PWIwW2Nb
KGNbZj4+Ml18MCkrMzY+PjJdJjEyN10oZil8MH1lbHNle3g9Y1tuPj4yXXwwfWlmKCh4fDApPT0t
MSl7Y1toPj4yXT0wO3c9MDticmVha31lbHNle3c9Y1toPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7
Zj0od3wwKT09MDtpZigodXwwKT09MCl7eT13O3o9MH1lbHNle249Y1t1KzEyPj4yXXwwO2lmKChu
fDApPT0oY1t1KzE2Pj4yXXwwKSl7QT1iMFtjWyhjW3U+PjJdfDApKzM2Pj4yXSYxMjddKHUpfDB9
ZWxzZXtBPWNbbj4+Ml18MH1pZigoQXwwKT09LTEpe2NbbD4+Ml09MDtCPTB9ZWxzZXtCPXV9eT1j
W2g+PjJdfDA7ej1CfUM9KHp8MCk9PTA7aWYoISgoZl5DKSYob3wwKT4wKSl7YnJlYWt9Zj1jW3kr
MTI+PjJdfDA7aWYoKGZ8MCk9PShjW3krMTY+PjJdfDApKXtEPWIwW2NbKGNbeT4+Ml18MCkrMzY+
PjJdJjEyN10oeSl8MH1lbHNle0Q9Y1tmPj4yXXwwfWlmKCEoYjFbY1soY1tiPj4yXXwwKSsxMj4+
Ml0mNjNdKGUsMjA0OCxEKXwwKSl7cD12O209ODE7YnJlYWt9Zj0oKGIxW2NbKGNbaj4+Ml18MCkr
NTI+PjJdJjYzXShlLEQsMCl8MCk8PDI0Pj4yNCkrKHYqMTB8MCl8MDtuPWNbaD4+Ml18MDtrPW4r
MTJ8MDthPWNbaz4+Ml18MDtpZigoYXwwKT09KGNbbisxNj4+Ml18MCkpe3E9Y1soY1tuPj4yXXww
KSs0MD4+Ml18MDtiMFtxJjEyN10obil8MDtzPWY7dD1vO3U9ejtjb250aW51ZX1lbHNle2Nbaz4+
Ml09YSs0O3M9Zjt0PW87dT16O2NvbnRpbnVlfX1pZigobXwwKT09ODEpe2k9ZztyZXR1cm4gcHww
fWRve2lmKCh5fDApPT0wKXtFPTF9ZWxzZXt1PWNbeSsxMj4+Ml18MDtpZigodXwwKT09KGNbeSsx
Nj4+Ml18MCkpe0Y9YjBbY1soY1t5Pj4yXXwwKSszNj4+Ml0mMTI3XSh5KXwwfWVsc2V7Rj1jW3U+
PjJdfDB9aWYoKEZ8MCk9PS0xKXtjW2g+PjJdPTA7RT0xO2JyZWFrfWVsc2V7RT0oY1toPj4yXXww
KT09MDticmVha319fXdoaWxlKDApO2Rve2lmKEMpe209NzV9ZWxzZXtoPWNbeisxMj4+Ml18MDtp
ZigoaHwwKT09KGNbeisxNj4+Ml18MCkpe0c9YjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6
KXwwfWVsc2V7Rz1jW2g+PjJdfDB9aWYoKEd8MCk9PS0xKXtjW2w+PjJdPTA7bT03NTticmVha31p
ZihFXih6fDApPT0wKXtwPXZ9ZWxzZXticmVha31pPWc7cmV0dXJuIHB8MH19d2hpbGUoMCk7ZG97
aWYoKG18MCk9PTc1KXtpZihFKXticmVha31lbHNle3A9dn1pPWc7cmV0dXJuIHB8MH19d2hpbGUo
MCk7Y1tkPj4yXT1jW2Q+PjJdfDI7cD12O2k9ZztyZXR1cm4gcHwwfWZ1bmN0aW9uIGhkKGIsZCxl
LGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1r
fDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTA7Zz1pO2k9
aSsxMTJ8MDtmPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2Y+PjJdO2Y9Z3ww
O2w9Zys4fDA7bT1sfDA7bj1mfDA7YVtuXT0zNztvPWYrMXwwO2Fbb109ajtwPWYrMnwwO2FbcF09
azthW2YrM3wwXT0wO2lmKGs8PDI0Pj4yNCE9MCl7YVtvXT1rO2FbcF09an1qPWJrKG18MCwxMDAs
bnwwLGh8MCxjW2QrOD4+Ml18MCl8MDtkPWwranwwO2w9Y1tlPj4yXXwwO2lmKChqfDApPT0wKXtx
PWw7cj1ifDA7Y1tyPj4yXT1xO2k9ZztyZXR1cm59ZWxzZXtzPWw7dD1tfXdoaWxlKDEpe209YVt0
XXwwO2lmKChzfDApPT0wKXt1PTB9ZWxzZXtsPXMrMjR8MDtqPWNbbD4+Ml18MDtpZigoanwwKT09
KGNbcysyOD4+Ml18MCkpe3Y9Yl9bY1soY1tzPj4yXXwwKSs1Mj4+Ml0mMzFdKHMsbSYyNTUpfDB9
ZWxzZXtjW2w+PjJdPWorMTthW2pdPW07dj1tJjI1NX11PSh2fDApPT0tMT8wOnN9bT10KzF8MDtp
ZigobXwwKT09KGR8MCkpe3E9dTticmVha31lbHNle3M9dTt0PW19fXI9YnwwO2Nbcj4+Ml09cTtp
PWc7cmV0dXJufWZ1bmN0aW9uIGhlKGEsYixkLGUsZixnLGgsail7YT1hfDA7Yj1ifDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTA7Zj1pO2k9aSs0MDh8MDtlPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4y
XT1jW2U+PjJdO2U9ZnwwO2s9Zis0MDB8MDtsPWV8MDtjW2s+PjJdPWUrNDAwO2hDKGIrOHwwLGws
ayxnLGgsaik7aj1jW2s+PjJdfDA7az1jW2Q+PjJdfDA7aWYoKGx8MCk9PShqfDApKXttPWs7bj1h
fDA7Y1tuPj4yXT1tO2k9ZjtyZXR1cm59ZWxzZXtvPWs7cD1sfXdoaWxlKDEpe2w9Y1twPj4yXXww
O2lmKChvfDApPT0wKXtxPTB9ZWxzZXtrPW8rMjR8MDtkPWNbaz4+Ml18MDtpZigoZHwwKT09KGNb
bysyOD4+Ml18MCkpe3I9Yl9bY1soY1tvPj4yXXwwKSs1Mj4+Ml0mMzFdKG8sbCl8MH1lbHNle2Nb
az4+Ml09ZCs0O2NbZD4+Ml09bDtyPWx9cT0ocnwwKT09LTE/MDpvfWw9cCs0fDA7aWYoKGx8MCk9
PShqfDApKXttPXE7YnJlYWt9ZWxzZXtvPXE7cD1sfX1uPWF8MDtjW24+PjJdPW07aT1mO3JldHVy
bn1mdW5jdGlvbiBoZihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBoZyhh
KXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoaChhLGIpe2E9YXwwO2I9YnwwO2skKGF8
MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaGkoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7
cmV0dXJufWZ1bmN0aW9uIGhqKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1m
dW5jdGlvbiBoayhhLGIpe2E9YXwwO2I9YnwwO2RfKGEsMSw0NSk7cmV0dXJufWZ1bmN0aW9uIGhs
KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGhtKGEpe2E9YXwwO2RlKGF8
MCk7cmV0dXJufWZ1bmN0aW9uIGhuKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVy
bn1mdW5jdGlvbiBobyhhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rp
b24gaHAoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhxKGEs
Yil7YT1hfDA7Yj1ifDA7ZF8oYSwxLDQ1KTtyZXR1cm59ZnVuY3Rpb24gaHIoYSl7YT1hfDA7ZGUo
YXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaHMoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVu
Y3Rpb24gaHQoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGh1
KGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBodihhLGIpe2E9
YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaHcoYSxiKXthPWF8MDtiPWJ8
MDtleShhLDEsNDUpO3JldHVybn1mdW5jdGlvbiBoeChhKXthPWF8MDtkZShhfDApO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBoeShiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wO2Q9YjtlPWIrOHww
O2Y9Y1tlPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7
YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGZ8MCk9PShjWzI5NThd
fDApKXtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59YTcoY1tlPj4yXXwwKTtnPWJ8MDtkZShnKTtr
UyhkKTtyZXR1cm59ZnVuY3Rpb24gaHooYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wO2Q9Yis4fDA7
ZT1jW2Q+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXti
cmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoZXwwKT09KGNbMjk1OF18
MCkpe2Y9YnwwO2RlKGYpO3JldHVybn1hNyhjW2Q+PjJdfDApO2Y9YnwwO2RlKGYpO3JldHVybn1m
dW5jdGlvbiBoQShiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wO2Q9YjtlPWIrOHwwO2Y9Y1tl
Pj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9
Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGZ8MCk9PShjWzI5NThdfDApKXtn
PWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59YTcoY1tlPj4yXXwwKTtnPWJ8MDtkZShnKTtrUyhkKTty
ZXR1cm59ZnVuY3Rpb24gaEIoYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wO2Q9Yis4fDA7ZT1jW2Q+
PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31j
WzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoZXwwKT09KGNbMjk1OF18MCkpe2Y9
YnwwO2RlKGYpO3JldHVybn1hNyhjW2Q+PjJdfDApO2Y9YnwwO2RlKGYpO3JldHVybn1mdW5jdGlv
biBoQyhiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFy
IGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aj1pO2k9aSsxMjB8MDtrPWp8MDtsPWor
MTEyfDA7bT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7bj1qKzh8MDtvPWt8MDthW29dPTM3O3A9aysx
fDA7YVtwXT1nO3E9aysyfDA7YVtxXT1oO2FbayszfDBdPTA7aWYoaDw8MjQ+PjI0IT0wKXthW3Bd
PWg7YVtxXT1nfWc9YnwwO2JrKG58MCwxMDAsb3wwLGZ8MCxjW2c+PjJdfDApfDA7Y1tsPj4yXT0w
O2NbbCs0Pj4yXT0wO2NbbT4+Ml09bjtuPShjW2U+PjJdfDApLWQ+PjI7Zj1iQihjW2c+PjJdfDAp
fDA7Zz1rZShkLG0sbixsKXwwO2lmKChmfDApIT0wKXtiQihmfDApfDB9aWYoKGd8MCk9PS0xKXto
Vig5MDQpfWVsc2V7Y1tlPj4yXT1kKyhnPDwyKTtpPWo7cmV0dXJufX1mdW5jdGlvbiBoRChhKXth
PWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBoRShhKXthPWF8MDtyZXR1cm4gMjE0NzQ4
MzY0N31mdW5jdGlvbiBoRihhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBoRyhhKXthPWF8MDty
ZXR1cm59ZnVuY3Rpb24gaEgoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMm
MjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2Fb
YyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoSShiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3
MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1D
JjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGhKKGEpe2E9YXwwO2Rl
KGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhLKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3Jl
dHVybn1mdW5jdGlvbiBoTChhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVu
Y3Rpb24gaE0oYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhO
KGEsYil7YT1hfDA7Yj1ifDA7ZXkoYSwxLDQ1KTtyZXR1cm59ZnVuY3Rpb24gaE8oYSl7YT1hfDA7
ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaFAoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59
ZnVuY3Rpb24gaFEoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wO2Q9aTtpPWkrMjgw
fDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZHwwO209ZCsxNnwwO249ZCsxMjB8
MDtvPWQrMTI4fDA7cD1kKzEzNnwwO3E9ZCsxNDR8MDtyPWQrMTUyfDA7cz1kKzE2MHwwO3Q9ZCsx
NzZ8MDt1PW58MDtjW3U+PjJdPW07dj1uKzR8MDtjW3Y+PjJdPTE2Njt3PW0rMTAwfDA7ZWoocCxo
KTttPXB8MDt4PWNbbT4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1ts
KzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO3k9
Y1t4Kzg+PjJdfDA7ZG97aWYoKGNbeCsxMj4+Ml18MCkteT4+Mj4+PjA+bD4+PjApe3o9Y1t5Kyhs
PDwyKT4+Ml18MDtpZigoenwwKT09MCl7YnJlYWt9QT16O2FbcV09MDtCPWZ8MDtjW3I+PjJdPWNb
Qj4+Ml07ZG97aWYoaFIoZSxyLGcscCxjW2grND4+Ml18MCxqLHEsQSxuLG8sdyl8MCl7Qz1zfDA7
RD1jWyhjW3o+PjJdfDApKzMyPj4yXXwwO2NhW0QmMTVdKEEsMjExMiwyMTIyLEMpfDA7RD10fDA7
RT1jW28+PjJdfDA7Rj1jW3U+PjJdfDA7Rz1FLUZ8MDtkb3tpZigoR3wwKT45OCl7SD1rSihHKzJ8
MCl8MDtpZigoSHwwKSE9MCl7ST1IO0o9SDticmVha31rWCgpO0k9MDtKPTB9ZWxzZXtJPUQ7Sj0w
fX13aGlsZSgwKTtpZigoYVtxXSYxKT09MCl7Sz1JfWVsc2V7YVtJXT00NTtLPUkrMXwwfWlmKEY+
Pj4wPEU+Pj4wKXtHPXMrMTB8MDtIPXM7TD1LO009Rjt3aGlsZSgxKXtOPUM7d2hpbGUoMSl7aWYo
KE58MCk9PShHfDApKXtPPUc7YnJlYWt9aWYoKGFbTl18MCk9PShhW01dfDApKXtPPU47YnJlYWt9
ZWxzZXtOPU4rMXwwfX1hW0xdPWFbMjExMisoTy1IKXwwXXwwO049TSsxfDA7UD1MKzF8MDtpZihO
Pj4+MDwoY1tvPj4yXXwwKT4+PjApe0w9UDtNPU59ZWxzZXtRPVA7YnJlYWt9fX1lbHNle1E9S31h
W1FdPTA7TT1iRChEfDAsMTQwOCwoTD1pLGk9aSs4fDAsY1tMPj4yXT1rLEwpfDApfDA7aT1MO2lm
KChNfDApPT0xKXtpZigoSnwwKT09MCl7YnJlYWt9a0soSik7YnJlYWt9TT1iTyg4KXwwO2RFKE0s
MTM2OCk7YmwoTXwwLDgxOTIsMjIpfX13aGlsZSgwKTtBPWV8MDt6PWNbQT4+Ml18MDtkb3tpZigo
enwwKT09MCl7Uj0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJdfDApKXtSPXo7
YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0xKXtSPXo7YnJl
YWt9Y1tBPj4yXT0wO1I9MH19d2hpbGUoMCk7QT0oUnwwKT09MDt6PWNbQj4+Ml18MDtkb3tpZigo
enwwKT09MCl7Uz0yNDR9ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9KGNbeisxNj4+Ml18MCkpe2lm
KEEpe2JyZWFrfWVsc2V7Uz0yNDY7YnJlYWt9fWlmKChiMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYx
MjddKHopfDApPT0tMSl7Y1tCPj4yXT0wO1M9MjQ0O2JyZWFrfWVsc2V7aWYoQV4oenwwKT09MCl7
YnJlYWt9ZWxzZXtTPTI0NjticmVha319fX13aGlsZSgwKTtpZigoU3wwKT09MjQ0KXtpZihBKXtT
PTI0Nn19aWYoKFN8MCk9PTI0Nil7Y1tqPj4yXT1jW2o+PjJdfDJ9Y1tiPj4yXT1SO3o9Y1ttPj4y
XXwwO2R6KHopfDA7ej1jW3U+PjJdfDA7Y1t1Pj4yXT0wO2lmKCh6fDApPT0wKXtpPWQ7cmV0dXJu
fWJZW2Nbdj4+Ml0mNTExXSh6KTtpPWQ7cmV0dXJufX13aGlsZSgwKTtkPWJPKDQpfDA7a3EoZCk7
YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBoUihlLGYsZyxoLGosayxsLG0sbixvLHApe2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO249bnwwO289b3wwO3A9
cHwwO3ZhciBxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9
MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxh
Yz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49
MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTAs
YXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0wLGFFPTAsYUY9MCxhRz0wLGFIPTAsYUk9MCxhSj0wLGFL
PTAsYUw9MCxhTT0wLGFOPTAsYU89MCxhUD0wLGFRPTAsYVI9MCxhUz0wLGFUPTAsYVU9MCxhVj0w
LGFXPTAsYVg9MCxhWT0wLGFaPTAsYV89MCxhJD0wLGEwPTAsYTE9MCxhMj0wLGEzPTAsYTQ9MCxh
NT0wLGE2PTAsYTc9MCxhOD0wLGE5PTAsYmE9MCxiYj0wLGJjPTAsYmQ9MCxiZT0wLGJmPTAsYmc9
MCxiaD0wLGJpPTAsYmo9MCxiaz0wLGJsPTAsYm09MCxibj0wLGJvPTAsYnA9MCxicT0wLGJyPTAs
YnM9MCxidD0wLGJ1PTAsYnY9MCxidz0wLGJ4PTAsYnk9MCxiej0wLGJBPTAsYkI9MCxiQz0wLGJE
PTAsYkU9MDtxPWk7aT1pKzQ0MHwwO3I9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJd
PWNbcj4+Ml07cj1xfDA7cz1xKzQwMHwwO3Q9cSs0MDh8MDt1PXErNDE2fDA7dj1xKzQyNHwwO3c9
djt4PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3o9aTtp
PWkrMTJ8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Qj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RD1yfDA7ayQod3wwLDAsMTIpO0U9
eDtGPXk7Rz16O0g9QTtrJChFfDAsMCwxMik7ayQoRnwwLDAsMTIpO2skKEd8MCwwLDEyKTtrJChI
fDAsMCwxMik7aFgoZyxoLHMsdCx1LHYseCx5LHosQik7aD1ufDA7Y1tvPj4yXT1jW2g+PjJdO2c9
ZXwwO2U9ZnwwO2Y9bSs4fDA7bT16KzF8MDtJPXorNHwwO0o9eis4fDA7Sz15KzF8MDtMPXkrNHww
O009eSs4fDA7Tj0oaiY1MTJ8MCkhPTA7aj14KzF8MDtPPXgrNHwwO1A9eCs4fDA7UT1BKzF8MDtS
PUErNHwwO1M9QSs4fDA7VD1zKzN8MDtVPW4rNHwwO249dis0fDA7Vj1wO3A9MTY2O1c9RDtYPUQ7
RD1yKzQwMHwwO3I9MDtZPTA7TDI4Njp3aGlsZSgxKXtaPWNbZz4+Ml18MDtkb3tpZigoWnwwKT09
MCl7Xz0wfWVsc2V7aWYoKGNbWisxMj4+Ml18MCkhPShjW1orMTY+PjJdfDApKXtfPVo7YnJlYWt9
aWYoKGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCk9PS0xKXtjW2c+PjJdPTA7Xz0w
O2JyZWFrfWVsc2V7Xz1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtaPShffDApPT0wOyQ9Y1tl
Pj4yXXwwO2Rve2lmKCgkfDApPT0wKXthYT0yNzF9ZWxzZXtpZigoY1skKzEyPj4yXXwwKSE9KGNb
JCsxNj4+Ml18MCkpe2lmKFope2FiPSQ7YnJlYWt9ZWxzZXthYz1wO2FkPVc7YWU9WDthZj1yO2Fh
PTUyMzticmVhayBMMjg2fX1pZigoYjBbY1soY1skPj4yXXwwKSszNj4+Ml0mMTI3XSgkKXwwKT09
LTEpe2NbZT4+Ml09MDthYT0yNzE7YnJlYWt9ZWxzZXtpZihaKXthYj0kO2JyZWFrfWVsc2V7YWM9
cDthZD1XO2FlPVg7YWY9cjthYT01MjM7YnJlYWsgTDI4Nn19fX13aGlsZSgwKTtpZigoYWF8MCk9
PTI3MSl7YWE9MDtpZihaKXthYz1wO2FkPVc7YWU9WDthZj1yO2FhPTUyMzticmVha31lbHNle2Fi
PTB9fUwzMDg6ZG97c3dpdGNoKGFbcytZfDBdfDApe2Nhc2UgMTp7aWYoKFl8MCk9PTMpe2FjPXA7
YWQ9VzthZT1YO2FmPXI7YWE9NTIzO2JyZWFrIEwyODZ9JD1jW2c+PjJdfDA7YWc9Y1skKzEyPj4y
XXwwO2lmKChhZ3wwKT09KGNbJCsxNj4+Ml18MCkpe2FoPShiMFtjWyhjWyQ+PjJdfDApKzM2Pj4y
XSYxMjddKCQpfDApJjI1NX1lbHNle2FoPWFbYWddfDB9aWYoYWg8PDI0Pj4yNDw9LTEpe2FhPTI5
NjticmVhayBMMjg2fWlmKChiWyhjW2Y+PjJdfDApKyhhaDw8MjQ+PjI0PDwxKT4+MV0mODE5Mik9
PTApe2FhPTI5NjticmVhayBMMjg2fWFnPWNbZz4+Ml18MDskPWFnKzEyfDA7YWk9Y1skPj4yXXww
O2lmKChhaXwwKT09KGNbYWcrMTY+PjJdfDApKXthaj0oYjBbY1soY1thZz4+Ml18MCkrNDA+PjJd
JjEyN10oYWcpfDApJjI1NX1lbHNle2NbJD4+Ml09YWkrMTthaj1hW2FpXXwwfWRVKEEsYWopO2Fh
PTI5NzticmVha307Y2FzZSAzOnthaT1hW0ZdfDA7JD1haSYyNTU7YWc9KCQmMXwwKT09MD8kPj4+
MTpjW0w+PjJdfDA7JD1hW0ddfDA7YWs9JCYyNTU7YWw9KGFrJjF8MCk9PTA/YWs+Pj4xOmNbST4+
Ml18MDtpZigoYWd8MCk9PSgtYWx8MCkpe2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2Jy
ZWFrIEwzMDh9YWs9KGFnfDApPT0wO2FnPWNbZz4+Ml18MDthcz1jW2FnKzEyPj4yXXwwO2F0PWNb
YWcrMTY+PjJdfDA7YXU9KGFzfDApPT0oYXR8MCk7aWYoIShha3woYWx8MCk9PTApKXtpZihhdSl7
YWw9KGIwW2NbKGNbYWc+PjJdfDApKzM2Pj4yXSYxMjddKGFnKXwwKSYyNTU7YXY9Y1tnPj4yXXww
O2F3PWFsO2F4PWFbRl18MDtheT1hdjthej1jW2F2KzEyPj4yXXwwO2FBPWNbYXYrMTY+PjJdfDB9
ZWxzZXthdz1hW2FzXXwwO2F4PWFpO2F5PWFnO2F6PWFzO2FBPWF0fWF0PWF5KzEyfDA7YXY9KGF6
fDApPT0oYUF8MCk7aWYoYXc8PDI0Pj4yND09KGFbKGF4JjEpPT0wP0s6Y1tNPj4yXXwwXXwwKSl7
aWYoYXYpe2FsPWNbKGNbYXk+PjJdfDApKzQwPj4yXXwwO2IwW2FsJjEyN10oYXkpfDB9ZWxzZXtj
W2F0Pj4yXT1heisxfWF0PWRbRl18MDthbT0oKGF0JjF8MCk9PTA/YXQ+Pj4xOmNbTD4+Ml18MCk+
Pj4wPjE/eTpyO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWlmKGF2KXthQj0o
YjBbY1soY1theT4+Ml18MCkrMzY+PjJdJjEyN10oYXkpfDApJjI1NX1lbHNle2FCPWFbYXpdfDB9
aWYoYUI8PDI0Pj4yNCE9KGFbKGFbR10mMSk9PTA/bTpjW0o+PjJdfDBdfDApKXthYT0zNjM7YnJl
YWsgTDI4Nn1hdj1jW2c+PjJdfDA7YXQ9YXYrMTJ8MDthbD1jW2F0Pj4yXXwwO2lmKChhbHwwKT09
KGNbYXYrMTY+PjJdfDApKXthQz1jWyhjW2F2Pj4yXXwwKSs0MD4+Ml18MDtiMFthQyYxMjddKGF2
KXwwfWVsc2V7Y1thdD4+Ml09YWwrMX1hW2xdPTE7YWw9ZFtHXXwwO2FtPSgoYWwmMXwwKT09MD9h
bD4+PjE6Y1tJPj4yXXwwKT4+PjA+MT96OnI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFr
IEwzMDh9aWYoYWspe2lmKGF1KXthaz0oYjBbY1soY1thZz4+Ml18MCkrMzY+PjJdJjEyN10oYWcp
fDApJjI1NTthRD1hazthRT1hW0ddfDB9ZWxzZXthRD1hW2FzXXwwO2FFPSR9aWYoYUQ8PDI0Pj4y
NCE9KGFbKGFFJjEpPT0wP206Y1tKPj4yXXwwXXwwKSl7YW09cjthbj1EO2FvPVg7YXA9VzthcT1w
O2FyPVY7YnJlYWsgTDMwOH0kPWNbZz4+Ml18MDthaz0kKzEyfDA7YWw9Y1thaz4+Ml18MDtpZigo
YWx8MCk9PShjWyQrMTY+PjJdfDApKXthdD1jWyhjWyQ+PjJdfDApKzQwPj4yXXwwO2IwW2F0JjEy
N10oJCl8MH1lbHNle2NbYWs+PjJdPWFsKzF9YVtsXT0xO2FsPWRbR118MDthbT0oKGFsJjF8MCk9
PTA/YWw+Pj4xOmNbST4+Ml18MCk+Pj4wPjE/ejpyO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9Vjti
cmVhayBMMzA4fWlmKGF1KXthdT0oYjBbY1soY1thZz4+Ml18MCkrMzY+PjJdJjEyN10oYWcpfDAp
JjI1NTthRj1hdTthRz1hW0ZdfDB9ZWxzZXthRj1hW2FzXXwwO2FHPWFpfWlmKGFGPDwyND4+MjQh
PShhWyhhRyYxKT09MD9LOmNbTT4+Ml18MF18MCkpe2FbbF09MTthbT1yO2FuPUQ7YW89WDthcD1X
O2FxPXA7YXI9VjticmVhayBMMzA4fWFpPWNbZz4+Ml18MDthcz1haSsxMnwwO2F1PWNbYXM+PjJd
fDA7aWYoKGF1fDApPT0oY1thaSsxNj4+Ml18MCkpe2FnPWNbKGNbYWk+PjJdfDApKzQwPj4yXXww
O2IwW2FnJjEyN10oYWkpfDB9ZWxzZXtjW2FzPj4yXT1hdSsxfWF1PWRbRl18MDthbT0oKGF1JjF8
MCk9PTA/YXU+Pj4xOmNbTD4+Ml18MCk+Pj4wPjE/eTpyO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9
VjticmVha307Y2FzZSAwOnthYT0yOTc7YnJlYWt9O2Nhc2UgMjp7aWYoISgocnwwKSE9MHxZPj4+
MDwyKSl7aWYoKFl8MCk9PTIpe2FIPShhW1RdfDApIT0wfWVsc2V7YUg9MH1pZighKE58YUgpKXth
bT0wO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fX1hdT1hW0VdfDA7YXM9KGF1
JjEpPT0wP2o6Y1tQPj4yXXwwO0wzODI6ZG97aWYoKFl8MCk9PTApe2FJPWFzfWVsc2V7aWYoKGRb
cysoWS0xKXwwXXwwKT49Mil7YUk9YXM7YnJlYWt9YWk9YXUmMjU1O2FnPWFzKygoYWkmMXwwKT09
MD9haT4+PjE6Y1tPPj4yXXwwKXwwO2FpPWFzO3doaWxlKDEpe2lmKChhaXwwKT09KGFnfDApKXth
Sj1hZzticmVha31hbD1hW2FpXXwwO2lmKGFsPDwyND4+MjQ8PS0xKXthSj1haTticmVha31pZigo
YlsoY1tmPj4yXXwwKSsoYWw8PDI0Pj4yNDw8MSk+PjFdJjgxOTIpPT0wKXthSj1haTticmVha31l
bHNle2FpPWFpKzF8MH19YWk9YUotYXN8MDthZz1hW0hdfDA7YWw9YWcmMjU1O2FrPShhbCYxfDAp
PT0wP2FsPj4+MTpjW1I+PjJdfDA7aWYoYWk+Pj4wPmFrPj4+MCl7YUk9YXM7YnJlYWt9YWw9KGFn
JjEpPT0wP1E6Y1tTPj4yXXwwO2FnPWFsK2FrfDA7aWYoKGFKfDApPT0oYXN8MCkpe2FJPWFzO2Jy
ZWFrfSQ9YXM7YXQ9YWwrKGFrLWFpKXwwO3doaWxlKDEpe2lmKChhW2F0XXwwKSE9KGFbJF18MCkp
e2FJPWFzO2JyZWFrIEwzODJ9YWk9YXQrMXwwO2lmKChhaXwwKT09KGFnfDApKXthST1hSjticmVh
a31lbHNleyQ9JCsxfDA7YXQ9YWl9fX19d2hpbGUoMCk7YXQ9YXUmMjU1O0wzOTY6ZG97aWYoKGFJ
fDApPT0oYXMrKChhdCYxfDApPT0wP2F0Pj4+MTpjW08+PjJdfDApfDApKXthSz1hSX1lbHNleyQ9
YWI7YWc9YUk7d2hpbGUoMSl7YWk9Y1tnPj4yXXwwO2Rve2lmKChhaXwwKT09MCl7YUw9MH1lbHNl
e2lmKChjW2FpKzEyPj4yXXwwKSE9KGNbYWkrMTY+PjJdfDApKXthTD1haTticmVha31pZigoYjBb
Y1soY1thaT4+Ml18MCkrMzY+PjJdJjEyN10oYWkpfDApPT0tMSl7Y1tnPj4yXT0wO2FMPTA7YnJl
YWt9ZWxzZXthTD1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTthaT0oYUx8MCk9PTA7ZG97aWYo
KCR8MCk9PTApe2FhPTM5Mn1lbHNle2lmKChjWyQrMTI+PjJdfDApIT0oY1skKzE2Pj4yXXwwKSl7
aWYoYWkpe2FNPSQ7YnJlYWt9ZWxzZXthSz1hZzticmVhayBMMzk2fX1pZigoYjBbY1soY1skPj4y
XXwwKSszNj4+Ml0mMTI3XSgkKXwwKT09LTEpe2NbZT4+Ml09MDthYT0zOTI7YnJlYWt9ZWxzZXtp
ZihhaSl7YU09JDticmVha31lbHNle2FLPWFnO2JyZWFrIEwzOTZ9fX19d2hpbGUoMCk7aWYoKGFh
fDApPT0zOTIpe2FhPTA7aWYoYWkpe2FLPWFnO2JyZWFrIEwzOTZ9ZWxzZXthTT0wfX1haz1jW2c+
PjJdfDA7YWw9Y1thaysxMj4+Ml18MDtpZigoYWx8MCk9PShjW2FrKzE2Pj4yXXwwKSl7YU49KGIw
W2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXwwKSYyNTV9ZWxzZXthTj1hW2FsXXwwfWlm
KGFOPDwyND4+MjQhPShhW2FnXXwwKSl7YUs9YWc7YnJlYWsgTDM5Nn1hbD1jW2c+PjJdfDA7YWs9
YWwrMTJ8MDthdj1jW2FrPj4yXXwwO2lmKChhdnwwKT09KGNbYWwrMTY+PjJdfDApKXthQz1jWyhj
W2FsPj4yXXwwKSs0MD4+Ml18MDtiMFthQyYxMjddKGFsKXwwfWVsc2V7Y1thaz4+Ml09YXYrMX1h
dj1hZysxfDA7YWs9YVtFXXwwO2FsPWFrJjI1NTtpZigoYXZ8MCk9PSgoKGFrJjEpPT0wP2o6Y1tQ
Pj4yXXwwKSsoKGFsJjF8MCk9PTA/YWw+Pj4xOmNbTz4+Ml18MCl8MCkpe2FLPWF2O2JyZWFrfWVs
c2V7JD1hTTthZz1hdn19fX13aGlsZSgwKTtpZighTil7YW09cjthbj1EO2FvPVg7YXA9VzthcT1w
O2FyPVY7YnJlYWsgTDMwOH1hdD1hW0VdfDA7YXM9YXQmMjU1O2lmKChhS3wwKT09KCgoYXQmMSk9
PTA/ajpjW1A+PjJdfDApKygoYXMmMXwwKT09MD9hcz4+PjE6Y1tPPj4yXXwwKXwwKSl7YW09cjth
bj1EO2FvPVg7YXA9VzthcT1wO2FyPVZ9ZWxzZXthYT00MDU7YnJlYWsgTDI4Nn1icmVha307Y2Fz
ZSA0Onthcz0wO2F0PUQ7YXU9WDthZz1XOyQ9cDthdj1WO0w0MzE6d2hpbGUoMSl7YWw9Y1tnPj4y
XXwwO2Rve2lmKChhbHwwKT09MCl7YU89MH1lbHNle2lmKChjW2FsKzEyPj4yXXwwKSE9KGNbYWwr
MTY+PjJdfDApKXthTz1hbDticmVha31pZigoYjBbY1soY1thbD4+Ml18MCkrMzY+PjJdJjEyN10o
YWwpfDApPT0tMSl7Y1tnPj4yXT0wO2FPPTA7YnJlYWt9ZWxzZXthTz1jW2c+PjJdfDA7YnJlYWt9
fX13aGlsZSgwKTthbD0oYU98MCk9PTA7YWs9Y1tlPj4yXXwwO2Rve2lmKChha3wwKT09MCl7YWE9
NDE4fWVsc2V7aWYoKGNbYWsrMTI+PjJdfDApIT0oY1thaysxNj4+Ml18MCkpe2lmKGFsKXticmVh
a31lbHNle2JyZWFrIEw0MzF9fWlmKChiMFtjWyhjW2FrPj4yXXwwKSszNj4+Ml0mMTI3XShhayl8
MCk9PS0xKXtjW2U+PjJdPTA7YWE9NDE4O2JyZWFrfWVsc2V7aWYoYWwpe2JyZWFrfWVsc2V7YnJl
YWsgTDQzMX19fX13aGlsZSgwKTtpZigoYWF8MCk9PTQxOCl7YWE9MDtpZihhbCl7YnJlYWt9fWFr
PWNbZz4+Ml18MDthQz1jW2FrKzEyPj4yXXwwO2lmKChhQ3wwKT09KGNbYWsrMTY+PjJdfDApKXth
UD0oYjBbY1soY1thaz4+Ml18MCkrMzY+PjJdJjEyN10oYWspfDApJjI1NX1lbHNle2FQPWFbYUNd
fDB9ZG97aWYoYVA8PDI0Pj4yND4tMSl7aWYoKGJbKGNbZj4+Ml18MCkrKGFQPDwyND4+MjQ8PDEp
Pj4xXSYyMDQ4KT09MCl7YWE9NDM3O2JyZWFrfWFDPWNbbz4+Ml18MDtpZigoYUN8MCk9PShhdnww
KSl7YWs9KGNbVT4+Ml18MCkhPTE2NjthUT1jW2g+PjJdfDA7YVI9YXYtYVF8MDthUz1hUj4+PjA8
MjE0NzQ4MzY0Nz9hUjw8MTotMTthVD1rTChhaz9hUTowLGFTKXwwO2lmKChhVHwwKT09MCl7a1go
KX1kb3tpZihhayl7Y1toPj4yXT1hVDthVT1hVH1lbHNle2FRPWNbaD4+Ml18MDtjW2g+PjJdPWFU
O2lmKChhUXwwKT09MCl7YVU9YVQ7YnJlYWt9YllbY1tVPj4yXSY1MTFdKGFRKTthVT1jW2g+PjJd
fDB9fXdoaWxlKDApO2NbVT4+Ml09ODI7YVQ9YVUrYVJ8MDtjW28+PjJdPWFUO2FWPShjW2g+PjJd
fDApK2FTfDA7YVc9YVR9ZWxzZXthVj1hdjthVz1hQ31jW28+PjJdPWFXKzE7YVthV109YVA7YVg9
YXMrMXwwO2FZPWF0O2FaPWF1O2FfPWFnO2EkPSQ7YTA9YVZ9ZWxzZXthYT00Mzd9fXdoaWxlKDAp
O2lmKChhYXwwKT09NDM3KXthYT0wO2FsPWRbd118MDtpZigoKChhbCYxfDApPT0wP2FsPj4+MTpj
W24+PjJdfDApfDApPT0wfChhc3wwKT09MCl7YnJlYWt9aWYoYVA8PDI0Pj4yNCE9KGFbdV18MCkp
e2JyZWFrfWlmKChhdXwwKT09KGF0fDApKXthbD1hdS1hZ3wwO2FUPWFsPj4+MDwyMTQ3NDgzNjQ3
P2FsPDwxOi0xO2lmKCgkfDApPT0xNjYpe2ExPTB9ZWxzZXthMT1hZ31haz1rTChhMSxhVCl8MDth
aT1haztpZigoYWt8MCk9PTApe2tYKCl9YTI9YWkrKGFUPj4+Mjw8Mil8MDthMz1haSsoYWw+PjI8
PDIpfDA7YTQ9YWk7YTU9ODJ9ZWxzZXthMj1hdDthMz1hdTthND1hZzthNT0kfWNbYTM+PjJdPWFz
O2FYPTA7YVk9YTI7YVo9YTMrNHwwO2FfPWE0O2EkPWE1O2EwPWF2fWFpPWNbZz4+Ml18MDthbD1h
aSsxMnwwO2FUPWNbYWw+PjJdfDA7aWYoKGFUfDApPT0oY1thaSsxNj4+Ml18MCkpe2FrPWNbKGNb
YWk+PjJdfDApKzQwPj4yXXwwO2IwW2FrJjEyN10oYWkpfDA7YXM9YVg7YXQ9YVk7YXU9YVo7YWc9
YV87JD1hJDthdj1hMDtjb250aW51ZX1lbHNle2NbYWw+PjJdPWFUKzE7YXM9YVg7YXQ9YVk7YXU9
YVo7YWc9YV87JD1hJDthdj1hMDtjb250aW51ZX19aWYoKGFnfDApPT0oYXV8MCl8KGFzfDApPT0w
KXthNj1hdDthNz1hdTthOD1hZzthOT0kfWVsc2V7aWYoKGF1fDApPT0oYXR8MCkpe2FUPWF1LWFn
fDA7YWw9YVQ+Pj4wPDIxNDc0ODM2NDc/YVQ8PDE6LTE7aWYoKCR8MCk9PTE2Nil7YmE9MH1lbHNl
e2JhPWFnfWFpPWtMKGJhLGFsKXwwO2FrPWFpO2lmKChhaXwwKT09MCl7a1goKX1iYj1haysoYWw+
Pj4yPDwyKXwwO2JjPWFrKyhhVD4+Mjw8Mil8MDtiZD1haztiZT04Mn1lbHNle2JiPWF0O2JjPWF1
O2JkPWFnO2JlPSR9Y1tiYz4+Ml09YXM7YTY9YmI7YTc9YmMrNHwwO2E4PWJkO2E5PWJlfWlmKChj
W0I+PjJdfDApPjApe2FrPWNbZz4+Ml18MDtkb3tpZigoYWt8MCk9PTApe2JmPTB9ZWxzZXtpZigo
Y1thaysxMj4+Ml18MCkhPShjW2FrKzE2Pj4yXXwwKSl7YmY9YWs7YnJlYWt9aWYoKGIwW2NbKGNb
YWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXwwKT09LTEpe2NbZz4+Ml09MDtiZj0wO2JyZWFrfWVs
c2V7YmY9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7YWs9KGJmfDApPT0wO2FzPWNbZT4+Ml18
MDtkb3tpZigoYXN8MCk9PTApe2FhPTQ3MH1lbHNle2lmKChjW2FzKzEyPj4yXXwwKSE9KGNbYXMr
MTY+PjJdfDApKXtpZihhayl7Ymc9YXM7YnJlYWt9ZWxzZXthYT00Nzc7YnJlYWsgTDI4Nn19aWYo
KGIwW2NbKGNbYXM+PjJdfDApKzM2Pj4yXSYxMjddKGFzKXwwKT09LTEpe2NbZT4+Ml09MDthYT00
NzA7YnJlYWt9ZWxzZXtpZihhayl7Ymc9YXM7YnJlYWt9ZWxzZXthYT00Nzc7YnJlYWsgTDI4Nn19
fX13aGlsZSgwKTtpZigoYWF8MCk9PTQ3MCl7YWE9MDtpZihhayl7YWE9NDc3O2JyZWFrIEwyODZ9
ZWxzZXtiZz0wfX1hcz1jW2c+PjJdfDA7JD1jW2FzKzEyPj4yXXwwO2lmKCgkfDApPT0oY1thcysx
Nj4+Ml18MCkpe2JoPShiMFtjWyhjW2FzPj4yXXwwKSszNj4+Ml0mMTI3XShhcyl8MCkmMjU1fWVs
c2V7Ymg9YVskXXwwfWlmKGJoPDwyND4+MjQhPShhW3RdfDApKXthYT00Nzc7YnJlYWsgTDI4Nn0k
PWNbZz4+Ml18MDthcz0kKzEyfDA7YWc9Y1thcz4+Ml18MDtpZigoYWd8MCk9PShjWyQrMTY+PjJd
fDApKXthdT1jWyhjWyQ+PjJdfDApKzQwPj4yXXwwO2IwW2F1JjEyN10oJCl8MDtiaT1hdjtiaj1i
Z31lbHNle2NbYXM+PjJdPWFnKzE7Ymk9YXY7Ymo9Ymd9d2hpbGUoMSl7YWc9Y1tnPj4yXXwwO2Rv
e2lmKChhZ3wwKT09MCl7Yms9MH1lbHNle2lmKChjW2FnKzEyPj4yXXwwKSE9KGNbYWcrMTY+PjJd
fDApKXtiaz1hZzticmVha31pZigoYjBbY1soY1thZz4+Ml18MCkrMzY+PjJdJjEyN10oYWcpfDAp
PT0tMSl7Y1tnPj4yXT0wO2JrPTA7YnJlYWt9ZWxzZXtiaz1jW2c+PjJdfDA7YnJlYWt9fX13aGls
ZSgwKTthZz0oYmt8MCk9PTA7ZG97aWYoKGJqfDApPT0wKXthYT00OTN9ZWxzZXtpZigoY1tiaisx
Mj4+Ml18MCkhPShjW2JqKzE2Pj4yXXwwKSl7aWYoYWcpe2JsPWJqO2JyZWFrfWVsc2V7YWE9NTAx
O2JyZWFrIEwyODZ9fWlmKChiMFtjWyhjW2JqPj4yXXwwKSszNj4+Ml0mMTI3XShiail8MCk9PS0x
KXtjW2U+PjJdPTA7YWE9NDkzO2JyZWFrfWVsc2V7aWYoYWcpe2JsPWJqO2JyZWFrfWVsc2V7YWE9
NTAxO2JyZWFrIEwyODZ9fX19d2hpbGUoMCk7aWYoKGFhfDApPT00OTMpe2FhPTA7aWYoYWcpe2Fh
PTUwMTticmVhayBMMjg2fWVsc2V7Ymw9MH19YXM9Y1tnPj4yXXwwOyQ9Y1thcysxMj4+Ml18MDtp
ZigoJHwwKT09KGNbYXMrMTY+PjJdfDApKXtibT0oYjBbY1soY1thcz4+Ml18MCkrMzY+PjJdJjEy
N10oYXMpfDApJjI1NX1lbHNle2JtPWFbJF18MH1pZihibTw8MjQ+PjI0PD0tMSl7YWE9NTAxO2Jy
ZWFrIEwyODZ9aWYoKGJbKGNbZj4+Ml18MCkrKGJtPDwyND4+MjQ8PDEpPj4xXSYyMDQ4KT09MCl7
YWE9NTAxO2JyZWFrIEwyODZ9JD1jW28+PjJdfDA7aWYoKCR8MCk9PShiaXwwKSl7YXM9KGNbVT4+
Ml18MCkhPTE2NjthdT1jW2g+PjJdfDA7YXQ9YmktYXV8MDthVD1hdD4+PjA8MjE0NzQ4MzY0Nz9h
dDw8MTotMTthbD1rTChhcz9hdTowLGFUKXwwO2lmKChhbHwwKT09MCl7a1goKX1kb3tpZihhcyl7
Y1toPj4yXT1hbDtibj1hbH1lbHNle2F1PWNbaD4+Ml18MDtjW2g+PjJdPWFsO2lmKChhdXwwKT09
MCl7Ym49YWw7YnJlYWt9YllbY1tVPj4yXSY1MTFdKGF1KTtibj1jW2g+PjJdfDB9fXdoaWxlKDAp
O2NbVT4+Ml09ODI7YWw9Ym4rYXR8MDtjW28+PjJdPWFsO2JvPShjW2g+PjJdfDApK2FUfDA7YnA9
YWx9ZWxzZXtibz1iaTticD0kfWFsPWNbZz4+Ml18MDthcz1jW2FsKzEyPj4yXXwwO2lmKChhc3ww
KT09KGNbYWwrMTY+PjJdfDApKXthZz0oYjBbY1soY1thbD4+Ml18MCkrMzY+PjJdJjEyN10oYWwp
fDApJjI1NTticT1hZzticj1jW28+PjJdfDB9ZWxzZXticT1hW2FzXXwwO2JyPWJwfWNbbz4+Ml09
YnIrMTthW2JyXT1icTthcz0oY1tCPj4yXXwwKS0xfDA7Y1tCPj4yXT1hczthZz1jW2c+PjJdfDA7
YWw9YWcrMTJ8MDthdT1jW2FsPj4yXXwwO2lmKChhdXwwKT09KGNbYWcrMTY+PjJdfDApKXthaT1j
WyhjW2FnPj4yXXwwKSs0MD4+Ml18MDtiMFthaSYxMjddKGFnKXwwfWVsc2V7Y1thbD4+Ml09YXUr
MX1pZigoYXN8MCk+MCl7Ymk9Ym87Ymo9Ymx9ZWxzZXticz1ibzticmVha319fWVsc2V7YnM9YXZ9
aWYoKGNbbz4+Ml18MCk9PShjW2g+PjJdfDApKXthYT01MjE7YnJlYWsgTDI4Nn1lbHNle2FtPXI7
YW49YTY7YW89YTc7YXA9YTg7YXE9YTk7YXI9YnN9YnJlYWt9O2RlZmF1bHQ6e2FtPXI7YW49RDth
bz1YO2FwPVc7YXE9cDthcj1WfX19d2hpbGUoMCk7TDU4NTpkb3tpZigoYWF8MCk9PTI5Nyl7YWE9
MDtpZigoWXwwKT09Myl7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01MjM7YnJlYWsgTDI4Nn1lbHNl
e2J0PWFifXdoaWxlKDEpe1o9Y1tnPj4yXXwwO2Rve2lmKChafDApPT0wKXtidT0wfWVsc2V7aWYo
KGNbWisxMj4+Ml18MCkhPShjW1orMTY+PjJdfDApKXtidT1aO2JyZWFrfWlmKChiMFtjWyhjW1o+
PjJdfDApKzM2Pj4yXSYxMjddKFopfDApPT0tMSl7Y1tnPj4yXT0wO2J1PTA7YnJlYWt9ZWxzZXti
dT1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtaPShidXwwKT09MDtkb3tpZigoYnR8MCk9PTAp
e2FhPTMxMH1lbHNle2lmKChjW2J0KzEyPj4yXXwwKSE9KGNbYnQrMTY+PjJdfDApKXtpZihaKXti
dj1idDticmVha31lbHNle2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEw1ODV9
fWlmKChiMFtjWyhjW2J0Pj4yXXwwKSszNj4+Ml0mMTI3XShidCl8MCk9PS0xKXtjW2U+PjJdPTA7
YWE9MzEwO2JyZWFrfWVsc2V7aWYoWil7YnY9YnQ7YnJlYWt9ZWxzZXthbT1yO2FuPUQ7YW89WDth
cD1XO2FxPXA7YXI9VjticmVhayBMNTg1fX19fXdoaWxlKDApO2lmKChhYXwwKT09MzEwKXthYT0w
O2lmKFope2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEw1ODV9ZWxzZXtidj0w
fX0kPWNbZz4+Ml18MDthVD1jWyQrMTI+PjJdfDA7aWYoKGFUfDApPT0oY1skKzE2Pj4yXXwwKSl7
Ync9KGIwW2NbKGNbJD4+Ml18MCkrMzY+PjJdJjEyN10oJCl8MCkmMjU1fWVsc2V7Ync9YVthVF18
MH1pZihidzw8MjQ+PjI0PD0tMSl7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsg
TDU4NX1pZigoYlsoY1tmPj4yXXwwKSsoYnc8PDI0Pj4yNDw8MSk+PjFdJjgxOTIpPT0wKXthbT1y
O2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1fWFUPWNbZz4+Ml18MDskPWFUKzEy
fDA7YXQ9Y1skPj4yXXwwO2lmKChhdHwwKT09KGNbYVQrMTY+PjJdfDApKXtieD0oYjBbY1soY1th
VD4+Ml18MCkrNDA+PjJdJjEyN10oYVQpfDApJjI1NX1lbHNle2NbJD4+Ml09YXQrMTtieD1hW2F0
XXwwfWRVKEEsYngpO2J0PWJ2fX19d2hpbGUoMCk7YXY9WSsxfDA7aWYoYXY+Pj4wPDQpe1Y9YXI7
cD1hcTtXPWFwO1g9YW87RD1hbjtyPWFtO1k9YXZ9ZWxzZXthYz1hcTthZD1hcDthZT1hbzthZj1h
bTthYT01MjM7YnJlYWt9fUw2MjI6ZG97aWYoKGFhfDApPT0yOTYpe2Nbaz4+Ml09Y1trPj4yXXw0
O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT0zNjMpe2Nbaz4+Ml09Y1trPj4yXXw0O2J5
PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT00MDUpe2Nbaz4+Ml09Y1trPj4yXXw0O2J5PTA7
Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT00Nzcpe2Nbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9
YTg7YkE9YTl9ZWxzZSBpZigoYWF8MCk9PTUwMSl7Y1trPj4yXT1jW2s+PjJdfDQ7Ynk9MDtiej1h
ODtiQT1hOX1lbHNlIGlmKChhYXwwKT09NTIxKXtjW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PWE4
O2JBPWE5fWVsc2UgaWYoKGFhfDApPT01MjMpe0w2MzA6ZG97aWYoKGFmfDApIT0wKXthbT1hZjth
bz1hZisxfDA7YXA9YWYrOHwwO2FxPWFmKzR8MDtZPTE7TDYzMjp3aGlsZSgxKXtyPWRbYW1dfDA7
aWYoKHImMXwwKT09MCl7YkI9cj4+PjF9ZWxzZXtiQj1jW2FxPj4yXXwwfWlmKFk+Pj4wPj1iQj4+
PjApe2JyZWFrIEw2MzB9cj1jW2c+PjJdfDA7ZG97aWYoKHJ8MCk9PTApe2JDPTB9ZWxzZXtpZigo
Y1tyKzEyPj4yXXwwKSE9KGNbcisxNj4+Ml18MCkpe2JDPXI7YnJlYWt9aWYoKGIwW2NbKGNbcj4+
Ml18MCkrMzY+PjJdJjEyN10ocil8MCk9PS0xKXtjW2c+PjJdPTA7YkM9MDticmVha31lbHNle2JD
PWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO3I9KGJDfDApPT0wO1o9Y1tlPj4yXXwwO2Rve2lm
KChafDApPT0wKXthYT01NDF9ZWxzZXtpZigoY1taKzEyPj4yXXwwKSE9KGNbWisxNj4+Ml18MCkp
e2lmKHIpe2JyZWFrfWVsc2V7YnJlYWsgTDYzMn19aWYoKGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJd
JjEyN10oWil8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NTQxO2JyZWFrfWVsc2V7aWYocil7YnJlYWt9
ZWxzZXticmVhayBMNjMyfX19fXdoaWxlKDApO2lmKChhYXwwKT09NTQxKXthYT0wO2lmKHIpe2Jy
ZWFrfX1aPWNbZz4+Ml18MDthbj1jW1orMTI+PjJdfDA7aWYoKGFufDApPT0oY1taKzE2Pj4yXXww
KSl7YkQ9KGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCkmMjU1fWVsc2V7YkQ9YVth
bl18MH1pZigoYVthbV0mMSk9PTApe2JFPWFvfWVsc2V7YkU9Y1thcD4+Ml18MH1pZihiRDw8MjQ+
PjI0IT0oYVtiRStZfDBdfDApKXticmVha31hbj1ZKzF8MDtaPWNbZz4+Ml18MDtEPVorMTJ8MDtY
PWNbRD4+Ml18MDtpZigoWHwwKT09KGNbWisxNj4+Ml18MCkpe2FyPWNbKGNbWj4+Ml18MCkrNDA+
PjJdfDA7YjBbYXImMTI3XShaKXwwO1k9YW47Y29udGludWV9ZWxzZXtjW0Q+PjJdPVgrMTtZPWFu
O2NvbnRpbnVlfX1jW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PWFkO2JBPWFjO2JyZWFrIEw2MjJ9
fXdoaWxlKDApO2lmKChhZHwwKT09KGFlfDApKXtieT0xO2J6PWFlO2JBPWFjO2JyZWFrfWNbQz4+
Ml09MDtmdCh2LGFkLGFlLEMpO2lmKChjW0M+PjJdfDApPT0wKXtieT0xO2J6PWFkO2JBPWFjO2Jy
ZWFrfWNbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9YWQ7YkE9YWN9fXdoaWxlKDApO2RQKEEpO2RQ
KHopO2RQKHkpO2RQKHgpO2RQKHYpO2lmKChienwwKT09MCl7aT1xO3JldHVybiBieXwwfWJZW2JB
JjUxMV0oYnopO2k9cTtyZXR1cm4gYnl8MH1mdW5jdGlvbiBoUyhiLGQsZSl7Yj1ifDA7ZD1kfDA7
ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2Y9YjtnPWQ7aD1h
W2ZdfDA7aT1oJjI1NTtpZigoaSYxfDApPT0wKXtqPWk+Pj4xfWVsc2V7aj1jW2IrND4+Ml18MH1p
ZigoaCYxKT09MCl7az0xMDtsPWh9ZWxzZXtoPWNbYj4+Ml18MDtrPShoJi0yKS0xfDA7bD1oJjI1
NX1oPWUtZ3wwO2lmKChlfDApPT0oZHwwKSl7cmV0dXJuIGJ8MH1pZigoay1qfDApPj4+MDxoPj4+
MCl7ZDEoYixrLGoraC1rfDAsaixqLDAsMCk7bT1hW2ZdfDB9ZWxzZXttPWx9aWYoKG0mMSk9PTAp
e249YisxfDB9ZWxzZXtuPWNbYis4Pj4yXXwwfW09ZSsoai1nKXwwO2c9ZDtkPW4ranwwO3doaWxl
KDEpe2FbZF09YVtnXXwwO2w9ZysxfDA7aWYoKGx8MCk9PShlfDApKXticmVha31lbHNle2c9bDtk
PWQrMXwwfX1hW24rbXwwXT0wO209aitofDA7aWYoKGFbZl0mMSk9PTApe2FbZl09bTw8MSYyNTU7
cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1tO3JldHVybiBifDB9cmV0dXJuIDB9ZnVuY3Rpb24g
aFQoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaFUoYSl7YT1hfDA7ZGUo
YXwwKTtyZXR1cm59ZnVuY3Rpb24gaFYoYSl7YT1hfDA7dmFyIGI9MDtiPWJPKDgpfDA7ZEUoYixh
KTtibChifDAsODE5MiwyMil9ZnVuY3Rpb24gaFcoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MDtkPWk7aT1pKzE2MHwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWR8
MDttPWQrMTZ8MDtuPWQrMTIwfDA7bz1kKzEyOHwwO3A9ZCsxMzZ8MDtxPWQrMTQ0fDA7cj1kKzE1
MnwwO3M9bnwwO2Nbcz4+Ml09bTt0PW4rNHwwO2NbdD4+Ml09MTY2O3U9bSsxMDB8MDtlaihwLGgp
O209cHwwO3Y9Y1ttPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tsPj4yXT0xNTY5NjtjW2wr
ND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0oY1szOTI1XXwwKS0xfDA7dz1j
W3YrOD4+Ml18MDtkb3tpZigoY1t2KzEyPj4yXXwwKS13Pj4yPj4+MD5sPj4+MCl7eD1jW3crKGw8
PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7YVtxXT0wO3o9ZnwwO0E9Y1t6Pj4yXXww
O2Nbcj4+Ml09QTtpZihoUihlLHIsZyxwLGNbaCs0Pj4yXXwwLGoscSx5LG4sbyx1KXwwKXtCPWs7
aWYoKGFbQl0mMSk9PTApe2FbaysxfDBdPTA7YVtCXT0wfWVsc2V7YVtjW2srOD4+Ml18MF09MDtj
W2srND4+Ml09MH1CPXg7aWYoKGFbcV0mMSkhPTApe2RVKGssYl9bY1soY1tCPj4yXXwwKSsyOD4+
Ml0mMzFdKHksNDUpfDApfXg9Yl9bY1soY1tCPj4yXXwwKSsyOD4+Ml0mMzFdKHksNDgpfDA7eT1j
W28+PjJdfDA7Qj15LTF8MDtDPWNbcz4+Ml18MDt3aGlsZSgxKXtpZihDPj4+MD49Qj4+PjApe2Jy
ZWFrfWlmKChhW0NdfDApPT14PDwyND4+MjQpe0M9QysxfDB9ZWxzZXticmVha319aFMoayxDLHkp
fDB9eD1lfDA7Qj1jW3g+PjJdfDA7ZG97aWYoKEJ8MCk9PTApe0Q9MH1lbHNle2lmKChjW0IrMTI+
PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7RD1CO2JyZWFrfWlmKChiMFtjWyhjW0I+PjJdfDApKzM2
Pj4yXSYxMjddKEIpfDApIT0tMSl7RD1CO2JyZWFrfWNbeD4+Ml09MDtEPTB9fXdoaWxlKDApO3g9
KER8MCk9PTA7ZG97aWYoKEF8MCk9PTApe0U9NjIxfWVsc2V7aWYoKGNbQSsxMj4+Ml18MCkhPShj
W0ErMTY+PjJdfDApKXtpZih4KXticmVha31lbHNle0U9NjIzO2JyZWFrfX1pZigoYjBbY1soY1tB
Pj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKT09LTEpe2Nbej4+Ml09MDtFPTYyMTticmVha31lbHNl
e2lmKHheKEF8MCk9PTApe2JyZWFrfWVsc2V7RT02MjM7YnJlYWt9fX19d2hpbGUoMCk7aWYoKEV8
MCk9PTYyMSl7aWYoeCl7RT02MjN9fWlmKChFfDApPT02MjMpe2Nbaj4+Ml09Y1tqPj4yXXwyfWNb
Yj4+Ml09RDtBPWNbbT4+Ml18MDtkeihBKXwwO0E9Y1tzPj4yXXwwO2Nbcz4+Ml09MDtpZigoQXww
KT09MCl7aT1kO3JldHVybn1iWVtjW3Q+PjJdJjUxMV0oQSk7aT1kO3JldHVybn19d2hpbGUoMCk7
ZD1iTyg0KXwwO2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaFgoYixkLGUsZixnLGgs
aixrLGwsbSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7
bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09
MCxOPTAsTz0wO249aTtpPWkrNTZ8MDtvPW58MDtwPW4rMTZ8MDtxPW4rMzJ8MDtyPW4rNDB8MDtz
PXI7dD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3U9dDt2PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7
dz12O3g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt5PXg7ej1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
QT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7RT1E
O0Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztHPUY7SD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0k9
SDtpZihiKXtiPWNbZD4+Ml18MDtpZigoY1s0MDQ0XXwwKSE9LTEpe2NbcD4+Ml09MTYxNzY7Y1tw
KzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTc2LHAsOTYpfXA9KGNbNDA0NV18MCktMXwwO0o9
Y1tiKzg+PjJdfDA7aWYoKGNbYisxMj4+Ml18MCktSj4+Mj4+PjA8PXA+Pj4wKXtLPWJPKDQpfDA7
TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEzNCl9Yj1jW0orKHA8PDIpPj4yXXwwO2lmKChifDApPT0w
KXtLPWJPKDQpfDA7TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEzNCl9Sz1iO2JaW2NbKGNbYj4+Ml18
MCkrNDQ+PjJdJjEyN10ocSxLKTtMPWU7Qz1jW3E+PjJdfDA7YVtMXT1DJjI1NTtDPUM+Pjg7YVtM
KzF8MF09QyYyNTU7Qz1DPj44O2FbTCsyfDBdPUMmMjU1O0M9Qz4+ODthW0wrM3wwXT1DJjI1NTtM
PWI7YlpbY1soY1tMPj4yXXwwKSszMj4+Ml0mMTI3XShyLEspO3E9bDtpZigoYVtxXSYxKT09MCl7
YVtsKzF8MF09MDthW3FdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQkKGws
MCk7Y1txPj4yXT1jW3M+PjJdO2NbcSs0Pj4yXT1jW3MrND4+Ml07Y1txKzg+PjJdPWNbcys4Pj4y
XTtrJChzfDAsMCwxMik7ZFAocik7YlpbY1soY1tMPj4yXXwwKSsyOD4+Ml0mMTI3XSh0LEspO3I9
aztpZigoYVtyXSYxKT09MCl7YVtrKzF8MF09MDthW3JdPTB9ZWxzZXthW2Nbays4Pj4yXXwwXT0w
O2Nbays0Pj4yXT0wfWQkKGssMCk7Y1tyPj4yXT1jW3U+PjJdO2Nbcis0Pj4yXT1jW3UrND4+Ml07
Y1tyKzg+PjJdPWNbdSs4Pj4yXTtrJCh1fDAsMCwxMik7ZFAodCk7dD1iO2FbZl09YjBbY1soY1t0
Pj4yXXwwKSsxMj4+Ml0mMTI3XShLKXwwO2FbZ109YjBbY1soY1t0Pj4yXXwwKSsxNj4+Ml0mMTI3
XShLKXwwO2JaW2NbKGNbTD4+Ml18MCkrMjA+PjJdJjEyN10odixLKTt0PWg7aWYoKGFbdF0mMSk9
PTApe2FbaCsxfDBdPTA7YVt0XT0wfWVsc2V7YVtjW2grOD4+Ml18MF09MDtjW2grND4+Ml09MH1k
JChoLDApO2NbdD4+Ml09Y1t3Pj4yXTtjW3QrND4+Ml09Y1t3KzQ+PjJdO2NbdCs4Pj4yXT1jW3cr
OD4+Ml07ayQod3wwLDAsMTIpO2RQKHYpO2JaW2NbKGNbTD4+Ml18MCkrMjQ+PjJdJjEyN10oeCxL
KTtMPWo7aWYoKGFbTF0mMSk9PTApe2FbaisxfDBdPTA7YVtMXT0wfWVsc2V7YVtjW2orOD4+Ml18
MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbTD4+Ml09Y1t5Pj4yXTtjW0wrND4+Ml09Y1t5KzQ+
PjJdO2NbTCs4Pj4yXT1jW3krOD4+Ml07ayQoeXwwLDAsMTIpO2RQKHgpO009YjBbY1soY1tiPj4y
XXwwKSszNj4+Ml0mMTI3XShLKXwwO2NbbT4+Ml09TTtpPW47cmV0dXJufWVsc2V7Sz1jW2Q+PjJd
fDA7aWYoKGNbNDA0Nl18MCkhPS0xKXtjW28+PjJdPTE2MTg0O2Nbbys0Pj4yXT0xMjtjW28rOD4+
Ml09MDtkVygxNjE4NCxvLDk2KX1vPShjWzQwNDddfDApLTF8MDtkPWNbSys4Pj4yXXwwO2lmKChj
W0srMTI+PjJdfDApLWQ+PjI+Pj4wPD1vPj4+MCl7Tj1iTyg0KXwwO089TjtrcShPKTtibChOfDAs
ODE3NiwxMzQpfUs9Y1tkKyhvPDwyKT4+Ml18MDtpZigoS3wwKT09MCl7Tj1iTyg0KXwwO089Tjtr
cShPKTtibChOfDAsODE3NiwxMzQpfU49SztiWltjWyhjW0s+PjJdfDApKzQ0Pj4yXSYxMjddKHos
Tik7Tz1lO0M9Y1t6Pj4yXXwwO2FbT109QyYyNTU7Qz1DPj44O2FbTysxfDBdPUMmMjU1O0M9Qz4+
ODthW08rMnwwXT1DJjI1NTtDPUM+Pjg7YVtPKzN8MF09QyYyNTU7Tz1LO2JaW2NbKGNbTz4+Ml18
MCkrMzI+PjJdJjEyN10oQSxOKTt6PWw7aWYoKGFbel0mMSk9PTApe2FbbCsxfDBdPTA7YVt6XT0w
fWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChsLDApO2Nbej4+Ml09Y1tCPj4y
XTtjW3orND4+Ml09Y1tCKzQ+PjJdO2Nbeis4Pj4yXT1jW0IrOD4+Ml07ayQoQnwwLDAsMTIpO2RQ
KEEpO2JaW2NbKGNbTz4+Ml18MCkrMjg+PjJdJjEyN10oRCxOKTtBPWs7aWYoKGFbQV0mMSk9PTAp
e2FbaysxfDBdPTA7YVtBXT0wfWVsc2V7YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1kJChr
LDApO2NbQT4+Ml09Y1tFPj4yXTtjW0ErND4+Ml09Y1tFKzQ+PjJdO2NbQSs4Pj4yXT1jW0UrOD4+
Ml07ayQoRXwwLDAsMTIpO2RQKEQpO0Q9SzthW2ZdPWIwW2NbKGNbRD4+Ml18MCkrMTI+PjJdJjEy
N10oTil8MDthW2ddPWIwW2NbKGNbRD4+Ml18MCkrMTY+PjJdJjEyN10oTil8MDtiWltjWyhjW08+
PjJdfDApKzIwPj4yXSYxMjddKEYsTik7RD1oO2lmKChhW0RdJjEpPT0wKXthW2grMXwwXT0wO2Fb
RF09MH1lbHNle2FbY1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9ZCQoaCwwKTtjW0Q+PjJdPWNb
Rz4+Ml07Y1tEKzQ+PjJdPWNbRys0Pj4yXTtjW0QrOD4+Ml09Y1tHKzg+PjJdO2skKEd8MCwwLDEy
KTtkUChGKTtiWltjWyhjW08+PjJdfDApKzI0Pj4yXSYxMjddKEgsTik7Tz1qO2lmKChhW09dJjEp
PT0wKXthW2orMXwwXT0wO2FbT109MH1lbHNle2FbY1tqKzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9
ZCQoaiwwKTtjW08+PjJdPWNbST4+Ml07Y1tPKzQ+PjJdPWNbSSs0Pj4yXTtjW08rOD4+Ml09Y1tJ
Kzg+PjJdO2skKEl8MCwwLDEyKTtkUChIKTtNPWIwW2NbKGNbSz4+Ml18MCkrMzY+PjJdJjEyN10o
Til8MDtjW20+PjJdPU07aT1uO3JldHVybn19ZnVuY3Rpb24gaFkoYixkLGUsZixnLGgsaixrKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAs
UD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7ZD1pO2k9aSs2MDB8MDtsPWU7ZT1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+
PjJdPWNbbD4+Ml07bD1kfDA7bT1kKzE2fDA7bj1kKzQxNnwwO289ZCs0MjR8MDtwPWQrNDMyfDA7
cT1kKzQ0MHwwO3I9ZCs0NDh8MDtzPWQrNDU2fDA7dD1kKzQ5NnwwO3U9bnwwO2NbdT4+Ml09bTt2
PW4rNHwwO2Nbdj4+Ml09MTY2O3c9bSs0MDB8MDtlaihwLGgpO209cHwwO3g9Y1ttPj4yXXwwO2lm
KChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7
ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7eT1jW3grOD4+Ml18MDtkb3tpZigoY1t4
KzEyPj4yXXwwKS15Pj4yPj4+MD5sPj4+MCl7ej1jW3krKGw8PDIpPj4yXXwwO2lmKCh6fDApPT0w
KXticmVha31BPXo7YVtxXT0wO0I9ZnwwO2Nbcj4+Ml09Y1tCPj4yXTtkb3tpZihoWihlLHIsZyxw
LGNbaCs0Pj4yXXwwLGoscSxBLG4sbyx3KXwwKXtDPXN8MDtEPWNbKGNbej4+Ml18MCkrNDg+PjJd
fDA7Y2FbRCYxNV0oQSwyMDk2LDIxMDYsQyl8MDtEPXR8MDtFPWNbbz4+Ml18MDtGPWNbdT4+Ml18
MDtHPUUtRnwwO2Rve2lmKChHfDApPjM5Mil7SD1rSigoRz4+MikrMnwwKXwwO2lmKChIfDApIT0w
KXtJPUg7Sj1IO2JyZWFrfWtYKCk7ST0wO0o9MH1lbHNle0k9RDtKPTB9fXdoaWxlKDApO2lmKChh
W3FdJjEpPT0wKXtLPUl9ZWxzZXthW0ldPTQ1O0s9SSsxfDB9aWYoRj4+PjA8RT4+PjApe0c9cys0
MHwwO0g9cztMPUs7TT1GO3doaWxlKDEpe049Qzt3aGlsZSgxKXtpZigoTnwwKT09KEd8MCkpe089
RzticmVha31pZigoY1tOPj4yXXwwKT09KGNbTT4+Ml18MCkpe089TjticmVha31lbHNle049Tis0
fDB9fWFbTF09YVsyMDk2KyhPLUg+PjIpfDBdfDA7Tj1NKzR8MDtQPUwrMXwwO2lmKE4+Pj4wPChj
W28+PjJdfDApPj4+MCl7TD1QO009Tn1lbHNle1E9UDticmVha319fWVsc2V7UT1LfWFbUV09MDtN
PWJEKER8MCwxNDA4LChMPWksaT1pKzh8MCxjW0w+PjJdPWssTCl8MCl8MDtpPUw7aWYoKE18MCk9
PTEpe2lmKChKfDApPT0wKXticmVha31rSyhKKTticmVha31NPWJPKDgpfDA7ZEUoTSwxMzY4KTti
bChNfDAsODE5MiwyMil9fXdoaWxlKDApO0E9ZXwwO3o9Y1tBPj4yXXwwO2Rve2lmKCh6fDApPT0w
KXtSPTB9ZWxzZXtNPWNbeisxMj4+Ml18MDtpZigoTXwwKT09KGNbeisxNj4+Ml18MCkpe1M9YjBb
Y1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Uz1jW00+PjJdfDB9aWYoKFN8MCkh
PS0xKXtSPXo7YnJlYWt9Y1tBPj4yXT0wO1I9MH19d2hpbGUoMCk7QT0oUnwwKT09MDt6PWNbQj4+
Ml18MDtkb3tpZigoenwwKT09MCl7VD03Mzl9ZWxzZXtNPWNbeisxMj4+Ml18MDtpZigoTXwwKT09
KGNbeisxNj4+Ml18MCkpe1U9YjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7
VT1jW00+PjJdfDB9aWYoKFV8MCk9PS0xKXtjW0I+PjJdPTA7VD03Mzk7YnJlYWt9ZWxzZXtpZihB
Xih6fDApPT0wKXticmVha31lbHNle1Q9NzQxO2JyZWFrfX19fXdoaWxlKDApO2lmKChUfDApPT03
Mzkpe2lmKEEpe1Q9NzQxfX1pZigoVHwwKT09NzQxKXtjW2o+PjJdPWNbaj4+Ml18Mn1jW2I+PjJd
PVI7ej1jW20+PjJdfDA7ZHooeil8MDt6PWNbdT4+Ml18MDtjW3U+PjJdPTA7aWYoKHp8MCk9PTAp
e2k9ZDtyZXR1cm59YllbY1t2Pj4yXSY1MTFdKHopO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8o
NCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGhaKGIsZSxmLGcsaCxqLGssbCxt
LG4sbyl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1t
fDA7bj1ufDA7bz1vfDA7dmFyIHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAs
JD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9
MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2PTAs
YXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0wLGFFPTAsYUY9MCxhRz0wLGFI
PTAsYUk9MCxhSj0wLGFLPTAsYUw9MCxhTT0wLGFOPTAsYU89MCxhUD0wLGFRPTAsYVI9MCxhUz0w
LGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxhWT0wLGFaPTAsYV89MCxhJD0wLGEwPTAsYTE9MCxh
Mj0wLGEzPTAsYTQ9MCxhNT0wLGE2PTAsYTc9MCxhOD0wLGE5PTAsYmE9MCxiYj0wLGJjPTAsYmQ9
MCxiZT0wLGJmPTAsYmc9MCxiaD0wLGJpPTAsYmo9MCxiaz0wLGJsPTAsYm09MCxibj0wLGJvPTAs
YnA9MCxicT0wLGJyPTAsYnM9MCxidD0wLGJ1PTAsYnY9MCxidz0wLGJ4PTAsYnk9MCxiej0wLGJB
PTAsYkI9MCxiQz0wLGJEPTA7cD1pO2k9aSs0NDh8MDtxPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tlPj4yXT1jW3E+PjJdO3E9cHwwO3I9cCs4fDA7cz1wKzQwOHwwO3Q9cCs0MTZ8MDt1PXAr
NDI0fDA7dj1wKzQzMnwwO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eT1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tx
Pj4yXT1vO289cnwwO2skKHd8MCwwLDEyKTtEPXg7RT15O0Y9ejtHPUE7ayQoRHwwLDAsMTIpO2sk
KEV8MCwwLDEyKTtrJChGfDAsMCwxMik7ayQoR3wwLDAsMTIpO2gyKGYsZyxzLHQsdSx2LHgseSx6
LEIpO2c9bXwwO2Nbbj4+Ml09Y1tnPj4yXTtmPWJ8MDtiPWV8MDtlPWw7SD16KzR8MDtJPXorOHww
O0o9eSs0fDA7Sz15Kzh8MDtMPShoJjUxMnwwKSE9MDtoPXgrNHwwO009eCs4fDA7Tj1BKzR8MDtP
PUErOHwwO1A9cyszfDA7UT12KzR8MDtSPTE2NjtTPW87VD1vO289cis0MDB8MDtyPTA7VT0wO0w4
OTA6d2hpbGUoMSl7Vj1jW2Y+PjJdfDA7ZG97aWYoKFZ8MCk9PTApe1c9MX1lbHNle1g9Y1tWKzEy
Pj4yXXwwO2lmKChYfDApPT0oY1tWKzE2Pj4yXXwwKSl7WT1iMFtjWyhjW1Y+PjJdfDApKzM2Pj4y
XSYxMjddKFYpfDB9ZWxzZXtZPWNbWD4+Ml18MH1pZigoWXwwKT09LTEpe2NbZj4+Ml09MDtXPTE7
YnJlYWt9ZWxzZXtXPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7Vj1jW2I+PjJdfDA7
ZG97aWYoKFZ8MCk9PTApe1o9NzY3fWVsc2V7WD1jW1YrMTI+PjJdfDA7aWYoKFh8MCk9PShjW1Yr
MTY+PjJdfDApKXtfPWIwW2NbKGNbVj4+Ml18MCkrMzY+PjJdJjEyN10oVil8MH1lbHNle189Y1tY
Pj4yXXwwfWlmKChffDApPT0tMSl7Y1tiPj4yXT0wO1o9NzY3O2JyZWFrfWVsc2V7aWYoV14oVnww
KT09MCl7JD1WO2JyZWFrfWVsc2V7YWE9UjthYj1TO2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWsgTDg5
MH19fX13aGlsZSgwKTtpZigoWnwwKT09NzY3KXtaPTA7aWYoVyl7YWE9UjthYj1TO2FjPVQ7YWQ9
cjtaPTEwMDc7YnJlYWt9ZWxzZXskPTB9fUw5MTQ6ZG97c3dpdGNoKGFbcytVfDBdfDApe2Nhc2Ug
Mjp7aWYoISgocnwwKSE9MHxVPj4+MDwyKSl7aWYoKFV8MCk9PTIpe2FlPShhW1BdfDApIT0wfWVs
c2V7YWU9MH1pZighKEx8YWUpKXthZj0wO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDkxNH19
Vj1hW0RdfDA7WD0oViYxKT09MD9oOmNbTT4+Ml18MDtMOTIyOmRve2lmKChVfDApPT0wKXthaz1Y
O2FsPVY7YW09JH1lbHNle2lmKChkW3MrKFUtMSl8MF18MCk8Mil7YW49WDthbz1WfWVsc2V7YWs9
WDthbD1WO2FtPSQ7YnJlYWt9d2hpbGUoMSl7YXA9YW8mMjU1O2lmKChhbnwwKT09KCgoYW8mMSk9
PTA/aDpjW00+PjJdfDApKygoKGFwJjF8MCk9PTA/YXA+Pj4xOmNbaD4+Ml18MCk8PDIpfDApKXth
cT1hbzticmVha31pZighKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJdJjYzXShsLDgxOTIsY1thbj4+
Ml18MCl8MCkpe1o9ODY4O2JyZWFrfWFuPWFuKzR8MDthbz1hW0RdfDB9aWYoKFp8MCk9PTg2OCl7
Wj0wO2FxPWFbRF18MH1hcD0oYXEmMSk9PTA7YXI9YW4tKGFwP2g6Y1tNPj4yXXwwKT4+Mjthcz1h
W0ddfDA7YXQ9YXMmMjU1O2F1PShhdCYxfDApPT0wO0w5MzI6ZG97aWYoYXI+Pj4wPD0oYXU/YXQ+
Pj4xOmNbTj4+Ml18MCk+Pj4wKXthdj0oYXMmMSk9PTA7YXc9KGF2P046Y1tPPj4yXXwwKSsoKGF1
P2F0Pj4+MTpjW04+PjJdfDApLWFyPDwyKXwwO2F4PShhdj9OOmNbTz4+Ml18MCkrKChhdT9hdD4+
PjE6Y1tOPj4yXXwwKTw8Mil8MDtpZigoYXd8MCk9PShheHwwKSl7YWs9YW47YWw9YXE7YW09JDti
cmVhayBMOTIyfWVsc2V7YXk9YXc7YXo9YXA/aDpjW00+PjJdfDB9d2hpbGUoMSl7aWYoKGNbYXk+
PjJdfDApIT0oY1thej4+Ml18MCkpe2JyZWFrIEw5MzJ9YXc9YXkrNHwwO2lmKChhd3wwKT09KGF4
fDApKXthaz1hbjthbD1hcTthbT0kO2JyZWFrIEw5MjJ9YXk9YXc7YXo9YXorNHwwfX19d2hpbGUo
MCk7YWs9YXA/aDpjW00+PjJdfDA7YWw9YXE7YW09JH19d2hpbGUoMCk7TDkzOTp3aGlsZSgxKXtW
PWFsJjI1NTtpZigoYWt8MCk9PSgoKGFsJjEpPT0wP2g6Y1tNPj4yXXwwKSsoKChWJjF8MCk9PTA/
Vj4+PjE6Y1toPj4yXXwwKTw8Mil8MCkpe2JyZWFrfVY9Y1tmPj4yXXwwO2Rve2lmKChWfDApPT0w
KXthQT0xfWVsc2V7WD1jW1YrMTI+PjJdfDA7aWYoKFh8MCk9PShjW1YrMTY+PjJdfDApKXthQj1i
MFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXthQj1jW1g+PjJdfDB9aWYoKGFC
fDApPT0tMSl7Y1tmPj4yXT0wO2FBPTE7YnJlYWt9ZWxzZXthQT0oY1tmPj4yXXwwKT09MDticmVh
a319fXdoaWxlKDApO2Rve2lmKChhbXwwKT09MCl7Wj04ODl9ZWxzZXtWPWNbYW0rMTI+PjJdfDA7
aWYoKFZ8MCk9PShjW2FtKzE2Pj4yXXwwKSl7YUM9YjBbY1soY1thbT4+Ml18MCkrMzY+PjJdJjEy
N10oYW0pfDB9ZWxzZXthQz1jW1Y+PjJdfDB9aWYoKGFDfDApPT0tMSl7Y1tiPj4yXT0wO1o9ODg5
O2JyZWFrfWVsc2V7aWYoYUFeKGFtfDApPT0wKXthRD1hbTticmVha31lbHNle2JyZWFrIEw5Mzl9
fX19d2hpbGUoMCk7aWYoKFp8MCk9PTg4OSl7Wj0wO2lmKGFBKXticmVha31lbHNle2FEPTB9fVY9
Y1tmPj4yXXwwO2FwPWNbVisxMj4+Ml18MDtpZigoYXB8MCk9PShjW1YrMTY+PjJdfDApKXthRT1i
MFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXthRT1jW2FwPj4yXXwwfWlmKChh
RXwwKSE9KGNbYWs+PjJdfDApKXticmVha31hcD1jW2Y+PjJdfDA7Vj1hcCsxMnwwO1g9Y1tWPj4y
XXwwO2lmKChYfDApPT0oY1thcCsxNj4+Ml18MCkpe2F0PWNbKGNbYXA+PjJdfDApKzQwPj4yXXww
O2IwW2F0JjEyN10oYXApfDB9ZWxzZXtjW1Y+PjJdPVgrNH1haz1hays0fDA7YWw9YVtEXXwwO2Ft
PWFEfWlmKCFMKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDkxNH1YPWFbRF18MDtW
PVgmMjU1O2lmKChha3wwKT09KCgoWCYxKT09MD9oOmNbTT4+Ml18MCkrKCgoViYxfDApPT0wP1Y+
Pj4xOmNbaD4+Ml18MCk8PDIpfDApKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVJ9ZWxzZXtaPTkw
MTticmVhayBMODkwfWJyZWFrfTtjYXNlIDQ6e1Y9MDtYPW87YXA9VDthdD1TO2F1PVI7TDk3NTp3
aGlsZSgxKXthcj1jW2Y+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXthRj0xfWVsc2V7YXM9Y1thcisx
Mj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YUc9YjBbY1soY1thcj4+Ml18MCkr
MzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthRz1jW2FzPj4yXXwwfWlmKChhR3wwKT09LTEpe2NbZj4+
Ml09MDthRj0xO2JyZWFrfWVsc2V7YUY9KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTth
cj1jW2I+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXtaPTkxNX1lbHNle2FzPWNbYXIrMTI+PjJdfDA7
aWYoKGFzfDApPT0oY1thcisxNj4+Ml18MCkpe2FIPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYx
MjddKGFyKXwwfWVsc2V7YUg9Y1thcz4+Ml18MH1pZigoYUh8MCk9PS0xKXtjW2I+PjJdPTA7Wj05
MTU7YnJlYWt9ZWxzZXtpZihhRl4oYXJ8MCk9PTApe2JyZWFrfWVsc2V7YnJlYWsgTDk3NX19fX13
aGlsZSgwKTtpZigoWnwwKT09OTE1KXtaPTA7aWYoYUYpe2JyZWFrfX1hcj1jW2Y+PjJdfDA7YXM9
Y1thcisxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YUk9YjBbY1soY1thcj4+
Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthST1jW2FzPj4yXXwwfWlmKGIxW2NbKGNbZT4+
Ml18MCkrMTI+PjJdJjYzXShsLDIwNDgsYUkpfDApe2FzPWNbbj4+Ml18MDtpZigoYXN8MCk9PShj
W3E+PjJdfDApKXtoMyhtLG4scSk7YUo9Y1tuPj4yXXwwfWVsc2V7YUo9YXN9Y1tuPj4yXT1hSis0
O2NbYUo+PjJdPWFJO2FLPVYrMXwwO2FMPVg7YU09YXA7YU49YXQ7YU89YXV9ZWxzZXthcz1kW3dd
fDA7aWYoKCgoYXMmMXwwKT09MD9hcz4+PjE6Y1tRPj4yXXwwKXwwKT09MHwoVnwwKT09MCl7YnJl
YWt9aWYoKGFJfDApIT0oY1t1Pj4yXXwwKSl7YnJlYWt9aWYoKGFwfDApPT0oWHwwKSl7YXM9KGF1
fDApIT0xNjY7YXI9YXAtYXR8MDtheD1hcj4+PjA8MjE0NzQ4MzY0Nz9hcjw8MTotMTtpZihhcyl7
YVA9YXR9ZWxzZXthUD0wfWFzPWtMKGFQLGF4KXwwO2F3PWFzO2lmKChhc3wwKT09MCl7a1goKX1h
UT1hdysoYXg+Pj4yPDwyKXwwO2FSPWF3Kyhhcj4+Mjw8Mil8MDthUz1hdzthVD04Mn1lbHNle2FR
PVg7YVI9YXA7YVM9YXQ7YVQ9YXV9Y1thUj4+Ml09VjthSz0wO2FMPWFRO2FNPWFSKzR8MDthTj1h
UzthTz1hVH1hdz1jW2Y+PjJdfDA7YXI9YXcrMTJ8MDtheD1jW2FyPj4yXXwwO2lmKChheHwwKT09
KGNbYXcrMTY+PjJdfDApKXthcz1jWyhjW2F3Pj4yXXwwKSs0MD4+Ml18MDtiMFthcyYxMjddKGF3
KXwwO1Y9YUs7WD1hTDthcD1hTTthdD1hTjthdT1hTztjb250aW51ZX1lbHNle2NbYXI+PjJdPWF4
KzQ7Vj1hSztYPWFMO2FwPWFNO2F0PWFOO2F1PWFPO2NvbnRpbnVlfX1pZigoYXR8MCk9PShhcHww
KXwoVnwwKT09MCl7YVU9WDthVj1hcDthVz1hdDthWD1hdX1lbHNle2lmKChhcHwwKT09KFh8MCkp
e2F4PShhdXwwKSE9MTY2O2FyPWFwLWF0fDA7YXc9YXI+Pj4wPDIxNDc0ODM2NDc/YXI8PDE6LTE7
aWYoYXgpe2FZPWF0fWVsc2V7YVk9MH1heD1rTChhWSxhdyl8MDthcz1heDtpZigoYXh8MCk9PTAp
e2tYKCl9YVo9YXMrKGF3Pj4+Mjw8Mil8MDthXz1hcysoYXI+PjI8PDIpfDA7YSQ9YXM7YTA9ODJ9
ZWxzZXthWj1YO2FfPWFwO2EkPWF0O2EwPWF1fWNbYV8+PjJdPVY7YVU9YVo7YVY9YV8rNHwwO2FX
PWEkO2FYPWEwfWFzPWNbQj4+Ml18MDtpZigoYXN8MCk+MCl7YXI9Y1tmPj4yXXwwO2Rve2lmKChh
cnwwKT09MCl7YTE9MX1lbHNle2F3PWNbYXIrMTI+PjJdfDA7aWYoKGF3fDApPT0oY1thcisxNj4+
Ml18MCkpe2EyPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YTI9Y1th
dz4+Ml18MH1pZigoYTJ8MCk9PS0xKXtjW2Y+PjJdPTA7YTE9MTticmVha31lbHNle2ExPShjW2Y+
PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7YXI9Y1tiPj4yXXwwO2Rve2lmKChhcnwwKT09MCl7
Wj05NjR9ZWxzZXtWPWNbYXIrMTI+PjJdfDA7aWYoKFZ8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YTM9
YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthMz1jW1Y+PjJdfDB9aWYo
KGEzfDApPT0tMSl7Y1tiPj4yXT0wO1o9OTY0O2JyZWFrfWVsc2V7aWYoYTFeKGFyfDApPT0wKXth
ND1hcjticmVha31lbHNle1o9OTcwO2JyZWFrIEw4OTB9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTk2
NCl7Wj0wO2lmKGExKXtaPTk3MDticmVhayBMODkwfWVsc2V7YTQ9MH19YXI9Y1tmPj4yXXwwO1Y9
Y1thcisxMj4+Ml18MDtpZigoVnwwKT09KGNbYXIrMTY+PjJdfDApKXthNT1iMFtjWyhjW2FyPj4y
XXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2E1PWNbVj4+Ml18MH1pZigoYTV8MCkhPShjW3Q+
PjJdfDApKXtaPTk3MDticmVhayBMODkwfVY9Y1tmPj4yXXwwO2FyPVYrMTJ8MDthdT1jW2FyPj4y
XXwwO2lmKChhdXwwKT09KGNbVisxNj4+Ml18MCkpe2F0PWNbKGNbVj4+Ml18MCkrNDA+PjJdfDA7
YjBbYXQmMTI3XShWKXwwO2E2PWE0O2E3PWFzfWVsc2V7Y1thcj4+Ml09YXUrNDthNj1hNDthNz1h
c313aGlsZSgxKXthdT1jW2Y+PjJdfDA7ZG97aWYoKGF1fDApPT0wKXthOD0xfWVsc2V7YXI9Y1th
dSsxMj4+Ml18MDtpZigoYXJ8MCk9PShjW2F1KzE2Pj4yXXwwKSl7YTk9YjBbY1soY1thdT4+Ml18
MCkrMzY+PjJdJjEyN10oYXUpfDB9ZWxzZXthOT1jW2FyPj4yXXwwfWlmKChhOXwwKT09LTEpe2Nb
Zj4+Ml09MDthOD0xO2JyZWFrfWVsc2V7YTg9KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgw
KTtkb3tpZigoYTZ8MCk9PTApe1o9OTg3fWVsc2V7YXU9Y1thNisxMj4+Ml18MDtpZigoYXV8MCk9
PShjW2E2KzE2Pj4yXXwwKSl7YmE9YjBbY1soY1thNj4+Ml18MCkrMzY+PjJdJjEyN10oYTYpfDB9
ZWxzZXtiYT1jW2F1Pj4yXXwwfWlmKChiYXwwKT09LTEpe2NbYj4+Ml09MDtaPTk4NzticmVha31l
bHNle2lmKGE4XihhNnwwKT09MCl7YmI9YTY7YnJlYWt9ZWxzZXtaPTk5NDticmVhayBMODkwfX19
fXdoaWxlKDApO2lmKChafDApPT05ODcpe1o9MDtpZihhOCl7Wj05OTQ7YnJlYWsgTDg5MH1lbHNl
e2JiPTB9fWF1PWNbZj4+Ml18MDthcj1jW2F1KzEyPj4yXXwwO2lmKChhcnwwKT09KGNbYXUrMTY+
PjJdfDApKXtiYz1iMFtjWyhjW2F1Pj4yXXwwKSszNj4+Ml0mMTI3XShhdSl8MH1lbHNle2JjPWNb
YXI+PjJdfDB9aWYoIShiMVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2M10obCwyMDQ4LGJjKXwwKSl7
Wj05OTQ7YnJlYWsgTDg5MH1pZigoY1tuPj4yXXwwKT09KGNbcT4+Ml18MCkpe2gzKG0sbixxKX1h
cj1jW2Y+PjJdfDA7YXU9Y1thcisxMj4+Ml18MDtpZigoYXV8MCk9PShjW2FyKzE2Pj4yXXwwKSl7
YmQ9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXtiZD1jW2F1Pj4yXXww
fWF1PWNbbj4+Ml18MDtjW24+PjJdPWF1KzQ7Y1thdT4+Ml09YmQ7YXU9YTctMXwwO2NbQj4+Ml09
YXU7YXI9Y1tmPj4yXXwwO1Y9YXIrMTJ8MDthdD1jW1Y+PjJdfDA7aWYoKGF0fDApPT0oY1thcisx
Nj4+Ml18MCkpe2FwPWNbKGNbYXI+PjJdfDApKzQwPj4yXXwwO2IwW2FwJjEyN10oYXIpfDB9ZWxz
ZXtjW1Y+PjJdPWF0KzR9aWYoKGF1fDApPjApe2E2PWJiO2E3PWF1fWVsc2V7YnJlYWt9fX1pZigo
Y1tuPj4yXXwwKT09KGNbZz4+Ml18MCkpe1o9MTAwNTticmVhayBMODkwfWVsc2V7YWY9cjthZz1h
VTthaD1hVjthaT1hVzthaj1hWH1icmVha307Y2FzZSAxOntpZigoVXwwKT09Myl7YWE9UjthYj1T
O2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWsgTDg5MH1hcz1jW2Y+PjJdfDA7YXU9Y1thcysxMj4+Ml18
MDtpZigoYXV8MCk9PShjW2FzKzE2Pj4yXXwwKSl7YmU9YjBbY1soY1thcz4+Ml18MCkrMzY+PjJd
JjEyN10oYXMpfDB9ZWxzZXtiZT1jW2F1Pj4yXXwwfWlmKCEoYjFbY1soY1tlPj4yXXwwKSsxMj4+
Ml0mNjNdKGwsODE5MixiZSl8MCkpe1o9NzkxO2JyZWFrIEw4OTB9YXU9Y1tmPj4yXXwwO2FzPWF1
KzEyfDA7YXQ9Y1thcz4+Ml18MDtpZigoYXR8MCk9PShjW2F1KzE2Pj4yXXwwKSl7YmY9YjBbY1so
Y1thdT4+Ml18MCkrNDA+PjJdJjEyN10oYXUpfDB9ZWxzZXtjW2FzPj4yXT1hdCs0O2JmPWNbYXQ+
PjJdfDB9ZWgoQSxiZik7Wj03OTI7YnJlYWt9O2Nhc2UgMDp7Wj03OTI7YnJlYWt9O2Nhc2UgMzp7
YXQ9YVtFXXwwO2FzPWF0JjI1NTthdT0oYXMmMXwwKT09MDtWPWFbRl18MDthcj1WJjI1NTthcD0o
YXImMXwwKT09MDtpZigoKGF1P2FzPj4+MTpjW0o+PjJdfDApfDApPT0oLShhcD9hcj4+PjE6Y1tI
Pj4yXXwwKXwwKSl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9ZG97aWYoKChh
dT9hcz4+PjE6Y1tKPj4yXXwwKXwwKSE9MCl7aWYoKChhcD9hcj4+PjE6Y1tIPj4yXXwwKXwwKT09
MCl7YnJlYWt9WD1jW2Y+PjJdfDA7YXc9Y1tYKzEyPj4yXXwwO2lmKChhd3wwKT09KGNbWCsxNj4+
Ml18MCkpe2F4PWIwW2NbKGNbWD4+Ml18MCkrMzY+PjJdJjEyN10oWCl8MDtiZz1heDtiaD1hW0Vd
fDB9ZWxzZXtiZz1jW2F3Pj4yXXwwO2JoPWF0fWF3PWNbZj4+Ml18MDtheD1hdysxMnwwO1g9Y1th
eD4+Ml18MDthdj0oWHwwKT09KGNbYXcrMTY+PjJdfDApO2lmKChiZ3wwKT09KGNbKChiaCYxKT09
MD9KOmNbSz4+Ml18MCk+PjJdfDApKXtpZihhdil7Ymk9Y1soY1thdz4+Ml18MCkrNDA+PjJdfDA7
YjBbYmkmMTI3XShhdyl8MH1lbHNle2NbYXg+PjJdPVgrNH1heD1kW0VdfDA7YWY9KChheCYxfDAp
PT0wP2F4Pj4+MTpjW0o+PjJdfDApPj4+MD4xP3k6cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFr
IEw5MTR9aWYoYXYpe2JqPWIwW2NbKGNbYXc+PjJdfDApKzM2Pj4yXSYxMjddKGF3KXwwfWVsc2V7
Ymo9Y1tYPj4yXXwwfWlmKChianwwKSE9KGNbKChhW0ZdJjEpPT0wP0g6Y1tJPj4yXXwwKT4+Ml18
MCkpe1o9ODU3O2JyZWFrIEw4OTB9WD1jW2Y+PjJdfDA7YXc9WCsxMnwwO2F2PWNbYXc+PjJdfDA7
aWYoKGF2fDApPT0oY1tYKzE2Pj4yXXwwKSl7YXg9Y1soY1tYPj4yXXwwKSs0MD4+Ml18MDtiMFth
eCYxMjddKFgpfDB9ZWxzZXtjW2F3Pj4yXT1hdis0fWFba109MTthdj1kW0ZdfDA7YWY9KChhdiYx
fDApPT0wP2F2Pj4+MTpjW0g+PjJdfDApPj4+MD4xP3o6cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2Jy
ZWFrIEw5MTR9fXdoaWxlKDApO2FyPWNbZj4+Ml18MDthcD1jW2FyKzEyPj4yXXwwO2F2PShhcHww
KT09KGNbYXIrMTY+PjJdfDApO2lmKCgoYXU/YXM+Pj4xOmNbSj4+Ml18MCl8MCk9PTApe2lmKGF2
KXthdz1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MDtiaz1hdztibD1hW0ZdfDB9
ZWxzZXtiaz1jW2FwPj4yXXwwO2JsPVZ9aWYoKGJrfDApIT0oY1soKGJsJjEpPT0wP0g6Y1tJPj4y
XXwwKT4+Ml18MCkpe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMOTE0fWF3PWNbZj4+
Ml18MDtYPWF3KzEyfDA7YXg9Y1tYPj4yXXwwO2lmKChheHwwKT09KGNbYXcrMTY+PjJdfDApKXti
aT1jWyhjW2F3Pj4yXXwwKSs0MD4+Ml18MDtiMFtiaSYxMjddKGF3KXwwfWVsc2V7Y1tYPj4yXT1h
eCs0fWFba109MTtheD1kW0ZdfDA7YWY9KChheCYxfDApPT0wP2F4Pj4+MTpjW0g+PjJdfDApPj4+
MD4xP3o6cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9aWYoYXYpe2F2PWIwW2NbKGNb
YXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwO2JtPWF2O2JuPWFbRV18MH1lbHNle2JtPWNbYXA+
PjJdfDA7Ym49YXR9aWYoKGJtfDApIT0oY1soKGJuJjEpPT0wP0o6Y1tLPj4yXXwwKT4+Ml18MCkp
e2Fba109MTthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDkxNH1hcD1jW2Y+PjJdfDA7
YXY9YXArMTJ8MDthcj1jW2F2Pj4yXXwwO2lmKChhcnwwKT09KGNbYXArMTY+PjJdfDApKXtheD1j
WyhjW2FwPj4yXXwwKSs0MD4+Ml18MDtiMFtheCYxMjddKGFwKXwwfWVsc2V7Y1thdj4+Ml09YXIr
NH1hcj1kW0VdfDA7YWY9KChhciYxfDApPT0wP2FyPj4+MTpjW0o+PjJdfDApPj4+MD4xP3k6cjth
Zz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrfTtkZWZhdWx0OnthZj1yO2FnPW87YWg9VDthaT1TO2Fq
PVJ9fX13aGlsZSgwKTtMMTE4Mzpkb3tpZigoWnwwKT09NzkyKXtaPTA7aWYoKFV8MCk9PTMpe2Fh
PVI7YWI9UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrIEw4OTB9ZWxzZXtibz0kfXdoaWxlKDEpe2Fy
PWNbZj4+Ml18MDtkb3tpZigoYXJ8MCk9PTApe2JwPTF9ZWxzZXthdj1jW2FyKzEyPj4yXXwwO2lm
KChhdnwwKT09KGNbYXIrMTY+PjJdfDApKXticT1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3
XShhcil8MH1lbHNle2JxPWNbYXY+PjJdfDB9aWYoKGJxfDApPT0tMSl7Y1tmPj4yXT0wO2JwPTE7
YnJlYWt9ZWxzZXticD0oY1tmPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKChib3ww
KT09MCl7Wj04MDZ9ZWxzZXthcj1jW2JvKzEyPj4yXXwwO2lmKChhcnwwKT09KGNbYm8rMTY+PjJd
fDApKXticj1iMFtjWyhjW2JvPj4yXXwwKSszNj4+Ml0mMTI3XShibyl8MH1lbHNle2JyPWNbYXI+
PjJdfDB9aWYoKGJyfDApPT0tMSl7Y1tiPj4yXT0wO1o9ODA2O2JyZWFrfWVsc2V7aWYoYnBeKGJv
fDApPT0wKXticz1ibzticmVha31lbHNle2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBM
MTE4M319fX13aGlsZSgwKTtpZigoWnwwKT09ODA2KXtaPTA7aWYoYnApe2FmPXI7YWc9bzthaD1U
O2FpPVM7YWo9UjticmVhayBMMTE4M31lbHNle2JzPTB9fWFyPWNbZj4+Ml18MDthdj1jW2FyKzEy
Pj4yXXwwO2lmKChhdnwwKT09KGNbYXIrMTY+PjJdfDApKXtidD1iMFtjWyhjW2FyPj4yXXwwKSsz
Nj4+Ml0mMTI3XShhcil8MH1lbHNle2J0PWNbYXY+PjJdfDB9aWYoIShiMVtjWyhjW2U+PjJdfDAp
KzEyPj4yXSY2M10obCw4MTkyLGJ0KXwwKSl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFr
IEwxMTgzfWF2PWNbZj4+Ml18MDthcj1hdisxMnwwO2FwPWNbYXI+PjJdfDA7aWYoKGFwfDApPT0o
Y1thdisxNj4+Ml18MCkpe2J1PWIwW2NbKGNbYXY+PjJdfDApKzQwPj4yXSYxMjddKGF2KXwwfWVs
c2V7Y1thcj4+Ml09YXArNDtidT1jW2FwPj4yXXwwfWVoKEEsYnUpO2JvPWJzfX19d2hpbGUoMCk7
YXQ9VSsxfDA7aWYoYXQ+Pj4wPDQpe1I9YWo7Uz1haTtUPWFoO289YWc7cj1hZjtVPWF0fWVsc2V7
YWE9YWo7YWI9YWk7YWM9YWg7YWQ9YWY7Wj0xMDA3O2JyZWFrfX1MMTIyMDpkb3tpZigoWnwwKT09
ODU3KXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PVM7Yng9Un1lbHNlIGlmKChafDApPT05MDEp
e2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9UztieD1SfWVsc2UgaWYoKFp8MCk9PTk3MCl7Y1tq
Pj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlmKChafDApPT05OTQpe2Nbaj4+
Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YVc7Yng9YVh9ZWxzZSBpZigoWnwwKT09MTAwNSl7Y1tqPj4y
XT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlmKChafDApPT0xMDA3KXtMMTIyNzpk
b3tpZigoYWR8MCkhPTApe2FmPWFkO2FoPWFkKzR8MDthaT1hZCs4fDA7YWo9MTtMMTIyOTp3aGls
ZSgxKXtVPWRbYWZdfDA7aWYoKFUmMXwwKT09MCl7Ynk9VT4+PjF9ZWxzZXtieT1jW2FoPj4yXXww
fWlmKGFqPj4+MD49Ynk+Pj4wKXticmVhayBMMTIyN31VPWNbZj4+Ml18MDtkb3tpZigoVXwwKT09
MCl7Yno9MX1lbHNle3I9Y1tVKzEyPj4yXXwwO2lmKChyfDApPT0oY1tVKzE2Pj4yXXwwKSl7YkE9
YjBbY1soY1tVPj4yXXwwKSszNj4+Ml0mMTI3XShVKXwwfWVsc2V7YkE9Y1tyPj4yXXwwfWlmKChi
QXwwKT09LTEpe2NbZj4+Ml09MDtiej0xO2JyZWFrfWVsc2V7Yno9KGNbZj4+Ml18MCk9PTA7YnJl
YWt9fX13aGlsZSgwKTtVPWNbYj4+Ml18MDtkb3tpZigoVXwwKT09MCl7Wj0xMDI2fWVsc2V7cj1j
W1UrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW1UrMTY+PjJdfDApKXtiQj1iMFtjWyhjW1U+PjJdfDAp
KzM2Pj4yXSYxMjddKFUpfDB9ZWxzZXtiQj1jW3I+PjJdfDB9aWYoKGJCfDApPT0tMSl7Y1tiPj4y
XT0wO1o9MTAyNjticmVha31lbHNle2lmKGJ6XihVfDApPT0wKXticmVha31lbHNle2JyZWFrIEwx
MjI5fX19fXdoaWxlKDApO2lmKChafDApPT0xMDI2KXtaPTA7aWYoYnope2JyZWFrfX1VPWNbZj4+
Ml18MDtyPWNbVSsxMj4+Ml18MDtpZigocnwwKT09KGNbVSsxNj4+Ml18MCkpe2JDPWIwW2NbKGNb
VT4+Ml18MCkrMzY+PjJdJjEyN10oVSl8MH1lbHNle2JDPWNbcj4+Ml18MH1pZigoYVthZl0mMSk9
PTApe2JEPWFofWVsc2V7YkQ9Y1thaT4+Ml18MH1pZigoYkN8MCkhPShjW2JEKyhhajw8Mik+PjJd
fDApKXticmVha31yPWFqKzF8MDtVPWNbZj4+Ml18MDthZz1VKzEyfDA7bz1jW2FnPj4yXXwwO2lm
KChvfDApPT0oY1tVKzE2Pj4yXXwwKSl7VD1jWyhjW1U+PjJdfDApKzQwPj4yXXwwO2IwW1QmMTI3
XShVKXwwO2FqPXI7Y29udGludWV9ZWxzZXtjW2FnPj4yXT1vKzQ7YWo9cjtjb250aW51ZX19Y1tq
Pj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hYjtieD1hYTticmVhayBMMTIyMH19d2hpbGUoMCk7aWYo
KGFifDApPT0oYWN8MCkpe2J2PTE7Ync9YWM7Yng9YWE7YnJlYWt9Y1tDPj4yXT0wO2Z0KHYsYWIs
YWMsQyk7aWYoKGNbQz4+Ml18MCk9PTApe2J2PTE7Ync9YWI7Yng9YWE7YnJlYWt9Y1tqPj4yXT1j
W2o+PjJdfDQ7YnY9MDtidz1hYjtieD1hYX1lbHNlIGlmKChafDApPT03OTEpe2Nbaj4+Ml09Y1tq
Pj4yXXw0O2J2PTA7Ync9UztieD1SfX13aGlsZSgwKTtlZShBKTtlZSh6KTtlZSh5KTtlZSh4KTtk
UCh2KTtpZigoYnd8MCk9PTApe2k9cDtyZXR1cm4gYnZ8MH1iWVtieCY1MTFdKGJ3KTtpPXA7cmV0
dXJuIGJ2fDB9ZnVuY3Rpb24gaF8oYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0w
LGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Zj1iO2c9ZDtoPWFbZl18MDtpPWgmMjU1
O2lmKChpJjF8MCk9PTApe2o9aT4+PjF9ZWxzZXtqPWNbYis0Pj4yXXwwfWlmKChoJjEpPT0wKXtr
PTE7bD1ofWVsc2V7aD1jW2I+PjJdfDA7az0oaCYtMiktMXwwO2w9aCYyNTV9aD1lLWc+PjI7aWYo
KGh8MCk9PTApe3JldHVybiBifDB9aWYoKGstanwwKT4+PjA8aD4+PjApe2VCKGIsayxqK2gta3ww
LGosaiwwLDApO209YVtmXXwwfWVsc2V7bT1sfWlmKChtJjEpPT0wKXtuPWIrNHwwfWVsc2V7bj1j
W2IrOD4+Ml18MH1tPW4rKGo8PDIpfDA7aWYoKGR8MCk9PShlfDApKXtvPW19ZWxzZXtsPWorKChl
LTQrKC1nfDApfDApPj4+MikrMXwwO2c9ZDtkPW07d2hpbGUoMSl7Y1tkPj4yXT1jW2c+PjJdO209
Zys0fDA7aWYoKG18MCk9PShlfDApKXticmVha31lbHNle2c9bTtkPWQrNHwwfX1vPW4rKGw8PDIp
fDB9Y1tvPj4yXT0wO289aitofDA7aWYoKGFbZl0mMSk9PTApe2FbZl09bzw8MSYyNTU7cmV0dXJu
IGJ8MH1lbHNle2NbYis0Pj4yXT1vO3JldHVybiBifDB9cmV0dXJuIDB9ZnVuY3Rpb24gaCQoYSl7
YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaDAoYSl7YT1hfDA7ZGUoYXwwKTty
ZXR1cm59ZnVuY3Rpb24gaDEoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAs
Rz0wLEg9MDtkPWk7aT1pKzQ1NnwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWR8
MDttPWQrMTZ8MDtuPWQrNDE2fDA7bz1kKzQyNHwwO3A9ZCs0MzJ8MDtxPWQrNDQwfDA7cj1kKzQ0
OHwwO3M9bnwwO2Nbcz4+Ml09bTt0PW4rNHwwO2NbdD4+Ml09MTY2O3U9bSs0MDB8MDtlaihwLGgp
O209cHwwO3Y9Y1ttPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wr
ND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7dz1j
W3YrOD4+Ml18MDtkb3tpZigoY1t2KzEyPj4yXXwwKS13Pj4yPj4+MD5sPj4+MCl7eD1jW3crKGw8
PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7YVtxXT0wO3o9ZnwwO0E9Y1t6Pj4yXXww
O2Nbcj4+Ml09QTtpZihoWihlLHIsZyxwLGNbaCs0Pj4yXXwwLGoscSx5LG4sbyx1KXwwKXtCPWs7
aWYoKGFbQl0mMSk9PTApe2Nbays0Pj4yXT0wO2FbQl09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0w
O2Nbays0Pj4yXT0wfUI9eDtpZigoYVtxXSYxKSE9MCl7ZWgoayxiX1tjWyhjW0I+PjJdfDApKzQ0
Pj4yXSYzMV0oeSw0NSl8MCl9eD1iX1tjWyhjW0I+PjJdfDApKzQ0Pj4yXSYzMV0oeSw0OCl8MDt5
PWNbbz4+Ml18MDtCPXktNHwwO0M9Y1tzPj4yXXwwO3doaWxlKDEpe2lmKEM+Pj4wPj1CPj4+MCl7
YnJlYWt9aWYoKGNbQz4+Ml18MCk9PSh4fDApKXtDPUMrNHwwfWVsc2V7YnJlYWt9fWhfKGssQyx5
KXwwfXg9ZXwwO0I9Y1t4Pj4yXXwwO2Rve2lmKChCfDApPT0wKXtEPTB9ZWxzZXtFPWNbQisxMj4+
Ml18MDtpZigoRXwwKT09KGNbQisxNj4+Ml18MCkpe0Y9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0m
MTI3XShCKXwwfWVsc2V7Rj1jW0U+PjJdfDB9aWYoKEZ8MCkhPS0xKXtEPUI7YnJlYWt9Y1t4Pj4y
XT0wO0Q9MH19d2hpbGUoMCk7eD0oRHwwKT09MDtkb3tpZigoQXwwKT09MCl7Rz0xMTA1fWVsc2V7
Qj1jW0ErMTI+PjJdfDA7aWYoKEJ8MCk9PShjW0ErMTY+PjJdfDApKXtIPWIwW2NbKGNbQT4+Ml18
MCkrMzY+PjJdJjEyN10oQSl8MH1lbHNle0g9Y1tCPj4yXXwwfWlmKChIfDApPT0tMSl7Y1t6Pj4y
XT0wO0c9MTEwNTticmVha31lbHNle2lmKHheKEF8MCk9PTApe2JyZWFrfWVsc2V7Rz0xMTA3O2Jy
ZWFrfX19fXdoaWxlKDApO2lmKChHfDApPT0xMTA1KXtpZih4KXtHPTExMDd9fWlmKChHfDApPT0x
MTA3KXtjW2o+PjJdPWNbaj4+Ml18Mn1jW2I+PjJdPUQ7QT1jW20+PjJdfDA7ZHooQSl8MDtBPWNb
cz4+Ml18MDtjW3M+PjJdPTA7aWYoKEF8MCk9PTApe2k9ZDtyZXR1cm59YllbY1t0Pj4yXSY1MTFd
KEEpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQp
fWZ1bmN0aW9uIGgyKGIsZCxlLGYsZyxoLGosayxsLG0pe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MDtuPWk7aT1pKzU2fDA7bz1ufDA7cD1u
KzE2fDA7cT1uKzMyfDA7cj1uKzQwfDA7cz1yO3Q9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt1PXQ7
dj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eT14
O3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztCPUE7RD1p
O2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Rz1GO0g9
aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztJPUg7aWYoYil7Yj1jW2Q+PjJdfDA7aWYoKGNbNDA0MF18
MCkhPS0xKXtjW3A+PjJdPTE2MTYwO2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNjE2MCxw
LDk2KX1wPShjWzQwNDFdfDApLTF8MDtKPWNbYis4Pj4yXXwwO2lmKChjW2IrMTI+PjJdfDApLUo+
PjI+Pj4wPD1wPj4+MCl7Sz1iTyg0KXwwO0w9SztrcShMKTtibChLfDAsODE3NiwxMzQpfWI9Y1tK
KyhwPDwyKT4+Ml18MDtpZigoYnwwKT09MCl7Sz1iTyg0KXwwO0w9SztrcShMKTtibChLfDAsODE3
NiwxMzQpfUs9YjtiWltjWyhjW2I+PjJdfDApKzQ0Pj4yXSYxMjddKHEsSyk7TD1lO0M9Y1txPj4y
XXwwO2FbTF09QyYyNTU7Qz1DPj44O2FbTCsxfDBdPUMmMjU1O0M9Qz4+ODthW0wrMnwwXT1DJjI1
NTtDPUM+Pjg7YVtMKzN8MF09QyYyNTU7TD1iO2JaW2NbKGNbTD4+Ml18MCkrMzI+PjJdJjEyN10o
cixLKTtxPWw7aWYoKGFbcV0mMSk9PTApe2NbbCs0Pj4yXT0wO2FbcV09MH1lbHNle2NbY1tsKzg+
PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1txPj4yXT1jW3M+PjJdO2NbcSs0Pj4yXT1j
W3MrND4+Ml07Y1txKzg+PjJdPWNbcys4Pj4yXTtrJChzfDAsMCwxMik7ZWUocik7YlpbY1soY1tM
Pj4yXXwwKSsyOD4+Ml0mMTI3XSh0LEspO3I9aztpZigoYVtyXSYxKT09MCl7Y1trKzQ+PjJdPTA7
YVtyXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJdPTB9ZXooaywwKTtjW3I+PjJd
PWNbdT4+Ml07Y1tyKzQ+PjJdPWNbdSs0Pj4yXTtjW3IrOD4+Ml09Y1t1Kzg+PjJdO2skKHV8MCww
LDEyKTtlZSh0KTt0PWI7Y1tmPj4yXT1iMFtjWyhjW3Q+PjJdfDApKzEyPj4yXSYxMjddKEspfDA7
Y1tnPj4yXT1iMFtjWyhjW3Q+PjJdfDApKzE2Pj4yXSYxMjddKEspfDA7YlpbY1soY1tiPj4yXXww
KSsyMD4+Ml0mMTI3XSh2LEspO2I9aDtpZigoYVtiXSYxKT09MCl7YVtoKzF8MF09MDthW2JdPTB9
ZWxzZXthW2NbaCs4Pj4yXXwwXT0wO2NbaCs0Pj4yXT0wfWQkKGgsMCk7Y1tiPj4yXT1jW3c+PjJd
O2NbYis0Pj4yXT1jW3crND4+Ml07Y1tiKzg+PjJdPWNbdys4Pj4yXTtrJCh3fDAsMCwxMik7ZFAo
dik7YlpbY1soY1tMPj4yXXwwKSsyND4+Ml0mMTI3XSh4LEspO0w9ajtpZigoYVtMXSYxKT09MCl7
Y1tqKzQ+PjJdPTA7YVtMXT0wfWVsc2V7Y1tjW2orOD4+Ml0+PjJdPTA7Y1tqKzQ+PjJdPTB9ZXoo
aiwwKTtjW0w+PjJdPWNbeT4+Ml07Y1tMKzQ+PjJdPWNbeSs0Pj4yXTtjW0wrOD4+Ml09Y1t5Kzg+
PjJdO2skKHl8MCwwLDEyKTtlZSh4KTtNPWIwW2NbKGNbdD4+Ml18MCkrMzY+PjJdJjEyN10oSyl8
MDtjW20+PjJdPU07aT1uO3JldHVybn1lbHNle0s9Y1tkPj4yXXwwO2lmKChjWzQwNDJdfDApIT0t
MSl7Y1tvPj4yXT0xNjE2ODtjW28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxNjgsbyw5Nil9
bz0oY1s0MDQzXXwwKS0xfDA7ZD1jW0srOD4+Ml18MDtpZigoY1tLKzEyPj4yXXwwKS1kPj4yPj4+
MDw9bz4+PjApe049Yk8oNCl8MDtPPU47a3EoTyk7YmwoTnwwLDgxNzYsMTM0KX1LPWNbZCsobzw8
Mik+PjJdfDA7aWYoKEt8MCk9PTApe049Yk8oNCl8MDtPPU47a3EoTyk7YmwoTnwwLDgxNzYsMTM0
KX1OPUs7YlpbY1soY1tLPj4yXXwwKSs0ND4+Ml0mMTI3XSh6LE4pO089ZTtDPWNbej4+Ml18MDth
W09dPUMmMjU1O0M9Qz4+ODthW08rMXwwXT1DJjI1NTtDPUM+Pjg7YVtPKzJ8MF09QyYyNTU7Qz1D
Pj44O2FbTyszfDBdPUMmMjU1O089SztiWltjWyhjW08+PjJdfDApKzMyPj4yXSYxMjddKEEsTik7
ej1sO2lmKChhW3pdJjEpPT0wKXtjW2wrND4+Ml09MDthW3pdPTB9ZWxzZXtjW2NbbCs4Pj4yXT4+
Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2Nbej4+Ml09Y1tCPj4yXTtjW3orND4+Ml09Y1tCKzQ+
PjJdO2Nbeis4Pj4yXT1jW0IrOD4+Ml07ayQoQnwwLDAsMTIpO2VlKEEpO2JaW2NbKGNbTz4+Ml18
MCkrMjg+PjJdJjEyN10oRCxOKTtBPWs7aWYoKGFbQV0mMSk9PTApe2Nbays0Pj4yXT0wO2FbQV09
MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6KGssMCk7Y1tBPj4yXT1jW0U+
PjJdO2NbQSs0Pj4yXT1jW0UrND4+Ml07Y1tBKzg+PjJdPWNbRSs4Pj4yXTtrJChFfDAsMCwxMik7
ZWUoRCk7RD1LO2NbZj4+Ml09YjBbY1soY1tEPj4yXXwwKSsxMj4+Ml0mMTI3XShOKXwwO2NbZz4+
Ml09YjBbY1soY1tEPj4yXXwwKSsxNj4+Ml0mMTI3XShOKXwwO2JaW2NbKGNbSz4+Ml18MCkrMjA+
PjJdJjEyN10oRixOKTtLPWg7aWYoKGFbS10mMSk9PTApe2FbaCsxfDBdPTA7YVtLXT0wfWVsc2V7
YVtjW2grOD4+Ml18MF09MDtjW2grND4+Ml09MH1kJChoLDApO2NbSz4+Ml09Y1tHPj4yXTtjW0sr
ND4+Ml09Y1tHKzQ+PjJdO2NbSys4Pj4yXT1jW0crOD4+Ml07ayQoR3wwLDAsMTIpO2RQKEYpO2Ja
W2NbKGNbTz4+Ml18MCkrMjQ+PjJdJjEyN10oSCxOKTtPPWo7aWYoKGFbT10mMSk9PTApe2Nbais0
Pj4yXT0wO2FbT109MH1lbHNle2NbY1tqKzg+PjJdPj4yXT0wO2Nbais0Pj4yXT0wfWV6KGosMCk7
Y1tPPj4yXT1jW0k+PjJdO2NbTys0Pj4yXT1jW0krND4+Ml07Y1tPKzg+PjJdPWNbSSs4Pj4yXTtr
JChJfDAsMCwxMik7ZWUoSCk7TT1iMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKE4pfDA7Y1tt
Pj4yXT1NO2k9bjtyZXR1cm59fWZ1bmN0aW9uIGgzKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2
YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWErNHwwO2Y9KGNbZT4+Ml18MCkh
PTE2NjtnPWF8MDthPWNbZz4+Ml18MDtoPWE7aT0oY1tkPj4yXXwwKS1ofDA7aj1pPj4+MDwyMTQ3
NDgzNjQ3P2k8PDE6LTE7aT0oY1tiPj4yXXwwKS1oPj4yO2lmKGYpe2s9YX1lbHNle2s9MH1hPWtM
KGssail8MDtrPWE7aWYoKGF8MCk9PTApe2tYKCl9ZG97aWYoZil7Y1tnPj4yXT1rO2w9a31lbHNl
e2E9Y1tnPj4yXXwwO2NbZz4+Ml09aztpZigoYXwwKT09MCl7bD1rO2JyZWFrfWJZW2NbZT4+Ml0m
NTExXShhKTtsPWNbZz4+Ml18MH19d2hpbGUoMCk7Y1tlPj4yXT04MjtjW2I+PjJdPWwrKGk8PDIp
O2NbZD4+Ml09KGNbZz4+Ml18MCkrKGo+Pj4yPDwyKTtyZXR1cm59ZnVuY3Rpb24gaDQoYixlLGYs
ZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7az1rfDA7bD0rbDt2YXIgbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAs
Qj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQ
PTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wO2U9aTtpPWkrMjgwfDA7bT1mO2Y9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWV8MDtuPWUrMTIwfDA7bz1lKzIzMnww
O3A9ZSsyNDB8MDtxPWUrMjQ4fDA7cj1lKzI1NnwwO3M9ZSsyNjR8MDt0PXM7dT1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eD13O3k9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTAwfDA7aT1pKzc+PjM8PDM7QT1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RD1l
KzE2fDA7Y1tuPj4yXT1EO0U9ZSsxMjh8MDtGPWFaKER8MCwxMDAsMTM2MCwoRD1pLGk9aSs4fDAs
aFtEPj4zXT1sLEQpfDApfDA7aT1EO2Rve2lmKEY+Pj4wPjk5KXtkb3tpZigoYVsxNjI2NF18MCk9
PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO0c9Z2gobixjWzI5NThdfDAsMTM2MCwoRD1pLGk9aSs4fDAsaFtEPj4zXT1sLEQpfDAp
fDA7aT1EO0g9Y1tuPj4yXXwwO2lmKChIfDApPT0wKXtrWCgpO0k9Y1tuPj4yXXwwfWVsc2V7ST1I
fUg9a0ooRyl8MDtpZigoSHwwKSE9MCl7Sj1IO0s9RztMPUk7TT1IO2JyZWFrfWtYKCk7Sj0wO0s9
RztMPUk7TT0wfWVsc2V7Sj1FO0s9RjtMPTA7TT0wfX13aGlsZSgwKTtlaihvLGopO0Y9b3wwO0U9
Y1tGPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1ttPj4yXT0xNTY5NjtjW20rND4+Ml09MTI7
Y1ttKzg+PjJdPTA7ZFcoMTU2OTYsbSw5Nil9bT0oY1szOTI1XXwwKS0xfDA7ST1jW0UrOD4+Ml18
MDtkb3tpZigoY1tFKzEyPj4yXXwwKS1JPj4yPj4+MD5tPj4+MCl7RD1jW0krKG08PDIpPj4yXXww
O2lmKChEfDApPT0wKXticmVha31HPUQ7SD1jW24+PjJdfDA7Tj1IK0t8MDtPPWNbKGNbRD4+Ml18
MCkrMzI+PjJdfDA7Y2FbTyYxNV0oRyxILE4sSil8MDtpZigoS3wwKT09MCl7UD0wfWVsc2V7UD0o
YVtjW24+PjJdfDBdfDApPT00NX1rJCh0fDAsMCwxMik7ayQodnwwLDAsMTIpO2skKHh8MCwwLDEy
KTtoNShnLFAsbyxwLHEscixzLHUsdyx5KTtOPXp8MDtIPWNbeT4+Ml18MDtpZigoS3wwKT4oSHww
KSl7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7UT1PPj4+MX1lbHNle1E9Y1t3KzQ+PjJdfDB9Tz1k
W3ZdfDA7aWYoKE8mMXwwKT09MCl7Uj1PPj4+MX1lbHNle1I9Y1t1KzQ+PjJdfDB9Uz0oSy1IPDwx
fDEpK1ErUnwwfWVsc2V7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7VD1PPj4+MX1lbHNle1Q9Y1t3
KzQ+PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7VT1PPj4+MX1lbHNle1U9Y1t1KzQ+PjJd
fDB9Uz1UKzIrVXwwfU89UytIfDA7ZG97aWYoTz4+PjA+MTAwKXtEPWtKKE8pfDA7aWYoKER8MCkh
PTApe1Y9RDtXPUQ7YnJlYWt9a1goKTtWPTA7Vz0wfWVsc2V7Vj1OO1c9MH19d2hpbGUoMCk7aDYo
VixBLEIsY1tqKzQ+PjJdfDAsSixKK0t8MCxHLFAscCxhW3FdfDAsYVtyXXwwLHMsdSx3LEgpO2Nb
Qz4+Ml09Y1tmPj4yXTtmOShiLEMsVixjW0E+PjJdfDAsY1tCPj4yXXwwLGosayk7aWYoKFd8MCkh
PTApe2tLKFcpfWRQKHcpO2RQKHUpO2RQKHMpO049Y1tGPj4yXXwwO2R6KE4pfDA7aWYoKE18MCkh
PTApe2tLKE0pfWlmKChMfDApPT0wKXtpPWU7cmV0dXJufWtLKEwpO2k9ZTtyZXR1cm59fXdoaWxl
KDApO2U9Yk8oNCl8MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGg1KGIsZCxlLGYs
ZyxoLGosayxsLG0pe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9
a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtuPWk7aT1pKzQwfDA7bz1ufDA7
cD1uKzE2fDA7cT1uKzMyfDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt0PXM7dT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt4PXc7eT1pO2k9
aSsxMnwwO2k9aSs3Pj4zPDwzO3o9eTtBPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Qj1BO0Q9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Rz1GO0g9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO0k9SDtKPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Sz1KO0w9aTtp
PWkrMTJ8MDtpPWkrNz4+Mzw8MztNPUw7Tj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO089TjtQPWNb
ZT4+Ml18MDtpZihiKXtpZigoY1s0MDQ0XXwwKSE9LTEpe2NbcD4+Ml09MTYxNzY7Y1twKzQ+PjJd
PTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTc2LHAsOTYpfXA9KGNbNDA0NV18MCktMXwwO2I9Y1tQKzg+
PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktYj4+Mj4+PjA8PXA+Pj4wKXtRPWJPKDQpfDA7Uj1RO2tx
KFIpO2JsKFF8MCw4MTc2LDEzNCl9ZT1jW2IrKHA8PDIpPj4yXXwwO2lmKChlfDApPT0wKXtRPWJP
KDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9UT1lO1I9Y1tlPj4yXXwwO2lmKGQpe2Ja
W2NbUis0ND4+Ml0mMTI3XShyLFEpO3I9ZjtDPWNbcT4+Ml18MDthW3JdPUMmMjU1O0M9Qz4+ODth
W3IrMXwwXT1DJjI1NTtDPUM+Pjg7YVtyKzJ8MF09QyYyNTU7Qz1DPj44O2FbciszfDBdPUMmMjU1
O2JaW2NbKGNbZT4+Ml18MCkrMzI+PjJdJjEyN10ocyxRKTtyPWw7aWYoKGFbcl0mMSk9PTApe2Fb
bCsxfDBdPTA7YVtyXT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChsLDAp
O2Nbcj4+Ml09Y1t0Pj4yXTtjW3IrND4+Ml09Y1t0KzQ+PjJdO2Nbcis4Pj4yXT1jW3QrOD4+Ml07
ayQodHwwLDAsMTIpO2RQKHMpfWVsc2V7YlpbY1tSKzQwPj4yXSYxMjddKHYsUSk7dj1mO0M9Y1t1
Pj4yXXwwO2Fbdl09QyYyNTU7Qz1DPj44O2FbdisxfDBdPUMmMjU1O0M9Qz4+ODthW3YrMnwwXT1D
JjI1NTtDPUM+Pjg7YVt2KzN8MF09QyYyNTU7YlpbY1soY1tlPj4yXXwwKSsyOD4+Ml0mMTI3XSh3
LFEpO3Y9bDtpZigoYVt2XSYxKT09MCl7YVtsKzF8MF09MDthW3ZdPTB9ZWxzZXthW2NbbCs4Pj4y
XXwwXT0wO2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1t2Pj4yXT1jW3g+PjJdO2Nbdis0Pj4yXT1jW3gr
ND4+Ml07Y1t2Kzg+PjJdPWNbeCs4Pj4yXTtrJCh4fDAsMCwxMik7ZFAodyl9dz1lO2FbZ109YjBb
Y1soY1t3Pj4yXXwwKSsxMj4+Ml0mMTI3XShRKXwwO2FbaF09YjBbY1soY1t3Pj4yXXwwKSsxNj4+
Ml0mMTI3XShRKXwwO3c9ZTtiWltjWyhjW3c+PjJdfDApKzIwPj4yXSYxMjddKHksUSk7eD1qO2lm
KChhW3hdJjEpPT0wKXthW2orMXwwXT0wO2FbeF09MH1lbHNle2FbY1tqKzg+PjJdfDBdPTA7Y1tq
KzQ+PjJdPTB9ZCQoaiwwKTtjW3g+PjJdPWNbej4+Ml07Y1t4KzQ+PjJdPWNbeis0Pj4yXTtjW3gr
OD4+Ml09Y1t6Kzg+PjJdO2skKHp8MCwwLDEyKTtkUCh5KTtiWltjWyhjW3c+PjJdfDApKzI0Pj4y
XSYxMjddKEEsUSk7dz1rO2lmKChhW3ddJjEpPT0wKXthW2srMXwwXT0wO2Fbd109MH1lbHNle2Fb
Y1trKzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW3c+PjJdPWNbQj4+Ml07Y1t3KzQ+
PjJdPWNbQis0Pj4yXTtjW3crOD4+Ml09Y1tCKzg+PjJdO2skKEJ8MCwwLDEyKTtkUChBKTtTPWIw
W2NbKGNbZT4+Ml18MCkrMzY+PjJdJjEyN10oUSl8MDtjW20+PjJdPVM7aT1uO3JldHVybn1lbHNl
e2lmKChjWzQwNDZdfDApIT0tMSl7Y1tvPj4yXT0xNjE4NDtjW28rND4+Ml09MTI7Y1tvKzg+PjJd
PTA7ZFcoMTYxODQsbyw5Nil9bz0oY1s0MDQ3XXwwKS0xfDA7UT1jW1ArOD4+Ml18MDtpZigoY1tQ
KzEyPj4yXXwwKS1RPj4yPj4+MDw9bz4+PjApe1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgx
NzYsMTM0KX1QPWNbUSsobzw8Mik+PjJdfDA7aWYoKFB8MCk9PTApe1Q9Yk8oNCl8MDtVPVQ7a3Eo
VSk7YmwoVHwwLDgxNzYsMTM0KX1UPVA7VT1jW1A+PjJdfDA7aWYoZCl7YlpbY1tVKzQ0Pj4yXSYx
MjddKEUsVCk7RT1mO0M9Y1tEPj4yXXwwO2FbRV09QyYyNTU7Qz1DPj44O2FbRSsxfDBdPUMmMjU1
O0M9Qz4+ODthW0UrMnwwXT1DJjI1NTtDPUM+Pjg7YVtFKzN8MF09QyYyNTU7YlpbY1soY1tQPj4y
XXwwKSszMj4+Ml0mMTI3XShGLFQpO0U9bDtpZigoYVtFXSYxKT09MCl7YVtsKzF8MF09MDthW0Vd
PTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1tFPj4yXT1jW0c+
PjJdO2NbRSs0Pj4yXT1jW0crND4+Ml07Y1tFKzg+PjJdPWNbRys4Pj4yXTtrJChHfDAsMCwxMik7
ZFAoRil9ZWxzZXtiWltjW1UrNDA+PjJdJjEyN10oSSxUKTtJPWY7Qz1jW0g+PjJdfDA7YVtJXT1D
JjI1NTtDPUM+Pjg7YVtJKzF8MF09QyYyNTU7Qz1DPj44O2FbSSsyfDBdPUMmMjU1O0M9Qz4+ODth
W0krM3wwXT1DJjI1NTtiWltjWyhjW1A+PjJdfDApKzI4Pj4yXSYxMjddKEosVCk7ST1sO2lmKChh
W0ldJjEpPT0wKXthW2wrMXwwXT0wO2FbSV09MH1lbHNle2FbY1tsKzg+PjJdfDBdPTA7Y1tsKzQ+
PjJdPTB9ZCQobCwwKTtjW0k+PjJdPWNbSz4+Ml07Y1tJKzQ+PjJdPWNbSys0Pj4yXTtjW0krOD4+
Ml09Y1tLKzg+PjJdO2skKEt8MCwwLDEyKTtkUChKKX1KPVA7YVtnXT1iMFtjWyhjW0o+PjJdfDAp
KzEyPj4yXSYxMjddKFQpfDA7YVtoXT1iMFtjWyhjW0o+PjJdfDApKzE2Pj4yXSYxMjddKFQpfDA7
Sj1QO2JaW2NbKGNbSj4+Ml18MCkrMjA+PjJdJjEyN10oTCxUKTtoPWo7aWYoKGFbaF0mMSk9PTAp
e2FbaisxfDBdPTA7YVtoXT0wfWVsc2V7YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChq
LDApO2NbaD4+Ml09Y1tNPj4yXTtjW2grND4+Ml09Y1tNKzQ+PjJdO2NbaCs4Pj4yXT1jW00rOD4+
Ml07ayQoTXwwLDAsMTIpO2RQKEwpO2JaW2NbKGNbSj4+Ml18MCkrMjQ+PjJdJjEyN10oTixUKTtK
PWs7aWYoKGFbSl0mMSk9PTApe2FbaysxfDBdPTA7YVtKXT0wfWVsc2V7YVtjW2srOD4+Ml18MF09
MDtjW2srND4+Ml09MH1kJChrLDApO2NbSj4+Ml09Y1tPPj4yXTtjW0orND4+Ml09Y1tPKzQ+PjJd
O2NbSis4Pj4yXT1jW08rOD4+Ml07ayQoT3wwLDAsMTIpO2RQKE4pO1M9YjBbY1soY1tQPj4yXXww
KSszNj4+Ml0mMTI3XShUKXwwO2NbbT4+Ml09UztpPW47cmV0dXJufX1mdW5jdGlvbiBoNihkLGUs
ZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscil7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1vfDA7cD1wfDA7cT1xfDA7cj1y
fDA7dmFyIHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9
MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0w
LFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAs
YWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFw
PTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTA7Y1tmPj4yXT1k
O3M9ajt0PXE7dT1xKzF8MDt2PXErOHwwO3c9cSs0fDA7cT1wO3g9KGcmNTEyfDApPT0wO3k9cCsx
fDA7ej1wKzR8MDtBPXArOHwwO3A9ais4fDA7Qj0ocnwwKT4wO0M9bztEPW8rMXwwO0U9bys4fDA7
Rj1vKzR8MDtvPS1yfDA7Rz1oO2g9MDt3aGlsZSgxKXtMMTU4MDpkb3tzd2l0Y2goYVtsK2h8MF18
MCl7Y2FzZSAwOntjW2U+PjJdPWNbZj4+Ml07SD1HO2JyZWFrfTtjYXNlIDE6e2NbZT4+Ml09Y1tm
Pj4yXTtJPWJfW2NbKGNbcz4+Ml18MCkrMjg+PjJdJjMxXShqLDMyKXwwO0o9Y1tmPj4yXXwwO2Nb
Zj4+Ml09SisxO2FbSl09STtIPUc7YnJlYWt9O2Nhc2UgMzp7ST1hW3RdfDA7Sj1JJjI1NTtpZigo
SiYxfDApPT0wKXtLPUo+Pj4xfWVsc2V7Sz1jW3c+PjJdfDB9aWYoKEt8MCk9PTApe0g9RzticmVh
ayBMMTU4MH1pZigoSSYxKT09MCl7TD11fWVsc2V7TD1jW3Y+PjJdfDB9ST1hW0xdfDA7Sj1jW2Y+
PjJdfDA7Y1tmPj4yXT1KKzE7YVtKXT1JO0g9RzticmVha307Y2FzZSAyOntJPWFbcV18MDtKPUkm
MjU1O009KEomMXwwKT09MDtpZihNKXtOPUo+Pj4xfWVsc2V7Tj1jW3o+PjJdfDB9aWYoKE58MCk9
PTB8eCl7SD1HO2JyZWFrIEwxNTgwfWlmKChJJjEpPT0wKXtPPXk7UD15fWVsc2V7ST1jW0E+PjJd
fDA7Tz1JO1A9SX1pZihNKXtRPUo+Pj4xfWVsc2V7UT1jW3o+PjJdfDB9Sj1PK1F8MDtNPWNbZj4+
Ml18MDtpZigoUHwwKT09KEp8MCkpe1I9TX1lbHNle0k9UDtTPU07d2hpbGUoMSl7YVtTXT1hW0ld
fDA7TT1JKzF8MDtUPVMrMXwwO2lmKChNfDApPT0oSnwwKSl7Uj1UO2JyZWFrfWVsc2V7ST1NO1M9
VH19fWNbZj4+Ml09UjtIPUc7YnJlYWt9O2Nhc2UgNDp7Uz1jW2Y+PjJdfDA7ST1rP0crMXwwOkc7
Sj1JO3doaWxlKDEpe2lmKEo+Pj4wPj1pPj4+MCl7YnJlYWt9VD1hW0pdfDA7aWYoVDw8MjQ+PjI0
PD0tMSl7YnJlYWt9aWYoKGJbKGNbcD4+Ml18MCkrKFQ8PDI0Pj4yNDw8MSk+PjFdJjIwNDgpPT0w
KXticmVha31lbHNle0o9SisxfDB9fVQ9SjtpZihCKXtpZihKPj4+MD5JPj4+MCl7TT1JKygtVHww
KXwwO1Q9TT4+PjA8bz4+PjA/bzpNO009VCtyfDA7VT1KO1Y9cjtXPVM7d2hpbGUoMSl7WD1VLTF8
MDtZPWFbWF18MDtjW2Y+PjJdPVcrMTthW1ddPVk7WT1WLTF8MDtaPShZfDApPjA7aWYoIShYPj4+
MD5JPj4+MCZaKSl7YnJlYWt9VT1YO1Y9WTtXPWNbZj4+Ml18MH1XPUorVHwwO2lmKFope189TTsk
PVc7YWE9MTM1NH1lbHNle2FiPTA7YWM9TTthZD1XfX1lbHNle189cjskPUo7YWE9MTM1NH1pZigo
YWF8MCk9PTEzNTQpe2FhPTA7YWI9Yl9bY1soY1tzPj4yXXwwKSsyOD4+Ml0mMzFdKGosNDgpfDA7
YWM9XzthZD0kfVc9Y1tmPj4yXXwwO2NbZj4+Ml09VysxO2lmKChhY3wwKT4wKXtWPWFjO1U9Vzt3
aGlsZSgxKXthW1VdPWFiO1k9Vi0xfDA7WD1jW2Y+PjJdfDA7Y1tmPj4yXT1YKzE7aWYoKFl8MCk+
MCl7Vj1ZO1U9WH1lbHNle2FlPVg7YnJlYWt9fX1lbHNle2FlPVd9YVthZV09bTthZj1hZH1lbHNl
e2FmPUp9aWYoKGFmfDApPT0oSXwwKSl7VT1iX1tjWyhjW3M+PjJdfDApKzI4Pj4yXSYzMV0oaiw0
OCl8MDtWPWNbZj4+Ml18MDtjW2Y+PjJdPVYrMTthW1ZdPVV9ZWxzZXtVPWFbQ118MDtWPVUmMjU1
O2lmKChWJjF8MCk9PTApe2FnPVY+Pj4xfWVsc2V7YWc9Y1tGPj4yXXwwfWlmKChhZ3wwKT09MCl7
YWg9YWY7YWk9MDthaj0wO2FrPS0xfWVsc2V7aWYoKFUmMSk9PTApe2FsPUR9ZWxzZXthbD1jW0U+
PjJdfDB9YWg9YWY7YWk9MDthaj0wO2FrPWFbYWxdfDB9d2hpbGUoMSl7ZG97aWYoKGFpfDApPT0o
YWt8MCkpe1U9Y1tmPj4yXXwwO2NbZj4+Ml09VSsxO2FbVV09bjtVPWFqKzF8MDtWPWFbQ118MDtN
PVYmMjU1O2lmKChNJjF8MCk9PTApe2FtPU0+Pj4xfWVsc2V7YW09Y1tGPj4yXXwwfWlmKFU+Pj4w
Pj1hbT4+PjApe2FuPWFrO2FvPVU7YXA9MDticmVha31NPShWJjEpPT0wO2lmKE0pe2FxPUR9ZWxz
ZXthcT1jW0U+PjJdfDB9aWYoKGFbYXErVXwwXXwwKT09MTI3KXthbj0tMTthbz1VO2FwPTA7YnJl
YWt9aWYoTSl7YXI9RH1lbHNle2FyPWNbRT4+Ml18MH1hbj1hW2FyK1V8MF18MDthbz1VO2FwPTB9
ZWxzZXthbj1hazthbz1hajthcD1haX19d2hpbGUoMCk7VT1haC0xfDA7TT1hW1VdfDA7Vj1jW2Y+
PjJdfDA7Y1tmPj4yXT1WKzE7YVtWXT1NO2lmKChVfDApPT0oSXwwKSl7YnJlYWt9ZWxzZXthaD1V
O2FpPWFwKzF8MDthaj1hbzthaz1hbn19fUo9Y1tmPj4yXXwwO2lmKChTfDApPT0oSnwwKSl7SD1J
O2JyZWFrIEwxNTgwfVc9Si0xfDA7aWYoUz4+PjA8Vz4+PjApe2FzPVM7YXQ9V31lbHNle0g9STti
cmVhayBMMTU4MH13aGlsZSgxKXtXPWFbYXNdfDA7YVthc109YVthdF18MDthW2F0XT1XO1c9YXMr
MXwwO0o9YXQtMXwwO2lmKFc+Pj4wPEo+Pj4wKXthcz1XO2F0PUp9ZWxzZXtIPUk7YnJlYWt9fWJy
ZWFrfTtkZWZhdWx0OntIPUd9fX13aGlsZSgwKTtJPWgrMXwwO2lmKEk+Pj4wPDQpe0c9SDtoPUl9
ZWxzZXticmVha319aD1hW3RdfDA7dD1oJjI1NTtIPSh0JjF8MCk9PTA7aWYoSCl7YXU9dD4+PjF9
ZWxzZXthdT1jW3c+PjJdfDB9aWYoYXU+Pj4wPjEpe2lmKChoJjEpPT0wKXthdj11O2F3PXV9ZWxz
ZXt1PWNbdj4+Ml18MDthdj11O2F3PXV9aWYoSCl7YXg9dD4+PjF9ZWxzZXtheD1jW3c+PjJdfDB9
dz1hditheHwwO2F4PWNbZj4+Ml18MDthdj1hdysxfDA7aWYoKGF2fDApPT0od3wwKSl7YXk9YXh9
ZWxzZXthdz1heDtheD1hdjt3aGlsZSgxKXthW2F3XT1hW2F4XXwwO2F2PWF3KzF8MDt0PWF4KzF8
MDtpZigodHwwKT09KHd8MCkpe2F5PWF2O2JyZWFrfWVsc2V7YXc9YXY7YXg9dH19fWNbZj4+Ml09
YXl9c3dpdGNoKGcmMTc2fDApe2Nhc2UgMTY6e3JldHVybn07Y2FzZSAzMjp7Y1tlPj4yXT1jW2Y+
PjJdO3JldHVybn07ZGVmYXVsdDp7Y1tlPj4yXT1kO3JldHVybn19fWZ1bmN0aW9uIGg3KGEpe2E9
YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGg4KGEpe2E9YXwwO2RlKGF8MCk7cmV0
dXJufWZ1bmN0aW9uIGg5KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9
aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9
MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0w
LFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTA7ZT1pO2k9aSs2NHwwO2w9ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2fDA7bj1lKzI0
fDA7bz1lKzMyfDA7cD1lKzQwfDA7cT1lKzQ4fDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8
Mzt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzR8MDtpPWkrNz4+Mzw8
Mzt4PWk7aT1pKzEwMHwwO2k9aSs3Pj4zPDwzO3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2VqKG0saCk7Qj1tfDA7
Qz1jW0I+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJdPTE1Njk2O2NbbCs0Pj4yXT0x
MjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVdfDApLTF8MDtEPWNbQys4Pj4y
XXwwO2Rve2lmKChjW0MrMTI+PjJdfDApLUQ+PjI+Pj4wPmw+Pj4wKXtFPWNbRCsobDw8Mik+PjJd
fDA7aWYoKEV8MCk9PTApe2JyZWFrfUY9RTtHPWs7SD1rO0k9YVtIXXwwO0o9SSYyNTU7aWYoKEom
MXwwKT09MCl7Sz1KPj4+MX1lbHNle0s9Y1trKzQ+PjJdfDB9aWYoKEt8MCk9PTApe0w9MH1lbHNl
e2lmKChJJjEpPT0wKXtNPUcrMXwwfWVsc2V7TT1jW2srOD4+Ml18MH1JPWFbTV18MDtMPUk8PDI0
Pj4yND09KGJfW2NbKGNbRT4+Ml18MCkrMjg+PjJdJjMxXShGLDQ1KXwwKTw8MjQ+PjI0fWskKHJ8
MCwwLDEyKTtrJCh0fDAsMCwxMik7ayQodnwwLDAsMTIpO2g1KGcsTCxtLG4sbyxwLHEscyx1LHcp
O0U9eHwwO0k9YVtIXXwwO0o9SSYyNTU7Tj0oSiYxfDApPT0wO2lmKE4pe089Sj4+PjF9ZWxzZXtP
PWNbays0Pj4yXXwwfVA9Y1t3Pj4yXXwwO2lmKChPfDApPihQfDApKXtpZihOKXtRPUo+Pj4xfWVs
c2V7UT1jW2srND4+Ml18MH1KPWRbdl18MDtpZigoSiYxfDApPT0wKXtSPUo+Pj4xfWVsc2V7Uj1j
W3UrND4+Ml18MH1KPWRbdF18MDtpZigoSiYxfDApPT0wKXtTPUo+Pj4xfWVsc2V7Uz1jW3MrND4+
Ml18MH1UPShRLVA8PDF8MSkrUitTfDB9ZWxzZXtKPWRbdl18MDtpZigoSiYxfDApPT0wKXtVPUo+
Pj4xfWVsc2V7VT1jW3UrND4+Ml18MH1KPWRbdF18MDtpZigoSiYxfDApPT0wKXtWPUo+Pj4xfWVs
c2V7Vj1jW3MrND4+Ml18MH1UPVUrMitWfDB9Sj1UK1B8MDtkb3tpZihKPj4+MD4xMDApe049a0oo
Sil8MDtpZigoTnwwKSE9MCl7Vz1OO1g9TjtZPUk7YnJlYWt9a1goKTtXPTA7WD0wO1k9YVtIXXww
fWVsc2V7Vz1FO1g9MDtZPUl9fXdoaWxlKDApO2lmKChZJjEpPT0wKXtaPUcrMXwwO189RysxfDB9
ZWxzZXtJPWNbays4Pj4yXXwwO1o9STtfPUl9ST1ZJjI1NTtpZigoSSYxfDApPT0wKXskPUk+Pj4x
fWVsc2V7JD1jW2srND4+Ml18MH1oNihXLHkseixjW2grND4+Ml18MCxfLForJHwwLEYsTCxuLGFb
b118MCxhW3BdfDAscSxzLHUsUCk7Y1tBPj4yXT1jW2Y+PjJdO2Y5KGIsQSxXLGNbeT4+Ml18MCxj
W3o+PjJdfDAsaCxqKTtpZigoWHwwKT09MCl7ZFAodSk7ZFAocyk7ZFAocSk7YWE9Y1tCPj4yXXww
O2FiPWFhfDA7YWM9ZHooYWIpfDA7aT1lO3JldHVybn1rSyhYKTtkUCh1KTtkUChzKTtkUChxKTth
YT1jW0I+PjJdfDA7YWI9YWF8MDthYz1keihhYil8MDtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJP
KDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBpYShiLGUsZixnLGosayxsKXti
PWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPStsO3ZhciBtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9
MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0w
LFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrNTc2fDA7bT1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWV8MDtuPWUrMTIwfDA7bz1lKzUyOHwwO3A9ZSs1
MzZ8MDtxPWUrNTQ0fDA7cj1lKzU1MnwwO3M9ZSs1NjB8MDt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3
Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eD13O3k9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3o9aTtpPWkrNDAwfDA7QT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RD1lKzE2fDA7Y1tuPj4yXT1EO0U9
ZSsxMjh8MDtGPWFaKER8MCwxMDAsMTM2MCwoRD1pLGk9aSs4fDAsaFtEPj4zXT1sLEQpfDApfDA7
aT1EO2Rve2lmKEY+Pj4wPjk5KXtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO0c9Z2gobixjWzI5
NThdfDAsMTM2MCwoRD1pLGk9aSs4fDAsaFtEPj4zXT1sLEQpfDApfDA7aT1EO0g9Y1tuPj4yXXww
O2lmKChIfDApPT0wKXtrWCgpO0k9Y1tuPj4yXXwwfWVsc2V7ST1IfUg9a0ooRzw8Mil8MDtKPUg7
aWYoKEh8MCkhPTApe0s9SjtMPUc7TT1JO049SjticmVha31rWCgpO0s9SjtMPUc7TT1JO049Sn1l
bHNle0s9RTtMPUY7TT0wO049MH19d2hpbGUoMCk7ZWoobyxqKTtGPW98MDtFPWNbRj4+Ml18MDtp
ZigoY1szOTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0w
O2RXKDE1Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO0k9Y1tFKzg+PjJdfDA7ZG97aWYoKGNb
RSsxMj4+Ml18MCktST4+Mj4+PjA+bT4+PjApe0Q9Y1tJKyhtPDwyKT4+Ml18MDtpZigoRHwwKT09
MCl7YnJlYWt9Sj1EO0c9Y1tuPj4yXXwwO0g9RytMfDA7Tz1jWyhjW0Q+PjJdfDApKzQ4Pj4yXXww
O2NhW08mMTVdKEosRyxILEspfDA7aWYoKEx8MCk9PTApe1A9MH1lbHNle1A9KGFbY1tuPj4yXXww
XXwwKT09NDV9ayQodHwwLDAsMTIpO2skKHZ8MCwwLDEyKTtrJCh4fDAsMCwxMik7aWIoZyxQLG8s
cCxxLHIscyx1LHcseSk7SD16fDA7Rz1jW3k+PjJdfDA7aWYoKEx8MCk+KEd8MCkpe089ZFt4XXww
O2lmKChPJjF8MCk9PTApe1E9Tz4+PjF9ZWxzZXtRPWNbdys0Pj4yXXwwfU89ZFt2XXwwO2lmKChP
JjF8MCk9PTApe1I9Tz4+PjF9ZWxzZXtSPWNbdSs0Pj4yXXwwfVM9KEwtRzw8MXwxKStRK1J8MH1l
bHNle089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1Q9Tz4+PjF9ZWxzZXtUPWNbdys0Pj4yXXwwfU89
ZFt2XXwwO2lmKChPJjF8MCk9PTApe1U9Tz4+PjF9ZWxzZXtVPWNbdSs0Pj4yXXwwfVM9VCsyK1V8
MH1PPVMrR3wwO2Rve2lmKE8+Pj4wPjEwMCl7RD1rSihPPDwyKXwwO1Y9RDtpZigoRHwwKSE9MCl7
Vz1WO1g9VjticmVha31rWCgpO1c9VjtYPVZ9ZWxzZXtXPUg7WD0wfX13aGlsZSgwKTtpYyhXLEEs
QixjW2orND4+Ml18MCxLLEsrKEw8PDIpfDAsSixQLHAsY1txPj4yXXwwLGNbcj4+Ml18MCxzLHUs
dyxHKTtjW0M+PjJdPWNbZj4+Ml07Z3EoYixDLFcsY1tBPj4yXXwwLGNbQj4+Ml18MCxqLGspO2lm
KChYfDApIT0wKXtrSyhYKX1lZSh3KTtlZSh1KTtkUChzKTtIPWNbRj4+Ml18MDtkeihIKXwwO2lm
KChOfDApIT0wKXtrSyhOKX1pZigoTXwwKT09MCl7aT1lO3JldHVybn1rSyhNKTtpPWU7cmV0dXJu
fX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBpYihi
LGQsZSxmLGcsaCxqLGssbCxtKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtq
PWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7bj1pO2k9aSs0MHww
O289bnwwO3A9bisxNnwwO3E9biszMnwwO3I9cTtzPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dD1z
O3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eD13
O3k9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PXk7QT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0I9
QTtEPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0c9
RjtIPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztJPUg7Sj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0s9
SjtMPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7TT1MO049aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztP
PU47UD1jW2U+PjJdfDA7aWYoYil7aWYoKGNbNDA0MF18MCkhPS0xKXtjW3A+PjJdPTE2MTYwO2Nb
cCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNjE2MCxwLDk2KX1wPShjWzQwNDFdfDApLTF8MDti
PWNbUCs4Pj4yXXwwO2lmKChjW1ArMTI+PjJdfDApLWI+PjI+Pj4wPD1wPj4+MCl7UT1iTyg0KXww
O1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQpfWU9Y1tiKyhwPDwyKT4+Ml18MDtpZigoZXwwKT09
MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQpfVE9ZTtSPWNbZT4+Ml18MDtp
ZihkKXtiWltjW1IrNDQ+PjJdJjEyN10ocixRKTtyPWY7Qz1jW3E+PjJdfDA7YVtyXT1DJjI1NTtD
PUM+Pjg7YVtyKzF8MF09QyYyNTU7Qz1DPj44O2FbcisyfDBdPUMmMjU1O0M9Qz4+ODthW3IrM3ww
XT1DJjI1NTtiWltjWyhjW2U+PjJdfDApKzMyPj4yXSYxMjddKHMsUSk7cj1sO2lmKChhW3JdJjEp
PT0wKXtjW2wrND4+Ml09MDthW3JdPTB9ZWxzZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09
MH1leihsLDApO2Nbcj4+Ml09Y1t0Pj4yXTtjW3IrND4+Ml09Y1t0KzQ+PjJdO2Nbcis4Pj4yXT1j
W3QrOD4+Ml07ayQodHwwLDAsMTIpO2VlKHMpfWVsc2V7YlpbY1tSKzQwPj4yXSYxMjddKHYsUSk7
dj1mO0M9Y1t1Pj4yXXwwO2Fbdl09QyYyNTU7Qz1DPj44O2FbdisxfDBdPUMmMjU1O0M9Qz4+ODth
W3YrMnwwXT1DJjI1NTtDPUM+Pjg7YVt2KzN8MF09QyYyNTU7YlpbY1soY1tlPj4yXXwwKSsyOD4+
Ml0mMTI3XSh3LFEpO3Y9bDtpZigoYVt2XSYxKT09MCl7Y1tsKzQ+PjJdPTA7YVt2XT0wfWVsc2V7
Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW3Y+PjJdPWNbeD4+Ml07Y1t2
KzQ+PjJdPWNbeCs0Pj4yXTtjW3YrOD4+Ml09Y1t4Kzg+PjJdO2skKHh8MCwwLDEyKTtlZSh3KX13
PWU7Y1tnPj4yXT1iMFtjWyhjW3c+PjJdfDApKzEyPj4yXSYxMjddKFEpfDA7Y1toPj4yXT1iMFtj
WyhjW3c+PjJdfDApKzE2Pj4yXSYxMjddKFEpfDA7YlpbY1soY1tlPj4yXXwwKSsyMD4+Ml0mMTI3
XSh5LFEpO3g9ajtpZigoYVt4XSYxKT09MCl7YVtqKzF8MF09MDthW3hdPTB9ZWxzZXthW2Nbais4
Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1t4Pj4yXT1jW3o+PjJdO2NbeCs0Pj4yXT1j
W3orND4+Ml07Y1t4Kzg+PjJdPWNbeis4Pj4yXTtrJCh6fDAsMCwxMik7ZFAoeSk7YlpbY1soY1tl
Pj4yXXwwKSsyND4+Ml0mMTI3XShBLFEpO2U9aztpZigoYVtlXSYxKT09MCl7Y1trKzQ+PjJdPTA7
YVtlXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJdPTB9ZXooaywwKTtjW2U+PjJd
PWNbQj4+Ml07Y1tlKzQ+PjJdPWNbQis0Pj4yXTtjW2UrOD4+Ml09Y1tCKzg+PjJdO2skKEJ8MCww
LDEyKTtlZShBKTtTPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10oUSl8MDtjW20+PjJdPVM7
aT1uO3JldHVybn1lbHNle2lmKChjWzQwNDJdfDApIT0tMSl7Y1tvPj4yXT0xNjE2ODtjW28rND4+
Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxNjgsbyw5Nil9bz0oY1s0MDQzXXwwKS0xfDA7UT1jW1Ar
OD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1RPj4yPj4+MDw9bz4+PjApe1Q9Yk8oNCl8MDtVPVQ7
a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1QPWNbUSsobzw8Mik+PjJdfDA7aWYoKFB8MCk9PTApe1Q9
Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1UPVA7VT1jW1A+PjJdfDA7aWYoZCl7
YlpbY1tVKzQ0Pj4yXSYxMjddKEUsVCk7RT1mO0M9Y1tEPj4yXXwwO2FbRV09QyYyNTU7Qz1DPj44
O2FbRSsxfDBdPUMmMjU1O0M9Qz4+ODthW0UrMnwwXT1DJjI1NTtDPUM+Pjg7YVtFKzN8MF09QyYy
NTU7YlpbY1soY1tQPj4yXXwwKSszMj4+Ml0mMTI3XShGLFQpO0U9bDtpZigoYVtFXSYxKT09MCl7
Y1tsKzQ+PjJdPTA7YVtFXT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoo
bCwwKTtjW0U+PjJdPWNbRz4+Ml07Y1tFKzQ+PjJdPWNbRys0Pj4yXTtjW0UrOD4+Ml09Y1tHKzg+
PjJdO2skKEd8MCwwLDEyKTtlZShGKX1lbHNle2JaW2NbVSs0MD4+Ml0mMTI3XShJLFQpO0k9ZjtD
PWNbSD4+Ml18MDthW0ldPUMmMjU1O0M9Qz4+ODthW0krMXwwXT1DJjI1NTtDPUM+Pjg7YVtJKzJ8
MF09QyYyNTU7Qz1DPj44O2FbSSszfDBdPUMmMjU1O2JaW2NbKGNbUD4+Ml18MCkrMjg+PjJdJjEy
N10oSixUKTtJPWw7aWYoKGFbSV0mMSk9PTApe2NbbCs0Pj4yXT0wO2FbSV09MH1lbHNle2NbY1ts
Kzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1tJPj4yXT1jW0s+PjJdO2NbSSs0Pj4y
XT1jW0srND4+Ml07Y1tJKzg+PjJdPWNbSys4Pj4yXTtrJChLfDAsMCwxMik7ZWUoSil9Sj1QO2Nb
Zz4+Ml09YjBbY1soY1tKPj4yXXwwKSsxMj4+Ml0mMTI3XShUKXwwO2NbaD4+Ml09YjBbY1soY1tK
Pj4yXXwwKSsxNj4+Ml0mMTI3XShUKXwwO2JaW2NbKGNbUD4+Ml18MCkrMjA+PjJdJjEyN10oTCxU
KTtoPWo7aWYoKGFbaF0mMSk9PTApe2FbaisxfDBdPTA7YVtoXT0wfWVsc2V7YVtjW2orOD4+Ml18
MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbaD4+Ml09Y1tNPj4yXTtjW2grND4+Ml09Y1tNKzQ+
PjJdO2NbaCs4Pj4yXT1jW00rOD4+Ml07ayQoTXwwLDAsMTIpO2RQKEwpO2JaW2NbKGNbUD4+Ml18
MCkrMjQ+PjJdJjEyN10oTixUKTtQPWs7aWYoKGFbUF0mMSk9PTApe2Nbays0Pj4yXT0wO2FbUF09
MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6KGssMCk7Y1tQPj4yXT1jW08+
PjJdO2NbUCs0Pj4yXT1jW08rND4+Ml07Y1tQKzg+PjJdPWNbTys4Pj4yXTtrJChPfDAsMCwxMik7
ZWUoTik7Uz1iMFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYxMjddKFQpfDA7Y1ttPj4yXT1TO2k9bjty
ZXR1cm59fWZ1bmN0aW9uIGljKGIsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18
MDtuPW58MDtvPW98MDtwPXB8MDtxPXF8MDt2YXIgcj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxf
PTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAs
YWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2
PTAsYXc9MDtjW2U+PjJdPWI7cj1pO3M9cDt0PXArNHwwO3U9cCs4fDA7cD1vO3Y9KGYmNTEyfDAp
PT0wO3c9bys0fDA7eD1vKzh8MDtvPWk7eT0ocXwwKT4wO3o9bjtBPW4rMXwwO0I9bis4fDA7Qz1u
KzR8MDtuPWc7Zz0wO3doaWxlKDEpe0wxOTAxOmRve3N3aXRjaChhW2srZ3wwXXwwKXtjYXNlIDA6
e2NbZD4+Ml09Y1tlPj4yXTtEPW47YnJlYWt9O2Nhc2UgMTp7Y1tkPj4yXT1jW2U+PjJdO0U9Yl9b
Y1soY1tyPj4yXXwwKSs0ND4+Ml0mMzFdKGksMzIpfDA7Rj1jW2U+PjJdfDA7Y1tlPj4yXT1GKzQ7
Y1tGPj4yXT1FO0Q9bjticmVha307Y2FzZSAzOntFPWFbc118MDtGPUUmMjU1O2lmKChGJjF8MCk9
PTApe0c9Rj4+PjF9ZWxzZXtHPWNbdD4+Ml18MH1pZigoR3wwKT09MCl7RD1uO2JyZWFrIEwxOTAx
fWlmKChFJjEpPT0wKXtIPXR9ZWxzZXtIPWNbdT4+Ml18MH1FPWNbSD4+Ml18MDtGPWNbZT4+Ml18
MDtjW2U+PjJdPUYrNDtjW0Y+PjJdPUU7RD1uO2JyZWFrfTtjYXNlIDI6e0U9YVtwXXwwO0Y9RSYy
NTU7ST0oRiYxfDApPT0wO2lmKEkpe0o9Rj4+PjF9ZWxzZXtKPWNbdz4+Ml18MH1pZigoSnwwKT09
MHx2KXtEPW47YnJlYWsgTDE5MDF9aWYoKEUmMSk9PTApe0s9dztMPXc7TT13fWVsc2V7RT1jW3g+
PjJdfDA7Sz1FO0w9RTtNPUV9aWYoSSl7Tj1GPj4+MX1lbHNle049Y1t3Pj4yXXwwfUY9SysoTjw8
Mil8MDtJPWNbZT4+Ml18MDtpZigoTHwwKT09KEZ8MCkpe089SX1lbHNle0U9KEsrKE4tMTw8Mikr
KC1NfDApfDApPj4+MjtQPUw7UT1JO3doaWxlKDEpe2NbUT4+Ml09Y1tQPj4yXTtSPVArNHwwO2lm
KChSfDApPT0oRnwwKSl7YnJlYWt9UD1SO1E9USs0fDB9Tz1JKyhFKzE8PDIpfDB9Y1tlPj4yXT1P
O0Q9bjticmVha307Y2FzZSA0OntRPWNbZT4+Ml18MDtQPWo/bis0fDA6bjtGPVA7d2hpbGUoMSl7
aWYoRj4+PjA+PWg+Pj4wKXticmVha31pZihiMVtjWyhjW28+PjJdfDApKzEyPj4yXSY2M10oaSwy
MDQ4LGNbRj4+Ml18MCl8MCl7Rj1GKzR8MH1lbHNle2JyZWFrfX1pZih5KXtpZihGPj4+MD5QPj4+
MCl7RT1GO0k9cTtkb3tFPUUtNHwwO1I9Y1tFPj4yXXwwO1M9Y1tlPj4yXXwwO2NbZT4+Ml09Uys0
O2NbUz4+Ml09UjtJPUktMXwwO1Q9KEl8MCk+MDt9d2hpbGUoRT4+PjA+UD4+PjAmVCk7aWYoVCl7
VT1JO1Y9RTtXPTE2MzB9ZWxzZXtYPTA7WT1JO1o9RX19ZWxzZXtVPXE7Vj1GO1c9MTYzMH1pZigo
V3wwKT09MTYzMCl7Vz0wO1g9Yl9bY1soY1tyPj4yXXwwKSs0ND4+Ml0mMzFdKGksNDgpfDA7WT1V
O1o9Vn1SPWNbZT4+Ml18MDtjW2U+PjJdPVIrNDtpZigoWXwwKT4wKXtTPVk7Xz1SO3doaWxlKDEp
e2NbXz4+Ml09WDskPVMtMXwwO2FhPWNbZT4+Ml18MDtjW2U+PjJdPWFhKzQ7aWYoKCR8MCk+MCl7
Uz0kO189YWF9ZWxzZXthYj1hYTticmVha319fWVsc2V7YWI9Un1jW2FiPj4yXT1sO2FjPVp9ZWxz
ZXthYz1GfWlmKChhY3wwKT09KFB8MCkpe189Yl9bY1soY1tyPj4yXXwwKSs0ND4+Ml0mMzFdKGks
NDgpfDA7Uz1jW2U+PjJdfDA7Y1tlPj4yXT1TKzQ7Y1tTPj4yXT1ffWVsc2V7Xz1hW3pdfDA7Uz1f
JjI1NTtpZigoUyYxfDApPT0wKXthZD1TPj4+MX1lbHNle2FkPWNbQz4+Ml18MH1pZigoYWR8MCk9
PTApe2FlPWFjO2FmPTA7YWc9MDthaD0tMX1lbHNle2lmKChfJjEpPT0wKXthaT1BfWVsc2V7YWk9
Y1tCPj4yXXwwfWFlPWFjO2FmPTA7YWc9MDthaD1hW2FpXXwwfXdoaWxlKDEpe2Rve2lmKChhZnww
KT09KGFofDApKXtfPWNbZT4+Ml18MDtjW2U+PjJdPV8rNDtjW18+PjJdPW07Xz1hZysxfDA7Uz1h
W3pdfDA7RT1TJjI1NTtpZigoRSYxfDApPT0wKXthaj1FPj4+MX1lbHNle2FqPWNbQz4+Ml18MH1p
ZihfPj4+MD49YWo+Pj4wKXthaz1haDthbD1fO2FtPTA7YnJlYWt9RT0oUyYxKT09MDtpZihFKXth
bj1BfWVsc2V7YW49Y1tCPj4yXXwwfWlmKChhW2FuK198MF18MCk9PTEyNyl7YWs9LTE7YWw9Xzth
bT0wO2JyZWFrfWlmKEUpe2FvPUF9ZWxzZXthbz1jW0I+PjJdfDB9YWs9YVthbytffDBdfDA7YWw9
XzthbT0wfWVsc2V7YWs9YWg7YWw9YWc7YW09YWZ9fXdoaWxlKDApO189YWUtNHwwO0U9Y1tfPj4y
XXwwO1M9Y1tlPj4yXXwwO2NbZT4+Ml09Uys0O2NbUz4+Ml09RTtpZigoX3wwKT09KFB8MCkpe2Jy
ZWFrfWVsc2V7YWU9XzthZj1hbSsxfDA7YWc9YWw7YWg9YWt9fX1GPWNbZT4+Ml18MDtpZigoUXww
KT09KEZ8MCkpe0Q9UDticmVhayBMMTkwMX1SPUYtNHwwO2lmKFE+Pj4wPFI+Pj4wKXthcD1RO2Fx
PVJ9ZWxzZXtEPVA7YnJlYWsgTDE5MDF9d2hpbGUoMSl7Uj1jW2FwPj4yXXwwO2NbYXA+PjJdPWNb
YXE+PjJdO2NbYXE+PjJdPVI7Uj1hcCs0fDA7Rj1hcS00fDA7aWYoUj4+PjA8Rj4+PjApe2FwPVI7
YXE9Rn1lbHNle0Q9UDticmVha319YnJlYWt9O2RlZmF1bHQ6e0Q9bn19fXdoaWxlKDApO1A9Zysx
fDA7aWYoUD4+PjA8NCl7bj1EO2c9UH1lbHNle2JyZWFrfX1nPWFbc118MDtzPWcmMjU1O0Q9KHMm
MXwwKT09MDtpZihEKXthcj1zPj4+MX1lbHNle2FyPWNbdD4+Ml18MH1pZihhcj4+PjA+MSl7aWYo
KGcmMSk9PTApe2FzPXQ7YXQ9dDthdT10fWVsc2V7Zz1jW3U+PjJdfDA7YXM9ZzthdD1nO2F1PWd9
aWYoRCl7YXY9cz4+PjF9ZWxzZXthdj1jW3Q+PjJdfDB9dD1hcysoYXY8PDIpfDA7cz1jW2U+PjJd
fDA7RD1hdCs0fDA7aWYoKER8MCk9PSh0fDApKXthdz1zfWVsc2V7YXQ9KChhcysoYXYtMjw8Mikr
KC1hdXwwKXwwKT4+PjIpKzF8MDthdT1zO2F2PUQ7d2hpbGUoMSl7Y1thdT4+Ml09Y1thdj4+Ml07
RD1hdis0fDA7aWYoKER8MCk9PSh0fDApKXticmVha31lbHNle2F1PWF1KzR8MDthdj1EfX1hdz1z
KyhhdDw8Mil8MH1jW2U+PjJdPWF3fXN3aXRjaChmJjE3NnwwKXtjYXNlIDMyOntjW2Q+PjJdPWNb
ZT4+Ml07cmV0dXJufTtjYXNlIDE2OntyZXR1cm59O2RlZmF1bHQ6e2NbZD4+Ml09YjtyZXR1cm59
fX1mdW5jdGlvbiBpZChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpZShh
KXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBpZyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1l
fDA7dmFyIGY9MDtpZigoYVtkXSYxKT09MCl7Zj1kKzF8MH1lbHNle2Y9Y1tkKzg+PjJdfDB9ZD1h
OChmfDAsMjAwKXwwO3JldHVybiBkPj4+KCgoZHwwKSE9LTF8MCk+Pj4wKXwwfWZ1bmN0aW9uIGlo
KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3ww
O3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxN
PTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89
MCwkPTAsYWE9MCxhYj0wLGFjPTA7ZT1pO2k9aSs2NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2fDA7bj1lKzI0fDA7bz1lKzMyfDA7cD1l
KzQwfDA7cT1lKzQ4fDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt0PXM7dT1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt4PWk7aT1pKzQwMHww
O3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2VqKG0saCk7Qj1tfDA7Qz1jW0I+PjJdfDA7aWYoKGNbMzkyMl18MCkh
PS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2
KX1sPShjWzM5MjNdfDApLTF8MDtEPWNbQys4Pj4yXXwwO2Rve2lmKChjW0MrMTI+PjJdfDApLUQ+
PjI+Pj4wPmw+Pj4wKXtFPWNbRCsobDw8Mik+PjJdfDA7aWYoKEV8MCk9PTApe2JyZWFrfUY9RTtH
PWs7SD1hW0ddfDA7ST1IJjI1NTtpZigoSSYxfDApPT0wKXtKPUk+Pj4xfWVsc2V7Sj1jW2srND4+
Ml18MH1pZigoSnwwKT09MCl7Sz0wfWVsc2V7aWYoKEgmMSk9PTApe0w9ays0fDB9ZWxzZXtMPWNb
ays4Pj4yXXwwfUg9Y1tMPj4yXXwwO0s9KEh8MCk9PShiX1tjWyhjW0U+PjJdfDApKzQ0Pj4yXSYz
MV0oRiw0NSl8MCl9ayQocnwwLDAsMTIpO2skKHR8MCwwLDEyKTtrJCh2fDAsMCwxMik7aWIoZyxL
LG0sbixvLHAscSxzLHUsdyk7RT14fDA7SD1hW0ddfDA7ST1IJjI1NTtNPShJJjF8MCk9PTA7aWYo
TSl7Tj1JPj4+MX1lbHNle049Y1trKzQ+PjJdfDB9Tz1jW3c+PjJdfDA7aWYoKE58MCk+KE98MCkp
e2lmKE0pe1A9ST4+PjF9ZWxzZXtQPWNbays0Pj4yXXwwfUk9ZFt2XXwwO2lmKChJJjF8MCk9PTAp
e1E9ST4+PjF9ZWxzZXtRPWNbdSs0Pj4yXXwwfUk9ZFt0XXwwO2lmKChJJjF8MCk9PTApe1I9ST4+
PjF9ZWxzZXtSPWNbcys0Pj4yXXwwfVM9KFAtTzw8MXwxKStRK1J8MH1lbHNle0k9ZFt2XXwwO2lm
KChJJjF8MCk9PTApe1Q9ST4+PjF9ZWxzZXtUPWNbdSs0Pj4yXXwwfUk9ZFt0XXwwO2lmKChJJjF8
MCk9PTApe1U9ST4+PjF9ZWxzZXtVPWNbcys0Pj4yXXwwfVM9VCsyK1V8MH1JPVMrT3wwO2Rve2lm
KEk+Pj4wPjEwMCl7TT1rSihJPDwyKXwwO1Y9TTtpZigoTXwwKSE9MCl7Vz1WO1g9VjtZPUg7YnJl
YWt9a1goKTtXPVY7WD1WO1k9YVtHXXwwfWVsc2V7Vz1FO1g9MDtZPUh9fXdoaWxlKDApO2lmKChZ
JjEpPT0wKXtaPWsrNHwwO189ays0fDB9ZWxzZXtIPWNbays4Pj4yXXwwO1o9SDtfPUh9SD1ZJjI1
NTtpZigoSCYxfDApPT0wKXskPUg+Pj4xfWVsc2V7JD1jW2srND4+Ml18MH1pYyhXLHkseixjW2gr
ND4+Ml18MCxfLForKCQ8PDIpfDAsRixLLG4sY1tvPj4yXXwwLGNbcD4+Ml18MCxxLHMsdSxPKTtj
W0E+PjJdPWNbZj4+Ml07Z3EoYixBLFcsY1t5Pj4yXXwwLGNbej4+Ml18MCxoLGopO2lmKChYfDAp
PT0wKXtlZSh1KTtlZShzKTtkUChxKTthYT1jW0I+PjJdfDA7YWI9YWF8MDthYz1keihhYil8MDtp
PWU7cmV0dXJufWtLKFgpO2VlKHUpO2VlKHMpO2RQKHEpO2FhPWNbQj4+Ml18MDthYj1hYXwwO2Fj
PWR6KGFiKXwwO2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtrcShlKTtibChlfDAsODE3
NiwxMzQpfWZ1bmN0aW9uIGlpKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wO2Q9aTtpPWkrMTZ8MDtqPWR8MDtrPWo7ayQoa3wwLDAsMTIpO2w9YjttPWg7bj1h
W2hdfDA7aWYoKG4mMSk9PTApe289bSsxfDA7cD1tKzF8MH1lbHNle209Y1toKzg+PjJdfDA7bz1t
O3A9bX1tPW4mMjU1O2lmKChtJjF8MCk9PTApe3E9bT4+PjF9ZWxzZXtxPWNbaCs0Pj4yXXwwfWg9
bytxfDA7ZG97aWYocD4+PjA8aD4+PjApe3E9cDtkb3tkVShqLGFbcV18MCk7cT1xKzF8MDt9d2hp
bGUocT4+PjA8aD4+PjApO3E9KGV8MCk9PS0xPy0xOmU8PDE7aWYoKGFba10mMSk9PTApe3I9cTtz
PTE3NjI7YnJlYWt9dD1jW2orOD4+Ml18MDt1PXF9ZWxzZXtyPShlfDApPT0tMT8tMTplPDwxO3M9
MTc2Mn19d2hpbGUoMCk7aWYoKHN8MCk9PTE3NjIpe3Q9aisxfDA7dT1yfXI9Yk0odXwwLGZ8MCxn
fDAsdHwwKXwwO2skKGx8MCwwLDEyKTtsPWswKHJ8MCl8MDt0PXIrbHwwO2lmKChsfDApPjApe3Y9
cn1lbHNle2RQKGopO2k9ZDtyZXR1cm59ZG97ZFUoYixhW3ZdfDApO3Y9disxfDA7fXdoaWxlKHY+
Pj4wPHQ+Pj4wKTtkUChqKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGlqKGEsYil7YT1hfDA7Yj1ifDA7
YTEoKChifDApPT0tMT8tMTpiPDwxKXwwKXwwO3JldHVybn1mdW5jdGlvbiBpayhhKXthPWF8MDtk
ZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpbChhKXthPWF8MDtkZShhfDApO3JldHVybn1m
dW5jdGlvbiBpbShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MDtpZigoYVtkXSYxKT09
MCl7Zj1kKzF8MH1lbHNle2Y9Y1tkKzg+PjJdfDB9ZD1hOChmfDAsMjAwKXwwO3JldHVybiBkPj4+
KCgoZHwwKSE9LTF8MCk+Pj4wKXwwfWZ1bmN0aW9uIGlvKGEsYil7YT1hfDA7Yj1ifDA7YTEoKChi
fDApPT0tMT8tMTpiPDwxKXwwKXwwO3JldHVybn1mdW5jdGlvbiBpcChiLGQsZSxmLGcsaCl7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2Q9aTtpPWkrMjI0fDA7aj1kfDA7az1kKzh8
MDtsPWQrNDB8MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8MDtwPWQrMTkyfDA7cT1kKzIwMHww
O3I9ZCsyMDh8MDtzPXI7dD1pO2k9aSs4fDA7dT1pO2k9aSs4fDA7ayQoc3wwLDAsMTIpO3Y9Yjt3
PXR8MDtjW3QrND4+Ml09MDtjW3Q+PjJdPTQxMDQ7eD1hW2hdfDA7aWYoKHgmMSk9PTApe3k9aCs0
fDA7ej1oKzR8MH1lbHNle0E9Y1toKzg+PjJdfDA7eT1BO3o9QX1BPXgmMjU1O2lmKChBJjF8MCk9
PTApe0I9QT4+PjF9ZWxzZXtCPWNbaCs0Pj4yXXwwfWg9eSsoQjw8Mil8MDtMMjEzNTpkb3tpZih6
Pj4+MDxoPj4+MCl7Qj10O3k9a3wwO0E9ayszMnwwO3g9ejtDPTQxMDQ7d2hpbGUoMSl7Y1ttPj4y
XT14O0Q9KGI2W2NbQysxMj4+Ml0mMzFdKHcsaix4LGgsbSx5LEEsbCl8MCk9PTI7RT1jW20+PjJd
fDA7aWYoRHwoRXwwKT09KHh8MCkpe2JyZWFrfWlmKHk+Pj4wPChjW2w+PjJdfDApPj4+MCl7RD15
O2Rve2RVKHIsYVtEXXwwKTtEPUQrMXwwO313aGlsZShEPj4+MDwoY1tsPj4yXXwwKT4+PjApO0Y9
Y1ttPj4yXXwwfWVsc2V7Rj1FfWlmKEY+Pj4wPj1oPj4+MCl7YnJlYWsgTDIxMzV9eD1GO0M9Y1tC
Pj4yXXwwfUI9Yk8oOCl8MDtkRShCLDkwNCk7YmwoQnwwLDgxOTIsMjIpfX13aGlsZSgwKTtkZSh0
fDApO2lmKChhW3NdJjEpPT0wKXtHPXIrMXwwfWVsc2V7Rz1jW3IrOD4+Ml18MH1zPWJNKCgoZXww
KT09LTE/LTE6ZTw8MSl8MCxmfDAsZ3wwLEd8MCl8MDtrJCh2fDAsMCwxMik7dj11fDA7Y1t1KzQ+
PjJdPTA7Y1t1Pj4yXT00MDQ4O0c9azAoc3wwKXwwO2c9cytHfDA7aWYoKEd8MCk8MSl7SD11fDA7
ZGUoSCk7ZFAocik7aT1kO3JldHVybn1HPXU7Zj1nO2U9b3wwO3Q9bysxMjh8MDtvPXM7cz00MDQ4
O3doaWxlKDEpe2NbcT4+Ml09bztGPShiNltjW3MrMTY+PjJdJjMxXSh2LG4sbywoZi1vfDApPjMy
P28rMzJ8MDpnLHEsZSx0LHApfDApPT0yO2g9Y1txPj4yXXwwO2lmKEZ8KGh8MCk9PShvfDApKXti
cmVha31pZihlPj4+MDwoY1twPj4yXXwwKT4+PjApe0Y9ZTtkb3tlaChiLGNbRj4+Ml18MCk7Rj1G
KzR8MDt9d2hpbGUoRj4+PjA8KGNbcD4+Ml18MCk+Pj4wKTtJPWNbcT4+Ml18MH1lbHNle0k9aH1p
ZihJPj4+MD49Zz4+PjApe0o9MTgyOTticmVha31vPUk7cz1jW0c+PjJdfDB9aWYoKEp8MCk9PTE4
Mjkpe0g9dXwwO2RlKEgpO2RQKHIpO2k9ZDtyZXR1cm59ZD1iTyg4KXwwO2RFKGQsOTA0KTtibChk
fDAsODE5MiwyMil9ZnVuY3Rpb24gaXEoYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wO2NbYj4+Ml09
MzU2ODtkPWIrOHwwO2U9Y1tkPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGV8
MCk9PShjWzI5NThdfDApKXtmPWJ8MDtkZShmKTtyZXR1cm59YTcoY1tkPj4yXXwwKTtmPWJ8MDtk
ZShmKTtyZXR1cm59ZnVuY3Rpb24gaXIoYSl7YT1hfDA7YT1iTyg4KXwwO2RBKGEsMTM1Mik7Y1th
Pj4yXT0yNTA0O2JsKGF8MCw4MjA4LDMyKX1mdW5jdGlvbiBpcyhiLGQpe2I9YnwwO2Q9ZHwwO3Zh
ciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTAsSz0wLEw9MCxNPTA7ZT1pO2k9aSs0NDh8MDtmPWV8MDtnPWUrMTZ8MDtoPWUr
MzJ8MDtqPWUrNDh8MDtrPWUrNjR8MDtsPWUrODB8MDttPWUrOTZ8MDtuPWUrMTEyfDA7bz1lKzEy
OHwwO3A9ZSsxNDR8MDtxPWUrMTYwfDA7cj1lKzE3NnwwO3M9ZSsxOTJ8MDt0PWUrMjA4fDA7dT1l
KzIyNHwwO3Y9ZSsyNDB8MDt3PWUrMjU2fDA7eD1lKzI3MnwwO3k9ZSsyODh8MDt6PWUrMzA0fDA7
QT1lKzMyMHwwO0I9ZSszMzZ8MDtDPWUrMzUyfDA7RD1lKzM2OHwwO0U9ZSszODR8MDtGPWUrNDAw
fDA7Rz1lKzQxNnwwO0g9ZSs0MzJ8MDtjW2IrND4+Ml09ZC0xO2NbYj4+Ml09MzgyNDtkPWIrOHww
O0k9YisxMnwwO2FbYisxMzZ8MF09MTtKPWIrMjR8MDtLPUo7Y1tJPj4yXT1LO2NbZD4+Ml09Sztj
W2IrMTY+PjJdPUorMTEyO0o9Mjg7TD1LO2Rve2lmKChMfDApPT0wKXtNPTB9ZWxzZXtjW0w+PjJd
PTA7TT1jW0k+PjJdfDB9TD1NKzR8MDtjW0k+PjJdPUw7Sj1KLTF8MDt9d2hpbGUoKEp8MCkhPTAp
O2RaKGIrMTQ0fDAsMTM0NCwxKTtKPWNbZD4+Ml18MDtkPWNbST4+Ml18MDtpZigoSnwwKSE9KGR8
MCkpe2NbST4+Ml09ZCsofigoZC00KygtSnwwKXwwKT4+PjIpPDwyKX1jWzM2MTddPTA7Y1szNjE2
XT0zNTI4O2lmKChjWzM4NDRdfDApIT0tMSl7Y1tIPj4yXT0xNTM3NjtjW0grND4+Ml09MTI7Y1tI
Kzg+PjJdPTA7ZFcoMTUzNzYsSCw5Nil9aUooYiwxNDQ2NCwoY1szODQ1XXwwKS0xfDApO2NbMzYx
NV09MDtjWzM2MTRdPTM0ODg7aWYoKGNbMzg0Ml18MCkhPS0xKXtjW0c+PjJdPTE1MzY4O2NbRys0
Pj4yXT0xMjtjW0crOD4+Ml09MDtkVygxNTM2OCxHLDk2KX1pSihiLDE0NDU2LChjWzM4NDNdfDAp
LTF8MCk7Y1szNjY3XT0wO2NbMzY2Nl09MzkzNjtjWzM2NjhdPTA7YVsxNDY3Nl09MDtjWzM2Njhd
PWNbKGE2KCl8MCk+PjJdO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tGPj4yXT0xNTY5NjtjW0YrND4+
Ml09MTI7Y1tGKzg+PjJdPTA7ZFcoMTU2OTYsRiw5Nil9aUooYiwxNDY2NCwoY1szOTI1XXwwKS0x
fDApO2NbMzY2NV09MDtjWzM2NjRdPTM4NTY7aWYoKGNbMzkyMl18MCkhPS0xKXtjW0U+PjJdPTE1
Njg4O2NbRSs0Pj4yXT0xMjtjW0UrOD4+Ml09MDtkVygxNTY4OCxFLDk2KX1pSihiLDE0NjU2LChj
WzM5MjNdfDApLTF8MCk7Y1szNjE5XT0wO2NbMzYxOF09MzYyNDtpZigoY1szODQ4XXwwKSE9LTEp
e2NbRD4+Ml09MTUzOTI7Y1tEKzQ+PjJdPTEyO2NbRCs4Pj4yXT0wO2RXKDE1MzkyLEQsOTYpfWlK
KGIsMTQ0NzIsKGNbMzg0OV18MCktMXwwKTtjWzUyMV09MDtjWzUyMF09MzU2ODtkb3tpZigoYVsx
NjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0
LDApfDB9fXdoaWxlKDApO2NbNTIyXT1jWzI5NThdO2lmKChjWzM4NDZdfDApIT0tMSl7Y1tDPj4y
XT0xNTM4NDtjW0MrND4+Ml09MTI7Y1tDKzg+PjJdPTA7ZFcoMTUzODQsQyw5Nil9aUooYiwyMDgw
LChjWzM4NDddfDApLTF8MCk7Y1szNjIxXT0wO2NbMzYyMF09MzY4MDtpZigoY1szODUwXXwwKSE9
LTEpe2NbQj4+Ml09MTU0MDA7Y1tCKzQ+PjJdPTEyO2NbQis4Pj4yXT0wO2RXKDE1NDAwLEIsOTYp
fWlKKGIsMTQ0ODAsKGNbMzg1MV18MCktMXwwKTtjWzM2MjNdPTA7Y1szNjIyXT0zNzM2O2lmKChj
WzM4NTJdfDApIT0tMSl7Y1tBPj4yXT0xNTQwODtjW0ErND4+Ml09MTI7Y1tBKzg+PjJdPTA7ZFco
MTU0MDgsQSw5Nil9aUooYiwxNDQ4OCwoY1szODUzXXwwKS0xfDApO2NbMzU5N109MDtjWzM1OTZd
PTMwMzI7YVsxNDM5Ml09NDY7YVsxNDM5M109NDQ7ayQoMTQzOTYsMCwxMik7aWYoKGNbMzgyOF18
MCkhPS0xKXtjW3o+PjJdPTE1MzEyO2Nbeis0Pj4yXT0xMjtjW3orOD4+Ml09MDtkVygxNTMxMix6
LDk2KX1pSihiLDE0Mzg0LChjWzM4MjldfDApLTF8MCk7Y1s1MTNdPTA7Y1s1MTJdPTI5ODQ7Y1s1
MTRdPTQ2O2NbNTE1XT00NDtrJCgyMDY0LDAsMTIpO2lmKChjWzM4MjZdfDApIT0tMSl7Y1t5Pj4y
XT0xNTMwNDtjW3krND4+Ml09MTI7Y1t5Kzg+PjJdPTA7ZFcoMTUzMDQseSw5Nil9aUooYiwyMDQ4
LChjWzM4MjddfDApLTF8MCk7Y1szNjEzXT0wO2NbMzYxMl09MzQxNjtpZigoY1szODQwXXwwKSE9
LTEpe2NbeD4+Ml09MTUzNjA7Y1t4KzQ+PjJdPTEyO2NbeCs4Pj4yXT0wO2RXKDE1MzYwLHgsOTYp
fWlKKGIsMTQ0NDgsKGNbMzg0MV18MCktMXwwKTtjWzM2MTFdPTA7Y1szNjEwXT0zMzQ0O2lmKChj
WzM4MzhdfDApIT0tMSl7Y1t3Pj4yXT0xNTM1MjtjW3crND4+Ml09MTI7Y1t3Kzg+PjJdPTA7ZFco
MTUzNTIsdyw5Nil9aUooYiwxNDQ0MCwoY1szODM5XXwwKS0xfDApO2NbMzYwOV09MDtjWzM2MDhd
PTMyODA7aWYoKGNbMzgzNl18MCkhPS0xKXtjW3Y+PjJdPTE1MzQ0O2Nbdis0Pj4yXT0xMjtjW3Yr
OD4+Ml09MDtkVygxNTM0NCx2LDk2KX1pSihiLDE0NDMyLChjWzM4MzddfDApLTF8MCk7Y1szNjA3
XT0wO2NbMzYwNl09MzIxNjtpZigoY1szODM0XXwwKSE9LTEpe2NbdT4+Ml09MTUzMzY7Y1t1KzQ+
PjJdPTEyO2NbdSs4Pj4yXT0wO2RXKDE1MzM2LHUsOTYpfWlKKGIsMTQ0MjQsKGNbMzgzNV18MCkt
MXwwKTtjWzM2NzddPTA7Y1szNjc2XT00OTEyO2lmKChjWzQwNDZdfDApIT0tMSl7Y1t0Pj4yXT0x
NjE4NDtjW3QrND4+Ml09MTI7Y1t0Kzg+PjJdPTA7ZFcoMTYxODQsdCw5Nil9aUooYiwxNDcwNCwo
Y1s0MDQ3XXwwKS0xfDApO2NbMzY3NV09MDtjWzM2NzRdPTQ4NDg7aWYoKGNbNDA0NF18MCkhPS0x
KXtjW3M+PjJdPTE2MTc2O2Nbcys0Pj4yXT0xMjtjW3MrOD4+Ml09MDtkVygxNjE3NixzLDk2KX1p
SihiLDE0Njk2LChjWzQwNDVdfDApLTF8MCk7Y1szNjczXT0wO2NbMzY3Ml09NDc4NDtpZigoY1s0
MDQyXXwwKSE9LTEpe2Nbcj4+Ml09MTYxNjg7Y1tyKzQ+PjJdPTEyO2Nbcis4Pj4yXT0wO2RXKDE2
MTY4LHIsOTYpfWlKKGIsMTQ2ODgsKGNbNDA0M118MCktMXwwKTtjWzM2NzFdPTA7Y1szNjcwXT00
NzIwO2lmKChjWzQwNDBdfDApIT0tMSl7Y1txPj4yXT0xNjE2MDtjW3ErND4+Ml09MTI7Y1txKzg+
PjJdPTA7ZFcoMTYxNjAscSw5Nil9aUooYiwxNDY4MCwoY1s0MDQxXXwwKS0xfDApO2NbMzU5NV09
MDtjWzM1OTRdPTI2ODg7aWYoKGNbMzgxNl18MCkhPS0xKXtjW3A+PjJdPTE1MjY0O2NbcCs0Pj4y
XT0xMjtjW3ArOD4+Ml09MDtkVygxNTI2NCxwLDk2KX1pSihiLDE0Mzc2LChjWzM4MTddfDApLTF8
MCk7Y1szNTkzXT0wO2NbMzU5Ml09MjY0ODtpZigoY1szODE0XXwwKSE9LTEpe2Nbbz4+Ml09MTUy
NTY7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE1MjU2LG8sOTYpfWlKKGIsMTQzNjgsKGNb
MzgxNV18MCktMXwwKTtjWzM1OTFdPTA7Y1szNTkwXT0yNjA4O2lmKChjWzM4MTJdfDApIT0tMSl7
Y1tuPj4yXT0xNTI0ODtjW24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7ZFcoMTUyNDgsbiw5Nil9aUoo
YiwxNDM2MCwoY1szODEzXXwwKS0xfDApO2NbMzU4OV09MDtjWzM1ODhdPTI1Njg7aWYoKGNbMzgx
MF18MCkhPS0xKXtjW20+PjJdPTE1MjQwO2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTI0
MCxtLDk2KX1pSihiLDE0MzUyLChjWzM4MTFdfDApLTF8MCk7Y1s1MDldPTA7Y1s1MDhdPTI4ODg7
Y1s1MTBdPTI5MzY7aWYoKGNbMzgyNF18MCkhPS0xKXtjW2w+PjJdPTE1Mjk2O2NbbCs0Pj4yXT0x
MjtjW2wrOD4+Ml09MDtkVygxNTI5NixsLDk2KX1pSihiLDIwMzIsKGNbMzgyNV18MCktMXwwKTtj
WzUwNV09MDtjWzUwNF09Mjc5MjtjWzUwNl09Mjg0MDtpZigoY1szODIyXXwwKSE9LTEpe2Nbaz4+
Ml09MTUyODg7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1Mjg4LGssOTYpfWlKKGIsMjAx
NiwoY1szODIzXXwwKS0xfDApO2NbNTAxXT0wO2NbNTAwXT0zNzkyO2Rve2lmKChhWzE2MjY0XXww
KT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19
d2hpbGUoMCk7Y1s1MDJdPWNbMjk1OF07Y1s1MDBdPTI3NjA7aWYoKGNbMzgyMF18MCkhPS0xKXtj
W2o+PjJdPTE1MjgwO2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTI4MCxqLDk2KX1pSihi
LDJlMywoY1szODIxXXwwKS0xfDApO2NbNDk3XT0wO2NbNDk2XT0zNzkyO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7Y1s0OThdPWNbMjk1OF07Y1s0OTZdPTI3Mjg7aWYoKGNbMzgxOF18MCkhPS0x
KXtjW2g+PjJdPTE1MjcyO2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTI3MixoLDk2KX1p
SihiLDE5ODQsKGNbMzgxOV18MCktMXwwKTtjWzM2MDVdPTA7Y1szNjA0XT0zMTIwO2lmKChjWzM4
MzJdfDApIT0tMSl7Y1tnPj4yXT0xNTMyODtjW2crND4+Ml09MTI7Y1tnKzg+PjJdPTA7ZFcoMTUz
MjgsZyw5Nil9aUooYiwxNDQxNiwoY1szODMzXXwwKS0xfDApO2NbMzYwM109MDtjWzM2MDJdPTMw
ODA7aWYoKGNbMzgzMF18MCkhPS0xKXtjW2Y+PjJdPTE1MzIwO2NbZis0Pj4yXT0xMjtjW2YrOD4+
Ml09MDtkVygxNTMyMCxmLDk2KX1pSihiLDE0NDA4LChjWzM4MzFdfDApLTF8MCk7aT1lO3JldHVy
bn1mdW5jdGlvbiBpdChhLGIpe2E9YXwwO2I9YnwwO3JldHVybiBifDB9ZnVuY3Rpb24gaXUoYSxi
LGQsZSxmLGcsaCxpKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtp
PWl8MDtjW2Y+PjJdPWQ7Y1tpPj4yXT1nO3JldHVybiAzfWZ1bmN0aW9uIGl2KGEsYixkLGUsZixn
LGgsaSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7Y1tm
Pj4yXT1kO2NbaT4+Ml09ZztyZXR1cm4gM31mdW5jdGlvbiBpdyhhLGIsZCxlLGYpe2E9YXwwO2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2NbZj4+Ml09ZDtyZXR1cm4gM31mdW5jdGlvbiBpeChhKXth
PWF8MDtyZXR1cm4gMX1mdW5jdGlvbiBpeShhKXthPWF8MDtyZXR1cm4gMX1mdW5jdGlvbiBpeihh
KXthPWF8MDtyZXR1cm4gMX1mdW5jdGlvbiBpQShhLGIpe2E9YXwwO2I9YnwwO3JldHVybiBiPDwy
ND4+MjR8MH1mdW5jdGlvbiBpQihhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJuKGI+Pj4w
PDEyOD9iJjI1NTpjKXwwfWZ1bmN0aW9uIGlDKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDtyZXR1
cm4oYjw8MjQ+PjI0Pi0xP2I6Yyl8MH1mdW5jdGlvbiBpRChhLGIsYyxkLGUpe2E9YXwwO2I9Ynww
O2M9Y3wwO2Q9ZHwwO2U9ZXwwO2I9ZC1jfDA7cmV0dXJuKGI+Pj4wPGU+Pj4wP2I6ZSl8MH1mdW5j
dGlvbiBpRShhKXthPWF8MDtjW2ErND4+Ml09KEk9Y1szODU0XXwwLGNbMzg1NF09SSsxLEkpKzE7
cmV0dXJufWZ1bmN0aW9uIGlGKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBn
PTAsaD0wLGk9MDtpZigoZHwwKT09KGV8MCkpe2c9ZDtyZXR1cm4gZ3wwfWVsc2V7aD1kO2k9Zn13
aGlsZSgxKXtjW2k+PjJdPWFbaF18MDtmPWgrMXwwO2lmKChmfDApPT0oZXwwKSl7Zz1lO2JyZWFr
fWVsc2V7aD1mO2k9aSs0fDB9fXJldHVybiBnfDB9ZnVuY3Rpb24gaUcoYixkLGUsZixnKXtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTA7aWYoKGR8MCk9PShlfDAp
KXtoPWQ7cmV0dXJuIGh8MH1iPSgoZS00KygtZHwwKXwwKT4+PjIpKzF8MDtpPWQ7aj1nO3doaWxl
KDEpe2c9Y1tpPj4yXXwwO2Fbal09Zz4+PjA8MTI4P2cmMjU1OmY7Zz1pKzR8MDtpZigoZ3wwKT09
KGV8MCkpe2JyZWFrfWVsc2V7aT1nO2o9aisxfDB9fWg9ZCsoYjw8Mil8MDtyZXR1cm4gaHwwfWZ1
bmN0aW9uIGlIKGIsYyxkLGUpe2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9
MDtpZigoY3wwKT09KGR8MCkpe2Y9YztyZXR1cm4gZnwwfWVsc2V7Zz1jO2g9ZX13aGlsZSgxKXth
W2hdPWFbZ118MDtlPWcrMXwwO2lmKChlfDApPT0oZHwwKSl7Zj1kO2JyZWFrfWVsc2V7Zz1lO2g9
aCsxfDB9fXJldHVybiBmfDB9ZnVuY3Rpb24gaUkoYixjLGQsZSxmKXtiPWJ8MDtjPWN8MDtkPWR8
MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTA7aWYoKGN8MCk9PShkfDApKXtnPWM7cmV0dXJu
IGd8MH1lbHNle2g9YztpPWZ9d2hpbGUoMSl7Zj1hW2hdfDA7YVtpXT1mPDwyND4+MjQ+LTE/Zjpl
O2Y9aCsxfDA7aWYoKGZ8MCk9PShkfDApKXtnPWQ7YnJlYWt9ZWxzZXtoPWY7aT1pKzF8MH19cmV0
dXJuIGd8MH1mdW5jdGlvbiBpSihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAs
Zz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtkZyhifDApO2U9YSs4fDA7Zj1hKzEyfDA7
YT1jW2Y+PjJdfDA7Zz1lfDA7aD1jW2c+PjJdfDA7aT1hLWg+PjI7ZG97aWYoaT4+PjA+ZD4+PjAp
e2o9aH1lbHNle2s9ZCsxfDA7aWYoaT4+PjA8az4+PjApe2o1KGUsay1pfDApO2o9Y1tnPj4yXXww
O2JyZWFrfWlmKGk+Pj4wPD1rPj4+MCl7aj1oO2JyZWFrfWw9aCsoazw8Mil8MDtpZigobHwwKT09
KGF8MCkpe2o9aDticmVha31jW2Y+PjJdPWErKH4oKGEtNCsoLWx8MCl8MCk+Pj4yKTw8Mik7aj1o
fX13aGlsZSgwKTtoPWNbaisoZDw8Mik+PjJdfDA7aWYoKGh8MCk9PTApe209ajtuPW0rKGQ8PDIp
fDA7Y1tuPj4yXT1iO3JldHVybn1keihofDApfDA7bT1jW2c+PjJdfDA7bj1tKyhkPDwyKXwwO2Nb
bj4+Ml09YjtyZXR1cm59ZnVuY3Rpb24gaUsoYSl7YT1hfDA7aUwoYSk7a1MoYSk7cmV0dXJufWZ1
bmN0aW9uIGlMKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9
MCxtPTA7Y1tiPj4yXT0zODI0O2Q9YisxMnwwO2U9Y1tkPj4yXXwwO2Y9Yis4fDA7Zz1jW2Y+PjJd
fDA7aWYoKGV8MCkhPShnfDApKXtoPTA7aT1nO2c9ZTt3aGlsZSgxKXtlPWNbaSsoaDw8Mik+PjJd
fDA7aWYoKGV8MCk9PTApe2o9ZztrPWl9ZWxzZXtsPWV8MDtkeihsKXwwO2o9Y1tkPj4yXXwwO2s9
Y1tmPj4yXXwwfWw9aCsxfDA7aWYobD4+PjA8ai1rPj4yPj4+MCl7aD1sO2k9aztnPWp9ZWxzZXti
cmVha319fWRQKGIrMTQ0fDApO2o9Y1tmPj4yXXwwO2lmKChqfDApPT0wKXttPWJ8MDtkZShtKTty
ZXR1cm59Zj1jW2Q+PjJdfDA7aWYoKGp8MCkhPShmfDApKXtjW2Q+PjJdPWYrKH4oKGYtNCsoLWp8
MCl8MCk+Pj4yKTw8Mil9aWYoKGp8MCk9PShiKzI0fDApKXthW2IrMTM2fDBdPTA7bT1ifDA7ZGUo
bSk7cmV0dXJufWVsc2V7a1Moaik7bT1ifDA7ZGUobSk7cmV0dXJufX1mdW5jdGlvbiBpTSgpe3Zh
ciBiPTAsZD0wO2lmKChhWzE2MjQ4XXwwKSE9MCl7Yj1jWzI5NTBdfDA7cmV0dXJuIGJ8MH1pZigo
YmMoMTYyNDgpfDApPT0wKXtiPWNbMjk1MF18MDtyZXR1cm4gYnwwfWRve2lmKChhWzE2MjU2XXww
KT09MCl7aWYoKGJjKDE2MjU2KXwwKT09MCl7YnJlYWt9aXMoMTQ0OTYsMSk7Y1syOTU0XT0xNDQ5
NjtjWzI5NTJdPTExODE2fX13aGlsZSgwKTtkPWNbY1syOTUyXT4+Ml18MDtjWzI5NTZdPWQ7ZGco
ZHwwKTtjWzI5NTBdPTExODI0O2I9Y1syOTUwXXwwO3JldHVybiBifDB9ZnVuY3Rpb24gaU4oYSxi
KXthPWF8MDtiPWJ8MDt2YXIgZD0wO2Q9Y1tiPj4yXXwwO2NbYT4+Ml09ZDtkZyhkfDApO3JldHVy
bn1mdW5jdGlvbiBpTyhhKXthPWF8MDtkeihjW2E+PjJdfDApfDA7cmV0dXJufWZ1bmN0aW9uIGlQ
KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlRKGEpe2E9YXwwO2lmKChh
fDApPT0wKXtyZXR1cm59YllbY1soY1thPj4yXXwwKSs0Pj4yXSY1MTFdKGEpO3JldHVybn1mdW5j
dGlvbiBpUihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpUyhiKXtiPWJ8
MDt2YXIgZD0wO2NbYj4+Ml09MzkzNjtkPWNbYis4Pj4yXXwwO2Rve2lmKChkfDApIT0wKXtpZigo
YVtiKzEyfDBdJjEpPT0wKXticmVha31rVChkKX19d2hpbGUoMCk7ZGUoYnwwKTtrUyhiKTtyZXR1
cm59ZnVuY3Rpb24gaVQoYil7Yj1ifDA7dmFyIGQ9MDtjW2I+PjJdPTM5MzY7ZD1jW2IrOD4+Ml18
MDtkb3tpZigoZHwwKSE9MCl7aWYoKGFbYisxMnwwXSYxKT09MCl7YnJlYWt9a1QoZCl9fXdoaWxl
KDApO2RlKGJ8MCk7cmV0dXJufWZ1bmN0aW9uIGlVKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0
dXJufWZ1bmN0aW9uIGlWKGEpe2E9YXwwO2lxKGEpO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpVyhh
KXthPWF8MDt2YXIgYj0wO2I9Y1soaU0oKXwwKT4+Ml18MDtjW2E+PjJdPWI7ZGcoYnwwKTtyZXR1
cm59ZnVuY3Rpb24gaVgoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MDtk
PWk7aT1pKzE2fDA7ZT1kfDA7Zj1jW2E+PjJdfDA7YT1ifDA7aWYoKGNbYT4+Ml18MCkhPS0xKXtj
W2U+PjJdPWI7Y1tlKzQ+PjJdPTEyO2NbZSs4Pj4yXT0wO2RXKGEsZSw5Nil9ZT0oY1tiKzQ+PjJd
fDApLTF8MDtiPWNbZis4Pj4yXXwwO2lmKChjW2YrMTI+PjJdfDApLWI+PjI+Pj4wPD1lPj4+MCl7
Zz1iTyg0KXwwO2g9ZztrcShoKTtibChnfDAsODE3NiwxMzQpO3JldHVybiAwfWY9Y1tiKyhlPDwy
KT4+Ml18MDtpZigoZnwwKT09MCl7Zz1iTyg0KXwwO2g9ZztrcShoKTtibChnfDAsODE3NiwxMzQp
O3JldHVybiAwfWVsc2V7aT1kO3JldHVybiBmfDB9cmV0dXJuIDB9ZnVuY3Rpb24gaVkoYSxkLGUp
e2E9YXwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYoZT4+PjA+PTEyOCl7Zj0wO3JldHVybiBmfDB9
Zj0oYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4xXSZkKTw8MTY+PjE2IT0wO3JldHVybiBm
fDB9ZnVuY3Rpb24gaVooYSxkLGUsZil7YT1hfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxo
PTAsaT0wLGo9MDtpZigoZHwwKT09KGV8MCkpe2c9ZDtyZXR1cm4gZ3wwfWVsc2V7aD1kO2k9Zn13
aGlsZSgxKXtmPWNbaD4+Ml18MDtpZihmPj4+MDwxMjgpe2o9YlsoY1soYTYoKXwwKT4+Ml18MCkr
KGY8PDEpPj4xXXwwfWVsc2V7aj0wfWJbaT4+MV09ajtmPWgrNHwwO2lmKChmfDApPT0oZXwwKSl7
Zz1lO2JyZWFrfWVsc2V7aD1mO2k9aSsyfDB9fXJldHVybiBnfDB9ZnVuY3Rpb24gaV8oYSxkLGUs
Zil7YT1hfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wO2lmKChlfDApPT0oZnww
KSl7Zz1lO3JldHVybiBnfDB9ZWxzZXtoPWV9d2hpbGUoMSl7ZT1jW2g+PjJdfDA7aWYoZT4+PjA8
MTI4KXtpZigoYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4xXSZkKTw8MTY+PjE2IT0wKXtn
PWg7aT0yMDk0O2JyZWFrfX1lPWgrNHwwO2lmKChlfDApPT0oZnwwKSl7Zz1mO2k9MjA5NjticmVh
a31lbHNle2g9ZX19aWYoKGl8MCk9PTIwOTQpe3JldHVybiBnfDB9ZWxzZSBpZigoaXwwKT09MjA5
Nil7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBpJChhLGQsZSxmKXthPWF8MDtkPWR8MDtl
PWV8MDtmPWZ8MDt2YXIgZz0wLGg9MDthPWU7d2hpbGUoMSl7aWYoKGF8MCk9PShmfDApKXtnPWY7
aD0yMTA0O2JyZWFrfWU9Y1thPj4yXXwwO2lmKGU+Pj4wPj0xMjgpe2c9YTtoPTIxMDY7YnJlYWt9
aWYoKGJbKGNbKGE2KCl8MCk+PjJdfDApKyhlPDwxKT4+MV0mZCk8PDE2Pj4xNj09MCl7Zz1hO2g9
MjEwNTticmVha31lbHNle2E9YSs0fDB9fWlmKChofDApPT0yMTA0KXtyZXR1cm4gZ3wwfWVsc2Ug
aWYoKGh8MCk9PTIxMDUpe3JldHVybiBnfDB9ZWxzZSBpZigoaHwwKT09MjEwNil7cmV0dXJuIGd8
MH1yZXR1cm4gMH1mdW5jdGlvbiBpMChhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTA7aWYoYj4+PjA+
PTEyOCl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhiUigpfDApPj4yXXwwKSsoYjw8Mik+PjJdfDA7
cmV0dXJuIGR8MH1mdW5jdGlvbiBpMShhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wO2lmKChifDApPT0oZHwwKSl7ZT1iO3JldHVybiBlfDB9ZWxzZXtmPWJ9d2hpbGUoMSl7
Yj1jW2Y+PjJdfDA7aWYoYj4+PjA8MTI4KXtnPWNbKGNbKGJSKCl8MCk+PjJdfDApKyhiPDwyKT4+
Ml18MH1lbHNle2c9Yn1jW2Y+PjJdPWc7Yj1mKzR8MDtpZigoYnwwKT09KGR8MCkpe2U9ZDticmVh
a31lbHNle2Y9Yn19cmV0dXJuIGV8MH1mdW5jdGlvbiBpMihhLGIpe2E9YXwwO2I9YnwwO3ZhciBk
PTA7aWYoYj4+PjA+PTEyOCl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhiUygpfDApPj4yXXwwKSso
Yjw8Mik+PjJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBpMyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1k
fDA7dmFyIGU9MCxmPTAsZz0wO2lmKChifDApPT0oZHwwKSl7ZT1iO3JldHVybiBlfDB9ZWxzZXtm
PWJ9d2hpbGUoMSl7Yj1jW2Y+PjJdfDA7aWYoYj4+PjA8MTI4KXtnPWNbKGNbKGJTKCl8MCk+PjJd
fDApKyhiPDwyKT4+Ml18MH1lbHNle2c9Yn1jW2Y+PjJdPWc7Yj1mKzR8MDtpZigoYnwwKT09KGR8
MCkpe2U9ZDticmVha31lbHNle2Y9Yn19cmV0dXJuIGV8MH1mdW5jdGlvbiBpNChhLGIpe2E9YXww
O2I9YnwwO3ZhciBkPTA7aWYoYjw8MjQ+PjI0PD0tMSl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhi
UigpfDApPj4yXXwwKSsoKGImMjU1KTw8Mik+PjJdJjI1NTtyZXR1cm4gZHwwfWZ1bmN0aW9uIGk1
KGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7aWYoKGR8MCk9PShlfDAp
KXtmPWQ7cmV0dXJuIGZ8MH1lbHNle2c9ZH13aGlsZSgxKXtkPWFbZ118MDtpZihkPDwyND4+MjQ+
LTEpe2g9Y1soY1soYlIoKXwwKT4+Ml18MCkrKGQ8PDI0Pj4yNDw8Mik+PjJdJjI1NX1lbHNle2g9
ZH1hW2ddPWg7ZD1nKzF8MDtpZigoZHwwKT09KGV8MCkpe2Y9ZTticmVha31lbHNle2c9ZH19cmV0
dXJuIGZ8MH1mdW5jdGlvbiBpNihhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTA7aWYoYjw8MjQ+PjI0
PD0tMSl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhiUygpfDApPj4yXXwwKSsoYjw8MjQ+PjI0PDwy
KT4+Ml0mMjU1O3JldHVybiBkfDB9ZnVuY3Rpb24gaTcoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXww
O3ZhciBmPTAsZz0wLGg9MDtpZigoZHwwKT09KGV8MCkpe2Y9ZDtyZXR1cm4gZnwwfWVsc2V7Zz1k
fXdoaWxlKDEpe2Q9YVtnXXwwO2lmKGQ8PDI0Pj4yND4tMSl7aD1jWyhjWyhiUygpfDApPj4yXXww
KSsoZDw8MjQ+PjI0PDwyKT4+Ml0mMjU1fWVsc2V7aD1kfWFbZ109aDtkPWcrMXwwO2lmKChkfDAp
PT0oZXwwKSl7Zj1lO2JyZWFrfWVsc2V7Zz1kfX1yZXR1cm4gZnwwfWZ1bmN0aW9uIGk4KGEpe2E9
YXwwO3JldHVybiAwfWZ1bmN0aW9uIGk5KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1
bmN0aW9uIGphKGEsYixkLGUsZixnLGgsail7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTA7Yj1pO2k9aSsxNnwwO2E9YnwwO2s9Yis4fDA7
Y1thPj4yXT1kO2Nbaz4+Ml09ZztsPWpsKGQsZSxhLGcsaCxrLDExMTQxMTEsMCl8MDtjW2Y+PjJd
PWQrKChjW2E+PjJdfDApLWQ+PjE8PDEpO2Nbaj4+Ml09ZysoKGNbaz4+Ml18MCktZyk7aT1iO3Jl
dHVybiBsfDB9ZnVuY3Rpb24gamIoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MDtsPWk7aT1pKzh8MDttPWx8MDtuPW07bz1pO2k9aSsxfDA7
aT1pKzc+PjM8PDM7cD1lO3doaWxlKDEpe2lmKChwfDApPT0oZnwwKSl7cT1mO2JyZWFrfWlmKChj
W3A+PjJdfDApPT0wKXtxPXA7YnJlYWt9ZWxzZXtwPXArNHwwfX1jW2s+PjJdPWg7Y1tnPj4yXT1l
O0wyNTU1OmRve2lmKChlfDApPT0oZnwwKXwoaHwwKT09KGp8MCkpe3I9ZX1lbHNle3A9ZDtzPWo7
dD1iKzh8MDt1PW98MDt2PWg7dz1lO3g9cTtMMjU1Nzp3aGlsZSgxKXt5PWNbcCs0Pj4yXXwwO2Nb
bT4+Ml09Y1twPj4yXTtjW20rND4+Ml09eTt5PWJCKGNbdD4+Ml18MCl8MDt6PWtzKHYsZyx4LXc+
PjIscy12fDAsZCl8MDtpZigoeXwwKSE9MCl7YkIoeXwwKXwwfXN3aXRjaCh6fDApe2Nhc2UtMTp7
QT0yMTg4O2JyZWFrIEwyNTU3O2JyZWFrfTtjYXNlIDA6e0I9MTtBPTIyMjQ7YnJlYWsgTDI1NTc7
YnJlYWt9O2RlZmF1bHQ6e319eT0oY1trPj4yXXwwKSt6fDA7Y1trPj4yXT15O2lmKCh5fDApPT0o
anwwKSl7QT0yMjIxO2JyZWFrfWlmKCh4fDApPT0oZnwwKSl7Qz1mO0Q9eTtFPWNbZz4+Ml18MH1l
bHNle3k9YkIoY1t0Pj4yXXwwKXwwO3o9a2codSwwLGQpfDA7aWYoKHl8MCkhPTApe2JCKHl8MCl8
MH1pZigoenwwKT09LTEpe0I9MjtBPTIyMjY7YnJlYWt9eT1jW2s+PjJdfDA7aWYoej4+PjA+KHMt
eXwwKT4+PjApe0I9MTtBPTIyMjc7YnJlYWt9TDI1NzQ6ZG97aWYoKHp8MCkhPTApe0Y9ejtHPXU7
SD15O3doaWxlKDEpe0k9YVtHXXwwO2Nbaz4+Ml09SCsxO2FbSF09STtJPUYtMXwwO2lmKChJfDAp
PT0wKXticmVhayBMMjU3NH1GPUk7Rz1HKzF8MDtIPWNbaz4+Ml18MH19fXdoaWxlKDApO3k9KGNb
Zz4+Ml18MCkrNHwwO2NbZz4+Ml09eTt6PXk7d2hpbGUoMSl7aWYoKHp8MCk9PShmfDApKXtKPWY7
YnJlYWt9aWYoKGNbej4+Ml18MCk9PTApe0o9ejticmVha31lbHNle3o9eis0fDB9fUM9SjtEPWNb
az4+Ml18MDtFPXl9aWYoKEV8MCk9PShmfDApfChEfDApPT0oanwwKSl7cj1FO2JyZWFrIEwyNTU1
fWVsc2V7dj1EO3c9RTt4PUN9fWlmKChBfDApPT0yMTg4KXtjW2s+PjJdPXY7TDI1ODY6ZG97aWYo
KHd8MCk9PShjW2c+PjJdfDApKXtLPXd9ZWxzZXt4PXc7dT12O3doaWxlKDEpe3M9Y1t4Pj4yXXww
O3A9YkIoY1t0Pj4yXXwwKXwwO3o9a2codSxzLG4pfDA7aWYoKHB8MCkhPTApe2JCKHB8MCl8MH1p
ZigoenwwKT09LTEpe0s9eDticmVhayBMMjU4Nn1wPShjW2s+PjJdfDApK3p8MDtjW2s+PjJdPXA7
ej14KzR8MDtpZigoenwwKT09KGNbZz4+Ml18MCkpe0s9ejticmVha31lbHNle3g9ejt1PXB9fX19
d2hpbGUoMCk7Y1tnPj4yXT1LO0I9MjtpPWw7cmV0dXJuIEJ8MH1lbHNlIGlmKChBfDApPT0yMjIx
KXtyPWNbZz4+Ml18MDticmVha31lbHNlIGlmKChBfDApPT0yMjI0KXtpPWw7cmV0dXJuIEJ8MH1l
bHNlIGlmKChBfDApPT0yMjI2KXtpPWw7cmV0dXJuIEJ8MH1lbHNlIGlmKChBfDApPT0yMjI3KXtp
PWw7cmV0dXJuIEJ8MH19fXdoaWxlKDApO0I9KHJ8MCkhPShmfDApfDA7aT1sO3JldHVybiBCfDB9
ZnVuY3Rpb24gamMoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTA7bD1pO2k9aSs4fDA7bT1sfDA7bj1tO289ZTt3aGlsZSgxKXtpZigob3wwKT09KGZ8MCkp
e3A9ZjticmVha31pZigoYVtvXXwwKT09MCl7cD1vO2JyZWFrfWVsc2V7bz1vKzF8MH19Y1trPj4y
XT1oO2NbZz4+Ml09ZTtMMjYwNzpkb3tpZigoZXwwKT09KGZ8MCl8KGh8MCk9PShqfDApKXtxPWV9
ZWxzZXtvPWQ7cj1qO3M9Yis4fDA7dD1oO3U9ZTt2PXA7TDI2MDk6d2hpbGUoMSl7dz1jW28rND4+
Ml18MDtjW20+PjJdPWNbbz4+Ml07Y1ttKzQ+PjJdPXc7eD12O3c9YkIoY1tzPj4yXXwwKXwwO3k9
a2QodCxnLHgtdXwwLHItdD4+MixkKXwwO2lmKCh3fDApIT0wKXtiQih3fDApfDB9c3dpdGNoKHl8
MCl7Y2FzZS0xOnt6PTIyNDM7YnJlYWsgTDI2MDk7YnJlYWt9O2Nhc2UgMDp7QT0yO3o9MjI3ODti
cmVhayBMMjYwOTticmVha307ZGVmYXVsdDp7fX13PShjW2s+PjJdfDApKyh5PDwyKXwwO2Nbaz4+
Ml09dztpZigod3wwKT09KGp8MCkpe3o9MjI3NTticmVha315PWNbZz4+Ml18MDtpZigodnwwKT09
KGZ8MCkpe0I9ZjtDPXc7RD15fWVsc2V7RT1iQihjW3M+PjJdfDApfDA7Rj1rYyh3LHksMSxkKXww
O2lmKChFfDApIT0wKXtiQihFfDApfDB9aWYoKEZ8MCkhPTApe0E9Mjt6PTIyODI7YnJlYWt9Y1tr
Pj4yXT0oY1trPj4yXXwwKSs0O0Y9KGNbZz4+Ml18MCkrMXwwO2NbZz4+Ml09RjtFPUY7d2hpbGUo
MSl7aWYoKEV8MCk9PShmfDApKXtHPWY7YnJlYWt9aWYoKGFbRV18MCk9PTApe0c9RTticmVha31l
bHNle0U9RSsxfDB9fUI9RztDPWNbaz4+Ml18MDtEPUZ9aWYoKER8MCk9PShmfDApfChDfDApPT0o
anwwKSl7cT1EO2JyZWFrIEwyNjA3fWVsc2V7dD1DO3U9RDt2PUJ9fWlmKCh6fDApPT0yMjQzKXtj
W2s+PjJdPXQ7TDI2MzE6ZG97aWYoKHV8MCk9PShjW2c+PjJdfDApKXtIPXV9ZWxzZXt2PXQ7cj11
O0wyNjMyOndoaWxlKDEpe289YkIoY1tzPj4yXXwwKXwwO0U9a2ModixyLHgtcnwwLG4pfDA7aWYo
KG98MCkhPTApe2JCKG98MCl8MH1zd2l0Y2goRXwwKXtjYXNlIDA6e0k9cisxfDA7YnJlYWt9O2Nh
c2UtMTp7ej0yMjU0O2JyZWFrIEwyNjMyO2JyZWFrfTtjYXNlLTI6e3o9MjI1NTticmVhayBMMjYz
MjticmVha307ZGVmYXVsdDp7ST1yK0V8MH19RT0oY1trPj4yXXwwKSs0fDA7Y1trPj4yXT1FO2lm
KChJfDApPT0oY1tnPj4yXXwwKSl7SD1JO2JyZWFrIEwyNjMxfWVsc2V7dj1FO3I9SX19aWYoKHp8
MCk9PTIyNTQpe2NbZz4+Ml09cjtBPTI7aT1sO3JldHVybiBBfDB9ZWxzZSBpZigoenwwKT09MjI1
NSl7Y1tnPj4yXT1yO0E9MTtpPWw7cmV0dXJuIEF8MH19fXdoaWxlKDApO2NbZz4+Ml09SDtBPShI
fDApIT0oZnwwKXwwO2k9bDtyZXR1cm4gQXwwfWVsc2UgaWYoKHp8MCk9PTIyNzUpe3E9Y1tnPj4y
XXwwO2JyZWFrfWVsc2UgaWYoKHp8MCk9PTIyNzgpe2k9bDtyZXR1cm4gQXwwfWVsc2UgaWYoKHp8
MCk9PTIyODIpe2k9bDtyZXR1cm4gQXwwfX19d2hpbGUoMCk7QT0ocXwwKSE9KGZ8MCl8MDtpPWw7
cmV0dXJuIEF8MH1mdW5jdGlvbiBqZChiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO3ZhciBoPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtoPWk7aT1pKzh8MDtjW2c+PjJdPWU7
ZT1ofDA7aj1iQihjW2IrOD4+Ml18MCl8MDtiPWtnKGUsMCxkKXwwO2lmKChqfDApIT0wKXtiQihq
fDApfDB9c3dpdGNoKGJ8MCl7Y2FzZS0xOmNhc2UgMDp7az0yO2k9aDtyZXR1cm4ga3wwfTtkZWZh
dWx0Ont9fWo9Yi0xfDA7Yj1jW2c+PjJdfDA7aWYoaj4+PjA+KGYtYnwwKT4+PjApe2s9MTtpPWg7
cmV0dXJuIGt8MH1pZigoanwwKT09MCl7az0wO2k9aDtyZXR1cm4ga3wwfWVsc2V7bD1qO209ZTtu
PWJ9d2hpbGUoMSl7Yj1hW21dfDA7Y1tnPj4yXT1uKzE7YVtuXT1iO2I9bC0xfDA7aWYoKGJ8MCk9
PTApe2s9MDticmVha31sPWI7bT1tKzF8MDtuPWNbZz4+Ml18MH1pPWg7cmV0dXJuIGt8MH1mdW5j
dGlvbiBqZShhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9MDtiPWErOHwwO2E9YkIoY1ti
Pj4yXXwwKXwwO2Q9a2YoMCwwLDEpfDA7aWYoKGF8MCkhPTApe2JCKGF8MCl8MH1pZigoZHwwKSE9
MCl7ZT0tMTtyZXR1cm4gZXwwfWQ9Y1tiPj4yXXwwO2lmKChkfDApPT0wKXtlPTE7cmV0dXJuIGV8
MH1lPWJCKGR8MCl8MDtkPWJkKCl8MDtpZigoZXwwKT09MCl7Zj0oZHwwKT09MTtnPWYmMTtyZXR1
cm4gZ3wwfWJCKGV8MCl8MDtmPShkfDApPT0xO2c9ZiYxO3JldHVybiBnfDB9ZnVuY3Rpb24gamYo
YSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAs
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7aWYoKGZ8MCk9PTB8KGR8MCk9PShlfDApKXtnPTA7cmV0
dXJuIGd8MH1oPWU7aT1hKzh8MDthPWQ7ZD0wO2o9MDtMMjY5Mzp3aGlsZSgxKXtrPWJCKGNbaT4+
Ml18MCl8MDtsPWtiKGEsaC1hfDAsYil8MDtpZigoa3wwKSE9MCl7YkIoa3wwKXwwfXN3aXRjaChs
fDApe2Nhc2UgMDp7bT0xO249YSsxfDA7YnJlYWt9O2Nhc2UtMTpjYXNlLTI6e2c9ZDtvPTIzNDM7
YnJlYWsgTDI2OTM7YnJlYWt9O2RlZmF1bHQ6e209bDtuPWErbHwwfX1sPW0rZHwwO2s9aisxfDA7
aWYoaz4+PjA+PWY+Pj4wfChufDApPT0oZXwwKSl7Zz1sO289MjM0NTticmVha31lbHNle2E9bjtk
PWw7aj1rfX1pZigob3wwKT09MjM0NSl7cmV0dXJuIGd8MH1lbHNlIGlmKChvfDApPT0yMzQzKXty
ZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0aW9uIGpnKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDti
PWNbYSs4Pj4yXXwwO2Rve2lmKChifDApPT0wKXtkPTF9ZWxzZXthPWJCKGJ8MCl8MDtlPWJkKCl8
MDtpZigoYXwwKT09MCl7ZD1lO2JyZWFrfWJCKGF8MCl8MDtkPWV9fXdoaWxlKDApO3JldHVybiBk
fDB9ZnVuY3Rpb24gamgoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtj
W2Y+PjJdPWQ7cmV0dXJuIDN9ZnVuY3Rpb24gamkoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24g
amooYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gamsoYSl7YT1hfDA7cmV0dXJuIDR9ZnVuY3Rp
b24gamwoZCxmLGcsaCxpLGosayxsKXtkPWR8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8
MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Y1tnPj4yXT1kO2Nbaj4+
Ml09aDtkb3tpZigobCYyfDApIT0wKXtpZigoaS1ofDApPDMpe209MTtyZXR1cm4gbXwwfWVsc2V7
Y1tqPj4yXT1oKzE7YVtoXT0tMTc7ZD1jW2o+PjJdfDA7Y1tqPj4yXT1kKzE7YVtkXT0tNjk7ZD1j
W2o+PjJdfDA7Y1tqPj4yXT1kKzE7YVtkXT0tNjU7YnJlYWt9fX13aGlsZSgwKTtoPWY7bD1jW2c+
PjJdfDA7aWYobD4+PjA+PWY+Pj4wKXttPTA7cmV0dXJuIG18MH1kPWk7aT1sO0wyNzI3OndoaWxl
KDEpe2w9YltpPj4xXXwwO249bCY2NTUzNTtpZihuPj4+MD5rPj4+MCl7bT0yO289MjM5OTticmVh
a31kb3tpZigobCY2NTUzNSk8MTI4KXtwPWNbaj4+Ml18MDtpZigoZC1wfDApPDEpe209MTtvPTIz
ODg7YnJlYWsgTDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT1sJjI1NX1lbHNle2lmKChsJjY1NTM1KTwy
MDQ4KXtwPWNbaj4+Ml18MDtpZigoZC1wfDApPDIpe209MTtvPTIzODk7YnJlYWsgTDI3Mjd9Y1tq
Pj4yXT1wKzE7YVtwXT0obj4+PjZ8MTkyKSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtw
XT0obiY2M3wxMjgpJjI1NTticmVha31pZigobCY2NTUzNSk8NTUyOTYpe3A9Y1tqPj4yXXwwO2lm
KChkLXB8MCk8Myl7bT0xO289MjM5NzticmVhayBMMjcyN31jW2o+PjJdPXArMTthW3BdPShuPj4+
MTJ8MjI0KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtwXT0obj4+PjYmNjN8MTI4KSYy
NTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtwXT0obiY2M3wxMjgpJjI1NTticmVha31pZigo
bCY2NTUzNSk+PTU2MzIwKXtpZigobCY2NTUzNSk8NTczNDQpe209MjtvPTIzOTM7YnJlYWsgTDI3
Mjd9cD1jW2o+PjJdfDA7aWYoKGQtcHwwKTwzKXttPTE7bz0yMzk0O2JyZWFrIEwyNzI3fWNbaj4+
Ml09cCsxO2FbcF09KG4+Pj4xMnwyMjQpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJdPXArMTthW3Bd
PShuPj4+NiY2M3wxMjgpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJdPXArMTthW3BdPShuJjYzfDEy
OCkmMjU1O2JyZWFrfWlmKChoLWl8MCk8NCl7bT0xO289MjM5MTticmVhayBMMjcyN31wPWkrMnww
O3E9ZVtwPj4xXXwwO2lmKChxJjY0NTEyfDApIT01NjMyMCl7bT0yO289MjM5MjticmVhayBMMjcy
N31pZigoZC0oY1tqPj4yXXwwKXwwKTw0KXttPTE7bz0yMzk4O2JyZWFrIEwyNzI3fXI9biY5NjA7
aWYoKChyPDwxMCkrNjU1MzZ8bjw8MTAmNjQ1MTJ8cSYxMDIzKT4+PjA+az4+PjApe209MjtvPTI0
MDA7YnJlYWsgTDI3Mjd9Y1tnPj4yXT1wO3A9KHI+Pj42KSsxfDA7cj1jW2o+PjJdfDA7Y1tqPj4y
XT1yKzE7YVtyXT0ocD4+PjJ8MjQwKSYyNTU7cj1jW2o+PjJdfDA7Y1tqPj4yXT1yKzE7YVtyXT0o
bj4+PjImMTV8cDw8NCY0OHwxMjgpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJdPXArMTthW3BdPShu
PDw0JjQ4fHE+Pj42JjE1fDEyOCkmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCsxO2FbcF09KHEm
NjN8MTI4KSYyNTV9fXdoaWxlKDApO249KGNbZz4+Ml18MCkrMnwwO2NbZz4+Ml09bjtpZihuPj4+
MDxmPj4+MCl7aT1ufWVsc2V7bT0wO289MjM5NTticmVha319aWYoKG98MCk9PTIzODkpe3JldHVy
biBtfDB9ZWxzZSBpZigob3wwKT09MjM5Myl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzk0
KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTI0MDApe3JldHVybiBtfDB9ZWxzZSBpZigob3ww
KT09MjM4OCl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzkxKXtyZXR1cm4gbXwwfWVsc2Ug
aWYoKG98MCk9PTIzOTIpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5NSl7cmV0dXJuIG18
MH1lbHNlIGlmKChvfDApPT0yMzk3KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTgpe3Jl
dHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5OSl7cmV0dXJuIG18MH1yZXR1cm4gMH1mdW5jdGlv
biBqbShlLGYsZyxoLGksaixrLGwpe2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anww
O2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MCx5PTA7Y1tnPj4yXT1lO2Nbaj4+Ml09aDtoPWNbZz4+Ml18MDtkb3tpZigobCY0fDAp
PT0wKXttPWh9ZWxzZXtpZigoZi1ofDApPD0yKXttPWg7YnJlYWt9aWYoKGFbaF18MCkhPS0xNyl7
bT1oO2JyZWFrfWlmKChhW2grMXwwXXwwKSE9LTY5KXttPWg7YnJlYWt9aWYoKGFbaCsyfDBdfDAp
IT0tNjUpe209aDticmVha31lPWgrM3wwO2NbZz4+Ml09ZTttPWV9fXdoaWxlKDApO0wyNzcyOmRv
e2lmKG0+Pj4wPGY+Pj4wKXtoPWY7bD1pO2U9Y1tqPj4yXXwwO249bTtMMjc3NDp3aGlsZSgxKXtp
ZihlPj4+MD49aT4+PjApe289bjticmVhayBMMjc3Mn1wPWFbbl18MDtxPXAmMjU1O2lmKHE+Pj4w
Pms+Pj4wKXtyPTI7cz0yNDQ0O2JyZWFrfWRve2lmKHA8PDI0Pj4yND4tMSl7YltlPj4xXT1wJjI1
NTtjW2c+PjJdPShjW2c+PjJdfDApKzF9ZWxzZXtpZigocCYyNTUpPDE5NCl7cj0yO3M9MjQ1Mzti
cmVhayBMMjc3NH1pZigocCYyNTUpPDIyNCl7aWYoKGgtbnwwKTwyKXtyPTE7cz0yNDU0O2JyZWFr
IEwyNzc0fXQ9ZFtuKzF8MF18MDtpZigodCYxOTJ8MCkhPTEyOCl7cj0yO3M9MjQ1NTticmVhayBM
Mjc3NH11PXQmNjN8cTw8NiYxOTg0O2lmKHU+Pj4wPms+Pj4wKXtyPTI7cz0yNDU2O2JyZWFrIEwy
Nzc0fWJbZT4+MV09dSY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDApKzI7YnJlYWt9aWYoKHAmMjU1
KTwyNDApe2lmKChoLW58MCk8Myl7cj0xO3M9MjQ1NzticmVhayBMMjc3NH11PWFbbisxfDBdfDA7
c3dpdGNoKHF8MCl7Y2FzZSAyMjQ6e2lmKCh1Ji0zMik8PDI0Pj4yNCE9LTk2KXtyPTI7cz0yNDUw
O2JyZWFrIEwyNzc0fWJyZWFrfTtjYXNlIDIzNzp7aWYoKHUmLTMyKTw8MjQ+PjI0IT0tMTI4KXty
PTI7cz0yNDUyO2JyZWFrIEwyNzc0fWJyZWFrfTtkZWZhdWx0OntpZigodSYtNjQpPDwyND4+MjQh
PS0xMjgpe3I9MjtzPTI0NjI7YnJlYWsgTDI3NzR9fX10PWRbbisyfDBdfDA7aWYoKHQmMTkyfDAp
IT0xMjgpe3I9MjtzPTI0NDM7YnJlYWsgTDI3NzR9dj0odSYyNTUpPDw2JjQwMzJ8cTw8MTJ8dCY2
MztpZigodiY2NTUzNSk+Pj4wPms+Pj4wKXtyPTI7cz0yNDQyO2JyZWFrIEwyNzc0fWJbZT4+MV09
diY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDApKzM7YnJlYWt9aWYoKHAmMjU1KT49MjQ1KXtyPTI7
cz0yNDQ3O2JyZWFrIEwyNzc0fWlmKChoLW58MCk8NCl7cj0xO3M9MjQ1ODticmVhayBMMjc3NH12
PWFbbisxfDBdfDA7c3dpdGNoKHF8MCl7Y2FzZSAyNDA6e2lmKCh2KzExMiYyNTUpPj00OCl7cj0y
O3M9MjQ0ODticmVhayBMMjc3NH1icmVha307Y2FzZSAyNDQ6e2lmKCh2Ji0xNik8PDI0Pj4yNCE9
LTEyOCl7cj0yO3M9MjQ1OTticmVhayBMMjc3NH1icmVha307ZGVmYXVsdDp7aWYoKHYmLTY0KTw8
MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDYwO2JyZWFrIEwyNzc0fX19dD1kW24rMnwwXXwwO2lmKCh0
JjE5MnwwKSE9MTI4KXtyPTI7cz0yNDYxO2JyZWFrIEwyNzc0fXU9ZFtuKzN8MF18MDtpZigodSYx
OTJ8MCkhPTEyOCl7cj0yO3M9MjQ0OTticmVhayBMMjc3NH1pZigobC1lfDApPDQpe3I9MTtzPTI0
NDU7YnJlYWsgTDI3NzR9dz1xJjc7eD12JjI1NTt2PXQ8PDY7eT11JjYzO2lmKCh4PDwxMiYyNTgw
NDh8dzw8MTh8diY0MDMyfHkpPj4+MD5rPj4+MCl7cj0yO3M9MjQ0NjticmVhayBMMjc3NH1iW2U+
PjFdPSh4PDwyJjYwfHQ+Pj40JjN8KCh4Pj4+NCYzfHc8PDIpPDw2KSsxNjMyMHw1NTI5NikmNjU1
MzU7dz0oY1tqPj4yXXwwKSsyfDA7Y1tqPj4yXT13O2Jbdz4+MV09KHl8diY5NjB8NTYzMjApJjY1
NTM1O2NbZz4+Ml09KGNbZz4+Ml18MCkrNH19d2hpbGUoMCk7cT0oY1tqPj4yXXwwKSsyfDA7Y1tq
Pj4yXT1xO3A9Y1tnPj4yXXwwO2lmKHA+Pj4wPGY+Pj4wKXtlPXE7bj1wfWVsc2V7bz1wO2JyZWFr
IEwyNzcyfX1pZigoc3wwKT09MjQ0Mil7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQzKXty
ZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDQpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09
MjQ0OCl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ5KXtyZXR1cm4gcnwwfWVsc2UgaWYo
KHN8MCk9PTI0NTApe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ0NSl7cmV0dXJuIHJ8MH1l
bHNlIGlmKChzfDApPT0yNDQ2KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDcpe3JldHVy
biByfDB9ZWxzZSBpZigoc3wwKT09MjQ1Nil7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDU3
KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTgpe3JldHVybiByfDB9ZWxzZSBpZigoc3ww
KT09MjQ1OSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDYwKXtyZXR1cm4gcnwwfWVsc2Ug
aWYoKHN8MCk9PTI0NjEpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ2Mil7cmV0dXJuIHJ8
MH1lbHNlIGlmKChzfDApPT0yNDUyKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTMpe3Jl
dHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1NCl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0y
NDU1KXtyZXR1cm4gcnwwfX1lbHNle289bX19d2hpbGUoMCk7cj1vPj4+MDxmPj4+MHwwO3JldHVy
biByfDB9ZnVuY3Rpb24gam4oYixjLGUsZixnKXtiPWJ8MDtjPWN8MDtlPWV8MDtmPWZ8MDtnPWd8
MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTA7ZG97aWYoKGcmNHwwKT09MCl7aD1ifWVsc2V7aWYoKGMtYnwwKTw9Mil7aD1iO2Jy
ZWFrfWlmKChhW2JdfDApIT0tMTcpe2g9YjticmVha31pZigoYVtiKzF8MF18MCkhPS02OSl7aD1i
O2JyZWFrfWg9KGFbYisyfDBdfDApPT0tNjU/YiszfDA6Yn19d2hpbGUoMCk7TDI4NDE6ZG97aWYo
aD4+PjA8Yz4+PjAmKGV8MCkhPTApe2c9YztpPTA7aj1oO0wyODQzOndoaWxlKDEpe2s9YVtqXXww
O2w9ayYyNTU7aWYobD4+PjA+Zj4+PjApe209ajticmVhayBMMjg0MX1kb3tpZihrPDwyND4+MjQ+
LTEpe249aisxfDA7bz1pfWVsc2V7aWYoKGsmMjU1KTwxOTQpe209ajticmVhayBMMjg0MX1pZigo
ayYyNTUpPDIyNCl7aWYoKGctanwwKTwyKXttPWo7YnJlYWsgTDI4NDF9cD1kW2orMXwwXXwwO2lm
KChwJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9aWYoKHAmNjN8bDw8NiYxOTg0KT4+PjA+
Zj4+PjApe209ajticmVhayBMMjg0MX1uPWorMnwwO289aTticmVha31pZigoayYyNTUpPDI0MCl7
cT1qO2lmKChnLXF8MCk8Myl7bT1qO2JyZWFrIEwyODQxfXA9YVtqKzF8MF18MDtzd2l0Y2gobHww
KXtjYXNlIDIyNDp7aWYoKHAmLTMyKTw8MjQ+PjI0IT0tOTYpe3I9MjQ4MzticmVhayBMMjg0M31i
cmVha307Y2FzZSAyMzc6e2lmKChwJi0zMik8PDI0Pj4yNCE9LTEyOCl7cj0yNDg1O2JyZWFrIEwy
ODQzfWJyZWFrfTtkZWZhdWx0OntpZigocCYtNjQpPDwyND4+MjQhPS0xMjgpe3I9MjQ4NzticmVh
ayBMMjg0M319fXM9ZFtqKzJ8MF18MDtpZigocyYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwyODQx
fWlmKCgocCYyNTUpPDw2JjQwMzJ8bDw8MTImNjE0NDB8cyY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJl
YWsgTDI4NDF9bj1qKzN8MDtvPWk7YnJlYWt9aWYoKGsmMjU1KT49MjQ1KXttPWo7YnJlYWsgTDI4
NDF9dD1qO2lmKChnLXR8MCk8NCl7bT1qO2JyZWFrIEwyODQxfWlmKChlLWl8MCk+Pj4wPDIpe209
ajticmVhayBMMjg0MX1zPWFbaisxfDBdfDA7c3dpdGNoKGx8MCl7Y2FzZSAyNDA6e2lmKChzKzEx
MiYyNTUpPj00OCl7cj0yNDk2O2JyZWFrIEwyODQzfWJyZWFrfTtjYXNlIDI0NDp7aWYoKHMmLTE2
KTw8MjQ+PjI0IT0tMTI4KXtyPTI0OTg7YnJlYWsgTDI4NDN9YnJlYWt9O2RlZmF1bHQ6e2lmKChz
Ji02NCk8PDI0Pj4yNCE9LTEyOCl7cj0yNTAwO2JyZWFrIEwyODQzfX19cD1kW2orMnwwXXwwO2lm
KChwJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9dT1kW2orM3wwXXwwO2lmKCh1JjE5Mnww
KSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9aWYoKChzJjI1NSk8PDEyJjI1ODA0OHxsPDwxOCYxODM1
MDA4fHA8PDYmNDAzMnx1JjYzKT4+PjA+Zj4+PjApe209ajticmVhayBMMjg0MX1uPWorNHwwO289
aSsxfDB9fXdoaWxlKDApO2w9bysxfDA7aWYobj4+PjA8Yz4+PjAmbD4+PjA8ZT4+PjApe2k9bDtq
PW59ZWxzZXttPW47YnJlYWsgTDI4NDF9fWlmKChyfDApPT0yNTAwKXt2PXQtYnwwO3JldHVybiB2
fDB9ZWxzZSBpZigocnwwKT09MjQ5Nil7dj10LWJ8MDtyZXR1cm4gdnwwfWVsc2UgaWYoKHJ8MCk9
PTI0OTgpe3Y9dC1ifDA7cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDApPT0yNDgzKXt2PXEtYnwwO3Jl
dHVybiB2fDB9ZWxzZSBpZigocnwwKT09MjQ4NSl7dj1xLWJ8MDtyZXR1cm4gdnwwfWVsc2UgaWYo
KHJ8MCk9PTI0ODcpe3Y9cS1ifDA7cmV0dXJuIHZ8MH19ZWxzZXttPWh9fXdoaWxlKDApO3Y9bS1i
fDA7cmV0dXJuIHZ8MH1mdW5jdGlvbiBqbyhhLGIsZCxlLGYsZyxoLGope2E9YXwwO2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wO2I9aTtpPWkrMTZ8
MDthPWJ8MDtrPWIrOHwwO2NbYT4+Ml09ZDtjW2s+PjJdPWc7bD1qbShkLGUsYSxnLGgsaywxMTE0
MTExLDApfDA7Y1tmPj4yXT1kKygoY1thPj4yXXwwKS1kKTtjW2o+PjJdPWcrKChjW2s+PjJdfDAp
LWc+PjE8PDEpO2k9YjtyZXR1cm4gbHwwfWZ1bmN0aW9uIGpwKGEsYixjLGQsZSl7YT1hfDA7Yj1i
fDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7cmV0dXJuIGpuKGMsZCxlLDExMTQxMTEsMCl8MH1mdW5jdGlv
biBqcShhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBqcihhLGIsZCxlLGYs
ZyxoLGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3Zh
ciBrPTAsbD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2NbYT4+Ml09ZDtjW2s+PjJdPWc7
bD1qdyhkLGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1kKygoY1thPj4yXXwwKS1kPj4y
PDwyKTtjW2o+PjJdPWcrKChjW2s+PjJdfDApLWcpO2k9YjtyZXR1cm4gbHwwfWZ1bmN0aW9uIGpz
KGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Y1tmPj4yXT1kO3JldHVy
biAzfWZ1bmN0aW9uIGp0KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGp1KGEpe2E9YXwwO3Jl
dHVybiAwfWZ1bmN0aW9uIGp2KGEpe2E9YXwwO3JldHVybiA0fWZ1bmN0aW9uIGp3KGIsZCxlLGYs
ZyxoLGksail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7
dmFyIGs9MCxsPTAsbT0wLG49MDtjW2U+PjJdPWI7Y1toPj4yXT1mO2Rve2lmKChqJjJ8MCkhPTAp
e2lmKChnLWZ8MCk8Myl7az0xO3JldHVybiBrfDB9ZWxzZXtjW2g+PjJdPWYrMTthW2ZdPS0xNzti
PWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPS02OTtiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTth
W2JdPS02NTticmVha319fXdoaWxlKDApO2Y9Y1tlPj4yXXwwO2lmKGY+Pj4wPj1kPj4+MCl7az0w
O3JldHVybiBrfDB9aj1nO2c9ZjtMMjkxMjp3aGlsZSgxKXtmPWNbZz4+Ml18MDtpZigoZiYtMjA0
OHwwKT09NTUyOTZ8Zj4+PjA+aT4+PjApe2s9MjtsPTI1NDg7YnJlYWt9ZG97aWYoZj4+PjA8MTI4
KXtiPWNbaD4+Ml18MDtpZigoai1ifDApPDEpe2s9MTtsPTI1NDQ7YnJlYWsgTDI5MTJ9Y1toPj4y
XT1iKzE7YVtiXT1mJjI1NX1lbHNle2lmKGY+Pj4wPDIwNDgpe2I9Y1toPj4yXXwwO2lmKChqLWJ8
MCk8Mil7az0xO2w9MjU0NzticmVhayBMMjkxMn1jW2g+PjJdPWIrMTthW2JdPShmPj4+NnwxOTIp
JjI1NTtiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPShmJjYzfDEyOCkmMjU1O2JyZWFrfWI9
Y1toPj4yXXwwO209ai1ifDA7aWYoZj4+PjA8NjU1MzYpe2lmKChtfDApPDMpe2s9MTtsPTI1NDk7
YnJlYWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjEyfDIyNCkmMjU1O249Y1toPj4yXXww
O2NbaD4+Ml09bisxO2Fbbl09KGY+Pj42JjYzfDEyOCkmMjU1O249Y1toPj4yXXwwO2NbaD4+Ml09
bisxO2Fbbl09KGYmNjN8MTI4KSYyNTU7YnJlYWt9ZWxzZXtpZigobXwwKTw0KXtrPTE7bD0yNTQy
O2JyZWFrIEwyOTEyfWNbaD4+Ml09YisxO2FbYl09KGY+Pj4xOHwyNDApJjI1NTtiPWNbaD4+Ml18
MDtjW2g+PjJdPWIrMTthW2JdPShmPj4+MTImNjN8MTI4KSYyNTU7Yj1jW2g+PjJdfDA7Y1toPj4y
XT1iKzE7YVtiXT0oZj4+PjYmNjN8MTI4KSYyNTU7Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVti
XT0oZiY2M3wxMjgpJjI1NTticmVha319fXdoaWxlKDApO2Y9KGNbZT4+Ml18MCkrNHwwO2NbZT4+
Ml09ZjtpZihmPj4+MDxkPj4+MCl7Zz1mfWVsc2V7az0wO2w9MjU0MzticmVha319aWYoKGx8MCk9
PTI1NDMpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0Mil7cmV0dXJuIGt8MH1lbHNlIGlm
KChsfDApPT0yNTQ0KXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8MCk9PTI1NDgpe3JldHVybiBrfDB9
ZWxzZSBpZigobHwwKT09MjU0OSl7cmV0dXJuIGt8MH1lbHNlIGlmKChsfDApPT0yNTQ3KXtyZXR1
cm4ga3wwfXJldHVybiAwfWZ1bmN0aW9uIGp4KGIsZSxmLGcsaCxpLGosayl7Yj1ifDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MDtjW2Y+PjJdPWI7Y1tpPj4yXT1nO2c9Y1tmPj4yXXwwO2Rv
e2lmKChrJjR8MCk9PTApe2w9Z31lbHNle2lmKChlLWd8MCk8PTIpe2w9ZzticmVha31pZigoYVtn
XXwwKSE9LTE3KXtsPWc7YnJlYWt9aWYoKGFbZysxfDBdfDApIT0tNjkpe2w9ZzticmVha31pZigo
YVtnKzJ8MF18MCkhPS02NSl7bD1nO2JyZWFrfWI9ZyszfDA7Y1tmPj4yXT1iO2w9Yn19d2hpbGUo
MCk7TDI5NDQ6ZG97aWYobD4+PjA8ZT4+PjApe2c9ZTtrPWNbaT4+Ml18MDtiPWw7TDI5NDY6d2hp
bGUoMSl7aWYoaz4+PjA+PWg+Pj4wKXttPWI7YnJlYWsgTDI5NDR9bj1hW2JdfDA7bz1uJjI1NTtk
b3tpZihuPDwyND4+MjQ+LTEpe2lmKG8+Pj4wPmo+Pj4wKXtwPTI7cT0yNjA5O2JyZWFrIEwyOTQ2
fWNbaz4+Ml09bztjW2Y+PjJdPShjW2Y+PjJdfDApKzF9ZWxzZXtpZigobiYyNTUpPDE5NCl7cD0y
O3E9MjYwMjticmVhayBMMjk0Nn1pZigobiYyNTUpPDIyNCl7aWYoKGctYnwwKTwyKXtwPTE7cT0y
NjA1O2JyZWFrIEwyOTQ2fXI9ZFtiKzF8MF18MDtpZigociYxOTJ8MCkhPTEyOCl7cD0yO3E9MjU5
ODticmVhayBMMjk0Nn1zPXImNjN8bzw8NiYxOTg0O2lmKHM+Pj4wPmo+Pj4wKXtwPTI7cT0yNjA0
O2JyZWFrIEwyOTQ2fWNbaz4+Ml09cztjW2Y+PjJdPShjW2Y+PjJdfDApKzI7YnJlYWt9aWYoKG4m
MjU1KTwyNDApe2lmKChnLWJ8MCk8Myl7cD0xO3E9MjYwNjticmVhayBMMjk0Nn1zPWFbYisxfDBd
fDA7c3dpdGNoKG98MCl7Y2FzZSAyMjQ6e2lmKChzJi0zMik8PDI0Pj4yNCE9LTk2KXtwPTI7cT0y
NTkxO2JyZWFrIEwyOTQ2fWJyZWFrfTtjYXNlIDIzNzp7aWYoKHMmLTMyKTw8MjQ+PjI0IT0tMTI4
KXtwPTI7cT0yNTkzO2JyZWFrIEwyOTQ2fWJyZWFrfTtkZWZhdWx0OntpZigocyYtNjQpPDwyND4+
MjQhPS0xMjgpe3A9MjtxPTI2MDM7YnJlYWsgTDI5NDZ9fX1yPWRbYisyfDBdfDA7aWYoKHImMTky
fDApIT0xMjgpe3A9MjtxPTI1OTQ7YnJlYWsgTDI5NDZ9dD0ocyYyNTUpPDw2JjQwMzJ8bzw8MTIm
NjE0NDB8ciY2MztpZih0Pj4+MD5qPj4+MCl7cD0yO3E9MjU5MjticmVhayBMMjk0Nn1jW2s+PjJd
PXQ7Y1tmPj4yXT0oY1tmPj4yXXwwKSszO2JyZWFrfWlmKChuJjI1NSk+PTI0NSl7cD0yO3E9MjYw
NzticmVhayBMMjk0Nn1pZigoZy1ifDApPDQpe3A9MTtxPTI2MDg7YnJlYWsgTDI5NDZ9dD1hW2Ir
MXwwXXwwO3N3aXRjaChvfDApe2Nhc2UgMjQwOntpZigodCsxMTImMjU1KT49NDgpe3A9MjtxPTI1
OTA7YnJlYWsgTDI5NDZ9YnJlYWt9O2Nhc2UgMjQ0OntpZigodCYtMTYpPDwyND4+MjQhPS0xMjgp
e3A9MjtxPTI1OTY7YnJlYWsgTDI5NDZ9YnJlYWt9O2RlZmF1bHQ6e2lmKCh0Ji02NCk8PDI0Pj4y
NCE9LTEyOCl7cD0yO3E9MjU5NzticmVhayBMMjk0Nn19fXI9ZFtiKzJ8MF18MDtpZigociYxOTJ8
MCkhPTEyOCl7cD0yO3E9MjU5OTticmVhayBMMjk0Nn1zPWRbYiszfDBdfDA7aWYoKHMmMTkyfDAp
IT0xMjgpe3A9MjtxPTI2MDE7YnJlYWsgTDI5NDZ9dT0odCYyNTUpPDwxMiYyNTgwNDh8bzw8MTgm
MTgzNTAwOHxyPDw2JjQwMzJ8cyY2MztpZih1Pj4+MD5qPj4+MCl7cD0yO3E9MjYwMDticmVhayBM
Mjk0Nn1jW2s+PjJdPXU7Y1tmPj4yXT0oY1tmPj4yXXwwKSs0fX13aGlsZSgwKTtvPShjW2k+PjJd
fDApKzR8MDtjW2k+PjJdPW87bj1jW2Y+PjJdfDA7aWYobj4+PjA8ZT4+PjApe2s9bztiPW59ZWxz
ZXttPW47YnJlYWsgTDI5NDR9fWlmKChxfDApPT0yNTk3KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8
MCk9PTI1OTgpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5OSl7cmV0dXJuIHB8MH1lbHNl
IGlmKChxfDApPT0yNjAwKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTMpe3JldHVybiBw
fDB9ZWxzZSBpZigocXwwKT09MjU5NCl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTk2KXty
ZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDUpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09
MjYwNil7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA3KXtyZXR1cm4gcHwwfWVsc2UgaWYo
KHF8MCk9PTI2MDgpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwOSl7cmV0dXJuIHB8MH1l
bHNlIGlmKChxfDApPT0yNTkwKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTEpe3JldHVy
biBwfDB9ZWxzZSBpZigocXwwKT09MjU5Mil7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjAx
KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDIpe3JldHVybiBwfDB9ZWxzZSBpZigocXww
KT09MjYwMyl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA0KXtyZXR1cm4gcHwwfX1lbHNl
e209bH19d2hpbGUoMCk7cD1tPj4+MDxlPj4+MHwwO3JldHVybiBwfDB9ZnVuY3Rpb24gankoYixj
LGUsZixnKXtiPWJ8MDtjPWN8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtkb3tpZigoZyY0fDApPT0w
KXtoPWJ9ZWxzZXtpZigoYy1ifDApPD0yKXtoPWI7YnJlYWt9aWYoKGFbYl18MCkhPS0xNyl7aD1i
O2JyZWFrfWlmKChhW2IrMXwwXXwwKSE9LTY5KXtoPWI7YnJlYWt9aD0oYVtiKzJ8MF18MCk9PS02
NT9iKzN8MDpifX13aGlsZSgwKTtMMzAxMTpkb3tpZihoPj4+MDxjPj4+MCYoZXwwKSE9MCl7Zz1j
O2k9MTtqPWg7TDMwMTM6d2hpbGUoMSl7az1hW2pdfDA7bD1rJjI1NTtkb3tpZihrPDwyND4+MjQ+
LTEpe2lmKGw+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzF8MH1lbHNle2lmKChrJjI1
NSk8MTk0KXttPWo7YnJlYWsgTDMwMTF9aWYoKGsmMjU1KTwyMjQpe2lmKChnLWp8MCk8Mil7bT1q
O2JyZWFrIEwzMDExfW89ZFtqKzF8MF18MDtpZigobyYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwz
MDExfWlmKChvJjYzfGw8PDYmMTk4NCk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzJ8
MDticmVha31pZigoayYyNTUpPDI0MCl7cD1qO2lmKChnLXB8MCk8Myl7bT1qO2JyZWFrIEwzMDEx
fW89YVtqKzF8MF18MDtzd2l0Y2gobHwwKXtjYXNlIDIyNDp7aWYoKG8mLTMyKTw8MjQ+PjI0IT0t
OTYpe3E9MjYzMDticmVhayBMMzAxM31icmVha307Y2FzZSAyMzc6e2lmKChvJi0zMik8PDI0Pj4y
NCE9LTEyOCl7cT0yNjMyO2JyZWFrIEwzMDEzfWJyZWFrfTtkZWZhdWx0OntpZigobyYtNjQpPDwy
ND4+MjQhPS0xMjgpe3E9MjYzNDticmVhayBMMzAxM319fXI9ZFtqKzJ8MF18MDtpZigociYxOTJ8
MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKCgobyYyNTUpPDw2JjQwMzJ8bDw8MTImNjE0NDB8
ciY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzN8MDticmVha31pZigoayYyNTUp
Pj0yNDUpe209ajticmVhayBMMzAxMX1zPWo7aWYoKGctc3wwKTw0KXttPWo7YnJlYWsgTDMwMTF9
cj1hW2orMXwwXXwwO3N3aXRjaChsfDApe2Nhc2UgMjQwOntpZigocisxMTImMjU1KT49NDgpe3E9
MjY0MjticmVhayBMMzAxM31icmVha307Y2FzZSAyNDQ6e2lmKChyJi0xNik8PDI0Pj4yNCE9LTEy
OCl7cT0yNjQ0O2JyZWFrIEwzMDEzfWJyZWFrfTtkZWZhdWx0OntpZigociYtNjQpPDwyND4+MjQh
PS0xMjgpe3E9MjY0NjticmVhayBMMzAxM319fW89ZFtqKzJ8MF18MDtpZigobyYxOTJ8MCkhPTEy
OCl7bT1qO2JyZWFrIEwzMDExfXQ9ZFtqKzN8MF18MDtpZigodCYxOTJ8MCkhPTEyOCl7bT1qO2Jy
ZWFrIEwzMDExfWlmKCgociYyNTUpPDwxMiYyNTgwNDh8bDw8MTgmMTgzNTAwOHxvPDw2JjQwMzJ8
dCY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzR8MH19d2hpbGUoMCk7aWYoIShu
Pj4+MDxjPj4+MCZpPj4+MDxlPj4+MCkpe209bjticmVhayBMMzAxMX1pPWkrMXwwO2o9bn1pZigo
cXwwKT09MjY0NCl7dT1zLWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYoKHF8MCk9PTI2NDIpe3U9cy1i
fDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjMwKXt1PXAtYnwwO3JldHVybiB1fDB9ZWxz
ZSBpZigocXwwKT09MjYzMil7dT1wLWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYoKHF8MCk9PTI2MzQp
e3U9cC1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjQ2KXt1PXMtYnwwO3JldHVybiB1
fDB9fWVsc2V7bT1ofX13aGlsZSgwKTt1PW0tYnwwO3JldHVybiB1fDB9ZnVuY3Rpb24ganooYil7
Yj1ifDA7cmV0dXJuIGFbYis4fDBdfDB9ZnVuY3Rpb24gakEoYSl7YT1hfDA7cmV0dXJuIGNbYSs4
Pj4yXXwwfWZ1bmN0aW9uIGpCKGIpe2I9YnwwO3JldHVybiBhW2IrOXwwXXwwfWZ1bmN0aW9uIGpD
KGEpe2E9YXwwO3JldHVybiBjW2ErMTI+PjJdfDB9ZnVuY3Rpb24gakQoYSxiLGQsZSxmLGcsaCxq
KXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0w
LGw9MDtiPWk7aT1pKzE2fDA7YT1ifDA7az1iKzh8MDtjW2E+PjJdPWQ7Y1trPj4yXT1nO2w9ango
ZCxlLGEsZyxoLGssMTExNDExMSwwKXwwO2NbZj4+Ml09ZCsoKGNbYT4+Ml18MCktZCk7Y1tqPj4y
XT1nKygoY1trPj4yXXwwKS1nPj4yPDwyKTtpPWI7cmV0dXJuIGx8MH1mdW5jdGlvbiBqRShhLGIs
YyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO3JldHVybiBqeShjLGQsZSwxMTE0
MTExLDApfDB9ZnVuY3Rpb24gakYoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24gakcoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gakgoYSl7YT1hfDA7
Y1thPj4yXT0zMDMyO2RQKGErMTJ8MCk7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gakko
YSl7YT1hfDA7Y1thPj4yXT0zMDMyO2RQKGErMTJ8MCk7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24g
akooYSl7YT1hfDA7Y1thPj4yXT0yOTg0O2RQKGErMTZ8MCk7ZGUoYXwwKTtrUyhhKTtyZXR1cm59
ZnVuY3Rpb24gaksoYSl7YT1hfDA7Y1thPj4yXT0yOTg0O2RQKGErMTZ8MCk7ZGUoYXwwKTtyZXR1
cm59ZnVuY3Rpb24gakwoYSxiKXthPWF8MDtiPWJ8MDtkWShhLGIrMTJ8MCk7cmV0dXJufWZ1bmN0
aW9uIGpNKGEsYil7YT1hfDA7Yj1ifDA7ZFkoYSxiKzE2fDApO3JldHVybn1mdW5jdGlvbiBqTihh
LGIpe2E9YXwwO2I9YnwwO2RaKGEsMTI4OCw0KTtyZXR1cm59ZnVuY3Rpb24gak8oYSxiKXthPWF8
MDtiPWJ8MDtleChhLDEyNjQsa20oMTI2NCl8MCk7cmV0dXJufWZ1bmN0aW9uIGpQKGEsYil7YT1h
fDA7Yj1ifDA7ZFooYSwxMjU2LDUpO3JldHVybn1mdW5jdGlvbiBqUShhLGIpe2E9YXwwO2I9Ynww
O2V4KGEsMTIzMixrbSgxMjMyKXwwKTtyZXR1cm59ZnVuY3Rpb24galIoYil7Yj1ifDA7dmFyIGQ9
MDtpZigoYVsxNjM1Ml18MCkhPTApe2Q9Y1szNzAyXXwwO3JldHVybiBkfDB9aWYoKGJjKDE2MzUy
KXwwKT09MCl7ZD1jWzM3MDJdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsxNjIzMl18MCk9PTApe2lm
KChiYygxNjIzMil8MCk9PTApe2JyZWFrfWskKDExMzQ0LDAsMTY4KTthJCgyNjYsMCx1fDApfDB9
fXdoaWxlKDApO2RRKDExMzQ0LDE1MzYpfDA7ZFEoMTEzNTYsMTUyOCl8MDtkUSgxMTM2OCwxNTIw
KXwwO2RRKDExMzgwLDE1MDQpfDA7ZFEoMTEzOTIsMTQ4OCl8MDtkUSgxMTQwNCwxNDgwKXwwO2RR
KDExNDE2LDE0NjQpfDA7ZFEoMTE0MjgsMTQ1Nil8MDtkUSgxMTQ0MCwxNDQ4KXwwO2RRKDExNDUy
LDE0NDApfDA7ZFEoMTE0NjQsMTQzMil8MDtkUSgxMTQ3NiwxNDAwKXwwO2RRKDExNDg4LDEzOTIp
fDA7ZFEoMTE1MDAsMTM4NCl8MDtjWzM3MDJdPTExMzQ0O2Q9Y1szNzAyXXwwO3JldHVybiBkfDB9
ZnVuY3Rpb24galMoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjI5Nl18MCkhPTApe2Q9Y1szNjgw
XXwwO3JldHVybiBkfDB9aWYoKGJjKDE2Mjk2KXwwKT09MCl7ZD1jWzM2ODBdfDA7cmV0dXJuIGR8
MH1kb3tpZigoYVsxNjIwOF18MCk9PTApe2lmKChiYygxNjIwOCl8MCk9PTApe2JyZWFrfWskKDEw
NjAwLDAsMTY4KTthJCgxNDgsMCx1fDApfDB9fXdoaWxlKDApO2VmKDEwNjAwLDE5MTIpfDA7ZWYo
MTA2MTIsMTg4MCl8MDtlZigxMDYyNCwxODQ4KXwwO2VmKDEwNjM2LDE4MDgpfDA7ZWYoMTA2NDgs
MTc2OCl8MDtlZigxMDY2MCwxNzM2KXwwO2VmKDEwNjcyLDE2OTYpfDA7ZWYoMTA2ODQsMTY4MCl8
MDtlZigxMDY5NiwxNjI0KXwwO2VmKDEwNzA4LDE2MDgpfDA7ZWYoMTA3MjAsMTU5Mil8MDtlZigx
MDczMiwxNTc2KXwwO2VmKDEwNzQ0LDE1NjApfDA7ZWYoMTA3NTYsMTU0NCl8MDtjWzM2ODBdPTEw
NjAwO2Q9Y1szNjgwXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galQoYil7Yj1ifDA7dmFyIGQ9MDtp
ZigoYVsxNjM0NF18MCkhPTApe2Q9Y1szNzAwXXwwO3JldHVybiBkfDB9aWYoKGJjKDE2MzQ0KXww
KT09MCl7ZD1jWzM3MDBdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsxNjIyNF18MCk9PTApe2lmKChi
YygxNjIyNCl8MCk9PTApe2JyZWFrfWskKDExMDU2LDAsMjg4KTthJCgxNzAsMCx1fDApfDB9fXdo
aWxlKDApO2RRKDExMDU2LDI4OCl8MDtkUSgxMTA2OCwyNzIpfDA7ZFEoMTEwODAsMjY0KXwwO2RR
KDExMDkyLDI1Nil8MDtkUSgxMTEwNCwyNDgpfDA7ZFEoMTExMTYsMjQwKXwwO2RRKDExMTI4LDIz
Mil8MDtkUSgxMTE0MCwyMjQpfDA7ZFEoMTExNTIsMTY4KXwwO2RRKDExMTY0LDE2MCl8MDtkUSgx
MTE3NiwxNDQpfDA7ZFEoMTExODgsMTI4KXwwO2RRKDExMjAwLDEyMCl8MDtkUSgxMTIxMiwxMTIp
fDA7ZFEoMTEyMjQsMTA0KXwwO2RRKDExMjM2LDk2KXwwO2RRKDExMjQ4LDI0OCl8MDtkUSgxMTI2
MCw4OCl8MDtkUSgxMTI3Miw4MCl8MDtkUSgxMTI4NCwxOTc2KXwwO2RRKDExMjk2LDE5NjgpfDA7
ZFEoMTEzMDgsMTk2MCl8MDtkUSgxMTMyMCwxOTUyKXwwO2RRKDExMzMyLDE5NDQpfDA7Y1szNzAw
XT0xMTA1NjtkPWNbMzcwMF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpVKGIpe2I9YnwwO3ZhciBk
PTA7aWYoKGFbMTYyODhdfDApIT0wKXtkPWNbMzY3OF18MDtyZXR1cm4gZHwwfWlmKChiYygxNjI4
OCl8MCk9PTApe2Q9Y1szNjc4XXwwO3JldHVybiBkfDB9ZG97aWYoKGFbMTYyMDBdfDApPT0wKXtp
ZigoYmMoMTYyMDApfDApPT0wKXticmVha31rJCgxMDMxMiwwLDI4OCk7YSQoMTIyLDAsdXwwKXww
fX13aGlsZSgwKTtlZigxMDMxMiw4MjQpfDA7ZWYoMTAzMjQsNzg0KXwwO2VmKDEwMzM2LDc2MCl8
MDtlZigxMDM0OCw3MzYpfDA7ZWYoMTAzNjAsNDI0KXwwO2VmKDEwMzcyLDcxMil8MDtlZigxMDM4
NCw2ODgpfDA7ZWYoMTAzOTYsNjU2KXwwO2VmKDEwNDA4LDYxNil8MDtlZigxMDQyMCw1ODQpfDA7
ZWYoMTA0MzIsNTQ0KXwwO2VmKDEwNDQ0LDUwNCl8MDtlZigxMDQ1Niw0ODgpfDA7ZWYoMTA0Njgs
NDcyKXwwO2VmKDEwNDgwLDQ1Nil8MDtlZigxMDQ5Miw0NDApfDA7ZWYoMTA1MDQsNDI0KXwwO2Vm
KDEwNTE2LDQwOCl8MDtlZigxMDUyOCwzOTIpfDA7ZWYoMTA1NDAsMzc2KXwwO2VmKDEwNTUyLDM0
NCl8MDtlZigxMDU2NCwzMjgpfDA7ZWYoMTA1NzYsMzEyKXwwO2VmKDEwNTg4LDI5Nil8MDtjWzM2
NzhdPTEwMzEyO2Q9Y1szNjc4XXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galYoYil7Yj1ifDA7dmFy
IGQ9MDtpZigoYVsxNjM2MF18MCkhPTApe2Q9Y1szNzA0XXwwO3JldHVybiBkfDB9aWYoKGJjKDE2
MzYwKXwwKT09MCl7ZD1jWzM3MDRdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsxNjI0MF18MCk9PTAp
e2lmKChiYygxNjI0MCl8MCk9PTApe2JyZWFrfWskKDExNTEyLDAsMjg4KTthJCgxMjAsMCx1fDAp
fDB9fXdoaWxlKDApO2RRKDExNTEyLDg2NCl8MDtkUSgxMTUyNCw4NTYpfDA7Y1szNzA0XT0xMTUx
MjtkPWNbMzcwNF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpXKGIpe2I9YnwwO3ZhciBkPTA7aWYo
KGFbMTYzMDRdfDApIT0wKXtkPWNbMzY4Ml18MDtyZXR1cm4gZHwwfWlmKChiYygxNjMwNCl8MCk9
PTApe2Q9Y1szNjgyXXwwO3JldHVybiBkfDB9ZG97aWYoKGFbMTYyMTZdfDApPT0wKXtpZigoYmMo
MTYyMTYpfDApPT0wKXticmVha31rJCgxMDc2OCwwLDI4OCk7YSQoMjQwLDAsdXwwKXwwfX13aGls
ZSgwKTtlZigxMDc2OCw4ODgpfDA7ZWYoMTA3ODAsODcyKXwwO2NbMzY4Ml09MTA3Njg7ZD1jWzM2
ODJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBqWChiKXtiPWJ8MDtpZigoYVsxNjM2OF18MCkhPTAp
e3JldHVybiAxNDgyNH1pZigoYmMoMTYzNjgpfDApPT0wKXtyZXR1cm4gMTQ4MjR9ZFooMTQ4MjQs
MTIxNiw4KTthJCgyNTgsMTQ4MjQsdXwwKXwwO3JldHVybiAxNDgyNH1mdW5jdGlvbiBqWShiKXti
PWJ8MDtpZigoYVsxNjMxMl18MCkhPTApe3JldHVybiAxNDczNn1pZigoYmMoMTYzMTIpfDApPT0w
KXtyZXR1cm4gMTQ3MzZ9ZXgoMTQ3MzYsMTE3NixrbSgxMTc2KXwwKTthJCgxOTIsMTQ3MzYsdXww
KXwwO3JldHVybiAxNDczNn1mdW5jdGlvbiBqWihiKXtiPWJ8MDtpZigoYVsxNjM5Ml18MCkhPTAp
e3JldHVybiAxNDg3Mn1pZigoYmMoMTYzOTIpfDApPT0wKXtyZXR1cm4gMTQ4NzJ9ZFooMTQ4NzIs
MTE0NCw4KTthJCgyNTgsMTQ4NzIsdXwwKXwwO3JldHVybiAxNDg3Mn1mdW5jdGlvbiBqXyhiKXti
PWJ8MDtpZigoYVsxNjMzNl18MCkhPTApe3JldHVybiAxNDc4NH1pZigoYmMoMTYzMzYpfDApPT0w
KXtyZXR1cm4gMTQ3ODR9ZXgoMTQ3ODQsMTEwNCxrbSgxMTA0KXwwKTthJCgxOTIsMTQ3ODQsdXww
KXwwO3JldHVybiAxNDc4NH1mdW5jdGlvbiBqJChiKXtiPWJ8MDtpZigoYVsxNjM4NF18MCkhPTAp
e3JldHVybiAxNDg1Nn1pZigoYmMoMTYzODQpfDApPT0wKXtyZXR1cm4gMTQ4NTZ9ZFooMTQ4NTYs
MTA4MCwyMCk7YSQoMjU4LDE0ODU2LHV8MCl8MDtyZXR1cm4gMTQ4NTZ9ZnVuY3Rpb24gajAoYil7
Yj1ifDA7aWYoKGFbMTYzMjhdfDApIT0wKXtyZXR1cm4gMTQ3Njh9aWYoKGJjKDE2MzI4KXwwKT09
MCl7cmV0dXJuIDE0NzY4fWV4KDE0NzY4LDk5MixrbSg5OTIpfDApO2EkKDE5MiwxNDc2OCx1fDAp
fDA7cmV0dXJuIDE0NzY4fWZ1bmN0aW9uIGoxKGIpe2I9YnwwO2lmKChhWzE2Mzc2XXwwKSE9MCl7
cmV0dXJuIDE0ODQwfWlmKChiYygxNjM3Nil8MCk9PTApe3JldHVybiAxNDg0MH1kWigxNDg0MCw5
NzYsMTEpO2EkKDI1OCwxNDg0MCx1fDApfDA7cmV0dXJuIDE0ODQwfWZ1bmN0aW9uIGoyKGIpe2I9
YnwwO2lmKChhWzE2MzIwXXwwKSE9MCl7cmV0dXJuIDE0NzUyfWlmKChiYygxNjMyMCl8MCk9PTAp
e3JldHVybiAxNDc1Mn1leCgxNDc1Miw5Mjgsa20oOTI4KXwwKTthJCgxOTIsMTQ3NTIsdXwwKXww
O3JldHVybiAxNDc1Mn1mdW5jdGlvbiBqMyhhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wO2I9
YSs0fDA7ZD0oY1thPj4yXXwwKSsoY1tiKzQ+PjJdfDApfDA7YT1kO2U9Y1tiPj4yXXwwO2lmKChl
JjF8MCk9PTApe2Y9ZTtiWVtmJjUxMV0oYSk7cmV0dXJufWVsc2V7Zj1jWyhjW2Q+PjJdfDApKyhl
LTEpPj4yXXwwO2JZW2YmNTExXShhKTtyZXR1cm59fWZ1bmN0aW9uIGo0KGEpe2E9YXwwO2VlKDEx
MDQ0KTtlZSgxMTAzMik7ZWUoMTEwMjApO2VlKDExMDA4KTtlZSgxMDk5Nik7ZWUoMTA5ODQpO2Vl
KDEwOTcyKTtlZSgxMDk2MCk7ZWUoMTA5NDgpO2VlKDEwOTM2KTtlZSgxMDkyNCk7ZWUoMTA5MTIp
O2VlKDEwOTAwKTtlZSgxMDg4OCk7ZWUoMTA4NzYpO2VlKDEwODY0KTtlZSgxMDg1Mik7ZWUoMTA4
NDApO2VlKDEwODI4KTtlZSgxMDgxNik7ZWUoMTA4MDQpO2VlKDEwNzkyKTtlZSgxMDc4MCk7ZWUo
MTA3NjgpO3JldHVybn1mdW5jdGlvbiBqNShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9
MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2U9Yis4fDA7Zj1i
KzR8MDtnPWNbZj4+Ml18MDtoPWNbZT4+Ml18MDtpPWc7aWYoaC1pPj4yPj4+MD49ZD4+PjApe2o9
ZDtrPWc7ZG97aWYoKGt8MCk9PTApe2w9MH1lbHNle2Nbaz4+Ml09MDtsPWNbZj4+Ml18MH1rPWwr
NHwwO2NbZj4+Ml09aztqPWotMXwwO313aGlsZSgoanwwKSE9MCk7cmV0dXJufWo9YisxNnwwO2s9
YnwwO2w9Y1trPj4yXXwwO2c9aS1sPj4yO2k9ZytkfDA7aWYoaT4+PjA+MTA3Mzc0MTgyMyl7aXIo
MCl9bT1oLWx8MDtkb3tpZihtPj4yPj4+MD41MzY4NzA5MTApe249MTA3Mzc0MTgyMztvPTI5MTl9
ZWxzZXtsPW0+PjE7aD1sPj4+MDxpPj4+MD9pOmw7aWYoKGh8MCk9PTApe3A9MDtxPTA7YnJlYWt9
bD1iKzEyOHwwO2lmKCEoKGFbbF0mMSk9PTAmaD4+PjA8MjkpKXtuPWg7bz0yOTE5O2JyZWFrfWFb
bF09MTtwPWo7cT1ofX13aGlsZSgwKTtpZigob3wwKT09MjkxOSl7cD1rTyhuPDwyKXwwO3E9bn1u
PWQ7ZD1wKyhnPDwyKXwwO2Rve2lmKChkfDApPT0wKXtyPTB9ZWxzZXtjW2Q+PjJdPTA7cj1kfWQ9
cis0fDA7bj1uLTF8MDt9d2hpbGUoKG58MCkhPTApO249cCsocTw8Mil8MDtxPWNbaz4+Ml18MDty
PShjW2Y+PjJdfDApLXF8MDtvPXArKGctKHI+PjIpPDwyKXwwO2c9bztwPXE7a1koZ3wwLHB8MCxy
KXwwO2Nbaz4+Ml09bztjW2Y+PjJdPWQ7Y1tlPj4yXT1uO2lmKChxfDApPT0wKXtyZXR1cm59aWYo
KHF8MCk9PShqfDApKXthW2IrMTI4fDBdPTA7cmV0dXJufWVsc2V7a1MocCk7cmV0dXJufX1mdW5j
dGlvbiBqNihhKXthPWF8MDtkUCgxMTc4OCk7ZFAoMTE3NzYpO2RQKDExNzY0KTtkUCgxMTc1Mik7
ZFAoMTE3NDApO2RQKDExNzI4KTtkUCgxMTcxNik7ZFAoMTE3MDQpO2RQKDExNjkyKTtkUCgxMTY4
MCk7ZFAoMTE2NjgpO2RQKDExNjU2KTtkUCgxMTY0NCk7ZFAoMTE2MzIpO2RQKDExNjIwKTtkUCgx
MTYwOCk7ZFAoMTE1OTYpO2RQKDExNTg0KTtkUCgxMTU3Mik7ZFAoMTE1NjApO2RQKDExNTQ4KTtk
UCgxMTUzNik7ZFAoMTE1MjQpO2RQKDExNTEyKTtyZXR1cm59ZnVuY3Rpb24gajcoYSl7YT1hfDA7
ZWUoMTA1ODgpO2VlKDEwNTc2KTtlZSgxMDU2NCk7ZWUoMTA1NTIpO2VlKDEwNTQwKTtlZSgxMDUy
OCk7ZWUoMTA1MTYpO2VlKDEwNTA0KTtlZSgxMDQ5Mik7ZWUoMTA0ODApO2VlKDEwNDY4KTtlZSgx
MDQ1Nik7ZWUoMTA0NDQpO2VlKDEwNDMyKTtlZSgxMDQyMCk7ZWUoMTA0MDgpO2VlKDEwMzk2KTtl
ZSgxMDM4NCk7ZWUoMTAzNzIpO2VlKDEwMzYwKTtlZSgxMDM0OCk7ZWUoMTAzMzYpO2VlKDEwMzI0
KTtlZSgxMDMxMik7cmV0dXJufWZ1bmN0aW9uIGo4KGEpe2E9YXwwO2RQKDExMzMyKTtkUCgxMTMy
MCk7ZFAoMTEzMDgpO2RQKDExMjk2KTtkUCgxMTI4NCk7ZFAoMTEyNzIpO2RQKDExMjYwKTtkUCgx
MTI0OCk7ZFAoMTEyMzYpO2RQKDExMjI0KTtkUCgxMTIxMik7ZFAoMTEyMDApO2RQKDExMTg4KTtk
UCgxMTE3Nik7ZFAoMTExNjQpO2RQKDExMTUyKTtkUCgxMTE0MCk7ZFAoMTExMjgpO2RQKDExMTE2
KTtkUCgxMTEwNCk7ZFAoMTEwOTIpO2RQKDExMDgwKTtkUCgxMTA2OCk7ZFAoMTEwNTYpO3JldHVy
bn1mdW5jdGlvbiBqOShhKXthPWF8MDtlZSgxMDc1Nik7ZWUoMTA3NDQpO2VlKDEwNzMyKTtlZSgx
MDcyMCk7ZWUoMTA3MDgpO2VlKDEwNjk2KTtlZSgxMDY4NCk7ZWUoMTA2NzIpO2VlKDEwNjYwKTtl
ZSgxMDY0OCk7ZWUoMTA2MzYpO2VlKDEwNjI0KTtlZSgxMDYxMik7ZWUoMTA2MDApO3JldHVybn1m
dW5jdGlvbiBrYShhKXthPWF8MDtkUCgxMTUwMCk7ZFAoMTE0ODgpO2RQKDExNDc2KTtkUCgxMTQ2
NCk7ZFAoMTE0NTIpO2RQKDExNDQwKTtkUCgxMTQyOCk7ZFAoMTE0MTYpO2RQKDExNDA0KTtkUCgx
MTM5Mik7ZFAoMTEzODApO2RQKDExMzY4KTtkUCgxMTM1Nik7ZFAoMTEzNDQpO3JldHVybn1mdW5j
dGlvbiBrYihhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJuIGtjKDAsYSxiLChjfDApIT0w
P2M6OTgzMil8MH1mdW5jdGlvbiBrYyhiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2
YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCx0PTAsdT0wLHY9
MCx3PTA7Zz1pO2k9aSs4fDA7aD1nfDA7Y1toPj4yXT1iO2o9KChmfDApPT0wPzk4MjQ6Zil8MDtm
PWNbaj4+Ml18MDtMNzpkb3tpZigoZHwwKT09MCl7aWYoKGZ8MCk9PTApe2s9MH1lbHNle2JyZWFr
fWk9ZztyZXR1cm4ga3wwfWVsc2V7aWYoKGJ8MCk9PTApe2w9aDtjW2g+PjJdPWw7bT1sfWVsc2V7
bT1ifWlmKChlfDApPT0wKXtrPS0yO2k9ZztyZXR1cm4ga3wwfWRve2lmKChmfDApPT0wKXtsPWFb
ZF18MDtuPWwmMjU1O2lmKGw8PDI0Pj4yND4tMSl7Y1ttPj4yXT1uO2s9bDw8MjQ+PjI0IT0wfDA7
aT1nO3JldHVybiBrfDB9ZWxzZXtsPW4tMTk0fDA7aWYobD4+PjA+NTApe2JyZWFrIEw3fW89ZCsx
fDA7cD1jW3MrKGw8PDIpPj4yXXwwO3E9ZS0xfDA7YnJlYWt9fWVsc2V7bz1kO3A9ZjtxPWV9fXdo
aWxlKDApO0wyNTpkb3tpZigocXwwKT09MCl7cj1wfWVsc2V7bD1hW29dfDA7bj0obCYyNTUpPj4+
MztpZigobi0xNnxuKyhwPj4yNikpPj4+MD43KXticmVhayBMN31lbHNle3Q9bzt1PXA7dj1xO3c9
bH13aGlsZSgxKXt0PXQrMXwwO3U9KHcmMjU1KS0xMjh8dTw8Njt2PXYtMXwwO2lmKCh1fDApPj0w
KXticmVha31pZigodnwwKT09MCl7cj11O2JyZWFrIEwyNX13PWFbdF18MDtpZigoKHcmMjU1KS0x
Mjh8MCk+Pj4wPjYzKXticmVhayBMN319Y1tqPj4yXT0wO2NbbT4+Ml09dTtrPWUtdnwwO2k9Zzty
ZXR1cm4ga3wwfX13aGlsZSgwKTtjW2o+PjJdPXI7az0tMjtpPWc7cmV0dXJuIGt8MH19d2hpbGUo
MCk7Y1tqPj4yXT0wO2NbKGJ3KCl8MCk+PjJdPTEzODtrPS0xO2k9ZztyZXR1cm4ga3wwfWZ1bmN0
aW9uIGtkKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxo
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7Zz1p
O2k9aSsxMDMyfDA7aD1nfDA7aj1nKzEwMjR8MDtrPWNbYj4+Ml18MDtjW2o+PjJdPWs7bD0oYXww
KSE9MDttPWw/ZToyNTY7ZT1sP2E6aHwwO0wzODpkb3tpZigoa3wwKT09MHwobXwwKT09MCl7bj0w
O289ZDtwPW07cT1lO3I9a31lbHNle2E9aHwwO3M9bTt0PWQ7dT0wO3Y9ZTt3PWs7d2hpbGUoMSl7
eD10Pj4+Mjt5PXg+Pj4wPj1zPj4+MDtpZighKHl8dD4+PjA+MTMxKSl7bj11O289dDtwPXM7cT12
O3I9dzticmVhayBMMzh9ej15P3M6eDtBPXQtenwwO3g9a2UodixqLHosZil8MDtpZigoeHwwKT09
LTEpe2JyZWFrfWlmKCh2fDApPT0oYXwwKSl7Qj1hO0M9c31lbHNle0I9disoeDw8Mil8MDtDPXMt
eHwwfXo9eCt1fDA7eD1jW2o+PjJdfDA7aWYoKHh8MCk9PTB8KEN8MCk9PTApe249ejtvPUE7cD1D
O3E9QjtyPXg7YnJlYWsgTDM4fWVsc2V7cz1DO3Q9QTt1PXo7dj1CO3c9eH19bj0tMTtvPUE7cD0w
O3E9djtyPWNbaj4+Ml18MH19d2hpbGUoMCk7TDQ5OmRve2lmKChyfDApPT0wKXtEPW59ZWxzZXtp
ZigocHwwKT09MHwob3wwKT09MCl7RD1uO2JyZWFrfWVsc2V7RT1wO0Y9bztHPW47SD1xO0k9cn13
aGlsZSgxKXtKPWtjKEgsSSxGLGYpfDA7aWYoKEorMnwwKT4+PjA8Myl7YnJlYWt9QT0oY1tqPj4y
XXwwKStKfDA7Y1tqPj4yXT1BO0I9RS0xfDA7Qz1HKzF8MDtpZigoQnwwKT09MHwoRnwwKT09KEp8
MCkpe0Q9QzticmVhayBMNDl9ZWxzZXtFPUI7Rj1GLUp8MDtHPUM7SD1IKzR8MDtJPUF9fXN3aXRj
aChKfDApe2Nhc2UgMDp7Y1tqPj4yXT0wO0Q9RzticmVhayBMNDk7YnJlYWt9O2Nhc2UtMTp7RD0t
MTticmVhayBMNDk7YnJlYWt9O2RlZmF1bHQ6e2NbZj4+Ml09MDtEPUc7YnJlYWsgTDQ5fX19fXdo
aWxlKDApO2lmKCFsKXtpPWc7cmV0dXJuIER8MH1jW2I+PjJdPWNbaj4+Ml07aT1nO3JldHVybiBE
fDB9ZnVuY3Rpb24ga2UoYixlLGYsZyl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxp
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAs
Xz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MDtoPWNbZT4+Ml18MDtkb3tpZigo
Z3wwKT09MCl7aT01Nn1lbHNle2o9Z3wwO2s9Y1tqPj4yXXwwO2lmKChrfDApPT0wKXtpPTU2O2Jy
ZWFrfWlmKChifDApPT0wKXtsPWs7bT1oO249ZjtpPTY3O2JyZWFrfWNbaj4+Ml09MDtvPWs7cD1o
O3E9YjtyPWY7aT04N319d2hpbGUoMCk7aWYoKGl8MCk9PTU2KXtpZigoYnwwKT09MCl7dD1oO3U9
ZjtpPTU4fWVsc2V7dj1oO3c9Yjt4PWY7aT01N319TDcwOndoaWxlKDEpe2lmKChpfDApPT04Nyl7
aT0wO2g9ZFtwXXwwO2c9aD4+PjM7aWYoKGctMTZ8Zysobz4+MjYpKT4+PjA+Nyl7aT04ODticmVh
a31nPXArMXwwO3k9aC0xMjh8bzw8Njtkb3tpZigoeXwwKTwwKXtoPShkW2ddfDApLTEyOHwwO2lm
KGg+Pj4wPjYzKXtpPTkxO2JyZWFrIEw3MH1rPXArMnwwO3o9aHx5PDw2O2lmKCh6fDApPj0wKXtB
PXo7Qj1rO2JyZWFrfWg9KGRba118MCktMTI4fDA7aWYoaD4+PjA+NjMpe2k9OTQ7YnJlYWsgTDcw
fUE9aHx6PDw2O0I9cCszfDB9ZWxzZXtBPXk7Qj1nfX13aGlsZSgwKTtjW3E+PjJdPUE7dj1CO3c9
cSs0fDA7eD1yLTF8MDtpPTU3O2NvbnRpbnVlfWVsc2UgaWYoKGl8MCk9PTU4KXtpPTA7Zz1hW3Rd
fDA7ZG97aWYoKChnJjI1NSktMXwwKT4+PjA8MTI3KXtpZigodCYzfDApIT0wKXtDPXQ7RD11O0U9
ZzticmVha31oPWNbdD4+Ml18MDtpZigoKGgtMTY4NDMwMDl8aCkmLTIxMzkwNjIxNDR8MCk9PTAp
e0Y9dTtHPXR9ZWxzZXtDPXQ7RD11O0U9aCYyNTU7YnJlYWt9ZG97Rz1HKzR8MDtGPUYtNHwwO0g9
Y1tHPj4yXXwwO313aGlsZSgoKEgtMTY4NDMwMDl8SCkmLTIxMzkwNjIxNDR8MCk9PTApO0M9RztE
PUY7RT1IJjI1NX1lbHNle0M9dDtEPXU7RT1nfX13aGlsZSgwKTtnPUUmMjU1O2lmKChnLTF8MCk+
Pj4wPDEyNyl7dD1DKzF8MDt1PUQtMXwwO2k9NTg7Y29udGludWV9aD1nLTE5NHwwO2lmKGg+Pj4w
PjUwKXtJPUQ7Sj1iO0s9QztpPTk4O2JyZWFrfWw9Y1tzKyhoPDwyKT4+Ml18MDttPUMrMXwwO249
RDtpPTY3O2NvbnRpbnVlfWVsc2UgaWYoKGl8MCk9PTU3KXtpPTA7aWYoKHh8MCk9PTApe0w9Zjtp
PTEwNjticmVha31lbHNle009eDtOPXc7Tz12fXdoaWxlKDEpe2g9YVtPXXwwO2Rve2lmKCgoaCYy
NTUpLTF8MCk+Pj4wPDEyNyl7aWYoKE8mM3wwKT09MCZNPj4+MD4zKXtQPU07UT1OO1I9T31lbHNl
e1M9TztUPU47VT1NO1Y9aDticmVha313aGlsZSgxKXtXPWNbUj4+Ml18MDtpZigoKFctMTY4NDMw
MDl8VykmLTIxMzkwNjIxNDR8MCkhPTApe2k9ODE7YnJlYWt9Y1tRPj4yXT1XJjI1NTtjW1ErND4+
Ml09ZFtSKzF8MF18MDtjW1ErOD4+Ml09ZFtSKzJ8MF18MDtYPVIrNHwwO1k9USsxNnwwO2NbUSsx
Mj4+Ml09ZFtSKzN8MF18MDtaPVAtNHwwO2lmKFo+Pj4wPjMpe1A9WjtRPVk7Uj1YfWVsc2V7aT04
MjticmVha319aWYoKGl8MCk9PTgxKXtpPTA7Uz1SO1Q9UTtVPVA7Vj1XJjI1NTticmVha31lbHNl
IGlmKChpfDApPT04Mil7aT0wO1M9WDtUPVk7VT1aO1Y9YVtYXXwwO2JyZWFrfX1lbHNle1M9TztU
PU47VT1NO1Y9aH19d2hpbGUoMCk7Xz1WJjI1NTtpZigoXy0xfDApPj4+MD49MTI3KXticmVha31j
W1Q+PjJdPV87aD1VLTF8MDtpZigoaHwwKT09MCl7TD1mO2k9MTA1O2JyZWFrIEw3MH1lbHNle009
aDtOPVQrNHwwO089UysxfDB9fWg9Xy0xOTR8MDtpZihoPj4+MD41MCl7ST1VO0o9VDtLPVM7aT05
ODticmVha31vPWNbcysoaDw8Mik+PjJdfDA7cD1TKzF8MDtxPVQ7cj1VO2k9ODc7Y29udGludWV9
ZWxzZSBpZigoaXwwKT09Njcpe2k9MDtoPShkW21dfDApPj4+MztpZigoaC0xNnxoKyhsPj4yNikp
Pj4+MD43KXtpPTY4O2JyZWFrfWg9bSsxfDA7ZG97aWYoKGwmMzM1NTQ0MzJ8MCk9PTApeyQ9aH1l
bHNle2lmKCgoZFtoXXwwKS0xMjh8MCk+Pj4wPjYzKXtpPTcxO2JyZWFrIEw3MH1nPW0rMnwwO2lm
KChsJjUyNDI4OHwwKT09MCl7JD1nO2JyZWFrfWlmKCgoZFtnXXwwKS0xMjh8MCk+Pj4wPjYzKXtp
PTc0O2JyZWFrIEw3MH0kPW0rM3wwfX13aGlsZSgwKTt0PSQ7dT1uLTF8MDtpPTU4O2NvbnRpbnVl
fX1pZigoaXwwKT09NzEpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9OTd9ZWxzZSBpZigoaXww
KT09NzQpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9OTd9ZWxzZSBpZigoaXwwKT09Njgpe2Fh
PWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9OTd9ZWxzZSBpZigoaXwwKT09ODgpe2FhPW87YWI9cC0x
fDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09OTEpe2FhPXk7YWI9cC0xfDA7YWM9cTth
ZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09OTQpe2FhPXo7YWI9cC0xfDA7YWM9cTthZD1yO2k9OTd9
ZWxzZSBpZigoaXwwKT09MTA1KXtyZXR1cm4gTHwwfWVsc2UgaWYoKGl8MCk9PTEwNil7cmV0dXJu
IEx8MH1pZigoaXwwKT09OTcpe2lmKChhYXwwKT09MCl7ST1hZDtKPWFjO0s9YWI7aT05OH1lbHNl
e2FlPWFjO2FmPWFifX1kb3tpZigoaXwwKT09OTgpe2lmKChhW0tdfDApIT0wKXthZT1KO2FmPUs7
YnJlYWt9aWYoKEp8MCkhPTApe2NbSj4+Ml09MDtjW2U+PjJdPTB9TD1mLUl8MDtyZXR1cm4gTHww
fX13aGlsZSgwKTtjWyhidygpfDApPj4yXT0xMzg7aWYoKGFlfDApPT0wKXtMPS0xO3JldHVybiBM
fDB9Y1tlPj4yXT1hZjtMPS0xO3JldHVybiBMfDB9ZnVuY3Rpb24ga2YoYixlLGYpe2I9YnwwO2U9
ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTA7Zz1pO2k9aSs4fDA7aD1n
fDA7Y1toPj4yXT1iO2lmKChlfDApPT0wKXtqPTA7aT1nO3JldHVybiBqfDB9ZG97aWYoKGZ8MCkh
PTApe2lmKChifDApPT0wKXtrPWg7Y1toPj4yXT1rO2w9a31lbHNle2w9Yn1rPWFbZV18MDttPWsm
MjU1O2lmKGs8PDI0Pj4yND4tMSl7Y1tsPj4yXT1tO2o9azw8MjQ+PjI0IT0wfDA7aT1nO3JldHVy
biBqfDB9az1tLTE5NHwwO2lmKGs+Pj4wPjUwKXticmVha31tPWUrMXwwO249Y1tzKyhrPDwyKT4+
Ml18MDtpZihmPj4+MDw0KXtpZigobiYtMjE0NzQ4MzY0OD4+PigoKGYqNnwwKS02fDApPj4+MCl8
MCkhPTApe2JyZWFrfX1rPWRbbV18MDttPWs+Pj4zO2lmKChtLTE2fG0rKG4+PjI2KSk+Pj4wPjcp
e2JyZWFrfW09ay0xMjh8bjw8NjtpZigobXwwKT49MCl7Y1tsPj4yXT1tO2o9MjtpPWc7cmV0dXJu
IGp8MH1uPShkW2UrMnwwXXwwKS0xMjh8MDtpZihuPj4+MD42Myl7YnJlYWt9az1ufG08PDY7aWYo
KGt8MCk+PTApe2NbbD4+Ml09aztqPTM7aT1nO3JldHVybiBqfDB9bT0oZFtlKzN8MF18MCktMTI4
fDA7aWYobT4+PjA+NjMpe2JyZWFrfWNbbD4+Ml09bXxrPDw2O2o9NDtpPWc7cmV0dXJuIGp8MH19
d2hpbGUoMCk7Y1soYncoKXwwKT4+Ml09MTM4O2o9LTE7aT1nO3JldHVybiBqfDB9ZnVuY3Rpb24g
a2coYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYoKGJ8MCk9PTApe2Y9MTtyZXR1
cm4gZnwwfWlmKGQ+Pj4wPDEyOCl7YVtiXT1kJjI1NTtmPTE7cmV0dXJuIGZ8MH1pZihkPj4+MDwy
MDQ4KXthW2JdPShkPj4+NnwxOTIpJjI1NTthW2IrMXwwXT0oZCY2M3wxMjgpJjI1NTtmPTI7cmV0
dXJuIGZ8MH1pZihkPj4+MDw1NTI5NnwoZC01NzM0NHwwKT4+PjA8ODE5Mil7YVtiXT0oZD4+PjEy
fDIyNCkmMjU1O2FbYisxfDBdPShkPj4+NiY2M3wxMjgpJjI1NTthW2IrMnwwXT0oZCY2M3wxMjgp
JjI1NTtmPTM7cmV0dXJuIGZ8MH1pZigoZC02NTUzNnwwKT4+PjA8MTA0ODU3Nil7YVtiXT0oZD4+
PjE4fDI0MCkmMjU1O2FbYisxfDBdPShkPj4+MTImNjN8MTI4KSYyNTU7YVtiKzJ8MF09KGQ+Pj42
JjYzfDEyOCkmMjU1O2FbYiszfDBdPShkJjYzfDEyOCkmMjU1O2Y9NDtyZXR1cm4gZnwwfWVsc2V7
Y1soYncoKXwwKT4+Ml09MTM4O2Y9LTE7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBraChh
KXthPWF8MDtyZXR1cm59ZnVuY3Rpb24ga2koYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGtqKGEp
e2E9YXwwO3JldHVybiAxMzI4fDB9ZnVuY3Rpb24ga2soYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9u
IGtsKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBrbShhKXthPWF8MDt2YXIgYj0wO2I9YTt3aGls
ZSgxKXtpZigoY1tiPj4yXXwwKT09MCl7YnJlYWt9ZWxzZXtiPWIrNHwwfX1yZXR1cm4gYi1hPj4y
fDB9ZnVuY3Rpb24ga24oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtp
ZigoZHwwKT09MCl7cmV0dXJuIGF8MH1lbHNle2U9YjtmPWQ7Zz1hfXdoaWxlKDEpe2Q9Zi0xfDA7
Y1tnPj4yXT1jW2U+PjJdO2lmKChkfDApPT0wKXticmVha31lbHNle2U9ZSs0fDA7Zj1kO2c9Zys0
fDB9fXJldHVybiBhfDB9ZnVuY3Rpb24ga28oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MCxoPTAsaT0wO2U9KGR8MCk9PTA7aWYoYS1iPj4yPj4+MDxkPj4+MCl7aWYoZSl7
cmV0dXJuIGF8MH1lbHNle2Y9ZH1kb3tmPWYtMXwwO2NbYSsoZjw8Mik+PjJdPWNbYisoZjw8Mik+
PjJdO313aGlsZSgoZnwwKSE9MCk7cmV0dXJuIGF8MH1lbHNle2lmKGUpe3JldHVybiBhfDB9ZWxz
ZXtnPWI7aD1kO2k9YX13aGlsZSgxKXtkPWgtMXwwO2NbaT4+Ml09Y1tnPj4yXTtpZigoZHwwKT09
MCl7YnJlYWt9ZWxzZXtnPWcrNHwwO2g9ZDtpPWkrNHwwfX1yZXR1cm4gYXwwfXJldHVybiAwfWZ1
bmN0aW9uIGtwKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MDtpZigoZHwwKT09
MCl7cmV0dXJuIGF8MH1lbHNle2U9ZDtmPWF9d2hpbGUoMSl7ZD1lLTF8MDtjW2Y+PjJdPWI7aWYo
KGR8MCk9PTApe2JyZWFrfWVsc2V7ZT1kO2Y9Zis0fDB9fXJldHVybiBhfDB9ZnVuY3Rpb24ga3Eo
YSl7YT1hfDA7Y1thPj4yXT0yNDQwO3JldHVybn1mdW5jdGlvbiBrcihiLGQsZSxmKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wO2lmKChjW2QrOD4+Ml18MCkhPShifDApKXtyZXR1cm59
Yj1kKzE2fDA7Zz1jW2I+PjJdfDA7aWYoKGd8MCk9PTApe2NbYj4+Ml09ZTtjW2QrMjQ+PjJdPWY7
Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigoZ3wwKSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNb
ZT4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7YVtkKzU0fDBdPTE7cmV0dXJufWU9ZCsyNHwwO2lmKChj
W2U+PjJdfDApIT0yKXtyZXR1cm59Y1tlPj4yXT1mO3JldHVybn1mdW5jdGlvbiBrcyhhLGIsZCxl
LGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MDtmPWk7aT1pKzI2NHwwO2c9ZnwwO2g9Zisy
NTZ8MDtqPWNbYj4+Ml18MDtjW2g+PjJdPWo7az0oYXwwKSE9MDtsPWs/ZToyNTY7ZT1rP2E6Z3ww
O0wyNDM6ZG97aWYoKGp8MCk9PTB8KGx8MCk9PTApe209MDtuPWQ7bz1sO3A9ZTtxPWp9ZWxzZXth
PWd8MDtyPWw7cz1kO3Q9MDt1PWU7dj1qO3doaWxlKDEpe3c9cz4+PjA+PXI+Pj4wO2lmKCEod3xz
Pj4+MD4zMikpe209dDtuPXM7bz1yO3A9dTtxPXY7YnJlYWsgTDI0M314PXc/cjpzO3k9cy14fDA7
dz1rdCh1LGgseCwwKXwwO2lmKCh3fDApPT0tMSl7YnJlYWt9aWYoKHV8MCk9PShhfDApKXt6PWE7
QT1yfWVsc2V7ej11K3d8MDtBPXItd3wwfXg9dyt0fDA7dz1jW2g+PjJdfDA7aWYoKHd8MCk9PTB8
KEF8MCk9PTApe209eDtuPXk7bz1BO3A9ejtxPXc7YnJlYWsgTDI0M31lbHNle3I9QTtzPXk7dD14
O3U9ejt2PXd9fW09LTE7bj15O289MDtwPXU7cT1jW2g+PjJdfDB9fXdoaWxlKDApO0wyNTQ6ZG97
aWYoKHF8MCk9PTApe0I9bX1lbHNle2lmKChvfDApPT0wfChufDApPT0wKXtCPW07YnJlYWt9ZWxz
ZXtDPW87RD1uO0U9bTtGPXA7Rz1xfXdoaWxlKDEpe0g9a2coRixjW0c+PjJdfDAsMCl8MDtpZigo
SCsxfDApPj4+MDwyKXticmVha315PShjW2g+PjJdfDApKzR8MDtjW2g+PjJdPXk7ej1ELTF8MDtB
PUUrMXwwO2lmKChDfDApPT0oSHwwKXwoenwwKT09MCl7Qj1BO2JyZWFrIEwyNTR9ZWxzZXtDPUMt
SHwwO0Q9ejtFPUE7Rj1GK0h8MDtHPXl9fWlmKChIfDApIT0wKXtCPS0xO2JyZWFrfWNbaD4+Ml09
MDtCPUV9fXdoaWxlKDApO2lmKCFrKXtpPWY7cmV0dXJuIEJ8MH1jW2I+PjJdPWNbaD4+Ml07aT1m
O3JldHVybiBCfDB9ZnVuY3Rpb24ga3QoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7Zj1pO2k9aSs4fDA7Zz1mfDA7aWYoKGJ8MCk9PTAp
e2g9Y1tkPj4yXXwwO2o9Z3wwO2s9Y1toPj4yXXwwO2lmKChrfDApPT0wKXtsPTA7aT1mO3JldHVy
biBsfDB9ZWxzZXttPTA7bj1oO289a313aGlsZSgxKXtpZihvPj4+MD4xMjcpe2s9a2coaixvLDAp
fDA7aWYoKGt8MCk9PS0xKXtsPS0xO3A9MjQwO2JyZWFrfWVsc2V7cT1rfX1lbHNle3E9MX1rPXEr
bXwwO2g9bis0fDA7cj1jW2g+PjJdfDA7aWYoKHJ8MCk9PTApe2w9aztwPTI0MTticmVha31lbHNl
e209aztuPWg7bz1yfX1pZigocHwwKT09MjQwKXtpPWY7cmV0dXJuIGx8MH1lbHNlIGlmKChwfDAp
PT0yNDEpe2k9ZjtyZXR1cm4gbHwwfX1MMjgwOmRve2lmKGU+Pj4wPjMpe289ZTtuPWI7bT1jW2Q+
PjJdfDA7d2hpbGUoMSl7cT1jW20+PjJdfDA7aWYoKHF8MCk9PTApe3M9bzt0PW47YnJlYWsgTDI4
MH1pZihxPj4+MD4xMjcpe2o9a2cobixxLDApfDA7aWYoKGp8MCk9PS0xKXtsPS0xO2JyZWFrfXU9
bitqfDA7dj1vLWp8MDt3PW19ZWxzZXthW25dPXEmMjU1O3U9bisxfDA7dj1vLTF8MDt3PWNbZD4+
Ml18MH1xPXcrNHwwO2NbZD4+Ml09cTtpZih2Pj4+MD4zKXtvPXY7bj11O209cX1lbHNle3M9djt0
PXU7YnJlYWsgTDI4MH19aT1mO3JldHVybiBsfDB9ZWxzZXtzPWU7dD1ifX13aGlsZSgwKTtMMjky
OmRve2lmKChzfDApPT0wKXt4PTB9ZWxzZXtiPWd8MDt1PXM7dj10O3c9Y1tkPj4yXXwwO3doaWxl
KDEpe209Y1t3Pj4yXXwwO2lmKChtfDApPT0wKXtwPTIzNjticmVha31pZihtPj4+MD4xMjcpe249
a2coYixtLDApfDA7aWYoKG58MCk9PS0xKXtsPS0xO3A9MjQzO2JyZWFrfWlmKG4+Pj4wPnU+Pj4w
KXtwPTIzMjticmVha31vPWNbdz4+Ml18MDtrZyh2LG8sMCl8MDt5PXYrbnwwO3o9dS1ufDA7QT13
fWVsc2V7YVt2XT1tJjI1NTt5PXYrMXwwO3o9dS0xfDA7QT1jW2Q+PjJdfDB9bT1BKzR8MDtjW2Q+
PjJdPW07aWYoKHp8MCk9PTApe3g9MDticmVhayBMMjkyfWVsc2V7dT16O3Y9eTt3PW19fWlmKChw
fDApPT0yMzIpe2w9ZS11fDA7aT1mO3JldHVybiBsfDB9ZWxzZSBpZigocHwwKT09MjM2KXthW3Zd
PTA7eD11O2JyZWFrfWVsc2UgaWYoKHB8MCk9PTI0Myl7aT1mO3JldHVybiBsfDB9fX13aGlsZSgw
KTtjW2Q+PjJdPTA7bD1lLXh8MDtpPWY7cmV0dXJuIGx8MH1mdW5jdGlvbiBrdShhKXthPWF8MDtr
UyhhKTtyZXR1cm59ZnVuY3Rpb24ga3YoYSl7YT1hfDA7a2goYXwwKTtyZXR1cm59ZnVuY3Rpb24g
a3coYSl7YT1hfDA7a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3goYSl7YT1hfDA7a2go
YXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3koYSl7YT1hfDA7a2goYXwwKTtrUyhhKTtyZXR1
cm59ZnVuY3Rpb24ga3ooYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxo
PTA7ZT1pO2k9aSs1NnwwO2Y9ZXwwO2lmKChhfDApPT0oYnwwKSl7Zz0xO2k9ZTtyZXR1cm4gZ3ww
fWlmKChifDApPT0wKXtnPTA7aT1lO3JldHVybiBnfDB9aD1rQyhiLDk3MDQsOTY4OCwtMSl8MDti
PWg7aWYoKGh8MCk9PTApe2c9MDtpPWU7cmV0dXJuIGd8MH1rJChmfDAsMCw1Nik7Y1tmPj4yXT1i
O2NbZis4Pj4yXT1hO2NbZisxMj4+Ml09LTE7Y1tmKzQ4Pj4yXT0xO2NiW2NbKGNbaD4+Ml18MCkr
Mjg+PjJdJjE1XShiLGYsY1tkPj4yXXwwLDEpO2lmKChjW2YrMjQ+PjJdfDApIT0xKXtnPTA7aT1l
O3JldHVybiBnfDB9Y1tkPj4yXT1jW2YrMTY+PjJdO2c9MTtpPWU7cmV0dXJuIGd8MH1mdW5jdGlv
biBrQShiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wO2lmKChifDApIT0o
Y1tkKzg+PjJdfDApKXtnPWNbYis4Pj4yXXwwO2NiW2NbKGNbZz4+Ml18MCkrMjg+PjJdJjE1XShn
LGQsZSxmKTtyZXR1cm59Zz1kKzE2fDA7Yj1jW2c+PjJdfDA7aWYoKGJ8MCk9PTApe2NbZz4+Ml09
ZTtjW2QrMjQ+PjJdPWY7Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigoYnwwKSE9KGV8MCkpe2U9ZCsz
NnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7YVtkKzU0fDBdPTE7cmV0dXJu
fWU9ZCsyNHwwO2lmKChjW2U+PjJdfDApIT0yKXtyZXR1cm59Y1tlPj4yXT1mO3JldHVybn1mdW5j
dGlvbiBrQihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAs
aj0wLGs9MCxsPTAsbT0wO2lmKChifDApPT0oY1tkKzg+PjJdfDApKXtnPWQrMTZ8MDtoPWNbZz4+
Ml18MDtpZigoaHwwKT09MCl7Y1tnPj4yXT1lO2NbZCsyND4+Ml09ZjtjW2QrMzY+PjJdPTE7cmV0
dXJufWlmKChofDApIT0oZXwwKSl7aD1kKzM2fDA7Y1toPj4yXT0oY1toPj4yXXwwKSsxO2NbZCsy
ND4+Ml09MjthW2QrNTR8MF09MTtyZXR1cm59aD1kKzI0fDA7aWYoKGNbaD4+Ml18MCkhPTIpe3Jl
dHVybn1jW2g+PjJdPWY7cmV0dXJufWg9Y1tiKzEyPj4yXXwwO2c9YisxNisoaDw8Myl8MDtpPWNb
YisyMD4+Ml18MDtqPWk+Pjg7aWYoKGkmMXwwKT09MCl7az1qfWVsc2V7az1jWyhjW2U+PjJdfDAp
K2o+PjJdfDB9aj1jW2IrMTY+PjJdfDA7Y2JbY1soY1tqPj4yXXwwKSsyOD4+Ml0mMTVdKGosZCxl
K2t8MCwoaSYyfDApIT0wP2Y6Mik7aWYoKGh8MCk8PTEpe3JldHVybn1oPWQrNTR8MDtpPWU7az1i
KzI0fDA7d2hpbGUoMSl7Yj1jW2srND4+Ml18MDtqPWI+Pjg7aWYoKGImMXwwKT09MCl7bD1qfWVs
c2V7bD1jWyhjW2k+PjJdfDApK2o+PjJdfDB9aj1jW2s+PjJdfDA7Y2JbY1soY1tqPj4yXXwwKSsy
OD4+Ml0mMTVdKGosZCxlK2x8MCwoYiYyfDApIT0wP2Y6Mik7aWYoKGFbaF0mMSkhPTApe209Mjk3
O2JyZWFrfWI9ays4fDA7aWYoYj4+PjA8Zz4+PjApe2s9Yn1lbHNle209Mjk4O2JyZWFrfX1pZigo
bXwwKT09Mjk3KXtyZXR1cm59ZWxzZSBpZigobXwwKT09Mjk4KXtyZXR1cm59fWZ1bmN0aW9uIGtD
KGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MDtmPWk7aT1pKzU2fDA7Zz1mfDA7aD1jW2E+PjJdfDA7aj1hKyhjW2gt
OD4+Ml18MCl8MDtrPWNbaC00Pj4yXXwwO2g9aztjW2c+PjJdPWQ7Y1tnKzQ+PjJdPWE7Y1tnKzg+
PjJdPWI7Y1tnKzEyPj4yXT1lO2U9ZysxNnwwO2I9ZysyMHwwO2E9ZysyNHwwO2w9ZysyOHwwO209
ZyszMnwwO249Zys0MHwwO2skKGV8MCwwLDM5KTtpZigoa3wwKT09KGR8MCkpe2NbZys0OD4+Ml09
MTtiOVtjWyhjW2s+PjJdfDApKzIwPj4yXSYzMV0oaCxnLGosaiwxLDApO2k9ZjtyZXR1cm4oKGNb
YT4+Ml18MCk9PTE/ajowKXwwfWJXW2NbKGNbaz4+Ml18MCkrMjQ+PjJdJjddKGgsZyxqLDEsMCk7
c3dpdGNoKGNbZyszNj4+Ml18MCl7Y2FzZSAxOntkb3tpZigoY1thPj4yXXwwKSE9MSl7aWYoKGNb
bj4+Ml18MCkhPTApe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1tsPj4yXXwwKSE9MSl7bz0wO2k9
ZjtyZXR1cm4gb3wwfWlmKChjW20+PjJdfDApPT0xKXticmVha31lbHNle289MH1pPWY7cmV0dXJu
IG98MH19d2hpbGUoMCk7bz1jW2U+PjJdfDA7aT1mO3JldHVybiBvfDB9O2Nhc2UgMDp7aWYoKGNb
bj4+Ml18MCkhPTEpe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1tsPj4yXXwwKSE9MSl7bz0wO2k9
ZjtyZXR1cm4gb3wwfW89KGNbbT4+Ml18MCk9PTE/Y1tiPj4yXXwwOjA7aT1mO3JldHVybiBvfDB9
O2RlZmF1bHQ6e289MDtpPWY7cmV0dXJuIG98MH19cmV0dXJuIDB9ZnVuY3Rpb24ga0QoYixkLGUs
ZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtpZigoY1tkKzg+PjJdfDApPT0oYnww
KSl7aWYoKGNbZCs0Pj4yXXwwKSE9KGV8MCkpe3JldHVybn1nPWQrMjh8MDtpZigoY1tnPj4yXXww
KT09MSl7cmV0dXJufWNbZz4+Ml09ZjtyZXR1cm59aWYoKGNbZD4+Ml18MCkhPShifDApKXtyZXR1
cm59ZG97aWYoKGNbZCsxNj4+Ml18MCkhPShlfDApKXtiPWQrMjB8MDtpZigoY1tiPj4yXXwwKT09
KGV8MCkpe2JyZWFrfWNbZCszMj4+Ml09ZjtjW2I+PjJdPWU7Yj1kKzQwfDA7Y1tiPj4yXT0oY1ti
Pj4yXXwwKSsxO2Rve2lmKChjW2QrMzY+PjJdfDApPT0xKXtpZigoY1tkKzI0Pj4yXXwwKSE9Mil7
YnJlYWt9YVtkKzU0fDBdPTF9fXdoaWxlKDApO2NbZCs0ND4+Ml09NDtyZXR1cm59fXdoaWxlKDAp
O2lmKChmfDApIT0xKXtyZXR1cm59Y1tkKzMyPj4yXT0xO3JldHVybn1mdW5jdGlvbiBrRShiLGQs
ZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGk9MDtpZigo
Y1tkKzg+PjJdfDApIT0oYnwwKSl7cmV0dXJufWFbZCs1M3wwXT0xO2lmKChjW2QrND4+Ml18MCkh
PShmfDApKXtyZXR1cm59YVtkKzUyfDBdPTE7Zj1kKzE2fDA7Yj1jW2Y+PjJdfDA7aWYoKGJ8MCk9
PTApe2NbZj4+Ml09ZTtjW2QrMjQ+PjJdPWc7Y1tkKzM2Pj4yXT0xO2lmKCEoKGNbZCs0OD4+Ml18
MCk9PTEmKGd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0dXJufWlmKChifDApIT0oZXww
KSl7ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2FbZCs1NHwwXT0xO3JldHVybn1lPWQr
MjR8MDtiPWNbZT4+Ml18MDtpZigoYnwwKT09Mil7Y1tlPj4yXT1nO2k9Z31lbHNle2k9Yn1pZigh
KChjW2QrNDg+PjJdfDApPT0xJihpfDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0xO3JldHVybn1m
dW5jdGlvbiBrRihiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBo
PTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MDtoPWJ8MDtp
ZigoaHwwKT09KGNbZCs4Pj4yXXwwKSl7aWYoKGNbZCs0Pj4yXXwwKSE9KGV8MCkpe3JldHVybn1p
PWQrMjh8MDtpZigoY1tpPj4yXXwwKT09MSl7cmV0dXJufWNbaT4+Ml09ZjtyZXR1cm59aWYoKGh8
MCk9PShjW2Q+PjJdfDApKXtkb3tpZigoY1tkKzE2Pj4yXXwwKSE9KGV8MCkpe2g9ZCsyMHwwO2lm
KChjW2g+PjJdfDApPT0oZXwwKSl7YnJlYWt9Y1tkKzMyPj4yXT1mO2k9ZCs0NHwwO2lmKChjW2k+
PjJdfDApPT00KXtyZXR1cm59aj1jW2IrMTI+PjJdfDA7az1iKzE2KyhqPDwzKXwwO0w0NzQ6ZG97
aWYoKGp8MCk+MCl7bD1kKzUyfDA7bT1kKzUzfDA7bj1kKzU0fDA7bz1iKzh8MDtwPWQrMjR8MDtx
PWU7cj0wO3M9YisxNnwwO3Q9MDtMNDc2OndoaWxlKDEpe2FbbF09MDthW21dPTA7dT1jW3MrND4+
Ml18MDt2PXU+Pjg7aWYoKHUmMXwwKT09MCl7dz12fWVsc2V7dz1jWyhjW3E+PjJdfDApK3Y+PjJd
fDB9dj1jW3M+PjJdfDA7YjlbY1soY1t2Pj4yXXwwKSsyMD4+Ml0mMzFdKHYsZCxlLGUrd3wwLDIt
KHU+Pj4xJjEpfDAsZyk7aWYoKGFbbl0mMSkhPTApe3g9dDt5PXI7YnJlYWt9ZG97aWYoKGFbbV0m
MSk9PTApe3o9dDtBPXJ9ZWxzZXtpZigoYVtsXSYxKT09MCl7aWYoKGNbbz4+Ml0mMXwwKT09MCl7
eD0xO3k9cjticmVhayBMNDc2fWVsc2V7ej0xO0E9cjticmVha319aWYoKGNbcD4+Ml18MCk9PTEp
e0I9Mzg1O2JyZWFrIEw0NzR9aWYoKGNbbz4+Ml0mMnwwKT09MCl7Qj0zODU7YnJlYWsgTDQ3NH1l
bHNle3o9MTtBPTF9fX13aGlsZSgwKTt1PXMrOHwwO2lmKHU+Pj4wPGs+Pj4wKXtyPUE7cz11O3Q9
en1lbHNle3g9ejt5PUE7YnJlYWt9fWlmKHkpe0M9eDtCPTM4NH1lbHNle0Q9eDtCPTM4MX19ZWxz
ZXtEPTA7Qj0zODF9fXdoaWxlKDApO2Rve2lmKChCfDApPT0zODEpe2NbaD4+Ml09ZTtrPWQrNDB8
MDtjW2s+PjJdPShjW2s+PjJdfDApKzE7aWYoKGNbZCszNj4+Ml18MCkhPTEpe0M9RDtCPTM4NDti
cmVha31pZigoY1tkKzI0Pj4yXXwwKSE9Mil7Qz1EO0I9Mzg0O2JyZWFrfWFbZCs1NHwwXT0xO2lm
KEQpe0I9Mzg1fWVsc2V7Qj0zODZ9fX13aGlsZSgwKTtpZigoQnwwKT09Mzg0KXtpZihDKXtCPTM4
NX1lbHNle0I9Mzg2fX1pZigoQnwwKT09Mzg1KXtjW2k+PjJdPTM7cmV0dXJufWVsc2UgaWYoKEJ8
MCk9PTM4Nil7Y1tpPj4yXT00O3JldHVybn19fXdoaWxlKDApO2lmKChmfDApIT0xKXtyZXR1cm59
Y1tkKzMyPj4yXT0xO3JldHVybn1DPWNbYisxMj4+Ml18MDtEPWIrMTYrKEM8PDMpfDA7eD1jW2Ir
MjA+PjJdfDA7eT14Pj44O2lmKCh4JjF8MCk9PTApe0U9eX1lbHNle0U9Y1soY1tlPj4yXXwwKSt5
Pj4yXXwwfXk9Y1tiKzE2Pj4yXXwwO2JXW2NbKGNbeT4+Ml18MCkrMjQ+PjJdJjddKHksZCxlK0V8
MCwoeCYyfDApIT0wP2Y6MixnKTt4PWIrMjR8MDtpZigoQ3wwKTw9MSl7cmV0dXJufUM9Y1tiKzg+
PjJdfDA7ZG97aWYoKEMmMnwwKT09MCl7Yj1kKzM2fDA7aWYoKGNbYj4+Ml18MCk9PTEpe2JyZWFr
fWlmKChDJjF8MCk9PTApe0U9ZCs1NHwwO3k9ZTtBPXg7d2hpbGUoMSl7aWYoKGFbRV0mMSkhPTAp
e0I9NDI1O2JyZWFrfWlmKChjW2I+PjJdfDApPT0xKXtCPTQyNjticmVha316PWNbQSs0Pj4yXXww
O3c9ej4+ODtpZigoeiYxfDApPT0wKXtGPXd9ZWxzZXtGPWNbKGNbeT4+Ml18MCkrdz4+Ml18MH13
PWNbQT4+Ml18MDtiV1tjWyhjW3c+PjJdfDApKzI0Pj4yXSY3XSh3LGQsZStGfDAsKHomMnwwKSE9
MD9mOjIsZyk7ej1BKzh8MDtpZih6Pj4+MDxEPj4+MCl7QT16fWVsc2V7Qj00MTI7YnJlYWt9fWlm
KChCfDApPT00MTIpe3JldHVybn1lbHNlIGlmKChCfDApPT00MjUpe3JldHVybn1lbHNlIGlmKChC
fDApPT00MjYpe3JldHVybn19QT1kKzI0fDA7eT1kKzU0fDA7RT1lO2k9eDt3aGlsZSgxKXtpZigo
YVt5XSYxKSE9MCl7Qj00MjI7YnJlYWt9aWYoKGNbYj4+Ml18MCk9PTEpe2lmKChjW0E+PjJdfDAp
PT0xKXtCPTQyMzticmVha319ej1jW2krND4+Ml18MDt3PXo+Pjg7aWYoKHomMXwwKT09MCl7Rz13
fWVsc2V7Rz1jWyhjW0U+PjJdfDApK3c+PjJdfDB9dz1jW2k+PjJdfDA7YldbY1soY1t3Pj4yXXww
KSsyND4+Ml0mN10odyxkLGUrR3wwLCh6JjJ8MCkhPTA/ZjoyLGcpO3o9aSs4fDA7aWYoej4+PjA8
RD4+PjApe2k9en1lbHNle0I9NDI0O2JyZWFrfX1pZigoQnwwKT09NDIyKXtyZXR1cm59ZWxzZSBp
ZigoQnwwKT09NDIzKXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDI0KXtyZXR1cm59fX13aGlsZSgw
KTtHPWQrNTR8MDtGPWU7Qz14O3doaWxlKDEpe2lmKChhW0ddJjEpIT0wKXtCPTQyMTticmVha314
PWNbQys0Pj4yXXwwO2k9eD4+ODtpZigoeCYxfDApPT0wKXtIPWl9ZWxzZXtIPWNbKGNbRj4+Ml18
MCkraT4+Ml18MH1pPWNbQz4+Ml18MDtiV1tjWyhjW2k+PjJdfDApKzI0Pj4yXSY3XShpLGQsZStI
fDAsKHgmMnwwKSE9MD9mOjIsZyk7eD1DKzh8MDtpZih4Pj4+MDxEPj4+MCl7Qz14fWVsc2V7Qj00
MjA7YnJlYWt9fWlmKChCfDApPT00MjApe3JldHVybn1lbHNlIGlmKChCfDApPT00MjEpe3JldHVy
bn19ZnVuY3Rpb24ga0coYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2
YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2g9YnwwO2lmKChofDApPT0oY1tkKzg+PjJd
fDApKXtpZigoY1tkKzQ+PjJdfDApIT0oZXwwKSl7cmV0dXJufWk9ZCsyOHwwO2lmKChjW2k+PjJd
fDApPT0xKXtyZXR1cm59Y1tpPj4yXT1mO3JldHVybn1pZigoaHwwKSE9KGNbZD4+Ml18MCkpe2g9
Y1tiKzg+PjJdfDA7YldbY1soY1toPj4yXXwwKSsyND4+Ml0mN10oaCxkLGUsZixnKTtyZXR1cm59
ZG97aWYoKGNbZCsxNj4+Ml18MCkhPShlfDApKXtoPWQrMjB8MDtpZigoY1toPj4yXXwwKT09KGV8
MCkpe2JyZWFrfWNbZCszMj4+Ml09ZjtpPWQrNDR8MDtpZigoY1tpPj4yXXwwKT09NCl7cmV0dXJu
fWo9ZCs1MnwwO2Fbal09MDtrPWQrNTN8MDthW2tdPTA7bD1jW2IrOD4+Ml18MDtiOVtjWyhjW2w+
PjJdfDApKzIwPj4yXSYzMV0obCxkLGUsZSwxLGcpO2lmKChhW2tdJjEpPT0wKXttPTA7bj00NDF9
ZWxzZXtpZigoYVtqXSYxKT09MCl7bT0xO249NDQxfX1MNTc2OmRve2lmKChufDApPT00NDEpe2Nb
aD4+Ml09ZTtqPWQrNDB8MDtjW2o+PjJdPShjW2o+PjJdfDApKzE7ZG97aWYoKGNbZCszNj4+Ml18
MCk9PTEpe2lmKChjW2QrMjQ+PjJdfDApIT0yKXtuPTQ0NDticmVha31hW2QrNTR8MF09MTtpZiht
KXticmVhayBMNTc2fX1lbHNle249NDQ0fX13aGlsZSgwKTtpZigobnwwKT09NDQ0KXtpZihtKXti
cmVha319Y1tpPj4yXT00O3JldHVybn19d2hpbGUoMCk7Y1tpPj4yXT0zO3JldHVybn19d2hpbGUo
MCk7aWYoKGZ8MCkhPTEpe3JldHVybn1jW2QrMzI+PjJdPTE7cmV0dXJufWZ1bmN0aW9uIGtIKGIs
ZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaT0wLGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTA7aWYo
KGJ8MCkhPShjW2QrOD4+Ml18MCkpe2k9ZCs1MnwwO2o9YVtpXSYxO2s9ZCs1M3wwO2w9YVtrXSYx
O209Y1tiKzEyPj4yXXwwO249YisxNisobTw8Myl8MDthW2ldPTA7YVtrXT0wO289Y1tiKzIwPj4y
XXwwO3A9bz4+ODtpZigobyYxfDApPT0wKXtxPXB9ZWxzZXtxPWNbKGNbZj4+Ml18MCkrcD4+Ml18
MH1wPWNbYisxNj4+Ml18MDtiOVtjWyhjW3A+PjJdfDApKzIwPj4yXSYzMV0ocCxkLGUsZitxfDAs
KG8mMnwwKSE9MD9nOjIsaCk7TDU5ODpkb3tpZigobXwwKT4xKXtvPWQrMjR8MDtxPWIrOHwwO3A9
ZCs1NHwwO3I9ZjtzPWIrMjR8MDtkb3tpZigoYVtwXSYxKSE9MCl7YnJlYWsgTDU5OH1kb3tpZigo
YVtpXSYxKT09MCl7aWYoKGFba10mMSk9PTApe2JyZWFrfWlmKChjW3E+PjJdJjF8MCk9PTApe2Jy
ZWFrIEw1OTh9fWVsc2V7aWYoKGNbbz4+Ml18MCk9PTEpe2JyZWFrIEw1OTh9aWYoKGNbcT4+Ml0m
MnwwKT09MCl7YnJlYWsgTDU5OH19fXdoaWxlKDApO2FbaV09MDthW2tdPTA7dD1jW3MrND4+Ml18
MDt1PXQ+Pjg7aWYoKHQmMXwwKT09MCl7dj11fWVsc2V7dj1jWyhjW3I+PjJdfDApK3U+PjJdfDB9
dT1jW3M+PjJdfDA7YjlbY1soY1t1Pj4yXXwwKSsyMD4+Ml0mMzFdKHUsZCxlLGYrdnwwLCh0JjJ8
MCkhPTA/ZzoyLGgpO3M9cys4fDA7fXdoaWxlKHM+Pj4wPG4+Pj4wKX19d2hpbGUoMCk7YVtpXT1q
O2Fba109bDtyZXR1cm59YVtkKzUzfDBdPTE7aWYoKGNbZCs0Pj4yXXwwKSE9KGZ8MCkpe3JldHVy
bn1hW2QrNTJ8MF09MTtmPWQrMTZ8MDtsPWNbZj4+Ml18MDtpZigobHwwKT09MCl7Y1tmPj4yXT1l
O2NbZCsyND4+Ml09ZztjW2QrMzY+PjJdPTE7aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYoZ3wwKT09
MSkpe3JldHVybn1hW2QrNTR8MF09MTtyZXR1cm59aWYoKGx8MCkhPShlfDApKXtlPWQrMzZ8MDtj
W2U+PjJdPShjW2U+PjJdfDApKzE7YVtkKzU0fDBdPTE7cmV0dXJufWU9ZCsyNHwwO2w9Y1tlPj4y
XXwwO2lmKChsfDApPT0yKXtjW2U+PjJdPWc7dz1nfWVsc2V7dz1sfWlmKCEoKGNbZCs0OD4+Ml18
MCk9PTEmKHd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0dXJufWZ1bmN0aW9uIGtJKGIs
ZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaT0wLGo9
MDtpZigoYnwwKSE9KGNbZCs4Pj4yXXwwKSl7aT1jW2IrOD4+Ml18MDtiOVtjWyhjW2k+PjJdfDAp
KzIwPj4yXSYzMV0oaSxkLGUsZixnLGgpO3JldHVybn1hW2QrNTN8MF09MTtpZigoY1tkKzQ+PjJd
fDApIT0oZnwwKSl7cmV0dXJufWFbZCs1MnwwXT0xO2Y9ZCsxNnwwO2g9Y1tmPj4yXXwwO2lmKCho
fDApPT0wKXtjW2Y+PjJdPWU7Y1tkKzI0Pj4yXT1nO2NbZCszNj4+Ml09MTtpZighKChjW2QrNDg+
PjJdfDApPT0xJihnfDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0xO3JldHVybn1pZigoaHwwKSE9
KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTthW2QrNTR8MF09MTtyZXR1cm59
ZT1kKzI0fDA7aD1jW2U+PjJdfDA7aWYoKGh8MCk9PTIpe2NbZT4+Ml09ZztqPWd9ZWxzZXtqPWh9
aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYoanwwKT09MSkpe3JldHVybn1hW2QrNTR8MF09MTtyZXR1
cm59ZnVuY3Rpb24ga0ooYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAs
Xz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0w
LGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxh
dj0wLGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0wLGFDPTAsYUQ9MCxhRT0wLGFGPTAsYUc9
MDtkb3tpZihhPj4+MDwyNDUpe2lmKGE+Pj4wPDExKXtiPTE2fWVsc2V7Yj1hKzExJi04fWQ9Yj4+
PjM7ZT1jWzI0NjBdfDA7Zj1lPj4+KGQ+Pj4wKTtpZigoZiYzfDApIT0wKXtnPShmJjFeMSkrZHww
O2g9Zzw8MTtpPTk4ODArKGg8PDIpfDA7aj05ODgwKyhoKzI8PDIpfDA7aD1jW2o+PjJdfDA7az1o
Kzh8MDtsPWNbaz4+Ml18MDtkb3tpZigoaXwwKT09KGx8MCkpe2NbMjQ2MF09ZSZ+KDE8PGcpfWVs
c2V7aWYobD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfW09bCsxMnwwO2lmKChj
W20+PjJdfDApPT0oaHwwKSl7Y1ttPj4yXT1pO2Nbaj4+Ml09bDticmVha31lbHNle2JHKCk7cmV0
dXJuIDB9fX13aGlsZSgwKTtsPWc8PDM7Y1toKzQ+PjJdPWx8MztqPWgrKGx8NCl8MDtjW2o+PjJd
PWNbaj4+Ml18MTtuPWs7cmV0dXJuIG58MH1pZihiPj4+MDw9KGNbMjQ2Ml18MCk+Pj4wKXtvPWI7
YnJlYWt9aWYoKGZ8MCkhPTApe2o9Mjw8ZDtsPWY8PGQmKGp8LWopO2o9KGwmLWwpLTF8MDtsPWo+
Pj4xMiYxNjtpPWo+Pj4obD4+PjApO2o9aT4+PjUmODttPWk+Pj4oaj4+PjApO2k9bT4+PjImNDtw
PW0+Pj4oaT4+PjApO209cD4+PjEmMjtxPXA+Pj4obT4+PjApO3A9cT4+PjEmMTtyPShqfGx8aXxt
fHApKyhxPj4+KHA+Pj4wKSl8MDtwPXI8PDE7cT05ODgwKyhwPDwyKXwwO209OTg4MCsocCsyPDwy
KXwwO3A9Y1ttPj4yXXwwO2k9cCs4fDA7bD1jW2k+PjJdfDA7ZG97aWYoKHF8MCk9PShsfDApKXtj
WzI0NjBdPWUmfigxPDxyKX1lbHNle2lmKGw+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1qPWwrMTJ8MDtpZigoY1tqPj4yXXwwKT09KHB8MCkpe2Nbaj4+Ml09cTtjW20+PjJdPWw7
YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7bD1yPDwzO209bC1ifDA7Y1twKzQ+
PjJdPWJ8MztxPXA7ZT1xK2J8MDtjW3ErKGJ8NCk+PjJdPW18MTtjW3ErbD4+Ml09bTtsPWNbMjQ2
Ml18MDtpZigobHwwKSE9MCl7cT1jWzI0NjVdfDA7ZD1sPj4+MztsPWQ8PDE7Zj05ODgwKyhsPDwy
KXwwO2s9Y1syNDYwXXwwO2g9MTw8ZDtkb3tpZigoayZofDApPT0wKXtjWzI0NjBdPWt8aDtzPWY7
dD05ODgwKyhsKzI8PDIpfDB9ZWxzZXtkPTk4ODArKGwrMjw8Mil8MDtnPWNbZD4+Ml18MDtpZihn
Pj4+MD49KGNbMjQ2NF18MCk+Pj4wKXtzPWc7dD1kO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxl
KDApO2NbdD4+Ml09cTtjW3MrMTI+PjJdPXE7Y1txKzg+PjJdPXM7Y1txKzEyPj4yXT1mfWNbMjQ2
Ml09bTtjWzI0NjVdPWU7bj1pO3JldHVybiBufDB9bD1jWzI0NjFdfDA7aWYoKGx8MCk9PTApe289
YjticmVha31oPShsJi1sKS0xfDA7bD1oPj4+MTImMTY7az1oPj4+KGw+Pj4wKTtoPWs+Pj41Jjg7
cD1rPj4+KGg+Pj4wKTtrPXA+Pj4yJjQ7cj1wPj4+KGs+Pj4wKTtwPXI+Pj4xJjI7ZD1yPj4+KHA+
Pj4wKTtyPWQ+Pj4xJjE7Zz1jWzEwMTQ0KygoaHxsfGt8cHxyKSsoZD4+PihyPj4+MCkpPDwyKT4+
Ml18MDtyPWc7ZD1nO3A9KGNbZys0Pj4yXSYtOCktYnwwO3doaWxlKDEpe2c9Y1tyKzE2Pj4yXXww
O2lmKChnfDApPT0wKXtrPWNbcisyMD4+Ml18MDtpZigoa3wwKT09MCl7YnJlYWt9ZWxzZXt1PWt9
fWVsc2V7dT1nfWc9KGNbdSs0Pj4yXSYtOCktYnwwO2s9Zz4+PjA8cD4+PjA7cj11O2Q9az91OmQ7
cD1rP2c6cH1yPWQ7aT1jWzI0NjRdfDA7aWYocj4+PjA8aT4+PjApe2JHKCk7cmV0dXJuIDB9ZT1y
K2J8MDttPWU7aWYocj4+PjA+PWU+Pj4wKXtiRygpO3JldHVybiAwfWU9Y1tkKzI0Pj4yXXwwO2Y9
Y1tkKzEyPj4yXXwwO2Rve2lmKChmfDApPT0oZHwwKSl7cT1kKzIwfDA7Zz1jW3E+PjJdfDA7aWYo
KGd8MCk9PTApe2s9ZCsxNnwwO2w9Y1trPj4yXXwwO2lmKChsfDApPT0wKXt2PTA7YnJlYWt9ZWxz
ZXt3PWw7eD1rfX1lbHNle3c9Zzt4PXF9d2hpbGUoMSl7cT13KzIwfDA7Zz1jW3E+PjJdfDA7aWYo
KGd8MCkhPTApe3c9Zzt4PXE7Y29udGludWV9cT13KzE2fDA7Zz1jW3E+PjJdfDA7aWYoKGd8MCk9
PTApe2JyZWFrfWVsc2V7dz1nO3g9cX19aWYoeD4+PjA8aT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxz
ZXtjW3g+PjJdPTA7dj13O2JyZWFrfX1lbHNle3E9Y1tkKzg+PjJdfDA7aWYocT4+PjA8aT4+PjAp
e2JHKCk7cmV0dXJuIDB9Zz1xKzEyfDA7aWYoKGNbZz4+Ml18MCkhPShkfDApKXtiRygpO3JldHVy
biAwfWs9Zis4fDA7aWYoKGNbaz4+Ml18MCk9PShkfDApKXtjW2c+PjJdPWY7Y1trPj4yXT1xO3Y9
ZjticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtMNzQwOmRve2lmKChlfDApIT0w
KXtmPWQrMjh8MDtpPTEwMTQ0KyhjW2Y+PjJdPDwyKXwwO2Rve2lmKChkfDApPT0oY1tpPj4yXXww
KSl7Y1tpPj4yXT12O2lmKCh2fDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW2Y+
PjJdKTticmVhayBMNzQwfWVsc2V7aWYoZT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVy
biAwfXE9ZSsxNnwwO2lmKChjW3E+PjJdfDApPT0oZHwwKSl7Y1txPj4yXT12fWVsc2V7Y1tlKzIw
Pj4yXT12fWlmKCh2fDApPT0wKXticmVhayBMNzQwfX19d2hpbGUoMCk7aWYodj4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWNbdisyND4+Ml09ZTtmPWNbZCsxNj4+Ml18MDtkb3tp
ZigoZnwwKSE9MCl7aWYoZj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7
Y1t2KzE2Pj4yXT1mO2NbZisyND4+Ml09djticmVha319fXdoaWxlKDApO2Y9Y1tkKzIwPj4yXXww
O2lmKChmfDApPT0wKXticmVha31pZihmPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJu
IDB9ZWxzZXtjW3YrMjA+PjJdPWY7Y1tmKzI0Pj4yXT12O2JyZWFrfX19d2hpbGUoMCk7aWYocD4+
PjA8MTYpe2U9cCtifDA7Y1tkKzQ+PjJdPWV8MztmPXIrKGUrNCl8MDtjW2Y+PjJdPWNbZj4+Ml18
MX1lbHNle2NbZCs0Pj4yXT1ifDM7Y1tyKyhifDQpPj4yXT1wfDE7Y1tyKyhwK2IpPj4yXT1wO2Y9
Y1syNDYyXXwwO2lmKChmfDApIT0wKXtlPWNbMjQ2NV18MDtpPWY+Pj4zO2Y9aTw8MTtxPTk4ODAr
KGY8PDIpfDA7az1jWzI0NjBdfDA7Zz0xPDxpO2Rve2lmKChrJmd8MCk9PTApe2NbMjQ2MF09a3xn
O3k9cTt6PTk4ODArKGYrMjw8Mil8MH1lbHNle2k9OTg4MCsoZisyPDwyKXwwO2w9Y1tpPj4yXXww
O2lmKGw+Pj4wPj0oY1syNDY0XXwwKT4+PjApe3k9bDt6PWk7YnJlYWt9YkcoKTtyZXR1cm4gMH19
d2hpbGUoMCk7Y1t6Pj4yXT1lO2NbeSsxMj4+Ml09ZTtjW2UrOD4+Ml09eTtjW2UrMTI+PjJdPXF9
Y1syNDYyXT1wO2NbMjQ2NV09bX1mPWQrOHwwO2lmKChmfDApPT0wKXtvPWI7YnJlYWt9ZWxzZXtu
PWZ9cmV0dXJuIG58MH1lbHNle2lmKGE+Pj4wPjQyOTQ5NjcyMzEpe289LTE7YnJlYWt9Zj1hKzEx
fDA7Zz1mJi04O2s9Y1syNDYxXXwwO2lmKChrfDApPT0wKXtvPWc7YnJlYWt9cj0tZ3wwO2k9Zj4+
Pjg7ZG97aWYoKGl8MCk9PTApe0E9MH1lbHNle2lmKGc+Pj4wPjE2Nzc3MjE1KXtBPTMxO2JyZWFr
fWY9KGkrMTA0ODMyMHwwKT4+PjE2Jjg7bD1pPDxmO2g9KGwrNTIwMTkyfDApPj4+MTYmNDtqPWw8
PGg7bD0oaisyNDU3NjB8MCk+Pj4xNiYyO0I9MTQtKGh8ZnxsKSsoajw8bD4+PjE1KXwwO0E9Zz4+
PigoQis3fDApPj4+MCkmMXxCPDwxfX13aGlsZSgwKTtpPWNbMTAxNDQrKEE8PDIpPj4yXXwwO0w3
ODg6ZG97aWYoKGl8MCk9PTApe0M9MDtEPXI7RT0wfWVsc2V7aWYoKEF8MCk9PTMxKXtGPTB9ZWxz
ZXtGPTI1LShBPj4+MSl8MH1kPTA7bT1yO3A9aTtxPWc8PEY7ZT0wO3doaWxlKDEpe0I9Y1twKzQ+
PjJdJi04O2w9Qi1nfDA7aWYobD4+PjA8bT4+PjApe2lmKChCfDApPT0oZ3wwKSl7Qz1wO0Q9bDtF
PXA7YnJlYWsgTDc4OH1lbHNle0c9cDtIPWx9fWVsc2V7Rz1kO0g9bX1sPWNbcCsyMD4+Ml18MDtC
PWNbcCsxNisocT4+PjMxPDwyKT4+Ml18MDtqPShsfDApPT0wfChsfDApPT0oQnwwKT9lOmw7aWYo
KEJ8MCk9PTApe0M9RztEPUg7RT1qO2JyZWFrfWVsc2V7ZD1HO209SDtwPUI7cT1xPDwxO2U9an19
fX13aGlsZSgwKTtpZigoRXwwKT09MCYoQ3wwKT09MCl7aT0yPDxBO3I9ayYoaXwtaSk7aWYoKHJ8
MCk9PTApe289ZzticmVha31pPShyJi1yKS0xfDA7cj1pPj4+MTImMTY7ZT1pPj4+KHI+Pj4wKTtp
PWU+Pj41Jjg7cT1lPj4+KGk+Pj4wKTtlPXE+Pj4yJjQ7cD1xPj4+KGU+Pj4wKTtxPXA+Pj4xJjI7
bT1wPj4+KHE+Pj4wKTtwPW0+Pj4xJjE7ST1jWzEwMTQ0KygoaXxyfGV8cXxwKSsobT4+PihwPj4+
MCkpPDwyKT4+Ml18MH1lbHNle0k9RX1pZigoSXwwKT09MCl7Sj1EO0s9Q31lbHNle3A9STttPUQ7
cT1DO3doaWxlKDEpe2U9KGNbcCs0Pj4yXSYtOCktZ3wwO3I9ZT4+PjA8bT4+PjA7aT1yP2U6bTtl
PXI/cDpxO3I9Y1twKzE2Pj4yXXwwO2lmKChyfDApIT0wKXtwPXI7bT1pO3E9ZTtjb250aW51ZX1y
PWNbcCsyMD4+Ml18MDtpZigocnwwKT09MCl7Sj1pO0s9ZTticmVha31lbHNle3A9cjttPWk7cT1l
fX19aWYoKEt8MCk9PTApe289ZzticmVha31pZihKPj4+MD49KChjWzI0NjJdfDApLWd8MCk+Pj4w
KXtvPWc7YnJlYWt9cT1LO209Y1syNDY0XXwwO2lmKHE+Pj4wPG0+Pj4wKXtiRygpO3JldHVybiAw
fXA9cStnfDA7az1wO2lmKHE+Pj4wPj1wPj4+MCl7YkcoKTtyZXR1cm4gMH1lPWNbSysyND4+Ml18
MDtpPWNbSysxMj4+Ml18MDtkb3tpZigoaXwwKT09KEt8MCkpe3I9SysyMHwwO2Q9Y1tyPj4yXXww
O2lmKChkfDApPT0wKXtqPUsrMTZ8MDtCPWNbaj4+Ml18MDtpZigoQnwwKT09MCl7TD0wO2JyZWFr
fWVsc2V7TT1CO049an19ZWxzZXtNPWQ7Tj1yfXdoaWxlKDEpe3I9TSsyMHwwO2Q9Y1tyPj4yXXww
O2lmKChkfDApIT0wKXtNPWQ7Tj1yO2NvbnRpbnVlfXI9TSsxNnwwO2Q9Y1tyPj4yXXwwO2lmKChk
fDApPT0wKXticmVha31lbHNle009ZDtOPXJ9fWlmKE4+Pj4wPG0+Pj4wKXtiRygpO3JldHVybiAw
fWVsc2V7Y1tOPj4yXT0wO0w9TTticmVha319ZWxzZXtyPWNbSys4Pj4yXXwwO2lmKHI+Pj4wPG0+
Pj4wKXtiRygpO3JldHVybiAwfWQ9cisxMnwwO2lmKChjW2Q+PjJdfDApIT0oS3wwKSl7YkcoKTty
ZXR1cm4gMH1qPWkrOHwwO2lmKChjW2o+PjJdfDApPT0oS3wwKSl7Y1tkPj4yXT1pO2Nbaj4+Ml09
cjtMPWk7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7TDgzODpkb3tpZigoZXww
KSE9MCl7aT1LKzI4fDA7bT0xMDE0NCsoY1tpPj4yXTw8Mil8MDtkb3tpZigoS3wwKT09KGNbbT4+
Ml18MCkpe2NbbT4+Ml09TDtpZigoTHwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8
Y1tpPj4yXSk7YnJlYWsgTDgzOH1lbHNle2lmKGU+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTty
ZXR1cm4gMH1yPWUrMTZ8MDtpZigoY1tyPj4yXXwwKT09KEt8MCkpe2Nbcj4+Ml09TH1lbHNle2Nb
ZSsyMD4+Ml09TH1pZigoTHwwKT09MCl7YnJlYWsgTDgzOH19fXdoaWxlKDApO2lmKEw+Pj4wPChj
WzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1jW0wrMjQ+PjJdPWU7aT1jW0srMTY+PjJdfDA7
ZG97aWYoKGl8MCkhPTApe2lmKGk+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1l
bHNle2NbTCsxNj4+Ml09aTtjW2krMjQ+PjJdPUw7YnJlYWt9fX13aGlsZSgwKTtpPWNbSysyMD4+
Ml18MDtpZigoaXwwKT09MCl7YnJlYWt9aWYoaT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3Jl
dHVybiAwfWVsc2V7Y1tMKzIwPj4yXT1pO2NbaSsyND4+Ml09TDticmVha319fXdoaWxlKDApO2Rv
e2lmKEo+Pj4wPDE2KXtlPUorZ3wwO2NbSys0Pj4yXT1lfDM7aT1xKyhlKzQpfDA7Y1tpPj4yXT1j
W2k+PjJdfDF9ZWxzZXtjW0srND4+Ml09Z3wzO2NbcSsoZ3w0KT4+Ml09SnwxO2NbcSsoSitnKT4+
Ml09SjtpPUo+Pj4zO2lmKEo+Pj4wPDI1Nil7ZT1pPDwxO209OTg4MCsoZTw8Mil8MDtyPWNbMjQ2
MF18MDtqPTE8PGk7ZG97aWYoKHImanwwKT09MCl7Y1syNDYwXT1yfGo7Tz1tO1A9OTg4MCsoZSsy
PDwyKXwwfWVsc2V7aT05ODgwKyhlKzI8PDIpfDA7ZD1jW2k+PjJdfDA7aWYoZD4+PjA+PShjWzI0
NjRdfDApPj4+MCl7Tz1kO1A9aTticmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtjW1A+PjJd
PWs7Y1tPKzEyPj4yXT1rO2NbcSsoZys4KT4+Ml09TztjW3ErKGcrMTIpPj4yXT1tO2JyZWFrfWU9
cDtqPUo+Pj44O2Rve2lmKChqfDApPT0wKXtRPTB9ZWxzZXtpZihKPj4+MD4xNjc3NzIxNSl7UT0z
MTticmVha31yPShqKzEwNDgzMjB8MCk+Pj4xNiY4O2k9ajw8cjtkPShpKzUyMDE5MnwwKT4+PjE2
JjQ7Qj1pPDxkO2k9KEIrMjQ1NzYwfDApPj4+MTYmMjtsPTE0LShkfHJ8aSkrKEI8PGk+Pj4xNSl8
MDtRPUo+Pj4oKGwrN3wwKT4+PjApJjF8bDw8MX19d2hpbGUoMCk7aj0xMDE0NCsoUTw8Mil8MDtj
W3ErKGcrMjgpPj4yXT1RO2NbcSsoZysyMCk+PjJdPTA7Y1txKyhnKzE2KT4+Ml09MDttPWNbMjQ2
MV18MDtsPTE8PFE7aWYoKG0mbHwwKT09MCl7Y1syNDYxXT1tfGw7Y1tqPj4yXT1lO2NbcSsoZysy
NCk+PjJdPWo7Y1txKyhnKzEyKT4+Ml09ZTtjW3ErKGcrOCk+PjJdPWU7YnJlYWt9aWYoKFF8MCk9
PTMxKXtSPTB9ZWxzZXtSPTI1LShRPj4+MSl8MH1sPUo8PFI7bT1jW2o+PjJdfDA7d2hpbGUoMSl7
aWYoKGNbbSs0Pj4yXSYtOHwwKT09KEp8MCkpe2JyZWFrfVM9bSsxNisobD4+PjMxPDwyKXwwO2o9
Y1tTPj4yXXwwO2lmKChqfDApPT0wKXtUPTY2MTticmVha31lbHNle2w9bDw8MTttPWp9fWlmKChU
fDApPT02NjEpe2lmKFM+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2Nb
Uz4+Ml09ZTtjW3ErKGcrMjQpPj4yXT1tO2NbcSsoZysxMik+PjJdPWU7Y1txKyhnKzgpPj4yXT1l
O2JyZWFrfX1sPW0rOHwwO2o9Y1tsPj4yXXwwO2k9Y1syNDY0XXwwO2lmKG0+Pj4wPGk+Pj4wKXti
RygpO3JldHVybiAwfWlmKGo+Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tqKzEyPj4y
XT1lO2NbbD4+Ml09ZTtjW3ErKGcrOCk+PjJdPWo7Y1txKyhnKzEyKT4+Ml09bTtjW3ErKGcrMjQp
Pj4yXT0wO2JyZWFrfX19d2hpbGUoMCk7cT1LKzh8MDtpZigocXwwKT09MCl7bz1nO2JyZWFrfWVs
c2V7bj1xfXJldHVybiBufDB9fXdoaWxlKDApO0s9Y1syNDYyXXwwO2lmKG8+Pj4wPD1LPj4+MCl7
Uz1LLW98MDtKPWNbMjQ2NV18MDtpZihTPj4+MD4xNSl7Uj1KO2NbMjQ2NV09UitvO2NbMjQ2Ml09
UztjW1IrKG8rNCk+PjJdPVN8MTtjW1IrSz4+Ml09UztjW0orND4+Ml09b3wzfWVsc2V7Y1syNDYy
XT0wO2NbMjQ2NV09MDtjW0orND4+Ml09S3wzO1M9SisoSys0KXwwO2NbUz4+Ml09Y1tTPj4yXXwx
fW49Sis4fDA7cmV0dXJuIG58MH1KPWNbMjQ2M118MDtpZihvPj4+MDxKPj4+MCl7Uz1KLW98MDtj
WzI0NjNdPVM7Sj1jWzI0NjZdfDA7Sz1KO2NbMjQ2Nl09SytvO2NbSysobys0KT4+Ml09U3wxO2Nb
Sis0Pj4yXT1vfDM7bj1KKzh8MDtyZXR1cm4gbnwwfWRve2lmKChjWzI0NTBdfDApPT0wKXtKPWJF
KDgpfDA7aWYoKEotMSZKfDApPT0wKXtjWzI0NTJdPUo7Y1syNDUxXT1KO2NbMjQ1M109LTE7Y1sy
NDU0XT0tMTtjWzI0NTVdPTA7Y1syNTcxXT0wO2NbMjQ1MF09KGJWKDApfDApJi0xNl4xNDMxNjU1
NzY4O2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDApO0o9bys0OHwwO1M9Y1syNDUy
XXwwO0s9bys0N3wwO1I9UytLfDA7UT0tU3wwO1M9UiZRO2lmKFM+Pj4wPD1vPj4+MCl7bj0wO3Jl
dHVybiBufDB9Tz1jWzI1NzBdfDA7ZG97aWYoKE98MCkhPTApe1A9Y1syNTY4XXwwO0w9UCtTfDA7
aWYoTD4+PjA8PVA+Pj4wfEw+Pj4wPk8+Pj4wKXtuPTB9ZWxzZXticmVha31yZXR1cm4gbnwwfX13
aGlsZSgwKTtMOTMwOmRve2lmKChjWzI1NzFdJjR8MCk9PTApe089Y1syNDY2XXwwO0w5MzI6ZG97
aWYoKE98MCk9PTApe1Q9NjkxfWVsc2V7TD1PO1A9MTAyODg7d2hpbGUoMSl7VT1QfDA7TT1jW1U+
PjJdfDA7aWYoTT4+PjA8PUw+Pj4wKXtWPVArNHwwO2lmKChNKyhjW1Y+PjJdfDApfDApPj4+MD5M
Pj4+MCl7YnJlYWt9fU09Y1tQKzg+PjJdfDA7aWYoKE18MCk9PTApe1Q9NjkxO2JyZWFrIEw5MzJ9
ZWxzZXtQPU19fWlmKChQfDApPT0wKXtUPTY5MTticmVha31MPVItKGNbMjQ2M118MCkmUTtpZihM
Pj4+MD49MjE0NzQ4MzY0Nyl7Vz0wO2JyZWFrfW09YnYoTHwwKXwwO2U9KG18MCk9PSgoY1tVPj4y
XXwwKSsoY1tWPj4yXXwwKXwwKTtYPWU/bTotMTtZPWU/TDowO1o9bTtfPUw7VD03MDB9fXdoaWxl
KDApO2Rve2lmKChUfDApPT02OTEpe089YnYoMCl8MDtpZigoT3wwKT09LTEpe1c9MDticmVha31n
PU87TD1jWzI0NTFdfDA7bT1MLTF8MDtpZigobSZnfDApPT0wKXskPVN9ZWxzZXskPVMtZysobStn
Ji1MKXwwfUw9Y1syNTY4XXwwO2c9TCskfDA7aWYoISgkPj4+MD5vPj4+MCYkPj4+MDwyMTQ3NDgz
NjQ3KSl7Vz0wO2JyZWFrfW09Y1syNTcwXXwwO2lmKChtfDApIT0wKXtpZihnPj4+MDw9TD4+PjB8
Zz4+PjA+bT4+PjApe1c9MDticmVha319bT1idigkfDApfDA7Zz0obXwwKT09KE98MCk7WD1nP086
LTE7WT1nPyQ6MDtaPW07Xz0kO1Q9NzAwfX13aGlsZSgwKTtMOTUyOmRve2lmKChUfDApPT03MDAp
e209LV98MDtpZigoWHwwKSE9LTEpe2FhPVk7YWI9WDtUPTcxMTticmVhayBMOTMwfWRve2lmKCha
fDApIT0tMSZfPj4+MDwyMTQ3NDgzNjQ3Jl8+Pj4wPEo+Pj4wKXtnPWNbMjQ1Ml18MDtPPUstXytn
Ji1nO2lmKE8+Pj4wPj0yMTQ3NDgzNjQ3KXthYz1fO2JyZWFrfWlmKChidihPfDApfDApPT0tMSl7
YnYobXwwKXwwO1c9WTticmVhayBMOTUyfWVsc2V7YWM9TytffDA7YnJlYWt9fWVsc2V7YWM9X319
d2hpbGUoMCk7aWYoKFp8MCk9PS0xKXtXPVl9ZWxzZXthYT1hYzthYj1aO1Q9NzExO2JyZWFrIEw5
MzB9fX13aGlsZSgwKTtjWzI1NzFdPWNbMjU3MV18NDthZD1XO1Q9NzA4fWVsc2V7YWQ9MDtUPTcw
OH19d2hpbGUoMCk7ZG97aWYoKFR8MCk9PTcwOCl7aWYoUz4+PjA+PTIxNDc0ODM2NDcpe2JyZWFr
fVc9YnYoU3wwKXwwO1o9YnYoMCl8MDtpZighKChafDApIT0tMSYoV3wwKSE9LTEmVz4+PjA8Wj4+
PjApKXticmVha31hYz1aLVd8MDtaPWFjPj4+MD4obys0MHwwKT4+PjA7WT1aP1c6LTE7aWYoKFl8
MCkhPS0xKXthYT1aP2FjOmFkO2FiPVk7VD03MTF9fX13aGlsZSgwKTtkb3tpZigoVHwwKT09NzEx
KXthZD0oY1syNTY4XXwwKSthYXwwO2NbMjU2OF09YWQ7aWYoYWQ+Pj4wPihjWzI1NjldfDApPj4+
MCl7Y1syNTY5XT1hZH1hZD1jWzI0NjZdfDA7TDk3Mjpkb3tpZigoYWR8MCk9PTApe1M9Y1syNDY0
XXwwO2lmKChTfDApPT0wfGFiPj4+MDxTPj4+MCl7Y1syNDY0XT1hYn1jWzI1NzJdPWFiO2NbMjU3
M109YWE7Y1syNTc1XT0wO2NbMjQ2OV09Y1syNDUwXTtjWzI0NjhdPS0xO1M9MDtkb3tZPVM8PDE7
YWM9OTg4MCsoWTw8Mil8MDtjWzk4ODArKFkrMzw8Mik+PjJdPWFjO2NbOTg4MCsoWSsyPDwyKT4+
Ml09YWM7Uz1TKzF8MDt9d2hpbGUoUz4+PjA8MzIpO1M9YWIrOHwwO2lmKChTJjd8MCk9PTApe2Fl
PTB9ZWxzZXthZT0tUyY3fVM9YWEtNDAtYWV8MDtjWzI0NjZdPWFiK2FlO2NbMjQ2M109UztjW2Fi
KyhhZSs0KT4+Ml09U3wxO2NbYWIrKGFhLTM2KT4+Ml09NDA7Y1syNDY3XT1jWzI0NTRdfWVsc2V7
Uz0xMDI4ODt3aGlsZSgxKXthZj1jW1M+PjJdfDA7YWc9Uys0fDA7YWg9Y1thZz4+Ml18MDtpZigo
YWJ8MCk9PShhZithaHwwKSl7VD03MjM7YnJlYWt9YWM9Y1tTKzg+PjJdfDA7aWYoKGFjfDApPT0w
KXticmVha31lbHNle1M9YWN9fWRve2lmKChUfDApPT03MjMpe2lmKChjW1MrMTI+PjJdJjh8MCkh
PTApe2JyZWFrfWFjPWFkO2lmKCEoYWM+Pj4wPj1hZj4+PjAmYWM+Pj4wPGFiPj4+MCkpe2JyZWFr
fWNbYWc+PjJdPWFoK2FhO2FjPWNbMjQ2Nl18MDtZPShjWzI0NjNdfDApK2FhfDA7Wj1hYztXPWFj
Kzh8MDtpZigoVyY3fDApPT0wKXthaT0wfWVsc2V7YWk9LVcmN31XPVktYWl8MDtjWzI0NjZdPVor
YWk7Y1syNDYzXT1XO2NbWisoYWkrNCk+PjJdPVd8MTtjW1orKFkrNCk+PjJdPTQwO2NbMjQ2N109
Y1syNDU0XTticmVhayBMOTcyfX13aGlsZSgwKTtpZihhYj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtj
WzI0NjRdPWFifVM9YWIrYWF8MDtZPTEwMjg4O3doaWxlKDEpe2FqPVl8MDtpZigoY1thaj4+Ml18
MCk9PShTfDApKXtUPTczMzticmVha31aPWNbWSs4Pj4yXXwwO2lmKChafDApPT0wKXticmVha31l
bHNle1k9Wn19ZG97aWYoKFR8MCk9PTczMyl7aWYoKGNbWSsxMj4+Ml0mOHwwKSE9MCl7YnJlYWt9
Y1thaj4+Ml09YWI7Uz1ZKzR8MDtjW1M+PjJdPShjW1M+PjJdfDApK2FhO1M9YWIrOHwwO2lmKChT
Jjd8MCk9PTApe2FrPTB9ZWxzZXthaz0tUyY3fVM9YWIrKGFhKzgpfDA7aWYoKFMmN3wwKT09MCl7
YWw9MH1lbHNle2FsPS1TJjd9Uz1hYisoYWwrYWEpfDA7Wj1TO1c9YWsrb3wwO2FjPWFiK1d8MDtf
PWFjO0s9Uy0oYWIrYWspLW98MDtjW2FiKyhhays0KT4+Ml09b3wzO2Rve2lmKChafDApPT0oY1sy
NDY2XXwwKSl7Sj0oY1syNDYzXXwwKStLfDA7Y1syNDYzXT1KO2NbMjQ2Nl09XztjW2FiKyhXKzQp
Pj4yXT1KfDF9ZWxzZXtpZigoWnwwKT09KGNbMjQ2NV18MCkpe0o9KGNbMjQ2Ml18MCkrS3wwO2Nb
MjQ2Ml09SjtjWzI0NjVdPV87Y1thYisoVys0KT4+Ml09SnwxO2NbYWIrKEorVyk+PjJdPUo7YnJl
YWt9Sj1hYSs0fDA7WD1jW2FiKyhKK2FsKT4+Ml18MDtpZigoWCYzfDApPT0xKXskPVgmLTg7Vj1Y
Pj4+MztMMTAxNzpkb3tpZihYPj4+MDwyNTYpe1U9Y1thYisoKGFsfDgpK2FhKT4+Ml18MDtRPWNb
YWIrKGFhKzEyK2FsKT4+Ml18MDtSPTk4ODArKFY8PDE8PDIpfDA7ZG97aWYoKFV8MCkhPShSfDAp
KXtpZihVPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9aWYoKGNbVSsxMj4+Ml18
MCk9PShafDApKXticmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtpZigoUXwwKT09KFV8MCkp
e2NbMjQ2MF09Y1syNDYwXSZ+KDE8PFYpO2JyZWFrfWRve2lmKChRfDApPT0oUnwwKSl7YW09USs4
fDB9ZWxzZXtpZihRPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9bT1RKzh8MDtp
ZigoY1ttPj4yXXwwKT09KFp8MCkpe2FtPW07YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7
Y1tVKzEyPj4yXT1RO2NbYW0+PjJdPVV9ZWxzZXtSPVM7bT1jW2FiKygoYWx8MjQpK2FhKT4+Ml18
MDtQPWNbYWIrKGFhKzEyK2FsKT4+Ml18MDtkb3tpZigoUHwwKT09KFJ8MCkpe089YWx8MTY7Zz1h
YisoSitPKXwwO0w9Y1tnPj4yXXwwO2lmKChMfDApPT0wKXtlPWFiKyhPK2FhKXwwO089Y1tlPj4y
XXwwO2lmKChPfDApPT0wKXthbj0wO2JyZWFrfWVsc2V7YW89TzthcD1lfX1lbHNle2FvPUw7YXA9
Z313aGlsZSgxKXtnPWFvKzIwfDA7TD1jW2c+PjJdfDA7aWYoKEx8MCkhPTApe2FvPUw7YXA9Zztj
b250aW51ZX1nPWFvKzE2fDA7TD1jW2c+PjJdfDA7aWYoKEx8MCk9PTApe2JyZWFrfWVsc2V7YW89
TDthcD1nfX1pZihhcD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1th
cD4+Ml09MDthbj1hbzticmVha319ZWxzZXtnPWNbYWIrKChhbHw4KSthYSk+PjJdfDA7aWYoZz4+
PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfUw9ZysxMnwwO2lmKChjW0w+PjJdfDAp
IT0oUnwwKSl7YkcoKTtyZXR1cm4gMH1lPVArOHwwO2lmKChjW2U+PjJdfDApPT0oUnwwKSl7Y1tM
Pj4yXT1QO2NbZT4+Ml09Zzthbj1QO2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDAp
O2lmKChtfDApPT0wKXticmVha31QPWFiKyhhYSsyOCthbCl8MDtVPTEwMTQ0KyhjW1A+PjJdPDwy
KXwwO2Rve2lmKChSfDApPT0oY1tVPj4yXXwwKSl7Y1tVPj4yXT1hbjtpZigoYW58MCkhPTApe2Jy
ZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbUD4+Ml0pO2JyZWFrIEwxMDE3fWVsc2V7aWYobT4+
PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfVE9bSsxNnwwO2lmKChjW1E+PjJdfDAp
PT0oUnwwKSl7Y1tRPj4yXT1hbn1lbHNle2NbbSsyMD4+Ml09YW59aWYoKGFufDApPT0wKXticmVh
ayBMMTAxN319fXdoaWxlKDApO2lmKGFuPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJu
IDB9Y1thbisyND4+Ml09bTtSPWFsfDE2O1A9Y1thYisoUithYSk+PjJdfDA7ZG97aWYoKFB8MCkh
PTApe2lmKFA+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbYW4rMTY+
PjJdPVA7Y1tQKzI0Pj4yXT1hbjticmVha319fXdoaWxlKDApO1A9Y1thYisoSitSKT4+Ml18MDtp
ZigoUHwwKT09MCl7YnJlYWt9aWYoUD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAw
fWVsc2V7Y1thbisyMD4+Ml09UDtjW1ArMjQ+PjJdPWFuO2JyZWFrfX19d2hpbGUoMCk7YXE9YWIr
KCgkfGFsKSthYSl8MDthcj0kK0t8MH1lbHNle2FxPVo7YXI9S31KPWFxKzR8MDtjW0o+PjJdPWNb
Sj4+Ml0mLTI7Y1thYisoVys0KT4+Ml09YXJ8MTtjW2FiKyhhcitXKT4+Ml09YXI7Sj1hcj4+PjM7
aWYoYXI+Pj4wPDI1Nil7Vj1KPDwxO1g9OTg4MCsoVjw8Mil8MDtQPWNbMjQ2MF18MDttPTE8PEo7
ZG97aWYoKFAmbXwwKT09MCl7Y1syNDYwXT1QfG07YXM9WDthdD05ODgwKyhWKzI8PDIpfDB9ZWxz
ZXtKPTk4ODArKFYrMjw8Mil8MDtVPWNbSj4+Ml18MDtpZihVPj4+MD49KGNbMjQ2NF18MCk+Pj4w
KXthcz1VO2F0PUo7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7Y1thdD4+Ml09XztjW2Fz
KzEyPj4yXT1fO2NbYWIrKFcrOCk+PjJdPWFzO2NbYWIrKFcrMTIpPj4yXT1YO2JyZWFrfVY9YWM7
bT1hcj4+Pjg7ZG97aWYoKG18MCk9PTApe2F1PTB9ZWxzZXtpZihhcj4+PjA+MTY3NzcyMTUpe2F1
PTMxO2JyZWFrfVA9KG0rMTA0ODMyMHwwKT4+PjE2Jjg7JD1tPDxQO0o9KCQrNTIwMTkyfDApPj4+
MTYmNDtVPSQ8PEo7JD0oVSsyNDU3NjB8MCk+Pj4xNiYyO1E9MTQtKEp8UHwkKSsoVTw8JD4+PjE1
KXwwO2F1PWFyPj4+KChRKzd8MCk+Pj4wKSYxfFE8PDF9fXdoaWxlKDApO209MTAxNDQrKGF1PDwy
KXwwO2NbYWIrKFcrMjgpPj4yXT1hdTtjW2FiKyhXKzIwKT4+Ml09MDtjW2FiKyhXKzE2KT4+Ml09
MDtYPWNbMjQ2MV18MDtRPTE8PGF1O2lmKChYJlF8MCk9PTApe2NbMjQ2MV09WHxRO2NbbT4+Ml09
VjtjW2FiKyhXKzI0KT4+Ml09bTtjW2FiKyhXKzEyKT4+Ml09VjtjW2FiKyhXKzgpPj4yXT1WO2Jy
ZWFrfWlmKChhdXwwKT09MzEpe2F2PTB9ZWxzZXthdj0yNS0oYXU+Pj4xKXwwfVE9YXI8PGF2O1g9
Y1ttPj4yXXwwO3doaWxlKDEpe2lmKChjW1grND4+Ml0mLTh8MCk9PShhcnwwKSl7YnJlYWt9YXc9
WCsxNisoUT4+PjMxPDwyKXwwO209Y1thdz4+Ml18MDtpZigobXwwKT09MCl7VD04MDY7YnJlYWt9
ZWxzZXtRPVE8PDE7WD1tfX1pZigoVHwwKT09ODA2KXtpZihhdz4+PjA8KGNbMjQ2NF18MCk+Pj4w
KXtiRygpO3JldHVybiAwfWVsc2V7Y1thdz4+Ml09VjtjW2FiKyhXKzI0KT4+Ml09WDtjW2FiKyhX
KzEyKT4+Ml09VjtjW2FiKyhXKzgpPj4yXT1WO2JyZWFrfX1RPVgrOHwwO209Y1tRPj4yXXwwOyQ9
Y1syNDY0XXwwO2lmKFg+Pj4wPCQ+Pj4wKXtiRygpO3JldHVybiAwfWlmKG0+Pj4wPCQ+Pj4wKXti
RygpO3JldHVybiAwfWVsc2V7Y1ttKzEyPj4yXT1WO2NbUT4+Ml09VjtjW2FiKyhXKzgpPj4yXT1t
O2NbYWIrKFcrMTIpPj4yXT1YO2NbYWIrKFcrMjQpPj4yXT0wO2JyZWFrfX19d2hpbGUoMCk7bj1h
YisoYWt8OCl8MDtyZXR1cm4gbnwwfX13aGlsZSgwKTtZPWFkO1c9MTAyODg7d2hpbGUoMSl7YXg9
Y1tXPj4yXXwwO2lmKGF4Pj4+MDw9WT4+PjApe2F5PWNbVys0Pj4yXXwwO2F6PWF4K2F5fDA7aWYo
YXo+Pj4wPlk+Pj4wKXticmVha319Vz1jW1crOD4+Ml18MH1XPWF4KyhheS0zOSl8MDtpZigoVyY3
fDApPT0wKXthQT0wfWVsc2V7YUE9LVcmN31XPWF4KyhheS00NythQSl8MDthYz1XPj4+MDwoYWQr
MTZ8MCk+Pj4wP1k6VztXPWFjKzh8MDtfPWFiKzh8MDtpZigoXyY3fDApPT0wKXthQj0wfWVsc2V7
YUI9LV8mN31fPWFhLTQwLWFCfDA7Y1syNDY2XT1hYithQjtjWzI0NjNdPV87Y1thYisoYUIrNCk+
PjJdPV98MTtjW2FiKyhhYS0zNik+PjJdPTQwO2NbMjQ2N109Y1syNDU0XTtjW2FjKzQ+PjJdPTI3
O2NbVz4+Ml09Y1syNTcyXTtjW1crND4+Ml09Y1sxMDI5Mj4+Ml07Y1tXKzg+PjJdPWNbMTAyOTY+
PjJdO2NbVysxMj4+Ml09Y1sxMDMwMD4+Ml07Y1syNTcyXT1hYjtjWzI1NzNdPWFhO2NbMjU3NV09
MDtjWzI1NzRdPVc7Vz1hYysyOHwwO2NbVz4+Ml09NztpZigoYWMrMzJ8MCk+Pj4wPGF6Pj4+MCl7
Xz1XO3doaWxlKDEpe1c9Xys0fDA7Y1tXPj4yXT03O2lmKChfKzh8MCk+Pj4wPGF6Pj4+MCl7Xz1X
fWVsc2V7YnJlYWt9fX1pZigoYWN8MCk9PShZfDApKXticmVha31fPWFjLWFkfDA7Vz1ZKyhfKzQp
fDA7Y1tXPj4yXT1jW1c+PjJdJi0yO2NbYWQrND4+Ml09X3wxO2NbWStfPj4yXT1fO1c9Xz4+PjM7
aWYoXz4+PjA8MjU2KXtLPVc8PDE7Wj05ODgwKyhLPDwyKXwwO1M9Y1syNDYwXXwwO209MTw8Vztk
b3tpZigoUyZtfDApPT0wKXtjWzI0NjBdPVN8bTthQz1aO2FEPTk4ODArKEsrMjw8Mil8MH1lbHNl
e1c9OTg4MCsoSysyPDwyKXwwO1E9Y1tXPj4yXXwwO2lmKFE+Pj4wPj0oY1syNDY0XXwwKT4+PjAp
e2FDPVE7YUQ9VzticmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtjW2FEPj4yXT1hZDtjW2FD
KzEyPj4yXT1hZDtjW2FkKzg+PjJdPWFDO2NbYWQrMTI+PjJdPVo7YnJlYWt9Sz1hZDttPV8+Pj44
O2Rve2lmKChtfDApPT0wKXthRT0wfWVsc2V7aWYoXz4+PjA+MTY3NzcyMTUpe2FFPTMxO2JyZWFr
fVM9KG0rMTA0ODMyMHwwKT4+PjE2Jjg7WT1tPDxTO2FjPShZKzUyMDE5MnwwKT4+PjE2JjQ7Vz1Z
PDxhYztZPShXKzI0NTc2MHwwKT4+PjE2JjI7UT0xNC0oYWN8U3xZKSsoVzw8WT4+PjE1KXwwO2FF
PV8+Pj4oKFErN3wwKT4+PjApJjF8UTw8MX19d2hpbGUoMCk7bT0xMDE0NCsoYUU8PDIpfDA7Y1th
ZCsyOD4+Ml09YUU7Y1thZCsyMD4+Ml09MDtjW2FkKzE2Pj4yXT0wO1o9Y1syNDYxXXwwO1E9MTw8
YUU7aWYoKFomUXwwKT09MCl7Y1syNDYxXT1afFE7Y1ttPj4yXT1LO2NbYWQrMjQ+PjJdPW07Y1th
ZCsxMj4+Ml09YWQ7Y1thZCs4Pj4yXT1hZDticmVha31pZigoYUV8MCk9PTMxKXthRj0wfWVsc2V7
YUY9MjUtKGFFPj4+MSl8MH1RPV88PGFGO1o9Y1ttPj4yXXwwO3doaWxlKDEpe2lmKChjW1orND4+
Ml0mLTh8MCk9PShffDApKXticmVha31hRz1aKzE2KyhRPj4+MzE8PDIpfDA7bT1jW2FHPj4yXXww
O2lmKChtfDApPT0wKXtUPTg0MTticmVha31lbHNle1E9UTw8MTtaPW19fWlmKChUfDApPT04NDEp
e2lmKGFHPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW2FHPj4yXT1L
O2NbYWQrMjQ+PjJdPVo7Y1thZCsxMj4+Ml09YWQ7Y1thZCs4Pj4yXT1hZDticmVha319UT1aKzh8
MDtfPWNbUT4+Ml18MDttPWNbMjQ2NF18MDtpZihaPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4gMH1p
ZihfPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbXysxMj4+Ml09SztjW1E+PjJdPUs7
Y1thZCs4Pj4yXT1fO2NbYWQrMTI+PjJdPVo7Y1thZCsyND4+Ml09MDticmVha319fXdoaWxlKDAp
O2FkPWNbMjQ2M118MDtpZihhZD4+PjA8PW8+Pj4wKXticmVha31fPWFkLW98MDtjWzI0NjNdPV87
YWQ9Y1syNDY2XXwwO1E9YWQ7Y1syNDY2XT1RK287Y1tRKyhvKzQpPj4yXT1ffDE7Y1thZCs0Pj4y
XT1vfDM7bj1hZCs4fDA7cmV0dXJuIG58MH19d2hpbGUoMCk7Y1soYncoKXwwKT4+Ml09MTI7bj0w
O3JldHVybiBufDB9ZnVuY3Rpb24ga0soYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MCxnPTAs
aD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9
MCxLPTAsTD0wLE09MCxOPTAsTz0wO2lmKChhfDApPT0wKXtyZXR1cm59Yj1hLTh8MDtkPWI7ZT1j
WzI0NjRdfDA7aWYoYj4+PjA8ZT4+PjApe2JHKCl9Zj1jW2EtND4+Ml18MDtnPWYmMztpZigoZ3ww
KT09MSl7YkcoKX1oPWYmLTg7aT1hKyhoLTgpfDA7aj1pO0wxMTg5OmRve2lmKChmJjF8MCk9PTAp
e2s9Y1tiPj4yXXwwO2lmKChnfDApPT0wKXtyZXR1cm59bD0tOC1rfDA7bT1hK2x8MDtuPW07bz1r
K2h8MDtpZihtPj4+MDxlPj4+MCl7YkcoKX1pZigobnwwKT09KGNbMjQ2NV18MCkpe3A9YSsoaC00
KXwwO2lmKChjW3A+PjJdJjN8MCkhPTMpe3E9bjtyPW87YnJlYWt9Y1syNDYyXT1vO2NbcD4+Ml09
Y1twPj4yXSYtMjtjW2ErKGwrNCk+PjJdPW98MTtjW2k+PjJdPW87cmV0dXJufXA9az4+PjM7aWYo
az4+PjA8MjU2KXtrPWNbYSsobCs4KT4+Ml18MDtzPWNbYSsobCsxMik+PjJdfDA7dD05ODgwKyhw
PDwxPDwyKXwwO2Rve2lmKChrfDApIT0odHwwKSl7aWYoaz4+PjA8ZT4+PjApe2JHKCl9aWYoKGNb
aysxMj4+Ml18MCk9PShufDApKXticmVha31iRygpfX13aGlsZSgwKTtpZigoc3wwKT09KGt8MCkp
e2NbMjQ2MF09Y1syNDYwXSZ+KDE8PHApO3E9bjtyPW87YnJlYWt9ZG97aWYoKHN8MCk9PSh0fDAp
KXt1PXMrOHwwfWVsc2V7aWYocz4+PjA8ZT4+PjApe2JHKCl9dj1zKzh8MDtpZigoY1t2Pj4yXXww
KT09KG58MCkpe3U9djticmVha31iRygpfX13aGlsZSgwKTtjW2srMTI+PjJdPXM7Y1t1Pj4yXT1r
O3E9bjtyPW87YnJlYWt9dD1tO3A9Y1thKyhsKzI0KT4+Ml18MDt2PWNbYSsobCsxMik+PjJdfDA7
ZG97aWYoKHZ8MCk9PSh0fDApKXt3PWErKGwrMjApfDA7eD1jW3c+PjJdfDA7aWYoKHh8MCk9PTAp
e3k9YSsobCsxNil8MDt6PWNbeT4+Ml18MDtpZigoenwwKT09MCl7QT0wO2JyZWFrfWVsc2V7Qj16
O0M9eX19ZWxzZXtCPXg7Qz13fXdoaWxlKDEpe3c9QisyMHwwO3g9Y1t3Pj4yXXwwO2lmKCh4fDAp
IT0wKXtCPXg7Qz13O2NvbnRpbnVlfXc9QisxNnwwO3g9Y1t3Pj4yXXwwO2lmKCh4fDApPT0wKXti
cmVha31lbHNle0I9eDtDPXd9fWlmKEM+Pj4wPGU+Pj4wKXtiRygpfWVsc2V7Y1tDPj4yXT0wO0E9
QjticmVha319ZWxzZXt3PWNbYSsobCs4KT4+Ml18MDtpZih3Pj4+MDxlPj4+MCl7YkcoKX14PXcr
MTJ8MDtpZigoY1t4Pj4yXXwwKSE9KHR8MCkpe2JHKCl9eT12Kzh8MDtpZigoY1t5Pj4yXXwwKT09
KHR8MCkpe2NbeD4+Ml09djtjW3k+PjJdPXc7QT12O2JyZWFrfWVsc2V7YkcoKX19fXdoaWxlKDAp
O2lmKChwfDApPT0wKXtxPW47cj1vO2JyZWFrfXY9YSsobCsyOCl8MDttPTEwMTQ0KyhjW3Y+PjJd
PDwyKXwwO2Rve2lmKCh0fDApPT0oY1ttPj4yXXwwKSl7Y1ttPj4yXT1BO2lmKChBfDApIT0wKXti
cmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Y+PjJdKTtxPW47cj1vO2JyZWFrIEwxMTg5fWVs
c2V7aWYocD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWs9cCsxNnwwO2lmKChjW2s+PjJdfDAp
PT0odHwwKSl7Y1trPj4yXT1BfWVsc2V7Y1twKzIwPj4yXT1BfWlmKChBfDApPT0wKXtxPW47cj1v
O2JyZWFrIEwxMTg5fX19d2hpbGUoMCk7aWYoQT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWNb
QSsyND4+Ml09cDt0PWNbYSsobCsxNik+PjJdfDA7ZG97aWYoKHR8MCkhPTApe2lmKHQ+Pj4wPChj
WzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbQSsxNj4+Ml09dDtjW3QrMjQ+PjJdPUE7YnJlYWt9
fX13aGlsZSgwKTt0PWNbYSsobCsyMCk+PjJdfDA7aWYoKHR8MCk9PTApe3E9bjtyPW87YnJlYWt9
aWYodD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tBKzIwPj4yXT10O2NbdCsyND4+
Ml09QTtxPW47cj1vO2JyZWFrfX1lbHNle3E9ZDtyPWh9fXdoaWxlKDApO2Q9cTtpZihkPj4+MD49
aT4+PjApe2JHKCl9QT1hKyhoLTQpfDA7ZT1jW0E+PjJdfDA7aWYoKGUmMXwwKT09MCl7YkcoKX1k
b3tpZigoZSYyfDApPT0wKXtpZigoanwwKT09KGNbMjQ2Nl18MCkpe0I9KGNbMjQ2M118MCkrcnww
O2NbMjQ2M109QjtjWzI0NjZdPXE7Y1txKzQ+PjJdPUJ8MTtpZigocXwwKSE9KGNbMjQ2NV18MCkp
e3JldHVybn1jWzI0NjVdPTA7Y1syNDYyXT0wO3JldHVybn1pZigoanwwKT09KGNbMjQ2NV18MCkp
e0I9KGNbMjQ2Ml18MCkrcnwwO2NbMjQ2Ml09QjtjWzI0NjVdPXE7Y1txKzQ+PjJdPUJ8MTtjW2Qr
Qj4+Ml09QjtyZXR1cm59Qj0oZSYtOCkrcnwwO0M9ZT4+PjM7TDEyOTI6ZG97aWYoZT4+PjA8MjU2
KXt1PWNbYStoPj4yXXwwO2c9Y1thKyhofDQpPj4yXXwwO2I9OTg4MCsoQzw8MTw8Mil8MDtkb3tp
ZigodXwwKSE9KGJ8MCkpe2lmKHU+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1pZigoY1t1KzEy
Pj4yXXwwKT09KGp8MCkpe2JyZWFrfWJHKCl9fXdoaWxlKDApO2lmKChnfDApPT0odXwwKSl7Y1sy
NDYwXT1jWzI0NjBdJn4oMTw8Qyk7YnJlYWt9ZG97aWYoKGd8MCk9PShifDApKXtEPWcrOHwwfWVs
c2V7aWYoZz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWY9Zys4fDA7aWYoKGNbZj4+Ml18MCk9
PShqfDApKXtEPWY7YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1t1KzEyPj4yXT1nO2NbRD4+Ml09dX1l
bHNle2I9aTtmPWNbYSsoaCsxNik+PjJdfDA7dD1jW2ErKGh8NCk+PjJdfDA7ZG97aWYoKHR8MCk9
PShifDApKXtwPWErKGgrMTIpfDA7dj1jW3A+PjJdfDA7aWYoKHZ8MCk9PTApe209YSsoaCs4KXww
O2s9Y1ttPj4yXXwwO2lmKChrfDApPT0wKXtFPTA7YnJlYWt9ZWxzZXtGPWs7Rz1tfX1lbHNle0Y9
djtHPXB9d2hpbGUoMSl7cD1GKzIwfDA7dj1jW3A+PjJdfDA7aWYoKHZ8MCkhPTApe0Y9djtHPXA7
Y29udGludWV9cD1GKzE2fDA7dj1jW3A+PjJdfDA7aWYoKHZ8MCk9PTApe2JyZWFrfWVsc2V7Rj12
O0c9cH19aWYoRz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tHPj4yXT0wO0U9Rjti
cmVha319ZWxzZXtwPWNbYStoPj4yXXwwO2lmKHA+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX12
PXArMTJ8MDtpZigoY1t2Pj4yXXwwKSE9KGJ8MCkpe2JHKCl9bT10Kzh8MDtpZigoY1ttPj4yXXww
KT09KGJ8MCkpe2Nbdj4+Ml09dDtjW20+PjJdPXA7RT10O2JyZWFrfWVsc2V7YkcoKX19fXdoaWxl
KDApO2lmKChmfDApPT0wKXticmVha310PWErKGgrMjApfDA7dT0xMDE0NCsoY1t0Pj4yXTw8Mil8
MDtkb3tpZigoYnwwKT09KGNbdT4+Ml18MCkpe2NbdT4+Ml09RTtpZigoRXwwKSE9MCl7YnJlYWt9
Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1t0Pj4yXSk7YnJlYWsgTDEyOTJ9ZWxzZXtpZihmPj4+MDwo
Y1syNDY0XXwwKT4+PjApe2JHKCl9Zz1mKzE2fDA7aWYoKGNbZz4+Ml18MCk9PShifDApKXtjW2c+
PjJdPUV9ZWxzZXtjW2YrMjA+PjJdPUV9aWYoKEV8MCk9PTApe2JyZWFrIEwxMjkyfX19d2hpbGUo
MCk7aWYoRT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWNbRSsyND4+Ml09ZjtiPWNbYSsoaCs4
KT4+Ml18MDtkb3tpZigoYnwwKSE9MCl7aWYoYj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVs
c2V7Y1tFKzE2Pj4yXT1iO2NbYisyND4+Ml09RTticmVha319fXdoaWxlKDApO2I9Y1thKyhoKzEy
KT4+Ml18MDtpZigoYnwwKT09MCl7YnJlYWt9aWYoYj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygp
fWVsc2V7Y1tFKzIwPj4yXT1iO2NbYisyND4+Ml09RTticmVha319fXdoaWxlKDApO2NbcSs0Pj4y
XT1CfDE7Y1tkK0I+PjJdPUI7aWYoKHF8MCkhPShjWzI0NjVdfDApKXtIPUI7YnJlYWt9Y1syNDYy
XT1CO3JldHVybn1lbHNle2NbQT4+Ml09ZSYtMjtjW3ErND4+Ml09cnwxO2NbZCtyPj4yXT1yO0g9
cn19d2hpbGUoMCk7cj1IPj4+MztpZihIPj4+MDwyNTYpe2Q9cjw8MTtlPTk4ODArKGQ8PDIpfDA7
QT1jWzI0NjBdfDA7RT0xPDxyO2Rve2lmKChBJkV8MCk9PTApe2NbMjQ2MF09QXxFO0k9ZTtKPTk4
ODArKGQrMjw8Mil8MH1lbHNle3I9OTg4MCsoZCsyPDwyKXwwO2g9Y1tyPj4yXXwwO2lmKGg+Pj4w
Pj0oY1syNDY0XXwwKT4+PjApe0k9aDtKPXI7YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1tKPj4yXT1x
O2NbSSsxMj4+Ml09cTtjW3ErOD4+Ml09STtjW3ErMTI+PjJdPWU7cmV0dXJufWU9cTtJPUg+Pj44
O2Rve2lmKChJfDApPT0wKXtLPTB9ZWxzZXtpZihIPj4+MD4xNjc3NzIxNSl7Sz0zMTticmVha31K
PShJKzEwNDgzMjB8MCk+Pj4xNiY4O2Q9STw8SjtFPShkKzUyMDE5MnwwKT4+PjE2JjQ7QT1kPDxF
O2Q9KEErMjQ1NzYwfDApPj4+MTYmMjtyPTE0LShFfEp8ZCkrKEE8PGQ+Pj4xNSl8MDtLPUg+Pj4o
KHIrN3wwKT4+PjApJjF8cjw8MX19d2hpbGUoMCk7ST0xMDE0NCsoSzw8Mil8MDtjW3ErMjg+PjJd
PUs7Y1txKzIwPj4yXT0wO2NbcSsxNj4+Ml09MDtyPWNbMjQ2MV18MDtkPTE8PEs7ZG97aWYoKHIm
ZHwwKT09MCl7Y1syNDYxXT1yfGQ7Y1tJPj4yXT1lO2NbcSsyND4+Ml09STtjW3ErMTI+PjJdPXE7
Y1txKzg+PjJdPXF9ZWxzZXtpZigoS3wwKT09MzEpe0w9MH1lbHNle0w9MjUtKEs+Pj4xKXwwfUE9
SDw8TDtKPWNbST4+Ml18MDt3aGlsZSgxKXtpZigoY1tKKzQ+PjJdJi04fDApPT0oSHwwKSl7YnJl
YWt9TT1KKzE2KyhBPj4+MzE8PDIpfDA7RT1jW00+PjJdfDA7aWYoKEV8MCk9PTApe049MTAxODti
cmVha31lbHNle0E9QTw8MTtKPUV9fWlmKChOfDApPT0xMDE4KXtpZihNPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCl9ZWxzZXtjW00+PjJdPWU7Y1txKzI0Pj4yXT1KO2NbcSsxMj4+Ml09cTtjW3Er
OD4+Ml09cTticmVha319QT1KKzh8MDtCPWNbQT4+Ml18MDtFPWNbMjQ2NF18MDtpZihKPj4+MDxF
Pj4+MCl7YkcoKX1pZihCPj4+MDxFPj4+MCl7YkcoKX1lbHNle2NbQisxMj4+Ml09ZTtjW0E+PjJd
PWU7Y1txKzg+PjJdPUI7Y1txKzEyPj4yXT1KO2NbcSsyND4+Ml09MDticmVha319fXdoaWxlKDAp
O3E9KGNbMjQ2OF18MCktMXwwO2NbMjQ2OF09cTtpZigocXwwKT09MCl7Tz0xMDI5Nn1lbHNle3Jl
dHVybn13aGlsZSgxKXtxPWNbTz4+Ml18MDtpZigocXwwKT09MCl7YnJlYWt9ZWxzZXtPPXErOHww
fX1jWzI0NjhdPS0xO3JldHVybn1mdW5jdGlvbiBrTChhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAs
ZT0wLGY9MCxnPTA7aWYoKGF8MCk9PTApe2Q9a0ooYil8MDtyZXR1cm4gZHwwfWlmKGI+Pj4wPjQy
OTQ5NjcyMzEpe2NbKGJ3KCl8MCk+PjJdPTEyO2Q9MDtyZXR1cm4gZHwwfWlmKGI+Pj4wPDExKXtl
PTE2fWVsc2V7ZT1iKzExJi04fWY9a00oYS04fDAsZSl8MDtpZigoZnwwKSE9MCl7ZD1mKzh8MDty
ZXR1cm4gZHwwfWY9a0ooYil8MDtpZigoZnwwKT09MCl7ZD0wO3JldHVybiBkfDB9ZT1jW2EtND4+
Ml18MDtnPShlJi04KS0oKGUmM3wwKT09MD84OjQpfDA7ZT1nPj4+MDxiPj4+MD9nOmI7a1koZnww
LGF8MCxlKXwwO2tLKGEpO2Q9ZjtyZXR1cm4gZHwwfWZ1bmN0aW9uIGtNKGEsYil7YT1hfDA7Yj1i
fDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2Q9YSs0fDA7ZT1j
W2Q+PjJdfDA7Zj1lJi04O2c9YTtoPWcrZnwwO2k9aDtqPWNbMjQ2NF18MDtpZihnPj4+MDxqPj4+
MCl7YkcoKTtyZXR1cm4gMH1rPWUmMztpZighKChrfDApIT0xJmc+Pj4wPGg+Pj4wKSl7YkcoKTty
ZXR1cm4gMH1sPWcrKGZ8NCl8MDttPWNbbD4+Ml18MDtpZigobSYxfDApPT0wKXtiRygpO3JldHVy
biAwfWlmKChrfDApPT0wKXtpZihiPj4+MDwyNTYpe249MDtyZXR1cm4gbnwwfWRve2lmKGY+Pj4w
Pj0oYis0fDApPj4+MCl7aWYoKGYtYnwwKT4+PjA+Y1syNDUyXTw8MT4+PjApe2JyZWFrfWVsc2V7
bj1hfXJldHVybiBufDB9fXdoaWxlKDApO249MDtyZXR1cm4gbnwwfWlmKGY+Pj4wPj1iPj4+MCl7
az1mLWJ8MDtpZihrPj4+MDw9MTUpe249YTtyZXR1cm4gbnwwfWNbZD4+Ml09ZSYxfGJ8MjtjW2cr
KGIrNCk+PjJdPWt8MztjW2w+PjJdPWNbbD4+Ml18MTtrTihnK2J8MCxrKTtuPWE7cmV0dXJuIG58
MH1pZigoaXwwKT09KGNbMjQ2Nl18MCkpe2s9KGNbMjQ2M118MCkrZnwwO2lmKGs+Pj4wPD1iPj4+
MCl7bj0wO3JldHVybiBufDB9bD1rLWJ8MDtjW2Q+PjJdPWUmMXxifDI7Y1tnKyhiKzQpPj4yXT1s
fDE7Y1syNDY2XT1nK2I7Y1syNDYzXT1sO249YTtyZXR1cm4gbnwwfWlmKChpfDApPT0oY1syNDY1
XXwwKSl7bD0oY1syNDYyXXwwKStmfDA7aWYobD4+PjA8Yj4+PjApe249MDtyZXR1cm4gbnwwfWs9
bC1ifDA7aWYoaz4+PjA+MTUpe2NbZD4+Ml09ZSYxfGJ8MjtjW2crKGIrNCk+PjJdPWt8MTtjW2cr
bD4+Ml09aztvPWcrKGwrNCl8MDtjW28+PjJdPWNbbz4+Ml0mLTI7cD1nK2J8MDtxPWt9ZWxzZXtj
W2Q+PjJdPWUmMXxsfDI7ZT1nKyhsKzQpfDA7Y1tlPj4yXT1jW2U+PjJdfDE7cD0wO3E9MH1jWzI0
NjJdPXE7Y1syNDY1XT1wO249YTtyZXR1cm4gbnwwfWlmKChtJjJ8MCkhPTApe249MDtyZXR1cm4g
bnwwfXA9KG0mLTgpK2Z8MDtpZihwPj4+MDxiPj4+MCl7bj0wO3JldHVybiBufDB9cT1wLWJ8MDtl
PW0+Pj4zO0wxNDc4OmRve2lmKG0+Pj4wPDI1Nil7bD1jW2crKGYrOCk+PjJdfDA7az1jW2crKGYr
MTIpPj4yXXwwO289OTg4MCsoZTw8MTw8Mil8MDtkb3tpZigobHwwKSE9KG98MCkpe2lmKGw+Pj4w
PGo+Pj4wKXtiRygpO3JldHVybiAwfWlmKChjW2wrMTI+PjJdfDApPT0oaXwwKSl7YnJlYWt9Ykco
KTtyZXR1cm4gMH19d2hpbGUoMCk7aWYoKGt8MCk9PShsfDApKXtjWzI0NjBdPWNbMjQ2MF0mfigx
PDxlKTticmVha31kb3tpZigoa3wwKT09KG98MCkpe3I9ays4fDB9ZWxzZXtpZihrPj4+MDxqPj4+
MCl7YkcoKTtyZXR1cm4gMH1zPWsrOHwwO2lmKChjW3M+PjJdfDApPT0oaXwwKSl7cj1zO2JyZWFr
fWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2NbbCsxMj4+Ml09aztjW3I+PjJdPWx9ZWxzZXtvPWg7
cz1jW2crKGYrMjQpPj4yXXwwO3Q9Y1tnKyhmKzEyKT4+Ml18MDtkb3tpZigodHwwKT09KG98MCkp
e3U9ZysoZisyMCl8MDt2PWNbdT4+Ml18MDtpZigodnwwKT09MCl7dz1nKyhmKzE2KXwwO3g9Y1t3
Pj4yXXwwO2lmKCh4fDApPT0wKXt5PTA7YnJlYWt9ZWxzZXt6PXg7QT13fX1lbHNle3o9djtBPXV9
d2hpbGUoMSl7dT16KzIwfDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCkhPTApe3o9djtBPXU7Y29udGlu
dWV9dT16KzE2fDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCk9PTApe2JyZWFrfWVsc2V7ej12O0E9dX19
aWYoQT4+PjA8aj4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW0E+PjJdPTA7eT16O2JyZWFrfX1l
bHNle3U9Y1tnKyhmKzgpPj4yXXwwO2lmKHU+Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAwfXY9dSsx
MnwwO2lmKChjW3Y+PjJdfDApIT0ob3wwKSl7YkcoKTtyZXR1cm4gMH13PXQrOHwwO2lmKChjW3c+
PjJdfDApPT0ob3wwKSl7Y1t2Pj4yXT10O2Nbdz4+Ml09dTt5PXQ7YnJlYWt9ZWxzZXtiRygpO3Jl
dHVybiAwfX19d2hpbGUoMCk7aWYoKHN8MCk9PTApe2JyZWFrfXQ9ZysoZisyOCl8MDtsPTEwMTQ0
KyhjW3Q+PjJdPDwyKXwwO2Rve2lmKChvfDApPT0oY1tsPj4yXXwwKSl7Y1tsPj4yXT15O2lmKCh5
fDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Q+PjJdKTticmVhayBMMTQ3OH1l
bHNle2lmKHM+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1rPXMrMTZ8MDtpZigo
Y1trPj4yXXwwKT09KG98MCkpe2Nbaz4+Ml09eX1lbHNle2NbcysyMD4+Ml09eX1pZigoeXwwKT09
MCl7YnJlYWsgTDE0Nzh9fX13aGlsZSgwKTtpZih5Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7
cmV0dXJuIDB9Y1t5KzI0Pj4yXT1zO289Y1tnKyhmKzE2KT4+Ml18MDtkb3tpZigob3wwKSE9MCl7
aWYobz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1t5KzE2Pj4yXT1v
O2NbbysyND4+Ml09eTticmVha319fXdoaWxlKDApO289Y1tnKyhmKzIwKT4+Ml18MDtpZigob3ww
KT09MCl7YnJlYWt9aWYobz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7
Y1t5KzIwPj4yXT1vO2NbbysyND4+Ml09eTticmVha319fXdoaWxlKDApO2lmKHE+Pj4wPDE2KXtj
W2Q+PjJdPXB8Y1tkPj4yXSYxfDI7eT1nKyhwfDQpfDA7Y1t5Pj4yXT1jW3k+PjJdfDE7bj1hO3Jl
dHVybiBufDB9ZWxzZXtjW2Q+PjJdPWNbZD4+Ml0mMXxifDI7Y1tnKyhiKzQpPj4yXT1xfDM7ZD1n
KyhwfDQpfDA7Y1tkPj4yXT1jW2Q+PjJdfDE7a04oZytifDAscSk7bj1hO3JldHVybiBufDB9cmV0
dXJuIDB9ZnVuY3Rpb24ga04oYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9
MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAs
Sz0wLEw9MDtkPWE7ZT1kK2J8MDtmPWU7Zz1jW2ErND4+Ml18MDtMMTU1NDpkb3tpZigoZyYxfDAp
PT0wKXtoPWNbYT4+Ml18MDtpZigoZyYzfDApPT0wKXtyZXR1cm59aT1kKygtaHwwKXwwO2o9aTtr
PWgrYnwwO2w9Y1syNDY0XXwwO2lmKGk+Pj4wPGw+Pj4wKXtiRygpfWlmKChqfDApPT0oY1syNDY1
XXwwKSl7bT1kKyhiKzQpfDA7aWYoKGNbbT4+Ml0mM3wwKSE9Myl7bj1qO289azticmVha31jWzI0
NjJdPWs7Y1ttPj4yXT1jW20+PjJdJi0yO2NbZCsoNC1oKT4+Ml09a3wxO2NbZT4+Ml09aztyZXR1
cm59bT1oPj4+MztpZihoPj4+MDwyNTYpe3A9Y1tkKyg4LWgpPj4yXXwwO3E9Y1tkKygxMi1oKT4+
Ml18MDtyPTk4ODArKG08PDE8PDIpfDA7ZG97aWYoKHB8MCkhPShyfDApKXtpZihwPj4+MDxsPj4+
MCl7YkcoKX1pZigoY1twKzEyPj4yXXwwKT09KGp8MCkpe2JyZWFrfWJHKCl9fXdoaWxlKDApO2lm
KChxfDApPT0ocHwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8bSk7bj1qO289azticmVha31kb3tp
ZigocXwwKT09KHJ8MCkpe3M9cSs4fDB9ZWxzZXtpZihxPj4+MDxsPj4+MCl7YkcoKX10PXErOHww
O2lmKChjW3Q+PjJdfDApPT0oanwwKSl7cz10O2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbcCsxMj4+
Ml09cTtjW3M+PjJdPXA7bj1qO289azticmVha31yPWk7bT1jW2QrKDI0LWgpPj4yXXwwO3Q9Y1tk
KygxMi1oKT4+Ml18MDtkb3tpZigodHwwKT09KHJ8MCkpe3U9MTYtaHwwO3Y9ZCsodSs0KXwwO3c9
Y1t2Pj4yXXwwO2lmKCh3fDApPT0wKXt4PWQrdXwwO3U9Y1t4Pj4yXXwwO2lmKCh1fDApPT0wKXt5
PTA7YnJlYWt9ZWxzZXt6PXU7QT14fX1lbHNle3o9dztBPXZ9d2hpbGUoMSl7dj16KzIwfDA7dz1j
W3Y+PjJdfDA7aWYoKHd8MCkhPTApe3o9dztBPXY7Y29udGludWV9dj16KzE2fDA7dz1jW3Y+PjJd
fDA7aWYoKHd8MCk9PTApe2JyZWFrfWVsc2V7ej13O0E9dn19aWYoQT4+PjA8bD4+PjApe2JHKCl9
ZWxzZXtjW0E+PjJdPTA7eT16O2JyZWFrfX1lbHNle3Y9Y1tkKyg4LWgpPj4yXXwwO2lmKHY+Pj4w
PGw+Pj4wKXtiRygpfXc9disxMnwwO2lmKChjW3c+PjJdfDApIT0ocnwwKSl7YkcoKX14PXQrOHww
O2lmKChjW3g+PjJdfDApPT0ocnwwKSl7Y1t3Pj4yXT10O2NbeD4+Ml09djt5PXQ7YnJlYWt9ZWxz
ZXtiRygpfX19d2hpbGUoMCk7aWYoKG18MCk9PTApe249ajtvPWs7YnJlYWt9dD1kKygyOC1oKXww
O2w9MTAxNDQrKGNbdD4+Ml08PDIpfDA7ZG97aWYoKHJ8MCk9PShjW2w+PjJdfDApKXtjW2w+PjJd
PXk7aWYoKHl8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbdD4+Ml0pO249ajtv
PWs7YnJlYWsgTDE1NTR9ZWxzZXtpZihtPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9aT1tKzE2
fDA7aWYoKGNbaT4+Ml18MCk9PShyfDApKXtjW2k+PjJdPXl9ZWxzZXtjW20rMjA+PjJdPXl9aWYo
KHl8MCk9PTApe249ajtvPWs7YnJlYWsgTDE1NTR9fX13aGlsZSgwKTtpZih5Pj4+MDwoY1syNDY0
XXwwKT4+PjApe2JHKCl9Y1t5KzI0Pj4yXT1tO3I9MTYtaHwwO3Q9Y1tkK3I+PjJdfDA7ZG97aWYo
KHR8MCkhPTApe2lmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbeSsxNj4+Ml09
dDtjW3QrMjQ+PjJdPXk7YnJlYWt9fX13aGlsZSgwKTt0PWNbZCsocis0KT4+Ml18MDtpZigodHww
KT09MCl7bj1qO289azticmVha31pZih0Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtj
W3krMjA+PjJdPXQ7Y1t0KzI0Pj4yXT15O249ajtvPWs7YnJlYWt9fWVsc2V7bj1hO289Yn19d2hp
bGUoMCk7YT1jWzI0NjRdfDA7aWYoZT4+PjA8YT4+PjApe2JHKCl9eT1kKyhiKzQpfDA7ej1jW3k+
PjJdfDA7ZG97aWYoKHomMnwwKT09MCl7aWYoKGZ8MCk9PShjWzI0NjZdfDApKXtBPShjWzI0NjNd
fDApK298MDtjWzI0NjNdPUE7Y1syNDY2XT1uO2Nbbis0Pj4yXT1BfDE7aWYoKG58MCkhPShjWzI0
NjVdfDApKXtyZXR1cm59Y1syNDY1XT0wO2NbMjQ2Ml09MDtyZXR1cm59aWYoKGZ8MCk9PShjWzI0
NjVdfDApKXtBPShjWzI0NjJdfDApK298MDtjWzI0NjJdPUE7Y1syNDY1XT1uO2Nbbis0Pj4yXT1B
fDE7Y1tuK0E+PjJdPUE7cmV0dXJufUE9KHomLTgpK298MDtzPXo+Pj4zO0wxNjUzOmRve2lmKHo+
Pj4wPDI1Nil7Zz1jW2QrKGIrOCk+PjJdfDA7dD1jW2QrKGIrMTIpPj4yXXwwO2g9OTg4MCsoczw8
MTw8Mil8MDtkb3tpZigoZ3wwKSE9KGh8MCkpe2lmKGc+Pj4wPGE+Pj4wKXtiRygpfWlmKChjW2cr
MTI+PjJdfDApPT0oZnwwKSl7YnJlYWt9YkcoKX19d2hpbGUoMCk7aWYoKHR8MCk9PShnfDApKXtj
WzI0NjBdPWNbMjQ2MF0mfigxPDxzKTticmVha31kb3tpZigodHwwKT09KGh8MCkpe0I9dCs4fDB9
ZWxzZXtpZih0Pj4+MDxhPj4+MCl7YkcoKX1tPXQrOHwwO2lmKChjW20+PjJdfDApPT0oZnwwKSl7
Qj1tO2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbZysxMj4+Ml09dDtjW0I+PjJdPWd9ZWxzZXtoPWU7
bT1jW2QrKGIrMjQpPj4yXXwwO2w9Y1tkKyhiKzEyKT4+Ml18MDtkb3tpZigobHwwKT09KGh8MCkp
e2k9ZCsoYisyMCl8MDtwPWNbaT4+Ml18MDtpZigocHwwKT09MCl7cT1kKyhiKzE2KXwwO3Y9Y1tx
Pj4yXXwwO2lmKCh2fDApPT0wKXtDPTA7YnJlYWt9ZWxzZXtEPXY7RT1xfX1lbHNle0Q9cDtFPWl9
d2hpbGUoMSl7aT1EKzIwfDA7cD1jW2k+PjJdfDA7aWYoKHB8MCkhPTApe0Q9cDtFPWk7Y29udGlu
dWV9aT1EKzE2fDA7cD1jW2k+PjJdfDA7aWYoKHB8MCk9PTApe2JyZWFrfWVsc2V7RD1wO0U9aX19
aWYoRT4+PjA8YT4+PjApe2JHKCl9ZWxzZXtjW0U+PjJdPTA7Qz1EO2JyZWFrfX1lbHNle2k9Y1tk
KyhiKzgpPj4yXXwwO2lmKGk+Pj4wPGE+Pj4wKXtiRygpfXA9aSsxMnwwO2lmKChjW3A+PjJdfDAp
IT0oaHwwKSl7YkcoKX1xPWwrOHwwO2lmKChjW3E+PjJdfDApPT0oaHwwKSl7Y1twPj4yXT1sO2Nb
cT4+Ml09aTtDPWw7YnJlYWt9ZWxzZXtiRygpfX19d2hpbGUoMCk7aWYoKG18MCk9PTApe2JyZWFr
fWw9ZCsoYisyOCl8MDtnPTEwMTQ0KyhjW2w+PjJdPDwyKXwwO2Rve2lmKChofDApPT0oY1tnPj4y
XXwwKSl7Y1tnPj4yXT1DO2lmKChDfDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxj
W2w+PjJdKTticmVhayBMMTY1M31lbHNle2lmKG0+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX10
PW0rMTZ8MDtpZigoY1t0Pj4yXXwwKT09KGh8MCkpe2NbdD4+Ml09Q31lbHNle2NbbSsyMD4+Ml09
Q31pZigoQ3wwKT09MCl7YnJlYWsgTDE2NTN9fX13aGlsZSgwKTtpZihDPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCl9Y1tDKzI0Pj4yXT1tO2g9Y1tkKyhiKzE2KT4+Ml18MDtkb3tpZigoaHwwKSE9
MCl7aWYoaD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tDKzE2Pj4yXT1oO2NbaCsy
ND4+Ml09QzticmVha319fXdoaWxlKDApO2g9Y1tkKyhiKzIwKT4+Ml18MDtpZigoaHwwKT09MCl7
YnJlYWt9aWYoaD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tDKzIwPj4yXT1oO2Nb
aCsyND4+Ml09QzticmVha319fXdoaWxlKDApO2Nbbis0Pj4yXT1BfDE7Y1tuK0E+PjJdPUE7aWYo
KG58MCkhPShjWzI0NjVdfDApKXtGPUE7YnJlYWt9Y1syNDYyXT1BO3JldHVybn1lbHNle2NbeT4+
Ml09eiYtMjtjW24rND4+Ml09b3wxO2NbbitvPj4yXT1vO0Y9b319d2hpbGUoMCk7bz1GPj4+Mztp
ZihGPj4+MDwyNTYpe3o9bzw8MTt5PTk4ODArKHo8PDIpfDA7Qz1jWzI0NjBdfDA7Yj0xPDxvO2Rv
e2lmKChDJmJ8MCk9PTApe2NbMjQ2MF09Q3xiO0c9eTtIPTk4ODArKHorMjw8Mil8MH1lbHNle289
OTg4MCsoeisyPDwyKXwwO2Q9Y1tvPj4yXXwwO2lmKGQ+Pj4wPj0oY1syNDY0XXwwKT4+PjApe0c9
ZDtIPW87YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1tIPj4yXT1uO2NbRysxMj4+Ml09bjtjW24rOD4+
Ml09RztjW24rMTI+PjJdPXk7cmV0dXJufXk9bjtHPUY+Pj44O2Rve2lmKChHfDApPT0wKXtJPTB9
ZWxzZXtpZihGPj4+MD4xNjc3NzIxNSl7ST0zMTticmVha31IPShHKzEwNDgzMjB8MCk+Pj4xNiY4
O3o9Rzw8SDtiPSh6KzUyMDE5MnwwKT4+PjE2JjQ7Qz16PDxiO3o9KEMrMjQ1NzYwfDApPj4+MTYm
MjtvPTE0LShifEh8eikrKEM8PHo+Pj4xNSl8MDtJPUY+Pj4oKG8rN3wwKT4+PjApJjF8bzw8MX19
d2hpbGUoMCk7Rz0xMDE0NCsoSTw8Mil8MDtjW24rMjg+PjJdPUk7Y1tuKzIwPj4yXT0wO2Nbbisx
Nj4+Ml09MDtvPWNbMjQ2MV18MDt6PTE8PEk7aWYoKG8menwwKT09MCl7Y1syNDYxXT1vfHo7Y1tH
Pj4yXT15O2NbbisyND4+Ml09RztjW24rMTI+PjJdPW47Y1tuKzg+PjJdPW47cmV0dXJufWlmKChJ
fDApPT0zMSl7Sj0wfWVsc2V7Sj0yNS0oST4+PjEpfDB9ST1GPDxKO0o9Y1tHPj4yXXwwO3doaWxl
KDEpe2lmKChjW0orND4+Ml0mLTh8MCk9PShGfDApKXticmVha31LPUorMTYrKEk+Pj4zMTw8Mil8
MDtHPWNbSz4+Ml18MDtpZigoR3wwKT09MCl7TD0xMjk4O2JyZWFrfWVsc2V7ST1JPDwxO0o9R319
aWYoKEx8MCk9PTEyOTgpe2lmKEs+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1jW0s+PjJdPXk7
Y1tuKzI0Pj4yXT1KO2NbbisxMj4+Ml09bjtjW24rOD4+Ml09bjtyZXR1cm59Sz1KKzh8MDtMPWNb
Sz4+Ml18MDtJPWNbMjQ2NF18MDtpZihKPj4+MDxJPj4+MCl7YkcoKX1pZihMPj4+MDxJPj4+MCl7
YkcoKX1jW0wrMTI+PjJdPXk7Y1tLPj4yXT15O2Nbbis4Pj4yXT1MO2NbbisxMj4+Ml09SjtjW24r
MjQ+PjJdPTA7cmV0dXJufWZ1bmN0aW9uIGtPKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtiPShh
fDApPT0wPzE6YTt3aGlsZSgxKXtkPWtKKGIpfDA7aWYoKGR8MCkhPTApe2U9MTM0MjticmVha31h
PShJPWNbNDA0OF18MCxjWzQwNDhdPUkrMCxJKTtpZigoYXwwKT09MCl7YnJlYWt9YjVbYSYzXSgp
fWlmKChlfDApPT0xMzQyKXtyZXR1cm4gZHwwfWQ9Yk8oNCl8MDtjW2Q+PjJdPTI0MDg7YmwoZHww
LDgxNjAsMzApO3JldHVybiAwfWZ1bmN0aW9uIGtQKGEpe2E9YXwwO3JldHVybiBrTyhhKXwwfWZ1
bmN0aW9uIGtRKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBrUihhKXthPWF8MDtyZXR1cm4gMTE2
MHwwfWZ1bmN0aW9uIGtTKGEpe2E9YXwwO2lmKChhfDApIT0wKXtrSyhhKX1yZXR1cm59ZnVuY3Rp
b24ga1QoYSl7YT1hfDA7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGtVKGEpe2E9YXwwO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBrVihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxpPTAsaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MC4wLHI9MCxzPTAsdD0wLHU9MCx2PTAuMCx3PTAs
eD0wLHk9MCx6PTAuMCxBPTAuMCxCPTAsQz0wLEQ9MCxFPTAuMCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTAsTT0wLE49MC4wLE89MCxQPTAsUT0wLjAsUj0wLjAsUz0wLjA7ZT1iO3doaWxlKDEp
e2Y9ZSsxfDA7aWYoKGFQKGFbZV18MCl8MCk9PTApe2JyZWFrfWVsc2V7ZT1mfX1zd2l0Y2goYVtl
XXwwKXtjYXNlIDQzOntnPWY7aT0wO2JyZWFrfTtjYXNlIDQ1OntnPWY7aT0xO2JyZWFrfTtkZWZh
dWx0OntnPWU7aT0wfX1lPS0xO2Y9MDtqPWc7d2hpbGUoMSl7az1hW2pdfDA7aWYoKChrPDwyND4+
MjQpLTQ4fDApPj4+MDwxMCl7bD1lfWVsc2V7aWYoazw8MjQ+PjI0IT00NnwoZXwwKT4tMSl7YnJl
YWt9ZWxzZXtsPWZ9fWU9bDtmPWYrMXwwO2o9aisxfDB9bD1qKygtZnwwKXwwO2c9KGV8MCk8MDtt
PSgoZ14xKTw8MzE+PjMxKStmfDA7bj0obXwwKT4xODtvPShuPy0xODotbXwwKSsoZz9mOmUpfDA7
ZT1uPzE4Om07ZG97aWYoKGV8MCk9PTApe3A9YjtxPTAuMH1lbHNle2lmKChlfDApPjkpe209bDtu
PWU7Zj0wO3doaWxlKDEpe2c9YVttXXwwO3I9bSsxfDA7aWYoZzw8MjQ+PjI0PT00Nil7cz1hW3Jd
fDA7dD1tKzJ8MH1lbHNle3M9Zzt0PXJ9dT0oZioxMHwwKS00OCsoczw8MjQ+PjI0KXwwO3I9bi0x
fDA7aWYoKHJ8MCk+OSl7bT10O249cjtmPXV9ZWxzZXticmVha319dj0rKHV8MCkqMS4wZTk7dz05
O3g9dDt5PTEzNzB9ZWxzZXtpZigoZXwwKT4wKXt2PTAuMDt3PWU7eD1sO3k9MTM3MH1lbHNle3o9
MC4wO0E9MC4wfX1pZigoeXwwKT09MTM3MCl7Zj14O249dzttPTA7d2hpbGUoMSl7cj1hW2ZdfDA7
Zz1mKzF8MDtpZihyPDwyND4+MjQ9PTQ2KXtCPWFbZ118MDtDPWYrMnwwfWVsc2V7Qj1yO0M9Z31E
PShtKjEwfDApLTQ4KyhCPDwyND4+MjQpfDA7Zz1uLTF8MDtpZigoZ3wwKT4wKXtmPUM7bj1nO209
RH1lbHNle2JyZWFrfX16PSsoRHwwKTtBPXZ9RT1BK3o7TDE4MTY6ZG97c3dpdGNoKGs8PDI0Pj4y
NCl7Y2FzZSA2OTpjYXNlIDEwMTp7bT1qKzF8MDtzd2l0Y2goYVttXXwwKXtjYXNlIDQ1OntGPWor
MnwwO0c9MTticmVha307Y2FzZSA0Mzp7Rj1qKzJ8MDtHPTA7YnJlYWt9O2RlZmF1bHQ6e0Y9bTtH
PTB9fW09YVtGXXwwO2lmKCgobTw8MjQ+PjI0KS00OHwwKT4+PjA8MTApe0g9RjtJPTA7Sj1tfWVs
c2V7Sz0wO0w9RjtNPUc7YnJlYWsgTDE4MTZ9d2hpbGUoMSl7bT0oSSoxMHwwKS00OCsoSjw8MjQ+
PjI0KXwwO249SCsxfDA7Zj1hW25dfDA7aWYoKChmPDwyND4+MjQpLTQ4fDApPj4+MDwxMCl7SD1u
O0k9bTtKPWZ9ZWxzZXtLPW07TD1uO009RzticmVha319YnJlYWt9O2RlZmF1bHQ6e0s9MDtMPWo7
TT0wfX19d2hpbGUoMCk7bj1vKygoTXwwKT09MD9LOi1LfDApfDA7bT0obnwwKTwwPy1ufDA6bjtp
ZigobXwwKT41MTEpe2NbKGJ3KCl8MCk+PjJdPTM0O049MS4wO089ODtQPTUxMTt5PTEzODd9ZWxz
ZXtpZigobXwwKT09MCl7UT0xLjB9ZWxzZXtOPTEuMDtPPTg7UD1tO3k9MTM4N319aWYoKHl8MCk9
PTEzODcpe3doaWxlKDEpe3k9MDtpZigoUCYxfDApPT0wKXtSPU59ZWxzZXtSPU4qK2hbTz4+M119
bT1QPj4xO2lmKChtfDApPT0wKXtRPVI7YnJlYWt9ZWxzZXtOPVI7Tz1PKzh8MDtQPW07eT0xMzg3
fX19aWYoKG58MCk+LTEpe3A9TDtxPUUqUTticmVha31lbHNle3A9TDtxPUUvUTticmVha319fXdo
aWxlKDApO2lmKChkfDApIT0wKXtjW2Q+PjJdPXB9aWYoKGl8MCk9PTApe1M9cTtyZXR1cm4rU31T
PS0wLjAtcTtyZXR1cm4rU31mdW5jdGlvbiBrVyhhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0
dXJuKygra1YoYSxiKSl9ZnVuY3Rpb24ga1goKXt2YXIgYT0wO2E9Yk8oNCl8MDtjW2E+PjJdPTI0
MDg7YmwoYXwwLDgxNjAsMzApfWZ1bmN0aW9uIGtZKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2
YXIgZj0wO2Y9YnwwO2lmKChiJjMpPT0oZCYzKSl7d2hpbGUoYiYzKXtpZigoZXwwKT09MClyZXR1
cm4gZnwwO2FbYl09YVtkXXwwO2I9YisxfDA7ZD1kKzF8MDtlPWUtMXwwfXdoaWxlKChlfDApPj00
KXtjW2I+PjJdPWNbZD4+Ml07Yj1iKzR8MDtkPWQrNHwwO2U9ZS00fDB9fXdoaWxlKChlfDApPjAp
e2FbYl09YVtkXXwwO2I9YisxfDA7ZD1kKzF8MDtlPWUtMXwwfXJldHVybiBmfDB9ZnVuY3Rpb24g
a1ooYil7Yj1ifDA7dmFyIGM9MDtjPWFbbisoYj4+PjI0KXwwXXwwO2lmKChjfDApPDgpcmV0dXJu
IGN8MDtjPWFbbisoYj4+MTYmMjU1KXwwXXwwO2lmKChjfDApPDgpcmV0dXJuIGMrOHwwO2M9YVtu
KyhiPj44JjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjKzE2fDA7cmV0dXJuKGFbbisoYiYy
NTUpfDBdfDApKzI0fDB9ZnVuY3Rpb24ga18oYixjLGQpe2I9YnwwO2M9Y3wwO2Q9ZHwwO2lmKChj
fDApPChifDApJihifDApPChjK2R8MCkpe2M9YytkfDA7Yj1iK2R8MDt3aGlsZSgoZHwwKT4wKXti
PWItMXwwO2M9Yy0xfDA7ZD1kLTF8MDthW2JdPWFbY118MH19ZWxzZXtrWShiLGMsZCl8MH19ZnVu
Y3Rpb24gayQoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtmPWIrZXww
O2lmKChlfDApPj0yMCl7ZD1kJjI1NTtlPWImMztnPWR8ZDw8OHxkPDwxNnxkPDwyNDtoPWYmfjM7
aWYoZSl7ZT1iKzQtZXwwO3doaWxlKChifDApPChlfDApKXthW2JdPWQ7Yj1iKzF8MH19d2hpbGUo
KGJ8MCk8KGh8MCkpe2NbYj4+Ml09ZztiPWIrNHwwfX13aGlsZSgoYnwwKTwoZnwwKSl7YVtiXT1k
O2I9YisxfDB9fWZ1bmN0aW9uIGswKGIpe2I9YnwwO3ZhciBjPTA7Yz1iO3doaWxlKGFbY118MCl7
Yz1jKzF8MH1yZXR1cm4gYy1ifDB9ZnVuY3Rpb24gazEoYSxiLGMsZCl7YT1hfDA7Yj1ifDA7Yz1j
fDA7ZD1kfDA7dmFyIGU9MDtlPWErYz4+PjA7cmV0dXJuKEs9YitkKyhlPj4+MDxhPj4+MHwwKT4+
PjAsZXwwKXwwfWZ1bmN0aW9uIGsyKGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO3Zh
ciBlPTA7ZT1iLWQ+Pj4wO2U9Yi1kLShjPj4+MD5hPj4+MHwwKT4+PjA7cmV0dXJuKEs9ZSxhLWM+
Pj4wfDApfDB9ZnVuY3Rpb24gazMoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2lmKChjfDApPDMy
KXtLPWI8PGN8KGEmKDE8PGMpLTE8PDMyLWMpPj4+MzItYztyZXR1cm4gYTw8Y31LPWE8PGMtMzI7
cmV0dXJuIDB9ZnVuY3Rpb24gazQoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2lmKChjfDApPDMy
KXtLPWI+Pj5jO3JldHVybiBhPj4+Y3woYiYoMTw8YyktMSk8PDMyLWN9Sz0wO3JldHVybiBiPj4+
Yy0zMnwwfWZ1bmN0aW9uIGs1KGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDtpZigoY3wwKTwzMil7
Sz1iPj5jO3JldHVybiBhPj4+Y3woYiYoMTw8YyktMSk8PDMyLWN9Sz0oYnwwKTwwPy0xOjA7cmV0
dXJuIGI+PmMtMzJ8MH1mdW5jdGlvbiBrNihiKXtiPWJ8MDt2YXIgYz0wO2M9YVttKyhiJjI1NSl8
MF18MDtpZigoY3wwKTw4KXJldHVybiBjfDA7Yz1hW20rKGI+PjgmMjU1KXwwXXwwO2lmKChjfDAp
PDgpcmV0dXJuIGMrOHwwO2M9YVttKyhiPj4xNiYyNTUpfDBdfDA7aWYoKGN8MCk8OClyZXR1cm4g
YysxNnwwO3JldHVybihhW20rKGI+Pj4yNCl8MF18MCkrMjR8MH1mdW5jdGlvbiBrNyhhLGIpe2E9
YXwwO2I9YnwwO3ZhciBjPTAsZD0wLGU9MCxmPTA7Yz1hJjY1NTM1O2Q9YiY2NTUzNTtlPWFnKGQs
Yyl8MDtmPWE+Pj4xNjthPShlPj4+MTYpKyhhZyhkLGYpfDApfDA7ZD1iPj4+MTY7Yj1hZyhkLGMp
fDA7cmV0dXJuKEs9KGE+Pj4xNikrKGFnKGQsZil8MCkrKCgoYSY2NTUzNSkrYnwwKT4+PjE2KXww
LGErYjw8MTZ8ZSY2NTUzNXwwKXwwfWZ1bmN0aW9uIGs4KGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9
Y3wwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wO2U9Yj4+MzF8KChifDApPDA/LTE6MCk8
PDE7Zj0oKGJ8MCk8MD8tMTowKT4+MzF8KChifDApPDA/LTE6MCk8PDE7Zz1kPj4zMXwoKGR8MCk8
MD8tMTowKTw8MTtoPSgoZHwwKTwwPy0xOjApPj4zMXwoKGR8MCk8MD8tMTowKTw8MTtpPWsyKGVe
YSxmXmIsZSxmKXwwO2I9SzthPWdeZTtlPWheZjtmPWsyKChsZChpLGIsazIoZ15jLGheZCxnLGgp
fDAsSywwKXwwKV5hLEteZSxhLGUpfDA7cmV0dXJuKEs9SyxmKXwwfWZ1bmN0aW9uIGs5KGEsYixk
LGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxt
PTA7Zj1pO2k9aSs4fDA7Zz1mfDA7aD1iPj4zMXwoKGJ8MCk8MD8tMTowKTw8MTtqPSgoYnwwKTww
Py0xOjApPj4zMXwoKGJ8MCk8MD8tMTowKTw8MTtrPWU+PjMxfCgoZXwwKTwwPy0xOjApPDwxO2w9
KChlfDApPDA/LTE6MCk+PjMxfCgoZXwwKTwwPy0xOjApPDwxO209azIoaF5hLGpeYixoLGopfDA7
Yj1LO2E9azIoa15kLGxeZSxrLGwpfDA7bGQobSxiLGEsSyxnKXwwO2E9azIoY1tnPj4yXV5oLGNb
Zys0Pj4yXV5qLGgsail8MDtqPUs7aT1mO3JldHVybihLPWosYSl8MH1mdW5jdGlvbiBsYShhLGIs
YyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wLGY9MDtlPWE7YT1jO2M9azcoZSxh
KXwwO2Y9SztyZXR1cm4oSz0oYWcoYixhKXwwKSsoYWcoZCxlKXwwKStmfGYmMCxjfDB8MCl8MH1m
dW5jdGlvbiBsYihhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wO2U9bGQo
YSxiLGMsZCwwKXwwO3JldHVybihLPUssZSl8MH1mdW5jdGlvbiBsYyhhLGIsZCxlKXthPWF8MDti
PWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MDtmPWk7aT1pKzh8MDtnPWZ8MDtsZChhLGIsZCxl
LGcpfDA7aT1mO3JldHVybihLPWNbZys0Pj4yXXwwLGNbZz4+Ml18MCl8MH1mdW5jdGlvbiBsZChh
LGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0w
O2c9YTtoPWI7aT1oO2o9ZDtrPWU7bD1rO2lmKChpfDApPT0wKXttPShmfDApIT0wO2lmKChsfDAp
PT0wKXtpZihtKXtjW2Y+PjJdPShnPj4+MCklKGo+Pj4wKTtjW2YrND4+Ml09MH1uPTA7bz0oZz4+
PjApLyhqPj4+MCk+Pj4wO3JldHVybihLPW4sbyl8MH1lbHNle2lmKCFtKXtuPTA7bz0wO3JldHVy
bihLPW4sbyl8MH1jW2Y+PjJdPWF8MDtjW2YrND4+Ml09YiYwO249MDtvPTA7cmV0dXJuKEs9bixv
KXwwfX1tPShsfDApPT0wO2Rve2lmKChqfDApPT0wKXtpZihtKXtpZigoZnwwKSE9MCl7Y1tmPj4y
XT0oaT4+PjApJShqPj4+MCk7Y1tmKzQ+PjJdPTB9bj0wO289KGk+Pj4wKS8oaj4+PjApPj4+MDty
ZXR1cm4oSz1uLG8pfDB9aWYoKGd8MCk9PTApe2lmKChmfDApIT0wKXtjW2Y+PjJdPTA7Y1tmKzQ+
PjJdPShpPj4+MCklKGw+Pj4wKX1uPTA7bz0oaT4+PjApLyhsPj4+MCk+Pj4wO3JldHVybihLPW4s
byl8MH1wPWwtMXwwO2lmKChwJmx8MCk9PTApe2lmKChmfDApIT0wKXtjW2Y+PjJdPWF8MDtjW2Yr
ND4+Ml09cCZpfGImMH1uPTA7bz1pPj4+KChrNihsfDApfDApPj4+MCk7cmV0dXJuKEs9bixvKXww
fXA9KGtaKGx8MCl8MCktKGtaKGl8MCl8MCl8MDtpZihwPj4+MDw9MzApe3E9cCsxfDA7cj0zMS1w
fDA7cz1xO3Q9aTw8cnxnPj4+KHE+Pj4wKTt1PWk+Pj4ocT4+PjApO3Y9MDt3PWc8PHI7YnJlYWt9
aWYoKGZ8MCk9PTApe249MDtvPTA7cmV0dXJuKEs9bixvKXwwfWNbZj4+Ml09YXwwO2NbZis0Pj4y
XT1ofGImMDtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1lbHNle2lmKCFtKXtyPShrWihsfDApfDAp
LShrWihpfDApfDApfDA7aWYocj4+PjA8PTMxKXtxPXIrMXwwO3A9MzEtcnwwO3g9ci0zMT4+MzE7
cz1xO3Q9Zz4+PihxPj4+MCkmeHxpPDxwO3U9aT4+PihxPj4+MCkmeDt2PTA7dz1nPDxwO2JyZWFr
fWlmKChmfDApPT0wKXtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1jW2Y+PjJdPWF8MDtjW2YrND4+
Ml09aHxiJjA7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9cD1qLTF8MDtpZigocCZqfDApIT0wKXt4
PShrWihqfDApfDApKzMzLShrWihpfDApfDApfDA7cT02NC14fDA7cj0zMi14fDA7eT1yPj4zMTt6
PXgtMzJ8MDtBPXo+PjMxO3M9eDt0PXItMT4+MzEmaT4+Pih6Pj4+MCl8KGk8PHJ8Zz4+Pih4Pj4+
MCkpJkE7dT1BJmk+Pj4oeD4+PjApO3Y9Zzw8cSZ5O3c9KGk8PHF8Zz4+Pih6Pj4+MCkpJnl8Zzw8
ciZ4LTMzPj4zMTticmVha31pZigoZnwwKSE9MCl7Y1tmPj4yXT1wJmc7Y1tmKzQ+PjJdPTB9aWYo
KGp8MCk9PTEpe249aHxiJjA7bz1hfDB8MDtyZXR1cm4oSz1uLG8pfDB9ZWxzZXtwPWs2KGp8MCl8
MDtuPWk+Pj4ocD4+PjApfDA7bz1pPDwzMi1wfGc+Pj4ocD4+PjApfDA7cmV0dXJuKEs9bixvKXww
fX19d2hpbGUoMCk7aWYoKHN8MCk9PTApe0I9dztDPXY7RD11O0U9dDtGPTA7Rz0wfWVsc2V7Zz1k
fDB8MDtkPWt8ZSYwO2U9azEoZyxkLC0xLC0xKXwwO2s9SztpPXc7dz12O3Y9dTt1PXQ7dD1zO3M9
MDt3aGlsZSgxKXtIPXc+Pj4zMXxpPDwxO0k9c3x3PDwxO2o9dTw8MXxpPj4+MzF8MDthPXU+Pj4z
MXx2PDwxfDA7azIoZSxrLGosYSl8MDtiPUs7aD1iPj4zMXwoKGJ8MCk8MD8tMTowKTw8MTtKPWgm
MTtMPWsyKGosYSxoJmcsKCgoYnwwKTwwPy0xOjApPj4zMXwoKGJ8MCk8MD8tMTowKTw8MSkmZCl8
MDtNPUs7Yj10LTF8MDtpZigoYnwwKT09MCl7YnJlYWt9ZWxzZXtpPUg7dz1JO3Y9TTt1PUw7dD1i
O3M9Sn19Qj1IO0M9STtEPU07RT1MO0Y9MDtHPUp9Sj1DO0M9MDtpZigoZnwwKSE9MCl7Y1tmPj4y
XT1FO2NbZis0Pj4yXT1EfW49KEp8MCk+Pj4zMXwoQnxDKTw8MXwoQzw8MXxKPj4+MzEpJjB8Rjtv
PShKPDwxfDA+Pj4zMSkmLTJ8RztyZXR1cm4oSz1uLG8pfDB9ZnVuY3Rpb24gbGUoKXtiUCgpfWZ1
bmN0aW9uIGxmKGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtiV1thJjddKGJ8MCxjfDAsZHwwLGV8MCxmfDApfWZ1bmN0aW9uIGxnKGEsYixjLGQsZSxmLGcs
aCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7YlhbYSYx
MjddKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8MCl9ZnVuY3Rpb24gbGgoYSxiKXthPWF8MDti
PWJ8MDtiWVthJjUxMV0oYnwwKX1mdW5jdGlvbiBsaShhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7
YlpbYSYxMjddKGJ8MCxjfDApfWZ1bmN0aW9uIGxqKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDty
ZXR1cm4gYl9bYSYzMV0oYnwwLGN8MCl8MH1mdW5jdGlvbiBsayhhLGIsYyxkLGUsZil7YT1hfDA7
Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7cmV0dXJuIGIkW2EmMzFdKGJ8MCxjfDAsZHww
LGV8MCxmfDApfDB9ZnVuY3Rpb24gbGwoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4gYjBbYSYxMjdd
KGJ8MCl8MH1mdW5jdGlvbiBsbShhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtyZXR1
cm4gYjFbYSY2M10oYnwwLGN8MCxkfDApfDB9ZnVuY3Rpb24gbG4oYSxiLGMsZCxlLGYsZyl7YT1h
fDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz0rZztiMlthJjE1XShifDAsY3wwLGR8
MCxlfDAsZnwwLCtnKX1mdW5jdGlvbiBsbyhhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8
MDtiM1thJjddKGJ8MCxjfDAsZHwwKX1mdW5jdGlvbiBscChhLGIsYyxkLGUsZixnLGgsaSl7YT1h
fDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7YjRbYSYx
NV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwLGl8MCl9ZnVuY3Rpb24gbHEoYSl7YT1hfDA7
YjVbYSYzXSgpfWZ1bmN0aW9uIGxyKGEsYixjLGQsZSxmLGcsaCxpKXthPWF8MDtiPWJ8MDtjPWN8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtyZXR1cm4gYjZbYSYzMV0oYnww
LGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwLGl8MCl8MH1mdW5jdGlvbiBscyhhLGIsYyxkLGUsZixn
LGgsaSxqKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtp
PWl8MDtqPWp8MDtiN1thJjddKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8MCxpfDAsanwwKX1m
dW5jdGlvbiBsdChhLGIsYyxkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9K2g7YjhbYSY3XShifDAsY3wwLGR8MCxlfDAsZnwwLGd8MCwraCl9ZnVu
Y3Rpb24gbHUoYSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7YjlbYSYzMV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDApfWZ1bmN0aW9uIGx2KGEs
YixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7cmV0dXJuIGNhW2EmMTVdKGJ8
MCxjfDAsZHwwLGV8MCl8MH1mdW5jdGlvbiBsdyhhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3ww
O2Q9ZHwwO2U9ZXwwO2NiW2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCl9ZnVuY3Rpb24gbHgoYSxiLGMs
ZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDthaCgwKX1mdW5jdGlvbiBseShhLGIs
YyxkLGUsZixnKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDthaCgx
KX1mdW5jdGlvbiBseihhKXthPWF8MDthaCgyKX1mdW5jdGlvbiBsQShhLGIpe2E9YXwwO2I9Ynww
O2FoKDMpfWZ1bmN0aW9uIGxCKGEsYil7YT1hfDA7Yj1ifDA7YWgoNCk7cmV0dXJuIDB9ZnVuY3Rp
b24gbEMoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDthaCg1KTtyZXR1
cm4gMH1mdW5jdGlvbiBsRChhKXthPWF8MDthaCg2KTtyZXR1cm4gMH1mdW5jdGlvbiBsRShhLGIs
Yyl7YT1hfDA7Yj1ifDA7Yz1jfDA7YWgoNyk7cmV0dXJuIDB9ZnVuY3Rpb24gbEYoYSxiLGMsZCxl
LGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9K2Y7YWgoOCl9ZnVuY3Rpb24gbEco
YSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2FoKDkpfWZ1bmN0aW9uIGxIKGEsYixjLGQsZSxmLGcs
aCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7YWgoMTAp
fWZ1bmN0aW9uIGxJKCl7YWgoMTEpfWZ1bmN0aW9uIGxKKGEsYixjLGQsZSxmLGcsaCl7YT1hfDA7
Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7YWgoMTIpO3JldHVybiAw
fWZ1bmN0aW9uIGxLKGEsYixjLGQsZSxmLGcsaCxpKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtl
PWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDthaCgxMyl9ZnVuY3Rpb24gbEwoYSxiLGMsZCxl
LGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz0rZzthaCgxNCl9ZnVu
Y3Rpb24gbE0oYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2FoKDE1KX1mdW5jdGlvbiBsTihhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDthaCgx
Nik7cmV0dXJuIDB9ZnVuY3Rpb24gbE8oYSxiLGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7
YWgoMTcpfQotLy8gRU1TQ1JJUFRFTl9FTkRfRlVOQ1MKLXZhciBiVz1bbHgsbHgsa0csbHgsa0Qs
bHgsa0YsbHhdO3ZhciBiWD1bbHksbHksZ0csbHksZ1AsbHksZ1MsbHksaWgsbHksZ3QsbHksZ3Is
bHksaDksbHksZ0IsbHksZ0YsbHksZ1QsbHksZ2YsbHksZjcsbHksZ0UsbHksZkgsbHksZlosbHks
Z1EsbHksZ2QsbHksZiQsbHksZlgsbHksZlksbHksZlEsbHksZl8sbHksZlYsbHksZlQsbHksZjQs
bHksZjMsbHksZjAsbHksZ1UsbHksZkEsbHksZ0MsbHksZkUsbHksZnYsbHksZnksbHksZkMsbHks
ZnIsbHksZk0sbHksZkssbHksZnAsbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHks
bHldO3ZhciBiWT1bbHosbHosaWssbHosZm4sbHosZ2wsbHosZEgsbHosZW4sbHosaUUsbHosZHIs
bHosaEEsbHosZjUsbHosZEIsbHosZEcsbHosZk8sbHosZmIsbHosZTcsbHosa1EsbHosZEMsbHos
aVAsbHosaVMsbHosZ08sbHosZlAsbHosa3EsbHosZTEsbHosaWUsbHosaVEsbHosZVMsbHosZm8s
bHosaHIsbHosaUwsbHosakksbHosaVUsbHosa2ssbHosakgsbHosZTUsbHosYzUsbHosZEcsbHos
Y3QsbHosZmYsbHosaGcsbHosakssbHosaVIsbHosa0ssbHosaDcsbHosakcsbHosZVYsbHosYzQs
bHosZmUsbHosZEMsbHosajMsbHosZjYsbHosZGYsbHosaHMsbHosZVIsbHosZSQsbHosaHksbHos
Z04sbHosZTgsbHosaGwsbHosa1UsbHosZW0sbHosajYsbHosajcsbHosZTIsbHosZXUsbHosa3gs
bHosaVYsbHosaTksbHosa2ksbHosZVQsbHosZTYsbHosaE8sbHosZGQsbHosaHgsbHosZTMsbHos
ajksbHosa2wsbHosanEsbHosZGIsbHosaUssbHosaU8sbHosaHosbHosaFUsbHosa3UsbHosaEcs
bHosaDgsbHosajgsbHosaGYsbHosZ2ssbHosZmEsbHosZGMsbHosZmMsbHosZVgsbHosZE4sbHos
aCQsbHosaFQsbHosakosbHosZWUsbHosZEksbHosa2ksbHosa3ksbHosZV8sbHosZE8sbHosZVEs
bHosZTAsbHosaWQsbHosZUQsbHosZVosbHosZHMsbHosaVcsbHosZTksbHosaEosbHosZ3osbHos
aG0sbHosYyQsbHosaXEsbHosaDAsbHosZVcsbHosZXQsbHosZVksbHosakYsbHosajQsbHosZ0Es
bHosa3csbHosaWwsbHosY18sbHosa3YsbHosaEIsbHosaFAsbHosY1csbHosZFAsbHosaVQsbHos
ZEYsbHosZVUsbHosa2EsbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHpdO3ZhciBiWj1bbEEsbEEsalAsbEEsYzAsbEEsaE0sbEEsak0sbEEsaGIsbEEsakws
bEEsaWosbEEsZDksbEEsaGssbEEsaEgsbEEsaHcsbEEsaGosbEEsaGgsbEEsaE4sbEEsaU4sbEEs
ZzksbEEsZG0sbEEsaEksbEEsak8sbEEsaEssbEEsaG8sbEEsZEUsbEEsaG4sbEEsalEsbEEsaGEs
bEEsaHEsbEEsak4sbEEsZzgsbEEsZDIsbEEsZHQsbEEsYzYsbEEsaW8sbEEsaHQsbEEsZzcsbEEs
ZzYsbEEsaGksbEEsaHUsbEEsaHYsbEEsaHAsbEEsaEwsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEs
bEFdO3ZhciBiXz1bbEIsbEIsaTQsbEIsZHcsbEIsaUEsbEIsaXQsbEIsZDgsbEIsYzksbEIsZHAs
bEIsaTAsbEIsaTYsbEIsZUksbEIsaTIsbEIsZDcsbEIsYzIsbEIsZUgsbEIsbEIsbEJdO3ZhciBi
JD1bbEMsbEMsamgsbEMsamYsbEMsakUsbEMsaXcsbEMsaUcsbEMsanAsbEMsaUksbEMsZmssbEMs
aUQsbEMsamQsbEMsZUwsbEMsanMsbEMsbEMsbEMsbEMsbEMsbEMsbENdO3ZhciBiMD1bbEQsbEQs
ajIsbEQsZzQsbEQsZDYsbEQsalUsbEQsZXIsbEQsajAsbEQsZzAsbEQsamUsbEQsamssbEQsZ3ks
bEQsalMsbEQsZHYsbEQsZU8sbEQsZUcsbEQsalksbEQsalcsbEQsanQsbEQsa2osbEQsZGksbEQs
akMsbEQsanosbEQsalgsbEQsamosbEQsakEsbEQsZDQsbEQsaEYsbEQsalosbEQsZHUsbEQsYzEs
bEQsZzEsbEQsaTgsbEQsajEsbEQsanYsbEQsaEQsbEQsalIsbEQsYzcsbEQsanUsbEQsamcsbEQs
ZUosbEQsZyQsbEQsYzgsbEQsakIsbEQsZDUsbEQsZUUsbEQsZG4sbEQsZzIsbEQsaXosbEQsaXks
bEQsa1IsbEQsZUYsbEQsZ1osbEQsalQsbEQsaXgsbEQsZ18sbEQsZGgsbEQsZzMsbEQsZzUsbEQs
alYsbEQsaEUsbEQsZ00sbEQsaiQsbEQsal8sbEQsamksbERdO3ZhciBiMT1bbEUsbEUsZU0sbEUs
aTUsbEUsaTMsbEUsa3osbEUsaUIsbEUsZmwsbEUsZEosbEUsZXMsbEUsZXEsbEUsaVksbEUsZWEs
bEUsaW0sbEUsaUMsbEUsaTEsbEUsZU4sbEUsZGwsbEUsaTcsbEUsaWcsbEUsZDMsbEUsZVAsbEUs
bEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUs
bEUsbEUsbEVdO3ZhciBiMj1bbEYsbEYsZ3csbEYsZ3UsbEYsZ2ksbEYsZ2csbEYsbEYsbEYsbEYs
bEYsbEYsbEZdO3ZhciBiMz1bbEcsbEcsZGssbEcsZTQsbEcsbEcsbEddO3ZhciBiND1bbEgsbEgs
aGUsbEgsaGQsbEgsaFEsbEgsaFksbEgsaFcsbEgsaDEsbEgsbEgsbEhdO3ZhciBiNT1bbEksbEks
bGUsbEldO3ZhciBiNj1bbEosbEosaXUsbEosamMsbEosam8sbEosaXYsbEosanIsbEosakQsbEos
amIsbEosamEsbEosbEosbEosbEosbEosbEosbEosbEosbEosbEosbEosbEosbEosbEosbEpdO3Zh
ciBiNz1bbEssbEssZ1csbEssZ0ksbEssbEssbEtdO3ZhciBiOD1bbEwsbEwsaWEsbEwsaDQsbEws
bEwsbExdO3ZhciBiOT1bbE0sbE0sa0gsbE0sZ3MsbE0sZ20sbE0sZ28sbE0sa0ksbE0sZ3gsbE0s
aWksbE0sZWQsbE0sZ24sbE0sZ2EsbE0sZ2UsbE0sZjgsbE0sa0UsbE0sZWIsbE0saXAsbE1dO3Zh
ciBjYT1bbE4sbE4saVosbE4saV8sbE4saUgsbE4saUYsbE4saSQsbE4sbE4sbE4sbE4sbE5dO3Zh
ciBjYj1bbE8sbE8sa0EsbE8sa0IsbE8sZWMsbE8sa3IsbE8sZUssbE8sZm0sbE8sZmQsbE9dO3Jl
dHVybntfc3RybGVuOmswLF9mcmVlOmtLLF9tYWluOmNELF9yZWFsbG9jOmtMLF9tZW1tb3ZlOmtf
LF9fR0xPQkFMX19JX2E6Y1QsX21lbXNldDprJCxfbWFsbG9jOmtKLF9tZW1jcHk6a1ksX2xsdm1f
Y3Rsel9pMzI6a1osX19HTE9CQUxfX0lfYTg6ZHkscnVuUG9zdFNldHM6Y3Msc3RhY2tBbGxvYzpj
YyxzdGFja1NhdmU6Y2Qsc3RhY2tSZXN0b3JlOmNlLHNldFRocmV3OmNmLHNldFRlbXBSZXQwOmNp
LHNldFRlbXBSZXQxOmNqLHNldFRlbXBSZXQyOmNrLHNldFRlbXBSZXQzOmNsLHNldFRlbXBSZXQ0
OmNtLHNldFRlbXBSZXQ1OmNuLHNldFRlbXBSZXQ2OmNvLHNldFRlbXBSZXQ3OmNwLHNldFRlbXBS
ZXQ4OmNxLHNldFRlbXBSZXQ5OmNyLGR5bkNhbGxfdmlpaWlpOmxmLGR5bkNhbGxfdmlpaWlpaWk6
bGcsZHluQ2FsbF92aTpsaCxkeW5DYWxsX3ZpaTpsaSxkeW5DYWxsX2lpaTpsaixkeW5DYWxsX2lp
aWlpaTpsayxkeW5DYWxsX2lpOmxsLGR5bkNhbGxfaWlpaTpsbSxkeW5DYWxsX3ZpaWlpaWY6bG4s
ZHluQ2FsbF92aWlpOmxvLGR5bkNhbGxfdmlpaWlpaWlpOmxwLGR5bkNhbGxfdjpscSxkeW5DYWxs
X2lpaWlpaWlpaTpscixkeW5DYWxsX3ZpaWlpaWlpaWk6bHMsZHluQ2FsbF92aWlpaWlpZjpsdCxk
eW5DYWxsX3ZpaWlpaWk6bHUsZHluQ2FsbF9paWlpaTpsdixkeW5DYWxsX3ZpaWlpOmx3fX0pCi0v
LyBFTVNDUklQVEVOX0VORF9BU00KLSh7ICJNYXRoIjogTWF0aCwgIkludDhBcnJheSI6IEludDhB
cnJheSwgIkludDE2QXJyYXkiOiBJbnQxNkFycmF5LCAiSW50MzJBcnJheSI6IEludDMyQXJyYXks
ICJVaW50OEFycmF5IjogVWludDhBcnJheSwgIlVpbnQxNkFycmF5IjogVWludDE2QXJyYXksICJV
aW50MzJBcnJheSI6IFVpbnQzMkFycmF5LCAiRmxvYXQzMkFycmF5IjogRmxvYXQzMkFycmF5LCAi
RmxvYXQ2NEFycmF5IjogRmxvYXQ2NEFycmF5IH0sIHsgImFib3J0IjogYWJvcnQsICJhc3NlcnQi
OiBhc3NlcnQsICJhc21QcmludEludCI6IGFzbVByaW50SW50LCAiYXNtUHJpbnRGbG9hdCI6IGFz
bVByaW50RmxvYXQsICJtaW4iOiBNYXRoX21pbiwgImludm9rZV92aWlpaWkiOiBpbnZva2Vfdmlp
aWlpLCAiaW52b2tlX3ZpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlpLCAiaW52b2tlX3ZpIjogaW52
b2tlX3ZpLCAiaW52b2tlX3ZpaSI6IGludm9rZV92aWksICJpbnZva2VfaWlpIjogaW52b2tlX2lp
aSwgImludm9rZV9paWlpaWkiOiBpbnZva2VfaWlpaWlpLCAiaW52b2tlX2lpIjogaW52b2tlX2lp
LCAiaW52b2tlX2lpaWkiOiBpbnZva2VfaWlpaSwgImludm9rZV92aWlpaWlmIjogaW52b2tlX3Zp
aWlpaWYsICJpbnZva2VfdmlpaSI6IGludm9rZV92aWlpLCAiaW52b2tlX3ZpaWlpaWlpaSI6IGlu
dm9rZV92aWlpaWlpaWksICJpbnZva2VfdiI6IGludm9rZV92LCAiaW52b2tlX2lpaWlpaWlpaSI6
IGludm9rZV9paWlpaWlpaWksICJpbnZva2VfdmlpaWlpaWlpaSI6IGludm9rZV92aWlpaWlpaWlp
LCAiaW52b2tlX3ZpaWlpaWlmIjogaW52b2tlX3ZpaWlpaWlmLCAiaW52b2tlX3ZpaWlpaWkiOiBp
bnZva2VfdmlpaWlpaSwgImludm9rZV9paWlpaSI6IGludm9rZV9paWlpaSwgImludm9rZV92aWlp
aSI6IGludm9rZV92aWlpaSwgIl9sbHZtX2xpZmV0aW1lX2VuZCI6IF9sbHZtX2xpZmV0aW1lX2Vu
ZCwgIl9fc2NhblN0cmluZyI6IF9fc2NhblN0cmluZywgIl9wdGhyZWFkX211dGV4X2xvY2siOiBf
cHRocmVhZF9tdXRleF9sb2NrLCAiX19fY3hhX2VuZF9jYXRjaCI6IF9fX2N4YV9lbmRfY2F0Y2gs
ICJfc3RydG91bGwiOiBfc3RydG91bGwsICJfX2lzRmxvYXQiOiBfX2lzRmxvYXQsICJfZmZsdXNo
IjogX2ZmbHVzaCwgIl9faXNMZWFwWWVhciI6IF9faXNMZWFwWWVhciwgIl9md3JpdGUiOiBfZndy
aXRlLCAiX3NlbmQiOiBfc2VuZCwgIl9sbHZtX3VtdWxfd2l0aF9vdmVyZmxvd19pMzIiOiBfbGx2
bV91bXVsX3dpdGhfb3ZlcmZsb3dfaTMyLCAiX2lzc3BhY2UiOiBfaXNzcGFjZSwgIl9yZWFkIjog
X3JlYWQsICJfX19jeGFfZ3VhcmRfYWJvcnQiOiBfX19jeGFfZ3VhcmRfYWJvcnQsICJfbmV3bG9j
YWxlIjogX25ld2xvY2FsZSwgIl9fX2d4eF9wZXJzb25hbGl0eV92MCI6IF9fX2d4eF9wZXJzb25h
bGl0eV92MCwgIl9wdGhyZWFkX2NvbmRfd2FpdCI6IF9wdGhyZWFkX2NvbmRfd2FpdCwgIl9fX2N4
YV9yZXRocm93IjogX19fY3hhX3JldGhyb3csICJfX19yZXN1bWVFeGNlcHRpb24iOiBfX19yZXN1
bWVFeGNlcHRpb24sICJfbGx2bV92YV9lbmQiOiBfbGx2bV92YV9lbmQsICJfdnNzY2FuZiI6IF92
c3NjYW5mLCAiX3NucHJpbnRmIjogX3NucHJpbnRmLCAiX2ZnZXRjIjogX2ZnZXRjLCAiX2F0ZXhp
dCI6IF9hdGV4aXQsICJfX19jeGFfZnJlZV9leGNlcHRpb24iOiBfX19jeGFfZnJlZV9leGNlcHRp
b24sICJfX1o4Y2F0Y2xvc2VQOF9ubF9jYXRkIjogX19aOGNhdGNsb3NlUDhfbmxfY2F0ZCwgIl9f
X3NldEVyck5vIjogX19fc2V0RXJyTm8sICJfaXN4ZGlnaXQiOiBfaXN4ZGlnaXQsICJfZXhpdCI6
IF9leGl0LCAiX3NwcmludGYiOiBfc3ByaW50ZiwgIl9fX2N0eXBlX2JfbG9jIjogX19fY3R5cGVf
Yl9sb2MsICJfZnJlZWxvY2FsZSI6IF9mcmVlbG9jYWxlLCAiX19aN2NhdG9wZW5QS2NpIjogX19a
N2NhdG9wZW5QS2NpLCAiX2FzcHJpbnRmIjogX2FzcHJpbnRmLCAiX19fY3hhX2lzX251bWJlcl90
eXBlIjogX19fY3hhX2lzX251bWJlcl90eXBlLCAiX19fY3hhX2RvZXNfaW5oZXJpdCI6IF9fX2N4
YV9kb2VzX2luaGVyaXQsICJfX19jeGFfZ3VhcmRfYWNxdWlyZSI6IF9fX2N4YV9ndWFyZF9hY3F1
aXJlLCAiX19fbG9jYWxlX21iX2N1cl9tYXgiOiBfX19sb2NhbGVfbWJfY3VyX21heCwgIl9fX2N4
YV9iZWdpbl9jYXRjaCI6IF9fX2N4YV9iZWdpbl9jYXRjaCwgIl9yZWN2IjogX3JlY3YsICJfX3Bh
cnNlSW50NjQiOiBfX3BhcnNlSW50NjQsICJfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udiI6IF9f
WlN0MTh1bmNhdWdodF9leGNlcHRpb252LCAiX19fY3hhX2NhbGxfdW5leHBlY3RlZCI6IF9fX2N4
YV9jYWxsX3VuZXhwZWN0ZWQsICJfX2V4aXQiOiBfX2V4aXQsICJfc3RyZnRpbWUiOiBfc3RyZnRp
bWUsICJfX19jeGFfdGhyb3ciOiBfX19jeGFfdGhyb3csICJfbGx2bV9laF9leGNlcHRpb24iOiBf
bGx2bV9laF9leGNlcHRpb24sICJfcHJlYWQiOiBfcHJlYWQsICJfX2FycmF5U3VtIjogX19hcnJh
eVN1bSwgIl9sb2ciOiBfbG9nLCAiX19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2giOiBfX19jeGFf
ZmluZF9tYXRjaGluZ19jYXRjaCwgIl9fZm9ybWF0U3RyaW5nIjogX19mb3JtYXRTdHJpbmcsICJf
cHRocmVhZF9jb25kX2Jyb2FkY2FzdCI6IF9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0LCAiX19aU3Q5
dGVybWluYXRldiI6IF9fWlN0OXRlcm1pbmF0ZXYsICJfcHRocmVhZF9tdXRleF91bmxvY2siOiBf
cHRocmVhZF9tdXRleF91bmxvY2ssICJfc2JyayI6IF9zYnJrLCAiX19fZXJybm9fbG9jYXRpb24i
OiBfX19lcnJub19sb2NhdGlvbiwgIl9zdHJlcnJvciI6IF9zdHJlcnJvciwgIl9sbHZtX2xpZmV0
aW1lX3N0YXJ0IjogX2xsdm1fbGlmZXRpbWVfc3RhcnQsICJfX19jeGFfZ3VhcmRfcmVsZWFzZSI6
IF9fX2N4YV9ndWFyZF9yZWxlYXNlLCAiX3VuZ2V0YyI6IF91bmdldGMsICJfdXNlbG9jYWxlIjog
X3VzZWxvY2FsZSwgIl92c25wcmludGYiOiBfdnNucHJpbnRmLCAiX3NzY2FuZiI6IF9zc2NhbmYs
ICJfc3lzY29uZiI6IF9zeXNjb25mLCAiX2ZyZWFkIjogX2ZyZWFkLCAiX2Fib3J0IjogX2Fib3J0
LCAiX2lzZGlnaXQiOiBfaXNkaWdpdCwgIl9zdHJ0b2xsIjogX3N0cnRvbGwsICJfX2FkZERheXMi
OiBfX2FkZERheXMsICJfZmxvb3IiOiBfZmxvb3IsICJfX3JlYWxseU5lZ2F0aXZlIjogX19yZWFs
bHlOZWdhdGl2ZSwgIl9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtjIjogX19aN2NhdGdldHNQOF9u
bF9jYXRkaWlQS2MsICJfd3JpdGUiOiBfd3JpdGUsICJfX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9u
IjogX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbiwgIl9fX2N4YV9wdXJlX3ZpcnR1YWwiOiBfX19j
eGFfcHVyZV92aXJ0dWFsLCAiX3Zhc3ByaW50ZiI6IF92YXNwcmludGYsICJfX19jdHlwZV90b3Vw
cGVyX2xvYyI6IF9fX2N0eXBlX3RvdXBwZXJfbG9jLCAiX19fY3R5cGVfdG9sb3dlcl9sb2MiOiBf
X19jdHlwZV90b2xvd2VyX2xvYywgIl9wd3JpdGUiOiBfcHdyaXRlLCAiX3N0cmVycm9yX3IiOiBf
c3RyZXJyb3JfciwgIl90aW1lIjogX3RpbWUsICJTVEFDS1RPUCI6IFNUQUNLVE9QLCAiU1RBQ0tf
TUFYIjogU1RBQ0tfTUFYLCAidGVtcERvdWJsZVB0ciI6IHRlbXBEb3VibGVQdHIsICJBQk9SVCI6
IEFCT1JULCAiY3R0el9pOCI6IGN0dHpfaTgsICJjdGx6X2k4IjogY3Rsel9pOCwgIk5hTiI6IE5h
TiwgIkluZmluaXR5IjogSW5maW5pdHksICJfc3RkaW4iOiBfc3RkaW4sICJfX1pUVk4xMF9fY3h4
YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRSI6IF9fWlRWTjEwX19jeHhhYml2MTE3X19jbGFzc190
eXBlX2luZm9FLCAiX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UiOiBf
X1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRSwgIl9zdGRlcnIiOiBfc3Rk
ZXJyLCAiX19fZnNtdTgiOiBfX19mc211OCwgIl9zdGRvdXQiOiBfc3Rkb3V0LCAiX19fZHNvX2hh
bmRsZSI6IF9fX2Rzb19oYW5kbGUgfSwgYnVmZmVyKTsKLXZhciBfc3RybGVuID0gTW9kdWxlWyJf
c3RybGVuIl0gPSBhc21bIl9zdHJsZW4iXTsKLXZhciBfZnJlZSA9IE1vZHVsZVsiX2ZyZWUiXSA9
IGFzbVsiX2ZyZWUiXTsKLXZhciBfbWFpbiA9IE1vZHVsZVsiX21haW4iXSA9IGFzbVsiX21haW4i
XTsKLXZhciBfcmVhbGxvYyA9IE1vZHVsZVsiX3JlYWxsb2MiXSA9IGFzbVsiX3JlYWxsb2MiXTsK
LXZhciBfbWVtbW92ZSA9IE1vZHVsZVsiX21lbW1vdmUiXSA9IGFzbVsiX21lbW1vdmUiXTsKLXZh
ciBfX0dMT0JBTF9fSV9hID0gTW9kdWxlWyJfX0dMT0JBTF9fSV9hIl0gPSBhc21bIl9fR0xPQkFM
X19JX2EiXTsKLXZhciBfbWVtc2V0ID0gTW9kdWxlWyJfbWVtc2V0Il0gPSBhc21bIl9tZW1zZXQi
XTsKLXZhciBfbWFsbG9jID0gTW9kdWxlWyJfbWFsbG9jIl0gPSBhc21bIl9tYWxsb2MiXTsKLXZh
ciBfbWVtY3B5ID0gTW9kdWxlWyJfbWVtY3B5Il0gPSBhc21bIl9tZW1jcHkiXTsKLXZhciBfbGx2
bV9jdGx6X2kzMiA9IE1vZHVsZVsiX2xsdm1fY3Rsel9pMzIiXSA9IGFzbVsiX2xsdm1fY3Rsel9p
MzIiXTsKLXZhciBfX0dMT0JBTF9fSV9hOCA9IE1vZHVsZVsiX19HTE9CQUxfX0lfYTgiXSA9IGFz
bVsiX19HTE9CQUxfX0lfYTgiXTsKLXZhciBydW5Qb3N0U2V0cyA9IE1vZHVsZVsicnVuUG9zdFNl
dHMiXSA9IGFzbVsicnVuUG9zdFNldHMiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaSA9IE1vZHVsZVsi
ZHluQ2FsbF92aWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWkiXTsKLXZhciBkeW5DYWxsX3Zp
aWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWlp
aWkiXTsKLXZhciBkeW5DYWxsX3ZpID0gTW9kdWxlWyJkeW5DYWxsX3ZpIl0gPSBhc21bImR5bkNh
bGxfdmkiXTsKLXZhciBkeW5DYWxsX3ZpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWkiXSA9IGFzbVsi
ZHluQ2FsbF92aWkiXTsKLXZhciBkeW5DYWxsX2lpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWkiXSA9
IGFzbVsiZHluQ2FsbF9paWkiXTsKLXZhciBkeW5DYWxsX2lpaWlpaSA9IE1vZHVsZVsiZHluQ2Fs
bF9paWlpaWkiXSA9IGFzbVsiZHluQ2FsbF9paWlpaWkiXTsKLXZhciBkeW5DYWxsX2lpID0gTW9k
dWxlWyJkeW5DYWxsX2lpIl0gPSBhc21bImR5bkNhbGxfaWkiXTsKLXZhciBkeW5DYWxsX2lpaWkg
PSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdID0gYXNtWyJkeW5DYWxsX2lpaWkiXTsKLXZhciBkeW5D
YWxsX3ZpaWlpaWYgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZiJdID0gYXNtWyJkeW5DYWxsX3Zp
aWlpaWYiXTsKLXZhciBkeW5DYWxsX3ZpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaSJdID0gYXNt
WyJkeW5DYWxsX3ZpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2Fs
bF92aWlpaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWlpaWkiXTsKLXZhciBkeW5DYWxsX3Yg
PSBNb2R1bGVbImR5bkNhbGxfdiJdID0gYXNtWyJkeW5DYWxsX3YiXTsKLXZhciBkeW5DYWxsX2lp
aWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF9paWlp
aWlpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlp
aWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWlpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlm
ID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlmIl0gPSBhc21bImR5bkNhbGxfdmlpaWlpaWYiXTsK
LXZhciBkeW5DYWxsX3ZpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaSJdID0gYXNtWyJk
eW5DYWxsX3ZpaWlpaWkiXTsKLXZhciBkeW5DYWxsX2lpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lp
aWlpIl0gPSBhc21bImR5bkNhbGxfaWlpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpID0gTW9kdWxl
WyJkeW5DYWxsX3ZpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWkiXTsKLVJ1bnRpbWUuc3RhY2tB
bGxvYyA9IGZ1bmN0aW9uKHNpemUpIHsgcmV0dXJuIGFzbVsnc3RhY2tBbGxvYyddKHNpemUpIH07
Ci1SdW50aW1lLnN0YWNrU2F2ZSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gYXNtWydzdGFja1NhdmUn
XSgpIH07Ci1SdW50aW1lLnN0YWNrUmVzdG9yZSA9IGZ1bmN0aW9uKHRvcCkgeyBhc21bJ3N0YWNr
UmVzdG9yZSddKHRvcCkgfTsKLS8vIFRPRE86IHN0cmlwIG91dCBwYXJ0cyBvZiB0aGlzIHdlIGRv
IG5vdCBuZWVkCi0vLz09PT09PT0gYmVnaW4gY2xvc3VyZSBpNjQgY29kZSA9PT09PT09Ci0vLyBD
b3B5cmlnaHQgMjAwOSBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9u
IDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2Vw
dCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZb3UgbWF5IG9idGFpbiBhIGNv
cHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s
aWNlbnNlcy9MSUNFTlNFLTIuMAotLy8KLS8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxl
IGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLS8vIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUy1JUyIgQkFTSVMsCi0vLyBX
SVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJl
c3Mgb3IgaW1wbGllZC4KLS8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1
YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBM
aWNlbnNlLgotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IERlZmluZXMgYSBMb25nIGNsYXNzIGZvciBy
ZXByZXNlbnRpbmcgYSA2NC1iaXQgdHdvJ3MtY29tcGxlbWVudAotICogaW50ZWdlciB2YWx1ZSwg
d2hpY2ggZmFpdGhmdWxseSBzaW11bGF0ZXMgdGhlIGJlaGF2aW9yIG9mIGEgSmF2YSAibG9uZyIu
IFRoaXMKLSAqIGltcGxlbWVudGF0aW9uIGlzIGRlcml2ZWQgZnJvbSBMb25nTGliIGluIEdXVC4K
LSAqCi0gKi8KLXZhciBpNjRNYXRoID0gKGZ1bmN0aW9uKCkgeyAvLyBFbXNjcmlwdGVuIHdyYXBw
ZXIKLSAgdmFyIGdvb2cgPSB7IG1hdGg6IHt9IH07Ci0gIC8qKgotICAgKiBDb25zdHJ1Y3RzIGEg
NjQtYml0IHR3bydzLWNvbXBsZW1lbnQgaW50ZWdlciwgZ2l2ZW4gaXRzIGxvdyBhbmQgaGlnaCAz
Mi1iaXQKLSAgICogdmFsdWVzIGFzICpzaWduZWQqIGludGVnZXJzLiAgU2VlIHRoZSBmcm9tKiBm
dW5jdGlvbnMgYmVsb3cgZm9yIG1vcmUKLSAgICogY29udmVuaWVudCB3YXlzIG9mIGNvbnN0cnVj
dGluZyBMb25ncy4KLSAgICoKLSAgICogVGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIGEg
bG9uZyBpcyB0aGUgdHdvIGdpdmVuIHNpZ25lZCwgMzItYml0IHZhbHVlcy4KLSAgICogV2UgdXNl
IDMyLWJpdCBwaWVjZXMgYmVjYXVzZSB0aGVzZSBhcmUgdGhlIHNpemUgb2YgaW50ZWdlcnMgb24g
d2hpY2gKLSAgICogSmF2YXNjcmlwdCBwZXJmb3JtcyBiaXQtb3BlcmF0aW9ucy4gIEZvciBvcGVy
YXRpb25zIGxpa2UgYWRkaXRpb24gYW5kCi0gICAqIG11bHRpcGxpY2F0aW9uLCB3ZSBzcGxpdCBl
YWNoIG51bWJlciBpbnRvIDE2LWJpdCBwaWVjZXMsIHdoaWNoIGNhbiBlYXNpbHkgYmUKLSAgICog
bXVsdGlwbGllZCB3aXRoaW4gSmF2YXNjcmlwdCdzIGZsb2F0aW5nLXBvaW50IHJlcHJlc2VudGF0
aW9uIHdpdGhvdXQgb3ZlcmZsb3cKLSAgICogb3IgY2hhbmdlIGluIHNpZ24uCi0gICAqCi0gICAq
IEluIHRoZSBhbGdvcml0aG1zIGJlbG93LCB3ZSBmcmVxdWVudGx5IHJlZHVjZSB0aGUgbmVnYXRp
dmUgY2FzZSB0byB0aGUKLSAgICogcG9zaXRpdmUgY2FzZSBieSBuZWdhdGluZyB0aGUgaW5wdXQo
cykgYW5kIHRoZW4gcG9zdC1wcm9jZXNzaW5nIHRoZSByZXN1bHQuCi0gICAqIE5vdGUgdGhhdCB3
ZSBtdXN0IEFMV0FZUyBjaGVjayBzcGVjaWFsbHkgd2hldGhlciB0aG9zZSB2YWx1ZXMgYXJlIE1J
Tl9WQUxVRQotICAgKiAoLTJeNjMpIGJlY2F1c2UgLU1JTl9WQUxVRSA9PSBNSU5fVkFMVUUgKHNp
bmNlIDJeNjMgY2Fubm90IGJlIHJlcHJlc2VudGVkIGFzCi0gICAqIGEgcG9zaXRpdmUgbnVtYmVy
LCBpdCBvdmVyZmxvd3MgYmFjayBpbnRvIGEgbmVnYXRpdmUpLiAgTm90IGhhbmRsaW5nIHRoaXMK
LSAgICogY2FzZSB3b3VsZCBvZnRlbiByZXN1bHQgaW4gaW5maW5pdGUgcmVjdXJzaW9uLgotICAg
KgotICAgKiBAcGFyYW0ge251bWJlcn0gbG93ICBUaGUgbG93IChzaWduZWQpIDMyIGJpdHMgb2Yg
dGhlIGxvbmcuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBoaWdoICBUaGUgaGlnaCAoc2lnbmVkKSAz
MiBiaXRzIG9mIHRoZSBsb25nLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGdvb2cubWF0
aC5Mb25nID0gZnVuY3Rpb24obG93LCBoaWdoKSB7Ci0gICAgLyoqCi0gICAgICogQHR5cGUge251
bWJlcn0KLSAgICAgKiBAcHJpdmF0ZQotICAgICAqLwotICAgIHRoaXMubG93XyA9IGxvdyB8IDA7
ICAvLyBmb3JjZSBpbnRvIDMyIHNpZ25lZCBiaXRzLgotICAgIC8qKgotICAgICAqIEB0eXBlIHtu
dW1iZXJ9Ci0gICAgICogQHByaXZhdGUKLSAgICAgKi8KLSAgICB0aGlzLmhpZ2hfID0gaGlnaCB8
IDA7ICAvLyBmb3JjZSBpbnRvIDMyIHNpZ25lZCBiaXRzLgotICB9OwotICAvLyBOT1RFOiBDb21t
b24gY29uc3RhbnQgdmFsdWVzIFpFUk8sIE9ORSwgTkVHX09ORSwgZXRjLiBhcmUgZGVmaW5lZCBi
ZWxvdyB0aGUKLSAgLy8gZnJvbSogbWV0aG9kcyBvbiB3aGljaCB0aGV5IGRlcGVuZC4KLSAgLyoq
Ci0gICAqIEEgY2FjaGUgb2YgdGhlIExvbmcgcmVwcmVzZW50YXRpb25zIG9mIHNtYWxsIGludGVn
ZXIgdmFsdWVzLgotICAgKiBAdHlwZSB7IU9iamVjdH0KLSAgICogQHByaXZhdGUKLSAgICovCi0g
IGdvb2cubWF0aC5Mb25nLkludENhY2hlXyA9IHt9OwotICAvKioKLSAgICogUmV0dXJucyBhIExv
bmcgcmVwcmVzZW50aW5nIHRoZSBnaXZlbiAoMzItYml0KSBpbnRlZ2VyIHZhbHVlLgotICAgKiBA
cGFyYW0ge251bWJlcn0gdmFsdWUgVGhlIDMyLWJpdCBpbnRlZ2VyIGluIHF1ZXN0aW9uLgotICAg
KiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNwb25kaW5nIExvbmcgdmFsdWUu
Ci0gICAqLwotICBnb29nLm1hdGguTG9uZy5mcm9tSW50ID0gZnVuY3Rpb24odmFsdWUpIHsKLSAg
ICBpZiAoLTEyOCA8PSB2YWx1ZSAmJiB2YWx1ZSA8IDEyOCkgewotICAgICAgdmFyIGNhY2hlZE9i
aiA9IGdvb2cubWF0aC5Mb25nLkludENhY2hlX1t2YWx1ZV07Ci0gICAgICBpZiAoY2FjaGVkT2Jq
KSB7Ci0gICAgICAgIHJldHVybiBjYWNoZWRPYmo7Ci0gICAgICB9Ci0gICAgfQotICAgIHZhciBv
YmogPSBuZXcgZ29vZy5tYXRoLkxvbmcodmFsdWUgfCAwLCB2YWx1ZSA8IDAgPyAtMSA6IDApOwot
ICAgIGlmICgtMTI4IDw9IHZhbHVlICYmIHZhbHVlIDwgMTI4KSB7Ci0gICAgICBnb29nLm1hdGgu
TG9uZy5JbnRDYWNoZV9bdmFsdWVdID0gb2JqOwotICAgIH0KLSAgICByZXR1cm4gb2JqOwotICB9
OwotICAvKioKLSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50aW5nIHRoZSBnaXZlbiB2YWx1
ZSwgcHJvdmlkZWQgdGhhdCBpdCBpcyBhIGZpbml0ZQotICAgKiBudW1iZXIuICBPdGhlcndpc2Us
IHplcm8gaXMgcmV0dXJuZWQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgbnVtYmVy
IGluIHF1ZXN0aW9uLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNw
b25kaW5nIExvbmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyID0g
ZnVuY3Rpb24odmFsdWUpIHsKLSAgICBpZiAoaXNOYU4odmFsdWUpIHx8ICFpc0Zpbml0ZSh2YWx1
ZSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0gZWxzZSBpZiAo
dmFsdWUgPD0gLWdvb2cubWF0aC5Mb25nLlRXT19QV1JfNjNfREJMXykgewotICAgICAgcmV0dXJu
IGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRTsKLSAgICB9IGVsc2UgaWYgKHZhbHVlICsgMSA+PSBn
b29nLm1hdGguTG9uZy5UV09fUFdSXzYzX0RCTF8pIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGgu
TG9uZy5NQVhfVkFMVUU7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZSA8IDApIHsKLSAgICAgIHJldHVy
biBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKC12YWx1ZSkubmVnYXRlKCk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgIHJldHVybiBuZXcgZ29vZy5tYXRoLkxvbmcoCi0gICAgICAgICAgKHZhbHVlICUg
Z29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfKSB8IDAsCi0gICAgICAgICAgKHZhbHVlIC8g
Z29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfKSB8IDApOwotICAgIH0KLSAgfTsKLSAgLyoq
Ci0gICAqIFJldHVybnMgYSBMb25nIHJlcHJlc2VudGluZyB0aGUgNjQtYml0IGludGVnZXIgdGhh
dCBjb21lcyBieSBjb25jYXRlbmF0aW5nCi0gICAqIHRoZSBnaXZlbiBoaWdoIGFuZCBsb3cgYml0
cy4gIEVhY2ggaXMgYXNzdW1lZCB0byB1c2UgMzIgYml0cy4KLSAgICogQHBhcmFtIHtudW1iZXJ9
IGxvd0JpdHMgVGhlIGxvdyAzMi1iaXRzLgotICAgKiBAcGFyYW0ge251bWJlcn0gaGlnaEJpdHMg
VGhlIGhpZ2ggMzItYml0cy4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgY29y
cmVzcG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMg
PSBmdW5jdGlvbihsb3dCaXRzLCBoaWdoQml0cykgewotICAgIHJldHVybiBuZXcgZ29vZy5tYXRo
LkxvbmcobG93Qml0cywgaGlnaEJpdHMpOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyBhIExv
bmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIHN0cmluZywgd3JpdHRlbiB1c2luZyB0aGUg
Z2l2ZW4KLSAgICogcmFkaXguCi0gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgVGhlIHRleHR1YWwg
cmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmcuCi0gICAqIEBwYXJhbSB7bnVtYmVyPX0gb3B0X3Jh
ZGl4IFRoZSByYWRpeCBpbiB3aGljaCB0aGUgdGV4dCBpcyB3cml0dGVuLgotICAgKiBAcmV0dXJu
IHshZ29vZy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNwb25kaW5nIExvbmcgdmFsdWUuCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5mcm9tU3RyaW5nID0gZnVuY3Rpb24oc3RyLCBvcHRfcmFkaXgpIHsK
LSAgICBpZiAoc3RyLmxlbmd0aCA9PSAwKSB7Ci0gICAgICB0aHJvdyBFcnJvcignbnVtYmVyIGZv
cm1hdCBlcnJvcjogZW1wdHkgc3RyaW5nJyk7Ci0gICAgfQotICAgIHZhciByYWRpeCA9IG9wdF9y
YWRpeCB8fCAxMDsKLSAgICBpZiAocmFkaXggPCAyIHx8IDM2IDwgcmFkaXgpIHsKLSAgICAgIHRo
cm93IEVycm9yKCdyYWRpeCBvdXQgb2YgcmFuZ2U6ICcgKyByYWRpeCk7Ci0gICAgfQotICAgIGlm
IChzdHIuY2hhckF0KDApID09ICctJykgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZy
b21TdHJpbmcoc3RyLnN1YnN0cmluZygxKSwgcmFkaXgpLm5lZ2F0ZSgpOwotICAgIH0gZWxzZSBp
ZiAoc3RyLmluZGV4T2YoJy0nKSA+PSAwKSB7Ci0gICAgICB0aHJvdyBFcnJvcignbnVtYmVyIGZv
cm1hdCBlcnJvcjogaW50ZXJpb3IgIi0iIGNoYXJhY3RlcjogJyArIHN0cik7Ci0gICAgfQotICAg
IC8vIERvIHNldmVyYWwgKDgpIGRpZ2l0cyBlYWNoIHRpbWUgdGhyb3VnaCB0aGUgbG9vcCwgc28g
YXMgdG8KLSAgICAvLyBtaW5pbWl6ZSB0aGUgY2FsbHMgdG8gdGhlIHZlcnkgZXhwZW5zaXZlIGVt
dWxhdGVkIGRpdi4KLSAgICB2YXIgcmFkaXhUb1Bvd2VyID0gZ29vZy5tYXRoLkxvbmcuZnJvbU51
bWJlcihNYXRoLnBvdyhyYWRpeCwgOCkpOwotICAgIHZhciByZXN1bHQgPSBnb29nLm1hdGguTG9u
Zy5aRVJPOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSArPSA4KSB7Ci0g
ICAgICB2YXIgc2l6ZSA9IE1hdGgubWluKDgsIHN0ci5sZW5ndGggLSBpKTsKLSAgICAgIHZhciB2
YWx1ZSA9IHBhcnNlSW50KHN0ci5zdWJzdHJpbmcoaSwgaSArIHNpemUpLCByYWRpeCk7Ci0gICAg
ICBpZiAoc2l6ZSA8IDgpIHsKLSAgICAgICAgdmFyIHBvd2VyID0gZ29vZy5tYXRoLkxvbmcuZnJv
bU51bWJlcihNYXRoLnBvdyhyYWRpeCwgc2l6ZSkpOwotICAgICAgICByZXN1bHQgPSByZXN1bHQu
bXVsdGlwbHkocG93ZXIpLmFkZChnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKHZhbHVlKSk7Ci0g
ICAgICB9IGVsc2UgewotICAgICAgICByZXN1bHQgPSByZXN1bHQubXVsdGlwbHkocmFkaXhUb1Bv
d2VyKTsKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmFkZChnb29nLm1hdGguTG9uZy5mcm9tTnVt
YmVyKHZhbHVlKSk7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci0gIH07Ci0g
IC8vIE5PVEU6IHRoZSBjb21waWxlciBzaG91bGQgaW5saW5lIHRoZXNlIGNvbnN0YW50IHZhbHVl
cyBiZWxvdyBhbmQgdGhlbiByZW1vdmUKLSAgLy8gdGhlc2UgdmFyaWFibGVzLCBzbyB0aGVyZSBz
aG91bGQgYmUgbm8gcnVudGltZSBwZW5hbHR5IGZvciB0aGVzZS4KLSAgLyoqCi0gICAqIE51bWJl
ciB1c2VkIHJlcGVhdGVkIGJlbG93IGluIGNhbGN1bGF0aW9ucy4gIFRoaXMgbXVzdCBhcHBlYXIg
YmVmb3JlIHRoZQotICAgKiBmaXJzdCBjYWxsIHRvIGFueSBmcm9tKiBmdW5jdGlvbiBiZWxvdy4K
LSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5M
b25nLlRXT19QV1JfMTZfREJMXyA9IDEgPDwgMTY7Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVy
fQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8yNF9EQkxf
ID0gMSA8PCAyNDsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0g
ICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gPQotICAgICAgZ29vZy5tYXRo
LkxvbmcuVFdPX1BXUl8xNl9EQkxfICogZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8xNl9EQkxfOwot
ICAvKioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cu
bWF0aC5Mb25nLlRXT19QV1JfMzFfREJMXyA9Ci0gICAgICBnb29nLm1hdGguTG9uZy5UV09fUFdS
XzMyX0RCTF8gLyAyOwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUK
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfNDhfREJMXyA9Ci0gICAgICBnb29nLm1h
dGguTG9uZy5UV09fUFdSXzMyX0RCTF8gKiBnb29nLm1hdGguTG9uZy5UV09fUFdSXzE2X0RCTF87
Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAgZ29v
Zy5tYXRoLkxvbmcuVFdPX1BXUl82NF9EQkxfID0KLSAgICAgIGdvb2cubWF0aC5Mb25nLlRXT19Q
V1JfMzJfREJMXyAqIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXzsKLSAgLyoqCi0gICAq
IEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5U
V09fUFdSXzYzX0RCTF8gPQotICAgICAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl82NF9EQkxfIC8g
MjsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdvb2cubWF0aC5Mb25nLlpF
Uk8gPSBnb29nLm1hdGguTG9uZy5mcm9tSW50KDApOwotICAvKiogQHR5cGUgeyFnb29nLm1hdGgu
TG9uZ30gKi8KLSAgZ29vZy5tYXRoLkxvbmcuT05FID0gZ29vZy5tYXRoLkxvbmcuZnJvbUludCgx
KTsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdvb2cubWF0aC5Mb25nLk5F
R19PTkUgPSBnb29nLm1hdGguTG9uZy5mcm9tSW50KC0xKTsKLSAgLyoqIEB0eXBlIHshZ29vZy5t
YXRoLkxvbmd9ICovCi0gIGdvb2cubWF0aC5Mb25nLk1BWF9WQUxVRSA9Ci0gICAgICBnb29nLm1h
dGguTG9uZy5mcm9tQml0cygweEZGRkZGRkZGIHwgMCwgMHg3RkZGRkZGRiB8IDApOwotICAvKiog
QHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFID0g
Z29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoMCwgMHg4MDAwMDAwMCB8IDApOwotICAvKioKLSAgICog
QHR5cGUgeyFnb29nLm1hdGguTG9uZ30KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0
aC5Mb25nLlRXT19QV1JfMjRfID0gZ29vZy5tYXRoLkxvbmcuZnJvbUludCgxIDw8IDI0KTsKLSAg
LyoqIEByZXR1cm4ge251bWJlcn0gVGhlIHZhbHVlLCBhc3N1bWluZyBpdCBpcyBhIDMyLWJpdCBp
bnRlZ2VyLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUudG9JbnQgPSBmdW5jdGlvbigp
IHsKLSAgICByZXR1cm4gdGhpcy5sb3dfOwotICB9OwotICAvKiogQHJldHVybiB7bnVtYmVyfSBU
aGUgY2xvc2VzdCBmbG9hdGluZy1wb2ludCByZXByZXNlbnRhdGlvbiB0byB0aGlzIHZhbHVlLiAq
LwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUudG9OdW1iZXIgPSBmdW5jdGlvbigpIHsKLSAg
ICByZXR1cm4gdGhpcy5oaWdoXyAqIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXyArCi0g
ICAgICAgICAgIHRoaXMuZ2V0TG93Qml0c1Vuc2lnbmVkKCk7Ci0gIH07Ci0gIC8qKgotICAgKiBA
cGFyYW0ge251bWJlcj19IG9wdF9yYWRpeCBUaGUgcmFkaXggaW4gd2hpY2ggdGhlIHRleHQgc2hv
dWxkIGJlIHdyaXR0ZW4uCi0gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIHRleHR1YWwgcmVwcmVz
ZW50YXRpb24gb2YgdGhpcyB2YWx1ZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlw
ZS50b1N0cmluZyA9IGZ1bmN0aW9uKG9wdF9yYWRpeCkgewotICAgIHZhciByYWRpeCA9IG9wdF9y
YWRpeCB8fCAxMDsKLSAgICBpZiAocmFkaXggPCAyIHx8IDM2IDwgcmFkaXgpIHsKLSAgICAgIHRo
cm93IEVycm9yKCdyYWRpeCBvdXQgb2YgcmFuZ2U6ICcgKyByYWRpeCk7Ci0gICAgfQotICAgIGlm
ICh0aGlzLmlzWmVybygpKSB7Ci0gICAgICByZXR1cm4gJzAnOwotICAgIH0KLSAgICBpZiAodGhp
cy5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIGlmICh0aGlzLmVxdWFscyhnb29nLm1hdGguTG9uZy5N
SU5fVkFMVUUpKSB7Ci0gICAgICAgIC8vIFdlIG5lZWQgdG8gY2hhbmdlIHRoZSBMb25nIHZhbHVl
IGJlZm9yZSBpdCBjYW4gYmUgbmVnYXRlZCwgc28gd2UgcmVtb3ZlCi0gICAgICAgIC8vIHRoZSBi
b3R0b20tbW9zdCBkaWdpdCBpbiB0aGlzIGJhc2UgYW5kIHRoZW4gcmVjdXJzZSB0byBkbyB0aGUg
cmVzdC4KLSAgICAgICAgdmFyIHJhZGl4TG9uZyA9IGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIo
cmFkaXgpOwotICAgICAgICB2YXIgZGl2ID0gdGhpcy5kaXYocmFkaXhMb25nKTsKLSAgICAgICAg
dmFyIHJlbSA9IGRpdi5tdWx0aXBseShyYWRpeExvbmcpLnN1YnRyYWN0KHRoaXMpOwotICAgICAg
ICByZXR1cm4gZGl2LnRvU3RyaW5nKHJhZGl4KSArIHJlbS50b0ludCgpLnRvU3RyaW5nKHJhZGl4
KTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiAnLScgKyB0aGlzLm5lZ2F0ZSgpLnRv
U3RyaW5nKHJhZGl4KTsKLSAgICAgIH0KLSAgICB9Ci0gICAgLy8gRG8gc2V2ZXJhbCAoNikgZGln
aXRzIGVhY2ggdGltZSB0aHJvdWdoIHRoZSBsb29wLCBzbyBhcyB0bwotICAgIC8vIG1pbmltaXpl
IHRoZSBjYWxscyB0byB0aGUgdmVyeSBleHBlbnNpdmUgZW11bGF0ZWQgZGl2LgotICAgIHZhciBy
YWRpeFRvUG93ZXIgPSBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKE1hdGgucG93KHJhZGl4LCA2
KSk7Ci0gICAgdmFyIHJlbSA9IHRoaXM7Ci0gICAgdmFyIHJlc3VsdCA9ICcnOwotICAgIHdoaWxl
ICh0cnVlKSB7Ci0gICAgICB2YXIgcmVtRGl2ID0gcmVtLmRpdihyYWRpeFRvUG93ZXIpOwotICAg
ICAgdmFyIGludHZhbCA9IHJlbS5zdWJ0cmFjdChyZW1EaXYubXVsdGlwbHkocmFkaXhUb1Bvd2Vy
KSkudG9JbnQoKTsKLSAgICAgIHZhciBkaWdpdHMgPSBpbnR2YWwudG9TdHJpbmcocmFkaXgpOwot
ICAgICAgcmVtID0gcmVtRGl2OwotICAgICAgaWYgKHJlbS5pc1plcm8oKSkgewotICAgICAgICBy
ZXR1cm4gZGlnaXRzICsgcmVzdWx0OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgd2hpbGUgKGRp
Z2l0cy5sZW5ndGggPCA2KSB7Ci0gICAgICAgICAgZGlnaXRzID0gJzAnICsgZGlnaXRzOwotICAg
ICAgICB9Ci0gICAgICAgIHJlc3VsdCA9ICcnICsgZGlnaXRzICsgcmVzdWx0OwotICAgICAgfQot
ICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhlIGhpZ2ggMzItYml0cyBhcyBh
IHNpZ25lZCB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmdldEhpZ2hCaXRz
ID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF87Ci0gIH07Ci0gIC8qKiBAcmV0
dXJuIHtudW1iZXJ9IFRoZSBsb3cgMzItYml0cyBhcyBhIHNpZ25lZCB2YWx1ZS4gKi8KLSAgZ29v
Zy5tYXRoLkxvbmcucHJvdG90eXBlLmdldExvd0JpdHMgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1
cm4gdGhpcy5sb3dfOwotICB9OwotICAvKiogQHJldHVybiB7bnVtYmVyfSBUaGUgbG93IDMyLWJp
dHMgYXMgYW4gdW5zaWduZWQgdmFsdWUuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5n
ZXRMb3dCaXRzVW5zaWduZWQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gKHRoaXMubG93XyA+
PSAwKSA/Ci0gICAgICAgIHRoaXMubG93XyA6IGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJM
XyArIHRoaXMubG93XzsKLSAgfTsKLSAgLyoqCi0gICAqIEByZXR1cm4ge251bWJlcn0gUmV0dXJu
cyB0aGUgbnVtYmVyIG9mIGJpdHMgbmVlZGVkIHRvIHJlcHJlc2VudCB0aGUgYWJzb2x1dGUKLSAg
ICogICAgIHZhbHVlIG9mIHRoaXMgTG9uZy4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3Rv
dHlwZS5nZXROdW1CaXRzQWJzID0gZnVuY3Rpb24oKSB7Ci0gICAgaWYgKHRoaXMuaXNOZWdhdGl2
ZSgpKSB7Ci0gICAgICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkg
ewotICAgICAgICByZXR1cm4gNjQ7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gdGhp
cy5uZWdhdGUoKS5nZXROdW1CaXRzQWJzKCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAg
IHZhciB2YWwgPSB0aGlzLmhpZ2hfICE9IDAgPyB0aGlzLmhpZ2hfIDogdGhpcy5sb3dfOwotICAg
ICAgZm9yICh2YXIgYml0ID0gMzE7IGJpdCA+IDA7IGJpdC0tKSB7Ci0gICAgICAgIGlmICgodmFs
ICYgKDEgPDwgYml0KSkgIT0gMCkgewotICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg
ICB9Ci0gICAgICByZXR1cm4gdGhpcy5oaWdoXyAhPSAwID8gYml0ICsgMzMgOiBiaXQgKyAxOwot
ICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyB2YWx1ZSBp
cyB6ZXJvLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuaXNaZXJvID0gZnVuY3Rpb24o
KSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF8gPT0gMCAmJiB0aGlzLmxvd18gPT0gMDsKLSAgfTsK
LSAgLyoqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyB2YWx1ZSBpcyBuZWdhdGl2ZS4g
Ki8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmlzTmVnYXRpdmUgPSBmdW5jdGlvbigpIHsK
LSAgICByZXR1cm4gdGhpcy5oaWdoXyA8IDA7Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtib29sZWFu
fSBXaGV0aGVyIHRoaXMgdmFsdWUgaXMgb2RkLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5
cGUuaXNPZGQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gKHRoaXMubG93XyAmIDEpID09IDE7
Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRv
IGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExv
bmcgZXF1YWxzIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5l
cXVhbHMgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiAodGhpcy5oaWdoXyA9PSBvdGhl
ci5oaWdoXykgJiYgKHRoaXMubG93XyA9PSBvdGhlci5sb3dfKTsKLSAgfTsKLSAgLyoqCi0gICAq
IEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0Lgot
ICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9uZyBkb2VzIG5vdCBlcXVhbCB0
aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUubm90RXF1YWxzID0g
ZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gKHRoaXMuaGlnaF8gIT0gb3RoZXIuaGlnaF8p
IHx8ICh0aGlzLmxvd18gIT0gb3RoZXIubG93Xyk7Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0g
e2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJl
dHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExvbmcgaXMgbGVzcyB0aGFuIHRoZSBvdGhlci4K
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5sZXNzVGhhbiA9IGZ1bmN0aW9uKG90
aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikgPCAwOwotICB9OwotICAvKioK
LSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFnYWlu
c3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBMb25nIGlzIGxlc3MgdGhh
biBvciBlcXVhbCB0byB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5
cGUubGVzc1RoYW5PckVxdWFsID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhpcy5j
b21wYXJlKG90aGVyKSA8PSAwOwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtnb29nLm1hdGgu
TG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xl
YW59IFdoZXRoZXIgdGhpcyBMb25nIGlzIGdyZWF0ZXIgdGhhbiB0aGUgb3RoZXIuCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZ3JlYXRlclRoYW4gPSBmdW5jdGlvbihvdGhlcikg
ewotICAgIHJldHVybiB0aGlzLmNvbXBhcmUob3RoZXIpID4gMDsKLSAgfTsKLSAgLyoqCi0gICAq
IEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0Lgot
ICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9uZyBpcyBncmVhdGVyIHRoYW4g
b3IgZXF1YWwgdG8gdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBl
LmdyZWF0ZXJUaGFuT3JFcXVhbCA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMu
Y29tcGFyZShvdGhlcikgPj0gMDsKLSAgfTsKLSAgLyoqCi0gICAqIENvbXBhcmVzIHRoaXMgTG9u
ZyB3aXRoIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVy
IExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtudW1iZXJ9IDAgaWYgdGhl
eSBhcmUgdGhlIHNhbWUsIDEgaWYgdGhlIHRoaXMgaXMgZ3JlYXRlciwgYW5kIC0xCi0gICAqICAg
ICBpZiB0aGUgZ2l2ZW4gb25lIGlzIGdyZWF0ZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5w
cm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgaWYgKHRoaXMuZXF1YWxz
KG90aGVyKSkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIHZhciB0aGlzTmVnID0gdGhp
cy5pc05lZ2F0aXZlKCk7Ci0gICAgdmFyIG90aGVyTmVnID0gb3RoZXIuaXNOZWdhdGl2ZSgpOwot
ICAgIGlmICh0aGlzTmVnICYmICFvdGhlck5lZykgewotICAgICAgcmV0dXJuIC0xOwotICAgIH0K
LSAgICBpZiAoIXRoaXNOZWcgJiYgb3RoZXJOZWcpIHsKLSAgICAgIHJldHVybiAxOwotICAgIH0K
LSAgICAvLyBhdCB0aGlzIHBvaW50LCB0aGUgc2lnbnMgYXJlIHRoZSBzYW1lLCBzbyBzdWJ0cmFj
dGlvbiB3aWxsIG5vdCBvdmVyZmxvdwotICAgIGlmICh0aGlzLnN1YnRyYWN0KG90aGVyKS5pc05l
Z2F0aXZlKCkpIHsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9IGVsc2UgewotICAgICAgcmV0dXJu
IDE7Ci0gICAgfQotICB9OwotICAvKiogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgbmVn
YXRpb24gb2YgdGhpcyB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLm5lZ2F0
ZSA9IGZ1bmN0aW9uKCkgewotICAgIGlmICh0aGlzLmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5f
VkFMVUUpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFOwotICAgIH0g
ZWxzZSB7Ci0gICAgICByZXR1cm4gdGhpcy5ub3QoKS5hZGQoZ29vZy5tYXRoLkxvbmcuT05FKTsK
LSAgICB9Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBzdW0gb2YgdGhpcyBhbmQgdGhl
IGdpdmVuIExvbmcuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8g
YWRkIHRvIHRoaXMgb25lLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBzdW0g
b2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90
b3R5cGUuYWRkID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICAvLyBEaXZpZGUgZWFjaCBudW1iZXIg
aW50byA0IGNodW5rcyBvZiAxNiBiaXRzLCBhbmQgdGhlbiBzdW0gdGhlIGNodW5rcy4KLSAgICB2
YXIgYTQ4ID0gdGhpcy5oaWdoXyA+Pj4gMTY7Ci0gICAgdmFyIGEzMiA9IHRoaXMuaGlnaF8gJiAw
eEZGRkY7Ci0gICAgdmFyIGExNiA9IHRoaXMubG93XyA+Pj4gMTY7Ci0gICAgdmFyIGEwMCA9IHRo
aXMubG93XyAmIDB4RkZGRjsKLSAgICB2YXIgYjQ4ID0gb3RoZXIuaGlnaF8gPj4+IDE2OwotICAg
IHZhciBiMzIgPSBvdGhlci5oaWdoXyAmIDB4RkZGRjsKLSAgICB2YXIgYjE2ID0gb3RoZXIubG93
XyA+Pj4gMTY7Ci0gICAgdmFyIGIwMCA9IG90aGVyLmxvd18gJiAweEZGRkY7Ci0gICAgdmFyIGM0
OCA9IDAsIGMzMiA9IDAsIGMxNiA9IDAsIGMwMCA9IDA7Ci0gICAgYzAwICs9IGEwMCArIGIwMDsK
LSAgICBjMTYgKz0gYzAwID4+PiAxNjsKLSAgICBjMDAgJj0gMHhGRkZGOwotICAgIGMxNiArPSBh
MTYgKyBiMTY7Ci0gICAgYzMyICs9IGMxNiA+Pj4gMTY7Ci0gICAgYzE2ICY9IDB4RkZGRjsKLSAg
ICBjMzIgKz0gYTMyICsgYjMyOwotICAgIGM0OCArPSBjMzIgPj4+IDE2OwotICAgIGMzMiAmPSAw
eEZGRkY7Ci0gICAgYzQ4ICs9IGE0OCArIGI0ODsKLSAgICBjNDggJj0gMHhGRkZGOwotICAgIHJl
dHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygoYzE2IDw8IDE2KSB8IGMwMCwgKGM0OCA8PCAx
NikgfCBjMzIpOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUgZGlmZmVyZW5jZSBvZiB0
aGlzIGFuZCB0aGUgZ2l2ZW4gTG9uZy4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3Ro
ZXIgTG9uZyB0byBzdWJ0cmFjdCBmcm9tIHRoaXMuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGgu
TG9uZ30gVGhlIGRpZmZlcmVuY2Ugb2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc3VidHJhY3QgPSBmdW5jdGlvbihvdGhlcikgewot
ICAgIHJldHVybiB0aGlzLmFkZChvdGhlci5uZWdhdGUoKSk7Ci0gIH07Ci0gIC8qKgotICAgKiBS
ZXR1cm5zIHRoZSBwcm9kdWN0IG9mIHRoaXMgYW5kIHRoZSBnaXZlbiBsb25nLgotICAgKiBAcGFy
YW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIG11bHRpcGx5IHdpdGggdGhpcy4KLSAg
ICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgcHJvZHVjdCBvZiB0aGlzIGFuZCB0aGUg
b3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUubXVsdGlwbHkgPSBmdW5j
dGlvbihvdGhlcikgewotICAgIGlmICh0aGlzLmlzWmVybygpKSB7Ci0gICAgICByZXR1cm4gZ29v
Zy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9IGVsc2UgaWYgKG90aGVyLmlzWmVybygpKSB7Ci0gICAg
ICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0gICAgaWYgKHRoaXMuZXF1YWxz
KGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJldHVybiBvdGhlci5pc09kZCgp
ID8gZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFIDogZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9
IGVsc2UgaWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAg
ICByZXR1cm4gdGhpcy5pc09kZCgpID8gZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFIDogZ29vZy5t
YXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0gICAgaWYgKHRoaXMuaXNOZWdhdGl2ZSgpKSB7Ci0gICAg
ICBpZiAob3RoZXIuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZSgp
Lm11bHRpcGx5KG90aGVyLm5lZ2F0ZSgpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVy
biB0aGlzLm5lZ2F0ZSgpLm11bHRpcGx5KG90aGVyKS5uZWdhdGUoKTsKLSAgICAgIH0KLSAgICB9
IGVsc2UgaWYgKG90aGVyLmlzTmVnYXRpdmUoKSkgewotICAgICAgcmV0dXJuIHRoaXMubXVsdGlw
bHkob3RoZXIubmVnYXRlKCkpLm5lZ2F0ZSgpOwotICAgIH0KLSAgICAvLyBJZiBib3RoIGxvbmdz
IGFyZSBzbWFsbCwgdXNlIGZsb2F0IG11bHRpcGxpY2F0aW9uCi0gICAgaWYgKHRoaXMubGVzc1Ro
YW4oZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8yNF8pICYmCi0gICAgICAgIG90aGVyLmxlc3NUaGFu
KGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfKSkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5M
b25nLmZyb21OdW1iZXIodGhpcy50b051bWJlcigpICogb3RoZXIudG9OdW1iZXIoKSk7Ci0gICAg
fQotICAgIC8vIERpdmlkZSBlYWNoIGxvbmcgaW50byA0IGNodW5rcyBvZiAxNiBiaXRzLCBhbmQg
dGhlbiBhZGQgdXAgNHg0IHByb2R1Y3RzLgotICAgIC8vIFdlIGNhbiBza2lwIHByb2R1Y3RzIHRo
YXQgd291bGQgb3ZlcmZsb3cuCi0gICAgdmFyIGE0OCA9IHRoaXMuaGlnaF8gPj4+IDE2OwotICAg
IHZhciBhMzIgPSB0aGlzLmhpZ2hfICYgMHhGRkZGOwotICAgIHZhciBhMTYgPSB0aGlzLmxvd18g
Pj4+IDE2OwotICAgIHZhciBhMDAgPSB0aGlzLmxvd18gJiAweEZGRkY7Ci0gICAgdmFyIGI0OCA9
IG90aGVyLmhpZ2hfID4+PiAxNjsKLSAgICB2YXIgYjMyID0gb3RoZXIuaGlnaF8gJiAweEZGRkY7
Ci0gICAgdmFyIGIxNiA9IG90aGVyLmxvd18gPj4+IDE2OwotICAgIHZhciBiMDAgPSBvdGhlci5s
b3dfICYgMHhGRkZGOwotICAgIHZhciBjNDggPSAwLCBjMzIgPSAwLCBjMTYgPSAwLCBjMDAgPSAw
OwotICAgIGMwMCArPSBhMDAgKiBiMDA7Ci0gICAgYzE2ICs9IGMwMCA+Pj4gMTY7Ci0gICAgYzAw
ICY9IDB4RkZGRjsKLSAgICBjMTYgKz0gYTE2ICogYjAwOwotICAgIGMzMiArPSBjMTYgPj4+IDE2
OwotICAgIGMxNiAmPSAweEZGRkY7Ci0gICAgYzE2ICs9IGEwMCAqIGIxNjsKLSAgICBjMzIgKz0g
YzE2ID4+PiAxNjsKLSAgICBjMTYgJj0gMHhGRkZGOwotICAgIGMzMiArPSBhMzIgKiBiMDA7Ci0g
ICAgYzQ4ICs9IGMzMiA+Pj4gMTY7Ci0gICAgYzMyICY9IDB4RkZGRjsKLSAgICBjMzIgKz0gYTE2
ICogYjE2OwotICAgIGM0OCArPSBjMzIgPj4+IDE2OwotICAgIGMzMiAmPSAweEZGRkY7Ci0gICAg
YzMyICs9IGEwMCAqIGIzMjsKLSAgICBjNDggKz0gYzMyID4+PiAxNjsKLSAgICBjMzIgJj0gMHhG
RkZGOwotICAgIGM0OCArPSBhNDggKiBiMDAgKyBhMzIgKiBiMTYgKyBhMTYgKiBiMzIgKyBhMDAg
KiBiNDg7Ci0gICAgYzQ4ICY9IDB4RkZGRjsKLSAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJv
bUJpdHMoKGMxNiA8PCAxNikgfCBjMDAsIChjNDggPDwgMTYpIHwgYzMyKTsKLSAgfTsKLSAgLyoq
Ci0gICAqIFJldHVybnMgdGhpcyBMb25nIGRpdmlkZWQgYnkgdGhlIGdpdmVuIG9uZS4KLSAgICog
QHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyBieSB3aGljaCB0byBkaXZpZGUuCi0g
ICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhpcyBMb25nIGRpdmlkZWQgYnkgdGhlIGdp
dmVuIG9uZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5kaXYgPSBmdW5jdGlv
bihvdGhlcikgewotICAgIGlmIChvdGhlci5pc1plcm8oKSkgewotICAgICAgdGhyb3cgRXJyb3Io
J2RpdmlzaW9uIGJ5IHplcm8nKTsKLSAgICB9IGVsc2UgaWYgKHRoaXMuaXNaZXJvKCkpIHsKLSAg
ICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0KLSAgICBpZiAodGhpcy5lcXVh
bHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgaWYgKG90aGVyLmVxdWFscyhn
b29nLm1hdGguTG9uZy5PTkUpIHx8Ci0gICAgICAgICAgb3RoZXIuZXF1YWxzKGdvb2cubWF0aC5M
b25nLk5FR19PTkUpKSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5NSU5fVkFMVUU7
ICAvLyByZWNhbGwgdGhhdCAtTUlOX1ZBTFVFID09IE1JTl9WQUxVRQotICAgICAgfSBlbHNlIGlm
IChvdGhlci5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgICByZXR1
cm4gZ29vZy5tYXRoLkxvbmcuT05FOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQXQgdGhp
cyBwb2ludCwgd2UgaGF2ZSB8b3RoZXJ8ID49IDIsIHNvIHx0aGlzL290aGVyfCA8IHxNSU5fVkFM
VUV8LgotICAgICAgICB2YXIgaGFsZlRoaXMgPSB0aGlzLnNoaWZ0UmlnaHQoMSk7Ci0gICAgICAg
IHZhciBhcHByb3ggPSBoYWxmVGhpcy5kaXYob3RoZXIpLnNoaWZ0TGVmdCgxKTsKLSAgICAgICAg
aWYgKGFwcHJveC5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuWkVSTykpIHsKLSAgICAgICAgICByZXR1
cm4gb3RoZXIuaXNOZWdhdGl2ZSgpID8gZ29vZy5tYXRoLkxvbmcuT05FIDogZ29vZy5tYXRoLkxv
bmcuTkVHX09ORTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgcmVtID0gdGhpcy5z
dWJ0cmFjdChvdGhlci5tdWx0aXBseShhcHByb3gpKTsKLSAgICAgICAgICB2YXIgcmVzdWx0ID0g
YXBwcm94LmFkZChyZW0uZGl2KG90aGVyKSk7Ci0gICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICAgfQotICAgICAgfQotICAgIH0gZWxzZSBpZiAob3RoZXIuZXF1YWxzKGdvb2cubWF0aC5M
b25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAg
IH0KLSAgICBpZiAodGhpcy5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIGlmIChvdGhlci5pc05lZ2F0
aXZlKCkpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmVnYXRlKCkuZGl2KG90aGVyLm5lZ2F0ZSgp
KTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZSgpLmRpdihvdGhl
cikubmVnYXRlKCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChvdGhlci5pc05lZ2F0aXZlKCkp
IHsKLSAgICAgIHJldHVybiB0aGlzLmRpdihvdGhlci5uZWdhdGUoKSkubmVnYXRlKCk7Ci0gICAg
fQotICAgIC8vIFJlcGVhdCB0aGUgZm9sbG93aW5nIHVudGlsIHRoZSByZW1haW5kZXIgaXMgbGVz
cyB0aGFuIG90aGVyOiAgZmluZCBhCi0gICAgLy8gZmxvYXRpbmctcG9pbnQgdGhhdCBhcHByb3hp
bWF0ZXMgcmVtYWluZGVyIC8gb3RoZXIgKmZyb20gYmVsb3cqLCBhZGQgdGhpcwotICAgIC8vIGlu
dG8gdGhlIHJlc3VsdCwgYW5kIHN1YnRyYWN0IGl0IGZyb20gdGhlIHJlbWFpbmRlci4gIEl0IGlz
IGNyaXRpY2FsIHRoYXQKLSAgICAvLyB0aGUgYXBwcm94aW1hdGUgdmFsdWUgaXMgbGVzcyB0aGFu
IG9yIGVxdWFsIHRvIHRoZSByZWFsIHZhbHVlIHNvIHRoYXQgdGhlCi0gICAgLy8gcmVtYWluZGVy
IG5ldmVyIGJlY29tZXMgbmVnYXRpdmUuCi0gICAgdmFyIHJlcyA9IGdvb2cubWF0aC5Mb25nLlpF
Uk87Ci0gICAgdmFyIHJlbSA9IHRoaXM7Ci0gICAgd2hpbGUgKHJlbS5ncmVhdGVyVGhhbk9yRXF1
YWwob3RoZXIpKSB7Ci0gICAgICAvLyBBcHByb3hpbWF0ZSB0aGUgcmVzdWx0IG9mIGRpdmlzaW9u
LiBUaGlzIG1heSBiZSBhIGxpdHRsZSBncmVhdGVyIG9yCi0gICAgICAvLyBzbWFsbGVyIHRoYW4g
dGhlIGFjdHVhbCB2YWx1ZS4KLSAgICAgIHZhciBhcHByb3ggPSBNYXRoLm1heCgxLCBNYXRoLmZs
b29yKHJlbS50b051bWJlcigpIC8gb3RoZXIudG9OdW1iZXIoKSkpOwotICAgICAgLy8gV2Ugd2ls
bCB0d2VhayB0aGUgYXBwcm94aW1hdGUgcmVzdWx0IGJ5IGNoYW5naW5nIGl0IGluIHRoZSA0OC10
aCBkaWdpdCBvcgotICAgICAgLy8gdGhlIHNtYWxsZXN0IG5vbi1mcmFjdGlvbmFsIGRpZ2l0LCB3
aGljaGV2ZXIgaXMgbGFyZ2VyLgotICAgICAgdmFyIGxvZzIgPSBNYXRoLmNlaWwoTWF0aC5sb2co
YXBwcm94KSAvIE1hdGguTE4yKTsKLSAgICAgIHZhciBkZWx0YSA9IChsb2cyIDw9IDQ4KSA/IDEg
OiBNYXRoLnBvdygyLCBsb2cyIC0gNDgpOwotICAgICAgLy8gRGVjcmVhc2UgdGhlIGFwcHJveGlt
YXRpb24gdW50aWwgaXQgaXMgc21hbGxlciB0aGFuIHRoZSByZW1haW5kZXIuICBOb3RlCi0gICAg
ICAvLyB0aGF0IGlmIGl0IGlzIHRvbyBsYXJnZSwgdGhlIHByb2R1Y3Qgb3ZlcmZsb3dzIGFuZCBp
cyBuZWdhdGl2ZS4KLSAgICAgIHZhciBhcHByb3hSZXMgPSBnb29nLm1hdGguTG9uZy5mcm9tTnVt
YmVyKGFwcHJveCk7Ci0gICAgICB2YXIgYXBwcm94UmVtID0gYXBwcm94UmVzLm11bHRpcGx5KG90
aGVyKTsKLSAgICAgIHdoaWxlIChhcHByb3hSZW0uaXNOZWdhdGl2ZSgpIHx8IGFwcHJveFJlbS5n
cmVhdGVyVGhhbihyZW0pKSB7Ci0gICAgICAgIGFwcHJveCAtPSBkZWx0YTsKLSAgICAgICAgYXBw
cm94UmVzID0gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcihhcHByb3gpOwotICAgICAgICBhcHBy
b3hSZW0gPSBhcHByb3hSZXMubXVsdGlwbHkob3RoZXIpOwotICAgICAgfQotICAgICAgLy8gV2Ug
a25vdyB0aGUgYW5zd2VyIGNhbid0IGJlIHplcm8uLi4gYW5kIGFjdHVhbGx5LCB6ZXJvIHdvdWxk
IGNhdXNlCi0gICAgICAvLyBpbmZpbml0ZSByZWN1cnNpb24gc2luY2Ugd2Ugd291bGQgbWFrZSBu
byBwcm9ncmVzcy4KLSAgICAgIGlmIChhcHByb3hSZXMuaXNaZXJvKCkpIHsKLSAgICAgICAgYXBw
cm94UmVzID0gZ29vZy5tYXRoLkxvbmcuT05FOwotICAgICAgfQotICAgICAgcmVzID0gcmVzLmFk
ZChhcHByb3hSZXMpOwotICAgICAgcmVtID0gcmVtLnN1YnRyYWN0KGFwcHJveFJlbSk7Ci0gICAg
fQotICAgIHJldHVybiByZXM7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoaXMgTG9uZyBt
b2R1bG8gdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIg
TG9uZyBieSB3aGljaCB0byBtb2QuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhp
cyBMb25nIG1vZHVsbyB0aGUgZ2l2ZW4gb25lLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJv
dG90eXBlLm1vZHVsbyA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMuc3VidHJh
Y3QodGhpcy5kaXYob3RoZXIpLm11bHRpcGx5KG90aGVyKSk7Ci0gIH07Ci0gIC8qKiBAcmV0dXJu
IHshZ29vZy5tYXRoLkxvbmd9IFRoZSBiaXR3aXNlLU5PVCBvZiB0aGlzIHZhbHVlLiAqLwotICBn
b29nLm1hdGguTG9uZy5wcm90b3R5cGUubm90ID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGdv
b2cubWF0aC5Mb25nLmZyb21CaXRzKH50aGlzLmxvd18sIH50aGlzLmhpZ2hfKTsKLSAgfTsKLSAg
LyoqCi0gICAqIFJldHVybnMgdGhlIGJpdHdpc2UtQU5EIG9mIHRoaXMgTG9uZyBhbmQgdGhlIGdp
dmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgVGhlIExvbmcgd2l0
aCB3aGljaCB0byBBTkQuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGJpdHdp
c2UtQU5EIG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnBy
b3RvdHlwZS5hbmQgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiBnb29nLm1hdGguTG9u
Zy5mcm9tQml0cyh0aGlzLmxvd18gJiBvdGhlci5sb3dfLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLmhpZ2hfICYgb3RoZXIuaGlnaF8pOwotICB9OwotICAvKioKLSAg
ICogUmV0dXJucyB0aGUgYml0d2lzZS1PUiBvZiB0aGlzIExvbmcgYW5kIHRoZSBnaXZlbiBvbmUu
Ci0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIFRoZSBMb25nIHdpdGggd2hpY2gg
dG8gT1IuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGJpdHdpc2UtT1Igb2Yg
dGhpcyBhbmQgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLm9y
ID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMo
dGhpcy5sb3dfIHwgb3RoZXIubG93XywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5oaWdoXyB8IG90aGVyLmhpZ2hfKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMg
dGhlIGJpdHdpc2UtWE9SIG9mIHRoaXMgTG9uZyBhbmQgdGhlIGdpdmVuIG9uZS4KLSAgICogQHBh
cmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgVGhlIExvbmcgd2l0aCB3aGljaCB0byBYT1IuCi0g
ICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGJpdHdpc2UtWE9SIG9mIHRoaXMgYW5k
IHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS54b3IgPSBmdW5j
dGlvbihvdGhlcikgewotICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cyh0aGlzLmxv
d18gXiBvdGhlci5sb3dfLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
LmhpZ2hfIF4gb3RoZXIuaGlnaF8pOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGlzIExv
bmcgd2l0aCBiaXRzIHNoaWZ0ZWQgdG8gdGhlIGxlZnQgYnkgdGhlIGdpdmVuIGFtb3VudC4KLSAg
ICogQHBhcmFtIHtudW1iZXJ9IG51bUJpdHMgVGhlIG51bWJlciBvZiBiaXRzIGJ5IHdoaWNoIHRv
IHNoaWZ0LgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoaXMgc2hpZnRlZCB0byB0
aGUgbGVmdCBieSB0aGUgZ2l2ZW4gYW1vdW50LgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJv
dG90eXBlLnNoaWZ0TGVmdCA9IGZ1bmN0aW9uKG51bUJpdHMpIHsKLSAgICBudW1CaXRzICY9IDYz
OwotICAgIGlmIChudW1CaXRzID09IDApIHsKLSAgICAgIHJldHVybiB0aGlzOwotICAgIH0gZWxz
ZSB7Ci0gICAgICB2YXIgbG93ID0gdGhpcy5sb3dfOwotICAgICAgaWYgKG51bUJpdHMgPCAzMikg
ewotICAgICAgICB2YXIgaGlnaCA9IHRoaXMuaGlnaF87Ci0gICAgICAgIHJldHVybiBnb29nLm1h
dGguTG9uZy5mcm9tQml0cygKLSAgICAgICAgICAgIGxvdyA8PCBudW1CaXRzLAotICAgICAgICAg
ICAgKGhpZ2ggPDwgbnVtQml0cykgfCAobG93ID4+PiAoMzIgLSBudW1CaXRzKSkpOwotICAgICAg
fSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKDAsIGxvdyA8
PCAobnVtQml0cyAtIDMyKSk7Ci0gICAgICB9Ci0gICAgfQotICB9OwotICAvKioKLSAgICogUmV0
dXJucyB0aGlzIExvbmcgd2l0aCBiaXRzIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZl
biBhbW91bnQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1CaXRzIFRoZSBudW1iZXIgb2YgYml0
cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGlz
IHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZlbiBhbW91bnQuCi0gICAqLwotICBnb29n
Lm1hdGguTG9uZy5wcm90b3R5cGUuc2hpZnRSaWdodCA9IGZ1bmN0aW9uKG51bUJpdHMpIHsKLSAg
ICBudW1CaXRzICY9IDYzOwotICAgIGlmIChudW1CaXRzID09IDApIHsKLSAgICAgIHJldHVybiB0
aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgaGlnaCA9IHRoaXMuaGlnaF87Ci0gICAgICBp
ZiAobnVtQml0cyA8IDMyKSB7Ci0gICAgICAgIHZhciBsb3cgPSB0aGlzLmxvd187Ci0gICAgICAg
IHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAgICAgICAgIChsb3cgPj4+IG51
bUJpdHMpIHwgKGhpZ2ggPDwgKDMyIC0gbnVtQml0cykpLAotICAgICAgICAgICAgaGlnaCA+PiBu
dW1CaXRzKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5m
cm9tQml0cygKLSAgICAgICAgICAgIGhpZ2ggPj4gKG51bUJpdHMgLSAzMiksCi0gICAgICAgICAg
ICBoaWdoID49IDAgPyAwIDogLTEpOwotICAgICAgfQotICAgIH0KLSAgfTsKLSAgLyoqCi0gICAq
IFJldHVybnMgdGhpcyBMb25nIHdpdGggYml0cyBzaGlmdGVkIHRvIHRoZSByaWdodCBieSB0aGUg
Z2l2ZW4gYW1vdW50LCB3aXRoCi0gICAqIHRoZSBuZXcgdG9wIGJpdHMgbWF0Y2hpbmcgdGhlIGN1
cnJlbnQgc2lnbiBiaXQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1CaXRzIFRoZSBudW1iZXIg
b2YgYml0cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25n
fSBUaGlzIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZlbiBhbW91bnQsIHdpdGgKLSAg
ICogICAgIHplcm9zIHBsYWNlZCBpbnRvIHRoZSBuZXcgbGVhZGluZyBiaXRzLgotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0UmlnaHRVbnNpZ25lZCA9IGZ1bmN0aW9uKG51
bUJpdHMpIHsKLSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChudW1CaXRzID09IDApIHsKLSAg
ICAgIHJldHVybiB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgaGlnaCA9IHRoaXMuaGln
aF87Ci0gICAgICBpZiAobnVtQml0cyA8IDMyKSB7Ci0gICAgICAgIHZhciBsb3cgPSB0aGlzLmxv
d187Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAgICAgICAg
IChsb3cgPj4+IG51bUJpdHMpIHwgKGhpZ2ggPDwgKDMyIC0gbnVtQml0cykpLAotICAgICAgICAg
ICAgaGlnaCA+Pj4gbnVtQml0cyk7Ci0gICAgICB9IGVsc2UgaWYgKG51bUJpdHMgPT0gMzIpIHsK
LSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKGhpZ2gsIDApOwotICAgICAg
fSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKGhpZ2ggPj4+
IChudW1CaXRzIC0gMzIpLCAwKTsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci0gIC8vPT09PT09PSBi
ZWdpbiBqc2JuID09PT09PT0KLSAgdmFyIG5hdmlnYXRvciA9IHsgYXBwTmFtZTogJ01vZGVybiBC
cm93c2VyJyB9OyAvLyBwb2x5ZmlsbCBhIGxpdHRsZQotICAvLyBDb3B5cmlnaHQgKGMpIDIwMDUg
IFRvbSBXdQotICAvLyBBbGwgUmlnaHRzIFJlc2VydmVkLgotICAvLyBodHRwOi8vd3d3LWNzLXN0
dWRlbnRzLnN0YW5mb3JkLmVkdS9+dGp3L2pzYm4vCi0gIC8qCi0gICAqIENvcHlyaWdodCAoYykg
MjAwMy0yMDA1ICBUb20gV3UKLSAgICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAgICoKLSAgICog
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nCi0gICAqIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotICAgKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0
aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0gICAqIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwKLSAgICogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRo
ZSBTb2Z0d2FyZSwgYW5kIHRvCi0gICAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3
YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotICAgKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6Ci0gICAqCi0gICAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCi0gICAqIGluY2x1ZGVkIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotICAgKgotICAgKiBU
SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTLUlTIiBBTkQgV0lUSE9VVCBXQVJSQU5UWSBPRiBB
TlkgS0lORCwgCi0gICAqIEVYUFJFU1MsIElNUExJRUQgT1IgT1RIRVJXSVNFLCBJTkNMVURJTkcg
V0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgCi0gICAqIFdBUlJBTlRZIE9GIE1FUkNIQU5UQUJJTElU
WSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIAotICAgKgotICAgKiBJTiBO
TyBFVkVOVCBTSEFMTCBUT00gV1UgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgSU5DSURFTlRB
TCwKLSAgICogSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9GIEFOWSBLSU5ELCBP
UiBBTlkgREFNQUdFUyBXSEFUU09FVkVSCi0gICAqIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNF
LCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgT1IgTk9UIEFEVklTRUQgT0YKLSAgICogVEhFIFBP
U1NJQklMSVRZIE9GIERBTUFHRSwgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBBUklT
SU5HIE9VVAotICAgKiBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JN
QU5DRSBPRiBUSElTIFNPRlRXQVJFLgotICAgKgotICAgKiBJbiBhZGRpdGlvbiwgdGhlIGZvbGxv
d2luZyBjb25kaXRpb24gYXBwbGllczoKLSAgICoKLSAgICogQWxsIHJlZGlzdHJpYnV0aW9ucyBt
dXN0IHJldGFpbiBhbiBpbnRhY3QgY29weSBvZiB0aGlzIGNvcHlyaWdodCBub3RpY2UKLSAgICog
YW5kIGRpc2NsYWltZXIuCi0gICAqLwotICAvLyBCYXNpYyBKYXZhU2NyaXB0IEJOIGxpYnJhcnkg
LSBzdWJzZXQgdXNlZnVsIGZvciBSU0EgZW5jcnlwdGlvbi4KLSAgLy8gQml0cyBwZXIgZGlnaXQK
LSAgdmFyIGRiaXRzOwotICAvLyBKYXZhU2NyaXB0IGVuZ2luZSBhbmFseXNpcwotICB2YXIgY2Fu
YXJ5ID0gMHhkZWFkYmVlZmNhZmU7Ci0gIHZhciBqX2xtID0gKChjYW5hcnkmMHhmZmZmZmYpPT0w
eGVmY2FmZSk7Ci0gIC8vIChwdWJsaWMpIENvbnN0cnVjdG9yCi0gIGZ1bmN0aW9uIEJpZ0ludGVn
ZXIoYSxiLGMpIHsKLSAgICBpZihhICE9IG51bGwpCi0gICAgICBpZigibnVtYmVyIiA9PSB0eXBl
b2YgYSkgdGhpcy5mcm9tTnVtYmVyKGEsYixjKTsKLSAgICAgIGVsc2UgaWYoYiA9PSBudWxsICYm
ICJzdHJpbmciICE9IHR5cGVvZiBhKSB0aGlzLmZyb21TdHJpbmcoYSwyNTYpOwotICAgICAgZWxz
ZSB0aGlzLmZyb21TdHJpbmcoYSxiKTsKLSAgfQotICAvLyByZXR1cm4gbmV3LCB1bnNldCBCaWdJ
bnRlZ2VyCi0gIGZ1bmN0aW9uIG5iaSgpIHsgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKG51bGwpOyB9
Ci0gIC8vIGFtOiBDb21wdXRlIHdfaiArPSAoeCp0aGlzX2kpLCBwcm9wYWdhdGUgY2FycmllcywK
LSAgLy8gYyBpcyBpbml0aWFsIGNhcnJ5LCByZXR1cm5zIGZpbmFsIGNhcnJ5LgotICAvLyBjIDwg
MypkdmFsdWUsIHggPCAyKmR2YWx1ZSwgdGhpc19pIDwgZHZhbHVlCi0gIC8vIFdlIG5lZWQgdG8g
c2VsZWN0IHRoZSBmYXN0ZXN0IG9uZSB0aGF0IHdvcmtzIGluIHRoaXMgZW52aXJvbm1lbnQuCi0g
IC8vIGFtMTogdXNlIGEgc2luZ2xlIG11bHQgYW5kIGRpdmlkZSB0byBnZXQgdGhlIGhpZ2ggYml0
cywKLSAgLy8gbWF4IGRpZ2l0IGJpdHMgc2hvdWxkIGJlIDI2IGJlY2F1c2UKLSAgLy8gbWF4IGlu
dGVybmFsIHZhbHVlID0gMipkdmFsdWVeMi0yKmR2YWx1ZSAoPCAyXjUzKQotICBmdW5jdGlvbiBh
bTEoaSx4LHcsaixjLG4pIHsKLSAgICB3aGlsZSgtLW4gPj0gMCkgewotICAgICAgdmFyIHYgPSB4
KnRoaXNbaSsrXSt3W2pdK2M7Ci0gICAgICBjID0gTWF0aC5mbG9vcih2LzB4NDAwMDAwMCk7Ci0g
ICAgICB3W2orK10gPSB2JjB4M2ZmZmZmZjsKLSAgICB9Ci0gICAgcmV0dXJuIGM7Ci0gIH0KLSAg
Ly8gYW0yIGF2b2lkcyBhIGJpZyBtdWx0LWFuZC1leHRyYWN0IGNvbXBsZXRlbHkuCi0gIC8vIE1h
eCBkaWdpdCBiaXRzIHNob3VsZCBiZSA8PSAzMCBiZWNhdXNlIHdlIGRvIGJpdHdpc2Ugb3BzCi0g
IC8vIG9uIHZhbHVlcyB1cCB0byAyKmhkdmFsdWVeMi1oZHZhbHVlLTEgKDwgMl4zMSkKLSAgZnVu
Y3Rpb24gYW0yKGkseCx3LGosYyxuKSB7Ci0gICAgdmFyIHhsID0geCYweDdmZmYsIHhoID0geD4+
MTU7Ci0gICAgd2hpbGUoLS1uID49IDApIHsKLSAgICAgIHZhciBsID0gdGhpc1tpXSYweDdmZmY7
Ci0gICAgICB2YXIgaCA9IHRoaXNbaSsrXT4+MTU7Ci0gICAgICB2YXIgbSA9IHhoKmwraCp4bDsK
LSAgICAgIGwgPSB4bCpsKygobSYweDdmZmYpPDwxNSkrd1tqXSsoYyYweDNmZmZmZmZmKTsKLSAg
ICAgIGMgPSAobD4+PjMwKSsobT4+PjE1KSt4aCpoKyhjPj4+MzApOwotICAgICAgd1tqKytdID0g
bCYweDNmZmZmZmZmOwotICAgIH0KLSAgICByZXR1cm4gYzsKLSAgfQotICAvLyBBbHRlcm5hdGVs
eSwgc2V0IG1heCBkaWdpdCBiaXRzIHRvIDI4IHNpbmNlIHNvbWUKLSAgLy8gYnJvd3NlcnMgc2xv
dyBkb3duIHdoZW4gZGVhbGluZyB3aXRoIDMyLWJpdCBudW1iZXJzLgotICBmdW5jdGlvbiBhbTMo
aSx4LHcsaixjLG4pIHsKLSAgICB2YXIgeGwgPSB4JjB4M2ZmZiwgeGggPSB4Pj4xNDsKLSAgICB3
aGlsZSgtLW4gPj0gMCkgewotICAgICAgdmFyIGwgPSB0aGlzW2ldJjB4M2ZmZjsKLSAgICAgIHZh
ciBoID0gdGhpc1tpKytdPj4xNDsKLSAgICAgIHZhciBtID0geGgqbCtoKnhsOwotICAgICAgbCA9
IHhsKmwrKChtJjB4M2ZmZik8PDE0KSt3W2pdK2M7Ci0gICAgICBjID0gKGw+PjI4KSsobT4+MTQp
K3hoKmg7Ci0gICAgICB3W2orK10gPSBsJjB4ZmZmZmZmZjsKLSAgICB9Ci0gICAgcmV0dXJuIGM7
Ci0gIH0KLSAgaWYoal9sbSAmJiAobmF2aWdhdG9yLmFwcE5hbWUgPT0gIk1pY3Jvc29mdCBJbnRl
cm5ldCBFeHBsb3JlciIpKSB7Ci0gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuYW0gPSBhbTI7Ci0g
ICAgZGJpdHMgPSAzMDsKLSAgfQotICBlbHNlIGlmKGpfbG0gJiYgKG5hdmlnYXRvci5hcHBOYW1l
ICE9ICJOZXRzY2FwZSIpKSB7Ci0gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuYW0gPSBhbTE7Ci0g
ICAgZGJpdHMgPSAyNjsKLSAgfQotICBlbHNlIHsgLy8gTW96aWxsYS9OZXRzY2FwZSBzZWVtcyB0
byBwcmVmZXIgYW0zCi0gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuYW0gPSBhbTM7Ci0gICAgZGJp
dHMgPSAyODsKLSAgfQotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5EQiA9IGRiaXRzOwotICBCaWdJ
bnRlZ2VyLnByb3RvdHlwZS5ETSA9ICgoMTw8ZGJpdHMpLTEpOwotICBCaWdJbnRlZ2VyLnByb3Rv
dHlwZS5EViA9ICgxPDxkYml0cyk7Ci0gIHZhciBCSV9GUCA9IDUyOwotICBCaWdJbnRlZ2VyLnBy
b3RvdHlwZS5GViA9IE1hdGgucG93KDIsQklfRlApOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5G
MSA9IEJJX0ZQLWRiaXRzOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5GMiA9IDIqZGJpdHMtQklf
RlA7Ci0gIC8vIERpZ2l0IGNvbnZlcnNpb25zCi0gIHZhciBCSV9STSA9ICIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiOwotICB2YXIgQklfUkMgPSBuZXcgQXJyYXkoKTsKLSAg
dmFyIHJyLHZ2OwotICByciA9ICIwIi5jaGFyQ29kZUF0KDApOwotICBmb3IodnYgPSAwOyB2diA8
PSA5OyArK3Z2KSBCSV9SQ1tycisrXSA9IHZ2OwotICByciA9ICJhIi5jaGFyQ29kZUF0KDApOwot
ICBmb3IodnYgPSAxMDsgdnYgPCAzNjsgKyt2dikgQklfUkNbcnIrK10gPSB2djsKLSAgcnIgPSAi
QSIuY2hhckNvZGVBdCgwKTsKLSAgZm9yKHZ2ID0gMTA7IHZ2IDwgMzY7ICsrdnYpIEJJX1JDW3Jy
KytdID0gdnY7Ci0gIGZ1bmN0aW9uIGludDJjaGFyKG4pIHsgcmV0dXJuIEJJX1JNLmNoYXJBdChu
KTsgfQotICBmdW5jdGlvbiBpbnRBdChzLGkpIHsKLSAgICB2YXIgYyA9IEJJX1JDW3MuY2hhckNv
ZGVBdChpKV07Ci0gICAgcmV0dXJuIChjPT1udWxsKT8tMTpjOwotICB9Ci0gIC8vIChwcm90ZWN0
ZWQpIGNvcHkgdGhpcyB0byByCi0gIGZ1bmN0aW9uIGJucENvcHlUbyhyKSB7Ci0gICAgZm9yKHZh
ciBpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSByW2ldID0gdGhpc1tpXTsKLSAgICByLnQgPSB0
aGlzLnQ7Ci0gICAgci5zID0gdGhpcy5zOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHNldCBmcm9t
IGludGVnZXIgdmFsdWUgeCwgLURWIDw9IHggPCBEVgotICBmdW5jdGlvbiBibnBGcm9tSW50KHgp
IHsKLSAgICB0aGlzLnQgPSAxOwotICAgIHRoaXMucyA9ICh4PDApPy0xOjA7Ci0gICAgaWYoeCA+
IDApIHRoaXNbMF0gPSB4OwotICAgIGVsc2UgaWYoeCA8IC0xKSB0aGlzWzBdID0geCtEVjsKLSAg
ICBlbHNlIHRoaXMudCA9IDA7Ci0gIH0KLSAgLy8gcmV0dXJuIGJpZ2ludCBpbml0aWFsaXplZCB0
byB2YWx1ZQotICBmdW5jdGlvbiBuYnYoaSkgeyB2YXIgciA9IG5iaSgpOyByLmZyb21JbnQoaSk7
IHJldHVybiByOyB9Ci0gIC8vIChwcm90ZWN0ZWQpIHNldCBmcm9tIHN0cmluZyBhbmQgcmFkaXgK
LSAgZnVuY3Rpb24gYm5wRnJvbVN0cmluZyhzLGIpIHsKLSAgICB2YXIgazsKLSAgICBpZihiID09
IDE2KSBrID0gNDsKLSAgICBlbHNlIGlmKGIgPT0gOCkgayA9IDM7Ci0gICAgZWxzZSBpZihiID09
IDI1NikgayA9IDg7IC8vIGJ5dGUgYXJyYXkKLSAgICBlbHNlIGlmKGIgPT0gMikgayA9IDE7Ci0g
ICAgZWxzZSBpZihiID09IDMyKSBrID0gNTsKLSAgICBlbHNlIGlmKGIgPT0gNCkgayA9IDI7Ci0g
ICAgZWxzZSB7IHRoaXMuZnJvbVJhZGl4KHMsYik7IHJldHVybjsgfQotICAgIHRoaXMudCA9IDA7
Ci0gICAgdGhpcy5zID0gMDsKLSAgICB2YXIgaSA9IHMubGVuZ3RoLCBtaSA9IGZhbHNlLCBzaCA9
IDA7Ci0gICAgd2hpbGUoLS1pID49IDApIHsKLSAgICAgIHZhciB4ID0gKGs9PTgpP3NbaV0mMHhm
ZjppbnRBdChzLGkpOwotICAgICAgaWYoeCA8IDApIHsKLSAgICAgICAgaWYocy5jaGFyQXQoaSkg
PT0gIi0iKSBtaSA9IHRydWU7Ci0gICAgICAgIGNvbnRpbnVlOwotICAgICAgfQotICAgICAgbWkg
PSBmYWxzZTsKLSAgICAgIGlmKHNoID09IDApCi0gICAgICAgIHRoaXNbdGhpcy50KytdID0geDsK
LSAgICAgIGVsc2UgaWYoc2grayA+IHRoaXMuREIpIHsKLSAgICAgICAgdGhpc1t0aGlzLnQtMV0g
fD0gKHgmKCgxPDwodGhpcy5EQi1zaCkpLTEpKTw8c2g7Ci0gICAgICAgIHRoaXNbdGhpcy50Kytd
ID0gKHg+Pih0aGlzLkRCLXNoKSk7Ci0gICAgICB9Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXNb
dGhpcy50LTFdIHw9IHg8PHNoOwotICAgICAgc2ggKz0gazsKLSAgICAgIGlmKHNoID49IHRoaXMu
REIpIHNoIC09IHRoaXMuREI7Ci0gICAgfQotICAgIGlmKGsgPT0gOCAmJiAoc1swXSYweDgwKSAh
PSAwKSB7Ci0gICAgICB0aGlzLnMgPSAtMTsKLSAgICAgIGlmKHNoID4gMCkgdGhpc1t0aGlzLnQt
MV0gfD0gKCgxPDwodGhpcy5EQi1zaCkpLTEpPDxzaDsKLSAgICB9Ci0gICAgdGhpcy5jbGFtcCgp
OwotICAgIGlmKG1pKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8odGhpcyx0aGlzKTsKLSAgfQotICAv
LyAocHJvdGVjdGVkKSBjbGFtcCBvZmYgZXhjZXNzIGhpZ2ggd29yZHMKLSAgZnVuY3Rpb24gYm5w
Q2xhbXAoKSB7Ci0gICAgdmFyIGMgPSB0aGlzLnMmdGhpcy5ETTsKLSAgICB3aGlsZSh0aGlzLnQg
PiAwICYmIHRoaXNbdGhpcy50LTFdID09IGMpIC0tdGhpcy50OwotICB9Ci0gIC8vIChwdWJsaWMp
IHJldHVybiBzdHJpbmcgcmVwcmVzZW50YXRpb24gaW4gZ2l2ZW4gcmFkaXgKLSAgZnVuY3Rpb24g
Ym5Ub1N0cmluZyhiKSB7Ci0gICAgaWYodGhpcy5zIDwgMCkgcmV0dXJuICItIit0aGlzLm5lZ2F0
ZSgpLnRvU3RyaW5nKGIpOwotICAgIHZhciBrOwotICAgIGlmKGIgPT0gMTYpIGsgPSA0OwotICAg
IGVsc2UgaWYoYiA9PSA4KSBrID0gMzsKLSAgICBlbHNlIGlmKGIgPT0gMikgayA9IDE7Ci0gICAg
ZWxzZSBpZihiID09IDMyKSBrID0gNTsKLSAgICBlbHNlIGlmKGIgPT0gNCkgayA9IDI7Ci0gICAg
ZWxzZSByZXR1cm4gdGhpcy50b1JhZGl4KGIpOwotICAgIHZhciBrbSA9ICgxPDxrKS0xLCBkLCBt
ID0gZmFsc2UsIHIgPSAiIiwgaSA9IHRoaXMudDsKLSAgICB2YXIgcCA9IHRoaXMuREItKGkqdGhp
cy5EQiklazsKLSAgICBpZihpLS0gPiAwKSB7Ci0gICAgICBpZihwIDwgdGhpcy5EQiAmJiAoZCA9
IHRoaXNbaV0+PnApID4gMCkgeyBtID0gdHJ1ZTsgciA9IGludDJjaGFyKGQpOyB9Ci0gICAgICB3
aGlsZShpID49IDApIHsKLSAgICAgICAgaWYocCA8IGspIHsKLSAgICAgICAgICBkID0gKHRoaXNb
aV0mKCgxPDxwKS0xKSk8PChrLXApOwotICAgICAgICAgIGQgfD0gdGhpc1stLWldPj4ocCs9dGhp
cy5EQi1rKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICBkID0gKHRoaXNb
aV0+PihwLT1rKSkma207Ci0gICAgICAgICAgaWYocCA8PSAwKSB7IHAgKz0gdGhpcy5EQjsgLS1p
OyB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYoZCA+IDApIG0gPSB0cnVlOwotICAgICAgICBpZiht
KSByICs9IGludDJjaGFyKGQpOwotICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gbT9yOiIwIjsK
LSAgfQotICAvLyAocHVibGljKSAtdGhpcwotICBmdW5jdGlvbiBibk5lZ2F0ZSgpIHsgdmFyIHIg
PSBuYmkoKTsgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHRoaXMscik7IHJldHVybiByOyB9Ci0gIC8v
IChwdWJsaWMpIHx0aGlzfAotICBmdW5jdGlvbiBibkFicygpIHsgcmV0dXJuICh0aGlzLnM8MCk/
dGhpcy5uZWdhdGUoKTp0aGlzOyB9Ci0gIC8vIChwdWJsaWMpIHJldHVybiArIGlmIHRoaXMgPiBh
LCAtIGlmIHRoaXMgPCBhLCAwIGlmIGVxdWFsCi0gIGZ1bmN0aW9uIGJuQ29tcGFyZVRvKGEpIHsK
LSAgICB2YXIgciA9IHRoaXMucy1hLnM7Ci0gICAgaWYociAhPSAwKSByZXR1cm4gcjsKLSAgICB2
YXIgaSA9IHRoaXMudDsKLSAgICByID0gaS1hLnQ7Ci0gICAgaWYociAhPSAwKSByZXR1cm4gKHRo
aXMuczwwKT8tcjpyOwotICAgIHdoaWxlKC0taSA+PSAwKSBpZigocj10aGlzW2ldLWFbaV0pICE9
IDApIHJldHVybiByOwotICAgIHJldHVybiAwOwotICB9Ci0gIC8vIHJldHVybnMgYml0IGxlbmd0
aCBvZiB0aGUgaW50ZWdlciB4Ci0gIGZ1bmN0aW9uIG5iaXRzKHgpIHsKLSAgICB2YXIgciA9IDEs
IHQ7Ci0gICAgaWYoKHQ9eD4+PjE2KSAhPSAwKSB7IHggPSB0OyByICs9IDE2OyB9Ci0gICAgaWYo
KHQ9eD4+OCkgIT0gMCkgeyB4ID0gdDsgciArPSA4OyB9Ci0gICAgaWYoKHQ9eD4+NCkgIT0gMCkg
eyB4ID0gdDsgciArPSA0OyB9Ci0gICAgaWYoKHQ9eD4+MikgIT0gMCkgeyB4ID0gdDsgciArPSAy
OyB9Ci0gICAgaWYoKHQ9eD4+MSkgIT0gMCkgeyB4ID0gdDsgciArPSAxOyB9Ci0gICAgcmV0dXJu
IHI7Ci0gIH0KLSAgLy8gKHB1YmxpYykgcmV0dXJuIHRoZSBudW1iZXIgb2YgYml0cyBpbiAidGhp
cyIKLSAgZnVuY3Rpb24gYm5CaXRMZW5ndGgoKSB7Ci0gICAgaWYodGhpcy50IDw9IDApIHJldHVy
biAwOwotICAgIHJldHVybiB0aGlzLkRCKih0aGlzLnQtMSkrbmJpdHModGhpc1t0aGlzLnQtMV1e
KHRoaXMucyZ0aGlzLkRNKSk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMgPDwgbipE
QgotICBmdW5jdGlvbiBibnBETFNoaWZ0VG8obixyKSB7Ci0gICAgdmFyIGk7Ci0gICAgZm9yKGkg
PSB0aGlzLnQtMTsgaSA+PSAwOyAtLWkpIHJbaStuXSA9IHRoaXNbaV07Ci0gICAgZm9yKGkgPSBu
LTE7IGkgPj0gMDsgLS1pKSByW2ldID0gMDsKLSAgICByLnQgPSB0aGlzLnQrbjsKLSAgICByLnMg
PSB0aGlzLnM7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMgPj4gbipEQgotICBmdW5j
dGlvbiBibnBEUlNoaWZ0VG8obixyKSB7Ci0gICAgZm9yKHZhciBpID0gbjsgaSA8IHRoaXMudDsg
KytpKSByW2ktbl0gPSB0aGlzW2ldOwotICAgIHIudCA9IE1hdGgubWF4KHRoaXMudC1uLDApOwot
ICAgIHIucyA9IHRoaXMuczsKLSAgfQotICAvLyAocHJvdGVjdGVkKSByID0gdGhpcyA8PCBuCi0g
IGZ1bmN0aW9uIGJucExTaGlmdFRvKG4scikgewotICAgIHZhciBicyA9IG4ldGhpcy5EQjsKLSAg
ICB2YXIgY2JzID0gdGhpcy5EQi1iczsKLSAgICB2YXIgYm0gPSAoMTw8Y2JzKS0xOwotICAgIHZh
ciBkcyA9IE1hdGguZmxvb3Iobi90aGlzLkRCKSwgYyA9ICh0aGlzLnM8PGJzKSZ0aGlzLkRNLCBp
OwotICAgIGZvcihpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICByW2krZHMrMV0g
PSAodGhpc1tpXT4+Y2JzKXxjOwotICAgICAgYyA9ICh0aGlzW2ldJmJtKTw8YnM7Ci0gICAgfQot
ICAgIGZvcihpID0gZHMtMTsgaSA+PSAwOyAtLWkpIHJbaV0gPSAwOwotICAgIHJbZHNdID0gYzsK
LSAgICByLnQgPSB0aGlzLnQrZHMrMTsKLSAgICByLnMgPSB0aGlzLnM7Ci0gICAgci5jbGFtcCgp
OwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlzID4+IG4KLSAgZnVuY3Rpb24gYm5wUlNo
aWZ0VG8obixyKSB7Ci0gICAgci5zID0gdGhpcy5zOwotICAgIHZhciBkcyA9IE1hdGguZmxvb3Io
bi90aGlzLkRCKTsKLSAgICBpZihkcyA+PSB0aGlzLnQpIHsgci50ID0gMDsgcmV0dXJuOyB9Ci0g
ICAgdmFyIGJzID0gbiV0aGlzLkRCOwotICAgIHZhciBjYnMgPSB0aGlzLkRCLWJzOwotICAgIHZh
ciBibSA9ICgxPDxicyktMTsKLSAgICByWzBdID0gdGhpc1tkc10+PmJzOwotICAgIGZvcih2YXIg
aSA9IGRzKzE7IGkgPCB0aGlzLnQ7ICsraSkgewotICAgICAgcltpLWRzLTFdIHw9ICh0aGlzW2ld
JmJtKTw8Y2JzOwotICAgICAgcltpLWRzXSA9IHRoaXNbaV0+PmJzOwotICAgIH0KLSAgICBpZihi
cyA+IDApIHJbdGhpcy50LWRzLTFdIHw9ICh0aGlzLnMmYm0pPDxjYnM7Ci0gICAgci50ID0gdGhp
cy50LWRzOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSByID0gdGhpcyAt
IGEKLSAgZnVuY3Rpb24gYm5wU3ViVG8oYSxyKSB7Ci0gICAgdmFyIGkgPSAwLCBjID0gMCwgbSA9
IE1hdGgubWluKGEudCx0aGlzLnQpOwotICAgIHdoaWxlKGkgPCBtKSB7Ci0gICAgICBjICs9IHRo
aXNbaV0tYVtpXTsKLSAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgIGMgPj49IHRoaXMu
REI7Ci0gICAgfQotICAgIGlmKGEudCA8IHRoaXMudCkgewotICAgICAgYyAtPSBhLnM7Ci0gICAg
ICB3aGlsZShpIDwgdGhpcy50KSB7Ci0gICAgICAgIGMgKz0gdGhpc1tpXTsKLSAgICAgICAgcltp
KytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRCOwotICAgICAgfQotICAgICAg
YyArPSB0aGlzLnM7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgYyArPSB0aGlzLnM7Ci0gICAg
ICB3aGlsZShpIDwgYS50KSB7Ci0gICAgICAgIGMgLT0gYVtpXTsKLSAgICAgICAgcltpKytdID0g
YyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRCOwotICAgICAgfQotICAgICAgYyAtPSBh
LnM7Ci0gICAgfQotICAgIHIucyA9IChjPDApPy0xOjA7Ci0gICAgaWYoYyA8IC0xKSByW2krK10g
PSB0aGlzLkRWK2M7Ci0gICAgZWxzZSBpZihjID4gMCkgcltpKytdID0gYzsKLSAgICByLnQgPSBp
OwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSByID0gdGhpcyAqIGEsIHIg
IT0gdGhpcyxhIChIQUMgMTQuMTIpCi0gIC8vICJ0aGlzIiBzaG91bGQgYmUgdGhlIGxhcmdlciBv
bmUgaWYgYXBwcm9wcmlhdGUuCi0gIGZ1bmN0aW9uIGJucE11bHRpcGx5VG8oYSxyKSB7Ci0gICAg
dmFyIHggPSB0aGlzLmFicygpLCB5ID0gYS5hYnMoKTsKLSAgICB2YXIgaSA9IHgudDsKLSAgICBy
LnQgPSBpK3kudDsKLSAgICB3aGlsZSgtLWkgPj0gMCkgcltpXSA9IDA7Ci0gICAgZm9yKGkgPSAw
OyBpIDwgeS50OyArK2kpIHJbaSt4LnRdID0geC5hbSgwLHlbaV0scixpLDAseC50KTsKLSAgICBy
LnMgPSAwOwotICAgIHIuY2xhbXAoKTsKLSAgICBpZih0aGlzLnMgIT0gYS5zKSBCaWdJbnRlZ2Vy
LlpFUk8uc3ViVG8ocixyKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSByID0gdGhpc14yLCByICE9
IHRoaXMgKEhBQyAxNC4xNikKLSAgZnVuY3Rpb24gYm5wU3F1YXJlVG8ocikgewotICAgIHZhciB4
ID0gdGhpcy5hYnMoKTsKLSAgICB2YXIgaSA9IHIudCA9IDIqeC50OwotICAgIHdoaWxlKC0taSA+
PSAwKSByW2ldID0gMDsKLSAgICBmb3IoaSA9IDA7IGkgPCB4LnQtMTsgKytpKSB7Ci0gICAgICB2
YXIgYyA9IHguYW0oaSx4W2ldLHIsMippLDAsMSk7Ci0gICAgICBpZigocltpK3gudF0rPXguYW0o
aSsxLDIqeFtpXSxyLDIqaSsxLGMseC50LWktMSkpID49IHguRFYpIHsKLSAgICAgICAgcltpK3gu
dF0gLT0geC5EVjsKLSAgICAgICAgcltpK3gudCsxXSA9IDE7Ci0gICAgICB9Ci0gICAgfQotICAg
IGlmKHIudCA+IDApIHJbci50LTFdICs9IHguYW0oaSx4W2ldLHIsMippLDAsMSk7Ci0gICAgci5z
ID0gMDsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgZGl2aWRlIHRoaXMg
YnkgbSwgcXVvdGllbnQgYW5kIHJlbWFpbmRlciB0byBxLCByIChIQUMgMTQuMjApCi0gIC8vIHIg
IT0gcSwgdGhpcyAhPSBtLiAgcSBvciByIG1heSBiZSBudWxsLgotICBmdW5jdGlvbiBibnBEaXZS
ZW1UbyhtLHEscikgewotICAgIHZhciBwbSA9IG0uYWJzKCk7Ci0gICAgaWYocG0udCA8PSAwKSBy
ZXR1cm47Ci0gICAgdmFyIHB0ID0gdGhpcy5hYnMoKTsKLSAgICBpZihwdC50IDwgcG0udCkgewot
ICAgICAgaWYocSAhPSBudWxsKSBxLmZyb21JbnQoMCk7Ci0gICAgICBpZihyICE9IG51bGwpIHRo
aXMuY29weVRvKHIpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZihyID09IG51bGwpIHIg
PSBuYmkoKTsKLSAgICB2YXIgeSA9IG5iaSgpLCB0cyA9IHRoaXMucywgbXMgPSBtLnM7Ci0gICAg
dmFyIG5zaCA9IHRoaXMuREItbmJpdHMocG1bcG0udC0xXSk7CS8vIG5vcm1hbGl6ZSBtb2R1bHVz
Ci0gICAgaWYobnNoID4gMCkgeyBwbS5sU2hpZnRUbyhuc2gseSk7IHB0LmxTaGlmdFRvKG5zaCxy
KTsgfQotICAgIGVsc2UgeyBwbS5jb3B5VG8oeSk7IHB0LmNvcHlUbyhyKTsgfQotICAgIHZhciB5
cyA9IHkudDsKLSAgICB2YXIgeTAgPSB5W3lzLTFdOwotICAgIGlmKHkwID09IDApIHJldHVybjsK
LSAgICB2YXIgeXQgPSB5MCooMTw8dGhpcy5GMSkrKCh5cz4xKT95W3lzLTJdPj50aGlzLkYyOjAp
OwotICAgIHZhciBkMSA9IHRoaXMuRlYveXQsIGQyID0gKDE8PHRoaXMuRjEpL3l0LCBlID0gMTw8
dGhpcy5GMjsKLSAgICB2YXIgaSA9IHIudCwgaiA9IGkteXMsIHQgPSAocT09bnVsbCk/bmJpKCk6
cTsKLSAgICB5LmRsU2hpZnRUbyhqLHQpOwotICAgIGlmKHIuY29tcGFyZVRvKHQpID49IDApIHsK
LSAgICAgIHJbci50KytdID0gMTsKLSAgICAgIHIuc3ViVG8odCxyKTsKLSAgICB9Ci0gICAgQmln
SW50ZWdlci5PTkUuZGxTaGlmdFRvKHlzLHQpOwotICAgIHQuc3ViVG8oeSx5KTsJLy8gIm5lZ2F0
aXZlIiB5IHNvIHdlIGNhbiByZXBsYWNlIHN1YiB3aXRoIGFtIGxhdGVyCi0gICAgd2hpbGUoeS50
IDwgeXMpIHlbeS50KytdID0gMDsKLSAgICB3aGlsZSgtLWogPj0gMCkgewotICAgICAgLy8gRXN0
aW1hdGUgcXVvdGllbnQgZGlnaXQKLSAgICAgIHZhciBxZCA9IChyWy0taV09PXkwKT90aGlzLkRN
Ok1hdGguZmxvb3IocltpXSpkMSsocltpLTFdK2UpKmQyKTsKLSAgICAgIGlmKChyW2ldKz15LmFt
KDAscWQscixqLDAseXMpKSA8IHFkKSB7CS8vIFRyeSBpdCBvdXQKLSAgICAgICAgeS5kbFNoaWZ0
VG8oaix0KTsKLSAgICAgICAgci5zdWJUbyh0LHIpOwotICAgICAgICB3aGlsZShyW2ldIDwgLS1x
ZCkgci5zdWJUbyh0LHIpOwotICAgICAgfQotICAgIH0KLSAgICBpZihxICE9IG51bGwpIHsKLSAg
ICAgIHIuZHJTaGlmdFRvKHlzLHEpOwotICAgICAgaWYodHMgIT0gbXMpIEJpZ0ludGVnZXIuWkVS
Ty5zdWJUbyhxLHEpOwotICAgIH0KLSAgICByLnQgPSB5czsKLSAgICByLmNsYW1wKCk7Ci0gICAg
aWYobnNoID4gMCkgci5yU2hpZnRUbyhuc2gscik7CS8vIERlbm9ybWFsaXplIHJlbWFpbmRlcgot
ICAgIGlmKHRzIDwgMCkgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHIscik7Ci0gIH0KLSAgLy8gKHB1
YmxpYykgdGhpcyBtb2QgYQotICBmdW5jdGlvbiBibk1vZChhKSB7Ci0gICAgdmFyIHIgPSBuYmko
KTsKLSAgICB0aGlzLmFicygpLmRpdlJlbVRvKGEsbnVsbCxyKTsKLSAgICBpZih0aGlzLnMgPCAw
ICYmIHIuY29tcGFyZVRvKEJpZ0ludGVnZXIuWkVSTykgPiAwKSBhLnN1YlRvKHIscik7Ci0gICAg
cmV0dXJuIHI7Ci0gIH0KLSAgLy8gTW9kdWxhciByZWR1Y3Rpb24gdXNpbmcgImNsYXNzaWMiIGFs
Z29yaXRobQotICBmdW5jdGlvbiBDbGFzc2ljKG0pIHsgdGhpcy5tID0gbTsgfQotICBmdW5jdGlv
biBjQ29udmVydCh4KSB7Ci0gICAgaWYoeC5zIDwgMCB8fCB4LmNvbXBhcmVUbyh0aGlzLm0pID49
IDApIHJldHVybiB4Lm1vZCh0aGlzLm0pOwotICAgIGVsc2UgcmV0dXJuIHg7Ci0gIH0KLSAgZnVu
Y3Rpb24gY1JldmVydCh4KSB7IHJldHVybiB4OyB9Ci0gIGZ1bmN0aW9uIGNSZWR1Y2UoeCkgeyB4
LmRpdlJlbVRvKHRoaXMubSxudWxsLHgpOyB9Ci0gIGZ1bmN0aW9uIGNNdWxUbyh4LHkscikgeyB4
Lm11bHRpcGx5VG8oeSxyKTsgdGhpcy5yZWR1Y2Uocik7IH0KLSAgZnVuY3Rpb24gY1NxclRvKHgs
cikgeyB4LnNxdWFyZVRvKHIpOyB0aGlzLnJlZHVjZShyKTsgfQotICBDbGFzc2ljLnByb3RvdHlw
ZS5jb252ZXJ0ID0gY0NvbnZlcnQ7Ci0gIENsYXNzaWMucHJvdG90eXBlLnJldmVydCA9IGNSZXZl
cnQ7Ci0gIENsYXNzaWMucHJvdG90eXBlLnJlZHVjZSA9IGNSZWR1Y2U7Ci0gIENsYXNzaWMucHJv
dG90eXBlLm11bFRvID0gY011bFRvOwotICBDbGFzc2ljLnByb3RvdHlwZS5zcXJUbyA9IGNTcXJU
bzsKLSAgLy8gKHByb3RlY3RlZCkgcmV0dXJuICItMS90aGlzICUgMl5EQiI7IHVzZWZ1bCBmb3Ig
TW9udC4gcmVkdWN0aW9uCi0gIC8vIGp1c3RpZmljYXRpb246Ci0gIC8vICAgICAgICAgeHkgPT0g
MSAobW9kIG0pCi0gIC8vICAgICAgICAgeHkgPSAgMStrbQotICAvLyAgIHh5KDIteHkpID0gKDEr
a20pKDEta20pCi0gIC8vIHhbeSgyLXh5KV0gPSAxLWteMm1eMgotICAvLyB4W3koMi14eSldID09
IDEgKG1vZCBtXjIpCi0gIC8vIGlmIHkgaXMgMS94IG1vZCBtLCB0aGVuIHkoMi14eSkgaXMgMS94
IG1vZCBtXjIKLSAgLy8gc2hvdWxkIHJlZHVjZSB4IGFuZCB5KDIteHkpIGJ5IG1eMiBhdCBlYWNo
IHN0ZXAgdG8ga2VlcCBzaXplIGJvdW5kZWQuCi0gIC8vIEpTIG11bHRpcGx5ICJvdmVyZmxvd3Mi
IGRpZmZlcmVudGx5IGZyb20gQy9DKyssIHNvIGNhcmUgaXMgbmVlZGVkIGhlcmUuCi0gIGZ1bmN0
aW9uIGJucEludkRpZ2l0KCkgewotICAgIGlmKHRoaXMudCA8IDEpIHJldHVybiAwOwotICAgIHZh
ciB4ID0gdGhpc1swXTsKLSAgICBpZigoeCYxKSA9PSAwKSByZXR1cm4gMDsKLSAgICB2YXIgeSA9
IHgmMzsJCS8vIHkgPT0gMS94IG1vZCAyXjIKLSAgICB5ID0gKHkqKDItKHgmMHhmKSp5KSkmMHhm
OwkvLyB5ID09IDEveCBtb2QgMl40Ci0gICAgeSA9ICh5KigyLSh4JjB4ZmYpKnkpKSYweGZmOwkv
LyB5ID09IDEveCBtb2QgMl44Ci0gICAgeSA9ICh5KigyLSgoKHgmMHhmZmZmKSp5KSYweGZmZmYp
KSkmMHhmZmZmOwkvLyB5ID09IDEveCBtb2QgMl4xNgotICAgIC8vIGxhc3Qgc3RlcCAtIGNhbGN1
bGF0ZSBpbnZlcnNlIG1vZCBEViBkaXJlY3RseTsKLSAgICAvLyBhc3N1bWVzIDE2IDwgREIgPD0g
MzIgYW5kIGFzc3VtZXMgYWJpbGl0eSB0byBoYW5kbGUgNDgtYml0IGludHMKLSAgICB5ID0gKHkq
KDIteCp5JXRoaXMuRFYpKSV0aGlzLkRWOwkJLy8geSA9PSAxL3ggbW9kIDJeZGJpdHMKLSAgICAv
LyB3ZSByZWFsbHkgd2FudCB0aGUgbmVnYXRpdmUgaW52ZXJzZSwgYW5kIC1EViA8IHkgPCBEVgot
ICAgIHJldHVybiAoeT4wKT90aGlzLkRWLXk6LXk7Ci0gIH0KLSAgLy8gTW9udGdvbWVyeSByZWR1
Y3Rpb24KLSAgZnVuY3Rpb24gTW9udGdvbWVyeShtKSB7Ci0gICAgdGhpcy5tID0gbTsKLSAgICB0
aGlzLm1wID0gbS5pbnZEaWdpdCgpOwotICAgIHRoaXMubXBsID0gdGhpcy5tcCYweDdmZmY7Ci0g
ICAgdGhpcy5tcGggPSB0aGlzLm1wPj4xNTsKLSAgICB0aGlzLnVtID0gKDE8PChtLkRCLTE1KSkt
MTsKLSAgICB0aGlzLm10MiA9IDIqbS50OwotICB9Ci0gIC8vIHhSIG1vZCBtCi0gIGZ1bmN0aW9u
IG1vbnRDb252ZXJ0KHgpIHsKLSAgICB2YXIgciA9IG5iaSgpOwotICAgIHguYWJzKCkuZGxTaGlm
dFRvKHRoaXMubS50LHIpOwotICAgIHIuZGl2UmVtVG8odGhpcy5tLG51bGwscik7Ci0gICAgaWYo
eC5zIDwgMCAmJiByLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpFUk8pID4gMCkgdGhpcy5tLnN1YlRv
KHIscik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8geC9SIG1vZCBtCi0gIGZ1bmN0aW9uIG1v
bnRSZXZlcnQoeCkgewotICAgIHZhciByID0gbmJpKCk7Ci0gICAgeC5jb3B5VG8ocik7Ci0gICAg
dGhpcy5yZWR1Y2Uocik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8geCA9IHgvUiBtb2QgbSAo
SEFDIDE0LjMyKQotICBmdW5jdGlvbiBtb250UmVkdWNlKHgpIHsKLSAgICB3aGlsZSh4LnQgPD0g
dGhpcy5tdDIpCS8vIHBhZCB4IHNvIGFtIGhhcyBlbm91Z2ggcm9vbSBsYXRlcgotICAgICAgeFt4
LnQrK10gPSAwOwotICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0aGlzLm0udDsgKytpKSB7Ci0gICAg
ICAvLyBmYXN0ZXIgd2F5IG9mIGNhbGN1bGF0aW5nIHUwID0geFtpXSptcCBtb2QgRFYKLSAgICAg
IHZhciBqID0geFtpXSYweDdmZmY7Ci0gICAgICB2YXIgdTAgPSAoaip0aGlzLm1wbCsoKChqKnRo
aXMubXBoKyh4W2ldPj4xNSkqdGhpcy5tcGwpJnRoaXMudW0pPDwxNSkpJnguRE07Ci0gICAgICAv
LyB1c2UgYW0gdG8gY29tYmluZSB0aGUgbXVsdGlwbHktc2hpZnQtYWRkIGludG8gb25lIGNhbGwK
LSAgICAgIGogPSBpK3RoaXMubS50OwotICAgICAgeFtqXSArPSB0aGlzLm0uYW0oMCx1MCx4LGks
MCx0aGlzLm0udCk7Ci0gICAgICAvLyBwcm9wYWdhdGUgY2FycnkKLSAgICAgIHdoaWxlKHhbal0g
Pj0geC5EVikgeyB4W2pdIC09IHguRFY7IHhbKytqXSsrOyB9Ci0gICAgfQotICAgIHguY2xhbXAo
KTsKLSAgICB4LmRyU2hpZnRUbyh0aGlzLm0udCx4KTsKLSAgICBpZih4LmNvbXBhcmVUbyh0aGlz
Lm0pID49IDApIHguc3ViVG8odGhpcy5tLHgpOwotICB9Ci0gIC8vIHIgPSAieF4yL1IgbW9kIG0i
OyB4ICE9IHIKLSAgZnVuY3Rpb24gbW9udFNxclRvKHgscikgeyB4LnNxdWFyZVRvKHIpOyB0aGlz
LnJlZHVjZShyKTsgfQotICAvLyByID0gInh5L1IgbW9kIG0iOyB4LHkgIT0gcgotICBmdW5jdGlv
biBtb250TXVsVG8oeCx5LHIpIHsgeC5tdWx0aXBseVRvKHkscik7IHRoaXMucmVkdWNlKHIpOyB9
Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLmNvbnZlcnQgPSBtb250Q29udmVydDsKLSAgTW9udGdv
bWVyeS5wcm90b3R5cGUucmV2ZXJ0ID0gbW9udFJldmVydDsKLSAgTW9udGdvbWVyeS5wcm90b3R5
cGUucmVkdWNlID0gbW9udFJlZHVjZTsKLSAgTW9udGdvbWVyeS5wcm90b3R5cGUubXVsVG8gPSBt
b250TXVsVG87Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLnNxclRvID0gbW9udFNxclRvOwotICAv
LyAocHJvdGVjdGVkKSB0cnVlIGlmZiB0aGlzIGlzIGV2ZW4KLSAgZnVuY3Rpb24gYm5wSXNFdmVu
KCkgeyByZXR1cm4gKCh0aGlzLnQ+MCk/KHRoaXNbMF0mMSk6dGhpcy5zKSA9PSAwOyB9Ci0gIC8v
IChwcm90ZWN0ZWQpIHRoaXNeZSwgZSA8IDJeMzIsIGRvaW5nIHNxciBhbmQgbXVsIHdpdGggInIi
IChIQUMgMTQuNzkpCi0gIGZ1bmN0aW9uIGJucEV4cChlLHopIHsKLSAgICBpZihlID4gMHhmZmZm
ZmZmZiB8fCBlIDwgMSkgcmV0dXJuIEJpZ0ludGVnZXIuT05FOwotICAgIHZhciByID0gbmJpKCks
IHIyID0gbmJpKCksIGcgPSB6LmNvbnZlcnQodGhpcyksIGkgPSBuYml0cyhlKS0xOwotICAgIGcu
Y29weVRvKHIpOwotICAgIHdoaWxlKC0taSA+PSAwKSB7Ci0gICAgICB6LnNxclRvKHIscjIpOwot
ICAgICAgaWYoKGUmKDE8PGkpKSA+IDApIHoubXVsVG8ocjIsZyxyKTsKLSAgICAgIGVsc2UgeyB2
YXIgdCA9IHI7IHIgPSByMjsgcjIgPSB0OyB9Ci0gICAgfQotICAgIHJldHVybiB6LnJldmVydChy
KTsKLSAgfQotICAvLyAocHVibGljKSB0aGlzXmUgJSBtLCAwIDw9IGUgPCAyXjMyCi0gIGZ1bmN0
aW9uIGJuTW9kUG93SW50KGUsbSkgewotICAgIHZhciB6OwotICAgIGlmKGUgPCAyNTYgfHwgbS5p
c0V2ZW4oKSkgeiA9IG5ldyBDbGFzc2ljKG0pOyBlbHNlIHogPSBuZXcgTW9udGdvbWVyeShtKTsK
LSAgICByZXR1cm4gdGhpcy5leHAoZSx6KTsKLSAgfQotICAvLyBwcm90ZWN0ZWQKLSAgQmlnSW50
ZWdlci5wcm90b3R5cGUuY29weVRvID0gYm5wQ29weVRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlw
ZS5mcm9tSW50ID0gYm5wRnJvbUludDsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZnJvbVN0cmlu
ZyA9IGJucEZyb21TdHJpbmc7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmNsYW1wID0gYm5wQ2xh
bXA7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRsU2hpZnRUbyA9IGJucERMU2hpZnRUbzsKLSAg
QmlnSW50ZWdlci5wcm90b3R5cGUuZHJTaGlmdFRvID0gYm5wRFJTaGlmdFRvOwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5sU2hpZnRUbyA9IGJucExTaGlmdFRvOwotICBCaWdJbnRlZ2VyLnByb3Rv
dHlwZS5yU2hpZnRUbyA9IGJucFJTaGlmdFRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5zdWJU
byA9IGJucFN1YlRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tdWx0aXBseVRvID0gYm5wTXVs
dGlwbHlUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuc3F1YXJlVG8gPSBibnBTcXVhcmVUbzsK
LSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZGl2UmVtVG8gPSBibnBEaXZSZW1UbzsKLSAgQmlnSW50
ZWdlci5wcm90b3R5cGUuaW52RGlnaXQgPSBibnBJbnZEaWdpdDsKLSAgQmlnSW50ZWdlci5wcm90
b3R5cGUuaXNFdmVuID0gYm5wSXNFdmVuOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5leHAgPSBi
bnBFeHA7Ci0gIC8vIHB1YmxpYwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS50b1N0cmluZyA9IGJu
VG9TdHJpbmc7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLm5lZ2F0ZSA9IGJuTmVnYXRlOwotICBC
aWdJbnRlZ2VyLnByb3RvdHlwZS5hYnMgPSBibkFiczsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUu
Y29tcGFyZVRvID0gYm5Db21wYXJlVG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmJpdExlbmd0
aCA9IGJuQml0TGVuZ3RoOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tb2QgPSBibk1vZDsKLSAg
QmlnSW50ZWdlci5wcm90b3R5cGUubW9kUG93SW50ID0gYm5Nb2RQb3dJbnQ7Ci0gIC8vICJjb25z
dGFudHMiCi0gIEJpZ0ludGVnZXIuWkVSTyA9IG5idigwKTsKLSAgQmlnSW50ZWdlci5PTkUgPSBu
YnYoMSk7Ci0gIC8vIGpzYm4yIHN0dWZmCi0gIC8vIChwcm90ZWN0ZWQpIGNvbnZlcnQgZnJvbSBy
YWRpeCBzdHJpbmcKLSAgZnVuY3Rpb24gYm5wRnJvbVJhZGl4KHMsYikgewotICAgIHRoaXMuZnJv
bUludCgwKTsKLSAgICBpZihiID09IG51bGwpIGIgPSAxMDsKLSAgICB2YXIgY3MgPSB0aGlzLmNo
dW5rU2l6ZShiKTsKLSAgICB2YXIgZCA9IE1hdGgucG93KGIsY3MpLCBtaSA9IGZhbHNlLCBqID0g
MCwgdyA9IDA7Ci0gICAgZm9yKHZhciBpID0gMDsgaSA8IHMubGVuZ3RoOyArK2kpIHsKLSAgICAg
IHZhciB4ID0gaW50QXQocyxpKTsKLSAgICAgIGlmKHggPCAwKSB7Ci0gICAgICAgIGlmKHMuY2hh
ckF0KGkpID09ICItIiAmJiB0aGlzLnNpZ251bSgpID09IDApIG1pID0gdHJ1ZTsKLSAgICAgICAg
Y29udGludWU7Ci0gICAgICB9Ci0gICAgICB3ID0gYip3K3g7Ci0gICAgICBpZigrK2ogPj0gY3Mp
IHsKLSAgICAgICAgdGhpcy5kTXVsdGlwbHkoZCk7Ci0gICAgICAgIHRoaXMuZEFkZE9mZnNldCh3
LDApOwotICAgICAgICBqID0gMDsKLSAgICAgICAgdyA9IDA7Ci0gICAgICB9Ci0gICAgfQotICAg
IGlmKGogPiAwKSB7Ci0gICAgICB0aGlzLmRNdWx0aXBseShNYXRoLnBvdyhiLGopKTsKLSAgICAg
IHRoaXMuZEFkZE9mZnNldCh3LDApOwotICAgIH0KLSAgICBpZihtaSkgQmlnSW50ZWdlci5aRVJP
LnN1YlRvKHRoaXMsdGhpcyk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgcmV0dXJuIHggcy50LiBy
XnggPCBEVgotICBmdW5jdGlvbiBibnBDaHVua1NpemUocikgeyByZXR1cm4gTWF0aC5mbG9vcihN
YXRoLkxOMip0aGlzLkRCL01hdGgubG9nKHIpKTsgfQotICAvLyAocHVibGljKSAwIGlmIHRoaXMg
PT0gMCwgMSBpZiB0aGlzID4gMAotICBmdW5jdGlvbiBiblNpZ051bSgpIHsKLSAgICBpZih0aGlz
LnMgPCAwKSByZXR1cm4gLTE7Ci0gICAgZWxzZSBpZih0aGlzLnQgPD0gMCB8fCAodGhpcy50ID09
IDEgJiYgdGhpc1swXSA8PSAwKSkgcmV0dXJuIDA7Ci0gICAgZWxzZSByZXR1cm4gMTsKLSAgfQot
ICAvLyAocHJvdGVjdGVkKSB0aGlzICo9IG4sIHRoaXMgPj0gMCwgMSA8IG4gPCBEVgotICBmdW5j
dGlvbiBibnBETXVsdGlwbHkobikgewotICAgIHRoaXNbdGhpcy50XSA9IHRoaXMuYW0oMCxuLTEs
dGhpcywwLDAsdGhpcy50KTsKLSAgICArK3RoaXMudDsKLSAgICB0aGlzLmNsYW1wKCk7Ci0gIH0K
LSAgLy8gKHByb3RlY3RlZCkgdGhpcyArPSBuIDw8IHcgd29yZHMsIHRoaXMgPj0gMAotICBmdW5j
dGlvbiBibnBEQWRkT2Zmc2V0KG4sdykgewotICAgIGlmKG4gPT0gMCkgcmV0dXJuOwotICAgIHdo
aWxlKHRoaXMudCA8PSB3KSB0aGlzW3RoaXMudCsrXSA9IDA7Ci0gICAgdGhpc1t3XSArPSBuOwot
ICAgIHdoaWxlKHRoaXNbd10gPj0gdGhpcy5EVikgewotICAgICAgdGhpc1t3XSAtPSB0aGlzLkRW
OwotICAgICAgaWYoKyt3ID49IHRoaXMudCkgdGhpc1t0aGlzLnQrK10gPSAwOwotICAgICAgKyt0
aGlzW3ddOwotICAgIH0KLSAgfQotICAvLyAocHJvdGVjdGVkKSBjb252ZXJ0IHRvIHJhZGl4IHN0
cmluZwotICBmdW5jdGlvbiBibnBUb1JhZGl4KGIpIHsKLSAgICBpZihiID09IG51bGwpIGIgPSAx
MDsKLSAgICBpZih0aGlzLnNpZ251bSgpID09IDAgfHwgYiA8IDIgfHwgYiA+IDM2KSByZXR1cm4g
IjAiOwotICAgIHZhciBjcyA9IHRoaXMuY2h1bmtTaXplKGIpOwotICAgIHZhciBhID0gTWF0aC5w
b3coYixjcyk7Ci0gICAgdmFyIGQgPSBuYnYoYSksIHkgPSBuYmkoKSwgeiA9IG5iaSgpLCByID0g
IiI7Ci0gICAgdGhpcy5kaXZSZW1UbyhkLHkseik7Ci0gICAgd2hpbGUoeS5zaWdudW0oKSA+IDAp
IHsKLSAgICAgIHIgPSAoYSt6LmludFZhbHVlKCkpLnRvU3RyaW5nKGIpLnN1YnN0cigxKSArIHI7
Ci0gICAgICB5LmRpdlJlbVRvKGQseSx6KTsKLSAgICB9Ci0gICAgcmV0dXJuIHouaW50VmFsdWUo
KS50b1N0cmluZyhiKSArIHI7Ci0gIH0KLSAgLy8gKHB1YmxpYykgcmV0dXJuIHZhbHVlIGFzIGlu
dGVnZXIKLSAgZnVuY3Rpb24gYm5JbnRWYWx1ZSgpIHsKLSAgICBpZih0aGlzLnMgPCAwKSB7Ci0g
ICAgICBpZih0aGlzLnQgPT0gMSkgcmV0dXJuIHRoaXNbMF0tdGhpcy5EVjsKLSAgICAgIGVsc2Ug
aWYodGhpcy50ID09IDApIHJldHVybiAtMTsKLSAgICB9Ci0gICAgZWxzZSBpZih0aGlzLnQgPT0g
MSkgcmV0dXJuIHRoaXNbMF07Ci0gICAgZWxzZSBpZih0aGlzLnQgPT0gMCkgcmV0dXJuIDA7Ci0g
ICAgLy8gYXNzdW1lcyAxNiA8IERCIDwgMzIKLSAgICByZXR1cm4gKCh0aGlzWzFdJigoMTw8KDMy
LXRoaXMuREIpKS0xKSk8PHRoaXMuREIpfHRoaXNbMF07Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkg
ciA9IHRoaXMgKyBhCi0gIGZ1bmN0aW9uIGJucEFkZFRvKGEscikgewotICAgIHZhciBpID0gMCwg
YyA9IDAsIG0gPSBNYXRoLm1pbihhLnQsdGhpcy50KTsKLSAgICB3aGlsZShpIDwgbSkgewotICAg
ICAgYyArPSB0aGlzW2ldK2FbaV07Ci0gICAgICByW2krK10gPSBjJnRoaXMuRE07Ci0gICAgICBj
ID4+PSB0aGlzLkRCOwotICAgIH0KLSAgICBpZihhLnQgPCB0aGlzLnQpIHsKLSAgICAgIGMgKz0g
YS5zOwotICAgICAgd2hpbGUoaSA8IHRoaXMudCkgewotICAgICAgICBjICs9IHRoaXNbaV07Ci0g
ICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0gdGhpcy5EQjsKLSAgICAg
IH0KLSAgICAgIGMgKz0gdGhpcy5zOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgIGMgKz0gdGhp
cy5zOwotICAgICAgd2hpbGUoaSA8IGEudCkgewotICAgICAgICBjICs9IGFbaV07Ci0gICAgICAg
IHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0gdGhpcy5EQjsKLSAgICAgIH0KLSAg
ICAgIGMgKz0gYS5zOwotICAgIH0KLSAgICByLnMgPSAoYzwwKT8tMTowOwotICAgIGlmKGMgPiAw
KSByW2krK10gPSBjOwotICAgIGVsc2UgaWYoYyA8IC0xKSByW2krK10gPSB0aGlzLkRWK2M7Ci0g
ICAgci50ID0gaTsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgQmlnSW50ZWdlci5wcm90b3R5cGUu
ZnJvbVJhZGl4ID0gYm5wRnJvbVJhZGl4OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5jaHVua1Np
emUgPSBibnBDaHVua1NpemU7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLnNpZ251bSA9IGJuU2ln
TnVtOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kTXVsdGlwbHkgPSBibnBETXVsdGlwbHk7Ci0g
IEJpZ0ludGVnZXIucHJvdG90eXBlLmRBZGRPZmZzZXQgPSBibnBEQWRkT2Zmc2V0OwotICBCaWdJ
bnRlZ2VyLnByb3RvdHlwZS50b1JhZGl4ID0gYm5wVG9SYWRpeDsKLSAgQmlnSW50ZWdlci5wcm90
b3R5cGUuaW50VmFsdWUgPSBibkludFZhbHVlOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hZGRU
byA9IGJucEFkZFRvOwotICAvLz09PT09PT0gZW5kIGpzYm4gPT09PT09PQotICAvLyBFbXNjcmlw
dGVuIHdyYXBwZXIKLSAgdmFyIFdyYXBwZXIgPSB7Ci0gICAgYWJzOiBmdW5jdGlvbihsLCBoKSB7
Ci0gICAgICB2YXIgeCA9IG5ldyBnb29nLm1hdGguTG9uZyhsLCBoKTsKLSAgICAgIHZhciByZXQ7
Ci0gICAgICBpZiAoeC5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAgcmV0ID0geC5uZWdhdGUoKTsK
LSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldCA9IHg7Ci0gICAgICB9Ci0gICAgICBIRUFQMzJb
dGVtcERvdWJsZVB0cj4+Ml0gPSByZXQubG93XzsKLSAgICAgIEhFQVAzMlt0ZW1wRG91YmxlUHRy
KzQ+PjJdID0gcmV0LmhpZ2hfOwotICAgIH0sCi0gICAgZW5zdXJlVGVtcHM6IGZ1bmN0aW9uKCkg
ewotICAgICAgaWYgKFdyYXBwZXIuZW5zdXJlZFRlbXBzKSByZXR1cm47Ci0gICAgICBXcmFwcGVy
LmVuc3VyZWRUZW1wcyA9IHRydWU7Ci0gICAgICBXcmFwcGVyLnR3bzMyID0gbmV3IEJpZ0ludGVn
ZXIoKTsKLSAgICAgIFdyYXBwZXIudHdvMzIuZnJvbVN0cmluZygnNDI5NDk2NzI5NicsIDEwKTsK
LSAgICAgIFdyYXBwZXIudHdvNjQgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgV3JhcHBlci50
d282NC5mcm9tU3RyaW5nKCcxODQ0Njc0NDA3MzcwOTU1MTYxNicsIDEwKTsKLSAgICAgIFdyYXBw
ZXIudGVtcDEgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgV3JhcHBlci50ZW1wMiA9IG5ldyBC
aWdJbnRlZ2VyKCk7Ci0gICAgfSwKLSAgICBsaDJiaWdudW06IGZ1bmN0aW9uKGwsIGgpIHsKLSAg
ICAgIHZhciBhID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGEuZnJvbVN0cmluZyhoLnRvU3Ry
aW5nKCksIDEwKTsKLSAgICAgIHZhciBiID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGEubXVs
dGlwbHlUbyhXcmFwcGVyLnR3bzMyLCBiKTsKLSAgICAgIHZhciBjID0gbmV3IEJpZ0ludGVnZXIo
KTsKLSAgICAgIGMuZnJvbVN0cmluZyhsLnRvU3RyaW5nKCksIDEwKTsKLSAgICAgIHZhciBkID0g
bmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGMuYWRkVG8oYiwgZCk7Ci0gICAgICByZXR1cm4gZDsK
LSAgICB9LAotICAgIHN0cmluZ2lmeTogZnVuY3Rpb24obCwgaCwgdW5zaWduZWQpIHsKLSAgICAg
IHZhciByZXQgPSBuZXcgZ29vZy5tYXRoLkxvbmcobCwgaCkudG9TdHJpbmcoKTsKLSAgICAgIGlm
ICh1bnNpZ25lZCAmJiByZXRbMF0gPT0gJy0nKSB7Ci0gICAgICAgIC8vIHVuc2lnbiBzbG93bHkg
dXNpbmcganNibiBiaWdudW1zCi0gICAgICAgIFdyYXBwZXIuZW5zdXJlVGVtcHMoKTsKLSAgICAg
ICAgdmFyIGJpZ251bSA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICAgIGJpZ251bS5mcm9tU3Ry
aW5nKHJldCwgMTApOwotICAgICAgICByZXQgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgICBX
cmFwcGVyLnR3bzY0LmFkZFRvKGJpZ251bSwgcmV0KTsKLSAgICAgICAgcmV0ID0gcmV0LnRvU3Ry
aW5nKDEwKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfSwKLSAgICBmcm9tU3Ry
aW5nOiBmdW5jdGlvbihzdHIsIGJhc2UsIG1pbiwgbWF4LCB1bnNpZ25lZCkgewotICAgICAgV3Jh
cHBlci5lbnN1cmVUZW1wcygpOwotICAgICAgdmFyIGJpZ251bSA9IG5ldyBCaWdJbnRlZ2VyKCk7
Ci0gICAgICBiaWdudW0uZnJvbVN0cmluZyhzdHIsIGJhc2UpOwotICAgICAgdmFyIGJpZ21pbiA9
IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBiaWdtaW4uZnJvbVN0cmluZyhtaW4sIDEwKTsKLSAg
ICAgIHZhciBiaWdtYXggPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgYmlnbWF4LmZyb21TdHJp
bmcobWF4LCAxMCk7Ci0gICAgICBpZiAodW5zaWduZWQgJiYgYmlnbnVtLmNvbXBhcmVUbyhCaWdJ
bnRlZ2VyLlpFUk8pIDwgMCkgewotICAgICAgICB2YXIgdGVtcCA9IG5ldyBCaWdJbnRlZ2VyKCk7
Ci0gICAgICAgIGJpZ251bS5hZGRUbyhXcmFwcGVyLnR3bzY0LCB0ZW1wKTsKLSAgICAgICAgYmln
bnVtID0gdGVtcDsKLSAgICAgIH0KLSAgICAgIHZhciBlcnJvciA9IGZhbHNlOwotICAgICAgaWYg
KGJpZ251bS5jb21wYXJlVG8oYmlnbWluKSA8IDApIHsKLSAgICAgICAgYmlnbnVtID0gYmlnbWlu
OwotICAgICAgICBlcnJvciA9IHRydWU7Ci0gICAgICB9IGVsc2UgaWYgKGJpZ251bS5jb21wYXJl
VG8oYmlnbWF4KSA+IDApIHsKLSAgICAgICAgYmlnbnVtID0gYmlnbWF4OwotICAgICAgICBlcnJv
ciA9IHRydWU7Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0ID0gZ29vZy5tYXRoLkxvbmcuZnJvbVN0
cmluZyhiaWdudW0udG9TdHJpbmcoKSk7IC8vIG1pbi1tYXggY2hlY2tzIHNob3VsZCBoYXZlIGNs
YW1wZWQgdGhpcyB0byBhIHJhbmdlIGdvb2cubWF0aC5Mb25nIGNhbiBoYW5kbGUgd2VsbAotICAg
ICAgSEVBUDMyW3RlbXBEb3VibGVQdHI+PjJdID0gcmV0Lmxvd187Ci0gICAgICBIRUFQMzJbdGVt
cERvdWJsZVB0cis0Pj4yXSA9IHJldC5oaWdoXzsKLSAgICAgIGlmIChlcnJvcikgdGhyb3cgJ3Jh
bmdlIGVycm9yJzsKLSAgICB9Ci0gIH07Ci0gIHJldHVybiBXcmFwcGVyOwotfSkoKTsKLS8vPT09
PT09PSBlbmQgY2xvc3VyZSBpNjQgY29kZSA9PT09PT09Ci0vLyA9PT0gQXV0by1nZW5lcmF0ZWQg
cG9zdGFtYmxlIHNldHVwIGVudHJ5IHN0dWZmID09PQotZnVuY3Rpb24gRXhpdFN0YXR1cyhzdGF0
dXMpIHsKLSAgdGhpcy5uYW1lID0gIkV4aXRTdGF0dXMiOwotICB0aGlzLm1lc3NhZ2UgPSAiUHJv
Z3JhbSB0ZXJtaW5hdGVkIHdpdGggZXhpdCgiICsgc3RhdHVzICsgIikiOwotICB0aGlzLnN0YXR1
cyA9IHN0YXR1czsKLX07Ci1FeGl0U3RhdHVzLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpOwotRXhp
dFN0YXR1cy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBFeGl0U3RhdHVzOwotdmFyIGluaXRpYWxT
dGFja1RvcDsKLXZhciBwcmVsb2FkU3RhcnRUaW1lID0gbnVsbDsKLU1vZHVsZVsnY2FsbE1haW4n
XSA9IE1vZHVsZS5jYWxsTWFpbiA9IGZ1bmN0aW9uIGNhbGxNYWluKGFyZ3MpIHsKLSAgYXNzZXJ0
KHJ1bkRlcGVuZGVuY2llcyA9PSAwLCAnY2Fubm90IGNhbGwgbWFpbiB3aGVuIGFzeW5jIGRlcGVu
ZGVuY2llcyByZW1haW4hIChsaXN0ZW4gb24gX19BVE1BSU5fXyknKTsKLSAgYXNzZXJ0KF9fQVRQ
UkVSVU5fXy5sZW5ndGggPT0gMCwgJ2Nhbm5vdCBjYWxsIG1haW4gd2hlbiBwcmVSdW4gZnVuY3Rp
b25zIHJlbWFpbiB0byBiZSBjYWxsZWQnKTsKLSAgYXJncyA9IGFyZ3MgfHwgW107Ci0gIGlmIChF
TlZJUk9OTUVOVF9JU19XRUIgJiYgcHJlbG9hZFN0YXJ0VGltZSAhPT0gbnVsbCkgewotICAgIC8v
TW9kdWxlLnByaW50RXJyKCdwcmVsb2FkIHRpbWU6ICcgKyAoRGF0ZS5ub3coKSAtIHByZWxvYWRT
dGFydFRpbWUpICsgJyBtcycpOwotICB9Ci0gIGVuc3VyZUluaXRSdW50aW1lKCk7Ci0gIHZhciBh
cmdjID0gYXJncy5sZW5ndGgrMTsKLSAgZnVuY3Rpb24gcGFkKCkgewotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgNC0xOyBpKyspIHsKLSAgICAgIGFyZ3YucHVzaCgwKTsKLSAgICB9Ci0gIH0KLSAg
dmFyIGFyZ3YgPSBbYWxsb2NhdGUoaW50QXJyYXlGcm9tU3RyaW5nKCIvYmluL3RoaXMucHJvZ3Jh
bSIpLCAnaTgnLCBBTExPQ19OT1JNQUwpIF07Ci0gIHBhZCgpOwotICBmb3IgKHZhciBpID0gMDsg
aSA8IGFyZ2MtMTsgaSA9IGkgKyAxKSB7Ci0gICAgYXJndi5wdXNoKGFsbG9jYXRlKGludEFycmF5
RnJvbVN0cmluZyhhcmdzW2ldKSwgJ2k4JywgQUxMT0NfTk9STUFMKSk7Ci0gICAgcGFkKCk7Ci0g
IH0KLSAgYXJndi5wdXNoKDApOwotICBhcmd2ID0gYWxsb2NhdGUoYXJndiwgJ2kzMicsIEFMTE9D
X05PUk1BTCk7Ci0gIGluaXRpYWxTdGFja1RvcCA9IFNUQUNLVE9QOwotICB0cnkgewotICAgIHZh
ciByZXQgPSBNb2R1bGVbJ19tYWluJ10oYXJnYywgYXJndiwgMCk7Ci0gICAgLy8gaWYgd2UncmUg
bm90IHJ1bm5pbmcgYW4gZXZlbnRlZCBtYWluIGxvb3AsIGl0J3MgdGltZSB0byBleGl0Ci0gICAg
aWYgKCFNb2R1bGVbJ25vRXhpdFJ1bnRpbWUnXSkgewotICAgICAgZXhpdChyZXQpOwotICAgIH0K
LSAgfQotICBjYXRjaChlKSB7Ci0gICAgaWYgKGUgaW5zdGFuY2VvZiBFeGl0U3RhdHVzKSB7Ci0g
ICAgICAvLyBleGl0KCkgdGhyb3dzIHRoaXMgb25jZSBpdCdzIGRvbmUgdG8gbWFrZSBzdXJlIGV4
ZWN1dGlvbgotICAgICAgLy8gaGFzIGJlZW4gc3RvcHBlZCBjb21wbGV0ZWx5Ci0gICAgICByZXR1
cm47Ci0gICAgfSBlbHNlIGlmIChlID09ICdTaW11bGF0ZUluZmluaXRlTG9vcCcpIHsKLSAgICAg
IC8vIHJ1bm5pbmcgYW4gZXZlbnRlZCBtYWluIGxvb3AsIGRvbid0IGltbWVkaWF0ZWx5IGV4aXQK
LSAgICAgIE1vZHVsZVsnbm9FeGl0UnVudGltZSddID0gdHJ1ZTsKLSAgICAgIHJldHVybjsKLSAg
ICB9IGVsc2UgewotICAgICAgdGhyb3cgZTsKLSAgICB9Ci0gIH0KLX0KLWZ1bmN0aW9uIHJ1bihh
cmdzKSB7Ci0gIGFyZ3MgPSBhcmdzIHx8IE1vZHVsZVsnYXJndW1lbnRzJ107Ci0gIGlmIChwcmVs
b2FkU3RhcnRUaW1lID09PSBudWxsKSBwcmVsb2FkU3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKLSAg
aWYgKHJ1bkRlcGVuZGVuY2llcyA+IDApIHsKLSAgICAvL01vZHVsZS5wcmludEVycigncnVuKCkg
Y2FsbGVkLCBidXQgZGVwZW5kZW5jaWVzIHJlbWFpbiwgc28gbm90IHJ1bm5pbmcnKTsKLSAgICBy
ZXR1cm47Ci0gIH0KLSAgcHJlUnVuKCk7Ci0gIGlmIChydW5EZXBlbmRlbmNpZXMgPiAwKSB7Ci0g
ICAgLy8gYSBwcmVSdW4gYWRkZWQgYSBkZXBlbmRlbmN5LCBydW4gd2lsbCBiZSBjYWxsZWQgbGF0
ZXIKLSAgICByZXR1cm47Ci0gIH0KLSAgZnVuY3Rpb24gZG9SdW4oKSB7Ci0gICAgZW5zdXJlSW5p
dFJ1bnRpbWUoKTsKLSAgICBwcmVNYWluKCk7Ci0gICAgY2FsbGVkUnVuID0gdHJ1ZTsKLSAgICBp
ZiAoTW9kdWxlWydfbWFpbiddICYmIHNob3VsZFJ1bk5vdykgewotICAgICAgTW9kdWxlWydjYWxs
TWFpbiddKGFyZ3MpOwotICAgIH0KLSAgICBwb3N0UnVuKCk7Ci0gIH0KLSAgaWYgKE1vZHVsZVsn
c2V0U3RhdHVzJ10pIHsKLSAgICBNb2R1bGVbJ3NldFN0YXR1cyddKCdSdW5uaW5nLi4uJyk7Ci0g
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10oJycpOwotICAgICAgfSwgMSk7Ci0gICAgICBp
ZiAoIUFCT1JUKSBkb1J1bigpOwotICAgIH0sIDEpOwotICB9IGVsc2UgewotICAgIGRvUnVuKCk7
Ci0gIH0KLX0KLU1vZHVsZVsncnVuJ10gPSBNb2R1bGUucnVuID0gcnVuOwotZnVuY3Rpb24gZXhp
dChzdGF0dXMpIHsKLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RBVFVTID0gc3RhdHVzOwotICBT
VEFDS1RPUCA9IGluaXRpYWxTdGFja1RvcDsKLSAgLy8gZXhpdCB0aGUgcnVudGltZQotICBleGl0
UnVudGltZSgpOwotICAvLyB0aHJvdyBhbiBleGNlcHRpb24gdG8gaGFsdCB0aGUgY3VycmVudCBl
eGVjdXRpb24KLSAgdGhyb3cgbmV3IEV4aXRTdGF0dXMoc3RhdHVzKTsKLX0KLU1vZHVsZVsnZXhp
dCddID0gTW9kdWxlLmV4aXQgPSBleGl0OwotZnVuY3Rpb24gYWJvcnQodGV4dCkgewotICBpZiAo
dGV4dCkgewotICAgIE1vZHVsZS5wcmludCh0ZXh0KTsKLSAgICBNb2R1bGUucHJpbnRFcnIodGV4
dCk7Ci0gIH0KLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RBVFVTID0gMTsKLSAgdGhyb3cgJ2Fi
b3J0KCkgYXQgJyArIChuZXcgRXJyb3IoKS5zdGFjayk7Ci19Ci1Nb2R1bGVbJ2Fib3J0J10gPSBN
b2R1bGUuYWJvcnQgPSBhYm9ydDsKLS8vIHt7UFJFX1JVTl9BRERJVElPTlN9fQotaWYgKE1vZHVs
ZVsncHJlSW5pdCddKSB7Ci0gIGlmICh0eXBlb2YgTW9kdWxlWydwcmVJbml0J10gPT0gJ2Z1bmN0
aW9uJykgTW9kdWxlWydwcmVJbml0J10gPSBbTW9kdWxlWydwcmVJbml0J11dOwotICB3aGlsZSAo
TW9kdWxlWydwcmVJbml0J10ubGVuZ3RoID4gMCkgewotICAgIE1vZHVsZVsncHJlSW5pdCddLnBv
cCgpKCk7Ci0gIH0KLX0KLS8vIHNob3VsZFJ1bk5vdyByZWZlcnMgdG8gY2FsbGluZyBtYWluKCks
IG5vdCBydW4oKS4KLXZhciBzaG91bGRSdW5Ob3cgPSB0cnVlOwotaWYgKE1vZHVsZVsnbm9Jbml0
aWFsUnVuJ10pIHsKLSAgc2hvdWxkUnVuTm93ID0gZmFsc2U7Ci19Ci1ydW4oKTsKLS8vIHt7UE9T
VF9SVU5fQURESVRJT05TfX0KLS8vIHt7TU9EVUxFX0FERElUSU9OU319CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWFkZC1ub3QtbnVtYmVyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctYWRkLW5vdC1udW1iZXIuanMJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctYWRkLW5vdC1u
dW1iZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2IEBACisvLyBUaGlzIHRlc3Qgd29u
J3QgZ2V0IGludG8gdGhlIEZUTCBjdXJyZW50bHksIHNpbmNlIHRoZSBmb28oKSBmdW5jdGlvbiBq
dXN0IGV4aXRzIGEgbG90LgorLy9AIG5vRlRMUnVuTGF5b3V0VGVzdAorCiBkZXNjcmlwdGlvbigK
ICJUZXN0cyB0aGF0IGFkZGluZyB0aGluZ3MgdGhhdCBhcmVuJ3QgbnVtYmVycyB1c2luZyArKyBk
b2VzIG5vdCBjcmFzaCBvciBnZW5lcmF0ZSBib2d1cyBjb2RlLiIKICk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvbGFyZ2UtZXhwcmVzc2lvbnMuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2xhcmdlLWV4cHJlc3Npb25zLmpzCShyZXZpc2lv
biAxNjI5NjEpCisrKyBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvbGFyZ2UtZXhwcmVzc2lv
bnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDUgKzMwLDQgQEAgZnVuY3Rpb24gcmVwZWF0ZWRT
dHJpbmcodmFsdWUsIGNvdW50KQogCiBzaG91bGRCZSgnZXZhbChyZXBlYXRlZEV4cHJlc3Npb24o
ImxldHRlckEiLCAiKyIsIDEwMCkpJywgJ3JlcGVhdGVkU3RyaW5nKCJhIiwgMTAwKScpOwogc2hv
dWxkQmUoJ2V2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwKSknLCAn
cmVwZWF0ZWRTdHJpbmcoImEiLCAxMDAwKScpOwotc2hvdWxkQmUoJ2V2YWwocmVwZWF0ZWRFeHBy
ZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMCkpJywgJ3JlcGVhdGVkU3RyaW5nKCJhIiwgMTAw
MDApJyk7CiBzaG91bGRUaHJvdygnZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAi
KyIsIDEwMDAwMCkpJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222516</attachid>
            <date>2014-01-28 15:42:54 -0800</date>
            <delta_ts>2014-01-28 16:08:34 -0800</delta_ts>
            <desc>Patch with added missing files</desc>
            <filename>127763-6.patch</filename>
            <type>text/plain</type>
            <size>1599578</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBA
CisyMDE0LTAxLTI4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIE1lcmdlIHRoZSBqc0NTdGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZXMgZnJvbSBodHRwOi8vc3ZuLndlYmtpdC5vcmcv
cmVwb3NpdG9yeS93ZWJraXQvYnJhbmNoZXMvanNDU3RhY2sKKwogMjAxNC0wMS0yOCAgTWFyayBM
YW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgSmV0dGlzb24gREZHIGNvZGUgd2hl
biBuZWl0aGVyIGJyZWFrcG9pbnRzIG9yIHRoZSBwcm9maWxlciBhcmUgYWN0aXZlLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTYyOTYxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNTUs
NiArMjU1LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBpbnRlcnByZXRlci9W
TUluc3BlY3Rvci5jcHAKIAogICAgIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCisgICAgaml0L0Fy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcAogICAgIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0
aW5lLmNwcAogICAgIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAogICAgIGppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCkBAIC0yNzgsNiArMjc5LDcgQEAgc2V0KEphdmFT
Y3JpcHRDb3JlX1NPVVJDRVMKICAgICBqaXQvSklUU3R1YnMuY3BwCiAgICAgaml0L0pJVFRodW5r
cy5jcHAKICAgICBqaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCisg
ICAgaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAKICAgICBqaXQv
UmVnaXN0ZXJTZXQuY3BwCiAgICAgaml0L1JlcGF0Y2guY3BwCiAgICAgaml0L1RlbXBSZWdpc3Rl
clNldC5jcHAKQEAgLTM0MCw2ICszNDIsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwog
ICAgIHJ1bnRpbWUvRHVtcENvbnRleHQuY3BwCiAgICAgcnVudGltZS9FcnJvci5jcHAKICAgICBy
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisgICAgcnVudGltZS9FcnJvckhhbmRsaW5nU2Nv
cGUuY3BwCiAgICAgcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAogICAgIHJ1bnRpbWUvRXJyb3JQ
cm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNv
cHkpCkBAIC05MSw2ICs5MSw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZf
NjQuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNB
c3NlbWJsZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9SZXBhdGNoQnVm
ZmVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvU0g0QXNzZW1ibGVyLmgg
XApAQCAtNjkxLDYgKzY5Miw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9WTUluc3BlY3Rvci5jcHAgXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9WTUluc3BlY3Rvci5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguaCBcCisgICAgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIFwKKyAgICBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NDYWxsSGVscGVycy5oIFwKQEAgLTc0NCw2ICs3NDcsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV3JpdGVC
YXJyaWVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaCBc
CisgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBw
ZXJHZW5lcmF0b3IuaCBcCisgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclBy
ZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlZ2lzdGVyU2V0LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3Rl
clNldC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIFwKQEAgLTkw
NCw2ICs5MDksOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3IuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Nj
b3BlLmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Nj
b3BlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcCBcCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCShyZXZpc2lvbiAxNjI5
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIJKHdvcmtp
bmcgY29weSkKQEAgLTQ5ODEsNyArNDk4MSw2IEBAIF9sbGludF9zbG93X3BhdGhfaGFuZGxlX3dh
dGNoZG9nX3RpbWVyCiBfbGxpbnRfc2xvd19wYXRoX2RlYnVnCiBfbGxpbnRfc2xvd19wYXRoX3By
b2ZpbGVfd2lsbF9jYWxsCiBfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwKLV9sbGlu
dF90aHJvd19mcm9tX25hdGl2ZV9jYWxsCiBfbGxpbnRfYmVnaW4KIF9sbGludF9wcm9ncmFtX3By
b2xvZ3VlCiBfbGxpbnRfZXZhbF9wcm9sb2d1ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC01ODksNiArNTg5LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1
bnRpbWVcRHVtcENvbnRleHQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxFcnJvci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVy
cm9yQ29uc3RydWN0b3IuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxFcnJvckhhbmRsaW5nU2NvcGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxFcnJvckluc3RhbmNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcRXJyb3JQcm90b3R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccnVudGltZVxFeGNlcHRpb25IZWxwZXJzLmNwcCIgLz4KQEAgLTc5MSw2ICs3OTIsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1hY3JvQXNzZW1ibGVyWDg2Lmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxNYWNy
b0Fzc2VtYmxlclg4Nl82NC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1i
bGVyXE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxhc3NlbWJsZXJcUmVwYXRjaEJ1ZmZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYXNzZW1ibGVyXFg4NkFzc2VtYmxlci5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYmluZGluZ3NcU2NyaXB0RnVuY3Rpb25DYWxsLmgiIC8+CkBAIC0xMjA0LDYg
KzEyMDYsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxEdW1wQ29udGV4
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvci5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckNvbnN0cnVjdG9yLmgiIC8+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckluc3RhbmNlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yUHJvdG90eXBlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEV4Y2VwdGlvbkhlbHBlcnMu
aCIgLz4KQEAgLTE0MDYsMjIgKzE0MDksNiBAQAogICAgICAgPEZpbGVUeXBlPkRvY3VtZW50PC9G
aWxlVHlwZT4KICAgICA8L05vbmU+CiAgIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAg
IDxNQVNNIEluY2x1ZGU9Ii4uXGppdFxKSVRTdHVic01TVkM2NC5hc20iPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdT
dWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvTUFTTT4KLSAgPC9J
dGVtR3JvdXA+CiAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQu
Q3BwLnRhcmdldHMiIC8+CiAgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+
CiAgICAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXEJ1aWxkQ3VzdG9taXphdGlv
bnNcbWFzbS50YXJnZXRzIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5m
aWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC01MzcsNiArNTM3LDkgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JDb25zdHJ1Y3Rvci5jcHAiPgogICAgICAgPEZpbHRl
cj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5jcHAiPgorICAgICAgPEZpbHRlcj5y
dW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTQ0Miw2ICsxNDQ1LDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxNYWNyb0Fzc2VtYmxlclg4Nl82NC5oIj4KICAg
ICAgIDxGaWx0ZXI+YXNzZW1ibGVyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwuaCI+CisgICAgICA8RmlsdGVyPmFzc2VtYmxlcjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRl
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXFJlcGF0Y2hCdWZmZXIuaCI+
CiAgICAgICA8RmlsdGVyPmFzc2VtYmxlcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAt
MjEyOSw2ICsyMTM1LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJy
b3JDb25zdHJ1Y3Rvci5oIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckhhbmRs
aW5nU2NvcGUuaCI+CisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5j
bHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JJbnN0YW5jZS5o
Ij4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAt
MzI5NSw5ICszMzA0LDQgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSJKYXZhU2NyaXB0Q29yZVBvc3RC
dWlsZC5jbWQiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iSmF2YVNjcmlwdENvcmVQcmVCdWlsZC5j
bWQiIC8+CiAgIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxNQVNNIEluY2x1ZGU9
Ii4uXGppdFxKSVRTdHVic01TVkM2NC5hc20iPgotICAgICAgPEZpbHRlcj5qaXQ8L0ZpbHRlcj4K
LSAgICA8L01BU00+Ci0gIDwvSXRlbUdyb3VwPgogPC9Qcm9qZWN0PgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTAsNiArMjEwLDcgQEAKIAkJMEYzOEIwMTkxN0NGRTc1NTAwQjE0NEQzIC8qIERG
R0NvbXBpbGF0aW9uTW9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjM4QjAxNTE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2Rl
LmNwcCAqLzsgfTsKIAkJMEYzOEIwMUExN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9u
TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYz
OEIwMTYxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uTW9kZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0FDNzUyMTgzRUExMDQw
MDMyMDI5RiAvKiBTdGFja0FsaWdubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYzQUM3NTExODNFQTEwNDAwMzIwMjlGIC8qIFN0YWNrQWxpZ25t
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEYzQUM3NTQxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNBQzc1MzE4OEU1RUM4MDAzMjAy
OUYgLyogRXhpdGluZ0pJVFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjNCM0ExQTE1M0U2OEYyMDAzRUQwRkYgLyogREZHQ29uc3RhbnRG
b2xkaW5nUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYzQjNBMTcxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcCAqLzsgfTsKIAkJMEYzQjNBMUIxNTNFNjhGNDAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9s
ZGluZ1BoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjNCM0ExODE1M0U2OEVGMDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjNCM0Ey
NzE1NDRDOTk1MDAzRUQwRkYgLyogREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0EyNDE1NDRDOTkx
MDAzRUQwRkYgLyogREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAgKi87IH07CkBAIC0yMzYs
NiArMjM3LDEwIEBACiAJCTBGNDY4MEQ1MTRCQkQyNEIwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVy
blZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjQ2ODBEMTE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNDg1MzIxMTg3NzUw
NTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMUYxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRo
TW9kZS5jcHAgKi87IH07CiAJCTBGNDg1MzIyMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1
MzIwMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjQ4NTMyNzE4N0RGREVDMDA4M0I2ODcg
LyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjMxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJs
ZVJlY292ZXJ5LmNwcCAqLzsgfTsKKwkJMEY0ODUzMjgxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2
YWlsYWJsZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjQ4NTMyNDE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3Zlcnku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjQ4
NTMyOTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjUxODdERkRFQzAwODNC
Njg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCAqLzsgfTsKKwkJMEY0ODUzMkExODdERkRFQzAw
ODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMyNjE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3Zl
cnlPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0OTNBRjgxNkQwQ0FE
MTAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJMEY0Qjk0REMxN0I5RjA3
NTAwREQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRCOTREQjE3QjlGMDc1MDBERDAzQTQgLyogVHlwZWRB
cnJheUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjU1NDFCMTE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NTQxQUYxNjEz
QzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmNwcCAqLzsgfTsKQEAgLTI0OCw2ICsyNTMs
OCBAQAogCQkwRjU2QTFENTE1MDAxQ0Y0MDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFENDE1
MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAgKi87IH07CiAJCTBGNTcyRDRG
MTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRo
dW5rR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEY1QTUyRDAxN0FERDcxNzAwOEVDQjJEIC8qIENvcHlUb2tlbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1QTUyQ0YxN0FERDcxNzAw
OEVDQjJEIC8qIENvcHlUb2tlbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTBGNUE2MjgzMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUE2
MjgxMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmNwcCAqLzsgfTsKKwkJMEY1QTYy
ODQxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUE2MjgyMTg4Qzk4RDQwMDcyQzlERiAvKiBG
VExWYWx1ZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFRjkxQjE2ODc4Rjc4
MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLzsgfTsKIAkJMEY1RUY5MUYxNjg3OEY3RDAwM0U1
QzI1IC8qIEpJVFRodW5rcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUYwOENGMTQ2Qzc2
MzMwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGMDhDRTE0NkM3NjJGMDAwNDcyQTkgLyog
VW5jb25kaXRpb25hbEZpbmFsaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0yNjksNiArMjc2LDE4IEBACiAJCTBGNjY2RUNEMTgzNkIzN0Uw
MEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjY2RUNCMTgzNkIzN0UwMEQw
MTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjY2RTE2QjE0REYzRjE2MDBC
N0IyRTQgLyogREZHQWRqYWNlbmN5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY2NkUxNjgxNERGM0YxMzAwQjdCMkU0IC8qIERGR0FkamFjZW5j
eUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRjY2RTE2QzE0REYzRjE2MDBCN0IyRTQgLyogREZHRWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2NkUxNjkxNERGM0YxMzAwQjdCMkU0IC8q
IERGR0VkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjZCMUNCNTE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0IzMTg1RkM5RTkwMDg0
NUQ5NyAvKiBGVExKU0NhbGwuY3BwICovOyB9OworCQkwRjZCMUNCNjE4NUZDOUU5MDA4NDVEOTcg
LyogRlRMSlNDYWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjZCMUNCNDE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQjkxODYxMjQ0QzAw
ODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCNzE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01v
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
RjZCMUNCQTE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCODE4NjEy
NDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQkQxODYxMjQ2QTAwODQ1
RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCQjE4NjEyNDZBMDA4
NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcCAqLzsgfTsK
KwkJMEY2QjFDQkUxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY2QjFDQkMxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTBGNkIxQ0MzMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0JG
MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCAqLzsgfTsKKwkJMEY2
QjFDQzQxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0MwMTg2MkM0NzgwMDg0
NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQzUxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVu
d2luZEluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY2QjFDQzExODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwICovOyB9Owor
CQkwRjZCMUNDNjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQzIxODYyQzQ3ODAwODQ1
RDk3IC8qIEZUTFVud2luZEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjZCMUNDOTE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY2QjFDQzcxODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJu
VGh1bmtzLmNwcCAqLzsgfTsKKwkJMEY2QjFDQ0ExODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hl
Y2tGYWlsUmV0dXJuVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjZCMUNDODE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjcwMjVBOTE3MTRCMEZBMDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzAy
NUE3MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwICovOyB9
OwogCQkwRjcwMjVBQTE3MTRCMEZDMDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjcwMjVB
ODE3MTRCMEY4MDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3MTRDQTQxNkVBOTJG
MDAwRjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3MTRDQTExNkVBOTJFRDAwRjNF
QkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwICovOyB9OwpAQCAtMTM0Niw2
ICsxMzY1LDggQEAKIAkJRkU1OTMyQTgxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU1OTMyQTYx
ODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFQTA4NjIwMTgyQjdBMDQwMEY2RDg1MSAvKiBC
cmVha3BvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRUEwODYxRTE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFQTA4NjIxMTgyQjdBMDQwMEY2
RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZFQTA4NjFGMTgyQjdBMDQwMEY2RDg1MSAvKiBEZWJ1Z2dlclBy
aW1pdGl2ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlGRUI1OEMxNDE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFQjU4QzEyMTg3
QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuY3BwICovOyB9OworCQlGRUI1OEMx
NTE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUI1OEMxMzE4N0I4QjE2MDA5OEVGMEIg
LyogRXJyb3JIYW5kbGluZ1Njb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRkVEMjg3QjIxNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQyODdC
MTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQgLyog
V2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLzsgfTsKIAkJRkVE
OTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0
Y2hkb2cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTYwNSw2ICsxNjI2LDcgQEAKIAkJMEYzOEIwMTUxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0Nv
bXBpbGF0aW9uTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBE
RkdDb21waWxhdGlvbk1vZGUuY3BwOyBwYXRoID0gZGZnL0RGR0NvbXBpbGF0aW9uTW9kZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMzhCMDE2MTdDRkU3NTUwMEIxNDREMyAv
KiBERkdDb21waWxhdGlvbk1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
REZHQ29tcGlsYXRpb25Nb2RlLmg7IHBhdGggPSBkZmcvREZHQ29tcGlsYXRpb25Nb2RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0FDNzUxMTgzRUExMDQwMDMyMDI5RiAvKiBT
dGFja0FsaWdubWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGFja0Fs
aWdubWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjNBQzc1MzE4OEU1RUM4
MDAzMjAyOUYgLyogRXhpdGluZ0pJVFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXhpdGluZ0pJVFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYz
QjNBMTcxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcDsgcGF0aCA9IGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGM0IzQTE4MTUzRTY4RUYwMDNFRDBGRiAvKiBERkdDb25zdGFu
dEZvbGRpbmdQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0IzQTI0MTU0NEM5OTEwMDNFRDBGRiAv
KiBERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IERGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RG
R0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTYzMiw2ICsxNjU0LDEwIEBACiAJCTBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3MiAvKiBIb3N0
Q2FsbFJldHVyblZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhvc3RD
YWxsUmV0dXJuVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0ODUzMUYx
ODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdBcml0aE1vZGUuY3BwOyBwYXRoID0gZGZnL0RGR0FyaXRoTW9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDg1MzIwMTg3NzUwNTYwMDgz
QjY4NyAvKiBERkdBcml0aE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
REZHQXJpdGhNb2RlLmg7IHBhdGggPSBkZmcvREZHQXJpdGhNb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGNDg1MzIzMTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVS
ZWNvdmVyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExBdmFp
bGFibGVSZWNvdmVyeS5jcHA7IHBhdGggPSBmdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ4NTMyNDE4N0RGREVDMDA4M0I2ODcgLyog
RlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
RlRMQXZhaWxhYmxlUmVjb3ZlcnkuaDsgcGF0aCA9IGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ4NTMyNTE4N0RGREVDMDA4M0I2ODcg
LyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gRlRMUmVjb3ZlcnlPcGNvZGUuY3BwOyBwYXRoID0gZnRsL0ZUTFJlY292ZXJ5T3Bjb2Rl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0ODUzMjYxODdERkRFQzAwODNC
Njg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEZUTFJlY292ZXJ5T3Bjb2RlLmg7IHBhdGggPSBmdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0OTNBRjgxNkQwQ0FEMTAwODQ1MDhCIC8q
IFNvdXJjZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNvdXJjZVByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0Qjk0
REIxN0I5RjA3NTAwREQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVkQXJyYXlJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNTU0MUFGMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9pbnRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVjaWFsUG9pbnRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQ0LDYgKzE2NzAsOCBAQAogCQkw
RjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVjdXRpb25Db3VudGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRodW5r
R2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRodW5rR2VuZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUE1MkNGMTdBREQ3MTcwMDhF
Q0IyRCAvKiBDb3B5VG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29w
eVRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUE2MjgxMTg4Qzk4RDQw
MDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEZUTFZhbHVlUmFuZ2UuY3BwOyBwYXRoID0gZnRsL0ZUTFZhbHVlUmFuZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjVBNjI4MjE4OEM5OEQ0MDA3MkM5REYg
LyogRlRMVmFsdWVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExW
YWx1ZVJhbmdlLmg7IHBhdGggPSBmdGwvRlRMVmFsdWVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVFRodW5rcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRU
aHVua3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVGh1bmtzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBV
bmNvbmRpdGlvbmFsRmluYWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE2NjUsNiArMTY5MywxOCBAQAogCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVz
dXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oOyBwYXRoID0gZGZnL0RG
R1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjY2RTE2ODE0REYzRjEzMDBCN0IyRTQgLyogREZHQWRqYWNlbmN5TGlzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBZGphY2VuY3lMaXN0Lmg7IHBhdGgg
PSBkZmcvREZHQWRqYWNlbmN5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjY2RTE2OTE0REYzRjEzMDBCN0IyRTQgLyogREZHRWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdFZGdlLmg7IHBhdGggPSBkZmcvREZHRWRnZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCMzE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEpTQ2FsbC5jcHA7
IHBhdGggPSBmdGwvRlRMSlNDYWxsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MEY2QjFDQjQxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBGVExKU0NhbGwuaDsgcGF0aCA9IGZ0bC9GVExKU0NhbGwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQjcxODYxMjQ0QzAwODQ1RDk3IC8qIEFy
aXR5Q2hlY2tNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyaXR5Q2hl
Y2tNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0I4MTg2MTI0NEMw
MDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGNkIxQ0JCMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNl
cnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQkMxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lz
dGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQkYxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJl
Z2lzdGVyQXRPZmZzZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
RlRMUmVnaXN0ZXJBdE9mZnNldC5jcHA7IHBhdGggPSBmdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0MwMTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEZUTFJlZ2lzdGVyQXRPZmZzZXQuaDsgcGF0aCA9IGZ0bC9GVExSZWdpc3RlckF0T2Zmc2V0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0MxMTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExVbndpbmRJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEZUTFVud2luZEluZm8uY3BwOyBwYXRoID0gZnRsL0ZUTFVud2luZEluZm8uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNDMjE4NjJDNDc4MDA4NDVEOTcgLyogRlRM
VW53aW5kSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExVbndpbmRJ
bmZvLmg7IHBhdGggPSBmdGwvRlRMVW53aW5kSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjZCMUNDNzE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5U
aHVua3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJpdHlDaGVj
a0ZhaWxSZXR1cm5UaHVua3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZC
MUNDODE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MDI1QTcxNzE0QjBGODAwMzgyQzBF
IC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOyBwYXRoID0gZGZnL0RG
R09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGNzAyNUE4MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
Lmg7IHBhdGggPSBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGNzE0Q0ExMTZFQTkyRUQwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQ
cm9wYWdhdGlvblBoYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RGR0JhY2t3YXJk
c1Byb3BhZ2F0aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEx
Niw2ICsyMTU2LDcgQEAKIAkJNjU2MEE0Q0YwNEIzQjNFNzAwOEFFOTUyIC8qIENvcmVGb3VuZGF0
aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29yZUZvdW5kYXRpb24uZnJhbWV3b3Jr
OyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUZvdW5kYXRpb24uZnJhbWV3
b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQk2NTYyMUU2QjA4OUU4NTk3MDA3
NjBGMzUgLyogUHJvcGVydHlTbG90LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3BlcnR5U2xvdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJNjU2MjFFNkMwODlFODU5NzAwNzYwRjM1IC8q
IFByb3BlcnR5U2xvdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcm9wZXJ0eVNsb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB9OworCQk2NTg2MDE3NzE4NUE4RjVFMDAwMzBFRUUgLyogTWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NjU5ODdGMkMxNjdGRTg0QjAwM0MyRjhEIC8qIERGR09TUkV4aXRDb21waWxhdGlvbkluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHT1NSRXhpdENvbXBpbGF0aW9uSW5m
by5oOyBwYXRoID0gZGZnL0RGR09TUkV4aXRDb21waWxhdGlvbkluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjU5ODdGMkYxNjgyOEE3RTAwM0MyRjhEIC8qIFVudXNlZFBvaW50
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW51c2VkUG9pbnRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUMwMjg0RjE3MTc5NUUyMDAzNTFFMzUgLyog
QVJNdjdEaXNhc3NlbWJsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQVJNdjdEaXNhc3NlbWJsZXIuY3BwOyBwYXRoID0gZGlzYXNzZW1ibGVyL0FSTXY3RGlzYXNz
ZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3ODMsNiArMjgyNCw4
IEBACiAJCUZFNTkzMkE2MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVk1FbnRyeVNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUZFQTA4NjFFMTgyQjdBMDQwMEY2RDg1MSAvKiBCcmVha3BvaW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJyZWFrcG9pbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBMDg2MUYxODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2Vy
UHJpbWl0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWJ1Z2dlclBy
aW1pdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVCNThDMTIxODdCOEIx
NjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBFcnJvckhhbmRsaW5nU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGRUI1OEMxMzE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Nj
b3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVycm9ySGFuZGxpbmdTY29w
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQyODdCMTE1RUM5QTU3MDBEQTgx
NjEgLyogTExJbnRPcGNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTExJ
bnRPcGNvZGUuaDsgcGF0aCA9IGxsaW50L0xMSW50T3Bjb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXRjaGRvZy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRDk0RjJDMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRv
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXRjaGRvZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAwMSw2ICszMDQ0LDggQEAKIAkJCQkwRkVBMEExODE3
MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwLmggKi8sCiAJCQkJMEZFQTBBMTkxNzA4
QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwICovLAogCQkJCTBG
RUEwQTFBMTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggKi8s
CisJCQkJMEY0ODUzMjMxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNw
cCAqLywKKwkJCQkwRjQ4NTMyNDE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3Zl
cnkuaCAqLywKIAkJCQkwRkVBMDlGRTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJpbGl0aWVz
LmNwcCAqLywKIAkJCQkwRkVBMDlGRjE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJpbGl0aWVz
LmggKi8sCiAJCQkJMEZFQTBBMjUxNzA5NjIzQjAwQkI3MjJDIC8qIEZUTENvbW1vblZhbHVlcy5j
cHAgKi8sCkBAIC0zMDMxLDYgKzMwNzYsOCBAQAogCQkJCTBGRUEwQTAzMTcwNTEzREIwMEJCNzIy
QyAvKiBGVExKSVRDb2RlLmggKi8sCiAJCQkJQTc4QTk3N0QxNzk3MzhENTAwOURGNzQ0IC8qIEZU
TEpJVEZpbmFsaXplci5jcHAgKi8sCiAJCQkJQTc4QTk3N0UxNzk3MzhENTAwOURGNzQ0IC8qIEZU
TEpJVEZpbmFsaXplci5oICovLAorCQkJCTBGNkIxQ0IzMTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExK
U0NhbGwuY3BwICovLAorCQkJCTBGNkIxQ0I0MTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwu
aCAqLywKIAkJCQkwRjhGMkI5MzE3MkUwNDlFMDA3REJEQTUgLyogRlRMTGluay5jcHAgKi8sCiAJ
CQkJMEY4RjJCOTQxNzJFMDQ5RTAwN0RCREE1IC8qIEZUTExpbmsuaCAqLywKIAkJCQkwRkNFRkFE
RDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uY3BwICovLApAQCAtMzA0Nyw2ICszMDk0
LDEwIEBACiAJCQkJMEYyMzVCQ0ExNzE3OEUxQzAwNjkwQzdGIC8qIEZUTE9TUkV4aXRDb21waWxl
ci5oICovLAogCQkJCTBGRUEwQTI5MTcwOTYyOTYwMEJCNzIyQyAvKiBGVExPdXRwdXQuY3BwICov
LAogCQkJCTBGRUEwQTA2MTcwNTEzREIwMEJCNzIyQyAvKiBGVExPdXRwdXQuaCAqLywKKwkJCQkw
RjQ4NTMyNTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwICovLAorCQkJ
CTBGNDg1MzI2MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oICovLAorCQkJ
CTBGNkIxQ0JGMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCAqLywK
KwkJCQkwRjZCMUNDMDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5oICov
LAogCQkJCTBGQ0VGQUE5MTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5jcHAgKi8s
CiAJCQkJMEZDRUZBQUExODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmggKi8sCiAJ
CQkJMEYyNUYxQUExODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbC5jcHAgKi8sCkBA
IC0zMDYxLDkgKzMxMTIsMTMgQEAKIAkJCQkwRjIzNUJDQjE3MTc4RTFDMDA2OTBDN0YgLyogRlRM
VGh1bmtzLmNwcCAqLywKIAkJCQkwRjIzNUJDQzE3MTc4RTFDMDA2OTBDN0YgLyogRlRMVGh1bmtz
LmggKi8sCiAJCQkJMEZFQTBBMUIxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTFR5cGVkUG9pbnRlci5o
ICovLAorCQkJCTBGNkIxQ0MxMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmNwcCAq
LywKKwkJCQkwRjZCMUNDMjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oICovLAog
CQkJCTBGMjM1QkNEMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExWYWx1ZUZvcm1hdC5jcHAgKi8sCiAJ
CQkJMEYyMzVCQ0UxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFZhbHVlRm9ybWF0LmggKi8sCiAJCQkJ
MEZEQjJDQzgxNzNEQTUxRTAwN0IzQzFCIC8qIEZUTFZhbHVlRnJvbUJsb2NrLmggKi8sCisJCQkJ
MEY1QTYyODExODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuY3BwICovLAorCQkJCTBG
NUE2MjgyMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmggKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IGZ0bDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTUyLDYgKzMyMDcs
OCBAQAogCQkxNDI5RDkyQzBFRDIyRDcwMDBCODk2MTkgLyogaml0ICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkwRjZCMUNDNzE4NjQxREY4MDA4NDVEOTcg
LyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwICovLAorCQkJCTBGNkIxQ0M4MTg2NDFE
RjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oICovLAogCQkJCTBGMjRF
NTNCMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuY3BwICovLAogCQkJCTBGMjRF
NTNDMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuaCAqLywKIAkJCQkwRjI0RTUz
RDE3RUE5RjU5MDBBQkIyMTcgLyogQ0NhbGxIZWxwZXJzLmggKi8sCkBAIC0zMjA1LDYgKzMyNjIs
OCBAQAogCQkJCTBGQzcxMkUxMTdDRDg3OEYwMDhDQzkzQyAvKiBKSVRUb0RGR0RlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjay5oICovLAogCQkJCUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBK
SVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJ
bnRlcmZhY2VKSVQuaCAqLywKKwkJCQkwRjZCMUNCQjE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcCAqLywKKwkJCQkwRjZCMUNCQzE4NjEy
NDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggKi8s
CiAJCQkJMEZDMzE0MTQxODE0NkQ3MDAwMDMzMjMyIC8qIFJlZ2lzdGVyU2V0LmNwcCAqLywKIAkJ
CQkwRkMzMTQxMDE4MTQ1NTkxMDAwMzMyMzIgLyogUmVnaXN0ZXJTZXQuaCAqLywKIAkJCQkwRjI0
RTU0OTE3RUUyNzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5jcHAgKi8sCkBAIC0zNTU0LDYgKzM2MTMs
NyBAQAogCQkJCUE3NjE0MEM4MTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvckNv
bnN0cnVjdG9yLmggKi8sCiAJCQkJQTc2MTQwQzkxODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3VtZW50
c0l0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLywKIAkJCQlBNzYxNDBDQTE4Mjk4MkNCMDA3NTA2MjQg
LyogQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuaCAqLywKKwkJCQkwRjZCMUNCNzE4NjEyNDRD
MDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUuaCAqLywKIAkJCQlBN0E4QUYyNTE3QURCNUYyMDA1
QUIxNzQgLyogQXJyYXlCdWZmZXIuY3BwICovLAogCQkJCUE3QThBRjI2MTdBREI1RjMwMDVBQjE3
NCAvKiBBcnJheUJ1ZmZlci5oICovLAogCQkJCTBGRkM5OUQyMTg0RUUzMTgwMDlDMTBBQiAvKiBB
cnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuY3BwICovLApAQCAtMzYxOCw2ICszNjc4LDgg
QEAKIAkJCQlCQzMwNDYwNjBFMUY0OTdGMDAzMjMyQ0YgLyogRXJyb3IuaCAqLywKIAkJCQlCQzAy
RTkwNDBFMTgzOURCMDAwRjkyOTcgLyogRXJyb3JDb25zdHJ1Y3Rvci5jcHAgKi8sCiAJCQkJQkMw
MkU5MDUwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yQ29uc3RydWN0b3IuaCAqLywKKwkJCQlGRUI1
OEMxMjE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCAqLywKKwkJCQlG
RUI1OEMxMzE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggKi8sCiAJCQkJ
QkMwMkU5OEEwRTE4M0UzODAwMEY5Mjk3IC8qIEVycm9ySW5zdGFuY2UuY3BwICovLAogCQkJCUJD
MDJFOThCMEUxODNFMzgwMDBGOTI5NyAvKiBFcnJvckluc3RhbmNlLmggKi8sCiAJCQkJQkMwMkU5
MDYwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yUHJvdG90eXBlLmNwcCAqLywKQEAgLTM4NTEsNiAr
MzkxMyw3IEBACiAJCQkJRjY5MkE4N0MwMjU1NTk3RDAxRkY2MEY3IC8qIFJlZ0V4cE9iamVjdC5o
ICovLAogCQkJCUJDRDIwMkJGMEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBQcm90b3R5cGUuY3Bw
ICovLAogCQkJCUJDRDIwMkMwMEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBQcm90b3R5cGUuaCAq
LywKKwkJCQkwRjZCMUNCODE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25N
b2RlLmggKi8sCiAJCQkJMEZCN0YzOTExNUVEOEUzODAwRjE2N0IyIC8qIFJlamVjdC5oICovLAog
CQkJCTBGNzcwMDkxMTQwMkZGMjgwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIuY3BwICovLAog
CQkJCTBGNzcwMDhFMTQwMkZERDYwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIuaCAqLywKQEAg
LTM5NjUsNiArNDAyOCw4IEBACiAJCTg2RUM5REIzMTMyOERGNDQwMDJCMkFENyAvKiBkZmcgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJBQ0NGM0RDMTg1
RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2UuY3BwICovLAorCQkJ
CTJBQ0NGM0REMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2Uu
aCAqLywKIAkJCQlBNzdBNDIzNjE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmNw
cCAqLywKIAkJCQlBNzdBNDIzNzE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmgg
Ki8sCiAJCQkJQTcwNEQ4RkUxN0EwQkFBODAwNkJBNTU0IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0
ZXIuaCAqLywKQEAgLTQxNTMsOCArNDIxOCw2IEBACiAJCQkJMEZDMjBDQjgxODU1NkEzNTAwQzlF
OTU0IC8qIERGR1NTQUxvd2VyaW5nUGhhc2UuaCAqLywKIAkJCQkwRjlGQjRGMjE3RkNCOTE3MDBD
QjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAgKi8sCiAJCQkJMEY5RkI0RjMxN0ZDQjkx
NzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhhc2UuaCAqLywKLQkJCQkyQUNDRjNEQzE4NUZF
MjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCAqLywKLQkJCQky
QUNDRjNERDE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmgg
Ki8sCiAJCQkJMEZDMjBDQjMxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuY3BwICovLAogCQkJCTBGQzIwQ0I0MTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0
aFJlZHVjdGlvblBoYXNlLmggKi8sCiAJCQkJMEY2Mzk0NzYxNURDRTM0NzAwNkE1OTdDIC8qIERG
R1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCAqLywKQEAgLTQyNTAsNiArNDMxMyw3IEBACiAJCTk2
ODhDQjEyMEVEMTJCNEUwMDFENjQ5RiAvKiBhc3NlbWJsZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTY1ODYwMTc3MTg1QThGNUUwMDAzMEVFRSAvKiBN
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oICovLAogCQkJCTg2MDE2MURGMEYzQTgzQzEw
MEY4NDcxMCAvKiBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggKi8sCiAJCQkJODY0MDkyM0IxNTZF
RUQzQjAwNTY2Q0IyIC8qIEFSTTY0QXNzZW1ibGVyLmggKi8sCiAJCQkJODZEM0IyQkYxMDE1NkJE
RTAwMjg2NUU3IC8qIEFSTUFzc2VtYmxlci5jcHAgKi8sCkBAIC00MzIyLDYgKzQzODYsNyBAQAog
CQkJCTk2OUEwNzkyMEVEMUQzQUUwMEYxRjY4MSAvKiBFdmFsQ29kZUNhY2hlLmggKi8sCiAJCQkJ
MEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIuY3BwICovLAogCQkJ
CTBGNTZBMUQxMTUwMDBGMzEwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggKi8sCisJCQkJ
MEYzQUM3NTMxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggKi8sCiAJCQkJMEZC
MTA1ODIxNjc1NDgwQzAwRjhBQjZFIC8qIEV4aXRLaW5kLmNwcCAqLywKIAkJCQkwRkIxMDU4MzE2
NzU0ODBDMDBGOEFCNkUgLyogRXhpdEtpbmQuaCAqLywKIAkJCQkwRjBCODNBQTE0QkNGNUI5MDA4
ODVCNEYgLyogRXhwcmVzc2lvblJhbmdlSW5mby5oICovLApAQCAtNDU0MSwxMyArNDYwNiwxNCBA
QAogCQkJCTg2QUREMTQ1MEZEREVBOTgwMDA2RUVDMiAvKiBBUk12N0Fzc2VtYmxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVDRUVFMTUxODdGM0JBRDAwRTU1Qzk5IC8qIEluc3BlY3RvckFnZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUMwMjg1RDE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdE
T3Bjb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkyQTY4Mjk1QjE4NzVGODA1MDBCNkMzRTIgLyog
Q29weVdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkE0RUM5MEMxODYwRDZDMjAw
OTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisgCQkJCTJBNjgy
OTVCMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywK
KyAgICAgICAgICAgICAgICAyQTRFQzkwQzE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVy
QnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJBODE4M0M1QTI2MDBBMUVDQ0MgLyog
Vk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MzE4NTY5NzA5MDAyRUQ2
OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3MucHkgaW4gSGVhZGVycyAqLywKLQkJ
CQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weSBp
biBIZWFkZXJzICovLAorIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVy
YXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTRGMTdFRTI3NDkwMEFC
QjIxNyAvKiBUZW1wUmVnaXN0ZXJTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MEU0QjY0MTg4
MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRkVCNThDMTUxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCRkYzQzAxNzk4Njg5NDAwMDJGNDYyIC8qIERGR0ZpbHRy
YXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTI3MTg3Qzk4MUUwMDg0M0Ix
MCAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLywKIAkJCQlDMkZDQUUxMTE3QTlDMjRFMDAzNEM3
MzUgLyogQnl0ZWNvZGVCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLywKQEAgLTQ1NTYsNyArNDYy
Miw3IEBACiAJCQkJMEY4MzM1QjgxNjM5QzFFQTAwMTQ0M0I1IC8qIEFycmF5QWxsb2NhdGlvblBy
b2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTI5MTg3Q0E1RTYwMDg0M0IxMCAvKiBp
bmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSBpbiBIZWFkZXJzICov
LAogCQkJCUE1ODQwRTJCMTg3Q0E3NUIwMDg0M0IxMCAvKiBqc21pbi5weSBpbiBIZWFkZXJzICov
LAotCQkJCUE1MzI0Mzk4MTg1NkE0ODkwMDJFRDY5MiAvKiBJbnNwZWN0b3JKUy5qc29uIGluIEhl
YWRlcnMgKi8sCisgCQkJCUE1MzI0Mzk4MTg1NkE0ODkwMDJFRDY5MiAvKiBJbnNwZWN0b3JKUy5q
c29uIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMkExODdDQTc1OTAwODQzQjEwIC8qIHh4ZC5w
bCBpbiBIZWFkZXJzICovLAogCQkJCUZFQTA4NjIwMTgyQjdBMDQwMEY2RDg1MSAvKiBCcmVha3Bv
aW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0E4QUYzNTE3QURCNUYzMDA1QUIxNzQgLyogQXJy
YXlCdWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNDYyNCw2ICs0NjkwLDcgQEAKIAkJCQlDMkVB
QTNGQTE0OUE4MzVFMDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUMyQzhEMDJEMTRBM0M2RTAwMDU3OEU2NSAvKiBDb3BpZWRTcGFjZUlubGluZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNUE1MkQwMTdBREQ3MTcwMDhFQ0IyRCAvKiBDb3B5VG9rZW4uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNkIxQ0M2MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZv
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjIzOUQxODE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZp
c2l0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyMjM5RDE5MTYyNjJCREQwMDVBQzVGRCAvKiBD
b3B5VmlzaXRvcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyMThEMTQwMTY1NUNGRDUw
MDYyQkI4MSAvKiBDb3B5V29ya0xpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtNDY2NSw3ICs0NzMy
LDggQEAKIAkJCQkwRjgzNjRCNzE2NEIwQzExMDA1MzMyOUEgLyogREZHQnJhbmNoRGlyZWN0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUEwMDlDMDE4MzFBMjJEMDBDRjg3MTEgLyogTWFjcm9B
c3NlbWJsZXJBUk02NC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlEQzUxMzI4REY4MjAwMkIy
QUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTkzQ0Y4NzE4
NDAzOENBMDBCRkNFMjcgLyogSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY0ODUzMjgxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5Lmgg
aW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICBBNTkzQ0Y4NzE4NDAzOENBMDBCRkNFMjcg
LyogSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNTZDMzYx
NjI3QjBBRDAwN0YyNzgzIC8qIERGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdCMjk0QjE0QzNDRDJGMDA3QzNEQjEgLyogREZHQ2Fw
YWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZGQzk1ODE0RUY5MEEyMDBDNzI1MzIg
LyogREZHQ0ZBUGhhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtNDY5OSw2ICs0NzY3LDcgQEAKIAkJ
CQkwRkJDMEFFODE0OTZDN0M3MDBENEZCREQgLyogREZHRXhpdFByb2ZpbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3OEE5Nzc1MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGYWlsZWRGaW5hbGl6ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3OEE5Nzc3MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGaW5h
bGl6ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0I2MTg1RkM5RTkwMDg0NUQ5NyAvKiBG
VExKU0NhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzE2MTUxQzVENEYwMENEODkxMCAv
KiBERkdGaXh1cFBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlEMzM5NzE3RkZDNEU2MDA3
M0MyQkMgLyogREZHRmx1c2hlZEF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4OUNGODE3QTBC
OENDMDA3NzNBRDggLyogREZHRmx1c2hGb3JtYXQuaCBpbiBIZWFkZXJzICovLApAQCAtNDczNSw2
ICs0ODA0LDcgQEAKIAkJCQkwRkQ4QTMyNjE3RDUxRjU3MDBDQTJDNDAgLyogREZHT1NSRW50cnlw
b2ludENyZWF0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzA5NzZBMTQ2OEE2Rjcw
MENGMjQ0MiAvKiBERkdPU1JFeGl0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZDOTlEMTE4NEVD
OEFEMDA5QzEwQUIgLyogQ29uc3RhbnRNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNC
QTE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjIzNUJFQzE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NSRXhpdEJhc2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1QkExNUVEMTgyMzQwQjQwMEE4MkU2OSAvKiBSZW1vdGVJbnNw
ZWN0b3JYUENDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZCOTIxQzE2RDAyRjEx
MDA1NUE1REIgLyogREZHT1NSRXhpdENvbXBpbGF0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8sCkBA
IC00ODAzLDYgKzQ4NzMsNyBAQAogCQkJCTBGRUEwQTFGMTcwOEIwMDcwMEJCNzIyQyAvKiBGVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTk0NTU5MzE4MjQ3
NDQ3MDBDQzM4NDMgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVBMEEwQTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJpbGl0aWVzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjQ4NTMyQTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNv
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTIzMTcwOTYwNjkwMEJCNzIyQyAvKiBGVExD
b21tb25WYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBDMTcwNTEzREIwMEJCNzIy
QyAvKiBGVExDb21waWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjIzNUJENDE3MTc4RTFDMDA2
OTBDN0YgLyogRlRMRXhpdEFyZ3VtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTQ4MTksNiArNDg5
MCw3IEBACiAJCQkJMEZFQTBBMjQxNzA5NjA2OTAwQkI3MjJDIC8qIEZUTEludHJpbnNpY1JlcG9z
aXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBFMTcwNTEzREIwMEJCNzIyQyAvKiBG
VExKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc4MTE3OTczOEQ1MDA5REY3NDQg
LyogRlRMSklURmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVBNjI4NDE4OEM5OEQ0
MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RjJCOTYx
NzJFMDRBMzAwN0RCREE1IC8qIEZUTExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQ0VGQUUw
MTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
QTBBMTAxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTExvd2VyREZHVG9MTFZNLmggaW4gSGVhZGVycyAq
LywKQEAgLTQ5MDEsNiArNDk3Myw3IEBACiAJCQkJMEZDMjBDQjYxODUyRTJDNjAwQzlFOTU0IC8q
IERGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjE0RTFG
MTgxMjRBQ0UwMDlCNkI0RCAvKiBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODZDQzg1QTEwRUU3OUE0NzAwMjg4NjgyIC8qIEpJVElubGluZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNkIxQ0JFMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZh
dGlvbldyYXBwZXJHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTREMTdFRTI3
NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzkwREQ3
MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbldyYXBwZXJzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTQ5MTYsNiArNDk4OSw3IEBACiAJCQkJMEZDNzEyRTMxN0NEODc5MzAwOEND
OTNDIC8qIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzZGNTRBMzEzQjI4QUFCMDBFRjJCQ0UgLyogSklUV3JpdGVCYXJyaWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzE4QzQxNjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNBY3RpdmF0aW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNCOTE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlD
aGVja01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0MDQ4MDEzMTAyMUExRDkwMDhFN0YwMSAv
KiBKU0FQSVZhbHVlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzJDRjM5QzIxNkUxNUE4
MTAwREQ2OUJFIC8qIEpTQVBJV3JhcHBlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc2
MTQwRDIxODI5ODJDQjAwNzUwNjI0IC8qIEpTQXJndW1lbnRzSXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovLApAQCAtNDk2OSw2ICs1MDQzLDggQEAKIAkJCQlCQzE4QzQyMzBFMTZGNUNEMDBCMzQ0NjAg
LyogSlNMb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjVENzA5QzE2REU5OUY0MDBGQ0E2QkMg
LyogSlNNYW5hZ2VkVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzQyMTdDQkU4RUIw
MEMzRTY0MyAvKiBKU01hcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzQUM3NTQxODhFNUVDODAw
MzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNDNDE4
NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTQ4NzRBRTQxNUVCREU0QTAwMkUzNTg3IC8qIEpTTmFtZVNjb3BlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzQyNDBFMTZGNUNEMDBCMzQ0NjAgLyogSlNPYmplY3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDI1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU09iamVjdFJlZi5oIGluIEhl
YWRlcnMgKi8sCkBAIC01MjczLDYgKzUzNDksNyBAQAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFE
NjQ5RiAvKiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MTUzOUI5MTJEQzk5
NDUwMEVGN0FDNCAvKiBZYXJyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY2NkVDRDE4MzZCMzdF
MDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjZCMUNDQTE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg1MTJEQkEzMzcwMEE5RkU3QiAv
KiBZYXJySW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NUQ5M0E2MTg1MDEyQTgw
MDQwMERFRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0
Qjg3MTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJySklULmggaW4gSGVhZGVycyAqLywKQEAgLTU3MTYs
NiArNTc5Myw3IEBACiAJCQkJMTQyOUQ4REQwRUQyMjA1QjAwQjg5NjE5IC8qIENhbGxGcmFtZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBCODNCMDE0QkNGNzE2MDA4ODVCNEYgLyogQ2FsbExp
bmtJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1MTNFNUI3MTg1QjhCRDMwMDdFOTVBRCAv
KiBJbmplY3RlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjVBNjI4MzE4OEM5OEQ0
MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkzMzI5
RDE0Q0E3REMzMDA4NUYzQzYgLyogQ2FsbExpbmtTdGF0dXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEY3M0Q3QUUxNjVBMTQyRDAwQUNBQjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTY5QTA3OTYwRUQxRDNBRTAwRjFGNjgxIC8qIENvZGVCbG9j
ay5jcHAgaW4gU291cmNlcyAqLywKQEAgLTU3NTQsNiArNTgzMiw3IEBACiAJCQkJMEY2Mzk0ODQx
NUU0ODExODAwNkE1OTdDIC8qIERGR0FycmF5TW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
N0Q5QTI5NDE3QTBCQzc0MDBFRTI2MTggLyogREZHQXRUYWlsQWJzdHJhY3RTdGF0ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjcxNENBNDE2RUE5MkYwMDBGM0VCRUIgLyogREZHQmFja3dhcmRz
UHJvcGFnYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRUI1OEMxNDE4N0I4QjE2
MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
RDg5Q0YyMTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCYXNpY0Jsb2NrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE3MEIwODMyMTdBMEI3OUIwMERBRjE0QiAvKiBERkdCaW5hcnlTd2l0Y2guY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRjMxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5z
ZXJ0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTgzMSw5ICs1OTEwLDExIEBACiAJCQkJ
ODY4ODBGNEQxNDM1M0IyMTAwQjA4RDQyIC8qIERGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTdEODlDRkYxN0EwQjhDQzAwNzczQUQ4IC8qIERGR1NTQUNvbnZlcnNp
b25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlGQjRGNDE3RkNCOTE3MDBDQjY3Rjgg
LyogREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZCMUNCRDE4
NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5N0ExMTQ2QjI4Q0EwMENGMjQ0MiAvKiBERkdUaHVu
a3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEOEEzMjcxN0Q1MUY1NzAwQ0EyQzQwIC8qIERG
R1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEOEEz
MjkxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNDg1MzI3MTg3REZERUMwMDgzQjY4NyAvKiBGVExB
dmFpbGFibGVSZWNvdmVyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyQjE3RDUxRjU3
MDBDQTJDNDAgLyogREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYzOTQ0MDE1Qzc1RjFEMDA2QTU5N0MgLyogREZH
VHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkJFMEY3NjE2
QzFEQjBGMDA4MkM1RTggLyogREZHVW5pZmljYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTU4OTIsOSArNTk3MywxMSBAQAogCQkJCTBGQ0VGQUFCMTgwNEMxM0UwMDQ3MkNFNCAvKiBG
VExTYXZlUmVzdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI1RjFCMTE4MTYzNUYzMDA1
MjJGMzkgLyogRlRMU2xvd1BhdGhDYWxsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjVGMUIz
MTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0aENhbGxLZXkuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMEY2QjFDQzUxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY5RDMzOUExODAzQURCNzAwNzNDMkJDIC8qIEZUTFN0YWNrTWFwcy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBMEExNjE3MDZCQjkwMDBCQjcyMkMgLyogRlRMU3Rh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJN0MwMDhDRDIxODZGOEE5MzAwOTU1QzI0IC8qIEpT
UHJvbWlzZUZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKyAJCQkJN0MwMDhDRDIxODZGOEE5
MzAwOTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RjZCMUNCNTE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMjM1QkUxMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExUaHVua3MuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTU5M0NGN0MxODQwMzYwMzAwQkZDRTI3IC8qIEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjM1QkUzMTcxNzhFMUMwMDY5MEM3RiAv
KiBGVExWYWx1ZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTU5ODAsNiArNjA2Myw3IEBA
CiAJCQkJMTQyODA4NzUxMDdFQzEzRTAwMTNFN0IyIC8qIEpTTG9jay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDMjVENzA5QjE2REU5OUY0MDBGQ0E2QkMgLyogSlNNYW5hZ2VkVmFsdWUubW0gaW4g
U291cmNlcyAqLywKIAkJCQlBNzAwODc0MTE3Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY0ODUzMjkxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5
T3Bjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0ODc0QUUzMTVFQkRFNEEwMDJFMzU4NyAv
KiBKU05hbWVTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzI3MDA5MDBEQUM2QkJDMDBF
NTQ4RDcgLyogSlNOb3RBbk9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlENDEw
N0VDMzc2MDA0MjdBNDggLyogSlNPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02MDk2LDYg
KzYxODAsNyBAQAogCQkJCTBGNjY2RUNDMTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rp
b25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCMTA1OEIxNjc1
NDgzMTAwRjhBQjZFIC8qIFByb2ZpbGVyT1NSRXhpdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkIxMDU4RDE2NzU0ODM3MDBGOEFCNkUgLyogUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRjZCMUNDMzE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9m
ZnNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjEzOTEyQjE2NzcxQzNBMDA5Q0NCMDcgLyog
UHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0ZCNjBB
NDEwM0Y3REMyMDAxN0EyODYgLyogUHJvcGVydHlEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0NDY5REU3MTA3RUM3RTcwMDY1MDQ0NiAvKiBQcm9wZXJ0eU5hbWVBcnJheS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTYxMjUsNiArNjIxMCw3IEBACiAJCQkJMEY4RjJCOUUxNzMwNkM4
RDAwN0RCREE1IC8qIFNvdXJjZUNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0OTNBRkEx
NkQwQ0FEMzAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUU0OURDMTZCMTJFRjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTBGNkIxQ0M5MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBDRDRDNDE1RjZCNkJCMDAz
MkYxQzAgLyogU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU1
NDFCMTE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZEODJFODYxNDFGM0ZGMTAwMTc5Qzk0IC8qIFNwZWN1bGF0ZWRUeXBlLmNwcCBpbiBT
b3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFz
c2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QVJNNjRBc3NlbWJsZXIuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNCAr
NDAsMjYgQEAKICNkZWZpbmUgREFUQVNJWkUgREFUQVNJWkVfT0YoZGF0YXNpemUpCiAjZGVmaW5l
IE1FTU9QU0laRSBNRU1PUFNJWkVfT0YoZGF0YXNpemUpCiAjZGVmaW5lIENIRUNLX0ZQX01FTU9Q
X0RBVEFTSVpFKCkgQVNTRVJUKGRhdGFzaXplID09IDggfHwgZGF0YXNpemUgPT0gMTYgfHwgZGF0
YXNpemUgPT0gMzIgfHwgZGF0YXNpemUgPT0gNjQgfHwgZGF0YXNpemUgPT0gMTI4KQorI2RlZmlu
ZSBNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSkgKChkYXRhc2l6ZSA9PSA2NCkgPyBNZW1QYWly
T3BfNjQgOiBNZW1QYWlyT3BfMzIpCisjZGVmaW5lIE1FTVBBSVJPUFNJWkVfRlAoZGF0YXNpemUp
ICgoZGF0YXNpemUgPT0gMTI4KSA/IE1lbVBhaXJPcF9WMTI4IDogKGRhdGFzaXplID09IDY0KSA/
IE1lbVBhaXJPcF9WNjQgOiBNZW1QYWlyT3BfMzIpCiAKIG5hbWVzcGFjZSBKU0MgewogCitBTFdB
WVNfSU5MSU5FIGJvb2wgaXNJbnQ3KGludDMyX3QgdmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVl
ID09ICgodmFsdWUgPDwgMjUpID4+IDI1KTsKK30KKwogQUxXQVlTX0lOTElORSBib29sIGlzSW50
OShpbnQzMl90IHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDIzKSA+
PiAyMyk7CiB9CiAKK0FMV0FZU19JTkxJTkUgYm9vbCBpc0ludDExKGludDMyX3QgdmFsdWUpCit7
CisgICAgcmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMjEpID4+IDIxKTsKK30KKwogQUxXQVlT
X0lOTElORSBib29sIGlzVUludDUoaW50MzJfdCB2YWx1ZSkKIHsKICAgICByZXR1cm4gISh2YWx1
ZSAmIH4weDFmKTsKQEAgLTExOSw2ICsxMzEsMzQgQEAgcHJpdmF0ZToKICAgICBpbnQgbV92YWx1
ZTsKIH07CiAKK2NsYXNzIFBhaXJQb3N0SW5kZXggeworcHVibGljOgorICAgIGV4cGxpY2l0IFBh
aXJQb3N0SW5kZXgoaW50IHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUpCisgICAgewor
ICAgICAgICBBU1NFUlQoaXNJbnQxMSh2YWx1ZSkpOworICAgIH0KKworICAgIG9wZXJhdG9yIGlu
dCgpIHsgcmV0dXJuIG1fdmFsdWU7IH0KKworcHJpdmF0ZToKKyAgICBpbnQgbV92YWx1ZTsKK307
CisKK2NsYXNzIFBhaXJQcmVJbmRleCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGFpclByZUlu
ZGV4KGludCB2YWx1ZSkKKyAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzSW50MTEodmFsdWUpKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBpbnQoKSB7IHJl
dHVybiBtX3ZhbHVlOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fdmFsdWU7Cit9OworCiBjbGFz
cyBMb2dpY2FsSW1tZWRpYXRlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTG9naWNhbEltbWVkaWF0
ZSBjcmVhdGUzMih1aW50MzJfdCB2YWx1ZSkKQEAgLTgyMyw2ICs4NjMsMTYgQEAgcHJpdmF0ZToK
ICAgICAgICAgTWVtT3BfTE9BRF9zaWduZWQzMiA9IDMgLy8gc2l6ZSBtYXkgYmUgMCBvciAxCiAg
ICAgfTsKIAorICAgIGVudW0gTWVtUGFpck9wU2l6ZSB7CisgICAgICAgIE1lbVBhaXJPcF8zMiA9
IDAsCisgICAgICAgIE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyID0gMSwKKyAgICAgICAgTWVtUGFp
ck9wXzY0ID0gMiwKKworICAgICAgICBNZW1QYWlyT3BfVjMyID0gTWVtUGFpck9wXzMyLAorICAg
ICAgICBNZW1QYWlyT3BfVjY0ID0gMSwKKyAgICAgICAgTWVtUGFpck9wX1YxMjggPSAyCisgICAg
fTsKKwogICAgIGVudW0gTW92ZVdpZGVPcCB7CiAgICAgICAgIE1vdmVXaWRlT3BfTiA9IDAsCiAg
ICAgICAgIE1vdmVXaWRlT3BfWiA9IDIsCkBAIC04MzYsNiArODg2LDE0IEBAIHByaXZhdGU6CiAg
ICAgICAgIExkckxpdGVyYWxPcF8xMjhCSVQgPSAyCiAgICAgfTsKIAorICAgIHN0YXRpYyB1bnNp
Z25lZCBtZW1QYWlyT2Zmc2V0U2hpZnQoYm9vbCBWLCBNZW1QYWlyT3BTaXplIHNpemUpCisgICAg
eworICAgICAgICAvLyByZXR1cm4gdGhlIGxvZzIgb2YgdGhlIHNpemUgaW4gYnl0ZXMsIGUuZy4g
NjQgYml0IHNpemUgcmV0dXJucyAzCisgICAgICAgIGlmIChWKQorICAgICAgICAgICAgcmV0dXJu
IHNpemUgKyAyOworICAgICAgICByZXR1cm4gKHNpemUgPj4gMSkgKyAyOworICAgIH0KKwogcHVi
bGljOgogICAgIC8vIEludGVnZXIgSW5zdHJ1Y3Rpb25zOgogCkBAIC04NzEsOCArOTI5LDkgQEAg
cHVibGljOgogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhZGQoUmVnaXN0ZXJJRCByZCwgUmVnaXN0
ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSwgU2hpZnRUeXBlIHNoaWZ0LCBpbnQgYW1vdW50KQogICAg
IHsKICAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKLSAgICAgICAgaWYgKGlzU3Aocm4pKSB7Cisg
ICAgICAgIGlmIChpc1NwKHJkKSB8fCBpc1NwKHJuKSkgewogICAgICAgICAgICAgQVNTRVJUKHNo
aWZ0ID09IExTTCk7CisgICAgICAgICAgICBBU1NFUlQoIWlzU3Aocm0pKTsKICAgICAgICAgICAg
IGFkZDxkYXRhc2l6ZSwgc2V0RmxhZ3M+KHJkLCBybiwgcm0sIFVYVFgsIGFtb3VudCk7CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgaW5zbihhZGRTdWJ0cmFjdFNoaWZ0ZWRSZWdpc3RlcihE
QVRBU0laRSwgQWRkT3BfQURELCBzZXRGbGFncywgc2hpZnQsIHJtLCBhbW91bnQsIHJuLCByZCkp
OwpAQCAtMTIxNiw2ICsxMjc1LDIwIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxp
bnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGxkcChSZWdpc3RlcklEIHJ0LCBS
ZWdpc3RlcklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwgUGFpclBvc3RJbmRleCBzaW1tKQorICAgIHsK
KyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3Rl
clBhaXJQb3N0SW5kZXgoTUVNUEFJUk9QU0laRV9JTlQoZGF0YXNpemUpLCBmYWxzZSwgTWVtT3Bf
TE9BRCwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0
YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGxkcChSZWdpc3RlcklEIHJ0LCBSZWdpc3Rl
cklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwgUGFpclByZUluZGV4IHNpbW0pCisgICAgeworICAgICAg
ICBDSEVDS19EQVRBU0laRSgpOworICAgICAgICBpbnNuKGxvYWRTdG9yZVJlZ2lzdGVyUGFpclBy
ZUluZGV4KE1FTVBBSVJPUFNJWkVfSU5UKGRhdGFzaXplKSwgZmFsc2UsIE1lbU9wX0xPQUQsIHNp
bW0sIHJuLCBydCwgcnQyKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgog
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBsZHIoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwg
UmVnaXN0ZXJJRCBybSkKICAgICB7CiAgICAgICAgIGxkcjxkYXRhc2l6ZT4ocnQsIHJuLCBybSwg
VVhUWCwgMCk7CkBAIC0xNzQ4LDYgKzE4MjEsMjAgQEAgcHVibGljOgogICAgIH0KIAogICAgIHRl
bXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3RwKFJlZ2lzdGVy
SUQgcnQsIFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBQYWlyUG9zdEluZGV4IHNpbW0p
CisgICAgeworICAgICAgICBDSEVDS19EQVRBU0laRSgpOworICAgICAgICBpbnNuKGxvYWRTdG9y
ZVJlZ2lzdGVyUGFpclBvc3RJbmRleChNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSksIGZhbHNl
LCBNZW1PcF9TVE9SRSwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxpbnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIHN0cChSZWdpc3RlcklEIHJ0
LCBSZWdpc3RlcklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwgUGFpclByZUluZGV4IHNpbW0pCisgICAg
eworICAgICAgICBDSEVDS19EQVRBU0laRSgpOworICAgICAgICBpbnNuKGxvYWRTdG9yZVJlZ2lz
dGVyUGFpclByZUluZGV4KE1FTVBBSVJPUFNJWkVfSU5UKGRhdGFzaXplKSwgZmFsc2UsIE1lbU9w
X1NUT1JFLCBzaW1tLCBybiwgcnQsIHJ0MikpOworICAgIH0KKworICAgIHRlbXBsYXRlPGludCBk
YXRhc2l6ZT4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3RyKFJlZ2lzdGVySUQgcnQsIFJlZ2lz
dGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAgICBzdHI8ZGF0YXNpemU+KHJ0
LCBybiwgcm0sIFVYVFgsIDApOwpAQCAtMTg3Niw4ICsxOTYzLDkgQEAgcHVibGljOgogICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBzdWIoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0
ZXJJRCBybSwgU2hpZnRUeXBlIHNoaWZ0LCBpbnQgYW1vdW50KQogICAgIHsKICAgICAgICAgQ0hF
Q0tfREFUQVNJWkUoKTsKLSAgICAgICAgaWYgKGlzU3Aocm4pKSB7CisgICAgICAgIGlmIChpc1Nw
KHJkKSB8fCBpc1NwKHJuKSkgewogICAgICAgICAgICAgQVNTRVJUKHNoaWZ0ID09IExTTCk7Cisg
ICAgICAgICAgICBBU1NFUlQoIWlzU3Aocm0pKTsKICAgICAgICAgICAgIHN1YjxkYXRhc2l6ZSwg
c2V0RmxhZ3M+KHJkLCBybiwgcm0sIFVYVFgsIGFtb3VudCk7CiAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgaW5zbihhZGRTdWJ0cmFjdFNoaWZ0ZWRSZWdpc3RlcihEQVRBU0laRSwgQWRkT3Bf
U1VCLCBzZXRGbGFncywgc2hpZnQsIHJtLCBhbW91bnQsIHJuLCByZCkpOwpAQCAtMzM2MSw2ICsz
NDQ5LDIzIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8gJ1YnIG1lYW5zIHZlY3RvcgorICAg
IEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgo
TWVtUGFpck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGltbWVkaWF0ZSwgUmVn
aXN0ZXJJRCBybiwgRlBSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKHNpemUgPCAzKTsKKyAgICAgICAgQVNTRVJUKG9wYyA9PSAob3BjICYgMSkp
OyAvLyBPbmx5IGxvYWQgb3Igc3RvcmUsIGxvYWQgc2lnbmVkIDY0IGlzIGhhbmRsZWQgdmlhIHNp
emUuCisgICAgICAgIEFTU0VSVChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMy
KSB8fCAob3BjID09IE1lbU9wX0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9y
ZSBzaWduZWQuCisgICAgICAgIHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zm
c2V0U2hpZnQoViwgc2l6ZSk7CisgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+IGltbWVk
U2hpZnRBbW91bnQ7CisgICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9
PSBpbW1lZGlhdGUgJiYgaXNJbnQ3KGltbTcpKTsKKyAgICAgICAgcmV0dXJuICgweDI4ODAwMDAw
IHwgc2l6ZSA8PCAzMCB8IFYgPDwgMjYgfCBvcGMgPDwgMjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1
IHwgcnQyIDw8IDEwIHwgeE9yU3Aocm4pIDw8IDUgfCBydCk7CisgICAgfQorCisgICAgQUxXQVlT
X0lOTElORSBzdGF0aWMgaW50IGxvYWRTdG9yZVJlZ2lzdGVyUGFpclBvc3RJbmRleChNZW1QYWly
T3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3BjLCBpbnQgaW1tZWRpYXRlLCBSZWdpc3RlcklE
IHJuLCBSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0MikKKyAgICB7CisgICAgICAgIHJldHVy
biBsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoc2l6ZSwgViwgb3BjLCBpbW1lZGlhdGUs
IHJuLCB4T3JackFzRlBSKHJ0KSwgeE9yWnJBc0ZQUihydDIpKTsKKyAgICB9CisKKyAgICAvLyAn
VicgbWVhbnMgdmVjdG9yCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgaW50IGxvYWRTdG9yZVJl
Z2lzdGVyUHJlSW5kZXgoTWVtT3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3BjLCBpbnQgaW1t
OSwgUmVnaXN0ZXJJRCBybiwgRlBSZWdpc3RlcklEIHJ0KQogICAgIHsKICAgICAgICAgQVNTRVJU
KCEoc2l6ZSAmJiBWICYmIChvcGMgJiAyKSkpOyAvLyBNYXhpbXVtIHZlY3RvciBzaXplIGlzIDEy
OCBiaXRzLgpAQCAtMzM3NSw2ICszNDgwLDIzIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8g
J1YnIG1lYW5zIHZlY3RvcgorICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2FkU3RvcmVS
ZWdpc3RlclBhaXJQcmVJbmRleChNZW1QYWlyT3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3Bj
LCBpbnQgaW1tZWRpYXRlLCBSZWdpc3RlcklEIHJuLCBGUFJlZ2lzdGVySUQgcnQsIEZQUmVnaXN0
ZXJJRCBydDIpCisgICAgeworICAgICAgICBBU1NFUlQoc2l6ZSA8IDMpOworICAgICAgICBBU1NF
UlQob3BjID09IChvcGMgJiAxKSk7IC8vIE9ubHkgbG9hZCBvciBzdG9yZSwgbG9hZCBzaWduZWQg
NjQgaXMgaGFuZGxlZCB2aWEgc2l6ZS4KKyAgICAgICAgQVNTRVJUKFYgfHwgKHNpemUgIT0gTWVt
UGFpck9wX0xvYWRTaWduZWRfMzIpIHx8IChvcGMgPT0gTWVtT3BfTE9BRCkpOyAvLyBUaGVyZSBp
c24ndCBhbiBpbnRlZ2VyIHN0b3JlIHNpZ25lZC4KKyAgICAgICAgdW5zaWduZWQgaW1tZWRTaGlm
dEFtb3VudCA9IG1lbVBhaXJPZmZzZXRTaGlmdChWLCBzaXplKTsKKyAgICAgICAgaW50IGltbTcg
PSBpbW1lZGlhdGUgPj4gaW1tZWRTaGlmdEFtb3VudDsKKyAgICAgICAgQVNTRVJUKChpbW03IDw8
IGltbWVkU2hpZnRBbW91bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDcoaW1tNykpOworICAgICAg
ICByZXR1cm4gKDB4Mjk4MDAwMDAgfCBzaXplIDw8IDMwIHwgViA8PCAyNiB8IG9wYyA8PCAyMiB8
IChpbW03ICYgMHg3ZikgPDwgMTUgfCBydDIgPDwgMTAgfCB4T3JTcChybikgPDwgNSB8IHJ0KTsK
KyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJQ
YWlyUHJlSW5kZXgoTWVtUGFpck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGlt
bWVkaWF0ZSwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIpCisg
ICAgeworICAgICAgICByZXR1cm4gbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoc2l6ZSwg
Viwgb3BjLCBpbW1lZGlhdGUsIHJuLCB4T3JackFzRlBSKHJ0KSwgeE9yWnJBc0ZQUihydDIpKTsK
KyAgICB9CisKKyAgICAvLyAnVicgbWVhbnMgdmVjdG9yCiAgICAgLy8gJ1MnIG1lYW5zIHNoaWZ0
IHJtCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgaW50IGxvYWRTdG9yZVJlZ2lzdGVyUmVnaXN0
ZXJPZmZzZXQoTWVtT3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3BjLCBSZWdpc3RlcklEIHJt
LCBFeHRlbmRUeXBlIG9wdGlvbiwgYm9vbCBTLCBSZWdpc3RlcklEIHJuLCBGUFJlZ2lzdGVySUQg
cnQpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QVJNdjdBc3NlbWJsZXIuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02NTQsNiAr
NjU0LDggQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIGVudW0gewogICAgICAgICBPUF9CX1QxICAg
ICAgICAgPSAweEQwMDAsCiAgICAgICAgIE9QX0JfVDIgICAgICAgICA9IDB4RTAwMCwKKyAgICAg
ICAgT1BfUE9QX1QyICAgICAgID0gMHhFOEJELAorICAgICAgICBPUF9QVVNIX1QyICAgICAgPSAw
eEU5MkQsCiAgICAgICAgIE9QX0FORF9yZWdfVDIgICA9IDB4RUEwMCwKICAgICAgICAgT1BfVFNU
X3JlZ19UMiAgID0gMHhFQTEwLAogICAgICAgICBPUF9PUlJfcmVnX1QyICAgPSAweEVBNDAsCkBA
IC04OTQsNiArODk2LDExIEBAIHB1YmxpYzoKICAgICAvLyBOT1RFOiBJbiBhbiBJVCBibG9jaywg
YWRkIGRvZXNuJ3QgbW9kaWZ5IHRoZSBmbGFncyByZWdpc3Rlci4KICAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgYWRkKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAg
ICAgeworICAgICAgICBpZiAocmQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgeworICAgICAgICAgICAg
bW92KHJkLCBybik7CisgICAgICAgICAgICBybiA9IHJkOworICAgICAgICB9CisKICAgICAgICAg
aWYgKHJkID09IHJuKQogICAgICAgICAgICAgbV9mb3JtYXR0ZXIub25lV29yZE9wOFJlZ1JlZzE0
MyhPUF9BRERfcmVnX1QyLCBybSwgcmQpOwogICAgICAgICBlbHNlIGlmIChyZCA9PSBybSkKQEAg
LTE0ODgsNiArMTQ5NSwyMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRP
cDEyUmVnNEZvdXJGb3VycyhPUF9ST1JfcmVnX1QyLCBybiwgRm91ckZvdXJzKDB4ZiwgcmQsIDAs
IHJtKSk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHBvcCh1aW50MzJfdCByZWdp
c3Rlckxpc3QpCisgICAgeworICAgICAgICBBU1NFUlQoV1RGOjpiaXRDb3VudChyZWdpc3Rlckxp
c3QpID4gMSk7CisgICAgICAgIEFTU0VSVCghKCgxIDw8IEFSTVJlZ2lzdGVyczo6cGMpICYgcmVn
aXN0ZXJMaXN0KSB8fCAhKCgxIDw8IEFSTVJlZ2lzdGVyczo6bHIpICYgcmVnaXN0ZXJMaXN0KSk7
CisgICAgICAgIEFTU0VSVCghKCgxIDw8IEFSTVJlZ2lzdGVyczo6c3ApICYgcmVnaXN0ZXJMaXN0
KSk7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDE2SW1tMTYoT1BfUE9QX1QyLCByZWdp
c3Rlckxpc3QpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwdXNoKHVpbnQzMl90
IHJlZ2lzdGVyTGlzdCkKKyAgICB7CisgICAgICAgIEFTU0VSVChXVEY6OmJpdENvdW50KHJlZ2lz
dGVyTGlzdCkgPiAxKTsKKyAgICAgICAgQVNTRVJUKCEoKDEgPDwgQVJNUmVnaXN0ZXJzOjpwYykg
JiByZWdpc3Rlckxpc3QpKTsKKyAgICAgICAgQVNTRVJUKCEoKDEgPDwgQVJNUmVnaXN0ZXJzOjpz
cCkgJiByZWdpc3Rlckxpc3QpKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTZJbW0x
NihPUF9QVVNIX1QyLCByZWdpc3Rlckxpc3QpOworICAgIH0KKwogI2lmIENQVShBUFBMRV9BUk1W
N1MpCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNkaXYoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJ
RCBybiwgUmVnaXN0ZXJJRCBybSkKICAgICB7CkBAIC0yNzkxLDYgKzI4MTQsMTIgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIG1fYnVmZmVyLnB1dFNob3J0KG9wMik7CiAgICAgICAgIH0KIAorICAg
ICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdHdvV29yZE9wMTZJbW0xNihPcGNvZGVJRDEgb3AxLCB1
aW50MTZfdCBpbW0pCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fYnVmZmVyLnB1dFNob3J0KG9w
MSk7CisgICAgICAgICAgICBtX2J1ZmZlci5wdXRTaG9ydChpbW0pOworICAgICAgICB9CisgICAg
ICAgIAogICAgICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdHdvV29yZE9wNWk2SW1tNFJlZzRFbmNv
ZGVkSW1tKE9wY29kZUlEMSBvcCwgaW50IGltbTQsIFJlZ2lzdGVySUQgcmQsIEFSTVRodW1iSW1t
ZWRpYXRlIGltbSkKICAgICAgICAgewogICAgICAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgbmV3
SW1tID0gaW1tOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFj
dE1hY3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAgICAgICB7CiAgICAg
ICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlLCBvZmZzZXQgKyBhZGRpdGlvbmFsT2Zmc2V0KTsK
ICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBSZWdpc3RlcklEIGJhc2U7CiAgICAgICAg
IGludDMyX3Qgb2Zmc2V0OwogICAgIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0xpbmtCdWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI4LDEyICsyOCwyMSBAQAogCiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKIAorI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJPcHRp
b25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25UaHJlYWQu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK2Jvb2wgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5Rm9yKENv
ZGVCbG9jayogY29kZUJsb2NrKQoreworICAgIGlmIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQo
Y29kZUJsb2NrLT5qaXRUeXBlKCkpICYmIE9wdGlvbnM6OnNob3dERkdEaXNhc3NlbWJseSgpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5
KCk7Cit9CisKIExpbmtCdWZmZXI6OkNvZGVSZWYgTGlua0J1ZmZlcjo6ZmluYWxpemVDb2RlV2l0
aG91dERpc2Fzc2VtYmx5KCkKIHsKICAgICBwZXJmb3JtRmluYWxpemF0aW9uKCk7CkBAIC00Nyw4
ICs1Niw2IEBAIExpbmtCdWZmZXI6OkNvZGVSZWYgTGlua0J1ZmZlcjo6ZmluYWxpemUKIAogTGlu
a0J1ZmZlcjo6Q29kZVJlZiBMaW5rQnVmZmVyOjpmaW5hbGl6ZUNvZGVXaXRoRGlzYXNzZW1ibHko
Y29uc3QgY2hhciogZm9ybWF0LCAuLi4pCiB7Ci0gICAgQVNTRVJUKE9wdGlvbnM6OnNob3dEaXNh
c3NlbWJseSgpIHx8IE9wdGlvbnM6OnNob3dERkdEaXNhc3NlbWJseSgpKTsKLSAgICAKICAgICBD
b2RlUmVmIHJlc3VsdCA9IGZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpOwogCiAjaWYg
RU5BQkxFKERJU0FTU0VNQkxFUikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTGlua0J1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTGlua0J1ZmZlci5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTIsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDEy
LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDMsNiArNDMsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAorY2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgVk07CiAKIC8vIExpbmtCdWZmZXI6CkBAIC0xNjQs
NiArMTY1LDExIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSB1
c2VkIHRvIG9idGFpbiBoYW5kbGVzIHRvIGFsbG93IHRoZSBjb2RlIHRvIGJlIHJlbGlua2VkIC8g
cmVwYXRjaGVkIGxhdGVyLgorICAgIAorICAgIENvZGVMb2NhdGlvbkxhYmVsIGVudHJ5cG9pbnQo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIENvZGVMb2NhdGlvbkxhYmVsKGNvZGUoKSk7CisgICAg
fQogCiAgICAgQ29kZUxvY2F0aW9uQ2FsbCBsb2NhdGlvbk9mKENhbGwgY2FsbCkKICAgICB7CkBA
IC0zMDMsNiArMzA5LDExIEBAIHByaXZhdGU6CiAgICAgID8gKChsaW5rQnVmZmVyUmVmZXJlbmNl
KS5maW5hbGl6ZUNvZGVXaXRoRGlzYXNzZW1ibHkgZGF0YUxvZ0ZBcmd1bWVudHNGb3JIZWFkaW5n
KSBcCiAgICAgIDogKGxpbmtCdWZmZXJSZWZlcmVuY2UpLmZpbmFsaXplQ29kZVdpdGhvdXREaXNh
c3NlbWJseSgpKQogCitib29sIHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihDb2RlQmxvY2sqKTsK
KworI2RlZmluZSBGSU5BTElaRV9DT0RFX0ZPUihjb2RlQmxvY2ssIGxpbmtCdWZmZXJSZWZlcmVu
Y2UsIGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykgIFwKKyAgICBGSU5BTElaRV9DT0RFX0lG
KHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihjb2RlQmxvY2spLCBsaW5rQnVmZmVyUmVmZXJlbmNl
LCBkYXRhTG9nRkFyZ3VtZW50c0ZvckhlYWRpbmcpCisKIC8vIFVzZSB0aGlzIHRvIGZpbmFsaXpl
IGNvZGUsIGxpa2Ugc286CiAvLwogLy8gQ29kZVJlZiBjb2RlID0gRklOQUxJWkVfQ09ERShsaW5r
QnVmZmVyLCAoIm15IHN1cGVyIHRoaW5neSBudW1iZXIgJWQiLCBudW1iZXIpKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHJl
dmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTk1LDYgKzU5NSwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGltbSksIGFkZHJlc3MpOwogICAgIH0KIAorICAg
IHZvaWQgc3RvcmVQdHIoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Mp
CisgICAgeworICAgICAgICBzdG9yZTMyKGltbSwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9p
ZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgQmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewog
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihpbW0pLCBhZGRyZXNzKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02
NC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNNjQuaAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIwMSwxMCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZDY0KFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7
CisgICAgICAgIGlmIChzcmMgPT0gQVJNNjRSZWdpc3RlcnM6OnNwKQorICAgICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkPDY0PihkZXN0LCBzcmMsIGRlc3QpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7CiAgICAgfQogCiAgICAg
dm9pZCBhZGQ2NChUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCkBAIC0xNDM3LDYg
KzE0NDAsMTYgQEAgcHVibGljOgogICAgICAgICBDUkFTSCgpOwogICAgIH0KIAorICAgIHZvaWQg
cG9wUGFpcihSZWdpc3RlcklEIGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQorICAgIHsKKyAgICAg
ICAgbV9hc3NlbWJsZXIubGRwPDY0PihkZXN0MSwgZGVzdDIsIEFSTTY0UmVnaXN0ZXJzOjpzcCwg
UGFpclBvc3RJbmRleCgxNikpOworICAgIH0KKworICAgIHZvaWQgcHVzaFBhaXIoUmVnaXN0ZXJJ
RCBzcmMxLCBSZWdpc3RlcklEIHNyYzIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5zdHA8
NjQ+KHNyYzEsIHNyYzIsIEFSTTY0UmVnaXN0ZXJzOjpzcCwgUGFpclByZUluZGV4KC0xNikpOwor
ICAgIH0KKwogICAgIHZvaWQgcG9wVG9SZXN0b3JlKFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLmxkcjw2ND4oZGVzdCwgQVJNNjRSZWdpc3RlcnM6OnNwLCBQb3N0
SW5kZXgoMTYpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29ya2luZyBj
b3B5KQpAQCAtMTcwLDYgKzE3MCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGQzMihUcnVzdGVk
SW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAg
ICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VVSW50
MTJPckVuY29kZWRJbW0oaW1tLm1fdmFsdWUpOworCisgICAgICAgIC8vIEZvciBhZGRzIHdpdGgg
c3RhY2sgcG9pbnRlciBkZXN0aW5hdGlvbiwgbW92aW5nIHRoZSBzcmMgZmlyc3QgdG8gc3AgaXMK
KyAgICAgICAgLy8gbmVlZGVkIHRvIGF2b2lkIHVucHJlZGljdGFibGUgaW5zdHJ1Y3Rpb24KKyAg
ICAgICAgaWYgKGRlc3QgPT0gQVJNUmVnaXN0ZXJzOjpzcCAmJiBzcmMgIT0gZGVzdCkgeworICAg
ICAgICAgICAgbW92ZShzcmMsIEFSTVJlZ2lzdGVyczo6c3ApOworICAgICAgICAgICAgc3JjID0g
QVJNUmVnaXN0ZXJzOjpzcDsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxp
ZCgpKQogICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkKGRlc3QsIHNyYywgYXJtSW1tKTsKICAg
ICAgICAgZWxzZSB7CkBAIC0xMTYwLDYgKzExNjgsMTYgQEAgcHVibGljOgogICAgICAgICBwdXNo
KGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAorICAgIHZvaWQgcG9wUGFpcihSZWdpc3RlcklE
IGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucG9w
KDEgPDwgZGVzdDEgfCAxIDw8IGRlc3QyKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBwdXNoUGFp
cihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMikKKyAgICB7CisgICAgICAgIG1fYXNz
ZW1ibGVyLnB1c2goMSA8PCBzcmMxIHwgMSA8PCBzcmMyKTsKKyAgICB9CisgICAgCiAgICAgLy8g
UmVnaXN0ZXIgbW92ZSBvcGVyYXRpb25zOgogICAgIC8vCiAgICAgLy8gTW92ZSB2YWx1ZXMgaW4g
cmVnaXN0ZXJzLgpAQCAtMTI4MSwxMSArMTI5OSwxOSBAQCBwcml2YXRlOgogICAgICAgICAgICAg
bV9hc3NlbWJsZXIudHN0KHJlZywgcmVnKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBB
Uk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJ
bW0oaW1tKTsKLSAgICAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKQotICAgICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIGFybUltbSk7Ci0gICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHJl
ZyA9PSBBUk1SZWdpc3RlcnM6OnNwKSB7CisgICAgICAgICAgICAgICAgICAgIG1vdmUocmVnLCBh
ZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0
KGFkZHJlc3NUZW1wUmVnaXN0ZXIsIGFybUltbSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIGFybUltbSk7CisgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIG1vdmUobWFzaywgZGF0YVRlbXBSZWdpc3Rl
cik7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0KHJlZywgZGF0YVRlbXBSZWdpc3Rl
cik7CisgICAgICAgICAgICAgICAgaWYgKHJlZyA9PSBBUk1SZWdpc3RlcnM6OnNwKSB7CisgICAg
ICAgICAgICAgICAgICAgIG1vdmUocmVnLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0KGFkZHJlc3NUZW1wUmVnaXN0ZXIsIGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBt
X2Fzc2VtYmxlci50c3QocmVnLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkocmV2aXNpb24gMTYyOTYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAko
d29ya2luZyBjb3B5KQpAQCAtMjU0LDYgKzI1NCwxMSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
dm9pZCogdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgCisgICAgdm9pZCBk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CisgICAgeworICAgICAgICBvdXQucHJpbnQoUmF3
UG9pbnRlcihtX3ZhbHVlKSk7CisgICAgfQogCiBwcml2YXRlOgogICAgIHZvaWQqIG1fdmFsdWU7
CkBAIC0zMDksOSArMzE0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkKiBkYXRhTG9jYXRpb24oKSBj
b25zdCB7IEFTU0VSVF9WQUxJRF9DT0RFX1BPSU5URVIobV92YWx1ZSk7IHJldHVybiBtX3ZhbHVl
OyB9CiAjZW5kaWYKIAotICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QKKyAgICB0eXBlZGVmIHZv
aWQqIChNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OipVbnNwZWNpZmllZEJvb2xUeXBlKTsKKyAgICBv
cGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKigpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1
cm4gIW1fdmFsdWU7CisgICAgICAgIHJldHVybiAhIW1fdmFsdWUgPyByZWludGVycHJldF9jYXN0
PFVuc3BlY2lmaWVkQm9vbFR5cGUqPigxKSA6IDA7CiAgICAgfQogICAgIAogICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBNYWNyb0Fzc2VtYmxlckNvZGVQdHImIG90aGVyKSBjb25zdApAQCAtNDM0
LDcgKzQ0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBKU0M6OnRyeVRvRGlzYXNzZW1i
bGUobV9jb2RlUHRyLCBzaXplKCksIHByZWZpeCwgV1RGOjpkYXRhRmlsZSgpKTsKICAgICB9CiAg
ICAgCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9jb2RlUHRyOyB9Cisg
ICAgdHlwZWRlZiB2b2lkKiAoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjoqVW5zcGVjaWZpZWRCb29s
VHlwZSk7CisgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSooKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuICEhbV9jb2RlUHRyID8gcmVpbnRlcnByZXRfY2FzdDxVbnNwZWNpZmll
ZEJvb2xUeXBlKj4oMSkgOiAwOworICAgIH0KICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5o
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBN
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbF9oCisjZGVmaW5lIE1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsX2gKKworI2luY2x1ZGUgIkpTU3RhY2suaCIKKyNpbmNsdWRlICJSZWdpc3Rl
ci5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKKy8vIFRoZSBtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCBpcyB0aGUgbWF4IGFtb3VudCBvZiBzdGFjayBzcGFjZSAoaW4gYnl0ZXMpCisvLyB0
aGF0IGNhbiBiZSB1c2VkIGZvciBvdXRnb2luZyBhcmdzIHdoZW4gY2FsbGluZyBhIHNsb3cgcGF0
aCBDIGZ1bmN0aW9uCisvLyBmcm9tIEpTIGNvZGUuCisKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09Q
KQorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDA7
CisKKyNlbGlmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpCisvLyA0IGFyZ3MgaW4gcmVnaXN0
ZXJzLCBidXQgc3RhY2sgc3BhY2UgbmVlZHMgdG8gYmUgYWxsb2NhdGVkIGZvciBhbGwgYXJncy4K
K3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA2NDsK
KworI2VsaWYgQ1BVKFg4Nl82NCkKKy8vIEFsbCBhcmdzIGluIHJlZ2lzdGVycy4KK3N0YXRpYyBj
b25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAwOworCisjZWxpZiBD
UFUoWDg2KQorLy8gNyBhcmdzIG9uIHN0YWNrICgyOCBieXRlcykuCitzdGF0aWMgY29uc3Qgc2l6
ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDA7CisKKyNlbGlmIENQVShBUk02
NCkKKy8vIEFsbCBhcmdzIGluIHJlZ2lzdGVycy4KK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAwOworCisjZWxpZiBDUFUoQVJNKQorLy8gRmlyc3Qg
Zm91ciBhcmdzIGluIHJlZ2lzdGVycywgcmVtYWluaW5nIDQgYXJncyBvbiBzdGFjay4KK3N0YXRp
YyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAyNDsKKworI2Vs
aWYgQ1BVKFNINCkKKy8vIEZpcnN0IGZvdXIgYXJncyBpbiByZWdpc3RlcnMsIHJlbWFpbmluZyA0
IGFyZ3Mgb24gc3RhY2suCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsID0gMjQ7CisKKyNlbGlmIENQVShNSVBTKQorLy8gVGhvdWdoIGFyZ3MgYXJlIGlu
IHJlZ2lzdGVycywgdGhlcmUgbmVlZCB0byBiZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIGFsbCBh
cmdzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9
IDQwOworCisjZWxzZQorI2Vycm9yICJVbnN1cHBvcnRlZCBDUFU6IG5lZWQgdmFsdWUgZm9yIG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsIgorCisjZW5kaWYKKworQ09NUElMRV9BU1NFUlQo
IShtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCAlIHNpemVvZihSZWdpc3RlcikpLCBleHRl
bnRfbXVzdF9iZV9pbl9tdWx0aXBsZXNfb2ZfcmVnaXN0ZXJzKTsKKy8vIE1ha2Ugc3VyZSB0aGF0
IGNmciAtIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsIGJ5dGVzIHdpbGwgbWFrZSB0aGUg
c3RhY2sgcG9pbnRlciBhbGlnbmVkCitDT01QSUxFX0FTU0VSVCgobWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwgJSAxNikgPT0gMTYgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyksIGV4dGVu
dF9tdXN0X2FsaWduX3N0YWNrX2Zyb21fY2FsbGZyYW1lX3BvaW50ZXIpOworCitzdGF0aWMgY29u
c3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5SZWdpc3RlcnMgPSBtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCAvIHNpemVvZihSZWdpc3Rlcik7CisKK30gLy8gbmFt
ZXNwYWNlIEpTQworCisjZW5kaWYgLy8gTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGxfaAor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZv
LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDE1ICszNywxNSBAQCB2b2lkIENh
bGxMaW5rSW5mbzo6dW5saW5rKFZNJiB2bSwgUmVwYXRjCiB7CiAgICAgQVNTRVJUKGlzTGlua2Vk
KCkpOwogICAgIAorICAgIGlmIChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHkoKSkKKyAgICAgICAg
ZGF0YUxvZygiVW5saW5raW5nIGNhbGwgZnJvbSAiLCBjYWxsUmV0dXJuTG9jYXRpb24sICIgdG8g
IiwgcG9pbnRlckR1bXAocmVwYXRjaEJ1ZmZlci5jb2RlQmxvY2soKSksICJcbiIpOworCiAgICAg
cmVwYXRjaEJ1ZmZlci5yZXZlcnRKdW1wUmVwbGFjZW1lbnRUb0JyYW5jaFB0cldpdGhQYXRjaChS
ZXBhdGNoQnVmZmVyOjpzdGFydE9mQnJhbmNoUHRyV2l0aFBhdGNoT25SZWdpc3Rlcihob3RQYXRo
QmVnaW4pLCBzdGF0aWNfY2FzdDxNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRD4oY2FsbGVlR1BS
KSwgMCk7Ci0gICAgaWYgKGlzREZHKSB7Ci0jaWYgRU5BQkxFKERGR19KSVQpCi0gICAgICAgIHJl
cGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxSZXR1cm5Mb2NhdGlvbiwgKGNhbGxUeXBlID09IENvbnN0
cnVjdCA/IHZtLmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKSA6IHZtLmdl
dENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcikpLmNvZGUoKSk7Ci0jZWxzZQotICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotI2VuZGlmCi0gICAgfSBlbHNlCi0gICAg
ICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxSZXR1cm5Mb2NhdGlvbiwgY2FsbFR5cGUgPT0g
Q29uc3RydWN0ID8gdm0uZ2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpLmNv
ZGUoKSA6IHZtLmdldENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAg
ICByZXBhdGNoQnVmZmVyLnJlbGluaygKKyAgICAgICAgY2FsbFJldHVybkxvY2F0aW9uLAorICAg
ICAgICB2bS5nZXRDVElTdHViKGxpbmtUaHVua0dlbmVyYXRvckZvcigKKyAgICAgICAgICAgIGNh
bGxUeXBlID09IENvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwKKyAg
ICAgICAgICAgIGlzRlRMID8gTXVzdFByZXNlcnZlUmVnaXN0ZXJzIDogUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Ob3RSZXF1aXJlZCkpLmNvZGUoKSk7CiAgICAgaGFzU2VlblNob3VsZFJlcGF0Y2ggPSBm
YWxzZTsKICAgICBjYWxsZWUuY2xlYXIoKTsKICAgICBzdHViLmNsZWFyKCk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCShyZXZpc2lvbiAx
NjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU1LDggKzU1LDggQEAgc3RydWN0IENhbGxMaW5rSW5mbyA6IHB1
YmxpYyBCYXNpY1Jhd1NlbgogICAgIH0KICAgICAgICAgCiAgICAgQ2FsbExpbmtJbmZvKCkKLSAg
ICAgICAgOiBoYXNTZWVuU2hvdWxkUmVwYXRjaChmYWxzZSkKLSAgICAgICAgLCBpc0RGRyhmYWxz
ZSkKKyAgICAgICAgOiBpc0ZUTChmYWxzZSkKKyAgICAgICAgLCBoYXNTZWVuU2hvdWxkUmVwYXRj
aChmYWxzZSkKICAgICAgICAgLCBoYXNTZWVuQ2xvc3VyZShmYWxzZSkKICAgICAgICAgLCBjYWxs
VHlwZShOb25lKQogICAgIHsKQEAgLTc5LDggKzc5LDggQEAgc3RydWN0IENhbGxMaW5rSW5mbyA6
IHB1YmxpYyBCYXNpY1Jhd1NlbgogICAgIEpJVFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBjYWxs
ZWU7CiAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IGxhc3RTZWVuQ2FsbGVlOwogICAgIFJl
ZlB0cjxDbG9zdXJlQ2FsbFN0dWJSb3V0aW5lPiBzdHViOworICAgIGJvb2wgaXNGVEwgOiAxOwog
ICAgIGJvb2wgaGFzU2VlblNob3VsZFJlcGF0Y2ggOiAxOwotICAgIGJvb2wgaXNERkcgOiAxOwog
ICAgIGJvb2wgaGFzU2VlbkNsb3N1cmUgOiAxOwogICAgIHVuc2lnbmVkIGNhbGxUeXBlIDogNTsg
Ly8gQ2FsbFR5cGUKICAgICB1bnNpZ25lZCBjYWxsZWVHUFIgOiA4OwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0
dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMyArMjYsMTcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDYWxsTGlua1N0YXR1cy5oIgogCisjaW5jbHVkZSAi
Q2FsbExpbmtJbmZvLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiREZHSklU
Q29kZS5oIgogI2luY2x1ZGUgIkxMSW50Q2FsbExpbmtJbmZvLmgiCiAjaW5jbHVkZSAiT3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CiAKK3N0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKwogQ2FsbExpbmtTdGF0dXM6
OkNhbGxMaW5rU3RhdHVzKEpTVmFsdWUgdmFsdWUpCiAgICAgOiBtX2NhbGxUYXJnZXQodmFsdWUp
CiAgICAgLCBtX2V4ZWN1dGFibGUoMCkKQEAgLTgxLDEyICs4NSwyOCBAQCBJbnRyaW5zaWMgQ2Fs
bExpbmtTdGF0dXM6OmludHJpbnNpY0ZvcihDCiAgICAgcmV0dXJuIG1fZXhlY3V0YWJsZS0+aW50
cmluc2ljRm9yKGtpbmQpOwogfQogCi1DYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29t
cHV0ZUZyb21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2Rl
SW5kZXgpCitDYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZyb21MTEludChj
b25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJvZmlsZWRCbG9j
aywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKIHsKICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRC
bG9jayk7CiAgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwogI2lmIEVOQUJMRShMTElO
VCkKKyNpZiBFTkFCTEUoREZHX0pJVCkKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+aGFzRXhpdFNp
dGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkRnVuY3Rp
b24pKSkgeworICAgICAgICAvLyBXZSBjb3VsZCBmb3JjZSB0aGlzIHRvIGJlIGEgY2xvc3VyZSBj
YWxsLCBidXQgaW5zdGVhZCB3ZSdsbCBqdXN0IGFzc3VtZSB0aGF0IGl0CisgICAgICAgIC8vIHRh
a2VzIHNsb3cgcGF0aC4KKyAgICAgICAgcmV0dXJuIHRha2VzU2xvd1BhdGgoKTsKKyAgICB9Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShsb2NrZXIpOworI2VuZGlmCisKKyAgICBWTSYgdm0gPSAq
cHJvZmlsZWRCbG9jay0+dm0oKTsKKyAgICAKICAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24g
PSBwcm9maWxlZEJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnl0ZWNvZGVJbmRleDsK
KyAgICBPcGNvZGVJRCBvcCA9IHZtLmludGVycHJldGVyLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlv
blswXS51Lm9wY29kZSk7CisgICAgaWYgKG9wICE9IG9wX2NhbGwgJiYgb3AgIT0gb3BfY29uc3Ry
dWN0KQorICAgICAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXMoKTsKKyAgICAKICAgICBMTEludENh
bGxMaW5rSW5mbyogY2FsbExpbmtJbmZvID0gaW5zdHJ1Y3Rpb25bNV0udS5jYWxsTGlua0luZm87
CiAgICAgCiAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKGNhbGxMaW5rSW5mby0+bGFzdFNlZW5D
YWxsZWUuZ2V0KCkpOwpAQCAtMTAyLDI3ICsxMjIsMTIxIEBAIENhbGxMaW5rU3RhdHVzIENhbGxM
aW5rU3RhdHVzOjpjb21wdXRlRm8KICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CiAg
ICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwogI2lmIEVOQUJMRShKSVQpCisgICAgaWYg
KHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRl
KGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFz
RXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFk
Q2FjaGVXYXRjaHBvaW50KSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUo
bG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkRXhlY3V0YWJs
ZSkpKQorICAgICAgICByZXR1cm4gdGFrZXNTbG93UGF0aCgpOworICAgIAogICAgIGlmICghcHJv
ZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkKLSAgICAgICAgcmV0dXJuIGNv
bXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIHJl
dHVybiBjb21wdXRlRnJvbUxMSW50KGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRl
eCk7CiAgICAgCiAgICAgaWYgKHByb2ZpbGVkQmxvY2stPmNvdWxkVGFrZVNsb3dDYXNlKGJ5dGVj
b2RlSW5kZXgpKQotICAgICAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXM6OnRha2VzU2xvd1BhdGgo
KTsKKyAgICAgICAgcmV0dXJuIHRha2VzU2xvd1BhdGgoKTsKICAgICAKICAgICBDYWxsTGlua0lu
Zm8mIGNhbGxMaW5rSW5mbyA9IHByb2ZpbGVkQmxvY2stPmdldENhbGxMaW5rSW5mbyhieXRlY29k
ZUluZGV4KTsKKyAgICAKKyAgICBDYWxsTGlua1N0YXR1cyByZXN1bHQgPSBjb21wdXRlRm9yKGxv
Y2tlciwgY2FsbExpbmtJbmZvKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIGNv
bXB1dGVGcm9tTExJbnQobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KTsKKyAg
ICAKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1
ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkRnVuY3Rpb24pKSkKKyAgICAgICAgcmVzdWx0
Lm1ha2VDbG9zdXJlQ2FsbCgpOworICAgIAorICAgIHJldHVybiByZXN1bHQ7CisjZWxzZQorICAg
IHJldHVybiBDYWxsTGlua1N0YXR1cygpOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoSklUKQor
Q2FsbExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3IoY29uc3QgQ29uY3VycmVu
dEpJVExvY2tlciYsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQorewogICAgIGlmIChjYWxs
TGlua0luZm8uc3R1YikKICAgICAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKGNhbGxMaW5rSW5m
by5zdHViLT5leGVjdXRhYmxlKCksIGNhbGxMaW5rSW5mby5zdHViLT5zdHJ1Y3R1cmUoKSk7CiAg
ICAgCiAgICAgSlNGdW5jdGlvbiogdGFyZ2V0ID0gY2FsbExpbmtJbmZvLmxhc3RTZWVuQ2FsbGVl
LmdldCgpOwogICAgIGlmICghdGFyZ2V0KQotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTElu
dChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KTsKKyAgICAgICAgcmV0dXJuIENhbGxMaW5r
U3RhdHVzKCk7CiAgICAgCiAgICAgaWYgKGNhbGxMaW5rSW5mby5oYXNTZWVuQ2xvc3VyZSkKICAg
ICAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKHRhcmdldC0+ZXhlY3V0YWJsZSgpLCB0YXJnZXQt
PnN0cnVjdHVyZSgpKTsKIAogICAgIHJldHVybiBDYWxsTGlua1N0YXR1cyh0YXJnZXQpOwotI2Vs
c2UKLSAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXMoKTsKK30KICNlbmRpZgorCit2b2lkIENhbGxM
aW5rU3RhdHVzOjpjb21wdXRlREZHU3RhdHVzZXMoCisgICAgQ29kZUJsb2NrKiBkZmdDb2RlQmxv
Y2ssIENhbGxMaW5rU3RhdHVzOjpDb250ZXh0TWFwJiBtYXApCit7CisjaWYgRU5BQkxFKERGR19K
SVQpCisgICAgUkVMRUFTRV9BU1NFUlQoZGZnQ29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUQ29k
ZTo6REZHSklUKTsKKyAgICBDb2RlQmxvY2sqIGJhc2VsaW5lQ29kZUJsb2NrID0gZGZnQ29kZUJs
b2NrLT5hbHRlcm5hdGl2ZSgpOworICAgIERGRzo6SklUQ29kZSogaml0Q29kZSA9IGRmZ0NvZGVC
bG9jay0+aml0Q29kZSgpLT5kZmcoKTsKKyAgICBSRUxFQVNFX0FTU0VSVChkZmdDb2RlQmxvY2st
Pm51bWJlck9mQ2FsbExpbmtJbmZvcygpIDw9IGppdENvZGUtPnNsb3dQYXRoQ2FsbHMuc2l6ZSgp
KTsKKyAgICAKKyAgICBmb3IgKHNpemVfdCBpID0gZGZnQ29kZUJsb2NrLT5udW1iZXJPZkNhbGxM
aW5rSW5mb3MoKTsgaS0tOykgeworICAgICAgICBDYWxsTGlua0luZm8mIGluZm8gPSBkZmdDb2Rl
QmxvY2stPmNhbGxMaW5rSW5mbyhpKTsKKyAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0g
aW5mby5jb2RlT3JpZ2luOworICAgICAgICAKKyAgICAgICAgYm9vbCB0YWtlU2xvd1BhdGg7Cisg
ICAgICAgIGJvb2wgYmFkRnVuY3Rpb247CisgICAgICAgIAorICAgICAgICAvLyBDaGVjayBpZiB3
ZSBoYWQgYWxyZWFkeSBwcmV2aW91c2x5IG1hZGUgYSB0ZXJyaWJsZSBtaXN0YWtlIGluIHRoZSBG
VEwgZm9yIHRoaXMKKyAgICAgICAgLy8gY29kZSBvcmlnaW4uIE5vdGUgdGhhdCB0aGlzIGlzIGFw
cHJveGltYXRlIGJlY2F1c2Ugd2UgY291bGQgaGF2ZSBhIG1vbm92YXJpYW50CisgICAgICAgIC8v
IGlubGluZSBpbiB0aGUgRlRMIHRoYXQgZW5kZWQgdXAgZmFpbGluZy4gV2Ugc2hvdWxkIGZpeCB0
aGF0IGF0IHNvbWUgcG9pbnQgYnkKKyAgICAgICAgLy8gaGF2aW5nIGRhdGEgc3RydWN0dXJlcyB0
byB0cmFjayB0aGUgY29udGV4dCBvZiBmcmVxdWVudCBleGl0cy4gVGhpcyBpcyBjdXJyZW50bHkK
KyAgICAgICAgLy8gY2hhbGxlbmdpbmcgYmVjYXVzZSBpdCB3b3VsZCByZXF1aXJlIGNyZWF0aW5n
IGEgQ29kZU9yaWdpbi1iYXNlZCBkYXRhYmFzZSBpbgorICAgICAgICAvLyBiYXNlbGluZSBDb2Rl
QmxvY2tzLCBidXQgdGhvc2UgQ29kZUJsb2NrcyBkb24ndCByZWFsbHkgaGF2ZSBhIHBsYWNlIHRv
IHB1dCB0aGUKKyAgICAgICAgLy8gSW5saW5lQ2FsbEZyYW1lcy4KKyAgICAgICAgQ29kZUJsb2Nr
KiBjdXJyZW50QmFzZWxpbmUgPQorICAgICAgICAgICAgYmFzZWxpbmVDb2RlQmxvY2tGb3JPcmln
aW5BbmRCYXNlbGluZUNvZGVCbG9jayhjb2RlT3JpZ2luLCBiYXNlbGluZUNvZGVCbG9jayk7Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGN1cnJlbnRC
YXNlbGluZS0+bV9sb2NrKTsKKyAgICAgICAgICAgIHRha2VTbG93UGF0aCA9CisgICAgICAgICAg
ICAgICAgY3VycmVudEJhc2VsaW5lLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRF
eGl0U2l0ZShjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlLCBFeGl0RnJvbUZUTCkp
CisgICAgICAgICAgICAgICAgfHwgY3VycmVudEJhc2VsaW5lLT5oYXNFeGl0U2l0ZShsb2NrZXIs
IERGRzo6RnJlcXVlbnRFeGl0U2l0ZShjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEJhZENhY2hl
V2F0Y2hwb2ludCwgRXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHx8IGN1cnJlbnRCYXNl
bGluZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdp
bi5ieXRlY29kZUluZGV4LCBCYWRFeGVjdXRhYmxlLCBFeGl0RnJvbUZUTCkpOworICAgICAgICAg
ICAgYmFkRnVuY3Rpb24gPQorICAgICAgICAgICAgICAgIGN1cnJlbnRCYXNlbGluZS0+aGFzRXhp
dFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5ieXRlY29kZUlu
ZGV4LCBCYWRGdW5jdGlvbiwgRXhpdEZyb21GVEwpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoZGZnQ29kZUJs
b2NrLT5tX2xvY2spOworICAgICAgICAgICAgaWYgKHRha2VTbG93UGF0aCB8fCBqaXRDb2RlLT5z
bG93UGF0aENhbGxzW2ldID49IE9wdGlvbnM6OmNvdWxkVGFrZVNsb3dDYXNlTWluaW11bUNvdW50
KCkpCisgICAgICAgICAgICAgICAgbWFwLmFkZChpbmZvLmNvZGVPcmlnaW4sIHRha2VzU2xvd1Bh
dGgoKSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBDYWxsTGlua1N0YXR1
cyBzdGF0dXMgPSBjb21wdXRlRm9yKGxvY2tlciwgaW5mbyk7CisgICAgICAgICAgICAgICAgaWYg
KHN0YXR1cy5pc1NldCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChiYWRGdW5jdGlvbikK
KyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy5tYWtlQ2xvc3VyZUNhbGwoKTsKKyAgICAg
ICAgICAgICAgICAgICAgbWFwLmFkZChpbmZvLmNvZGVPcmlnaW4sIHN0YXR1cyk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oZGZnQ29kZUJsb2NrKTsKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKyAg
ICAKKyAgICBpZiAodmVyYm9zZSkgeworICAgICAgICBkYXRhTG9nKCJDb250ZXh0IG1hcDpcbiIp
OworICAgICAgICBDb250ZXh0TWFwOjppdGVyYXRvciBpdGVyID0gbWFwLmJlZ2luKCk7CisgICAg
ICAgIENvbnRleHRNYXA6Oml0ZXJhdG9yIGVuZCA9IG1hcC5lbmQoKTsKKyAgICAgICAgZm9yICg7
IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKKyAgICAgICAgICAgIGRhdGFMb2coIiAgICAiLCBpdGVy
LT5rZXksICI6XG4iKTsKKyAgICAgICAgICAgIGRhdGFMb2coIiAgICAgICAgIiwgaXRlci0+dmFs
dWUsICJcbiIpOworICAgICAgICB9CisgICAgfQorfQorCitDYWxsTGlua1N0YXR1cyBDYWxsTGlu
a1N0YXR1czo6Y29tcHV0ZUZvcigKKyAgICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIENvZGVP
cmlnaW4gY29kZU9yaWdpbiwgY29uc3QgQ2FsbExpbmtTdGF0dXM6OkNvbnRleHRNYXAmIG1hcCkK
K3sKKyAgICBDb250ZXh0TWFwOjpjb25zdF9pdGVyYXRvciBpdGVyID0gbWFwLmZpbmQoY29kZU9y
aWdpbik7CisgICAgaWYgKGl0ZXIgIT0gbWFwLmVuZCgpKQorICAgICAgICByZXR1cm4gaXRlci0+
dmFsdWU7CisgICAgCisgICAgcmV0dXJuIGNvbXB1dGVGb3IocHJvZmlsZWRCbG9jaywgY29kZU9y
aWdpbi5ieXRlY29kZUluZGV4KTsKIH0KIAogdm9pZCBDYWxsTGlua1N0YXR1czo6ZHVtcChQcmlu
dFN0cmVhbSYgb3V0KSBjb25zdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rU3RhdHVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNiw3ICsyNiw5IEBACiAjaWZuZGVmIENhbGxMaW5rU3RhdHVzX2gKICNkZWZpbmUg
Q2FsbExpbmtTdGF0dXNfaAogCisjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUgIkNv
ZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKKyNpbmNsdWRlICJDb25jdXJyZW50SklUTG9jay5oIgog
I2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKIApAQCAtMzcs
NiArMzksNyBAQCBjbGFzcyBFeGVjdXRhYmxlQmFzZTsKIGNsYXNzIEludGVybmFsRnVuY3Rpb247
CiBjbGFzcyBKU0Z1bmN0aW9uOwogY2xhc3MgU3RydWN0dXJlOworc3RydWN0IENhbGxMaW5rSW5m
bzsKIAogY2xhc3MgQ2FsbExpbmtTdGF0dXMgewogcHVibGljOgpAQCAtNzMsMzIgKzc2LDIyIEBA
IHB1YmxpYzoKICAgICB9CiAgICAgCiAgICAgc3RhdGljIENhbGxMaW5rU3RhdHVzIGNvbXB1dGVG
b3IoQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7CisKKyNpZiBFTkFCTEUoSklU
KQorICAgIC8vIENvbXB1dGVzIHRoZSBzdGF0dXMgYXNzdW1pbmcgdGhhdCB3ZSBuZXZlciB0b29r
IHNsb3cgcGF0aCBhbmQgbmV2ZXIgcHJldmlvdXNseQorICAgIC8vIGV4aXRlZC4KKyAgICBzdGF0
aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZvcihjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwg
Q2FsbExpbmtJbmZvJik7CisjZW5kaWYKKyAgICAKKyAgICB0eXBlZGVmIEhhc2hNYXA8Q29kZU9y
aWdpbiwgQ2FsbExpbmtTdGF0dXMsIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g+IENvbnRleHRN
YXA7CisgICAgCisgICAgLy8gQ29tcHV0ZXMgYWxsIG9mIHRoZSBzdGF0dXNlcyBvZiB0aGUgREZH
IGNvZGUgYmxvY2suIERvZXNuJ3QgaW5jbHVkZSBzdGF0dXNlcyB0aGF0IGhhZAorICAgIC8vIG5v
IGluZm9ybWF0aW9uLiBDdXJyZW50bHkgd2UgdXNlIHRoaXMgd2hlbiBjb21waWxpbmcgRlRMIGNv
ZGUsIHRvIGVuYWJsZSBwb2x5dmFyaWFudAorICAgIC8vIGlubGluaW5nLgorICAgIHN0YXRpYyB2
b2lkIGNvbXB1dGVERkdTdGF0dXNlcyhDb2RlQmxvY2sqIGRmZ0NvZGVCbG9jaywgQ29udGV4dE1h
cCYpOwogICAgIAotICAgIENhbGxMaW5rU3RhdHVzJiBzZXRIYXNCYWRGdW5jdGlvbkV4aXRTaXRl
KGJvb2wgZGlkSGF2ZUV4aXRTaXRlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2lzUHJvdmVk
KTsKLSAgICAgICAgaWYgKGRpZEhhdmVFeGl0U2l0ZSkgewotICAgICAgICAgICAgLy8gVHVybiB0
aGlzIGludG8gYSBjbG9zdXJlIGNhbGwuCi0gICAgICAgICAgICBtX2NhbGxUYXJnZXQgPSBKU1Zh
bHVlKCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLSAgICAKLSAg
ICBDYWxsTGlua1N0YXR1cyYgc2V0SGFzQmFkQ2FjaGVFeGl0U2l0ZShib29sIGRpZEhhdmVFeGl0
U2l0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1Byb3ZlZCk7Ci0gICAgICAgIGlmIChk
aWRIYXZlRXhpdFNpdGUpCi0gICAgICAgICAgICAqdGhpcyA9IHRha2VzU2xvd1BhdGgoKTsKLSAg
ICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLSAgICAKLSAgICBDYWxsTGlua1N0YXR1cyYgc2V0
SGFzQmFkRXhlY3V0YWJsZUV4aXRTaXRlKGJvb2wgZGlkSGF2ZUV4aXRTaXRlKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKCFtX2lzUHJvdmVkKTsKLSAgICAgICAgaWYgKGRpZEhhdmVFeGl0U2l0ZSkK
LSAgICAgICAgICAgICp0aGlzID0gdGFrZXNTbG93UGF0aCgpOwotICAgICAgICByZXR1cm4gKnRo
aXM7Ci0gICAgfQorICAgIC8vIEhlbHBlciB0aGF0IGZpcnN0IGNvbnN1bHRzIHRoZSBDb250ZXh0
TWFwIGFuZCB0aGVuIGRvZXMgY29tcHV0ZUZvcigpLgorICAgIHN0YXRpYyBDYWxsTGlua1N0YXR1
cyBjb21wdXRlRm9yKENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0IENvbnRleHRNYXAmKTsK
ICAgICAKICAgICBib29sIGlzU2V0KCkgY29uc3QgeyByZXR1cm4gbV9jYWxsVGFyZ2V0IHx8IG1f
ZXhlY3V0YWJsZSB8fCBtX2NvdWxkVGFrZVNsb3dQYXRoOyB9CiAgICAgCkBAIC0xMTksNyArMTEy
LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAK
IHByaXZhdGU6Ci0gICAgc3RhdGljIENhbGxMaW5rU3RhdHVzIGNvbXB1dGVGcm9tTExJbnQoQ29k
ZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7CisgICAgdm9pZCBtYWtlQ2xvc3VyZUNh
bGwoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX2lzUHJvdmVkKTsKKyAgICAgICAgLy8gVHVy
biB0aGlzIGludG8gYSBjbG9zdXJlIGNhbGwuCisgICAgICAgIG1fY2FsbFRhcmdldCA9IEpTVmFs
dWUoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIENhbGxMaW5rU3RhdHVzIGNvbXB1dGVGcm9t
TExJbnQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayosIHVuc2lnbmVkIGJ5
dGVjb2RlSW5kZXgpOwogICAgIAogICAgIEpTVmFsdWUgbV9jYWxsVGFyZ2V0OwogICAgIEV4ZWN1
dGFibGVCYXNlKiBtX2V4ZWN1dGFibGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSwx
MCArMTI5LDE1IEBAIENTdHJpbmcgQ29kZUJsb2NrOjpzb3VyY2VDb2RlT25PbmVMaW5lKCkKIAog
dm9pZCBDb2RlQmxvY2s6OmR1bXBBc3N1bWluZ0pJVFR5cGUoUHJpbnRTdHJlYW0mIG91dCwgSklU
Q29kZTo6SklUVHlwZSBqaXRUeXBlKSBjb25zdAogeworICAgIG91dC5wcmludChpbmZlcnJlZE5h
bWUoKSwgIiMiKTsKICAgICBpZiAoaGFzSGFzaCgpIHx8IGlzU2FmZVRvQ29tcHV0ZUhhc2goKSkK
LSAgICAgICAgb3V0LnByaW50KGluZmVycmVkTmFtZSgpLCAiIyIsIGhhc2goKSwgIjpbIiwgUmF3
UG9pbnRlcih0aGlzKSwgIi0+IiwgUmF3UG9pbnRlcihvd25lckV4ZWN1dGFibGUoKSksICIsICIs
IGppdFR5cGUsIGNvZGVUeXBlKCkpOworICAgICAgICBvdXQucHJpbnQoaGFzaCgpKTsKICAgICBl
bHNlCi0gICAgICAgIG91dC5wcmludChpbmZlcnJlZE5hbWUoKSwgIiM8bm8taGFzaD46WyIsIFJh
d1BvaW50ZXIodGhpcyksICItPiIsIFJhd1BvaW50ZXIob3duZXJFeGVjdXRhYmxlKCkpLCAiLCAi
LCBqaXRUeXBlLCBjb2RlVHlwZSgpKTsKKyAgICAgICAgb3V0LnByaW50KCI8bm8taGFzaD4iKTsK
KyAgICBvdXQucHJpbnQoIjpbIiwgUmF3UG9pbnRlcih0aGlzKSwgIi0+Iik7CisgICAgaWYgKCEh
bV9hbHRlcm5hdGl2ZSkKKyAgICAgICAgb3V0LnByaW50KFJhd1BvaW50ZXIobV9hbHRlcm5hdGl2
ZS5nZXQoKSksICItPiIpOworICAgIG91dC5wcmludChSYXdQb2ludGVyKG93bmVyRXhlY3V0YWJs
ZSgpKSwgIiwgIiwgaml0VHlwZSwgY29kZVR5cGUoKSk7CiAKICAgICBpZiAoY29kZVR5cGUoKSA9
PSBGdW5jdGlvbkNvZGUpCiAgICAgICAgIG91dC5wcmludChzcGVjaWFsaXphdGlvbktpbmQoKSk7
CkBAIC0xNDMsNiArMTQ4LDEwIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQXNzdW1pbmdKSVRUeXBl
KFByaW4KICAgICAgICAgb3V0LnByaW50KCIgKE5ldmVySW5saW5lKSIpOwogICAgIGlmIChvd25l
ckV4ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkpCiAgICAgICAgIG91dC5wcmludCgiIChTdHJp
Y3RNb2RlKSIpOworICAgIGlmICh0aGlzLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6QmFzZWxpbmVK
SVQgJiYgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb24pCisgICAgICAgIG91dC5wcmludCgiIChGVExG
YWlsKSIpOworICAgIGlmICh0aGlzLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6QmFzZWxpbmVKSVQg
JiYgbV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMKQorICAgICAgICBvdXQucHJpbnQoIiAoSGFkRlRM
UmVwbGFjZW1lbnQpIik7CiAgICAgb3V0LnByaW50KCJdIik7CiB9CiAKQEAgLTQ3NSw4ICs0ODQs
OCBAQCB2b2lkIENvZGVCbG9jazo6cHJpbnRDYWxsT3AoUHJpbnRTdHJlYW0mCiAgICAgICAgICAg
ICBpZiAodGFyZ2V0KQogICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBqaXQoJXAsIGV4ZWMg
JXApIiwgdGFyZ2V0LCB0YXJnZXQtPmV4ZWN1dGFibGUoKSk7CiAgICAgICAgIH0KLSNlbmRpZgog
ICAgICAgICBvdXQucHJpbnQoIiBzdGF0dXMoIiwgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3Io
dGhpcywgbG9jYXRpb24pLCAiKSIpOworI2VuZGlmCiAgICAgfQogICAgICsraXQ7CiAgICAgZHVt
cEFycmF5UHJvZmlsaW5nKG91dCwgaXQsIGhhc1ByaW50ZWRQcm9maWxpbmcpOwpAQCAtNTI2LDEy
ICs1MzUsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAg
b3V0LnByaW50ZigiXG4iKTsKICAgICAKICAgICBTdHViSW5mb01hcCBzdHViSW5mb3M7Ci0jaWYg
RU5BQkxFKEpJVCkKLSAgICB7Ci0gICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1f
bG9jayk7Ci0gICAgICAgIGdldFN0dWJJbmZvTWFwKGxvY2tlciwgc3R1YkluZm9zKTsKLSAgICB9
Ci0jZW5kaWYKKyAgICBnZXRTdHViSW5mb01hcChzdHViSW5mb3MpOwogICAgIAogICAgIGNvbnN0
IEluc3RydWN0aW9uKiBiZWdpbiA9IGluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgY29uc3Qg
SW5zdHJ1Y3Rpb24qIGVuZCA9IGluc3RydWN0aW9ucygpLmVuZCgpOwpAQCAtMTQ2OSw2ICsxNDcz
LDcgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soQ29weVBhcnNlZEJsb2NrVGFnLAogICAgICwgbV9p
c0NvbnN0cnVjdG9yKG90aGVyLm1faXNDb25zdHJ1Y3RvcikKICAgICAsIG1fc2hvdWxkQWx3YXlz
QmVJbmxpbmVkKHRydWUpCiAgICAgLCBtX2RpZEZhaWxGVExDb21waWxhdGlvbihmYWxzZSkKKyAg
ICAsIG1faGFzQmVlbkNvbXBpbGVkV2l0aEZUTChmYWxzZSkKICAgICAsIG1fdW5saW5rZWRDb2Rl
KCpvdGhlci5tX3ZtLCBvdGhlci5tX293bmVyRXhlY3V0YWJsZS5nZXQoKSwgb3RoZXIubV91bmxp
bmtlZENvZGUuZ2V0KCkpCiAgICAgLCBtX3N0ZXBwaW5nTW9kZShTdGVwcGluZ01vZGVEaXNhYmxl
ZCkKICAgICAsIG1fbnVtQnJlYWtwb2ludHMoMCkKQEAgLTE1MjUsNiArMTUzMCw3IEBAIENvZGVC
bG9jazo6Q29kZUJsb2NrKFNjcmlwdEV4ZWN1dGFibGUqIG8KICAgICAsIG1faXNDb25zdHJ1Y3Rv
cih1bmxpbmtlZENvZGVCbG9jay0+aXNDb25zdHJ1Y3RvcigpKQogICAgICwgbV9zaG91bGRBbHdh
eXNCZUlubGluZWQodHJ1ZSkKICAgICAsIG1fZGlkRmFpbEZUTENvbXBpbGF0aW9uKGZhbHNlKQor
ICAgICwgbV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMKGZhbHNlKQogICAgICwgbV91bmxpbmtlZENv
ZGUobV9nbG9iYWxPYmplY3QtPnZtKCksIG93bmVyRXhlY3V0YWJsZSwgdW5saW5rZWRDb2RlQmxv
Y2spCiAgICAgLCBtX3N0ZXBwaW5nTW9kZShTdGVwcGluZ01vZGVEaXNhYmxlZCkKICAgICAsIG1f
bnVtQnJlYWtwb2ludHMoMCkKQEAgLTE4NTQsMjMgKzE4NjAsMTMgQEAgQ29kZUJsb2NrOjpDb2Rl
QmxvY2soU2NyaXB0RXhlY3V0YWJsZSogbwogCiAgICAgLy8gSWYgdGhlIGNvbmN1cnJlbnQgdGhy
ZWFkIHdpbGwgd2FudCB0aGUgY29kZSBibG9jaydzIGhhc2gsIHRoZW4gY29tcHV0ZSBpdCBoZXJl
CiAgICAgLy8gc3luY2hyb25vdXNseS4KLSAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5
KCkKLSAgICAgICAgfHwgT3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkKLSAgICAgICAgfHwg
T3B0aW9uczo6ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCkKLSAgICAgICAgfHwgT3B0aW9uczo6ZHVt
cEdyYXBoQXRFYWNoUGhhc2UoKQotICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRp
b24oKQotICAgICAgICB8fCBPcHRpb25zOjpsb2dDb21waWxhdGlvbkNoYW5nZXMoKQotICAgICAg
ICB8fCBPcHRpb25zOjp2YWxpZGF0ZUdyYXBoKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRh
dGVHcmFwaEF0RWFjaFBoYXNlKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpCi0g
ICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkKLSAgICAgICAgfHwg
T3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9z
ZUNGQSgpKQorICAgIGlmIChPcHRpb25zOjphbHdheXNDb21wdXRlSGFzaCgpKQogICAgICAgICBo
YXNoKCk7CiAKICAgICBpZiAoT3B0aW9uczo6ZHVtcEdlbmVyYXRlZEJ5dGVjb2RlcygpKQogICAg
ICAgICBkdW1wQnl0ZWNvZGUoKTsKIAorICAgIAogICAgIG1faGVhcC0+bV9jb2RlQmxvY2tzLmFk
ZCh0aGlzKTsKICAgICBtX2hlYXAtPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChzaXplb2YoQ29kZUJs
b2NrKSArIG1faW5zdHJ1Y3Rpb25zLnNpemUoKSAqIHNpemVvZihJbnN0cnVjdGlvbikpOwogfQpA
QCAtMjMzNCwxNiArMjMzMCwyNiBAQCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlv
bmFsbHkoCiAjZW5kaWYKIH0KIAordm9pZCBDb2RlQmxvY2s6OmdldFN0dWJJbmZvTWFwKGNvbnN0
IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01hcCYgcmVzdWx0KQorewogI2lmIEVOQUJM
RShKSVQpCi1TdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRTdHViSW5mbygpCisgICAg
dG9IYXNoTWFwKG1fc3R1YkluZm9zLCBnZXRTdHJ1Y3R1cmVTdHViSW5mb0NvZGVPcmlnaW4sIHJl
c3VsdCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOworI2VuZGlmCit9CisKK3Zv
aWQgQ29kZUJsb2NrOjpnZXRTdHViSW5mb01hcChTdHViSW5mb01hcCYgcmVzdWx0KQogewogICAg
IENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgcmV0dXJuIG1fc3R1Yklu
Zm9zLmFkZCgpOworICAgIGdldFN0dWJJbmZvTWFwKGxvY2tlciwgcmVzdWx0KTsKIH0KIAotdm9p
ZCBDb2RlQmxvY2s6OmdldFN0dWJJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBT
dHViSW5mb01hcCYgcmVzdWx0KQorI2lmIEVOQUJMRShKSVQpCitTdHJ1Y3R1cmVTdHViSW5mbyog
Q29kZUJsb2NrOjphZGRTdHViSW5mbygpCiB7Ci0gICAgdG9IYXNoTWFwKG1fc3R1YkluZm9zLCBn
ZXRTdHJ1Y3R1cmVTdHViSW5mb0NvZGVPcmlnaW4sIHJlc3VsdCk7CisgICAgQ29uY3VycmVudEpJ
VExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICByZXR1cm4gbV9zdHViSW5mb3MuYWRkKCk7CiB9
CiAKIHZvaWQgQ29kZUJsb2NrOjpyZXNldFN0dWIoU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZv
KQpAQCAtMjg5OSw2ICsyOTA1LDExIEBAIHZvaWQgQ29kZUJsb2NrOjpjb3VudFJlb3B0aW1pemF0
aW9uKCkKIHVuc2lnbmVkIENvZGVCbG9jazo6bnVtYmVyT2ZERkdDb21waWxlcygpCiB7CiAgICAg
QVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUoKSkpOworICAgIGlmIChPcHRp
b25zOjp0ZXN0VGhlRlRMKCkpIHsKKyAgICAgICAgaWYgKG1fZGlkRmFpbEZUTENvbXBpbGF0aW9u
KQorICAgICAgICAgICAgcmV0dXJuIDEwMDAwMDA7CisgICAgICAgIHJldHVybiAobV9oYXNCZWVu
Q29tcGlsZWRXaXRoRlRMID8gMSA6IDApICsgbV9yZW9wdGltaXphdGlvblJldHJ5Q291bnRlcjsK
KyAgICB9CiAgICAgcmV0dXJuIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQocmVwbGFjZW1lbnQo
KS0+aml0VHlwZSgpKSA/IDEgOiAwKSArIG1fcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXI7CiB9
CiAKQEAgLTMwMTAsNyArMzAyMSw3IEBAIGludDMyX3QgQ29kZUJsb2NrOjphZGp1c3RlZENvdW50
ZXJWYWx1ZSgKIGJvb2wgQ29kZUJsb2NrOjpjaGVja0lmT3B0aW1pemF0aW9uVGhyZXNob2xkUmVh
Y2hlZCgpCiB7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgaWYgKERGRzo6V29ya2xpc3QqIHdv
cmtsaXN0ID0gbV92bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAgICBpZiAoREZHOjpXb3JrbGlzdCog
d29ya2xpc3QgPSBERkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKSkgewogICAg
ICAgICBpZiAod29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUoREZHOjpDb21waWxhdGlvbktleSh0
aGlzLCBERkc6OkRGR01vZGUpKQogICAgICAgICAgICAgPT0gREZHOjpXb3JrbGlzdDo6Q29tcGls
ZWQpIHsKICAgICAgICAgICAgIG9wdGltaXplTmV4dEludm9jYXRpb24oKTsKQEAgLTMzNDEsNiAr
MzM1MiwxMSBAQCB1bnNpZ25lZCBDb2RlQmxvY2s6OmZyYW1lUmVnaXN0ZXJDb3VudCgpCiAgICAg
fQogfQogCitpbnQgQ29kZUJsb2NrOjpzdGFja1BvaW50ZXJPZmZzZXQoKQoreworICAgIHJldHVy
biB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVyQ291bnQoKSAtIDEpLm9mZnNl
dCgpOworfQorCiBzaXplX3QgQ29kZUJsb2NrOjpwcmVkaWN0ZWRNYWNoaW5lQ29kZVNpemUoKQog
ewogICAgIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgZnJvbSBDb2RlQmxvY2s6OkNvZGVCbG9jayBi
ZWZvcmUgZWl0aGVyIG1fdm0gb3IgdGhlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBleHByZXNzaW9uUmFuZ2VGb3JCeXRlY29kZU9mZnNldCh1
bnNpZ25lZCBieXRlY29kZU9mZnNldCwgaW50JiBkaXZvdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCYgc3RhcnRPZmZzZXQsIGludCYgZW5kT2Zmc2V0LCB1
bnNpZ25lZCYgbGluZSwgdW5zaWduZWQmIGNvbHVtbik7CiAKKyAgICB2b2lkIGdldFN0dWJJbmZv
TWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01hcCYgcmVzdWx0KTsKKyAg
ICB2b2lkIGdldFN0dWJJbmZvTWFwKFN0dWJJbmZvTWFwJiByZXN1bHQpOworCiAjaWYgRU5BQkxF
KEpJVCkKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1YkluZm8oKTsKICAgICBCYWc8U3Ry
dWN0dXJlU3R1YkluZm8+OjppdGVyYXRvciBiZWdpbigpIHsgcmV0dXJuIG1fc3R1YkluZm9zLmJl
Z2luKCk7IH0KQEAgLTE4Miw4ICsxODUsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0U3R1
YihTdHJ1Y3R1cmVTdHViSW5mbyYpOwogICAgIAotICAgIHZvaWQgZ2V0U3R1YkluZm9NYXAoY29u
c3QgQ29uY3VycmVudEpJVExvY2tlciYsIFN0dWJJbmZvTWFwJiByZXN1bHQpOwotCiAgICAgQnlW
YWxJbmZvJiBnZXRCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKICAgICB7CiAgICAg
ICAgIHJldHVybiAqKGJpbmFyeVNlYXJjaDxCeVZhbEluZm8sIHVuc2lnbmVkPihtX2J5VmFsSW5m
b3MsIG1fYnlWYWxJbmZvcy5zaXplKCksIGJ5dGVjb2RlSW5kZXgsIGdldEJ5VmFsSW5mb0J5dGVj
b2RlSW5kZXgpKTsKQEAgLTI1NiwxNyArMjU3LDE1IEBAIHB1YmxpYzoKICAgICAvLyBFeGFjdGx5
IGVxdWl2YWxlbnQgdG8gY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+bmV3UmVwbGFjZW1l
bnRDb2RlQmxvY2tGb3IoY29kZUJsb2NrLT5zcGVjaWFsaXphdGlvbktpbmQoKSkKICAgICBQYXNz
UmVmUHRyPENvZGVCbG9jaz4gbmV3UmVwbGFjZW1lbnQoKTsKICAgICAKLSAgICB2b2lkIHNldEpJ
VENvZGUoUGFzc1JlZlB0cjxKSVRDb2RlPiBjb2RlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29k
ZVdpdGhBcml0eUNoZWNrKQorICAgIHZvaWQgc2V0SklUQ29kZShQYXNzUmVmUHRyPEpJVENvZGU+
IGNvZGUpCiAgICAgewogICAgICAgICBBU1NFUlQobV9oZWFwLT5pc0RlZmVycmVkKCkpOwogICAg
ICAgICBtX2hlYXAtPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChjb2RlLT5zaXplKCkpOwogICAgICAg
ICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBXVEY6OnN0b3Jl
U3RvcmVGZW5jZSgpOyAvLyBUaGlzIGlzIHByb2JhYmx5IG5vdCBuZWVkZWQgYmVjYXVzZSB0aGUg
bG9jayB3aWxsIGFsc28gZG8gc29tZXRoaW5nIHNpbWlsYXIsIGJ1dCBpdCdzIGdvb2QgdG8gYmUg
cGFyYW5vaWQuCiAgICAgICAgIG1faml0Q29kZSA9IGNvZGU7Ci0gICAgICAgIG1faml0Q29kZVdp
dGhBcml0eUNoZWNrID0gY29kZVdpdGhBcml0eUNoZWNrOwogICAgIH0KICAgICBQYXNzUmVmUHRy
PEpJVENvZGU+IGppdENvZGUoKSB7IHJldHVybiBtX2ppdENvZGU7IH0KLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgaml0Q29kZVdpdGhBcml0eUNoZWNrKCkgeyByZXR1cm4gbV9qaXRDb2RlV2l0
aEFyaXR5Q2hlY2s7IH0KICAgICBKSVRDb2RlOjpKSVRUeXBlIGppdFR5cGUoKSBjb25zdAogICAg
IHsKICAgICAgICAgSklUQ29kZSogaml0Q29kZSA9IG1faml0Q29kZS5nZXQoKTsKQEAgLTQ4OSw4
ICs0ODgsOCBAQCBwdWJsaWM6CiAgICAgUmFyZUNhc2VQcm9maWxlKiBzcGVjaWFsRmFzdENhc2VQ
cm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQogICAgIHsKICAgICAg
ICAgcmV0dXJuIHRyeUJpbmFyeVNlYXJjaDxSYXJlQ2FzZVByb2ZpbGUsIGludD4oCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3BlY2lhbEZh
c3RDYXNlUHJvZmlsZXMsIG1fc3BlY2lhbEZhc3RDYXNlUHJvZmlsZXMuc2l6ZSgpLCBieXRlY29k
ZU9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQpOworICAgICAgICAgICAgbV9z
cGVjaWFsRmFzdENhc2VQcm9maWxlcywgbV9zcGVjaWFsRmFzdENhc2VQcm9maWxlcy5zaXplKCks
IGJ5dGVjb2RlT2Zmc2V0LAorICAgICAgICAgICAgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVP
ZmZzZXQpOwogICAgIH0KIAogICAgIGJvb2wgbGlrZWx5VG9UYWtlU3BlY2lhbEZhc3RDYXNlKGlu
dCBieXRlY29kZU9mZnNldCkKQEAgLTU3NiwxMSArNTc1LDE1IEBAIHB1YmxpYzoKICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgcmV0dXJuIG1fZXhp
dFByb2ZpbGUuYWRkKGxvY2tlciwgc2l0ZSk7CiAgICAgfQotICAgICAgICAKKworICAgIGJvb2wg
aGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBjb25zdCBERkc6
OkZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9l
eGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShsb2NrZXIsIHNpdGUpOworICAgIH0KICAgICBib29sIGhh
c0V4aXRTaXRlKGNvbnN0IERGRzo6RnJlcXVlbnRFeGl0U2l0ZSYgc2l0ZSkgY29uc3QKICAgICB7
CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgICAgIHJl
dHVybiBtX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKGxvY2tlciwgc2l0ZSk7CisgICAgICAgIHJl
dHVybiBoYXNFeGl0U2l0ZShsb2NrZXIsIHNpdGUpOwogICAgIH0KIAogICAgIERGRzo6RXhpdFBy
b2ZpbGUmIGV4aXRQcm9maWxlKCkgeyByZXR1cm4gbV9leGl0UHJvZmlsZTsgfQpAQCAtNTg5LDEx
ICs1OTIsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gbV9sYXp5T3BlcmFuZFZh
bHVlUHJvZmlsZXM7CiAgICAgfQotI2Vsc2UgLy8gRU5BQkxFKERGR19KSVQpCi0gICAgYm9vbCBh
ZGRGcmVxdWVudEV4aXRTaXRlKGNvbnN0IERGRzo6RnJlcXVlbnRFeGl0U2l0ZSYpCi0gICAgewot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQog
CiAgICAgLy8gQ29uc3RhbnQgUG9vbApAQCAtNjc5LDkgKzY3NywxOSBAQCBwdWJsaWM6CiAKICAg
ICBCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXMmIGxpdmVuZXNzQW5hbHlzaXMoKQogICAgIHsKLSAg
ICAgICAgaWYgKCFtX2xpdmVuZXNzQW5hbHlzaXMpCi0gICAgICAgICAgICBtX2xpdmVuZXNzQW5h
bHlzaXMgPSBzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcz4odGhpcyk7
Ci0gICAgICAgIHJldHVybiAqbV9saXZlbmVzc0FuYWx5c2lzOworICAgICAgICB7CisgICAgICAg
ICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICAgICAgaWYg
KCEhbV9saXZlbmVzc0FuYWx5c2lzKQorICAgICAgICAgICAgICAgIHJldHVybiAqbV9saXZlbmVz
c0FuYWx5c2lzOworICAgICAgICB9CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxCeXRlY29kZUxp
dmVuZXNzQW5hbHlzaXM+IGFuYWx5c2lzID0KKyAgICAgICAgICAgIHN0ZDo6bWFrZV91bmlxdWU8
Qnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzPih0aGlzKTsKKyAgICAgICAgeworICAgICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgICAgIGlmICghbV9s
aXZlbmVzc0FuYWx5c2lzKQorICAgICAgICAgICAgICAgIG1fbGl2ZW5lc3NBbmFseXNpcyA9IHN0
ZDo6bW92ZShhbmFseXNpcyk7CisgICAgICAgICAgICByZXR1cm4gKm1fbGl2ZW5lc3NBbmFseXNp
czsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICB2b2lkIHZhbGlkYXRlKCk7CkBAIC04NjYs
NiArODc0LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQWxsUHJlZGljdGlvbnMoKTsKIAog
ICAgIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudCgpOworICAgIGludCBzdGFja1BvaW50ZXJP
ZmZzZXQoKTsKIAogICAgIGJvb2wgaGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWduZWQg
bGluZSwgdW5zaWduZWQgY29sdW1uKTsKIApAQCAtODkxLDcgKzkwMCw3IEBAIHB1YmxpYzoKIAog
ICAgIGludCBtX251bUNhbGxlZVJlZ2lzdGVyczsKICAgICBpbnQgbV9udW1WYXJzOwotICAgIGJv
b2wgbV9pc0NvbnN0cnVjdG9yOworICAgIGJvb2wgbV9pc0NvbnN0cnVjdG9yIDogMTsKICAgICAK
ICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgcHVibGljOyBpdCdzIHRoZSByZXNwb25zaWJp
bGl0eSBvZiBhbnlvbmUgZG9pbmcgYW55CiAgICAgLy8gb2YgdGhlIGZvbGxvd2luZyB0byBob2xk
IHRoZSBsb2NrOgpAQCAtOTExLDEwICs5MjAsMTEgQEAgcHVibGljOgogICAgIC8vIGNvbmN1cnJl
bnQgY29tcGlsYXRpb24gdGhyZWFkcyBmaW5pc2ggd2hhdCB0aGV5J3JlIGRvaW5nLgogICAgIG11
dGFibGUgQ29uY3VycmVudEpJVExvY2sgbV9sb2NrOwogICAgIAotICAgIGJvb2wgbV9zaG91bGRB
bHdheXNCZUlubGluZWQ7Ci0gICAgYm9vbCBtX2FsbFRyYW5zaXRpb25zSGF2ZUJlZW5NYXJrZWQ7
IC8vIEluaXRpYWxpemVkIGFuZCB1c2VkIG9uIGV2ZXJ5IEdDLgorICAgIGJvb2wgbV9zaG91bGRB
bHdheXNCZUlubGluZWQ7IC8vIE5vdCBhIGJpdGZpZWxkIGJlY2F1c2UgdGhlIEpJVCB3YW50cyB0
byBzdG9yZSB0byBpdC4KKyAgICBib29sIG1fYWxsVHJhbnNpdGlvbnNIYXZlQmVlbk1hcmtlZCA6
IDE7IC8vIEluaXRpYWxpemVkIGFuZCB1c2VkIG9uIGV2ZXJ5IEdDLgogICAgIAotICAgIGJvb2wg
bV9kaWRGYWlsRlRMQ29tcGlsYXRpb247CisgICAgYm9vbCBtX2RpZEZhaWxGVExDb21waWxhdGlv
biA6IDE7CisgICAgYm9vbCBtX2hhc0JlZW5Db21waWxlZFdpdGhGVEwgOiAxOwogCiAgICAgLy8g
SW50ZXJuYWwgbWV0aG9kcyBmb3IgdXNlIGJ5IHZhbGlkYXRpb24gY29kZS4gSXQgd291bGQgYmUg
cHJpdmF0ZSBpZiBpdCB3YXNuJ3QKICAgICAvLyBmb3IgdGhlIGZhY3QgdGhhdCB3ZSB1c2UgaXQg
ZnJvbSBhbm9ueW1vdXMgbmFtZXNwYWNlcy4KQEAgLTEwNTQsNyArMTA2NCw2IEBAIHByaXZhdGU6
CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PExMSW50Q2FsbExpbmtJbmZvLCBCYXNpY1Jhd1NlbnRp
bmVsTm9kZTxMTEludENhbGxMaW5rSW5mbz4+IG1faW5jb21pbmdMTEludENhbGxzOwogI2VuZGlm
CiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29kZTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgbV9qaXRDb2RlV2l0aEFyaXR5Q2hlY2s7CiAjaWYgRU5BQkxFKEpJVCkKICAgICBCYWc8U3Ry
dWN0dXJlU3R1YkluZm8+IG1fc3R1YkluZm9zOwogICAgIFZlY3RvcjxCeVZhbEluZm8+IG1fYnlW
YWxJbmZvczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2lu
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9y
aWdpbi5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlT3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNjQgQEAgdW5z
aWduZWQgQ29kZU9yaWdpbjo6aW5saW5lRGVwdGgoKSBjb25zdAogewogICAgIHJldHVybiBpbmxp
bmVEZXB0aEZvckNhbGxGcmFtZShpbmxpbmVDYWxsRnJhbWUpOwogfQorCitib29sIENvZGVPcmln
aW46OmlzQXBwcm94aW1hdGVseUVxdWFsVG8oY29uc3QgQ29kZU9yaWdpbiYgb3RoZXIpIGNvbnN0
Cit7CisgICAgQ29kZU9yaWdpbiBhID0gKnRoaXM7CisgICAgQ29kZU9yaWdpbiBiID0gb3RoZXI7
CisKKyAgICBpZiAoIWEuaXNTZXQoKSkKKyAgICAgICAgcmV0dXJuICFiLmlzU2V0KCk7CisgICAg
aWYgKCFiLmlzU2V0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYS5p
c0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKQorICAgICAgICByZXR1cm4gYi5pc0hhc2hUYWJsZURl
bGV0ZWRWYWx1ZSgpOworICAgIGlmIChiLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIEFTU0VSVChh
LmlzU2V0KCkpOworICAgICAgICBBU1NFUlQoYi5pc1NldCgpKTsKKyAgICAgICAgCisgICAgICAg
IGlmIChhLmJ5dGVjb2RlSW5kZXggIT0gYi5ieXRlY29kZUluZGV4KQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYgKCghIWEuaW5saW5lQ2FsbEZyYW1lKSAh
PSAoISFiLmlubGluZUNhbGxGcmFtZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIAorICAgICAgICBpZiAoIWEuaW5saW5lQ2FsbEZyYW1lKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIAorICAgICAgICBpZiAoYS5pbmxpbmVDYWxsRnJhbWUtPmV4ZWN1dGFi
bGUgIT0gYi5pbmxpbmVDYWxsRnJhbWUtPmV4ZWN1dGFibGUpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIAorICAgICAgICBhID0gYS5pbmxpbmVDYWxsRnJhbWUtPmNhbGxlcjsK
KyAgICAgICAgYiA9IGIuaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7CisgICAgfQorfQorCit1bnNp
Z25lZCBDb2RlT3JpZ2luOjphcHByb3hpbWF0ZUhhc2goKSBjb25zdAoreworICAgIGlmICghaXNT
ZXQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCkpCisgICAgICAgIHJldHVybiAxOwogICAgIAorICAgIHVuc2lnbmVkIHJlc3VsdCA9IDI7Cisg
ICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gKnRoaXM7CisgICAgZm9yICg7OykgeworICAgICAg
ICByZXN1bHQgKz0gY29kZU9yaWdpbi5ieXRlY29kZUluZGV4OworICAgICAgICAKKyAgICAgICAg
aWYgKCFjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSkKKyAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgIAorICAgICAgICByZXN1bHQgKz0gV1RGOjpQdHJIYXNoPEpTQ2VsbCo+Ojpo
YXNoKGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5leGVjdXRhYmxlLmdldCgpKTsKKyAgICAg
ICAgCisgICAgICAgIGNvZGVPcmlnaW4gPSBjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZS0+Y2Fs
bGVyOworICAgIH0KK30KKwogVmVjdG9yPENvZGVPcmlnaW4+IENvZGVPcmlnaW46OmlubGluZVN0
YWNrKCkgY29uc3QKIHsKICAgICBWZWN0b3I8Q29kZU9yaWdpbj4gcmVzdWx0KGlubGluZURlcHRo
KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5o
CShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw3IEBAIHN0cnVjdCBDb2RlT3Jp
Z2luIHsKICAgICAKICAgICBDb2RlT3JpZ2luKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlw
ZSkKICAgICAgICAgOiBieXRlY29kZUluZGV4KGludmFsaWRCeXRlY29kZUluZGV4KQotICAgICAg
ICAsIGlubGluZUNhbGxGcmFtZShiaXR3aXNlX2Nhc3Q8SW5saW5lQ2FsbEZyYW1lKj4oc3RhdGlj
X2Nhc3Q8dWludHB0cl90PigxKSkpCisgICAgICAgICwgaW5saW5lQ2FsbEZyYW1lKGRlbGV0ZWRN
YXJrZXIoKSkKICAgICB7CiAgICAgfQogICAgIApAQCAtOTcsMTUgKzk3LDI3IEBAIHN0cnVjdCBD
b2RlT3JpZ2luIHsKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29kZU9yaWdpbiYgb3RoZXIp
IGNvbnN0OwogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29u
c3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KICAgICAKKyAgICAvLyBUaGlzIGNoZWNr
cyBpZiB0aGUgdHdvIGNvZGUgb3JpZ2lucyBjb3JyZXNwb25kIHRvIHRoZSBzYW1lIHN0YWNrIHRy
YWNlIHNuaXBwZXRzLAorICAgIC8vIGJ1dCBpZ25vcmUgd2hldGhlciB0aGUgSW5saW5lQ2FsbEZy
YW1lJ3MgYXJlIGlkZW50aWNhbC4KKyAgICBib29sIGlzQXBwcm94aW1hdGVseUVxdWFsVG8oY29u
c3QgQ29kZU9yaWdpbiYgb3RoZXIpIGNvbnN0OworICAgIAorICAgIHVuc2lnbmVkIGFwcHJveGlt
YXRlSGFzaCgpIGNvbnN0OworICAgIAogICAgIC8vIEdldCB0aGUgaW5saW5lIHN0YWNrLiBUaGlz
IGlzIHNsb3csIGFuZCBpcyBpbnRlbmRlZCBmb3IgZGVidWdnaW5nIG9ubHkuCiAgICAgVmVjdG9y
PENvZGVPcmlnaW4+IGlubGluZVN0YWNrKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkdW1wSW5Db250ZXh0KFByaW50U3RyZWFtJiwg
RHVtcENvbnRleHQqKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgSW5saW5lQ2FsbEZy
YW1lKiBkZWxldGVkTWFya2VyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8
SW5saW5lQ2FsbEZyYW1lKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigxKSk7CisgICAgfQogfTsK
IAogc3RydWN0IElubGluZUNhbGxGcmFtZSB7Ci0gICAgVmVjdG9yPFZhbHVlUmVjb3Zlcnk+IGFy
Z3VtZW50czsKKyAgICBWZWN0b3I8VmFsdWVSZWNvdmVyeT4gYXJndW1lbnRzOyAvLyBJbmNsdWRl
cyAndGhpcycuCiAgICAgV3JpdGVCYXJyaWVyPFNjcmlwdEV4ZWN1dGFibGU+IGV4ZWN1dGFibGU7
CiAgICAgVmFsdWVSZWNvdmVyeSBjYWxsZWVSZWNvdmVyeTsKICAgICBDb2RlT3JpZ2luIGNhbGxl
cjsKQEAgLTE4NSw2ICsxOTcsMTIgQEAgc3RydWN0IENvZGVPcmlnaW5IYXNoIHsKICAgICBzdGF0
aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9Owog
CitzdHJ1Y3QgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVk
IGhhc2goY29uc3QgQ29kZU9yaWdpbiYga2V5KSB7IHJldHVybiBrZXkuYXBwcm94aW1hdGVIYXNo
KCk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDb2RlT3JpZ2luJiBhLCBjb25zdCBD
b2RlT3JpZ2luJiBiKSB7IHJldHVybiBhLmlzQXBwcm94aW1hdGVseUVxdWFsVG8oYik7IH0KKyAg
ICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7
Cit9OworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNlIFdURiB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAJKHJl
dmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0
UHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDggQEAgRXhpdFByb2ZpbGU6
On5FeGl0UHJvZmlsZSgpIHsgfQogCiBib29sIEV4aXRQcm9maWxlOjphZGQoY29uc3QgQ29uY3Vy
cmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpCiB7CisgICAgQVNT
RVJUKHNpdGUuaml0VHlwZSgpICE9IEV4aXRGcm9tQW55dGhpbmcpOworICAgIAogICAgIC8vIElm
IHdlJ3ZlIG5ldmVyIHNlZW4gYW55IGZyZXF1ZW50IGV4aXRzIHRoZW4gY3JlYXRlIHRoZSBsaXN0
IGFuZCBwdXQgdGhpcyBzaXRlCiAgICAgLy8gaW50byBpdC4KICAgICBpZiAoIW1fZnJlcXVlbnRF
eGl0U2l0ZXMpIHsKQEAgLTc4LDcgKzgwLDcgQEAgYm9vbCBFeGl0UHJvZmlsZTo6aGFzRXhpdFNp
dGUoY29uc3QgQ29uYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgZm9yICh1bnNp
Z25lZCBpID0gbV9mcmVxdWVudEV4aXRTaXRlcy0+c2l6ZSgpOyBpLS07KSB7Ci0gICAgICAgIGlm
IChtX2ZyZXF1ZW50RXhpdFNpdGVzLT5hdChpKSA9PSBzaXRlKQorICAgICAgICBpZiAoc2l0ZS5z
dWJzdW1lcyhtX2ZyZXF1ZW50RXhpdFNpdGVzLT5hdChpKSkpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw4ICsyNiwxMSBAQAogI2lmbmRlZiBE
RkdFeGl0UHJvZmlsZV9oCiAjZGVmaW5lIERGR0V4aXRQcm9maWxlX2gKIAorI2lmIEVOQUJMRShE
RkdfSklUKQorCiAjaW5jbHVkZSAiQ29uY3VycmVudEpJVExvY2suaCIKICNpbmNsdWRlICJFeGl0
S2luZC5oIgorI2luY2x1ZGUgIkV4aXRpbmdKSVRUeXBlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpA
QCAtMzksMTggKzQyLDIxIEBAIHB1YmxpYzoKICAgICBGcmVxdWVudEV4aXRTaXRlKCkKICAgICAg
ICAgOiBtX2J5dGVjb2RlT2Zmc2V0KDApIC8vIDAgPSBlbXB0eSB2YWx1ZQogICAgICAgICAsIG1f
a2luZChFeGl0S2luZFVuc2V0KQorICAgICAgICAsIG1faml0VHlwZShFeGl0RnJvbUFueXRoaW5n
KQogICAgIHsKICAgICB9CiAgICAgCiAgICAgRnJlcXVlbnRFeGl0U2l0ZShXVEY6Okhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZVR5cGUpCiAgICAgICAgIDogbV9ieXRlY29kZU9mZnNldCgxKSAvLyAxID0g
ZGVsZXRlZCB2YWx1ZQogICAgICAgICAsIG1fa2luZChFeGl0S2luZFVuc2V0KQorICAgICAgICAs
IG1faml0VHlwZShFeGl0RnJvbUFueXRoaW5nKQogICAgIHsKICAgICB9CiAgICAgCi0gICAgZXhw
bGljaXQgRnJlcXVlbnRFeGl0U2l0ZSh1bnNpZ25lZCBieXRlY29kZU9mZnNldCwgRXhpdEtpbmQg
a2luZCkKKyAgICBleHBsaWNpdCBGcmVxdWVudEV4aXRTaXRlKHVuc2lnbmVkIGJ5dGVjb2RlT2Zm
c2V0LCBFeGl0S2luZCBraW5kLCBFeGl0aW5nSklUVHlwZSBqaXRUeXBlID0gRXhpdEZyb21Bbnl0
aGluZykKICAgICAgICAgOiBtX2J5dGVjb2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KQogICAgICAg
ICAsIG1fa2luZChraW5kKQorICAgICAgICAsIG1faml0VHlwZShqaXRUeXBlKQogICAgIHsKICAg
ICAgICAgaWYgKG1fa2luZCA9PSBBcmd1bWVudHNFc2NhcGVkKSB7CiAgICAgICAgICAgICAvLyBD
b3VudCB0aGlzIG9uZSBnbG9iYWxseS4gSXQgZG9lc24ndCBtYXR0ZXIgd2hlcmUgaW4gdGhlIGNv
ZGUgYmxvY2sgdGhlIGFyZ3VtZW50cyBleGNhcGVkOwpAQCAtNjEsOSArNjcsMTAgQEAgcHVibGlj
OgogICAgIAogICAgIC8vIFVzZSB0aGlzIGNvbnN0cnVjdG9yIGlmIHlvdSB3aXNoIGZvciB0aGUg
ZXhpdCBzaXRlIHRvIGJlIGNvdW50ZWQgZ2xvYmFsbHkgd2l0aGluIGl0cwogICAgIC8vIGNvZGUg
YmxvY2suCi0gICAgZXhwbGljaXQgRnJlcXVlbnRFeGl0U2l0ZShFeGl0S2luZCBraW5kKQorICAg
IGV4cGxpY2l0IEZyZXF1ZW50RXhpdFNpdGUoRXhpdEtpbmQga2luZCwgRXhpdGluZ0pJVFR5cGUg
aml0VHlwZSA9IEV4aXRGcm9tQW55dGhpbmcpCiAgICAgICAgIDogbV9ieXRlY29kZU9mZnNldCgw
KQogICAgICAgICAsIG1fa2luZChraW5kKQorICAgICAgICAsIG1faml0VHlwZShqaXRUeXBlKQog
ICAgIHsKICAgICB9CiAgICAgCkBAIC03NSwxNiArODIsMzYgQEAgcHVibGljOgogICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBvdGhlcikgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0ID09IG90aGVyLm1fYnl0ZWNvZGVPZmZzZXQK
LSAgICAgICAgICAgICYmIG1fa2luZCA9PSBvdGhlci5tX2tpbmQ7CisgICAgICAgICAgICAmJiBt
X2tpbmQgPT0gb3RoZXIubV9raW5kCisgICAgICAgICAgICAmJiBtX2ppdFR5cGUgPT0gb3RoZXIu
bV9qaXRUeXBlOworICAgIH0KKyAgICAKKyAgICBib29sIHN1YnN1bWVzKGNvbnN0IEZyZXF1ZW50
RXhpdFNpdGUmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKG1fYnl0ZWNvZGVPZmZz
ZXQgIT0gb3RoZXIubV9ieXRlY29kZU9mZnNldCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgaWYgKG1fa2luZCAhPSBvdGhlci5tX2tpbmQpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGlmIChtX2ppdFR5cGUgPT0gRXhpdEZyb21Bbnl0aGluZykKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gbV9qaXRUeXBlID09IG90aGVyLm1f
aml0VHlwZTsKICAgICB9CiAgICAgCiAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0CiAgICAgewot
ICAgICAgICByZXR1cm4gV1RGOjppbnRIYXNoKG1fYnl0ZWNvZGVPZmZzZXQpICsgbV9raW5kOwor
ICAgICAgICByZXR1cm4gV1RGOjppbnRIYXNoKG1fYnl0ZWNvZGVPZmZzZXQpICsgbV9raW5kICsg
bV9qaXRUeXBlICogNzsKICAgICB9CiAgICAgCiAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQo
KSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0OyB9CiAgICAgRXhpdEtpbmQga2luZCgp
IGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQorICAgIEV4aXRpbmdKSVRUeXBlIGppdFR5cGUoKSBj
b25zdCB7IHJldHVybiBtX2ppdFR5cGU7IH0KKyAgICAKKyAgICBGcmVxdWVudEV4aXRTaXRlIHdp
dGhKSVRUeXBlKEV4aXRpbmdKSVRUeXBlIGppdFR5cGUpIGNvbnN0CisgICAgeworICAgICAgICBG
cmVxdWVudEV4aXRTaXRlIHJlc3VsdCA9ICp0aGlzOworICAgICAgICByZXN1bHQubV9qaXRUeXBl
ID0gaml0VHlwZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CiAKICAgICBib29sIGlz
SGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QKICAgICB7CkBAIC05NCw2ICsxMjEsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYnl0ZWNvZGVPZmZzZXQ7CiAgICAgRXhp
dEtpbmQgbV9raW5kOworICAgIEV4aXRpbmdKSVRUeXBlIG1faml0VHlwZTsKIH07CiAKIHN0cnVj
dCBGcmVxdWVudEV4aXRTaXRlSGFzaCB7CkBAIC0xMDQsNiArMTMyLDcgQEAgc3RydWN0IEZyZXF1
ZW50RXhpdFNpdGVIYXNoIHsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCisKIG5hbWVz
cGFjZSBXVEYgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVsdEhhc2g7CkBA
IC0xNjYsNiArMTk1LDEwIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzRXhpdFNpdGUoY29uc3Qg
RnJlcXVlbnRFeGl0U2l0ZSYgc2l0ZSkgY29uc3QKICAgICB7CisgICAgICAgIGlmIChzaXRlLmpp
dFR5cGUoKSA9PSBFeGl0RnJvbUFueXRoaW5nKSB7CisgICAgICAgICAgICByZXR1cm4gaGFzRXhp
dFNpdGUoc2l0ZS53aXRoSklUVHlwZShFeGl0RnJvbURGRykpCisgICAgICAgICAgICAgICAgfHwg
aGFzRXhpdFNpdGUoc2l0ZS53aXRoSklUVHlwZShFeGl0RnJvbUZUTCkpOworICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBtX2ZyZXF1ZW50RXhpdFNpdGVzLmZpbmQoc2l0ZSkgIT0gbV9mcmVxdWVu
dEV4aXRTaXRlcy5lbmQoKTsKICAgICB9CiAgICAgCkBAIC0xODQsNCArMjE3LDYgQEAgcHJpdmF0
ZToKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCisjZW5kaWYgLy8gRU5BQkxFKERGR19K
SVQpCisKICNlbmRpZiAvLyBERkdFeGl0UHJvZmlsZV9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcg
KzI4LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWVudW0gRXhpdEtpbmQgeworZW51bSBFeGl0
S2luZCA6IHVpbnQ4X3QgewogICAgIEV4aXRLaW5kVW5zZXQsCiAgICAgQmFkVHlwZSwgLy8gV2Ug
ZXhpdGVkIGJlY2F1c2UgYSB0eXBlIHByZWRpY3Rpb24gd2FzIHdyb25nLgogICAgIEJhZEZ1bmN0
aW9uLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVjdCBhc3N1bXB0aW9u
IGFib3V0IHdoYXQgZnVuY3Rpb24gd2Ugd291bGQgc2VlLgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0V4aXRpbmdKSVRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRpbmdKSVRUeXBlLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdGluZ0pJVFR5cGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgRXhpdGluZ0pJVFR5cGVfaAorI2RlZmluZSBFeGl0aW5nSklU
VHlwZV9oCisKKyNpbmNsdWRlICJKSVRDb2RlLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitlbnVt
IEV4aXRpbmdKSVRUeXBlIDogdWludDhfdCB7CisgICAgRXhpdEZyb21Bbnl0aGluZywKKyAgICBF
eGl0RnJvbURGRywKKyAgICBFeGl0RnJvbUZUTAorfTsKKworaW5saW5lIEV4aXRpbmdKSVRUeXBl
IGV4aXRpbmdKSVRUeXBlRm9yKEpJVENvZGU6OkpJVFR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICBjYXNlIEpJVENvZGU6OkRGR0pJVDoKKyAgICAgICAgcmV0dXJuIEV4aXRG
cm9tREZHOworICAgIGNhc2UgSklUQ29kZTo6RlRMSklUOgorICAgICAgICByZXR1cm4gRXhpdEZy
b21GVEw7CisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuIEV4aXRGcm9tQW55dGhpbmc7CisgICAgfQorfQorCit9IC8vIG5h
bWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEV4aXRpbmdKSVRUeXBlX2gKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAkocmV2aXNp
b24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0
dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCwxNiBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAorI2lmIEVOQUJMRShKSVQpCitib29sIEdldEJ5SWRTdGF0dXM6Omhhc0V4
aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9m
aWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSBqaXRUeXBl
KQoreworICAgIHJldHVybiBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6
RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRDYWNoZSwgaml0VHlwZSkpCisgICAg
ICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4
aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCwgaml0VHlwZSkpCisgICAg
ICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4
aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlLCBqaXRUeXBlKSkKKyAg
ICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50
RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50LCBq
aXRUeXBlKSk7Cit9CisjZW5kaWYKKwogR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21w
dXRlRnJvbUxMSW50KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJ
bmRleCwgU3RyaW5nSW1wbCogdWlkKQogewogICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2Nr
KTsKQEAgLTExOSwxNCArMTI5LDM0IEBAIHZvaWQgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvckNo
YWluKEdldEIKIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxv
Y2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBtYXAsIHVuc2lnbmVkIGJ5dGVjb2RlSW5k
ZXgsIFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihw
cm9maWxlZEJsb2NrLT5tX2xvY2spOworCisgICAgR2V0QnlJZFN0YXR1cyByZXN1bHQ7CisKKyNp
ZiBFTkFCTEUoSklUKQorICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbygKKyAgICAgICAg
bG9ja2VyLCBwcm9maWxlZEJsb2NrLCBtYXAuZ2V0KENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkp
LCB1aWQpOwogICAgIAotICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKLSAgICBVTlVT
RURfUEFSQU0oYnl0ZWNvZGVJbmRleCk7Ci0gICAgVU5VU0VEX1BBUkFNKHVpZCk7CisgICAgaWYg
KCFyZXN1bHQudGFrZXNTbG93UGF0aCgpCisgICAgICAgICYmIChoYXNFeGl0U2l0ZShsb2NrZXIs
IHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpCisgICAgICAgICAgICB8fCBwcm9maWxlZEJs
b2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShieXRlY29kZUluZGV4KSkpCisgICAgICAgIHJldHVy
biBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0obWFwKTsKKyNlbmRpZgorCisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBj
b21wdXRlRnJvbUxMSW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CisgICAg
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogI2lmIEVOQUJMRShKSVQpCi0gICAgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvID0gbWFwLmdldChDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgpKTsK
K0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKAorICAgIGNv
bnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbywKKyAgICBTdHJpbmdJbXBsKiB1aWQpCit7CiAgICAgaWYg
KCFzdHViSW5mbyB8fCAhc3R1YkluZm8tPnNlZW4pCi0gICAgICAgIHJldHVybiBjb21wdXRlRnJv
bUxMSW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CisgICAgICAgIHJldHVy
biBHZXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24pOwogICAgIAogICAgIGlmIChzdHViSW5mby0+
cmVzZXRCeUdDKQogICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCB0
cnVlKTsKQEAgLTE1MiwxNiArMTgyLDEyIEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6
Y29tcHV0ZUZvcigKICAgICAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE1ha2VzQ2FsbHMs
IHRydWUpOwogICAgIH0KICAgICAKLSAgICAvLyBOZXh0IGNoZWNrIGlmIGl0IHRha2VzIHNsb3cg
Y2FzZSwgaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHRvIGJlIGtpbmQgb2YgY2FyZWZ1bC4KLSAgICBp
ZiAocHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpCi0g
ICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOwotICAgIAog
ICAgIC8vIEZpbmFsbHkgZmlndXJlIG91dCBpZiB3ZSBjYW4gZGVyaXZlIGFuIGFjY2VzcyBzdHJh
dGVneS4KICAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdDsKICAgICByZXN1bHQubV93YXNTZWVuSW5K
SVQgPSB0cnVlOyAvLyBUaGlzIGlzIGludGVyZXN0aW5nIGZvciBieXRlY29kZSBkdW1waW5nIG9u
bHkuCiAgICAgc3dpdGNoIChzdHViSW5mby0+YWNjZXNzVHlwZSkgewogICAgIGNhc2UgYWNjZXNz
X3Vuc2V0OgotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBi
eXRlY29kZUluZGV4LCB1aWQpOworICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9y
bWF0aW9uKTsKICAgICAgICAgCiAgICAgY2FzZSBhY2Nlc3NfZ2V0X2J5X2lkX3NlbGY6IHsKICAg
ICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBzdHViSW5mby0+dS5nZXRCeUlkU2VsZi5iYXNl
T2JqZWN0U3RydWN0dXJlLmdldCgpOwpAQCAtMjYxLDEwICsyODcsMzkgQEAgR2V0QnlJZFN0YXR1
cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAogICAgICAgICByZXN1bHQubV9zdGF0ZSA9IFNp
bXBsZTsKICAgICAKICAgICByZXR1cm4gcmVzdWx0OwotI2Vsc2UgLy8gRU5BQkxFKEpJVCkKLSAg
ICBVTlVTRURfUEFSQU0obWFwKTsKLSAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0
aW9uLCBmYWxzZSk7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworR2V0QnlJZFN0YXR1cyBH
ZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAorICAgIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywg
Q29kZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLAorICAgIFN0dWJJ
bmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlkKQor
eworI2lmIEVOQUJMRShERkdfSklUKQorICAgIGlmIChkZmdCbG9jaykgeworICAgICAgICBHZXRC
eUlkU3RhdHVzIHJlc3VsdDsKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExv
Y2tlciBsb2NrZXIoZGZnQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICByZXN1bHQgPSBjb21w
dXRlRm9yU3R1YkluZm8obG9ja2VyLCBkZmdCbG9jaywgZGZnTWFwLmdldChjb2RlT3JpZ2luKSwg
dWlkKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAocmVzdWx0LnRha2VzU2xvd1BhdGgo
KSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgCisgICAgICAgIHsKKyAgICAgICAg
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHByb2ZpbGVkQmxvY2stPm1fbG9jayk7Cisg
ICAgICAgICAgICBpZiAoaGFzRXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBjb2RlT3Jp
Z2luLmJ5dGVjb2RlSW5kZXgsIEV4aXRGcm9tRlRMKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
R2V0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCB0cnVlKTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgaWYgKHJlc3VsdC5pc1NldCgpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZmdCbG9jayk7CisgICAgVU5VU0VEX1BB
UkFNKGRmZ01hcCk7CisjZW5kaWYKKworICAgIHJldHVybiBjb21wdXRlRm9yKHByb2ZpbGVkQmxv
Y2ssIGJhc2VsaW5lTWFwLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIHVpZCk7CiB9CiAKIEdl
dEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBTdHJpbmdJbXBsKiB1aWQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI2LDYgKzI2LDkgQEAKICNpZm5kZWYgR2V0QnlJZFN0YXR1c19oCiAjZGVm
aW5lIEdldEJ5SWRTdGF0dXNfaAogCisjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgorI2luY2x1ZGUg
IkNvbmN1cnJlbnRKSVRMb2NrLmgiCisjaW5jbHVkZSAiRXhpdGluZ0pJVFR5cGUuaCIKICNpbmNs
dWRlICJJbnRlbmRlZFN0cnVjdHVyZUNoYWluLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQu
aCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVTZXQuaCIKQEAgLTc0LDYgKzc3LDggQEAgcHVibGljOgog
ICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiwgU3R1YkluZm9N
YXAmLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIHN0YXRp
YyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoVk0mLCBTdHJ1Y3R1cmUqLCBTdHJpbmdJbXBsKiB1
aWQpOwogICAgIAorICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2Nr
KiBiYXNlbGluZUJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxp
bmVNYXAsIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4sIFN0cmluZ0ltcGwqIHVpZCk7
CisgICAgCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAgICAg
CiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgIT0gTm9JbmZvcm1hdGlv
bjsgfQpAQCAtOTAsNiArOTUsMTAgQEAgcHVibGljOgogICAgIGJvb2wgd2FzU2VlbkluSklUKCkg
Y29uc3QgeyByZXR1cm4gbV93YXNTZWVuSW5KSVQ7IH0KICAgICAKIHByaXZhdGU6CisjaWYgRU5B
QkxFKEpJVCkKKyAgICBzdGF0aWMgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklU
TG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgRXhpdGluZ0pJVFR5
cGUgPSBFeGl0RnJvbUFueXRoaW5nKTsKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRl
Rm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayosIFN0cnVj
dHVyZVN0dWJJbmZvKiwgU3RyaW5nSW1wbCogdWlkKTsKKyNlbmRpZgogICAgIHN0YXRpYyB2b2lk
IGNvbXB1dGVGb3JDaGFpbihHZXRCeUlkU3RhdHVzJiByZXN1bHQsIENvZGVCbG9jayosIFN0cmlu
Z0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZyb21MTEludChD
b2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQpOwogICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3Bw
CShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJv
ZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
Niw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUHJvZmlsZWRDb2Rl
QmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuaCIKIAorI2lmIEVOQUJMRShERkdfSklUKQorCiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCiAjaW5jbHVkZSAi
REZHRXhpdFByb2ZpbGUuaCIKQEAgLTQ5LDcgKzUxLDkgQEAgdm9pZCBQcm9maWxlZENvZGVCbG9j
a0pldHRpc29uaW5nV2F0Y2hwbwogICAgIAogICAgIGlmIChzb3VyY2VCYXNlbGluZUNvZGVCbG9j
aykgewogICAgICAgICBzb3VyY2VCYXNlbGluZUNvZGVCbG9jay0+YWRkRnJlcXVlbnRFeGl0U2l0
ZSgKLSAgICAgICAgICAgIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShtX2NvZGVPcmlnaW4uYnl0ZWNv
ZGVJbmRleCwgbV9leGl0S2luZCkpOworICAgICAgICAgICAgREZHOjpGcmVxdWVudEV4aXRTaXRl
KAorICAgICAgICAgICAgICAgIG1fY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBtX2V4aXRLaW5k
LAorICAgICAgICAgICAgICAgIGV4aXRpbmdKSVRUeXBlRm9yKG1fY29kZUJsb2NrLT5qaXRUeXBl
KCkpKSk7CiAgICAgfQogICAgIAogICAgIG1fY29kZUJsb2NrLT5qZXR0aXNvbihDb3VudFJlb3B0
aW1pemF0aW9uKTsKQEAgLTYwLDMgKzY0LDQgQEAgdm9pZCBQcm9maWxlZENvZGVCbG9ja0pldHRp
c29uaW5nV2F0Y2hwbwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAorI2VuZGlmIC8vIEVOQUJMRShE
RkdfSklUKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENv
ZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dh
dGNocG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2lmbmRlZiBQcm9m
aWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludF9oCiAjZGVmaW5lIFByb2ZpbGVkQ29k
ZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50X2gKIAorI2lmIEVOQUJMRShERkdfSklUKQorCiAj
aW5jbHVkZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUgIkV4aXRLaW5kLmgiCiAjaW5jbHVkZSAi
V2F0Y2hwb2ludC5oIgpAQCAtNjEsNSArNjMsNyBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKIAorI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCiAjZW5kaWYgLy8gUHJvZmlsZWRD
b2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnRfaAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCShyZXZpc2lvbiAxNjI5NjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDYgKzM1LDE3IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCisjaWYgRU5BQkxFKEpJVCkKK2Jvb2wgUHV0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUoY29u
c3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ss
IHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIEV4aXRpbmdKSVRUeXBlIGV4aXRUeXBlKQoreworICAg
IHJldHVybiBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRF
eGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRDYWNoZSwgZXhpdFR5cGUpKQorICAgICAgICB8fCBw
cm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShi
eXRlY29kZUluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQsIGV4aXRUeXBlKSkKKyAgICAgICAgfHwg
cHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUo
Ynl0ZWNvZGVJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGUsIGV4aXRUeXBlKSkKKyAgICAgICAg
fHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNp
dGUoYnl0ZWNvZGVJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50LCBleGl0VHlw
ZSkpOworICAgIAorfQorI2VuZGlmCisKIFB1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29t
cHV0ZUZyb21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2Rl
SW5kZXgsIFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9j
ayk7CkBAIC04OSwxMyArMTAwLDI4IEBAIFB1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29t
cHV0ZUZvcigKICAgICBVTlVTRURfUEFSQU0oYnl0ZWNvZGVJbmRleCk7CiAgICAgVU5VU0VEX1BB
UkFNKHVpZCk7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBpZiAocHJvZmlsZWRCbG9jay0+bGlrZWx5
VG9UYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpCisgICAgaWYgKHByb2ZpbGVkQmxvY2stPmxp
a2VseVRvVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpCisgICAgICAgIHx8IGhhc0V4aXRTaXRl
KGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCkpCiAgICAgICAgIHJldHVybiBQ
dXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIDAsIDAsIDAsIGludmFsaWRPZmZzZXQpOwogICAg
IAogICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1hcC5nZXQoQ29kZU9yaWdpbihi
eXRlY29kZUluZGV4KSk7Ci0gICAgaWYgKCFzdHViSW5mbyB8fCAhc3R1YkluZm8tPnNlZW4pCisg
ICAgUHV0QnlJZFN0YXR1cyByZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm8obG9ja2VyLCBwcm9m
aWxlZEJsb2NrLCBzdHViSW5mbywgdWlkKTsKKyAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0
dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCwgdWlkKTsK
ICAgICAKKyAgICByZXR1cm4gcmVzdWx0OworI2Vsc2UgLy8gRU5BQkxFKEpJVCkKKyAgICBVTlVT
RURfUEFSQU0obWFwKTsKKyAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCAw
LCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorfQorCisjaWYg
RU5BQkxFKEpJVCkKK1B1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJ
bmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ss
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgU3RyaW5nSW1wbCogdWlkKQoreworICAgIGlm
ICghc3R1YkluZm8gfHwgIXN0dWJJbmZvLT5zZWVuKQorICAgICAgICByZXR1cm4gUHV0QnlJZFN0
YXR1cygpOworICAgIAogICAgIGlmIChzdHViSW5mby0+cmVzZXRCeUdDKQogICAgICAgICByZXR1
cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsK
IApAQCAtMTQyLDEwICsxNjgsMzQgQEAgUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21w
dXRlRm9yKAogICAgICAgICAvLyB3ZSBjb3VsZCBkbyBhYm91dCBpdC4KICAgICAgICAgcmV0dXJu
IFB1dEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgMCwgMCwgMCwgaW52YWxpZE9mZnNldCk7CiAg
ICAgfQotI2Vsc2UgLy8gRU5BQkxFKEpJVCkKLSAgICBVTlVTRURfUEFSQU0obWFwKTsKLSAgICBy
ZXR1cm4gUHV0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0
KTsKLSNlbmRpZiAvLyBFTkFCTEUoSklUKQorfQorI2VuZGlmCisKK1B1dEJ5SWRTdGF0dXMgUHV0
QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIENvZGVCbG9j
ayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01h
cCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBTdHJpbmdJbXBsKiB1aWQpCit7CisjaWYgRU5BQkxF
KEpJVCkKKyAgICBpZiAoZGZnQmxvY2spIHsKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3Vy
cmVudEpJVExvY2tlciBsb2NrZXIoYmFzZWxpbmVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAg
IGlmIChoYXNFeGl0U2l0ZShsb2NrZXIsIGJhc2VsaW5lQmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNv
ZGVJbmRleCwgRXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHJldHVybiBQdXRCeUlkU3Rh
dHVzKFRha2VzU2xvd1BhdGgpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgUHV0
QnlJZFN0YXR1cyByZXN1bHQ7CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKGRmZ0Jsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgcmVzdWx0ID0gY29t
cHV0ZUZvclN0dWJJbmZvKGxvY2tlciwgZGZnQmxvY2ssIGRmZ01hcC5nZXQoY29kZU9yaWdpbiks
IHVpZCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQuaXNTZXQoKSkK
KyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oZGZnQmxvY2spOworICAgIFVOVVNFRF9QQVJBTShkZmdNYXApOworI2VuZGlmCisKKyAgICBy
ZXR1cm4gY29tcHV0ZUZvcihiYXNlbGluZUJsb2NrLCBiYXNlbGluZU1hcCwgY29kZU9yaWdpbi5i
eXRlY29kZUluZGV4LCB1aWQpOwogfQogCiBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNv
bXB1dGVGb3IoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgU3RyaW5nSW1wbCogdWlkLCBib29sIGlzRGlyZWN0KQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCShyZXZpc2lvbiAx
NjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFB1dEJ5SWRTdGF0dXNf
aAogI2RlZmluZSBQdXRCeUlkU3RhdHVzX2gKIAorI2luY2x1ZGUgIkV4aXRpbmdKSVRUeXBlLmgi
CiAjaW5jbHVkZSAiSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oIgogI2luY2x1ZGUgIlByb3BlcnR5
T2Zmc2V0LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKQEAgLTk0LDYgKzk1LDgg
QEAgcHVibGljOgogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2Nr
KiwgU3R1YkluZm9NYXAmLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQp
OwogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoVk0mLCBKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZSosIFN0cmluZ0ltcGwqIHVpZCwgYm9vbCBpc0RpcmVjdCk7CiAgICAgCisg
ICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2VsaW5lQmxv
Y2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwgU3R1Yklu
Zm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlkKTsKKyAgICAKICAgICBT
dGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICAKICAgICBib29sIGlz
U2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb0luZm9ybWF0aW9uOyB9CkBAIC0xMDgs
NiArMTExLDEwIEBAIHB1YmxpYzoKICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQoKSBjb25zdCB7
IHJldHVybiBtX29mZnNldDsgfQogICAgIAogcHJpdmF0ZToKKyNpZiBFTkFCTEUoSklUKQorICAg
IHN0YXRpYyBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2Rl
QmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSA9IEV4aXRGcm9t
QW55dGhpbmcpOworICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbyhj
b25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8q
LCBTdHJpbmdJbXBsKiB1aWQpOworI2VuZGlmCiAgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29t
cHV0ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJ
bXBsKiB1aWQpOwogICAgIAogICAgIFN0YXRlIG1fc3RhdGU7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5oCShyZXZpc2lvbiAxNjI5NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgogICAgIAogICAgIFN0cnVjdHVyZVNldChT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CisgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUpOwog
ICAgICAgICBtX3N0cnVjdHVyZXMuYXBwZW5kKHN0cnVjdHVyZSk7CiAgICAgfQogICAgIApAQCAt
NTUsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBhZGQoU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiAgICAgeworICAgICAgICBBU1NFUlQoc3RydWN0dXJlKTsKICAgICAgICAgQVNTRVJU
KCFjb250YWlucyhzdHJ1Y3R1cmUpKTsKICAgICAgICAgbV9zdHJ1Y3R1cmVzLmFwcGVuZChzdHJ1
Y3R1cmUpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1
Y3R1cmVTdHViSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIsIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEy
LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjE2LDcgKzIxNiw2IEBAIHN0cnVjdCBTdHJ1Y3R1cmVT
dHViSW5mbyB7CiAKICAgICBzdHJ1Y3QgewogICAgICAgICBpbnQ4X3QgcmVnaXN0ZXJzRmx1c2hl
ZDsKLSAgICAgICAgaW50OF90IGNhbGxGcmFtZVJlZ2lzdGVyOwogICAgICAgICBpbnQ4X3QgYmFz
ZUdQUjsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBpbnQ4X3QgdmFsdWVUYWdHUFI7
CkBAIC0yOTAsNyArMjg5LDcgQEAgaW5saW5lIENvZGVPcmlnaW4gZ2V0U3RydWN0dXJlU3R1Yklu
Zm9DbwogICAgIHJldHVybiBzdHJ1Y3R1cmVTdHViSW5mby5jb2RlT3JpZ2luOwogfQogCi10eXBl
ZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgU3RydWN0dXJlU3R1YkluZm8qPiBTdHViSW5mb01hcDsK
K3R5cGVkZWYgSGFzaE1hcDxDb2RlT3JpZ2luLCBTdHJ1Y3R1cmVTdHViSW5mbyosIENvZGVPcmln
aW5BcHByb3hpbWF0ZUhhc2g+IFN0dWJJbmZvTWFwOwogCiAjZWxzZQogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzMCw2ICsyMzAsMjcgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gVmlydHVhbFJlZ2lzdGVyKG1fc291cmNlLnZpcnR1YWxSZWcpOwogICAgIH0KICAgICAKKyAg
ICBWYWx1ZVJlY292ZXJ5IHdpdGhMb2NhbHNPZmZzZXQoaW50IG9mZnNldCkgY29uc3QKKyAgICB7
CisgICAgICAgIHN3aXRjaCAobV90ZWNobmlxdWUpIHsKKyAgICAgICAgY2FzZSBEaXNwbGFjZWRJ
bkpTU3RhY2s6CisgICAgICAgIGNhc2UgSW50MzJEaXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAg
IGNhc2UgRG91YmxlRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIENlbGxEaXNwbGFj
ZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgQm9vbGVhbkRpc3BsYWNlZEluSlNTdGFjazoKKyAg
ICAgICAgY2FzZSBJbnQ1MkRpc3BsYWNlZEluSlNTdGFjazoKKyAgICAgICAgY2FzZSBTdHJpY3RJ
bnQ1MkRpc3BsYWNlZEluSlNTdGFjazogeworICAgICAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1
bHQ7CisgICAgICAgICAgICByZXN1bHQubV90ZWNobmlxdWUgPSBtX3RlY2huaXF1ZTsKKyAgICAg
ICAgICAgIHJlc3VsdC5tX3NvdXJjZS52aXJ0dWFsUmVnID0gbV9zb3VyY2UudmlydHVhbFJlZyAr
IG9mZnNldDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAg
ICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAg
ICB9CisgICAgfQorICAgIAogICAgIEpTVmFsdWUgY29uc3RhbnQoKSBjb25zdAogICAgIHsKICAg
ICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09IENvbnN0YW50KTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgaW50IHRvQXJn
dW1lbnQoKSBjb25zdCB7IEFTU0VSVChpc0FyZ3VtZW50KCkpOyByZXR1cm4gb3BlcmFuZFRvQXJn
dW1lbnQobV92aXJ0dWFsUmVnaXN0ZXIpOyB9CiAgICAgaW50IHRvQ29uc3RhbnRJbmRleCgpIGNv
bnN0IHsgQVNTRVJUKGlzQ29uc3RhbnQoKSk7IHJldHVybiBtX3ZpcnR1YWxSZWdpc3RlciAtIHNf
Zmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXg7IH0KICAgICBpbnQgb2Zmc2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXI7IH0KKyAgICBpbnQgb2Zmc2V0SW5CeXRlcygpIGNvbnN0
IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVyICogc2l6ZW9mKFJlZ2lzdGVyKTsgfQogCiAgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFZpcnR1YWxSZWdpc3RlciBvdGhlcikgY29uc3QgeyByZXR1
cm4gbV92aXJ0dWFsUmVnaXN0ZXIgPT0gb3RoZXIubV92aXJ0dWFsUmVnaXN0ZXI7IH0KICAgICBi
b29sIG9wZXJhdG9yIT0oY29uc3QgVmlydHVhbFJlZ2lzdGVyIG90aGVyKSBjb25zdCB7IHJldHVy
biBtX3ZpcnR1YWxSZWdpc3RlciAhPSBvdGhlci5tX3ZpcnR1YWxSZWdpc3RlcjsgfQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJh
bWUuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBA
CiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUg
IlN0YWNrVmlzaXRvci5oIgotI2luY2x1ZGUgIlZNRW50cnlTY29wZS5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNw
cAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJh
eU1vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNyArMTMxLDEwIEBAIEFycmF5TW9kZSBB
cnJheU1vZGU6OmZyb21PYnNlcnZlZChjb25zdCAKICAgICB9CiB9CiAKLUFycmF5TW9kZSBBcnJh
eU1vZGU6OnJlZmluZShTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRleCwg
U3BlY3VsYXRlZFR5cGUgdmFsdWUsIE5vZGVGbGFncyBmbGFncykgY29uc3QKK0FycmF5TW9kZSBB
cnJheU1vZGU6OnJlZmluZSgKKyAgICBHcmFwaCYgZ3JhcGgsIENvZGVPcmlnaW4gY29kZU9yaWdp
biwKKyAgICBTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRleCwgU3BlY3Vs
YXRlZFR5cGUgdmFsdWUsCisgICAgTm9kZUZsYWdzIGZsYWdzKSBjb25zdAogewogICAgIGlmICgh
YmFzZSB8fCAhaW5kZXgpIHsKICAgICAgICAgLy8gSXQgY2FuIGJlIHRoYXQgd2UgaGFkIGEgbGVn
aXRpbWF0ZSBhcnJheU1vZGUgYnV0IG5vIGluY29taW5nIHByZWRpY3Rpb25zLiBUaGF0J2xsCkBA
IC0xODYsNyArMTg5LDcgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5lKFNwZWN1bGF0ZWRU
eQogICAgICAgICAgICAgcmV0dXJuIHdpdGhDb252ZXJzaW9uKEFycmF5OjpSYWdlQ29udmVydCk7
CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICAgICAgCi0gICAgY2FzZSBBcnJheTo6U2VsZWN0
VXNpbmdQcmVkaWN0aW9uczoKKyAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2luZ1ByZWRpY3Rpb25z
OiB7CiAgICAgICAgIGJhc2UgJj0gflNwZWNPdGhlcjsKICAgICAgICAgCiAgICAgICAgIGlmIChp
c1N0cmluZ1NwZWN1bGF0aW9uKGJhc2UpKQpAQCAtMTk1LDM0ICsxOTgsNDEgQEAgQXJyYXlNb2Rl
IEFycmF5TW9kZTo6cmVmaW5lKFNwZWN1bGF0ZWRUeQogICAgICAgICBpZiAoaXNBcmd1bWVudHNT
cGVjdWxhdGlvbihiYXNlKSkKICAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6QXJn
dW1lbnRzKTsKICAgICAgICAgCisgICAgICAgIEFycmF5TW9kZSByZXN1bHQ7CisgICAgICAgIGlm
IChncmFwaC5oYXNFeGl0U2l0ZShjb2RlT3JpZ2luLCBPdXRPZkJvdW5kcykpCisgICAgICAgICAg
ICByZXN1bHQgPSB3aXRoU3BlY3VsYXRpb24oQXJyYXk6Ok91dE9mQm91bmRzKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gKnRoaXM7CisgICAgICAgIAogICAgICAgICBpZiAo
aXNJbnQ4QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlw
ZShBcnJheTo6SW50OEFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUo
QXJyYXk6OkludDhBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNJbnQxNkFycmF5U3Bl
Y3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkludDE2
QXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6SW50MTZB
cnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNJbnQzMkFycmF5U3BlY3VsYXRpb24oYmFz
ZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkludDMyQXJyYXkpOworICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6SW50MzJBcnJheSk7CiAgICAg
ICAgIAogICAgICAgICBpZiAoaXNVaW50OEFycmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAg
ICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OlVpbnQ4QXJyYXkpOworICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6VWludDhBcnJheSk7CiAgICAgICAgIAogICAgICAg
ICBpZiAoaXNVaW50OENsYW1wZWRBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAg
cmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50OENsYW1wZWRBcnJheSk7CisgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpVaW50OENsYW1wZWRBcnJheSk7CiAgICAgICAg
IAogICAgICAgICBpZiAoaXNVaW50MTZBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAg
ICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50MTZBcnJheSk7CisgICAgICAgICAgICByZXR1
cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpVaW50MTZBcnJheSk7CiAgICAgICAgIAogICAgICAg
ICBpZiAoaXNVaW50MzJBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0dXJu
IHdpdGhUeXBlKEFycmF5OjpVaW50MzJBcnJheSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0
LndpdGhUeXBlKEFycmF5OjpVaW50MzJBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNG
bG9hdDMyQXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlw
ZShBcnJheTo6RmxvYXQzMkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5
cGUoQXJyYXk6OkZsb2F0MzJBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNGbG9hdDY0
QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJh
eTo6RmxvYXQ2NEFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJy
YXk6OkZsb2F0NjRBcnJheSk7CiAKICAgICAgICAgcmV0dXJuIEFycmF5TW9kZShBcnJheTo6R2Vu
ZXJpYyk7CisgICAgfQogCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuICp0aGlzOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCShyZXZpc2lvbiAxNjI5
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTEsNyArMjExLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gQXJyYXlN
b2RlKHR5cGUsIGFycmF5Q2xhc3MoKSwgc3BlY3VsYXRpb24oKSwgY29udmVyc2lvbik7CiAgICAg
fQogICAgIAotICAgIEFycmF5TW9kZSByZWZpbmUoU3BlY3VsYXRlZFR5cGUgYmFzZSwgU3BlY3Vs
YXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlID0gU3BlY05vbmUsIE5vZGVGbGFn
cyA9IDApIGNvbnN0OworICAgIEFycmF5TW9kZSByZWZpbmUoR3JhcGgmLCBDb2RlT3JpZ2luLCBT
cGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRleCwgU3BlY3VsYXRlZFR5cGUg
dmFsdWUgPSBTcGVjTm9uZSwgTm9kZUZsYWdzID0gMCkgY29uc3Q7CiAgICAgCiAgICAgYm9vbCBh
bHJlYWR5Q2hlY2tlZChHcmFwaCYsIE5vZGUqLCBBYnN0cmFjdFZhbHVlJikgY29uc3Q7CiAgICAg
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUHJlY2lzZUp1bXBUYXJnZXRzLmgiCiAjaW5j
bHVkZSAiUHV0QnlJZFN0YXR1cy5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5j
bHVkZSAiU3RyaW5nQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTE2MCw3ICsxNjEsOCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgaGFuZGxlTWluTWF4KGludCByZXN1bHRPcGVyYW5kLCBOb2RlVHlwZSBvcCwgaW50
IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpOwogICAgIAog
ICAgIC8vIEhhbmRsZSBjYWxscy4gVGhpcyByZXNvbHZlcyBpc3N1ZXMgc3Vycm91bmRpbmcgaW5s
aW5pbmcgYW5kIGludHJpbnNpY3MuCi0gICAgdm9pZCBoYW5kbGVDYWxsKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24sIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsK
KyAgICB2b2lkIGhhbmRsZUNhbGwoaW50IHJlc3VsdCwgTm9kZVR5cGUgb3AsIENvZGVTcGVjaWFs
aXphdGlvbktpbmQsIHVuc2lnbmVkIGluc3RydWN0aW9uU2l6ZSwgaW50IGNhbGxlZSwgaW50IGFy
Z0NvdW50LCBpbnQgcmVnaXN0ZXJPZmZzZXQpOworICAgIHZvaWQgaGFuZGxlQ2FsbChJbnN0cnVj
dGlvbiogcGMsIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKICAgICB2b2lk
IGVtaXRGdW5jdGlvbkNoZWNrcyhjb25zdCBDYWxsTGlua1N0YXR1cyYsIE5vZGUqIGNhbGxUYXJn
ZXQsIGludCByZWdpc3Rlck9mZnNldCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CiAgICAgdm9p
ZCBlbWl0QXJndW1lbnRQaGFudG9tcyhpbnQgcmVnaXN0ZXJPZmZzZXQsIGludCBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CiAgICAgLy8gSGFuZGxl
IGlubGluaW5nLiBSZXR1cm4gdHJ1ZSBpZiBpdCBzdWNjZWVkZWQsIGZhbHNlIGlmIHdlIG5lZWQg
dG8gcGxhbnQgYSBjYWxsLgpAQCAtNzczLDIyICs3NzUsMjEgQEAgcHJpdmF0ZToKICAgICAgICAg
bV9udW1QYXNzZWRWYXJBcmdzKys7CiAgICAgfQogICAgIAotICAgIE5vZGUqIGFkZENhbGwoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgTm9kZVR5cGUgb3ApCisgICAgTm9kZSogYWRk
Q2FsbChpbnQgcmVzdWx0LCBOb2RlVHlwZSBvcCwgaW50IGNhbGxlZSwgaW50IGFyZ0NvdW50LCBp
bnQgcmVnaXN0ZXJPZmZzZXQpCiAgICAgewogICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0
aW9uID0gZ2V0UHJlZGljdGlvbigpOwogICAgICAgICAKLSAgICAgICAgYWRkVmFyQXJnQ2hpbGQo
Z2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSkpOwot
ICAgICAgICBpbnQgYXJnQ291bnQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwot
ICAgICAgICBpZiAoSlNTdGFjazo6VGhpc0FyZ3VtZW50ICsgKHVuc2lnbmVkKWFyZ0NvdW50ID4g
bV9wYXJhbWV0ZXJTbG90cykKLSAgICAgICAgICAgIG1fcGFyYW1ldGVyU2xvdHMgPSBKU1N0YWNr
OjpUaGlzQXJndW1lbnQgKyBhcmdDb3VudDsKKyAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KFZp
cnR1YWxSZWdpc3RlcihjYWxsZWUpKSk7CisgICAgICAgIHNpemVfdCBwYXJhbWV0ZXJTbG90cyA9
IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBD
U2l6ZSArIGFyZ0NvdW50OworICAgICAgICBpZiAocGFyYW1ldGVyU2xvdHMgPiBtX3BhcmFtZXRl
clNsb3RzKQorICAgICAgICAgICAgbV9wYXJhbWV0ZXJTbG90cyA9IHBhcmFtZXRlclNsb3RzOwog
Ci0gICAgICAgIGludCByZWdpc3Rlck9mZnNldCA9IC1jdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5v
cGVyYW5kOwogICAgICAgICBpbnQgZHVtbXlUaGlzQXJndW1lbnQgPSBvcCA9PSBDYWxsID8gMCA6
IDE7CiAgICAgICAgIGZvciAoaW50IGkgPSAwICsgZHVtbXlUaGlzQXJndW1lbnQ7IGkgPCBhcmdD
b3VudDsgKytpKQogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KHZpcnR1YWxSZWdpc3Rl
ckZvckFyZ3VtZW50KGksIHJlZ2lzdGVyT2Zmc2V0KSkpOwogCiAgICAgICAgIE5vZGUqIGNhbGwg
PSBhZGRUb0dyYXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rp
b24pKTsKLSAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kKSwgY2FsbCk7CisgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0KSwg
Y2FsbCk7CiAgICAgICAgIHJldHVybiBjYWxsOwogICAgIH0KICAgICAKQEAgLTk5Myw5ICs5OTQs
MTAgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgbnVtYmVyIG9mIGxvY2FscyAodmFycyArIHRlbXBv
cmFyaWVzKSB1c2VkIGluIHRoZSBmdW5jdGlvbi4KICAgICB1bnNpZ25lZCBtX251bUxvY2FsczsK
ICAgICAvLyBUaGUgbnVtYmVyIG9mIHNsb3RzIChpbiB1bml0cyBvZiBzaXplb2YoUmVnaXN0ZXIp
KSB0aGF0IHdlIG5lZWQgdG8KLSAgICAvLyBwcmVhbGxvY2F0ZSBmb3IgY2FsbHMgZW1hbmF0aW5n
IGZyb20gdGhpcyBmcmFtZS4gVGhpcyBpbmNsdWRlcyB0aGUKLSAgICAvLyBzaXplIG9mIHRoZSBD
YWxsRnJhbWUsIG9ubHkgaWYgdGhpcyBpcyBub3QgYSBsZWFmIGZ1bmN0aW9uLiAgKEkuZS4KLSAg
ICAvLyB0aGlzIGlzIDAgaWYgYW5kIG9ubHkgaWYgdGhpcyBmdW5jdGlvbiBpcyBhIGxlYWYuKQor
ICAgIC8vIHByZWFsbG9jYXRlIGZvciBhcmd1bWVudHMgdG8gb3V0Z29pbmcgY2FsbHMgZnJvbSB0
aGlzIGZyYW1lLiBUaGlzCisgICAgLy8gbnVtYmVyIGluY2x1ZGVzIHRoZSBDYWxsRnJhbWUgc2xv
dHMgdGhhdCB3ZSBpbml0aWFsaXplIGZvciB0aGUgY2FsbGVlCisgICAgLy8gKGJ1dCBub3QgdGhl
IGNhbGxlZS1pbml0aWFsaXplZCBDYWxsZXJGcmFtZSBhbmQgUmV0dXJuUEMgc2xvdHMpLgorICAg
IC8vIFRoaXMgbnVtYmVyIGlzIDAgaWYgYW5kIG9ubHkgaWYgdGhpcyBmdW5jdGlvbiBpcyBhIGxl
YWYuCiAgICAgdW5zaWduZWQgbV9wYXJhbWV0ZXJTbG90czsKICAgICAvLyBUaGUgbnVtYmVyIG9m
IHZhciBhcmdzIHBhc3NlZCB0byB0aGUgbmV4dCB2YXIgYXJnIG5vZGUuCiAgICAgdW5zaWduZWQg
bV9udW1QYXNzZWRWYXJBcmdzOwpAQCAtMTEzNCw2ICsxMTM2LDEwIEBAIHByaXZhdGU6CiAgICAg
Ly8gd29yay1hcm91bmQgZm9yIHRoZSBmYWN0IHRoYXQgSlNWYWx1ZU1hcCBjYW4ndCBoYW5kbGUg
ImVtcHR5IiB2YWx1ZXMuCiAgICAgdW5zaWduZWQgbV9lbXB0eUpTVmFsdWVJbmRleDsKICAgICAK
KyAgICBDb2RlQmxvY2sqIG1fZGZnQ29kZUJsb2NrOworICAgIENhbGxMaW5rU3RhdHVzOjpDb250
ZXh0TWFwIG1fY2FsbENvbnRleHRNYXA7CisgICAgU3R1YkluZm9NYXAgbV9kZmdTdHViSW5mb3M7
CisgICAgCiAgICAgSW5zdHJ1Y3Rpb24qIG1fY3VycmVudEluc3RydWN0aW9uOwogfTsKIApAQCAt
MTE0NSw0MyArMTE1MSw0NSBAQCBwcml2YXRlOgogICAgIG1fY3VycmVudEluZGV4ICs9IE9QQ09E
RV9MRU5HVEgobmFtZSk7IFwKICAgICByZXR1cm4gc2hvdWxkQ29udGludWVQYXJzaW5nCiAKLQot
dm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uLCBOb2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQordm9pZCBC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogcGMsIE5vZGVUeXBlIG9wLCBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7CiAgICAgQVNTRVJUKE9QQ09ERV9MRU5HVEgo
b3BfY2FsbCkgPT0gT1BDT0RFX0xFTkdUSChvcF9jb25zdHJ1Y3QpKTsKKyAgICBoYW5kbGVDYWxs
KAorICAgICAgICBwY1sxXS51Lm9wZXJhbmQsIG9wLCBraW5kLCBPUENPREVfTEVOR1RIKG9wX2Nh
bGwpLAorICAgICAgICBwY1syXS51Lm9wZXJhbmQsIHBjWzNdLnUub3BlcmFuZCwgLXBjWzRdLnUu
b3BlcmFuZCk7Cit9CisKK3ZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNhbGwoCisgICAgaW50
IHJlc3VsdCwgTm9kZVR5cGUgb3AsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgdW5zaWdu
ZWQgaW5zdHJ1Y3Rpb25TaXplLAorICAgIGludCBjYWxsZWUsIGludCBhcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpcywgaW50IHJlZ2lzdGVyT2Zmc2V0KQoreworICAgIEFTU0VSVChyZWdpc3Rlck9m
ZnNldCA8PSAwKTsKICAgICAKLSAgICBOb2RlKiBjYWxsVGFyZ2V0ID0gZ2V0KFZpcnR1YWxSZWdp
c3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgTm9kZSogY2FsbFRh
cmdldCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY2FsbGVlKSk7CiAgICAgCiAgICAgQ2FsbExpbmtT
dGF0dXMgY2FsbExpbmtTdGF0dXM7CiAKLSAgICBpZiAobV9ncmFwaC5pc0NvbnN0YW50KGNhbGxU
YXJnZXQpKQotICAgICAgICBjYWxsTGlua1N0YXR1cyA9IENhbGxMaW5rU3RhdHVzKG1fZ3JhcGgu
dmFsdWVPZkpTQ29uc3RhbnQoY2FsbFRhcmdldCkpLnNldElzUHJvdmVkKHRydWUpOwotICAgIGVs
c2UgewotICAgICAgICBjYWxsTGlua1N0YXR1cyA9IENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9y
KG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9jdXJyZW50SW5kZXgpOwotICAg
ICAgICBjYWxsTGlua1N0YXR1cy5zZXRIYXNCYWRGdW5jdGlvbkV4aXRTaXRlKG1faW5saW5lU3Rh
Y2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZEZ1bmN0
aW9uKSk7Ci0gICAgICAgIGNhbGxMaW5rU3RhdHVzLnNldEhhc0JhZENhY2hlRXhpdFNpdGUoCi0g
ICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1f
Y3VycmVudEluZGV4LCBCYWRDYWNoZSkKLSAgICAgICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3At
Pm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlV2F0Y2hw
b2ludCkpOwotICAgICAgICBjYWxsTGlua1N0YXR1cy5zZXRIYXNCYWRFeGVjdXRhYmxlRXhpdFNp
dGUobV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJ
bmRleCwgQmFkRXhlY3V0YWJsZSkpOworICAgIGlmIChtX2dyYXBoLmlzQ29uc3RhbnQoY2FsbFRh
cmdldCkpIHsKKyAgICAgICAgY2FsbExpbmtTdGF0dXMgPSBDYWxsTGlua1N0YXR1cygKKyAgICAg
ICAgICAgIG1fZ3JhcGgudmFsdWVPZkpTQ29uc3RhbnQoY2FsbFRhcmdldCkpLnNldElzUHJvdmVk
KHRydWUpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNhbGxMaW5rU3RhdHVzID0gQ2FsbExpbmtT
dGF0dXM6OmNvbXB1dGVGb3IoCisgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2Zp
bGVkQmxvY2ssIGN1cnJlbnRDb2RlT3JpZ2luKCksIG1fY2FsbENvbnRleHRNYXApOwogICAgIH0K
ICAgICAKICAgICBpZiAoIWNhbGxMaW5rU3RhdHVzLmNhbk9wdGltaXplKCkpIHsKICAgICAgICAg
Ly8gT2RkbHksIHRoaXMgY29uZmxhdGVzIGNhbGxzIHRoYXQgaGF2ZW4ndCBleGVjdXRlZCB3aXRo
IGNhbGxzIHRoYXQgYmVoYXZlZCBzdWZmaWNpZW50bHkgcG9seW1vcnBoaWNhbGx5CiAgICAgICAg
IC8vIHRoYXQgd2UgY2Fubm90IG9wdGltaXplIHRoZW0uCiAgICAgICAgIAotICAgICAgICBhZGRD
YWxsKGN1cnJlbnRJbnN0cnVjdGlvbiwgb3ApOworICAgICAgICBhZGRDYWxsKHJlc3VsdCwgb3As
IGNhbGxlZSwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHJlZ2lzdGVyT2Zmc2V0KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIGludCByZWdpc3Rl
ck9mZnNldCA9IC1jdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwotCi0gICAgaW50IHJl
c3VsdE9wZXJhbmQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwotICAgIHVuc2ln
bmVkIG5leHRPZmZzZXQgPSBtX2N1cnJlbnRJbmRleCArIE9QQ09ERV9MRU5HVEgob3BfY2FsbCk7
CisgICAgdW5zaWduZWQgbmV4dE9mZnNldCA9IG1fY3VycmVudEluZGV4ICsgaW5zdHJ1Y3Rpb25T
aXplOwogICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uKCk7CiAK
ICAgICBpZiAoSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24gPSBjYWxsTGlua1N0YXR1cy5pbnRl
cm5hbEZ1bmN0aW9uKCkpIHsKLSAgICAgICAgaWYgKGhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5j
dGlvbihyZXN1bHRPcGVyYW5kLCBmdW5jdGlvbiwgcmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzLCBwcmVkaWN0aW9uLCBraW5kKSkgeworICAgICAgICBpZiAoaGFuZGxl
Q29uc3RhbnRJbnRlcm5hbEZ1bmN0aW9uKHJlc3VsdCwgZnVuY3Rpb24sIHJlZ2lzdGVyT2Zmc2V0
LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcHJlZGljdGlvbiwga2luZCkpIHsKICAgICAg
ICAgICAgIC8vIFRoaXMgcGhhbnRvbWluZyBoYXMgdG8gYmUgKmFmdGVyKiB0aGUgY29kZSBmb3Ig
dGhlIGludHJpbnNpYywgdG8gc2lnbmlmeSB0aGF0CiAgICAgICAgICAgICAvLyB0aGUgaW5wdXRz
IG11c3QgYmUga2VwdCBhbGl2ZSB3aGF0ZXZlciBleGl0cyB0aGUgaW50cmluc2ljIG1heSBkby4K
ICAgICAgICAgICAgIGFkZFRvR3JhcGgoUGhhbnRvbSwgY2FsbFRhcmdldCk7CkBAIC0xMTkwLDcg
KzExOTgsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDYWxsKEluc3RydWN0CiAgICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIENhbiBvbmx5IGhhbmRsZSB0aGlzIHVzaW5nIHRo
ZSBnZW5lcmljIGNhbGwgaGFuZGxlci4KLSAgICAgICAgYWRkQ2FsbChjdXJyZW50SW5zdHJ1Y3Rp
b24sIG9wKTsKKyAgICAgICAgYWRkQ2FsbChyZXN1bHQsIG9wLCBjYWxsZWUsIGFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzLCByZWdpc3Rlck9mZnNldCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgICAgIApAQCAtMTE5OCw3ICsxMjA2LDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlQ2FsbChJbnN0cnVjdAogICAgIGlmIChpbnRyaW5zaWMgIT0gTm9JbnRyaW5zaWMpIHsKICAg
ICAgICAgZW1pdEZ1bmN0aW9uQ2hlY2tzKGNhbGxMaW5rU3RhdHVzLCBjYWxsVGFyZ2V0LCByZWdp
c3Rlck9mZnNldCwga2luZCk7CiAgICAgICAgICAgICAKLSAgICAgICAgaWYgKGhhbmRsZUludHJp
bnNpYyhyZXN1bHRPcGVyYW5kLCBpbnRyaW5zaWMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcywgcHJlZGljdGlvbikpIHsKKyAgICAgICAgaWYgKGhhbmRsZUludHJp
bnNpYyhyZXN1bHQsIGludHJpbnNpYywgcmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzLCBwcmVkaWN0aW9uKSkgewogICAgICAgICAgICAgLy8gVGhpcyBwaGFudG9taW5n
IGhhcyB0byBiZSAqYWZ0ZXIqIHRoZSBjb2RlIGZvciB0aGUgaW50cmluc2ljLCB0byBzaWduaWZ5
IHRoYXQKICAgICAgICAgICAgIC8vIHRoZSBpbnB1dHMgbXVzdCBiZSBrZXB0IGFsaXZlIHdoYXRl
dmVyIGV4aXRzIHRoZSBpbnRyaW5zaWMgbWF5IGRvLgogICAgICAgICAgICAgYWRkVG9HcmFwaChQ
aGFudG9tLCBjYWxsVGFyZ2V0KTsKQEAgLTEyMDcsMTMgKzEyMTUsMTMgQEAgdm9pZCBCeXRlQ29k
ZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdAogICAgICAgICAgICAgICAgIG1fZ3JhcGguY29t
cGlsYXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwoKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQotICAgIH0gZWxzZSBpZiAoaGFuZGxlSW5saW5pbmcoY2FsbFRhcmdldCwgcmVzdWx0
T3BlcmFuZCwgY2FsbExpbmtTdGF0dXMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpcywgbmV4dE9mZnNldCwga2luZCkpIHsKKyAgICB9IGVsc2UgaWYgKGhhbmRsZUlu
bGluaW5nKGNhbGxUYXJnZXQsIHJlc3VsdCwgY2FsbExpbmtTdGF0dXMsIHJlZ2lzdGVyT2Zmc2V0
LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgbmV4dE9mZnNldCwga2luZCkpIHsKICAgICAg
ICAgaWYgKG1fZ3JhcGguY29tcGlsYXRpb24oKSkKICAgICAgICAgICAgIG1fZ3JhcGguY29tcGls
YXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAKLSAgICBhZGRDYWxsKGN1cnJlbnRJbnN0cnVjdGlvbiwgb3ApOworICAgIGFkZENhbGwocmVz
dWx0LCBvcCwgY2FsbGVlLCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcmVnaXN0ZXJPZmZz
ZXQpOwogfQogCiB2b2lkIEJ5dGVDb2RlUGFyc2VyOjplbWl0RnVuY3Rpb25DaGVja3MoY29uc3Qg
Q2FsbExpbmtTdGF0dXMmIGNhbGxMaW5rU3RhdHVzLCBOb2RlKiBjYWxsVGFyZ2V0LCBpbnQgcmVn
aXN0ZXJPZmZzZXQsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKQEAgLTEyNTAsMzAgKzEy
NTgsMzIgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6ZW1pdEFyZ3VtZW50UGhhbnRvbQogCiBib29s
IEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhOb2RlKiBjYWxsVGFyZ2V0Tm9kZSwgaW50
IHJlc3VsdE9wZXJhbmQsIGNvbnN0IENhbGxMaW5rU3RhdHVzJiBjYWxsTGlua1N0YXR1cywgaW50
IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHVuc2lnbmVk
IG5leHRPZmZzZXQsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsKKyAgICBzdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgaWYgKHZlcmJvc2UpCisgICAg
ICAgIGRhdGFMb2coIkNvbnNpZGVyaW5nIGlubGluaW5nICIsIGNhbGxMaW5rU3RhdHVzLCAiIGlu
dG8gIiwgY3VycmVudENvZGVPcmlnaW4oKSwgIlxuIik7CisgICAgCiAgICAgLy8gRmlyc3QsIHRo
ZSByZWFsbHkgc2ltcGxlIGNoZWNrczogZG8gd2UgaGF2ZSBhbiBhY3R1YWwgSlMgZnVuY3Rpb24/
Ci0gICAgaWYgKCFjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCkpCisgICAgaWYgKCFjYWxsTGlu
a1N0YXR1cy5leGVjdXRhYmxlKCkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIHRoZXJlIGlzIG5vIGV4ZWN1dGFibGUuXG4i
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChjYWxsTGlua1N0YXR1cy5leGVjdXRh
YmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpCisgICAgfQorICAgIGlmIChjYWxsTGlua1N0YXR1cy5l
eGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisg
ICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIGl0J3MgYSBob3N0IGZ1bmN0
aW9uLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgCiAgICAgRnVuY3Rp
b25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGNh
bGxMaW5rU3RhdHVzLmV4ZWN1dGFibGUoKSk7CiAgICAgCiAgICAgLy8gRG9lcyB0aGUgbnVtYmVy
IG9mIGFyZ3VtZW50cyB3ZSdyZSBwYXNzaW5nIG1hdGNoIHRoZSBhcml0eSBvZiB0aGUgdGFyZ2V0
PyBXZSBjdXJyZW50bHkKICAgICAvLyBpbmxpbmUgb25seSBpZiB0aGUgbnVtYmVyIG9mIGFyZ3Vt
ZW50cyBwYXNzZWQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBudW1iZXIKICAgICAv
LyBhcmd1bWVudHMgZXhwZWN0ZWQuCi0gICAgaWYgKHN0YXRpY19jYXN0PGludD4oZXhlY3V0YWJs
ZS0+cGFyYW1ldGVyQ291bnQoKSkgKyAxID4gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpCisg
ICAgaWYgKHN0YXRpY19jYXN0PGludD4oZXhlY3V0YWJsZS0+cGFyYW1ldGVyQ291bnQoKSkgKyAx
ID4gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisg
ICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIG9mIGFyaXR5IG1pc21hdGNo
LlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICAvLyBIYXZlIHdlIGV4Y2Vl
ZGVkIGlubGluZSBzdGFjayBkZXB0aCwgb3IgYXJlIHdlIHRyeWluZyB0byBpbmxpbmUgYSByZWN1
cnNpdmUgY2FsbD8KLSAgICAvLyBJZiBlaXRoZXIgb2YgdGhlc2UgYXJlIGRldGVjdGVkLCB0aGVu
IGRvbid0IGlubGluZS4KLSAgICB1bnNpZ25lZCBkZXB0aCA9IDA7Ci0gICAgZm9yIChJbmxpbmVT
dGFja0VudHJ5KiBlbnRyeSA9IG1faW5saW5lU3RhY2tUb3A7IGVudHJ5OyBlbnRyeSA9IGVudHJ5
LT5tX2NhbGxlcikgewotICAgICAgICArK2RlcHRoOwotICAgICAgICBpZiAoZGVwdGggPj0gT3B0
aW9uczo6bWF4aW11bUlubGluaW5nRGVwdGgoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsg
Ly8gRGVwdGggZXhjZWVkZWQuCi0gICAgICAgIAotICAgICAgICBpZiAoZW50cnktPmV4ZWN1dGFi
bGUoKSA9PSBleGVjdXRhYmxlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBSZWN1cnNp
b24gZGV0ZWN0ZWQuCiAgICAgfQogICAgIAogICAgIC8vIERvIHdlIGhhdmUgYSBjb2RlIGJsb2Nr
LCBhbmQgZG9lcyB0aGUgY29kZSBibG9jaydzIHNpemUgbWF0Y2ggdGhlIGhldXJpc3RpY3MvcmVx
dWlyZW1lbnRzIGZvcgpAQCAtMTI4MywxMCArMTI5Myw1MCBAQCBib29sIEJ5dGVDb2RlUGFyc2Vy
OjpoYW5kbGVJbmxpbmluZyhOb2RlCiAgICAgLy8gZ2xvYmFsIGZ1bmN0aW9uLCB3aGVyZSB3YXRj
aHBvaW50aW5nIGdpdmVzIHVzIHN0YXRpYyBpbmZvcm1hdGlvbi4gT3ZlcmFsbCwgaXQncyBhIHJh
cmUgY2FzZQogICAgIC8vIGJlY2F1c2Ugd2UgZXhwZWN0IHRoYXQgYW55IGhvdCBjYWxsZWVzIHdv
dWxkIGhhdmUgYWxyZWFkeSBiZWVuIGNvbXBpbGVkLgogICAgIENvZGVCbG9jayogY29kZUJsb2Nr
ID0gZXhlY3V0YWJsZS0+YmFzZWxpbmVDb2RlQmxvY2tGb3Ioa2luZCk7Ci0gICAgaWYgKCFjb2Rl
QmxvY2spCisgICAgaWYgKCFjb2RlQmxvY2spIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAg
ICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIG5vIGNvZGUgYmxvY2sgYXZhaWxh
YmxlLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWNhbklubGluZUZ1bmN0
aW9uRm9yKGNvZGVCbG9jaywga2luZCwgY2FsbExpbmtTdGF0dXMuaXNDbG9zdXJlQ2FsbCgpKSkK
KyAgICB9CisgICAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbCA9IGlubGluZUZ1bmN0
aW9uRm9yQ2FwYWJpbGl0eUxldmVsKAorICAgICAgICBjb2RlQmxvY2ssIGtpbmQsIGNhbGxMaW5r
U3RhdHVzLmlzQ2xvc3VyZUNhbGwoKSk7CisgICAgaWYgKCFjYW5JbmxpbmUoY2FwYWJpbGl0eUxl
dmVsKSkgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIGRhdGFMb2coIiAgICBG
YWlsaW5nIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIGlzIG5vdCBpbmxpbmVhYmxlLlxuIik7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxk
IGJlIGJldHRlciBhdCBwcmVkaWN0aW5nIGhvdyBtdWNoIGJsb2F0IHdlIHdpbGwgaW50cm9kdWNl
IGJ5IGlubGluaW5nCisgICAgLy8gdGhpcyBmdW5jdGlvbi4KKyAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjI3CisgICAgCisgICAgLy8gSGF2ZSB3ZSBl
eGNlZWRlZCBpbmxpbmUgc3RhY2sgZGVwdGgsIG9yIGFyZSB3ZSB0cnlpbmcgdG8gaW5saW5lIGEg
cmVjdXJzaXZlIGNhbGwgdG8KKyAgICAvLyB0b28gbWFueSBsZXZlbHM/IElmIGVpdGhlciBvZiB0
aGVzZSBhcmUgZGV0ZWN0ZWQsIHRoZW4gZG9uJ3QgaW5saW5lLiBXZSBhZGp1c3Qgb3VyCisgICAg
Ly8gaGV1cmlzdGljcyBpZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgZnVuY3Rpb24gdGhhdCBjYW5u
b3Qgb3RoZXJ3aXNlIGJlIGNvbXBpbGVkLgorICAgIAorICAgIHVuc2lnbmVkIGRlcHRoID0gMDsK
KyAgICB1bnNpZ25lZCByZWN1cnNpb24gPSAwOworICAgIAorICAgIGZvciAoSW5saW5lU3RhY2tF
bnRyeSogZW50cnkgPSBtX2lubGluZVN0YWNrVG9wOyBlbnRyeTsgZW50cnkgPSBlbnRyeS0+bV9j
YWxsZXIpIHsKKyAgICAgICAgKytkZXB0aDsKKyAgICAgICAgaWYgKGRlcHRoID49IE9wdGlvbnM6
Om1heGltdW1JbmxpbmluZ0RlcHRoKCkpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICAgICAgICAgIGRhdGFMb2coIiAgICBGYWlsaW5nIGJlY2F1c2UgZGVwdGggZXhjZWVkZWQu
XG4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgaWYgKGVudHJ5LT5leGVjdXRhYmxlKCkgPT0gZXhlY3V0YWJsZSkgeworICAgICAgICAg
ICAgKytyZWN1cnNpb247CisgICAgICAgICAgICBpZiAocmVjdXJzaW9uID49IE9wdGlvbnM6Om1h
eGltdW1JbmxpbmluZ1JlY3Vyc2lvbigpKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2Up
CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBGYWlsaW5nIGJlY2F1c2UgcmVjdXJz
aW9uIGRldGVjdGVkLlxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlmICh2ZXJib3NlKQorICAgICAg
ICBkYXRhTG9nKCIgICAgQ29tbWl0dGluZyB0byBpbmxpbmluZy5cbiIpOwogICAgIAogICAgIC8v
IE5vdyB3ZSBrbm93IHdpdGhvdXQgYSBkb3VidCB0aGF0IHdlIGFyZSBjb21taXR0ZWQgdG8gaW5s
aW5pbmcuIFNvIGJlZ2luIHRoZSBwcm9jZXNzCiAgICAgLy8gYnkgY2hlY2tpbmcgdGhlIGNhbGxl
ZSAoaWYgbmVjZXNzYXJ5KSBhbmQgbWFraW5nIHN1cmUgdGhhdCBhcmd1bWVudHMgYW5kIHRoZSBj
YWxsZWUKQEAgLTE3NzMsMTEgKzE4MjMsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVH
ZXRCeUlkKAogICAgIGludCBkZXN0aW5hdGlvbk9wZXJhbmQsIFNwZWN1bGF0ZWRUeXBlIHByZWRp
Y3Rpb24sIE5vZGUqIGJhc2UsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsCiAgICAgY29uc3Qg
R2V0QnlJZFN0YXR1cyYgZ2V0QnlJZFN0YXR1cykKIHsKLSAgICBpZiAoIWdldEJ5SWRTdGF0dXMu
aXNTaW1wbGUoKQotICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhh
c0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkKLSAgICAgICAgfHwgbV9pbmxpbmVT
dGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2Fj
aGVXYXRjaHBvaW50KQotICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxl
Lmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZSkKLSAgICAg
ICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJl
bnRJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50KSkgeworICAgIGlmICghZ2V0
QnlJZFN0YXR1cy5pc1NpbXBsZSgpKSB7CiAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoZGVz
dGluYXRpb25PcGVyYW5kKSwKICAgICAgICAgICAgIGFkZFRvR3JhcGgoCiAgICAgICAgICAgICAg
ICAgZ2V0QnlJZFN0YXR1cy5tYWtlc0NhbGxzKCkgPyBHZXRCeUlkRmx1c2ggOiBHZXRCeUlkLApA
QCAtMjQ0NCw2ICsyNDkwLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNp
Z25lZAogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQocHJvcGVydHkpOwogICAgICAgICAgICAg
YWRkVmFyQXJnQ2hpbGQodmFsdWUpOwogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoMCk7IC8v
IExlYXZlIHJvb20gZm9yIHByb3BlcnR5IHN0b3JhZ2UuCisgICAgICAgICAgICBhZGRWYXJBcmdD
aGlsZCgwKTsgLy8gTGVhdmUgcm9vbSBmb3IgbGVuZ3RoLgogICAgICAgICAgICAgYWRkVG9HcmFw
aChOb2RlOjpWYXJBcmcsIG9wY29kZUlEID09IG9wX3B1dF9ieV92YWxfZGlyZWN0ID8gUHV0QnlW
YWxEaXJlY3QgOiBQdXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbygw
KSk7CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9ieV92YWwpOwpAQCAtMjQ1OSw4
ICsyNTA2LDkgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBTdHJpbmdJbXBsKiB1aWQgPSBtX2dyYXBoLmlkZW50aWZp
ZXJzKClbaWRlbnRpZmllck51bWJlcl07CiAgICAgICAgICAgICBHZXRCeUlkU3RhdHVzIGdldEJ5
SWRTdGF0dXMgPSBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAotICAgICAgICAgICAgICAgIG1f
aW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9pbmxpbmVTdGFja1RvcC0+bV9zdHVi
SW5mb3MsCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50SW5kZXgsIHVpZCk7CisgICAgICAgICAg
ICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCBtX2RmZ0NvZGVCbG9jaywK
KyAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3N0dWJJbmZvcywgbV9kZmdTdHVi
SW5mb3MsCisgICAgICAgICAgICAgICAgY3VycmVudENvZGVPcmlnaW4oKSwgdWlkKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgaGFuZGxlR2V0QnlJZCgKICAgICAgICAgICAgICAgICBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBwcmVkaWN0aW9uLCBiYXNlLCBpZGVudGlmaWVy
TnVtYmVyLCBnZXRCeUlkU3RhdHVzKTsKQEAgLTI0NzksMjYgKzI1MjcsMjAgQEAgYm9vbCBCeXRl
Q29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAgYm9vbCBkaXJlY3Qg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bOF0udS5vcGVyYW5kOwogCiAgICAgICAgICAgICBQdXRCeUlk
U3RhdHVzIHB1dEJ5SWRTdGF0dXMgPSBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAotICAgICAg
ICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9pbmxpbmVTdGFj
a1RvcC0+bV9zdHViSW5mb3MsCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50SW5kZXgsIG1fZ3Jh
cGguaWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVtYmVyXSk7CisgICAgICAgICAgICAgICAgbV9p
bmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCBtX2RmZ0NvZGVCbG9jaywKKyAgICAgICAg
ICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3N0dWJJbmZvcywgbV9kZmdTdHViSW5mb3MsCisg
ICAgICAgICAgICAgICAgY3VycmVudENvZGVPcmlnaW4oKSwgbV9ncmFwaC5pZGVudGlmaWVycygp
W2lkZW50aWZpZXJOdW1iZXJdKTsKICAgICAgICAgICAgIGJvb2wgY2FuQ291bnRBc0lubGluZWQg
PSB0cnVlOwogICAgICAgICAgICAgaWYgKCFwdXRCeUlkU3RhdHVzLmlzU2V0KCkpIHsKICAgICAg
ICAgICAgICAgICBhZGRUb0dyYXBoKEZvcmNlT1NSRXhpdCk7CiAgICAgICAgICAgICAgICAgY2Fu
Q291bnRBc0lubGluZWQgPSBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAg
ICAgICAgICAgYm9vbCBoYXNFeGl0U2l0ZSA9Ci0gICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFj
a1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUp
Ci0gICAgICAgICAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNF
eGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KQotICAgICAgICAgICAg
ICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJy
ZW50SW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlKQotICAgICAgICAgICAgICAgIHx8IG1faW5s
aW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJh
ZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2ludCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IGlmICghaGFzRXhpdFNpdGUgJiYgcHV0QnlJZFN0YXR1cy5pc1NpbXBsZVJlcGxhY2UoKSkgewor
ICAgICAgICAgICAgaWYgKHB1dEJ5SWRTdGF0dXMuaXNTaW1wbGVSZXBsYWNlKCkpIHsKICAgICAg
ICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrU3RydWN0dXJlLCBPcEluZm8obV9ncmFwaC5hZGRT
dHJ1Y3R1cmVTZXQocHV0QnlJZFN0YXR1cy5vbGRTdHJ1Y3R1cmUoKSkpLCBiYXNlKTsKICAgICAg
ICAgICAgICAgICBoYW5kbGVQdXRCeU9mZnNldChiYXNlLCBpZGVudGlmaWVyTnVtYmVyLCBwdXRC
eUlkU3RhdHVzLm9mZnNldCgpLCB2YWx1ZSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKAotICAg
ICAgICAgICAgICAgICFoYXNFeGl0U2l0ZQotICAgICAgICAgICAgICAgICYmIHB1dEJ5SWRTdGF0
dXMuaXNTaW1wbGVUcmFuc2l0aW9uKCkKKyAgICAgICAgICAgICAgICBwdXRCeUlkU3RhdHVzLmlz
U2ltcGxlVHJhbnNpdGlvbigpCiAgICAgICAgICAgICAgICAgJiYgKCFwdXRCeUlkU3RhdHVzLnN0
cnVjdHVyZUNoYWluKCkKICAgICAgICAgICAgICAgICAgICAgfHwgcHV0QnlJZFN0YXR1cy5zdHJ1
Y3R1cmVDaGFpbigpLT5pc1N0aWxsVmFsaWQoKSkpIHsKICAgICAgICAgICAgICAgICAKQEAgLTI5
NzMsMzAgKzMwMTUsNDEgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25l
ZAogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY29uc3RydWN0KTsKICAgICAgICAgICAgIAog
ICAgICAgICBjYXNlIG9wX2NhbGxfdmFyYXJnczogeworICAgICAgICAgICAgaW50IHJlc3VsdCA9
IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgY2FsbGVl
ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCB0aGlz
UmVnID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCBh
cmd1bWVudHMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOworICAgICAgICAgICAg
aW50IGZpcnN0RnJlZVJlZyA9IGN1cnJlbnRJbnN0cnVjdGlvbls1XS51Lm9wZXJhbmQ7CisgICAg
ICAgICAgICAKICAgICAgICAgICAgIEFTU0VSVChpbmxpbmVDYWxsRnJhbWUoKSk7Ci0gICAgICAg
ICAgICBBU1NFUlQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCA9PSBtX2lubGluZVN0
YWNrVG9wLT5tX2NvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKS5vZmZzZXQoKSk7CisgICAg
ICAgICAgICBBU1NFUlRfVU5VU0VEKGFyZ3VtZW50cywgYXJndW1lbnRzID09IG1faW5saW5lU3Rh
Y2tUb3AtPm1fY29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpLm9mZnNldCgpKTsKICAgICAg
ICAgICAgIEFTU0VSVCghbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxvY2stPnN5bWJvbFRhYmxl
KCktPnNsb3dBcmd1bWVudHMoKSk7Ci0gICAgICAgICAgICAvLyBJdCB3b3VsZCBiZSBjb29sIHRv
IGZ1bm5lbCB0aGlzIGludG8gaGFuZGxlQ2FsbCgpIHNvIHRoYXQgaXQgY2FuIGhhbmRsZQotICAg
ICAgICAgICAgLy8gaW5saW5pbmcuIEJ1dCBjdXJyZW50bHkgdGhhdCB3b24ndCBiZSBwcm9maXRh
YmxlIGFueXdheSwgc2luY2Ugbm9uZSBvZiB0aGUKLSAgICAgICAgICAgIC8vIHVzZXMgb2YgY2Fs
bF92YXJhcmdzIHdpbGwgYmUgaW5saW5lYWJsZS4gU28gd2Ugc2V0IHRoaXMgdXAgbWFudWFsbHkg
YW5kCi0gICAgICAgICAgICAvLyB3aXRob3V0IGlubGluZS9pbnRyaW5zaWMgZGV0ZWN0aW9uLgot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0
UHJlZGljdGlvbigpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hl
Y2tBcmd1bWVudHNOb3RDcmVhdGVkKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICB1bnNp
Z25lZCBhcmdDb3VudCA9IGlubGluZUNhbGxGcmFtZSgpLT5hcmd1bWVudHMuc2l6ZSgpOwotICAg
ICAgICAgICAgaWYgKEpTU3RhY2s6OlRoaXNBcmd1bWVudCArIGFyZ0NvdW50ID4gbV9wYXJhbWV0
ZXJTbG90cykKLSAgICAgICAgICAgICAgICBtX3BhcmFtZXRlclNsb3RzID0gSlNTdGFjazo6VGhp
c0FyZ3VtZW50ICsgYXJnQ291bnQ7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGFkZFZhckFy
Z0NoaWxkKGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZCkpKTsgLy8gY2FsbGVlCi0gICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChnZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7IC8vIHRoaXMKKyAgICAg
ICAgICAgIC8vIExldCdzIGNvbXB1dGUgdGhlIHJlZ2lzdGVyIG9mZnNldC4gV2Ugc3RhcnQgd2l0
aCB0aGUgbGFzdCB1c2VkIHJlZ2lzdGVyLCBhbmQKKyAgICAgICAgICAgIC8vIHRoZW4gYWRqdXN0
IGZvciB0aGUgdGhpbmdzIHdlIHdhbnQgaW4gdGhlIGNhbGwgZnJhbWUuCisgICAgICAgICAgICBp
bnQgcmVnaXN0ZXJPZmZzZXQgPSBmaXJzdEZyZWVSZWcgKyAxOworICAgICAgICAgICAgcmVnaXN0
ZXJPZmZzZXQgLT0gYXJnQ291bnQ7IC8vIFdlIHdpbGwgYmUgcGFzc2luZyBzb21lIGFyZ3VtZW50
cy4KKyAgICAgICAgICAgIHJlZ2lzdGVyT2Zmc2V0IC09IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRl
clNpemU7IC8vIFdlIHdpbGwgcHJldGVuZCB0byBoYXZlIGEgY2FsbCBmcmFtZSBoZWFkZXIuCisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEdldCB0aGUgYWxpZ25tZW50IHJpZ2h0LgorICAg
ICAgICAgICAgcmVnaXN0ZXJPZmZzZXQgPSAtV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKAorICAg
ICAgICAgICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksCisgICAgICAgICAgICAgICAg
LXJlZ2lzdGVyT2Zmc2V0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gVGhlIGJ5dGVj
b2RlIHdvdWxkbid0IGhhdmUgc2V0IHVwIHRoZSBhcmd1bWVudHMuIEJ1dCB3ZSdsbCBkbyBpdCBh
bmQgbWFrZSBpdAorICAgICAgICAgICAgLy8gbG9vayBsaWtlIHRoZSBieXRlY29kZSBoYWQgZG9u
ZSBpdC4KKyAgICAgICAgICAgIGludCBuZXh0UmVnaXN0ZXIgPSByZWdpc3Rlck9mZnNldCArIEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7CisgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lz
dGVyKG5leHRSZWdpc3RlcisrKSwgZ2V0KFZpcnR1YWxSZWdpc3Rlcih0aGlzUmVnKSksIEltbWVk
aWF0ZVNldCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGFyZ3VtZW50ID0gMTsgYXJndW1l
bnQgPCBhcmdDb3VudDsgKythcmd1bWVudCkKLSAgICAgICAgICAgICAgICBhZGRWYXJBcmdDaGls
ZChnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpKSk7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZCksCi0gICAgICAgICAgICAgICAgYWRkVG9HcmFwaChOb2RlOjpWYXJBcmcsIENh
bGwsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pKSk7CisgICAgICAgICAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3RlcihuZXh0UmVnaXN0ZXIrKyksIGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JB
cmd1bWVudChhcmd1bWVudCkpLCBJbW1lZGlhdGVTZXQpOwogICAgICAgICAgICAgCisgICAgICAg
ICAgICBoYW5kbGVDYWxsKAorICAgICAgICAgICAgICAgIHJlc3VsdCwgQ2FsbCwgQ29kZUZvckNh
bGwsIE9QQ09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKSwKKyAgICAgICAgICAgICAgICBjYWxs
ZWUsIGFyZ0NvdW50LCByZWdpc3Rlck9mZnNldCk7CiAgICAgICAgICAgICBORVhUX09QQ09ERShv
cF9jYWxsX3ZhcmFyZ3MpOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTM2NTQsNiArMzcw
NywxNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZSgpCiAgICAgLy8gU2V0IGR1cmluZyBj
b25zdHJ1Y3Rpb24uCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRJbmRleCk7CiAgICAgCisgICAgaWYg
KGlzRlRMKG1fZ3JhcGgubV9wbGFuLm1vZGUpKSB7CisgICAgICAgIG1fZGZnQ29kZUJsb2NrID0g
bV9ncmFwaC5tX3BsYW4ucHJvZmlsZWRERkdDb2RlQmxvY2suZ2V0KCk7CisgICAgICAgIGlmICht
X2RmZ0NvZGVCbG9jaykgeworICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmVuYWJsZVBvbHl2YXJp
YW50Q2FsbElubGluaW5nKCkpCisgICAgICAgICAgICAgICAgQ2FsbExpbmtTdGF0dXM6OmNvbXB1
dGVERkdTdGF0dXNlcyhtX2RmZ0NvZGVCbG9jaywgbV9jYWxsQ29udGV4dE1hcCk7CisgICAgICAg
ICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlUG9seXZhcmlhbnRCeUlkSW5saW5pbmcoKSkKKyAgICAg
ICAgICAgICAgICBtX2RmZ0NvZGVCbG9jay0+Z2V0U3R1YkluZm9NYXAobV9kZmdTdHViSW5mb3Mp
OworICAgICAgICB9CisgICAgfQorICAgIAogICAgIGlmIChtX2NvZGVCbG9jay0+Y2FwdHVyZUNv
dW50KCkpIHsKICAgICAgICAgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlID0gbV9jb2RlQmxvY2st
PnN5bWJvbFRhYmxlKCk7CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHN5bWJv
bFRhYmxlLT5tX2xvY2spOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDRkdT
aW1wbGlmaWNhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAg
ICAgICAgLy8gc3Vib3B0aW1hbCwgYmVjYXVzZSBpZiBteSBzdWNjZXNzb3IgaGFzIG11bHRpcGxl
IHByZWRlY2Vzc29ycyB0aGVuIHdlJ2xsCiAgICAgICAgICAgICAgICAgICAgIC8vIGJlIGtlZXBp
bmcgYWxpdmUgdGhpbmdzIG9uIG90aGVyIHByZWRlY2Vzc29yIGVkZ2VzIHVubmVjZXNzYXJpbHku
CiAgICAgICAgICAgICAgICAgICAgIC8vIFdoYXQgd2UgcmVhbGx5IG5lZWQgaXMgdGhlIG5vdGlv
biBvZiBlbmQtb2YtYmxvY2sgZ2hvc3RpZXMhCisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBBbGxvdyBwdXR0aW5nIHBoYW50b21zIGFmdGVyIHRlcm1pbmFscy4KKyAgICAgICAgICAgICAg
ICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjc3OAog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFz
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShERkdf
SklUKQogCisjaW5jbHVkZSAiREZHQWJzdHJhY3RIZWFwLmgiCisjaW5jbHVkZSAiREZHQ2xvYmJl
cml6ZS5oIgogI2luY2x1ZGUgIkRGR0VkZ2VVc2VzU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAiREZH
R3JhcGguaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgpAQCAtMTAwNiw2ICsxMDA4LDE4IEBAIHBy
aXZhdGU6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAorICAgIGJvb2wgaW52
YWxpZGF0aW9uUG9pbnRFbGltaW5hdGlvbigpCisgICAgeworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSBtX2luZGV4SW5CbG9jazsgaS0tOykgeworICAgICAgICAgICAgTm9kZSogbm9kZSA9IG1f
Y3VycmVudEJsb2NrLT5hdChpKTsKKyAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEludmFs
aWRhdGlvblBvaW50KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg
aWYgKHdyaXRlc092ZXJsYXAobV9ncmFwaCwgbm9kZSwgV2F0Y2hwb2ludF9maXJlKSkKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICAgIAogICAgIHZvaWQgZWxpbWluYXRlSXJyZWxldmFudFBoYW50b21DaGlsZHJlbihOb2Rl
KiBub2RlKQogICAgIHsKICAgICAgICAgQVNTRVJUKG5vZGUtPm9wKCkgPT0gUGhhbnRvbSk7CkBA
IC0xMzg1LDkgKzEzOTksMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGVsaW1pbmF0ZShwdXRC
eU9mZnNldFN0b3JlRWxpbWluYXRpb24obV9ncmFwaC5tX3N0b3JhZ2VBY2Nlc3NEYXRhW25vZGUt
PnN0b3JhZ2VBY2Nlc3NEYXRhSW5kZXgoKV0uaWRlbnRpZmllck51bWJlciwgbm9kZS0+Y2hpbGQx
KCkubm9kZSgpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAorICAgICAgICBj
YXNlIEludmFsaWRhdGlvblBvaW50OgorICAgICAgICAgICAgaWYgKGludmFsaWRhdGlvblBvaW50
RWxpbWluYXRpb24oKSkKKyAgICAgICAgICAgICAgICBlbGltaW5hdGUoKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgUGhhbnRvbToKICAgICAgICAgICAg
IC8vIEZJWE1FOiB3ZSBvdWdodCB0byByZW1vdmUgUGhhbnRvbSdzIHRoYXQgaGF2ZSBubyBjaGls
ZHJlbi4KLSAgICAgICAgICAgIAogICAgICAgICAgICAgZWxpbWluYXRlSXJyZWxldmFudFBoYW50
b21DaGlsZHJlbihub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGll
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw2ICsxOTgsOCBAQCBDYXBhYmlsaXR5TGV2ZWwg
Y2FwYWJpbGl0eUxldmVsKE9wY29kZUlECiAgICAgY2FzZSBvcF9jYWxsX3ZhcmFyZ3M6CiAgICAg
ICAgIGlmIChjb2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSAmJiBwY1s0XS51Lm9wZXJhbmQgPT0g
Y29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpLm9mZnNldCgpKQogICAgICAgICAgICAgcmV0
dXJuIENhbklubGluZTsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBoYW5kbGUgdGhpcy4K
KyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYy
NgogICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKIAogICAgIGNhc2Ugb3BfbmV3X3JlZ2V4
cDogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmgJ
KHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJp
bGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDE5ICs5NiwyOCBAQCBpbmxpbmUgQ2FwYWJp
bGl0eUxldmVsIGZ1bmN0aW9uRm9yQ29uc3RyCiAgICAgcmV0dXJuIGNhcGFiaWxpdHlMZXZlbChj
b2RlQmxvY2spOwogfQogCi1pbmxpbmUgYm9vbCBjYW5JbmxpbmVGdW5jdGlvbkZvckNhbGwoQ29k
ZUJsb2NrKiBjb2RlQmxvY2spCitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGlubGluZUZ1bmN0aW9u
Rm9yQ2FsbENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKLSAgICByZXR1
cm4gbWlnaHRJbmxpbmVGdW5jdGlvbkZvckNhbGwoY29kZUJsb2NrKSAmJiBjYW5JbmxpbmUoY2Fw
YWJpbGl0eUxldmVsKGNvZGVCbG9jaykpOworICAgIGlmICghbWlnaHRJbmxpbmVGdW5jdGlvbkZv
ckNhbGwoY29kZUJsb2NrKSkKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAgCisg
ICAgcmV0dXJuIGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwogfQogCi1pbmxpbmUgYm9vbCBj
YW5JbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxsKENvZGVCbG9jayogY29kZUJsb2NrKQoraW5s
aW5lIENhcGFiaWxpdHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxsQ2FwYWJpbGl0
eUxldmVsKENvZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBtaWdodElubGluZUZ1
bmN0aW9uRm9yQ2xvc3VyZUNhbGwoY29kZUJsb2NrKSAmJiBjYW5JbmxpbmUoY2FwYWJpbGl0eUxl
dmVsKGNvZGVCbG9jaykpOworICAgIGlmICghbWlnaHRJbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVD
YWxsKGNvZGVCbG9jaykpCisgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOworICAgIAorICAg
IHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAotaW5saW5lIGJvb2wgY2Fu
SW5saW5lRnVuY3Rpb25Gb3JDb25zdHJ1Y3QoQ29kZUJsb2NrKiBjb2RlQmxvY2spCitpbmxpbmUg
Q2FwYWJpbGl0eUxldmVsIGlubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0Q2FwYWJpbGl0eUxldmVs
KENvZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBtaWdodElubGluZUZ1bmN0aW9u
Rm9yQ29uc3RydWN0KGNvZGVCbG9jaykgJiYgY2FuSW5saW5lKGNhcGFiaWxpdHlMZXZlbChjb2Rl
QmxvY2spKTsKKyAgICBpZiAoIW1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDb25zdHJ1Y3QoY29kZUJs
b2NrKSkKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAgCisgICAgcmV0dXJuIGNh
cGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwogfQogCiBpbmxpbmUgYm9vbCBtaWdodElubGluZUZ1
bmN0aW9uRm9yKENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtp
bmQpCkBAIC0xMjQsMTYgKzEzMywxNiBAQCBpbmxpbmUgYm9vbCBtaWdodElubGluZUZ1bmN0aW9u
KENvZGVCbG9jCiAgICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3IoY29kZUJsb2NrLCBj
b2RlQmxvY2stPnNwZWNpYWxpemF0aW9uS2luZCgpKTsKIH0KIAotaW5saW5lIGJvb2wgY2FuSW5s
aW5lRnVuY3Rpb25Gb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVTcGVjaWFsaXphdGlvbktp
bmQga2luZCwgYm9vbCBpc0Nsb3N1cmVDYWxsKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBpbmxp
bmVGdW5jdGlvbkZvckNhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCBraW5kLCBib29sIGlzQ2xvc3VyZUNhbGwpCiB7CiAgICAgaWYgKGlz
Q2xvc3VyZUNhbGwpIHsKICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNhbGwpOwotICAg
ICAgICByZXR1cm4gY2FuSW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChjb2RlQmxvY2spOwor
ICAgICAgICByZXR1cm4gaW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbENhcGFiaWxpdHlMZXZl
bChjb2RlQmxvY2spOwogICAgIH0KICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKLSAgICAg
ICAgcmV0dXJuIGNhbklubGluZUZ1bmN0aW9uRm9yQ2FsbChjb2RlQmxvY2spOworICAgICAgICBy
ZXR1cm4gaW5saW5lRnVuY3Rpb25Gb3JDYWxsQ2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiAg
ICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgcmV0dXJuIGNhbklubGlu
ZUZ1bmN0aW9uRm9yQ29uc3RydWN0KGNvZGVCbG9jayk7CisgICAgcmV0dXJuIGlubGluZUZ1bmN0
aW9uRm9yQ29uc3RydWN0Q2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiB9CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29t
bW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24u
aAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21t
b24uaAkod29ya2luZyBjb3B5KQpAQCAtODcsMTUgKzg3LDYgQEAgaW5saW5lIGJvb2wgdmFsaWRh
dGlvbkVuYWJsZWQoKQogI2VuZGlmCiB9CiAKLWlubGluZSBib29sIGVuYWJsZUNvbmN1cnJlbnRK
SVQoKQotewotI2lmIEVOQUJMRShDT05DVVJSRU5UX0pJVCkKLSAgICByZXR1cm4gT3B0aW9uczo6
ZW5hYmxlQ29uY3VycmVudEpJVCgpICYmIE9wdGlvbnM6Om51bWJlck9mQ29tcGlsZXJUaHJlYWRz
KCk7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBpbmxpbmUgYm9vbCBl
bmFibGVJbnQ1MigpCiB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTIzNSw3ICsyMjYsMTMgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiAvLyBQdXQgdGhpbmdzIGhlcmUgdGhh
dCBtdXN0IGJlIGRlZmluZWQgZXZlbiBpZiBFTkFCTEUoREZHX0pJVCkgaXMgZmFsc2UuCiAKLWVu
dW0gQ2FwYWJpbGl0eUxldmVsIHsgQ2Fubm90Q29tcGlsZSwgQ2FuSW5saW5lLCBDYW5Db21waWxl
LCBDYW5Db21waWxlQW5kSW5saW5lLCBDYXBhYmlsaXR5TGV2ZWxOb3RTZXQgfTsKK2VudW0gQ2Fw
YWJpbGl0eUxldmVsIHsKKyAgICBDYW5ub3RDb21waWxlLAorICAgIENhbklubGluZSwKKyAgICBD
YW5Db21waWxlLAorICAgIENhbkNvbXBpbGVBbmRJbmxpbmUsCisgICAgQ2FwYWJpbGl0eUxldmVs
Tm90U2V0Cit9OwogCiBpbmxpbmUgYm9vbCBjYW5Db21waWxlKENhcGFiaWxpdHlMZXZlbCBsZXZl
bCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tcGlsYXRpb25Nb2Rl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21waWxhdGlv
bk1vZGUuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb21waWxhdGlvbk1vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsMTcgQEAgZW51
bSBDb21waWxhdGlvbk1vZGUgewogICAgIEZUTEZvck9TUkVudHJ5TW9kZQogfTsKIAoraW5saW5l
IGJvb2wgaXNGVEwoQ29tcGlsYXRpb25Nb2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7
CisgICAgY2FzZSBGVExNb2RlOgorICAgIGNhc2UgRlRMRm9yT1NSRW50cnlNb2RlOgorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKIG5hbWVzcGFjZSBXVEYgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAkocmV2aXNpb24gMTYyOTYx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw5ICs1Niw5IEBAIHVuc2lnbmVkIGdldE51
bUNvbXBpbGF0aW9ucygpCiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIHN0YXRpYyBDb21waWxhdGlv
blJlc3VsdCBjb21waWxlSW1wbCgKLSAgICBWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBD
b21waWxhdGlvbk1vZGUgbW9kZSwgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LAotICAg
IGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzLAotICAgIFBhc3NSZWZQ
dHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaywgV29ya2xpc3QqIHdvcmts
aXN0KQorICAgIFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVCbG9jayogcHJvZmls
ZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0aW9uTW9kZSBtb2RlLAorICAgIHVuc2lnbmVkIG9zckVu
dHJ5Qnl0ZWNvZGVJbmRleCwgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1
ZXMsCisgICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNr
KQogewogICAgIFNhbXBsaW5nUmVnaW9uIHNhbXBsaW5nUmVnaW9uKCJERkcgQ29tcGlsYXRpb24g
KERyaXZlcikiKTsKICAgICAKQEAgLTY3LDYgKzY3LDcgQEAgc3RhdGljIENvbXBpbGF0aW9uUmVz
dWx0IGNvbXBpbGVJbXBsKAogICAgIEFTU0VSVChjb2RlQmxvY2spOwogICAgIEFTU0VSVChjb2Rl
QmxvY2stPmFsdGVybmF0aXZlKCkpOwogICAgIEFTU0VSVChjb2RlQmxvY2stPmFsdGVybmF0aXZl
KCktPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7CisgICAgQVNTRVJUKCFwcm9m
aWxlZERGR0NvZGVCbG9jayB8fCBwcm9maWxlZERGR0NvZGVCbG9jay0+aml0VHlwZSgpID09IEpJ
VENvZGU6OkRGR0pJVCk7CiAgICAgCiAgICAgaWYgKCFPcHRpb25zOjp1c2VERkdKSVQoKSB8fCAh
TWFjcm9Bc3NlbWJsZXI6OnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKQogICAgICAgICByZXR1cm4g
Q29tcGlsYXRpb25GYWlsZWQ7CkBAIC04OCwxNiArODksMzEgQEAgc3RhdGljIENvbXBpbGF0aW9u
UmVzdWx0IGNvbXBpbGVJbXBsKAogICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGFsbCBKSVQgY29kZSBn
ZW5lcmF0aW9uIGRvZXMgZmluYWxpemF0aW9uIG9uIHRoZSBtYWluIHRocmVhZC4KICAgICB2bS5n
ZXRDVElTdHViKG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOwogICAgIHZtLmdldENU
SVN0dWIodGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKTsKLSAgICB2bS5n
ZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpOwotICAgIHZtLmdldENUSVN0dWIobGlu
a0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHViKGxpbmtDbG9zdXJl
Q2FsbFRodW5rR2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtH
ZW5lcmF0b3IpOwotICAgIHZtLmdldENUSVN0dWIodmlydHVhbENvbnN0cnVjdFRodW5rR2VuZXJh
dG9yKTsKKyAgICBpZiAobW9kZSA9PSBERkdNb2RlKSB7CisgICAgICAgIHZtLmdldENUSVN0dWIo
bGlua0NhbGxUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIobGlua0NvbnN0
cnVjdFRodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNh
bGxUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmlydHVhbENhbGxUaHVu
a0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmlydHVhbENvbnN0cnVjdFRodW5r
R2VuZXJhdG9yKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2bS5nZXRDVElTdHViKGxpbmtDYWxs
VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIo
bGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2
bS5nZXRDVElTdHViKGxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0
b3IpOworICAgICAgICB2bS5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NU
aHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmlydHVhbENvbnN0cnVjdFRo
YXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAgIH0KICAgICAKICAgICBSZWZQdHI8
UGxhbj4gcGxhbiA9IGFkb3B0UmVmKAotICAgICAgICBuZXcgUGxhbihjb2RlQmxvY2ssIG1vZGUs
IG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcykpOworICAgICAgICBuZXcg
UGxhbihjb2RlQmxvY2ssIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVj
b2RlSW5kZXgsIG11c3RIYW5kbGVWYWx1ZXMpKTsKICAgICAKLSAgICBpZiAod29ya2xpc3QpIHsK
KyAgICBib29sIGVuYWJsZUNvbmN1cnJlbnRKSVQ7CisjaWYgRU5BQkxFKENPTkNVUlJFTlRfSklU
KQorICAgIGVuYWJsZUNvbmN1cnJlbnRKSVQgPSBPcHRpb25zOjplbmFibGVDb25jdXJyZW50SklU
KCk7CisjZWxzZSAvLyBFTkFCTEUoQ09OQ1VSUkVOVF9KSVQpCisgICAgZW5hYmxlQ29uY3VycmVu
dEpJVCA9IGZhbHNlOworI2VuZGlmIC8vIEVOQUJMRShDT05DVVJSRU5UX0pJVCkKKyAgICBpZiAo
ZW5hYmxlQ29uY3VycmVudEpJVCkgeworICAgICAgICBXb3JrbGlzdCogd29ya2xpc3QgPSBlbnN1
cmVHbG9iYWxXb3JrbGlzdEZvcihtb2RlKTsKICAgICAgICAgcGxhbi0+Y2FsbGJhY2sgPSBjYWxs
YmFjazsKICAgICAgICAgaWYgKGxvZ0NvbXBpbGF0aW9uQ2hhbmdlcygpKQogICAgICAgICAgICAg
ZGF0YUxvZygiRGVmZXJyaW5nIERGRyBjb21waWxhdGlvbiBvZiAiLCAqY29kZUJsb2NrLCAiIHdp
dGggcXVldWUgbGVuZ3RoICIsIHdvcmtsaXN0LT5xdWV1ZUxlbmd0aCgpLCAiLlxuIik7CkBAIC0x
MTAsMjEgKzEyNiwyMiBAQCBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiB9
CiAjZWxzZSAvLyBFTkFCTEUoREZHX0pJVCkKIHN0YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21w
aWxlSW1wbCgKLSAgICBWTSYsIENvZGVCbG9jayosIENvbXBpbGF0aW9uTW9kZSwgdW5zaWduZWQs
IGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiwKLSAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjaz4sIFdvcmtsaXN0KikKKyAgICBWTSYsIENvZGVCbG9jayosIENvZGVCbG9j
ayosIENvbXBpbGF0aW9uTW9kZSwgdW5zaWduZWQsIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiwK
KyAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4pCiB7CiAgICAgcmV0
dXJuIENvbXBpbGF0aW9uRmFpbGVkOwogfQogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogCiBD
b21waWxhdGlvblJlc3VsdCBjb21waWxlKAotICAgIFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIENvbXBpbGF0aW9uTW9kZSBtb2RlLCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgs
Ci0gICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMsCi0gICAgUGFz
c1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IHBhc3NlZENhbGxiYWNrLCBXb3Jr
bGlzdCogd29ya2xpc3QpCisgICAgVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUJs
b2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUsCisgICAgdW5z
aWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LCBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVz
dEhhbmRsZVZhbHVlcywKKyAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
az4gcGFzc2VkQ2FsbGJhY2spCiB7CiAgICAgUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjaz4gY2FsbGJhY2sgPSBwYXNzZWRDYWxsYmFjazsKICAgICBDb21waWxhdGlvblJlc3VsdCBy
ZXN1bHQgPSBjb21waWxlSW1wbCgKLSAgICAgICAgdm0sIGNvZGVCbG9jaywgbW9kZSwgb3NyRW50
cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFsdWVzLCBjYWxsYmFjaywgd29ya2xpc3QpOwor
ICAgICAgICB2bSwgY29kZUJsb2NrLCBwcm9maWxlZERGR0NvZGVCbG9jaywgbW9kZSwgb3NyRW50
cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFsdWVzLAorICAgICAgICBjYWxsYmFjayk7CiAg
ICAgaWYgKHJlc3VsdCAhPSBDb21waWxhdGlvbkRlZmVycmVkKQogICAgICAgICBjYWxsYmFjay0+
Y29tcGlsYXRpb25EaWRDb21wbGV0ZShjb2RlQmxvY2ssIHJlc3VsdCk7CiAgICAgcmV0dXJuIHJl
c3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuaAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAy
MDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsMTYgKzQwLDE0IEBAIGNsYXNzIFZNOwogCiBuYW1lc3Bh
Y2UgREZHIHsKIAotY2xhc3MgV29ya2xpc3Q7Ci0KIEpTX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVk
IGdldE51bUNvbXBpbGF0aW9ucygpOwogCiAvLyBJZiB0aGUgd29ya2xpc3QgaXMgbm9uLW51bGws
IHdlIGRvIGEgY29uY3VycmVudCBjb21waWxlLiBPdGhlcndpc2Ugd2UgZG8gYSBzeW5jaHJvbm91
cwogLy8gY29tcGlsZS4gRXZlbiBpZiB3ZSBkbyBhIHN5bmNocm9ub3VzIGNvbXBpbGUsIHdlIGNh
bGwgdGhlIGNhbGxiYWNrIHdpdGggdGhlIHJlc3VsdC4KIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBp
bGUoCi0gICAgVk0mLCBDb2RlQmxvY2sqLCBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkIG9zckVu
dHJ5Qnl0ZWNvZGVJbmRleCwKLSAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRs
ZVZhbHVlcywKLSAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4sIFdv
cmtsaXN0Kik7CisgICAgVk0mLCBDb2RlQmxvY2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29k
ZUJsb2NrLCBDb21waWxhdGlvbk1vZGUsCisgICAgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUlu
ZGV4LCBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcywKKyAgICBQYXNz
UmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4pOwogCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6REZHCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmlu
YWxpemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zh
aWxlZEZpbmFsaXplci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiAr
MzksMTEgQEAgRmFpbGVkRmluYWxpemVyOjp+RmFpbGVkRmluYWxpemVyKCkKIHsKIH0KIAorc2l6
ZV90IEZhaWxlZEZpbmFsaXplcjo6Y29kZVNpemUoKQoreworICAgIHJldHVybiAwOworfQorCiBi
b29sIEZhaWxlZEZpbmFsaXplcjo6ZmluYWxpemUoKQogewogICAgIHJldHVybiBmYWxzZTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuaAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRG
aW5hbGl6ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAgICAg
RmFpbGVkRmluYWxpemVyKFBsYW4mKTsKICAgICB2aXJ0dWFsIH5GYWlsZWRGaW5hbGl6ZXIoKTsK
ICAgICAKKyAgICB2aXJ0dWFsIHNpemVfdCBjb2RlU2l6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZUZ1
bmN0aW9uKCkgb3ZlcnJpZGU7CiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdGaW5hbGl6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpbmFsaXplci5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpbmFsaXplci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBAIHB1Ymxp
YzoKICAgICBGaW5hbGl6ZXIoUGxhbiYpOwogICAgIHZpcnR1YWwgfkZpbmFsaXplcigpOwogICAg
IAorICAgIHZpcnR1YWwgc2l6ZV90IGNvZGVTaXplKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBm
aW5hbGl6ZSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemVGdW5jdGlvbigpID0gMDsK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShy
ZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTIgKzEwMCwxNCBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIEJpdFJTaGlmdDoKICAgICAgICAgY2FzZSBCaXRMU2hpZnQ6CiAgICAgICAgIGNh
c2UgQml0VVJTaGlmdDogewotICAgICAgICAgICAgZml4QmluYXJ5SW50RWRnZXMoKTsKKyAgICAg
ICAgICAgIGZpeEludEVkZ2Uobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4SW50RWRn
ZShub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAg
ICAgIGNhc2UgQXJpdGhJTXVsOiB7Ci0gICAgICAgICAgICBmaXhCaW5hcnlJbnRFZGdlcygpOwor
ICAgICAgICAgICAgZml4SW50RWRnZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhJ
bnRFZGdlKG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIG5vZGUtPnNldE9wKEFyaXRoTXVs
KTsKICAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShBcml0aDo6VW5jaGVja2VkKTsKICAg
ICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLnNldFVzZUtpbmQoSW50MzJVc2UpOwpAQCAtNDUwLDYg
KzQ1Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgR2V0QnlWYWw6IHsKICAgICAgICAgICAg
IG5vZGUtPnNldEFycmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2RlLT5hcnJheU1vZGUoKS5y
ZWZpbmUoCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4sCiAg
ICAgICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCksCiAgICAgICAg
ICAgICAgICAgICAgIG5vZGUtPmNoaWxkMigpLT5wcmVkaWN0aW9uKCksCiAgICAgICAgICAgICAg
ICAgICAgIFNwZWNOb25lLCBub2RlLT5mbGFncygpKSk7CkBAIC01MDcsNiArNTEwLDcgQEAgcHJp
dmF0ZToKIAogICAgICAgICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKAogICAgICAgICAgICAgICAg
IG5vZGUtPmFycmF5TW9kZSgpLnJlZmluZSgKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaCwg
bm9kZS0+Y29kZU9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgY2hpbGQxLT5wcmVkaWN0aW9u
KCksCiAgICAgICAgICAgICAgICAgICAgIGNoaWxkMi0+cHJlZGljdGlvbigpLAogICAgICAgICAg
ICAgICAgICAgICBjaGlsZDMtPnByZWRpY3Rpb24oKSkpOwpAQCAtNTkyLDYgKzU5Niw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAvLyB0aGF0IHdvdWxkIGJyZWFrIHRoaW5ncy4KICAgICAgICAg
ICAgIG5vZGUtPnNldEFycmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2RlLT5hcnJheU1vZGUo
KS5yZWZpbmUoCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4s
CiAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCkgJiBTcGVj
Q2VsbCwKICAgICAgICAgICAgICAgICAgICAgU3BlY0ludDMyLAogICAgICAgICAgICAgICAgICAg
ICBub2RlLT5jaGlsZDIoKS0+cHJlZGljdGlvbigpKSk7CkBAIC05NDYsNyArOTUxLDYgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgICAgICBPcEluZm8obV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9k
ZS0+Y29kZU9yaWdpbikpKTsKICAgICAgICAgICAgIE5vZGUqIGJhcnJpZXJOb2RlID0gbV9ncmFw
aC5hZGROb2RlKFNwZWNOb25lLCBDb25kaXRpb25hbFN0b3JlQmFycmllciwgbV9jdXJyZW50Tm9k
ZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAgICAgICAgRWRnZShnbG9iYWxPYmplY3ROb2RlLCBL
bm93bkNlbGxVc2UpLCBFZGdlKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgVW50eXBlZFVzZSkpOwot
ICAgICAgICAgICAgZml4dXBOb2RlKGJhcnJpZXJOb2RlKTsKICAgICAgICAgICAgIG1faW5zZXJ0
aW9uU2V0Lmluc2VydChtX2luZGV4SW5CbG9jaywgYmFycmllck5vZGUpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KQEAgLTk1NCw3ICs5NTgsNiBAQCBwcml2YXRlOgogICAgICAgICBj
YXNlIFRlYXJPZmZBY3RpdmF0aW9uOiB7CiAgICAgICAgICAgICBOb2RlKiBiYXJyaWVyTm9kZSA9
IG1fZ3JhcGguYWRkTm9kZShTcGVjTm9uZSwgU3RvcmVCYXJyaWVyV2l0aE51bGxDaGVjaywgbV9j
dXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAgICAgICAgRWRnZShub2RlLT5jaGls
ZDEoKS5ub2RlKCksIFVudHlwZWRVc2UpKTsKLSAgICAgICAgICAgIGZpeHVwTm9kZShiYXJyaWVy
Tm9kZSk7CiAgICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnQobV9pbmRleEluQmxvY2ss
IGJhcnJpZXJOb2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMDM0LDYg
KzEwMzcsMjQgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIGlmICghbm9kZS0+Y29udGFp
bnNNb3ZIaW50KCkpCiAgICAgICAgICAgICBERkdfTk9ERV9ET19UT19DSElMRFJFTihtX2dyYXBo
LCBub2RlLCBvYnNlcnZlVW50eXBlZEVkZ2UpOworICAgICAgICAKKyAgICAgICAgaWYgKG5vZGUt
PmlzVGVybWluYWwoKSkgeworICAgICAgICAgICAgLy8gVGVybWluYWwgbm9kZXMgZG9uJ3QgbmVl
ZCBwb3N0LXBoYW50b21zLCBhbmQgaW5zZXJ0aW5nIHRoZW0gd291bGQgdmlvbGF0ZQorICAgICAg
ICAgICAgLy8gdGhlIGN1cnJlbnQgcmVxdWlyZW1lbnQgdGhhdCBhIHRlcm1pbmFsIGlzIHRoZSBs
YXN0IHRoaW5nIGluIGEgYmxvY2suIFdlCisgICAgICAgICAgICAvLyBzaG91bGQgZXZlbnR1YWxs
eSBjaGFuZ2UgdGhhdCByZXF1aXJlbWVudCBidXQgZXZlbiBpZiB3ZSBkaWQsIHRoaXMgd291bGQK
KyAgICAgICAgICAgIC8vIHN0aWxsIGJlIGEgdmFsaWQgb3B0aW1pemF0aW9uLiBBbGwgdGVybWlu
YWxzIGFjY2VwdCBqdXN0IG9uZSBpbnB1dCwgYW5kCisgICAgICAgICAgICAvLyBpZiB0aGF0IGlu
cHV0IGlzIGEgY29udmVyc2lvbiBub2RlIHRoZW4gbm8gZnVydGhlciBzcGVjdWxhdGlvbnMgd2ls
bCBiZQorICAgICAgICAgICAgLy8gcGVyZm9ybWVkLgorICAgICAgICAgICAgLy8gRklYTUU6IEdl
dCByaWQgb2YgdGhpcyBieSBhbGxvd2luZyBQaGFudG9tcyBhZnRlciB0ZXJtaW5hbHMuCisgICAg
ICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2Nzc4
CisgICAgICAgICAgICBtX3JlcXVpcmVkUGhhbnRvbXMucmVzaXplKDApOworICAgICAgICAvLyBT
aW5jZSBTdG9yZUJhcnJpZXJzIGFyZSByZWN1cnNpdmVseSBmaXhlZCB1cCBzbyB0aGF0IHRoZWly
IGNoaWxkcmVuIGxvb2sgCisgICAgICAgIC8vIGlkZW50aWNhbCB0byB0aGF0IG9mIHRoZSBub2Rl
IHRoZXkncmUgYmFycmllci1pbmcsIHdlIG5lZWQgdG8gYXZvaWQgYWRkaW5nCisgICAgICAgIC8v
IGFueSBQaGFudG9tcyB3aGVuIHByb2Nlc3NpbmcgdGhlbSBiZWNhdXNlIHRoaXMgd291bGQgaW52
YWxpZGF0ZSB0aGUgCisgICAgICAgIC8vIEluc2VydGlvblNldCdzIGludmFyaWFudCBvZiBpbnNl
cnRpbmcgdGhpbmdzIGluIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nCisgICAgICAgIC8vIG9y
ZGVyLiBUaGlzIHNob3VsZCBiZSBva2F5IGFueXdheXMgYmVjYXVzZSBTdG9yZUJhcnJpZXJzIGNh
bid0IGV4aXQuIAorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFkZFBoYW50b21zSWZOZWNl
c3NhcnkoKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBvYnNlcnZlVW50eXBlZEVkZ2UoTm9kZSos
IEVkZ2UmIGVkZ2UpCkBAIC0xMzE5LDYgKzEzNDAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5KCk7CiAg
ICAgICAgIH0KICAgICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0ZShibG9jayk7CiAgICAgfQpA
QCAtMTMzNCw4ICsxMzU2LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpZiAobm9kZS0+b3Ao
KSAhPSBTZXRMb2NhbCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAot
ICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKQor
ICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKSB7
CiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgICAgICAgICAgYWRkUGhhbnRvbXNJZk5lY2Vzc2FyeSgpOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOwogICAgIH0K
QEAgLTE1MDksNiArMTUzMyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgLy8gSW50OFRv
RG91YmxlIHdpbGwgY29udmVydCBpbnQ1MidzIHRoYXQgZml0IGluIGFuIGludDMyIGludG8gYSBk
b3VibGUKICAgICAgICAgICAgICAgICAvLyByYXRoZXIgdGhhbiB0cnlpbmcgdG8gY3JlYXRlIGEg
Ym94ZWQgaW50MzIgbGlrZSBJbnQ1MlRvVmFsdWUgZG9lcy4KICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBtX3JlcXVpcmVkUGhhbnRvbXMuYXBwZW5kKGVkZ2Uubm9kZSgpKTsKICAg
ICAgICAgICAgICAgICBOb2RlKiByZXN1bHQgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAog
ICAgICAgICAgICAgICAgICAgICBtX2luZGV4SW5CbG9jaywgU3BlY0ludDUyQXNEb3VibGUsIElu
dDUyVG9Eb3VibGUsCiAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudE5vZGUtPmNvZGVPcmln
aW4sIEVkZ2UoZWRnZS5ub2RlKCksIE51bWJlclVzZSkpOwpAQCAtMTU2Miw2ICsxNTg3LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAvLyBCdXQgdGhlIHNvbHV0aW9u
IHdlIHVzZSBoYW5kbGVzIHRoZSBhYm92ZSBncmFjZWZ1bGx5LgogICAgICAgICAgICAgCisgICAg
ICAgICAgICBtX3JlcXVpcmVkUGhhbnRvbXMuYXBwZW5kKGVkZ2Uubm9kZSgpKTsKICAgICAgICAg
ICAgIE5vZGUqIHJlc3VsdCA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAgICAg
ICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNJbnQ1MiwgSW50NTJUb1ZhbHVlLAogICAgICAgICAg
ICAgICAgIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5ub2RlKCksIFVudHlw
ZWRVc2UpKTsKQEAgLTE1ODMsMTYgKzE2MDksMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJh
cnJpZXJOb2RlID0gbV9ncmFwaC5hZGROb2RlKFNwZWNOb25lLCBDb25kaXRpb25hbFN0b3JlQmFy
cmllciwgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgCiAgICAgICAgICAgICAgICAgRWRnZShj
aGlsZDEubm9kZSgpLCBjaGlsZDEudXNlS2luZCgpKSwgRWRnZShjaGlsZDIubm9kZSgpLCBjaGls
ZDIudXNlS2luZCgpKSk7CiAgICAgICAgIH0KLSAgICAgICAgZml4dXBOb2RlKGJhcnJpZXJOb2Rl
KTsKICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0KGluZGV4SW5CbG9jaywgYmFycmllck5v
ZGUpOwogICAgIH0KIAotICAgIGJvb2wgZml4SW50RWRnZShFZGdlJiBlZGdlKQorICAgIHZvaWQg
Zml4SW50RWRnZShFZGdlJiBlZGdlKQogICAgIHsKICAgICAgICAgTm9kZSogbm9kZSA9IGVkZ2Uu
bm9kZSgpOwogICAgICAgICBpZiAobm9kZS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkgewogICAg
ICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4oZWRnZSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIFVz
ZUtpbmQgdXNlS2luZDsKQEAgLTE2MTAsMjQgKzE2MzUsMTMgQEAgcHJpdmF0ZToKICAgICAgICAg
b2JzZXJ2ZVVzZUtpbmRPbk5vZGUobm9kZSwgdXNlS2luZCk7CiAgICAgICAgIAogICAgICAgICBl
ZGdlID0gRWRnZShuZXdOb2RlLCBLbm93bkludDMyVXNlKTsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotICAgIAotICAgIHZvaWQgZml4QmluYXJ5SW50RWRnZXMoKQotICAgIHsKLSAgICAg
ICAgQWRqYWNlbmN5TGlzdCBjaGlsZHJlbiA9IG1fY3VycmVudE5vZGUtPmNoaWxkcmVuOwotICAg
ICAgICAKLSAgICAgICAgLy8gQ2FsbCBmaXhJbnRFZGdlKCkgb24gYm90aCBlZGdlcy4KLSAgICAg
ICAgYm9vbCBuZWVkUGhhbnRvbSA9Ci0gICAgICAgICAgICBmaXhJbnRFZGdlKG1fY3VycmVudE5v
ZGUtPmNoaWxkMSgpKSB8IGZpeEludEVkZ2UobV9jdXJyZW50Tm9kZS0+Y2hpbGQyKCkpOwotICAg
ICAgICAKLSAgICAgICAgaWYgKCFuZWVkUGhhbnRvbSkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9jayArIDEsIFNwZWNO
b25lLCBQaGFudG9tLCBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBjaGlsZHJlbik7CisgICAg
ICAgIG1fcmVxdWlyZWRQaGFudG9tcy5hcHBlbmQobm9kZSk7CiAgICAgfQogICAgIAogICAgIHZv
aWQgaW5qZWN0SW50MzJUb0RvdWJsZU5vZGUoRWRnZSYgZWRnZSwgVXNlS2luZCB1c2VLaW5kID0g
TnVtYmVyVXNlKQogICAgIHsKKyAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLmFwcGVuZChlZGdl
Lm5vZGUoKSk7CisgICAgICAgIAogICAgICAgICBOb2RlKiByZXN1bHQgPSBtX2luc2VydGlvblNl
dC5pbnNlcnROb2RlKAogICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNJbnQ1MkFzRG91
YmxlLCBJbnQzMlRvRG91YmxlLAogICAgICAgICAgICAgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdp
biwgRWRnZShlZGdlLm5vZGUoKSwgTnVtYmVyVXNlKSk7CkBAIC0xNzIyLDcgKzE3MzYsOCBAQCBw
cml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAg
YXJyYXlNb2RlID0gYXJyYXlNb2RlLnJlZmluZShub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigp
LCBub2RlLT5wcmVkaWN0aW9uKCkpOworICAgICAgICBhcnJheU1vZGUgPSBhcnJheU1vZGUucmVm
aW5lKAorICAgICAgICAgICAgbV9ncmFwaCwgbm9kZS0+Y29kZU9yaWdpbiwgbm9kZS0+Y2hpbGQx
KCktPnByZWRpY3Rpb24oKSwgbm9kZS0+cHJlZGljdGlvbigpKTsKICAgICAgICAgICAgIAogICAg
ICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6R2VuZXJpYykgewogICAgICAgICAg
ICAgLy8gQ2hlY2sgaWYgdGhlIGlucHV0IGlzIHNvbWV0aGluZyB0aGF0IHdlIGNhbid0IGdldCBh
cnJheSBsZW5ndGggZm9yLCBidXQgZm9yIHdoaWNoIHdlCkBAIC0xODEzLDEyICsxODI4LDI3IEBA
IHByaXZhdGU6CiAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICAKKyAgICB2b2lkIGFkZFBoYW50b21z
SWZOZWNlc3NhcnkoKQorICAgIHsKKyAgICAgICAgaWYgKG1fcmVxdWlyZWRQaGFudG9tcy5pc0Vt
cHR5KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBtX3JlcXVpcmVkUGhhbnRvbXMuc2l6ZSgpOyBpLS07KSB7CisgICAgICAgICAgICBt
X2luc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAgIG1faW5kZXhJbkJsb2Nr
ICsgMSwgU3BlY05vbmUsIFBoYW50b20sIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sCisgICAg
ICAgICAgICAgICAgRWRnZShtX3JlcXVpcmVkUGhhbnRvbXNbaV0sIFVudHlwZWRVc2UpKTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV9yZXF1aXJlZFBoYW50b21zLnJlc2l6ZSgwKTsK
KyAgICB9CiAKICAgICBCYXNpY0Jsb2NrKiBtX2Jsb2NrOwogICAgIHVuc2lnbmVkIG1faW5kZXhJ
bkJsb2NrOwogICAgIE5vZGUqIG1fY3VycmVudE5vZGU7CiAgICAgSW5zZXJ0aW9uU2V0IG1faW5z
ZXJ0aW9uU2V0OwogICAgIGJvb2wgbV9wcm9maXRhYmlsaXR5Q2hhbmdlZDsKKyAgICBWZWN0b3I8
Tm9kZSosIDM+IG1fcmVxdWlyZWRQaGFudG9tczsKIH07CiAgICAgCiBib29sIHBlcmZvcm1GaXh1
cChHcmFwaCYgZ3JhcGgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBo
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNw
cAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDggKzM2LDEwIEBACiAjaW5jbHVkZSAiRnVuY3Rp
b25FeGVjdXRhYmxlRHVtcC5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpTQWN0aXZh
dGlvbi5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5j
bHVkZSAiT3BlcmFuZHNJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1
ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogCkBAIC02NzgsMTAgKzY4MCwxMCBAQCBGdWxsQnl0ZWNv
ZGVMaXZlbmVzcyYgR3JhcGg6OmxpdmVuZXNzRm9yCiBib29sIEdyYXBoOjppc0xpdmVJbkJ5dGVj
b2RlKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiB7CiAg
ICAgZm9yICg7OykgeworICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0gVmlydHVhbFJlZ2lz
dGVyKAorICAgICAgICAgICAgb3BlcmFuZC5vZmZzZXQoKSAtIGNvZGVPcmlnaW4uc3RhY2tPZmZz
ZXQoKSk7CisgICAgICAgIAogICAgICAgICBpZiAob3BlcmFuZC5vZmZzZXQoKSA8IGNvZGVPcmln
aW4uc3RhY2tPZmZzZXQoKSArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpIHsKLSAgICAg
ICAgICAgIFZpcnR1YWxSZWdpc3RlciByZWcgPSBWaXJ0dWFsUmVnaXN0ZXIoCi0gICAgICAgICAg
ICAgICAgb3BlcmFuZC5vZmZzZXQoKSAtIGNvZGVPcmlnaW4uc3RhY2tPZmZzZXQoKSk7Ci0gICAg
ICAgICAgICAKICAgICAgICAgICAgIGlmIChyZWcuaXNBcmd1bWVudCgpKSB7CiAgICAgICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQocmVnLm9mZnNldCgpIDwgSlNTdGFjazo6Q2FsbEZyYW1lSGVh
ZGVyU2l6ZSk7CiAgICAgICAgICAgICAgICAgCkBAIC03MDAsMTAgKzcwMiwxOCBAQCBib29sIEdy
YXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpCiAgICAgICAgICAgICAgICAgcmVnLm9m
ZnNldCgpLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICBpZiAoIWNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKQorICAgICAgICBJbmxpbmVD
YWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lOwor
ICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZSkKICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIC8vIEFyZ3VtZW50cyBhcmUgYWx3YXlzIGxpdmUuIFRoaXMgd291bGQgYmUgcmVkdW5kYW50
IGlmIGl0IHdhc24ndCBmb3Igb3VyCisgICAgICAgIC8vIG9wX2NhbGxfdmFyYXJncyBpbmxpbmlu
Zy4KKyAgICAgICAgaWYgKHJlZy5pc0FyZ3VtZW50KCkKKyAgICAgICAgICAgICYmIHJlZy50b0Fy
Z3VtZW50KCkKKyAgICAgICAgICAgICYmIHN0YXRpY19jYXN0PHNpemVfdD4ocmVnLnRvQXJndW1l
bnQoKSkgPCBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgCi0gICAgICAgIGNvZGVPcmlnaW4gPSBjb2RlT3JpZ2luLmlu
bGluZUNhbGxGcmFtZS0+Y2FsbGVyOworICAgICAgICBjb2RlT3JpZ2luID0gaW5saW5lQ2FsbEZy
YW1lLT5jYWxsZXI7CiAgICAgfQogICAgIAogICAgIHJldHVybiB0cnVlOwpAQCAtNzExLDcgKzcy
MSwxMyBAQCBib29sIEdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpCiAKIHVuc2ln
bmVkIEdyYXBoOjpmcmFtZVJlZ2lzdGVyQ291bnQoKQogewotICAgIHJldHVybiBtX25leHRNYWNo
aW5lTG9jYWwgKyBtX3BhcmFtZXRlclNsb3RzOworICAgIHVuc2lnbmVkIHJlc3VsdCA9IG1fbmV4
dE1hY2hpbmVMb2NhbCArIHN0ZDo6bWF4KG1fcGFyYW1ldGVyU2xvdHMsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJzKSk7CisgICAg
cmV0dXJuIHJvdW5kTG9jYWxSZWdpc3RlckNvdW50Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KHJlc3Vs
dCk7Cit9CisKK3Vuc2lnbmVkIEdyYXBoOjpzdGFja1BvaW50ZXJPZmZzZXQoKQoreworICAgIHJl
dHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVyQ291bnQoKSAtIDEpLm9m
ZnNldCgpOwogfQogCiB1bnNpZ25lZCBHcmFwaDo6cmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhp
dCgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAxNjI5
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTc5Myw2ICs3OTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpdmVJbkJ5dGVjb2Rl
KFZpcnR1YWxSZWdpc3RlciwgQ29kZU9yaWdpbik7CiAgICAgCiAgICAgdW5zaWduZWQgZnJhbWVS
ZWdpc3RlckNvdW50KCk7CisgICAgdW5zaWduZWQgc3RhY2tQb2ludGVyT2Zmc2V0KCk7CiAgICAg
dW5zaWduZWQgcmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpOwogICAgIHVuc2lnbmVkIHJl
cXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKTsKICAgICAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkocmV2aXNpb24gMTYyOTYxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTU2LDYgKzE1Niw3IEBAIHZvaWQgSklUQ29kZTo6c2V0T3B0aW1pemF0aW9uVGhyZXNo
b2xkQmEKICAgICBzd2l0Y2ggKHJlc3VsdCkgewogICAgIGNhc2UgQ29tcGlsYXRpb25TdWNjZXNz
ZnVsOgogICAgICAgICBvcHRpbWl6ZU5leHRJbnZvY2F0aW9uKGNvZGVCbG9jayk7CisgICAgICAg
IGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCktPm1faGFzQmVlbkNvbXBpbGVkV2l0aEZUTCA9
IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvbXBpbGF0aW9uRmFpbGVkOgogICAg
ICAgICBkb250T3B0aW1pemVBbnl0aW1lU29vbihjb2RlQmxvY2spOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTksNiArMTE5
LDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxERkc6Ok9TUkVudHJ5RGF0YT4gb3NyRW50cnk7CiAg
ICAgU2VnbWVudGVkVmVjdG9yPERGRzo6T1NSRXhpdCwgOD4gb3NyRXhpdDsKICAgICBWZWN0b3I8
REZHOjpTcGVjdWxhdGlvblJlY292ZXJ5PiBzcGVjdWxhdGlvblJlY292ZXJ5OworICAgIFZlY3Rv
cjx1bnNpZ25lZD4gc2xvd1BhdGhDYWxsczsKICAgICBERkc6OlZhcmlhYmxlRXZlbnRTdHJlYW0g
dmFyaWFibGVFdmVudFN0cmVhbTsKICAgICBERkc6Ok1pbmlmaWVkR3JhcGggbWluaWZpZWRERkc7
CiAjaWYgRU5BQkxFKEZUTF9KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxS
ZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdGYWls
ZWRGaW5hbGl6ZXIuaCIKICNpbmNsdWRlICJERkdJbmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmgi
CkBAIC00MCw2ICs0MSw3IEBACiAjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVKSVQuaCIKICNpbmNs
dWRlICJERkdUaHVua3MuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1
ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKQEAgLTkyLDE1ICs5NCwxNCBAQCB2b2lkIEpJVENvbXBp
bGVyOjpsaW5rT1NSRXhpdHMoKQogdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUVudHJ5KCkKIHsK
ICAgICAvLyBUaGlzIGNvZGUgY3VycmVudGx5IG1hdGNoZXMgdGhlIG9sZCBKSVQuIEluIHRoZSBm
dW5jdGlvbiBoZWFkZXIgd2UgbmVlZCB0bwotICAgIC8vIHBvcCB0aGUgcmV0dXJuIGFkZHJlc3Mg
KHNpbmNlIHdlIGRvIG5vdCBhbGxvdyBhbnkgcmVjdXJzaW9uIG9uIHRoZSBtYWNoaW5lCi0gICAg
Ly8gc3RhY2spLCBhbmQgcGVyZm9ybSBhIGZhc3Qgc3RhY2sgY2hlY2suCisgICAgLy8gc2F2ZSBy
ZXR1cm4gYWRkcmVzcyBhbmQgY2FsbCBmcmFtZSB2aWEgdGhlIHByb2xvZ3VlIGFuZCBwZXJmb3Jt
IGEgZmFzdCBzdGFjayBjaGVjay4KICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU2MjkyCiAgICAgLy8gV2UnbGwgbmVlZCB0byBjb252ZXJ0IHRo
ZSByZW1haW5pbmcgY3RpXyBzdHlsZSBjYWxscyAoc3BlY2lmaWNhbGx5IHRoZSBzdGFjawogICAg
IC8vIGNoZWNrKSB3aGljaCB3aWxsIGJlIGRlcGVuZGVudCBvbiBzdGFjayBsYXlvdXQuIChXZSdk
IG5lZWQgdG8gYWNjb3VudCBmb3IgdGhpcyBpbgogICAgIC8vIGJvdGggbm9ybWFsIHJldHVybiBj
b2RlIGFuZCB3aGVuIGp1bXBpbmcgdG8gYW4gZXhjZXB0aW9uIGhhbmRsZXIpLgotICAgIHByZXNl
cnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpyZWdUMik7Ci0gICAgZW1pdFB1dFJl
dHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6cmVnVDIpOworICAgIGVtaXRGdW5jdGlv
blByb2xvZ3VlKCk7CiAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKG1fY29k
ZUJsb2NrLCBKU1N0YWNrOjpDb2RlQmxvY2spOworICAgIGppdEFzc2VydFRhZ3NJblBsYWNlKCk7
CiB9CiAKIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVCb2R5KCkKQEAgLTEyMSwyMiArMTIyLDI1
IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVFeGNlcHRpb25IYW5kbGUKIAogICAgIGlmICgh
bV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2suZW1wdHkoKSkgewogICAgICAg
ICBtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFjay5saW5rKHRoaXMpOwotICAg
ICAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CisgICAgICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFk
ZXJQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICAgICAgZG9Mb29rdXAgPSBqdW1wKCk7
CiAgICAgfQogCiAgICAgaWYgKCFtX2V4Y2VwdGlvbkNoZWNrcy5lbXB0eSgpKQogICAgICAgICBt
X2V4Y2VwdGlvbkNoZWNrcy5saW5rKHRoaXMpOwogCi0gICAgLy8gbG9va3VwRXhjZXB0aW9uSGFu
ZGxlciBpcyBwYXNzZWQgb25lIGFyZ3VtZW50LCB0aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgot
ICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CisgICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQgdHdvIGFyZ3VtZW50
cywgdGhlIFZNIGFuZCB0aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgorICAgIG1vdmUoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAKICAgICBpZiAo
ZG9Mb29rdXAuaXNTZXQoKSkKICAgICAgICAgZG9Mb29rdXAubGluayh0aGlzKTsKIAorICAgIG1v
dmUoVHJ1c3RlZEltbVB0cih2bSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKwogI2lmIENQ
VShYODYpCiAgICAgLy8gRklYTUU6IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24sIGJ1
dCB0aGlzIGlzIGN1cnJlbnRseSBpbiB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5ZXIhCiAgICAgcG9r
ZShHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIx
LCAxKTsKICNlbmRpZgogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxMaW5rUmVjb3JkKGNhbGwoKSwg
bG9va3VwRXhjZXB0aW9uSGFuZGxlcikpOwogICAgIGp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIoKTsK
QEAgLTIyOCwxMyArMjMyLDE2IEBAIHZvaWQgSklUQ29tcGlsZXI6OmxpbmsoTGlua0J1ZmZlciYg
bGlua0IKICAgICAgICAgaW5mby5wYXRjaC5kZWx0YUNhbGxUb1Nsb3dDYXNlID0gZGlmZmVyZW5j
ZUJldHdlZW5Db2RlUHRyKGNhbGxSZXR1cm5Mb2NhdGlvbiwgbGlua0J1ZmZlci5sb2NhdGlvbk9m
KG1faW5zW2ldLm1fc2xvd1BhdGhHZW5lcmF0b3ItPmxhYmVsKCkpKTsKICAgICB9CiAgICAgCisg
ICAgUkVMRUFTRV9BU1NFUlQoIW1fZ3JhcGgubV9wbGFuLndpbGxUcnlUb1RpZXJVcCB8fCBtX2pp
dENvZGUtPnNsb3dQYXRoQ2FsbHMuc2l6ZSgpID49IG1fanNDYWxscy5zaXplKCkpOwogICAgIG1f
Y29kZUJsb2NrLT5zZXROdW1iZXJPZkNhbGxMaW5rSW5mb3MobV9qc0NhbGxzLnNpemUoKSk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fanNDYWxscy5zaXplKCk7ICsraSkgewogICAg
ICAgICBDYWxsTGlua0luZm8mIGluZm8gPSBtX2NvZGVCbG9jay0+Y2FsbExpbmtJbmZvKGkpOwog
ICAgICAgICBpbmZvLmNhbGxUeXBlID0gbV9qc0NhbGxzW2ldLm1fY2FsbFR5cGU7Ci0gICAgICAg
IGluZm8uaXNERkcgPSB0cnVlOwogICAgICAgICBpbmZvLmNvZGVPcmlnaW4gPSBtX2pzQ2FsbHNb
aV0ubV9jb2RlT3JpZ2luOwotICAgICAgICBsaW5rQnVmZmVyLmxpbmsobV9qc0NhbGxzW2ldLm1f
c2xvd0NhbGwsIEZ1bmN0aW9uUHRyKChtX3ZtLT5nZXRDVElTdHViKGluZm8uY2FsbFR5cGUgPT0g
Q2FsbExpbmtJbmZvOjpDb25zdHJ1Y3QgPyBsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IgOiBs
aW5rQ2FsbFRodW5rR2VuZXJhdG9yKSkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAg
ICAgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2VuZXJhdG9yRm9yKAor
ICAgICAgICAgICAgaW5mby5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNvbnN0cnVjdCA/IENv
ZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwKKyAgICAgICAgICAgIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTm90UmVxdWlyZWQpOworICAgICAgICBsaW5rQnVmZmVyLmxpbmsobV9qc0NhbGxzW2ld
Lm1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKG1fdm0tPmdldENUSVN0dWIoZ2VuZXJhdG9yKS5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgICAgICBpbmZvLmNhbGxSZXR1cm5Mb2NhdGlv
biA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxs
KTsKICAgICAgICAgaW5mby5ob3RQYXRoQmVnaW4gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2YobV9q
c0NhbGxzW2ldLm1fdGFyZ2V0VG9DaGVjayk7CiAgICAgICAgIGluZm8uaG90UGF0aE90aGVyID0g
bGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9qc0NhbGxzW2ldLm1fZmFzdENhbGwpOwpA
QCAtMjc4LDYgKzI4NSw4IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGUoKQogICAgIHNldFN0
YXJ0T2ZDb2RlKCk7CiAgICAgY29tcGlsZUVudHJ5KCk7CiAgICAgbV9zcGVjdWxhdGl2ZSA9IGFk
b3B0UHRyKG5ldyBTcGVjdWxhdGl2ZUpJVCgqdGhpcykpOworICAgIGFkZFB0cihUcnVzdGVkSW1t
MzIobV9ncmFwaC5zdGFja1BvaW50ZXJPZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAgICAgY29tcGlsZUJvZHkoKTsKICAgICBzZXRFbmRP
Zk1haW5QYXRoKCk7CiAKQEAgLTMyNSwxMSArMzM0LDEyIEBAIHZvaWQgSklUQ29tcGlsZXI6OmNv
bXBpbGVGdW5jdGlvbigpCiAgICAgLy8gc28gZW50ZXIgYWZ0ZXIgdGhpcy4KICAgICBMYWJlbCBm
cm9tQXJpdHlDaGVjayh0aGlzKTsKICAgICAvLyBQbGFudCBhIGNoZWNrIHRoYXQgc3VmZmljaWVu
dCBzcGFjZSBpcyBhdmFpbGFibGUgaW4gdGhlIEpTU3RhY2suCi0gICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2dyYXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3Vu
dEZvckV4ZWN1dGlvbkFuZEV4aXQoKSkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsKLSAgICBKdW1wIHN0YWNr
Q2hlY2sgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5hZGRyZXNzT2ZK
U1N0YWNrTGltaXQoKSksIEdQUkluZm86OnJlZ1QxKTsKLSAgICAvLyBSZXR1cm4gaGVyZSBhZnRl
ciBzdGFjayBjaGVjay4KLSAgICBMYWJlbCBmcm9tU3RhY2tDaGVjayA9IGxhYmVsKCk7CisgICAg
YWRkUHRyKFRydXN0ZWRJbW0zMih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2dyYXBoLnJlcXVp
cmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKSAtIDEpLm9mZnNldCgpICogc2l6
ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdU
MSk7CisgICAgSnVtcCBzdGFja092ZXJmbG93ID0gYnJhbmNoUHRyKEFib3ZlLCBBYnNvbHV0ZUFk
ZHJlc3MobV92bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCBHUFJJbmZvOjpyZWdUMSk7CiAK
KyAgICAvLyBNb3ZlIHRoZSBzdGFjayBwb2ludGVyIGRvd24gdG8gYWNjb21tb2RhdGUgbG9jYWxz
CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtX2dyYXBoLnN0YWNrUG9pbnRlck9mZnNldCgpICog
c2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIC8v
ID09PSBGdW5jdGlvbiBib2R5IGNvZGUgZ2VuZXJhdGlvbiA9PT0KICAgICBtX3NwZWN1bGF0aXZl
ID0gYWRvcHRQdHIobmV3IFNwZWN1bGF0aXZlSklUKCp0aGlzKSk7CkBAIC0zMzgsMTcgKzM0OCwx
OSBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogCiAgICAgLy8gPT09IEZ1
bmN0aW9uIGZvb3RlciBjb2RlIGdlbmVyYXRpb24gPT09CiAgICAgLy8KLSAgICAvLyBHZW5lcmF0
ZSBjb2RlIHRvIHBlcmZvcm0gdGhlIHNsb3cgc3RhY2sgY2hlY2sgKGlmIHRoZSBmYXN0IG9uZSBp
bgorICAgIC8vIEdlbmVyYXRlIGNvZGUgdG8gcGVyZm9ybSB0aGUgc3RhY2sgb3ZlcmZsb3cgaGFu
ZGxpbmcgKGlmIHRoZSBzdGFjayBjaGVjayBpbgogICAgIC8vIHRoZSBmdW5jdGlvbiBoZWFkZXIg
ZmFpbHMpLCBhbmQgZ2VuZXJhdGUgdGhlIGVudHJ5IHBvaW50IHdpdGggYXJpdHkgY2hlY2suCiAg
ICAgLy8KLSAgICAvLyBHZW5lcmF0ZSB0aGUgc3RhY2sgY2hlY2s7IGlmIHRoZSBmYXN0IGNoZWNr
IGluIHRoZSBmdW5jdGlvbiBoZWFkIGZhaWxzLAotICAgIC8vIHdlIG5lZWQgdG8gY2FsbCBvdXQg
dG8gYSBoZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgd2hldGhlciBtb3JlIHNwYWNlIGlzIGF2YWls
YWJsZS4KLSAgICAvLyBGSVhNRTogY2hhbmdlIHRoaXMgZnJvbSBhIGN0aSBjYWxsIHRvIGEgREZH
IHN0eWxlIG9wZXJhdGlvbiAobm9ybWFsIEMgY2FsbGluZyBjb252ZW50aW9ucykuCi0gICAgc3Rh
Y2tDaGVjay5saW5rKHRoaXMpOworICAgIC8vIEdlbmVyYXRlIHRoZSBzdGFjayBvdmVyZmxvdyBo
YW5kbGluZzsgaWYgdGhlIHN0YWNrIGNoZWNrIGluIHRoZSBmdW5jdGlvbiBoZWFkIGZhaWxzLAor
ICAgIC8vIHdlIG5lZWQgdG8gY2FsbCBvdXQgdG8gYSBoZWxwZXIgZnVuY3Rpb24gdG8gdGhyb3cg
dGhlIFN0YWNrT3ZlcmZsb3dFcnJvci4KKyAgICBzdGFja092ZXJmbG93LmxpbmsodGhpcyk7CiAK
ICAgICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmlnaW4oMCkpOwotICAgIG1fc3BlY3VsYXRp
dmUtPmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRp
b25TdGFja0NoZWNrLCBtX2NvZGVCbG9jayk7Ci0gICAganVtcChmcm9tU3RhY2tDaGVjayk7CisK
KyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgIGFkZFB0cihU
cnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVy
UmVnaXN0ZXIpOworCisgICAgbV9zcGVjdWxhdGl2ZS0+Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJh
bWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yLCBt
X2NvZGVCbG9jayk7CiAgICAgCiAgICAgLy8gVGhlIGZhc3QgZW50cnkgcG9pbnQgaW50byBhIGZ1
bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSBjb3JyZWN0IG51bWJlciBvZiBhcmd1bWVudHMKICAg
ICAvLyBoYXZlIGJlZW4gcGFzc2VkIHRvIHRoZSBjYWxsICh3ZSBvbmx5IHVzZSB0aGUgZmFzdCBl
bnRyeSBwb2ludCB3aGVyZSB3ZSBjYW4gc3RhdGljYWxseQpAQCAtMzYxLDkgKzM3MywxNSBAQCB2
b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogICAgIGxvYWQzMihBc3NlbWJseUhl
bHBlcnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdpc3RlcilKU1N0YWNrOjpBcmd1bWVudENvdW50
KSwgR1BSSW5mbzo6cmVnVDEpOwogICAgIGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgR1BSSW5mbzo6
cmVnVDEsIFRydXN0ZWRJbW0zMihtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSkubGlua1Rv
KGZyb21Bcml0eUNoZWNrLCB0aGlzKTsKICAgICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmln
aW4oMCkpOworICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAg
YWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgbV9zcGVjdWxhdGl2ZS0+Y2FsbE9wZXJhdGlvbldpdGhD
YWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG1fY29kZUJsb2NrLT5tX2lzQ29uc3RydWN0b3Ig
PyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrIDogb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2ss
IEdQUkluZm86OnJlZ1QwKTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwp
CisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgYnJhbmNoVGVzdDMyKFplcm8sIEdQUklu
Zm86OnJlZ1QwKS5saW5rVG8oZnJvbUFyaXR5Q2hlY2ssIHRoaXMpOwogICAgIGVtaXRTdG9yZUNv
ZGVPcmlnaW4oQ29kZU9yaWdpbigwKSk7CisgICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fdm0tPmFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5QQ3NGb3IoKm1fdm0sIG1fY29kZUJsb2Nr
LT5udW1QYXJhbWV0ZXJzKCkpKSwgR1BSSW5mbzo6cmVnVDUpOworICAgIGxvYWRQdHIoQmFzZUlu
ZGV4KEdQUkluZm86OnJlZ1Q1LCBHUFJJbmZvOjpyZWdUMCwgdGltZXNQdHIoKSksIEdQUkluZm86
OnJlZ1Q1KTsKICAgICBtX2NhbGxBcml0eUZpeHVwID0gY2FsbCgpOwogICAgIGp1bXAoZnJvbUFy
aXR5Q2hlY2spOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b21waWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjEsNiArMjIxLDExIEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIG1faW5zLmFwcGVuZChyZWNvcmQpOwogICAgIH0KKyAgICAK
KyAgICB1bnNpZ25lZCBjdXJyZW50SlNDYWxsSW5kZXgoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fanNDYWxscy5zaXplKCk7CisgICAgfQogCiAgICAgdm9pZCBhZGRKU0NhbGwoQ2Fs
bCBmYXN0Q2FsbCwgQ2FsbCBzbG93Q2FsbCwgRGF0YUxhYmVsUHRyIHRhcmdldFRvQ2hlY2ssIENh
bGxMaW5rSW5mbzo6Q2FsbFR5cGUgY2FsbFR5cGUsIEdQUlJlZyBjYWxsZWUsIENvZGVPcmlnaW4g
Y29kZU9yaWdpbikKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VEZpbmFsaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRGaW5hbGl6ZXIuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEwICs0
NiwxNiBAQCBKSVRGaW5hbGl6ZXI6On5KSVRGaW5hbGl6ZXIoKQogewogfQogCitzaXplX3QgSklU
RmluYWxpemVyOjpjb2RlU2l6ZSgpCit7CisgICAgcmV0dXJuIG1fbGlua0J1ZmZlci0+c2l6ZSgp
OworfQorCiBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxpemUoKQogewotICAgIG1faml0Q29kZS0+
aW5pdGlhbGl6ZUNvZGVSZWYobV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNz
ZW1ibHkoKSk7Ci0gICAgbV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUsIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICBtX2ppdENvZGUtPmluaXRpYWxpemVDb2RlUmVm
KAorICAgICAgICBtX2xpbmtCdWZmZXItPmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgp
LCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgbV9wbGFuLmNvZGVCbG9jay0+c2V0SklU
Q29kZShtX2ppdENvZGUpOwogICAgIAogICAgIGZpbmFsaXplQ29tbW9uKCk7CiAgICAgCkBAIC01
OSw4ICs2NSw5IEBAIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZSgpCiBib29sIEpJVEZpbmFs
aXplcjo6ZmluYWxpemVGdW5jdGlvbigpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIW1fd2l0aEFy
aXR5Q2hlY2suaXNFbXB0eVZhbHVlKCkpOwotICAgIG1faml0Q29kZS0+aW5pdGlhbGl6ZUNvZGVS
ZWYobV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKSk7Ci0gICAg
bV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUsIG1fd2l0aEFyaXR5Q2hlY2sp
OworICAgIG1faml0Q29kZS0+aW5pdGlhbGl6ZUNvZGVSZWYoCisgICAgICAgIG1fbGlua0J1ZmZl
ci0+ZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2VtYmx5KCksIG1fd2l0aEFyaXR5Q2hlY2spOwor
ICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlKTsKICAgICAKICAgICBm
aW5hbGl6ZUNvbW1vbigpOwogICAgIApAQCAtNzUsNiArODIsOSBAQCB2b2lkIEpJVEZpbmFsaXpl
cjo6ZmluYWxpemVDb21tb24oKQogICAgIAogICAgIGlmIChtX3BsYW4uY29tcGlsYXRpb24pCiAg
ICAgICAgIG1fcGxhbi52bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmFkZENvbXBpbGF0aW9uKG1f
cGxhbi5jb21waWxhdGlvbik7CisgICAgCisgICAgaWYgKCFtX3BsYW4ud2lsbFRyeVRvVGllclVw
KQorICAgICAgICBtX3BsYW4uY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKS0+bV9kaWRGYWls
RlRMQ29tcGlsYXRpb24gPSB0cnVlOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIEpJVEZpbmFs
aXplcihQbGFuJiwgUGFzc1JlZlB0cjxKSVRDb2RlPiwgUGFzc093blB0cjxMaW5rQnVmZmVyPiwg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6RW1wdHlWYWx1ZSkpOwogICAgIHZpcnR1YWwgfkpJ
VEZpbmFsaXplcigpOwogICAgIAorICAgIHZpcnR1YWwgc2l6ZV90IGNvZGVTaXplKCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGZpbmFsaXplRnVuY3Rpb24oKSBvdmVycmlkZTsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
MTk4LDYgKzExOTgsMTEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICAgICAgcmV0dXJuIHNob3Vs
ZEdlbmVyYXRlKCk7CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAgYm9vbCBpc1NlbWFudGlj
YWxseVNraXBwYWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBDb3VudEV4ZWN1
dGlvbjsKKyAgICB9CiAKICAgICB1bnNpZ25lZCByZWZDb3VudCgpCiAgICAgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAkocmV2aXNpb24gMTYyOTYx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00OSw2ICs0OSw5IEBAIHZvaWQgZHVtcE5vZGVGbGFncyhQcmludFN0cmVhbSYg
YWN0dWFsT3UKICAgICAgICAgY2FzZSBOb2RlUmVzdWx0SW50MzI6CiAgICAgICAgICAgICBvdXQu
cHJpbnQoY29tbWEsICJJbnQzMiIpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Tm9kZVJlc3VsdEludDUyOgorICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiSW50NTIiKTsK
KyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGVSZXN1bHRCb29sZWFuOgogICAg
ICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiQm9vbGVhbiIpOwogICAgICAgICAgICAgYnJlYWs7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5
c2lzUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDE1ICs2MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICAgICAgQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpLndpdGhGbHVzaCgKICAgICAgICAgICAg
ICAgICAgICAgRmx1c2hlZEF0KEZsdXNoZWRKU1ZhbHVlLCB2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1
bWVudChhcmd1bWVudCkpKTsKICAgICAgICAgfQotICAgICAgICBmb3IgKHVuc2lnbmVkIGxvY2Fs
ID0gcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubnVtYmVyT2ZMb2NhbHMoKTsgbG9jYWwt
LTspCi0gICAgICAgICAgICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2Nh
bCkgPSBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCk7Ci0gICAgICAgIAorCiAgICAgICAgIGlm
IChtX2dyYXBoLm1fcGxhbi5tb2RlID09IEZUTEZvck9TUkVudHJ5TW9kZSkgewotICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBsb2NhbCA9IG1fZ3JhcGgubV9wcm9maWxlZEJsb2NrLT5tX251bUNh
bGxlZVJlZ2lzdGVyczsgbG9jYWwtLTspIHsKLSAgICAgICAgICAgICAgICByb290LT5zc2EtPmF2
YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPQotICAgICAgICAgICAgICAgICAgICBBdmFp
bGFiaWxpdHk6OnVuYXZhaWxhYmxlKCkud2l0aEZsdXNoKAotICAgICAgICAgICAgICAgICAgICAg
ICAgRmx1c2hlZEF0KEZsdXNoZWRKU1ZhbHVlLCB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChsb2Nh
bCkpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgbG9jYWwgPSBt
X2dyYXBoLm1fcHJvZmlsZWRCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7IGxvY2FsLS07KQor
ICAgICAgICAgICAgICAgIHJvb3QtPnNzYS0+YXZhaWxhYmlsaXR5QXRIZWFkLmxvY2FsKGxvY2Fs
KSA9IEF2YWlsYWJpbGl0eTo6dW5hdmFpbGFibGUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgbG9jYWwgPSByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVh
ZC5udW1iZXJPZkxvY2FscygpOyBsb2NhbC0tOykKKyAgICAgICAgICAgICAgICByb290LT5zc2Et
PmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxpdHk6OnVuYXZhaWxh
YmxlKCk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFRoaXMgY291bGQgYmUgbWFk
ZSBtb3JlIGVmZmljaWVudCBieSBwcm9jZXNzaW5nIGJsb2NrcyBpbiByZXZlcnNlIHBvc3RvcmRl
ci4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsMTAgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5
KEV4ZWNTdGF0ZSogZXhlYywgQwogICAgIEFTU0VSVChjb2RlQmxvY2stPmFsdGVybmF0aXZlKCkp
OwogICAgIEFTU0VSVChjb2RlQmxvY2stPmFsdGVybmF0aXZlKCktPmppdFR5cGUoKSA9PSBKSVRD
b2RlOjpCYXNlbGluZUpJVCk7CiAgICAgQVNTRVJUKCFjb2RlQmxvY2stPmppdENvZGVNYXAoKSk7
Ci0gICAgCisKKyAgICBpZiAoIU9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5VG9ERkcoKSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKSB7CiAgICAgICAg
IGRhdGFMb2coCiAgICAgICAgICAgICAiREZHIE9TUiBpbiAiLCAqY29kZUJsb2NrLT5hbHRlcm5h
dGl2ZSgpLCAiIC0+ICIsICpjb2RlQmxvY2ssCkBAIC01Miw4ICs1NSw4IEBAIHZvaWQqIHByZXBh
cmVPU1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIEMKICAgICB9CiAgICAgCiAgICAgVk0qIHZtID0g
JmV4ZWMtPnZtKCk7Ci0gICAgCi0gICAgdm0tPmludGVycHJldGVyLT5zdGFjaygpLnNhbml0aXpl
U3RhY2soKTsKKworICAgIHNhbml0aXplU3RhY2tGb3JWTSh2bSk7CiAgICAgCiAgICAgaWYgKGNv
ZGVCbG9jay0+aml0VHlwZSgpICE9IEpJVENvZGU6OkRGR0pJVCkgewogICAgICAgICBSRUxFQVNF
X0FTU0VSVChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpGVExKSVQpOwpAQCAtMTg1
LDcgKzE4OCw3IEBAIHZvaWQqIHByZXBhcmVPU1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIEMKICAg
ICAvLyAgICB3b3VsZCBoYXZlIG90aGVyd2lzZSBqdXN0IGtlcHQgcnVubmluZyBhbGJlaXQgbGVz
cyBxdWlja2x5LgogICAgIAogICAgIHVuc2lnbmVkIGZyYW1lU2l6ZSA9IGppdENvZGUtPmNvbW1v
bi5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCk7Ci0gICAgaWYgKCF2
bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuZ3JvdygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJl
Z2lzdGVyRm9yTG9jYWwoZnJhbWVTaXplKS5vZmZzZXQoKV0pKSB7CisgICAgaWYgKCF2bS0+aW50
ZXJwcmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IoJmV4ZWMtPnJlZ2lzdGVycygpW3Zp
cnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lU2l6ZSAtIDEpLm9mZnNldCgpXSkpIHsKICAgICAg
ICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAgIGRhdGFMb2dGKCIgICAg
T1NSIGZhaWxlZCBiZWNhdXNlIHN0YWNrIGdyb3d0aCBmYWlsZWQuXG4iKTsKICAgICAgICAgcmV0
dXJuIDA7CkBAIC0yMTMsMTIgKzIxNiwxNCBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0
YXRlKiBleGVjLCBDCiAgICAgCiAgICAgLy8gNSkgQ2xlYXIgdGhvc2UgcGFydHMgb2YgdGhlIGNh
bGwgZnJhbWUgdGhhdCB0aGUgREZHIGFpbid0IHVzaW5nLiBUaGlzIGhlbHBzIEdDIG9uIHNvbWUK
ICAgICAvLyAgICBwcm9ncmFtcyBieSBlbGltaW5hdGluZyBzb21lIHN0YWxlIHBvaW50ZXIgcGF0
aG9sb2dpZXMuCi0gICAgCisKKyNpZiAwIC8vIEZJWE1FOiBDU3RhY2sgLSBUaGlzIG5lZWRzIHRv
IGJlIHZlcmlmaWVkIGJlZm9yZSBiZWluZyBlbmFibGVkCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
ZnJhbWVTaXplOyBpLS07KSB7CiAgICAgICAgIGlmIChlbnRyeS0+bV9tYWNoaW5lU3RhY2tVc2Vk
LmdldChpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICByZWdpc3RlcnNbdmlydHVh
bFJlZ2lzdGVyRm9yTG9jYWwoaSkub2Zmc2V0KCldID0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUo
KSk7CiAgICAgfQorI2VuZGlmCiAgICAgCiAgICAgLy8gNikgRml4IHRoZSBjYWxsIGZyYW1lLgog
ICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeXBvaW50Q3Jl
YXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFbnRyeXBvaW50Q3JlYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC02Myw3ICs2MywxMCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBCYXNp
Y0Jsb2NrKiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAgICAgICBp
ZiAoIWJsb2NrKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgdW5zaWdu
ZWQgbm9kZUluZGV4ID0gMDsKICAgICAgICAgICAgIE5vZGUqIGZpcnN0Tm9kZSA9IGJsb2NrLT5h
dCgwKTsKKyAgICAgICAgICAgIHdoaWxlIChmaXJzdE5vZGUtPmlzU2VtYW50aWNhbGx5U2tpcHBh
YmxlKCkpCisgICAgICAgICAgICAgICAgZmlyc3ROb2RlID0gYmxvY2stPmF0KCsrbm9kZUluZGV4
KTsKICAgICAgICAgICAgIGlmIChmaXJzdE5vZGUtPm9wKCkgPT0gTG9vcEhpbnQKICAgICAgICAg
ICAgICAgICAmJiBmaXJzdE5vZGUtPmNvZGVPcmlnaW4gPT0gQ29kZU9yaWdpbihieXRlY29kZUlu
ZGV4KSkgewogICAgICAgICAgICAgICAgIHRhcmdldCA9IGJsb2NrOwpAQCAtODMsMTcgKzg2LDYg
QEAgcHVibGljOgogICAgICAgICBCYXNpY0Jsb2NrKiBuZXdSb290ID0gaW5zZXJ0aW9uU2V0Lmlu
c2VydCgwKTsKICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gdGFyZ2V0LT5hdCgwKS0+
Y29kZU9yaWdpbjsKICAgICAgICAgCi0gICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0gMDsgYXJn
dW1lbnQgPCBiYXNlbGluZS0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50KSB7Ci0gICAgICAg
ICAgICBOb2RlKiBvbGROb2RlID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQuYXJndW1lbnQoYXJn
dW1lbnQpOwotICAgICAgICAgICAgaWYgKCFvbGROb2RlKSB7Ci0gICAgICAgICAgICAgICAgLy8g
SnVzdCBmb3Igc2FuaXR5LCBhbHdheXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2ZW4gaWYgaXQncyBu
b3QgbmVlZGVkLgotICAgICAgICAgICAgICAgIG9sZE5vZGUgPSBtX2dyYXBoLm1fYXJndW1lbnRz
W2FyZ3VtZW50XTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBuZXdS
b290LT5hcHBlbmROb2RlKAotICAgICAgICAgICAgICAgIG1fZ3JhcGgsIFNwZWNOb25lLCBTZXRB
cmd1bWVudCwgY29kZU9yaWdpbiwKLSAgICAgICAgICAgICAgICBPcEluZm8ob2xkTm9kZS0+dmFy
aWFibGVBY2Nlc3NEYXRhKCkpKTsKLSAgICAgICAgICAgIG1fZ3JhcGgubV9hcmd1bWVudHNbYXJn
dW1lbnRdID0gbm9kZTsKLSAgICAgICAgfQogICAgICAgICBWZWN0b3I8Tm9kZSo+IGxvY2Fscyhi
YXNlbGluZS0+bV9udW1DYWxsZWVSZWdpc3RlcnMpOwogICAgICAgICBmb3IgKGludCBsb2NhbCA9
IDA7IGxvY2FsIDwgYmFzZWxpbmUtPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOyArK2xvY2FsKSB7CiAg
ICAgICAgICAgICBOb2RlKiBwcmV2aW91c0hlYWQgPSB0YXJnZXQtPnZhcmlhYmxlc0F0SGVhZC5s
b2NhbChsb2NhbCk7CkBAIC0xMDgsNiArMTAwLDE5IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAg
ICBtX2dyYXBoLCBTcGVjTm9uZSwgTW92SGludCwgY29kZU9yaWdpbiwgT3BJbmZvKHZhcmlhYmxl
LT5sb2NhbCgpLm9mZnNldCgpKSwKICAgICAgICAgICAgICAgICBFZGdlKGxvY2Fsc1tsb2NhbF0p
KTsKICAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0gMDsgYXJndW1lbnQg
PCBiYXNlbGluZS0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50KSB7CisgICAgICAgICAgICBO
b2RlKiBvbGROb2RlID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQuYXJndW1lbnQoYXJndW1lbnQp
OworICAgICAgICAgICAgaWYgKCFvbGROb2RlKSB7CisgICAgICAgICAgICAgICAgLy8gSnVzdCBm
b3Igc2FuaXR5LCBhbHdheXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2ZW4gaWYgaXQncyBub3QgbmVl
ZGVkLgorICAgICAgICAgICAgICAgIG9sZE5vZGUgPSBtX2dyYXBoLm1fYXJndW1lbnRzW2FyZ3Vt
ZW50XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBuZXdSb290LT5h
cHBlbmROb2RlKAorICAgICAgICAgICAgICAgIG1fZ3JhcGgsIFNwZWNOb25lLCBTZXRBcmd1bWVu
dCwgY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICBPcEluZm8ob2xkTm9kZS0+dmFyaWFibGVB
Y2Nlc3NEYXRhKCkpKTsKKyAgICAgICAgICAgIG1fZ3JhcGgubV9hcmd1bWVudHNbYXJndW1lbnRd
ID0gbm9kZTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgZm9yIChpbnQgbG9jYWwgPSAw
OyBsb2NhbCA8IGJhc2VsaW5lLT5tX251bUNhbGxlZVJlZ2lzdGVyczsgKytsb2NhbCkgewogICAg
ICAgICAgICAgTm9kZSogcHJldmlvdXNIZWFkID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQubG9j
YWwobG9jYWwpOwogICAgICAgICAgICAgaWYgKCFwcmV2aW91c0hlYWQpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2
ICsxMDUsMTEgQEAgc3RydWN0IE9TUkV4aXQgOiBwdWJsaWMgT1NSRXhpdEJhc2UgewogICAgIHVu
c2lnbmVkIG1fc3RyZWFtSW5kZXg7CiAgICAgCiAgICAgUmVmUHRyPFZhbHVlUmVjb3ZlcnlPdmVy
cmlkZT4gbV92YWx1ZVJlY292ZXJ5T3ZlcnJpZGU7CisgICAgCisgICAgYm9vbCBjb25zaWRlckFk
ZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIE9TUkV4aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRF
eGl0U2l0ZShwcm9maWxlZENvZGVCbG9jaywgRXhpdEZyb21ERkcpOworICAgIH0KIH07CiAKIHN0
cnVjdCBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0luZm8gewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAot
Ym9vbCBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KENv
ZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2spCitib29sIE9TUkV4aXRCYXNlOjpjb25zaWRlckFk
ZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3coQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaywg
RXhpdGluZ0pJVFR5cGUgaml0VHlwZSkKIHsKICAgICBDb2RlQmxvY2sqIHNvdXJjZVByb2ZpbGVk
Q29kZUJsb2NrID0KICAgICAgICAgYmFzZWxpbmVDb2RlQmxvY2tGb3JPcmlnaW5BbmRCYXNlbGlu
ZUNvZGVCbG9jaygKQEAgLTQzLDcgKzQzLDcgQEAgYm9vbCBPU1JFeGl0QmFzZTo6Y29uc2lkZXJB
ZGRpbmdBc0ZyZXF1ZQogICAgIGlmICghc291cmNlUHJvZmlsZWRDb2RlQmxvY2spCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gc291cmNlUHJvZmlsZWRDb2RlQmxvY2stPmFkZEZy
ZXF1ZW50RXhpdFNpdGUoCi0gICAgICAgICAgICBGcmVxdWVudEV4aXRTaXRlKG1fY29kZU9yaWdp
bkZvckV4aXRQcm9maWxlLmJ5dGVjb2RlSW5kZXgsIG1fa2luZCkpOworICAgICAgICBGcmVxdWVu
dEV4aXRTaXRlKG1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxlLmJ5dGVjb2RlSW5kZXgsIG1fa2lu
ZCwgaml0VHlwZSkpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5oCShyZXZpc2lvbiAxNjI5NjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU4LDE1ICs1OCwxNiBAQCBzdHJ1Y3QgT1NSRXhpdEJhc2UgewogICAgIENvZGVP
cmlnaW4gbV9jb2RlT3JpZ2luOwogICAgIENvZGVPcmlnaW4gbV9jb2RlT3JpZ2luRm9yRXhpdFBy
b2ZpbGU7CiAKLSAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKENvZGVC
bG9jayogcHJvZmlsZWRDb2RlQmxvY2spCitwcm90ZWN0ZWQ6CisgICAgYm9vbCBjb25zaWRlckFk
ZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrLCBFeGl0
aW5nSklUVHlwZSBqaXRUeXBlKQogICAgIHsKICAgICAgICAgaWYgKCFtX2NvdW50KQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gY29uc2lkZXJBZGRpbmdBc0ZyZXF1
ZW50RXhpdFNpdGVTbG93KHByb2ZpbGVkQ29kZUJsb2NrKTsKKyAgICAgICAgcmV0dXJuIGNvbnNp
ZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhwcm9maWxlZENvZGVCbG9jaywgaml0VHlw
ZSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50
RXhpdFNpdGVTbG93KENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2spOworICAgIGJvb2wgY29u
c2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KENvZGVCbG9jayogcHJvZmlsZWRDb2Rl
QmxvY2ssIEV4aXRpbmdKSVRUeXBlKTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYs
NiArNDYsMTIgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAg
ICAgICBtX2ppdC5kZWJ1Z0NhbGwoZGVidWdPcGVyYXRpb25QcmludFNwZWN1bGF0aW9uRmFpbHVy
ZSwgZGVidWdJbmZvKTsKICAgICB9CiAgICAgCisgICAgLy8gTmVlZCB0byBlbnN1cmUgdGhhdCB0
aGUgc3RhY2sgcG9pbnRlciBhY2NvdW50cyBmb3IgdGhlIHdvcnN0LWNhc2Ugc3RhY2sgdXNhZ2Ug
YXQgZXhpdC4KKyAgICBtX2ppdC5hZGRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKAorICAgICAgICAgICAgLW1faml0LmNvZGVCbG9jaygpLT5qaXRDb2RlKCktPmRmZ0Nv
bW1vbigpLT5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ICogc2l6ZW9mKFJlZ2lzdGVyKSks
CisgICAgICAgIENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIENDYWxsSGVscGVy
czo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIAogICAgIC8vIDIpIFBlcmZvcm0gc3BlY3Vs
YXRpb24gcmVjb3ZlcnkuIFRoaXMgb25seSBjb21lcyBpbnRvIHBsYXkgd2hlbiBhbiBvcGVyYXRp
b24KICAgICAvLyAgICBzdGFydHMgbXV0YXRpbmcgc3RhdGUgYmVmb3JlIHZlcmlmeWluZyB0aGUg
c3BlY3VsYXRpb24gaXQgaGFzIGFscmVhZHkgbWFkZS4KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxl
cjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsOCBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAKIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25z
dCBPU1JFeGl0JiBleGl0LCBjb25zdCBPcGVyYW5kczxWYWx1ZVJlY292ZXJ5PiYgb3BlcmFuZHMs
IFNwZWN1bGF0aW9uUmVjb3ZlcnkqIHJlY292ZXJ5KQogeworICAgIG1faml0LmppdEFzc2VydFRh
Z3NJblBsYWNlKCk7CisKICAgICAvLyAxKSBQcm8tZm9ybWEgc3R1ZmYuCiAgICAgaWYgKE9wdGlv
bnM6OnByaW50RWFjaE9TUkV4aXQoKSkgewogICAgICAgICBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1
Z0luZm8qIGRlYnVnSW5mbyA9IG5ldyBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0luZm87CkBAIC00
OCw2ICs1MCwxMiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAg
ICAgICAgIG1faml0LmRlYnVnQ2FsbChkZWJ1Z09wZXJhdGlvblByaW50U3BlY3VsYXRpb25GYWls
dXJlLCBkZWJ1Z0luZm8pOwogICAgIH0KICAgICAKKyAgICAvLyBOZWVkIHRvIGVuc3VyZSB0aGF0
IHRoZSBzdGFjayBwb2ludGVyIGFjY291bnRzIGZvciB0aGUgd29yc3QtY2FzZSBzdGFjayB1c2Fn
ZSBhdCBleGl0LgorICAgIG1faml0LmFkZFB0cigKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoCisgICAgICAgICAgICAtbV9qaXQuY29kZUJsb2NrKCktPmppdENvZGUoKS0+ZGZn
Q29tbW9uKCktPnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQgKiBzaXplb2YoUmVnaXN0ZXIp
KSwKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCiAgICAgLy8gMikgUGVyZm9ybSBzcGVj
dWxhdGlvbiByZWNvdmVyeS4gVGhpcyBvbmx5IGNvbWVzIGludG8gcGxheSB3aGVuIGFuIG9wZXJh
dGlvbgogICAgIC8vICAgIHN0YXJ0cyBtdXRhdGluZyBzdGF0ZSBiZWZvcmUgdmVyaWZ5aW5nIHRo
ZSBzcGVjdWxhdGlvbiBpdCBoYXMgYWxyZWFkeSBtYWRlLgogICAgIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgY29tcGlsZU9TUkV4aXQo
RXhlY1N0YXRlKiBleGVjKQogICAgICAgICAKICAgICAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZl
cigqdm0sICZqaXQsIGNvZGVCbG9jayk7CiAgICAgICAgIGV4aXQubV9jb2RlID0gRklOQUxJWkVf
Q09ERV9JRigKLSAgICAgICAgICAgIHNob3VsZFNob3dEaXNhc3NlbWJseSgpLAorICAgICAgICAg
ICAgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpLAogICAg
ICAgICAgICAgcGF0Y2hCdWZmZXIsCiAgICAgICAgICAgICAoIkRGRyBPU1IgZXhpdCAjJXUgKCVz
LCAlcykgZnJvbSAlcywgd2l0aCBvcGVyYW5kcyA9ICVzIiwKICAgICAgICAgICAgICAgICBleGl0
SW5kZXgsIHRvQ1N0cmluZyhleGl0Lm1fY29kZU9yaWdpbikuZGF0YSgpLApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBA
CiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgiCisj
aW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRl
ICJPcGVyYXRpb25zLmgiCiAKQEAgLTE3Myw3ICsxNzQsMTEgQEAgdm9pZCBhZGp1c3RBbmRKdW1w
VG9UYXJnZXQoQ0NhbGxIZWxwZXJzJgogICAgIEFTU0VSVChtYXBwaW5nLT5tX2J5dGVjb2RlSW5k
ZXggPT0gZXhpdC5tX2NvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCk7CiAgICAgCiAgICAgdm9pZCog
anVtcFRhcmdldCA9IGJhc2VsaW5lQ29kZUJsb2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRy
ZXNzQXRPZmZzZXQobWFwcGluZy0+bV9tYWNoaW5lQ29kZU9mZnNldCk7CisKKyAgICBqaXQuYWRk
UHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpJVDo6c3RhY2tQb2ludGVyT2Zmc2V0
Rm9yKGJhc2VsaW5lQ29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAg
ICAgCisgICAgaml0LmppdEFzc2VydFRhZ3NJblBsYWNlKCk7CisKICAgICBqaXQubW92ZShBc3Nl
bWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoanVtcFRhcmdldCksIEdQUkluZm86OnJlZ1QyKTsK
ICAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMik7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExNDAsNyArMTE0MCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiB0cmlnZ2VyVGllclVwTm93KEV4
ZWMKICAgICB9CiAgICAgCiAgICAgV29ya2xpc3Q6OlN0YXRlIHdvcmtsaXN0U3RhdGU7Ci0gICAg
aWYgKFdvcmtsaXN0KiB3b3JrbGlzdCA9IHZtLT53b3JrbGlzdC5nZXQoKSkgeworICAgIGlmIChX
b3JrbGlzdCogd29ya2xpc3QgPSBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkpIHsK
ICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxhbnNG
b3JWTSgKICAgICAgICAgICAgICp2bSwgQ29tcGlsYXRpb25LZXkoY29kZUJsb2NrLT5iYXNlbGlu
ZVZlcnNpb24oKSwgRlRMTW9kZSkpOwogICAgIH0gZWxzZQpAQCAtMTE2OSw4ICsxMTY5LDggQEAg
dm9pZCBKSVRfT1BFUkFUSU9OIHRyaWdnZXJUaWVyVXBOb3coRXhlYwogCiAgICAgLy8gV2UgbmVl
ZCB0byBjb21waWxlIHRoZSBjb2RlLgogICAgIGNvbXBpbGUoCi0gICAgICAgICp2bSwgY29kZUJs
b2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBGVExNb2RlLCBVSU5UX01BWCwgT3BlcmFuZHM8
SlNWYWx1ZT4oKSwKLSAgICAgICAgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNy
ZWF0ZShjb2RlQmxvY2spLCB2bS0+ZW5zdXJlV29ya2xpc3QoKSk7CisgICAgICAgICp2bSwgY29k
ZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBjb2RlQmxvY2ssIEZUTE1vZGUsIFVJTlRf
TUFYLAorICAgICAgICBPcGVyYW5kczxKU1ZhbHVlPigpLCBUb0ZUTERlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjazo6Y3JlYXRlKGNvZGVCbG9jaykpOwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9O
IHRyaWdnZXJPU1JFbnRyeU5vdygKQEAgLTEyMDIsOCArMTIwMiwxMCBAQCBjaGFyKiBKSVRfT1BF
UkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAg
IAorICAgIFdvcmtsaXN0KiB3b3JrbGlzdCA9IGV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51
bGwoKTsKKwogICAgIFdvcmtsaXN0OjpTdGF0ZSB3b3JrbGlzdFN0YXRlOwotICAgIGlmIChXb3Jr
bGlzdCogd29ya2xpc3QgPSB2bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAgICBpZiAod29ya2xpc3Qp
IHsKICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxh
bnNGb3JWTSgKICAgICAgICAgICAgICp2bSwgQ29tcGlsYXRpb25LZXkoY29kZUJsb2NrLT5iYXNl
bGluZVZlcnNpb24oKSwgRlRMRm9yT1NSRW50cnlNb2RlKSk7CiAgICAgfSBlbHNlCkBAIC0xMjUy
LDEwICsxMjU0LDkgQEAgY2hhciogSklUX09QRVJBVElPTiB0cmlnZ2VyT1NSRW50cnlOb3coCiAg
ICAgT3BlcmFuZHM8SlNWYWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKICAgICBqaXRDb2RlLT5yZWNv
bnN0cnVjdCgKICAgICAgICAgZXhlYywgY29kZUJsb2NrLCBDb2RlT3JpZ2luKGJ5dGVjb2RlSW5k
ZXgpLCBzdHJlYW1JbmRleCwgbXVzdEhhbmRsZVZhbHVlcyk7Ci0gICAgQ29tcGlsYXRpb25SZXN1
bHQgZm9yRW50cnlSZXN1bHQgPSBERkc6OmNvbXBpbGUoCi0gICAgICAgICp2bSwgY29kZUJsb2Nr
LT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBGVExGb3JPU1JFbnRyeU1vZGUsIGJ5dGVjb2RlSW5k
ZXgsCi0gICAgICAgIG11c3RIYW5kbGVWYWx1ZXMsIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spLAotICAgICAgICB2bS0+ZW5zdXJl
V29ya2xpc3QoKSk7CisgICAgQ29tcGlsYXRpb25SZXN1bHQgZm9yRW50cnlSZXN1bHQgPSBjb21w
aWxlKAorICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgY29k
ZUJsb2NrLCBGVExGb3JPU1JFbnRyeU1vZGUsIGJ5dGVjb2RlSW5kZXgsCisgICAgICAgIG11c3RI
YW5kbGVWYWx1ZXMsIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6
OmNyZWF0ZShjb2RlQmxvY2spKTsKICAgICAKICAgICAvLyBCdXQgd2UgYWxzbyB3YW50IHRvIHRy
aWdnZXIgYSByZXBsYWNlbWVudCBjb21waWxlLiBPZiBjb3Vyc2UsIHdlIGRvbid0IHdhbnQgdG8K
ICAgICAvLyB0cmlnZ2VyIGl0IGlmIHdlIGRvbid0IG5lZWQgdG8uIE5vdGUgdGhhdCB0aGlzIGlz
IGtpbmQgb2Ygd2VpcmQgYmVjYXVzZSB3ZSBtaWdodApAQCAtMTI2OCwxMSArMTI2OSwxMSBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICBDb21waWxhdGlvbktl
eSBrZXlGb3JSZXBsYWNlbWVudChjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigpLCBGVExNb2Rl
KTsKICAgICBpZiAoY29kZUJsb2NrLT5jb2RlVHlwZSgpICE9IEdsb2JhbENvZGUKICAgICAgICAg
JiYgIWNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKQotICAgICAgICAmJiAoIXZt
LT53b3JrbGlzdC5nZXQoKQotICAgICAgICAgICAgfHwgdm0tPndvcmtsaXN0LT5jb21waWxhdGlv
blN0YXRlKGtleUZvclJlcGxhY2VtZW50KSA9PSBXb3JrbGlzdDo6Tm90S25vd24pKSB7CisgICAg
ICAgICYmICghd29ya2xpc3QKKyAgICAgICAgICAgIHx8IHdvcmtsaXN0LT5jb21waWxhdGlvblN0
YXRlKGtleUZvclJlcGxhY2VtZW50KSA9PSBXb3JrbGlzdDo6Tm90S25vd24pKSB7CiAgICAgICAg
IGNvbXBpbGUoCi0gICAgICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5n
ZXQoKSwgRlRMTW9kZSwgVUlOVF9NQVgsIE9wZXJhbmRzPEpTVmFsdWU+KCksCi0gICAgICAgICAg
ICBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKGNvZGVCbG9jayksIHZt
LT5lbnN1cmVXb3JrbGlzdCgpKTsKKyAgICAgICAgICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBs
YWNlbWVudCgpLmdldCgpLCBjb2RlQmxvY2ssIEZUTE1vZGUsIFVJTlRfTUFYLAorICAgICAgICAg
ICAgT3BlcmFuZHM8SlNWYWx1ZT4oKSwgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6
OmNyZWF0ZShjb2RlQmxvY2spKTsKICAgICB9CiAgICAgCiAgICAgaWYgKGZvckVudHJ5UmVzdWx0
ICE9IENvbXBpbGF0aW9uU3VjY2Vzc2Z1bCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUGxhbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQbGFuLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQbGFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTEsMTcgKzkxLDM2IEBAIHN0YXRpYyB2b2lk
IGR1bXBBbmRWZXJpZnlHcmFwaChHcmFwaCYgZ3IKICAgICAgICAgdmFsaWRhdGUoZ3JhcGgsIG1v
ZGVGb3JGaW5hbFZhbGlkYXRlKTsKIH0KIAotUGxhbjo6UGxhbigKLSAgICBQYXNzUmVmUHRyPENv
ZGVCbG9jaz4gcGFzc2VkQ29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9kZSwKLSAgICB1bnNp
Z25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0
SGFuZGxlVmFsdWVzKQorc3RhdGljIFByb2ZpbGVyOjpDb21waWxhdGlvbktpbmQgcHJvZmlsZXJD
b21waWxhdGlvbktpbmRGb3JNb2RlKENvbXBpbGF0aW9uTW9kZSBtb2RlKQoreworICAgIHN3aXRj
aCAobW9kZSkgeworICAgIGNhc2UgSW52YWxpZENvbXBpbGF0aW9uTW9kZToKKyAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFByb2ZpbGVyOjpERkc7
CisgICAgY2FzZSBERkdNb2RlOgorICAgICAgICByZXR1cm4gUHJvZmlsZXI6OkRGRzsKKyAgICBj
YXNlIEZUTE1vZGU6CisgICAgICAgIHJldHVybiBQcm9maWxlcjo6RlRMOworICAgIGNhc2UgRlRM
Rm9yT1NSRW50cnlNb2RlOgorICAgICAgICByZXR1cm4gUHJvZmlsZXI6OkZUTEZvck9TUkVudHJ5
OworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBQ
cm9maWxlcjo6REZHOworfQorCitQbGFuOjpQbGFuKFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBwYXNz
ZWRDb2RlQmxvY2ssIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ssCisgICAgQ29tcGls
YXRpb25Nb2RlIG1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKKyAgICBjb25z
dCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcykKICAgICA6IHZtKCpwYXNzZWRD
b2RlQmxvY2stPnZtKCkpCiAgICAgLCBjb2RlQmxvY2socGFzc2VkQ29kZUJsb2NrKQorICAgICwg
cHJvZmlsZWRERkdDb2RlQmxvY2socHJvZmlsZWRERkdDb2RlQmxvY2spCiAgICAgLCBtb2RlKG1v
ZGUpCiAgICAgLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgob3NyRW50cnlCeXRlY29kZUluZGV4KQog
ICAgICwgbXVzdEhhbmRsZVZhbHVlcyhtdXN0SGFuZGxlVmFsdWVzKQotICAgICwgY29tcGlsYXRp
b24oY29kZUJsb2NrLT52bSgpLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIgPyBhZG9wdFJlZihuZXcg
UHJvZmlsZXI6OkNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9wZXJCeXRlY29kZVByb2Zp
bGVyLT5lbnN1cmVCeXRlY29kZXNGb3IoY29kZUJsb2NrLmdldCgpKSwgUHJvZmlsZXI6OkRGRykp
IDogMCkKKyAgICAsIGNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9wZXJCeXRlY29kZVBy
b2ZpbGVyID8gYWRvcHRSZWYobmV3IFByb2ZpbGVyOjpDb21waWxhdGlvbihjb2RlQmxvY2stPnZt
KCktPm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+ZW5zdXJlQnl0ZWNvZGVzRm9yKGNvZGVCbG9jay5n
ZXQoKSksIHByb2ZpbGVyQ29tcGlsYXRpb25LaW5kRm9yTW9kZShtb2RlKSkpIDogMCkKICAgICAs
IGlkZW50aWZpZXJzKGNvZGVCbG9jay5nZXQoKSkKICAgICAsIHdlYWtSZWZlcmVuY2VzKGNvZGVC
bG9jay5nZXQoKSkKKyAgICAsIHdpbGxUcnlUb1RpZXJVcChmYWxzZSkKICAgICAsIGlzQ29tcGls
ZWQoZmFsc2UpCiB7CiB9CkBAIC0xMTAsMTAgKzEyOSwxNiBAQCBQbGFuOjp+UGxhbigpCiB7CiB9
CiAKK2Jvb2wgUGxhbjo6cmVwb3J0Q29tcGlsZVRpbWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
T3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkKKyAgICAgICAgfHwgKE9wdGlvbnM6OnJlcG9y
dEZUTENvbXBpbGVUaW1lcygpICYmIGlzRlRMKG1vZGUpKTsKK30KKwogdm9pZCBQbGFuOjpjb21w
aWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQogewogICAgIGRvdWJs
ZSBiZWZvcmUgPSAwOwotICAgIGlmIChPcHRpb25zOjpyZXBvcnRDb21waWxlVGltZXMoKSkKKyAg
ICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgIGJlZm9yZSA9IGN1cnJlbnRUaW1l
TVMoKTsKICAgICAKICAgICBTYW1wbGluZ1JlZ2lvbiBzYW1wbGluZ1JlZ2lvbigiREZHIENvbXBp
bGF0aW9uIChQbGFuKSIpOwpAQCAtMTI2LDcgKzE1MSw3IEBAIHZvaWQgUGxhbjo6Y29tcGlsZUlu
VGhyZWFkKExvbmdMaXZlZFN0YXQKIAogICAgIFJFTEVBU0VfQVNTRVJUKGZpbmFsaXplcik7CiAg
ICAgCi0gICAgaWYgKE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1lcygpKSB7CisgICAgaWYgKHJl
cG9ydENvbXBpbGVUaW1lcygpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIHBhdGhOYW1lOwogICAg
ICAgICBzd2l0Y2ggKHBhdGgpIHsKICAgICAgICAgY2FzZSBGYWlsUGF0aDoKQEAgLTE0NCw3ICsx
NjksNyBAQCB2b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkb3VibGUgbm93ID0gY3VycmVudFRpbWVN
UygpOwotICAgICAgICBkYXRhTG9nKCJPcHRpbWl6ZWQgIiwgKmNvZGVCbG9jay0+YWx0ZXJuYXRp
dmUoKSwgIiB1c2luZyAiLCBtb2RlLCAiIHdpdGggIiwgcGF0aE5hbWUsICIgaW4gIiwgbm93IC0g
YmVmb3JlLCAiIG1zIik7CisgICAgICAgIGRhdGFMb2coIk9wdGltaXplZCAiLCAqY29kZUJsb2Nr
LCAiIHVzaW5nICIsIG1vZGUsICIgd2l0aCAiLCBwYXRoTmFtZSwgIiBpbnRvICIsIGZpbmFsaXpl
ci0+Y29kZVNpemUoKSwgIiBieXRlcyBpbiAiLCBub3cgLSBiZWZvcmUsICIgbXMiKTsKICAgICAg
ICAgaWYgKHBhdGggPT0gRlRMUGF0aCkKICAgICAgICAgICAgIGRhdGFMb2coIiAoREZHOiAiLCBi
ZWZvcmVGVEwgLSBiZWZvcmUsICIsIExMVk06ICIsIG5vdyAtIGJlZm9yZUZUTCwgIikiKTsKICAg
ICAgICAgZGF0YUxvZygiLlxuIik7CkBAIC0yOTMsNyArMzE4LDcgQEAgUGxhbjo6Q29tcGlsYXRp
b25QYXRoIFBsYW46OmNvbXBpbGVJblRocgogICAgICAgICBGVEw6OlN0YXRlIHN0YXRlKGRmZyk7
CiAgICAgICAgIEZUTDo6bG93ZXJERkdUb0xMVk0oc3RhdGUpOwogICAgICAgICAKLSAgICAgICAg
aWYgKE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1lcygpKQorICAgICAgICBpZiAocmVwb3J0Q29t
cGlsZVRpbWVzKCkpCiAgICAgICAgICAgICBiZWZvcmVGVEwgPSBjdXJyZW50VGltZU1TKCk7CiAg
ICAgICAgIAogICAgICAgICBpZiAoT3B0aW9uczo6bGx2bUFsd2F5c0ZhaWxzQmVmb3JlQ29tcGls
ZSgpKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTU1LDcgKzU1LDggQEAgY2xhc3MgTG9uZ0xpdmVkU3RhdGU7CiAKIHN0cnVjdCBQbGFuIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBsYW4+IHsKICAgICBQbGFuKAotICAgICAgICBQ
YXNzUmVmUHRyPENvZGVCbG9jaz4sIENvbXBpbGF0aW9uTW9kZSwgdW5zaWduZWQgb3NyRW50cnlC
eXRlY29kZUluZGV4LAorICAgICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gY29kZUJsb2NrVG9D
b21waWxlLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLAorICAgICAgICBDb21waWxh
dGlvbk1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKICAgICAgICAgY29uc3Qg
T3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMpOwogICAgIH5QbGFuKCk7CiAgICAg
CkBAIC03MCw2ICs3MSw3IEBAIHN0cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGUKICAgICAKICAgICBWTSYgdm07CiAgICAgUmVmUHRyPENvZGVCbG9jaz4gY29kZUJsb2NrOwor
ICAgIFJlZlB0cjxDb2RlQmxvY2s+IHByb2ZpbGVkREZHQ29kZUJsb2NrOwogICAgIENvbXBpbGF0
aW9uTW9kZSBtb2RlOwogICAgIGNvbnN0IHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleDsK
ICAgICBPcGVyYW5kczxKU1ZhbHVlPiBtdXN0SGFuZGxlVmFsdWVzOwpAQCAtODQsNiArODYsOCBA
QCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAgRGVzaXJlZFdl
YWtSZWZlcmVuY2VzIHdlYWtSZWZlcmVuY2VzOwogICAgIERlc2lyZWRXcml0ZUJhcnJpZXJzIHdy
aXRlQmFycmllcnM7CiAgICAgRGVzaXJlZFRyYW5zaXRpb25zIHRyYW5zaXRpb25zOworICAgIAor
ICAgIGJvb2wgd2lsbFRyeVRvVGllclVwOwogCiAgICAgZG91YmxlIGJlZm9yZUZUTDsKICAgICAK
QEAgLTkyLDYgKzk2LDggQEAgc3RydWN0IFBsYW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZQogICAgIFJlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrOwogCiBw
cml2YXRlOgorICAgIGJvb2wgcmVwb3J0Q29tcGlsZVRpbWVzKCkgY29uc3Q7CisgICAgCiAgICAg
ZW51bSBDb21waWxhdGlvblBhdGggeyBGYWlsUGF0aCwgREZHUGF0aCwgRlRMUGF0aCB9OwogICAg
IENvbXBpbGF0aW9uUGF0aCBjb21waWxlSW5UaHJlYWRJbXBsKExvbmdMaXZlZFN0YXRlJik7CiAg
ICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJp
bmdQaGFzZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTczLDIyICs3MywzMyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2Fz
ZSBQdXRCeVZhbDoKLSAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKLSAgICAgICAgICAgIGxv
d2VyQm91bmRzQ2hlY2soCi0gICAgICAgICAgICAgICAgbV9ncmFwaC52YXJBcmdDaGlsZChtX25v
ZGUsIDApLAotICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSwK
LSAgICAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMykpOworICAgICAg
ICBjYXNlIFB1dEJ5VmFsRGlyZWN0OiB7CisgICAgICAgICAgICBFZGdlIGJhc2UgPSBtX2dyYXBo
LnZhckFyZ0NoaWxkKG1fbm9kZSwgMCk7CisgICAgICAgICAgICBFZGdlIGluZGV4ID0gbV9ncmFw
aC52YXJBcmdDaGlsZChtX25vZGUsIDEpOworICAgICAgICAgICAgRWRnZSBzdG9yYWdlID0gbV9n
cmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDMpOworICAgICAgICAgICAgaWYgKGxvd2VyQm91bmRz
Q2hlY2soYmFzZSwgaW5kZXgsIHN0b3JhZ2UpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1vZGUoKS50eXBlZEFycmF5
VHlwZSgpICE9IE5vdFR5cGVkQXJyYXkgJiYgbV9ub2RlLT5hcnJheU1vZGUoKS5pc091dE9mQm91
bmRzKCkpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBsZW5ndGggPSBtX2luc2VydGlvblNldC5p
bnNlcnROb2RlKAorICAgICAgICAgICAgICAgICAgICBtX25vZGVJbmRleCwgU3BlY0ludDMyLCBH
ZXRBcnJheUxlbmd0aCwgbV9ub2RlLT5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICBP
cEluZm8obV9ub2RlLT5hcnJheU1vZGUoKS5hc1dvcmQoKSksIGJhc2UsIHN0b3JhZ2UpOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2Rl
LCA0KSA9IEVkZ2UobGVuZ3RoLCBLbm93bkludDMyVXNlKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAg
ICAgICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgfQogICAgIAotICAgIHZvaWQgbG93ZXJCb3VuZHNDaGVjayhFZGdlIGJhc2UsIEVkZ2UgaW5k
ZXgsIEVkZ2Ugc3RvcmFnZSkKKyAgICBib29sIGxvd2VyQm91bmRzQ2hlY2soRWRnZSBiYXNlLCBF
ZGdlIGluZGV4LCBFZGdlIHN0b3JhZ2UpCiAgICAgewogICAgICAgICBpZiAoIW1fbm9kZS0+YXJy
YXlNb2RlKCkucGVybWl0c0JvdW5kc0NoZWNrTG93ZXJpbmcoKSkKLSAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCiAgICAgICAgIGlmICghbV9u
b2RlLT5hcnJheU1vZGUoKS5sZW5ndGhOZWVkc1N0b3JhZ2UoKSkKICAgICAgICAgICAgIHN0b3Jh
Z2UgPSBFZGdlKCk7CkBAIC05OSw2ICsxMTAsNyBAQCBwcml2YXRlOgogICAgICAgICBtX2luc2Vy
dGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgbV9ub2RlSW5kZXgsIFNwZWNJbnQzMiwg
Q2hlY2tJbkJvdW5kcywgbV9ub2RlLT5jb2RlT3JpZ2luLAogICAgICAgICAgICAgaW5kZXgsIEVk
Z2UobGVuZ3RoLCBLbm93bkludDMyVXNlKSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ICAgICAKICAgICBJbnNlcnRpb25TZXQgbV9pbnNlcnRpb25TZXQ7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJl
dmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw3ICsxNzIsNyBAQCBib29sIFNw
ZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
YWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJPck5v
bmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJl
c3VsdFBheWxvYWRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpK
dW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlKQogewogICAg
IEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29k
ZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwKKyAg
ICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwKICAg
ICAgICAgSlNWYWx1ZVJlZ3MoYmFzZVRhZ0dQUk9yTm9uZSwgYmFzZVBheWxvYWRHUFIpLAogICAg
ICAgICBKU1ZhbHVlUmVncyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpLCBzcGlsbE1v
ZGUgIT0gTmVlZFRvU3BpbGwpOwogICAgIApAQCAtMjA0LDcgKzIwNCw3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU8KIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hl
ZFB1dEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQ
UlJlZyB2YWx1ZVRhZ0dQUiwgR1BSUmVnIHZhbHVlUGF5bG9hZEdQUiwgR1BSUmVnIHNjcmF0Y2hH
UFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQgcHV0S2luZCwgSklUQ29tcGls
ZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpCiB7CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4o
Ci0gICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCks
IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAorICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwg
Y29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLAogICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9h
ZE9ubHkoYmFzZVBheWxvYWRHUFIpLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwgdmFsdWVQYXls
b2FkR1BSKSwKICAgICAgICAgc2NyYXRjaEdQUiwgZmFsc2UsIG1faml0LmVjbWFNb2RlRm9yKGNv
ZGVPcmlnaW4pLCBwdXRLaW5kKTsKICAgICAKQEAgLTYzMSwxMCArNjMxLDkgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZQogICAgIAogICAgIGludCBudW1BcmdzID0g
bnVtUGFzc2VkQXJncyArIGR1bW15VGhpc0FyZ3VtZW50OwogCi0gICAgbV9qaXQuc3RvcmUzMihN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRT
bG90KG51bUFyZ3MsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKTsKLSAgICBtX2ppdC5zdG9yZVB0
cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgY2FsbGVlRnJhbWVDYWxsZXJGcmFtZShudW1B
cmdzKSk7Ci0gICAgbV9qaXQuc3RvcmUzMihjYWxsZWVQYXlsb2FkR1BSLCBjYWxsZWVGcmFtZVBh
eWxvYWRTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOwotICAgIG1faml0LnN0b3JlMzIo
Y2FsbGVlVGFnR1BSLCBjYWxsZWVGcmFtZVRhZ1Nsb3QobnVtQXJncywgSlNTdGFjazo6Q2FsbGVl
KSk7CisgICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG51bUFy
Z3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKTsKKyAg
ICBtX2ppdC5zdG9yZTMyKGNhbGxlZVBheWxvYWRHUFIsIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3Qo
SlNTdGFjazo6Q2FsbGVlKSk7CisgICAgbV9qaXQuc3RvcmUzMihjYWxsZWVUYWdHUFIsIGNhbGxl
ZUZyYW1lVGFnU2xvdChKU1N0YWNrOjpDYWxsZWUpKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbnVtUGFzc2VkQXJnczsgaSsrKSB7CiAgICAgICAgIEVkZ2UgYXJnRWRnZSA9IG1faml0Lmdy
YXBoKCkubV92YXJBcmdDaGlsZHJlbltub2RlLT5maXJzdENoaWxkKCkgKyAxICsgaV07CkBAIC02
NDMsOCArNjQyLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZQog
ICAgICAgICBHUFJSZWcgYXJnUGF5bG9hZEdQUiA9IGFyZy5wYXlsb2FkR1BSKCk7CiAgICAgICAg
IHVzZShhcmdFZGdlKTsKIAotICAgICAgICBtX2ppdC5zdG9yZTMyKGFyZ1RhZ0dQUiwgY2FsbGVl
QXJndW1lbnRUYWdTbG90KG51bUFyZ3MsIGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOwotICAgICAg
ICBtX2ppdC5zdG9yZTMyKGFyZ1BheWxvYWRHUFIsIGNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3Qo
bnVtQXJncywgaSArIGR1bW15VGhpc0FyZ3VtZW50KSk7CisgICAgICAgIG1faml0LnN0b3JlMzIo
YXJnVGFnR1BSLCBjYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaSArIGR1bW15VGhpc0FyZ3VtZW50KSk7
CisgICAgICAgIG1faml0LnN0b3JlMzIoYXJnUGF5bG9hZEdQUiwgY2FsbGVlQXJndW1lbnRQYXls
b2FkU2xvdChpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKICAgICB9CiAKICAgICBmbHVzaFJlZ2lz
dGVycygpOwpAQCAtNjU5LDEzICs2NTgsMTEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENh
bGwoTm9kZSogbm9kZQogCiAgICAgbV9qaXQuZW1pdFN0b3JlQ29kZU9yaWdpbihub2RlLT5jb2Rl
T3JpZ2luKTsKICAgICAKLSAgICBtX2ppdC5hZGRQdHIoVHJ1c3RlZEltbTMyKGNhbGxlZUZyYW1l
T2Zmc2V0KG51bUFyZ3MpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgIAogICAg
IHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWws
IGNhbGxlZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAgICAgc2xv
d1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6Tm90
RXF1YWwsIGNhbGxlZVBheWxvYWRHUFIsIHRhcmdldFRvQ2hlY2spKTsKICAgICBtX2ppdC5sb2Fk
UHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNhbGxlZVBheWxvYWRHUFIsIE9CSkVDVF9PRkZT
RVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlc3VsdFBheWxvYWRHUFIpOwotICAgIG1faml0
LnN0b3JlUHRyKHJlc3VsdFBheWxvYWRHUFIsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdp
c3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbiArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFs
dWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpKTsKLSAgICBtX2ppdC5zdG9yZTMyKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZm
X3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbiArIE9CSkVDVF9PRkZT
RVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAgIG1faml0LnN0
b3JlUHRyKHJlc3VsdFBheWxvYWRHUFIsIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoSlNTdGFjazo6
U2NvcGVDaGFpbikpOworICAgIG1faml0LnN0b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGNhbGxlZUZyYW1lVGFnU2xvdChKU1N0YWNrOjpTY29w
ZUNoYWluKSk7CiAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBmYXN0Q2FsbCA9IG1faml0Lm5lYXJD
YWxsKCk7CiAKQEAgLTMwNDcsMTIgKzMwNDQsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICAvLyBH
cmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICAgICAgbV9qaXQuZW1pdEdldFJldHVyblBDRnJv
bUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMik7Ci0gICAgICAgIC8vIFJlc3RvcmUg
b3VyIGNhbGxlcidzICJyIi4KLSAgICAgICAgbV9qaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNh
bGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgICAgIC8v
IFJldHVybi4KLSAgICAgICAgbV9qaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4o
R1BSSW5mbzo6cmVnVDIpOworICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwog
ICAgICAgICBtX2ppdC5yZXQoKTsKICAgICAgICAgCiAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAsOCArMTkwLDggQEAg
R1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIAogdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BS
LCBHUFJSZWcgcmVzdWx0R1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBKSVRDb21waWxl
cjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSkKIHsK
ICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9qaXQuY29kZUJsb2NrKCks
IGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIs
Ci0gICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVlUmVncyhyZXN1bHRHUFIpLCBz
cGlsbE1vZGUgIT0gTmVlZFRvU3BpbGwpOworICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29k
ZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBKU1ZhbHVlUmVncyhiYXNlR1BSKSwKKyAgICAgICAg
SlNWYWx1ZVJlZ3MocmVzdWx0R1BSKSwgc3BpbGxNb2RlICE9IE5lZWRUb1NwaWxsKTsKICAgICBn
ZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CiAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1bXBM
aXN0IHNsb3dDYXNlczsKQEAgLTIxMCw5ICsyMTAsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
YWNoZWRHZXRCeUlkKENvZGVPCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENv
ZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB2YWx1ZUdQUiwgR1BS
UmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQgcHV0S2lu
ZCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpCiB7CiAgICAgSklUUHV0QnlJZEdl
bmVyYXRvciBnZW4oCi0gICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2Vk
UmVnaXN0ZXJzKCksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICBKU1ZhbHVl
UmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBzY3JhdGNoR1BSLCBmYWxzZSwK
LSAgICAgICAgbV9qaXQuZWNtYU1vZGVGb3IoY29kZU9yaWdpbiksIHB1dEtpbmQpOworICAgICAg
ICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBKU1ZhbHVl
UmVncyhiYXNlR1BSKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBzY3JhdGNoR1BS
LCBmYWxzZSwgbV9qaXQuZWNtYU1vZGVGb3IoY29kZU9yaWdpbiksIHB1dEtpbmQpOwogICAgIGdl
bi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExp
c3Qgc2xvd0Nhc2VzOwpAQCAtNjYzLDkgKzY2Miw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVt
aXRDYWxsKE5vZGUqIG5vZGUKICAgICAKICAgICBpbnQgbnVtQXJncyA9IG51bVBhc3NlZEFyZ3Mg
KyBkdW1teVRoaXNBcmd1bWVudDsKICAgICAKLSAgICBtX2ppdC5zdG9yZTMyKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIobnVtQXJncyksIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QobnVtQXJn
cywgSlNTdGFjazo6QXJndW1lbnRDb3VudCkpOwotICAgIG1faml0LnN0b3JlNjQoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUobnVtQXJncykpOwotICAg
IG1faml0LnN0b3JlNjQoY2FsbGVlR1BSLCBjYWxsZWVGcmFtZVNsb3QobnVtQXJncywgSlNTdGFj
azo6Q2FsbGVlKSk7CisgICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6OkFyZ3VtZW50Q291
bnQpKTsKKyAgICBtX2ppdC5zdG9yZTY0KGNhbGxlZUdQUiwgY2FsbGVlRnJhbWVTbG90KEpTU3Rh
Y2s6OkNhbGxlZSkpOwogICAgIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUGFzc2VkQXJn
czsgaSsrKSB7CiAgICAgICAgIEVkZ2UgYXJnRWRnZSA9IG1faml0LmdyYXBoKCkubV92YXJBcmdD
aGlsZHJlbltub2RlLT5maXJzdENoaWxkKCkgKyAxICsgaV07CkBAIC02NzMsNyArNjcxLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZQogICAgICAgICBHUFJSZWcg
YXJnR1BSID0gYXJnLmdwcigpOwogICAgICAgICB1c2UoYXJnRWRnZSk7CiAgICAgICAgIAotICAg
ICAgICBtX2ppdC5zdG9yZTY0KGFyZ0dQUiwgY2FsbGVlQXJndW1lbnRTbG90KG51bUFyZ3MsIGkg
KyBkdW1teVRoaXNBcmd1bWVudCkpOworICAgICAgICBtX2ppdC5zdG9yZTY0KGFyZ0dQUiwgY2Fs
bGVlQXJndW1lbnRTbG90KGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOwogICAgIH0KIAogICAgIGZs
dXNoUmVnaXN0ZXJzKCk7CkBAIC02ODIsMjMgKzY4MCwyOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
OjplbWl0Q2FsbChOb2RlKiBub2RlCiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIo
KTsKIAogICAgIEpJVENvbXBpbGVyOjpEYXRhTGFiZWxQdHIgdGFyZ2V0VG9DaGVjazsKLSAgICBK
SVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd1BhdGg7CisgICAgSklUQ29tcGlsZXI6Okp1bXAgc2xv
d1BhdGg7CiAKICAgICBtX2ppdC5lbWl0U3RvcmVDb2RlT3JpZ2luKG5vZGUtPmNvZGVPcmlnaW4p
OwogICAgIAotICAgIG1faml0LmFkZFB0cihUcnVzdGVkSW1tMzIoY2FsbGVlRnJhbWVPZmZzZXQo
bnVtQXJncykpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgCi0gICAgc2xvd1Bh
dGguYXBwZW5kKG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1
YWwsIGNhbGxlZUdQUiwgdGFyZ2V0VG9DaGVjaywgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIoMCkpKTsKKyAgICBzbG93UGF0aCA9IG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIGNhbGxlZUdQUiwgdGFyZ2V0VG9DaGVjaywgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIoMCkpOwogCiAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhjYWxsZWVHUFIsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3Bl
KSksIHJlc3VsdEdQUik7Ci0gICAgbV9qaXQuc3RvcmU2NChyZXN1bHRHUFIsIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbikpOworICAgIG1f
aml0LnN0b3JlNjQocmVzdWx0R1BSLCBjYWxsZWVGcmFtZVNsb3QoSlNTdGFjazo6U2NvcGVDaGFp
bikpOwogCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgZmFzdENhbGwgPSBtX2ppdC5uZWFyQ2FsbCgp
OwotICAgIAorCiAgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKICAg
ICAKICAgICBzbG93UGF0aC5saW5rKCZtX2ppdCk7CiAgICAgCisgICAgaWYgKG1faml0LmdyYXBo
KCkubV9wbGFuLndpbGxUcnlUb1RpZXJVcCkgeworICAgICAgICBtX2ppdC5hZGQzMigKKyAgICAg
ICAgICAgIFRydXN0ZWRJbW0zMigxKSwKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYnNv
bHV0ZUFkZHJlc3MoCisgICAgICAgICAgICAgICAgbV9qaXQuaml0Q29kZSgpLT5zbG93UGF0aENh
bGxzLmJlZ2luKCkgKyBtX2ppdC5jdXJyZW50SlNDYWxsSW5kZXgoKSkpOworICAgIH0KKyAgICAK
ICAgICBtX2ppdC5tb3ZlKGNhbGxlZUdQUiwgR1BSSW5mbzo6cmVnVDApOyAvLyBDYWxsZWUgbmVl
ZHMgdG8gYmUgaW4gcmVnVDAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBzbG93Q2FsbCA9IG1faml0
Lm5lYXJDYWxsKCk7CiAgICAgCkBAIC0zMjAwLDcgKzMyMDMsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGFkZFNs
b3dQYXRoR2VuZXJhdG9yKAogICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCgKLSAgICAgICAg
ICAgICAgICAgICAgc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5UHVzaCwgTm9SZXN1bHQs
IHN0b3JhZ2VMZW5ndGhHUFIsCisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLCB0aGlzLCBv
cGVyYXRpb25BcnJheVB1c2gsIHN0b3JhZ2VMZW5ndGhHUFIsCiAgICAgICAgICAgICAgICAgICAg
IHZhbHVlR1BSLCBiYXNlR1BSKSk7CiAgICAgICAgIAogICAgICAgICAgICAganNWYWx1ZVJlc3Vs
dChzdG9yYWdlTGVuZ3RoR1BSLCBub2RlKTsKQEAgLTMyMjQsNyArMzIyNyw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgICAgICAgICAgc2xvd1BhdGhDYWxsKAot
ICAgICAgICAgICAgICAgICAgICBzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uQXJyYXlQdXNoRG91
YmxlLCBOb1Jlc3VsdCwgc3RvcmFnZUxlbmd0aEdQUiwKKyAgICAgICAgICAgICAgICAgICAgc2xv
d1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSwgc3RvcmFnZUxlbmd0aEdQUiwK
ICAgICAgICAgICAgICAgICAgICAgdmFsdWVGUFIsIGJhc2VHUFIpKTsKICAgICAgICAgCiAgICAg
ICAgICAgICBqc1ZhbHVlUmVzdWx0KHN0b3JhZ2VMZW5ndGhHUFIsIG5vZGUpOwpAQCAtMzM4OCwx
MiArMzM5MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAg
ICAgICAgSlNWYWx1ZU9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
bV9qaXQubW92ZShvcDEuZ3ByKCksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKIAotICAgICAg
ICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICAgICAgbV9qaXQuZW1pdEdldFJldHVy
blBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIC8vIFJl
c3RvcmUgb3VyIGNhbGxlcidzICJyIi4KLSAgICAgICAgbV9qaXQuZW1pdEdldENhbGxlckZyYW1l
RnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAg
ICAgIC8vIFJldHVybi4KLSAgICAgICAgbV9qaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVS
ZXR1cm4oR1BSSW5mbzo6cmVnVDEpOworICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgICAgICBtX2ppdC5yZXQoKTsKICAgICAgICAgCiAgICAgICAgIG5vUmVzdWx0KG5v
ZGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQ2LDYgKzEzNDYsOCBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3VycmVudEJsb2NrCiAgICAgbV9zdHJlYW0t
PmFwcGVuZEFuZExvZyhWYXJpYWJsZUV2ZW50OjpyZXNldCgpKTsKICAgICAKICAgICBtX2ppdC5q
aXRBc3NlcnRIYXNWYWxpZENhbGxGcmFtZSgpOworICAgIG1faml0LmppdEFzc2VydFRhZ3NJblBs
YWNlKCk7CisgICAgbV9qaXQuaml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUoKTsKIAogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ibG9jay0+dmFyaWFibGVzQXRIZWFkLm51bWJlck9mQXJn
dW1lbnRzKCk7ICsraSkgewogICAgICAgICBtX3N0cmVhbS0+YXBwZW5kQW5kTG9nKApAQCAtMTUz
MiwxMCArMTUzNCw0MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FyZ3VtZW50VHlwZXMo
CiAgICAgbV9pc0NoZWNraW5nQXJndW1lbnRUeXBlcyA9IGZhbHNlOwogfQogCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpwcmVwYXJlSklUQ29kZUZvclRpZXJVcCgpCit7CisgICAgdW5zaWduZWQgbnVt
YmVyT2ZDYWxscyA9IDA7CisgICAgCisgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSBt
X2ppdC5ncmFwaCgpLm51bUJsb2NrcygpOyBibG9ja0luZGV4LS07KSB7CisgICAgICAgIEJhc2lj
QmxvY2sqIGJsb2NrID0gbV9qaXQuZ3JhcGgoKS5ibG9jayhibG9ja0luZGV4KTsKKyAgICAgICAg
aWYgKCFibG9jaykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBub2RlSW5kZXggPSBibG9jay0+c2l6ZSgpOyBub2RlSW5kZXgtLTspIHsKKyAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CisgICAgICAgICAgICBjYXNlIENh
bGw6CisgICAgICAgICAgICBjYXNlIENvbnN0cnVjdDoKKyAgICAgICAgICAgICAgICBudW1iZXJP
ZkNhbGxzKys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgfQorICAgIAorICAgIG1faml0LmppdENvZGUoKS0+c2xvd1BhdGhDYWxs
cy5maWxsKDAsIG51bWJlck9mQ2FsbHMpOworfQorCiBib29sIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKCkKIHsKICAgICBjaGVja0FyZ3VtZW50VHlwZXMoKTsKLQorICAgIAorICAgIGlmIChtX2pp
dC5ncmFwaCgpLm1fcGxhbi53aWxsVHJ5VG9UaWVyVXApCisgICAgICAgIHByZXBhcmVKSVRDb2Rl
Rm9yVGllclVwKCk7CisgICAgCiAgICAgQVNTRVJUKCFtX2N1cnJlbnROb2RlKTsKICAgICBmb3Ig
KEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IDA7IGJsb2NrSW5kZXggPCBtX2ppdC5ncmFwaCgpLm51
bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgpIHsKICAgICAgICAgbV9qaXQuc2V0Rm9yQmxvY2tJbmRl
eChibG9ja0luZGV4KTsKQEAgLTIzOTAsNiArMjQyMiwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlUHV0QnlWYWxGb3JJCiAgICAgQVNTRVJUKHZhbHVlR1BSICE9IGJhc2UpOwogICAg
IEFTU0VSVCh2YWx1ZUdQUiAhPSBzdG9yYWdlUmVnKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBvdXRPZkJvdW5kcyA9IGp1bXBGb3JUeXBlZEFycmF5T3V0T2ZCb3VuZHMobm9kZSwgYmFzZSwg
cHJvcGVydHkpOworICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzKCkgJiYgb3V0
T2ZCb3VuZHMuaXNTZXQoKSkgeworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRz
LCBKU1ZhbHVlU291cmNlKCksIDAsIG91dE9mQm91bmRzKTsKKyAgICAgICAgb3V0T2ZCb3VuZHMg
PSBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpOworICAgIH0KIAogICAgIHN3aXRjaCAoZWxlbWVudFNp
emUodHlwZSkpIHsKICAgICBjYXNlIDE6CkBAIC0yNDY1LDYgKzI1MDEsMTAgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yRgogICAgIEFTU0VSVF9VTlVTRUQoYmFzZVVz
ZSwgbm9kZS0+YXJyYXlNb2RlKCkuYWxyZWFkeUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwg
bV9zdGF0ZS5mb3JOb2RlKGJhc2VVc2UpKSk7CiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2Us
IHByb3BlcnR5KTsKKyAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpICYmIG91
dE9mQm91bmRzLmlzU2V0KCkpIHsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5k
cywgSlNWYWx1ZVNvdXJjZSgpLCAwLCBvdXRPZkJvdW5kcyk7CisgICAgICAgIG91dE9mQm91bmRz
ID0gTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKKyAgICB9CiAgICAgCiAgICAgc3dpdGNoIChlbGVt
ZW50U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgNDogewpAQCAtMzQyOSw2ICszNDY5LDE3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2QKICAgICAgICAgR1BSUmVnIHF1
b3RpZW50VGhlblJlbWFpbmRlckdQUiA9IHF1b3RpZW50VGhlblJlbWFpbmRlci5ncHIoKTsKICAg
ICAgICAgR1BSUmVnIG11bHRpcGx5QW5zd2VyR1BSID0gbXVsdGlwbHlBbnN3ZXIuZ3ByKCk7CiAK
KyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IGRvbmU7CisgICAgICAgIAorICAgICAgICBp
ZiAoc2hvdWxkQ2hlY2tPdmVyZmxvdyhub2RlLT5hcml0aE1vZGUoKSkpCisgICAgICAgICAgICBz
cGVjdWxhdGlvbkNoZWNrKE92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hU
ZXN0MzIoSklUQ29tcGlsZXI6Olplcm8sIGRpdmlzb3JHUFIpKTsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBkZW5vbWluYXRvck5vdFplcm8gPSBtX2ppdC5i
cmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Ok5vblplcm8sIGRpdmlzb3JHUFIpOworICAgICAgICAg
ICAgbV9qaXQubW92ZShkaXZpc29yR1BSLCBxdW90aWVudFRoZW5SZW1haW5kZXJHUFIpOworICAg
ICAgICAgICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKKyAgICAgICAgICAgIGRlbm9taW5h
dG9yTm90WmVyby5saW5rKCZtX2ppdCk7CisgICAgICAgIH0KKwogICAgICAgICBtX2ppdC5hc3Nl
bWJsZXIoKS5zZGl2KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgZGl2aWRlbmRHUFIsIGRpdmlz
b3JHUFIpOwogICAgICAgICAvLyBGSVhNRTogSXQgc2VlbXMgbGlrZSB0aGVyZSBhcmUgY2FzZXMg
d2hlcmUgd2UgZG9uJ3QgbmVlZCB0aGlzPyBXaGF0IGlmIHdlIGhhdmUKICAgICAgICAgLy8gYXJp
dGhNb2RlKCkgPT0gQXJpdGg6OlVuY2hlY2tlZD8KQEAgLTM0NDUsNiArMzQ5Niw4IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2QKICAgICAgICAgICAgIG51bWVyYXRv
clBvc2l0aXZlLmxpbmsoJm1faml0KTsKICAgICAgICAgfQogCisgICAgICAgIGRvbmUubGluaygm
bV9qaXQpOworICAgICAgICAKICAgICAgICAgaW50MzJSZXN1bHQocXVvdGllbnRUaGVuUmVtYWlu
ZGVyR1BSLCBub2RlKTsKICNlbGlmIENQVShBUk02NCkKICAgICAgICAgR1BSVGVtcG9yYXJ5IHRl
bXAodGhpcyk7CkBAIC0zNDU1LDYgKzM1MDgsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUFyaXRoTW9kKE5vZAogICAgICAgICBHUFJSZWcgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BS
ID0gcXVvdGllbnRUaGVuUmVtYWluZGVyLmdwcigpOwogICAgICAgICBHUFJSZWcgbXVsdGlwbHlB
bnN3ZXJHUFIgPSBtdWx0aXBseUFuc3dlci5ncHIoKTsKIAorICAgICAgICBKSVRDb21waWxlcjo6
SnVtcExpc3QgZG9uZTsKKyAgICAKKyAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3cobm9k
ZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdmVyZmxvdywg
SlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpaZXJvLCBk
aXZpc29yR1BSKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1
bXAgZGVub21pbmF0b3JOb3RaZXJvID0gbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpO
b25aZXJvLCBkaXZpc29yR1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUoZGl2aXNvckdQUiwg
cXVvdGllbnRUaGVuUmVtYWluZGVyR1BSKTsKKyAgICAgICAgICAgIGRvbmUuYXBwZW5kKG1faml0
Lmp1bXAoKSk7CisgICAgICAgICAgICBkZW5vbWluYXRvck5vdFplcm8ubGluaygmbV9qaXQpOwor
ICAgICAgICB9CisKICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuc2RpdjwzMj4ocXVvdGllbnRU
aGVuUmVtYWluZGVyR1BSLCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7CiAgICAgICAgIC8vIEZJ
WE1FOiBJdCBzZWVtcyBsaWtlIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB3ZSBkb24ndCBuZWVkIHRo
aXM/IFdoYXQgaWYgd2UgaGF2ZQogICAgICAgICAvLyBhcml0aE1vZGUoKSA9PSBBcml0aDo6VW5j
aGVja2VkPwpAQCAtMzQ3MSw2ICszNTM1LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUFyaXRoTW9kKE5vZAogICAgICAgICAgICAgbnVtZXJhdG9yUG9zaXRpdmUubGluaygmbV9qaXQp
OwogICAgICAgICB9CiAKKyAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CisKICAgICAgICAgaW50
MzJSZXN1bHQocXVvdGllbnRUaGVuUmVtYWluZGVyR1BSLCBub2RlKTsKICNlbHNlIC8vIG5vdCBh
cmNoaXRlY3R1cmUgdGhhdCBjYW4gZG8gaW50ZWdlciBkaXZpc2lvbgogICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTks
NiArMTE5LDkgQEAgcHVibGljOgogICAgIH5TcGVjdWxhdGl2ZUpJVCgpOwogCiAgICAgYm9vbCBj
b21waWxlKCk7CisgICAgCisgICAgdm9pZCBwcmVwYXJlSklUQ29kZUZvclRpZXJVcCgpOworICAg
IAogICAgIHZvaWQgY3JlYXRlT1NSRW50cmllcygpOwogICAgIHZvaWQgbGlua09TUkVudHJpZXMo
TGlua0J1ZmZlciYpOwogCkBAIC03NDIsNDQgKzc0NSw0NSBAQCBwdWJsaWM6CiAgICAgCiAgICAg
cHRyZGlmZl90IGNhbGxlZUZyYW1lT2Zmc2V0KGludCBudW1BcmdzKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKG1faml0LmdyYXBoKCkubV9uZXh0TWFjaGlu
ZUxvY2FsICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIG51bUFyZ3MpLm9mZnNldCgp
ICogc2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxv
Y2FsKG1faml0LmdyYXBoKCkubV9uZXh0TWFjaGluZUxvY2FsIC0gMSArIEpTU3RhY2s6OkNhbGxG
cmFtZUhlYWRlclNpemUgKyBudW1BcmdzKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3Rlcik7CiAg
ICAgfQogICAgIAogICAgIC8vIEFjY2VzcyB0byBvdXIgZml4ZWQgY2FsbGVlIENhbGxGcmFtZS4K
LSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVNsb3QoaW50IG51bUFyZ3Ms
IGludCBzbG90KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lU2xvdChp
bnQgc2xvdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgY2FsbGVlRnJhbWVPZmZzZXQobnVtQXJncykgKyBz
aXplb2YoUmVnaXN0ZXIpICogc2xvdCk7CisgICAgICAgIEFTU0VSVChzbG90ID49IEpTU3RhY2s6
OkNhbGxlckZyYW1lQW5kUENTaXplKTsKKyAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2l6ZW9mKFJlZ2lz
dGVyKSAqIChzbG90IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpKTsKICAgICB9CiAK
ICAgICAvLyBBY2Nlc3MgdG8gb3VyIGZpeGVkIGNhbGxlZSBDYWxsRnJhbWUuCi0gICAgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRTbG90KGludCBudW1BcmdzLCBpbnQgYXJn
dW1lbnQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRTbG90KGlu
dCBhcmd1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QobnVtQXJn
cywgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpLm9mZnNldCgpKTsKKyAgICAg
ICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1
bWVudCkub2Zmc2V0KCkpOwogICAgIH0KIAotICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNh
bGxlZUZyYW1lVGFnU2xvdChpbnQgbnVtQXJncywgaW50IHNsb3QpCisgICAgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVUYWdTbG90KGludCBzbG90KQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGNhbGxlZUZyYW1lU2xvdChudW1BcmdzLCBzbG90KS53aXRoT2Zmc2V0KE9CSkVDVF9P
RkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7CisgICAgICAgIHJl
dHVybiBjYWxsZWVGcmFtZVNsb3Qoc2xvdCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5j
b2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOwogICAgIH0KIAotICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoaW50IG51bUFyZ3MsIGludCBz
bG90KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3Qo
aW50IHNsb3QpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KG51bUFyZ3Ms
IHNsb3QpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3Is
IGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3Qoc2xvdCku
d2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRz
LnBheWxvYWQpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVB
cmd1bWVudFRhZ1Nsb3QoaW50IG51bUFyZ3MsIGludCBhcmd1bWVudCkKKyAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyBjYWxsZWVBcmd1bWVudFRhZ1Nsb3QoaW50IGFyZ3VtZW50KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBhcmd1bWVudCkud2l0
aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRh
ZykpOworICAgICAgICByZXR1cm4gY2FsbGVlQXJndW1lbnRTbG90KGFyZ3VtZW50KS53aXRoT2Zm
c2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7
CiAgICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRQYXls
b2FkU2xvdChpbnQgbnVtQXJncywgaW50IGFyZ3VtZW50KQorICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzIGNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3QoaW50IGFyZ3VtZW50KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBhcmd1bWVudCkud2l0aE9m
ZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxv
YWQpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChhcmd1bWVudCkud2l0aE9m
ZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxv
YWQpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZUNh
bGxlckZyYW1lKGludCBudW1BcmdzKQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxl
ZUZyYW1lQ2FsbGVyRnJhbWUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xv
dChudW1BcmdzLCAwKS53aXRoT2Zmc2V0KENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSk7
CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QoMCkud2l0aE9mZnNldChDYWxsRnJhbWU6
OmNhbGxlckZyYW1lT2Zmc2V0KCkpOwogICAgIH0KIAogICAgIHZvaWQgZW1pdENhbGwoTm9kZSop
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlv
blBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Rp
ZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00OSwyNyArNDksNTkgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgaWYg
KCFPcHRpb25zOjp1c2VFeHBlcmltZW50YWxGVEwoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLQorICAgICAgICAKKyAgICAgICAgaWYgKG1fZ3JhcGgubV9wcm9maWxlZEJsb2NrLT5tX2Rp
ZEZhaWxGVExDb21waWxhdGlvbikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAK
ICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgRlRMOjpDYXBhYmlsaXR5TGV2ZWwgbGV2ZWwg
PSBGVEw6OmNhbkNvbXBpbGUobV9ncmFwaCk7CiAgICAgICAgIGlmIChsZXZlbCA9PSBGVEw6OkNh
bm5vdENvbXBpbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAorICAgICAg
ICBpZiAoIU9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5VG9GVEwoKSkKKyAgICAgICAgICAgIGxldmVs
ID0gRlRMOjpDYW5Db21waWxlOworICAgICAgICAKICAgICAgICAgSW5zZXJ0aW9uU2V0IGluc2Vy
dGlvblNldChtX2dyYXBoKTsKICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSBt
X2dyYXBoLm51bUJsb2NrcygpOyBibG9ja0luZGV4LS07KSB7CiAgICAgICAgICAgICBCYXNpY0Js
b2NrKiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAgICAgICBpZiAo
IWJsb2NrKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCi0gICAgICAg
ICAgICBpZiAoYmxvY2stPmF0KDApLT5vcCgpID09IExvb3BIaW50KSB7Ci0gICAgICAgICAgICAg
ICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gYmxvY2stPmF0KDApLT5jb2RlT3JpZ2luOwotICAg
ICAgICAgICAgICAgIE5vZGVUeXBlIG5vZGVUeXBlOwotICAgICAgICAgICAgICAgIGlmIChsZXZl
bCA9PSBGVEw6OkNhbkNvbXBpbGVBbmRPU1JFbnRlciAmJiAhY29kZU9yaWdpbi5pbmxpbmVDYWxs
RnJhbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgbm9kZVR5cGUgPSBDaGVja1RpZXJVcEFuZE9T
UkVudGVyOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChibG9jay0+Ynl0ZWNv
ZGVCZWdpbiA9PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwotICAgICAgICAgICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgICAgICAgICBub2RlVHlwZSA9IENoZWNrVGllclVwSW5Mb29wOwot
ICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKDEsIFNwZWNOb25lLCBub2Rl
VHlwZSwgY29kZU9yaWdpbik7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG5vZGVJbmRleCA9
IDA7IG5vZGVJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsrbm9kZUluZGV4KSB7CisgICAgICAgICAg
ICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOworICAgICAgICAgICAgICAg
IGlmIChub2RlLT5vcCgpICE9IExvb3BIaW50KQorICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IHB1dCBPU1Ig
Y2hlY2tzIGZvciB0aGUgZmlyc3QgTG9vcEhpbnQgaW4gdGhlIGJsb2NrLiBOb3RlIHRoYXQKKyAg
ICAgICAgICAgICAgICAvLyBtb3JlIHRoYW4gb25lIExvb3BIaW50IGNvdWxkIGhhcHBlbiBpbiBj
YXNlcyB3aGVyZSB3ZSBkaWQgYSBsb3Qgb2YgQ0ZHCisgICAgICAgICAgICAgICAgLy8gc2ltcGxp
ZmljYXRpb24gaW4gdGhlIGJ5dGVjb2RlIHBhcnNlciwgYnV0IGl0IHNob3VsZCBiZSB2ZXJ5IHJh
cmUuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3Jp
Z2luID0gbm9kZS0+Y29kZU9yaWdpbjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBpZiAobGV2ZWwgIT0gRlRMOjpDYW5Db21waWxlQW5kT1NSRW50ZXIgfHwgY29kZU9yaWdpbi5p
bmxpbmVDYWxsRnJhbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2Vy
dE5vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXggKyAxLCBTcGVjTm9uZSwg
Q2hlY2tUaWVyVXBJbkxvb3AsIGNvZGVPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
Ym9vbCBpc0F0VG9wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHN1Yk5v
ZGVJbmRleCA9IG5vZGVJbmRleDsgc3ViTm9kZUluZGV4LS07KSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghYmxvY2stPmF0KHN1Yk5vZGVJbmRleCktPmlzU2VtYW50aWNhbGx5U2tpcHBhYmxl
KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzQXRUb3AgPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghaXNBdFRvcCkg
eworICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5vZGVJbmRleCArIDEsIFNwZWNOb25lLCBDaGVja1RpZXJVcEluTG9v
cCwgY29kZU9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChi
bG9jay0+Ynl0ZWNvZGVCZWdpbiA9PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOworICAgICAg
ICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAgICAgICBu
b2RlSW5kZXggKyAxLCBTcGVjTm9uZSwgQ2hlY2tUaWVyVXBBbmRPU1JFbnRlciwgY29kZU9yaWdp
bik7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLT5vcCgpID09IFJldHVybikgewpAQCAtODAs
NiArMTEyLDcgQEAgcHVibGljOgogICAgICAgICAgICAgaW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxv
Y2spOwogICAgICAgICB9CiAgICAgICAgIAorICAgICAgICBtX2dyYXBoLm1fcGxhbi53aWxsVHJ5
VG9UaWVyVXAgPSB0cnVlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlIC8vIEVOQUJMRShG
VExfSklUKQogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xODIsNiArMTgyLDE4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgIFZfRVFVQUwoKG5vZGUpLCBub2RlLT5yZWZDb3VudCgpLCAxKTsK
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDAgOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICAgICAgICAgIE5vZGUq
IG5vZGUgPSBibG9jay0+YXQoaSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUoKG5vZGUpLCAh
bm9kZS0+aXNUZXJtaW5hbCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KGkpOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIGlmIChub2RlLT5oYXNTdHJ1Y3R1cmUoKSkKKyAgICAgICAgICAgICAg
ICAgICAgVkFMSURBVEUoKG5vZGUpLCAhIW5vZGUtPnN0cnVjdHVyZSgpKTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX2dyYXBoLm1fZm9ybSkg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNjEsMjMgKzI2MSw1MiBAQCB2b2lkIFdvcmtsaXN0Ojp0aHJl
YWRGdW5jdGlvbih2b2lkKiBhcmd1CiAgICAgc3RhdGljX2Nhc3Q8V29ya2xpc3QqPihhcmd1bWVu
dCktPnJ1blRocmVhZCgpOwogfQogCi1zdGF0aWMgV29ya2xpc3QqIHRoZUdsb2JhbFdvcmtsaXN0
Oworc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxERkdXb3JrbGlzdDsKIAotV29ya2xpc3QqIGds
b2JhbFdvcmtsaXN0KCkKK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpCiB7CiAg
ICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFn
OwogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBb
XSB7Ci0gICAgICAgIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkczsKKyAgICAgICAgdGhlR2xvYmFs
REZHV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGls
ZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gdGhlR2xvYmFsREZH
V29ya2xpc3Q7Cit9CiAKLSAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUV4cGVyaW1lbnRhbEZUTCgp
KQotICAgICAgICAgICAgbnVtYmVyT2ZUaHJlYWRzID0gMTsgLy8gV2UgZG9uJ3QgeWV0IHVzZSBM
TFZNIGluIGEgdGhyZWFkLXNhZmUgd2F5LgotICAgICAgICBlbHNlCi0gICAgICAgICAgICBudW1i
ZXJPZlRocmVhZHMgPSBPcHRpb25zOjpudW1iZXJPZkNvbXBpbGVyVGhyZWFkcygpOworV29ya2xp
c3QqIGV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKQoreworICAgIHJldHVybiB0aGVH
bG9iYWxERkdXb3JrbGlzdDsKK30KIAotICAgICAgICB0aGVHbG9iYWxXb3JrbGlzdCA9IFdvcmts
aXN0OjpjcmVhdGUobnVtYmVyT2ZUaHJlYWRzKS5sZWFrUmVmKCk7CitzdGF0aWMgV29ya2xpc3Qq
IHRoZUdsb2JhbEZUTFdvcmtsaXN0OworCitXb3JrbGlzdCogZW5zdXJlR2xvYmFsRlRMV29ya2xp
c3QoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xp
c3RPbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RP
bmNlRmxhZywgW10geworICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9IFdvcmtsaXN0Ojpj
cmVhdGUoT3B0aW9uczo6bnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOwog
ICAgIH0pOworICAgIHJldHVybiB0aGVHbG9iYWxGVExXb3JrbGlzdDsKK30KKworV29ya2xpc3Qq
IGV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKQoreworICAgIHJldHVybiB0aGVHbG9i
YWxGVExXb3JrbGlzdDsKK30KIAotICAgIHJldHVybiB0aGVHbG9iYWxXb3JrbGlzdDsKK1dvcmts
aXN0KiBlbnN1cmVHbG9iYWxXb3JrbGlzdEZvcihDb21waWxhdGlvbk1vZGUgbW9kZSkKK3sKKyAg
ICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEludmFsaWRDb21waWxhdGlvbk1vZGU6CisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAg
IGNhc2UgREZHTW9kZToKKyAgICAgICAgcmV0dXJuIGVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KCk7
CisgICAgY2FzZSBGVExNb2RlOgorICAgIGNhc2UgRlRMRm9yT1NSRW50cnlNb2RlOgorICAgICAg
ICByZXR1cm4gZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKTsKKyAgICB9CisgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlz
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSwxMCArOTUsMTUgQEAgcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX251bWJlck9mQWN0aXZlVGhyZWFkczsKIH07CiAKLS8vIEZvciBub3cgd2UgdXNlIGEg
c2luZ2xlIGdsb2JhbCB3b3JrbGlzdC4gSXQncyBub3QgY2xlYXIgdGhhdCB0aGlzCi0vLyBpcyB0
aGUgcmlnaHQgdGhpbmcgdG8gZG8sIGJ1dCBpdCBpcyB3aGF0IHdlIGRvLCBmb3Igbm93LiBUaGlz
IGZ1bmN0aW9uCi0vLyB3aWxsIGxhemlseSBjcmVhdGUgb25lIHdoZW4gaXQncyBuZWVkZWQuCi1X
b3JrbGlzdCogZ2xvYmFsV29ya2xpc3QoKTsKKy8vIEZvciBERkdNb2RlIGNvbXBpbGF0aW9ucy4K
K1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpOworV29ya2xpc3QqIGV4aXN0aW5n
R2xvYmFsREZHV29ya2xpc3RPck51bGwoKTsKKworLy8gRm9yIEZUTE1vZGUgYW5kIEZUTEZvck9T
UkVudHJ5TW9kZSBjb21waWxhdGlvbnMuCitXb3JrbGlzdCogZW5zdXJlR2xvYmFsRlRMV29ya2xp
c3QoKTsKK1dvcmtsaXN0KiBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCk7CisKK1dv
cmtsaXN0KiBlbnN1cmVHbG9iYWxXb3JrbGlzdEZvcihDb21waWxhdGlvbk1vZGUpOwogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6REZHCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNh
c3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmNwcAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bj
b2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsOCBAQCBzdHJ1Y3QgT3Bjb2RlR3Jv
dXBJbml0aWFsaXplciB7CiB7IGdyb3VwSW5kZXgsIGdyb3VwQ2xhc3M6Om1hc2ssIGdyb3VwQ2xh
c3M6OnBhdHRlcm4sIGdyb3VwQ2xhc3M6OmZvcm1hdCB9CiAKIHN0YXRpYyBPcGNvZGVHcm91cElu
aXRpYWxpemVyIG9wY29kZUdyb3VwTGlzdFtdID0geworICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgw
eDA4LCBBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyKSwKKyAgICBPUENPREVfR1JPVVBf
RU5UUlkoMHgwOSwgQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciksCiAgICAgT1BDT0RF
X0dST1VQX0VOVFJZKDB4MGEsIEE2NERPcGNvZGVMb2dpY2FsU2hpZnRlZFJlZ2lzdGVyKSwKICAg
ICBPUENPREVfR1JPVVBfRU5UUlkoMHgwYiwgQTY0RE9wY29kZUFkZFN1YnRyYWN0RXh0ZW5kZWRS
ZWdpc3RlciksCiAgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MGIsIEE2NERPcGNvZGVBZGRTdWJ0
cmFjdFNoaWZ0ZWRSZWdpc3RlciksCkBAIC0xNzIsNiArMTc0LDExIEBAIGNvbnN0IGNoYXIqIEE2
NERPcGNvZGU6OmZvcm1hdCgpCiAKIHZvaWQgQTY0RE9wY29kZTo6YXBwZW5kUmVnaXN0ZXJOYW1l
KHVuc2lnbmVkIHJlZ2lzdGVyTnVtYmVyLCBib29sIGlzNjRCaXQpCiB7CisgICAgaWYgKHJlZ2lz
dGVyTnVtYmVyID09IDI5KSB7CisgICAgICAgIGJ1ZmZlclByaW50ZihpczY0Qml0ID8gImZwIiA6
ICJ3ZnAiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChyZWdpc3Rlck51bWJl
ciA9PSAzMCkgewogICAgICAgICBidWZmZXJQcmludGYoaXM2NEJpdCA/ICJsciIgOiAid2xyIik7
CiAgICAgICAgIHJldHVybjsKQEAgLTkzOSw2ICs5NDYsNjMgQEAgY29uc3QgY2hhciogQTY0RE9w
Y29kZUxvYWRTdG9yZVJlZ2lzdGVyTwogICAgIHJldHVybiBtX2Zvcm1hdEJ1ZmZlcjsKIH0KIAor
Y29uc3QgY2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpcjo6b3BOYW1lKCkKK3sK
KyAgICBpZiAoIXZCaXQoKSAmJiBsQml0KCkgJiYgc2l6ZSgpID09IDB4MSkKKyAgICAgICAgcmV0
dXJuICJsZHBzdyI7CisgICAgaWYgKGxCaXQoKSkKKyAgICAgICAgcmV0dXJuICJsZHAiOworICAg
IHJldHVybiAic3RwIjsKK30KKworY29uc3QgY2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lz
dGVyUGFpcjo6Zm9ybWF0KCkKK3sKKyAgICBjb25zdCBjaGFyKiB0aGlzT3BOYW1lID0gb3BOYW1l
KCk7CisgICAgCisgICAgaWYgKHNpemUoKSA9PSAweDMpCisgICAgICAgIHJldHVybiBBNjRET3Bj
b2RlOjpmb3JtYXQoKTsKKworICAgIGlmICgob2Zmc2V0TW9kZSgpIDwgMHgxKSB8fCAob2Zmc2V0
TW9kZSgpID4gMHgzKSkKKyAgICAgICAgcmV0dXJuIEE2NERPcGNvZGU6OmZvcm1hdCgpOworCisg
ICAgaWYgKChvZmZzZXRNb2RlKCkgPT0gMHgxKSAmJiAhdkJpdCgpICYmICFsQml0KCkpCisgICAg
ICAgIHJldHVybiBBNjRET3Bjb2RlOjpmb3JtYXQoKTsKKworICAgIGFwcGVuZEluc3RydWN0aW9u
TmFtZSh0aGlzT3BOYW1lKTsKKyAgICB1bnNpZ25lZCBvZmZzZXRTaGlmdDsKKyAgICBpZiAodkJp
dCgpKSB7CisgICAgICAgIGFwcGVuZEZQUmVnaXN0ZXJOYW1lKHJ0KCksIHNpemUoKSk7CisgICAg
ICAgIGFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICBhcHBlbmRGUFJlZ2lzdGVyTmFtZShydDIo
KSwgc2l6ZSgpKTsKKyAgICAgICAgb2Zmc2V0U2hpZnQgPSBzaXplKCkgKyAyOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGFwcGVuZFJlZ2lzdGVyTmFtZShydCgpLCBpczY0Qml0KCkpOworICAgICAg
ICBhcHBlbmRTZXBhcmF0b3IoKTsKKyAgICAgICAgYXBwZW5kUmVnaXN0ZXJOYW1lKHJ0MigpLCBp
czY0Qml0KCkpOworICAgICAgICBvZmZzZXRTaGlmdCA9IChzaXplKCkgPj4gMSkgKyAyOworICAg
IH0KKworICAgIGFwcGVuZFNlcGFyYXRvcigpOworICAgIGFwcGVuZENoYXJhY3RlcignWycpOwor
ICAgIGFwcGVuZFNQT3JSZWdpc3Rlck5hbWUocm4oKSk7CisKKyAgICBpbnQgb2Zmc2V0ID0gaW1t
ZWRpYXRlNygpIDw8IG9mZnNldFNoaWZ0OworCisgICAgaWYgKG9mZnNldE1vZGUoKSA9PSAxKSB7
CisgICAgICAgIGFwcGVuZENoYXJhY3RlcignXScpOworICAgICAgICBhcHBlbmRTZXBhcmF0b3Io
KTsKKyAgICAgICAgYXBwZW5kU2lnbmVkSW1tZWRpYXRlKG9mZnNldCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIGFwcGVuZFNpZ25lZEltbWVkaWF0
ZShvZmZzZXQpOworICAgICAgICBhcHBlbmRDaGFyYWN0ZXIoJ10nKTsKKyAgICAgICAgaWYgKG9m
ZnNldE1vZGUoKSA9PSAweDMpCisgICAgICAgICAgICBhcHBlbmRDaGFyYWN0ZXIoJyEnKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gbV9mb3JtYXRCdWZmZXI7Cit9CisKIGNvbnN0IGNoYXIqIEE2NERP
cGNvZGVMb2FkU3RvcmVVbnNpZ25lZEltbWVkaWF0ZTo6Zm9ybWF0KCkKIHsKICAgICBjb25zdCBj
aGFyKiB0aGlzT3BOYW1lID0gb3BOYW1lKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuaAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bj
b2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2NSw2ICs1NjUsMjIgQEAgcHVibGljOgogICAgIGlu
dCBzQml0KCkgeyByZXR1cm4gKG1fb3Bjb2RlID4+IDEyKSAmIDB4MTsgfQogfTsKIAorY2xhc3Mg
QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciA6IHB1YmxpYyBBNjRET3Bjb2RlTG9hZFN0
b3JlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4M2EwMDAw
MDA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDI4MDAwMDAwOworCisg
ICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciwg
dGhpc09iaik7CisKKyAgICBjb25zdCBjaGFyKiBmb3JtYXQoKTsKKyAgICBjb25zdCBjaGFyKiBv
cE5hbWUoKTsKKworICAgIHVuc2lnbmVkIHJ0MigpIHsgcmV0dXJuIChtX29wY29kZSA+PiAxMCkg
JiAweDFmOyB9CisgICAgaW50IGltbWVkaWF0ZTcoKSB7IHJldHVybiAoc3RhdGljX2Nhc3Q8aW50
PigobV9vcGNvZGUgPj4gMTUpICYgMHg3ZikgPDwgMjUpID4+IDI1OyB9CisgICAgdW5zaWduZWQg
b2Zmc2V0TW9kZSgpIHsgcmV0dXJuIChtX29wY29kZSA+PiAyMykgJiAweDc7IH0KKyAgICBpbnQg
bEJpdCgpIHsgcmV0dXJuIChtX29wY29kZSA+PiAyMikgJiAweDE7IH0KK307CisKIGNsYXNzIEE2
NERPcGNvZGVMb2FkU3RvcmVVbnNpZ25lZEltbWVkaWF0ZSA6IHB1YmxpYyBBNjRET3Bjb2RlTG9h
ZFN0b3JlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4M2Iw
MDAwMDA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFiYnJldmlhdGlvbnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFiYnJldmlhdGlv
bnMuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YmJyZXZpYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcgQEAgc3RhdGljIGlu
bGluZSBMVHlwZSBmbG9hdFR5cGUoTENvbnRleHQgYwogc3RhdGljIGlubGluZSBMVHlwZSBkb3Vi
bGVUeXBlKExDb250ZXh0IGNvbnRleHQpIHsgcmV0dXJuIGxsdm0tPkRvdWJsZVR5cGVJbkNvbnRl
eHQoY29udGV4dCk7IH0KIAogc3RhdGljIGlubGluZSBMVHlwZSBwb2ludGVyVHlwZShMVHlwZSB0
eXBlKSB7IHJldHVybiBsbHZtLT5Qb2ludGVyVHlwZSh0eXBlLCAwKTsgfQorc3RhdGljIGlubGlu
ZSBMVHlwZSBhcnJheVR5cGUoTFR5cGUgdHlwZSwgdW5zaWduZWQgY291bnQpIHsgcmV0dXJuIGxs
dm0tPkFycmF5VHlwZSh0eXBlLCBjb3VudCk7IH0KIHN0YXRpYyBpbmxpbmUgTFR5cGUgdmVjdG9y
VHlwZShMVHlwZSB0eXBlLCB1bnNpZ25lZCBjb3VudCkgeyByZXR1cm4gbGx2bS0+VmVjdG9yVHlw
ZSh0eXBlLCBjb3VudCk7IH0KIAogZW51bSBQYWNraW5nTW9kZSB7IE5vdFBhY2tlZCwgUGFja2Vk
IH07CkBAIC0xMzIsNiArMTMzLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldE1ldGFkYXRhKExW
YWx1ZSBpbgogc3RhdGljIGlubGluZSBMVmFsdWUgYWRkRnVuY3Rpb24oTE1vZHVsZSBtb2R1bGUs
IGNvbnN0IGNoYXIqIG5hbWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGxsdm0tPkFkZEZ1bmN0aW9u
KG1vZHVsZSwgbmFtZSwgdHlwZSk7IH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRMaW5rYWdlKExW
YWx1ZSBnbG9iYWwsIExMaW5rYWdlIGxpbmthZ2UpIHsgbGx2bS0+U2V0TGlua2FnZShnbG9iYWws
IGxpbmthZ2UpOyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0RnVuY3Rpb25DYWxsaW5nQ29udihM
VmFsdWUgZnVuY3Rpb24sIExDYWxsQ29udiBjb252ZW50aW9uKSB7IGxsdm0tPlNldEZ1bmN0aW9u
Q2FsbENvbnYoZnVuY3Rpb24sIGNvbnZlbnRpb24pOyB9CitzdGF0aWMgaW5saW5lIHZvaWQgYWRk
VGFyZ2V0RGVwZW5kZW50RnVuY3Rpb25BdHRyKExWYWx1ZSBmdW5jdGlvbiwgY29uc3QgY2hhciog
a2V5LCBjb25zdCBjaGFyKiB2YWx1ZSkgeyBsbHZtLT5BZGRUYXJnZXREZXBlbmRlbnRGdW5jdGlv
bkF0dHIoZnVuY3Rpb24sIGtleSwgdmFsdWUpOyB9CiAKIHN0YXRpYyBpbmxpbmUgTFZhbHVlIGFk
ZEV4dGVybkZ1bmN0aW9uKExNb2R1bGUgbW9kdWxlLCBjb25zdCBjaGFyKiBuYW1lLCBMVHlwZSB0
eXBlKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RI
ZWFwLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExBYnN0cmFjdEhlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw5ICs1MywxMCBAQCB2b2lk
IEFic3RyYWN0SGVhcDo6ZGVjb3JhdGVJbnN0cnVjdGlvbihMCiAgICAgc2V0TWV0YWRhdGEoaW5z
dHJ1Y3Rpb24sIHJlcG9zaXRvcnkubV90YmFhS2luZCwgdGJhYU1ldGFkYXRhKHJlcG9zaXRvcnkp
KTsKIH0KIAotSW5kZXhlZEFic3RyYWN0SGVhcDo6SW5kZXhlZEFic3RyYWN0SGVhcChMQ29udGV4
dCBjb250ZXh0LCBBYnN0cmFjdEhlYXAqIHBhcmVudCwgY29uc3QgY2hhciogaGVhcE5hbWUsIHNp
emVfdCBlbGVtZW50U2l6ZSkKK0luZGV4ZWRBYnN0cmFjdEhlYXA6OkluZGV4ZWRBYnN0cmFjdEhl
YXAoTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIqIGhl
YXBOYW1lLCBwdHJkaWZmX3Qgb2Zmc2V0LCBzaXplX3QgZWxlbWVudFNpemUpCiAgICAgOiBtX2hl
YXBGb3JBbnlJbmRleChwYXJlbnQsIGhlYXBOYW1lKQogICAgICwgbV9oZWFwTmFtZUxlbmd0aChz
dHJsZW4oaGVhcE5hbWUpKQorICAgICwgbV9vZmZzZXQob2Zmc2V0KQogICAgICwgbV9lbGVtZW50
U2l6ZShlbGVtZW50U2l6ZSkKICAgICAsIG1fc2NhbGVUZXJtKDApCiAgICAgLCBtX2NhblNoaWZ0
KGZhbHNlKQpAQCAtOTMsNyArOTQsNyBAQCBUeXBlZFBvaW50ZXIgSW5kZXhlZEFic3RyYWN0SGVh
cDo6YmFzZUluCiAgICAgfSBlbHNlCiAgICAgICAgIHJlc3VsdCA9IG91dC5hZGQoYmFzZSwgb3V0
Lm11bChpbmRleCwgbV9zY2FsZVRlcm0pKTsKICAgICAKLSAgICByZXR1cm4gVHlwZWRQb2ludGVy
KGF0QW55SW5kZXgoKSwgb3V0LmFkZFB0cihyZXN1bHQsIG9mZnNldCkpOworICAgIHJldHVybiBU
eXBlZFBvaW50ZXIoYXRBbnlJbmRleCgpLCBvdXQuYWRkUHRyKHJlc3VsdCwgbV9vZmZzZXQgKyBv
ZmZzZXQpKTsKIH0KIAogY29uc3QgQWJzdHJhY3RGaWVsZCYgSW5kZXhlZEFic3RyYWN0SGVhcDo6
YXRTbG93KHB0cmRpZmZfdCBpbmRleCkKQEAgLTE2OCwxNiArMTY5LDE1IEBAIHZvaWQgSW5kZXhl
ZEFic3RyYWN0SGVhcDo6aW5pdGlhbGl6ZShBYnMKICAgICAgICAgICAgIGFjY3VtdWxhdG9yID4+
PSA0OwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBmaWVsZC5pbml0aWFsaXplKCZtX2hl
YXBGb3JBbnlJbmRleCwgY2hhcmFjdGVycywgc2lnbmVkSW5kZXggKiBtX2VsZW1lbnRTaXplKTsK
KyAgICAgICAgZmllbGQuaW5pdGlhbGl6ZSgmbV9oZWFwRm9yQW55SW5kZXgsIGNoYXJhY3RlcnMs
IG1fb2Zmc2V0ICsgc2lnbmVkSW5kZXggKiBtX2VsZW1lbnRTaXplKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1O
dW1iZXJlZEFic3RyYWN0SGVhcDo6TnVtYmVyZWRBYnN0cmFjdEhlYXAoCi0gICAgTENvbnRleHQg
Y29udGV4dCwgQWJzdHJhY3RIZWFwKiBoZWFwLCBjb25zdCBjaGFyKiBoZWFwTmFtZSkKLSAgICA6
IG1faW5kZXhlZEhlYXAoY29udGV4dCwgaGVhcCwgaGVhcE5hbWUsIDEpCitOdW1iZXJlZEFic3Ry
YWN0SGVhcDo6TnVtYmVyZWRBYnN0cmFjdEhlYXAoTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RI
ZWFwKiBoZWFwLCBjb25zdCBjaGFyKiBoZWFwTmFtZSkKKyAgICA6IG1faW5kZXhlZEhlYXAoY29u
dGV4dCwgaGVhcCwgaGVhcE5hbWUsIDAsIDEpCiB7CiB9CiAKQEAgLTE4NSw5ICsxODUsOCBAQCBO
dW1iZXJlZEFic3RyYWN0SGVhcDo6fk51bWJlcmVkQWJzdHJhY3RICiB7CiB9CiAKLUFic29sdXRl
QWJzdHJhY3RIZWFwOjpBYnNvbHV0ZUFic3RyYWN0SGVhcCgKLSAgICBMQ29udGV4dCBjb250ZXh0
LCBBYnN0cmFjdEhlYXAqIGhlYXAsIGNvbnN0IGNoYXIqIGhlYXBOYW1lKQotICAgIDogbV9pbmRl
eGVkSGVhcChjb250ZXh0LCBoZWFwLCBoZWFwTmFtZSwgMSkKK0Fic29sdXRlQWJzdHJhY3RIZWFw
OjpBYnNvbHV0ZUFic3RyYWN0SGVhcChMQ29udGV4dCBjb250ZXh0LCBBYnN0cmFjdEhlYXAqIGhl
YXAsIGNvbnN0IGNoYXIqIGhlYXBOYW1lKQorICAgIDogbV9pbmRleGVkSGVhcChjb250ZXh0LCBo
ZWFwLCBoZWFwTmFtZSwgMCwgMSkKIHsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzks
NyArMTM5LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgSW5kZXhlZEFic3RyYWN0SGVhcCB7CiBwdWJs
aWM6Ci0gICAgSW5kZXhlZEFic3RyYWN0SGVhcChMQ29udGV4dCwgQWJzdHJhY3RIZWFwKiBwYXJl
bnQsIGNvbnN0IGNoYXIqIGhlYXBOYW1lLCBzaXplX3QgZWxlbWVudFNpemUpOworICAgIEluZGV4
ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQsIEFic3RyYWN0SGVhcCogcGFyZW50LCBjb25zdCBjaGFy
KiBoZWFwTmFtZSwgcHRyZGlmZl90IG9mZnNldCwgc2l6ZV90IGVsZW1lbnRTaXplKTsKICAgICB+
SW5kZXhlZEFic3RyYWN0SGVhcCgpOwogICAgIAogICAgIGNvbnN0IEFic3RyYWN0SGVhcCYgYXRB
bnlJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faGVhcEZvckFueUluZGV4OyB9CkBAIC0xNjgsNiAr
MTY4LDcgQEAgcHJpdmF0ZToKIAogICAgIEFic3RyYWN0SGVhcCBtX2hlYXBGb3JBbnlJbmRleDsK
ICAgICBzaXplX3QgbV9oZWFwTmFtZUxlbmd0aDsKKyAgICBwdHJkaWZmX3QgbV9vZmZzZXQ7CiAg
ICAgc2l6ZV90IG1fZWxlbWVudFNpemU7CiAgICAgTFZhbHVlIG1fc2NhbGVUZXJtOwogICAgIGJv
b2wgbV9jYW5TaGlmdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpB
YnN0cmFjdEhlYXBSZXBvCiAgICAgCiAgICAgLCBKU0NlbGxfZnJlZUxpc3ROZXh0KEpTQ2VsbF9z
dHJ1Y3R1cmUpCiAgICAgCi0jZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVBUF9JTklUSUFMSVpB
VElPTihuYW1lLCBzaXplKSAsIG5hbWUoY29udGV4dCwgJnJvb3QsICNuYW1lLCBzaXplKQorI2Rl
ZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElBTElaQVRJT04obmFtZSwgb2Zmc2V0LCBz
aXplKSAsIG5hbWUoY29udGV4dCwgJnJvb3QsICNuYW1lLCBvZmZzZXQsIHNpemUpCiAgICAgRk9S
X0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKElOREVYRURfQUJTVFJBQ1RfSEVBUF9JTklUSUFM
SVpBVElPTikKICN1bmRlZiBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElBTElaQVRJT04KICAg
ICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAkod29ya2luZyBjb3B5KQpAQCAt
NDgsMTEgKzQ4LDE1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNy
byhKU0FycmF5QnVmZmVyVmlld19tb2RlLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZNb2Rl
KCkpIFwKICAgICBtYWNybyhKU0FycmF5QnVmZmVyVmlld192ZWN0b3IsIEpTQXJyYXlCdWZmZXJW
aWV3OjpvZmZzZXRPZlZlY3RvcigpKSBcCiAgICAgbWFjcm8oSlNDZWxsX3N0cnVjdHVyZSwgSlND
ZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSkgXAorICAgIG1hY3JvKEpTRnVuY3Rpb25fZXhlY3V0YWJs
ZSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpIFwKKyAgICBtYWNybyhKU0Z1bmN0
aW9uX3Njb3BlLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNjb3BlQ2hhaW4oKSkgXAogICAgIG1hY3Jv
KEpTT2JqZWN0X2J1dHRlcmZseSwgSlNPYmplY3Q6OmJ1dHRlcmZseU9mZnNldCgpKSBcCiAgICAg
bWFjcm8oSlNTY29wZV9uZXh0LCBKU1Njb3BlOjpvZmZzZXRPZk5leHQoKSkgXAorICAgIG1hY3Jv
KEpTU3RyaW5nX2ZsYWdzLCBKU1N0cmluZzo6b2Zmc2V0T2ZGbGFncygpKSBcCiAgICAgbWFjcm8o
SlNTdHJpbmdfbGVuZ3RoLCBKU1N0cmluZzo6b2Zmc2V0T2ZMZW5ndGgoKSkgXAogICAgIG1hY3Jv
KEpTU3RyaW5nX3ZhbHVlLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSBcCiAgICAgbWFjcm8o
SlNWYXJpYWJsZU9iamVjdF9yZWdpc3RlcnMsIEpTVmFyaWFibGVPYmplY3Q6Om9mZnNldE9mUmVn
aXN0ZXJzKCkpIFwKKyAgICBtYWNybyhKU1dyYXBwZXJPYmplY3RfaW50ZXJuYWxWYWx1ZSwgSlNX
cmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkpIFwKICAgICBtYWNybyhNYXJrZWRB
bGxvY2F0b3JfZnJlZUxpc3RIZWFkLCBNYXJrZWRBbGxvY2F0b3I6Om9mZnNldE9mRnJlZUxpc3RI
ZWFkKCkpIFwKICAgICBtYWNybyhNYXJrZWRCbG9ja19tYXJrQml0cywgTWFya2VkQmxvY2s6Om9m
ZnNldE9mTWFya3MoKSkgXAogICAgIG1hY3JvKFN0cmluZ0ltcGxfZGF0YSwgU3RyaW5nSW1wbDo6
ZGF0YU9mZnNldCgpKSBcCkBAIC02NCwxNCArNjgsMTUgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV90eXBlSW5mb1R5cGUsIFN0cnVjdHVyZTo6
dHlwZUluZm9UeXBlT2Zmc2V0KCkpCiAKICNkZWZpbmUgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFD
VF9IRUFQKG1hY3JvKSBcCi0gICAgbWFjcm8oY2hhcmFjdGVyczgsIHNpemVvZihMQ2hhcikpIFwK
LSAgICBtYWNybyhjaGFyYWN0ZXJzMTYsIHNpemVvZihVQ2hhcikpIFwKLSAgICBtYWNybyhpbmRl
eGVkSW50MzJQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCi0gICAgbWFjcm8o
aW5kZXhlZERvdWJsZVByb3BlcnRpZXMsIHNpemVvZihkb3VibGUpKSBcCi0gICAgbWFjcm8oaW5k
ZXhlZENvbnRpZ3VvdXNQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCi0gICAg
bWFjcm8oaW5kZXhlZEFycmF5U3RvcmFnZVByb3BlcnRpZXMsIHNpemVvZihFbmNvZGVkSlNWYWx1
ZSkpIFwKLSAgICBtYWNybyhzaW5nbGVDaGFyYWN0ZXJTdHJpbmdzLCBzaXplb2YoSlNTdHJpbmcq
KSkgXAotICAgIG1hY3JvKHZhcmlhYmxlcywgc2l6ZW9mKFJlZ2lzdGVyKSkKKyAgICBtYWNybyhK
U1JvcGVTdHJpbmdfZmliZXJzLCBKU1JvcGVTdHJpbmc6Om9mZnNldE9mRmliZXJzKCksIHNpemVv
ZihXcml0ZUJhcnJpZXI8SlNTdHJpbmc+KSkgXAorICAgIG1hY3JvKGNoYXJhY3RlcnM4LCAwLCBz
aXplb2YoTENoYXIpKSBcCisgICAgbWFjcm8oY2hhcmFjdGVyczE2LCAwLCBzaXplb2YoVUNoYXIp
KSBcCisgICAgbWFjcm8oaW5kZXhlZEludDMyUHJvcGVydGllcywgMCwgc2l6ZW9mKEVuY29kZWRK
U1ZhbHVlKSkgXAorICAgIG1hY3JvKGluZGV4ZWREb3VibGVQcm9wZXJ0aWVzLCAwLCBzaXplb2Yo
ZG91YmxlKSkgXAorICAgIG1hY3JvKGluZGV4ZWRDb250aWd1b3VzUHJvcGVydGllcywgMCwgc2l6
ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKGluZGV4ZWRBcnJheVN0b3JhZ2VQcm9w
ZXJ0aWVzLCAwLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCisgICAgbWFjcm8oc2luZ2xlQ2hh
cmFjdGVyU3RyaW5ncywgMCwgc2l6ZW9mKEpTU3RyaW5nKikpIFwKKyAgICBtYWNybyh2YXJpYWJs
ZXMsIDAsIHNpemVvZihSZWdpc3RlcikpCiAgICAgCiAjZGVmaW5lIEZPUl9FQUNIX05VTUJFUkVE
X0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhwcm9wZXJ0aWVzKQpAQCAtOTcsNyAr
MTAyLDcgQEAgcHVibGljOgogICAgIAogICAgIEFic3RyYWN0RmllbGQmIEpTQ2VsbF9mcmVlTGlz
dE5leHQ7CiAgICAgCi0jZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElPTihu
YW1lLCBzaXplKSBJbmRleGVkQWJzdHJhY3RIZWFwIG5hbWU7CisjZGVmaW5lIElOREVYRURfQUJT
VFJBQ1RfSEVBUF9ERUNMQVJBVElPTihuYW1lLCBvZmZzZXQsIHNpemUpIEluZGV4ZWRBYnN0cmFj
dEhlYXAgbmFtZTsKICAgICBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAoSU5ERVhFRF9B
QlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9OKQogI3VuZGVmIElOREVYRURfQUJTVFJBQ1RfSEVBUF9E
RUNMQVJBVElPTgogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBdmFp
bGFibGVSZWNvdmVyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExBdmFpbGFibGVSZWNvdmVyeS5o
IgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRM
IHsKKwordm9pZCBBdmFpbGFibGVSZWNvdmVyeTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25z
dAoreworICAgIG91dC5wcmludChub2RlKCksICIgPT4gIiwgb3Bjb2RlKCksICIsICIsIFJhd1Bv
aW50ZXIobV9sZWZ0KSwgIiwgIiwgUmF3UG9pbnRlcihtX3JpZ2h0KSwgIiwgIiwgbV9mb3JtYXQp
OworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRM
X0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNv
dmVyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxh
YmxlUmVjb3ZlcnkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQXZhaWxhYmxlUmVjb3ZlcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRlRM
QXZhaWxhYmxlUmVjb3ZlcnlfaAorI2RlZmluZSBGVExBdmFpbGFibGVSZWNvdmVyeV9oCisKKyNp
ZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkRGR05vZGUuaCIKKyNpbmNsdWRlICJGVExB
YmJyZXZpYXRlZFR5cGVzLmgiCisjaW5jbHVkZSAiRlRMUmVjb3ZlcnlPcGNvZGUuaCIKKyNpbmNs
dWRlICJGVExWYWx1ZUZvcm1hdC5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7
CisKK2NsYXNzIEF2YWlsYWJsZVJlY292ZXJ5IHsKK3B1YmxpYzoKKyAgICBBdmFpbGFibGVSZWNv
dmVyeSgpCisgICAgICAgIDogbV9ub2RlKDApCisgICAgICAgICwgbV9mb3JtYXQoSW52YWxpZFZh
bHVlRm9ybWF0KQorICAgICAgICAsIG1fb3Bjb2RlKEFkZFJlY292ZXJ5KQorICAgICAgICAsIG1f
bGVmdCgwKQorICAgICAgICAsIG1fcmlnaHQoMCkKKyAgICB7CisgICAgfQorICAgIAorICAgIEF2
YWlsYWJsZVJlY292ZXJ5KERGRzo6Tm9kZSogbm9kZSwgUmVjb3ZlcnlPcGNvZGUgb3Bjb2RlLCBM
VmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0LCBWYWx1ZUZvcm1hdCBmb3JtYXQpCisgICAgICAgIDog
bV9ub2RlKG5vZGUpCisgICAgICAgICwgbV9mb3JtYXQoZm9ybWF0KQorICAgICAgICAsIG1fb3Bj
b2RlKG9wY29kZSkKKyAgICAgICAgLCBtX2xlZnQobGVmdCkKKyAgICAgICAgLCBtX3JpZ2h0KHJp
Z2h0KQorICAgIHsKKyAgICB9CisgICAgCisgICAgREZHOjpOb2RlKiBub2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9ub2RlOyB9CisgICAgVmFsdWVGb3JtYXQgZm9ybWF0KCkgY29uc3QgeyByZXR1cm4g
bV9mb3JtYXQ7IH0KKyAgICBSZWNvdmVyeU9wY29kZSBvcGNvZGUoKSBjb25zdCB7IHJldHVybiBt
X29wY29kZTsgfQorICAgIExWYWx1ZSBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9Cisg
ICAgTFZhbHVlIHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yaWdodDsgfQorICAgIAorICAgIHZv
aWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OworICAgIAorcHJpdmF0ZToKKyAgICBERkc6Ok5v
ZGUqIG1fbm9kZTsKKyAgICBWYWx1ZUZvcm1hdCBtX2Zvcm1hdDsKKyAgICBSZWNvdmVyeU9wY29k
ZSBtX29wY29kZTsKKyAgICBMVmFsdWUgbV9sZWZ0OworICAgIExWYWx1ZSBtX3JpZ2h0OworfTsK
KworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQp
CisKKyNlbmRpZiAvLyBGVExBdmFpbGFibGVSZWNvdmVyeV9oCisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNiArMzIsMTEgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwg
ewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwogCitzdGF0aWMgYm9vbCB2ZXJib3NlQ2FwYWJpbGl0
aWVzKCkKK3sKKyAgICByZXR1cm4gdmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpIHx8IE9wdGlv
bnM6OnZlcmJvc2VGVExGYWlsdXJlKCk7Cit9CisKIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2Fu
Q29tcGlsZShOb2RlKiBub2RlKQogewogICAgIC8vIE5PVEU6IElmIHdlIGV2ZXIgaGF2ZSBwaGFu
dG9tIGFyZ3VtZW50cywgd2UgY2FuIGNvbXBpbGUgdGhlbSBidXQgd2UgY2Fubm90CkBAIC03Nyw2
ICs4Miw5IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiAKICAgICBj
YXNlIEFyaXRoTWluOgogICAgIGNhc2UgQXJpdGhNYXg6CiAgICAgY2FzZSBBcml0aEFiczoKKyAg
ICBjYXNlIEFyaXRoU2luOgorICAgIGNhc2UgQXJpdGhDb3M6CisgICAgY2FzZSBBcml0aFNxcnQ6
CiAgICAgY2FzZSBBcml0aE5lZ2F0ZToKICAgICBjYXNlIFVJbnQzMlRvTnVtYmVyOgogICAgIGNh
c2UgSW50MzJUb0RvdWJsZToKQEAgLTg4LDggKzk2LDYgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZl
bCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNhc2UgVXBzaWxvbjoKICAgICBjYXNlIEV4dHJhY3RP
U1JFbnRyeUxvY2FsOgogICAgIGNhc2UgTG9vcEhpbnQ6Ci0gICAgY2FzZSBDYWxsOgotICAgIGNh
c2UgQ29uc3RydWN0OgogICAgIGNhc2UgR2V0TXlTY29wZToKICAgICBjYXNlIFNraXBTY29wZToK
ICAgICBjYXNlIEdldENsb3N1cmVSZWdpc3RlcnM6CkBAIC0xMDgsMTUgKzExNCwyNyBAQCBpbmxp
bmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogCiAgICAgY2FzZSBTdG9yZUJhcnJp
ZXI6CiAgICAgY2FzZSBDb25kaXRpb25hbFN0b3JlQmFycmllcjoKICAgICBjYXNlIFN0b3JlQmFy
cmllcldpdGhOdWxsQ2hlY2s6CisgICAgY2FzZSBDYWxsOgorICAgIGNhc2UgQ29uc3RydWN0Ogog
ICAgIGNhc2UgVmFsdWVUb0ludDMyOgogICAgIGNhc2UgQnJhbmNoOgogICAgIGNhc2UgTG9naWNh
bE5vdDoKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6CiAgICAgY2FzZSBDb25zdGFudFN0b3JhZ2VQ
b2ludGVyOgogICAgIGNhc2UgQ2hlY2s6CisgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKKyAgICBj
YXNlIENoZWNrRXhlY3V0YWJsZToKKyAgICBjYXNlIEdldFNjb3BlOgorICAgIGNhc2UgQWxsb2Nh
dGlvblByb2ZpbGVXYXRjaHBvaW50OgorICAgIGNhc2UgQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVk
OgorICAgIGNhc2UgR2V0Q2FsbGVlOgorICAgIGNhc2UgVG9TdHJpbmc6CisgICAgY2FzZSBNYWtl
Um9wZToKKyAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6CiAgICAgICAgIC8vIFRoZXNlIGFyZSBP
Sy4KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZXRCeUlkOgorICAgIGNhc2UgUHV0QnlJZERp
cmVjdDoKICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VL
aW5kKCkgPT0gQ2VsbFVzZSkKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjM3LDggKzI1NSwxNyBA
QCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogCiBDYXBhYmlsaXR5TGV2
ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3JhcGgpCiB7CiAgICAgaWYgKGdyYXBoLm1fY29kZUJsb2Nr
LT5jb2RlVHlwZSgpICE9IEZ1bmN0aW9uQ29kZSkgewotICAgICAgICBpZiAodmVyYm9zZUNvbXBp
bGF0aW9uRW5hYmxlZCgpKQotICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyBjb2Rl
IGJsb2NrIHRoYXQgZG9lc24ndCBiZWxvbmcgdG8gYSBmdW5jdGlvbi5cbiIpOworICAgICAgICBp
ZiAodmVyYm9zZUNhcGFiaWxpdGllcygpKQorICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVj
dGluZyAiLCAqZ3JhcGgubV9jb2RlQmxvY2ssICIgYmVjYXVzZSBpdCBkb2Vzbid0IGJlbG9uZyB0
byBhIGZ1bmN0aW9uLlxuIik7CisgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOworICAgIH0K
KyAgICAKKyAgICBpZiAoZ3JhcGgubV9jb2RlQmxvY2stPm5lZWRzQWN0aXZhdGlvbigpKSB7Cisg
ICAgICAgIC8vIE5lZWQgdGhpcyBiZWNhdXNlIGFsdGhvdWdoIHdlIGFsc28gZG9uJ3Qgc3VwcG9y
dAorICAgICAgICAvLyBDcmVhdGVBY3RpdmF0aW9uL1RlYXJPZmZBY3RpdmF0aW9uLCB3ZSBtaWdo
dCBub3Qgc2VlIHRob3NlIG5vZGVzIGluIGNhc2Ugb2YKKyAgICAgICAgLy8gT1NSIGVudHJ5Lgor
ICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxpdGllcygpKQorICAgICAgICAgICAgZGF0YUxvZygi
RlRMIHJlamVjdGluZyAiLCAqZ3JhcGgubV9jb2RlQmxvY2ssICIgYmVjYXVzZSBpdCB1c2VzIGFj
dGl2YXRpb25zLlxuIik7CiAgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwogICAgIH0KICAg
ICAKQEAgLTI3NCwxMyArMzAxLDE3IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBo
JiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIE9iamVjdFVzZToKICAgICAgICAgICAgICAg
ICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdVc2U6
CisgICAgICAgICAgICAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKKyAgICAgICAgICAgICAgICBj
YXNlIFN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIFN0cmluZ09yU3RyaW5n
T2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgRmluYWxPYmplY3RVc2U6CisgICAgICAg
ICAgICAgICAgY2FzZSBOb3RDZWxsVXNlOgogICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBh
cmUgT0suCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGtub3cgaG93IHRvIGhhbmRsZSBhbnl0
aGluZyBlbHNlLgotICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5h
YmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5n
IG5vZGUgYmVjYXVzZSBvZiBiYWQgdXNlIGtpbmQ6ICIsIGVkZ2UudXNlS2luZCgpLCAiIGluIG5v
ZGU6XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2VDYXBhYmlsaXRpZXMoKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyBub2RlIGlu
ICIsICpncmFwaC5tX2NvZGVCbG9jaywgIiBiZWNhdXNlIG9mIGJhZCB1c2Uga2luZDogIiwgZWRn
ZS51c2VLaW5kKCksICIgaW4gbm9kZTpcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgZ3Jh
cGguZHVtcChXVEY6OmRhdGFGaWxlKCksICIgICAgIiwgbm9kZSk7CiAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CkBAIC0yODks
OCArMzIwLDggQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBzd2l0Y2ggKGNhbkNvbXBpbGUobm9kZSkpIHsKICAgICAg
ICAgICAgIGNhc2UgQ2Fubm90Q29tcGlsZTogCi0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2VD
b21waWxhdGlvbkVuYWJsZWQoKSkgewotICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJGVEwg
cmVqZWN0aW5nIG5vZGU6XG4iKTsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxp
dGllcygpKSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3Rpbmcgbm9k
ZSBpbiAiLCAqZ3JhcGgubV9jb2RlQmxvY2ssICI6XG4iKTsKICAgICAgICAgICAgICAgICAgICAg
Z3JhcGguZHVtcChXVEY6OmRhdGFGaWxlKCksICIgICAgIiwgbm9kZSk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21tb25WYWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmNwcAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21tb25WYWx1ZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC02MSw2ICs2MSw4IEBAIENvbW1vblZhbHVlczo6Q29tbW9uVmFsdWVzKExD
b250ZXh0IGNvbnQKICAgICAsIGludFB0ckVpZ2h0KGNvbnN0SW50KGludFB0ciwgOCwgU2lnbkV4
dGVuZCkpCiAgICAgLCBpbnRQdHJQdHIoY29uc3RJbnQoaW50UHRyLCBzaXplb2Yodm9pZCopLCBT
aWduRXh0ZW5kKSkKICAgICAsIGRvdWJsZVplcm8oY29uc3RSZWFsKGRvdWJsZVR5cGUsIDApKQor
ICAgICwgcmFuZ2VLaW5kKG1kS2luZElEKGNvbnRleHQsICJyYW5nZSIpKQorICAgICwgbm9uTmVn
YXRpdmVJbnQzMihjb25zdEludChpbnQzMiwgMCwgU2lnbkV4dGVuZCksIGNvbnN0SW50KGludDMy
LCAxbGwgPDwgMzEsIFNpZ25FeHRlbmQpKQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAg
LCBtX21vZHVsZSgwKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21t
b25WYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENv
bW1vblZhbHVlcy5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENvbW1vblZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw2ICszMSw3IEBACiAjaWYg
RU5BQkxFKEZUTF9KSVQpCiAKICNpbmNsdWRlICJGVExBYmJyZXZpYXRpb25zLmgiCisjaW5jbHVk
ZSAiRlRMVmFsdWVSYW5nZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAK
QEAgLTc0LDYgKzc1LDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBMVmFsdWUgaW50UHRyUHRyOwog
ICAgIGNvbnN0IExWYWx1ZSBkb3VibGVaZXJvOwogICAgIAorICAgIGNvbnN0IHVuc2lnbmVkIHJh
bmdlS2luZDsKKyAgICAKKyAgICBjb25zdCBWYWx1ZVJhbmdlIG5vbk5lZ2F0aXZlSW50MzI7Cisg
ICAgCiAgICAgTENvbnRleHQgY29uc3QgbV9jb250ZXh0OwogICAgIExNb2R1bGUgbV9tb2R1bGU7
CiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRlRMSW5saW5lQ2FjaGVT
aXplLmgiCiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgogI2luY2x1ZGUgIkZUTFRodW5rcy5oIgor
I2luY2x1ZGUgIkZUTFVud2luZEluZm8uaCIKICNpbmNsdWRlICJKSVRTdHVicy5oIgogI2luY2x1
ZGUgIkxMVk1BUEkuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCkBAIC00OSw3ICs1MCw2IEBA
IHVzaW5nIG5hbWVzcGFjZSBERkc7CiBzdGF0aWMgdWludDhfdCogbW1BbGxvY2F0ZUNvZGVTZWN0
aW9uKAogICAgIHZvaWQqIG9wYXF1ZVN0YXRlLCB1aW50cHRyX3Qgc2l6ZSwgdW5zaWduZWQgYWxp
Z25tZW50LCB1bnNpZ25lZCwgY29uc3QgY2hhciogc2VjdGlvbk5hbWUpCiB7Ci0gICAgCiAgICAg
U3RhdGUmIHN0YXRlID0gKnN0YXRpY19jYXN0PFN0YXRlKj4ob3BhcXVlU3RhdGUpOwogICAgIAog
ICAgIFJFTEVBU0VfQVNTRVJUKGFsaWdubWVudCA8PSBqaXRBbGxvY2F0aW9uR3JhbnVsZSk7CkBA
IC01OCw2ICs1OCwxMSBAQCBzdGF0aWMgdWludDhfdCogbW1BbGxvY2F0ZUNvZGVTZWN0aW9uKAog
ICAgICAgICBzdGF0ZS5ncmFwaC5tX3ZtLmV4ZWN1dGFibGVBbGxvY2F0b3IuYWxsb2NhdGUoCiAg
ICAgICAgICAgICBzdGF0ZS5ncmFwaC5tX3ZtLCBzaXplLCBzdGF0ZS5ncmFwaC5tX2NvZGVCbG9j
aywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCk7CiAgICAgCisgICAgaWYgKCFzdHJjbXAoc2Vj
dGlvbk5hbWUsICJfX2NvbXBhY3RfdW53aW5kIikpIHsKKyAgICAgICAgc3RhdGUuY29tcGFjdFVu
d2luZCA9IHJlc3VsdC0+c3RhcnQoKTsKKyAgICAgICAgc3RhdGUuY29tcGFjdFVud2luZFNpemUg
PSByZXN1bHQtPnNpemVJbkJ5dGVzKCk7CisgICAgfQorICAgIAogICAgIHN0YXRlLmppdENvZGUt
PmFkZEhhbmRsZShyZXN1bHQpOwogICAgIHN0YXRlLmNvZGVTZWN0aW9uTmFtZXMuYXBwZW5kKHNl
Y3Rpb25OYW1lKTsKICAgICAKQEAgLTE0OSw4ICsxNTQsNjMgQEAgc3RhdGljIHZvaWQgZml4RnVu
Y3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgIFN0YXRlJiBzdGF0ZSwgQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIEpJVENvZGUqIGppdENvZGUsIEdlbmVyYXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0
aW9uLAogICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwJiByZWNvcmRNYXApCiB7Ci0gICAgVk0mIHZt
ID0gc3RhdGUuZ3JhcGgubV92bTsKKyAgICBHcmFwaCYgZ3JhcGggPSBzdGF0ZS5ncmFwaDsKKyAg
ICBWTSYgdm0gPSBncmFwaC5tX3ZtOwogICAgIFN0YWNrTWFwcyBzdGFja21hcHMgPSBqaXRDb2Rl
LT5zdGFja21hcHM7CisgICAgCisgICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0
ZXIgPSByZWNvcmRNYXAuZmluZChzdGF0ZS5jYXB0dXJlZFN0YWNrbWFwSUQpOworICAgIFJFTEVB
U0VfQVNTRVJUKGl0ZXIgIT0gcmVjb3JkTWFwLmVuZCgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChp
dGVyLT52YWx1ZS5sb2NhdGlvbnMuc2l6ZSgpID09IDEpOworICAgIExvY2F0aW9uIGNhcHR1cmVk
TG9jYXRpb24gPQorICAgICAgICBMb2NhdGlvbjo6Zm9yU3RhY2ttYXBzKCZqaXRDb2RlLT5zdGFj
a21hcHMsIGl0ZXItPnZhbHVlLmxvY2F0aW9uc1swXSk7CisgICAgUkVMRUFTRV9BU1NFUlQoY2Fw
dHVyZWRMb2NhdGlvbi5raW5kKCkgPT0gTG9jYXRpb246OlJlZ2lzdGVyKTsKKyAgICBSRUxFQVNF
X0FTU0VSVChjYXB0dXJlZExvY2F0aW9uLmdwcigpID09IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyKTsKKyAgICBSRUxFQVNFX0FTU0VSVCghKGNhcHR1cmVkTG9jYXRpb24uYWRkZW5kKCkgJSBz
aXplb2YoUmVnaXN0ZXIpKSk7CisgICAgaW50MzJfdCBsb2NhbHNPZmZzZXQgPSBjYXB0dXJlZExv
Y2F0aW9uLmFkZGVuZCgpIC8gc2l6ZW9mKFJlZ2lzdGVyKSArIGdyYXBoLm1fbmV4dE1hY2hpbmVM
b2NhbDsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBncmFwaC5tX2lubGluZVZhcmlhYmxl
RGF0YS5zaXplKCk7IGktLTspIHsKKyAgICAgICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxs
RnJhbWUgPSBncmFwaC5tX2lubGluZVZhcmlhYmxlRGF0YVtpXS5pbmxpbmVDYWxsRnJhbWU7Cisg
ICAgICAgIAorICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNSZWdpc3Rlci5p
c1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzUmVnaXN0
ZXIgPSBWaXJ0dWFsUmVnaXN0ZXIoCisgICAgICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5h
cmd1bWVudHNSZWdpc3Rlci5vZmZzZXQoKSArIGxvY2Fsc09mZnNldCk7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGZvciAodW5zaWduZWQgYXJndW1lbnQgPSBpbmxpbmVDYWxsRnJhbWUt
PmFyZ3VtZW50cy5zaXplKCk7IGFyZ3VtZW50LS0gPiAxOykgeworICAgICAgICAgICAgaW5saW5l
Q2FsbEZyYW1lLT5hcmd1bWVudHNbYXJndW1lbnRdID0KKyAgICAgICAgICAgICAgICBpbmxpbmVD
YWxsRnJhbWUtPmFyZ3VtZW50c1thcmd1bWVudF0ud2l0aExvY2Fsc09mZnNldChsb2NhbHNPZmZz
ZXQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lLT5p
c0Nsb3N1cmVDYWxsKSB7CisgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZVJlY292
ZXJ5ID0KKyAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZVJlY292ZXJ5Lndp
dGhMb2NhbHNPZmZzZXQobG9jYWxzT2Zmc2V0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAg
ICBpZiAoY29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpIHsKKyAgICAgICAgY29kZUJsb2NrLT5z
ZXRBcmd1bWVudHNSZWdpc3RlcigKKyAgICAgICAgICAgIFZpcnR1YWxSZWdpc3Rlcihjb2RlQmxv
Y2stPmFyZ3VtZW50c1JlZ2lzdGVyKCkub2Zmc2V0KCkgKyBsb2NhbHNPZmZzZXQpKTsKKyAgICB9
CisKKyAgICB7CisgICAgICAgIENDYWxsSGVscGVycyBjaGVja0pJVCgmdm0sIGNvZGVCbG9jayk7
CisgICAgICAgIAorICAgICAgICAvLyBBdCB0aGlzIHBvaW50IGl0J3MgcGVyZmVjdGx5IGZhaXIg
dG8ganVzdCBibG93IGF3YXkgYWxsIHN0YXRlIGFuZCByZXN0b3JlIHRoZQorICAgICAgICAvLyBK
UyBKSVQgdmlldyBvZiB0aGUgdW5pdmVyc2UuCisgICAgICAgIGNoZWNrSklULm1vdmUoTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFnVHlwZU51
bWJlclJlZ2lzdGVyKTsKKyAgICAgICAgY2hlY2tKSVQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTY0KFRhZ01hc2spLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOworICAgICAgICAK
KyAgICAgICAgY2hlY2tKSVQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmdm0p
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBjaGVja0pJVC5tb3ZlKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gY2hlY2tKSVQuY2FsbCgpOworICAgICAgICBjaGVja0pJ
VC5qdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CisgICAgICAgIAorICAgICAgICBPd25QdHI8TGlu
a0J1ZmZlcj4gbGlua0J1ZmZlciA9IGFkb3B0UHRyKG5ldyBMaW5rQnVmZmVyKAorICAgICAgICAg
ICAgdm0sICZjaGVja0pJVCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7
CisgICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbCwgRnVuY3Rpb25QdHIobG9va3VwRXhjZXB0
aW9uSGFuZGxlcikpOworICAgICAgICAKKyAgICAgICAgc3RhdGUuZmluYWxpemVyLT5oYW5kbGVF
eGNlcHRpb25zTGlua0J1ZmZlciA9IGxpbmtCdWZmZXIucmVsZWFzZSgpOworICAgIH0KIAogICAg
IEV4aXRUaHVua0dlbmVyYXRvciBleGl0VGh1bmtHZW5lcmF0b3Ioc3RhdGUpOwogICAgIGV4aXRU
aHVua0dlbmVyYXRvci5lbWl0VGh1bmtzKCk7CkBAIC0xNjYsMTYgKzIyNiwzMCBAQCBzdGF0aWMg
dm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGlmIChPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKSkKICAgICAgICAgICAgICAgICBk
YXRhTG9nKCJIYW5kbGluZyBPU1Igc3RhY2ttYXAgIyIsIGV4aXQubV9zdGFja21hcElELCAiIGZv
ciAiLCBleGl0Lm1fY29kZU9yaWdpbiwgIlxuIik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZXhp
dC5tX3N0YWNrbWFwSUQpOworCisgICAgICAgICAgICBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZXhp
dC5tX3N0YWNrbWFwSUQpOwogICAgICAgICAgICAgaWYgKGl0ZXIgPT0gcmVjb3JkTWFwLmVuZCgp
KSB7CiAgICAgICAgICAgICAgICAgLy8gSXQgd2FzIG9wdGltaXplZCBvdXQuCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGluZm8ubV90aHVua0FkZHJlc3MgPSBsaW5rQnVmZmVyLT5sb2NhdGlvbk9mKGluZm8ubV90aHVu
a0xhYmVsKTsKLSAgICAgICAgICAgIAogICAgICAgICAgICAgZXhpdC5tX3BhdGNoYWJsZUNvZGVP
ZmZzZXQgPSBsaW5rQnVmZmVyLT5vZmZzZXRPZihpbmZvLm1fdGh1bmtKdW1wKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gZXhpdC5tX3ZhbHVlcy5zaXplKCk7
IGotLTspIHsKKyAgICAgICAgICAgICAgICBFeGl0VmFsdWUgdmFsdWUgPSBleGl0Lm1fdmFsdWVz
W2pdOworICAgICAgICAgICAgICAgIGlmICghdmFsdWUuaXNJbkpTU3RhY2tTb21laG93KCkpCisg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmICghdmFsdWUu
dmlydHVhbFJlZ2lzdGVyKCkuaXNMb2NhbCgpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgICAgICBleGl0Lm1fdmFsdWVzW2pdID0gdmFsdWUud2l0aFZpcnR1YWxS
ZWdpc3RlcigKKyAgICAgICAgICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVyKHZhbHVlLnZpcnR1
YWxSZWdpc3RlcigpLm9mZnNldCgpICsgbG9jYWxzT2Zmc2V0KSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24o
KSkgeworICAgICAgICAgICAgICAgIER1bXBDb250ZXh0IGNvbnRleHQ7CisgICAgICAgICAgICAg
ICAgZGF0YUxvZygiICAgIEV4aXQgdmFsdWVzOiAiLCBpbkNvbnRleHQoZXhpdC5tX3ZhbHVlcywg
JmNvbnRleHQpLCAiXG4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgc3RhdGUuZmluYWxpemVyLT5leGl0VGh1bmtzTGlua0J1ZmZlciA9IGxpbmtCdWZmZXIu
cmVsZWFzZSgpOwpAQCAtMTg0LDEzICsyNTgsMTUgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25C
YXNlZE9uU3RhY2tNYXBzKAogICAgIGlmICghc3RhdGUuZ2V0QnlJZHMuaXNFbXB0eSgpIHx8ICFz
dGF0ZS5wdXRCeUlkcy5pc0VtcHR5KCkpIHsKICAgICAgICAgQ0NhbGxIZWxwZXJzIHNsb3dQYXRo
SklUKCZ2bSwgY29kZUJsb2NrKTsKICAgICAgICAgCisgICAgICAgIENDYWxsSGVscGVyczo6SnVt
cExpc3QgZXhjZXB0aW9uVGFyZ2V0OworICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gc3RhdGUuZ2V0QnlJZHMuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBHZXRCeUlkRGVz
Y3JpcHRvciYgZ2V0QnlJZCA9IHN0YXRlLmdldEJ5SWRzW2ldOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkpCiAgICAgICAgICAgICAg
ICAgZGF0YUxvZygiSGFuZGxpbmcgR2V0QnlJZCBzdGFja21hcCAjIiwgZ2V0QnlJZC5zdGFja21h
cElEKCksICJcbiIpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBTdGFja01hcHM6OlJlY29y
ZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJlY29yZE1hcC5maW5kKGdldEJ5SWQuc3RhY2ttYXBJRCgp
KTsKKyAgICAgICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChnZXRCeUlkLnN0YWNrbWFwSUQo
KSk7CiAgICAgICAgICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAgICAg
ICAgICAgICAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBjb250aW51
ZTsKQEAgLTIwMiwxOCArMjc4LDE3IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0
YWNrTWFwcygKICAgICAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSBSZWdpc3Rl
clNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEdQUlJlZyBy
ZXN1bHQgPSByZWNvcmQubG9jYXRpb25zWzBdLmRpcmVjdEdQUigpOwotICAgICAgICAgICAgR1BS
UmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gcmVjb3JkLmxvY2F0aW9uc1sxXS5kaXJlY3RHUFIoKTsK
LSAgICAgICAgICAgIEdQUlJlZyBiYXNlID0gcmVjb3JkLmxvY2F0aW9uc1syXS5kaXJlY3RHUFIo
KTsKKyAgICAgICAgICAgIEdQUlJlZyBiYXNlID0gcmVjb3JkLmxvY2F0aW9uc1sxXS5kaXJlY3RH
UFIoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4o
Ci0gICAgICAgICAgICAgICAgY29kZUJsb2NrLCBnZXRCeUlkLmNvZGVPcmlnaW4oKSwgdXNlZFJl
Z2lzdGVycywgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mo
YmFzZSksIEpTVmFsdWVSZWdzKHJlc3VsdCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBjb2Rl
QmxvY2ssIGdldEJ5SWQuY29kZU9yaWdpbigpLCB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyhi
YXNlKSwKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhyZXN1bHQpLCBmYWxzZSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBiZWdpbiA9IHNsb3dQ
YXRoSklULmxhYmVsKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKAotICAgICAgICAgICAgICAgIHN0YXRlLCB1c2Vk
UmVnaXN0ZXJzLCBzbG93UGF0aEpJVCwgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCByZXN1bHQs
Ci0gICAgICAgICAgICAgICAgY2FsbEZyYW1lUmVnaXN0ZXIsIGdlbi5zdHViSW5mbygpLCBiYXNl
LCBnZXRCeUlkLnVpZCgpKTsKKyAgICAgICAgICAgICAgICBzdGF0ZSwgdXNlZFJlZ2lzdGVycywg
c2xvd1BhdGhKSVQsIGdldEJ5SWQuY29kZU9yaWdpbigpLCAmZXhjZXB0aW9uVGFyZ2V0LAorICAg
ICAgICAgICAgICAgIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgcmVzdWx0LCBnZW4uc3R1Yklu
Zm8oKSwgYmFzZSwgZ2V0QnlJZC51aWQoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGdl
bi5yZXBvcnRTbG93UGF0aENhbGwoYmVnaW4sIGNhbGwpOwogICAgICAgICAgICAgCkBAIC0yMjcs
NyArMzAyLDcgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAg
ICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKQogICAgICAgICAgICAg
ICAgIGRhdGFMb2coIkhhbmRsaW5nIFB1dEJ5SWQgc3RhY2ttYXAgIyIsIHB1dEJ5SWQuc3RhY2tt
YXBJRCgpLCAiXG4iKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgU3RhY2tNYXBzOjpSZWNv
cmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChwdXRCeUlkLnN0YWNrbWFwSUQo
KSk7CisgICAgICAgICAgICBpdGVyID0gcmVjb3JkTWFwLmZpbmQocHV0QnlJZC5zdGFja21hcElE
KCkpOwogICAgICAgICAgICAgaWYgKGl0ZXIgPT0gcmVjb3JkTWFwLmVuZCgpKSB7CiAgICAgICAg
ICAgICAgICAgLy8gSXQgd2FzIG9wdGltaXplZCBvdXQuCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CkBAIC0yMzgsMjAgKzMxMywxOSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25T
dGFja01hcHMoCiAgICAgICAgICAgICAvLyBGSVhNRTogTExWTSBzaG91bGQgdGVsbCB1cyB3aGlj
aCByZWdpc3RlcnMgYXJlIGxpdmUuCiAgICAgICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0
ZXJzID0gUmVnaXN0ZXJTZXQ6OmFsbFJlZ2lzdGVycygpOwogICAgICAgICAgICAgCi0gICAgICAg
ICAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSByZWNvcmQubG9jYXRpb25zWzBdLmRpcmVj
dEdQUigpOwotICAgICAgICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzFdLmRp
cmVjdEdQUigpOwotICAgICAgICAgICAgR1BSUmVnIHZhbHVlID0gcmVjb3JkLmxvY2F0aW9uc1sy
XS5kaXJlY3RHUFIoKTsKKyAgICAgICAgICAgIEdQUlJlZyBiYXNlID0gcmVjb3JkLmxvY2F0aW9u
c1swXS5kaXJlY3RHUFIoKTsKKyAgICAgICAgICAgIEdQUlJlZyB2YWx1ZSA9IHJlY29yZC5sb2Nh
dGlvbnNbMV0uZGlyZWN0R1BSKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEpJVFB1dEJ5
SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICAgICAgICAgIGNvZGVCbG9jaywgcHV0QnlJZC5jb2Rl
T3JpZ2luKCksIHVzZWRSZWdpc3RlcnMsIGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICAgICAg
ICAgIEpTVmFsdWVSZWdzKGJhc2UpLCBKU1ZhbHVlUmVncyh2YWx1ZSksIE1hY3JvQXNzZW1ibGVy
OjpzY3JhdGNoUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgZmFsc2UsIHB1dEJ5SWQuZWNtYU1v
ZGUoKSwgcHV0QnlJZC5wdXRLaW5kKCkpOworICAgICAgICAgICAgICAgIGNvZGVCbG9jaywgcHV0
QnlJZC5jb2RlT3JpZ2luKCksIHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVSZWdzKGJhc2UpLAorICAg
ICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHZhbHVlKSwgTWFjcm9Bc3NlbWJsZXI6OnNjcmF0Y2hS
ZWdpc3RlciwgZmFsc2UsIHB1dEJ5SWQuZWNtYU1vZGUoKSwKKyAgICAgICAgICAgICAgICBwdXRC
eUlkLnB1dEtpbmQoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpMYWJlbCBiZWdpbiA9IHNsb3dQYXRoSklULmxhYmVsKCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKAotICAgICAg
ICAgICAgICAgIHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93UGF0aEpJVCwgZ2VuLnNsb3dQYXRo
RnVuY3Rpb24oKSwgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgZ2VuLnN0dWJJ
bmZvKCksIHZhbHVlLCBiYXNlLCBwdXRCeUlkLnVpZCgpKTsKKyAgICAgICAgICAgICAgICBzdGF0
ZSwgdXNlZFJlZ2lzdGVycywgc2xvd1BhdGhKSVQsIHB1dEJ5SWQuY29kZU9yaWdpbigpLCAmZXhj
ZXB0aW9uVGFyZ2V0LAorICAgICAgICAgICAgICAgIGdlbi5zbG93UGF0aEZ1bmN0aW9uKCksIGdl
bi5zdHViSW5mbygpLCB2YWx1ZSwgYmFzZSwgcHV0QnlJZC51aWQoKSk7CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoYmVnaW4sIGNhbGwpOwogICAgICAg
ICAgICAgCkBAIC0yNTksOCArMzMzLDEzIEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRP
blN0YWNrTWFwcygKICAgICAgICAgICAgIHB1dEJ5SWQubV9nZW5lcmF0b3IgPSBnZW47CiAgICAg
ICAgIH0KICAgICAgICAgCisgICAgICAgIGV4Y2VwdGlvblRhcmdldC5saW5rKCZzbG93UGF0aEpJ
VCk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGV4Y2VwdGlvbkp1bXAgPSBzbG93UGF0
aEpJVC5qdW1wKCk7CisgICAgICAgIAogICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPnNpZGVDb2Rl
TGlua0J1ZmZlciA9IGFkb3B0UHRyKAogICAgICAgICAgICAgbmV3IExpbmtCdWZmZXIodm0sICZz
bG93UGF0aEpJVCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7CisgICAg
ICAgIHN0YXRlLmZpbmFsaXplci0+c2lkZUNvZGVMaW5rQnVmZmVyLT5saW5rKAorICAgICAgICAg
ICAgZXhjZXB0aW9uSnVtcCwgc3RhdGUuZmluYWxpemVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1
ZmZlci0+ZW50cnlwb2ludCgpKTsKICAgICAgICAgCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IHN0YXRlLmdldEJ5SWRzLnNpemUoKTsgaS0tOykgewogICAgICAgICAgICAgZ2VuZXJhdGVJQ0Zh
c3RQYXRoKApAQCAtMjc0LDI4ICszNTMsODEgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNl
ZE9uU3RhY2tNYXBzKAogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIFJlcGF0Y2hCdWZmZXIg
cmVwYXRjaEJ1ZmZlcihjb2RlQmxvY2spOwotICAgIAotICAgIGZvciAodW5zaWduZWQgZXhpdElu
ZGV4ID0gaml0Q29kZS0+b3NyRXhpdC5zaXplKCk7IGV4aXRJbmRleC0tOykgewotICAgICAgICBP
U1JFeGl0Q29tcGlsYXRpb25JbmZvJiBpbmZvID0gc3RhdGUuZmluYWxpemVyLT5vc3JFeGl0W2V4
aXRJbmRleF07Ci0gICAgICAgIE9TUkV4aXQmIGV4aXQgPSBqaXRDb2RlLT5vc3JFeGl0W2V4aXRJ
bmRleF07Ci0gICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVyID0gcmVj
b3JkTWFwLmZpbmQoZXhpdC5tX3N0YWNrbWFwSUQpOworICAgIC8vIEhhbmRsaW5nIEpTIGNhbGxz
IGlzIHdlaXJkOiB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHdlIHNvcnQgdGhlbSBieSB0aGUgUEMg
aW4gTExWTQorICAgIC8vIGdlbmVyYXRlZCBjb2RlLiBUaGF0IGltcGxpZXMgZmlyc3QgcHJ1bmlu
ZyB0aGUgb25lcyB0aGF0IExMVk0gZGlkbid0IGdlbmVyYXRlLgorICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBzdGF0ZS5qc0NhbGxzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEpTQ2FsbCYg
Y2FsbCA9IHN0YXRlLmpzQ2FsbHNbaV07CisgICAgICAgIAorICAgICAgICBTdGFja01hcHM6OlJl
Y29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJlY29yZE1hcC5maW5kKGNhbGwuc3RhY2ttYXBJRCgp
KTsKICAgICAgICAgaWYgKGl0ZXIgPT0gcmVjb3JkTWFwLmVuZCgpKSB7Ci0gICAgICAgICAgICAv
LyBUaGlzIGNvdWxkIGhhcHBlbiBpZiBMTFZNIG9wdGltaXplcyBvdXQgYW4gT1NSIGV4aXQuCisg
ICAgICAgICAgICAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4gUHJ1bmUgaXQuCisgICAgICAgICAg
ICBjYWxsID0gc3RhdGUuanNDYWxscy5sYXN0KCk7CisgICAgICAgICAgICBzdGF0ZS5qc0NhbGxz
LnJlbW92ZUxhc3QoKTsKKyAgICAgICAgICAgIGktLTsKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICB9CiAgICAgICAgIAorICAgICAgICBjYWxsLm1faW5zdHJ1Y3Rpb25PZmZzZXQgPSBp
dGVyLT52YWx1ZS5pbnN0cnVjdGlvbk9mZnNldDsKKyAgICB9CisgICAgCisgICAgc3RkOjpzb3J0
KHN0YXRlLmpzQ2FsbHMuYmVnaW4oKSwgc3RhdGUuanNDYWxscy5lbmQoKSk7CisgICAgCisgICAg
Y29kZUJsb2NrLT5zZXROdW1iZXJPZkNhbGxMaW5rSW5mb3Moc3RhdGUuanNDYWxscy5zaXplKCkp
OworICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXRlLmpzQ2FsbHMuc2l6ZSgpOyBpLS07KSB7Cisg
ICAgICAgIEpTQ2FsbCYgY2FsbCA9IHN0YXRlLmpzQ2FsbHNbaV07CisKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzIGZhc3RQYXRoSklUKCZ2bSwgY29kZUJsb2NrKTsKKyAgICAgICAgY2FsbC5lbWl0KGZh
c3RQYXRoSklUKTsKKyAgICAgICAgCisgICAgICAgIGNoYXIqIHN0YXJ0T2ZJQyA9IGJpdHdpc2Vf
Y2FzdDxjaGFyKj4oZ2VuZXJhdGVkRnVuY3Rpb24pICsgY2FsbC5tX2luc3RydWN0aW9uT2Zmc2V0
OworICAgICAgICAKKyAgICAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCAmZmFzdFBhdGhK
SVQsIHN0YXJ0T2ZJQywgc2l6ZU9mQ2FsbCgpKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQobGlu
a0J1ZmZlci5pc1ZhbGlkKCkpOworICAgICAgICAKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFz
c2VtYmxlclR5cGVfVDo6ZmlsbE5vcHMoCisgICAgICAgICAgICBzdGFydE9mSUMgKyBsaW5rQnVm
ZmVyLnNpemUoKSwgc2l6ZU9mQ2FsbCgpIC0gbGlua0J1ZmZlci5zaXplKCkpOworICAgICAgICAK
KyAgICAgICAgQ2FsbExpbmtJbmZvJiBpbmZvID0gY29kZUJsb2NrLT5jYWxsTGlua0luZm8oaSk7
CisgICAgICAgIGNhbGwubGluayh2bSwgbGlua0J1ZmZlciwgaW5mbyk7CisgICAgfQorICAgIAor
ICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjb2RlQmxvY2spOworICAgIAorICAgIGl0
ZXIgPSByZWNvcmRNYXAuZmluZChzdGF0ZS5oYW5kbGVFeGNlcHRpb25TdGFja21hcElEKTsKKyAg
ICAvLyBJdCdzIHNvcnQgb2YgcmVtb3RlbHkgcG9zc2libGUgdGhhdCB3ZSB3b24ndCBoYXZlIGFu
IGluLWJhbmQgZXhjZXB0aW9uIGhhbmRsaW5nCisgICAgLy8gcGF0aCwgZm9yIHNvbWUga2luZHMg
b2YgZnVuY3Rpb25zLgorICAgIGlmIChpdGVyICE9IHJlY29yZE1hcC5lbmQoKSkgewogICAgICAg
ICBTdGFja01hcHM6OlJlY29yZCYgcmVjb3JkID0gaXRlci0+dmFsdWU7CiAgICAgICAgIAogICAg
ICAgICBDb2RlTG9jYXRpb25MYWJlbCBzb3VyY2UgPSBDb2RlTG9jYXRpb25MYWJlbCgKICAgICAg
ICAgICAgIGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJhdGVkRnVuY3Rpb24pICsgcmVjb3JkLmlu
c3RydWN0aW9uT2Zmc2V0KTsKKworICAgICAgICByZXBhdGNoQnVmZmVyLnJlcGxhY2VXaXRoSnVt
cChzb3VyY2UsIHN0YXRlLmZpbmFsaXplci0+aGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXItPmVu
dHJ5cG9pbnQoKSk7CisgICAgfQorICAgIAorICAgIGZvciAodW5zaWduZWQgZXhpdEluZGV4ID0g
MDsgZXhpdEluZGV4IDwgaml0Q29kZS0+b3NyRXhpdC5zaXplKCk7ICsrZXhpdEluZGV4KSB7Cisg
ICAgICAgIE9TUkV4aXRDb21waWxhdGlvbkluZm8mIGluZm8gPSBzdGF0ZS5maW5hbGl6ZXItPm9z
ckV4aXRbZXhpdEluZGV4XTsKKyAgICAgICAgT1NSRXhpdCYgZXhpdCA9IGppdENvZGUtPm9zckV4
aXRbZXhpdEluZGV4XTsKKyAgICAgICAgaXRlciA9IHJlY29yZE1hcC5maW5kKGV4aXQubV9zdGFj
a21hcElEKTsKICAgICAgICAgCi0gICAgICAgIGlmIChpbmZvLm1faXNJbnZhbGlkYXRpb25Qb2lu
dCkgewotICAgICAgICAgICAgaml0Q29kZS0+Y29tbW9uLmp1bXBSZXBsYWNlbWVudHMuYXBwZW5k
KEp1bXBSZXBsYWNlbWVudChzb3VyY2UsIGluZm8ubV90aHVua0FkZHJlc3MpKTsKLSAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICBWZWN0b3I8Y29uc3Qgdm9pZCo+IGNvZGVBZGRyZXNzZXM7
CisgICAgICAgIAorICAgICAgICBpZiAoaXRlciAhPSByZWNvcmRNYXAuZW5kKCkpIHsKKyAgICAg
ICAgICAgIFN0YWNrTWFwczo6UmVjb3JkJiByZWNvcmQgPSBpdGVyLT52YWx1ZTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgc291cmNlID0gQ29kZUxvY2F0aW9u
TGFiZWwoCisgICAgICAgICAgICAgICAgYml0d2lzZV9jYXN0PGNoYXIqPihnZW5lcmF0ZWRGdW5j
dGlvbikgKyByZWNvcmQuaW5zdHJ1Y3Rpb25PZmZzZXQpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBjb2RlQWRkcmVzc2VzLmFwcGVuZChiaXR3aXNlX2Nhc3Q8Y2hhcio+KGdlbmVyYXRlZEZ1
bmN0aW9uKSArIHJlY29yZC5pbnN0cnVjdGlvbk9mZnNldCArIE1hY3JvQXNzZW1ibGVyOjptYXhK
dW1wUmVwbGFjZW1lbnRTaXplKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5m
by5tX2lzSW52YWxpZGF0aW9uUG9pbnQpCisgICAgICAgICAgICAgICAgaml0Q29kZS0+Y29tbW9u
Lmp1bXBSZXBsYWNlbWVudHMuYXBwZW5kKEp1bXBSZXBsYWNlbWVudChzb3VyY2UsIGluZm8ubV90
aHVua0FkZHJlc3MpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXBhdGNo
QnVmZmVyLnJlcGxhY2VXaXRoSnVtcChzb3VyY2UsIGluZm8ubV90aHVua0FkZHJlc3MpOwogICAg
ICAgICB9CiAgICAgICAgIAotICAgICAgICByZXBhdGNoQnVmZmVyLnJlcGxhY2VXaXRoSnVtcChz
b3VyY2UsIGluZm8ubV90aHVua0FkZHJlc3MpOworICAgICAgICBpZiAoZ3JhcGguY29tcGlsYXRp
b24oKSkKKyAgICAgICAgICAgIGdyYXBoLmNvbXBpbGF0aW9uKCktPmFkZE9TUkV4aXRTaXRlKGNv
ZGVBZGRyZXNzZXMpOwogICAgIH0KIH0KIApAQCAtMzczLDcgKzUwNSw3IEBAIHZvaWQgY29tcGls
ZShTdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBoYW5k
bGUgPSBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKClbaV0uZ2V0KCk7CiAgICAgICAgICAgICBkYXRh
TG9nKAogICAgICAgICAgICAgICAgICJHZW5lcmF0ZWQgTExWTSBjb2RlIGZvciAiLAotICAgICAg
ICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBK
SVRDb2RlOjpERkdKSVQpLAorICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0
YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLAogICAgICAgICAgICAgICAg
ICIgIyIsIGksICIsICIsIHN0YXRlLmNvZGVTZWN0aW9uTmFtZXNbaV0sICI6XG4iKTsKICAgICAg
ICAgICAgIGRpc2Fzc2VtYmxlKAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
cihoYW5kbGUtPnN0YXJ0KCkpLCBoYW5kbGUtPnNpemVJbkJ5dGVzKCksCkBAIC0zODQsMTcgKzUx
NiwyMiBAQCB2b2lkIGNvbXBpbGUoU3RhdGUmIHN0YXRlKQogICAgICAgICAgICAgY29uc3QgUmVm
Q291bnRlZEFycmF5PExTZWN0aW9uV29yZD4mIHNlY3Rpb24gPSBzdGF0ZS5qaXRDb2RlLT5kYXRh
U2VjdGlvbnMoKVtpXTsKICAgICAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAgICAgIkdl
bmVyYXRlZCBMTFZNIGRhdGEgc2VjdGlvbiBmb3IgIiwKLSAgICAgICAgICAgICAgICBDb2RlQmxv
Y2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6REZHSklUKSwK
KyAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVC
bG9jaywgSklUQ29kZTo6RlRMSklUKSwKICAgICAgICAgICAgICAgICAiICMiLCBpLCAiLCAiLCBz
dGF0ZS5kYXRhU2VjdGlvbk5hbWVzW2ldLCAiOlxuIik7CiAgICAgICAgICAgICBkdW1wRGF0YVNl
Y3Rpb24oc2VjdGlvbiwgIiAgICAiKTsKICAgICAgICAgfQogICAgIH0KICAgICAKKyAgICBzdGF0
ZS5qaXRDb2RlLT51bndpbmRJbmZvLnBhcnNlKAorICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5k
LCBzdGF0ZS5jb21wYWN0VW53aW5kU2l6ZSwgc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24pOworICAg
IGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJseSgpKQorICAgICAgICBkYXRhTG9nKCJVbndp
bmQgaW5mbyBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxv
Y2ssIEpJVENvZGU6OkZUTEpJVCksICI6XG4gICAgIiwgc3RhdGUuaml0Q29kZS0+dW53aW5kSW5m
bywgIlxuIik7CisgICAgCiAgICAgaWYgKHN0YXRlLnN0YWNrbWFwc1NlY3Rpb24uc2l6ZSgpKSB7
CiAgICAgICAgIGlmIChzaG91bGRTaG93RGlzYXNzZW1ibHkoKSkgewogICAgICAgICAgICAgZGF0
YUxvZygKICAgICAgICAgICAgICAgICAiR2VuZXJhdGVkIExMVk0gc3RhY2ttYXBzIHNlY3Rpb24g
Zm9yICIsCi0gICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgu
bV9jb2RlQmxvY2ssIEpJVENvZGU6OkRGR0pJVCksICI6XG4iKTsKKyAgICAgICAgICAgICAgICBD
b2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6RlRM
SklUKSwgIjpcbiIpOwogICAgICAgICAgICAgZGF0YUxvZygiICAgIFJhdyBkYXRhOlxuIik7CiAg
ICAgICAgICAgICBkdW1wRGF0YVNlY3Rpb24oc3RhdGUuc3RhY2ttYXBzU2VjdGlvbiwgIiAgICAi
KTsKICAgICAgICAgfQpAQCAtNDIxLDggKzU1OCw5IEBAIHZvaWQgY29tcGlsZShTdGF0ZSYgc3Rh
dGUpCiAgICAgICAgICAgICAgICAgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZSogaGFuZGxlID0gc3Rh
dGUuaml0Q29kZS0+aGFuZGxlcygpW2ldLmdldCgpOwogICAgICAgICAgICAgICAgIGRhdGFMb2co
CiAgICAgICAgICAgICAgICAgICAgICJHZW5lcmF0ZWQgTExWTSBjb2RlIGFmdGVyIHN0YWNrbWFw
LWJhc2VkIGZpeC11cCBmb3IgIiwKLSAgICAgICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJ
VFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkRGR0pJVCksCi0gICAgICAg
ICAgICAgICAgICAgICIgIyIsIGksICIsICIsIHN0YXRlLmNvZGVTZWN0aW9uTmFtZXNbaV0sICI6
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3Jh
cGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCksCisgICAgICAgICAgICAgICAgICAgICIg
aW4gIiwgc3RhdGUuZ3JhcGgubV9wbGFuLm1vZGUsICIgIyIsIGksICIsICIsCisgICAgICAgICAg
ICAgICAgICAgIHN0YXRlLmNvZGVTZWN0aW9uTmFtZXNbaV0sICI6XG4iKTsKICAgICAgICAgICAg
ICAgICBkaXNhc3NlbWJsZSgKICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyKGhhbmRsZS0+c3RhcnQoKSksIGhhbmRsZS0+c2l6ZUluQnl0ZXMoKSwKICAgICAgICAgICAg
ICAgICAgICAgIiAgICAiLCBXVEY6OmRhdGFGaWxlKCksIExMVk1TdWJzZXQpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmNwcAkocmV2aXNpb24gMTYyOTYx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01OSw2ICs1OSw5IEBAIHZvaWQgRXhpdFZhbHVlOjpkdW1wSW5Db250ZXh0KFByaW50
U3RyZWEKICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzRG91YmxlOgogICAgICAgICBvdXQu
cHJpbnQoIkluSlNTdGFja0FzRG91YmxlOnIiLCB2aXJ0dWFsUmVnaXN0ZXIoKSk7CiAgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIEV4aXRWYWx1ZVJlY292ZXJ5OgorICAgICAgICBvdXQucHJpbnQo
IlJlY292ZXJ5KCIsIHJlY292ZXJ5T3Bjb2RlKCksICIsIGFyZyIsIGxlZnRSZWNvdmVyeUFyZ3Vt
ZW50KCksICIsIGFyZyIsIHJpZ2h0UmVjb3ZlcnlBcmd1bWVudCgpLCAiLCAiLCByZWNvdmVyeUZv
cm1hdCgpLCAiKSIpOworICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAogICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEV4aXRWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
RXhpdFZhbHVlLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMRXhpdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDYgKzMxLDcgQEAKICNpZiBFTkFC
TEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkZUTEV4aXRBcmd1bWVudC5oIgorI2luY2x1ZGUgIkZU
TFJlY292ZXJ5T3Bjb2RlLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIlZp
cnR1YWxSZWdpc3Rlci5oIgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgpAQCAtNTEsNyAr
NTIsOCBAQCBlbnVtIEV4aXRWYWx1ZUtpbmQgewogICAgIEV4aXRWYWx1ZUluSlNTdGFjaywKICAg
ICBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDMyLAogICAgIEV4aXRWYWx1ZUluSlNTdGFja0FzSW50
NTIsCi0gICAgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGUKKyAgICBFeGl0VmFsdWVJbkpTU3Rh
Y2tBc0RvdWJsZSwKKyAgICBFeGl0VmFsdWVSZWNvdmVyeQogfTsKIAogY2xhc3MgRXhpdFZhbHVl
IHsKQEAgLTExOCw2ICsxMjAsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KICAgICAKKyAgICBzdGF0aWMgRXhpdFZhbHVlIHJlY292ZXJ5KFJlY292ZXJ5T3Bjb2Rl
IG9wY29kZSwgdW5zaWduZWQgbGVmdEFyZ3VtZW50LCB1bnNpZ25lZCByaWdodEFyZ3VtZW50LCBW
YWx1ZUZvcm1hdCBmb3JtYXQpCisgICAgeworICAgICAgICBFeGl0VmFsdWUgcmVzdWx0OworICAg
ICAgICByZXN1bHQubV9raW5kID0gRXhpdFZhbHVlUmVjb3Zlcnk7CisgICAgICAgIHJlc3VsdC51
LnJlY292ZXJ5Lm9wY29kZSA9IG9wY29kZTsKKyAgICAgICAgcmVzdWx0LnUucmVjb3ZlcnkubGVm
dEFyZ3VtZW50ID0gbGVmdEFyZ3VtZW50OworICAgICAgICByZXN1bHQudS5yZWNvdmVyeS5yaWdo
dEFyZ3VtZW50ID0gcmlnaHRBcmd1bWVudDsKKyAgICAgICAgcmVzdWx0LnUucmVjb3ZlcnkuZm9y
bWF0ID0gZm9ybWF0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKICAgICBF
eGl0VmFsdWVLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KICAgICAKICAgICBi
b29sIGlzRGVhZCgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBFeGl0VmFsdWVEZWFkOyB9CkBA
IC0xMzUsNiArMTQ4LDcgQEAgcHVibGljOgogICAgIH0KICAgICBib29sIGlzQ29uc3RhbnQoKSBj
b25zdCB7IHJldHVybiBraW5kKCkgPT0gRXhpdFZhbHVlQ29uc3RhbnQ7IH0KICAgICBib29sIGlz
QXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gRXhpdFZhbHVlQXJndW1lbnQ7IH0K
KyAgICBib29sIGlzUmVjb3ZlcnkoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gRXhpdFZhbHVl
UmVjb3Zlcnk7IH0KICAgICAKICAgICBFeGl0QXJndW1lbnQgZXhpdEFyZ3VtZW50KCkgY29uc3QK
ICAgICB7CkBAIC0xNDIsNiArMTU2LDMwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEV4aXRB
cmd1bWVudCh1LmFyZ3VtZW50KTsKICAgICB9CiAgICAgCisgICAgdW5zaWduZWQgbGVmdFJlY292
ZXJ5QXJndW1lbnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzUmVjb3ZlcnkoKSk7
CisgICAgICAgIHJldHVybiB1LnJlY292ZXJ5LmxlZnRBcmd1bWVudDsKKyAgICB9CisgICAgCisg
ICAgdW5zaWduZWQgcmlnaHRSZWNvdmVyeUFyZ3VtZW50KCkgY29uc3QKKyAgICB7CisgICAgICAg
IEFTU0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICByZXR1cm4gdS5yZWNvdmVyeS5yaWdodEFy
Z3VtZW50OworICAgIH0KKyAgICAKKyAgICBWYWx1ZUZvcm1hdCByZWNvdmVyeUZvcm1hdCgpIGNv
bnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNSZWNvdmVyeSgpKTsKKyAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFZhbHVlRm9ybWF0Pih1LnJlY292ZXJ5LmZvcm1hdCk7CisgICAgfQorICAg
IAorICAgIFJlY292ZXJ5T3Bjb2RlIHJlY292ZXJ5T3Bjb2RlKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIEFTU0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVj
b3ZlcnlPcGNvZGU+KHUucmVjb3Zlcnkub3Bjb2RlKTsKKyAgICB9CisgICAgCiAgICAgSlNWYWx1
ZSBjb25zdGFudCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNDb25zdGFudCgpKTsK
QEAgLTE1Myw2ICsxOTEsMTUgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoaXNJbkpTU3RhY2tT
b21laG93KCkpOwogICAgICAgICByZXR1cm4gVmlydHVhbFJlZ2lzdGVyKHUudmlydHVhbFJlZ2lz
dGVyKTsKICAgICB9CisgICAgCisgICAgRXhpdFZhbHVlIHdpdGhWaXJ0dWFsUmVnaXN0ZXIoVmly
dHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlcikKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0lu
SlNTdGFja1NvbWVob3coKSk7CisgICAgICAgIEV4aXRWYWx1ZSByZXN1bHQ7CisgICAgICAgIHJl
c3VsdC5tX2tpbmQgPSBtX2tpbmQ7CisgICAgICAgIHJlc3VsdC51LnZpcnR1YWxSZWdpc3RlciA9
IHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9
CiAKICAgICAvLyBJZiBpdCdzIGluIHRoZSBKU1N0YWNrIHNvbWVob3csIHRoaXMgd2lsbCB0ZWxs
IHlvdSB3aGF0IGZvcm1hdCBpdCdzIGluLCBpbiBhIG1hbm5lcgogICAgIC8vIHRoYXQgaXMgY29t
cGF0aWJsZSB3aXRoIGV4aXRBcmd1bWVudCgpLmZvcm1hdCgpLiBJZiBpdCdzIGEgY29uc3RhbnQg
b3IgaXQncyBkZWFkLCBpdApAQCAtMTgxLDYgKzIyOCw5IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IAogICAgICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzRG91YmxlOgogICAgICAgICAgICAg
cmV0dXJuIFZhbHVlRm9ybWF0RG91YmxlOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgRXhp
dFZhbHVlUmVjb3Zlcnk6CisgICAgICAgICAgICByZXR1cm4gcmVjb3ZlcnlGb3JtYXQoKTsKICAg
ICAgICAgfQogICAgICAgICAKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTE5Niw2ICsyNDYsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgRXhpdEFyZ3VtZW50UmVwcmVz
ZW50YXRpb24gYXJndW1lbnQ7CiAgICAgICAgIEVuY29kZWRKU1ZhbHVlIGNvbnN0YW50OwogICAg
ICAgICBpbnQgdmlydHVhbFJlZ2lzdGVyOworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAg
dWludDE2X3QgbGVmdEFyZ3VtZW50OworICAgICAgICAgICAgdWludDE2X3QgcmlnaHRBcmd1bWVu
dDsKKyAgICAgICAgICAgIHVpbnQxNl90IG9wY29kZTsKKyAgICAgICAgICAgIHVpbnQxNl90IGZv
cm1hdDsKKyAgICAgICAgfSByZWNvdmVyeTsKICAgICB9IHU7CiB9OwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDExIEBAIHNpemVfdCBzaXplT2ZQdXRC
eUlkKCkKICAgICByZXR1cm4gMzI7CiB9CiAKK3NpemVfdCBzaXplT2ZDYWxsKCkKK3sKKyAgICBy
ZXR1cm4gNDM7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKIAogI2VuZGlmIC8vIEVO
QUJMRShGVExfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVD
YWNoZVNpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElu
bGluZUNhY2hlU2l6ZS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAogc2l6ZV90IHNpemVPZkdldEJ5
SWQoKTsKIHNpemVfdCBzaXplT2ZQdXRCeUlkKCk7CitzaXplX3Qgc2l6ZU9mQ2FsbCgpOwogCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCShyZXZpc2lvbiAxNjI5NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAkod29y
a2luZyBjb3B5KQpAQCAtNDAsMTcgKzQwLDI1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
RlRMIHsKICAgICBtYWNybyhhZGRXaXRoT3ZlcmZsb3czMiwgImxsdm0uc2FkZC53aXRoLm92ZXJm
bG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50MzIsIGJvb2xl
YW4pLCBpbnQzMiwgaW50MzIpKSBcCiAgICAgbWFjcm8oYWRkV2l0aE92ZXJmbG93NjQsICJsbHZt
LnNhZGQud2l0aC5vdmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShtX2NvbnRl
eHQsIGludDY0LCBib29sZWFuKSwgaW50NjQsIGludDY0KSkgXAogICAgIG1hY3JvKGRvdWJsZUFi
cywgImxsdm0uZmFicy5mNjQiLCBmdW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91YmxlVHlwZSkp
IFwKKyAgICBtYWNybyhkb3VibGVTaW4sICJsbHZtLnNpbi5mNjQiLCBmdW5jdGlvblR5cGUoZG91
YmxlVHlwZSwgZG91YmxlVHlwZSkpIFwKKyAgICBtYWNybyhkb3VibGVDb3MsICJsbHZtLmNvcy5m
NjQiLCBmdW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91YmxlVHlwZSkpIFwKKyAgICBtYWNybyhk
b3VibGVTcXJ0LCAibGx2bS5zcXJ0LmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVUeXBlLCBkb3Vi
bGVUeXBlKSkgXAorICAgIG1hY3JvKGZyYW1lQWRkcmVzcywgImxsdm0uZnJhbWVhZGRyZXNzIiwg
ZnVuY3Rpb25UeXBlKHBvaW50ZXJUeXBlKGludDgpLCBpbnQzMikpIFwKICAgICBtYWNybyhtdWxX
aXRoT3ZlcmZsb3czMiwgImxsdm0uc211bC53aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlw
ZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBc
CiAgICAgbWFjcm8obXVsV2l0aE92ZXJmbG93NjQsICJsbHZtLnNtdWwud2l0aC5vdmVyZmxvdy5p
NjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDY0LCBib29sZWFuKSwg
aW50NjQsIGludDY0KSkgXAotICAgIG1hY3JvKHBhdGNocG9pbnRJbnQ2NCwgImxsdm0uZXhwZXJp
bWVudGFsLnBhdGNocG9pbnQuaTY0IiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnQzMiwgaW50MzIs
IHJlZjgsIGludDMyLCBWYXJpYWRpYykpIFwKLSAgICBtYWNybyhwYXRjaHBvaW50Vm9pZCwgImxs
dm0uZXhwZXJpbWVudGFsLnBhdGNocG9pbnQudm9pZCIsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwg
aW50MzIsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFkaWMpKSBcCi0gICAgbWFjcm8oc3RhY2tt
YXAsICJsbHZtLmV4cGVyaW1lbnRhbC5zdGFja21hcCIsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwg
aW50MzIsIGludDMyLCBWYXJpYWRpYykpIFwKKyAgICBtYWNybyhwYXRjaHBvaW50SW50NjQsICJs
bHZtLmV4cGVyaW1lbnRhbC5wYXRjaHBvaW50Lmk2NCIsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50
NjQsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFkaWMpKSBcCisgICAgbWFjcm8ocGF0Y2hwb2lu
dFZvaWQsICJsbHZtLmV4cGVyaW1lbnRhbC5wYXRjaHBvaW50LnZvaWQiLCBmdW5jdGlvblR5cGUo
dm9pZFR5cGUsIGludDY0LCBpbnQzMiwgcmVmOCwgaW50MzIsIFZhcmlhZGljKSkgXAorICAgIG1h
Y3JvKHN0YWNrbWFwLCAibGx2bS5leHBlcmltZW50YWwuc3RhY2ttYXAiLCBmdW5jdGlvblR5cGUo
dm9pZFR5cGUsIGludDY0LCBpbnQzMiwgVmFyaWFkaWMpKSBcCiAgICAgbWFjcm8oc3ViV2l0aE92
ZXJmbG93MzIsICJsbHZtLnNzdWIud2l0aC5vdmVyZmxvdy5pMzIiLCBmdW5jdGlvblR5cGUoc3Ry
dWN0VHlwZShtX2NvbnRleHQsIGludDMyLCBib29sZWFuKSwgaW50MzIsIGludDMyKSkgXAogICAg
IG1hY3JvKHN1YldpdGhPdmVyZmxvdzY0LCAibGx2bS5zc3ViLndpdGgub3ZlcmZsb3cuaTY0Iiwg
ZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBpbnQ2NCwgYm9vbGVhbiksIGludDY0
LCBpbnQ2NCkpIFwKICAgICBtYWNybyh0cmFwLCAibGx2bS50cmFwIiwgZnVuY3Rpb25UeXBlKHZv
aWRUeXBlKSkgXAogICAgIG1hY3JvKHg4NlNTRTJDdnRUU0QyU0ksICJsbHZtLng4Ni5zc2UyLmN2
dHRzZDJzaSIsIGZ1bmN0aW9uVHlwZShpbnQzMiwgdmVjdG9yVHlwZShkb3VibGVUeXBlLCAyKSkp
CiAKICNkZWZpbmUgRk9SX0VBQ0hfRlVOQ1RJT05fVFlQRShtYWNybykgXAorICAgIG1hY3JvKENf
SklUT3BlcmF0aW9uX0VDLCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludFB0cikpIFwK
KyAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FSiwgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50UHRy
LCBpbnQ2NCkpIFwKKyAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FSnNzSnNzLCBmdW5jdGlvblR5
cGUoaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAorICAgIG1hY3JvKENfSklUT3Bl
cmF0aW9uX0VKc3NKc3NKc3MsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyLCBp
bnRQdHIsIGludFB0cikpIFwKICAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FU3QsIGZ1bmN0aW9u
VHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAogICAgIG1hY3JvKElfSklUT3BlcmF0aW9u
X0VKc3MsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAogICAgIG1hY3Jv
KEpfSklUT3BlcmF0aW9uX0UsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyKSkgXApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuY3BwCShyZXZpc2lvbiAxNjI5NjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01NCwyNyArNTQsMzUgQEAgdm9pZCBKSVRDb2RlOjphZGREYXRhU2VjdGlvbihSZWZD
b3VudGVkQQogICAgIG1fZGF0YVNlY3Rpb25zLmFwcGVuZChkYXRhU2VjdGlvbik7CiB9CiAKLXZv
aWQgSklUQ29kZTo6aW5pdGlhbGl6ZUNvZGUoQ29kZVJlZiBlbnRyeXBvaW50KQordm9pZCBKSVRD
b2RlOjppbml0aWFsaXplQXJpdHlDaGVja0VudHJ5cG9pbnQoQ29kZVJlZiBlbnRyeXBvaW50KQog
ewotICAgIG1fZW50cnlwb2ludCA9IGVudHJ5cG9pbnQ7CisgICAgbV9hcml0eUNoZWNrRW50cnlw
b2ludCA9IGVudHJ5cG9pbnQ7CiB9CiAKLUpJVENvZGU6OkNvZGVQdHIgSklUQ29kZTo6YWRkcmVz
c0ZvckNhbGwoKQordm9pZCBKSVRDb2RlOjppbml0aWFsaXplQWRkcmVzc0ZvckNhbGwoQ29kZVB0
ciBhZGRyZXNzKQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1fZW50cnlwb2ludCk7Ci0gICAgcmV0
dXJuIG1fZW50cnlwb2ludC5jb2RlKCk7CisgICAgbV9hZGRyZXNzRm9yQ2FsbCA9IGFkZHJlc3M7
Cit9CisKK0pJVENvZGU6OkNvZGVQdHIgSklUQ29kZTo6YWRkcmVzc0ZvckNhbGwoVk0mLCBFeGVj
dXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlIGFyaXR5Q2hlY2ssIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTW9kZSkKK3sKKyAgICBzd2l0Y2ggKGFyaXR5Q2hlY2spIHsKKyAgICBjYXNlIEFyaXR5Q2hl
Y2tOb3RSZXF1aXJlZDoKKyAgICAgICAgcmV0dXJuIG1fYWRkcmVzc0ZvckNhbGw7CisgICAgY2Fz
ZSBNdXN0Q2hlY2tBcml0eToKKyAgICAgICAgcmV0dXJuIG1fYXJpdHlDaGVja0VudHJ5cG9pbnQu
Y29kZSgpOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBDb2RlUHRyKCk7CiB9CiAKIHZvaWQqIEpJVENvZGU6OmV4ZWN1dGFibGVBZGRyZXNzQXRP
ZmZzZXQoc2l6ZV90IG9mZnNldCkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQp
OwotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2VudHJ5cG9pbnQuY29kZSgp
LmV4ZWN1dGFibGVBZGRyZXNzKCkpICsgb2Zmc2V0OworICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNoYXIqPihtX2FkZHJlc3NGb3JDYWxsLmV4ZWN1dGFibGVBZGRyZXNzKCkpICsgb2Zmc2V0
OwogfQogCiB2b2lkKiBKSVRDb2RlOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCkKIHsKLSAg
ICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgY2FuJ3QgcGF0Y2gg
RlRMIGNvZGUsIHlldC4gRXZlbiBpZiB3ZSBkaWQsIGl0J3Mgbm90IGNsZWFyIHRoYXQgd2Ugd291
bGQgZG8gc28KICAgICAvLyB0aHJvdWdoIHRoaXMgQVBJLgogICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC04Myw4ICs5MSw2IEBAIHZvaWQqIEpJVENvZGU6OmRhdGFBZGRyZXNz
QXRPZmZzZXQoc2l6ZV8KIAogdW5zaWduZWQgSklUQ29kZTo6b2Zmc2V0T2Yodm9pZCopCiB7Ci0g
ICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLQogICAgIC8vIFdlIGN1cnJlbnRseSBk
b24ndCBoYXZlIHZpc2liaWxpdHkgaW50byB0aGUgRlRMIGNvZGUuCiAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKQEAgLTkyLDggKzk4LDYgQEAgdW5zaWdu
ZWQgSklUQ29kZTo6b2Zmc2V0T2Yodm9pZCopCiAKIHNpemVfdCBKSVRDb2RlOjpzaXplKCkKIHsK
LSAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgZG9uJ3Qga25v
dyB0aGUgc2l6ZSBvZiBGVEwgY29kZSwgeWV0LiBNYWtlIGEgd2lsZCBndWVzcy4gVGhpcyBpcyBt
b3N0bHkgdXNlZCBmb3IKICAgICAvLyBHQyBsb2FkIGVzdGltYXRlcy4KICAgICByZXR1cm4gMTAw
MDsKQEAgLTEwMSw4ICsxMDUsNiBAQCBzaXplX3QgSklUQ29kZTo6c2l6ZSgpCiAKIGJvb2wgSklU
Q29kZTo6Y29udGFpbnModm9pZCopCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50
KTsKLQogICAgIC8vIFdlIGhhdmUgbm8gaWRlYSB3aGF0IGFkZHJlc3NlcyB0aGUgRlRMIGNvZGUg
Y29udGFpbnMsIHlldC4KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5oCShy
ZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRGR0NvbW1vbkRh
dGEuaCIKICNpbmNsdWRlICJGVExPU1JFeGl0LmgiCiAjaW5jbHVkZSAiRlRMU3RhY2tNYXBzLmgi
CisjaW5jbHVkZSAiRlRMVW53aW5kSW5mby5oIgogI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNs
dWRlICJMTFZNQVBJLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRBcnJheS5oPgpAQCAtNDYs
MTcgKzQ3LDE4IEBAIHB1YmxpYzoKICAgICBKSVRDb2RlKCk7CiAgICAgfkpJVENvZGUoKTsKICAg
ICAKLSAgICBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKCk7Ci0gICAgdm9pZCogZXhlY3V0YWJsZUFk
ZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KTsKLSAgICB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zm
c2V0KHNpemVfdCBvZmZzZXQpOwotICAgIHVuc2lnbmVkIG9mZnNldE9mKHZvaWQqIHBvaW50ZXJJ
bnRvQ29kZSk7Ci0gICAgc2l6ZV90IHNpemUoKTsKLSAgICBib29sIGNvbnRhaW5zKHZvaWQqKTsK
KyAgICBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNo
ZWNrTW9kZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkKiBl
eGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRlOworICAgIHZv
aWQqIGRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CisgICAgdW5z
aWduZWQgb2Zmc2V0T2Yodm9pZCogcG9pbnRlckludG9Db2RlKSBvdmVycmlkZTsKKyAgICBzaXpl
X3Qgc2l6ZSgpIG92ZXJyaWRlOworICAgIGJvb2wgY29udGFpbnModm9pZCopIG92ZXJyaWRlOwog
ICAgIAogICAgIHZvaWQgaW5pdGlhbGl6ZUV4aXRUaHVua3MoQ29kZVJlZik7CiAgICAgdm9pZCBh
ZGRIYW5kbGUoUGFzc1JlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPik7CiAgICAgdm9pZCBh
ZGREYXRhU2VjdGlvbihSZWZDb3VudGVkQXJyYXk8TFNlY3Rpb25Xb3JkPik7Ci0gICAgdm9pZCBp
bml0aWFsaXplQ29kZShDb2RlUmVmIGVudHJ5cG9pbnQpOworICAgIHZvaWQgaW5pdGlhbGl6ZUFy
aXR5Q2hlY2tFbnRyeXBvaW50KENvZGVSZWYpOworICAgIHZvaWQgaW5pdGlhbGl6ZUFkZHJlc3NG
b3JDYWxsKENvZGVQdHIpOwogICAgIAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8RXhlY3V0YWJs
ZU1lbW9yeUhhbmRsZT4+JiBoYW5kbGVzKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGVzOyB9CiAg
ICAgY29uc3QgVmVjdG9yPFJlZkNvdW50ZWRBcnJheTxMU2VjdGlvbldvcmQ+PiYgZGF0YVNlY3Rp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhU2VjdGlvbnM7IH0KQEAgLTY5LDExICs3MSwxMyBA
QCBwdWJsaWM6CiAgICAgREZHOjpDb21tb25EYXRhIGNvbW1vbjsKICAgICBTZWdtZW50ZWRWZWN0
b3I8T1NSRXhpdCwgOD4gb3NyRXhpdDsKICAgICBTdGFja01hcHMgc3RhY2ttYXBzOworICAgIFVu
d2luZEluZm8gdW53aW5kSW5mbzsKICAgICAKIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZkNvdW50
ZWRBcnJheTxMU2VjdGlvbldvcmQ+PiBtX2RhdGFTZWN0aW9uczsKICAgICBWZWN0b3I8UmVmUHRy
PEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+PiBtX2hhbmRsZXM7Ci0gICAgQ29kZVJlZiBtX2VudHJ5
cG9pbnQ7CisgICAgQ29kZVB0ciBtX2FkZHJlc3NGb3JDYWxsOworICAgIENvZGVSZWYgbV9hcml0
eUNoZWNrRW50cnlwb2ludDsKICAgICBDb2RlUmVmIG1fZXhpdFRodW5rczsKIH07CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5jcHAJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNiArNDUsMjIgQEAgSklURmluYWxpemVyOjp+SklURmlu
YWxpemVyKCkKIHsKIH0KIAorc2l6ZV90IEpJVEZpbmFsaXplcjo6Y29kZVNpemUoKQoreworICAg
IHNpemVfdCByZXN1bHQgPSAwOworICAgIAorICAgIHJlc3VsdCArPSBleGl0VGh1bmtzTGlua0J1
ZmZlci0+c2l6ZSgpOworICAgIHJlc3VsdCArPSBlbnRyeXBvaW50TGlua0J1ZmZlci0+c2l6ZSgp
OworICAgIGlmIChzaWRlQ29kZUxpbmtCdWZmZXIpCisgICAgICAgIHJlc3VsdCArPSBzaWRlQ29k
ZUxpbmtCdWZmZXItPnNpemUoKTsKKyAgICByZXN1bHQgKz0gaGFuZGxlRXhjZXB0aW9uc0xpbmtC
dWZmZXItPnNpemUoKTsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBqaXRDb2RlLT5oYW5k
bGVzKCkuc2l6ZSgpOyBpLS07KQorICAgICAgICByZXN1bHQgKz0gaml0Q29kZS0+aGFuZGxlcygp
W2ldLT5zaXplSW5CeXRlcygpOworICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGJvb2wg
SklURmluYWxpemVyOjpmaW5hbGl6ZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTczLDkgKzg5LDcgQEAgYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rp
b24oKQogICAgICAgICAgICAgZXhpdFRodW5rc0xpbmtCdWZmZXItPmxpbmsoCiAgICAgICAgICAg
ICAgICAgaW5mby5tX3RodW5rSnVtcCwKICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJl
bCgKLSAgICAgICAgICAgICAgICAgICAgbV9wbGFuLnZtLmZ0bFRodW5rcy0+Z2V0T1NSRXhpdEdl
bmVyYXRpb25UaHVuaygKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fcGxhbi52bSwgTG9jYXRp
b246OmZvclN0YWNrbWFwcygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaml0Q29kZS0+
c3RhY2ttYXBzLCBpdGVyLT52YWx1ZS5sb2NhdGlvbnNbMF0pKS5jb2RlKCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9wbGFuLnZtLmdldENUSVN0dWIob3NyRXhpdEdlbmVyYXRpb25UaHVua0dl
bmVyYXRvcikuY29kZSgpKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGppdENvZGUt
PmluaXRpYWxpemVFeGl0VGh1bmtzKApAQCAtMTAyLDE1ICsxMTYsMjYgQEAgYm9vbCBKSVRGaW5h
bGl6ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogICAgICAgICAgICAgLmV4ZWN1dGFibGVNZW1vcnko
KSk7CiAgICAgfQogICAgIAorICAgIGlmIChoYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlcikgewor
ICAgICAgICBqaXRDb2RlLT5hZGRIYW5kbGUoRklOQUxJWkVfREZHX0NPREUoCisgICAgICAgICAg
ICAqaGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXIsCisgICAgICAgICAgICAoIkZUTCBleGNlcHRp
b24gaGFuZGxlciBmb3IgJXMiLAorICAgICAgICAgICAgICAgIHRvQ1N0cmluZyhDb2RlQmxvY2tX
aXRoSklUVHlwZShtX3BsYW4uY29kZUJsb2NrLmdldCgpLCBKSVRDb2RlOjpGVExKSVQpKS5kYXRh
KCkpKQorICAgICAgICAgICAgLmV4ZWN1dGFibGVNZW1vcnkoKSk7CisgICAgfQorICAgIAogICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVjazsKICAgICBpZiAoYXJpdHlDaGVj
ay5pc1NldCgpKQogICAgICAgICB3aXRoQXJpdHlDaGVjayA9IGVudHJ5cG9pbnRMaW5rQnVmZmVy
LT5sb2NhdGlvbk9mKGFyaXR5Q2hlY2spOwotICAgIGppdENvZGUtPmluaXRpYWxpemVDb2RlKAor
ICAgIGppdENvZGUtPmluaXRpYWxpemVBcml0eUNoZWNrRW50cnlwb2ludCgKICAgICAgICAgRklO
QUxJWkVfREZHX0NPREUoCiAgICAgICAgICAgICAqZW50cnlwb2ludExpbmtCdWZmZXIsCiAgICAg
ICAgICAgICAoIkZUTCBlbnRyeXBvaW50IHRodW5rIGZvciAlcyB3aXRoIExMVk0gZ2VuZXJhdGVk
IGNvZGUgYXQgJXAiLCB0b0NTdHJpbmcoQ29kZUJsb2NrV2l0aEpJVFR5cGUobV9wbGFuLmNvZGVC
bG9jay5nZXQoKSwgSklUQ29kZTo6RlRMSklUKSkuZGF0YSgpLCBmdW5jdGlvbikpKTsKICAgICAK
LSAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKGppdENvZGUsIHdpdGhBcml0eUNoZWNr
KTsKKyAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKGppdENvZGUpOworICAgIAorICAg
IGlmIChtX3BsYW4uY29tcGlsYXRpb24pCisgICAgICAgIG1fcGxhbi52bS5tX3BlckJ5dGVjb2Rl
UHJvZmlsZXItPmFkZENvbXBpbGF0aW9uKG1fcGxhbi5jb21waWxhdGlvbik7CiAgICAgCiAgICAg
cmV0dXJuIHRydWU7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZp
bmFsaXplci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklU
RmluYWxpemVyLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMSklURmluYWxpemVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEyICs0NiwxNCBAQCBw
dWJsaWM6CiAgICAgSklURmluYWxpemVyKERGRzo6UGxhbiYpOwogICAgIHZpcnR1YWwgfkpJVEZp
bmFsaXplcigpOwogICAgIAotICAgIGJvb2wgZmluYWxpemUoKTsKLSAgICBib29sIGZpbmFsaXpl
RnVuY3Rpb24oKTsKKyAgICBzaXplX3QgY29kZVNpemUoKSBvdmVycmlkZTsKKyAgICBib29sIGZp
bmFsaXplKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBmaW5hbGl6ZUZ1bmN0aW9uKCkgb3ZlcnJpZGU7
CiAKICAgICBPd25QdHI8TGlua0J1ZmZlcj4gZXhpdFRodW5rc0xpbmtCdWZmZXI7CiAgICAgT3du
UHRyPExpbmtCdWZmZXI+IGVudHJ5cG9pbnRMaW5rQnVmZmVyOwogICAgIE93blB0cjxMaW5rQnVm
ZmVyPiBzaWRlQ29kZUxpbmtCdWZmZXI7CisgICAgT3duUHRyPExpbmtCdWZmZXI+IGhhbmRsZUV4
Y2VwdGlvbnNMaW5rQnVmZmVyOwogICAgIFZlY3RvcjxTbG93UGF0aENhbGw+IHNsb3dQYXRoQ2Fs
bHM7IC8vIENhbGxzIGluc2lkZSB0aGUgc2lkZSBjb2RlLgogICAgIFZlY3RvcjxPU1JFeGl0Q29t
cGlsYXRpb25JbmZvPiBvc3JFeGl0OwogICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBhcml0eUNo
ZWNrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmNwcAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExKU0NhbGwu
aCIKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiREZHTm9kZS5oIgorCituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK0pTQ2FsbDo6SlNDYWxsKHVuc2lnbmVkIHN0
YWNrbWFwSUQsIERGRzo6Tm9kZSogbm9kZSkKKyAgICA6IG1fc3RhY2ttYXBJRChzdGFja21hcElE
KQorICAgICwgbV9ub2RlKG5vZGUpCisgICAgLCBtX2luc3RydWN0aW9uT2Zmc2V0KDApCit7Cit9
CisKK3ZvaWQgSlNDYWxsOjplbWl0KENDYWxsSGVscGVycyYgaml0KQoreworICAgIENDYWxsSGVs
cGVyczo6SnVtcCBzbG93UGF0aCA9IGppdC5icmFuY2hQdHJXaXRoUGF0Y2goCisgICAgICAgIEND
YWxsSGVscGVyczo6Tm90RXF1YWwsIEdQUkluZm86OnJlZ1QwLCBtX3RhcmdldFRvQ2hlY2ssCisg
ICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigwKSk7CisgICAgCisgICAgaml0Lmxv
YWRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNG
dW5jdGlvbjo6b2Zmc2V0T2ZTY29wZUNoYWluKCkpLAorICAgICAgICBHUFJJbmZvOjpyZWdUMSk7
CisgICAgaml0LnN0b3JlNjQoCisgICAgICAgIEdQUkluZm86OnJlZ1QxLAorICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyLAorICAgICAgICAgICAgc2l6ZW9mKFJlZ2lzdGVyKSAqIChKU1N0YWNrOjpTY29w
ZUNoYWluIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpKSk7CisgICAgCisgICAgbV9m
YXN0Q2FsbCA9IGppdC5uZWFyQ2FsbCgpOworICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0g
aml0Lmp1bXAoKTsKKyAgICAKKyAgICBzbG93UGF0aC5saW5rKCZqaXQpOworICAgIG1fc2xvd0Nh
bGwgPSBqaXQubmVhckNhbGwoKTsKKyAgICAKKyAgICBkb25lLmxpbmsoJmppdCk7Cit9CisKK3Zv
aWQgSlNDYWxsOjpsaW5rKFZNJiB2bSwgTGlua0J1ZmZlciYgbGlua0J1ZmZlciwgQ2FsbExpbmtJ
bmZvJiBjYWxsSW5mbykKK3sKKyAgICBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IgPSBsaW5rVGh1
bmtHZW5lcmF0b3JGb3IoCisgICAgICAgIG1fbm9kZS0+b3AoKSA9PSBERkc6OkNvbnN0cnVjdCA/
IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwKKyAgICAgICAgTXVzdFByZXNlcnZlUmVn
aXN0ZXJzKTsKKyAgICAKKyAgICBsaW5rQnVmZmVyLmxpbmsoCisgICAgICAgIG1fc2xvd0NhbGws
IEZ1bmN0aW9uUHRyKHZtLmdldENUSVN0dWIoZ2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSkpOworICAgIAorICAgIGNhbGxJbmZvLmlzRlRMID0gdHJ1ZTsKKyAgICBjYWxsSW5m
by5jYWxsVHlwZSA9IG1fbm9kZS0+b3AoKSA9PSBERkc6OkNvbnN0cnVjdCA/IENhbGxMaW5rSW5m
bzo6Q29uc3RydWN0IDogQ2FsbExpbmtJbmZvOjpDYWxsOworICAgIGNhbGxJbmZvLmNvZGVPcmln
aW4gPSBtX25vZGUtPmNvZGVPcmlnaW47CisgICAgY2FsbEluZm8uY2FsbFJldHVybkxvY2F0aW9u
ID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9zbG93Q2FsbCk7CisgICAgY2FsbElu
Zm8uaG90UGF0aEJlZ2luID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mKG1fdGFyZ2V0VG9DaGVjayk7
CisgICAgY2FsbEluZm8uaG90UGF0aE90aGVyID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNh
bGwobV9mYXN0Q2FsbCk7CisgICAgY2FsbEluZm8uY2FsbGVlR1BSID0gR1BSSW5mbzo6cmVnVDA7
Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExf
SklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBGVExKU0NhbGxfaAorI2RlZmluZSBGVExKU0NhbGxfaAorCisj
aWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRl
ICJDYWxsTGlua0luZm8uaCIKKyNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCisjaW5jbHVkZSAiTGlu
a0J1ZmZlci5oIgorCituYW1lc3BhY2UgSlNDIHsKKworbmFtZXNwYWNlIERGRyB7CitzdHJ1Y3Qg
Tm9kZTsKK30KKworbmFtZXNwYWNlIEZUTCB7CisKK2NsYXNzIEpTQ2FsbCB7CitwdWJsaWM6Cisg
ICAgSlNDYWxsKHVuc2lnbmVkIHN0YWNrbWFwSUQsIERGRzo6Tm9kZSopOworICAgIAorICAgIHZv
aWQgZW1pdChDQ2FsbEhlbHBlcnMmKTsKKyAgICB2b2lkIGxpbmsoVk0mLCBMaW5rQnVmZmVyJiwg
Q2FsbExpbmtJbmZvJik7CisgICAgCisgICAgdW5zaWduZWQgc3RhY2ttYXBJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhY2ttYXBJRDsgfQorICAgIAorICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IEpT
Q2FsbCYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pbnN0cnVjdGlvbk9m
ZnNldCA8IG90aGVyLm1faW5zdHJ1Y3Rpb25PZmZzZXQ7CisgICAgfQorICAgIAorcHJpdmF0ZToK
KyAgICB1bnNpZ25lZCBtX3N0YWNrbWFwSUQ7CisgICAgREZHOjpOb2RlKiBtX25vZGU7CisgICAg
Q0NhbGxIZWxwZXJzOjpEYXRhTGFiZWxQdHIgbV90YXJnZXRUb0NoZWNrOworICAgIENDYWxsSGVs
cGVyczo6Q2FsbCBtX2Zhc3RDYWxsOworICAgIENDYWxsSGVscGVyczo6Q2FsbCBtX3Nsb3dDYWxs
OworCitwdWJsaWM6CisgICAgdWludDMyX3QgbV9pbnN0cnVjdGlvbk9mZnNldDsKK307CisKK30g
fSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisj
ZW5kaWYgLy8gRlRMSlNDYWxsX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMaW5rLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExp
bmsuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExpbmsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoRlRM
X0pJVCkKIAorI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1
ZGUgIkNvZGVCbG9ja1dpdGhKSVRUeXBlLmgiCkBAIC0zNywxMjEgKzM4LDE1MCBAQAogI2luY2x1
ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiTExWTUFQSS5oIgogI2luY2x1ZGUgIkxpbmtCdWZm
ZXIuaCIKKyNpbmNsdWRlICJQcm9maWxlckNvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiVmlydHVh
bFJlZ2lzdGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAogdXNpbmcg
bmFtZXNwYWNlIERGRzsKIAotc3RhdGljIHZvaWQgY29tcGlsZUVudHJ5KENDYWxsSGVscGVycyYg
aml0KQotewotICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6
cmVnVDIpOwotICAgIGppdC5lbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZv
OjpyZWdUMik7Ci0gICAgaml0LmVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcihqaXQu
Y29kZUJsb2NrKCksIEpTU3RhY2s6OkNvZGVCbG9jayk7Ci19Ci0KIHZvaWQgbGluayhTdGF0ZSYg
c3RhdGUpCiB7Ci0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBzdGF0ZS5ncmFwaC5tX2NvZGVC
bG9jazsKKyAgICBHcmFwaCYgZ3JhcGggPSBzdGF0ZS5ncmFwaDsKKyAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jayA9IGdyYXBoLm1fY29kZUJsb2NrOworICAgIFZNJiB2bSA9IGdyYXBoLm1fdm07CiAg
ICAgCiAgICAgLy8gTExWTSB3aWxsIGNyZWF0ZSBpdHMgb3duIGp1bXAgdGFibGVzIGFzIG5lZWRl
ZC4KICAgICBjb2RlQmxvY2stPmNsZWFyU3dpdGNoSnVtcFRhYmxlcygpOwogICAgIAotICAgIHN0
YXRlLmppdENvZGUtPmNvbW1vbi5mcmFtZVJlZ2lzdGVyQ291bnQgPSBzdGF0ZS5ncmFwaC5mcmFt
ZVJlZ2lzdGVyQ291bnQoKTsKLSAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdp
c3RlckNvdW50Rm9yRXhpdCA9IHN0YXRlLmdyYXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4
aXQoKTsKKyAgICAvLyBGSVhNRTogTmVlZCB0byBrbm93IHRoZSByZWFsIGZyYW1lIHJlZ2lzdGVy
IGNvdW50LgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjU3MjcKKyAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24uZnJhbWVSZWdpc3RlckNvdW50ID0gMTAw
MDsKKyAgICAKKyAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50
Rm9yRXhpdCA9IGdyYXBoLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQoKTsKICAgICAKLSAg
ICBpZiAoIXN0YXRlLmdyYXBoLm1faW5saW5lQ2FsbEZyYW1lcy0+aXNFbXB0eSgpKQotICAgICAg
ICBzdGF0ZS5qaXRDb2RlLT5jb21tb24uaW5saW5lQ2FsbEZyYW1lcyA9IHN0ZDo6bW92ZShzdGF0
ZS5ncmFwaC5tX2lubGluZUNhbGxGcmFtZXMpOworICAgIGlmICghZ3JhcGgubV9pbmxpbmVDYWxs
RnJhbWVzLT5pc0VtcHR5KCkpCisgICAgICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5pbmxpbmVD
YWxsRnJhbWVzID0gc3RkOjptb3ZlKGdyYXBoLm1faW5saW5lQ2FsbEZyYW1lcyk7CiAgICAgCiAg
ICAgLy8gQ3JlYXRlIHRoZSBlbnRyeXBvaW50LiBOb3RlIHRoYXQgd2UgdXNlIHRoaXMgZW50cnlw
b2ludCB0b3RhbGx5IGRpZmZlcmVudGx5CiAgICAgLy8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgd2Un
cmUgZG9pbmcgT1NSIGVudHJ5IG9yIG5vdC4KLSAgICAvLyBGSVhNRTogRXhjZXB0IGZvciBPU1Ig
ZW50cnksIHRoaXMgaXMgYSB0b3RhbCBrbHVkZ2UgLSBMTFZNIHNob3VsZCBqdXN0IHVzZSBvdXIK
LSAgICAvLyBjYWxsaW5nIGNvbnZlbnRpb24uCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMzYyMQotICAgIENDYWxsSGVscGVycyBqaXQoJnN0YXRlLmdy
YXBoLm1fdm0sIGNvZGVCbG9jayk7CisgICAgQ0NhbGxIZWxwZXJzIGppdCgmdm0sIGNvZGVCbG9j
ayk7CiAgICAgCiAgICAgT3duUHRyPExpbmtCdWZmZXI+IGxpbmtCdWZmZXI7CiAgICAgQ0NhbGxI
ZWxwZXJzOjpMYWJlbCBhcml0eUNoZWNrOwotICAgIHN3aXRjaCAoc3RhdGUuZ3JhcGgubV9wbGFu
Lm1vZGUpIHsKLSAgICBjYXNlIEZUTE1vZGU6IHsKLSAgICAgICAgY29tcGlsZUVudHJ5KGppdCk7
CisKKyAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgZnJhbWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoCisgICAgICAgIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIC1zdGF0aWNf
Y2FzdDxpbnQzMl90PihzaXplb2Yodm9pZCopKSk7CiAgICAgCi0gICAgICAgIC8vIFRoaXMgcGFy
dCBpcyBvbmx5IG5lY2Vzc2FyeSBmb3IgZnVuY3Rpb25zLiBXZSBjdXJyZW50bHkgb25seSBjb21w
aWxlIGZ1bmN0aW9ucy4KLSAgICAgICAgCi0gICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgZnJv
bUFyaXR5Q2hlY2sgPSBqaXQubGFiZWwoKTsKLSAgICAgICAgCi0gICAgICAgIC8vIFBsYW50IGEg
Y2hlY2sgdGhhdCBzdWZmaWNpZW50IHNwYWNlIGlzIGF2YWlsYWJsZSBpbiB0aGUgSlNTdGFjay4K
LSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NjI5MQotICAgICAgICBqaXQuYWRkUHRyKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoc3RhdGUuaml0Q29kZS0+Y29tbW9u
LnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVy
KSksCi0gICAgICAgICAgICBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6cmVn
VDEpOwotICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgc3RhY2tDaGVjayA9IGppdC5icmFuY2hQ
dHIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFib3ZlLAotICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3Moc3RhdGUuZ3JhcGgubV92bS5hZGRyZXNzT2ZKU1N0YWNr
TGltaXQoKSksCi0gICAgICAgICAgICBHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIENDYWxsSGVs
cGVyczo6TGFiZWwgZnJvbVN0YWNrQ2hlY2sgPSBqaXQubGFiZWwoKTsKLSAgICAgICAgCi0gICAg
ICAgIGppdC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwotICAgICAgICBqaXQubW92ZSgKLSAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZv
aWQqPihzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbikpLAotICAgICAgICAgICAgR1BSSW5mbzo6bm9u
QXJnR1BSMCk7Ci0gICAgICAgIGppdC5jYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgICAg
ICBqaXQuZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdU
MSk7Ci0gICAgICAgIGppdC5lbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRy
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAgICAgaml0LnJlc3RvcmVSZXR1cm5B
ZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0LnJldCgpOwot
ICAgICAgICAKLSAgICAgICAgc3RhY2tDaGVjay5saW5rKCZqaXQpOwotICAgICAgICBqaXQubW92
ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoY29kZUJsb2NrKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKTsKLSAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQ2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNC
eXRlY29kZU9mZnNldCgwKSksCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihzdGF0
aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7Ci0gICAg
ICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgJnN0YXRlLmdyYXBo
Lm1fdm0udG9wQ2FsbEZyYW1lKTsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxTdGFj
a0NoZWNrID0gaml0LmNhbGwoKTsKLSNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgICAgIC8vIEZJ
WE1FOiBuZWVkIHRvIG1ha2UgdGhpcyBjYWxsIHJlZ2lzdGVyIHdpdGggZXhjZXB0aW9uIGhhbmRs
aW5nIHNvbWVob3cuIFRoaXMgaXMKLSAgICAgICAgLy8gcGFydCBvZiBhIGJpZ2dlciBwcm9ibGVt
OiBGVEwgc2hvdWxkIGJlIGFibGUgdG8gaGFuZGxlIGV4Y2VwdGlvbnMuCi0gICAgICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjIKLSAgICAgICAgLy8g
VW50aWwgdGhlbiwgdXNlIGEgSklUIEFTU0VSVC4KLSAgICAgICAgaml0LmxvYWQ2NChzdGF0ZS5n
cmFwaC5tX3ZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAg
IGppdC5qaXRBc3NlcnRJc051bGwoR1BSSW5mbzo6cmVnVDApOwotI2VuZGlmCi0gICAgICAgIGpp
dC5qdW1wKGZyb21TdGFja0NoZWNrKTsKKyAgICBpZiAoUHJvZmlsZXI6OkNvbXBpbGF0aW9uKiBj
b21waWxhdGlvbiA9IGdyYXBoLmNvbXBpbGF0aW9uKCkpIHsKKyAgICAgICAgY29tcGlsYXRpb24t
PmFkZERlc2NyaXB0aW9uKAorICAgICAgICAgICAgUHJvZmlsZXI6Ok9yaWdpblN0YWNrKCksCisg
ICAgICAgICAgICB0b0NTdHJpbmcoIkdlbmVyYXRlZCBGVEwgSklUIGNvZGUgZm9yICIsIENvZGVC
bG9ja1dpdGhKSVRUeXBlKGNvZGVCbG9jaywgSklUQ29kZTo6RlRMSklUKSwgIiwgaW5zdHJ1Y3Rp
b24gY291bnQgPSAiLCBncmFwaC5tX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25Db3VudCgpLCAiOlxu
IikpOworICAgICAgICAKKyAgICAgICAgZ3JhcGgubV9kb21pbmF0b3JzLmNvbXB1dGVJZk5lY2Vz
c2FyeShncmFwaCk7CisgICAgICAgIGdyYXBoLm1fbmF0dXJhbExvb3BzLmNvbXB1dGVJZk5lY2Vz
c2FyeShncmFwaCk7CisgICAgICAgIAorICAgICAgICBjb25zdCBjaGFyKiBwcmVmaXggPSAiICAg
ICI7CisgICAgICAgIAorICAgICAgICBEdW1wQ29udGV4dCBkdW1wQ29udGV4dDsKKyAgICAgICAg
U3RyaW5nUHJpbnRTdHJlYW0gb3V0OworICAgICAgICBOb2RlKiBsYXN0Tm9kZSA9IDA7CisgICAg
ICAgIGZvciAoc2l6ZV90IGJsb2NrSW5kZXggPSAwOyBibG9ja0luZGV4IDwgZ3JhcGgubnVtQmxv
Y2tzKCk7ICsrYmxvY2tJbmRleCkgeworICAgICAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSBn
cmFwaC5ibG9jayhibG9ja0luZGV4KTsKKyAgICAgICAgICAgIGlmICghYmxvY2spCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdyYXBoLmR1bXBC
bG9ja0hlYWRlcihvdXQsIHByZWZpeCwgYmxvY2ssIEdyYXBoOjpEdW1wTGl2ZVBoaXNPbmx5LCAm
ZHVtcENvbnRleHQpOworICAgICAgICAgICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKFBy
b2ZpbGVyOjpPcmlnaW5TdGFjaygpLCBvdXQudG9DU3RyaW5nKCkpOworICAgICAgICAgICAgb3V0
LnJlc2V0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IG5vZGVJbmRl
eCA9IDA7IG5vZGVJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsrbm9kZUluZGV4KSB7CisgICAgICAg
ICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOworICAgICAgICAgICAg
ICAgIGlmICghbm9kZS0+d2lsbEhhdmVDb2RlR2VuT3JPU1IoKSAmJiAhT3B0aW9uczo6c2hvd0Fs
bERGR05vZGVzKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIFByb2ZpbGVyOjpPcmlnaW5TdGFjayBzdGFjazsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+Y29kZU9yaWdpbi5pc1NldCgp
KSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrID0gUHJvZmlsZXI6Ok9yaWdpblN0YWNrKAor
ICAgICAgICAgICAgICAgICAgICAgICAgKnZtLm1fcGVyQnl0ZWNvZGVQcm9maWxlciwgY29kZUJs
b2NrLCBub2RlLT5jb2RlT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgaWYgKGdyYXBoLmR1bXBDb2RlT3JpZ2luKG91dCwgcHJlZml4
LCBsYXN0Tm9kZSwgbm9kZSwgJmR1bXBDb250ZXh0KSkgeworICAgICAgICAgICAgICAgICAgICBj
b21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oc3RhY2ssIG91dC50b0NTdHJpbmcoKSk7CisgICAg
ICAgICAgICAgICAgICAgIG91dC5yZXNldCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBncmFwaC5kdW1wKG91dCwgcHJlZml4LCBub2RlLCAm
ZHVtcENvbnRleHQpOworICAgICAgICAgICAgICAgIGNvbXBpbGF0aW9uLT5hZGREZXNjcmlwdGlv
bihzdGFjaywgb3V0LnRvQ1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBvdXQucmVzZXQoKTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+Y29kZU9yaWdpbi5p
c1NldCgpKQorICAgICAgICAgICAgICAgICAgICBsYXN0Tm9kZSA9IG5vZGU7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGR1bXBDb250ZXh0LmR1bXAob3V0LCBw
cmVmaXgpOworICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oUHJvZmlsZXI6Ok9y
aWdpblN0YWNrKCksIG91dC50b0NTdHJpbmcoKSk7CisgICAgICAgIG91dC5yZXNldCgpOworICAg
ICAgICAKKyAgICAgICAgb3V0LnByaW50KCIgICAgRGlzYXNzZW1ibHk6XG4iKTsKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRlLmppdENvZGUtPmhhbmRsZXMoKS5zaXplKCk7
ICsraSkgeworICAgICAgICAgICAgaWYgKHN0YXRlLmNvZGVTZWN0aW9uTmFtZXNbaV0gIT0gIl9f
dGV4dCIpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBoYW5kbGUgPSBzdGF0ZS5qaXRDb2RlLT5o
YW5kbGVzKClbaV0uZ2V0KCk7CisgICAgICAgICAgICAgICAgZGlzYXNzZW1ibGUoCisgICAgICAg
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cihoYW5kbGUtPnN0YXJ0KCkpLCBoYW5k
bGUtPnNpemVJbkJ5dGVzKCksCisgICAgICAgICAgICAgICAgICAgICIgICAgICAiLCBvdXQsIExM
Vk1TdWJzZXQpOworICAgICAgICB9CisgICAgICAgIGNvbXBpbGF0aW9uLT5hZGREZXNjcmlwdGlv
bihQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwgb3V0LnRvQ1N0cmluZygpKTsKKyAgICAgICAgb3V0
LnJlc2V0KCk7CiAgICAgICAgIAotICAgICAgICBhcml0eUNoZWNrID0gaml0LmxhYmVsKCk7Ci0g
ICAgICAgIGNvbXBpbGVFbnRyeShqaXQpOworICAgICAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24u
Y29tcGlsYXRpb24gPSBjb21waWxhdGlvbjsKKyAgICB9CisgICAgCisgICAgc3dpdGNoIChncmFw
aC5tX3BsYW4ubW9kZSkgeworICAgIGNhc2UgRlRMTW9kZTogeworICAgICAgICBDQ2FsbEhlbHBl
cnM6Okp1bXBMaXN0IG1haW5QYXRoSnVtcHM7CisgICAgCiAgICAgICAgIGppdC5sb2FkMzIoCi0g
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnBheWxvYWRGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJl
Z2lzdGVyPihKU1N0YWNrOjpBcmd1bWVudENvdW50KSksCisgICAgICAgICAgICBmcmFtZS53aXRo
T2Zmc2V0KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpBcmd1bWVudENvdW50KSwKICAgICAg
ICAgICAgIEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0LmJyYW5jaDMyKAorICAgICAgICBt
YWluUGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoMzIoCiAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFib3ZlT3JFcXVhbCwgR1BSSW5mbzo6cmVnVDEsCi0gICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkpCi0gICAgICAgICAg
ICAubGlua1RvKGZyb21Bcml0eUNoZWNrLCAmaml0KTsKKyAgICAgICAgICAgIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSkpOworICAgICAgICBq
aXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgICAgIGppdC5zdG9y
ZTMyKAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQ2FsbEZyYW1lOjpM
b2NhdGlvbjo6ZW5jb2RlQXNCeXRlY29kZU9mZnNldCgwKSksCi0gICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OnRhZ0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQpKSk7Ci0gICAgICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgJnN0YXRlLmdyYXBoLm1fdm0udG9wQ2FsbEZyYW1lKTsKKyAgICAgICAgICAgIENDYWxs
SGVscGVyczo6dGFnRm9yKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKTsKKyAgICAgICAgaml0LnN0
b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAmdm0udG9wQ2FsbEZyYW1lKTsKICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxBcml0eUNoZWNrID0gaml0LmNhbGwoKTsKICNp
ZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAgIC8vIEZJWE1FOiBuZWVkIHRvIG1ha2UgdGhpcyBj
YWxsIHJlZ2lzdGVyIHdpdGggZXhjZXB0aW9uIGhhbmRsaW5nIHNvbWVob3cuIFRoaXMgaXMKICAg
ICAgICAgLy8gcGFydCBvZiBhIGJpZ2dlciBwcm9ibGVtOiBGVEwgc2hvdWxkIGJlIGFibGUgdG8g
aGFuZGxlIGV4Y2VwdGlvbnMuCiAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTM2MjIKICAgICAgICAgLy8gVW50aWwgdGhlbiwgdXNlIGEgSklUIEFT
U0VSVC4KLSAgICAgICAgaml0LmxvYWQ2NChzdGF0ZS5ncmFwaC5tX3ZtLmFkZHJlc3NPZkV4Y2Vw
dGlvbigpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgICAgIGppdC5sb2FkNjQodm0uYWRkcmVzc09m
RXhjZXB0aW9uKCksIEdQUkluZm86OnJlZ1QxKTsKICAgICAgICAgaml0LmppdEFzc2VydElzTnVs
bChHUFJJbmZvOjpyZWdUMSk7CiAjZW5kaWYKLSAgICAgICAgaWYgKEdQUkluZm86OnJldHVyblZh
bHVlR1BSICE9IEdQUkluZm86OnJlZ1QwKQotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgaml0LmJyYW5jaFRlc3Qz
MihDQ2FsbEhlbHBlcnM6Olplcm8sIEdQUkluZm86OnJlZ1QwKS5saW5rVG8oZnJvbUFyaXR5Q2hl
Y2ssICZqaXQpOworICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BS
SW5mbzo6cmVnVDApOworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAg
ICAgbWFpblBhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5jaFRlc3QzMihDQ2FsbEhlbHBlcnM6Olpl
cm8sIEdQUkluZm86OnJlZ1QwKSk7CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgp
OworICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodm0uYXJpdHlD
aGVja0ZhaWxSZXR1cm5UaHVua3MtPnJldHVyblBDc0Zvcih2bSwgY29kZUJsb2NrLT5udW1QYXJh
bWV0ZXJzKCkpKSwgR1BSSW5mbzo6cmVnVDUpOworICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhl
bHBlcnM6OkJhc2VJbmRleChHUFJJbmZvOjpyZWdUNSwgR1BSSW5mbzo6cmVnVDAsIENDYWxsSGVs
cGVyczo6dGltZXNQdHIoKSksIEdQUkluZm86OnJlZ1Q1KTsKICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpDYWxsIGNhbGxBcml0eUZpeHVwID0gaml0LmNhbGwoKTsKLSAgICAgICAgaml0Lmp1bXAoZnJv
bUFyaXR5Q2hlY2spOwotICAgICAgICAKLSAgICAgICAgbGlua0J1ZmZlciA9IGFkb3B0UHRyKG5l
dyBMaW5rQnVmZmVyKHN0YXRlLmdyYXBoLm1fdm0sICZqaXQsIGNvZGVCbG9jaywgSklUQ29tcGls
YXRpb25NdXN0U3VjY2VlZCkpOwotICAgICAgICBsaW5rQnVmZmVyLT5saW5rKGNhbGxTdGFja0No
ZWNrLCBvcGVyYXRpb25TdGFja0NoZWNrKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CisgICAgICAgIG1haW5QYXRoSnVtcHMuYXBwZW5kKGppdC5qdW1wKCkpOworCisgICAg
ICAgIGxpbmtCdWZmZXIgPSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcih2bSwgJmppdCwgY29kZUJs
b2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7CiAgICAgICAgIGxpbmtCdWZmZXItPmxp
bmsoY2FsbEFyaXR5Q2hlY2ssIGNvZGVCbG9jay0+bV9pc0NvbnN0cnVjdG9yID8gb3BlcmF0aW9u
Q29uc3RydWN0QXJpdHlDaGVjayA6IG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrKTsKLSAgICAgICAg
bGlua0J1ZmZlci0+bGluayhjYWxsQXJpdHlGaXh1cCwgRnVuY3Rpb25QdHIoKHN0YXRlLmdyYXBo
Lm1fdm0uZ2V0Q1RJU3R1Yihhcml0eUZpeHVwKSkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkp
KTsKKyAgICAgICAgbGlua0J1ZmZlci0+bGluayhjYWxsQXJpdHlGaXh1cCwgRnVuY3Rpb25QdHIo
KHZtLmdldENUSVN0dWIoYXJpdHlGaXh1cCkpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7
CisgICAgICAgIGxpbmtCdWZmZXItPmxpbmsobWFpblBhdGhKdW1wcywgQ29kZUxvY2F0aW9uTGFi
ZWwoYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbikpKTsKKworICAg
ICAgICBzdGF0ZS5qaXRDb2RlLT5pbml0aWFsaXplQWRkcmVzc0ZvckNhbGwoTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24pKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCkBAIC0xNjAsMTggKzE5MCwxNCBAQCB2
b2lkIGxpbmsoU3RhdGUmIHN0YXRlKQogICAgICAgICAvLyB2YWx1ZXMgaW50byB0aGUgc2NyYXRj
aCBidWZmZXIuIEV2ZXJ5dGhpbmcgc2hvdWxkIGJlIGdvb2QgdG8gZ28gLSBhdCB0aGlzCiAgICAg
ICAgIC8vIHBvaW50IHdlJ3ZlIGV2ZW4gZG9uZSB0aGUgc3RhY2sgY2hlY2suIEJhc2ljYWxseSB3
ZSBqdXN0IGhhdmUgdG8gbWFrZSB0aGUKICAgICAgICAgLy8gY2FsbCB0byB0aGUgTExWTS1nZW5l
cmF0ZWQgY29kZS4KLSAgICAgICAgaml0LnNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7Ci0gICAg
ICAgIGppdC5tb3ZlKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uKSksCi0gICAgICAg
ICAgICBHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9u
QXJnR1BSMCk7Ci0gICAgICAgIGppdC5lbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVy
UHRyKEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21D
YWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgICAgICBq
aXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6cmVnVDEpOwotICAg
ICAgICBqaXQucmV0KCk7CisgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgc3RhcnQgPSBqaXQu
bGFiZWwoKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAgIEND
YWxsSGVscGVyczo6SnVtcCBtYWluUGF0aEp1bXAgPSBqaXQuanVtcCgpOwogICAgICAgICAKLSAg
ICAgICAgbGlua0J1ZmZlciA9IGFkb3B0UHRyKG5ldyBMaW5rQnVmZmVyKAotICAgICAgICAgICAg
c3RhdGUuZ3JhcGgubV92bSwgJmppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNj
ZWVkKSk7CisgICAgICAgIGxpbmtCdWZmZXIgPSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcih2bSwg
JmppdCwgY29kZUJsb2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKSk7CisgICAgICAgIGxp
bmtCdWZmZXItPmxpbmsobWFpblBhdGhKdW1wLCBDb2RlTG9jYXRpb25MYWJlbChiaXR3aXNlX2Nh
c3Q8dm9pZCo+KHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uKSkpOworCisgICAgICAgIHN0YXRlLmpp
dENvZGUtPmluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbChsaW5rQnVmZmVyLT5sb2NhdGlvbk9mKHN0
YXJ0KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oIgogI2luY2x1ZGUgIkRGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmgiCiAj
aW5jbHVkZSAiRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIgorI2luY2x1ZGUgIkZUTEF2YWls
YWJsZVJlY292ZXJ5LmgiCiAjaW5jbHVkZSAiRlRMRm9yT1NSRW50cnlKSVRDb2RlLmgiCiAjaW5j
bHVkZSAiRlRMRm9ybWF0dGVkVmFsdWUuaCIKICNpbmNsdWRlICJGVExJbmxpbmVDYWNoZVNpemUu
aCIKQEAgLTUxLDYgKzUyLDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBERkc7CiAKIHN0YXRpYyBzdGQ6
OmF0b21pYzxpbnQ+IGNvbXBpbGVDb3VudGVyOwogCisvLyBGSVhNRTogR2V0IHJpZCBvZiB0aGlz
IGFuZCBpbnRyb2R1Y2UgYSByZWFsIHN0YWNrIGNoZWNrLgorLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTY1MAorc3RhdGljIHVpbnRwdHJfdCBzdGFja0xpbWl0
OworCiAvLyBVc2luZyB0aGlzIGluc3RlYWQgb2YgdHlwZUNoZWNrKCkgaGVscHMgdG8gcmVkdWNl
IHRoZSBsb2FkIG9uIExMVk0sIGJ5IGNyZWF0aW5nCiAvLyBzaWduaWZpY2FudGx5IGxlc3MgZGVh
ZCBjb2RlLgogI2RlZmluZSBGVExfVFlQRV9DSEVDSyhsb3dWYWx1ZSwgaGlnaFZhbHVlLCB0eXBl
c1Bhc3NlZFRocm91Z2gsIGZhaWxDb25kaXRpb24pIGRvIHsgXApAQCAtOTIsMTkgKzk3LDIwIEBA
IHB1YmxpYzoKICAgICAgICAgICAgIGxsdm0tPk1vZHVsZUNyZWF0ZVdpdGhOYW1lSW5Db250ZXh0
KG5hbWUuZGF0YSgpLCBtX2Z0bFN0YXRlLmNvbnRleHQpOwogICAgICAgICAKICAgICAgICAgbV9m
dGxTdGF0ZS5mdW5jdGlvbiA9IGFkZEZ1bmN0aW9uKAotICAgICAgICAgICAgbV9mdGxTdGF0ZS5t
b2R1bGUsIG5hbWUuZGF0YSgpLCBmdW5jdGlvblR5cGUobV9vdXQuaW50NjQsIG1fb3V0LmludFB0
cikpOworICAgICAgICAgICAgbV9mdGxTdGF0ZS5tb2R1bGUsIG5hbWUuZGF0YSgpLCBmdW5jdGlv
blR5cGUobV9vdXQuaW50NjQpKTsKICAgICAgICAgc2V0RnVuY3Rpb25DYWxsaW5nQ29udihtX2Z0
bFN0YXRlLmZ1bmN0aW9uLCBMTFZNQ0NhbGxDb252KTsKKyAgICAgICAgaWYgKGlzWDg2KCkgJiYg
T3B0aW9uczo6bGx2bURpc2FsbG93QVZYKCkpIHsKKyAgICAgICAgICAgIC8vIEFWWCBtYWtlcyBW
OC9yYXl0cmFjZSA4MCUgc2xvd2VyLiBJdCBtYWtlcyBLcmFrZW4vYXVkaW8tb3NjaWxsYXRvciA0
LjV4CisgICAgICAgICAgICAvLyBzbG93ZXIuIEl0IHNob3VsZCBiZSBkaXNhYmxlZC4KKyAgICAg
ICAgICAgIGFkZFRhcmdldERlcGVuZGVudEZ1bmN0aW9uQXR0cihtX2Z0bFN0YXRlLmZ1bmN0aW9u
LCAidGFyZ2V0LWZlYXR1cmVzIiwgIi1hdngiKTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgbV9vdXQuaW5pdGlhbGl6ZShtX2Z0bFN0YXRlLm1vZHVsZSwgbV9mdGxTdGF0ZS5mdW5jdGlv
biwgbV9oZWFwcyk7CiAgICAgICAgIAotICAgICAgICBtX3Byb2xvZ3VlID0gYXBwZW5kQmFzaWNC
bG9jayhtX2Z0bFN0YXRlLmNvbnRleHQsIG1fZnRsU3RhdGUuZnVuY3Rpb24pOwotICAgICAgICBt
X291dC5hcHBlbmRUbyhtX3Byb2xvZ3VlKTsKLSAgICAgICAgY3JlYXRlUGhpVmFyaWFibGVzKCk7
Ci0gICAgICAgIAotICAgICAgICBtX2NhbGxGcmFtZSA9IG1fb3V0LnBhcmFtKDApOwotICAgICAg
ICBtX3RhZ1R5cGVOdW1iZXIgPSBtX291dC5jb25zdEludDY0KFRhZ1R5cGVOdW1iZXIpOwotICAg
ICAgICBtX3RhZ01hc2sgPSBtX291dC5jb25zdEludDY0KFRhZ01hc2spOwotICAgICAgICAKKyAg
ICAgICAgbV9wcm9sb2d1ZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiUHJvbG9ndWUiKSk7Cisg
ICAgICAgIExCYXNpY0Jsb2NrIHN0YWNrT3ZlcmZsb3cgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IlN0YWNrIG92ZXJmbG93IikpOworICAgICAgICBtX2hhbmRsZUV4Y2VwdGlvbnMgPSBGVExfTkVX
X0JMT0NLKG1fb3V0LCAoIkhhbmRsZSBFeGNlcHRpb25zIikpOworCiAgICAgICAgIGZvciAoQmxv
Y2tJbmRleCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8IG1fZ3JhcGgubnVtQmxvY2tzKCk7
ICsrYmxvY2tJbmRleCkgewogICAgICAgICAgICAgbV9oaWdoQmxvY2sgPSBtX2dyYXBoLmJsb2Nr
KGJsb2NrSW5kZXgpOwogICAgICAgICAgICAgaWYgKCFtX2hpZ2hCbG9jaykKQEAgLTExMiw4ICsx
MTgsNDIgQEAgcHVibGljOgogICAgICAgICAgICAgbV9ibG9ja3MuYWRkKG1faGlnaEJsb2NrLCBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIkJsb2NrICIsICptX2hpZ2hCbG9jaykpKTsKICAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8obV9wcm9sb2d1ZSk7Ci0gICAgICAg
IG1fb3V0Lmp1bXAobG93QmxvY2sobV9ncmFwaC5ibG9jaygwKSkpOworICAgICAgICBtX291dC5h
cHBlbmRUbyhtX3Byb2xvZ3VlLCBzdGFja092ZXJmbG93KTsKKyAgICAgICAgY3JlYXRlUGhpVmFy
aWFibGVzKCk7CisgICAgICAgIExWYWx1ZSBjYXB0dXJlZEFsbG9jYSA9IG1fb3V0LmFsbG9jYShh
cnJheVR5cGUobV9vdXQuaW50NjQsIG1fZ3JhcGgubV9uZXh0TWFjaGluZUxvY2FsKSk7CisgICAg
ICAgIG1fY2FwdHVyZWQgPSBtX291dC5hZGQoCisgICAgICAgICAgICBtX291dC5wdHJUb0ludChj
YXB0dXJlZEFsbG9jYSwgbV9vdXQuaW50UHRyKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50
UHRyKG1fZ3JhcGgubV9uZXh0TWFjaGluZUxvY2FsICogc2l6ZW9mKFJlZ2lzdGVyKSkpOworICAg
ICAgICAKKyAgICAgICAgLy8gV2Ugc2hvdWxkIG5vdCBjcmVhdGUgYW55IGFsbG9jYSdzIGFmdGVy
IHRoaXMgcG9pbnQsIHNpbmNlIHRoZXkgd2lsbCBjZWFzZSB0bworICAgICAgICAvLyBiZSBtZW0y
cmVnIGNhbmRpZGF0ZXMuCisgICAgICAgIAorICAgICAgICBtX2Z0bFN0YXRlLmNhcHR1cmVkU3Rh
Y2ttYXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsKKyAgICAgICAgbV9vdXQuY2FsbCgKKyAgICAgICAg
ICAgIG1fb3V0LnN0YWNrbWFwSW50cmluc2ljKCksIG1fb3V0LmNvbnN0SW50NjQobV9mdGxTdGF0
ZS5jYXB0dXJlZFN0YWNrbWFwSUQpLAorICAgICAgICAgICAgbV9vdXQuaW50MzJaZXJvLCBjYXB0
dXJlZEFsbG9jYSk7CisgICAgICAgIAorICAgICAgICBtX2NhbGxGcmFtZSA9IG1fb3V0LnB0clRv
SW50KAorICAgICAgICAgICAgbV9vdXQuY2FsbChtX291dC5mcmFtZUFkZHJlc3NJbnRyaW5zaWMo
KSwgbV9vdXQuaW50MzJaZXJvKSwgbV9vdXQuaW50UHRyKTsKKyAgICAgICAgbV90YWdUeXBlTnVt
YmVyID0gbV9vdXQuY29uc3RJbnQ2NChUYWdUeXBlTnVtYmVyKTsKKyAgICAgICAgbV90YWdNYXNr
ID0gbV9vdXQuY29uc3RJbnQ2NChUYWdNYXNrKTsKKyAgICAgICAgCisgICAgICAgIG1fb3V0LnN0
b3JlUHRyKG1fb3V0LmNvbnN0SW50UHRyKGNvZGVCbG9jaygpKSwgYWRkcmVzc0ZvcihKU1N0YWNr
OjpDb2RlQmxvY2spKTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgbV9vdXQu
YmVsb3cobV9jYWxsRnJhbWUsIG1fb3V0LmxvYWRQdHIobV9vdXQuYWJzb2x1dGUoJnN0YWNrTGlt
aXQpKSksCisgICAgICAgICAgICBzdGFja092ZXJmbG93LCBsb3dCbG9jayhtX2dyYXBoLmJsb2Nr
KDApKSk7CisgICAgICAgIAorICAgICAgICBtX291dC5hcHBlbmRUbyhzdGFja092ZXJmbG93LCBt
X2hhbmRsZUV4Y2VwdGlvbnMpOworICAgICAgICAvLyBGSVhNRTogRG8gYSByZWFsIHN0YWNrIGNo
ZWNrIGFuZCB0aHJvdyB0aGUgZXhjZXB0aW9uIGFwcHJvcHJpYXRlbHkuCisgICAgICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU2NTAKKyAgICAgICAgbV9v
dXQuY3Jhc2goKTsKKyAgICAgICAgCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1faGFuZGxlRXhj
ZXB0aW9ucywgbG93QmxvY2sobV9ncmFwaC5ibG9jaygwKSkpOworICAgICAgICBtX2Z0bFN0YXRl
LmhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQgPSBtX3N0YWNrbWFwSURzKys7CisgICAgICAgIG1f
b3V0LmNhbGwoCisgICAgICAgICAgICBtX291dC5zdGFja21hcEludHJpbnNpYygpLCBtX291dC5j
b25zdEludDY0KG1fZnRsU3RhdGUuaGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRCksCisgICAgICAg
ICAgICBtX291dC5jb25zdEludDMyKE1hY3JvQXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRT
aXplKCkpKTsKKyAgICAgICAgbV9vdXQudW5yZWFjaGFibGUoKTsKICAgICAgICAgCiAgICAgICAg
IFZlY3RvcjxCYXNpY0Jsb2NrKj4gZGVwdGhGaXJzdDsKICAgICAgICAgbV9ncmFwaC5nZXRCbG9j
a3NJbkRlcHRoRmlyc3RPcmRlcihkZXB0aEZpcnN0KTsKQEAgLTIyNiw2ICsyNjYsOCBAQCBwcml2
YXRlOgogICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQogICAgICAgICAg
ICAgZGF0YUxvZygiTG93ZXJpbmcgIiwgbV9ub2RlLCAiXG4iKTsKICAgICAgICAgCisgICAgICAg
IG1fYXZhaWxhYmxlUmVjb3Zlcmllcy5yZXNpemUoMCk7CisgICAgICAgIAogICAgICAgICBib29s
IHNob3VsZEV4ZWN1dGVFZmZlY3RzID0gbV9pbnRlcnByZXRlci5zdGFydEV4ZWN1dGluZyhtX25v
ZGUpOwogICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX25vZGUtPm9wKCkpIHsKQEAgLTI2NSwx
OSArMzA3LDE3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBjb21waWxlVmFsdWVBZGQoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoQWRkOgotICAgICAgICAgICAgY29t
cGlsZUFkZFN1YigpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhTdWI6
Ci0gICAgICAgICAgICBjb21waWxlQWRkU3ViKCk7CisgICAgICAgICAgICBjb21waWxlQXJpdGhB
ZGRPclN1YigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhNdWw6CiAg
ICAgICAgICAgICBjb21waWxlQXJpdGhNdWwoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFyaXRoRGl2OgotICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKCk7CisgICAg
ICAgICAgICBjb21waWxlQXJpdGhEaXYoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEFyaXRoTW9kOgotICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKCk7CisgICAgICAg
ICAgICBjb21waWxlQXJpdGhNb2QoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEFyaXRoTWluOgogICAgICAgICBjYXNlIEFyaXRoTWF4OgpAQCAtMjg2LDYgKzMyNiwxNSBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIEFyaXRoQWJzOgogICAgICAgICAgICAgY29tcGlsZUFyaXRo
QWJzKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcml0aFNpbjoKKyAgICAg
ICAgICAgIGNvbXBpbGVBcml0aFNpbigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQXJpdGhDb3M6CisgICAgICAgICAgICBjb21waWxlQXJpdGhDb3MoKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFyaXRoU3FydDoKKyAgICAgICAgICAgIGNvbXBpbGVBcml0
aFNxcnQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTmVnYXRlOgog
ICAgICAgICAgICAgY29tcGlsZUFyaXRoTmVnYXRlKCk7CiAgICAgICAgICAgICBicmVhazsKQEAg
LTMyMiw2ICszNzEsOSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENoZWNrRnVuY3Rpb246CiAg
ICAgICAgICAgICBjb21waWxlQ2hlY2tGdW5jdGlvbigpOwogICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQ2hlY2tFeGVjdXRhYmxlOgorICAgICAgICAgICAgY29tcGlsZUNoZWNrRXhl
Y3V0YWJsZSgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0
cnVjdHVyZToKICAgICAgICAgICAgIGNvbXBpbGVBcnJheWlmeVRvU3RydWN0dXJlKCk7CiAgICAg
ICAgICAgICBicmVhazsKQEAgLTMzNCw2ICszODYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IEdldEJ5SWQ6CiAgICAgICAgICAgICBjb21waWxlR2V0QnlJZCgpOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKICAgICAgICAgY2FzZSBQdXRCeUlkOgog
ICAgICAgICAgICAgY29tcGlsZVB1dEJ5SWQoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzcy
LDkgKzQyNSwxOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIE5ld0FycmF5QnVmZmVyOgogICAg
ICAgICAgICAgY29tcGlsZU5ld0FycmF5QnVmZmVyKCk7CiAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgorICAgICAgICAgICAgY29tcGlsZU5ld0FycmF5
V2l0aFNpemUoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFsbG9jYXRlUHJv
cGVydHlTdG9yYWdlOgogICAgICAgICAgICAgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdl
KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUb1N0cmluZzoKKyAgICAgICAg
ICAgIGNvbXBpbGVUb1N0cmluZygpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
TWFrZVJvcGU6CisgICAgICAgICAgICBjb21waWxlTWFrZVJvcGUoKTsKKyAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFN0cmluZ0NoYXJBdDoKICAgICAgICAgICAgIGNvbXBpbGVTdHJp
bmdDaGFyQXQoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzk2LDYgKzQ1OCwxMiBAQCBwcml2
YXRlOgogICAgICAgICBjYXNlIE5vdGlmeVdyaXRlOgogICAgICAgICAgICAgY29tcGlsZU5vdGlm
eVdyaXRlKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHZXRDYWxsZWU6Cisg
ICAgICAgICAgICBjb21waWxlR2V0Q2FsbGVlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBHZXRTY29wZToKKyAgICAgICAgICAgIGNvbXBpbGVHZXRTY29wZSgpOworICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR2V0TXlTY29wZToKICAgICAgICAgICAgIGNvbXBp
bGVHZXRNeVNjb3BlKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ2Niw2ICs1MzQsMTIgQEAg
cHJpdmF0ZToKICAgICAgICAgY2FzZSBJbnQ1MlRvVmFsdWU6CiAgICAgICAgICAgICBjb21waWxl
SW50NTJUb1ZhbHVlKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVja0Fy
Z3VtZW50c05vdENyZWF0ZWQ6CisgICAgICAgICAgICBjb21waWxlQ2hlY2tBcmd1bWVudHNOb3RD
cmVhdGVkKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb3VudEV4ZWN1dGlv
bjoKKyAgICAgICAgICAgIGNvbXBpbGVDb3VudEV4ZWN1dGlvbigpOworICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgU3RvcmVCYXJyaWVyOgogICAgICAgICAgICAgY29tcGlsZVN0b3Jl
QmFycmllcigpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC00ODIsNiArNTU2LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBWYXJpYWJsZVdhdGNocG9pbnQ6CiAgICAgICAgIGNhc2UgRnVuY3Rp
b25SZWVudHJ5V2F0Y2hwb2ludDoKICAgICAgICAgY2FzZSBUeXBlZEFycmF5V2F0Y2hwb2ludDoK
KyAgICAgICAgY2FzZSBBbGxvY2F0aW9uUHJvZmlsZVdhdGNocG9pbnQ6CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC04MTUsMjQgKzg5MCw1MyBAQCBwcml2YXRlOgogICAgICAgICAgICAgbG93
SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKSkp
OwogICAgIH0KICAgICAKLSAgICB2b2lkIGNvbXBpbGVBZGRTdWIoKQorICAgIHZvaWQgY29tcGls
ZUFyaXRoQWRkT3JTdWIoKQogICAgIHsKICAgICAgICAgYm9vbCBpc1N1YiA9ICBtX25vZGUtPm9w
KCkgPT0gQXJpdGhTdWI7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkp
IHsKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBs
b3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxv
d0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGlz
U3ViID8gbV9vdXQuc3ViKGxlZnQsIHJpZ2h0KSA6IG1fb3V0LmFkZChsZWZ0LCByaWdodCk7CiAK
ICAgICAgICAgICAgIGlmICghc2hvdWxkQ2hlY2tPdmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgp
KSkgewotICAgICAgICAgICAgICAgIHNldEludDMyKHJlc3VsdCk7CisgICAgICAgICAgICAgICAg
c2V0SW50MzIoaXNTdWIgPyBtX291dC5zdWIobGVmdCwgcmlnaHQpIDogbV9vdXQuYWRkKGxlZnQs
IHJpZ2h0KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIExWYWx1ZSBvdmVyZmxvdyA9IGlzU3ViID8gbV9vdXQuc3ViV2l0aE92ZXJmbG93MzIo
bGVmdCwgcmlnaHQpIDogbV9vdXQuYWRkV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQpOworICAg
ICAgICAgICAgTFZhbHVlIHJlc3VsdDsKKyAgICAgICAgICAgIGlmICghaXNTdWIpIHsKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSBtX291dC5hZGRXaXRoT3ZlcmZsb3czMihsZWZ0LCByaWdodCk7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRvZXNLaWxsKG1fbm9kZS0+
Y2hpbGQyKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAor
ICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDIoKSwgU3ViUmVjb3ZlcnksCisg
ICAgICAgICAgICAgICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgbGVm
dCwgVmFsdWVGb3JtYXRJbnQzMik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkb2VzS2ls
bChtX25vZGUtPmNoaWxkMSgpKSkgeworICAgICAgICAgICAgICAgICAgICBhZGRBdmFpbGFibGVS
ZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQxKCksIFN1YlJl
Y292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3Vs
dCwgMCksIHJpZ2h0LCBWYWx1ZUZvcm1hdEludDMyKTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LnN1YldpdGhP
dmVyZmxvdzMyKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gcmVzdWx0ID0gbGVmdCAtIHJpZ2h0CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCAt
IGxlZnQgPSAtcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmlnaHQgPSBsZWZ0IC0gcmVz
dWx0CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAg
ICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDIoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAg
ICAgICAgICAgICAgICBsZWZ0LCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgVmFsdWVG
b3JtYXRJbnQzMik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUt
PmNoaWxkMSgpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgPSBsZWZ0IC0gcmln
aHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0ICsgcmlnaHQgPSBsZWZ0CisgICAgICAg
ICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAg
ICAgbV9ub2RlLT5jaGlsZDEoKSwgQWRkUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAg
ICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgcmlnaHQsIFZhbHVlRm9ybWF0SW50MzIp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgc3BlY3Vs
YXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvdywg
MSkpOwotICAgICAgICAgICAgc2V0SW50MzIocmVzdWx0KTsKKyAgICAgICAgICAgIHNwZWN1bGF0
ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAxKSk7
CisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC04NDgsMTEgKzk1
Miw0MSBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9
IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0g
bG93SW50NTIobV9ub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0g
aXNTdWIgPyBtX291dC5zdWIobGVmdCwgcmlnaHQpIDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KTsK
IAotICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93ID0gaXNTdWIgPyBtX291dC5zdWJXaXRoT3Zl
cmZsb3c2NChsZWZ0LCByaWdodCkgOiBtX291dC5hZGRXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdo
dCk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBt
X291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3csIDEpKTsKLSAgICAgICAgICAgIHNldEludDUyKHJl
c3VsdCk7CisgICAgICAgICAgICBMVmFsdWUgcmVzdWx0OworICAgICAgICAgICAgaWYgKCFpc1N1
YikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmFkZFdpdGhPdmVyZmxvdzY0KGxl
ZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG9lc0tp
bGwobV9ub2RlLT5jaGlsZDIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxl
UmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMigpLCBTdWJS
ZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1
bHQsIDApLCBsZWZ0LCBWYWx1ZUZvcm1hdEludDUyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGFk
ZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGls
ZDEoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5leHRyYWN0
VmFsdWUocmVzdWx0LCAwKSwgcmlnaHQsIFZhbHVlRm9ybWF0SW50NTIpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9v
dXQuc3ViV2l0aE92ZXJmbG93NjQobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMigpKSkgeworICAgICAgICAg
ICAgICAgICAgICAvLyByZXN1bHQgPSBsZWZ0IC0gcmlnaHQKKyAgICAgICAgICAgICAgICAgICAg
Ly8gcmVzdWx0IC0gbGVmdCA9IC1yaWdodAorICAgICAgICAgICAgICAgICAgICAvLyByaWdodCA9
IGxlZnQgLSByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3Zlcnko
CisgICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQsIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQs
IDApLCBWYWx1ZUZvcm1hdEludDUyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNL
aWxsKG1fbm9kZS0+Y2hpbGQxKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCA9
IGxlZnQgLSByaWdodAorICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgKyByaWdodCA9IGxl
ZnQKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgpLCBBZGRSZWNvdmVyeSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCByaWdodCwgVmFsdWVG
b3JtYXRJbnQ1Mik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0
VmFsdWUocmVzdWx0LCAxKSk7CisgICAgICAgICAgICBzZXRJbnQ1MihtX291dC5leHRyYWN0VmFs
dWUocmVzdWx0LCAwKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAg
ICAgCkBAIC04NzYsMTEgKzEwMTAsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJbnQzMlVz
ZTogewogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkp
OwotICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0Lm11bChsZWZ0LCByaWdodCk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGlm
IChzaG91bGRDaGVja092ZXJmbG93KG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAg
ICBpZiAoIXNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpCisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9vdXQubXVsKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0Lm11bFdp
dGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3Zl
cmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAx
KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93
UmVzdWx0LCAwKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CkBAIC05MDQs
MTEgKzEwNDIsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIEludDUyS2luZCBraW5kOwogICAg
ICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dXaGljaGV2ZXJJbnQ1MihtX25vZGUtPmNoaWxkMSgp
LCBraW5kKTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hp
bGQyKCksIG9wcG9zaXRlKGtpbmQpKTsKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291
dC5tdWwobGVmdCwgcmlnaHQpOwotCiAKICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3Vs
dCA9IG1fb3V0Lm11bFdpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAgIHNw
ZWN1bGF0ZShJbnQ1Mk92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShv
dmVyZmxvd1Jlc3VsdCwgMSkpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmV4
dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMCk7CiAKICAgICAgICAgICAgIGlmIChzaG91bGRD
aGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewogICAgICAgICAgICAgICAg
IExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE11bCBz
bG93IGNhc2UiKSk7CkBAIC05MzksMTYgKzEwNzYsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHZvaWQgY29tcGlsZUFyaXRoRGl2TW9kKCkKKyAgICB2b2lkIGNvbXBpbGVB
cml0aERpdigpCiAgICAgewogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgp
KSB7CiAgICAgICAgIGNhc2UgSW50MzJVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSBudW1lcmF0
b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSBkZW5v
bWluYXRvciA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgCi0gICAg
ICAgICAgICBMQmFzaWNCbG9jayB1bnNhZmVEZW5vbWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiQXJpdGhEaXZNb2QgdW5zYWZlIGRlbm9taW5hdG9yIikpOwotICAgICAgICAgICAgTEJh
c2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1v
ZCBjb250aW51YXRpb24iKSk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBkb25lID0gRlRMX05F
V19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCBkb25lIikpOworICAgICAgICAgICAgTEJhc2lj
QmxvY2sgdW5zYWZlRGVub21pbmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2
IHVuc2FmZSBkZW5vbWluYXRvciIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVh
dGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgY29udGludWF0aW9uIikpOwor
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9uZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJp
dGhEaXYgZG9uZSIpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJv
bUJsb2NrLCAzPiByZXN1bHRzOwogICAgICAgICAgICAgCkBAIC05OTEsOCArMTEyOCw4IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGRvbmUpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9u
b2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayB6ZXJvTnVt
ZXJhdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCB6ZXJvIG51bWVyYXRv
ciIpKTsKLSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBudW1lcmF0b3JDb250aW51YXRpb24g
PSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIG51bWVyYXRvciBjb250aW51YXRp
b24iKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgemVyb051bWVyYXRvciA9IEZUTF9O
RVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgemVybyBudW1lcmF0b3IiKSk7CisgICAgICAgICAg
ICAgICAgTEJhc2ljQmxvY2sgbnVtZXJhdG9yQ29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyht
X291dCwgKCJBcml0aERpdiBudW1lcmF0b3IgY29udGludWF0aW9uIikpOwogICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihudW1lcmF0
b3IpLCB6ZXJvTnVtZXJhdG9yLCBudW1lcmF0b3JDb250aW51YXRpb24pOwogICAgICAgICAgICAg
ICAgIApAQCAtMTAwNiwxNyArMTE0MywxNSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKG51bWVyYXRvckNvbnRpbnVhdGlvbiwgaW5uZXJMYXN0TmV4dCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIExWYWx1ZSBkaXZNb2RSZXN1bHQg
PSBtX25vZGUtPm9wKCkgPT0gQXJpdGhEaXYKLSAgICAgICAgICAgICAgICA/IG1fb3V0LmRpdihu
dW1lcmF0b3IsIGRlbm9taW5hdG9yKQotICAgICAgICAgICAgICAgIDogbV9vdXQucmVtKG51bWVy
YXRvciwgZGVub21pbmF0b3IpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmRp
dihudW1lcmF0b3IsIGRlbm9taW5hdG9yKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KHNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKICAgICAgICAgICAg
ICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAgICAgICAgICAgIE92ZXJmbG93LCBub1ZhbHVlKCks
IDAsCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKG1fb3V0Lm11bChkaXZNb2RS
ZXN1bHQsIGRlbm9taW5hdG9yKSwgbnVtZXJhdG9yKSk7CisgICAgICAgICAgICAgICAgICAgIG1f
b3V0Lm5vdEVxdWFsKG1fb3V0Lm11bChyZXN1bHQsIGRlbm9taW5hdG9yKSwgbnVtZXJhdG9yKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5k
KG1fb3V0LmFuY2hvcihkaXZNb2RSZXN1bHQpKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5k
KG1fb3V0LmFuY2hvcihyZXN1bHQpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsK
QEAgLTEwMjYsOSArMTE2MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAgICAgIAog
ICAgICAgICBjYXNlIE51bWJlclVzZTogewotICAgICAgICAgICAgTFZhbHVlIEMxID0gbG93RG91
YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIEMyID0gbG93RG91Ymxl
KG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgc2V0RG91YmxlKG1fbm9kZS0+b3AoKSA9
PSBBcml0aERpdiA/IG1fb3V0LmRvdWJsZURpdihDMSwgQzIpIDogbV9vdXQuZG91YmxlUmVtKEMx
LCBDMikpOworICAgICAgICAgICAgc2V0RG91YmxlKG1fb3V0LmRvdWJsZURpdigKKyAgICAgICAg
ICAgICAgICBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNo
aWxkMigpKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApA
QCAtMTAzOCw2ICsxMTcyLDk5IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAgICAgCisg
ICAgdm9pZCBjb21waWxlQXJpdGhNb2QoKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChtX25vZGUt
PmJpbmFyeVVzZUtpbmQoKSkgeworICAgICAgICBjYXNlIEludDMyVXNlOiB7CisgICAgICAgICAg
ICBMVmFsdWUgbnVtZXJhdG9yID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
ICAgICBMVmFsdWUgZGVub21pbmF0b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2ljQmxvY2sgdW5zYWZlRGVub21pbmF0b3IgPSBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIHVuc2FmZSBkZW5vbWluYXRvciIpKTsKKyAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQs
ICgiQXJpdGhNb2QgY29udGludWF0aW9uIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9u
ZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgZG9uZSIpKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJvbUJsb2NrLCAzPiByZXN1bHRzOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBMVmFsdWUgYWRqdXN0ZWREZW5vbWluYXRvciA9IG1fb3V0LmFk
ZChkZW5vbWluYXRvciwgbV9vdXQuaW50MzJPbmUpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBtX291dC5icmFuY2gobV9vdXQuYWJvdmUoYWRqdXN0ZWREZW5vbWluYXRvciwgbV9vdXQuaW50
MzJPbmUpLCBjb250aW51YXRpb24sIHVuc2FmZURlbm9taW5hdG9yKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyh1bnNhZmVE
ZW5vbWluYXRvciwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZh
bHVlIG5lZzJUb1RoZTMxID0gbV9vdXQuY29uc3RJbnQzMigtMjE0NzQ4MzY0Ny0xKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgLy8gRklYTUU6IC0yXjMxIC8gLTEgd2lsbCBhY3R1YWxseSB5
aWVsZCBuZWdhdGl2ZSB6ZXJvLCBzbyB3ZSBjb3VsZCBoYXZlIGEKKyAgICAgICAgICAgIC8vIHNl
cGFyYXRlIGNhc2UgZm9yIHRoYXQuIEJ1dCBpdCBwcm9iYWJseSBkb2Vzbid0IG1hdHRlciBzbyBt
dWNoLgorICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1v
ZGUoKSkpIHsKKyAgICAgICAgICAgICAgICBMVmFsdWUgY29uZCA9IG1fb3V0LmJpdE9yKG1fb3V0
LmlzWmVybzMyKGRlbm9taW5hdG9yKSwgbV9vdXQuZXF1YWwobnVtZXJhdG9yLCBuZWcyVG9UaGUz
MSkpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBj
b25kKTsKKyAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUg
d2UgY29udmVydCB0aGUgcmVzdWx0IHRvIGFuIGludCBhZnRlciB3ZSdyZSBkb25lLiBTbywKKyAg
ICAgICAgICAgICAgICAvLyBpZiB0aGUgZGVub21pbmF0b3IgaXMgemVybywgdGhlbiB0aGUgcmVz
dWx0IHNob3VsZCBiZSByZXN1bHQgc2hvdWxkIGJlIHplcm8uCisgICAgICAgICAgICAgICAgLy8g
SWYgdGhlIGRlbm9taW5hdG9yIGlzIG5vdCB6ZXJvIChpLmUuIGl0J3MgLTEgYmVjYXVzZSB3ZSdy
ZSBndWFyZGVkIGJ5IHRoZQorICAgICAgICAgICAgICAgIC8vIGNoZWNrIGFib3ZlKSBhbmQgdGhl
IG51bWVyYXRvciBpcyAtMl4zMSB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIC0yXjMxLgorICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG1vZEJ5WmVybyA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbW9kdWxvIGJ5IHplcm8iKSk7CisgICAgICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgbm90TW9kQnlaZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwg
KCJBcml0aE1vZCBub3QgbW9kdWxvIGJ5IHplcm8iKSk7CisgICAgICAgICAgICAgICAgTEJhc2lj
QmxvY2sgbmVnMlRvVGhlMzFCeU5lZzEgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9k
IC0yXjMxLy0xIikpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmJy
YW5jaChtX291dC5pc1plcm8zMihkZW5vbWluYXRvciksIG1vZEJ5WmVybywgbm90TW9kQnlaZXJv
KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhtb2RC
eVplcm8sIG5vdE1vZEJ5WmVybyk7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9v
dXQuYW5jaG9yKG1fb3V0LmludDMyWmVybykpOworICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAo
ZG9uZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8o
bm90TW9kQnlaZXJvLCBuZWcyVG9UaGUzMUJ5TmVnMSk7CisgICAgICAgICAgICAgICAgbV9vdXQu
YnJhbmNoKG1fb3V0LmVxdWFsKG51bWVyYXRvciwgbmVnMlRvVGhlMzEpLCBuZWcyVG9UaGUzMUJ5
TmVnMSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBt
X291dC5hcHBlbmRUbyhuZWcyVG9UaGUzMUJ5TmVnMSwgY29udGludWF0aW9uKTsKKyAgICAgICAg
ICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7Cisg
ICAgICAgICAgICAgICAgbV9vdXQuanVtcChkb25lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBkb25lKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIHJlbWFpbmRlciA9IG1fb3V0LnJlbShudW1l
cmF0b3IsIGRlbm9taW5hdG9yKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNob3Vs
ZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgbmVnYXRpdmVOdW1lcmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IkFyaXRoTW9kIG5lZ2F0aXZlIG51bWVyYXRvciIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNC
bG9jayBudW1lcmF0b3JDb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRo
TW9kIG51bWVyYXRvciBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgICAgICBtX291dC5sZXNzVGhh
bihudW1lcmF0b3IsIG1fb3V0LmludDMyWmVybyksCisgICAgICAgICAgICAgICAgICAgIG5lZ2F0
aXZlTnVtZXJhdG9yLCBudW1lcmF0b3JDb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlubmVyTGFzdE5leHQgPSBtX291dC5hcHBlbmRU
byhuZWdhdGl2ZU51bWVyYXRvciwgbnVtZXJhdG9yQ29udGludWF0aW9uKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRpdmVaZXJvLCBub1ZhbHVlKCks
IDAsIG1fb3V0LmlzWmVybzMyKHJlbWFpbmRlcikpOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIG1fb3V0Lmp1bXAobnVtZXJhdG9yQ29udGludWF0aW9uKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhudW1lcmF0b3JDb250aW51YXRp
b24sIGlubmVyTGFzdE5leHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAg
ICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IocmVtYWluZGVyKSk7CisgICAgICAgICAg
ICBtX291dC5qdW1wKGRvbmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhkb25lLCBsYXN0TmV4dCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNldEludDMy
KG1fb3V0LnBoaShtX291dC5pbnQzMiwgcmVzdWx0cykpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIE51bWJlclVzZTogeworICAgICAg
ICAgICAgc2V0RG91YmxlKAorICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZVJlbShsb3dEb3Vi
bGUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorCiAgICAgdm9pZCBjb21waWxlQXJpdGhNaW5Pck1h
eCgpCiAgICAgewogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CkBA
IC0xMTE0LDYgKzEzNDEsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgfQorCisgICAgdm9pZCBjb21waWxlQXJpdGhTaW4oKSB7IHNldERvdWJsZShtX291
dC5kb3VibGVTaW4obG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7IH0KKworICAgIHZvaWQg
Y29tcGlsZUFyaXRoQ29zKCkgeyBzZXREb3VibGUobV9vdXQuZG91YmxlQ29zKGxvd0RvdWJsZSht
X25vZGUtPmNoaWxkMSgpKSkpOyB9CisKKyAgICB2b2lkIGNvbXBpbGVBcml0aFNxcnQoKSB7IHNl
dERvdWJsZShtX291dC5kb3VibGVTcXJ0KGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSkpOyB9
CiAgICAgCiAgICAgdm9pZCBjb21waWxlQXJpdGhOZWdhdGUoKQogICAgIHsKQEAgLTExMjEsMTYg
KzEzNTQsMTggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAg
ICAgTFZhbHVlIHZhbHVlID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5uZWcodmFsdWUpOwotICAgICAg
ICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAg
ICAgICAgICAgICAgICBpZiAoIXNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhN
b2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhdmUgYSBuZWdhdGUt
d2l0aC1vdmVyZmxvdyBpbnRyaW5zaWMuIEhvcGVmdWxseSB0aGlzCi0gICAgICAgICAgICAgICAg
ICAgIC8vIGRvZXMgdGhlIHRyaWNrLCB0aG91Z2guCi0gICAgICAgICAgICAgICAgICAgIExWYWx1
ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzMyKG1fb3V0LmludDMyWmVy
bywgdmFsdWUpOwotICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFs
dWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywg
bm9WYWx1ZSgpLCAwLCBtX291dC50ZXN0SXNaZXJvMzIodmFsdWUsIG1fb3V0LmNvbnN0SW50MzIo
MHg3ZmZmZmZmZikpKTsKLQorICAgICAgICAgICAgTFZhbHVlIHJlc3VsdDsKKyAgICAgICAgICAg
IGlmICghc2hvdWxkQ2hlY2tPdmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSBtX291dC5uZWcodmFsdWUpOworICAgICAgICAgICAgZWxzZSBpZiAo
IXNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAg
ICAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIG5lZ2F0ZS13aXRoLW92ZXJmbG93IGludHJpbnNp
Yy4gSG9wZWZ1bGx5IHRoaXMKKyAgICAgICAgICAgICAgICAvLyBkb2VzIHRoZSB0cmljaywgdGhv
dWdoLgorICAgICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0LnN1Yldp
dGhPdmVyZmxvdzMyKG1fb3V0LmludDMyWmVybywgdmFsdWUpOworICAgICAgICAgICAgICAgIHNw
ZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZs
b3dSZXN1bHQsIDEpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5leHRyYWN0VmFs
dWUob3ZlcmZsb3dSZXN1bHQsIDApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQudGVzdElzWmVybzMy
KHZhbHVlLCBtX291dC5jb25zdEludDMyKDB4N2ZmZmZmZmYpKSk7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9vdXQubmVnKHZhbHVlKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
c2V0SW50MzIocmVzdWx0KTsKQEAgLTExNTEsNyArMTM4Niw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBMVmFsdWUgdmFsdWUgPSBsb3dJbnQ1MihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
ICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzY0KG1fb3V0
LmludDY0WmVybywgdmFsdWUpOwogICAgICAgICAgICAgc3BlY3VsYXRlKEludDUyT3ZlcmZsb3cs
IG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7Ci0g
ICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQubmVnKHZhbHVlKTsKKyAgICAgICAgICAg
IExWYWx1ZSByZXN1bHQgPSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOwog
ICAgICAgICAgICAgc3BlY3VsYXRlKE5lZ2F0aXZlWmVybywgbm9WYWx1ZSgpLCAwLCBtX291dC5p
c1plcm82NChyZXN1bHQpKTsKICAgICAgICAgICAgIHNldEludDUyKHJlc3VsdCk7CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTEyNzUsNiArMTUxMCwxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
bV9vdXQubm90RXF1YWwoY2VsbCwgd2Vha1BvaW50ZXIobV9ub2RlLT5mdW5jdGlvbigpKSkpOwog
ICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVDaGVja0V4ZWN1dGFibGUoKQorICAgIHsKKyAg
ICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAK
KyAgICAgICAgc3BlY3VsYXRlKAorICAgICAgICAgICAgQmFkRXhlY3V0YWJsZSwganNWYWx1ZVZh
bHVlKGNlbGwpLCBtX25vZGUtPmNoaWxkMSgpLm5vZGUoKSwKKyAgICAgICAgICAgIG1fb3V0Lm5v
dEVxdWFsKAorICAgICAgICAgICAgICAgIG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5KU0Z1
bmN0aW9uX2V4ZWN1dGFibGUpLAorICAgICAgICAgICAgICAgIHdlYWtQb2ludGVyKG1fbm9kZS0+
ZXhlY3V0YWJsZSgpKSkpOworICAgIH0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVBcnJheWlmeVRv
U3RydWN0dXJlKCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUt
PmNoaWxkMSgpKTsKQEAgLTEzNzAsOCArMTYxNiw4IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAg
ICAgICBMVmFsdWUgY2FsbCA9IG1fb3V0LmNhbGwoCiAgICAgICAgICAgICBtX291dC5wYXRjaHBv
aW50SW50NjRJbnRyaW5zaWMoKSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoc3RhY2tt
YXBJRCksIG1fb3V0LmNvbnN0SW50MzIoc2l6ZU9mR2V0QnlJZCgpKSwKLSAgICAgICAgICAgIGNv
bnN0TnVsbChtX291dC5yZWY4KSwgbV9vdXQuY29uc3RJbnQzMigyKSwgbV9jYWxsRnJhbWUsIGJh
c2UpOworICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElEKSwgbV9vdXQuY29u
c3RJbnQzMihzaXplT2ZHZXRCeUlkKCkpLAorICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJl
ZjgpLCBtX291dC5jb25zdEludDMyKDEpLCBiYXNlKTsKICAgICAgICAgc2V0SW5zdHJ1Y3Rpb25D
YWxsaW5nQ29udmVudGlvbihjYWxsLCBMTFZNQW55UmVnQ2FsbENvbnYpOwogICAgICAgICBzZXRK
U1ZhbHVlKGNhbGwpOwogICAgICAgICAKQEAgLTEzOTUsOCArMTY0MSw4IEBAIHByaXZhdGU6CiAg
ICAgICAgIAogICAgICAgICBMVmFsdWUgY2FsbCA9IG1fb3V0LmNhbGwoCiAgICAgICAgICAgICBt
X291dC5wYXRjaHBvaW50Vm9pZEludHJpbnNpYygpLAotICAgICAgICAgICAgbV9vdXQuY29uc3RJ
bnQzMihzdGFja21hcElEKSwgbV9vdXQuY29uc3RJbnQzMihzaXplT2ZQdXRCeUlkKCkpLAotICAg
ICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5jb25zdEludDMyKDMpLCBtX2Nh
bGxGcmFtZSwgYmFzZSwgdmFsdWUpOworICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ2NChzdGFj
a21hcElEKSwgbV9vdXQuY29uc3RJbnQzMihzaXplT2ZQdXRCeUlkKCkpLAorICAgICAgICAgICAg
Y29uc3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5jb25zdEludDMyKDIpLCBiYXNlLCB2YWx1ZSk7
CiAgICAgICAgIHNldEluc3RydWN0aW9uQ2FsbGluZ0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJl
Z0NhbGxDb252KTsKICAgICAgICAgCiAgICAgICAgIG1fZnRsU3RhdGUucHV0QnlJZHMuYXBwZW5k
KFB1dEJ5SWREZXNjcmlwdG9yKApAQCAtMTQ2MywyMCArMTcwOSwyMCBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAg
ICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOiB7Ci0gICAgICAgICAgICBzZXRJbnQzMihtX291
dC5sb2FkMzIobG93U3RvcmFnZShtX25vZGUtPmNoaWxkMigpKSwgbV9oZWFwcy5CdXR0ZXJmbHlf
cHVibGljTGVuZ3RoKSk7CisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzJOb25OZWdh
dGl2ZShsb3dTdG9yYWdlKG1fbm9kZS0+Y2hpbGQyKCkpLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJs
aWNMZW5ndGgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAgICAg
CiAgICAgICAgIGNhc2UgQXJyYXk6OlN0cmluZzogewogICAgICAgICAgICAgTFZhbHVlIHN0cmlu
ZyA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBzZXRJbnQzMihtX291
dC5sb2FkMzIoc3RyaW5nLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCkpOworICAgICAgICAgICAg
c2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RyaW5nLCBtX2hlYXBzLkpTU3RyaW5n
X2xlbmd0aCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAK
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGlmIChpc1R5cGVkVmlldyhtX25vZGUtPmFy
cmF5TW9kZSgpLnR5cGVkQXJyYXlUeXBlKCkpKSB7CiAgICAgICAgICAgICAgICAgc2V0SW50MzIo
Ci0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMihsb3dDZWxsKG1fbm9kZS0+Y2hpbGQx
KCkpLCBtX2hlYXBzLkpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0aCkpOworICAgICAgICAgICAgICAg
ICAgICBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBt
X2hlYXBzLkpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0aCkpOwogICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMTUxOCw3ICsxNzY0LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAg
ICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgICAgICAgICAgaW5kZXgsIG1f
b3V0LmxvYWQzMihzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKKyAg
ICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2Us
IG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpLAogICAgICAgICAgICAgICAgIHNsb3dD
YXNlLCBmYXN0Q2FzZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxh
c3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZmFzdENhc2UsIHNsb3dDYXNlKTsKQEAgLTE1NjUsNyAr
MTgxMSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmJyYW5j
aCgKICAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCi0gICAgICAgICAgICAgICAg
ICAgIGluZGV4LCBtX291dC5sb2FkMzIoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGlj
TGVuZ3RoKSksCisgICAgICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdh
dGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKICAgICAgICAg
ICAgICAgICBzbG93Q2FzZSwgaW5Cb3VuZHMpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBM
QmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGluQm91bmRzLCBib3hQYXRoKTsK
QEAgLTE2ODcsNiArMTkzMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIEVkZ2UgY2hpbGQyID0gbV9n
cmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpOwogICAgICAgICBFZGdlIGNoaWxkMyA9IG1fZ3Jh
cGgudmFyQXJnQ2hpbGQobV9ub2RlLCAyKTsKICAgICAgICAgRWRnZSBjaGlsZDQgPSBtX2dyYXBo
LnZhckFyZ0NoaWxkKG1fbm9kZSwgMyk7CisgICAgICAgIEVkZ2UgY2hpbGQ1ID0gbV9ncmFwaC52
YXJBcmdDaGlsZChtX25vZGUsIDQpOwogICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX25vZGUt
PmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOiB7CkBA
IC0xODAxLDYgKzIwNDgsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fb3V0Lnplcm9FeHQoaW5kZXgsIG1fb3V0LmludFB0ciksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIobG9nRWxlbWVudFNpemUodHlwZSkpKSkpOwogICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIExUeXBlIHJlZlR5cGU7CisgICAgICAgICAg
ICAgICAgTFZhbHVlIHZhbHVlVG9TdG9yZTsKKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICBpZiAoaXNJbnQodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgTFZhbHVlIGludFZh
bHVlOwogICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoaWxkMy51c2VLaW5kKCkpIHsKQEAg
LTE4NzYsMzQgKzIxMjYsNTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgIHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICAgICAgICAg
ICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmU4KG1f
b3V0LmludENhc3QoaW50VmFsdWUsIG1fb3V0LmludDgpLCBwb2ludGVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHZhbHVlVG9TdG9yZSA9IG1fb3V0LmludENhc3QoaW50VmFsdWUsIG1fb3V0
LmludDgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZjg7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAy
OgotICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmUxNihtX291dC5pbnRDYXN0KGlu
dFZhbHVlLCBtX291dC5pbnQxNiksIHBvaW50ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAg
dmFsdWVUb1N0b3JlID0gbV9vdXQuaW50Q2FzdChpbnRWYWx1ZSwgbV9vdXQuaW50MTYpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZjE2OwogICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDoKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlMzIoaW50VmFsdWUsIHBvaW50ZXIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3JlID0gaW50VmFsdWU7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZWZUeXBlID0gbV9vdXQucmVmMzI7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgLyogIWlzSW50KHR5cGUpICovIHsKKyAgICAgICAg
ICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKGNoaWxkMyk7CisgICAgICAgICAg
ICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVG
bG9hdDMyOgorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3JlID0gbV9vdXQuZnBD
YXN0KHZhbHVlLCBtX291dC5mbG9hdFR5cGUpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVm
VHlwZSA9IG1fb3V0LnJlZkZsb2F0OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUZsb2F0NjQ6CisgICAgICAgICAgICAgICAgICAg
ICAgICB2YWx1ZVRvU3RvcmUgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlR5
cGUgPSBtX291dC5yZWZEb3VibGU7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgQVNTRVJUKGlzRmxvYXQodHlw
ZSkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxv
d0RvdWJsZShjaGlsZDMpOwotICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAg
ICAgICAgICAgIGNhc2UgVHlwZUZsb2F0MzI6Ci0gICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0
b3JlRmxvYXQobV9vdXQuZnBDYXN0KHZhbHVlLCBtX291dC5mbG9hdFR5cGUpLCBwb2ludGVyKTsK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBUeXBlRmxv
YXQ2NDoKLSAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmVEb3VibGUodmFsdWUsIHBvaW50
ZXIpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICAgICAgICAgIGlmIChtX25vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSkKKyAgICAg
ICAgICAgICAgICAgICAgbV9vdXQuc3RvcmUodmFsdWVUb1N0b3JlLCBwb2ludGVyLCByZWZUeXBl
KTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgTEJhc2ljQmxv
Y2sgaXNJbkJvdW5kcyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiUHV0QnlWYWwgdHlwZWQgYXJy
YXkgaW4gYm91bmRzIGNhc2UiKSk7CisgICAgICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNv
bnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiUHV0QnlWYWwgdHlwZWQgYXJyYXkg
Y29udGludWF0aW9uIikpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVx
dWFsKGluZGV4LCBsb3dJbnQzMihjaGlsZDUpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVhdGlvbiwgaXNJbkJvdW5kcyk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzSW5Cb3Vu
ZHMsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlKHZhbHVl
VG9TdG9yZSwgcG9pbnRlciwgcmVmVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0Lmp1
bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAKQEAgLTIwNjAsNiArMjMyOSwxMDkgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKG1fbm9kZS0+bnVtQ29uc3RhbnRzKCkpKSk7CiAg
ICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZU5ld0FycmF5V2l0aFNpemUoKQorICAgIHsKKyAg
ICAgICAgTFZhbHVlIHB1YmxpY0xlbmd0aCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwor
ICAgICAgICAKKyAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGgu
Z2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+Y29kZU9yaWdpbik7CisgICAgICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1
cmluZ0FsbG9jYXRpb24oCisgICAgICAgICAgICBtX25vZGUtPmluZGV4aW5nVHlwZSgpKTsKKyAg
ICAgICAgCisgICAgICAgIGlmICghZ2xvYmFsT2JqZWN0LT5pc0hhdmluZ0FCYWRUaW1lKCkgJiYg
IWhhc0FycmF5U3RvcmFnZShtX25vZGUtPmluZGV4aW5nVHlwZSgpKSkgeworICAgICAgICAgICAg
QVNTRVJUKAorICAgICAgICAgICAgICAgIGhhc1VuZGVjaWRlZChzdHJ1Y3R1cmUtPmluZGV4aW5n
VHlwZSgpKQorICAgICAgICAgICAgICAgIHx8IGhhc0ludDMyKHN0cnVjdHVyZS0+aW5kZXhpbmdU
eXBlKCkpCisgICAgICAgICAgICAgICAgfHwgaGFzRG91YmxlKHN0cnVjdHVyZS0+aW5kZXhpbmdU
eXBlKCkpCisgICAgICAgICAgICAgICAgfHwgaGFzQ29udGlndW91cyhzdHJ1Y3R1cmUtPmluZGV4
aW5nVHlwZSgpKSk7CisKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGZhc3RDYXNlID0gRlRMX05F
V19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGZhc3QgY2FzZSIpKTsKKyAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGxhcmdlQ2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJy
YXlXaXRoU2l6ZSBsYXJnZSBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZmFpbENh
c2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgZmFpbCBjYXNlIikp
OworICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0
LCAoIk5ld0FycmF5V2l0aFNpemUgc2xvdyBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxv
Y2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXpl
IGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYnJhbmNo
KAorICAgICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbChwdWJsaWNMZW5ndGgsIG1fb3V0
LmNvbnN0SW50MzIoTUlOX1NQQVJTRV9BUlJBWV9JTkRFWCkpLAorICAgICAgICAgICAgICAgIGxh
cmdlQ2FzZSwgZmFzdENhc2UpOworCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9
IG1fb3V0LmFwcGVuZFRvKGZhc3RDYXNlLCBsYXJnZUNhc2UpOworICAgICAgICAgICAgCisgICAg
ICAgICAgICAvLyBXZSBkb24ndCByb3VuZCB1cCB0byBCQVNFX1ZFQ1RPUl9MRU4gZm9yIG5ldyBB
cnJheShibGFoKS4KKyAgICAgICAgICAgIExWYWx1ZSB2ZWN0b3JMZW5ndGggPSBwdWJsaWNMZW5n
dGg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBwYXlsb2FkU2l6ZSA9CisgICAg
ICAgICAgICAgICAgbV9vdXQuc2hsKG1fb3V0Lnplcm9FeHQodmVjdG9yTGVuZ3RoLCBtX291dC5p
bnRQdHIpLCBtX291dC5jb25zdEludFB0cigzKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IExWYWx1ZSBidXR0ZXJmbHlTaXplID0gbV9vdXQuYWRkKAorICAgICAgICAgICAgICAgIHBheWxv
YWRTaXplLCBtX291dC5jb25zdEludFB0cihzaXplb2YoSW5kZXhpbmdIZWFkZXIpKSk7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBlbmRPZlN0b3JhZ2UgPSBhbGxvY2F0ZUJhc2lj
U3RvcmFnZUFuZEdldEVuZChidXR0ZXJmbHlTaXplLCBmYWlsQ2FzZSk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIExWYWx1ZSBidXR0ZXJmbHkgPSBtX291dC5zdWIoZW5kT2ZTdG9yYWdlLCBw
YXlsb2FkU2l6ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBvYmplY3QgPSBh
bGxvY2F0ZU9iamVjdDxKU0FycmF5PigKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludFB0
cihzdHJ1Y3R1cmUpLCBidXR0ZXJmbHksIGZhaWxDYXNlKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgbV9vdXQuc3RvcmUzMihwdWJsaWNMZW5ndGgsIGJ1dHRlcmZseSwgbV9oZWFwcy5CdXR0
ZXJmbHlfcHVibGljTGVuZ3RoKTsKKyAgICAgICAgICAgIG1fb3V0LnN0b3JlMzIodmVjdG9yTGVu
Z3RoLCBidXR0ZXJmbHksIG1faGVhcHMuQnV0dGVyZmx5X3ZlY3Rvckxlbmd0aCk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmIChoYXNEb3VibGUobV9ub2RlLT5pbmRleGluZ1R5cGUoKSkp
IHsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpbml0TG9vcCA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBkb3VibGUgaW5pdCBsb29wIikpOworICAgICAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGluaXREb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdB
cnJheVdpdGhTaXplIGRvdWJsZSBpbml0IGRvbmUiKSk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgb3JpZ2luYWxJbmRleCA9IG1fb3V0LmFuY2hvcih2
ZWN0b3JMZW5ndGgpOworICAgICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIG9yaWdpbmFsUG9p
bnRlciA9IG1fb3V0LmFuY2hvcihidXR0ZXJmbHkpOworICAgICAgICAgICAgICAgIG1fb3V0LmJy
YW5jaChtX291dC5ub3RaZXJvMzIodmVjdG9yTGVuZ3RoKSwgaW5pdExvb3AsIGluaXREb25lKTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBpbml0TGFzdE5l
eHQgPSBtX291dC5hcHBlbmRUbyhpbml0TG9vcCwgaW5pdERvbmUpOworICAgICAgICAgICAgICAg
IExWYWx1ZSBpbmRleCA9IG1fb3V0LnBoaShtX291dC5pbnQzMiwgb3JpZ2luYWxJbmRleCk7Cisg
ICAgICAgICAgICAgICAgTFZhbHVlIHBvaW50ZXIgPSBtX291dC5waGkobV9vdXQuaW50UHRyLCBv
cmlnaW5hbFBvaW50ZXIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0
LnN0b3JlNjQoCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50NjQoYml0d2lzZV9j
YXN0PGludDY0X3Q+KFFOYU4pKSwKKyAgICAgICAgICAgICAgICAgICAgVHlwZWRQb2ludGVyKG1f
aGVhcHMuaW5kZXhlZERvdWJsZVByb3BlcnRpZXMuYXRBbnlJbmRleCgpLCBwb2ludGVyKSk7Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgTFZhbHVlIG5leHRJbmRleCA9IG1fb3V0
LnN1YihpbmRleCwgbV9vdXQuaW50MzJPbmUpOworICAgICAgICAgICAgICAgIGFkZEluY29taW5n
KGluZGV4LCBtX291dC5hbmNob3IobmV4dEluZGV4KSk7CisgICAgICAgICAgICAgICAgYWRkSW5j
b21pbmcocG9pbnRlciwgbV9vdXQuYW5jaG9yKG1fb3V0LmFkZChwb2ludGVyLCBtX291dC5pbnRQ
dHJFaWdodCkpKTsKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQubm90WmVybzMy
KG5leHRJbmRleCksIGluaXRMb29wLCBpbml0RG9uZSk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaW5pdERvbmUsIGluaXRMYXN0TmV4dCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RS
ZXN1bHQgPSBtX291dC5hbmNob3Iob2JqZWN0KTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29u
dGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obGFy
Z2VDYXNlLCBmYWlsQ2FzZSk7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBsYXJnZVN0cnVj
dHVyZSA9IG1fb3V0LmFuY2hvcihtX291dC5jb25zdEludFB0cigKKyAgICAgICAgICAgICAgICBn
bG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlv
bihBcnJheVdpdGhBcnJheVN0b3JhZ2UpKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKHNsb3dD
YXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZmFpbENhc2Us
IHNsb3dDYXNlKTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhaWxTdHJ1Y3R1cmUgPSBt
X291dC5hbmNob3IobV9vdXQuY29uc3RJbnRQdHIoc3RydWN0dXJlKSk7CisgICAgICAgICAgICBt
X291dC5qdW1wKHNsb3dDYXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICBMVmFsdWUgc3RydWN0
dXJlVmFsdWUgPSBtX291dC5waGkoCisgICAgICAgICAgICAgICAgbV9vdXQuaW50UHRyLCBsYXJn
ZVN0cnVjdHVyZSwgZmFpbFN0cnVjdHVyZSk7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBz
bG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZtQ2FsbCgKKyAgICAgICAgICAgICAgICBtX291dC5v
cGVyYXRpb24ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSksCisgICAgICAgICAgICAgICAgbV9j
YWxsRnJhbWUsIHN0cnVjdHVyZVZhbHVlLCBwdWJsaWNMZW5ndGgpKTsKKyAgICAgICAgICAgIG1f
b3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgICAgICBzZXRKU1ZhbHVl
KG1fb3V0LnBoaShtX291dC5pbnRQdHIsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTFZhbHVlIHN0cnVj
dHVyZVZhbHVlID0gbV9vdXQuc2VsZWN0KAorICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFs
KHB1YmxpY0xlbmd0aCwgbV9vdXQuY29uc3RJbnQzMihNSU5fU1BBUlNFX0FSUkFZX0lOREVYKSks
CisgICAgICAgICAgICBtX291dC5jb25zdEludFB0cigKKyAgICAgICAgICAgICAgICBnbG9iYWxP
YmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJh
eVdpdGhBcnJheVN0b3JhZ2UpKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHN0cnVj
dHVyZSkpOworICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChtX291dC5vcGVyYXRpb24ob3BlcmF0
aW9uTmV3QXJyYXlXaXRoU2l6ZSksIG1fY2FsbEZyYW1lLCBzdHJ1Y3R1cmVWYWx1ZSwgcHVibGlj
TGVuZ3RoKSk7CisgICAgfQorICAgIAogICAgIHZvaWQgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlT
dG9yYWdlKCkKICAgICB7CiAgICAgICAgIFN0cnVjdHVyZVRyYW5zaXRpb25EYXRhJiBkYXRhID0g
bV9ub2RlLT5zdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0YSgpOwpAQCAtMjEwMiw2ICsyNDc0LDE2MCBA
QCBwcml2YXRlOgogICAgICAgICBzZXRTdG9yYWdlKHJlc3VsdCk7CiAgICAgfQogICAgIAorICAg
IHZvaWQgY29tcGlsZVRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAobV9ub2RlLT5j
aGlsZDEoKS51c2VLaW5kKCkpIHsKKyAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6IHsKKyAg
ICAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvckNlbGwobV9ub2RlLT5jaGlsZDEoKSwgY2Vs
bCk7CisgICAgICAgICAgICBtX2ludGVycHJldGVyLmZpbHRlcihtX25vZGUtPmNoaWxkMSgpLCBT
cGVjU3RyaW5nT2JqZWN0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2V0SlNWYWx1ZSht
X291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNXcmFwcGVyT2JqZWN0X2ludGVybmFsVmFsdWUp
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAg
IGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSBjZWxs
ID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1
cmUgPSBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSk7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdFN0cmluZyA9IEZUTF9ORVdfQkxP
Q0sobV9vdXQsICgiVG9TdHJpbmcgU3RyaW5nT3JTdHJpbmdPYmplY3Qgbm90IHN0cmluZyBjYXNl
IikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9D
SyhtX291dCwgKCJUb1N0cmluZyBTdHJpbmdPclN0cmluZ09iamVjdCBjb250aW51YXRpb24iKSk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNpbXBsZVJlc3VsdCA9
IG1fb3V0LmFuY2hvcihjZWxsKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAg
ICAgICAgICBtX291dC5lcXVhbChzdHJ1Y3R1cmUsIG1fb3V0LmNvbnN0SW50UHRyKHZtKCkuc3Ry
aW5nU3RydWN0dXJlLmdldCgpKSksCisgICAgICAgICAgICAgICAgY29udGludWF0aW9uLCBub3RT
dHJpbmcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9
IG1fb3V0LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIHNw
ZWN1bGF0ZVN0cmluZ09iamVjdEZvclN0cnVjdHVyZShtX25vZGUtPmNoaWxkMSgpLCBzdHJ1Y3R1
cmUpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgdW5ib3hlZFJlc3VsdCA9IG1fb3V0LmFu
Y2hvcigKKyAgICAgICAgICAgICAgICBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNXcmFw
cGVyT2JqZWN0X2ludGVybmFsVmFsdWUpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGlu
dWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGlu
dWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShtX291
dC5pbnQ2NCwgc2ltcGxlUmVzdWx0LCB1bmJveGVkUmVzdWx0KSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIG1faW50ZXJwcmV0ZXIuZmlsdGVyKG1fbm9kZS0+Y2hpbGQxKCksIFNwZWNTdHJp
bmcgfCBTcGVjU3RyaW5nT2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICAgICAgCisgICAgICAgIGNhc2UgQ2VsbFVzZToKKyAgICAgICAgY2FzZSBVbnR5cGVk
VXNlOiB7CisgICAgICAgICAgICBMVmFsdWUgdmFsdWU7CisgICAgICAgICAgICBpZiAobV9ub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9
IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAg
CisgICAgICAgICAgICBMQmFzaWNCbG9jayBpc0NlbGwgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IlRvU3RyaW5nIENlbGxVc2UvVW50eXBlZFVzZSBpcyBjZWxsIikpOworICAgICAgICAgICAgTEJh
c2ljQmxvY2sgbm90U3RyaW5nID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJUb1N0cmluZyBDZWxs
VXNlL1VudHlwZWRVc2Ugbm90IHN0cmluZyIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNv
bnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiVG9TdHJpbmcgQ2VsbFVzZS9VbnR5
cGVkVXNlIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVl
IGlzQ2VsbFByZWRpY2F0ZTsKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBDZWxsVXNlKQorICAgICAgICAgICAgICAgIGlzQ2VsbFByZWRpY2F0ZSA9IG1fb3V0
LmJvb2xlYW5UcnVlOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlzQ2VsbFBy
ZWRpY2F0ZSA9IHRoaXMtPmlzQ2VsbCh2YWx1ZSk7CisgICAgICAgICAgICBtX291dC5icmFuY2go
aXNDZWxsUHJlZGljYXRlLCBpc0NlbGwsIG5vdFN0cmluZyk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNDZWxsLCBub3RT
dHJpbmcpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2ltcGxlUmVzdWx0ID0gbV9vdXQu
YW5jaG9yKHZhbHVlKTsKKyAgICAgICAgICAgIExWYWx1ZSBpc1N0cmluZ1ByZWRpY2F0ZTsKKyAg
ICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCkgJiBTcGVjU3RyaW5n
KSB7CisgICAgICAgICAgICAgICAgaXNTdHJpbmdQcmVkaWNhdGUgPSBtX291dC5lcXVhbCgKKyAg
ICAgICAgICAgICAgICAgICAgbV9vdXQubG9hZFB0cih2YWx1ZSwgbV9oZWFwcy5KU0NlbGxfc3Ry
dWN0dXJlKSwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIodm0oKS5zdHJp
bmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IGlzU3RyaW5nUHJlZGljYXRlID0gbV9vdXQuYm9vbGVhbkZhbHNlOworICAgICAgICAgICAgbV9v
dXQuYnJhbmNoKGlzU3RyaW5nUHJlZGljYXRlLCBjb250aW51YXRpb24sIG5vdFN0cmluZyk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGlu
dWF0aW9uKTsKKyAgICAgICAgICAgIExWYWx1ZSBvcGVyYXRpb247CisgICAgICAgICAgICBpZiAo
bV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkKKyAgICAgICAgICAgICAgICBv
cGVyYXRpb24gPSBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uVG9TdHJpbmdPbkNlbGwpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IG1fb3V0Lm9wZXJhdGlv
bihvcGVyYXRpb25Ub1N0cmluZyk7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBjb252ZXJ0
ZWRSZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxsKG9wZXJhdGlvbiwgbV9jYWxsRnJhbWUsIHZh
bHVlKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwor
ICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkobV9vdXQuaW50NjQsIHNpbXBsZVJlc3Vs
dCwgY29udmVydGVkUmVzdWx0KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAg
IAorICAgIHZvaWQgY29tcGlsZU1ha2VSb3BlKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBraWRz
WzNdOworICAgICAgICB1bnNpZ25lZCBudW1LaWRzOworICAgICAgICBraWRzWzBdID0gbG93Q2Vs
bChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAga2lkc1sxXSA9IGxvd0NlbGwobV9ub2RlLT5j
aGlsZDIoKSk7CisgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMygpKSB7CisgICAgICAgICAgICBr
aWRzWzJdID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIG51bUtpZHMg
PSAzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAga2lkc1syXSA9IDA7CisgICAgICAg
ICAgICBudW1LaWRzID0gMjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxv
Y2sgc2xvd1BhdGggPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk1ha2VSb3BlIHNsb3cgcGF0aCIp
KTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJNYWtlUm9wZSBjb250aW51YXRpb24iKSk7CisgICAgICAgIAorICAgICAgICBMQmFzaWNC
bG9jayBsYXN0TmV4dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShzbG93UGF0aCk7Cisg
ICAgICAgIAorICAgICAgICBNYXJrZWRBbGxvY2F0b3ImIGFsbG9jYXRvciA9CisgICAgICAgICAg
ICB2bSgpLmhlYXAuYWxsb2NhdG9yRm9yT2JqZWN0V2l0aEltbW9ydGFsU3RydWN0dXJlRGVzdHJ1
Y3RvcihzaXplb2YoSlNSb3BlU3RyaW5nKSk7CisgICAgICAgIAorICAgICAgICBMVmFsdWUgcmVz
dWx0ID0gYWxsb2NhdGVDZWxsKAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIoJmFsbG9j
YXRvciksCisgICAgICAgICAgICBtX291dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVy
ZS5nZXQoKSksCisgICAgICAgICAgICBzbG93UGF0aCk7CisgICAgICAgIAorICAgICAgICBtX291
dC5zdG9yZVB0cihtX291dC5pbnRQdHJaZXJvLCByZXN1bHQsIG1faGVhcHMuSlNTdHJpbmdfdmFs
dWUpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtS2lkczsgKytpKQorICAg
ICAgICAgICAgbV9vdXQuc3RvcmVQdHIoa2lkc1tpXSwgcmVzdWx0LCBtX2hlYXBzLkpTUm9wZVN0
cmluZ19maWJlcnNbaV0pOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1LaWRzOyBpIDwg
SlNSb3BlU3RyaW5nOjpzX21heEludGVybmFsUm9wZUxlbmd0aDsgKytpKQorICAgICAgICAgICAg
bV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRyWmVybywgcmVzdWx0LCBtX2hlYXBzLkpTUm9wZVN0
cmluZ19maWJlcnNbaV0pOworICAgICAgICBMVmFsdWUgZmxhZ3MgPSBtX291dC5sb2FkMzIoa2lk
c1swXSwgbV9oZWFwcy5KU1N0cmluZ19mbGFncyk7CisgICAgICAgIExWYWx1ZSBsZW5ndGggPSBt
X291dC5sb2FkMzIoa2lkc1swXSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpOworICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgbnVtS2lkczsgKytpKSB7CisgICAgICAgICAgICBmbGFn
cyA9IG1fb3V0LmJpdEFuZChmbGFncywgbV9vdXQubG9hZDMyKGtpZHNbaV0sIG1faGVhcHMuSlNT
dHJpbmdfZmxhZ3MpKTsKKyAgICAgICAgICAgIGxlbmd0aCA9IG1fb3V0LmFkZChsZW5ndGgsIG1f
b3V0LmxvYWQzMihraWRzW2ldLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCkpOworICAgICAgICB9
CisgICAgICAgIG1fb3V0LnN0b3JlMzIoCisgICAgICAgICAgICBtX291dC5iaXRBbmQobV9vdXQu
Y29uc3RJbnQzMihKU1N0cmluZzo6SXM4Qml0KSwgZmxhZ3MpLAorICAgICAgICAgICAgcmVzdWx0
LCBtX2hlYXBzLkpTU3RyaW5nX2ZsYWdzKTsKKyAgICAgICAgbV9vdXQuc3RvcmUzMihsZW5ndGgs
IHJlc3VsdCwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgVmFs
dWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihyZXN1bHQpOworICAgICAgICBt
X291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgIAorICAgICAgICBtX291dC5hcHBlbmRU
byhzbG93UGF0aCwgY29udGludWF0aW9uKTsKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jl
c3VsdDsKKyAgICAgICAgc3dpdGNoIChudW1LaWRzKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxsKAorICAgICAgICAgICAgICAg
IG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25NYWtlUm9wZTIpLCBtX2NhbGxGcmFtZSwga2lkc1sw
XSwga2lkc1sxXSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAg
ICAgICAgIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxsKAorICAgICAgICAgICAgICAg
IG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25NYWtlUm9wZTMpLCBtX2NhbGxGcmFtZSwga2lkc1sw
XSwga2lkc1sxXSwga2lkc1syXSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwor
ICAgICAgICAKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7
CisgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKG1fb3V0LmludDY0LCBmYXN0UmVzdWx0LCBz
bG93UmVzdWx0KSk7CisgICAgfQorICAgIAogICAgIHZvaWQgY29tcGlsZVN0cmluZ0NoYXJBdCgp
CiAgICAgewogICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7
CkBAIC0yMTE0LDcgKzI2NDAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgIG1f
b3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAg
ICAgICBpbmRleCwgbV9vdXQubG9hZDMyKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSks
CisgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1f
aGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSksCiAgICAgICAgICAgICBzbG93UGF0aCwgZmFzdFBhdGgp
OwogICAgICAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBw
ZW5kVG8oZmFzdFBhdGgsIHNsb3dQYXRoKTsKQEAgLTIyMTAsNyArMjczNiw4IEBAIHByaXZhdGU6
CiAgICAgICAgIAogICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAgICBVbmNvdW50YWJsZSwg
bm9WYWx1ZSgpLCAwLAotICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKGluZGV4LCBtX291
dC5sb2FkMzIoYmFzZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpKSk7CisgICAgICAgICAgICBt
X291dC5hYm92ZU9yRXF1YWwoCisgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5v
bk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSkpOwogICAgICAgICAKICAg
ICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuSlNT
dHJpbmdfdmFsdWUpOwogICAgICAgICAKQEAgLTIzNDUsNiArMjg3MiwxNiBAQCBwcml2YXRlOgog
ICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICB9CiAg
ICAgCisgICAgdm9pZCBjb21waWxlR2V0Q2FsbGVlKCkKKyAgICB7CisgICAgICAgIHNldEpTVmFs
dWUobV9vdXQubG9hZFB0cihhZGRyZXNzRm9yKEpTU3RhY2s6OkNhbGxlZSkpKTsKKyAgICB9Cisg
ICAgCisgICAgdm9pZCBjb21waWxlR2V0U2NvcGUoKQorICAgIHsKKyAgICAgICAgc2V0SlNWYWx1
ZShtX291dC5sb2FkUHRyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNGdW5j
dGlvbl9zY29wZSkpOworICAgIH0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVHZXRNeVNjb3BlKCkK
ICAgICB7CiAgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9hZFB0cihhZGRyZXNzRm9yKApAQCAt
MjQ4OCwzNSArMzAyNSwzNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgY29tcGlsZUNhbGxP
ckNvbnN0cnVjdCgpCiAgICAgewotICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB1bmFjY2VwdGFi
bHkgc2xvdy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMzYyMQorICAgICAgICBpbnQgZHVtbXlUaGlzQXJndW1lbnQgPSBtX25vZGUtPm9wKCkg
PT0gQ2FsbCA/IDAgOiAxOworICAgICAgICBpbnQgbnVtUGFzc2VkQXJncyA9IG1fbm9kZS0+bnVt
Q2hpbGRyZW4oKSAtIDE7CisgICAgICAgIGludCBudW1BcmdzID0gbnVtUGFzc2VkQXJncyArIGR1
bW15VGhpc0FyZ3VtZW50OwogICAgICAgICAKLSAgICAgICAgSl9KSVRPcGVyYXRpb25fRSBmdW5j
dGlvbiA9Ci0gICAgICAgICAgICBtX25vZGUtPm9wKCkgPT0gQ2FsbCA/IG9wZXJhdGlvbkZUTENh
bGwgOiBvcGVyYXRpb25GVExDb25zdHJ1Y3Q7CisgICAgICAgIExWYWx1ZSBjYWxsZWUgPSBsb3dK
U1ZhbHVlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSk7CiAgICAgICAgIAotICAgICAg
ICBpbnQgZHVtbXlUaGlzQXJndW1lbnQgPSBtX25vZGUtPm9wKCkgPT0gQ2FsbCA/IDAgOiAxOwor
ICAgICAgICB1bnNpZ25lZCBzdGFja21hcElEID0gbV9zdGFja21hcElEcysrOwogICAgICAgICAK
LSAgICAgICAgaW50IG51bVBhc3NlZEFyZ3MgPSBtX25vZGUtPm51bUNoaWxkcmVuKCkgLSAxOwor
ICAgICAgICBWZWN0b3I8TFZhbHVlPiBhcmd1bWVudHM7CisgICAgICAgIGFyZ3VtZW50cy5hcHBl
bmQobV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElEKSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBl
bmQobV9vdXQuY29uc3RJbnQzMihzaXplT2ZDYWxsKCkpKTsKKyAgICAgICAgYXJndW1lbnRzLmFw
cGVuZChjb25zdE51bGwobV9vdXQucmVmOCkpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1f
b3V0LmNvbnN0SW50MzIoMSArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNr
OjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSArIG51bUFyZ3MpKTsKKyAgICAgICAgYXJndW1lbnRzLmFw
cGVuZChjYWxsZWUpOyAvLyBjYWxsZWUgLT4gJXJheAorICAgICAgICBhcmd1bWVudHMuYXBwZW5k
KGdldFVuZGVmKG1fb3V0LmludDY0KSk7IC8vIGNvZGUgYmxvY2sKKyAgICAgICAgYXJndW1lbnRz
LmFwcGVuZChnZXRVbmRlZihtX291dC5pbnQ2NCkpOyAvLyBzY29wZSBjaGFpbgorICAgICAgICBh
cmd1bWVudHMuYXBwZW5kKGNhbGxlZSk7IC8vIGNhbGxlZSAtPiBzdGFjaworICAgICAgICBhcmd1
bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50NjQobnVtQXJncykpOyAvLyBhcmd1bWVudCBjb3Vu
dCBhbmQgemVyb3MgZm9yIHRoZSB0YWcKKyAgICAgICAgaWYgKGR1bW15VGhpc0FyZ3VtZW50KQor
ICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChnZXRVbmRlZihtX291dC5pbnQ2NCkpOworICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7ICsraSkKKyAgICAgICAgICAg
IGFyZ3VtZW50cy5hcHBlbmQobG93SlNWYWx1ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwg
MSArIGkpKSk7CiAgICAgICAgIAotICAgICAgICBMVmFsdWUgY2FsbGVlRnJhbWUgPSBtX291dC5h
ZGQoCi0gICAgICAgICAgICBtX2NhbGxGcmFtZSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50
UHRyKHNpemVvZihSZWdpc3RlcikgKiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2dyYXBoLmZy
YW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKSkpOworICAgICAgICBjYWxsUHJlZmxpZ2h0KCk7
CiAgICAgICAgIAotICAgICAgICBtX291dC5zdG9yZTMyKAotICAgICAgICAgICAgbV9vdXQuY29u
c3RJbnQzMihudW1QYXNzZWRBcmdzICsgZHVtbXlUaGlzQXJndW1lbnQpLAotICAgICAgICAgICAg
cGF5bG9hZEZvcihjYWxsZWVGcmFtZSwgSlNTdGFjazo6QXJndW1lbnRDb3VudCkpOwotICAgICAg
ICBtX291dC5zdG9yZTY0KG1fY2FsbEZyYW1lLCBjYWxsZWVGcmFtZSwgbV9oZWFwcy5DYWxsRnJh
bWVfY2FsbGVyRnJhbWUpOwotICAgICAgICBtX291dC5zdG9yZTY0KAotICAgICAgICAgICAgbG93
SlNWYWx1ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMCkpLAotICAgICAgICAgICAgYWRk
cmVzc0ZvcihjYWxsZWVGcmFtZSwgSlNTdGFjazo6Q2FsbGVlKSk7CisgICAgICAgIExWYWx1ZSBj
YWxsID0gbV9vdXQuY2FsbChtX291dC5wYXRjaHBvaW50SW50NjRJbnRyaW5zaWMoKSwgYXJndW1l
bnRzKTsKKyAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxsaW5nQ29udmVudGlvbihjYWxsLCBMTFZN
V2ViS2l0SlNDYWxsQ29udik7CiAgICAgICAgIAotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8
IG51bVBhc3NlZEFyZ3M7ICsraSkgewotICAgICAgICAgICAgbV9vdXQuc3RvcmU2NCgKLSAgICAg
ICAgICAgICAgICBsb3dKU1ZhbHVlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxICsgaSkp
LAotICAgICAgICAgICAgICAgIGFkZHJlc3NGb3IoY2FsbGVlRnJhbWUsIHZpcnR1YWxSZWdpc3Rl
ckZvckFyZ3VtZW50KGkgKyBkdW1teVRoaXNBcmd1bWVudCkub2Zmc2V0KCkpKTsKLSAgICAgICAg
fQorICAgICAgICBtX2Z0bFN0YXRlLmpzQ2FsbHMuYXBwZW5kKEpTQ2FsbChzdGFja21hcElELCBt
X25vZGUpKTsKICAgICAgICAgCi0gICAgICAgIHNldEpTVmFsdWUodm1DYWxsKG1fb3V0Lm9wZXJh
dGlvbihmdW5jdGlvbiksIGNhbGxlZUZyYW1lKSk7CisgICAgICAgIHNldEpTVmFsdWUoY2FsbCk7
CiAgICAgfQogICAgIAogICAgIHZvaWQgY29tcGlsZUp1bXAoKQpAQCAtMjYyNyw3ICszMTY2LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAg
ICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKAotICAgICAgICAgICAgICAgICAgICBtX291dC5s
b2FkMzIoc3RyaW5nVmFsdWUsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSwKKyAgICAgICAgICAg
ICAgICAgICAgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RyaW5nVmFsdWUsIG1faGVhcHMuSlNT
dHJpbmdfbGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgICAgbV9vdXQuaW50MzJPbmUpLAogICAg
ICAgICAgICAgICAgIGxvd0Jsb2NrKGRhdGEtPmZhbGxUaHJvdWdoKSwgbGVuZ3RoSXMxKTsKICAg
ICAgICAgICAgIApAQCAtMjcwOCw2ICszMjQ3LDIyIEBAIHByaXZhdGU6CiAgICAgICAgIGluZm8u
bV9pc0ludmFsaWRhdGlvblBvaW50ID0gdHJ1ZTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21w
aWxlQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghaXNF
bXB0eVNwZWN1bGF0aW9uKAorICAgICAgICAgICAgbV9zdGF0ZS52YXJpYWJsZXMoKS5vcGVyYW5k
KAorICAgICAgICAgICAgICAgIG1fZ3JhcGguYXJndW1lbnRzUmVnaXN0ZXJGb3IobV9ub2RlLT5j
b2RlT3JpZ2luKSkubV90eXBlKSk7CisgICAgICAgIAorICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIg
cmVnID0gbV9ncmFwaC5tYWNoaW5lQXJndW1lbnRzUmVnaXN0ZXJGb3IobV9ub2RlLT5jb2RlT3Jp
Z2luKTsKKyAgICAgICAgc3BlY3VsYXRlKEFyZ3VtZW50c0VzY2FwZWQsIG5vVmFsdWUoKSwgMCwg
bV9vdXQubm90WmVybzY0KG1fb3V0LmxvYWQ2NChhZGRyZXNzRm9yKHJlZykpKSk7CisgICAgfQor
ICAgIAorICAgIHZvaWQgY29tcGlsZUNvdW50RXhlY3V0aW9uKCkKKyAgICB7CisgICAgICAgIFR5
cGVkUG9pbnRlciBjb3VudGVyID0gbV9vdXQuYWJzb2x1dGUobV9ub2RlLT5leGVjdXRpb25Db3Vu
dGVyKCktPmFkZHJlc3MoKSk7CisgICAgICAgIG1fb3V0LnN0b3JlNjQobV9vdXQuYWRkKG1fb3V0
LmxvYWQ2NChjb3VudGVyKSwgbV9vdXQuY29uc3RJbnQ2NCgxKSksIGNvdW50ZXIpOworICAgIH0K
KyAgICAKICAgICBUeXBlZFBvaW50ZXIgYmFzZUluZGV4KEluZGV4ZWRBYnN0cmFjdEhlYXAmIGhl
YXAsIExWYWx1ZSBzdG9yYWdlLCBMVmFsdWUgaW5kZXgsIEVkZ2UgZWRnZSkKICAgICB7CiAgICAg
ICAgIHJldHVybiBtX291dC5iYXNlSW5kZXgoCkBAIC0yOTI0LDcgKzM0NzksNyBAQCBwcml2YXRl
OgogICAgIHsKICAgICAgICAgaWYgKEpTQXJyYXlCdWZmZXJWaWV3KiB2aWV3ID0gbV9ncmFwaC50
cnlHZXRGb2xkYWJsZVZpZXcoYmFzZUVkZ2Uubm9kZSgpLCBhcnJheU1vZGUpKQogICAgICAgICAg
ICAgcmV0dXJuIG1fb3V0LmNvbnN0SW50MzIodmlldy0+bGVuZ3RoKCkpOwotICAgICAgICByZXR1
cm4gbV9vdXQubG9hZDMyKGJhc2UsIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZpZXdfbGVuZ3RoKTsK
KyAgICAgICAgcmV0dXJuIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNB
cnJheUJ1ZmZlclZpZXdfbGVuZ3RoKTsKICAgICB9CiAgICAgCiAgICAgTFZhbHVlIHR5cGVkQXJy
YXlMZW5ndGgoRWRnZSBiYXNlRWRnZSwgQXJyYXlNb2RlIGFycmF5TW9kZSkKQEAgLTI5NDgsNyAr
MzUwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIE1hbnVhbE9wZXJhbmRTcGVj
dWxhdGlvbikpOwogICAgICAgICBjYXNlIFN0cmluZ1VzZTogewogICAgICAgICAgICAgTFZhbHVl
IHN0cmluZ1ZhbHVlID0gbG93U3RyaW5nKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAg
TFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMihzdHJpbmdWYWx1ZSwgbV9oZWFwcy5KU1N0cmlu
Z19sZW5ndGgpOworICAgICAgICAgICAgTFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMk5vbk5l
Z2F0aXZlKHN0cmluZ1ZhbHVlLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCk7CiAgICAgICAgICAg
ICByZXR1cm4gbV9vdXQubm90RXF1YWwobGVuZ3RoLCBtX291dC5pbnQzMlplcm8pOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgVW50eXBlZFVzZTogewpAQCAtMzA4Miw3ICszNjM3LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uKQogICAgIHsKICAgICAgICAg
TFZhbHVlIGlzTm90SW5Cb3VuZHMgPSBtX291dC5hYm92ZU9yRXF1YWwoCi0gICAgICAgICAgICBp
bmRleCwgbV9vdXQubG9hZDMyKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0
aCkpOworICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2Us
IG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpOwogICAgICAgICBpZiAoIW1fbm9kZS0+
YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKSB7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RJ
bkJvdW5kc0Nhc2UgPQogICAgICAgICAgICAgICAgIEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiUHV0
QnlWYWwgbm90IGluIGJvdW5kcyIpKTsKQEAgLTMwOTQsNyArMzY0OSw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdEluQm91
bmRzQ2FzZSwgcGVyZm9ybVN0b3JlKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIExW
YWx1ZSBpc091dE9mQm91bmRzID0gbV9vdXQuYWJvdmVPckVxdWFsKAotICAgICAgICAgICAgICAg
IGluZGV4LCBtX291dC5sb2FkMzIoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfdmVjdG9yTGVu
Z3RoKSk7CisgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0
b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3ZlY3Rvckxlbmd0aCkpOwogICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKSkK
ICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3V0T2ZCb3VuZHMsIG5vVmFsdWUoKSwgMCwgaXNP
dXRPZkJvdW5kcyk7CkBAIC0zNzE4LDYgKzQyNzMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgS25vd25JbnQzMlVzZToKICAgICAgICAgY2FzZSBLbm93bk51
bWJlclVzZToKKyAgICAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKICAgICAgICAgICAgIEFTU0VS
VCghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVDaGVjayhlZGdlKSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBJbnQzMlVzZToKQEAgLTM3NDEsNiArNDI5NywxMiBAQCBwcml2YXRl
OgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhl
ZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToK
KyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdChlZGdlKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgorICAgICAgICAgICAg
c3BlY3VsYXRlU3RyaW5nT3JTdHJpbmdPYmplY3QoZWRnZSk7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBSZWFsTnVtYmVyVXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlUmVhbE51
bWJlcihlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzc1Myw2ICs0MzE1LDkgQEAgcHJp
dmF0ZToKICAgICAgICAgY2FzZSBCb29sZWFuVXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlQm9v
bGVhbihlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vdENlbGxVc2U6
CisgICAgICAgICAgICBzcGVjdWxhdGVOb3RDZWxsKGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBkYXRhTG9nKCJVbnN1cHBvcnRlZCBzcGVj
dWxhdGlvbiB1c2Uga2luZDogIiwgZWRnZS51c2VLaW5kKCksICJcbiIpOwogICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM5MjgsNiArNDQ5Myw1NSBAQCBwcml2
YXRlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSwgbG93Q2VsbChlZGdlKSk7CiAgICAg
fQogICAgIAorICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7
CisgICAgICAgIGlmICghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjU3Ry
aW5nT2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIHNwZWN1
bGF0ZVN0cmluZ09iamVjdEZvckNlbGwoZWRnZSwgbG93Q2VsbChlZGdlKSk7CisgICAgICAgIG1f
aW50ZXJwcmV0ZXIuZmlsdGVyKGVkZ2UsIFNwZWNTdHJpbmdPYmplY3QpOworICAgIH0KKyAgICAK
KyAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09yU3RyaW5nT2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7
CisgICAgICAgIGlmICghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjU3Ry
aW5nIHwgU3BlY1N0cmluZ09iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAor
ICAgICAgICBMQmFzaWNCbG9jayBub3RTdHJpbmcgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlNw
ZWN1bGF0ZSBTdHJpbmdPclN0cmluZ09iamVjdCBub3Qgc3RyaW5nIGNhc2UiKSk7CisgICAgICAg
IExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3BlY3Vs
YXRlIFN0cmluZ09yU3RyaW5nT2JqZWN0IGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgCisgICAg
ICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291dC5sb2FkUHRyKGxvd0NlbGwoZWRnZSksIG1faGVh
cHMuSlNDZWxsX3N0cnVjdHVyZSk7CisgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAg
IG1fb3V0LmVxdWFsKHN0cnVjdHVyZSwgbV9vdXQuY29uc3RJbnRQdHIodm0oKS5zdHJpbmdTdHJ1
Y3R1cmUuZ2V0KCkpKSwKKyAgICAgICAgICAgIGNvbnRpbnVhdGlvbiwgbm90U3RyaW5nKTsKKyAg
ICAgICAgCisgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90
U3RyaW5nLCBjb250aW51YXRpb24pOworICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JT
dHJ1Y3R1cmUoZWRnZSwgc3RydWN0dXJlKTsKKyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRp
b24pOworICAgICAgICAKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0
TmV4dCk7CisgICAgICAgIAorICAgICAgICBtX2ludGVycHJldGVyLmZpbHRlcihlZGdlLCBTcGVj
U3RyaW5nIHwgU3BlY1N0cmluZ09iamVjdCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc3BlY3Vs
YXRlU3RyaW5nT2JqZWN0Rm9yQ2VsbChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAg
ICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yU3RydWN0dXJlKGVkZ2UsIG1fb3V0LmxvYWRQ
dHIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlKSk7CisgICAgfQorICAgIAorICAgIHZv
aWQgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yU3RydWN0dXJlKEVkZ2UgZWRnZSwgTFZhbHVlIHN0
cnVjdHVyZSkKKyAgICB7CisgICAgICAgIFN0cnVjdHVyZSogc3RyaW5nT2JqZWN0U3RydWN0dXJl
ID0KKyAgICAgICAgICAgIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+Y29kZU9yaWdp
biktPnN0cmluZ09iamVjdFN0cnVjdHVyZSgpOworICAgICAgICAKKyAgICAgICAgaWYgKG1fc3Rh
dGUuZm9yTm9kZShlZGdlKS5tX2N1cnJlbnRLbm93blN0cnVjdHVyZS5pc1N1YnNldE9mKFN0cnVj
dHVyZVNldChzdHJpbmdPYmplY3RTdHJ1Y3R1cmUpKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgCisgICAgICAgIHNwZWN1bGF0ZSgKKyAgICAgICAgICAgIE5vdFN0cmluZ09iamVjdCwg
bm9WYWx1ZSgpLCAwLAorICAgICAgICAgICAgbV9vdXQubm90RXF1YWwoc3RydWN0dXJlLCB3ZWFr
UG9pbnRlcihzdHJpbmdPYmplY3RTdHJ1Y3R1cmUpKSk7CisgICAgfQorICAgIAogICAgIHZvaWQg
c3BlY3VsYXRlTm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAg
ICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IG1fb3V0LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5KU0Nl
bGxfc3RydWN0dXJlKTsKQEAgLTM5NzksNiArNDU5MywxNSBAQCBwcml2YXRlOgogICAgICAgICBs
b3dCb29sZWFuKGVkZ2UpOwogICAgIH0KICAgICAKKyAgICB2b2lkIHNwZWN1bGF0ZU5vdENlbGwo
RWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2ludGVycHJldGVyLm5lZWRzVHlwZUNo
ZWNrKGVkZ2UpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgTFZhbHVl
IHZhbHVlID0gbG93SlNWYWx1ZShlZGdlKTsKKyAgICAgICAgdHlwZUNoZWNrKGpzVmFsdWVWYWx1
ZSh2YWx1ZSksIGVkZ2UsIH5TcGVjQ2VsbCwgaXNDZWxsKHZhbHVlKSk7CisgICAgfQorICAgIAog
ICAgIGJvb2wgbWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnRJc1N0aWxsVmFsaWQoKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIG1fZ3JhcGgubWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNo
cG9pbnRJc1N0aWxsVmFsaWQobV9ub2RlLT5jb2RlT3JpZ2luKTsKQEAgLTQxMDYsMTggKzQ3Mjks
MTMgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKG1vZGUgPT0gTm9FeGNlcHRpb25zKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICAgICAgTEJhc2ljQmxvY2sgZGlkSGF2ZUV4Y2Vw
dGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiRGlkIGhhdmUgZXhjZXB0aW9uIikpOwogICAg
ICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkV4
Y2VwdGlvbiBjaGVjayBjb250aW51YXRpb24iKSk7CiAgICAgICAgIAogICAgICAgICBtX291dC5i
cmFuY2goCiAgICAgICAgICAgICBtX291dC5ub3RaZXJvNjQobV9vdXQubG9hZDY0KG1fb3V0LmFi
c29sdXRlKHZtKCkuYWRkcmVzc09mRXhjZXB0aW9uKCkpKSksCi0gICAgICAgICAgICBkaWRIYXZl
RXhjZXB0aW9uLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgbV9oYW5kbGVFeGNlcHRpb25z
LCBjb250aW51YXRpb24pOwogICAgICAgICAKLSAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQg
PSBtX291dC5hcHBlbmRUbyhkaWRIYXZlRXhjZXB0aW9uLCBjb250aW51YXRpb24pOwotICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIGV4Y2VwdGlvbnMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTM2MjIKLSAgICAgICAgbV9vdXQuY3Jhc2goKTsKLSAgICAgICAgCi0g
ICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICBt
X291dC5hcHBlbmRUbyhjb250aW51YXRpb24pOwogICAgIH0KICAgICAKICAgICBMQmFzaWNCbG9j
ayBsb3dCbG9jayhCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTQxMzMsOCArNDc1MSwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgYXBwZW5kT1NSRXhpdCgKICAgICAgICAgRXhpdEtpbmQga2luZCwgRm9y
bWF0dGVkVmFsdWUgbG93VmFsdWUsIE5vZGUqIGhpZ2hWYWx1ZSwgTFZhbHVlIGZhaWxDb25kaXRp
b24pCiAgICAgewotICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKQorICAg
ICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBkYXRh
TG9nKCIgICAgT1NSIGV4aXQgIyIsIG1fZnRsU3RhdGUuaml0Q29kZS0+b3NyRXhpdC5zaXplKCks
ICIgd2l0aCBhdmFpbGFiaWxpdHk6ICIsIG1fYXZhaWxhYmlsaXR5LCAiXG4iKTsKKyAgICAgICAg
ICAgIGlmICghbV9hdmFpbGFibGVSZWNvdmVyaWVzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICBkYXRhTG9nKCIgICAgICAgIEF2YWlsYWJsZSByZWNvdmVyaWVzOiAiLCBsaXN0RHVtcChtX2F2
YWlsYWJsZVJlY292ZXJpZXMpLCAiXG4iKTsKKyAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVCht
X2Z0bFN0YXRlLmppdENvZGUtPm9zckV4aXQuc2l6ZSgpID09IG1fZnRsU3RhdGUuZmluYWxpemVy
LT5vc3JFeGl0LnNpemUoKSk7CiAgICAgICAgIApAQCAtNDE3OCw3ICs0Nzk5LDYgQEAgcHJpdmF0
ZToKICAgICAgICAgT1NSRXhpdCYgZXhpdCwgRXhpdEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBG
b3JtYXR0ZWRWYWx1ZSBsb3dWYWx1ZSwKICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQog
ICAgIHsKLSAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX2NhbGxGcmFtZSk7CiAgICAgICAgIGlm
ICghIWxvd1ZhbHVlKQogICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChsb3dWYWx1ZS52YWx1
ZSgpKTsKICAgICAgICAgCkBAIC00MjQ2LDcgKzQ4NjYsNyBAQCBwcml2YXRlOgogICAgIHsKICAg
ICAgICAgZXhpdC5tX3N0YWNrbWFwSUQgPSBtX3N0YWNrbWFwSURzKys7CiAgICAgICAgIGFyZ3Vt
ZW50cy5pbnNlcnQoMCwgbV9vdXQuY29uc3RJbnQzMihNYWNyb0Fzc2VtYmxlcjo6bWF4SnVtcFJl
cGxhY2VtZW50U2l6ZSgpKSk7Ci0gICAgICAgIGFyZ3VtZW50cy5pbnNlcnQoMCwgbV9vdXQuY29u
c3RJbnQzMihleGl0Lm1fc3RhY2ttYXBJRCkpOworICAgICAgICBhcmd1bWVudHMuaW5zZXJ0KDAs
IG1fb3V0LmNvbnN0SW50NjQoZXhpdC5tX3N0YWNrbWFwSUQpKTsKICAgICAgICAgCiAgICAgICAg
IG1fb3V0LmNhbGwobV9vdXQuc3RhY2ttYXBJbnRyaW5zaWMoKSwgYXJndW1lbnRzKTsKICAgICB9
CkBAIC00MjYwLDYgKzQ4ODAsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKHRyeVRvU2V0Q29u
c3RhbnRFeGl0QXJndW1lbnQoZXhpdCwgaW5kZXgsIG5vZGUpKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYXZhaWxhYmxl
UmVjb3Zlcmllcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgQXZhaWxhYmxlUmVjb3Zlcnkg
cmVjb3ZlcnkgPSBtX2F2YWlsYWJsZVJlY292ZXJpZXNbaV07CisgICAgICAgICAgICBpZiAocmVj
b3Zlcnkubm9kZSgpICE9IG5vZGUpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGV4aXQubV92YWx1ZXNbaW5kZXhdID0gRXhpdFZhbHVlOjpyZWNv
dmVyeSgKKyAgICAgICAgICAgICAgICByZWNvdmVyeS5vcGNvZGUoKSwgYXJndW1lbnRzLnNpemUo
KSwgYXJndW1lbnRzLnNpemUoKSArIDEsCisgICAgICAgICAgICAgICAgcmVjb3ZlcnkuZm9ybWF0
KCkpOworICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChyZWNvdmVyeS5sZWZ0KCkpOworICAg
ICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChyZWNvdmVyeS5yaWdodCgpKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgTG93ZXJlZE5vZGVWYWx1ZSB2
YWx1ZSA9IG1faW50MzJWYWx1ZXMuZ2V0KG5vZGUpOwogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1
ZSkpIHsKICAgICAgICAgICAgIGFkZEV4aXRBcmd1bWVudChleGl0LCBhcmd1bWVudHMsIGluZGV4
LCBWYWx1ZUZvcm1hdEludDMyLCB2YWx1ZS52YWx1ZSgpKTsKQEAgLTQzMjksNiArNDk2MiwyOSBA
QCBwcml2YXRlOgogICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHZhbHVlKTsKICAgICB9CiAgICAg
CisgICAgYm9vbCBkb2VzS2lsbChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBpZiAoZWRnZS5k
b2VzTm90S2lsbCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAg
ICAgaWYgKGVkZ2UtPmhhc0NvbnN0YW50KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIGFkZEF2YWls
YWJsZVJlY292ZXJ5KAorICAgICAgICBOb2RlKiBub2RlLCBSZWNvdmVyeU9wY29kZSBvcGNvZGUs
IExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQsIFZhbHVlRm9ybWF0IGZvcm1hdCkKKyAgICB7Cisg
ICAgICAgIG1fYXZhaWxhYmxlUmVjb3Zlcmllcy5hcHBlbmQoQXZhaWxhYmxlUmVjb3Zlcnkobm9k
ZSwgb3Bjb2RlLCBsZWZ0LCByaWdodCwgZm9ybWF0KSk7CisgICAgfQorICAgIAorICAgIHZvaWQg
YWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgIEVkZ2UgZWRnZSwgUmVjb3ZlcnlPcGNvZGUg
b3Bjb2RlLCBMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0LCBWYWx1ZUZvcm1hdCBmb3JtYXQpCisg
ICAgeworICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeShlZGdlLm5vZGUoKSwgb3Bjb2RlLCBs
ZWZ0LCByaWdodCwgZm9ybWF0KTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBzZXRJbnQzMihOb2Rl
KiBub2RlLCBMVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBtX2ludDMyVmFsdWVzLnNldChu
b2RlLCBMb3dlcmVkTm9kZVZhbHVlKHZhbHVlLCBtX2hpZ2hCbG9jaykpOwpAQCAtNDQzMSwzNSAr
NTA4NywzNyBAQCBwcml2YXRlOgogICAgIH0KICAgICBUeXBlZFBvaW50ZXIgcGF5bG9hZEZvcihM
VmFsdWUgYmFzZSwgaW50IG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRkcmVzc0Zv
cihiYXNlLCBvcGVyYW5kLCBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnBheWxvYWQpKTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IoYmFzZSwgb3BlcmFu
ZCwgUGF5bG9hZE9mZnNldCk7CiAgICAgfQogICAgIFR5cGVkUG9pbnRlciB0YWdGb3IoTFZhbHVl
IGJhc2UsIGludCBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IoYmFz
ZSwgb3BlcmFuZCwgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0
cy50YWcpKTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IoYmFzZSwgb3BlcmFuZCwgVGFnT2Zm
c2V0KTsKICAgICB9Ci0gICAgVHlwZWRQb2ludGVyIGFkZHJlc3NGb3IoaW50IG9wZXJhbmQpCisg
ICAgVHlwZWRQb2ludGVyIGFkZHJlc3NGb3IoaW50IG9wZXJhbmQsIHB0cmRpZmZfdCBvZmZzZXQg
PSAwKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IobV9jYWxsRnJhbWUsIG9wZXJh
bmQpOworICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIob3BlcmFuZCks
IG9mZnNldCk7CiAgICAgfQotICAgIFR5cGVkUG9pbnRlciBhZGRyZXNzRm9yKFZpcnR1YWxSZWdp
c3RlciBvcGVyYW5kKQorICAgIFR5cGVkUG9pbnRlciBhZGRyZXNzRm9yKFZpcnR1YWxSZWdpc3Rl
ciBvcGVyYW5kLCBwdHJkaWZmX3Qgb2Zmc2V0ID0gMCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZGRyZXNzRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5kLm9mZnNldCgpKTsKKyAgICAgICAgaWYgKG9w
ZXJhbmQuaXNMb2NhbCgpKQorICAgICAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IobV9jYXB0dXJl
ZCwgb3BlcmFuZC5vZmZzZXQoKSwgb2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3Io
bV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zmc2V0KCksIG9mZnNldCk7CiAgICAgfQogICAgIFR5cGVk
UG9pbnRlciBwYXlsb2FkRm9yKGludCBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHBh
eWxvYWRGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQpOworICAgICAgICByZXR1cm4gcGF5bG9hZEZv
cihWaXJ0dWFsUmVnaXN0ZXIob3BlcmFuZCkpOwogICAgIH0KICAgICBUeXBlZFBvaW50ZXIgcGF5
bG9hZEZvcihWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBw
YXlsb2FkRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5kLm9mZnNldCgpKTsKKyAgICAgICAgcmV0dXJu
IGFkZHJlc3NGb3Iob3BlcmFuZCwgUGF5bG9hZE9mZnNldCk7CiAgICAgfQogICAgIFR5cGVkUG9p
bnRlciB0YWdGb3IoaW50IG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4gdGFnRm9yKG1f
Y2FsbEZyYW1lLCBvcGVyYW5kKTsKKyAgICAgICAgcmV0dXJuIHRhZ0ZvcihWaXJ0dWFsUmVnaXN0
ZXIob3BlcmFuZCkpOwogICAgIH0KICAgICBUeXBlZFBvaW50ZXIgdGFnRm9yKFZpcnR1YWxSZWdp
c3RlciBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZ0ZvcihtX2NhbGxGcmFtZSwg
b3BlcmFuZC5vZmZzZXQoKSk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKG9wZXJhbmQsIFRh
Z09mZnNldCk7CiAgICAgfQogICAgIAogICAgIFZNJiB2bSgpIHsgcmV0dXJuIG1fZ3JhcGgubV92
bTsgfQpAQCAtNDQ3MSw5ICs1MTI5LDExIEBAIHByaXZhdGU6CiAgICAgT3V0cHV0IG1fb3V0Owog
ICAgIAogICAgIExCYXNpY0Jsb2NrIG1fcHJvbG9ndWU7CisgICAgTEJhc2ljQmxvY2sgbV9oYW5k
bGVFeGNlcHRpb25zOwogICAgIEhhc2hNYXA8QmFzaWNCbG9jayosIExCYXNpY0Jsb2NrPiBtX2Js
b2NrczsKICAgICAKICAgICBMVmFsdWUgbV9jYWxsRnJhbWU7CisgICAgTFZhbHVlIG1fY2FwdHVy
ZWQ7CiAgICAgTFZhbHVlIG1fdGFnVHlwZU51bWJlcjsKICAgICBMVmFsdWUgbV90YWdNYXNrOwog
ICAgIApAQCAtNDQ4OSw2ICs1MTQ5LDggQEAgcHJpdmF0ZToKICAgICAKICAgICBPcGVyYW5kczxB
dmFpbGFiaWxpdHk+IG1fYXZhaWxhYmlsaXR5OwogICAgIAorICAgIFZlY3RvcjxBdmFpbGFibGVS
ZWNvdmVyeSwgMz4gbV9hdmFpbGFibGVSZWNvdmVyaWVzOworICAgIAogICAgIEluUGxhY2VBYnN0
cmFjdFN0YXRlIG1fc3RhdGU7CiAgICAgQWJzdHJhY3RJbnRlcnByZXRlcjxJblBsYWNlQWJzdHJh
Y3RTdGF0ZT4gbV9pbnRlcnByZXRlcjsKICAgICBCYXNpY0Jsb2NrKiBtX2hpZ2hCbG9jazsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRW50cnkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRW50cnkuY3BwCShyZXZpc2lvbiAx
NjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoCiB7CiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBDb2RlQmxvY2sqIGJhc2VsaW5lID0gZGZnQ29k
ZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKTsKKyAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJs
ZSA9IGRmZ0NvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCk7CiAgICAgREZHOjpKSVRDb2RlKiBk
ZmdDb2RlID0gZGZnQ29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZygpOwogICAgIEZvck9TUkVudHJ5
SklUQ29kZSogZW50cnlDb2RlID0gZW50cnlDb2RlQmxvY2stPmppdENvZGUoKS0+ZnRsRm9yT1NS
RW50cnkoKTsKICAgICAKQEAgLTgwLDcgKzgxLDcgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5KAog
ICAgICAgICBzY3JhdGNoW2xvY2FsXSA9IEpTVmFsdWU6OmVuY29kZSh2YWx1ZXMubG9jYWwobG9j
YWwpKTsKICAgICAKICAgICBpbnQgc3RhY2tGcmFtZVNpemUgPSBlbnRyeUNvZGUtPmNvbW1vbi5y
ZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCk7Ci0gICAgaWYgKCF2bS5p
bnRlcnByZXRlci0+c3RhY2soKS5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0
ZXJGb3JMb2NhbChzdGFja0ZyYW1lU2l6ZSkub2Zmc2V0KCldKSkgeworICAgIGlmICghdm0uaW50
ZXJwcmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IoJmV4ZWMtPnJlZ2lzdGVycygpW3Zp
cnR1YWxSZWdpc3RlckZvckxvY2FsKHN0YWNrRnJhbWVTaXplIC0gMSkub2Zmc2V0KCldKSkgewog
ICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAgICAgZGF0YUxvZygi
ICAgIE9TUiBmYWlsZWQgYmVjYXVzZSBzdGFjayBncm93dGggZmFpbGVkLlxuIik7CiAgICAgICAg
IHJldHVybiAwOwpAQCAtODgsNyArODksOSBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoCiAgICAg
CiAgICAgZXhlYy0+c2V0Q29kZUJsb2NrKGVudHJ5Q29kZUJsb2NrKTsKICAgICAKLSAgICB2b2lk
KiByZXN1bHQgPSBlbnRyeUNvZGUtPmFkZHJlc3NGb3JDYWxsKCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KTsKKyAgICB2b2lkKiByZXN1bHQgPSBlbnRyeUNvZGUtPmFkZHJlc3NGb3JDYWxsKAorICAgICAg
ICB2bSwgZXhlY3V0YWJsZSwgQXJpdHlDaGVja05vdFJlcXVpcmVkLAorICAgICAgICBSZWdpc3Rl
clByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKS5leGVjdXRhYmxlQWRkcmVzcygpOwogICAgIGlmIChP
cHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgIGRhdGFMb2coIiAgICBFbnRyeSB3aWxsIHN1
Y2NlZWQsIGdvaW5nIHRvIGFkZHJlc3MiLCBSYXdQb2ludGVyKHJlc3VsdCksICJcbiIpOwogICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0LmgJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjYsNiArMTY2LDExIEBAIHN0cnVjdCBPU1JFeGl0IDogcHVibGljIERGRzo6
T1NSRXhpdEJhc2UKICAgICB1aW50MzJfdCBtX3N0YWNrbWFwSUQ7CiAgICAgCiAgICAgQ29kZUxv
Y2F0aW9uSnVtcCBjb2RlTG9jYXRpb25Gb3JSZXBhdGNoKENvZGVCbG9jayogZnRsQ29kZUJsb2Nr
KSBjb25zdDsKKyAgICAKKyAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRl
KENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2spCisgICAgeworICAgICAgICByZXR1cm4gT1NS
RXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKHByb2ZpbGVkQ29kZUJs
b2NrLCBFeGl0RnJvbUZUTCk7CisgICAgfQogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZU
TApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBp
bGVyLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPU1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw4ICszNCwxMCBAQAogI2lu
Y2x1ZGUgIkZUTEpJVENvZGUuaCIKICNpbmNsdWRlICJGVExPU1JFeGl0LmgiCiAjaW5jbHVkZSAi
RlRMU2F2ZVJlc3RvcmUuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bC5oIgogI2luY2x1ZGUgIk9wZXJhbmRzSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMu
aCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCIKICNp
bmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRM
IHsKQEAgLTYyLDkgKzY0LDEwIEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgIAogICAg
IC8vIFdlIG5lZWQgc2NyYXRjaCBzcGFjZSB0byBzYXZlIGFsbCByZWdpc3RlcnMgYW5kIHRvIGJ1
aWxkIHVwIHRoZSBKU1N0YWNrLgogICAgIC8vIFVzZSBhIHNjcmF0Y2ggYnVmZmVyIHRvIHRyYW5z
ZmVyIGFsbCB2YWx1ZXMuCi0gICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLT5z
Y3JhdGNoQnVmZmVyRm9yU2l6ZShzaXplb2YoRW5jb2RlZEpTVmFsdWUpICogZXhpdC5tX3ZhbHVl
cy5zaXplKCkgKyByZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKTsKKyAgICBTY3Jh
dGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0tPnNjcmF0Y2hCdWZmZXJGb3JTaXplKHNpemVv
ZihFbmNvZGVkSlNWYWx1ZSkgKiBleGl0Lm1fdmFsdWVzLnNpemUoKSArIHJlcXVpcmVkU2NyYXRj
aE1lbW9yeVNpemVJbkJ5dGVzKCkgKyBqaXRDb2RlLT51bndpbmRJbmZvLm1fcmVnaXN0ZXJzLnNp
emUoKSAqIHNpemVvZih1aW50NjRfdCkpOwogICAgIEVuY29kZWRKU1ZhbHVlKiBzY3JhdGNoID0g
c2NyYXRjaEJ1ZmZlciA/IHN0YXRpY19jYXN0PEVuY29kZWRKU1ZhbHVlKj4oc2NyYXRjaEJ1ZmZl
ci0+ZGF0YUJ1ZmZlcigpKSA6IDA7CiAgICAgY2hhciogcmVnaXN0ZXJTY3JhdGNoID0gYml0d2lz
ZV9jYXN0PGNoYXIqPihzY3JhdGNoICsgZXhpdC5tX3ZhbHVlcy5zaXplKCkpOworICAgIHVpbnQ2
NF90KiB1bndpbmRTY3JhdGNoID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4ocmVnaXN0ZXJTY3Jh
dGNoICsgcmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSk7CiAgICAgCiAgICAgLy8g
TWFrZSBzdXJlIHRoYXQgc2F2ZUFsbFJlZ2lzdGVycygpIGhhcyBhIHBsYWNlIG9uIHRvcCBvZiB0
aGUgc3RhY2sgdG8gc3BpbGwgdGhpbmdzLiBUaGF0CiAgICAgLy8gZnVuY3Rpb24gZXhwZWN0cyB0
byBiZSBhYmxlIHRvIHVzZSB0b3Agb2Ygc3RhY2sgZm9yIHNjcmF0Y2ggbWVtb3J5LgpAQCAtNzUs
MTggKzc4LDI3IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgIGppdC5wb3AoR1BSSW5m
bzo6cmVnVDApOwogICAgIGppdC5wb3AoR1BSSW5mbzo6cmVnVDApOwogICAgIAorICAgIGlmICh2
bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyICYmIGNvZGVCbG9jay0+aml0Q29kZSgpLT5kZmdDb21t
b24oKS0+Y29tcGlsYXRpb24pIHsKKyAgICAgICAgUHJvZmlsZXI6OkRhdGFiYXNlJiBkYXRhYmFz
ZSA9ICp2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyOworICAgICAgICBQcm9maWxlcjo6Q29tcGls
YXRpb24qIGNvbXBpbGF0aW9uID0gY29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5j
b21waWxhdGlvbi5nZXQoKTsKKyAgICAgICAgCisgICAgICAgIFByb2ZpbGVyOjpPU1JFeGl0KiBw
cm9maWxlckV4aXQgPSBjb21waWxhdGlvbi0+YWRkT1NSRXhpdCgKKyAgICAgICAgICAgIGV4aXRJ
RCwgUHJvZmlsZXI6Ok9yaWdpblN0YWNrKGRhdGFiYXNlLCBjb2RlQmxvY2ssIGV4aXQubV9jb2Rl
T3JpZ2luKSwKKyAgICAgICAgICAgIGV4aXQubV9raW5kLCBpc1dhdGNocG9pbnQoZXhpdC5tX2tp
bmQpKTsKKyAgICAgICAgaml0LmFkZDY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBD
Q2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhwcm9maWxlckV4aXQtPmNvdW50ZXJBZGRyZXNz
KCkpKTsKKyAgICB9CisKICAgICAvLyBUaGUgcmVtYWluaW5nIGNvZGUgYXNzdW1lcyB0aGF0IFNQ
L0ZQIGFyZSBpbiB0aGUgc2FtZSBzdGF0ZSB0aGF0IHRoZXkgd2VyZSBpbiB0aGUgRlRMJ3MKICAg
ICAvLyBjYWxsIGZyYW1lLgogICAgIAogICAgIC8vIEdldCB0aGUgY2FsbCBmcmFtZSBhbmQgdGFn
IHRoaW5naWVzLgogICAgIC8vIFJlc3RvcmUgdGhlIGV4aXRpbmcgZnVuY3Rpb24ncyBjYWxsRnJh
bWUgdmFsdWUgaW50byBhIHJlZ1Q0Ci0gICAgcmVjb3JkLT5sb2NhdGlvbnNbMF0ucmVzdG9yZUlu
dG8oaml0LCBqaXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVn
VDQpOwogICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoVGFnVHlwZU51
bWJlciksIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CiAgICAgaml0Lm1vdmUoTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02NChUYWdNYXNrKSwgR1BSSW5mbzo6dGFnTWFza1JlZ2lz
dGVyKTsKICAgICAKICAgICAvLyBEbyBzb21lIHZhbHVlIHByb2ZpbGluZy4KICAgICBpZiAoZXhp
dC5tX3Byb2ZpbGVWYWx1ZUZvcm1hdCAhPSBJbnZhbGlkVmFsdWVGb3JtYXQpIHsKLSAgICAgICAg
cmVjb3JkLT5sb2NhdGlvbnNbMV0ucmVzdG9yZUludG8oaml0LCBqaXRDb2RlLT5zdGFja21hcHMs
IHJlZ2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICByZWNvcmQtPmxvY2F0
aW9uc1swXS5yZXN0b3JlSW50byhqaXQsIGppdENvZGUtPnN0YWNrbWFwcywgcmVnaXN0ZXJTY3Jh
dGNoLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgICAgIHJlYm94QWNjb3JkaW5nVG9Gb3JtYXQoCiAg
ICAgICAgICAgICBleGl0Lm1fcHJvZmlsZVZhbHVlRm9ybWF0LCBqaXQsIEdQUkluZm86OnJlZ1Qw
LCBHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDIpOwogICAgICAgICAKQEAgLTEzMCw3ICsx
NDIsNDUgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoCiAgICAgICAgIGNhc2UgRXhpdFZhbHVl
SW5KU1N0YWNrQXNJbnQzMjoKICAgICAgICAgY2FzZSBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDUy
OgogICAgICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzRG91YmxlOgotICAgICAgICAgICAg
aml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IodmFsdWUudmlydHVhbFJlZ2lz
dGVyKCksIEdQUkluZm86OnJlZ1Q0KSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgaml0
LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IodmFsdWUudmlydHVhbFJlZ2lzdGVy
KCkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAor
ICAgICAgICBjYXNlIEV4aXRWYWx1ZVJlY292ZXJ5OgorICAgICAgICAgICAgcmVjb3JkLT5sb2Nh
dGlvbnNbdmFsdWUucmlnaHRSZWNvdmVyeUFyZ3VtZW50KCldLnJlc3RvcmVJbnRvKAorICAgICAg
ICAgICAgICAgIGppdCwgaml0Q29kZS0+c3RhY2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQUklu
Zm86OnJlZ1QxKTsKKyAgICAgICAgICAgIHJlY29yZC0+bG9jYXRpb25zW3ZhbHVlLmxlZnRSZWNv
dmVyeUFyZ3VtZW50KCldLnJlc3RvcmVJbnRvKAorICAgICAgICAgICAgICAgIGppdCwgaml0Q29k
ZS0+c3RhY2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAg
ICAgIHN3aXRjaCAodmFsdWUucmVjb3ZlcnlPcGNvZGUoKSkgeworICAgICAgICAgICAgY2FzZSBB
ZGRSZWNvdmVyeToKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnJlY292ZXJ5Rm9ybWF0
KCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFZhbHVlRm9ybWF0SW50MzI6CisgICAgICAgICAg
ICAgICAgICAgIGppdC5hZGQzMihHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDApOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFZhbHVlRm9ybWF0
SW50NTI6CisgICAgICAgICAgICAgICAgICAgIGppdC5hZGQ2NChHUFJJbmZvOjpyZWdUMSwgR1BS
SW5mbzo6cmVnVDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFN1YlJlY292ZXJ5OgorICAgICAg
ICAgICAgICAgIHN3aXRjaCAodmFsdWUucmVjb3ZlcnlGb3JtYXQoKSkgeworICAgICAgICAgICAg
ICAgIGNhc2UgVmFsdWVGb3JtYXRJbnQzMjoKKyAgICAgICAgICAgICAgICAgICAgaml0LnN1YjMy
KEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVGb3JtYXRJbnQ1MjoKKyAgICAgICAgICAg
ICAgICAgICAgaml0LnN1YjY0KEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CkBAIC0xNDEsNiAr
MTkxLDEzNyBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigKICAgICAgICAgaml0LnN0b3JlNjQo
R1BSSW5mbzo6cmVnVDAsIHNjcmF0Y2ggKyBpbmRleCk7CiAgICAgfQogICAgIAorICAgIC8vIEhl
bmNlZm9ydGggd2UgbWFrZSBpdCBsb29rIGxpa2UgdGhlIGV4aXRpbmcgZnVuY3Rpb24gd2FzIGNh
bGxlZCB0aHJvdWdoIGEgcmVnaXN0ZXIKKyAgICAvLyBwcmVzZXJ2YXRpb24gd3JhcHBlci4gVGhp
cyBpbXBsaWVzIHRoYXQgRlAgbXVzdCBiZSBudWRnZWQgZG93biBieSBhIGNlcnRhaW4gYW1vdW50
LiBUaGVuCisgICAgLy8gd2UgcmVzdG9yZSB0aGUgdmFyaW91cyB0aGluZ3MgYWNjb3JkaW5nIHRv
IGVpdGhlciBleGl0Lm1fdmFsdWVzIG9yIGJ5IGNvcHlpbmcgZnJvbSB0aGUKKyAgICAvLyBvbGQg
ZnJhbWUsIGFuZCBmaW5hbGx5IHdlIHNhdmUgdGhlIHZhcmlvdXMgY2FsbGVlLXNhdmUgcmVnaXN0
ZXJzIGludG8gd2hlcmUgdGhlCisgICAgLy8gcmVzdG9yYXRpb24gdGh1bmsgd291bGQgcmVzdG9y
ZSB0aGVtIGZyb20uCisgICAgCisgICAgcHRyZGlmZl90IG9mZnNldCA9IHJlZ2lzdGVyUHJlc2Vy
dmF0aW9uT2Zmc2V0KCk7CisgICAgUmVnaXN0ZXJTZXQgdG9TYXZlID0gcmVnaXN0ZXJzVG9QcmVz
ZXJ2ZSgpOworICAgIAorICAgIC8vIEJlZm9yZSB3ZSBzdGFydCBtZXNzaW5nIHdpdGggdGhlIGZy
YW1lLCB3ZSBuZWVkIHRvIHNldCBhc2lkZSBhbnkgcmVnaXN0ZXJzIHRoYXQgdGhlCisgICAgLy8g
RlRMIGNvZGUgd2FzIHByZXNlcnZpbmcuCisgICAgZm9yICh1bnNpZ25lZCBpID0gaml0Q29kZS0+
dW53aW5kSW5mby5tX3JlZ2lzdGVycy5zaXplKCk7IGktLTspIHsKKyAgICAgICAgUmVnaXN0ZXJB
dE9mZnNldCBlbnRyeSA9IGppdENvZGUtPnVud2luZEluZm8ubV9yZWdpc3RlcnNbaV07CisgICAg
ICAgIGppdC5sb2FkNjQoCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNy
b0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIGVudHJ5Lm9mZnNldCgpKSwKKyAgICAg
ICAgICAgIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVn
VDAsIHVud2luZFNjcmF0Y2ggKyBpKTsKKyAgICB9CisgICAgCisgICAgaml0LmxvYWQzMihDQ2Fs
bEhlbHBlcnM6OnBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCksIEdQUkluZm86OnJl
Z1QyKTsKKyAgICAKKyAgICAvLyBMZXQncyBzYXkgdGhhdCB0aGUgRlRMIGZ1bmN0aW9uIGhhZCBm
YWlsZWQgaXRzIGFyaXR5IGNoZWNrLiBJbiB0aGF0IGNhc2UsIHRoZSBzdGFjayB3aWxsCisgICAg
Ly8gY29udGFpbiBzb21lIGV4dHJhIHN0dWZmLgorICAgIC8vCisgICAgLy8gRmlyc3Qgd2UgY29t
cHV0ZSB0aGUgcGFkZGVkIHN0YWNrIHNwYWNlOgorICAgIC8vCisgICAgLy8gICAgIHBhZGRlZFN0
YWNrU3BhY2UgPSByb3VuZFVwKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycyAtIHJlZ1QyICsgMSkK
KyAgICAvLworICAgIC8vIFRoZSBzdGFjayB3aWxsIGhhdmUgcmVnVDIgKyBDYWxsRnJhbWVIZWFk
ZXJTaXplIHN0dWZmLCBidXQgYWJvdmUgaXQgdGhlcmUgd2lsbCBiZQorICAgIC8vIHBhZGRlZFN0
YWNrU3BhY2UgZ3VuayB1c2VkIGJ5IHRoZSBhcml0eSBjaGVjayBmYWlsIHJlc3RvcmF0aW9uIHRo
dW5rLiBXaGVuIHRoYXQgaGFwcGVucworICAgIC8vIHdlIHdhbnQgdG8gbWFrZSB0aGUgc3RhY2sg
bG9vayBsaWtlIHRoaXMsIGZyb20gaGlnaGVyIGFkZHJlc3NlcyBkb3duOgorICAgIC8vCisgICAg
Ly8gICAgIC0gcmVnaXN0ZXIgcHJlc2VydmF0aW9uIHJldHVybiBQQworICAgIC8vICAgICAtIHBy
ZXNlcnZlZCByZWdpc3RlcnMKKyAgICAvLyAgICAgLSBhcml0eSBjaGVjayBmYWlsIHJldHVybiBQ
QworICAgIC8vICAgICAtIGFyZ3VtZW50IHBhZGRpbmcKKyAgICAvLyAgICAgLSBhY3R1YWwgYXJn
dW1lbnRzCisgICAgLy8gICAgIC0gY2FsbCBmcmFtZSBoZWFkZXIKKyAgICAvLworICAgIC8vIFNv
IHRoYXQgdGhlIGFjdHVhbCBjYWxsIGZyYW1lIGhlYWRlciBhcHBlYXJzIHRvIHJldHVybiB0byB0
aGUgYXJpdHkgY2hlY2sgZmFpbCByZXR1cm4KKyAgICAvLyBQQywgYW5kIHRoYXQgdGhlbiByZXR1
cm5zIHRvIHRoZSByZWdpc3RlciBwcmVzZXJ2YXRpb24gdGh1bmsuIFRoZSBhcml0eSBjaGVjayB0
aHVuayB0aGF0CisgICAgLy8gd2UgcmV0dXJuIHRvIHdpbGwgaGF2ZSB0aGUgcGFkZGluZyBzaXpl
IGVuY29kZWQgaW50byBpdC4gSXQgd2lsbCB0aGVuIGtub3cgdG8gcmV0dXJuCisgICAgLy8gaW50
byB0aGUgcmVnaXN0ZXIgcHJlc2VydmF0aW9uIHRodW5rLCB3aGljaCB1c2VzIHRoZSBhcmd1bWVu
dCBjb3VudCB0byBmaWd1cmUgb3V0IHdoZXJlCisgICAgLy8gcmVnaXN0ZXJzIGFyZSBwcmVzZXJ2
ZWQuCisKKyAgICAvLyBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBG
dW5jdGlvbkNvZGUuCisgICAgUkVMRUFTRV9BU1NFUlQoY29kZUJsb2NrLT5jb2RlVHlwZSgpID09
IEZ1bmN0aW9uQ29kZSk7CisgICAgCisgICAgaml0LmFkZDMyKAorICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKC1jb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSksIEdQUkluZm86
OnJlZ1QyLAorICAgICAgICBHUFJJbmZvOjpyZWdUMyk7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgYXJpdHlJbnRhY3QgPSBqaXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBH
UFJJbmZvOjpyZWdUMyk7CisgICAgaml0Lm5lZzMyKEdQUkluZm86OnJlZ1QzKTsKKyAgICBqaXQu
YWRkMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxICsgc3RhY2tBbGlnbm1lbnRSZWdp
c3RlcnMoKSAtIDEpLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgaml0LmFuZDMyKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoLXN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpLCBHUFJJbmZvOjpy
ZWdUMyk7CisgICAgaml0LmFkZDMyKEdQUkluZm86OnJlZ1QzLCBHUFJJbmZvOjpyZWdUMik7Cisg
ICAgYXJpdHlJbnRhY3QubGluaygmaml0KTsKKworICAgIC8vIEZpcnN0IHNldCB1cCBTUCBzbyB0
aGF0IG91ciBkYXRhIGRvZXNuJ3QgZ2V0IGNsb2JiZXJlZCBieSBzaWduYWxzLgorICAgIGppdC5h
ZGRQdHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoCisgICAgICAgICAg
ICBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2YoCisgICAgICAgICAgICAgICAgc3RhY2tBbGlnbm1l
bnRSZWdpc3RlcnMoKSwKKyAgICAgICAgICAgICAgICAtcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZz
ZXQoKSAtIGV4aXQubV92YWx1ZXMubnVtYmVyT2ZMb2NhbHMoKSAqIHNpemVvZihSZWdpc3Rlcikg
LSBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkpLAorICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CisgICAgCisgICAgaml0LnN1YlB0cigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMihyZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpKSwKKyAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAKKyAgICAvLyBDb3B5IHRoZSBv
bGQgZnJhbWUgZGF0YSBpbnRvIGl0cyBuZXcgbG9jYXRpb24uCisgICAgaml0LmFkZDMyKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIEdQ
UkluZm86OnJlZ1QyKTsKKyAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVy
UmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbG9v
cCA9IGppdC5sYWJlbCgpOworICAgIGppdC5zdWIzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKDEpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LmxvYWQ2NChNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhHUFJJbmZvOjpyZWdUMSwgb2Zmc2V0KSwgR1BSSW5mbzo6cmVnVDApOworICAgIGpp
dC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LmFkZFB0
cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZv
OjpyZWdUMSk7CisgICAgaml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywg
R1BSSW5mbzo6cmVnVDIpLmxpbmtUbyhsb29wLCAmaml0KTsKKyAgICAKKyAgICAvLyBBdCB0aGlz
IHBvaW50IHJlZ1QxIHBvaW50cyB0byB3aGVyZSB3ZSB3b3VsZCBzYXZlIG91ciByZWdpc3RlcnMu
IFNhdmUgdGhlbSBoZXJlLgorICAgIHB0cmRpZmZfdCBjdXJyZW50T2Zmc2V0ID0gMDsKKyAgICBm
b3IgKEdQUlJlZyBncHIgPSBBc3NlbWJseUhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgZ3ByIDw9
IEFzc2VtYmx5SGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IGdwciA9IHN0YXRpY19jYXN0PEdQUlJl
Zz4oZ3ByICsgMSkpIHsKKyAgICAgICAgaWYgKCF0b1NhdmUuZ2V0KGdwcikpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgY3VycmVudE9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwor
ICAgICAgICB1bnNpZ25lZCB1bndpbmRJbmRleCA9IGppdENvZGUtPnVud2luZEluZm8uaW5kZXhP
ZihncHIpOworICAgICAgICBpZiAodW53aW5kSW5kZXggPT0gVUlOVF9NQVgpIHsKKyAgICAgICAg
ICAgIC8vIFRoZSBGVEwgY29tcGlsYXRpb24gZGlkbid0IHByZXNlcnZlIHRoaXMgcmVnaXN0ZXIu
IFRoaXMgbWVhbnMgdGhhdCBpdCBhbHNvCisgICAgICAgICAgICAvLyBkaWRuJ3QgdXNlIHRoZSBy
ZWdpc3Rlci4gU28gaXRzIHZhbHVlIGF0IHRoZSBiZWdpbm5pbmcgb2YgT1NSIGV4aXQgc2hvdWxk
IGJlCisgICAgICAgICAgICAvLyBwcmVzZXJ2ZWQgYnkgdGhlIHRodW5rLiBMdWNraWx5LCB3ZSBz
YXZlZCBhbGwgcmVnaXN0ZXJzIGludG8gdGhlIHJlZ2lzdGVyCisgICAgICAgICAgICAvLyBzY3Jh
dGNoIGJ1ZmZlciwgc28gd2UgY2FuIHJlc3RvcmUgdGhlbSBmcm9tIHRoZXJlLgorICAgICAgICAg
ICAgaml0LmxvYWQ2NChyZWdpc3RlclNjcmF0Y2ggKyBvZmZzZXRPZkdQUihncHIpLCBHUFJJbmZv
OjpyZWdUMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGUgRlRMIGNvbXBp
bGF0aW9uIHByZXNlcnZlZCB0aGUgcmVnaXN0ZXIuIEl0cyBuZXcgdmFsdWUgaXMgdGhlcmVmb3Jl
CisgICAgICAgICAgICAvLyBpcnJlbGV2YW50LCBidXQgd2UgY2FuIGdldCB0aGUgdmFsdWUgdGhh
dCB3YXMgcHJlc2VydmVkIGJ5IHVzaW5nIHRoZSB1bndpbmQKKyAgICAgICAgICAgIC8vIGRhdGEu
IFdlJ3ZlIGFscmVhZHkgY29waWVkIGFsbCB1bndpbmQtYWJsZSBwcmVzZXJ2ZWQgcmVnaXN0ZXJz
IGludG8gdGhlIHVud2luZAorICAgICAgICAgICAgLy8gc2NyYXRjaCBidWZmZXIsIHNvIHdlIGNh
biBnZXQgaXQgZnJvbSB0aGVyZS4KKyAgICAgICAgICAgIGppdC5sb2FkNjQodW53aW5kU2NyYXRj
aCArIHVud2luZEluZGV4LCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgIH0KKyAgICAgICAgaml0
LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZv
OjpyZWdUMSwgY3VycmVudE9mZnNldCkpOworICAgIH0KKyAgICAKKyAgICAvLyBXZSBuZWVkIHRv
IG1ha2Ugc3VyZSB0aGF0IHdlIHJldHVybiBpbnRvIHRoZSByZWdpc3RlciByZXN0b3JhdGlvbiB0
aHVuay4gVGhpcyB3b3JrcworICAgIC8vIGRpZmZlcmVudGx5IGRlcGVuZGluZyBvbiB3aGV0aGVy
IG9yIG5vdCB3ZSBoYWQgYXJpdHkgaXNzdWVzLgorICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGFy
aXR5SW50YWN0Rm9yUmV0dXJuUEMgPQorICAgICAgICBqaXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNz
ZW1ibGVyOjpaZXJvLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgCisgICAgLy8gVGhlIHJldHVybiBQ
QyBpbiB0aGUgY2FsbCBmcmFtZSBoZWFkZXIgcG9pbnRzIGF0IGV4YWN0bHkgdGhlIHJpZ2h0IGFy
aXR5IHJlc3RvcmF0aW9uCisgICAgLy8gdGh1bmsuIFdlIGRvbid0IHdhbnQgdG8gY2hhbmdlIHRo
YXQuIEJ1dCB0aGUgYXJpdHkgcmVzdG9yYXRpb24gdGh1bmsncyBmcmFtZSBoYXMgYQorICAgIC8v
IHJldHVybiBQQyBhbmQgd2Ugd2FudCB0byByZXJvdXRlIHRoYXQgdG8gb3VyIHJlZ2lzdGVyIHJl
c3RvcmF0aW9uIHRodW5rLiBUaGUgYXJpdHkKKyAgICAvLyByZXN0b3JhdGlvbidzIHJldHVybiBQ
QyBqdXN0IGp1c3QgYmVsb3cgcmVnVDEsIGFuZCB0aGUgcmVnaXN0ZXIgcmVzdG9yYXRpb24ncyBy
ZXR1cm4gUEMKKyAgICAvLyBpcyByaWdodCBhdCByZWdUMS4KKyAgICBqaXQubG9hZFB0cihNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMSwgLXN0YXRpY19jYXN0PHB0cmRpZmZf
dD4oc2l6ZW9mKFJlZ2lzdGVyKSkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgaml0LnN0b3JlUHRy
KEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRyKAorICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cih2bS0+Z2V0Q1RJU3R1YihyZWdpc3Rl
clJlc3RvcmF0aW9uVGh1bmtHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSwK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDEsIC1zdGF0aWNf
Y2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgCisgICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgYXJpdHlSZXR1cm5QQ1JlYWR5ID0gaml0Lmp1bXAoKTsKKworICAgIGFyaXR5
SW50YWN0Rm9yUmV0dXJuUEMubGluaygmaml0KTsKKyAgICAKKyAgICBqaXQubG9hZFB0cihNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIs
IENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICBqaXQu
c3RvcmVQdHIoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3RvcmVQ
dHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHZtLT5nZXRDVElTdHVi
KHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6
ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworICAg
IAorICAgIGFyaXR5UmV0dXJuUENSZWFkeS5saW5rKCZqaXQpOworICAgIAogICAgIC8vIE5vdyBn
ZXQgc3RhdGUgb3V0IG9mIHRoZSBzY3JhdGNoIGJ1ZmZlciBhbmQgcGxhY2UgaXQgYmFjayBpbnRv
IHRoZSBzdGFjay4gVGhpcyBwYXJ0IGRvZXMKICAgICAvLyBhbGwgcmVib3hpbmcuCiAgICAgZm9y
ICh1bnNpZ25lZCBpbmRleCA9IGV4aXQubV92YWx1ZXMuc2l6ZSgpOyBpbmRleC0tOykgewpAQCAt
MTUwLDI2ICszMzEsMTYgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoCiAgICAgICAgIGppdC5s
b2FkNjQoc2NyYXRjaCArIGluZGV4LCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgICAgIHJlYm94QWNj
b3JkaW5nVG9Gb3JtYXQoCiAgICAgICAgICAgICB2YWx1ZS52YWx1ZUZvcm1hdCgpLCBqaXQsIEdQ
UkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDIpOwotICAgICAgICBq
aXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKHN0
YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4ob3BlcmFuZCksIEdQUkluZm86OnJlZ1Q0KSk7Cisg
ICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJl
c3NGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihvcGVyYW5kKSkpOwogICAgIH0KICAg
ICAKLSAgICAvLyBSZXN0b3JlIHRoZSBvbGQgc3RhY2sgcG9pbnRlciBhbmQgdGhlbiBwdXQgcmVn
VDQgaW50byBjYWxsRnJhbWVSZWdpc3Rlci4gVGhlIGlkZWEgaXMKLSAgICAvLyB0aGF0IHRoZSBG
VEwgY2FsbCBmcmFtZSBpcyBwdXNoZWQgb250byB0aGUgSlMgY2FsbCBmcmFtZSBhbmQgd2UgY2Fu
IHJlY292ZXIgdGhlIG9sZAotICAgIC8vIHZhbHVlIG9mIHRoZSBzdGFjayBwb2ludGVyIGJ5IHBv
cHBpbmcgdGhlIEZUTCBjYWxsIGZyYW1lLiBXZSBhbHJlYWR5IGtub3cgd2hhdCB0aGUKLSAgICAv
LyBmcmFtZSBwb2ludGVyIGluIHRoZSBKUyBjYWxsIGZyYW1lIHdhcyBiZWNhdXNlIGl0IHdvdWxk
IGhhdmUgYmVlbiBwYXNzZWQgYXMgYW4gYXJndW1lbnQKLSAgICAvLyB0byB0aGUgRlRMIGNhbGwg
ZnJhbWUuCi0gICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVy
LCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotICAgIGppdC5wb3AoR1BS
SW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgaml0LnBvcChHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAg
ICBqaXQubW92ZShHUFJJbmZvOjpyZWdUNCwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwot
ICAgIAogICAgIGhhbmRsZUV4aXRDb3VudHMoaml0LCBleGl0KTsKICAgICByZWlmeUlubGluZWRD
YWxsRnJhbWVzKGppdCwgZXhpdCk7CiAgICAgYWRqdXN0QW5kSnVtcFRvVGFyZ2V0KGppdCwgZXhp
dCk7CiAgICAgCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0sICZqaXQsIGNvZGVCbG9j
ayk7CiAgICAgZXhpdC5tX2NvZGUgPSBGSU5BTElaRV9DT0RFX0lGKAotICAgICAgICBzaG91bGRT
aG93RGlzYXNzZW1ibHkoKSwKKyAgICAgICAgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkgfHwgT3B0
aW9uczo6dmVyYm9zZU9TUigpLAogICAgICAgICBwYXRjaEJ1ZmZlciwKICAgICAgICAgKCJGVEwg
T1NSIGV4aXQgIyV1ICglcywgJXMpIGZyb20gJXMsIHdpdGggb3BlcmFuZHMgPSAlcywgYW5kIHJl
Y29yZCA9ICVzIiwKICAgICAgICAgICAgIGV4aXRJRCwgdG9DU3RyaW5nKGV4aXQubV9jb2RlT3Jp
Z2luKS5kYXRhKCksCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHJl
dmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTE4NCw3ICsxODQsMjMgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
cmV0dXJuIGNhbGwoZG91YmxlQWJzSW50cmluc2ljKCksIHZhbHVlKTsKICAgICB9Ci0gICAgCisg
ICAgTFZhbHVlIGRvdWJsZVNpbihMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4g
Y2FsbChkb3VibGVTaW5JbnRyaW5zaWMoKSwgdmFsdWUpOworICAgIH0KKworCisgICAgTFZhbHVl
IGRvdWJsZUNvcyhMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gY2FsbChkb3Vi
bGVDb3NJbnRyaW5zaWMoKSwgdmFsdWUpOworICAgIH0KKworICAgIExWYWx1ZSBkb3VibGVTcXJ0
KExWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxsKGRvdWJsZVNxcnRJbnRy
aW5zaWMoKSwgdmFsdWUpOworICAgIH0KKworCiAgICAgc3RhdGljIGJvb2wgaGFzU2Vuc2libGVE
b3VibGVUb0ludCgpIHsgcmV0dXJuIGlzWDg2KCk7IH0KICAgICBMVmFsdWUgc2Vuc2libGVEb3Vi
bGVUb0ludChMVmFsdWUgdmFsdWUpCiAgICAgewpAQCAtMjEwLDYgKzIyNiw3IEBAIHB1YmxpYzoK
ICAgICBMVmFsdWUgY2FzdFRvSW50MzIoTFZhbHVlIHZhbHVlKSB7IHJldHVybiBpbnRDYXN0KHZh
bHVlLCBpbnQzMik7IH0KICAgICBMVmFsdWUgZnBDYXN0KExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlw
ZSkgeyByZXR1cm4gYnVpbGRGUENhc3QobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0KICAgICBM
VmFsdWUgaW50VG9QdHIoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZElu
dFRvUHRyKG1fYnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CisgICAgTFZhbHVlIHB0clRvSW50KExW
YWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRQdHJUb0ludChtX2J1aWxkZXIs
IHZhbHVlLCB0eXBlKTsgfQogICAgIExWYWx1ZSBiaXRDYXN0KExWYWx1ZSB2YWx1ZSwgTFR5cGUg
dHlwZSkgeyByZXR1cm4gYnVpbGRCaXRDYXN0KG1fYnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CiAg
ICAgCiAgICAgTFZhbHVlIGFsbG9jYShMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZEFsbG9jYSht
X2J1aWxkZXIsIHR5cGUpOyB9CkBAIC0zMTQsNiArMzMxLDIwIEBAIHB1YmxpYzoKICAgICB2b2lk
IHN0b3JlUHRyKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0RmllbGQm
IGZpZWxkKSB7IHN0b3JlUHRyKHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0KICAgICB2
b2lkIHN0b3JlRG91YmxlKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0
RmllbGQmIGZpZWxkKSB7IHN0b3JlRG91YmxlKHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZpZWxkKSk7
IH0KICAgICAKKyAgICB2b2lkIGFzY3JpYmVSYW5nZShMVmFsdWUgbG9hZEluc3RydWN0aW9uLCBj
b25zdCBWYWx1ZVJhbmdlJiByYW5nZSkKKyAgICB7CisgICAgICAgIHJhbmdlLmRlY29yYXRlSW5z
dHJ1Y3Rpb24obV9jb250ZXh0LCBsb2FkSW5zdHJ1Y3Rpb24sIHJhbmdlS2luZCk7CisgICAgfQor
ICAgIAorICAgIExWYWx1ZSBub25OZWdhdGl2ZTMyKExWYWx1ZSBsb2FkSW5zdHJ1Y3Rpb24pCisg
ICAgeworICAgICAgICBhc2NyaWJlUmFuZ2UobG9hZEluc3RydWN0aW9uLCBub25OZWdhdGl2ZUlu
dDMyKTsKKyAgICAgICAgcmV0dXJuIGxvYWRJbnN0cnVjdGlvbjsKKyAgICB9CisgICAgCisgICAg
TFZhbHVlIGxvYWQzMk5vbk5lZ2F0aXZlKFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHJldHVybiBu
b25OZWdhdGl2ZTMyKGxvYWQzMihwb2ludGVyKSk7IH0KKyAgICBMVmFsdWUgbG9hZDMyTm9uTmVn
YXRpdmUoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0RmllbGQmIGZpZWxkKSB7IHJldHVybiBu
b25OZWdhdGl2ZTMyKGxvYWQzMihiYXNlLCBmaWVsZCkpOyB9CisgICAgCiAgICAgTFZhbHVlIGlj
bXAoTEludFByZWRpY2F0ZSBjb25kLCBMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVy
biBidWlsZElDbXAobV9idWlsZGVyLCBjb25kLCBsZWZ0LCByaWdodCk7IH0KICAgICBMVmFsdWUg
ZXF1YWwoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gaWNtcChMTFZNSW50RVEs
IGxlZnQsIHJpZ2h0KTsgfQogICAgIExWYWx1ZSBub3RFcXVhbChMVmFsdWUgbGVmdCwgTFZhbHVl
IHJpZ2h0KSB7IHJldHVybiBpY21wKExMVk1JbnRORSwgbGVmdCwgcmlnaHQpOyB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkZUTFJlY292ZXJ5T3Bjb2RlLmgiCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUg
PHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiBvdXQsIEpTQzo6RlRMOjpSZWNvdmVyeU9wY29kZSBvcGNvZGUpCit7
CisgICAgc3dpdGNoIChvcGNvZGUpIHsKKyAgICBjYXNlIEpTQzo6RlRMOjpBZGRSZWNvdmVyeToK
KyAgICAgICAgb3V0LnByaW50KCJBZGQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlND
OjpGVEw6OlN1YlJlY292ZXJ5OgorICAgICAgICBvdXQucHJpbnQoIlN1YiIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZUTFJlY292ZXJ5T3Bjb2RlX2gKKyNkZWZpbmUg
RlRMUmVjb3ZlcnlPcGNvZGVfaAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKK25hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgRlRMIHsKKworZW51bSBSZWNvdmVyeU9wY29kZSB7CisgICAgQWRkUmVj
b3ZlcnksCisgICAgU3ViUmVjb3ZlcnkKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwK
KworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFByaW50U3RyZWFtOwordm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiwgSlNDOjpGVEw6OlJlY292ZXJ5T3Bjb2RlKTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTFJl
Y292ZXJ5T3Bjb2RlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdp
c3RlckF0T2Zmc2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExSZWdpc3RlckF0T2Zmc2V0LmgiCisK
KyNpZiBFTkFCTEUoRlRMX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewor
Cit2b2lkIFJlZ2lzdGVyQXRPZmZzZXQ6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sK
KyAgICBvdXQucHJpbnQoZ3ByKCksICIgYXQgIiwgb2Zmc2V0KCkpOworfQorCit9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRlRMUmVnaXN0ZXJBdE9mZnNldF9oCisj
ZGVmaW5lIEZUTFJlZ2lzdGVyQXRPZmZzZXRfaAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNp
bmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CisKK25hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworY2xhc3MgUmVnaXN0ZXJBdE9mZnNldCB7Citw
dWJsaWM6CisgICAgUmVnaXN0ZXJBdE9mZnNldCgpCisgICAgICAgIDogbV9ncHIoSW52YWxpZEdQ
UlJlZykKKyAgICAgICAgLCBtX29mZnNldCgwKQorICAgIHsKKyAgICB9CisgICAgCisgICAgUmVn
aXN0ZXJBdE9mZnNldChHUFJSZWcgZ3ByLCBwdHJkaWZmX3Qgb2Zmc2V0KQorICAgICAgICA6IG1f
Z3ByKGdwcikKKyAgICAgICAgLCBtX29mZnNldChvZmZzZXQpCisgICAgeworICAgIH0KKyAgICAK
KyAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuIG1fZ3ByID09IEludmFsaWRHUFJS
ZWc7IH0KKyAgICAKKyAgICBHUFJSZWcgZ3ByKCkgY29uc3QgeyByZXR1cm4gbV9ncHI7IH0KKyAg
ICBwdHJkaWZmX3Qgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KKyAgICAKKyAg
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgb3RoZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gZ3ByKCkgPT0gb3RoZXIuZ3ByKCkgJiYgb2Zmc2V0KCkgPT0g
b3RoZXIub2Zmc2V0KCk7CisgICAgfQorICAgIAorICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFJl
Z2lzdGVyQXRPZmZzZXQmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGdwcigpICE9
IG90aGVyLmdwcigpKQorICAgICAgICAgICAgcmV0dXJuIGdwcigpIDwgb3RoZXIuZ3ByKCk7Cisg
ICAgICAgIHJldHVybiBvZmZzZXQoKSA8IG90aGVyLm9mZnNldCgpOworICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgR1BSUmVnIGdldEdQUihSZWdpc3RlckF0T2Zmc2V0KiB2YWx1ZSkgeyByZXR1cm4g
dmFsdWUtPmdwcigpOyB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNv
bnN0OworCitwcml2YXRlOgorICAgIEdQUlJlZyBtX2dwcjsKKyAgICBwdHJkaWZmX3QgbV9vZmZz
ZXQ7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUo
RlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTFJlZ2lzdGVyQXRPZmZzZXRfaAorCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCShyZXZpc2lvbiAx
NjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAogI2lu
Y2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNp
bmNsdWRlICJGVExTdGF0ZS5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKIApAQCAtMTM0LDExICsx
MzUsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU2xvd1BhdGhDYWxsS2V5KHVzZWRSZWdp
c3RlcnMoKSwgY2FsbFRhcmdldCwgb2Zmc2V0KCkpOwogICAgIH0KICAgICAKLSAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBtYWtlQ2FsbCh2b2lkKiBjYWxsVGFyZ2V0KQorICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIG1ha2VDYWxsKHZvaWQqIGNhbGxUYXJnZXQsIE1hY3JvQXNzZW1ibGVyOjpKdW1w
TGlzdCogZXhjZXB0aW9uVGFyZ2V0KQogICAgIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgcmVzdWx0ID0gbV9qaXQuY2FsbCgpOwogICAgICAgICBtX3N0YXRlLmZpbmFsaXplci0+c2xv
d1BhdGhDYWxscy5hcHBlbmQoU2xvd1BhdGhDYWxsKAogICAgICAgICAgICAgcmVzdWx0LCBrZXlX
aXRoVGFyZ2V0KGNhbGxUYXJnZXQpKSk7CisgICAgICAgIGlmIChleGNlcHRpb25UYXJnZXQpCisg
ICAgICAgICAgICBleGNlcHRpb25UYXJnZXQtPmFwcGVuZChtX2ppdC5lbWl0RXhjZXB0aW9uQ2hl
Y2soKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIApAQCAtMTU3LDMyICsx
NjAsNDQgQEAgcHJpdmF0ZToKIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAKK3ZvaWQgc3Rv
cmVDb2RlT3JpZ2luKFN0YXRlJiBzdGF0ZSwgQ0NhbGxIZWxwZXJzJiBqaXQsIENvZGVPcmlnaW4g
Y29kZU9yaWdpbikKK3sKKyAgICBpZiAoIWNvZGVPcmlnaW4uaXNTZXQoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIHVuc2lnbmVkIGluZGV4ID0gc3RhdGUuaml0Q29kZS0+Y29tbW9uLmFk
ZENvZGVPcmlnaW4oY29kZU9yaWdpbik7CisgICAgdW5zaWduZWQgbG9jYXRpb25CaXRzID0gQ2Fs
bEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNDb2RlT3JpZ2luSW5kZXgoaW5kZXgpOworICAgIGpp
dC5zdG9yZTMyKAorICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihsb2NhdGlvbkJp
dHMpLAorICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVn
aXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7Cit9CisKIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oCi0gICAgU3RhdGUmIHN0YXRlLCBjb25zdCBSZWdpc3RlclNldCYg
dXNlZFJlZ2lzdGVycywgQ0NhbGxIZWxwZXJzJiBqaXQsIAotICAgIEpfSklUT3BlcmF0aW9uX0VT
c2lKSSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwK
LSAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEdQUlJlZyBvYmplY3QsIFN0cmluZ0lt
cGwqIHVpZCkKKyAgICBTdGF0ZSYgc3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0
ZXJzLCBDQ2FsbEhlbHBlcnMmIGppdCwKKyAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wTGlzdCogZXhjZXB0aW9uVGFyZ2V0LAorICAgIEpfSklUT3BlcmF0aW9u
X0VTc2lKSSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywKKyAgICBHUFJSZWcgb2JqZWN0LCBTdHJpbmdJbXBsKiB1aWQpCiB7CisgICAgc3RvcmVD
b2RlT3JpZ2luKHN0YXRlLCBqaXQsIGNvZGVPcmlnaW4pOwogICAgIENhbGxDb250ZXh0IGNvbnRl
eHQoc3RhdGUsIHVzZWRSZWdpc3RlcnMsIGppdCwgNCwgcmVzdWx0KTsKLSAgICBqaXQuc2V0dXBB
cmd1bWVudHMoCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoc3R1YkluZm8pLCBvYmplY3QsCisgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZSgKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwg
b2JqZWN0LAogICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodWlkKSk7Ci0gICAg
cmV0dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb24pKTsK
LSAgICAvLyBGSVhNRTogRlRMIHNob3VsZCBzdXBwb3J0IGV4Y2VwdGlvbnMuCi0gICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgorICAgIHJldHVybiBj
b250ZXh0Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0aW9uKSwgZXhjZXB0aW9u
VGFyZ2V0KTsKIH0KIAogTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKICAgICBT
dGF0ZSYgc3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDQ2FsbEhlbHBl
cnMmIGppdCwgCi0gICAgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBvcGVyYXRpb24sIEdQUlJlZyBj
YWxsRnJhbWVSZWdpc3RlciwKLSAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEdQUlJl
ZyB2YWx1ZSwgR1BSUmVnIG9iamVjdCwgU3RyaW5nSW1wbCogdWlkKQorICAgIENvZGVPcmlnaW4g
Y29kZU9yaWdpbiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0KiBleGNlcHRpb25UYXJnZXQsCisg
ICAgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBvcGVyYXRpb24sIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgR1BSUmVnIHZhbHVlLAorICAgIEdQUlJlZyBvYmplY3QsIFN0cmluZ0ltcGwqIHVp
ZCkKIHsKKyAgICBzdG9yZUNvZGVPcmlnaW4oc3RhdGUsIGppdCwgY29kZU9yaWdpbik7CiAgICAg
Q2FsbENvbnRleHQgY29udGV4dChzdGF0ZSwgdXNlZFJlZ2lzdGVycywgaml0LCA1LCBJbnZhbGlk
R1BSUmVnKTsKLSAgICBqaXQuc2V0dXBBcmd1bWVudHMoCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lz
dGVyLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoc3R1YkluZm8pLCB2YWx1ZSwgb2JqZWN0
LAorICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAgICAgIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cihzdHViSW5mbyksIHZhbHVlLCBvYmplY3QsCiAgICAgICAgIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih1aWQpKTsKLSAgICByZXR1cm4gY29udGV4dC5tYWtl
Q2FsbChiaXR3aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlvbikpOwotICAgIC8vIEZJWE1FOiBGVEwg
c2hvdWxkIHN1cHBvcnQgZXhjZXB0aW9ucy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIyCisgICAgcmV0dXJuIGNvbnRleHQubWFrZUNhbGwoYml0
d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb24pLCBleGNlcHRpb25UYXJnZXQpOwogfQogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6RlRMCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFNsb3dQYXRoQ2FsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMU2xvd1BhdGhDYWxsLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDEzICs1NSwxNSBA
QCBwcml2YXRlOgogICAgIFNsb3dQYXRoQ2FsbEtleSBtX2tleTsKIH07CiAKK3ZvaWQgc3RvcmVD
b2RlT3JpZ2luKFN0YXRlJiwgQ0NhbGxIZWxwZXJzJiwgQ29kZU9yaWdpbik7CisKIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oCi0gICAgU3RhdGUmLCBjb25zdCBSZWdpc3RlclNl
dCYsIENDYWxsSGVscGVycyYsIEpfSklUT3BlcmF0aW9uX0VTc2lKSSwKLSAgICBHUFJSZWcgcmVz
dWx0LCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIFN0cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVn
IG9iamVjdCwKKyAgICBTdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0JiwgQ0NhbGxIZWxwZXJzJiwg
Q29kZU9yaWdpbiwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCosCisgICAgSl9KSVRPcGVyYXRpb25f
RVNzaUpJLCBHUFJSZWcgcmVzdWx0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZyBvYmplY3Qs
CiAgICAgU3RyaW5nSW1wbCogdWlkKTsKIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oCi0gICAgU3RhdGUmLCBjb25zdCBSZWdpc3RlclNldCYsIENDYWxsSGVscGVycyYsIFZfSklU
T3BlcmF0aW9uX0VTc2lKSkksCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBTdHJ1Y3R1
cmVTdHViSW5mbyosIEdQUlJlZyB2YWx1ZSwgR1BSUmVnIG9iamVjdCwKKyAgICBTdGF0ZSYsIGNv
bnN0IFJlZ2lzdGVyU2V0JiwgQ0NhbGxIZWxwZXJzJiwgQ29kZU9yaWdpbiwgQ0NhbGxIZWxwZXJz
OjpKdW1wTGlzdCosCisgICAgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSwgU3RydWN0dXJlU3R1Yklu
Zm8qLCBHUFJSZWcgdmFsdWUsIEdQUlJlZyBvYmplY3QsCiAgICAgU3RyaW5nSW1wbCogdWlkKTsK
IAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExTdGFja01hcHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMU3RhY2tNYXBzLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3
OSw5IEBAIHZvaWQgU3RhY2tNYXBzOjpMb2NhdGlvbjo6cmVzdG9yZUludG8oCiAKIGJvb2wgU3Rh
Y2tNYXBzOjpSZWNvcmQ6OnBhcnNlKERhdGFWaWV3KiB2aWV3LCB1bnNpZ25lZCYgb2Zmc2V0KQog
ewotICAgIHBhdGNocG9pbnRJRCA9IHZpZXctPnJlYWQ8dWludDMyX3Q+KG9mZnNldCwgdHJ1ZSk7
CisgICAgaW50NjRfdCBpZCA9IHZpZXctPnJlYWQ8aW50NjRfdD4ob2Zmc2V0LCB0cnVlKTsKKyAg
ICBBU1NFUlQoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaWQpID09IGlkKTsKKyAgICBwYXRjaHBvaW50
SUQgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oaWQpOwogICAgIGlmIChzdGF0aWNfY2FzdDxpbnQz
Ml90PihwYXRjaHBvaW50SUQpIDwgMCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIApAQCAt
OTAsNiArOTIsMTMgQEAgYm9vbCBTdGFja01hcHM6OlJlY29yZDo6cGFyc2UoRGF0YVZpZXcqIAog
ICAgIHdoaWxlIChsZW5ndGgtLSkKICAgICAgICAgbG9jYXRpb25zLmFwcGVuZChyZWFkT2JqZWN0
PExvY2F0aW9uPih2aWV3LCBvZmZzZXQpKTsKICAgICAKKyAgICB1bnNpZ25lZCBudW1MaXZlT3V0
cyA9IHZpZXctPnJlYWQ8dWludDE2X3Q+KG9mZnNldCwgdHJ1ZSk7CisgICAgd2hpbGUgKG51bUxp
dmVPdXRzLS0pIHsKKyAgICAgICAgdmlldy0+cmVhZDx1aW50MTZfdD4ob2Zmc2V0LCB0cnVlKTsg
Ly8gcmVnbnVtCisgICAgICAgIHZpZXctPnJlYWQ8dWludDhfdD4ob2Zmc2V0LCB0cnVlKTsgLy8g
cmVzZXJ2ZWQKKyAgICAgICAgdmlldy0+cmVhZDx1aW50OF90PihvZmZzZXQsIHRydWUpOyAvLyBz
aXplIGluIGJ5dGVzCisgICAgfQorICAgIAogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBzLmgJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTYxLDcgKzYxLDcgQEAgc3RydWN0IFN0YWNrTWFwcyB7CiAgICAgICAgIHVpbnQxNl90
IGR3YXJmUmVnTnVtOyAvLyBSZXByZXNlbnRlZCBhcyBhIDEyLWJpdCBpbnQgaW4gdGhlIHNlY3Rp
b24uCiAgICAgICAgIGludDhfdCBzaXplOwogICAgICAgICBLaW5kIGtpbmQ7Ci0gICAgICAgIGlu
dDE2X3Qgb2Zmc2V0OworICAgICAgICBpbnQzMl90IG9mZnNldDsKICAgICAgICAgCiAgICAgICAg
IHZvaWQgcGFyc2UoRGF0YVZpZXcqLCB1bnNpZ25lZCYgb2Zmc2V0KTsKICAgICAgICAgdm9pZCBk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExTdGF0ZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMU3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw4IEBAIFN0YXRl
OjpTdGF0ZShHcmFwaCYgZ3JhcGgpCiAgICAgLCBtb2R1bGUoMCkKICAgICAsIGZ1bmN0aW9uKDAp
CiAgICAgLCBnZW5lcmF0ZWRGdW5jdGlvbigwKQorICAgICwgY29tcGFjdFVud2luZCgwKQorICAg
ICwgY29tcGFjdFVud2luZFNpemUoMCkKIHsKICAgICBzd2l0Y2ggKGdyYXBoLm1fcGxhbi5tb2Rl
KSB7CiAgICAgY2FzZSBGVExNb2RlOiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTFN0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExT
dGF0ZS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFN0YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJGVExJbmxp
bmVDYWNoZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJGVExKSVRDb2RlLmgiCiAjaW5jbHVkZSAi
RlRMSklURmluYWxpemVyLmgiCisjaW5jbHVkZSAiRlRMSlNDYWxsLmgiCiAjaW5jbHVkZSAiRlRM
U3RhY2tNYXBzLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKQEAgLTU3LDEwICs1
OCwxNSBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPEpJVENvZGU+IGppdENvZGU7CiAgICAgR2VuZXJh
dGVkRnVuY3Rpb24gZ2VuZXJhdGVkRnVuY3Rpb247CiAgICAgSklURmluYWxpemVyKiBmaW5hbGl6
ZXI7CisgICAgdW5zaWduZWQgaGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRDsKKyAgICB1bnNpZ25l
ZCBjYXB0dXJlZFN0YWNrbWFwSUQ7CiAgICAgU2VnbWVudGVkVmVjdG9yPEdldEJ5SWREZXNjcmlw
dG9yPiBnZXRCeUlkczsKICAgICBTZWdtZW50ZWRWZWN0b3I8UHV0QnlJZERlc2NyaXB0b3I+IHB1
dEJ5SWRzOworICAgIFZlY3RvcjxKU0NhbGw+IGpzQ2FsbHM7CiAgICAgVmVjdG9yPENTdHJpbmc+
IGNvZGVTZWN0aW9uTmFtZXM7CiAgICAgVmVjdG9yPENTdHJpbmc+IGRhdGFTZWN0aW9uTmFtZXM7
CisgICAgdm9pZCogY29tcGFjdFVud2luZDsKKyAgICBzaXplX3QgY29tcGFjdFVud2luZFNpemU7
CiAgICAgUmVmQ291bnRlZEFycmF5PExTZWN0aW9uV29yZD4gc3RhY2ttYXBzU2VjdGlvbjsKICAg
ICAKICAgICB2b2lkIGR1bXBTdGF0ZShjb25zdCBjaGFyKiB3aGVuKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzks
OSArMzksOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBERkc7CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblRodW5r
R2VuZXJhdG9yKFZNJiB2bSwgY29uc3QgTG9jYXRpb24mIGxvY2F0aW9uKQorTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAg
IEFzc2VtYmx5SGVscGVycyBqaXQoJnZtLCAwKTsKKyAgICBBc3NlbWJseUhlbHBlcnMgaml0KHZt
LCAwKTsKICAgICAKICAgICAvLyBOb3RlIHRoYXQgdGhlICJyZXR1cm4gYWRkcmVzcyIgd2lsbCBi
ZSB0aGUgT1NSIGV4aXQgSUQuCiAgICAgCkBAIC01MSw3ICs1MSw3IEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblQKICAgICBqaXQucHVzaChHUFJJbmZvOjpyZWdUMCk7
CiAgICAgaml0LnB1c2goR1BSSW5mbzo6cmVnVDApOwogICAgIAotICAgIFNjcmF0Y2hCdWZmZXIq
IHNjcmF0Y2hCdWZmZXIgPSB2bS5zY3JhdGNoQnVmZmVyRm9yU2l6ZShyZXF1aXJlZFNjcmF0Y2hN
ZW1vcnlTaXplSW5CeXRlcygpKTsKKyAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0g
dm0tPnNjcmF0Y2hCdWZmZXJGb3JTaXplKHJlcXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVz
KCkpOwogICAgIGNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihzY3JhdGNoQnVmZmVy
LT5kYXRhQnVmZmVyKCkpOwogICAgIAogICAgIHNhdmVBbGxSZWdpc3RlcnMoaml0LCBidWZmZXIp
OwpAQCAtNjAsNyArNjAsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRp
b25UCiAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc2NyYXRjaEJ1
ZmZlci0+YWN0aXZlTGVuZ3RoUHRyKCkpLCBHUFJJbmZvOjpub25BcmdHUFIxKTsKICAgICBqaXQu
c3RvcmVQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocmVxdWlyZWRTY3JhdGNoTWVt
b3J5U2l6ZUluQnl0ZXMoKSksIEdQUkluZm86Om5vbkFyZ0dQUjEpOwogCi0gICAgbG9jYXRpb24u
cmVzdG9yZUludG8oaml0LCBidWZmZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCwgMSk7CisgICAg
aml0LmxvYWRQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgaml0LnBlZWsoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCAzKTsKICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwgPSBqaXQuY2FsbCgpOwogICAgIApAQCAtNzEs
NiArNzEsMTAgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVAogICAg
IAogICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdUMCk7
CiAgICAgCisgICAgLy8gTWFrZSBzdXJlIHdlIHRlbGwgdGhlIEdDIHRoYXQgd2UncmUgbm90IHVz
aW5nIHRoZSBzY3JhdGNoIGJ1ZmZlciBhbnltb3JlLgorICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tUHRyKHNjcmF0Y2hCdWZmZXItPmFjdGl2ZUxlbmd0aFB0cigpKSwgR1BS
SW5mbzo6cmVnVDEpOworICAgIGppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cigwKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIAogICAgIC8vIFByZXBhcmUgZm9yIHRhaWwg
Y2FsbC4KICAgICBqaXQucG9wKEdQUkluZm86OnJlZ1QxKTsKICAgICBqaXQucG9wKEdQUkluZm86
OnJlZ1QxKTsKQEAgLTgxLDE0ICs4NSwxNCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhp
dEdlbmVyYXRpb25UCiAgICAgLy8gcmVzdG9yZSBhbGwgcmVnaXN0ZXJzLgogICAgIAogICAgIGpp
dC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpyZWdUMCk7Ci0gICAg
CisKICAgICByZXN0b3JlQWxsUmVnaXN0ZXJzKGppdCwgYnVmZmVyKTsKIAogICAgIGppdC5yZXQo
KTsKICAgICAKLSAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKHZtLCAmaml0LCBHTE9CQUxfVEhV
TktfSUQpOworICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhV
TktfSUQpOwogICAgIHBhdGNoQnVmZmVyLmxpbmsoZnVuY3Rpb25DYWxsLCBjb21waWxlRlRMT1NS
RXhpdCk7Ci0gICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiRlRMIE9TUiBl
eGl0IGdlbmVyYXRpb24gdGh1bmsgZm9yIGNhbGxGcmFtZSBhdCAlcyIsIHRvQ1N0cmluZyhsb2Nh
dGlvbikuZGF0YSgpKSk7CisgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgi
RlRMIE9TUiBleGl0IGdlbmVyYXRpb24gdGh1bmsiKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBzbG93UGF0aENhbGxUaHVua0dlbmVyYXRvcihWTSYgdm0sIGNvbnN0IFNsb3dQYXRoQ2Fs
bEtleSYga2V5KQpAQCAtMTE5LDExICsxMjMsMTMgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNs
b3dQYXRoQ2FsbFRodW5rRwogICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IHNpemVvZihkb3VibGUp
OwogICAgIH0KICAgICAKKyAgICAvLyBGSVhNRTogQ1N0YWNrIC0gTmVlZCB0byBkbyBzb2VtZXRo
aW5nIGxpa2Ugaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgaml0LnByZXNlcnZlUmV0
dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICBqaXQuc3RvcmVQ
dHIoR1BSSW5mbzo6bm9uQXJnR1BSMCwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNz
ZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSk7CiAgICAgCiAgICAg
SklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGppdC5jYWxsKCk7Ci0gICAgCisKKyAgICAvLyBGSVhN
RTogQ1N0YWNrIC0gTmVlZCB0byBkbyBzb21ldGhpbmcgbGlrZSBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICBqaXQubG9hZFB0cihBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoTWFjcm9B
c3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBrZXkub2Zmc2V0KCkpLCBHUFJJbmZvOjpu
b25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwogICAgIGppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0Jl
Zm9yZVJldHVybihHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5oCShyZXZpc2lvbiAxNjI5NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MSw3ICs0MSw3IEBAIGNsYXNzIFZNOwogCiBuYW1lc3BhY2UgRlRMIHsKIAotTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0mLCBjb25zdCBM
b2NhdGlvbiYpOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtH
ZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzbG93UGF0aENhbGxUaHVua0dl
bmVyYXRvcihWTSYsIGNvbnN0IFNsb3dQYXRoQ2FsbEtleSYpOwogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBLZXlUeXBlQXJndW1lbnQ+CkBAIC03OCwxMiArNzgsNiBAQCB0eXBlbmFtZSBNYXBUeXBlOjpL
ZXlUeXBlIGtleUZvclRodW5rKE1hCiAKIGNsYXNzIFRodW5rcyB7CiBwdWJsaWM6Ci0gICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIGdldE9TUkV4aXRHZW5lcmF0aW9uVGh1bmsoVk0mIHZtLCBjb25z
dCBMb2NhdGlvbiYgbG9jYXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4gZ2VuZXJhdGVJZk5l
Y2Vzc2FyeSgKLSAgICAgICAgICAgIHZtLCBtX29zckV4aXRUaHVua3MsIGxvY2F0aW9uLCBvc3JF
eGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKTsKLSAgICB9Ci0gICAgCiAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGdldFNsb3dQYXRoQ2FsbFRodW5rKFZNJiB2bSwgY29uc3QgU2xvd1BhdGhD
YWxsS2V5JiBrZXkpCiAgICAgewogICAgICAgICByZXR1cm4gZ2VuZXJhdGVJZk5lY2Vzc2FyeSgK
QEAgLTk2LDcgKzkwLDYgQEAgcHVibGljOgogICAgIH0KICAgICAKIHByaXZhdGU6Ci0gICAgVGh1
bmtNYXA8TG9jYXRpb24+IG1fb3NyRXhpdFRodW5rczsKICAgICBUaHVua01hcDxTbG93UGF0aENh
bGxLZXk+IG1fc2xvd1BhdGhDYWxsVGh1bmtzOwogfTsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExVbndpbmRJbmZvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFVud2luZEluZm8uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExVbndpbmRJbmZvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMVW53aW5kSW5mby5oIgorCisjaWYg
RU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlIDxtYWNoLW8vY29tcGFjdF91bndpbmRfZW5jb2Rp
bmcuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBGVEwgeworCitVbndpbmRJbmZvOjpVbndpbmRJbmZvKCkgeyB9CitVbndpbmRJbmZvOjp+
VW53aW5kSW5mbygpIHsgfQorCituYW1lc3BhY2UgeworCitzdHJ1Y3QgQ29tcGFjdFVud2luZCB7
CisgICAgdm9pZCogZnVuY3Rpb247CisgICAgdWludDMyX3Qgc2l6ZTsKKyAgICBjb21wYWN0X3Vu
d2luZF9lbmNvZGluZ190IGVuY29kaW5nOworICAgIHZvaWQqIHBlcnNvbmFsaXR5OworICAgIHZv
aWQqIGxzZGE7Cit9OworCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwordm9pZCBVbndpbmRJ
bmZvOjpwYXJzZSh2b2lkKiBzZWN0aW9uLCBzaXplX3Qgc2l6ZSwgR2VuZXJhdGVkRnVuY3Rpb24g
Z2VuZXJhdGVkRnVuY3Rpb24pCit7CisgICAgbV9yZWdpc3RlcnMuY2xlYXIoKTsKKyAgICAKKyAg
ICBSRUxFQVNFX0FTU0VSVChzZWN0aW9uKTsKKyAgICBSRUxFQVNFX0FTU0VSVChzaXplID49IHNp
emVvZihDb21wYWN0VW53aW5kKSk7CisgICAgCisgICAgQ29tcGFjdFVud2luZCogZGF0YSA9IGJp
dHdpc2VfY2FzdDxDb21wYWN0VW53aW5kKj4oc2VjdGlvbik7CisgICAgCisgICAgUkVMRUFTRV9B
U1NFUlQoIWRhdGEtPnBlcnNvbmFsaXR5KTsgLy8gV2UgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxl
IHRoaXMuCisgICAgUkVMRUFTRV9BU1NFUlQoIWRhdGEtPmxzZGEpOyAvLyBXZSBkb24ndCBrbm93
IGhvdyB0byBoYW5kbGUgdGhpcy4KKyAgICBSRUxFQVNFX0FTU0VSVChkYXRhLT5mdW5jdGlvbiA9
PSBnZW5lcmF0ZWRGdW5jdGlvbik7IC8vIFRoZSB1bndpbmQgZGF0YSBiZXR0ZXIgYmUgZm9yIG91
ciBmdW5jdGlvbi4KKyAgICAKKyAgICBjb21wYWN0X3Vud2luZF9lbmNvZGluZ190IGVuY29kaW5n
ID0gZGF0YS0+ZW5jb2Rpbmc7CisgICAgUkVMRUFTRV9BU1NFUlQoIShlbmNvZGluZyAmIFVOV0lO
RF9JU19OT1RfRlVOQ1RJT05fU1RBUlQpKTsKKyAgICBSRUxFQVNFX0FTU0VSVCghKGVuY29kaW5n
ICYgVU5XSU5EX0hBU19MU0RBKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoIShlbmNvZGluZyAmIFVO
V0lORF9QRVJTT05BTElUWV9NQVNLKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoKGVuY29kaW5nICYg
VU5XSU5EX1g4Nl82NF9NT0RFX01BU0spID09IFVOV0lORF9YODZfNjRfTU9ERV9SQlBfRlJBTUUp
OworICAgIAorICAgIGludDMyX3Qgb2Zmc2V0ID0gLSgoZW5jb2RpbmcgJiBVTldJTkRfWDg2XzY0
X1JCUF9GUkFNRV9PRkZTRVQpID4+IDE2KSAqIDg7CisgICAgdWludDMyX3QgbmV4dFJlZ2lzdGVy
cyA9IGVuY29kaW5nOworICAgIGZvciAodW5zaWduZWQgaSA9IDU7IGktLTspIHsKKyAgICAgICAg
dWludDMyX3QgY3VycmVudFJlZ2lzdGVyID0gbmV4dFJlZ2lzdGVycyAmIDc7CisgICAgICAgIG5l
eHRSZWdpc3RlcnMgPj49IDM7CisgICAgICAgIAorICAgICAgICBzd2l0Y2ggKGN1cnJlbnRSZWdp
c3RlcikgeworICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX05PTkU6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1JC
WDoKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJl
Z2lzdGVyczo6ZWJ4LCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
CisgICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUjEyOgorICAgICAgICAgICAgbV9yZWdp
c3RlcnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjpyMTIsIG9mZnNldCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBVTldJTkRf
WDg2XzY0X1JFR19SMTM6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJB
dE9mZnNldChYODZSZWdpc3RlcnM6OnIxMywgb2Zmc2V0KSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1IxNDoKKyAgICAg
ICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJlZ2lzdGVyczo6
cjE0LCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAg
IGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUjE1OgorICAgICAgICAgICAgbV9yZWdpc3RlcnMuYXBw
ZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjpyMTUsIG9mZnNldCkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBVTldJTkRfWDg2XzY0X1JF
R19SQlA6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJBdE9mZnNldChY
ODZSZWdpc3RlcnM6OmVicCwgb2Zmc2V0KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb2Zmc2V0ICs9IDg7CisgICAg
fQorICAgIAorICAgIHN0ZDo6c29ydChtX3JlZ2lzdGVycy5iZWdpbigpLCBtX3JlZ2lzdGVycy5l
bmQoKSk7Cit9CisKK3ZvaWQgVW53aW5kSW5mbzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25z
dAoreworICAgIG91dC5wcmludChsaXN0RHVtcChtX3JlZ2lzdGVycykpOworfQorCitSZWdpc3Rl
ckF0T2Zmc2V0KiBVbndpbmRJbmZvOjpmaW5kKEdQUlJlZyBncHIpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRyeUJpbmFyeVNlYXJjaDxSZWdpc3RlckF0T2Zmc2V0LCBHUFJSZWc+KG1fcmVnaXN0ZXJz
LCBtX3JlZ2lzdGVycy5zaXplKCksIGdwciwgUmVnaXN0ZXJBdE9mZnNldDo6Z2V0R1BSKTsKK30K
KwordW5zaWduZWQgVW53aW5kSW5mbzo6aW5kZXhPZihHUFJSZWcgZ3ByKSBjb25zdAoreworICAg
IGlmIChSZWdpc3RlckF0T2Zmc2V0KiBwb2ludGVyID0gZmluZChncHIpKQorICAgICAgICByZXR1
cm4gcG9pbnRlciAtIG1fcmVnaXN0ZXJzLmJlZ2luKCk7CisgICAgcmV0dXJuIFVJTlRfTUFYOwor
fQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJ
VCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExVbndpbmRJbmZvLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExVbndpbmRJbmZvLmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFVud2luZEluZm8uaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRlRMVW53aW5kSW5mb19oCisjZGVmaW5lIEZU
TFVud2luZEluZm9faAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlICJGVExHZW5l
cmF0ZWRGdW5jdGlvbi5oIgorI2luY2x1ZGUgIkZUTFJlZ2lzdGVyQXRPZmZzZXQuaCIKKworbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitzdHJ1Y3QgVW53aW5kSW5mbyB7CisgICAg
VW53aW5kSW5mbygpOworICAgIH5VbndpbmRJbmZvKCk7CisgICAgCisgICAgdm9pZCBwYXJzZSh2
b2lkKiwgc2l6ZV90LCBHZW5lcmF0ZWRGdW5jdGlvbik7CisgICAgCisgICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJikgY29uc3Q7CisgICAgCisgICAgUmVnaXN0ZXJBdE9mZnNldCogZmluZChHUFJS
ZWcpIGNvbnN0OworICAgIHVuc2lnbmVkIGluZGV4T2YoR1BSUmVnKSBjb25zdDsgLy8gUmV0dXJu
cyBVSU5UX01BWCBpZiBub3QgZm91bmQuCisgICAgCisgICAgVmVjdG9yPFJlZ2lzdGVyQXRPZmZz
ZXQ+IG1fcmVnaXN0ZXJzOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5k
aWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExVbndpbmRJbmZvX2gKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExWYWx1
ZVJhbmdlLmgiCisKKyNpbmNsdWRlICJGVExBYmJyZXZpYXRpb25zLmgiCisKKyNpZiBFTkFCTEUo
RlRMX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCit2b2lkIFZhbHVl
UmFuZ2U6OmRlY29yYXRlSW5zdHJ1Y3Rpb24oCisgICAgTENvbnRleHQgY29udGV4dCwgTFZhbHVl
IGxvYWRJbnN0cnVjdGlvbiwgdW5zaWduZWQgcmFuZ2VLaW5kKSBjb25zdAoreworICAgIGlmICgh
bV9yYW5nZU1ldGFkYXRhKQorICAgICAgICBtX3JhbmdlTWV0YWRhdGEgPSBtZE5vZGUoY29udGV4
dCwgbV9iZWdpbiwgbV9lbmQpOworICAgIHNldE1ldGFkYXRhKGxvYWRJbnN0cnVjdGlvbiwgcmFu
Z2VLaW5kLCBtX3JhbmdlTWV0YWRhdGEpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRM
CisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMVmFsdWVSYW5nZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMVmFsdWVSYW5nZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZU
TFZhbHVlUmFuZ2VfaAorI2RlZmluZSBGVExWYWx1ZVJhbmdlX2gKKworI2lmIEVOQUJMRShGVExf
SklUKQorCisjaW5jbHVkZSAiRlRMQWJicmV2aWF0ZWRUeXBlcy5oIgorCituYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEZUTCB7CisKK2NsYXNzIFZhbHVlUmFuZ2UgeworcHVibGljOgorICAgIFZh
bHVlUmFuZ2UoKQorICAgICAgICA6IG1fYmVnaW4oMCkKKyAgICAgICAgLCBtX2VuZCgwKQorICAg
ICAgICAsIG1fcmFuZ2VNZXRhZGF0YSgwKQorICAgIHsKKyAgICB9CisgICAgCisgICAgVmFsdWVS
YW5nZShMVmFsdWUgYmVnaW4sIExWYWx1ZSBlbmQpCisgICAgICAgIDogbV9iZWdpbihiZWdpbikK
KyAgICAgICAgLCBtX2VuZChlbmQpCisgICAgICAgICwgbV9yYW5nZU1ldGFkYXRhKDApCisgICAg
eworICAgIH0KKyAgICAKKyAgICBMVmFsdWUgYmVnaW4oKSBjb25zdCB7IHJldHVybiBtX2JlZ2lu
OyB9CisgICAgTFZhbHVlIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kOyB9CisgICAgCisgICAg
dm9pZCBkZWNvcmF0ZUluc3RydWN0aW9uKExDb250ZXh0LCBMVmFsdWUgbG9hZEluc3RydWN0aW9u
LCB1bnNpZ25lZCByYW5nZUtpbmQpIGNvbnN0OworICAgIAorcHJpdmF0ZToKKyAgICBMVmFsdWUg
bV9iZWdpbjsKKyAgICBMVmFsdWUgbV9lbmQ7CisgICAgbXV0YWJsZSBMVmFsdWUgbV9yYW5nZU1l
dGFkYXRhOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5B
QkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExWYWx1ZVJhbmdlX2gKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmNwcAkocmV2aXNp
b24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9v
dHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5OSw2IEBAIHZvaWQgQ29uc2VydmF0aXZl
Um9vdHM6OmdlbmVyaWNBZGRTcGFuKHYKICAgICAgICAgZW5kID0gc3dhcFRlbXA7CiAgICAgfQog
Ci0gICAgQVNTRVJUKChzdGF0aWNfY2FzdDxjaGFyKj4oZW5kKSAtIHN0YXRpY19jYXN0PGNoYXIq
PihiZWdpbikpIDwgMHgxMDAwMDAwKTsKICAgICBBU1NFUlQoaXNQb2ludGVyQWxpZ25lZChiZWdp
bikpOwogICAgIEFTU0VSVChpc1BvaW50ZXJBbGlnbmVkKGVuZCkpOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEx
LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmln
aHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqCiAgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpA
QCAtNDUxLDI0ICs0NTEsMjcgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoKQogICAgIGRvdWJsZSBn
Y1N0YXJ0VGltZSA9IFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAjZW5kaWYK
IAorICAgIG1fY29kZUJsb2Nrcy5jbGVhck1hcmtzKCk7CiAgICAgdm9pZCogZHVtbXk7Ci0gICAg
CisKICAgICAvLyBXZSBnYXRoZXIgY29uc2VydmF0aXZlIHJvb3RzIGJlZm9yZSBjbGVhcmluZyBt
YXJrIGJpdHMgYmVjYXVzZSBjb25zZXJ2YXRpdmUKICAgICAvLyBnYXRoZXJpbmcgdXNlcyB0aGUg
bWFyayBiaXRzIHRvIGRldGVybWluZSB3aGV0aGVyIGEgcmVmZXJlbmNlIGlzIHZhbGlkLgogICAg
IENvbnNlcnZhdGl2ZVJvb3RzIG1hY2hpbmVUaHJlYWRSb290cygmbV9vYmplY3RTcGFjZS5ibG9j
a3MoKSwgJm1fc3RvcmFnZVNwYWNlKTsKICAgICBtX2ppdFN0dWJSb3V0aW5lcy5jbGVhck1hcmtz
KCk7CiAgICAgewogICAgICAgICBHQ1BIQVNFKEdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKTsKLSAg
ICAgICAgbV9tYWNoaW5lVGhyZWFkcy5nYXRoZXJDb25zZXJ2YXRpdmVSb290cyhtYWNoaW5lVGhy
ZWFkUm9vdHMsICZkdW1teSk7CisgICAgICAgIG1fbWFjaGluZVRocmVhZHMuZ2F0aGVyQ29uc2Vy
dmF0aXZlUm9vdHMobWFjaGluZVRocmVhZFJvb3RzLCBtX2ppdFN0dWJSb3V0aW5lcywgbV9jb2Rl
QmxvY2tzLCAmZHVtbXkpOwogICAgIH0KIAorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAg
Q29uc2VydmF0aXZlUm9vdHMgc3RhY2tSb290cygmbV9vYmplY3RTcGFjZS5ibG9ja3MoKSwgJm1f
c3RvcmFnZVNwYWNlKTsKLSAgICBtX2NvZGVCbG9ja3MuY2xlYXJNYXJrcygpOwogICAgIHsKICAg
ICAgICAgR0NQSEFTRShHYXRoZXJTdGFja1Jvb3RzKTsKICAgICAgICAgc3RhY2soKS5nYXRoZXJD
b25zZXJ2YXRpdmVSb290cyhzdGFja1Jvb3RzLCBtX2ppdFN0dWJSb3V0aW5lcywgbV9jb2RlQmxv
Y2tzKTsKLSAgICAgICAgc3RhY2soKS5zYW5pdGl6ZVN0YWNrKCk7CiAgICAgfQorI2VuZGlmCisK
KyAgICBzYW5pdGl6ZVN0YWNrRm9yVk0obV92bSk7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKICAg
ICBDb25zZXJ2YXRpdmVSb290cyBzY3JhdGNoQnVmZmVyUm9vdHMoJm1fb2JqZWN0U3BhY2UuYmxv
Y2tzKCksICZtX3N0b3JhZ2VTcGFjZSk7CkBAIC01MDUsMTIgKzUwOCwxNCBAQCB2b2lkIEhlYXA6
Om1hcmtSb290cygpCiAgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZChtYWNoaW5lVGhyZWFkUm9v
dHMpOwogICAgICAgICAgICAgdmlzaXRvci5kb25hdGVBbmREcmFpbigpOwogICAgICAgICB9Cisj
aWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKICAgICAgICAgewogICAgICAgICAgICAgR0NQSEFTRShW
aXNpdFN0YWNrUm9vdHMpOwogICAgICAgICAgICAgTUFSS19MT0dfUk9PVCh2aXNpdG9yLCAiU3Rh
Y2siKTsKICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kKHN0YWNrUm9vdHMpOwogICAgICAgICAg
ICAgdmlzaXRvci5kb25hdGVBbmREcmFpbigpOwogICAgICAgICB9CisjZW5kaWYKICNpZiBFTkFC
TEUoREZHX0pJVCkKICAgICAgICAgewogICAgICAgICAgICAgR0NQSEFTRShWaXNpdFNjcmF0Y2hC
dWZmZXJSb290cyk7CkBAIC05NTIsMTIgKzk1NywxMiBAQCB2b2lkIEhlYXA6OmNvbGxlY3QoKQog
CiBib29sIEhlYXA6OmNvbGxlY3RJZk5lY2Vzc2FyeU9yRGVmZXIoKQogewotICAgIGlmIChtX2Rl
ZmVycmFsRGVwdGgpCisgICAgaWYgKGlzRGVmZXJyZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIAorCiAgICAgaWYgKCFzaG91bGRDb2xsZWN0KCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAKKwogICAgIGNvbGxlY3QoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMTk3LDcgKzE5Nyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgdm9pZCBhZGRSZWZlcmVuY2UoSlND
ZWxsKiwgQXJyYXlCdWZmZXIqKTsKICAgICAgICAgCi0gICAgICAgIGJvb2wgaXNEZWZlcnJlZCgp
IGNvbnN0IHsgcmV0dXJuICEhbV9kZWZlcnJhbERlcHRoOyB9CisgICAgICAgIGJvb2wgaXNEZWZl
cnJlZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9kZWZlcnJhbERlcHRoIHx8IE9wdGlvbnM6OmRpc2Fi
bGVHQygpOyB9CiAKICNpZiBVU0UoQ0YpCiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZv
aWQgcmVsZWFzZVNvb24oUmV0YWluUHRyPFQ+JiYpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCShyZXZpc2lvbiAxNjI5NjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMzIsNyArMjMyLDcgQEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6cmVt
b3ZlQ3VycmVudFRocmVhZAogI2RlZmluZSBSRUdJU1RFUl9CVUZGRVJfQUxJR05NRU5UCiAjZW5k
aWYKIAotdm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2Vy
dmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCB2b2lkKiBzdGFja0N1cnJlbnQpCit2b2lk
IE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290
cyYgY29uc2VydmF0aXZlUm9vdHMsIEpJVFN0dWJSb3V0aW5lU2V0JiBqaXRTdHViUm91dGluZXMs
IENvZGVCbG9ja1NldCYgY29kZUJsb2Nrcywgdm9pZCogc3RhY2tDdXJyZW50KQogewogICAgIC8v
IHNldGptcCBmb3JjZXMgdm9sYXRpbGUgcmVnaXN0ZXJzIG9udG8gdGhlIHN0YWNrCiAgICAgam1w
X2J1ZiByZWdpc3RlcnMgUkVHSVNURVJfQlVGRkVSX0FMSUdOTUVOVDsKQEAgLTI0OCwxMiArMjQ4
LDEyIEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGgKICAgICB2b2lk
KiByZWdpc3RlcnNCZWdpbiA9ICZyZWdpc3RlcnM7CiAgICAgdm9pZCogcmVnaXN0ZXJzRW5kID0g
cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocm91bmRVcFRvTXVsdGlwbGVPZjxzaXplb2Yodm9pZCop
PihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oJnJlZ2lzdGVycyArIDEpKSk7CiAgICAgc3dh
cElmQmFja3dhcmRzKHJlZ2lzdGVyc0JlZ2luLCByZWdpc3RlcnNFbmQpOwotICAgIGNvbnNlcnZh
dGl2ZVJvb3RzLmFkZChyZWdpc3RlcnNCZWdpbiwgcmVnaXN0ZXJzRW5kKTsKKyAgICBjb25zZXJ2
YXRpdmVSb290cy5hZGQocmVnaXN0ZXJzQmVnaW4sIHJlZ2lzdGVyc0VuZCwgaml0U3R1YlJvdXRp
bmVzLCBjb2RlQmxvY2tzKTsKIAogICAgIHZvaWQqIHN0YWNrQmVnaW4gPSBzdGFja0N1cnJlbnQ7
CiAgICAgdm9pZCogc3RhY2tFbmQgPSB3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5vcmlnaW4oKTsK
ICAgICBzd2FwSWZCYWNrd2FyZHMoc3RhY2tCZWdpbiwgc3RhY2tFbmQpOwotICAgIGNvbnNlcnZh
dGl2ZVJvb3RzLmFkZChzdGFja0JlZ2luLCBzdGFja0VuZCk7CisgICAgY29uc2VydmF0aXZlUm9v
dHMuYWRkKHN0YWNrQmVnaW4sIHN0YWNrRW5kLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3Mp
OwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc3VzcGVuZFRocmVhZChjb25zdCBQbGF0Zm9ybVRo
cmVhZCYgcGxhdGZvcm1UaHJlYWQpCkBAIC00MzQsMjQgKzQzNCwyNCBAQCBzdGF0aWMgdm9pZCBm
cmVlUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMoCiAjZW5kaWYKIH0KIAotdm9pZCBNYWNoaW5lVGhy
ZWFkczo6Z2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRp
dmVSb290cywgVGhyZWFkKiB0aHJlYWQpCit2b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9t
T3RoZXJUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBUaHJlYWQq
IHRocmVhZCwgSklUU3R1YlJvdXRpbmVTZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0
JiBjb2RlQmxvY2tzKQogewogICAgIFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzIHJlZ3M7CiAgICAg
c2l6ZV90IHJlZ1NpemUgPSBnZXRQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyh0aHJlYWQtPnBsYXRm
b3JtVGhyZWFkLCByZWdzKTsKIAotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGF0aWNfY2Fz
dDx2b2lkKj4oJnJlZ3MpLCBzdGF0aWNfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4oJnJlZ3MpICsgcmVnU2l6ZSkpOworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGF0aWNf
Y2FzdDx2b2lkKj4oJnJlZ3MpLCBzdGF0aWNfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4oJnJlZ3MpICsgcmVnU2l6ZSksIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiAK
ICAgICB2b2lkKiBzdGFja1BvaW50ZXIgPSBvdGhlclRocmVhZFN0YWNrUG9pbnRlcihyZWdzKTsK
ICAgICB2b2lkKiBzdGFja0Jhc2UgPSB0aHJlYWQtPnN0YWNrQmFzZTsKICAgICBzd2FwSWZCYWNr
d2FyZHMoc3RhY2tQb2ludGVyLCBzdGFja0Jhc2UpOwotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFk
ZChzdGFja1BvaW50ZXIsIHN0YWNrQmFzZSk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0
YWNrUG9pbnRlciwgc3RhY2tCYXNlLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogCiAg
ICAgZnJlZVBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzKHJlZ3MpOwogfQogCi12b2lkIE1hY2hpbmVU
aHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2Vy
dmF0aXZlUm9vdHMsIHZvaWQqIHN0YWNrQ3VycmVudCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6Omdh
dGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290
cywgSklUU3R1YlJvdXRpbmVTZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2Rl
QmxvY2tzLCB2b2lkKiBzdGFja0N1cnJlbnQpCiB7Ci0gICAgZ2F0aGVyRnJvbUN1cnJlbnRUaHJl
YWQoY29uc2VydmF0aXZlUm9vdHMsIHN0YWNrQ3VycmVudCk7CisgICAgZ2F0aGVyRnJvbUN1cnJl
bnRUaHJlYWQoY29uc2VydmF0aXZlUm9vdHMsIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcywg
c3RhY2tDdXJyZW50KTsKIAogICAgIGlmIChtX3RocmVhZFNwZWNpZmljKSB7CiAgICAgICAgIFBs
YXRmb3JtVGhyZWFkIGN1cnJlbnRQbGF0Zm9ybVRocmVhZCA9IGdldEN1cnJlbnRQbGF0Zm9ybVRo
cmVhZCgpOwpAQCAtNDczLDcgKzQ3Myw3IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckNv
bnNlcnZhdGl2ZVIKICAgICAgICAgLy8gYW5kIHNpbmNlIHRoaXMgaXMgYSBzaGFyZWQgaGVhcCwg
dGhleSBhcmUgcmVhbCBsb2Nrcy4KICAgICAgICAgZm9yIChUaHJlYWQqIHRocmVhZCA9IG1fcmVn
aXN0ZXJlZFRocmVhZHM7IHRocmVhZDsgdGhyZWFkID0gdGhyZWFkLT5uZXh0KSB7CiAgICAgICAg
ICAgICBpZiAoIWVxdWFsVGhyZWFkKHRocmVhZC0+cGxhdGZvcm1UaHJlYWQsIGN1cnJlbnRQbGF0
Zm9ybVRocmVhZCkpCi0gICAgICAgICAgICAgICAgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKGNvbnNl
cnZhdGl2ZVJvb3RzLCB0aHJlYWQpOworICAgICAgICAgICAgICAgIGdhdGhlckZyb21PdGhlclRo
cmVhZChjb25zZXJ2YXRpdmVSb290cywgdGhyZWFkLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9j
a3MpOwogICAgICAgICB9CiAKICAgICAgICAgZm9yIChUaHJlYWQqIHRocmVhZCA9IG1fcmVnaXN0
ZXJlZFRocmVhZHM7IHRocmVhZDsgdGhyZWFkID0gdGhyZWFkLT5uZXh0KSB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaAkocmV2aXNp
b24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFy
a2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDggKzI4LDEwIEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCisgICAgY2xhc3MgQ29kZUJsb2NrU2V0OwogICAgIGNsYXNzIENvbnNlcnZhdGl2ZVJvb3Rz
OwogICAgIGNsYXNzIEhlYXA7CisgICAgY2xhc3MgSklUU3R1YlJvdXRpbmVTZXQ7CiAKICAgICBj
bGFzcyBNYWNoaW5lVGhyZWFkcyB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1hY2hp
bmVUaHJlYWRzKTsKQEAgLTM3LDIwICszOSwyMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
TWFjaGluZVRocmVhZHMoSGVhcCopOwogICAgICAgICB+TWFjaGluZVRocmVhZHMoKTsKIAotICAg
ICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiwgdm9p
ZCogc3RhY2tDdXJyZW50KTsKKyAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhD
b25zZXJ2YXRpdmVSb290cyYsIEpJVFN0dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jiwgdm9p
ZCogc3RhY2tDdXJyZW50KTsKIAogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIG1ha2VV
c2FibGVGcm9tTXVsdGlwbGVUaHJlYWRzKCk7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgYWRkQ3VycmVudFRocmVhZCgpOyAvLyBPbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBieSBjbGll
bnRzIHRoYXQgY2FuIHVzZSB0aGUgc2FtZSBoZWFwIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2Vy
dmF0aXZlUm9vdHMmLCB2b2lkKiBzdGFja0N1cnJlbnQpOworICAgICAgICB2b2lkIGdhdGhlckZy
b21DdXJyZW50VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVTZXQmLCBD
b2RlQmxvY2tTZXQmLCB2b2lkKiBzdGFja0N1cnJlbnQpOwogCiAgICAgICAgIGNsYXNzIFRocmVh
ZDsKIAogICAgICAgICBzdGF0aWMgdm9pZCByZW1vdmVUaHJlYWQodm9pZCopOwogICAgICAgICB2
b2lkIHJlbW92ZUN1cnJlbnRUaHJlYWQoKTsKIAotICAgICAgICB2b2lkIGdhdGhlckZyb21PdGhl
clRocmVhZChDb25zZXJ2YXRpdmVSb290cyYsIFRocmVhZCopOworICAgICAgICB2b2lkIGdhdGhl
ckZyb21PdGhlclRocmVhZChDb25zZXJ2YXRpdmVSb290cyYsIFRocmVhZCosIEpJVFN0dWJSb3V0
aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jik7CiAKICAgICAgICAgTXV0ZXggbV9yZWdpc3RlcmVkVGhy
ZWFkc011dGV4OwogICAgICAgICBUaHJlYWQqIG1fcmVnaXN0ZXJlZFRocmVhZHM7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2
aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxG
cmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNiwxMSArMTE2LDExIEBAIENvZGVPcmlnaW4g
Q2FsbEZyYW1lOjpjb2RlT3JpZ2luKCkKICAgICByZXR1cm4gQ29kZU9yaWdpbihsb2NhdGlvbkFz
Qnl0ZWNvZGVPZmZzZXQoKSk7CiB9CiAKLVJlZ2lzdGVyKiBDYWxsRnJhbWU6OmZyYW1lRXh0ZW50
SW50ZXJuYWwoKQorUmVnaXN0ZXIqIENhbGxGcmFtZTo6dG9wT2ZGcmFtZUludGVybmFsKCkKIHsK
ICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHRoaXMtPmNvZGVCbG9jaygpOwogICAgIEFTU0VS
VChjb2RlQmxvY2spOwotICAgIHJldHVybiByZWdpc3RlcnMoKSArIHZpcnR1YWxSZWdpc3RlckZv
ckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNvdW50KCkpLm9mZnNldCgpOworICAgIHJl
dHVybiByZWdpc3RlcnMoKSArIGNvZGVCbG9jay0+c3RhY2tQb2ludGVyT2Zmc2V0KCk7CiB9CiAK
IEpTR2xvYmFsT2JqZWN0KiBDYWxsRnJhbWU6OnZtRW50cnlHbG9iYWxPYmplY3QoKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNp
b24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsMTUgKzE3NiwxMyBAQCBuYW1lc3BhY2UgSlNDICB7
CiAgICAgICAgIC8vIENvZGVPcmlnaW4oMCkgaWYgd2UncmUgaW4gbmF0aXZlIGNvZGUuCiAgICAg
ICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbigpOwogCi0gICAgICAgIFJlZ2lzdGVyKiBmcmFtZUV4
dGVudCgpCisgICAgICAgIFJlZ2lzdGVyKiB0b3BPZkZyYW1lKCkKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKGlzVk1FbnRyeVNlbnRpbmVsKCkgfHwgIWNvZGVCbG9jaygpKQotICAgICAgICAg
ICAgICAgIHJldHVybiByZWdpc3RlcnMoKSAtIDE7Ci0gICAgICAgICAgICByZXR1cm4gZnJhbWVF
eHRlbnRJbnRlcm5hbCgpOworICAgICAgICAgICAgICAgIHJldHVybiByZWdpc3RlcnMoKTsKKyAg
ICAgICAgICAgIHJldHVybiB0b3BPZkZyYW1lSW50ZXJuYWwoKTsKICAgICAgICAgfQogICAgIAot
ICAgICAgICBSZWdpc3RlciogZnJhbWVFeHRlbnRJbnRlcm5hbCgpOwotCiAjaWYgVVNFKEpTVkFM
VUUzMl82NCkKICAgICAgICAgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRWUEMoKSBjb25zdAogICAgICAg
ICB7CkBAIC0zMTgsNiArMzE2LDggQEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICBFeGVjU3Rh
dGUoKTsKICAgICAgICAgfkV4ZWNTdGF0ZSgpOwogCisgICAgICAgIFJlZ2lzdGVyKiB0b3BPZkZy
YW1lSW50ZXJuYWwoKTsKKwogICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZSBmb3IgaW50ZXJu
YWwgdXNlIGluIGRlYnVnZ2luZyBhbmQgdmVyaWZpY2F0aW9uCiAgICAgICAgIC8vIGNvZGUgb25s
eSBhbmQgbm90IG1lYW50IGFzIGFuIEFQSSBmb3IgZ2VuZXJhbCB1c2FnZToKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShy
ZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAi
UmVnRXhwUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJTYW1w
bGluZ1Rvb2wuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlN0YWNr
VmlzaXRvci5oIgogI2luY2x1ZGUgIlN0cmljdEV2YWxBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAi
U3Ryb25nSW5saW5lcy5oIgpAQCAtNzQsNiArNzUsNyBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgog
I2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KKyNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9XVEZUaHJlYWREYXRh
Lmg+CkBAIC04OSwyMiArOTEsNiBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotSW50ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2RlOjpFcnJvckhhbmRsaW5nTW9k
ZShFeGVjU3RhdGUgKmV4ZWMpCi0gICAgOiBtX2ludGVycHJldGVyKCpleGVjLT5pbnRlcnByZXRl
cigpKQotewotICAgIGlmICghbV9pbnRlcnByZXRlci5tX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRy
eSkKLSAgICAgICAgbV9pbnRlcnByZXRlci5zdGFjaygpLmVuYWJsZUVycm9yU3RhY2tSZXNlcnZl
KCk7Ci0gICAgbV9pbnRlcnByZXRlci5tX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRyeSsrOwotfQot
Ci1JbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGU6On5FcnJvckhhbmRsaW5nTW9kZSgpCi17
Ci0gICAgbV9pbnRlcnByZXRlci5tX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRyeS0tOwotICAgIEFT
U0VSVChtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVSZWVudHJ5ID49IDApOwotICAg
IGlmICghbV9pbnRlcnByZXRlci5tX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRyeSkKLSAgICAgICAg
bV9pbnRlcnByZXRlci5zdGFjaygpLmRpc2FibGVFcnJvclN0YWNrUmVzZXJ2ZSgpOwotfQotCiBK
U1ZhbHVlIGV2YWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgaWYgKCFjYWxsRnJhbWUt
PmFyZ3VtZW50Q291bnQoKSkKQEAgLTE1MiwyMiArMTM4LDI1IEBAIEpTVmFsdWUgZXZhbChDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKICAgICByZXR1cm4gaW50ZXJwcmV0ZXItPmV4ZWN1dGUoZXZhbCwg
Y2FsbEZyYW1lLCB0aGlzVmFsdWUsIGNhbGxlclNjb3BlQ2hhaW4pOwogfQogCi1DYWxsRnJhbWUq
IHNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNTdGFj
ayogc3RhY2ssIEpTVmFsdWUgYXJndW1lbnRzLCBpbnQgZmlyc3RGcmVlUmVnaXN0ZXIpCitDYWxs
RnJhbWUqIHNpemVGcmFtZUZvclZhcmFyZ3MoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTU3RhY2sq
IHN0YWNrLCBKU1ZhbHVlIGFyZ3VtZW50cywgaW50IGZpcnN0RnJlZVJlZ2lzdGVyKQogewogICAg
IGlmICghYXJndW1lbnRzKSB7IC8vIGYuYXBwbHkoeCwgYXJndW1lbnRzKSwgd2l0aCBhcmd1bWVu
dHMgdW5tb2RpZmllZC4KICAgICAgICAgdW5zaWduZWQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCk7Ci0gICAgICAgIENh
bGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdp
c3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMg
LSBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gMSk7Ci0gICAgICAgIGlmIChhcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzICsgMSB8fCAhc3Rh
Y2stPmdyb3cobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKLSAgICAgICAgICAgIGNhbGxG
cmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dF
cnJvcihjYWxsRnJhbWUpKTsKKyAgICAgICAgdW5zaWduZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZz
ZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwg
LWZpcnN0RnJlZVJlZ2lzdGVyICsgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBKU1N0YWNr
OjpDYWxsRnJhbWVIZWFkZXJTaXplICsgMSk7CisgICAgICAgIENhbGxGcmFtZSogbmV3Q2FsbEZy
YW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIHBhZGRlZENh
bGxlZUZyYW1lT2Zmc2V0KTsKKyAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgKyAxIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlG
b3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKKyAgICAgICAgICAgIHRocm93U3RhY2tP
dmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
fQogICAgICAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwogICAgIH0KIAogICAgIGlmIChhcmd1bWVu
dHMuaXNVbmRlZmluZWRPck51bGwoKSkgewotICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFt
ZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBmaXJzdEZyZWVS
ZWdpc3RlciAtIDEgLSBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gMSk7Ci0gICAgICAg
IGlmICghc3RhY2stPmdyb3cobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKLSAgICAgICAg
ICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGNyZWF0ZVN0YWNr
T3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKKyAgICAgICAgdW5zaWduZWQgYXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMgPSAxOworICAgICAgICB1bnNpZ25lZCBwYWRkZWRDYWxsZWVGcmFtZU9m
ZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygp
LCAgLWZpcnN0RnJlZVJlZ2lzdGVyICsgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBKU1N0
YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplICsgMSk7CisgICAgICAgIENhbGxGcmFtZSogbmV3Q2Fs
bEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIHBhZGRl
ZENhbGxlZUZyYW1lT2Zmc2V0KTsKKyAgICAgICAgaWYgKCFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlG
b3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKKyAgICAgICAgICAgIHRocm93U3RhY2tP
dmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
fQogICAgICAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwpAQCAtMTgxLDkgKzE3MCwxMCBAQCBDYWxs
RnJhbWUqIHNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhDCiAgICAgaWYgKGFzT2JqZWN0KGFy
Z3VtZW50cyktPmNsYXNzSW5mbygpID09IEFyZ3VtZW50czo6aW5mbygpKSB7CiAgICAgICAgIEFy
Z3VtZW50cyogYXJnc09iamVjdCA9IGFzQXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgICAgIHVu
c2lnbmVkIGFyZ0NvdW50ID0gYXJnc09iamVjdC0+bGVuZ3RoKGNhbGxGcmFtZSk7Ci0gICAgICAg
IENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5y
ZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJn
Q291bnQgKyAxKSk7Ci0gICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1l
bnRzIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewotICAgICAg
ICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25lZCBwYWRkZWRDYWxs
ZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJl
Z2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBDYWxsRnJhbWU6Om9mZnNldEZvcihhcmdD
b3VudCArIDEpKTsKKyAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6
OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQp
OworICAgICAgICBpZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3Rh
Y2stPmVuc3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAg
ICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKQEAgLTE5
Miw5ICsxODIsMTAgQEAgQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoQwog
ICAgIGlmIChpc0pTQXJyYXkoYXJndW1lbnRzKSkgewogICAgICAgICBKU0FycmF5KiBhcnJheSA9
IGFzQXJyYXkoYXJndW1lbnRzKTsKICAgICAgICAgdW5zaWduZWQgYXJnQ291bnQgPSBhcnJheS0+
bGVuZ3RoKCk7Ci0gICAgICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpj
cmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gQ2FsbEZy
YW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7Ci0gICAgICAgIGlmIChhcmdDb3VudCA+IEFy
Z3VtZW50czo6TWF4QXJndW1lbnRzIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lz
dGVycygpKSkgewotICAgICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNh
bGxGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1
bnNpZ25lZCBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVP
ZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBDYWxsRnJh
bWU6Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsKKyAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxs
RnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVk
Q2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1h
eEFyZ3VtZW50cyB8fCAhc3RhY2stPmVuc3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVn
aXN0ZXJzKCkpKSB7CisgICAgICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJh
bWUpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5l
d0NhbGxGcmFtZTsKQEAgLTIwMiw5ICsxOTMsMTAgQEAgQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NG
cmFtZUZvclZhcmFyZ3MoQwogCiAgICAgSlNPYmplY3QqIGFyZ09iamVjdCA9IGFzT2JqZWN0KGFy
Z3VtZW50cyk7CiAgICAgdW5zaWduZWQgYXJnQ291bnQgPSBhcmdPYmplY3QtPmdldChjYWxsRnJh
bWUsIGNhbGxGcmFtZS0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkudG9VSW50MzIoY2FsbEZyYW1l
KTsKLSAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxG
cmFtZS0+cmVnaXN0ZXJzKCkgKyBmaXJzdEZyZWVSZWdpc3RlciAtIENhbGxGcmFtZTo6b2Zmc2V0
Rm9yKGFyZ0NvdW50ICsgMSkpOwotICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJn
dW1lbnRzIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewotICAg
ICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCAgY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgIHVuc2lnbmVkIHBhZGRlZENhbGxlZUZy
YW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0
ZXJzKCksIC1maXJzdEZyZWVSZWdpc3RlciArIENhbGxGcmFtZTo6b2Zmc2V0Rm9yKGFyZ0NvdW50
ICsgMSkpOworICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUo
Y2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0KTsKKyAgICBp
ZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3RhY2stPmVuc3VyZUNh
cGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAgICAgIHRocm93U3Rh
Y2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAg
ICByZXR1cm4gbmV3Q2FsbEZyYW1lOwpAQCAtNDIxLDcgKzQxMyw2IEBAIHN0YXRpYyBib29sIHVu
d2luZENhbGxGcmFtZShTdGFja1Zpc2l0b3IKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IHZpc2l0b3ItPmNhbGxGcmFtZSgpOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdmlzaXRv
ci0+Y29kZUJsb2NrKCk7Ci0gICAgQ29kZUJsb2NrKiBvbGRDb2RlQmxvY2sgPSBjb2RlQmxvY2s7
CiAgICAgSlNTY29wZSogc2NvcGUgPSBjYWxsRnJhbWUtPnNjb3BlKCk7CiAKICAgICBpZiAoRGVi
dWdnZXIqIGRlYnVnZ2VyID0gY2FsbEZyYW1lLT52bUVudHJ5R2xvYmFsT2JqZWN0KCktPmRlYnVn
Z2VyKCkpIHsKQEAgLTQzMiwxNiArNDIzLDE2IEBAIHN0YXRpYyBib29sIHVud2luZENhbGxGcmFt
ZShTdGFja1Zpc2l0b3IKICAgICB9CiAKICAgICBKU1ZhbHVlIGFjdGl2YXRpb247Ci0gICAgaWYg
KG9sZENvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUgJiYgb2xkQ29kZUJsb2Nr
LT5uZWVkc0FjdGl2YXRpb24oKSkgeworICAgIGlmIChjb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0g
RnVuY3Rpb25Db2RlICYmIGNvZGVCbG9jay0+bmVlZHNBY3RpdmF0aW9uKCkpIHsKICNpZiBFTkFC
TEUoREZHX0pJVCkKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIXZpc2l0b3ItPmlzSW5saW5lZEZy
YW1lKCkpOwogI2VuZGlmCi0gICAgICAgIGFjdGl2YXRpb24gPSBjYWxsRnJhbWUtPnVuY2hlY2tl
ZFIob2xkQ29kZUJsb2NrLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKS5vZmZzZXQoKSkuanNWYWx1ZSgp
OworICAgICAgICBhY3RpdmF0aW9uID0gY2FsbEZyYW1lLT51bmNoZWNrZWRSKGNvZGVCbG9jay0+
YWN0aXZhdGlvblJlZ2lzdGVyKCkub2Zmc2V0KCkpLmpzVmFsdWUoKTsKICAgICAgICAgaWYgKGFj
dGl2YXRpb24pCiAgICAgICAgICAgICBqc0Nhc3Q8SlNBY3RpdmF0aW9uKj4oYWN0aXZhdGlvbikt
PnRlYXJPZmYoKnNjb3BlLT52bSgpKTsKICAgICB9CiAKLSAgICBpZiAob2xkQ29kZUJsb2NrLT5j
b2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSAmJiBvbGRDb2RlQmxvY2stPnVzZXNBcmd1bWVudHMo
KSkgeworICAgIGlmIChjb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlICYmIGNv
ZGVCbG9jay0+dXNlc0FyZ3VtZW50cygpKSB7CiAgICAgICAgIGlmIChBcmd1bWVudHMqIGFyZ3Vt
ZW50cyA9IHZpc2l0b3ItPmV4aXN0aW5nQXJndW1lbnRzKCkpIHsKICAgICAgICAgICAgIGlmIChh
Y3RpdmF0aW9uKQogICAgICAgICAgICAgICAgIGFyZ3VtZW50cy0+ZGlkVGVhck9mZkFjdGl2YXRp
b24oY2FsbEZyYW1lLCBqc0Nhc3Q8SlNBY3RpdmF0aW9uKj4oYWN0aXZhdGlvbikpOwpAQCAtNDU1
LDExICs0NDYsNyBAQCBzdGF0aWMgYm9vbCB1bndpbmRDYWxsRnJhbWUoU3RhY2tWaXNpdG9yCiAg
ICAgfQogCiAgICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJh
bWUoKTsKLSAgICBpZiAoY2FsbGVyRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkpIHsKLSAgICAg
ICAgY2FsbEZyYW1lLT52bSgpLnRvcENhbGxGcmFtZSA9IGNhbGxlckZyYW1lLT52bUVudHJ5U2Vu
dGluZWxDYWxsZXJGcmFtZSgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJl
dHVybiB0cnVlOworICAgIHJldHVybiAhY2FsbGVyRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCk7
CiB9CiAKIHN0YXRpYyBTdGFja0ZyYW1lQ29kZVR5cGUgZ2V0U3RhY2tGcmFtZUNvZGVUeXBlKFN0
YWNrVmlzaXRvciYgdmlzaXRvcikKQEAgLTY2Miw3ICs2NDksMTcgQEAgcHJpdmF0ZToKIAogTkVW
RVJfSU5MSU5FIEhhbmRsZXJJbmZvKiBJbnRlcnByZXRlcjo6dW53aW5kKENhbGxGcmFtZSomIGNh
bGxGcmFtZSwgSlNWYWx1ZSYgZXhjZXB0aW9uVmFsdWUpCiB7CisgICAgaWYgKGNhbGxGcmFtZS0+
aXNWTUVudHJ5U2VudGluZWwoKSkgeworICAgICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiB3ZSB0
aHJvdyBzdGFjayBvdmVyZmxvdyBpbiBhIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkCisgICAgICAg
IC8vIGRpcmVjdGx5IGZyb20gY2FsbFRvSmF2YVNjcmlwdC4gU3RhY2sgb3ZlcmZsb3cgdGhyb3dz
IHRoZSBleGNlcHRpb24gaW4gdGhlCisgICAgICAgIC8vIGNvbnRleHQgb2YgdGhlIGNhbGxlci4g
SW4gdGhhdCBjYXNlIHRoZSBjYWxsZXIgaXMgdGhlIHNlbnRpbmVsIGZyYW1lLiBUaGUKKyAgICAg
ICAgLy8gcmlnaHQgdGhpbmcgdG8gZG8gaXMgdG8gcHJldGVuZCB0aGF0IHRoZSBleGNlcHRpb24g
aXMgdW5jYXVnaHQgc28gdGhhdCB3ZQorICAgICAgICAvLyBnbyB0byB0aGUgdW5jYXVnaHQgZXhj
ZXB0aW9uIGhhbmRsZXIsIHdoaWNoIHJldHVybnMgdGhyb3VnaCBjYWxsVG9KYXZhU2NyaXB0Lgor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOworICAgIEFTU0VSVChjb2RlQmxvY2spOwogICAgIGJv
b2wgaXNUZXJtaW5hdGlvbiA9IGZhbHNlOwogCiAgICAgQVNTRVJUKCFleGNlcHRpb25WYWx1ZS5p
c0VtcHR5KCkpOwpAQCAtNzY3LDcgKzc2NCw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1
dGUoUHJvZ3JhbUV4ZWMKICAgICBpZiAodm0uaXNDb2xsZWN0b3JCdXN5KCkpCiAgICAgICAgIHJl
dHVybiBqc051bGwoKTsKIAotICAgIFZNRW50cnlTY29wZSBlbnRyeVNjb3BlKHZtLCBzY29wZS0+
Z2xvYmFsT2JqZWN0KCkpOwogICAgIGlmICghdm0uaXNTYWZlVG9SZWN1cnNlKCkpCiAgICAgICAg
IHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkp
OwogCkBAIC04NzQsNiArODcwLDggQEAgZmFpbGVkSlNPTlA6CiAgICAgLy8gSWYgd2UgZ2V0IGhl
cmUsIHRoZW4gd2UgaGF2ZSBhbHJlYWR5IHByb3ZlbiB0aGF0IHRoZSBzY3JpcHQgaXMgbm90IGEg
SlNPTgogICAgIC8vIG9iamVjdC4KIAorICAgIFZNRW50cnlTY29wZSBlbnRyeVNjb3BlKHZtLCBz
Y29wZS0+Z2xvYmFsT2JqZWN0KCkpOworCiAgICAgLy8gQ29tcGlsZSBzb3VyY2UgdG8gYnl0ZWNv
ZGUgaWYgbmVjZXNzYXJ5OgogICAgIGlmIChKU09iamVjdCogZXJyb3IgPSBwcm9ncmFtLT5pbml0
aWFsaXplR2xvYmFsUHJvcGVydGllcyh2bSwgY2FsbEZyYW1lLCBzY29wZSkpCiAgICAgICAgIHJl
dHVybiBjaGVja2VkUmV0dXJuKGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJh
bWUsIGVycm9yKSk7CkBAIC04ODgsOSArODg2LDYgQEAgZmFpbGVkSlNPTlA6CiAKICAgICBBU1NF
UlQoY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgPT0gMSk7IC8vIDEgcGFyYW1ldGVyIGZvciAn
dGhpcycuCiAKLSAgICBpZiAoVU5MSUtFTFkoIW1fc3RhY2suZW50cnlDaGVjayhjb2RlQmxvY2ss
IDEpKSkKLSAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJy
b3IoY2FsbEZyYW1lKSk7Ci0KICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAg
ICBwcm90b0NhbGxGcmFtZS5pbml0KGNvZGVCbG9jaywgc2NvcGUsIDAsIHRoaXNPYmosIDEpOwog
CkBAIC05MDMsNyArODk4LDcgQEAgZmFpbGVkSlNPTlA6CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6
Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgIFdhdGNoZG9n
OjpTY29wZSB3YXRjaGRvZ1Njb3BlKHZtLndhdGNoZG9nKTsKIAotICAgICAgICByZXN1bHQgPSBw
cm9ncmFtLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUs
IG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICAgICAgcmVzdWx0ID0gcHJvZ3JhbS0+Z2Vu
ZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAK
ICAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkp
CkBAIC05NTEsOSArOTQ2LDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2Fs
bEZyYQogICAgIGlmIChVTkxJS0VMWSh2bS53YXRjaGRvZy5kaWRGaXJlKGNhbGxGcmFtZSkpKQog
ICAgICAgICByZXR1cm4gdGhyb3dUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGNhbGxGcmFt
ZSk7CiAKLSAgICBpZiAoVU5MSUtFTFkoIW1fc3RhY2suZW50cnlDaGVjayhuZXdDb2RlQmxvY2ss
IGFyZ3NDb3VudCkpKQotICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3Zl
cmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKLQogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZy
YW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQobmV3Q29kZUJsb2NrLCBzY29wZSwgZnVuY3Rp
b24sIHRoaXNWYWx1ZSwgYXJnc0NvdW50LCBhcmdzLmRhdGEoKSk7CiAKQEAgLTk2Nyw5ICs5NTks
MTIgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYQogCiAgICAgICAg
IC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAgICAgIGlmIChpc0pTQ2FsbCkKLSAgICAgICAgICAg
IHJlc3VsdCA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29k
ZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BP
ZlN0YWNrKCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgPSBKU1ZhbHVlOjpk
ZWNvZGUoY2FsbFRvTmF0aXZlRnVuY3Rpb24ocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uKSwgJnZtLnRvcENhbGxGcmFtZSwgJnByb3RvQ2FsbEZyYW1lLCBt
X3N0YWNrLmdldFRvcE9mU3RhY2soKSkpOworICAgICAgICAgICAgcmVzdWx0ID0gY2FsbERhdGEu
anMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRl
KCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1
bHQgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbFRvTmF0aXZlRnVuY3Rpb24ocmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uKSwgJnZtLCAmcHJvdG9DYWxsRnJhbWUp
KTsKKyAgICAgICAgICAgIGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IGpzTnVsbCgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKExl
Z2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQpAQCAtMTAxOSw5
ICsxMDE0LDYgQEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KAogICAg
IGlmIChVTkxJS0VMWSh2bS53YXRjaGRvZy5kaWRGaXJlKGNhbGxGcmFtZSkpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGNhbGxGcmFtZSk7CiAKLSAg
ICBpZiAoVU5MSUtFTFkoIW1fc3RhY2suZW50cnlDaGVjayhuZXdDb2RlQmxvY2ssIGFyZ3NDb3Vu
dCkpKQotICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJv
cihjYWxsRnJhbWUpKTsKLQogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAg
IHByb3RvQ2FsbEZyYW1lLmluaXQobmV3Q29kZUJsb2NrLCBzY29wZSwgY29uc3RydWN0b3IsIGpz
VW5kZWZpbmVkKCksIGFyZ3NDb3VudCwgYXJncy5kYXRhKCkpOwogCkBAIC0xMDM1LDkgKzEwMjcs
OSBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoCiAKICAgICAgICAg
Ly8gRXhlY3V0ZSB0aGUgY29kZS4KICAgICAgICAgaWYgKGlzSlNDb25zdHJ1Y3QpCi0gICAgICAg
ICAgICByZXN1bHQgPSBjb25zdHJ1Y3REYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJh
dGVkSklUQ29kZUZvckNvbnN0cnVjdCgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lLCBt
X3N0YWNrLmdldFRvcE9mU3RhY2soKSk7CisgICAgICAgICAgICByZXN1bHQgPSBjb25zdHJ1Y3RE
YXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNvbnN0cnVjdCgp
LT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICByZXN1bHQgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbFRvTmF0aXZlRnVuY3Rpb24ocmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0udG9w
Q2FsbEZyYW1lLCAmcHJvdG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKSk7Cisg
ICAgICAgICAgICByZXN1bHQgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbFRvTmF0aXZlRnVuY3Rpb24o
cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAm
dm0sICZwcm90b0NhbGxGcmFtZSkpOwogCiAgICAgICAgICAgICBpZiAoIWNhbGxGcmFtZS0+aGFk
RXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVzdWx0LmlzT2Jq
ZWN0KCkpOwpAQCAtMTA3MiwxMSArMTA2NCw2IEBAIENhbGxGcmFtZUNsb3N1cmUgSW50ZXJwcmV0
ZXI6OnByZXBhcmVGb3IKIAogICAgIHNpemVfdCBhcmdzQ291bnQgPSBhcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpczsKIAotICAgIGlmIChVTkxJS0VMWSghbV9zdGFjay5lbnRyeUNoZWNrKG5ld0Nv
ZGVCbG9jaywgYXJnc0NvdW50KSkpIHsKLSAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3Io
Y2FsbEZyYW1lKTsKLSAgICAgICAgcmV0dXJuIENhbGxGcmFtZUNsb3N1cmUoKTsKLSAgICB9Ci0K
ICAgICBwcm90b0NhbGxGcmFtZS0+aW5pdChuZXdDb2RlQmxvY2ssIHNjb3BlLCBmdW5jdGlvbiwg
anNVbmRlZmluZWQoKSwgYXJnc0NvdW50LCBhcmdzKTsKICAgICAvLyBSZXR1cm4gdGhlIHN1Y2Nl
c3NmdWwgY2xvc3VyZToKICAgICBDYWxsRnJhbWVDbG9zdXJlIHJlc3VsdCA9IHsgY2FsbEZyYW1l
LCBwcm90b0NhbGxGcmFtZSwgZnVuY3Rpb24sIGZ1bmN0aW9uRXhlY3V0YWJsZSwgJnZtLCBzY29w
ZSwgbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCksIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzIH07CkBAIC0xMTA3LDcgKzEwOTQsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRl
KENhbGxGcmFtZUNsCiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxsUmVjb3Jk
KG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRvZ1Njb3Bl
KHZtLndhdGNoZG9nKTsKIAotICAgICAgICByZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0
YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJv
dG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICAgICAgcmVzdWx0ID0g
Y2xvc3VyZS5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCktPmV4
ZWN1dGUoJnZtLCBjbG9zdXJlLnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKICAgICBpZiAoTGVn
YWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCkBAIC0xMTc4LDkg
KzExNjUsNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVjdXRhCiAKICAg
ICBBU1NFUlQoY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgPT0gMSk7IC8vIDEgcGFyYW1ldGVy
IGZvciAndGhpcycuCiAKLSAgICBpZiAoVU5MSUtFTFkoIW1fc3RhY2suZW50cnlDaGVjayhjb2Rl
QmxvY2ssIDEpKSkKLSAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJm
bG93RXJyb3IoY2FsbEZyYW1lKSk7Ci0KICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFt
ZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KGNvZGVCbG9jaywgc2NvcGUsIDAsIHRoaXNWYWx1
ZSwgMSk7CiAKQEAgLTExOTMsNyArMTE3Nyw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1
dGUoRXZhbEV4ZWN1dGEKICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNv
cmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2Nv
cGUodm0ud2F0Y2hkb2cpOwogCi0gICAgICAgIHJlc3VsdCA9IGV2YWwtPmdlbmVyYXRlZEpJVENv
ZGUoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNr
KCkpOworICAgICAgICByZXN1bHQgPSBldmFsLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUo
JnZtLCAmcHJvdG9DYWxsRnJhbWUpOwogICAgIH0KIAogICAgIGlmIChMZWdhY3lQcm9maWxlciog
cHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCShyZXZpc2lvbiAxNjI5NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTgwLDYgKzE4MCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
IEFTU0VSVCghY2FsbEZyYW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpKTsKICAgICAgICAgICAgIHZt
LT50b3BDYWxsRnJhbWUgPSBjYWxsRnJhbWU7CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IGVudW0gVk1FbnRyeVNlbnRpbmVsT0tUYWcgeyBWTUVudHJ5U2VudGluZWxPSyB9OworICAgICAg
ICBBTFdBWVNfSU5MSU5FIE5hdGl2ZUNhbGxGcmFtZVRyYWNlcihWTSogdm0sIENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBWTUVudHJ5U2VudGluZWxPS1RhZykKKyAgICAgICAgeworICAgICAgICAgICAg
QVNTRVJUKHZtKTsKKyAgICAgICAgICAgIEFTU0VSVChjYWxsRnJhbWUpOworICAgICAgICAgICAg
aWYgKCFjYWxsRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkpCisgICAgICAgICAgICAgICAgdm0t
PnRvcENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKKyAgICAgICAgfQogICAgIH07CiAKICAgICBjbGFz
cyBJbnRlcnByZXRlciB7CkBAIC0xOTAsMTQgKzE5OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBmcmllbmQgY2xhc3MgVk07CiAKICAgICBwdWJsaWM6Ci0gICAgICAgIGNsYXNzIEVycm9y
SGFuZGxpbmdNb2RlIHsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgRXJyb3JIYW5kbGluZ01vZGUoRXhlY1N0YXRlKik7Ci0gICAgICAgICAgICBKU19FWFBP
UlRfUFJJVkFURSB+RXJyb3JIYW5kbGluZ01vZGUoKTsKLSAgICAgICAgcHJpdmF0ZToKLSAgICAg
ICAgICAgIEludGVycHJldGVyJiBtX2ludGVycHJldGVyOwotICAgICAgICB9OwotCiAgICAgICAg
IEludGVycHJldGVyKFZNICYpOwogICAgICAgICB+SW50ZXJwcmV0ZXIoKTsKICAgICAgICAgCkBA
IC0yMzcsOCArMjM4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBTYW1w
bGluZ1Rvb2wqIHNhbXBsZXIoKSB7IHJldHVybiBtX3NhbXBsZXIuZ2V0KCk7IH0KIAotICAgICAg
ICBib29sIGlzSW5FcnJvckhhbmRsaW5nTW9kZSgpIHsgcmV0dXJuIG1fZXJyb3JIYW5kbGluZ01v
ZGVSZWVudHJ5OyB9Ci0KICAgICAgICAgTkVWRVJfSU5MSU5FIEhhbmRsZXJJbmZvKiB1bndpbmQo
Q2FsbEZyYW1lKiYsIEpTVmFsdWUmKTsKICAgICAgICAgTkVWRVJfSU5MSU5FIHZvaWQgZGVidWco
Q2FsbEZyYW1lKiwgRGVidWdIb29rSUQpOwogICAgICAgICBKU1N0cmluZyogc3RhY2tUcmFjZUFz
U3RyaW5nKEV4ZWNTdGF0ZSosIFZlY3RvcjxTdGFja0ZyYW1lPik7CkBAIC0yODYsNyArMjg1LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgfTsKIAogICAgIEpTVmFsdWUgZXZhbChDYWxsRnJhbWUq
KTsKLSAgICBDYWxsRnJhbWUqIHNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhDYWxsRnJhbWUq
LCBKU1N0YWNrKiwgSlNWYWx1ZSwgaW50KTsKKyAgICBDYWxsRnJhbWUqIHNpemVGcmFtZUZvclZh
cmFyZ3MoQ2FsbEZyYW1lKiwgSlNTdGFjayosIEpTVmFsdWUsIGludCk7CiAgICAgdm9pZCBsb2Fk
VmFyYXJncyhDYWxsRnJhbWUqLCBDYWxsRnJhbWUqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SlNTdGFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0pTU3RhY2suY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMx
LDkgKzMxLDExIEBACiAKICNpbmNsdWRlICJDb25zZXJ2YXRpdmVSb290cy5oIgogI2luY2x1ZGUg
IkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiT3B0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsK
IAorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVz
Q291bnQgPSAwOwogCiBzdGF0aWMgTXV0ZXgmIHN0YWNrU3RhdGlzdGljc011dGV4KCkKQEAgLTQx
LDg3ICs0Myw5OCBAQCBzdGF0aWMgTXV0ZXgmIHN0YWNrU3RhdGlzdGljc011dGV4KCkKICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBzdGF0aWNNdXRleCwgKCkpOwogICAgIHJldHVybiBz
dGF0aWNNdXRleDsKIH0gICAgCisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAotSlNT
dGFjazo6SlNTdGFjayhWTSYgdm0sIHNpemVfdCBjYXBhY2l0eSkKK0pTU3RhY2s6OkpTU3RhY2so
Vk0mIHZtKQogICAgIDogbV92bSh2bSkKLSAgICAsIG1fZW5kKDApCiAgICAgLCBtX3RvcENhbGxG
cmFtZSh2bS50b3BDYWxsRnJhbWUpCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICAsIG1f
ZW5kKDApCisgICAgLCBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVycygwKQorI2VuZGlmCiB7
CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBzaXplX3QgY2FwYWNpdHkgPSBPcHRpb25z
OjptYXhQZXJUaHJlYWRTdGFja1VzYWdlKCk7CiAgICAgQVNTRVJUKGNhcGFjaXR5ICYmIGlzUGFn
ZUFsaWduZWQoY2FwYWNpdHkpKTsKIAotICAgIG1fcmVzZXJ2YXRpb24gPSBQYWdlUmVzZXJ2YXRp
b246OnJlc2VydmUocm91bmRVcEFsbG9jYXRpb25TaXplKGNhcGFjaXR5ICogc2l6ZW9mKFJlZ2lz
dGVyKSwgY29tbWl0U2l6ZSksIE9TQWxsb2NhdG9yOjpKU1ZNU3RhY2tQYWdlcyk7Ci0gICAgdXBk
YXRlU3RhY2tMaW1pdChoaWdoQWRkcmVzcygpKTsKLSAgICBtX2NvbW1pdEVuZCA9IGhpZ2hBZGRy
ZXNzKCk7CisgICAgbV9yZXNlcnZhdGlvbiA9IFBhZ2VSZXNlcnZhdGlvbjo6cmVzZXJ2ZShXVEY6
OnJvdW5kVXBUb011bHRpcGxlT2YoY29tbWl0U2l6ZSwgY2FwYWNpdHkpLCBPU0FsbG9jYXRvcjo6
SlNWTVN0YWNrUGFnZXMpOworICAgIHNldFN0YWNrTGltaXQoaGlnaEFkZHJlc3MoKSk7CisgICAg
bV9jb21taXRUb3AgPSBoaWdoQWRkcmVzcygpOwogICAgIAotICAgIG1fbGFzdFN0YWNrVG9wID0g
Z2V0QmFzZU9mU3RhY2soKTsKLQotICAgIGRpc2FibGVFcnJvclN0YWNrUmVzZXJ2ZSgpOworICAg
IG1fbGFzdFN0YWNrVG9wID0gYmFzZU9mU3RhY2soKTsKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRf
Q19MT09QKQogCiAgICAgbV90b3BDYWxsRnJhbWUgPSAwOwogfQogCisjaWYgRU5BQkxFKExMSU5U
X0NfTE9PUCkKIEpTU3RhY2s6On5KU1N0YWNrKCkKIHsKLSAgICB2b2lkKiBoaWdoQWRkcmVzcyA9
IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PGNoYXIqPihtX3Jlc2VydmF0aW9u
LmJhc2UoKSkgKyBtX3Jlc2VydmF0aW9uLnNpemUoKSk7Ci0gICAgbV9yZXNlcnZhdGlvbi5kZWNv
bW1pdChyZWludGVycHJldF9jYXN0PHZvaWQqPihtX2NvbW1pdEVuZCksIHJlaW50ZXJwcmV0X2Nh
c3Q8aW50cHRyX3Q+KGhpZ2hBZGRyZXNzKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KG1f
Y29tbWl0RW5kKSk7Ci0gICAgYWRkVG9Db21taXR0ZWRCeXRlQ291bnQoLShyZWludGVycHJldF9j
YXN0PGludHB0cl90PihoaWdoQWRkcmVzcykgLSByZWludGVycHJldF9jYXN0PGludHB0cl90Piht
X2NvbW1pdEVuZCkpKTsKKyAgICBwdHJkaWZmX3Qgc2l6ZVRvRGVjb21taXQgPSByZWludGVycHJl
dF9jYXN0PGNoYXIqPihoaWdoQWRkcmVzcygpKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1f
Y29tbWl0VG9wKTsKKyAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KG1fY29tbWl0VG9wKSwgc2l6ZVRvRGVjb21taXQpOworICAgIGFkZFRvQ29tbWl0dGVk
Qnl0ZUNvdW50KC1zaXplVG9EZWNvbW1pdCk7CiAgICAgbV9yZXNlcnZhdGlvbi5kZWFsbG9jYXRl
KCk7CiB9CiAKLWJvb2wgSlNTdGFjazo6Z3Jvd1Nsb3dDYXNlKFJlZ2lzdGVyKiBuZXdFbmQpCiti
b29sIEpTU3RhY2s6Omdyb3dTbG93Q2FzZShSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKIHsKKyAg
ICBSZWdpc3RlciogbmV3VG9wT2ZTdGFja1dpdGhSZXNlcnZlZFpvbmUgPSBuZXdUb3BPZlN0YWNr
IC0gbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnM7CisKICAgICAvLyBJZiB3ZSBoYXZlIGFs
cmVhZHkgY29tbWl0dGVkIGVub3VnaCBtZW1vcnkgdG8gc2F0aXNmeSB0aGlzIHJlcXVlc3QsCiAg
ICAgLy8ganVzdCB1cGRhdGUgdGhlIGVuZCBwb2ludGVyIGFuZCByZXR1cm4uCi0gICAgaWYgKG5l
d0VuZCA+PSBtX2NvbW1pdEVuZCkgewotICAgICAgICB1cGRhdGVTdGFja0xpbWl0KG5ld0VuZCk7
CisgICAgaWYgKG5ld1RvcE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lID49IG1fY29tbWl0VG9wKSB7
CisgICAgICAgIHNldFN0YWNrTGltaXQobmV3VG9wT2ZTdGFjayk7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAogICAgIC8vIENvbXB1dGUgdGhlIGNodW5rIHNpemUgb2YgYWRkaXRpb25h
bCBtZW1vcnkgdG8gY29tbWl0LCBhbmQgc2VlIGlmIHdlCiAgICAgLy8gaGF2ZSBpdCBpcyBzdGls
bCB3aXRoaW4gb3VyIGJ1ZGdldC4gSWYgbm90LCB3ZSdsbCBmYWlsIHRvIGdyb3cgYW5kCiAgICAg
Ly8gcmV0dXJuIGZhbHNlLgotICAgIGxvbmcgZGVsdGEgPSByb3VuZFVwQWxsb2NhdGlvblNpemUo
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpIC0gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4obmV3RW5kKSwgY29tbWl0U2l6ZSk7Ci0gICAgaWYgKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KG1fY29tbWl0RW5kKSAtIGRlbHRhIDw9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fdXNl
YWJsZUVuZCkpCisgICAgcHRyZGlmZl90IGRlbHRhID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
bV9jb21taXRUb3ApIC0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obmV3VG9wT2ZTdGFja1dpdGhS
ZXNlcnZlZFpvbmUpOworICAgIGRlbHRhID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKGNvbW1p
dFNpemUsIGRlbHRhKTsKKyAgICBSZWdpc3RlciogbmV3Q29tbWl0VG9wID0gbV9jb21taXRUb3Ag
LSAoZGVsdGEgLyBzaXplb2YoUmVnaXN0ZXIpKTsKKyAgICBpZiAobmV3Q29tbWl0VG9wIDwgcmVz
ZXJ2YXRpb25Ub3AoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gT3RoZXJ3aXNl
LCB0aGUgZ3Jvd3RoIGlzIHN0aWxsIHdpdGhpbiBvdXIgYnVkZ2V0LiBHbyBhaGVhZCBhbmQgY29t
bWl0CiAgICAgLy8gaXQgYW5kIHJldHVybiB0cnVlLgotICAgIG1fcmVzZXJ2YXRpb24uY29tbWl0
KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0RW5kKSAtIGRlbHRhLCBkZWx0YSk7Cisg
ICAgbV9yZXNlcnZhdGlvbi5jb21taXQobmV3Q29tbWl0VG9wLCBkZWx0YSk7CiAgICAgYWRkVG9D
b21taXR0ZWRCeXRlQ291bnQoZGVsdGEpOwotICAgIG1fY29tbWl0RW5kID0gcmVpbnRlcnByZXRf
Y2FzdF9wdHI8UmVnaXN0ZXIqPihyZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVuZCkg
LSBkZWx0YSk7Ci0gICAgdXBkYXRlU3RhY2tMaW1pdChuZXdFbmQpOworICAgIG1fY29tbWl0VG9w
ID0gbmV3Q29tbWl0VG9wOworICAgIHNldFN0YWNrTGltaXQobmV3VG9wT2ZTdGFjayk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgSlNTdGFjazo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMo
Q29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzKQogewotICAgIGNvbnNlcnZhdGl2
ZVJvb3RzLmFkZChnZXRCYXNlT2ZTdGFjaygpLCBnZXRUb3BPZlN0YWNrKCkpOworICAgIGNvbnNl
cnZhdGl2ZVJvb3RzLmFkZCh0b3BPZlN0YWNrKCkgKyAxLCBoaWdoQWRkcmVzcygpKTsKIH0KIAog
dm9pZCBKU1N0YWNrOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYg
Y29uc2VydmF0aXZlUm9vdHMsIEpJVFN0dWJSb3V0aW5lU2V0JiBqaXRTdHViUm91dGluZXMsIENv
ZGVCbG9ja1NldCYgY29kZUJsb2NrcykKIHsKLSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoZ2V0
QmFzZU9mU3RhY2soKSwgZ2V0VG9wT2ZTdGFjaygpLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9j
a3MpOworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZCh0b3BPZlN0YWNrKCkgKyAxLCBoaWdoQWRk
cmVzcygpLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogfQogCiB2b2lkIEpTU3RhY2s6
OnNhbml0aXplU3RhY2soKQogewotICAgIEFTU0VSVChnZXRUb3BPZlN0YWNrKCkgPD0gZ2V0QmFz
ZU9mU3RhY2soKSk7CisgICAgQVNTRVJUKHRvcE9mU3RhY2soKSA8PSBiYXNlT2ZTdGFjaygpKTsK
ICAgICAKLSAgICBpZiAobV9sYXN0U3RhY2tUb3AgPCBnZXRUb3BPZlN0YWNrKCkpIHsKLSAgICAg
ICAgY2hhciogYmVnaW4gPSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2xhc3RTdGFja1RvcCk7
Ci0gICAgICAgIGNoYXIqIGVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGdldFRvcE9mU3Rh
Y2soKSk7CisgICAgaWYgKG1fbGFzdFN0YWNrVG9wIDwgdG9wT2ZTdGFjaygpKSB7CisgICAgICAg
IGNoYXIqIGJlZ2luID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9sYXN0U3RhY2tUb3AgKyAx
KTsKKyAgICAgICAgY2hhciogZW5kID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odG9wT2ZTdGFj
aygpICsgMSk7CiAgICAgICAgIG1lbXNldChiZWdpbiwgMCwgZW5kIC0gYmVnaW4pOwogICAgIH0K
ICAgICAKLSAgICBtX2xhc3RTdGFja1RvcCA9IGdldFRvcE9mU3RhY2soKTsKKyAgICBtX2xhc3RT
dGFja1RvcCA9IHRvcE9mU3RhY2soKTsKIH0KIAogdm9pZCBKU1N0YWNrOjpyZWxlYXNlRXhjZXNz
Q2FwYWNpdHkoKQogewotICAgIHB0cmRpZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90PihoaWdoQWRkcmVzcygpKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX2Nv
bW1pdEVuZCk7Ci0gICAgbV9yZXNlcnZhdGlvbi5kZWNvbW1pdChtX2NvbW1pdEVuZCwgZGVsdGEp
OworICAgIFJlZ2lzdGVyKiBoaWdoQWRkcmVzc1dpdGhSZXNlcnZlZFpvbmUgPSBoaWdoQWRkcmVz
cygpIC0gbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnM7CisgICAgcHRyZGlmZl90IGRlbHRh
ID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaGlnaEFkZHJlc3NXaXRoUmVzZXJ2ZWRab25lKSAt
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0VG9wKTsKKyAgICBtX3Jlc2VydmF0aW9u
LmRlY29tbWl0KG1fY29tbWl0VG9wLCBkZWx0YSk7CiAgICAgYWRkVG9Db21taXR0ZWRCeXRlQ291
bnQoLWRlbHRhKTsKLSAgICBtX2NvbW1pdEVuZCA9IGhpZ2hBZGRyZXNzKCk7CisgICAgbV9jb21t
aXRUb3AgPSBoaWdoQWRkcmVzc1dpdGhSZXNlcnZlZFpvbmU7CiB9CiAKIHZvaWQgSlNTdGFjazo6
aW5pdGlhbGl6ZVRocmVhZGluZygpCkBAIC0xMjksMTIgKzE0Miw2IEBAIHZvaWQgSlNTdGFjazo6
aW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKTsKIH0KIAot
c2l6ZV90IEpTU3RhY2s6OmNvbW1pdHRlZEJ5dGVDb3VudCgpCi17Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKHN0YWNrU3RhdGlzdGljc011dGV4KCkpOwotICAgIHJldHVybiBjb21taXR0ZWRCeXRl
c0NvdW50OwotfQotCiB2b2lkIEpTU3RhY2s6OmFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGxvbmcg
Ynl0ZUNvdW50KQogewogICAgIE11dGV4TG9ja2VyIGxvY2tlcihzdGFja1N0YXRpc3RpY3NNdXRl
eCgpKTsKQEAgLTE0MiwyNSArMTQ5LDQxIEBAIHZvaWQgSlNTdGFjazo6YWRkVG9Db21taXR0ZWRC
eXRlQ291bnQobG8KICAgICBjb21taXR0ZWRCeXRlc0NvdW50ICs9IGJ5dGVDb3VudDsKIH0KIAot
dm9pZCBKU1N0YWNrOjplbmFibGVFcnJvclN0YWNrUmVzZXJ2ZSgpCit2b2lkIEpTU3RhY2s6OnNl
dFJlc2VydmVkWm9uZVNpemUoc2l6ZV90IHJlc2VydmVkWm9uZVNpemUpCiB7Ci0gICAgbV91c2Vh
YmxlRW5kID0gcmVzZXJ2YXRpb25FbmQoKTsKKyAgICBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lz
dGVycyA9IHJlc2VydmVkWm9uZVNpemUgLyBzaXplb2YoUmVnaXN0ZXIpOworICAgIGlmIChtX2Nv
bW1pdFRvcCA+PSAobV9lbmQgKyAxKSAtIG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzKQor
ICAgICAgICBncm93U2xvd0Nhc2UobV9lbmQgKyAxKTsKIH0KKyNlbmRpZiAvLyBFTkFCTEUoTExJ
TlRfQ19MT09QKQogCi12b2lkIEpTU3RhY2s6OmRpc2FibGVFcnJvclN0YWNrUmVzZXJ2ZSgpCisj
aWYgIUVOQUJMRShMTElOVF9DX0xPT1ApCitSZWdpc3RlciogSlNTdGFjazo6bG93QWRkcmVzcygp
IGNvbnN0CiB7Ci0gICAgY2hhciogdXNlYWJsZUVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KHJlc2VydmF0aW9uRW5kKCkpICsgY29tbWl0U2l6ZTsKLSAgICBtX3VzZWFibGVFbmQgPSByZWlu
dGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHVzZWFibGVFbmQpOworICAgIEFTU0VSVCh3dGZU
aHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKKyAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxSZWdpc3Rlcio+KG1fdm0uc3RhY2tMaW1pdCgpKTsKK30KIAotICAgIC8v
IEJ5IHRoZSB0aW1lIHdlIGdldCBoZXJlLCB3ZSBhcmUgZ3VhcmFudGVlZCB0byBiZSBkZXN0cnVj
dGluZyB0aGUgbGFzdAotICAgIC8vIEludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZSB0aGF0
IGVuYWJsZWQgdGhpcyByZXNlcnZlIGluIHRoZSBmaXJzdAotICAgIC8vIHBsYWNlLiBUaGF0IG1l
YW5zIHRoZSBzdGFjayBzcGFjZSBiZXlvbmQgbV91c2VhYmxlRW5kIGJlZm9yZSB3ZQotICAgIC8v
IGVuYWJsZWQgdGhlIHJlc2VydmUgd2FzIG5vdCBwcmV2aW91c2x5IGluIHVzZS4gSGVuY2UsIGl0
IGlzIHNhZmUgdG8KLSAgICAvLyBzaHJpbmsgYmFjayB0byB0aGF0IG1fdXNlYWJsZUVuZC4KLSAg
ICBpZiAobV9lbmQgPCBtX3VzZWFibGVFbmQpIHsKLSAgICAgICAgQVNTRVJUKG1fdG9wQ2FsbEZy
YW1lLT5mcmFtZUV4dGVudCgpID49IG1fdXNlYWJsZUVuZCk7Ci0gICAgICAgIHNocmluayhtX3Vz
ZWFibGVFbmQpOwotICAgIH0KK1JlZ2lzdGVyKiBKU1N0YWNrOjpoaWdoQWRkcmVzcygpIGNvbnN0
Cit7CisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJk
KCkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4od3RmVGhyZWFkRGF0
YSgpLnN0YWNrKCkub3JpZ2luKCkpOworfQorI2VuZGlmIC8vICFFTkFCTEUoTExJTlRfQ19MT09Q
KQorCitzaXplX3QgSlNTdGFjazo6Y29tbWl0dGVkQnl0ZUNvdW50KCkKK3sKKyNpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQorICAgIE11dGV4TG9ja2VyIGxvY2tlcihzdGFja1N0YXRpc3RpY3NNdXRl
eCgpKTsKKyAgICByZXR1cm4gY29tbWl0dGVkQnl0ZXNDb3VudDsKKyNlbHNlCisgICAgLy8gV2hl
biB1c2luZyB0aGUgQyBzdGFjaywgd2UgZG9uJ3Qga25vdyBob3cgbWFueSBzdGFjayBwYWdlcyBh
cmUgYWN0dWFsbHkKKyAgICAvLyBjb21taXR0ZWQuIFNvLCB3ZSB1c2UgdGhlIGN1cnJlbnQgc3Rh
Y2sgdXNhZ2UgYXMgYW4gZXN0aW1hdGUuCisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFj
aygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOworICAgIGludDhfdCogY3VycmVudCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8aW50OF90Kj4oJmN1cnJlbnQpOworICAgIGludDhfdCogaGlnaCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8aW50OF90Kj4od3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkub3JpZ2luKCkpOworICAg
IHJldHVybiBoaWdoIC0gY3VycmVudDsKKyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suaAkocmV2
aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3Rh
Y2suaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsMTEgKzM1LDYg
QEAKICNpbmNsdWRlIDx3dGYvUGFnZVJlc2VydmF0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1ZNVGFn
cy5oPgogCi0jZGVmaW5lIEVOQUJMRV9ERUJVR19KU1NUQUNLIDAKLSNpZiAhZGVmaW5lZChOREVC
VUcpICYmICFkZWZpbmVkKEVOQUJMRV9ERUJVR19KU1NUQUNLKQotI2RlZmluZSBFTkFCTEVfREVC
VUdfSlNTVEFDSyAxCi0jZW5kaWYKLQogbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBDb2Rl
QmxvY2tTZXQ7CkBAIC02MSw3ICs1Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShKU1N0YWNrKTsKICAgICBwdWJsaWM6CiAgICAgICAgIGVudW0gQ2Fs
bEZyYW1lSGVhZGVyRW50cnkgewotICAgICAgICAgICAgQ29kZUJsb2NrID0gc2l6ZW9mKENhbGxl
ckZyYW1lQW5kUEMpIC8gc2l6ZW9mKFJlZ2lzdGVyKSwKKyAgICAgICAgICAgIENhbGxlckZyYW1l
QW5kUENTaXplID0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpIC8gc2l6ZW9mKFJlZ2lzdGVyKSwK
KyAgICAgICAgICAgIENvZGVCbG9jayA9IENhbGxlckZyYW1lQW5kUENTaXplLAogICAgICAgICAg
ICAgU2NvcGVDaGFpbiwKICAgICAgICAgICAgIENhbGxlZSwKICAgICAgICAgICAgIEFyZ3VtZW50
Q291bnQsCkBAIC03Miw5MiArNjgsODcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBG
aXJzdEFyZ3VtZW50LAogICAgICAgICB9OwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qg
ZGVmYXVsdENhcGFjaXR5ID0gNTEyICogMTAyNDsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVf
dCBjb21taXRTaXplID0gMTYgKiAxMDI0OwogICAgICAgICAvLyBBbGxvdyA4ayBvZiBleGNlc3Mg
cmVnaXN0ZXJzIGJlZm9yZSB3ZSBzdGFydCB0cnlpbmcgdG8gcmVhcCB0aGUgc3RhY2sKICAgICAg
ICAgc3RhdGljIGNvbnN0IHB0cmRpZmZfdCBtYXhFeGNlc3NDYXBhY2l0eSA9IDggKiAxMDI0Owog
Ci0gICAgICAgIEpTU3RhY2soVk0mLCBzaXplX3QgY2FwYWNpdHkgPSBkZWZhdWx0Q2FwYWNpdHkp
OwotICAgICAgICB+SlNTdGFjaygpOworICAgICAgICBKU1N0YWNrKFZNJik7CiAgICAgICAgIAor
ICAgICAgICBib29sIGVuc3VyZUNhcGFjaXR5Rm9yKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsK
KworICAgICAgICBib29sIGNvbnRhaW5zQWRkcmVzcyhSZWdpc3RlciogYWRkcmVzcykgeyByZXR1
cm4gKGxvd0FkZHJlc3MoKSA8PSBhZGRyZXNzICYmIGFkZHJlc3MgPCBoaWdoQWRkcmVzcygpKTsg
fQorICAgICAgICBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVDb3VudCgpOworCisjaWYgIUVO
QUJMRShMTElOVF9DX0xPT1ApCisgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMo
Q29uc2VydmF0aXZlUm9vdHMmKSB7IH0KKyAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVS
b290cyhDb25zZXJ2YXRpdmVSb290cyYsIEpJVFN0dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0
JikgeyB9CisgICAgICAgIHZvaWQgc2FuaXRpemVTdGFjaygpIHsgfQorICAgICAgICBzdGF0aWMg
dm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCkgeyB9CisjZWxzZQorICAgICAgICB+SlNTdGFjaygp
OworCiAgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9v
dHMmKTsKICAgICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVS
b290cyYsIEpJVFN0dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jik7CiAgICAgICAgIHZvaWQg
c2FuaXRpemVTdGFjaygpOwogCi0gICAgICAgIFJlZ2lzdGVyKiBnZXRCYXNlT2ZTdGFjaygpIGNv
bnN0CisgICAgICAgIFJlZ2lzdGVyKiBiYXNlT2ZTdGFjaygpIGNvbnN0CiAgICAgICAgIHsKICAg
ICAgICAgICAgIHJldHVybiBoaWdoQWRkcmVzcygpIC0gMTsKICAgICAgICAgfQogCiAgICAgICAg
IHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gaGlnaEFkZHJlc3MoKSAtIGxvd0FkZHJlc3Mo
KTsgfQogCi0gICAgICAgIGJvb2wgZ3JvdyhSZWdpc3RlciopOwotICAgICAgICAKLSAgICAgICAg
c3RhdGljIHNpemVfdCBjb21taXR0ZWRCeXRlQ291bnQoKTsKICAgICAgICAgc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZVRocmVhZGluZygpOwogCi0gICAgICAgIFJlZ2lzdGVyKiBnZXRUb3BPZkZyYW1l
KENhbGxGcmFtZSopOwotICAgICAgICBSZWdpc3RlciogZ2V0U3RhcnRPZkZyYW1lKENhbGxGcmFt
ZSopOwotICAgICAgICBSZWdpc3RlciogZ2V0VG9wT2ZTdGFjaygpOwotCi0gICAgICAgIGJvb2wg
ZW50cnlDaGVjayhjbGFzcyBDb2RlQmxvY2sqLCBpbnQpOworICAgICAgICB2b2lkIHNldFJlc2Vy
dmVkWm9uZVNpemUoc2l6ZV90KTsKIAotICAgICAgICBDYWxsRnJhbWUqIHB1c2hGcmFtZShjbGFz
cyBDb2RlQmxvY2sqLCBKU1Njb3BlKiwgaW50IGFyZ3NDb3VudCwgSlNPYmplY3QqIGNhbGxlZSk7
Ci0KLSAgICAgICAgdm9pZCBwb3BGcmFtZShDYWxsRnJhbWUqKTsKLQotICAgICAgICBib29sIGNv
bnRhaW5zQWRkcmVzcyhSZWdpc3RlciogYWRkcmVzcykgeyByZXR1cm4gKGxvd0FkZHJlc3MoKSA8
PSBhZGRyZXNzICYmIGFkZHJlc3MgPD0gaGlnaEFkZHJlc3MoKSk7IH0KLQotICAgICAgICB2b2lk
IGVuYWJsZUVycm9yU3RhY2tSZXNlcnZlKCk7Ci0gICAgICAgIHZvaWQgZGlzYWJsZUVycm9yU3Rh
Y2tSZXNlcnZlKCk7Ci0KLSNpZiBFTkFCTEUoREVCVUdfSlNTVEFDSykKLSAgICAgICAgdm9pZCBp
bnN0YWxsRmVuY2UoQ2FsbEZyYW1lKiwgY29uc3QgY2hhciAqZnVuY3Rpb24gPSAiIiwgaW50IGxp
bmVObyA9IDApOwotICAgICAgICB2b2lkIHZhbGlkYXRlRmVuY2UoQ2FsbEZyYW1lKiwgY29uc3Qg
Y2hhciAqZnVuY3Rpb24gPSAiIiwgaW50IGxpbmVObyA9IDApOwotICAgICAgICBzdGF0aWMgY29u
c3QgaW50IEZlbmNlU2l6ZSA9IDQ7Ci0jZWxzZSAvLyAhRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0g
ICAgICAgIHZvaWQgaW5zdGFsbEZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIqID0gIiIsIGlu
dCA9IDApIHsgfQotICAgICAgICB2b2lkIHZhbGlkYXRlRmVuY2UoQ2FsbEZyYW1lKiwgY29uc3Qg
Y2hhciogPSAiIiwgaW50ID0gMCkgeyB9Ci0jZW5kaWYgLy8gIUVOQUJMRShERUJVR19KU1NUQUNL
KQorICAgICAgICBpbmxpbmUgUmVnaXN0ZXIqIHRvcE9mU3RhY2soKTsKKyNlbmRpZiAvLyBFTkFC
TEUoTExJTlRfQ19MT09QKQogCiAgICAgcHJpdmF0ZToKKworI2lmIEVOQUJMRShMTElOVF9DX0xP
T1ApCiAgICAgICAgIFJlZ2lzdGVyKiBsb3dBZGRyZXNzKCkgY29uc3QKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIG1fZW5kOworICAgICAgICAgICAgcmV0dXJuIG1fZW5kICsgMTsKICAg
ICAgICAgfQogCiAgICAgICAgIFJlZ2lzdGVyKiBoaWdoQWRkcmVzcygpIGNvbnN0CiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHN0
YXRpY19jYXN0PGNoYXIqPihtX3Jlc2VydmF0aW9uLmJhc2UoKSkgKyBtX3Jlc2VydmF0aW9uLnNp
emUoKSk7CiAgICAgICAgIH0KKyNlbHNlCisgICAgICAgIFJlZ2lzdGVyKiBsb3dBZGRyZXNzKCkg
Y29uc3Q7CisgICAgICAgIFJlZ2lzdGVyKiBoaWdoQWRkcmVzcygpIGNvbnN0OworI2VuZGlmIC8v
IEVOQUJMRShMTElOVF9DX0xPT1ApCiAKLSAgICAgICAgUmVnaXN0ZXIqIHJlc2VydmF0aW9uRW5k
KCkgY29uc3QKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgICAgICBpbmxpbmUgUmVnaXN0
ZXIqIHRvcE9mRnJhbWVGb3IoQ2FsbEZyYW1lKik7CisKKyAgICAgICAgUmVnaXN0ZXIqIHJlc2Vy
dmF0aW9uVG9wKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgY2hhciogcmVzZXJ2YXRp
b25FbmQgPSBzdGF0aWNfY2FzdDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpOwotICAgICAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4ocmVzZXJ2YXRpb25F
bmQpOworICAgICAgICAgICAgY2hhciogcmVzZXJ2YXRpb25Ub3AgPSBzdGF0aWNfY2FzdDxjaGFy
Kj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpOworICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3RfcHRyPFJlZ2lzdGVyKj4ocmVzZXJ2YXRpb25Ub3ApOwogICAgICAgICB9CiAKLSNpZiBF
TkFCTEUoREVCVUdfSlNTVEFDSykKLSAgICAgICAgc3RhdGljIEpTVmFsdWUgZ2VuZXJhdGVGZW5j
ZVZhbHVlKHNpemVfdCBhcmdJbmRleCk7Ci0gICAgICAgIHZvaWQgaW5zdGFsbFRyYXBzQWZ0ZXJG
cmFtZShDYWxsRnJhbWUqKTsKLSNlbHNlCi0gICAgICAgIHZvaWQgaW5zdGFsbFRyYXBzQWZ0ZXJG
cmFtZShDYWxsRnJhbWUqKSB7IH0KLSNlbmRpZgotCi0gICAgICAgIGJvb2wgZ3Jvd1Nsb3dDYXNl
KFJlZ2lzdGVyKik7Ci0gICAgICAgIHZvaWQgc2hyaW5rKFJlZ2lzdGVyKik7CisgICAgICAgIGJv
b2wgZ3JvdyhSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CisgICAgICAgIGJvb2wgZ3Jvd1Nsb3dD
YXNlKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsKKyAgICAgICAgdm9pZCBzaHJpbmsoUmVnaXN0
ZXIqIG5ld1RvcE9mU3RhY2spOwogICAgICAgICB2b2lkIHJlbGVhc2VFeGNlc3NDYXBhY2l0eSgp
OwogICAgICAgICB2b2lkIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGxvbmcpOwogCi0gICAgICAg
IHZvaWQgdXBkYXRlU3RhY2tMaW1pdChSZWdpc3RlciogbmV3RW5kKTsKKyAgICAgICAgdm9pZCBz
ZXRTdGFja0xpbWl0KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsKKyNlbmRpZiAvLyBFTkFCTEUo
TExJTlRfQ19MT09QKQogCiAgICAgICAgIFZNJiBtX3ZtOworICAgICAgICBDYWxsRnJhbWUqJiBt
X3RvcENhbGxGcmFtZTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICAgICBSZWdpc3Rl
ciogbV9lbmQ7Ci0gICAgICAgIFJlZ2lzdGVyKiBtX2NvbW1pdEVuZDsKLSAgICAgICAgUmVnaXN0
ZXIqIG1fdXNlYWJsZUVuZDsKKyAgICAgICAgUmVnaXN0ZXIqIG1fY29tbWl0VG9wOwogICAgICAg
ICBQYWdlUmVzZXJ2YXRpb24gbV9yZXNlcnZhdGlvbjsKLSAgICAgICAgQ2FsbEZyYW1lKiYgbV90
b3BDYWxsRnJhbWU7CiAgICAgICAgIFJlZ2lzdGVyKiBtX2xhc3RTdGFja1RvcDsKKyAgICAgICAg
cHRyZGlmZl90IG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzOworI2VuZGlmIC8vIEVOQUJM
RShMTElOVF9DX0xPT1ApCiAKICAgICAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJh
Y3RvcjsKICAgICB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pT
U3RhY2tJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0pTU3RhY2tJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMywyNjIgKzMzLDY1IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1pbmxpbmUg
UmVnaXN0ZXIqIEpTU3RhY2s6OmdldFRvcE9mRnJhbWUoQ2FsbEZyYW1lKiBmcmFtZSkKK2lubGlu
ZSBib29sIEpTU3RhY2s6OmVuc3VyZUNhcGFjaXR5Rm9yKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNr
KQogewotICAgIGlmIChVTkxJS0VMWSghZnJhbWUpKQotICAgICAgICByZXR1cm4gZ2V0QmFzZU9m
U3RhY2soKTsKLSAgICByZXR1cm4gZnJhbWUtPmZyYW1lRXh0ZW50KCk7Ci19Ci0KLWlubGluZSBS
ZWdpc3RlciogSlNTdGFjazo6Z2V0VG9wT2ZTdGFjaygpCi17Ci0gICAgcmV0dXJuIGdldFRvcE9m
RnJhbWUobV90b3BDYWxsRnJhbWUpOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgcmV0
dXJuIGdyb3cobmV3VG9wT2ZTdGFjayk7CisjZWxzZQorICAgIEFTU0VSVCh3dGZUaHJlYWREYXRh
KCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKKyAgICByZXR1cm4gbmV3VG9wT2ZTdGFj
ayA+PSBtX3ZtLnN0YWNrTGltaXQoKTsKKyNlbmRpZgogfQogCi1pbmxpbmUgUmVnaXN0ZXIqIEpT
U3RhY2s6OmdldFN0YXJ0T2ZGcmFtZShDYWxsRnJhbWUqIGZyYW1lKQotewotICAgIENhbGxGcmFt
ZSogY2FsbGVyRnJhbWUgPSBmcmFtZS0+Y2FsbGVyRnJhbWVTa2lwcGluZ1ZNRW50cnlTZW50aW5l
bCgpOwotICAgIHJldHVybiBnZXRUb3BPZkZyYW1lKGNhbGxlckZyYW1lKTsKLX0KKyNpZiBFTkFC
TEUoTExJTlRfQ19MT09QKQogCi1pbmxpbmUgYm9vbCBKU1N0YWNrOjplbnRyeUNoZWNrKGNsYXNz
IENvZGVCbG9jayogY29kZUJsb2NrLCBpbnQgYXJnc0NvdW50KQoraW5saW5lIFJlZ2lzdGVyKiBK
U1N0YWNrOjp0b3BPZkZyYW1lRm9yKENhbGxGcmFtZSogZnJhbWUpCiB7Ci0gICAgUmVnaXN0ZXIq
IG9sZEVuZCA9IGdldFRvcE9mU3RhY2soKTsKLQotICAgIC8vIEVuc3VyZSB0aGF0IHdlIGhhdmUg
ZW5vdWdoIHNwYWNlIGZvciB0aGUgcGFyYW1ldGVyczoKLSAgICBzaXplX3QgcGFkZGVkQXJnc0Nv
dW50ID0gYXJnc0NvdW50OwotICAgIGlmIChjb2RlQmxvY2spIHsKLSAgICAgICAgc2l6ZV90IG51
bVBhcmFtZXRlcnMgPSBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKTsKLSAgICAgICAgaWYgKHBh
ZGRlZEFyZ3NDb3VudCA8IG51bVBhcmFtZXRlcnMpCi0gICAgICAgICAgICBwYWRkZWRBcmdzQ291
bnQgPSBudW1QYXJhbWV0ZXJzOwotICAgIH0KLQotICAgIFJlZ2lzdGVyKiBuZXdDYWxsRnJhbWVT
bG90ID0gb2xkRW5kIC0gcGFkZGVkQXJnc0NvdW50IC0gKDIgKiBKU1N0YWNrOjpDYWxsRnJhbWVI
ZWFkZXJTaXplKSArIDE7Ci0KLSNpZiBFTkFCTEUoREVCVUdfSlNTVEFDSykKLSAgICBuZXdDYWxs
RnJhbWVTbG90IC09IEpTU3RhY2s6OkZlbmNlU2l6ZTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09Q
KQorICAgIGlmIChVTkxJS0VMWSghZnJhbWUpKQorICAgICAgICByZXR1cm4gYmFzZU9mU3RhY2so
KTsKICNlbmRpZgotCi0gICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG5ld0NhbGxGcmFtZVNsb3Q7Ci0g
ICAgaWYgKCEhY29kZUJsb2NrKQotICAgICAgICBuZXdFbmQgKz0gdmlydHVhbFJlZ2lzdGVyRm9y
TG9jYWwoY29kZUJsb2NrLT5mcmFtZVJlZ2lzdGVyQ291bnQoKSkub2Zmc2V0KCk7Ci0KLSAgICAv
LyBFbnN1cmUgdGhhdCB3ZSBoYXZlIHRoZSBuZWVkZWQgc3RhY2sgY2FwYWNpdHkgdG8gcHVzaCB0
aGUgbmV3IGZyYW1lOgotICAgIGlmICghZ3JvdyhuZXdFbmQpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZnJhbWUtPnRvcE9mRnJhbWUoKSAt
IDE7CiB9CiAKLWlubGluZSBDYWxsRnJhbWUqIEpTU3RhY2s6OnB1c2hGcmFtZShjbGFzcyBDb2Rl
QmxvY2sqIGNvZGVCbG9jaywgSlNTY29wZSogc2NvcGUsIGludCBhcmdzQ291bnQsIEpTT2JqZWN0
KiBjYWxsZWUpCitpbmxpbmUgUmVnaXN0ZXIqIEpTU3RhY2s6OnRvcE9mU3RhY2soKQogewotICAg
IEFTU0VSVCghIXNjb3BlKTsKLSAgICBSZWdpc3Rlciogb2xkRW5kID0gZ2V0VG9wT2ZTdGFjaygp
OwotCi0gICAgLy8gRW5zdXJlIHRoYXQgd2UgaGF2ZSBlbm91Z2ggc3BhY2UgZm9yIHRoZSBwYXJh
bWV0ZXJzOgotICAgIHNpemVfdCBwYWRkZWRBcmdzQ291bnQgPSBhcmdzQ291bnQ7Ci0gICAgaWYg
KGNvZGVCbG9jaykgewotICAgICAgICBzaXplX3QgbnVtUGFyYW1ldGVycyA9IGNvZGVCbG9jay0+
bnVtUGFyYW1ldGVycygpOwotICAgICAgICBpZiAocGFkZGVkQXJnc0NvdW50IDwgbnVtUGFyYW1l
dGVycykKLSAgICAgICAgICAgIHBhZGRlZEFyZ3NDb3VudCA9IG51bVBhcmFtZXRlcnM7Ci0gICAg
fQotCi0gICAgUmVnaXN0ZXIqIG5ld0NhbGxGcmFtZVNsb3QgPSBvbGRFbmQgLSBwYWRkZWRBcmdz
Q291bnQgLSAoMiAqIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpICsgMTsKLQotI2lmIEVO
QUJMRShERUJVR19KU1NUQUNLKQotICAgIG5ld0NhbGxGcmFtZVNsb3QgLT0gSlNTdGFjazo6RmVu
Y2VTaXplOwotI2VuZGlmCi0KLSAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3Q2FsbEZyYW1lU2xv
dDsKLSAgICBpZiAoISFjb2RlQmxvY2spCi0gICAgICAgIG5ld0VuZCArPSB2aXJ0dWFsUmVnaXN0
ZXJGb3JMb2NhbChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKTsKLQot
ICAgIC8vIEVuc3VyZSB0aGF0IHdlIGhhdmUgdGhlIG5lZWRlZCBzdGFjayBjYXBhY2l0eSB0byBw
dXNoIHRoZSBuZXcgZnJhbWU6Ci0gICAgaWYgKCFncm93KG5ld0VuZCkpCi0gICAgICAgIHJldHVy
biAwOwotCi0gICAgLy8gQ29tcHV0ZSB0aGUgYWRkcmVzcyBvZiB0aGUgbmV3IFZNIHNlbnRpbmVs
IGZyYW1lIGZvciB0aGlzIGludm9jYXRpb246Ci0gICAgQ2FsbEZyYW1lKiBuZXdWTUVudHJ5U2Vu
dGluZWxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKG5ld0NhbGxGcmFtZVNsb3QgKyBwYWRkZWRB
cmdzQ291bnQgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKTsKLSAgICBBU1NFUlQoISFu
ZXdWTUVudHJ5U2VudGluZWxGcmFtZSk7Ci0KLSAgICAvLyBDb21wdXRlIHRoZSBhZGRyZXNzIG9m
IHRoZSBuZXcgZnJhbWUgZm9yIHRoaXMgaW52b2NhdGlvbjoKLSAgICBDYWxsRnJhbWUqIG5ld0Nh
bGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKG5ld0NhbGxGcmFtZVNsb3QpOwotICAgIEFTU0VS
VCghIW5ld0NhbGxGcmFtZSk7Ci0KLSAgICAvLyBUaGUgY2FsbGVyIGZyYW1lIHNob3VsZCBhbHdh
eXMgYmUgdGhlIHJlYWwgcHJldmlvdXMgZnJhbWUgb24gdGhlIHN0YWNrLAotICAgIC8vIGFuZCBu
b3QgYSBwb3RlbnRpYWwgR2xvYmFsRXhlYyB0aGF0IHdhcyBwYXNzZWQgaW4uIFBvaW50IGNhbGxl
ckZyYW1lIHRvCi0gICAgLy8gdGhlIHRvcCBmcmFtZSBvbiB0aGUgc3RhY2suCi0gICAgQ2FsbEZy
YW1lKiBjYWxsZXJGcmFtZSA9IG1fdG9wQ2FsbEZyYW1lOwotCi0gICAgLy8gSW5pdGlhbGl6ZSB0
aGUgVk0gc2VudGluZWwgZnJhbWUgaGVhZGVyOgotICAgIG5ld1ZNRW50cnlTZW50aW5lbEZyYW1l
LT5pbml0aWFsaXplVk1FbnRyeVNlbnRpbmVsRnJhbWUoY2FsbGVyRnJhbWUpOwotCi0gICAgLy8g
SW5pdGlhbGl6ZSB0aGUgY2FsbGVlIGZyYW1lIGhlYWRlcjoKLSAgICBuZXdDYWxsRnJhbWUtPmlu
aXQoY29kZUJsb2NrLCAwLCBzY29wZSwgbmV3Vk1FbnRyeVNlbnRpbmVsRnJhbWUsIGFyZ3NDb3Vu
dCwgY2FsbGVlKTsKLQotICAgIEFTU0VSVCghIW5ld0NhbGxGcmFtZS0+c2NvcGUoKSk7Ci0KLSAg
ICAvLyBQYWQgYWRkaXRpb25hbCBhcmdzIGlmIG5lZWRlZDoKLSAgICAvLyBOb3RlOiB3ZSBuZWVk
IHRvIHN1YnRyYWN0IDEgZnJvbSBhcmdzQ291bnQgYW5kIHBhZGRlZEFyZ3NDb3VudCB0bwotICAg
IC8vIGV4Y2x1ZGUgdGhlIHRoaXMgcG9pbnRlci4KLSAgICBmb3IgKHNpemVfdCBpID0gYXJnc0Nv
dW50LTE7IGkgPCBwYWRkZWRBcmdzQ291bnQtMTsgKytpKQotICAgICAgICBuZXdDYWxsRnJhbWUt
PnNldEFyZ3VtZW50KGksIGpzVW5kZWZpbmVkKCkpOwotCi0gICAgaW5zdGFsbEZlbmNlKG5ld0Nh
bGxGcmFtZSwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7Ci0gICAgdmFsaWRhdGVGZW5jZShuZXdD
YWxsRnJhbWUsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwotICAgIGluc3RhbGxUcmFwc0FmdGVy
RnJhbWUobmV3Q2FsbEZyYW1lKTsKLQotICAgIC8vIFB1c2ggdGhlIG5ldyBmcmFtZToKLSAgICBt
X3RvcENhbGxGcmFtZSA9IG5ld0NhbGxGcmFtZTsKLQotICAgIHJldHVybiBuZXdDYWxsRnJhbWU7
Ci19Ci0KLWlubGluZSB2b2lkIEpTU3RhY2s6OnBvcEZyYW1lKENhbGxGcmFtZSogZnJhbWUpCi17
Ci0gICAgdmFsaWRhdGVGZW5jZShmcmFtZSwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7Ci0KLSAg
ICAvLyBQb3Agb2ZmIHRoZSBjYWxsZWUgZnJhbWUgYW5kIHRoZSBzZW50aW5lbCBmcmFtZS4KLSAg
ICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gZnJhbWUtPmNhbGxlckZyYW1lKCktPnZtRW50cnlT
ZW50aW5lbENhbGxlckZyYW1lKCk7Ci0KLSAgICAvLyBQb3AgdG8gdGhlIGNhbGxlcjoKLSAgICBt
X3RvcENhbGxGcmFtZSA9IGNhbGxlckZyYW1lOwotCi0gICAgLy8gSWYgd2UgYXJlIHBvcHBpbmcg
dGhlIHZlcnkgZmlyc3QgZnJhbWUgZnJvbSB0aGUgc3RhY2sgaS5lLiBubyBtb3JlCi0gICAgLy8g
ZnJhbWVzIGJlZm9yZSB0aGlzLCB0aGVuIHdlIGNhbiBub3cgc2FmZWx5IHNocmluayB0aGUgc3Rh
Y2suIEluCi0gICAgLy8gdGhpcyBjYXNlLCB3ZSdyZSBzaHJpbmtpbmcgYWxsIHRoZSB3YXkgdG8g
dGhlIGJlZ2lubmluZyBzaW5jZSB0aGVyZQotICAgIC8vIGFyZSBubyBtb3JlIGZyYW1lcyBvbiB0
aGUgc3RhY2suCi0gICAgaWYgKCFjYWxsZXJGcmFtZSkKLSAgICAgICAgc2hyaW5rKGdldEJhc2VP
ZlN0YWNrKCkpOwotCi0gICAgaW5zdGFsbFRyYXBzQWZ0ZXJGcmFtZShjYWxsZXJGcmFtZSk7Cisg
ICAgcmV0dXJuIHRvcE9mRnJhbWVGb3IobV90b3BDYWxsRnJhbWUpOwogfQogCi1pbmxpbmUgdm9p
ZCBKU1N0YWNrOjpzaHJpbmsoUmVnaXN0ZXIqIG5ld0VuZCkKK2lubGluZSB2b2lkIEpTU3RhY2s6
OnNocmluayhSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKIHsKKyAgICBSZWdpc3RlciogbmV3RW5k
ID0gbmV3VG9wT2ZTdGFjayAtIDE7CiAgICAgaWYgKG5ld0VuZCA+PSBtX2VuZCkKICAgICAgICAg
cmV0dXJuOwotICAgIHVwZGF0ZVN0YWNrTGltaXQobmV3RW5kKTsKLSAgICBpZiAobV9lbmQgPT0g
Z2V0QmFzZU9mU3RhY2soKSAmJiAobV9jb21taXRFbmQgLSBnZXRCYXNlT2ZTdGFjaygpKSA+PSBt
YXhFeGNlc3NDYXBhY2l0eSkKKyAgICBzZXRTdGFja0xpbWl0KG5ld1RvcE9mU3RhY2spOworICAg
IC8vIE5vdGU6IENsYW5nIGNvbXBsYWlucyBvZiBhbiB1bnJlc29sdmVkIGxpbmthZ2UgdG8gbWF4
RXhjZXNzQ2FwYWNpdHkgaWYKKyAgICAvLyBpbnZva2Ugc3RkOjptYXgoKSB3aXRoIGl0IGFzIGFu
IGFyZ3VtZW50LiBUbyB3b3JrIGFyb3VuZCB0aGlzLCB3ZSBmaXJzdAorICAgIC8vIGFzc2lnbiB0
aGUgY29uc3RhbnQgdG8gYSBsb2NhbCB2YXJpYWJsZSwgYW5kIHVzZSB0aGUgbG9jYWwgaW5zdGVh
ZC4KKyAgICBwdHJkaWZmX3QgbWF4RXhjZXNzQ2FwYWNpdHkgPSBKU1N0YWNrOjptYXhFeGNlc3ND
YXBhY2l0eTsKKyAgICBwdHJkaWZmX3QgbWF4RXhjZXNzSW5SZWdpc3RlcnMgPSBzdGQ6Om1heCht
YXhFeGNlc3NDYXBhY2l0eSwgbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnMpOworICAgIGlm
IChtX2VuZCA9PSBiYXNlT2ZTdGFjaygpICYmIChoaWdoQWRkcmVzcygpIC0gbV9jb21taXRUb3Ap
ID49IG1heEV4Y2Vzc0luUmVnaXN0ZXJzKQogICAgICAgICByZWxlYXNlRXhjZXNzQ2FwYWNpdHko
KTsKIH0KIAotaW5saW5lIGJvb2wgSlNTdGFjazo6Z3JvdyhSZWdpc3RlciogbmV3RW5kKQoraW5s
aW5lIGJvb2wgSlNTdGFjazo6Z3JvdyhSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKIHsKKyAgICBS
ZWdpc3RlciogbmV3RW5kID0gbmV3VG9wT2ZTdGFjayAtIDE7CiAgICAgaWYgKG5ld0VuZCA+PSBt
X2VuZCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGdyb3dTbG93Q2FzZShuZXdF
bmQpOworICAgIHJldHVybiBncm93U2xvd0Nhc2UobmV3VG9wT2ZTdGFjayk7CiB9CiAKLWlubGlu
ZSB2b2lkIEpTU3RhY2s6OnVwZGF0ZVN0YWNrTGltaXQoUmVnaXN0ZXIqIG5ld0VuZCkKK2lubGlu
ZSB2b2lkIEpTU3RhY2s6OnNldFN0YWNrTGltaXQoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7
CisgICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG5ld1RvcE9mU3RhY2sgLSAxOwogICAgIG1fZW5kID0g
bmV3RW5kOwotI2lmIFVTRShTRVBBUkFURV9DX0FORF9KU19TVEFDSykKLSAgICBtX3ZtLnNldEpT
U3RhY2tMaW1pdChuZXdFbmQpOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgbV92bS5z
ZXRKU1N0YWNrTGltaXQobmV3VG9wT2ZTdGFjayk7CiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShE
RUJVR19KU1NUQUNLKQotaW5saW5lIEpTVmFsdWUgSlNTdGFjazo6Z2VuZXJhdGVGZW5jZVZhbHVl
KHNpemVfdCBhcmdJbmRleCkKLXsKLSAgICB1bnNpZ25lZCBmZW5jZUJpdHMgPSAweGZhY2ViYWQw
IHwgKChhcmdJbmRleCsxKSAmIDB4Zik7Ci0gICAgSlNWYWx1ZSBmZW5jZVZhbHVlID0gSlNWYWx1
ZShmZW5jZUJpdHMpOwotICAgIHJldHVybiBmZW5jZVZhbHVlOwotfQotCi0vLyBUaGUgSlNTdGFj
ayBmZW5jZXMgbWVjaGFuaXNtIHdvcmtzIGFzIGZvbGxvd3M6Ci0vLyAxLiBBIGZlbmNlIGlzIGEg
bnVtYmVyIChKU1N0YWNrOjpGZW5jZVNpemUpIG9mIEpTVmFsdWVzIHRoYXQgYXJlIGluaXRpYWxp
emVkCi0vLyAgICB3aXRoIHZhbHVlcyBnZW5lcmF0ZWQgYnkgSlNTdGFjazo6Z2VuZXJhdGVGZW5j
ZVZhbHVlKCkuCi0vLyAyLiBXaGVuIHB1c2hGcmFtZSgpIGlzIGNhbGxlZCwgdGhlIGZlbmNlIGlz
IGluc3RhbGxlZCBhZnRlciB0aGUgbWF4IGV4dGVudAotLy8gICAgb2YgdGhlIHByZXZpb3VzIHRv
cENhbGxGcmFtZSBhbmQgdGhlIGxhc3QgYXJnIG9mIHRoZSBuZXcgZnJhbWU6Ci0vLwotLy8gICAg
ICAgICAgICAgICAgICAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCBGcmFtZSBIZWFkZXIgb2YgcHJldmlv
dXMgZnJhbWUgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICB0b3BDYWxsRnJhbWUgLS0+IHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAg
fCBMb2NhbHMgb2YgcHJldmlvdXMgZnJhbWUgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAg
ICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAg
ICAgICAgICAgICAgICAgIHwgKioqIHRoZSBGZW5jZSAqKiogICAgICAgICAgICAgICAgICAgIHwK
LS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8IFZNIGVudHJ5IHNlbnRpbmVsIGZyYW1l
IGhlYWRlciAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCBBcmdzIG9m
IG5ldyBmcmFtZSAgICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAgICAg
ICAgICAgIHwgRnJhbWUgSGVhZGVyIG9mIG5ldyBmcmFtZSAgICAgICAgICAgIHwKLS8vICAgICAg
ICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAot
Ly8gICAgICAgICAgIGZyYW1lIC0tPiB8IExvY2FscyBvZiBuZXcgZnJhbWUgICAgICAgICAgICAg
ICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwKLS8vCi0vLyAzLiBJbiBwb3BGcmFtZSgpIGFuZCBlbHNld2hlcmUsIHdl
IGNhbiBjYWxsIEpTU3RhY2s6OnZhbGlkYXRlRmVuY2UoKSB0bwotLy8gICAgYXNzZXJ0IHRoYXQg
dGhlIGZlbmNlIGNvbnRhaW5zIHRoZSB2YWx1ZXMgd2UgZXhwZWN0LgotCi1pbmxpbmUgdm9pZCBK
U1N0YWNrOjppbnN0YWxsRmVuY2UoQ2FsbEZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciAqZnVuY3Rp
b24sIGludCBsaW5lTm8pCi17Ci0gICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uKTsKLSAgICBVTlVT
RURfUEFSQU0obGluZU5vKTsKLSAgICBSZWdpc3Rlciogc3RhcnRPZkZyYW1lID0gZ2V0U3RhcnRP
ZkZyYW1lKGZyYW1lKTsKLQotICAgIC8vIFRoZSBsYXN0IGFyZ0luZGV4IGlzIGF0OgotICAgIHNp
emVfdCBtYXhJbmRleCA9IGZyYW1lLT5hcmdJbmRleEZvclJlZ2lzdGVyKHN0YXJ0T2ZGcmFtZSkg
KyAxOwotICAgIHNpemVfdCBzdGFydEluZGV4ID0gbWF4SW5kZXggLSBGZW5jZVNpemU7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IHN0YXJ0SW5kZXg7IGkgPCBtYXhJbmRleDsgKytpKSB7Ci0gICAgICAg
IEpTVmFsdWUgZmVuY2VWYWx1ZSA9IGdlbmVyYXRlRmVuY2VWYWx1ZShpKTsKLSAgICAgICAgZnJh
bWUtPnNldEFyZ3VtZW50KGksIGZlbmNlVmFsdWUpOwotICAgIH0KLX0KLQotaW5saW5lIHZvaWQg
SlNTdGFjazo6dmFsaWRhdGVGZW5jZShDYWxsRnJhbWUqIGZyYW1lLCBjb25zdCBjaGFyICpmdW5j
dGlvbiwgaW50IGxpbmVObykKLXsKLSAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb24pOwotICAgIFVO
VVNFRF9QQVJBTShsaW5lTm8pOwotICAgIEFTU0VSVCghIWZyYW1lLT5zY29wZSgpKTsKLSAgICBS
ZWdpc3Rlciogc3RhcnRPZkZyYW1lID0gZ2V0U3RhcnRPZkZyYW1lKGZyYW1lKTsKLSAgICBzaXpl
X3QgbWF4SW5kZXggPSBmcmFtZS0+YXJnSW5kZXhGb3JSZWdpc3RlcihzdGFydE9mRnJhbWUpICsg
MTsKLSAgICBzaXplX3Qgc3RhcnRJbmRleCA9IG1heEluZGV4IC0gRmVuY2VTaXplOwotICAgIGZv
ciAoc2l6ZV90IGkgPSBzdGFydEluZGV4OyBpIDwgbWF4SW5kZXg7ICsraSkgewotICAgICAgICBK
U1ZhbHVlIGZlbmNlVmFsdWUgPSBnZW5lcmF0ZUZlbmNlVmFsdWUoaSk7Ci0gICAgICAgIEpTVmFs
dWUgYWN0dWFsVmFsdWUgPSBmcmFtZS0+Z2V0QXJndW1lbnRVbnNhZmUoaSk7Ci0gICAgICAgIEFT
U0VSVChmZW5jZVZhbHVlID09IGFjdHVhbFZhbHVlKTsKLSAgICB9Ci19Ci0KLS8vIFdoZW4gZGVi
dWdnaW5nIHRoZSBKU1N0YWNrLCB3ZSBpbnN0YWxsIGJhZCB2YWx1ZXMgYWZ0ZXIgdGhlIGV4dGVu
dCBvZiB0aGUKLS8vIHRvcENhbGxGcmFtZSBhdCB0aGUgZW5kIG9mIHB1c2hGcmFtZSgpIGFuZCBw
b3BGcmFtZSgpLiBUaGUgaW50ZW50aW9uIGlzCi0vLyB0byB0cmlnZ2VyIGNyYXNoZXMgaW4gdGhl
IGV2ZW50IHRoYXQgbWVtb3J5IGluIHRoaXMgc3VwcG9zZWRseSB1bnVzZWQKLS8vIHJlZ2lvbiBp
cyByZWFkIGFuZCBjb25zdW1lZCB3aXRob3V0IHByb3BlciBpbml0aWFsaXphdGlvbi4gQWZ0ZXIg
dGhlIHRyYXAKLS8vIHdvcmRzIGFyZSBpbnN0YWxsZWQsIHRoZSBzdGFjayBsb29rcyBsaWtlIHRo
aXM6Ci0vLwotLy8gICAgICAgICAgICAgICAgICAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAg
ICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLXwKLS8vICAgICAgICAgICAgICAgICAgICAgfCBGcmFtZSBIZWFkZXIgb2YgZnJhbWUgICAg
ICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS18Ci0vLyAgICB0b3BDYWxsRnJhbWUgLS0+IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwKLS8vICAgICAgICAgICAgICAgICAgICAgfCBMb2NhbHMgb2YgZnJhbWUgICAgICAgICAgICAg
fAotLy8gICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18
Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgKioqIFRyYXAgd29yZHMgKioqICAgICAgICAgIHwK
LS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAot
Ly8gICAgICAgICAgICAgICAgICAgICB8IFVudXNlZCBzcGFjZSAuLi4gICAgICAgICAgICB8Ci0v
LyAgICAgICAgICAgICAgICAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQot
aW5saW5lIHZvaWQgSlNTdGFjazo6aW5zdGFsbFRyYXBzQWZ0ZXJGcmFtZShDYWxsRnJhbWUqIGZy
YW1lKQotewotICAgIFJlZ2lzdGVyKiB0b3BPZkZyYW1lID0gZ2V0VG9wT2ZGcmFtZShmcmFtZSk7
Ci0gICAgY29uc3QgaW50IHNpemVPZlRyYXAgPSA2NDsKLSAgICBpbnQzMl90KiBzdGFydE9mVHJh
cCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdCo+KHRvcE9mRnJhbWUpOwotICAgIGludDMyX3Qq
IGVuZE9mVHJhcCA9IHN0YXJ0T2ZUcmFwIC0gc2l6ZU9mVHJhcDsKLSAgICBpbnQzMl90KiBlbmRP
ZkNvbW1pdGVkTWVtb3J5ID0gcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4obV9jb21taXRFbmQp
OwotCi0gICAgLy8gTWFrZSBzdXJlIHdlJ3JlIG5vdCBleGNlZWRpbmcgdGhlIGFtb3VudCBvZiBh
dmFpbGFibGUgbWVtb3J5IHRvIHdyaXRlIHRvOgotICAgIGlmIChlbmRPZlRyYXAgPCBlbmRPZkNv
bW1pdGVkTWVtb3J5KQotICAgICAgICBlbmRPZlRyYXAgPSBlbmRPZkNvbW1pdGVkTWVtb3J5Owot
Ci0gICAgLy8gTGF5IHRoZSB0cmFwczoKLSAgICBpbnQzMl90KiBwID0gc3RhcnRPZlRyYXA7Ci0g
ICAgd2hpbGUgKHAgPiBlbmRPZlRyYXApCi0gICAgICAgICpwLS0gPSAweGFiYWRjYWZlOyAvLyBB
IGJhZCB3b3JkIHRvIHRyaWdnZXIgYSBjcmFzaCBpZiBkZXJlZidlZC4KLX0KLSNlbmRpZiAvLyBF
TkFCTEUoREVCVUdfSlNTVEFDSykKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09QKQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIK
IAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCkBAIC00Myw3ICs0NCw5IEBAIHZvaWQgUHJvdG9DYWxsRnJhbWU6
OmluaXQoQ29kZUJsb2NrKiBjb2QKICAgICAgICAgaWYgKHBhZGRlZEFyZ3NDb3VudCA8IG51bVBh
cmFtZXRlcnMpCiAgICAgICAgICAgICBwYWRkZWRBcmdzQ291bnQgPSBudW1QYXJhbWV0ZXJzOwog
ICAgIH0KLSAgICB0aGlzLT5zZXRQYWRkZWRBcmdzQ291bnQocGFkZGVkQXJnc0NvdW50KTsKKyAg
ICAvLyBSb3VuZCB1cCBwYWRkZWRBcmdzQ291bnQgdG8ga2VlcCB0aGUgc3RhY2sgZnJhbWUgc2l6
ZSBhbGlnbmVkLgorICAgIHBhZGRlZEFyZ3NDb3VudCA9IHJvdW5kQXJndW1lbnRDb3VudFRvQWxp
Z25GcmFtZShwYWRkZWRBcmdzQ291bnQpOworICAgIHRoaXMtPnNldFBhZGRlZEFyZ0NvdW50KHBh
ZGRlZEFyZ3NDb3VudCk7CiAgICAgdGhpcy0+Y2xlYXJDdXJyZW50VlBDKCk7CiAgICAgdGhpcy0+
c2V0VGhpc1ZhbHVlKHRoaXNWYWx1ZSk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJhbWUuaAkocmV2aXNpb24gMTYyOTYxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAgc3RydWN0IFByb3RvQ2FsbEZyYW1lIHsKICAg
ICBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSBjb25zdCB7IHJldHVybiBhcmdDb3Vu
dEFuZENvZGVPcmlnaW5WYWx1ZS5wYXlsb2FkKCk7IH0KICAgICBpbnQgYXJndW1lbnRDb3VudCgp
IGNvbnN0IHsgcmV0dXJuIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkgLSAxOyB9CiAgICAg
dm9pZCBzZXRBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyhpbnQgY291bnQpIHsgYXJnQ291bnRB
bmRDb2RlT3JpZ2luVmFsdWUucGF5bG9hZCgpID0gY291bnQ7IH0KLSAgICB2b2lkIHNldFBhZGRl
ZEFyZ3NDb3VudChzaXplX3QgYXJnQ291bnQpIHsgcGFkZGVkQXJnQ291bnQgPSBhcmdDb3VudDsg
fQorICAgIHZvaWQgc2V0UGFkZGVkQXJnQ291bnQoc2l6ZV90IGFyZ0NvdW50KSB7IHBhZGRlZEFy
Z0NvdW50ID0gYXJnQ291bnQ7IH0KIAogICAgIHZvaWQgY2xlYXJDdXJyZW50VlBDKCkgeyBhcmdD
b3VudEFuZENvZGVPcmlnaW5WYWx1ZS50YWcoKSA9IDA7IH0KICAgICAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVu
a3MuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCisKKyNp
ZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAiQXNzZW1ibHlIZWxwZXJzLmgiCisjaW5jbHVkZSAi
TGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCisKK25hbWVzcGFjZSBK
U0MgeworCitBcml0eUNoZWNrRmFpbFJldHVyblRodW5rczo6QXJpdHlDaGVja0ZhaWxSZXR1cm5U
aHVua3MoKQorICAgIDogbV9uZXh0U2l6ZSgwKQoreworfQorCitBcml0eUNoZWNrRmFpbFJldHVy
blRodW5rczo6fkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzKCkgeyB9CisKK0NvZGVMb2NhdGlv
bkxhYmVsKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rczo6cmV0dXJuUENzRm9yKAorICAgIFZN
JiB2bSwgdW5zaWduZWQgbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzKQoreworICAg
IEFTU0VSVChudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPj0gMSk7CisgICAgCisg
ICAgbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzID0gV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mKAorICAgICAgICBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBudW1FeHBlY3RlZEFy
Z3VtZW50c0luY2x1ZGluZ1RoaXMpOworICAgIAorICAgIHsKKyAgICAgICAgQ29uY3VycmVudEpJ
VExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgaWYgKG51bUV4cGVjdGVkQXJndW1lbnRz
SW5jbHVkaW5nVGhpcyA8IG1fbmV4dFNpemUpCisgICAgICAgICAgICByZXR1cm4gbV9yZXR1cm5Q
Q0FycmF5cy5sYXN0KCkuZ2V0KCk7CisgICAgfQorICAgIAorICAgIEFTU0VSVCghaXNDb21waWxh
dGlvblRocmVhZCgpKTsKKyAgICAKKyAgICBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1Ro
aXMgPSBzdGQ6Om1heChudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMsIG1fbmV4dFNp
emUgKiAyKTsKKyAgICAKKyAgICBBc3NlbWJseUhlbHBlcnMgaml0KCZ2bSwgMCk7CisgICAgCisg
ICAgVmVjdG9yPEFzc2VtYmx5SGVscGVyczo6TGFiZWw+IGxhYmVsczsKKyAgICAKKyAgICBmb3Ig
KHVuc2lnbmVkIHNpemUgPSBtX25leHRTaXplOyBzaXplIDw9IG51bUV4cGVjdGVkQXJndW1lbnRz
SW5jbHVkaW5nVGhpczsgc2l6ZSArPSBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSB7CisgICAg
ICAgIGxhYmVscy5hcHBlbmQoaml0LmxhYmVsKCkpOworICAgICAgICAKKyAgICAgICAgaml0Lmxv
YWQzMigKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgICAg
ICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAgICAg
ICAgIChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1Np
emUpICogc2l6ZW9mKFJlZ2lzdGVyKSArCisgICAgICAgICAgICAgICAgUGF5bG9hZE9mZnNldCks
CisgICAgICAgICAgICBHUFJJbmZvOjpyZWdUNCk7CisgICAgICAgIGppdC5hZGQzMigKKyAgICAg
ICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgICAgIEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6
ZSArIHNpemUgLSAxKSwKKyAgICAgICAgICAgIEdQUkluZm86OnJlZ1Q0LCBHUFJJbmZvOjpyZWdU
Mik7CisgICAgICAgIGppdC5sc2hpZnQzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigz
KSwgR1BSSW5mbzo6cmVnVDIpOworICAgICAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QyKTsKKyAgICAgICAgaml0LmxvYWRQ
dHIoR1BSSW5mbzo6cmVnVDIsIEdQUkluZm86OnJlZ1QyKTsKKyAgICAgICAgCisgICAgICAgIGpp
dC5hZGRQdHIoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihzaXpl
ICogc2l6ZW9mKFJlZ2lzdGVyKSksCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRodW5rcyBsaWtlIG91cnMg
d2FudCB0byB1c2UgdGhlIHJldHVybiBQQyB0byBmaWd1cmUgb3V0IHdoZXJlIHRoaW5ncworICAg
ICAgICAvLyB3ZXJlIHNhdmVkLiBTbywgd2UgcGF5IGl0IGZvcndhcmQuCisgICAgICAgIGppdC5z
dG9yZTMyKAorICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDQsCisgICAgICAgICAgICBBc3NlbWJs
eUhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFj
a1BvaW50ZXJSZWdpc3RlciwKKyAgICAgICAgICAgICAgICAoSlNTdGFjazo6QXJndW1lbnRDb3Vu
dCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSAqIHNpemVvZihSZWdpc3RlcikgKwor
ICAgICAgICAgICAgICAgIFBheWxvYWRPZmZzZXQpKTsKKyAgICAgICAgCisgICAgICAgIGppdC5q
dW1wKEdQUkluZm86OnJlZ1QyKTsKKyAgICB9CisgICAgCisgICAgTGlua0J1ZmZlciBsaW5rQnVm
ZmVyKHZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgIAorICAgIHVuc2lnbmVkIHJldHVy
blBDc1NpemUgPSBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgLyBzdGFja0FsaWdu
bWVudFJlZ2lzdGVycygpICsgMTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29kZUxvY2F0aW9uTGFi
ZWxbXT4gcmV0dXJuUENzID0KKyAgICAgICAgc3RkOjptYWtlX3VuaXF1ZTxDb2RlTG9jYXRpb25M
YWJlbFtdPihyZXR1cm5QQ3NTaXplKTsKKyAgICBmb3IgKHVuc2lnbmVkIHNpemUgPSAwOyBzaXpl
IDw9IG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpczsgc2l6ZSArPSBzdGFja0FsaWdu
bWVudFJlZ2lzdGVycygpKSB7CisgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gc2l6ZSAvIHN0YWNr
QWxpZ25tZW50UmVnaXN0ZXJzKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGluZGV4IDwgcmV0
dXJuUENzU2l6ZSk7CisgICAgICAgIGlmIChzaXplIDwgbV9uZXh0U2l6ZSkKKyAgICAgICAgICAg
IHJldHVyblBDc1tpbmRleF0gPSBtX3JldHVyblBDQXJyYXlzLmxhc3QoKVtpbmRleF07CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVyblBDc1tpbmRleF0gPSBsaW5rQnVmZmVyLmxvY2F0
aW9uT2YobGFiZWxzWyhzaXplIC0gbV9uZXh0U2l6ZSkgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVy
cygpXSk7CisgICAgfQorCisgICAgQ29kZUxvY2F0aW9uTGFiZWwqIHJlc3VsdCA9IHJldHVyblBD
cy5nZXQoKTsKKworICAgIHsKKyAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9s
b2NrKTsKKyAgICAgICAgbV9yZXR1cm5QQ0FycmF5cy5hcHBlbmQoc3RkOjptb3ZlKHJldHVyblBD
cykpOworICAgICAgICBtX3JlZnMuYXBwZW5kKEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJB
cml0eSBjaGVjayBmYWlsIHJldHVybiB0aHVua3MgZm9yIHVwIHRvIG51bUFyZ3MgPSAldSIsIG51
bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcykpKTsKKyAgICAgICAgbV9uZXh0U2l6ZSA9
IG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyArIHN0YWNrQWxpZ25tZW50UmVnaXN0
ZXJzKCk7CisgICAgfQorICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0NvZGVMb2NhdGlv
bkxhYmVsIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpyZXR1cm5QQ0ZvcihWTSYgdm0sIHVu
c2lnbmVkIHNsb3RzVG9BZGQpCit7CisgICAgcmV0dXJuIHJldHVyblBDc0Zvcih2bSwgc2xvdHNU
b0FkZClbc2xvdHNUb0FkZCAvIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCldOworfQorCit9IC8v
IG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtz
LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tG
YWlsUmV0dXJuVGh1bmtzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFyaXR5Q2hl
Y2tGYWlsUmV0dXJuVGh1bmtzX2gKKyNkZWZpbmUgQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Nf
aAorCisjaWYgRU5BQkxFKEpJVCkKKworI2luY2x1ZGUgIkNvZGVMb2NhdGlvbi5oIgorI2luY2x1
ZGUgIkNvbmN1cnJlbnRKSVRMb2NrLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFt
ZXNwYWNlIEpTQyB7CisKK2NsYXNzIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzIHsKK3B1Ymxp
YzoKKyAgICBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcygpOworICAgIH5Bcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcygpOworICAgIAorICAgIC8vIFJldHVybnMgYSBwb2ludGVyIHRvIGFuIGFy
cmF5IG9mIHJldHVybiBsYWJlbHMgaW5kZXhlZCBieSBtaXNzaW5nQXJncy4KKyAgICBDb2RlTG9j
YXRpb25MYWJlbCogcmV0dXJuUENzRm9yKFZNJiwgdW5zaWduZWQgbnVtRXhwZWN0ZWRBcmd1bWVu
dHNJbmNsdWRpbmdUaGlzKTsKKyAgICAKKyAgICBDb2RlTG9jYXRpb25MYWJlbCByZXR1cm5QQ0Zv
cihWTSYsIHVuc2lnbmVkIHNsb3RzVG9BZGQpOworICAgIAorcHJpdmF0ZToKKyAgICBWZWN0b3I8
c3RkOjp1bmlxdWVfcHRyPENvZGVMb2NhdGlvbkxhYmVsW10+PiBtX3JldHVyblBDQXJyYXlzOwor
ICAgIHVuc2lnbmVkIG1fbmV4dFNpemU7CisgICAgVmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVJl
Zj4gbV9yZWZzOworICAgIENvbmN1cnJlbnRKSVRMb2NrIG1fbG9jazsKK307CisKK30gLy8gbmFt
ZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworI2VuZGlmIC8vIEFyaXR5Q2hl
Y2tGYWlsUmV0dXJuVGh1bmtzX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAs
NiArMTEwLDE3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0NlbGwoR1AKICAg
ICBicmVha3BvaW50KCk7CiAgICAgY2hlY2tDZWxsLmxpbmsodGhpcyk7CiB9CisKK3ZvaWQgQXNz
ZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5QbGFjZSgpCit7CisgICAgSnVtcCBvayA9IGJy
YW5jaDY0KEVxdWFsLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIFRydXN0ZWRJbW02
NChUYWdUeXBlTnVtYmVyKSk7CisgICAgYnJlYWtwb2ludCgpOworICAgIG9rLmxpbmsodGhpcyk7
CisgICAgCisgICAgb2sgPSBicmFuY2g2NChFcXVhbCwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVy
LCBUcnVzdGVkSW1tNjQoVGFnTWFzaykpOworICAgIGJyZWFrcG9pbnQoKTsKKyAgICBvay5saW5r
KHRoaXMpOworfQogI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKIHZvaWQgQXNzZW1ibHlIZWxwZXJz
OjpqaXRBc3NlcnRJc0ludDMyKEdQUlJlZyBncHIpCiB7CkBAIC0xNDUsNiArMTU2LDEwIEBAIHZv
aWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0NlbGwoR1AKICAgICBicmVha3BvaW50KCk7
CiAgICAgY2hlY2tDZWxsLmxpbmsodGhpcyk7CiB9CisKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpq
aXRBc3NlcnRUYWdzSW5QbGFjZSgpCit7Cit9CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUUzMl82NCkK
IAogdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCkKQEAg
LTE2MCw2ICsxNzUsMTMgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzTnVsbChH
UAogICAgIGJyZWFrcG9pbnQoKTsKICAgICBjaGVja051bGwubGluayh0aGlzKTsKIH0KKwordm9p
ZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCkKK3sKKyAgICBK
dW1wIG9rID0gYnJhbmNoMzIoQmVsb3csIHBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3Vu
dCksIFRydXN0ZWRJbW0zMigxMDAwMDAwMCkpOworICAgIGJyZWFrcG9pbnQoKTsKKyAgICBvay5s
aW5rKHRoaXMpOworfQogI2VuZGlmIC8vICFBU1NFUlRfRElTQUJMRUQKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDggKzU4LDM2IEBAIHB1YmxpYzoKICAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsgcmV0dXJuIG1fY29kZUJsb2NrOyB9CiAgICAgVk0q
IHZtKCkgeyByZXR1cm4gbV92bTsgfQogICAgIEFzc2VtYmxlclR5cGVfVCYgYXNzZW1ibGVyKCkg
eyByZXR1cm4gbV9hc3NlbWJsZXI7IH0KLSAgICAKKworICAgIHZvaWQgY2hlY2tTdGFja1BvaW50
ZXJBbGlnbm1lbnQoKQorICAgIHsKKyAgICAgICAgLy8gVGhpcyBjaGVjayBpcyBib3RoIHVubmVl
ZGVkIGFuZCBoYXJkZXIgdG8gd3JpdGUgY29ycmVjdGx5IGZvciBBUk02NAorI2lmICFkZWZpbmVk
KE5ERUJVRykgJiYgIUNQVShBUk02NCkKKyAgICAgICAgSnVtcCBzdGFja1BvaW50ZXJBbGlnbmVk
ID0gYnJhbmNoVGVzdFB0cihaZXJvLCBzdGFja1BvaW50ZXJSZWdpc3RlciwgVHJ1c3RlZEltbTMy
KDB4ZikpOworICAgICAgICBicmVha3BvaW50KCk7CisgICAgICAgIHN0YWNrUG9pbnRlckFsaWdu
ZWQubGluayh0aGlzKTsKKyNlbmRpZgorICAgIH0KKwogI2lmIENQVShYODZfNjQpIHx8IENQVShY
ODYpCisgICAgc2l6ZV90IHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKQorICAgIHsKKyAgICAg
ICAgLy8gUHJvbG9ndWUgb25seSBzYXZlcyB0aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIKKyAgICAg
ICAgcmV0dXJuIHNpemVvZih2b2lkKik7CisgICAgfQorCisgICAgdm9pZCBlbWl0RnVuY3Rpb25Q
cm9sb2d1ZSgpCisgICAgeworICAgICAgICBwdXNoKGZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAg
ICAgICAgbW92ZShzdGFja1BvaW50ZXJSZWdpc3RlciwgZnJhbWVQb2ludGVyUmVnaXN0ZXIpOwor
ICAgIH0KKworICAgIHZvaWQgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIHsKKyAgICAgICAg
bW92ZShmcmFtZVBvaW50ZXJSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAg
ICBwb3AoZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgIH0KKwogICAgIHZvaWQgcHJlc2VydmVS
ZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUlJlZyByZWcpCiAgICAgewogICAgICAgICBwb3AocmVn
KTsKQEAgLTc3LDYgKzEwNSwyNCBAQCBwdWJsaWM6CiAjZW5kaWYgLy8gQ1BVKFg4Nl82NCkgfHwg
Q1BVKFg4NikKIAogI2lmIENQVShBUk0pIHx8IENQVShBUk02NCkKKyAgICBzaXplX3QgcHJvbG9n
dWVTdGFja1BvaW50ZXJEZWx0YSgpCisgICAgeworICAgICAgICAvLyBQcm9sb2d1ZSBzYXZlcyB0
aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5kIGxpbmtSZWdpc3RlcgorICAgICAgICByZXR1cm4g
MiAqIHNpemVvZih2b2lkKik7CisgICAgfQorCisgICAgdm9pZCBlbWl0RnVuY3Rpb25Qcm9sb2d1
ZSgpCisgICAgeworICAgICAgICBwdXNoUGFpcihmcmFtZVBvaW50ZXJSZWdpc3RlciwgbGlua1Jl
Z2lzdGVyKTsKKyAgICAgICAgbW92ZShzdGFja1BvaW50ZXJSZWdpc3RlciwgZnJhbWVQb2ludGVy
UmVnaXN0ZXIpOworICAgIH0KKworICAgIHZvaWQgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKQorICAg
IHsKKyAgICAgICAgbW92ZShmcmFtZVBvaW50ZXJSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0
ZXIpOworICAgICAgICBwb3BQYWlyKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBsaW5rUmVnaXN0ZXIp
OworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwcmVzZXJ2ZVJldHVybkFkZHJlc3NB
ZnRlckNhbGwoUmVnaXN0ZXJJRCByZWcpCiAgICAgewogICAgICAgICBtb3ZlKGxpbmtSZWdpc3Rl
ciwgcmVnKTsKQEAgLTk0LDYgKzE0MCwxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIENQVShN
SVBTKQorICAgIHNpemVfdCBwcm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkKKyAgICB7CisgICAg
ICAgIC8vIFByb2xvZ3VlIHNhdmVzIHRoZSBmcmFtZVBvaW50ZXJSZWdpc3RlciBhbmQgcmV0dXJu
QWRkcmVzc1JlZ2lzdGVyCisgICAgICAgIHJldHVybiAyICogc2l6ZW9mKHZvaWQqKTsKKyAgICB9
CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxs
KFJlZ2lzdGVySUQgcmVnKQogICAgIHsKICAgICAgICAgbW92ZShyZXR1cm5BZGRyZXNzUmVnaXN0
ZXIsIHJlZyk7CkBAIC0xMTEsNiArMTYzLDEyIEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgQ1BV
KFNINCkKKyAgICBzaXplX3QgcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpCisgICAgeworICAg
ICAgICAvLyBQcm9sb2d1ZSBzYXZlcyB0aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5kIGxpbmsg
cmVnaXN0ZXIKKyAgICAgICAgcmV0dXJuIDIgKiBzaXplb2Yodm9pZCopOworICAgIH0KKwogICAg
IEFMV0FZU19JTkxJTkUgdm9pZCBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoUmVnaXN0
ZXJJRCByZWcpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zdHNwcihyZWcpOwpAQCAtMTUw
LDEwICsyMDgsNiBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3MoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSkp
OwogICAgIH0KIAotICAgIHZvaWQgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0
cihSZWdpc3RlcklEIHRvKQotICAgIHsKLSAgICAgICAgbG9hZFB0cihBZGRyZXNzKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpLCB0byk7Ci0g
ICAgfQogICAgIHZvaWQgZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoUmVnaXN0ZXJJ
RCBmcm9tKQogICAgIHsKICAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CkBAIC0xNjMs
NiArMjE3LDI5IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CiAg
ICAgfQogCisgICAgLy8gZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoKSBh
bmQgcmVsYXRlZCBhcmUgdXNlZCB0byBhY2Nlc3MgY2FsbGVlIGZyYW1lIGhlYWRlcgorICAgIC8v
IGZpZWxkcyBiZWZvcmUgdGhlIGNvZGUgZnJvbSBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpIGhhcyBl
eGVjdXRlZC4KKyAgICAvLyBGaXJzdCwgdGhlIGFjY2VzcyBpcyB2aWEgdGhlIHN0YWNrIHBvaW50
ZXIuIFNlY29uZCwgdGhlIGFkZHJlc3MgY2FsY3VsYXRpb24gbXVzdCBhbHNvIHRha2UKKyAgICAv
LyBpbnRvIGFjY291bnQgdGhhdCB0aGUgc3RhY2sgcG9pbnRlciBtYXkgbm90IGhhdmUgYmVlbiBh
ZGp1c3RlZCBkb3duIGZvciB0aGUgcmV0dXJuIFBDIGFuZC9vcgorICAgIC8vIGNhbGxlcidzIGZy
YW1lIHBvaW50ZXIuIE9uIHNvbWUgcGxhdGZvcm1zLCB0aGUgY2FsbGVlIGlzIHJlc3BvbnNpYmxl
IGZvciBwdXNoaW5nIHRoZQorICAgIC8vICJsaW5rIHJlZ2lzdGVyIiBjb250YWluaW5nIHRoZSBy
ZXR1cm4gYWRkcmVzcyBpbiB0aGUgZnVuY3Rpb24gcHJvbG9ndWUuCisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICB2b2lkIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKEdQUlJl
ZyBmcm9tLCBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSkKKyAgICB7CisgICAg
ICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGVudHJ5ICog
c3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAtIHByb2xvZ3VlU3RhY2tQ
b2ludGVyRGVsdGEoKSkpOworICAgIH0KKyNlbHNlCisgICAgdm9pZCBlbWl0UHV0UGF5bG9hZFRv
Q2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoR1BSUmVnIGZyb20sIEpTU3RhY2s6OkNhbGxG
cmFtZUhlYWRlckVudHJ5IGVudHJ5KQorICAgIHsKKyAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRk
cmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgZW50cnkgKiBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+
KHNpemVvZihSZWdpc3RlcikpIC0gcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpICsgT0JKRUNU
X09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOworICAg
IH0KKworICAgIHZvaWQgZW1pdFB1dFRhZ1RvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUo
VHJ1c3RlZEltbTMyIHRhZywgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCisg
ICAgeworICAgICAgICBzdG9yZVB0cih0YWcsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIs
IGVudHJ5ICogc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAtIHByb2xv
Z3VlU3RhY2tQb2ludGVyRGVsdGEoKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNj
cmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAgIH0KKyNlbmRpZgorCiAgICAgSnVtcCBicmFuY2hJ
Zk5vdENlbGwoR1BSUmVnIHJlZykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTE5NCw3
ICsyNzEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEFkZHJlc3MgdGFnRm9yKFZpcnR1YWxSZWdp
c3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAgewogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lz
dGVyLmlzVmFsaWQoKSk7Ci0gICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsg
T0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKTsKKyAg
ICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1YWxS
ZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikgKyBUYWdPZmZzZXQpOwogICAgIH0K
ICAgICBzdGF0aWMgQWRkcmVzcyB0YWdGb3IoaW50IG9wZXJhbmQpCiAgICAgewpAQCAtMjA0LDcg
KzI4MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQWRkcmVzcyBwYXlsb2FkRm9yKFZpcnR1YWxS
ZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAgewogICAgICAgICBBU1NFUlQodmlydHVhbFJl
Z2lzdGVyLmlzVmFsaWQoKSk7Ci0gICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIp
ICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2Fk
KSk7CisgICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2
aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNl
dCk7CiAgICAgfQogICAgIHN0YXRpYyBBZGRyZXNzIHBheWxvYWRGb3IoaW50IG9wZXJhbmQpCiAg
ICAgewpAQCAtMjk4LDYgKzM3NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGppdEFzc2VydElzQ2Vs
bChHUFJSZWcpOwogICAgIHZvaWQgaml0QXNzZXJ0SGFzVmFsaWRDYWxsRnJhbWUoKTsKICAgICB2
b2lkIGppdEFzc2VydElzTnVsbChHUFJSZWcpOworICAgIHZvaWQgaml0QXNzZXJ0VGFnc0luUGxh
Y2UoKTsKKyAgICB2b2lkIGppdEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCk7CiAjZWxzZQogICAg
IHZvaWQgaml0QXNzZXJ0SXNJbnQzMihHUFJSZWcpIHsgfQogICAgIHZvaWQgaml0QXNzZXJ0SXNK
U0ludDMyKEdQUlJlZykgeyB9CkBAIC0zMDYsNiArMzg1LDggQEAgcHVibGljOgogICAgIHZvaWQg
aml0QXNzZXJ0SXNDZWxsKEdQUlJlZykgeyB9CiAgICAgdm9pZCBqaXRBc3NlcnRIYXNWYWxpZENh
bGxGcmFtZSgpIHsgfQogICAgIHZvaWQgaml0QXNzZXJ0SXNOdWxsKEdQUlJlZykgeyB9CisgICAg
dm9pZCBqaXRBc3NlcnRUYWdzSW5QbGFjZSgpIHsgfQorICAgIHZvaWQgaml0QXNzZXJ0QXJndW1l
bnRDb3VudFNhbmUoKSB7IH0KICNlbmRpZgogCiAgICAgLy8gVGhlc2UgbWV0aG9kcyBjb252ZXJ0
IGJldHdlZW4gZG91YmxlcywgYW5kIGRvdWJsZXMgYm94ZWQgYW5kIEpTVmFsdWVzLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lvbiAxNjI5NjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNv
cHkpCkBAIC05NSw2ICs5NSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChh
cmcyKTsKICAgICB9CiAgICAgCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRz
KFRydXN0ZWRJbW1QdHIgYXJnMSwgR1BSUmVnIGFyZzIpCisgICAgeworICAgICAgICByZXNldENh
bGxBcmd1bWVudHMoKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzEpOworICAgICAgICBh
ZGRDYWxsQXJndW1lbnQoYXJnMik7CisgICAgfQorICAgIAogICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBzZXR1cEFyZ3VtZW50cyhHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQog
ICAgIHsKICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CkBAIC05MzksNiArOTQ2LDEyIEBA
IHB1YmxpYzoKICAgICAgICAgbW92ZShhcmcxLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAg
IH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhUcnVzdGVkSW1tUHRy
IGFyZzEsIEdQUlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAgbW92ZShhcmcyLCBHUFJJbmZvOjph
cmd1bWVudEdQUjEpOworICAgICAgICBtb3ZlKGFyZzEsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CisgICAgfQorICAgIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhHUFJS
ZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgewogICAgICAgICBzZXR1cFR3b1N0dWJBcmdzR1BS
PEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxPihhcmcxLCBhcmcy
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4
ZWN1dGFibGVBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsMjEgKzc4LDYgQEAgdm9p
ZCByZWxlYXNlRXhlY3V0YWJsZU1lbW9yeShWTSYpOwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQg
aml0QWxsb2NhdGlvbkdyYW51bGUgPSAzMjsKIAotaW5saW5lIHNpemVfdCByb3VuZFVwQWxsb2Nh
dGlvblNpemUoc2l6ZV90IHJlcXVlc3QsIHNpemVfdCBncmFudWxhcml0eSkKLXsKLSAgICBSRUxF
QVNFX0FTU0VSVCgoc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSAtIGdyYW51bGFy
aXR5KSA+IHJlcXVlc3QpOwotICAgIAotICAgIC8vIFJvdW5kIHVwIHRvIG5leHQgcGFnZSBib3Vu
ZGFyeQotICAgIHNpemVfdCBzaXplID0gcmVxdWVzdCArIChncmFudWxhcml0eSAtIDEpOwotICAg
IHNpemUgPSBzaXplICYgfihncmFudWxhcml0eSAtIDEpOwotICAgIEFTU0VSVChzaXplID49IHJl
cXVlc3QpOwotICAgIHJldHVybiBzaXplOwotfQotCi19Ci0KLW5hbWVzcGFjZSBKU0MgewotCiB0
eXBlZGVmIFdURjo6TWV0YUFsbG9jYXRvckhhbmRsZSBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOwog
CiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJ
KHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNv
bW1vbjo6U1NFMkNoZWNrU3RhdGUgSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19zc2Uy
Q2hlY2tTdGF0ZSA9IE5vdENoZWNrZWRTU0UyOwogI2VuZGlmCiAKKyNpbmNsdWRlICJBcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUg
IkRGR0NhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCkBAIC00MiwxMSAr
NDMsMTMgQEAgSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNoZWNrUwogI2luY2x1
ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiTGlua0J1
ZmZlci5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5j
bHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRl
ICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCiAjaW5jbHVkZSAiU2xv
d1BhdGhDYWxsLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlIDx3dGYv
Q3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
QEAgLTk4LDYgKzEwMSw3IEBAIHZvaWQgSklUOjplbWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjaygp
CiAgICAgQVNTRVJUKCFtX2J5dGVjb2RlT2Zmc2V0KTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbk9wdGltaXplLCBtX2J5dGVjb2RlT2Zmc2V0KTsKICAgICBza2lwT3B0aW1pemUuYXBwZW5k
KGJyYW5jaFRlc3RQdHIoWmVybywgcmV0dXJuVmFsdWVHUFIpKTsKKyAgICBtb3ZlKHJldHVyblZh
bHVlR1BSMiwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIGp1bXAocmV0dXJuVmFsdWVHUFIp
OwogICAgIHNraXBPcHRpbWl6ZS5saW5rKHRoaXMpOwogfQpAQCAtMTI4LDYgKzEzMiw5IEBAIHZv
aWQgSklUOjplbWl0RW50ZXJPcHRpbWl6YXRpb25DaGVjaygpCiAKIHZvaWQgSklUOjpwcml2YXRl
Q29tcGlsZU1haW5QYXNzKCkKIHsKKyAgICBqaXRBc3NlcnRUYWdzSW5QbGFjZSgpOworICAgIGpp
dEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCk7CisgICAgCiAgICAgSW5zdHJ1Y3Rpb24qIGluc3Ry
dWN0aW9uc0JlZ2luID0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAg
dW5zaWduZWQgaW5zdHJ1Y3Rpb25Db3VudCA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5z
aXplKCk7CiAKQEAgLTQ5Niw4ICs1MDMsNyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZh
dGVDb21waWxlKEpJCiAgICAgaWYgKG1fcmFuZG9tR2VuZXJhdG9yLmdldFVpbnQzMigpICYgMSkK
ICAgICAgICAgbm9wKCk7CiAKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVn
VDIpOwotICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QyKTsKKyAgICBl
bWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgIGVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhl
YWRlcihtX2NvZGVCbG9jaywgSlNTdGFjazo6Q29kZUJsb2NrKTsKIAogICAgIExhYmVsIGJlZ2lu
TGFiZWwodGhpcyk7CkBAIC01MDcsNyArNTEzLDcgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpw
cml2YXRlQ29tcGlsZShKSQogICAgIHNhbXBsZUluc3RydWN0aW9uKG1fY29kZUJsb2NrLT5pbnN0
cnVjdGlvbnMoKS5iZWdpbigpKTsKICNlbmRpZgogCi0gICAgSnVtcCBzdGFja0NoZWNrOworICAg
IEp1bXAgc3RhY2tPdmVyZmxvdzsKICAgICBpZiAobV9jb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0g
RnVuY3Rpb25Db2RlKSB7CiAgICAgICAgIEFTU0VSVChtX2J5dGVjb2RlT2Zmc2V0ID09ICh1bnNp
Z25lZCktMSk7CiAgICAgICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKQEAgLTUyNywx
MiArNTMzLDEzIEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmly
dHVhbFJlZ2lzdGVyRm9yTG9jYWwoZnJhbWVSZWdpc3RlckNvdW50Rm9yKG1fY29kZUJsb2NrKSku
b2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QxKTsK
LSAgICAgICAgc3RhY2tDaGVjayA9IGJyYW5jaFB0cihBYm92ZSwgQWJzb2x1dGVBZGRyZXNzKG1f
dm0tPmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwgcmVnVDEpOworICAgICAgICBhZGRQdHIoVHJ1
c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVn
aXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QxKTsKKyAgICAgICAgc3RhY2tPdmVyZmxv
dyA9IGJyYW5jaFB0cihBYm92ZSwgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmFkZHJlc3NPZkpTU3Rh
Y2tMaW1pdCgpKSwgcmVnVDEpOwogICAgIH0KIAotICAgIExhYmVsIGZ1bmN0aW9uQm9keSA9IGxh
YmVsKCk7Ci0gICAgCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRG
b3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBz
dGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsK
KwogICAgIHByaXZhdGVDb21waWxlTWFpblBhc3MoKTsKICAgICBwcml2YXRlQ29tcGlsZUxpbmtQ
YXNzKCk7CiAgICAgcHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKTsKQEAgLTU0MiwxOCArNTQ5LDE1
IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKIAogICAgIExhYmVs
IGFyaXR5Q2hlY2s7CiAgICAgaWYgKG1fY29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9u
Q29kZSkgewotICAgICAgICBzdGFja0NoZWNrLmxpbmsodGhpcyk7CisgICAgICAgIHN0YWNrT3Zl
cmZsb3cubGluayh0aGlzKTsKICAgICAgICAgbV9ieXRlY29kZU9mZnNldCA9IDA7Ci0gICAgICAg
IGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25T
dGFja0NoZWNrLCBtX2NvZGVCbG9jayk7Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICBtX2J5dGVj
b2RlT2Zmc2V0ID0gKHVuc2lnbmVkKS0xOyAvLyBSZXNldCB0aGlzLCBpbiBvcmRlciB0byBndWFy
ZCBpdHMgdXNlIHdpdGggQVNTRVJUcy4KLSNlbmRpZgotICAgICAgICBqdW1wKGZ1bmN0aW9uQm9k
eSk7CisgICAgICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAg
ICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwg
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFt
ZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IsIG1f
Y29kZUJsb2NrKTsKIAogICAgICAgICBhcml0eUNoZWNrID0gbGFiZWwoKTsKICAgICAgICAgc3Rv
cmU4KFRydXN0ZWRJbW0zMigwKSwgJm1fY29kZUJsb2NrLT5tX3Nob3VsZEFsd2F5c0JlSW5saW5l
ZCk7Ci0gICAgICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMik7Ci0gICAg
ICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QyKTsKKyAgICAgICAgZW1p
dEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1l
SGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0YWNrOjpDb2RlQmxvY2spOwogCiAgICAgICAgIGxvYWQz
MihwYXlsb2FkRm9yKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpLCByZWdUMSk7CkBAIC01NjEsMTAg
KzU2NSwxNiBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAKICAg
ICAgICAgbV9ieXRlY29kZU9mZnNldCA9IDA7CiAKKyAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAg
IGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihtX2NvZGVCbG9j
ay0+bV9pc0NvbnN0cnVjdG9yID8gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayA6IG9wZXJh
dGlvbkNhbGxBcml0eUNoZWNrKTsKKyAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsKQorICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAgaWYgKHJldHVy
blZhbHVlR1BSICE9IHJlZ1QwKQogICAgICAgICAgICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgcmVn
VDApOwogICAgICAgICBicmFuY2hUZXN0MzIoWmVybywgcmVnVDApLmxpbmtUbyhiZWdpbkxhYmVs
LCB0aGlzKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fdm0tPmFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzLT5yZXR1cm5QQ3NGb3IoKm1fdm0sIG1fY29kZUJsb2NrLT5udW1QYXJhbWV0
ZXJzKCkpKSwgcmVnVDUpOworICAgICAgICBsb2FkUHRyKEJhc2VJbmRleChyZWdUNSwgcmVnVDAs
IHRpbWVzUHRyKCkpLCByZWdUNSk7CiAgICAgICAgIGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJ
U3R1Yihhcml0eUZpeHVwKS5jb2RlKCkpOwogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRApAQCAtNjUz
LDIwICs2NjMsMTIgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSQog
ICAgICAgICBpbmZvLmNhbGxlZUdQUiA9IHJlZ1QwOwogICAgIH0KIAotI2lmIEVOQUJMRShERkdf
SklUKSB8fCBFTkFCTEUoTExJTlQpCi0gICAgaWYgKGNhbkJlT3B0aW1pemVkT3JJbmxpbmVkKCkK
LSNpZiBFTkFCTEUoTExJTlQpCi0gICAgICAgIHx8IHRydWUKLSNlbmRpZgotICAgICAgICApIHsK
LSAgICAgICAgQ29tcGFjdEpJVENvZGVNYXA6OkVuY29kZXIgaml0Q29kZU1hcEVuY29kZXI7Ci0g
ICAgICAgIGZvciAodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSAwOyBieXRlY29kZU9mZnNldCA8
IG1fbGFiZWxzLnNpemUoKTsgKytieXRlY29kZU9mZnNldCkgewotICAgICAgICAgICAgaWYgKG1f
bGFiZWxzW2J5dGVjb2RlT2Zmc2V0XS5pc1NldCgpKQotICAgICAgICAgICAgICAgIGppdENvZGVN
YXBFbmNvZGVyLmFwcGVuZChieXRlY29kZU9mZnNldCwgcGF0Y2hCdWZmZXIub2Zmc2V0T2YobV9s
YWJlbHNbYnl0ZWNvZGVPZmZzZXRdKSk7Ci0gICAgICAgIH0KLSAgICAgICAgbV9jb2RlQmxvY2st
PnNldEpJVENvZGVNYXAoaml0Q29kZU1hcEVuY29kZXIuZmluaXNoKCkpOworICAgIENvbXBhY3RK
SVRDb2RlTWFwOjpFbmNvZGVyIGppdENvZGVNYXBFbmNvZGVyOworICAgIGZvciAodW5zaWduZWQg
Ynl0ZWNvZGVPZmZzZXQgPSAwOyBieXRlY29kZU9mZnNldCA8IG1fbGFiZWxzLnNpemUoKTsgKyti
eXRlY29kZU9mZnNldCkgeworICAgICAgICBpZiAobV9sYWJlbHNbYnl0ZWNvZGVPZmZzZXRdLmlz
U2V0KCkpCisgICAgICAgICAgICBqaXRDb2RlTWFwRW5jb2Rlci5hcHBlbmQoYnl0ZWNvZGVPZmZz
ZXQsIHBhdGNoQnVmZmVyLm9mZnNldE9mKG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XSkpOwogICAg
IH0KLSNlbmRpZgorICAgIG1fY29kZUJsb2NrLT5zZXRKSVRDb2RlTWFwKGppdENvZGVNYXBFbmNv
ZGVyLmZpbmlzaCgpKTsKIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVj
azsKICAgICBpZiAobV9jb2RlQmxvY2stPmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKQpAQCAt
Njg3LDggKzY4OSw3IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkK
ICAgICAKICAgICBtX2NvZGVCbG9jay0+c2hyaW5rVG9GaXQoQ29kZUJsb2NrOjpMYXRlU2hyaW5r
KTsKICAgICBtX2NvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRSZWYobmV3IERp
cmVjdEpJVENvZGUocmVzdWx0LCBKSVRDb2RlOjpCYXNlbGluZUpJVCkpLAotICAgICAgICB3aXRo
QXJpdHlDaGVjayk7CisgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHJlc3VsdCwg
d2l0aEFyaXR5Q2hlY2ssIEpJVENvZGU6OkJhc2VsaW5lSklUKSkpOwogICAgIAogI2lmIEVOQUJM
RShKSVRfVkVSQk9TRSkKICAgICBkYXRhTG9nRigiSklUIGdlbmVyYXRlZCBjb2RlIGZvciAlcCBh
dCBbJXAsICVwKS5cbiIsIG1fY29kZUJsb2NrLCByZXN1bHQuZXhlY3V0YWJsZU1lbW9yeSgpLT5z
dGFydCgpLCByZXN1bHQuZXhlY3V0YWJsZU1lbW9yeSgpLT5lbmQoKSk7CkBAIC02OTcsNDIgKzY5
OCw2IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAgICByZXR1
cm4gQ29tcGlsYXRpb25TdWNjZXNzZnVsOwogfQogCi12b2lkIEpJVDo6bGlua0ZvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTRnVuY3Rpb24qIGNhbGxlZSwgQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ss
IENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBKSVQ6OkNvZGVQdHIgY29kZSwgQ2FsbExpbmtJ
bmZvKiBjYWxsTGlua0luZm8sIFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQot
ewotICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjYWxsZXJDb2RlQmxvY2spOwotCi0g
ICAgQVNTRVJUKCFjYWxsTGlua0luZm8tPmlzTGlua2VkKCkpOwotICAgIGNhbGxMaW5rSW5mby0+
Y2FsbGVlLnNldCgqdm0sIGNhbGxMaW5rSW5mby0+aG90UGF0aEJlZ2luLCBjYWxsZXJDb2RlQmxv
Y2stPm93bmVyRXhlY3V0YWJsZSgpLCBjYWxsZWUpOwotICAgIGNhbGxMaW5rSW5mby0+bGFzdFNl
ZW5DYWxsZWUuc2V0KCp2bSwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2Fs
bGVlKTsKLSAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8tPmhvdFBhdGhPdGhl
ciwgY29kZSk7Ci0KLSAgICBpZiAoY2FsbGVlQ29kZUJsb2NrKQotICAgICAgICBjYWxsZWVDb2Rl
QmxvY2stPmxpbmtJbmNvbWluZ0NhbGwoZXhlYywgY2FsbExpbmtJbmZvKTsKLQotICAgIC8vIFBh
dGNoIHRoZSBzbG93IHBhdGNoIHNvIHdlIGRvIG5vdCBjb250aW51ZSB0byB0cnkgdG8gbGluay4K
LSAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewotICAgICAgICBBU1NFUlQoY2FsbExpbmtJ
bmZvLT5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNhbGwKLSAgICAgICAgICAgICAgIHx8IGNh
bGxMaW5rSW5mby0+Y2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpDYWxsVmFyYXJncyk7Ci0gICAg
ICAgIGlmIChjYWxsTGlua0luZm8tPmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2FsbCkgewot
ICAgICAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJu
TG9jYXRpb24sIHZtLT5nZXRDVElTdHViKGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKS5j
b2RlKCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgcmVwYXRj
aEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRD
VElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICBy
ZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0t
PmdldENUSVN0dWIodmlydHVhbENvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotfQot
Ci12b2lkIEpJVDo6bGlua1Nsb3dDYWxsKENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrLCBDYWxs
TGlua0luZm8qIGNhbGxMaW5rSW5mbykKLXsKLSAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZm
ZXIoY2FsbGVyQ29kZUJsb2NrKTsKLQotICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5r
SW5mby0+Y2FsbFJldHVybkxvY2F0aW9uLCBjYWxsZXJDb2RlQmxvY2stPnZtKCktPmdldENUSVN0
dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKLX0KLQogdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlRXhjZXB0aW9uSGFuZGxlcnMoKQogewogICAgIGlmIChtX2V4Y2VwdGlvbkNo
ZWNrcy5lbXB0eSgpICYmIG1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLmVt
cHR5KCkpCkBAIC03NDIsNyArNzA3LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlRXhjZXB0
aW9uSGFuZGxlcgogCiAgICAgaWYgKCFtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xs
YmFjay5lbXB0eSgpKSB7CiAgICAgICAgIG1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJv
bGxiYWNrLmxpbmsodGhpcyk7Ci0gICAgICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgZW1pdEdldENhbGxl
ckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAg
ICAgICBkb0xvb2t1cCA9IGp1bXAoKTsKICAgICB9CiAKQEAgLTc1MCwxOSArNzE1LDMzIEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhhbmRsZXIKICAgICAgICAgbV9leGNlcHRp
b25DaGVja3MubGluayh0aGlzKTsKICAgICAKICAgICAvLyBsb29rdXBFeGNlcHRpb25IYW5kbGVy
IGlzIHBhc3NlZCBvbmUgYXJndW1lbnQsIHRoZSBleGVjICh0aGUgQ2FsbEZyYW1lKikuCi0gICAg
bW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
KyAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpOwogCiAgICAgaWYgKGRvTG9va3VwLmlzU2V0KCkpCiAgICAgICAgIGRvTG9va3VwLmxpbmso
dGhpcyk7CiAKKyAgICBtb3ZlKFRydXN0ZWRJbW1QdHIodm0oKSksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CisKICNpZiBDUFUoWDg2KQogICAgIC8vIEZJWE1FOiBzaG91bGQgdXNlIHRoZSBjYWxs
IGFic3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkgaW4gdGhlIFNwZWN1bGF0aXZlSklU
IGxheWVyIQogICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBwb2tlKEdQUklu
Zm86OmFyZ3VtZW50R1BSMSwgMSk7CiAjZW5kaWYKICAgICBtX2NhbGxzLmFwcGVuZChDYWxsUmVj
b3JkKGNhbGwoKSwgKHVuc2lnbmVkKS0xLCBGdW5jdGlvblB0cihsb29rdXBFeGNlcHRpb25IYW5k
bGVyKS52YWx1ZSgpKSk7CiAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcigpOwogfQogCit1bnNp
Z25lZCBKSVQ6OmZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3sK
KyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNvZGVCbG9jay0+bV9udW1DYWxsZWVS
ZWdpc3RlcnMpID09IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lz
dGVycygpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lz
dGVycykpKTsKKworICAgIHJldHVybiByb3VuZExvY2FsUmVnaXN0ZXJDb3VudEZvckZyYW1lUG9p
bnRlck9mZnNldChjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzICsgbWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGxJblJlZ2lzdGVycyk7Cit9CisKK2ludCBKSVQ6OnN0YWNrUG9pbnRl
ck9mZnNldEZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3sKKyAgICByZXR1cm4gdmlydHVhbFJl
Z2lzdGVyRm9yTG9jYWwoZnJhbWVSZWdpc3RlckNvdW50Rm9yKGNvZGVCbG9jaykgLSAxKS5vZmZz
ZXQoKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjQxLDEzICsyNDEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgICAgIHJldHVybiBqaXQucHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5j
KTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyB2b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiwg
SlNGdW5jdGlvbiogY2FsbGVlLCBDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jaywgQ29kZUJsb2Nr
KiBjYWxsZWVDb2RlQmxvY2ssIENvZGVQdHIsIENhbGxMaW5rSW5mbyosIFZNKiwgQ29kZVNwZWNp
YWxpemF0aW9uS2luZCk7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGxpbmtTbG93Q2FsbChDb2RlQmxv
Y2sqIGNhbGxlckNvZGVCbG9jaywgQ2FsbExpbmtJbmZvKik7Ci0gICAgICAgIAotICAgICAgICBz
dGF0aWMgdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50Rm9yKENvZGVCbG9jayogY29kZUJsb2Nr
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gY29kZUJsb2NrLT5tX251bUNhbGxlZVJl
Z2lzdGVyczsKLSAgICAgICAgfQorICAgICAgICBzdGF0aWMgdW5zaWduZWQgZnJhbWVSZWdpc3Rl
ckNvdW50Rm9yKENvZGVCbG9jayopOworICAgICAgICBzdGF0aWMgaW50IHN0YWNrUG9pbnRlck9m
ZnNldEZvcihDb2RlQmxvY2sqKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpJVChWTSosIENv
ZGVCbG9jayogPSAwKTsKQEAgLTY5NywxMSArNjkyLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlVGFnLCBK
X0pJVE9wZXJhdGlvbl9FUGMsIGludCwgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FWiwgaW50LCBpbnQzMl90
KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihQX0pJVE9wZXJh
dGlvbl9FSlMsIEdQUlJlZywgc2l6ZV90KTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9FWiwgaW50MzJfdCk7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUNDLCBSZWdpc3Rl
cklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihTX0pJVE9wZXJhdGlvbl9FSiwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUpKLCBSZWdpc3RlcklELCBS
ZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihT
X0pJVE9wZXJhdGlvbl9FT0pzcywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU3BydF9KSVRPcGVyYXRpb25fRVosIGlu
dDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0UpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VDLCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0MsIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQpOwpAQCAtNzI2LDYgKzcyMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VQYywgSW5zdHJ1
Y3Rpb24qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FWiwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihKX0pJVE9wZXJhdGlv
bl9FKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbk5vRXhjZXB0
aW9uQ2hlY2soSl9KSVRPcGVyYXRpb25fRUUsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRp
b24oVl9KSVRPcGVyYXRpb25fRUNiLCBDb2RlQmxvY2sqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKFpf
SklUT3BlcmF0aW9uX0UpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAj
aW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1
ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+
CiAKIApAQCAtNTYsMTAgKzU3LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0KEluc3RydWN0aW9u
KiBjdXJyZQogICAgIHVuc2lnbmVkIGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQ7CiAKICAgICBlbWl0TG9hZChkc3QsIHJlZ1QxLCByZWdUMCk7Ci0gICAgZW1pdEdldFJldHVy
blBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMik7Ci0gICAgZW1pdEdldENhbGxlckZyYW1l
RnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7CiAKLSAgICByZXN0b3Jl
UmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQoKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQog
CkBAIC03MywyMCArNzMsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0X29iamVjdF9vcl90aGlz
KElucwogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQo
KSksIHJlZ1QyKTsKICAgICBKdW1wIG5vdE9iamVjdCA9IGVtaXRKdW1wSWZOb3RPYmplY3QocmVn
VDIpOwogCi0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMik7
Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVS
ZWdpc3Rlcik7Ci0KLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMik7
CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAgICBlbWl0RnVuY3Rpb25FcGls
b2d1ZSgpOwogICAgIHJldCgpOwogCiAgICAgbm90SlNDZWxsLmxpbmsodGhpcyk7CiAgICAgbm90
T2JqZWN0LmxpbmsodGhpcyk7CiAgICAgZW1pdExvYWQodGhpc1JlZywgcmVnVDEsIHJlZ1QwKTsK
IAotICAgIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVnVDIpOwotICAg
IGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0
ZXIpOwotCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDIpOworICAg
IGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
KTsKICAgICByZXQoKTsKIH0KIApAQCAtMTUxLDggKzE0NywxMiBAQCB2b2lkIEpJVDo6Y29tcGls
ZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uCiAgICAgICAgIC8vIHJlZ1QyOiBhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcwogCiAgICAgICAgIG1vdmUocmVnVDIsIHJlZ1QzKTsKKyAgICAgICAgYWRk
UHRyKFRydXN0ZWRJbW0zMigtZmlyc3RGcmVlUmVnaXN0ZXIgKyBKU1N0YWNrOjpDYWxsRnJhbWVI
ZWFkZXJTaXplKSwgcmVnVDMpOworICAgICAgICAvLyByZWdUMSBub3cgaGFzIHRoZSByZXF1aXJl
ZCBmcmFtZSBzaXplIGluIFJlZ2lzdGVyIHVuaXRzCisgICAgICAgIC8vIFJvdW5kIHJlZ1QxIHRv
IG5leHQgbXVsdGlwbGUgb2Ygc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKQorICAgICAgICBhZGRQ
dHIoVHJ1c3RlZEltbTMyKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSwgcmVnVDMpOwor
ICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbTMyKH4oc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSAt
IDEpKSwgcmVnVDMpOwogICAgICAgICBuZWczMihyZWdUMyk7Ci0gICAgICAgIGFkZDMyKFRydXN0
ZWRJbW0zMihmaXJzdEZyZWVSZWdpc3RlciAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUp
LCByZWdUMyk7CiAgICAgICAgIGxzaGlmdDMyKFRydXN0ZWRJbW0zMigzKSwgcmVnVDMpOwogICAg
ICAgICBhZGRQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QzKTsKICAgICAgICAgLy8gcmVnVDM6
IG5ld0NhbGxGcmFtZQpAQCAtMTg1LDIyICsxODUsMzQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVMb2Fk
VmFyYXJncyhJbnN0cnVjdGlvbgogICAgICAgICBzbG93Q2FzZS5saW5rKHRoaXMpOwogCiAgICAg
ZW1pdExvYWQoYXJndW1lbnRzLCByZWdUMSwgcmVnVDApOwotICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uU2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzLCByZWdUMSwgcmVnVDAsIGZpcnN0RnJl
ZVJlZ2lzdGVyKTsKLSAgICBtb3ZlKHJldHVyblZhbHVlR1BSLCByZWdUNSk7Ci0gICAgZW1pdExv
YWQodGhpc1ZhbHVlLCByZWdUMSwgcmVnVDApOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
U2l6ZUZyYW1lRm9yVmFyYXJncywgcmVnVDEsIHJlZ1QwLCBmaXJzdEZyZWVSZWdpc3Rlcik7Cisg
ICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGVtaXRM
b2FkKHRoaXNWYWx1ZSwgcmVnVDEsIHJlZ1Q0KTsKICAgICBlbWl0TG9hZChhcmd1bWVudHMsIHJl
Z1QzLCByZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmVn
VDUsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbkxvYWRWYXJhcmdzLCByZXR1cm5WYWx1ZUdQUiwgcmVnVDEsIHJlZ1Q0LCByZWdUMywgcmVn
VDIpOwogICAgIG1vdmUocmV0dXJuVmFsdWVHUFIsIHJlZ1QzKTsKIAogICAgIGlmIChjYW5PcHRp
bWl6ZSkKICAgICAgICAgZW5kLmxpbmsodGhpcyk7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMy
KHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QzLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CiB9CiAKIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2YWwoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9u
KQogewotICAgIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihv
cGVyYXRpb25DYWxsRXZhbCk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtc3RhdGljX2Nhc3Q8
cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKSwgc3RhY2tQb2ludGVyUmVnaXN0
ZXIsIHJlZ1QxKTsKKworICAgIGNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKG9wZXJhdGlv
bkNhbGxFdmFsLCByZWdUMSk7CisKKyAgICBKdW1wIG5vRXhjZXB0aW9uID0gZW1pdEV4Y2VwdGlv
bkNoZWNrKEludmVydGVkRXhjZXB0aW9uQ2hlY2spOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIo
c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBj
YWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGV4Y2VwdGlvbkNo
ZWNrKGp1bXAoKSk7CisKKyAgICBub0V4Y2VwdGlvbi5saW5rKHRoaXMpOwogICAgIGFkZFNsb3dD
YXNlKGJyYW5jaDMyKEVxdWFsLCByZWdUMSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFs
dWVUYWcpKSk7Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihj
YWxsRnJhbWVSZWdpc3Rlcik7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRl
ck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVn
aXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdu
bWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTIx
MSw4ICsyMjMsMTMgQEAgdm9pZCBKSVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dDYXNlKEluc3RydQog
ewogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKIAorICAgIGxvYWRQdHIoQWRkcmVzcyhzdGFja1Bv
aW50ZXJSZWdpc3Rlciwgc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OkNhbGxlZSAtIHNpemVv
ZihDYWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QwKTsKKyAgICBsb2FkUHRyKEFkZHJlc3Moc3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpDYWxsZWUgLSBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMSk7CisKICAgICBlbWl0TG9hZChKU1N0YWNrOjpD
YWxsZWUsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdE5ha2VkQ2FsbChtX3ZtLT5nZXRDVElTdHVi
KHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVy
KSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tT
dGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9j
ayk7CiAgICAgCkBAIC0yNTEsMTggKzI2OCwxNyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChP
cGNvZGVJRCBvcGNvZGVJCiAgICAgICAgICAgICBkb25lLmxpbmsodGhpcyk7CiAgICAgICAgIH0K
ICAgICAKLSAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVv
ZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3RlciwgcmVnVDMpOworICAgICAgICBhZGRQdHIo
VHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lzdGVyKSArIHNpemVvZihD
YWxsZXJGcmFtZUFuZFBDKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CiAKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoYXJnQ291bnQpLCBwYXlsb2FkRm9y
KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQsIHJlZ1QzKSk7Ci0gICAgfSAvLyByZWdUMyBob2xkcyBu
ZXdDYWxsRnJhbWUgd2l0aCBBcmd1bWVudENvdW50IGluaXRpYWxpemVkLgorICAgICAgICBzdG9y
ZTMyKFRydXN0ZWRJbW0zMihhcmdDb3VudCksIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIs
IEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3Rl
cikpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOworICAgIH0g
Ly8gU1AgaG9sZHMgbmV3Q2FsbEZyYW1lICsgc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpLCB3aXRo
IEFyZ3VtZW50Q291bnQgaW5pdGlhbGl6ZWQuCiAgICAgCiAgICAgdWludDMyX3QgbG9jYXRpb25C
aXRzID0gQ2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNCeXRlY29kZUluc3RydWN0aW9uKGlu
c3RydWN0aW9uKTsKICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCB0YWdG
b3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCwgY2FsbEZyYW1lUmVnaXN0ZXIpKTsKICAgICBlbWl0
TG9hZChjYWxsZWUsIHJlZ1QxLCByZWdUMCk7IC8vIHJlZ1QxLCByZWdUMCBob2xkcyBjYWxsZWUu
CiAKLSAgICBzdG9yZVB0cihjYWxsRnJhbWVSZWdpc3RlciwgQWRkcmVzcyhyZWdUMywgQ2FsbEZy
YW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSk7Ci0gICAgZW1pdFN0b3JlKEpTU3RhY2s6OkNhbGxl
ZSwgcmVnVDEsIHJlZ1QwLCByZWdUMyk7Ci0gICAgbW92ZShyZWdUMywgY2FsbEZyYW1lUmVnaXN0
ZXIpOworICAgIHN0b3JlMzIocmVnVDAsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpT
U3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXls
b2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisgICAgc3RvcmUzMihyZWdU
MSwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6Q2FsbGVlICogc3RhdGlj
X2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFRhZ09mZnNldCAtIHNpemVvZihDYWxsZXJG
cmFtZUFuZFBDKSkpOwogCiAgICAgaWYgKG9wY29kZUlEID09IG9wX2NhbGxfZXZhbCkgewogICAg
ICAgICBjb21waWxlQ2FsbEV2YWwoaW5zdHJ1Y3Rpb24pOwpAQCAtMjgxLDEwICsyOTcsMTYgQEAg
dm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSQogICAgIG1fY2FsbFN0cnVj
dHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxUeXBlID0gQ2Fs
bExpbmtJbmZvOjpjYWxsVHlwZUZvcihvcGNvZGVJRCk7CiAgICAgbV9jYWxsU3RydWN0dXJlU3R1
YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uYnl0ZWNvZGVJbmRleCA9IG1fYnl0
ZWNvZGVPZmZzZXQ7CiAKLSAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRP
RihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlZ1QxKTsKLSAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZy
YW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKKyAgICBsb2FkUHRyKEFkZHJl
c3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlZ1QyKTsK
KyAgICBzdG9yZTMyKHJlZ1QyLCBBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJS
ZWdpc3RlciwgSlNTdGFjazo6U2NvcGVDaGFpbiAqIHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2Fk
T2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisgICAgc3RvcmUzMihUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpT
U3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXplb2YoUmVnaXN0ZXIpICsgVGFnT2Zmc2V0IC0gc2l6ZW9m
KENhbGxlckZyYW1lQW5kUEMpKSk7CisKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgp
OwogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5k
ZXhdLmhvdFBhdGhPdGhlciA9IGVtaXROYWtlZENhbGwoKTsKIAorICAgIGFkZFB0cihUcnVzdGVk
SW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3Rl
cikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxv
Y2spOwogICAgIGVtaXRQdXRDYWxsUmVzdWx0KGluc3RydWN0aW9uKTsKIH0KQEAgLTI5OSw3ICsz
MjEsMTQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGxTbG93Q2FzZShPcGNvZGVJRAogICAgIGxp
bmtTbG93Q2FzZShpdGVyKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKLSAgICBtX2NhbGxT
dHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0dXJu
TG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCA/IG1fdm0t
PmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5jb2RlKCkgOiBtX3ZtLT5n
ZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgVGh1bmtHZW5l
cmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgICAgICBvcGNvZGVJ
RCA9PSBvcF9jb25zdHJ1Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisgICAg
ICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOworICAgIAorICAgIG1fY2FsbFN0
cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxSZXR1cm5M
b2NhdGlvbiA9IGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNvZGUo
KSk7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2Nv
ZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAg
c2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICBlbWl0UHV0Q2FsbFJlc3VsdChpbnN0
cnVjdGlvbik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgi
CiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2lu
Y2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCiAj
aW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKQEAgLTcxLDEwICs3MiwxNCBAQCB2
b2lkIEpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uCiAgICAgICAgIGVtaXRHZXRG
cm9tQ2FsbEZyYW1lSGVhZGVyMzIoSlNTdGFjazo6QXJndW1lbnRDb3VudCwgcmVnVDApOwogICAg
ICAgICBzbG93Q2FzZS5hcHBlbmQoYnJhbmNoMzIoQWJvdmUsIHJlZ1QwLCBUcnVzdGVkSW1tMzIo
QXJndW1lbnRzOjpNYXhBcmd1bWVudHMgKyAxKSkpOwogICAgICAgICAvLyByZWdUMDogYXJndW1l
bnRDb3VudEluY2x1ZGluZ1RoaXMKLQogICAgICAgICBtb3ZlKHJlZ1QwLCByZWdUMSk7CisgICAg
ICAgIGFkZDY0KFRydXN0ZWRJbW0zMigtZmlyc3RGcmVlUmVnaXN0ZXIgKyBKU1N0YWNrOjpDYWxs
RnJhbWVIZWFkZXJTaXplKSwgcmVnVDEpOworICAgICAgICAvLyByZWdUMSBub3cgaGFzIHRoZSBy
ZXF1aXJlZCBmcmFtZSBzaXplIGluIFJlZ2lzdGVyIHVuaXRzCisgICAgICAgIC8vIFJvdW5kIHJl
Z1QxIHRvIG5leHQgbXVsdGlwbGUgb2Ygc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKQorICAgICAg
ICBhZGQ2NChUcnVzdGVkSW1tMzIoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSAtIDEpLCByZWdU
MSk7CisgICAgICAgIGFuZDY0KFRydXN0ZWRJbW0zMih+KHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJz
KCkgLSAxKSksIHJlZ1QxKTsKKwogICAgICAgICBuZWc2NChyZWdUMSk7Ci0gICAgICAgIGFkZDY0
KFRydXN0ZWRJbW0zMihmaXJzdEZyZWVSZWdpc3RlciAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRl
clNpemUpLCByZWdUMSk7CiAgICAgICAgIGxzaGlmdDY0KFRydXN0ZWRJbW0zMigzKSwgcmVnVDEp
OwogICAgICAgICBhZGRQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QxKTsKICAgICAgICAgLy8g
cmVnVDE6IG5ld0NhbGxGcmFtZQpAQCAtMTA1LDcgKzExMCw4IEBAIHZvaWQgSklUOjpjb21waWxl
TG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24KICAgICAgICAgc2xvd0Nhc2UubGluayh0aGlzKTsKIAog
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYXJndW1lbnRzLCByZWdUMSk7Ci0gICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25TaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MsIHJlZ1QxLCBmaXJz
dEZyZWVSZWdpc3Rlcik7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TaXplRnJhbWVGb3JW
YXJhcmdzLCByZWdUMSwgZmlyc3RGcmVlUmVnaXN0ZXIpOworICAgIG1vdmUocmV0dXJuVmFsdWVH
UFIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHRo
aXNWYWx1ZSwgcmVnVDEpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYXJndW1lbnRzLCBy
ZWdUMik7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmV0dXJuVmFs
dWVHUFIsIHJlZ1QxLCByZWdUMik7CkBAIC0xMTMsMTMgKzExOSwyNCBAQCB2b2lkIEpJVDo6Y29t
cGlsZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uCiAKICAgICBpZiAoY2FuT3B0aW1pemUpCiAgICAg
ICAgIGVuZC5saW5rKHRoaXMpOworICAgIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc2l6ZW9m
KENhbGxlckZyYW1lQW5kUEMpKSwgcmVnVDEsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIH0KIAog
dm9pZCBKSVQ6OmNvbXBpbGVDYWxsRXZhbChJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiB7Ci0g
ICAgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlv
bkNhbGxFdmFsKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1zdGF0aWNfY2FzdDxwdHJkaWZm
X3Q+KHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpLCBzdGFja1BvaW50ZXJSZWdpc3RlciwgcmVn
VDEpOworICAgIGNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkNhbGxFdmFs
LCByZWdUMSk7CisKKyAgICBKdW1wIG5vRXhjZXB0aW9uID0gZW1pdEV4Y2VwdGlvbkNoZWNrKElu
dmVydGVkRXhjZXB0aW9uQ2hlY2spOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2lu
dGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVS
ZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAgICAKKyAgICBleGNlcHRpb25DaGVjayhq
dW1wKCkpOworCisgICAgbm9FeGNlcHRpb24ubGluayh0aGlzKTsKICAgICBhZGRTbG93Q2FzZShi
cmFuY2g2NChFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1
ZSgpKSkpKTsKLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNh
bGxGcmFtZVJlZ2lzdGVyKTsKKworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVy
T2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdp
c3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25t
ZW50KCk7CiAKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIApAQCAtMTMw
LDggKzE0NywxMCBAQCB2b2lkIEpJVDo6Y29tcGlsZUNhbGxFdmFsU2xvd0Nhc2UoSW5zdHJ1CiB7
CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogCi0gICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFk
ZXI2NChKU1N0YWNrOjpDYWxsZWUsIHJlZ1QwKTsKKyAgICBsb2FkNjQoQWRkcmVzcyhzdGFja1Bv
aW50ZXJSZWdpc3Rlciwgc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OkNhbGxlZSAtIHNpemVv
ZihDYWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QwKTsKICAgICBlbWl0TmFrZWRDYWxsKG1fdm0tPmdl
dENUSVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICBhZGRQdHIo
VHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2Yo
UmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1f
Y29kZUJsb2NrKTsKICAgICAKQEAgLTE3MCwxOCArMTg5LDE2IEBAIHZvaWQgSklUOjpjb21waWxl
T3BDYWxsKE9wY29kZUlEIG9wY29kZUkKICAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsKICAg
ICAgICAgfQogICAgIAotICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0
ICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7Ci0gICAgICAg
IHN0b3JlMzIoVHJ1c3RlZEltbTMyKGFyZ0NvdW50KSwgQWRkcmVzcyhyZWdUMSwgSlNTdGFjazo6
QXJndW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBPQkpF
Q1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7Ci0g
ICAgfSAvLyByZWdUMSBob2xkcyBuZXdDYWxsRnJhbWUgd2l0aCBBcmd1bWVudENvdW50IGluaXRp
YWxpemVkLgorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6
ZW9mKFJlZ2lzdGVyKSArIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIGNhbGxGcmFtZVJlZ2lz
dGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMy
KGFyZ0NvdW50KSwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6QXJndW1l
bnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zm
c2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisgICAgfSAvLyBTUCBob2xkcyBuZXdD
YWxsRnJhbWUgKyBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyksIHdpdGggQXJndW1lbnRDb3VudCBp
bml0aWFsaXplZC4KICAgICAKICAgICB1aW50MzJfdCBieXRlY29kZU9mZnNldCA9IGluc3RydWN0
aW9uIC0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgdWludDMyX3Qg
bG9jYXRpb25CaXRzID0gQ2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNCeXRlY29kZU9mZnNl
dChieXRlY29kZU9mZnNldCk7Ci0gICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRz
KSwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0
YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpKTsKKyAgICBzdG9yZTMyKFRydXN0ZWRJbW0z
Mihsb2NhdGlvbkJpdHMpLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1
bWVudENvdW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFRhZ09mZnNl
dCkpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY2FsbGVlLCByZWdUMCk7IC8vIHJlZ1Qw
IGhvbGRzIGNhbGxlZS4KIAotICAgIHN0b3JlNjQoY2FsbEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3Mo
cmVnVDEsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwotICAgIHN0b3JlNjQocmVn
VDAsIEFkZHJlc3MocmVnVDEsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6
ZW9mKFJlZ2lzdGVyKSkpKTsKLSAgICBtb3ZlKHJlZ1QxLCBjYWxsRnJhbWVSZWdpc3Rlcik7Cisg
ICAgc3RvcmU2NChyZWdUMCwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6
Q2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSAtIHNpemVvZihDYWxs
ZXJGcmFtZUFuZFBDKSkpOwogCiAgICAgaWYgKG9wY29kZUlEID09IG9wX2NhbGxfZXZhbCkgewog
ICAgICAgICBjb21waWxlQ2FsbEV2YWwoaW5zdHJ1Y3Rpb24pOwpAQCAtMTk4LDEwICsyMTUsMTQg
QEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSQogICAgIG1fY2FsbFN0
cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxUeXBlID0g
Q2FsbExpbmtJbmZvOjpjYWxsVHlwZUZvcihvcGNvZGVJRCk7CiAgICAgbV9jYWxsU3RydWN0dXJl
U3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uYnl0ZWNvZGVJbmRleCA9IG1f
Ynl0ZWNvZGVPZmZzZXQ7CiAKLSAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZT
RVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlZ1QxKTsKLSAgICBlbWl0UHV0VG9DYWxsRnJh
bWVIZWFkZXIocmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOworICAgIGxvYWRQdHIoQWRkcmVz
cyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGUpKSwgcmVnVDIpOwor
ICAgIHN0b3JlNjQocmVnVDIsIEFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyLCBKU1N0YWNrOjpTY29wZUNoYWluICogc2l6ZW9mKFJlZ2lzdGVyKSAtIHNpemVvZihD
YWxsZXJGcmFtZUFuZFBDKSkpOworCiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9u
SW5mb1tjYWxsTGlua0luZm9JbmRleF0uaG90UGF0aE90aGVyID0gZW1pdE5ha2VkQ2FsbCgpOwog
CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxv
Y2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKwogICAgIHNhbXBs
ZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgCiAgICAgZW1pdFB1dENhbGxSZXN1bHQoaW5z
dHJ1Y3Rpb24pOwpAQCAtMjE2LDcgKzIzNywxNCBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFNs
b3dDYXNlKE9wY29kZUlECiAKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKLSAgICBtX2NhbGxT
dHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0dXJu
TG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCA/IG1fdm0t
PmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5jb2RlKCkgOiBtX3ZtLT5n
ZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgVGh1bmtHZW5l
cmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgICAgICBvcGNvZGVJ
RCA9PSBvcF9jb25zdHJ1Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisgICAg
ICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOworICAgIAorICAgIG1fY2FsbFN0
cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxSZXR1cm5M
b2NhdGlvbiA9IGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNvZGUo
KSk7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2Nv
ZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAg
c2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTIyNiw3ICsyNTQsNyBAQCB2
b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKE9wY29kZUlECiB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVDbG9zdXJlQ2FsbChDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbywgQ29kZUJsb2Nr
KiBjYWxsZWVDb2RlQmxvY2ssIFN0cnVjdHVyZSogZXhwZWN0ZWRTdHJ1Y3R1cmUsIEV4ZWN1dGFi
bGVCYXNlKiBleHBlY3RlZEV4ZWN1dGFibGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRy
KQogewogICAgIEp1bXBMaXN0IHNsb3dDYXNlczsKLSAgICAKKwogICAgIHNsb3dDYXNlcy5hcHBl
bmQoYnJhbmNoVGVzdFB0cihOb25aZXJvLCByZWdUMCwgdGFnTWFza1JlZ2lzdGVyKSk7CiAgICAg
c2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2Vs
bDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tUHRyKGV4cGVjdGVkU3RydWN0dXJlKSkp
OwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1Qw
LCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFRydXN0ZWRJbW1QdHIoZXhwZWN0
ZWRFeGVjdXRhYmxlKSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2Rl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3Bw
CShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJMTEludFRo
dW5rcy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNl
cnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCIKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4K
IAogbmFtZXNwYWNlIEpTQyB7CkBAIC00MSwxMSArNDIsOSBAQCBKSVRDb2RlOjp+SklUQ29kZSgp
CiB7CiB9CiAKLUpTVmFsdWUgSklUQ29kZTo6ZXhlY3V0ZShWTSogdm0sIFByb3RvQ2FsbEZyYW1l
KiBwcm90b0NhbGxGcmFtZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCitKU1ZhbHVlIEpJVENvZGU6
OmV4ZWN1dGUoVk0qIHZtLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUpCiB7Ci0gICAg
QVNTRVJUKCF2bS0+dG9wQ2FsbEZyYW1lIHx8ICgoUmVnaXN0ZXIqKSh2bS0+dG9wQ2FsbEZyYW1l
KSA+PSB0b3BPZlN0YWNrKSk7Ci0KLSAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29k
ZShjYWxsVG9KYXZhU2NyaXB0KGV4ZWN1dGFibGVBZGRyZXNzKCksICZ2bS0+dG9wQ2FsbEZyYW1l
LCBwcm90b0NhbGxGcmFtZSwgdG9wT2ZTdGFjaykpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNW
YWx1ZTo6ZGVjb2RlKGNhbGxUb0phdmFTY3JpcHQoZXhlY3V0YWJsZUFkZHJlc3MoKSwgdm0sIHBy
b3RvQ2FsbEZyYW1lKSk7CiAgICAgcmV0dXJuIHZtLT5leGNlcHRpb24oKSA/IGpzTnVsbCgpIDog
cmVzdWx0OwogfQogCkBAIC03Myw1MiArNzIsMzUgQEAgRlRMOjpGb3JPU1JFbnRyeUpJVENvZGUq
IEpJVENvZGU6OmZ0bEZvcgogICAgIHJldHVybiAwOwogfQogCi1QYXNzUmVmUHRyPEpJVENvZGU+
IEpJVENvZGU6Omhvc3RGdW5jdGlvbihKSVRDb2RlOjpDb2RlUmVmIGNvZGUpCi17Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKGNvZGUsIEhvc3RDYWxsVGh1bmspKTsKLX0K
LQotRGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZShKSVRUeXBlIGppdFR5cGUpCitKSVRDb2Rl
V2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZihKSVRUeXBlIGppdFR5cGUpCiAgICAgOiBK
SVRDb2RlKGppdFR5cGUpCiB7CiB9CiAKLURpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENvZGUoY29u
c3QgSklUQ29kZTo6Q29kZVJlZiByZWYsIEpJVFR5cGUgaml0VHlwZSkKK0pJVENvZGVXaXRoQ29k
ZVJlZjo6SklUQ29kZVdpdGhDb2RlUmVmKENvZGVSZWYgcmVmLCBKSVRUeXBlIGppdFR5cGUpCiAg
ICAgOiBKSVRDb2RlKGppdFR5cGUpCiAgICAgLCBtX3JlZihyZWYpCiB7CiB9CiAKLURpcmVjdEpJ
VENvZGU6On5EaXJlY3RKSVRDb2RlKCkKLXsKLX0KLQotdm9pZCBEaXJlY3RKSVRDb2RlOjppbml0
aWFsaXplQ29kZVJlZihjb25zdCBKSVRDb2RlOjpDb2RlUmVmIHJlZikKK0pJVENvZGVXaXRoQ29k
ZVJlZjo6fkpJVENvZGVXaXRoQ29kZVJlZigpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoIW1fcmVm
KTsKLSAgICBtX3JlZiA9IHJlZjsKIH0KIAotSklUQ29kZTo6Q29kZVB0ciBEaXJlY3RKSVRDb2Rl
OjphZGRyZXNzRm9yQ2FsbCgpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwotICAgIHJl
dHVybiBtX3JlZi5jb2RlKCk7Ci19Ci0KLXZvaWQqIERpcmVjdEpJVENvZGU6OmV4ZWN1dGFibGVB
ZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkKK3ZvaWQqIEpJVENvZGVXaXRoQ29kZVJlZjo6
ZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KQogewogICAgIFJFTEVBU0Vf
QVNTRVJUKG1fcmVmKTsKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9yZWYu
Y29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpICsgb2Zmc2V0OwogfQogCi12b2lkKiBEaXJlY3RK
SVRDb2RlOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCit2b2lkKiBKSVRDb2Rl
V2l0aENvZGVSZWY6OmRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkKIHsKICAgICBS
RUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgQVNTRVJUKG9mZnNldCA8PSBzaXplKCkpOyAvLyB1
c2UgPD0gaW5zdGVhZCBvZiA8IGJlY2F1c2UgaXQgaXMgdmFsaWQgdG8gYXNrIGZvciBhbiBhZGRy
ZXNzIGF0IHRoZSBleGNsdXNpdmUgZW5kIG9mIHRoZSBjb2RlLgogICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNoYXIqPihtX3JlZi5jb2RlKCkuZGF0YUxvY2F0aW9uKCkpICsgb2Zmc2V0Owog
fQogCi11bnNpZ25lZCBEaXJlY3RKSVRDb2RlOjpvZmZzZXRPZih2b2lkKiBwb2ludGVySW50b0Nv
ZGUpCit1bnNpZ25lZCBKSVRDb2RlV2l0aENvZGVSZWY6Om9mZnNldE9mKHZvaWQqIHBvaW50ZXJJ
bnRvQ29kZSkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgaW50cHRyX3QgcmVz
dWx0ID0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4ocG9pbnRlckludG9Db2RlKSAtIHJlaW50
ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KG1fcmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsK
QEAgLTEyNiwxOCArMTA4LDExNiBAQCB1bnNpZ25lZCBEaXJlY3RKSVRDb2RlOjpvZmZzZXRPZih2
b2lkKiBwCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZXN1bHQpOwogfQogCi1z
aXplX3QgRGlyZWN0SklUQ29kZTo6c2l6ZSgpCitzaXplX3QgSklUQ29kZVdpdGhDb2RlUmVmOjpz
aXplKCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgcmV0dXJuIG1fcmVmLnNp
emUoKTsKIH0KIAotYm9vbCBEaXJlY3RKSVRDb2RlOjpjb250YWlucyh2b2lkKiBhZGRyZXNzKQor
Ym9vbCBKSVRDb2RlV2l0aENvZGVSZWY6OmNvbnRhaW5zKHZvaWQqIGFkZHJlc3MpCiB7CiAgICAg
UkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIHJldHVybiBtX3JlZi5leGVjdXRhYmxlTWVtb3J5
KCktPmNvbnRhaW5zKGFkZHJlc3MpOwogfQogCitEaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRDb2Rl
KEpJVFR5cGUgaml0VHlwZSkKKyAgICA6IEpJVENvZGVXaXRoQ29kZVJlZihqaXRUeXBlKQorewor
fQorCitEaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRDb2RlKEpJVENvZGU6OkNvZGVSZWYgcmVmLCBK
SVRDb2RlOjpDb2RlUHRyIHdpdGhBcml0eUNoZWNrLCBKSVRUeXBlIGppdFR5cGUpCisgICAgOiBK
SVRDb2RlV2l0aENvZGVSZWYocmVmLCBqaXRUeXBlKQorICAgICwgbV93aXRoQXJpdHlDaGVjayh3
aXRoQXJpdHlDaGVjaykKK3sKK30KKworRGlyZWN0SklUQ29kZTo6fkRpcmVjdEpJVENvZGUoKQor
eworfQorCit2b2lkIERpcmVjdEpJVENvZGU6OmluaXRpYWxpemVDb2RlUmVmKEpJVENvZGU6OkNv
ZGVSZWYgcmVmLCBKSVRDb2RlOjpDb2RlUHRyIHdpdGhBcml0eUNoZWNrKQoreworICAgIFJFTEVB
U0VfQVNTRVJUKCFtX3JlZik7CisgICAgbV9yZWYgPSByZWY7CisgICAgbV93aXRoQXJpdHlDaGVj
ayA9IHdpdGhBcml0eUNoZWNrOworfQorCitEaXJlY3RKSVRDb2RlOjpSZWdpc3RlclByZXNlcnZh
dGlvbldyYXBwZXJzKiBEaXJlY3RKSVRDb2RlOjplbnN1cmVXcmFwcGVycygpCit7CisgICAgaWYg
KCFtX3dyYXBwZXJzKQorICAgICAgICBtX3dyYXBwZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxSZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXJzPigpOworICAgIHJldHVybiBtX3dyYXBwZXJzLmdldCgp
OworfQorCitKSVRDb2RlOjpDb2RlUHRyIERpcmVjdEpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKAor
ICAgIFZNJiB2bSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUsIEFyaXR5Q2hlY2tNb2RlIGFy
aXR5LAorICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dp
dGNoIChhcml0eSkgeworICAgIGNhc2UgQXJpdHlDaGVja05vdFJlcXVpcmVkOgorICAgICAgICBz
d2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90
UmVxdWlyZWQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3JlZik7CisgICAgICAgICAg
ICByZXR1cm4gbV9yZWYuY29kZSgpOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVy
czogeworI2lmIEVOQUJMRShKSVQpCisgICAgICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbldy
YXBwZXJzKiB3cmFwcGVycyA9IGVuc3VyZVdyYXBwZXJzKCk7CisgICAgICAgICAgICBpZiAoIXdy
YXBwZXJzLT53aXRob3V0QXJpdHlDaGVjaykKKyAgICAgICAgICAgICAgICB3cmFwcGVycy0+d2l0
aG91dEFyaXR5Q2hlY2sgPSBnZW5lcmF0ZVJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcih2bSwg
ZXhlY3V0YWJsZSwgbV9yZWYuY29kZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB3cmFwcGVycy0+
d2l0aG91dEFyaXR5Q2hlY2suY29kZSgpOworI2Vsc2UKKyAgICAgICAgICAgIFVOVVNFRF9QQVJB
TSh2bSk7CisgICAgICAgICAgICBVTlVTRURfUEFSQU0oZXhlY3V0YWJsZSk7CisgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIH0gfQorICAg
IGNhc2UgTXVzdENoZWNrQXJpdHk6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAg
ICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKG1fd2l0aEFyaXR5Q2hlY2spOworICAgICAgICAgICAgcmV0dXJuIG1fd2l0
aEFyaXR5Q2hlY2s7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOiB7CisjaWYg
RU5BQkxFKEpJVCkKKyAgICAgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnMqIHdy
YXBwZXJzID0gZW5zdXJlV3JhcHBlcnMoKTsKKyAgICAgICAgICAgIGlmICghd3JhcHBlcnMtPndp
dGhBcml0eUNoZWNrKQorICAgICAgICAgICAgICAgIHdyYXBwZXJzLT53aXRoQXJpdHlDaGVjayA9
IGdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKHZtLCBleGVjdXRhYmxlLCBtX3dp
dGhBcml0eUNoZWNrKTsKKyAgICAgICAgICAgIHJldHVybiB3cmFwcGVycy0+d2l0aEFyaXR5Q2hl
Y2suY29kZSgpOworI2Vsc2UKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisjZW5kaWYKKyAgICAgICAgfSB9CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIENvZGVQdHIoKTsKK30KKworTmF0aXZlSklUQ29kZTo6TmF0
aXZlSklUQ29kZShKSVRUeXBlIGppdFR5cGUpCisgICAgOiBKSVRDb2RlV2l0aENvZGVSZWYoaml0
VHlwZSkKK3sKK30KKworTmF0aXZlSklUQ29kZTo6TmF0aXZlSklUQ29kZShDb2RlUmVmIHJlZiwg
SklUVHlwZSBqaXRUeXBlKQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlwZSkK
K3sKK30KKworTmF0aXZlSklUQ29kZTo6fk5hdGl2ZUpJVENvZGUoKQoreworfQorCit2b2lkIE5h
dGl2ZUpJVENvZGU6OmluaXRpYWxpemVDb2RlUmVmKENvZGVSZWYgcmVmKQoreworICAgIEFTU0VS
VCghbV9yZWYpOworICAgIG1fcmVmID0gcmVmOworfQorCitKSVRDb2RlOjpDb2RlUHRyIE5hdGl2
ZUpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKAorICAgIFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0
eUNoZWNrTW9kZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKQoreworICAgIFJFTEVBU0VfQVNT
RVJUKCEhbV9yZWYpOworICAgIHJldHVybiBtX3JlZi5jb2RlKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIEpTQwogCiBuYW1lc3BhY2UgV1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q29kZS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTQgKzI2LDE0IEBACiAjaWZuZGVmIEpJVENv
ZGVfaAogI2RlZmluZSBKSVRDb2RlX2gKIAotI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElO
VCkKKyNpbmNsdWRlICJBcml0eUNoZWNrTW9kZS5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgog
I2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVk
ZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAi
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCi0jZW5kaWYKKyNpbmNsdWRlICJSZWdpc3RlclByZXNl
cnZhdGlvbk1vZGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTU0LDcgKzU0LDE0IEBAIHB1
YmxpYzoKICAgICB0eXBlZGVmIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBDb2RlUmVmOwogICAgIHR5
cGVkZWYgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIENvZGVQdHI7CiAKLSAgICBlbnVtIEpJVFR5cGUg
eyBOb25lLCBIb3N0Q2FsbFRodW5rLCBJbnRlcnByZXRlclRodW5rLCBCYXNlbGluZUpJVCwgREZH
SklULCBGVExKSVQgfTsKKyAgICBlbnVtIEpJVFR5cGUgOiB1aW50OF90IHsKKyAgICAgICAgTm9u
ZSwKKyAgICAgICAgSG9zdENhbGxUaHVuaywKKyAgICAgICAgSW50ZXJwcmV0ZXJUaHVuaywKKyAg
ICAgICAgQmFzZWxpbmVKSVQsCisgICAgICAgIERGR0pJVCwKKyAgICAgICAgRlRMSklUCisgICAg
fTsKICAgICAKICAgICBzdGF0aWMgSklUVHlwZSBib3R0b21UaWVySklUKCkKICAgICB7CkBAIC0x
NjQsNyArMTcxLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gaml0Q29kZS0+aml0VHlwZSgp
OwogICAgIH0KICAgICAKLSAgICB2aXJ0dWFsIENvZGVQdHIgYWRkcmVzc0ZvckNhbGwoKSA9IDA7
CisgICAgdmlydHVhbCBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2Uq
LCBBcml0eUNoZWNrTW9kZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpID0gMDsK
ICAgICB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcygpIHsgcmV0dXJuIGV4ZWN1dGFibGVBZGRyZXNz
QXRPZmZzZXQoMCk7IH0KICAgICB2aXJ0dWFsIHZvaWQqIGRhdGFBZGRyZXNzQXRPZmZzZXQoc2l6
ZV90IG9mZnNldCkgPSAwOwpAQCAtMTc1LDcgKzE4Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IEZUTDo6SklUQ29kZSogZnRsKCk7CiAgICAgdmlydHVhbCBGVEw6OkZvck9TUkVudHJ5SklUQ29k
ZSogZnRsRm9yT1NSRW50cnkoKTsKICAgICAKLSAgICBKU1ZhbHVlIGV4ZWN1dGUoVk0qLCBQcm90
b0NhbGxGcmFtZSosIFJlZ2lzdGVyKik7CisgICAgSlNWYWx1ZSBleGVjdXRlKFZNKiwgUHJvdG9D
YWxsRnJhbWUqKTsKICAgICAKICAgICB2b2lkKiBzdGFydCgpIHsgcmV0dXJuIGRhdGFBZGRyZXNz
QXRPZmZzZXQoMCk7IH0KICAgICB2aXJ0dWFsIHNpemVfdCBzaXplKCkgPSAwOwpAQCAtMTgzLDMx
ICsxOTAsNjIgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyh2b2lk
KikgPSAwOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SklUQ29kZT4gaG9zdEZ1bmN0aW9uKENv
ZGVSZWYpOwotCiBwcml2YXRlOgogICAgIEpJVFR5cGUgbV9qaXRUeXBlOwogfTsKIAotY2xhc3Mg
RGlyZWN0SklUQ29kZSA6IHB1YmxpYyBKSVRDb2RlIHsKK2NsYXNzIEpJVENvZGVXaXRoQ29kZVJl
ZiA6IHB1YmxpYyBKSVRDb2RlIHsKK3Byb3RlY3RlZDoKKyAgICBKSVRDb2RlV2l0aENvZGVSZWYo
SklUVHlwZSk7CisgICAgSklUQ29kZVdpdGhDb2RlUmVmKENvZGVSZWYsIEpJVFR5cGUpOworCiBw
dWJsaWM6Ci0gICAgRGlyZWN0SklUQ29kZShKSVRUeXBlKTsKLSAgICBEaXJlY3RKSVRDb2RlKGNv
bnN0IENvZGVSZWYsIEpJVFR5cGUpOwotICAgIHZpcnR1YWwgfkRpcmVjdEpJVENvZGUoKTsKLSAg
ICAKLSAgICB2b2lkIGluaXRpYWxpemVDb2RlUmVmKENvZGVSZWYgcmVmKTsKKyAgICB2aXJ0dWFs
IH5KSVRDb2RlV2l0aENvZGVSZWYoKTsKIAotICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNzRm9y
Q2FsbCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9m
ZnNldChzaXplX3Qgb2Zmc2V0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQqIGRhdGFBZGRy
ZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB1bnNpZ25l
ZCBvZmZzZXRPZih2b2lkKiBwb2ludGVySW50b0NvZGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
c2l6ZV90IHNpemUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnModm9pZCop
IG92ZXJyaWRlOwogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIENvZGVSZWYgbV9yZWY7CiB9
OwogCitjbGFzcyBEaXJlY3RKSVRDb2RlIDogcHVibGljIEpJVENvZGVXaXRoQ29kZVJlZiB7Citw
dWJsaWM6CisgICAgRGlyZWN0SklUQ29kZShKSVRUeXBlKTsKKyAgICBEaXJlY3RKSVRDb2RlKENv
ZGVSZWYsIENvZGVQdHIgd2l0aEFyaXR5Q2hlY2ssIEpJVFR5cGUpOworICAgIHZpcnR1YWwgfkRp
cmVjdEpJVENvZGUoKTsKKyAgICAKKyAgICB2b2lkIGluaXRpYWxpemVDb2RlUmVmKENvZGVSZWYs
IENvZGVQdHIgd2l0aEFyaXR5Q2hlY2spOworCisgICAgdmlydHVhbCBDb2RlUHRyIGFkZHJlc3NG
b3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9kZSwgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Nb2RlKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25XcmFwcGVycyB7CisgICAgICAgIENvZGVSZWYgd2l0aG91dEFyaXR5Q2hlY2s7
CisgICAgICAgIENvZGVSZWYgd2l0aEFyaXR5Q2hlY2s7CisgICAgfTsKKworICAgIFJlZ2lzdGVy
UHJlc2VydmF0aW9uV3JhcHBlcnMqIGVuc3VyZVdyYXBwZXJzKCk7CisgICAgCisgICAgQ29kZVB0
ciBtX3dpdGhBcml0eUNoZWNrOworICAgIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWdpc3RlclBy
ZXNlcnZhdGlvbldyYXBwZXJzPiBtX3dyYXBwZXJzOworfTsKKworY2xhc3MgTmF0aXZlSklUQ29k
ZSA6IHB1YmxpYyBKSVRDb2RlV2l0aENvZGVSZWYgeworcHVibGljOgorICAgIE5hdGl2ZUpJVENv
ZGUoSklUVHlwZSk7CisgICAgTmF0aXZlSklUQ29kZShDb2RlUmVmLCBKSVRUeXBlKTsKKyAgICB2
aXJ0dWFsIH5OYXRpdmVKSVRDb2RlKCk7CisgICAgCisgICAgdm9pZCBpbml0aWFsaXplQ29kZVJl
ZihDb2RlUmVmKTsKKworICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbChWTSYsIEV4
ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkg
b3ZlcnJpZGU7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNlIFdURiB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDExIEBAIG5hbWVzcGFjZSBKU0MgewogCiB2
b2lkIGdlbmVyaWNVbndpbmQoVk0qIHZtLCBFeGVjU3RhdGUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBl
eGNlcHRpb25WYWx1ZSkKIHsKKyAgICBpZiAoT3B0aW9uczo6YnJlYWtPblRocm93KCkpIHsKKyAg
ICAgICAgZGF0YUxvZygiSW4gY2FsbCBmcmFtZSAiLCBSYXdQb2ludGVyKGNhbGxGcmFtZSksICIg
Zm9yIGNvZGUgYmxvY2sgIiwgKmNhbGxGcmFtZS0+Y29kZUJsb2NrKCksICJcbiIpOworICAgICAg
ICBDUkFTSCgpOworICAgIH0KKyAgICAKICAgICBSRUxFQVNFX0FTU0VSVChleGNlcHRpb25WYWx1
ZSk7CiAgICAgSGFuZGxlckluZm8qIGhhbmRsZXIgPSB2bS0+aW50ZXJwcmV0ZXItPnVud2luZChj
YWxsRnJhbWUsIGV4Y2VwdGlvblZhbHVlKTsgLy8gVGhpcyBtYXkgdXBkYXRlIGNhbGxGcmFtZS4K
IApAQCAtNTYsNyArNjEsNyBAQCB2b2lkIGdlbmVyaWNVbndpbmQoVk0qIHZtLCBFeGVjU3RhdGUq
IGNhCiAgICAgICAgIGNhdGNoUm91dGluZSA9IGNhdGNoUENGb3JJbnRlcnByZXRlci0+dS5wb2lu
dGVyOwogI2VuZGlmCiAgICAgfSBlbHNlCi0gICAgICAgIGNhdGNoUm91dGluZSA9IExMSW50Ojpn
ZXRDb2RlUHRyKHJldHVybkZyb21KYXZhU2NyaXB0KTsKKyAgICAgICAgY2F0Y2hSb3V0aW5lID0g
TExJbnQ6OmdldENvZGVQdHIoaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24pOwogICAgIAogICAgIHZt
LT5jYWxsRnJhbWVGb3JUaHJvdyA9IGNhbGxGcmFtZTsKICAgICB2bS0+dGFyZ2V0TWFjaGluZVBD
Rm9yVGhyb3cgPSBjYXRjaFJvdXRpbmU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMTYyOTYx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgSklUSW5saW5lQ2FjaGVHZW5lcmF0
b3I6OkpJVElubGluZUNhY2hlRwogCiBKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9y
KAogICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0
IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3Rl
ciwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIGJvb2wgcmVnaXN0ZXJzRmx1
c2hlZCkKKyAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgYm9vbCByZWdp
c3RlcnNGbHVzaGVkKQogICAgIDogSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IoY29kZUJsb2NrLCBj
b2RlT3JpZ2luKQogICAgICwgbV9iYXNlKGJhc2UpCiAgICAgLCBtX3ZhbHVlKHZhbHVlKQpAQCAt
NjIsNyArNjIsNiBAQCBKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKAogICAgIG1f
c3R1YkluZm8tPnBhdGNoLnVzZWRSZWdpc3RlcnMuc2V0KGJhc2UpOwogICAgIG1fc3R1YkluZm8t
PnBhdGNoLnVzZWRSZWdpc3RlcnMuc2V0KHZhbHVlKTsKICAgICAKLSAgICBtX3N0dWJJbmZvLT5w
YXRjaC5jYWxsRnJhbWVSZWdpc3RlciA9IHN0YXRpY19jYXN0PGludDhfdD4oY2FsbEZyYW1lUmVn
aXN0ZXIpOwogICAgIG1fc3R1YkluZm8tPnBhdGNoLmJhc2VHUFIgPSBzdGF0aWNfY2FzdDxpbnQ4
X3Q+KGJhc2UucGF5bG9hZEdQUigpKTsKICAgICBtX3N0dWJJbmZvLT5wYXRjaC52YWx1ZUdQUiA9
IHN0YXRpY19jYXN0PGludDhfdD4odmFsdWUucGF5bG9hZEdQUigpKTsKICNpZiBVU0UoSlNWQUxV
RTMyXzY0KQpAQCAtMTMwLDExICsxMjksOSBAQCB2b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6Omdl
bmVyYXRlRmFzdFBhCiAKIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OkpJVFB1dEJ5SWRHZW5lcmF0b3Io
CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3Qg
UmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVy
LCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsCi0g
ICAgYm9vbCByZWdpc3RlcnNGbHVzaGVkLCBFQ01BTW9kZSBlY21hTW9kZSwgUHV0S2luZCBwdXRL
aW5kKQotICAgIDogSklUQnlJZEdlbmVyYXRvcigKLSAgICAgICAgY29kZUJsb2NrLCBjb2RlT3Jp
Z2luLCB1c2VkUmVnaXN0ZXJzLCBjYWxsRnJhbWVSZWdpc3RlciwgYmFzZSwgdmFsdWUsCi0gICAg
ICAgIHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3Mg
dmFsdWUsIEdQUlJlZyBzY3JhdGNoLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQsCisgICAgRUNNQU1v
ZGUgZWNtYU1vZGUsIFB1dEtpbmQgcHV0S2luZCkKKyAgICA6IEpJVEJ5SWRHZW5lcmF0b3IoY29k
ZUJsb2NrLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzLCBiYXNlLCB2YWx1ZSwgcmVnaXN0ZXJz
Rmx1c2hlZCkKICAgICAsIG1fc2NyYXRjaChzY3JhdGNoKQogICAgICwgbV9lY21hTW9kZShlY21h
TW9kZSkKICAgICAsIG1fcHV0S2luZChwdXRLaW5kKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw4IEBAIHByb3RlY3RlZDoKICAgICBKSVRC
eUlkR2VuZXJhdG9yKCkgeyB9CiAKICAgICBKSVRCeUlkR2VuZXJhdG9yKAotICAgICAgICBDb2Rl
QmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYsIEdQUlJlZyBjYWxsRnJhbWVS
ZWdpc3RlciwKLSAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIGJv
b2wgcmVnaXN0ZXJzRmx1c2hlZCk7CisgICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNv
bnN0IFJlZ2lzdGVyU2V0JiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsCisg
ICAgICAgIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCk7CiAgICAgCiBwdWJsaWM6CiAgICAgdm9pZCBy
ZXBvcnRTbG93UGF0aENhbGwoTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQYXRoQmVnaW4sIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwpCkBAIC05NiwxMSArOTYsOCBAQCBwdWJsaWM6CiAKICAg
ICBKSVRHZXRCeUlkR2VuZXJhdG9yKAogICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29k
ZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKLSAg
ICAgICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVl
UmVncyB2YWx1ZSwKLSAgICAgICAgYm9vbCByZWdpc3RlcnNGbHVzaGVkKQotICAgICAgICA6IEpJ
VEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgICAgICBjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRS
ZWdpc3RlcnMsIGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlLCB2YWx1ZSwKLSAgICAgICAgICAgIHJl
Z2lzdGVyc0ZsdXNoZWQpCisgICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZh
bHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgICAgIDogSklUQnlJZEdlbmVyYXRvcihj
b2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCByZWdpc3Rl
cnNGbHVzaGVkKQogICAgIHsKICAgICB9CiAgICAgCkBAIC0xMTIsOSArMTA5LDggQEAgcHVibGlj
OgogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IoKSB7IH0KIAogICAgIEpJVFB1dEJ5SWRHZW5lcmF0
b3IoCi0gICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1
c2VkUmVnaXN0ZXJzLCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgIEpTVmFsdWVS
ZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgYm9vbCByZWdpc3Rl
cnNGbHVzaGVkLAotICAgICAgICBFQ01BTW9kZSwgUHV0S2luZCk7CisgICAgICAgIENvZGVCbG9j
ayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVl
UmVncyBiYXNlLAorICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIGJv
b2wgcmVnaXN0ZXJzRmx1c2hlZCwgRUNNQU1vZGUsIFB1dEtpbmQpOwogICAgIAogICAgIHZvaWQg
Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOwogICAgIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw3ICs5
Myw2IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmVtaXRMb2FkQ2hhcmFjdGUKIEFMV0FZU19J
TkxJTkUgSklUOjpDYWxsIEpJVDo6ZW1pdE5ha2VkQ2FsbChDb2RlUHRyIGZ1bmN0aW9uKQogewog
ICAgIEFTU0VSVChtX2J5dGVjb2RlT2Zmc2V0ICE9ICh1bnNpZ25lZCktMSk7IC8vIFRoaXMgbWV0
aG9kIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBkdXJpbmcgaG90L2NvbGQgcGF0aCBnZW5lcmF0aW9u
LCBzbyB0aGF0IG1fYnl0ZWNvZGVPZmZzZXQgaXMgc2V0LgotCiAgICAgQ2FsbCBuYWtlZENhbGwg
PSBuZWFyQ2FsbCgpOwogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQobmFrZWRDYWxsLCBt
X2J5dGVjb2RlT2Zmc2V0LCBmdW5jdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgcmV0
dXJuIG5ha2VkQ2FsbDsKQEAgLTIyMywyMSArMjIyLDIxIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25D
aGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQogCi1BTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9F
WiBvcGVyYXRpb24sIGludDMyX3Qgb3ApCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FQ0Mgb3BlcmF0aW9uLCBSZWdp
c3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihvcCkpOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMik7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUNDIG9wZXJhdGlvbiwgUmVn
aXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyKQorQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRU9Kc3Mgb3Bl
cmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCiB7CiAgICAgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyKTsKICAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9F
T0pzcyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMikKK0FM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNwcnRf
SklUT3BlcmF0aW9uX0VaIG9wZXJhdGlvbiwgaW50MzJfdCBvcCkKIHsKLSAgICBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIpOworICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIob3ApKTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCkBAIC0yNzcsNiArMjc2LDEzIEBAIEFMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2Fs
bFdpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbik7CiB9CiAKK0FMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRp
b25DaGVjayhKX0pJVE9wZXJhdGlvbl9FRSBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3ApCit7
CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wKTsKKyAgICB1cGRhdGVUb3BD
YWxsRnJhbWUoKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworfQorCiBBTFdB
WVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxs
RnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKFZfSklUT3BlcmF0aW9uX0VDYiBvcGVyYXRpb24sIENv
ZGVCbG9jayogcG9pbnRlcikKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1
c3RlZEltbVB0cihwb2ludGVyKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEyLCAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMiwgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJKU1ZhcmlhYmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgor
I2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiU2xv
d1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAKQEAgLTQ4LDYgKzQ5
LDcgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdgogewogICAgIENh
bGwgbmF0aXZlQ2FsbDsKIAorICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgZW1pdFB1
dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKDAsIEpTU3RhY2s6OkNvZGVCbG9jayk7CiAgICAg
c3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsICZtX3ZtLT50b3BDYWxsRnJhbWUpOwogCkBAIC01
OCwyMSArNjAsMTcgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdgog
ICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIHJl
Z1QxLCByZWdUMCk7CiAgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgSlNT
dGFjazo6U2NvcGVDaGFpbik7CiAKLSAgICBwZWVrKHJlZ1QxKTsKLSAgICBlbWl0UHV0UmV0dXJu
UENUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSk7Ci0KICAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246
ICAgICAgZihlY3gsIGVkeCwgLi4uKTsKICAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25hdHVyZTog
ZihFeGVjU3RhdGUqKTsKICAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6
OmVjeCk7CiAKLSAgICBzdWJQdHIoVHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZvaWQqKSksIHN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsgLy8gQWxpZ24gc3RhY2sgYWZ0ZXIgY2FsbC4KLQotICAgIG1v
dmUocmVnVDAsIGNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBm
cmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCisgICAgc3ViUHRyKFRy
dXN0ZWRJbW0zMig4KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBmb3Ig
Y2FsbC4KKyAgICBzdG9yZVB0cihYODZSZWdpc3RlcnM6OmVjeCwgQWRkcmVzcyhzdGFja1BvaW50
ZXJSZWdpc3RlcikpOwogCiAgICAgLy8gY2FsbCB0aGUgZnVuY3Rpb24KICAgICBuYXRpdmVDYWxs
ID0gY2FsbCgpOwogCi0gICAgYWRkUHRyKFRydXN0ZWRJbW0zMigxNiAtIHNpemVvZih2b2lkKikp
LCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMig4KSwgc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOwogCiAjZWxpZiBDUFUoQVJNKSB8fCBDUFUoU0g0KSB8fCBDUFUo
TUlQUykKICAgICAvLyBMb2FkIGNhbGxlciBmcmFtZSdzIHNjb3BlIGNoYWluIGludG8gdGhpcyBj
YWxsZnJhbWUgc28gdGhhdCB3aGF0ZXZlciB3ZSBjYWxsIGNhbiBnZXQgdG8gaXRzIGdsb2JhbCBk
YXRhLgpAQCAtODAsOSArNzgsNiBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29tcGlsZUNU
SU5hdGl2CiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVD
aGFpbiwgcmVnVDEsIHJlZ1QyKTsKICAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJl
Z1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKIAotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0Fm
dGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQKLSAgICBlbWl0UHV0UmV0dXJuUENU
b0NhbGxGcmFtZUhlYWRlcihyZWdUMyk7Ci0KICNpZiBDUFUoTUlQUykKICAgICAvLyBBbGxvY2F0
ZSBzdGFjayBzcGFjZSBmb3IgKHVudXNlZCkgMTYgYnl0ZXMgKDgtYnl0ZSBhbGlnbmVkKSBmb3Ig
NCBhcmd1bWVudHMuCiAgICAgc3ViUHRyKFRydXN0ZWRJbW0zMigxNiksIHN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKQEAgLTkzLDcgKzg4LDYgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNvbXBp
bGVDVElOYXRpdgogICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIGFyZ3VtZW50R1BSMCk7CiAK
ICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIGFyZ3Vt
ZW50R1BSMSk7Ci0gICAgbW92ZShyZWdUMiwgY2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5
IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFj
ay4KICAgICBsb2FkUHRyKEFkZHJlc3MoYXJndW1lbnRHUFIxLCBPQkpFQ1RfT0ZGU0VUT0YoSlNG
dW5jdGlvbiwgbV9leGVjdXRhYmxlKSksIHJlZ1QyKTsKIAogICAgIC8vIGNhbGwgdGhlIGZ1bmN0
aW9uCkBAIC0xMTMsMzAgKzEwNywyNyBAQCBKSVQ6OkNvZGVSZWYgSklUOjpwcml2YXRlQ29tcGls
ZUNUSU5hdGl2CiAgICAgLy8gQ2hlY2sgZm9yIGFuIGV4Y2VwdGlvbgogICAgIEp1bXAgc2F3RXhj
ZXB0aW9uID0gYnJhbmNoMzIoTm90RXF1YWwsIEFic29sdXRlQWRkcmVzcyhyZWludGVycHJldF9j
YXN0PGNoYXIqPih2bS0+YWRkcmVzc09mRXhjZXB0aW9uKCkpICsgT0JKRUNUX09GRlNFVE9GKEpT
VmFsdWUsIHUuYXNCaXRzLnRhZykpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRh
ZykpOyAKIAorICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgLy8gUmV0dXJuLgogICAg
IHJldCgpOwogCiAgICAgLy8gSGFuZGxlIGFuIGV4Y2VwdGlvbgogICAgIHNhd0V4Y2VwdGlvbi5s
aW5rKHRoaXMpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgcHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QxKTsKLQotICAgIG1vdmUoVHJ1c3RlZEltbVB0
cigmdm0tPmV4Y2VwdGlvbkxvY2F0aW9uKSwgcmVnVDIpOwotICAgIHN0b3JlUHRyKHJlZ1QxLCBy
ZWdUMik7CiAgICAgc3RvcmVQdHIoY2FsbEZyYW1lUmVnaXN0ZXIsICZtX3ZtLT50b3BDYWxsRnJh
bWUpOwogCiAjaWYgQ1BVKFg4NikKLSAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC0xMiksIHN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKLSAgICBwdXNoKGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBhZGRQ
dHIoVHJ1c3RlZEltbTMyKC00KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGxvYWRQdHIo
QWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciksIFg4NlJlZ2lzdGVyczo6ZWN4KTsKKyAgICBwdXNo
KFg4NlJlZ2lzdGVyczo6ZWN4KTsKICNlbHNlCi0gICAgbW92ZShjYWxsRnJhbWVSZWdpc3Rlciwg
YXJndW1lbnRHUFIwKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIpLCBh
cmd1bWVudEdQUjApOwogI2VuZGlmCiAgICAgbW92ZShUcnVzdGVkSW1tUHRyKEZ1bmN0aW9uUHRy
KG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKS52YWx1ZSgpKSwgcmVnVDMpOwogICAgIGNhbGwo
cmVnVDMpOwogCiAjaWYgQ1BVKFg4NikKLSAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDE2KSwgc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoOCksIHN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKICNlbmRpZgogCiAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcigpOwpA
QCAtMTc1LDcgKzE2Niw3IEBAIHZvaWQgSklUOjplbWl0X29wX2VuZChJbnN0cnVjdGlvbiogY3Vy
cmUKIHsKICAgICBBU1NFUlQocmV0dXJuVmFsdWVHUFIgIT0gY2FsbEZyYW1lUmVnaXN0ZXIpOwog
ICAgIGVtaXRMb2FkKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QxLCByZWdU
MCk7Ci0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oQWRkcmVzcyhjYWxsRnJh
bWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CisgICAgZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKIH0KIApAQCAtOTI3LDYgKzkxOCw5IEBAIHZvaWQg
SklUOjplbWl0X29wX2NhdGNoKEluc3RydWN0aW9uKiBjdXIKICAgICBtb3ZlKFRydXN0ZWRJbW1Q
dHIobV92bSksIHJlZ1QzKTsKICAgICAvLyBvcGVyYXRpb25UaHJvdyByZXR1cm5zIHRoZSBjYWxs
RnJhbWUgZm9yIHRoZSBoYW5kbGVyLgogICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QzLCBWTTo6Y2Fs
bEZyYW1lRm9yVGhyb3dPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKworICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKGNvZGVCbG9jaygpKSAqIHNpemVv
ZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwor
CiAgICAgLy8gTm93IHN0b3JlIHRoZSBleGNlcHRpb24gcmV0dXJuZWQgYnkgb3BlcmF0aW9uVGhy
b3cuCiAgICAgbG9hZDMyKEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSArIE9C
SkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSksIHJlZ1QwKTsKICAgICBs
b2FkMzIoQWRkcmVzcyhyZWdUMywgVk06OmV4Y2VwdGlvbk9mZnNldCgpICsgT0JKRUNUX09GRlNF
VE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCByZWdUMSk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYg
KzM4LDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgogI2lu
Y2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogCkBAIC03Myw3ICs3NCw3IEBAIHZvaWQgSklUOjpl
bWl0X29wX2VuZChJbnN0cnVjdGlvbiogY3VycmUKIHsKICAgICBSRUxFQVNFX0FTU0VSVChyZXR1
cm5WYWx1ZUdQUiAhPSBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZXR1cm5WYWx1ZUdQUik7Ci0g
ICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oQWRkcmVzcyhjYWxsRnJhbWVSZWdp
c3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CisgICAgZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICByZXQoKTsKIH0KIApAQCAtMjYyLDE0ICsyNjMsOCBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9yZXQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgLy8gUmV0dXJuIHRoZSByZXN1bHQg
aW4gJWVheC4KICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQsIHJldHVyblZhbHVlR1BSKTsKIAotICAgIC8vIEdyYWIgdGhlIHJldHVybiBh
ZGRyZXNzLgotICAgIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVnVDEp
OwotCi0gICAgLy8gUmVzdG9yZSBvdXIgY2FsbGVyJ3MgInIiLgotICAgIGVtaXRHZXRDYWxsZXJG
cmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwotCi0gICAgLy8g
UmV0dXJuLgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QxKTsKKyAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTI4NSwxNCArMjgwLDggQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfcmV0X29iamVjdF9vcl90aGlzKElucwogICAgIGxvYWRQdHIoQWRkcmVzcyhyZXR1cm5WYWx1
ZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHJlZ1QyKTsKICAgICBKdW1wIG5vdE9i
amVjdCA9IGVtaXRKdW1wSWZOb3RPYmplY3QocmVnVDIpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0
dXJuIGFkZHJlc3MuCi0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihy
ZWdUMSk7Ci0KLSAgICAvLyBSZXN0b3JlIG91ciBjYWxsZXIncyAiciIuCi0gICAgZW1pdEdldENh
bGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KICAg
ICAvLyBSZXR1cm4uCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDEp
OworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiAKICAgICAvLyBSZXR1
cm4gJ3RoaXMnIGluICVlYXguCkBAIC0zMDAsMTQgKzI4OSw4IEBAIHZvaWQgSklUOjplbWl0X29w
X3JldF9vYmplY3Rfb3JfdGhpcyhJbnMKICAgICBub3RPYmplY3QubGluayh0aGlzKTsKICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQsIHJl
dHVyblZhbHVlR1BSKTsKIAotICAgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIGVt
aXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVnVDEpOwotCi0gICAgLy8gUmVz
dG9yZSBvdXIgY2FsbGVyJ3MgInIiLgotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwotCiAgICAgLy8gUmV0dXJuLgotICAgIHJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QxKTsKKyAgICBlbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC02NTAsNiArNjMzLDkgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfY2F0Y2goSW5zdHJ1Y3Rpb24qIGN1cgogewogICAgIG1vdmUoVHJ1c3RlZEltbVB0
cihtX3ZtKSwgcmVnVDMpOwogICAgIGxvYWQ2NChBZGRyZXNzKHJlZ1QzLCBWTTo6Y2FsbEZyYW1l
Rm9yVGhyb3dPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKworICAgIGFkZFB0cihUcnVz
dGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKGNvZGVCbG9jaygpKSAqIHNpemVvZihSZWdp
c3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCiAgICAg
bG9hZDY0KEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSksIHJlZ1QwKTsKICAg
ICBzdG9yZTY0KFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKSksIEFkZHJl
c3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSkpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CkBAIC0xMTAzLDIwICsxMDg5
LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbG9vcF9oaW50KEluc3RydWN0aW9uKgogewogICAgIC8v
IEVtaXQgdGhlIEpJVCBvcHRpbWl6YXRpb24gY2hlY2s6IAogICAgIGlmIChjYW5CZU9wdGltaXpl
ZCgpKSB7Ci0gICAgICAgIGlmIChPcHRpb25zOjplbmFibGVPU1JFbnRyeUluTG9vcHMoKSkgewot
ICAgICAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoQWRkMzIoUG9zaXRpdmVPclplcm8sIFRydXN0
ZWRJbW0zMihPcHRpb25zOjpleGVjdXRpb25Db3VudGVySW5jcmVtZW50Rm9yTG9vcCgpKSwKLSAg
ICAgICAgICAgICAgICBBYnNvbHV0ZUFkZHJlc3MobV9jb2RlQmxvY2stPmFkZHJlc3NPZkpJVEV4
ZWN1dGVDb3VudGVyKCkpKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBBZGQg
d2l0aCBzYXR1cmF0aW9uLgotICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fY29kZUJs
b2NrLT5hZGRyZXNzT2ZKSVRFeGVjdXRlQ291bnRlcigpKSwgcmVnVDMpOwotICAgICAgICAgICAg
bG9hZDMyKHJlZ1QzLCByZWdUMik7Ci0gICAgICAgICAgICBKdW1wIGRvbnRBZGQgPSBicmFuY2gz
MigKLSAgICAgICAgICAgICAgICBHcmVhdGVyVGhhbiwgcmVnVDIsCi0gICAgICAgICAgICAgICAg
VHJ1c3RlZEltbTMyKHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpIC0gT3B0aW9u
czo6ZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZvckxvb3AoKSkpOwotICAgICAgICAgICAgYWRk
MzIoVHJ1c3RlZEltbTMyKE9wdGlvbnM6OmV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JMb29w
KCkpLCByZWdUMik7Ci0gICAgICAgICAgICBzdG9yZTMyKHJlZ1QyLCByZWdUMyk7Ci0gICAgICAg
ICAgICBkb250QWRkLmxpbmsodGhpcyk7Ci0gICAgICAgIH0KKyAgICAgICAgYWRkU2xvd0Nhc2Uo
YnJhbmNoQWRkMzIoUG9zaXRpdmVPclplcm8sIFRydXN0ZWRJbW0zMihPcHRpb25zOjpleGVjdXRp
b25Db3VudGVySW5jcmVtZW50Rm9yTG9vcCgpKSwKKyAgICAgICAgICAgIEFic29sdXRlQWRkcmVz
cyhtX2NvZGVCbG9jay0+YWRkcmVzc09mSklURXhlY3V0ZUNvdW50ZXIoKSkpKTsKICAgICB9CiAK
ICAgICAvLyBFbWl0IHRoZSB3YXRjaGRvZyB0aW1lciBjaGVjazoKQEAgLTExMjgsMTEgKzExMDIs
MTIgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2xvb3BfaGludChJbnN0cnVjdAogewogI2lmIEVO
QUJMRShERkdfSklUKQogICAgIC8vIEVtaXQgdGhlIHNsb3cgcGF0aCBmb3IgdGhlIEpJVCBvcHRp
bWl6YXRpb24gY2hlY2s6Ci0gICAgaWYgKGNhbkJlT3B0aW1pemVkKCkgJiYgT3B0aW9uczo6ZW5h
YmxlT1NSRW50cnlJbkxvb3BzKCkpIHsKKyAgICBpZiAoY2FuQmVPcHRpbWl6ZWQoKSkgewogICAg
ICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgICAgIAogICAgICAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbk9wdGltaXplLCBtX2J5dGVjb2RlT2Zmc2V0KTsKICAgICAgICAgSnVtcCBub09w
dGltaXplZEVudHJ5ID0gYnJhbmNoVGVzdFB0cihaZXJvLCByZXR1cm5WYWx1ZUdQUik7CisgICAg
ICAgIG1vdmUocmV0dXJuVmFsdWVHUFIyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAg
IGp1bXAocmV0dXJuVmFsdWVHUFIpOwogICAgICAgICBub09wdGltaXplZEVudHJ5LmxpbmsodGhp
cyk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTIgKzMwLDEyIEBACiAjaW5jbHVkZSAiQXJn
dW1lbnRzLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNhbGxG
cmFtZUlubGluZXMuaCIKLSNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJE
RkdDb21waWxhdGlvbk1vZGUuaCIKICNpbmNsdWRlICJERkdEcml2ZXIuaCIKICNpbmNsdWRlICJE
RkdPU1JFbnRyeS5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCiAjaW5jbHVkZSAiRXJyb3Iu
aCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5nU2NvcGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0
ZXIuaCIKICNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSklULmgi
CkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgKiBfUmV0dXJuQWRkcmVzcyh2b2lkKTsKICNlbmRpZgog
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25TdGFja0NoZWNrKEV4ZWNTdGF0ZSogZXhl
YywgQ29kZUJsb2NrKiBjb2RlQmxvY2spCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhy
b3dTdGFja092ZXJmbG93RXJyb3IoRXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNvZGVCbG9j
aykKIHsKICAgICAvLyBXZSBwYXNzIGluIG91ciBvd24gY29kZSBibG9jaywgYmVjYXVzZSB0aGUg
Y2FsbGZyYW1lIGhhc24ndCBiZWVuIHBvcHVsYXRlZC4KICAgICBWTSogdm0gPSBjb2RlQmxvY2st
PnZtKCk7CkBAIC04MCwxMSArODAsOCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3Rh
Y2tDaGVjayhFCiAgICAgICAgIGNhbGxlckZyYW1lID0gZXhlYzsKIAogICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxlckZyYW1lKTsKLQotICAgIEpTU3RhY2smIHN0YWNr
ID0gdm0tPmludGVycHJldGVyLT5zdGFjaygpOwotCi0gICAgaWYgKFVOTElLRUxZKCFzdGFjay5n
cm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2st
PmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKV0pKSkKLSAgICAgICAgdm0tPnRocm93RXhj
ZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUp
KTsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZSgqdm0pOworICAgIHZtLT50aHJv
d0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZy
YW1lKSk7CiB9CiAKIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsQXJpdHlDaGVj
ayhFeGVjU3RhdGUqIGV4ZWMpCkBAIC05Nyw3ICs5NCw3IEBAIGludDMyX3QgSklUX09QRVJBVElP
TiBvcGVyYXRpb25DYWxsQXJpdHkKIAogICAgIGludDMyX3QgbWlzc2luZ0FyZ0NvdW50ID0gQ29t
bW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4ZWMsICZzdGFjaywgQ29kZUZvckNhbGwpOwog
ICAgIGlmIChtaXNzaW5nQXJnQ291bnQgPCAwKQotICAgICAgICB2bS0+dGhyb3dFeGNlcHRpb24o
Y2FsbGVyRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsZXJGcmFtZSkpOworICAg
ICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsZXJGcmFtZSk7CiAKICAgICByZXR1cm4g
bWlzc2luZ0FyZ0NvdW50OwogfQpAQCAtMTEyLDcgKzEwOSw3IEBAIGludDMyX3QgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Db25zdHJ1Y3QKIAogICAgIGludDMyX3QgbWlzc2luZ0FyZ0NvdW50ID0g
Q29tbW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4ZWMsICZzdGFjaywgQ29kZUZvckNvbnN0
cnVjdCk7CiAgICAgaWYgKG1pc3NpbmdBcmdDb3VudCA8IDApCi0gICAgICAgIHZtLT50aHJvd0V4
Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZyYW1l
KSk7CisgICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZyYW1lKTsKIAogICAg
IHJldHVybiBtaXNzaW5nQXJnQ291bnQ7CiB9CkBAIC02MTIsMTUgKzYwOSwxMyBAQCB2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWCiAgICAgZGlyZWN0UHV0QnlWYWwoZXhl
YywgYXNPYmplY3QoYmFzZVZhbHVlKSwgc3Vic2NyaXB0LCB2YWx1ZSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjQ2Fs
bGVlKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVj
U3RhdGUqIGV4ZWMsIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICBDYWxsRnJhbWUqIGNh
bGxlckZyYW1lID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKLSAgICBBU1NFUlQoZXhlY0Nh
bGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmNvZGVUeXBlKCkgIT0gRnVuY3Rpb25D
b2RlCi0gICAgICAgIHx8ICFleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+
bmVlZHNGdWxsU2NvcGVDaGFpbigpCi0gICAgICAgIHx8IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1l
KCktPnVuY2hlY2tlZFIoZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmFj
dGl2YXRpb25SZWdpc3RlcigpLm9mZnNldCgpKS5qc1ZhbHVlKCkpOworICAgIEFTU0VSVChleGVj
LT5jb2RlQmxvY2soKS0+Y29kZVR5cGUoKSAhPSBGdW5jdGlvbkNvZGUKKyAgICAgICAgfHwgIWV4
ZWMtPmNvZGVCbG9jaygpLT5uZWVkc0Z1bGxTY29wZUNoYWluKCkKKyAgICAgICAgfHwgZXhlYy0+
dW5jaGVja2VkUihleGVjLT5jb2RlQmxvY2soKS0+YWN0aXZhdGlvblJlZ2lzdGVyKCkub2Zmc2V0
KCkpLmpzVmFsdWUoKSk7CiAKLSAgICBleGVjQ2FsbGVlLT5zZXRTY29wZShjYWxsZXJGcmFtZS0+
c2NvcGUoKSk7Ci0gICAgZXhlY0NhbGxlZS0+c2V0UmV0dXJuUEMoc3RhdGljX2Nhc3Q8SW5zdHJ1
Y3Rpb24qPihPVVJfUkVUVVJOX0FERFJFU1MpKTsKKyAgICBleGVjQ2FsbGVlLT5zZXRTY29wZShl
eGVjLT5zY29wZSgpKTsKICAgICBleGVjQ2FsbGVlLT5zZXRDb2RlQmxvY2soMCk7CiAKICAgICBp
ZiAoIWlzSG9zdEZ1bmN0aW9uKGV4ZWNDYWxsZWUtPmNhbGxlZUFzVmFsdWUoKSwgZ2xvYmFsRnVu
Y0V2YWwpKQpAQCAtNjg1LDcgKzY4MCw4IEBAIHN0YXRpYyB2b2lkKiBoYW5kbGVIb3N0Q2FsbChF
eGVjU3RhdGUqIGUKICAgICByZXR1cm4gdm0tPmdldENUSVN0dWIodGhyb3dFeGNlcHRpb25Gcm9t
Q2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKIH0KIAot
aW5saW5lIGNoYXIqIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGtpbmQpCitpbmxpbmUgY2hhciogbGlua0ZvcigKKyAgICBFeGVjU3RhdGUqIGV4
ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBleGVjQ2FsbGVlLT5j
YWxsZXJGcmFtZSgpOwogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwpAQCAtNzA0LDM4ICs3MDAs
NTIgQEAgaW5saW5lIGNoYXIqIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbAogICAgIENvZGVC
bG9jayogY29kZUJsb2NrID0gMDsKICAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IGV4
ZWMtPmNvZGVCbG9jaygpLT5nZXRDYWxsTGlua0luZm8oZXhlY0NhbGxlZS0+cmV0dXJuUEMoKSk7
CiAgICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpCi0gICAgICAgIGNvZGVQdHIg
PSBleGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2FsbCgp
OworICAgICAgICBjb2RlUHRyID0gZXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcigqdm0sIGtpbmQs
IE11c3RDaGVja0FyaXR5LCByZWdpc3RlcnMpOwogICAgIGVsc2UgewogICAgICAgICBGdW5jdGlv
bkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9IHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhl
Y3V0YWJsZSo+KGV4ZWN1dGFibGUpOwogICAgICAgICBKU09iamVjdCogZXJyb3IgPSBmdW5jdGlv
bkV4ZWN1dGFibGUtPnByZXBhcmVGb3JFeGVjdXRpb24oZXhlY0NhbGxlZSwgY2FsbGVlLT5zY29w
ZSgpLCBraW5kKTsKICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICB2bS0+dGhyb3dF
eGNlcHRpb24oZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKKyAgICAgICAg
ICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpOwogICAgICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHZtLT5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNh
bGxTbG93UGF0aEdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogICAgICAg
ICB9CiAgICAgICAgIGNvZGVCbG9jayA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Y29kZUJsb2NrRm9y
KGtpbmQpOworICAgICAgICBBcml0eUNoZWNrTW9kZSBhcml0eTsKICAgICAgICAgaWYgKGV4ZWND
YWxsZWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+
KGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSB8fCBjYWxsTGlua0luZm8uY2FsbFR5cGUgPT0g
Q2FsbExpbmtJbmZvOjpDYWxsVmFyYXJncykKLSAgICAgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlv
bkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5kKTsKKyAg
ICAgICAgICAgIGFyaXR5ID0gTXVzdENoZWNrQXJpdHk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3Ioa2lu
ZCktPmFkZHJlc3NGb3JDYWxsKCk7CisgICAgICAgICAgICBhcml0eSA9IEFyaXR5Q2hlY2tOb3RS
ZXF1aXJlZDsKKyAgICAgICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+ZW50cnlwb2lu
dEZvcigqdm0sIGtpbmQsIGFyaXR5LCByZWdpc3RlcnMpOwogICAgIH0KICAgICBpZiAoIWNhbGxM
aW5rSW5mby5zZWVuT25jZSgpKQogICAgICAgICBjYWxsTGlua0luZm8uc2V0U2VlbigpOwogICAg
IGVsc2UKLSAgICAgICAgbGlua0ZvcihleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIGNvZGVCbG9j
aywgY2FsbGVlLCBjb2RlUHRyLCBraW5kKTsKKyAgICAgICAgbGlua0ZvcihleGVjQ2FsbGVlLCBj
YWxsTGlua0luZm8sIGNvZGVCbG9jaywgY2FsbGVlLCBjb2RlUHRyLCBraW5kLCByZWdpc3RlcnMp
OwogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb2RlUHRyLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpOwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4
ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICByZXR1cm4gbGlua0ZvcihleGVjQ2FsbGVlLCBD
b2RlRm9yQ2FsbCk7CisgICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGws
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQogCiBjaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewotICAg
IHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJldHVy
biBsaW5rRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QsIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTm90UmVxdWlyZWQpOworfQorCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtD
YWxsVGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIHJldHVy
biBsaW5rRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMp
OwogfQogCi1pbmxpbmUgY2hhciogdmlydHVhbEZvcldpdGhGdW5jdGlvbihFeGVjU3RhdGUqIGV4
ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgSlNDZWxsKiYgY2FsbGVlQXNG
dW5jdGlvbkNlbGwpCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3RU
aGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCit7CisgICAgcmV0dXJuIGxp
bmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0cnVjdCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJz
KTsKK30KKworaW5saW5lIGNoYXIqIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oCisgICAgRXhlY1N0
YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTW9kZSByZWdpc3RlcnMsCisgICAgSlNDZWxsKiYgY2FsbGVlQXNGdW5jdGlvbkNl
bGwpCiB7CiAgICAgRXhlY1N0YXRlKiBleGVjID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsK
ICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKQEAgLTc1NywxNiArNzY3LDIwIEBAIGlubGluZSBj
aGFyKiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKEV4ZWMKICAgICAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNoYXIqPih2bS0+Z2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlvbkZyb21DYWxs
U2xvd1BhdGhHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKICAgICAgICAg
fQogICAgIH0KLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oZXhlY3V0YWJsZS0+
Z2VuZXJhdGVkSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQpLmV4ZWN1dGFibGVBZGRyZXNz
KCkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihleGVjdXRhYmxlLT5lbnRy
eXBvaW50Rm9yKAorICAgICAgICAqdm0sIGtpbmQsIE11c3RDaGVja0FyaXR5LCByZWdpc3RlcnMp
LmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogfQogCi1pbmxpbmUgY2hhciogdmlydHVhbEZvcihFeGVj
U3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK2lubGluZSBj
aGFyKiB2aXJ0dWFsRm9yKAorICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewog
ICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVkOwotICAgIHJldHVybiB2aXJ0
dWFsRm9yV2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIGtpbmQsIGNhbGxlZUFzRnVuY3Rpb25DZWxs
SWdub3JlZCk7CisgICAgcmV0dXJuIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwg
a2luZCwgcmVnaXN0ZXJzLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbElnbm9yZWQpOwogfQogCi1zdGF0
aWMgYm9vbCBhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxl
ZSwgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0lu
Zm8pCitzdGF0aWMgYm9vbCBhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKAorICAgIEV4ZWNT
dGF0ZSogZXhlY0NhbGxlZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycywgSlND
ZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwKKyAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5m
bykKIHsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKQogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC03ODAsNyArNzk0LDEwIEBAIHN0YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXplQ2xv
c3VyZUNhbGwKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIEFTU0VSVChjYWxsZWUt
PmV4ZWN1dGFibGUoKS0+aGFzSklUQ29kZUZvckNhbGwoKSk7Ci0gICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGNvZGVQdHIgPSBjYWxsZWUtPmV4ZWN1dGFibGUoKS0+Z2VuZXJhdGVkSklUQ29kZUZv
ckNhbGwoKS0+YWRkcmVzc0ZvckNhbGwoKTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29k
ZVB0ciA9CisgICAgICAgIGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5nZW5lcmF0ZWRKSVRDb2RlRm9y
Q2FsbCgpLT5hZGRyZXNzRm9yQ2FsbCgKKyAgICAgICAgICAgICpleGVjQ2FsbGVlLT5jYWxsZXJG
cmFtZSgpLT5jb2RlQmxvY2soKS0+dm0oKSwgY2FsbGVlLT5leGVjdXRhYmxlKCksCisgICAgICAg
ICAgICBBcml0eUNoZWNrTm90UmVxdWlyZWQsIHJlZ2lzdGVycyk7CiAgICAgCiAgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2s7CiAgICAgaWYgKGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5pc0hvc3RGdW5j
dGlvbigpKQpAQCAtNzkzLDcgKzgxMCw3IEBAIHN0YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXpl
Q2xvc3VyZUNhbGwKICAgICAKICAgICBsaW5rQ2xvc3VyZUNhbGwoCiAgICAgICAgIGV4ZWNDYWxs
ZWUsIGNhbGxMaW5rSW5mbywgY29kZUJsb2NrLAotICAgICAgICBjYWxsZWUtPnN0cnVjdHVyZSgp
LCBjYWxsZWUtPmV4ZWN1dGFibGUoKSwgY29kZVB0cik7CisgICAgICAgIGNhbGxlZS0+c3RydWN0
dXJlKCksIGNhbGxlZS0+ZXhlY3V0YWJsZSgpLCBjb2RlUHRyLCByZWdpc3RlcnMpOwogICAgIAog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtODAxLDI1ICs4MTgsNDYgQEAgc3RhdGljIGJvb2wgYXR0
ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbAogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25M
aW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewogICAgIEpTQ2VsbCogY2Fs
bGVlQXNGdW5jdGlvbkNlbGw7Ci0gICAgY2hhciogcmVzdWx0ID0gdmlydHVhbEZvcldpdGhGdW5j
dGlvbihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgY2FsbGVlQXNGdW5jdGlvbkNlbGwpOworICAg
IGNoYXIqIHJlc3VsdCA9IHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwgQ29kZUZv
ckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQsIGNhbGxlZUFzRnVuY3Rpb25D
ZWxsKTsKICAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IGV4ZWNDYWxsZWUtPmNhbGxl
ckZyYW1lKCktPmNvZGVCbG9jaygpLT5nZXRDYWxsTGlua0luZm8oZXhlY0NhbGxlZS0+cmV0dXJu
UEMoKSk7CiAKLSAgICBpZiAoIWF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwoZXhlY0NhbGxl
ZSwgY2FsbGVlQXNGdW5jdGlvbkNlbGwsIGNhbGxMaW5rSW5mbykpCi0gICAgICAgIGxpbmtTbG93
Rm9yKGV4ZWNDYWxsZWUsIGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwpOworICAgIGlmICghYXR0
ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbChleGVjQ2FsbGVlLCBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwgY2FsbExpbmtJbmZvKSkKKyAgICAg
ICAgbGlua1Nsb3dGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ2FsbCwgUmVn
aXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbChFeGVjU3RhdGUq
IGV4ZWNDYWxsZWUpCiB7ICAgIAotICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENv
ZGVGb3JDYWxsKTsKKyAgICByZXR1cm4gdmlydHVhbEZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ2Fs
bCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9CiAKIGNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCiB7
Ci0gICAgcmV0dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0cnVjdCk7Cisg
ICAgcmV0dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0cnVjdCwgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9CiAKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTGlua0Nsb3N1cmVDYWxsVGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2Fs
bGVlKQoreworICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGw7CisgICAgY2hhciogcmVz
dWx0ID0gdmlydHVhbEZvcldpdGhGdW5jdGlvbihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgTXVz
dFByZXNlcnZlUmVnaXN0ZXJzLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCk7CisgICAgQ2FsbExpbmtJ
bmZvJiBjYWxsTGlua0luZm8gPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2so
KS0+Z2V0Q2FsbExpbmtJbmZvKGV4ZWNDYWxsZWUtPnJldHVyblBDKCkpOworCisgICAgaWYgKCFh
dHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKGV4ZWNDYWxsZWUsIE11c3RQcmVzZXJ2ZVJlZ2lz
dGVycywgY2FsbGVlQXNGdW5jdGlvbkNlbGwsIGNhbGxMaW5rSW5mbykpCisgICAgICAgIGxpbmtT
bG93Rm9yKGV4ZWNDYWxsZWUsIGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwsIE11c3RQcmVzZXJ2
ZVJlZ2lzdGVycyk7CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSog
ZXhlY0NhbGxlZSkKK3sgICAgCisgICAgcmV0dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29k
ZUZvckNhbGwsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK2NoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSog
ZXhlY0NhbGxlZSkKK3sKKyAgICByZXR1cm4gdmlydHVhbEZvcihleGVjQ2FsbGVlLCBDb2RlRm9y
Q29uc3RydWN0LCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQogCiBzaXplX3QgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Db21wYXJlTGVzcyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7CkBAIC05NzQsNyArMTAx
Miw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWJ1ZyhFeGVjU3QKIH0KIAogI2lm
IEVOQUJMRShERkdfSklUKQotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShF
eGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKK1Nsb3dQYXRoUmV0dXJuVHlw
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJf
dCBieXRlY29kZUluZGV4KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtMTAyNCw3ICsxMDYyLDcgQEAg
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICBjb2RlQmxv
Y2stPnVwZGF0ZUFsbFByZWRpY3Rpb25zKCk7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3Nl
T1NSKCkpCiAgICAgICAgICAgICBkYXRhTG9nKCJDaG9vc2luZyBub3QgdG8gb3B0aW1pemUgIiwg
KmNvZGVCbG9jaywgIiB5ZXQsIGJlY2F1c2UgdGhlIHRocmVzaG9sZCBoYXNuJ3QgYmVlbiByZWFj
aGVkLlxuIik7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0
KDAsIDApOwogICAgIH0KICAgICAKICAgICBpZiAoY29kZUJsb2NrLT5tX3Nob3VsZEFsd2F5c0Jl
SW5saW5lZCkgewpAQCAtMTAzMiwxOCArMTA3MCwxOSBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbk9wdGltaXplKEV4CiAgICAgICAgIGNvZGVCbG9jay0+b3B0aW1pemVBZnRlcldhcm1V
cCgpOwogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAgICAgZGF0
YUxvZygiQ2hvb3Npbmcgbm90IHRvIG9wdGltaXplICIsICpjb2RlQmxvY2ssICIgeWV0LCBiZWNh
dXNlIG1fc2hvdWxkQWx3YXlzQmVJbmxpbmVkID09IHRydWUuXG4iKTsKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgfQogCiAgICAgLy8g
V2UgY2Fubm90IGJlIGluIHRoZSBwcm9jZXNzIG9mIGFzeW5jaHJvbm91cyBjb21waWxhdGlvbiBh
bmQgYWxzbyBoYXZlIGFuIG9wdGltaXplZAogICAgIC8vIHJlcGxhY2VtZW50LgorICAgIERGRzo6
V29ya2xpc3QqIHdvcmtsaXN0ID0gREZHOjpleGlzdGluZ0dsb2JhbERGR1dvcmtsaXN0T3JOdWxs
KCk7CiAgICAgQVNTRVJUKAotICAgICAgICAhdm0ud29ya2xpc3QKLSAgICAgICAgfHwgISh2bS53
b3JrbGlzdC0+Y29tcGlsYXRpb25TdGF0ZShERkc6OkNvbXBpbGF0aW9uS2V5KGNvZGVCbG9jaywg
REZHOjpERkdNb2RlKSkgIT0gREZHOjpXb3JrbGlzdDo6Tm90S25vd24KKyAgICAgICAgIXdvcmts
aXN0CisgICAgICAgIHx8ICEod29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUoREZHOjpDb21waWxh
dGlvbktleShjb2RlQmxvY2ssIERGRzo6REZHTW9kZSkpICE9IERGRzo6V29ya2xpc3Q6Ok5vdEtu
b3duCiAgICAgICAgICYmIGNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKSkpOwog
CiAgICAgREZHOjpXb3JrbGlzdDo6U3RhdGUgd29ya2xpc3RTdGF0ZTsKLSAgICBpZiAodm0ud29y
a2xpc3QpIHsKKyAgICBpZiAod29ya2xpc3QpIHsKICAgICAgICAgLy8gVGhlIGNhbGwgdG8gREZH
OjpXb3JrbGlzdDo6Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oKSB3aWxsIGNvbXBsZXRlIGFs
bCByZWFkeQogICAgICAgICAvLyAoaS5lLiBjb21waWxlZCkgY29kZSBibG9ja3MuIEJ1dCBpZiBp
dCBjb21wbGV0ZXMgb3Vycywgd2UgYWxzbyBuZWVkIHRvIGtub3cKICAgICAgICAgLy8gd2hhdCB0
aGUgcmVzdWx0IHdhcyBzbyB0aGF0IHdlIGRvbid0IHBsb3cgYWhlYWQgYW5kIGF0dGVtcHQgT1NS
IG9yIGltbWVkaWF0ZQpAQCAtMTA2Miw3ICsxMTAxLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICAvLyBwcm9iYWJseSBhIHdhc3RlIG9mIG1lbW9y
eS4gT3VyIGdvYWwgaGVyZSBpcyB0byBjb21wbGV0ZSBjb2RlIGJsb2NrcyBhcyBzb29uIGFzCiAg
ICAgICAgIC8vIHBvc3NpYmxlIGluIG9yZGVyIHRvIG1pbmltaXplIHRoZSBjaGFuY2VzIG9mIHVz
IGV4ZWN1dGluZyBiYXNlbGluZSBjb2RlIGFmdGVyCiAgICAgICAgIC8vIG9wdGltaXplZCBjb2Rl
IGlzIGFscmVhZHkgYXZhaWxhYmxlLgotICAgICAgICB3b3JrbGlzdFN0YXRlID0gdm0ud29ya2xp
c3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKAorICAgICAgICB3b3JrbGlzdFN0YXRlID0g
d29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKAogICAgICAgICAgICAgdm0sIERG
Rzo6Q29tcGlsYXRpb25LZXkoY29kZUJsb2NrLCBERkc6OkRGR01vZGUpKTsKICAgICB9IGVsc2UK
ICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IERGRzo6V29ya2xpc3Q6Ok5vdEtub3duOwpAQCAtMTA3
Miw3ICsxMTExLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAog
ICAgICAgICAvLyByZXBsYWNlbWVudC4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvZGVCbG9j
ay0+aGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKSk7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0T3B0
aW1pemF0aW9uVGhyZXNob2xkQmFzZWRPbkNvbXBpbGF0aW9uUmVzdWx0KENvbXBpbGF0aW9uRGVm
ZXJyZWQpOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgw
LCAwKTsKICAgICB9CiAKICAgICBpZiAod29ya2xpc3RTdGF0ZSA9PSBERkc6OldvcmtsaXN0OjpD
b21waWxlZCkgewpAQCAtMTA4NSw3ICsxMTI0LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25PcHRpbWl6ZShFeAogICAgICAgICAgICAgY29kZUJsb2NrLT51cGRhdGVBbGxQcmVkaWN0
aW9ucygpOwogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJDb2RlIGJsb2NrICIsICpjb2RlQmxvY2ssICIgd2FzIGNvbXBpbGVk
IGJ1dCBpdCBkb2Vzbid0IGhhdmUgYW4gb3B0aW1pemVkIHJlcGxhY2VtZW50LlxuIik7Ci0gICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVwbGFj
ZW1lbnQoKSkgewogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQpAQCAtMTExMCw3
ICsxMTQ5LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAg
ICAgICAgICAgICAgICAgICAiKCIsICpjb2RlQmxvY2stPnJlcGxhY2VtZW50KCksICIpIChpbiBs
b29wKS5cbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY29kZUJsb2NrLT5yZXBsYWNl
bWVudCgpLT5qZXR0aXNvbihDb3VudFJlb3B0aW1pemF0aW9uKTsKLSAgICAgICAgICAgIHJldHVy
biAwOworICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICAgICAgfQog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghY29kZUJsb2NrLT5zaG91bGRPcHRpbWl6ZU5vdygp
KSB7CkBAIC0xMTE5LDcgKzExNTgsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9w
dGltaXplKEV4CiAgICAgICAgICAgICAgICAgICAgICJEZWxheWluZyBvcHRpbWl6YXRpb24gZm9y
ICIsICpjb2RlQmxvY2ssCiAgICAgICAgICAgICAgICAgICAgICIgYmVjYXVzZSBvZiBpbnN1ZmZp
Y2llbnQgcHJvZmlsaW5nLlxuIik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgICAgIH0KIAog
ICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQpAQCAtMTE0NywxMiArMTE4NiwxMSBA
QCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4CiAgICAgICAgIH0KIAog
ICAgICAgICBDb21waWxhdGlvblJlc3VsdCByZXN1bHQgPSBERkc6OmNvbXBpbGUoCi0gICAgICAg
ICAgICB2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBERkc6OkRGR01vZGUs
IGJ5dGVjb2RlSW5kZXgsCi0gICAgICAgICAgICBtdXN0SGFuZGxlVmFsdWVzLCBKSVRUb0RGR0Rl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKCksCi0gICAgICAgICAgICB2bS5lbnN1
cmVXb3JrbGlzdCgpKTsKKyAgICAgICAgICAgIHZtLCBjb2RlQmxvY2stPm5ld1JlcGxhY2VtZW50
KCkuZ2V0KCksIDAsIERGRzo6REZHTW9kZSwgYnl0ZWNvZGVJbmRleCwKKyAgICAgICAgICAgIG11
c3RIYW5kbGVWYWx1ZXMsIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVh
dGUoKSk7CiAgICAgICAgIAogICAgICAgICBpZiAocmVzdWx0ICE9IENvbXBpbGF0aW9uU3VjY2Vz
c2Z1bCkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJl
c3VsdCgwLCAwKTsKICAgICB9CiAgICAgCiAgICAgQ29kZUJsb2NrKiBvcHRpbWl6ZWRDb2RlQmxv
Y2sgPSBjb2RlQmxvY2stPnJlcGxhY2VtZW50KCk7CkBAIC0xMTY2LDcgKzEyMDQsOCBAQCBjaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4CiAgICAgICAgIH0KIAogICAgICAg
ICBjb2RlQmxvY2stPm9wdGltaXplU29vbigpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y2hhcio+KGFkZHJlc3MpOworICAgICAgICBBU1NFUlQoZXhlYy0+Y29kZUJsb2NrKCkgPT0gb3B0
aW1pemVkQ29kZUJsb2NrKTsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChhZGRyZXNzLCBl
eGVjLT50b3BPZkZyYW1lKCkpOwogICAgIH0KIAogICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NS
KCkpIHsKQEAgLTExOTUsMTQgKzEyMzQsMTQgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRp
b25PcHRpbWl6ZShFeAogICAgICAgICAgICAgICAgICpjb2RlQmxvY2stPnJlcGxhY2VtZW50KCks
ICIgKGFmdGVyIE9TUiBmYWlsKS5cbiIpOwogICAgICAgICB9CiAgICAgICAgIG9wdGltaXplZENv
ZGVCbG9jay0+amV0dGlzb24oQ291bnRSZW9wdGltaXphdGlvbik7Ci0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgIH0KIAogICAgIC8vIE9T
UiBmYWlsZWQgdGhpcyB0aW1lLCBidXQgaXQgbWlnaHQgc3VjY2VlZCBuZXh0IHRpbWUhIExldCB0
aGUgY29kZSBydW4gYSBiaXQKICAgICAvLyBsb25nZXIgYW5kIHRoZW4gdHJ5IGFnYWluLgogICAg
IGNvZGVCbG9jay0+b3B0aW1pemVBZnRlcldhcm1VcCgpOwogICAgIAotICAgIHJldHVybiAwOwor
ICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiB9CiAjZW5kaWYKIApAQCAtMTUzMCwxMyAr
MTU2OSwxMyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVzdWx0KSk7CiB9CiAKLUNhbGxGcmFt
ZSogSklUX09QRVJBVElPTiBvcGVyYXRpb25TaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IGZp
cnN0RnJlZVJlZ2lzdGVyKQorQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVG
cmFtZUZvclZhcmFyZ3MoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJn
dW1lbnRzLCBpbnQzMl90IGZpcnN0RnJlZVJlZ2lzdGVyKQogewogICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogICAg
IEpTU3RhY2sqIHN0YWNrID0gJmV4ZWMtPmludGVycHJldGVyKCktPnN0YWNrKCk7CiAgICAgSlNW
YWx1ZSBhcmd1bWVudHMgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEFyZ3VtZW50cyk7Ci0gICAg
Q2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoZXhl
Yywgc3RhY2ssIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIpOworICAgIENhbGxGcmFtZSog
bmV3Q2FsbEZyYW1lID0gc2l6ZUZyYW1lRm9yVmFyYXJncyhleGVjLCBzdGFjaywgYXJndW1lbnRz
LCBmaXJzdEZyZWVSZWdpc3Rlcik7CiAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKIH0KIApAQCAt
MTcyOSwxMiArMTc2OCwxMSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5pdEdsb2Jh
bENvCiAgICAgcGNbMV0udS5yZWdpc3RlclBvaW50ZXItPnNldCgqdm0sIGV4ZWMtPmNvZGVCbG9j
aygpLT5nbG9iYWxPYmplY3QoKSwgdmFsdWUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gbG9v
a3VwRXhjZXB0aW9uSGFuZGxlcihFeGVjU3RhdGUqIGV4ZWMpCit2b2lkIEpJVF9PUEVSQVRJT04g
bG9va3VwRXhjZXB0aW9uSGFuZGxlcihWTSogdm0sIEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBW
TSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBleGVjKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjLCBOYXRp
dmVDYWxsRnJhbWVUcmFjZXI6OlZNRW50cnlTZW50aW5lbE9LKTsKIAotICAgIEpTVmFsdWUgZXhj
ZXB0aW9uVmFsdWUgPSBleGVjLT5leGNlcHRpb24oKTsKKyAgICBKU1ZhbHVlIGV4Y2VwdGlvblZh
bHVlID0gdm0tPmV4Y2VwdGlvbigpOwogICAgIEFTU0VSVChleGNlcHRpb25WYWx1ZSk7CiAgICAg
CiAgICAgZ2VuZXJpY1Vud2luZCh2bSwgZXhlYywgZXhjZXB0aW9uVmFsdWUpOwpAQCAtMTc2Nyw3
ICsxODA1LDYgQEAgYXNtICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICJcbiIKIEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIK
IFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibW92
IDAoJXJicCksICVyYnBcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAi
bW92ICVyYnAsICVyZGlcbiIKICAgICAiam1wICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxs
UmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOwpAQCAtMTc3OCw4ICsxODE1LDExIEBA
IGFzbSAoCiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAi
XG4iCiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RS
SU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgIm1vdiAwKCVlYnApLCAl
ZWJwXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCi0gICAgIm1vdiAlZWJwLCA0
KCVlc3ApXG4iCisgICAgIm1vdiAoJWVzcCksICVlYXhcbiIKKyAgICAicHVzaCAlZWJwXG4iCisg
ICAgImxlYWwgLTQoJWVzcCksICVlc3BcbiIKKyAgICAicHVzaCAlZWJwXG4iCisgICAgInB1c2gg
JWVheFxuIgogICAgICJqbXAgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1
ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CiAKQEAgLTE3OTIsNyArMTgzMiw2IEBAIEhJREVfU1lN
Qk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKICIudGh1bWIiICJcbiIKICIudGh1bWJf
ZnVuYyAiIFRIVU1CX0ZVTkNfUEFSQU0oZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lN
Qk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgotICAgICJsZHIgcjcs
IFtyNywgIzBdIiAiXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1v
diByMCwgcjciICJcbiIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVy
blZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MDQsNyArMTg0Myw2IEBAIGFzbSAo
CiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBJTkxJTkVfQVJNX0ZV
TkNUSU9OKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxs
UmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgImxkciByMTEsIFtyMTEsICMwXSIgIlxuIiAvLyBD
YWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3YgcjAsIHIxMSIgIlxuIgogICAg
ICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRl
KSAiXG4iCiApOwpAQCAtMTgxNiw3ICsxODU0LDYgQEAgYXNtICgKICIuZ2xvYmwgIiBTWU1CT0xf
U1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIEhJREVfU1lNQk9MKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1
ZSkgIjoiICJcbiIKLSAgICAibGR1ciB4MjksIFt4MjksICMwXSIgIlxuIgogICAgICAibW92IHgw
LCB4MjkiICJcbiIKICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5W
YWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CkBAIC0xODI4LDcgKzE4NjUsNiBAQCBhc20gKAog
SElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgogICAgIExPQURfRlVOQ1RJT05fVE9fVDko
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpCi0gICAgImx3ICRmcCwgMCgkZnAp
IiAiXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdmUgJGEwLCAk
ZnAiICJcbiIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVl
V2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MzksNyArMTg3NSw2IEBAIGFzbSAoCiAiLmds
b2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURFX1NZ
TUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgIm1vdi5sIEByMTQsIHIxNCIgIlxuIiAvLyBD
YWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3YgcjE0LCByNCIgIlxuIgogICAg
ICJtb3YubCAyZiwgIiBTSDRfU0NSQVRDSF9SRUdJU1RFUiAiXG4iCiAgICAgImJyYWYgIiBTSDRf
U0NSQVRDSF9SRUdJU1RFUiAiXG4iCkBAIC0xODUyLDcgKzE4ODcsNiBAQCBTWU1CT0xfU1RSSU5H
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6CiBleHRlcm4gIkMiIHsKICAgICBfX2RlY2xzcGVj
KG5ha2VkKSBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKCkKICAgICB7Ci0gICAgICAgIF9fYXNtIG1vdiBlYnAsIFtlYnAg
KyAwXTsgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAgICAgX19hc20gbW92
IFtlc3AgKyA0XSwgZWJwOwogICAgICAgICBfX2FzbSBqbXAgZ2V0SG9zdENhbGxSZXR1cm5WYWx1
ZVdpdGhFeGVjU3RhdGUKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tbW9u
U2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogI2luY2x1ZGUgIkpTQXJy
YXkuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCkBAIC03Miw2ICs3Myw3IEBAIGV4dGVybiAi
QyIgewogICAgIFBjOiBJbnN0cnVjdGlvbiogaS5lLiBieXRlY29kZSBQQwogICAgIFI6IFJlZ2lz
dGVyCiAgICAgUzogc2l6ZV90CisgICAgU3BydDogU2xvd1BhdGhSZXR1cm5UeXBlCiAgICAgU3Np
OiBTdHJ1Y3R1cmVTdHViSW5mbyoKICAgICBTdDogU3RydWN0dXJlKgogICAgIFY6IHZvaWQKQEAg
LTkyLDYgKzk0LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSgog
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUNJ
KShFeGVjU3RhdGUqLCBKU0NlbGwqLCBTdHJpbmdJbXBsKik7CiB0eXBlZGVmIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FQ0opKEV4ZWNTdGF0ZSosIEpTQ2Vs
bCosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiAoKkpfSklUT3BlcmF0aW9uX0VEQSkoRXhlY1N0YXRlKiwgZG91YmxlLCBKU0FycmF5Kik7Cit0
eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FRSko
RXhlY1N0YXRlKiwgRXhlY1N0YXRlKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSSkoRXhlY1N0YXRlKiwgU3RyaW5nSW1wbCopOwogdHlw
ZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUopKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKQSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IEpTQXJyYXkqKTsKQEAgLTEzMyw2ICsxMzYsNyBAQCB0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFU
SU9OICgqU19KSVRPcGVyCiB0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVy
YXRpb25fRUpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwog
dHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0aW9uX0VPSnNzKShFeGVj
U3RhdGUqLCBKU09iamVjdCosIEpTU3RyaW5nKik7CiB0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFU
SU9OICgqU19KSVRPcGVyYXRpb25fSikoRW5jb2RlZEpTVmFsdWUpOwordHlwZWRlZiBTbG93UGF0
aFJldHVyblR5cGUgSklUX09QRVJBVElPTiAoKlNwcnRfSklUT3BlcmF0aW9uX0VaKShFeGVjU3Rh
dGUqLCBpbnQzMl90KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRp
b25fRSkoRXhlY1N0YXRlKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3Bl
cmF0aW9uX0VDKShFeGVjU3RhdGUqLCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRUNiKShFeGVjU3RhdGUqLCBDb2RlQmxvY2sqKTsKQEAgLTE3
NCwxOCArMTc4LDE3IEBAIHR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAoKlBfSklUT3BlcmEK
IHR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAoKlBfSklUT3BlcmF0aW9uX0VTdFBTKShFeGVj
U3RhdGUqLCBTdHJ1Y3R1cmUqLCB2b2lkKiwgc2l6ZV90KTsKIHR5cGVkZWYgY2hhciogSklUX09Q
RVJBVElPTiAoKlBfSklUT3BlcmF0aW9uX0VTdFNTKShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBz
aXplX3QsIHNpemVfdCk7CiB0eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJh
dGlvbl9FU3RaKShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90KTsKLXR5cGVkZWYgY2hh
ciogSklUX09QRVJBVElPTiAoKlBfSklUT3BlcmF0aW9uX0VaKShFeGVjU3RhdGUqLCBpbnQzMl90
KTsKIHR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAoKlBfSklUT3BlcmF0aW9uX0VaWikoRXhl
Y1N0YXRlKiwgaW50MzJfdCwgaW50MzJfdCk7CiB0eXBlZGVmIFN0cmluZ0ltcGwqIEpJVF9PUEVS
QVRJT04gKCpJX0pJVE9wZXJhdGlvbl9FSnNzKShFeGVjU3RhdGUqLCBKU1N0cmluZyopOwogdHlw
ZWRlZiBKU1N0cmluZyogSklUX09QRVJBVElPTiAoKkpzc19KSVRPcGVyYXRpb25fRVopKEV4ZWNT
dGF0ZSosIGludDMyX3QpOwogCiAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGxvb2t1cCBhbiBl
eGNlcHRpb24gaGFuZGVyLCBrZXllZCBieSBmYXVsdExvY2F0aW9uLCB3aGljaCBpcwogLy8gdGhl
IHJldHVybiBsb2NhdGlvbiBmcm9tIG9uZSBvZiB0aGUgY2FsbHMgb3V0IHRvIG9uZSBvZiB0aGUg
aGVscGVyIG9wZXJhdGlvbnMgYWJvdmUuCi0gICAgCi12b2lkIEpJVF9PUEVSQVRJT04gbG9va3Vw
RXhjZXB0aW9uSGFuZGxlcihFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CisKK3ZvaWQgSklUX09Q
RVJBVElPTiBsb29rdXBFeGNlcHRpb25IYW5kbGVyKFZNKiwgRXhlY1N0YXRlKikgV1RGX0lOVEVS
TkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKEV4ZWNT
dGF0ZSopIFdURl9JTlRFUk5BTDsKIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0YWNr
Q2hlY2soRXhlY1N0YXRlKiwgQ29kZUJsb2NrKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNTdGF0ZSosIENvZGVC
bG9jayopIFdURl9JTlRFUk5BTDsKIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxs
QXJpdHlDaGVjayhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBpbnQzMl90IEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7
CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWQoRXhlY1N0YXRl
KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgU3RyaW5nSW1wbCopIFdURl9J
TlRFUk5BTDsKQEAgLTIxMywxMiArMjE2LDE4IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeVZhbChFeGUKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZh
bChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxH
ZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJl
Y3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7Ci1jaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDYWxsKEV4ZWNTdGF0ZSopIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhl
Y1N0YXRlKiwgRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25MaW5rQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7
CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDYWxsKEV4ZWNTdGF0ZSopIFdU
Rl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVj
dChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkxpbmtDb25zdHJ1Y3QoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09QRVJB
VElPTiBvcGVyYXRpb25MaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSopIFdURl9J
TlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsVGhh
dFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09QRVJB
VElPTiBvcGVyYXRpb25WaXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSopIFdU
Rl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVj
dFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uTGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0
ZSopIFdURl9JTlRFUk5BTDsKKwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFy
ZUxlc3MoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5U
RVJOQUw7CiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlTGVzc0VxKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogc2l6
ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CkBAIC0yNDIsNyArMjUx
LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhdGljRQogdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblRocm93KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZf
SU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVidWcoRXhlY1N0YXRlKiwg
aW50MzJfdCkgV1RGX0lOVEVSTkFMOwogI2lmIEVOQUJMRShERkdfSklUKQotY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJO
QUw7CitTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShF
eGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiAjZW5kaWYKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeUluZGV4KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQz
Ml90LCBFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTI2Nyw3ICsyNzYs
NyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGVhck9mZkFyZ3VtCiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgY29uc3QgSWRlbnRpZmllciopIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQTmFtZXMoRXhlY1N0YXRlKiwgSlNPYmplY3QqKSBX
VEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3Rh
bmNlT2YoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHByb3RvKSBX
VEZfSU5URVJOQUw7Ci1DYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2l6ZUFuZEFs
bG9jRnJhbWVGb3JWYXJhcmdzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywg
aW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikgV1RGX0lOVEVSTkFMOworQ2FsbEZyYW1lKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3MoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IGZpcnN0RnJlZVJlZ2lzdGVyKSBXVEZfSU5URVJO
QUw7CiBDYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTG9hZFZhcmFyZ3MoRXhlY1N0
YXRlKiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBhcmd1bWVudHMpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVG9PYmplY3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5B
TDsKIApAQCAtMjg3LDYgKzI5Niw2OCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5p
dEdsb2JhbENvCiAKIH0gLy8gZXh0ZXJuICJDIgogCitpbmxpbmUgUF9KSVRPcGVyYXRpb25fRSBv
cGVyYXRpb25MaW5rRm9yKAorICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAg
ICBjYXNlIENvZGVGb3JDYWxsOgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAg
ICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1
cm4gb3BlcmF0aW9uTGlua0NhbGw7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJz
OgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3M7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0Ogor
ICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uTGlua0NvbnN0
cnVjdDsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICBy
ZXR1cm4gb3BlcmF0aW9uTGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiAwOworfQorCitpbmxpbmUgUF9KSVRPcGVyYXRpb25fRSBvcGVyYXRpb25W
aXJ0dWFsRm9yKAorICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNl
IENvZGVGb3JDYWxsOgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNl
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gb3Bl
cmF0aW9uVmlydHVhbENhbGw7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgor
ICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3M7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0Ogor
ICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9uVmlydHVhbENv
bnN0cnVjdDsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAg
ICByZXR1cm4gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiAwOworfQorCitpbmxpbmUgUF9KSVRPcGVyYXRpb25fRSBvcGVy
YXRpb25MaW5rQ2xvc3VyZUNhbGxGb3IoUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVy
cykKK3sKKyAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2Fs
bDsKKyAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgcmV0dXJuIG9wZXJh
dGlvbkxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgIH0KKyAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9nZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qCiAKICAgICBKSVRHZXRCeUlkR2VuZXJh
dG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNl
dCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCi0gICAgICAgIGNhbGxGcmFtZVJl
Z2lzdGVyLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdU
MSwgcmVnVDApLCB0cnVlKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1Qw
KSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgdHJ1ZSk7CiAgICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAg
bV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKQEAgLTUzMCw3ICs1MzAsNyBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9wdXRfYnlfaWQoSW5zdHJ1Y3Rpb24qCiAKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdl
bigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJl
Z2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVy
LCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVn
VDIpLAorICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVn
cyhyZWdUMywgcmVnVDIpLAogICAgICAgICByZWdUMSwgdHJ1ZSwgbV9jb2RlQmxvY2stPmVjbWFN
b2RlKCksIGRpcmVjdCA/IERpcmVjdCA6IE5vdERpcmVjdCk7CiAgICAgCiAgICAgZ2VuLmdlbmVy
YXRlRmFzdFBhdGgoKnRoaXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkKEluc3Ry
dWN0aW9uKgogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJs
b2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJl
Z2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3MocmVnVDAp
LCBKU1ZhbHVlUmVncyhyZWdUMCksIHRydWUpOworICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMCks
IEpTVmFsdWVSZWdzKHJlZ1QwKSwgdHJ1ZSk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRo
aXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlk
cy5hcHBlbmQoZ2VuKTsKQEAgLTU2Niw4ICs1NjYsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRf
YnlfaWQoSW5zdHJ1Y3Rpb24qCiAKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAg
ICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0
OjpzcGVjaWFsUmVnaXN0ZXJzKCksCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVl
UmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxKSwgcmVnVDIsIHRydWUsCi0gICAgICAgIG1f
Y29kZUJsb2NrLT5lY21hTW9kZSgpLCBkaXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOworICAg
ICAgICBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxKSwgcmVnVDIsIHRydWUs
IG1fY29kZUJsb2NrLT5lY21hTW9kZSgpLAorICAgICAgICBkaXJlY3QgPyBEaXJlY3QgOiBOb3RE
aXJlY3QpOwogICAgIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRT
bG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwpAQCAtMTA3OCw3ICsxMDc4LDcgQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwoQnlWYWxJbgogICAgIHBhdGNoQnVmZmVyLmxpbmso
ZG9uZSwgYnlWYWxJbmZvLT5iYWRUeXBlSnVtcC5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5mby0+YmFk
VHlwZUp1bXBUb0RvbmUpKTsKICAgICAKICAgICBieVZhbEluZm8tPnN0dWJSb3V0aW5lID0gRklO
QUxJWkVfQ09ERV9GT1JfU1RVQigKLSAgICAgICAgcGF0Y2hCdWZmZXIsCisgICAgICAgIG1fY29k
ZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlfdmFsIHN0dWIg
Zm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5kYXRhKCks
IHJldHVybkFkZHJlc3MudmFsdWUoKSkpOwogICAgIAogICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRj
aEJ1ZmZlcihtX2NvZGVCbG9jayk7CkBAIC0xMTQxLDEyICsxMTQxLDEyIEBAIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW4KICAgICBib29sIGlzRGlyZWN0ID0gbV9pbnRl
cnByZXRlci0+Z2V0T3Bjb2RlSUQoY3VycmVudEluc3RydWN0aW9uLT51Lm9wY29kZSkgPT0gb3Bf
cHV0X2J5X3ZhbF9kaXJlY3Q7CiAgICAgaWYgKCFpc0RpcmVjdCkgewogICAgICAgICBieVZhbElu
Zm8tPnN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKLSAgICAgICAgICAgIHBh
dGNoQnVmZmVyLAorICAgICAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAogICAgICAg
ICAgICAgKCJCYXNlbGluZSBwdXRfYnlfdmFsIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAi
LCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5kYXRhKCksIHJldHVybkFkZHJlc3MudmFsdWUoKSkp
OwogICAgICAgICAKICAgICB9IGVsc2UgewogICAgICAgICBieVZhbEluZm8tPnN0dWJSb3V0aW5l
ID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKLSAgICAgICAgICAgIHBhdGNoQnVmZmVyLAorICAg
ICAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAogICAgICAgICAgICAgKCJCYXNlbGlu
ZSBwdXRfYnlfdmFsX2RpcmVjdCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwgdG9DU3Ry
aW5nKCptX2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKICAgICB9
CiAgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKG1fY29kZUJsb2NrKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmgJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMTUwLDExICsxNTAsOCBAQCBwcm90ZWN0ZWQ6CiB9OwogCiAvLyBIZWxwZXIgZm9y
IHRoZSBjcmVhdGlvbiBvZiBzaW1wbGUgc3R1YiByb3V0aW5lcyB0aGF0IG5lZWQgbm8gaGVscCBm
cm9tIHRoZSBHQy4KLSNkZWZpbmUgRklOQUxJWkVfQ09ERV9GT1JfU1RVQihwYXRjaEJ1ZmZlciwg
ZGF0YUxvZ0ZBcmd1bWVudHMpIFwKLSAgICAoYWRvcHRSZWYobmV3IEpJVFN0dWJSb3V0aW5lKEZJ
TkFMSVpFX0NPREUoKHBhdGNoQnVmZmVyKSwgZGF0YUxvZ0ZBcmd1bWVudHMpKSkpCi0KLSNkZWZp
bmUgRklOQUxJWkVfQ09ERV9GT1JfREZHX1NUVUIocGF0Y2hCdWZmZXIsIGRhdGFMb2dGQXJndW1l
bnRzKSBcCi0gICAgKGFkb3B0UmVmKG5ldyBKSVRTdHViUm91dGluZShGSU5BTElaRV9ERkdfQ09E
RSgocGF0Y2hCdWZmZXIpLCBkYXRhTG9nRkFyZ3VtZW50cykpKSkKKyNkZWZpbmUgRklOQUxJWkVf
Q09ERV9GT1JfU1RVQihjb2RlQmxvY2ssIHBhdGNoQnVmZmVyLCBkYXRhTG9nRkFyZ3VtZW50cykg
XAorICAgIChhZG9wdFJlZihuZXcgSklUU3R1YlJvdXRpbmUoRklOQUxJWkVfQ09ERV9GT1IoKGNv
ZGVCbG9jayksIChwYXRjaEJ1ZmZlciksIGRhdGFMb2dGQXJndW1lbnRzKSkpKQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkocmV2
aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNywxNCArMzcsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5B
QkxFKEpJVCkKIAogI2lmIE9TKFdJTkRPV1MpCi1jbGFzcyBFeGVjU3RhdGU7Ci1jbGFzcyBSZWdp
c3RlcjsKIHN0cnVjdCBQcm90b0NhbGxGcmFtZTsKK2NsYXNzIFZNOwogCiBleHRlcm4gIkMiIHsK
LSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqLCBFeGVjU3RhdGUqKiwg
UHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOwotICAgIHZvaWQgcmV0dXJuRnJvbUphdmFTY3Jp
cHQoKTsKLSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiwgRXhl
Y1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKKyAgICBFbmNvZGVkSlNWYWx1
ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqLCBWTSosIFByb3RvQ2FsbEZyYW1lKik7CisgICAgRW5j
b2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCosIFZNKiwgUHJvdG9DYWxsRnJh
bWUqKTsKKyAgICB2b2lkIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uKCk7CiB9CiAjZW5kaWYKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20JKHJl
dmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZD
NjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI1NSArMCwwIEBACi07LyoKLTsgQ29weXJpZ2h0
IChDKSAyMDEzIERpZ2lhIFBsYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi07Ci07IFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotOyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLTsgYXJlIG1ldDoKLTsgMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
OyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi07ICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi07Ci07IFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
OyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotOyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLTsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLTsgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi07IEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LTsgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi07IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLTsgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi07IChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotOyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotOyovCi0KLUVYVEVSTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0
ZSA6IG5lYXIKLQotUFVCTElDIGNhbGxUb0phdmFTY3JpcHQKLVBVQkxJQyByZXR1cm5Gcm9tSmF2
YVNjcmlwdAotUFVCTElDIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUKLQotX1RFWFQgICBTRUdNRU5U
Ci0KLWNhbGxUb0phdmFTY3JpcHQgUFJPQwotICAgIDs7IFRoaXMgZnVuY3Rpb24gaXMgYmVsaWV2
ZWQgdG8gYmUgYW4gYWNjdXJhdGUgYWRhcHRhdGlvbiBvZiB0aGUgYXNzZW1ibHkgY3JlYXRlZCBi
eSB0aGUgbGxpbnQgc3R1YiBvZiB0aGUKLSAgICA7OyBzYW1lIG5hbWUgd2l0aCBjaGFuZ2VzIGZv
ciBhcmd1bWVudCByZWdpc3RlciBkaWZmZXJlbmNlcy4KLSAgICBtb3YgcjEwLCBxd29yZCBwdHJb
cnNwXQotICAgIHB1c2ggcmJwCi0gICAgbW92IHJheCwgcmJwIDsgU2F2ZSBwcmV2aW91cyBmcmFt
ZSBwb2ludGVyCi0gICAgbW92IHJicCwgcnNwCi0gICAgcHVzaCByMTIKLSAgICBwdXNoIHIxMwot
ICAgIHB1c2ggcjE0Ci0gICAgcHVzaCByMTUKLSAgICBwdXNoIHJieAotICAgIHB1c2ggcnNpCi0g
ICAgcHVzaCByZGkKLQotICAgIDsgSklUIG9wZXJhdGlvbnMgY2FuIHVzZSB1cCB0byA2IGFyZ3Mg
KDQgaW4gcmVnaXN0ZXJzIGFuZCAyIG9uIHRoZSBzdGFjaykuCi0gICAgOyBJbiBhZGRpdGlvbiwg
WDg2XzY0IEFCSSBzcGVjaWZpZXMgdGhhdCB0aGUgd29yc2UgY2FzZSBzdGFjayBhbGlnbm1lbnQK
LSAgICA7IHJlcXVpcmVtZW50IGlzIDMyIGJ5dGVzLiBCYXNlZCBvbiB0aGVzZSBmYWN0b3JzLCB3
ZSBuZWVkIHRvIHBhZCB0aGUgc3RhY2sKLSAgICA7IGFuIGFkZGl0aW9uYWwgMjhoIGJ5dGVzLgot
ICAgIHN1YiByc3AsIDI4aAotCi0gICAgbW92IHJicCwgcjkKLSAgICBzdWIgcmJwLCA0MAotICAg
IG1vdiBxd29yZCBwdHJbcmJwICsgNDBdLCAwCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAzMl0s
IHJkeAotCi0gICAgbW92IHJheCwgcXdvcmQgcHRyW3JkeF0KLSAgICBtb3YgcXdvcmQgcHRyW3Ji
cCArIDI0XSwgcmF4Ci0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAxNl0sIDEKLSAgICBtb3YgcXdv
cmQgcHRyW3JicCArIDhdLCByMTAKLSAgICBtb3YgcXdvcmQgcHRyW3JicF0sIHJheAotICAgIG1v
diByYXgsIHJicAotCi0gICAgbW92IGVieCwgZHdvcmQgcHRyW3I4ICsgNDBdCi0gICAgYWRkIHJi
eCwgNgotICAgIHNhbCByYngsIDMKLSAgICBzdWIgcmJwLCByYngKLSAgICBtb3YgcXdvcmQgcHRy
W3JicF0sIHJheAotCi0gICAgbW92IHJheCwgNQotCi1jb3B5SGVhZGVyTG9vcDoKLSAgICBzdWIg
cmF4LCAxCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3I4ICsgcmF4ICogOF0KLSAgICBtb3YgcXdv
cmQgcHRyW3JicCArIHJheCAqIDggKyAxNl0sIHIxMAotICAgIHRlc3QgcmF4LCByYXgKLSAgICBq
bnogY29weUhlYWRlckxvb3AKLQotICAgIG1vdiBlYngsIGR3b3JkIHB0cltyOCArIDI0XQotICAg
IHN1YiByYngsIDEKLSAgICBtb3YgcjEwZCwgZHdvcmQgcHRyW3I4ICsgNDBdCi0gICAgc3ViIHIx
MCwgMQotICAgIGNtcCByYngsIHIxMAotICAgIGplIGNvcHlBcmdzCi0gICAgbW92IHJheCwgMGFo
Ci0KLWZpbGxFeHRyYUFyZ3NMb29wOgotICAgIHN1YiByMTAsIDEKLSAgICBtb3YgcXdvcmQgcHRy
W3JicCArIHIxMCAqIDggKyA1Nl0sIHJheAotICAgIGNtcCByYngsIHIxMAotICAgIGpuZSBmaWxs
RXh0cmFBcmdzTG9vcAotCi1jb3B5QXJnczoKLSAgICBtb3YgcmF4LCBxd29yZCBwdHJbcjggKyA0
OF0KLQotY29weUFyZ3NMb29wOgotICAgIHRlc3QgZWJ4LCBlYngKLSAgICBqeiBjb3B5QXJnc0Rv
bmUKLSAgICBzdWIgZWJ4LCAxCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3JheCArIHJieCAqIDhd
Ci0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByYnggKiA4ICsgNTZdLCByMTAKLSAgICBqbXAgY29w
eUFyZ3NMb29wCi0KLWNvcHlBcmdzRG9uZToKLSAgICBtb3YgcXdvcmQgcHRyW3JkeF0sIHJicAot
ICAgIG1vdiByMTQsIDBGRkZGMDAwMDAwMDAwMDAwaAotICAgIG1vdiByMTUsIDBGRkZGMDAwMDAw
MDAwMDAyaAotICAgIGNhbGwgcmN4Ci0gICAgY21wIHF3b3JkIHB0cltyYnAgKyAxNl0sIDEKLSAg
ICBqZSBjYWxsZWVGcmFtZVBvcHBlZAotICAgIG1vdiByYnAsIHF3b3JkIHB0cltyYnBdCi0KLWNh
bGxlZUZyYW1lUG9wcGVkOgotICAgIG1vdiByYngsIHF3b3JkIHB0cltyYnAgKyAzMl0gOyBWTS50
b3BDYWxsRnJhbWUKLSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcmJwICsgMjRdCi0gICAgbW92IHF3
b3JkIHB0cltyYnhdLCByMTAKLSAgICBhZGQgcnNwLCAyOGgKLSAgICBwb3AgcmRpCi0gICAgcG9w
IHJzaQotICAgIHBvcCByYngKLSAgICBwb3AgcjE1Ci0gICAgcG9wIHIxNAotICAgIHBvcCByMTMK
LSAgICBwb3AgcjEyCi0gICAgcG9wIHJicAotICAgIHJldAotY2FsbFRvSmF2YVNjcmlwdCBFTkRQ
Ci0KLWNhbGxUb05hdGl2ZUZ1bmN0aW9uIFBST0MKLSAgICA7OyBUaGlzIGZ1bmN0aW9uIGlzIGJl
bGlldmVkIHRvIGJlIGFuIGFjY3VyYXRlIGFkYXB0YXRpb24gb2YgdGhlIGFzc2VtYmx5IGNyZWF0
ZWQgYnkgdGhlIGxsaW50IHN0dWIgb2YgdGhlCi0gICAgOzsgc2FtZSBuYW1lIHdpdGggY2hhbmdl
cyBmb3IgYXJndW1lbnQgcmVnaXN0ZXIgZGlmZmVyZW5jZXMuCi0gICAgbW92IHIxMCwgcXdvcmQg
cHRyW3JzcF0KLSAgICBwdXNoIHJicAotICAgIG1vdiByYXgsIHJicCA7IFNhdmUgcHJldmlvdXMg
ZnJhbWUgcG9pbnRlcgotICAgIG1vdiByYnAsIHJzcAotICAgIHB1c2ggcjEyCi0gICAgcHVzaCBy
MTMKLSAgICBwdXNoIHIxNAotICAgIHB1c2ggcjE1Ci0gICAgcHVzaCByYngKLSAgICBwdXNoIHJz
aQotICAgIHB1c2ggcmRpCi0KLSAgICA7IEpJVCBvcGVyYXRpb25zIGNhbiB1c2UgdXAgdG8gNiBh
cmdzICg0IGluIHJlZ2lzdGVycyBhbmQgMiBvbiB0aGUgc3RhY2spLgotICAgIDsgSW4gYWRkaXRp
b24sIFg4Nl82NCBBQkkgc3BlY2lmaWVzIHRoYXQgdGhlIHdvcnNlIGNhc2Ugc3RhY2sgYWxpZ25t
ZW50Ci0gICAgOyByZXF1aXJlbWVudCBpcyAzMiBieXRlcy4gQmFzZWQgb24gdGhlc2UgZmFjdG9y
cywgd2UgbmVlZCB0byBwYWQgdGhlIHN0YWNrCi0gICAgOyBhbiBhZGRpdGlvbmFsIDI4aCBieXRl
cy4KLSAgICBzdWIgcnNwLCAyOGgKLQotICAgIG1vdiByYnAsIHI5Ci0gICAgc3ViIHJicCwgNDAK
LSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDQwXSwgMAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsg
MzJdLCByZHgKLQotICAgIG1vdiByYXgsIHF3b3JkIHB0cltyZHhdCi0gICAgbW92IHF3b3JkIHB0
cltyYnAgKyAyNF0sIHJheAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMTZdLCAxCi0gICAgbW92
IHF3b3JkIHB0cltyYnAgKyA4XSwgcjEwCi0gICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLSAg
ICBtb3YgcmF4LCByYnAKLQotICAgIG1vdiBlYngsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIGFk
ZCByYngsIDYKLSAgICBzYWwgcmJ4LCAzCi0gICAgc3ViIHJicCwgcmJ4Ci0gICAgbW92IHF3b3Jk
IHB0cltyYnBdLCByYXgKLQotICAgIG1vdiByYXgsIDUKLQotY29weUhlYWRlckxvb3A6Ci0gICAg
c3ViIHJheCwgMQotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyOCArIHJheCAqIDhdCi0gICAgbW92
IHF3b3JkIHB0cltyYnAgKyByYXggKiA4ICsgMTZdLCByMTAKLSAgICB0ZXN0IHJheCwgcmF4Ci0g
ICAgam56IGNvcHlIZWFkZXJMb29wCi0KLSAgICBtb3YgZWJ4LCBkd29yZCBwdHJbcjggKyAyNF0K
LSAgICBzdWIgcmJ4LCAxCi0gICAgbW92IHIxMGQsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIHN1
YiByMTAsIDEKLSAgICBjbXAgcmJ4LCByMTAKLSAgICBqZSBjb3B5QXJncwotICAgIG1vdiByYXgs
IDBhaAotCi1maWxsRXh0cmFBcmdzTG9vcDoKLSAgICBzdWIgcjEwLCAxCi0gICAgbW92IHF3b3Jk
IHB0cltyYnAgKyByMTAgKiA4ICsgNTZdLCByYXgKLSAgICBjbXAgcmJ4LCByMTAKLSAgICBqbmUg
ZmlsbEV4dHJhQXJnc0xvb3AKLQotY29weUFyZ3M6Ci0gICAgbW92IHJheCwgcXdvcmQgcHRyW3I4
ICsgNDhdCi0KLWNvcHlBcmdzTG9vcDoKLSAgICB0ZXN0IHJieCwgcmJ4Ci0gICAganogY29weUFy
Z3NEb25lCi0gICAgc3ViIHJieCwgMQotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyYXggKyByYngg
KiA4XQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcmJ4ICogOCArIDU2XSwgcjEwCi0gICAgam1w
IGNvcHlBcmdzTG9vcAotCi1jb3B5QXJnc0RvbmU6Ci0gICAgbW92IHF3b3JkIHB0cltyZHhdLCBy
YnAKLSAgICBtb3YgcjE0LCAwRkZGRjAwMDAwMDAwMDAwMGgKLSAgICBtb3YgcjE1LCAwRkZGRjAw
MDAwMDAwMDAwMmgKLQotICAgIG1vdiByYXgsIHJjeAotICAgIG1vdiByY3gsIHJicAotICAgIGNh
bGwgcmF4Ci0KLSAgICBjbXAgcXdvcmQgcHRyW3JicCArIDE2XSwgMQotICAgIGplIGNhbGxlZUZy
YW1lUG9wcGVkCi0gICAgbW92IHJicCwgcXdvcmQgcHRyW3JicF0KLQotY2FsbGVlRnJhbWVQb3Bw
ZWQ6Ci0gICAgbW92IHJieCwgcXdvcmQgcHRyW3JicCArIDMyXSA7IFZNLnRvcENhbGxGcmFtZQot
ICAgIG1vdiByMTAsIHF3b3JkIHB0cltyYnAgKyAyNF0KLSAgICBtb3YgcXdvcmQgcHRyW3JieF0s
IHIxMAotICAgIGFkZCByc3AsIDI4aAotICAgIHBvcCByZGkKLSAgICBwb3AgcnNpCi0gICAgcG9w
IHJieAotICAgIHBvcCByMTUKLSAgICBwb3AgcjE0Ci0gICAgcG9wIHIxMwotICAgIHBvcCByMTIK
LSAgICBwb3AgcmJwCi0gICAgcmV0Ci1jYWxsVG9OYXRpdmVGdW5jdGlvbiBFTkRQCi0KLXJldHVy
bkZyb21KYXZhU2NyaXB0IFBST0MKLSAgICBhZGQgcnNwLCAyOGgKLSAgICBwb3AgcmRpCi0gICAg
cG9wIHJzaQotICAgIHBvcCByYngKLSAgICBwb3AgcjE1Ci0gICAgcG9wIHIxNAotICAgIHBvcCBy
MTMKLSAgICBwb3AgcjEyCi0gICAgcG9wIHJicAotICAgIHJldAotcmV0dXJuRnJvbUphdmFTY3Jp
cHQgRU5EUAotCQotZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSBQUk9DCi0gICAgbW92IHJicCwgW3Ji
cF0gOyBDYWxsRnJhbWUKLSAgICBtb3YgcmN4LCByYnAgOyByY3ggaXMgZmlyc3QgYXJndW1lbnQg
cmVnaXN0ZXIgb24gV2luZG93cwotICAgIGptcCBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4
ZWNTdGF0ZQotZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSBFTkRQCi0KLV9URVhUICAgRU5EUwotCi1F
TkQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNYODYuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmgJKHJldmlzaW9u
IDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNYODYuaAkod29y
a2luZyBjb3B5KQpAQCAtMjAwLDIzMCArMjAwLDYgQEAgU1lNQk9MX1NUUklORyhjdGlNYXNtUHJv
YmVUcmFtcG9saW5lRW5kKQogCiAjZW5kaWYgLy8gQ09NUElMRVIoR0NDKQogCi0jaWYgQ09NUElM
RVIoTVNWQykKLQotZXh0ZXJuICJDIiB7Ci0KLSAgICAvLyBGSVhNRTogU2luY2UgV2luZG93cyBk
b2Vzbid0IHVzZSB0aGUgTExJbnQsIHdlIGhhdmUgaW5saW5lIHN0dWJzIGhlcmUuCi0gICAgLy8g
VW50aWwgdGhlIExMSW50IGlzIGNoYW5nZWQgdG8gc3VwcG9ydCBXaW5kb3dzLCB0aGVzZSBzdHVi
IG5lZWRzIHRvIGJlIHVwZGF0ZWQuCi0gICAgX19kZWNsc3BlYyhuYWtlZCkgRW5jb2RlZEpTVmFs
dWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJh
bWUqLCBSZWdpc3RlciopCi0gICAgewotICAgICAgICBfX2FzbSB7Ci0gICAgICAgICAgICBtb3Yg
ZWR4LCBbZXNwXQotICAgICAgICAgICAgcHVzaCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWF4LCBl
YnA7Ci0gICAgICAgICAgICBtb3YgZWJwLCBlc3A7Ci0gICAgICAgICAgICBwdXNoIGVzaTsKLSAg
ICAgICAgICAgIHB1c2ggZWRpOwotICAgICAgICAgICAgcHVzaCBlYng7Ci0gICAgICAgICAgICBz
dWIgZXNwLCAweDFjOwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzcCArIDB4MzRd
OwotICAgICAgICAgICAgbW92IGVzaSwgZHdvcmQgcHRyW2VzcCArIDB4MzhdOwotICAgICAgICAg
ICAgbW92IGVicCwgZHdvcmQgcHRyW2VzcCArIDB4M2NdOwotICAgICAgICAgICAgc3ViIGVicCwg
MHgyMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgyNF0sIDA7Ci0gICAgICAg
ICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MjBdLCAwOwotICAgICAgICAgICAgbW92IGR3b3Jk
IHB0cltlYnAgKyAweDFjXSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgx
OF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBlYngsIFtlY3hdOwotICAgICAgICAgICAgbW92IGR3
b3JkIHB0cltlYnAgKyAweDE0XSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsg
MHgxMF0sIGVieDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHhjXSwgMDsKLSAg
ICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHg4XSwgMTsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHJbZWJwICsgMHg0XSwgZWR4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnBd
LCBlYXg7Ci0gICAgICAgICAgICBtb3YgZWF4LCBlYnA7Ci0KLSAgICAgICAgICAgIG1vdiBlZHgs
IGR3b3JkIHB0cltlc2kgKyAweDI4XTsKLSAgICAgICAgICAgIGFkZCBlZHgsIDU7Ci0gICAgICAg
ICAgICBzYWwgZWR4LCAzOwotICAgICAgICAgICAgc3ViIGVicCwgZWR4OwotICAgICAgICAgICAg
bW92IGR3b3JkIHB0cltlYnBdLCBlYXg7Ci0KLSAgICAgICAgICAgIG1vdiBlYXgsIDU7Ci0KLSAg
ICAgICAgY29weUhlYWRlckxvb3A6Ci0gICAgICAgICAgICBzdWIgZWF4LCAxOwotICAgICAgICAg
ICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzaSArIGVheCAqIDhdOwotICAgICAgICAgICAgbW92IGR3
b3JkIHB0ciA4W2VicCArIGVheCAqIDhdLCBlY3g7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29y
ZCBwdHIgNFtlc2kgKyBlYXggKiA4XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMTJbZWJw
ICsgZWF4ICogOF0sIGVjeDsKLSAgICAgICAgICAgIHRlc3QgZWF4LCBlYXg7Ci0gICAgICAgICAg
ICBqbnogY29weUhlYWRlckxvb3A7Ci0KLSAgICAgICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltl
c2kgKyAweDE4XTsKLSAgICAgICAgICAgIHN1YiBlZHgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4
LCBkd29yZCBwdHJbZXNpICsgMHgyOF07Ci0gICAgICAgICAgICBzdWIgZWN4LCAxOwotCi0gICAg
ICAgICAgICBjbXAgZWR4LCBlY3g7Ci0gICAgICAgICAgICBqZSBjb3B5QXJnczsKLQotICAgICAg
ICAgICAgeG9yIGVheCwgZWF4OwotICAgICAgICAgICAgbW92IGVieCwgLTQ7Ci0KLSAgICAgICAg
ZmlsbEV4dHJhQXJnc0xvb3A6Ci0gICAgICAgICAgICBzdWIgZWN4LCAxOwotICAgICAgICAgICAg
bW92IGR3b3JkIHB0ciAweDMwW2VicCArIGVjeCAqIDhdLCBlYXg7ICAgICAgICAgICAgCi0gICAg
ICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzRbZWJwICsgZWN4ICogOF0sIGVieDsKLSAgICAgICAg
ICAgIGNtcCBlZHgsIGVjeDsKLSAgICAgICAgICAgIGpuZSBmaWxsRXh0cmFBcmdzTG9vcDsKLQot
ICAgICAgICBjb3B5QXJnczoKLSAgICAgICAgICAgIG1vdiBlYXgsIGR3b3JkIHB0cltlc2kgKyAw
eDJjXTsKLQotICAgICAgICBjb3B5QXJnc0xvb3A6Ci0gICAgICAgICAgICB0ZXN0IGVkeCwgZWR4
OwotICAgICAgICAgICAganogY29weUFyZ3NEb25lOwotICAgICAgICAgICAgc3ViIGVkeCwgMTsK
LSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0ciAwW2VheCArIGVkeCAqIDhdOwotICAgICAg
ICAgICAgbW92IGVieCwgZHdvcmQgcHRyIDRbZWF4ICsgZWR4ICogOF07Ci0gICAgICAgICAgICBt
b3YgZHdvcmQgcHRyIDB4MzBbZWJwICsgZWR4ICogOF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHIgMHgzNFtlYnAgKyBlZHggKiA4XSwgZWJ4OwotICAgICAgICAgICAgam1wIGNvcHlB
cmdzTG9vcDsKLQotICAgICAgICBjb3B5QXJnc0RvbmU6Ci0gICAgICAgICAgICBtb3YgZWN4LCBk
d29yZCBwdHJbZXNwICsgMHgzNF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VjeF0sIGVi
cDsKLQotICAgICAgICAgICAgY2FsbCBkd29yZCBwdHJbZXNwICsgMHgzMF07Ci0KLSAgICAgICAg
ICAgIGNtcCBkd29yZCBwdHJbZWJwICsgOF0sIDE7Ci0gICAgICAgICAgICBqZSBjYWxsZWVGcmFt
ZVBvcHBlZDsKLSAgICAgICAgICAgIG1vdiBlYnAsIGR3b3JkIHB0cltlYnBdOwotCi0gICAgICAg
IGNhbGxlZUZyYW1lUG9wcGVkOgotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VicCAr
IDB4MThdOwotICAgICAgICAgICAgbW92IGVieCwgZHdvcmQgcHRyW2VicCArIDB4MTBdOwotICAg
ICAgICAgICAgbW92IGR3b3JkIHB0cltlY3hdLCBlYng7Ci0KLSAgICAgICAgICAgIGFkZCBlc3As
IDB4MWM7Ci0gICAgICAgICAgICBwb3AgZWJ4OwotICAgICAgICAgICAgcG9wIGVkaTsKLSAgICAg
ICAgICAgIHBvcCBlc2k7Ci0gICAgICAgICAgICBwb3AgZWJwOwotICAgICAgICAgICAgcmV0Owot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgX19kZWNsc3BlYyhuYWtlZCkgdm9pZCByZXR1cm5Gcm9t
SmF2YVNjcmlwdCgpCi0gICAgewotICAgICAgICBfX2FzbSB7Ci0gICAgICAgICAgICBhZGQgZXNw
LCAweDFjOwotICAgICAgICAgICAgcG9wIGVieDsKLSAgICAgICAgICAgIHBvcCBlZGk7Ci0gICAg
ICAgICAgICBwb3AgZXNpOwotICAgICAgICAgICAgcG9wIGVicDsKLSAgICAgICAgICAgIHJldDsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIF9fZGVjbHNwZWMobmFrZWQpIEVuY29kZWRKU1ZhbHVl
IGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxG
cmFtZSosIFJlZ2lzdGVyKikKLSAgICB7Ci0gICAgICAgIF9fYXNtIHsKLSAgICAgICAgICAgIG1v
diBlZHgsIFtlc3BdCi0gICAgICAgICAgICBwdXNoIGVicDsKLSAgICAgICAgICAgIG1vdiBlYXgs
IGVicDsKLSAgICAgICAgICAgIG1vdiBlYnAsIGVzcDsKLSAgICAgICAgICAgIHB1c2ggZXNpOwot
ICAgICAgICAgICAgcHVzaCBlZGk7Ci0gICAgICAgICAgICBwdXNoIGVieDsKLSAgICAgICAgICAg
IHN1YiBlc3AsIDB4MWM7Ci0gICAgICAgICAgICBtb3YgZWN4LCBbZXNwICsgMHgzNF07Ci0gICAg
ICAgICAgICBtb3YgZXNpLCBbZXNwICsgMHgzOF07Ci0gICAgICAgICAgICBtb3YgZWJwLCBbZXNw
ICsgMHgzY107Ci0gICAgICAgICAgICBzdWIgZWJwLCAweDIwOwotICAgICAgICAgICAgbW92IGR3
b3JkIHB0cltlYnAgKyAweDI0XSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsg
MHgyMF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MWNdLCAwOwotICAg
ICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDE4XSwgZWN4OwotICAgICAgICAgICAgbW92
IGVieCwgW2VjeF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MTRdLCAwOwot
ICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDEwXSwgZWJ4OwotICAgICAgICAgICAg
bW92IGR3b3JkIHB0cltlYnAgKyAweGNdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltl
YnAgKyAweDhdLCAxOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDRdLCBlZHg7
Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicF0sIGVheDsKLSAgICAgICAgICAgIG1vdiBl
YXgsIGVicDsKLQotICAgICAgICAgICAgbW92IGVkeCwgZHdvcmQgcHRyW2VzaSArIDB4MjhdOwot
ICAgICAgICAgICAgYWRkIGVkeCwgNTsKLSAgICAgICAgICAgIHNhbCBlZHgsIDM7Ci0gICAgICAg
ICAgICBzdWIgZWJwLCBlZHg7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicF0sIGVheDsK
LQotICAgICAgICAgICAgbW92IGVheCwgNTsKLQotICAgICAgICBjb3B5SGVhZGVyTG9vcDoKLSAg
ICAgICAgICAgIHN1YiBlYXgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNp
ICsgZWF4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDhbZWJwICsgZWF4ICogOF0s
IGVjeDsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0ciA0W2VzaSArIGVheCAqIDhdOwot
ICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAxMltlYnAgKyBlYXggKiA4XSwgZWN4OwotICAgICAg
ICAgICAgdGVzdCBlYXgsIGVheDsKLSAgICAgICAgICAgIGpueiBjb3B5SGVhZGVyTG9vcDsKLQot
ICAgICAgICAgICAgbW92IGVkeCwgZHdvcmQgcHRyW2VzaSArIDB4MThdOwotICAgICAgICAgICAg
c3ViIGVkeCwgMTsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc2kgKyAweDI4XTsK
LSAgICAgICAgICAgIHN1YiBlY3gsIDE7Ci0KLSAgICAgICAgICAgIGNtcCBlZHgsIGVjeDsKLSAg
ICAgICAgICAgIGplIGNvcHlBcmdzOwotCi0gICAgICAgICAgICB4b3IgZWF4LCBlYXg7Ci0gICAg
ICAgICAgICBtb3YgZWJ4LCAtNDsKLQotICAgICAgICBmaWxsRXh0cmFBcmdzTG9vcDoKLSAgICAg
ICAgICAgIHN1YiBlY3gsIDE7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzBbZWJwICsg
ZWN4ICogOF0sIGVheDsgICAgICAgICAgICAKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgz
NFtlYnAgKyBlY3ggKiA4XSwgZWJ4OwotICAgICAgICAgICAgY21wIGVkeCwgZWN4OwotICAgICAg
ICAgICAgam5lIGZpbGxFeHRyYUFyZ3NMb29wOwotCi0gICAgICAgIGNvcHlBcmdzOgotICAgICAg
ICAgICAgbW92IGVheCwgZHdvcmQgcHRyW2VzaSArIDB4MmNdOwotCi0gICAgICAgIGNvcHlBcmdz
TG9vcDoKLSAgICAgICAgICAgIHRlc3QgZWR4LCBlZHg7Ci0gICAgICAgICAgICBqeiBjb3B5QXJn
c0RvbmU7Ci0gICAgICAgICAgICBzdWIgZWR4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdv
cmQgcHRyIDBbZWF4ICsgZWR4ICogOF07Ci0gICAgICAgICAgICBtb3YgZWJ4LCBkd29yZCBwdHIg
NFtlYXggKyBlZHggKiA4XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzMFtlYnAgKyBl
ZHggKiA4XSwgZWN4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDM0W2VicCArIGVkeCAq
IDhdLCBlYng7Ci0gICAgICAgICAgICBqbXAgY29weUFyZ3NMb29wOwotCi0gICAgICAgIGNvcHlB
cmdzRG9uZToKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc3AgKyAweDM0XTsKLSAg
ICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWN4XSwgZWJwOwotCi0gICAgICAgICAgICBtb3YgZWRp
LCBkd29yZCBwdHJbZXNwICsgMHgzMF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VzcCAr
IDB4MzBdLCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWN4LCBlYnA7Ci0gICAgICAgICAgICBjYWxs
IGVkaTsKLQotICAgICAgICAgICAgY21wIGR3b3JkIHB0cltlYnAgKyA4XSwgMTsKLSAgICAgICAg
ICAgIGplIGNhbGxlZUZyYW1lUG9wcGVkOwotICAgICAgICAgICAgbW92IGVicCwgZHdvcmQgcHRy
W2VicF07Ci0KLSAgICAgICAgY2FsbGVlRnJhbWVQb3BwZWQ6Ci0gICAgICAgICAgICBtb3YgZWN4
LCBkd29yZCBwdHJbZWJwICsgMHgxOF07Ci0gICAgICAgICAgICBtb3YgZWJ4LCBkd29yZCBwdHJb
ZWJwICsgMHgxMF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VjeF0sIGVieDsKLQotICAg
ICAgICAgICAgYWRkIGVzcCwgMHgxYzsKLSAgICAgICAgICAgIHBvcCBlYng7Ci0gICAgICAgICAg
ICBwb3AgZWRpOwotICAgICAgICAgICAgcG9wIGVzaTsKLSAgICAgICAgICAgIHBvcCBlYnA7Ci0g
ICAgICAgICAgICByZXQ7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLSNlbmRpZiAvLyBDT01QSUxF
UihNU1ZDKQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEpJVFN0dWJzWDg2X2gK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtz
OjpjdGlOYXRpCiAjZW5kaWYKICAgICByZXR1cm4gY3RpU3R1Yih2bSwgbmF0aXZlQ2FsbEdlbmVy
YXRvcikuY29kZSgpOwogfQorCiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlO
YXRpdmVDb25zdHJ1Y3QoVk0qIHZtKQogewogI2lmIEVOQUJMRShMTElOVCkKQEAgLTYxLDYgKzYy
LDEyIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBKSVRUaHVua3M6OmN0aU5hdGkKICAgICByZXR1
cm4gY3RpU3R1Yih2bSwgbmF0aXZlQ29uc3RydWN0R2VuZXJhdG9yKS5jb2RlKCk7CiB9CiAKK01h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBKSVRUaHVua3M6OmN0aU5hdGl2ZVRhaWxDYWxsKFZNKiB2bSkK
K3sKKyAgICBBU1NFUlQodm0tPmNhblVzZUpJVCgpKTsKKyAgICByZXR1cm4gY3RpU3R1Yih2bSwg
bmF0aXZlVGFpbENhbGxHZW5lcmF0b3IpLmNvZGUoKTsKK30KKwogTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIEpJVFRodW5rczo6Y3RpU3R1YihWTSogdm0sIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvcikK
IHsKICAgICBMb2NrZXIgbG9ja2VyKG1fbG9jayk7CkBAIC04MCw3ICs4NywxMiBAQCBOYXRpdmVF
eGVjdXRhYmxlKiBKSVRUaHVua3M6Omhvc3RGdW5jdGlvCiAgICAgaWYgKE5hdGl2ZUV4ZWN1dGFi
bGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBtX2hvc3RGdW5jdGlvblN0dWJNYXAtPmdldChzdGQ6Om1h
a2VfcGFpcihmdW5jdGlvbiwgY29uc3RydWN0b3IpKSkKICAgICAgICAgcmV0dXJuIG5hdGl2ZUV4
ZWN1dGFibGU7CiAKLSAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0
aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCp2bSwgSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwg
ZnVuY3Rpb24pLCBmdW5jdGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFu
YWdlZENvZGVSZWYoY3RpTmF0aXZlQ29uc3RydWN0KHZtKSksIGNvbnN0cnVjdG9yLCBOb0ludHJp
bnNpYyk7CisgICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4
ZWN1dGFibGU6OmNyZWF0ZSgKKyAgICAgICAgKnZtLAorICAgICAgICBhZG9wdFJlZihuZXcgTmF0
aXZlSklUQ29kZShKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5jdGlvbiksIEpJVENv
ZGU6Okhvc3RDYWxsVGh1bmspKSwKKyAgICAgICAgZnVuY3Rpb24sCisgICAgICAgIGFkb3B0UmVm
KG5ldyBOYXRpdmVKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFn
ZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCh2bSkpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5r
KSksCisgICAgICAgIGNvbnN0cnVjdG9yLCBOb0ludHJpbnNpYyk7CiAgICAgd2Vha0FkZCgqbV9o
b3N0RnVuY3Rpb25TdHViTWFwLCBzdGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwgY29uc3RydWN0b3Ip
LCBXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+KG5hdGl2ZUV4ZWN1dGFibGUpKTsKICAgICByZXR1cm4g
bmF0aXZlRXhlY3V0YWJsZTsKIH0KQEAgLTkyLDE2ICsxMDQsMTggQEAgTmF0aXZlRXhlY3V0YWJs
ZSogSklUVGh1bmtzOjpob3N0RnVuY3RpbwogICAgIGlmIChOYXRpdmVFeGVjdXRhYmxlKiBuYXRp
dmVFeGVjdXRhYmxlID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5nZXQoc3RkOjptYWtlX3BhaXIo
ZnVuY3Rpb24sICZjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvcikpKQogICAgICAgICByZXR1
cm4gbmF0aXZlRXhlY3V0YWJsZTsKIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb2RlOwor
ICAgIFJlZlB0cjxKSVRDb2RlPiBmb3JDYWxsOwogICAgIGlmIChnZW5lcmF0b3IpIHsKLSAgICAg
ICAgaWYgKHZtLT5jYW5Vc2VKSVQoKSkKLSAgICAgICAgICAgIGNvZGUgPSBnZW5lcmF0b3Iodm0p
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
KCk7CisgICAgICAgIGlmICh2bS0+Y2FuVXNlSklUKCkpIHsKKyAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBlbnRyeSA9IGdlbmVyYXRvcih2bSk7CisgICAgICAgICAgICBmb3JDYWxs
ID0gYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoZW50cnksIGVudHJ5LmNvZGUoKSwgSklUQ29k
ZTo6SG9zdENhbGxUaHVuaykpOworICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIGNvZGUg
PSBKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5jdGlvbik7Ci0KLSAgICBOYXRpdmVF
eGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCp2
bSwgY29kZSwgZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFn
ZWRDb2RlUmVmKGN0aU5hdGl2ZUNvbnN0cnVjdCh2bSkpLCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25z
dHJ1Y3RvciwgaW50cmluc2ljKTsKKyAgICAgICAgZm9yQ2FsbCA9IGFkb3B0UmVmKG5ldyBOYXRp
dmVKSVRDb2RlKEpJVDo6Y29tcGlsZUNUSU5hdGl2ZUNhbGwodm0sIGZ1bmN0aW9uKSwgSklUQ29k
ZTo6SG9zdENhbGxUaHVuaykpOworICAgIAorICAgIFJlZlB0cjxKSVRDb2RlPiBmb3JDb25zdHJ1
Y3QgPSBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNy
ZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3Qodm0pKSwgSklUQ29kZTo6
SG9zdENhbGxUaHVuaykpOworICAgIAorICAgIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1
dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoKnZtLCBmb3JDYWxsLCBmdW5jdGlvbiwg
Zm9yQ29uc3RydWN0LCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgaW50cmluc2ljKTsK
ICAgICB3ZWFrQWRkKCptX2hvc3RGdW5jdGlvblN0dWJNYXAsIHN0ZDo6bWFrZV9wYWlyKGZ1bmN0
aW9uLCAmY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IpLCBXZWFrPE5hdGl2ZUV4ZWN1dGFi
bGU+KG5hdGl2ZUV4ZWN1dGFibGUpKTsKICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsKIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaAkocmV2aXNpb24gMTYyOTYx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaAkod29ya2luZyBjb3B5
KQpAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpTmF0aXZlQ2FsbChWTSopOwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVD
b25zdHJ1Y3QoVk0qKTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlVGFpbENh
bGwoVk0qKTsgICAgCiAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY3RpU3R1YihWTSosIFRo
dW5rR2VuZXJhdG9yKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3Rl
clByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIy
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2Vu
ZXJhdG9yLmgiCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAiQXNzZW1ibHlIZWxwZXJz
LmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50Lmgi
CisKK25hbWVzcGFjZSBKU0MgeworCitSZWdpc3RlclNldCByZWdpc3RlcnNUb1ByZXNlcnZlKCkK
K3sKKyAgICBSZWdpc3RlclNldCBjYWxsZWVTYXZlcyA9IFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZl
UmVnaXN0ZXJzKCk7CisgICAgCisgICAgLy8gTm8gbmVlZCB0byBwcmVzZXJ2ZSBGUCBzaW5jZSB0
aGF0IGFsd2F5cyBnZXRzIHByZXNlcnZlZCBhbnl3YXkuCisgICAgY2FsbGVlU2F2ZXMuY2xlYXIo
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIAorICAgIHJldHVybiBjYWxsZWVTYXZl
czsKK30KKworcHRyZGlmZl90IHJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KCkKK3sKKyAgICB1
bnNpZ25lZCBudW1iZXJPZkNhbGxlZVNhdmVzID0gcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpLm51bWJl
ck9mU2V0UmVnaXN0ZXJzKCk7CisgICAgCisgICAgLy8gTmVlZCB0byBwcmVzZXJ2ZSB0aGUgb2xk
IHJldHVybiBQQy4KKyAgICB1bnNpZ25lZCBudW1iZXJPZlZhbHVlc1RvU2F2ZSA9IG51bWJlck9m
Q2FsbGVlU2F2ZXMgKyAxOworICAgIAorICAgIC8vIEFsaWdubWVudC4gUHJlc2VydmUgdGhlIHNh
bWUgYWxpZ25tZW50IGludmFyaWFudHMgdGhhdCB0aGUgY2FsbGVyIGltcG9zZWQuCisgICAgdW5z
aWduZWQgbnVtYmVyT2ZOZXdTdGFja1Nsb3RzID0KKyAgICAgICAgV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIG51bWJlck9mVmFsdWVzVG9TYXZlKTsK
KyAgICAKKyAgICByZXR1cm4gc2l6ZW9mKFJlZ2lzdGVyKSAqIG51bWJlck9mTmV3U3RhY2tTbG90
czsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRp
b25XcmFwcGVyKFZNJiB2bSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUsIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciB0YXJnZXQpCit7CisjaWYgRU5BQkxFKEZUTF9KSVQpCisgICAgLy8gV2Ugc2hv
dWxkbid0IGV2ZXIgYmUgZ2VuZXJhdGluZyB3cmFwcGVycyBmb3IgbmF0aXZlIGZ1bmN0aW9ucy4K
KyAgICBSZWdpc3RlclNldCB0b1NhdmUgPSByZWdpc3RlcnNUb1ByZXNlcnZlKCk7CisgICAgcHRy
ZGlmZl90IG9mZnNldCA9IHJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KCk7CisgICAgCisgICAg
QXNzZW1ibHlIZWxwZXJzIGppdCgmdm0sIDApOworICAgIAorICAgIGppdC5wcmVzZXJ2ZVJldHVy
bkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5sb2FkMzIoCisgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVy
czo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsCisgICAgICAgICAgICAoSlNTdGFjazo6QXJndW1lbnRD
b3VudCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSAqIHNpemVvZihSZWdpc3Rlcikg
KyBQYXlsb2FkT2Zmc2V0KSwKKyAgICAgICAgR1BSSW5mbzo6cmVnVDIpOworICAgIAorICAgIC8v
IFBsYWNlIHRoZSBzdGFjayBwb2ludGVyIHdoZXJlIHdlIHdhbnQgaXQgdG8gYmUuCisgICAgaml0
LnN1YlB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihvZmZzZXQpLCBBc3NlbWJseUhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAKKyAgICAvLyBDb21wdXRlIHRoZSBu
dW1iZXIgb2YgdGhpbmdzIHdlIHdpbGwgYmUgY29weWluZy4KKyAgICBqaXQuYWRkMzIoCisgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSwKKyAg
ICAgICAgR1BSSW5mbzo6cmVnVDIpOworCisgICAgQVNTRVJUKCF0b1NhdmUuZ2V0KEdQUkluZm86
OnJlZ1Q0KSk7CisgICAgaml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdp
c3RlciwgR1BSSW5mbzo6cmVnVDQpOworICAgIAorICAgIEFzc2VtYmx5SGVscGVyczo6TGFiZWwg
bG9vcCA9IGppdC5sYWJlbCgpOworICAgIGppdC5zdWIzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5sb2FkNjQoQXNzZW1ibHlIZWxw
ZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Q0LCBvZmZzZXQpLCBHUFJJbmZvOjpyZWdUMCk7Cisg
ICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1Q0KTsKKyAgICBqaXQu
YWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKHNpemVvZihSZWdpc3RlcikpLCBH
UFJJbmZvOjpyZWdUNCk7CisgICAgaml0LmJyYW5jaFRlc3QzMihBc3NlbWJseUhlbHBlcnM6Ok5v
blplcm8sIEdQUkluZm86OnJlZ1QyKS5saW5rVG8obG9vcCwgJmppdCk7CisKKyAgICAvLyBBdCB0
aGlzIHBvaW50IHJlZ1Q0ICsgb2Zmc2V0IHBvaW50cyB0byB3aGVyZSB3ZSBzYXZlIHRoaW5ncy4K
KyAgICBwdHJkaWZmX3QgY3VycmVudE9mZnNldCA9IDA7CisgICAgaml0LnN0b3JlUHRyKEdQUklu
Zm86OnJlZ1QxLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDQsIGN1cnJl
bnRPZmZzZXQpKTsKKyAgICAKKyAgICBmb3IgKEdQUlJlZyBncHIgPSBBc3NlbWJseUhlbHBlcnM6
OmZpcnN0UmVnaXN0ZXIoKTsgZ3ByIDw9IEFzc2VtYmx5SGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7
IGdwciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oZ3ByICsgMSkpIHsKKyAgICAgICAgaWYgKCF0b1Nh
dmUuZ2V0KGdwcikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY3VycmVudE9mZnNl
dCArPSBzaXplb2YoUmVnaXN0ZXIpOworICAgICAgICBqaXQuc3RvcmU2NChncHIsIEFzc2VtYmx5
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUNCwgY3VycmVudE9mZnNldCkpOworICAgIH0K
KyAgICAKKyAgICAvLyBBc3N1bWUgdGhhdCB0aGVyZSBhcmVuJ3QgYW55IHNhdmVkIEZQIHJlZ2lz
dGVycy4KKyAgICAKKyAgICAvLyBSZXN0b3JlIHRoZSB0YWcgcmVnaXN0ZXJzLgorICAgIGppdC5t
b3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZv
Ojp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOworICAgIGppdC5hZGQ2NChBc3NlbWJseUhlbHBlcnM6
OlRydXN0ZWRJbW0zMihUYWdNYXNrIC0gVGFnVHlwZU51bWJlciksIEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3RlciwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKTsKKyAgICAKKyAgICBqaXQu
bW92ZSgKKyAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKAorICAgICAgICAg
ICAgdm0uZ2V0Q1RJU3R1YihyZWdpc3RlclJlc3RvcmF0aW9uVGh1bmtHZW5lcmF0b3IpLmNvZGUo
KS5leGVjdXRhYmxlQWRkcmVzcygpKSwKKyAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BSMCk7Cisg
ICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86Om5vbkFyZ0dQ
UjApOworICAgIEFzc2VtYmx5SGVscGVyczo6SnVtcCBqdW1wID0gaml0Lmp1bXAoKTsKKyAgICAK
KyAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7Cisg
ICAgbGlua0J1ZmZlci5saW5rKGp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKHRhcmdldCkpOworCisg
ICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VGVExUb0pTVGh1bmsoKSkKKyAgICAgICAgZGF0YUxvZygi
TmVlZCBhIHRodW5rIGZvciBjYWxscyBmcm9tIEZUTCB0byBub24tRlRMIHZlcnNpb24gb2YgIiwg
KmV4ZWN1dGFibGUsICJcbiIpOworICAgIAorICAgIHJldHVybiBGSU5BTElaRV9ERkdfQ09ERShs
aW5rQnVmZmVyLCAoIlJlZ2lzdGVyIHByZXNlcnZhdGlvbiB3cmFwcGVyIGZvciAlcy8lcywgJXAi
LCB0b0NTdHJpbmcoZXhlY3V0YWJsZS0+aGFzaEZvcihDb2RlRm9yQ2FsbCkpLmRhdGEoKSwgdG9D
U3RyaW5nKGV4ZWN1dGFibGUtPmhhc2hGb3IoQ29kZUZvckNvbnN0cnVjdCkpLmRhdGEoKSwgdGFy
Z2V0LmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyNlbHNlIC8vIEVOQUJMRShGVExfSklUKQorICAg
IFVOVVNFRF9QQVJBTSh2bSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWN1dGFibGUpOworICAgIFVO
VVNFRF9QQVJBTSh0YXJnZXQpOworICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgbm9uLUZUTCBidWls
ZHMgZm9yIHR3byByZWFzb25zOgorICAgIC8vIC0gSXQganVzdCBzbyBoYXBwZW5zIHRoYXQgY3Vy
cmVudGx5IG9ubHkgdGhlIEZUTCBib3R0b21zIG91dCBpbiB0aGlzIGNvZGUuCisgICAgLy8gLSBU
aGUgY29kZSBhYm92ZSB1c2VzIDY0LWJpdCBpbnN0cnVjdGlvbnMuIEl0IGRvZXNuJ3QgbmVjZXNz
YXJpbHkgaGF2ZSB0bzsgaXQgd291bGQgYmUKKyAgICAvLyAgIGVhc3kgdG8gY2hhbmdlIGl0IHNv
IHRoYXQgaXQgZG9lc24ndC4gQnV0IG9idmlvdXNseSBtYWtpbmcgdGhhdCBjaGFuZ2Ugd291bGQg
YmUgYQorICAgIC8vICAgcHJlcmVxdWlzaXRlIHRvIHJlbW92aW5nIHRoaXMgI2lmLgorICAgIFVO
UkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOworICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYoKTsKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKK30KKworc3RhdGljIHZvaWQgZ2VuZXJh
dGVSZWdpc3RlclJlc3RvcmF0aW9uKEFzc2VtYmx5SGVscGVycyYgaml0KQoreworI2lmIEVOQUJM
RShGVExfSklUKQorICAgIFJlZ2lzdGVyU2V0IHRvU2F2ZSA9IHJlZ2lzdGVyc1RvUHJlc2VydmUo
KTsKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0ID0gcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKTsK
KyAgICAKKyAgICBBU1NFUlQoIXRvU2F2ZS5nZXQoR1BSSW5mbzo6cmVnVDQpKTsKKworICAgIC8v
IFdlIG5lZWQgdG8gcGxhY2UgdGhlIHN0YWNrIHBvaW50ZXIgYmFjayB0byB3aGVyZSB0aGUgY2Fs
bGVyIHRob3VnaHQgdGhleSBsZWZ0IGl0LgorICAgIC8vIEJ1dCBhbHNvLCBpbiBvcmRlciB0byBy
ZWNvdmVyIHRoZSByZWdpc3RlcnMsIHdlIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYmlnIHRoZQor
ICAgIC8vIGFyZ3VtZW50cyBhcmVhIGlzLgorICAgIAorICAgIGppdC5sb2FkMzIoCisgICAgICAg
IEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsCisgICAgICAgICAgICAoSlNTdGFjazo6QXJndW1lbnRDb3Vu
dCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSAqIHNpemVvZihSZWdpc3RlcikgKyBQ
YXlsb2FkT2Zmc2V0KSwKKyAgICAgICAgR1BSSW5mbzo6cmVnVDQpOworICAgIAorICAgIGppdC5t
b3ZlKEdQUkluZm86OnJlZ1Q0LCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LmxzaGlmdDMyKEFz
c2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDMpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgCisg
ICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihvZmZzZXQpLCBBc3Nl
bWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkUHRyKEFzc2Vt
Ymx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QyKTsKKyAgICAK
KyAgICAvLyBXZSBzYXZlZCB0aGluZ3MgYXQ6CisgICAgLy8KKyAgICAvLyAgICAgYWRqU1AgKyAo
SlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENT
aXplICsgTnVtQXJncykgKiA4CisgICAgLy8KKyAgICAvLyBXaGVyZToKKyAgICAvLworICAgIC8v
ICAgICBhZGpTUCA9IG9yaWdTUCAtIG9mZnNldAorICAgIC8vCisgICAgLy8gcmVnVDIgbm93IHBv
aW50cyBhdDoKKyAgICAvLworICAgIC8vICAgICBvcmlnU1AgKyBOdW1BcmdzICogOAorICAgIC8v
ICAgPSBhZGpTUCArIG9mZnNldCArIE51bUFyZ3MgKiA4CisgICAgLy8gCisgICAgLy8gU28gaWYg
d2Ugc3VidHJhY3Qgb2Zmc2V0IGFuZCB0aGVuIGFkZCBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJT
aXplIGFuZCBzdWJ0cmFjdAorICAgIC8vIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplLCB3
ZSdsbCBnZXQgdGhlIHRoaW5nIHdlIHdhbnQuCisgICAgcHRyZGlmZl90IGN1cnJlbnRPZmZzZXQg
PSAtb2Zmc2V0ICsgc2l6ZW9mKFJlZ2lzdGVyKSAqICgKKyAgICAgICAgSlNTdGFjazo6Q2FsbEZy
YW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKTsKKyAgICBqaXQu
bG9hZFB0cihBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDIsIGN1cnJlbnRP
ZmZzZXQpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgCisgICAgZm9yIChHUFJSZWcgZ3ByID0gQXNz
ZW1ibHlIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGdwciA8PSBBc3NlbWJseUhlbHBlcnM6Omxh
c3RSZWdpc3RlcigpOyBncHIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KGdwciArIDEpKSB7CisgICAg
ICAgIGlmICghdG9TYXZlLmdldChncHIpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGN1cnJlbnRPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICAgICAgaml0LmxvYWQ2NChB
c3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDIsIGN1cnJlbnRPZmZzZXQpLCBn
cHIpOworICAgIH0KKyAgICAKKyAgICAvLyBUaHVua3MgbGlrZSB0aGlzIHJlbHkgb24gdGhlIEFy
Z3VtZW50Q291bnQgYmVpbmcgaW50YWN0LiBQYXkgaXQgZm9yd2FyZC4KKyAgICBqaXQuc3RvcmUz
MigKKyAgICAgICAgR1BSSW5mbzo6cmVnVDQsCisgICAgICAgIEFzc2VtYmx5SGVscGVyczo6QWRk
cmVzcygKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
CisgICAgICAgICAgICAoSlNTdGFjazo6QXJndW1lbnRDb3VudCAtIEpTU3RhY2s6OkNhbGxlckZy
YW1lQW5kUENTaXplKSAqIHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0KSk7CisgICAg
CisgICAgaWYgKCFBU1NFUlRfRElTQUJMRUQpIHsKKyAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpK
dW1wIG9rID0gaml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6QWJv
dmUsIEdQUkluZm86OnJlZ1QxLCBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoc3RhdGlj
X2Nhc3Q8c2l6ZV90PigweDEwMDApKSk7CisgICAgICAgIGppdC5icmVha3BvaW50KCk7CisgICAg
ICAgIG9rLmxpbmsoJmppdCk7CisgICAgfQorICAgIAorICAgIGppdC5qdW1wKEdQUkluZm86OnJl
Z1QxKTsKKyNlbHNlIC8vIEVOQUJMRShGVExfSklUKQorICAgIFVOVVNFRF9QQVJBTShqaXQpOwor
ICAgIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOworI2VuZGlmIC8vIEVOQUJMRShGVExfSklU
KQorfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2Vu
ZXJhdG9yKFZNKiB2bSkKK3sKKyAgICBBc3NlbWJseUhlbHBlcnMgaml0KHZtLCAwKTsKKyAgICBn
ZW5lcmF0ZVJlZ2lzdGVyUmVzdG9yYXRpb24oaml0KTsKKyAgICBMaW5rQnVmZmVyIGxpbmtCdWZm
ZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgIHJldHVybiBGSU5BTElaRV9DT0RF
KGxpbmtCdWZmZXIsICgiUmVnaXN0ZXIgcmVzdG9yYXRpb24gdGh1bmsiKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0
aW9uV3JhcHBlckdlbmVyYXRvci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9y
X2gKKyNkZWZpbmUgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yX2gKKworI2lm
IEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJBcml0eUNoZWNrTW9kZS5oIgorI2luY2x1ZGUgIkFz
c2VtYmx5SGVscGVycy5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorI2lu
Y2x1ZGUgIlZNLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitSZWdpc3RlclNldCByZWdpc3RlcnNU
b1ByZXNlcnZlKCk7CisKK3B0cmRpZmZfdCByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpOwor
CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2VuZXJhdGVSZWdpc3RlclByZXNlcnZhdGlvbldyYXBw
ZXIoVk0mLCBFeGVjdXRhYmxlQmFzZSosIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB0YXJnZXQpOwor
CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9y
KFZNKik7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKwor
I2VuZGlmIC8vIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvcl9oCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAy
MDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsMTEgKzUxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAvLyB0
aGF0IHdvdWxkIG9yZGluYXJpbHkgaGF2ZSB3ZWxsLWtub3duIHZhbHVlczoKIC8vIC0gdGFnVHlw
ZU51bWJlclJlZ2lzdGVyCiAvLyAtIHRhZ01hc2tSZWdpc3RlcgotLy8gLSBjYWxsRnJhbWVSZWdp
c3RlciAqKgotLy8KLS8vIFdlIGN1cnJlbnRseSBvbmx5IHVzZSB0aGUgY2FsbEZyYW1lUmVnaXN0
ZXIgZm9yIGNsb3N1cmUgY2FsbCBwYXRjaGluZywgYW5kIHdlJ3JlIG5vdCBnb2luZyB0bwotLy8g
Z2l2ZSB0aGUgRlRMIGNsb3N1cmUgY2FsbCBwYXRjaGluZyBzdXBwb3J0IHVudGlsIHdlIHN3aXRj
aCB0byB0aGUgQyBzdGFjayAtIGJ1dCB3aGVuIHdlIGRvIHRoYXQsCi0vLyBjYWxsRnJhbWVSZWdp
c3RlciB3aWxsIGRpc2FwcGVhci4KIAogc3RhdGljIEZ1bmN0aW9uUHRyIHJlYWRDYWxsVGFyZ2V0
KFJlcGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIsIENvZGVMb2NhdGlvbkNhbGwgY2FsbCkKIHsK
QEAgLTI5OCwyMyArMjkzLDIzIEBAIHN0YXRpYyBQcm90b0NoYWluR2VuZXJhdGlvblJlc3VsdCBn
ZW5lcmEKICNlbmRpZgogICAgICAgICB9CiAgICAgfQorCiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgb3BlcmF0aW9uQ2FsbDsKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBoYW5kbGVyQ2FsbDsK
ICAgICBGdW5jdGlvblB0ciBvcGVyYXRpb25GdW5jdGlvbjsKICAgICBNYWNyb0Fzc2VtYmxlcjo6
SnVtcCBzdWNjZXNzLCBmYWlsOwogICAgIGlmIChpc0FjY2Vzc29yKSB7Ci0gICAgICAgIEdQUlJl
ZyBjYWxsRnJhbWVSZWdpc3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2gu
Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUdldHRlcigp
KSB7Ci0gICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVy
LCBzY3JhdGNoR1BSLCByZXN1bHRHUFIpOworICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoc2NyYXRjaEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgICAgIG9w
ZXJhdGlvbkZ1bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEdldHRlcjsKICAgICAgICAgfSBlbHNlIHsK
ICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgLy8gRW5jb2RlZEpTVmFsdWUgKCpHZXRW
YWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgICAgICAgICBzdHViSml0LnNldHVw
QXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
cihwcm90b09iamVjdCksIHNjcmF0Y2hHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRy
KHByb3BlcnR5TmFtZS5pbXBsKCkpKTsKKyAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3RvT2JqZWN0
KSwgc2NyYXRjaEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1l
LmltcGwoKSkpOwogICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBGdW5jdGlvblB0cihz
bG90LmN1c3RvbUdldHRlcigpKTsKICNlbHNlCiAgICAgICAgICAgICBzdHViSml0Lm1vdmUoTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJvdG9PYmplY3QpLCBzY3JhdGNoR1BSKTsKLSAg
ICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIHNjcmF0
Y2hHUFIsCisgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShz
Y3JhdGNoR1BSLAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRy
KEZ1bmN0aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLAog
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFt
ZS5pbXBsKCkpKTsKICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0gb3BlcmF0aW9uQ2Fs
bEN1c3RvbUdldHRlcjsKQEAgLTM1MCw5ICszNDUsMTAgQEAgc3RhdGljIFByb3RvQ2hhaW5HZW5l
cmF0aW9uUmVzdWx0IGdlbmVyYQogICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKG9wZXJhdGlvbkNh
bGwsIG9wZXJhdGlvbkZ1bmN0aW9uKTsKICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhoYW5kbGVy
Q2FsbCwgbG9va3VwRXhjZXB0aW9uSGFuZGxlcik7CiAgICAgfQotICAgIHN0dWJSb3V0aW5lID0g
RklOQUxJWkVfQ09ERV9GT1JfREZHX1NUVUIoCi0gICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAg
ICAoIkRGRyBwcm90b3R5cGUgY2hhaW4gYWNjZXNzIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQg
JXAiLAorICAgIAorICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKKyAg
ICAgICAgZXhlYy0+Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVyLAorICAgICAgICAoIlByb3RvdHlw
ZSBjaGFpbiBhY2Nlc3Mgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAg
ICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9jaygpKS5kYXRhKCksIHN1Y2Nlc3NMYWJlbC5leGVj
dXRhYmxlQWRkcmVzcygpKSk7CiAgICAgcmV0dXJuIFByb3RvQ2hhaW5HZW5lcmF0aW9uU3VjY2Vl
ZGVkOwogfQpAQCAtNDEyLDkgKzQwOCw5IEBAIHN0YXRpYyBib29sIHRyeUNhY2hlR2V0QnlJRChF
eGVjU3RhdGUqIGUKICAgICAgICAgCiAgICAgICAgIGxpbmtSZXN0b3JlU2NyYXRjaChwYXRjaEJ1
ZmZlciwgbmVlZFRvUmVzdG9yZVNjcmF0Y2gsIHN0dWJJbmZvLCBzdWNjZXNzLCBmYWlsLCBmYWls
dXJlQ2FzZXMpOwogICAgICAgICAKLSAgICAgICAgc3R1YkluZm8uc3R1YlJvdXRpbmUgPSBGSU5B
TElaRV9DT0RFX0ZPUl9ERkdfU1RVQigKLSAgICAgICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAg
ICAgICAgKCJERkcgR2V0QnlJZCBhcnJheSBsZW5ndGggc3R1YiBmb3IgJXMsIHJldHVybiBwb2lu
dCAlcCIsCisgICAgICAgIHN0dWJJbmZvLnN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1Jf
U1RVQigKKyAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZlciwKKyAgICAg
ICAgICAgICgiR2V0QnlJZCBhcnJheSBsZW5ndGggc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAl
cCIsCiAgICAgICAgICAgICAgICAgdG9DU3RyaW5nKCpleGVjLT5jb2RlQmxvY2soKSkuZGF0YSgp
LCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldCgKICAgICAgICAgICAg
ICAgICAgICAgc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9Eb25lKS5leGVjdXRhYmxlQWRkcmVz
cygpKSk7CiAgICAgICAgIApAQCAtNTcyLDcgKzU2OCw2IEBAIHN0YXRpYyBib29sIHRyeUJ1aWxk
R2V0QnlJRExpc3QoRXhlY1N0YXQKICAgICAgICAgCiAgICAgICAgIHN0dWJJbmZvLnUuZ2V0QnlJ
ZFNlbGZMaXN0Lmxpc3RTaXplKys7CiAgICAgICAgIAotICAgICAgICBHUFJSZWcgY2FsbEZyYW1l
UmVnaXN0ZXIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLmNhbGxGcmFtZVJl
Z2lzdGVyKTsKICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0
dWJJbmZvLnBhdGNoLmJhc2VHUFIpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgICAgIEdQ
UlJlZyByZXN1bHRUYWdHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLnZh
bHVlVGFnR1BSKTsKQEAgLTU5Niw2ICs1OTEsMTAgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRC
eUlETGlzdChFeGVjU3RhdAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzOwog
ICAgICAgICAKICAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVHZXR0ZXIoKSB8fCBzbG90Lmlz
Q2FjaGVhYmxlQ3VzdG9tKCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgc2hv
dWxkbid0IGJlIGFzc3VtaW5nIHRoYXQgdGhlIHRvcCBvZiBzdGFjayBpcyBzZXQgdXAgZm9yIEpT
QworICAgICAgICAgICAgLy8gSklULXN0eWxlIEMgY2FsbHMsIHNpbmNlIHdlIG1heSBiZSBjdXJy
ZW50bHkgb24gdG9wIG9mIGFuIEZUTCBmcmFtZS4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU3MTEKKyAgICAgICAgICAgIAogICAgICAg
ICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVHZXR0ZXIoKSkgewogICAgICAgICAgICAgICAgIEFT
U0VSVChzY3JhdGNoR1BSICE9IEludmFsaWRHUFJSZWcpOwogICAgICAgICAgICAgICAgIEFTU0VS
VChiYXNlR1BSICE9IHNjcmF0Y2hHUFIpOwpAQCAtNjEzLDE2ICs2MTIsMTYgQEAgc3RhdGljIGJv
b2wgdHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdAogICAgICAgICAgICAgICAgICAgICBzdHVi
Sml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzY3JhdGNoR1BSLCBvZmZzZXRSZWxh
dGl2ZVRvQmFzZShzbG90LmNhY2hlZE9mZnNldCgpKSksIHNjcmF0Y2hHUFIpOwogI2VuZGlmCiAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMo
Y2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAg
IHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIsIHNjcmF0Y2hHUFIp
OwogICAgICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEdldHRl
cjsKICAgICAgICAgICAgIH0gZWxzZSB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAg
ICAgICAvLyBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KTsKLSAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lz
dGVyLCBiYXNlR1BSLCBiYXNlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihpZGVu
dC5pbXBsKCkpKTsKKyAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShiYXNlR1BSLCBiYXNlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihp
ZGVudC5pbXBsKCkpKTsKICAgICAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IEZ1bmN0
aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpOwogI2Vsc2UKLSAgICAgICAgICAgICAgICBzdHVi
Sml0LnNldHVwQXJndW1lbnRzKAotICAgICAgICAgICAgICAgICAgICBjYWxsRnJhbWVSZWdpc3Rl
ciwgYmFzZUdQUiwKKyAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgYmFzZUdQUiwKICAgICAgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoRnVuY3Rpb25QdHIoc2xvdC5jdXN0b21H
ZXR0ZXIoKSkuZXhlY3V0YWJsZUFkZHJlc3MoKSksCiAgICAgICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSkpOwogICAgICAgICAgICAgICAg
IG9wZXJhdGlvbkZ1bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEN1c3RvbUdldHRlcjsKQEAgLTY0NCw3
ICs2NDMsNyBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAjZW5k
aWYKICAgICAgICAgICAgIHN1Y2Nlc3MgPSBzdHViSml0LmVtaXRFeGNlcHRpb25DaGVjayhDQ2Fs
bEhlbHBlcnM6OkludmVydGVkRXhjZXB0aW9uQ2hlY2spOwogICAgICAgICAgICAgCi0gICAgICAg
ICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7CisgICAgICAgICAgICBzdHVi
Sml0LnNldHVwQXJndW1lbnRzKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2bSksIEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICAgICAgICAgIGhhbmRsZXJDYWxsID0gc3R1Ykpp
dC5jYWxsKCk7CiAgICAgICAgICAgICBzdHViSml0Lmp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIoKTsK
ICAgICAgICAgfSBlbHNlIHsKQEAgLTY4NCw5ICs2ODMsOSBAQCBzdGF0aWMgYm9vbCB0cnlCdWls
ZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAgICAgICAgIAogICAgICAgICBSZWZQdHI8SklUU3R1YlJv
dXRpbmU+IHN0dWJSb3V0aW5lID0KICAgICAgICAgICAgIGNyZWF0ZUpJVFN0dWJSb3V0aW5lKAot
ICAgICAgICAgICAgICAgIEZJTkFMSVpFX0RGR19DT0RFKAotICAgICAgICAgICAgICAgICAgICBw
YXRjaEJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgKCJERkcgR2V0QnlJZCBwb2x5bW9ycGhp
YyBsaXN0IGFjY2VzcyBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCisgICAgICAgICAgICAgICAg
RklOQUxJWkVfQ09ERV9GT1IoCisgICAgICAgICAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygp
LCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgKCJHZXRCeUlkIHBvbHltb3JwaGlj
IGxpc3QgYWNjZXNzIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwgc3R1YkluZm8uY2Fs
bFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9Eb25lKS5leGVjdXRhYmxlQWRkcmVzcygpKSks
CiAgICAgICAgICAgICAgICAgKnZtLApAQCAtNzc1LDcgKzc3NCw3IEBAIHN0YXRpYyBWX0pJVE9w
ZXJhdGlvbl9FU3NpSkpJIGFwcHJvcHJpYXQKIH0KIAogI2lmIEVOQUJMRShHR0MpCi1zdGF0aWMg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgc3RvcmVUb1dyaXRlQmFycmllckJ1ZmZlcihDQ2FsbEhlbHBl
cnMmIGppdCwgR1BSUmVnIGNlbGwsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyLCBH
UFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciYgYWxsb2Nh
dG9yKQorc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZm
ZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBjZWxsLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJl
ZyBzY3JhdGNoMiwgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBhbGxvY2F0b3IpCiB7CiAgICAg
QVNTRVJUKHNjcmF0Y2gxICE9IHNjcmF0Y2gyKTsKICAgICBXcml0ZUJhcnJpZXJCdWZmZXIqIHdy
aXRlQmFycmllckJ1ZmZlciA9ICZqaXQudm0oKS0+aGVhcC53cml0ZUJhcnJpZXJCdWZmZXIoKTsK
QEAgLTgwOCw3ICs4MDcsNyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgc3RvcmVUb1dy
aXRlCiAgICAgaWYgKGJ5dGVzVG9TdWJ0cmFjdCkKICAgICAgICAgaml0LnN1YlB0cihNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKGJ5dGVzVG9TdWJ0cmFjdCksIE1hY3JvQXNzZW1ibGVyOjpz
dGFja1BvaW50ZXJSZWdpc3Rlcik7IAogCi0gICAgaml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFt
ZVJlZ2lzdGVyLCBjZWxsKTsKKyAgICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGNl
bGwpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgpOwogCiAgICAg
aWYgKGJ5dGVzVG9TdWJ0cmFjdCkKQEAgLTgyMCwxMyArODE5LDEzIEBAIHN0YXRpYyBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBzdG9yZVRvV3JpdGUKICAgICByZXR1cm4gY2FsbDsKIH0KIAotc3RhdGlj
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdyaXRlQmFycmllcihDQ2FsbEhlbHBlcnMmIGppdCwgR1BS
UmVnIG93bmVyLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwgR1BSUmVnIGNhbGxG
cmFtZVJlZ2lzdGVyLCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3ImIGFsbG9jYXRvcikKK3N0YXRp
YyBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQ
UlJlZyBvd25lciwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIFNjcmF0Y2hSZWdp
c3RlckFsbG9jYXRvciYgYWxsb2NhdG9yKQogewogICAgIEFTU0VSVChvd25lciAhPSBzY3JhdGNo
MSk7CiAgICAgQVNTRVJUKG93bmVyICE9IHNjcmF0Y2gyKTsKIAogICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIGRlZmluaXRlbHlOb3RNYXJrZWQgPSBERkc6OlNwZWN1bGF0aXZlSklUOjpnZW5lcmlj
V3JpdGVCYXJyaWVyKGppdCwgb3duZXIsIHNjcmF0Y2gxLCBzY3JhdGNoMik7Ci0gICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbCA9IHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIoaml0LCBvd25l
ciwgc2NyYXRjaDEsIHNjcmF0Y2gyLCBjYWxsRnJhbWVSZWdpc3RlciwgYWxsb2NhdG9yKTsKKyAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gc3RvcmVUb1dyaXRlQmFycmllckJ1ZmZlcihq
aXQsIG93bmVyLCBzY3JhdGNoMSwgc2NyYXRjaDIsIGFsbG9jYXRvcik7CiAgICAgZGVmaW5pdGVs
eU5vdE1hcmtlZC5saW5rKCZqaXQpOwogICAgIHJldHVybiBjYWxsOwogfQpAQCAtODQ0LDkgKzg0
Myw2IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRSZXBsYWNlU3R1YigKICAgICBSZWZQdHI8SklUU3R1
YlJvdXRpbmU+JiBzdHViUm91dGluZSkKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSNp
ZiBFTkFCTEUoR0dDKQotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IHN0YXRpY19jYXN0
PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guY2FsbEZyYW1lUmVnaXN0ZXIpOwotI2VuZGlmCiAgICAg
R1BSUmVnIGJhc2VHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLmJhc2VH
UFIpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgR1BSUmVnIHZhbHVlVGFnR1BSID0gc3Rh
dGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1ZVRhZ0dQUik7CkBAIC04OTMsNyAr
ODg5LDcgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFJlcGxhY2VTdHViKAogI2VuZGlmCiAgICAgCiAj
aWYgRU5BQkxFKEdHQykKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXJPcGVy
YXRpb24gPSB3cml0ZUJhcnJpZXIoc3R1YkppdCwgYmFzZUdQUiwgc2NyYXRjaEdQUjEsIHNjcmF0
Y2hHUFIyLCBjYWxsRnJhbWVSZWdpc3RlciwgYWxsb2NhdG9yKTsKKyAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCB3cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJpZXIoc3R1YkppdCwgYmFz
ZUdQUiwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBhbGxvY2F0b3IpOwogI2VuZGlmCiAgICAg
CiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzczsKQEAgLTkxOCw5ICs5MTQsOSBAQCBz
dGF0aWMgdm9pZCBlbWl0UHV0UmVwbGFjZVN0dWIoCiAgICAgcGF0Y2hCdWZmZXIubGluayhzdWNj
ZXNzLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldChzdHViSW5mby5w
YXRjaC5kZWx0YUNhbGxUb0RvbmUpKTsKICAgICBwYXRjaEJ1ZmZlci5saW5rKGZhaWx1cmUsIGZh
aWx1cmVMYWJlbCk7CiAgICAgICAgICAgICAKLSAgICBzdHViUm91dGluZSA9IEZJTkFMSVpFX0NP
REVfRk9SX0RGR19TVFVCKAotICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgKCJERkcgUHV0
QnlJZCByZXBsYWNlIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAorICAgIHN0dWJSb3V0
aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCks
IHBhdGNoQnVmZmVyLAorICAgICAgICAoIlB1dEJ5SWQgcmVwbGFjZSBzdHViIGZvciAlcywgcmV0
dXJuIHBvaW50ICVwIiwKICAgICAgICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkp
LmRhdGEoKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoCiAgICAg
ICAgICAgICAgICAgc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9Eb25lKS5leGVjdXRhYmxlQWRk
cmVzcygpKSk7CiB9CkBAIC05NDAsNyArOTM2LDYgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFRyYW5z
aXRpb25TdHViKAogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogCi0gICAgR1BSUmVnIGNh
bGxGcmFtZVJlZ2lzdGVyID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5jYWxs
RnJhbWVSZWdpc3Rlcik7CiAgICAgR1BSUmVnIGJhc2VHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+
KHN0dWJJbmZvLnBhdGNoLmJhc2VHUFIpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgR1BS
UmVnIHZhbHVlVGFnR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1
ZVRhZ0dQUik7CkBAIC0xMDYwLDcgKzEwNTUsNyBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0VHJhbnNp
dGlvblN0dWIoCiAjZW5kaWYKICAgICAKICNpZiBFTkFCTEUoR0dDKQotICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIHdyaXRlQmFycmllck9wZXJhdGlvbiA9IHdyaXRlQmFycmllcihzdHViSml0LCBi
YXNlR1BSLCBzY3JhdGNoR1BSMSwgc2NyYXRjaEdQUjIsIGNhbGxGcmFtZVJlZ2lzdGVyLCBhbGxv
Y2F0b3IpOworICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdyaXRlQmFycmllck9wZXJhdGlvbiA9
IHdyaXRlQmFycmllcihzdHViSml0LCBiYXNlR1BSLCBzY3JhdGNoR1BSMSwgc2NyYXRjaEdQUjIs
IGFsbG9jYXRvcik7CiAjZW5kaWYKICAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNj
ZXNzOwpAQCAtMTA4Niw5ICsxMDgxLDkgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFRyYW5zaXRpb25T
dHViKAogICAgICAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0tPnNjcmF0Y2hC
dWZmZXJGb3JTaXplKGFsbG9jYXRvci5kZXNpcmVkU2NyYXRjaEJ1ZmZlclNpemUoKSk7CiAgICAg
ICAgIGFsbG9jYXRvci5wcmVzZXJ2ZVVzZWRSZWdpc3RlcnNUb1NjcmF0Y2hCdWZmZXIoc3R1Ykpp
dCwgc2NyYXRjaEJ1ZmZlciwgc2NyYXRjaEdQUjEpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRPZmZzZXQoKSksIHZhbHVlR1BSKTsKKyAgICAgICAgc3R1
YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihz
bG90LmNhY2hlZE9mZnNldCgpKSwgdmFsdWVHUFIpOwogI2Vsc2UKLSAgICAgICAgc3R1YkppdC5z
ZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihz
bG90LmNhY2hlZE9mZnNldCgpKSwgdmFsdWVHUFIsIHZhbHVlVGFnR1BSKTsKKyAgICAgICAgc3R1
YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihz
bG90LmNhY2hlZE9mZnNldCgpKSwgdmFsdWVHUFIsIHZhbHVlVGFnR1BSKTsKICNlbmRpZgogICAg
ICAgICBvcGVyYXRpb25DYWxsID0gc3R1YkppdC5jYWxsKCk7CiAgICAgICAgIGFsbG9jYXRvci5y
ZXN0b3JlVXNlZFJlZ2lzdGVyc0Zyb21TY3JhdGNoQnVmZmVyKHN0dWJKaXQsIHNjcmF0Y2hCdWZm
ZXIsIHNjcmF0Y2hHUFIxKTsKQEAgLTExMTEsOSArMTEwNiw5IEBAIHN0YXRpYyB2b2lkIGVtaXRQ
dXRUcmFuc2l0aW9uU3R1YigKICAgICAKICAgICBzdHViUm91dGluZSA9CiAgICAgICAgIGNyZWF0
ZUpJVFN0dWJSb3V0aW5lKAotICAgICAgICAgICAgRklOQUxJWkVfREZHX0NPREUoCi0gICAgICAg
ICAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICAgICAgICAgKCJERkcgUHV0QnlJZCAlc3Ry
YW5zaXRpb24gc3R1YiAoJXAgLT4gJXApIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICAg
ICAgICAgIEZJTkFMSVpFX0NPREVfRk9SKAorICAgICAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9j
aygpLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAgICAgICAoIlB1dEJ5SWQgJXN0cmFuc2l0aW9u
IHN0dWIgKCVwIC0+ICVwKSBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdHVyZS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSAhPSBvbGRTdHJ1Y3R1cmUtPm91
dE9mTGluZUNhcGFjaXR5KCkgPyAicmVhbGxvY2F0aW5nICIgOiAiIiwKICAgICAgICAgICAgICAg
ICAgICAgb2xkU3RydWN0dXJlLCBzdHJ1Y3R1cmUsCiAgICAgICAgICAgICAgICAgICAgIHRvQ1N0
cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0
aW9uLmxhYmVsQXRPZmZzZXQoCkBAIC0xMzk0LDkgKzEzODksOSBAQCBzdGF0aWMgYm9vbCB0cnlS
ZXBhdGNoSW4oCiAKICAgICAgICAgbGlua1Jlc3RvcmVTY3JhdGNoKHBhdGNoQnVmZmVyLCBuZWVk
VG9SZXN0b3JlU2NyYXRjaCwgc3VjY2VzcywgZmFpbCwgZmFpbHVyZUNhc2VzLCBzdWNjZXNzTGFi
ZWwsIHNsb3dDYXNlTGFiZWwpOwogICAgICAgICAKLSAgICAgICAgc3R1YlJvdXRpbmUgPSBGSU5B
TElaRV9DT0RFX0ZPUl9ERkdfU1RVQigKLSAgICAgICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAg
ICAgICAgKCJERkcgSW4gKGZvdW5kID0gJXMpIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAi
LAorICAgICAgICBzdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAg
ICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisgICAgICAgICAgICAoIkluIChm
b3VuZCA9ICVzKSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKICAgICAgICAgICAgICAg
ICB3YXNGb3VuZCA/ICJ5ZXMiIDogIm5vIiwgdG9DU3RyaW5nKCpleGVjLT5jb2RlQmxvY2soKSku
ZGF0YSgpLAogICAgICAgICAgICAgICAgIHN1Y2Nlc3NMYWJlbC5leGVjdXRhYmxlQWRkcmVzcygp
KSk7CiAgICAgfQpAQCAtMTQxOSwxNyArMTQxNCwxOSBAQCB2b2lkIHJlcGF0Y2hJbigKICAgICBy
ZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9u
LCBvcGVyYXRpb25Jbik7CiB9CiAKLXN0YXRpYyB2b2lkIGxpbmtTbG93Rm9yKFJlcGF0Y2hCdWZm
ZXImIHJlcGF0Y2hCdWZmZXIsIFZNKiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK3N0YXRpYyB2b2lkIGxpbmtTbG93Rm9yKAorICAg
IFJlcGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIsIFZNKiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxs
TGlua0luZm8sCisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNl
cnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewotICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKSB7
Ci0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9j
YXRpb24sIHZtLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0
cnVjdCk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5M
b2NhdGlvbiwgdm0tPmdldENUSVN0dWIodmlydHVhbENvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5j
b2RlKCkpOworICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKAorICAgICAgICBjYWxsTGlua0luZm8u
Y2FsbFJldHVybkxvY2F0aW9uLAorICAgICAgICB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsVGh1bmtH
ZW5lcmF0b3JGb3Ioa2luZCwgcmVnaXN0ZXJzKSkuY29kZSgpKTsKIH0KIAotdm9pZCBsaW5rRm9y
KEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVCbG9jayog
Y2FsbGVlQ29kZUJsb2NrLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBjb2RlUHRyLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCit2b2lkIGxpbmtGb3IoCisg
ICAgRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZUJsb2Nr
KiBjYWxsZWVDb2RlQmxvY2ssCisgICAgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgY29kZVB0ciwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLAorICAgIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgQVNTRVJUKCFjYWxsTGlua0lu
Zm8uc3R1Yik7CiAgICAgCkBAIC0xNDQ1LDMxICsxNDQyLDM4IEBAIHZvaWQgbGlua0ZvcihFeGVj
U3RhdGUqIGV4ZWMsIENhbGxMaW5rSW4KICAgICBBU1NFUlQoIWNhbGxMaW5rSW5mby5pc0xpbmtl
ZCgpKTsKICAgICBjYWxsTGlua0luZm8uY2FsbGVlLnNldChleGVjLT5jYWxsZXJGcmFtZSgpLT52
bSgpLCBjYWxsTGlua0luZm8uaG90UGF0aEJlZ2luLCBjYWxsZXJDb2RlQmxvY2stPm93bmVyRXhl
Y3V0YWJsZSgpLCBjYWxsZWUpOwogICAgIGNhbGxMaW5rSW5mby5sYXN0U2VlbkNhbGxlZS5zZXQo
ZXhlYy0+Y2FsbGVyRnJhbWUoKS0+dm0oKSwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFi
bGUoKSwgY2FsbGVlKTsKKyAgICBpZiAoc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5Rm9yKGNhbGxlckNv
ZGVCbG9jaykpCisgICAgICAgIGRhdGFMb2coIkxpbmtpbmcgY2FsbCBpbiAiLCAqY2FsbGVyQ29k
ZUJsb2NrLCAiIGF0ICIsIGNhbGxMaW5rSW5mby5jb2RlT3JpZ2luLCAiIHRvICIsIHBvaW50ZXJE
dW1wKGNhbGxlZUNvZGVCbG9jayksICIsIGVudHJ5cG9pbnQgYXQgIiwgY29kZVB0ciwgIlxuIik7
CiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLmhvdFBhdGhPdGhlciwgY29k
ZVB0cik7CiAgICAgCiAgICAgaWYgKGNhbGxlZUNvZGVCbG9jaykKICAgICAgICAgY2FsbGVlQ29k
ZUJsb2NrLT5saW5rSW5jb21pbmdDYWxsKGV4ZWMtPmNhbGxlckZyYW1lKCksICZjYWxsTGlua0lu
Zm8pOwogICAgIAogICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKSB7Ci0gICAgICAgIHJlcGF0
Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRD
VElTdHViKGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgICAgICBy
ZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLCB2bS0+
Z2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvckZvcihyZWdpc3RlcnMpKS5j
b2RlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAogICAgIEFTU0VSVChraW5kID09
IENvZGVGb3JDb25zdHJ1Y3QpOwotICAgIGxpbmtTbG93Rm9yKHJlcGF0Y2hCdWZmZXIsIHZtLCBj
YWxsTGlua0luZm8sIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIGxpbmtTbG93Rm9yKHJlcGF0Y2hC
dWZmZXIsIHZtLCBjYWxsTGlua0luZm8sIENvZGVGb3JDb25zdHJ1Y3QsIHJlZ2lzdGVycyk7CiB9
CiAKLXZvaWQgbGlua1Nsb3dGb3IoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxM
aW5rSW5mbywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQordm9pZCBsaW5rU2xvd0ZvcigK
KyAgICBFeGVjU3RhdGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQsCisgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lz
dGVycykKIHsKICAgICBDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jayA9IGV4ZWMtPmNhbGxlckZy
YW1lKCktPmNvZGVCbG9jaygpOwogICAgIFZNKiB2bSA9IGNhbGxlckNvZGVCbG9jay0+dm0oKTsK
ICAgICAKICAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIoY2FsbGVyQ29kZUJsb2NrKTsK
ICAgICAKLSAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExpbmtJbmZvLCBr
aW5kKTsKKyAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExpbmtJbmZvLCBr
aW5kLCByZWdpc3RlcnMpOwogfQogCi12b2lkIGxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4
ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9j
aywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlLCBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikKK3ZvaWQgbGlua0Nsb3N1cmVDYWxsKAorICAgIEV4
ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2Fs
bGVlQ29kZUJsb2NrLAorICAgIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFeGVjdXRhYmxlQmFzZSog
ZXhlY3V0YWJsZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIsCisgICAgUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBBU1NFUlQoIWNhbGxMaW5rSW5mby5z
dHViKTsKICAgICAKQEAgLTE0ODIsNiArMTQ4NiwxNSBAQCB2b2lkIGxpbmtDbG9zdXJlQ2FsbChF
eGVjU3RhdGUqIGV4ZWMsIENhCiAgICAgCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93
UGF0aDsKICAgICAKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0VG9GcmFtZSA9IC1zaXplb2YoQ2FsbGVy
RnJhbWVBbmRQQyk7CisKKyAgICBpZiAoIUFTU0VSVF9ESVNBQkxFRCkgeworICAgICAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXAgb2tBcmd1bWVudENvdW50ID0gc3R1YkppdC5icmFuY2gzMigKKyAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6QmVsb3csIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVv
ZihSZWdpc3RlcikgKiBKU1N0YWNrOjpBcmd1bWVudENvdW50KSArIG9mZnNldFRvRnJhbWUgKyBQ
YXlsb2FkT2Zmc2V0KSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMTAwMDAwMDApKTsKKyAg
ICAgICAgc3R1YkppdC5icmVha3BvaW50KCk7CisgICAgICAgIG9rQXJndW1lbnRDb3VudC5saW5r
KCZzdHViSml0KTsKKyAgICB9CisKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIC8vIFdlIGNhbiBz
YWZlbHkgY2xvYmJlciBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgY2FsbGVlR1BSLiBXZSBjYW4ndCBy
ZWx5IG9uIHRhZ01hc2tSZWdpc3RlcgogICAgIC8vIGJlaW5nIHNldC4gU28gd2UgZG8gdGhpcyB0
aGUgaGFyZCB3YXkuCkBAIC0xNTA3LDE4ICsxNTIwLDE4IEBAIHZvaWQgbGlua0Nsb3N1cmVDYWxs
KEV4ZWNTdGF0ZSogZXhlYywgQ2EKICAgICBzdHViSml0LmxvYWRQdHIoCiAgICAgICAgIENDYWxs
SGVscGVyczo6QWRkcmVzcyhjYWxsZWVHUFIsIEpTRnVuY3Rpb246Om9mZnNldE9mU2NvcGVDaGFp
bigpKSwKICAgICAgICAgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotCisgICAgCiAjaWYgVVNF
KEpTVkFMVUU2NCkKICAgICBzdHViSml0LnN0b3JlNjQoCiAgICAgICAgIEdQUkluZm86OnJldHVy
blZhbHVlR1BSLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpT
U3RhY2s6OlNjb3BlQ2hhaW4pKSk7CisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNy
b0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4o
c2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgb2Zmc2V0VG9GcmFtZSkp
OwogI2Vsc2UKICAgICBzdHViSml0LnN0b3JlUHRyKAogICAgICAgICBHUFJJbmZvOjpyZXR1cm5W
YWx1ZUdQUiwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0
YWNrOjpTY29wZUNoYWluKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9y
LCBhc0JpdHMucGF5bG9hZCkpKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3Jv
QXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90Pihz
aXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBPQkpFQ1RfT0ZGU0VUT0Yo
RW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpICsgb2Zmc2V0VG9GcmFtZSkp
OwogICAgIHN0dWJKaXQuc3RvcmUzMigKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVn
aXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZh
bHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRy
ZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBPQkpFQ1Rf
T0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykgKyBvZmZzZXRUb0Zy
YW1lKSk7CiAjZW5kaWYKICAgICAKICAgICBBc3NlbWJseUhlbHBlcnM6OkNhbGwgY2FsbCA9IHN0
dWJKaXQubmVhckNhbGwoKTsKQEAgLTE1MjksMjAgKzE1NDIsMjQgQEAgdm9pZCBsaW5rQ2xvc3Vy
ZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYQogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgc3R1
YkppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBH
UFJJbmZvOjpyZWdUMSk7CiAjZW5kaWYKLSAgICBzdHViSml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24uZXhlY3V0YWJsZUFk
ZHJlc3MoKSksIEdQUkluZm86Om5vbkFyZ0dQUjIpOwotICAgIHN0dWJKaXQucmVzdG9yZVJldHVy
bkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6bm9uQXJnR1BSMik7CisgICAgc3R1YkppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihjYWxsTGlua0luZm8uY2FsbFJldHVybkxv
Y2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgCisgICAg
c3R1YkppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpyZWdUMik7
CiAgICAgQXNzZW1ibHlIZWxwZXJzOjpKdW1wIHNsb3cgPSBzdHViSml0Lmp1bXAoKTsKICAgICAK
ICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2bSwgJnN0dWJKaXQsIGNhbGxlckNvZGVCbG9j
ayk7CiAgICAgCiAgICAgcGF0Y2hCdWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0cihjb2RlUHRy
LmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKLSAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUsIGNhbGxM
aW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldCgwKSk7Ci0gICAgcGF0Y2hC
dWZmZXIubGluayhzbG93LCBDb2RlTG9jYXRpb25MYWJlbCh2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFs
Q2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpKTsKKyAgICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6
aW5nSklUKGNhbGxlckNvZGVCbG9jay0+aml0VHlwZSgpKSkKKyAgICAgICAgcGF0Y2hCdWZmZXIu
bGluayhkb25lLCBjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQo
MCkpOworICAgIGVsc2UKKyAgICAgICAgcGF0Y2hCdWZmZXIubGluayhkb25lLCBjYWxsTGlua0lu
Zm8uaG90UGF0aE90aGVyLmxhYmVsQXRPZmZzZXQoMCkpOworICAgIHBhdGNoQnVmZmVyLmxpbmso
c2xvdywgQ29kZUxvY2F0aW9uTGFiZWwodm0tPmdldENUSVN0dWIodmlydHVhbFRodW5rR2VuZXJh
dG9yRm9yKENvZGVGb3JDYWxsLCByZWdpc3RlcnMpKS5jb2RlKCkpKTsKICAgICAKICAgICBSZWZQ
dHI8Q2xvc3VyZUNhbGxTdHViUm91dGluZT4gc3R1YlJvdXRpbmUgPSBhZG9wdFJlZihuZXcgQ2xv
c3VyZUNhbGxTdHViUm91dGluZSgKLSAgICAgICAgRklOQUxJWkVfREZHX0NPREUoCi0gICAgICAg
ICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgICAgICgiREZHIGNsb3N1cmUgY2FsbCBzdHViIGZv
ciAlcywgcmV0dXJuIHBvaW50ICVwLCB0YXJnZXQgJXAgKCVzKSIsCisgICAgICAgIEZJTkFMSVpF
X0NPREVfRk9SKAorICAgICAgICAgICAgY2FsbGVyQ29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKKyAg
ICAgICAgICAgICgiQ2xvc3VyZSBjYWxsIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAsIHRh
cmdldCAlcCAoJXMpIiwKICAgICAgICAgICAgICAgICB0b0NTdHJpbmcoKmNhbGxlckNvZGVCbG9j
aykuZGF0YSgpLCBjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQo
MCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwKICAgICAgICAgICAgICAgICBjb2RlUHRyLmV4ZWN1dGFi
bGVBZGRyZXNzKCksIHRvQ1N0cmluZyhwb2ludGVyRHVtcChjYWxsZWVDb2RlQmxvY2spKS5kYXRh
KCkpKSwKICAgICAgICAgKnZtLCBjYWxsZXJDb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBz
dHJ1Y3R1cmUsIGV4ZWN1dGFibGUsIGNhbGxMaW5rSW5mby5jb2RlT3JpZ2luKSk7CkBAIC0xNTUy
LDcgKzE1NjksNyBAQCB2b2lkIGxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIENhCiAg
ICAgcmVwYXRjaEJ1ZmZlci5yZXBsYWNlV2l0aEp1bXAoCiAgICAgICAgIFJlcGF0Y2hCdWZmZXI6
OnN0YXJ0T2ZCcmFuY2hQdHJXaXRoUGF0Y2hPblJlZ2lzdGVyKGNhbGxMaW5rSW5mby5ob3RQYXRo
QmVnaW4pLAogICAgICAgICBDb2RlTG9jYXRpb25MYWJlbChzdHViUm91dGluZS0+Y29kZSgpLmNv
ZGUoKSkpOwotICAgIGxpbmtTbG93Rm9yKHJlcGF0Y2hCdWZmZXIsIHZtLCBjYWxsTGlua0luZm8s
IENvZGVGb3JDYWxsKTsKKyAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExp
bmtJbmZvLCBDb2RlRm9yQ2FsbCwgcmVnaXN0ZXJzKTsKICAgICAKICAgICBjYWxsTGlua0luZm8u
c3R1YiA9IHN0dWJSb3V0aW5lLnJlbGVhc2UoKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlcGF0Y2guaAkod29ya2luZyBjb3B5KQpAQCAtNDEsOSArNDEsOSBAQCB2b2lkIGJ1
aWxkR2V0QnlJRFByb3RvTGlzdChFeGVjU3RhdGUqLCBKCiB2b2lkIHJlcGF0Y2hQdXRCeUlEKEV4
ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQdXRQcm9wZXJ0eVNs
b3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIFB1dEtpbmQpOwogdm9pZCBidWlsZFB1dEJ5SWRMaXN0
KEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQdXRQcm9wZXJ0
eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIFB1dEtpbmQpOwogdm9pZCByZXBhdGNoSW4oRXhl
Y1N0YXRlKiwgSlNDZWxsKiwgY29uc3QgSWRlbnRpZmllciYsIGJvb2wgd2FzRm91bmQsIGNvbnN0
IFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJik7Ci12b2lkIGxpbmtGb3IoRXhlY1N0
YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIsIENvZGVTcGVjaWFsaXphdGlvbktpbmQpOwotdm9pZCBsaW5rU2xv
d0ZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsK
LXZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9j
ayosIFN0cnVjdHVyZSosIEV4ZWN1dGFibGVCYXNlKiwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKTsK
K3ZvaWQgbGlua0ZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBKU0Z1
bmN0aW9uKiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciwgQ29kZVNwZWNpYWxpemF0aW9u
S2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKTsKK3ZvaWQgbGlua1Nsb3dGb3IoRXhlY1N0
YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCwgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Nb2RlKTsKK3ZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSosIENhbGxMaW5r
SW5mbyYsIENvZGVCbG9jayosIFN0cnVjdHVyZSosIEV4ZWN1dGFibGVCYXNlKiwgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpOwogdm9pZCByZXNldEdldEJ5
SUQoUmVwYXRjaEJ1ZmZlciYsIFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lkIHJlc2V0UHV0QnlJ
RChSZXBhdGNoQnVmZmVyJiwgU3RydWN0dXJlU3R1YkluZm8mKTsKIHZvaWQgcmVzZXRJbihSZXBh
dGNoQnVmZmVyJiwgU3RydWN0dXJlU3R1YkluZm8mKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCShyZXZpc2lvbiAxNjI5NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3BlY2lh
bGl6ZWRUaHVua0pJVChWTSogdm0sIGludCBleHBlY3RlZEFyZ0NvdW50KQogICAgICAgICAgICAg
OiBKU0ludGVyZmFjZUpJVCh2bSkKICAgICAgICAgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9u
UHJvbG9ndWUoKTsKICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgd2UgaGF2ZSB0aGUgZXhwZWN0
ZWQgbnVtYmVyIG9mIGFyZ3VtZW50cwogICAgICAgICAgICAgbV9mYWlsdXJlcy5hcHBlbmQoYnJh
bmNoMzIoTm90RXF1YWwsIHBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCksIFRydXN0
ZWRJbW0zMihleHBlY3RlZEFyZ0NvdW50ICsgMSkpKTsKICAgICAgICAgfQpAQCAtNDgsNiArNDks
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZXhwbGljaXQgU3BlY2lhbGl6ZWRUaHVua0pJ
VChWTSogdm0pCiAgICAgICAgICAgICA6IEpTSW50ZXJmYWNlSklUKHZtKQogICAgICAgICB7Cisg
ICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgICAgICB9CiAgICAgICAgIAog
ICAgICAgICB2b2lkIGxvYWREb3VibGVBcmd1bWVudChpbnQgYXJndW1lbnQsIEZQUmVnaXN0ZXJJ
RCBkc3QsIFJlZ2lzdGVySUQgc2NyYXRjaCkKQEAgLTk3LDcgKzk5LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAgICAgICAgICAg
ICAgICAgbW92ZShzcmMsIHJlZ1QwKTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxs
RnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1l
UmVnaXN0ZXIpOworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAg
ICAgIHJldCgpOwogICAgICAgICB9CiAjZWxzZQpAQCAtMTA1LDcgKzEwNyw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHBheWxvYWQsIHBh
eWxvYWQgPT0gcmVnVDApOwogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh0YWcsIHRhZyA9PSBy
ZWdUMSk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENh
bGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAg
ICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQoKTsKICAgICAg
ICAgfQogI2VuZGlmCkBAIC0xMzYsNyArMTM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICBsb3dOb25aZXJvLmxpbmsodGhpcyk7CiAgICAgICAgICAgICBoaWdoTm9uWmVyby5saW5r
KHRoaXMpOwogI2VuZGlmCi0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVn
aXN0ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVy
KTsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQo
KTsKICAgICAgICAgfQogCkBAIC0xNDUsNyArMTQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgICAgICBpZiAoc3JjICE9IHJlZ1QwKQogICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdU
MCk7CiAgICAgICAgICAgICB0YWdSZXR1cm5Bc0ludDMyKCk7Ci0gICAgICAgICAgICBsb2FkUHRy
KEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQo
KSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgICAgICAgICByZXQoKTsKICAgICAgICAgfQogCkBAIC0xNTQsNyArMTU2LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBpZiAoc3JjICE9IHJlZ1QwKQogICAgICAgICAg
ICAgICAgIG1vdmUoc3JjLCByZWdUMCk7CiAgICAgICAgICAgICB0YWdSZXR1cm5Bc0pTQ2VsbCgp
OwotICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAg
ICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0K
ICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNBcnJh
eUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNTdGFjay5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IlNwZWNpYWxpemVkVGh1bmtKSVQuaCIKICNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+CkBAIC02
NiwxMCArNjcsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdGhyb3dFeGNlcHRpb25Gcm9tCiAg
ICAgLy8gZXZlbiB0aG91Z2ggd2Ugd29uJ3QgdXNlIGl0LgogICAgIGppdC5wcmVzZXJ2ZVJldHVy
bkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKIAot
ICAgIC8vIFRoZSBDYWxsRnJhbWUgcmVnaXN0ZXIgcG9pbnRzIHRvIHRoZSAoZmFpbGVkKSBjYWxs
ZWUgZnJhbWUsIHNvIHdlIG5lZWQgdG8gcG9wIGJhY2sgb25lIGZyYW1lLgotICAgIGppdC5lbWl0
R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyKTsKLQotICAgIGppdC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOworICAgIGppdC5z
ZXR1cEFyZ3VtZW50cyhDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodm0pLCBHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4obG9va3VwRXhjZXB0aW9uSGFuZGxlcikpLCBHUFJJbmZv
Ojpub25BcmdHUFIwKTsKICAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpu
b25BcmdHUFIwKTsKICAgICBqaXQuY2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKQEAgLTgyLDI5
ICs4MCwyOCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdGhyb3dFeGNlcHRpb25Gcm9tCiBzdGF0
aWMgdm9pZCBzbG93UGF0aEZvcigKICAgICBDQ2FsbEhlbHBlcnMmIGppdCwgVk0qIHZtLCBQX0pJ
VE9wZXJhdGlvbl9FIHNsb3dQYXRoRnVuY3Rpb24pCiB7Ci0gICAgaml0LnByZXNlcnZlUmV0dXJu
QWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpub25BcmdHUFIyKTsKLSAgICBlbWl0UG9pbnRlclZh
bGlkYXRpb24oaml0LCBHUFJJbmZvOjpub25BcmdHUFIyKTsKLSAgICBqaXQuZW1pdFB1dFJldHVy
blBDVG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6bm9uQXJnR1BSMik7CisgICAgaml0LmVtaXRG
dW5jdGlvblByb2xvZ3VlKCk7CiAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCAmdm0tPnRvcENhbGxGcmFtZSk7CisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsKQorICAgICAgICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwogICAgIGppdC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwogICAgIGpp
dC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KHNs
b3dQYXRoRnVuY3Rpb24pKSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgZW1pdFBvaW50ZXJW
YWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgaml0LmNhbGwoR1BSSW5m
bzo6bm9uQXJnR1BSMCk7CisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQor
ICAgICAgICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CiAgICAgCiAgICAgLy8gVGhpcyBzbG93IGNhbGwgd2lsbCByZXR1cm4gdGhlIGFkZHJlc3Mgb2Yg
b25lIG9mIHRoZSBmb2xsb3dpbmc6CiAgICAgLy8gMSkgRXhjZXB0aW9uIHRocm93aW5nIHRodW5r
LgogICAgIC8vIDIpIEhvc3QgY2FsbCByZXR1cm4gdmFsdWUgcmV0dXJuZXIgdGhpbmd5LgogICAg
IC8vIDMpIFRoZSBmdW5jdGlvbiB0byBjYWxsLgotICAgIGppdC5lbWl0R2V0UmV0dXJuUENGcm9t
Q2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7Ci0g
ICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cigwKSk7Ci0gICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6
bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKLSAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NC
ZWZvcmVSZXR1cm4oR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKICAgICBlbWl0
UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIpOwogfQogCiBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtGb3JUaHVua0dl
bmVyYXRvcigKLSAgICBWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKKyAgICBW
TSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25N
b2RlIHJlZ2lzdGVycykKIHsKICAgICAvLyBUaGUgcmV0dXJuIGFkZHJlc3MgaXMgb24gdGhlIHN0
YWNrIG9yIGluIHRoZSBsaW5rIHJlZ2lzdGVyLiBXZSB3aWxsIGhlbmNlCiAgICAgLy8gc2F2ZSB0
aGUgcmV0dXJuIGFkZHJlc3MgdG8gdGhlIGNhbGwgZnJhbWUgd2hpbGUgd2UgbWFrZSBhIEMrKyBm
dW5jdGlvbiBjYWxsCkBAIC0xMTQsMzggKzExMSw1OSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIGxpbmtGb3JUaHVuCiAgICAgCiAgICAgQ0NhbGxIZWxwZXJzIGppdCh2bSk7CiAgICAg
Ci0gICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwga2luZCA9PSBDb2RlRm9yQ2FsbCA/IG9wZXJhdGlv
bkxpbmtDYWxsIDogb3BlcmF0aW9uTGlua0NvbnN0cnVjdCk7CisgICAgc2xvd1BhdGhGb3Ioaml0
LCB2bSwgb3BlcmF0aW9uTGlua0ZvcihraW5kLCByZWdpc3RlcnMpKTsKICAgICAKICAgICBMaW5r
QnVmZmVyIHBhdGNoQnVmZmVyKCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKICAgICByZXR1
cm4gRklOQUxJWkVfQ09ERSgKICAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICgiTGluayAl
cyBzbG93IHBhdGggdGh1bmsiLCBraW5kID09IENvZGVGb3JDYWxsID8gImNhbGwiIDogImNvbnN0
cnVjdCIpKTsKKyAgICAgICAgKCJMaW5rICVzJXMgc2xvdyBwYXRoIHRodW5rIiwga2luZCA9PSBD
b2RlRm9yQ2FsbCA/ICJjYWxsIiA6ICJjb25zdHJ1Y3QiLCByZWdpc3RlcnMgPT0gTXVzdFByZXNl
cnZlUmVnaXN0ZXJzID8gIiB0aGF0IHByZXNlcnZlcyByZWdpc3RlcnMiIDogIiIpKTsKIH0KIAog
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewot
ICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsKTsKKyAgICBy
ZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ29u
c3RydWN0VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiBsaW5rRm9yVGh1bmtH
ZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJldHVybiBsaW5rRm9yVGh1bmtH
ZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVx
dWlyZWQpOwogfQogCi0vLyBGb3IgY2xvc3VyZSBvcHRpbWl6YXRpb25zLCB3ZSBvbmx5IGluY2x1
ZGUgY2FsbHMsIHNpbmNlIGlmIHlvdSdyZSB1c2luZyBjbG9zdXJlcyBmb3IKLS8vIG9iamVjdCBj
b25zdHJ1Y3Rpb24gdGhlbiB5b3UncmUgZ29pbmcgdG8gbG9zZSBiaWcgdGltZSBhbnl3YXkuCi1N
YWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IoVk0qIHZt
KQorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dl
bmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwg
Q29kZUZvckNhbGwsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK01hY3JvQXNzZW1ibGVy
Q29kZVJlZiBsaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSog
dm0pCit7CisgICAgcmV0dXJuIGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0
cnVjdCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KKworc3RhdGljIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBsaW5rQ2xvc3VyZUNhbGxGb3JUaHVua0dlbmVyYXRvcigKKyAgICBWTSogdm0sIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgQ0NhbGxIZWxwZXJzIGpp
dCh2bSk7CiAgICAgCi0gICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwgb3BlcmF0aW9uTGlua0Nsb3N1
cmVDYWxsKTsKKyAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBvcGVyYXRpb25MaW5rQ2xvc3VyZUNh
bGxGb3IocmVnaXN0ZXJzKSk7CiAgICAgCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqdm0s
ICZqaXQsIEdMT0JBTF9USFVOS19JRCk7Ci0gICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hC
dWZmZXIsICgiTGluayBjbG9zdXJlIGNhbGwgc2xvdyBwYXRoIHRodW5rIikpOworICAgIHJldHVy
biBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIkxpbmsgY2xvc3VyZSBjYWxsICVzIHNsb3cg
cGF0aCB0aHVuayIsIHJlZ2lzdGVycyA9PSBNdXN0UHJlc2VydmVSZWdpc3RlcnMgPyAiIHRoYXQg
cHJlc2VydmVzIHJlZ2lzdGVycyIgOiAiIikpOworfQorCisvLyBGb3IgY2xvc3VyZSBvcHRpbWl6
YXRpb25zLCB3ZSBvbmx5IGluY2x1ZGUgY2FsbHMsIHNpbmNlIGlmIHlvdSdyZSB1c2luZyBjbG9z
dXJlcyBmb3IKKy8vIG9iamVjdCBjb25zdHJ1Y3Rpb24gdGhlbiB5b3UncmUgZ29pbmcgdG8gbG9z
ZSBiaWcgdGltZSBhbnl3YXkuCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxs
VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBsaW5rQ2xvc3VyZUNhbGxGb3JU
aHVua0dlbmVyYXRvcih2bSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7Cit9CisK
K01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1Ro
dW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0Nsb3N1cmVDYWxsRm9yVGh1
bmtHZW5lcmF0b3Iodm0sIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7CiB9CiAKIHN0YXRpYyBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKAotICAgIFZNKiB2bSwg
Q29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQorICAgIFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0
aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAg
IC8vIFRoZSBjYWxsZWUgaXMgaW4gcmVnVDAgKGZvciBKU1ZBTFVFMzJfNjQsIHRoZSB0YWcgaXMg
aW4gcmVnVDEpLgogICAgIC8vIFRoZSByZXR1cm4gYWRkcmVzcyBpcyBvbiB0aGUgc3RhY2ssIG9y
IGluIHRoZSBsaW5rIHJlZ2lzdGVyLiBXZSB3aWxsIGhlbmNlCkBAIC0xNjAsMzMgKzE3OCwzNCBA
QCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxGb3JUCiAgICAgLy8gdGhlIERG
RyBrbm93cyB0aGF0IHRoZSB2YWx1ZSBpcyBkZWZpbml0ZWx5IGEgY2VsbCwgb3IgZGVmaW5pdGVs
eSBhIGZ1bmN0aW9uLgogICAgIAogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgaml0Lm1vdmUoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoVGFnTWFzayksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAK
ICAgICBzbG93Q2FzZS5hcHBlbmQoCiAgICAgICAgIGppdC5icmFuY2hUZXN0NjQoCi0gICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6Ok5vblplcm8sIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjp0YWdN
YXNrUmVnaXN0ZXIpKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm9uWmVybywgR1BSSW5m
bzo6cmVnVDAsIEdQUkluZm86OnJlZ1QyKSk7CiAjZWxzZQogICAgIHNsb3dDYXNlLmFwcGVuZCgK
ICAgICAgICAgaml0LmJyYW5jaDMyKAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVh
bCwgR1BSSW5mbzo6cmVnVDEsCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpDZWxsVGFnKSkpOwogI2VuZGlmCi0gICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwg
R1BSSW5mbzo6bm9uQXJnR1BSMik7CisgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OnJlZ1QwLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgR1BSSW5mbzo6
cmVnVDIpOwogICAgIHNsb3dDYXNlLmFwcGVuZCgKICAgICAgICAgaml0LmJyYW5jaFB0cigKICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6Tm90RXF1YWwsCi0gICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoR1BSSW5mbzo6bm9uQXJnR1BSMiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZz
ZXQoKSksCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDIs
IFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKEpTRnVuY3Rpb246OmluZm8oKSkpKTsKICAgICAKICAgICAvLyBOb3cg
d2Uga25vdyB3ZSBoYXZlIGEgSlNGdW5jdGlvbi4KICAgICAKICAgICBqaXQubG9hZFB0cigKICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBKU0Z1bmN0aW9uOjpv
ZmZzZXRPZkV4ZWN1dGFibGUoKSksCi0gICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjIpOwotICAg
IHNsb3dDYXNlLmFwcGVuZCgKLSAgICAgICAgaml0LmJyYW5jaDMyKAotICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpMZXNzVGhhbiwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygK
LSAgICAgICAgICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIyLCBFeGVjdXRhYmxlQmFzZTo6b2Zm
c2V0T2ZOdW1QYXJhbWV0ZXJzRm9yKGtpbmQpKSwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKDApKSk7CisgICAgICAgIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQubG9h
ZFB0cigKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKAorICAgICAgICAgICAgR1BSSW5m
bzo6cmVnVDIsIEV4ZWN1dGFibGVCYXNlOjpvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0Zv
cihraW5kLCByZWdpc3RlcnMpKSwKKyAgICAgICAgR1BSSW5mbzo6cmVnVDIpOworICAgIHNsb3dD
YXNlLmFwcGVuZChqaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIEdQUkluZm86
OnJlZ1QyKSk7CiAgICAgCiAgICAgLy8gTm93IHdlIGtub3cgdGhhdCB3ZSBoYXZlIGEgQ29kZUJs
b2NrLCBhbmQgd2UncmUgY29tbWl0dGVkIHRvIG1ha2luZyBhIGZhc3QKICAgICAvLyBjYWxsLgpA
QCAtMTk1LDYyICsyMTQsNjAgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFs
Rm9yVAogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTRnVu
Y3Rpb246Om9mZnNldE9mU2NvcGVDaGFpbigpKSwKICAgICAgICAgR1BSSW5mbzo6cmVnVDEpOwog
I2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgaml0LnN0b3JlNjQoCi0gICAgICAgIEdQUkluZm86OnJl
Z1QxLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCi0gICAgICAgICAgICBHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4o
c2l6ZW9mKFJlZ2lzdGVyKSkgKiBKU1N0YWNrOjpTY29wZUNoYWluKSk7CisgICAgaml0LmVtaXRQ
dXRUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKEdQUkluZm86OnJlZ1QxLCBKU1N0YWNr
OjpTY29wZUNoYWluKTsKICNlbHNlCi0gICAgaml0LnN0b3JlUHRyKAotICAgICAgICBHUFJJbmZv
OjpyZWdUMSwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKAotICAgICAgICAgICAgR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxwdHJkaWZm
X3Q+KHNpemVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbiArCi0gICAgICAgICAg
ICBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQp
KSk7Ci0gICAgaml0LnN0b3JlMzIoCi0gICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCi0gICAg
ICAgICAgICBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgIHN0YXRpY19j
YXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKiBKU1N0YWNrOjpTY29wZUNoYWluICsK
LSAgICAgICAgICAgIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0Jp
dHMudGFnKSkpOworICAgIGppdC5lbWl0UHV0UGF5bG9hZFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3Jl
UHJvbG9ndWUoR1BSSW5mbzo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOworICAgIGppdC5l
bWl0UHV0VGFnVG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKKyAgICAgICAgSlNTdGFjazo6U2NvcGVDaGFp
bik7CiAjZW5kaWYKICAgICAKLSAgICBqaXQubG9hZFB0cigKLSAgICAgICAgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKEdQUkluZm86Om5vbkFyZ0dQUjIsIEV4ZWN1dGFibGVCYXNlOjpvZmZzZXRPZkpJ
VENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5kKSksCi0gICAgICAgIEdQUkluZm86OnJlZ1QwKTsK
LSAgICAKICAgICAvLyBNYWtlIGEgdGFpbCBjYWxsLiBUaGlzIHdpbGwgcmV0dXJuIGJhY2sgdG8g
SklUIGNvZGUuCi0gICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6cmVnVDAp
OwotICAgIGppdC5qdW1wKEdQUkluZm86OnJlZ1QwKTsKKyAgICBlbWl0UG9pbnRlclZhbGlkYXRp
b24oaml0LCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDIpOwog
CiAgICAgc2xvd0Nhc2UubGluaygmaml0KTsKICAgICAKICAgICAvLyBIZXJlIHdlIGRvbid0IGtu
b3cgYW55dGhpbmcsIHNvIHJldmVydCB0byB0aGUgZnVsbCBzbG93IHBhdGguCiAgICAgCi0gICAg
c2xvd1BhdGhGb3Ioaml0LCB2bSwga2luZCA9PSBDb2RlRm9yQ2FsbCA/IG9wZXJhdGlvblZpcnR1
YWxDYWxsIDogb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdCk7CisgICAgc2xvd1BhdGhGb3Ioaml0
LCB2bSwgb3BlcmF0aW9uVmlydHVhbEZvcihraW5kLCByZWdpc3RlcnMpKTsKICAgICAKICAgICBM
aW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKICAgICBy
ZXR1cm4gRklOQUxJWkVfQ09ERSgKICAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICgiVmly
dHVhbCAlcyBzbG93IHBhdGggdGh1bmsiLCBraW5kID09IENvZGVGb3JDYWxsID8gImNhbGwiIDog
ImNvbnN0cnVjdCIpKTsKKyAgICAgICAgKCJWaXJ0dWFsICVzJXMgc2xvdyBwYXRoIHRodW5rIiwg
a2luZCA9PSBDb2RlRm9yQ2FsbCA/ICJjYWxsIiA6ICJjb25zdHJ1Y3QiLCByZWdpc3RlcnMgPT0g
TXVzdFByZXNlcnZlUmVnaXN0ZXJzID8gIiB0aGF0IHByZXNlcnZlcyByZWdpc3RlcnMiIDogIiIp
KTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3Io
Vk0qIHZtKQogewotICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVG
b3JDYWxsKTsKKyAgICByZXR1cm4gdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9y
Q2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiB9CiAKIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiB2aXJ0dWFsQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAg
IHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QpOwor
ICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3Qs
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogfQogCi1zdGF0aWMgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlv
bktpbmQga2luZCkKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2
ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1
bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQor
CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdz
VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5l
cmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisK
K2VudW0gVGh1bmtFbnRyeVR5cGUgeyBFbnRlclZpYUNhbGwsIEVudGVyVmlhSnVtcCB9OworCitz
dGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgVGh1bmtFbnRyeVR5cGUgZW50cnlUeXBlID0gRW50
ZXJWaWFDYWxsKQogewogICAgIGludCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbiA9IE5hdGl2
ZUV4ZWN1dGFibGU6Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3Ioa2luZCk7CiAgICAgCiAgICAg
SlNJbnRlcmZhY2VKSVQgaml0KHZtKTsKLSAgICAKKworICAgIGlmIChlbnRyeVR5cGUgPT0gRW50
ZXJWaWFDYWxsKQorICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKwogICAgIGpp
dC5lbWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJhbWVIZWFkZXIoMCwgSlNTdGFjazo6Q29kZUJsb2Nr
KTsKICAgICBqaXQuc3RvcmVQdHIoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCAm
dm0tPnRvcENhbGxGcmFtZSk7CiAKQEAgLTI2MSwyMiArMjc4LDE4IEBAIHN0YXRpYyBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVI
ZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0lu
dGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGppdC5lbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVy
KEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAKLSAgICBqaXQu
cGVlayhKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5lbWl0UHV0UmV0dXJuUENUb0Nh
bGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotCiAgICAgLy8gQ2FsbGluZyBj
b252ZW50aW9uOiAgICAgIGYoZWN4LCBlZHgsIC4uLik7CiAgICAgLy8gSG9zdCBmdW5jdGlvbiBz
aWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNh
bGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVjeCk7CiAKLSAgICBqaXQuc3ViUHRyKEpT
SW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2Yodm9pZCopKSwgSlNJbnRlcmZh
Y2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgLy8gQWxpZ24gc3RhY2sgYWZ0ZXIgY2FsbC4K
KyAgICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJm
YWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNrIGFmdGVyIHByb2xv
Z3VlLgogCiAgICAgLy8gY2FsbCB0aGUgZnVuY3Rpb24KICAgICBqaXQuZW1pdEdldEZyb21DYWxs
RnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwog
ICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpy
ZWdUMSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDEpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VK
SVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSBy
ZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAgaml0LmNhbGwoSlNJbnRl
cmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBleGVjdXRhYmxlT2Zmc2V0
VG9GdW5jdGlvbikpOwogCi0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZElt
bTMyKDE2IC0gc2l6ZW9mKHZvaWQqKSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBK
U0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogCiAjZWxpZiBDUFUoWDg2XzY0
KQogICAgIC8vIExvYWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxm
cmFtZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNhbGwgY2FuCkBAIC0yODQsMjMgKzI5NywxNSBAQCBz
dGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgaml0LmVtaXRHZXRD
YWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsK
ICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFp
biwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGpp
dC5lbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNT
dGFjazo6U2NvcGVDaGFpbik7Ci0KLSAgICBqaXQucGVlayhKU0ludGVyZmFjZUpJVDo6cmVnVDEp
OwotICAgIGppdC5lbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJ
VDo6cmVnVDEpOwotCiAjaWYgIU9TKFdJTkRPV1MpCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9u
OiAgICAgIGYoZWRpLCBlc2ksIGVkeCwgZWN4LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24g
c2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpj
YWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplZGkpOwogCi0gICAgaml0LnN1YlB0cihK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKGludDY0X3QpKSwgSlNJbnRl
cmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgLy8gQWxpZ24gc3RhY2sgYWZ0ZXIgY2Fs
bC4KLQogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxs
ZWUsIFg4NlJlZ2lzdGVyczo6ZXNpKTsKICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVzaSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxl
KCkpLCBYODZSZWdpc3RlcnM6OnI5KTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVn
VDAsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9y
ZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgogICAg
IGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6cjksIGV4ZWN1
dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CiAKLSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOwogI2Vsc2UKICAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246ICAg
ICAgZihlY3gsIGVkeCwgcjgsIHI5LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0
dXJlOiBmKEV4ZWNTdGF0ZSopOwpAQCAtMzExLDcgKzMxNiw2IEBAIHN0YXRpYyBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKIAogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhl
YWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIFg4NlJlZ2lzdGVyczo6ZWR4KTsKICAgICBqaXQubG9h
ZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVkeCwgSlNGdW5jdGlv
bjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBYODZSZWdpc3RlcnM6OnI5KTsKLSAgICBqaXQubW92
ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rl
cik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9h
ZGluZyBmcm9tIHN0YWNrLgogICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4
NlJlZ2lzdGVyczo6cjksIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CiAKICAgICBqaXQu
YWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoNCAqIHNpemVvZihpbnQ2NF90KSAr
IDE2IC0gc2l6ZW9mKGludDY0X3QpKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyKTsKQEAgLTMzMCwyOCArMzM0LDE4IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
bmF0aXZlRm9yR2UKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFj
azo6U2NvcGVDaGFpbiwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBBUk02NFJlZ2lzdGVyczo6eDMp
OwogICAgIGppdC5lbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklUOjpy
ZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAKLSAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRy
ZXNzQWZ0ZXJDYWxsKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7IC8vIENhbGxlZSBwcmVzZXJ2ZWQK
LSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoQVJNNjRSZWdpc3RlcnM6
OmxyKTsKLQogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwog
ICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgQVJNNjRSZWdp
c3RlcnM6OngwKTsKIAogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0
YWNrOjpDYWxsZWUsIEFSTTY0UmVnaXN0ZXJzOjp4MSk7CiAgICAgaml0LmxvYWRQdHIoSlNJbnRl
cmZhY2VKSVQ6OkFkZHJlc3MoQVJNNjRSZWdpc3RlcnM6OngxLCBKU0Z1bmN0aW9uOjpvZmZzZXRP
ZkV4ZWN1dGFibGUoKSksIEFSTTY0UmVnaXN0ZXJzOjp4Mik7Ci0gICAgaml0Lm1vdmUoQVJNNjRS
ZWdpc3RlcnM6OngzLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdl
cmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBz
dGFjay4KICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVy
czo6eDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7Ci0KLSAgICBqaXQucmVzdG9yZVJl
dHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLQogI2VsaWYg
Q1BVKEFSTSkgfHwgQ1BVKFNINCkgfHwgQ1BVKE1JUFMpCiAgICAgLy8gTG9hZCBjYWxsZXIgZnJh
bWUncyBzY29wZSBjaGFpbiBpbnRvIHRoaXMgY2FsbGZyYW1lIHNvIHRoYXQgd2hhdGV2ZXIgd2Ug
Y2FsbCBjYW4gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KICAgICBqaXQuZW1pdEdldENhbGxlckZy
YW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGpp
dC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpTY29wZUNoYWluLCBKU0lu
dGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CiAgICAgaml0LmVtaXRQ
dXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU1N0YWNrOjpT
Y29wZUNoYWluKTsKIAotICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QzKTsgLy8gQ2FsbGVlIHByZXNlcnZlZAotICAgIGppdC5lbWl0UHV0
UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwotCiAjaWYg
Q1BVKE1JUFMpCiAgICAgLy8gQWxsb2NhdGUgc3RhY2sgc3BhY2UgZm9yICh1bnVzZWQpIDE2IGJ5
dGVzICg4LWJ5dGUgYWxpZ25lZCkgZm9yIDQgYXJndW1lbnRzLgogICAgIGppdC5zdWJQdHIoSlNJ
bnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CkBAIC0zNjIsNyArMzU2LDYgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBuYXRpdmVGb3JHZQogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVS
ZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCk7CiAKICAgICBqaXQuZW1pdEdl
dEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBKU0ludGVyZmFjZUpJVDo6
YXJndW1lbnRHUFIxKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVnVDIsIEpTSW50
ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIg
ZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgogICAgIGppdC5sb2Fk
UHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjEs
IEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qy
KTsKICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6
cmVnVDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CiAKQEAgLTM3MCw4ICszNjMsNiBA
QCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgLy8gUmVzdG9y
ZSBzdGFjayBzcGFjZQogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0z
MigxNiksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAjZW5kaWYKLQot
ICAgIGppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihKU0ludGVyZmFjZUpJVDo6
cmVnVDMpOwogI2Vsc2UKICNlcnJvciAiSklUIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9y
bS4iCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKTsKQEAgLTM4
OSwyNSArMzgwLDIxIEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UK
ICAgICAgICAgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVl
VGFnKSk7CiAjZW5kaWYKIAorICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIC8v
IFJldHVybi4KICAgICBqaXQucmV0KCk7CiAKICAgICAvLyBIYW5kbGUgYW4gZXhjZXB0aW9uCiAg
ICAgZXhjZXB0aW9uSGFuZGxlci5saW5rKCZqaXQpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJu
IGFkZHJlc3MuCi0gICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChKU0ludGVy
ZmFjZUpJVDo6cmVnVDEpOwotICAgIAotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVz
dGVkSW1tUHRyKCZ2bS0+ZXhjZXB0aW9uTG9jYXRpb24pLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIp
OwotICAgIGppdC5zdG9yZVB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklU
OjpyZWdUMik7Ci0KICAgICBqaXQuc3RvcmVQdHIoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJl
Z2lzdGVyLCAmdm0tPnRvcENhbGxGcmFtZSk7CiAKICNpZiBDUFUoWDg2KSAmJiBVU0UoSlNWQUxV
RTMyXzY0KQogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigtMTIp
LCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotICAgIGppdC5wdXNoKEpT
SW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgaml0LmxvYWRQdHIoSlNJbnRl
cmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKSwgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QwKTsKKyAgICBqaXQucHVzaChKU0ludGVyZmFjZUpJVDo6cmVnVDAp
OwogI2Vsc2UKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIs
IEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjApOworICAgIGppdC5sb2FkUHRyKEpTSW50ZXJm
YWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciksIEpTSW50
ZXJmYWNlSklUOjphcmd1bWVudEdQUjApOwogI2VuZGlmCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZh
Y2VKSVQ6OlRydXN0ZWRJbW1QdHIoRnVuY3Rpb25QdHIob3BlcmF0aW9uVk1IYW5kbGVFeGNlcHRp
b24pLnZhbHVlKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwogICAgIGppdC5jYWxsKEpTSW50
ZXJmYWNlSklUOjpyZWdUMyk7CkBAIC00MTgsNyArNDA1LDcgQEAgc3RhdGljIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogICAgIGppdC5qdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7
CiAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lE
KTsKLSAgICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgKCJuYXRpdmUgJXMgdHJh
bXBvbGluZSIsIHRvQ1N0cmluZyhraW5kKS5kYXRhKCkpKTsKKyAgICByZXR1cm4gRklOQUxJWkVf
Q09ERShwYXRjaEJ1ZmZlciwgKCJuYXRpdmUgJXMlcyB0cmFtcG9saW5lIiwgZW50cnlUeXBlID09
IEVudGVyVmlhSnVtcCA/ICJUYWlsICIgOiAiIiwgdG9DU3RyaW5nKGtpbmQpLmRhdGEoKSkpOwog
fQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlQ2FsbEdlbmVyYXRvcihWTSogdm0pCkBA
IC00MjYsNiArNDEzLDExIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDYWxsR2VuZXJh
dG8KICAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCk7CiB9CiAK
K01hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVUYWlsQ2FsbEdlbmVyYXRvcihWTSogdm0pCit7
CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwsIEVudGVyVmlh
SnVtcCk7Cit9CisKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0
b3IoVk0qIHZtKQogewogICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVGb3JD
b25zdHJ1Y3QpOwpAQCAtNDM1LDM0ICs0MjcsNDYgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFy
aXR5Rml4dXAoVk0qIHZtKQogewogICAgIEpTSW50ZXJmYWNlSklUIGppdCh2bSk7CiAKLSAgICAv
LyBXZSBlbnRlciB3aXRoIGZpeHVwIGNvdW50IGluIHJlZ1QwCisgICAgLy8gV2UgZW50ZXIgd2l0
aCBmaXh1cCBjb3VudCwgaW4gYWxpZ25lZCBzdGFjayB1bml0cywgaW4gcmVnVDAgYW5kIHRoZSBy
ZXR1cm4gdGh1bmsgaW4KKyAgICAvLyByZWdUNS4gV2UgdXNlIFZNOjpjdXJyZW50UmV0dXJuVGh1
bmtQQyBpbnN0ZWFkIG9mIHJlZ1Q1IG9uIFg4Ni0zMi4KICNpZiBVU0UoSlNWQUxVRTY0KQogIyAg
aWYgQ1BVKFg4Nl82NCkKICAgICBqaXQucG9wKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CiAjICBl
bmRpZgorICAgIGppdC5sc2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKGxvZ1N0
YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwogICAgIGpp
dC5uZWc2NChKU0ludGVyZmFjZUpJVDo6cmVnVDApOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNl
SklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLSAgICBqaXQu
bG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVS
ZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIDgpLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDIpOworICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1Q2KTsKKyAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRy
ZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRD
b3VudCAqIHNpemVvZihSZWdpc3RlcikpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGpp
dC5hZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhl
YWRlclNpemUpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogCiAgICAgLy8gTW92ZSBjdXJyZW50
IGZyYW1lIGRvd24gcmVnVDAgbnVtYmVyIG9mIHNsb3RzCiAgICAgSlNJbnRlcmZhY2VKSVQ6Okxh
YmVsIGNvcHlMb29wKGppdC5sYWJlbCgpKTsKLSAgICBqaXQubG9hZDY0KEpTSW50ZXJmYWNlSklU
OjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuc3RvcmU2NChKU0ludGVy
ZmFjZUpJVDo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0
KSk7Ci0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0lu
dGVyZmFjZUpJVDo6cmVnVDMpOworICAgIGppdC5sb2FkNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q2
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOworICAgIGppdC5zdG9yZTY0KEpTSW50ZXJmYWNlSklU
OjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDYs
IEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKKyAg
ICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNl
SklUOjpyZWdUNik7CiAgICAgaml0LmJyYW5jaFN1YjMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJv
LCBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIp
LmxpbmtUbyhjb3B5TG9vcCwgJmppdCk7CiAKLSAgICAvLyBGaWxsIGluIHJlZ1QwIG1pc3Npbmcg
YXJnIHNsb3RzIHdpdGggdW5kZWZpbmVkCisgICAgLy8gRmlsbCBpbiByZWdUMCAtIDEgbWlzc2lu
ZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6
cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VK
SVQ6OlRydXN0ZWRJbW02NChWYWx1ZVVuZGVmaW5lZCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7
CisgICAgaml0LmFkZDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJm
YWNlSklUOjpyZWdUMik7CiAgICAgSlNJbnRlcmZhY2VKSVQ6OkxhYmVsIGZpbGxVbmRlZmluZWRM
b29wKGppdC5sYWJlbCgpKTsKLSAgICBqaXQuc3RvcmU2NChKU0ludGVyZmFjZUpJVDo6cmVnVDEs
IE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7Ci0gICAgaml0LmFk
ZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDMpOworICAgIGppdC5zdG9yZTY0KEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJs
ZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDYsIEpTSW50ZXJmYWNlSklUOjpyZWdU
MCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJm
YWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpyZWdUNik7CiAgICAgaml0
LmJyYW5jaEFkZDMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6VHJ1
c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpLmxpbmtUbyhmaWxsVW5kZWZpbmVk
TG9vcCwgJmppdCk7Ci0KLSAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciB0byBhY2Nv
dW50IGZvciBtaXNzaW5nIGFyZ3MKLSAgICBqaXQubHNoaWZ0NjQoSlNJbnRlcmZhY2VKSVQ6OlRy
dXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKLSAgICBqaXQuYWRkUHRyKEpT
SW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsK
KyAgICAKKyAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciBhbmQgc3RhY2sgcG9pbnRl
ciB0byBhY2NvdW50IGZvciBtaXNzaW5nIGFyZ3MKKyAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJ
VDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CisgICAgaml0LmxzaGlmdDY0KEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CisgICAg
aml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJh
bWVSZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50
ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAgICAvLyBTYXZlIHRoZSBvcmln
aW5hbCByZXR1cm4gUEMuCisgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3Mo
SlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zm
c2V0KCkpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1Qx
LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUNiwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOworICAgIAorICAg
IC8vIEluc3RhbGwgdGhlIG5ldyByZXR1cm4gUEMuCisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86
OnJlZ1Q1LCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOwogCiAjICBpZiBDUFUoWDg2
XzY0KQogICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CkBAIC00NzIsOSArNDc2
LDEwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKICMgIGlmIENQ
VShYODYpCiAgICAgaml0LnBvcChKU0ludGVyZmFjZUpJVDo6cmVnVDQpOwogIyAgZW5kaWYKKyAg
ICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihsb2dTdGFja0FsaWdu
bWVudFJlZ2lzdGVycygpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubmVnMzIo
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7Ci0gICAgaml0LmxvYWQzMihK
U0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIs
IEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiA4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAg
ICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxs
RnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHNpemVvZihSZWdpc3Rlcikp
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6
VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDIpOwogCiAgICAgLy8gTW92ZSBjdXJyZW50IGZyYW1lIGRvd24gcmVnVDAgbnVtYmVy
IG9mIHNsb3RzCkBAIC00ODYsOCArNDkxLDkgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5
Rml4dXAoVk0qIHZtKQogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0z
Mig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuYnJhbmNoU3ViMzIoTWFjcm9B
c3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50
ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGNvcHlMb29wLCAmaml0KTsKIAotICAgIC8vIEZpbGwg
aW4gcmVnVDAgbWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKKyAgICAvLyBGaWxsIGlu
IHJlZ1QwIC0gMSBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAogICAgIGppdC5tb3Zl
KEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBqaXQu
YWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QyKTsKICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgZmlsbFVuZGVmaW5lZExvb3Aoaml0Lmxh
YmVsKCkpOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMCksIEpT
SW50ZXJmYWNlSklUOjpyZWdUMSk7CiAgICAgaml0LnN0b3JlMzIoSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwpAQCAtNDk3
LDEwICs1MDMsMjUgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZtKQog
ICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblpl
cm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdU
MikubGlua1RvKGZpbGxVbmRlZmluZWRMb29wLCAmaml0KTsKIAotICAgIC8vIEFkanVzdCBjYWxs
IGZyYW1lIHJlZ2lzdGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncwotICAgIGppdC5sc2hp
ZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVyZmFjZUpJVDo6cmVn
VDApOwotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJ
VDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotCisgICAgLy8gQWRqdXN0IGNhbGwgZnJhbWUgcmVnaXN0
ZXIgYW5kIHN0YWNrIHBvaW50ZXIgdG8gYWNjb3VudCBmb3IgbWlzc2luZyBhcmdzCisgICAgaml0
Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOworICAg
IGppdC5sc2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVyZmFj
ZUpJVDo6cmVnVDEpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisg
ICAgLy8gU2F2ZSB0aGUgb3JpZ2luYWwgcmV0dXJuIFBDLgorICAgIGppdC5sb2FkUHRyKEpTSW50
ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2Fs
bEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5zdG9y
ZVB0cihHUFJJbmZvOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFj
ZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVz
RWlnaHQpKTsKKyAgICAKKyAgICAvLyBJbnN0YWxsIHRoZSBuZXcgcmV0dXJuIFBDLgorICAgIC8v
IEZJWE1FOiBJIGRvbid0IHRoaW5rIGN1cnJlbnRSZXR1cm5UaHVua1BDIGlzIHVzZWQgYW5kIHNo
b3VsZCBiZSBkZWxldGVkLgorIyAgaWYgMAorICAgIGppdC5sb2FkUHRyKCZ2bS0+Y3VycmVudFJl
dHVyblRodW5rUEMsIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6
cmVnVDIsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVS
ZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CisjICAgZWxzZQorICAgIGpp
dC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUNSwgSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkp
KTsKKyMgICBlbmRpZgorICAgIAogIyAgaWYgQ1BVKFg4NikKICAgICBqaXQucHVzaChKU0ludGVy
ZmFjZUpJVDo6cmVnVDQpOwogIyAgZW5kaWYKQEAgLTU1NCw3ICs1NzUsNyBAQCBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuCiAgICAgU3BlY2lhbGl6ZWRUaHVua0pJVCBq
aXQodm0sIDEpOwogICAgIHN0cmluZ0NoYXJMb2FkKGppdCwgdm0pOwogICAgIGppdC5yZXR1cm5J
bnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6
ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiY2hhckNvZGVBdCIpOworICAgIHJl
dHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJj
aGFyQ29kZUF0Iik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjaGFyQXRUaHVua0dlbmVy
YXRvcihWTSogdm0pCkBAIC01NjMsNyArNTg0LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNo
YXJBdFRodW5rR2VuZXJhdAogICAgIHN0cmluZ0NoYXJMb2FkKGppdCwgdm0pOwogICAgIGNoYXJU
b1N0cmluZyhqaXQsIHZtLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwgU3BlY2lhbGl6ZWRU
aHVua0pJVDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QxKTsKICAgICBqaXQucmV0
dXJuSlNDZWxsKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZp
bmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJjaGFyQXQiKTsKKyAgICBy
ZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAi
Y2hhckF0Iik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBmcm9tQ2hhckNvZGVUaHVua0dl
bmVyYXRvcihWTSogdm0pCkBAIC01NzMsNyArNTk0LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGZyb21DaGFyQ29kZVRodW5rRwogICAgIGppdC5sb2FkSW50MzJBcmd1bWVudCgwLCBTcGVjaWFs
aXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgY2hhclRvU3RyaW5nKGppdCwgdm0sIFNwZWNpYWxp
emVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwgU3BlY2lhbGl6
ZWRUaHVua0pJVDo6cmVnVDEpOwogICAgIGppdC5yZXR1cm5KU0NlbGwoU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlO
YXRpdmVDYWxsKHZtKSwgImZyb21DaGFyQ29kZSIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUo
dm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJmcm9tQ2hhckNvZGUiKTsKIH0K
IAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC01
ODUsNyArNjA2LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRvcgog
ICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdU
MCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIGppdC5zcXJ0RG91YmxlKFNwZWNp
YWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwog
ICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAg
cmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAic3Fy
dCIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWls
Q2FsbCh2bSksICJzcXJ0Iik7CiB9CiAKIApAQCAtNjExLDcgKzYzMiw5IEBAIGRvdWJsZSBqc1Jv
dW5kKGRvdWJsZSBkKQogICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMj
VGh1bmspICJcbiIgXAogICAgICAgICBISURFX1NZTUJPTChmdW5jdGlvbiMjVGh1bmspICJcbiIg
XAogICAgICAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uIyNUaHVuaykgIjoiICJcbiIgXAorICAg
ICAgICAicHVzaHEgJXJheFxuIiBcCiAgICAgICAgICJjYWxsICIgR0xPQkFMX1JFRkVSRU5DRShm
dW5jdGlvbikgIlxuIiBcCisgICAgICAgICJwb3BxICVyY3hcbiIgXAogICAgICAgICAicmV0XG4i
IFwKICAgICApO1wKICAgICBleHRlcm4gIkMiIHsgXApAQCAtNjI2LDEyICs2NDksMTIgQEAgZG91
YmxlIGpzUm91bmQoZG91YmxlIGQpCiAgICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1
bmN0aW9uIyNUaHVuaykgIlxuIiBcCiAgICAgICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uIyNUaHVu
aykgIlxuIiBcCiAgICAgICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAiOiIgIlxu
IiBcCi0gICAgICAgICJzdWJsICQ4LCAlZXNwXG4iIFwKKyAgICAgICAgInN1YmwgJDIwLCAlZXNw
XG4iIFwKICAgICAgICAgIm1vdnNkICV4bW0wLCAoJWVzcCkgXG4iIFwKICAgICAgICAgImNhbGwg
IiBHTE9CQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiXG4iIFwKICAgICAgICAgImZzdHBsICglZXNw
KSBcbiIgXAogICAgICAgICAibW92c2QgKCVlc3ApLCAleG1tMCBcbiIgXAotICAgICAgICAiYWRk
bCAkOCwgJWVzcFxuIiBcCisgICAgICAgICJhZGRsICQyMCwgJWVzcFxuIiBcCiAgICAgICAgICJy
ZXRcbiIgXAogICAgICk7XAogICAgIGV4dGVybiAiQyIgeyBcCkBAIC03MzMsNyArNzU2LDcgQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZsb29yVGh1bmtHZW5lcmF0bwogICAgIGRvdWJsZVJlc3Vs
dC5saW5rKCZqaXQpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6
ZnBSZWdUMCk7CiAjZW5kaWYgLy8gQ1BVKEFSTTY0KQotICAgIHJldHVybiBqaXQuZmluYWxpemUo
dm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImZsb29yIik7CisgICAgcmV0dXJuIGpp
dC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImZsb29yIik7
CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjZWlsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpA
QCAtNzU2LDcgKzc3OSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjZWlsVGh1bmtHZW5lcmF0
b3IKICAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAg
IGRvdWJsZVJlc3VsdC5saW5rKCZqaXQpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6
ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1
YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiY2VpbCIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUo
dm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJjZWlsIik7CiB9CiAKIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiByb3VuZFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTc5MCw3ICs4
MTMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcm91bmRUaHVua0dlbmVyYXRvCiAgICAgaml0
LnJldHVybkludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBkb3VibGVSZXN1
bHQubGluaygmaml0KTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6
OmZwUmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRp
dmVDYWxsKHZtKSwgInJvdW5kIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1
YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgInJvdW5kIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBleHBUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC04MDMsNyArODI2LDcgQEAgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIGV4cFRodW5rR2VuZXJhdG9yKAogICAgIGppdC5sb2FkRG91Ymxl
QXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDApOwogICAgIGppdC5jYWxsRG91YmxlVG9Eb3VibGVQcmVzZXJ2aW5nUmV0dXJu
KFVuYXJ5RG91YmxlT3BXcmFwcGVyKGV4cCkpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lh
bGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0
U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiZXhwIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6
ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImV4cCIpOwogfQogCiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtODE2LDcgKzgz
OSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsb2dUaHVua0dlbmVyYXRvcigKICAgICBqaXQu
bG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNp
YWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuY2FsbERvdWJsZVRvRG91YmxlUHJlc2Vy
dmluZ1JldHVybihVbmFyeURvdWJsZU9wV3JhcHBlcihsb2cpKTsKICAgICBqaXQucmV0dXJuRG91
YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxp
emUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImxvZyIpOworICAgIHJldHVybiBq
aXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJsb2ciKTsK
IH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFic1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAg
LTgzNiw3ICs4NTksNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYWJzVGh1bmtHZW5lcmF0b3Io
CiAgICAgaml0LmxvYWREb3VibGVBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJl
Z1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgaml0LmFic0RvdWJsZShTcGVj
aWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsK
ICAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwotICAg
IHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImFi
cyIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWls
Q2FsbCh2bSksICJhYnMiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHBvd1RodW5rR2Vu
ZXJhdG9yKFZNKiB2bSkKQEAgLTg4OCw3ICs5MTEsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
cG93VGh1bmtHZW5lcmF0b3IoCiAgICAgfSBlbHNlCiAgICAgICAgIGppdC5hcHBlbmRGYWlsdXJl
KG5vbkludEV4cG9uZW50KTsKIAotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJz
LT5jdGlOYXRpdmVDYWxsKHZtKSwgInBvdyIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0t
PmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJwb3ciKTsKIH0KIAogTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGltdWxUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC05MjEsNyArOTQ0LDcg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGltdWxUaHVua0dlbmVyYXRvcgogICAgIH0gZWxzZQog
ICAgICAgICBqaXQuYXBwZW5kRmFpbHVyZShub25JbnRBcmcxSnVtcCk7CiAKLSAgICByZXR1cm4g
aml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJpbXVsIik7Cisg
ICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZt
KSwgImltdWwiKTsKIH0KIAogc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJh
dG9yTmV4dFRodW5rR2VuZXJhdG9yKFZNKiB2bSwgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQpCkBA
IC05NjEsNyArOTg0LDcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJh
dAogICAgIGlmIChraW5kID09IEFycmF5SXRlcmF0ZUtleSkgewogICAgICAgICBqaXQuYWRkMzIo
VHJ1c3RlZEltbTMyKDEpLCBBZGRyZXNzKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1Q0LCBKU0Fy
cmF5SXRlcmF0b3I6Om9mZnNldE9mTmV4dEluZGV4KCkpKTsKICAgICAgICAgaml0LnJldHVybklu
dDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QxKTsKLSAgICAgICAgcmV0dXJuIGppdC5maW5h
bGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4
dC1rZXkiKTsKKyAgICAgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5h
dGl2ZVRhaWxDYWxsKHZtKSwgImFycmF5LWl0ZXJhdG9yLW5leHQta2V5Iik7CiAgICAgICAgIAog
ICAgIH0KICAgICBBU1NFUlQoa2luZCA9PSBBcnJheUl0ZXJhdGVWYWx1ZSk7CkBAIC0xMDEyLDcg
KzEwMzUsNyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFycmF5SXRlcmF0CiAgICAg
aml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgQWRkcmVzcyhTcGVjaWFsaXplZFRodW5rSklUOjpy
ZWdUNCwgSlNBcnJheUl0ZXJhdG9yOjpvZmZzZXRPZk5leHRJbmRleCgpKSk7CiAgICAgaml0LnJl
dHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKICAgICAKLSAgICByZXR1
cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJhcnJheS1p
dGVyYXRvci1uZXh0LXZhbHVlIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1
YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImFycmF5LWl0ZXJhdG9yLW5leHQtdmFsdWUiKTsK
IH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFycmF5SXRlcmF0b3JOZXh0S2V5VGh1bmtHZW5l
cmF0b3IoVk0qIHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2Vu
ZXJhdG9ycy5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZu
ZGVmIFRodW5rR2VuZXJhdG9yc19oCiAjZGVmaW5lIFRodW5rR2VuZXJhdG9yc19oCiAKKyNpbmNs
dWRlICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJQcmVzZXJ2
YXRpb25Nb2RlLmgiCiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3IuaCIKIAogI2lmIEVOQUJMRShK
SVQpCkBAIC0zNSwxNCArMzcsODIgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHRocm93RXhjZXB0
aW9uRnJvbQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaHVua0dlbmVyYXRvcihW
TSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcihW
TSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVu
a0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDb25zdHJ1Y3RUaGF0
UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKik7CisKK2lubGluZSBUaHVua0dlbmVyYXRv
ciBsaW5rVGh1bmtHZW5lcmF0b3JGb3IoCisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
LCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAoa2lu
ZCkgeworICAgIGNhc2UgQ29kZUZvckNhbGw6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7
CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAg
ICAgIHJldHVybiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVz
ZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiBsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNS
ZWdzVGh1bmtHZW5lcmF0b3I7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
b2RlRm9yQ29uc3RydWN0OgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBj
YXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4g
bGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJl
Z2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiBsaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1Jl
Z3NUaHVua0dlbmVyYXRvcjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KIAogTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKFZNKik7CitNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dl
bmVyYXRvcihWTSopOworCitpbmxpbmUgVGh1bmtHZW5lcmF0b3IgbGlua0Nsb3N1cmVDYWxsVGh1
bmtHZW5lcmF0b3JGb3IoUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAg
ICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RS
ZXF1aXJlZDoKKyAgICAgICAgcmV0dXJuIGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yOwor
ICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICByZXR1cm4gbGlua0Nsb3N1
cmVDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcjsKKyAgICB9CisgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KIAogTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiB2aXJ0dWFsQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1i
bGVyQ29kZVJlZiB2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0q
KTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1Jl
Z3NUaHVua0dlbmVyYXRvcihWTSopOworCitpbmxpbmUgVGh1bmtHZW5lcmF0b3IgdmlydHVhbFRo
dW5rR2VuZXJhdG9yRm9yKAorICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAg
ICBjYXNlIENvZGVGb3JDYWxsOgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAg
ICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1
cm4gdmlydHVhbENhbGxUaHVua0dlbmVyYXRvcjsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVS
ZWdpc3RlcnM6CisgICAgICAgICAgICByZXR1cm4gdmlydHVhbENhbGxUaGF0UHJlc2VydmVzUmVn
c1RodW5rR2VuZXJhdG9yOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29k
ZUZvckNvbnN0cnVjdDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2Fz
ZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIHZp
cnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcjsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVS
ZWdpc3RlcnM6CisgICAgICAgICAgICByZXR1cm4gdmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2
ZXNSZWdzVGh1bmtHZW5lcmF0b3I7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CiAKIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDYWxsR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbmF0aXZlQ29uc3RydWN0R2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgbmF0aXZlVGFpbENhbGxHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBhcml0eUZpeHVwKFZNKik7CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjaGFyQ29kZUF0
VGh1bmtHZW5lcmF0b3IoVk0qKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludENMb29wLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRDTG9vcC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludENMb29wLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBu
YW1lc3BhY2UgTExJbnQgewogCiB2b2lkIENMb29wOjppbml0aWFsaXplKCkKIHsKLSAgICBleGVj
dXRlKDAsIGdldE9wY29kZShsbGludF91bnVzZWQpLCB0cnVlKTsKKyAgICBleGVjdXRlKGxsaW50
X3VudXNlZCwgMCwgMCwgMCwgdHJ1ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIExMSW50CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludENMb29wLmgJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludENMb29wLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRl
ICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCisjaW5jbHVkZSAiUHJvdG9DYWxs
RnJhbWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgTExJbnQgewpAQCAtNDAsNyAr
NDEsNyBAQCBjb25zdCBPcGNvZGVJRCBsbGludF91bnVzZWQgPSBsbGludF9lbmQ7CiBjbGFzcyBD
TG9vcCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZSgpOwotICAgIHN0YXRp
YyBKU1ZhbHVlIGV4ZWN1dGUoQ2FsbEZyYW1lKiwgT3Bjb2RlIGVudHJ5T3Bjb2RlLCBib29sIGlz
SW5pdGlhbGl6YXRpb25QYXNzID0gZmFsc2UpOworICAgIHN0YXRpYyBKU1ZhbHVlIGV4ZWN1dGUo
T3Bjb2RlSUQgZW50cnlPcGNvZGVJRCwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZNKiwgUHJv
dG9DYWxsRnJhbWUqLCBib29sIGlzSW5pdGlhbGl6YXRpb25QYXNzID0gZmFsc2UpOwogfTsKIAog
fSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnREYXRhLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIkpTU2NvcGUuaCIKICNpbmNs
dWRlICJMTEludENMb29wLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU9mZnNldC5oIgog
CkBAIC04Nyw2ICs4OCw3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQog
ICAgIEFTU0VSVChKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplID09IENhbGxGcmFtZUhlYWRl
clNsb3RzKTsKIAogICAgIEFTU0VSVCghQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKTsK
KyAgICBBU1NFUlQoSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUgPT0gKFB0clNpemUgKiAy
KSAvIFNsb3RTaXplKTsKICAgICBBU1NFUlQoQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpID09
IENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSArIFB0clNpemUpOwogICAgIEFTU0VSVChK
U1N0YWNrOjpDb2RlQmxvY2sgKiBzaXplb2YoUmVnaXN0ZXIpID09IENhbGxGcmFtZTo6cmV0dXJu
UENPZmZzZXQoKSArIFB0clNpemUpOwogICAgIEFTU0VSVChKU1N0YWNrOjpTY29wZUNoYWluICog
c2l6ZW9mKFJlZ2lzdGVyKSA9PSBKU1N0YWNrOjpDb2RlQmxvY2sgKiBzaXplb2YoUmVnaXN0ZXIp
ICsgU2xvdFNpemUpOwpAQCAtMTIzLDYgKzEyNSwxMyBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3Nl
cnRpb25zKFZNJiB2bSkKICAgICBBU1NFUlQoVmFsdWVVbmRlZmluZWQgPT0gKFRhZ0JpdFR5cGVP
dGhlciB8IFRhZ0JpdFVuZGVmaW5lZCkpOwogICAgIEFTU0VSVChWYWx1ZU51bGwgPT0gVGFnQml0
VHlwZU90aGVyKTsKICNlbmRpZgorI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkgfHwgRU5B
QkxFKExMSU5UX0NfTE9PUCkKKyAgICBBU1NFUlQoIW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKTsKKyNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpCisgICAgQVNTRVJUKG1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsID09IDI0KTsKKyNlbGlmIENQVShYODYpIHx8IENQVShNSVBTKQor
ICAgIEFTU0VSVChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9PSA0MCk7CisjZW5kaWYK
ICAgICBBU1NFUlQoU3RyaW5nVHlwZSA9PSA1KTsKICAgICBBU1NFUlQoT2JqZWN0VHlwZSA9PSAx
Nyk7CiAgICAgQVNTRVJUKEZpbmFsT2JqZWN0VHlwZSA9PSAxOCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJKU09iamVjdC5oIgog
I2luY2x1ZGUgIkxMSW50VGh1bmtzLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5o
IgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCisjaW5jbHVkZSAi
U3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIExMSW50IHsKQEAgLTQ1LDE0ICs0NywxMiBAQCBzdGF0aWMgdm9pZCBzZXRGdW5jdGlv
bkVudHJ5cG9pbnQoVk0mIHZtCiAgICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGlm
IChraW5kID09IENvZGVGb3JDYWxsKSB7CiAgICAgICAgICAgICBjb2RlQmxvY2stPnNldEpJVENv
ZGUoCi0gICAgICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJ
U3R1YihmdW5jdGlvbkZvckNhbGxFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJw
cmV0ZXJUaHVuaykpLAotICAgICAgICAgICAgICAgIHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JD
YWxsQXJpdHlDaGVja1RodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgICAgICAgICAgICAgIGFk
b3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsRW50
cnlUaHVua0dlbmVyYXRvciksIHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsQXJpdHlDaGVj
a1RodW5rR2VuZXJhdG9yKS5jb2RlKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29k
ZUZvckNvbnN0cnVjdCk7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAg
ICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JD
b25zdHJ1Y3RFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykp
LAotICAgICAgICAgICAgdm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hl
Y2tUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJl
Y3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RFbnRyeVRodW5rR2Vu
ZXJhdG9yKSwgdm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tUaHVu
a0dlbmVyYXRvcikuY29kZSgpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCkBAIC02MCwxNCArNjAsMTIg
QEAgc3RhdGljIHZvaWQgc2V0RnVuY3Rpb25FbnRyeXBvaW50KFZNJiB2bQogICAgIFVOVVNFRF9Q
QVJBTSh2bSk7CiAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpIHsKICAgICAgICAgY29kZUJs
b2NrLT5zZXRKSVRDb2RlKAotICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUo
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZnVuY3Rpb25f
Zm9yX2NhbGxfcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9mdW5j
dGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjaykpOworICAgICAgICAgICAgYWRvcHRSZWYobmV3IERp
cmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxp
bnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWUpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNy
ZWF0ZUxMSW50Q29kZVB0cihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjayksIEpJ
VENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
QVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7CiAgICAgY29kZUJsb2NrLT5zZXRKSVRD
b2RlKAotICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3By
b2xvZ3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGludF9mdW5jdGlvbl9mb3JfY29uc3Ry
dWN0X2FyaXR5X2NoZWNrKSk7CisgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2Z1bmN0aW9uX2Zv
cl9jb25zdHJ1Y3RfcHJvbG9ndWUpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50
Q29kZVB0cihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNrKSwgSklUQ29k
ZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKIH0KIAogc3RhdGljIHZvaWQgc2V0RXZhbEVudHJ5cG9p
bnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKQEAgLTc1LDE2ICs3MywxNCBAQCBzdGF0
aWMgdm9pZCBzZXRFdmFsRW50cnlwb2ludChWTSYgdm0sIENvCiAjaWYgRU5BQkxFKEpJVCkKICAg
ICBpZiAodm0uY2FuVXNlSklUKCkpIHsKICAgICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAot
ICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihldmFs
RW50cnlUaHVua0dlbmVyYXRvciksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5l
dyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZXZhbEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCiAgICAgVU5VU0VE
X1BBUkFNKHZtKTsKICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVm
KG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2Rl
UmVmKGxsaW50X2V2YWxfcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERp
cmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxp
bnRfZXZhbF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRl
cnByZXRlclRodW5rKSkpOwogfQogCiBzdGF0aWMgdm9pZCBzZXRQcm9ncmFtRW50cnlwb2ludChW
TSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQpAQCAtOTIsMTYgKzg4LDE0IEBAIHN0YXRpYyB2
b2lkIHNldFByb2dyYW1FbnRyeXBvaW50KFZNJiB2bSwKICNpZiBFTkFCTEUoSklUKQogICAgIGlm
ICh2bS5jYW5Vc2VKSVQoKSkgewogICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAg
ICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKHByb2dyYW1F
bnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICAgICAgYWRvcHRSZWYobmV3
IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1Yihwcm9ncmFtRW50cnlUaHVua0dlbmVyYXRvciks
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKICAgICBVTlVT
RURfUEFSQU0odm0pOwogICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRS
ZWYobmV3IERpcmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENv
ZGVSZWYobGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmsp
KSwKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgICAgICBhZG9wdFJlZihu
ZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJl
ZihsbGludF9wcm9ncmFtX3Byb2xvZ3VlKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCksIEpJVENv
ZGU6OkludGVycHJldGVyVGh1bmspKSk7CiB9CiAKIHZvaWQgc2V0RW50cnlwb2ludChWTSYgdm0s
IENvZGVCbG9jayogY29kZUJsb2NrKQpAQCAtMTIzLDcgKzExNyw5IEBAIHZvaWQgc2V0RW50cnlw
b2ludChWTSYgdm0sIENvZGVCbG9jayogY28KIAogdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50
Rm9yKENvZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBjb2RlQmxvY2stPm1fbnVt
Q2FsbGVlUmVnaXN0ZXJzOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29kZUJs
b2NrLT5tX251bUNhbGxlZVJlZ2lzdGVycykgPT0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0
YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb2RlQmxvY2st
Pm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSkpOworCisgICAgcmV0dXJuIHJvdW5kTG9jYWxSZWdpc3Rl
ckNvdW50Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3Rl
cnMgKyBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJzKTsKIH0KIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAkocmV2aXNpb24gMTYyOTYx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkFycmF5UHJv
ZmlsZS5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRo
cy5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgogI2lu
Y2x1ZGUgIkhlYXAuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9w
Y29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9w
Y29kZS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRPcGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsMTggQEAK
IAogI2RlZmluZSBGT1JfRUFDSF9MTElOVF9OT0pJVF9OQVRJVkVfSEVMUEVSKG1hY3JvKSBcCiAg
ICAgbWFjcm8oZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSwgMSkgXAotICAgIG1hY3JvKHJldHVybkZy
b21KYXZhU2NyaXB0LCAxKQorICAgIG1hY3JvKGxsaW50X3JldHVybl90b19ob3N0LCAxKSBcCisg
ICAgbWFjcm8obGxpbnRfY2FsbF90b19qYXZhc2NyaXB0LCAxKSBcCisgICAgbWFjcm8obGxpbnRf
Y2FsbF90b19uYXRpdmVfZnVuY3Rpb24sIDEpIFwKKyAgICBtYWNybyhoYW5kbGVVbmNhdWdodEV4
Y2VwdGlvbiwgMSkgXAorICAgIFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zy
b21fanNfMSwgMSkgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc18y
LCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzMsIDEpIFwK
KyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfNCwgMSkgXAorICAgIG1h
Y3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc181LCAxKSBcCisgICAgbWFjcm8obGxp
bnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzYsIDEpIFwKKyAgICBtYWNybyhsbGludF9jbG9v
cF9kaWRfcmV0dXJuX2Zyb21fanNfNywgMSkgXAogCiAjZWxzZSAvLyAhRU5BQkxFKExMSU5UX0Nf
TE9PUCkKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ29t
bW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzRXhjZXB0aW9ucy5oIgor
I2luY2x1ZGUgIkVycm9ySGFuZGxpbmdTY29wZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5o
IgogI2luY2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFsdWUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRl
ci5oIgpAQCAtNTEsNiArNTIsNyBAQAogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIK
ICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
KyNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRh
SW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCkBAIC04Miw3
ICs4NCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgTExJbnQgewogICAgICAgICByZXR1
cm4gZW5jb2RlUmVzdWx0KGZpcnN0LCBzZWNvbmQpOyAgICAgICAgXAogICAgIH0gd2hpbGUgKGZh
bHNlKQogCi0jZGVmaW5lIExMSU5UX0VORF9JTVBMKCkgTExJTlRfUkVUVVJOX1RXTyhwYywgZXhl
YykKKyNkZWZpbmUgTExJTlRfRU5EX0lNUEwoKSBMTElOVF9SRVRVUk5fVFdPKHBjLCAwKQogCiAj
ZGVmaW5lIExMSU5UX1RIUk9XKGV4Y2VwdGlvblRvVGhyb3cpIGRvIHsgICAgICAgICAgICAgICAg
ICAgICAgICBcCiAgICAgICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvblRvVGhy
b3cpOyAgICAgICAgICAgICAgICBcCkBAIC0xMzcsMjIgKzEzOSwyOCBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIExMSW50IHsKICNkZWZpbmUgTExJTlRfQ0FMTF9USFJPVyhleGVjLCBleGNl
cHRpb25Ub1Rocm93KSBkbyB7ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRXhlY1N0YXRl
KiBfX2N0X2V4ZWMgPSAoZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
ICAgICAgICAgdm0udGhyb3dFeGNlcHRpb24oX19jdF9leGVjLCBleGNlcHRpb25Ub1Rocm93KTsg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1QTChfX2N0X2V4ZWMs
IGNhbGxUb1Rocm93KF9fY3RfZXhlYykpOyAgICAgICAgIFwKKyAgICAgICAgTExJTlRfQ0FMTF9F
TkRfSU1QTCgwLCBjYWxsVG9UaHJvdyhfX2N0X2V4ZWMpKTsgICAgICAgICAgICAgICAgIFwKICAg
ICB9IHdoaWxlIChmYWxzZSkKIAogI2RlZmluZSBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihl
eGVjKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBFeGVjU3RhdGUq
IF9fY2NlX2V4ZWMgPSAoZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog
ICAgICAgICBpZiAoVU5MSUtFTFkodm0uZXhjZXB0aW9uKCkpKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1QTChfX2NjZV9l
eGVjLCBjYWxsVG9UaHJvdyhfX2NjZV9leGVjKSk7ICAgXAorICAgICAgICAgICAgTExJTlRfQ0FM
TF9FTkRfSU1QTCgwLCBjYWxsVG9UaHJvdyhfX2NjZV9leGVjKSk7ICAgICAgICAgICAgXAogICAg
IH0gd2hpbGUgKGZhbHNlKQogCiAjZGVmaW5lIExMSU5UX0NBTExfUkVUVVJOKGV4ZWMsIGNhbGxU
YXJnZXQpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEV4ZWNTdGF0ZSog
X19jcl9leGVjID0gKGV4ZWMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgICAgIHZvaWQqIF9fY3JfY2FsbFRhcmdldCA9IChjYWxsVGFyZ2V0KTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgICAgIExMSU5UX0NBTExfQ0hFQ0tfRVhDRVBUSU9OKF9fY3Jf
ZXhlYy0+Y2FsbGVyRnJhbWUoKSk7ICAgICAgICAgICBcCisgICAgICAgIExMSU5UX0NBTExfQ0hF
Q0tfRVhDRVBUSU9OKF9fY3JfZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
ICAgIExMSU5UX0NBTExfRU5EX0lNUEwoX19jcl9leGVjLCBfX2NyX2NhbGxUYXJnZXQpOyAgICAg
ICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKKyNkZWZpbmUgTExJTlRfUkVUVVJO
X0NBTExFRV9GUkFNRShleGVjQ2FsbGVlKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgRXhlY1N0YXRlKiBfX3JjZl9leGVjID0gKGV4ZWNDYWxsZWUpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgTExJTlRfUkVUVVJOX1RXTyhwYywgX19yY2ZfZXhlYyk7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlIChmYWxzZSkKKyAg
ICAKKwogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhY2Vfb3BlcmFuZChF
eGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKiBwYywgaW50IGZyb21XaGVyZSwgaW50IG9wZXJh
bmQpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKQEAgLTI0Miw2ICsyNTAsMTAgQEAgTExJTlRfU0xP
V19QQVRIX0RFQ0wodHJhY2UpCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnRwdHJfdD4ocGMg
LSBleGVjLT5jb2RlQmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSksCiAgICAgICAgICAg
ICBvcGNvZGVOYW1lc1tleGVjLT52bSgpLmludGVycHJldGVyLT5nZXRPcGNvZGVJRChwY1swXS51
Lm9wY29kZSldLAogICAgICAgICAgICAgZXhlYy0+c2NvcGUoKSwgcGMpOworICAgIGlmIChleGVj
LT52bSgpLmludGVycHJldGVyLT5nZXRPcGNvZGVJRChwY1swXS51Lm9wY29kZSkgPT0gb3BfZW50
ZXIpIHsKKyAgICAgICAgZGF0YUxvZ0YoIkZyYW1lIHdpbGwgZXZlbnR1YWxseSByZXR1cm4gdG8g
JXBcbiIsIGV4ZWMtPnJldHVyblBDKCkudmFsdWUoKSk7CisgICAgICAgICpiaXR3aXNlX2Nhc3Q8
dm9sYXRpbGUgY2hhcio+KGV4ZWMtPnJldHVyblBDKCkudmFsdWUoKSk7CisgICAgfQogICAgIGlm
IChleGVjLT52bSgpLmludGVycHJldGVyLT5nZXRPcGNvZGVJRChwY1swXS51Lm9wY29kZSkgPT0g
b3BfcmV0KSB7CiAgICAgICAgIGRhdGFMb2dGKCJXaWxsIGJlIHJldHVybmluZyB0byAlcFxuIiwg
ZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKICAgICAgICAgZGF0YUxvZ0YoIlRoZSBuZXcgY2Zy
IHdpbGwgYmUgJXBcbiIsIGV4ZWMtPmNhbGxlckZyYW1lKCkpOwpAQCAtMzI1LDE1ICszMzcsMTcg
QEAgc3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBlbnRyeU9TUihFeGVjUwogICAgIAogICAgIGlm
ICghc2hvdWxkSklUKGV4ZWMpKSB7CiAgICAgICAgIGNvZGVCbG9jay0+ZG9udEpJVEFueXRpbWVT
b29uKCk7Ci0gICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgZXhlYyk7CisgICAgICAgIExMSU5U
X1JFVFVSTl9UV08oMCwgMCk7CiAgICAgfQogICAgIGlmICghaml0Q29tcGlsZUFuZFNldEhldXJp
c3RpY3MoY29kZUJsb2NrLCBleGVjKSkKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVj
KTsKKyAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsKICAgICAKICAgICBpZiAoa2luZCA9
PSBQcm9sb2d1ZSkKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTyhjb2RlQmxvY2stPmppdENvZGUo
KS0+ZXhlY3V0YWJsZUFkZHJlc3MoKSwgZXhlYyk7CisgICAgICAgIExMSU5UX1JFVFVSTl9UV08o
Y29kZUJsb2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNzKCksIDApOwogICAgIEFTU0VS
VChraW5kID09IEFyaXR5Q2hlY2spOwotICAgIExMSU5UX1JFVFVSTl9UV08oY29kZUJsb2NrLT5q
aXRDb2RlV2l0aEFyaXR5Q2hlY2soKS5leGVjdXRhYmxlQWRkcmVzcygpLCBleGVjKTsKKyAgICBM
TElOVF9SRVRVUk5fVFdPKGNvZGVCbG9jay0+aml0Q29kZSgpLT5hZGRyZXNzRm9yQ2FsbCgKKyAg
ICAgICAgKmNvZGVCbG9jay0+dm0oKSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgTXVz
dENoZWNrQXJpdHksCisgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpLmV4
ZWN1dGFibGVBZGRyZXNzKCksIDApOwogfQogI2Vsc2UgLy8gRU5BQkxFKEpJVCkKIHN0YXRpYyBT
bG93UGF0aFJldHVyblR5cGUgZW50cnlPU1IoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbios
IENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBjaGFyKiwgRW50cnlLaW5kKQpAQCAtMzgxLDEx
ICszOTUsMTEgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0wobG9vcF9vc3IpCiAgICAgCiAgICAgaWYg
KCFzaG91bGRKSVQoZXhlYykpIHsKICAgICAgICAgY29kZUJsb2NrLT5kb250SklUQW55dGltZVNv
b24oKTsKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICAgICAgTExJTlRf
UkVUVVJOX1RXTygwLCAwKTsKICAgICB9CiAgICAgCiAgICAgaWYgKCFqaXRDb21waWxlQW5kU2V0
SGV1cmlzdGljcyhjb2RlQmxvY2ssIGV4ZWMpKQotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAs
IGV4ZWMpOworICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwogICAgIAogICAgIEFTU0VS
VChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7CiAgICAgCkBA
IC0zOTgsMTAgKzQxMiwxMCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChsb29wX29zcikKICAgICB2
b2lkKiBqdW1wVGFyZ2V0ID0gY29kZUJsb2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNz
QXRPZmZzZXQobWFwcGluZy0+bV9tYWNoaW5lQ29kZU9mZnNldCk7CiAgICAgQVNTRVJUKGp1bXBU
YXJnZXQpOwogICAgIAotICAgIExMSU5UX1JFVFVSTl9UV08oanVtcFRhcmdldCwgZXhlYyk7Cisg
ICAgTExJTlRfUkVUVVJOX1RXTyhqdW1wVGFyZ2V0LCBleGVjLT50b3BPZkZyYW1lKCkpOwogI2Vs
c2UgLy8gRU5BQkxFKEpJVCkKICAgICBjb2RlQmxvY2stPmRvbnRKSVRBbnl0aW1lU29vbigpOwot
ICAgIExMSU5UX1JFVFVSTl9UV08oMCwgZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RXTygwLCAw
KTsKICNlbmRpZiAvLyBFTkFCTEUoSklUKQogfQogCkBAIC00MzcsMTMgKzQ1MSwzNCBAQCBMTElO
VF9TTE9XX1BBVEhfREVDTChzdGFja19jaGVjaykKICAgICBkYXRhTG9nRigiTnVtIHZhcnMgPSAl
dS5cbiIsIGV4ZWMtPmNvZGVCbG9jaygpLT5tX251bVZhcnMpOwogICAgIGRhdGFMb2dGKCJDdXJy
ZW50IGVuZCBpcyBhdCAlcC5cbiIsIGV4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5k
KCkpOwogI2VuZGlmCi0gICAgQVNTRVJUKCFleGVjLT52bSgpLmludGVycHJldGVyLT5zdGFjaygp
LmNvbnRhaW5zQWRkcmVzcygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9j
YWwoZXhlYy0+Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKS5vZmZzZXQoKV0pKTsK
LSAgICBpZiAoVU5MSUtFTFkoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJl
Z2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGV4ZWMtPmNvZGVCbG9jaygpLT5tX251
bUNhbGxlZVJlZ2lzdGVycykub2Zmc2V0KCldKSkpIHsKLSAgICAgICAgZXhlYyA9IGV4ZWMtPmNh
bGxlckZyYW1lKCk7Ci0gICAgICAgIENvbW1vblNsb3dQYXRoczo6aW50ZXJwcmV0ZXJUaHJvd0lu
Q2FsbGVyKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7Ci0gICAgICAgIHBj
ID0gcmV0dXJuVG9UaHJvd0ZvclRocm93bkV4Y2VwdGlvbihleGVjKTsKLSAgICB9Ci0gICAgTExJ
TlRfRU5EX0lNUEwoKTsKKworICAgIC8vIFRoaXMgc3RhY2sgY2hlY2sgaXMgZG9uZSBpbiB0aGUg
cHJvbG9ndWUgZm9yIGEgZnVuY3Rpb24gY2FsbCwgYW5kIHRoZQorICAgIC8vIENhbGxGcmFtZSBp
cyBub3QgY29tcGxldGVseSBzZXQgdXAgeWV0LiBGb3IgZXhhbXBsZSwgaWYgdGhlIGZyYW1lIG5l
ZWRzCisgICAgLy8gYW4gYWN0aXZhdGlvbiBvYmplY3QsIHRoZSBhY3RpdmF0aW9uIG9iamVjdCB3
aWxsIG9ubHkgYmUgc2V0IHVwIGFmdGVyCisgICAgLy8gd2Ugc3RhcnQgZXhlY3V0aW5nIHRoZSBm
dW5jdGlvbi4gSWYgd2UgbmVlZCB0byB0aHJvdyBhIFN0YWNrT3ZlcmZsb3dFcnJvcgorICAgIC8v
IGhlcmUsIHRoZW4gd2UgbmVlZCB0byB0ZWxsIHRoZSBwcm9sb2d1ZSB0byBzdGFydCB0aGUgc3Rh
Y2sgdW53aW5kaW5nIGZyb20KKyAgICAvLyB0aGUgY2FsbGVyIGZyYW1lICh3aGljaCBpcyBmdWxs
eSBzZXQgdXApIGluc3RlYWQuIFRvIGRvIHRoYXQsIHdlIHJldHVybgorICAgIC8vIHRoZSBjYWxs
ZXIncyBDYWxsRnJhbWUgaW4gdGhlIHNlY29uZCByZXR1cm4gdmFsdWUuCisgICAgLy8KKyAgICAv
LyBJZiB0aGUgc3RhY2sgY2hlY2sgc3VjY2VlZHMgYW5kIHdlIGRvbid0IG5lZWQgdG8gdGhyb3cg
dGhlIGVycm9yLCB0aGVuCisgICAgLy8gd2UnbGwgcmV0dXJuIDAgaW5zdGVhZC4gVGhlIHByb2xv
Z3VlIHdpbGwgY2hlY2sgZm9yIGEgbm9uLXplcm8gdmFsdWUKKyAgICAvLyB3aGVuIGRldGVybWlu
aW5nIHdoZXRoZXIgdG8gc2V0IHRoZSBjYWxsRnJhbWUgb3Igbm90LgorCisgICAgLy8gRm9yIEpJ
VCBlbmFibGVkIGJ1aWxkcyB3aGljaCB1c2VzIHRoZSBDIHN0YWNrLCB0aGUgc3RhY2sgaXMgbm90
IGdyb3dhYmxlLgorICAgIC8vIEhlbmNlLCBpZiB3ZSBnZXQgaGVyZSwgdGhlbiB3ZSBrbm93IGEg
c3RhY2sgb3ZlcmZsb3cgaXMgaW1taW5lbnQuIFNvLCBqdXN0CisgICAgLy8gdGhyb3cgdGhlIFN0
YWNrT3ZlcmZsb3dFcnJvciB1bmNvbmRpdGlvbmFsbHkuCisjaWYgRU5BQkxFKExMSU5UX0NfTE9P
UCkKKyAgICBBU1NFUlQoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmNvbnRhaW5zQWRkcmVzcyhl
eGVjLT50b3BPZkZyYW1lKCkpKTsKKyAgICBpZiAoTElLRUxZKHZtLmludGVycHJldGVyLT5zdGFj
aygpLmVuc3VyZUNhcGFjaXR5Rm9yKGV4ZWMtPnRvcE9mRnJhbWUoKSkpKQorICAgICAgICBMTElO
VF9SRVRVUk5fVFdPKHBjLCAwKTsKKyNlbmRpZgorCisgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZy
YW1lKCk7CisgICAgdm0udG9wQ2FsbEZyYW1lID0gZXhlYzsKKyAgICBFcnJvckhhbmRsaW5nU2Nv
cGUgZXJyb3JTY29wZSh2bSk7CisgICAgQ29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93
SW5DYWxsZXIoZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKKyAgICBwYyA9
IHJldHVyblRvVGhyb3dGb3JUaHJvd25FeGNlcHRpb24oZXhlYyk7CisgICAgTExJTlRfUkVUVVJO
X1RXTyhwYywgZXhlYyk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jcmVh
dGVfYWN0aXZhdGlvbikKQEAgLTEwNDUsNyArMTA4MCw3IEBAIGlubGluZSBTbG93UGF0aFJldHVy
blR5cGUgc2V0VXBDYWxsKEV4ZWMKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cjsK
ICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IDA7CiAgICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9z
dEZ1bmN0aW9uKCkpCi0gICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5ob3N0Q29kZUVudHJ5
Rm9yKGtpbmQpOworICAgICAgICBjb2RlUHRyID0gZXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcih2
bSwga2luZCwgTXVzdENoZWNrQXJpdHksIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQp
OwogICAgIGVsc2UgewogICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0
YWJsZSA9IHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpOwogICAg
ICAgICBKU09iamVjdCogZXJyb3IgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPnByZXBhcmVGb3JFeGVj
dXRpb24oZXhlY0NhbGxlZSwgY2FsbGVlLT5zY29wZSgpLCBraW5kKTsKQEAgLTEwNTMsMTIgKzEw
ODgsMTYgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBzZXRVcENhbGwoRXhlYwogICAgICAg
ICAgICAgTExJTlRfQ0FMTF9USFJPVyhleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLCBlcnJvcik7
CiAgICAgICAgIGNvZGVCbG9jayA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Y29kZUJsb2NrRm9yKGtp
bmQpOwogICAgICAgICBBU1NFUlQoY29kZUJsb2NrKTsKKyAgICAgICAgQXJpdHlDaGVja01vZGUg
YXJpdHk7CiAgICAgICAgIGlmIChleGVjQ2FsbGVlLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhp
cygpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkpCi0g
ICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5qc0NvZGVXaXRoQXJpdHlD
aGVja0VudHJ5Rm9yKGtpbmQpOworICAgICAgICAgICAgYXJpdHkgPSBNdXN0Q2hlY2tBcml0eTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+
anNDb2RlRW50cnlGb3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9IEFyaXR5Q2hlY2tOb3RS
ZXF1aXJlZDsKKyAgICAgICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+ZW50cnlwb2lu
dEZvcih2bSwga2luZCwgYXJpdHksIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwog
ICAgIH0KICAgICAKKyAgICBBU1NFUlQoISFjb2RlUHRyKTsKKyAgICAKICAgICBpZiAoIUxMSU5U
X0FMV0FZU19BQ0NFU1NfU0xPVyAmJiBjYWxsTGlua0luZm8pIHsKICAgICAgICAgRXhlY1N0YXRl
KiBleGVjQ2FsbGVyID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKICAgICAgICAgCkBAIC0x
MTEwLDE5ICsxMTQ5LDE5IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jb25zdHJ1
Y3QKICAgICByZXR1cm4gZ2VuZXJpY0NhbGwoZXhlYywgcGMsIENvZGVGb3JDb25zdHJ1Y3QpOwog
fQogCi1MTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVf
Zm9yX3ZhcmFyZ3MpCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2l6ZV9mcmFtZV9m
b3JfdmFyYXJncykKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIC8vIFRoaXMgbmVlZHMgdG86
CiAgICAgLy8gLSBTZXQgdXAgYSBjYWxsIGZyYW1lIHdoaWxlIHJlc3BlY3RpbmcgdGhlIHZhcmlh
YmxlIGFyZ3VtZW50cy4KICAgICAKLSAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUgPSBzaXplQW5k
QWxsb2NGcmFtZUZvclZhcmFyZ3MoZXhlYywgJnZtLmludGVycHJldGVyLT5zdGFjaygpLAorICAg
IEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSA9IHNpemVGcmFtZUZvclZhcmFyZ3MoZXhlYywgJnZtLmlu
dGVycHJldGVyLT5zdGFjaygpLAogICAgICAgICBMTElOVF9PUF9DKDQpLmpzVmFsdWUoKSwgcGNb
NV0udS5vcGVyYW5kKTsKICAgICBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihleGVjKTsKICAg
ICAKICAgICB2bS5uZXdDYWxsRnJhbWVSZXR1cm5WYWx1ZSA9IGV4ZWNDYWxsZWU7CiAKLSAgICBM
TElOVF9FTkQoKTsKKyAgICBMTElOVF9SRVRVUk5fQ0FMTEVFX0ZSQU1FKGV4ZWNDYWxsZWUpOwog
fQogCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF92YXJhcmdzKQpAQCAtMTMx
MiwxMyArMTM1MSw2IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wcm9maWxlX2QK
ICAgICBMTElOVF9FTkQoKTsKIH0KIAotTExJTlRfU0xPV19QQVRIX0RFQ0wodGhyb3dfZnJvbV9u
YXRpdmVfY2FsbCkKLXsKLSAgICBMTElOVF9CRUdJTigpOwotICAgIEFTU0VSVCh2bS5leGNlcHRp
b24oKSk7Ci0gICAgTExJTlRfRU5EKCk7Ci19Ci0KIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9oYW5kbGVfZXhjZXB0aW9uKQogewogICAgIExMSU5UX0JFR0lOX05PX1NFVF9QQygpOwpA
QCAtMTM4OCw2ICsxNDIwLDIzIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRf
dG9fc2MKICAgICBMTElOVF9FTkQoKTsKIH0KIAorZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5
cGUgbGxpbnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IoVk0qIHZtLCBQcm90b0NhbGxGcmFt
ZSogcHJvdG9GcmFtZSkKK3sKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSB2bS0+dG9wQ2FsbEZyYW1l
OworICAgIGlmICghZXhlYykKKyAgICAgICAgZXhlYyA9IHByb3RvRnJhbWUtPnNjb3BlKCktPmds
b2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3Io
ZXhlYyk7CisgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKK30KKworI2lmIEVOQUJMRShM
TElOVF9DX0xPT1ApCitleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF9zdGFja19j
aGVja19hdF92bV9lbnRyeShWTSogdm0sIFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQoreworICAg
IGJvb2wgc3VjY2VzcyA9IHZtLT5pbnRlcnByZXRlci0+c3RhY2soKS5lbnN1cmVDYXBhY2l0eUZv
cihuZXdUb3BPZlN0YWNrKTsKKyAgICByZXR1cm4gZW5jb2RlUmVzdWx0KHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KHN1Y2Nlc3MpLCAwKTsKK30KKyNlbmRpZgorCiBleHRlcm4gIkMiIHZvaWQgbGxp
bnRfd3JpdGVfYmFycmllcl9zbG93KEV4ZWNTdGF0ZSosIEpTQ2VsbCogY2VsbCkKIHsKICAgICBI
ZWFwOjp3cml0ZUJhcnJpZXIoY2VsbCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDEyICsz
NiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRXhlY1N0YXRlOwogc3RydWN0IEluc3Ry
dWN0aW9uOworc3RydWN0IFByb3RvQ2FsbEZyYW1lOwogCiBuYW1lc3BhY2UgTExJbnQgewogCiBl
eHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV9vcGVyYW5kKEV4ZWNTdGF0
ZSosIEluc3RydWN0aW9uKiwgaW50IGZyb21XaGVyZSwgaW50IG9wZXJhbmQpOwogZXh0ZXJuICJD
IiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhY2VfdmFsdWUoRXhlY1N0YXRlKiwgSW5zdHJ1
Y3Rpb24qLCBpbnQgZnJvbVdoZXJlLCBpbnQgb3BlcmFuZCk7Ci1leHRlcm4gIkMiIHZvaWQgbGxp
bnRfd3JpdGVfYmFycmllcl9zbG93KEV4ZWNTdGF0ZSosIEpTQ2VsbCopOworZXh0ZXJuICJDIiB2
b2lkIGxsaW50X3dyaXRlX2JhcnJpZXJfc2xvdyhFeGVjU3RhdGUqLCBKU0NlbGwqKSBXVEZfSU5U
RVJOQUw7CiAKICNkZWZpbmUgTExJTlRfU0xPV19QQVRIX0RFQ0wobmFtZSkgXAogICAgIGV4dGVy
biAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50XyMjbmFtZShFeGVjU3RhdGUqIGV4ZWMsIElu
c3RydWN0aW9uKiBwYykKQEAgLTEwMSw3ICsxMDIsNyBAQCBMTElOVF9TTE9XX1BBVEhfSElEREVO
X0RFQ0woc2xvd19wYXRoX25lCiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRo
X25ld19mdW5jX2V4cCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2Nh
bGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jb25zdHJ1Y3QpOwot
TExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9zaXplX2FuZF9hbGxvY19mcmFt
ZV9mb3JfdmFyYXJncyk7CitMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Np
emVfZnJhbWVfZm9yX3ZhcmFyZ3MpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3df
cGF0aF9jYWxsX3ZhcmFyZ3MpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9jYWxsX2V2YWwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90ZWFy
X29mZl9hY3RpdmF0aW9uKTsKQEAgLTExOSwxMSArMTIwLDE0IEBAIExMSU5UX1NMT1dfUEFUSF9I
SURERU5fREVDTChzbG93X3BhdGhfaGEKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfZGVidWcpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wcm9m
aWxlX3dpbGxfY2FsbCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3By
b2ZpbGVfZGlkX2NhbGwpOwotTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHRocm93X2Zyb21f
bmF0aXZlX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9oYW5k
bGVfZXhjZXB0aW9uKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcmVz
b2x2ZV9zY29wZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9m
cm9tX3Njb3BlKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X3Rv
X3Njb3BlKTsKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3Rocm93X3N0YWNr
X292ZXJmbG93X2Vycm9yKFZNKiwgUHJvdG9DYWxsRnJhbWUqKSBXVEZfSU5URVJOQUw7CisjaWYg
RU5BQkxFKExMSU5UX0NfTE9PUCkKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50
X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5KFZNKiwgUmVnaXN0ZXIqKSBXVEZfSU5URVJOQUw7Cisj
ZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTQsNTggKzk0LDE2IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBwcm9ncmFtRW50cnlU
aHVua0cKIAogLy8gTm9uLUpJVCAoaS5lLiBDIExvb3AgTExJTlQpIGNhc2U6CiAKLXR5cGVkZWYg
SlNWYWx1ZSAoKkV4ZWN1dGVDb2RlKSAoQ2FsbEZyYW1lKiwgdm9pZCogZXhlY3V0YWJsZUFkZHJl
c3MpOwotCi10ZW1wbGF0ZTxFeGVjdXRlQ29kZSBleGVjdXRlPgotRW5jb2RlZEpTVmFsdWUgZG9D
YWxsVG9KYXZhU2NyaXB0KHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBQcm90b0NhbGxGcmFtZSog
cHJvdG9DYWxsRnJhbWUpCitFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGV4
ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSkK
IHsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHByb3RvQ2FsbEZyYW1lLT5jb2RlQmxvY2so
KTsKLSAgICBKU1Njb3BlKiBzY29wZSA9IHByb3RvQ2FsbEZyYW1lLT5zY29wZSgpOwotICAgIEpT
T2JqZWN0KiBjYWxsZWUgPSBwcm90b0NhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgaW50IGFyZ0Nv
dW50SW5jbHVkaW5nVGhpcyA9IHByb3RvQ2FsbEZyYW1lLT5hcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcygpOwotICAgIGludCBhcmdDb3VudCA9IHByb3RvQ2FsbEZyYW1lLT5hcmd1bWVudENvdW50
KCk7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBwcm90b0NhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7
Ci0gICAgSlNTdGFjayYgc3RhY2sgPSBzY29wZS0+dm0oKS0+aW50ZXJwcmV0ZXItPnN0YWNrKCk7
Ci0KLSAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IHN0YWNrLnB1c2hGcmFtZShjb2RlQmxv
Y2ssIHNjb3BlLCBhcmdDb3VudEluY2x1ZGluZ1RoaXMsIGNhbGxlZSk7Ci0gICAgaWYgKFVOTElL
RUxZKCFuZXdDYWxsRnJhbWUpKSB7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QgPSBzY29wZS0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKLSAgICB9Ci0KLSAgICAvLyBTZXQgdGhl
IGFyZ3VtZW50cyBmb3IgdGhlIGNhbGxlZToKLSAgICBuZXdDYWxsRnJhbWUtPnNldFRoaXNWYWx1
ZSh0aGlzVmFsdWUpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnQ291bnQ7ICsraSkKLSAg
ICAgICAgbmV3Q2FsbEZyYW1lLT5zZXRBcmd1bWVudChpLCBwcm90b0NhbGxGcmFtZS0+YXJndW1l
bnQoaSkpOwotCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBleGVjdXRlKG5ld0NhbGxGcmFtZSwgZXhl
Y3V0YWJsZUFkZHJlc3MpOwotCi0gICAgc3RhY2sucG9wRnJhbWUobmV3Q2FsbEZyYW1lKTsKLQor
ICAgIEpTVmFsdWUgcmVzdWx0ID0gQ0xvb3A6OmV4ZWN1dGUobGxpbnRfY2FsbF90b19qYXZhc2Ny
aXB0LCBleGVjdXRhYmxlQWRkcmVzcywgdm0sIHByb3RvQ2FsbEZyYW1lKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBleGVj
dXRlSlMoQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzKQot
ewotICAgIE9wY29kZSBlbnRyeU9wY29kZSA9ICpyZWludGVycHJldF9jYXN0PE9wY29kZSo+KCZl
eGVjdXRhYmxlQWRkcmVzcyk7Ci0gICAgcmV0dXJuIENMb29wOjpleGVjdXRlKG5ld0NhbGxGcmFt
ZSwgZW50cnlPcGNvZGUpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZv
aWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqIHByb3Rv
Q2FsbEZyYW1lLCBSZWdpc3RlciopCi17Ci0gICAgcmV0dXJuIGRvQ2FsbFRvSmF2YVNjcmlwdDxl
eGVjdXRlSlM+KGV4ZWN1dGFibGVBZGRyZXNzLCBwcm90b0NhbGxGcmFtZSk7Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBleGVjdXRlTmF0aXZlKENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCB2
b2lkKiBleGVjdXRhYmxlQWRkcmVzcykKK0VuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0
aW9uKHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90
b0NhbGxGcmFtZSkKIHsKLSAgICBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiA9IHJlaW50ZXJwcmV0
X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGV4ZWN1dGFibGVBZGRyZXNzKTsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZGVjb2RlKGZ1bmN0aW9uKG5ld0NhbGxGcmFtZSkpOwotfQotCi1FbmNvZGVkSlNWYWx1
ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgRXhlY1N0YXRl
KiosIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSwgUmVnaXN0ZXIqKQotewotICAgIHJl
dHVybiBkb0NhbGxUb0phdmFTY3JpcHQ8ZXhlY3V0ZU5hdGl2ZT4oZXhlY3V0YWJsZUFkZHJlc3Ms
IHByb3RvQ2FsbEZyYW1lKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IENMb29wOjpleGVjdXRlKGxs
aW50X2NhbGxfdG9fbmF0aXZlX2Z1bmN0aW9uLCBleGVjdXRhYmxlQWRkcmVzcywgdm0sIHByb3Rv
Q2FsbEZyYW1lKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKICNl
bmRpZiAvLyBFTkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50VGh1bmtzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50VGh1bmtzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFRodW5rcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxNiArMzQsMTQgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEV4ZWNTdGF0ZTsKLWNsYXNzIFJlZ2lzdGVyOwogY2xh
c3MgVk07CiBzdHJ1Y3QgUHJvdG9DYWxsRnJhbWU7CiAKIGV4dGVybiAiQyIgewotICAgIEVuY29k
ZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCosIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxG
cmFtZSosIFJlZ2lzdGVyKik7Ci0gICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rp
b24odm9pZCosIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKik7CisgICAg
RW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwgVk0qLCBQcm90b0NhbGxGcmFt
ZSopOworICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqLCBWTSos
IFByb3RvQ2FsbEZyYW1lKik7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICB2b2lkIHJldHVybkZyb21K
YXZhU2NyaXB0KCk7CisgICAgdm9pZCBoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbigpOwogI2VuZGlm
CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyMzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExLCAy
MDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAyLDkgKzEwMiwxMSBAQCBtYWNybyBjQ2FsbDIoZnVu
Y3Rpb24sIGFyZzEsIGFyZzIpCiAgICAgICAgIG1vdmUgYXJnMiwgYTEKICAgICAgICAgY2FsbCBm
dW5jdGlvbgogICAgIGVsc2lmIFg4NgotICAgICAgICBwb2tlIGFyZzEsIDAKLSAgICAgICAgcG9r
ZSBhcmcyLCAxCisgICAgICAgIHN1YnAgOCwgc3AKKyAgICAgICAgcHVzaCBhcmcyCisgICAgICAg
IHB1c2ggYXJnMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAgICAgIGFkZHAgMTYsIHNwCiAg
ICAgZWxzaWYgU0g0CiAgICAgICAgIHNldGFyZ3MgYXJnMSwgYXJnMgogICAgICAgICBjYWxsIGZ1
bmN0aW9uCkBAIC0xMjQsMTEgKzEyNiwxMiBAQCBtYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEs
IGFyZzIsIGFyZzMsCiAgICAgICAgIG1vdmUgYXJnNCwgYTMKICAgICAgICAgY2FsbCBmdW5jdGlv
bgogICAgIGVsc2lmIFg4NgotICAgICAgICBwb2tlIGFyZzEsIDAKLSAgICAgICAgcG9rZSBhcmcy
LCAxCi0gICAgICAgIHBva2UgYXJnMywgMgotICAgICAgICBwb2tlIGFyZzQsIDMKKyAgICAgICAg
cHVzaCBhcmc0CisgICAgICAgIHB1c2ggYXJnMworICAgICAgICBwdXNoIGFyZzIKKyAgICAgICAg
cHVzaCBhcmcxCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KKyAgICAgICAgYWRkcCAxNiwgc3AKICAg
ICBlbHNpZiBTSDQKICAgICAgICAgc2V0YXJncyBhcmcxLCBhcmcyLCBhcmczLCBhcmc0CiAgICAg
ICAgIGNhbGwgZnVuY3Rpb24KQEAgLTE0Miw4NSArMTQ1LDQyIEBAIGVuZAogbWFjcm8gY2FsbFNs
b3dQYXRoKHNsb3dQYXRoKQogICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKICAgICBtb3Zl
IHQwLCBQQwotICAgIG1vdmUgdDEsIGNmcgotZW5kCi0KLW1hY3JvIGZ1bmN0aW9uUHJvbG9ndWUo
ZXh0cmFTdGFja1NwYWNlKQotICAgIGlmIFg4NgotICAgICAgICBwdXNoIGNmcgotICAgICAgICBt
b3ZlIHNwLCBjZnIKLSAgICBlbmQKLSAgICBwdXNoQ2FsbGVlU2F2ZXMKLSAgICBpZiBBUk0gb3Ig
QVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUwotICAgICAgICBwdXNoIGNmcgotICAg
ICAgICBwdXNoIGxyCi0gICAgZW5kCi0gICAgc3VicCBleHRyYVN0YWNrU3BhY2UsIHNwCiBlbmQK
IAotbWFjcm8gZnVuY3Rpb25FcGlsb2d1ZShleHRyYVN0YWNrU3BhY2UpCi0gICAgYWRkcCBleHRy
YVN0YWNrU3BhY2UsIHNwCi0gICAgaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFM
IG9yIE1JUFMKLSAgICAgICAgcG9wIGxyCi0gICAgICAgIHBvcCBjZnIKLSAgICBlbmQKLSAgICBw
b3BDYWxsZWVTYXZlcworbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsKQogICAgIGlm
IFg4NgotICAgICAgICBwb3AgY2ZyCi0gICAgZW5kCi1lbmQKKyAgICAgICAgY29uc3QgZW50cnkg
PSB0NAorICAgICAgICBjb25zdCB2bSA9IHQzCisgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1l
ID0gdDUKIAotbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldHVybikKLSAg
ICBpZiBYODYKLSAgICAgICAgY29uc3QgZW50cnkgPSB0NQotICAgICAgICBjb25zdCB2bVRvcENh
bGxGcmFtZSA9IHQyCi0gICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gdDQKLQotICAgICAg
ICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAyOAogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9
IHQwCiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSB0MQogICAgICAgICBjb25zdCB0ZW1wMSA9
IHQwICMgU2FtZSBhcyBwcmV2aW91c0NGUgogICAgICAgICBjb25zdCB0ZW1wMiA9IHQxICMgU2Ft
ZSBhcyBwcmV2aW91c1BDCi0gICAgICAgIGNvbnN0IHRlbXAzID0gdDIgIyBzYW1lIGFzIHZtVG9w
Q2FsbEZyYW1lCi0gICAgICAgIGNvbnN0IHRlbXA0ID0gdDMKLSAgICBlbHNpZiBBUk0gb3IgQVJN
djdfVFJBRElUSU9OQUwKLSAgICAgICAgY29uc3QgZW50cnkgPSBhMAotICAgICAgICBjb25zdCB2
bVRvcENhbGxGcmFtZSA9IGExCi0gICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKLSAg
ICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCi0KLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1Nw
YWNlID0gMTYKLSAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MwotICAgICAgICBjb25zdCBw
cmV2aW91c1BDID0gbHIKLSAgICAgICAgY29uc3QgdGVtcDEgPSB0MyAjIFNhbWUgYXMgcHJldmlv
dXNDRlIKLSAgICAgICAgY29uc3QgdGVtcDIgPSBhMyAjIFNhbWUgYXMgdG9wT2ZTdGFjawotICAg
ICAgICBjb25zdCB0ZW1wMyA9IHQ0Ci0gICAgICAgIGNvbnN0IHRlbXA0ID0gdDUKLSAgICBlbHNp
ZiBBUk12NworICAgICAgICBjb25zdCB0ZW1wMyA9IHQyCisgICAgICAgIGNvbnN0IHRlbXA0ID0g
dDMgIyBzYW1lIGFzIHZtCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElP
TkFMIG9yIENfTE9PUAogICAgICAgICBjb25zdCBlbnRyeSA9IGEwCi0gICAgICAgIGNvbnN0IHZt
VG9wQ2FsbEZyYW1lID0gYTEKKyAgICAgICAgY29uc3Qgdm0gPSBhMQogICAgICAgICBjb25zdCBw
cm90b0NhbGxGcmFtZSA9IGEyCi0gICAgICAgIGNvbnN0IHRvcE9mU3RhY2sgPSBhMwogCi0gICAg
ICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDI4CiAgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZS
ID0gdDMKICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IGxyCiAgICAgICAgIGNvbnN0IHRlbXAx
ID0gdDMgIyBTYW1lIGFzIHByZXZpb3VzQ0ZSCi0gICAgICAgIGNvbnN0IHRlbXAyID0gYTMgIyBT
YW1lIGFzIHRvcE9mU3RhY2sKLSAgICAgICAgY29uc3QgdGVtcDMgPSB0NAotICAgICAgICBjb25z
dCB0ZW1wNCA9IHQ1CisgICAgICAgIGNvbnN0IHRlbXAyID0gdDQKKyAgICAgICAgY29uc3QgdGVt
cDMgPSB0NQorICAgICAgICBjb25zdCB0ZW1wNCA9IHQ0ICMgU2FtZSBhcyB0ZW1wMgogICAgIGVs
c2lmIE1JUFMKICAgICAgICAgY29uc3QgZW50cnkgPSBhMAogICAgICAgICBjb25zdCB2bVRvcENh
bGxGcmFtZSA9IGExCiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKICAgICAgICAg
Y29uc3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0g
MzYKICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MgogICAgICAgICBjb25zdCBwcmV2aW91
c1BDID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MwotICAgICAgICBjb25zdCB0ZW1wMiA9
IHQ0Ci0gICAgICAgIGNvbnN0IHRlbXAzID0gdDUKKyAgICAgICAgY29uc3QgdGVtcDIgPSB0NQor
ICAgICAgICBjb25zdCB0ZW1wMyA9IHQ0CiAgICAgICAgIGNvbnN0IHRlbXA0ID0gdDYKICAgICBl
bHNpZiBTSDQKICAgICAgICAgY29uc3QgZW50cnkgPSBhMApAQCAtMjI4LDcgKzE4OCw2IEBAIG1h
Y3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXQKICAgICAgICAgY29uc3QgcHJv
dG9DYWxsRnJhbWUgPSBhMgogICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gYTMKIAotICAgICAg
ICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAyMAogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9
IHQzCiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSBscgogICAgICAgICBjb25zdCB0ZW1wMSA9
IHQzICMgU2FtZSBhcyBwcmV2aW91c0NGUgpAQCAtMjM3LDQ5ICsxOTYsNzggQEAgbWFjcm8gZG9D
YWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldAogICAgICAgICBjb25zdCB0ZW1wNCA9IHQ5
CiAgICAgZW5kCiAKKyAgICBjYWxsVG9KYXZhU2NyaXB0UHJvbG9ndWUoKQorCiAgICAgaWYgWDg2
Ci0gICAgICAgIGxvYWRwIFtzcF0sIHByZXZpb3VzUEMKLSAgICAgICAgbW92ZSBjZnIsIHByZXZp
b3VzQ0ZSCi0gICAgZW5kCi0gICAgZnVuY3Rpb25Qcm9sb2d1ZShleHRyYVN0YWNrU3BhY2UpCi0g
ICAgaWYgWDg2Ci0gICAgICAgIGxvYWRwIGV4dHJhU3RhY2tTcGFjZSsyMFtzcF0sIGVudHJ5Ci0g
ICAgICAgIGxvYWRwIGV4dHJhU3RhY2tTcGFjZSsyNFtzcF0sIHZtVG9wQ2FsbEZyYW1lCi0gICAg
ICAgIGxvYWRwIGV4dHJhU3RhY2tTcGFjZSsyOFtzcF0sIHByb3RvQ2FsbEZyYW1lCi0gICAgICAg
IGxvYWRwIGV4dHJhU3RhY2tTcGFjZSszMltzcF0sIGNmcgorICAgICAgICBsb2FkcCAzNltzcF0s
IHZtCisgICAgICAgIGxvYWRwIDMyW3NwXSwgZW50cnkKICAgICBlbHNlCiAgICAgICAgIG1vdmUg
Y2ZyLCBwcmV2aW91c0NGUgotICAgICAgICBtb3ZlIHRvcE9mU3RhY2ssIGNmcgogICAgIGVuZAog
Ci0gICAgc3VicCAoQ2FsbEZyYW1lSGVhZGVyU2xvdHMtMSkqOCwgY2ZyCi0gICAgc3RvcmVwIDAs
IEFyZ3VtZW50Q291bnQrNFtjZnJdCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVt
cDIsIDB4YmFkMGRjMDEpCisKKyAgICAjIFRoZSBzdGFjayByZXNlcnZlZCB6b25lIGVuc3VyZXMg
dGhhdCB3ZSBoYXZlIGFkZXF1YXRlIHNwYWNlIGZvciB0aGUKKyAgICAjIFZNRW50cnlTZW50aW5l
bEZyYW1lLiBQcm9jZWVkIHdpdGggYWxsb2NhdGluZyBhbmQgaW5pdGlhbGl6aW5nIHRoZQorICAg
ICMgc2VudGluZWwgZnJhbWUuCisgICAgbW92ZSBzcCwgY2ZyCisgICAgc3VicCBDYWxsRnJhbWVI
ZWFkZXJTbG90cyAqIDgsIGNmcgogICAgIHN0b3JlcCAwLCBBcmd1bWVudENvdW50W2Nmcl0KLSAg
ICBzdG9yZXAgMCwgQ2FsbGVlKzRbY2ZyXQotICAgIHN0b3JlcCB2bVRvcENhbGxGcmFtZSwgQ2Fs
bGVlW2Nmcl0KLSAgICBsb2FkcCBbdm1Ub3BDYWxsRnJhbWVdLCB0ZW1wNAotICAgIHN0b3JlcCAw
LCBTY29wZUNoYWluKzRbY2ZyXQotICAgIHN0b3JlcCB0ZW1wNCwgU2NvcGVDaGFpbltjZnJdCi0g
ICAgc3RvcmVwIDAsIENvZGVCbG9jays0W2Nmcl0KKyAgICBzdG9yZXAgdm0sIENhbGxlZVtjZnJd
CisgICAgbG9hZHAgVk06OnRvcENhbGxGcmFtZVt2bV0sIHRlbXAyCisgICAgc3RvcmVwIHRlbXAy
LCBTY29wZUNoYWluW2Nmcl0KICAgICBzdG9yZXAgMSwgQ29kZUJsb2NrW2Nmcl0KKyAgICBpZiBY
ODYKKyAgICAgICAgbG9hZHAgMjhbc3BdLCBwcmV2aW91c1BDCisgICAgICAgIGxvYWRwIDI0W3Nw
XSwgcHJldmlvdXNDRlIKKyAgICBlbmQKICAgICBzdG9yZXAgcHJldmlvdXNQQywgUmV0dXJuUENb
Y2ZyXQogICAgIHN0b3JlcCBwcmV2aW91c0NGUiwgQ2FsbGVyRnJhbWVbY2ZyXQotICAgIG1vdmUg
Y2ZyLCB0ZW1wMQorCisgICAgaWYgWDg2CisgICAgICAgIGxvYWRwIDQwW3NwXSwgcHJvdG9DYWxs
RnJhbWUKKyAgICBlbmQKIAogICAgIGxvYWRpIFByb3RvQ2FsbEZyYW1lOjpwYWRkZWRBcmdDb3Vu
dFtwcm90b0NhbGxGcmFtZV0sIHRlbXAyCiAgICAgYWRkcCBDYWxsRnJhbWVIZWFkZXJTbG90cywg
dGVtcDIsIHRlbXAyCiAgICAgbHNoaWZ0cCAzLCB0ZW1wMgotICAgIHN1YnAgdGVtcDIsIGNmcgot
ICAgIHN0b3JlcCB0ZW1wMSwgQ2FsbGVyRnJhbWVbY2ZyXQorICAgIHN1YnAgY2ZyLCB0ZW1wMiwg
dGVtcDEKKworICAgICMgRW5zdXJlIHRoYXQgd2UgaGF2ZSBlbm91Z2ggYWRkaXRpb25hbCBzdGFj
ayBjYXBhY2l0eSBmb3IgdGhlIGluY29taW5nIGFyZ3MsCisgICAgIyBhbmQgdGhlIGZyYW1lIGZv
ciB0aGUgSlMgY29kZSB3ZSdyZSBleGVjdXRpbmcuIFdlIG5lZWQgdG8gZG8gdGhpcyBjaGVjawor
ICAgICMgYmVmb3JlIHdlIHN0YXJ0IGNvcHlpbmcgdGhlIGFyZ3MgZnJvbSB0aGUgcHJvdG9DYWxs
RnJhbWUgYmVsb3cuCisgICAgYnBhZXEgdGVtcDEsIFZNOjptX2pzU3RhY2tMaW1pdFt2bV0sIC5z
dGFja0hlaWdodE9LCisKKyAgICBzdWJwIGNmciwgOCwgc3AKKworICAgIGlmIENfTE9PUAorICAg
ICAgICBtb3ZlIGVudHJ5LCB0ZW1wMgorICAgICAgICBtb3ZlIHZtLCB0ZW1wMworICAgICAgICBj
bG9vcENhbGxTbG93UGF0aCBfbGxpbnRfc3RhY2tfY2hlY2tfYXRfdm1fZW50cnksIHZtLCB0ZW1w
MQorICAgICAgICBicGVxIHQwLCAwLCAuc3RhY2tDaGVja0ZhaWxlZAorICAgICAgICBtb3ZlIHRl
bXAyLCBlbnRyeQorICAgICAgICBtb3ZlIHRlbXAzLCB2bQorICAgICAgICBqbXAgLnN0YWNrSGVp
Z2h0T0sKKworLnN0YWNrQ2hlY2tGYWlsZWQ6CisgICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5Cisg
ICAgICAgIG1vdmUgdGVtcDMsIHZtCisgICAgZW5kCisKKyAgICBjQ2FsbDIoX2xsaW50X3Rocm93
X3N0YWNrX292ZXJmbG93X2Vycm9yLCB2bSwgcHJvdG9DYWxsRnJhbWUpCisgICAgY2FsbFRvSmF2
YVNjcmlwdEVwaWxvZ3VlKCkKKyAgICByZXQKIAorLnN0YWNrSGVpZ2h0T0s6CisgICAgbW92ZSB0
ZW1wMSwgc3AKICAgICBtb3ZlIDUsIHRlbXAxCiAKIC5jb3B5SGVhZGVyTG9vcDoKICAgICBzdWJp
IDEsIHRlbXAxCi0gICAgbG9hZHAgW3Byb3RvQ2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRlbXAzCi0g
ICAgc3RvcmVwIHRlbXAzLCBDb2RlQmxvY2tbY2ZyLCB0ZW1wMSwgOF0KLSAgICBsb2FkcCA0W3By
b3RvQ2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAzLCBDb2RlQmxv
Y2srNFtjZnIsIHRlbXAxLCA4XQorICAgIGxvYWRpIFRhZ09mZnNldFtwcm90b0NhbGxGcmFtZSwg
dGVtcDEsIDhdLCB0ZW1wMworICAgIHN0b3JlaSB0ZW1wMywgVGFnT2Zmc2V0ICsgQ29kZUJsb2Nr
W3NwLCB0ZW1wMSwgOF0KKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W3Byb3RvQ2FsbEZyYW1lLCB0
ZW1wMSwgOF0sIHRlbXAzCisgICAgc3RvcmVpIHRlbXAzLCBQYXlsb2FkT2Zmc2V0ICsgQ29kZUJs
b2NrW3NwLCB0ZW1wMSwgOF0KICAgICBidGlueiB0ZW1wMSwgLmNvcHlIZWFkZXJMb29wCiAKICAg
ICBsb2FkaSBQcm90b0NhbGxGcmFtZTo6YXJnQ291bnRBbmRDb2RlT3JpZ2luVmFsdWVbcHJvdG9D
YWxsRnJhbWVdLCB0ZW1wMgpAQCAtMjg4LDEyICsyNzYsMTAgQEAgbWFjcm8gZG9DYWxsVG9KYXZh
U2NyaXB0KG1ha2VDYWxsLCBkb1JldAogICAgIHN1YmkgMSwgdGVtcDMKIAogICAgIGJpZXEgdGVt
cDIsIHRlbXAzLCAuY29weUFyZ3MKLSAgICBtb3ZlIDAsIHRlbXAxCi0gICAgbW92ZSBVbmRlZmlu
ZWRUYWcsIHRlbXA0CiAuZmlsbEV4dHJhQXJnc0xvb3A6CiAgICAgc3ViaSAxLCB0ZW1wMwotICAg
IHN0b3JlcCB0ZW1wMSwgVGhpc0FyZ3VtZW50T2Zmc2V0KzgrUGF5bG9hZE9mZnNldFtjZnIsIHRl
bXAzLCA4XQotICAgIHN0b3JlcCB0ZW1wNCwgVGhpc0FyZ3VtZW50T2Zmc2V0KzgrVGFnT2Zmc2V0
W2NmciwgdGVtcDMsIDhdCisgICAgc3RvcmVpIFVuZGVmaW5lZFRhZywgVGhpc0FyZ3VtZW50T2Zm
c2V0ICsgOCArIFRhZ09mZnNldFtzcCwgdGVtcDMsIDhdCisgICAgc3RvcmVpIDAsIFRoaXNBcmd1
bWVudE9mZnNldCArIDggKyBQYXlsb2FkT2Zmc2V0W3NwLCB0ZW1wMywgOF0KICAgICBiaW5lcSB0
ZW1wMiwgdGVtcDMsIC5maWxsRXh0cmFBcmdzTG9vcAogCiAuY29weUFyZ3M6CkBAIC0zMDIsNTIg
KzI4OCw4NyBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0CiAuY29w
eUFyZ3NMb29wOgogICAgIGJ0aXogdGVtcDIsIC5jb3B5QXJnc0RvbmUKICAgICBzdWJpIDEsIHRl
bXAyCi0gICAgbG9hZHAgUGF5bG9hZE9mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMwotICAg
IGxvYWRwIFRhZ09mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wNAotICAgIHN0b3JlcCB0ZW1w
MywgVGhpc0FyZ3VtZW50T2Zmc2V0KzgrUGF5bG9hZE9mZnNldFtjZnIsIHRlbXAyLCA4XQotICAg
IHN0b3JlcCB0ZW1wNCwgVGhpc0FyZ3VtZW50T2Zmc2V0KzgrVGFnT2Zmc2V0W2NmciwgdGVtcDIs
IDhdCisgICAgbG9hZGkgVGFnT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCisgICAgc3Rv
cmVpIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgVGFnT2Zmc2V0W3NwLCB0ZW1wMiwg
OF0KKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCisgICAg
c3RvcmVpIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgUGF5bG9hZE9mZnNldFtzcCwg
dGVtcDIsIDhdCiAgICAgam1wIC5jb3B5QXJnc0xvb3AKIAogLmNvcHlBcmdzRG9uZToKLSAgICBp
ZiBYODYKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1NwYWNlKzI0W3NwXSwgdm1Ub3BDYWxsRnJh
bWUKLSAgICBlbmQKLSAgICBzdG9yZXAgY2ZyLCBbdm1Ub3BDYWxsRnJhbWVdCisgICAgc3RvcmVw
IHNwLCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXQogCi0gICAgbWFrZUNhbGwoZW50cnksIHRlbXAxKQor
ICAgIG1ha2VDYWxsKGVudHJ5LCB0ZW1wMSwgdGVtcDIpCiAKICAgICBicGVxIENvZGVCbG9ja1tj
ZnJdLCAxLCAuY2FsbGVlRnJhbWVQb3BwZWQKICAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBj
ZnIKIAogLmNhbGxlZUZyYW1lUG9wcGVkOgotICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0ZW1wMyAj
IFZNLnRvcENhbGxGcmFtZQotICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdGVtcDQKLSAgICBz
dG9yZXAgdGVtcDQsIFt0ZW1wM10KKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGVtcDMgIyBWTQor
ICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdGVtcDQgIyBwcmV2aW91cyB0b3BDYWxsRnJhbWUK
KyAgICBzdG9yZXAgdGVtcDQsIFZNOjp0b3BDYWxsRnJhbWVbdGVtcDNdCiAKLSAgICBkb1JldHVy
bihleHRyYVN0YWNrU3BhY2UpCisgICAgY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKKyAgICBy
ZXQKIGVuZAogCi1tYWNybyBtYWtlSmF2YVNjcmlwdENhbGwoZW50cnksIHRlbXApCi0gICAgY2Fs
bCBlbnRyeQorbWFjcm8gbWFrZUphdmFTY3JpcHRDYWxsKGVudHJ5LCB0ZW1wLCB1bnVzZWQpCisg
ICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKKyAgICBjaGVja1N0YWNrUG9pbnRlckFs
aWdubWVudCh0MiwgMHhiYWQwZGMwMikKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgY2xvb3BDYWxs
SlNGdW5jdGlvbiBlbnRyeQorICAgIGVsc2UKKyAgICAgICAgY2FsbCBlbnRyeQorICAgIGVuZAor
ICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGJhZDBkYzAzKQorICAgIHN1YnAg
Q2FsbGVyRnJhbWVBbmRQQ1NpemUsIHNwCiBlbmQKIAotbWFjcm8gbWFrZUhvc3RGdW5jdGlvbkNh
bGwoZW50cnksIHRlbXApCi0gICAgbW92ZSBlbnRyeSwgdGVtcAotICAgIGlmIFg4NgotICAgICAg
ICAjIFB1dCBjZnIgb24gc3RhY2sgYXMgYXJnMCwgYWxzbyBwdXQgaXQgaW4gZWN4IGZvciAiZmFz
dGNhbGwiIHRhcmdldHMKLSAgICAgICAgcG9rZSBjZnIsIDAKLSAgICAgICAgbW92ZSBjZnIsIHQy
CittYWNybyBtYWtlSG9zdEZ1bmN0aW9uQ2FsbChlbnRyeSwgdGVtcDEsIHRlbXAyKQorICAgIG1v
dmUgZW50cnksIHRlbXAxCisgICAgaWYgQ19MT09QCisgICAgICAgIG1vdmUgc3AsIGEwCisgICAg
ICAgIHN0b3JlcCBjZnIsIFtzcF0KKyAgICAgICAgc3RvcmVwIGxyLCBQdHJTaXplW3NwXQorICAg
ICAgICBjbG9vcENhbGxOYXRpdmUgdGVtcDEKICAgICBlbHNlCi0gICAgICAgIG1vdmUgY2ZyLCBh
MAorICAgICAgICBpZiBYODYKKyAgICAgICAgICAgICMgUHV0IGNhbGxlZSBmcmFtZSBwb2ludGVy
IG9uIHN0YWNrIGFzIGFyZzAsIGFsc28gcHV0IGl0IGluIGVjeCBmb3IgImZhc3RjYWxsIiB0YXJn
ZXRzCisgICAgICAgICAgICBtb3ZlIDAsIHRlbXAyCisgICAgICAgICAgICBtb3ZlIHRlbXAyLCA0
W3NwXSAjIHB1dCAwIGluIFJldHVyblBDCisgICAgICAgICAgICBtb3ZlIGNmciwgW3NwXSAjIHB1
dCBjYWxsZXIgZnJhbWUgcG9pbnRlciBpbnRvIGNhbGxlZSBmcmFtZSBzaW5jZSBjYWxsZWUgcHJv
bG9ndWUgY2FuJ3QKKyAgICAgICAgICAgIG1vdmUgc3AsIHQyICMgdDIgaXMgZWN4CisgICAgICAg
ICAgICBwdXNoIHRlbXAyICMgUHVzaCBkdW1teSBhcmcxCisgICAgICAgICAgICBwdXNoIHQyCisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1vdmUgc3AsIGEwCisgICAgICAgICAgICBhZGRwIENh
bGxlckZyYW1lQW5kUENTaXplLCBzcAorICAgICAgICBlbmQKKyAgICAgICAgY2FsbCB0ZW1wMQor
ICAgICAgICBpZiBYODYKKyAgICAgICAgICAgIGFkZHAgOCwgc3AKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgc3VicCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKKyAgICAgICAgZW5kCiAgICAg
ZW5kCi0gICAgY2FsbCB0ZW1wCiBlbmQKIAotbWFjcm8gZG9SZXR1cm5Gcm9tSmF2YVNjcmlwdChl
eHRyYVN0YWNrU3BhY2UpCi1fcmV0dXJuRnJvbUphdmFTY3JpcHQ6Ci0gICAgZnVuY3Rpb25FcGls
b2d1ZShleHRyYVN0YWNrU3BhY2UpCitfaGFuZGxlVW5jYXVnaHRFeGNlcHRpb246CisgICAgbG9h
ZHAgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDMKKyAgICBhbmRwIE1hcmtlZEJs
b2NrTWFzaywgdDMKKyAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6
bV92bVt0M10sIHQzCisgICAgbG9hZHAgVk06OmNhbGxGcmFtZUZvclRocm93W3QzXSwgY2ZyCisK
KyAgICAjIFNvIGZhciwgd2UndmUgdW53b3VuZCB0aGUgc3RhY2sgdG8gdGhlIGZyYW1lIGp1c3Qg
YmVsb3cgdGhlIHNlbnRpbmVsIGZyYW1lLgorICAgICMgV2UgbmVlZCB0byBwb3AgdG8gdGhlIHNl
bnRpbmVsIGZyYW1lIGFuZCBkbyB0aGUgbmVjZXNzYXJ5IGNsZWFuIHVwIGZvcgorICAgICMgcmV0
dXJuaW5nIHRvIHRoZSBjYWxsZXIgQyBmcmFtZS4KKyAgICBsb2FkcCBDYWxsZXJGcmFtZSArIFBh
eWxvYWRPZmZzZXRbY2ZyXSwgY2ZyCisKKyAgICBsb2FkcCBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0
W2Nmcl0sIHQzICMgVk0KKyAgICBsb2FkcCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtjZnJd
LCB0NSAjIHByZXZpb3VzIHRvcENhbGxGcmFtZQorICAgIHN0b3JlcCB0NSwgVk06OnRvcENhbGxG
cmFtZVt0M10KKworICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCiAgICAgcmV0Ci1lbmQK
IAogbWFjcm8gZG9SZXR1cm5Gcm9tSG9zdEZ1bmN0aW9uKGV4dHJhU3RhY2tTcGFjZSkKICAgICBm
dW5jdGlvbkVwaWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKQEAgLTM3NywxNCArMzk4LDEyIEBAIGVu
ZAogbWFjcm8gY2FsbENhbGxTbG93UGF0aChzbG93UGF0aCwgYWN0aW9uKQogICAgIHN0b3JlcCBQ
QywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCiAgICAgY0NhbGwyKHNsb3dQYXRoLCBj
ZnIsIFBDKQotICAgIG1vdmUgdDEsIGNmcgogICAgIGFjdGlvbih0MCkKIGVuZAogCiBtYWNybyBj
YWxsV2F0Y2hkb2dUaW1lckhhbmRsZXIodGhyb3dIYW5kbGVyKQogICAgIHN0b3JlaSBQQywgQXJn
dW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCiAgICAgY0NhbGwyKF9sbGludF9zbG93X3BhdGhf
aGFuZGxlX3dhdGNoZG9nX3RpbWVyLCBjZnIsIFBDKQotICAgIG1vdmUgdDEsIGNmcgogICAgIGJ0
cG56IHQwLCB0aHJvd0hhbmRsZXIKICAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0
W2Nmcl0sIFBDCiBlbmQKQEAgLTM5NSw4ICs0MTQsOCBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklU
Rm9yTG9vcCgpCiAgICAgICAgIG1hY3JvICgpCiAgICAgICAgICAgICBzdG9yZWkgUEMsIEFyZ3Vt
ZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgICAgICAgICAgY0NhbGwyKF9sbGludF9sb29w
X29zciwgY2ZyLCBQQykKLSAgICAgICAgICAgIG1vdmUgdDEsIGNmcgogICAgICAgICAgICAgYnRw
eiB0MCwgLnJlY292ZXIKKyAgICAgICAgICAgIG1vdmUgdDEsIHNwCiAgICAgICAgICAgICBqbXAg
dDAKICAgICAgICAgLnJlY292ZXI6CiAgICAgICAgICAgICBsb2FkaSBBcmd1bWVudENvdW50ICsg
VGFnT2Zmc2V0W2Nmcl0sIFBDCkBAIC01NTMsMTggKzU3MiwzNCBAQCBlbmQKICMgRW50cnlwb2lu
dHMgaW50byB0aGUgaW50ZXJwcmV0ZXIKIAogIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGlu
IHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLW1hY3JvIGZ1bmN0
aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKK21hY3JvIGZ1bmN0aW9uQXJpdHlD
aGVjayhkb25lTGFiZWwsIHNsb3dQYXRoKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1
bWVudENvdW50W2Nmcl0sIHQwCiAgICAgYmlhZXEgdDAsIENvZGVCbG9jazo6bV9udW1QYXJhbWV0
ZXJzW3QxXSwgZG9uZUxhYmVsCi0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykgICAjIFRo
aXMgc2xvd19wYXRoIGhhcyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0
MCAhPSAwID0+IGVycm9yCi0gICAgYnRpeiB0MCwgLmlzQXJpdHlGaXh1cE5lZWRlZAorICAgIGND
YWxsMihzbG93UGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd1BhdGggaGFzIGEgc2ltcGxlIHBy
b3RvY29sOiB0MCA9IDAgPT4gbm8gZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IKKyAgICBidGl6IHQw
LCAubm9FcnJvcgogICAgIG1vdmUgdDEsIGNmciAgICMgdDEgY29udGFpbnMgY2FsbGVyIGZyYW1l
CiAgICAgam1wIF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCiAKLS5pc0Fy
aXR5Rml4dXBOZWVkZWQ6Cisubm9FcnJvcjoKKyAgICAjIHQxIHBvaW50cyB0byBBcml0eUNoZWNr
RGF0YS4KKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjp0aHVua1Rv
Q2FsbFt0MV0sIHQyCisgICAgYnRweiB0MiwgLnByb2NlZWRJbmxpbmUKKyAgICAKKyAgICBsb2Fk
cCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpyZXR1cm5QQ1t0MV0sIHQ1CisgICAg
bG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cGFkZGVkU3RhY2tTcGFjZVt0
MV0sIHQwCisgICAgY2FsbCB0MgorICAgIGlmIEFTU0VSVF9FTkFCTEVECisgICAgICAgIGxvYWRw
IFJldHVyblBDW2Nmcl0sIHQwCisgICAgICAgIGxvYWRwIFt0MF0sIHQwCisgICAgZW5kCisgICAg
am1wIC5jb250aW51ZQorCisucHJvY2VlZElubGluZToKKyAgICBsb2FkaSBDb21tb25TbG93UGF0
aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3QxXSwgdDEKICAgICBidGl6IHQx
LCAuY29udGludWUKIAotICAgIC8vIE1vdmUgZnJhbWUgdXAgInQxIiBzbG90cworICAgIC8vIE1v
dmUgZnJhbWUgdXAgInQxICogMiIgc2xvdHMKKyAgICBsc2hpZnRwIDEsIHQxCiAgICAgbmVnaSB0
MQogICAgIG1vdmUgY2ZyLCB0MwogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENv
dW50W2Nmcl0sIHQyCkBAIC01ODksNiArNjI0LDcgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNr
KGRvbmVMYWJlbCwgc2xvdwogCiAgICAgbHNoaWZ0cCAzLCB0MQogICAgIGFkZHAgdDEsIGNmcgor
ICAgIGFkZHAgdDEsIHNwCiAuY29udGludWU6CiAgICAgIyBSZWxvYWQgQ29kZUJsb2NrIGFuZCBQ
Qywgc2luY2UgdGhlIHNsb3dfcGF0aCBjbG9iYmVyZWQgaXQuCiAgICAgbG9hZHAgQ29kZUJsb2Nr
W2Nmcl0sIHQxCkBAIC01OTYsNyArNjMyLDYgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRv
bmVMYWJlbCwgc2xvdwogICAgIGptcCBkb25lTGFiZWwKIGVuZAogCi0KIG1hY3JvIGJyYW5jaElm
RXhjZXB0aW9uKGxhYmVsKQogICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICBhbmRw
IE1hcmtlZEJsb2NrTWFzaywgdDMKQEAgLTYxMSw2ICs2NDYsNyBAQCBlbmQKIAogX2xsaW50X29w
X2VudGVyOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdu
bWVudCh0MiwgMHhkZWFkMDBlMSkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIgICAgICAg
ICAgICAgICAgLy8gdDI8Q29kZUJsb2NrPiA9IGNmci5Db2RlQmxvY2sKICAgICBsb2FkaSBDb2Rl
QmxvY2s6Om1fbnVtVmFyc1t0Ml0sIHQyICAgICAgLy8gdDI8c2l6ZV90PiA9IHQyPENvZGVCbG9j
az4ubV9udW1WYXJzCiAgICAgYnRpeiB0MiwgLm9wRW50ZXJEb25lCkBAIC0xOTIwLDEyICsxOTU2
LDExIEBAIG1hY3JvIGRvQ2FsbChzbG93UGF0aCkKICAgICBzdG9yZWkgdDAsIFNjb3BlQ2hhaW4g
KyBQYXlsb2FkT2Zmc2V0W3QzXQogICAgIGxvYWRpIDEyW1BDXSwgdDIKICAgICBzdG9yZWkgUEMs
IEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQotICAgIHN0b3JlcCBjZnIsIENhbGxlckZy
YW1lW3QzXQogICAgIHN0b3JlaSB0MiwgQXJndW1lbnRDb3VudCArIFBheWxvYWRPZmZzZXRbdDNd
CiAgICAgc3RvcmVpIENlbGxUYWcsIENhbGxlZSArIFRhZ09mZnNldFt0M10KICAgICBzdG9yZWkg
Q2VsbFRhZywgU2NvcGVDaGFpbiArIFRhZ09mZnNldFt0M10KLSAgICBtb3ZlIHQzLCBjZnIKLSAg
ICBjYWxsVGFyZ2V0RnVuY3Rpb24odDEpCisgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwg
dDMKKyAgICBjYWxsVGFyZ2V0RnVuY3Rpb24odDEsIHQzKQogCiAub3BDYWxsU2xvdzoKICAgICBz
bG93UGF0aEZvckNhbGwoc2xvd1BhdGgpCkBAIC0yMDM5LDEwICsyMDc0LDEyIEBAIF9sbGludF9v
cF9jYXRjaDoKICAgICAjIHRoZSBpbnRlcnByZXRlcidzIHRocm93IHRyYW1wb2xpbmUgKHNlZSBf
bGxpbnRfdGhyb3dfdHJhbXBvbGluZSkuCiAgICAgIyBUaGUgdGhyb3dpbmcgY29kZSBtdXN0IGhh
dmUga25vd24gdGhhdCB3ZSB3ZXJlIHRocm93aW5nIHRvIHRoZSBpbnRlcnByZXRlciwKICAgICAj
IGFuZCBoYXZlIHNldCBWTTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93LgotICAgIGxvYWRw
IFNjb3BlQ2hhaW5bY2ZyXSwgdDMKKyAgICBsb2FkcCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNl
dFtjZnJdLCB0MwogICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgIGxvYWRwIE1hcmtl
ZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKICAgICBsb2FkcCBWTTo6
Y2FsbEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJD
YWxsKCkKKwogICAgIGxvYWRpIFZNOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3dbdDNdLCBQ
QwogICAgIGxvYWRpIFZNOjptX2V4Y2VwdGlvbiArIFBheWxvYWRPZmZzZXRbdDNdLCB0MAogICAg
IGxvYWRpIFZNOjptX2V4Y2VwdGlvbiArIFRhZ09mZnNldFt0M10sIHQxCkBAIC0yMTE2LDc0ICsy
MTUzLDYyIEBAIF9sbGludF90aHJvd19kdXJpbmdfY2FsbF90cmFtcG9saW5lOgogCiAKIG1hY3Jv
IG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQorCisgICAg
ZnVuY3Rpb25Qcm9sb2d1ZSgpCiAgICAgc3RvcmVwIDAsIENvZGVCbG9ja1tjZnJdCiAgICAgbG9h
ZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgdDAKICAgICBsb2FkaSBTY29wZUNoYWluICsgUGF5bG9hZE9m
ZnNldFt0MF0sIHQxCiAgICAgc3RvcmVpIENlbGxUYWcsIFNjb3BlQ2hhaW4gKyBUYWdPZmZzZXRb
Y2ZyXQogICAgIHN0b3JlaSB0MSwgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2ZyXQogICAg
IGlmIFg4NgotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAg
TWFya2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0
ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCisgICAgICAgIHN1YnAgOCwgc3AgIyBhbGlnbiBzdGFj
ayBwb2ludGVyCisgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MQorICAgICAgICBsb2Fk
cCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0MV0sIHQzCiAgICAgICAg
IHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0gICAgICAgIHBlZWsgMCwgdDEKLSAg
ICAgICAgc3RvcmVwIHQxLCBSZXR1cm5QQ1tjZnJdCiAgICAgICAgIG1vdmUgY2ZyLCB0MiAgIyB0
MiA9IGVjeAotICAgICAgICBzdWJwIDE2IC0gNCwgc3AKKyAgICAgICAgc3RvcmVwIHQyLCBbc3Bd
CiAgICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKICAgICAgICAg
bG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKLSAgICAgICAgbW92ZSB0MCwg
Y2ZyCisgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQwMDAxKQog
ICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotICAgICAgICBhZGRw
IDE2IC0gNCwgc3AKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBh
bmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vh
a1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBB
Uk12N19UUkFESVRJT05BTCBvciBNSVBTIG9yIFNINAogICAgICAgICBsb2FkcCBTY29wZUNoYWlu
W2Nmcl0sIHQzCiAgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2Fk
cCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgICAg
IHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0gICAgICAgIG1vdmUgdDAsIHQyCi0g
ICAgICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKLSAgICAgICAgc3RvcmVw
IHQzLCBSZXR1cm5QQ1tjZnJdCi0gICAgICAgIG1vdmUgY2ZyLCB0MAotICAgICAgICBsb2FkaSBD
YWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCi0gICAgICAgIGxvYWRwIEpTRnVuY3Rpb246
Om1fZXhlY3V0YWJsZVt0MV0sIHQxCi0gICAgICAgIG1vdmUgdDIsIGNmcgorICAgICAgICBhZGRw
IDgsIHNwCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIENf
TE9PUCBvciBNSVBTIG9yIFNINAorICAgICAgICBzdWJwIDgsIHNwICMgYWxpZ24gc3RhY2sgcG9p
bnRlcgorICAgICAgICAjIHQxIGFscmVhZHkgY29udGFpbnMgdGhlIFNjb3BlQ2hhaW4uCisgICAg
ICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MQorICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6
bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0MV0sIHQxCisgICAgICAgIHN0b3JlcCBjZnIsIFZN
Ojp0b3BDYWxsRnJhbWVbdDFdCiAgICAgICAgIGlmIE1JUFMgb3IgU0g0Ci0gICAgICAgICAgICBt
b3ZlIHQwLCBhMAorICAgICAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG1vdmUgY2ZyLCB0MAogICAgICAgICBlbmQKLSAgICAgICAgY2FsbCBleGVjdXRhYmxl
T2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVS
ZXR1cm4odDMpCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5k
cCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtT
ZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICBlbHNpZiBDX0xPT1AKLSAgICAgICAgbG9h
ZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMK
LSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNd
LCB0MwotICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQotICAgICAgICBt
b3ZlIHQwLCB0MgotICAgICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCi0g
ICAgICAgIHN0b3JlcCB0MywgUmV0dXJuUENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDAKICAg
ICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQogICAgICAgICBsb2Fk
cCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQotICAgICAgICBtb3ZlIHQyLCBjZnIK
LSAgICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQot
ICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKKyAgICAgICAgY2hl
Y2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCisgICAgICAgIGlmIENfTE9P
UAorICAgICAgICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9u
W3QxXQorICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1
bmN0aW9uW3QxXQorICAgICAgICBlbmQKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0
MwogICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICAgICAgbG9hZHAgTWFya2Vk
QmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MworICAgICAgICBhZGRwIDgs
IHNwCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZAotICAgIGJpbmVxIFZNOjptX2V4
Y2VwdGlvbiArIFRhZ09mZnNldFt0M10sIEVtcHR5VmFsdWVUYWcsIC5leGNlcHRpb24KKyAgICAK
KyAgICBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICBiaW5lcSBWTTo6bV9leGNlcHRpb24gKyBUYWdP
ZmZzZXRbdDNdLCBFbXB0eVZhbHVlVGFnLCAuaGFuZGxlRXhjZXB0aW9uCiAgICAgcmV0Ci0uZXhj
ZXB0aW9uOgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MSkgIyBUaGlzIGlz
IHJlYWxseSBvbmx5IG5lZWRlZCBvbiBYODYKLSAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFn
T2Zmc2V0W2Nmcl0sIFBDCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF90aHJvd19mcm9tX25hdGl2
ZV9jYWxsKQorCisuaGFuZGxlRXhjZXB0aW9uOgorICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxs
RnJhbWVbdDNdCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCiAgICAgam1wIF9s
bGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCiBlbmQKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20JKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Miw5
ICs1MiwxMCBAQCBtYWNybyBkaXNwYXRjaEFmdGVyQ2FsbCgpCiBlbmQKIAogbWFjcm8gY0NhbGwy
KGZ1bmN0aW9uLCBhcmcxLCBhcmcyKQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQ0
LCAweGJhZDBjMDAyKQogICAgIGlmIFg4Nl82NAotICAgICAgICBtb3ZlIGFyZzEsIHQ1Ci0gICAg
ICAgIG1vdmUgYXJnMiwgdDQKKyAgICAgICAgbW92ZSBhcmcxLCB0NAorICAgICAgICBtb3ZlIGFy
ZzIsIHQ1CiAgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBBUk02NAogICAgICAgICBt
b3ZlIGFyZzEsIHQwCkBAIC02OSw5ICs3MCwxMCBAQCBlbmQKIAogIyBUaGlzIGJhcmVseSB3b3Jr
cy4gYXJnMyBhbmQgYXJnNCBzaG91bGQgcHJvYmFibHkgYmUgaW1tZWRpYXRlcy4KIG1hY3JvIGND
YWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkKKyAgICBjaGVja1N0YWNrUG9p
bnRlckFsaWdubWVudCh0NCwgMHhiYWQwYzAwNCkKICAgICBpZiBYODZfNjQKLSAgICAgICAgbW92
ZSBhcmcxLCB0NQotICAgICAgICBtb3ZlIGFyZzIsIHQ0CisgICAgICAgIG1vdmUgYXJnMSwgdDQK
KyAgICAgICAgbW92ZSBhcmcyLCB0NQogICAgICAgICBtb3ZlIGFyZzMsIHQxCiAgICAgICAgIG1v
dmUgYXJnNCwgdDIKICAgICAgICAgY2FsbCBmdW5jdGlvbgpAQCAtODgsNjYgKzkwLDQ5IEBAIG1h
Y3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywKICAgICBlbmQKIGVuZAogCi1t
YWNybyBmdW5jdGlvblByb2xvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKK21hY3JvIGRvQ2FsbFRvSmF2
YVNjcmlwdChtYWtlQ2FsbCkKICAgICBpZiBYODZfNjQKLSAgICAgICAgcHVzaCBjZnIKLSAgICAg
ICAgbW92ZSBzcCwgY2ZyCi0gICAgZWxzaWYgQVJNNjQKLSAgICAgICAgcHVzaExSQW5kRlAKLSAg
ICBlbmQKLSAgICBwdXNoQ2FsbGVlU2F2ZXMKLSAgICBpZiBYODZfNjQKLSAgICAgICAgc3VicCBl
eHRyYVN0YWNrU3BhY2UsIHNwCi0gICAgZW5kCi1lbmQKLQotbWFjcm8gZnVuY3Rpb25FcGlsb2d1
ZShleHRyYVN0YWNrU3BhY2UpCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIGFkZHAgZXh0cmFTdGFj
a1NwYWNlLCBzcAotICAgIGVuZAotICAgIHBvcENhbGxlZVNhdmVzCi0gICAgaWYgWDg2XzY0Ci0g
ICAgICAgIHBvcCBjZnIKLSAgICBlbHNpZiBBUk02NAotICAgICAgICBwb3BMUkFuZEZQCi0gICAg
ZW5kCi1lbmQKLQotbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldHVybikK
LSAgICBpZiBYODZfNjQKLSAgICAgICAgY29uc3QgZW50cnkgPSB0NQotICAgICAgICBjb25zdCB2
bVRvcENhbGxGcmFtZSA9IHQ0CisgICAgICAgIGNvbnN0IGVudHJ5ID0gdDQKKyAgICAgICAgY29u
c3Qgdm0gPSB0NQogICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IHQxCi0gICAgICAgIGNv
bnN0IHRvcE9mU3RhY2sgPSB0MgogCi0gICAgICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDgK
ICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MAogICAgICAgICBjb25zdCBwcmV2aW91c1BD
ID0gdDYKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MAogICAgICAgICBjb25zdCB0ZW1wMiA9IHQz
CiAgICAgICAgIGNvbnN0IHRlbXAzID0gdDYKLSAgICBlbHNpZiBBUk02NAorICAgIGVsc2lmIEFS
TTY0IG9yIENfTE9PUAogICAgICAgICBjb25zdCBlbnRyeSA9IGEwCi0gICAgICAgIGNvbnN0IHZt
VG9wQ2FsbEZyYW1lID0gYTEKKyAgICAgICAgY29uc3Qgdm0gPSBhMQogICAgICAgICBjb25zdCBw
cm90b0NhbGxGcmFtZSA9IGEyCi0gICAgICAgIGNvbnN0IHRvcE9mU3RhY2sgPSBhMwogCi0gICAg
ICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDAKLSAgICAgICAgY29uc3QgcHJldmlvdXNDRlIg
PSB0NAorICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQ1CiAgICAgICAgIGNvbnN0IHByZXZp
b3VzUEMgPSBscgogICAgICAgICBjb25zdCB0ZW1wMSA9IHQzCi0gICAgICAgIGNvbnN0IHRlbXAy
ID0gdDUKKyAgICAgICAgY29uc3QgdGVtcDIgPSB0NAogICAgICAgICBjb25zdCB0ZW1wMyA9IHQ2
CiAgICAgZW5kCiAKLSAgICBmdW5jdGlvblByb2xvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKKyAgICBj
YWxsVG9KYXZhU2NyaXB0UHJvbG9ndWUoKQorCisgICAgaWYgWDg2XzY0CisgICAgICAgIGxvYWRw
IDcqOFtzcF0sIHByZXZpb3VzUEMKKyAgICAgICAgbW92ZSA2Kjhbc3BdLCBwcmV2aW91c0NGUgor
ICAgIGVsc2lmIEFSTTY0CisgICAgICAgIG1vdmUgY2ZyLCBwcmV2aW91c0NGUgorICAgIGVuZAor
CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDIsIDB4YmFkMGRjMDEpCiAKLSAg
ICBtb3ZlIHRvcE9mU3RhY2ssIGNmcgotICAgIHN1YnAgKENhbGxGcmFtZUhlYWRlclNsb3RzLTEp
KjgsIGNmcgorICAgICMgVGhlIHN0YWNrIHJlc2VydmVkIHpvbmUgZW5zdXJlcyB0aGF0IHdlIGhh
dmUgYWRlcXVhdGUgc3BhY2UgZm9yIHRoZQorICAgICMgVk1FbnRyeVNlbnRpbmVsRnJhbWUuIFBy
b2NlZWQgd2l0aCBhbGxvY2F0aW5nIGFuZCBpbml0aWFsaXppbmcgdGhlCisgICAgIyBzZW50aW5l
bCBmcmFtZS4KKyAgICBtb3ZlIHNwLCBjZnIKKyAgICBzdWJwIENhbGxGcmFtZUhlYWRlclNsb3Rz
ICogOCwgY2ZyCiAgICAgc3RvcmVwIDAsIEFyZ3VtZW50Q291bnRbY2ZyXQotICAgIHN0b3JlcCB2
bVRvcENhbGxGcmFtZSwgQ2FsbGVlW2Nmcl0KLSAgICBsb2FkcCBbdm1Ub3BDYWxsRnJhbWVdLCB0
ZW1wMQotICAgIHN0b3JlcCB0ZW1wMSwgU2NvcGVDaGFpbltjZnJdCisgICAgc3RvcmVwIHZtLCBD
YWxsZWVbY2ZyXQorICAgIGxvYWRwIFZNOjp0b3BDYWxsRnJhbWVbdm1dLCB0ZW1wMgorICAgIHN0
b3JlcCB0ZW1wMiwgU2NvcGVDaGFpbltjZnJdCiAgICAgc3RvcmVwIDEsIENvZGVCbG9ja1tjZnJd
CiAgICAgaWYgWDg2XzY0CiAgICAgICAgIGxvYWRwIDcqOFtzcF0sIHByZXZpb3VzUEMKQEAgLTE1
NSwyMCArMTQwLDQ1IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXQK
ICAgICBlbmQKICAgICBzdG9yZXAgcHJldmlvdXNQQywgUmV0dXJuUENbY2ZyXQogICAgIHN0b3Jl
cCBwcmV2aW91c0NGUiwgQ2FsbGVyRnJhbWVbY2ZyXQotICAgIG1vdmUgY2ZyLCB0ZW1wMQogCiAg
ICAgbG9hZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2FsbEZyYW1lXSwg
dGVtcDIKICAgICBhZGRwIENhbGxGcmFtZUhlYWRlclNsb3RzLCB0ZW1wMiwgdGVtcDIKICAgICBs
c2hpZnRwIDMsIHRlbXAyCi0gICAgc3VicCB0ZW1wMiwgY2ZyCi0gICAgc3RvcmVwIHRlbXAxLCBD
YWxsZXJGcmFtZVtjZnJdCisgICAgc3VicCBjZnIsIHRlbXAyLCB0ZW1wMQogCisgICAgIyBFbnN1
cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlvbmFsIHN0YWNrIGNhcGFjaXR5IGZvciB0aGUg
aW5jb21pbmcgYXJncywKKyAgICAjIGFuZCB0aGUgZnJhbWUgZm9yIHRoZSBKUyBjb2RlIHdlJ3Jl
IGV4ZWN1dGluZy4gV2UgbmVlZCB0byBkbyB0aGlzIGNoZWNrCisgICAgIyBiZWZvcmUgd2Ugc3Rh
cnQgY29weWluZyB0aGUgYXJncyBmcm9tIHRoZSBwcm90b0NhbGxGcmFtZSBiZWxvdy4KKyAgICBi
cGFlcSB0ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0YWNrSGVpZ2h0T0sKKworICAg
IG1vdmUgY2ZyLCBzcAorCisgICAgaWYgQ19MT09QCisgICAgICAgIG1vdmUgZW50cnksIHRlbXAy
CisgICAgICAgIG1vdmUgdm0sIHRlbXAzCisgICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIF9sbGlu
dF9zdGFja19jaGVja19hdF92bV9lbnRyeSwgdm0sIHRlbXAxCisgICAgICAgIGJwZXEgdDAsIDAs
IC5zdGFja0NoZWNrRmFpbGVkCisgICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5CisgICAgICAgIG1v
dmUgdGVtcDMsIHZtCisgICAgICAgIGptcCAuc3RhY2tIZWlnaHRPSworCisuc3RhY2tDaGVja0Zh
aWxlZDoKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAgICAgbW92ZSB0ZW1wMywgdm0K
KyAgICBlbmQKKworICAgIGNDYWxsMihfbGxpbnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3Is
IHZtLCBwcm90b0NhbGxGcmFtZSkKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQorICAg
IHJldAorCisuc3RhY2tIZWlnaHRPSzoKKyAgICBtb3ZlIHRlbXAxLCBzcAogICAgIG1vdmUgNSwg
dGVtcDEKIAogLmNvcHlIZWFkZXJMb29wOgogICAgIHN1YmkgMSwgdGVtcDEKLSAgICBsb2FkcCBb
cHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIENvZGVC
bG9ja1tjZnIsIHRlbXAxLCA4XQorICAgIGxvYWRxIFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhd
LCB0ZW1wMworICAgIHN0b3JlcSB0ZW1wMywgQ29kZUJsb2NrW3NwLCB0ZW1wMSwgOF0KICAgICBi
dGlueiB0ZW1wMSwgLmNvcHlIZWFkZXJMb29wCiAKICAgICBsb2FkaSBQcm90b0NhbGxGcmFtZTo6
YXJnQ291bnRBbmRDb2RlT3JpZ2luVmFsdWVbcHJvdG9DYWxsRnJhbWVdLCB0ZW1wMgpAQCAtMTgw
LDcgKzE5MCw3IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXQKICAg
ICBtb3ZlIFZhbHVlVW5kZWZpbmVkLCB0ZW1wMQogLmZpbGxFeHRyYUFyZ3NMb29wOgogICAgIHN1
YmkgMSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDEsIFRoaXNBcmd1bWVudE9mZnNldCs4W2Nmciwg
dGVtcDMsIDhdCisgICAgc3RvcmVxIHRlbXAxLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4W3NwLCB0
ZW1wMywgOF0KICAgICBiaW5lcSB0ZW1wMiwgdGVtcDMsIC5maWxsRXh0cmFBcmdzTG9vcAogCiAu
Y29weUFyZ3M6CkBAIC0xODksNTMgKzE5OSw5NyBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQo
bWFrZUNhbGwsIGRvUmV0CiAuY29weUFyZ3NMb29wOgogICAgIGJ0aXogdGVtcDIsIC5jb3B5QXJn
c0RvbmUKICAgICBzdWJpIDEsIHRlbXAyCi0gICAgbG9hZHAgW3RlbXAxLCB0ZW1wMiwgOF0sIHRl
bXAzCi0gICAgc3RvcmVwIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQrOFtjZnIsIHRlbXAyLCA4
XQorICAgIGxvYWRxIFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMworICAgIHN0b3JlcSB0ZW1wMywg
VGhpc0FyZ3VtZW50T2Zmc2V0ICsgOFtzcCwgdGVtcDIsIDhdCiAgICAgam1wIC5jb3B5QXJnc0xv
b3AKIAogLmNvcHlBcmdzRG9uZToKLSAgICBzdG9yZXAgY2ZyLCBbdm1Ub3BDYWxsRnJhbWVdCisg
ICAgaWYgQVJNNjQKKyAgICAgICAgbW92ZSBzcCwgdGVtcDIKKyAgICAgICAgc3RvcmVwIHRlbXAy
LCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXQorICAgIGVsc2UKKyAgICAgICAgc3RvcmVwIHNwLCBWTTo6
dG9wQ2FsbEZyYW1lW3ZtXQorICAgIGVuZAogCiAgICAgbW92ZSAweGZmZmYwMDAwMDAwMDAwMDAs
IGNzcjEKICAgICBhZGRwIDIsIGNzcjEsIGNzcjIKIAorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KHRlbXAzLCAweGJhZDBkYzAyKQorCiAgICAgbWFrZUNhbGwoZW50cnksIHRlbXAxKQog
CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDMsIDB4YmFkMGRjMDMpCisKICAg
ICBicGVxIENvZGVCbG9ja1tjZnJdLCAxLCAuY2FsbGVlRnJhbWVQb3BwZWQKICAgICBsb2FkcCBD
YWxsZXJGcmFtZVtjZnJdLCBjZnIKIAogLmNhbGxlZUZyYW1lUG9wcGVkOgotICAgIGxvYWRwIENh
bGxlZVtjZnJdLCB0ZW1wMiAjIFZNLnRvcENhbGxGcmFtZQotICAgIGxvYWRwIFNjb3BlQ2hhaW5b
Y2ZyXSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIFt0ZW1wMl0KKyAgICBsb2FkcCBDYWxsZWVb
Y2ZyXSwgdGVtcDIgIyBWTQorICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdGVtcDMgIyBwcmV2
aW91cyB0b3BDYWxsRnJhbWUKKyAgICBzdG9yZXAgdGVtcDMsIFZNOjp0b3BDYWxsRnJhbWVbdGVt
cDJdCisKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMywgMHhiYWQwZGMwNCkK
IAotICAgIGRvUmV0dXJuKGV4dHJhU3RhY2tTcGFjZSkKKyAgICBpZiBYODZfNjQKKyAgICAgICAg
cG9wIHQ1CisgICAgZW5kCisgICAgY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKKworICAgIHJl
dAogZW5kCiAKKwogbWFjcm8gbWFrZUphdmFTY3JpcHRDYWxsKGVudHJ5LCB0ZW1wKQotICAgIGNh
bGwgZW50cnkKKyAgICBhZGRwIDE2LCBzcAorICAgIGlmIENfTE9PUAorICAgICAgICBjbG9vcENh
bGxKU0Z1bmN0aW9uIGVudHJ5CisgICAgZWxzZQorICAgICAgICBjYWxsIGVudHJ5CisgICAgZW5k
CisgICAgc3VicCAxNiwgc3AKIGVuZAogCisKIG1hY3JvIG1ha2VIb3N0RnVuY3Rpb25DYWxsKGVu
dHJ5LCB0ZW1wKQogICAgIG1vdmUgZW50cnksIHRlbXAKICAgICBpZiBYODZfNjQKLSAgICAgICAg
bW92ZSBjZnIsIHQ1CisgICAgICAgIG1vdmUgc3AsIHQ0CiAgICAgZWxzaWYgQVJNNjQgb3IgQ19M
T09QCi0gICAgICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICBtb3ZlIHNwLCBhMAorICAgIGVuZAor
ICAgIGlmIENfTE9PUAorICAgICAgICBzdG9yZXAgY2ZyLCBbc3BdCisgICAgICAgIHN0b3JlcCBs
ciwgOFtzcF0KKyAgICAgICAgY2xvb3BDYWxsTmF0aXZlIHRlbXAKKyAgICBlbHNlCisgICAgICAg
IGFkZHAgMTYsIHNwIAorICAgICAgICBjYWxsIHRlbXAKKyAgICAgICAgc3VicCAxNiwgc3AKICAg
ICBlbmQKLSAgICBjYWxsIHRlbXAKIGVuZAogCi1tYWNybyBkb1JldHVybkZyb21KYXZhU2NyaXB0
KGV4dHJhU3RhY2tTcGFjZSkKLV9yZXR1cm5Gcm9tSmF2YVNjcmlwdDoKLSAgICBmdW5jdGlvbkVw
aWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICByZXQKLWVuZAogCi1tYWNybyBkb1JldHVybkZy
b21Ib3N0RnVuY3Rpb24oZXh0cmFTdGFja1NwYWNlKQotICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0
cmFTdGFja1NwYWNlKQorX2hhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgorICAgIGxvYWRwIFNjb3Bl
Q2hhaW5bY2ZyXSwgdDMKKyAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKKyAgICBsb2FkcCBN
YXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCisgICAgbG9hZHAg
Vk06OmNhbGxGcmFtZUZvclRocm93W3QzXSwgY2ZyCisKKyAgICAjIFNvIGZhciwgd2UndmUgdW53
b3VuZCB0aGUgc3RhY2sgdG8gdGhlIGZyYW1lIGp1c3QgYmVsb3cgdGhlIHNlbnRpbmVsIGZyYW1l
LCBleGNlcHQKKyAgICAjIGluIHRoZSBjYXNlIG9mIHN0YWNrIG92ZXJmbG93IGluIHRoZSBmaXJz
dCBmdW5jdGlvbiBjYWxsZWQgZnJvbSBjYWxsVG9KYXZhU2NyaXB0LgorICAgICMgQ2hlY2sgaWYg
d2UgbmVlZCB0byBwb3AgdG8gdGhlIHNlbnRpbmVsIGZyYW1lIGFuZCBkbyB0aGUgbmVjZXNzYXJ5
IGNsZWFuIHVwIGZvcgorICAgICMgcmV0dXJuaW5nIHRvIHRoZSBjYWxsZXIgQyBmcmFtZS4KKyAg
ICBicGVxIENvZGVCbG9ja1tjZnJdLCAxLCAuaGFuZGxlVW5jYXVnaHRFeGNlcHRpb25BbHJlYWR5
SXNTZW50aW5lbAorICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgorLmhhbmRsZVVuY2F1
Z2h0RXhjZXB0aW9uQWxyZWFkeUlzU2VudGluZWw6CisKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwg
dDMgIyBWTQorICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDUgIyBwcmV2aW91cyB0b3BDYWxs
RnJhbWUKKyAgICBzdG9yZXAgdDUsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCisKKyAgICBjYWxsVG9K
YXZhU2NyaXB0RXBpbG9ndWUoKQogICAgIHJldAotZW5kCisKIAogbWFjcm8gcHJlcGFyZVN0YXRl
Rm9yQ0NhbGwoKQogICAgIGxlYXAgW1BCLCBQQywgOF0sIFBDCkBAIC0yNDQsNyArMjk4LDYgQEAg
ZW5kCiAKIG1hY3JvIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQogICAgIG1vdmUgdDAsIFBDCi0g
ICAgbW92ZSB0MSwgY2ZyCiAgICAgbW92ZSB0MywgUEIKICAgICBzdWJwIFBCLCBQQwogICAgIHJz
aGlmdHAgMywgUEMKQEAgLTI3Myw3ICszMjYsNiBAQCBtYWNybyBjYWxsQ2FsbFNsb3dQYXRoKHNs
b3dQYXRoLCBhY3Rpb24pCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0
W2Nmcl0KICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCiAgICAgY0NhbGwyKHNsb3dQYXRoLCBj
ZnIsIFBDKQotICAgIG1vdmUgdDEsIGNmcgogICAgIGFjdGlvbih0MCkKIGVuZAogCkBAIC0yODEs
NyArMzMzLDYgQEAgbWFjcm8gY2FsbFdhdGNoZG9nVGltZXJIYW5kbGVyKHRocm93SGFuZAogICAg
IHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCiAgICAgcHJlcGFyZVN0
YXRlRm9yQ0NhbGwoKQogICAgIGNDYWxsMihfbGxpbnRfc2xvd19wYXRoX2hhbmRsZV93YXRjaGRv
Z190aW1lciwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBidHBueiB0MCwgdGhyb3dI
YW5kbGVyCiAgICAgbW92ZSB0MywgUEIKICAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0sIFBDCkBAIC0yOTQsOCArMzQ1LDggQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZv
ckxvb3AoKQogICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0
W2Nmcl0KICAgICAgICAgICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKICAgICAgICAgICAgIGND
YWxsMihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCi0gICAgICAgICAgICBtb3ZlIHQxLCBjZnIK
ICAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisgICAgICAgICAgICBtb3ZlIHQxLCBzcAog
ICAgICAgICAgICAgam1wIHQwCiAgICAgICAgIC5yZWNvdmVyOgogICAgICAgICAgICAgbW92ZSB0
MywgUEIKQEAgLTM4NywxOSArNDM4LDM1IEBAIGVuZAogIyBFbnRyeXBvaW50cyBpbnRvIHRoZSBp
bnRlcnByZXRlci4KIAogIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBp
cyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLW1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVj
ayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKK21hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFi
ZWwsIHNsb3dQYXRoKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50W2Nm
cl0sIHQwCiAgICAgYmlhZXEgdDAsIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3QxXSwgZG9u
ZUxhYmVsCiAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQotICAgIGNDYWxsMihzbG93X3BhdGgs
IGNmciwgUEMpICAgIyBUaGlzIHNsb3dfcGF0aCBoYXMgYSBzaW1wbGUgcHJvdG9jb2w6IHQwID0g
MCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgotICAgIGJ0aXogdDAsIC5pc0FyaXR5Rml4
dXBOZWVkZWQKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dQYXRo
IGhhcyB0aGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgor
ICAgIGJ0aXogdDAsIC5ub0Vycm9yCiAgICAgbW92ZSB0MSwgY2ZyICAgIyB0MSBjb250YWlucyBj
YWxsZXIgZnJhbWUKICAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xp
bmUKIAotLmlzQXJpdHlGaXh1cE5lZWRlZDoKKy5ub0Vycm9yOgorICAgICMgdDEgcG9pbnRzIHRv
IEFyaXR5Q2hlY2tEYXRhLgorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0Rh
dGE6OnRodW5rVG9DYWxsW3QxXSwgdDIKKyAgICBidHB6IHQyLCAucHJvY2VlZElubGluZQorICAg
IAorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnJldHVyblBDW3Qx
XSwgdDUKKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRT
dGFja1NwYWNlW3QxXSwgdDAKKyAgICBjYWxsIHQyCisgICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAg
ICAgICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDAKKyAgICAgICAgbG9hZHAgW3QwXSwgdDAKKyAg
ICBlbmQKKyAgICBqbXAgLmNvbnRpbnVlCisKKy5wcm9jZWVkSW5saW5lOgorICAgIGxvYWRpIENv
bW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MQog
ICAgIGJ0aXogdDEsIC5jb250aW51ZQogCi0gICAgLy8gTW92ZSBmcmFtZSB1cCAidDEiIHNsb3Rz
CisgICAgLy8gTW92ZSBmcmFtZSB1cCAidDEgKiAyIiBzbG90cworICAgIGxzaGlmdHAgMSwgdDEK
ICAgICBuZWdxIHQxCiAgICAgbW92ZSBjZnIsIHQzCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCAr
IEFyZ3VtZW50Q291bnRbY2ZyXSwgdDIKQEAgLTQyMCw2ICs0ODcsNyBAQCBtYWNybyBmdW5jdGlv
bkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAKICAgICBsc2hpZnRwIDMsIHQxCiAgICAgYWRk
cCB0MSwgY2ZyCisgICAgYWRkcCB0MSwgc3AKIAogLmNvbnRpbnVlOgogICAgICMgUmVsb2FkIENv
ZGVCbG9jayBhbmQgcmVzZXQgUEMsIHNpbmNlIHRoZSBzbG93X3BhdGggY2xvYmJlcmVkIHRoZW0u
CkBAIC00MjksNyArNDk3LDYgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwg
c2xvdwogICAgIGptcCBkb25lTGFiZWwKIGVuZAogCi0KIG1hY3JvIGJyYW5jaElmRXhjZXB0aW9u
KGxhYmVsKQogICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICBhbmRwIE1hcmtlZEJs
b2NrTWFzaywgdDMKQEAgLTQ0NCw2ICs1MTEsNyBAQCBlbmQKIAogX2xsaW50X29wX2VudGVyOgog
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0Miwg
MHhkZWFkMDBlMSkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIgICAgICAgICAgICAgICAg
Ly8gdDI8Q29kZUJsb2NrPiA9IGNmci5Db2RlQmxvY2sKICAgICBsb2FkaSBDb2RlQmxvY2s6Om1f
bnVtVmFyc1t0Ml0sIHQyICAgICAgLy8gdDI8c2l6ZV90PiA9IHQyPENvZGVCbG9jaz4ubV9udW1W
YXJzCiAgICAgYnRpeiB0MiwgLm9wRW50ZXJEb25lCkBAIC0xNzE3LDEwICsxNzg1LDkgQEAgbWFj
cm8gZG9DYWxsKHNsb3dQYXRoKQogICAgIHN0b3JlcSB0MCwgU2NvcGVDaGFpblt0M10KICAgICBs
b2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMywgdDIpCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50
ICsgVGFnT2Zmc2V0W2Nmcl0KLSAgICBzdG9yZXEgY2ZyLCBDYWxsZXJGcmFtZVt0M10KICAgICBz
dG9yZWkgdDIsIEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W3QzXQotICAgIG1vdmUgdDMs
IGNmcgotICAgIGNhbGxUYXJnZXRGdW5jdGlvbih0MSkKKyAgICBhZGRwIENhbGxlckZyYW1lQW5k
UENTaXplLCB0MworICAgIGNhbGxUYXJnZXRGdW5jdGlvbih0MSwgdDMpCiAKIC5vcENhbGxTbG93
OgogICAgIHNsb3dQYXRoRm9yQ2FsbChzbG93UGF0aCkKQEAgLTE4NDAsNiArMTkwNyw4IEBAIF9s
bGludF9vcF9jYXRjaDoKICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICBsb2FkcCBN
YXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCiAgICAgbG9hZHAg
Vk06OmNhbGxGcmFtZUZvclRocm93W3QzXSwgY2ZyCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFm
dGVyQ2FsbCgpCisKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIKICAgICBsb2FkcCBDb2Rl
QmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BCXSwgUEIKICAgICBsb2FkcCBWTTo6dGFyZ2V0SW50ZXJw
cmV0ZXJQQ0ZvclRocm93W3QzXSwgUEMKQEAgLTE4NzksNiArMTk0OCw4IEBAIF9sbGludF90aHJv
d19kdXJpbmdfY2FsbF90cmFtcG9saW5lOgogCiAKIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5l
KGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQorCisgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCiAg
ICAgc3RvcmVwIDAsIENvZGVCbG9ja1tjZnJdCiAgICAgaWYgWDg2XzY0CiAgICAgICAgIGxvYWRw
IFNjb3BlQ2hhaW5bY2ZyXSwgdDAKQEAgLTE4ODgsMTkgKzE5NTksMTUgQEAgbWFjcm8gbmF0aXZl
Q2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZgogICAgICAgICBsb2FkcCBDYWxsZXJGcmFtZVtj
ZnJdLCB0MAogICAgICAgICBsb2FkcSBTY29wZUNoYWluW3QwXSwgdDEKICAgICAgICAgc3RvcmVx
IHQxLCBTY29wZUNoYWluW2Nmcl0KLSAgICAgICAgcGVlayAwLCB0MQotICAgICAgICBzdG9yZXAg
dDEsIFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQ1ICAjIHQ1ID0gcmRpCi0gICAg
ICAgIHN1YnAgMTYgLSA4LCBzcAotICAgICAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDQgIyB0NCA9
IHJzaQotICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDRdLCB0MQotICAg
ICAgICBtb3ZlIHQwLCBjZnIgIyBSZXN0b3JlIGNmciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3Rh
Y2sKKyAgICAgICAgbW92ZSBjZnIsIHQ0ICAjIHQ0ID0gcmRpCisgICAgICAgIGxvYWRwIENhbGxl
ZVtjZnJdLCB0NSAjIHQ1ID0gcnNpCisgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0
YWJsZVt0NV0sIHQxCisgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRl
YWQwMDAxKQogICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotICAg
ICAgICBhZGRwIDE2IC0gOCwgc3AKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0Mwog
ICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICAgICAgbG9hZHAgTWFya2VkQmxv
Y2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgIGVsc2lmIEFSTTY0Cisg
ICAgZWxzaWYgQVJNNjQgb3IgQ19MT09QCiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwg
dDAKICAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQwCiAgICAgICAgIGxvYWRwIE1hcmtl
ZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QwXSwgdDAKQEAgLTE5MTQsMzAgKzE5
ODEsMTEgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZgogICAgICAg
ICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKICAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVj
dXRhYmxlW3QxXSwgdDEKICAgICAgICAgbW92ZSB0MiwgY2ZyICMgUmVzdG9yZSBjZnIgdG8gYXZv
aWQgbG9hZGluZyBmcm9tIHN0YWNrCi0gICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVu
Y3Rpb25bdDFdCi0gICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQot
ICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFya2VkQmxv
Y2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1Nl
dDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGxvYWRwIENhbGxlckZy
YW1lW2Nmcl0sIHQwCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bdDBdLCB0MQotICAgICAgICBz
dG9yZXAgdDEsIFNjb3BlQ2hhaW5bY2ZyXQotCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2Zy
XSwgdDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1h
cmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICAgICAgc3Rv
cmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KLQotICAgICAgICBtb3ZlIHQwLCB0MgotICAg
ICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCi0gICAgICAgIHN0b3JlcCB0
MywgUmV0dXJuUENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDAKLSAgICAgICAgbG9hZHAgQ2Fs
bGVlW2Nmcl0sIHQxCi0gICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0s
IHQxCi0gICAgICAgIG1vdmUgdDIsIGNmcgotICAgICAgICBjbG9vcENhbGxOYXRpdmUgZXhlY3V0
YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0KKyAgICAgICAgaWYgQ19MT09QCisgICAgICAgICAg
ICBjbG9vcENhbGxOYXRpdmUgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisg
ICAgICAgIGVuZAogICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykK
ICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwogICAgICAgICBhbmRwIE1hcmtlZEJs
b2NrTWFzaywgdDMKQEAgLTE5NDYsMTYgKzE5OTQsMTQgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1w
b2xpbmUoZXhlY3V0YWJsZU9mZgogICAgICAgICBlcnJvcgogICAgIGVuZAogCi0gICAgYnRxbnog
Vk06Om1fZXhjZXB0aW9uW3QzXSwgLmV4Y2VwdGlvbgorICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQor
CisgICAgYnRxbnogVk06Om1fZXhjZXB0aW9uW3QzXSwgLmhhbmRsZUV4Y2VwdGlvbgogICAgIHJl
dAotLmV4Y2VwdGlvbjoKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDEpICMg
VGhpcyBpcyByZWFsbHkgb25seSBuZWVkZWQgb24gWDg2XzY0Ci0gICAgbG9hZGkgQXJndW1lbnRD
b3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgot
ICAgIGxvYWRwIENvZGVCbG9jazo6bV92bVtQQl0sIHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjpt
X2luc3RydWN0aW9uc1tQQl0sIFBCCi0gICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0
MF0KLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2NhbGwpCisKKy5o
YW5kbGVFeGNlcHRpb246CisgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KKyAg
ICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBqbXAgX2xsaW50X3Rocm93X2Zy
b21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIGVuZAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAxNjI5
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20JKHdvcmtpbmcgY29weSkKQEAgLTM4LDkgKzM4LDEyIEBAIGNvbnN0IENhbGxGcmFtZUhlYWRl
clNsb3RzID0gNgogZWxzZQogY29uc3QgUHRyU2l6ZSA9IDQKIGNvbnN0IENhbGxGcmFtZUhlYWRl
clNsb3RzID0gNQorY29uc3QgQ2FsbEZyYW1lQWxpZ25TbG90cyA9IDEKIGVuZAogY29uc3QgU2xv
dFNpemUgPSA4CiAKK2NvbnN0IENhbGxlckZyYW1lQW5kUENTaXplID0gMiAqIFB0clNpemUKKwog
Y29uc3QgQ2FsbGVyRnJhbWUgPSAwCiBjb25zdCBSZXR1cm5QQyA9IENhbGxlckZyYW1lICsgUHRy
U2l6ZQogY29uc3QgQ29kZUJsb2NrID0gUmV0dXJuUEMgKyBQdHJTaXplCkBAIC03MSw2ICs3NCwx
NiBAQCBjb25zdCBEZWxldGVkVmFsdWVUYWcgPSAtNwogY29uc3QgTG93ZXN0VGFnID0gRGVsZXRl
ZFZhbHVlVGFnCiBlbmQKIAoraWYgWDg2XzY0IG9yIEFSTTY0IG9yIENfTE9PUAorY29uc3QgbWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAwCitlbHNpZiBBUk0gb3IgQVJNdjdfVFJBRElU
SU9OQUwgb3IgQVJNdjcgb3IgU0g0Citjb25zdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCA9IDI0CitlbHNpZiBYODYKK2NvbnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0g
NDAKK2Vsc2lmIE1JUFMKK2NvbnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDAK
K2VuZAorCiAjIFdhdGNocG9pbnQgc3RhdGVzCiBjb25zdCBDbGVhcldhdGNocG9pbnQgPSAwCiBj
b25zdCBJc1dhdGNoZWQgPSAxCkBAIC04NSw3ICs5OCw3IEBAIGlmIEpTVkFMVUU2NAogICAgICMg
ICB0byBDIGZ1bmN0aW9ucy4KICAgICAjIC0gQyBjYWxscyBhcmUgc3RpbGwgZ2l2ZW4gdGhlIElu
c3RydWN0aW9uKiByYXRoZXIgdGhhbiB0aGUgUEMgaW5kZXguCiAgICAgIyAgIFRoaXMgcmVxdWly
ZXMgYW4gYWRkIGJlZm9yZSB0aGUgY2FsbCwgYW5kIGEgc3ViIGFmdGVyLgotICAgIGNvbnN0IFBD
ID0gdDQKKyAgICBjb25zdCBQQyA9IHQ1CiAgICAgY29uc3QgUEIgPSB0NgogICAgIGNvbnN0IHRh
Z1R5cGVOdW1iZXIgPSBjc3IxCiAgICAgY29uc3QgdGFnTWFzayA9IGNzcjIKQEAgLTEwMyw3ICsx
MTYsNyBAQCBpZiBKU1ZBTFVFNjQKICAgICBlbmQKIAogZWxzZQotICAgIGNvbnN0IFBDID0gdDQK
KyAgICBjb25zdCBQQyA9IHQ1CiAgICAgbWFjcm8gbG9hZGlzRnJvbUluc3RydWN0aW9uKG9mZnNl
dCwgZGVzdCkKICAgICAgICAgbG9hZGlzIG9mZnNldCAqIDRbUENdLCBkZXN0CiAgICAgZW5kCkBA
IC0yMTAsNiArMjIzLDUyIEBAIG1hY3JvIGFzc2VydChhc3NlcnRpb24pCiAgICAgZW5kCiBlbmQK
IAorbWFjcm8gY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcFJlZywgbG9jYXRpb24pCisg
ICAgaWYgQVJNNjQgb3IgQ19MT09QCisgICAgICAgICMgQVJNNjQgd2lsbCBjaGVjayBmb3IgdXMh
CisgICAgICAgICMgQ19MT09QIGRvZXMgbm90IG5lZWQgdGhlIGFsaWdubWVudCwgYW5kIGNhbiB1
c2UgYSBsaXR0bGUgcGVyZgorICAgICAgICAjIGltcHJvdmVtZW50IGZyb20gYXZvaWRpbmcgdXNl
bGVzcyB3b3JrLgorICAgIGVsc2UKKyAgICAgICAgaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RS
QURJVElPTkFMCisgICAgICAgICAgICAjIEFSTSBjYW4ndCBkbyBsb2dpY2FsIG9wcyB3aXRoIHRo
ZSBzcCBhcyBhIHNvdXJjZQorICAgICAgICAgICAgbW92ZSBzcCwgdGVtcFJlZworICAgICAgICAg
ICAgYW5kcCAweGYsIHRlbXBSZWcKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYW5kcCBzcCwg
MHhmLCB0ZW1wUmVnCisgICAgICAgIGVuZAorICAgICAgICBidHB6IHRlbXBSZWcsIC5zdGFja1Bv
aW50ZXJPa2F5CisgICAgICAgIG1vdmUgbG9jYXRpb24sIHRlbXBSZWcKKyAgICAgICAgYnJlYWsK
KyAgICAuc3RhY2tQb2ludGVyT2theToKKyAgICBlbmQKK2VuZAorCittYWNybyBwcmVzZXJ2ZUNh
bGxlclBDQW5kQ0ZSKCkKKyAgICBpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RS
QURJVElPTkFMIG9yIE1JUFMgb3IgU0g0CisgICAgICAgIHB1c2ggbHIKKyAgICAgICAgcHVzaCBj
ZnIKKyAgICBlbHNpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHB1c2ggY2ZyCisgICAgZWxzaWYg
QVJNNjQKKyAgICAgICAgcHVzaExSQW5kRlAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAg
ZW5kCisgICAgbW92ZSBzcCwgY2ZyCitlbmQKKworbWFjcm8gcmVzdG9yZUNhbGxlclBDQW5kQ0ZS
KCkKKyAgICBtb3ZlIGNmciwgc3AKKyAgICBpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFS
TXY3X1RSQURJVElPTkFMIG9yIE1JUFMgb3IgU0g0CisgICAgICAgIHBvcCBjZnIKKyAgICAgICAg
cG9wIGxyCisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwb3AgY2ZyCisgICAgZWxz
aWYgQVJNNjQKKyAgICAgICAgcG9wTFJBbmRGUAorICAgIGVuZAorZW5kCisKIG1hY3JvIHByZXNl
cnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlvblJlZ2lzdGVyKQogICAgIGlmIENf
TE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgQVJNNjQgb3IgTUlQ
UyBvciBTSDQKICAgICAgICAgIyBJbiBDX0xPT1AgY2FzZSwgd2UncmUgb25seSBwcmVzZXJ2aW5n
IHRoZSBieXRlY29kZSB2UEMuCkBAIC0yMzIsMzEgKzI5MSwxMjIgQEAgbWFjcm8gcmVzdG9yZVJl
dHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocwogICAgIGVuZAogZW5kCiAKK21hY3JvIGZ1bmN0aW9u
UHJvbG9ndWUoKQorICAgIGlmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcHVzaCBjZnIKKyAgICBl
bHNpZiBBUk02NAorICAgICAgICBwdXNoTFJBbmRGUAorICAgIGVsc2lmIENfTE9PUCBvciBBUk0g
b3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUworICAgICAgICBwdXNoIGxyCisg
ICAgICAgIHB1c2ggY2ZyCisgICAgZW5kCisgICAgbW92ZSBzcCwgY2ZyCitlbmQKKworbWFjcm8g
ZnVuY3Rpb25FcGlsb2d1ZSgpCisgICAgaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwb3AgY2Zy
CisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAgcG9wTFJBbmRGUAorICAgIGVsc2lmIENfTE9PUCBv
ciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUworICAgICAgICBwb3Ag
Y2ZyCisgICAgICAgIHBvcCBscgorICAgIGVuZAorZW5kCisKK21hY3JvIGNhbGxUb0phdmFTY3Jp
cHRQcm9sb2d1ZSgpCisgICAgaWYgWDg2XzY0CisgICAgICAgIHB1c2ggY2ZyCisgICAgICAgIHB1
c2ggdDAKKyAgICBlbHNpZiBYODYKKyAgICAgICAgcHVzaCBjZnIKKyAgICBlbHNpZiBBUk02NAor
ICAgICAgICBwdXNoTFJBbmRGUAorICAgIGVsc2lmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3Ig
QVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUworICAgICAgICBwdXNoIGxyCisgICAgICAgIHB1c2gg
Y2ZyCisgICAgZW5kCisgICAgcHVzaENhbGxlZVNhdmVzCisgICAgaWYgWDg2CisgICAgICAgIHN1
YnAgMTIsIHNwCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMCisg
ICAgICAgIHN1YnAgNCwgc3AKKyAgICAgICAgbW92ZSBzcCwgdDQKKyAgICAgICAgY2xyYnAgdDQs
IDB4ZiwgdDUKKyAgICAgICAgbW92ZSB0NSwgc3AKKyAgICAgICAgc3RvcmVwIHQ0LCBbc3BdCisg
ICAgZW5kCitlbmQKKworbWFjcm8gY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKKyAgICBhZGRw
IENhbGxGcmFtZUhlYWRlclNsb3RzICogOCwgY2ZyLCBzcAorICAgIGxvYWRwIENhbGxlckZyYW1l
W2Nmcl0sIGNmcgorCisgICAgaWYgWDg2CisgICAgICAgIGFkZHAgMTIsIHNwCisgICAgZWxzaWYg
QVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMCisgICAgICAgIHBvcCB0NAorICAgICAg
ICBtb3ZlIHQ0LCBzcAorICAgICAgICBhZGRwIDQsIHNwCisgICAgZW5kCisKKyAgICBwb3BDYWxs
ZWVTYXZlcworICAgIGlmIFg4Nl82NAorICAgICAgICBwb3AgdDIKKyAgICAgICAgcG9wIGNmcgor
ICAgIGVsc2lmIFg4NgorICAgICAgICBwb3AgY2ZyCisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAg
cG9wTFJBbmRGUAorICAgIGVsc2lmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJB
RElUSU9OQUwgb3IgTUlQUworICAgICAgICBwb3AgY2ZyCisgICAgICAgIHBvcCBscgorICAgIGVu
ZAorZW5kCisKK21hY3JvIG1vdmVTdGFja1BvaW50ZXJGb3JDb2RlQmxvY2soY29kZUJsb2NrLCBz
Y3JhdGNoKQorICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbY29kZUJs
b2NrXSwgc2NyYXRjaAorICAgIGxzaGlmdHAgMywgc2NyYXRjaAorICAgIGFkZHAgbWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwsIHNjcmF0Y2gKKyAgICBzdWJwIGNmciwgc2NyYXRjaCwgc3AK
K2VuZAorCittYWNybyByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKKyAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDIKKyAgICBtb3ZlU3RhY2tQb2ludGVyRm9yQ29kZUJsb2NrKHQyLCB0
NCkKK2VuZAorCiBtYWNybyB0cmFjZUV4ZWN1dGlvbigpCiAgICAgaWYgRVhFQ1VUSU9OX1RSQUNJ
TkcKICAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF90cmFjZSkKICAgICBlbmQKIGVuZAogCi1t
YWNybyBjYWxsVGFyZ2V0RnVuY3Rpb24oY2FsbExpbmtJbmZvKQorbWFjcm8gY2FsbFRhcmdldEZ1
bmN0aW9uKGNhbGxMaW5rSW5mbywgY2FsbGVlRnJhbWVQdHIpCisgICAgbW92ZSBjYWxsZWVGcmFt
ZVB0ciwgc3AKICAgICBpZiBDX0xPT1AKICAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBMTElu
dENhbGxMaW5rSW5mbzo6bWFjaGluZUNvZGVUYXJnZXRbY2FsbExpbmtJbmZvXQogICAgIGVsc2UK
ICAgICAgICAgY2FsbCBMTEludENhbGxMaW5rSW5mbzo6bWFjaGluZUNvZGVUYXJnZXRbY2FsbExp
bmtJbmZvXQotICAgICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAgICAgZW5kCisgICAgcmVzdG9y
ZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCisgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQogZW5kCiAK
IG1hY3JvIHNsb3dQYXRoRm9yQ2FsbChzbG93UGF0aCkKICAgICBjYWxsQ2FsbFNsb3dQYXRoKAog
ICAgICAgICBzbG93UGF0aCwKICAgICAgICAgbWFjcm8gKGNhbGxlZSkKKyAgICAgICAgICAgIGJ0
cHogdDEsIC5kb250VXBkYXRlU1AKKyAgICAgICAgICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1Np
emUsIHQxLCBzcAorICAgICAgICAuZG9udFVwZGF0ZVNQOgogICAgICAgICAgICAgaWYgQ19MT09Q
CiAgICAgICAgICAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBjYWxsZWUKICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICBjYWxsIGNhbGxlZQotICAgICAgICAgICAgICAgIGRpc3Bh
dGNoQWZ0ZXJDYWxsKCkKICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgcmVzdG9yZVN0YWNr
UG9pbnRlckFmdGVyQ2FsbCgpCisgICAgICAgICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAgICAg
ICAgIGVuZCkKIGVuZAogCkBAIC0zMjUsMjYgKzQ3NSw0OCBAQCBlbmQKICMgRG8gdGhlIGJhcmUg
bWluaW11bSByZXF1aXJlZCB0byBleGVjdXRlIGNvZGUuIFNldHMgdXAgdGhlIFBDLCBsZWF2ZSB0
aGUgQ29kZUJsb2NrKgogIyBpbiB0MS4gTWF5IGFsc28gdHJpZ2dlciBwcm9sb2d1ZSBlbnRyeSBP
U1IuCiBtYWNybyBwcm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3Ny
U2xvd1BhdGgsIHRyYWNlU2xvd1BhdGgpCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJD
YWxsKHQyKQotICAgIAogICAgICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3
ZSBzaG91bGQgT1NSLgotICAgIHN0b3JlcCB0MiwgUmV0dXJuUENbY2ZyXQorICAgIHByZXNlcnZl
Q2FsbGVyUENBbmRDRlIoKQorCiAgICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKKyAgICAgICAgc3Vi
cCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgc3AKICAgICAgICAgY2FsbFNsb3dQYXRo
KHRyYWNlU2xvd1BhdGgpCisgICAgICAgIGFkZHAgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwsIHNwCiAgICAgZW5kCiAgICAgY29kZUJsb2NrR2V0dGVyKHQxKQoraWYgQ19MT09QCitlbHNl
CiAgICAgYmFkZGlzIDUsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyICsgRXhlY3V0
aW9uQ291bnRlcjo6bV9jb3VudGVyW3QxXSwgLmNvbnRpbnVlCi0gICAgY0NhbGwyKG9zclNsb3dQ
YXRoLCBjZnIsIFBDKQotICAgIG1vdmUgdDEsIGNmcgorICAgIGlmIEpTVkFMVUU2NAorICAgICAg
ICBjQ2FsbDIob3NyU2xvd1BhdGgsIGNmciwgUEMpCisgICAgZWxzZQorICAgICAgICAjIFdlIGFy
ZSBhZnRlciB0aGUgZnVuY3Rpb24gcHJvbG9ndWUsIGJ1dCBiZWZvcmUgd2UgaGF2ZSBzZXQgdXAg
c3AgZnJvbSB0aGUgQ29kZUJsb2NrLgorICAgICAgICAjIFRlbXBvcmFyaWx5IGFsaWduIHN0YWNr
IHBvaW50ZXIgZm9yIHRoaXMgY2FsbC4KKyAgICAgICAgc3VicCA4LCBzcAorICAgICAgICBjQ2Fs
bDIob3NyU2xvd1BhdGgsIGNmciwgUEMpCisgICAgICAgIGFkZHAgOCwgc3AKKyAgICBlbmQKICAg
ICBidHB6IHQwLCAucmVjb3ZlcgotICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCi0gICAgcmVz
dG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCisgICAgbW92ZSBjZnIsIHNwICMgcmVz
dG9yZSB0aGUgcHJldmlvdXMgc3AKKyAgICAjIHBvcCB0aGUgY2FsbGVyRnJhbWUgc2luY2Ugd2Ug
d2lsbCBqdW1wIHRvIGEgZnVuY3Rpb24gdGhhdCB3YW50cyB0byBzYXZlIGl0CisgICAgaWYgQVJN
NjQKKyAgICAgICAgcG9wTFJBbmRGUAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19U
UkFESVRJT05BTCBvciBNSVBTIG9yIFNINAorICAgICAgICBwb3AgY2ZyCisgICAgICAgIHBvcCBs
cgorICAgIGVsc2UKKyAgICAgICAgcG9wIGNmcgorICAgIGVuZAogICAgIGptcCB0MAogLnJlY292
ZXI6CiAgICAgY29kZUJsb2NrR2V0dGVyKHQxKQogLmNvbnRpbnVlOgorZW5kCisKICAgICBjb2Rl
QmxvY2tTZXR0ZXIodDEpCiAgICAgCisgICAgbW92ZVN0YWNrUG9pbnRlckZvckNvZGVCbG9jayh0
MSwgdDIpCisKICAgICAjIFNldCB1cCB0aGUgUEMuCiAgICAgaWYgSlNWQUxVRTY0CiAgICAgICAg
IGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQgpAQCAtMzg5LDE0ICs1NjEs
MTYgQEAgbWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlvbihwcm9maWxlQXJnUwogICAgICAgICAK
ICAgICAjIENoZWNrIHN0YWNrIGhlaWdodC4KICAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2Fs
bGVlUmVnaXN0ZXJzW3QxXSwgdDAKLSAgICBhZGRpIDEsIHQwICMgQWNjb3VudCB0aGF0IGxvY2Fs
MCBnb2VzIGF0IHNsb3QgLTEKICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fdm1bdDFdLCB0MgogICAg
IGxzaGlmdHAgMywgdDAKKyAgICBhZGRpIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB0
MAogICAgIHN1YnAgY2ZyLCB0MCwgdDAKICAgICBicGJlcSBWTTo6bV9qc1N0YWNrTGltaXRbdDJd
LCB0MCwgLnN0YWNrSGVpZ2h0T0sKIAogICAgICMgU3RhY2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAt
IG5lZWQgdG8gY2FsbCBhIHNsb3dfcGF0aC4KICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3N0YWNr
X2NoZWNrKQorICAgIGJwZXEgdDEsIDAsIC5zdGFja0hlaWdodE9LCisgICAgbW92ZSB0MSwgY2Zy
CiAuc3RhY2tIZWlnaHRPSzoKIGVuZAogCkBAIC00MjMsMjUgKzU5Nyw2OSBAQCBtYWNybyBhbGxv
Y2F0ZUpTT2JqZWN0KGFsbG9jYXRvciwgc3RydWN0CiBlbmQKIAogbWFjcm8gZG9SZXR1cm4oKQot
ICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCi0gICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwg
Y2ZyCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCisgICAgcmVzdG9y
ZUNhbGxlclBDQW5kQ0ZSKCkKICAgICByZXQKIGVuZAogCi1pZiBDX0xPT1AKLWVsc2UKICMgc3R1
YiB0byBjYWxsIGludG8gSmF2YVNjcmlwdCBvciBOYXRpdmUgZnVuY3Rpb25zCi0jIEVuY29kZWRK
U1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm0sIFByb3Rv
Q2FsbEZyYW1lKiBwcm90b0ZyYW1lLCBSZWdpc3RlciogdG9wT2ZTdGFjaykKLSMgRW5jb2RlZEpT
VmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm0sIFBy
b3RvQ2FsbEZyYW1lKiBwcm90b0ZyYW1lLCBSZWdpc3RlciogdG9wT2ZTdGFjaykKKyMgRW5jb2Rl
ZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2bVRvcENh
bGxGcmFtZSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvRnJhbWUpCisjIEVuY29kZWRKU1ZhbHVlIGNh
bGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtVG9wQ2FsbEZyYW1l
LCBQcm90b0NhbGxGcmFtZSogcHJvdG9GcmFtZSkKICMgTm90ZSwgaWYgdGhlc2Ugc3R1YnMgb3Ig
b25lIG9mIHRoZWlyIHJlbGF0ZWQgbWFjcm9zIGFyZSBjaGFuZ2VkLCBtYWtlIHRoZQogIyBlcXVp
dmFsZW50IGNoYW5nZXMgaW4gaml0L0pJVFN0dWJzWDg2LmggYW5kL29yIGppdC9KSVRTdHVic01T
VkM2NC5hc20KKworaWYgQ19MT09QCitfbGxpbnRfY2FsbF90b19qYXZhc2NyaXB0OgorZWxzZQog
X2NhbGxUb0phdmFTY3JpcHQ6Ci0gICAgZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VKYXZhU2NyaXB0
Q2FsbCwgZG9SZXR1cm5Gcm9tSmF2YVNjcmlwdCkKK2VuZAorICAgIGRvQ2FsbFRvSmF2YVNjcmlw
dChtYWtlSmF2YVNjcmlwdENhbGwpCisKIAoraWYgQ19MT09QCitfbGxpbnRfY2FsbF90b19uYXRp
dmVfZnVuY3Rpb246CitlbHNlCiBfY2FsbFRvTmF0aXZlRnVuY3Rpb246Ci0gICAgZG9DYWxsVG9K
YXZhU2NyaXB0KG1ha2VIb3N0RnVuY3Rpb25DYWxsLCBkb1JldHVybkZyb21Ib3N0RnVuY3Rpb24p
CiBlbmQKKyAgICBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUhvc3RGdW5jdGlvbkNhbGwpCisKKwor
aWYgQ19MT09QCitlbHNlCisjIHZvaWQgc2FuaXRpemVTdGFja0ZvclZNSW1wbChWTSogdm0pCitf
c2FuaXRpemVTdGFja0ZvclZNSW1wbDoKKyAgICBpZiBYODZfNjQKKyAgICAgICAgY29uc3Qgdm0g
PSB0NAorICAgICAgICBjb25zdCBhZGRyZXNzID0gdDEKKyAgICAgICAgY29uc3QgemVyb1ZhbHVl
ID0gdDAKKyAgICBlbHNpZiBYODYKKyAgICAgICAgY29uc3Qgdm0gPSB0MgorICAgICAgICBjb25z
dCBhZGRyZXNzID0gdDEKKyAgICAgICAgY29uc3QgemVyb1ZhbHVlID0gdDAKKyAgICBlbHNlCisg
ICAgICAgIGNvbnN0IHZtID0gYTAKKyAgICAgICAgY29uc3QgYWRkcmVzcyA9IHQxCisgICAgICAg
IGNvbnN0IHplcm9WYWx1ZSA9IHQyCisgICAgZW5kCisKKyAgICBpZiBYODYKKyAgICAgICAgbG9h
ZHAgNFtzcF0sIHZtCisgICAgZW5kCisKKyAgICBsb2FkcCBWTTo6bV9sYXN0U3RhY2tUb3Bbdm1d
LCBhZGRyZXNzCisgICAgYnBiZXEgc3AsIGFkZHJlc3MsIC56ZXJvRmlsbERvbmUKKworICAgIG1v
dmUgMCwgemVyb1ZhbHVlCisuemVyb0ZpbGxMb29wOgorICAgIHN0b3JlcCB6ZXJvVmFsdWUsIFth
ZGRyZXNzXQorICAgIGFkZHAgUHRyU2l6ZSwgYWRkcmVzcworICAgIGJwYSBzcCwgYWRkcmVzcywg
Lnplcm9GaWxsTG9vcAorCisuemVyb0ZpbGxEb25lOgorICAgIG1vdmUgc3AsIGFkZHJlc3MKKyAg
ICBzdG9yZXAgYWRkcmVzcywgVk06Om1fbGFzdFN0YWNrVG9wW3ZtXQorICAgIHJldAorZW5kCisK
IAogIyBJbmRpY2F0ZSB0aGUgYmVnaW5uaW5nIG9mIExMSW50LgogX2xsaW50X2JlZ2luOgpAQCAt
NzMxLDggKzk0OSwxNSBAQCBfbGxpbnRfb3BfY29uc3RydWN0OgogCiBfbGxpbnRfb3BfY2FsbF92
YXJhcmdzOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9zaXplX2FuZF9hbGxvY19mcmFtZV9mb3JfdmFyYXJncykKKyAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJhcmdzKQogICAgIGJyYW5jaElm
RXhjZXB0aW9uKF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lKQorICAgICMg
Y2FsbGVlRnJhbWUgaW4gdDEKKyAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgbW92ZSB0MSwgc3AK
KyAgICBlbHNlCisgICAgICAgICMgVGhlIGNhbGxlZUZyYW1lIGlzIG5vdCBzdGFjayBhbGlnbmVk
LCBtb3ZlIGRvd24gYnkgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgdG8gYWxpZ24KKyAgICAgICAgc3Vi
cCB0MSwgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHNwCisgICAgZW5kCiAgICAgc2xvd1BhdGhGb3JD
YWxsKF9sbGludF9zbG93X3BhdGhfY2FsbF92YXJhcmdzKQogCiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTAsNiArOTAsMTIgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzo6TExJbnQ7CiAjZGVmaW5lIE9GRkxJTkVfQVNNX0JFR0lOCiAjZGVmaW5lIE9GRkxJTkVf
QVNNX0VORAogCisjaWYgRU5BQkxFKE9QQ09ERV9UUkFDSU5HKQorI2RlZmluZSBUUkFDRV9PUENP
REUob3Bjb2RlKSBkYXRhTG9nRigiICAgb3AgJXNcbiIsICNvcGNvZGUpCisjZWxzZQorI2RlZmlu
ZSBUUkFDRV9PUENPREUob3Bjb2RlKQorI2VuZGlmCisKIC8vIFRvIGtlZXAgY29tcGlsZXJzIGhh
cHB5IGluIGNhc2Ugb2YgdW51c2VkIGxhYmVscywgZm9yY2UgdXNhZ2Ugb2YgdGhlIGxhYmVsOgog
I2RlZmluZSBVU0VfTEFCRUwobGFiZWwpIFwKICAgICBkbyB7IFwKQEAgLTk3LDcgKzEwMyw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M6OkxMSW50OwogICAgICAgICAgICAgZ290byBsYWJlbDsgXAog
ICAgIH0gd2hpbGUgKGZhbHNlKQogCi0jZGVmaW5lIE9GRkxJTkVfQVNNX09QQ09ERV9MQUJFTChv
cGNvZGUpIERFRklORV9PUENPREUob3Bjb2RlKSBVU0VfTEFCRUwob3Bjb2RlKTsKKyNkZWZpbmUg
T0ZGTElORV9BU01fT1BDT0RFX0xBQkVMKG9wY29kZSkgREVGSU5FX09QQ09ERShvcGNvZGUpIFVT
RV9MQUJFTChvcGNvZGUpOyBUUkFDRV9PUENPREUob3Bjb2RlKTsKIAogI2lmIEVOQUJMRShDT01Q
VVRFRF9HT1RPX09QQ09ERVMpCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0dMVUVfTEFCRUwobGFiZWwp
ICBsYWJlbDogVVNFX0xBQkVMKGxhYmVsKTsKQEAgLTIxMiwxMCArMjE4LDE0IEBAIHN0cnVjdCBD
TG9vcFJlZ2lzdGVyIHsKICNlbmRpZiAvLyAhQ1BVKEJJR19FTkRJQU4pCiAjZW5kaWYgLy8gIVVT
RShKU1ZBTFVFNjQpCiAKKyAgICAgICAgaW50cHRyX3QqIGlwOwogICAgICAgICBpbnQ4X3QqIGk4
cDsKICAgICAgICAgdm9pZCogdnA7CisgICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwogICAg
ICAgICBFeGVjU3RhdGUqIGV4ZWNTdGF0ZTsKICAgICAgICAgdm9pZCogaW5zdHJ1Y3Rpb247Cisg
ICAgICAgIFZNKiB2bTsKKyAgICAgICAgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lOwog
ICAgICAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jOwogI2lmIFVTRShKU1ZBTFVFNjQpCiAg
ICAgICAgIGludDY0X3QgaTY0OwpAQCAtMjI2LDYgKzIzNiwxMiBAQCBzdHJ1Y3QgQ0xvb3BSZWdp
c3RlciB7CiAgICAgICAgIE9wY29kZSBvcGNvZGU7CiAgICAgfTsKIAorICAgIG9wZXJhdG9yIEV4
ZWNTdGF0ZSooKSB7IHJldHVybiBleGVjU3RhdGU7IH0KKyAgICBvcGVyYXRvciBJbnN0cnVjdGlv
biooKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PEluc3RydWN0aW9uKj4oaW5zdHJ1Y3Rpb24p
OyB9CisgICAgb3BlcmF0b3IgVk0qKCkgeyByZXR1cm4gdm07IH0KKyAgICBvcGVyYXRvciBQcm90
b0NhbGxGcmFtZSooKSB7IHJldHVybiBwcm90b0NhbGxGcmFtZTsgfQorICAgIG9wZXJhdG9yIFJl
Z2lzdGVyKigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmVnaXN0ZXIqPih2cCk7IH0KKwog
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgaW5saW5lIHZvaWQgY2xlYXJIaWdoV29yZCgpIHsgaTMy
cGFkZGluZyA9IDA7IH0KICNlbHNlCkBAIC0yMzcsNyArMjUzLDcgQEAgc3RydWN0IENMb29wUmVn
aXN0ZXIgewogLy8gVGhlIGxsaW50IEMrKyBpbnRlcnByZXRlciBsb29wOgogLy8KIAotSlNWYWx1
ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2Rl
LCBib29sIGlzSW5pdGlhbGl6YXRpb25QYXNzKQorSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShPcGNv
ZGVJRCBlbnRyeU9wY29kZUlELCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgVk0qIHZtLCBQcm90
b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUsIGJvb2wgaXNJbml0aWFsaXphdGlvblBhc3MpCiB7
CiAgICAgI2RlZmluZSBDQVNUIHJlaW50ZXJwcmV0X2Nhc3QKICAgICAjZGVmaW5lIFNJR05fQklU
MzIoeCkgKCh4KSAmIDB4ODAwMDAwMDApCkBAIC0yNzIsOCArMjg4LDYgQEAgSlNWYWx1ZSBDTG9v
cDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwog
ICAgIH0KIAotICAgIEFTU0VSVChjYWxsRnJhbWUtPnZtKCkudG9wQ2FsbEZyYW1lID09IGNhbGxG
cmFtZSk7Ci0KICAgICAvLyBEZWZpbmUgdGhlIHBzZXVkbyByZWdpc3RlcnMgdXNlZCBieSB0aGUg
TExJTlQgQyBMb29wIGJhY2tlbmQ6CiAgICAgQVNTRVJUKHNpemVvZihDTG9vcFJlZ2lzdGVyKSA9
PSBzaXplb2YoaW50cHRyX3QpKTsKIApAQCAtMzA4LDY5ICszMjIsNjYgQEAgSlNWYWx1ZSBDTG9v
cDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogICAgIC8vIDIuIDMyIGJpdCByZXN1bHQgdmFs
dWVzIHdpbGwgYmUgaW4gdGhlIGxvdyAzMi1iaXQgb2YgdDAuCiAgICAgLy8gMy4gNjQgYml0IHJl
c3VsdCB2YWx1ZXMgd2lsbCBiZSBpbiB0MC4KIAotICAgIENMb29wUmVnaXN0ZXIgdDAsIHQxLCB0
MiwgdDM7CisgICAgQ0xvb3BSZWdpc3RlciB0MCwgdDEsIHQyLCB0MywgdDUsIHNwLCBjZnIsIGxy
LCBwYzsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIENMb29wUmVnaXN0ZXIgckJhc2VQQywgdGFn
VHlwZU51bWJlciwgdGFnTWFzazsKKyAgICBDTG9vcFJlZ2lzdGVyIHBjQmFzZSwgdGFnVHlwZU51
bWJlciwgdGFnTWFzazsKICNlbmRpZgotICAgIENMb29wUmVnaXN0ZXIgclJldFZQQzsKICAgICBD
TG9vcERvdWJsZVJlZ2lzdGVyIGQwLCBkMTsKIAotICAgIC8vIEtlZXAgdGhlIGNvbXBpbGVyIGhh
cHB5LiBXZSBkb24ndCByZWFsbHkgbmVlZCB0aGlzLCBidXQgdGhlIGNvbXBpbGVyCi0gICAgLy8g
d2lsbCBjb21wbGFpbi4gVGhpcyBtYWtlcyB0aGUgd2FybmluZyBnbyBhd2F5LgotICAgIHQwLmkg
PSAwOwotICAgIHQxLmkgPSAwOwotCi0gICAgVk0qIHZtID0gJmNhbGxGcmFtZS0+dm0oKTsKLQot
ICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKLSAgICBJ
bnN0cnVjdGlvbiogdlBDOwotCi0gICAgLy8gclBDIGlzIGFuIGFsaWFzIGZvciB2UEMuIFNldCB1
cCB0aGUgYWxpYXM6Ci0gICAgQ0xvb3BSZWdpc3RlciYgclBDID0gKkNBU1Q8Q0xvb3BSZWdpc3Rl
cio+KCZ2UEMpOworICAgIGxyLm9wY29kZSA9IGdldE9wY29kZShsbGludF9yZXR1cm5fdG9faG9z
dCk7CisgICAgc3AudnAgPSB2bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkudG9wT2ZTdGFjaygpICsg
MTsKKyAgICBjZnIuY2FsbEZyYW1lID0gdm0tPnRvcENhbGxGcmFtZTsKKyNpZm5kZWYgTkRFQlVH
CisgICAgdm9pZCogc3RhcnRTUCA9IHNwLnZwOworICAgIENhbGxGcmFtZSogc3RhcnRDRlIgPSBj
ZnIuY2FsbEZyYW1lOworI2VuZGlmCiAKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIHZQQyA9
IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKLSNlbHNlIC8vIFVTRShKU1ZBTFVF
NjQpCi0gICAgdlBDID0gMDsKLSAgICByQmFzZVBDLnZwID0gY29kZUJsb2NrLT5pbnN0cnVjdGlv
bnMoKS5iZWdpbigpOworICAgIC8vIEluaXRpYWxpemUgdGhlIGluY29taW5nIGFyZ3MgZm9yIGRv
Q2FsbFRvSmF2YVNjcmlwdDoKKyAgICB0MC52cCA9IGV4ZWN1dGFibGVBZGRyZXNzOworICAgIHQx
LnZtID0gdm07CisgICAgdDIucHJvdG9DYWxsRnJhbWUgPSBwcm90b0NhbGxGcmFtZTsKIAorI2lm
IFVTRShKU1ZBTFVFNjQpCiAgICAgLy8gRm9yIHRoZSBBU00gbGxpbnQsIEpJVFN0dWJzIHRha2Vz
IGNhcmUgb2YgdGhpcyBpbml0aWFsaXphdGlvbi4gV2UgZG8KICAgICAvLyBpdCBleHBsaWNpdGx5
IGhlcmUgZm9yIHRoZSBDIGxvb3A6CiAgICAgdGFnVHlwZU51bWJlci5pID0gMHhGRkZGMDAwMDAw
MDAwMDAwOwogICAgIHRhZ01hc2suaSA9IDB4RkZGRjAwMDAwMDAwMDAwMjsKICNlbmRpZiAvLyBV
U0UoSlNWQUxVRTY0KQogCi0gICAgLy8gY2ZyIGlzIGFuIGFsaWFzIGZvciBjYWxsRnJhbWUuIFNl
dCB1cCB0aGlzIGFsaWFzOgotICAgIENMb29wUmVnaXN0ZXImIGNmciA9ICpDQVNUPENMb29wUmVn
aXN0ZXIqPigmY2FsbEZyYW1lKTsKLQotICAgIC8vIFNpbXVsYXRlIGEgbmF0aXZlIHJldHVybiBQ
QyB3aGljaCBzaG91bGQgbmV2ZXIgYmUgdXNlZDoKLSAgICByUmV0VlBDLmkgPSAweGJiYWRiZWVm
OwotCiAgICAgLy8gSW50ZXJwcmV0ZXIgdmFyaWFibGVzIGZvciB2YWx1ZSBwYXNzaW5nIGJldHdl
ZW4gb3Bjb2RlcyBhbmQvb3IgaGVscGVyczoKICAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5j
ID0gMDsKICAgICBKU1ZhbHVlIGZ1bmN0aW9uUmV0dXJuVmFsdWU7Ci0gICAgT3Bjb2RlIG9wY29k
ZTsKKyAgICBPcGNvZGUgb3Bjb2RlID0gZ2V0T3Bjb2RlKGVudHJ5T3Bjb2RlSUQpOwogCi0gICAg
b3Bjb2RlID0gZW50cnlPcGNvZGU7CisjZGVmaW5lIFBVU0goY2xvb3BSZWcpIFwKKyAgICBkbyB7
IFwKKyAgICAgICAgc3AuaXAtLTsgXAorICAgICAgICAqc3AuaXAgPSBjbG9vcFJlZy5pOyBcCisg
ICAgfSB3aGlsZSAoZmFsc2UpCisKKyNkZWZpbmUgUE9QKGNsb29wUmVnKSBcCisgICAgZG8geyBc
CisgICAgICAgIGNsb29wUmVnLmkgPSAqc3AuaXA7IFwKKyAgICAgICAgc3AuaXArKzsgXAorICAg
IH0gd2hpbGUgKGZhbHNlKQorCisjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKKyNkZWZpbmUgUkVD
T1JEX09QQ09ERV9TVEFUUyhfX29wY29kZSkgT3Bjb2RlU3RhdHM6OnJlY29yZEluc3RydWN0aW9u
KF9fb3Bjb2RlKQorI2Vsc2UKKyNkZWZpbmUgUkVDT1JEX09QQ09ERV9TVEFUUyhfX29wY29kZSkK
KyNlbmRpZgogCi0gICAgI2lmIEVOQUJMRShPUENPREVfU1RBVFMpCi0gICAgICAgICNkZWZpbmUg
UkVDT1JEX09QQ09ERV9TVEFUUyhfX29wY29kZSkgXAotICAgICAgICAgICAgT3Bjb2RlU3RhdHM6
OnJlY29yZEluc3RydWN0aW9uKF9fb3Bjb2RlKQotICAgICNlbHNlCi0gICAgICAgICNkZWZpbmUg
UkVDT1JEX09QQ09ERV9TVEFUUyhfX29wY29kZSkKLSAgICAjZW5kaWYKLQotICAgICNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQotICAgICAgICAjZGVmaW5lIEZFVENIX09QQ09ERSgpIHZQQy0+dS5vcGNv
ZGUKLSAgICAjZWxzZSAvLyBVU0UoSlNWQUxVRTY0KQotICAgICAgICAjZGVmaW5lIEZFVENIX09Q
Q09ERSgpICpiaXR3aXNlX2Nhc3Q8T3Bjb2RlKj4ockJhc2VQQy5pOHAgKyByUEMuaSAqIDgpCi0g
ICAgI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCi0KLSAgICAjZGVmaW5lIE5FWFRfSU5TVFJVQ1RJ
T04oKSBcCi0gICAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAg
ICAgb3Bjb2RlID0gRkVUQ0hfT1BDT0RFKCk7IFwKLSAgICAgICAgICAgIERJU1BBVENIX09QQ09E
RSgpOyAgICAgICBcCi0gICAgICAgIH0gd2hpbGUgKGZhbHNlKQorI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisjZGVmaW5lIEZFVENIX09QQ09ERSgpIHBjLm9wY29kZQorI2Vsc2UgLy8gVVNFKEpTVkFM
VUU2NCkKKyNkZWZpbmUgRkVUQ0hfT1BDT0RFKCkgKmJpdHdpc2VfY2FzdDxPcGNvZGUqPihwY0Jh
c2UuaThwICsgcGMuaSAqIDgpCisjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKKworI2RlZmluZSBO
RVhUX0lOU1RSVUNUSU9OKCkgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgICAgICBvcGNvZGUgPSBGRVRDSF9PUENPREUoKTsgXAorICAgICAgICBESVNQQVRDSF9PUENP
REUoKTsgICAgICAgXAorICAgIH0gd2hpbGUgKGZhbHNlKQogCiAjaWYgRU5BQkxFKENPTVBVVEVE
X0dPVE9fT1BDT0RFUykKIApAQCAtNDEyLDE0ICs0MjMsMjIgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhl
Y3V0ZShDYWxsRnJhbWUqIGNhbGxGcgogCiAgICAgICAgICNpbmNsdWRlICJMTEludEFzc2VtYmx5
LmgiCiAKKyAgICAgICAgT0ZGTElORV9BU01fR0xVRV9MQUJFTChsbGludF9yZXR1cm5fdG9faG9z
dCkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHN0YXJ0U1AgPT0gc3AudnApOworICAg
ICAgICAgICAgQVNTRVJUKHN0YXJ0Q0ZSID09IGNmci5jYWxsRnJhbWUpOworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSh0MS5pLCB0MC5pKTsgLy8gcmV0
dXJuaW5nIEpTVmFsdWUodGFnLCBwYXlsb2FkKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZGVjb2RlKHQwLmVuY29kZWRKU1ZhbHVlKTsKKyNlbmRpZgorICAgICAgICB9CisK
ICAgICAgICAgLy8gSW4gdGhlIEFTTSBsbGludCwgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSgpIGlz
IGEgcGllY2Ugb2YgZ2x1ZQotICAgICAgICAvLyBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGUgSklU
IChzZWUgZGZnL0RGR09wZXJhdGlvbnMuY3BwKS4KKyAgICAgICAgLy8gZnVuY3Rpb24gcHJvdmlk
ZWQgYnkgdGhlIEpJVCAoc2VlIGppdC9KSVRPcGVyYXRpb25zLmNwcCkuCiAgICAgICAgIC8vIFdl
IHNpbXVsYXRlIGl0IGhlcmUgd2l0aCBhIHBzZWR1by1vcGNvZGUgaGFuZGxlci4KICAgICAgICAg
T0ZGTElORV9BU01fR0xVRV9MQUJFTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKQogICAgICAgICB7
Ci0gICAgICAgICAgICAvLyBUaGUgQVNNIHBhcnQgcG9wcyB0aGUgZnJhbWU6Ci0gICAgICAgICAg
ICBjYWxsRnJhbWUgPSBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCk7Ci0KICAgICAgICAgICAgIC8v
IFRoZSBwYXJ0IGluIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKCk6CiAgICAg
ICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IHZtLT5ob3N0Q2FsbFJldHVyblZhbHVlOwogI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCkBAIC00MjgsMTIgKzQ0Nyw4IEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1
dGUoQ2FsbEZyYW1lKiBjYWxsRnIKICNlbHNlCiAgICAgICAgICAgICB0MC5lbmNvZGVkSlNWYWx1
ZSA9IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogI2VuZGlmCi0gICAgICAgICAgICBnb3RvIGRv
UmV0dXJuSGVscGVyOwotICAgICAgICB9Ci0KLSAgICAgICAgT0ZGTElORV9BU01fR0xVRV9MQUJF
TChyZXR1cm5Gcm9tSmF2YVNjcmlwdCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHZt
LT5leGNlcHRpb24oKTsKKyAgICAgICAgICAgIG9wY29kZSA9IGxyLm9wY29kZTsKKyAgICAgICAg
ICAgIERJU1BBVENIX09QQ09ERSgpOwogICAgICAgICB9CiAKICNpZiAhRU5BQkxFKENPTVBVVEVE
X0dPVE9fT1BDT0RFUykKQEAgLTQ0Myw1NSArNDU4LDYgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0
ZShDYWxsRnJhbWUqIGNhbGxGcgogCiAgICAgfSAvLyBFTkQgYnl0ZWNvZGUgaGFuZGxlciBjYXNl
cy4KIAotICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgLy8gQnl0ZWNvZGUgaGVscGVyczoKLQot
ICAgIGRvUmV0dXJuSGVscGVyOiB7Ci0gICAgICAgIEFTU0VSVCghIWNhbGxGcmFtZSk7Ci0gICAg
ICAgIGlmIChjYWxsRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkpIHsKLSNpZiBVU0UoSlNWQUxV
RTMyXzY0KQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUodDEuaSwgdDAuaSk7IC8vIHJldHVy
bmluZyBKU1ZhbHVlKHRhZywgcGF5bG9hZCk7Ci0jZWxzZQotICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmRlY29kZSh0MC5lbmNvZGVkSlNWYWx1ZSk7Ci0jZW5kaWYKLSAgICAgICAgfQotCi0g
ICAgICAgIC8vIFRoZSBub3JtYWwgQVNNIGxsaW50IGNhbGwgaW1wbGVtZW50YXRpb24gcmV0dXJu
cyB0byB0aGUgY2FsbGVyIGFzCi0gICAgICAgIC8vIHJlY29yZGVkIGluIHJSZXRWUEMsIGFuZCB0
aGUgY2FsbGVyIHdvdWxkIGZldGNoIHRoZSByZXR1cm4gYWRkcmVzcwotICAgICAgICAvLyBmcm9t
IEFyZ3VtZW50Q291bnQudGFnKCkgKHNlZSB0aGUgZGlzcGF0Y2hBZnRlckNhbGwoKSBtYWNybyB1
c2VkIGluCi0gICAgICAgIC8vIHRoZSBjYWxsVGFyZ2V0RnVuY3Rpb24oKSBtYWNybyBpbiB0aGUg
bGxpbnQgYXNtIGZpbGVzKS4KLSAgICAgICAgLy8KLSAgICAgICAgLy8gRm9yIHRoZSBDIGxvb3As
IHdlIGRvbid0IGhhdmUgdGhlIEpJVCBzdHViIHRvIGRvIHRoaXMgd29yayBmb3IgdXMuIFNvLAot
ICAgICAgICAvLyB3ZSBqdW1wIHRvIGxsaW50X2dlbmVyaWNfcmV0dXJuX3BvaW50LgotCi0gICAg
ICAgIHZQQyA9IGNhbGxGcmFtZS0+Y3VycmVudFZQQygpOwotCi0jaWYgVVNFKEpTVkFMVUU2NCkK
LSAgICAgICAgLy8gQmFzZWQgb24gTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSdzIGRpc3BhdGNo
QWZ0ZXJDYWxsKCk6Ci0KLSAgICAgICAgLy8gV2hlbiByZXR1cm5pbmcgZnJvbSBhIG5hdGl2ZSB0
cmFtcG9saW5lIGNhbGwsIHVubGlrZSB0aGUgYXNzZW1ibHkKLSAgICAgICAgLy8gTExJbnQsIHdl
IGNhbid0IHNpbXBseSByZXR1cm4gdG8gdGhlIGNhbGxlci4gSW4gb3VyIGNhc2UsIHdlIGdyYWIK
LSAgICAgICAgLy8gdGhlIGNhbGxlcidzIFZQQyBhbmQgcmVzdW1lIGV4ZWN1dGlvbiB0aGVyZS4g
SG93ZXZlciwgdGhlIGNhbGxlcidzCi0gICAgICAgIC8vIFZQQyByZXR1cm5lZCBieSBjYWxsRnJh
bWUtPmN1cnJlbnRWUEMoKSBpcyBpbiB0aGUgZm9ybSBvZiB0aGUgcmVhbAotICAgICAgICAvLyBh
ZGRyZXNzIG9mIHRoZSB0YXJnZXQgYnl0ZWNvZGUsIGJ1dCB0aGUgNjQtYml0IGxsaW50IGV4cGVj
dHMgdGhlCi0gICAgICAgIC8vIFZQQyB0byBiZSBhIGJ5dGVjb2RlIG9mZnNldC4gSGVuY2UsIHdl
IG5lZWQgdG8gbWFwIGl0IGJhY2sgdG8gYQotICAgICAgICAvLyBieXRlY29kZSBvZmZzZXQgYmVm
b3JlIHdlIGRpc3BhdGNoIHZpYSB0aGUgdXN1YWwgZGlzcGF0Y2ggbWVjaGFuaXNtCi0gICAgICAg
IC8vIGkuZS4gTkVYVF9JTlNUUlVDVElPTigpOgotCi0gICAgICAgIGNvZGVCbG9jayA9IGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCk7Ci0gICAgICAgIEFTU0VSVChjb2RlQmxvY2spOwotICAgICAgICBy
UEMudnAgPSBjYWxsRnJhbWUtPmN1cnJlbnRWUEMoKTsKLSAgICAgICAgclBDLmkgPSByUEMuaThw
IC0gcmVpbnRlcnByZXRfY2FzdDxpbnQ4X3QqPihjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJl
Z2luKCkpOwotICAgICAgICByUEMuaSA+Pj0gMzsKLQotICAgICAgICByQmFzZVBDLnZwID0gY29k
ZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwotI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQp
Ci0KLSAgICAgICAgZ290byBsbGludF9nZW5lcmljX3JldHVybl9wb2ludDsKLQotICAgIH0gLy8g
RU5EIGRvUmV0dXJuSGVscGVyLgotCi0KICNpZiBFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVT
KQogICAgIC8vIEtlZXAgdGhlIGNvbXBpbGVyIGhhcHB5IHNvIHRoYXQgaXQgZG9lc24ndCBjb21w
bGFpbiBhYm91dCB1bnVzZWQKICAgICAvLyBsYWJlbHMgZm9yIHRoZSBMTEludCB0cmFtcG9saW5l
IGdsdWUuIFRoZSBsYWJlbHMgYXJlIGF1dG9tYXRpY2FsbHkKQEAgLTUyMywxMiArNDg5LDEyIEBA
IEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnIKIAogLy8gVGhlc2UgYXJl
IGZvciBidWlsZGluZyBhbiBpbnRlcnByZXRlciBmcm9tIGdlbmVyYXRlZCBhc3NlbWJseSBjb2Rl
OgogI2lmIENQVShYODZfNjQpICYmIENPTVBJTEVSKENMQU5HKQotI2RlZmluZSBPRkZMSU5FX0FT
TV9CRUdJTiAgIGFzbSAoIFwKKyNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4gICBhc20gKCAgICAg
ICAgICAgICAgICBcCiAgICAgIi5jZmlfc3RhcnRwcm9jXG4iCiAKLSNkZWZpbmUgT0ZGTElORV9B
U01fRU5EICAgICBcCi0gICAgIi5jZmlfZW5kcHJvY1xuIiBcCi0pOworI2RlZmluZSBPRkZMSU5F
X0FTTV9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAiLmNmaV9lbmRwcm9jXG4i
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKTsKICNlbHNlCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0JFR0lOICAgYXNtICgKICNkZWZpbmUg
T0ZGTElORV9BU01fRU5EICAgICApOwpAQCAtNTUxLDkgKzUxNyw5IEBAIEpTVmFsdWUgQ0xvb3A6
OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnIKICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhs
YWJlbCkgIlxuIiAgICAgICAgIFwKICAgICBISURFX1NZTUJPTChsYWJlbCkgIlxuIiAgICAgICAg
ICAgICAgICAgICAgIFwKICAgICBTWU1CT0xfU1RSSU5HKGxhYmVsKSAiOlxuIiAgICAgICAgICAg
ICAgICAgIFwKLSAgICAiLmNmaV9kZWZfY2ZhIHJicCwgMFxuIiAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAiLmNmaV9vZmZzZXQgMTYsIDhcbiIgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICAiLmNmaV9vZmZzZXQgNiwgMFxuIgorICAgICIuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2XG4iICAg
ICAgICAgICAgICAgICAgXAorICAgICIuY2ZpX29mZnNldCAlcmJwLCAtMTZcbiIgICAgICAgICAg
ICAgICAgICAgXAorICAgICIuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIgcmJwXG4iCiAjZWxzZQogI2Rl
ZmluZSBPRkZMSU5FX0FTTV9HTE9CQUxfTEFCRUwobGFiZWwpICAgICAgICAgXAogICAgICIudGV4
dFxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsdm0vbGlicmFyeS9MTFZNRXhwb3J0cy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsdm0vbGlicmFyeS9MTFZNRXhwb3J0cy5jcHAJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbHZtL2xpYnJhcnkvTExWTUV4
cG9ydHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwxMCBAQCBleHRlcm4gIkMiIEpT
Qzo6TExWTUFQSSogaW5pdGlhbGl6ZUFuZEdlCiAgICAgZ19sbHZtVHJhcENhbGxiYWNrID0gY2Fs
bGJhY2s7CiAgICAgCiAgICAgTExWTUluc3RhbGxGYXRhbEVycm9ySGFuZGxlcihsbHZtQ3Jhc2gp
OworCisgICAgaWYgKCFMTFZNU3RhcnRNdWx0aXRocmVhZGVkKCkpCisgICAgICAgIGNhbGxiYWNr
KCJDb3VsZCBub3Qgc3RhcnQgTExWTSBtdWx0aXRocmVhZGluZyIpOworICAgIAogICAgIExMVk1M
aW5rSW5NQ0pJVCgpOwogICAgIExMVk1Jbml0aWFsaXplTmF0aXZlVGFyZ2V0KCk7CiAgICAgTExW
TUluaXRpYWxpemVYODZBc21QcmludGVyKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hcm02NC5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hcm02NC5yYgkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE0ICs0MCwx
NCBAQCByZXF1aXJlICJyaXNjIgogIyAgeDEgID0+IHQxLCBhMSwgcjEKICMgIHgyICA9PiB0Miwg
YTIKICMgIHgzICA9PiBhMworIyAgeDUgID0+IHQ1CisjICB4NiAgPT4gdDYKICMgIHg5ICA9PiAo
bm9uQXJnR1BSMSBpbiBiYXNlbGluZSkKLSMgeDEwICA9PiB0NCAodW51c2VkIGluIGJhc2VsaW5l
KQotIyB4MTEgID0+IHQ1ICh1bnVzZWQgaW4gYmFzZWxpbmUpCi0jIHgxMiAgPT4gdDYgKHVudXNl
ZCBpbiBiYXNlbGluZSkKICMgeDEzICA9PiBzY3JhdGNoICh1bnVzZWQgaW4gYmFzZWxpbmUpCiAj
IHgxNiAgPT4gc2NyYXRjaAogIyB4MTcgID0+IHNjcmF0Y2gKICMgeDIzICA9PiB0MworIyB4MjQg
ID0+IHQ0CiAjIHgyNyAgPT4gY3NyMSAodGFnVHlwZU51bWJlcikKICMgeDI4ICA9PiBjc3IyICh0
YWdNYXNrKQogIyB4MjkgID0+IGNmcgpAQCAtMTEzLDExICsxMTMsMTEgQEAgY2xhc3MgUmVnaXN0
ZXJJRAogICAgICAgICB3aGVuICd0MycKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDIzJywg
a2luZCkKICAgICAgICAgd2hlbiAndDQnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gxMCcs
IGtpbmQpCisgICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gyNCcsIGtpbmQpCiAgICAgICAgIHdo
ZW4gJ3Q1JwotICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4MTEnLCBraW5kKQorICAgICAgICAg
ICAgYXJtNjRHUFJOYW1lKCd4NScsIGtpbmQpCiAgICAgICAgIHdoZW4gJ3Q2JwotICAgICAgICAg
ICAgYXJtNjRHUFJOYW1lKCd4MTInLCBraW5kKQorICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4
NicsIGtpbmQpCiAgICAgICAgIHdoZW4gJ2NmcicKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgn
eDI5Jywga2luZCkKICAgICAgICAgd2hlbiAnY3NyMScKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2FybS5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm0ucmIJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgkod29ya2luZyBjb3B5KQpAQCAtNjAxLDYgKzYwMSw4
IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgInNtdWxsICN7b3Bl
cmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdo
ZW4gIm1lbWZlbmNlIgogICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgc3kiCisgICAgICAgIHdo
ZW4gImNscmJwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJiaWMgI3tvcGVyYW5kc1syXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVy
YW5kfSIKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbG93ZXJEZWZhdWx0CiAgICAgICAgIGVu
ZApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Nsb29wLnJi
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC02OCwzNCArNjgsMjIgQEAgQ19MT09QX1NDUkFUQ0hfRlBSID0gU3BlY2lhbFJlZ2lz
dGVyLm5ldwogY2xhc3MgUmVnaXN0ZXJJRAogICAgIGRlZiBjbER1bXAKICAgICAgICAgY2FzZSBu
YW1lCi0gICAgICAgIHdoZW4gImEwIgotICAgICAgICAgICAgImEwIgotICAgICAgICB3aGVuICJh
MSIKLSAgICAgICAgICAgICJhMSIKLSAgICAgICAgd2hlbiAiYTIiCi0gICAgICAgICAgICAiYTIi
Ci0gICAgICAgIHdoZW4gImEzIgotICAgICAgICAgICAgImEzIgotICAgICAgICB3aGVuICJhNCIK
LSAgICAgICAgICAgICJhNCIKLSAgICAgICAgd2hlbiAiYTUiCi0gICAgICAgICAgICAiYTUiCi0g
ICAgICAgIHdoZW4gImE2IgotICAgICAgICAgICAgImE2IgotICAgICAgICB3aGVuICJhNiIKLSAg
ICAgICAgICAgICJhNiIKLSAgICAgICAgd2hlbiAidDAiCisgICAgICAgICMgVGhlIGNsb29wIGlz
IG1vZGVsbGVkIG9uIHRoZSBBUk0gaW1wbGVtZW50YXRpb24uIEhlbmNlLCB0aGUgYTAtYTMKKyAg
ICAgICAgIyByZWdpc3RlcnMgYXJlIGFsaWFzZXMgZm9yIHIwLXIzIGkuZS4gdDAtdDMgaW4gb3Vy
IGNhc2UuCisgICAgICAgIHdoZW4gInQwIiwgImEwIgogICAgICAgICAgICAgInQwIgotICAgICAg
ICB3aGVuICJ0MSIKKyAgICAgICAgd2hlbiAidDEiLCAiYTEiCiAgICAgICAgICAgICAidDEiCi0g
ICAgICAgIHdoZW4gInQyIgorICAgICAgICB3aGVuICJ0MiIsICJhMiIKICAgICAgICAgICAgICJ0
MiIKLSAgICAgICAgd2hlbiAidDMiCisgICAgICAgIHdoZW4gInQzIiwgImEzIgogICAgICAgICAg
ICAgInQzIgogICAgICAgICB3aGVuICJ0NCIKLSAgICAgICAgICAgICJyUEMiCisgICAgICAgICAg
ICAicGMiCisgICAgICAgIHdoZW4gInQ1IgorICAgICAgICAgICAgInQ1IgogICAgICAgICB3aGVu
ICJ0NiIKLSAgICAgICAgICAgICJyQmFzZVBDIgorICAgICAgICAgICAgInBjQmFzZSIKICAgICAg
ICAgd2hlbiAiY3NyMSIKICAgICAgICAgICAgICJ0YWdUeXBlTnVtYmVyIgogICAgICAgICB3aGVu
ICJjc3IyIgpAQCAtMTAzLDcgKzkxLDcgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICB3aGVu
ICJjZnIiCiAgICAgICAgICAgICAiY2ZyIgogICAgICAgICB3aGVuICJsciIKLSAgICAgICAgICAg
ICJyUmV0VlBDIgorICAgICAgICAgICAgImxyIgogICAgICAgICB3aGVuICJzcCIKICAgICAgICAg
ICAgICJzcCIKICAgICAgICAgZWxzZQpAQCAtNTU1LDE0ICs1NDMsMTQgQEAgZW5kCiAjIG9wZXJh
bmRzOiBjYWxsVGFyZ2V0LCBjdXJyZW50RnJhbWUsIGN1cnJlbnRQQwogZGVmIGNsb29wRW1pdENh
bGxTbG93UGF0aChvcGVyYW5kcykKICAgICAkYXNtLnB1dGMgInsiCi0gICAgJGFzbS5wdXRjICIg
ICAgRXhlY1N0YXRlKiBleGVjID0gQ0FTVDxFeGVjU3RhdGUqPigje29wZXJhbmRzWzFdLmNsVmFs
dWUoOnZvaWRQdHIpfSk7IgotICAgICRhc20ucHV0YyAiICAgIEluc3RydWN0aW9uKiBwYyA9IENB
U1Q8SW5zdHJ1Y3Rpb24qPigje29wZXJhbmRzWzJdLmNsVmFsdWUoOnZvaWRQdHIpfSk7IgotICAg
ICRhc20ucHV0YyAiICAgIFNsb3dQYXRoUmV0dXJuVHlwZSByZXN1bHQgPSAje29wZXJhbmRzWzBd
LmNMYWJlbH0oZXhlYywgcGMpOyIKLSAgICAkYXNtLnB1dGMgIiAgICBkZWNvZGVSZXN1bHQocmVz
dWx0LCB0MC5pbnN0cnVjdGlvbiwgdDEudnApOyIKKyAgICAkYXNtLnB1dGMgIiAgICBTbG93UGF0
aFJldHVyblR5cGUgcmVzdWx0ID0gI3tvcGVyYW5kc1swXS5jTGFiZWx9KCN7b3BlcmFuZHNbMV0u
Y2xEdW1wfSwgI3tvcGVyYW5kc1syXS5jbER1bXB9KTsiCisgICAgJGFzbS5wdXRjICIgICAgZGVj
b2RlUmVzdWx0KHJlc3VsdCwgdDAudnAsIHQxLnZwKTsiCiAgICAgJGFzbS5wdXRjICJ9IgogZW5k
CiAKIGNsYXNzIEluc3RydWN0aW9uCisgICAgQEBkaWRSZXR1cm5Gcm9tSlNMYWJlbENvdW50ZXIg
PSAwCisKICAgICBkZWYgbG93ZXJDX0xPT1AKICAgICAgICAgJGFzbS5jb2RlT3JpZ2luIGNvZGVP
cmlnaW5TdHJpbmcgaWYgJGVuYWJsZUNvZGVPcmlnaW5Db21tZW50cwogICAgICAgICAkYXNtLmFu
bm90YXRpb24gYW5ub3RhdGlvbiBpZiAkZW5hYmxlSW5zdHJBbm5vdGF0aW9ucyAmJiAob3Bjb2Rl
ICE9ICJjbG9vcERvIikKQEAgLTg3Niw3ICs4NjQsOCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAg
ICAgICB3aGVuICJicmVhayIKICAgICAgICAgICAgICRhc20ucHV0YyAiQ1JBU0goKTsgLy8gYnJl
YWsgaW5zdHJ1Y3Rpb24gbm90IGltcGxlbWVudGVkLiIKICAgICAgICAgd2hlbiAicmV0IgotICAg
ICAgICAgICAgJGFzbS5wdXRjICJnb3RvIGRvUmV0dXJuSGVscGVyOyIKKyAgICAgICAgICAgICRh
c20ucHV0YyAib3Bjb2RlID0gbHIub3Bjb2RlOyIKKyAgICAgICAgICAgICRhc20ucHV0YyAiRElT
UEFUQ0hfT1BDT0RFKCk7IgogCiAgICAgICAgIHdoZW4gImNiZXEiCiAgICAgICAgICAgICBjbG9v
cEVtaXRDb21wYXJlQW5kU2V0KG9wZXJhbmRzLCA6dWludDgsICI9PSIpCkBAIC0xMDk3LDYgKzEw
ODYsMTIgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGNsb29wRW1pdE9wQW5kQnJh
bmNoKG9wZXJhbmRzLCAifCIsIDppbnQzMiwgIiE9IDAiKQogICAgICAgICAgICAgCiAgICAgICAg
IHdoZW4gIm1lbWZlbmNlIgorCisgICAgICAgIHdoZW4gInB1c2giCisgICAgICAgICAgICAkYXNt
LnB1dGMgIlBVU0goI3tvcGVyYW5kc1swXS5jbER1bXB9KTsiCisgICAgICAgIHdoZW4gInBvcCIK
KyAgICAgICAgICAgICRhc20ucHV0YyAiUE9QKCN7b3BlcmFuZHNbMF0uY2xEdW1wfSk7IgorCiAg
ICAgICAgIHdoZW4gInB1c2hDYWxsZWVTYXZlcyIKICAgICAgICAgd2hlbiAicG9wQ2FsbGVlU2F2
ZXMiCiAKQEAgLTExMTMsOCArMTEwOCwxMSBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAj
IHVzZSBvZiB0aGUgY2FsbCBpbnN0cnVjdGlvbi4gSW5zdGVhZCwgd2UganVzdCBpbXBsZW1lbnQg
SlMgY2FsbHMKICAgICAgICAgIyBhcyBhbiBvcGNvZGUgZGlzcGF0Y2guCiAgICAgICAgIHdoZW4g
ImNsb29wQ2FsbEpTRnVuY3Rpb24iCisgICAgICAgICAgICBAQGRpZFJldHVybkZyb21KU0xhYmVs
Q291bnRlciArPSAxCisgICAgICAgICAgICAkYXNtLnB1dGMgImxyLm9wY29kZSA9IGdldE9wY29k
ZShsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfI3tAQGRpZFJldHVybkZyb21KU0xhYmVs
Q291bnRlcn0pOyIKICAgICAgICAgICAgICRhc20ucHV0YyAib3Bjb2RlID0gI3tvcGVyYW5kc1sw
XS5jbFZhbHVlKDpvcGNvZGUpfTsiCiAgICAgICAgICAgICAkYXNtLnB1dGMgIkRJU1BBVENIX09Q
Q09ERSgpOyIKKyAgICAgICAgICAgICRhc20ucHV0c0xhYmVsKCJsbGludF9jbG9vcF9kaWRfcmV0
dXJuX2Zyb21fanNfI3tAQGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlcn0iKQogCiAgICAgICAg
ICMgV2UgY2FuJ3QgZG8gZ2VuZXJpYyBmdW5jdGlvbiBjYWxscyB3aXRoIGFuIGFyYml0cmFyeSBz
ZXQgb2YgYXJncywgYnV0CiAgICAgICAgICMgZm9ydHVuYXRlbHkgd2UgZG9uJ3QgaGF2ZSB0byBo
ZXJlLiBBbGwgbmF0aXZlIGZ1bmN0aW9uIGNhbGxzIGFsd2F5cwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJi
CSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNiArMjU4LDExIEBAIFg4Nl9JTlNUUlVDVElPTlMgPQog
ICAgICAiaWRpdmkiCiAgICAgXQogCitBUk1fSU5TVFJVQ1RJT05TID0KKyAgICBbCisgICAgICJj
bHJicCIKKyAgICBdCisKIEFSTTY0X0lOU1RSVUNUSU9OUyA9CiAgICAgWwogICAgICAicG9wTFJB
bmRGUCIsICAgIyBBUk02NCByZXF1aXJlcyByZWdpc3RlcnMgdG8gYmUgcHVzaGVkIGFuZCBwb3Bw
ZWQgaW4gcGFpcnMsCkBAIC0zMTMsNyArMzE4LDcgQEAgQ1hYX0lOU1RSVUNUSU9OUyA9CiAgICAg
ICJjbG9vcERvIiwgICAgICAgICAgICAgICMgbm8gb3BlcmFuZHMKICAgICBdCiAKLUlOU1RSVUNU
SU9OUyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk02NF9JTlNU
UlVDVElPTlMgKyBSSVNDX0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsgU0g0X0lO
U1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKK0lOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RS
VUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk1fSU5TVFJVQ1RJT05TICsgQVJNNjRfSU5T
VFJVQ1RJT05TICsgUklTQ19JTlNUUlVDVElPTlMgKyBNSVBTX0lOU1RSVUNUSU9OUyArIFNINF9J
TlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCiAKIElOU1RSVUNUSU9OX1BBVFRFUk4gPSBS
ZWdleHAubmV3KCdcXEEoKCcgKyBJTlNUUlVDVElPTlMuam9pbignKXwoJykgKyAnKSlcXFonKQog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCShyZXZpc2lvbiAx
NjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHdvcmtp
bmcgY29weSkKQEAgLTE1MCwxNSArMTUwLDE1IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAg
d2hlbiAidDQiCiAgICAgICAgICAgICBjYXNlIGtpbmQKICAgICAgICAgICAgIHdoZW4gOmJ5dGUK
LSAgICAgICAgICAgICAgICAiJXNpbCIKKyAgICAgICAgICAgICAgICAiJWRpbCIKICAgICAgICAg
ICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICAiJXNpIgorICAgICAgICAgICAgICAgICIl
ZGkiCiAgICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICAiJWVzaSIKKyAgICAg
ICAgICAgICAgICAiJWVkaSIKICAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAg
IGlzWDY0ID8gIiVyc2kiIDogIiVlc2kiCisgICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJkaSIg
OiAiJWVkaSIKICAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAgICBpc1g2NCA/
ICIlcnNpIiA6IHJhaXNlCisgICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJkaSIgOiByYWlzZQog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICBlbmQK
QEAgLTIwNiwxNSArMjA2LDE1IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgd2hlbiAidDUi
CiAgICAgICAgICAgICBjYXNlIGtpbmQKICAgICAgICAgICAgIHdoZW4gOmJ5dGUKLSAgICAgICAg
ICAgICAgICAiJWRpbCIKKyAgICAgICAgICAgICAgICAiJXNpbCIKICAgICAgICAgICAgIHdoZW4g
OmhhbGYKLSAgICAgICAgICAgICAgICAiJWRpIgorICAgICAgICAgICAgICAgICIlc2kiCiAgICAg
ICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICAiJWVkaSIKKyAgICAgICAgICAgICAg
ICAiJWVzaSIKICAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIGlzWDY0ID8g
IiVyZGkiIDogIiVlZGkiCisgICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJzaSIgOiAiJWVzaSIK
ICAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcmRpIiA6
IHJhaXNlCisgICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJzaSIgOiByYWlzZQogICAgICAgICAg
ICAgZW5kCiAgICAgICAgIHdoZW4gInQ2IgogICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2Ug
I3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2
NApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAkocmV2
aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFBhcnNlckVycm9y
X2gKIAogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIlBhcnNlclRva2Vucy5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtOTQsOCArOTUsMTAgQEAgc3Ry
dWN0IFBhcnNlckVycm9yIHsKICAgICAgICAgICAgIHJldHVybiBhZGRFcnJvckluZm8oZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCksIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgbV9t
ZXNzYWdlKSwgbV9saW5lLCBzb3VyY2UpOwogICAgICAgICBjYXNlIEV2YWxFcnJvcjoKICAgICAg
ICAgICAgIHJldHVybiBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsIG1fbWVzc2FnZSk7
Ci0gICAgICAgIGNhc2UgU3RhY2tPdmVyZmxvdzoKKyAgICAgICAgY2FzZSBTdGFja092ZXJmbG93
OiB7CisgICAgICAgICAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZShnbG9iYWxPYmpl
Y3QtPnZtKCkpOwogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihn
bG9iYWxPYmplY3QpOworICAgICAgICB9CiAgICAgICAgIGNhc2UgT3V0T2ZNZW1vcnk6CiAgICAg
ICAgICAgICByZXR1cm4gY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpOwogICAg
ICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21w
aWxhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTY3LDYgKzY3LDExIEBAIHZvaWQgQ29tcGlsYXRpb246OmFkZERlc2Ny
aXB0aW9uKGNvbnN0IEMKICAgICBtX2Rlc2NyaXB0aW9ucy5hcHBlbmQoY29tcGlsZWRCeXRlY29k
ZSk7CiB9CiAKK3ZvaWQgQ29tcGlsYXRpb246OmFkZERlc2NyaXB0aW9uKGNvbnN0IE9yaWdpblN0
YWNrJiBzdGFjaywgY29uc3QgQ1N0cmluZyYgZGVzY3JpcHRpb24pCit7CisgICAgYWRkRGVzY3Jp
cHRpb24oQ29tcGlsZWRCeXRlY29kZShzdGFjaywgZGVzY3JpcHRpb24pKTsKK30KKwogRXhlY3V0
aW9uQ291bnRlciogQ29tcGlsYXRpb246OmV4ZWN1dGlvbkNvdW50ZXJGb3IoY29uc3QgT3JpZ2lu
U3RhY2smIG9yaWdpbikKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXhlY3V0aW9uQ291bnRlcj4m
IGNvdW50ZXIgPSBtX2NvdW50ZXJzLmFkZChvcmlnaW4sIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1
ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyQ29tcGlsYXRpb24uaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgQ29tcGlsYXRpb25LaW5kIGtpbmQoKSBj
b25zdCB7IHJldHVybiBtX2tpbmQ7IH0KICAgICAKICAgICB2b2lkIGFkZERlc2NyaXB0aW9uKGNv
bnN0IENvbXBpbGVkQnl0ZWNvZGUmKTsKKyAgICB2b2lkIGFkZERlc2NyaXB0aW9uKGNvbnN0IE9y
aWdpblN0YWNrJiwgY29uc3QgQ1N0cmluZyYgZGVzY3JpcHRpb24pOwogICAgIEV4ZWN1dGlvbkNv
dW50ZXIqIGV4ZWN1dGlvbkNvdW50ZXJGb3IoY29uc3QgT3JpZ2luU3RhY2smKTsKICAgICB2b2lk
IGFkZE9TUkV4aXRTaXRlKGNvbnN0IFZlY3Rvcjxjb25zdCB2b2lkKj4mIGNvZGVBZGRyZXNzZXMp
OwogICAgIE9TUkV4aXQqIGFkZE9TUkV4aXQodW5zaWduZWQgaWQsIGNvbnN0IE9yaWdpblN0YWNr
JiwgRXhpdEtpbmQsIGJvb2wgaXNXYXRjaHBvaW50KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2luZC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNw
cAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDIsNiArNDIsMTIgQEAg
dm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpTQwogICAgIGNhc2UgSlNDOjpQ
cm9maWxlcjo6REZHOgogICAgICAgICBvdXQucHJpbnQoIkRGRyIpOwogICAgICAgICByZXR1cm47
CisgICAgY2FzZSBKU0M6OlByb2ZpbGVyOjpGVEw6CisgICAgICAgIG91dC5wcmludCgiRlRMIik7
CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6UHJvZmlsZXI6OkZUTEZvck9TUkVudHJ5
OgorICAgICAgICBvdXQucHJpbnQoIkZUTEZvck9TUkVudHJ5Iik7CisgICAgICAgIHJldHVybjsK
ICAgICBkZWZhdWx0OgogICAgICAgICBDUkFTSCgpOwogICAgICAgICByZXR1cm47CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21w
aWxhdGlvbktpbmQuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcg
KzMxLDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiBlbnVtIENvbXBp
bGF0aW9uS2luZCB7CiAgICAgTExJbnQsCiAgICAgQmFzZWxpbmUsCi0gICAgREZHCisgICAgREZH
LAorICAgIEZUTCwKKyAgICBGVExGb3JPU1JFbnRyeQogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OlByb2ZpbGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcml0eUNo
ZWNrTW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
aXR5Q2hlY2tNb2RlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bcml0eUNoZWNrTW9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBBcml0
eUNoZWNrTW9kZV9oCisjZGVmaW5lIEFyaXR5Q2hlY2tNb2RlX2gKKworbmFtZXNwYWNlIEpTQyB7
CisKK2VudW0gQXJpdHlDaGVja01vZGUgeworICAgIEFyaXR5Q2hlY2tOb3RSZXF1aXJlZCwKKyAg
ICBNdXN0Q2hlY2tBcml0eQorfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBB
cml0eUNoZWNrTW9kZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEy
LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTAgKzI5LDEyIEBACiAjaWYgRU5BQkxFKEpJVCkg
fHwgRU5BQkxFKExMSU5UKQogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSAiQXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgi
CiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgogI2lu
Y2x1ZGUgIkNvbW1vblNsb3dQYXRoc0V4Y2VwdGlvbnMuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRs
aW5nU2NvcGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJIb3N0Q2Fs
bFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKQEAgLTE2MSwyOCArMTYz
LDQ3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBDQUxMX0VORF9JTVBMKGNyRXhlYywgY3JD
YWxsVGFyZ2V0KTsgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKGZhbHNlKQogCitzdGF0
aWMgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YSogc2V0dXBBcml0eUNoZWNrRGF0YShW
TSYgdm0sIGludCBzbG90c1RvQWRkKQoreworICAgIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVj
a0RhdGEqIHJlc3VsdCA9IHZtLmFyaXR5Q2hlY2tEYXRhLmdldCgpOworICAgIHJlc3VsdC0+cGFk
ZGVkU3RhY2tTcGFjZSA9IHNsb3RzVG9BZGQ7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAodm0u
Y2FuVXNlSklUKCkpIHsKKyAgICAgICAgcmVzdWx0LT50aHVua1RvQ2FsbCA9IHZtLmdldENUSVN0
dWIoYXJpdHlGaXh1cCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CisgICAgICAgIHJlc3Vs
dC0+cmV0dXJuUEMgPSB2bS5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENGb3Io
dm0sIHNsb3RzVG9BZGQgKiBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKS5leGVjdXRhYmxlQWRk
cmVzcygpOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgeworICAgICAgICByZXN1bHQtPnRodW5r
VG9DYWxsID0gMDsKKyAgICAgICAgcmVzdWx0LT5yZXR1cm5QQyA9IDA7CisgICAgfQorICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX2FyaXR5Q2hl
Y2spCiB7CiAgICAgQkVHSU4oKTsKLSAgICBpbnQgU2xvdHNUb0FkZCA9IENvbW1vblNsb3dQYXRo
czo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksIENvZGVGb3JD
YWxsKTsKLSAgICBpZiAoU2xvdHNUb0FkZCA8IDApIHsKKyAgICBpbnQgc2xvdHNUb0FkZCA9IENv
bW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNr
KCksIENvZGVGb3JDYWxsKTsKKyAgICBpZiAoc2xvdHNUb0FkZCA8IDApIHsKICAgICAgICAgZXhl
YyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7CisgICAgICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJv
clNjb3BlKGV4ZWMtPnZtKCkpOwogICAgICAgICBDb21tb25TbG93UGF0aHM6OmludGVycHJldGVy
VGhyb3dJbkNhbGxlcihleGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOwogICAg
ICAgICBSRVRVUk5fVFdPKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90
PigxKSksIGV4ZWMpOwogICAgIH0KLSAgICBSRVRVUk5fVFdPKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8
RXhlY1N0YXRlKj4oU2xvdHNUb0FkZCkpOworICAgIFJFVFVSTl9UV08oMCwgc2V0dXBBcml0eUNo
ZWNrRGF0YSh2bSwgc2xvdHNUb0FkZCkpOwogfQogCiBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhf
Y29uc3RydWN0X2FyaXR5Q2hlY2spCiB7CiAgICAgQkVHSU4oKTsKLSAgICBpbnQgU2xvdHNUb0Fk
ZCA9IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXIt
PnN0YWNrKCksIENvZGVGb3JDb25zdHJ1Y3QpOwotICAgIGlmIChTbG90c1RvQWRkIDwgMCkgewor
ICAgIGludCBzbG90c1RvQWRkID0gQ29tbW9uU2xvd1BhdGhzOjphcml0eUNoZWNrRm9yKGV4ZWMs
ICZ2bS5pbnRlcnByZXRlci0+c3RhY2soKSwgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgaWYgKHNs
b3RzVG9BZGQgPCAwKSB7CiAgICAgICAgIGV4ZWMgPSBleGVjLT5jYWxsZXJGcmFtZSgpOworICAg
ICAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZShleGVjLT52bSgpKTsKICAgICAgICAg
Q29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywgY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKICAgICAgICAgUkVUVVJOX1RXTyhiaXR3aXNlX2Nhc3Q8
dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSkpLCBleGVjKTsKICAgICB9Ci0gICAgUkVU
VVJOX1RXTygwLCByZWludGVycHJldF9jYXN0PEV4ZWNTdGF0ZSo+KFNsb3RzVG9BZGQpKTsKKyAg
ICBSRVRVUk5fVFdPKDAsIHNldHVwQXJpdHlDaGVja0RhdGEodm0sIHNsb3RzVG9BZGQpKTsKIH0K
IAogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3RvdWNoX2VudHJ5KQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5o
CSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogbmFt
ZXNwYWNlIENvbW1vblNsb3dQYXRocyB7CiAKK3N0cnVjdCBBcml0eUNoZWNrRGF0YSB7CisgICAg
dW5zaWduZWQgcGFkZGVkU3RhY2tTcGFjZTsKKyAgICB2b2lkKiB0aHVua1RvQ2FsbDsKKyAgICB2
b2lkKiByZXR1cm5QQzsKK307CisKIEFMV0FZU19JTkxJTkUgaW50IGFyaXR5Q2hlY2tGb3IoRXhl
Y1N0YXRlKiBleGVjLCBKU1N0YWNrKiBzdGFjaywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
KQogewogICAgIEpTRnVuY3Rpb24qIGNhbGxlZSA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oZXhlYy0+
Y2FsbGVlKCkpOwpAQCAtNTgsMTggKzY0LDEyIEBAIEFMV0FZU19JTkxJTkUgaW50IGFyaXR5Q2hl
Y2tGb3IoRXhlY1N0YXQKICAgICAKICAgICBBU1NFUlQoYXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMgPCBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSk7CiAgICAgaW50IG1pc3NpbmdBcmd1
bWVudENvdW50ID0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgLSBhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpczsKLSAgICBpbnQgcGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291bnQgPSBXVEY6
OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbWlzc2luZ0Fy
Z3VtZW50Q291bnQpOworICAgIGludCBuZWVkZWRTdGFja1NwYWNlID0gbWlzc2luZ0FyZ3VtZW50
Q291bnQgKyAxOyAvLyBBbGxvdyBzcGFjZSB0byBzYXZlIHRoZSBvcmlnaW5hbCByZXR1cm4gUEMu
CisgICAgaW50IHBhZGRlZFN0YWNrU3BhY2UgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3Rh
Y2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbmVlZGVkU3RhY2tTcGFjZSk7CiAKLSNpZiBVU0UoU0VQ
QVJBVEVfQ19BTkRfSlNfU1RBQ0spCi0gICAgaWYgKCFzdGFjay0+Z3JvdyhleGVjLT5yZWdpc3Rl
cnMoKSAtIHBhZGRlZE1pc3NpbmdBcmd1bWVudENvdW50KSkKKyAgICBpZiAoIXN0YWNrLT5lbnN1
cmVDYXBhY2l0eUZvcihleGVjLT5yZWdpc3RlcnMoKSAtIHBhZGRlZFN0YWNrU3BhY2UpKQogICAg
ICAgICByZXR1cm4gLTE7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdGFjayk7Ci0gICAgaWYg
KCFleGVjLT52bSgpLmlzU2FmZVRvUmVjdXJzZShwYWRkZWRNaXNzaW5nQXJndW1lbnRDb3VudCAq
IHNpemVvZihSZWdpc3RlcikpKQotICAgICAgICByZXR1cm4gLTE7Ci0jZW5kaWYgLy8gVVNFKFNF
UEFSQVRFX0NfQU5EX0pTX1NUQUNLKQotCi0gICAgcmV0dXJuIHBhZGRlZE1pc3NpbmdBcmd1bWVu
dENvdW50OworICAgIHJldHVybiBwYWRkZWRTdGFja1NwYWNlIC8gc3RhY2tBbGlnbm1lbnRSZWdp
c3RlcnMoKTsKIH0KIAogaW5saW5lIGJvb2wgb3BJbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
cHJvcE5hbWUsIEpTVmFsdWUgYmFzZVZhbCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXJyb3JI
YW5kbGluZ1Njb3BlLmgiCisKKyNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIk9w
dGlvbnMuaCIKKyNpbmNsdWRlICJWTS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworRXJyb3JIYW5k
bGluZ1Njb3BlOjpFcnJvckhhbmRsaW5nU2NvcGUoVk0mIHZtKQorICAgIDogbV92bSh2bSkKK3sK
KyAgICBpZiAoIW1fdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5KQorICAgICAgICBtX3ZtLnN0YWNr
UG9pbnRlckF0Vk1FbnRyeSA9IHRoaXM7CisgICAgc2l6ZV90IG5ld1Jlc2VydmVkWm9uZVNpemUg
PSBPcHRpb25zOjplcnJvck1vZGVSZXNlcnZlZFpvbmVTaXplKCk7CisgICAgbV9zYXZlZFJlc2Vy
dmVkWm9uZVNpemUgPSBtX3ZtLnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShu
ZXdSZXNlcnZlZFpvbmVTaXplKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIG1fdm0u
aW50ZXJwcmV0ZXItPnN0YWNrKCkuc2V0UmVzZXJ2ZWRab25lU2l6ZShuZXdSZXNlcnZlZFpvbmVT
aXplKTsKKyNlbmRpZgorfQorCitFcnJvckhhbmRsaW5nU2NvcGU6On5FcnJvckhhbmRsaW5nU2Nv
cGUoKQoreworICAgIGlmIChtX3ZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9PSB0aGlzKQorICAg
ICAgICBtX3ZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG51bGxwdHI7CisgICAgbV92bS51cGRh
dGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUp
OworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgbV92bS5pbnRlcnByZXRlci0+c3RhY2so
KS5zZXRSZXNlcnZlZFpvbmVTaXplKG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplKTsKKyNlbmRpZgor
fQorCit9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIEVycm9ySGFuZGxpbmdTY29wZV9oCisjZGVmaW5lIEVycm9ySGFu
ZGxpbmdTY29wZV9oCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBWTTsKKworY2xhc3MgRXJy
b3JIYW5kbGluZ1Njb3BlIHsKK3B1YmxpYzoKKyAgICBKU19FWFBPUlRfUFJJVkFURSBFcnJvckhh
bmRsaW5nU2NvcGUoVk0mKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+RXJyb3JIYW5kbGluZ1Nj
b3BlKCk7Citwcml2YXRlOgorICAgIFZNJiBtX3ZtOworICAgIHNpemVfdCBtX3NhdmVkUmVzZXJ2
ZWRab25lU2l6ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRXJyb3JI
YW5kbGluZ1Njb3BlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJD
YWxsRnJhbWUuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5nU2NvcGUuaCIKICNpbmNsdWRlICJF
cnJvckluc3RhbmNlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIKICNp
bmNsdWRlICJKU09iamVjdC5oIgpAQCAtMTYwLDE0ICsxNjEsMTYgQEAgSlNPYmplY3QqIHRocm93
T3V0T2ZNZW1vcnlFcnJvcihFeGVjU3RhdAogCiBKU09iamVjdCogdGhyb3dTdGFja092ZXJmbG93
RXJyb3IoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEludGVycHJldGVyOjpFcnJvckhhbmRsaW5n
TW9kZSBtb2RlKGV4ZWMpOwotICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4
ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CisgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZSh2bSk7CisgICAgcmV0dXJu
IHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7
CiB9CiAKIEpTT2JqZWN0KiB0aHJvd1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZSBtb2RlKGV4
ZWMpOwotICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVRl
cm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oJmV4ZWMtPnZtKCkpKTsKKyAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOworICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKHZtKTsKKyAgICBy
ZXR1cm4gdm0udGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVGVybWluYXRlZEV4ZWN1dGlvbkV4
Y2VwdGlvbigmdm0pKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkocmV2aXNpb24gMTYyOTYxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJMTEludEVudHJ5cG9pbnQuaCIKICNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCisjaW5jbHVkZSA8d3Rm
L0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTExOCwxMiArMTE5LDE0IEBAIHZvaWQgU2NyaXB0
RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUoQ29kZUIKICAgICBzd2l0Y2ggKGtpbmQpIHsKICAgICBj
YXNlIENvZGVGb3JDYWxsOgogICAgICAgICBtX2ppdENvZGVGb3JDYWxsID0gZ2VuZXJpY0NvZGVC
bG9jay0+aml0Q29kZSgpOwotICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sg
PSBnZW5lcmljQ29kZUJsb2NrLT5qaXRDb2RlV2l0aEFyaXR5Q2hlY2soKTsKKyAgICAgICAgbV9q
aXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7Cisg
ICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncyA9IE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cigpOwogICAgICAgICBtX251bVBhcmFtZXRlcnNGb3JDYWxsID0g
Z2VuZXJpY0NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENvZGVGb3JDb25zdHJ1Y3Q6CiAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IGdl
bmVyaWNDb2RlQmxvY2stPmppdENvZGUoKTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0
V2l0aEFyaXR5Q2hlY2sgPSBnZW5lcmljQ29kZUJsb2NrLT5qaXRDb2RlV2l0aEFyaXR5Q2hlY2so
KTsKKyAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoKTsKKyAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5
Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAgICAgICAg
bV9udW1QYXJhbWV0ZXJzRm9yQ29uc3RydWN0ID0gZ2VuZXJpY0NvZGVCbG9jay0+bnVtUGFyYW1l
dGVycygpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xMzMsNyArMTM2LDYgQEAgdm9pZCBT
Y3JpcHRFeGVjdXRhYmxlOjppbnN0YWxsQ29kZShDb2RlQgogICAgICAgICBQcm9ncmFtRXhlY3V0
YWJsZSogZXhlY3V0YWJsZSA9IGpzQ2FzdDxQcm9ncmFtRXhlY3V0YWJsZSo+KHRoaXMpOwogICAg
ICAgICBQcm9ncmFtQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBzdGF0aWNfY2FzdDxQcm9ncmFtQ29k
ZUJsb2NrKj4oZ2VuZXJpY0NvZGVCbG9jayk7CiAgICAgICAgIAotICAgICAgICBBU1NFUlQoIWNv
ZGVCbG9jay0+aml0Q29kZVdpdGhBcml0eUNoZWNrKCkpOwogICAgICAgICBBU1NFUlQoa2luZCA9
PSBDb2RlRm9yQ2FsbCk7CiAgICAgICAgIAogICAgICAgICBvbGRDb2RlQmxvY2sgPSBleGVjdXRh
YmxlLT5tX3Byb2dyYW1Db2RlQmxvY2s7CkBAIC0xNDUsNyArMTQ3LDYgQEAgdm9pZCBTY3JpcHRF
eGVjdXRhYmxlOjppbnN0YWxsQ29kZShDb2RlQgogICAgICAgICBFdmFsRXhlY3V0YWJsZSogZXhl
Y3V0YWJsZSA9IGpzQ2FzdDxFdmFsRXhlY3V0YWJsZSo+KHRoaXMpOwogICAgICAgICBFdmFsQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSBzdGF0aWNfY2FzdDxFdmFsQ29kZUJsb2NrKj4oZ2VuZXJpY0Nv
ZGVCbG9jayk7CiAgICAgICAgIAotICAgICAgICBBU1NFUlQoIWNvZGVCbG9jay0+aml0Q29kZVdp
dGhBcml0eUNoZWNrKCkpOwogICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ2FsbCk7CiAg
ICAgICAgIAogICAgICAgICBvbGRDb2RlQmxvY2sgPSBleGVjdXRhYmxlLT5tX2V2YWxDb2RlQmxv
Y2s7CkBAIC02MTAsNiArNjExLDQ2IEBAIFN0cmluZyBGdW5jdGlvbkV4ZWN1dGFibGU6OnBhcmFt
U3RyaW5nKCkKICAgICByZXR1cm4gbV91bmxpbmtlZEV4ZWN1dGFibGUtPnBhcmFtU3RyaW5nKCk7
CiB9CiAKK3ZvaWQgRXhlY3V0YWJsZUJhc2U6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
K3sKKyAgICBFeGVjdXRhYmxlQmFzZSogcmVhbFRoaXMgPSBjb25zdF9jYXN0PEV4ZWN1dGFibGVC
YXNlKj4odGhpcyk7CisgICAgCisgICAgaWYgKGNsYXNzSW5mbygpID09IE5hdGl2ZUV4ZWN1dGFi
bGU6OmluZm8oKSkgeworICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmUgPSBqc0Nhc3Q8
TmF0aXZlRXhlY3V0YWJsZSo+KHJlYWxUaGlzKTsKKyAgICAgICAgb3V0LnByaW50KCJOYXRpdmVF
eGVjdXRhYmxlOiIsIFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihuYXRpdmUtPmZ1bmN0
aW9uKCkpKSwgIi8iLCBSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4obmF0aXZlLT5jb25z
dHJ1Y3RvcigpKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmIChjbGFz
c0luZm8oKSA9PSBFdmFsRXhlY3V0YWJsZTo6aW5mbygpKSB7CisgICAgICAgIEV2YWxFeGVjdXRh
YmxlKiBldmFsID0ganNDYXN0PEV2YWxFeGVjdXRhYmxlKj4ocmVhbFRoaXMpOworICAgICAgICBp
ZiAoQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBldmFsLT5jb2RlQmxvY2soKSkKKyAgICAgICAgICAg
IG91dC5wcmludCgqY29kZUJsb2NrKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0LnBy
aW50KCJFdmFsRXhlY3V0YWJsZSB3L28gQ29kZUJsb2NrIik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgCisgICAgaWYgKGNsYXNzSW5mbygpID09IFByb2dyYW1FeGVjdXRhYmxlOjppbmZv
KCkpIHsKKyAgICAgICAgUHJvZ3JhbUV4ZWN1dGFibGUqIGV2YWwgPSBqc0Nhc3Q8UHJvZ3JhbUV4
ZWN1dGFibGUqPihyZWFsVGhpcyk7CisgICAgICAgIGlmIChDb2RlQmxvY2sqIGNvZGVCbG9jayA9
IGV2YWwtPmNvZGVCbG9jaygpKQorICAgICAgICAgICAgb3V0LnByaW50KCpjb2RlQmxvY2spOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXQucHJpbnQoIlByb2dyYW1FeGVjdXRhYmxlIHcv
byBDb2RlQmxvY2siKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBGdW5jdGlv
bkV4ZWN1dGFibGUqIGZ1bmN0aW9uID0ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KHJlYWxU
aGlzKTsKKyAgICBpZiAoIWZ1bmN0aW9uLT5laXRoZXJDb2RlQmxvY2soKSkKKyAgICAgICAgb3V0
LnByaW50KCJGdW5jdGlvbkV4ZWN1dGFibGUgdy9vIENvZGVCbG9jayIpOworICAgIGVsc2Ugewor
ICAgICAgICBDb21tYVByaW50ZXIgY29tbWEoIi8iKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uLT5j
b2RlQmxvY2tGb3JDYWxsKCkpCisgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICpmdW5jdGlv
bi0+Y29kZUJsb2NrRm9yQ2FsbCgpKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uLT5jb2RlQmxvY2tG
b3JDb25zdHJ1Y3QoKSkKKyAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgKmZ1bmN0aW9uLT5j
b2RlQmxvY2tGb3JDb25zdHJ1Y3QoKSk7CisgICAgfQorfQorCiBDb2RlQmxvY2tIYXNoIEV4ZWN1
dGFibGVCYXNlOjpoYXNoRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkgY29uc3QKIHsK
ICAgICBpZiAodGhpcy0+Y2xhc3NJbmZvKCkgPT0gTmF0aXZlRXhlY3V0YWJsZTo6aW5mbygpKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAkocmV2aXNp
b24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEV4ZWN1dGFibGVfaAog
I2RlZmluZSBFeGVjdXRhYmxlX2gKIAorI2luY2x1ZGUgIkFyaXR5Q2hlY2tNb2RlLmgiCiAjaW5j
bHVkZSAiQ2FsbERhdGEuaCIKICNpbmNsdWRlICJDb2RlQmxvY2tIYXNoLmgiCiAjaW5jbHVkZSAi
Q29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIklu
dGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0LmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgiCiAjaW5jbHVkZSAi
U2FtcGxpbmdUb29sLmgiCiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlVubGlu
a2VkQ29kZUJsb2NrLmgiCkBAIC0xNDQsMzcgKzE0Niw5NCBAQCBwdWJsaWM6CiAgICAgICAgIEFT
U0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwogICAgICAgICByZXR1cm4gZ2VuZXJhdGVk
SklUQ29kZUZvckNvbnN0cnVjdCgpOwogICAgIH0KLQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBnZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrKCkKLSAgICB7Ci0gICAgICAg
IEFTU0VSVChtX2ppdENvZGVGb3JDYWxsKTsKLSAgICAgICAgQVNTRVJUKG1faml0Q29kZUZvckNh
bGxXaXRoQXJpdHlDaGVjayk7Ci0gICAgICAgIHJldHVybiBtX2ppdENvZGVGb3JDYWxsV2l0aEFy
aXR5Q2hlY2s7Ci0gICAgfQotCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGdlbmVyYXRlZEpJ
VENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjaygpCi0gICAgewotICAgICAgICBBU1NFUlQo
bV9qaXRDb2RlRm9yQ29uc3RydWN0KTsKLSAgICAgICAgQVNTRVJUKG1faml0Q29kZUZvckNvbnN0
cnVjdFdpdGhBcml0eUNoZWNrKTsKLSAgICAgICAgcmV0dXJuIG1faml0Q29kZUZvckNvbnN0cnVj
dFdpdGhBcml0eUNoZWNrOwotICAgIH0KLSAgICAgICAgCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGdlbmVyYXRlZEpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihDb2RlU3BlY2lhbGl6YXRpb25L
aW5kIGtpbmQpCi0gICAgewotICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKLSAgICAg
ICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrKCk7Ci0g
ICAgICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwotICAgICAgICByZXR1cm4g
Z2VuZXJhdGVkSklUQ29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKCk7Ci0gICAgfQotICAg
ICAgICAKLSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSklUQ29kZVdpdGhBcml0eUNoZWNr
Rm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKKyAgICAKKyAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgZW50cnlwb2ludEZvcigKKyAgICAgICAgVk0mIHZtLCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQsIEFyaXR5Q2hlY2tNb2RlIGFyaXR5LCBSZWdpc3RlclByZXNlcnZhdGlvbk1v
ZGUgcmVnaXN0ZXJzKQogICAgIHsKLSAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCi0g
ICAgICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENv
ZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2spOwotICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9y
Q29uc3RydWN0KTsKLSAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFz
ZSwgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spOworICAgICAgICAvLyBDaGVj
ayBpZiB3ZSBoYXZlIGEgY2FjaGVkIHJlc3VsdC4gV2Ugb25seSBoYXZlIGl0IGZvciBhcml0eSBj
aGVjayBiZWNhdXNlIHdlIHVzZSB0aGUKKyAgICAgICAgLy8gbm8tYXJpdHkgZW50cnlwb2ludCBp
biBub24tdmlydHVhbCBjYWxscywgd2hpY2ggd2lsbCAiY2FjaGUiIHRoaXMgdmFsdWUgZGlyZWN0
bHkgaW4KKyAgICAgICAgLy8gbWFjaGluZSBjb2RlLgorICAgICAgICBpZiAoYXJpdHkgPT0gTXVz
dENoZWNrQXJpdHkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoa2luZCkgeworICAgICAgICAgICAg
Y2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgewor
ICAgICAgICAgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2pp
dENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2spCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBj
YXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgICAgICAgICAgaWYgKE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tB
bmRQcmVzZXJ2ZVJlZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAg
ICAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgICAgIGlmIChNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgcmVzdWx0ID0gbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5
Q2hlY2spCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lz
dGVyczoKKyAgICAgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1
bHQgPSBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncykK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcmVz
dWx0ID0KKyAgICAgICAgICAgIGdlbmVyYXRlZEpJVENvZGVGb3Ioa2luZCktPmFkZHJlc3NGb3JD
YWxsKHZtLCB0aGlzLCBhcml0eSwgcmVnaXN0ZXJzKTsKKyAgICAgICAgaWYgKGFyaXR5ID09IE11
c3RDaGVja0FyaXR5KSB7CisgICAgICAgICAgICAvLyBDYWNoZSB0aGUgcmVzdWx0OyB0aGlzIGlz
IG5lY2Vzc2FyeSBmb3IgdGhlIEpJVCdzIHZpcnR1YWwgY2FsbCBvcHRpbWl6YXRpb25zLgorICAg
ICAgICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAgICAgICBjYXNlIENvZGVGb3JDYWxsOgor
ICAgICAgICAgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAgICAgICAgY2Fz
ZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAgICAgICBt
X2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgor
ICAgICAgICAgICAgICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVz
ZXJ2ZVJlZ3MgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ29kZUZv
ckNvbnN0cnVjdDoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAg
ICAgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAg
ICAgICAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSByZXN1bHQ7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTXVzdFBy
ZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1
Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncyA9IHJlc3VsdDsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQor
CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcigK
KyAgICAgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlv
bk1vZGUgcmVnaXN0ZXJzKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAg
IGNhc2UgQ29kZUZvckNhbGw6CisgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAg
ICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAg
ICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZv
ckNhbGxXaXRoQXJpdHlDaGVjayk7CisgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lz
dGVyczoKKyAgICAgICAgICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVC
YXNlLCBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MpOworICAg
ICAgICAgICAgfQorICAgICAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgICAgICBz
d2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhl
Y3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKTsKKyAgICAg
ICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgIHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNvbnN0cnVjdFdp
dGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsK
ICAgICB9Ci0gICAgICAgIAorICAgIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOdW1Q
YXJhbWV0ZXJzRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKICAgICB7CiAgICAgICAg
IGlmIChraW5kID09IENvZGVGb3JDYWxsKQpAQCAtMjEwLDIyICsyNjksOSBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gaW50cmluc2ljKCk7CiAgICAgICAgIHJldHVybiBOb0ludHJpbnNp
YzsKICAgICB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAg
ICAgIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBob3N0Q29kZUVudHJ5Rm9yKENvZGVTcGVj
aWFsaXphdGlvbktpbmQga2luZCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRD
b2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2FsbCgpOwotICAgIH0KLQotICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBqc0NvZGVFbnRyeUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0g
ICAgewotICAgICAgICByZXR1cm4gZ2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS0+YWRkcmVzc0Zv
ckNhbGwoKTsKLSAgICB9Ci0KLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIganNDb2RlV2l0aEFy
aXR5Q2hlY2tFbnRyeUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAgewotICAg
ICAgICByZXR1cm4gZ2VuZXJhdGVkSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQpOwotICAg
IH0KLQogcHJvdGVjdGVkOgogICAgIEV4ZWN1dGFibGVCYXNlKiBtX3ByZXY7CiAgICAgRXhlY3V0
YWJsZUJhc2UqIG1fbmV4dDsKQEAgLTIzNCw2ICsyODAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVm
UHRyPEpJVENvZGU+IG1faml0Q29kZUZvckNvbnN0cnVjdDsKICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrOwogICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjazsKKyAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVS
ZWdzOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRo
QXJpdHlDaGVja0FuZFByZXNlcnZlUmVnczsKIH07CiAKIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGUg
OiBwdWJsaWMgRXhlY3V0YWJsZUJhc2UgewpAQCAtMjQyLDE0ICsyOTAsMTEgQEAgY2xhc3MgTmF0
aXZlRXhlY3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYgogcHVibGljOgogICAgIHR5cGVkZWYgRXhl
Y3V0YWJsZUJhc2UgQmFzZTsKIAotICAgIHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUo
Vk0mIHZtLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlvbiBm
dW5jdGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNvbnN0cnVjdFRodW5rLCBOYXRpdmVGdW5j
dGlvbiBjb25zdHJ1Y3RvciwgSW50cmluc2ljIGludHJpbnNpYykKKyAgICBzdGF0aWMgTmF0aXZl
RXhlY3V0YWJsZSogY3JlYXRlKFZNJiB2bSwgUGFzc1JlZlB0cjxKSVRDb2RlPiBjYWxsVGh1bmss
IE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNvbnN0cnVjdFRo
dW5rLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvciwgSW50cmluc2ljIGludHJpbnNpYykKICAg
ICB7CiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGU7CiAgICAgICAgIGV4ZWN1
dGFibGUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPih2bS5o
ZWFwKSkgTmF0aXZlRXhlY3V0YWJsZSh2bSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKLSAgICAg
ICAgaWYgKCFjYWxsVGh1bmspCi0gICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlv
bih2bSwgMCwgMCwgaW50cmluc2ljKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZXhlY3V0
YWJsZS0+ZmluaXNoQ3JlYXRpb24odm0sIEpJVENvZGU6Omhvc3RGdW5jdGlvbihjYWxsVGh1bmsp
LCBKSVRDb2RlOjpob3N0RnVuY3Rpb24oY29uc3RydWN0VGh1bmspLCBpbnRyaW5zaWMpOworICAg
ICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbih2bSwgY2FsbFRodW5rLCBjb25zdHJ1Y3RU
aHVuaywgaW50cmluc2ljKTsKICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgfQogCkBA
IC0yODgsOCArMzMzLDYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNhbGxUaHVuaywgUGFzc1JlZlB0cjxKSVRDb2RlPiBj
b25zdHJ1Y3RUaHVuaywgSW50cmluc2ljIGludHJpbnNpYykKICAgICB7CiAgICAgICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNo
ZWNrID0gY2FsbFRodW5rID8gY2FsbFRodW5rLT5hZGRyZXNzRm9yQ2FsbCgpIDogTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyKCk7Ci0gICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNo
ZWNrID0gY29uc3RydWN0VGh1bmsgPyBjb25zdHJ1Y3RUaHVuay0+YWRkcmVzc0ZvckNhbGwoKSA6
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOwogICAgICAgICBtX2ppdENvZGVGb3JDYWxsID0gY2Fs
bFRodW5rOwogICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3QgPSBjb25zdHJ1Y3RUaHVuazsK
ICAgICAgICAgbV9pbnRyaW5zaWMgPSBpbnRyaW5zaWM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3
LDYgKzk3LDkgQEAgdW5pb24gRW5jb2RlZFZhbHVlRGVzY3JpcHRvciB7CiAjZW5kaWYKIH07CiAK
KyNkZWZpbmUgVGFnT2Zmc2V0IChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnRhZykpCisjZGVmaW5lIFBheWxvYWRPZmZzZXQgKE9CSkVDVF9PRkZTRVRPRihF
bmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpCisKIGVudW0gV2hpY2hWYWx1
ZVdvcmQgewogICAgIFRhZ1dvcmQsCiAgICAgUGF5bG9hZFdvcmQKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkw
LDYgKzI5MCwxMCBAQCBKU0xvY2s6OkRyb3BBbGxMb2Nrczo6RHJvcEFsbExvY2tzKEV4ZWNTCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2spOwog
I2VuZGlmCisgICAgbV9zYXZlZFJlc2VydmVkWm9uZVNpemUgPSBtX3ZtLT5yZXNlcnZlZFpvbmVT
aXplKCk7CisgICAgbV9zYXZlZFN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG1fdm0tPnN0YWNrUG9p
bnRlckF0Vk1FbnRyeTsKKyAgICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBudWxscHRy
OworCiAgICAgaWYgKGFsd2F5c0Ryb3BMb2NrcykKICAgICAgICAgbV9sb2NrQ291bnQgPSBtX3Zt
LT5hcGlMb2NrKCkuZHJvcEFsbExvY2tzVW5jb25kaXRpb25hbGx5KHNwaW5Mb2NrKTsKICAgICBl
bHNlCkBAIC0zMDYsNiArMzEwLDEwIEBAIEpTTG9jazo6RHJvcEFsbExvY2tzOjpEcm9wQWxsTG9j
a3MoVk0qIHYKICNpZiBQTEFURk9STShJT1MpCiAgICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZz
cGluTG9jayk7CiAjZW5kaWYKKyAgICBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fdm0tPnJl
c2VydmVkWm9uZVNpemUoKTsKKyAgICBtX3NhdmVkU3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbV92
bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5OworICAgIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRy
eSA9IG51bGxwdHI7CisKICAgICBpZiAoYWx3YXlzRHJvcExvY2tzKQogICAgICAgICBtX2xvY2tD
b3VudCA9IG1fdm0tPmFwaUxvY2soKS5kcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoc3Bpbkxv
Y2spOwogICAgIGVsc2UKQEAgLTMyMSw2ICszMjksOSBAQCBKU0xvY2s6OkRyb3BBbGxMb2Nrczo6
fkRyb3BBbGxMb2NrcygpCiAgICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZzcGluTG9jayk7CiAj
ZW5kaWYKICAgICBtX3ZtLT5hcGlMb2NrKCkuZ3JhYkFsbExvY2tzKG1fbG9ja0NvdW50LCBzcGlu
TG9jayk7CisKKyAgICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBtX3NhdmVkU3RhY2tQ
b2ludGVyQXRWTUVudHJ5OworICAgIG1fdm0tPnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRa
b25lU2l6ZShtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCSh3b3JraW5n
IGNvcHkpCkBAIC05NSwxMCArOTUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKU19F
WFBPUlRfUFJJVkFURSBib29sIGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCk7CiAKLSAgICAg
ICAgdW5zaWduZWQgZHJvcEFsbExvY2tzKFNwaW5Mb2NrJik7Ci0gICAgICAgIHVuc2lnbmVkIGRy
b3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseShTcGluTG9jayYpOwotICAgICAgICB2b2lkIGdyYWJB
bGxMb2Nrcyh1bnNpZ25lZCBsb2NrQ291bnQsIFNwaW5Mb2NrJik7Ci0KICAgICAgICAgdm9pZCB3
aWxsRGVzdHJveVZNKFZNKik7CiAKICAgICAgICAgY2xhc3MgRHJvcEFsbExvY2tzIHsKQEAgLTEx
NCw5ICsxMTAsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHByaXZhdGU6CiAgICAgICAg
ICAgICBpbnRwdHJfdCBtX2xvY2tDb3VudDsKICAgICAgICAgICAgIFJlZlB0cjxWTT4gbV92bTsK
KyAgICAgICAgICAgIHNpemVfdCBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZTsKKyAgICAgICAgICAg
IHZvaWQqIG1fc2F2ZWRTdGFja1BvaW50ZXJBdFZNRW50cnk7CiAgICAgICAgIH07CiAKICAgICBw
cml2YXRlOgorICAgICAgICB1bnNpZ25lZCBkcm9wQWxsTG9ja3MoU3BpbkxvY2smKTsKKyAgICAg
ICAgdW5zaWduZWQgZHJvcEFsbExvY2tzVW5jb25kaXRpb25hbGx5KFNwaW5Mb2NrJik7CisgICAg
ICAgIHZvaWQgZ3JhYkFsbExvY2tzKHVuc2lnbmVkIGxvY2tDb3VudCwgU3BpbkxvY2smKTsKKwog
ICAgICAgICBTcGluTG9jayBtX3NwaW5Mb2NrOwogICAgICAgICBNdXRleCBtX2xvY2s7CiAgICAg
ICAgIFRocmVhZElkZW50aWZpZXIgbV9vd25lclRocmVhZDsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjU0LDcgKzY1NCw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhK
U1ZhbHUKICAgICAgICAgICAgICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKICAgICAg
ICAgICAgICAgICBBU1NFUlQoaXNKU0FycmF5KGFzT2JqZWN0KGluVmFsdWUpKSB8fCBhc09iamVj
dChpblZhbHVlKS0+aW5oZXJpdHMoSlNBcnJheTo6aW5mbygpKSk7CiAgICAgICAgICAgICAgICAg
aWYgKG9iamVjdFN0YWNrLnNpemUoKSArIGFycmF5U3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRl
clJlY3Vyc2lvbikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fZXhlYy0+dm0oKS50aHJv
d0V4Y2VwdGlvbihtX2V4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYyk7
CiAKICAgICAgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkoaW5WYWx1ZSk7CiAg
ICAgICAgICAgICAgICAgYXJyYXlTdGFjay5wdXNoKGFycmF5KTsKQEAgLTcwNSw3ICs3MDUsNyBA
QCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgICAgICAg
ICAgQVNTRVJUKGluVmFsdWUuaXNPYmplY3QoKSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFp
c0pTQXJyYXkoYXNPYmplY3QoaW5WYWx1ZSkpICYmICFhc09iamVjdChpblZhbHVlKS0+aW5oZXJp
dHMoSlNBcnJheTo6aW5mbygpKSk7CiAgICAgICAgICAgICAgICAgaWYgKG9iamVjdFN0YWNrLnNp
emUoKSArIGFycmF5U3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihtX2V4ZWMs
IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpKTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYyk7CiAKICAgICAgICAgICAgICAg
ICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoaW5WYWx1ZSk7CiAgICAgICAgICAgICAgICAg
b2JqZWN0U3RhY2sucHVzaChvYmplY3QpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29y
ZXMuaD4KICNpbmNsdWRlIDx3dGYvUGFnZUJsb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgpAQCAtMTc1LDYgKzE3Niw0NSBAQCBjb25zdCBPcHRpb25zOjpFbnRyeUluZm8gT3B0
aW9uczo6c19vcHRpCiAjdW5kZWYgRk9SX0VBQ0hfT1BUSU9OCiB9OwogCitzdGF0aWMgdm9pZCBy
ZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKCkKK3sKKyNpZiAhRU5BQkxFKEpJVCkKKyAgICBPcHRp
b25zOjp1c2VKSVQoKSA9IGZhbHNlOworICAgIE9wdGlvbnM6OnVzZURGR0pJVCgpID0gZmFsc2U7
CisjZW5kaWYKKyNpZiAhRU5BQkxFKFlBUlJfSklUKQorICAgIE9wdGlvbnM6OnVzZVJlZ0V4cEpJ
VCgpID0gZmFsc2U7CisjZW5kaWYKKyAgICAKKyAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2Vt
Ymx5KCkKKyAgICAgICAgfHwgT3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkKKyAgICAgICAg
fHwgT3B0aW9uczo6ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCkKKyAgICAgICAgfHwgT3B0aW9uczo6
ZHVtcEdyYXBoQXRFYWNoUGhhc2UoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ29tcGls
YXRpb24oKQorICAgICAgICB8fCBPcHRpb25zOjpsb2dDb21waWxhdGlvbkNoYW5nZXMoKQorICAg
ICAgICB8fCBPcHRpb25zOjp2YWxpZGF0ZUdyYXBoKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmFs
aWRhdGVHcmFwaEF0RWFjaFBoYXNlKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigp
CisgICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkKKyAgICAgICAg
fHwgT3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkKKyAgICAgICAgfHwgT3B0aW9uczo6cmVw
b3J0RlRMQ29tcGlsZVRpbWVzKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNGQSgpCisg
ICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VGVExGYWlsdXJlKCkpCisgICAgICAgIE9wdGlvbnM6
OmFsd2F5c0NvbXB1dGVIYXNoKCkgPSB0cnVlOworICAgIAorICAgIC8vIENvbXB1dGUgdGhlIG1h
eGltdW0gdmFsdWUgb2YgdGhlIHJlb3B0aW1pemF0aW9uIHJldHJ5IGNvdW50ZXIuIFRoaXMgaXMg
c2ltcGx5CisgICAgLy8gdGhlIGxhcmdlc3QgdmFsdWUgYXQgd2hpY2ggd2UgZG9uJ3Qgb3ZlcmZs
b3cgdGhlIGV4ZWN1dGUgY291bnRlciwgd2hlbiB1c2luZyBpdAorICAgIC8vIHRvIGxlZnQtc2hp
ZnQgdGhlIGV4ZWN1dGlvbiBjb3VudGVyIGJ5IHRoaXMgYW1vdW50LiBDdXJyZW50bHkgdGhlIHZh
bHVlIGVuZHMKKyAgICAvLyB1cCBiZWluZyAxOCwgc28gdGhpcyBsb29wIGlzIG5vdCBzbyB0ZXJy
aWJsZTsgaXQgcHJvYmFibHkgdGFrZXMgdXAgfjEwMCBjeWNsZXMKKyAgICAvLyB0b3RhbCBvbiBh
IDMyLWJpdCBwcm9jZXNzb3IuCisgICAgT3B0aW9uczo6cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50
ZXJNYXgoKSA9IDA7CisgICAgd2hpbGUgKChzdGF0aWNfY2FzdDxpbnQ2NF90PihPcHRpb25zOjp0
aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCAoT3B0aW9uczo6cmVvcHRp
bWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSArIDEpKSA8PSBzdGF0aWNfY2FzdDxpbnQ2NF90Pihz
dGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSkpCisgICAgICAgIE9wdGlvbnM6OnJl
b3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkrKzsKKworICAgIEFTU0VSVCgoc3RhdGljX2Nh
c3Q8aW50NjRfdD4oT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAo
KSkgPDwgT3B0aW9uczo6cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSkgPiAwKTsKKyAg
ICBBU1NFUlQoKHN0YXRpY19jYXN0PGludDY0X3Q+KE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGlt
aXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IE9wdGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3Vu
dGVyTWF4KCkpIDw9IHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50
MzJfdD46Om1heCgpKSk7Cit9CisKIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiB7CiAgICAg
Ly8gSW5pdGlhbGl6ZSBlYWNoIG9mIHRoZSBvcHRpb25zIHdpdGggdGhlaXIgZGVmYXVsdCB2YWx1
ZXM6CkBAIC0yMDQsMzAgKzI0NCwxMiBAQCB2b2lkIE9wdGlvbnM6OmluaXRpYWxpemUoKQogICAg
IDsgLy8gRGVjb25mdXNlIGVkaXRvcnMgdGhhdCBkbyBhdXRvIGluZGVudGF0aW9uCiAjZW5kaWYK
ICAgICAKLSNpZiAhRU5BQkxFKEpJVCkKLSAgICB1c2VKSVQoKSA9IGZhbHNlOwotICAgIHVzZURG
R0pJVCgpID0gZmFsc2U7Ci0jZW5kaWYKLSNpZiAhRU5BQkxFKFlBUlJfSklUKQotICAgIHVzZVJl
Z0V4cEpJVCgpID0gZmFsc2U7Ci0jZW5kaWYKKyAgICByZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25z
KCk7CiAKICAgICAvLyBEbyByYW5nZSBjaGVja3Mgd2hlcmUgbmVlZGVkIGFuZCBtYWtlIGNvcnJl
Y3Rpb25zIHRvIHRoZSBvcHRpb25zOgotICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRpbWl6ZUFm
dGVyTG9uZ1dhcm1VcCgpID49IHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSk7Ci0g
ICAgQVNTRVJUKHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSA+PSB0aHJlc2hvbGRG
b3JPcHRpbWl6ZVNvb24oKSk7Ci0gICAgQVNTRVJUKHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJX
YXJtVXAoKSA+PSAwKTsKLQotICAgIC8vIENvbXB1dGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdGhl
IHJlb3B0aW1pemF0aW9uIHJldHJ5IGNvdW50ZXIuIFRoaXMgaXMgc2ltcGx5Ci0gICAgLy8gdGhl
IGxhcmdlc3QgdmFsdWUgYXQgd2hpY2ggd2UgZG9uJ3Qgb3ZlcmZsb3cgdGhlIGV4ZWN1dGUgY291
bnRlciwgd2hlbiB1c2luZyBpdAotICAgIC8vIHRvIGxlZnQtc2hpZnQgdGhlIGV4ZWN1dGlvbiBj
b3VudGVyIGJ5IHRoaXMgYW1vdW50LiBDdXJyZW50bHkgdGhlIHZhbHVlIGVuZHMKLSAgICAvLyB1
cCBiZWluZyAxOCwgc28gdGhpcyBsb29wIGlzIG5vdCBzbyB0ZXJyaWJsZTsgaXQgcHJvYmFibHkg
dGFrZXMgdXAgfjEwMCBjeWNsZXMKLSAgICAvLyB0b3RhbCBvbiBhIDMyLWJpdCBwcm9jZXNzb3Iu
Ci0gICAgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSA9IDA7Ci0gICAgd2hpbGUgKChz
dGF0aWNfY2FzdDxpbnQ2NF90Pih0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgp
KSA8PCAocmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgoKSArIDEpKSA8PSBzdGF0aWNfY2Fz
dDxpbnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyPjo6bWF4KCkpKQotICAgICAgICBy
ZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpKys7Ci0KLSAgICBBU1NFUlQoKHN0YXRpY19j
YXN0PGludDY0X3Q+KHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IHJl
b3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkpID4gMCk7Ci0gICAgQVNTRVJUKChzdGF0aWNf
Y2FzdDxpbnQ2NF90Pih0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCBy
ZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpKSA8PSBzdGF0aWNfY2FzdDxpbnQ2NF90Pihz
dGQ6Om51bWVyaWNfbGltaXRzPGludDMyPjo6bWF4KCkpKTsKKyAgICBBU1NFUlQoT3B0aW9uczo6
dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSA+PSBPcHRpb25zOjp0aHJlc2hv
bGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkpOworICAgIEFTU0VSVChPcHRpb25zOjp0aHJlc2hv
bGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkgPj0gT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1p
emVTb29uKCkpOworICAgIEFTU0VSVChPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVy
V2FybVVwKCkgPj0gMCk7CiB9CiAKIC8vIFBhcnNlcyBhIHNpbmdsZSBjb21tYW5kIGxpbmUgb3B0
aW9uIGluIHRoZSBmb3JtYXQgIjxvcHRpb25OYW1lPj08dmFsdWU+IgpAQCAtMjUxLDYgKzI3Myw3
IEBAIGJvb2wgT3B0aW9uczo6c2V0T3B0aW9uKGNvbnN0IGNoYXIqIGFyZykKICAgICAgICAgYm9v
bCBzdWNjZXNzID0gcGFyc2UodmFsdWVTdHIsIHZhbHVlKTsgICAgICAgICAgXAogICAgICAgICBp
ZiAoc3VjY2VzcykgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAg
ICAgICBuYW1lXygpID0gdmFsdWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgICAgIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKTsgICAgICAgICAgICAgICAgXAogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
ICAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XApAQCAtMjU5LDcgKzI4Miw3IEBAIGJvb2wgT3B0aW9uczo6c2V0T3B0aW9uKGNvbnN0IGNoYXIq
IGFyZykKICAgICBKU0NfT1BUSU9OUyhGT1JfRUFDSF9PUFRJT04pCiAjdW5kZWYgRk9SX0VBQ0hf
T1BUSU9OCiAKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBObyBvcHRpb24gbWF0Y2hlZC4KKyAg
ICByZXR1cm4gZmFsc2U7IC8vIE5vIG9wdGlvbiBtYXRjaGVkLgogfQogCiB2b2lkIE9wdGlvbnM6
OmR1bXBBbGxPcHRpb25zKEZJTEUqIHN0cmVhbSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCiAjaW5jbHVk
ZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC05NCw2ICs5NSwxMCBAQCB0eXBlZGVmIE9w
dGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIHYoYm9vbCwgdXNlREZHSklULCB0cnVlKSBcCiAg
ICAgdihib29sLCB1c2VSZWdFeHBKSVQsIHRydWUpIFwKICAgICBcCisgICAgdih1bnNpZ25lZCwg
bWF4UGVyVGhyZWFkU3RhY2tVc2FnZSwgNCAqIE1CKSBcCisgICAgdih1bnNpZ25lZCwgcmVzZXJ2
ZWRab25lU2l6ZSwgMTI4ICogS0IpIFwKKyAgICB2KHVuc2lnbmVkLCBlcnJvck1vZGVSZXNlcnZl
ZFpvbmVTaXplLCA2NCAqIEtCKSBcCisgICAgXAogICAgIHYoYm9vbCwgY3Jhc2hJZkNhbnRBbGxv
Y2F0ZUpJVE1lbW9yeSwgZmFsc2UpIFwKICAgICBcCiAgICAgdihib29sLCBmb3JjZURGR0NvZGVC
bG9ja0xpdmVuZXNzLCBmYWxzZSkgXApAQCAtMTE4LDExICsxMjMsMTkgQEAgdHlwZWRlZiBPcHRp
b25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KGJvb2wsIHZlcmJvc2VDYWxsTGluaywgZmFsc2Up
IFwKICAgICB2KGJvb2wsIHZlcmJvc2VDb21waWxhdGlvblF1ZXVlLCBmYWxzZSkgXAogICAgIHYo
Ym9vbCwgcmVwb3J0Q29tcGlsZVRpbWVzLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgcmVwb3J0RlRM
Q29tcGlsZVRpbWVzLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgdmVyYm9zZUNGQSwgZmFsc2UpIFwK
KyAgICB2KGJvb2wsIHZlcmJvc2VGVExUb0pTVGh1bmssIGZhbHNlKSBcCisgICAgdihib29sLCB2
ZXJib3NlRlRMRmFpbHVyZSwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIGFsd2F5c0NvbXB1dGVIYXNo
LCBmYWxzZSkgXAorICAgIHYoYm9vbCwgdGVzdFRoZUZUTCwgZmFsc2UpIFwKKyAgICB2KGJvb2ws
IHZlcmJvc2VTYW5pdGl6ZVN0YWNrLCBmYWxzZSkgXAogICAgIFwKLSAgICB2KGJvb2wsIGVuYWJs
ZU9TUkVudHJ5SW5Mb29wcywgdHJ1ZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlT1NSRW50cnlUb0RG
RywgdHJ1ZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlT1NSRW50cnlUb0ZUTCwgdHJ1ZSkgXAogICAg
IFwKICAgICB2KGJvb2wsIHVzZUV4cGVyaW1lbnRhbEZUTCwgZmFsc2UpIFwKKyAgICB2KGJvb2ws
IGVuYWJsZUV4cGVyaW1lbnRhbEZUTENvdmVyYWdlLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgdXNl
RlRMVEJBQSwgdHJ1ZSkgXAogICAgIHYoYm9vbCwgZW5hYmxlTExWTUZhc3RJU2VsLCBmYWxzZSkg
XAogICAgIHYoYm9vbCwgdXNlTExWTVNtYWxsQ29kZU1vZGVsLCBmYWxzZSkgXApAQCAtMTM0LDEw
ICsxNDcsMTIgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KHVuc2ln
bmVkLCBsbHZtQmFja2VuZE9wdGltaXphdGlvbkxldmVsLCAyKSBcCiAgICAgdih1bnNpZ25lZCwg
bGx2bU9wdGltaXphdGlvbkxldmVsLCAyKSBcCiAgICAgdih1bnNpZ25lZCwgbGx2bVNpemVMZXZl
bCwgMCkgXAorICAgIHYoYm9vbCwgbGx2bURpc2FsbG93QVZYLCB0cnVlKSBcCiAgICAgdihib29s
LCBmdGxDcmFzaGVzLCBmYWxzZSkgLyogZm9vbC1wcm9vZiB3YXkgb2YgY2hlY2tpbmcgdGhhdCB5
b3UgZW5kZWQgdXAgaW4gdGhlIEZUTC4gOy0pICovXAogICAgIFwKICAgICB2KGJvb2wsIGVuYWJs
ZUNvbmN1cnJlbnRKSVQsIHRydWUpIFwKLSAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkNvbXBpbGVy
VGhyZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcygyKSAtIDEpIFwKKyAgICB2KHVu
c2lnbmVkLCBudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2Vy
VGhyZWFkcygyKSAtIDEpIFwKKyAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkZUTENvbXBpbGVyVGhy
ZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcyg4KSAtIDEpIFwKICAgICBcCiAgICAg
dihib29sLCBlbmFibGVQcm9maWxlciwgZmFsc2UpIFwKICAgICBcCkBAIC0xNDYsNiArMTYxLDgg
QEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICBcCiAgICAgdihib29sLCBl
bmFibGVBcmNoaXRlY3R1cmVTcGVjaWZpY09wdGltaXphdGlvbnMsIHRydWUpIFwKICAgICBcCisg
ICAgdihib29sLCBicmVha09uVGhyb3csIGZhbHNlKSBcCisgICAgXAogICAgIHYodW5zaWduZWQs
IG1heGltdW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxMDAwMCkgXAog
ICAgIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtRnVuY3Rpb25Gb3JDYWxsSW5saW5lQ2FuZGlk
YXRlSW5zdHJ1Y3Rpb25Db3VudCwgMTgwKSBcCkBAIC0xNTQsNiArMTcxLDEyIEBAIHR5cGVkZWYg
T3B0aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7CiAgICAgXAogICAgIC8qIERlcHRoIG9mIGlubGluZSBz
dGFjaywgc28gMSA9IG5vIGlubGluaW5nLCAyID0gb25lIGxldmVsLCBldGMuICovIFwKICAgICB2
KHVuc2lnbmVkLCBtYXhpbXVtSW5saW5pbmdEZXB0aCwgNSkgXAorICAgIHYodW5zaWduZWQsIG1h
eGltdW1JbmxpbmluZ1JlY3Vyc2lvbiwgMikgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1Jbmxp
bmluZ0RlcHRoRm9yTXVzdElubGluZSwgNykgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1Jbmxp
bmluZ1JlY3Vyc2lvbkZvck11c3RJbmxpbmUsIDMpIFwKKyAgICBcCisgICAgdihib29sLCBlbmFi
bGVQb2x5dmFyaWFudENhbGxJbmxpbmluZywgdHJ1ZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlUG9s
eXZhcmlhbnRCeUlkSW5saW5pbmcsIHRydWUpIFwKICAgICBcCiAgICAgdih1bnNpZ25lZCwgbWF4
aW11bUJpbmFyeVN0cmluZ1N3aXRjaENhc2VMZW5ndGgsIDUwKSBcCiAgICAgdih1bnNpZ25lZCwg
bWF4aW11bUJpbmFyeVN0cmluZ1N3aXRjaFRvdGFsTGVuZ3RoLCAyMDAwKSBcCkBAIC0yMTAsNiAr
MjMzLDcgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KGJvb2wsIHNo
b3dPYmplY3RTdGF0aXN0aWNzLCBmYWxzZSkgXAogICAgIFwKICAgICB2KGJvb2wsIGxvZ0dDLCBm
YWxzZSkgXAorICAgIHYoYm9vbCwgZGlzYWJsZUdDLCBmYWxzZSkgXAogICAgIHYodW5zaWduZWQs
IGdjTWF4SGVhcFNpemUsIDApIFwKICAgICB2KGJvb2wsIHJlY29yZEdDUGF1c2VUaW1lcywgZmFs
c2UpIFwKICAgICB2KGJvb2wsIGxvZ0hlYXBTdGF0aXN0aWNzQXRFeGl0LCBmYWxzZSkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ2lzdGVyUHJl
c2VydmF0aW9uTW9kZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZV9oCisjZGVmaW5lIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZV9oCisKK25hbWVzcGFjZSBKU0MgeworCitlbnVtIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTW9kZSB7CisgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCwKKyAgICBNdXN0
UHJlc2VydmVSZWdpc3RlcnMKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8g
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RhY2tBbGlnbm1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdGFja0FsaWdubWVudC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0FsaWdubWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw2ICsyNyw4IEBACiAjZGVmaW5lIFN0YWNrQWxpZ25tZW50X2gKIAogI2luY2x1ZGUg
IkpTQ0pTVmFsdWUuaCIKKyNpbmNsdWRlICJKU1N0YWNrLmgiCisjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTM4LDYgKzQwLDI1IEBAIGlubGluZSB1
bnNpZ25lZCBzdGFja0FsaWdubWVudFJlZ2lzdGVycygKICAgICByZXR1cm4gc3RhY2tBbGlnbm1l
bnRCeXRlcygpIC8gc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKIH0KIAorLy8gQWxpZ24gYXJndW1l
bnQgY291bnQgdGFraW5nIGludG8gYWNjb3VudCB0aGUgQ2FsbEZyYW1lSGVhZGVyU2l6ZSBtYXkg
YmUKKy8vIGFuICJ1bmFsaWduZWQiIGNvdW50IG9mIHJlZ2lzdGVycy4KK2lubGluZSB1bnNpZ25l
ZCByb3VuZEFyZ3VtZW50Q291bnRUb0FsaWduRnJhbWUodW5zaWduZWQgYXJndW1lbnRDb3VudCkK
K3sKKyAgICByZXR1cm4gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVn
aXN0ZXJzKCksIGFyZ3VtZW50Q291bnQgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSAt
IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7Cit9CisKKy8vIEFsaWduIGxvY2FsIHJlZ2lz
dGVyIGNvdW50IHRvIG1ha2UgdGhlIGxhc3QgbG9jYWwgZW5kIG9uIGEgc3RhY2sgYWxpZ25lZCBh
ZGRyZXNzIGdpdmVuIHRoZQorLy8gQ2FsbEZyYW1lIGlzIGF0IGFuIGFkZHJlc3MgdGhhdCBpcyBz
dGFjayBhbGlnbmVkIG1pbnVzIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplCitpbmxpbmUg
dW5zaWduZWQgcm91bmRMb2NhbFJlZ2lzdGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZzZXQodW5z
aWduZWQgbG9jYWxSZWdpc3RlckNvdW50KQoreworICAgIHJldHVybiBXVEY6OnJvdW5kVXBUb011
bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbG9jYWxSZWdpc3RlckNvdW50ICsg
SlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQ
Q1NpemU7Cit9CisKK2lubGluZSB1bnNpZ25lZCBsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVycygp
Cit7CisgICAgcmV0dXJuIFdURjo6ZmFzdExvZzIoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gU3RhY2tBbGlnbm1lbnRfaApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UmVjdXJzaW9uQ2hlY2tlci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBKU1ZhbHVlIFN0cmluZ1JlY3Vy
c2lvbkNoZWNrZXI6OnRocm93U3RhY2tPdmVyZmxvd0Vycm9yKCkKIHsKLSAgICByZXR1cm4gbV9l
eGVjLT52bSgpLnRocm93RXhjZXB0aW9uKG1fZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9y
KG1fZXhlYykpOworICAgIHJldHVybiBKU0M6OnRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhl
Yyk7CiB9CiAKIEpTVmFsdWUgU3RyaW5nUmVjdXJzaW9uQ2hlY2tlcjo6ZW1wdHlTdHJpbmcoKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQ4LDggKzEwNDgsMTMgQEAgdm9pZCBTdHJ1Y3R1cmU6
OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgYwogICAgIGlmICh0YWJsZSkgewogICAgICAgICBQcm9w
ZXJ0eVRhYmxlOjppdGVyYXRvciBpdGVyID0gdGFibGUtPmJlZ2luKCk7CiAgICAgICAgIFByb3Bl
cnR5VGFibGU6Oml0ZXJhdG9yIGVuZCA9IHRhYmxlLT5lbmQoKTsKLSAgICAgICAgZm9yICg7IGl0
ZXIgIT0gZW5kOyArK2l0ZXIpCisgICAgICAgIGZvciAoOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7
CiAgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsIGl0ZXItPmtleSwgIjoiLCBzdGF0aWNfY2Fz
dDxpbnQ+KGl0ZXItPm9mZnNldCkpOworICAgICAgICAgICAgaWYgKGl0ZXItPnNwZWNpZmljVmFs
dWUpIHsKKyAgICAgICAgICAgICAgICBEdW1wQ29udGV4dCBkdW1teUNvbnRleHQ7CisgICAgICAg
ICAgICAgICAgb3V0LnByaW50KCI9PiIsIFJhd1BvaW50ZXIoaXRlci0+c3BlY2lmaWNWYWx1ZS5n
ZXQoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdHJ1
Y3R1cmUtPm1fbG9jay51bmxvY2soKTsKICAgICB9CkBAIC0xMDU5LDYgKzEwNjQsMTAgQEAgdm9p
ZCBTdHJ1Y3R1cmU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgYwogICAgICAgICBpZiAoIXN0cnVj
dHVyZS0+bV9uYW1lSW5QcmV2aW91cykKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBv
dXQucHJpbnQoY29tbWEsIHN0cnVjdHVyZS0+bV9uYW1lSW5QcmV2aW91cy5nZXQoKSwgIjoiLCBz
dGF0aWNfY2FzdDxpbnQ+KHN0cnVjdHVyZS0+bV9vZmZzZXQpKTsKKyAgICAgICAgaWYgKHN0cnVj
dHVyZS0+bV9zcGVjaWZpY1ZhbHVlSW5QcmV2aW91cykgeworICAgICAgICAgICAgRHVtcENvbnRl
eHQgZHVtbXlDb250ZXh0OworICAgICAgICAgICAgb3V0LnByaW50KCI9PiIsIFJhd1BvaW50ZXIo
c3RydWN0dXJlLT5tX3NwZWNpZmljVmFsdWVJblByZXZpb3VzLmdldCgpKSk7CisgICAgICAgIH0K
ICAgICB9CiAgICAgCiAgICAgb3V0LnByaW50KCJ9LCAiLCBJbmRleGluZ1R5cGVEdW1wKGluZGV4
aW5nVHlwZSgpKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDExICszMCwxMyBAQAogI2lu
Y2x1ZGUgIlZNLmgiCiAKICNpbmNsdWRlICJBcmdMaXN0LmgiCisjaW5jbHVkZSAiQXJpdHlDaGVj
a0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJBcnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNo
cG9pbnQuaCIKICNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJs
b2NrLmgiCiAjaW5jbHVkZSAiQ29kZUNhY2hlLmgiCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmll
cnMuaCIKKyNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJERkdMb25nTGl2
ZWRTdGF0ZS5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCiAjaW5jbHVkZSAiRGVidWdnZXJB
Y3RpdmF0aW9uLmgiCkBAIC00OSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIkluY3JlbWVudGFsU3dlZXBlci5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgi
CisjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpTQVBJVmFsdWVXcmFwcGVyLmgiCiAj
aW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgpAQCAtMTY2LDYg
KzE2OSw3IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAs
IHZtVHlwZSh2bVR5cGUpCiAgICAgLCBjbGllbnREYXRhKDApCiAgICAgLCB0b3BDYWxsRnJhbWUo
Q2FsbEZyYW1lOjpub0NhbGxlcigpKQorICAgICwgc3RhY2tQb2ludGVyQXRWTUVudHJ5KDApCiAg
ICAgLCBhcnJheUNvbnN0cnVjdG9yVGFibGUoYWRvcHRQdHIobmV3IEhhc2hUYWJsZShKU0M6OmFy
cmF5Q29uc3RydWN0b3JUYWJsZSkpKQogICAgICwgYXJyYXlQcm90b3R5cGVUYWJsZShhZG9wdFB0
cihuZXcgSGFzaFRhYmxlKEpTQzo6YXJyYXlQcm90b3R5cGVUYWJsZSkpKQogICAgICwgYm9vbGVh
blByb3RvdHlwZVRhYmxlKGFkb3B0UHRyKG5ldyBIYXNoVGFibGUoSlNDOjpib29sZWFuUHJvdG90
eXBlVGFibGUpKSkKQEAgLTIxNiw3ICsyMjAsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVh
cFR5cGUgaGVhcFR5cGUpCiAgICAgLCBtX2luaXRpYWxpemluZ09iamVjdENsYXNzKDApCiAjZW5k
aWYKICAgICAsIG1fc3RhY2tMaW1pdCgwKQotI2lmIFVTRShTRVBBUkFURV9DX0FORF9KU19TVEFD
SykKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICwgbV9qc1N0YWNrTGltaXQoMCkKICNl
bmRpZgogICAgICwgbV9pbkRlZmluZU93blByb3BlcnR5KGZhbHNlKQpAQCAtMjI1LDcgKzIyOSwx
MSBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiB7CiAgICAgaW50
ZXJwcmV0ZXIgPSBuZXcgSW50ZXJwcmV0ZXIoKnRoaXMpOwogICAgIFN0YWNrQm91bmRzIHN0YWNr
ID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCk7Ci0gICAgc2V0U3RhY2tMaW1pdChzdGFjay5yZWN1
cnNpb25MaW1pdCgpKTsKKyAgICB1cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUo
T3B0aW9uczo6cmVzZXJ2ZWRab25lU2l6ZSgpKTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQor
ICAgIGludGVycHJldGVyLT5zdGFjaygpLnNldFJlc2VydmVkWm9uZVNpemUoT3B0aW9uczo6cmVz
ZXJ2ZWRab25lU2l6ZSgpKTsKKyNlbmRpZgorICAgIHNldExhc3RTdGFja1RvcChzdGFjay5vcmln
aW4oKSk7CiAKICAgICAvLyBOZWVkIHRvIGJlIGNhcmVmdWwgdG8ga2VlcCBldmVyeXRoaW5nIGNv
bnNpc3RlbnQgaGVyZQogICAgIEpTTG9ja0hvbGRlciBsb2NrKHRoaXMpOwpAQCAtMjY3LDcgKzI3
NSw5IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKIAogI2lmIEVO
QUJMRShKSVQpCiAgICAgaml0U3R1YnMgPSBhZG9wdFB0cihuZXcgSklUVGh1bmtzKCkpOworICAg
IGFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzID0gc3RkOjptYWtlX3VuaXF1ZTxBcml0eUNoZWNr
RmFpbFJldHVyblRodW5rcz4oKTsKICNlbmRpZgorICAgIGFyaXR5Q2hlY2tEYXRhID0gc3RkOjpt
YWtlX3VuaXF1ZTxDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhPigpOwogCiAjaWYgRU5B
QkxFKEZUTF9KSVQpCiAgICAgZnRsVGh1bmtzID0gc3RkOjptYWtlX3VuaXF1ZTxGVEw6OlRodW5r
cz4oKTsKQEAgLTI4MCw3ICsyOTAsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUg
aGVhcFR5cGUpCiAjZW5kaWYKIAogICAgIGhlYXAubm90aWZ5SXNTYWZlVG9Db2xsZWN0KCk7Ci0K
KyAgICAKICAgICBMTEludDo6RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoKnRoaXMpOwogICAgIAog
ICAgIGlmIChPcHRpb25zOjplbmFibGVQcm9maWxlcigpKSB7CkBAIC0zMDYsNiArMzE2LDE2IEBA
IFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICBtX3R5cGVkQXJy
YXlDb250cm9sbGVyID0gYWRvcHRSZWYobmV3IFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKCkp
OwogfQogCisjaWYgRU5BQkxFKERGR19KSVQpCitzdGF0aWMgdm9pZCBjbGVhbldvcmtsaXN0KFZN
JiB2bSwgREZHOjpXb3JrbGlzdCogd29ya2xpc3QpCit7CisgICAgaWYgKCF3b3JrbGlzdCkKKyAg
ICAgICAgcmV0dXJuOworICAgIHdvcmtsaXN0LT53YWl0VW50aWxBbGxQbGFuc0ZvclZNQXJlUmVh
ZHkodm0pOworICAgIHdvcmtsaXN0LT5yZW1vdmVBbGxSZWFkeVBsYW5zRm9yVk0odm0pOworfQor
I2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCiBWTTo6flZNKCkKIHsKICAgICAvLyBOZXZlciBH
QywgZXZlciBhZ2Fpbi4KQEAgLTMxNCwxMCArMzM0LDggQEAgVk06On5WTSgpCiAjaWYgRU5BQkxF
KERGR19KSVQpCiAgICAgLy8gTWFrZSBzdXJlIGNvbmN1cnJlbnQgY29tcGlsYXRpb25zIGFyZSBk
b25lLCBidXQgZG9uJ3QgaW5zdGFsbCB0aGVtLCBzaW5jZSB0aGVyZSBpcwogICAgIC8vIG5vIHBv
aW50IHRvIGRvaW5nIHNvLgotICAgIGlmICh3b3JrbGlzdCkgewotICAgICAgICB3b3JrbGlzdC0+
d2FpdFVudGlsQWxsUGxhbnNGb3JWTUFyZVJlYWR5KCp0aGlzKTsKLSAgICAgICAgd29ya2xpc3Qt
PnJlbW92ZUFsbFJlYWR5UGxhbnNGb3JWTSgqdGhpcyk7Ci0gICAgfQorICAgIGNsZWFuV29ya2xp
c3QoKnRoaXMsIERGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpKTsKKyAgICBj
bGVhbldvcmtsaXN0KCp0aGlzLCBERkc6OmV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwo
KSk7CiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhpcyBm
aXJzdCB0byBlbnN1cmUgdGhhdCBub2JvZHkgdHJpZXMgdG8gcmVtb3ZlIHRoZW1zZWx2ZXMgZnJv
bSBpdC4KQEAgLTQ2MSw4ICs0NzksOCBAQCBOYXRpdmVFeGVjdXRhYmxlKiBWTTo6Z2V0SG9zdEZ1
bmN0aW9uKE5hCiBOYXRpdmVFeGVjdXRhYmxlKiBWTTo6Z2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1
bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKIHsKICAgICByZXR1
cm4gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCp0aGlzLAotICAgICAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5l
KSwgZnVuY3Rpb24sCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRD
b2RlUmVmKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZSksIGNvbnN0cnVjdG9yLAor
ICAgICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6
OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lKSwgSklUQ29k
ZTo6SG9zdENhbGxUaHVuaykpLCBmdW5jdGlvbiwKKyAgICAgICAgYWRvcHRSZWYobmV3IE5hdGl2
ZUpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRf
bmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpLCBj
b25zdHJ1Y3RvciwKICAgICAgICAgTm9JbnRyaW5zaWMpOwogfQogCkBAIC00OTAsMTQgKzUwOCwy
MSBAQCB2b2lkIFZNOjpzdG9wU2FtcGxpbmcoKQogICAgIGludGVycHJldGVyLT5zdG9wU2FtcGxp
bmcoKTsKIH0KIAotdm9pZCBWTTo6cHJlcGFyZVRvRGlzY2FyZENvZGUoKQotewogI2lmIEVOQUJM
RShERkdfSklUKQorc3RhdGljIHZvaWQgcHJlcGFyZVRvRGlzY2FyZENvZGVGb3IoVk0mIHZtLCBE
Rkc6OldvcmtsaXN0KiB3b3JrbGlzdCkKK3sKICAgICBpZiAoIXdvcmtsaXN0KQogICAgICAgICBy
ZXR1cm47Ci0gICAgCi0gICAgd29ya2xpc3QtPmNvbXBsZXRlQWxsUGxhbnNGb3JWTSgqdGhpcyk7
Ci0jZW5kaWYKKyAgICB3b3JrbGlzdC0+Y29tcGxldGVBbGxQbGFuc0ZvclZNKHZtKTsKK30KKyNl
bmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwordm9pZCBWTTo6cHJlcGFyZVRvRGlzY2FyZENvZGUo
KQoreworI2lmIEVOQUJMRShERkdfSklUKQorICAgIHByZXBhcmVUb0Rpc2NhcmRDb2RlRm9yKCp0
aGlzLCBERkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKSk7CisgICAgcHJlcGFy
ZVRvRGlzY2FyZENvZGVGb3IoKnRoaXMsIERGRzo6ZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9y
TnVsbCgpKTsKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKIH0KIAogdm9pZCBWTTo6ZGlzY2Fy
ZEFsbENvZGUoKQpAQCAtNjMyLDYgKzY1NywxMSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTb3VyY2VU
b0Vycm9yKENhbGxGcmFtCiAgICAgCiBKU1ZhbHVlIFZNOjp0aHJvd0V4Y2VwdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgZXJyb3IpCiB7CisgICAgaWYgKE9wdGlvbnM6OmJyZWFrT25UaHJv
dygpKSB7CisgICAgICAgIGRhdGFMb2coIkluIGNhbGwgZnJhbWUgIiwgUmF3UG9pbnRlcihleGVj
KSwgIiBmb3IgY29kZSBibG9jayAiLCAqZXhlYy0+Y29kZUJsb2NrKCksICJcbiIpOworICAgICAg
ICBDUkFTSCgpOworICAgIH0KKyAgICAKICAgICBBU1NFUlQoZXhlYyA9PSB0b3BDYWxsRnJhbWUg
fHwgZXhlYyA9PSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSB8fCBl
eGVjID09IGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpKTsKICAgICAK
ICAgICBWZWN0b3I8U3RhY2tGcmFtZT4gc3RhY2tUcmFjZTsKQEAgLTcwNiw2ICs3MzYsMjQgQEAg
dm9pZCBWTTo6IGNsZWFyRXhjZXB0aW9uU3RhY2soKQogICAgIG1fZXhjZXB0aW9uU3RhY2sgPSBS
ZWZDb3VudGVkQXJyYXk8U3RhY2tGcmFtZT4oKTsKIH0KIAorc2l6ZV90IFZNOjp1cGRhdGVTdGFj
a0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUoc2l6ZV90IHJlc2VydmVkWm9uZVNpemUpCit7Cisg
ICAgc2l6ZV90IG9sZFJlc2VydmVkWm9uZVNpemUgPSBtX3Jlc2VydmVkWm9uZVNpemU7CisgICAg
bV9yZXNlcnZlZFpvbmVTaXplID0gcmVzZXJ2ZWRab25lU2l6ZTsKKworICAgIHZvaWQqIHN0YWNr
TGltaXQ7CisgICAgaWYgKHN0YWNrUG9pbnRlckF0Vk1FbnRyeSkgeworICAgICAgICBBU1NFUlQo
d3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CisgICAgICAgIGNo
YXIqIHN0YXJ0T2ZTdGFjayA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHN0YWNrUG9pbnRlckF0
Vk1FbnRyeSk7CisgICAgICAgIGNoYXIqIGRlc2lyZWRTdGFja0xpbWl0ID0gc3RhcnRPZlN0YWNr
IC0gT3B0aW9uczo6bWF4UGVyVGhyZWFkU3RhY2tVc2FnZSgpICsgcmVzZXJ2ZWRab25lU2l6ZTsK
KyAgICAgICAgc3RhY2tMaW1pdCA9IHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLnJlY3Vyc2lvbkxp
bWl0KHJlc2VydmVkWm9uZVNpemUsIGRlc2lyZWRTdGFja0xpbWl0KTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgc3RhY2tMaW1pdCA9IHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLnJlY3Vyc2lvbkxpbWl0
KHJlc2VydmVkWm9uZVNpemUpOworCisgICAgc2V0U3RhY2tMaW1pdChzdGFja0xpbWl0KTsKKyAg
ICByZXR1cm4gb2xkUmVzZXJ2ZWRab25lU2l6ZTsKK30KKwogdm9pZCByZWxlYXNlRXhlY3V0YWJs
ZU1lbW9yeShWTSYgdm0pCiB7CiAgICAgdm0ucmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoKTsKQEAg
LTcyMiwxNiArNzcwLDE5IEBAIHZvaWQgVk06OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNl
cnYKICAgICAgICAgfQogICAgIH0KIH0KKyNlbmRpZgogCi1ERkc6OldvcmtsaXN0KiBWTTo6ZW5z
dXJlV29ya2xpc3QoKQordm9pZCBsb2dTYW5pdGl6ZVN0YWNrKFZNKiB2bSkKIHsKLSAgICBpZiAo
IURGRzo6ZW5hYmxlQ29uY3VycmVudEpJVCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAo
IXdvcmtsaXN0KQotICAgICAgICB3b3JrbGlzdCA9IERGRzo6Z2xvYmFsV29ya2xpc3QoKTsKLSAg
ICByZXR1cm4gd29ya2xpc3QuZ2V0KCk7CisgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VTYW5pdGl6
ZVN0YWNrKCkgJiYgdm0tPnRvcENhbGxGcmFtZSkgeworICAgICAgICBpbnQgZHVtbXk7CisgICAg
ICAgIGRhdGFMb2coCisgICAgICAgICAgICAiU2FuaXRpemluZyBzdGFjayB3aXRoIHRvcCBjYWxs
IGZyYW1lIGF0ICIsIFJhd1BvaW50ZXIodm0tPnRvcENhbGxGcmFtZSksCisgICAgICAgICAgICAi
LCBjdXJyZW50IHN0YWNrIHBvaW50ZXIgYXQgIiwgUmF3UG9pbnRlcigmZHVtbXkpLCAiLCBpbiAi
LAorICAgICAgICAgICAgcG9pbnRlckR1bXAodm0tPnRvcENhbGxGcmFtZS0+Y29kZUJsb2NrKCkp
LCAiIGFuZCBsYXN0IGNvZGUgb3JpZ2luID0gIiwKKyAgICAgICAgICAgIHZtLT50b3BDYWxsRnJh
bWUtPmNvZGVPcmlnaW4oKSwgIlxuIik7CisgICAgfQogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUo
UkVHRVhQX1RSQUNJTkcpCiB2b2lkIFZNOjphZGRSZWdFeHBUb1RyYWNlKFJlZ0V4cCogcmVnRXhw
KQpAQCAtNzk5LDQgKzg1MCwxNCBAQCB2b2lkIFZNOjpzZXRFbmFibGVkUHJvZmlsZXIoTGVnYWN5
UHJvZmlsCiAgICAgfQogfQogCit2b2lkIHNhbml0aXplU3RhY2tGb3JWTShWTSogdm0pCit7Cisg
ICAgbG9nU2FuaXRpemVTdGFjayh2bSk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICB2
bS0+aW50ZXJwcmV0ZXItPnN0YWNrKCkuc2FuaXRpemVTdGFjaygpOworI2Vsc2UKKyAgICBzYW5p
dGl6ZVN0YWNrRm9yVk1JbXBsKHZtKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkocmV2aXNpb24gMTYyOTYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkod29ya2luZyBjb3B5KQpAQCAtNjgs
NiArNjgsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorICAgIGNsYXNzIEFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzOwogICAgIGNsYXNzIENvZGVCbG9jazsKICAgICBjbGFzcyBDb2RlQ2FjaGU7
CiAgICAgY2xhc3MgQ29tbW9uSWRlbnRpZmllcnM7CkBAIC0xMDMsNyArMTA0LDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgbmFtZXNwYWNlIERGRyB7CiAgICAg
Y2xhc3MgTG9uZ0xpdmVkU3RhdGU7Ci0gICAgY2xhc3MgV29ya2xpc3Q7CiAgICAgfQogI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQogI2lmIEVOQUJMRShGVExfSklUKQpAQCAtMTExLDYgKzExMSw5
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIFRodW5rczsKICAgICB9CiAjZW5kaWYgLy8g
RU5BQkxFKEZUTF9KSVQpCisgICAgbmFtZXNwYWNlIENvbW1vblNsb3dQYXRocyB7CisgICAgc3Ry
dWN0IEFyaXR5Q2hlY2tEYXRhOworICAgIH0KIAogICAgIHN0cnVjdCBIYXNoVGFibGU7CiAgICAg
c3RydWN0IEluc3RydWN0aW9uOwpAQCAtMjA0LDEwICsyMDcsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICB2b2lkIG1ha2VVc2FibGVGcm9tTXVsdGlwbGVUaHJlYWRzKCkgeyBoZWFwLm1h
Y2hpbmVUaHJlYWRzKCkubWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKTsgfQogICAgICAg
ICAKLSNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICAgICAgREZHOjpXb3JrbGlzdCogZW5zdXJlV29y
a2xpc3QoKTsKLSNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKLQogICAgIHByaXZhdGU6CiAgICAg
ICAgIFJlZlB0cjxKU0xvY2s+IG1fYXBpTG9jazsKIApAQCAtMjI0LDEyICsyMjMsMTIgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIAogI2lmIEVOQUJMRShERkdfSklUKQogICAgICAgICBPd25Q
dHI8REZHOjpMb25nTGl2ZWRTdGF0ZT4gZGZnU3RhdGU7Ci0gICAgICAgIFJlZlB0cjxERkc6Oldv
cmtsaXN0PiB3b3JrbGlzdDsKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKIAogICAgICAgICBW
TVR5cGUgdm1UeXBlOwogICAgICAgICBDbGllbnREYXRhKiBjbGllbnREYXRhOwogICAgICAgICBF
eGVjU3RhdGUqIHRvcENhbGxGcmFtZTsKKyAgICAgICAgdm9pZCogc3RhY2tQb2ludGVyQXRWTUVu
dHJ5OwogICAgICAgICBXYXRjaGRvZyB3YXRjaGRvZzsKIAogICAgICAgICBjb25zdCBPd25QdHI8
Y29uc3QgSGFzaFRhYmxlPiBhcnJheUNvbnN0cnVjdG9yVGFibGU7CkBAIC0zNDAsNyArMzM5LDEz
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGppdFN0dWJzLT5jdGlTdHVi
KHRoaXMsIGdlbmVyYXRvcik7CiAgICAgICAgIH0KICAgICAgICAgTmF0aXZlRXhlY3V0YWJsZSog
Z2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uLCBJbnRyaW5zaWMpOwotI2VuZGlmCisgICAg
ICAgIAorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M+
IGFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOworI2lmIENQVShYODYpCisgICAgICAgIHZvaWQq
IGN1cnJlbnRSZXR1cm5UaHVua1BDOworI2VuZGlmIC8vIENQVShYODYpCisjZW5kaWYgLy8gRU5B
QkxFKEpJVCkKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1vblNsb3dQYXRoczo6QXJpdHlD
aGVja0RhdGE+IGFyaXR5Q2hlY2tEYXRhOwogI2lmIEVOQUJMRShGVExfSklUKQogICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RlRMOjpUaHVua3M+IGZ0bFRodW5rczsKICNlbmRpZgpAQCAtMzcyLDEy
ICszNzcsMTYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEpT
VmFsdWUgdGhyb3dFeGNlcHRpb24oRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiAgICAgICAgIEpTX0VY
UE9SVF9QUklWQVRFIEpTT2JqZWN0KiB0aHJvd0V4Y2VwdGlvbihFeGVjU3RhdGUqLCBKU09iamVj
dCopOwogICAgICAgICAKKyAgICAgICAgc2l6ZV90IHJlc2VydmVkWm9uZVNpemUoKSBjb25zdCB7
IHJldHVybiBtX3Jlc2VydmVkWm9uZVNpemU7IH0KKyAgICAgICAgc2l6ZV90IHVwZGF0ZVN0YWNr
TGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShzaXplX3QgcmVzZXJ2ZWRab25lU2l6ZSk7CisKICAg
ICAgICAgdm9pZCoqIGFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpIHsgcmV0dXJuICZtX2pzU3RhY2tM
aW1pdDsgfQorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgICAgIHZvaWQqIGpzU3RhY2tM
aW1pdCgpIHsgcmV0dXJuIG1fanNTdGFja0xpbWl0OyB9CiAgICAgICAgIHZvaWQgc2V0SlNTdGFj
a0xpbWl0KHZvaWQqIGxpbWl0KSB7IG1fanNTdGFja0xpbWl0ID0gbGltaXQ7IH0KLQorI2VuZGlm
CiAgICAgICAgIHZvaWQqIHN0YWNrTGltaXQoKSB7IHJldHVybiBtX3N0YWNrTGltaXQ7IH0KLSAg
ICAgICAgdm9pZCBzZXRTdGFja0xpbWl0KHZvaWQqIGxpbWl0KSB7IG1fc3RhY2tMaW1pdCA9IGxp
bWl0OyB9CisKICAgICAgICAgYm9vbCBpc1NhZmVUb1JlY3Vyc2Uoc2l6ZV90IG5lZWRlZFN0YWNr
SW5CeXRlcyA9IDApIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVCh3dGZUaHJl
YWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKQEAgLTM4NiwxMCArMzk1LDEy
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGN1cnIgPj0gbGltaXQgJiYg
c3RhdGljX2Nhc3Q8c2l6ZV90PihjdXJyIC0gbGltaXQpID49IG5lZWRlZFN0YWNrSW5CeXRlczsK
ICAgICAgICAgfQogCisgICAgICAgIHZvaWQqIGxhc3RTdGFja1RvcCgpIHsgcmV0dXJuIG1fbGFz
dFN0YWNrVG9wOyB9CisgICAgICAgIHZvaWQgc2V0TGFzdFN0YWNrVG9wKHZvaWQqIGxhc3RTdGFj
a1RvcCkgeyBtX2xhc3RTdGFja1RvcCA9IGxhc3RTdGFja1RvcDsgfQorCiAgICAgICAgIGNvbnN0
IENsYXNzSW5mbyogY29uc3QganNBcnJheUNsYXNzSW5mbzsKICAgICAgICAgY29uc3QgQ2xhc3NJ
bmZvKiBjb25zdCBqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZvOwogCi0gICAgICAgIFJldHVybkFkZHJl
c3NQdHIgZXhjZXB0aW9uTG9jYXRpb247CiAgICAgICAgIEpTVmFsdWUgaG9zdENhbGxSZXR1cm5W
YWx1ZTsKICAgICAgICAgRXhlY1N0YXRlKiBuZXdDYWxsRnJhbWVSZXR1cm5WYWx1ZTsKICAgICAg
ICAgRXhlY1N0YXRlKiBjYWxsRnJhbWVGb3JUaHJvdzsKQEAgLTQxMiw3ICs0MjMsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgICAgICAvLyBtYXgoc2NyYXRjaCBidWZmZXIgc2l6ZSkg
KiA0LgogICAgICAgICAgICAgICAgIHNpemVPZkxhc3RTY3JhdGNoQnVmZmVyID0gc2l6ZSAqIDI7
CiAKLSAgICAgICAgICAgICAgICBzY3JhdGNoQnVmZmVycy5hcHBlbmQoU2NyYXRjaEJ1ZmZlcjo6
Y3JlYXRlKHNpemVPZkxhc3RTY3JhdGNoQnVmZmVyKSk7CisgICAgICAgICAgICAgICAgU2NyYXRj
aEJ1ZmZlciogbmV3QnVmZmVyID0gU2NyYXRjaEJ1ZmZlcjo6Y3JlYXRlKHNpemVPZkxhc3RTY3Jh
dGNoQnVmZmVyKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChuZXdCdWZmZXIpOwor
ICAgICAgICAgICAgICAgIHNjcmF0Y2hCdWZmZXJzLmFwcGVuZChuZXdCdWZmZXIpOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICBTY3JhdGNoQnVmZmVyKiByZXN1bHQgPSBzY3JhdGNoQnVm
ZmVycy5sYXN0KCk7CkBAIC00OTMsNiArNTA2LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IFZNKFZNVHlwZSwgSGVhcFR5cGUpOwogICAgICAgICBzdGF0aWMgVk0qJiBzaGFyZWRJbnN0YW5j
ZUludGVybmFsKCk7CiAgICAgICAgIHZvaWQgY3JlYXRlTmF0aXZlVGh1bmsoKTsKKworICAgICAg
ICB2b2lkIHNldFN0YWNrTGltaXQodm9pZCogbGltaXQpIHsgbV9zdGFja0xpbWl0ID0gbGltaXQ7
IH0KKwogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAgICAgICAgIGJvb2wgbV9jYW5Vc2VBc3NlbWJs
ZXI7CiAjZW5kaWYKQEAgLTUwNSw4ICs1MjEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICNpZiBFTkFC
TEUoR0NfVkFMSURBVElPTikKICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBtX2luaXRpYWxpemlu
Z09iamVjdENsYXNzOwogI2VuZGlmCi0KLSNpZiBVU0UoU0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0sp
CisgICAgICAgIHNpemVfdCBtX3Jlc2VydmVkWm9uZVNpemU7CisjaWYgRU5BQkxFKExMSU5UX0Nf
TE9PUCkKICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgIHZvaWQqIG1fc3RhY2tMaW1pdDsK
ICAgICAgICAgICAgIHZvaWQqIG1fanNTdGFja0xpbWl0OwpAQCAtNTE3LDYgKzUzMyw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICAgICAgdm9pZCogbV9qc1N0YWNrTGltaXQ7CiAgICAgICAg
IH07CiAjZW5kaWYKKyAgICAgICAgdm9pZCogbV9sYXN0U3RhY2tUb3A7CiAgICAgICAgIEpTVmFs
dWUgbV9leGNlcHRpb247CiAgICAgICAgIGJvb2wgbV9pbkRlZmluZU93blByb3BlcnR5OwogICAg
ICAgICBPd25QdHI8Q29kZUNhY2hlPiBtX2NvZGVDYWNoZTsKQEAgLTU0NCw2ICs1NjEsMTMgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiAmbV92bS0+aGVhcDsKICAgICB9CiAKKyNp
ZiAhRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBleHRlcm4gIkMiIHZvaWQgc2FuaXRpemVTdGFj
a0ZvclZNSW1wbChWTSopOworI2VuZGlmCisKKyAgICB2b2lkIHNhbml0aXplU3RhY2tGb3JWTShW
TSopOworICAgIHZvaWQgbG9nU2FuaXRpemVTdGFjayhWTSopOworCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAogI2VuZGlmIC8vIFZNX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNRW50cnlTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIlZNRW50cnlTY29wZS5oIgogCiAjaW5jbHVkZSAiRGVidWdnZXIu
aCIKKyNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYv
U3RhY2tCb3VuZHMuaD4KIApAQCAtMzQsMTIgKzM1LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogCiBW
TUVudHJ5U2NvcGU6OlZNRW50cnlTY29wZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCiAgICAgOiBtX3ZtKHZtKQotICAgICwgbV9zdGFjayh3dGZUaHJlYWREYXRhKCkuc3Rh
Y2soKSkKICAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCkKLSAgICAsIG1fcHJldih2
bS5lbnRyeVNjb3BlKQotICAgICwgbV9wcmV2U3RhY2tMaW1pdCh2bS5zdGFja0xpbWl0KCkpCiAg
ICAgLCBtX3JlY29tcGlsYXRpb25OZWVkZWQoZmFsc2UpCiB7CisgICAgQVNTRVJUKHd0ZlRocmVh
ZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOwogICAgIGlmICghdm0uZW50cnlT
Y29wZSkgewogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAgICAgICAgIGlmIChFeGVjdXRhYmxlQWxs
b2NhdG9yOjp1bmRlck1lbW9yeVByZXNzdXJlKCkpCkBAIC01MSwxNyArNTAsMjQgQEAgVk1FbnRy
eVNjb3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZtLCBKU0dsbwogICAgICAgICAvLyBvYnNlcnZlIHRp
bWUgeG9uZSBjaGFuZ2VzLgogICAgICAgICB2bS5yZXNldERhdGVDYWNoZSgpOwogICAgIH0KLSAg
ICAvLyBDbGVhciB0aGUgZXhjZXB0aW9uIHN0YWNrIGJldHdlZW4gZW50cmllcwotICAgIHZtLmNs
ZWFyRXhjZXB0aW9uU3RhY2soKTsKIAotICAgIHZvaWQqIGxpbWl0ID0gbV9zdGFjay5yZWN1cnNp
b25MaW1pdChyZXF1aXJlZENhcGFjaXR5KCkpOwotICAgIHZtLnNldFN0YWNrTGltaXQobGltaXQp
OworICAgIGlmICghdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5KSB7CisgICAgICAgIHZtLnN0YWNr
UG9pbnRlckF0Vk1FbnRyeSA9IHRoaXM7CisgICAgICAgIG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXpl
ID0gdm0udXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKE9wdGlvbnM6OnJlc2Vy
dmVkWm9uZVNpemUoKSk7CisgICAgfQorCisgICAgLy8gQ2xlYXIgdGhlIGNhcHR1cmVkIGV4Y2Vw
dGlvbiBzdGFjayBiZXR3ZWVuIGVudHJpZXMKKyAgICB2bS5jbGVhckV4Y2VwdGlvblN0YWNrKCk7
CiB9CiAKIFZNRW50cnlTY29wZTo6flZNRW50cnlTY29wZSgpCiB7Ci0gICAgbV92bS5lbnRyeVNj
b3BlID0gbV9wcmV2OwotICAgIG1fdm0uc2V0U3RhY2tMaW1pdChtX3ByZXZTdGFja0xpbWl0KTsK
KyAgICBpZiAobV92bS5lbnRyeVNjb3BlID09IHRoaXMpCisgICAgICAgIG1fdm0uZW50cnlTY29w
ZSA9IG51bGxwdHI7CisgICAgaWYgKG1fdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5ID09IHRoaXMp
IHsKKyAgICAgICAgbV92bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBudWxscHRyOworICAgICAg
ICBtX3ZtLnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShtX3NhdmVkUmVzZXJ2
ZWRab25lU2l6ZSk7CisgICAgfQogCiAgICAgaWYgKG1fcmVjb21waWxhdGlvbk5lZWRlZCkgewog
ICAgICAgICBpZiAobV92bS5lbnRyeVNjb3BlKQpAQCAtNzMsMjMgKzc5LDQgQEAgVk1FbnRyeVNj
b3BlOjp+Vk1FbnRyeVNjb3BlKCkKICAgICB9CiB9CiAKLXNpemVfdCBWTUVudHJ5U2NvcGU6OnJl
cXVpcmVkQ2FwYWNpdHkoKSBjb25zdAotewotICAgIEludGVycHJldGVyKiBpbnRlcnByZXRlciA9
IG1fdm0uaW50ZXJwcmV0ZXI7Ci0KLSAgICAvLyBXZSByZXF1aXJlIGEgc21hbGxlciBzdGFjayBi
dWRnZXQgZm9yIHRoZSBlcnJvciBzdGFjay4gVGhpcyBpcyB0byBhbGxvdwotICAgIC8vIHNvbWUg
bWluaW1hbCBKUyBleGVjdXRpb24gdG8gcHJvY2VlZCBhbmQgZG8gdGhlIHdvcmsgb2YgdGhyb3dp
bmcgYSBzdGFjawotICAgIC8vIG92ZXJmbG93IGVycm9yIGlmIG5lZWRlZC4gSW4gY29udHJhc3Qs
IGFyYml0cmFyeSBKUyBjb2RlIHdpbGwgcmVxdWlyZSB0aGUKLSAgICAvLyBtb3JlIGdlbmVyb3Vz
IHN0YWNrIGJ1ZGdldCBpbiBvcmRlciB0byBwcm9jZWVkLgotICAgIC8vCi0gICAgLy8gVGhlc2Ug
c2l6ZXMgd2VyZSBkZXJpdmVkIGZyb20gdGhlIHN0YWNrIHVzYWdlIG9mIGEgbnVtYmVyIG9mIHNp
dGVzIHdoZW4KLSAgICAvLyBsYXlvdXQgb2NjdXJzIHdoZW4gd2UndmUgYWxyZWFkeSBjb25zdW1l
ZCBtb3N0IG9mIHRoZSBDIHN0YWNrLgotICAgIGNvbnN0IHNpemVfdCByZXF1aXJlZFN0YWNrID0g
MTI4ICogS0I7Ci0gICAgY29uc3Qgc2l6ZV90IGVycm9yTW9kZVJlcXVpcmVkU3RhY2sgPSA2NCAq
IEtCOwotCi0gICAgc2l6ZV90IHJlcXVpcmVkQ2FwYWNpdHkgPSBpbnRlcnByZXRlci0+aXNJbkVy
cm9ySGFuZGxpbmdNb2RlKCkgPyBlcnJvck1vZGVSZXF1aXJlZFN0YWNrIDogcmVxdWlyZWRTdGFj
azsKLSAgICBSRUxFQVNFX0FTU0VSVChtX3N0YWNrLnNpemUoKSA+PSByZXF1aXJlZENhcGFjaXR5
KTsKLSAgICByZXR1cm4gcmVxdWlyZWRDYXBhY2l0eTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlND
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuaAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRy
eVNjb3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDE2ICs0NSwxMCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRSZWNvbXBpbGF0aW9uTmVlZGVkKGJvb2wgcmVjb21waWxlTmVlZGVkKSB7IG1fcmVjb21w
aWxhdGlvbk5lZWRlZCA9IHJlY29tcGlsZU5lZWRlZDsgfQogCiBwcml2YXRlOgotICAgIHNpemVf
dCByZXF1aXJlZENhcGFjaXR5KCkgY29uc3Q7Ci0KICAgICBWTSYgbV92bTsKICAgICBTdGFja1N0
YXRzOjpDaGVja1BvaW50IG1fc3RhY2tDaGVja1BvaW50OwotICAgIFN0YWNrQm91bmRzIG1fc3Rh
Y2s7CiAgICAgSlNHbG9iYWxPYmplY3QqIG1fZ2xvYmFsT2JqZWN0OwotCi0gICAgLy8gbV9wcmV2
IGFuZCBtX3ByZXZTdGFja0xpbWl0IG1heSBiZWxvbmcgdG8gYSBkaWZmZXJlbnQgdGhyZWFkJ3Mg
c3RhY2suCi0gICAgVk1FbnRyeVNjb3BlKiBtX3ByZXY7Ci0gICAgdm9pZCogbV9wcmV2U3RhY2tM
aW1pdDsKKyAgICBzaXplX3QgbV9zYXZlZFJlc2VydmVkWm9uZVNpemU7CiAgICAgYm9vbCBtX3Jl
Y29tcGlsYXRpb25OZWVkZWQ7CiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2FkZC1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1jb25zdGFudC1vdmVyZmxv
dy1yZWNvdmVyeS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvYWRkLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgcmV0dXJuIGEuZiArIDIw
MDAwMDAwMDA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjF9KTsKKyAgICBpZiAocmVzdWx0
ICE9IDIwMDAwMDAwMDEpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyh7ZjoyMDAwMDAwMDAwfSk7CitpZiAocmVzdWx0
ICE9IDQwMDAwMDAwMDApCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTItY29u
c3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3Zlcnku
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Fk
ZC1pbnQ1Mi1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28oYSkgeworICAgIHJldHVybiBhICogMjA5NzE0NCAr
IDEwNzM3NDU5MjA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDEwNzM3MzYzODMpOworICAgIGlm
IChyZXN1bHQgIT0gMjI1MTc4MDg4NjkzNjA3MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKDEwNzM3NDU5MTkpOwor
aWYgKHJlc3VsdCAhPSAyMjUxODAwODg1MzAxMjU2KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJl
c3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvYWRkLWludDUyLWxhcmdlLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWludDUyLWxhcmdl
LWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTItbGFyZ2UtY29uc3RhbnQtb3ZlcmZs
b3ctcmVjb3ZlcnkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24g
Zm9vKGEpIHsKKyAgICByZXR1cm4gYSAqIDIwOTcxNDQgKyAxMDAwMDAwMDAwMDsKK30KKworbm9J
bmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZh
ciByZXN1bHQgPSBmb28oMTA3Mzc0MTE1MSk7CisgICAgaWYgKHJlc3VsdCAhPSAyMjUxNzk5ODEy
MzcyNzQ0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9
CisKK3ZhciByZXN1bHQgPSBmb28oMTA3Mzc0MTE1Mik7CitpZiAocmVzdWx0ICE9IDIyNTE3OTk4
MTQ0Njk4ODgpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtb3ZlcmZsb3ctcmVjb3Zl
cnkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9h
ZGQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2FkZC1vdmVyZmxvdy1yZWNvdmVyeS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28oYSwgYikgeworICAgIHJldHVybiBhLmYg
KyBiLmY7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjF9LCB7ZjoyfSk7CisgICAgaWYgKHJl
c3VsdCAhPSAzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
Cit9CisKK3ZhciByZXN1bHQgPSBmb28oe2Y6MjAwMDAwMDAwMH0sIHtmOjIwMDAwMDAwMDB9KTsK
K2lmIChyZXN1bHQgIT0gNDAwMDAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Fk
ZC1zbWFsbC1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1zbWFsbC1jb25zdGFudC1vdmVyZmxv
dy1yZWNvdmVyeS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvYWRkLXNtYWxsLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgcmV0dXJuIGEu
ZiArIDEwMDA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjF9KTsKKyAgICBpZiAocmVzdWx0
ICE9IDEwMDEpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
K30KKwordmFyIHJlc3VsdCA9IGZvbyh7ZjoyMTQ3NDgzMTQ4fSk7CitpZiAocmVzdWx0ICE9IDIx
NDc0ODQxNDgpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJheS1wdXNoLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJy
YXktcHVzaC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiBmb28o
KSB7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgdmFyIHJlc3VsdCA9IFtdOworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgNDI7ICsraSkKKyAgICAgICAgcmVzdWx0LnB1c2goYXJyYXkucHVzaCg3
IC0gaSkpOworICAgIHJldHVybiBbYXJyYXksIHJlc3VsdF07Cit9CisKK25vSW5saW5lKGZvbyk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0g
Zm9vKCk7CisgICAgaWYgKHJlc3VsdFswXS50b1N0cmluZygpICE9ICI3LDYsNSw0LDMsMiwxLDAs
LTEsLTIsLTMsLTQsLTUsLTYsLTcsLTgsLTksLTEwLC0xMSwtMTIsLTEzLC0xNCwtMTUsLTE2LC0x
NywtMTgsLTE5LC0yMCwtMjEsLTIyLC0yMywtMjQsLTI1LC0yNiwtMjcsLTI4LC0yOSwtMzAsLTMx
LC0zMiwtMzMsLTM0IikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgYXJyYXk6ICIgKyByZXN1
bHRbMF07CisgICAgaWYgKHJlc3VsdFsxXS50b1N0cmluZygpICE9ICIxLDIsMyw0LDUsNiw3LDgs
OSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywy
OCwyOSwzMCwzMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0MiIpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIGFycmF5OiAiICsgcmVzdWx0WzFdOworfQorCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2VtcHR5LWZ1bmN0aW9uLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZW1wdHktZnVuY3Rpb24uanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2VtcHR5
LWZ1bmN0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIGZv
bygpIHsgfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChyZXN1bHQgIT09IHZvaWQg
MCkKKyAgICAgICAgdGhyb3cgIllvdSBicm9rZSBKU0Mgc28gaGFyZCB0aGF0IGV2ZW4gdGhlIGVt
cHR5IGZ1bmN0aW9uIGRvZXNuJ3Qgd29yazogIiArIHJlc3VsdDsKK30KKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDMyLXRvLWRvdWJsZS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQt
YWZ0ZXItaW50MzItdG8tZG91YmxlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDMyLXRvLWRvdWJsZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28oeCwgbykgeworICAgIHJldHVy
biBvLmYgKyB4OworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyg0Mi41LCB7Zjo1fSk7CisgICAgaWYg
KHJlc3VsdCAhPSA0Ny41KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oIjQyIiwge2Y6NX0pOworaWYgKHJlc3VsdCAh
PSAiNTQyIikKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8t
ZG91YmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZXhpdC1hZnRlci1pbnQ1Mi10by1kb3VibGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8tZG91YmxlLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyhhLCBiLCBjKSB7
CisgICAgcmV0dXJuIGEuZiArIGIuZiArIGMuZjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6
MjAwMDAwMDAwMH0sIHtmOjIwMDAwMDAwMDB9LCB7ZjowLjV9KTsKKyAgICBpZiAocmVzdWx0ICE9
IDQwMDAwMDAwMDAuNSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVz
dWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAw
fSwge2Y6IjQyIn0pOworaWYgKHJlc3VsdCAhPSAiNDAwMDAwMDAwMDQyIikKKyAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQ1Mi10by12YWx1ZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTIt
dG8tdmFsdWUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8tdmFsdWUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwyNSBAQAorZnVuY3Rpb24gZm9vKGEsIGIsIGMpIHsKKyAgICBjLmYuZiA9IGEuZiArIGIu
ZjsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFyIGNvdW50ZXIgPSAwOworZnVuY3Rpb24gbWFr
ZVdlaXJkT2JqZWN0KCkgeworICAgIHZhciByZXN1bHQgPSB7fTsKKyAgICByZXN1bHRbImJsYWgi
ICsgKGNvdW50ZXIrKyldID0gNDI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBvID0gbWFrZVdlaXJkT2JqZWN0KCk7
CisgICAgZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSwge2Y6b30pOworICAgIGlm
IChvLmYgIT0gNDAwMDAwMDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworfQorCit2YXIgdGhpbmd5OworTnVtYmVyLnByb3RvdHlwZS5fX2RlZmluZVNl
dHRlcl9fKCJmIiwgZnVuY3Rpb24odmFsdWUpIHsgdGhpbmd5ID0gdmFsdWU7IH0pOworZm9vKHtm
OjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSwge2Y6NDJ9KTsKK2lmICh0aGluZ3kgIT0gNDAw
MDAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyB0aGluZ3k7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItbGx2bS1mb2xk
cy1sYXJnZS1pbnQtY29uc3RhbnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWxsdm0tZm9sZHMtbGFyZ2UtaW50LWNvbnN0YW50
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9l
eGl0LWFmdGVyLWxsdm0tZm9sZHMtbGFyZ2UtaW50LWNvbnN0YW50LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIGZvbyhvLCBpbykgeworICAgIHZhciBpID0gaW8u
ZjsKKyAgICBpZiAoaSAhPSA5MjE2MCkKKyAgICAgICAgby5nID0gNDI7CisgICAgcmV0dXJuIG8u
Zi5mICsgaTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6e2Y6NDJ9fSwge2Y6OTIxNjB9KTsK
KyAgICBpZiAocmVzdWx0ICE9IDkyMjAyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oe2Y6e2c6MjAsIGY6MjF9fSwg
e2Y6OTIxNjB9KTsKK2lmIChyZXN1bHQgIT0gOTIxODEpCisgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9leGl0LWZyb20tZnRsLXdpdGgtYXJpdHktY2hlY2stZmFpbC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtZnJvbS1mdGwtd2l0aC1h
cml0eS1jaGVjay1mYWlsLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9leGl0LWZyb20tZnRsLXdpdGgtYXJpdHktY2hlY2stZmFpbC5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiBmb28obywgYSwgYiwgYywgZCwg
ZSwgZiwgZywgaCwgaSwgaikgeworICAgIHJldHVybiBvLmY7Cit9CisKK2Z1bmN0aW9uIGJhcihv
KSB7CisgICAgcmV0dXJuIGZvbyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKK25vSW5saW5lKGJh
cik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgYmFyKHtmOjQyfSk7
CisKK3ZhciByZXN1bHQgPSBiYXIoe2c6MjQsIGY6NDN9KTsKK2lmIChyZXN1bHQgIT0gNDMpCisg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aGNvcy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aGNvcy5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRo
Y29zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7
CisgICAgcmV0dXJuIE1hdGguY29zKHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgaiA9
IDA7Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIGogPSBmb28oaSk7CisK
K2lmICgtMC41MDk4NzUzNzI0MTc5MDA5ICE9IGopeworICAgIHRocm93ICJFcnJvciIKK30KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc2luLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRo
c2luLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9mdGwtYXJpdGhzaW4uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rp
b24gZm9vKHgpIHsKKyAgICByZXR1cm4gTWF0aC5zaW4oeCk7Cit9CisKK25vSW5saW5lKGZvbyk7
CisKK3ZhciBqID0gMDsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgaiA9
IGZvbyhpKTsKKworaWYgKDAuODYwMjQ4MjgwNzg5NzQyICE9IGopeworICAgIHRocm93ICJFcnJv
ciIKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRo
c3FydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2Z0bC1hcml0aHNxcnQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MyBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gTWF0aC5zcXJ0KHgpOworfQorCitu
b0lubGluZShmb28pOworCit2YXIgaiA9IDA7Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKQorICAgIGogPSBmb28oaSk7CisKK2lmICggMzE2LjIyNjE4NDg3NDA1NSAhPSBqKXsKKyAg
ICB0aHJvdyAiRXJyb3IiCit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2Z0bC1wdXRieWlkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTMgQEAKKworT2JqZWN0LnByb3RvdHlwZS5fX2RlZmluZVNldHRlcl9fKCJyIiwgZnVu
Y3Rpb24odmFsKXsgbyA9IHZhbCB9KQorCitmdW5jdGlvbiBmb28oeCl7CisgICAgdmFyIG4gPSB7
IH0KKyAgICBuLnIgPSB4OworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKQorICAgIGZvbyhpKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVjdC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlkZGlyZWN0LmpzCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0Ynlp
ZGRpcmVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiBmb28o
eCl7CisgICAgcmV0dXJuIHsgMCA6IDEgLCBhIDogeCB9Cit9CisKK25vSW5saW5lKGZvbyk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgbyA9IGZvbyhpKTsKKworaWYg
KG8uYSAhPSA5OTk5OSB8fCBvWzBdICE9IDEpCisgICAgdGhyb3cgIkVycm9yIgorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC10by1mdGwtYXJpdHktZml4dXAu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwt
dG8tZnRsLWFyaXR5LWZpeHVwLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9mdGwtdG8tZnRsLWFyaXR5LWZpeHVwLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMzYgQEAKK2Z1bmN0aW9uIGZvbyhhLCBiLCBjKSB7CisgICAgcmV0dXJuIChh
fDApICsgKGJ8MCkgKyAoY3wwKTsKK30KKworZnVuY3Rpb24gYmFyKG8pIHsKKyAgICAvLyBTYXZl
IGEgYnVuY2ggb2Ygc3RhdGUgaW4gbG9jYWwgdmFyaWFibGVzLgorICAgIHZhciBhID0gby5mOwor
ICAgIHZhciBiID0gby5nOworICAgIHZhciBjID0gby5oOworICAgIHZhciBkID0gby5pOworICAg
IHZhciBlID0gby5qOworICAgIHZhciBmID0gby5rOworICAgIHZhciBnID0gby5sOworICAgIC8v
IE1ha2UgYSBjYWxsIHRoYXQgd2lsbCBiZSBzdWJqZWN0IHRvIGFyaXR5IGZpeHVwIGFuZCB0aGVu
IHVzZSB0aGUgc2F2ZWQgc3RhdGUuIFdlJ3JlCisgICAgLy8gY291bnRpbmcgb24gTExWTSB0byBw
dXQgdGhvc2UgdmFyaWFibGVzIGluIGNhbGxlZS1zYXZlcywgc2luY2UgdGhhdCdzIHByZXR0eSBt
dWNoIHRoZQorICAgIC8vIG9ubHkgc2Vuc2libGUgY2hvaWNlLgorICAgIHJldHVybiBmb28oNDIp
ICsgYSArIGIgKyBjICsgZCArIGUgKyBmICsgZzsKK30KKworbm9JbmxpbmUoZm9vKTsKK25vSW5s
aW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICAvLyBD
YWxsIGJhcigpIGluIHN1Y2ggYSB3YXkgdGhhdCBhbGwgb2YgdGhvc2UgY2FsbGVlLXNhdmUgdmFy
aWFibGVzIGhhdmUgZmFpcmx5IHVuaXF1ZQorICAgIC8vIGxvb2tpbmcgdmFsdWVzLCB0byBtYXhp
bWl6ZSB0aGUgY2hhbmNlcyBvZiBmb28oKSBjbG9iYmVyaW5nIHRoZW0gaW4gYSByZWNvZ25pemFi
bGUKKyAgICAvLyB3YXkuCisgICAgdmFyIHJlc3VsdCA9IGJhcih7CisgICAgICAgIGY6aSAqIDMs
IGc6aSAtIDEsIGg6KGkgLyAyKXwwLCBpOi1pLCBqOjEzICsgKChpIC8gNSl8MCksIGs6MTQgLSAo
KGkgLyA2KXwwKSwKKyAgICAgICAgbDoxIC0gaX0pOworICAgIAorICAgIHZhciBleHBlY3RlZCA9
IDQyICsgaSAqIDMgKyBpIC0gMSArICgoaSAvIDIpfDApIC0gaSArIDEzICsgKChpIC8gNSl8MCkg
KyAxNCAtCisgICAgICAgICgoaSAvIDYpfDApICsgMSAtIGk7CisgICAgCisgICAgaWYgKHJlc3Vs
dCAhPSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBmb3IgaXRlcmF0aW9uICIgKyBp
ICsgIiBleHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiIGJ1dCBnb3QgIiArIHJlc3VsdDsKK30KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZy
b20tZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS1nZXR0ZXIt
dGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tZ2V0dGVyLXRocm91Z2gt
b3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorZnVuY3Rp
b24gZm9vKG8pIHsKKyAgICByZXR1cm4gby5mICsgMTsKK30KKworbm9JbmxpbmUoZm9vKTsKKwor
dmFyIHNob3VsZFRocm93ID0gZmFsc2U7CisKK2Z1bmN0aW9uIG1ha2VXaXRoR2V0dGVyKCkgewor
ICAgIHZhciBvID0ge307CisgICAgby5fX2RlZmluZUdldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7
CisgICAgICAgIGlmIChzaG91bGRUaHJvdykKKyAgICAgICAgICAgIHRocm93ICJoZWxsbyI7Cisg
ICAgICAgIHJldHVybiA0MjsKKyAgICB9KTsKKyAgICByZXR1cm4gbzsKK30KKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MjN9KTsK
KyAgICBpZiAocmVzdWx0ICE9IDI0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gZm9vKG1ha2VXaXRoR2V0dGVyKCkpOworICAgIGlm
IChyZXN1bHQgIT0gNDMpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKK30KKwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBzaG91bGRUaHJvdyA9IHRydWU7
CisgICAgZm9vKG1ha2VXaXRoR2V0dGVyKCkpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93
ID0gZTsKK30KKworaWYgKGRpZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBk
aWRuJ3QgdGhyb3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9t
LXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUtdGhhdC1kb2VzLW5vdC1l
eGl0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
Z2V0LWJ5LWlkLXRocm93LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQt
Y29kZS10aGF0LWRvZXMtbm90LWV4aXQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0
dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUtdGhhdC1kb2VzLW5vdC1leGl0LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIG8u
ZjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gbWFrZVdpdGhHZXR0ZXIoKSB7Cisg
ICAgdmFyIG8gPSB7fTsKKyAgICBvLl9fZGVmaW5lR2V0dGVyX18oImYiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgdGhyb3cgImhlbGxvIjsKKyAgICB9KTsKKyAgICByZXR1cm4gbzsKK30KKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6
MjN9KTsKKyAgICBpZiAocmVzdWx0ICE9IDIzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gZm9vKHtnOjEyLCBmOjEzfSk7CisgICAg
aWYgKHJlc3VsdCAhPSAxMykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7ZzoxMiwgaDoxMywgZjoxNH0pOworICAgIGlmIChy
ZXN1bHQgIT0gMTQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKK30KKwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBmb28obWFrZVdpdGhHZXR0ZXIoKSk7
Cit9IGNhdGNoIChlKSB7CisgICAgZGlkVGhyb3cgPSBlOworfQorCitpZiAoZGlkVGhyb3cgIT0g
ImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBl
eGNlcHRpb246ICIgKyBkaWRUaHJvdzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1v
cHRpbWl6ZWQtY29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gt
b3B0aW1pemVkLWNvZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91
Z2gtb3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorZnVu
Y3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gby5mICsgMTsKK30KKworbm9JbmxpbmUoZm9vKTsK
KworZnVuY3Rpb24gbWFrZVdpdGhHZXR0ZXIoKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBvLl9f
ZGVmaW5lR2V0dGVyX18oImYiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhyb3cgImhlbGxvIjsK
KyAgICB9KTsKKyAgICByZXR1cm4gbzsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7
ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MjN9KTsKKyAgICBpZiAocmVzdWx0ICE9
IDI0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAg
cmVzdWx0ID0gZm9vKHtnOjEyLCBmOjEzfSk7CisgICAgaWYgKHJlc3VsdCAhPSAxNCkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZv
byh7ZzoxMiwgaDoxMywgZjoxNH0pOworICAgIGlmIChyZXN1bHQgIT0gMTUpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIGRpZFRocm93Owor
dHJ5IHsKKyAgICBmb28obWFrZVdpdGhHZXR0ZXIoKSk7Cit9IGNhdGNoIChlKSB7CisgICAgZGlk
VGhyb3cgPSBlOworfQorCitpZiAoZGlkVGhyb3cgIT0gImhlbGxvIikKKyAgICB0aHJvdyAiRXJy
b3I6IGRpZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaWMtdGhyb3ctdGhyb3Vn
aC1vcHRpbWl6ZWQtY29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2ljLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ljLXRocm93LXRocm91
Z2gtb3B0aW1pemVkLWNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOSBAQAorZnVu
Y3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gby5mICsgMTsKK30KKworTnVtYmVyLnByb3RvdHlw
ZS5mID0gNDI7CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDIzKTsKKyAgICBpZiAocmVzdWx0ICE9IDQz
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVz
dWx0ID0gZm9vKHtmOjI1fSk7CisgICAgaWYgKHJlc3VsdCAhPSAyNikKKyAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7ZzoxMiwg
ZjoxM30pOworICAgIGlmIChyZXN1bHQgIT0gMTQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBmb28o
dm9pZCAwKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmICghZGlk
VGhyb3cgfHwgZGlkVGhyb3cudG9TdHJpbmcoKS5pbmRleE9mKCJUeXBlRXJyb3I6IikgIT0gMCkK
KyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246
ICIgKyBkaWRUaHJvdzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
aW5saW5lLWNhbGwtdmFyYXJncy1hbmQtY2FsbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3MtYW5kLWNhbGwuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGlu
ZS1jYWxsLXZhcmFyZ3MtYW5kLWNhbGwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNSBA
QAorZnVuY3Rpb24gZm9vKGEsIGIpIHsKKyAgICByZXR1cm4gYmFyKGEsIGIpOworfQorCitmdW5j
dGlvbiBiYXIoYSwgYikgeworICAgIHZhciB4ID0gYmF6LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7
CisgICAgdmFyIHkgPSBiYXooYSwgYikKKyAgICByZXR1cm4geCArIHkgKiAzOworfQorCitmdW5j
dGlvbiBiYXooYSwgYikgeworICAgIHJldHVybiBhICsgYiAqIDI7Cit9CisKK25vSW5saW5lKGZv
byk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0
ID0gZm9vKDcsIDExKTsKKyAgICBpZiAocmVzdWx0ICE9IDExNikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKDUsIDIx
NDc0ODM2NDYpOworaWYgKHJlc3VsdCAhPSAxNzE3OTg2OTE4OCkKKyAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12
YXJhcmdzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKK2Z1bmN0aW9uIGZvbyhh
LCBiKSB7CisgICAgcmV0dXJuIGJhcihhLCBiKTsKK30KKworZnVuY3Rpb24gYmFyKGEsIGIpIHsK
KyAgICByZXR1cm4gYmF6LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7Cit9CisKK2Z1bmN0aW9uIGJh
eihhLCBiKSB7CisgICAgcmV0dXJuIGEgKyBiICogMjsKK30KKworbm9JbmxpbmUoZm9vKTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28o
NywgMTEpOworICAgIGlmIChyZXN1bHQgIT0gMjkpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyg1LCAyMTQ3NDgzNjQ2
KTsKK2lmIChyZXN1bHQgIT0gNDI5NDk2NzI5NykKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2lubGluZS1jbG9zdXJlLWNhbGwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAg
cmV0dXJuIGZ1bmN0aW9uKHkpIHsgcmV0dXJuIHggKyB5OyB9Cit9CisKK2Z1bmN0aW9uIGJhcihh
LCBiKSB7CisgICAgcmV0dXJuIGZvbyhhKShiKTsKK30KKworbm9JbmxpbmUoZm9vKTsKK25vSW5s
aW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIg
cmVzdWx0ID0gYmFyKGksIGkgKyAxKTsKKyAgICBpZiAocmVzdWx0ICE9IGkgKiAyICsgMSkKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGZvciAiICsgaSArICI6ICIgKyByZXN1bHQ7
Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1i
eS12YWwtaW4tYW5kLW91dC1vZi1ib3VuZHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWFuZC1vdXQtb2YtYm91
bmRzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9pbnQxNi1wdXQtYnktdmFsLWluLWFuZC1vdXQtb2YtYm91bmRzLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgYVs0Ml0gPSA5NTAxMDsK
K30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChsZW5ndGgsIGV4cGVjdGVkKSB7
CisgICAgdmFyIGEgPSBuZXcgSW50MTZBcnJheShsZW5ndGgpOworICAgIGZvbyhhKTsKKyAgICB2
YXIgcmVzdWx0ID0gYVs0Ml07CisgICAgaWYgKHJlc3VsdCAhPSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgdmFsdWUgYXQgYVs0Ml06ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDEwLCB2b2lkIDApOworICAg
IHRlc3QoMTAwLCAyOTQ3NCk7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2ludDE2LXB1dC1ieS12YWwtaW4tYm91bmRzLXRoZW4tZXhpdC1vdXQtb2YtYm91bmRz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50
MTYtcHV0LWJ5LXZhbC1pbi1ib3VuZHMtdGhlbi1leGl0LW91dC1vZi1ib3VuZHMuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1i
eS12YWwtaW4tYm91bmRzLXRoZW4tZXhpdC1vdXQtb2YtYm91bmRzLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgYVs0Ml0gPSA5NTAxMDsK
K30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChsZW5ndGgsIGV4cGVjdGVkKSB7
CisgICAgdmFyIGEgPSBuZXcgSW50MTZBcnJheShsZW5ndGgpOworICAgIGZvbyhhKTsKKyAgICB2
YXIgcmVzdWx0ID0gYVs0Ml07CisgICAgaWYgKHJlc3VsdCAhPSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgdmFsdWUgYXQgYVs0Ml06ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpCisgICAgdGVzdCgxMDAsIDI5NDc0KTsKKwordGVz
dCgxMCwgdm9pZCAwKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9pbnQxNi1wdXQtYnktdmFsLW91dC1vZi1ib3VuZHMtYm91bmRzLXRoZW4tZG8taW4tYm91bmRz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50
MTYtcHV0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWJvdW5kcy10aGVuLWRvLWluLWJvdW5kcy5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYt
cHV0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWJvdW5kcy10aGVuLWRvLWluLWJvdW5kcy5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBmb28oYSkgeworICAgIGFbNDJd
ID0gOTUwMTA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3QobGVuZ3RoLCBl
eHBlY3RlZCkgeworICAgIHZhciBhID0gbmV3IEludDE2QXJyYXkobGVuZ3RoKTsKKyAgICBmb28o
YSk7CisgICAgdmFyIHJlc3VsdCA9IGFbNDJdOworICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWQp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHZhbHVlIGF0IGFbNDJdOiAiICsgcmVzdWx0Owor
fQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIHRlc3QoMTAsIHZvaWQg
MCk7CisKK3Rlc3QoMTAwLCAyOTQ3NCk7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvaW52YWxpZGF0aW9uLXBvaW50LmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW52YWxpZGF0aW9uLXBvaW50LmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnZhbGlkYXRpb24t
cG9pbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNCBAQAorZnVuY3Rpb24gZm9vKG8s
IHApIHsKKyAgICBwb3NzaWJseURvQmFkVGhpbmdzKHApOworICAgIHJldHVybiBvLmYoKTsKK30K
K25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIFRoaW5neSgpIHsgfQorVGhpbmd5LnByb3RvdHlw
ZS5mID0gZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfQorCitmdW5jdGlvbiBwb3NzaWJseURvQmFk
VGhpbmdzKHApIHsKKyAgICBpZiAocCkKKyAgICAgICAgVGhpbmd5LnByb3RvdHlwZS5mID0gZnVu
Y3Rpb24oKSB7IHJldHVybiAyNDsgfQorfQorbm9JbmxpbmUocG9zc2libHlEb0JhZFRoaW5ncyk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0g
Zm9vKG5ldyBUaGluZ3koKSwgZmFsc2UpOworICAgIGlmIChyZXN1bHQgIT0gNDIpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9
IGZvbyhuZXcgVGhpbmd5KCksIHRydWUpOworaWYgKHJlc3VsdCAhPSAyNCkKKyAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTIuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0yLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuICJo
ZWxsbyIgKyB4OworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygiIHdvcmxkIik7CisgICAgaWYgKHR5
cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IHR5cGU6ICIgKyByZXN1bHQ7CisgICAgfQor
ICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIHdvcmxkIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL21ha2Utcm9wZS0zLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTMuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0zLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuICJoZWxs
byIgKyB4ICsgIiEhIjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oIiB3b3JsZCIpOworICAgIGlm
ICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0OworICAg
IH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyB3b3JsZCEhIikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS1zdG9yYWdlLWFycmF5LXdpdGgtc2l6ZS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJh
eS1zdG9yYWdlLWFycmF5LXdpdGgtc2l6ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXN0b3JhZ2UtYXJyYXktd2l0aC1zaXpl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7Cisg
ICAgcmV0dXJuIG5ldyBBcnJheSh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24g
dGVzdChzaXplKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVzdWx0
Lmxlbmd0aCAhPSBzaXplKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7CisgICAgdmFyIHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVz
dWx0KQorICAgICAgICBzYXdUaGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9ICI0Mi41IjsKKyAgICBpZiAocmVzdWx0WzBdICE9ICI0Mi41IikKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKK30K
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMTAwMDAwMCk7
Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS13
aXRoLXNpemUtd2l0aC1iYWQtdGltZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS13aXRoLXNpemUtd2l0aC1iYWQtdGltZS5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFy
cmF5LXdpdGgtc2l6ZS13aXRoLWJhZC10aW1lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MzQgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIG5ldyBBcnJheSh4KTsKK30KKwor
bm9JbmxpbmUoZm9vKTsKKwordmFyIHBva2U7CitBcnJheS5wcm90b3R5cGUuX19kZWZpbmVTZXR0
ZXJfXygiMSIsIGZ1bmN0aW9uKCkgeworICAgIHBva2UgPSAicG9rZSI7Cit9KTsKKworZnVuY3Rp
b24gdGVzdChzaXplKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVz
dWx0Lmxlbmd0aCAhPSBzaXplKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7CisgICAgdmFyIHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4g
cmVzdWx0KSB7CisgICAgICAgIGlmIChzICE9ICIxIikKKyAgICAgICAgICAgIHNhd1RoaW5ncyA9
IHRydWU7CisgICAgfQorICAgIGlmIChzYXdUaGluZ3MpCisgICAgICAgIHRocm93ICJFcnJvcjog
YXJyYXkgaXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIHJlc3VsdFswXSA9ICI0Mi41
IjsKKyAgICBpZiAocmVzdWx0WzBdICE9ICI0Mi41IikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBh
cnJheSBpcyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICBwb2tlID0gbnVsbDsKKyAg
ICByZXN1bHRbMV0gPSA0MjsKKyAgICBpZiAocG9rZSAhPSAicG9rZSIpCisgICAgICAgIHRocm93
ICJFcnJvcjogc2V0dGVyIG5vdCBjYWxsZWQuIjsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7ICsraSkgeworICAgIHRlc3QoNDIpOworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9uZXctY29udGlndW91cy1hcnJheS13aXRoLXNpemUuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctY29udGlndW91
cy1hcnJheS13aXRoLXNpemUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL25ldy1jb250aWd1b3VzLWFycmF5LXdpdGgtc2l6ZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDMxIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBu
ZXcgQXJyYXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkg
eworICAgIHZhciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0g
c2l6ZSkgeworICAgICAgICBwcmludCgiR290IGEgd2VpcmQgbGVuZ3RoOiAiICsgcmVzdWx0Lmxl
bmd0aCk7CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAg
ICB9CisgICAgdmFyIHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0
KQorICAgICAgICBzYXdUaGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpIHsKKyAgICAg
ICAgcHJpbnQoIlNhdyB0aGluZ3MhIik7CisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMg
aW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIH0KKyAgICByZXN1bHRbMF0gPSAiNDIuNSI7
CisgICAgaWYgKHJlc3VsdFswXSAhPSAiNDIuNSIpIHsKKyAgICAgICAgcHJpbnQoIkRpZG4ndCBz
dG9yZSB3aGF0IEkgdGhvdWdodCBJIHN0b3JlZC4iKTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiBh
cnJheSBpcyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICB9Cit9CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3QoMSk7Cisg
ICAgdGVzdCg0Mik7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L25ldy1kb3VibGUtYXJyYXktd2l0aC1zaXplLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWRvdWJsZS1hcnJheS13aXRoLXNpemUuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1kb3Vi
bGUtYXJyYXktd2l0aC1zaXplLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUgQEAKK2Z1
bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIG5ldyBBcnJheSh4KTsKK30KKworbm9JbmxpbmUo
Zm9vKTsKKworZnVuY3Rpb24gdGVzdChzaXplKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhzaXpl
KTsKKyAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSBzaXplKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgdmFyIHNhd1RoaW5ncyA9IGZhbHNlOworICAg
IGZvciAodmFyIHMgaW4gcmVzdWx0KQorICAgICAgICBzYXdUaGluZ3MgPSB0cnVlOworICAgIGlm
IChzYXdUaGluZ3MpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gYmFkIHN0YXRl
OiAiICsgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDQyLjU7CisgICAgaWYgKHJlc3VsdFswXSAh
PSA0Mi41KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIHdpZXJkIHN0YXRlOiAi
ICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAg
dGVzdCgwKTsKKyAgICB0ZXN0KDEpOworICAgIHRlc3QoNDIpOworfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctaW50MzItYXJyYXktd2l0aC1zaXplLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWludDMy
LWFycmF5LXdpdGgtc2l6ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvbmV3LWludDMyLWFycmF5LXdpdGgtc2l6ZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJy
YXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAg
IHZhciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBz
YXdUaGluZ3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3
VGhpbmdzID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSA0MjsK
KyAgICBpZiAocmVzdWx0WzBdICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlz
IGluIHdpZXJkIHN0YXRlOiAiICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgKytpKSB7CisgICAgdGVzdCgwKTsKKyAgICB0ZXN0KDEpOworICAgIHRlc3QoNDIpOwor
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdW5kZWNpZGVk
LWFycmF5LXdpdGgtc2l6ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL25ldy11bmRlY2lkZWQtYXJyYXktd2l0aC1zaXplLmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdW5kZWNpZGVkLWFy
cmF5LXdpdGgtc2l6ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACitmdW5jdGlv
biBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJyYXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7
CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAgIHZhciByZXN1bHQgPSBmb28oc2l6ZSk7Cisg
ICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBzYXdUaGluZ3MgPSBmYWxzZTsKKyAgICBmb3Ig
KHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3VGhpbmdzID0gdHJ1ZTsKKyAgICBpZiAoc2F3
VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiAr
IHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRl
c3QoMCk7CisgICAgdGVzdCgxKTsKKyAgICB0ZXN0KDQyKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvbm90LWNlbGwtdXNlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvbm90LWNlbGwtdXNlLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9ub3QtY2VsbC11c2Uu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOSBAQAorZnVuY3Rpb24gZm9vKGEsIGIsIGMp
IHsKKyAgICByZXR1cm4gKGF8MCkgKyAoYnwwKSArIChjfDApOworfQorCitmdW5jdGlvbiBiYXIo
bykgeworICAgIHZhciBhID0gby5mOworICAgIHZhciBiID0gby5nOworICAgIHZhciBjID0gby5o
OworICAgIHZhciBkID0gby5pOworICAgIHZhciBlID0gby5qOworICAgIHZhciBmID0gby5rOwor
ICAgIHZhciBnID0gby5sOworICAgIHJldHVybiBmb28oNDIsIHZvaWQgMCwgdm9pZCAwKSArIGEg
KyBiICsgYyArIGQgKyBlICsgZiArIGc7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShi
YXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3Vs
dCA9IGJhcih7CisgICAgICAgIGY6aSAqIDMsIGc6aSAtIDEsIGg6KGkgLyAyKXwwLCBpOi1pLCBq
OjEzICsgKChpIC8gNSl8MCksIGs6MTQgLSAoKGkgLyA2KXwwKSwKKyAgICAgICAgbDoxIC0gaX0p
OworICAgIAorICAgIHZhciBleHBlY3RlZCA9IDQyICsgaSAqIDMgKyBpIC0gMSArICgoaSAvIDIp
fDApIC0gaSArIDEzICsgKChpIC8gNSl8MCkgKyAxNCAtCisgICAgICAgICgoaSAvIDYpfDApICsg
MSAtIGk7CisgICAgCisgICAgaWYgKHJlc3VsdCAhPSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cg
IkVycm9yOiBmb3IgaXRlcmF0aW9uICIgKyBpICsgIiBleHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAi
IGJ1dCBnb3QgIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvcHV0LWJ5LWlkLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wdXQtYnktaWQtdGhy
b3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLXRocm93LXRocm91Z2gtb3B0aW1pemVk
LWNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMyBAQAorZnVuY3Rpb24gZm9vKG8p
IHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgby5mID0gNDI7Cit9CisKK25vSW5saW5lKGZvbyk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgbyA9IHt9Owor
ICAgIGZvbyhvKTsKKyAgICBpZiAoby5mICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyBvLmY7CisgICAgbyA9IHtmOjIzfTsKKyAgICBmb28obyk7CisgICAgaWYg
KG8uZiAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOwor
ICAgIG8gPSB7ZzoxMn07CisgICAgZm9vKG8pOworICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIG8uZjsKK30KKwordmFyIGRpZFRocm93Owor
dHJ5IHsKKyAgICB2YXIgbyA9IHt9OworICAgIE9iamVjdC5mcmVlemUobyk7CisgICAgZm9vKG8p
OworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30KKworaWYgKCFkaWRUaHJvdyB8
fCBkaWRUaHJvdy50b1N0cmluZygpLmluZGV4T2YoIlR5cGVFcnJvcjoiKSAhPSAwKQorICAgIHRo
cm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4Y2VwdGlvbjogIiArIGRp
ZFRocm93OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWN1cnNl
LWluZmluaXRlbHktb24tZ2V0dGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvcmVjdXJzZS1pbmZpbml0ZWx5LW9uLWdldHRlci5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVjdXJzZS1pbmZp
bml0ZWx5LW9uLWdldHRlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDsgKytpKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBvLl9fZGVm
aW5lR2V0dGVyX18oImYiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIG8uZjsKKyAgICB9
KTsKKyAgICB2YXIgZGlkVGhyb3c7CisgICAgdmFyIHJlc3VsdDsKKyAgICByZXN1bHQgPSAibm90
IHNldCI7CisgICAgdHJ5IHsKKyAgICAgICAgcmVzdWx0ID0gby5mOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgZGlkVGhyb3cgPSBlOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJub3Qg
c2V0IikKKyAgICAgICAgdGhyb3cgIkRpZCBzZXQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIGlm
ICghZGlkVGhyb3cgfHwgZGlkVGhyb3cudG9TdHJpbmcoKS5pbmRleE9mKCJSYW5nZUVycm9yIikg
IT0gMCkKKyAgICAgICAgdGhyb3cgIkJhZCBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKK30KKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZXBlYXRlZC1hcml0eS1j
aGVjay1mYWlsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvcmVwZWF0ZWQtYXJpdHktY2hlY2stZmFpbC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVwZWF0ZWQtYXJpdHktY2hlY2stZmFpbC5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIGJhcihhLGIsYyxkLGUs
ZixnLGgsaSxqLGspIHsKK30KKworbm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDAwMDsgKytpKQorICAgIGJhcigpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3J1bnRpbWUtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3J1bnRpbWUt
dGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXpl
ZC1jb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAKK2Z1bmN0aW9uIGZvbyhh
LCBzKSB7CisgICAgcmV0dXJuIGFbc10gKyAxOworfQorCit2YXIgc2hvdWxkVGhyb3cgPSBmYWxz
ZTsKK2Z1bmN0aW9uIGJhcigpIHsKKyAgICBpZiAoc2hvdWxkVGhyb3cpCisgICAgICAgIHRocm93
ICJoZWxsbyI7CisgICAgcmV0dXJuIDQyOworfQorCit2YXIgYSA9IHt9OworYS5fX2RlZmluZUdl
dHRlcl9fKCJiYXIiLCBiYXIpOworCitub0lubGluZShmb28pOworbm9JbmxpbmUoYmFyKTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28o
YSwgImJhciIpOworICAgIGlmIChyZXN1bHQgIT0gNDMpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBz
aG91bGRUaHJvdyA9IHRydWU7CisgICAgZm9vKGEsICJiYXIiKTsKK30gY2F0Y2ggKGUpIHsKKyAg
ICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAhPSAiaGVsbG8iKQorICAgIHRocm93
ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4Y2VwdGlvbjogIiArIGRpZFRo
cm93OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9s
eXZhcmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWNhbGwtaW5saW5p
bmctZXhhbXBsZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWNhbGwtaW5saW5pbmctZXhhbXBsZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACitmdW5jdGlvbiBmb28oYmF6KSB7CisgICAgcmV0
dXJuIGJhcihiYXopOworfQorCitmdW5jdGlvbiBmdXp6KGJheikgeworICAgIHJldHVybiBiYXIo
YmF6KTsKK30KKworZnVuY3Rpb24gYmFyKGJheikgeworICAgIHJldHVybiBiYXooKTsKK30KKwor
ZnVuY3Rpb24gYmF6MSgpIHsKKyAgICByZXR1cm4gNDI7Cit9CisKK2Z1bmN0aW9uIGJhejIoKSB7
CisgICAgcmV0dXJuIDI0OworfQorCitub0lubGluZShmb28pOworbm9JbmxpbmUoZnV6eik7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9v
KGJhejEpOworICAgIGlmIChyZXN1bHQgIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgcmVzdWx0ID0gZnV6eihiYXoyKTsKKyAgICBp
ZiAocmVzdWx0ICE9IDI0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2lt
cGxlLXBvbHl2YXJpYW50LWdldC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50
LWdldC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtZ2V0LWJ5LWlkLWlu
bGluaW5nLWV4YW1wbGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNCBAQAorZnVuY3Rp
b24gZm9vKG8pIHsKKyAgICByZXR1cm4gYmFyKG8pOworfQorCitmdW5jdGlvbiBmdXp6KG8pIHsK
KyAgICByZXR1cm4gYmFyKG8pOworfQorCitmdW5jdGlvbiBiYXIobykgeworICAgIHJldHVybiBv
LmY7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShmdXp6KTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6NDJ9KTsKKyAg
ICBpZiAocmVzdWx0ICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7CisgICAgdmFyIHJlc3VsdCA9IGZ1enooe2c6MjMsIGY6MjR9KTsKKyAgICBpZiAo
cmVzdWx0ICE9IDI0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxl
LXBvbHl2YXJpYW50LXB1dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LXB1
dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtcHV0LWJ5LWlkLWlubGlu
aW5nLWV4YW1wbGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNiBAQAorZnVuY3Rpb24g
Zm9vKG8pIHsKKyAgICBiYXIobyk7Cit9CisKK2Z1bmN0aW9uIGZ1enoobykgeworICAgIGJhcihv
KTsKK30KKworZnVuY3Rpb24gYmFyKG8pIHsKKyAgICBvLmYgPSA0MjsKK30KKworbm9JbmxpbmUo
Zm9vKTsKK25vSW5saW5lKGZ1enopOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytp
KSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBmb28obyk7CisgICAgaWYgKG8uZiAhPSA0MikKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOworICAgIG8gPSB7ZjoyM307
CisgICAgdmFyIHJlc3VsdCA9IGZ1enoobyk7CisgICAgaWYgKG8uZiAhPSA0MikKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOworfQorCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90aHJvdy10
aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy90aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMzAgQEAKK2Z1bmN0aW9uIGZvbyhmKSB7CisgICAgcmV0dXJu
IGYoMSkgKyAxOworfQorCit2YXIgc2hvdWxkVGhyb3cgPSBmYWxzZTsKK2Z1bmN0aW9uIGJhcih4
KSB7CisgICAgaWYgKHNob3VsZFRocm93KQorICAgICAgICB0aHJvdyAiaGVsbG8iOworICAgIHJl
dHVybiA0MiAtIHg7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShiYXIpOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhiYXIp
OworICAgIGlmIChyZXN1bHQgIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3Vs
dDogIiArIHJlc3VsdDsKK30KKwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBzaG91bGRUaHJv
dyA9IHRydWU7CisgICAgZm9vKGJhcik7Cit9IGNhdGNoIChlKSB7CisgICAgZGlkVGhyb3cgPSBl
OworfQorCitpZiAoZGlkVGhyb3cgIT0gImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4n
dCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC1vci1z
dHJpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy90by1zdHJpbmctb24tb2JqZWN0LW9yLXN0cmluZy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC1vci1zdHJp
bmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorZnVuY3Rpb24gRm9vKCkgeyB9
CisKK0Zvby5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgcmV0dXJuICJoZWxsbyIg
fTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lu
bGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFy
IHJlc3VsdCA9IGZvbyhuZXcgRm9vKCkpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJp
bmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjog
cmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8i
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgCisg
ICAgcmVzdWx0ID0gZm9vKCJ3b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJp
bmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjog
cmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAid29ybGQi
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3Qu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1z
dHJpbmctb24tb2JqZWN0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTkgQEAKK2Z1bmN0aW9uIEZvbygpIHsgfQorCitGb28ucHJvdG90eXBlLnRvU3RyaW5n
ID0gZnVuY3Rpb24oKSB7IHJldHVybiAiaGVsbG8iIH07CisKK2Z1bmN0aW9uIGZvbyhvKSB7Cisg
ICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28obmV3IEZvbygpKTsK
KyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShy
ZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmluZyI7Cisg
ICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9iamVjdC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb2Jq
ZWN0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy90by1zdHJpbmctb24tc3RyaW5nLW9iamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE1IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBTdHJpbmcobyk7Cit9CisKK25v
SW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2
YXIgcmVzdWx0ID0gZm9vKG5ldyBTdHJpbmcoImhlbGxvIikpOworICAgIGlmICh0eXBlb2YgcmVz
dWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRo
cm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3Vs
dCAhPSAiaGVsbG8iKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmlu
Zy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC10aGVuLW9iamVjdC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmct
b3Itc3RyaW5nLW9iamVjdC10aGVuLW9iamVjdC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmct
b2JqZWN0LXRoZW4tb2JqZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKK2Z1
bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9v
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQg
PSBmb28obmV3IFN0cmluZygiaGVsbG8iKSk7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0
cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9y
OiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxs
byIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICAK
KyAgICByZXN1bHQgPSBmb28oIndvcmxkIik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0
cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9y
OiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJ3b3Js
ZCIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwor
ZnVuY3Rpb24gRm9vKCkgeyB9CisKK0Zvby5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigp
IHsgcmV0dXJuICJoZWxsbyIgfTsKKwordmFyIHJlc3VsdCA9IGZvbyhuZXcgRm9vKCkpOworaWYg
KHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICBkZXNjcmliZShyZXN1bHQpOworICAg
IHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKK30KK2lmIChyZXN1bHQgIT0g
ImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmct
b3Itc3RyaW5nLW9iamVjdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5n
LW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MjMgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9J
bmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZh
ciByZXN1bHQgPSBmb28obmV3IFN0cmluZygiaGVsbG8iKSk7CisgICAgaWYgKHR5cGVvZiByZXN1
bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhy
b3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0
ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKKyAgICAKKyAgICByZXN1bHQgPSBmb28oIndvcmxkIik7CisgICAgaWYgKHR5cGVvZiByZXN1
bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhy
b3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0
ICE9ICJ3b3JsZCIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5n
LW9uLXZhbHVlLW9yLXN0cmluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS1vci1zdHJpbmcuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12
YWx1ZS1vci1zdHJpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorZnVuY3Rp
b24gZm9vKG8pIHsKKyAgICByZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGluZShmb28pOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZv
byg0Mik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVz
Y3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJp
bmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICI0MiIpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICAKKyAgICByZXN1bHQgPSBmb28oIndvcmxk
Iik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3Jp
YmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmci
OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJ3b3JsZCIpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLmpzCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmct
b24tdmFsdWUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9v
KG8pIHsKKyAgICByZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGluZShmb28pOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyg0Mik7
CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUo
cmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOwor
ICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICI0MiIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE0LTAx
LTI4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdl
IHRoZSBqc0NTdGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENoYW5nZXMgZnJvbSBodHRwOi8vc3ZuLndlYmtpdC5vcmcvcmVwb3NpdG9y
eS93ZWJraXQvYnJhbmNoZXMvanNDU3RhY2sKKwogMjAxNC0wMS0yOCAgQW5kZXJzIENhcmxzc29u
ICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFjdHVhbGx5IHR1cm4gc3RhY2sgc3Rh
dHMgYmFjayBvZmYuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9CYWdUb0hhc2hNYXAuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9CYWdUb0hhc2hNYXAuaAkocmV2aXNpb24gMTYyOTYxKQor
KysgU291cmNlL1dURi93dGYvQmFnVG9IYXNoTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDggKzMy
LDggQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEVsZW1lbnRUeXBl
LCB0eXBlbmFtZSBLZXlUeXBlLCB0eXBlbmFtZSBLZXlHZXR0ZXJGdW5jdG9yPgotdm9pZCB0b0hh
c2hNYXAoQmFnPEVsZW1lbnRUeXBlPiYgYmFnLCBLZXlHZXR0ZXJGdW5jdG9yJiBnZXRLZXksIEhh
c2hNYXA8S2V5VHlwZSwgRWxlbWVudFR5cGUqPiYgcmVzdWx0KQordGVtcGxhdGU8dHlwZW5hbWUg
RWxlbWVudFR5cGUsIHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1l
IEtleUdldHRlckZ1bmN0b3I+Cit2b2lkIHRvSGFzaE1hcChCYWc8RWxlbWVudFR5cGU+JiBiYWcs
IEtleUdldHRlckZ1bmN0b3ImIGdldEtleSwgSGFzaE1hcDxLZXlUeXBlLCBFbGVtZW50VHlwZSos
IEhhc2hBcmc+JiByZXN1bHQpCiB7CiAgICAgZm9yICh0eXBlbmFtZSBCYWc8RWxlbWVudFR5cGU+
OjppdGVyYXRvciBpdGVyID0gYmFnLmJlZ2luKCk7ICEhaXRlcjsgKytpdGVyKSB7CiAgICAgICAg
IEVsZW1lbnRUeXBlKiBlbGVtZW50ID0gKml0ZXI7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9u
IDE2Mjk2MSkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTY2MCwxMiArNjYwLDEyIEBACiAjZGVmaW5lIEVOQUJMRV9KSVQgMAogI2VuZGlmCiAKLS8qIFRo
ZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9uIGFsbCB4ODYsIHg4Ni02NCwgQVJNICYgTUlQ
UyBwbGF0Zm9ybXMgZXhjZXB0IFdpbjY0LiAqLworLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRl
ZmF1bHQgb24gYWxsIHg4NiwgeDg2LTY0LCBBUk0gJiBNSVBTIHBsYXRmb3JtcyBleGNlcHQgV2lu
ZG93cy4gKi8KICNpZiAhZGVmaW5lZChFTkFCTEVfSklUKSBcCiAgICAgJiYgKENQVShYODYpIHx8
IENQVShYODZfNjQpIHx8IENQVShBUk0pIHx8IENQVShBUk02NCkgfHwgQ1BVKE1JUFMpKSBcCiAg
ICAgJiYgKE9TKERBUldJTikgfHwgIUNPTVBJTEVSKEdDQykgfHwgR0NDX1ZFUlNJT05fQVRfTEVB
U1QoNCwgMSwgMCkpIFwKICAgICAmJiAhT1MoV0lOQ0UpIFwKLSAgICAmJiAhKE9TKFdJTkRPV1Mp
ICYmIENQVShYODZfNjQpKQorICAgICYmICFPUyhXSU5ET1dTKQogI2RlZmluZSBFTkFCTEVfSklU
IDEKICNlbmRpZgogCkBAIC04MzUsMTQgKzgzNSw2IEBACiAjZW5kaWYKICNlbmRpZgogCi0vKiBG
SVhNRTogV2UgY3VycmVudGx5IHVuY29uZGl0aW9uYWxseSB1c2Ugc3BlYXJhdGUgc3RhY2tzLiBX
aGVuIHdlIHN3aXRjaCB0byB1c2luZyB0aGUKLSAgIEMgc3RhY2sgZm9yIEpTIGZyYW1lcywgd2Un
bGwgbmVlZCB0byBtYWtlIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uYWwgb24gRU5BQkxFKExMSU5U
X0NMT09QKQotICAgb25seS4KLSovCi0jaWYgRU5BQkxFKExMSU5UX0NMT09QKSB8fCAxCi0jZGVm
aW5lIFdURl9VU0VfU0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0sgMQotI2VuZGlmCi0KIC8qIFBpY2sg
d2hpY2ggYWxsb2NhdG9yIHRvIHVzZTsgd2Ugb25seSBuZWVkIGFuIGV4ZWN1dGFibGUgYWxsb2Nh
dG9yIGlmIHRoZSBhc3NlbWJsZXIgaXMgY29tcGlsZWQgaW4uCiAgICBPbiB4ODYtNjQgd2UgdXNl
IGEgc2luZ2xlIGZpeGVkIG1tYXAsIG9uIG90aGVyIHBsYXRmb3JtcyB3ZSBtbWFwIG9uIGRlbWFu
ZC4gKi8KICNpZiBFTkFCTEUoQVNTRU1CTEVSKQpJbmRleDogU291cmNlL1dURi93dGYvU3RhY2tC
b3VuZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw2ICsyNyw4IEBACiAjaWZuZGVmIFN0YWNrQm91bmRzX2gKICNkZWZpbmUgU3Rh
Y2tCb3VuZHNfaAogCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCiBuYW1lc3BhY2UgV1RGIHsKIAog
Y2xhc3MgU3RhY2tCb3VuZHMgewpAQCAtNjcsNiArNjksMTcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Y2hhcio+KG1fYm91bmQpIC0gbWluQXZhaWxhYmxlRGVsdGE7CiAg
ICAgfQogCisgICAgdm9pZCogcmVjdXJzaW9uTGltaXQoc2l6ZV90IGhvc3Rab25lU2l6ZSwgdm9p
ZCogZGVzaXJlZExpbWl0KSBjb25zdAorICAgIHsKKyAgICAgICAgY2hlY2tDb25zaXN0ZW5jeSgp
OworICAgICAgICBpZiAoaXNHcm93aW5nRG93bndhcmQoKSkgeworICAgICAgICAgICAgY2hhciog
ZW5kT2ZTdGFja1dpdGhIb3N0Wm9uZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fYm91bmQp
ICsgaG9zdFpvbmVTaXplOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KGRlc2lyZWRMaW1p
dCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZW5kT2ZTdGFja1dpdGhIb3N0Wm9uZSkpOworICAg
ICAgICB9CisgICAgICAgIGNoYXIqIGVuZE9mU3RhY2tXaXRoSG9zdFpvbmUgPSByZWludGVycHJl
dF9jYXN0PGNoYXIqPihtX2JvdW5kKSAtIGhvc3Rab25lU2l6ZTsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bWluKGRlc2lyZWRMaW1pdCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZW5kT2ZTdGFja1dp
dGhIb3N0Wm9uZSkpOworICAgIH0KKwogICAgIGJvb2wgaXNHcm93aW5nRG93bndhcmQoKSBjb25z
dAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fb3JpZ2luICYmIG1fYm91bmQpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDEtMjggIE1pY2hhZWwgU2Fib2ZmICA8
bXNhYm9mZkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5jaAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzYzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlcyBm
cm9tIGh0dHA6Ly9zdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC9icmFuY2hlcy9qc0NT
dGFjaworCiAyMDE0LTAxLTI4ICBWaWF0Y2hlc2xhdiBPc3RhcGVua28gIDxzbC5vc3RhcGVua29A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgU3RpY2t5IHBvc2l0aW9uaW5nIGlzIGJyb2tlbiBmb3Ig
dGFibGUgcm93cwpJbmRleDogU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGlt
ZS9FcnJvckhhbmRsaW5nU2NvcGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9FcnJvckhhbmRsaW5n
U2NvcGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9G
V0RfRXJyb3JIYW5kbGluZ1Njb3BlX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfRXJyb3JIYW5kbGlu
Z1Njb3BlX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FcnJvckhhbmRsaW5nU2NvcGUuaD4K
KyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xODUxMiw2ICsxODUxMiw3
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1l
XENvbnN0cnVjdERhdGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcRGF0ZUluc3RhbmNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9yLmgiIC8+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9ySGFuZGxpbmdT
Y29wZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNc
cnVudGltZVxFcnJvclByb3RvdHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxFeGNlcHRpb25IZWxwZXJzLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEV4ZWN1dGFibGUu
aCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5
KQpAQCAtMTI1MTAsNiArMTI1MTAsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZVxFcnJvci5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGlu
Z0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxFcnJvckhhbmRsaW5nU2Nv
cGUuaCI+CisgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4K
KyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdI
ZWFkZXJzXHJ1bnRpbWVcRXJyb3JQcm90b3R5cGUuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMTYyOTYx
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGludGVycHJldGVyL0ludGVycHJl
dGVyLmg+CiAjaW5jbHVkZSA8cnVudGltZS9EYXRlSW5zdGFuY2UuaD4KICNpbmNsdWRlIDxydW50
aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8cnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaD4KICNp
bmNsdWRlIDxydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
RnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtMTU0LDcgKzE1NSw3
IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlMKICAgICBpZiAoaXNU
ZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGV4Y2VwdGlvbikpCiAgICAgICAgIHJldHVybjsK
IAotICAgIEludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZSBtb2RlKGV4ZWMpOworICAgIEVy
cm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKGV4ZWMtPnZtKCkpOwogCiAgICAgUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zyb21FeGNlcHRp
b24oZXhlYywgZXhjZXB0aW9uLCBTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0Nh
cHR1cmUpKTsKICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwpJbmRleDogVG9vbHMvU2NyaXB0
cy9kaXNwbGF5LXByb2ZpbGVyLW91dHB1dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2Rp
c3BsYXktcHJvZmlsZXItb3V0cHV0CShyZXZpc2lvbiAxNjI5NjEpCisrKyBUb29scy9TY3JpcHRz
L2Rpc3BsYXktcHJvZmlsZXItb3V0cHV0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAog
IyEvdXNyL2Jpbi9lbnYgcnVieQogCi0jIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQzNyw3ICs0MzcsMTEgQEAgJGNvbXBpbGF0aW9ucyA9ICRqc29uWyJjb21waWxh
dGlvbnMiXS5tYQogICAgIHwgc3ViSnNvbiB8CiAgICAgQ29tcGlsYXRpb24ubmV3KHN1Ykpzb24p
CiB9Ci0kZW5naW5lcyA9IFsiQmFzZWxpbmUiLCAiREZHIl0KKyRlbmdpbmVzID0gWyJCYXNlbGlu
ZSIsICJERkciLCAiRlRMIiwgIkZUTEZvck9TUkVudHJ5Il0KKworZGVmIGlzT3B0aW1pemluZyhl
bmdpbmUpCisgICAgZW5naW5lID09ICJERkciIG9yIGVuZ2luZSA9PSAiRlRMIiBvciBlbmdpbmUg
PT0gIkZUTEZvck9TUkVudHJ5IgorZW5kCiAKICRzaG93Q291bnRzID0gdHJ1ZQogJHNvcnRNb2Rl
ID0gOnRpbWUKQEAgLTU3Miw5ICs1NzYsOSBAQCBkZWYgc3VtbWFyeShtb2RlKQogICAgIGlmIG1v
ZGUgPT0gOmZ1bGwKICAgICAgICAgcHJpbnQoIiAiICsgKCIgIiAqIGluc3RydWN0aW9uQ291bnRD
b2xzKSkKICAgICBlbmQKLSAgICBwcmludCgiICIgKyBjZW50ZXIoIkJhc2UvREZHIiwgY291bnRD
b2xzKSkKKyAgICBwcmludCgiICIgKyBjZW50ZXIoIkJhc2UvREZHL0ZUTC9GVExPU1IiLCBjb3Vu
dENvbHMpKQogICAgIGlmIG1vZGUgPT0gOmZ1bGwKLSAgICAgICAgcHJpbnQoIiAiICsgY2VudGVy
KCJCYXNlL0RGRyIsIG1hY2hpbmVDb3VudENvbHMpKQorICAgICAgICBwcmludCgiICIgKyBjZW50
ZXIoIkJhc2UvREZHL0ZUTC9GVExPU1IiLCBtYWNoaW5lQ291bnRDb2xzKSkKICAgICAgICAgcHJp
bnQoIiAiICsgKCIgIiAqIGNvbXBpbGF0aW9uc0NvbHMpKQogICAgICAgICBwcmludCgiICIgKyBj
ZW50ZXIoIlNyYy9Ub3RhbCIsIGlubGluZXNDb2xzKSkKICAgICAgICAgcHJpbnQoIiAiICsgKCIg
IiAqIGV4aXRDb3VudENvbHMpKQpAQCAtNjc0LDcgKzY3OCw3IEBAIGRlZiBleGVjdXRlQ29tbWFu
ZCgqY29tbWFuZEFycmF5KQogICAgICAgICAgICAgaWYgJHNob3dDb3VudHMKICAgICAgICAgICAg
ICAgICBwdXRzKGNlbnRlcigiU291cmNlIENvdW50cyIsIGNvdW50Q29scykgKyAiICIgKyBjZW50
ZXIoIk1hY2hpbmUgQ291bnRzIiwgbWFjaGluZUNvbHMpICsKICAgICAgICAgICAgICAgICAgICAg
ICgiICIgKiBwYWQpICsgY2VudGVyKCJCeXRlY29kZSBmb3IgI3tieXRlY29kZXN9Iiwgc2NyZWVu
V2lkdGggLSBwYWQgLSBjb3VudENvbHMgLSAxIC0gbWFjaGluZUNvbHMpKQotICAgICAgICAgICAg
ICAgIHB1dHMoY2VudGVyKCJCYXNlL0RGRyIsIGNvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJh
c2UvREZHIiwgY291bnRDb2xzKSkKKyAgICAgICAgICAgICAgICBwdXRzKGNlbnRlcigiQmFzZS9E
RkcvRlRML0ZUTE9TUiIsIGNvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJhc2UvREZHL0ZUTC9G
VExPU1IiLCBjb3VudENvbHMpKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHB1
dHMoIkJ5dGVjb2RlIGZvciAje2J5dGVjb2Rlc306IikKICAgICAgICAgICAgIGVuZApAQCAtODk0
LDcgKzg5OCw3IEBAIGRlZiBleGVjdXRlQ29tbWFuZCgqY29tbWFuZEFycmF5KQogICAgICAgICAg
ICAgcHV0cygiQ29tcGlsYXRpb24gI3tjb21waWxhdGlvbn06IikKICAgICAgICAgICAgIGlmICRz
aG93Q291bnRzCiAgICAgICAgICAgICAgICAgcHV0cyhjZW50ZXIoIkFjdHVhbCBDb3VudHMiLCBh
Y3R1YWxDb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJTb3VyY2UgQ291bnRzIiwgc291cmNlQ291
bnRDb2xzKSArICIgIiArIGNlbnRlcigiRGlzYXNzZW1ibHkgaW4gI3tjb21waWxhdGlvbi5lbmdp
bmV9Iiwgc2NyZWVuV2lkdGggLSAxIC0gc291cmNlQ291bnRDb2xzIC0gMSAtIGFjdHVhbENvdW50
Q29scykpCi0gICAgICAgICAgICAgICAgcHV0cygoIiAiICogYWN0dWFsQ291bnRDb2xzKSArICIg
IiArIGNlbnRlcigiQmFzZS9ERkciLCBzb3VyY2VDb3VudENvbHMpKQorICAgICAgICAgICAgICAg
IHB1dHMoKCIgIiAqIGFjdHVhbENvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJhc2UvREZHL0ZU
TC9GVExPU1IiLCBzb3VyY2VDb3VudENvbHMpKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgIHB1dHMoIkRpc2Fzc2VtYmx5IGluICN7Y29tcGlsYXRpb24uZW5naW5lfSIpCiAgICAg
ICAgICAgICBlbmQKQEAgLTkwNSwxMSArOTA5LDE1IEBAIGRlZiBleGVjdXRlQ29tbWFuZCgqY29t
bWFuZEFycmF5KQogICAgICAgICAgICAgICAgIHwgZGVzY3JpcHRpb24gfAogICAgICAgICAgICAg
ICAgICMgRklYTUU6IFdlIHNob3VsZCBoYXZlIGEgYmV0dGVyIHdheSBvZiBkZXRlY3RpbmcgdGhp
bmdzIGxpa2UgQ291bnRFeGVjdXRpb24gbm9kZXMKICAgICAgICAgICAgICAgICAjIGFuZCBzbG93
IHBhdGggZW50cmllcyBpbiB0aGUgYmFzZWxpbmUgSklULgotICAgICAgICAgICAgICAgIGlmIGRl
c2NyaXB0aW9uLmRlc2NyaXB0aW9uID1+IC9Db3VudEV4ZWN1dGlvblwoLyBhbmQgY29tcGlsYXRp
b24uZW5naW5lID09ICJERkciCisgICAgICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24uZGVzY3Jp
cHRpb24gPX4gL0NvdW50RXhlY3V0aW9uXCgvIGFuZCBpc09wdGltaXppbmcoY29tcGlsYXRpb24u
ZW5naW5lKQogICAgICAgICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2UKICAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHNob3VsZFNob3cgPSB0cnVlCiAgICAg
ICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgaWYgbm90IGRlc2NyaXB0aW9uLm9yaWdp
bi5lbXB0eT8gYW5kIG5vdCBkZXNjcmlwdGlvbi5vcmlnaW5bLTFdCisgICAgICAgICAgICAgICAg
ICAgIHAgZGVzY3JpcHRpb24ub3JpZ2luCisgICAgICAgICAgICAgICAgICAgIHAgZGVzY3JpcHRp
b24uZGVzY3JpcHRpb24KKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICBpZiBk
ZXNjcmlwdGlvbi5vcmlnaW4uZW1wdHk/IG9yIG5vdCBkZXNjcmlwdGlvbi5vcmlnaW5bLTFdLnNo
b3VsZEhhdmVDb3VudHM/IG9yIChjb21waWxhdGlvbi5lbmdpbmUgPT0gIkJhc2VsaW5lIiBhbmQg
ZGVzY3JpcHRpb24uZGVzY3JpcHRpb24gPX4gL15ccypcKFNcKS8pCiAgICAgICAgICAgICAgICAg
ICAgIGFjdHVhbENvdW50c1N0cmluZyA9ICIiCiAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUNv
dW50c1N0cmluZyA9ICIiCkluZGV4OiBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3Rz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMJKHdvcmtp
bmcgY29weSkKQEAgLTE4MCw2ICsxODAsOCBAQCAkbnVtRmFpbHVyZXMgPSAwCiAKIEVBR0VSX09Q
VElPTlMgPSBbIi0tdGhyZXNob2xkRm9ySklUQWZ0ZXJXYXJtVXA9MTAiLCAiLS10aHJlc2hvbGRG
b3JKSVRTb29uPTEwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcD0yMCIsICIt
LXRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9y
T3B0aW1pemVTb29uPTIwIiwgIi0tdGhyZXNob2xkRm9yRlRMT3B0aW1pemVBZnRlcldhcm1VcD0y
MCIsICItLXRocmVzaG9sZEZvckZUTE9wdGltaXplU29vbj0yMCJdCiAKK0ZUTF9PUFRJT05TID0g
WyItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwgIi0tZW5hYmxlRXhwZXJpbWVudGFsRlRMQ292
ZXJhZ2U9dHJ1ZSJdCisKICRydW5saXN0ID0gW10KIAogZGVmIGZyYW1ld29ya0Zyb21KU0NQYXRo
KGpzY1BhdGgpCkBAIC01MzIsMTkgKzUzNCwxOSBAQCBkZWYgcnVuTm9DSklUVmFsaWRhdGVQaGFz
ZXMKIGVuZAogCiBkZWYgcnVuRGVmYXVsdEZUTAotICAgIHJ1bigiZGVmYXVsdC1mdGwiLCAiLS11
c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIpCisgICAgcnVuKCJkZWZhdWx0LWZ0bCIsICpGVExfT1BU
SU9OUykKIGVuZAogCiBkZWYgcnVuRlRMTm9DSklUCi0gICAgcnVuKCJmdGwtbm8tY2ppdCIsICIt
LWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIp
CisgICAgcnVuKCJmdGwtbm8tY2ppdCIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAq
RlRMX09QVElPTlMpCiBlbmQKIAogZGVmIHJ1bkZUTE5vQ0pJVFZhbGlkYXRlCi0gICAgcnVuKCJm
dGwtbm8tY2ppdC12YWxpZGF0ZSIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS11
c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIpCisgICAgcnVu
KCJmdGwtbm8tY2ppdC12YWxpZGF0ZSIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAi
LS12YWxpZGF0ZUdyYXBoPXRydWUiLCAqRlRMX09QVElPTlMpCiBlbmQKIAogZGVmIHJ1bkZUTE5v
Q0pJVE9TUlZhbGlkYXRpb24KLSAgICBydW4oImZ0bC1uby1jaml0LW9zci12YWxpZGF0aW9uIiwg
Ii0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVl
IiwgIi0tdmFsaWRhdGVGVExPU1JFeGl0TGl2ZW5lc3M9dHJ1ZSIpCisgICAgcnVuKCJmdGwtbm8t
Y2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12
YWxpZGF0ZUZUTE9TUkV4aXRMaXZlbmVzcz10cnVlIiwgKkZUTF9PUFRJT05TKQogZW5kCiAKIGRl
ZiBydW5ERkdFYWdlcgpAQCAtNTU2LDE1ICs1NTgsMTUgQEAgZGVmIHJ1bkRGR0VhZ2VyTm9DSklU
VmFsaWRhdGUKIGVuZAogCiBkZWYgcnVuRlRMRWFnZXIKLSAgICBydW4oImZ0bC1lYWdlciIsICIt
LXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwgKkVBR0VSX09QVElPTlMpCisgICAgcnVuKCJmdGwt
ZWFnZXIiLCAqKEZUTF9PUFRJT05TICsgRUFHRVJfT1BUSU9OUykpCiBlbmQKIAogZGVmIHJ1bkZU
TEVhZ2VyTm9DSklUVmFsaWRhdGUKLSAgICBydW4oImZ0bC1lYWdlci1uby1jaml0IiwgIi0tdXNl
RXhwZXJpbWVudGFsRlRMPXRydWUiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0t
dmFsaWRhdGVHcmFwaD10cnVlIiwgKkVBR0VSX09QVElPTlMpCisgICAgcnVuKCJmdGwtZWFnZXIt
bm8tY2ppdCIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUdyYXBo
PXRydWUiLCAqKEZUTF9PUFRJT05TICsgRUFHRVJfT1BUSU9OUykpCiBlbmQKIAogZGVmIHJ1bkZU
TEVhZ2VyTm9DSklUT1NSVmFsaWRhdGlvbgotICAgIHJ1bigiZnRsLWVhZ2VyLW5vLWNqaXQtb3Ny
LXZhbGlkYXRpb24iLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIsICItLWVuYWJsZUNvbmN1
cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUZUTE9TUkV4aXRMaXZlbmVzcz10cnVlIiwgKkVB
R0VSX09QVElPTlMpCisgICAgcnVuKCJmdGwtZWFnZXItbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIs
ICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUZUTE9TUkV4aXRMaXZl
bmVzcz10cnVlIiwgKihGVExfT1BUSU9OUyArIEVBR0VSX09QVElPTlMpKQogZW5kCiAKIGRlZiBy
dW5BbHdheXNUcmlnZ2VyQ29weVBoYXNlCkBAIC02NDYsMTMgKzY0OCwzNCBAQCBkZWYgcnVuTGF5
b3V0VGVzdERGR0VhZ2VyTm9DSklUCiAgICAgcnVuTGF5b3V0VGVzdCgiZGZnLWVhZ2VyLW5vLWNq
aXQiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgKkVBR0VSX09QVElPTlMpCiBlbmQK
IAotZGVmIGRlZmF1bHRSdW5MYXlvdXRUZXN0CitkZWYgcnVuTGF5b3V0VGVzdERlZmF1bHRGVEwK
KyAgICBydW5MYXlvdXRUZXN0KCJmdGwiLCAiLS10ZXN0VGhlRlRMPXRydWUiLCAqRlRMX09QVElP
TlMpCitlbmQKKworZGVmIHJ1bkxheW91dFRlc3RGVExOb0NKSVQKKyAgICBydW5MYXlvdXRUZXN0
KCJmdGwtbm8tY2ppdCIsICItLXRlc3RUaGVGVEw9dHJ1ZSIsICItLWVuYWJsZUNvbmN1cnJlbnRK
SVQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCitlbmQKKworZGVmIHJ1bkxheW91dFRlc3RGVExFYWdl
ck5vQ0pJVAorICAgIHJ1bkxheW91dFRlc3QoImZ0bC1lYWdlci1uby1jaml0IiwgIi0tdGVzdFRo
ZUZUTD10cnVlIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICooRlRMX09QVElPTlMg
KyBFQUdFUl9PUFRJT05TKSkKK2VuZAorCitkZWYgbm9GVExSdW5MYXlvdXRUZXN0CiAgICAgcnVu
TGF5b3V0VGVzdERlZmF1bHQKICAgICBydW5MYXlvdXRUZXN0Tm9MTEludAogICAgIHJ1bkxheW91
dFRlc3ROb0NKSVQKICAgICBydW5MYXlvdXRUZXN0REZHRWFnZXJOb0NKSVQKIGVuZAogCitkZWYg
ZGVmYXVsdFJ1bkxheW91dFRlc3QKKyAgICBub0ZUTFJ1bkxheW91dFRlc3QKKyAgICBpZiAkZW5h
YmxlRlRMCisgICAgICAgIHJ1bkxheW91dFRlc3REZWZhdWx0RlRMCisgICAgICAgIHJ1bkxheW91
dFRlc3RGVExOb0NKSVQKKyAgICAgICAgcnVuTGF5b3V0VGVzdEZUTEVhZ2VyTm9DSklUCisgICAg
ZW5kCitlbmQKKwogZGVmIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMoZXh0cmFGaWxlcywgZGVz
dGluYXRpb24pCiAgICAgRGlyLmNoZGlyKCRvdXRwdXREaXIpIHsKICAgICAgICAgZXh0cmFGaWxl
cy5lYWNoIHsKQEAgLTcwNiw2ICs3MjksMTAgQEAgZGVmIHJ1bk1vemlsbGFUZXN0RGVmYXVsdCht
b2RlLCAqZXh0cmFGaQogICAgIHJ1bk1vemlsbGFUZXN0KG5pbCwgbW9kZSwgZXh0cmFGaWxlcykK
IGVuZAogCitkZWYgcnVuTW96aWxsYVRlc3REZWZhdWx0RlRMKG1vZGUsICpleHRyYUZpbGVzKQor
ICAgIHJ1bk1vemlsbGFUZXN0KCJmdGwiLCBtb2RlLCBleHRyYUZpbGVzLCAqRlRMX09QVElPTlMp
CitlbmQKKwogZGVmIHJ1bk1vemlsbGFUZXN0TExJbnQobW9kZSwgKmV4dHJhRmlsZXMpCiAgICAg
cnVuTW96aWxsYVRlc3QoImxsaW50IiwgbW9kZSwgZXh0cmFGaWxlcywgIi0tdXNlSklUPWZhbHNl
IikKIGVuZApAQCAtNzE4LDExICs3NDUsMTkgQEAgZGVmIHJ1bk1vemlsbGFUZXN0REZHRWFnZXJO
b0NKSVRWYWxpZGF0ZQogICAgIHJ1bk1vemlsbGFUZXN0KCJkZmctZWFnZXItbm8tY2ppdC12YWxp
ZGF0ZS1waGFzZXMiLCBtb2RlLCBleHRyYUZpbGVzLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZh
bHNlIiwgIi0tdmFsaWRhdGVCeXRlY29kZT10cnVlIiwgIi0tdmFsaWRhdGVHcmFwaEF0RWFjaFBo
YXNlPXRydWUiLCAqRUFHRVJfT1BUSU9OUykKIGVuZAogCitkZWYgcnVuTW96aWxsYVRlc3RGVExF
YWdlck5vQ0pJVFZhbGlkYXRlUGhhc2VzKG1vZGUsICpleHRyYUZpbGVzKQorICAgIHJ1bk1vemls
bGFUZXN0KCJmdGwtZWFnZXItbm8tY2ppdC12YWxpZGF0ZS1waGFzZXMiLCBtb2RlLCBleHRyYUZp
bGVzLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVCeXRlY29kZT10
cnVlIiwgIi0tdmFsaWRhdGVHcmFwaEF0RWFjaFBoYXNlPXRydWUiLCAqKEZUTF9PUFRJT05TICsg
RUFHRVJfT1BUSU9OUykpCitlbmQKKwogZGVmIGRlZmF1bHRSdW5Nb3ppbGxhVGVzdChtb2RlLCAq
ZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVzdERlZmF1bHQobW9kZSwgKmV4dHJhRmlsZXMp
CiAgICAgcnVuTW96aWxsYVRlc3RMTEludChtb2RlLCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3pp
bGxhVGVzdEJhc2VsaW5lSklUKG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0
REZHRWFnZXJOb0NKSVRWYWxpZGF0ZVBoYXNlcyhtb2RlLCAqZXh0cmFGaWxlcykKKyAgICBpZiAk
ZW5hYmxlRlRMCisgICAgICAgIHJ1bk1vemlsbGFUZXN0RGVmYXVsdEZUTChtb2RlLCAqZXh0cmFG
aWxlcykKKyAgICAgICAgcnVuTW96aWxsYVRlc3RGVExFYWdlck5vQ0pJVFZhbGlkYXRlUGhhc2Vz
KG1vZGUsICpleHRyYUZpbGVzKQorICAgIGVuZAogZW5kCiAKIGRlZiBza2lwCkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
NjI5NjEpCisrKyBMYXlvdXRUZXN0cy9qcy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw2IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEEKIAogUEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIs
ICIrIiwgMTAwKSkgaXMgcmVwZWF0ZWRTdHJpbmcoImEiLCAxMDApCiBQQVNTIGV2YWwocmVwZWF0
ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwKSkgaXMgcmVwZWF0ZWRTdHJpbmcoImEi
LCAxMDAwKQotUEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAw
MDApKSBpcyByZXBlYXRlZFN0cmluZygiYSIsIDEwMDAwKQogUEFTUyBldmFsKHJlcGVhdGVkRXhw
cmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDAwKSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBP
dXQgb2YgbWVtb3J5LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdGVwYW5vdl9jb250YWluZXItZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxNjI5NjEpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0
ZXBhbm92X2NvbnRhaW5lci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAs
MCBAQAotSlNSZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lcgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zdGVwYW5vdl9jb250YWluZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci5odG1sCShyZXZpc2lvbiAxNjI5NjEpCisrKyBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5lci5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3Rl
cGFub3ZfY29udGFpbmVyLmpzCShyZXZpc2lvbiAxNjI5NjEpCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIuanMJKHdvcmtpbmcgY29weSkK
QEAgLTEsNjQwNCArMCwwIEBACi0vL0Agc2xvdyEKLS8vQCBydW5EZWZhdWx0Ci0vL0AgcnVuRGVm
YXVsdEZUTCBpZiAkZW5hYmxlRlRMCi0KLS8vIE5vdGU6IEZvciBtYXhpbXVtLXNwZWVkIGNvZGUs
IHNlZSAiT3B0aW1pemluZyBDb2RlIiBvbiB0aGUgRW1zY3JpcHRlbiB3aWtpLCBodHRwczovL2dp
dGh1Yi5jb20va3JpcGtlbi9lbXNjcmlwdGVuL3dpa2kvT3B0aW1pemluZy1Db2RlCi0vLyBOb3Rl
OiBTb21lIEVtc2NyaXB0ZW4gc2V0dGluZ3MgbWF5IGxpbWl0IHRoZSBzcGVlZCBvZiB0aGUgZ2Vu
ZXJhdGVkIGNvZGUuCi0vLyBUaGUgTW9kdWxlIG9iamVjdDogT3VyIGludGVyZmFjZSB0byB0aGUg
b3V0c2lkZSB3b3JsZC4gV2UgaW1wb3J0Ci0vLyBhbmQgZXhwb3J0IHZhbHVlcyBvbiBpdCwgYW5k
IGRvIHRoZSB3b3JrIHRvIGdldCB0aGF0IHRocm91Z2gKLS8vIGNsb3N1cmUgY29tcGlsZXIgaWYg
bmVjZXNzYXJ5LiBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIE1vZHVsZSBjYW4gYmUgdXNlZDoKLS8v
IDEuIE5vdCBkZWZpbmVkLiBXZSBjcmVhdGUgaXQgaGVyZQotLy8gMi4gQSBmdW5jdGlvbiBwYXJh
bWV0ZXIsIGZ1bmN0aW9uKE1vZHVsZSkgeyAuLmdlbmVyYXRlZCBjb2RlLi4gfQotLy8gMy4gcHJl
LXJ1biBhcHBlbmRlZCBpdCwgdmFyIE1vZHVsZSA9IHt9OyAuLmdlbmVyYXRlZCBjb2RlLi4KLS8v
IDQuIEV4dGVybmFsIHNjcmlwdCB0YWcgZGVmaW5lcyB2YXIgTW9kdWxlLgotLy8gV2UgbmVlZCB0
byBkbyBhbiBldmFsIGluIG9yZGVyIHRvIGhhbmRsZSB0aGUgY2xvc3VyZSBjb21waWxlcgotLy8g
Y2FzZSwgd2hlcmUgdGhpcyBjb2RlIGhlcmUgaXMgbWluaWZpZWQgYnV0IE1vZHVsZSB3YXMgZGVm
aW5lZAotLy8gZWxzZXdoZXJlIChlLmcuIGNhc2UgNCBhYm92ZSkuIFdlIGFsc28gbmVlZCB0byBj
aGVjayBpZiBNb2R1bGUKLS8vIGFscmVhZHkgZXhpc3RzIChlLmcuIGNhc2UgMyBhYm92ZSkuCi0v
LyBOb3RlIHRoYXQgaWYgeW91IHdhbnQgdG8gcnVuIGNsb3N1cmUsIGFuZCBhbHNvIHRvIHVzZSBN
b2R1bGUKLS8vIGFmdGVyIHRoZSBnZW5lcmF0ZWQgY29kZSwgeW91IHdpbGwgbmVlZCB0byBkZWZp
bmUgICB2YXIgTW9kdWxlID0ge307Ci0vLyBiZWZvcmUgdGhlIGNvZGUuIFRoZW4gdGhhdCBvYmpl
Y3Qgd2lsbCBiZSB1c2VkIGluIHRoZSBjb2RlLCBhbmQgeW91Ci0vLyBjYW4gY29udGludWUgdG8g
dXNlIE1vZHVsZSBhZnRlcndhcmRzIGFzIHdlbGwuCi12YXIgTW9kdWxlOwotaWYgKCFNb2R1bGUp
IE1vZHVsZSA9IGV2YWwoJyhmdW5jdGlvbigpIHsgdHJ5IHsgcmV0dXJuIE1vZHVsZSB8fCB7fSB9
IGNhdGNoKGUpIHsgcmV0dXJuIHt9IH0gfSkoKScpOwotLy8gU29tZXRpbWVzIGFuIGV4aXN0aW5n
IE1vZHVsZSBvYmplY3QgZXhpc3RzIHdpdGggcHJvcGVydGllcwotLy8gbWVhbnQgdG8gb3Zlcndy
aXRlIHRoZSBkZWZhdWx0IG1vZHVsZSBmdW5jdGlvbmFsaXR5LiBIZXJlCi0vLyB3ZSBjb2xsZWN0
IHRob3NlIHByb3BlcnRpZXMgYW5kIHJlYXBwbHkgX2FmdGVyXyB3ZSBjb25maWd1cmUKLS8vIHRo
ZSBjdXJyZW50IGVudmlyb25tZW50J3MgZGVmYXVsdHMgdG8gYXZvaWQgaGF2aW5nIHRvIGJlIHNv
Ci0vLyBkZWZlbnNpdmUgZHVyaW5nIGluaXRpYWxpemF0aW9uLgotdmFyIG1vZHVsZU92ZXJyaWRl
cyA9IHt9OwotZm9yICh2YXIga2V5IGluIE1vZHVsZSkgewotICBpZiAoTW9kdWxlLmhhc093blBy
b3BlcnR5KGtleSkpIHsKLSAgICBtb2R1bGVPdmVycmlkZXNba2V5XSA9IE1vZHVsZVtrZXldOwot
ICB9Ci19Ci0vLyBUaGUgZW52aXJvbm1lbnQgc2V0dXAgY29kZSBiZWxvdyBpcyBjdXN0b21pemVk
IHRvIHVzZSBNb2R1bGUuCi0vLyAqKiogRW52aXJvbm1lbnQgc2V0dXAgY29kZSAqKioKLXZhciBF
TlZJUk9OTUVOVF9JU19OT0RFID0gdHlwZW9mIHByb2Nlc3MgPT09ICdvYmplY3QnICYmIHR5cGVv
ZiByZXF1aXJlID09PSAnZnVuY3Rpb24nOwotdmFyIEVOVklST05NRU5UX0lTX1dFQiA9IHR5cGVv
ZiB3aW5kb3cgPT09ICdvYmplY3QnOwotdmFyIEVOVklST05NRU5UX0lTX1dPUktFUiA9IHR5cGVv
ZiBpbXBvcnRTY3JpcHRzID09PSAnZnVuY3Rpb24nOwotdmFyIEVOVklST05NRU5UX0lTX1NIRUxM
ID0gIUVOVklST05NRU5UX0lTX1dFQiAmJiAhRU5WSVJPTk1FTlRfSVNfTk9ERSAmJiAhRU5WSVJP
Tk1FTlRfSVNfV09SS0VSOwotaWYgKEVOVklST05NRU5UX0lTX05PREUpIHsKLSAgLy8gRXhwb3Nl
IGZ1bmN0aW9uYWxpdHkgaW4gdGhlIHNhbWUgc2ltcGxlIHdheSB0aGF0IHRoZSBzaGVsbHMgd29y
awotICAvLyBOb3RlIHRoYXQgd2UgcG9sbHV0ZSB0aGUgZ2xvYmFsIG5hbWVzcGFjZSBoZXJlLCBv
dGhlcndpc2Ugd2UgYnJlYWsgaW4gbm9kZQotICBNb2R1bGVbJ3ByaW50J10gPSBmdW5jdGlvbih4
KSB7Ci0gICAgcHJvY2Vzc1snc3Rkb3V0J10ud3JpdGUoeCArICdcbicpOwotICB9OwotICBNb2R1
bGVbJ3ByaW50RXJyJ10gPSBmdW5jdGlvbih4KSB7Ci0gICAgcHJvY2Vzc1snc3RkZXJyJ10ud3Jp
dGUoeCArICdcbicpOwotICB9OwotICB2YXIgbm9kZUZTID0gcmVxdWlyZSgnZnMnKTsKLSAgdmFy
IG5vZGVQYXRoID0gcmVxdWlyZSgncGF0aCcpOwotICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9u
KGZpbGVuYW1lLCBiaW5hcnkpIHsKLSAgICBmaWxlbmFtZSA9IG5vZGVQYXRoWydub3JtYWxpemUn
XShmaWxlbmFtZSk7Ci0gICAgdmFyIHJldCA9IG5vZGVGU1sncmVhZEZpbGVTeW5jJ10oZmlsZW5h
bWUpOwotICAgIC8vIFRoZSBwYXRoIGlzIGFic29sdXRlIGlmIHRoZSBub3JtYWxpemVkIHZlcnNp
b24gaXMgdGhlIHNhbWUgYXMgdGhlIHJlc29sdmVkLgotICAgIGlmICghcmV0ICYmIGZpbGVuYW1l
ICE9IG5vZGVQYXRoWydyZXNvbHZlJ10oZmlsZW5hbWUpKSB7Ci0gICAgICBmaWxlbmFtZSA9IHBh
dGguam9pbihfX2Rpcm5hbWUsICcuLicsICdzcmMnLCBmaWxlbmFtZSk7Ci0gICAgICByZXQgPSBu
b2RlRlNbJ3JlYWRGaWxlU3luYyddKGZpbGVuYW1lKTsKLSAgICB9Ci0gICAgaWYgKHJldCAmJiAh
YmluYXJ5KSByZXQgPSByZXQudG9TdHJpbmcoKTsKLSAgICByZXR1cm4gcmV0OwotICB9OwotICBN
b2R1bGVbJ3JlYWRCaW5hcnknXSA9IGZ1bmN0aW9uKGZpbGVuYW1lKSB7IHJldHVybiBNb2R1bGVb
J3JlYWQnXShmaWxlbmFtZSwgdHJ1ZSkgfTsKLSAgTW9kdWxlWydsb2FkJ10gPSBmdW5jdGlvbihm
KSB7Ci0gICAgZ2xvYmFsRXZhbChyZWFkKGYpKTsKLSAgfTsKLSAgTW9kdWxlWydhcmd1bWVudHMn
XSA9IHByb2Nlc3NbJ2FyZ3YnXS5zbGljZSgyKTsKLSAgbW9kdWxlLmV4cG9ydHMgPSBNb2R1bGU7
Ci19Ci1lbHNlIGlmIChFTlZJUk9OTUVOVF9JU19TSEVMTCkgewotICBNb2R1bGVbJ3ByaW50J10g
PSBwcmludDsKLSAgaWYgKHR5cGVvZiBwcmludEVyciAhPSAndW5kZWZpbmVkJykgTW9kdWxlWydw
cmludEVyciddID0gcHJpbnRFcnI7IC8vIG5vdCBwcmVzZW50IGluIHY4IG9yIG9sZGVyIHNtCi0g
IGlmICh0eXBlb2YgcmVhZCAhPSAndW5kZWZpbmVkJykgewotICAgIE1vZHVsZVsncmVhZCddID0g
cmVhZDsKLSAgfSBlbHNlIHsKLSAgICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKCkgeyB0aHJv
dyAnbm8gcmVhZCgpIGF2YWlsYWJsZSAoanNjPyknIH07Ci0gIH0KLSAgTW9kdWxlWydyZWFkQmlu
YXJ5J10gPSBmdW5jdGlvbihmKSB7Ci0gICAgcmV0dXJuIHJlYWQoZiwgJ2JpbmFyeScpOwotICB9
OwotICBpZiAodHlwZW9mIHNjcmlwdEFyZ3MgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBNb2R1bGVb
J2FyZ3VtZW50cyddID0gc2NyaXB0QXJnczsKLSAgfSBlbHNlIGlmICh0eXBlb2YgYXJndW1lbnRz
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgTW9kdWxlWydhcmd1bWVudHMnXSA9IGFyZ3VtZW50czsK
LSAgfQotICB0aGlzWydNb2R1bGUnXSA9IE1vZHVsZTsKLX0KLWVsc2UgaWYgKEVOVklST05NRU5U
X0lTX1dFQiB8fCBFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHsKLSAgTW9kdWxlWydyZWFkJ10gPSBm
dW5jdGlvbih1cmwpIHsKLSAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAg
eGhyLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2UpOwotICAgIHhoci5zZW5kKG51bGwpOwotICAgIHJl
dHVybiB4aHIucmVzcG9uc2VUZXh0OwotICB9OwotICBpZiAodHlwZW9mIGFyZ3VtZW50cyAhPSAn
dW5kZWZpbmVkJykgewotICAgIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBhcmd1bWVudHM7Ci0gIH0K
LSAgaWYgKEVOVklST05NRU5UX0lTX1dFQikgewotICAgIE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0
aW9uKHgpIHsKLSAgICAgIGNvbnNvbGUubG9nKHgpOwotICAgIH07Ci0gICAgTW9kdWxlWydwcmlu
dEVyciddID0gZnVuY3Rpb24oeCkgewotICAgICAgY29uc29sZS5sb2coeCk7Ci0gICAgfTsKLSAg
ICB0aGlzWydNb2R1bGUnXSA9IE1vZHVsZTsKLSAgfSBlbHNlIGlmIChFTlZJUk9OTUVOVF9JU19X
T1JLRVIpIHsKLSAgICAvLyBXZSBjYW4gZG8gdmVyeSBsaXR0bGUgaGVyZS4uLgotICAgIHZhciBU
UllfVVNFX0RVTVAgPSBmYWxzZTsKLSAgICBNb2R1bGVbJ3ByaW50J10gPSAoVFJZX1VTRV9EVU1Q
ICYmICh0eXBlb2YoZHVtcCkgIT09ICJ1bmRlZmluZWQiKSA/IChmdW5jdGlvbih4KSB7Ci0gICAg
ICBkdW1wKHgpOwotICAgIH0pIDogKGZ1bmN0aW9uKHgpIHsKLSAgICAgIC8vIHNlbGYucG9zdE1l
c3NhZ2UoeCk7IC8vIGVuYWJsZSB0aGlzIGlmIHlvdSB3YW50IHN0ZG91dCB0byBiZSBzZW50IGFz
IG1lc3NhZ2VzCi0gICAgfSkpOwotICAgIE1vZHVsZVsnbG9hZCddID0gaW1wb3J0U2NyaXB0czsK
LSAgfQotfQotZWxzZSB7Ci0gIC8vIFVucmVhY2hhYmxlIGJlY2F1c2UgU0hFTEwgaXMgZGVwZW5k
YW50IG9uIHRoZSBvdGhlcnMKLSAgdGhyb3cgJ1Vua25vd24gcnVudGltZSBlbnZpcm9ubWVudC4g
V2hlcmUgYXJlIHdlPyc7Ci19Ci1mdW5jdGlvbiBnbG9iYWxFdmFsKHgpIHsKLSAgZXZhbC5jYWxs
KG51bGwsIHgpOwotfQotaWYgKCFNb2R1bGVbJ2xvYWQnXSA9PSAndW5kZWZpbmVkJyAmJiBNb2R1
bGVbJ3JlYWQnXSkgewotICBNb2R1bGVbJ2xvYWQnXSA9IGZ1bmN0aW9uKGYpIHsKLSAgICBnbG9i
YWxFdmFsKE1vZHVsZVsncmVhZCddKGYpKTsKLSAgfTsKLX0KLWlmICghTW9kdWxlWydwcmludCdd
KSB7Ci0gIE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9uKCl7fTsKLX0KLWlmICghTW9kdWxlWydw
cmludEVyciddKSB7Ci0gIE1vZHVsZVsncHJpbnRFcnInXSA9IE1vZHVsZVsncHJpbnQnXTsKLX0K
LWlmICghTW9kdWxlWydhcmd1bWVudHMnXSkgewotICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gW107
Ci19Ci0vLyAqKiogRW52aXJvbm1lbnQgc2V0dXAgY29kZSAqKioKLS8vIENsb3N1cmUgaGVscGVy
cwotTW9kdWxlLnByaW50ID0gTW9kdWxlWydwcmludCddOwotTW9kdWxlLnByaW50RXJyID0gTW9k
dWxlWydwcmludEVyciddOwotLy8gQ2FsbGJhY2tzCi1Nb2R1bGVbJ3ByZVJ1biddID0gW107Ci1N
b2R1bGVbJ3Bvc3RSdW4nXSA9IFtdOwotLy8gTWVyZ2UgYmFjayBpbiB0aGUgb3ZlcnJpZGVzCi1m
b3IgKHZhciBrZXkgaW4gbW9kdWxlT3ZlcnJpZGVzKSB7Ci0gIGlmIChtb2R1bGVPdmVycmlkZXMu
aGFzT3duUHJvcGVydHkoa2V5KSkgewotICAgIE1vZHVsZVtrZXldID0gbW9kdWxlT3ZlcnJpZGVz
W2tleV07Ci0gIH0KLX0KLS8vID09PSBBdXRvLWdlbmVyYXRlZCBwcmVhbWJsZSBsaWJyYXJ5IHN0
dWZmID09PQotLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyBS
dW50aW1lIGNvZGUgc2hhcmVkIHdpdGggY29tcGlsZXIKLS8vPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotdmFyIFJ1bnRpbWUgPSB7Ci0gIHN0YWNrU2F2ZTogZnVuY3Rp
b24gKCkgewotICAgIHJldHVybiBTVEFDS1RPUDsKLSAgfSwKLSAgc3RhY2tSZXN0b3JlOiBmdW5j
dGlvbiAoc3RhY2tUb3ApIHsKLSAgICBTVEFDS1RPUCA9IHN0YWNrVG9wOwotICB9LAotICBmb3Jj
ZUFsaWduOiBmdW5jdGlvbiAodGFyZ2V0LCBxdWFudHVtKSB7Ci0gICAgcXVhbnR1bSA9IHF1YW50
dW0gfHwgNDsKLSAgICBpZiAocXVhbnR1bSA9PSAxKSByZXR1cm4gdGFyZ2V0OwotICAgIGlmIChp
c051bWJlcih0YXJnZXQpICYmIGlzTnVtYmVyKHF1YW50dW0pKSB7Ci0gICAgICByZXR1cm4gTWF0
aC5jZWlsKHRhcmdldC9xdWFudHVtKSpxdWFudHVtOwotICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIo
cXVhbnR1bSkgJiYgaXNQb3dlck9mVHdvKHF1YW50dW0pKSB7Ci0gICAgICB2YXIgbG9nZyA9IGxv
ZzIocXVhbnR1bSk7Ci0gICAgICByZXR1cm4gJygoKCgnICt0YXJnZXQgKyAnKSsnICsgKHF1YW50
dW0tMSkgKyAnKT4+JyArIGxvZ2cgKyAnKTw8JyArIGxvZ2cgKyAnKSc7Ci0gICAgfQotICAgIHJl
dHVybiAnTWF0aC5jZWlsKCgnICsgdGFyZ2V0ICsgJykvJyArIHF1YW50dW0gKyAnKSonICsgcXVh
bnR1bTsKLSAgfSwKLSAgaXNOdW1iZXJUeXBlOiBmdW5jdGlvbiAodHlwZSkgewotICAgIHJldHVy
biB0eXBlIGluIFJ1bnRpbWUuSU5UX1RZUEVTIHx8IHR5cGUgaW4gUnVudGltZS5GTE9BVF9UWVBF
UzsKLSAgfSwKLSAgaXNQb2ludGVyVHlwZTogZnVuY3Rpb24gaXNQb2ludGVyVHlwZSh0eXBlKSB7
Ci0gIHJldHVybiB0eXBlW3R5cGUubGVuZ3RoLTFdID09ICcqJzsKLX0sCi0gIGlzU3RydWN0VHlw
ZTogZnVuY3Rpb24gaXNTdHJ1Y3RUeXBlKHR5cGUpIHsKLSAgaWYgKGlzUG9pbnRlclR5cGUodHlw
ZSkpIHJldHVybiBmYWxzZTsKLSAgaWYgKGlzQXJyYXlUeXBlKHR5cGUpKSByZXR1cm4gdHJ1ZTsK
LSAgaWYgKC88P3sgP1tefV0qID99Pj8vLnRlc3QodHlwZSkpIHJldHVybiB0cnVlOyAvLyB7IGkz
MiwgaTggfSBldGMuIC0gYW5vbnltb3VzIHN0cnVjdCB0eXBlcwotICAvLyBTZWUgY29tbWVudCBp
biBpc1N0cnVjdFBvaW50ZXJUeXBlKCkKLSAgcmV0dXJuIHR5cGVbMF0gPT0gJyUnOwotfSwKLSAg
SU5UX1RZUEVTOiB7ImkxIjowLCJpOCI6MCwiaTE2IjowLCJpMzIiOjAsImk2NCI6MH0sCi0gIEZM
T0FUX1RZUEVTOiB7ImZsb2F0IjowLCJkb3VibGUiOjB9LAotICBvcjY0OiBmdW5jdGlvbiAoeCwg
eSkgewotICAgIHZhciBsID0gKHggfCAwKSB8ICh5IHwgMCk7Ci0gICAgdmFyIGggPSAoTWF0aC5y
b3VuZCh4IC8gNDI5NDk2NzI5NikgfCBNYXRoLnJvdW5kKHkgLyA0Mjk0OTY3Mjk2KSkgKiA0Mjk0
OTY3Mjk2OwotICAgIHJldHVybiBsICsgaDsKLSAgfSwKLSAgYW5kNjQ6IGZ1bmN0aW9uICh4LCB5
KSB7Ci0gICAgdmFyIGwgPSAoeCB8IDApICYgKHkgfCAwKTsKLSAgICB2YXIgaCA9IChNYXRoLnJv
dW5kKHggLyA0Mjk0OTY3Mjk2KSAmIE1hdGgucm91bmQoeSAvIDQyOTQ5NjcyOTYpKSAqIDQyOTQ5
NjcyOTY7Ci0gICAgcmV0dXJuIGwgKyBoOwotICB9LAotICB4b3I2NDogZnVuY3Rpb24gKHgsIHkp
IHsKLSAgICB2YXIgbCA9ICh4IHwgMCkgXiAoeSB8IDApOwotICAgIHZhciBoID0gKE1hdGgucm91
bmQoeCAvIDQyOTQ5NjcyOTYpIF4gTWF0aC5yb3VuZCh5IC8gNDI5NDk2NzI5NikpICogNDI5NDk2
NzI5NjsKLSAgICByZXR1cm4gbCArIGg7Ci0gIH0sCi0gIGdldE5hdGl2ZVR5cGVTaXplOiBmdW5j
dGlvbiAodHlwZSwgcXVhbnR1bVNpemUpIHsKLSAgICBpZiAoUnVudGltZS5RVUFOVFVNX1NJWkUg
PT0gMSkgcmV0dXJuIDE7Ci0gICAgdmFyIHNpemUgPSB7Ci0gICAgICAnJWkxJzogMSwKLSAgICAg
ICclaTgnOiAxLAotICAgICAgJyVpMTYnOiAyLAotICAgICAgJyVpMzInOiA0LAotICAgICAgJyVp
NjQnOiA4LAotICAgICAgIiVmbG9hdCI6IDQsCi0gICAgICAiJWRvdWJsZSI6IDgKLSAgICB9Wycl
Jyt0eXBlXTsgLy8gYWRkICclJyBzaW5jZSBmbG9hdCBhbmQgZG91YmxlIGNvbmZ1c2UgQ2xvc3Vy
ZSBjb21waWxlciBhcyBrZXlzLCBhbmQgYWxzbyBzcGlkZXJtb25rZXkgYXMgYSBjb21waWxlciB3
aWxsIHJlbW92ZSAncyBmcm9tICdfaTgnIGV0YwotICAgIGlmICghc2l6ZSkgewotICAgICAgaWYg
KHR5cGUuY2hhckF0KHR5cGUubGVuZ3RoLTEpID09ICcqJykgewotICAgICAgICBzaXplID0gUnVu
dGltZS5RVUFOVFVNX1NJWkU7IC8vIEEgcG9pbnRlcgotICAgICAgfSBlbHNlIGlmICh0eXBlWzBd
ID09ICdpJykgewotICAgICAgICB2YXIgYml0cyA9IHBhcnNlSW50KHR5cGUuc3Vic3RyKDEpKTsK
LSAgICAgICAgYXNzZXJ0KGJpdHMgJSA4ID09IDApOwotICAgICAgICBzaXplID0gYml0cy84Owot
ICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gc2l6ZTsKLSAgfSwKLSAgZ2V0TmF0aXZlRmllbGRT
aXplOiBmdW5jdGlvbiAodHlwZSkgewotICAgIHJldHVybiBNYXRoLm1heChSdW50aW1lLmdldE5h
dGl2ZVR5cGVTaXplKHR5cGUpLCBSdW50aW1lLlFVQU5UVU1fU0laRSk7Ci0gIH0sCi0gIGRlZHVw
OiBmdW5jdGlvbiBkZWR1cChpdGVtcywgaWRlbnQpIHsKLSAgdmFyIHNlZW4gPSB7fTsKLSAgaWYg
KGlkZW50KSB7Ci0gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7Ci0gICAg
ICBpZiAoc2VlbltpdGVtW2lkZW50XV0pIHJldHVybiBmYWxzZTsKLSAgICAgIHNlZW5baXRlbVtp
ZGVudF1dID0gdHJ1ZTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0pOwotICB9IGVsc2Ugewot
ICAgIHJldHVybiBpdGVtcy5maWx0ZXIoZnVuY3Rpb24oaXRlbSkgewotICAgICAgaWYgKHNlZW5b
aXRlbV0pIHJldHVybiBmYWxzZTsKLSAgICAgIHNlZW5baXRlbV0gPSB0cnVlOwotICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfSk7Ci0gIH0KLX0sCi0gIHNldDogZnVuY3Rpb24gc2V0KCkgewotICB2
YXIgYXJncyA9IHR5cGVvZiBhcmd1bWVudHNbMF0gPT09ICdvYmplY3QnID8gYXJndW1lbnRzWzBd
IDogYXJndW1lbnRzOwotICB2YXIgcmV0ID0ge307Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJn
cy5sZW5ndGg7IGkrKykgewotICAgIHJldFthcmdzW2ldXSA9IDA7Ci0gIH0KLSAgcmV0dXJuIHJl
dDsKLX0sCi0gIFNUQUNLX0FMSUdOOiA4LAotICBnZXRBbGlnblNpemU6IGZ1bmN0aW9uICh0eXBl
LCBzaXplLCB2YXJhcmcpIHsKLSAgICAvLyB3ZSBhbGlnbiBpNjRzIGFuZCBkb3VibGVzIG9uIDY0
LWJpdCBib3VuZGFyaWVzLCB1bmxpa2UgeDg2Ci0gICAgaWYgKHR5cGUgPT0gJ2k2NCcgfHwgdHlw
ZSA9PSAnZG91YmxlJyB8fCB2YXJhcmcpIHJldHVybiA4OwotICAgIGlmICghdHlwZSkgcmV0dXJu
IE1hdGgubWluKHNpemUsIDgpOyAvLyBhbGlnbiBzdHJ1Y3R1cmVzIGludGVybmFsbHkgdG8gNjQg
Yml0cwotICAgIHJldHVybiBNYXRoLm1pbihzaXplIHx8ICh0eXBlID8gUnVudGltZS5nZXROYXRp
dmVGaWVsZFNpemUodHlwZSkgOiAwKSwgUnVudGltZS5RVUFOVFVNX1NJWkUpOwotICB9LAotICBj
YWxjdWxhdGVTdHJ1Y3RBbGlnbm1lbnQ6IGZ1bmN0aW9uIGNhbGN1bGF0ZVN0cnVjdEFsaWdubWVu
dCh0eXBlKSB7Ci0gICAgdHlwZS5mbGF0U2l6ZSA9IDA7Ci0gICAgdHlwZS5hbGlnblNpemUgPSAw
OwotICAgIHZhciBkaWZmcyA9IFtdOwotICAgIHZhciBwcmV2ID0gLTE7Ci0gICAgdmFyIGluZGV4
ID0gMDsKLSAgICB0eXBlLmZsYXRJbmRleGVzID0gdHlwZS5maWVsZHMubWFwKGZ1bmN0aW9uKGZp
ZWxkKSB7Ci0gICAgICBpbmRleCsrOwotICAgICAgdmFyIHNpemUsIGFsaWduU2l6ZTsKLSAgICAg
IGlmIChSdW50aW1lLmlzTnVtYmVyVHlwZShmaWVsZCkgfHwgUnVudGltZS5pc1BvaW50ZXJUeXBl
KGZpZWxkKSkgewotICAgICAgICBzaXplID0gUnVudGltZS5nZXROYXRpdmVUeXBlU2l6ZShmaWVs
ZCk7IC8vIHBhY2sgY2hhcjsgY2hhcjsgaW4gc3RydWN0cywgYWxzbyBjaGFyW1hdcy4KLSAgICAg
ICAgYWxpZ25TaXplID0gUnVudGltZS5nZXRBbGlnblNpemUoZmllbGQsIHNpemUpOwotICAgICAg
fSBlbHNlIGlmIChSdW50aW1lLmlzU3RydWN0VHlwZShmaWVsZCkpIHsKLSAgICAgICAgaWYgKGZp
ZWxkWzFdID09PSAnMCcpIHsKLSAgICAgICAgICAvLyB0aGlzIGlzIFswIHggc29tZXRoaW5nXS4g
V2hlbiBpbnNpZGUgYW5vdGhlciBzdHJ1Y3R1cmUgbGlrZSBoZXJlLCBpdCBtdXN0IGJlIGF0IHRo
ZSBlbmQsCi0gICAgICAgICAgLy8gYW5kIGl0IGFkZHMgbm8gc2l6ZQotICAgICAgICAgIC8vIFhY
WCB0aGlzIGhhcHBlbnMgaW4gamF2YS1uYm9keSBmb3IgZXhhbXBsZS4uLiBhc3NlcnQoaW5kZXgg
PT09IHR5cGUuZmllbGRzLmxlbmd0aCwgJ3plcm8tbGVuZ3RoIGluIHRoZSBtaWRkbGUhJyk7Ci0g
ICAgICAgICAgc2l6ZSA9IDA7Ci0gICAgICAgICAgYWxpZ25TaXplID0gdHlwZS5hbGlnblNpemUg
fHwgUVVBTlRVTV9TSVpFOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHNpemUgPSBUeXBl
cy50eXBlc1tmaWVsZF0uZmxhdFNpemU7Ci0gICAgICAgICAgYWxpZ25TaXplID0gUnVudGltZS5n
ZXRBbGlnblNpemUobnVsbCwgVHlwZXMudHlwZXNbZmllbGRdLmFsaWduU2l6ZSk7Ci0gICAgICAg
IH0KLSAgICAgIH0gZWxzZSBpZiAoZmllbGRbMF0gPT0gJ2InKSB7Ci0gICAgICAgIC8vIGJOLCBs
YXJnZSBudW1iZXIgZmllbGQsIGxpa2UgYSBbTiB4IGk4XQotICAgICAgICBzaXplID0gZmllbGQu
c3Vic3RyKDEpfDA7Ci0gICAgICAgIGFsaWduU2l6ZSA9IDE7Ci0gICAgICB9IGVsc2UgewotICAg
ICAgICB0aHJvdyAnVW5jbGVhciB0eXBlIGluIHN0cnVjdDogJyArIGZpZWxkICsgJywgaW4gJyAr
IHR5cGUubmFtZV8gKyAnIDo6ICcgKyBkdW1wKFR5cGVzLnR5cGVzW3R5cGUubmFtZV9dKTsKLSAg
ICAgIH0KLSAgICAgIGlmICh0eXBlLnBhY2tlZCkgYWxpZ25TaXplID0gMTsKLSAgICAgIHR5cGUu
YWxpZ25TaXplID0gTWF0aC5tYXgodHlwZS5hbGlnblNpemUsIGFsaWduU2l6ZSk7Ci0gICAgICB2
YXIgY3VyciA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkodHlwZS5mbGF0U2l6ZSwgYWxpZ25TaXplKTsg
Ly8gaWYgbmVjZXNzYXJ5LCBwbGFjZSB0aGlzIG9uIGFsaWduZWQgbWVtb3J5Ci0gICAgICB0eXBl
LmZsYXRTaXplID0gY3VyciArIHNpemU7Ci0gICAgICBpZiAocHJldiA+PSAwKSB7Ci0gICAgICAg
IGRpZmZzLnB1c2goY3Vyci1wcmV2KTsKLSAgICAgIH0KLSAgICAgIHByZXYgPSBjdXJyOwotICAg
ICAgcmV0dXJuIGN1cnI7Ci0gICAgfSk7Ci0gICAgdHlwZS5mbGF0U2l6ZSA9IFJ1bnRpbWUuYWxp
Z25NZW1vcnkodHlwZS5mbGF0U2l6ZSwgdHlwZS5hbGlnblNpemUpOwotICAgIGlmIChkaWZmcy5s
ZW5ndGggPT0gMCkgewotICAgICAgdHlwZS5mbGF0RmFjdG9yID0gdHlwZS5mbGF0U2l6ZTsKLSAg
ICB9IGVsc2UgaWYgKFJ1bnRpbWUuZGVkdXAoZGlmZnMpLmxlbmd0aCA9PSAxKSB7Ci0gICAgICB0
eXBlLmZsYXRGYWN0b3IgPSBkaWZmc1swXTsKLSAgICB9Ci0gICAgdHlwZS5uZWVkc0ZsYXR0ZW5p
bmcgPSAodHlwZS5mbGF0RmFjdG9yICE9IDEpOwotICAgIHJldHVybiB0eXBlLmZsYXRJbmRleGVz
OwotICB9LAotICBnZW5lcmF0ZVN0cnVjdEluZm86IGZ1bmN0aW9uIChzdHJ1Y3QsIHR5cGVOYW1l
LCBvZmZzZXQpIHsKLSAgICB2YXIgdHlwZSwgYWxpZ25tZW50OwotICAgIGlmICh0eXBlTmFtZSkg
ewotICAgICAgb2Zmc2V0ID0gb2Zmc2V0IHx8IDA7Ci0gICAgICB0eXBlID0gKHR5cGVvZiBUeXBl
cyA9PT0gJ3VuZGVmaW5lZCcgPyBSdW50aW1lLnR5cGVJbmZvIDogVHlwZXMudHlwZXMpW3R5cGVO
YW1lXTsKLSAgICAgIGlmICghdHlwZSkgcmV0dXJuIG51bGw7Ci0gICAgICBpZiAodHlwZS5maWVs
ZHMubGVuZ3RoICE9IHN0cnVjdC5sZW5ndGgpIHsKLSAgICAgICAgcHJpbnRFcnIoJ051bWJlciBv
ZiBuYW1lZCBmaWVsZHMgbXVzdCBtYXRjaCB0aGUgdHlwZSBmb3IgJyArIHR5cGVOYW1lICsgJzog
cG9zc2libHkgZHVwbGljYXRlIHN0cnVjdCBuYW1lcy4gQ2Fubm90IHJldHVybiBzdHJ1Y3RJbmZv
Jyk7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgICAgfQotICAgICAgYWxpZ25tZW50ID0gdHlw
ZS5mbGF0SW5kZXhlczsKLSAgICB9IGVsc2UgewotICAgICAgdmFyIHR5cGUgPSB7IGZpZWxkczog
c3RydWN0Lm1hcChmdW5jdGlvbihpdGVtKSB7IHJldHVybiBpdGVtWzBdIH0pIH07Ci0gICAgICBh
bGlnbm1lbnQgPSBSdW50aW1lLmNhbGN1bGF0ZVN0cnVjdEFsaWdubWVudCh0eXBlKTsKLSAgICB9
Ci0gICAgdmFyIHJldCA9IHsKLSAgICAgIF9fc2l6ZV9fOiB0eXBlLmZsYXRTaXplCi0gICAgfTsK
LSAgICBpZiAodHlwZU5hbWUpIHsKLSAgICAgIHN0cnVjdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0s
IGkpIHsKLSAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykgewotICAgICAgICAg
IHJldFtpdGVtXSA9IGFsaWdubWVudFtpXSArIG9mZnNldDsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAvLyBlbWJlZGRlZCBzdHJ1Y3QKLSAgICAgICAgICB2YXIga2V5OwotICAgICAgICAg
IGZvciAodmFyIGsgaW4gaXRlbSkga2V5ID0gazsKLSAgICAgICAgICByZXRba2V5XSA9IFJ1bnRp
bWUuZ2VuZXJhdGVTdHJ1Y3RJbmZvKGl0ZW1ba2V5XSwgdHlwZS5maWVsZHNbaV0sIGFsaWdubWVu
dFtpXSk7Ci0gICAgICAgIH0KLSAgICAgIH0pOwotICAgIH0gZWxzZSB7Ci0gICAgICBzdHJ1Y3Qu
Zm9yRWFjaChmdW5jdGlvbihpdGVtLCBpKSB7Ci0gICAgICAgIHJldFtpdGVtWzFdXSA9IGFsaWdu
bWVudFtpXTsKLSAgICAgIH0pOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotICB9LAotICBkeW5D
YWxsOiBmdW5jdGlvbiAoc2lnLCBwdHIsIGFyZ3MpIHsKLSAgICBpZiAoYXJncyAmJiBhcmdzLmxl
bmd0aCkgewotICAgICAgaWYgKCFhcmdzLnNwbGljZSkgYXJncyA9IEFycmF5LnByb3RvdHlwZS5z
bGljZS5jYWxsKGFyZ3MpOwotICAgICAgYXJncy5zcGxpY2UoMCwgMCwgcHRyKTsKLSAgICAgIHJl
dHVybiBNb2R1bGVbJ2R5bkNhbGxfJyArIHNpZ10uYXBwbHkobnVsbCwgYXJncyk7Ci0gICAgfSBl
bHNlIHsKLSAgICAgIHJldHVybiBNb2R1bGVbJ2R5bkNhbGxfJyArIHNpZ10uY2FsbChudWxsLCBw
dHIpOwotICAgIH0KLSAgfSwKLSAgZnVuY3Rpb25Qb2ludGVyczogW10sCi0gIGFkZEZ1bmN0aW9u
OiBmdW5jdGlvbiAoZnVuYykgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgUnVudGltZS5mdW5j
dGlvblBvaW50ZXJzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICBpZiAoIVJ1bnRpbWUuZnVuY3Rpb25Q
b2ludGVyc1tpXSkgewotICAgICAgICBSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnNbaV0gPSBmdW5j
OwotICAgICAgICByZXR1cm4gMiArIDIqaTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGhyb3cgJ0Zp
bmlzaGVkIHVwIGFsbCByZXNlcnZlZCBmdW5jdGlvbiBwb2ludGVycy4gVXNlIGEgaGlnaGVyIHZh
bHVlIGZvciBSRVNFUlZFRF9GVU5DVElPTl9QT0lOVEVSUy4nOwotICB9LAotICByZW1vdmVGdW5j
dGlvbjogZnVuY3Rpb24gKGluZGV4KSB7Ci0gICAgUnVudGltZS5mdW5jdGlvblBvaW50ZXJzWyhp
bmRleC0yKS8yXSA9IG51bGw7Ci0gIH0sCi0gIHdhcm5PbmNlOiBmdW5jdGlvbiAodGV4dCkgewot
ICAgIGlmICghUnVudGltZS53YXJuT25jZS5zaG93bikgUnVudGltZS53YXJuT25jZS5zaG93biA9
IHt9OwotICAgIGlmICghUnVudGltZS53YXJuT25jZS5zaG93blt0ZXh0XSkgewotICAgICAgUnVu
dGltZS53YXJuT25jZS5zaG93blt0ZXh0XSA9IDE7Ci0gICAgICBNb2R1bGUucHJpbnRFcnIodGV4
dCk7Ci0gICAgfQotICB9LAotICBmdW5jV3JhcHBlcnM6IHt9LAotICBnZXRGdW5jV3JhcHBlcjog
ZnVuY3Rpb24gKGZ1bmMsIHNpZykgewotICAgIGFzc2VydChzaWcpOwotICAgIGlmICghUnVudGlt
ZS5mdW5jV3JhcHBlcnNbZnVuY10pIHsKLSAgICAgIFJ1bnRpbWUuZnVuY1dyYXBwZXJzW2Z1bmNd
ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVybiBSdW50aW1lLmR5bkNhbGwoc2lnLCBmdW5j
LCBhcmd1bWVudHMpOwotICAgICAgfTsKLSAgICB9Ci0gICAgcmV0dXJuIFJ1bnRpbWUuZnVuY1dy
YXBwZXJzW2Z1bmNdOwotICB9LAotICBVVEY4UHJvY2Vzc29yOiBmdW5jdGlvbiAoKSB7Ci0gICAg
dmFyIGJ1ZmZlciA9IFtdOwotICAgIHZhciBuZWVkZWQgPSAwOwotICAgIHRoaXMucHJvY2Vzc0ND
aGFyID0gZnVuY3Rpb24gKGNvZGUpIHsKLSAgICAgIGNvZGUgPSBjb2RlICYgMHhGRjsKLSAgICAg
IGlmIChidWZmZXIubGVuZ3RoID09IDApIHsKLSAgICAgICAgaWYgKChjb2RlICYgMHg4MCkgPT0g
MHgwMCkgeyAgICAgICAgLy8gMHh4eHh4eHgKLSAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21D
aGFyQ29kZShjb2RlKTsKLSAgICAgICAgfQotICAgICAgICBidWZmZXIucHVzaChjb2RlKTsKLSAg
ICAgICAgaWYgKChjb2RlICYgMHhFMCkgPT0gMHhDMCkgeyAgICAgICAgLy8gMTEweHh4eHgKLSAg
ICAgICAgICBuZWVkZWQgPSAxOwotICAgICAgICB9IGVsc2UgaWYgKChjb2RlICYgMHhGMCkgPT0g
MHhFMCkgeyAvLyAxMTEweHh4eAotICAgICAgICAgIG5lZWRlZCA9IDI7Ci0gICAgICAgIH0gZWxz
ZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDExMTEweHh4Ci0gICAgICAgICAgbmVl
ZGVkID0gMzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gJyc7Ci0gICAgICB9Ci0gICAgICBp
ZiAobmVlZGVkKSB7Ci0gICAgICAgIGJ1ZmZlci5wdXNoKGNvZGUpOwotICAgICAgICBuZWVkZWQt
LTsKLSAgICAgICAgaWYgKG5lZWRlZCA+IDApIHJldHVybiAnJzsKLSAgICAgIH0KLSAgICAgIHZh
ciBjMSA9IGJ1ZmZlclswXTsKLSAgICAgIHZhciBjMiA9IGJ1ZmZlclsxXTsKLSAgICAgIHZhciBj
MyA9IGJ1ZmZlclsyXTsKLSAgICAgIHZhciBjNCA9IGJ1ZmZlclszXTsKLSAgICAgIHZhciByZXQ7
Ci0gICAgICBpZiAoYnVmZmVyLmxlbmd0aCA9PSAyKSB7Ci0gICAgICAgIHJldCA9IFN0cmluZy5m
cm9tQ2hhckNvZGUoKChjMSAmIDB4MUYpIDw8IDYpICB8IChjMiAmIDB4M0YpKTsKLSAgICAgIH0g
ZWxzZSBpZiAoYnVmZmVyLmxlbmd0aCA9PSAzKSB7Ci0gICAgICAgIHJldCA9IFN0cmluZy5mcm9t
Q2hhckNvZGUoKChjMSAmIDB4MEYpIDw8IDEyKSB8ICgoYzIgJiAweDNGKSA8PCA2KSAgfCAoYzMg
JiAweDNGKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAvLyBodHRwOi8vbWF0aGlhc2J5bmVu
cy5iZS9ub3Rlcy9qYXZhc2NyaXB0LWVuY29kaW5nI3N1cnJvZ2F0ZS1mb3JtdWxhZQotICAgICAg
ICB2YXIgY29kZVBvaW50ID0gKChjMSAmIDB4MDcpIDw8IDE4KSB8ICgoYzIgJiAweDNGKSA8PCAx
MikgfAotICAgICAgICAgICAgICAgICAgICAgICAgKChjMyAmIDB4M0YpIDw8IDYpICB8IChjNCAm
IDB4M0YpOwotICAgICAgICByZXQgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKAotICAgICAgICAgIE1h
dGguZmxvb3IoKGNvZGVQb2ludCAtIDB4MTAwMDApIC8gMHg0MDApICsgMHhEODAwLAotICAgICAg
ICAgIChjb2RlUG9pbnQgLSAweDEwMDAwKSAlIDB4NDAwICsgMHhEQzAwKTsKLSAgICAgIH0KLSAg
ICAgIGJ1ZmZlci5sZW5ndGggPSAwOwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gICAgdGhp
cy5wcm9jZXNzSlNTdHJpbmcgPSBmdW5jdGlvbihzdHJpbmcpIHsKLSAgICAgIHN0cmluZyA9IHVu
ZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmcpKTsKLSAgICAgIHZhciByZXQgPSBbXTsK
LSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAg
IHJldC5wdXNoKHN0cmluZy5jaGFyQ29kZUF0KGkpKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBy
ZXQ7Ci0gICAgfQotICB9LAotICBzdGFja0FsbG9jOiBmdW5jdGlvbiAoc2l6ZSkgeyB2YXIgcmV0
ID0gU1RBQ0tUT1A7U1RBQ0tUT1AgPSAoU1RBQ0tUT1AgKyBzaXplKXwwO1NUQUNLVE9QID0gKCgo
KFNUQUNLVE9QKSs3KT4+Myk8PDMpOyByZXR1cm4gcmV0OyB9LAotICBzdGF0aWNBbGxvYzogZnVu
Y3Rpb24gKHNpemUpIHsgdmFyIHJldCA9IFNUQVRJQ1RPUDtTVEFUSUNUT1AgPSAoU1RBVElDVE9Q
ICsgc2l6ZSl8MDtTVEFUSUNUT1AgPSAoKCgoU1RBVElDVE9QKSs3KT4+Myk8PDMpOyByZXR1cm4g
cmV0OyB9LAotICBkeW5hbWljQWxsb2M6IGZ1bmN0aW9uIChzaXplKSB7IHZhciByZXQgPSBEWU5B
TUlDVE9QO0RZTkFNSUNUT1AgPSAoRFlOQU1JQ1RPUCArIHNpemUpfDA7RFlOQU1JQ1RPUCA9ICgo
KChEWU5BTUlDVE9QKSs3KT4+Myk8PDMpOyBpZiAoRFlOQU1JQ1RPUCA+PSBUT1RBTF9NRU1PUlkp
IGVubGFyZ2VNZW1vcnkoKTs7IHJldHVybiByZXQ7IH0sCi0gIGFsaWduTWVtb3J5OiBmdW5jdGlv
biAoc2l6ZSxxdWFudHVtKSB7IHZhciByZXQgPSBzaXplID0gTWF0aC5jZWlsKChzaXplKS8ocXVh
bnR1bSA/IHF1YW50dW0gOiA4KSkqKHF1YW50dW0gPyBxdWFudHVtIDogOCk7IHJldHVybiByZXQ7
IH0sCi0gIG1ha2VCaWdJbnQ6IGZ1bmN0aW9uIChsb3csaGlnaCx1bnNpZ25lZCkgeyB2YXIgcmV0
ID0gKHVuc2lnbmVkID8gKCgrKCgobG93KT4+PigwKSkpKSsoKCsoKChoaWdoKT4+PigwKSkpKSoo
Kyg0Mjk0OTY3Mjk2KSkpKSA6ICgoKygoKGxvdyk+Pj4oMCkpKSkrKCgrKCgoaGlnaCl8KDApKSkp
KigrKDQyOTQ5NjcyOTYpKSkpKTsgcmV0dXJuIHJldDsgfSwKLSAgR0xPQkFMX0JBU0U6IDgsCi0g
IFFVQU5UVU1fU0laRTogNCwKLSAgX19kdW1teV9fOiAwCi19Ci0vLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS8vIFJ1bnRpbWUgZXNzZW50aWFscwotLy89PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci12YXIgX19USFJFV19fID0gMDsgLy8g
VXNlZCBpbiBjaGVja2luZyBmb3IgdGhyb3duIGV4Y2VwdGlvbnMuCi12YXIgQUJPUlQgPSBmYWxz
ZTsgLy8gd2hldGhlciB3ZSBhcmUgcXVpdHRpbmcgdGhlIGFwcGxpY2F0aW9uLiBubyBjb2RlIHNo
b3VsZCBydW4gYWZ0ZXIgdGhpcy4gc2V0IGluIGV4aXQoKSBhbmQgYWJvcnQoKQotdmFyIEVYSVRT
VEFUVVMgPSAwOwotdmFyIHVuZGVmID0gMDsKLS8vIHRlbXBJbnQgaXMgdXNlZCBmb3IgMzItYml0
IHNpZ25lZCB2YWx1ZXMgb3Igc21hbGxlci4gdGVtcEJpZ0ludCBpcyB1c2VkCi0vLyBmb3IgMzIt
Yml0IHVuc2lnbmVkIHZhbHVlcyBvciBtb3JlIHRoYW4gMzIgYml0cy4gVE9ETzogYXVkaXQgYWxs
IHVzZXMgb2YgdGVtcEludAotdmFyIHRlbXBWYWx1ZSwgdGVtcEludCwgdGVtcEJpZ0ludCwgdGVt
cEludDIsIHRlbXBCaWdJbnQyLCB0ZW1wUGFpciwgdGVtcEJpZ0ludEksIHRlbXBCaWdJbnRSLCB0
ZW1wQmlnSW50UywgdGVtcEJpZ0ludFAsIHRlbXBCaWdJbnREOwotdmFyIHRlbXBJNjQsIHRlbXBJ
NjRiOwotdmFyIHRlbXBSZXQwLCB0ZW1wUmV0MSwgdGVtcFJldDIsIHRlbXBSZXQzLCB0ZW1wUmV0
NCwgdGVtcFJldDUsIHRlbXBSZXQ2LCB0ZW1wUmV0NywgdGVtcFJldDgsIHRlbXBSZXQ5OwotZnVu
Y3Rpb24gYXNzZXJ0KGNvbmRpdGlvbiwgdGV4dCkgewotICBpZiAoIWNvbmRpdGlvbikgewotICAg
IGFib3J0KCdBc3NlcnRpb24gZmFpbGVkOiAnICsgdGV4dCk7Ci0gIH0KLX0KLXZhciBnbG9iYWxT
Y29wZSA9IHRoaXM7Ci0vLyBDIGNhbGxpbmcgaW50ZXJmYWNlLiBBIGNvbnZlbmllbnQgd2F5IHRv
IGNhbGwgQyBmdW5jdGlvbnMgKGluIEMgZmlsZXMsIG9yCi0vLyBkZWZpbmVkIHdpdGggZXh0ZXJu
ICJDIikuCi0vLwotLy8gTm90ZTogTExWTSBvcHRpbWl6YXRpb25zIGNhbiBpbmxpbmUgYW5kIHJl
bW92ZSBmdW5jdGlvbnMsIGFmdGVyIHdoaWNoIHlvdSB3aWxsIG5vdCBiZQotLy8gICAgICAgYWJs
ZSB0byBjYWxsIHRoZW0uIENsb3N1cmUgY2FuIGFsc28gZG8gc28uIFRvIGF2b2lkIHRoYXQsIGFk
ZCB5b3VyIGZ1bmN0aW9uIHRvCi0vLyAgICAgICB0aGUgZXhwb3J0cyB1c2luZyBzb21ldGhpbmcg
bGlrZQotLy8KLS8vICAgICAgICAgLXMgRVhQT1JURURfRlVOQ1RJT05TPSdbIl9tYWluIiwgIl9t
eWZ1bmMiXScKLS8vCi0vLyBAcGFyYW0gaWRlbnQgICAgICBUaGUgbmFtZSBvZiB0aGUgQyBmdW5j
dGlvbiAobm90ZSB0aGF0IEMrKyBmdW5jdGlvbnMgd2lsbCBiZSBuYW1lLW1hbmdsZWQgLSB1c2Ug
ZXh0ZXJuICJDIikKLS8vIEBwYXJhbSByZXR1cm5UeXBlIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUg
ZnVuY3Rpb24sIG9uZSBvZiB0aGUgSlMgdHlwZXMgJ251bWJlcicsICdzdHJpbmcnIG9yICdhcnJh
eScgKHVzZSAnbnVtYmVyJyBmb3IgYW55IEMgcG9pbnRlciwgYW5kCi0vLyAgICAgICAgICAgICAg
ICAgICAnYXJyYXknIGZvciBKYXZhU2NyaXB0IGFycmF5cyBhbmQgdHlwZWQgYXJyYXlzOyBub3Rl
IHRoYXQgYXJyYXlzIGFyZSA4LWJpdCkuCi0vLyBAcGFyYW0gYXJnVHlwZXMgICBBbiBhcnJheSBv
ZiB0aGUgdHlwZXMgb2YgYXJndW1lbnRzIGZvciB0aGUgZnVuY3Rpb24gKGlmIHRoZXJlIGFyZSBu
byBhcmd1bWVudHMsIHRoaXMgY2FuIGJlIG9tbWl0dGVkKS4gVHlwZXMgYXJlIGFzIGluIHJldHVy
blR5cGUsCi0vLyAgICAgICAgICAgICAgICAgICBleGNlcHQgdGhhdCAnYXJyYXknIGlzIG5vdCBw
b3NzaWJsZSAodGhlcmUgaXMgbm8gd2F5IGZvciB1cyB0byBrbm93IHRoZSBsZW5ndGggb2YgdGhl
IGFycmF5KQotLy8gQHBhcmFtIGFyZ3MgICAgICAgQW4gYXJyYXkgb2YgdGhlIGFyZ3VtZW50cyB0
byB0aGUgZnVuY3Rpb24sIGFzIG5hdGl2ZSBKUyB2YWx1ZXMgKGFzIGluIHJldHVyblR5cGUpCi0v
LyAgICAgICAgICAgICAgICAgICBOb3RlIHRoYXQgc3RyaW5nIGFyZ3VtZW50cyB3aWxsIGJlIHN0
b3JlZCBvbiB0aGUgc3RhY2sgKHRoZSBKUyBzdHJpbmcgd2lsbCBiZWNvbWUgYSBDIHN0cmluZyBv
biB0aGUgc3RhY2spLgotLy8gQHJldHVybiAgICAgICAgICAgVGhlIHJldHVybiB2YWx1ZSwgYXMg
YSBuYXRpdmUgSlMgdmFsdWUgKGFzIGluIHJldHVyblR5cGUpCi1mdW5jdGlvbiBjY2FsbChpZGVu
dCwgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3MpIHsKLSAgcmV0dXJuIGNjYWxsRnVuYyhnZXRD
RnVuYyhpZGVudCksIHJldHVyblR5cGUsIGFyZ1R5cGVzLCBhcmdzKTsKLX0KLU1vZHVsZVsiY2Nh
bGwiXSA9IGNjYWxsOwotLy8gUmV0dXJucyB0aGUgQyBmdW5jdGlvbiB3aXRoIGEgc3BlY2lmaWVk
IGlkZW50aWZpZXIgKGZvciBDKyssIHlvdSBuZWVkIHRvIGRvIG1hbnVhbCBuYW1lIG1hbmdsaW5n
KQotZnVuY3Rpb24gZ2V0Q0Z1bmMoaWRlbnQpIHsKLSAgdHJ5IHsKLSAgICB2YXIgZnVuYyA9IE1v
ZHVsZVsnXycgKyBpZGVudF07IC8vIGNsb3N1cmUgZXhwb3J0ZWQgZnVuY3Rpb24KLSAgICBpZiAo
IWZ1bmMpIGZ1bmMgPSBldmFsKCdfJyArIGlkZW50KTsgLy8gZXhwbGljaXQgbG9va3VwCi0gIH0g
Y2F0Y2goZSkgewotICB9Ci0gIGFzc2VydChmdW5jLCAnQ2Fubm90IGNhbGwgdW5rbm93biBmdW5j
dGlvbiAnICsgaWRlbnQgKyAnIChwZXJoYXBzIExMVk0gb3B0aW1pemF0aW9ucyBvciBjbG9zdXJl
IHJlbW92ZWQgaXQ/KScpOwotICByZXR1cm4gZnVuYzsKLX0KLS8vIEludGVybmFsIGZ1bmN0aW9u
IHRoYXQgZG9lcyBhIEMgY2FsbCB1c2luZyBhIGZ1bmN0aW9uLCBub3QgYW4gaWRlbnRpZmllcgot
ZnVuY3Rpb24gY2NhbGxGdW5jKGZ1bmMsIHJldHVyblR5cGUsIGFyZ1R5cGVzLCBhcmdzKSB7Ci0g
IHZhciBzdGFjayA9IDA7Ci0gIGZ1bmN0aW9uIHRvQyh2YWx1ZSwgdHlwZSkgewotICAgIGlmICh0
eXBlID09ICdzdHJpbmcnKSB7Ci0gICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09
IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gMCkgcmV0dXJuIDA7IC8vIG51bGwgc3RyaW5nCi0gICAg
ICBpZiAoIXN0YWNrKSBzdGFjayA9IFJ1bnRpbWUuc3RhY2tTYXZlKCk7Ci0gICAgICB2YXIgcmV0
ID0gUnVudGltZS5zdGFja0FsbG9jKHZhbHVlLmxlbmd0aCsxKTsKLSAgICAgIHdyaXRlU3RyaW5n
VG9NZW1vcnkodmFsdWUsIHJldCk7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0gZWxzZSBpZiAo
dHlwZSA9PSAnYXJyYXknKSB7Ci0gICAgICBpZiAoIXN0YWNrKSBzdGFjayA9IFJ1bnRpbWUuc3Rh
Y2tTYXZlKCk7Ci0gICAgICB2YXIgcmV0ID0gUnVudGltZS5zdGFja0FsbG9jKHZhbHVlLmxlbmd0
aCk7Ci0gICAgICB3cml0ZUFycmF5VG9NZW1vcnkodmFsdWUsIHJldCk7Ci0gICAgICByZXR1cm4g
cmV0OwotICAgIH0KLSAgICByZXR1cm4gdmFsdWU7Ci0gIH0KLSAgZnVuY3Rpb24gZnJvbUModmFs
dWUsIHR5cGUpIHsKLSAgICBpZiAodHlwZSA9PSAnc3RyaW5nJykgewotICAgICAgcmV0dXJuIFBv
aW50ZXJfc3RyaW5naWZ5KHZhbHVlKTsKLSAgICB9Ci0gICAgYXNzZXJ0KHR5cGUgIT0gJ2FycmF5
Jyk7Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9Ci0gIHZhciBpID0gMDsKLSAgdmFyIGNBcmdzID0g
YXJncyA/IGFyZ3MubWFwKGZ1bmN0aW9uKGFyZykgewotICAgIHJldHVybiB0b0MoYXJnLCBhcmdU
eXBlc1tpKytdKTsKLSAgfSkgOiBbXTsKLSAgdmFyIHJldCA9IGZyb21DKGZ1bmMuYXBwbHkobnVs
bCwgY0FyZ3MpLCByZXR1cm5UeXBlKTsKLSAgaWYgKHN0YWNrKSBSdW50aW1lLnN0YWNrUmVzdG9y
ZShzdGFjayk7Ci0gIHJldHVybiByZXQ7Ci19Ci0vLyBSZXR1cm5zIGEgbmF0aXZlIEpTIHdyYXBw
ZXIgZm9yIGEgQyBmdW5jdGlvbi4gVGhpcyBpcyBzaW1pbGFyIHRvIGNjYWxsLCBidXQKLS8vIHJl
dHVybnMgYSBmdW5jdGlvbiB5b3UgY2FuIGNhbGwgcmVwZWF0ZWRseSBpbiBhIG5vcm1hbCB3YXku
IEZvciBleGFtcGxlOgotLy8KLS8vICAgdmFyIG15X2Z1bmN0aW9uID0gY3dyYXAoJ215X2NfZnVu
Y3Rpb24nLCAnbnVtYmVyJywgWydudW1iZXInLCAnbnVtYmVyJ10pOwotLy8gICBhbGVydChteV9m
dW5jdGlvbig1LCAyMikpOwotLy8gICBhbGVydChteV9mdW5jdGlvbig5OSwgMTIpKTsKLS8vCi1m
dW5jdGlvbiBjd3JhcChpZGVudCwgcmV0dXJuVHlwZSwgYXJnVHlwZXMpIHsKLSAgdmFyIGZ1bmMg
PSBnZXRDRnVuYyhpZGVudCk7Ci0gIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gY2Nh
bGxGdW5jKGZ1bmMsIHJldHVyblR5cGUsIGFyZ1R5cGVzLCBBcnJheS5wcm90b3R5cGUuc2xpY2Uu
Y2FsbChhcmd1bWVudHMpKTsKLSAgfQotfQotTW9kdWxlWyJjd3JhcCJdID0gY3dyYXA7Ci0vLyBT
ZXRzIGEgdmFsdWUgaW4gbWVtb3J5IGluIGEgZHluYW1pYyB3YXkgYXQgcnVuLXRpbWUuIFVzZXMg
dGhlCi0vLyB0eXBlIGRhdGEuIFRoaXMgaXMgdGhlIHNhbWUgYXMgbWFrZVNldFZhbHVlLCBleGNl
cHQgdGhhdAotLy8gbWFrZVNldFZhbHVlIGlzIGRvbmUgYXQgY29tcGlsZS10aW1lIGFuZCBnZW5l
cmF0ZXMgdGhlIG5lZWRlZAotLy8gY29kZSB0aGVuLCB3aGVyZWFzIHRoaXMgZnVuY3Rpb24gcGlj
a3MgdGhlIHJpZ2h0IGNvZGUgYXQKLS8vIHJ1bi10aW1lLgotLy8gTm90ZSB0aGF0IHNldFZhbHVl
IGFuZCBnZXRWYWx1ZSBvbmx5IGRvICphbGlnbmVkKiB3cml0ZXMgYW5kIHJlYWRzIQotLy8gTm90
ZSB0aGF0IGNjYWxsIHVzZXMgSlMgdHlwZXMgYXMgZm9yIGRlZmluaW5nIHR5cGVzLCB3aGlsZSBz
ZXRWYWx1ZSBhbmQKLS8vIGdldFZhbHVlIG5lZWQgTExWTSB0eXBlcyAoJ2k4JywgJ2kzMicpIC0g
dGhpcyBpcyBhIGxvd2VyLWxldmVsIG9wZXJhdGlvbgotZnVuY3Rpb24gc2V0VmFsdWUocHRyLCB2
YWx1ZSwgdHlwZSwgbm9TYWZlKSB7Ci0gIHR5cGUgPSB0eXBlIHx8ICdpOCc7Ci0gIGlmICh0eXBl
LmNoYXJBdCh0eXBlLmxlbmd0aC0xKSA9PT0gJyonKSB0eXBlID0gJ2kzMic7IC8vIHBvaW50ZXJz
IGFyZSAzMi1iaXQKLSAgICBzd2l0Y2godHlwZSkgewotICAgICAgY2FzZSAnaTEnOiBIRUFQOFso
cHRyKV09dmFsdWU7IGJyZWFrOwotICAgICAgY2FzZSAnaTgnOiBIRUFQOFsocHRyKV09dmFsdWU7
IGJyZWFrOwotICAgICAgY2FzZSAnaTE2JzogSEVBUDE2WygocHRyKT4+MSldPXZhbHVlOyBicmVh
azsKLSAgICAgIGNhc2UgJ2kzMic6IEhFQVAzMlsoKHB0cik+PjIpXT12YWx1ZTsgYnJlYWs7Ci0g
ICAgICBjYXNlICdpNjQnOiAodGVtcEk2NCA9IFt2YWx1ZT4+PjAsKHRlbXBEb3VibGU9dmFsdWUs
KCsoTWF0aC5hYnModGVtcERvdWJsZSkpKSA+PSAoKygxKSkgPyAodGVtcERvdWJsZSA+ICgrKDAp
KSA/ICgoTWF0aC5taW4oKCsoTWF0aC5mbG9vcigodGVtcERvdWJsZSkvKCsoNDI5NDk2NzI5Nikp
KSkpLCAoKyg0Mjk0OTY3Mjk1KSkpKXwwKT4+PjAgOiAofn4oKCsoTWF0aC5jZWlsKCh0ZW1wRG91
YmxlIC0gKygoKH5+KHRlbXBEb3VibGUpKSk+Pj4wKSkvKCsoNDI5NDk2NzI5NikpKSkpKSk+Pj4w
KSA6IDApXSxIRUFQMzJbKChwdHIpPj4yKV09dGVtcEk2NFswXSxIRUFQMzJbKCgocHRyKSsoNCkp
Pj4yKV09dGVtcEk2NFsxXSk7IGJyZWFrOwotICAgICAgY2FzZSAnZmxvYXQnOiBIRUFQRjMyWygo
cHRyKT4+MildPXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2UgJ2RvdWJsZSc6IEhFQVBGNjRbKChw
dHIpPj4zKV09dmFsdWU7IGJyZWFrOwotICAgICAgZGVmYXVsdDogYWJvcnQoJ2ludmFsaWQgdHlw
ZSBmb3Igc2V0VmFsdWU6ICcgKyB0eXBlKTsKLSAgICB9Ci19Ci1Nb2R1bGVbJ3NldFZhbHVlJ10g
PSBzZXRWYWx1ZTsKLS8vIFBhcmFsbGVsIHRvIHNldFZhbHVlLgotZnVuY3Rpb24gZ2V0VmFsdWUo
cHRyLCB0eXBlLCBub1NhZmUpIHsKLSAgdHlwZSA9IHR5cGUgfHwgJ2k4JzsKLSAgaWYgKHR5cGUu
Y2hhckF0KHR5cGUubGVuZ3RoLTEpID09PSAnKicpIHR5cGUgPSAnaTMyJzsgLy8gcG9pbnRlcnMg
YXJlIDMyLWJpdAotICAgIHN3aXRjaCh0eXBlKSB7Ci0gICAgICBjYXNlICdpMSc6IHJldHVybiBI
RUFQOFsocHRyKV07Ci0gICAgICBjYXNlICdpOCc6IHJldHVybiBIRUFQOFsocHRyKV07Ci0gICAg
ICBjYXNlICdpMTYnOiByZXR1cm4gSEVBUDE2WygocHRyKT4+MSldOwotICAgICAgY2FzZSAnaTMy
JzogcmV0dXJuIEhFQVAzMlsoKHB0cik+PjIpXTsKLSAgICAgIGNhc2UgJ2k2NCc6IHJldHVybiBI
RUFQMzJbKChwdHIpPj4yKV07Ci0gICAgICBjYXNlICdmbG9hdCc6IHJldHVybiBIRUFQRjMyWygo
cHRyKT4+MildOwotICAgICAgY2FzZSAnZG91YmxlJzogcmV0dXJuIEhFQVBGNjRbKChwdHIpPj4z
KV07Ci0gICAgICBkZWZhdWx0OiBhYm9ydCgnaW52YWxpZCB0eXBlIGZvciBzZXRWYWx1ZTogJyAr
IHR5cGUpOwotICAgIH0KLSAgcmV0dXJuIG51bGw7Ci19Ci1Nb2R1bGVbJ2dldFZhbHVlJ10gPSBn
ZXRWYWx1ZTsKLXZhciBBTExPQ19OT1JNQUwgPSAwOyAvLyBUcmllcyB0byB1c2UgX21hbGxvYygp
Ci12YXIgQUxMT0NfU1RBQ0sgPSAxOyAvLyBMaXZlcyBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBj
dXJyZW50IGZ1bmN0aW9uIGNhbGwKLXZhciBBTExPQ19TVEFUSUMgPSAyOyAvLyBDYW5ub3QgYmUg
ZnJlZWQKLXZhciBBTExPQ19EWU5BTUlDID0gMzsgLy8gQ2Fubm90IGJlIGZyZWVkIGV4Y2VwdCB0
aHJvdWdoIHNicmsKLXZhciBBTExPQ19OT05FID0gNDsgLy8gRG8gbm90IGFsbG9jYXRlCi1Nb2R1
bGVbJ0FMTE9DX05PUk1BTCddID0gQUxMT0NfTk9STUFMOwotTW9kdWxlWydBTExPQ19TVEFDSydd
ID0gQUxMT0NfU1RBQ0s7Ci1Nb2R1bGVbJ0FMTE9DX1NUQVRJQyddID0gQUxMT0NfU1RBVElDOwot
TW9kdWxlWydBTExPQ19EWU5BTUlDJ10gPSBBTExPQ19EWU5BTUlDOwotTW9kdWxlWydBTExPQ19O
T05FJ10gPSBBTExPQ19OT05FOwotLy8gYWxsb2NhdGUoKTogVGhpcyBpcyBmb3IgaW50ZXJuYWwg
dXNlLiBZb3UgY2FuIHVzZSBpdCB5b3Vyc2VsZiBhcyB3ZWxsLCBidXQgdGhlIGludGVyZmFjZQot
Ly8gICAgICAgICAgICAgaXMgYSBsaXR0bGUgdHJpY2t5IChzZWUgZG9jcyByaWdodCBiZWxvdyku
IFRoZSByZWFzb24gaXMgdGhhdCBpdCBpcyBvcHRpbWl6ZWQKLS8vICAgICAgICAgICAgIGZvciBt
dWx0aXBsZSBzeW50YXhlcyB0byBzYXZlIHNwYWNlIGluIGdlbmVyYXRlZCBjb2RlLiBTbyB5b3Ug
c2hvdWxkCi0vLyAgICAgICAgICAgICBub3JtYWxseSBub3QgdXNlIGFsbG9jYXRlKCksIGFuZCBp
bnN0ZWFkIGFsbG9jYXRlIG1lbW9yeSB1c2luZyBfbWFsbG9jKCksCi0vLyAgICAgICAgICAgICBp
bml0aWFsaXplIGl0IHdpdGggc2V0VmFsdWUoKSwgYW5kIHNvIGZvcnRoLgotLy8gQHNsYWI6IEFu
IGFycmF5IG9mIGRhdGEsIG9yIGEgbnVtYmVyLiBJZiBhIG51bWJlciwgdGhlbiB0aGUgc2l6ZSBv
ZiB0aGUgYmxvY2sgdG8gYWxsb2NhdGUsCi0vLyAgICAgICAgaW4gKmJ5dGVzKiAobm90ZSB0aGF0
IHRoaXMgaXMgc29tZXRpbWVzIGNvbmZ1c2luZzogdGhlIG5leHQgcGFyYW1ldGVyIGRvZXMgbm90
Ci0vLyAgICAgICAgYWZmZWN0IHRoaXMhKQotLy8gQHR5cGVzOiBFaXRoZXIgYW4gYXJyYXkgb2Yg
dHlwZXMsIG9uZSBmb3IgZWFjaCBieXRlIChvciAwIGlmIG5vIHR5cGUgYXQgdGhhdCBwb3NpdGlv
biksCi0vLyAgICAgICAgIG9yIGEgc2luZ2xlIHR5cGUgd2hpY2ggaXMgdXNlZCBmb3IgdGhlIGVu
dGlyZSBibG9jay4gVGhpcyBvbmx5IG1hdHRlcnMgaWYgdGhlcmUKLS8vICAgICAgICAgaXMgaW5p
dGlhbCBkYXRhIC0gaWYgQHNsYWIgaXMgYSBudW1iZXIsIHRoZW4gdGhpcyBkb2VzIG5vdCBtYXR0
ZXIgYXQgYWxsIGFuZCBpcwotLy8gICAgICAgICBpZ25vcmVkLgotLy8gQGFsbG9jYXRvcjogSG93
IHRvIGFsbG9jYXRlIG1lbW9yeSwgc2VlIEFMTE9DXyoKLWZ1bmN0aW9uIGFsbG9jYXRlKHNsYWIs
IHR5cGVzLCBhbGxvY2F0b3IsIHB0cikgewotICB2YXIgemVyb2luaXQsIHNpemU7Ci0gIGlmICh0
eXBlb2Ygc2xhYiA9PT0gJ251bWJlcicpIHsKLSAgICB6ZXJvaW5pdCA9IHRydWU7Ci0gICAgc2l6
ZSA9IHNsYWI7Ci0gIH0gZWxzZSB7Ci0gICAgemVyb2luaXQgPSBmYWxzZTsKLSAgICBzaXplID0g
c2xhYi5sZW5ndGg7Ci0gIH0KLSAgdmFyIHNpbmdsZVR5cGUgPSB0eXBlb2YgdHlwZXMgPT09ICdz
dHJpbmcnID8gdHlwZXMgOiBudWxsOwotICB2YXIgcmV0OwotICBpZiAoYWxsb2NhdG9yID09IEFM
TE9DX05PTkUpIHsKLSAgICByZXQgPSBwdHI7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0ID0gW19tYWxs
b2MsIFJ1bnRpbWUuc3RhY2tBbGxvYywgUnVudGltZS5zdGF0aWNBbGxvYywgUnVudGltZS5keW5h
bWljQWxsb2NdW2FsbG9jYXRvciA9PT0gdW5kZWZpbmVkID8gQUxMT0NfU1RBVElDIDogYWxsb2Nh
dG9yXShNYXRoLm1heChzaXplLCBzaW5nbGVUeXBlID8gMSA6IHR5cGVzLmxlbmd0aCkpOwotICB9
Ci0gIGlmICh6ZXJvaW5pdCkgewotICAgIHZhciBwdHIgPSByZXQsIHN0b3A7Ci0gICAgYXNzZXJ0
KChyZXQgJiAzKSA9PSAwKTsKLSAgICBzdG9wID0gcmV0ICsgKHNpemUgJiB+Myk7Ci0gICAgZm9y
ICg7IHB0ciA8IHN0b3A7IHB0ciArPSA0KSB7Ci0gICAgICBIRUFQMzJbKChwdHIpPj4yKV09MDsK
LSAgICB9Ci0gICAgc3RvcCA9IHJldCArIHNpemU7Ci0gICAgd2hpbGUgKHB0ciA8IHN0b3ApIHsK
LSAgICAgIEhFQVA4WygocHRyKyspfDApXT0wOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotICB9
Ci0gIGlmIChzaW5nbGVUeXBlID09PSAnaTgnKSB7Ci0gICAgaWYgKHNsYWIuc3ViYXJyYXkgfHwg
c2xhYi5zbGljZSkgewotICAgICAgSEVBUFU4LnNldChzbGFiLCByZXQpOwotICAgIH0gZWxzZSB7
Ci0gICAgICBIRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHNsYWIpLCByZXQpOwotICAgIH0KLSAg
ICByZXR1cm4gcmV0OwotICB9Ci0gIHZhciBpID0gMCwgdHlwZSwgdHlwZVNpemUsIHByZXZpb3Vz
VHlwZTsKLSAgd2hpbGUgKGkgPCBzaXplKSB7Ci0gICAgdmFyIGN1cnIgPSBzbGFiW2ldOwotICAg
IGlmICh0eXBlb2YgY3VyciA9PT0gJ2Z1bmN0aW9uJykgewotICAgICAgY3VyciA9IFJ1bnRpbWUu
Z2V0RnVuY3Rpb25JbmRleChjdXJyKTsKLSAgICB9Ci0gICAgdHlwZSA9IHNpbmdsZVR5cGUgfHwg
dHlwZXNbaV07Ci0gICAgaWYgKHR5cGUgPT09IDApIHsKLSAgICAgIGkrKzsKLSAgICAgIGNvbnRp
bnVlOwotICAgIH0KLSAgICBpZiAodHlwZSA9PSAnaTY0JykgdHlwZSA9ICdpMzInOyAvLyBzcGVj
aWFsIGNhc2U6IHdlIGhhdmUgb25lIGkzMiBoZXJlLCBhbmQgb25lIGkzMiBsYXRlcgotICAgIHNl
dFZhbHVlKHJldCtpLCBjdXJyLCB0eXBlKTsKLSAgICAvLyBubyBuZWVkIHRvIGxvb2sgdXAgc2l6
ZSB1bmxlc3MgdHlwZSBjaGFuZ2VzLCBzbyBjYWNoZSBpdAotICAgIGlmIChwcmV2aW91c1R5cGUg
IT09IHR5cGUpIHsKLSAgICAgIHR5cGVTaXplID0gUnVudGltZS5nZXROYXRpdmVUeXBlU2l6ZSh0
eXBlKTsKLSAgICAgIHByZXZpb3VzVHlwZSA9IHR5cGU7Ci0gICAgfQotICAgIGkgKz0gdHlwZVNp
emU7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVsZVsnYWxsb2NhdGUnXSA9IGFsbG9jYXRl
OwotZnVuY3Rpb24gUG9pbnRlcl9zdHJpbmdpZnkocHRyLCAvKiBvcHRpb25hbCAqLyBsZW5ndGgp
IHsKLSAgLy8gVE9ETzogdXNlIFRleHREZWNvZGVyCi0gIC8vIEZpbmQgdGhlIGxlbmd0aCwgYW5k
IGNoZWNrIGZvciBVVEYgd2hpbGUgZG9pbmcgc28KLSAgdmFyIGhhc1V0ZiA9IGZhbHNlOwotICB2
YXIgdDsKLSAgdmFyIGkgPSAwOwotICB3aGlsZSAoMSkgewotICAgIHQgPSBIRUFQVThbKCgocHRy
KSsoaSkpfDApXTsKLSAgICBpZiAodCA+PSAxMjgpIGhhc1V0ZiA9IHRydWU7Ci0gICAgZWxzZSBp
ZiAodCA9PSAwICYmICFsZW5ndGgpIGJyZWFrOwotICAgIGkrKzsKLSAgICBpZiAobGVuZ3RoICYm
IGkgPT0gbGVuZ3RoKSBicmVhazsKLSAgfQotICBpZiAoIWxlbmd0aCkgbGVuZ3RoID0gaTsKLSAg
dmFyIHJldCA9ICcnOwotICBpZiAoIWhhc1V0ZikgewotICAgIHZhciBNQVhfQ0hVTksgPSAxMDI0
OyAvLyBzcGxpdCB1cCBpbnRvIGNodW5rcywgYmVjYXVzZSAuYXBwbHkgb24gYSBodWdlIHN0cmlu
ZyBjYW4gb3ZlcmZsb3cgdGhlIHN0YWNrCi0gICAgdmFyIGN1cnI7Ci0gICAgd2hpbGUgKGxlbmd0
aCA+IDApIHsKLSAgICAgIGN1cnIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywg
SEVBUFU4LnN1YmFycmF5KHB0ciwgcHRyICsgTWF0aC5taW4obGVuZ3RoLCBNQVhfQ0hVTkspKSk7
Ci0gICAgICByZXQgPSByZXQgPyByZXQgKyBjdXJyIDogY3VycjsKLSAgICAgIHB0ciArPSBNQVhf
Q0hVTks7Ci0gICAgICBsZW5ndGggLT0gTUFYX0NIVU5LOwotICAgIH0KLSAgICByZXR1cm4gcmV0
OwotICB9Ci0gIHZhciB1dGY4ID0gbmV3IFJ1bnRpbWUuVVRGOFByb2Nlc3NvcigpOwotICBmb3Ig
KGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICB0ID0gSEVBUFU4WygoKHB0cikrKGkpKXww
KV07Ci0gICAgcmV0ICs9IHV0ZjgucHJvY2Vzc0NDaGFyKHQpOwotICB9Ci0gIHJldHVybiByZXQ7
Ci19Ci1Nb2R1bGVbJ1BvaW50ZXJfc3RyaW5naWZ5J10gPSBQb2ludGVyX3N0cmluZ2lmeTsKLS8v
IE1lbW9yeSBtYW5hZ2VtZW50Ci12YXIgUEFHRV9TSVpFID0gNDA5NjsKLWZ1bmN0aW9uIGFsaWdu
TWVtb3J5UGFnZSh4KSB7Ci0gIHJldHVybiAoKHgrNDA5NSk+PjEyKTw8MTI7Ci19Ci12YXIgSEVB
UDsKLXZhciBIRUFQOCwgSEVBUFU4LCBIRUFQMTYsIEhFQVBVMTYsIEhFQVAzMiwgSEVBUFUzMiwg
SEVBUEYzMiwgSEVBUEY2NDsKLXZhciBTVEFUSUNfQkFTRSA9IDAsIFNUQVRJQ1RPUCA9IDAsIHN0
YXRpY1NlYWxlZCA9IGZhbHNlOyAvLyBzdGF0aWMgYXJlYQotdmFyIFNUQUNLX0JBU0UgPSAwLCBT
VEFDS1RPUCA9IDAsIFNUQUNLX01BWCA9IDA7IC8vIHN0YWNrIGFyZWEKLXZhciBEWU5BTUlDX0JB
U0UgPSAwLCBEWU5BTUlDVE9QID0gMDsgLy8gZHluYW1pYyBhcmVhIGhhbmRsZWQgYnkgc2Jyawot
ZnVuY3Rpb24gZW5sYXJnZU1lbW9yeSgpIHsKLSAgYWJvcnQoJ0Nhbm5vdCBlbmxhcmdlIG1lbW9y
eSBhcnJheXMgaW4gYXNtLmpzLiBFaXRoZXIgKDEpIGNvbXBpbGUgd2l0aCAtcyBUT1RBTF9NRU1P
Ulk9WCB3aXRoIFggaGlnaGVyIHRoYW4gdGhlIGN1cnJlbnQgdmFsdWUsIG9yICgyKSBzZXQgTW9k
dWxlLlRPVEFMX01FTU9SWSBiZWZvcmUgdGhlIHByb2dyYW0gcnVucy4nKTsKLX0KLXZhciBUT1RB
TF9TVEFDSyA9IE1vZHVsZVsnVE9UQUxfU1RBQ0snXSB8fCA1MjQyODgwOwotdmFyIFRPVEFMX01F
TU9SWSA9IE1vZHVsZVsnVE9UQUxfTUVNT1JZJ10gfHwgMTY3NzcyMTY7Ci12YXIgRkFTVF9NRU1P
UlkgPSBNb2R1bGVbJ0ZBU1RfTUVNT1JZJ10gfHwgMjA5NzE1MjsKLS8vIEluaXRpYWxpemUgdGhl
IHJ1bnRpbWUncyBtZW1vcnkKLS8vIGNoZWNrIGZvciBmdWxsIGVuZ2luZSBzdXBwb3J0ICh1c2Ug
c3RyaW5nICdzdWJhcnJheScgdG8gYXZvaWQgY2xvc3VyZSBjb21waWxlciBjb25mdXNpb24pCi1h
c3NlcnQoISFJbnQzMkFycmF5ICYmICEhRmxvYXQ2NEFycmF5ICYmICEhKG5ldyBJbnQzMkFycmF5
KDEpWydzdWJhcnJheSddKSAmJiAhIShuZXcgSW50MzJBcnJheSgxKVsnc2V0J10pLAotICAgICAg
ICdDYW5ub3QgZmFsbGJhY2sgdG8gbm9uLXR5cGVkIGFycmF5IGNhc2U6IENvZGUgaXMgdG9vIHNw
ZWNpYWxpemVkJyk7Ci12YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKFRPVEFMX01FTU9SWSk7
Ci1IRUFQOCA9IG5ldyBJbnQ4QXJyYXkoYnVmZmVyKTsKLUhFQVAxNiA9IG5ldyBJbnQxNkFycmF5
KGJ1ZmZlcik7Ci1IRUFQMzIgPSBuZXcgSW50MzJBcnJheShidWZmZXIpOwotSEVBUFU4ID0gbmV3
IFVpbnQ4QXJyYXkoYnVmZmVyKTsKLUhFQVBVMTYgPSBuZXcgVWludDE2QXJyYXkoYnVmZmVyKTsK
LUhFQVBVMzIgPSBuZXcgVWludDMyQXJyYXkoYnVmZmVyKTsKLUhFQVBGMzIgPSBuZXcgRmxvYXQz
MkFycmF5KGJ1ZmZlcik7Ci1IRUFQRjY0ID0gbmV3IEZsb2F0NjRBcnJheShidWZmZXIpOwotLy8g
RW5kaWFubmVzcyBjaGVjayAobm90ZTogYXNzdW1lcyBjb21waWxlciBhcmNoIHdhcyBsaXR0bGUt
ZW5kaWFuKQotSEVBUDMyWzBdID0gMjU1OwotYXNzZXJ0KEhFQVBVOFswXSA9PT0gMjU1ICYmIEhF
QVBVOFszXSA9PT0gMCwgJ1R5cGVkIGFycmF5cyAyIG11c3QgYmUgcnVuIG9uIGEgbGl0dGxlLWVu
ZGlhbiBzeXN0ZW0nKTsKLU1vZHVsZVsnSEVBUCddID0gSEVBUDsKLU1vZHVsZVsnSEVBUDgnXSA9
IEhFQVA4OwotTW9kdWxlWydIRUFQMTYnXSA9IEhFQVAxNjsKLU1vZHVsZVsnSEVBUDMyJ10gPSBI
RUFQMzI7Ci1Nb2R1bGVbJ0hFQVBVOCddID0gSEVBUFU4OwotTW9kdWxlWydIRUFQVTE2J10gPSBI
RUFQVTE2OwotTW9kdWxlWydIRUFQVTMyJ10gPSBIRUFQVTMyOwotTW9kdWxlWydIRUFQRjMyJ10g
PSBIRUFQRjMyOwotTW9kdWxlWydIRUFQRjY0J10gPSBIRUFQRjY0OwotZnVuY3Rpb24gY2FsbFJ1
bnRpbWVDYWxsYmFja3MoY2FsbGJhY2tzKSB7Ci0gIHdoaWxlKGNhbGxiYWNrcy5sZW5ndGggPiAw
KSB7Ci0gICAgdmFyIGNhbGxiYWNrID0gY2FsbGJhY2tzLnNoaWZ0KCk7Ci0gICAgaWYgKHR5cGVv
ZiBjYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7Ci0gICAgICBjYWxsYmFjaygpOwotICAgICAgY29u
dGludWU7Ci0gICAgfQotICAgIHZhciBmdW5jID0gY2FsbGJhY2suZnVuYzsKLSAgICBpZiAodHlw
ZW9mIGZ1bmMgPT09ICdudW1iZXInKSB7Ci0gICAgICBpZiAoY2FsbGJhY2suYXJnID09PSB1bmRl
ZmluZWQpIHsKLSAgICAgICAgUnVudGltZS5keW5DYWxsKCd2JywgZnVuYyk7Ci0gICAgICB9IGVs
c2UgewotICAgICAgICBSdW50aW1lLmR5bkNhbGwoJ3ZpJywgZnVuYywgW2NhbGxiYWNrLmFyZ10p
OwotICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICBmdW5jKGNhbGxiYWNrLmFyZyA9PT0gdW5k
ZWZpbmVkID8gbnVsbCA6IGNhbGxiYWNrLmFyZyk7Ci0gICAgfQotICB9Ci19Ci12YXIgX19BVFBS
RVJVTl9fICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIGJlZm9yZSB0aGUgcnVudGltZSBpcyBp
bml0aWFsaXplZAotdmFyIF9fQVRJTklUX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCBk
dXJpbmcgc3RhcnR1cAotdmFyIF9fQVRNQUlOX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxl
ZCB3aGVuIG1haW4oKSBpcyB0byBiZSBydW4KLXZhciBfX0FURVhJVF9fICAgID0gW107IC8vIGZ1
bmN0aW9ucyBjYWxsZWQgZHVyaW5nIHNodXRkb3duCi12YXIgX19BVFBPU1RSVU5fXyA9IFtdOyAv
LyBmdW5jdGlvbnMgY2FsbGVkIGFmdGVyIHRoZSBydW50aW1lIGhhcyBleGl0ZWQKLXZhciBydW50
aW1lSW5pdGlhbGl6ZWQgPSBmYWxzZTsKLWZ1bmN0aW9uIHByZVJ1bigpIHsKLSAgLy8gY29tcGF0
aWJpbGl0eSAtIG1lcmdlIGluIGFueXRoaW5nIGZyb20gTW9kdWxlWydwcmVSdW4nXSBhdCB0aGlz
IHRpbWUKLSAgaWYgKE1vZHVsZVsncHJlUnVuJ10pIHsKLSAgICBpZiAodHlwZW9mIE1vZHVsZVsn
cHJlUnVuJ10gPT0gJ2Z1bmN0aW9uJykgTW9kdWxlWydwcmVSdW4nXSA9IFtNb2R1bGVbJ3ByZVJ1
biddXTsKLSAgICB3aGlsZSAoTW9kdWxlWydwcmVSdW4nXS5sZW5ndGgpIHsKLSAgICAgIGFkZE9u
UHJlUnVuKE1vZHVsZVsncHJlUnVuJ10uc2hpZnQoKSk7Ci0gICAgfQotICB9Ci0gIGNhbGxSdW50
aW1lQ2FsbGJhY2tzKF9fQVRQUkVSVU5fXyk7Ci19Ci1mdW5jdGlvbiBlbnN1cmVJbml0UnVudGlt
ZSgpIHsKLSAgaWYgKHJ1bnRpbWVJbml0aWFsaXplZCkgcmV0dXJuOwotICBydW50aW1lSW5pdGlh
bGl6ZWQgPSB0cnVlOwotICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUSU5JVF9fKTsKLX0KLWZ1
bmN0aW9uIHByZU1haW4oKSB7Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRNQUlOX18pOwot
fQotZnVuY3Rpb24gZXhpdFJ1bnRpbWUoKSB7Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRF
WElUX18pOwotfQotZnVuY3Rpb24gcG9zdFJ1bigpIHsKLSAgLy8gY29tcGF0aWJpbGl0eSAtIG1l
cmdlIGluIGFueXRoaW5nIGZyb20gTW9kdWxlWydwb3N0UnVuJ10gYXQgdGhpcyB0aW1lCi0gIGlm
IChNb2R1bGVbJ3Bvc3RSdW4nXSkgewotICAgIGlmICh0eXBlb2YgTW9kdWxlWydwb3N0UnVuJ10g
PT0gJ2Z1bmN0aW9uJykgTW9kdWxlWydwb3N0UnVuJ10gPSBbTW9kdWxlWydwb3N0UnVuJ11dOwot
ICAgIHdoaWxlIChNb2R1bGVbJ3Bvc3RSdW4nXS5sZW5ndGgpIHsKLSAgICAgIGFkZE9uUG9zdFJ1
bihNb2R1bGVbJ3Bvc3RSdW4nXS5zaGlmdCgpKTsKLSAgICB9Ci0gIH0KLSAgY2FsbFJ1bnRpbWVD
YWxsYmFja3MoX19BVFBPU1RSVU5fXyk7Ci19Ci1mdW5jdGlvbiBhZGRPblByZVJ1bihjYikgewot
ICBfX0FUUFJFUlVOX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uUHJlUnVuJ10gPSBN
b2R1bGUuYWRkT25QcmVSdW4gPSBhZGRPblByZVJ1bjsKLWZ1bmN0aW9uIGFkZE9uSW5pdChjYikg
ewotICBfX0FUSU5JVF9fLnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPbkluaXQnXSA9IE1v
ZHVsZS5hZGRPbkluaXQgPSBhZGRPbkluaXQ7Ci1mdW5jdGlvbiBhZGRPblByZU1haW4oY2IpIHsK
LSAgX19BVE1BSU5fXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25QcmVNYWluJ10gPSBN
b2R1bGUuYWRkT25QcmVNYWluID0gYWRkT25QcmVNYWluOwotZnVuY3Rpb24gYWRkT25FeGl0KGNi
KSB7Ci0gIF9fQVRFWElUX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uRXhpdCddID0g
TW9kdWxlLmFkZE9uRXhpdCA9IGFkZE9uRXhpdDsKLWZ1bmN0aW9uIGFkZE9uUG9zdFJ1bihjYikg
ewotICBfX0FUUE9TVFJVTl9fLnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPblBvc3RSdW4n
XSA9IE1vZHVsZS5hZGRPblBvc3RSdW4gPSBhZGRPblBvc3RSdW47Ci0vLyBUb29scwotLy8gVGhp
cyBwcm9jZXNzZXMgYSBKUyBzdHJpbmcgaW50byBhIEMtbGluZSBhcnJheSBvZiBudW1iZXJzLCAw
LXRlcm1pbmF0ZWQuCi0vLyBGb3IgTExWTS1vcmlnaW5hdGluZyBzdHJpbmdzLCBzZWUgcGFyc2Vy
LmpzOnBhcnNlTExWTVN0cmluZyBmdW5jdGlvbgotZnVuY3Rpb24gaW50QXJyYXlGcm9tU3RyaW5n
KHN0cmluZ3ksIGRvbnRBZGROdWxsLCBsZW5ndGggLyogb3B0aW9uYWwgKi8pIHsKLSAgdmFyIHJl
dCA9IChuZXcgUnVudGltZS5VVEY4UHJvY2Vzc29yKCkpLnByb2Nlc3NKU1N0cmluZyhzdHJpbmd5
KTsKLSAgaWYgKGxlbmd0aCkgewotICAgIHJldC5sZW5ndGggPSBsZW5ndGg7Ci0gIH0KLSAgaWYg
KCFkb250QWRkTnVsbCkgewotICAgIHJldC5wdXNoKDApOwotICB9Ci0gIHJldHVybiByZXQ7Ci19
Ci1Nb2R1bGVbJ2ludEFycmF5RnJvbVN0cmluZyddID0gaW50QXJyYXlGcm9tU3RyaW5nOwotZnVu
Y3Rpb24gaW50QXJyYXlUb1N0cmluZyhhcnJheSkgewotICB2YXIgcmV0ID0gW107Ci0gIGZvciAo
dmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKLSAgICB2YXIgY2hyID0gYXJyYXlb
aV07Ci0gICAgaWYgKGNociA+IDB4RkYpIHsKLSAgICAgIGNociAmPSAweEZGOwotICAgIH0KLSAg
ICByZXQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGNocikpOwotICB9Ci0gIHJldHVybiByZXQu
am9pbignJyk7Ci19Ci1Nb2R1bGVbJ2ludEFycmF5VG9TdHJpbmcnXSA9IGludEFycmF5VG9TdHJp
bmc7Ci0vLyBXcml0ZSBhIEphdmFzY3JpcHQgYXJyYXkgdG8gc29tZXdoZXJlIGluIHRoZSBoZWFw
Ci1mdW5jdGlvbiB3cml0ZVN0cmluZ1RvTWVtb3J5KHN0cmluZywgYnVmZmVyLCBkb250QWRkTnVs
bCkgewotICB2YXIgYXJyYXkgPSBpbnRBcnJheUZyb21TdHJpbmcoc3RyaW5nLCBkb250QWRkTnVs
bCk7Ci0gIHZhciBpID0gMDsKLSAgd2hpbGUgKGkgPCBhcnJheS5sZW5ndGgpIHsKLSAgICB2YXIg
Y2hyID0gYXJyYXlbaV07Ci0gICAgSEVBUDhbKCgoYnVmZmVyKSsoaSkpfDApXT1jaHIKLSAgICBp
ID0gaSArIDE7Ci0gIH0KLX0KLU1vZHVsZVsnd3JpdGVTdHJpbmdUb01lbW9yeSddID0gd3JpdGVT
dHJpbmdUb01lbW9yeTsKLWZ1bmN0aW9uIHdyaXRlQXJyYXlUb01lbW9yeShhcnJheSwgYnVmZmVy
KSB7Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKLSAgICBIRUFQ
OFsoKChidWZmZXIpKyhpKSl8MCldPWFycmF5W2ldOwotICB9Ci19Ci1Nb2R1bGVbJ3dyaXRlQXJy
YXlUb01lbW9yeSddID0gd3JpdGVBcnJheVRvTWVtb3J5OwotZnVuY3Rpb24gdW5TaWduKHZhbHVl
LCBiaXRzLCBpZ25vcmUsIHNpZykgewotICBpZiAodmFsdWUgPj0gMCkgewotICAgIHJldHVybiB2
YWx1ZTsKLSAgfQotICByZXR1cm4gYml0cyA8PSAzMiA/IDIqTWF0aC5hYnMoMSA8PCAoYml0cy0x
KSkgKyB2YWx1ZSAvLyBOZWVkIHNvbWUgdHJpY2tlcnksIHNpbmNlIGlmIGJpdHMgPT0gMzIsIHdl
IGFyZSByaWdodCBhdCB0aGUgbGltaXQgb2YgdGhlIGJpdHMgSlMgdXNlcyBpbiBiaXRzaGlmdHMK
LSAgICAgICAgICAgICAgICAgICAgOiBNYXRoLnBvdygyLCBiaXRzKSAgICAgICAgICsgdmFsdWU7
Ci19Ci1mdW5jdGlvbiByZVNpZ24odmFsdWUsIGJpdHMsIGlnbm9yZSwgc2lnKSB7Ci0gIGlmICh2
YWx1ZSA8PSAwKSB7Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9Ci0gIHZhciBoYWxmID0gYml0cyA8
PSAzMiA/IE1hdGguYWJzKDEgPDwgKGJpdHMtMSkpIC8vIGFicyBpcyBuZWVkZWQgaWYgYml0cyA9
PSAzMgotICAgICAgICAgICAgICAgICAgICAgICAgOiBNYXRoLnBvdygyLCBiaXRzLTEpOwotICBp
ZiAodmFsdWUgPj0gaGFsZiAmJiAoYml0cyA8PSAzMiB8fCB2YWx1ZSA+IGhhbGYpKSB7IC8vIGZv
ciBodWdlIHZhbHVlcywgd2UgY2FuIGhpdCB0aGUgcHJlY2lzaW9uIGxpbWl0IGFuZCBhbHdheXMg
Z2V0IHRydWUgaGVyZS4gc28gZG9uJ3QgZG8gdGhhdAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCwgaW4gZ2VuZXJhbCB0aGVyZSBp
cyBubyBwZXJmZWN0IHNvbHV0aW9uIGhlcmUuIFdpdGggNjQtYml0IGludHMsIHdlIGdldCByb3Vu
ZGluZyBhbmQgZXJyb3JzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gVE9ETzogSW4gaTY0IG1vZGUgMSwgcmVzaWduIHRoZSB0d28gcGFy
dHMgc2VwYXJhdGVseSBhbmQgc2FmZWx5Ci0gICAgdmFsdWUgPSAtMipoYWxmICsgdmFsdWU7IC8v
IENhbm5vdCBiaXRzaGlmdCBoYWxmLCBhcyBpdCBtYXkgYmUgYXQgdGhlIGxpbWl0IG9mIHRoZSBi
aXRzIEpTIHVzZXMgaW4gYml0c2hpZnRzCi0gIH0KLSAgcmV0dXJuIHZhbHVlOwotfQotaWYgKCFN
YXRoWydpbXVsJ10pIE1hdGhbJ2ltdWwnXSA9IGZ1bmN0aW9uKGEsIGIpIHsKLSAgdmFyIGFoICA9
IGEgPj4+IDE2OwotICB2YXIgYWwgPSBhICYgMHhmZmZmOwotICB2YXIgYmggID0gYiA+Pj4gMTY7
Ci0gIHZhciBibCA9IGIgJiAweGZmZmY7Ci0gIHJldHVybiAoYWwqYmwgKyAoKGFoKmJsICsgYWwq
YmgpIDw8IDE2KSl8MDsKLX07Ci1NYXRoLmltdWwgPSBNYXRoWydpbXVsJ107Ci0vLyBBIGNvdW50
ZXIgb2YgZGVwZW5kZW5jaWVzIGZvciBjYWxsaW5nIHJ1bigpLiBJZiB3ZSBuZWVkIHRvCi0vLyBk
byBhc3luY2hyb25vdXMgd29yayBiZWZvcmUgcnVubmluZywgaW5jcmVtZW50IHRoaXMgYW5kCi0v
LyBkZWNyZW1lbnQgaXQuIEluY3JlbWVudGluZyBtdXN0IGhhcHBlbiBpbiBhIHBsYWNlIGxpa2UK
LS8vIFBSRV9SVU5fQURESVRJT05TICh1c2VkIGJ5IGVtY2MgdG8gYWRkIGZpbGUgcHJlbG9hZGlu
ZykuCi0vLyBOb3RlIHRoYXQgeW91IGNhbiBhZGQgZGVwZW5kZW5jaWVzIGluIHByZVJ1biwgZXZl
biB0aG91Z2gKLS8vIGl0IGhhcHBlbnMgcmlnaHQgYmVmb3JlIHJ1biAtIHJ1biB3aWxsIGJlIHBv
c3Rwb25lZCB1bnRpbAotLy8gdGhlIGRlcGVuZGVuY2llcyBhcmUgbWV0LgotdmFyIHJ1bkRlcGVu
ZGVuY2llcyA9IDA7Ci12YXIgcnVuRGVwZW5kZW5jeVRyYWNraW5nID0ge307Ci12YXIgY2FsbGVk
SW5pdCA9IGZhbHNlLCBjYWxsZWRSdW4gPSBmYWxzZTsKLXZhciBydW5EZXBlbmRlbmN5V2F0Y2hl
ciA9IG51bGw7Ci1mdW5jdGlvbiBhZGRSdW5EZXBlbmRlbmN5KGlkKSB7Ci0gIHJ1bkRlcGVuZGVu
Y2llcysrOwotICBpZiAoTW9kdWxlWydtb25pdG9yUnVuRGVwZW5kZW5jaWVzJ10pIHsKLSAgICBN
b2R1bGVbJ21vbml0b3JSdW5EZXBlbmRlbmNpZXMnXShydW5EZXBlbmRlbmNpZXMpOwotICB9Ci0g
IGlmIChpZCkgewotICAgIGFzc2VydCghcnVuRGVwZW5kZW5jeVRyYWNraW5nW2lkXSk7Ci0gICAg
cnVuRGVwZW5kZW5jeVRyYWNraW5nW2lkXSA9IDE7Ci0gIH0gZWxzZSB7Ci0gICAgTW9kdWxlLnBy
aW50RXJyKCd3YXJuaW5nOiBydW4gZGVwZW5kZW5jeSBhZGRlZCB3aXRob3V0IElEJyk7Ci0gIH0K
LX0KLU1vZHVsZVsnYWRkUnVuRGVwZW5kZW5jeSddID0gYWRkUnVuRGVwZW5kZW5jeTsKLWZ1bmN0
aW9uIHJlbW92ZVJ1bkRlcGVuZGVuY3koaWQpIHsKLSAgcnVuRGVwZW5kZW5jaWVzLS07Ci0gIGlm
IChNb2R1bGVbJ21vbml0b3JSdW5EZXBlbmRlbmNpZXMnXSkgewotICAgIE1vZHVsZVsnbW9uaXRv
clJ1bkRlcGVuZGVuY2llcyddKHJ1bkRlcGVuZGVuY2llcyk7Ci0gIH0KLSAgaWYgKGlkKSB7Ci0g
ICAgYXNzZXJ0KHJ1bkRlcGVuZGVuY3lUcmFja2luZ1tpZF0pOwotICAgIGRlbGV0ZSBydW5EZXBl
bmRlbmN5VHJhY2tpbmdbaWRdOwotICB9IGVsc2UgewotICAgIE1vZHVsZS5wcmludEVycignd2Fy
bmluZzogcnVuIGRlcGVuZGVuY3kgcmVtb3ZlZCB3aXRob3V0IElEJyk7Ci0gIH0KLSAgaWYgKHJ1
bkRlcGVuZGVuY2llcyA9PSAwKSB7Ci0gICAgaWYgKHJ1bkRlcGVuZGVuY3lXYXRjaGVyICE9PSBu
dWxsKSB7Ci0gICAgICBjbGVhckludGVydmFsKHJ1bkRlcGVuZGVuY3lXYXRjaGVyKTsKLSAgICAg
IHJ1bkRlcGVuZGVuY3lXYXRjaGVyID0gbnVsbDsKLSAgICB9IAotICAgIC8vIElmIHJ1biBoYXMg
bmV2ZXIgYmVlbiBjYWxsZWQsIGFuZCB3ZSBzaG91bGQgY2FsbCBydW4gKElOVk9LRV9SVU4gaXMg
dHJ1ZSwgYW5kIE1vZHVsZS5ub0luaXRpYWxSdW4gaXMgbm90IGZhbHNlKQotICAgIGlmICghY2Fs
bGVkUnVuICYmIHNob3VsZFJ1bk5vdykgcnVuKCk7Ci0gIH0KLX0KLU1vZHVsZVsncmVtb3ZlUnVu
RGVwZW5kZW5jeSddID0gcmVtb3ZlUnVuRGVwZW5kZW5jeTsKLU1vZHVsZVsicHJlbG9hZGVkSW1h
Z2VzIl0gPSB7fTsgLy8gbWFwcyB1cmwgdG8gaW1hZ2UgZGF0YQotTW9kdWxlWyJwcmVsb2FkZWRB
dWRpb3MiXSA9IHt9OyAvLyBtYXBzIHVybCB0byBhdWRpbyBkYXRhCi1mdW5jdGlvbiBsb2FkTWVt
b3J5SW5pdGlhbGl6ZXIoZmlsZW5hbWUpIHsKLSAgZnVuY3Rpb24gYXBwbHlEYXRhKGRhdGEpIHsK
LSAgICBIRUFQVTguc2V0KGRhdGEsIFNUQVRJQ19CQVNFKTsKLSAgfQotICAvLyBhbHdheXMgZG8g
dGhpcyBhc3luY2hyb25vdXNseSwgdG8ga2VlcCBzaGVsbCBhbmQgd2ViIGFzIHNpbWlsYXIgYXMg
cG9zc2libGUKLSAgYWRkT25QcmVSdW4oZnVuY3Rpb24oKSB7Ci0gICAgaWYgKEVOVklST05NRU5U
X0lTX05PREUgfHwgRU5WSVJPTk1FTlRfSVNfU0hFTEwpIHsKLSAgICAgIGFwcGx5RGF0YShNb2R1
bGVbJ3JlYWRCaW5hcnknXShmaWxlbmFtZSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICBCcm93c2Vy
LmFzeW5jTG9hZChmaWxlbmFtZSwgZnVuY3Rpb24oZGF0YSkgewotICAgICAgICBhcHBseURhdGEo
ZGF0YSk7Ci0gICAgICB9LCBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIHRocm93ICdjb3VsZCBu
b3QgbG9hZCBtZW1vcnkgaW5pdGlhbGl6ZXIgJyArIGZpbGVuYW1lOwotICAgICAgfSk7Ci0gICAg
fQotICB9KTsKLX0KLS8vID09PSBCb2R5ID09PQotU1RBVElDX0JBU0UgPSA4OwotU1RBVElDVE9Q
ID0gU1RBVElDX0JBU0UgKyAxNjM5MjsKLXZhciBfc3Rkb3V0OwotdmFyIF9zdGRpbjsKLXZhciBf
c3RkZXJyOwotLyogZ2xvYmFsIGluaXRpYWxpemVycyAqLyBfX0FUSU5JVF9fLnB1c2goeyBmdW5j
OiBmdW5jdGlvbigpIHsgcnVuUG9zdFNldHMoKSB9IH0seyBmdW5jOiBmdW5jdGlvbigpIHsgX19H
TE9CQUxfX0lfYSgpIH0gfSx7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBfX0dMT0JBTF9fSV9hOCgpIH0g
fSk7Ci12YXIgX19fZnNtdTg7Ci12YXIgX19fZHNvX2hhbmRsZTsKLXZhciBfX1pUVk4xMF9fY3h4
YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRTsKLXZhciBfX1pUVk4xMF9fY3h4YWJpdjExN19f
Y2xhc3NfdHlwZV9pbmZvRTsKLXZhciBfX1pOU3QzX18xMTJfX3JzX2RlZmF1bHREMUV2OwotdmFy
IF9fWk5TdDEzcnVudGltZV9lcnJvckMxRVBLYzsKLXZhciBfX1pOU3QxM3J1bnRpbWVfZXJyb3JE
MUV2OwotdmFyIF9fWk5TdDEybGVuZ3RoX2Vycm9yRDFFdjsKLXZhciBfX1pOU3QzX18xNmxvY2Fs
ZUMxRXY7Ci12YXIgX19aTlN0M19fMTZsb2NhbGVDMUVSS1MwXzsKLXZhciBfX1pOU3QzX18xNmxv
Y2FsZUQxRXY7Ci12YXIgX19aTlN0OGJhZF9jYXN0QzFFdjsKLXZhciBfX1pOU3Q4YmFkX2Nhc3RE
MUV2OwotdmFyIF9zdGRvdXQgPSBfc3Rkb3V0PWFsbG9jYXRlKFswLDAsMCwwLDAsMCwwLDBdLCAi
aTgiLCBBTExPQ19TVEFUSUMpOwotdmFyIF9zdGRpbiA9IF9zdGRpbj1hbGxvY2F0ZShbMCwwLDAs
MCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLXZhciBfc3RkZXJyID0gX3N0ZGVycj1h
bGxvY2F0ZShbMCwwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLV9fWlRWTjEw
X19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FPWFsbG9jYXRlKFswLDAsMCwwLDIwMCwz
NywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci1fX1pU
Vk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRT1hbGxvY2F0ZShbMCwwLDAsMCwyMTYs
MzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOwotLyog
bWVtb3J5IGluaXRpYWxpemVyICovIGFsbG9jYXRlKFswLDAsMCwwLDAsMCwzNiw2NCwwLDAsMCww
LDAsMCw4OSw2NCwwLDAsMCwwLDAsMTM2LDE5NSw2NCwwLDAsMCwwLDEzMiwyMTUsMTUxLDY1LDAs
MTI4LDIyNCw1NSwxMjEsMTk1LDY1LDY3LDIzLDExMCw1LDE4MSwxODEsMTg0LDE0Nyw3MCwyNDUs
MjQ5LDYzLDIzMywzLDc5LDU2LDc3LDUwLDI5LDQ4LDI0OSw3MiwxMTksMTMwLDkwLDYwLDE5MSwx
MTUsMTI3LDIyMSw3OSwyMSwxMTcsNzQsMTE3LDEwOCwwLDAsMCwwLDAsNzQsMTE3LDExMCwwLDAs
MCwwLDAsNjUsMTEyLDExNCwwLDAsMCwwLDAsNzcsOTcsMTE0LDAsMCwwLDAsMCw3MCwxMDEsOTgs
MCwwLDAsMCwwLDc0LDk3LDExMCwwLDAsMCwwLDAsNjgsMTAxLDk5LDEwMSwxMDksOTgsMTAxLDEx
NCwwLDAsMCwwLDAsMCwwLDAsNzgsMTExLDExOCwxMDEsMTA5LDk4LDEwMSwxMTQsMCwwLDAsMCww
LDAsMCwwLDc5LDk5LDExNiwxMTEsOTgsMTAxLDExNCwwLDgzLDEwMSwxMTIsMTE2LDEwMSwxMDks
OTgsMTAxLDExNCwwLDAsMCwwLDAsMCwwLDExNywxMTAsMTE1LDExNywxMTIsMTEyLDExMSwxMTQs
MTE2LDEwMSwxMDAsMzIsMTA4LDExMSw5OSw5NywxMDgsMTAxLDMyLDEwMiwxMTEsMTE0LDMyLDEx
NSwxMTYsOTcsMTEwLDEwMCw5NywxMTQsMTAwLDMyLDEwNSwxMTAsMTEyLDExNywxMTYsMCwwLDAs
NjUsMTE3LDEwMywxMTcsMTE1LDExNiwwLDAsNzQsMTE3LDEwOCwxMjEsMCwwLDAsMCw3NCwxMTcs
MTEwLDEwMSwwLDAsMCwwLDc3LDk3LDEyMSwwLDAsMCwwLDAsNjUsMTEyLDExNCwxMDUsMTA4LDAs
MCwwLDc3LDk3LDExNCw5OSwxMDQsMCwwLDAsNzAsMTAxLDk4LDExNCwxMTcsOTcsMTE0LDEyMSww
LDAsMCwwLDAsMCwwLDAsNzQsOTcsMTEwLDExNyw5NywxMTQsMTIxLDAsNjgsMCwwLDAsMTAxLDAs
MCwwLDk5LDAsMCwwLDAsMCwwLDAsNzgsMCwwLDAsMTExLDAsMCwwLDExOCwwLDAsMCwwLDAsMCww
LDc5LDAsMCwwLDk5LDAsMCwwLDExNiwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDEwMSwwLDAsMCwx
MTIsMCwwLDAsMCwwLDAsMCw5OCw5NywxMTUsMTA1LDk5LDk1LDExNSwxMTYsMTE0LDEwNSwxMTAs
MTAzLDAsMCwwLDAsNjUsMCwwLDAsMTE3LDAsMCwwLDEwMywwLDAsMCwwLDAsMCwwLDc0LDAsMCww
LDExNywwLDAsMCwxMDgsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCwxMTcsMCwwLDAsMTEwLDAsMCww
LDAsMCwwLDAsNzcsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAsMTEy
LDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDc3LDAsMCwwLDk3LDAsMCwwLDExNCwwLDAsMCwwLDAs
MCwwLDcwLDAsMCwwLDEwMSwwLDAsMCw5OCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDk3LDAsMCww
LDExMCwwLDAsMCwwLDAsMCwwLDY4LDAsMCwwLDEwMSwwLDAsMCw5OSwwLDAsMCwxMDEsMCwwLDAs
MTA5LDAsMCwwLDk4LDAsMCwwLDEwMSwwLDAsMCwxMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc4
LDAsMCwwLDExMSwwLDAsMCwxMTgsMCwwLDAsMTAxLDAsMCwwLDEwOSwwLDAsMCw5OCwwLDAsMCwx
MDEsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3OSwwLDAsMCw5OSwwLDAsMCwxMTYs
MCwwLDAsMTExLDAsMCwwLDk4LDAsMCwwLDEwMSwwLDAsMCwxMTQsMCwwLDAsMCwwLDAsMCw4Myww
LDAsMCwxMDEsMCwwLDAsMTEyLDAsMCwwLDExNiwwLDAsMCwxMDEsMCwwLDAsMTA5LDAsMCwwLDk4
LDAsMCwwLDEwMSwwLDAsMCwxMTQsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCwxMTcsMCwwLDAsMTAz
LDAsMCwwLDExNywwLDAsMCwxMTUsMCwwLDAsMTE2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3NCww
LDAsMCwxMTcsMCwwLDAsMTA4LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzQsMCww
LDAsMTE3LDAsMCwwLDExMCwwLDAsMCwxMDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY1LDAsMCww
LDExMiwwLDAsMCwxMTQsMCwwLDAsMTA1LDAsMCwwLDEwOCwwLDAsMCwwLDAsMCwwLDc3LDAsMCww
LDk3LDAsMCwwLDExNCwwLDAsMCw5OSwwLDAsMCwxMDQsMCwwLDAsMCwwLDAsMCw3MCwwLDAsMCwx
MDEsMCwwLDAsOTgsMCwwLDAsMTE0LDAsMCwwLDExNywwLDAsMCw5NywwLDAsMCwxMTQsMCwwLDAs
MTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCw5NywwLDAsMCwxMTAsMCwwLDAsMTE3
LDAsMCwwLDk3LDAsMCwwLDExNCwwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw4MCw3NywwLDAsMCww
LDAsMCw2NSw3NywwLDAsMCwwLDAsMCw4MCwwLDAsMCw3NywwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
NjUsMCwwLDAsNzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEwOCwxMTEsOTksOTcsMTA4LDEwMSwz
MiwxMTAsMTExLDExNiwzMiwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCwwLDAs
MCwwLDM3LDAsMCwwLDczLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4LDAsMCww
LDM3LDAsMCwwLDgzLDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDExMiwwLDAsMCwwLDAsMCwwLDM3
LDczLDU4LDM3LDc3LDU4LDM3LDgzLDMyLDM3LDExMiwwLDAsMCwwLDAsMzcsMCwwLDAsOTcsMCww
LDAsMzIsMCwwLDAsMzcsMCwwLDAsOTgsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsMTAwLDAsMCww
LDMyLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4
LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDg5LDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwzNyw5NywzMiwzNyw5OCwzMiwzNywxMDAsMzIsMzcsNzIsNTgsMzcsNzcsNTgs
MzcsODMsMzIsMzcsODksMCwwLDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAs
MCw3NywwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw4MywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzcs
NzIsNTgsMzcsNzcsNTgsMzcsODMsMCwwLDAsMCwwLDAsMCwwLDExNSwxMTYsMTAwLDU4LDU4LDk4
LDk3LDEwMCw5NSw5NywxMDgsMTA4LDExMSw5OSwwLDAsMzcsMCwwLDAsMTA5LDAsMCwwLDQ3LDAs
MCwwLDM3LDAsMCwwLDEwMCwwLDAsMCw0NywwLDAsMCwzNywwLDAsMCwxMjEsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDM3LDEwOSw0NywzNywxMDAsNDcsMzcsMTIxLDAsMCwwLDAsMCwwLDAsMCwxMDIs
MCwwLDAsOTcsMCwwLDAsMTA4LDAsMCwwLDExNSwwLDAsMCwxMDEsMCwwLDAsMCwwLDAsMCwxMDIs
OTcsMTA4LDExNSwxMDEsMCwwLDAsMTE2LDAsMCwwLDExNCwwLDAsMCwxMTcsMCwwLDAsMTAxLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwxMTYsMTE0LDExNywxMDEsMCwwLDAsMCw1OCwzMiwwLDAsMCww
LDAsMCwxMDUsMTExLDExNSw5NSw5OCw5NywxMTUsMTAxLDU4LDU4LDk5LDEwOCwxMDEsOTcsMTE0
LDAsMzcsMTEyLDAsMCwwLDAsMCwwLDExNSwxMTYsMTAwLDU4LDU4LDk4LDk3LDEwMCw5NSw5OSw5
NywxMTUsMTE2LDAsMCwwLDY3LDAsMCwwLDAsMCwwLDAsMTE4LDEwMSw5OSwxMTYsMTExLDExNCww
LDAsMzcsNDYsNDgsNzYsMTAyLDAsMCwwLDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTAzLDEwMSwx
MTYsMzIsMTAxLDExNCwxMTQsMTExLDExNCwwLDgzLDk3LDExNiwwLDAsMCwwLDAsNzAsMTE0LDEw
NSwwLDAsMCwwLDAsODQsMTA0LDExNywwLDAsMCwwLDAsMzcsNzYsMTAyLDAsMCwwLDAsMCwxMDUs
MTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksMCwwLDAsMCwwLDAsMCwwLDg3LDEwMSwxMDAsMCww
LDAsMCwwLDg0LDExNywxMDEsMCwwLDAsMCwwLDc3LDExMSwxMTAsMCwwLDAsMCwwLDgzLDExNywx
MTAsMCwwLDAsMCwwLDgzLDk3LDExNiwxMTcsMTE0LDEwMCw5NywxMjEsMCwwLDAsMCwwLDAsMCww
LDcwLDExNCwxMDUsMTAwLDk3LDEyMSwwLDAsODQsMTA0LDExNywxMTQsMTE1LDEwMCw5NywxMjEs
MCwwLDAsMCwwLDAsMCwwLDg3LDEwMSwxMDAsMTEwLDEwMSwxMTUsMTAwLDk3LDEyMSwwLDAsMCww
LDAsMCwwLDg0LDExNywxMDEsMTE1LDEwMCw5NywxMjEsMCw3NywxMTEsMTEwLDEwMCw5NywxMjEs
MCwwLDgzLDExNywxMTAsMTAwLDk3LDEyMSwwLDAsODMsMCwwLDAsOTcsMCwwLDAsMTE2LDAsMCww
LDAsMCwwLDAsNzAsMCwwLDAsMTE0LDAsMCwwLDEwNSwwLDAsMCwwLDAsMCwwLDg0LDAsMCwwLDEw
NCwwLDAsMCwxMTcsMCwwLDAsMCwwLDAsMCw4NywwLDAsMCwxMDEsMCwwLDAsMTAwLDAsMCwwLDAs
MCwwLDAsODQsMCwwLDAsMTE3LDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDc3LDAsMCwwLDExMSww
LDAsMCwxMTAsMCwwLDAsMCwwLDAsMCwxMTcsMTEwLDExNSwxMTIsMTAxLDk5LDEwNSwxMDIsMTA1
LDEwMSwxMDAsMzIsMTA1LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk1LDk5LDk3LDExNiwx
MDEsMTAzLDExMSwxMTQsMTIxLDMyLDEwMSwxMTQsMTE0LDExMSwxMTQsMCwwLDAsMCwwLDgzLDAs
MCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMCwwLDAsMCw4MywwLDAsMCw5NywwLDAsMCwxMTYsMCww
LDAsMTE3LDAsMCwwLDExNCwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCw3MCwwLDAsMCwxMTQsMCwwLDAsMTA1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAs
MCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg0LDAsMCwwLDEwNCwwLDAsMCwxMTcsMCwwLDAs
MTE0LDAsMCwwLDExNSwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCw4NywwLDAsMCwxMDEsMCwwLDAsMTAwLDAsMCwwLDExMCwwLDAsMCwxMDEsMCwwLDAs
MTE1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw4NCwwLDAsMCwx
MTcsMCwwLDAsMTAxLDAsMCwwLDExNSwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCww
LDAsMCwwLDAsNzcsMCwwLDAsMTExLDAsMCwwLDExMCwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAs
MTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4MywwLDAsMCwxMTcsMCwwLDAsMTEwLDAsMCwwLDEw
MCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY4LDEwMSw5OSwwLDAs
MCwwLDAsNzgsMTExLDExOCwwLDAsMCwwLDAsNzksOTksMTE2LDAsMCwwLDAsMCw4MywxMDEsMTEy
LDAsMCwwLDAsMCw2NSwxMTcsMTAzLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3
LDAsMCwwLDAsMCwwLDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDAsMCwwLDAsMCwwLDM3
LDAsMCwwLDg5LDAsMCwwLDQ1LDAsMCwwLDM3LDAsMCwwLDEwOSwwLDAsMCw0NSwwLDAsMCwzNyww
LDAsMCwxMDAsMCwwLDAsMzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCww
LDAsNTgsMCwwLDAsMzcsMCwwLDAsODMsMCwwLDAsMzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAs
MzcsMCwwLDAsNzcsMCwwLDAsMCwwLDAsMCwzNywwLDAsMCw3MywwLDAsMCw1OCwwLDAsMCwzNyww
LDAsMCw3NywwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw4MywwLDAsMCwzMiwwLDAsMCwzNywwLDAs
MCwxMTIsMCwwLDAsMCwwLDAsMCwzNywwLDAsMCwxMDksMCwwLDAsNDcsMCwwLDAsMzcsMCwwLDAs
MTAwLDAsMCwwLDQ3LDAsMCwwLDM3LDAsMCwwLDEyMSwwLDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1
OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw4MywwLDAsMCwzNyw3
Miw1OCwzNyw3Nyw1OCwzNyw4MywzNyw3Miw1OCwzNyw3NywwLDAsMCwzNyw3Myw1OCwzNyw3Nyw1
OCwzNyw4MywzMiwzNywxMTIsMCwwLDAsMCwwLDM3LDg5LDQ1LDM3LDEwOSw0NSwzNywxMDAsMzcs
MTA5LDQ3LDM3LDEwMCw0NywzNywxMjEsMzcsNzIsNTgsMzcsNzcsNTgsMzcsODMsMzcsMCwwLDAs
MCwwLDAsMCwzNywxMTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMjQsMzEsMCwwLDMwLDAsMCwwLDEx
NiwwLDAsMCw5OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0MCwzMSww
LDAsMTk2LDAsMCwwLDE2NCwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMzIsMCwwLDcwLDAsMCwwLDYsMSwwLDAsMzgsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwxNiwzMiwwLDAsOTQsMCwwLDAsOCwwLDAsMCwxMTAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzMiwzMiwwLDAsOTQsMCwwLDAsMjAsMCwwLDAs
MTEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNTYsMzIsMCwwLDE2OCww
LDAsMCw4NCwwLDAsMCw0OCwwLDAsMCwyLDAsMCwwLDgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCw4OCwzMiwwLDAsMjMwLDAsMCwwLDE4NiwwLDAsMCw0OCwwLDAsMCw0LDAs
MCwwLDE0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTIwLDMyLDAsMCwx
NjIsMCwwLDAsMTg4LDAsMCwwLDQ4LDAsMCwwLDgsMCwwLDAsMTIsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzIsMCwwLDI1NCwwLDAsMCwxNDAsMCwwLDAsNDgsMCww
LDAsNiwwLDAsMCwxMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDU2LDMz
LDAsMCwyNTIsMCwwLDAsMTYsMCwwLDAsNDgsMCwwLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCw4OCwzMywwLDAsMTYwLDAsMCwwLDEwOCwwLDAsMCw0OCwwLDAsMCw0LDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyMCwzMywwLDAsMzgsMCwwLDAsMTEwLDAsMCwwLDQ4LDAs
MCwwLDEyMCwwLDAsMCw0LDAsMCwwLDMyLDAsMCwwLDYsMCwwLDAsMjAsMCwwLDAsNTYsMCwwLDAs
MiwwLDAsMCwyNDgsMjU1LDI1NSwyNTUsMTIwLDMzLDAsMCwyMiwwLDAsMCw4LDAsMCwwLDMyLDAs
MCwwLDEyLDAsMCwwLDIsMCwwLDAsMzAsMCwwLDAsMTI0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMTYwLDMzLDAsMCwyNDIsMCwwLDAsMjIyLDAsMCwwLDQ4LDAsMCwwLDIw
LDAsMCwwLDE2LDAsMCwwLDYwLDAsMCwwLDI2LDAsMCwwLDE4LDAsMCwwLDIsMCwwLDAsNCwwLDAs
MCwyNDgsMjU1LDI1NSwyNTUsMTYwLDMzLDAsMCw3MCwwLDAsMCwxMDQsMCwwLDAsMTE2LDAsMCww
LDEyMiwwLDAsMCw2NCwwLDAsMCw0NCwwLDAsMCw1NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDIwMCwzMywwLDAsNzgsMCwwLDAsMTkwLDAsMCwwLDQ4LDAsMCwwLDQ4LDAs
MCwwLDQwLDAsMCwwLDgsMCwwLDAsMzgsMCwwLDAsNDgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMjE2LDMzLDAsMCw1OCwwLDAsMCw2NCwwLDAsMCw0OCwwLDAsMCw0MiwwLDAsMCw4NCww
LDAsMCwxMiwwLDAsMCw1NCwwLDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIz
MiwzMywwLDAsMjQ2LDAsMCwwLDIsMCwwLDAsNDgsMCwwLDAsMjQsMCwwLDAsMzAsMCwwLDAsNjQs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsOCwzNCwwLDAsNDYsMCwwLDAsMjA4LDAsMCww
LDQ4LDAsMCwwLDM2LDAsMCwwLDE0LDAsMCwwLDE0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDQwLDM0LDAsMCwyMTAsMCwwLDAsMTEyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDQ4LDM0LDAsMCwyOCwwLDAsMCwxMzgsMCwwLDAsMzgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCw2NCwzNCwwLDAsNiwwLDAsMCwxNzQsMCwwLDAsNDgsMCwwLDAsOCwwLDAs
MCw2LDAsMCwwLDEyLDAsMCwwLDQsMCwwLDAsMTAsMCwwLDAsNCwwLDAsMCwyLDAsMCwwLDEyLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsOTYsMzQsMCwwLDk4LDAsMCwwLDE4
LDAsMCwwLDQ4LDAsMCwwLDIwLDAsMCwwLDI0LDAsMCwwLDM0LDAsMCwwLDIyLDAsMCwwLDIyLDAs
MCwwLDgsMCwwLDAsNiwwLDAsMCwxOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDEyOCwzNCwwLDAsNDAsMCwwLDAsMjQsMCwwLDAsNDgsMCwwLDAsNDgsMCwwLDAsNDYsMCww
LDAsMzgsMCwwLDAsNDAsMCwwLDAsMzAsMCwwLDAsNDQsMCwwLDAsMzYsMCwwLDAsNTQsMCwwLDAs
NTIsMCwwLDAsNTAsMCwwLDAsMjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYwLDM0
LDAsMCw1MiwwLDAsMCw0LDAsMCwwLDQ4LDAsMCwwLDc2LDAsMCwwLDcwLDAsMCwwLDY0LDAsMCww
LDY2LDAsMCwwLDU4LDAsMCwwLDY4LDAsMCwwLDYyLDAsMCwwLDI4LDAsMCwwLDc0LDAsMCwwLDcy
LDAsMCwwLDQyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE5MiwzNCwwLDAsNzQsMCww
LDAsOTIsMCwwLDAsNDgsMCwwLDAsMTYsMCwwLDAsMTIsMCwwLDAsMTIsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMjA4LDM0LDAsMCwyNiwwLDAsMCwxNzYsMCwwLDAsNDgsMCwwLDAsMjIs
MCwwLDAsMTQsMCwwLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMjQsMzQsMCww
LDIyOCwwLDAsMCwxMzAsMCwwLDAsNDgsMCwwLDAsMTQsMCwwLDAsNCwwLDAsMCwyMCwwLDAsMCwx
NiwwLDAsMCw2MiwwLDAsMCw0LDAsMCwwLDc2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMzUsMCwwLDE4MCwwLDAsMCw2MCwwLDAsMCw0OCwwLDAsMCwyLDAsMCwwLDgsMCwwLDAsOCww
LDAsMCwxMDYsMCwwLDAsOTYsMCwwLDAsMTgsMCwwLDAsOTQsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMzIsMzUsMCwwLDE4MCwwLDAsMCwxMzIsMCwwLDAsNDgsMCwwLDAsMTYsMCwwLDAs
NiwwLDAsMCwyLDAsMCwwLDEyNiwwLDAsMCw0NiwwLDAsMCwxMiwwLDAsMCwxOCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwzNSwwLDAsMTgwLDAsMCwwLDE1MiwwLDAsMCw0OCwwLDAs
MCwxMCwwLDAsMCwxMiwwLDAsMCwyNCwwLDAsMCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDk2LDM1LDAsMCwxODAsMCwwLDAsMzQsMCww
LDAsNDgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMTIsMzUsMCwwLDU2
LDAsMCwwLDE1NiwwLDAsMCw0OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDEyOCwzNSwwLDAsMTgwLDAsMCwwLDgwLDAsMCwwLDQ4LDAsMCwwLDIwLDAsMCwwLDIsMCwwLDAs
NCwwLDAsMCwxMCwwLDAsMCwxNiwwLDAsMCwyOCwwLDAsMCwyMiwwLDAsMCw2LDAsMCwwLDYsMCww
LDAsOCwwLDAsMCwxMCwwLDAsMCwxMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDE2MCwzNSwwLDAsNCwxLDAsMCwzNiwwLDAsMCw0OCwwLDAsMCwyLDAsMCwwLDQsMCwwLDAs
MTgsMCwwLDAsMzQsMCwwLDAsOCwwLDAsMCw2LDAsMCwwLDI2LDAsMCwwLDE0LDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjA4LDM1LDAsMCw2NiwwLDAsMCwyMTgsMCwwLDAs
NzgsMCwwLDAsMiwwLDAsMCwxNCwwLDAsMCwzMiwwLDAsMCw0LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMjI0LDM1LDAsMCwxODAsMCwwLDAsODYsMCwwLDAsNDgsMCwwLDAs
MTAsMCwwLDAsMTIsMCwwLDAsMjQsMCwwLDAsMzQsMCwwLDAsNzQsMCwwLDAsNiwwLDAsMCw2Niww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNDAsMzUsMCwwLDE4MCwwLDAsMCwyMzgsMCww
LDAsNDgsMCwwLDAsMTAsMCwwLDAsMTIsMCwwLDAsMjQsMCwwLDAsMzQsMCwwLDAsNzQsMCwwLDAs
NiwwLDAsMCw2NiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM2LDAsMCwxMjYsMCww
LDAsMjM0LDAsMCwwLDE2LDAsMCwwLDIyLDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDg4LDAsMCww
LDEwMCwwLDAsMCwzMCwwLDAsMCwyOCwwLDAsMCwyNiwwLDAsMCwyOCwwLDAsMCw0MCwwLDAsMCwy
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4LDM2LDAsMCwxMCwwLDAsMCwxMTgsMCww
LDAsNTgsMCwwLDAsMzgsMCwwLDAsMjgsMCwwLDAsNiwwLDAsMCw1MCwwLDAsMCw4NiwwLDAsMCwx
OCwwLDAsMCw2LDAsMCwwLDEwLDAsMCwwLDI0LDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDE2LDM2LDAsMCwxMDAsMCwwLDAsMTk0LDAsMCwwLDIsMCwwLDAs
MiwwLDAsMCwxNCwwLDAsMCwzMiwwLDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDQsMCwwLDAsMCwwLDAsMCw1NiwzNiwwLDAsNDQsMCwwLDAsMjA2LDAsMCwwLDI1MiwyNTUsMjU1
LDI1NSwyNTIsMjU1LDI1NSwyNTUsNTYsMzYsMCwwLDE0NiwwLDAsMCwxMjQsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDQsMCwwLDAsMCwwLDAsMCw4MCwzNiwwLDAsMjEyLDAsMCwwLDIzNiwwLDAsMCwy
NTIsMjU1LDI1NSwyNTUsMjUyLDI1NSwyNTUsMjU1LDgwLDM2LDAsMCwxMDYsMCwwLDAsMjAwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCw4LDAsMCwwLDAsMCwwLDAsMTA0LDM2LDAsMCw4OCwwLDAsMCw4
LDEsMCwwLDI0OCwyNTUsMjU1LDI1NSwyNDgsMjU1LDI1NSwyNTUsMTA0LDM2LDAsMCwxODIsMCww
LDAsMjMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4LDAsMCwwLDAsMCwwLDAsMTI4LDM2LDAsMCwx
MDQsMCwwLDAsMjA0LDAsMCwwLDI0OCwyNTUsMjU1LDI1NSwyNDgsMjU1LDI1NSwyNTUsMTI4LDM2
LDAsMCwxMzYsMCwwLDAsNTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDM2LDAs
MCwyMDIsMCwwLDAsMTg0LDAsMCwwLDM4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMTkyLDM2LDAsMCwyNDgsMCwwLDAsMjI2LDAsMCwwLDQsMCwwLDAsMjIsMCwwLDAsMTYs
MCwwLDAsMTAsMCwwLDAsNTgsMCwwLDAsMTAwLDAsMCwwLDMwLDAsMCwwLDI4LDAsMCwwLDI2LDAs
MCwwLDI4LDAsMCwwLDQwLDAsMCwwLDI2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIw
OCwzNiwwLDAsMTU0LDAsMCwwLDE3OCwwLDAsMCwzNCwwLDAsMCwzOCwwLDAsMCwyOCwwLDAsMCw2
LDAsMCwwLDkwLDAsMCwwLDg2LDAsMCwwLDE4LDAsMCwwLDYsMCwwLDAsMTAsMCwwLDAsMjQsMCww
LDAsMTYsMCwwLDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNywwLDAsMjIw
LDAsMCwwLDE0NCwwLDAsMCw0OCwwLDAsMCw2OCwwLDAsMCwxMTgsMCwwLDAsNDAsMCwwLDAsODAs
MCwwLDAsNiwwLDAsMCwyOCwwLDAsMCw1MiwwLDAsMCwyMCwwLDAsMCwzNiwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwzMiwzNywwLDAsMTAyLDAsMCwwLDU0LDAsMCwwLDQ4LDAsMCwwLDEx
MiwwLDAsMCw0LDAsMCwwLDY2LDAsMCwwLDc0LDAsMCwwLDc2LDAsMCwwLDIyLDAsMCwwLDExNCww
LDAsMCw1MCwwLDAsMCwxMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwzNywwLDAs
MjI0LDAsMCwwLDExNCwwLDAsMCw0OCwwLDAsMCwxNCwwLDAsMCw2MCwwLDAsMCw0NiwwLDAsMCw0
MiwwLDAsMCw3OCwwLDAsMCw1MiwwLDAsMCw5MiwwLDAsMCw1NiwwLDAsMCwzMiwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCw5NiwzNywwLDAsNzYsMCwwLDAsMTcyLDAsMCwwLDQ4LDAsMCww
LDEwMiwwLDAsMCwxMDgsMCwwLDAsMjYsMCwwLDAsNzIsMCwwLDAsMjQsMCwwLDAsMTgsMCwwLDAs
ODAsMCwwLDAsNzAsMCwwLDAsNjgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDM3
LDAsMCw5MCwwLDAsMCw2OCwwLDAsMCw2MiwwLDAsMCwyMiwwLDAsMCwxNiwwLDAsMCwxMCwwLDAs
MCw4OCwwLDAsMCwxMDAsMCwwLDAsMzAsMCwwLDAsNzIsMCwwLDAsODIsMCwwLDAsMTIsMCwwLDAs
NDAsMCwwLDAsMjAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTY4LDM3LDAsMCwxNCww
LDAsMCwyMTQsMCwwLDAsNjAsMCwwLDAsMzgsMCwwLDAsMjgsMCwwLDAsNiwwLDAsMCw1MCwwLDAs
MCw4NiwwLDAsMCwxOCwwLDAsMCw1NiwwLDAsMCwyNCwwLDAsMCw0LDAsMCwwLDE2LDAsMCwwLDEw
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE4NCwzNywwLDAsMjUwLDAsMCwwLDE5OCww
LDAsMCw2MiwwLDAsMCwxNTAsMCwwLDAsOCwwLDAsMCwyLDAsMCwwLDYsMCwwLDAsNCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsODMsMTE2LDU3LDExNiwxMjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwx
MTEsMCwwLDAsMCw4MywxMTYsNTcsMTAxLDEyMCw5OSwxMDEsMTEyLDExNiwxMDUsMTExLDExMCww
LDAsMCwwLDgzLDExNiw1Nyw5OCw5NywxMDAsOTUsOTcsMTA4LDEwOCwxMTEsOTksMCwwLDAsMCw4
MywxMTYsNTYsOTgsOTcsMTAwLDk1LDk5LDk3LDExNSwxMTYsMCwwLDAsMCwwLDgzLDExNiw0OSw1
MSwxMTQsMTE3LDExMCwxMTYsMTA1LDEwOSwxMDEsOTUsMTAxLDExNCwxMTQsMTExLDExNCwwLDAs
MCwwLDAsMCwwLDgzLDExNiw0OSw1MCwxMDgsMTAxLDExMCwxMDMsMTE2LDEwNCw5NSwxMDEsMTE0
LDExNCwxMTEsMTE0LDAsMCwwLDAsMCwwLDAsMCw4MywxMTYsNDksNDksMTA4LDExMSwxMDMsMTA1
LDk5LDk1LDEwMSwxMTQsMTE0LDExMSwxMTQsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsMTE2
LDEwNSwxMDksMTAxLDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUx
LDk1LDk1LDQ5LDU3LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYsNzMsMTE5LDc4
LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1
LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQs
OTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5
LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMDksMTExLDExMCwxMDEsMTIxLDk1LDEx
MiwxMTcsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5
LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDk5LDc4LDgz
LDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2
OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsMTA5LDExMSwx
MTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiw3MywxMTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwx
MTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDEx
MSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5Nywx
MDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1
LDk1LDQ5LDU3LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTAzLDEwMSwxMTYsNzMsOTksNzgsODMs
OTUsNDksNTcsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2
LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDEx
NCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCww
LDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5OCw5NywxMTUsMTA1LDk5LDk1LDEwNSwxMTEsMTE1
LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDEx
NiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDU3LDk4LDk3LDExNSwxMDUsOTksOTUsMTA1LDExMSwxMTUsNzMsOTksNzgsODMsOTUsNDks
NDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5
LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDk1LDk1LDExMCwxMTcs
MTA5LDk1LDExMiwxMTcsMTE2LDczLDExOSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUs
NDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUsMTEyLDExNywxMTYsNzMsOTksNjksNjksMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDk1LDk1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2
LDczLDExOSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDEx
NywxMDksOTUsMTAzLDEwMSwxMTYsNzMsOTksNjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDU2LDExNiwxMDUsMTA5LDEwMSw5NSwxMTIsMTE3LDExNiw3MywxMTksNzgsODMsOTUsNDks
NTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwx
MTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUs
MTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2LDEwNSwxMDksMTAxLDk1LDExMiwxMTcsMTE2LDcz
LDk5LDc4LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIs
OTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5
LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSw2
OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMTYsMTA1LDEwOSwxMDEsOTUs
MTAzLDEwMSwxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcs
MTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDExOSw3
OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMs
MTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDEx
NiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDExNiw3Myw5OSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1
LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYs
MTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcs
MTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNTYsMTEwLDExNywxMDksMTEyLDExNywxMTAsOTksMTE2LDczLDExOSw2OSw2OSww
LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMTAsMTE3LDEwOSwxMTIsMTE3LDExMCw5
OSwxMTYsNzMsOTksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTA5LDEw
MSwxMTUsMTE1LDk3LDEwMywxMDEsMTE1LDczLDExOSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1
MSw5NSw5NSw0OSw1NiwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEwMSwxMTUsNzMsOTksNjksNjks
MCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTA1LDExMSwxMTUsOTUsOTgsOTcsMTE1
LDEwMSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMDUsMTExLDEx
NSw5NSw5OCw5NywxMTUsMTAxLDU1LDEwMiw5NywxMDUsMTA4LDExNywxMTQsMTAxLDY5LDAsMCww
LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDExMCwxMTcsMTA5LDk1LDExMiwxMTcs
MTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwx
MTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3MywxMTksNzgsODMsOTUs
NDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2
OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDExMCwxMTcs
MTA5LDk1LDExMiwxMTcsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwx
MDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDcz
LDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDEx
NSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDU1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMDUs
MTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5Nywx
MTYsMTExLDExNCw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0
LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDU1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2LDczLDk5LDc4LDgz
LDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDEx
NiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5Nywx
MTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAs
MCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDk5LDExMSwxMDgsMTA4LDk3LDExNiwxMDEs
NzMsMTE5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEw
OCwxMDgsOTcsMTE2LDEwMSw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDU1LDk5LDExMSwxMDAsMTAxLDk5LDExOCwxMTYsNzMsMTE5LDk5LDQ5LDQ4LDk1LDEwOSw5
OCwxMTUsMTE2LDk3LDExNiwxMDEsOTUsMTE2LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3Myw5OSw5OSw0OSw0
OCw5NSwxMDksOTgsMTE1LDExNiw5NywxMTYsMTAxLDk1LDExNiw2OSw2OSwwLDAsMCwwLDAsMCww
LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDk5LDExMSwxMDAsMTAxLDk5LDExOCwxMTYsNzMs
NjgsMTE1LDk5LDQ5LDQ4LDk1LDEwOSw5OCwxMTUsMTE2LDk3LDExNiwxMDEsOTUsMTE2LDY5LDY5
LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDk5LDExMSwxMDAsMTAxLDk5
LDExOCwxMTYsNzMsNjgsMTA1LDk5LDQ5LDQ4LDk1LDEwOSw5OCwxMTUsMTE2LDk3LDExNiwxMDEs
OTUsMTE2LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU0LDEwOCwx
MTEsOTksOTcsMTA4LDEwMSw1MywxMDIsOTcsOTksMTAxLDExNiw2OSwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNTQsMTA4LDExMSw5OSw5NywxMDgsMTAxLDUzLDk1LDk1LDEwNSwxMDksMTEy
LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Myw5OSwxMTYsMTIxLDExMiwxMDEsNzMs
MTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDUzLDk5LDExNiwx
MjEsMTEyLDEwMSw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw1MCw0OCw5NSw5NSwxMTYsMTA1LDEwOSwxMDEsOTUsMTAzLDEwMSwxMTYsOTUsOTksOTUsMTE1
LDExNiwxMTEsMTE0LDk3LDEwMywxMDEsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDUwLDQ4LDk1LDk1LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDEx
Niw5NSw5OSw5NSwxMTUsMTE2LDExMSwxMTQsOTcsMTAzLDEwMSw3Myw5OSw2OSw2OSwwLDAsMCww
LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Nyw5NSw5NSwxMDUsMTExLDExNSwxMTYs
MTE0LDEwMSw5NywxMDksOTUsOTksOTcsMTE2LDEwMSwxMDMsMTExLDExNCwxMjEsNjksMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDU1LDk1LDk1LDExOSwxMDUsMTAwLDEwMSwxMTAsOTUs
MTAyLDExNCwxMTEsMTA5LDk1LDExNywxMTYsMTAyLDU2LDczLDc2LDEwNiw1MSw1MCw2OSw2OSw2
OSwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTQsOTUsOTUsMTEwLDk3LDEx
NCwxMTQsMTExLDExOSw5NSwxMTYsMTExLDk1LDExNywxMTYsMTAyLDU2LDczLDc2LDEwNiw1MSw1
MCw2OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Myw5OCw5
NywxMTUsMTA1LDk5LDk1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw3MywxMTks
NzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDcz
LDExOSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5
LDUzLDk4LDk3LDExNSwxMDUsOTksOTUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAy
LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2
LDExNSw3Myw5OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDQ5LDUyLDEwMSwxMTQsMTE0LDExMSwxMTQsOTUsOTksOTcsMTE2LDEwMSwxMDMsMTExLDEx
NCwxMjEsNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Miw5NSw5
NSwxMTUsMTA0LDk3LDExNCwxMDEsMTAwLDk1LDk5LDExMSwxMTcsMTEwLDExNiw2OSwwLDAsMCww
LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUyLDk1LDk1LDExMCwxMTcsMTA5LDk1
LDExMiwxMTcsMTE2LDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDEx
Niw1MSw5NSw5NSw0OSw0OSw1Miw5NSw5NSwxMTAsMTE3LDEwOSw5NSwxMDMsMTAxLDExNiw5NSw5
OCw5NywxMTUsMTAxLDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDks
NTEsMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywxMDEsMTE1LDk1LDk4LDk3LDExNSwxMDEsNjksMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTEsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMTEsMTE1LDEx
NiwxMTQsMTAxLDk3LDEwOSw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwx
MTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSwwLDAsNzgsODMsMTE2LDUx
LDk1LDk1LDQ5LDQ5LDUxLDk4LDk3LDExNSwxMDUsOTksOTUsMTExLDExNSwxMTYsMTE0LDEwMSw5
NywxMDksNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEw
NSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDks
NTEsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3MywxMTks
NzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDcz
LDExOSw2OSw2OSw2OSw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUxLDk4LDk3LDEx
NSwxMDUsOTksOTUsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksNzMsOTksNzgsODMsOTUsNDks
NDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5
LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTAsMTE1LDEyMSwxMTUsMTE2LDEwMSwx
MDksOTUsMTAxLDExNCwxMTQsMTExLDExNCw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5
LDUwLDk5LDExMSwxMDAsMTAxLDk5LDExOCwxMTYsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUwLDk1LDk1LDEwMCwxMTEsOTUsMTA5LDEwMSwxMTUsMTE1
LDk3LDEwMywxMDEsNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OSw5NSw5NSwxMTUs
MTE2LDEwMCwxMTEsMTE3LDExNiw5OCwxMTcsMTAyLDczLDExOSw2OSw2OSwwLDAsMCwwLDAsMCww
LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDExNSwxMTYsMTAwLDExMSwxMTcs
MTE2LDk4LDExNywxMDIsNzMsOTksNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5
NSw5NSw0OSw0OSw0OSw5NSw5NSwxMDksMTExLDExMCwxMDEsMTIxLDk1LDExMiwxMTcsMTE2LDcz
LDExOSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1
LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYsNzMsOTksNjksNjksMCwwLDAs
MCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OSw5NSw5NSwxMDksMTExLDExMCwx
MDEsMTIxLDk1LDEwMywxMDEsMTE2LDczLDExOSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTAzLDEw
MSwxMTYsNzMsOTksNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0
OSw0OCwxMDksMTExLDExMCwxMDEsMTIxLDExMiwxMTcsMTEwLDk5LDExNiw3MywxMTksNzYsOTgs
NDksNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCwxMDksMTEx
LDExMCwxMDEsMTIxLDExMiwxMTcsMTEwLDk5LDExNiw3MywxMTksNzYsOTgsNDgsNjksNjksNjks
MCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCwxMDksMTExLDExMCwxMDEsMTIx
LDExMiwxMTcsMTEwLDk5LDExNiw3Myw5OSw3Niw5OCw0OSw2OSw2OSw2OSwwLDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwxMjEsMTEyLDExNywxMTAs
OTksMTE2LDczLDk5LDc2LDk4LDQ4LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNDksNDgsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCww
LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDk5LDExNiwxMjEsMTEyLDEwMSw5NSw5OCw5
NywxMTUsMTAxLDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDk1LDk1LDEx
NiwxMDUsMTA5LDEwMSw5NSwxMTIsMTE3LDExNiw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5
NSw0OSw0OSw0OCw5NSw5NSwxMTUsMTE2LDEwMCwxMDUsMTEwLDk4LDExNywxMDIsNzMsMTE5LDY5
LDY5LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDk1LDk1LDExNSwxMTYsMTAwLDEwNSwx
MTAsOTgsMTE3LDEwMiw3Myw5OSw2OSw2OSwwLDc4LDQ5LDQ4LDk1LDk1LDk5LDEyMCwxMjAsOTcs
OTgsMTA1LDExOCw0OSw1MCw0OSw5NSw5NSwxMTgsMTA5LDEwNSw5NSw5OSwxMDgsOTcsMTE1LDEx
NSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDY5LDAsMCwwLDc4LDQ5LDQ4
LDk1LDk1LDk5LDEyMCwxMjAsOTcsOTgsMTA1LDExOCw0OSw1MCw0OCw5NSw5NSwxMTUsMTA1LDk1
LDk5LDEwOCw5NywxMTUsMTE1LDk1LDExNiwxMjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEs
NjksMCwwLDAsMCw3OCw0OSw0OCw5NSw5NSw5OSwxMjAsMTIwLDk3LDk4LDEwNSwxMTgsNDksNDks
NTUsOTUsOTUsOTksMTA4LDk3LDExNSwxMTUsOTUsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAs
MTAyLDExMSw2OSwwLDAsMCwwLDAsMCwwLDc4LDQ5LDQ4LDk1LDk1LDk5LDEyMCwxMjAsOTcsOTgs
MTA1LDExOCw0OSw0OSw1NCw5NSw5NSwxMTUsMTA0LDEwNSwxMDksOTUsMTE2LDEyMSwxMTIsMTAx
LDk1LDEwNSwxMTAsMTAyLDExMSw2OSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw0MCwyMCwwLDAs
MCwwLDAsMCw1NiwyMCwwLDAsMCwwLDAsMCw3MiwyMCwwLDAsMjE2LDMxLDAsMCwwLDAsMCwwLDAs
MCwwLDAsODgsMjAsMCwwLDIxNiwzMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDEwNCwyMCwwLDAsMjE2
LDMxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDIwLDAsMCwzMiwzMiwwLDAsMCwwLDAsMCwwLDAs
MCwwLDE1MiwyMCwwLDAsMjE2LDMxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTY4LDIwLDAsMCwwLDIw
LDAsMCwxOTIsMjAsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwyMjQsMzYs
MCwwLDAsMCwwLDAsMCwyMCwwLDAsOCwyMSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwy
LDAsMCwwLDIzMiwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCw4MCwyMSwwLDAsMCwwLDAsMCwyLDAs
MCwwLDk2LDM1LDAsMCwyLDAsMCwwLDI0MCwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxNTIsMjEs
MCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwyNDgsMzYsMCwwLDAsMCwwLDAs
MCwwLDAsMCwyMjQsMjEsMCwwLDQwLDM0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYsMjIsMCwwLDQw
LDM0LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDY0LDIyLDAsMCwwLDAsMCwwLDEsMCwwLDAsMzIsMzYs
MCwwLDAsMCwwLDAsMCwyMCwwLDAsODgsMjIsMCwwLDAsMCwwLDAsMSwwLDAsMCwzMiwzNiwwLDAs
MCwwLDAsMCwwLDIwLDAsMCwxMTIsMjIsMCwwLDAsMCwwLDAsMSwwLDAsMCw0MCwzNiwwLDAsMCww
LDAsMCwwLDIwLDAsMCwxMzYsMjIsMCwwLDAsMCwwLDAsMSwwLDAsMCw0MCwzNiwwLDAsMCwwLDAs
MCwwLDIwLDAsMCwxNjAsMjIsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwx
NDQsMzcsMCwwLDAsOCwwLDAsMCwyMCwwLDAsMjMyLDIyLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYs
MzUsMCwwLDIsMCwwLDAsMTQ0LDM3LDAsMCwwLDgsMCwwLDAsMjAsMCwwLDQ4LDIzLDAsMCwwLDAs
MCwwLDMsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgsMzIsMCwwLDIsMCwwLDAsMTkyLDM1LDAs
MCwwLDgsMCwwLDAsMjAsMCwwLDEyMCwyMywwLDAsMCwwLDAsMCwzLDAsMCwwLDk2LDM1LDAsMCwy
LDAsMCwwLDQ4LDMyLDAsMCwyLDAsMCwwLDIwMCwzNSwwLDAsMCw4LDAsMCwwLDAsMCwwLDE5Miwy
MywwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMTYsMjMsMCwwLDk2LDM1LDAsMCwwLDAs
MCwwLDAsMjAsMCwwLDI0MCwyMywwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCww
LDQ4LDM2LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDgsMjQsMCwwLDAsMCwwLDAsMiwwLDAsMCw5Niwz
NSwwLDAsMiwwLDAsMCw0OCwzNiwwLDAsMiwwLDAsMCwwLDAsMCwwLDMyLDI0LDAsMCwwLDAsMCww
LDU2LDI0LDAsMCwxNTIsMzYsMCwwLDAsMCwwLDAsMCwyMCwwLDAsODgsMjQsMCwwLDAsMCwwLDAs
MiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwyMTYsMzIsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTYw
LDI0LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMjQwLDMyLDAsMCwwLDAs
MCwwLDAsMjAsMCwwLDIzMiwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCww
LDgsMzMsMCwwLDAsMCwwLDAsMCwyMCwwLDAsNDgsMjUsMCwwLDAsMCwwLDAsMiwwLDAsMCw5Niwz
NSwwLDAsMiwwLDAsMCwzMiwzMywwLDAsMCwwLDAsMCwwLDAsMCwwLDEyMCwyNSwwLDAsOTYsMzUs
MCwwLDAsMCwwLDAsMCwwLDAsMCwxNDQsMjUsMCwwLDk2LDM1LDAsMCwwLDAsMCwwLDAsMjAsMCww
LDE2OCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE2OCwzNiwwLDAs
MiwwLDAsMCwwLDIwLDAsMCwyMDgsMjUsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiww
LDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMjQ4LDI1LDAsMCwwLDAsMCwwLDIsMCww
LDAsOTYsMzUsMCwwLDIsMCwwLDAsMTY4LDM2LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDMyLDI2LDAs
MCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTY4LDM2LDAsMCwyLDAsMCwwLDAs
MCwwLDAsNzIsMjYsMCwwLDI0LDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsOTYsMjYsMCwwLDk2LDM1
LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDEyMCwyNiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAs
MCwyLDAsMCwwLDEzNiwzNywwLDAsMiwwLDAsMCwwLDIwLDAsMCwxNDQsMjYsMCwwLDAsMCwwLDAs
MiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxMzYsMzcsMCwwLDIsMCwwLDAsMCwwLDAsMCwxNjgs
MjYsMCwwLDAsMCwwLDAsMjA4LDI2LDAsMCwwLDAsMCwwLDI0OCwyNiwwLDAsMTc2LDM2LDAsMCww
LDAsMCwwLDAsMCwwLDAsMjQsMjcsMCwwLDY0LDM1LDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMjcs
MCwwLDY0LDM1LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTA0LDI3LDAsMCwwLDAsMCwwLDE2MCwyNyww
LDAsMCwwLDAsMCwyMTYsMjcsMCwwLDAsMCwwLDAsMjQ4LDI3LDAsMCwwLDAsMCwwLDI0LDI4LDAs
MCwwLDAsMCwwLDU2LDI4LDAsMCwwLDAsMCwwLDg4LDI4LDAsMCwwLDIwLDAsMCwxMTIsMjgsMCww
LDAsMCwwLDAsMSwwLDAsMCwxODQsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwyMCwwLDAsMTYwLDI4
LDAsMCwwLDAsMCwwLDEsMCwwLDAsMjAwLDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMjAsMCwwLDIw
OCwyOCwwLDAsMCwwLDAsMCwxLDAsMCwwLDE4NCwzMiwwLDAsMywyNDQsMjU1LDI1NSwwLDIwLDAs
MCwwLDI5LDAsMCwwLDAsMCwwLDEsMCwwLDAsMjAwLDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMCww
LDAsNDgsMjksMCwwLDAsMzIsMCwwLDAsMCwwLDAsMCwwLDAsMCw3MiwyOSwwLDAsMCwwLDAsMCw5
NiwyOSwwLDAsMTYsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjAsMjksMCwwLDAsMzYsMCwwLDAs
MCwwLDAsMCwwLDAsMCwxNTIsMjksMCwwLDgsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwxODQsMjks
MCwwLDAsMCwwLDAsMjE2LDI5LDAsMCwwLDAsMCwwLDI0OCwyOSwwLDAsMCwwLDAsMCwyNCwzMCww
LDAsMCwyMCwwLDAsNTYsMzAsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwx
MjgsMzcsMCwwLDIsMCwwLDAsMCwyMCwwLDAsODgsMzAsMCwwLDAsMCwwLDAsMiwwLDAsMCw5Niwz
NSwwLDAsMiwwLDAsMCwxMjgsMzcsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMTIwLDMwLDAsMCwwLDAs
MCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTI4LDM3LDAsMCwyLDAsMCwwLDAsMjAsMCww
LDE1MiwzMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDEyOCwzNywwLDAs
MiwwLDAsMCwwLDAsMCwwLDE4NCwzMCwwLDAsMCwwLDAsMCwyMDgsMzAsMCwwLDAsMCwwLDAsMjMy
LDMwLDAsMCwwLDAsMCwwLDAsMzEsMCwwLDAsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwzMSww
LDAsOCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDQ4LDMxLDAsMCwyMTYsMzcsMCwwLDAsMCwwLDAs
MCwwLDAsMCw4OCwzMSwwLDAsMjE2LDM3LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDMxLDAsMCwy
MzIsMzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjgsMzEsMCwwLDIwOCwzMSwwLDAsMCwwLDAsMCwy
NTUsMjU1LDI1NSwyNTUsMCwwLDAsMCwyNTUsMjU1LDI1NSwyNTUsMCwwLDAsMCwyNTUsMjU1LDI1
NSwyNTUsMCwwLDAsMCw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw5Nyw5OCw5OSwxMDAs
MTAxLDEwMiw2NSw2Niw2Nyw2OCw2OSw3MCwxMjAsODgsNDMsNDUsMTEyLDgwLDEwNSw3MywxMTAs
NzgsMCwwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfTk9ORSwgUnVudGltZS5HTE9CQUxfQkFT
RSkKLXZhciB0ZW1wRG91YmxlUHRyID0gUnVudGltZS5hbGlnbk1lbW9yeShhbGxvY2F0ZSgxMiwg
Imk4IiwgQUxMT0NfU1RBVElDKSwgOCk7Ci1hc3NlcnQodGVtcERvdWJsZVB0ciAlIDggPT0gMCk7
Ci1mdW5jdGlvbiBjb3B5VGVtcEZsb2F0KHB0cikgeyAvLyBmdW5jdGlvbnMsIGJlY2F1c2UgaW5s
aW5pbmcgdGhpcyBjb2RlIGluY3JlYXNlcyBjb2RlIHNpemUgdG9vIG11Y2gKLSAgSEVBUDhbdGVt
cERvdWJsZVB0cl0gPSBIRUFQOFtwdHJdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzFdID0gSEVB
UDhbcHRyKzFdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzJdID0gSEVBUDhbcHRyKzJdOwotICBI
RUFQOFt0ZW1wRG91YmxlUHRyKzNdID0gSEVBUDhbcHRyKzNdOwotfQotZnVuY3Rpb24gY29weVRl
bXBEb3VibGUocHRyKSB7Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHJdID0gSEVBUDhbcHRyXTsKLSAg
SEVBUDhbdGVtcERvdWJsZVB0cisxXSA9IEhFQVA4W3B0cisxXTsKLSAgSEVBUDhbdGVtcERvdWJs
ZVB0cisyXSA9IEhFQVA4W3B0cisyXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0ciszXSA9IEhFQVA4
W3B0ciszXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cis0XSA9IEhFQVA4W3B0cis0XTsKLSAgSEVB
UDhbdGVtcERvdWJsZVB0cis1XSA9IEhFQVA4W3B0cis1XTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0
cis2XSA9IEhFQVA4W3B0cis2XTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cis3XSA9IEhFQVA4W3B0
cis3XTsKLX0KLSAgZnVuY3Rpb24gX2F0ZXhpdChmdW5jLCBhcmcpIHsKLSAgICAgIF9fQVRFWElU
X18udW5zaGlmdCh7IGZ1bmM6IGZ1bmMsIGFyZzogYXJnIH0pOwotICAgIH12YXIgX19fY3hhX2F0
ZXhpdD1fYXRleGl0OwotICBmdW5jdGlvbiBfbGx2bV91bXVsX3dpdGhfb3ZlcmZsb3dfaTMyKHgs
IHkpIHsKLSAgICAgIHggPSB4Pj4+MDsKLSAgICAgIHkgPSB5Pj4+MDsKLSAgICAgIHJldHVybiAo
KGFzbVsic2V0VGVtcFJldDAiXSh4KnkgPiA0Mjk0OTY3Mjk1KSwoeCp5KT4+PjApfDApOwotICAg
IH0KLSAgZnVuY3Rpb24gX19fZ3h4X3BlcnNvbmFsaXR5X3YwKCkgewotICAgIH0KLSAgZnVuY3Rp
b24gX19leGl0KHN0YXR1cykgewotICAgICAgLy8gdm9pZCBfZXhpdChpbnQgc3RhdHVzKTsKLSAg
ICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVu
Y3Rpb25zL2V4aXQuaHRtbAotICAgICAgTW9kdWxlLnByaW50KCdleGl0KCcgKyBzdGF0dXMgKyAn
KSBjYWxsZWQnKTsKLSAgICAgIE1vZHVsZVsnZXhpdCddKHN0YXR1cyk7Ci0gICAgfWZ1bmN0aW9u
IF9leGl0KHN0YXR1cykgewotICAgICAgX19leGl0KHN0YXR1cyk7Ci0gICAgfWZ1bmN0aW9uIF9f
WlN0OXRlcm1pbmF0ZXYoKSB7Ci0gICAgICBfZXhpdCgtMTIzNCk7Ci0gICAgfQotICBNb2R1bGVb
Il9tZW1jcHkiXSA9IF9tZW1jcHk7dmFyIF9sbHZtX21lbWNweV9wMGk4X3AwaThfaTMyPV9tZW1j
cHk7Ci0gIHZhciBfbG9nPU1hdGgubG9nOwotICB2YXIgX2Zsb29yPU1hdGguZmxvb3I7Ci0gIHZh
ciBjdGx6X2k4ID0gYWxsb2NhdGUoWzgsNyw2LDYsNSw1LDUsNSw0LDQsNCw0LDQsNCw0LDQsMywz
LDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIs
MiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOyAKLSAgTW9kdWxlWyJf
bGx2bV9jdGx6X2kzMiJdID0gX2xsdm1fY3Rsel9pMzI7Ci0gIGZ1bmN0aW9uIF9fWlN0MTh1bmNh
dWdodF9leGNlcHRpb252KCkgeyAvLyBzdGQ6OnVuY2F1Z2h0X2V4Y2VwdGlvbigpCi0gICAgICBy
ZXR1cm4gISFfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udi51bmNhdWdodF9leGNlcHRpb247Ci0g
ICAgfWZ1bmN0aW9uIF9fX2N4YV9iZWdpbl9jYXRjaChwdHIpIHsKLSAgICAgIF9fWlN0MTh1bmNh
dWdodF9leGNlcHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbi0tOwotICAgICAgcmV0dXJuIHB0cjsK
LSAgICB9Ci0gIGZ1bmN0aW9uIF9sbHZtX2VoX2V4Y2VwdGlvbigpIHsKLSAgICAgIHJldHVybiBI
RUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildOwotICAgIH0KLSAgZnVuY3Rpb24g
X19fY3hhX2ZyZWVfZXhjZXB0aW9uKHB0cikgewotICAgICAgdHJ5IHsKLSAgICAgICAgcmV0dXJu
IF9mcmVlKHB0cik7Ci0gICAgICB9IGNhdGNoKGUpIHsgLy8gWFhYIEZJWE1FCi0gICAgICB9Ci0g
ICAgfWZ1bmN0aW9uIF9fX2N4YV9lbmRfY2F0Y2goKSB7Ci0gICAgICBpZiAoX19fY3hhX2VuZF9j
YXRjaC5yZXRocm93bikgewotICAgICAgICBfX19jeGFfZW5kX2NhdGNoLnJldGhyb3duID0gZmFs
c2U7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIC8vIENsZWFyIHN0YXRlIGZsYWcu
Ci0gICAgICBhc21bJ3NldFRocmV3J10oMCk7Ci0gICAgICAvLyBDbGVhciB0eXBlLgotICAgICAg
SEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg0KSk+PjIpXT0wCi0gICAgICAvLyBD
YWxsIGRlc3RydWN0b3IgaWYgb25lIGlzIHJlZ2lzdGVyZWQgdGhlbiBjbGVhciBpdC4KLSAgICAg
IHZhciBwdHIgPSBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildOwotICAgICAg
dmFyIGRlc3RydWN0b3IgPSBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDgpKT4+
MildOwotICAgICAgaWYgKGRlc3RydWN0b3IpIHsKLSAgICAgICAgUnVudGltZS5keW5DYWxsKCd2
aScsIGRlc3RydWN0b3IsIFtwdHJdKTsKLSAgICAgICAgSEVBUDMyWygoKF9sbHZtX2VoX2V4Y2Vw
dGlvbi5idWYpKyg4KSk+PjIpXT0wCi0gICAgICB9Ci0gICAgICAvLyBGcmVlIHB0ciBpZiBpdCBp
c24ndCBudWxsLgotICAgICAgaWYgKHB0cikgewotICAgICAgICBfX19jeGFfZnJlZV9leGNlcHRp
b24ocHRyKTsKLSAgICAgICAgSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXT0w
Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV9yZXRocm93KCkgewotICAgICAgX19fY3hh
X2VuZF9jYXRjaC5yZXRocm93biA9IHRydWU7Ci0gICAgICB0aHJvdyBIRUFQMzJbKChfbGx2bV9l
aF9leGNlcHRpb24uYnVmKT4+MildICsgIiAtIEV4Y2VwdGlvbiBjYXRjaGluZyBpcyBkaXNhYmxl
ZCwgdGhpcyBleGNlcHRpb24gY2Fubm90IGJlIGNhdWdodC4gQ29tcGlsZSB3aXRoIC1zIERJU0FC
TEVfRVhDRVBUSU9OX0NBVENISU5HPTAgb3IgRElTQUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MiB0
byBjYXRjaC4iOzsKLSAgICB9Ci0gIE1vZHVsZVsiX21lbW1vdmUiXSA9IF9tZW1tb3ZlO3ZhciBf
bGx2bV9tZW1tb3ZlX3AwaThfcDBpOF9pMzI9X21lbW1vdmU7Ci0gIE1vZHVsZVsiX21lbXNldCJd
ID0gX21lbXNldDt2YXIgX2xsdm1fbWVtc2V0X3AwaThfaTY0PV9tZW1zZXQ7Ci0gIGZ1bmN0aW9u
IF9sbHZtX2xpZmV0aW1lX3N0YXJ0KCkge30KLSAgZnVuY3Rpb24gX2xsdm1fbGlmZXRpbWVfZW5k
KCkge30KLSAgZnVuY3Rpb24gX3B0aHJlYWRfbXV0ZXhfbG9jaygpIHt9Ci0gIGZ1bmN0aW9uIF9w
dGhyZWFkX211dGV4X3VubG9jaygpIHt9Ci0gIGZ1bmN0aW9uIF9fX2N4YV9ndWFyZF9hY3F1aXJl
KHZhcmlhYmxlKSB7Ci0gICAgICBpZiAoIUhFQVA4Wyh2YXJpYWJsZSldKSB7IC8vIGlnbm9yZSBT
QUZFX0hFQVAgc3R1ZmYgYmVjYXVzZSBsbHZtIG1peGVzIGk2NCBhbmQgaTggaGVyZQotICAgICAg
ICBIRUFQOFsodmFyaWFibGUpXT0xOwotICAgICAgICByZXR1cm4gMTsKLSAgICAgIH0KLSAgICAg
IHJldHVybiAwOwotICAgIH0KLSAgZnVuY3Rpb24gX19fY3hhX2d1YXJkX3JlbGVhc2UoKSB7fQot
ICBmdW5jdGlvbiBfcHRocmVhZF9jb25kX2Jyb2FkY2FzdCgpIHsKLSAgICAgIHJldHVybiAwOwot
ICAgIH0KLSAgZnVuY3Rpb24gX3B0aHJlYWRfY29uZF93YWl0KCkgewotICAgICAgcmV0dXJuIDA7
Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uKHNpemUpIHsKLSAg
ICAgIHJldHVybiBfbWFsbG9jKHNpemUpOwotICAgIH0KLSAgZnVuY3Rpb24gX19fY3hhX2lzX251
bWJlcl90eXBlKHR5cGUpIHsKLSAgICAgIHZhciBpc051bWJlciA9IGZhbHNlOwotICAgICAgdHJ5
IHsgaWYgKHR5cGUgPT0gX19aVElpKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAg
ICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWopIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30K
LSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJbCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2go
ZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEltKSBpc051bWJlciA9IHRydWUgfSBj
YXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSXgpIGlzTnVtYmVyID0gdHJ1
ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJeSkgaXNOdW1iZXIg
PSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVElmKSBpc051
bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWQp
IGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9f
WlRJZSkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUg
PT0gX19aVEljKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAo
dHlwZSA9PSBfX1pUSWEpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7
IGlmICh0eXBlID09IF9fWlRJaCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAg
dHJ5IHsgaWYgKHR5cGUgPT0gX19aVElzKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0g
ICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSXQpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUp
e30KLSAgICAgIHJldHVybiBpc051bWJlcjsKLSAgICB9ZnVuY3Rpb24gX19fY3hhX2RvZXNfaW5o
ZXJpdChkZWZpbml0ZVR5cGUsIHBvc3NpYmlsaXR5VHlwZSwgcG9zc2liaWxpdHkpIHsKLSAgICAg
IGlmIChwb3NzaWJpbGl0eSA9PSAwKSByZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAocG9zc2liaWxp
dHlUeXBlID09IDAgfHwgcG9zc2liaWxpdHlUeXBlID09IGRlZmluaXRlVHlwZSkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICB2YXIgcG9zc2liaWxpdHlfdHlwZV9pbmZvOwotICAgICAgaWYg
KF9fX2N4YV9pc19udW1iZXJfdHlwZShwb3NzaWJpbGl0eVR5cGUpKSB7Ci0gICAgICAgIHBvc3Np
YmlsaXR5X3R5cGVfaW5mbyA9IHBvc3NpYmlsaXR5VHlwZTsKLSAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgIHZhciBwb3NzaWJpbGl0eV90eXBlX2luZm9BZGRyID0gSEVBUDMyWygocG9zc2liaWxpdHlU
eXBlKT4+MildIC0gODsKLSAgICAgICAgcG9zc2liaWxpdHlfdHlwZV9pbmZvID0gSEVBUDMyWygo
cG9zc2liaWxpdHlfdHlwZV9pbmZvQWRkcik+PjIpXTsKLSAgICAgIH0KLSAgICAgIHN3aXRjaCAo
cG9zc2liaWxpdHlfdHlwZV9pbmZvKSB7Ci0gICAgICBjYXNlIDA6IC8vIHBvc3NpYmlsaXR5IGlz
IGEgcG9pbnRlcgotICAgICAgICAvLyBTZWUgaWYgZGVmaW5pdGUgdHlwZSBpcyBhIHBvaW50ZXIK
LSAgICAgICAgdmFyIGRlZmluaXRlX3R5cGVfaW5mb0FkZHIgPSBIRUFQMzJbKChkZWZpbml0ZVR5
cGUpPj4yKV0gLSA4OwotICAgICAgICB2YXIgZGVmaW5pdGVfdHlwZV9pbmZvID0gSEVBUDMyWygo
ZGVmaW5pdGVfdHlwZV9pbmZvQWRkcik+PjIpXTsKLSAgICAgICAgaWYgKGRlZmluaXRlX3R5cGVf
aW5mbyA9PSAwKSB7Ci0gICAgICAgICAgLy8gQWxzbyBhIHBvaW50ZXI7IGNvbXBhcmUgYmFzZSB0
eXBlcyBvZiBwb2ludGVycwotICAgICAgICAgIHZhciBkZWZQb2ludGVyQmFzZUFkZHIgPSBkZWZp
bml0ZVR5cGUrODsKLSAgICAgICAgICB2YXIgZGVmUG9pbnRlckJhc2VUeXBlID0gSEVBUDMyWygo
ZGVmUG9pbnRlckJhc2VBZGRyKT4+MildOwotICAgICAgICAgIHZhciBwb3NzUG9pbnRlckJhc2VB
ZGRyID0gcG9zc2liaWxpdHlUeXBlKzg7Ci0gICAgICAgICAgdmFyIHBvc3NQb2ludGVyQmFzZVR5
cGUgPSBIRUFQMzJbKChwb3NzUG9pbnRlckJhc2VBZGRyKT4+MildOwotICAgICAgICAgIHJldHVy
biBfX19jeGFfZG9lc19pbmhlcml0KGRlZlBvaW50ZXJCYXNlVHlwZSwgcG9zc1BvaW50ZXJCYXNl
VHlwZSwgcG9zc2liaWxpdHkpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICByZXR1cm4gZmFs
c2U7IC8vIG9uZSBwb2ludGVyIGFuZCBvbmUgbm9uLXBvaW50ZXIKLSAgICAgIGNhc2UgMTogLy8g
Y2xhc3Mgd2l0aCBubyBiYXNlIGNsYXNzCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIGNh
c2UgMjogLy8gY2xhc3Mgd2l0aCBiYXNlIGNsYXNzCi0gICAgICAgIHZhciBwYXJlbnRUeXBlQWRk
ciA9IHBvc3NpYmlsaXR5VHlwZSArIDg7Ci0gICAgICAgIHZhciBwYXJlbnRUeXBlID0gSEVBUDMy
WygocGFyZW50VHlwZUFkZHIpPj4yKV07Ci0gICAgICAgIHJldHVybiBfX19jeGFfZG9lc19pbmhl
cml0KGRlZmluaXRlVHlwZSwgcGFyZW50VHlwZSwgcG9zc2liaWxpdHkpOwotICAgICAgZGVmYXVs
dDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBzb21lIHVuZW5jb3VudGVyZWQgdHlwZQotICAg
ICAgfQotICAgIH0KLSAgZnVuY3Rpb24gX19fcmVzdW1lRXhjZXB0aW9uKHB0cikgewotICAgICAg
aWYgKEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV0gPT0gMCkgSEVBUDMyWygo
X2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXT1wdHI7Ci0gICAgICB0aHJvdyBwdHIgKyAiIC0g
RXhjZXB0aW9uIGNhdGNoaW5nIGlzIGRpc2FibGVkLCB0aGlzIGV4Y2VwdGlvbiBjYW5ub3QgYmUg
Y2F1Z2h0LiBDb21waWxlIHdpdGggLXMgRElTQUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MCBvciBE
SVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0yIHRvIGNhdGNoLiI7OwotICAgIH1mdW5jdGlvbiBf
X19jeGFfZmluZF9tYXRjaGluZ19jYXRjaCh0aHJvd24sIHRocm93bnR5cGUpIHsKLSAgICAgIGlm
ICh0aHJvd24gPT0gLTEpIHRocm93biA9IEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYp
Pj4yKV07Ci0gICAgICBpZiAodGhyb3dudHlwZSA9PSAtMSkgdGhyb3dudHlwZSA9IEhFQVAzMlso
KChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoNCkpPj4yKV07Ci0gICAgICB2YXIgdHlwZUFycmF5
ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAyKTsKLSAgICAgIC8vIElm
IHRocm93bnR5cGUgaXMgYSBwb2ludGVyLCB0aGlzIG1lYW5zIGEgcG9pbnRlciBoYXMgYmVlbgot
ICAgICAgLy8gdGhyb3duLiBXaGVuIGEgcG9pbnRlciBpcyB0aHJvd24sIGFjdHVhbGx5IHdoYXQn
cyB0aHJvd24KLSAgICAgIC8vIGlzIGEgcG9pbnRlciB0byB0aGUgcG9pbnRlci4gV2UnbGwgZGVy
ZWZlcmVuY2UgaXQuCi0gICAgICBpZiAodGhyb3dudHlwZSAhPSAwICYmICFfX19jeGFfaXNfbnVt
YmVyX3R5cGUodGhyb3dudHlwZSkpIHsKLSAgICAgICAgdmFyIHRocm93bnR5cGVJbmZvQWRkcj0g
SEVBUDMyWygodGhyb3dudHlwZSk+PjIpXSAtIDg7Ci0gICAgICAgIHZhciB0aHJvd250eXBlSW5m
bz0gSEVBUDMyWygodGhyb3dudHlwZUluZm9BZGRyKT4+MildOwotICAgICAgICBpZiAodGhyb3du
dHlwZUluZm8gPT0gMCkKLSAgICAgICAgICB0aHJvd24gPSBIRUFQMzJbKCh0aHJvd24pPj4yKV07
Ci0gICAgICB9Ci0gICAgICAvLyBUaGUgZGlmZmVyZW50IGNhdGNoIGJsb2NrcyBhcmUgZGVub3Rl
ZCBieSBkaWZmZXJlbnQgdHlwZXMuCi0gICAgICAvLyBEdWUgdG8gaW5oZXJpdGFuY2UsIHRob3Nl
IHR5cGVzIG1heSBub3QgcHJlY2lzZWx5IG1hdGNoIHRoZQotICAgICAgLy8gdHlwZSBvZiB0aGUg
dGhyb3duIG9iamVjdC4gRmluZCBvbmUgd2hpY2ggbWF0Y2hlcywgYW5kCi0gICAgICAvLyByZXR1
cm4gdGhlIHR5cGUgb2YgdGhlIGNhdGNoIGJsb2NrIHdoaWNoIHNob3VsZCBiZSBjYWxsZWQuCi0g
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVBcnJheS5sZW5ndGg7IGkrKykgewotICAgICAg
ICBpZiAoX19fY3hhX2RvZXNfaW5oZXJpdCh0eXBlQXJyYXlbaV0sIHRocm93bnR5cGUsIHRocm93
bikpCi0gICAgICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKHR5cGVBcnJheVtpXSks
dGhyb3duKXwwKTsKLSAgICAgIH0KLSAgICAgIC8vIFNob3VsZG4ndCBoYXBwZW4gdW5sZXNzIHdl
IGhhdmUgYm9ndXMgZGF0YSBpbiB0eXBlQXJyYXkKLSAgICAgIC8vIG9yIGVuY291bnRlciBhIHR5
cGUgZm9yIHdoaWNoIGVtc2NyaXB0ZW4gZG9lc24ndCBoYXZlIHN1aXRhYmxlCi0gICAgICAvLyB0
eXBlaW5mbyBkZWZpbmVkLiBCZXN0LWVmZm9ydHMgbWF0Y2gganVzdCBpbiBjYXNlLgotICAgICAg
cmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKHRocm93bnR5cGUpLHRocm93bil8MCk7Ci0gICAg
fWZ1bmN0aW9uIF9fX2N4YV90aHJvdyhwdHIsIHR5cGUsIGRlc3RydWN0b3IpIHsKLSAgICAgIGlm
ICghX19fY3hhX3Rocm93LmluaXRpYWxpemVkKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAg
SEVBUDMyWygoX19aVFZOMTBfX2N4eGFiaXYxMTlfX3BvaW50ZXJfdHlwZV9pbmZvRSk+PjIpXT0w
OyAvLyBXb3JrYXJvdW5kIGZvciBsaWJjeHhhYmkgaW50ZWdyYXRpb24gYnVnCi0gICAgICAgIH0g
Y2F0Y2goZSl7fQotICAgICAgICB0cnkgewotICAgICAgICAgIEhFQVAzMlsoKF9fWlRWTjEwX19j
eHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FKT4+MildPTE7IC8vIFdvcmthcm91bmQgZm9yIGxp
YmN4eGFiaSBpbnRlZ3JhdGlvbiBidWcKLSAgICAgICAgfSBjYXRjaChlKXt9Ci0gICAgICAgIHRy
eSB7Ci0gICAgICAgICAgSEVBUDMyWygoX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5
cGVfaW5mb0UpPj4yKV09MjsgLy8gV29ya2Fyb3VuZCBmb3IgbGliY3h4YWJpIGludGVncmF0aW9u
IGJ1ZwotICAgICAgICB9IGNhdGNoKGUpe30KLSAgICAgICAgX19fY3hhX3Rocm93LmluaXRpYWxp
emVkID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAgIEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5i
dWYpPj4yKV09cHRyCi0gICAgICBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDQp
KT4+MildPXR5cGUKLSAgICAgIEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoOCkp
Pj4yKV09ZGVzdHJ1Y3RvcgotICAgICAgaWYgKCEoInVuY2F1Z2h0X2V4Y2VwdGlvbiIgaW4gX19a
U3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYpKSB7Ci0gICAgICAgIF9fWlN0MTh1bmNhdWdodF9leGNl
cHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbiA9IDE7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBf
X1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udi51bmNhdWdodF9leGNlcHRpb24rKzsKLSAgICAgIH0K
LSAgICAgIHRocm93IHB0ciArICIgLSBFeGNlcHRpb24gY2F0Y2hpbmcgaXMgZGlzYWJsZWQsIHRo
aXMgZXhjZXB0aW9uIGNhbm5vdCBiZSBjYXVnaHQuIENvbXBpbGUgd2l0aCAtcyBESVNBQkxFX0VY
Q0VQVElPTl9DQVRDSElORz0wIG9yIERJU0FCTEVfRVhDRVBUSU9OX0NBVENISU5HPTIgdG8gY2F0
Y2guIjs7Ci0gICAgfQotICB2YXIgRVJSTk9fQ09ERVM9e0VQRVJNOjEsRU5PRU5UOjIsRVNSQ0g6
MyxFSU5UUjo0LEVJTzo1LEVOWElPOjYsRTJCSUc6NyxFTk9FWEVDOjgsRUJBREY6OSxFQ0hJTEQ6
MTAsRUFHQUlOOjExLEVXT1VMREJMT0NLOjExLEVOT01FTToxMixFQUNDRVM6MTMsRUZBVUxUOjE0
LEVOT1RCTEs6MTUsRUJVU1k6MTYsRUVYSVNUOjE3LEVYREVWOjE4LEVOT0RFVjoxOSxFTk9URElS
OjIwLEVJU0RJUjoyMSxFSU5WQUw6MjIsRU5GSUxFOjIzLEVNRklMRToyNCxFTk9UVFk6MjUsRVRY
VEJTWToyNixFRkJJRzoyNyxFTk9TUEM6MjgsRVNQSVBFOjI5LEVST0ZTOjMwLEVNTElOSzozMSxF
UElQRTozMixFRE9NOjMzLEVSQU5HRTozNCxFTk9NU0c6MzUsRUlEUk06MzYsRUNIUk5HOjM3LEVM
Mk5TWU5DOjM4LEVMM0hMVDozOSxFTDNSU1Q6NDAsRUxOUk5HOjQxLEVVTkFUQ0g6NDIsRU5PQ1NJ
OjQzLEVMMkhMVDo0NCxFREVBRExLOjQ1LEVOT0xDSzo0NixFQkFERTo1MCxFQkFEUjo1MSxFWEZV
TEw6NTIsRU5PQU5POjUzLEVCQURSUUM6NTQsRUJBRFNMVDo1NSxFREVBRExPQ0s6NTYsRUJGT05U
OjU3LEVOT1NUUjo2MCxFTk9EQVRBOjYxLEVUSU1FOjYyLEVOT1NSOjYzLEVOT05FVDo2NCxFTk9Q
S0c6NjUsRVJFTU9URTo2NixFTk9MSU5LOjY3LEVBRFY6NjgsRVNSTU5UOjY5LEVDT01NOjcwLEVQ
Uk9UTzo3MSxFTVVMVElIT1A6NzQsRURPVERPVDo3NixFQkFETVNHOjc3LEVOT1RVTklROjgwLEVC
QURGRDo4MSxFUkVNQ0hHOjgyLEVMSUJBQ0M6ODMsRUxJQkJBRDo4NCxFTElCU0NOOjg1LEVMSUJN
QVg6ODYsRUxJQkVYRUM6ODcsRU5PU1lTOjg4LEVOT1RFTVBUWTo5MCxFTkFNRVRPT0xPTkc6OTEs
RUxPT1A6OTIsRU9QTk9UU1VQUDo5NSxFUEZOT1NVUFBPUlQ6OTYsRUNPTk5SRVNFVDoxMDQsRU5P
QlVGUzoxMDUsRUFGTk9TVVBQT1JUOjEwNixFUFJPVE9UWVBFOjEwNyxFTk9UU09DSzoxMDgsRU5P
UFJPVE9PUFQ6MTA5LEVTSFVURE9XTjoxMTAsRUNPTk5SRUZVU0VEOjExMSxFQUREUklOVVNFOjEx
MixFQ09OTkFCT1JURUQ6MTEzLEVORVRVTlJFQUNIOjExNCxFTkVURE9XTjoxMTUsRVRJTUVET1VU
OjExNixFSE9TVERPV046MTE3LEVIT1NUVU5SRUFDSDoxMTgsRUlOUFJPR1JFU1M6MTE5LEVBTFJF
QURZOjEyMCxFREVTVEFERFJSRVE6MTIxLEVNU0dTSVpFOjEyMixFUFJPVE9OT1NVUFBPUlQ6MTIz
LEVTT0NLVE5PU1VQUE9SVDoxMjQsRUFERFJOT1RBVkFJTDoxMjUsRU5FVFJFU0VUOjEyNixFSVND
T05OOjEyNyxFTk9UQ09OTjoxMjgsRVRPT01BTllSRUZTOjEyOSxFVVNFUlM6MTMxLEVEUVVPVDox
MzIsRVNUQUxFOjEzMyxFTk9UU1VQOjEzNCxFTk9NRURJVU06MTM1LEVJTFNFUToxMzgsRU9WRVJG
TE9XOjEzOSxFQ0FOQ0VMRUQ6MTQwLEVOT1RSRUNPVkVSQUJMRToxNDEsRU9XTkVSREVBRDoxNDIs
RVNUUlBJUEU6MTQzfTsKLSAgdmFyIEVSUk5PX01FU1NBR0VTPXswOiJTdWNjZXNzIiwxOiJOb3Qg
c3VwZXItdXNlciIsMjoiTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSIsMzoiTm8gc3VjaCBwcm9j
ZXNzIiw0OiJJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbCIsNToiSS9PIGVycm9yIiw2OiJObyBzdWNo
IGRldmljZSBvciBhZGRyZXNzIiw3OiJBcmcgbGlzdCB0b28gbG9uZyIsODoiRXhlYyBmb3JtYXQg
ZXJyb3IiLDk6IkJhZCBmaWxlIG51bWJlciIsMTA6Ik5vIGNoaWxkcmVuIiwxMToiTm8gbW9yZSBw
cm9jZXNzZXMiLDEyOiJOb3QgZW5vdWdoIGNvcmUiLDEzOiJQZXJtaXNzaW9uIGRlbmllZCIsMTQ6
IkJhZCBhZGRyZXNzIiwxNToiQmxvY2sgZGV2aWNlIHJlcXVpcmVkIiwxNjoiTW91bnQgZGV2aWNl
IGJ1c3kiLDE3OiJGaWxlIGV4aXN0cyIsMTg6IkNyb3NzLWRldmljZSBsaW5rIiwxOToiTm8gc3Vj
aCBkZXZpY2UiLDIwOiJOb3QgYSBkaXJlY3RvcnkiLDIxOiJJcyBhIGRpcmVjdG9yeSIsMjI6Iklu
dmFsaWQgYXJndW1lbnQiLDIzOiJUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbSIsMjQ6IlRv
byBtYW55IG9wZW4gZmlsZXMiLDI1OiJOb3QgYSB0eXBld3JpdGVyIiwyNjoiVGV4dCBmaWxlIGJ1
c3kiLDI3OiJGaWxlIHRvbyBsYXJnZSIsMjg6Ik5vIHNwYWNlIGxlZnQgb24gZGV2aWNlIiwyOToi
SWxsZWdhbCBzZWVrIiwzMDoiUmVhZCBvbmx5IGZpbGUgc3lzdGVtIiwzMToiVG9vIG1hbnkgbGlu
a3MiLDMyOiJCcm9rZW4gcGlwZSIsMzM6Ik1hdGggYXJnIG91dCBvZiBkb21haW4gb2YgZnVuYyIs
MzQ6Ik1hdGggcmVzdWx0IG5vdCByZXByZXNlbnRhYmxlIiwzNToiTm8gbWVzc2FnZSBvZiBkZXNp
cmVkIHR5cGUiLDM2OiJJZGVudGlmaWVyIHJlbW92ZWQiLDM3OiJDaGFubmVsIG51bWJlciBvdXQg
b2YgcmFuZ2UiLDM4OiJMZXZlbCAyIG5vdCBzeW5jaHJvbml6ZWQiLDM5OiJMZXZlbCAzIGhhbHRl
ZCIsNDA6IkxldmVsIDMgcmVzZXQiLDQxOiJMaW5rIG51bWJlciBvdXQgb2YgcmFuZ2UiLDQyOiJQ
cm90b2NvbCBkcml2ZXIgbm90IGF0dGFjaGVkIiw0MzoiTm8gQ1NJIHN0cnVjdHVyZSBhdmFpbGFi
bGUiLDQ0OiJMZXZlbCAyIGhhbHRlZCIsNDU6IkRlYWRsb2NrIGNvbmRpdGlvbiIsNDY6Ik5vIHJl
Y29yZCBsb2NrcyBhdmFpbGFibGUiLDUwOiJJbnZhbGlkIGV4Y2hhbmdlIiw1MToiSW52YWxpZCBy
ZXF1ZXN0IGRlc2NyaXB0b3IiLDUyOiJFeGNoYW5nZSBmdWxsIiw1MzoiTm8gYW5vZGUiLDU0OiJJ
bnZhbGlkIHJlcXVlc3QgY29kZSIsNTU6IkludmFsaWQgc2xvdCIsNTY6IkZpbGUgbG9ja2luZyBk
ZWFkbG9jayBlcnJvciIsNTc6IkJhZCBmb250IGZpbGUgZm10Iiw2MDoiRGV2aWNlIG5vdCBhIHN0
cmVhbSIsNjE6Ik5vIGRhdGEgKGZvciBubyBkZWxheSBpbykiLDYyOiJUaW1lciBleHBpcmVkIiw2
MzoiT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzIiw2NDoiTWFjaGluZSBpcyBub3Qgb24gdGhlIG5l
dHdvcmsiLDY1OiJQYWNrYWdlIG5vdCBpbnN0YWxsZWQiLDY2OiJUaGUgb2JqZWN0IGlzIHJlbW90
ZSIsNjc6IlRoZSBsaW5rIGhhcyBiZWVuIHNldmVyZWQiLDY4OiJBZHZlcnRpc2UgZXJyb3IiLDY5
OiJTcm1vdW50IGVycm9yIiw3MDoiQ29tbXVuaWNhdGlvbiBlcnJvciBvbiBzZW5kIiw3MToiUHJv
dG9jb2wgZXJyb3IiLDc0OiJNdWx0aWhvcCBhdHRlbXB0ZWQiLDc2OiJDcm9zcyBtb3VudCBwb2lu
dCAobm90IHJlYWxseSBlcnJvcikiLDc3OiJUcnlpbmcgdG8gcmVhZCB1bnJlYWRhYmxlIG1lc3Nh
Z2UiLDgwOiJHaXZlbiBsb2cuIG5hbWUgbm90IHVuaXF1ZSIsODE6ImYuZC4gaW52YWxpZCBmb3Ig
dGhpcyBvcGVyYXRpb24iLDgyOiJSZW1vdGUgYWRkcmVzcyBjaGFuZ2VkIiw4MzoiQ2FuICAgYWNj
ZXNzIGEgbmVlZGVkIHNoYXJlZCBsaWIiLDg0OiJBY2Nlc3NpbmcgYSBjb3JydXB0ZWQgc2hhcmVk
IGxpYiIsODU6Ii5saWIgc2VjdGlvbiBpbiBhLm91dCBjb3JydXB0ZWQiLDg2OiJBdHRlbXB0aW5n
IHRvIGxpbmsgaW4gdG9vIG1hbnkgbGlicyIsODc6IkF0dGVtcHRpbmcgdG8gZXhlYyBhIHNoYXJl
ZCBsaWJyYXJ5Iiw4ODoiRnVuY3Rpb24gbm90IGltcGxlbWVudGVkIiw5MDoiRGlyZWN0b3J5IG5v
dCBlbXB0eSIsOTE6IkZpbGUgb3IgcGF0aCBuYW1lIHRvbyBsb25nIiw5MjoiVG9vIG1hbnkgc3lt
Ym9saWMgbGlua3MiLDk1OiJPcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiB0cmFuc3BvcnQgZW5k
cG9pbnQiLDk2OiJQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZCIsMTA0OiJDb25uZWN0aW9u
IHJlc2V0IGJ5IHBlZXIiLDEwNToiTm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZSIsMTA2OiJBZGRy
ZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sIGZhbWlseSIsMTA3OiJQcm90b2Nv
bCB3cm9uZyB0eXBlIGZvciBzb2NrZXQiLDEwODoiU29ja2V0IG9wZXJhdGlvbiBvbiBub24tc29j
a2V0IiwxMDk6IlByb3RvY29sIG5vdCBhdmFpbGFibGUiLDExMDoiQ2FuJ3Qgc2VuZCBhZnRlciBz
b2NrZXQgc2h1dGRvd24iLDExMToiQ29ubmVjdGlvbiByZWZ1c2VkIiwxMTI6IkFkZHJlc3MgYWxy
ZWFkeSBpbiB1c2UiLDExMzoiQ29ubmVjdGlvbiBhYm9ydGVkIiwxMTQ6Ik5ldHdvcmsgaXMgdW5y
ZWFjaGFibGUiLDExNToiTmV0d29yayBpbnRlcmZhY2UgaXMgbm90IGNvbmZpZ3VyZWQiLDExNjoi
Q29ubmVjdGlvbiB0aW1lZCBvdXQiLDExNzoiSG9zdCBpcyBkb3duIiwxMTg6Ikhvc3QgaXMgdW5y
ZWFjaGFibGUiLDExOToiQ29ubmVjdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzIiwxMjA6IlNvY2tl
dCBhbHJlYWR5IGNvbm5lY3RlZCIsMTIxOiJEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkIiwx
MjI6Ik1lc3NhZ2UgdG9vIGxvbmciLDEyMzoiVW5rbm93biBwcm90b2NvbCIsMTI0OiJTb2NrZXQg
dHlwZSBub3Qgc3VwcG9ydGVkIiwxMjU6IkFkZHJlc3Mgbm90IGF2YWlsYWJsZSIsMTI2OiJDb25u
ZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsiLDEyNzoiU29ja2V0IGlzIGFscmVhZHkgY29ubmVjdGVk
IiwxMjg6IlNvY2tldCBpcyBub3QgY29ubmVjdGVkIiwxMjk6IlRvbyBtYW55IHJlZmVyZW5jZXMi
LDEzMToiVG9vIG1hbnkgdXNlcnMiLDEzMjoiUXVvdGEgZXhjZWVkZWQiLDEzMzoiU3RhbGUgZmls
ZSBoYW5kbGUiLDEzNDoiTm90IHN1cHBvcnRlZCIsMTM1OiJObyBtZWRpdW0gKGluIHRhcGUgZHJp
dmUpIiwxMzg6IklsbGVnYWwgYnl0ZSBzZXF1ZW5jZSIsMTM5OiJWYWx1ZSB0b28gbGFyZ2UgZm9y
IGRlZmluZWQgZGF0YSB0eXBlIiwxNDA6Ik9wZXJhdGlvbiBjYW5jZWxlZCIsMTQxOiJTdGF0ZSBu
b3QgcmVjb3ZlcmFibGUiLDE0MjoiUHJldmlvdXMgb3duZXIgZGllZCIsMTQzOiJTdHJlYW1zIHBp
cGUgZXJyb3IifTsKLSAgdmFyIF9fX2Vycm5vX3N0YXRlPTA7ZnVuY3Rpb24gX19fc2V0RXJyTm8o
dmFsdWUpIHsKLSAgICAgIC8vIEZvciBjb252ZW5pZW50IHNldHRpbmcgYW5kIHJldHVybmluZyBv
ZiBlcnJuby4KLSAgICAgIEhFQVAzMlsoKF9fX2Vycm5vX3N0YXRlKT4+MildPXZhbHVlCi0gICAg
ICByZXR1cm4gdmFsdWU7Ci0gICAgfQotICB2YXIgVkZTPXVuZGVmaW5lZDsKLSAgdmFyIFBBVEg9
e3NwbGl0UGF0aDpmdW5jdGlvbiAoZmlsZW5hbWUpIHsKLSAgICAgICAgdmFyIHNwbGl0UGF0aFJl
ID0gL14oXC8/fCkoW1xzXFNdKj8pKCg/OlwuezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwpKSg/
OltcL10qKSQvOwotICAgICAgICByZXR1cm4gc3BsaXRQYXRoUmUuZXhlYyhmaWxlbmFtZSkuc2xp
Y2UoMSk7Ci0gICAgICB9LG5vcm1hbGl6ZUFycmF5OmZ1bmN0aW9uIChwYXJ0cywgYWxsb3dBYm92
ZVJvb3QpIHsKLSAgICAgICAgLy8gaWYgdGhlIHBhdGggdHJpZXMgdG8gZ28gYWJvdmUgdGhlIHJv
b3QsIGB1cGAgZW5kcyB1cCA+IDAKLSAgICAgICAgdmFyIHVwID0gMDsKLSAgICAgICAgZm9yICh2
YXIgaSA9IHBhcnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7Ci0gICAgICAgICAgdmFyIGxh
c3QgPSBwYXJ0c1tpXTsKLSAgICAgICAgICBpZiAobGFzdCA9PT0gJy4nKSB7Ci0gICAgICAgICAg
ICBwYXJ0cy5zcGxpY2UoaSwgMSk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChsYXN0ID09PSAnLi4n
KSB7Ci0gICAgICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMSk7Ci0gICAgICAgICAgICB1cCsrOwot
ICAgICAgICAgIH0gZWxzZSBpZiAodXApIHsKLSAgICAgICAgICAgIHBhcnRzLnNwbGljZShpLCAx
KTsKLSAgICAgICAgICAgIHVwLS07Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIC8v
IGlmIHRoZSBwYXRoIGlzIGFsbG93ZWQgdG8gZ28gYWJvdmUgdGhlIHJvb3QsIHJlc3RvcmUgbGVh
ZGluZyAuLnMKLSAgICAgICAgaWYgKGFsbG93QWJvdmVSb290KSB7Ci0gICAgICAgICAgZm9yICg7
IHVwLS07IHVwKSB7Ci0gICAgICAgICAgICBwYXJ0cy51bnNoaWZ0KCcuLicpOwotICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcGFydHM7Ci0gICAgICB9LG5vcm1hbGl6ZTpm
dW5jdGlvbiAocGF0aCkgewotICAgICAgICB2YXIgaXNBYnNvbHV0ZSA9IHBhdGguY2hhckF0KDAp
ID09PSAnLycsCi0gICAgICAgICAgICB0cmFpbGluZ1NsYXNoID0gcGF0aC5zdWJzdHIoLTEpID09
PSAnLyc7Ci0gICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgcGF0aAotICAgICAgICBwYXRoID0gUEFU
SC5ub3JtYWxpemVBcnJheShwYXRoLnNwbGl0KCcvJykuZmlsdGVyKGZ1bmN0aW9uKHApIHsKLSAg
ICAgICAgICByZXR1cm4gISFwOwotICAgICAgICB9KSwgIWlzQWJzb2x1dGUpLmpvaW4oJy8nKTsK
LSAgICAgICAgaWYgKCFwYXRoICYmICFpc0Fic29sdXRlKSB7Ci0gICAgICAgICAgcGF0aCA9ICcu
JzsKLSAgICAgICAgfQotICAgICAgICBpZiAocGF0aCAmJiB0cmFpbGluZ1NsYXNoKSB7Ci0gICAg
ICAgICAgcGF0aCArPSAnLyc7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIChpc0Fic29sdXRl
ID8gJy8nIDogJycpICsgcGF0aDsKLSAgICAgIH0sZGlybmFtZTpmdW5jdGlvbiAocGF0aCkgewot
ICAgICAgICB2YXIgcmVzdWx0ID0gUEFUSC5zcGxpdFBhdGgocGF0aCksCi0gICAgICAgICAgICBy
b290ID0gcmVzdWx0WzBdLAotICAgICAgICAgICAgZGlyID0gcmVzdWx0WzFdOwotICAgICAgICBp
ZiAoIXJvb3QgJiYgIWRpcikgewotICAgICAgICAgIC8vIE5vIGRpcm5hbWUgd2hhdHNvZXZlcgot
ICAgICAgICAgIHJldHVybiAnLic7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGRpcikgewotICAg
ICAgICAgIC8vIEl0IGhhcyBhIGRpcm5hbWUsIHN0cmlwIHRyYWlsaW5nIHNsYXNoCi0gICAgICAg
ICAgZGlyID0gZGlyLnN1YnN0cigwLCBkaXIubGVuZ3RoIC0gMSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHJvb3QgKyBkaXI7Ci0gICAgICB9LGJhc2VuYW1lOmZ1bmN0aW9uIChwYXRoLCBl
eHQpIHsKLSAgICAgICAgLy8gRU1TQ1JJUFRFTiByZXR1cm4gJy8nJyBmb3IgJy8nLCBub3QgYW4g
ZW1wdHkgc3RyaW5nCi0gICAgICAgIGlmIChwYXRoID09PSAnLycpIHJldHVybiAnLyc7Ci0gICAg
ICAgIHZhciBmID0gUEFUSC5zcGxpdFBhdGgocGF0aClbMl07Ci0gICAgICAgIGlmIChleHQgJiYg
Zi5zdWJzdHIoLTEgKiBleHQubGVuZ3RoKSA9PT0gZXh0KSB7Ci0gICAgICAgICAgZiA9IGYuc3Vi
c3RyKDAsIGYubGVuZ3RoIC0gZXh0Lmxlbmd0aCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IGY7Ci0gICAgICB9LGpvaW46ZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgcGF0aHMgPSBBcnJh
eS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDApOwotICAgICAgICByZXR1cm4gUEFU
SC5ub3JtYWxpemUocGF0aHMuZmlsdGVyKGZ1bmN0aW9uKHAsIGluZGV4KSB7Ci0gICAgICAgICAg
aWYgKHR5cGVvZiBwICE9PSAnc3RyaW5nJykgewotICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVF
cnJvcignQXJndW1lbnRzIHRvIHBhdGguam9pbiBtdXN0IGJlIHN0cmluZ3MnKTsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgcmV0dXJuIHA7Ci0gICAgICAgIH0pLmpvaW4oJy8nKSk7Ci0gICAgICB9
LHJlc29sdmU6ZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgcmVzb2x2ZWRQYXRoID0gJycsCi0g
ICAgICAgICAgcmVzb2x2ZWRBYnNvbHV0ZSA9IGZhbHNlOwotICAgICAgICBmb3IgKHZhciBpID0g
YXJndW1lbnRzLmxlbmd0aCAtIDE7IGkgPj0gLTEgJiYgIXJlc29sdmVkQWJzb2x1dGU7IGktLSkg
ewotICAgICAgICAgIHZhciBwYXRoID0gKGkgPj0gMCkgPyBhcmd1bWVudHNbaV0gOiBGUy5jd2Qo
KTsKLSAgICAgICAgICAvLyBTa2lwIGVtcHR5IGFuZCBpbnZhbGlkIGVudHJpZXMKLSAgICAgICAg
ICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcg
VHlwZUVycm9yKCdBcmd1bWVudHMgdG8gcGF0aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5ncycpOwot
ICAgICAgICAgIH0gZWxzZSBpZiAoIXBhdGgpIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgIH0KLSAgICAgICAgICByZXNvbHZlZFBhdGggPSBwYXRoICsgJy8nICsgcmVzb2x2ZWRQ
YXRoOwotICAgICAgICAgIHJlc29sdmVkQWJzb2x1dGUgPSBwYXRoLmNoYXJBdCgwKSA9PT0gJy8n
OwotICAgICAgICB9Ci0gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgdGhlIHBhdGggc2hvdWxkIGJl
IHJlc29sdmVkIHRvIGEgZnVsbCBhYnNvbHV0ZSBwYXRoLCBidXQKLSAgICAgICAgLy8gaGFuZGxl
IHJlbGF0aXZlIHBhdGhzIHRvIGJlIHNhZmUgKG1pZ2h0IGhhcHBlbiB3aGVuIHByb2Nlc3MuY3dk
KCkgZmFpbHMpCi0gICAgICAgIHJlc29sdmVkUGF0aCA9IFBBVEgubm9ybWFsaXplQXJyYXkocmVz
b2x2ZWRQYXRoLnNwbGl0KCcvJykuZmlsdGVyKGZ1bmN0aW9uKHApIHsKLSAgICAgICAgICByZXR1
cm4gISFwOwotICAgICAgICB9KSwgIXJlc29sdmVkQWJzb2x1dGUpLmpvaW4oJy8nKTsKLSAgICAg
ICAgcmV0dXJuICgocmVzb2x2ZWRBYnNvbHV0ZSA/ICcvJyA6ICcnKSArIHJlc29sdmVkUGF0aCkg
fHwgJy4nOwotICAgICAgfSxyZWxhdGl2ZTpmdW5jdGlvbiAoZnJvbSwgdG8pIHsKLSAgICAgICAg
ZnJvbSA9IFBBVEgucmVzb2x2ZShmcm9tKS5zdWJzdHIoMSk7Ci0gICAgICAgIHRvID0gUEFUSC5y
ZXNvbHZlKHRvKS5zdWJzdHIoMSk7Ci0gICAgICAgIGZ1bmN0aW9uIHRyaW0oYXJyKSB7Ci0gICAg
ICAgICAgdmFyIHN0YXJ0ID0gMDsKLSAgICAgICAgICBmb3IgKDsgc3RhcnQgPCBhcnIubGVuZ3Ro
OyBzdGFydCsrKSB7Ci0gICAgICAgICAgICBpZiAoYXJyW3N0YXJ0XSAhPT0gJycpIGJyZWFrOwot
ICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgZW5kID0gYXJyLmxlbmd0aCAtIDE7Ci0gICAgICAg
ICAgZm9yICg7IGVuZCA+PSAwOyBlbmQtLSkgewotICAgICAgICAgICAgaWYgKGFycltlbmRdICE9
PSAnJykgYnJlYWs7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChzdGFydCA+IGVuZCkgcmV0
dXJuIFtdOwotICAgICAgICAgIHJldHVybiBhcnIuc2xpY2Uoc3RhcnQsIGVuZCAtIHN0YXJ0ICsg
MSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGZyb21QYXJ0cyA9IHRyaW0oZnJvbS5zcGxpdCgn
LycpKTsKLSAgICAgICAgdmFyIHRvUGFydHMgPSB0cmltKHRvLnNwbGl0KCcvJykpOwotICAgICAg
ICB2YXIgbGVuZ3RoID0gTWF0aC5taW4oZnJvbVBhcnRzLmxlbmd0aCwgdG9QYXJ0cy5sZW5ndGgp
OwotICAgICAgICB2YXIgc2FtZVBhcnRzTGVuZ3RoID0gbGVuZ3RoOwotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgaWYgKGZyb21QYXJ0c1tpXSAh
PT0gdG9QYXJ0c1tpXSkgewotICAgICAgICAgICAgc2FtZVBhcnRzTGVuZ3RoID0gaTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB2YXIgb3V0cHV0
UGFydHMgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IHNhbWVQYXJ0c0xlbmd0aDsgaSA8IGZy
b21QYXJ0cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIG91dHB1dFBhcnRzLnB1c2goJy4uJyk7
Ci0gICAgICAgIH0KLSAgICAgICAgb3V0cHV0UGFydHMgPSBvdXRwdXRQYXJ0cy5jb25jYXQodG9Q
YXJ0cy5zbGljZShzYW1lUGFydHNMZW5ndGgpKTsKLSAgICAgICAgcmV0dXJuIG91dHB1dFBhcnRz
LmpvaW4oJy8nKTsKLSAgICAgIH19OwotICB2YXIgVFRZPXt0dHlzOltdLHJlZ2lzdGVyOmZ1bmN0
aW9uIChkZXYsIG9wcykgewotICAgICAgICBUVFkudHR5c1tkZXZdID0geyBpbnB1dDogW10sIG91
dHB1dDogW10sIG9wczogb3BzIH07Ci0gICAgICAgIEZTLnJlZ2lzdGVyRGV2aWNlKGRldiwgVFRZ
LnN0cmVhbV9vcHMpOwotICAgICAgfSxzdHJlYW1fb3BzOntvcGVuOmZ1bmN0aW9uIChzdHJlYW0p
IHsKLSAgICAgICAgICAvLyB0aGlzIHdvdWxkbid0IGJlIHJlcXVpcmVkIGlmIHRoZSBsaWJyYXJ5
IHdhc24ndCBldmFsJ2QgYXQgZmlyc3QuLi4KLSAgICAgICAgICBpZiAoIVRUWS51dGY4KSB7Ci0g
ICAgICAgICAgICBUVFkudXRmOCA9IG5ldyBSdW50aW1lLlVURjhQcm9jZXNzb3IoKTsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgdmFyIHR0eSA9IFRUWS50dHlzW3N0cmVhbS5ub2RlLnJkZXZdOwot
ICAgICAgICAgIGlmICghdHR5KSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FTk9ERVYpOwotICAgICAgICAgIH0KLSAgICAgICAgICBzdHJlYW0udHR5
ID0gdHR5OwotICAgICAgICAgIHN0cmVhbS5zZWVrYWJsZSA9IGZhbHNlOwotICAgICAgICB9LGNs
b3NlOmZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICAgICAgICAvLyBmbHVzaCBhbnkgcGVuZGluZyBs
aW5lIGRhdGEKLSAgICAgICAgICBpZiAoc3RyZWFtLnR0eS5vdXRwdXQubGVuZ3RoKSB7Ci0gICAg
ICAgICAgICBzdHJlYW0udHR5Lm9wcy5wdXRfY2hhcihzdHJlYW0udHR5LCAxMCk7Ci0gICAgICAg
ICAgfQotICAgICAgICB9LHJlYWQ6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxl
bmd0aCwgcG9zIC8qIGlnbm9yZWQgKi8pIHsKLSAgICAgICAgICBpZiAoIXN0cmVhbS50dHkgfHwg
IXN0cmVhbS50dHkub3BzLmdldF9jaGFyKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FTlhJTyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBi
eXRlc1JlYWQgPSAwOwotICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKysp
IHsKLSAgICAgICAgICAgIHZhciByZXN1bHQ7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAg
ICAgICByZXN1bHQgPSBzdHJlYW0udHR5Lm9wcy5nZXRfY2hhcihzdHJlYW0udHR5KTsKLSAgICAg
ICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXN1
bHQgPT09IHVuZGVmaW5lZCAmJiBieXRlc1JlYWQgPT09IDApIHsKLSAgICAgICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQp
IGJyZWFrOwotICAgICAgICAgICAgYnl0ZXNSZWFkKys7Ci0gICAgICAgICAgICBidWZmZXJbb2Zm
c2V0K2ldID0gcmVzdWx0OwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoYnl0ZXNSZWFkKSB7
Ci0gICAgICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAg
ICAgIH0KLSAgICAgICAgICByZXR1cm4gYnl0ZXNSZWFkOwotICAgICAgICB9LHdyaXRlOmZ1bmN0
aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvcykgewotICAgICAgICAgIGlm
ICghc3RyZWFtLnR0eSB8fCAhc3RyZWFtLnR0eS5vcHMucHV0X2NoYXIpIHsKLSAgICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOWElPKTsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgICAgc3RyZWFtLnR0eS5vcHMucHV0X2NoYXIoc3RyZWFtLnR0
eSwgYnVmZmVyW29mZnNldCtpXSk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChsZW5ndGgpIHsKLSAgICAgICAgICAg
IHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIHJldHVybiBpOwotICAgICAgICB9fSxkZWZhdWx0X3R0eV9vcHM6e2dldF9jaGFyOmZ1bmN0
aW9uICh0dHkpIHsKLSAgICAgICAgICBpZiAoIXR0eS5pbnB1dC5sZW5ndGgpIHsKLSAgICAgICAg
ICAgIHZhciByZXN1bHQgPSBudWxsOwotICAgICAgICAgICAgaWYgKEVOVklST05NRU5UX0lTX05P
REUpIHsKLSAgICAgICAgICAgICAgaWYgKHByb2Nlc3Muc3RkaW4uZGVzdHJveWVkKSB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICByZXN1bHQgPSBwcm9jZXNzLnN0ZGluLnJlYWQoKTsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAodHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJgotICAgICAgICAgICAgICB0eXBlb2Yg
d2luZG93LnByb21wdCA9PSAnZnVuY3Rpb24nKSB7Ci0gICAgICAgICAgICAgIC8vIEJyb3dzZXIu
Ci0gICAgICAgICAgICAgIHJlc3VsdCA9IHdpbmRvdy5wcm9tcHQoJ0lucHV0OiAnKTsgIC8vIHJl
dHVybnMgbnVsbCBvbiBjYW5jZWwKLSAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkg
ewotICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnXG4nOwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWFkbGluZSA9PSAnZnVuY3Rpb24nKSB7Ci0gICAg
ICAgICAgICAgIC8vIENvbW1hbmQgbGluZS4KLSAgICAgICAgICAgICAgcmVzdWx0ID0gcmVhZGxp
bmUoKTsKLSAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkgewotICAgICAgICAgICAg
ICAgIHJlc3VsdCArPSAnXG4nOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHR0eS5pbnB1dCA9IGludEFycmF5RnJvbVN0cmluZyhyZXN1
bHQsIHRydWUpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gdHR5LmlucHV0LnNoaWZ0
KCk7Ci0gICAgICAgIH0scHV0X2NoYXI6ZnVuY3Rpb24gKHR0eSwgdmFsKSB7Ci0gICAgICAgICAg
aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IDEwKSB7Ci0gICAgICAgICAgICBNb2R1bGVbJ3By
aW50J10odHR5Lm91dHB1dC5qb2luKCcnKSk7Ci0gICAgICAgICAgICB0dHkub3V0cHV0ID0gW107
Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHR0eS5vdXRwdXQucHVzaChUVFkudXRm
OC5wcm9jZXNzQ0NoYXIodmFsKSk7Ci0gICAgICAgICAgfQotICAgICAgICB9fSxkZWZhdWx0X3R0
eTFfb3BzOntwdXRfY2hhcjpmdW5jdGlvbiAodHR5LCB2YWwpIHsKLSAgICAgICAgICBpZiAodmFs
ID09PSBudWxsIHx8IHZhbCA9PT0gMTApIHsKLSAgICAgICAgICAgIE1vZHVsZVsncHJpbnRFcnIn
XSh0dHkub3V0cHV0LmpvaW4oJycpKTsKLSAgICAgICAgICAgIHR0eS5vdXRwdXQgPSBbXTsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdHR5Lm91dHB1dC5wdXNoKFRUWS51dGY4LnBy
b2Nlc3NDQ2hhcih2YWwpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH19fTsKLSAgdmFyIE1FTUZT
PXttb3VudDpmdW5jdGlvbiAobW91bnQpIHsKLSAgICAgICAgcmV0dXJuIE1FTUZTLmNyZWF0ZV9u
b2RlKG51bGwsICcvJywgMDA0MDAwMCB8IDA3NzcsIDApOwotICAgICAgfSxjcmVhdGVfbm9kZTpm
dW5jdGlvbiAocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpIHsKLSAgICAgICAgaWYgKEZTLmlzQmxr
ZGV2KG1vZGUpIHx8IEZTLmlzRklGTyhtb2RlKSkgewotICAgICAgICAgIC8vIG5vIHN1cHBvcnRl
ZAotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsK
LSAgICAgICAgfQotICAgICAgICB2YXIgbm9kZSA9IEZTLmNyZWF0ZU5vZGUocGFyZW50LCBuYW1l
LCBtb2RlLCBkZXYpOwotICAgICAgICBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAg
ICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBNRU1GUy5ub2RlX29w
cy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0YXR0ciwK
LSAgICAgICAgICAgIGxvb2t1cDogTUVNRlMubm9kZV9vcHMubG9va3VwLAotICAgICAgICAgICAg
bWtub2Q6IE1FTUZTLm5vZGVfb3BzLm1rbm9kLAotICAgICAgICAgICAgbWtub2Q6IE1FTUZTLm5v
ZGVfb3BzLm1rbm9kLAotICAgICAgICAgICAgcmVuYW1lOiBNRU1GUy5ub2RlX29wcy5yZW5hbWUs
Ci0gICAgICAgICAgICB1bmxpbms6IE1FTUZTLm5vZGVfb3BzLnVubGluaywKLSAgICAgICAgICAg
IHJtZGlyOiBNRU1GUy5ub2RlX29wcy5ybWRpciwKLSAgICAgICAgICAgIHJlYWRkaXI6IE1FTUZT
Lm5vZGVfb3BzLnJlYWRkaXIsCi0gICAgICAgICAgICBzeW1saW5rOiBNRU1GUy5ub2RlX29wcy5z
eW1saW5rCi0gICAgICAgICAgfTsKLSAgICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSB7Ci0gICAg
ICAgICAgICBsbHNlZWs6IE1FTUZTLnN0cmVhbV9vcHMubGxzZWVrCi0gICAgICAgICAgfTsKLSAg
ICAgICAgICBub2RlLmNvbnRlbnRzID0ge307Ci0gICAgICAgIH0gZWxzZSBpZiAoRlMuaXNGaWxl
KG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBub2RlLm5vZGVfb3BzID0gewotICAgICAgICAgICAg
Z2V0YXR0cjogTUVNRlMubm9kZV9vcHMuZ2V0YXR0ciwKLSAgICAgICAgICAgIHNldGF0dHI6IE1F
TUZTLm5vZGVfb3BzLnNldGF0dHIKLSAgICAgICAgICB9OwotICAgICAgICAgIG5vZGUuc3RyZWFt
X29wcyA9IHsKLSAgICAgICAgICAgIGxsc2VlazogTUVNRlMuc3RyZWFtX29wcy5sbHNlZWssCi0g
ICAgICAgICAgICByZWFkOiBNRU1GUy5zdHJlYW1fb3BzLnJlYWQsCi0gICAgICAgICAgICB3cml0
ZTogTUVNRlMuc3RyZWFtX29wcy53cml0ZSwKLSAgICAgICAgICAgIGFsbG9jYXRlOiBNRU1GUy5z
dHJlYW1fb3BzLmFsbG9jYXRlLAotICAgICAgICAgICAgbW1hcDogTUVNRlMuc3RyZWFtX29wcy5t
bWFwCi0gICAgICAgICAgfTsKLSAgICAgICAgICBub2RlLmNvbnRlbnRzID0gW107Ci0gICAgICAg
IH0gZWxzZSBpZiAoRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBub2RlLm5vZGVf
b3BzID0gewotICAgICAgICAgICAgZ2V0YXR0cjogTUVNRlMubm9kZV9vcHMuZ2V0YXR0ciwKLSAg
ICAgICAgICAgIHNldGF0dHI6IE1FTUZTLm5vZGVfb3BzLnNldGF0dHIsCi0gICAgICAgICAgICBy
ZWFkbGluazogTUVNRlMubm9kZV9vcHMucmVhZGxpbmsKLSAgICAgICAgICB9OwotICAgICAgICAg
IG5vZGUuc3RyZWFtX29wcyA9IHt9OwotICAgICAgICB9IGVsc2UgaWYgKEZTLmlzQ2hyZGV2KG5v
ZGUubW9kZSkpIHsKLSAgICAgICAgICBub2RlLm5vZGVfb3BzID0gewotICAgICAgICAgICAgZ2V0
YXR0cjogTUVNRlMubm9kZV9vcHMuZ2V0YXR0ciwKLSAgICAgICAgICAgIHNldGF0dHI6IE1FTUZT
Lm5vZGVfb3BzLnNldGF0dHIKLSAgICAgICAgICB9OwotICAgICAgICAgIG5vZGUuc3RyZWFtX29w
cyA9IEZTLmNocmRldl9zdHJlYW1fb3BzOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUudGltZXN0
YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAgLy8gYWRkIHRoZSBuZXcgbm9kZSB0byB0aGUgcGFy
ZW50Ci0gICAgICAgIGlmIChwYXJlbnQpIHsKLSAgICAgICAgICBwYXJlbnQuY29udGVudHNbbmFt
ZV0gPSBub2RlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgICAgfSxub2Rl
X29wczp7Z2V0YXR0cjpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICAgIHZhciBhdHRyID0ge307
Ci0gICAgICAgICAgLy8gZGV2aWNlIG51bWJlcnMgcmV1c2UgaW5vZGUgbnVtYmVycy4KLSAgICAg
ICAgICBhdHRyLmRldiA9IEZTLmlzQ2hyZGV2KG5vZGUubW9kZSkgPyBub2RlLmlkIDogMTsKLSAg
ICAgICAgICBhdHRyLmlubyA9IG5vZGUuaWQ7Ci0gICAgICAgICAgYXR0ci5tb2RlID0gbm9kZS5t
b2RlOwotICAgICAgICAgIGF0dHIubmxpbmsgPSAxOwotICAgICAgICAgIGF0dHIudWlkID0gMDsK
LSAgICAgICAgICBhdHRyLmdpZCA9IDA7Ci0gICAgICAgICAgYXR0ci5yZGV2ID0gbm9kZS5yZGV2
OwotICAgICAgICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICBhdHRy
LnNpemUgPSA0MDk2OwotICAgICAgICAgIH0gZWxzZSBpZiAoRlMuaXNGaWxlKG5vZGUubW9kZSkp
IHsKLSAgICAgICAgICAgIGF0dHIuc2l6ZSA9IG5vZGUuY29udGVudHMubGVuZ3RoOwotICAgICAg
ICAgIH0gZWxzZSBpZiAoRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIGF0dHIu
c2l6ZSA9IG5vZGUubGluay5sZW5ndGg7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGF0dHIuc2l6ZSA9IDA7Ci0gICAgICAgICAgfQotICAgICAgICAgIGF0dHIuYXRpbWUgPSBuZXcg
RGF0ZShub2RlLnRpbWVzdGFtcCk7Ci0gICAgICAgICAgYXR0ci5tdGltZSA9IG5ldyBEYXRlKG5v
ZGUudGltZXN0YW1wKTsKLSAgICAgICAgICBhdHRyLmN0aW1lID0gbmV3IERhdGUobm9kZS50aW1l
c3RhbXApOwotICAgICAgICAgIC8vIE5PVEU6IEluIG91ciBpbXBsZW1lbnRhdGlvbiwgc3RfYmxv
Y2tzID0gTWF0aC5jZWlsKHN0X3NpemUvc3RfYmxrc2l6ZSksCi0gICAgICAgICAgLy8gICAgICAg
YnV0IHRoaXMgaXMgbm90IHJlcXVpcmVkIGJ5IHRoZSBzdGFuZGFyZC4KLSAgICAgICAgICBhdHRy
LmJsa3NpemUgPSA0MDk2OwotICAgICAgICAgIGF0dHIuYmxvY2tzID0gTWF0aC5jZWlsKGF0dHIu
c2l6ZSAvIGF0dHIuYmxrc2l6ZSk7Ci0gICAgICAgICAgcmV0dXJuIGF0dHI7Ci0gICAgICAgIH0s
c2V0YXR0cjpmdW5jdGlvbiAobm9kZSwgYXR0cikgewotICAgICAgICAgIGlmIChhdHRyLm1vZGUg
IT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgbm9kZS5tb2RlID0gYXR0ci5tb2RlOwotICAg
ICAgICAgIH0KLSAgICAgICAgICBpZiAoYXR0ci50aW1lc3RhbXAgIT09IHVuZGVmaW5lZCkgewot
ICAgICAgICAgICAgbm9kZS50aW1lc3RhbXAgPSBhdHRyLnRpbWVzdGFtcDsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgaWYgKGF0dHIuc2l6ZSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICB2
YXIgY29udGVudHMgPSBub2RlLmNvbnRlbnRzOwotICAgICAgICAgICAgaWYgKGF0dHIuc2l6ZSA8
IGNvbnRlbnRzLmxlbmd0aCkgY29udGVudHMubGVuZ3RoID0gYXR0ci5zaXplOwotICAgICAgICAg
ICAgZWxzZSB3aGlsZSAoYXR0ci5zaXplID4gY29udGVudHMubGVuZ3RoKSBjb250ZW50cy5wdXNo
KDApOwotICAgICAgICAgIH0KLSAgICAgICAgfSxsb29rdXA6ZnVuY3Rpb24gKHBhcmVudCwgbmFt
ZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VO
VCk7Ci0gICAgICAgIH0sbWtub2Q6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KSB7
Ci0gICAgICAgICAgcmV0dXJuIE1FTUZTLmNyZWF0ZV9ub2RlKHBhcmVudCwgbmFtZSwgbW9kZSwg
ZGV2KTsKLSAgICAgICAgfSxyZW5hbWU6ZnVuY3Rpb24gKG9sZF9ub2RlLCBuZXdfZGlyLCBuZXdf
bmFtZSkgewotICAgICAgICAgIC8vIGlmIHdlJ3JlIG92ZXJ3cml0aW5nIGEgZGlyZWN0b3J5IGF0
IG5ld19uYW1lLCBtYWtlIHN1cmUgaXQncyBlbXB0eS4KLSAgICAgICAgICBpZiAoRlMuaXNEaXIo
b2xkX25vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIHZhciBuZXdfbm9kZTsKLSAgICAgICAgICAg
IHRyeSB7Ci0gICAgICAgICAgICAgIG5ld19ub2RlID0gRlMubG9va3VwTm9kZShuZXdfZGlyLCBu
ZXdfbmFtZSk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBpZiAobmV3X25vZGUpIHsKLSAgICAgICAgICAgICAgZm9yICh2YXIgaSBpbiBuZXdf
bm9kZS5jb250ZW50cykgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9y
KEVSUk5PX0NPREVTLkVOT1RFTVBUWSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gZG8gdGhlIGludGVybmFsIHJld2lyaW5nCi0gICAg
ICAgICAgZGVsZXRlIG9sZF9ub2RlLnBhcmVudC5jb250ZW50c1tvbGRfbm9kZS5uYW1lXTsKLSAg
ICAgICAgICBvbGRfbm9kZS5uYW1lID0gbmV3X25hbWU7Ci0gICAgICAgICAgbmV3X2Rpci5jb250
ZW50c1tuZXdfbmFtZV0gPSBvbGRfbm9kZTsKLSAgICAgICAgfSx1bmxpbms6ZnVuY3Rpb24gKHBh
cmVudCwgbmFtZSkgewotICAgICAgICAgIGRlbGV0ZSBwYXJlbnQuY29udGVudHNbbmFtZV07Ci0g
ICAgICAgIH0scm1kaXI6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSkgewotICAgICAgICAgIHZhciBu
b2RlID0gRlMubG9va3VwTm9kZShwYXJlbnQsIG5hbWUpOwotICAgICAgICAgIGZvciAodmFyIGkg
aW4gbm9kZS5jb250ZW50cykgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3Io
RVJSTk9fQ09ERVMuRU5PVEVNUFRZKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgZGVsZXRlIHBh
cmVudC5jb250ZW50c1tuYW1lXTsKLSAgICAgICAgfSxyZWFkZGlyOmZ1bmN0aW9uIChub2RlKSB7
Ci0gICAgICAgICAgdmFyIGVudHJpZXMgPSBbJy4nLCAnLi4nXQotICAgICAgICAgIGZvciAodmFy
IGtleSBpbiBub2RlLmNvbnRlbnRzKSB7Ci0gICAgICAgICAgICBpZiAoIW5vZGUuY29udGVudHMu
aGFzT3duUHJvcGVydHkoa2V5KSkgewotICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGVudHJpZXMucHVzaChrZXkpOwotICAgICAgICAgIH0KLSAgICAg
ICAgICByZXR1cm4gZW50cmllczsKLSAgICAgICAgfSxzeW1saW5rOmZ1bmN0aW9uIChwYXJlbnQs
IG5ld25hbWUsIG9sZHBhdGgpIHsKLSAgICAgICAgICB2YXIgbm9kZSA9IE1FTUZTLmNyZWF0ZV9u
b2RlKHBhcmVudCwgbmV3bmFtZSwgMDc3NyB8IDAxMjAwMDAsIDApOwotICAgICAgICAgIG5vZGUu
bGluayA9IG9sZHBhdGg7Ci0gICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgIH0scmVhZGxp
bms6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgICBpZiAoIUZTLmlzTGluayhub2RlLm1vZGUp
KSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5W
QUwpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gbm9kZS5saW5rOwotICAgICAgICB9
fSxzdHJlYW1fb3BzOntyZWFkOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5n
dGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29u
dGVudHM7Ci0gICAgICAgICAgdmFyIHNpemUgPSBNYXRoLm1pbihjb250ZW50cy5sZW5ndGggLSBw
b3NpdGlvbiwgbGVuZ3RoKTsKLSAgICAgICAgICBpZiAoY29udGVudHMuc3ViYXJyYXkpIHsgLy8g
dHlwZWQgYXJyYXkKLSAgICAgICAgICAgIGJ1ZmZlci5zZXQoY29udGVudHMuc3ViYXJyYXkocG9z
aXRpb24sIHBvc2l0aW9uICsgc2l6ZSksIG9mZnNldCk7Ci0gICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAg
ICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIGldID0gY29udGVudHNbcG9zaXRpb24gKyBpXTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIHNpemU7Ci0gICAg
ICAgIH0sd3JpdGU6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9z
aXRpb24pIHsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsK
LSAgICAgICAgICB3aGlsZSAoY29udGVudHMubGVuZ3RoIDwgcG9zaXRpb24pIGNvbnRlbnRzLnB1
c2goMCk7Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAg
ICAgICAgICAgY29udGVudHNbcG9zaXRpb24gKyBpXSA9IGJ1ZmZlcltvZmZzZXQgKyBpXTsKLSAg
ICAgICAgICB9Ci0gICAgICAgICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsK
LSAgICAgICAgICByZXR1cm4gbGVuZ3RoOwotICAgICAgICB9LGxsc2VlazpmdW5jdGlvbiAoc3Ry
ZWFtLCBvZmZzZXQsIHdoZW5jZSkgewotICAgICAgICAgIHZhciBwb3NpdGlvbiA9IG9mZnNldDsK
LSAgICAgICAgICBpZiAod2hlbmNlID09PSAxKSB7ICAvLyBTRUVLX0NVUi4KLSAgICAgICAgICAg
IHBvc2l0aW9uICs9IHN0cmVhbS5wb3NpdGlvbjsKLSAgICAgICAgICB9IGVsc2UgaWYgKHdoZW5j
ZSA9PT0gMikgeyAgLy8gU0VFS19FTkQuCi0gICAgICAgICAgICBpZiAoRlMuaXNGaWxlKHN0cmVh
bS5ub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICAgIHBvc2l0aW9uICs9IHN0cmVhbS5ub2RlLmNv
bnRlbnRzLmxlbmd0aDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYg
KHBvc2l0aW9uIDwgMCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgc3RyZWFtLnVuZ290dGVu
ID0gW107Ci0gICAgICAgICAgc3RyZWFtLnBvc2l0aW9uID0gcG9zaXRpb247Ci0gICAgICAgICAg
cmV0dXJuIHBvc2l0aW9uOwotICAgICAgICB9LGFsbG9jYXRlOmZ1bmN0aW9uIChzdHJlYW0sIG9m
ZnNldCwgbGVuZ3RoKSB7Ci0gICAgICAgICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29u
dGVudHM7Ci0gICAgICAgICAgdmFyIGxpbWl0ID0gb2Zmc2V0ICsgbGVuZ3RoOwotICAgICAgICAg
IHdoaWxlIChsaW1pdCA+IGNvbnRlbnRzLmxlbmd0aCkgY29udGVudHMucHVzaCgwKTsKLSAgICAg
ICAgfSxtbWFwOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0
aW9uLCBwcm90LCBmbGFncykgewotICAgICAgICAgIGlmICghRlMuaXNGaWxlKHN0cmVhbS5ub2Rl
Lm1vZGUpKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FTk9ERVYpOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgcHRyOwotICAgICAgICAgIHZh
ciBhbGxvY2F0ZWQ7Ci0gICAgICAgICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVu
dHM7Ci0gICAgICAgICAgLy8gT25seSBtYWtlIGEgbmV3IGNvcHkgd2hlbiBNQVBfUFJJVkFURSBp
cyBzcGVjaWZpZWQuCi0gICAgICAgICAgaWYgKCEoZmxhZ3MgJiAweDAyKSkgewotICAgICAgICAg
ICAgLy8gV2UgY2FuJ3QgZW11bGF0ZSBNQVBfU0hBUkVEIHdoZW4gdGhlIGZpbGUgaXMgbm90IGJh
Y2tlZCBieSB0aGUgYnVmZmVyCi0gICAgICAgICAgICAvLyB3ZSdyZSBtYXBwaW5nIHRvIChlLmcu
IHRoZSBIRUFQIGJ1ZmZlcikuCi0gICAgICAgICAgICBhc3NlcnQoY29udGVudHMuYnVmZmVyID09
PSBidWZmZXIgfHwgY29udGVudHMuYnVmZmVyID09PSBidWZmZXIuYnVmZmVyKTsKLSAgICAgICAg
ICAgIGFsbG9jYXRlZCA9IGZhbHNlOwotICAgICAgICAgICAgcHRyID0gY29udGVudHMuYnl0ZU9m
ZnNldDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gVHJ5IHRvIGF2b2lkIHVu
bmVjZXNzYXJ5IHNsaWNlcy4KLSAgICAgICAgICAgIGlmIChwb3NpdGlvbiA+IDAgfHwgcG9zaXRp
b24gKyBsZW5ndGggPCBjb250ZW50cy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgaWYgKGNvbnRl
bnRzLnN1YmFycmF5KSB7Ci0gICAgICAgICAgICAgICAgY29udGVudHMgPSBjb250ZW50cy5zdWJh
cnJheShwb3NpdGlvbiwgcG9zaXRpb24gKyBsZW5ndGgpOwotICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIGNvbnRlbnRzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo
Y29udGVudHMsIHBvc2l0aW9uLCBwb3NpdGlvbiArIGxlbmd0aCk7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFsbG9jYXRlZCA9IHRydWU7Ci0gICAgICAgICAg
ICBwdHIgPSBfbWFsbG9jKGxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAoIXB0cikgewotICAgICAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9NRU0pOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgYnVmZmVyLnNldChjb250ZW50cywgcHRyKTsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgcmV0dXJuIHsgcHRyOiBwdHIsIGFsbG9jYXRlZDogYWxsb2NhdGVk
IH07Ci0gICAgICAgIH19fTsKLSAgdmFyIF9zdGRpbj1hbGxvY2F0ZSgxLCAiaTMyKiIsIEFMTE9D
X1NUQVRJQyk7Ci0gIHZhciBfc3Rkb3V0PWFsbG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElD
KTsKLSAgdmFyIF9zdGRlcnI9YWxsb2NhdGUoMSwgImkzMioiLCBBTExPQ19TVEFUSUMpOwotICBm
dW5jdGlvbiBfZmZsdXNoKHN0cmVhbSkgewotICAgICAgLy8gaW50IGZmbHVzaChGSUxFICpzdHJl
YW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5
NTM5OS9mdW5jdGlvbnMvZmZsdXNoLmh0bWwKLSAgICAgIC8vIHdlIGRvbid0IGN1cnJlbnRseSBw
ZXJmb3JtIGFueSB1c2VyLXNwYWNlIGJ1ZmZlcmluZyBvZiBkYXRhCi0gICAgfXZhciBGUz17cm9v
dDpudWxsLG5vZGVzOltudWxsXSxkZXZpY2VzOltudWxsXSxzdHJlYW1zOltudWxsXSxuZXh0SW5v
ZGU6MSxuYW1lX3RhYmxlOm51bGwsY3VycmVudFBhdGg6Ii8iLGluaXRpYWxpemVkOmZhbHNlLGln
bm9yZVBlcm1pc3Npb25zOnRydWUsRXJybm9FcnJvcjpmdW5jdGlvbiBFcnJub0Vycm9yKGVycm5v
KSB7Ci0gICAgICAgICAgdGhpcy5lcnJubyA9IGVycm5vOwotICAgICAgICAgIGZvciAodmFyIGtl
eSBpbiBFUlJOT19DT0RFUykgewotICAgICAgICAgICAgaWYgKEVSUk5PX0NPREVTW2tleV0gPT09
IGVycm5vKSB7Ci0gICAgICAgICAgICAgIHRoaXMuY29kZSA9IGtleTsKLSAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHRoaXMubWVzc2Fn
ZSA9IEVSUk5PX01FU1NBR0VTW2Vycm5vXTsKLSAgICAgICAgfSxoYW5kbGVGU0Vycm9yOmZ1bmN0
aW9uIChlKSB7Ci0gICAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgdGhy
b3cgZSArICcgOiAnICsgbmV3IEVycm9yKCkuc3RhY2s7Ci0gICAgICAgIHJldHVybiBfX19zZXRF
cnJObyhlLmVycm5vKTsKLSAgICAgIH0saGFzaE5hbWU6ZnVuY3Rpb24gKHBhcmVudGlkLCBuYW1l
KSB7Ci0gICAgICAgIHZhciBoYXNoID0gMDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBu
YW1lLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgaGFzaCA9ICgoaGFzaCA8PCA1KSAtIGhhc2gg
KyBuYW1lLmNoYXJDb2RlQXQoaSkpIHwgMDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gKChw
YXJlbnRpZCArIGhhc2gpID4+PiAwKSAlIEZTLm5hbWVfdGFibGUubGVuZ3RoOwotICAgICAgfSxo
YXNoQWRkTm9kZTpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICB2YXIgaGFzaCA9IEZTLmhhc2hO
YW1lKG5vZGUucGFyZW50LmlkLCBub2RlLm5hbWUpOwotICAgICAgICBub2RlLm5hbWVfbmV4dCA9
IEZTLm5hbWVfdGFibGVbaGFzaF07Ci0gICAgICAgIEZTLm5hbWVfdGFibGVbaGFzaF0gPSBub2Rl
OwotICAgICAgfSxoYXNoUmVtb3ZlTm9kZTpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICB2YXIg
aGFzaCA9IEZTLmhhc2hOYW1lKG5vZGUucGFyZW50LmlkLCBub2RlLm5hbWUpOwotICAgICAgICBp
ZiAoRlMubmFtZV90YWJsZVtoYXNoXSA9PT0gbm9kZSkgewotICAgICAgICAgIEZTLm5hbWVfdGFi
bGVbaGFzaF0gPSBub2RlLm5hbWVfbmV4dDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2
YXIgY3VycmVudCA9IEZTLm5hbWVfdGFibGVbaGFzaF07Ci0gICAgICAgICAgd2hpbGUgKGN1cnJl
bnQpIHsKLSAgICAgICAgICAgIGlmIChjdXJyZW50Lm5hbWVfbmV4dCA9PT0gbm9kZSkgewotICAg
ICAgICAgICAgICBjdXJyZW50Lm5hbWVfbmV4dCA9IG5vZGUubmFtZV9uZXh0OwotICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50
Lm5hbWVfbmV4dDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0sbG9va3VwTm9kZTpm
dW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlMb29rdXAo
cGFyZW50KTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGhhc2ggPSBGUy5oYXNoTmFtZShw
YXJlbnQuaWQsIG5hbWUpOwotICAgICAgICBmb3IgKHZhciBub2RlID0gRlMubmFtZV90YWJsZVto
YXNoXTsgbm9kZTsgbm9kZSA9IG5vZGUubmFtZV9uZXh0KSB7Ci0gICAgICAgICAgaWYgKG5vZGUu
cGFyZW50LmlkID09PSBwYXJlbnQuaWQgJiYgbm9kZS5uYW1lID09PSBuYW1lKSB7Ci0gICAgICAg
ICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gaWYg
d2UgZmFpbGVkIHRvIGZpbmQgaXQgaW4gdGhlIGNhY2hlLCBjYWxsIGludG8gdGhlIFZGUwotICAg
ICAgICByZXR1cm4gRlMubG9va3VwKHBhcmVudCwgbmFtZSk7Ci0gICAgICB9LGNyZWF0ZU5vZGU6
ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgbW9kZSwgcmRldikgewotICAgICAgICB2YXIgbm9kZSA9
IHsKLSAgICAgICAgICBpZDogRlMubmV4dElub2RlKyssCi0gICAgICAgICAgbmFtZTogbmFtZSwK
LSAgICAgICAgICBtb2RlOiBtb2RlLAotICAgICAgICAgIG5vZGVfb3BzOiB7fSwKLSAgICAgICAg
ICBzdHJlYW1fb3BzOiB7fSwKLSAgICAgICAgICByZGV2OiByZGV2LAotICAgICAgICAgIHBhcmVu
dDogbnVsbCwKLSAgICAgICAgICBtb3VudDogbnVsbAotICAgICAgICB9OwotICAgICAgICBpZiAo
IXBhcmVudCkgewotICAgICAgICAgIHBhcmVudCA9IG5vZGU7ICAvLyByb290IG5vZGUgc2V0cyBw
YXJlbnQgdG8gaXRzZWxmCi0gICAgICAgIH0KLSAgICAgICAgbm9kZS5wYXJlbnQgPSBwYXJlbnQ7
Ci0gICAgICAgIG5vZGUubW91bnQgPSBwYXJlbnQubW91bnQ7Ci0gICAgICAgIC8vIGNvbXBhdGli
aWxpdHkKLSAgICAgICAgdmFyIHJlYWRNb2RlID0gMjkyIHwgNzM7Ci0gICAgICAgIHZhciB3cml0
ZU1vZGUgPSAxNDY7Ci0gICAgICAgIC8vIE5PVEUgd2UgbXVzdCB1c2UgT2JqZWN0LmRlZmluZVBy
b3BlcnRpZXMgaW5zdGVhZCBvZiBpbmRpdmlkdWFsIGNhbGxzIHRvCi0gICAgICAgIC8vIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSBpbiBvcmRlciB0byBtYWtlIGNsb3N1cmUgY29tcGlsZXIgaGFwcHkK
LSAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobm9kZSwgewotICAgICAgICAgIHJlYWQ6
IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiAobm9kZS5tb2RlICYgcmVh
ZE1vZGUpID09PSByZWFkTW9kZTsgfSwKLSAgICAgICAgICAgIHNldDogZnVuY3Rpb24odmFsKSB7
IHZhbCA/IG5vZGUubW9kZSB8PSByZWFkTW9kZSA6IG5vZGUubW9kZSAmPSB+cmVhZE1vZGU7IH0K
LSAgICAgICAgICB9LAotICAgICAgICAgIHdyaXRlOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0
aW9uKCkgeyByZXR1cm4gKG5vZGUubW9kZSAmIHdyaXRlTW9kZSkgPT09IHdyaXRlTW9kZTsgfSwK
LSAgICAgICAgICAgIHNldDogZnVuY3Rpb24odmFsKSB7IHZhbCA/IG5vZGUubW9kZSB8PSB3cml0
ZU1vZGUgOiBub2RlLm1vZGUgJj0gfndyaXRlTW9kZTsgfQotICAgICAgICAgIH0sCi0gICAgICAg
ICAgaXNGb2xkZXI6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBGUy5p
c0Rpcihub2RlLm1vZGUpOyB9LAotICAgICAgICAgIH0sCi0gICAgICAgICAgaXNEZXZpY2U6IHsK
LSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBGUy5pc0NocmRldihub2RlLm1v
ZGUpOyB9LAotICAgICAgICAgIH0sCi0gICAgICAgIH0pOwotICAgICAgICBGUy5oYXNoQWRkTm9k
ZShub2RlKTsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LGRlc3Ryb3lOb2RlOmZ1bmN0
aW9uIChub2RlKSB7Ci0gICAgICAgIEZTLmhhc2hSZW1vdmVOb2RlKG5vZGUpOwotICAgICAgfSxp
c1Jvb3Q6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgcmV0dXJuIG5vZGUgPT09IG5vZGUucGFy
ZW50OwotICAgICAgfSxpc01vdW50cG9pbnQ6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgcmV0
dXJuIG5vZGUubW91bnRlZDsKLSAgICAgIH0saXNGaWxlOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAg
ICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMTAwMDAwOwotICAgICAgfSxpc0Rpcjpm
dW5jdGlvbiAobW9kZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDA0
MDAwMDsKLSAgICAgIH0saXNMaW5rOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJldHVybiAo
bW9kZSAmIDAxNzAwMDApID09PSAwMTIwMDAwOwotICAgICAgfSxpc0NocmRldjpmdW5jdGlvbiAo
bW9kZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDAyMDAwMDsKLSAg
ICAgIH0saXNCbGtkZXY6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYg
MDE3MDAwMCkgPT09IDAwNjAwMDA7Ci0gICAgICB9LGlzRklGTzpmdW5jdGlvbiAobW9kZSkgewot
ICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0gMDAxMDAwMDsKLSAgICAgIH0sY3dk
OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIEZTLmN1cnJlbnRQYXRoOwotICAgICAgfSxs
b29rdXBQYXRoOmZ1bmN0aW9uIChwYXRoLCBvcHRzKSB7Ci0gICAgICAgIHBhdGggPSBQQVRILnJl
c29sdmUoRlMuY3VycmVudFBhdGgsIHBhdGgpOwotICAgICAgICBvcHRzID0gb3B0cyB8fCB7IHJl
Y3Vyc2VfY291bnQ6IDAgfTsKLSAgICAgICAgaWYgKG9wdHMucmVjdXJzZV9jb3VudCA+IDgpIHsg
IC8vIG1heCByZWN1cnNpdmUgbG9va3VwIG9mIDgKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FTE9PUCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gc3BsaXQg
dGhlIHBhdGgKLSAgICAgICAgdmFyIHBhcnRzID0gUEFUSC5ub3JtYWxpemVBcnJheShwYXRoLnNw
bGl0KCcvJykuZmlsdGVyKGZ1bmN0aW9uKHApIHsKLSAgICAgICAgICByZXR1cm4gISFwOwotICAg
ICAgICB9KSwgZmFsc2UpOwotICAgICAgICAvLyBzdGFydCBhdCB0aGUgcm9vdAotICAgICAgICB2
YXIgY3VycmVudCA9IEZTLnJvb3Q7Ci0gICAgICAgIHZhciBjdXJyZW50X3BhdGggPSAnLyc7Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAg
ICB2YXIgaXNsYXN0ID0gKGkgPT09IHBhcnRzLmxlbmd0aC0xKTsKLSAgICAgICAgICBpZiAoaXNs
YXN0ICYmIG9wdHMucGFyZW50KSB7Ci0gICAgICAgICAgICAvLyBzdG9wIHJlc29sdmluZwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgfQotICAgICAgICAgIGN1cnJlbnQgPSBGUy5sb29r
dXBOb2RlKGN1cnJlbnQsIHBhcnRzW2ldKTsKLSAgICAgICAgICBjdXJyZW50X3BhdGggPSBQQVRI
LmpvaW4oY3VycmVudF9wYXRoLCBwYXJ0c1tpXSk7Ci0gICAgICAgICAgLy8ganVtcCB0byB0aGUg
bW91bnQncyByb290IG5vZGUgaWYgdGhpcyBpcyBhIG1vdW50cG9pbnQKLSAgICAgICAgICBpZiAo
RlMuaXNNb3VudHBvaW50KGN1cnJlbnQpKSB7Ci0gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVu
dC5tb3VudC5yb290OwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBmb2xsb3cgc3ltbGlua3MK
LSAgICAgICAgICAvLyBieSBkZWZhdWx0LCBsb29rdXBQYXRoIHdpbGwgbm90IGZvbGxvdyBhIHN5
bWxpbmsgaWYgaXQgaXMgdGhlIGZpbmFsIHBhdGggY29tcG9uZW50LgotICAgICAgICAgIC8vIHNl
dHRpbmcgb3B0cy5mb2xsb3cgPSB0cnVlIHdpbGwgb3ZlcnJpZGUgdGhpcyBiZWhhdmlvci4KLSAg
ICAgICAgICBpZiAoIWlzbGFzdCB8fCBvcHRzLmZvbGxvdykgewotICAgICAgICAgICAgdmFyIGNv
dW50ID0gMDsKLSAgICAgICAgICAgIHdoaWxlIChGUy5pc0xpbmsoY3VycmVudC5tb2RlKSkgewot
ICAgICAgICAgICAgICB2YXIgbGluayA9IEZTLnJlYWRsaW5rKGN1cnJlbnRfcGF0aCk7Ci0gICAg
ICAgICAgICAgIGN1cnJlbnRfcGF0aCA9IFBBVEgucmVzb2x2ZShQQVRILmRpcm5hbWUoY3VycmVu
dF9wYXRoKSwgbGluayk7Ci0gICAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRo
KGN1cnJlbnRfcGF0aCwgeyByZWN1cnNlX2NvdW50OiBvcHRzLnJlY3Vyc2VfY291bnQgfSk7Ci0g
ICAgICAgICAgICAgIGN1cnJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgICAgICAgaWYgKGNv
dW50KysgPiA0MCkgeyAgLy8gbGltaXQgbWF4IGNvbnNlY3V0aXZlIHN5bWxpbmtzIHRvIDQwIChT
WU1MT09QX01BWCkuCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRUxPT1ApOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB7IHBhdGg6IGN1cnJlbnRfcGF0aCwgbm9k
ZTogY3VycmVudCB9OwotICAgICAgfSxnZXRQYXRoOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAg
IHZhciBwYXRoOwotICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgIGlmIChGUy5pc1Jv
b3Qobm9kZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBwYXRoID8gUEFUSC5qb2luKG5vZGUubW91
bnQubW91bnRwb2ludCwgcGF0aCkgOiBub2RlLm1vdW50Lm1vdW50cG9pbnQ7Ci0gICAgICAgICAg
fQotICAgICAgICAgIHBhdGggPSBwYXRoID8gUEFUSC5qb2luKG5vZGUubmFtZSwgcGF0aCkgOiBu
b2RlLm5hbWU7Ci0gICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50OwotICAgICAgICB9Ci0gICAg
ICB9LGZsYWdNb2Rlczp7InIiOjAsInJzIjo4MTkyLCJyKyI6MiwidyI6MTUzNywid3giOjM1ODUs
Inh3IjozNTg1LCJ3KyI6MTUzOCwid3grIjozNTg2LCJ4dysiOjM1ODYsImEiOjUyMSwiYXgiOjI1
NjksInhhIjoyNTY5LCJhKyI6NTIyLCJheCsiOjI1NzAsInhhKyI6MjU3MH0sbW9kZVN0cmluZ1Rv
RmxhZ3M6ZnVuY3Rpb24gKHN0cikgewotICAgICAgICB2YXIgZmxhZ3MgPSBGUy5mbGFnTW9kZXNb
c3RyXTsKLSAgICAgICAgaWYgKHR5cGVvZiBmbGFncyA9PT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gZmlsZSBvcGVuIG1vZGU6ICcgKyBzdHIpOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmbGFnczsKLSAgICAgIH0sZmxhZ3NUb1Blcm1pc3Np
b25TdHJpbmc6ZnVuY3Rpb24gKGZsYWcpIHsKLSAgICAgICAgdmFyIGFjY21vZGUgPSBmbGFnICYg
MzsKLSAgICAgICAgdmFyIHBlcm1zID0gWydyJywgJ3cnLCAncncnXVthY2Ntb2RlXTsKLSAgICAg
ICAgaWYgKChmbGFnICYgMTAyNCkpIHsKLSAgICAgICAgICBwZXJtcyArPSAndyc7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHBlcm1zOwotICAgICAgfSxub2RlUGVybWlzc2lvbnM6ZnVuY3Rp
b24gKG5vZGUsIHBlcm1zKSB7Ci0gICAgICAgIGlmIChGUy5pZ25vcmVQZXJtaXNzaW9ucykgewot
ICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0gICAgICAgIC8vIHJldHVybiAwIGlmIGFu
eSB1c2VyLCBncm91cCBvciBvd25lciBiaXRzIGFyZSBzZXQuCi0gICAgICAgIGlmIChwZXJtcy5p
bmRleE9mKCdyJykgIT09IC0xICYmICEobm9kZS5tb2RlICYgMjkyKSkgewotICAgICAgICAgIHJl
dHVybiBFUlJOT19DT0RFUy5FQUNDRVM7Ci0gICAgICAgIH0gZWxzZSBpZiAocGVybXMuaW5kZXhP
ZigndycpICE9PSAtMSAmJiAhKG5vZGUubW9kZSAmIDE0NikpIHsKLSAgICAgICAgICByZXR1cm4g
RVJSTk9fQ09ERVMuRUFDQ0VTOwotICAgICAgICB9IGVsc2UgaWYgKHBlcm1zLmluZGV4T2YoJ3gn
KSAhPT0gLTEgJiYgIShub2RlLm1vZGUgJiA3MykpIHsKLSAgICAgICAgICByZXR1cm4gRVJSTk9f
Q09ERVMuRUFDQ0VTOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAwOwotICAgICAgfSxtYXlM
b29rdXA6ZnVuY3Rpb24gKGRpcikgewotICAgICAgICByZXR1cm4gRlMubm9kZVBlcm1pc3Npb25z
KGRpciwgJ3gnKTsKLSAgICAgIH0sbWF5TWtub2Q6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAg
c3dpdGNoIChtb2RlICYgMDE3MDAwMCkgewotICAgICAgICAgIGNhc2UgMDEwMDAwMDoKLSAgICAg
ICAgICBjYXNlIDAwMjAwMDA6Ci0gICAgICAgICAgY2FzZSAwMDYwMDAwOgotICAgICAgICAgIGNh
c2UgMDAxMDAwMDoKLSAgICAgICAgICBjYXNlIDAxNDAwMDA6Ci0gICAgICAgICAgICByZXR1cm4g
MDsKLSAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVJ
TlZBTDsKLSAgICAgICAgfQotICAgICAgfSxtYXlDcmVhdGU6ZnVuY3Rpb24gKGRpciwgbmFtZSkg
ewotICAgICAgICB0cnkgewotICAgICAgICAgIHZhciBub2RlID0gRlMubG9va3VwTm9kZShkaXIs
IG5hbWUpOwotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FRVhJU1Q7Ci0gICAgICAgIH0g
Y2F0Y2ggKGUpIHsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gRlMubm9kZVBlcm1pc3Npb25z
KGRpciwgJ3d4Jyk7Ci0gICAgICB9LG1heURlbGV0ZTpmdW5jdGlvbiAoZGlyLCBuYW1lLCBpc2Rp
cikgewotICAgICAgICB2YXIgbm9kZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBub2RlID0g
RlMubG9va3VwTm9kZShkaXIsIG5hbWUpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
ICAgcmV0dXJuIGUuZXJybm87Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGVyciA9IEZTLm5vZGVQ
ZXJtaXNzaW9ucyhkaXIsICd3eCcpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgcmV0
dXJuIGVycjsKLSAgICAgICAgfQotICAgICAgICBpZiAoaXNkaXIpIHsKLSAgICAgICAgICBpZiAo
IUZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5F
Tk9URElSOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoRlMuaXNSb290KG5vZGUpIHx8IEZT
LmdldFBhdGgobm9kZSkgPT09IEZTLmN1cnJlbnRQYXRoKSB7Ci0gICAgICAgICAgICByZXR1cm4g
RVJSTk9fQ09ERVMuRUJVU1k7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9f
Q09ERVMuRUlTRElSOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsK
LSAgICAgIH0sbWF5T3BlbjpmdW5jdGlvbiAobm9kZSwgZmxhZ3MpIHsKLSAgICAgICAgaWYgKCFu
b2RlKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVOT0VOVDsKLSAgICAgICAgfQot
ICAgICAgICBpZiAoRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICByZXR1cm4gRVJS
Tk9fQ09ERVMuRUxPT1A7Ci0gICAgICAgIH0gZWxzZSBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkg
ewotICAgICAgICAgIGlmICgoZmxhZ3MgJiAzKSAhPT0gMCB8fCAgLy8gb3BlbmluZyBmb3Igd3Jp
dGUKLSAgICAgICAgICAgICAgKGZsYWdzICYgMTAyNCkpIHsKLSAgICAgICAgICAgIHJldHVybiBF
UlJOT19DT0RFUy5FSVNESVI7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBGUy5ub2RlUGVybWlzc2lvbnMobm9kZSwgRlMuZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoZmxh
Z3MpKTsKLSAgICAgIH0sY2hyZGV2X3N0cmVhbV9vcHM6e29wZW46ZnVuY3Rpb24gKHN0cmVhbSkg
ewotICAgICAgICAgIHZhciBkZXZpY2UgPSBGUy5nZXREZXZpY2Uoc3RyZWFtLm5vZGUucmRldik7
Ci0gICAgICAgICAgLy8gb3ZlcnJpZGUgbm9kZSdzIHN0cmVhbSBvcHMgd2l0aCB0aGUgZGV2aWNl
J3MKLSAgICAgICAgICBzdHJlYW0uc3RyZWFtX29wcyA9IGRldmljZS5zdHJlYW1fb3BzOwotICAg
ICAgICAgIC8vIGZvcndhcmQgdGhlIG9wZW4gY2FsbAotICAgICAgICAgIGlmIChzdHJlYW0uc3Ry
ZWFtX29wcy5vcGVuKSB7Ci0gICAgICAgICAgICBzdHJlYW0uc3RyZWFtX29wcy5vcGVuKHN0cmVh
bSk7Ci0gICAgICAgICAgfQotICAgICAgICB9LGxsc2VlazpmdW5jdGlvbiAoKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVNQSVBFKTsKLSAgICAgICAg
fX0sbWFqb3I6ZnVuY3Rpb24gKGRldikgewotICAgICAgICByZXR1cm4gKChkZXYpID4+IDgpOwot
ICAgICAgfSxtaW5vcjpmdW5jdGlvbiAoZGV2KSB7Ci0gICAgICAgIHJldHVybiAoKGRldikgJiAw
eGZmKTsKLSAgICAgIH0sbWFrZWRldjpmdW5jdGlvbiAobWEsIG1pKSB7Ci0gICAgICAgIHJldHVy
biAoKG1hKSA8PCA4IHwgKG1pKSk7Ci0gICAgICB9LHJlZ2lzdGVyRGV2aWNlOmZ1bmN0aW9uIChk
ZXYsIG9wcykgewotICAgICAgICBGUy5kZXZpY2VzW2Rldl0gPSB7IHN0cmVhbV9vcHM6IG9wcyB9
OwotICAgICAgfSxnZXREZXZpY2U6ZnVuY3Rpb24gKGRldikgewotICAgICAgICByZXR1cm4gRlMu
ZGV2aWNlc1tkZXZdOwotICAgICAgfSxNQVhfT1BFTl9GRFM6NDA5NixuZXh0ZmQ6ZnVuY3Rpb24g
KGZkX3N0YXJ0LCBmZF9lbmQpIHsKLSAgICAgICAgZmRfc3RhcnQgPSBmZF9zdGFydCB8fCAxOwot
ICAgICAgICBmZF9lbmQgPSBmZF9lbmQgfHwgRlMuTUFYX09QRU5fRkRTOwotICAgICAgICBmb3Ig
KHZhciBmZCA9IGZkX3N0YXJ0OyBmZCA8PSBmZF9lbmQ7IGZkKyspIHsKLSAgICAgICAgICBpZiAo
IUZTLnN0cmVhbXNbZmRdKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmQ7Ci0gICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVN
RklMRSk7Ci0gICAgICB9LGdldFN0cmVhbTpmdW5jdGlvbiAoZmQpIHsKLSAgICAgICAgcmV0dXJu
IEZTLnN0cmVhbXNbZmRdOwotICAgICAgfSxjcmVhdGVTdHJlYW06ZnVuY3Rpb24gKHN0cmVhbSwg
ZmRfc3RhcnQsIGZkX2VuZCkgewotICAgICAgICB2YXIgZmQgPSBGUy5uZXh0ZmQoZmRfc3RhcnQs
IGZkX2VuZCk7Ci0gICAgICAgIHN0cmVhbS5mZCA9IGZkOwotICAgICAgICAvLyBjb21wYXRpYmls
aXR5Ci0gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHN0cmVhbSwgewotICAgICAgICAg
IG9iamVjdDogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIHN0cmVhbS5u
b2RlOyB9LAotICAgICAgICAgICAgc2V0OiBmdW5jdGlvbih2YWwpIHsgc3RyZWFtLm5vZGUgPSB2
YWw7IH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGlzUmVhZDogewotICAgICAgICAgICAgZ2V0
OiBmdW5jdGlvbigpIHsgcmV0dXJuIChzdHJlYW0uZmxhZ3MgJiAzKSAhPT0gMTsgfQotICAgICAg
ICAgIH0sCi0gICAgICAgICAgaXNXcml0ZTogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigp
IHsgcmV0dXJuIChzdHJlYW0uZmxhZ3MgJiAzKSAhPT0gMDsgfQotICAgICAgICAgIH0sCi0gICAg
ICAgICAgaXNBcHBlbmQ6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiAo
c3RyZWFtLmZsYWdzICYgOCk7IH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgICBG
Uy5zdHJlYW1zW2ZkXSA9IHN0cmVhbTsKLSAgICAgICAgcmV0dXJuIHN0cmVhbTsKLSAgICAgIH0s
Y2xvc2VTdHJlYW06ZnVuY3Rpb24gKGZkKSB7Ci0gICAgICAgIEZTLnN0cmVhbXNbZmRdID0gbnVs
bDsKLSAgICAgIH0sZ2V0TW9kZTpmdW5jdGlvbiAoY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAg
ICAgdmFyIG1vZGUgPSAwOwotICAgICAgICBpZiAoY2FuUmVhZCkgbW9kZSB8PSAyOTIgfCA3MzsK
LSAgICAgICAgaWYgKGNhbldyaXRlKSBtb2RlIHw9IDE0NjsKLSAgICAgICAgcmV0dXJuIG1vZGU7
Ci0gICAgICB9LGpvaW5QYXRoOmZ1bmN0aW9uIChwYXJ0cywgZm9yY2VSZWxhdGl2ZSkgewotICAg
ICAgICB2YXIgcGF0aCA9IFBBVEguam9pbi5hcHBseShudWxsLCBwYXJ0cyk7Ci0gICAgICAgIGlm
IChmb3JjZVJlbGF0aXZlICYmIHBhdGhbMF0gPT0gJy8nKSBwYXRoID0gcGF0aC5zdWJzdHIoMSk7
Ci0gICAgICAgIHJldHVybiBwYXRoOwotICAgICAgfSxhYnNvbHV0ZVBhdGg6ZnVuY3Rpb24gKHJl
bGF0aXZlLCBiYXNlKSB7Ci0gICAgICAgIHJldHVybiBQQVRILnJlc29sdmUoYmFzZSwgcmVsYXRp
dmUpOwotICAgICAgfSxzdGFuZGFyZGl6ZVBhdGg6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAg
cmV0dXJuIFBBVEgubm9ybWFsaXplKHBhdGgpOwotICAgICAgfSxmaW5kT2JqZWN0OmZ1bmN0aW9u
IChwYXRoLCBkb250UmVzb2x2ZUxhc3RMaW5rKSB7Ci0gICAgICAgIHZhciByZXQgPSBGUy5hbmFs
eXplUGF0aChwYXRoLCBkb250UmVzb2x2ZUxhc3RMaW5rKTsKLSAgICAgICAgaWYgKHJldC5leGlz
dHMpIHsKLSAgICAgICAgICByZXR1cm4gcmV0Lm9iamVjdDsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICBfX19zZXRFcnJObyhyZXQuZXJyb3IpOwotICAgICAgICAgIHJldHVybiBudWxsOwot
ICAgICAgICB9Ci0gICAgICB9LGFuYWx5emVQYXRoOmZ1bmN0aW9uIChwYXRoLCBkb250UmVzb2x2
ZUxhc3RMaW5rKSB7Ci0gICAgICAgIC8vIG9wZXJhdGUgZnJvbSB3aXRoaW4gdGhlIGNvbnRleHQg
b2YgdGhlIHN5bWxpbmsncyB0YXJnZXQKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICB2YXIgbG9v
a3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogIWRvbnRSZXNvbHZlTGFzdExpbmsg
fSk7Ci0gICAgICAgICAgcGF0aCA9IGxvb2t1cC5wYXRoOwotICAgICAgICB9IGNhdGNoIChlKSB7
Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHJldCA9IHsKLSAgICAgICAgICBpc1Jvb3Q6IGZhbHNl
LCBleGlzdHM6IGZhbHNlLCBlcnJvcjogMCwgbmFtZTogbnVsbCwgcGF0aDogbnVsbCwgb2JqZWN0
OiBudWxsLAotICAgICAgICAgIHBhcmVudEV4aXN0czogZmFsc2UsIHBhcmVudFBhdGg6IG51bGws
IHBhcmVudE9iamVjdDogbnVsbAotICAgICAgICB9OwotICAgICAgICB0cnkgewotICAgICAgICAg
IHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgcGFyZW50OiB0cnVlIH0pOwotICAg
ICAgICAgIHJldC5wYXJlbnRFeGlzdHMgPSB0cnVlOwotICAgICAgICAgIHJldC5wYXJlbnRQYXRo
ID0gbG9va3VwLnBhdGg7Ci0gICAgICAgICAgcmV0LnBhcmVudE9iamVjdCA9IGxvb2t1cC5ub2Rl
OwotICAgICAgICAgIHJldC5uYW1lID0gUEFUSC5iYXNlbmFtZShwYXRoKTsKLSAgICAgICAgICBs
b29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udFJlc29sdmVMYXN0TGlu
ayB9KTsKLSAgICAgICAgICByZXQuZXhpc3RzID0gdHJ1ZTsKLSAgICAgICAgICByZXQucGF0aCA9
IGxvb2t1cC5wYXRoOwotICAgICAgICAgIHJldC5vYmplY3QgPSBsb29rdXAubm9kZTsKLSAgICAg
ICAgICByZXQubmFtZSA9IGxvb2t1cC5ub2RlLm5hbWU7Ci0gICAgICAgICAgcmV0LmlzUm9vdCA9
IGxvb2t1cC5wYXRoID09PSAnLyc7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICBy
ZXQuZXJyb3IgPSBlLmVycm5vOwotICAgICAgICB9OwotICAgICAgICByZXR1cm4gcmV0OwotICAg
ICAgfSxjcmVhdGVGb2xkZXI6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgY2FuUmVhZCwgY2FuV3Jp
dGUpIHsKLSAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0
cmluZycgPyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICB2YXIg
bW9kZSA9IEZTLmdldE1vZGUoY2FuUmVhZCwgY2FuV3JpdGUpOwotICAgICAgICByZXR1cm4gRlMu
bWtkaXIocGF0aCwgbW9kZSk7Ci0gICAgICB9LGNyZWF0ZVBhdGg6ZnVuY3Rpb24gKHBhcmVudCwg
cGF0aCwgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgcGFyZW50ID0gdHlwZW9mIHBhcmVu
dCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCk7Ci0gICAgICAgIHZh
ciBwYXJ0cyA9IHBhdGguc3BsaXQoJy8nKS5yZXZlcnNlKCk7Ci0gICAgICAgIHdoaWxlIChwYXJ0
cy5sZW5ndGgpIHsKLSAgICAgICAgICB2YXIgcGFydCA9IHBhcnRzLnBvcCgpOwotICAgICAgICAg
IGlmICghcGFydCkgY29udGludWU7Ci0gICAgICAgICAgdmFyIGN1cnJlbnQgPSBQQVRILmpvaW4o
cGFyZW50LCBwYXJ0KTsKLSAgICAgICAgICB0cnkgewotICAgICAgICAgICAgRlMubWtkaXIoY3Vy
cmVudCwgMDc3Nyk7Ci0gICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgLy8gaWdu
b3JlIEVFWElTVAotICAgICAgICAgIH0KLSAgICAgICAgICBwYXJlbnQgPSBjdXJyZW50OwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiBjdXJyZW50OwotICAgICAgfSxjcmVhdGVGaWxlOmZ1bmN0
aW9uIChwYXJlbnQsIG5hbWUsIHByb3BlcnRpZXMsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAg
ICAgIHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFy
ZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgdmFyIG1vZGUgPSBGUy5n
ZXRNb2RlKGNhblJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgcmV0dXJuIEZTLmNyZWF0ZShwYXRo
LCBtb2RlKTsKLSAgICAgIH0sY3JlYXRlRGF0YUZpbGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwg
ZGF0YSwgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4o
dHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCks
IG5hbWUpOwotICAgICAgICB2YXIgbW9kZSA9IEZTLmdldE1vZGUoY2FuUmVhZCwgY2FuV3JpdGUp
OwotICAgICAgICB2YXIgbm9kZSA9IEZTLmNyZWF0ZShwYXRoLCBtb2RlKTsKLSAgICAgICAgaWYg
KGRhdGEpIHsKLSAgICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7Ci0gICAg
ICAgICAgICB2YXIgYXJyID0gbmV3IEFycmF5KGRhdGEubGVuZ3RoKTsKLSAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwLCBsZW4gPSBkYXRhLmxlbmd0aDsgaSA8IGxlbjsgKytpKSBhcnJbaV0gPSBk
YXRhLmNoYXJDb2RlQXQoaSk7Ci0gICAgICAgICAgICBkYXRhID0gYXJyOwotICAgICAgICAgIH0K
LSAgICAgICAgICAvLyBtYWtlIHN1cmUgd2UgY2FuIHdyaXRlIHRvIHRoZSBmaWxlCi0gICAgICAg
ICAgRlMuY2htb2QocGF0aCwgbW9kZSB8IDE0Nik7Ci0gICAgICAgICAgdmFyIHN0cmVhbSA9IEZT
Lm9wZW4ocGF0aCwgJ3cnKTsKLSAgICAgICAgICBGUy53cml0ZShzdHJlYW0sIGRhdGEsIDAsIGRh
dGEubGVuZ3RoLCAwKTsKLSAgICAgICAgICBGUy5jbG9zZShzdHJlYW0pOwotICAgICAgICAgIEZT
LmNobW9kKHBhdGgsIG1vZGUpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlOwotICAg
ICAgfSxjcmVhdGVEZXZpY2U6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgaW5wdXQsIG91dHB1dCkg
ewotICAgICAgICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5n
JyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2Rl
ID0gaW5wdXQgJiYgb3V0cHV0ID8gMDc3NyA6IChpbnB1dCA/IDAzMzMgOiAwNTU1KTsKLSAgICAg
ICAgaWYgKCFGUy5jcmVhdGVEZXZpY2UubWFqb3IpIEZTLmNyZWF0ZURldmljZS5tYWpvciA9IDY0
OwotICAgICAgICB2YXIgZGV2ID0gRlMubWFrZWRldihGUy5jcmVhdGVEZXZpY2UubWFqb3IrKywg
MCk7Ci0gICAgICAgIC8vIENyZWF0ZSBhIGZha2UgZGV2aWNlIHRoYXQgYSBzZXQgb2Ygc3RyZWFt
IG9wcyB0byBlbXVsYXRlCi0gICAgICAgIC8vIHRoZSBvbGQgYmVoYXZpb3IuCi0gICAgICAgIEZT
LnJlZ2lzdGVyRGV2aWNlKGRldiwgewotICAgICAgICAgIG9wZW46IGZ1bmN0aW9uKHN0cmVhbSkg
ewotICAgICAgICAgICAgc3RyZWFtLnNlZWthYmxlID0gZmFsc2U7Ci0gICAgICAgICAgfSwKLSAg
ICAgICAgICBjbG9zZTogZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgICAgICAgICAvLyBmbHVzaCBh
bnkgcGVuZGluZyBsaW5lIGRhdGEKLSAgICAgICAgICAgIGlmIChvdXRwdXQgJiYgb3V0cHV0LmJ1
ZmZlciAmJiBvdXRwdXQuYnVmZmVyLmxlbmd0aCkgewotICAgICAgICAgICAgICBvdXRwdXQoMTAp
OwotICAgICAgICAgICAgfQotICAgICAgICAgIH0sCi0gICAgICAgICAgcmVhZDogZnVuY3Rpb24o
c3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3MgLyogaWdub3JlZCAqLykgewotICAg
ICAgICAgICAgdmFyIGJ5dGVzUmVhZCA9IDA7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgIHZhciByZXN1bHQ7Ci0gICAgICAgICAg
ICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5wdXQoKTsKLSAgICAgICAgICAg
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9y
KEVSUk5PX0NPREVTLkVJTyk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKHJl
c3VsdCA9PT0gdW5kZWZpbmVkICYmIGJ5dGVzUmVhZCA9PT0gMCkgewotICAgICAgICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBR0FJTik7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVu
ZGVmaW5lZCkgYnJlYWs7Ci0gICAgICAgICAgICAgIGJ5dGVzUmVhZCsrOwotICAgICAgICAgICAg
ICBidWZmZXJbb2Zmc2V0K2ldID0gcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKGJ5dGVzUmVhZCkgewotICAgICAgICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBE
YXRlLm5vdygpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGJ5dGVzUmVhZDsK
LSAgICAgICAgICB9LAotICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbihzdHJlYW0sIGJ1ZmZlciwg
b2Zmc2V0LCBsZW5ndGgsIHBvcykgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBs
ZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIG91dHB1
dChidWZmZXJbb2Zmc2V0K2ldKTsKLSAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChsZW5ndGgpIHsKLSAg
ICAgICAgICAgICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHJldHVybiBpOwotICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0g
ICAgICAgIHJldHVybiBGUy5ta2RldihwYXRoLCBtb2RlLCBkZXYpOwotICAgICAgfSxjcmVhdGVM
aW5rOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIHRhcmdldCwgY2FuUmVhZCwgY2FuV3JpdGUpIHsK
LSAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycg
PyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICByZXR1cm4gRlMu
c3ltbGluayh0YXJnZXQsIHBhdGgpOwotICAgICAgfSxmb3JjZUxvYWRGaWxlOmZ1bmN0aW9uIChv
YmopIHsKLSAgICAgICAgaWYgKG9iai5pc0RldmljZSB8fCBvYmouaXNGb2xkZXIgfHwgb2JqLmxp
bmsgfHwgb2JqLmNvbnRlbnRzKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgdmFyIHN1Y2Nlc3MgPSB0
cnVlOwotICAgICAgICBpZiAodHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykg
ewotICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTGF6eSBsb2FkaW5nIHNob3VsZCBoYXZlIGJl
ZW4gcGVyZm9ybWVkIChjb250ZW50cyBzZXQpIGluIGNyZWF0ZUxhenlGaWxlLCBidXQgaXQgd2Fz
IG5vdC4gTGF6eSBsb2FkaW5nIG9ubHkgd29ya3MgaW4gd2ViIHdvcmtlcnMuIFVzZSAtLWVtYmVk
LWZpbGUgb3IgLS1wcmVsb2FkLWZpbGUgaW4gZW1jYyBvbiB0aGUgbWFpbiB0aHJlYWQuIik7Ci0g
ICAgICAgIH0gZWxzZSBpZiAoTW9kdWxlWydyZWFkJ10pIHsKLSAgICAgICAgICAvLyBDb21tYW5k
LWxpbmUuCi0gICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIC8vIFdBUk5JTkc6IENhbid0IHJl
YWQgYmluYXJ5IGZpbGVzIGluIFY4J3MgZDggb3IgdHJhY2Vtb25rZXkncyBqcywgYXMKLSAgICAg
ICAgICAgIC8vICAgICAgICAgIHJlYWQoKSB3aWxsIHRyeSB0byBwYXJzZSBVVEY4LgotICAgICAg
ICAgICAgb2JqLmNvbnRlbnRzID0gaW50QXJyYXlGcm9tU3RyaW5nKE1vZHVsZVsncmVhZCddKG9i
ai51cmwpLCB0cnVlKTsKLSAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBzdWNj
ZXNzID0gZmFsc2U7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcignQ2Fubm90IGxvYWQgd2l0aG91dCByZWFkKCkgb3IgWE1MSHR0cFJlcXVl
c3QuJyk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFzdWNjZXNzKSBfX19zZXRFcnJObyhFUlJO
T19DT0RFUy5FSU8pOwotICAgICAgICByZXR1cm4gc3VjY2VzczsKLSAgICAgIH0sY3JlYXRlTGF6
eUZpbGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgdXJsLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewot
ICAgICAgICBpZiAodHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykgewotICAg
ICAgICAgIGlmICghRU5WSVJPTk1FTlRfSVNfV09SS0VSKSB0aHJvdyAnQ2Fubm90IGRvIHN5bmNo
cm9ub3VzIGJpbmFyeSBYSFJzIG91dHNpZGUgd2Vid29ya2VycyBpbiBtb2Rlcm4gYnJvd3NlcnMu
IFVzZSAtLWVtYmVkLWZpbGUgb3IgLS1wcmVsb2FkLWZpbGUgaW4gZW1jYyc7Ci0gICAgICAgICAg
Ly8gTGF6eSBjaHVua2VkIFVpbnQ4QXJyYXkgKGltcGxlbWVudHMgZ2V0IGFuZCBsZW5ndGggZnJv
bSBVaW50OEFycmF5KS4gQWN0dWFsIGdldHRpbmcgaXMgYWJzdHJhY3RlZCBhd2F5IGZvciBldmVu
dHVhbCByZXVzZS4KLSAgICAgICAgICB2YXIgTGF6eVVpbnQ4QXJyYXkgPSBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIHRoaXMubGVuZ3RoS25vd24gPSBmYWxzZTsKLSAgICAgICAgICAgIHRoaXMu
Y2h1bmtzID0gW107IC8vIExvYWRlZCBjaHVua3MuIEluZGV4IGlzIHRoZSBjaHVuayBudW1iZXIK
LSAgICAgICAgICB9Ci0gICAgICAgICAgTGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLmdldCA9IGZ1
bmN0aW9uKGlkeCkgewotICAgICAgICAgICAgaWYgKGlkeCA+IHRoaXMubGVuZ3RoLTEgfHwgaWR4
IDwgMCkgewotICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdmFyIGNodW5rT2Zmc2V0ID0gaWR4ICUgdGhpcy5jaHVua1NpemU7Ci0gICAg
ICAgICAgICB2YXIgY2h1bmtOdW0gPSBNYXRoLmZsb29yKGlkeCAvIHRoaXMuY2h1bmtTaXplKTsK
LSAgICAgICAgICAgIHJldHVybiB0aGlzLmdldHRlcihjaHVua051bSlbY2h1bmtPZmZzZXRdOwot
ICAgICAgICAgIH0KLSAgICAgICAgICBMYXp5VWludDhBcnJheS5wcm90b3R5cGUuc2V0RGF0YUdl
dHRlciA9IGZ1bmN0aW9uKGdldHRlcikgewotICAgICAgICAgICAgdGhpcy5nZXR0ZXIgPSBnZXR0
ZXI7Ci0gICAgICAgICAgfQotICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5jYWNo
ZUxlbmd0aCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAvLyBGaW5kIGxlbmd0aAotICAg
ICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgICAgICAgICAg
IHhoci5vcGVuKCdIRUFEJywgdXJsLCBmYWxzZSk7Ci0gICAgICAgICAgICAgIHhoci5zZW5kKG51
bGwpOwotICAgICAgICAgICAgICBpZiAoISh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVz
IDwgMzAwIHx8IHhoci5zdGF0dXMgPT09IDMwNCkpIHRocm93IG5ldyBFcnJvcigiQ291bGRuJ3Qg
bG9hZCAiICsgdXJsICsgIi4gU3RhdHVzOiAiICsgeGhyLnN0YXR1cyk7Ci0gICAgICAgICAgICAg
IHZhciBkYXRhbGVuZ3RoID0gTnVtYmVyKHhoci5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1s
ZW5ndGgiKSk7Ci0gICAgICAgICAgICAgIHZhciBoZWFkZXI7Ci0gICAgICAgICAgICAgIHZhciBo
YXNCeXRlU2VydmluZyA9IChoZWFkZXIgPSB4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIkFjY2VwdC1S
YW5nZXMiKSkgJiYgaGVhZGVyID09PSAiYnl0ZXMiOwotICAgICAgICAgICAgICB2YXIgY2h1bmtT
aXplID0gMTAyNCoxMDI0OyAvLyBDaHVuayBzaXplIGluIGJ5dGVzCi0gICAgICAgICAgICAgIGlm
ICghaGFzQnl0ZVNlcnZpbmcpIGNodW5rU2l6ZSA9IGRhdGFsZW5ndGg7Ci0gICAgICAgICAgICAg
IC8vIEZ1bmN0aW9uIHRvIGdldCBhIHJhbmdlIGZyb20gdGhlIHJlbW90ZSBVUkwuCi0gICAgICAg
ICAgICAgIHZhciBkb1hIUiA9IChmdW5jdGlvbihmcm9tLCB0bykgewotICAgICAgICAgICAgICAg
IGlmIChmcm9tID4gdG8pIHRocm93IG5ldyBFcnJvcigiaW52YWxpZCByYW5nZSAoIiArIGZyb20g
KyAiLCAiICsgdG8gKyAiKSBvciBubyBieXRlcyByZXF1ZXN0ZWQhIik7Ci0gICAgICAgICAgICAg
ICAgaWYgKHRvID4gZGF0YWxlbmd0aC0xKSB0aHJvdyBuZXcgRXJyb3IoIm9ubHkgIiArIGRhdGFs
ZW5ndGggKyAiIGJ5dGVzIGF2YWlsYWJsZSEgcHJvZ3JhbW1lciBlcnJvciEiKTsKLSAgICAgICAg
ICAgICAgICAvLyBUT0RPOiBVc2UgbW96UmVzcG9uc2VBcnJheUJ1ZmZlciwgcmVzcG9uc2VTdHJl
YW0sIGV0Yy4gaWYgYXZhaWxhYmxlLgotICAgICAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1M
SHR0cFJlcXVlc3QoKTsKLSAgICAgICAgICAgICAgICB4aHIub3BlbignR0VUJywgdXJsLCBmYWxz
ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGRhdGFsZW5ndGggIT09IGNodW5rU2l6ZSkgeGhyLnNl
dFJlcXVlc3RIZWFkZXIoIlJhbmdlIiwgImJ5dGVzPSIgKyBmcm9tICsgIi0iICsgdG8pOwotICAg
ICAgICAgICAgICAgIC8vIFNvbWUgaGludHMgdG8gdGhlIGJyb3dzZXIgdGhhdCB3ZSB3YW50IGJp
bmFyeSBkYXRhLgotICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgVWludDhBcnJheSAhPSAndW5k
ZWZpbmVkJykgeGhyLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcic7Ci0gICAgICAgICAgICAg
ICAgaWYgKHhoci5vdmVycmlkZU1pbWVUeXBlKSB7Ci0gICAgICAgICAgICAgICAgICB4aHIub3Zl
cnJpZGVNaW1lVHlwZSgndGV4dC9wbGFpbjsgY2hhcnNldD14LXVzZXItZGVmaW5lZCcpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB4aHIuc2VuZChudWxsKTsKLSAgICAgICAg
ICAgICAgICBpZiAoISh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwIHx8IHho
ci5zdGF0dXMgPT09IDMwNCkpIHRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgbG9hZCAiICsgdXJs
ICsgIi4gU3RhdHVzOiAiICsgeGhyLnN0YXR1cyk7Ci0gICAgICAgICAgICAgICAgaWYgKHhoci5y
ZXNwb25zZSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVp
bnQ4QXJyYXkoeGhyLnJlc3BvbnNlIHx8IFtdKTsKLSAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGludEFycmF5RnJvbVN0cmluZyh4aHIucmVzcG9uc2VU
ZXh0IHx8ICcnLCB0cnVlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICB2YXIgbGF6eUFycmF5ID0gdGhpczsKLSAgICAgICAgICAgICAgbGF6eUFy
cmF5LnNldERhdGFHZXR0ZXIoZnVuY3Rpb24oY2h1bmtOdW0pIHsKLSAgICAgICAgICAgICAgICB2
YXIgc3RhcnQgPSBjaHVua051bSAqIGNodW5rU2l6ZTsKLSAgICAgICAgICAgICAgICB2YXIgZW5k
ID0gKGNodW5rTnVtKzEpICogY2h1bmtTaXplIC0gMTsgLy8gaW5jbHVkaW5nIHRoaXMgYnl0ZQot
ICAgICAgICAgICAgICAgIGVuZCA9IE1hdGgubWluKGVuZCwgZGF0YWxlbmd0aC0xKTsgLy8gaWYg
ZGF0YWxlbmd0aC0xIGlzIHNlbGVjdGVkLCB0aGlzIGlzIHRoZSBsYXN0IGJsb2NrCi0gICAgICAg
ICAgICAgICAgaWYgKHR5cGVvZihsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXSkgPT09ICJ1bmRl
ZmluZWQiKSB7Ci0gICAgICAgICAgICAgICAgICBsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXSA9
IGRvWEhSKHN0YXJ0LCBlbmQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBp
ZiAodHlwZW9mKGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dKSA9PT0gInVuZGVmaW5lZCIpIHRo
cm93IG5ldyBFcnJvcigiZG9YSFIgZmFpbGVkISIpOwotICAgICAgICAgICAgICAgIHJldHVybiBs
YXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXTsKLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgIHRoaXMuX2xlbmd0aCA9IGRhdGFsZW5ndGg7Ci0gICAgICAgICAgICAgIHRoaXMuX2NodW5r
U2l6ZSA9IGNodW5rU2l6ZTsKLSAgICAgICAgICAgICAgdGhpcy5sZW5ndGhLbm93biA9IHRydWU7
Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBsYXp5QXJyYXkgPSBuZXcgTGF6eVVpbnQ4QXJy
YXkoKTsKLSAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobGF6eUFycmF5LCAibGVuZ3Ro
IiwgewotICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAg
aWYoIXRoaXMubGVuZ3RoS25vd24pIHsKLSAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhY2hl
TGVuZ3RoKCk7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICByZXR1cm4g
dGhpcy5fbGVuZ3RoOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlBcnJheSwgImNodW5rU2l6ZSIsIHsKLSAgICAgICAg
ICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLmxlbmd0
aEtub3duKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxlbmd0aCgpOwotICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NodW5rU2l6
ZTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgIH0pOwotICAgICAgICAgIHZhciBwcm9wZXJ0
aWVzID0geyBpc0RldmljZTogZmFsc2UsIGNvbnRlbnRzOiBsYXp5QXJyYXkgfTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHsgaXNEZXZpY2U6IGZhbHNlLCB1
cmw6IHVybCB9OwotICAgICAgICB9Ci0gICAgICAgIHZhciBub2RlID0gRlMuY3JlYXRlRmlsZShw
YXJlbnQsIG5hbWUsIHByb3BlcnRpZXMsIGNhblJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgLy8g
VGhpcyBpcyBhIHRvdGFsIGhhY2ssIGJ1dCBJIHdhbnQgdG8gZ2V0IHRoaXMgbGF6eSBmaWxlIGNv
ZGUgb3V0IG9mIHRoZQotICAgICAgICAvLyBjb3JlIG9mIE1FTUZTLiBJZiB3ZSB3YW50IHRvIGtl
ZXAgdGhpcyBsYXp5IGZpbGUgY29uY2VwdCBJIGZlZWwgaXQgc2hvdWxkCi0gICAgICAgIC8vIGJl
IGl0cyBvd24gdGhpbiBMQVpZRlMgcHJveHlpbmcgY2FsbHMgdG8gTUVNRlMuCi0gICAgICAgIGlm
IChwcm9wZXJ0aWVzLmNvbnRlbnRzKSB7Ci0gICAgICAgICAgbm9kZS5jb250ZW50cyA9IHByb3Bl
cnRpZXMuY29udGVudHM7Ci0gICAgICAgIH0gZWxzZSBpZiAocHJvcGVydGllcy51cmwpIHsKLSAg
ICAgICAgICBub2RlLmNvbnRlbnRzID0gbnVsbDsKLSAgICAgICAgICBub2RlLnVybCA9IHByb3Bl
cnRpZXMudXJsOwotICAgICAgICB9Ci0gICAgICAgIC8vIG92ZXJyaWRlIGVhY2ggc3RyZWFtIG9w
IHdpdGggb25lIHRoYXQgdHJpZXMgdG8gZm9yY2UgbG9hZCB0aGUgbGF6eSBmaWxlIGZpcnN0Ci0g
ICAgICAgIHZhciBzdHJlYW1fb3BzID0ge307Ci0gICAgICAgIHZhciBrZXlzID0gT2JqZWN0Lmtl
eXMobm9kZS5zdHJlYW1fb3BzKTsKLSAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkg
ewotICAgICAgICAgIHZhciBmbiA9IG5vZGUuc3RyZWFtX29wc1trZXldOwotICAgICAgICAgIHN0
cmVhbV9vcHNba2V5XSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaWYgKCFGUy5mb3JjZUxv
YWRGaWxlKG5vZGUpKSB7Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVJTyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gZm4uYXBw
bHkobnVsbCwgYXJndW1lbnRzKTsKLSAgICAgICAgICB9OwotICAgICAgICB9KTsKLSAgICAgICAg
Ly8gdXNlIGEgY3VzdG9tIHJlYWQgZnVuY3Rpb24KLSAgICAgICAgc3RyZWFtX29wcy5yZWFkID0g
ZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewotICAg
ICAgICAgIGlmICghRlMuZm9yY2VMb2FkRmlsZShub2RlKSkgewotICAgICAgICAgICAgdGhyb3cg
bmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7Ci0gICAgICAgICAgdmFyIHNp
emUgPSBNYXRoLm1pbihjb250ZW50cy5sZW5ndGggLSBwb3NpdGlvbiwgbGVuZ3RoKTsKLSAgICAg
ICAgICBpZiAoY29udGVudHMuc2xpY2UpIHsgLy8gbm9ybWFsIGFycmF5Ci0gICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICAgICAgICBidWZmZXJbb2Zm
c2V0ICsgaV0gPSBjb250ZW50c1twb3NpdGlvbiArIGldOwotICAgICAgICAgICAgfQotICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykg
eyAvLyBMYXp5VWludDhBcnJheSBmcm9tIHN5bmMgYmluYXJ5IFhIUgotICAgICAgICAgICAgICBi
dWZmZXJbb2Zmc2V0ICsgaV0gPSBjb250ZW50cy5nZXQocG9zaXRpb24gKyBpKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIHNpemU7Ci0gICAgICAgIH07Ci0g
ICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IHN0cmVhbV9vcHM7Ci0gICAgICAgIHJldHVybiBub2Rl
OwotICAgICAgfSxjcmVhdGVQcmVsb2FkZWRGaWxlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIHVy
bCwgY2FuUmVhZCwgY2FuV3JpdGUsIG9ubG9hZCwgb25lcnJvciwgZG9udENyZWF0ZUZpbGUpIHsK
LSAgICAgICAgQnJvd3Nlci5pbml0KCk7Ci0gICAgICAgIC8vIFRPRE8gd2Ugc2hvdWxkIGFsbG93
IHBlb3BsZSB0byBqdXN0IHBhc3MgaW4gYSBjb21wbGV0ZSBmaWxlbmFtZSBpbnN0ZWFkCi0gICAg
ICAgIC8vIG9mIHBhcmVudCBhbmQgbmFtZSBiZWluZyB0aGF0IHdlIGp1c3Qgam9pbiB0aGVtIGFu
eXdheXMKLSAgICAgICAgdmFyIGZ1bGxuYW1lID0gUEFUSC5yZXNvbHZlKFBBVEguam9pbihwYXJl
bnQsIG5hbWUpKTsKLSAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc0RhdGEoYnl0ZUFycmF5KSB7Ci0g
ICAgICAgICAgZnVuY3Rpb24gZmluaXNoKGJ5dGVBcnJheSkgewotICAgICAgICAgICAgaWYgKCFk
b250Q3JlYXRlRmlsZSkgewotICAgICAgICAgICAgICBGUy5jcmVhdGVEYXRhRmlsZShwYXJlbnQs
IG5hbWUsIGJ5dGVBcnJheSwgY2FuUmVhZCwgY2FuV3JpdGUpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2FkKCk7Ci0gICAgICAgICAgICByZW1vdmVSdW5EZXBl
bmRlbmN5KCdjcCAnICsgZnVsbG5hbWUpOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgaGFu
ZGxlZCA9IGZhbHNlOwotICAgICAgICAgIE1vZHVsZVsncHJlbG9hZFBsdWdpbnMnXS5mb3JFYWNo
KGZ1bmN0aW9uKHBsdWdpbikgewotICAgICAgICAgICAgaWYgKGhhbmRsZWQpIHJldHVybjsKLSAg
ICAgICAgICAgIGlmIChwbHVnaW5bJ2NhbkhhbmRsZSddKGZ1bGxuYW1lKSkgewotICAgICAgICAg
ICAgICBwbHVnaW5bJ2hhbmRsZSddKGJ5dGVBcnJheSwgZnVsbG5hbWUsIGZpbmlzaCwgZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG9uZXJyb3IpIG9uZXJyb3IoKTsKLSAgICAgICAg
ICAgICAgICByZW1vdmVSdW5EZXBlbmRlbmN5KCdjcCAnICsgZnVsbG5hbWUpOwotICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgICAgaGFuZGxlZCA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgfSk7Ci0gICAgICAgICAgaWYgKCFoYW5kbGVkKSBmaW5pc2goYnl0ZUFycmF5KTsK
LSAgICAgICAgfQotICAgICAgICBhZGRSdW5EZXBlbmRlbmN5KCdjcCAnICsgZnVsbG5hbWUpOwot
ICAgICAgICBpZiAodHlwZW9mIHVybCA9PSAnc3RyaW5nJykgewotICAgICAgICAgIEJyb3dzZXIu
YXN5bmNMb2FkKHVybCwgZnVuY3Rpb24oYnl0ZUFycmF5KSB7Ci0gICAgICAgICAgICBwcm9jZXNz
RGF0YShieXRlQXJyYXkpOwotICAgICAgICAgIH0sIG9uZXJyb3IpOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgIHByb2Nlc3NEYXRhKHVybCk7Ci0gICAgICAgIH0KLSAgICAgIH0sY3JlYXRl
RGVmYXVsdERpcmVjdG9yaWVzOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgRlMubWtkaXIoJy90bXAn
LCAwNzc3KTsKLSAgICAgIH0sY3JlYXRlRGVmYXVsdERldmljZXM6ZnVuY3Rpb24gKCkgewotICAg
ICAgICAvLyBjcmVhdGUgL2RldgotICAgICAgICBGUy5ta2RpcignL2RldicsIDA3NzcpOwotICAg
ICAgICAvLyBzZXR1cCAvZGV2L251bGwKLSAgICAgICAgRlMucmVnaXN0ZXJEZXZpY2UoRlMubWFr
ZWRldigxLCAzKSwgewotICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfSwK
LSAgICAgICAgICB3cml0ZTogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9Ci0gICAgICAgIH0pOwot
ICAgICAgICBGUy5ta2RldignL2Rldi9udWxsJywgMDY2NiwgRlMubWFrZWRldigxLCAzKSk7Ci0g
ICAgICAgIC8vIHNldHVwIC9kZXYvdHR5IGFuZCAvZGV2L3R0eTEKLSAgICAgICAgLy8gc3RkZXJy
IG5lZWRzIHRvIHByaW50IG91dHB1dCB1c2luZyBNb2R1bGVbJ3ByaW50RXJyJ10KLSAgICAgICAg
Ly8gc28gd2UgcmVnaXN0ZXIgYSBzZWNvbmQgdHR5IGp1c3QgZm9yIGl0LgotICAgICAgICBUVFku
cmVnaXN0ZXIoRlMubWFrZWRldig1LCAwKSwgVFRZLmRlZmF1bHRfdHR5X29wcyk7Ci0gICAgICAg
IFRUWS5yZWdpc3RlcihGUy5tYWtlZGV2KDYsIDApLCBUVFkuZGVmYXVsdF90dHkxX29wcyk7Ci0g
ICAgICAgIEZTLm1rZGV2KCcvZGV2L3R0eScsIDA2NjYsIEZTLm1ha2VkZXYoNSwgMCkpOwotICAg
ICAgICBGUy5ta2RldignL2Rldi90dHkxJywgMDY2NiwgRlMubWFrZWRldig2LCAwKSk7Ci0gICAg
ICAgIC8vIHdlJ3JlIG5vdCBnb2luZyB0byBlbXVsYXRlIHRoZSBhY3R1YWwgc2htIGRldmljZSwK
LSAgICAgICAgLy8ganVzdCBjcmVhdGUgdGhlIHRtcCBkaXJzIHRoYXQgcmVzaWRlIGluIGl0IGNv
bW1vbmx5Ci0gICAgICAgIEZTLm1rZGlyKCcvZGV2L3NobScsIDA3NzcpOwotICAgICAgICBGUy5t
a2RpcignL2Rldi9zaG0vdG1wJywgMDc3Nyk7Ci0gICAgICB9LGNyZWF0ZVN0YW5kYXJkU3RyZWFt
czpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIC8vIFRPRE8gZGVwcmVjYXRlIHRoZSBvbGQgZnVuY3Rp
b25hbGl0eSBvZiBhIHNpbmdsZQotICAgICAgICAvLyBpbnB1dCAvIG91dHB1dCBjYWxsYmFjayBh
bmQgdGhhdCB1dGlsaXplcyBGUy5jcmVhdGVEZXZpY2UKLSAgICAgICAgLy8gYW5kIGluc3RlYWQg
cmVxdWlyZSBhIHVuaXF1ZSBzZXQgb2Ygc3RyZWFtIG9wcwotICAgICAgICAvLyBieSBkZWZhdWx0
LCB3ZSBzeW1saW5rIHRoZSBzdGFuZGFyZCBzdHJlYW1zIHRvIHRoZQotICAgICAgICAvLyBkZWZh
dWx0IHR0eSBkZXZpY2VzLiBob3dldmVyLCBpZiB0aGUgc3RhbmRhcmQgc3RyZWFtcwotICAgICAg
ICAvLyBoYXZlIGJlZW4gb3ZlcndyaXR0ZW4gd2UgY3JlYXRlIGEgdW5pcXVlIGRldmljZSBmb3IK
LSAgICAgICAgLy8gdGhlbSBpbnN0ZWFkLgotICAgICAgICBpZiAoTW9kdWxlWydzdGRpbiddKSB7
Ci0gICAgICAgICAgRlMuY3JlYXRlRGV2aWNlKCcvZGV2JywgJ3N0ZGluJywgTW9kdWxlWydzdGRp
biddKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBGUy5zeW1saW5rKCcvZGV2L3R0eScs
ICcvZGV2L3N0ZGluJyk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKE1vZHVsZVsnc3Rkb3V0J10p
IHsKLSAgICAgICAgICBGUy5jcmVhdGVEZXZpY2UoJy9kZXYnLCAnc3Rkb3V0JywgbnVsbCwgTW9k
dWxlWydzdGRvdXQnXSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgRlMuc3ltbGluaygn
L2Rldi90dHknLCAnL2Rldi9zdGRvdXQnKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoTW9kdWxl
WydzdGRlcnInXSkgewotICAgICAgICAgIEZTLmNyZWF0ZURldmljZSgnL2RldicsICdzdGRlcnIn
LCBudWxsLCBNb2R1bGVbJ3N0ZGVyciddKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBG
Uy5zeW1saW5rKCcvZGV2L3R0eTEnLCAnL2Rldi9zdGRlcnInKTsKLSAgICAgICAgfQotICAgICAg
ICAvLyBvcGVuIGRlZmF1bHQgc3RyZWFtcyBmb3IgdGhlIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVy
ciBkZXZpY2VzCi0gICAgICAgIHZhciBzdGRpbiA9IEZTLm9wZW4oJy9kZXYvc3RkaW4nLCAncicp
OwotICAgICAgICBIRUFQMzJbKChfc3RkaW4pPj4yKV09c3RkaW4uZmQ7Ci0gICAgICAgIGFzc2Vy
dChzdGRpbi5mZCA9PT0gMSwgJ2ludmFsaWQgaGFuZGxlIGZvciBzdGRpbiAoJyArIHN0ZGluLmZk
ICsgJyknKTsKLSAgICAgICAgdmFyIHN0ZG91dCA9IEZTLm9wZW4oJy9kZXYvc3Rkb3V0JywgJ3cn
KTsKLSAgICAgICAgSEVBUDMyWygoX3N0ZG91dCk+PjIpXT1zdGRvdXQuZmQ7Ci0gICAgICAgIGFz
c2VydChzdGRvdXQuZmQgPT09IDIsICdpbnZhbGlkIGhhbmRsZSBmb3Igc3Rkb3V0ICgnICsgc3Rk
b3V0LmZkICsgJyknKTsKLSAgICAgICAgdmFyIHN0ZGVyciA9IEZTLm9wZW4oJy9kZXYvc3RkZXJy
JywgJ3cnKTsKLSAgICAgICAgSEVBUDMyWygoX3N0ZGVycik+PjIpXT1zdGRlcnIuZmQ7Ci0gICAg
ICAgIGFzc2VydChzdGRlcnIuZmQgPT09IDMsICdpbnZhbGlkIGhhbmRsZSBmb3Igc3RkZXJyICgn
ICsgc3RkZXJyLmZkICsgJyknKTsKLSAgICAgIH0sc3RhdGljSW5pdDpmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIEZTLm5hbWVfdGFibGUgPSBuZXcgQXJyYXkoNDA5Nik7Ci0gICAgICAgIEZTLnJvb3Qg
PSBGUy5jcmVhdGVOb2RlKG51bGwsICcvJywgMDA0MDAwMCB8IDA3NzcsIDApOwotICAgICAgICBG
Uy5tb3VudChNRU1GUywge30sICcvJyk7Ci0gICAgICAgIEZTLmNyZWF0ZURlZmF1bHREaXJlY3Rv
cmllcygpOwotICAgICAgICBGUy5jcmVhdGVEZWZhdWx0RGV2aWNlcygpOwotICAgICAgfSxpbml0
OmZ1bmN0aW9uIChpbnB1dCwgb3V0cHV0LCBlcnJvcikgewotICAgICAgICBhc3NlcnQoIUZTLmlu
aXQuaW5pdGlhbGl6ZWQsICdGUy5pbml0IHdhcyBwcmV2aW91c2x5IGNhbGxlZC4gSWYgeW91IHdh
bnQgdG8gaW5pdGlhbGl6ZSBsYXRlciB3aXRoIGN1c3RvbSBwYXJhbWV0ZXJzLCByZW1vdmUgYW55
IGVhcmxpZXIgY2FsbHMgKG5vdGUgdGhhdCBvbmUgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0
aGUgZ2VuZXJhdGVkIGNvZGUpJyk7Ci0gICAgICAgIEZTLmluaXQuaW5pdGlhbGl6ZWQgPSB0cnVl
OwotICAgICAgICAvLyBBbGxvdyBNb2R1bGUuc3RkaW4gZXRjLiB0byBwcm92aWRlIGRlZmF1bHRz
LCBpZiBub25lIGV4cGxpY2l0bHkgcGFzc2VkIHRvIHVzIGhlcmUKLSAgICAgICAgTW9kdWxlWydz
dGRpbiddID0gaW5wdXQgfHwgTW9kdWxlWydzdGRpbiddOwotICAgICAgICBNb2R1bGVbJ3N0ZG91
dCddID0gb3V0cHV0IHx8IE1vZHVsZVsnc3Rkb3V0J107Ci0gICAgICAgIE1vZHVsZVsnc3RkZXJy
J10gPSBlcnJvciB8fCBNb2R1bGVbJ3N0ZGVyciddOwotICAgICAgICBGUy5jcmVhdGVTdGFuZGFy
ZFN0cmVhbXMoKTsKLSAgICAgIH0scXVpdDpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIEZTLmluaXQu
aW5pdGlhbGl6ZWQgPSBmYWxzZTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBGUy5zdHJl
YW1zLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIHN0cmVhbSA9IEZTLnN0cmVhbXNbaV07
Ci0gICAgICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgIH0KLSAgICAgICAgICBGUy5jbG9zZShzdHJlYW0pOwotICAgICAgICB9Ci0gICAgICB9LG1v
dW50OmZ1bmN0aW9uICh0eXBlLCBvcHRzLCBtb3VudHBvaW50KSB7Ci0gICAgICAgIHZhciBtb3Vu
dCA9IHsKLSAgICAgICAgICB0eXBlOiB0eXBlLAotICAgICAgICAgIG9wdHM6IG9wdHMsCi0gICAg
ICAgICAgbW91bnRwb2ludDogbW91bnRwb2ludCwKLSAgICAgICAgICByb290OiBudWxsCi0gICAg
ICAgIH07Ci0gICAgICAgIHZhciBsb29rdXA7Ci0gICAgICAgIGlmIChtb3VudHBvaW50KSB7Ci0g
ICAgICAgICAgbG9va3VwID0gRlMubG9va3VwUGF0aChtb3VudHBvaW50LCB7IGZvbGxvdzogZmFs
c2UgfSk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gY3JlYXRlIGEgcm9vdCBub2RlIGZvciB0aGUg
ZnMKLSAgICAgICAgdmFyIHJvb3QgPSB0eXBlLm1vdW50KG1vdW50KTsKLSAgICAgICAgcm9vdC5t
b3VudCA9IG1vdW50OwotICAgICAgICBtb3VudC5yb290ID0gcm9vdDsKLSAgICAgICAgLy8gYXNz
aWduIHRoZSBtb3VudCBpbmZvIHRvIHRoZSBtb3VudHBvaW50J3Mgbm9kZQotICAgICAgICBpZiAo
bG9va3VwKSB7Ci0gICAgICAgICAgbG9va3VwLm5vZGUubW91bnQgPSBtb3VudDsKLSAgICAgICAg
ICBsb29rdXAubm9kZS5tb3VudGVkID0gdHJ1ZTsKLSAgICAgICAgICAvLyBjb21wYXRpYmlsaXR5
IHVwZGF0ZSBGUy5yb290IGlmIHdlIG1vdW50IHRvIC8KLSAgICAgICAgICBpZiAobW91bnRwb2lu
dCA9PT0gJy8nKSB7Ci0gICAgICAgICAgICBGUy5yb290ID0gbW91bnQucm9vdDsKLSAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJvb3Q7Ci0gICAgICB9LGxvb2t1cDpmdW5j
dGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAgICAgIHJldHVybiBwYXJlbnQubm9kZV9vcHMubG9v
a3VwKHBhcmVudCwgbmFtZSk7Ci0gICAgICB9LG1rbm9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlLCBk
ZXYpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6
IHRydWUgfSk7Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFy
IG5hbWUgPSBQQVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5Q3Jl
YXRlKHBhcmVudCwgbmFtZSk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghcGFyZW50Lm5v
ZGVfb3BzLm1rbm9kKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBwYXJlbnQubm9kZV9vcHMu
bWtub2QocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpOwotICAgICAgfSxjcmVhdGU6ZnVuY3Rpb24g
KHBhdGgsIG1vZGUpIHsKLSAgICAgICAgbW9kZSAmPSA0MDk1OwotICAgICAgICBtb2RlIHw9IDAx
MDAwMDA7Ci0gICAgICAgIHJldHVybiBGUy5ta25vZChwYXRoLCBtb2RlLCAwKTsKLSAgICAgIH0s
bWtkaXI6ZnVuY3Rpb24gKHBhdGgsIG1vZGUpIHsKLSAgICAgICAgbW9kZSAmPSA1MTEgfCAwMDAx
MDAwOwotICAgICAgICBtb2RlIHw9IDAwNDAwMDA7Ci0gICAgICAgIHJldHVybiBGUy5ta25vZChw
YXRoLCBtb2RlLCAwKTsKLSAgICAgIH0sbWtkZXY6ZnVuY3Rpb24gKHBhdGgsIG1vZGUsIGRldikg
ewotICAgICAgICBtb2RlIHw9IDAwMjAwMDA7Ci0gICAgICAgIHJldHVybiBGUy5ta25vZChwYXRo
LCBtb2RlLCBkZXYpOwotICAgICAgfSxzeW1saW5rOmZ1bmN0aW9uIChvbGRwYXRoLCBuZXdwYXRo
KSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKG5ld3BhdGgsIHsgcGFyZW50
OiB0cnVlIH0pOwotICAgICAgICB2YXIgcGFyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIHZh
ciBuZXduYW1lID0gUEFUSC5iYXNlbmFtZShuZXdwYXRoKTsKLSAgICAgICAgdmFyIGVyciA9IEZT
Lm1heUNyZWF0ZShwYXJlbnQsIG5ld25hbWUpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
IXBhcmVudC5ub2RlX29wcy5zeW1saW5rKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5v
RXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBwYXJl
bnQubm9kZV9vcHMuc3ltbGluayhwYXJlbnQsIG5ld25hbWUsIG9sZHBhdGgpOwotICAgICAgfSxy
ZW5hbWU6ZnVuY3Rpb24gKG9sZF9wYXRoLCBuZXdfcGF0aCkgewotICAgICAgICB2YXIgb2xkX2Rp
cm5hbWUgPSBQQVRILmRpcm5hbWUob2xkX3BhdGgpOwotICAgICAgICB2YXIgbmV3X2Rpcm5hbWUg
PSBQQVRILmRpcm5hbWUobmV3X3BhdGgpOwotICAgICAgICB2YXIgb2xkX25hbWUgPSBQQVRILmJh
c2VuYW1lKG9sZF9wYXRoKTsKLSAgICAgICAgdmFyIG5ld19uYW1lID0gUEFUSC5iYXNlbmFtZShu
ZXdfcGF0aCk7Ci0gICAgICAgIC8vIHBhcmVudHMgbXVzdCBleGlzdAotICAgICAgICB2YXIgbG9v
a3VwLCBvbGRfZGlyLCBuZXdfZGlyOwotICAgICAgICB0cnkgewotICAgICAgICAgIGxvb2t1cCA9
IEZTLmxvb2t1cFBhdGgob2xkX3BhdGgsIHsgcGFyZW50OiB0cnVlIH0pOwotICAgICAgICAgIG9s
ZF9kaXIgPSBsb29rdXAubm9kZTsKLSAgICAgICAgICBsb29rdXAgPSBGUy5sb29rdXBQYXRoKG5l
d19wYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAgICAgICBuZXdfZGlyID0gbG9va3VwLm5v
ZGU7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FQlVTWSk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gbmVlZCB0byBi
ZSBwYXJ0IG9mIHRoZSBzYW1lIG1vdW50Ci0gICAgICAgIGlmIChvbGRfZGlyLm1vdW50ICE9PSBu
ZXdfZGlyLm1vdW50KSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRVhERVYpOwotICAgICAgICB9Ci0gICAgICAgIC8vIHNvdXJjZSBtdXN0IGV4aXN0Ci0g
ICAgICAgIHZhciBvbGRfbm9kZSA9IEZTLmxvb2t1cE5vZGUob2xkX2Rpciwgb2xkX25hbWUpOwot
ICAgICAgICAvLyBvbGQgcGF0aCBzaG91bGQgbm90IGJlIGFuIGFuY2VzdG9yIG9mIHRoZSBuZXcg
cGF0aAotICAgICAgICB2YXIgcmVsYXRpdmUgPSBQQVRILnJlbGF0aXZlKG9sZF9wYXRoLCBuZXdf
ZGlybmFtZSk7Ci0gICAgICAgIGlmIChyZWxhdGl2ZS5jaGFyQXQoMCkgIT09ICcuJykgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgLy8gbmV3IHBhdGggc2hvdWxkIG5vdCBiZSBhbiBhbmNlc3RvciBvZiB0
aGUgb2xkIHBhdGgKLSAgICAgICAgcmVsYXRpdmUgPSBQQVRILnJlbGF0aXZlKG5ld19wYXRoLCBv
bGRfZGlybmFtZSk7Ci0gICAgICAgIGlmIChyZWxhdGl2ZS5jaGFyQXQoMCkgIT09ICcuJykgewot
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RFTVBUWSk7
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gc2VlIGlmIHRoZSBuZXcgcGF0aCBhbHJlYWR5IGV4aXN0
cwotICAgICAgICB2YXIgbmV3X25vZGU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbmV3X25v
ZGUgPSBGUy5sb29rdXBOb2RlKG5ld19kaXIsIG5ld19uYW1lKTsKLSAgICAgICAgfSBjYXRjaCAo
ZSkgewotICAgICAgICAgIC8vIG5vdCBmYXRhbAotICAgICAgICB9Ci0gICAgICAgIC8vIGVhcmx5
IG91dCBpZiBub3RoaW5nIG5lZWRzIHRvIGNoYW5nZQotICAgICAgICBpZiAob2xkX25vZGUgPT09
IG5ld19ub2RlKSB7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIC8vIHdl
J2xsIG5lZWQgdG8gZGVsZXRlIHRoZSBvbGQgZW50cnkKLSAgICAgICAgdmFyIGlzZGlyID0gRlMu
aXNEaXIob2xkX25vZGUubW9kZSk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlEZWxldGUob2xk
X2Rpciwgb2xkX25hbWUsIGlzZGlyKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gbmVlZCBk
ZWxldGUgcGVybWlzc2lvbnMgaWYgd2UnbGwgYmUgb3ZlcndyaXRpbmcuCi0gICAgICAgIC8vIG5l
ZWQgY3JlYXRlIHBlcm1pc3Npb25zIGlmIG5ldyBkb2Vzbid0IGFscmVhZHkgZXhpc3QuCi0gICAg
ICAgIGVyciA9IG5ld19ub2RlID8KLSAgICAgICAgICBGUy5tYXlEZWxldGUobmV3X2RpciwgbmV3
X25hbWUsIGlzZGlyKSA6Ci0gICAgICAgICAgRlMubWF5Q3JlYXRlKG5ld19kaXIsIG5ld19uYW1l
KTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9y
KGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFvbGRfZGlyLm5vZGVfb3BzLnJlbmFtZSkg
ewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNNb3VudHBvaW50KG9sZF9ub2RlKSB8fCAobmV3
X25vZGUgJiYgRlMuaXNNb3VudHBvaW50KG5ld19ub2RlKSkpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSk7Ci0gICAgICAgIH0KLSAgICAgICAg
Ly8gaWYgd2UgYXJlIGdvaW5nIHRvIGNoYW5nZSB0aGUgcGFyZW50LCBjaGVjayB3cml0ZSBwZXJt
aXNzaW9ucwotICAgICAgICBpZiAobmV3X2RpciAhPT0gb2xkX2RpcikgewotICAgICAgICAgIGVy
ciA9IEZTLm5vZGVQZXJtaXNzaW9ucyhvbGRfZGlyLCAndycpOwotICAgICAgICAgIGlmIChlcnIp
IHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgICAgIC8vIHJlbW92ZSB0aGUgbm9kZSBmcm9tIHRoZSBsb29rdXAg
aGFzaAotICAgICAgICBGUy5oYXNoUmVtb3ZlTm9kZShvbGRfbm9kZSk7Ci0gICAgICAgIC8vIGRv
IHRoZSB1bmRlcmx5aW5nIGZzIHJlbmFtZQotICAgICAgICB0cnkgewotICAgICAgICAgIG9sZF9k
aXIubm9kZV9vcHMucmVuYW1lKG9sZF9ub2RlLCBuZXdfZGlyLCBuZXdfbmFtZSk7Ci0gICAgICAg
IH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICB0aHJvdyBlOwotICAgICAgICB9IGZpbmFsbHkgewot
ICAgICAgICAgIC8vIGFkZCB0aGUgbm9kZSBiYWNrIHRvIHRoZSBoYXNoIChpbiBjYXNlIG5vZGVf
b3BzLnJlbmFtZQotICAgICAgICAgIC8vIGNoYW5nZWQgaXRzIG5hbWUpCi0gICAgICAgICAgRlMu
aGFzaEFkZE5vZGUob2xkX25vZGUpOwotICAgICAgICB9Ci0gICAgICB9LHJtZGlyOmZ1bmN0aW9u
IChwYXRoKSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgcGFy
ZW50OiB0cnVlIH0pOwotICAgICAgICB2YXIgcGFyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAg
IHZhciBuYW1lID0gUEFUSC5iYXNlbmFtZShwYXRoKTsKLSAgICAgICAgdmFyIG5vZGUgPSBGUy5s
b29rdXBOb2RlKHBhcmVudCwgbmFtZSk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlEZWxldGUo
cGFyZW50LCBuYW1lLCB0cnVlKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93
IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFwYXJlbnQu
bm9kZV9vcHMucm1kaXIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKEZTLmlzTW91bnRwb2ludChu
b2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVC
VVNZKTsKLSAgICAgICAgfQotICAgICAgICBwYXJlbnQubm9kZV9vcHMucm1kaXIocGFyZW50LCBu
YW1lKTsKLSAgICAgICAgRlMuZGVzdHJveU5vZGUobm9kZSk7Ci0gICAgICB9LHJlYWRkaXI6ZnVu
Y3Rpb24gKHBhdGgpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwg
eyBmb2xsb3c6IHRydWUgfSk7Ci0gICAgICAgIHZhciBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAg
ICAgIGlmICghbm9kZS5ub2RlX29wcy5yZWFkZGlyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PVERJUik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIG5vZGUubm9kZV9vcHMucmVhZGRpcihub2RlKTsKLSAgICAgIH0sdW5saW5rOmZ1bmN0aW9u
IChwYXRoKSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgcGFy
ZW50OiB0cnVlIH0pOwotICAgICAgICB2YXIgcGFyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAg
IHZhciBuYW1lID0gUEFUSC5iYXNlbmFtZShwYXRoKTsKLSAgICAgICAgdmFyIG5vZGUgPSBGUy5s
b29rdXBOb2RlKHBhcmVudCwgbmFtZSk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlEZWxldGUo
cGFyZW50LCBuYW1lLCBmYWxzZSk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICAvLyBQ
T1NJWCBzYXlzIHVubGluayBzaG91bGQgc2V0IEVQRVJNLCBub3QgRUlTRElSCi0gICAgICAgICAg
aWYgKGVyciA9PT0gRVJSTk9fQ09ERVMuRUlTRElSKSBlcnIgPSBFUlJOT19DT0RFUy5FUEVSTTsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAg
ICAgIGlmICghcGFyZW50Lm5vZGVfb3BzLnVubGluaykgewotICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
RlMuaXNNb3VudHBvaW50KG5vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRUJVU1kpOwotICAgICAgICB9Ci0gICAgICAgIHBhcmVudC5ub2RlX29w
cy51bmxpbmsocGFyZW50LCBuYW1lKTsKLSAgICAgICAgRlMuZGVzdHJveU5vZGUobm9kZSk7Ci0g
ICAgICB9LHJlYWRsaW5rOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBG
Uy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiBmYWxzZSB9KTsKLSAgICAgICAgdmFyIGxpbmsg
PSBsb29rdXAubm9kZTsKLSAgICAgICAgaWYgKCFsaW5rLm5vZGVfb3BzLnJlYWRsaW5rKSB7Ci0g
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAg
ICAgICAgfQotICAgICAgICByZXR1cm4gbGluay5ub2RlX29wcy5yZWFkbGluayhsaW5rKTsKLSAg
ICAgIH0sc3RhdDpmdW5jdGlvbiAocGF0aCwgZG9udEZvbGxvdykgewotICAgICAgICB2YXIgbG9v
a3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogIWRvbnRGb2xsb3cgfSk7Ci0gICAg
ICAgIHZhciBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5n
ZXRhdHRyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlLm5vZGVfb3BzLmdldGF0dHIo
bm9kZSk7Ci0gICAgICB9LGxzdGF0OmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHJldHVybiBG
Uy5zdGF0KHBhdGgsIHRydWUpOwotICAgICAgfSxjaG1vZDpmdW5jdGlvbiAocGF0aCwgbW9kZSwg
ZG9udEZvbGxvdykgewotICAgICAgICB2YXIgbm9kZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwYXRo
ID09PSAnc3RyaW5nJykgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBh
dGgsIHsgZm9sbG93OiAhZG9udEZvbGxvdyB9KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5v
ZGU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgbm9kZSA9IHBhdGg7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLnNldGF0dHIpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAg
bm9kZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICBtb2RlOiAobW9kZSAmIDQw
OTUpIHwgKG5vZGUubW9kZSAmIH40MDk1KSwKLSAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93
KCkKLSAgICAgICAgfSk7Ci0gICAgICB9LGxjaG1vZDpmdW5jdGlvbiAocGF0aCwgbW9kZSkgewot
ICAgICAgICBGUy5jaG1vZChwYXRoLCBtb2RlLCB0cnVlKTsKLSAgICAgIH0sZmNobW9kOmZ1bmN0
aW9uIChmZCwgbW9kZSkgewotICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZkKTsK
LSAgICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAgICAgRlMuY2htb2Qoc3RyZWFt
Lm5vZGUsIG1vZGUpOwotICAgICAgfSxjaG93bjpmdW5jdGlvbiAocGF0aCwgdWlkLCBnaWQsIGRv
bnRGb2xsb3cpIHsKLSAgICAgICAgdmFyIG5vZGU7Ci0gICAgICAgIGlmICh0eXBlb2YgcGF0aCA9
PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRo
LCB7IGZvbGxvdzogIWRvbnRGb2xsb3cgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2Rl
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIG5vZGUgPSBwYXRoOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIG5v
ZGUubm9kZV9vcHMuc2V0YXR0cihub2RlLCB7Ci0gICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5v
dygpCi0gICAgICAgICAgLy8gd2UgaWdub3JlIHRoZSB1aWQgLyBnaWQgZm9yIG5vdwotICAgICAg
ICB9KTsKLSAgICAgIH0sbGNob3duOmZ1bmN0aW9uIChwYXRoLCB1aWQsIGdpZCkgewotICAgICAg
ICBGUy5jaG93bihwYXRoLCB1aWQsIGdpZCwgdHJ1ZSk7Ci0gICAgICB9LGZjaG93bjpmdW5jdGlv
biAoZmQsIHVpZCwgZ2lkKSB7Ci0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQp
OwotICAgICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBGUy5jaG93bihzdHJl
YW0ubm9kZSwgdWlkLCBnaWQpOwotICAgICAgfSx0cnVuY2F0ZTpmdW5jdGlvbiAocGF0aCwgbGVu
KSB7Ci0gICAgICAgIGlmIChsZW4gPCAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5v
RXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgbm9kZTsK
LSAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykgewotICAgICAgICAgIHZhciBs
b29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiB0cnVlIH0pOwotICAgICAgICAg
IG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBub2RlID0g
cGF0aDsKLSAgICAgICAgfQotICAgICAgICBpZiAoIW5vZGUubm9kZV9vcHMuc2V0YXR0cikgewot
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJUik7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKCFGUy5pc0ZpbGUobm9kZS5tb2RlKSkgewotICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFy
IGVyciA9IEZTLm5vZGVQZXJtaXNzaW9ucyhub2RlLCAndycpOwotICAgICAgICBpZiAoZXJyKSB7
Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAg
ICAgICBub2RlLm5vZGVfb3BzLnNldGF0dHIobm9kZSwgewotICAgICAgICAgIHNpemU6IGxlbiwK
LSAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCkKLSAgICAgICAgfSk7Ci0gICAgICB9LGZ0
cnVuY2F0ZTpmdW5jdGlvbiAoZmQsIGxlbikgewotICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0
U3RyZWFtKGZkKTsKLSAgICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0gMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgRlMudHJ1bmNh
dGUoc3RyZWFtLm5vZGUsIGxlbik7Ci0gICAgICB9LHV0aW1lOmZ1bmN0aW9uIChwYXRoLCBhdGlt
ZSwgbXRpbWUpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBm
b2xsb3c6IHRydWUgfSk7Ci0gICAgICAgIHZhciBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAg
IG5vZGUubm9kZV9vcHMuc2V0YXR0cihub2RlLCB7Ci0gICAgICAgICAgdGltZXN0YW1wOiBNYXRo
Lm1heChhdGltZSwgbXRpbWUpCi0gICAgICAgIH0pOwotICAgICAgfSxvcGVuOmZ1bmN0aW9uIChw
YXRoLCBmbGFncywgbW9kZSwgZmRfc3RhcnQsIGZkX2VuZCkgewotICAgICAgICBwYXRoID0gUEFU
SC5ub3JtYWxpemUocGF0aCk7Ci0gICAgICAgIGZsYWdzID0gdHlwZW9mIGZsYWdzID09PSAnc3Ry
aW5nJyA/IEZTLm1vZGVTdHJpbmdUb0ZsYWdzKGZsYWdzKSA6IGZsYWdzOwotICAgICAgICBtb2Rl
ID0gdHlwZW9mIG1vZGUgPT09ICd1bmRlZmluZWQnID8gMDY2NiA6IG1vZGU7Ci0gICAgICAgIGlm
ICgoZmxhZ3MgJiA1MTIpKSB7Ci0gICAgICAgICAgbW9kZSA9IChtb2RlICYgNDA5NSkgfCAwMTAw
MDAwOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIG1vZGUgPSAwOwotICAgICAgICB9Ci0g
ICAgICAgIHZhciBub2RlOwotICAgICAgICB0cnkgewotICAgICAgICAgIHZhciBsb29rdXAgPSBG
Uy5sb29rdXBQYXRoKHBhdGgsIHsKLSAgICAgICAgICAgIGZvbGxvdzogIShmbGFncyAmIDAyMDAw
MDApCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAg
ICAgIHBhdGggPSBsb29rdXAucGF0aDsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAg
IC8vIGlnbm9yZQotICAgICAgICB9Ci0gICAgICAgIC8vIHBlcmhhcHMgd2UgbmVlZCB0byBjcmVh
dGUgdGhlIG5vZGUKLSAgICAgICAgaWYgKChmbGFncyAmIDUxMikpIHsKLSAgICAgICAgICBpZiAo
bm9kZSkgewotICAgICAgICAgICAgLy8gaWYgT19DUkVBVCBhbmQgT19FWENMIGFyZSBzZXQsIGVy
cm9yIG91dCBpZiB0aGUgbm9kZSBhbHJlYWR5IGV4aXN0cwotICAgICAgICAgICAgaWYgKChmbGFn
cyAmIDIwNDgpKSB7Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVFWElTVCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIC8vIG5vZGUgZG9lc24ndCBleGlzdCwgdHJ5IHRvIGNyZWF0ZSBpdAotICAgICAgICAg
ICAgbm9kZSA9IEZTLm1rbm9kKHBhdGgsIG1vZGUsIDApOwotICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICBpZiAoIW5vZGUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FTk9FTlQpOwotICAgICAgICB9Ci0gICAgICAgIC8vIGNhbid0IHRydW5j
YXRlIGEgZGV2aWNlCi0gICAgICAgIGlmIChGUy5pc0NocmRldihub2RlLm1vZGUpKSB7Ci0gICAg
ICAgICAgZmxhZ3MgJj0gfjEwMjQ7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gY2hlY2sgcGVybWlz
c2lvbnMKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heU9wZW4obm9kZSwgZmxhZ3MpOwotICAgICAg
ICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAg
ICAgICAgfQotICAgICAgICAvLyBkbyB0cnVuY2F0aW9uIGlmIG5lY2Vzc2FyeQotICAgICAgICBp
ZiAoKGZsYWdzICYgMTAyNCkpIHsKLSAgICAgICAgICBGUy50cnVuY2F0ZShub2RlLCAwKTsKLSAg
ICAgICAgfQotICAgICAgICAvLyByZWdpc3RlciB0aGUgc3RyZWFtIHdpdGggdGhlIGZpbGVzeXN0
ZW0KLSAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmNyZWF0ZVN0cmVhbSh7Ci0gICAgICAgICAgcGF0
aDogcGF0aCwKLSAgICAgICAgICBub2RlOiBub2RlLAotICAgICAgICAgIGZsYWdzOiBmbGFncywK
LSAgICAgICAgICBzZWVrYWJsZTogdHJ1ZSwKLSAgICAgICAgICBwb3NpdGlvbjogMCwKLSAgICAg
ICAgICBzdHJlYW1fb3BzOiBub2RlLnN0cmVhbV9vcHMsCi0gICAgICAgICAgLy8gdXNlZCBieSB0
aGUgZmlsZSBmYW1pbHkgbGliYyBjYWxscyAoZm9wZW4sIGZ3cml0ZSwgZmVycm9yLCBldGMuKQot
ICAgICAgICAgIHVuZ290dGVuOiBbXSwKLSAgICAgICAgICBlcnJvcjogZmFsc2UKLSAgICAgICAg
fSwgZmRfc3RhcnQsIGZkX2VuZCk7Ci0gICAgICAgIC8vIGNhbGwgdGhlIG5ldyBzdHJlYW0ncyBv
cGVuIGZ1bmN0aW9uCi0gICAgICAgIGlmIChzdHJlYW0uc3RyZWFtX29wcy5vcGVuKSB7Ci0gICAg
ICAgICAgc3RyZWFtLnN0cmVhbV9vcHMub3BlbihzdHJlYW0pOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBzdHJlYW07Ci0gICAgICB9LGNsb3NlOmZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICBpZiAoc3RyZWFtLnN0cmVhbV9vcHMuY2xvc2UpIHsKLSAgICAg
ICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLmNsb3NlKHN0cmVhbSk7Ci0gICAgICAgICAgfQotICAg
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgdGhyb3cgZTsKLSAgICAgICAgfSBmaW5hbGx5
IHsKLSAgICAgICAgICBGUy5jbG9zZVN0cmVhbShzdHJlYW0uZmQpOwotICAgICAgICB9Ci0gICAg
ICB9LGxsc2VlazpmdW5jdGlvbiAoc3RyZWFtLCBvZmZzZXQsIHdoZW5jZSkgewotICAgICAgICBp
ZiAoIXN0cmVhbS5zZWVrYWJsZSB8fCAhc3RyZWFtLnN0cmVhbV9vcHMubGxzZWVrKSB7Ci0gICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVNQSVBFKTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gc3RyZWFtLnN0cmVhbV9vcHMubGxzZWVrKHN0cmVhbSwgb2Zm
c2V0LCB3aGVuY2UpOwotICAgICAgfSxyZWFkOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zm
c2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgIGlmIChsZW5ndGggPCAwIHx8IHBvc2l0
aW9uIDwgMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVT
LkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0g
MSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURG
KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkpIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIpOwot
ICAgICAgICB9Ci0gICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMucmVhZCkgewotICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAg
IH0KLSAgICAgICAgdmFyIHNlZWtpbmcgPSB0cnVlOwotICAgICAgICBpZiAodHlwZW9mIHBvc2l0
aW9uID09PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIHBvc2l0aW9uID0gc3RyZWFtLnBvc2l0
aW9uOwotICAgICAgICAgIHNlZWtpbmcgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIGlmICghc3Ry
ZWFtLnNlZWthYmxlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRVNQSVBFKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgYnl0ZXNSZWFkID0gc3RyZWFt
LnN0cmVhbV9vcHMucmVhZChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9u
KTsKLSAgICAgICAgaWYgKCFzZWVraW5nKSBzdHJlYW0ucG9zaXRpb24gKz0gYnl0ZXNSZWFkOwot
ICAgICAgICByZXR1cm4gYnl0ZXNSZWFkOwotICAgICAgfSx3cml0ZTpmdW5jdGlvbiAoc3RyZWFt
LCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewotICAgICAgICBpZiAobGVuZ3Ro
IDwgMCB8fCBwb3NpdGlvbiA8IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoc3RyZWFtLmZs
YWdzICYgMykgPT09IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKEZTLmlzRGlyKHN0cmVhbS5u
b2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRUlTRElSKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLndy
aXRlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlO
VkFMKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgc2Vla2luZyA9IHRydWU7Ci0gICAgICAgIGlm
ICh0eXBlb2YgcG9zaXRpb24gPT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgcG9zaXRpb24g
PSBzdHJlYW0ucG9zaXRpb247Ci0gICAgICAgICAgc2Vla2luZyA9IGZhbHNlOwotICAgICAgICB9
IGVsc2UgaWYgKCFzdHJlYW0uc2Vla2FibGUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChzdHJl
YW0uZmxhZ3MgJiA4KSB7Ci0gICAgICAgICAgLy8gc2VlayB0byB0aGUgZW5kIGJlZm9yZSB3cml0
aW5nIGluIGFwcGVuZCBtb2RlCi0gICAgICAgICAgRlMubGxzZWVrKHN0cmVhbSwgMCwgMik7Ci0g
ICAgICAgIH0KLSAgICAgICAgdmFyIGJ5dGVzV3JpdHRlbiA9IHN0cmVhbS5zdHJlYW1fb3BzLndy
aXRlKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pOwotICAgICAgICBp
ZiAoIXNlZWtpbmcpIHN0cmVhbS5wb3NpdGlvbiArPSBieXRlc1dyaXR0ZW47Ci0gICAgICAgIHJl
dHVybiBieXRlc1dyaXR0ZW47Ci0gICAgICB9LGFsbG9jYXRlOmZ1bmN0aW9uIChzdHJlYW0sIG9m
ZnNldCwgbGVuZ3RoKSB7Ci0gICAgICAgIGlmIChvZmZzZXQgPCAwIHx8IGxlbmd0aCA8PSAwKSB7
Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAwKSB7Ci0gICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAg
ICB9Ci0gICAgICAgIGlmICghRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpICYmICFGUy5pc0Rp
cihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRU5PREVWKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3Bz
LmFsbG9jYXRlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRU9QTk9UU1VQUCk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMuYWxs
b2NhdGUoc3RyZWFtLCBvZmZzZXQsIGxlbmd0aCk7Ci0gICAgICB9LG1tYXA6ZnVuY3Rpb24gKHN0
cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24sIHByb3QsIGZsYWdzKSB7Ci0g
ICAgICAgIC8vIFRPRE8gaWYgUFJPVCBpcyBQUk9UX1dSSVRFLCBtYWtlIHN1cmUgd2UgaGF2ZSB3
cml0ZSBhY2Nlc3MKLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0gMSkgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBQ0NFUyk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy5tbWFwKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLmVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PREVWKTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gc3RyZWFtLnN0cmVhbV9vcHMubW1hcChzdHJlYW0sIGJ1ZmZlciwgb2Zm
c2V0LCBsZW5ndGgsIHBvc2l0aW9uLCBwcm90LCBmbGFncyk7Ci0gICAgICB9fTsKLSAgZnVuY3Rp
b24gX3NlbmQoZmQsIGJ1ZiwgbGVuLCBmbGFncykgewotICAgICAgdmFyIGluZm8gPSBGUy5nZXRT
dHJlYW0oZmQpOwotICAgICAgaWYgKCFpbmZvKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5P
X0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgICAgaWYgKGlu
Zm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TSU5HIHx8IGluZm8uc29ja2V0
LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TRUQpIHsKLSAgICAgICAgX19fc2V0RXJyTm8o
RVJSTk9fQ09ERVMuRU5PVENPTk4pOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9IGVsc2Ug
aWYgKGluZm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DT05ORUNUSU5HKSB7Ci0g
ICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVBR0FJTik7Ci0gICAgICAgIHJldHVybiAt
MTsKLSAgICAgIH0KLSAgICAgIGluZm8uc2VuZGVyKEhFQVBVOC5zdWJhcnJheShidWYsIGJ1Zits
ZW4pKTsKLSAgICAgIHJldHVybiBsZW47Ci0gICAgfQotICBmdW5jdGlvbiBfcHdyaXRlKGZpbGRl
cywgYnVmLCBuYnl0ZSwgb2Zmc2V0KSB7Ci0gICAgICAvLyBzc2l6ZV90IHB3cml0ZShpbnQgZmls
ZGVzLCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSwgb2ZmX3Qgb2Zmc2V0KTsKLSAgICAg
IC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rp
b25zL3dyaXRlLmh0bWwKLSAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmlsZGVzKTsK
LSAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVC
QURGKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgICAgdHJ5IHsKLSAgICAgICAg
dmFyIHNsYWIgPSBIRUFQODsKLSAgICAgICAgcmV0dXJuIEZTLndyaXRlKHN0cmVhbSwgc2xhYiwg
YnVmLCBuYnl0ZSwgb2Zmc2V0KTsKLSAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgRlMuaGFu
ZGxlRlNFcnJvcihlKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgIH1mdW5jdGlv
biBfd3JpdGUoZmlsZGVzLCBidWYsIG5ieXRlKSB7Ci0gICAgICAvLyBzc2l6ZV90IHdyaXRlKGlu
dCBmaWxkZXMsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlKTsKLSAgICAgIC8vIGh0dHA6
Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3dyaXRl
Lmh0bWwKLSAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmlsZGVzKTsKLSAgICAgIGlm
ICghc3RyZWFtKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAg
ICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgICAgaWYgKHN0cmVhbSAmJiAoJ3NvY2tldCcg
aW4gc3RyZWFtKSkgewotICAgICAgICByZXR1cm4gX3NlbmQoZmlsZGVzLCBidWYsIG5ieXRlLCAw
KTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAgICAgIHZhciBzbGFiID0gSEVBUDg7Ci0gICAg
ICAgIHJldHVybiBGUy53cml0ZShzdHJlYW0sIHNsYWIsIGJ1ZiwgbmJ5dGUpOwotICAgICAgfSBj
YXRjaCAoZSkgewotICAgICAgICBGUy5oYW5kbGVGU0Vycm9yKGUpOwotICAgICAgICByZXR1cm4g
LTE7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF9md3JpdGUocHRyLCBzaXplLCBuaXRlbXMsIHN0
cmVhbSkgewotICAgICAgLy8gc2l6ZV90IGZ3cml0ZShjb25zdCB2b2lkICpyZXN0cmljdCBwdHIs
IHNpemVfdCBzaXplLCBzaXplX3Qgbml0ZW1zLCBGSUxFICpyZXN0cmljdCBzdHJlYW0pOwotICAg
ICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5j
dGlvbnMvZndyaXRlLmh0bWwKLSAgICAgIHZhciBieXRlc1RvV3JpdGUgPSBuaXRlbXMgKiBzaXpl
OwotICAgICAgaWYgKGJ5dGVzVG9Xcml0ZSA9PSAwKSByZXR1cm4gMDsKLSAgICAgIHZhciBieXRl
c1dyaXR0ZW4gPSBfd3JpdGUoc3RyZWFtLCBwdHIsIGJ5dGVzVG9Xcml0ZSk7Ci0gICAgICBpZiAo
Ynl0ZXNXcml0dGVuID09IC0xKSB7Ci0gICAgICAgIHZhciBzdHJlYW1PYmogPSBGUy5nZXRTdHJl
YW0oc3RyZWFtKTsKLSAgICAgICAgaWYgKHN0cmVhbU9iaikgc3RyZWFtT2JqLmVycm9yID0gdHJ1
ZTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gTWF0
aC5mbG9vcihieXRlc1dyaXR0ZW4gLyBzaXplKTsKLSAgICAgIH0KLSAgICB9Ci0gIGZ1bmN0aW9u
IF91bmdldGMoYywgc3RyZWFtKSB7Ci0gICAgICAvLyBpbnQgdW5nZXRjKGludCBjLCBGSUxFICpz
dHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAw
MDA5NTM5OS9mdW5jdGlvbnMvdW5nZXRjLmh0bWwKLSAgICAgIHN0cmVhbSA9IEZTLmdldFN0cmVh
bShzdHJlYW0pOwotICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgcmV0dXJuIC0xOwotICAg
ICAgfQotICAgICAgaWYgKGMgPT09IC0xKSB7Ci0gICAgICAgIC8vIGRvIG5vdGhpbmcgZm9yIEVP
RiBjaGFyYWN0ZXIKLSAgICAgICAgcmV0dXJuIGM7Ci0gICAgICB9Ci0gICAgICBjID0gdW5TaWdu
KGMgJiAweEZGKTsKLSAgICAgIHN0cmVhbS51bmdvdHRlbi5wdXNoKGMpOwotICAgICAgc3RyZWFt
LmVvZiA9IGZhbHNlOwotICAgICAgcmV0dXJuIGM7Ci0gICAgfQotICBmdW5jdGlvbiBfcmVjdihm
ZCwgYnVmLCBsZW4sIGZsYWdzKSB7Ci0gICAgICB2YXIgaW5mbyA9IEZTLmdldFN0cmVhbShmZCk7
Ci0gICAgICBpZiAoIWluZm8pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJB
REYpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoIWluZm8uaGFzRGF0
YSgpKSB7Ci0gICAgICAgIGlmIChpbmZvLnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQu
Q0xPU0lORyB8fCBpbmZvLnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ0xPU0VEKSB7
Ci0gICAgICAgICAgLy8gc29ja2V0IGhhcyBjbG9zZWQKLSAgICAgICAgICByZXR1cm4gMDsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAvLyBlbHNlLCBvdXIgc29ja2V0IGlzIGluIGEgdmFs
aWQgc3RhdGUgYnV0IHRydWx5IGhhcyBub3RoaW5nIGF2YWlsYWJsZQotICAgICAgICAgIF9fX3Nl
dEVyck5vKEVSUk5PX0NPREVTLkVBR0FJTik7Ci0gICAgICAgICAgcmV0dXJuIC0xOwotICAgICAg
ICB9Ci0gICAgICB9Ci0gICAgICB2YXIgYnVmZmVyID0gaW5mby5pblF1ZXVlLnNoaWZ0KCk7Ci0g
ICAgICBpZiAobGVuIDwgYnVmZmVyLmxlbmd0aCkgewotICAgICAgICBpZiAoaW5mby5zdHJlYW0p
IHsKLSAgICAgICAgICAvLyBUaGlzIGlzIHRjcCAocmVsaWFibGUpLCBzbyBpZiBub3QgYWxsIHdh
cyByZWFkLCBrZWVwIGl0Ci0gICAgICAgICAgaW5mby5pblF1ZXVlLnVuc2hpZnQoYnVmZmVyLnN1
YmFycmF5KGxlbikpOwotICAgICAgICB9Ci0gICAgICAgIGJ1ZmZlciA9IGJ1ZmZlci5zdWJhcnJh
eSgwLCBsZW4pOwotICAgICAgfQotICAgICAgSEVBUFU4LnNldChidWZmZXIsIGJ1Zik7Ci0gICAg
ICByZXR1cm4gYnVmZmVyLmxlbmd0aDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9wcmVhZChmaWxkZXMs
IGJ1ZiwgbmJ5dGUsIG9mZnNldCkgewotICAgICAgLy8gc3NpemVfdCBwcmVhZChpbnQgZmlsZGVz
LCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSwgb2ZmX3Qgb2Zmc2V0KTsKLSAgICAgIC8vIGh0dHA6
Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3JlYWQu
aHRtbAotICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYg
KCFzdHJlYW0pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICB0cnkgewotICAgICAgICB2YXIgc2xhYiA9
IEhFQVA4OwotICAgICAgICByZXR1cm4gRlMucmVhZChzdHJlYW0sIHNsYWIsIGJ1ZiwgbmJ5dGUs
IG9mZnNldCk7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEZTLmhhbmRsZUZTRXJyb3Io
ZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24gX3JlYWQoZmls
ZGVzLCBidWYsIG5ieXRlKSB7Ci0gICAgICAvLyBzc2l6ZV90IHJlYWQoaW50IGZpbGRlcywgdm9p
ZCAqYnVmLCBzaXplX3QgbmJ5dGUpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9y
Zy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvcmVhZC5odG1sCi0gICAgICB2YXIgc3Ry
ZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7Ci0gICAgICBpZiAoIXN0cmVhbSkgewotICAgICAg
ICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAg
ICAgIH0KLSAgICAgIGlmIChzdHJlYW0gJiYgKCdzb2NrZXQnIGluIHN0cmVhbSkpIHsKLSAgICAg
ICAgcmV0dXJuIF9yZWN2KGZpbGRlcywgYnVmLCBuYnl0ZSwgMCk7Ci0gICAgICB9Ci0gICAgICB0
cnkgewotICAgICAgICB2YXIgc2xhYiA9IEhFQVA4OwotICAgICAgICByZXR1cm4gRlMucmVhZChz
dHJlYW0sIHNsYWIsIGJ1ZiwgbmJ5dGUpOwotICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBG
Uy5oYW5kbGVGU0Vycm9yKGUpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgfWZ1
bmN0aW9uIF9mcmVhZChwdHIsIHNpemUsIG5pdGVtcywgc3RyZWFtKSB7Ci0gICAgICAvLyBzaXpl
X3QgZnJlYWQodm9pZCAqcmVzdHJpY3QgcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5pdGVtcywg
RklMRSAqcmVzdHJpY3Qgc3RyZWFtKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5v
cmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL2ZyZWFkLmh0bWwKLSAgICAgIHZhciBi
eXRlc1RvUmVhZCA9IG5pdGVtcyAqIHNpemU7Ci0gICAgICBpZiAoYnl0ZXNUb1JlYWQgPT0gMCkg
ewotICAgICAgICByZXR1cm4gMDsKLSAgICAgIH0KLSAgICAgIHZhciBieXRlc1JlYWQgPSAwOwot
ICAgICAgdmFyIHN0cmVhbU9iaiA9IEZTLmdldFN0cmVhbShzdHJlYW0pOwotICAgICAgd2hpbGUg
KHN0cmVhbU9iai51bmdvdHRlbi5sZW5ndGggJiYgYnl0ZXNUb1JlYWQgPiAwKSB7Ci0gICAgICAg
IEhFQVA4WygocHRyKyspfDApXT1zdHJlYW1PYmoudW5nb3R0ZW4ucG9wKCkKLSAgICAgICAgYnl0
ZXNUb1JlYWQtLTsKLSAgICAgICAgYnl0ZXNSZWFkKys7Ci0gICAgICB9Ci0gICAgICB2YXIgZXJy
ID0gX3JlYWQoc3RyZWFtLCBwdHIsIGJ5dGVzVG9SZWFkKTsKLSAgICAgIGlmIChlcnIgPT0gLTEp
IHsKLSAgICAgICAgaWYgKHN0cmVhbU9iaikgc3RyZWFtT2JqLmVycm9yID0gdHJ1ZTsKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgICB9Ci0gICAgICBieXRlc1JlYWQgKz0gZXJyOwotICAgICAgaWYg
KGJ5dGVzUmVhZCA8IGJ5dGVzVG9SZWFkKSBzdHJlYW1PYmouZW9mID0gdHJ1ZTsKLSAgICAgIHJl
dHVybiBNYXRoLmZsb29yKGJ5dGVzUmVhZCAvIHNpemUpOwotICAgIH1mdW5jdGlvbiBfZmdldGMo
c3RyZWFtKSB7Ci0gICAgICAvLyBpbnQgZmdldGMoRklMRSAqc3RyZWFtKTsKLSAgICAgIC8vIGh0
dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL2Zn
ZXRjLmh0bWwKLSAgICAgIHZhciBzdHJlYW1PYmogPSBGUy5nZXRTdHJlYW0oc3RyZWFtKTsKLSAg
ICAgIGlmICghc3RyZWFtT2JqKSByZXR1cm4gLTE7Ci0gICAgICBpZiAoc3RyZWFtT2JqLmVvZiB8
fCBzdHJlYW1PYmouZXJyb3IpIHJldHVybiAtMTsKLSAgICAgIHZhciByZXQgPSBfZnJlYWQoX2Zn
ZXRjLnJldCwgMSwgMSwgc3RyZWFtKTsKLSAgICAgIGlmIChyZXQgPT0gMCkgewotICAgICAgICBz
dHJlYW1PYmouZW9mID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfSBlbHNlIGlm
IChyZXQgPT0gLTEpIHsKLSAgICAgICAgc3RyZWFtT2JqLmVycm9yID0gdHJ1ZTsKLSAgICAgICAg
cmV0dXJuIC0xOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIEhFQVBVOFsoKF9mZ2V0
Yy5yZXQpfDApXTsKLSAgICAgIH0KLSAgICB9dmFyIF9nZXRjPV9mZ2V0YzsKLSAgZnVuY3Rpb24g
X19fY3hhX3B1cmVfdmlydHVhbCgpIHsKLSAgICAgIEFCT1JUID0gdHJ1ZTsKLSAgICAgIHRocm93
ICdQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkISc7Ci0gICAgfQotICBmdW5jdGlvbiBfX19l
cnJub19sb2NhdGlvbigpIHsKLSAgICAgIHJldHVybiBfX19lcnJub19zdGF0ZTsKLSAgICB9dmFy
IF9fX2Vycm5vPV9fX2Vycm5vX2xvY2F0aW9uOwotICB2YXIgX2xsdm1fbWVtc2V0X3AwaThfaTMy
PV9tZW1zZXQ7Ci0gIE1vZHVsZVsiX3N0cmxlbiJdID0gX3N0cmxlbjsKLSAgZnVuY3Rpb24gX3N0
cmVycm9yX3IoZXJybnVtLCBzdHJlcnJidWYsIGJ1ZmxlbikgewotICAgICAgaWYgKGVycm51bSBp
biBFUlJOT19NRVNTQUdFUykgewotICAgICAgICBpZiAoRVJSTk9fTUVTU0FHRVNbZXJybnVtXS5s
ZW5ndGggPiBidWZsZW4gLSAxKSB7Ci0gICAgICAgICAgcmV0dXJuIF9fX3NldEVyck5vKEVSUk5P
X0NPREVTLkVSQU5HRSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdmFyIG1zZyA9IEVS
Uk5PX01FU1NBR0VTW2Vycm51bV07Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtc2cu
bGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIEhFQVA4WygoKHN0cmVycmJ1ZikrKGkpKXwwKV09
bXNnLmNoYXJDb2RlQXQoaSkKLSAgICAgICAgICB9Ci0gICAgICAgICAgSEVBUDhbKCgoc3RyZXJy
YnVmKSsoaSkpfDApXT0wCi0gICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHJldHVybiBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FSU5WQUwpOwot
ICAgICAgfQotICAgIH1mdW5jdGlvbiBfc3RyZXJyb3IoZXJybnVtKSB7Ci0gICAgICBpZiAoIV9z
dHJlcnJvci5idWZmZXIpIF9zdHJlcnJvci5idWZmZXIgPSBfbWFsbG9jKDI1Nik7Ci0gICAgICBf
c3RyZXJyb3JfcihlcnJudW0sIF9zdHJlcnJvci5idWZmZXIsIDI1Nik7Ci0gICAgICByZXR1cm4g
X3N0cmVycm9yLmJ1ZmZlcjsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9hYm9ydCgpIHsKLSAgICAgIE1v
ZHVsZVsnYWJvcnQnXSgpOwotICAgIH0KLSAgZnVuY3Rpb24gX19yZWFsbHlOZWdhdGl2ZSh4KSB7
Ci0gICAgICByZXR1cm4geCA8IDAgfHwgKHggPT09IDAgJiYgKDEveCkgPT09IC1JbmZpbml0eSk7
Ci0gICAgfWZ1bmN0aW9uIF9fZm9ybWF0U3RyaW5nKGZvcm1hdCwgdmFyYXJncykgewotICAgICAg
dmFyIHRleHRJbmRleCA9IGZvcm1hdDsKLSAgICAgIHZhciBhcmdJbmRleCA9IDA7Ci0gICAgICBm
dW5jdGlvbiBnZXROZXh0QXJnKHR5cGUpIHsKLSAgICAgICAgLy8gTk9URTogRXhwbGljaXRseSBp
Z25vcmluZyB0eXBlIHNhZmV0eS4gT3RoZXJ3aXNlIHRoaXMgZmFpbHM6Ci0gICAgICAgIC8vICAg
ICAgIGludCB4ID0gNDsgcHJpbnRmKCIlY1xuIiwgKGNoYXIpeCk7Ci0gICAgICAgIHZhciByZXQ7
Ci0gICAgICAgIGlmICh0eXBlID09PSAnZG91YmxlJykgewotICAgICAgICAgIHJldCA9IEhFQVBG
NjRbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+PjMpXTsKLSAgICAgICAgfSBlbHNlIGlmICh0eXBl
ID09ICdpNjQnKSB7Ci0gICAgICAgICAgcmV0ID0gW0hFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5k
ZXgpKT4+MildLAotICAgICAgICAgICAgICAgICBIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4
KzgpKT4+MildXTsKLSAgICAgICAgICBhcmdJbmRleCArPSA4OyAvLyBlYWNoIDMyLWJpdCBjaHVu
ayBpcyBpbiBhIDY0LWJpdCBibG9jawotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHR5cGUg
PSAnaTMyJzsgLy8gdmFyYXJncyBhcmUgYWx3YXlzIGkzMiwgaTY0LCBvciBkb3VibGUKLSAgICAg
ICAgICByZXQgPSBIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+PjIpXTsKLSAgICAgICAg
fQotICAgICAgICBhcmdJbmRleCArPSBNYXRoLm1heChSdW50aW1lLmdldE5hdGl2ZUZpZWxkU2l6
ZSh0eXBlKSwgUnVudGltZS5nZXRBbGlnblNpemUodHlwZSwgbnVsbCwgdHJ1ZSkpOwotICAgICAg
ICByZXR1cm4gcmV0OwotICAgICAgfQotICAgICAgdmFyIHJldCA9IFtdOwotICAgICAgdmFyIGN1
cnIsIG5leHQsIGN1cnJBcmc7Ci0gICAgICB3aGlsZSgxKSB7Ci0gICAgICAgIHZhciBzdGFydFRl
eHRJbmRleCA9IHRleHRJbmRleDsKLSAgICAgICAgY3VyciA9IEhFQVA4Wyh0ZXh0SW5kZXgpXTsK
LSAgICAgICAgaWYgKGN1cnIgPT09IDApIGJyZWFrOwotICAgICAgICBuZXh0ID0gSEVBUDhbKCh0
ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICBpZiAoY3VyciA9PSAzNykgewotICAgICAgICAgIC8v
IEhhbmRsZSBmbGFncy4KLSAgICAgICAgICB2YXIgZmxhZ0Fsd2F5c1NpZ25lZCA9IGZhbHNlOwot
ICAgICAgICAgIHZhciBmbGFnTGVmdEFsaWduID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGZsYWdB
bHRlcm5hdGl2ZSA9IGZhbHNlOwotICAgICAgICAgIHZhciBmbGFnWmVyb1BhZCA9IGZhbHNlOwot
ICAgICAgICAgIGZsYWdzTG9vcDogd2hpbGUgKDEpIHsKLSAgICAgICAgICAgIHN3aXRjaCAobmV4
dCkgewotICAgICAgICAgICAgICBjYXNlIDQzOgotICAgICAgICAgICAgICAgIGZsYWdBbHdheXNT
aWduZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICBjYXNl
IDQ1OgotICAgICAgICAgICAgICAgIGZsYWdMZWZ0QWxpZ24gPSB0cnVlOwotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICBjYXNlIDM1OgotICAgICAgICAgICAgICAgIGZsYWdB
bHRlcm5hdGl2ZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
IGNhc2UgNDg6Ci0gICAgICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFkKSB7Ci0gICAgICAgICAg
ICAgICAgICBicmVhayBmbGFnc0xvb3A7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgIGZsYWdaZXJvUGFkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAg
ICAgICBicmVhayBmbGFnc0xvb3A7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0ZXh0SW5k
ZXgrKzsKLSAgICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAg
ICAgICAgfQotICAgICAgICAgIC8vIEhhbmRsZSB3aWR0aC4KLSAgICAgICAgICB2YXIgd2lkdGgg
PSAwOwotICAgICAgICAgIGlmIChuZXh0ID09IDQyKSB7Ci0gICAgICAgICAgICB3aWR0aCA9IGdl
dE5leHRBcmcoJ2kzMicpOwotICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICBu
ZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICB3aGlsZSAobmV4dCA+PSA0OCAmJiBuZXh0IDw9IDU3KSB7Ci0gICAgICAgICAgICAg
IHdpZHRoID0gd2lkdGggKiAxMCArIChuZXh0IC0gNDgpOwotICAgICAgICAgICAgICB0ZXh0SW5k
ZXgrKzsKLSAgICAgICAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gSGFuZGxlIHByZWNpc2lvbi4K
LSAgICAgICAgICB2YXIgcHJlY2lzaW9uU2V0ID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKG5leHQg
PT0gNDYpIHsKLSAgICAgICAgICAgIHZhciBwcmVjaXNpb24gPSAwOwotICAgICAgICAgICAgcHJl
Y2lzaW9uU2V0ID0gdHJ1ZTsKLSAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAg
bmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICAgIGlmIChuZXh0ID09
IDQyKSB7Ci0gICAgICAgICAgICAgIHByZWNpc2lvbiA9IGdldE5leHRBcmcoJ2kzMicpOwotICAg
ICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgIHdoaWxlKDEpIHsKLSAgICAgICAgICAgICAgICB2YXIgcHJlY2lzaW9uQ2hyID0gSEVBUDhb
KCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgICAgICAgIGlmIChwcmVjaXNpb25DaHIgPCA0
OCB8fAotICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb25DaHIgPiA1NykgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uICogMTAgKyAocHJlY2lzaW9uQ2hyIC0g
NDgpOwotICAgICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwot
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB2YXIgcHJlY2lzaW9uID0gNjsgLy8gU3Rh
bmRhcmQgZGVmYXVsdC4KLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gSGFuZGxlIGludGVnZXIg
c2l6ZXMuIFdBUk5JTkc6IFRoZXNlIGFzc3VtZSBhIDMyLWJpdCBhcmNoaXRlY3R1cmUhCi0gICAg
ICAgICAgdmFyIGFyZ1NpemU7Ci0gICAgICAgICAgc3dpdGNoIChTdHJpbmcuZnJvbUNoYXJDb2Rl
KG5leHQpKSB7Ci0gICAgICAgICAgICBjYXNlICdoJzoKLSAgICAgICAgICAgICAgdmFyIG5leHRO
ZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMil8MCldOwotICAgICAgICAgICAgICBpZiAobmV4dE5l
eHQgPT0gMTA0KSB7Ci0gICAgICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICAg
ICAgYXJnU2l6ZSA9IDE7IC8vIGNoYXIgKGFjdHVhbGx5IGkzMiBpbiB2YXJhcmdzKQotICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFyZ1NpemUgPSAyOyAvLyBzaG9ydCAo
YWN0dWFsbHkgaTMyIGluIHZhcmFyZ3MpCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdsJzoKLSAgICAgICAgICAgICAgdmFyIG5leHROZXh0
ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMil8MCldOwotICAgICAgICAgICAgICBpZiAobmV4dE5leHQg
PT0gMTA4KSB7Ci0gICAgICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICAgICAg
YXJnU2l6ZSA9IDg7IC8vIGxvbmcgbG9uZwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGFyZ1NpemUgPSA0OyAvLyBsb25nCi0gICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdMJzogLy8gbG9uZyBsb25nCi0gICAgICAg
ICAgICBjYXNlICdxJzogLy8gaW50NjRfdAotICAgICAgICAgICAgY2FzZSAnaic6IC8vIGludG1h
eF90Ci0gICAgICAgICAgICAgIGFyZ1NpemUgPSA4OwotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgJ3onOiAvLyBzaXplX3QKLSAgICAgICAgICAgIGNhc2UgJ3QnOiAvLyBw
dHJkaWZmX3QKLSAgICAgICAgICAgIGNhc2UgJ0knOiAvLyBzaWduZWQgcHRyZGlmZl90IG9yIHVu
c2lnbmVkIHNpemVfdAotICAgICAgICAgICAgICBhcmdTaXplID0gNDsKLSAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICBhcmdTaXplID0gbnVs
bDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGFyZ1NpemUpIHRleHRJbmRleCsrOwotICAg
ICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgLy8gSGFu
ZGxlIHR5cGUgc3BlY2lmaWVyLgotICAgICAgICAgIHN3aXRjaCAoU3RyaW5nLmZyb21DaGFyQ29k
ZShuZXh0KSkgewotICAgICAgICAgICAgY2FzZSAnZCc6IGNhc2UgJ2knOiBjYXNlICd1JzogY2Fz
ZSAnbyc6IGNhc2UgJ3gnOiBjYXNlICdYJzogY2FzZSAncCc6IHsKLSAgICAgICAgICAgICAgLy8g
SW50ZWdlci4KLSAgICAgICAgICAgICAgdmFyIHNpZ25lZCA9IG5leHQgPT0gMTAwIHx8IG5leHQg
PT0gMTA1OwotICAgICAgICAgICAgICBhcmdTaXplID0gYXJnU2l6ZSB8fCA0OwotICAgICAgICAg
ICAgICB2YXIgY3VyckFyZyA9IGdldE5leHRBcmcoJ2knICsgKGFyZ1NpemUgKiA4KSk7Ci0gICAg
ICAgICAgICAgIHZhciBvcmlnQXJnID0gY3VyckFyZzsKLSAgICAgICAgICAgICAgdmFyIGFyZ1Rl
eHQ7Ci0gICAgICAgICAgICAgIC8vIEZsYXR0ZW4gaTY0LTEgW2xvdywgaGlnaF0gaW50byBhIChz
bGlnaHRseSByb3VuZGVkKSBkb3VibGUKLSAgICAgICAgICAgICAgaWYgKGFyZ1NpemUgPT0gOCkg
ewotICAgICAgICAgICAgICAgIGN1cnJBcmcgPSBSdW50aW1lLm1ha2VCaWdJbnQoY3VyckFyZ1sw
XSwgY3VyckFyZ1sxXSwgbmV4dCA9PSAxMTcpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIC8vIFRydW5jYXRlIHRvIHJlcXVlc3RlZCBzaXplLgotICAgICAgICAgICAgICBpZiAoYXJn
U2l6ZSA8PSA0KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMjU2LCBh
cmdTaXplKSAtIDE7Ci0gICAgICAgICAgICAgICAgY3VyckFyZyA9IChzaWduZWQgPyByZVNpZ24g
OiB1blNpZ24pKGN1cnJBcmcgJiBsaW1pdCwgYXJnU2l6ZSAqIDgpOwotICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgIC8vIEZvcm1hdCB0aGUgbnVtYmVyLgotICAgICAgICAgICAgICB2YXIg
Y3VyckFic0FyZyA9IE1hdGguYWJzKGN1cnJBcmcpOwotICAgICAgICAgICAgICB2YXIgcHJlZml4
ID0gJyc7Ci0gICAgICAgICAgICAgIGlmIChuZXh0ID09IDEwMCB8fCBuZXh0ID09IDEwNSkgewot
ICAgICAgICAgICAgICAgIGlmIChhcmdTaXplID09IDggJiYgaTY0TWF0aCkgYXJnVGV4dCA9IGk2
NE1hdGguc3RyaW5naWZ5KG9yaWdBcmdbMF0sIG9yaWdBcmdbMV0sIG51bGwpOyBlbHNlCi0gICAg
ICAgICAgICAgICAgYXJnVGV4dCA9IHJlU2lnbihjdXJyQXJnLCA4ICogYXJnU2l6ZSwgMSkudG9T
dHJpbmcoMTApOwotICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTE3KSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKGFyZ1NpemUgPT0gOCAmJiBpNjRNYXRoKSBhcmdUZXh0ID0gaTY0TWF0
aC5zdHJpbmdpZnkob3JpZ0FyZ1swXSwgb3JpZ0FyZ1sxXSwgdHJ1ZSk7IGVsc2UKLSAgICAgICAg
ICAgICAgICBhcmdUZXh0ID0gdW5TaWduKGN1cnJBcmcsIDggKiBhcmdTaXplLCAxKS50b1N0cmlu
ZygxMCk7Ci0gICAgICAgICAgICAgICAgY3VyckFyZyA9IE1hdGguYWJzKGN1cnJBcmcpOwotICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTExKSB7Ci0gICAgICAgICAgICAgICAgYXJn
VGV4dCA9IChmbGFnQWx0ZXJuYXRpdmUgPyAnMCcgOiAnJykgKyBjdXJyQWJzQXJnLnRvU3RyaW5n
KDgpOwotICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTIwIHx8IG5leHQgPT0gODgp
IHsKLSAgICAgICAgICAgICAgICBwcmVmaXggPSAoZmxhZ0FsdGVybmF0aXZlICYmIGN1cnJBcmcg
IT0gMCkgPyAnMHgnIDogJyc7Ci0gICAgICAgICAgICAgICAgaWYgKGFyZ1NpemUgPT0gOCAmJiBp
NjRNYXRoKSB7Ci0gICAgICAgICAgICAgICAgICBpZiAob3JpZ0FyZ1sxXSkgewotICAgICAgICAg
ICAgICAgICAgICBhcmdUZXh0ID0gKG9yaWdBcmdbMV0+Pj4wKS50b1N0cmluZygxNik7Ci0gICAg
ICAgICAgICAgICAgICAgIHZhciBsb3dlciA9IChvcmlnQXJnWzBdPj4+MCkudG9TdHJpbmcoMTYp
OwotICAgICAgICAgICAgICAgICAgICB3aGlsZSAobG93ZXIubGVuZ3RoIDwgOCkgbG93ZXIgPSAn
MCcgKyBsb3dlcjsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCArPSBsb3dlcjsKLSAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAob3Jp
Z0FyZ1swXT4+PjApLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBpZiAoY3VyckFyZyA8IDApIHsKLSAgICAg
ICAgICAgICAgICAgIC8vIFJlcHJlc2VudCBuZWdhdGl2ZSBudW1iZXJzIGluIGhleCBhcyAyJ3Mg
Y29tcGxlbWVudC4KLSAgICAgICAgICAgICAgICAgIGN1cnJBcmcgPSAtY3VyckFyZzsKLSAgICAg
ICAgICAgICAgICAgIGFyZ1RleHQgPSAoY3VyckFic0FyZyAtIDEpLnRvU3RyaW5nKDE2KTsKLSAg
ICAgICAgICAgICAgICAgIHZhciBidWZmZXIgPSBbXTsKLSAgICAgICAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgYXJnVGV4dC5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAg
ICBidWZmZXIucHVzaCgoMHhGIC0gcGFyc2VJbnQoYXJnVGV4dFtpXSwgMTYpKS50b1N0cmluZygx
NikpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGJ1
ZmZlci5qb2luKCcnKTsKLSAgICAgICAgICAgICAgICAgIHdoaWxlIChhcmdUZXh0Lmxlbmd0aCA8
IGFyZ1NpemUgKiAyKSBhcmdUZXh0ID0gJ2YnICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBYnNBcmcudG9TdHJpbmco
MTYpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSA4OCkg
ewotICAgICAgICAgICAgICAgICAgcHJlZml4ID0gcHJlZml4LnRvVXBwZXJDYXNlKCk7Ci0gICAg
ICAgICAgICAgICAgICBhcmdUZXh0ID0gYXJnVGV4dC50b1VwcGVyQ2FzZSgpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09IDExMikgewotICAgICAg
ICAgICAgICAgIGlmIChjdXJyQWJzQXJnID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdU
ZXh0ID0gJyhuaWwpJzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgcHJlZml4ID0gJzB4JzsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBjdXJyQWJzQXJn
LnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgaWYgKHByZWNpc2lvblNldCkgewotICAgICAgICAgICAgICAgIHdoaWxlIChhcmdU
ZXh0Lmxlbmd0aCA8IHByZWNpc2lvbikgewotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICcw
JyArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgIC8vIEFkZCBzaWduIGlmIG5lZWRlZAotICAgICAgICAgICAgICBpZiAoZmxhZ0Fsd2F5
c1NpZ25lZCkgewotICAgICAgICAgICAgICAgIGlmIChjdXJyQXJnIDwgMCkgewotICAgICAgICAg
ICAgICAgICAgcHJlZml4ID0gJy0nICsgcHJlZml4OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICBwcmVmaXggPSAnKycgKyBwcmVmaXg7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nLgotICAg
ICAgICAgICAgICB3aGlsZSAocHJlZml4Lmxlbmd0aCArIGFyZ1RleHQubGVuZ3RoIDwgd2lkdGgp
IHsKLSAgICAgICAgICAgICAgICBpZiAoZmxhZ0xlZnRBbGlnbikgewotICAgICAgICAgICAgICAg
ICAgYXJnVGV4dCArPSAnICc7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgIGlmIChmbGFnWmVyb1BhZCkgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0g
JzAnICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHByZWZpeCA9ICcgJyArIHByZWZpeDsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gSW5zZXJ0IHRo
ZSByZXN1bHQgaW50byB0aGUgYnVmZmVyLgotICAgICAgICAgICAgICBhcmdUZXh0ID0gcHJlZml4
ICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAgYXJnVGV4dC5zcGxpdCgnJykuZm9yRWFjaChmdW5j
dGlvbihjaHIpIHsKLSAgICAgICAgICAgICAgICByZXQucHVzaChjaHIuY2hhckNvZGVBdCgwKSk7
Ci0gICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGNhc2UgJ2YnOiBjYXNlICdGJzogY2FzZSAnZSc6IGNhc2UgJ0UnOiBjYXNl
ICdnJzogY2FzZSAnRyc6IHsKLSAgICAgICAgICAgICAgLy8gRmxvYXQuCi0gICAgICAgICAgICAg
IHZhciBjdXJyQXJnID0gZ2V0TmV4dEFyZygnZG91YmxlJyk7Ci0gICAgICAgICAgICAgIHZhciBh
cmdUZXh0OwotICAgICAgICAgICAgICBpZiAoaXNOYU4oY3VyckFyZykpIHsKLSAgICAgICAgICAg
ICAgICBhcmdUZXh0ID0gJ25hbic7Ci0gICAgICAgICAgICAgICAgZmxhZ1plcm9QYWQgPSBmYWxz
ZTsKLSAgICAgICAgICAgICAgfSBlbHNlIGlmICghaXNGaW5pdGUoY3VyckFyZykpIHsKLSAgICAg
ICAgICAgICAgICBhcmdUZXh0ID0gKGN1cnJBcmcgPCAwID8gJy0nIDogJycpICsgJ2luZic7Ci0g
ICAgICAgICAgICAgICAgZmxhZ1plcm9QYWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICB2YXIgaXNHZW5lcmFsID0gZmFsc2U7Ci0gICAgICAgICAgICAg
ICAgdmFyIGVmZmVjdGl2ZVByZWNpc2lvbiA9IE1hdGgubWluKHByZWNpc2lvbiwgMjApOwotICAg
ICAgICAgICAgICAgIC8vIENvbnZlcnQgZy9HIHRvIGYvRiBvciBlL0UsIGFzIHBlcjoKLSAgICAg
ICAgICAgICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkx
OTc5OS9mdW5jdGlvbnMvcHJpbnRmLmh0bWwKLSAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSAx
MDMgfHwgbmV4dCA9PSA3MSkgewotICAgICAgICAgICAgICAgICAgaXNHZW5lcmFsID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICAgIHByZWNpc2lvbiA9IHByZWNpc2lvbiB8fCAxOwotICAgICAgICAg
ICAgICAgICAgdmFyIGV4cG9uZW50ID0gcGFyc2VJbnQoY3VyckFyZy50b0V4cG9uZW50aWFsKGVm
ZmVjdGl2ZVByZWNpc2lvbikuc3BsaXQoJ2UnKVsxXSwgMTApOwotICAgICAgICAgICAgICAgICAg
aWYgKHByZWNpc2lvbiA+IGV4cG9uZW50ICYmIGV4cG9uZW50ID49IC00KSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG5leHQgPSAoKG5leHQgPT0gMTAzKSA/ICdmJyA6ICdGJykuY2hhckNvZGVBdCgw
KTsKLSAgICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uIC09IGV4cG9uZW50ICsgMTsKLSAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIG5leHQgPSAoKG5leHQg
PT0gMTAzKSA/ICdlJyA6ICdFJykuY2hhckNvZGVBdCgwKTsKLSAgICAgICAgICAgICAgICAgICAg
cHJlY2lzaW9uLS07Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBlZmZl
Y3RpdmVQcmVjaXNpb24gPSBNYXRoLm1pbihwcmVjaXNpb24sIDIwKTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgaWYgKG5leHQgPT0gMTAxIHx8IG5leHQgPT0gNjkpIHsKLSAg
ICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBjdXJyQXJnLnRvRXhwb25lbnRpYWwoZWZmZWN0aXZl
UHJlY2lzaW9uKTsKLSAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgZXhwb25lbnQg
aGFzIGF0IGxlYXN0IDIgZGlnaXRzLgotICAgICAgICAgICAgICAgICAgaWYgKC9bZUVdWy0rXVxk
JC8udGVzdChhcmdUZXh0KSkgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gYXJnVGV4
dC5zbGljZSgwLCAtMSkgKyAnMCcgKyBhcmdUZXh0LnNsaWNlKC0xKTsKLSAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTAyIHx8IG5leHQgPT0g
NzApIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBjdXJyQXJnLnRvRml4ZWQoZWZmZWN0
aXZlUHJlY2lzaW9uKTsKLSAgICAgICAgICAgICAgICAgIGlmIChjdXJyQXJnID09PSAwICYmIF9f
cmVhbGx5TmVnYXRpdmUoY3VyckFyZykpIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9
ICctJyArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIHZhciBwYXJ0cyA9IGFyZ1RleHQuc3BsaXQoJ2UnKTsKLSAgICAgICAg
ICAgICAgICBpZiAoaXNHZW5lcmFsICYmICFmbGFnQWx0ZXJuYXRpdmUpIHsKLSAgICAgICAgICAg
ICAgICAgIC8vIERpc2NhcmQgdHJhaWxpbmcgemVyb3MgYW5kIHBlcmlvZHMuCi0gICAgICAgICAg
ICAgICAgICB3aGlsZSAocGFydHNbMF0ubGVuZ3RoID4gMSAmJiBwYXJ0c1swXS5pbmRleE9mKCcu
JykgIT0gLTEgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAocGFydHNbMF0uc2xpY2UoLTEp
ID09ICcwJyB8fCBwYXJ0c1swXS5zbGljZSgtMSkgPT0gJy4nKSkgewotICAgICAgICAgICAgICAg
ICAgICBwYXJ0c1swXSA9IHBhcnRzWzBdLnNsaWNlKDAsIC0xKTsKLSAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgLy8gTWFrZSBz
dXJlIHdlIGhhdmUgYSBwZXJpb2QgaW4gYWx0ZXJuYXRpdmUgbW9kZS4KLSAgICAgICAgICAgICAg
ICAgIGlmIChmbGFnQWx0ZXJuYXRpdmUgJiYgYXJnVGV4dC5pbmRleE9mKCcuJykgPT0gLTEpIHBh
cnRzWzBdICs9ICcuJzsKLSAgICAgICAgICAgICAgICAgIC8vIFplcm8gcGFkIHVudGlsIHJlcXVp
cmVkIHByZWNpc2lvbi4KLSAgICAgICAgICAgICAgICAgIHdoaWxlIChwcmVjaXNpb24gPiBlZmZl
Y3RpdmVQcmVjaXNpb24rKykgcGFydHNbMF0gKz0gJzAnOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBhcmdUZXh0ID0gcGFydHNbMF0gKyAocGFydHMubGVuZ3RoID4gMSA/ICdl
JyArIHBhcnRzWzFdIDogJycpOwotICAgICAgICAgICAgICAgIC8vIENhcGl0YWxpemUgJ0UnIGlm
IG5lZWRlZC4KLSAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSA2OSkgYXJnVGV4dCA9IGFyZ1Rl
eHQudG9VcHBlckNhc2UoKTsKLSAgICAgICAgICAgICAgICAvLyBBZGQgc2lnbi4KLSAgICAgICAg
ICAgICAgICBpZiAoZmxhZ0Fsd2F5c1NpZ25lZCAmJiBjdXJyQXJnID49IDApIHsKLSAgICAgICAg
ICAgICAgICAgIGFyZ1RleHQgPSAnKycgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBBZGQgcGFkZGluZy4KLSAgICAgICAgICAg
ICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwgd2lkdGgpIHsKLSAgICAgICAgICAgICAgICBpZiAo
ZmxhZ0xlZnRBbGlnbikgewotICAgICAgICAgICAgICAgICAgYXJnVGV4dCArPSAnICc7Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIGlmIChmbGFnWmVyb1BhZCAm
JiAoYXJnVGV4dFswXSA9PSAnLScgfHwgYXJnVGV4dFswXSA9PSAnKycpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGFyZ1RleHQgPSBhcmdUZXh0WzBdICsgJzAnICsgYXJnVGV4dC5zbGljZSgxKTsK
LSAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQg
PSAoZmxhZ1plcm9QYWQgPyAnMCcgOiAnICcpICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8g
QWRqdXN0IGNhc2UuCi0gICAgICAgICAgICAgIGlmIChuZXh0IDwgOTcpIGFyZ1RleHQgPSBhcmdU
ZXh0LnRvVXBwZXJDYXNlKCk7Ci0gICAgICAgICAgICAgIC8vIEluc2VydCB0aGUgcmVzdWx0IGlu
dG8gdGhlIGJ1ZmZlci4KLSAgICAgICAgICAgICAgYXJnVGV4dC5zcGxpdCgnJykuZm9yRWFjaChm
dW5jdGlvbihjaHIpIHsKLSAgICAgICAgICAgICAgICByZXQucHVzaChjaHIuY2hhckNvZGVBdCgw
KSk7Ci0gICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGNhc2UgJ3MnOiB7Ci0gICAgICAgICAgICAgIC8vIFN0cmluZy4KLSAg
ICAgICAgICAgICAgdmFyIGFyZyA9IGdldE5leHRBcmcoJ2k4KicpOwotICAgICAgICAgICAgICB2
YXIgYXJnTGVuZ3RoID0gYXJnID8gX3N0cmxlbihhcmcpIDogJyhudWxsKScubGVuZ3RoOwotICAg
ICAgICAgICAgICBpZiAocHJlY2lzaW9uU2V0KSBhcmdMZW5ndGggPSBNYXRoLm1pbihhcmdMZW5n
dGgsIHByZWNpc2lvbik7Ci0gICAgICAgICAgICAgIGlmICghZmxhZ0xlZnRBbGlnbikgewotICAg
ICAgICAgICAgICAgIHdoaWxlIChhcmdMZW5ndGggPCB3aWR0aC0tKSB7Ci0gICAgICAgICAgICAg
ICAgICByZXQucHVzaCgzMik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgIGlmIChhcmcpIHsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGFyZ0xlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICByZXQucHVzaChIRUFQVThb
KChhcmcrKyl8MCldKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgcmV0ID0gcmV0LmNvbmNhdChpbnRBcnJheUZyb21TdHJpbmcoJyhu
dWxsKScuc3Vic3RyKDAsIGFyZ0xlbmd0aCksIHRydWUpKTsKLSAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICBpZiAoZmxhZ0xlZnRBbGlnbikgewotICAgICAgICAgICAgICAgIHdoaWxlIChh
cmdMZW5ndGggPCB3aWR0aC0tKSB7Ci0gICAgICAgICAgICAgICAgICByZXQucHVzaCgzMik7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnYyc6IHsKLSAgICAgICAgICAgICAgLy8g
Q2hhcmFjdGVyLgotICAgICAgICAgICAgICBpZiAoZmxhZ0xlZnRBbGlnbikgcmV0LnB1c2goZ2V0
TmV4dEFyZygnaTgnKSk7Ci0gICAgICAgICAgICAgIHdoaWxlICgtLXdpZHRoID4gMCkgewotICAg
ICAgICAgICAgICAgIHJldC5wdXNoKDMyKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICBpZiAoIWZsYWdMZWZ0QWxpZ24pIHJldC5wdXNoKGdldE5leHRBcmcoJ2k4JykpOwotICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJ24nOiB7Ci0g
ICAgICAgICAgICAgIC8vIFdyaXRlIHRoZSBsZW5ndGggd3JpdHRlbiBzbyBmYXIgdG8gdGhlIG5l
eHQgcGFyYW1ldGVyLgotICAgICAgICAgICAgICB2YXIgcHRyID0gZ2V0TmV4dEFyZygnaTMyKicp
OwotICAgICAgICAgICAgICBIRUFQMzJbKChwdHIpPj4yKV09cmV0Lmxlbmd0aAotICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJyUnOiB7Ci0gICAg
ICAgICAgICAgIC8vIExpdGVyYWwgcGVyY2VudCBzaWduLgotICAgICAgICAgICAgICByZXQucHVz
aChjdXJyKTsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBkZWZhdWx0OiB7Ci0gICAgICAgICAgICAgIC8vIFVua25vd24gc3BlY2lmaWVycyByZW1haW4g
dW50b3VjaGVkLgotICAgICAgICAgICAgICBmb3IgKHZhciBpID0gc3RhcnRUZXh0SW5kZXg7IGkg
PCB0ZXh0SW5kZXggKyAyOyBpKyspIHsKLSAgICAgICAgICAgICAgICByZXQucHVzaChIRUFQOFso
aSldKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAg
ICAgICB0ZXh0SW5kZXggKz0gMjsKLSAgICAgICAgICAvLyBUT0RPOiBTdXBwb3J0IGEvQSAoaGV4
IGZsb2F0KSBhbmQgbSAobGFzdCBlcnJvcikgc3BlY2lmaWVycy4KLSAgICAgICAgICAvLyBUT0RP
OiBTdXBwb3J0ICUxJHtzcGVjaWZpZXJ9IGZvciBhcmcgc2VsZWN0aW9uLgotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgIHJldC5wdXNoKGN1cnIpOwotICAgICAgICAgIHRleHRJbmRleCArPSAx
OwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH1mdW5jdGlvbiBf
c25wcmludGYocywgbiwgZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAgICAvLyBpbnQgc25wcmludGYo
Y2hhciAqcmVzdHJpY3Qgcywgc2l6ZV90IG4sIGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwg
Li4uKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAw
OTUzOTkvZnVuY3Rpb25zL3ByaW50Zi5odG1sCi0gICAgICB2YXIgcmVzdWx0ID0gX19mb3JtYXRT
dHJpbmcoZm9ybWF0LCB2YXJhcmdzKTsKLSAgICAgIHZhciBsaW1pdCA9IChuID09PSB1bmRlZmlu
ZWQpID8gcmVzdWx0Lmxlbmd0aAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OiBNYXRoLm1pbihyZXN1bHQubGVuZ3RoLCBNYXRoLm1heChuIC0gMSwgMCkpOwotICAgICAgaWYg
KHMgPCAwKSB7Ci0gICAgICAgIHMgPSAtczsKLSAgICAgICAgdmFyIGJ1ZiA9IF9tYWxsb2MobGlt
aXQrMSk7Ci0gICAgICAgIEhFQVAzMlsoKHMpPj4yKV09YnVmOwotICAgICAgICBzID0gYnVmOwot
ICAgICAgfQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW1pdDsgaSsrKSB7Ci0gICAgICAg
IEhFQVA4WygoKHMpKyhpKSl8MCldPXJlc3VsdFtpXTsKLSAgICAgIH0KLSAgICAgIGlmIChsaW1p
dCA8IG4gfHwgKG4gPT09IHVuZGVmaW5lZCkpIEhFQVA4WygoKHMpKyhpKSl8MCldPTA7Ci0gICAg
ICByZXR1cm4gcmVzdWx0Lmxlbmd0aDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9zeXNjb25mKG5hbWUp
IHsKLSAgICAgIC8vIGxvbmcgc3lzY29uZihpbnQgbmFtZSk7Ci0gICAgICAvLyBodHRwOi8vcHVi
cy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA5Njk1Mzk5L2Z1bmN0aW9ucy9zeXNjb25mLmh0
bWwKLSAgICAgIHN3aXRjaChuYW1lKSB7Ci0gICAgICAgIGNhc2UgODogcmV0dXJuIFBBR0VfU0la
RTsKLSAgICAgICAgY2FzZSA1NDoKLSAgICAgICAgY2FzZSA1NjoKLSAgICAgICAgY2FzZSAyMToK
LSAgICAgICAgY2FzZSA2MToKLSAgICAgICAgY2FzZSA2MzoKLSAgICAgICAgY2FzZSAyMjoKLSAg
ICAgICAgY2FzZSA2NzoKLSAgICAgICAgY2FzZSAyMzoKLSAgICAgICAgY2FzZSAyNDoKLSAgICAg
ICAgY2FzZSAyNToKLSAgICAgICAgY2FzZSAyNjoKLSAgICAgICAgY2FzZSAyNzoKLSAgICAgICAg
Y2FzZSA2OToKLSAgICAgICAgY2FzZSAyODoKLSAgICAgICAgY2FzZSAxMDE6Ci0gICAgICAgIGNh
c2UgNzA6Ci0gICAgICAgIGNhc2UgNzE6Ci0gICAgICAgIGNhc2UgMjk6Ci0gICAgICAgIGNhc2Ug
MzA6Ci0gICAgICAgIGNhc2UgMTk5OgotICAgICAgICBjYXNlIDc1OgotICAgICAgICBjYXNlIDc2
OgotICAgICAgICBjYXNlIDMyOgotICAgICAgICBjYXNlIDQzOgotICAgICAgICBjYXNlIDQ0Ogot
ICAgICAgICBjYXNlIDgwOgotICAgICAgICBjYXNlIDQ2OgotICAgICAgICBjYXNlIDQ3OgotICAg
ICAgICBjYXNlIDQ1OgotICAgICAgICBjYXNlIDQ4OgotICAgICAgICBjYXNlIDQ5OgotICAgICAg
ICBjYXNlIDQyOgotICAgICAgICBjYXNlIDgyOgotICAgICAgICBjYXNlIDMzOgotICAgICAgICBj
YXNlIDc6Ci0gICAgICAgIGNhc2UgMTA4OgotICAgICAgICBjYXNlIDEwOToKLSAgICAgICAgY2Fz
ZSAxMDc6Ci0gICAgICAgIGNhc2UgMTEyOgotICAgICAgICBjYXNlIDExOToKLSAgICAgICAgY2Fz
ZSAxMjE6Ci0gICAgICAgICAgcmV0dXJuIDIwMDgwOTsKLSAgICAgICAgY2FzZSAxMzoKLSAgICAg
ICAgY2FzZSAxMDQ6Ci0gICAgICAgIGNhc2UgOTQ6Ci0gICAgICAgIGNhc2UgOTU6Ci0gICAgICAg
IGNhc2UgMzQ6Ci0gICAgICAgIGNhc2UgMzU6Ci0gICAgICAgIGNhc2UgNzc6Ci0gICAgICAgIGNh
c2UgODE6Ci0gICAgICAgIGNhc2UgODM6Ci0gICAgICAgIGNhc2UgODQ6Ci0gICAgICAgIGNhc2Ug
ODU6Ci0gICAgICAgIGNhc2UgODY6Ci0gICAgICAgIGNhc2UgODc6Ci0gICAgICAgIGNhc2UgODg6
Ci0gICAgICAgIGNhc2UgODk6Ci0gICAgICAgIGNhc2UgOTA6Ci0gICAgICAgIGNhc2UgOTE6Ci0g
ICAgICAgIGNhc2UgOTQ6Ci0gICAgICAgIGNhc2UgOTU6Ci0gICAgICAgIGNhc2UgMTEwOgotICAg
ICAgICBjYXNlIDExMToKLSAgICAgICAgY2FzZSAxMTM6Ci0gICAgICAgIGNhc2UgMTE0OgotICAg
ICAgICBjYXNlIDExNToKLSAgICAgICAgY2FzZSAxMTY6Ci0gICAgICAgIGNhc2UgMTE3OgotICAg
ICAgICBjYXNlIDExODoKLSAgICAgICAgY2FzZSAxMjA6Ci0gICAgICAgIGNhc2UgNDA6Ci0gICAg
ICAgIGNhc2UgMTY6Ci0gICAgICAgIGNhc2UgNzk6Ci0gICAgICAgIGNhc2UgMTk6Ci0gICAgICAg
ICAgcmV0dXJuIC0xOwotICAgICAgICBjYXNlIDkyOgotICAgICAgICBjYXNlIDkzOgotICAgICAg
ICBjYXNlIDU6Ci0gICAgICAgIGNhc2UgNzI6Ci0gICAgICAgIGNhc2UgNjoKLSAgICAgICAgY2Fz
ZSA3NDoKLSAgICAgICAgY2FzZSA5MjoKLSAgICAgICAgY2FzZSA5MzoKLSAgICAgICAgY2FzZSA5
NjoKLSAgICAgICAgY2FzZSA5NzoKLSAgICAgICAgY2FzZSA5ODoKLSAgICAgICAgY2FzZSA5OToK
LSAgICAgICAgY2FzZSAxMDI6Ci0gICAgICAgIGNhc2UgMTAzOgotICAgICAgICBjYXNlIDEwNToK
LSAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgY2FzZSAzODoKLSAgICAgICAgY2FzZSA2NjoK
LSAgICAgICAgY2FzZSA1MDoKLSAgICAgICAgY2FzZSA1MToKLSAgICAgICAgY2FzZSA0OgotICAg
ICAgICAgIHJldHVybiAxMDI0OwotICAgICAgICBjYXNlIDE1OgotICAgICAgICBjYXNlIDY0Ogot
ICAgICAgICBjYXNlIDQxOgotICAgICAgICAgIHJldHVybiAzMjsKLSAgICAgICAgY2FzZSA1NToK
LSAgICAgICAgY2FzZSAzNzoKLSAgICAgICAgY2FzZSAxNzoKLSAgICAgICAgICByZXR1cm4gMjE0
NzQ4MzY0NzsKLSAgICAgICAgY2FzZSAxODoKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgIHJl
dHVybiA0NzgzOTsKLSAgICAgICAgY2FzZSA1OToKLSAgICAgICAgY2FzZSA1NzoKLSAgICAgICAg
ICByZXR1cm4gOTk7Ci0gICAgICAgIGNhc2UgNjg6Ci0gICAgICAgIGNhc2UgNTg6Ci0gICAgICAg
ICAgcmV0dXJuIDIwNDg7Ci0gICAgICAgIGNhc2UgMDogcmV0dXJuIDIwOTcxNTI7Ci0gICAgICAg
IGNhc2UgMzogcmV0dXJuIDY1NTM2OwotICAgICAgICBjYXNlIDE0OiByZXR1cm4gMzI3Njg7Ci0g
ICAgICAgIGNhc2UgNzM6IHJldHVybiAzMjc2NzsKLSAgICAgICAgY2FzZSAzOTogcmV0dXJuIDE2
Mzg0OwotICAgICAgICBjYXNlIDYwOiByZXR1cm4gMTAwMDsKLSAgICAgICAgY2FzZSAxMDY6IHJl
dHVybiA3MDA7Ci0gICAgICAgIGNhc2UgNTI6IHJldHVybiAyNTY7Ci0gICAgICAgIGNhc2UgNjI6
IHJldHVybiAyNTU7Ci0gICAgICAgIGNhc2UgMjogcmV0dXJuIDEwMDsKLSAgICAgICAgY2FzZSA2
NTogcmV0dXJuIDY0OwotICAgICAgICBjYXNlIDM2OiByZXR1cm4gMjA7Ci0gICAgICAgIGNhc2Ug
MTAwOiByZXR1cm4gMTY7Ci0gICAgICAgIGNhc2UgMjA6IHJldHVybiA2OwotICAgICAgICBjYXNl
IDUzOiByZXR1cm4gNDsKLSAgICAgICAgY2FzZSAxMDogcmV0dXJuIDE7Ci0gICAgICB9Ci0gICAg
ICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgcmV0dXJuIC0xOwotICAg
IH0KLSAgZnVuY3Rpb24gX19fY3hhX2d1YXJkX2Fib3J0KCkge30KLSAgZnVuY3Rpb24gX2lzeGRp
Z2l0KGNocikgewotICAgICAgcmV0dXJuIChjaHIgPj0gNDggJiYgY2hyIDw9IDU3KSB8fAotICAg
ICAgICAgICAgIChjaHIgPj0gOTcgJiYgY2hyIDw9IDEwMikgfHwKLSAgICAgICAgICAgICAoY2hy
ID49IDY1ICYmIGNociA8PSA3MCk7Ci0gICAgfXZhciBfaXN4ZGlnaXRfbD1faXN4ZGlnaXQ7Ci0g
IGZ1bmN0aW9uIF9pc2RpZ2l0KGNocikgewotICAgICAgcmV0dXJuIGNociA+PSA0OCAmJiBjaHIg
PD0gNTc7Ci0gICAgfXZhciBfaXNkaWdpdF9sPV9pc2RpZ2l0OwotICBmdW5jdGlvbiBfX2lzRmxv
YXQodGV4dCkgewotICAgICAgcmV0dXJuICEhKC9eWystXT9bMC05XSpcLj9bMC05XSsoW2VFXVsr
LV0/WzAtOV0rKT8kLy5leGVjKHRleHQpKTsKLSAgICB9ZnVuY3Rpb24gX19zY2FuU3RyaW5nKGZv
cm1hdCwgZ2V0LCB1bmdldCwgdmFyYXJncykgewotICAgICAgaWYgKCFfX3NjYW5TdHJpbmcud2hp
dGVTcGFjZSkgewotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZSA9IHt9OwotICAgICAg
ICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVszMl0gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcu
d2hpdGVTcGFjZVs5XSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWzEwXSA9
IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWzExXSA9IDE7Ci0gICAgICAgIF9f
c2NhblN0cmluZy53aGl0ZVNwYWNlWzEyXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0
ZVNwYWNlWzEzXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWycgJ10gPSAx
OwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsnXHQnXSA9IDE7Ci0gICAgICAgIF9f
c2NhblN0cmluZy53aGl0ZVNwYWNlWydcbiddID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndo
aXRlU3BhY2VbJ1x2J10gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsnXGYn
XSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcciddID0gMTsKLSAgICAg
IH0KLSAgICAgIC8vIFN1cHBvcnRzICV4LCAlNHgsICVkLiVkLCAlbGxkLCAlcywgJWYsICVsZi4K
LSAgICAgIC8vIFRPRE86IFN1cHBvcnQgYWxsIGZvcm1hdCBzcGVjaWZpZXJzLgotICAgICAgZm9y
bWF0ID0gUG9pbnRlcl9zdHJpbmdpZnkoZm9ybWF0KTsKLSAgICAgIHZhciBzb0ZhciA9IDA7Ci0g
ICAgICBpZiAoZm9ybWF0LmluZGV4T2YoJyVuJykgPj0gMCkgewotICAgICAgICAvLyBuZWVkIHRv
IHRyYWNrIHNvRmFyCi0gICAgICAgIHZhciBfZ2V0ID0gZ2V0OwotICAgICAgICBnZXQgPSBmdW5j
dGlvbigpIHsKLSAgICAgICAgICBzb0ZhcisrOwotICAgICAgICAgIHJldHVybiBfZ2V0KCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgdmFyIF91bmdldCA9IHVuZ2V0OwotICAgICAgICB1bmdldCA9IGZ1
bmN0aW9uKCkgewotICAgICAgICAgIHNvRmFyLS07Ci0gICAgICAgICAgcmV0dXJuIF91bmdldCgp
OwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICB2YXIgZm9ybWF0SW5kZXggPSAwOwotICAgICAg
dmFyIGFyZ3NpID0gMDsKLSAgICAgIHZhciBmaWVsZHMgPSAwOwotICAgICAgdmFyIGFyZ0luZGV4
ID0gMDsKLSAgICAgIHZhciBuZXh0OwotICAgICAgbWFpbkxvb3A6Ci0gICAgICBmb3IgKHZhciBm
b3JtYXRJbmRleCA9IDA7IGZvcm1hdEluZGV4IDwgZm9ybWF0Lmxlbmd0aDspIHsKLSAgICAgICAg
aWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT09ICclJyAmJiBmb3JtYXRbZm9ybWF0SW5kZXgrMV0g
PT0gJ24nKSB7Ci0gICAgICAgICAgdmFyIGFyZ1B0ciA9IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJn
SW5kZXgpKT4+MildOwotICAgICAgICAgIGFyZ0luZGV4ICs9IFJ1bnRpbWUuZ2V0QWxpZ25TaXpl
KCd2b2lkKicsIG51bGwsIHRydWUpOwotICAgICAgICAgIEhFQVAzMlsoKGFyZ1B0cik+PjIpXT1z
b0ZhcjsKLSAgICAgICAgICBmb3JtYXRJbmRleCArPSAyOwotICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdID09PSAnJScpIHsKLSAg
ICAgICAgICB2YXIgbmV4dEMgPSBmb3JtYXQuaW5kZXhPZignYycsIGZvcm1hdEluZGV4KzEpOwot
ICAgICAgICAgIGlmIChuZXh0QyA+IDApIHsKLSAgICAgICAgICAgIHZhciBtYXh4ID0gMTsKLSAg
ICAgICAgICAgIGlmIChuZXh0QyA+IGZvcm1hdEluZGV4KzEpIHsKLSAgICAgICAgICAgICAgdmFy
IHN1YiA9IGZvcm1hdC5zdWJzdHJpbmcoZm9ybWF0SW5kZXgrMSwgbmV4dEMpCi0gICAgICAgICAg
ICAgIG1heHggPSBwYXJzZUludChzdWIpOwotICAgICAgICAgICAgICBpZiAobWF4eCAhPSBzdWIp
IG1heHggPSAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1heHgpIHsKLSAgICAg
ICAgICAgICAgdmFyIGFyZ1B0ciA9IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+Mild
OwotICAgICAgICAgICAgICBhcmdJbmRleCArPSBSdW50aW1lLmdldEFsaWduU2l6ZSgndm9pZCon
LCBudWxsLCB0cnVlKTsKLSAgICAgICAgICAgICAgZmllbGRzKys7Ci0gICAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbWF4eDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgbmV4dCA9IGdl
dCgpOwotICAgICAgICAgICAgICAgIEhFQVA4WygoYXJnUHRyKyspfDApXT1uZXh0OwotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgIGZvcm1hdEluZGV4ICs9IG5leHRDIC0gZm9ybWF0SW5k
ZXggKyAxOwotICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gcmVtb3ZlIHdoaXRlc3BhY2UKLSAgICAgICAgd2hp
bGUgKDEpIHsKLSAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgaWYgKG5leHQgPT0g
MCkgcmV0dXJuIGZpZWxkczsKLSAgICAgICAgICBpZiAoIShuZXh0IGluIF9fc2NhblN0cmluZy53
aGl0ZVNwYWNlKSkgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgdW5nZXQoKTsKLSAgICAgICAg
aWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT09ICclJykgewotICAgICAgICAgIGZvcm1hdEluZGV4
Kys7Ci0gICAgICAgICAgdmFyIHN1cHByZXNzQXNzaWdubWVudCA9IGZhbHNlOwotICAgICAgICAg
IGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdID09ICcqJykgewotICAgICAgICAgICAgc3VwcHJlc3NB
c3NpZ25tZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAg
fQotICAgICAgICAgIHZhciBtYXhTcGVjaWZpZXJTdGFydCA9IGZvcm1hdEluZGV4OwotICAgICAg
ICAgIHdoaWxlIChmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkgPj0gNDggJiYKLSAg
ICAgICAgICAgICAgICAgZm9ybWF0W2Zvcm1hdEluZGV4XS5jaGFyQ29kZUF0KDApIDw9IDU3KSB7
Ci0gICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIg
bWF4XzsKLSAgICAgICAgICBpZiAoZm9ybWF0SW5kZXggIT0gbWF4U3BlY2lmaWVyU3RhcnQpIHsK
LSAgICAgICAgICAgIG1heF8gPSBwYXJzZUludChmb3JtYXQuc2xpY2UobWF4U3BlY2lmaWVyU3Rh
cnQsIGZvcm1hdEluZGV4KSwgMTApOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgbG9uZ18g
PSBmYWxzZTsKLSAgICAgICAgICB2YXIgaGFsZiA9IGZhbHNlOwotICAgICAgICAgIHZhciBsb25n
TG9uZyA9IGZhbHNlOwotICAgICAgICAgIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdID09ICdsJykg
ewotICAgICAgICAgICAgbG9uZ18gPSB0cnVlOwotICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsK
LSAgICAgICAgICAgIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdID09ICdsJykgewotICAgICAgICAg
ICAgICBsb25nTG9uZyA9IHRydWU7Ci0gICAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdID09ICdo
JykgewotICAgICAgICAgICAgaGFsZiA9IHRydWU7Ci0gICAgICAgICAgICBmb3JtYXRJbmRleCsr
OwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgdHlwZSA9IGZvcm1hdFtmb3JtYXRJbmRleF07
Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICB2YXIgY3VyciA9IDA7Ci0gICAg
ICAgICAgdmFyIGJ1ZmZlciA9IFtdOwotICAgICAgICAgIC8vIFJlYWQgY2hhcmFjdGVycyBhY2Nv
cmRpbmcgdG8gdGhlIGZvcm1hdC4gZmxvYXRzIGFyZSB0cmlja2llciwgdGhleSBtYXkgYmUgaW4g
YW4gdW5mbG9hdCBzdGF0ZSBpbiB0aGUgbWlkZGxlLCB0aGVuIGJlIGEgdmFsaWQgZmxvYXQgbGF0
ZXIKLSAgICAgICAgICBpZiAodHlwZSA9PSAnZicgfHwgdHlwZSA9PSAnZScgfHwgdHlwZSA9PSAn
ZycgfHwKLSAgICAgICAgICAgICAgdHlwZSA9PSAnRicgfHwgdHlwZSA9PSAnRScgfHwgdHlwZSA9
PSAnRycpIHsKLSAgICAgICAgICAgIHZhciBsYXN0ID0gMDsKLSAgICAgICAgICAgIG5leHQgPSBn
ZXQoKTsKLSAgICAgICAgICAgIHdoaWxlIChuZXh0ID4gMCkgewotICAgICAgICAgICAgICBidWZm
ZXIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKTsKLSAgICAgICAgICAgICAgaWYgKF9f
aXNGbG9hdChidWZmZXIuam9pbignJykpKSB7Ci0gICAgICAgICAgICAgICAgbGFzdCA9IGJ1ZmZl
ci5sZW5ndGg7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgbmV4dCA9IGdldCgpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWZmZXIubGVu
Z3RoIC0gbGFzdCArIDE7IGkrKykgewotICAgICAgICAgICAgICB1bmdldCgpOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgYnVmZmVyLmxlbmd0aCA9IGxhc3Q7Ci0gICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICAgIHZhciBmaXJzdCA9IHRy
dWU7Ci0gICAgICAgICAgICB3aGlsZSAoKGN1cnIgPCBtYXhfIHx8IGlzTmFOKG1heF8pKSAmJiBu
ZXh0ID4gMCkgewotICAgICAgICAgICAgICBpZiAoIShuZXh0IGluIF9fc2NhblN0cmluZy53aGl0
ZVNwYWNlKSAmJiAvLyBzdG9wIG9uIHdoaXRlc3BhY2UKLSAgICAgICAgICAgICAgICAgICh0eXBl
ID09ICdzJyB8fAotICAgICAgICAgICAgICAgICAgICgodHlwZSA9PT0gJ2QnIHx8IHR5cGUgPT0g
J3UnIHx8IHR5cGUgPT0gJ2knKSAmJiAoKG5leHQgPj0gNDggJiYgbmV4dCA8PSA1NykgfHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChmaXJzdCAmJiBuZXh0ID09IDQ1KSkpIHx8Ci0gICAgICAgICAgICAgICAgICAg
KCh0eXBlID09PSAneCcgfHwgdHlwZSA9PT0gJ1gnKSAmJiAobmV4dCA+PSA0OCAmJiBuZXh0IDw9
IDU3IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA+PSA5NyAm
JiBuZXh0IDw9IDEwMiB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5l
eHQgPj0gNjUgJiYgbmV4dCA8PSA3MCkpKSAmJgotICAgICAgICAgICAgICAgICAgKGZvcm1hdElu
ZGV4ID49IGZvcm1hdC5sZW5ndGggfHwgbmV4dCAhPT0gZm9ybWF0W2Zvcm1hdEluZGV4XS5jaGFy
Q29kZUF0KDApKSkgeyAvLyBTdG9wIHdoZW4gd2UgcmVhZCBzb21ldGhpbmcgdGhhdCBpcyBjb21p
bmcgdXAKLSAgICAgICAgICAgICAgICBidWZmZXIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG5l
eHQpKTsKLSAgICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgICAgICAgY3Vy
cisrOwotICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7Ci0gICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHVuZ2V0KCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChidWZm
ZXIubGVuZ3RoID09PSAwKSByZXR1cm4gMDsgIC8vIEZhaWx1cmUuCi0gICAgICAgICAgaWYgKHN1
cHByZXNzQXNzaWdubWVudCkgY29udGludWU7Ci0gICAgICAgICAgdmFyIHRleHQgPSBidWZmZXIu
am9pbignJyk7Ci0gICAgICAgICAgdmFyIGFyZ1B0ciA9IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJn
SW5kZXgpKT4+MildOwotICAgICAgICAgIGFyZ0luZGV4ICs9IFJ1bnRpbWUuZ2V0QWxpZ25TaXpl
KCd2b2lkKicsIG51bGwsIHRydWUpOwotICAgICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAg
ICAgICAgY2FzZSAnZCc6IGNhc2UgJ3UnOiBjYXNlICdpJzoKLSAgICAgICAgICAgICAgaWYgKGhh
bGYpIHsKLSAgICAgICAgICAgICAgICBIRUFQMTZbKChhcmdQdHIpPj4xKV09cGFyc2VJbnQodGV4
dCwgMTApOwotICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvbmdMb25nKSB7Ci0gICAgICAgICAg
ICAgICAgKHRlbXBJNjQgPSBbcGFyc2VJbnQodGV4dCwgMTApPj4+MCwodGVtcERvdWJsZT1wYXJz
ZUludCh0ZXh0LCAxMCksKCsoTWF0aC5hYnModGVtcERvdWJsZSkpKSA+PSAoKygxKSkgPyAodGVt
cERvdWJsZSA+ICgrKDApKSA/ICgoTWF0aC5taW4oKCsoTWF0aC5mbG9vcigodGVtcERvdWJsZSkv
KCsoNDI5NDk2NzI5NikpKSkpLCAoKyg0Mjk0OTY3Mjk1KSkpKXwwKT4+PjAgOiAofn4oKCsoTWF0
aC5jZWlsKCh0ZW1wRG91YmxlIC0gKygoKH5+KHRlbXBEb3VibGUpKSk+Pj4wKSkvKCsoNDI5NDk2
NzI5NikpKSkpKSk+Pj4wKSA6IDApXSxIRUFQMzJbKChhcmdQdHIpPj4yKV09dGVtcEk2NFswXSxI
RUFQMzJbKCgoYXJnUHRyKSsoNCkpPj4yKV09dGVtcEk2NFsxXSk7Ci0gICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgSEVBUDMyWygoYXJnUHRyKT4+MildPXBhcnNlSW50KHRl
eHQsIDEwKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgJ1gnOgotICAgICAgICAgICAgY2FzZSAneCc6Ci0gICAgICAgICAgICAgIEhFQVAz
MlsoKGFyZ1B0cik+PjIpXT1wYXJzZUludCh0ZXh0LCAxNikKLSAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICBjYXNlICdGJzoKLSAgICAgICAgICAgIGNhc2UgJ2YnOgotICAgICAgICAg
ICAgY2FzZSAnRSc6Ci0gICAgICAgICAgICBjYXNlICdlJzoKLSAgICAgICAgICAgIGNhc2UgJ0cn
OgotICAgICAgICAgICAgY2FzZSAnZyc6Ci0gICAgICAgICAgICBjYXNlICdFJzoKLSAgICAgICAg
ICAgICAgLy8gZmFsbHRocm91Z2ggaW50ZW5kZWQKLSAgICAgICAgICAgICAgaWYgKGxvbmdfKSB7
Ci0gICAgICAgICAgICAgICAgSEVBUEY2NFsoKGFyZ1B0cik+PjMpXT1wYXJzZUZsb2F0KHRleHQp
Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgSEVBUEYzMlsoKGFyZ1B0
cik+PjIpXT1wYXJzZUZsb2F0KHRleHQpCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdzJzoKLSAgICAgICAgICAgICAgdmFyIGFycmF5ID0g
aW50QXJyYXlGcm9tU3RyaW5nKHRleHQpOwotICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsg
aiA8IGFycmF5Lmxlbmd0aDsgaisrKSB7Ci0gICAgICAgICAgICAgICAgSEVBUDhbKCgoYXJnUHRy
KSsoaikpfDApXT1hcnJheVtqXQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgIH0KLSAgICAgICAgICBmaWVsZHMrKzsKLSAgICAgICAgfSBlbHNlIGlmIChm
b3JtYXRbZm9ybWF0SW5kZXhdIGluIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlKSB7Ci0gICAgICAg
ICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgIHdoaWxlIChuZXh0IGluIF9fc2NhblN0cmluZy53
aGl0ZVNwYWNlKSB7Ci0gICAgICAgICAgICBpZiAobmV4dCA8PSAwKSBicmVhayBtYWluTG9vcDsg
IC8vIEVuZCBvZiBpbnB1dC4KLSAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgdW5nZXQobmV4dCk7Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAvLyBOb3QgYSBzcGVjaWZpZXIuCi0gICAgICAgICAgbmV4
dCA9IGdldCgpOwotICAgICAgICAgIGlmIChmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQo
MCkgIT09IG5leHQpIHsKLSAgICAgICAgICAgIHVuZ2V0KG5leHQpOwotICAgICAgICAgICAgYnJl
YWsgbWFpbkxvb3A7Ci0gICAgICAgICAgfQotICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAg
ICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiBmaWVsZHM7Ci0gICAgfWZ1bmN0aW9uIF9zc2Nh
bmYocywgZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAgICAvLyBpbnQgc3NjYW5mKGNvbnN0IGNoYXIg
KnJlc3RyaWN0IHMsIGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgLi4uICk7Ci0gICAgICAv
LyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9u
cy9zY2FuZi5odG1sCi0gICAgICB2YXIgaW5kZXggPSAwOwotICAgICAgdmFyIGdldCA9IGZ1bmN0
aW9uKCkgeyByZXR1cm4gSEVBUDhbKCgocykrKGluZGV4KyspKXwwKV07IH07Ci0gICAgICB2YXIg
dW5nZXQgPSBmdW5jdGlvbigpIHsgaW5kZXgtLTsgfTsKLSAgICAgIHJldHVybiBfX3NjYW5TdHJp
bmcoZm9ybWF0LCBnZXQsIHVuZ2V0LCB2YXJhcmdzKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fWjdj
YXRvcGVuUEtjaSgpIHsgdGhyb3cgJ2NhdG9wZW4gbm90IGltcGxlbWVudGVkJyB9Ci0gIGZ1bmN0
aW9uIF9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtjKCkgeyB0aHJvdyAnY2F0Z2V0cyBub3QgaW1w
bGVtZW50ZWQnIH0KLSAgZnVuY3Rpb24gX19aOGNhdGNsb3NlUDhfbmxfY2F0ZCgpIHsgdGhyb3cg
J2NhdGNsb3NlIG5vdCBpbXBsZW1lbnRlZCcgfQotICBmdW5jdGlvbiBfbmV3bG9jYWxlKG1hc2ss
IGxvY2FsZSwgYmFzZSkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICBmdW5jdGlvbiBfZnJl
ZWxvY2FsZShsb2NhbGUpIHt9Ci0gIGZ1bmN0aW9uIF9fX2N0eXBlX2JfbG9jKCkgewotICAgICAg
Ly8gaHR0cDovL3JlZnNwZWNzLmZyZWVzdGFuZGFyZHMub3JnL0xTQl8zLjAuMC9MU0ItQ29yZS1n
ZW5lcmljL0xTQi1Db3JlLWdlbmVyaWMvYmFzZWxpYi0tLWN0eXBlLWItbG9jLmh0bWwKLSAgICAg
IHZhciBtZSA9IF9fX2N0eXBlX2JfbG9jOwotICAgICAgaWYgKCFtZS5yZXQpIHsKLSAgICAgICAg
dmFyIHZhbHVlcyA9IFsKLSAgICAgICAgICAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsCi0gICAgICAgICAgMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLAotICAgICAgICAg
IDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwyLDIsMiwyLDIsMiwyLDIsODE5NSw4MTk0LDgxOTQsODE5
NCw4MTk0LDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDI0NTc3LDQ5MTU2LDQ5
MTU2LDQ5MTU2LAotICAgICAgICAgIDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2
LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDU1MzA0LDU1MzA0LDU1MzA0LDU1
MzA0LDU1MzA0LDU1MzA0LDU1MzA0LDU1MzA0LAotICAgICAgICAgIDU1MzA0LDU1MzA0LDQ5MTU2
LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDU0NTM2LDU0NTM2LDU0NTM2LDU0
NTM2LDU0NTM2LDU0NTM2LDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLAotICAgICAgICAg
IDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUw
NDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDUwNDQwLDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2
LDQ5MTU2LAotICAgICAgICAgIDQ5MTU2LDU0NzkyLDU0NzkyLDU0NzkyLDU0NzkyLDU0NzkyLDU0
NzkyLDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2
LDUwNjk2LDUwNjk2LDUwNjk2LDUwNjk2LAotICAgICAgICAgIDUwNjk2LDUwNjk2LDUwNjk2LDUw
Njk2LDUwNjk2LDUwNjk2LDUwNjk2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDQ5MTU2LDIsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAgICAwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
Ci0gICAgICAgICAgMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwCi0gICAgICAgIF07Ci0g
ICAgICAgIHZhciBpMTZzaXplID0gMjsKLSAgICAgICAgdmFyIGFyciA9IF9tYWxsb2ModmFsdWVz
Lmxlbmd0aCAqIGkxNnNpemUpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5s
ZW5ndGg7IGkrKykgewotICAgICAgICAgIEhFQVAxNlsoKChhcnIpKyhpICogaTE2c2l6ZSkpPj4x
KV09dmFsdWVzW2ldCi0gICAgICAgIH0KLSAgICAgICAgbWUucmV0ID0gYWxsb2NhdGUoW2FyciAr
IDEyOCAqIGkxNnNpemVdLCAnaTE2KicsIEFMTE9DX05PUk1BTCk7Ci0gICAgICB9Ci0gICAgICBy
ZXR1cm4gbWUucmV0OwotICAgIH0KLSAgZnVuY3Rpb24gX19fY3R5cGVfdG9sb3dlcl9sb2MoKSB7
Ci0gICAgICAvLyBodHRwOi8vcmVmc3BlY3MuZnJlZXN0YW5kYXJkcy5vcmcvTFNCXzMuMS4xL0xT
Qi1Db3JlLWdlbmVyaWMvTFNCLUNvcmUtZ2VuZXJpYy9saWJ1dGlsLS0tY3R5cGUtdG9sb3dlci1s
b2MuaHRtbAotICAgICAgdmFyIG1lID0gX19fY3R5cGVfdG9sb3dlcl9sb2M7Ci0gICAgICBpZiAo
IW1lLnJldCkgewotICAgICAgICB2YXIgdmFsdWVzID0gWwotICAgICAgICAgIDEyOCwxMjksMTMw
LDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQs
MTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LAotICAg
ICAgICAgIDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3
MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0
LDE4NSwxODYsMTg3LAotICAgICAgICAgIDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUs
MTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwy
MTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LAotICAgICAgICAgIDIxOCwyMTksMjIwLDIy
MSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1
LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LAotICAgICAg
ICAgIDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwtMSwwLDEsMiwzLDQsNSw2LDcsOCw5LDEw
LDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5
LDMwLDMxLDMyLAotICAgICAgICAgIDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0
LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYz
LDY0LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywKLSAgICAgICAgICAxMDQsMTA1LDEwNiwxMDcs
MTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwx
MjIsOTEsOTIsOTMsOTQsOTUsOTYsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLAotICAgICAgICAg
IDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDExMCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcs
MTE4LDExOSwxMjAsMTIxLDEyMiwxMjMsMTI0LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwx
MzIsMTMzLAotICAgICAgICAgIDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0
MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3
LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLAotICAgICAgICAgIDE2NCwxNjUsMTY2LDE2NywxNjgs
MTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4Miwx
ODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLAotICAgICAgICAgIDE5
NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4
LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIs
MjIzLAotICAgICAgICAgIDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywy
MzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0
OCwyNDksMjUwLDI1MSwyNTIsMjUzLAotICAgICAgICAgIDI1NCwyNTUKLSAgICAgICAgXTsKLSAg
ICAgICAgdmFyIGkzMnNpemUgPSA0OwotICAgICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMu
bGVuZ3RoICogaTMyc2l6ZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxl
bmd0aDsgaSsrKSB7Ci0gICAgICAgICAgSEVBUDMyWygoKGFycikrKGkgKiBpMzJzaXplKSk+PjIp
XT12YWx1ZXNbaV0KLSAgICAgICAgfQotICAgICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsg
MTI4ICogaTMyc2l6ZV0sICdpMzIqJywgQUxMT0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJl
dHVybiBtZS5yZXQ7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jdHlwZV90b3VwcGVyX2xvYygpIHsK
LSAgICAgIC8vIGh0dHA6Ly9yZWZzcGVjcy5mcmVlc3RhbmRhcmRzLm9yZy9MU0JfMy4xLjEvTFNC
LUNvcmUtZ2VuZXJpYy9MU0ItQ29yZS1nZW5lcmljL2xpYnV0aWwtLS1jdHlwZS10b3VwcGVyLWxv
Yy5odG1sCi0gICAgICB2YXIgbWUgPSBfX19jdHlwZV90b3VwcGVyX2xvYzsKLSAgICAgIGlmICgh
bWUucmV0KSB7Ci0gICAgICAgIHZhciB2YWx1ZXMgPSBbCi0gICAgICAgICAgMTI4LDEyOSwxMzAs
MTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwx
NDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsCi0gICAg
ICAgICAgMTU4LDE1OSwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcw
LDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQs
MTg1LDE4NiwxODcsCi0gICAgICAgICAgMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwx
OTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIx
MCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsCi0gICAgICAgICAgMjE4LDIxOSwyMjAsMjIx
LDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUs
MjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsCi0gICAgICAg
ICAgMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LC0xLDAsMSwyLDMsNCw1LDYsNyw4LDksMTAs
MTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjks
MzAsMzEsMzIsCi0gICAgICAgICAgMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQs
NDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMs
NjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIsCi0gICAgICAgICAgNzMsNzQsNzUsNzYsNzcsNzgs
NzksODAsODEsODIsODMsODQsODUsODYsODcsODgsODksOTAsOTEsOTIsOTMsOTQsOTUsOTYsNjUs
NjYsNjcsNjgsNjksNzAsNzEsNzIsNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsCi0gICAgICAgICAg
ODEsODIsODMsODQsODUsODYsODcsODgsODksOTAsMTIzLDEyNCwxMjUsMTI2LDEyNywxMjgsMTI5
LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMs
MTQ0LAotICAgICAgICAgIDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwx
NTUsMTU2LDE1NywxNTgsMTU5LDE2MCwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2
OSwxNzAsMTcxLDE3MiwxNzMsMTc0LAotICAgICAgICAgIDE3NSwxNzYsMTc3LDE3OCwxNzksMTgw
LDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQs
MTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LAotICAgICAgICAgIDIwNSwy
MDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIy
MCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0
LAotICAgICAgICAgIDIzNSwyMzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUs
MjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsMjU1Ci0gICAgICAgIF07Ci0gICAg
ICAgIHZhciBpMzJzaXplID0gNDsKLSAgICAgICAgdmFyIGFyciA9IF9tYWxsb2ModmFsdWVzLmxl
bmd0aCAqIGkzMnNpemUpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5n
dGg7IGkrKykgewotICAgICAgICAgIEhFQVAzMlsoKChhcnIpKyhpICogaTMyc2l6ZSkpPj4yKV09
dmFsdWVzW2ldCi0gICAgICAgIH0KLSAgICAgICAgbWUucmV0ID0gYWxsb2NhdGUoW2FyciArIDEy
OCAqIGkzMnNpemVdLCAnaTMyKicsIEFMTE9DX05PUk1BTCk7Ci0gICAgICB9Ci0gICAgICByZXR1
cm4gbWUucmV0OwotICAgIH0KLSAgdmFyIF9fX3RtX3N0cnVjdF9sYXlvdXQ9e19fc2l6ZV9fOjQ0
LHRtX3NlYzowLHRtX21pbjo0LHRtX2hvdXI6OCx0bV9tZGF5OjEyLHRtX21vbjoxNix0bV95ZWFy
OjIwLHRtX3dkYXk6MjQsdG1feWRheToyOCx0bV9pc2RzdDozMix0bV9nbXRvZmY6MzYsdG1fem9u
ZTo0MH07Ci0gIGZ1bmN0aW9uIF9faXNMZWFwWWVhcih5ZWFyKSB7Ci0gICAgICAgIHJldHVybiB5
ZWFyJTQgPT09IDAgJiYgKHllYXIlMTAwICE9PSAwIHx8IHllYXIlNDAwID09PSAwKTsKLSAgICB9
Ci0gIGZ1bmN0aW9uIF9fYXJyYXlTdW0oYXJyYXksIGluZGV4KSB7Ci0gICAgICB2YXIgc3VtID0g
MDsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDw9IGluZGV4OyBzdW0gKz0gYXJyYXlbaSsrXSk7
Ci0gICAgICByZXR1cm4gc3VtOwotICAgIH0KLSAgdmFyIF9fTU9OVEhfREFZU19MRUFQPVszMSwy
OSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07Ci0gIHZhciBfX01PTlRIX0RBWVNfUkVH
VUxBUj1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO2Z1bmN0aW9uIF9fYWRk
RGF5cyhkYXRlLCBkYXlzKSB7Ci0gICAgICB2YXIgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0
VGltZSgpKTsKLSAgICAgIHdoaWxlKGRheXMgPiAwKSB7Ci0gICAgICAgIHZhciBsZWFwID0gX19p
c0xlYXBZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSk7Ci0gICAgICAgIHZhciBjdXJyZW50TW9u
dGggPSBuZXdEYXRlLmdldE1vbnRoKCk7Ci0gICAgICAgIHZhciBkYXlzSW5DdXJyZW50TW9udGgg
PSAobGVhcCA/IF9fTU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIpW2N1cnJl
bnRNb250aF07Ci0gICAgICAgIGlmIChkYXlzID4gZGF5c0luQ3VycmVudE1vbnRoLW5ld0RhdGUu
Z2V0RGF0ZSgpKSB7Ci0gICAgICAgICAgLy8gd2Ugc3BpbGwgb3ZlciB0byBuZXh0IG1vbnRoCi0g
ICAgICAgICAgZGF5cyAtPSAoZGF5c0luQ3VycmVudE1vbnRoLW5ld0RhdGUuZ2V0RGF0ZSgpKzEp
OwotICAgICAgICAgIG5ld0RhdGUuc2V0RGF0ZSgxKTsKLSAgICAgICAgICBpZiAoY3VycmVudE1v
bnRoIDwgMTEpIHsKLSAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgoY3VycmVudE1vbnRoKzEp
Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgoMCk7Ci0g
ICAgICAgICAgICBuZXdEYXRlLnNldEZ1bGxZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSsxKTsK
LSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgLy8gd2Ugc3RheSBpbiBj
dXJyZW50IG1vbnRoIAotICAgICAgICAgIG5ld0RhdGUuc2V0RGF0ZShuZXdEYXRlLmdldERhdGUo
KStkYXlzKTsKLSAgICAgICAgICByZXR1cm4gbmV3RGF0ZTsKLSAgICAgICAgfQotICAgICAgfQot
ICAgICAgcmV0dXJuIG5ld0RhdGU7Ci0gICAgfWZ1bmN0aW9uIF9zdHJmdGltZShzLCBtYXhzaXpl
LCBmb3JtYXQsIHRtKSB7Ci0gICAgICAvLyBzaXplX3Qgc3RyZnRpbWUoY2hhciAqcmVzdHJpY3Qg
cywgc2l6ZV90IG1heHNpemUsIGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgY29uc3Qgc3Ry
dWN0IHRtICpyZXN0cmljdCB0aW1lcHRyKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91
cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3N0cmZ0aW1lLmh0bWwKLSAgICAg
IHZhciBkYXRlID0gewotICAgICAgICB0bV9zZWM6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVj
dF9sYXlvdXQudG1fc2VjKSk+PjIpXSwKLSAgICAgICAgdG1fbWluOiBIRUFQMzJbKCgodG0pKyhf
X190bV9zdHJ1Y3RfbGF5b3V0LnRtX21pbikpPj4yKV0sCi0gICAgICAgIHRtX2hvdXI6IEhFQVAz
MlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1faG91cikpPj4yKV0sCi0gICAgICAgIHRt
X21kYXk6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1fbWRheSkpPj4yKV0s
Ci0gICAgICAgIHRtX21vbjogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV9t
b24pKT4+MildLAotICAgICAgICB0bV95ZWFyOiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3Rf
bGF5b3V0LnRtX3llYXIpKT4+MildLAotICAgICAgICB0bV93ZGF5OiBIRUFQMzJbKCgodG0pKyhf
X190bV9zdHJ1Y3RfbGF5b3V0LnRtX3dkYXkpKT4+MildLAotICAgICAgICB0bV95ZGF5OiBIRUFQ
MzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX3lkYXkpKT4+MildLAotICAgICAgICB0
bV9pc2RzdDogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV9pc2RzdCkpPj4y
KV0KLSAgICAgIH07Ci0gICAgICB2YXIgcGF0dGVybiA9IFBvaW50ZXJfc3RyaW5naWZ5KGZvcm1h
dCk7Ci0gICAgICAvLyBleHBhbmQgZm9ybWF0Ci0gICAgICB2YXIgRVhQQU5TSU9OX1JVTEVTXzEg
PSB7Ci0gICAgICAgICclYyc6ICclYSAlYiAlZCAlSDolTTolUyAlWScsICAgICAvLyBSZXBsYWNl
ZCBieSB0aGUgbG9jYWxlJ3MgYXBwcm9wcmlhdGUgZGF0ZSBhbmQgdGltZSByZXByZXNlbnRhdGlv
biAtIGUuZy4sIE1vbiBBdWcgIDMgMTQ6MDI6MDEgMjAxMwotICAgICAgICAnJUQnOiAnJW0vJWQv
JXknLCAgICAgICAgICAgICAgICAgLy8gRXF1aXZhbGVudCB0byAlbSAvICVkIC8gJXkKLSAgICAg
ICAgJyVGJzogJyVZLSVtLSVkJywgICAgICAgICAgICAgICAgIC8vIEVxdWl2YWxlbnQgdG8gJVkg
LSAlbSAtICVkCi0gICAgICAgICclaCc6ICclYicsICAgICAgICAgICAgICAgICAgICAgICAvLyBF
cXVpdmFsZW50IHRvICViCi0gICAgICAgICclcic6ICclSTolTTolUyAlcCcsICAgICAgICAgICAg
ICAvLyBSZXBsYWNlZCBieSB0aGUgdGltZSBpbiBhLm0uIGFuZCBwLm0uIG5vdGF0aW9uCi0gICAg
ICAgICclUic6ICclSDolTScsICAgICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUg
dGltZSBpbiAyNC1ob3VyIG5vdGF0aW9uCi0gICAgICAgICclVCc6ICclSDolTTolUycsICAgICAg
ICAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgdGltZQotICAgICAgICAnJXgnOiAnJW0vJWQv
JXknLCAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIGxvY2FsZSdzIGFwcHJvcHJp
YXRlIGRhdGUgcmVwcmVzZW50YXRpb24KLSAgICAgICAgJyVYJzogJyVIOiVNOiVTJywgICAgICAg
ICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBsb2NhbGUncyBhcHByb3ByaWF0ZSBkYXRlIHJl
cHJlc2VudGF0aW9uCi0gICAgICB9OwotICAgICAgZm9yICh2YXIgcnVsZSBpbiBFWFBBTlNJT05f
UlVMRVNfMSkgewotICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKG5ldyBSZWdFeHAo
cnVsZSwgJ2cnKSwgRVhQQU5TSU9OX1JVTEVTXzFbcnVsZV0pOwotICAgICAgfQotICAgICAgdmFy
IFdFRUtEQVlTID0gWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5Jywg
J1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddOwotICAgICAgdmFyIE1PTlRIUyA9IFsn
SmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdK
dWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNl
bWJlciddOwotICAgICAgdmFyIGxlYWRpbmdTb21ldGhpbmcgPSBmdW5jdGlvbih2YWx1ZSwgZGln
aXRzLCBjaGFyYWN0ZXIpIHsKLSAgICAgICAgdmFyIHN0ciA9IHR5cGVvZiB2YWx1ZSA9PT0gJ251
bWJlcicgPyB2YWx1ZS50b1N0cmluZygpIDogKHZhbHVlIHx8ICcnKTsKLSAgICAgICAgd2hpbGUg
KHN0ci5sZW5ndGggPCBkaWdpdHMpIHsKLSAgICAgICAgICBzdHIgPSBjaGFyYWN0ZXJbMF0rc3Ry
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBzdHI7Ci0gICAgICB9OwotICAgICAgdmFyIGxl
YWRpbmdOdWxscyA9IGZ1bmN0aW9uKHZhbHVlLCBkaWdpdHMpIHsKLSAgICAgICAgcmV0dXJuIGxl
YWRpbmdTb21ldGhpbmcodmFsdWUsIGRpZ2l0cywgJzAnKTsKLSAgICAgIH07Ci0gICAgICB2YXIg
Y29tcGFyZUJ5RGF5ID0gZnVuY3Rpb24oZGF0ZTEsIGRhdGUyKSB7Ci0gICAgICAgIHZhciBzZ24g
PSBmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAgIHJldHVybiB2YWx1ZSA8IDAgPyAtMSA6ICh2
YWx1ZSA+IDAgPyAxIDogMCk7Ci0gICAgICAgIH07Ci0gICAgICAgIHZhciBjb21wYXJlOwotICAg
ICAgICBpZiAoKGNvbXBhcmUgPSBzZ24oZGF0ZTEuZ2V0RnVsbFllYXIoKS1kYXRlMi5nZXRGdWxs
WWVhcigpKSkgPT09IDApIHsKLSAgICAgICAgICBpZiAoKGNvbXBhcmUgPSBzZ24oZGF0ZTEuZ2V0
TW9udGgoKS1kYXRlMi5nZXRNb250aCgpKSkgPT09IDApIHsKLSAgICAgICAgICAgIGNvbXBhcmUg
PSBzZ24oZGF0ZTEuZ2V0RGF0ZSgpLWRhdGUyLmdldERhdGUoKSk7Ci0gICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiBjb21wYXJlOwotICAgICAgfTsKLSAgICAgIHZhciBnZXRG
aXJzdFdlZWtTdGFydERhdGUgPSBmdW5jdGlvbihqYW5Gb3VydGgpIHsKLSAgICAgICAgICBzd2l0
Y2ggKGphbkZvdXJ0aC5nZXREYXkoKSkgewotICAgICAgICAgICAgY2FzZSAwOiAvLyBTdW5kYXkK
LSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEs
IDExLCAyOSk7Ci0gICAgICAgICAgICBjYXNlIDE6IC8vIE1vbmRheQotICAgICAgICAgICAgICBy
ZXR1cm4gamFuRm91cnRoOwotICAgICAgICAgICAgY2FzZSAyOiAvLyBUdWVzZGF5Ci0gICAgICAg
ICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKSwgMCwgMyk7Ci0g
ICAgICAgICAgICBjYXNlIDM6IC8vIFdlZG5lc2RheQotICAgICAgICAgICAgICByZXR1cm4gbmV3
IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCksIDAsIDIpOwotICAgICAgICAgICAgY2FzZSA0
OiAvLyBUaHVyc2RheQotICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdl
dEZ1bGxZZWFyKCksIDAsIDEpOwotICAgICAgICAgICAgY2FzZSA1OiAvLyBGcmlkYXkKLSAgICAg
ICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEsIDExLCAz
MSk7Ci0gICAgICAgICAgICBjYXNlIDY6IC8vIFNhdHVyZGF5Ci0gICAgICAgICAgICAgIHJldHVy
biBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKS0xLCAxMSwgMzApOwotICAgICAgICAg
IH0KLSAgICAgIH07Ci0gICAgICB2YXIgZ2V0V2Vla0Jhc2VkWWVhciA9IGZ1bmN0aW9uKGRhdGUp
IHsKLSAgICAgICAgICB2YXIgdGhpc0RhdGUgPSBfX2FkZERheXMobmV3IERhdGUoZGF0ZS50bV95
ZWFyKzE5MDAsIDAsIDEpLCBkYXRlLnRtX3lkYXkpOwotICAgICAgICAgIHZhciBqYW5Gb3VydGhU
aGlzWWVhciA9IG5ldyBEYXRlKHRoaXNEYXRlLmdldEZ1bGxZZWFyKCksIDAsIDQpOwotICAgICAg
ICAgIHZhciBqYW5Gb3VydGhOZXh0WWVhciA9IG5ldyBEYXRlKHRoaXNEYXRlLmdldEZ1bGxZZWFy
KCkrMSwgMCwgNCk7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIgPSBnZXRG
aXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoVGhpc1llYXIpOwotICAgICAgICAgIHZhciBmaXJz
dFdlZWtTdGFydE5leHRZZWFyID0gZ2V0Rmlyc3RXZWVrU3RhcnREYXRlKGphbkZvdXJ0aE5leHRZ
ZWFyKTsKLSAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIs
IHRoaXNEYXRlKSA8PSAwKSB7Ci0gICAgICAgICAgICAvLyB0aGlzIGRhdGUgaXMgYWZ0ZXIgdGhl
IHN0YXJ0IG9mIHRoZSBmaXJzdCB3ZWVrIG9mIHRoaXMgeWVhcgotICAgICAgICAgICAgaWYgKGNv
bXBhcmVCeURheShmaXJzdFdlZWtTdGFydE5leHRZZWFyLCB0aGlzRGF0ZSkgPD0gMCkgewotICAg
ICAgICAgICAgICByZXR1cm4gdGhpc0RhdGUuZ2V0RnVsbFllYXIoKSsxOwotICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHRoaXNEYXRlLmdldEZ1bGxZZWFyKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsgCi0gICAgICAgICAgICByZXR1cm4gdGhp
c0RhdGUuZ2V0RnVsbFllYXIoKS0xOwotICAgICAgICAgIH0KLSAgICAgIH07Ci0gICAgICB2YXIg
RVhQQU5TSU9OX1JVTEVTXzIgPSB7Ci0gICAgICAgICclYSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAg
ICAgICAgICByZXR1cm4gV0VFS0RBWVNbZGF0ZS50bV93ZGF5XS5zdWJzdHJpbmcoMCwzKTsKLSAg
ICAgICAgfSwKLSAgICAgICAgJyVBJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVy
biBXRUVLREFZU1tkYXRlLnRtX3dkYXldOwotICAgICAgICB9LAotICAgICAgICAnJWInOiBmdW5j
dGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIE1PTlRIU1tkYXRlLnRtX21vbl0uc3Vic3Ry
aW5nKDAsMyk7Ci0gICAgICAgIH0sCi0gICAgICAgICclQic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAg
ICAgICAgICByZXR1cm4gTU9OVEhTW2RhdGUudG1fbW9uXTsKLSAgICAgICAgfSwKLSAgICAgICAg
JyVDJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHZhciB5ZWFyID0gZGF0ZS50bV95ZWFy
KzE5MDA7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhNYXRoLmZsb29yKHllYXIvMTAw
KSwyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVkJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAg
ICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0ZS50bV9tZGF5LCAyKTsKLSAgICAgICAgfSwKLSAg
ICAgICAgJyVlJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5nU29t
ZXRoaW5nKGRhdGUudG1fbWRheSwgMiwgJyAnKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVnJzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vICVnLCAlRywgYW5kICVWIGdpdmUgdmFsdWVz
IGFjY29yZGluZyB0byB0aGUgSVNPIDg2MDE6MjAwMCBzdGFuZGFyZCB3ZWVrLWJhc2VkIHllYXIu
IAotICAgICAgICAgIC8vIEluIHRoaXMgc3lzdGVtLCB3ZWVrcyBiZWdpbiBvbiBhIE1vbmRheSBh
bmQgd2VlayAxIG9mIHRoZSB5ZWFyIGlzIHRoZSB3ZWVrIHRoYXQgaW5jbHVkZXMgCi0gICAgICAg
ICAgLy8gSmFudWFyeSA0dGgsIHdoaWNoIGlzIGFsc28gdGhlIHdlZWsgdGhhdCBpbmNsdWRlcyB0
aGUgZmlyc3QgVGh1cnNkYXkgb2YgdGhlIHllYXIsIGFuZCAKLSAgICAgICAgICAvLyBpcyBhbHNv
IHRoZSBmaXJzdCB3ZWVrIHRoYXQgY29udGFpbnMgYXQgbGVhc3QgZm91ciBkYXlzIGluIHRoZSB5
ZWFyLiAKLSAgICAgICAgICAvLyBJZiB0aGUgZmlyc3QgTW9uZGF5IG9mIEphbnVhcnkgaXMgdGhl
IDJuZCwgM3JkLCBvciA0dGgsIHRoZSBwcmVjZWRpbmcgZGF5cyBhcmUgcGFydCBvZiAKLSAgICAg
ICAgICAvLyB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmVjZWRpbmcgeWVhcjsgdGh1cywgZm9yIFNh
dHVyZGF5IDJuZCBKYW51YXJ5IDE5OTksIAotICAgICAgICAgIC8vICVHIGlzIHJlcGxhY2VkIGJ5
IDE5OTggYW5kICVWIGlzIHJlcGxhY2VkIGJ5IDUzLiBJZiBEZWNlbWJlciAyOXRoLCAzMHRoLCAK
LSAgICAgICAgICAvLyBvciAzMXN0IGlzIGEgTW9uZGF5LCBpdCBhbmQgYW55IGZvbGxvd2luZyBk
YXlzIGFyZSBwYXJ0IG9mIHdlZWsgMSBvZiB0aGUgZm9sbG93aW5nIHllYXIuIAotICAgICAgICAg
IC8vIFRodXMsIGZvciBUdWVzZGF5IDMwdGggRGVjZW1iZXIgMTk5NywgJUcgaXMgcmVwbGFjZWQg
YnkgMTk5OCBhbmQgJVYgaXMgcmVwbGFjZWQgYnkgMDEuCi0gICAgICAgICAgcmV0dXJuIGdldFdl
ZWtCYXNlZFllYXIoZGF0ZSkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMik7Ci0gICAgICAgIH0sCi0g
ICAgICAgICclRyc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gZ2V0V2Vla0Jh
c2VkWWVhcihkYXRlKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVIJzogZnVuY3Rpb24oZGF0ZSkg
ewotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0ZS50bV9ob3VyLCAyKTsKLSAgICAg
ICAgfSwKLSAgICAgICAgJyVJJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBs
ZWFkaW5nTnVsbHMoZGF0ZS50bV9ob3VyIDwgMTMgPyBkYXRlLnRtX2hvdXIgOiBkYXRlLnRtX2hv
dXItMTIsIDIpOwotICAgICAgICB9LAotICAgICAgICAnJWonOiBmdW5jdGlvbihkYXRlKSB7Ci0g
ICAgICAgICAgLy8gRGF5IG9mIHRoZSB5ZWFyICgwMDEtMzY2KQotICAgICAgICAgIHJldHVybiBs
ZWFkaW5nTnVsbHMoZGF0ZS50bV9tZGF5K19fYXJyYXlTdW0oX19pc0xlYXBZZWFyKGRhdGUudG1f
eWVhcisxOTAwKSA/IF9fTU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIsIGRh
dGUudG1fbW9uLTEpLCAzKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVtJzogZnVuY3Rpb24oZGF0
ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0ZS50bV9tb24rMSwgMik7Ci0g
ICAgICAgIH0sCi0gICAgICAgICclTSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1
cm4gbGVhZGluZ051bGxzKGRhdGUudG1fbWluLCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVu
JzogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuICdcbic7Ci0gICAgICAgIH0sCi0gICAg
ICAgICclcCc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICBpZiAoZGF0ZS50bV9ob3VyID4g
MCAmJiBkYXRlLnRtX2hvdXIgPCAxMykgewotICAgICAgICAgICAgcmV0dXJuICdBTSc7Ci0gICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiAnUE0nOwotICAgICAgICAgIH0KLSAg
ICAgICAgfSwKLSAgICAgICAgJyVTJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVy
biBsZWFkaW5nTnVsbHMoZGF0ZS50bV9zZWMsIDIpOwotICAgICAgICB9LAotICAgICAgICAnJXQn
OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gJ1x0JzsKLSAgICAgICAgfSwKLSAgICAg
ICAgJyV1JzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHZhciBkYXkgPSBuZXcgRGF0ZShk
YXRlLnRtX3llYXIrMTkwMCwgZGF0ZS50bV9tb24rMSwgZGF0ZS50bV9tZGF5LCAwLCAwLCAwLCAw
KTsKLSAgICAgICAgICByZXR1cm4gZGF5LmdldERheSgpIHx8IDc7Ci0gICAgICAgIH0sCi0gICAg
ICAgICclVSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUg
d2VlayBudW1iZXIgb2YgdGhlIHllYXIgYXMgYSBkZWNpbWFsIG51bWJlciBbMDAsNTNdLiAKLSAg
ICAgICAgICAvLyBUaGUgZmlyc3QgU3VuZGF5IG9mIEphbnVhcnkgaXMgdGhlIGZpcnN0IGRheSBv
ZiB3ZWVrIDE7IAotICAgICAgICAgIC8vIGRheXMgaW4gdGhlIG5ldyB5ZWFyIGJlZm9yZSB0aGlz
IGFyZSBpbiB3ZWVrIDAuIFsgdG1feWVhciwgdG1fd2RheSwgdG1feWRheV0KLSAgICAgICAgICB2
YXIgamFuRmlyc3QgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgMCwgMSk7Ci0gICAgICAg
ICAgdmFyIGZpcnN0U3VuZGF5ID0gamFuRmlyc3QuZ2V0RGF5KCkgPT09IDAgPyBqYW5GaXJzdCA6
IF9fYWRkRGF5cyhqYW5GaXJzdCwgNy1qYW5GaXJzdC5nZXREYXkoKSk7Ci0gICAgICAgICAgdmFy
IGVuZERhdGUgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgZGF0ZS50bV9tb24sIGRhdGUu
dG1fbWRheSk7Ci0gICAgICAgICAgLy8gaXMgdGFyZ2V0IGRhdGUgYWZ0ZXIgdGhlIGZpcnN0IFN1
bmRheT8KLSAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGZpcnN0U3VuZGF5LCBlbmREYXRlKSA8
IDApIHsKLSAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSBkaWZmZXJlbmNlIGluIGRheXMgYmV0d2Vl
biBmaXJzdCBTdW5kYXkgYW5kIGVuZERhdGUKLSAgICAgICAgICAgIHZhciBmZWJydWFyeUZpcnN0
VW50aWxFbmRNb250aCA9IF9fYXJyYXlTdW0oX19pc0xlYXBZZWFyKGVuZERhdGUuZ2V0RnVsbFll
YXIoKSkgPyBfX01PTlRIX0RBWVNfTEVBUCA6IF9fTU9OVEhfREFZU19SRUdVTEFSLCBlbmREYXRl
LmdldE1vbnRoKCktMSktMzE7Ci0gICAgICAgICAgICB2YXIgZmlyc3RTdW5kYXlVbnRpbEVuZEph
bnVhcnkgPSAzMS1maXJzdFN1bmRheS5nZXREYXRlKCk7Ci0gICAgICAgICAgICB2YXIgZGF5cyA9
IGZpcnN0U3VuZGF5VW50aWxFbmRKYW51YXJ5K2ZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRoK2Vu
ZERhdGUuZ2V0RGF0ZSgpOwotICAgICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhNYXRoLmNl
aWwoZGF5cy83KSwgMik7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBjb21wYXJlQnlE
YXkoZmlyc3RTdW5kYXksIGphbkZpcnN0KSA9PT0gMCA/ICcwMSc6ICcwMCc7Ci0gICAgICAgIH0s
Ci0gICAgICAgICclVic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBi
eSB0aGUgd2VlayBudW1iZXIgb2YgdGhlIHllYXIgKE1vbmRheSBhcyB0aGUgZmlyc3QgZGF5IG9m
IHRoZSB3ZWVrKSAKLSAgICAgICAgICAvLyBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMSw1M10uIElm
IHRoZSB3ZWVrIGNvbnRhaW5pbmcgMSBKYW51YXJ5IGhhcyBmb3VyIAotICAgICAgICAgIC8vIG9y
IG1vcmUgZGF5cyBpbiB0aGUgbmV3IHllYXIsIHRoZW4gaXQgaXMgY29uc2lkZXJlZCB3ZWVrIDEu
IAotICAgICAgICAgIC8vIE90aGVyd2lzZSwgaXQgaXMgdGhlIGxhc3Qgd2VlayBvZiB0aGUgcHJl
dmlvdXMgeWVhciwgYW5kIHRoZSBuZXh0IHdlZWsgaXMgd2VlayAxLiAKLSAgICAgICAgICAvLyBC
b3RoIEphbnVhcnkgNHRoIGFuZCB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgSmFudWFyeSBhcmUgYWx3
YXlzIGluIHdlZWsgMS4gWyB0bV95ZWFyLCB0bV93ZGF5LCB0bV95ZGF5XQotICAgICAgICAgIHZh
ciBqYW5Gb3VydGhUaGlzWWVhciA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCAwLCA0KTsK
LSAgICAgICAgICB2YXIgamFuRm91cnRoTmV4dFllYXIgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIr
MTkwMSwgMCwgNCk7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIgPSBnZXRG
aXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoVGhpc1llYXIpOwotICAgICAgICAgIHZhciBmaXJz
dFdlZWtTdGFydE5leHRZZWFyID0gZ2V0Rmlyc3RXZWVrU3RhcnREYXRlKGphbkZvdXJ0aE5leHRZ
ZWFyKTsKLSAgICAgICAgICB2YXIgZW5kRGF0ZSA9IF9fYWRkRGF5cyhuZXcgRGF0ZShkYXRlLnRt
X3llYXIrMTkwMCwgMCwgMSksIGRhdGUudG1feWRheSk7Ci0gICAgICAgICAgaWYgKGNvbXBhcmVC
eURheShlbmREYXRlLCBmaXJzdFdlZWtTdGFydFRoaXNZZWFyKSA8IDApIHsKLSAgICAgICAgICAg
IC8vIGlmIGdpdmVuIGRhdGUgaXMgYmVmb3JlIHRoaXMgeWVhcnMgZmlyc3Qgd2VlaywgdGhlbiBp
dCBiZWxvbmdzIHRvIHRoZSA1M3JkIHdlZWsgb2YgbGFzdCB5ZWFyCi0gICAgICAgICAgICByZXR1
cm4gJzUzJzsKLSAgICAgICAgICB9IAotICAgICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RX
ZWVrU3RhcnROZXh0WWVhciwgZW5kRGF0ZSkgPD0gMCkgewotICAgICAgICAgICAgLy8gaWYgZ2l2
ZW4gZGF0ZSBpcyBhZnRlciBuZXh0IHllYXJzIGZpcnN0IHdlZWssIHRoZW4gaXQgYmVsb25ncyB0
byB0aGUgMDF0aCB3ZWVrIG9mIG5leHQgeWVhcgotICAgICAgICAgICAgcmV0dXJuICcwMSc7Ci0g
ICAgICAgICAgfQotICAgICAgICAgIC8vIGdpdmVuIGRhdGUgaXMgaW4gYmV0d2VlbiBDVyAwMS4u
NTMgb2YgdGhpcyBjYWxlbmRhciB5ZWFyCi0gICAgICAgICAgdmFyIGRheXNEaWZmZXJlbmNlOwot
ICAgICAgICAgIGlmIChmaXJzdFdlZWtTdGFydFRoaXNZZWFyLmdldEZ1bGxZZWFyKCkgPCBkYXRl
LnRtX3llYXIrMTkwMCkgewotICAgICAgICAgICAgLy8gZmlyc3QgQ1cgb2YgdGhpcyB5ZWFyIHN0
YXJ0cyBsYXN0IHllYXIKLSAgICAgICAgICAgIGRheXNEaWZmZXJlbmNlID0gZGF0ZS50bV95ZGF5
KzMyLWZpcnN0V2Vla1N0YXJ0VGhpc1llYXIuZ2V0RGF0ZSgpCi0gICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIC8vIGZpcnN0IENXIG9mIHRoaXMgeWVhciBzdGFydHMgdGhpcyB5ZWFyCi0g
ICAgICAgICAgICBkYXlzRGlmZmVyZW5jZSA9IGRhdGUudG1feWRheSsxLWZpcnN0V2Vla1N0YXJ0
VGhpc1llYXIuZ2V0RGF0ZSgpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gbGVhZGlu
Z051bGxzKE1hdGguY2VpbChkYXlzRGlmZmVyZW5jZS83KSwgMik7Ci0gICAgICAgIH0sCi0gICAg
ICAgICcldyc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICB2YXIgZGF5ID0gbmV3IERhdGUo
ZGF0ZS50bV95ZWFyKzE5MDAsIGRhdGUudG1fbW9uKzEsIGRhdGUudG1fbWRheSwgMCwgMCwgMCwg
MCk7Ci0gICAgICAgICAgcmV0dXJuIGRheS5nZXREYXkoKTsKLSAgICAgICAgfSwKLSAgICAgICAg
JyVXJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVr
IG51bWJlciBvZiB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw1M10uIAotICAgICAg
ICAgIC8vIFRoZSBmaXJzdCBNb25kYXkgb2YgSmFudWFyeSBpcyB0aGUgZmlyc3QgZGF5IG9mIHdl
ZWsgMTsgCi0gICAgICAgICAgLy8gZGF5cyBpbiB0aGUgbmV3IHllYXIgYmVmb3JlIHRoaXMgYXJl
IGluIHdlZWsgMC4gWyB0bV95ZWFyLCB0bV93ZGF5LCB0bV95ZGF5XQotICAgICAgICAgIHZhciBq
YW5GaXJzdCA9IG5ldyBEYXRlKGRhdGUudG1feWVhciwgMCwgMSk7Ci0gICAgICAgICAgdmFyIGZp
cnN0TW9uZGF5ID0gamFuRmlyc3QuZ2V0RGF5KCkgPT09IDEgPyBqYW5GaXJzdCA6IF9fYWRkRGF5
cyhqYW5GaXJzdCwgamFuRmlyc3QuZ2V0RGF5KCkgPT09IDAgPyAxIDogNy1qYW5GaXJzdC5nZXRE
YXkoKSsxKTsKLSAgICAgICAgICB2YXIgZW5kRGF0ZSA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisx
OTAwLCBkYXRlLnRtX21vbiwgZGF0ZS50bV9tZGF5KTsKLSAgICAgICAgICAvLyBpcyB0YXJnZXQg
ZGF0ZSBhZnRlciB0aGUgZmlyc3QgTW9uZGF5PwotICAgICAgICAgIGlmIChjb21wYXJlQnlEYXko
Zmlyc3RNb25kYXksIGVuZERhdGUpIDwgMCkgewotICAgICAgICAgICAgdmFyIGZlYnJ1YXJ5Rmly
c3RVbnRpbEVuZE1vbnRoID0gX19hcnJheVN1bShfX2lzTGVhcFllYXIoZW5kRGF0ZS5nZXRGdWxs
WWVhcigpKSA/IF9fTU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIsIGVuZERh
dGUuZ2V0TW9udGgoKS0xKS0zMTsKLSAgICAgICAgICAgIHZhciBmaXJzdE1vbmRheVVudGlsRW5k
SmFudWFyeSA9IDMxLWZpcnN0TW9uZGF5LmdldERhdGUoKTsKLSAgICAgICAgICAgIHZhciBkYXlz
ID0gZmlyc3RNb25kYXlVbnRpbEVuZEphbnVhcnkrZmVicnVhcnlGaXJzdFVudGlsRW5kTW9udGgr
ZW5kRGF0ZS5nZXREYXRlKCk7Ci0gICAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGgu
Y2VpbChkYXlzLzcpLCAyKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGNvbXBhcmVC
eURheShmaXJzdE1vbmRheSwgamFuRmlyc3QpID09PSAwID8gJzAxJzogJzAwJzsKLSAgICAgICAg
fSwKLSAgICAgICAgJyV5JzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2Vk
IGJ5IHRoZSBsYXN0IHR3byBkaWdpdHMgb2YgdGhlIHllYXIgYXMgYSBkZWNpbWFsIG51bWJlciBb
MDAsOTldLiBbIHRtX3llYXJdCi0gICAgICAgICAgcmV0dXJuIChkYXRlLnRtX3llYXIrMTkwMCku
dG9TdHJpbmcoKS5zdWJzdHJpbmcoMik7Ci0gICAgICAgIH0sCi0gICAgICAgICclWSc6IGZ1bmN0
aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgeWVhciBhcyBhIGRlY2lt
YWwgbnVtYmVyIChmb3IgZXhhbXBsZSwgMTk5NykuIFsgdG1feWVhcl0KLSAgICAgICAgICByZXR1
cm4gZGF0ZS50bV95ZWFyKzE5MDA7Ci0gICAgICAgIH0sCi0gICAgICAgICcleic6IGZ1bmN0aW9u
KGRhdGUpIHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgb2Zmc2V0IGZyb20gVVRDIGlu
IHRoZSBJU08gODYwMToyMDAwIHN0YW5kYXJkIGZvcm1hdCAoICtoaG1tIG9yIC1oaG1tICksCi0g
ICAgICAgICAgLy8gb3IgYnkgbm8gY2hhcmFjdGVycyBpZiBubyB0aW1lem9uZSBpcyBkZXRlcm1p
bmFibGUuIAotICAgICAgICAgIC8vIEZvciBleGFtcGxlLCAiLTA0MzAiIG1lYW5zIDQgaG91cnMg
MzAgbWludXRlcyBiZWhpbmQgVVRDICh3ZXN0IG9mIEdyZWVud2ljaCkuIAotICAgICAgICAgIC8v
IElmIHRtX2lzZHN0IGlzIHplcm8sIHRoZSBzdGFuZGFyZCB0aW1lIG9mZnNldCBpcyB1c2VkLiAK
LSAgICAgICAgICAvLyBJZiB0bV9pc2RzdCBpcyBncmVhdGVyIHRoYW4gemVybywgdGhlIGRheWxp
Z2h0IHNhdmluZ3MgdGltZSBvZmZzZXQgaXMgdXNlZC4gCi0gICAgICAgICAgLy8gSWYgdG1faXNk
c3QgaXMgbmVnYXRpdmUsIG5vIGNoYXJhY3RlcnMgYXJlIHJldHVybmVkLiAKLSAgICAgICAgICAv
LyBGSVhNRTogd2UgY2Fubm90IGRldGVybWluZSB0aW1lIHpvbmUgKG9yIGNhbiB3ZT8pCi0gICAg
ICAgICAgcmV0dXJuICcnOwotICAgICAgICB9LAotICAgICAgICAnJVonOiBmdW5jdGlvbihkYXRl
KSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHRpbWV6b25lIG5hbWUgb3IgYWJicmV2
aWF0aW9uLCBvciBieSBubyBieXRlcyBpZiBubyB0aW1lem9uZSBpbmZvcm1hdGlvbiBleGlzdHMu
IFsgdG1faXNkc3RdCi0gICAgICAgICAgLy8gRklYTUU6IHdlIGNhbm5vdCBkZXRlcm1pbmUgdGlt
ZSB6b25lIChvciBjYW4gd2U/KQotICAgICAgICAgIHJldHVybiAnJzsKLSAgICAgICAgfSwKLSAg
ICAgICAgJyUlJzogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuICclJzsKLSAgICAgICAg
fQotICAgICAgfTsKLSAgICAgIGZvciAodmFyIHJ1bGUgaW4gRVhQQU5TSU9OX1JVTEVTXzIpIHsK
LSAgICAgICAgaWYgKHBhdHRlcm4uaW5kZXhPZihydWxlKSA+PSAwKSB7Ci0gICAgICAgICAgcGF0
dGVybiA9IHBhdHRlcm4ucmVwbGFjZShuZXcgUmVnRXhwKHJ1bGUsICdnJyksIEVYUEFOU0lPTl9S
VUxFU18yW3J1bGVdKGRhdGUpKTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgdmFyIGJ5dGVz
ID0gaW50QXJyYXlGcm9tU3RyaW5nKHBhdHRlcm4sIGZhbHNlKTsKLSAgICAgIGlmIChieXRlcy5s
ZW5ndGggPiBtYXhzaXplKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgICAgfSAKLSAgICAgIHdy
aXRlQXJyYXlUb01lbW9yeShieXRlcywgcyk7Ci0gICAgICByZXR1cm4gYnl0ZXMubGVuZ3RoLTE7
Ci0gICAgfXZhciBfc3RyZnRpbWVfbD1fc3RyZnRpbWU7Ci0gIGZ1bmN0aW9uIF9pc3NwYWNlKGNo
cikgewotICAgICAgcmV0dXJuIChjaHIgPT0gMzIpIHx8IChjaHIgPj0gOSAmJiBjaHIgPD0gMTMp
OwotICAgIH0KLSAgZnVuY3Rpb24gX19wYXJzZUludDY0KHN0ciwgZW5kcHRyLCBiYXNlLCBtaW4s
IG1heCwgdW5zaWduKSB7Ci0gICAgICB2YXIgaXNOZWdhdGl2ZSA9IGZhbHNlOwotICAgICAgLy8g
U2tpcCBzcGFjZS4KLSAgICAgIHdoaWxlIChfaXNzcGFjZShIRUFQOFsoc3RyKV0pKSBzdHIrKzsK
LSAgICAgIC8vIENoZWNrIGZvciBhIHBsdXMvbWludXMgc2lnbi4KLSAgICAgIGlmIChIRUFQOFso
c3RyKV0gPT0gNDUpIHsKLSAgICAgICAgc3RyKys7Ci0gICAgICAgIGlzTmVnYXRpdmUgPSB0cnVl
OwotICAgICAgfSBlbHNlIGlmIChIRUFQOFsoc3RyKV0gPT0gNDMpIHsKLSAgICAgICAgc3RyKys7
Ci0gICAgICB9Ci0gICAgICAvLyBGaW5kIGJhc2UuCi0gICAgICB2YXIgb2sgPSBmYWxzZTsKLSAg
ICAgIHZhciBmaW5hbEJhc2UgPSBiYXNlOwotICAgICAgaWYgKCFmaW5hbEJhc2UpIHsKLSAgICAg
ICAgaWYgKEhFQVA4WyhzdHIpXSA9PSA0OCkgewotICAgICAgICAgIGlmIChIRUFQOFsoKHN0cisx
KXwwKV0gPT0gMTIwIHx8Ci0gICAgICAgICAgICAgIEhFQVA4Wygoc3RyKzEpfDApXSA9PSA4OCkg
ewotICAgICAgICAgICAgZmluYWxCYXNlID0gMTY7Ci0gICAgICAgICAgICBzdHIgKz0gMjsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZmluYWxCYXNlID0gODsKLSAgICAgICAgICAg
IG9rID0gdHJ1ZTsgLy8gd2Ugc2F3IGFuIGluaXRpYWwgemVybywgcGVyaGFwcyB0aGUgZW50aXJl
IHRoaW5nIGlzIGp1c3QgIjAiCi0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9IGVsc2Ug
aWYgKGZpbmFsQmFzZT09MTYpIHsKLSAgICAgICAgaWYgKEhFQVA4WyhzdHIpXSA9PSA0OCkgewot
ICAgICAgICAgIGlmIChIRUFQOFsoKHN0cisxKXwwKV0gPT0gMTIwIHx8Ci0gICAgICAgICAgICAg
IEhFQVA4Wygoc3RyKzEpfDApXSA9PSA4OCkgewotICAgICAgICAgICAgc3RyICs9IDI7Ci0gICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiAoIWZpbmFsQmFzZSkgZmluYWxC
YXNlID0gMTA7Ci0gICAgICBzdGFydCA9IHN0cjsKLSAgICAgIC8vIEdldCBkaWdpdHMuCi0gICAg
ICB2YXIgY2hyOwotICAgICAgd2hpbGUgKChjaHIgPSBIRUFQOFsoc3RyKV0pICE9IDApIHsKLSAg
ICAgICAgdmFyIGRpZ2l0ID0gcGFyc2VJbnQoU3RyaW5nLmZyb21DaGFyQ29kZShjaHIpLCBmaW5h
bEJhc2UpOwotICAgICAgICBpZiAoaXNOYU4oZGlnaXQpKSB7Ci0gICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgc3RyKys7Ci0gICAgICAgICAgb2sgPSB0cnVlOwot
ICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiAoIW9rKSB7Ci0gICAgICAgIF9fX3NldEVyck5v
KEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIHJldHVybiAoKGFzbVsic2V0VGVtcFJldDAi
XSgwKSwwKXwwKTsKLSAgICAgIH0KLSAgICAgIC8vIFNldCBlbmQgcG9pbnRlci4KLSAgICAgIGlm
IChlbmRwdHIpIHsKLSAgICAgICAgSEVBUDMyWygoZW5kcHRyKT4+MildPXN0cgotICAgICAgfQot
ICAgICAgdHJ5IHsKLSAgICAgICAgdmFyIG51bWJlclN0cmluZyA9IGlzTmVnYXRpdmUgPyAnLScr
UG9pbnRlcl9zdHJpbmdpZnkoc3RhcnQsIHN0ciAtIHN0YXJ0KSA6IFBvaW50ZXJfc3RyaW5naWZ5
KHN0YXJ0LCBzdHIgLSBzdGFydCk7Ci0gICAgICAgIGk2NE1hdGguZnJvbVN0cmluZyhudW1iZXJT
dHJpbmcsIGZpbmFsQmFzZSwgbWluLCBtYXgsIHVuc2lnbik7Ci0gICAgICB9IGNhdGNoKGUpIHsK
LSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRVJBTkdFKTsgLy8gbm90IHF1aXRlIGNv
cnJlY3QKLSAgICAgIH0KLSAgICAgIHJldHVybiAoKGFzbVsic2V0VGVtcFJldDAiXSgoKEhFQVAz
MlsoKCh0ZW1wRG91YmxlUHRyKSsoNCkpPj4yKV0pfDApKSwoKEhFQVAzMlsoKHRlbXBEb3VibGVQ
dHIpPj4yKV0pfDApKXwwKTsKLSAgICB9ZnVuY3Rpb24gX3N0cnRvdWxsKHN0ciwgZW5kcHRyLCBi
YXNlKSB7Ci0gICAgICByZXR1cm4gX19wYXJzZUludDY0KHN0ciwgZW5kcHRyLCBiYXNlLCAwLCAn
MTg0NDY3NDQwNzM3MDk1NTE2MTUnLCB0cnVlKTsgIC8vIFVMT05HX01BWC4KLSAgICB9dmFyIF9z
dHJ0b3VsbF9sPV9zdHJ0b3VsbDsKLSAgZnVuY3Rpb24gX3N0cnRvbGwoc3RyLCBlbmRwdHIsIGJh
c2UpIHsKLSAgICAgIHJldHVybiBfX3BhcnNlSW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsICctOTIy
MzM3MjAzNjg1NDc3NTgwOCcsICc5MjIzMzcyMDM2ODU0Nzc1ODA3Jyk7ICAvLyBMTE9OR19NSU4s
IExMT05HX01BWC4KLSAgICB9dmFyIF9zdHJ0b2xsX2w9X3N0cnRvbGw7Ci0gIGZ1bmN0aW9uIF91
c2Vsb2NhbGUobG9jYWxlKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9f
X2xvY2FsZV9tYl9jdXJfbWF4KCkgeyB0aHJvdyAnX19sb2NhbGVfbWJfY3VyX21heCBub3QgaW1w
bGVtZW50ZWQnIH0KLSAgdmFyIF9sbHZtX3ZhX3N0YXJ0PXVuZGVmaW5lZDsKLSAgZnVuY3Rpb24g
X3NwcmludGYocywgZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAgICAvLyBpbnQgc3ByaW50ZihjaGFy
ICpyZXN0cmljdCBzLCBjb25zdCBjaGFyICpyZXN0cmljdCBmb3JtYXQsIC4uLik7Ci0gICAgICAv
LyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9u
cy9wcmludGYuaHRtbAotICAgICAgcmV0dXJuIF9zbnByaW50ZihzLCB1bmRlZmluZWQsIGZvcm1h
dCwgdmFyYXJncyk7Ci0gICAgfWZ1bmN0aW9uIF9hc3ByaW50ZihzLCBmb3JtYXQsIHZhcmFyZ3Mp
IHsKLSAgICAgIHJldHVybiBfc3ByaW50ZigtcywgZm9ybWF0LCB2YXJhcmdzKTsKLSAgICB9ZnVu
Y3Rpb24gX3Zhc3ByaW50ZihzLCBmb3JtYXQsIHZhX2FyZykgewotICAgICAgcmV0dXJuIF9hc3By
aW50ZihzLCBmb3JtYXQsIEhFQVAzMlsoKHZhX2FyZyk+PjIpXSk7Ci0gICAgfQotICBmdW5jdGlv
biBfbGx2bV92YV9lbmQoKSB7fQotICBmdW5jdGlvbiBfdnNucHJpbnRmKHMsIG4sIGZvcm1hdCwg
dmFfYXJnKSB7Ci0gICAgICByZXR1cm4gX3NucHJpbnRmKHMsIG4sIGZvcm1hdCwgSEVBUDMyWygo
dmFfYXJnKT4+MildKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF92c3NjYW5mKHMsIGZvcm1hdCwgdmFf
YXJnKSB7Ci0gICAgICByZXR1cm4gX3NzY2FuZihzLCBmb3JtYXQsIEhFQVAzMlsoKHZhX2FyZyk+
PjIpXSk7Ci0gICAgfQotICBmdW5jdGlvbiBfc2JyayhieXRlcykgewotICAgICAgLy8gSW1wbGVt
ZW50IGEgTGludXgtbGlrZSAnbWVtb3J5IGFyZWEnIGZvciBvdXIgJ3Byb2Nlc3MnLgotICAgICAg
Ly8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IGFyZWEgYnkgfGJ5dGVzfDsgcmV0dXJu
cyB0aGUKLSAgICAgIC8vIGFkZHJlc3Mgb2YgdGhlIHByZXZpb3VzIHRvcCAoJ2JyZWFrJykgb2Yg
dGhlIG1lbW9yeSBhcmVhCi0gICAgICAvLyBXZSBjb250cm9sIHRoZSAiZHluYW1pYyIgbWVtb3J5
IC0gRFlOQU1JQ19CQVNFIHRvIERZTkFNSUNUT1AKLSAgICAgIHZhciBzZWxmID0gX3Nicms7Ci0g
ICAgICBpZiAoIXNlbGYuY2FsbGVkKSB7Ci0gICAgICAgIERZTkFNSUNUT1AgPSBhbGlnbk1lbW9y
eVBhZ2UoRFlOQU1JQ1RPUCk7IC8vIG1ha2Ugc3VyZSB3ZSBzdGFydCBvdXQgYWxpZ25lZAotICAg
ICAgICBzZWxmLmNhbGxlZCA9IHRydWU7Ci0gICAgICAgIGFzc2VydChSdW50aW1lLmR5bmFtaWNB
bGxvYyk7Ci0gICAgICAgIHNlbGYuYWxsb2MgPSBSdW50aW1lLmR5bmFtaWNBbGxvYzsKLSAgICAg
ICAgUnVudGltZS5keW5hbWljQWxsb2MgPSBmdW5jdGlvbigpIHsgYWJvcnQoJ2Nhbm5vdCBkeW5h
bWljYWxseSBhbGxvY2F0ZSwgc2JyayBub3cgaGFzIGNvbnRyb2wnKSB9OwotICAgICAgfQotICAg
ICAgdmFyIHJldCA9IERZTkFNSUNUT1A7Ci0gICAgICBpZiAoYnl0ZXMgIT0gMCkgc2VsZi5hbGxv
YyhieXRlcyk7Ci0gICAgICByZXR1cm4gcmV0OyAgLy8gUHJldmlvdXMgYnJlYWsgbG9jYXRpb24u
Ci0gICAgfQotICBmdW5jdGlvbiBfdGltZShwdHIpIHsKLSAgICAgIHZhciByZXQgPSBNYXRoLmZs
b29yKERhdGUubm93KCkvMTAwMCk7Ci0gICAgICBpZiAocHRyKSB7Ci0gICAgICAgIEhFQVAzMlso
KHB0cik+PjIpXT1yZXQKLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotICBmdW5j
dGlvbiBfX19jeGFfY2FsbF91bmV4cGVjdGVkKGV4Y2VwdGlvbikgewotICAgICAgTW9kdWxlLnBy
aW50RXJyKCdVbmV4cGVjdGVkIGV4Y2VwdGlvbiB0aHJvd24sIHRoaXMgaXMgbm90IHByb3Blcmx5
IHN1cHBvcnRlZCAtIGFib3J0aW5nJyk7Ci0gICAgICBBQk9SVCA9IHRydWU7Ci0gICAgICB0aHJv
dyBleGNlcHRpb247Ci0gICAgfQotICB2YXIgQnJvd3Nlcj17bWFpbkxvb3A6e3NjaGVkdWxlcjpu
dWxsLHNob3VsZFBhdXNlOmZhbHNlLHBhdXNlZDpmYWxzZSxxdWV1ZTpbXSxwYXVzZTpmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5zaG91bGRQYXVzZSA9IHRydWU7Ci0g
ICAgICAgIH0scmVzdW1lOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBpZiAoQnJvd3Nlci5tYWlu
TG9vcC5wYXVzZWQpIHsKLSAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3AucGF1c2VkID0gZmFs
c2U7Ci0gICAgICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNjaGVkdWxlcigpOwotICAgICAgICAg
IH0KLSAgICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNob3VsZFBhdXNlID0gZmFsc2U7Ci0gICAg
ICAgIH0sdXBkYXRlU3RhdHVzOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBpZiAoTW9kdWxlWydz
ZXRTdGF0dXMnXSkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBNb2R1bGVbJ3N0YXR1c01l
c3NhZ2UnXSB8fCAnUGxlYXNlIHdhaXQuLi4nOwotICAgICAgICAgICAgdmFyIHJlbWFpbmluZyA9
IEJyb3dzZXIubWFpbkxvb3AucmVtYWluaW5nQmxvY2tlcnM7Ci0gICAgICAgICAgICB2YXIgZXhw
ZWN0ZWQgPSBCcm93c2VyLm1haW5Mb29wLmV4cGVjdGVkQmxvY2tlcnM7Ci0gICAgICAgICAgICBp
ZiAocmVtYWluaW5nKSB7Ci0gICAgICAgICAgICAgIGlmIChyZW1haW5pbmcgPCBleHBlY3RlZCkg
ewotICAgICAgICAgICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10obWVzc2FnZSArICcgKCcgKyAo
ZXhwZWN0ZWQgLSByZW1haW5pbmcpICsgJy8nICsgZXhwZWN0ZWQgKyAnKScpOwotICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10obWVzc2Fn
ZSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
IE1vZHVsZVsnc2V0U3RhdHVzJ10oJycpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAg
ICAgICAgfX0saXNGdWxsU2NyZWVuOmZhbHNlLHBvaW50ZXJMb2NrOmZhbHNlLG1vZHVsZUNvbnRl
eHRDcmVhdGVkQ2FsbGJhY2tzOltdLHdvcmtlcnM6W10saW5pdDpmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIGlmICghTW9kdWxlWyJwcmVsb2FkUGx1Z2lucyJdKSBNb2R1bGVbInByZWxvYWRQbHVnaW5z
Il0gPSBbXTsgLy8gbmVlZHMgdG8gZXhpc3QgZXZlbiBpbiB3b3JrZXJzCi0gICAgICAgIGlmIChC
cm93c2VyLmluaXR0ZWQgfHwgRU5WSVJPTk1FTlRfSVNfV09SS0VSKSByZXR1cm47Ci0gICAgICAg
IEJyb3dzZXIuaW5pdHRlZCA9IHRydWU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbmV3IEJs
b2IoKTsKLSAgICAgICAgICBCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvciA9IHRydWU7Ci0gICAg
ICAgIH0gY2F0Y2goZSkgewotICAgICAgICAgIEJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yID0g
ZmFsc2U7Ci0gICAgICAgICAgY29uc29sZS5sb2coIndhcm5pbmc6IG5vIGJsb2IgY29uc3RydWN0
b3IsIGNhbm5vdCBjcmVhdGUgYmxvYnMgd2l0aCBtaW1ldHlwZXMiKTsKLSAgICAgICAgfQotICAg
ICAgICBCcm93c2VyLkJsb2JCdWlsZGVyID0gdHlwZW9mIE1vekJsb2JCdWlsZGVyICE9ICJ1bmRl
ZmluZWQiID8gTW96QmxvYkJ1aWxkZXIgOiAodHlwZW9mIFdlYktpdEJsb2JCdWlsZGVyICE9ICJ1
bmRlZmluZWQiID8gV2ViS2l0QmxvYkJ1aWxkZXIgOiAoIUJyb3dzZXIuaGFzQmxvYkNvbnN0cnVj
dG9yID8gY29uc29sZS5sb2coIndhcm5pbmc6IG5vIEJsb2JCdWlsZGVyIikgOiBudWxsKSk7Ci0g
ICAgICAgIEJyb3dzZXIuVVJMT2JqZWN0ID0gdHlwZW9mIHdpbmRvdyAhPSAidW5kZWZpbmVkIiA/
ICh3aW5kb3cuVVJMID8gd2luZG93LlVSTCA6IHdpbmRvdy53ZWJraXRVUkwpIDogdW5kZWZpbmVk
OwotICAgICAgICBpZiAoIU1vZHVsZS5ub0ltYWdlRGVjb2RpbmcgJiYgdHlwZW9mIEJyb3dzZXIu
VVJMT2JqZWN0ID09PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIGNvbnNvbGUubG9nKCJ3YXJu
aW5nOiBCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgY3JlYXRpbmcgb2JqZWN0IFVSTHMuIEJ1aWx0
LWluIGJyb3dzZXIgaW1hZ2UgZGVjb2Rpbmcgd2lsbCBub3QgYmUgYXZhaWxhYmxlLiIpOwotICAg
ICAgICAgIE1vZHVsZS5ub0ltYWdlRGVjb2RpbmcgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAg
IC8vIFN1cHBvcnQgZm9yIHBsdWdpbnMgdGhhdCBjYW4gcHJvY2VzcyBwcmVsb2FkZWQgZmlsZXMu
IFlvdSBjYW4gYWRkIG1vcmUgb2YgdGhlc2UgdG8KLSAgICAgICAgLy8geW91ciBhcHAgYnkgY3Jl
YXRpbmcgYW5kIGFwcGVuZGluZyB0byBNb2R1bGUucHJlbG9hZFBsdWdpbnMuCi0gICAgICAgIC8v
Ci0gICAgICAgIC8vIEVhY2ggcGx1Z2luIGlzIGFza2VkIGlmIGl0IGNhbiBoYW5kbGUgYSBmaWxl
IGJhc2VkIG9uIHRoZSBmaWxlJ3MgbmFtZS4gSWYgaXQgY2FuLAotICAgICAgICAvLyBpdCBpcyBn
aXZlbiB0aGUgZmlsZSdzIHJhdyBkYXRhLiBXaGVuIGl0IGlzIGRvbmUsIGl0IGNhbGxzIGEgY2Fs
bGJhY2sgd2l0aCB0aGUgZmlsZSdzCi0gICAgICAgIC8vIChwb3NzaWJseSBtb2RpZmllZCkgZGF0
YS4gRm9yIGV4YW1wbGUsIGEgcGx1Z2luIG1pZ2h0IGRlY29tcHJlc3MgYSBmaWxlLCBvciBpdAot
ICAgICAgICAvLyBtaWdodCBjcmVhdGUgc29tZSBzaWRlIGRhdGEgc3RydWN0dXJlIGZvciB1c2Ug
bGF0ZXIgKGxpa2UgYW4gSW1hZ2UgZWxlbWVudCwgZXRjLikuCi0gICAgICAgIHZhciBpbWFnZVBs
dWdpbiA9IHt9OwotICAgICAgICBpbWFnZVBsdWdpblsnY2FuSGFuZGxlJ10gPSBmdW5jdGlvbihu
YW1lKSB7Ci0gICAgICAgICAgcmV0dXJuICFNb2R1bGUubm9JbWFnZURlY29kaW5nICYmIC9cLihq
cGd8anBlZ3xwbmd8Ym1wKSQvaS50ZXN0KG5hbWUpOwotICAgICAgICB9OwotICAgICAgICBpbWFn
ZVBsdWdpblsnaGFuZGxlJ10gPSBmdW5jdGlvbihieXRlQXJyYXksIG5hbWUsIG9ubG9hZCwgb25l
cnJvcikgewotICAgICAgICAgIHZhciBiID0gbnVsbDsKLSAgICAgICAgICBpZiAoQnJvd3Nlci5o
YXNCbG9iQ29uc3RydWN0b3IpIHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIGIg
PSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUp
IH0pOwotICAgICAgICAgICAgICBpZiAoYi5zaXplICE9PSBieXRlQXJyYXkubGVuZ3RoKSB7IC8v
IFNhZmFyaSBidWcgIzExODYzMAotICAgICAgICAgICAgICAgIC8vIFNhZmFyaSdzIEJsb2IgY2Fu
IG9ubHkgdGFrZSBhbiBBcnJheUJ1ZmZlcgotICAgICAgICAgICAgICAgIGIgPSBuZXcgQmxvYihb
KG5ldyBVaW50OEFycmF5KGJ5dGVBcnJheSkpLmJ1ZmZlcl0sIHsgdHlwZTogQnJvd3Nlci5nZXRN
aW1ldHlwZShuYW1lKSB9KTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBjYXRjaChl
KSB7Ci0gICAgICAgICAgICAgIFJ1bnRpbWUud2Fybk9uY2UoJ0Jsb2IgY29uc3RydWN0b3IgcHJl
c2VudCBidXQgZmFpbHM6ICcgKyBlICsgJzsgZmFsbGluZyBiYWNrIHRvIGJsb2IgYnVpbGRlcicp
OwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoIWIpIHsKLSAgICAg
ICAgICAgIHZhciBiYiA9IG5ldyBCcm93c2VyLkJsb2JCdWlsZGVyKCk7Ci0gICAgICAgICAgICBi
Yi5hcHBlbmQoKG5ldyBVaW50OEFycmF5KGJ5dGVBcnJheSkpLmJ1ZmZlcik7IC8vIHdlIG5lZWQg
dG8gcGFzcyBhIGJ1ZmZlciwgYW5kIG11c3QgY29weSB0aGUgYXJyYXkgdG8gZ2V0IHRoZSByaWdo
dCBkYXRhIHJhbmdlCi0gICAgICAgICAgICBiID0gYmIuZ2V0QmxvYigpOwotICAgICAgICAgIH0K
LSAgICAgICAgICB2YXIgdXJsID0gQnJvd3Nlci5VUkxPYmplY3QuY3JlYXRlT2JqZWN0VVJMKGIp
OwotICAgICAgICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKLSAgICAgICAgICBpbWcub25sb2Fk
ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBhc3NlcnQoaW1nLmNvbXBsZXRlLCAnSW1hZ2Ug
JyArIG5hbWUgKyAnIGNvdWxkIG5vdCBiZSBkZWNvZGVkJyk7Ci0gICAgICAgICAgICB2YXIgY2Fu
dmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Ci0gICAgICAgICAgICBjYW52
YXMud2lkdGggPSBpbWcud2lkdGg7Ci0gICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaW1nLmhl
aWdodDsKLSAgICAgICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAg
ICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKLSAgICAgICAgICAgIE1vZHVsZVsi
cHJlbG9hZGVkSW1hZ2VzIl1bbmFtZV0gPSBjYW52YXM7Ci0gICAgICAgICAgICBCcm93c2VyLlVS
TE9iamVjdC5yZXZva2VPYmplY3RVUkwodXJsKTsKLSAgICAgICAgICAgIGlmIChvbmxvYWQpIG9u
bG9hZChieXRlQXJyYXkpOwotICAgICAgICAgIH07Ci0gICAgICAgICAgaW1nLm9uZXJyb3IgPSBm
dW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgY29uc29sZS5sb2coJ0ltYWdlICcgKyB1cmwg
KyAnIGNvdWxkIG5vdCBiZSBkZWNvZGVkJyk7Ci0gICAgICAgICAgICBpZiAob25lcnJvcikgb25l
cnJvcigpOwotICAgICAgICAgIH07Ci0gICAgICAgICAgaW1nLnNyYyA9IHVybDsKLSAgICAgICAg
fTsKLSAgICAgICAgTW9kdWxlWydwcmVsb2FkUGx1Z2lucyddLnB1c2goaW1hZ2VQbHVnaW4pOwot
ICAgICAgICB2YXIgYXVkaW9QbHVnaW4gPSB7fTsKLSAgICAgICAgYXVkaW9QbHVnaW5bJ2Nhbkhh
bmRsZSddID0gZnVuY3Rpb24obmFtZSkgewotICAgICAgICAgIHJldHVybiAhTW9kdWxlLm5vQXVk
aW9EZWNvZGluZyAmJiBuYW1lLnN1YnN0cigtNCkgaW4geyAnLm9nZyc6IDEsICcud2F2JzogMSwg
Jy5tcDMnOiAxIH07Ci0gICAgICAgIH07Ci0gICAgICAgIGF1ZGlvUGx1Z2luWydoYW5kbGUnXSA9
IGZ1bmN0aW9uKGJ5dGVBcnJheSwgbmFtZSwgb25sb2FkLCBvbmVycm9yKSB7Ci0gICAgICAgICAg
dmFyIGRvbmUgPSBmYWxzZTsKLSAgICAgICAgICBmdW5jdGlvbiBmaW5pc2goYXVkaW8pIHsKLSAg
ICAgICAgICAgIGlmIChkb25lKSByZXR1cm47Ci0gICAgICAgICAgICBkb25lID0gdHJ1ZTsKLSAg
ICAgICAgICAgIE1vZHVsZVsicHJlbG9hZGVkQXVkaW9zIl1bbmFtZV0gPSBhdWRpbzsKLSAgICAg
ICAgICAgIGlmIChvbmxvYWQpIG9ubG9hZChieXRlQXJyYXkpOwotICAgICAgICAgIH0KLSAgICAg
ICAgICBmdW5jdGlvbiBmYWlsKCkgewotICAgICAgICAgICAgaWYgKGRvbmUpIHJldHVybjsKLSAg
ICAgICAgICAgIGRvbmUgPSB0cnVlOwotICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRBdWRp
b3MiXVtuYW1lXSA9IG5ldyBBdWRpbygpOyAvLyBlbXB0eSBzaGltCi0gICAgICAgICAgICBpZiAo
b25lcnJvcikgb25lcnJvcigpOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoQnJvd3Nlci5o
YXNCbG9iQ29uc3RydWN0b3IpIHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIHZh
ciBiID0gbmV3IEJsb2IoW2J5dGVBcnJheV0sIHsgdHlwZTogQnJvd3Nlci5nZXRNaW1ldHlwZShu
YW1lKSB9KTsKLSAgICAgICAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICAgICAgICByZXR1cm4g
ZmFpbCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIHVybCA9IEJyb3dzZXIuVVJM
T2JqZWN0LmNyZWF0ZU9iamVjdFVSTChiKTsgLy8gWFhYIHdlIG5ldmVyIHJldm9rZSB0aGlzIQot
ICAgICAgICAgICAgdmFyIGF1ZGlvID0gbmV3IEF1ZGlvKCk7Ci0gICAgICAgICAgICBhdWRpby5h
ZGRFdmVudExpc3RlbmVyKCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgeyBmaW5pc2goYXVk
aW8pIH0sIGZhbHNlKTsgLy8gdXNlIGFkZEV2ZW50TGlzdGVuZXIgZHVlIHRvIGNocm9taXVtIGJ1
ZyAxMjQ5MjYKLSAgICAgICAgICAgIGF1ZGlvLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewot
ICAgICAgICAgICAgICBpZiAoZG9uZSkgcmV0dXJuOwotICAgICAgICAgICAgICBjb25zb2xlLmxv
Zygnd2FybmluZzogYnJvd3NlciBjb3VsZCBub3QgZnVsbHkgZGVjb2RlIGF1ZGlvICcgKyBuYW1l
ICsgJywgdHJ5aW5nIHNsb3dlciBiYXNlNjQgYXBwcm9hY2gnKTsKLSAgICAgICAgICAgICAgZnVu
Y3Rpb24gZW5jb2RlNjQoZGF0YSkgewotICAgICAgICAgICAgICAgIHZhciBCQVNFID0gJ0FCQ0RF
RkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
Ky8nOwotICAgICAgICAgICAgICAgIHZhciBQQUQgPSAnPSc7Ci0gICAgICAgICAgICAgICAgdmFy
IHJldCA9ICcnOwotICAgICAgICAgICAgICAgIHZhciBsZWZ0Y2hhciA9IDA7Ci0gICAgICAgICAg
ICAgICAgdmFyIGxlZnRiaXRzID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGRhdGEubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgIGxlZnRjaGFyID0gKGxl
ZnRjaGFyIDw8IDgpIHwgZGF0YVtpXTsKLSAgICAgICAgICAgICAgICAgIGxlZnRiaXRzICs9IDg7
Ci0gICAgICAgICAgICAgICAgICB3aGlsZSAobGVmdGJpdHMgPj0gNikgewotICAgICAgICAgICAg
ICAgICAgICB2YXIgY3VyciA9IChsZWZ0Y2hhciA+PiAobGVmdGJpdHMtNikpICYgMHgzZjsKLSAg
ICAgICAgICAgICAgICAgICAgbGVmdGJpdHMgLT0gNjsKLSAgICAgICAgICAgICAgICAgICAgcmV0
ICs9IEJBU0VbY3Vycl07Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIGlmIChsZWZ0Yml0cyA9PSAyKSB7Ci0gICAgICAgICAgICAgICAgICBy
ZXQgKz0gQkFTRVsobGVmdGNoYXImMykgPDwgNF07Ci0gICAgICAgICAgICAgICAgICByZXQgKz0g
UEFEICsgUEFEOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGVmdGJpdHMgPT0gNCkgewot
ICAgICAgICAgICAgICAgICAgcmV0ICs9IEJBU0VbKGxlZnRjaGFyJjB4ZikgPDwgMl07Ci0gICAg
ICAgICAgICAgICAgICByZXQgKz0gUEFEOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICByZXR1cm4gcmV0OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGF1ZGlvLnNy
YyA9ICdkYXRhOmF1ZGlvL3gtJyArIG5hbWUuc3Vic3RyKC0zKSArICc7YmFzZTY0LCcgKyBlbmNv
ZGU2NChieXRlQXJyYXkpOwotICAgICAgICAgICAgICBmaW5pc2goYXVkaW8pOyAvLyB3ZSBkb24n
dCB3YWl0IGZvciBjb25maXJtYXRpb24gdGhpcyB3b3JrZWQgLSBidXQgaXQncyB3b3J0aCB0cnlp
bmcKLSAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBhdWRpby5zcmMgPSB1cmw7Ci0gICAgICAg
ICAgICAvLyB3b3JrYXJvdW5kIGZvciBjaHJvbWUgYnVnIDEyNDkyNiAtIHdlIGRvIG5vdCBhbHdh
eXMgZ2V0IG9uY2FucGxheXRocm91Z2ggb3Igb25lcnJvcgotICAgICAgICAgICAgQnJvd3Nlci5z
YWZlU2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgZmluaXNoKGF1ZGlvKTsg
Ly8gdHJ5IHRvIHVzZSBpdCBldmVuIHRob3VnaCBpdCBpcyBub3QgbmVjZXNzYXJpbHkgcmVhZHkg
dG8gcGxheQotICAgICAgICAgICAgfSwgMTAwMDApOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICByZXR1cm4gZmFpbCgpOwotICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAg
TW9kdWxlWydwcmVsb2FkUGx1Z2lucyddLnB1c2goYXVkaW9QbHVnaW4pOwotICAgICAgICAvLyBD
YW52YXMgZXZlbnQgc2V0dXAKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107
Ci0gICAgICAgIGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxvY2sgPSBjYW52YXNbJ3JlcXVlc3RQb2lu
dGVyTG9jayddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXNb
J21velJlcXVlc3RQb2ludGVyTG9jayddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjYW52YXNbJ3dlYmtpdFJlcXVlc3RQb2ludGVyTG9jayddOwotICAgICAgICBjYW52
YXMuZXhpdFBvaW50ZXJMb2NrID0gZG9jdW1lbnRbJ2V4aXRQb2ludGVyTG9jayddIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFsnbW96RXhpdFBvaW50ZXJMb2Nr
J10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wyd3ZWJraXRF
eGl0UG9pbnRlckxvY2snXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Y3Rpb24oKXt9OyAvLyBuby1vcCBpZiBmdW5jdGlvbiBkb2VzIG5vdCBleGlzdAotICAgICAgICBj
YW52YXMuZXhpdFBvaW50ZXJMb2NrID0gY2FudmFzLmV4aXRQb2ludGVyTG9jay5iaW5kKGRvY3Vt
ZW50KTsKLSAgICAgICAgZnVuY3Rpb24gcG9pbnRlckxvY2tDaGFuZ2UoKSB7Ci0gICAgICAgICAg
QnJvd3Nlci5wb2ludGVyTG9jayA9IGRvY3VtZW50Wydwb2ludGVyTG9ja0VsZW1lbnQnXSA9PT0g
Y2FudmFzIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pQ
b2ludGVyTG9ja0VsZW1lbnQnXSA9PT0gY2FudmFzIHx8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50Wyd3ZWJraXRQb2ludGVyTG9ja0VsZW1lbnQnXSA9PT0gY2FudmFz
OwotICAgICAgICB9Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJs
b2NrY2hhbmdlJywgcG9pbnRlckxvY2tDaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgZG9jdW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcignbW96cG9pbnRlcmxvY2tjaGFuZ2UnLCBwb2ludGVyTG9ja0NoYW5n
ZSwgZmFsc2UpOwotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRwb2lu
dGVybG9ja2NoYW5nZScsIHBvaW50ZXJMb2NrQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgIGlmIChN
b2R1bGVbJ2VsZW1lbnRQb2ludGVyTG9jayddKSB7Ci0gICAgICAgICAgY2FudmFzLmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oZXYpIHsKLSAgICAgICAgICAgIGlmICghQnJvd3Nl
ci5wb2ludGVyTG9jayAmJiBjYW52YXMucmVxdWVzdFBvaW50ZXJMb2NrKSB7Ci0gICAgICAgICAg
ICAgIGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxvY2soKTsKLSAgICAgICAgICAgICAgZXYucHJldmVu
dERlZmF1bHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9LCBmYWxzZSk7Ci0gICAgICAg
IH0KLSAgICAgIH0sY3JlYXRlQ29udGV4dDpmdW5jdGlvbiAoY2FudmFzLCB1c2VXZWJHTCwgc2V0
SW5Nb2R1bGUpIHsKLSAgICAgICAgdmFyIGN0eDsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBp
ZiAodXNlV2ViR0wpIHsKLSAgICAgICAgICAgIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCdleHBl
cmltZW50YWwtd2ViZ2wnLCB7Ci0gICAgICAgICAgICAgIGFscGhhOiBmYWxzZQotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGN0eCA9IGNhbnZhcy5nZXRD
b250ZXh0KCcyZCcpOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoIWN0eCkgdGhyb3cgJzoo
JzsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIE1vZHVsZS5wcmludCgnQ291bGQg
bm90IGNyZWF0ZSBjYW52YXMgLSAnICsgZSk7Ci0gICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKHVzZVdlYkdMKSB7Ci0gICAgICAgICAgLy8gU2V0IHRoZSBiYWNr
Z3JvdW5kIG9mIHRoZSBXZWJHTCBjYW52YXMgdG8gYmxhY2sKLSAgICAgICAgICBjYW52YXMuc3R5
bGUuYmFja2dyb3VuZENvbG9yID0gImJsYWNrIjsKLSAgICAgICAgICAvLyBXYXJuIG9uIGNvbnRl
eHQgbG9zcwotICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCd3ZWJnbGNvbnRleHRs
b3N0JywgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIGFsZXJ0KCdXZWJHTCBjb250ZXh0
IGxvc3QuIFlvdSB3aWxsIG5lZWQgdG8gcmVsb2FkIHRoZSBwYWdlLicpOwotICAgICAgICAgIH0s
IGZhbHNlKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoc2V0SW5Nb2R1bGUpIHsKLSAgICAgICAg
ICBNb2R1bGUuY3R4ID0gY3R4OwotICAgICAgICAgIE1vZHVsZS51c2VXZWJHTCA9IHVzZVdlYkdM
OwotICAgICAgICAgIEJyb3dzZXIubW9kdWxlQ29udGV4dENyZWF0ZWRDYWxsYmFja3MuZm9yRWFj
aChmdW5jdGlvbihjYWxsYmFjaykgeyBjYWxsYmFjaygpIH0pOwotICAgICAgICAgIEJyb3dzZXIu
aW5pdCgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjdHg7Ci0gICAgICB9LGRlc3Ryb3lD
b250ZXh0OmZ1bmN0aW9uIChjYW52YXMsIHVzZVdlYkdMLCBzZXRJbk1vZHVsZSkge30sZnVsbFNj
cmVlbkhhbmRsZXJzSW5zdGFsbGVkOmZhbHNlLGxvY2tQb2ludGVyOnVuZGVmaW5lZCxyZXNpemVD
YW52YXM6dW5kZWZpbmVkLHJlcXVlc3RGdWxsU2NyZWVuOmZ1bmN0aW9uIChsb2NrUG9pbnRlciwg
cmVzaXplQ2FudmFzKSB7Ci0gICAgICAgIEJyb3dzZXIubG9ja1BvaW50ZXIgPSBsb2NrUG9pbnRl
cjsKLSAgICAgICAgQnJvd3Nlci5yZXNpemVDYW52YXMgPSByZXNpemVDYW52YXM7Ci0gICAgICAg
IGlmICh0eXBlb2YgQnJvd3Nlci5sb2NrUG9pbnRlciA9PT0gJ3VuZGVmaW5lZCcpIEJyb3dzZXIu
bG9ja1BvaW50ZXIgPSB0cnVlOwotICAgICAgICBpZiAodHlwZW9mIEJyb3dzZXIucmVzaXplQ2Fu
dmFzID09PSAndW5kZWZpbmVkJykgQnJvd3Nlci5yZXNpemVDYW52YXMgPSBmYWxzZTsKLSAgICAg
ICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIGZ1bmN0aW9uIGZ1bGxT
Y3JlZW5DaGFuZ2UoKSB7Ci0gICAgICAgICAgQnJvd3Nlci5pc0Z1bGxTY3JlZW4gPSBmYWxzZTsK
LSAgICAgICAgICBpZiAoKGRvY3VtZW50Wyd3ZWJraXRGdWxsU2NyZWVuRWxlbWVudCddIHx8IGRv
Y3VtZW50Wyd3ZWJraXRGdWxsc2NyZWVuRWxlbWVudCddIHx8Ci0gICAgICAgICAgICAgICBkb2N1
bWVudFsnbW96RnVsbFNjcmVlbkVsZW1lbnQnXSB8fCBkb2N1bWVudFsnbW96RnVsbHNjcmVlbkVs
ZW1lbnQnXSB8fAotICAgICAgICAgICAgICAgZG9jdW1lbnRbJ2Z1bGxTY3JlZW5FbGVtZW50J10g
fHwgZG9jdW1lbnRbJ2Z1bGxzY3JlZW5FbGVtZW50J10pID09PSBjYW52YXMpIHsKLSAgICAgICAg
ICAgIGNhbnZhcy5jYW5jZWxGdWxsU2NyZWVuID0gZG9jdW1lbnRbJ2NhbmNlbEZ1bGxTY3JlZW4n
XSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFsnbW96
Q2FuY2VsRnVsbFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50Wyd3ZWJraXRDYW5jZWxGdWxsU2NyZWVuJ107Ci0gICAgICAgICAgICBjYW52
YXMuY2FuY2VsRnVsbFNjcmVlbiA9IGNhbnZhcy5jYW5jZWxGdWxsU2NyZWVuLmJpbmQoZG9jdW1l
bnQpOwotICAgICAgICAgICAgaWYgKEJyb3dzZXIubG9ja1BvaW50ZXIpIGNhbnZhcy5yZXF1ZXN0
UG9pbnRlckxvY2soKTsKLSAgICAgICAgICAgIEJyb3dzZXIuaXNGdWxsU2NyZWVuID0gdHJ1ZTsK
LSAgICAgICAgICAgIGlmIChCcm93c2VyLnJlc2l6ZUNhbnZhcykgQnJvd3Nlci5zZXRGdWxsU2Ny
ZWVuQ2FudmFzU2l6ZSgpOwotICAgICAgICAgIH0gZWxzZSBpZiAoQnJvd3Nlci5yZXNpemVDYW52
YXMpewotICAgICAgICAgICAgQnJvd3Nlci5zZXRXaW5kb3dlZENhbnZhc1NpemUoKTsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgaWYgKE1vZHVsZVsnb25GdWxsU2NyZWVuJ10pIE1vZHVsZVsnb25G
dWxsU2NyZWVuJ10oQnJvd3Nlci5pc0Z1bGxTY3JlZW4pOwotICAgICAgICB9Ci0gICAgICAgIGlm
ICghQnJvd3Nlci5mdWxsU2NyZWVuSGFuZGxlcnNJbnN0YWxsZWQpIHsKLSAgICAgICAgICBCcm93
c2VyLmZ1bGxTY3JlZW5IYW5kbGVyc0luc3RhbGxlZCA9IHRydWU7Ci0gICAgICAgICAgZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcignZnVsbHNjcmVlbmNoYW5nZScsIGZ1bGxTY3JlZW5DaGFuZ2Us
IGZhbHNlKTsKLSAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3pmdWxsc2Ny
ZWVuY2hhbmdlJywgZnVsbFNjcmVlbkNoYW5nZSwgZmFsc2UpOwotICAgICAgICAgIGRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCBmdWxsU2NyZWVuQ2hh
bmdlLCBmYWxzZSk7Ci0gICAgICAgIH0KLSAgICAgICAgY2FudmFzLnJlcXVlc3RGdWxsU2NyZWVu
ID0gY2FudmFzWydyZXF1ZXN0RnVsbFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNhbnZhc1snbW96UmVxdWVzdEZ1bGxTY3JlZW4nXSB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FudmFzWyd3ZWJraXRSZXF1ZXN0RnVsbFNjcmVl
biddID8gZnVuY3Rpb24oKSB7IGNhbnZhc1snd2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4nXShFbGVt
ZW50WydBTExPV19LRVlCT0FSRF9JTlBVVCddKSB9IDogbnVsbCk7Ci0gICAgICAgIGNhbnZhcy5y
ZXF1ZXN0RnVsbFNjcmVlbigpOwotICAgICAgfSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWU6ZnVuY3Rp
b24gKGZ1bmMpIHsKLSAgICAgICAgaWYgKCF3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKSB7
Ci0gICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHdpbmRvd1sncmVxdWVz
dEFuaW1hdGlvbkZyYW1lJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2luZG93Wydtb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ3dlYmtpdFJlcXVlc3RBbmltYXRp
b25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
bmRvd1snbXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ29SZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ3NldFRpbWVv
dXQnXTsKLSAgICAgICAgfQotICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1
bmMpOwotICAgICAgfSxzYWZlQ2FsbGJhY2s6ZnVuY3Rpb24gKGZ1bmMpIHsKLSAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlmICghQUJPUlQpIHJldHVybiBmdW5jLmFwcGx5
KG51bGwsIGFyZ3VtZW50cyk7Ci0gICAgICAgIH07Ci0gICAgICB9LHNhZmVSZXF1ZXN0QW5pbWF0
aW9uRnJhbWU6ZnVuY3Rpb24gKGZ1bmMpIHsKLSAgICAgICAgcmV0dXJuIEJyb3dzZXIucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlmICghQUJPUlQpIGZ1bmMo
KTsKLSAgICAgICAgfSk7Ci0gICAgICB9LHNhZmVTZXRUaW1lb3V0OmZ1bmN0aW9uIChmdW5jLCB0
aW1lb3V0KSB7Ci0gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAg
ICAgIGlmICghQUJPUlQpIGZ1bmMoKTsKLSAgICAgICAgfSwgdGltZW91dCk7Ci0gICAgICB9LHNh
ZmVTZXRJbnRlcnZhbDpmdW5jdGlvbiAoZnVuYywgdGltZW91dCkgewotICAgICAgICByZXR1cm4g
c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOwot
ICAgICAgICB9LCB0aW1lb3V0KTsKLSAgICAgIH0sZ2V0TWltZXR5cGU6ZnVuY3Rpb24gKG5hbWUp
IHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAnanBnJzogJ2ltYWdlL2pwZWcnLAotICAg
ICAgICAgICdqcGVnJzogJ2ltYWdlL2pwZWcnLAotICAgICAgICAgICdwbmcnOiAnaW1hZ2UvcG5n
JywKLSAgICAgICAgICAnYm1wJzogJ2ltYWdlL2JtcCcsCi0gICAgICAgICAgJ29nZyc6ICdhdWRp
by9vZ2cnLAotICAgICAgICAgICd3YXYnOiAnYXVkaW8vd2F2JywKLSAgICAgICAgICAnbXAzJzog
J2F1ZGlvL21wZWcnCi0gICAgICAgIH1bbmFtZS5zdWJzdHIobmFtZS5sYXN0SW5kZXhPZignLicp
KzEpXTsKLSAgICAgIH0sZ2V0VXNlck1lZGlhOmZ1bmN0aW9uIChmdW5jKSB7Ci0gICAgICAgIGlm
KCF3aW5kb3cuZ2V0VXNlck1lZGlhKSB7Ci0gICAgICAgICAgd2luZG93LmdldFVzZXJNZWRpYSA9
IG5hdmlnYXRvclsnZ2V0VXNlck1lZGlhJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmF2aWdhdG9yWydtb3pHZXRVc2VyTWVkaWEnXTsKLSAgICAgICAgfQotICAgICAgICB3
aW5kb3cuZ2V0VXNlck1lZGlhKGZ1bmMpOwotICAgICAgfSxnZXRNb3ZlbWVudFg6ZnVuY3Rpb24g
KGV2ZW50KSB7Ci0gICAgICAgIHJldHVybiBldmVudFsnbW92ZW1lbnRYJ10gfHwKLSAgICAgICAg
ICAgICAgIGV2ZW50Wydtb3pNb3ZlbWVudFgnXSB8fAotICAgICAgICAgICAgICAgZXZlbnRbJ3dl
YmtpdE1vdmVtZW50WCddIHx8Ci0gICAgICAgICAgICAgICAwOwotICAgICAgfSxnZXRNb3ZlbWVu
dFk6ZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgIHJldHVybiBldmVudFsnbW92ZW1lbnRZJ10g
fHwKLSAgICAgICAgICAgICAgIGV2ZW50Wydtb3pNb3ZlbWVudFknXSB8fAotICAgICAgICAgICAg
ICAgZXZlbnRbJ3dlYmtpdE1vdmVtZW50WSddIHx8Ci0gICAgICAgICAgICAgICAwOwotICAgICAg
fSxtb3VzZVg6MCxtb3VzZVk6MCxtb3VzZU1vdmVtZW50WDowLG1vdXNlTW92ZW1lbnRZOjAsY2Fs
Y3VsYXRlTW91c2VFdmVudDpmdW5jdGlvbiAoZXZlbnQpIHsgLy8gZXZlbnQgc2hvdWxkIGJlIG1v
dXNlbW92ZSwgbW91c2Vkb3duIG9yIG1vdXNldXAKLSAgICAgICAgaWYgKEJyb3dzZXIucG9pbnRl
ckxvY2spIHsKLSAgICAgICAgICAvLyBXaGVuIHRoZSBwb2ludGVyIGlzIGxvY2tlZCwgY2FsY3Vs
YXRlIHRoZSBjb29yZGluYXRlcwotICAgICAgICAgIC8vIGJhc2VkIG9uIHRoZSBtb3ZlbWVudCBv
ZiB0aGUgbW91c2UuCi0gICAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgRmlyZWZveCBidWcgNzY0
NDk4Ci0gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgIT0gJ21vdXNlbW92ZScgJiYKLSAgICAgICAg
ICAgICAgKCdtb3pNb3ZlbWVudFgnIGluIGV2ZW50KSkgewotICAgICAgICAgICAgQnJvd3Nlci5t
b3VzZU1vdmVtZW50WCA9IEJyb3dzZXIubW91c2VNb3ZlbWVudFkgPSAwOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1lbnRYID0gQnJvd3Nlci5nZXRN
b3ZlbWVudFgoZXZlbnQpOwotICAgICAgICAgICAgQnJvd3Nlci5tb3VzZU1vdmVtZW50WSA9IEJy
b3dzZXIuZ2V0TW92ZW1lbnRZKGV2ZW50KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gY2hl
Y2sgaWYgU0RMIGlzIGF2YWlsYWJsZQotICAgICAgICAgIGlmICh0eXBlb2YgU0RMICE9ICJ1bmRl
ZmluZWQiKSB7Ci0gICAgICAgICAgCUJyb3dzZXIubW91c2VYID0gU0RMLm1vdXNlWCArIEJyb3dz
ZXIubW91c2VNb3ZlbWVudFg7Ci0gICAgICAgICAgCUJyb3dzZXIubW91c2VZID0gU0RMLm1vdXNl
WSArIEJyb3dzZXIubW91c2VNb3ZlbWVudFk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAJLy8ganVzdCBhZGQgdGhlIG1vdXNlIGRlbHRhIHRvIHRoZSBjdXJyZW50IGFic29sdXQgbW91
c2UgcG9zaXRpb24KLSAgICAgICAgICAJLy8gRklYTUU6IGlkZWFsbHkgdGhpcyBzaG91bGQgYmUg
Y2xhbXBlZCBhZ2FpbnN0IHRoZSBjYW52YXMgc2l6ZSBhbmQgemVybwotICAgICAgICAgIAlCcm93
c2VyLm1vdXNlWCArPSBCcm93c2VyLm1vdXNlTW92ZW1lbnRYOwotICAgICAgICAgIAlCcm93c2Vy
Lm1vdXNlWSArPSBCcm93c2VyLm1vdXNlTW92ZW1lbnRZOwotICAgICAgICAgIH0gICAgICAgIAot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8vIE90aGVyd2lzZSwgY2FsY3VsYXRlIHRoZSBt
b3ZlbWVudCBiYXNlZCBvbiB0aGUgY2hhbmdlcwotICAgICAgICAgIC8vIGluIHRoZSBjb29yZGlu
YXRlcy4KLSAgICAgICAgICB2YXIgcmVjdCA9IE1vZHVsZVsiY2FudmFzIl0uZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7Ci0gICAgICAgICAgdmFyIHgsIHk7Ci0gICAgICAgICAgaWYgKGV2ZW50LnR5
cGUgPT0gJ3RvdWNoc3RhcnQnIHx8Ci0gICAgICAgICAgICAgIGV2ZW50LnR5cGUgPT0gJ3RvdWNo
ZW5kJyB8fAotICAgICAgICAgICAgICBldmVudC50eXBlID09ICd0b3VjaG1vdmUnKSB7Ci0gICAg
ICAgICAgICB2YXIgdCA9IGV2ZW50LnRvdWNoZXMuaXRlbSgwKTsKLSAgICAgICAgICAgIGlmICh0
KSB7Ci0gICAgICAgICAgICAgIHggPSB0LnBhZ2VYIC0gKHdpbmRvdy5zY3JvbGxYICsgcmVjdC5s
ZWZ0KTsKLSAgICAgICAgICAgICAgeSA9IHQucGFnZVkgLSAod2luZG93LnNjcm9sbFkgKyByZWN0
LnRvcCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHggPSBldmVudC5wYWdl
WCAtICh3aW5kb3cuc2Nyb2xsWCArIHJlY3QubGVmdCk7Ci0gICAgICAgICAgICB5ID0gZXZlbnQu
cGFnZVkgLSAod2luZG93LnNjcm9sbFkgKyByZWN0LnRvcCk7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIC8vIHRoZSBjYW52YXMgbWlnaHQgYmUgQ1NTLXNjYWxlZCBjb21wYXJlZCB0byBpdHMgYmFj
a2J1ZmZlcjsKLSAgICAgICAgICAvLyBTREwtdXNpbmcgY29udGVudCB3aWxsIHdhbnQgbW91c2Ug
Y29vcmRpbmF0ZXMgaW4gdGVybXMKLSAgICAgICAgICAvLyBvZiBiYWNrYnVmZmVyIHVuaXRzLgot
ICAgICAgICAgIHZhciBjdyA9IE1vZHVsZVsiY2FudmFzIl0ud2lkdGg7Ci0gICAgICAgICAgdmFy
IGNoID0gTW9kdWxlWyJjYW52YXMiXS5oZWlnaHQ7Ci0gICAgICAgICAgeCA9IHggKiAoY3cgLyBy
ZWN0LndpZHRoKTsKLSAgICAgICAgICB5ID0geSAqIChjaCAvIHJlY3QuaGVpZ2h0KTsKLSAgICAg
ICAgICBCcm93c2VyLm1vdXNlTW92ZW1lbnRYID0geCAtIEJyb3dzZXIubW91c2VYOwotICAgICAg
ICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFkgPSB5IC0gQnJvd3Nlci5tb3VzZVk7Ci0gICAgICAg
ICAgQnJvd3Nlci5tb3VzZVggPSB4OwotICAgICAgICAgIEJyb3dzZXIubW91c2VZID0geTsKLSAg
ICAgICAgfQotICAgICAgfSx4aHJMb2FkOmZ1bmN0aW9uICh1cmwsIG9ubG9hZCwgb25lcnJvcikg
ewotICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgICAgIHhoci5v
cGVuKCdHRVQnLCB1cmwsIHRydWUpOwotICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5
YnVmZmVyJzsKLSAgICAgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlm
ICh4aHIuc3RhdHVzID09IDIwMCB8fCAoeGhyLnN0YXR1cyA9PSAwICYmIHhoci5yZXNwb25zZSkp
IHsgLy8gZmlsZSBVUkxzIGNhbiByZXR1cm4gMAotICAgICAgICAgICAgb25sb2FkKHhoci5yZXNw
b25zZSk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG9uZXJyb3IoKTsKLSAgICAg
ICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIHhoci5vbmVycm9yID0gb25lcnJvcjsKLSAgICAg
ICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgICB9LGFzeW5jTG9hZDpmdW5jdGlvbiAodXJsLCBvbmxv
YWQsIG9uZXJyb3IsIG5vUnVuRGVwKSB7Ci0gICAgICAgIEJyb3dzZXIueGhyTG9hZCh1cmwsIGZ1
bmN0aW9uKGFycmF5QnVmZmVyKSB7Ci0gICAgICAgICAgYXNzZXJ0KGFycmF5QnVmZmVyLCAnTG9h
ZGluZyBkYXRhIGZpbGUgIicgKyB1cmwgKyAnIiBmYWlsZWQgKG5vIGFycmF5QnVmZmVyKS4nKTsK
LSAgICAgICAgICBvbmxvYWQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTsKLSAgICAgICAg
ICBpZiAoIW5vUnVuRGVwKSByZW1vdmVSdW5EZXBlbmRlbmN5KCdhbCAnICsgdXJsKTsKLSAgICAg
ICAgfSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICBpZiAob25lcnJvcikgewotICAgICAg
ICAgICAgb25lcnJvcigpOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aHJvdyAn
TG9hZGluZyBkYXRhIGZpbGUgIicgKyB1cmwgKyAnIiBmYWlsZWQuJzsKLSAgICAgICAgICB9Ci0g
ICAgICAgIH0pOwotICAgICAgICBpZiAoIW5vUnVuRGVwKSBhZGRSdW5EZXBlbmRlbmN5KCdhbCAn
ICsgdXJsKTsKLSAgICAgIH0scmVzaXplTGlzdGVuZXJzOltdLHVwZGF0ZVJlc2l6ZUxpc3RlbmVy
czpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwot
ICAgICAgICBCcm93c2VyLnJlc2l6ZUxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVy
KSB7Ci0gICAgICAgICAgbGlzdGVuZXIoY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKLSAg
ICAgICAgfSk7Ci0gICAgICB9LHNldENhbnZhc1NpemU6ZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQs
IG5vVXBkYXRlcykgewotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAg
ICAgICAgY2FudmFzLndpZHRoID0gd2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWln
aHQ7Ci0gICAgICAgIGlmICghbm9VcGRhdGVzKSBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVy
cygpOwotICAgICAgfSx3aW5kb3dlZFdpZHRoOjAsd2luZG93ZWRIZWlnaHQ6MCxzZXRGdWxsU2Ny
ZWVuQ2FudmFzU2l6ZTpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVb
J2NhbnZhcyddOwotICAgICAgICB0aGlzLndpbmRvd2VkV2lkdGggPSBjYW52YXMud2lkdGg7Ci0g
ICAgICAgIHRoaXMud2luZG93ZWRIZWlnaHQgPSBjYW52YXMuaGVpZ2h0OwotICAgICAgICBjYW52
YXMud2lkdGggPSBzY3JlZW4ud2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBzY3JlZW4u
aGVpZ2h0OwotICAgICAgICAvLyBjaGVjayBpZiBTREwgaXMgYXZhaWxhYmxlICAgCi0gICAgICAg
IGlmICh0eXBlb2YgU0RMICE9ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgIAl2YXIgZmxhZ3MgPSBI
RUFQVTMyWygoU0RMLnNjcmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+MildOwotICAgICAg
ICAJZmxhZ3MgPSBmbGFncyB8IDB4MDA4MDAwMDA7IC8vIHNldCBTRExfRlVMTFNDUkVFTiBmbGFn
Ci0gICAgICAgIAlIRUFQMzJbKChTREwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4y
KV09ZmxhZ3MKLSAgICAgICAgfQotICAgICAgICBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVy
cygpOwotICAgICAgfSxzZXRXaW5kb3dlZENhbnZhc1NpemU6ZnVuY3Rpb24gKCkgewotICAgICAg
ICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgY2FudmFzLndpZHRoID0g
dGhpcy53aW5kb3dlZFdpZHRoOwotICAgICAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy53aW5kb3dl
ZEhlaWdodDsKLSAgICAgICAgLy8gY2hlY2sgaWYgU0RMIGlzIGF2YWlsYWJsZSAgICAgICAKLSAg
ICAgICAgaWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgCXZhciBmbGFn
cyA9IEhFQVBVMzJbKChTREwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV07Ci0g
ICAgICAgIAlmbGFncyA9IGZsYWdzICYgfjB4MDA4MDAwMDA7IC8vIGNsZWFyIFNETF9GVUxMU0NS
RUVOIGZsYWcKLSAgICAgICAgCUhFQVAzMlsoKFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJ
WkUqMCk+PjIpXT1mbGFncwotICAgICAgICB9Ci0gICAgICAgIEJyb3dzZXIudXBkYXRlUmVzaXpl
TGlzdGVuZXJzKCk7Ci0gICAgICB9fTsKLV9sbHZtX2VoX2V4Y2VwdGlvbi5idWYgPSBhbGxvY2F0
ZSgxMiwgInZvaWQqIiwgQUxMT0NfU1RBVElDKTsKLUZTLnN0YXRpY0luaXQoKTtfX0FUSU5JVF9f
LnVuc2hpZnQoeyBmdW5jOiBmdW5jdGlvbigpIHsgaWYgKCFNb2R1bGVbIm5vRlNJbml0Il0gJiYg
IUZTLmluaXQuaW5pdGlhbGl6ZWQpIEZTLmluaXQoKSB9IH0pO19fQVRNQUlOX18ucHVzaCh7IGZ1
bmM6IGZ1bmN0aW9uKCkgeyBGUy5pZ25vcmVQZXJtaXNzaW9ucyA9IGZhbHNlIH0gfSk7X19BVEVY
SVRfXy5wdXNoKHsgZnVuYzogZnVuY3Rpb24oKSB7IEZTLnF1aXQoKSB9IH0pO01vZHVsZVsiRlNf
Y3JlYXRlRm9sZGVyIl0gPSBGUy5jcmVhdGVGb2xkZXI7TW9kdWxlWyJGU19jcmVhdGVQYXRoIl0g
PSBGUy5jcmVhdGVQYXRoO01vZHVsZVsiRlNfY3JlYXRlRGF0YUZpbGUiXSA9IEZTLmNyZWF0ZURh
dGFGaWxlO01vZHVsZVsiRlNfY3JlYXRlUHJlbG9hZGVkRmlsZSJdID0gRlMuY3JlYXRlUHJlbG9h
ZGVkRmlsZTtNb2R1bGVbIkZTX2NyZWF0ZUxhenlGaWxlIl0gPSBGUy5jcmVhdGVMYXp5RmlsZTtN
b2R1bGVbIkZTX2NyZWF0ZUxpbmsiXSA9IEZTLmNyZWF0ZUxpbms7TW9kdWxlWyJGU19jcmVhdGVE
ZXZpY2UiXSA9IEZTLmNyZWF0ZURldmljZTsKLV9fX2Vycm5vX3N0YXRlID0gUnVudGltZS5zdGF0
aWNBbGxvYyg0KTsgSEVBUDMyWygoX19fZXJybm9fc3RhdGUpPj4yKV09MDsKLV9mZ2V0Yy5yZXQg
PSBhbGxvY2F0ZShbMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci1Nb2R1bGVbInJlcXVlc3RGdWxs
U2NyZWVuIl0gPSBmdW5jdGlvbihsb2NrUG9pbnRlciwgcmVzaXplQ2FudmFzKSB7IEJyb3dzZXIu
cmVxdWVzdEZ1bGxTY3JlZW4obG9ja1BvaW50ZXIsIHJlc2l6ZUNhbnZhcykgfTsKLSAgTW9kdWxl
WyJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXSA9IGZ1bmN0aW9uKGZ1bmMpIHsgQnJvd3Nlci5yZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoZnVuYykgfTsKLSAgTW9kdWxlWyJzZXRDYW52YXNTaXplIl0gPSBm
dW5jdGlvbih3aWR0aCwgaGVpZ2h0LCBub1VwZGF0ZXMpIHsgQnJvd3Nlci5zZXRDYW52YXNTaXpl
KHdpZHRoLCBoZWlnaHQsIG5vVXBkYXRlcykgfTsKLSAgTW9kdWxlWyJwYXVzZU1haW5Mb29wIl0g
PSBmdW5jdGlvbigpIHsgQnJvd3Nlci5tYWluTG9vcC5wYXVzZSgpIH07Ci0gIE1vZHVsZVsicmVz
dW1lTWFpbkxvb3AiXSA9IGZ1bmN0aW9uKCkgeyBCcm93c2VyLm1haW5Mb29wLnJlc3VtZSgpIH07
Ci0gIE1vZHVsZVsiZ2V0VXNlck1lZGlhIl0gPSBmdW5jdGlvbigpIHsgQnJvd3Nlci5nZXRVc2Vy
TWVkaWEoKSB9Ci1TVEFDS19CQVNFID0gU1RBQ0tUT1AgPSBSdW50aW1lLmFsaWduTWVtb3J5KFNU
QVRJQ1RPUCk7Ci1zdGF0aWNTZWFsZWQgPSB0cnVlOyAvLyBzZWFsIHRoZSBzdGF0aWMgcG9ydGlv
biBvZiBtZW1vcnkKLVNUQUNLX01BWCA9IFNUQUNLX0JBU0UgKyA1MjQyODgwOwotRFlOQU1JQ19C
QVNFID0gRFlOQU1JQ1RPUCA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkoU1RBQ0tfTUFYKTsKLWFzc2Vy
dChEWU5BTUlDX0JBU0UgPCBUT1RBTF9NRU1PUlkpOyAvLyBTdGFjayBtdXN0IGZpdCBpbiBUT1RB
TF9NRU1PUlk7IGFsbG9jYXRpb25zIGZyb20gaGVyZSBvbiBtYXkgZW5sYXJnZSBUT1RBTF9NRU1P
UlkKLSB2YXIgY3R0el9pOCA9IGFsbG9jYXRlKFs4LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAs
MSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEsMCwyLDAsMSwwLDMsMCwx
LDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDYsMCwxLDAsMiwwLDEs
MCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSww
LDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAs
NywwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwy
LDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMs
MCwxLDAsMiwwLDEsMCw2LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiww
LDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAs
MSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwXSwgImk4IiwgQUxMT0NfRFlOQU1JQyk7Ci12YXIg
TWF0aF9taW4gPSBNYXRoLm1pbjsKLWZ1bmN0aW9uIGludm9rZV92aWlpaWkoaW5kZXgsYTEsYTIs
YTMsYTQsYTUpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpIl0oaW5kZXgs
YTEsYTIsYTMsYTQsYTUpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdu
dW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0o
MSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaShpbmRleCxhMSxhMixhMyxh
NCxhNSxhNixhNykgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaSJdKGlu
ZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVv
ZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJz
ZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmkoaW5kZXgsYTEpIHsK
LSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmkiXShpbmRleCxhMSk7Ci0gIH0gY2F0Y2go
ZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0
aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52
b2tlX3ZpaShpbmRleCxhMSxhMikgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWki
XShpbmRleCxhMSxhMik7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251
bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgx
LCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lpaShpbmRleCxhMSxhMikgewotICB0cnkg
ewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpIl0oaW5kZXgsYTEsYTIpOwotICB9IGNh
dGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1w
JykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9u
IGludm9rZV9paWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUpIHsKLSAgdHJ5IHsKLSAgICByZXR1
cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaSJdKGluZGV4LGExLGEyLGEzLGE0LGE1KTsKLSAgfSBj
YXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2pt
cCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlv
biBpbnZva2VfaWkoaW5kZXgsYTEpIHsKLSAgdHJ5IHsKLSAgICByZXR1cm4gTW9kdWxlWyJkeW5D
YWxsX2lpIl0oaW5kZXgsYTEpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09
ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3
Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9paWlpKGluZGV4LGExLGEyLGEzKSB7
Ci0gIHRyeSB7Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpIl0oaW5kZXgsYTEsYTIs
YTMpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUg
IT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0K
LX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlmKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KSB7Ci0g
IHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWYiXShpbmRleCxhMSxhMixhMyxhNCxh
NSxhNik7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYg
ZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAg
fQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWkoaW5kZXgsYTEsYTIsYTMpIHsKLSAgdHJ5IHsKLSAg
ICBNb2R1bGVbImR5bkNhbGxfdmlpaSJdKGluZGV4LGExLGEyLGEzKTsKLSAgfSBjYXRjaChlKSB7
Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93
IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2Vf
dmlpaWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4KSB7Ci0gIHRyeSB7Ci0gICAg
TW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaSJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4
KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9
PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19
Ci1mdW5jdGlvbiBpbnZva2VfdihpbmRleCkgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2Fs
bF92Il0oaW5kZXgpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1i
ZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwg
MCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9paWlpaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQs
YTUsYTYsYTcsYTgpIHsKLSAgdHJ5IHsKLSAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlp
aWlpaSJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4KTsKLSAgfSBjYXRjaChlKSB7Ci0g
ICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7
Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2Vfdmlp
aWlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSkgewotICB0cnkgewotICAg
IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcs
YTgsYTkpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYm
IGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0g
IH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpZihpbmRleCxhMSxhMixhMyxhNCxhNSxhNixh
NykgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpZiJdKGluZGV4LGExLGEy
LGEzLGE0LGE1LGE2LGE3KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAn
bnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJd
KDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWlpaShpbmRleCxhMSxhMixhMyxh
NCxhNSxhNikgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpIl0oaW5kZXgs
YTEsYTIsYTMsYTQsYTUsYTYpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09
ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3
Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9paWlpaShpbmRleCxhMSxhMixhMyxh
NCkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWkiXShpbmRleCxh
MSxhMixhMyxhNCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJl
cicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAw
KTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpKGluZGV4LGExLGEyLGEzLGE0KSB7Ci0g
IHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQpOwot
ICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICds
b25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1
bmN0aW9uIGFzbVByaW50SW50KHgsIHkpIHsKLSAgTW9kdWxlLnByaW50KCdpbnQgJyArIHggKyAn
LCcgKyB5KTsvLyArICcgJyArIG5ldyBFcnJvcigpLnN0YWNrKTsKLX0KLWZ1bmN0aW9uIGFzbVBy
aW50RmxvYXQoeCwgeSkgewotICBNb2R1bGUucHJpbnQoJ2Zsb2F0ICcgKyB4ICsgJywnICsgeSk7
Ly8gKyAnICcgKyBuZXcgRXJyb3IoKS5zdGFjayk7Ci19Ci0vLyBFTVNDUklQVEVOX1NUQVJUX0FT
TQotdmFyIGFzbT0oZnVuY3Rpb24oZ2xvYmFsLGVudixidWZmZXIpeyJ1c2UgYXNtIjt2YXIgYT1u
ZXcgZ2xvYmFsLkludDhBcnJheShidWZmZXIpO3ZhciBiPW5ldyBnbG9iYWwuSW50MTZBcnJheShi
dWZmZXIpO3ZhciBjPW5ldyBnbG9iYWwuSW50MzJBcnJheShidWZmZXIpO3ZhciBkPW5ldyBnbG9i
YWwuVWludDhBcnJheShidWZmZXIpO3ZhciBlPW5ldyBnbG9iYWwuVWludDE2QXJyYXkoYnVmZmVy
KTt2YXIgZj1uZXcgZ2xvYmFsLlVpbnQzMkFycmF5KGJ1ZmZlcik7dmFyIGc9bmV3IGdsb2JhbC5G
bG9hdDMyQXJyYXkoYnVmZmVyKTt2YXIgaD1uZXcgZ2xvYmFsLkZsb2F0NjRBcnJheShidWZmZXIp
O3ZhciBpPWVudi5TVEFDS1RPUHwwO3ZhciBqPWVudi5TVEFDS19NQVh8MDt2YXIgaz1lbnYudGVt
cERvdWJsZVB0cnwwO3ZhciBsPWVudi5BQk9SVHwwO3ZhciBtPWVudi5jdHR6X2k4fDA7dmFyIG49
ZW52LmN0bHpfaTh8MDt2YXIgbz1lbnYuX3N0ZGlufDA7dmFyIHA9ZW52Ll9fWlRWTjEwX19jeHhh
Yml2MTE3X19jbGFzc190eXBlX2luZm9FfDA7dmFyIHE9ZW52Ll9fWlRWTjEwX19jeHhhYml2MTIw
X19zaV9jbGFzc190eXBlX2luZm9FfDA7dmFyIHI9ZW52Ll9zdGRlcnJ8MDt2YXIgcz1lbnYuX19f
ZnNtdTh8MDt2YXIgdD1lbnYuX3N0ZG91dHwwO3ZhciB1PWVudi5fX19kc29faGFuZGxlfDA7dmFy
IHY9K2Vudi5OYU47dmFyIHc9K2Vudi5JbmZpbml0eTt2YXIgeD0wO3ZhciB5PTA7dmFyIHo9MDt2
YXIgQT0wO3ZhciBCPTAsQz0wLEQ9MCxFPTAsRj0wLjAsRz0wLEg9MCxJPTAsSj0wLjA7dmFyIEs9
MDt2YXIgTD0wO3ZhciBNPTA7dmFyIE49MDt2YXIgTz0wO3ZhciBQPTA7dmFyIFE9MDt2YXIgUj0w
O3ZhciBTPTA7dmFyIFQ9MDt2YXIgVT1nbG9iYWwuTWF0aC5mbG9vcjt2YXIgVj1nbG9iYWwuTWF0
aC5hYnM7dmFyIFc9Z2xvYmFsLk1hdGguc3FydDt2YXIgWD1nbG9iYWwuTWF0aC5wb3c7dmFyIFk9
Z2xvYmFsLk1hdGguY29zO3ZhciBaPWdsb2JhbC5NYXRoLnNpbjt2YXIgXz1nbG9iYWwuTWF0aC50
YW47dmFyICQ9Z2xvYmFsLk1hdGguYWNvczt2YXIgYWE9Z2xvYmFsLk1hdGguYXNpbjt2YXIgYWI9
Z2xvYmFsLk1hdGguYXRhbjt2YXIgYWM9Z2xvYmFsLk1hdGguYXRhbjI7dmFyIGFkPWdsb2JhbC5N
YXRoLmV4cDt2YXIgYWU9Z2xvYmFsLk1hdGgubG9nO3ZhciBhZj1nbG9iYWwuTWF0aC5jZWlsO3Zh
ciBhZz1nbG9iYWwuTWF0aC5pbXVsO3ZhciBhaD1lbnYuYWJvcnQ7dmFyIGFpPWVudi5hc3NlcnQ7
dmFyIGFqPWVudi5hc21QcmludEludDt2YXIgYWs9ZW52LmFzbVByaW50RmxvYXQ7dmFyIGFsPWVu
di5taW47dmFyIGFtPWVudi5pbnZva2VfdmlpaWlpO3ZhciBhbj1lbnYuaW52b2tlX3ZpaWlpaWlp
O3ZhciBhbz1lbnYuaW52b2tlX3ZpO3ZhciBhcD1lbnYuaW52b2tlX3ZpaTt2YXIgYXE9ZW52Lmlu
dm9rZV9paWk7dmFyIGFyPWVudi5pbnZva2VfaWlpaWlpO3ZhciBhcz1lbnYuaW52b2tlX2lpO3Zh
ciBhdD1lbnYuaW52b2tlX2lpaWk7dmFyIGF1PWVudi5pbnZva2VfdmlpaWlpZjt2YXIgYXY9ZW52
Lmludm9rZV92aWlpO3ZhciBhdz1lbnYuaW52b2tlX3ZpaWlpaWlpaTt2YXIgYXg9ZW52Lmludm9r
ZV92O3ZhciBheT1lbnYuaW52b2tlX2lpaWlpaWlpaTt2YXIgYXo9ZW52Lmludm9rZV92aWlpaWlp
aWlpO3ZhciBhQT1lbnYuaW52b2tlX3ZpaWlpaWlmO3ZhciBhQj1lbnYuaW52b2tlX3ZpaWlpaWk7
dmFyIGFDPWVudi5pbnZva2VfaWlpaWk7dmFyIGFEPWVudi5pbnZva2VfdmlpaWk7dmFyIGFFPWVu
di5fbGx2bV9saWZldGltZV9lbmQ7dmFyIGFGPWVudi5fX3NjYW5TdHJpbmc7dmFyIGFHPWVudi5f
cHRocmVhZF9tdXRleF9sb2NrO3ZhciBhSD1lbnYuX19fY3hhX2VuZF9jYXRjaDt2YXIgYUk9ZW52
Ll9zdHJ0b3VsbDt2YXIgYUo9ZW52Ll9faXNGbG9hdDt2YXIgYUs9ZW52Ll9mZmx1c2g7dmFyIGFM
PWVudi5fX2lzTGVhcFllYXI7dmFyIGFNPWVudi5fZndyaXRlO3ZhciBhTj1lbnYuX3NlbmQ7dmFy
IGFPPWVudi5fbGx2bV91bXVsX3dpdGhfb3ZlcmZsb3dfaTMyO3ZhciBhUD1lbnYuX2lzc3BhY2U7
dmFyIGFRPWVudi5fcmVhZDt2YXIgYVI9ZW52Ll9fX2N4YV9ndWFyZF9hYm9ydDt2YXIgYVM9ZW52
Ll9uZXdsb2NhbGU7dmFyIGFUPWVudi5fX19neHhfcGVyc29uYWxpdHlfdjA7dmFyIGFVPWVudi5f
cHRocmVhZF9jb25kX3dhaXQ7dmFyIGFWPWVudi5fX19jeGFfcmV0aHJvdzt2YXIgYVc9ZW52Ll9f
X3Jlc3VtZUV4Y2VwdGlvbjt2YXIgYVg9ZW52Ll9sbHZtX3ZhX2VuZDt2YXIgYVk9ZW52Ll92c3Nj
YW5mO3ZhciBhWj1lbnYuX3NucHJpbnRmO3ZhciBhXz1lbnYuX2ZnZXRjO3ZhciBhJD1lbnYuX2F0
ZXhpdDt2YXIgYTA9ZW52Ll9fX2N4YV9mcmVlX2V4Y2VwdGlvbjt2YXIgYTE9ZW52Ll9fWjhjYXRj
bG9zZVA4X25sX2NhdGQ7dmFyIGEyPWVudi5fX19zZXRFcnJObzt2YXIgYTM9ZW52Ll9pc3hkaWdp
dDt2YXIgYTQ9ZW52Ll9leGl0O3ZhciBhNT1lbnYuX3NwcmludGY7dmFyIGE2PWVudi5fX19jdHlw
ZV9iX2xvYzt2YXIgYTc9ZW52Ll9mcmVlbG9jYWxlO3ZhciBhOD1lbnYuX19aN2NhdG9wZW5QS2Np
O3ZhciBhOT1lbnYuX2FzcHJpbnRmO3ZhciBiYT1lbnYuX19fY3hhX2lzX251bWJlcl90eXBlO3Zh
ciBiYj1lbnYuX19fY3hhX2RvZXNfaW5oZXJpdDt2YXIgYmM9ZW52Ll9fX2N4YV9ndWFyZF9hY3F1
aXJlO3ZhciBiZD1lbnYuX19fbG9jYWxlX21iX2N1cl9tYXg7dmFyIGJlPWVudi5fX19jeGFfYmVn
aW5fY2F0Y2g7dmFyIGJmPWVudi5fcmVjdjt2YXIgYmc9ZW52Ll9fcGFyc2VJbnQ2NDt2YXIgYmg9
ZW52Ll9fWlN0MTh1bmNhdWdodF9leGNlcHRpb252O3ZhciBiaT1lbnYuX19fY3hhX2NhbGxfdW5l
eHBlY3RlZDt2YXIgYmo9ZW52Ll9fZXhpdDt2YXIgYms9ZW52Ll9zdHJmdGltZTt2YXIgYmw9ZW52
Ll9fX2N4YV90aHJvdzt2YXIgYm09ZW52Ll9sbHZtX2VoX2V4Y2VwdGlvbjt2YXIgYm49ZW52Ll9w
cmVhZDt2YXIgYm89ZW52Ll9fYXJyYXlTdW07dmFyIGJwPWVudi5fbG9nO3ZhciBicT1lbnYuX19f
Y3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2g7dmFyIGJyPWVudi5fX2Zvcm1hdFN0cmluZzt2YXIgYnM9
ZW52Ll9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0O3ZhciBidD1lbnYuX19aU3Q5dGVybWluYXRldjt2
YXIgYnU9ZW52Ll9wdGhyZWFkX211dGV4X3VubG9jazt2YXIgYnY9ZW52Ll9zYnJrO3ZhciBidz1l
bnYuX19fZXJybm9fbG9jYXRpb247dmFyIGJ4PWVudi5fc3RyZXJyb3I7dmFyIGJ5PWVudi5fbGx2
bV9saWZldGltZV9zdGFydDt2YXIgYno9ZW52Ll9fX2N4YV9ndWFyZF9yZWxlYXNlO3ZhciBiQT1l
bnYuX3VuZ2V0Yzt2YXIgYkI9ZW52Ll91c2Vsb2NhbGU7dmFyIGJDPWVudi5fdnNucHJpbnRmO3Zh
ciBiRD1lbnYuX3NzY2FuZjt2YXIgYkU9ZW52Ll9zeXNjb25mO3ZhciBiRj1lbnYuX2ZyZWFkO3Zh
ciBiRz1lbnYuX2Fib3J0O3ZhciBiSD1lbnYuX2lzZGlnaXQ7dmFyIGJJPWVudi5fc3RydG9sbDt2
YXIgYko9ZW52Ll9fYWRkRGF5czt2YXIgYks9ZW52Ll9mbG9vcjt2YXIgYkw9ZW52Ll9fcmVhbGx5
TmVnYXRpdmU7dmFyIGJNPWVudi5fX1o3Y2F0Z2V0c1A4X25sX2NhdGRpaVBLYzt2YXIgYk49ZW52
Ll93cml0ZTt2YXIgYk89ZW52Ll9fX2N4YV9hbGxvY2F0ZV9leGNlcHRpb247dmFyIGJQPWVudi5f
X19jeGFfcHVyZV92aXJ0dWFsO3ZhciBiUT1lbnYuX3Zhc3ByaW50Zjt2YXIgYlI9ZW52Ll9fX2N0
eXBlX3RvdXBwZXJfbG9jO3ZhciBiUz1lbnYuX19fY3R5cGVfdG9sb3dlcl9sb2M7dmFyIGJUPWVu
di5fcHdyaXRlO3ZhciBiVT1lbnYuX3N0cmVycm9yX3I7dmFyIGJWPWVudi5fdGltZTsKLS8vIEVN
U0NSSVBURU5fU1RBUlRfRlVOQ1MKLWZ1bmN0aW9uIGNjKGEpe2E9YXwwO3ZhciBiPTA7Yj1pO2k9
aSthfDA7aT1pKzc+PjM8PDM7cmV0dXJuIGJ8MH1mdW5jdGlvbiBjZCgpe3JldHVybiBpfDB9ZnVu
Y3Rpb24gY2UoYSl7YT1hfDA7aT1hfWZ1bmN0aW9uIGNmKGEsYil7YT1hfDA7Yj1ifDA7aWYoKHh8
MCk9PTApe3g9YTt5PWJ9fWZ1bmN0aW9uIGNnKGIpe2I9YnwwO2Fba109YVtiXTthW2srMXwwXT1h
W2IrMXwwXTthW2srMnwwXT1hW2IrMnwwXTthW2srM3wwXT1hW2IrM3wwXX1mdW5jdGlvbiBjaChi
KXtiPWJ8MDthW2tdPWFbYl07YVtrKzF8MF09YVtiKzF8MF07YVtrKzJ8MF09YVtiKzJ8MF07YVtr
KzN8MF09YVtiKzN8MF07YVtrKzR8MF09YVtiKzR8MF07YVtrKzV8MF09YVtiKzV8MF07YVtrKzZ8
MF09YVtiKzZ8MF07YVtrKzd8MF09YVtiKzd8MF19ZnVuY3Rpb24gY2koYSl7YT1hfDA7Sz1hfWZ1
bmN0aW9uIGNqKGEpe2E9YXwwO0w9YX1mdW5jdGlvbiBjayhhKXthPWF8MDtNPWF9ZnVuY3Rpb24g
Y2woYSl7YT1hfDA7Tj1hfWZ1bmN0aW9uIGNtKGEpe2E9YXwwO089YX1mdW5jdGlvbiBjbihhKXth
PWF8MDtQPWF9ZnVuY3Rpb24gY28oYSl7YT1hfDA7UT1hfWZ1bmN0aW9uIGNwKGEpe2E9YXwwO1I9
YX1mdW5jdGlvbiBjcShhKXthPWF8MDtTPWF9ZnVuY3Rpb24gY3IoYSl7YT1hfDA7VD1hfWZ1bmN0
aW9uIGNzKCl7Y1txKzg+PjJdPTI1MDtjW3ErMTI+PjJdPTEyODtjW3ErMTY+PjJdPTYyO2NbcSsy
MD4+Ml09MTUwO2NbcSsyND4+Ml09ODtjW3ErMjg+PjJdPTEwO2NbcSszMj4+Ml09MjtjW3ErMzY+
PjJdPTI7Y1twKzg+PjJdPTI1MDtjW3ArMTI+PjJdPTI0NDtjW3ArMTY+PjJdPTYyO2NbcCsyMD4+
Ml09MTUwO2NbcCsyND4+Ml09ODtjW3ArMjg+PjJdPTI2O2NbcCszMj4+Ml09NDtjW3ArMzY+PjJd
PTg7Y1syMDM2XT1wKzg7Y1syMDM4XT1wKzg7Y1syMDQwXT1xKzg7Y1syMDQ0XT1xKzg7Y1syMDQ4
XT1xKzg7Y1syMDUyXT1xKzg7Y1syMDU2XT1xKzg7Y1syMDYwXT1wKzg7Y1syMDk0XT1xKzg7Y1sy
MDk4XT1xKzg7Y1syMTYyXT1xKzg7Y1syMTY2XT1xKzg7Y1syMTg2XT1wKzg7Y1syMTg4XT1xKzg7
Y1syMjI0XT1xKzg7Y1syMjI4XT1xKzg7Y1syMjY0XT1xKzg7Y1syMjY4XT1xKzg7Y1syMjg4XT1w
Kzg7Y1syMjkwXT1wKzg7Y1syMjkyXT1xKzg7Y1syMjk2XT1xKzg7Y1syMzAwXT1xKzg7Y1syMzA0
XT1wKzg7Y1syMzA2XT1wKzg7Y1syMzA4XT1wKzg7Y1syMzEwXT1wKzg7Y1syMzEyXT1wKzg7Y1sy
MzE0XT1wKzg7Y1syMzE2XT1wKzg7Y1syMzQyXT1xKzg7Y1syMzQ2XT1wKzg7Y1syMzQ4XT1xKzg7
Y1syMzUyXT1xKzg7Y1syMzU2XT1xKzg7Y1syMzYwXT1wKzg7Y1syMzYyXT1wKzg7Y1syMzY0XT1w
Kzg7Y1syMzY2XT1wKzg7Y1syNDAwXT1wKzg7Y1syNDAyXT1wKzg7Y1syNDA0XT1wKzg7Y1syNDA2
XT1xKzg7Y1syNDEwXT1xKzg7Y1syNDE0XT1xKzg7Y1syNDE4XT1xKzg7Y1syNDIyXT1xKzg7Y1sy
NDI2XT1xKzh9ZnVuY3Rpb24gY3QoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1jW2E+PjJdfDA7aWYo
KGJ8MCk9PTApe3JldHVybn1kPWErNHwwO2E9Y1tkPj4yXXwwO2lmKChifDApIT0oYXwwKSl7Y1tk
Pj4yXT1hKyh+KChhLTgrKC1ifDApfDApPj4+Myk8PDMpfWtTKGIpO3JldHVybn1mdW5jdGlvbiBj
dShhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MC4wLHc9MCx4PTAseT0wLjAsej0w
LjA7ZD1pO2k9aSsyNHwwO2U9ZHwwO2Y9ZCs4fDA7Zz1mfDA7Y1tnPj4yXT0wO2o9Zis0fDA7Y1tq
Pj4yXT0wO2s9Zis4fDA7Y1trPj4yXT0wO2w9Yi1hfDA7bT1sPj4zO2Rve2lmKChtfDApPT0wKXtu
PTA7bz0wfWVsc2V7aWYobT4+PjA+NTM2ODcwOTExKXtpcihmKX1wPWtPKGwpfDA7Y1tqPj4yXT1w
O2NbZz4+Ml09cDtjW2s+PjJdPXArKG08PDMpO2lmKChhfDApPT0oYnwwKSl7bj1wO289cDticmVh
a31lbHNle3E9YTtyPXB9ZG97aWYoKHJ8MCk9PTApe3M9MH1lbHNle2hbcj4+M109K2hbcT4+M107
cz1jW2o+PjJdfDB9cj1zKzh8MDtjW2o+PjJdPXI7cT1xKzh8MDt9d2hpbGUoKHF8MCkhPShifDAp
KTtuPWNbZz4+Ml18MDtvPXJ9fXdoaWxlKDApO2NVKG4sbyxlKTtlPWNbZz4+Ml18MDtvPWNbaj4+
Ml18MDtMMjM6ZG97aWYoKGV8MCk9PShvfDApKXt0PWV9ZWxzZXtuPWU7d2hpbGUoMSl7dT1uKzh8
MDtpZigodXwwKT09KG98MCkpe3Q9ZTticmVhayBMMjN9dj0raFtuPj4zXTtpZih2PT0raFt1Pj4z
XSl7YnJlYWt9ZWxzZXtuPXV9fWlmKChufDApPT0ob3wwKSl7dD1lO2JyZWFrfWVsc2V7dz11O3g9
bjt5PXZ9TDI4OndoaWxlKDEpe3I9dztkb3tyPXIrOHwwO2lmKChyfDApPT0ob3wwKSl7YnJlYWsg
TDI4fXo9K2hbcj4+M107fXdoaWxlKHk9PXopO2I9eCs4fDA7aFtiPj4zXT16O3c9cjt4PWI7eT16
fXQ9Y1tnPj4yXXwwfX13aGlsZSgwKTtpZigodHwwKT09MCl7aT1kO3JldHVybn1nPWNbaj4+Ml18
MDtpZigodHwwKSE9KGd8MCkpe2Nbaj4+Ml09ZysofigoZy04KygtdHwwKXwwKT4+PjMpPDwzKX1r
Uyh0KTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGN2KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIg
ZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MC4wLHg9MC4wLHk9MCx6PTAuMDtkPWk7aT1pKzI0fDA7ZT1kfDA7Zj1kKzh8MDtn
PWZ8MDtjW2c+PjJdPTA7aj1mKzR8MDtjW2o+PjJdPTA7az1mKzh8MDtjW2s+PjJdPTA7bD1iLWF8
MDttPWw+PjM7ZG97aWYoKG18MCk9PTApe249MDtvPTB9ZWxzZXtpZihtPj4+MD41MzY4NzA5MTEp
e2lyKGYpfXA9a08obCl8MDtjW2o+PjJdPXA7Y1tnPj4yXT1wO2Nbaz4+Ml09cCsobTw8Myk7aWYo
KGF8MCk9PShifDApKXtuPXA7bz1wO2JyZWFrfWVsc2V7cT1hO3I9cH1kb3tpZigocnwwKT09MCl7
cz0wfWVsc2V7aFtyPj4zXT0raFtxPj4zXTtzPWNbaj4+Ml18MH1yPXMrOHwwO2Nbaj4+Ml09cjtx
PXErOHwwO313aGlsZSgocXwwKSE9KGJ8MCkpO249Y1tnPj4yXXwwO289cn19d2hpbGUoMCk7Y1Uo
bixvLGUpO2U9Y1tnPj4yXXwwO289Y1tqPj4yXXwwO0w1ODpkb3tpZigoZXwwKT09KG98MCkpe3Q9
ZTt1PTYyfWVsc2V7bj1lO3doaWxlKDEpe3I9bis4fDA7aWYoKHJ8MCk9PShvfDApKXt2PWU7YnJl
YWsgTDU4fWlmKCtoW24+PjNdPT0raFtyPj4zXSl7dD1uO3U9NjI7YnJlYWt9ZWxzZXtuPXJ9fX19
d2hpbGUoMCk7ZG97aWYoKHV8MCk9PTYyKXtpZigodHwwKT09KG98MCkpe3Y9ZTticmVha31uPXQr
MTZ8MDtpZigobnwwKT09KG98MCkpe3Y9ZTticmVha31yPW47bj10O3c9K2hbdD4+M107d2hpbGUo
MSl7eD0raFtyPj4zXTtpZih3PT14KXt5PW47ej13fWVsc2V7Yj1uKzh8MDtoW2I+PjNdPXg7eT1i
O3o9eH1iPXIrOHwwO2lmKChifDApPT0ob3wwKSl7YnJlYWt9ZWxzZXtyPWI7bj15O3c9en19dj1j
W2c+PjJdfDB9fXdoaWxlKDApO2lmKCh2fDApPT0wKXtpPWQ7cmV0dXJufWc9Y1tqPj4yXXwwO2lm
KCh2fDApIT0oZ3wwKSl7Y1tqPj4yXT1nKyh+KChnLTgrKC12fDApfDApPj4+Myk8PDMpfWtTKHYp
O2k9ZDtyZXR1cm59ZnVuY3Rpb24gY3coYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9
MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0w
LFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTA7ZD1pO2k9aSs4fDA7ZT1kfDA7Zj1lO2c9aTtpPWkr
OHwwO2o9ZztrPWk7aT1pKzF8MDtpPWkrNz4+Mzw8MztsPWk7aT1pKzh8MDttPWk7aT1pKzh8MDtu
PWk7aT1pKzF8MDtpPWkrNz4+Mzw8MztvPWk7aT1pKzI0fDA7cD1pO2k9aSs4fDA7cT1pO2k9aSs4
fDA7cj1iO3M9ci1hPj4zO2hbcD4+M109MC4wO3Q9b3wwO3U9bys0fDA7dj1vKzh8MDtrJChvfDAs
MCwyNCk7ZG97aWYoKHN8MCk9PTApe3c9MDt4PW8rMTZ8MDt5PTA7ej0wO0E9MDtCPTB9ZWxzZXtj
TyhvLHMscCk7Qz1jW3U+PjJdfDA7RD1vKzE2fDA7RT1jW0Q+PjJdfDA7Rj1jW3Y+PjJdfDA7Rz1D
KyhFPj4+OTw8Mil8MDtpZigoRnwwKT09KEN8MCkpe3c9MDt4PUQ7eT1GO3o9RTtBPUM7Qj1HO2Jy
ZWFrfXc9KGNbRz4+Ml18MCkrKChFJjUxMSk8PDMpfDA7eD1EO3k9Rjt6PUU7QT1DO0I9R319d2hp
bGUoMCk7aWYoKGF8MCk9PShifDApKXtIPUE7ST16O0o9eX1lbHNle3k9YTthPXc7dz1CO3doaWxl
KDEpe0I9YTt6PShjW3c+PjJdfDApKzQwOTYtQj4+MztBPXk7cD1yLUE+PjM7aWYoKHB8MCk+KHp8
MCkpe0s9eSsoejw8Myl8MDtMPXp9ZWxzZXtLPWI7TD1wfWtfKGF8MCx5fDAsSy1BfDApO2Rve2lm
KChMfDApPT0wKXtNPWE7Tj13fWVsc2V7QT0oQi0oY1t3Pj4yXXwwKT4+MykrTHwwO2lmKChBfDAp
PjApe3A9dysoKChBfDApLzUxMnwwKTw8Mil8MDtNPShjW3A+PjJdfDApKygoKEF8MCklNTEyfDAp
PDwzKXwwO049cDticmVha31lbHNle3A9NTExLUF8MDtBPXcrKCgocHwwKS8tNTEyfDApPDwyKXww
O009KGNbQT4+Ml18MCkrKDUxMS0oKHB8MCklNTEyfDApPDwzKXwwO049QTticmVha319fXdoaWxl
KDApO2lmKChLfDApPT0oYnwwKSl7YnJlYWt9ZWxzZXt5PUs7YT1NO3c9Tn19SD1jW3U+PjJdfDA7
ST1jW3g+PjJdfDA7Sj1jW3Y+PjJdfDB9Tj1IKyhJPj4+OTw8Mil8MDtpZigoSnwwKT09KEh8MCkp
e0o9bysyMHwwO089MDtQPTA7UT0wO1I9MDtTPUo7VD1IKygoSSsoY1tKPj4yXXwwKXwwKT4+Pjk8
PDIpfDB9ZWxzZXtKPW8rMjB8MDtvPUkrKGNbSj4+Ml18MCl8MDt3PUgrKG8+Pj45PDwyKXwwO089
KGNbdz4+Ml18MCkrKChvJjUxMSk8PDMpfDA7UD0wO1E9KGNbTj4+Ml18MCkrKChJJjUxMSk8PDMp
fDA7Uj0wO1M9SjtUPXd9Y1tsPj4yXT1SfE47Y1tsKzQ+PjJdPVE7Y1ttPj4yXT1QfFQ7Y1ttKzQ+
PjJdPU87Y0sobCxtLG4pO249Y1t1Pj4yXXwwO209Y1t4Pj4yXXwwO2w9bisobT4+Pjk8PDIpfDA7
aWYoKGNbdj4+Ml18MCk9PShufDApKXtVPTA7Vj0wO1c9MDtYPTA7WT1uKygobSsoY1tTPj4yXXww
KXwwKT4+Pjk8PDIpfDB9ZWxzZXtPPW0rKGNbUz4+Ml18MCl8MDtUPW4rKE8+Pj45PDwyKXwwO1U9
KGNbVD4+Ml18MCkrKChPJjUxMSk8PDMpfDA7Vj0wO1c9KGNbbD4+Ml18MCkrKChtJjUxMSk8PDMp
fDA7WD0wO1k9VH1jW2U+PjJdPVh8bDtjW2UrND4+Ml09VztjW2c+PjJdPVZ8WTtjW2crND4+Ml09
VTtjSShxLGYsaixrKTtrPWNbdT4+Ml18MDtqPWNbeD4+Ml18MDtmPWsrKGo+Pj45PDwyKXwwO3E9
Y1t2Pj4yXXwwO2lmKChxfDApPT0oa3wwKSl7Wj0wO189MH1lbHNle1U9KGNbUz4+Ml18MCkranww
O1o9KGNbaysoVT4+Pjk8PDIpPj4yXXwwKSsoKFUmNTExKTw8Myl8MDtfPShjW2Y+PjJdfDApKygo
aiY1MTEpPDwzKXwwfWo9ZjtmPV87TDExMjp3aGlsZSgxKXtfPWY7ZG97aWYoKF98MCk9PShafDAp
KXticmVhayBMMTEyfV89Xys4fDA7fXdoaWxlKChfLShjW2o+PjJdfDApfDApIT00MDk2KTtfPWor
NHwwO2o9XztmPWNbXz4+Ml18MH1jW1M+PjJdPTA7Uz1xLWs+PjI7aWYoUz4+PjA+Mil7Zj1rO3do
aWxlKDEpe2tTKGNbZj4+Ml18MCk7aj0oY1t1Pj4yXXwwKSs0fDA7Y1t1Pj4yXT1qO1o9Y1t2Pj4y
XXwwO189Wi1qPj4yO2lmKF8+Pj4wPjIpe2Y9an1lbHNleyQ9XzthYT1qO2FiPVo7YnJlYWt9fX1l
bHNleyQ9UzthYT1rO2FiPXF9c3dpdGNoKCR8MCl7Y2FzZSAxOntjW3g+PjJdPTI1NjticmVha307
Y2FzZSAyOntjW3g+PjJdPTUxMjticmVha307ZGVmYXVsdDp7fX1kb3tpZigoYWF8MCkhPShhYnww
KSl7eD1hYTtkb3trUyhjW3g+PjJdfDApO3g9eCs0fDA7fXdoaWxlKCh4fDApIT0oYWJ8MCkpO3g9
Y1t1Pj4yXXwwOyQ9Y1t2Pj4yXXwwO2lmKCh4fDApPT0oJHwwKSl7YnJlYWt9Y1t2Pj4yXT0kKyh+
KCgkLTQrKC14fDApfDApPj4+Mik8PDIpfX13aGlsZSgwKTt2PWNbdD4+Ml18MDtpZigodnwwKT09
MCl7aT1kO3JldHVybn1rUyh2KTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGN4KGEsYixkKXthPWF8MDti
PWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAuMCx5PTAsej0wO2Q9aTtpPWkrNDh8MDtlPWR8
MDtmPWQrOHwwO2c9ZCsxNnwwO2o9ZCsyNHwwO2s9ZCszMnwwO2w9a3wwO209aztjW2w+PjJdPW07
bj1rKzR8MDtjW24+PjJdPW07bz1rKzh8MDtjW28+PjJdPTA7aWYoKGF8MCk9PShifDApKXtwPW07
cT0wfWVsc2V7az1hO2E9bTtyPTA7d2hpbGUoMSl7cz1rTygxNil8MDt0PXM7dT1zKzh8MDtpZigo
dXwwKSE9MCl7aFt1Pj4zXT0raFtrPj4zXX1jW2ErND4+Ml09dDtjW3M+PjJdPWNbbD4+Ml07Y1ts
Pj4yXT10O2Nbcys0Pj4yXT1tO3Y9KGNbbz4+Ml18MCkrMXwwO2Nbbz4+Ml09djtzPWsrOHwwO2lm
KChzfDApPT0oYnwwKSl7YnJlYWt9ZWxzZXtrPXM7YT10O3I9dn19cD1jW24+PjJdfDA7cT12fWNb
ZT4+Ml09cDtjW2Y+PjJdPW07Y0ooZyxlLGYscSxqKTtqPWNbbj4+Ml18MDtpZigoanwwKSE9KG18
MCkpe3E9ajt3aGlsZSgxKXtqPWNbcSs0Pj4yXXwwO0wxNTA6ZG97aWYoKGp8MCk9PShtfDApKXt3
PW19ZWxzZXt4PStoW3ErOD4+M107Zj1qO3doaWxlKDEpe2lmKHghPStoW2YrOD4+M10pe3c9Zjti
cmVhayBMMTUwfWU9Y1tmKzQ+PjJdfDA7aWYoKGV8MCk9PShtfDApKXt3PW07YnJlYWt9ZWxzZXtm
PWV9fX19d2hpbGUoMCk7aWYoKGp8MCk9PSh3fDApKXt5PWp9ZWxzZXtmPShjW3c+PjJdfDApKzR8
MDtlPWp8MDtjWyhjW2U+PjJdfDApKzQ+PjJdPWNbZj4+Ml07Y1tjW2Y+PjJdPj4yXT1jW2U+PjJd
O2U9ajt3aGlsZSgxKXtmPWNbZSs0Pj4yXXwwO2Nbbz4+Ml09KGNbbz4+Ml18MCktMTtrUyhlKTtp
ZigoZnwwKT09KHd8MCkpe3k9dzticmVha31lbHNle2U9Zn19fWlmKCh5fDApPT0obXwwKSl7YnJl
YWt9ZWxzZXtxPXl9fX1pZigoY1tvPj4yXXwwKT09MCl7aT1kO3JldHVybn15PWNbbj4+Ml18MDtu
PShjW2w+PjJdfDApKzR8MDtsPXl8MDtjWyhjW2w+PjJdfDApKzQ+PjJdPWNbbj4+Ml07Y1tjW24+
PjJdPj4yXT1jW2w+PjJdO2Nbbz4+Ml09MDtpZigoeXwwKT09KG18MCkpe2k9ZDtyZXR1cm59ZWxz
ZXt6PXl9d2hpbGUoMSl7eT1jW3orND4+Ml18MDtrUyh6KTtpZigoeXwwKT09KG18MCkpe2JyZWFr
fWVsc2V7ej15fX1pPWQ7cmV0dXJufWZ1bmN0aW9uIGN5KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MDtkPWk7aT1pKzMyfDA7ZT1kfDA7Zj1kKzh8MDtnPWQrMTZ8MDtqPWd8MDtrPWcrNHwwO2Nb
az4+Ml09MDtsPWcrOHwwO2NbbD4+Ml09MDttPWs7az1nfDA7Y1trPj4yXT1tO2lmKChhfDApPT0o
YnwwKSl7bj0wO2NFKGosbik7aT1kO3JldHVybn1vPWZ8MDtwPWcrNHwwO2c9YTtkb3tjW28+PjJd
PW07YT1jSChqLGYsZSxnKXwwO2lmKChjW2E+PjJdfDApPT0wKXtxPWtPKDI0KXwwO3I9cSsxNnww
O2lmKChyfDApIT0wKXtoW3I+PjNdPStoW2c+PjNdfXI9Y1tlPj4yXXwwO3M9cTtjW3E+PjJdPTA7
Y1txKzQ+PjJdPTA7Y1txKzg+PjJdPXI7Y1thPj4yXT1zO3I9Y1tjW2s+PjJdPj4yXXwwO2lmKChy
fDApPT0wKXt0PXN9ZWxzZXtjW2s+PjJdPXI7dD1jW2E+PjJdfDB9Y0coY1twPj4yXXwwLHQpO2Nb
bD4+Ml09KGNbbD4+Ml18MCkrMX1nPWcrOHwwO313aGlsZSgoZ3wwKSE9KGJ8MCkpO249Y1twPj4y
XXwwO2NFKGosbik7aT1kO3JldHVybn1mdW5jdGlvbiBjeihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1k
fDA7dmFyIGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
O2Q9aTtpPWkrMzJ8MDtlPWR8MDtmPWQrOHwwO2c9ZCsxNnwwO2o9Z3wwO2s9Zys0fDA7Y1trPj4y
XT0wO2w9Zys4fDA7Y1tsPj4yXT0wO209aztuPWd8MDtjW24+PjJdPW07ZG97aWYoKGF8MCkhPShi
fDApKXtvPWZ8MDtwPWcrNHwwO3E9YTtkb3tjW28+PjJdPW07cj1jQyhqLGYsZSxxKXwwO3M9a08o
MjQpfDA7dD1zKzE2fDA7aWYoKHR8MCkhPTApe2hbdD4+M109K2hbcT4+M119dD1jW2U+PjJdfDA7
dT1zO2Nbcz4+Ml09MDtjW3MrND4+Ml09MDtjW3MrOD4+Ml09dDtjW3I+PjJdPXU7dD1jW2Nbbj4+
Ml0+PjJdfDA7aWYoKHR8MCk9PTApe3Y9dX1lbHNle2Nbbj4+Ml09dDt2PWNbcj4+Ml18MH1jRyhj
W3A+PjJdfDAsdik7Y1tsPj4yXT0oY1tsPj4yXXwwKSsxO3E9cSs4fDA7fXdoaWxlKChxfDApIT0o
YnwwKSk7cT1jW24+PjJdfDA7aWYoKHF8MCk9PShtfDApKXticmVha31wPWs7bz1nKzR8MDtyPXE7
TDIwMjp3aGlsZSgxKXtxPXJ8MDt0PXIrNHwwO3U9cisxNnwwO3doaWxlKDEpe3c9Y1t0Pj4yXXww
O2lmKCh3fDApPT0wKXtzPXE7d2hpbGUoMSl7eD1jW3MrOD4+Ml18MDtpZigoc3wwKT09KGNbeD4+
Ml18MCkpe3k9eDticmVha31lbHNle3M9eH19fWVsc2V7cz13O3doaWxlKDEpe3g9Y1tzPj4yXXww
O2lmKCh4fDApPT0wKXt5PXM7YnJlYWt9ZWxzZXtzPXh9fX1zPXk7aWYoKHl8MCk9PShwfDApKXt6
PW87QT0yMTM7YnJlYWsgTDIwMn1pZigraFt1Pj4zXSE9K2hbeSsxNj4+M10pe2JyZWFrfXg9Y1t5
KzQ+PjJdfDA7aWYoKHh8MCk9PTApe0I9eTt3aGlsZSgxKXtDPWNbQis4Pj4yXXwwO2lmKChCfDAp
PT0oY1tDPj4yXXwwKSl7RD1DO2JyZWFrfWVsc2V7Qj1DfX19ZWxzZXtCPXg7d2hpbGUoMSl7Qz1j
W0I+PjJdfDA7aWYoKEN8MCk9PTApe0Q9QjticmVha31lbHNle0I9Q319fWlmKChjW24+PjJdfDAp
PT0oc3wwKSl7Y1tuPj4yXT1EfWNbbD4+Ml09KGNbbD4+Ml18MCktMTtjQihjW28+PjJdfDAseSk7
a1MoeSl9aWYoKHd8MCk9PTApe3U9cTt3aGlsZSgxKXt0PWNbdSs4Pj4yXXwwO2lmKCh1fDApPT0o
Y1t0Pj4yXXwwKSl7RT10O2JyZWFrfWVsc2V7dT10fX19ZWxzZXt1PXc7d2hpbGUoMSl7cT1jW3U+
PjJdfDA7aWYoKHF8MCk9PTApe0U9dTticmVha31lbHNle3U9cX19fWlmKChFfDApPT0ocHwwKSl7
ej1vO0E9MjE0O2JyZWFrfWVsc2V7cj1FfX1pZigoQXwwKT09MjE0KXtGPWNbej4+Ml18MDtHPUY7
Y0UoaixHKTtpPWQ7cmV0dXJufWVsc2UgaWYoKEF8MCk9PTIxMyl7Rj1jW3o+PjJdfDA7Rz1GO2NF
KGosRyk7aT1kO3JldHVybn19fXdoaWxlKDApO3o9Zys0fDA7Rj1jW3o+PjJdfDA7Rz1GO2NFKGos
Ryk7aT1kO3JldHVybn1mdW5jdGlvbiBjQShhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLjAs
Zz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAuMCx4PTAseT0wLHo9MC4wLEE9MCxCPTAuMCxDPTAsRD0wLEU9MCxGPTAuMCxHPTAsSD0wLEk9
MC4wLEo9MC4wLEw9MCxNPTAsTj0wLE89MCxQPTA7Yj1pO2k9aSsyNHwwO2Q9YnwwO2U9Yis4fDA7
Zj0rKGF8MCk7Zz1+fitVKCsoMTk5MzE1NjguNTY5MzI0MTczLyhmKigrYWUoK2YpLy42OTMxNDcx
ODA1NTk5NDUzKSkpKTtqPWE8PDE7az1jWzI0NDZdfDA7bD1jWzI0NDddfDA7aWYoKGt8MCkhPShs
fDApKXtjWzI0NDddPWwrKH4oKGwtOCsoLWt8MCl8MCk+Pj4zKTw8Myl9az1lfDA7Y1trPj4yXT0w
O2w9ZSs0fDA7Y1tsPj4yXT0wO209ZSs4fDA7Y1ttPj4yXT0wO2lmKChqfDApPT0wKXtuPTB9ZWxz
ZXtpZihqPj4+MD41MzY4NzA5MTEpe2lyKGUpfWU9a08oYTw8NCl8MDtjW2w+PjJdPWU7Y1trPj4y
XT1lO2NbbT4+Ml09ZSsoajw8Myk7bT1qO289ZTtkb3tpZigob3wwKT09MCl7cD0wfWVsc2V7aFtv
Pj4zXT0wLjA7cD1jW2w+PjJdfDB9bz1wKzh8MDtjW2w+PjJdPW87bT1tLTF8MDt9d2hpbGUoKG18
MCkhPTApO249Y1trPj4yXXwwfW09bisoajw8Myl8MDtvPW4rKGE8PDMpfDA7aWYoKGF8MCkhPTAp
e3A9bjtmPTAuMDt3aGlsZSgxKXtlPXArOHwwO2hbcD4+M109ZjtpZigoZXwwKT09KG98MCkpe2Jy
ZWFrfWVsc2V7cD1lO2Y9ZisxLjB9fX1pZigoanwwKSE9KGF8MCkpe2o9bztmPTAuMDt3aGlsZSgx
KXtvPWorOHwwO2hbaj4+M109ZjtpZigob3wwKT09KG18MCkpe2JyZWFrfWVsc2V7aj1vO2Y9Zisx
LjB9fX1jRihuLG0pO2lmKChnfDApPjApe2o9YTw8NDthPWo+PjM7bz1hTyhhfDAsOCl8MDtwPW47
aWYoSyl7ZT1nO3doaWxlKDEpe3E9ZS0xfDA7cj1rUCgtMSl8MDtzPXI7a1kocnwwLHB8MCxqKXww
O3Q9cysoYTw8Myl8MDtjVShzLHQsZCk7TDI2ODpkb3tpZigoc3wwKSE9KHR8MCkpe3U9czt3aGls
ZSgxKXt2PXUrOHwwO2lmKCh2fDApPT0odHwwKSl7YnJlYWsgTDI2OH13PStoW3U+PjNdO2lmKHc9
PStoW3Y+PjNdKXticmVha31lbHNle3U9dn19aWYoKHV8MCk9PSh0fDApKXticmVha31lbHNle3g9
djt5PXU7ej13fXdoaWxlKDEpe0E9eDtkb3tBPUErOHwwO2lmKChBfDApPT0odHwwKSl7YnJlYWsg
TDI2OH1CPStoW0E+PjNdO313aGlsZSh6PT1CKTtDPXkrOHwwO2hbQz4+M109Qjt4PUE7eT1DO3o9
Qn19fXdoaWxlKDApO2lmKChyfDApIT0wKXtrVChyKX1pZigocXwwKT4wKXtlPXF9ZWxzZXtEPWc7
YnJlYWt9fX1lbHNle2U9Zzt3aGlsZSgxKXt5PWUtMXwwO3g9a1Aobyl8MDt2PXg7a1koeHwwLHB8
MCxqKXwwO3Q9disoYTw8Myl8MDtjVSh2LHQsZCk7TDI4Nzpkb3tpZigodnwwKSE9KHR8MCkpe3M9
djt3aGlsZSgxKXtFPXMrOHwwO2lmKChFfDApPT0odHwwKSl7YnJlYWsgTDI4N31GPStoW3M+PjNd
O2lmKEY9PStoW0U+PjNdKXticmVha31lbHNle3M9RX19aWYoKHN8MCk9PSh0fDApKXticmVha31l
bHNle0c9RTtIPXM7ST1GfXdoaWxlKDEpe3U9Rztkb3t1PXUrOHwwO2lmKCh1fDApPT0odHwwKSl7
YnJlYWsgTDI4N31KPStoW3U+PjNdO313aGlsZShJPT1KKTtBPUgrOHwwO2hbQT4+M109SjtHPXU7
SD1BO0k9Sn19fXdoaWxlKDApO2lmKCh4fDApIT0wKXtrVCh4KX1pZigoeXwwKT4wKXtlPXl9ZWxz
ZXtEPWc7YnJlYWt9fX13aGlsZSgxKXtlPUQtMXwwO2N1KG4sbSxlKTtpZigoZXwwKT4wKXtEPWV9
ZWxzZXtMPWc7YnJlYWt9fXdoaWxlKDEpe0Q9TC0xfDA7Y3YobixtLEQpO2lmKChEfDApPjApe0w9
RH1lbHNle009ZzticmVha319d2hpbGUoMSl7TD1NLTF8MDtjdyhuLG0sTCk7aWYoKEx8MCk+MCl7
TT1MfWVsc2V7Tj1nO2JyZWFrfX13aGlsZSgxKXtNPU4tMXwwO2N4KG4sbSxNKTtpZigoTXwwKT4w
KXtOPU19ZWxzZXtPPWc7YnJlYWt9fXdoaWxlKDEpe049Ty0xfDA7Y3kobixtLE4pO2lmKChOfDAp
PjApe089Tn1lbHNle1A9ZzticmVha319ZG97UD1QLTF8MDtjeihuLG0sUCk7fXdoaWxlKChQfDAp
PjApfVA9Y1trPj4yXXwwO2lmKChQfDApPT0wKXtpPWI7cmV0dXJufWs9Y1tsPj4yXXwwO2lmKChQ
fDApIT0oa3wwKSl7Y1tsPj4yXT1rKyh+KChrLTgrKC1QfDApfDApPj4+Myk8PDMpfWtTKFApO2k9
YjtyZXR1cm59ZnVuY3Rpb24gY0IoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0w
LGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtl
PWR8MDtmPWNbZT4+Ml18MDtkb3tpZigoZnwwKT09MCl7Zz1kO2g9MzAxfWVsc2V7aT1jW2QrND4+
Ml18MDtpZigoaXwwKT09MCl7aj1mO2s9ZDtsPWR8MDtoPTMwMzticmVha31lbHNle209aTt3aGls
ZSgxKXtpPWNbbT4+Ml18MDtpZigoaXwwKT09MCl7Zz1tO2g9MzAxO2JyZWFrfWVsc2V7bT1pfX19
fX13aGlsZSgwKTtkb3tpZigoaHwwKT09MzAxKXtmPWd8MDttPWNbZys0Pj4yXXwwO2lmKChtfDAp
IT0wKXtqPW07az1nO2w9ZjtoPTMwMzticmVha31uPTA7bz0wO3A9Zys4fDA7cT1nO3I9Zn19d2hp
bGUoMCk7aWYoKGh8MCk9PTMwMyl7Zz1rKzh8MDtjW2orOD4+Ml09Y1tnPj4yXTtuPWo7bz0xO3A9
ZztxPWs7cj1sfWw9Y1twPj4yXXwwO2s9bHwwO2Rve2lmKChxfDApPT0oY1trPj4yXXwwKSl7Y1tr
Pj4yXT1uO2lmKChxfDApPT0oYnwwKSl7cz1uO3Q9MDticmVha31zPWI7dD1jWyhjW3A+PjJdfDAp
KzQ+PjJdfDB9ZWxzZXtjW2wrND4+Ml09bjtzPWI7dD1jW2NbcD4+Ml0+PjJdfDB9fXdoaWxlKDAp
O2I9cSsxMnwwO2w9KGFbYl0mMSk9PTA7aWYoKHF8MCk9PShkfDApKXt1PXN9ZWxzZXtrPWQrOHww
O2c9Y1trPj4yXXwwO2NbcD4+Ml09ZztpZigoY1tjW2s+PjJdPj4yXXwwKT09KGR8MCkpe2NbZz4+
Ml09cX1lbHNle2NbZys0Pj4yXT1xfWc9Y1tlPj4yXXwwO2Nbcj4+Ml09ZztjW2crOD4+Ml09cTtn
PWNbZCs0Pj4yXXwwO2NbcSs0Pj4yXT1nO2lmKChnfDApIT0wKXtjW2crOD4+Ml09cX1hW2JdPWFb
ZCsxMnwwXSYxO3U9KHN8MCk9PShkfDApP3E6c31pZihsfCh1fDApPT0wKXtyZXR1cm59aWYobyl7
YVtuKzEyfDBdPTE7cmV0dXJufWVsc2V7dj11O3c9dH13aGlsZSgxKXt0PXcrOHwwO3U9Y1t0Pj4y
XXwwO249dysxMnwwO289KGFbbl0mMSkhPTA7aWYoKHd8MCk9PShjW3U+PjJdfDApKXtpZihvKXt4
PXY7eT13fWVsc2V7YVtuXT0xO2FbdSsxMnwwXT0wO2w9Y1t0Pj4yXXwwO3M9bHwwO3E9Y1tzPj4y
XXwwO2Q9cSs0fDA7Yj1jW2Q+PjJdfDA7Y1tzPj4yXT1iO2lmKChifDApIT0wKXtjW2IrOD4+Ml09
bH1iPWwrOHwwO2NbcSs4Pj4yXT1jW2I+PjJdO3M9Y1tiPj4yXXwwO2c9c3wwO2lmKChjW2c+PjJd
fDApPT0obHwwKSl7Y1tnPj4yXT1xfWVsc2V7Y1tzKzQ+PjJdPXF9Y1tkPj4yXT1sO2NbYj4+Ml09
cTtxPWNbdys0Pj4yXXwwO3g9KHZ8MCk9PShxfDApP3c6djt5PWNbcT4+Ml18MH16PWNbeT4+Ml18
MDtBPSh6fDApPT0wO2lmKCFBKXtpZigoYVt6KzEyfDBdJjEpPT0wKXtoPTM2NTticmVha319cT1j
W3krND4+Ml18MDtpZigocXwwKSE9MCl7aWYoKGFbcSsxMnwwXSYxKT09MCl7aD0zNjQ7YnJlYWt9
fWFbeSsxMnwwXT0wO3E9Y1t5Kzg+PjJdfDA7Qj1xKzEyfDA7aWYoKGFbQl0mMSk9PTB8KHF8MCk9
PSh4fDApKXtoPTM2MTticmVha31iPWNbcSs4Pj4yXXwwO2w9Y1tiPj4yXXwwO2lmKChxfDApIT0o
bHwwKSl7dj14O3c9bDtjb250aW51ZX12PXg7dz1jW2IrND4+Ml18MDtjb250aW51ZX1pZihvKXtD
PXY7RD13fWVsc2V7YVtuXT0xO2FbdSsxMnwwXT0wO3U9Y1t0Pj4yXXwwO3Q9dSs0fDA7bj1jW3Q+
PjJdfDA7bz1ufDA7Yj1jW28+PjJdfDA7Y1t0Pj4yXT1iO2lmKChifDApIT0wKXtjW2IrOD4+Ml09
dX1iPXUrOHwwO2Nbbis4Pj4yXT1jW2I+PjJdO3Q9Y1tiPj4yXXwwO2w9dHwwO2lmKChjW2w+PjJd
fDApPT0odXwwKSl7Y1tsPj4yXT1ufWVsc2V7Y1t0KzQ+PjJdPW59Y1tvPj4yXT11O2NbYj4+Ml09
bjtuPWNbdz4+Ml18MDtDPSh2fDApPT0obnwwKT93OnY7RD1jW24rND4+Ml18MH1FPUR8MDtGPWNb
RT4+Ml18MDtpZigoRnwwKSE9MCl7aWYoKGFbRisxMnwwXSYxKT09MCl7aD0zMzU7YnJlYWt9fW49
Y1tEKzQ+PjJdfDA7aWYoKG58MCkhPTApe2lmKChhW24rMTJ8MF0mMSk9PTApe0c9bjtoPTMzNjti
cmVha319YVtEKzEyfDBdPTA7bj1jW0QrOD4+Ml18MDtpZigobnwwKT09KEN8MCkpe0g9QztoPTMz
MjticmVha31pZigoYVtuKzEyfDBdJjEpPT0wKXtIPW47aD0zMzI7YnJlYWt9Yj1jW24rOD4+Ml18
MDt1PWNbYj4+Ml18MDtpZigobnwwKSE9KHV8MCkpe3Y9Qzt3PXU7Y29udGludWV9dj1DO3c9Y1ti
KzQ+PjJdfDB9aWYoKGh8MCk9PTMzMil7YVtIKzEyfDBdPTE7cmV0dXJufWVsc2UgaWYoKGh8MCk9
PTMzNSl7SD1jW0QrND4+Ml18MDtpZigoSHwwKT09MCl7aD0zMzd9ZWxzZXtHPUg7aD0zMzZ9fWVs
c2UgaWYoKGh8MCk9PTM2MSl7YVtCXT0xO3JldHVybn1lbHNlIGlmKChofDApPT0zNjQpe2lmKEEp
e2g9MzY2fWVsc2V7aD0zNjV9fWlmKChofDApPT0zMzYpe2lmKChhW0crMTJ8MF0mMSk9PTApe0k9
RDtoPTM0M31lbHNle2g9MzM3fX1lbHNlIGlmKChofDApPT0zNjUpe2lmKChhW3orMTJ8MF0mMSk9
PTApe0o9eTtoPTM3Mn1lbHNle2g9MzY2fX1pZigoaHwwKT09MzM3KXthW0YrMTJ8MF09MTthW0Qr
MTJ8MF09MDtGPWNbRT4+Ml18MDt6PUYrNHwwO0c9Y1t6Pj4yXXwwO2NbRT4+Ml09RztpZigoR3ww
KSE9MCl7Y1tHKzg+PjJdPUR9Rz1EKzh8MDtjW0YrOD4+Ml09Y1tHPj4yXTtFPWNbRz4+Ml18MDtB
PUV8MDtpZigoY1tBPj4yXXwwKT09KER8MCkpe2NbQT4+Ml09Rn1lbHNle2NbRSs0Pj4yXT1GfWNb
ej4+Ml09RDtjW0c+PjJdPUY7ST1GO2g9MzQzfWVsc2UgaWYoKGh8MCk9PTM2Nil7Rj15KzR8MDth
WyhjW0Y+PjJdfDApKzEyfDBdPTE7YVt5KzEyfDBdPTA7Rz1jW0Y+PjJdfDA7RD1HfDA7ej1jW0Q+
PjJdfDA7Y1tGPj4yXT16O2lmKCh6fDApIT0wKXtjW3orOD4+Ml09eX16PXkrOHwwO2NbRys4Pj4y
XT1jW3o+PjJdO0Y9Y1t6Pj4yXXwwO0U9RnwwO2lmKChjW0U+PjJdfDApPT0oeXwwKSl7Y1tFPj4y
XT1HfWVsc2V7Y1tGKzQ+PjJdPUd9Y1tEPj4yXT15O2Nbej4+Ml09RztKPUc7aD0zNzJ9aWYoKGh8
MCk9PTM0Myl7Rz1JKzh8MDt6PShjW0c+PjJdfDApKzEyfDA7YVtJKzEyfDBdPWFbel0mMTthW3pd
PTE7YVsoY1tJKzQ+PjJdfDApKzEyfDBdPTE7ST1jW0c+PjJdfDA7Rz1JKzR8MDt6PWNbRz4+Ml18
MDt5PXp8MDtEPWNbeT4+Ml18MDtjW0c+PjJdPUQ7aWYoKER8MCkhPTApe2NbRCs4Pj4yXT1JfUQ9
SSs4fDA7Y1t6Kzg+PjJdPWNbRD4+Ml07Rz1jW0Q+PjJdfDA7Rj1HfDA7aWYoKGNbRj4+Ml18MCk9
PShJfDApKXtjW0Y+PjJdPXp9ZWxzZXtjW0crND4+Ml09en1jW3k+PjJdPUk7Y1tEPj4yXT16O3Jl
dHVybn1lbHNlIGlmKChofDApPT0zNzIpe2g9Sis4fDA7ej0oY1toPj4yXXwwKSsxMnwwO2FbSisx
MnwwXT1hW3pdJjE7YVt6XT0xO2FbKGNbSj4+Ml18MCkrMTJ8MF09MTtKPWNbaD4+Ml18MDtoPUp8
MDt6PWNbaD4+Ml18MDtEPXorNHwwO0k9Y1tEPj4yXXwwO2NbaD4+Ml09STtpZigoSXwwKSE9MCl7
Y1tJKzg+PjJdPUp9ST1KKzh8MDtjW3orOD4+Ml09Y1tJPj4yXTtoPWNbST4+Ml18MDt5PWh8MDtp
ZigoY1t5Pj4yXXwwKT09KEp8MCkpe2NbeT4+Ml09en1lbHNle2NbaCs0Pj4yXT16fWNbRD4+Ml09
SjtjW0k+PjJdPXo7cmV0dXJufX1mdW5jdGlvbiBjQyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8
MDtlPWV8MDt2YXIgZj0wLGc9MCxqPTAsaz0wLjAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MDtmPWk7Zz1iO2I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbYj4+Ml09
Y1tnPj4yXTtnPWErNHwwO2o9Y1tiPj4yXXwwO2Rve2lmKChqfDApIT0oZ3wwKSl7az0raFtlPj4z
XTtpZigraFtqKzE2Pj4zXT49ayl7YnJlYWt9Yj1nfDA7bD1jW2I+PjJdfDA7aWYoKGx8MCk9PTAp
e2NbZD4+Ml09ZzttPWI7aT1mO3JldHVybiBtfDB9ZWxzZXtuPWx9d2hpbGUoMSl7aWYoK2hbbisx
Nj4+M108ayl7bz1uKzR8MDtsPWNbbz4+Ml18MDtpZigobHwwKT09MCl7cD00MDY7YnJlYWt9ZWxz
ZXtuPWw7Y29udGludWV9fWVsc2V7cT1ufDA7bD1jW3E+PjJdfDA7aWYoKGx8MCk9PTApe3A9NDA4
O2JyZWFrfWVsc2V7bj1sO2NvbnRpbnVlfX19aWYoKHB8MCk9PTQwOCl7Y1tkPj4yXT1uO209cTtp
PWY7cmV0dXJuIG18MH1lbHNlIGlmKChwfDApPT00MDYpe2NbZD4+Ml09bjttPW87aT1mO3JldHVy
biBtfDB9fX13aGlsZSgwKTtvPWNbaj4+Ml18MDtkb3tpZigoanwwKT09KGNbYT4+Ml18MCkpe3I9
an1lbHNle2lmKChvfDApPT0wKXtuPWp8MDt3aGlsZSgxKXtxPWNbbis4Pj4yXXwwO2lmKChufDAp
PT0oY1txPj4yXXwwKSl7bj1xfWVsc2V7cz1xO2JyZWFrfX19ZWxzZXtuPW87d2hpbGUoMSl7cT1j
W24rND4+Ml18MDtpZigocXwwKT09MCl7cz1uO2JyZWFrfWVsc2V7bj1xfX19az0raFtlPj4zXTtp
ZihrPj0raFtzKzE2Pj4zXSl7cj1zO2JyZWFrfW49Z3wwO3E9Y1tuPj4yXXwwO2lmKChxfDApPT0w
KXtjW2Q+PjJdPWc7bT1uO2k9ZjtyZXR1cm4gbXwwfWVsc2V7dD1xfXdoaWxlKDEpe2lmKGs8K2hb
dCsxNj4+M10pe3U9dHwwO3E9Y1t1Pj4yXXwwO2lmKChxfDApPT0wKXtwPTM5OTticmVha31lbHNl
e3Q9cTtjb250aW51ZX19ZWxzZXt2PXQrNHwwO3E9Y1t2Pj4yXXwwO2lmKChxfDApPT0wKXtwPTQw
MTticmVha31lbHNle3Q9cTtjb250aW51ZX19fWlmKChwfDApPT0zOTkpe2NbZD4+Ml09dDttPXU7
aT1mO3JldHVybiBtfDB9ZWxzZSBpZigocHwwKT09NDAxKXtjW2Q+PjJdPXQ7bT12O2k9ZjtyZXR1
cm4gbXwwfX19d2hpbGUoMCk7aWYoKG98MCk9PTApe2NbZD4+Ml09ajttPWp8MDtpPWY7cmV0dXJu
IG18MH1lbHNle2NbZD4+Ml09cjttPXIrNHwwO2k9ZjtyZXR1cm4gbXwwfXJldHVybiAwfWZ1bmN0
aW9uIGNEKCl7Y0EoMWU1KTtyZXR1cm4gMH1mdW5jdGlvbiBjRShhLGIpe2E9YXwwO2I9YnwwO2lm
KChifDApPT0wKXtyZXR1cm59ZWxzZXtjRShhLGNbYj4+Ml18MCk7Y0UoYSxjW2IrND4+Ml18MCk7
a1MoYik7cmV0dXJufX1mdW5jdGlvbiBjRihhLGIpe2E9YXwwO2I9YnwwO3ZhciBjPTAsZD0wLGU9
MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MC4wO2M9aTtpPWkrOHwwO2Q9Y3wwO2U9Yi1hfDA7aWYo
KGV8MCk8PTgpe2k9YztyZXR1cm59Y1koZCk7Zj1iLTh8MDtpZihmPj4+MD5hPj4+MCl7Yj1hO2E9
ZT4+Mzt3aGlsZSgxKXtlPWEtMXwwO2Rve2lmKChlfDApIT0wKXtpZigoYXwwKT09MCl7Zz1jWChk
KXwwfWVsc2V7aj0zMi0oa1ooYXwwKXwwKXwwO2s9KCgoLTE+Pj4oKDMzLWp8MCk+Pj4wKSZhfDAp
PT0wKTw8MzE+PjMxKStqfDA7aj0oaz4+PjApLygoKChrJjMxfDApIT0wKSsoaz4+PjUpfDApPj4+
MCl8MDtpZigoanwwKT09MCl7bD0wfWVsc2V7bD0tMT4+PigoMzItanwwKT4+PjApfXdoaWxlKDEp
e2o9KGNYKGQpfDApJmw7aWYoaj4+PjA8YT4+PjApe2c9ajticmVha319fWlmKChnfDApPT0wKXti
cmVha31qPWIrKGc8PDMpfDA7bT0raFtiPj4zXTtoW2I+PjNdPStoW2o+PjNdO2hbaj4+M109bX19
d2hpbGUoMCk7aj1iKzh8MDtpZihqPj4+MDxmPj4+MCl7Yj1qO2E9ZX1lbHNle2JyZWFrfX19Y1co
ZCk7aT1jO3JldHVybn1mdW5jdGlvbiBjRyhiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9
MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDtlPShkfDAp
PT0oYnwwKTthW2QrMTJ8MF09ZSYxO2lmKGUpe3JldHVybn1lbHNle2Y9ZH13aGlsZSgxKXtnPWYr
OHwwO2g9Y1tnPj4yXXwwO2Q9aCsxMnwwO2lmKChhW2RdJjEpIT0wKXtpPTQ4NzticmVha31qPWgr
OHwwO2s9Y1tqPj4yXXwwO2U9Y1trPj4yXXwwO2lmKChofDApPT0oZXwwKSl7bD1jW2srND4+Ml18
MDtpZigobHwwKT09MCl7aT00NTI7YnJlYWt9bT1sKzEyfDA7aWYoKGFbbV0mMSkhPTApe2k9NDUy
O2JyZWFrfWFbZF09MTthW2srMTJ8MF09KGt8MCk9PShifDApfDA7YVttXT0xfWVsc2V7aWYoKGV8
MCk9PTApe2k9NDY5O2JyZWFrfW09ZSsxMnwwO2lmKChhW21dJjEpIT0wKXtpPTQ2OTticmVha31h
W2RdPTE7YVtrKzEyfDBdPShrfDApPT0oYnwwKXwwO2FbbV09MX1pZigoa3wwKT09KGJ8MCkpe2k9
NDg0O2JyZWFrfWVsc2V7Zj1rfX1pZigoaXwwKT09NDY5KXtiPWh8MDtpZigoZnwwKT09KGNbYj4+
Ml18MCkpe209Zis0fDA7ZD1jW20+PjJdfDA7Y1tiPj4yXT1kO2lmKChkfDApPT0wKXtuPWt9ZWxz
ZXtjW2QrOD4+Ml09aDtuPWNbaj4+Ml18MH1jW2c+PjJdPW47bj1jW2o+PjJdfDA7ZD1ufDA7aWYo
KGNbZD4+Ml18MCk9PShofDApKXtjW2Q+PjJdPWZ9ZWxzZXtjW24rND4+Ml09Zn1jW20+PjJdPWg7
Y1tqPj4yXT1mO289ZjtwPWNbZz4+Ml18MH1lbHNle289aDtwPWt9YVtvKzEyfDBdPTE7YVtwKzEy
fDBdPTA7bz1wKzR8MDtnPWNbbz4+Ml18MDttPWd8MDtuPWNbbT4+Ml18MDtjW28+PjJdPW47aWYo
KG58MCkhPTApe2Nbbis4Pj4yXT1wfW49cCs4fDA7Y1tnKzg+PjJdPWNbbj4+Ml07bz1jW24+PjJd
fDA7ZD1vfDA7aWYoKGNbZD4+Ml18MCk9PShwfDApKXtjW2Q+PjJdPWd9ZWxzZXtjW28rND4+Ml09
Z31jW20+PjJdPXA7Y1tuPj4yXT1nO3JldHVybn1lbHNlIGlmKChpfDApPT00ODQpe3JldHVybn1l
bHNlIGlmKChpfDApPT00ODcpe3JldHVybn1lbHNlIGlmKChpfDApPT00NTIpe2lmKChmfDApPT0o
Y1toPj4yXXwwKSl7cT1oO3I9a31lbHNle2Y9aCs0fDA7aT1jW2Y+PjJdfDA7Zz1pfDA7bj1jW2c+
PjJdfDA7Y1tmPj4yXT1uO2lmKChufDApPT0wKXtzPWt9ZWxzZXtjW24rOD4+Ml09aDtzPWNbaj4+
Ml18MH1uPWkrOHwwO2Nbbj4+Ml09cztzPWNbaj4+Ml18MDtrPXN8MDtpZigoY1trPj4yXXwwKT09
KGh8MCkpe2Nbaz4+Ml09aX1lbHNle2Nbcys0Pj4yXT1pfWNbZz4+Ml09aDtjW2o+PjJdPWk7cT1p
O3I9Y1tuPj4yXXwwfWFbcSsxMnwwXT0xO2FbcisxMnwwXT0wO3E9cnwwO249Y1txPj4yXXwwO2k9
bis0fDA7aj1jW2k+PjJdfDA7Y1txPj4yXT1qO2lmKChqfDApIT0wKXtjW2orOD4+Ml09cn1qPXIr
OHwwO2Nbbis4Pj4yXT1jW2o+PjJdO3E9Y1tqPj4yXXwwO2g9cXwwO2lmKChjW2g+PjJdfDApPT0o
cnwwKSl7Y1toPj4yXT1ufWVsc2V7Y1txKzQ+PjJdPW59Y1tpPj4yXT1yO2Nbaj4+Ml09bjtyZXR1
cm59fWZ1bmN0aW9uIGNIKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAs
Zz0wLGo9MCxrPTAuMCxsPTAuMCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtmPWk7Zz1iO2I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Yj4+Ml09Y1tnPj4yXTtnPWErNHwwO2o9Y1tiPj4yXXwwO2Rve2lmKChqfDApIT0oZ3wwKSl7az0r
aFtlPj4zXTtsPStoW2orMTY+PjNdO2lmKGs8bCl7YnJlYWt9aWYobD49ayl7Y1tkPj4yXT1qO209
ZDtpPWY7cmV0dXJuIG18MH1iPWorNHwwO249Y1tiPj4yXXwwO289KG58MCk9PTA7aWYobyl7cD1q
fDA7d2hpbGUoMSl7cT1jW3ArOD4+Ml18MDtpZigocHwwKT09KGNbcT4+Ml18MCkpe3I9cTticmVh
a31lbHNle3A9cX19fWVsc2V7cD1uO3doaWxlKDEpe3E9Y1twPj4yXXwwO2lmKChxfDApPT0wKXty
PXA7YnJlYWt9ZWxzZXtwPXF9fX1wPWc7ZG97aWYoKHJ8MCkhPShwfDApKXtpZihrPCtoW3IrMTY+
PjNdKXticmVha31uPWd8MDtxPWNbbj4+Ml18MDtpZigocXwwKT09MCl7Y1tkPj4yXT1wO209bjtp
PWY7cmV0dXJuIG18MH1lbHNle3M9cX13aGlsZSgxKXtsPStoW3MrMTY+PjNdO2lmKGs8bCl7dD1z
fDA7cT1jW3Q+PjJdfDA7aWYoKHF8MCk9PTApe3U9NTIxO2JyZWFrfWVsc2V7cz1xO2NvbnRpbnVl
fX1pZihsPj1rKXt1PTUyNTticmVha312PXMrNHwwO3E9Y1t2Pj4yXXwwO2lmKChxfDApPT0wKXt1
PTUyNDticmVha31lbHNle3M9cX19aWYoKHV8MCk9PTUyMSl7Y1tkPj4yXT1zO209dDtpPWY7cmV0
dXJuIG18MH1lbHNlIGlmKCh1fDApPT01MjQpe2NbZD4+Ml09czttPXY7aT1mO3JldHVybiBtfDB9
ZWxzZSBpZigodXwwKT09NTI1KXtjW2Q+PjJdPXM7bT1kO2k9ZjtyZXR1cm4gbXwwfX19d2hpbGUo
MCk7aWYobyl7Y1tkPj4yXT1qO209YjtpPWY7cmV0dXJuIG18MH1lbHNle2NbZD4+Ml09cjttPXJ8
MDtpPWY7cmV0dXJuIG18MH19fXdoaWxlKDApO3I9Y1tqPj4yXXwwO2Rve2lmKChqfDApPT0oY1th
Pj4yXXwwKSl7dz1qfWVsc2V7aWYoKHJ8MCk9PTApe3M9anwwO3doaWxlKDEpe3Y9Y1tzKzg+PjJd
fDA7aWYoKHN8MCk9PShjW3Y+PjJdfDApKXtzPXZ9ZWxzZXt4PXY7YnJlYWt9fX1lbHNle3M9cjt3
aGlsZSgxKXtiPWNbcys0Pj4yXXwwO2lmKChifDApPT0wKXt4PXM7YnJlYWt9ZWxzZXtzPWJ9fX1r
PStoW2U+PjNdO2lmKCtoW3grMTY+PjNdPGspe3c9eDticmVha31zPWd8MDtiPWNbcz4+Ml18MDtp
ZigoYnwwKT09MCl7Y1tkPj4yXT1nO209cztpPWY7cmV0dXJuIG18MH1lbHNle3k9Yn13aGlsZSgx
KXtsPStoW3krMTY+PjNdO2lmKGs8bCl7ej15fDA7Yj1jW3o+PjJdfDA7aWYoKGJ8MCk9PTApe3U9
NTAyO2JyZWFrfWVsc2V7eT1iO2NvbnRpbnVlfX1pZihsPj1rKXt1PTUwNjticmVha31BPXkrNHww
O2I9Y1tBPj4yXXwwO2lmKChifDApPT0wKXt1PTUwNTticmVha31lbHNle3k9Yn19aWYoKHV8MCk9
PTUwNSl7Y1tkPj4yXT15O209QTtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1fDApPT01MDYpe2Nb
ZD4+Ml09eTttPWQ7aT1mO3JldHVybiBtfDB9ZWxzZSBpZigodXwwKT09NTAyKXtjW2Q+PjJdPXk7
bT16O2k9ZjtyZXR1cm4gbXwwfX19d2hpbGUoMCk7aWYoKHJ8MCk9PTApe2NbZD4+Ml09ajttPWp8
MDtpPWY7cmV0dXJuIG18MH1lbHNle2NbZD4+Ml09dzttPXcrNHwwO2k9ZjtyZXR1cm4gbXwwfXJl
dHVybiAwfWZ1bmN0aW9uIGNJKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBn
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAuMCxIPTAsST0wO2c9aTtq
PWQ7ZD1pO2k9aSs4fDA7Y1tkPj4yXT1jW2o+PjJdO2NbZCs0Pj4yXT1jW2orND4+Ml07aj1lO2U9
aTtpPWkrOHwwO2NbZT4+Ml09Y1tqPj4yXTtjW2UrND4+Ml09Y1tqKzQ+PjJdO2o9ZjtmPWk7aT1p
KzF8MDtpPWkrNz4+Mzw8MzthW2ZdPWFbal18MDtqPWR8MDtmPWQrNHwwO2s9Y1tmPj4yXXwwO2w9
Y1tlPj4yXXwwO209Y1tlKzQ+PjJdfDA7TDY1NTpkb3tpZigoa3wwKT09KG18MCkpe249aztvPWw7
cD01NDl9ZWxzZXtlPWNbaj4+Ml18MDtxPWU7cj1rO3M9Y1tlPj4yXXwwO3doaWxlKDEpe2U9cis4
fDA7aWYoKGUtc3wwKT09NDA5Nil7dD1xKzR8MDt1PWNbdD4+Ml18MDt2PXQ7dz11O3g9dX1lbHNl
e3Y9cTt3PWU7eD1zfWlmKCh3fDApPT0obXwwKSl7YnJlYWt9aWYoK2hbcj4+M109PStoW3c+PjNd
KXtuPXI7bz1xO3A9NTQ5O2JyZWFrIEw2NTV9ZWxzZXtxPXY7cj13O3M9eH19Y1tqPj4yXT1sO2Nb
Zj4+Ml09bX19d2hpbGUoMCk7ZG97aWYoKHB8MCk9PTU0OSl7Y1tqPj4yXT1vO2NbZj4+Ml09bjtp
ZigobnwwKT09KG18MCkpe2JyZWFrfWw9bis4fDA7eD1jW28+PjJdfDA7aWYoKGwteHwwKT09NDA5
Nil7dz1vKzR8MDt2PWNbdz4+Ml18MDt5PXc7ej12O0E9djtCPW47Qz1vfWVsc2V7eT1vO3o9bDtB
PXg7Qj1uO0M9b313aGlsZSgxKXt4PXorOHwwO2lmKCh4LUF8MCk9PTQwOTYpe2w9eSs0fDA7dj1j
W2w+PjJdfDA7RD1sO0U9djtGPXZ9ZWxzZXtEPXk7RT14O0Y9QX1pZigoRXwwKT09KG18MCkpe2Jy
ZWFrfUc9K2hbRT4+M107aWYoK2hbQj4+M109PUcpe3k9RDt6PUU7QT1GO0I9QjtDPUM7Y29udGlu
dWV9eD1CKzh8MDtjW2Y+PjJdPXg7aWYoKHgtKGNbQz4+Ml18MCl8MCk9PTQwOTYpe3Y9Qys0fDA7
Y1tqPj4yXT12O2w9Y1t2Pj4yXXwwO2NbZj4+Ml09bDtIPXY7ST1sfWVsc2V7SD1DO0k9eH1oW0k+
PjNdPUc7eT1EO3o9RTtBPWNbRD4+Ml18MDtCPUk7Qz1IfXg9Qis4fDA7Y1tmPj4yXT14O2lmKCh4
LShjW0M+PjJdfDApfDApIT00MDk2KXticmVha314PUMrNHwwO2Nbaj4+Ml09eDtjW2Y+PjJdPWNb
eD4+Ml19fXdoaWxlKDApO2Y9ZDtkPWI7Yj1jW2YrND4+Ml18MDtjW2Q+PjJdPWNbZj4+Ml07Y1tk
KzQ+PjJdPWI7aT1nO3JldHVybn1mdW5jdGlvbiBjSihhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MC4wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLjAsRD0wO2c9
aTtpPWkrNDh8MDtqPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2o+PjJdO2o9
ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaj4+Ml07aj1nfDA7az1nKzh8MDts
PWcrMTZ8MDttPWcrMjR8MDtuPWcrMzJ8MDtvPWcrNDB8MDtzd2l0Y2goZXwwKXtjYXNlIDI6e3A9
ZHwwO3E9Y1tjW3A+PjJdPj4yXXwwO2NbcD4+Ml09cTtwPWNbYj4+Ml18MDtpZigraFtxKzg+PjNd
PCtoW3ArOD4+M10pe3I9cSs0fDA7cz1xfDA7Y1soY1tzPj4yXXwwKSs0Pj4yXT1jW3I+PjJdO2Nb
Y1tyPj4yXT4+Ml09Y1tzPj4yXTt0PXB8MDtjWyhjW3Q+PjJdfDApKzQ+PjJdPXE7Y1tzPj4yXT1j
W3Q+PjJdO2NbdD4+Ml09cTtjW3I+PjJdPXA7Y1thPj4yXT1xO2k9ZztyZXR1cm59ZWxzZXtjW2E+
PjJdPXA7aT1nO3JldHVybn1icmVha307Y2FzZSAwOmNhc2UgMTp7Y1thPj4yXT1jW2I+PjJdO2k9
ZztyZXR1cm59O2RlZmF1bHQ6e3A9ZT4+PjE7cT1ifDA7Yj1jW3E+PjJdfDA7aWYoKHB8MCk9PTAp
e3U9Yn1lbHNle3I9cDt0PWI7d2hpbGUoMSl7cz1yLTF8MDt2PWNbdCs0Pj4yXXwwO2lmKChzfDAp
PjApe3I9czt0PXZ9ZWxzZXt1PXY7YnJlYWt9fX1jW2s+PjJdPWI7Y1tsPj4yXT11O2NKKGosayxs
LHAsZik7bD1jW2o+PjJdfDA7Y1txPj4yXT1sO2Nbbj4+Ml09dTt1PWR8MDtkPWNbdT4+Ml18MDtj
W28+PjJdPWQ7Y0oobSxuLG8sZS1wfDAsZik7Zj1jW20+PjJdfDA7dz0raFtsKzg+PjNdO2lmKCto
W2YrOD4+M108dyl7bT1jW2YrND4+Ml18MDtMNjk3OmRve2lmKChtfDApPT0oZHwwKSl7eD1kfWVs
c2V7cD1tO3doaWxlKDEpe2lmKCtoW3ArOD4+M10+PXcpe3g9cDticmVhayBMNjk3fWU9Y1twKzQ+
PjJdfDA7aWYoKGV8MCk9PShkfDApKXt4PWQ7YnJlYWt9ZWxzZXtwPWV9fX19d2hpbGUoMCk7bT1j
W3g+PjJdfDA7cD1tKzR8MDtlPWZ8MDtjWyhjW2U+PjJdfDApKzQ+PjJdPWNbcD4+Ml07Y1tjW3A+
PjJdPj4yXT1jW2U+PjJdO289Y1tsKzQ+PjJdfDA7bj1sfDA7Y1soY1tuPj4yXXwwKSs0Pj4yXT1m
O2NbZT4+Ml09Y1tuPj4yXTtjW24+PjJdPW07Y1twPj4yXT1sO3k9Zjt6PXg7QT1vfWVsc2V7eT1s
O3o9ZjtBPWNbbCs0Pj4yXXwwfWNbcT4+Ml09QTtMNzA0OmRve2lmKChBfDApIT0oenwwKSl7bD16
O2Y9ejtvPUE7eD1kO3doaWxlKDEpe3A9bCs4fDA7aWYoKGx8MCk9PSh4fDApKXticmVhayBMNzA0
fWVsc2V7Qj1vfXdoaWxlKDEpe0M9K2hbQis4Pj4zXTtpZigraFtwPj4zXTxDKXticmVha31tPWNb
Qis0Pj4yXXwwO2NbcT4+Ml09bTtpZigobXwwKT09KGZ8MCkpe2JyZWFrIEw3MDR9ZWxzZXtCPW19
fXA9Y1tsKzQ+PjJdfDA7TDcxMTpkb3tpZigocHwwKT09KHh8MCkpe0Q9eH1lbHNle209cDt3aGls
ZSgxKXtpZigraFttKzg+PjNdPj1DKXtEPW07YnJlYWsgTDcxMX1uPWNbbSs0Pj4yXXwwO2lmKChu
fDApPT0oeHwwKSl7RD14O2JyZWFrfWVsc2V7bT1ufX19fXdoaWxlKDApO3A9Y1tEPj4yXXwwO209
cCs0fDA7bj1sfDA7Y1soY1tuPj4yXXwwKSs0Pj4yXT1jW20+PjJdO2NbY1ttPj4yXT4+Ml09Y1tu
Pj4yXTtlPWNbQis0Pj4yXXwwO2o9KGZ8MCk9PShsfDApP0Q6ZjtrPUJ8MDtjWyhjW2s+PjJdfDAp
KzQ+PjJdPWw7Y1tuPj4yXT1jW2s+PjJdO2Nbaz4+Ml09cDtjW20+PjJdPUI7Y1txPj4yXT1lO2lm
KChlfDApPT0oanwwKSl7YnJlYWsgTDcwNH1sPUQ7Zj1qO289ZTt4PWNbdT4+Ml18MH19fXdoaWxl
KDApO2NbYT4+Ml09eTtpPWc7cmV0dXJufX19ZnVuY3Rpb24gY0soYSxiLGQpe2E9YXwwO2I9Ynww
O2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0w
LEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAs
VT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAs
YWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFx
PTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxhdj0wLGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0w
LGFDPTAsYUQ9MCxhRT0wLGFGPTAsYUc9MC4wLGFIPTAuMCxhST0wLjAsYUo9MC4wLGFLPTAuMCxh
TD0wLGFNPTAsYU49MCxhTz0wLGFQPTAsYVE9MCxhUj0wLGFTPTAuMCxhVD0wLGFVPTAsYVY9MCxh
Vz0wLGFYPTAsYVk9MCxhWj0wLGFfPTAsYSQ9MCxhMD0wLjAsYTE9MCxhMj0wLGEzPTAsYTQ9MCxh
NT0wLGE2PTAsYTc9MCxhOD0wLjAsYTk9MCxiYT0wLGJiPTAsYmM9MCxiZD0wLjAsYmU9MCxiZj0w
LGJnPTAsYmg9MCxiaT0wLGJqPTAsYms9MCxibD0wLGJtPTAsYm49MCxibz0wLGJwPTAsYnE9MCxi
cj0wLGJzPTAsYnQ9MCxidT0wLjAsYnY9MCxidz0wLGJ4PTAsYnk9MCxiej0wLjAsYkE9MCxiQj0w
LGJDPTAsYkQ9MCxiRT0wLGJGPTAsYkc9MCxiSD0wLGJJPTAsYko9MCxiSz0wLGJMPTAsYk09MCxi
Tj0wLGJPPTAsYlA9MCxiUT0wLjAsYlI9MCxiUz0wLGJUPTA7ZT1pO2k9aSs4fDA7Zj1hO2E9aTtp
PWkrOHwwO2NbYT4+Ml09Y1tmPj4yXTtjW2ErND4+Ml09Y1tmKzQ+PjJdO2Y9YjtiPWk7aT1pKzh8
MDtjW2I+PjJdPWNbZj4+Ml07Y1tiKzQ+PjJdPWNbZis0Pj4yXTtmPWV8MDtnPWY7aj1pO2k9aSs4
fDA7az1qO2w9aTtpPWkrOHwwO209bDtuPWk7aT1pKzh8MDtvPW47cD1pO2k9aSs4fDA7cT1wO3I9
aTtpPWkrOHwwO3M9cjt0PWk7aT1pKzh8MDt1PXQ7dj1pO2k9aSs4fDA7dz12O3g9aTtpPWkrOHww
O3k9eDt6PWk7aT1pKzh8MDtBPWk7aT1pKzh8MDtCPWk7aT1pKzh8MDtDPWk7aT1pKzh8MDtEPUM7
RT1pO2k9aSs4fDA7Rj1pO2k9aSs4fDA7Rz1pO2k9aSs4fDA7SD1HO0k9aTtpPWkrOHwwO0o9STtL
PWk7aT1pKzh8MDtMPWk7aT1pKzh8MDtNPWk7aT1pKzh8MDtOPU07Tz1iKzR8MDtQPWNbTz4+Ml18
MDtRPWErNHwwO1I9Y1tRPj4yXXwwO2lmKChQfDApPT0oUnwwKSl7aT1lO3JldHVybn1TPWJ8MDtU
PWF8MDtVPWE7YT15KzR8MDtWPXg7Vz16fDA7WD16KzR8MDtZPUF8MDtaPUErNHwwO189QnwwOyQ9
Qis0fDA7YWE9RXwwO2FiPUUrNHwwO2FjPUZ8MDthZD1GKzR8MDthZT1iO2I9S3wwO2FmPUsrNHww
O2FnPUx8MDthaD1MKzR8MDthaT1QO1A9UjtMNzI1OndoaWxlKDEpe2FqPWNbUz4+Ml18MDtSPWNb
VD4+Ml18MDthaz1jW2FqPj4yXXwwO2FsPWNbUj4+Ml18MDthbT1QLWFsPj4zO2FuPShhaS1haz4+
MykrKGFqLVI8PDcpLWFtfDA7c3dpdGNoKGFufDApe2Nhc2UgNTp7YW89NjMwO2JyZWFrIEw3MjU7
YnJlYWt9O2Nhc2UgNDp7YW89NjEwO2JyZWFrIEw3MjU7YnJlYWt9O2Nhc2UgMjp7YW89NTkzO2Jy
ZWFrIEw3MjU7YnJlYWt9O2Nhc2UgMzp7YW89NTk3O2JyZWFrIEw3MjU7YnJlYWt9O2Nhc2UgMDpj
YXNlIDE6e2FvPTc2MDticmVhayBMNzI1O2JyZWFrfTtkZWZhdWx0Ont9fWlmKChhbnwwKTwzMSl7
YW89NjQzO2JyZWFrfWlmKChhaXwwKT09KGFrfDApKXthcD1hai00fDA7YXE9YXA7YXI9KGNbYXA+
PjJdfDApKzQwOTZ8MH1lbHNle2FxPWFqO2FyPWFpfWFwPWFyLTh8MDthcz0oYW58MCkvMnwwO2F0
PShhbisxfDApPj4+MD4yO2Rve2lmKChhbnwwKT45OTkpe2Rve2lmKGF0KXthdT1hbSthc3wwO2lm
KChhdXwwKT4wKXthdj1SKygoKGF1fDApLzUxMnwwKTw8Mil8MDthdz1jW2F2Pj4yXXwwO2F4PWF3
KygoKGF1fDApJTUxMnwwKTw8Myl8MDtheT1hdjthej1hdzticmVha31lbHNle2F3PTUxMS1hdXww
O2F1PVIrKCgoYXd8MCkvLTUxMnwwKTw8Mil8MDthdj1jW2F1Pj4yXXwwO2F4PWF2Kyg1MTEtKChh
d3wwKSU1MTJ8MCk8PDMpfDA7YXk9YXU7YXo9YXY7YnJlYWt9fWVsc2V7YXg9UDtheT1SO2F6PWFs
fX13aGlsZSgwKTthdj0oYW58MCkvNHwwO2F1PWNbVT4+Ml18MDthdz1jW1UrND4+Ml18MDtjW3Y+
PjJdPWF1O2Nbdis0Pj4yXT1hdztjW3g+PjJdPWF1O2NbeCs0Pj4yXT1hdzthQT0oYW4rM3wwKT4+
PjA+NjthQj1hdTtkb3tpZihhQSl7YXU9KGF3LShjW2FCPj4yXXwwKT4+MykrYXZ8MDtpZigoYXV8
MCk+MCl7YUM9YUIrKCgoYXV8MCkvNTEyfDApPDwyKXwwO2NbVj4+Ml09YUM7Y1thPj4yXT0oY1th
Qz4+Ml18MCkrKCgoYXV8MCklNTEyfDApPDwzKTtjW1c+PjJdPWF5O2NbWD4+Ml09YXg7Y1tZPj4y
XT1heTtjW1o+PjJdPWF4O2lmKCFhQSl7YnJlYWt9fWVsc2V7YUM9NTExLWF1fDA7YXU9YUIrKCgo
YUN8MCkvLTUxMnwwKTw8Mil8MDtjW1Y+PjJdPWF1O2NbYT4+Ml09KGNbYXU+PjJdfDApKyg1MTEt
KChhQ3wwKSU1MTJ8MCk8PDMpO2NbVz4+Ml09YXk7Y1tYPj4yXT1heDtjW1k+PjJdPWF5O2NbWj4+
Ml09YXh9YUM9KGF4LWF6Pj4zKSthdnwwO2lmKChhQ3wwKT4wKXthdT1heSsoKChhQ3wwKS81MTJ8
MCk8PDIpfDA7Y1tZPj4yXT1hdTtjW1o+PjJdPShjW2F1Pj4yXXwwKSsoKChhQ3wwKSU1MTJ8MCk8
PDMpO2JyZWFrfWVsc2V7YXU9NTExLWFDfDA7YUM9YXkrKCgoYXV8MCkvLTUxMnwwKTw8Mil8MDtj
W1k+PjJdPWFDO2NbWj4+Ml09KGNbYUM+PjJdfDApKyg1MTEtKChhdXwwKSU1MTJ8MCk8PDMpO2Jy
ZWFrfX1lbHNle2NbVz4+Ml09YXk7Y1tYPj4yXT1heDtjW1k+PjJdPWF5O2NbWj4+Ml09YXh9fXdo
aWxlKDApO2NbXz4+Ml09YXE7Y1skPj4yXT1hcDthRD1jTCh3LHkseixBLEIsMCl8MDthRT1heH1l
bHNle2Rve2lmKGF0KXthdj1hbSthc3wwO2lmKChhdnwwKT4wKXthRj0oY1tSKygoKGF2fDApLzUx
MnwwKTw8Mik+PjJdfDApKygoKGF2fDApJTUxMnwwKTw8Myl8MDticmVha31lbHNle2FCPTUxMS1h
dnwwO2FGPShjW1IrKCgoYUJ8MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChhQnwwKSU1MTJ8
MCk8PDMpfDA7YnJlYWt9fWVsc2V7YUY9UH19d2hpbGUoMCk7YUI9Y1tVKzQ+PjJdfDA7YUc9K2hb
YUY+PjNdO2FIPStoW2FCPj4zXTthST0raFthcD4+M107YXY9YUk8YUc7aWYoYUc+PWFIKXtpZigh
YXYpe2FEPTA7YUU9YUY7YnJlYWt9aFthRj4+M109YUk7aFthcD4+M109YUc7YUo9K2hbYUY+PjNd
O2FLPStoW2FCPj4zXTtpZihhSj49YUspe2FEPTE7YUU9YUY7YnJlYWt9aFthQj4+M109YUo7aFth
Rj4+M109YUs7YUQ9MjthRT1hRjticmVha31pZihhdil7aFthQj4+M109YUk7aFthcD4+M109YUg7
YUQ9MTthRT1hRjticmVha31oW2FCPj4zXT1hRztoW2FGPj4zXT1hSDthRz0raFthcD4+M107aWYo
YUc+PWFIKXthRD0xO2FFPWFGO2JyZWFrfWhbYUY+PjNdPWFHO2hbYXA+PjNdPWFIO2FEPTI7YUU9
YUZ9fXdoaWxlKDApO1I9Y1tUPj4yXXwwO2FzPWNbUT4+Ml18MDthSD0raFthcz4+M107YUc9K2hb
YUU+PjNdO2Rve2lmKGFIPGFHKXthTD1hRDthTT1hcTthTj1hcDthbz03MDd9ZWxzZXthbT1hcTth
dD1hcDthbj1jW2FxPj4yXXwwO3doaWxlKDEpe2lmKChhdHwwKT09KGFufDApKXthbD1hbS00fDA7
YUI9Y1thbD4+Ml18MDthTz1hbDthUD1hQis0MDk2fDA7YVE9YUJ9ZWxzZXthTz1hbTthUD1hdDth
UT1hbn1hUj1hUC04fDA7aWYoKGFzfDApPT0oYVJ8MCkpe2JyZWFrfWFTPStoW2FSPj4zXTtpZihh
UzxhRyl7YW89NzA2O2JyZWFrfWVsc2V7YW09YU87YXQ9YVI7YW49YVF9fWlmKChhb3wwKT09NzA2
KXthbz0wO2hbYXM+PjNdPWFTO2hbYVI+PjNdPWFIO2FMPWFEKzF8MDthTT1hTzthTj1hUjthbz03
MDc7YnJlYWt9YW49YXMrOHwwO2F0PWNbUj4+Ml18MDtpZigoYW4tYXR8MCk9PTQwOTYpe2FtPVIr
NHwwO2FCPWNbYW0+PjJdfDA7YVQ9YUI7YVU9YW07YVY9YUJ9ZWxzZXthVD1hbjthVT1SO2FWPWF0
fWF0PWNbUz4+Ml18MDthbj1jW08+PjJdfDA7aWYoKGFufDApPT0oY1thdD4+Ml18MCkpe2FCPWF0
LTR8MDthVz1hQjthWD0oY1thQj4+Ml18MCkrNDA5NnwwfWVsc2V7YVc9YXQ7YVg9YW59YW49YVgt
OHwwO2FJPStoW2FuPj4zXTtkb3tpZihhSDxhSSl7YVk9YVQ7YVo9YVU7YV89YVZ9ZWxzZXthdD1h
VDthQj1hVTthbT1hVjtMNzg2OndoaWxlKDEpe2EkPWF0O3doaWxlKDEpe2lmKChhJHwwKT09KGFu
fDApKXthbz03Njc7YnJlYWsgTDcyNX1hMD0raFthJD4+M107aWYoYUg8YTApe2JyZWFrIEw3ODZ9
YWw9YSQrOHwwO2lmKChhbC1hbXwwKT09NDA5Nil7YnJlYWt9ZWxzZXthJD1hbH19YWw9YUIrNHww
O2F2PWNbYWw+PjJdfDA7YXQ9YXY7YUI9YWw7YW09YXZ9aFthJD4+M109YUk7aFthbj4+M109YTA7
YW09YSQrOHwwO2F0PWNbYUI+PjJdfDA7aWYoKGFtLWF0fDApIT00MDk2KXthWT1hbTthWj1hQjth
Xz1hdDticmVha31hdD1hQis0fDA7YW09Y1thdD4+Ml18MDthWT1hbTthWj1hdDthXz1hbX19d2hp
bGUoMCk7aWYoKGFZfDApPT0oYW58MCkpe2FvPTc2ODticmVhayBMNzI1fWVsc2V7YTE9YVk7YTI9
YVo7YTM9YVc7YTQ9YW47YTU9YV99d2hpbGUoMSl7YUk9K2hbY1tRPj4yXT4+M107YW09YTE7YTY9
YTI7YXQ9YTU7TDc5ODp3aGlsZSgxKXthNz1hbTt3aGlsZSgxKXthOD0raFthNz4+M107aWYoYUk8
YTgpe2JyZWFrIEw3OTh9YXY9YTcrOHwwO2lmKChhdi1hdHwwKT09NDA5Nil7YnJlYWt9ZWxzZXth
Nz1hdn19YXY9YTYrNHwwO2FsPWNbYXY+PjJdfDA7YW09YWw7YTY9YXY7YXQ9YWx9YXQ9YTM7YW09
YTQ7YUI9Y1thMz4+Ml18MDt3aGlsZSgxKXtpZigoYW18MCk9PShhQnwwKSl7YWw9YXQtNHwwO2F2
PWNbYWw+PjJdfDA7YTk9YWw7YmE9YXYrNDA5NnwwO2JiPWF2fWVsc2V7YTk9YXQ7YmE9YW07YmI9
YUJ9YmM9YmEtOHwwO2JkPStoW2JjPj4zXTtpZihhSTxiZCl7YXQ9YTk7YW09YmM7YUI9YmJ9ZWxz
ZXticmVha319aWYoYTY+Pj4wPj1hOT4+PjApe2lmKGE3Pj4+MD49YmM+Pj4wfChhNnwwKSE9KGE5
fDApKXticmVha319aFthNz4+M109YmQ7aFtiYz4+M109YTg7YUI9YTcrOHwwO2FtPWNbYTY+PjJd
fDA7aWYoKGFCLWFtfDApIT00MDk2KXthMT1hQjthMj1hNjthMz1hOTthND1iYzthNT1hbTtjb250
aW51ZX1hbT1hNis0fDA7YUI9Y1thbT4+Ml18MDthMT1hQjthMj1hbTthMz1hOTthND1iYzthNT1h
Qn1jW1Q+PjJdPWE2O2NbUT4+Ml09YTc7YmU9YTd9fXdoaWxlKDApO0w4MTY6ZG97aWYoKGFvfDAp
PT03MDcpe2FvPTA7YXA9YXMrOHwwO2FuPWNbUj4+Ml18MDtpZigoYXAtYW58MCk9PTQwOTYpe2FC
PVIrNHwwO2FtPWNbYUI+PjJdfDA7YmY9YW07Ymc9YUI7Ymg9YW19ZWxzZXtiZj1hcDtiZz1SO2Jo
PWFufWlmKGJnPj4+MDxhTT4+PjApe2JpPWFMO2JqPWJmO2JrPWJnO2JsPWFFO2JtPWFNO2JuPWFO
O2JvPWJoO2FvPTcxMX1lbHNle2lmKChiZ3wwKT09KGFNfDApJmJmPj4+MDxhTj4+PjApe2JpPWFM
O2JqPWJmO2JrPWJnO2JsPWFFO2JtPWFNO2JuPWFOO2JvPWJoO2FvPTcxMX1lbHNle2JwPWFMO2Jx
PWJmO2JyPWJnO2JzPWFFfX1MODIzOmRve2lmKChhb3wwKT09NzExKXt3aGlsZSgxKXthbz0wO2FI
PStoW2JsPj4zXTthbj1iajthcD1iazthbT1ibztMODI2OndoaWxlKDEpe2J0PWFuO3doaWxlKDEp
e2J1PStoW2J0Pj4zXTtpZihidT49YUgpe2JyZWFrIEw4MjZ9YUI9YnQrOHwwO2lmKChhQi1hbXww
KT09NDA5Nil7YnJlYWt9ZWxzZXtidD1hQn19YUI9YXArNHwwO2F0PWNbYUI+PjJdfDA7YW49YXQ7
YXA9YUI7YW09YXR9YW09Ym07YW49Ym47YXQ9Y1tibT4+Ml18MDt3aGlsZSgxKXtpZigoYW58MCk9
PShhdHwwKSl7YUI9YW0tNHwwO2F2PWNbYUI+PjJdfDA7YnY9YUI7Ync9YXYrNDA5NnwwO2J4PWF2
fWVsc2V7YnY9YW07Ync9YW47Yng9YXR9Ynk9YnctOHwwO2J6PStoW2J5Pj4zXTtpZihiej49YUgp
e2FtPWJ2O2FuPWJ5O2F0PWJ4fWVsc2V7YnJlYWt9fWlmKGJ2Pj4+MDxhcD4+PjApe2JwPWJpO2Jx
PWJ0O2JyPWFwO2JzPWJsO2JyZWFrIEw4MjN9aWYoKGJ2fDApPT0oYXB8MCkmYnk+Pj4wPGJ0Pj4+
MCl7YnA9Ymk7YnE9YnQ7YnI9YXA7YnM9Ymw7YnJlYWsgTDgyM31oW2J0Pj4zXT1iejtoW2J5Pj4z
XT1idTthdD1iaSsxfDA7YW49KGJsfDApPT0oYnR8MCk/Ynk6Ymw7YW09YnQrOHwwO2F2PWNbYXA+
PjJdfDA7aWYoKGFtLWF2fDApIT00MDk2KXtiaT1hdDtiaj1hbTtiaz1hcDtibD1hbjtibT1idjti
bj1ieTtibz1hdjthbz03MTE7Y29udGludWV9YXY9YXArNHwwO2FtPWNbYXY+PjJdfDA7Ymk9YXQ7
Ymo9YW07Yms9YXY7Ymw9YW47Ym09YnY7Ym49Ynk7Ym89YW07YW89NzExfX19d2hpbGUoMCk7ZG97
aWYoKGJxfDApPT0oYnN8MCkpe2JBPWJwfWVsc2V7YUg9K2hbYnM+PjNdO2FHPStoW2JxPj4zXTtp
ZihhSD49YUcpe2JBPWJwO2JyZWFrfWhbYnE+PjNdPWFIO2hbYnM+PjNdPWFHO2JBPWJwKzF8MH19
d2hpbGUoMCk7ZG97aWYoKGJBfDApPT0wKXthbT1jW1UrND4+Ml18MDtjW0M+PjJdPWNbVT4+Ml07
Y1tDKzQ+PjJdPWFtO2NbYWE+PjJdPWJyO2NbYWI+PjJdPWJxO2FtPWNOKEQsRSwwKXwwO2NbYWM+
PjJdPWJyO2NbYWQ+PjJdPWJxO2FuPWJxLShjW2JyPj4yXXwwKT4+Mzthdj1hbisxfDA7aWYoKGF2
fDApPjApe2F0PWJyKygoKGF2fDApLzUxMnwwKTw8Mil8MDtjW2FjPj4yXT1hdDtiQj0oY1thdD4+
Ml18MCkrKCgoYXZ8MCklNTEyfDApPDwzKXwwfWVsc2V7YXY9NTEwLWFufDA7YW49YnIrKCgoYXZ8
MCkvLTUxMnwwKTw8Mil8MDtjW2FjPj4yXT1hbjtiQj0oY1thbj4+Ml18MCkrKDUxMS0oKGF2fDAp
JTUxMnwwKTw8Myl8MH1jW2FkPj4yXT1iQjthdj1jW2FlKzQ+PjJdfDA7Y1tHPj4yXT1jW2FlPj4y
XTtjW0crND4+Ml09YXY7aWYoY04oRixILDApfDApe2lmKGFtKXthbz03NzA7YnJlYWsgTDcyNX1j
W1M+PjJdPWJyO2NbTz4+Ml09YnE7YmU9Y1tRPj4yXXwwO2JyZWFrIEw4MTZ9aWYoIWFtKXticmVh
a31hbT1icSs4fDA7aWYoKGFtLShjW2JyPj4yXXwwKXwwKT09NDA5Nil7YXY9YnIrNHwwO2JDPWNb
YXY+PjJdfDA7YkQ9YXZ9ZWxzZXtiQz1hbTtiRD1icn1jW1Q+PjJdPWJEO2NbUT4+Ml09YkM7YmU9
YkM7YnJlYWsgTDgxNn19d2hpbGUoMCk7YW09Y1tRPj4yXXwwO2lmKChicXwwKT09KGFtfDApKXti
RT0wfWVsc2V7YXY9Y1tUPj4yXXwwO2JFPShicS0oY1ticj4+Ml18MCk+PjMpKyhici1hdjw8Nykt
KGFtLShjW2F2Pj4yXXwwKT4+Myl8MH1hdj1jW08+PjJdfDA7aWYoKGF2fDApPT0oYnF8MCkpe2JG
PTB9ZWxzZXthbj1jW1M+PjJdfDA7YkY9KGF2LShjW2FuPj4yXXwwKT4+MykrKGFuLWJyPDw3KS0o
YnEtKGNbYnI+PjJdfDApPj4zKXwwfWlmKChiRXwwKTwoYkZ8MCkpe2FuPWNbVSs0Pj4yXXwwO2Nb
ST4+Ml09Y1tVPj4yXTtjW0krND4+Ml09YW47Y1tiPj4yXT1icjtjW2FmPj4yXT1icTtjSyhKLEss
ZCk7YW49YnErOHwwO2lmKChhbi0oY1ticj4+Ml18MCl8MCk9PTQwOTYpe2F2PWJyKzR8MDtiRz1j
W2F2Pj4yXXwwO2JIPWF2fWVsc2V7Ykc9YW47Ykg9YnJ9Y1tUPj4yXT1iSDtjW1E+PjJdPWJHO2Jl
PWJHO2JyZWFrfWNbYWc+PjJdPWJyO2NbYWg+PjJdPWJxO2FuPWJxLShjW2JyPj4yXXwwKT4+Mzth
dj1hbisxfDA7aWYoKGF2fDApPjApe2F0PWJyKygoKGF2fDApLzUxMnwwKTw8Mil8MDtjW2FnPj4y
XT1hdDtiST0oY1thdD4+Ml18MCkrKCgoYXZ8MCklNTEyfDApPDwzKXwwfWVsc2V7YXY9NTEwLWFu
fDA7YW49YnIrKCgoYXZ8MCkvLTUxMnwwKTw8Mil8MDtjW2FnPj4yXT1hbjtiST0oY1thbj4+Ml18
MCkrKDUxMS0oKGF2fDApJTUxMnwwKTw8Myl8MH1jW2FoPj4yXT1iSTthdj1jW2FlKzQ+PjJdfDA7
Y1tNPj4yXT1jW2FlPj4yXTtjW00rND4+Ml09YXY7Y0soTCxOLGQpO2NbUz4+Ml09YnI7Y1tPPj4y
XT1icTtiZT1hbX19d2hpbGUoMCk7Uj1jW08+PjJdfDA7aWYoKFJ8MCk9PShiZXwwKSl7YW89NzY5
O2JyZWFrfWVsc2V7YWk9UjtQPWJlfX1pZigoYW98MCk9PTYzMCl7YmU9Y1tVPj4yXXwwO2JxPWNb
VSs0Pj4yXXwwO2NbZj4+Ml09YmU7Y1tmKzQ+PjJdPWJxO2Nbaj4+Ml09YmU7Y1tqKzQ+PjJdPWJx
O2Y9YnE7YnI9ajtqPWJlO2Q9Zi0oY1tqPj4yXXwwKT4+MztOPWQrMXwwO2lmKChOfDApPjApe0w9
aisoKChOfDApLzUxMnwwKTw8Mil8MDtjW2JyPj4yXT1MO2JKPShjW0w+PjJdfDApKygoKE58MCkl
NTEyfDApPDwzKXwwfWVsc2V7Tj01MTAtZHwwO2Q9aisoKChOfDApLy01MTJ8MCk8PDIpfDA7Y1ti
cj4+Ml09ZDtiSj0oY1tkPj4yXXwwKSsoNTExLSgoTnwwKSU1MTJ8MCk8PDMpfDB9Y1trKzQ+PjJd
PWJKO2NbbD4+Ml09YmU7Y1tsKzQ+PjJdPWJxO2JKPWw7bD1mLShjW2o+PjJdfDApPj4zO049bCsy
fDA7aWYoKE58MCk+MCl7ZD1qKygoKE58MCkvNTEyfDApPDwyKXwwO2NbYko+PjJdPWQ7Yks9KGNb
ZD4+Ml18MCkrKCgoTnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtOPTUwOS1sfDA7bD1qKygoKE58MCkv
LTUxMnwwKTw8Mil8MDtjW2JKPj4yXT1sO2JLPShjW2w+PjJdfDApKyg1MTEtKChOfDApJTUxMnww
KTw8Myl8MH1jW20rND4+Ml09Yks7Y1tuPj4yXT1iZTtjW24rND4+Ml09YnE7YnE9bjtuPWYtKGNb
aj4+Ml18MCk+PjM7Zj1uKzN8MDtpZigoZnwwKT4wKXtiZT1qKygoKGZ8MCkvNTEyfDApPDwyKXww
O2NbYnE+PjJdPWJlO2JMPShjW2JlPj4yXXwwKSsoKChmfDApJTUxMnwwKTw8Myl8MH1lbHNle2Y9
NTA4LW58MDtuPWorKCgoZnwwKS8tNTEyfDApPDwyKXwwO2NbYnE+PjJdPW47Ykw9KGNbbj4+Ml18
MCkrKDUxMS0oKGZ8MCklNTEyfDApPDwzKXwwfWNbbys0Pj4yXT1iTDtpZigoYWl8MCk9PShha3ww
KSl7Ykw9YWotNHwwO2NbUz4+Ml09Ykw7Zj0oY1tiTD4+Ml18MCkrNDA5NnwwO2NbTz4+Ml09Zjti
TT1mfWVsc2V7Yk09YWl9Y1tPPj4yXT1iTS04O2JNPWNbYWUrND4+Ml18MDtjW3A+PjJdPWNbYWU+
PjJdO2NbcCs0Pj4yXT1iTTtjTChnLGssbSxvLHEsMCl8MDtpPWU7cmV0dXJufWVsc2UgaWYoKGFv
fDApPT02MTApe3E9Y1tVPj4yXXwwO289Y1tVKzQ+PjJdfDA7bT1vO2s9by0oY1txPj4yXXwwKT4+
MztvPWsrMXwwO2lmKChvfDApPjApe2JOPShjW3ErKCgob3wwKS81MTJ8MCk8PDIpPj4yXXwwKSso
KChvfDApJTUxMnwwKTw8Myl8MH1lbHNle289NTEwLWt8MDtiTj0oY1txKygoKG98MCkvLTUxMnww
KTw8Mik+PjJdfDApKyg1MTEtKChvfDApJTUxMnwwKTw8Myl8MH1vPWsrMnwwO2lmKChvfDApPjAp
e2JPPShjW3ErKCgob3wwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChvfDApJTUxMnwwKTw8Myl8MH1l
bHNle289NTA5LWt8MDtiTz0oY1txKygoKG98MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChv
fDApJTUxMnwwKTw8Myl8MH1pZigoYWl8MCk9PShha3wwKSl7bz1hai00fDA7Y1tTPj4yXT1vO3E9
KGNbbz4+Ml18MCkrNDA5NnwwO2NbTz4+Ml09cTtiUD1xfWVsc2V7YlA9YWl9Y1tPPj4yXT1iUC04
O2JQPWNbYWUrND4+Ml18MDtidT0raFtiTj4+M107Yno9K2hbbT4+M107YTg9K2hbYk8+PjNdO3E9
YTg8YnU7ZG97aWYoYnU8Ynope2lmKHEpe2hbbT4+M109YTg7aFtiTz4+M109Yno7YlE9Yno7YnJl
YWt9aFttPj4zXT1idTtoW2JOPj4zXT1iejtiZD0raFtiTz4+M107aWYoYmQ+PWJ6KXtiUT1iZDti
cmVha31oW2JOPj4zXT1iZDtoW2JPPj4zXT1iejtiUT1ien1lbHNle2lmKCFxKXtiUT1hODticmVh
a31oW2JOPj4zXT1hODtoW2JPPj4zXT1idTtiZD0raFtiTj4+M107YTA9K2hbbT4+M107aWYoYmQ+
PWEwKXtiUT1idTticmVha31oW20+PjNdPWJkO2hbYk4+PjNdPWEwO2JRPStoW2JPPj4zXX19d2hp
bGUoMCk7YnU9K2hbYlA+PjNdO2lmKGJ1Pj1iUSl7aT1lO3JldHVybn1oW2JPPj4zXT1idTtoW2JQ
Pj4zXT1iUTtiUT0raFtiTz4+M107YnU9K2hbYk4+PjNdO2lmKGJRPj1idSl7aT1lO3JldHVybn1o
W2JOPj4zXT1iUTtoW2JPPj4zXT1idTtidT0raFtiTj4+M107YlE9K2hbbT4+M107aWYoYnU+PWJR
KXtpPWU7cmV0dXJufWhbbT4+M109YnU7aFtiTj4+M109YlE7aT1lO3JldHVybn1lbHNlIGlmKChh
b3wwKT09NjQzKXtiTj1jW1UrND4+Ml18MDtjW3I+PjJdPWNbVT4+Ml07Y1tyKzQ+PjJdPWJOO2JO
PWNbYWUrND4+Ml18MDtjW3Q+PjJdPWNbYWU+PjJdO2NbdCs0Pj4yXT1iTjtjTShzLHUsMCk7aT1l
O3JldHVybn1lbHNlIGlmKChhb3wwKT09NTkzKXtpZigoYWl8MCk9PShha3wwKSl7dT1hai00fDA7
Y1tTPj4yXT11O3M9KGNbdT4+Ml18MCkrNDA5NnwwO2NbTz4+Ml09cztiUj1zfWVsc2V7YlI9YWl9
cz1iUi04fDA7Y1tPPj4yXT1zO2JRPStoW3M+PjNdO2J1PStoW1A+PjNdO2lmKGJRPj1idSl7aT1l
O3JldHVybn1oW1A+PjNdPWJRO2hbcz4+M109YnU7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09
NTk3KXtzPWNbVT4+Ml18MDtQPWNbVSs0Pj4yXXwwO1U9UDtiUj1QLShjW3M+PjJdfDApPj4zO1A9
YlIrMXwwO2lmKChQfDApPjApe2JTPShjW3MrKCgoUHwwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChQ
fDApJTUxMnwwKTw8Myl8MH1lbHNle1A9NTEwLWJSfDA7YlM9KGNbcysoKChQfDApLy01MTJ8MCk8
PDIpPj4yXXwwKSsoNTExLSgoUHwwKSU1MTJ8MCk8PDMpfDB9aWYoKGFpfDApPT0oYWt8MCkpe2Fr
PWFqLTR8MDtjW1M+PjJdPWFrO1M9KGNbYWs+PjJdfDApKzQwOTZ8MDtjW08+PjJdPVM7YlQ9U31l
bHNle2JUPWFpfWNbTz4+Ml09YlQtODtiVD1jW2FlKzQ+PjJdfDA7YnU9K2hbYlM+PjNdO2JRPSto
W1U+PjNdO2E4PStoW2JUPj4zXTthZT1hODxidTtpZihidT49YlEpe2lmKCFhZSl7aT1lO3JldHVy
bn1oW2JTPj4zXT1hODtoW2JUPj4zXT1idTtiej0raFtiUz4+M107YTA9K2hbVT4+M107aWYoYno+
PWEwKXtpPWU7cmV0dXJufWhbVT4+M109Yno7aFtiUz4+M109YTA7aT1lO3JldHVybn1pZihhZSl7
aFtVPj4zXT1hODtoW2JUPj4zXT1iUTtpPWU7cmV0dXJufWhbVT4+M109YnU7aFtiUz4+M109YlE7
YnU9K2hbYlQ+PjNdO2lmKGJ1Pj1iUSl7aT1lO3JldHVybn1oW2JTPj4zXT1idTtoW2JUPj4zXT1i
UTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT03NjApe2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98
MCk9PTc2Nyl7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzY4KXtpPWU7cmV0dXJufWVsc2Ug
aWYoKGFvfDApPT03Njkpe2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTc3MCl7aT1lO3JldHVy
bn19ZnVuY3Rpb24gY0woYSxiLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLjAsbz0wLjAscD0wLjAscT0wLHI9MCxzPTAu
MCx0PTAuMCx1PTAuMCx2PTAsdz0wO2c9aTtqPWE7YT1pO2k9aSs4fDA7Y1thPj4yXT1jW2o+PjJd
O2NbYSs0Pj4yXT1jW2orND4+Ml07aj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tqPj4yXTtjW2Ir
ND4+Ml09Y1tqKzQ+PjJdO2o9ZDtkPWk7aT1pKzh8MDtjW2Q+PjJdPWNbaj4+Ml07Y1tkKzQ+PjJd
PWNbais0Pj4yXTtqPWU7ZT1pO2k9aSs4fDA7Y1tlPj4yXT1jW2o+PjJdO2NbZSs0Pj4yXT1jW2or
ND4+Ml07aj1mO2Y9aTtpPWkrOHwwO2NbZj4+Ml09Y1tqPj4yXTtjW2YrND4+Ml09Y1tqKzQ+PjJd
O2o9Y1thKzQ+PjJdfDA7az1jW2IrND4+Ml18MDtsPWNbZCs0Pj4yXXwwO209Y1tlKzQ+PjJdfDA7
bj0raFtrPj4zXTtvPStoW2o+PjNdO3A9K2hbbD4+M107cT1wPG47ZG97aWYobjxvKXtpZihxKXto
W2o+PjNdPXA7aFtsPj4zXT1vO3I9MTtzPW87YnJlYWt9aFtqPj4zXT1uO2hbaz4+M109bzt0PSto
W2w+PjNdO2lmKHQ+PW8pe3I9MTtzPXQ7YnJlYWt9aFtrPj4zXT10O2hbbD4+M109bztyPTI7cz1v
fWVsc2V7aWYoIXEpe3I9MDtzPXA7YnJlYWt9aFtrPj4zXT1wO2hbbD4+M109bjt0PStoW2s+PjNd
O3U9K2hbaj4+M107aWYodD49dSl7cj0xO3M9bjticmVha31oW2o+PjNdPXQ7aFtrPj4zXT11O3I9
MjtzPStoW2w+PjNdfX13aGlsZSgwKTtuPStoW20+PjNdO2Rve2lmKG48cyl7aFtsPj4zXT1uO2hb
bT4+M109cztwPStoW2w+PjNdO289K2hbaz4+M107aWYocD49byl7dj1yKzF8MDticmVha31oW2s+
PjNdPXA7aFtsPj4zXT1vO289K2hbaz4+M107cD0raFtqPj4zXTtpZihvPj1wKXt2PXIrMnwwO2Jy
ZWFrfWhbaj4+M109bztoW2s+PjNdPXA7dj1yKzN8MH1lbHNle3Y9cn19d2hpbGUoMCk7cj1jW2Yr
ND4+Ml18MDtmPWNbZSs0Pj4yXXwwO3M9K2hbcj4+M107bj0raFtmPj4zXTtpZihzPj1uKXt3PXY7
aT1nO3JldHVybiB3fDB9aFtmPj4zXT1zO2hbcj4+M109bjtyPWNbZCs0Pj4yXXwwO249K2hbZj4+
M107cz0raFtyPj4zXTtpZihuPj1zKXt3PXYrMXwwO2k9ZztyZXR1cm4gd3wwfWhbcj4+M109bjto
W2Y+PjNdPXM7Zj1jW2IrND4+Ml18MDtzPStoW3I+PjNdO249K2hbZj4+M107aWYocz49bil7dz12
KzJ8MDtpPWc7cmV0dXJuIHd8MH1oW2Y+PjNdPXM7aFtyPj4zXT1uO3I9Y1thKzQ+PjJdfDA7bj0r
aFtmPj4zXTtzPStoW3I+PjNdO2lmKG4+PXMpe3c9diszfDA7aT1nO3JldHVybiB3fDB9aFtyPj4z
XT1uO2hbZj4+M109czt3PXYrNHwwO2k9ZztyZXR1cm4gd3wwfWZ1bmN0aW9uIGNNKGEsYixkKXth
PWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAu
MCxwPTAuMCxxPTAuMCxyPTAuMCxzPTAuMCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
O2Q9aTtlPWE7YT1pO2k9aSs4fDA7Y1thPj4yXT1jW2U+PjJdO2NbYSs0Pj4yXT1jW2UrND4+Ml07
ZT1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tlPj4yXTtjW2IrND4+Ml09Y1tlKzQ+PjJdO2U9Y1th
Pj4yXXwwO2Y9YSs0fDA7Zz0oY1tmPj4yXXwwKS0oY1tlPj4yXXwwKT4+MztqPWcrMnwwO2lmKChq
fDApPjApe2s9ZSsoKChqfDApLzUxMnwwKTw8Mil8MDtsPShjW2s+PjJdfDApKygoKGp8MCklNTEy
fDApPDwzKXwwO209a31lbHNle2s9NTA5LWd8MDtnPWUrKCgoa3wwKS8tNTEyfDApPDwyKXwwO2w9
KGNbZz4+Ml18MCkrKDUxMS0oKGt8MCklNTEyfDApPDwzKXwwO209Z31nPWE7YT1jW2c+PjJdfDA7
az1jW2crND4+Ml18MDtnPWs7ZT1rLShjW2E+PjJdfDApPj4zO2s9ZSsxfDA7aWYoKGt8MCk+MCl7
bj0oY1thKygoKGt8MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgoa3wwKSU1MTJ8MCk8PDMpfDB9ZWxz
ZXtrPTUxMC1lfDA7bj0oY1thKygoKGt8MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChrfDAp
JTUxMnwwKTw8Myl8MH1vPStoW24+PjNdO3A9K2hbZz4+M107cT0raFtsPj4zXTtrPXE8bztkb3tp
ZihvPHApe2lmKGspe2hbZz4+M109cTtoW2w+PjNdPXA7YnJlYWt9aFtnPj4zXT1vO2hbbj4+M109
cDtyPStoW2w+PjNdO2lmKHI+PXApe2JyZWFrfWhbbj4+M109cjtoW2w+PjNdPXB9ZWxzZXtpZigh
ayl7YnJlYWt9aFtuPj4zXT1xO2hbbD4+M109bztyPStoW24+PjNdO3M9K2hbZz4+M107aWYocj49
cyl7YnJlYWt9aFtnPj4zXT1yO2hbbj4+M109c319d2hpbGUoMCk7bj1sLShjW20+PjJdfDApPj4z
O2c9bisxfDA7aWYoKGd8MCk+MCl7az1tKygoKGd8MCkvNTEyfDApPDwyKXwwO2E9Y1trPj4yXXww
O3Q9azt1PWErKCgoZ3wwKSU1MTJ8MCk8PDMpfDA7dj1hfWVsc2V7YT01MTAtbnwwO249bSsoKChh
fDApLy01MTJ8MCk8PDIpfDA7Zz1jW24+PjJdfDA7dD1uO3U9ZysoNTExLSgoYXwwKSU1MTJ8MCk8
PDMpfDA7dj1nfWc9Yis0fDA7Yj1sO2w9dDt0PXU7dT1tO209djtMMTAyMjp3aGlsZSgxKXt2PWI7
YT10O249dTtrPW07d2hpbGUoMSl7aWYoKGF8MCk9PShjW2c+PjJdfDApKXticmVhayBMMTAyMn1v
PStoW2E+PjNdO3E9K2hbdj4+M107aWYobzxxKXtlPW47aj12O3c9YTtwPXE7d2hpbGUoMSl7aFt3
Pj4zXT1wO2lmKChqfDApPT0oY1tmPj4yXXwwKSl7YnJlYWt9aWYoKGp8MCk9PShjW2U+PjJdfDAp
KXt4PWUtNHwwO3k9eDt6PShjW3g+PjJdfDApKzQwOTZ8MH1lbHNle3k9ZTt6PWp9eD16LTh8MDtx
PStoW3g+PjNdO2lmKG88cSl7ZT15O3c9ajtqPXg7cD1xfWVsc2V7YnJlYWt9fWhbaj4+M109bztB
PWNbbD4+Ml18MH1lbHNle0E9a313PWErOHwwO2lmKCh3LUF8MCk9PTQwOTYpe2JyZWFrfWVsc2V7
dj1hO2E9dztuPWw7az1BfX1rPWwrNHwwO249Y1trPj4yXXwwO2I9YTt1PWw7bD1rO3Q9bjttPW59
aT1kO3JldHVybn1mdW5jdGlvbiBjTihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLjAsRT0wLjAsRj0wLEc9MCxIPTAuMCxJ
PTAuMCxKPTAuMCxLPTAsTD0wLE09MCxOPTAuMCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAs
Vj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0w
O2Q9aTtpPWkrOHwwO2U9YTthPWk7aT1pKzh8MDtjW2E+PjJdPWNbZT4+Ml07Y1thKzQ+PjJdPWNb
ZSs0Pj4yXTtlPWI7Yj1pO2k9aSs4fDA7Y1tiPj4yXT1jW2U+PjJdO2NbYis0Pj4yXT1jW2UrND4+
Ml07ZT1kfDA7Zj1lO2c9aTtpPWkrOHwwO2o9ZztrPWk7aT1pKzh8MDtsPWs7bT1pO2k9aSs4fDA7
bj1tO289aTtpPWkrOHwwO3A9bztxPWIrNHwwO3I9Y1txPj4yXXwwO3M9YSs0fDA7dD1jW3M+PjJd
fDA7aWYoKHJ8MCk9PSh0fDApKXt1PTE7aT1kO3JldHVybiB1fDB9dj1ifDA7dz1jW3Y+PjJdfDA7
eD1jW2E+PjJdfDA7eT1jW3c+PjJdfDA7ej10LShjW3g+PjJdfDApPj4zO3N3aXRjaCgoci15Pj4z
KSsody14PDw3KS16fDApe2Nhc2UgMjp7aWYoKHJ8MCk9PSh5fDApKXtBPXctNHwwO2Nbdj4+Ml09
QTtCPShjW0E+PjJdfDApKzQwOTZ8MDtjW3E+PjJdPUI7Qz1CfWVsc2V7Qz1yfUI9Qy04fDA7Y1tx
Pj4yXT1CO0Q9K2hbQj4+M107RT0raFt0Pj4zXTtpZihEPj1FKXt1PTE7aT1kO3JldHVybiB1fDB9
aFt0Pj4zXT1EO2hbQj4+M109RTt1PTE7aT1kO3JldHVybiB1fDB9O2Nhc2UgMDpjYXNlIDE6e3U9
MTtpPWQ7cmV0dXJuIHV8MH07Y2FzZSAzOntCPWE7dD1jW0I+PjJdfDA7Qz1jW0IrND4+Ml18MDtC
PUM7QT1DLShjW3Q+PjJdfDApPj4zO0M9QSsxfDA7aWYoKEN8MCk+MCl7Rj0oY1t0KygoKEN8MCkv
NTEyfDApPDwyKT4+Ml18MCkrKCgoQ3wwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtDPTUxMC1BfDA7Rj0o
Y1t0KygoKEN8MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChDfDApJTUxMnwwKTw8Myl8MH1p
ZigocnwwKT09KHl8MCkpe0M9dy00fDA7Y1t2Pj4yXT1DO3Q9KGNbQz4+Ml18MCkrNDA5NnwwO2Nb
cT4+Ml09dDtHPXR9ZWxzZXtHPXJ9Y1txPj4yXT1HLTg7Rz1jW2IrND4+Ml18MDtFPStoW0Y+PjNd
O0Q9K2hbQj4+M107SD0raFtHPj4zXTt0PUg8RTtpZihFPj1EKXtpZighdCl7dT0xO2k9ZDtyZXR1
cm4gdXwwfWhbRj4+M109SDtoW0c+PjNdPUU7ST0raFtGPj4zXTtKPStoW0I+PjNdO2lmKEk+PUop
e3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0I+PjNdPUk7aFtGPj4zXT1KO3U9MTtpPWQ7cmV0dXJuIHV8
MH1pZih0KXtoW0I+PjNdPUg7aFtHPj4zXT1EO3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0I+PjNdPUU7
aFtGPj4zXT1EO0U9K2hbRz4+M107aWYoRT49RCl7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbRj4+M109
RTtoW0c+PjNdPUQ7dT0xO2k9ZDtyZXR1cm4gdXwwfTtjYXNlIDQ6e0c9YTtGPWNbRz4+Ml18MDtC
PWNbRys0Pj4yXXwwO0c9Qjt0PUItKGNbRj4+Ml18MCk+PjM7Qj10KzF8MDtpZigoQnwwKT4wKXtL
PShjW0YrKCgoQnwwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChCfDApJTUxMnwwKTw8Myl8MH1lbHNl
e0I9NTEwLXR8MDtLPShjW0YrKCgoQnwwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKEJ8MCkl
NTEyfDApPDwzKXwwfUI9dCsyfDA7aWYoKEJ8MCk+MCl7TD0oY1tGKygoKEJ8MCkvNTEyfDApPDwy
KT4+Ml18MCkrKCgoQnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtCPTUwOS10fDA7TD0oY1tGKygoKEJ8
MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChCfDApJTUxMnwwKTw8Myl8MH1pZigocnwwKT09
KHl8MCkpe0I9dy00fDA7Y1t2Pj4yXT1CO0Y9KGNbQj4+Ml18MCkrNDA5NnwwO2NbcT4+Ml09RjtN
PUZ9ZWxzZXtNPXJ9Y1txPj4yXT1NLTg7TT1jW2IrND4+Ml18MDtEPStoW0s+PjNdO0U9K2hbRz4+
M107SD0raFtMPj4zXTtGPUg8RDtkb3tpZihEPEUpe2lmKEYpe2hbRz4+M109SDtoW0w+PjNdPUU7
Tj1FO2JyZWFrfWhbRz4+M109RDtoW0s+PjNdPUU7Sj0raFtMPj4zXTtpZihKPj1FKXtOPUo7YnJl
YWt9aFtLPj4zXT1KO2hbTD4+M109RTtOPUV9ZWxzZXtpZighRil7Tj1IO2JyZWFrfWhbSz4+M109
SDtoW0w+PjNdPUQ7Sj0raFtLPj4zXTtJPStoW0c+PjNdO2lmKEo+PUkpe049RDticmVha31oW0c+
PjNdPUo7aFtLPj4zXT1JO049K2hbTD4+M119fXdoaWxlKDApO0Q9K2hbTT4+M107aWYoRD49Til7
dT0xO2k9ZDtyZXR1cm4gdXwwfWhbTD4+M109RDtoW00+PjNdPU47Tj0raFtMPj4zXTtEPStoW0s+
PjNdO2lmKE4+PUQpe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0s+PjNdPU47aFtMPj4zXT1EO0Q9K2hb
Sz4+M107Tj0raFtHPj4zXTtpZihEPj1OKXt1PTE7aT1kO3JldHVybiB1fDB9aFtHPj4zXT1EO2hb
Sz4+M109Tjt1PTE7aT1kO3JldHVybiB1fDB9O2Nhc2UgNTp7Sz1hO0c9Y1tLPj4yXXwwO0w9Y1tL
KzQ+PjJdfDA7Y1tlPj4yXT1HO2NbZSs0Pj4yXT1MO2NbZz4+Ml09RztjW2crND4+Ml09TDtlPUw7
Sz1nO2c9RztNPWUtKGNbZz4+Ml18MCk+PjM7Rj1NKzF8MDtpZigoRnwwKT4wKXtCPWcrKCgoRnww
KS81MTJ8MCk8PDIpfDA7Y1tLPj4yXT1CO089KGNbQj4+Ml18MCkrKCgoRnwwKSU1MTJ8MCk8PDMp
fDB9ZWxzZXtGPTUxMC1NfDA7TT1nKygoKEZ8MCkvLTUxMnwwKTw8Mil8MDtjW0s+PjJdPU07Tz0o
Y1tNPj4yXXwwKSsoNTExLSgoRnwwKSU1MTJ8MCk8PDMpfDB9Y1tqKzQ+PjJdPU87Y1trPj4yXT1H
O2Nbays0Pj4yXT1MO089aztrPWUtKGNbZz4+Ml18MCk+PjM7Rj1rKzJ8MDtpZigoRnwwKT4wKXtN
PWcrKCgoRnwwKS81MTJ8MCk8PDIpfDA7Y1tPPj4yXT1NO1A9KGNbTT4+Ml18MCkrKCgoRnwwKSU1
MTJ8MCk8PDMpfDB9ZWxzZXtGPTUwOS1rfDA7az1nKygoKEZ8MCkvLTUxMnwwKTw8Mil8MDtjW08+
PjJdPWs7UD0oY1trPj4yXXwwKSsoNTExLSgoRnwwKSU1MTJ8MCk8PDMpfDB9Y1tsKzQ+PjJdPVA7
Y1ttPj4yXT1HO2NbbSs0Pj4yXT1MO0w9bTttPWUtKGNbZz4+Ml18MCk+PjM7ZT1tKzN8MDtpZigo
ZXwwKT4wKXtHPWcrKCgoZXwwKS81MTJ8MCk8PDIpfDA7Y1tMPj4yXT1HO1E9KGNbRz4+Ml18MCkr
KCgoZXwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtlPTUwOC1tfDA7bT1nKygoKGV8MCkvLTUxMnwwKTw8
Mil8MDtjW0w+PjJdPW07UT0oY1ttPj4yXXwwKSsoNTExLSgoZXwwKSU1MTJ8MCk8PDMpfDB9Y1tu
KzQ+PjJdPVE7aWYoKHJ8MCk9PSh5fDApKXt5PXctNHwwO2Nbdj4+Ml09eTt2PShjW3k+PjJdfDAp
KzQwOTZ8MDtjW3E+PjJdPXY7Uj12fWVsc2V7Uj1yfWNbcT4+Ml09Ui04O1I9YjtiPWNbUis0Pj4y
XXwwO2Nbbz4+Ml09Y1tSPj4yXTtjW28rND4+Ml09YjtjTChmLGosbCxuLHAsMCl8MDt1PTE7aT1k
O3JldHVybiB1fDB9O2RlZmF1bHQ6e3A9eisyfDA7aWYoKHB8MCk+MCl7bj14KygoKHB8MCkvNTEy
fDApPDwyKXwwO1M9bjtUPShjW24+PjJdfDApKygoKHB8MCklNTEyfDApPDwzKXwwfWVsc2V7cD01
MDktenwwO3o9eCsoKChwfDApLy01MTJ8MCk8PDIpfDA7Uz16O1Q9KGNbej4+Ml18MCkrKDUxMS0o
KHB8MCklNTEyfDApPDwzKXwwfXA9YTthPWNbcD4+Ml18MDt6PWNbcCs0Pj4yXXwwO3A9ejt4PXot
KGNbYT4+Ml18MCk+PjM7ej14KzF8MDtpZigoenwwKT4wKXtVPShjW2ErKCgoenwwKS81MTJ8MCk8
PDIpPj4yXXwwKSsoKCh6fDApJTUxMnwwKTw8Myl8MH1lbHNle3o9NTEwLXh8MDtVPShjW2ErKCgo
enwwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKHp8MCklNTEyfDApPDwzKXwwfU49K2hbVT4+
M107RD0raFtwPj4zXTtIPStoW1Q+PjNdO3o9SDxOO2Rve2lmKE48RCl7aWYoeil7aFtwPj4zXT1I
O2hbVD4+M109RDticmVha31oW3A+PjNdPU47aFtVPj4zXT1EO0U9K2hbVD4+M107aWYoRT49RCl7
YnJlYWt9aFtVPj4zXT1FO2hbVD4+M109RH1lbHNle2lmKCF6KXticmVha31oW1U+PjNdPUg7aFtU
Pj4zXT1OO0U9K2hbVT4+M107ST0raFtwPj4zXTtpZihFPj1JKXticmVha31oW3A+PjNdPUU7aFtV
Pj4zXT1JfX13aGlsZSgwKTtVPVQtKGNbUz4+Ml18MCk+PjM7cD1VKzF8MDtpZigocHwwKT4wKXt6
PVMrKCgocHwwKS81MTJ8MCk8PDIpfDA7YT1jW3o+PjJdfDA7Vj0wO1c9YSsoKChwfDApJTUxMnww
KTw8Myl8MDtYPXo7WT1TO1o9VDtfPWF9ZWxzZXthPTUxMC1VfDA7VT1TKygoKGF8MCkvLTUxMnww
KTw8Mil8MDt6PWNbVT4+Ml18MDtWPTA7Vz16Kyg1MTEtKChhfDApJTUxMnwwKTw8Myl8MDtYPVU7
WT1TO1o9VDtfPXp9TDEwNjU6d2hpbGUoMSl7ej1WOyQ9VztUPVk7Uz1aO1U9Xzt3aGlsZSgxKXtp
ZigoJHwwKT09KGNbcT4+Ml18MCkpe3U9MTthYT05MDY7YnJlYWsgTDEwNjV9Tj0raFskPj4zXTtI
PStoW1M+PjNdO2lmKE48SCl7YT1UO3A9Uzt4PSQ7RD1IO3doaWxlKDEpe2hbeD4+M109RDtpZigo
cHwwKT09KGNbcz4+Ml18MCkpe2JyZWFrfWlmKChwfDApPT0oY1thPj4yXXwwKSl7bj1hLTR8MDth
Yj1uO2FjPShjW24+PjJdfDApKzQwOTZ8MH1lbHNle2FiPWE7YWM9cH1uPWFjLTh8MDtIPStoW24+
PjNdO2lmKE48SCl7YT1hYjt4PXA7cD1uO0Q9SH1lbHNle2JyZWFrfX1oW3A+PjNdPU47eD16KzF8
MDtpZigoeHwwKT09OCl7YnJlYWsgTDEwNjV9YWQ9eDthZT1jW1g+PjJdfDB9ZWxzZXthZD16O2Fl
PVV9eD0kKzh8MDtpZigoeC1hZXwwKT09NDA5Nil7YnJlYWt9ZWxzZXt6PWFkO1M9JDskPXg7VD1Y
O1U9YWV9fVU9WCs0fDA7VD1jW1U+PjJdfDA7Vj1hZDtXPVQ7WT1YO1g9VTtaPSQ7Xz1UfWlmKChh
YXwwKT09OTA2KXtpPWQ7cmV0dXJuIHV8MH1hYT0kKzh8MDtpZigoYWEtKGNbWD4+Ml18MCl8MCk9
PTQwOTYpe2FmPWNbWCs0Pj4yXXwwfWVsc2V7YWY9YWF9dT0oYWZ8MCk9PShjW3E+PjJdfDApO2k9
ZDtyZXR1cm4gdXwwfX1yZXR1cm4gMH1mdW5jdGlvbiBjTyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1k
fDA7dmFyIGU9MCxmPTAsZz0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTA7ZT1hKzh8MDtmPWNbZT4+Ml18MDtnPWErNHww
O2k9Y1tnPj4yXXwwO2lmKChmfDApPT0oaXwwKSl7aj0wfWVsc2V7aj0oZi1pPDw3KS0xfDB9az1h
KzE2fDA7bD1jW2s+PjJdfDA7bT1hKzIwfDA7bj1jW20+PjJdfDA7bz1qLWwtbnwwO2lmKG8+Pj4w
PGI+Pj4wKXtjUShhLGItb3wwKTtwPWNbbT4+Ml18MDtxPWNbaz4+Ml18MDtyPWNbZz4+Ml18MDtz
PWNbZT4+Ml18MH1lbHNle3A9bjtxPWw7cj1pO3M9Zn1mPXErcHwwO3A9cisoZj4+Pjk8PDIpfDA7
aWYoKHN8MCk9PShyfDApKXt0PTB9ZWxzZXt0PShjW3A+PjJdfDApKygoZiY1MTEpPDwzKXwwfWlm
KChifDApPT0wKXtyZXR1cm59ZWxzZXt1PXQ7dj1wO3c9Yn13aGlsZSgxKXtpZigodXwwKSE9MCl7
aFt1Pj4zXT0raFtkPj4zXX1iPXctMXwwO3A9dSs4fDA7aWYoKHAtKGNbdj4+Ml18MCl8MCk9PTQw
OTYpe3Q9dis0fDA7eD10O3k9Y1t0Pj4yXXwwfWVsc2V7eD12O3k9cH1jW20+PjJdPShjW20+PjJd
fDApKzE7aWYoKGJ8MCk9PTApe2JyZWFrfWVsc2V7dT15O3Y9eDt3PWJ9fXJldHVybn1mdW5jdGlv
biBjUChhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wO2Q9YSs0fDA7ZT1jW2Q+PjJdfDA7
Zj1hfDA7ZG97aWYoKGV8MCk9PShjW2Y+PjJdfDApKXtnPWErOHwwO2g9Y1tnPj4yXXwwO2k9YSsx
MnwwO2o9Y1tpPj4yXXwwO2s9ajtpZihoPj4+MDxqPj4+MCl7aj1oO2w9KChrLWo+PjIpKzF8MCkv
MnwwO209ai1lfDA7aj1oKyhsLShtPj4yKTw8Mil8MDtrXyhqfDAsZXwwLG18MCk7Y1tkPj4yXT1q
O2NbZz4+Ml09KGNbZz4+Ml18MCkrKGw8PDIpO249ajticmVha31qPWstZT4+MTtrPShqfDApPT0w
PzE6ajtqPWtPKGs8PDIpfDA7bD1qKygoayszfDApPj4+Mjw8Mil8MDttPWorKGs8PDIpfDA7aWYo
KGV8MCk9PShofDApKXtvPWw7cD1lfWVsc2V7az1lO3E9bDtkb3tpZigocXwwKT09MCl7cj0wfWVs
c2V7Y1txPj4yXT1jW2s+PjJdO3I9cX1xPXIrNHwwO2s9ays0fDA7fXdoaWxlKChrfDApIT0oaHww
KSk7bz1xO3A9Y1tmPj4yXXwwfWNbZj4+Ml09ajtjW2Q+PjJdPWw7Y1tnPj4yXT1vO2NbaT4+Ml09
bTtpZigocHwwKT09MCl7bj1sO2JyZWFrfWtTKHApO249Y1tkPj4yXXwwfWVsc2V7bj1lfX13aGls
ZSgwKTtlPW4tNHwwO2lmKChlfDApPT0wKXtzPW47dD1zLTR8MDtjW2Q+PjJdPXQ7cmV0dXJufWNb
ZT4+Ml09Y1tiPj4yXTtzPWNbZD4+Ml18MDt0PXMtNHwwO2NbZD4+Ml09dDtyZXR1cm59ZnVuY3Rp
b24gY1EoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0w
LEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAs
Tz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxh
YT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTA7ZD1p
O2k9aSszMnwwO2U9ZHwwO2Y9ZCs4fDA7Zz1hfDA7aD1hKzh8MDtqPWNbaD4+Ml18MDtrPWErNHww
O2w9Y1trPj4yXXwwO209KChqfDApPT0obHwwKSkrYnwwO2I9KChtJjUxMXwwKSE9MCkrKG0+Pj45
KXwwO209YSsxNnwwO249Y1ttPj4yXXwwO289bj4+Pjk7cD1iPj4+MDxvPj4+MD9iOm87cT1iLXB8
MDtpZigoYnwwKT09KHB8MCkpe2NbbT4+Ml09bi0oYjw8OSk7aWYoKGJ8MCk9PTApe2k9ZDtyZXR1
cm59bj1hKzEyfDA7cj1hfDA7cz1iO3Q9ajt1PWw7d2hpbGUoMSl7dj1jW3U+PjJdfDA7dz11KzR8
MDtjW2s+PjJdPXc7ZG97aWYoKHR8MCk9PShjW24+PjJdfDApKXt4PWNbcj4+Ml18MDtpZih3Pj4+
MD54Pj4+MCl7eT13O3o9KCh5LXg+PjIpKzF8MCkvLTJ8MDtBPXorMXwwO0I9dC15fDA7a18odSso
QTw8Mil8MCx3fDAsQnwwKTt5PXUrKEErKEI+PjIpPDwyKXwwO2NbaD4+Ml09eTtjW2s+PjJdPShj
W2s+PjJdfDApKyh6PDwyKTtDPXk7YnJlYWt9eT10LXg+PjE7ej0oeXwwKT09MD8xOnk7eT1rTyh6
PDwyKXwwO0I9eSsoej4+PjI8PDIpfDA7QT15Kyh6PDwyKXwwO2lmKCh3fDApPT0odHwwKSl7RD1C
O0U9eH1lbHNle3g9dzt6PUI7ZG97aWYoKHp8MCk9PTApe0Y9MH1lbHNle2Nbej4+Ml09Y1t4Pj4y
XTtGPXp9ej1GKzR8MDt4PXgrNHwwO313aGlsZSgoeHwwKSE9KHR8MCkpO0Q9ejtFPWNbcj4+Ml18
MH1jW3I+PjJdPXk7Y1trPj4yXT1CO2NbaD4+Ml09RDtjW24+PjJdPUE7aWYoKEV8MCk9PTApe0M9
RDticmVha31rUyhFKTtDPWNbaD4+Ml18MH1lbHNle0M9dH19d2hpbGUoMCk7aWYoKEN8MCk9PTAp
e0c9MH1lbHNle2NbQz4+Ml09djtHPWNbaD4+Ml18MH13PUcrNHwwO2NbaD4+Ml09dzt4PXMtMXww
O2lmKCh4fDApPT0wKXticmVha31zPXg7dD13O3U9Y1trPj4yXXwwfWk9ZDtyZXR1cm59dT1hKzEy
fDA7dD11fDA7cz1jW3Q+PjJdfDA7Rz1hfDA7YT1zLShjW0c+PjJdfDApfDA7Qz1qLWw+PjI7aWYo
cT4+PjA8PSgoYT4+MiktQ3wwKT4+PjApe2w9cTtFPWo7aj1zO3doaWxlKDEpe2lmKChqfDApPT0o
RXwwKSl7SD05NzE7YnJlYWt9cz1rTyg0MDk2KXwwO2lmKChFfDApPT0wKXtJPTB9ZWxzZXtjW0U+
PjJdPXM7ST1jW2g+PjJdfDB9cz1JKzR8MDtjW2g+PjJdPXM7RD1sLTF8MDtpZigoRHwwKT09MCl7
Sj1zO0g9OTcyO2JyZWFrfWw9RDtFPXM7aj1jW3Q+PjJdfDB9ZG97aWYoKEh8MCk9PTk3MSl7aWYo
KGx8MCk9PTApe0o9ajtIPTk3MjticmVha31FPX5vO0k9fmI7cz1FPj4+MD5JPj4+MD9FOkk7ST1s
O2Rve2NbZT4+Ml09a08oNDA5Nil8MDtjUChnLGUpO0k9SS0xfDA7Sz1jW2g+PjJdfDA7TD0oY1tt
Pj4yXXwwKSs1MTItKChLLShjW2s+PjJdfDApfDApPT00KXwwO2NbbT4+Ml09TDt9d2hpbGUoKEl8
MCkhPTApO009bC0xLXN8MDtOPUs7Tz1MfX13aGlsZSgwKTtpZigoSHwwKT09OTcyKXtNPXA7Tj1K
O089Y1ttPj4yXXwwfWNbbT4+Ml09Ty0oTTw8OSk7aWYoKE18MCk9PTApe2k9ZDtyZXR1cm59ZWxz
ZXtQPU07UT1OfWRve049Y1trPj4yXXwwO009Y1tOPj4yXXwwO089Tis0fDA7Y1trPj4yXT1PO2Rv
e2lmKChRfDApPT0oY1t0Pj4yXXwwKSl7Sj1jW0c+PjJdfDA7aWYoTz4+PjA+Sj4+PjApe0g9TztM
PSgoSC1KPj4yKSsxfDApLy0yfDA7Sz1MKzF8MDtsPVEtSHwwO2tfKE4rKEs8PDIpfDAsT3wwLGx8
MCk7SD1OKyhLKyhsPj4yKTw8Mil8MDtjW2g+PjJdPUg7Y1trPj4yXT0oY1trPj4yXXwwKSsoTDw8
Mik7Uj1IO2JyZWFrfUg9US1KPj4xO0w9KEh8MCk9PTA/MTpIO0g9a08oTDw8Mil8MDtsPUgrKEw+
Pj4yPDwyKXwwO0s9SCsoTDw8Mil8MDtpZigoT3wwKT09KFF8MCkpe1M9bDtUPUp9ZWxzZXtKPU87
TD1sO2Rve2lmKChMfDApPT0wKXtVPTB9ZWxzZXtjW0w+PjJdPWNbSj4+Ml07VT1MfUw9VSs0fDA7
Sj1KKzR8MDt9d2hpbGUoKEp8MCkhPShRfDApKTtTPUw7VD1jW0c+PjJdfDB9Y1tHPj4yXT1IO2Nb
az4+Ml09bDtjW2g+PjJdPVM7Y1t0Pj4yXT1LO2lmKChUfDApPT0wKXtSPVM7YnJlYWt9a1MoVCk7
Uj1jW2g+PjJdfDB9ZWxzZXtSPVF9fXdoaWxlKDApO2lmKChSfDApPT0wKXtWPTB9ZWxzZXtjW1I+
PjJdPU07Vj1jW2g+PjJdfDB9UT1WKzR8MDtjW2g+PjJdPVE7UD1QLTF8MDt9d2hpbGUoKFB8MCkh
PTApO2k9ZDtyZXR1cm59UD1wPDw5O1E9YT4+MTthPXErQ3wwO1Y9UT4+PjA8YT4+PjA/YTpRO1E9
ZisxMnwwO2NbUT4+Ml09MDtjW2YrMTY+PjJdPXU7aWYoKFZ8MCk9PTApe1c9MH1lbHNle1c9a08o
Vjw8Mil8MH11PWZ8MDtjW3U+PjJdPVc7YT1XKyhDLXA8PDIpfDA7Qz1mKzh8MDtjW0M+PjJdPWE7
Uj1mKzR8MDtjW1I+PjJdPWE7VD1XKyhWPDwyKXwwO2NbUT4+Ml09VDtWPXE7cT1XO1c9YTtTPVQ7
VD1hO3doaWxlKDEpe2E9a08oNDA5Nil8MDtkb3tpZigoV3wwKT09KFN8MCkpe2lmKFQ+Pj4wPnE+
Pj4wKXtVPVQ7Tz0oKFUtcT4+MikrMXwwKS8tMnwwO049Uy1VfDA7a18oVCsoTzw8Mil8MCxUfDAs
TnwwKTtVPVQrKE8rKE4+PjIpPDwyKXwwO2NbQz4+Ml09VTtOPShjW1I+PjJdfDApKyhPPDwyKXww
O2NbUj4+Ml09TjtYPVU7WT1TO1o9cTtfPU47YnJlYWt9Tj1TLXE+PjE7VT0oTnwwKT09MD8xOk47
Tj1rTyhVPDwyKXwwO089TisoVT4+PjI8PDIpfDA7cz1OKyhVPDwyKXwwO2lmKChUfDApPT0oU3ww
KSl7JD1PO2FhPXF9ZWxzZXtVPVQ7Sj1PO2Rve2lmKChKfDApPT0wKXthYj0wfWVsc2V7Y1tKPj4y
XT1jW1U+PjJdO2FiPUp9Sj1hYis0fDA7VT1VKzR8MDt9d2hpbGUoKFV8MCkhPShTfDApKTskPUo7
YWE9Y1t1Pj4yXXwwfWNbdT4+Ml09TjtjW1I+PjJdPU87Y1tDPj4yXT0kO2NbUT4+Ml09cztpZigo
YWF8MCk9PTApe1g9JDtZPXM7Wj1OO189TzticmVha31rUyhhYSk7WD0kO1k9cztaPU47Xz1PfWVs
c2V7WD1XO1k9UztaPXE7Xz1UfX13aGlsZSgwKTtpZigoWHwwKT09MCl7YWM9MH1lbHNle2NbWD4+
Ml09YTthYz1jW0M+PjJdfDB9YWQ9YWMrNHwwO2NbQz4+Ml09YWQ7TT1WLTF8MDtpZigoTXwwKT09
MCl7YnJlYWt9ZWxzZXtWPU07cT1aO1c9YWQ7Uz1ZO1Q9X319aWYoKHB8MCkhPTApe189cDtwPWNb
az4+Ml18MDtUPWFkO2FkPVk7WT1aO3doaWxlKDEpe2Rve2lmKChUfDApPT0oYWR8MCkpe1o9Y1tS
Pj4yXXwwO2lmKFo+Pj4wPlk+Pj4wKXtTPVo7Vz0oKFMtWT4+MikrMXwwKS8tMnwwO3E9WisoVzw8
Mil8MDtWPWFkLVN8MDtrXyhxfDAsWnwwLFZ8MCk7Uz1aKyhXKyhWPj4yKTw8Mil8MDtjW0M+PjJd
PVM7Y1tSPj4yXT1xO2FlPVM7YWY9YWQ7YWc9WTticmVha31TPWFkLVk+PjE7cT0oU3wwKT09MD8x
OlM7Uz1rTyhxPDwyKXwwO1Y9UysocT4+PjI8PDIpfDA7Vz1TKyhxPDwyKXwwO2lmKChafDApPT0o
YWR8MCkpe2FoPVY7YWk9WX1lbHNle3E9WjtaPVY7ZG97aWYoKFp8MCk9PTApe2FqPTB9ZWxzZXtj
W1o+PjJdPWNbcT4+Ml07YWo9Wn1aPWFqKzR8MDtxPXErNHwwO313aGlsZSgocXwwKSE9KGFkfDAp
KTthaD1aO2FpPWNbdT4+Ml18MH1jW3U+PjJdPVM7Y1tSPj4yXT1WO2NbQz4+Ml09YWg7Y1tRPj4y
XT1XO2lmKChhaXwwKT09MCl7YWU9YWg7YWY9VzthZz1TO2JyZWFrfWtTKGFpKTthZT1haDthZj1X
O2FnPVN9ZWxzZXthZT1UO2FmPWFkO2FnPVl9fXdoaWxlKDApO2lmKChhZXwwKT09MCl7YWs9MH1l
bHNle2NbYWU+PjJdPWNbcD4+Ml07YWs9Y1tDPj4yXXwwfWE9YWsrNHwwO2NbQz4+Ml09YTtxPShj
W2s+PjJdfDApKzR8MDtjW2s+PjJdPXE7Tz1fLTF8MDtpZigoT3wwKT09MCl7YnJlYWt9ZWxzZXtf
PU87cD1xO1Q9YTthZD1hZjtZPWFnfX19YWc9Y1toPj4yXXwwO3doaWxlKDEpe2lmKChhZ3wwKT09
KGNbaz4+Ml18MCkpe2JyZWFrfVk9YWctNHwwO2NTKGYsWSk7YWc9WX1mPWNbRz4+Ml18MDtjW0c+
PjJdPWNbdT4+Ml07Y1t1Pj4yXT1mO2Nbaz4+Ml09Y1tSPj4yXTtjW1I+PjJdPWFnO1I9Y1toPj4y
XXwwO2NbaD4+Ml09Y1tDPj4yXTtjW0M+PjJdPVI7aD1jW3Q+PjJdfDA7Y1t0Pj4yXT1jW1E+PjJd
O2NbUT4+Ml09aDtjW20+PjJdPShjW20+PjJdfDApLVA7aWYoKGFnfDApIT0oUnwwKSl7Y1tDPj4y
XT1SKyh+KChSLTQrKC1hZ3wwKXwwKT4+PjIpPDwyKX1pZigoZnwwKT09MCl7aT1kO3JldHVybn1r
UyhmKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGNSKGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8
MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLjAsaT0wLjAsaj0wLjAsaz0wLGw9MC4wLG09MC4w
LG49MC4wLG89MCxwPTA7Zz0raFtiPj4zXTtpPStoW2E+PjNdO2o9K2hbYz4+M107Zj1qPGc7ZG97
aWYoZzxpKXtpZihmKXtoW2E+PjNdPWo7aFtjPj4zXT1pO2s9MTtsPWk7YnJlYWt9aFthPj4zXT1n
O2hbYj4+M109aTttPStoW2M+PjNdO2lmKG0+PWkpe2s9MTtsPW07YnJlYWt9aFtiPj4zXT1tO2hb
Yz4+M109aTtrPTI7bD1pfWVsc2V7aWYoIWYpe2s9MDtsPWo7YnJlYWt9aFtiPj4zXT1qO2hbYz4+
M109ZzttPStoW2I+PjNdO249K2hbYT4+M107aWYobT49bil7az0xO2w9ZzticmVha31oW2E+PjNd
PW07aFtiPj4zXT1uO2s9MjtsPStoW2M+PjNdfX13aGlsZSgwKTtnPStoW2Q+PjNdO2Rve2lmKGc8
bCl7aFtjPj4zXT1nO2hbZD4+M109bDtqPStoW2M+PjNdO2k9K2hbYj4+M107aWYoaj49aSl7bz1r
KzF8MDticmVha31oW2I+PjNdPWo7aFtjPj4zXT1pO2k9K2hbYj4+M107aj0raFthPj4zXTtpZihp
PGope2hbYT4+M109aTtoW2I+PjNdPWo7bz1rKzN8MDticmVha31lbHNle289aysyfDA7YnJlYWt9
fWVsc2V7bz1rfX13aGlsZSgwKTtsPStoW2U+PjNdO2c9K2hbZD4+M107aWYobD49Zyl7cD1vO3Jl
dHVybiBwfDB9aFtkPj4zXT1sO2hbZT4+M109ZztnPStoW2Q+PjNdO2w9K2hbYz4+M107aWYoZz49
bCl7cD1vKzF8MDtyZXR1cm4gcHwwfWhbYz4+M109ZztoW2Q+PjNdPWw7bD0raFtjPj4zXTtnPSto
W2I+PjNdO2lmKGw+PWcpe3A9bysyfDA7cmV0dXJuIHB8MH1oW2I+PjNdPWw7aFtjPj4zXT1nO2c9
K2hbYj4+M107bD0raFthPj4zXTtpZihnPj1sKXtwPW8rM3wwO3JldHVybiBwfDB9aFthPj4zXT1n
O2hbYj4+M109bDtwPW8rNHwwO3JldHVybiBwfDB9ZnVuY3Rpb24gY1MoYSxiKXthPWF8MDtiPWJ8
MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MDtkPWErNHwwO2U9Y1tkPj4yXXwwO2Y9YXwwO2Rve2lmKChlfDApPT0o
Y1tmPj4yXXwwKSl7Zz1hKzh8MDtoPWNbZz4+Ml18MDtpPWErMTJ8MDtqPWNbaT4+Ml18MDtrPWo7
aWYoaD4+PjA8aj4+PjApe2o9aDtsPSgoay1qPj4yKSsxfDApLzJ8MDttPWotZXwwO2o9aCsobC0o
bT4+Mik8PDIpfDA7a18oanwwLGV8MCxtfDApO2NbZD4+Ml09ajtjW2c+PjJdPShjW2c+PjJdfDAp
KyhsPDwyKTtuPWo7YnJlYWt9aj1rLWU+PjE7az0oanwwKT09MD8xOmo7aj1rTyhrPDwyKXwwO2w9
aisoKGsrM3wwKT4+PjI8PDIpfDA7bT1qKyhrPDwyKXwwO2lmKChlfDApPT0oaHwwKSl7bz1sO3A9
ZX1lbHNle2s9ZTtxPWw7ZG97aWYoKHF8MCk9PTApe3I9MH1lbHNle2NbcT4+Ml09Y1trPj4yXTty
PXF9cT1yKzR8MDtrPWsrNHwwO313aGlsZSgoa3wwKSE9KGh8MCkpO289cTtwPWNbZj4+Ml18MH1j
W2Y+PjJdPWo7Y1tkPj4yXT1sO2NbZz4+Ml09bztjW2k+PjJdPW07aWYoKHB8MCk9PTApe249bDti
cmVha31rUyhwKTtuPWNbZD4+Ml18MH1lbHNle249ZX19d2hpbGUoMCk7ZT1uLTR8MDtpZigoZXww
KT09MCl7cz1uO3Q9cy00fDA7Y1tkPj4yXT10O3JldHVybn1jW2U+PjJdPWNbYj4+Ml07cz1jW2Q+
PjJdfDA7dD1zLTR8MDtjW2Q+PjJdPXQ7cmV0dXJufWZ1bmN0aW9uIGNUKCl7Y1syNDQ2XT0wO2Nb
MjQ0N109MDtjWzI0NDhdPTA7YSQoNzIsOTc4NCx1fDApfDA7cmV0dXJufWZ1bmN0aW9uIGNVKGEs
YixjKXthPWF8MDtiPWJ8MDtjPWN8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGk9MCxqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAuMCxxPTAuMCxyPTAuMCxzPTAuMCx0PTAuMCx1PTAsdj0wLHc9MCx4
PTAuMCx5PTAsej0wLjAsQT0wLEI9MCxDPTAsRD0wLjAsRT0wLEY9MCxHPTAuMCxIPTAsST0wLEo9
MCxLPTAuMCxMPTAsTT0wLE49MC4wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLjAsVT0wLFY9MCxX
PTAuMCxYPTAsWT0wLjA7ZD1hO2E9YjtMMTM5Nzp3aGlsZSgxKXtiPWE7ZT1hLTh8MDtmPWQ7TDEz
OTk6d2hpbGUoMSl7Zz1mO2k9Yi1nfDA7aj1pPj4zO3N3aXRjaChqfDApe2Nhc2UgMzp7az0xMTAy
O2JyZWFrIEwxMzk3O2JyZWFrfTtjYXNlIDU6e2s9MTEyMjticmVhayBMMTM5NzticmVha307Y2Fz
ZSAyOntrPTExMDA7YnJlYWsgTDEzOTc7YnJlYWt9O2Nhc2UgMDpjYXNlIDE6e2s9MTE4NTticmVh
ayBMMTM5NzticmVha307Y2FzZSA0OntrPTExMTA7YnJlYWsgTDEzOTc7YnJlYWt9O2RlZmF1bHQ6
e319aWYoKGl8MCk8MjQ4KXtrPTExMjQ7YnJlYWsgTDEzOTd9bD0oanwwKS8yfDA7bT1mKyhsPDwz
KXwwO2Rve2lmKChpfDApPjc5OTIpe249KGp8MCkvNHwwO289Y1IoZixmKyhuPDwzKXwwLG0sZiso
bitsPDwzKXwwLGUsMCl8MH1lbHNle3A9K2hbbT4+M107cT0raFtmPj4zXTtyPStoW2U+PjNdO249
cjxwO2lmKHA+PXEpe2lmKCFuKXtvPTA7YnJlYWt9aFttPj4zXT1yO2hbZT4+M109cDtzPStoW20+
PjNdO3Q9K2hbZj4+M107aWYocz49dCl7bz0xO2JyZWFrfWhbZj4+M109cztoW20+PjNdPXQ7bz0y
O2JyZWFrfWlmKG4pe2hbZj4+M109cjtoW2U+PjNdPXE7bz0xO2JyZWFrfWhbZj4+M109cDtoW20+
PjNdPXE7cD0raFtlPj4zXTtpZihwPj1xKXtvPTE7YnJlYWt9aFttPj4zXT1wO2hbZT4+M109cTtv
PTJ9fXdoaWxlKDApO3E9K2hbZj4+M107cD0raFttPj4zXTtkb3tpZihxPHApe3U9ZTt2PW99ZWxz
ZXtsPWU7d2hpbGUoMSl7dz1sLTh8MDtpZigoZnwwKT09KHd8MCkpe2JyZWFrfXg9K2hbdz4+M107
aWYoeDxwKXtrPTExNjI7YnJlYWt9ZWxzZXtsPXd9fWlmKChrfDApPT0xMTYyKXtrPTA7aFtmPj4z
XT14O2hbdz4+M109cTt1PXc7dj1vKzF8MDticmVha31sPWYrOHwwO3I9K2hbZT4+M107aWYocTxy
KXt5PWx9ZWxzZXtqPWw7d2hpbGUoMSl7aWYoKGp8MCk9PShlfDApKXtrPTExOTc7YnJlYWsgTDEz
OTd9ej0raFtqPj4zXTtBPWorOHwwO2lmKHE8eil7YnJlYWt9ZWxzZXtqPUF9fWhbaj4+M109cjto
W2U+PjNdPXo7eT1BfWlmKCh5fDApPT0oZXwwKSl7az0xMTkyO2JyZWFrIEwxMzk3fWVsc2V7Qj1l
O0M9eX13aGlsZSgxKXt0PStoW2Y+PjNdO2w9Qzt3aGlsZSgxKXtEPStoW2w+PjNdO0U9bCs4fDA7
aWYodD49RCl7bD1FfWVsc2V7Rj1CO2JyZWFrfX1kb3tGPUYtOHwwO0c9K2hbRj4+M107fXdoaWxl
KHQ8Ryk7aWYobD4+PjA+PUY+Pj4wKXtmPWw7Y29udGludWUgTDEzOTl9aFtsPj4zXT1HO2hbRj4+
M109RDtCPUY7Qz1FfX19d2hpbGUoMCk7aj1mKzh8MDtMMTQzODpkb3tpZihqPj4+MDx1Pj4+MCl7
aT11O249ajtIPXY7ST1tO3doaWxlKDEpe3E9K2hbST4+M107Sj1uO3doaWxlKDEpe0s9K2hbSj4+
M107TD1KKzh8MDtpZihLPHEpe0o9TH1lbHNle009aTticmVha319ZG97TT1NLTh8MDtOPStoW00+
PjNdO313aGlsZShOPj1xKTtpZihKPj4+MD5NPj4+MCl7Tz1KO1A9SDtRPUk7YnJlYWsgTDE0Mzh9
aFtKPj4zXT1OO2hbTT4+M109SztpPU07bj1MO0g9SCsxfDA7ST0oSXwwKT09KEp8MCk/TTpJfX1l
bHNle089ajtQPXY7UT1tfX13aGlsZSgwKTtkb3tpZigoT3wwKT09KFF8MCkpe1I9UH1lbHNle3E9
K2hbUT4+M107cD0raFtPPj4zXTtpZihxPj1wKXtSPVA7YnJlYWt9aFtPPj4zXT1xO2hbUT4+M109
cDtSPVArMXwwfX13aGlsZSgwKTtpZigoUnwwKT09MCl7Uz1jVihmLE8sMCl8MDttPU8rOHwwO2lm
KGNWKG0sYSwwKXwwKXtrPTExNzQ7YnJlYWt9aWYoUyl7Zj1tO2NvbnRpbnVlfX1tPU87aWYoKG0t
Z3wwKT49KGItbXwwKSl7az0xMTc4O2JyZWFrfWNVKGYsTyxjKTtmPU8rOHwwfWlmKChrfDApPT0x
MTc0KXtrPTA7aWYoUyl7az0xMTg2O2JyZWFrfWVsc2V7ZD1mO2E9Tztjb250aW51ZX19ZWxzZSBp
Zigoa3wwKT09MTE3OCl7az0wO2NVKE8rOHwwLGEsYyk7ZD1mO2E9Tztjb250aW51ZX19aWYoKGt8
MCk9PTExMDIpe089Zis4fDA7Sz0raFtPPj4zXTtOPStoW2Y+PjNdO0Q9K2hbZT4+M107ZD1EPEs7
aWYoSz49Til7aWYoIWQpe3JldHVybn1oW08+PjNdPUQ7aFtlPj4zXT1LO0c9K2hbTz4+M107ej0r
aFtmPj4zXTtpZihHPj16KXtyZXR1cm59aFtmPj4zXT1HO2hbTz4+M109ejtyZXR1cm59aWYoZCl7
aFtmPj4zXT1EO2hbZT4+M109TjtyZXR1cm59aFtmPj4zXT1LO2hbTz4+M109TjtLPStoW2U+PjNd
O2lmKEs+PU4pe3JldHVybn1oW08+PjNdPUs7aFtlPj4zXT1OO3JldHVybn1lbHNlIGlmKChrfDAp
PT0xMTIyKXtjUihmLGYrOHwwLGYrMTZ8MCxmKzI0fDAsZSwwKXwwO3JldHVybn1lbHNlIGlmKChr
fDApPT0xMTI0KXtPPWYrMTZ8MDtkPWYrOHwwO049K2hbZD4+M107Sz0raFtmPj4zXTtEPStoW08+
PjNdO2M9RDxOO2Rve2lmKE48Syl7aWYoYyl7aFtmPj4zXT1EO2hbTz4+M109SztUPUs7YnJlYWt9
aFtmPj4zXT1OO2hbZD4+M109SztpZihEPj1LKXtUPUQ7YnJlYWt9aFtkPj4zXT1EO2hbTz4+M109
SztUPUt9ZWxzZXtpZighYyl7VD1EO2JyZWFrfWhbZD4+M109RDtoW08+PjNdPU47aWYoRD49Syl7
VD1OO2JyZWFrfWhbZj4+M109RDtoW2Q+PjNdPUs7VD1OfX13aGlsZSgwKTtkPWYrMjR8MDtpZigo
ZHwwKT09KGF8MCkpe3JldHVybn1lbHNle1U9TztWPWQ7Vz1UfXdoaWxlKDEpe1Q9K2hbVj4+M107
aWYoVDxXKXtkPVU7Tz1WO049Vzt3aGlsZSgxKXtoW08+PjNdPU47aWYoKGR8MCk9PShmfDApKXtY
PWY7YnJlYWt9Yz1kLTh8MDtLPStoW2M+PjNdO2lmKFQ8Syl7Tz1kO2Q9YztOPUt9ZWxzZXtYPWQ7
YnJlYWt9fWhbWD4+M109VH1kPVYrOHwwO2lmKChkfDApPT0oYXwwKSl7YnJlYWt9Tj0raFtWPj4z
XTtVPVY7Vj1kO1c9Tn1yZXR1cm59ZWxzZSBpZigoa3wwKT09MTE5Nyl7cmV0dXJufWVsc2UgaWYo
KGt8MCk9PTExMDApe1c9K2hbZT4+M107Tj0raFtmPj4zXTtpZihXPj1OKXtyZXR1cm59aFtmPj4z
XT1XO2hbZT4+M109TjtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTE4NSl7cmV0dXJufWVsc2UgaWYo
KGt8MCk9PTExODYpe3JldHVybn1lbHNlIGlmKChrfDApPT0xMTkyKXtyZXR1cm59ZWxzZSBpZigo
a3wwKT09MTExMCl7az1mKzh8MDtWPWYrMTZ8MDtOPStoW2s+PjNdO1c9K2hbZj4+M107Sz0raFtW
Pj4zXTtVPUs8Tjtkb3tpZihOPFcpe2lmKFUpe2hbZj4+M109SztoW1Y+PjNdPVc7WT1XO2JyZWFr
fWhbZj4+M109TjtoW2s+PjNdPVc7aWYoSz49Vyl7WT1LO2JyZWFrfWhbaz4+M109SztoW1Y+PjNd
PVc7WT1XfWVsc2V7aWYoIVUpe1k9SzticmVha31oW2s+PjNdPUs7aFtWPj4zXT1OO2lmKEs+PVcp
e1k9TjticmVha31oW2Y+PjNdPUs7aFtrPj4zXT1XO1k9Tn19d2hpbGUoMCk7Tj0raFtlPj4zXTtp
ZihOPj1ZKXtyZXR1cm59aFtWPj4zXT1OO2hbZT4+M109WTtZPStoW1Y+PjNdO049K2hbaz4+M107
aWYoWT49Til7cmV0dXJufWhbaz4+M109WTtoW1Y+PjNdPU47Tj0raFtmPj4zXTtpZihZPj1OKXty
ZXR1cm59aFtmPj4zXT1ZO2hbaz4+M109TjtyZXR1cm59fWZ1bmN0aW9uIGNWKGEsYixjKXthPWF8
MDtiPWJ8MDtjPWN8MDt2YXIgZD0wLGU9MCxmPTAuMCxnPTAuMCxpPTAuMCxqPTAsaz0wLjAsbD0w
LjAsbT0wLG49MC4wLG89MC4wLHA9MCxxPTAscj0wLHM9MC4wLHQ9MCx1PTAsdj0wO3N3aXRjaChi
LWE+PjN8MCl7Y2FzZSAwOmNhc2UgMTp7ZD0xO3JldHVybiBkfDB9O2Nhc2UgMzp7Yz1hKzh8MDtl
PWItOHwwO2Y9K2hbYz4+M107Zz0raFthPj4zXTtpPStoW2U+PjNdO2o9aTxmO2lmKGY+PWcpe2lm
KCFqKXtkPTE7cmV0dXJuIGR8MH1oW2M+PjNdPWk7aFtlPj4zXT1mO2s9K2hbYz4+M107bD0raFth
Pj4zXTtpZihrPj1sKXtkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPWs7aFtjPj4zXT1sO2Q9MTtyZXR1
cm4gZHwwfWlmKGope2hbYT4+M109aTtoW2U+PjNdPWc7ZD0xO3JldHVybiBkfDB9aFthPj4zXT1m
O2hbYz4+M109ZztmPStoW2U+PjNdO2lmKGY+PWcpe2Q9MTtyZXR1cm4gZHwwfWhbYz4+M109Zjto
W2U+PjNdPWc7ZD0xO3JldHVybiBkfDB9O2Nhc2UgMjp7ZT1iLTh8MDtnPStoW2U+PjNdO2Y9K2hb
YT4+M107aWYoZz49Zil7ZD0xO3JldHVybiBkfDB9aFthPj4zXT1nO2hbZT4+M109ZjtkPTE7cmV0
dXJuIGR8MH07Y2FzZSA0OntlPWErOHwwO2M9YSsxNnwwO2o9Yi04fDA7Zj0raFtlPj4zXTtnPSto
W2E+PjNdO2k9K2hbYz4+M107bT1pPGY7ZG97aWYoZjxnKXtpZihtKXtoW2E+PjNdPWk7aFtjPj4z
XT1nO249ZzticmVha31oW2E+PjNdPWY7aFtlPj4zXT1nO2lmKGk+PWcpe249aTticmVha31oW2U+
PjNdPWk7aFtjPj4zXT1nO249Z31lbHNle2lmKCFtKXtuPWk7YnJlYWt9aFtlPj4zXT1pO2hbYz4+
M109ZjtpZihpPj1nKXtuPWY7YnJlYWt9aFthPj4zXT1pO2hbZT4+M109ZztuPWZ9fXdoaWxlKDAp
O2Y9K2hbaj4+M107aWYoZj49bil7ZD0xO3JldHVybiBkfDB9aFtjPj4zXT1mO2hbaj4+M109bjtu
PStoW2M+PjNdO2Y9K2hbZT4+M107aWYobj49Zil7ZD0xO3JldHVybiBkfDB9aFtlPj4zXT1uO2hb
Yz4+M109ZjtmPStoW2E+PjNdO2lmKG4+PWYpe2Q9MTtyZXR1cm4gZHwwfWhbYT4+M109bjtoW2U+
PjNdPWY7ZD0xO3JldHVybiBkfDB9O2Nhc2UgNTp7Y1IoYSxhKzh8MCxhKzE2fDAsYSsyNHwwLGIt
OHwwLDApfDA7ZD0xO3JldHVybiBkfDB9O2RlZmF1bHQ6e2U9YSsxNnwwO2M9YSs4fDA7Zj0raFtj
Pj4zXTtuPStoW2E+PjNdO2c9K2hbZT4+M107aj1nPGY7ZG97aWYoZjxuKXtpZihqKXtoW2E+PjNd
PWc7aFtlPj4zXT1uO289bjticmVha31oW2E+PjNdPWY7aFtjPj4zXT1uO2lmKGc+PW4pe289Zzti
cmVha31oW2M+PjNdPWc7aFtlPj4zXT1uO289bn1lbHNle2lmKCFqKXtvPWc7YnJlYWt9aFtjPj4z
XT1nO2hbZT4+M109ZjtpZihnPj1uKXtvPWY7YnJlYWt9aFthPj4zXT1nO2hbYz4+M109bjtvPWZ9
fXdoaWxlKDApO2M9YSsyNHwwO2lmKChjfDApPT0oYnwwKSl7ZD0xO3JldHVybiBkfDB9ZWxzZXtw
PWU7cT0wO3I9YztzPW99d2hpbGUoMSl7bz0raFtyPj4zXTtpZihvPHMpe2M9cDtlPXI7Zj1zO3do
aWxlKDEpe2hbZT4+M109ZjtpZigoY3wwKT09KGF8MCkpe3Q9YTticmVha31qPWMtOHwwO249K2hb
aj4+M107aWYobzxuKXtlPWM7Yz1qO2Y9bn1lbHNle3Q9YzticmVha319aFt0Pj4zXT1vO2M9cSsx
fDA7aWYoKGN8MCk9PTgpe2JyZWFrfWVsc2V7dT1jfX1lbHNle3U9cX1jPXIrOHwwO2lmKChjfDAp
PT0oYnwwKSl7ZD0xO3Y9MTI1NjticmVha31mPStoW3I+PjNdO3A9cjtxPXU7cj1jO3M9Zn1pZigo
dnwwKT09MTI1Nil7cmV0dXJuIGR8MH1kPShyKzh8MCk9PShifDApO3JldHVybiBkfDB9fXJldHVy
biAwfWZ1bmN0aW9uIGNXKGEpe2E9YXwwO3ZhciBiPTA7YT0oY1s0MDM4XXwwKS0xfDA7Y1s0MDM4
XT1hO2lmKChhfDApIT0wKXtyZXR1cm59YjtyZXR1cm59ZnVuY3Rpb24gY1goYil7Yj1ifDA7dmFy
IGQ9MCxlPTAsZj0wO2Rve2lmKChhWzE2MjgwXXwwKT09MCl7aWYoKGJjKDE2MjgwKXwwKT09MCl7
YnJlYWt9Y1syOTYyXT01NDg5O2I9MTtkPTU0ODk7ZG97ZD0oYWcoZD4+PjMwXmQsMTgxMjQzMzI1
Myl8MCkrYnwwO2NbMTE4NDgrKGI8PDIpPj4yXT1kO2I9YisxfDA7fXdoaWxlKGI+Pj4wPDYyNCk7
Y1szNTg2XT0wfX13aGlsZSgwKTtiPWNbMzU4Nl18MDtkPSgoYisxfDApPj4+MCklNjI0fDA7ZT0x
MTg0OCsoYjw8Mil8MDtmPWNbMTE4NDgrKGQ8PDIpPj4yXXwwO2NbZT4+Ml09LShmJjEpJi0xNzI3
NDgzNjgxXmNbMTE4NDgrKCgoKGIrMzk3fDApPj4+MCklNjI0fDApPDwyKT4+Ml1eKGYmMjE0NzQ4
MzY0NnxjW2U+PjJdJi0yMTQ3NDgzNjQ4KT4+PjE7ZT1jWzExODQ4KyhjWzM1ODZdPDwyKT4+Ml18
MDtmPWU+Pj4xMV5lO2NbMzU4Nl09ZDtkPWY8PDcmLTE2NTgwMzg2NTZeZjtmPWQ8PDE1Ji0yNzIy
MzY1NDReZDtyZXR1cm4gZj4+PjE4XmZ8MH1mdW5jdGlvbiBjWShhKXthPWF8MDt2YXIgYj0wO2I7
Y1s0MDM4XT0xO3JldHVybn1mdW5jdGlvbiBjWihiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0w
LGg9MCxqPTAsaz0wLGw9MDtiPWk7aT1pKzMyfDA7ZD1ifDA7ZT1iKzh8MDtmPWIrMTZ8MDtnPWIr
MjR8MDtkcSgxNTEzNixjW28+PjJdfDAsMTUxOTIpO2NbNDAxNF09NDUwMDtjWzQwMTZdPTQ1MjA7
Y1s0MDE1XT0wO2g9Y1sxMTIyXXwwO2VrKDE2MDU2K2h8MCwxNTEzNik7Y1toKzE2MTI4Pj4yXT0w
O2NbaCsxNjEzMj4+Ml09LTE7aD1jW3Q+PjJdfDA7ZXAoMTUwNDApO2NbMzc2MF09NDY0ODtjWzM3
NjhdPWg7aU4oZywxNTA0NCk7aD1pWChnLDE1MzkyKXwwO2o9aDtpTyhnKTtjWzM3NjldPWo7Y1sz
NzcwXT0xNTIwMDthWzE1MDg0XT0oYjBbY1soY1toPj4yXXwwKSsyOD4+Ml0mMTI3XShqKXwwKSYx
O2NbMzk0OF09NDQwNDtjWzM5NDldPTQ0MjQ7aj1jWzEwOThdfDA7ZWsoMTU3OTIranwwLDE1MDQw
KTtoPWorNzJ8MDtjWzE1NzkyK2g+PjJdPTA7Zz1qKzc2fDA7Y1sxNTc5MitnPj4yXT0tMTtrPWNb
cj4+Ml18MDtlcCgxNTA4OCk7Y1szNzcyXT00NjQ4O2NbMzc4MF09aztpTihmLDE1MDkyKTtrPWlY
KGYsMTUzOTIpfDA7bD1rO2lPKGYpO2NbMzc4MV09bDtjWzM3ODJdPTE1MjA4O2FbMTUxMzJdPShi
MFtjWyhjW2s+PjJdfDApKzI4Pj4yXSYxMjddKGwpfDApJjE7Y1szOTkyXT00NDA0O2NbMzk5M109
NDQyNDtlaygxNTk2OCtqfDAsMTUwODgpO2NbMTU5NjgraD4+Ml09MDtjWzE1OTY4K2c+PjJdPS0x
O2w9Y1soY1soY1szOTkyXXwwKS0xMj4+Ml18MCkrMTU5OTI+PjJdfDA7Y1szOTcwXT00NDA0O2Nb
Mzk3MV09NDQyNDtlaygxNTg4MCtqfDAsbCk7Y1sxNTg4MCtoPj4yXT0wO2NbMTU4ODArZz4+Ml09
LTE7Y1soY1soY1s0MDE0XXwwKS0xMj4+Ml18MCkrMTYxMjg+PjJdPTE1NzkyO2c9KGNbKGNbMzk5
Ml18MCktMTI+PjJdfDApKzE1OTcyfDA7Y1tnPj4yXT1jW2c+PjJdfDgxOTI7Y1soY1soY1szOTky
XXwwKS0xMj4+Ml18MCkrMTYwNDA+PjJdPTE1NzkyO2MzKDE0OTg0LGNbbz4+Ml18MCwxNTIxNik7
Y1szOTI2XT00NDUyO2NbMzkyOF09NDQ3MjtjWzM5MjddPTA7Zz1jWzExMTBdfDA7ZWsoMTU3MDQr
Z3wwLDE0OTg0KTtjW2crMTU3NzY+PjJdPTA7Y1tnKzE1NzgwPj4yXT0tMTtnPWNbdD4+Ml18MDtl
dygxNDg4OCk7Y1szNzIyXT00NTc2O2NbMzczMF09ZztpTihlLDE0ODkyKTtnPWlYKGUsMTUzODQp
fDA7aD1nO2lPKGUpO2NbMzczMV09aDtjWzM3MzJdPTE1MjI0O2FbMTQ5MzJdPShiMFtjWyhjW2c+
PjJdfDApKzI4Pj4yXSYxMjddKGgpfDApJjE7Y1szODU2XT00MzU2O2NbMzg1N109NDM3NjtoPWNb
MTA4Nl18MDtlaygxNTQyNCtofDAsMTQ4ODgpO2c9aCs3MnwwO2NbMTU0MjQrZz4+Ml09MDtlPWgr
NzZ8MDtjWzE1NDI0K2U+PjJdPS0xO2w9Y1tyPj4yXXwwO2V3KDE0OTM2KTtjWzM3MzRdPTQ1NzY7
Y1szNzQyXT1sO2lOKGQsMTQ5NDApO2w9aVgoZCwxNTM4NCl8MDtqPWw7aU8oZCk7Y1szNzQzXT1q
O2NbMzc0NF09MTUyMzI7YVsxNDk4MF09KGIwW2NbKGNbbD4+Ml18MCkrMjg+PjJdJjEyN10oail8
MCkmMTtjWzM5MDBdPTQzNTY7Y1szOTAxXT00Mzc2O2VrKDE1NjAwK2h8MCwxNDkzNik7Y1sxNTYw
MCtnPj4yXT0wO2NbMTU2MDArZT4+Ml09LTE7aj1jWyhjWyhjWzM5MDBdfDApLTEyPj4yXXwwKSsx
NTYyND4+Ml18MDtjWzM4NzhdPTQzNTY7Y1szODc5XT00Mzc2O2VrKDE1NTEyK2h8MCxqKTtjWzE1
NTEyK2c+PjJdPTA7Y1sxNTUxMitlPj4yXT0tMTtjWyhjWyhjWzM5MjZdfDApLTEyPj4yXXwwKSsx
NTc3Nj4+Ml09MTU0MjQ7ZT0oY1soY1szOTAwXXwwKS0xMj4+Ml18MCkrMTU2MDR8MDtjW2U+PjJd
PWNbZT4+Ml18ODE5MjtjWyhjWyhjWzM5MDBdfDApLTEyPj4yXXwwKSsxNTY3Mj4+Ml09MTU0MjQ7
aT1iO3JldHVybn1mdW5jdGlvbiBjXyhhKXthPWF8MDtldihhfDApO3JldHVybn1mdW5jdGlvbiBj
JChhKXthPWF8MDtldihhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBjMChiLGQpe2I9YnwwO2Q9
ZHwwO3ZhciBlPTA7YjBbY1soY1tiPj4yXXwwKSsyND4+Ml0mMTI3XShiKXwwO2U9aVgoZCwxNTM4
NCl8MDtkPWU7Y1tiKzM2Pj4yXT1kO2FbYis0NHwwXT0oYjBbY1soY1tlPj4yXXwwKSsyOD4+Ml0m
MTI3XShkKXwwKSYxO3JldHVybn1mdW5jdGlvbiBjMShhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAs
Zj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtiPWk7aT1pKzE2fDA7ZD1ifDA7ZT1iKzh8
MDtmPWErMzZ8MDtnPWErNDB8MDtoPWR8MDtqPWQrOHwwO2s9ZDtkPWErMzJ8MDtMMTY0Mjp3aGls
ZSgxKXthPWNbZj4+Ml18MDtsPWIkW2NbKGNbYT4+Ml18MCkrMjA+PjJdJjMxXShhLGNbZz4+Ml18
MCxoLGosZSl8MDthPShjW2U+PjJdfDApLWt8MDtpZigoYU0oaHwwLDEsYXwwLGNbZD4+Ml18MCl8
MCkhPShhfDApKXttPS0xO249MTMwNDticmVha31zd2l0Y2gobHwwKXtjYXNlIDI6e209LTE7bj0x
MzA1O2JyZWFrIEwxNjQyO2JyZWFrfTtjYXNlIDE6e2JyZWFrfTtkZWZhdWx0OntuPTEzMDE7YnJl
YWsgTDE2NDJ9fX1pZigobnwwKT09MTMwNCl7aT1iO3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09
MTMwNSl7aT1iO3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTMwMSl7bT0oKGFLKGNbZD4+Ml18
MCl8MCkhPTApPDwzMT4+MzE7aT1iO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rpb24gYzIoYixk
KXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4
fDA7aD1lKzE2fDA7aj1lKzI0fDA7az0oZHwwKT09LTE7TDE2NTE6ZG97aWYoIWspe2NbZz4+Ml09
ZDtpZigoYVtiKzQ0fDBdJjEpIT0wKXtpZigoYU0oZ3wwLDQsMSxjW2IrMzI+PjJdfDApfDApPT0x
KXticmVha31lbHNle2w9LTF9aT1lO3JldHVybiBsfDB9bT1mfDA7Y1toPj4yXT1tO249Zys0fDA7
bz1iKzM2fDA7cD1iKzQwfDA7cT1mKzh8MDtyPWY7cz1iKzMyfDA7dD1nO3doaWxlKDEpe3U9Y1tv
Pj4yXXwwO3Y9YjZbY1soY1t1Pj4yXXwwKSsxMj4+Ml0mMzFdKHUsY1twPj4yXXwwLHQsbixqLG0s
cSxoKXwwO2lmKChjW2o+PjJdfDApPT0odHwwKSl7bD0tMTt3PTEzMjA7YnJlYWt9aWYoKHZ8MCk9
PTMpe3c9MTMxMjticmVha311PSh2fDApPT0xO2lmKHY+Pj4wPj0yKXtsPS0xO3c9MTMyMjticmVh
a312PShjW2g+PjJdfDApLXJ8MDtpZigoYU0obXwwLDEsdnwwLGNbcz4+Ml18MCl8MCkhPSh2fDAp
KXtsPS0xO3c9MTMyMTticmVha31pZih1KXt0PXU/Y1tqPj4yXXwwOnR9ZWxzZXticmVhayBMMTY1
MX19aWYoKHd8MCk9PTEzMjEpe2k9ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTEzMjIpe2k9
ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTEzMTIpe2lmKChhTSh0fDAsMSwxLGNbcz4+Ml18
MCl8MCk9PTEpe2JyZWFrfWVsc2V7bD0tMX1pPWU7cmV0dXJuIGx8MH1lbHNlIGlmKCh3fDApPT0x
MzIwKXtpPWU7cmV0dXJuIGx8MH19fXdoaWxlKDApO2w9az8wOmQ7aT1lO3JldHVybiBsfDB9ZnVu
Y3Rpb24gYzMoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxqPTA7Zj1p
O2k9aSs4fDA7Zz1mfDA7ZXcoYnwwKTtjW2I+PjJdPTQ5NzY7Y1tiKzMyPj4yXT1kO2NbYis0MD4+
Ml09ZTtjW2IrNDg+PjJdPS0xO2FbYis1MnwwXT0wO2lOKGcsYis0fDApO2U9aVgoZywxNTM4NCl8
MDtkPWU7aD1iKzM2fDA7Y1toPj4yXT1kO2o9Yis0NHwwO2Nbaj4+Ml09YjBbY1soY1tlPj4yXXww
KSsyND4+Ml0mMTI3XShkKXwwO2Q9Y1toPj4yXXwwO2FbYis1M3wwXT0oYjBbY1soY1tkPj4yXXww
KSsyOD4+Ml0mMTI3XShkKXwwKSYxO2lmKChjW2o+PjJdfDApPD04KXtpTyhnKTtpPWY7cmV0dXJu
fWhWKDE4NCk7aU8oZyk7aT1mO3JldHVybn1mdW5jdGlvbiBjNChhKXthPWF8MDtldihhfDApO3Jl
dHVybn1mdW5jdGlvbiBjNShhKXthPWF8MDtldihhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBj
NihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtlPWlYKGQsMTUzODQpfDA7ZD1lO2Y9
YiszNnwwO2NbZj4+Ml09ZDtnPWIrNDR8MDtjW2c+PjJdPWIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJd
JjEyN10oZCl8MDtkPWNbZj4+Ml18MDthW2IrNTN8MF09KGIwW2NbKGNbZD4+Ml18MCkrMjg+PjJd
JjEyN10oZCl8MCkmMTtpZigoY1tnPj4yXXwwKTw9OCl7cmV0dXJufWhWKDE4NCk7cmV0dXJufWZ1
bmN0aW9uIGM3KGEpe2E9YXwwO3JldHVybiBkYShhLDApfDB9ZnVuY3Rpb24gYzgoYSl7YT1hfDA7
cmV0dXJuIGRhKGEsMSl8MH1mdW5jdGlvbiBjOShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0w
LGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7ZT1pO2k9aSszMnww
O2Y9ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1lKzI0fDA7az1iKzUyfDA7bD0oYVtrXSYxKSE9MDtp
ZigoZHwwKT09LTEpe2lmKGwpe209LTE7aT1lO3JldHVybiBtfDB9bj1jW2IrNDg+PjJdfDA7YVtr
XT0obnwwKSE9LTF8MDttPW47aT1lO3JldHVybiBtfDB9bj1iKzQ4fDA7TDE2OTQ6ZG97aWYobCl7
Y1toPj4yXT1jW24+PjJdO289Y1tiKzM2Pj4yXXwwO3A9ZnwwO3N3aXRjaChiNltjWyhjW28+PjJd
fDApKzEyPj4yXSYzMV0obyxjW2IrNDA+PjJdfDAsaCxoKzR8MCxqLHAsZis4fDAsZyl8MCl7Y2Fz
ZSAyOmNhc2UgMTp7bT0tMTtpPWU7cmV0dXJuIG18MH07Y2FzZSAzOnthW3BdPWNbbj4+Ml0mMjU1
O2NbZz4+Ml09ZisxO2JyZWFrfTtkZWZhdWx0Ont9fW89YiszMnwwO3doaWxlKDEpe3E9Y1tnPj4y
XXwwO2lmKHE+Pj4wPD1wPj4+MCl7YnJlYWsgTDE2OTR9cj1xLTF8MDtjW2c+PjJdPXI7aWYoKGJB
KGFbcl18MCxjW28+PjJdfDApfDApPT0tMSl7bT0tMTticmVha319aT1lO3JldHVybiBtfDB9fXdo
aWxlKDApO2Nbbj4+Ml09ZDthW2tdPTE7bT1kO2k9ZTtyZXR1cm4gbXwwfWZ1bmN0aW9uIGRhKGIs
ZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTA7ZT1pO2k9aSszMnwwO2Y9
ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1lKzI0fDA7az1iKzUyfDA7aWYoKGFba10mMSkhPTApe2w9
Yis0OHwwO209Y1tsPj4yXXwwO2lmKCFkKXtuPW07aT1lO3JldHVybiBufDB9Y1tsPj4yXT0tMTth
W2tdPTA7bj1tO2k9ZTtyZXR1cm4gbnwwfW09Y1tiKzQ0Pj4yXXwwO2s9KG18MCk+MT9tOjE7TDE3
MTQ6ZG97aWYoKGt8MCk+MCl7bT1iKzMyfDA7bD0wO3doaWxlKDEpe289YV8oY1ttPj4yXXwwKXww
O2lmKChvfDApPT0tMSl7bj0tMTticmVha31hW2YrbHwwXT1vJjI1NTtsPWwrMXwwO2lmKChsfDAp
Pj0oa3wwKSl7YnJlYWsgTDE3MTR9fWk9ZTtyZXR1cm4gbnwwfX13aGlsZSgwKTtMMTcyMTpkb3tp
ZigoYVtiKzUzfDBdJjEpPT0wKXtsPWIrNDB8MDttPWIrMzZ8MDtvPWZ8MDtwPWcrNHwwO3E9Yisz
MnwwO3I9aztMMTcyMzp3aGlsZSgxKXtzPWNbbD4+Ml18MDt0PXM7dT1jW3Q+PjJdfDA7dj1jW3Qr
ND4+Ml18MDt0PWNbbT4+Ml18MDt3PWYrcnwwO3N3aXRjaChiNltjWyhjW3Q+PjJdfDApKzE2Pj4y
XSYzMV0odCxzLG8sdyxoLGcscCxqKXwwKXtjYXNlIDE6e2JyZWFrfTtjYXNlIDI6e249LTE7eD0x
MzgwO2JyZWFrIEwxNzIzO2JyZWFrfTtjYXNlIDM6e3g9MTM2OTticmVhayBMMTcyMzticmVha307
ZGVmYXVsdDp7eT1yO2JyZWFrIEwxNzIxfX1zPWNbbD4+Ml18MDtjW3M+PjJdPXU7Y1tzKzQ+PjJd
PXY7aWYoKHJ8MCk9PTgpe249LTE7eD0xMzc5O2JyZWFrfXY9YV8oY1txPj4yXXwwKXwwO2lmKCh2
fDApPT0tMSl7bj0tMTt4PTEzODU7YnJlYWt9YVt3XT12JjI1NTtyPXIrMXwwfWlmKCh4fDApPT0x
Mzc5KXtpPWU7cmV0dXJuIG58MH1lbHNlIGlmKCh4fDApPT0xMzgwKXtpPWU7cmV0dXJuIG58MH1l
bHNlIGlmKCh4fDApPT0xMzg1KXtpPWU7cmV0dXJuIG58MH1lbHNlIGlmKCh4fDApPT0xMzY5KXtj
W2c+PjJdPWFbb118MDt5PXI7YnJlYWt9fWVsc2V7Y1tnPj4yXT1hW2Z8MF18MDt5PWt9fXdoaWxl
KDApO2lmKGQpe2Q9Y1tnPj4yXXwwO2NbYis0OD4+Ml09ZDtuPWQ7aT1lO3JldHVybiBufDB9ZD1i
KzMyfDA7Yj15O3doaWxlKDEpe2lmKChifDApPD0wKXticmVha315PWItMXwwO2lmKChiQShhW2Yr
eXwwXXwwLGNbZD4+Ml18MCl8MCk9PS0xKXtuPS0xO3g9MTM4MjticmVha31lbHNle2I9eX19aWYo
KHh8MCk9PTEzODIpe2k9ZTtyZXR1cm4gbnwwfW49Y1tnPj4yXXwwO2k9ZTtyZXR1cm4gbnwwfWZ1
bmN0aW9uIGRiKGEpe2E9YXwwO2VvKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGRjKGEpe2E9YXwwO2Vv
KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGRkKGEpe2E9YXwwO2ZnKDE1NzkyKXwwO2ZnKDE1
ODgwKXwwO2ZoKDE1NDI0KXwwO2ZoKDE1NTEyKXwwO3JldHVybn1mdW5jdGlvbiBkZShhKXthPWF8
MDtyZXR1cm59ZnVuY3Rpb24gZGYoYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGRnKGEpe2E9YXww
O3ZhciBiPTA7Yj1hKzR8MDtJPWNbYj4+Ml18MCxjW2I+PjJdPUkrMSxJO3JldHVybn1mdW5jdGlv
biBkaChhKXthPWF8MDtyZXR1cm4gY1thKzQ+PjJdfDB9ZnVuY3Rpb24gZGkoYSl7YT1hfDA7cmV0
dXJuIGNbYSs0Pj4yXXwwfWZ1bmN0aW9uIGRqKGEpe2E9YXwwO2NbYT4+Ml09NDMwNDtyZXR1cm59
ZnVuY3Rpb24gZGsoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO2NbYT4+Ml09ZDtjW2ErND4+Ml09
YjtyZXR1cm59ZnVuY3Rpb24gZGwoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTA7aWYo
KGNbYis0Pj4yXXwwKSE9KGF8MCkpe2U9MDtyZXR1cm4gZXwwfWU9KGNbYj4+Ml18MCk9PShkfDAp
O3JldHVybiBlfDB9ZnVuY3Rpb24gZG0oYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wO2IwW2NbKGNb
Yj4+Ml18MCkrMjQ+PjJdJjEyN10oYil8MDtlPWlYKGQsMTUzOTIpfDA7ZD1lO2NbYiszNj4+Ml09
ZDthW2IrNDR8MF09KGIwW2NbKGNbZT4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtyZXR1cm59
ZnVuY3Rpb24gZG4oYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAs
bD0wLG09MCxuPTA7Yj1pO2k9aSsxNnwwO2Q9YnwwO2U9Yis4fDA7Zj1hKzM2fDA7Zz1hKzQwfDA7
aD1kfDA7aj1kKzh8MDtrPWQ7ZD1hKzMyfDA7TDE3Njc6d2hpbGUoMSl7YT1jW2Y+PjJdfDA7bD1i
JFtjWyhjW2E+PjJdfDApKzIwPj4yXSYzMV0oYSxjW2c+PjJdfDAsaCxqLGUpfDA7YT0oY1tlPj4y
XXwwKS1rfDA7aWYoKGFNKGh8MCwxLGF8MCxjW2Q+PjJdfDApfDApIT0oYXwwKSl7bT0tMTtuPTE0
MTQ7YnJlYWt9c3dpdGNoKGx8MCl7Y2FzZSAyOnttPS0xO249MTQxNTticmVhayBMMTc2NzticmVh
a307Y2FzZSAxOnticmVha307ZGVmYXVsdDp7bj0xNDExO2JyZWFrIEwxNzY3fX19aWYoKG58MCk9
PTE0MTUpe2k9YjtyZXR1cm4gbXwwfWVsc2UgaWYoKG58MCk9PTE0MTEpe209KChhSyhjW2Q+PjJd
fDApfDApIT0wKTw8MzE+PjMxO2k9YjtyZXR1cm4gbXwwfWVsc2UgaWYoKG58MCk9PTE0MTQpe2k9
YjtyZXR1cm4gbXwwfXJldHVybiAwfWZ1bmN0aW9uIGRwKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtnPWUrOHwwO2g9ZSsxNnwwO2o9ZSsyNHww
O2s9KGR8MCk9PS0xO0wxNzc2OmRve2lmKCFrKXthW2ddPWQmMjU1O2lmKChhW2IrNDR8MF0mMSkh
PTApe2lmKChhTShnfDAsMSwxLGNbYiszMj4+Ml18MCl8MCk9PTEpe2JyZWFrfWVsc2V7bD0tMX1p
PWU7cmV0dXJuIGx8MH1tPWZ8MDtjW2g+PjJdPW07bj1nKzF8MDtvPWIrMzZ8MDtwPWIrNDB8MDtx
PWYrOHwwO3I9ZjtzPWIrMzJ8MDt0PWc7d2hpbGUoMSl7dT1jW28+PjJdfDA7dj1iNltjWyhjW3U+
PjJdfDApKzEyPj4yXSYzMV0odSxjW3A+PjJdfDAsdCxuLGosbSxxLGgpfDA7aWYoKGNbaj4+Ml18
MCk9PSh0fDApKXtsPS0xO3c9MTQzMzticmVha31pZigodnwwKT09Myl7dz0xNDIyO2JyZWFrfXU9
KHZ8MCk9PTE7aWYodj4+PjA+PTIpe2w9LTE7dz0xNDMyO2JyZWFrfXY9KGNbaD4+Ml18MCktcnww
O2lmKChhTShtfDAsMSx2fDAsY1tzPj4yXXwwKXwwKSE9KHZ8MCkpe2w9LTE7dz0xNDMwO2JyZWFr
fWlmKHUpe3Q9dT9jW2o+PjJdfDA6dH1lbHNle2JyZWFrIEwxNzc2fX1pZigod3wwKT09MTQzMCl7
aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTQyMil7aWYoKGFNKHR8MCwxLDEsY1tzPj4y
XXwwKXwwKT09MSl7YnJlYWt9ZWxzZXtsPS0xfWk9ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9
PTE0MzIpe2k9ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTE0MzMpe2k9ZTtyZXR1cm4gbHww
fX19d2hpbGUoMCk7bD1rPzA6ZDtpPWU7cmV0dXJuIGx8MH1mdW5jdGlvbiBkcShiLGQsZSl7Yj1i
fDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGo9MDtmPWk7aT1pKzh8MDtnPWZ8MDtlcChi
fDApO2NbYj4+Ml09NTA0ODtjW2IrMzI+PjJdPWQ7Y1tiKzQwPj4yXT1lO2NbYis0OD4+Ml09LTE7
YVtiKzUyfDBdPTA7aU4oZyxiKzR8MCk7ZT1pWChnLDE1MzkyKXwwO2Q9ZTtoPWIrMzZ8MDtjW2g+
PjJdPWQ7aj1iKzQ0fDA7Y1tqPj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGQpfDA7
ZD1jW2g+PjJdfDA7YVtiKzUzfDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDAp
JjE7aWYoKGNbaj4+Ml18MCk8PTgpe2lPKGcpO2k9ZjtyZXR1cm59aFYoMTg0KTtpTyhnKTtpPWY7
cmV0dXJufWZ1bmN0aW9uIGRyKGEpe2E9YXwwO2VvKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGRzKGEp
e2E9YXwwO2VvKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGR0KGIsZCl7Yj1ifDA7ZD1kfDA7
dmFyIGU9MCxmPTAsZz0wO2U9aVgoZCwxNTM5Mil8MDtkPWU7Zj1iKzM2fDA7Y1tmPj4yXT1kO2c9
Yis0NHwwO2NbZz4+Ml09YjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShkKXwwO2Q9Y1tmPj4y
XXwwO2FbYis1M3wwXT0oYjBbY1soY1tkPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO2lmKChj
W2c+PjJdfDApPD04KXtyZXR1cm59aFYoMTg0KTtyZXR1cm59ZnVuY3Rpb24gZHUoYSl7YT1hfDA7
cmV0dXJuIGR4KGEsMCl8MH1mdW5jdGlvbiBkdihhKXthPWF8MDtyZXR1cm4gZHgoYSwxKXwwfWZ1
bmN0aW9uIGR3KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUr
MTZ8MDtqPWUrMjR8MDtrPWIrNTJ8MDtsPShhW2tdJjEpIT0wO2lmKChkfDApPT0tMSl7aWYobCl7
bT0tMTtpPWU7cmV0dXJuIG18MH1uPWNbYis0OD4+Ml18MDthW2tdPShufDApIT0tMXwwO209bjtp
PWU7cmV0dXJuIG18MH1uPWIrNDh8MDtMMTgxOTpkb3tpZihsKXthW2hdPWNbbj4+Ml0mMjU1O289
Y1tiKzM2Pj4yXXwwO3A9ZnwwO3N3aXRjaChiNltjWyhjW28+PjJdfDApKzEyPj4yXSYzMV0obyxj
W2IrNDA+PjJdfDAsaCxoKzF8MCxqLHAsZis4fDAsZyl8MCl7Y2FzZSAzOnthW3BdPWNbbj4+Ml0m
MjU1O2NbZz4+Ml09ZisxO2JyZWFrfTtjYXNlIDI6Y2FzZSAxOnttPS0xO2k9ZTtyZXR1cm4gbXww
fTtkZWZhdWx0Ont9fW89YiszMnwwO3doaWxlKDEpe3E9Y1tnPj4yXXwwO2lmKHE+Pj4wPD1wPj4+
MCl7YnJlYWsgTDE4MTl9cj1xLTF8MDtjW2c+PjJdPXI7aWYoKGJBKGFbcl18MCxjW28+PjJdfDAp
fDApPT0tMSl7bT0tMTticmVha319aT1lO3JldHVybiBtfDB9fXdoaWxlKDApO2Nbbj4+Ml09ZDth
W2tdPTE7bT1kO2k9ZTtyZXR1cm4gbXwwfWZ1bmN0aW9uIGR4KGIsZSl7Yj1ifDA7ZT1lfDA7dmFy
IGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2Y9aTtpPWkrMzJ8MDtnPWZ8MDtoPWYrOHwwO2o9
ZisxNnwwO2s9ZisyNHwwO2w9Yis1MnwwO2lmKChhW2xdJjEpIT0wKXttPWIrNDh8MDtuPWNbbT4+
Ml18MDtpZighZSl7bz1uO2k9ZjtyZXR1cm4gb3wwfWNbbT4+Ml09LTE7YVtsXT0wO289bjtpPWY7
cmV0dXJuIG98MH1uPWNbYis0ND4+Ml18MDtsPShufDApPjE/bjoxO0wxODM5OmRve2lmKChsfDAp
PjApe249YiszMnwwO209MDt3aGlsZSgxKXtwPWFfKGNbbj4+Ml18MCl8MDtpZigocHwwKT09LTEp
e289LTE7YnJlYWt9YVtnK218MF09cCYyNTU7bT1tKzF8MDtpZigobXwwKT49KGx8MCkpe2JyZWFr
IEwxODM5fX1pPWY7cmV0dXJuIG98MH19d2hpbGUoMCk7TDE4NDY6ZG97aWYoKGFbYis1M3wwXSYx
KT09MCl7bT1iKzQwfDA7bj1iKzM2fDA7cD1nfDA7cT1oKzF8MDtyPWIrMzJ8MDtzPWw7TDE4NDg6
d2hpbGUoMSl7dD1jW20+PjJdfDA7dT10O3Y9Y1t1Pj4yXXwwO3c9Y1t1KzQ+PjJdfDA7dT1jW24+
PjJdfDA7eD1nK3N8MDtzd2l0Y2goYjZbY1soY1t1Pj4yXXwwKSsxNj4+Ml0mMzFdKHUsdCxwLHgs
aixoLHEsayl8MCl7Y2FzZSAxOnticmVha307Y2FzZSAyOntvPS0xO3k9MTQ5MDticmVhayBMMTg0
ODticmVha307Y2FzZSAzOnt5PTE0Nzk7YnJlYWsgTDE4NDg7YnJlYWt9O2RlZmF1bHQ6e3o9czti
cmVhayBMMTg0Nn19dD1jW20+PjJdfDA7Y1t0Pj4yXT12O2NbdCs0Pj4yXT13O2lmKChzfDApPT04
KXtvPS0xO3k9MTQ5MTticmVha313PWFfKGNbcj4+Ml18MCl8MDtpZigod3wwKT09LTEpe289LTE7
eT0xNDk1O2JyZWFrfWFbeF09dyYyNTU7cz1zKzF8MH1pZigoeXwwKT09MTQ5MCl7aT1mO3JldHVy
biBvfDB9ZWxzZSBpZigoeXwwKT09MTQ5NSl7aT1mO3JldHVybiBvfDB9ZWxzZSBpZigoeXwwKT09
MTQ3OSl7YVtoXT1hW3BdfDA7ej1zO2JyZWFrfWVsc2UgaWYoKHl8MCk9PTE0OTEpe2k9ZjtyZXR1
cm4gb3wwfX1lbHNle2FbaF09YVtnfDBdfDA7ej1sfX13aGlsZSgwKTtkb3tpZihlKXtsPWFbaF18
MDtjW2IrNDg+PjJdPWwmMjU1O0E9bH1lbHNle2w9YiszMnwwO2s9ejt3aGlsZSgxKXtpZigoa3ww
KTw9MCl7eT0xNDg2O2JyZWFrfWo9ay0xfDA7aWYoKGJBKGRbZytqfDBdfDB8MCxjW2w+PjJdfDAp
fDApPT0tMSl7bz0tMTt5PTE0OTQ7YnJlYWt9ZWxzZXtrPWp9fWlmKCh5fDApPT0xNDg2KXtBPWFb
aF18MDticmVha31lbHNlIGlmKCh5fDApPT0xNDk0KXtpPWY7cmV0dXJuIG98MH19fXdoaWxlKDAp
O289QSYyNTU7aT1mO3JldHVybiBvfDB9ZnVuY3Rpb24gZHkoKXtjWigwKTthJCgxNDIsMTYxNDR8
MCx1fDApfDA7cmV0dXJufWZ1bmN0aW9uIGR6KGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9YSs0fDA7
aWYoKChJPWNbYj4+Ml18MCxjW2I+PjJdPUkrIC0xLEkpfDApIT0wKXtkPTA7cmV0dXJuIGR8MH1i
WVtjWyhjW2E+PjJdfDApKzg+PjJdJjUxMV0oYSk7ZD0xO3JldHVybiBkfDB9ZnVuY3Rpb24gZEEo
YSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTA7Y1thPj4yXT0yNTM2O2Q9YSs0fDA7aWYo
KGR8MCk9PTApe3JldHVybn1hPWswKGJ8MCl8MDtlPWErMXwwO2Y9a1AoYSsxM3wwKXwwO2NbZis0
Pj4yXT1hO2NbZj4+Ml09YTthPWYrMTJ8MDtjW2Q+PjJdPWE7Y1tmKzg+PjJdPTA7a1koYXwwLGJ8
MCxlKXwwO3JldHVybn1mdW5jdGlvbiBkQihhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTA7Y1thPj4y
XT0yNTM2O2I9YSs0fDA7ZD0oY1tiPj4yXXwwKS00fDA7aWYoKChJPWNbZD4+Ml18MCxjW2Q+PjJd
PUkrIC0xLEkpLTF8MCk+PTApe2U9YTtrUyhlKTtyZXR1cm59ZD0oY1tiPj4yXXwwKS0xMnwwO2lm
KChkfDApPT0wKXtlPWE7a1MoZSk7cmV0dXJufWtUKGQpO2U9YTtrUyhlKTtyZXR1cm59ZnVuY3Rp
b24gZEMoYSl7YT1hfDA7dmFyIGI9MDtjW2E+PjJdPTI1MzY7Yj1hKzR8MDthPShjW2I+PjJdfDAp
LTR8MDtpZigoKEk9Y1thPj4yXXwwLGNbYT4+Ml09SSsgLTEsSSktMXwwKT49MCl7cmV0dXJufWE9
KGNbYj4+Ml18MCktMTJ8MDtpZigoYXwwKT09MCl7cmV0dXJufWtUKGEpO3JldHVybn1mdW5jdGlv
biBkRChiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtjW2I+PjJdPTI0NzI7ZT1iKzR8
MDtpZigoZXwwKT09MCl7cmV0dXJufWlmKChhW2RdJjEpPT0wKXtmPWQrMXwwfWVsc2V7Zj1jW2Qr
OD4+Ml18MH1kPWswKGZ8MCl8MDtiPWQrMXwwO2c9a1AoZCsxM3wwKXwwO2NbZys0Pj4yXT1kO2Nb
Zz4+Ml09ZDtkPWcrMTJ8MDtjW2U+PjJdPWQ7Y1tnKzg+PjJdPTA7a1koZHwwLGZ8MCxiKXwwO3Jl
dHVybn1mdW5jdGlvbiBkRShhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MDtjW2E+PjJd
PTI0NzI7ZD1hKzR8MDtpZigoZHwwKT09MCl7cmV0dXJufWE9azAoYnwwKXwwO2U9YSsxfDA7Zj1r
UChhKzEzfDApfDA7Y1tmKzQ+PjJdPWE7Y1tmPj4yXT1hO2E9ZisxMnwwO2NbZD4+Ml09YTtjW2Yr
OD4+Ml09MDtrWShhfDAsYnwwLGUpfDA7cmV0dXJufWZ1bmN0aW9uIGRGKGEpe2E9YXwwO3ZhciBi
PTAsZD0wLGU9MDtjW2E+PjJdPTI0NzI7Yj1hKzR8MDtkPShjW2I+PjJdfDApLTR8MDtpZigoKEk9
Y1tkPj4yXXwwLGNbZD4+Ml09SSsgLTEsSSktMXwwKT49MCl7ZT1hO2tTKGUpO3JldHVybn1kPShj
W2I+PjJdfDApLTEyfDA7aWYoKGR8MCk9PTApe2U9YTtrUyhlKTtyZXR1cm59a1QoZCk7ZT1hO2tT
KGUpO3JldHVybn1mdW5jdGlvbiBkRyhhKXthPWF8MDt2YXIgYj0wO2NbYT4+Ml09MjQ3MjtiPWEr
NHwwO2E9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2E+PjJdfDAsY1thPj4yXT1JKyAtMSxJKS0x
fDApPj0wKXtyZXR1cm59YT0oY1tiPj4yXXwwKS0xMnwwO2lmKChhfDApPT0wKXtyZXR1cm59a1Qo
YSk7cmV0dXJufWZ1bmN0aW9uIGRIKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtjW2E+PjJdPTI1
MzY7Yj1hKzR8MDtkPShjW2I+PjJdfDApLTR8MDtpZigoKEk9Y1tkPj4yXXwwLGNbZD4+Ml09SSsg
LTEsSSktMXwwKT49MCl7ZT1hO2tTKGUpO3JldHVybn1kPShjW2I+PjJdfDApLTEyfDA7aWYoKGR8
MCk9PTApe2U9YTtrUyhlKTtyZXR1cm59a1QoZCk7ZT1hO2tTKGUpO3JldHVybn1mdW5jdGlvbiBk
SShhKXthPWF8MDtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZEooYSxiLGQpe2E9YXwwO2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MDtlPWk7aT1pKzh8MDtmPWV8MDtiM1tjWyhjW2E+PjJdfDApKzEy
Pj4yXSY3XShmLGEsYik7aWYoKGNbZis0Pj4yXXwwKSE9KGNbZCs0Pj4yXXwwKSl7Zz0wO2k9ZTty
ZXR1cm4gZ3wwfWc9KGNbZj4+Ml18MCk9PShjW2Q+PjJdfDApO2k9ZTtyZXR1cm4gZ3wwfWZ1bmN0
aW9uIGRLKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDtiPWJ4KGN8MCl8MDtkWihhLGIsazAoYnww
KXwwKTtyZXR1cm59ZnVuY3Rpb24gZEwoYixlLGYpe2I9YnwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAs
aD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2c9aTtoPWY7aj1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO2s9ZXwwO2w9Y1trPj4yXXwwO2lmKChsfDApPT0wKXttPWI7Y1ttPj4y
XT1jW2g+PjJdO2NbbSs0Pj4yXT1jW2grND4+Ml07Y1ttKzg+PjJdPWNbaCs4Pj4yXTtrJChofDAs
MCwxMik7aT1nO3JldHVybn1uPWRbaF18MDtpZigobiYxfDApPT0wKXtvPW4+Pj4xfWVsc2V7bz1j
W2YrND4+Ml18MH1pZigob3wwKT09MCl7cD1sfWVsc2V7ZFQoZiwxMjk2KXwwO3A9Y1trPj4yXXww
fWs9Y1tlKzQ+PjJdfDA7YjNbY1soY1trPj4yXXwwKSsyND4+Ml0mN10oaixrLHApO3A9YVtqXXww
O2lmKChwJjEpPT0wKXtxPWorMXwwfWVsc2V7cT1jW2orOD4+Ml18MH1rPXAmMjU1O2lmKChrJjF8
MCk9PTApe3I9az4+PjF9ZWxzZXtyPWNbais0Pj4yXXwwfWRWKGYscSxyKXwwO2RQKGopO209Yjtj
W20+PjJdPWNbaD4+Ml07Y1ttKzQ+PjJdPWNbaCs0Pj4yXTtjW20rOD4+Ml09Y1toKzg+PjJdO2sk
KGh8MCwwLDEyKTtpPWc7cmV0dXJufWZ1bmN0aW9uIGRNKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTA7ZT1pO2k9aSszMnwwO2Y9YjtiPWk7aT1pKzh8MDtjW2I+PjJdPWNb
Zj4+Ml07Y1tiKzQ+PjJdPWNbZis0Pj4yXTtmPWV8MDtnPWUrMTZ8MDtkWihnLGQsazAoZHwwKXww
KTtkTChmLGIsZyk7ZEQoYXwwLGYpO2RQKGYpO2RQKGcpO2NbYT4+Ml09NDU0NDtnPWI7Yj1hKzh8
MDthPWNbZys0Pj4yXXwwO2NbYj4+Ml09Y1tnPj4yXTtjW2IrND4+Ml09YTtpPWU7cmV0dXJufWZ1
bmN0aW9uIGROKGEpe2E9YXwwO2RHKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGRPKGEpe2E9
YXwwO2RHKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGRQKGIpe2I9YnwwO2lmKChhW2JdJjEpPT0wKXty
ZXR1cm59a1MoY1tiKzg+PjJdfDApO3JldHVybn1mdW5jdGlvbiBkUShiLGQpe2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO2U9azAoZHwwKXwwO2Y9YjtnPWI7
aD1hW2ddfDA7aWYoKGgmMSk9PTApe2k9MTA7aj1ofWVsc2V7aD1jW2I+PjJdfDA7aT0oaCYtMikt
MXwwO2o9aCYyNTV9aWYoaT4+PjA8ZT4+PjApe2g9aiYyNTU7aWYoKGgmMXwwKT09MCl7az1oPj4+
MX1lbHNle2s9Y1tiKzQ+PjJdfDB9ZDAoYixpLGUtaXwwLGssMCxrLGUsZCk7cmV0dXJuIGJ8MH1p
ZigoaiYxKT09MCl7bD1mKzF8MH1lbHNle2w9Y1tiKzg+PjJdfDB9a18obHwwLGR8MCxlfDApO2Fb
bCtlfDBdPTA7aWYoKGFbZ10mMSk9PTApe2FbZ109ZTw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2Nb
Yis0Pj4yXT1lO3JldHVybiBifDB9cmV0dXJuIDB9ZnVuY3Rpb24gZFIoYixkLGUpe2I9YnwwO2Q9
ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTA7Zj1iO2c9YVtmXXwwO2g9ZyYyNTU7aWYoKGgm
MXwwKT09MCl7aT1oPj4+MX1lbHNle2k9Y1tiKzQ+PjJdfDB9aWYoaT4+PjA8ZD4+PjApe2g9ZC1p
fDA7ZFMoYixoLGUpfDA7cmV0dXJufWlmKChnJjEpPT0wKXthW2IrMStkfDBdPTA7YVtmXT1kPDwx
JjI1NTtyZXR1cm59ZWxzZXthWyhjW2IrOD4+Ml18MCkrZHwwXT0wO2NbYis0Pj4yXT1kO3JldHVy
bn19ZnVuY3Rpb24gZFMoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxp
PTAsaj0wLGs9MCxsPTA7aWYoKGR8MCk9PTApe3JldHVybiBifDB9Zj1iO2c9YVtmXXwwO2lmKChn
JjEpPT0wKXtoPTEwO2k9Z31lbHNle2c9Y1tiPj4yXXwwO2g9KGcmLTIpLTF8MDtpPWcmMjU1fWc9
aSYyNTU7aWYoKGcmMXwwKT09MCl7aj1nPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9aWYoKGgtanww
KT4+PjA8ZD4+PjApe2QxKGIsaCxkLWgranwwLGosaiwwLDApO2s9YVtmXXwwfWVsc2V7az1pfWlm
KChrJjEpPT0wKXtsPWIrMXwwfWVsc2V7bD1jW2IrOD4+Ml18MH1rJChsK2p8MCxlfDAsZHwwKTtl
PWorZHwwO2lmKChhW2ZdJjEpPT0wKXthW2ZdPWU8PDEmMjU1fWVsc2V7Y1tiKzQ+PjJdPWV9YVts
K2V8MF09MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGRUKGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJuIGRW
KGEsYixrMChifDApfDApfDB9ZnVuY3Rpb24gZFUoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9
MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7ZT1iO2Y9YVtlXXwwO2lmKChmJjEpPT0wKXtn
PShmJjI1NSk+Pj4xO2g9MTB9ZWxzZXtnPWNbYis0Pj4yXXwwO2g9KGNbYj4+Ml0mLTIpLTF8MH1p
ZigoZ3wwKT09KGh8MCkpe2QxKGIsaCwxLGgsaCwwLDApO2k9YVtlXXwwfWVsc2V7aT1mfWlmKChp
JjEpPT0wKXthW2VdPShnPDwxKSsyJjI1NTtqPWIrMXwwO2s9ZysxfDA7bD1qK2d8MDthW2xdPWQ7
bT1qK2t8MDthW21dPTA7cmV0dXJufWVsc2V7ZT1jW2IrOD4+Ml18MDtpPWcrMXwwO2NbYis0Pj4y
XT1pO2o9ZTtrPWk7bD1qK2d8MDthW2xdPWQ7bT1qK2t8MDthW21dPTA7cmV0dXJufX1mdW5jdGlv
biBkVihiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0w
O2Y9YjtnPWFbZl18MDtpZigoZyYxKT09MCl7aD0xMDtpPWd9ZWxzZXtnPWNbYj4+Ml18MDtoPShn
Ji0yKS0xfDA7aT1nJjI1NX1nPWkmMjU1O2lmKChnJjF8MCk9PTApe2o9Zz4+PjF9ZWxzZXtqPWNb
Yis0Pj4yXXwwfWlmKChoLWp8MCk+Pj4wPGU+Pj4wKXtkMChiLGgsZS1oK2p8MCxqLGosMCxlLGQp
O3JldHVybiBifDB9aWYoKGV8MCk9PTApe3JldHVybiBifDB9aWYoKGkmMSk9PTApe2s9YisxfDB9
ZWxzZXtrPWNbYis4Pj4yXXwwfWk9aytqfDA7a1koaXwwLGR8MCxlKXwwO2Q9aitlfDA7aWYoKGFb
Zl0mMSk9PTApe2FbZl09ZDw8MSYyNTV9ZWxzZXtjW2IrND4+Ml09ZH1hW2srZHwwXT0wO3JldHVy
biBifDB9ZnVuY3Rpb24gZFcoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9
MCxoPTAsaT0wO2U7aWYoKGNbYT4+Ml18MCk9PTEpe2Rve2FVKDk3MzYsOTcyOCl8MDt9d2hpbGUo
KGNbYT4+Ml18MCk9PTEpfWlmKChjW2E+PjJdfDApIT0wKXtmO3JldHVybn1jW2E+PjJdPTE7Zzti
WVtkJjUxMV0oYik7aDtjW2E+PjJdPS0xO2k7YnMoOTczNil8MDtyZXR1cm59ZnVuY3Rpb24gZFgo
YSl7YT1hfDA7YT1iTyg4KXwwO2RBKGEsMzYwKTtjW2E+PjJdPTI1MDQ7YmwoYXwwLDgyMDgsMzIp
fWZ1bmN0aW9uIGRZKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MDtlPWQ7aWYo
KGFbZV0mMSk9PTApe2Y9YjtjW2Y+PjJdPWNbZT4+Ml07Y1tmKzQ+PjJdPWNbZSs0Pj4yXTtjW2Yr
OD4+Ml09Y1tlKzg+PjJdO3JldHVybn1lPWNbZCs4Pj4yXXwwO2Y9Y1tkKzQ+PjJdfDA7aWYoKGZ8
MCk9PS0xKXtkWCgwKX1pZihmPj4+MDwxMSl7YVtiXT1mPDwxJjI1NTtnPWIrMXwwfWVsc2V7ZD1m
KzE2Ji0xNjtoPWtPKGQpfDA7Y1tiKzg+PjJdPWg7Y1tiPj4yXT1kfDE7Y1tiKzQ+PjJdPWY7Zz1o
fWtZKGd8MCxlfDAsZil8MDthW2crZnwwXT0wO3JldHVybn1mdW5jdGlvbiBkWihiLGQsZSl7Yj1i
fDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MDtpZigoZXwwKT09LTEpe2RYKDApfWlm
KGU+Pj4wPDExKXthW2JdPWU8PDEmMjU1O2Y9YisxfDA7a1koZnwwLGR8MCxlKXwwO2c9ZitlfDA7
YVtnXT0wO3JldHVybn1lbHNle2g9ZSsxNiYtMTY7aT1rTyhoKXwwO2NbYis4Pj4yXT1pO2NbYj4+
Ml09aHwxO2NbYis0Pj4yXT1lO2Y9aTtrWShmfDAsZHwwLGUpfDA7Zz1mK2V8MDthW2ddPTA7cmV0
dXJufX1mdW5jdGlvbiBkXyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0w
O2lmKChkfDApPT0tMSl7ZFgoMCl9aWYoZD4+PjA8MTEpe2FbYl09ZDw8MSYyNTU7Zj1iKzF8MH1l
bHNle2c9ZCsxNiYtMTY7aD1rTyhnKXwwO2NbYis4Pj4yXT1oO2NbYj4+Ml09Z3wxO2NbYis0Pj4y
XT1kO2Y9aH1rJChmfDAsZXwwLGR8MCk7YVtmK2R8MF09MDtyZXR1cm59ZnVuY3Rpb24gZCQoYixk
KXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MDtpZigoZHwwKT09LTEpe2RYKDApfWU9YjtmPWI7Zz1hW2ZdfDA7aWYo
KGcmMSk9PTApe2g9MTA7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9ZyYyNTV9
Zz1pJjI1NTtpZigoZyYxfDApPT0wKXtqPWc+Pj4xfWVsc2V7aj1jW2IrND4+Ml18MH1nPWo+Pj4w
PmQ+Pj4wP2o6ZDtpZihnPj4+MDwxMSl7az0xMX1lbHNle2s9ZysxNiYtMTZ9Zz1rLTF8MDtpZigo
Z3wwKT09KGh8MCkpe3JldHVybn1pZigoZ3wwKT09MTApe2w9ZSsxfDA7bT1jW2IrOD4+Ml18MDtu
PTE7bz0wfWVsc2V7aWYoZz4+PjA+aD4+PjApe3A9a08oayl8MH1lbHNle3A9a08oayl8MH1oPWkm
MTtpZihoPDwyND4+MjQ9PTApe3E9ZSsxfDB9ZWxzZXtxPWNbYis4Pj4yXXwwfWw9cDttPXE7bj1o
PDwyND4+MjQhPTA7bz0xfWg9aSYyNTU7aWYoKGgmMXwwKT09MCl7cj1oPj4+MX1lbHNle3I9Y1ti
KzQ+PjJdfDB9aD1yKzF8MDtrWShsfDAsbXwwLGgpfDA7aWYobil7a1MobSl9aWYobyl7Y1tiPj4y
XT1rfDE7Y1tiKzQ+PjJdPWo7Y1tiKzg+PjJdPWw7cmV0dXJufWVsc2V7YVtmXT1qPDwxJjI1NTty
ZXR1cm59fWZ1bmN0aW9uIGQwKGIsZCxlLGYsZyxoLGksail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTA7aWYoKC0zLWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYx
KT09MCl7az1iKzF8MH1lbHNle2s9Y1tiKzg+PjJdfDB9ZG97aWYoZD4+PjA8MjE0NzQ4MzYzMSl7
bD1lK2R8MDttPWQ8PDE7bj1sPj4+MDxtPj4+MD9tOmw7aWYobj4+PjA8MTEpe289MTE7YnJlYWt9
bz1uKzE2Ji0xNn1lbHNle289LTJ9fXdoaWxlKDApO2U9a08obyl8MDtpZigoZ3wwKSE9MCl7a1ko
ZXwwLGt8MCxnKXwwfWlmKChpfDApIT0wKXtuPWUrZ3wwO2tZKG58MCxqfDAsaSl8MH1qPWYtaHww
O2lmKChqfDApIT0oZ3wwKSl7Zj1qLWd8MDtuPWUrKGkrZyl8MDtsPWsrKGgrZyl8MDtrWShufDAs
bHwwLGYpfDB9aWYoKGR8MCk9PTEwKXtwPWIrOHwwO2NbcD4+Ml09ZTtxPW98MTtyPWJ8MDtjW3I+
PjJdPXE7cz1qK2l8MDt0PWIrNHwwO2NbdD4+Ml09czt1PWUrc3wwO2FbdV09MDtyZXR1cm59a1Mo
ayk7cD1iKzh8MDtjW3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1iKzR8
MDtjW3Q+PjJdPXM7dT1lK3N8MDthW3VdPTA7cmV0dXJufWZ1bmN0aW9uIGQxKGIsZCxlLGYsZyxo
LGkpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO3ZhciBqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wO2lmKCgtMy1kfDApPj4+MDxlPj4+MCl7ZFgoMCl9aWYo
KGFbYl0mMSk9PTApe2o9YisxfDB9ZWxzZXtqPWNbYis4Pj4yXXwwfWRve2lmKGQ+Pj4wPDIxNDc0
ODM2MzEpe2s9ZStkfDA7bD1kPDwxO209az4+PjA8bD4+PjA/bDprO2lmKG0+Pj4wPDExKXtuPTEx
O2JyZWFrfW49bSsxNiYtMTZ9ZWxzZXtuPS0yfX13aGlsZSgwKTtlPWtPKG4pfDA7aWYoKGd8MCkh
PTApe2tZKGV8MCxqfDAsZyl8MH1tPWYtaHwwO2lmKChtfDApIT0oZ3wwKSl7Zj1tLWd8MDttPWUr
KGkrZyl8MDtpPWorKGgrZyl8MDtrWShtfDAsaXwwLGYpfDB9aWYoKGR8MCk9PTEwKXtvPWIrOHww
O2Nbbz4+Ml09ZTtwPW58MTtxPWJ8MDtjW3E+PjJdPXA7cmV0dXJufWtTKGopO289Yis4fDA7Y1tv
Pj4yXT1lO3A9bnwxO3E9YnwwO2NbcT4+Ml09cDtyZXR1cm59ZnVuY3Rpb24gZDIoYSxiKXthPWF8
MDtiPWJ8MDtyZXR1cm59ZnVuY3Rpb24gZDMoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO3JldHVy
biBhfDB9ZnVuY3Rpb24gZDQoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZDUoYSl7YT1hfDA7
cmV0dXJuIDB9ZnVuY3Rpb24gZDYoYSl7YT1hfDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBkNyhhLGIp
e2E9YXwwO2I9YnwwO3JldHVybi0xfDB9ZnVuY3Rpb24gZDgoYSxiKXthPWF8MDtiPWJ8MDtyZXR1
cm4tMXwwfWZ1bmN0aW9uIGQ5KGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJufWZ1bmN0aW9uIGVhKGEs
YixjKXthPWF8MDtiPWJ8MDtjPWN8MDtyZXR1cm4gYXwwfWZ1bmN0aW9uIGViKGEsYixkLGUsZixn
KXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtnPWE7Y1tnPj4yXT0wO2NbZys0
Pj4yXT0wO2c9YSs4fDA7Y1tnPj4yXT0tMTtjW2crND4+Ml09LTE7cmV0dXJufWZ1bmN0aW9uIGVj
KGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2U9aTtiPWQ7ZD1pO2k9aSsxNnwwO2Nb
ZD4+Ml09Y1tiPj4yXTtjW2QrND4+Ml09Y1tiKzQ+PjJdO2NbZCs4Pj4yXT1jW2IrOD4+Ml07Y1tk
KzEyPj4yXT1jW2IrMTI+PjJdO2I9YTtjW2I+PjJdPTA7Y1tiKzQ+PjJdPTA7Yj1hKzh8MDtjW2I+
PjJdPS0xO2NbYis0Pj4yXT0tMTtpPWU7cmV0dXJufWZ1bmN0aW9uIGVkKGEsYixkLGUsZixnKXth
PWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtnPWE7Y1tnPj4yXT0wO2NbZys0Pj4y
XT0wO2c9YSs4fDA7Y1tnPj4yXT0tMTtjW2crND4+Ml09LTE7cmV0dXJufWZ1bmN0aW9uIGVlKGIp
e2I9YnwwO2lmKChhW2JdJjEpPT0wKXtyZXR1cm59a1MoY1tiKzg+PjJdfDApO3JldHVybn1mdW5j
dGlvbiBlZihhLGIpe2E9YXwwO2I9YnwwO3JldHVybiBlZyhhLGIsa20oYil8MCl8MH1mdW5jdGlv
biBlZyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0w
O2Y9YjtnPWFbZl18MDtpZigoZyYxKT09MCl7aD0xO2k9Z31lbHNle2c9Y1tiPj4yXXwwO2g9KGcm
LTIpLTF8MDtpPWcmMjU1fWlmKGg+Pj4wPGU+Pj4wKXtnPWkmMjU1O2lmKChnJjF8MCk9PTApe2o9
Zz4+PjF9ZWxzZXtqPWNbYis0Pj4yXXwwfWVBKGIsaCxlLWh8MCxqLDAsaixlLGQpO3JldHVybiBi
fDB9aWYoKGkmMSk9PTApe2s9Yis0fDB9ZWxzZXtrPWNbYis4Pj4yXXwwfWtvKGssZCxlKXwwO2Nb
aysoZTw8Mik+PjJdPTA7aWYoKGFbZl0mMSk9PTApe2FbZl09ZTw8MSYyNTU7cmV0dXJuIGJ8MH1l
bHNle2NbYis0Pj4yXT1lO3JldHVybiBifDB9cmV0dXJuIDB9ZnVuY3Rpb24gZWgoYixkKXtiPWJ8
MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7ZT1iO2Y9YVtl
XXwwO2lmKChmJjEpPT0wKXtnPShmJjI1NSk+Pj4xO2g9MX1lbHNle2c9Y1tiKzQ+PjJdfDA7aD0o
Y1tiPj4yXSYtMiktMXwwfWlmKChnfDApPT0oaHwwKSl7ZUIoYixoLDEsaCxoLDAsMCk7aT1hW2Vd
fDB9ZWxzZXtpPWZ9aWYoKGkmMSk9PTApe2FbZV09KGc8PDEpKzImMjU1O2o9Yis0fDA7az1nKzF8
MDtsPWorKGc8PDIpfDA7Y1tsPj4yXT1kO209aisoazw8Mil8MDtjW20+PjJdPTA7cmV0dXJufWVs
c2V7ZT1jW2IrOD4+Ml18MDtpPWcrMXwwO2NbYis0Pj4yXT1pO2o9ZTtrPWk7bD1qKyhnPDwyKXww
O2NbbD4+Ml09ZDttPWorKGs8PDIpfDA7Y1ttPj4yXT0wO3JldHVybn19ZnVuY3Rpb24gZWkoYSl7
YT1hfDA7ZUQoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZWooYSxiKXthPWF8MDtiPWJ8MDtpTihhLGIr
Mjh8MCk7cmV0dXJufWZ1bmN0aW9uIGVrKGEsYil7YT1hfDA7Yj1ifDA7Y1thKzI0Pj4yXT1iO2Nb
YSsxNj4+Ml09KGJ8MCk9PTA7Y1thKzIwPj4yXT0wO2NbYSs0Pj4yXT00MDk4O2NbYSsxMj4+Ml09
MDtjW2ErOD4+Ml09NjtiPWErMjh8MDtrJChhKzMyfDAsMCw0MCk7aWYoKGJ8MCk9PTApe3JldHVy
bn1pVyhiKTtyZXR1cm59ZnVuY3Rpb24gZWwoYSl7YT1hfDA7ZUQoYXwwKTtyZXR1cm59ZnVuY3Rp
b24gZW0oYSl7YT1hfDA7Y1thPj4yXT00MjMyO2lPKGErNHwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24gZW4oYSl7YT1hfDA7Y1thPj4yXT00MjMyO2lPKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZW8o
YSl7YT1hfDA7Y1thPj4yXT00MjMyO2lPKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZXAoYSl7YT1h
fDA7Y1thPj4yXT00MjMyO2lXKGErNHwwKTtrJChhKzh8MCwwLDI0KTtyZXR1cm59ZnVuY3Rpb24g
ZXEoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxs
PTAsbT0wO2Y9YjtpZigoZXwwKTw9MCl7Zz0wO3JldHVybiBnfDB9aD1iKzEyfDA7aT1iKzE2fDA7
aj1kO2Q9MDt3aGlsZSgxKXtrPWNbaD4+Ml18MDtpZihrPj4+MDwoY1tpPj4yXXwwKT4+PjApe2Nb
aD4+Ml09aysxO2w9YVtrXXwwfWVsc2V7az1iMFtjWyhjW2Y+PjJdfDApKzQwPj4yXSYxMjddKGIp
fDA7aWYoKGt8MCk9PS0xKXtnPWQ7bT0xODU0O2JyZWFrfWw9ayYyNTV9YVtqXT1sO2s9ZCsxfDA7
aWYoKGt8MCk8KGV8MCkpe2o9aisxfDA7ZD1rfWVsc2V7Zz1rO209MTg1NjticmVha319aWYoKG18
MCk9PTE4NTQpe3JldHVybiBnfDB9ZWxzZSBpZigobXwwKT09MTg1Nil7cmV0dXJuIGd8MH1yZXR1
cm4gMH1mdW5jdGlvbiBlcihhKXthPWF8MDt2YXIgYj0wLGU9MDtpZigoYjBbY1soY1thPj4yXXww
KSszNj4+Ml0mMTI3XShhKXwwKT09LTEpe2I9LTE7cmV0dXJuIGJ8MH1lPWErMTJ8MDthPWNbZT4+
Ml18MDtjW2U+PjJdPWErMTtiPWRbYV18MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGVzKGIsZSxmKXti
PWJ8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtnPWI7
aWYoKGZ8MCk8PTApe2g9MDtyZXR1cm4gaHwwfWk9YisyNHwwO2o9YisyOHwwO2s9MDtsPWU7d2hp
bGUoMSl7ZT1jW2k+PjJdfDA7aWYoZT4+PjA8KGNbaj4+Ml18MCk+Pj4wKXttPWFbbF18MDtjW2k+
PjJdPWUrMTthW2VdPW19ZWxzZXtpZigoYl9bY1soY1tnPj4yXXwwKSs1Mj4+Ml0mMzFdKGIsZFts
XXwwKXwwKT09LTEpe2g9aztuPTE4Njk7YnJlYWt9fW09aysxfDA7aWYoKG18MCk8KGZ8MCkpe2s9
bTtsPWwrMXwwfWVsc2V7aD1tO249MTg3MTticmVha319aWYoKG58MCk9PTE4Njkpe3JldHVybiBo
fDB9ZWxzZSBpZigobnwwKT09MTg3MSl7cmV0dXJuIGh8MH1yZXR1cm4gMH1mdW5jdGlvbiBldChh
KXthPWF8MDtjW2E+PjJdPTQxNjA7aU8oYSs0fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBldShh
KXthPWF8MDtjW2E+PjJdPTQxNjA7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBldihhKXthPWF8
MDtjW2E+PjJdPTQxNjA7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBldyhhKXthPWF8MDtjW2E+
PjJdPTQxNjA7aVcoYSs0fDApO2skKGErOHwwLDAsMjQpO3JldHVybn1mdW5jdGlvbiBleChiLGQs
ZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTA7aWYoZT4+PjA+MTA3
Mzc0MTgyMil7ZFgoMCl9aWYoZT4+PjA8Mil7YVtiXT1lPDwxJjI1NTtmPWIrNHwwO2c9a24oZixk
LGUpfDA7aD1mKyhlPDwyKXwwO2NbaD4+Ml09MDtyZXR1cm59ZWxzZXtpPWUrNCYtNDtqPWtPKGk8
PDIpfDA7Y1tiKzg+PjJdPWo7Y1tiPj4yXT1pfDE7Y1tiKzQ+PjJdPWU7Zj1qO2c9a24oZixkLGUp
fDA7aD1mKyhlPDwyKXwwO2NbaD4+Ml09MDtyZXR1cm59fWZ1bmN0aW9uIGV5KGIsZCxlKXtiPWJ8
MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MDtpZihkPj4+MD4xMDczNzQxODIy
KXtkWCgwKX1pZihkPj4+MDwyKXthW2JdPWQ8PDEmMjU1O2Y9Yis0fDA7Zz1rcChmLGUsZCl8MDto
PWYrKGQ8PDIpfDA7Y1toPj4yXT0wO3JldHVybn1lbHNle2k9ZCs0Ji00O2o9a08oaTw8Mil8MDtj
W2IrOD4+Ml09ajtjW2I+PjJdPWl8MTtjW2IrND4+Ml09ZDtmPWo7Zz1rcChmLGUsZCl8MDtoPWYr
KGQ8PDIpfDA7Y1toPj4yXT0wO3JldHVybn19ZnVuY3Rpb24gZXooYixkKXtiPWJ8MDtkPWR8MDt2
YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wO2lm
KGQ+Pj4wPjEwNzM3NDE4MjIpe2RYKDApfWU9YjtmPWFbZV18MDtpZigoZiYxKT09MCl7Zz0xO2g9
Zn1lbHNle2Y9Y1tiPj4yXXwwO2c9KGYmLTIpLTF8MDtoPWYmMjU1fWY9aCYyNTU7aWYoKGYmMXww
KT09MCl7aT1mPj4+MX1lbHNle2k9Y1tiKzQ+PjJdfDB9Zj1pPj4+MD5kPj4+MD9pOmQ7aWYoZj4+
PjA8Mil7aj0yfWVsc2V7aj1mKzQmLTR9Zj1qLTF8MDtpZigoZnwwKT09KGd8MCkpe3JldHVybn1p
ZigoZnwwKT09MSl7az1iKzR8MDtsPWNbYis4Pj4yXXwwO209MTtuPTB9ZWxzZXtkPWo8PDI7aWYo
Zj4+PjA+Zz4+PjApe289a08oZCl8MH1lbHNle289a08oZCl8MH1kPWgmMTtpZihkPDwyND4+MjQ9
PTApe3A9Yis0fDB9ZWxzZXtwPWNbYis4Pj4yXXwwfWs9bztsPXA7bT1kPDwyND4+MjQhPTA7bj0x
fWQ9aztrPWgmMjU1O2lmKChrJjF8MCk9PTApe3E9az4+PjF9ZWxzZXtxPWNbYis0Pj4yXXwwfWtu
KGQsbCxxKzF8MCl8MDtpZihtKXtrUyhsKX1pZihuKXtjW2I+PjJdPWp8MTtjW2IrND4+Ml09aTtj
W2IrOD4+Ml09ZDtyZXR1cm59ZWxzZXthW2VdPWk8PDEmMjU1O3JldHVybn19ZnVuY3Rpb24gZUEo
YixkLGUsZixnLGgsaSxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8
MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtp
ZigoMTA3Mzc0MTgyMS1kfDApPj4+MDxlPj4+MCl7ZFgoMCl9aWYoKGFbYl0mMSk9PTApe2s9Yis0
fDB9ZWxzZXtrPWNbYis4Pj4yXXwwfWRve2lmKGQ+Pj4wPDUzNjg3MDg5NSl7bD1lK2R8MDttPWQ8
PDE7bj1sPj4+MDxtPj4+MD9tOmw7aWYobj4+PjA8Mil7bz0yO2JyZWFrfW89bis0Ji00fWVsc2V7
bz0xMDczNzQxODIyfX13aGlsZSgwKTtlPWtPKG88PDIpfDA7aWYoKGd8MCkhPTApe2tuKGUsayxn
KXwwfWlmKChpfDApIT0wKXtuPWUrKGc8PDIpfDA7a24obixqLGkpfDB9aj1mLWh8MDtpZigoanww
KSE9KGd8MCkpe2Y9ai1nfDA7bj1lKyhpK2c8PDIpfDA7bD1rKyhoK2c8PDIpfDA7a24obixsLGYp
fDB9aWYoKGR8MCk9PTEpe3A9Yis4fDA7Y1twPj4yXT1lO3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtz
PWoraXwwO3Q9Yis0fDA7Y1t0Pj4yXT1zO3U9ZSsoczw8Mil8MDtjW3U+PjJdPTA7cmV0dXJufWtT
KGspO3A9Yis4fDA7Y1twPj4yXT1lO3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtzPWoraXwwO3Q9Yis0
fDA7Y1t0Pj4yXT1zO3U9ZSsoczw8Mil8MDtjW3U+PjJdPTA7cmV0dXJufWZ1bmN0aW9uIGVCKGIs
ZCxlLGYsZyxoLGkpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO3Zh
ciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wO2lmKCgxMDczNzQxODIxLWR8MCk+Pj4w
PGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09MCl7aj1iKzR8MH1lbHNle2o9Y1tiKzg+PjJdfDB9
ZG97aWYoZD4+PjA8NTM2ODcwODk1KXtrPWUrZHwwO2w9ZDw8MTttPWs+Pj4wPGw+Pj4wP2w6aztp
ZihtPj4+MDwyKXtuPTI7YnJlYWt9bj1tKzQmLTR9ZWxzZXtuPTEwNzM3NDE4MjJ9fXdoaWxlKDAp
O2U9a08objw8Mil8MDtpZigoZ3wwKSE9MCl7a24oZSxqLGcpfDB9bT1mLWh8MDtpZigobXwwKSE9
KGd8MCkpe2Y9bS1nfDA7bT1lKyhpK2c8PDIpfDA7aT1qKyhoK2c8PDIpfDA7a24obSxpLGYpfDB9
aWYoKGR8MCk9PTEpe289Yis4fDA7Y1tvPj4yXT1lO3A9bnwxO3E9YnwwO2NbcT4+Ml09cDtyZXR1
cm59a1Moaik7bz1iKzh8MDtjW28+PjJdPWU7cD1ufDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1m
dW5jdGlvbiBlQyhiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtlPWk7aT1pKzh8MDtm
PWV8MDtnPShjW2IrMjQ+PjJdfDApPT0wO2lmKGcpe2NbYisxNj4+Ml09ZHwxfWVsc2V7Y1tiKzE2
Pj4yXT1kfWlmKCgoZyYxfGQpJmNbYisyMD4+Ml18MCk9PTApe2k9ZTtyZXR1cm59ZT1iTygxNil8
MDtkb3tpZigoYVsxNjI3Ml18MCk9PTApe2lmKChiYygxNjI3Mil8MCk9PTApe2JyZWFrfWRqKDEx
ODQwKTtjWzI5NjBdPTRlMzthJCg2NiwxMTg0MCx1fDApfDB9fXdoaWxlKDApO2I9azMoMTE4NDAs
MCwzMil8MDtkPUs7Y1tmPj4yXT1iJjB8MTtjW2YrND4+Ml09ZHwwO2RNKGUsZiwxMzA0KTtjW2U+
PjJdPTMxODQ7YmwoZXwwLDg3NTIsMjgpfWZ1bmN0aW9uIGVEKGEpe2E9YXwwO3ZhciBiPTAsZD0w
LGU9MCxmPTA7Y1thPj4yXT0zMTYwO2I9Y1thKzQwPj4yXXwwO2Q9YSszMnwwO2U9YSszNnwwO2lm
KChifDApIT0wKXtmPWI7ZG97Zj1mLTF8MDtiM1tjWyhjW2Q+PjJdfDApKyhmPDwyKT4+Ml0mN10o
MCxhLGNbKGNbZT4+Ml18MCkrKGY8PDIpPj4yXXwwKTt9d2hpbGUoKGZ8MCkhPTApfWlPKGErMjh8
MCk7a0soY1tkPj4yXXwwKTtrSyhjW2U+PjJdfDApO2tLKGNbYSs0OD4+Ml18MCk7a0soY1thKzYw
Pj4yXXwwKTtyZXR1cm59ZnVuY3Rpb24gZUUoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZUYo
YSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZUcoYSl7YT1hfDA7cmV0dXJuLTF8MH1mdW5jdGlv
biBlSChhLGIpe2E9YXwwO2I9YnwwO3JldHVybi0xfDB9ZnVuY3Rpb24gZUkoYSxiKXthPWF8MDti
PWJ8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGVKKGEpe2E9YXwwO3JldHVybiAxNDE2fDB9ZnVuY3Rp
b24gZUsoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7ZT1pO2I9ZDtkPWk7aT1pKzE2
fDA7Y1tkPj4yXT1jW2I+PjJdO2NbZCs0Pj4yXT1jW2IrND4+Ml07Y1tkKzg+PjJdPWNbYis4Pj4y
XTtjW2QrMTI+PjJdPWNbYisxMj4+Ml07Yj1hO2NbYj4+Ml09MDtjW2IrND4+Ml09MDtiPWErOHww
O2NbYj4+Ml09LTE7Y1tiKzQ+PjJdPS0xO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZUwoYixjLGQsZSxm
KXtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxs
PTA7TDI0Mzc6ZG97aWYoKGV8MCk9PShmfDApKXtnPWN9ZWxzZXtiPWM7aD1lO3doaWxlKDEpe2lm
KChifDApPT0oZHwwKSl7aT0tMTtqPTE5OTA7YnJlYWt9az1hW2JdfDA7bD1hW2hdfDA7aWYoazw8
MjQ+PjI0PGw8PDI0Pj4yNCl7aT0tMTtqPTE5OTM7YnJlYWt9aWYobDw8MjQ+PjI0PGs8PDI0Pj4y
NCl7aT0xO2o9MTk5MjticmVha31rPWIrMXwwO2w9aCsxfDA7aWYoKGx8MCk9PShmfDApKXtnPWs7
YnJlYWsgTDI0Mzd9ZWxzZXtiPWs7aD1sfX1pZigoanwwKT09MTk5Myl7cmV0dXJuIGl8MH1lbHNl
IGlmKChqfDApPT0xOTkyKXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9PTE5OTApe3JldHVybiBp
fDB9fX13aGlsZSgwKTtpPShnfDApIT0oZHwwKXwwO3JldHVybiBpfDB9ZnVuY3Rpb24gZU0oYixj
LGQpe2I9YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTA7aWYoKGN8MCk9PShkfDAp
KXtlPTA7cmV0dXJuIGV8MH1lbHNle2Y9YztnPTB9d2hpbGUoMSl7Yz0oYVtmXXwwKSsoZzw8NCl8
MDtiPWMmLTI2ODQzNTQ1NjtoPShiPj4+MjR8YileYztjPWYrMXwwO2lmKChjfDApPT0oZHwwKSl7
ZT1oO2JyZWFrfWVsc2V7Zj1jO2c9aH19cmV0dXJuIGV8MH1mdW5jdGlvbiBlTihhLGIsZCl7YT1h
fDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1hO2lm
KChkfDApPD0wKXtmPTA7cmV0dXJuIGZ8MH1nPWErMTJ8MDtoPWErMTZ8MDtpPWI7Yj0wO3doaWxl
KDEpe2o9Y1tnPj4yXXwwO2lmKGo+Pj4wPChjW2g+PjJdfDApPj4+MCl7Y1tnPj4yXT1qKzQ7az1j
W2o+PjJdfDB9ZWxzZXtqPWIwW2NbKGNbZT4+Ml18MCkrNDA+PjJdJjEyN10oYSl8MDtpZigoanww
KT09LTEpe2Y9YjtsPTIwMDc7YnJlYWt9ZWxzZXtrPWp9fWNbaT4+Ml09aztqPWIrMXwwO2lmKChq
fDApPChkfDApKXtpPWkrNHwwO2I9an1lbHNle2Y9ajtsPTIwMDg7YnJlYWt9fWlmKChsfDApPT0y
MDA4KXtyZXR1cm4gZnwwfWVsc2UgaWYoKGx8MCk9PTIwMDcpe3JldHVybiBmfDB9cmV0dXJuIDB9
ZnVuY3Rpb24gZU8oYSl7YT1hfDA7dmFyIGI9MCxkPTA7aWYoKGIwW2NbKGNbYT4+Ml18MCkrMzY+
PjJdJjEyN10oYSl8MCk9PS0xKXtiPS0xO3JldHVybiBifDB9ZD1hKzEyfDA7YT1jW2Q+PjJdfDA7
Y1tkPj4yXT1hKzQ7Yj1jW2E+PjJdfDA7cmV0dXJuIGJ8MH1mdW5jdGlvbiBlUChhLGIsZCl7YT1h
fDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1hO2lm
KChkfDApPD0wKXtmPTA7cmV0dXJuIGZ8MH1nPWErMjR8MDtoPWErMjh8MDtpPTA7aj1iO3doaWxl
KDEpe2I9Y1tnPj4yXXwwO2lmKGI+Pj4wPChjW2g+PjJdfDApPj4+MCl7az1jW2o+PjJdfDA7Y1tn
Pj4yXT1iKzQ7Y1tiPj4yXT1rfWVsc2V7aWYoKGJfW2NbKGNbZT4+Ml18MCkrNTI+PjJdJjMxXShh
LGNbaj4+Ml18MCl8MCk9PS0xKXtmPWk7bD0yMDIzO2JyZWFrfX1rPWkrMXwwO2lmKChrfDApPChk
fDApKXtpPWs7aj1qKzR8MH1lbHNle2Y9aztsPTIwMjI7YnJlYWt9fWlmKChsfDApPT0yMDIzKXty
ZXR1cm4gZnwwfWVsc2UgaWYoKGx8MCk9PTIwMjIpe3JldHVybiBmfDB9cmV0dXJuIDB9ZnVuY3Rp
b24gZVEoYSl7YT1hfDA7ZUQoYSs4fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlUihhKXthPWF8
MDtlRChhKzh8MCk7cmV0dXJufWZ1bmN0aW9uIGVTKGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9YTtk
PWNbKGNbYT4+Ml18MCktMTI+PjJdfDA7ZUQoYisoZCs4KXwwKTtrUyhiK2R8MCk7cmV0dXJufWZ1
bmN0aW9uIGVUKGEpe2E9YXwwO2VEKGErKChjWyhjW2E+PjJdfDApLTEyPj4yXXwwKSs4KXwwKTty
ZXR1cm59ZnVuY3Rpb24gZVUoYSl7YT1hfDA7ZUQoYSs4fDApO2tTKGEpO3JldHVybn1mdW5jdGlv
biBlVihhKXthPWF8MDtlRChhKzh8MCk7cmV0dXJufWZ1bmN0aW9uIGVXKGEpe2E9YXwwO3ZhciBi
PTAsZD0wO2I9YTtkPWNbKGNbYT4+Ml18MCktMTI+PjJdfDA7ZUQoYisoZCs4KXwwKTtrUyhiK2R8
MCk7cmV0dXJufWZ1bmN0aW9uIGVYKGEpe2E9YXwwO2VEKGErKChjWyhjW2E+PjJdfDApLTEyPj4y
XXwwKSs4KXwwKTtyZXR1cm59ZnVuY3Rpb24gZVkoYSl7YT1hfDA7ZUQoYSs0fDApO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBlWihhKXthPWF8MDtlRChhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGVfKGEp
e2E9YXwwO3ZhciBiPTAsZD0wO2I9YTtkPWNbKGNbYT4+Ml18MCktMTI+PjJdfDA7ZUQoYisoZCs0
KXwwKTtrUyhiK2R8MCk7cmV0dXJufWZ1bmN0aW9uIGUkKGEpe2E9YXwwO2VEKGErKChjWyhjW2E+
PjJdfDApLTEyPj4yXXwwKSs0KXwwKTtyZXR1cm59ZnVuY3Rpb24gZTAoYSl7YT1hfDA7ZUQoYSs0
fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlMShhKXthPWF8MDtlRChhKzR8MCk7cmV0dXJufWZ1
bmN0aW9uIGUyKGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9YTtkPWNbKGNbYT4+Ml18MCktMTI+PjJd
fDA7ZUQoYisoZCs0KXwwKTtrUyhiK2R8MCk7cmV0dXJufWZ1bmN0aW9uIGUzKGEpe2E9YXwwO2VE
KGErKChjWyhjW2E+PjJdfDApLTEyPj4yXXwwKSs0KXwwKTtyZXR1cm59ZnVuY3Rpb24gZTQoYSxi
LGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2lmKChjfDApPT0xKXtkWihhLDE2NDAsMzUpO3JldHVybn1l
bHNle2RLKGEsYnwwLGMpO3JldHVybn19ZnVuY3Rpb24gZTUoYSl7YT1hfDA7ZGYoYXwwKTtyZXR1
cm59ZnVuY3Rpb24gZTYoYSl7YT1hfDA7ZE8oYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZTco
YSl7YT1hfDA7ZE8oYXwwKTtyZXR1cm59ZnVuY3Rpb24gZTgoYSl7YT1hfDA7ZUQoYSk7a1MoYSk7
cmV0dXJufWZ1bmN0aW9uIGU5KGEpe2E9YXwwO2RmKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGZhKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGZiKGEpe2E9YXwwO2Rl
KGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZjKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9u
IGZkKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAs
az0wO2Q9ZTtnPWYtZHwwO2Rve2lmKChnfDApPT0tMSl7ZFgoYik7aD0yMDU4fWVsc2V7aWYoZz4+
PjA+PTExKXtoPTIwNTg7YnJlYWt9YVtiXT1nPDwxJjI1NTtpPWIrMXwwfX13aGlsZSgwKTtpZigo
aHwwKT09MjA1OCl7aD1nKzE2Ji0xNjtqPWtPKGgpfDA7Y1tiKzg+PjJdPWo7Y1tiPj4yXT1ofDE7
Y1tiKzQ+PjJdPWc7aT1qfWlmKChlfDApPT0oZnwwKSl7az1pO2Fba109MDtyZXR1cm59aj1mKygt
ZHwwKXwwO2Q9aTtnPWU7d2hpbGUoMSl7YVtkXT1hW2ddfDA7ZT1nKzF8MDtpZigoZXwwKT09KGZ8
MCkpe2JyZWFrfWVsc2V7ZD1kKzF8MDtnPWV9fWs9aStqfDA7YVtrXT0wO3JldHVybn1mdW5jdGlv
biBmZShhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBmZihhKXthPWF8MDtk
ZShhfDApO3JldHVybn1mdW5jdGlvbiBmZyhiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9
MCxqPTAsaz0wO2Q9aTtpPWkrOHwwO2U9ZHwwO2Y9YjtnPWNbKGNbZj4+Ml18MCktMTI+PjJdfDA7
aD1iO2lmKChjW2grKGcrMjQpPj4yXXwwKT09MCl7aT1kO3JldHVybiBifDB9aj1lfDA7YVtqXT0w
O2NbZSs0Pj4yXT1iO2Rve2lmKChjW2grKGcrMTYpPj4yXXwwKT09MCl7az1jW2grKGcrNzIpPj4y
XXwwO2lmKChrfDApIT0wKXtmZyhrKXwwfWFbal09MTtrPWNbaCsoKGNbKGNbZj4+Ml18MCktMTI+
PjJdfDApKzI0KT4+Ml18MDtpZigoYjBbY1soY1trPj4yXXwwKSsyND4+Ml0mMTI3XShrKXwwKSE9
LTEpe2JyZWFrfWs9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtlQyhoK2t8MCxjW2grKGsrMTYpPj4y
XXwxKX19d2hpbGUoMCk7ZmkoZSk7aT1kO3JldHVybiBifDB9ZnVuY3Rpb24gZmgoYil7Yj1ifDA7
dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MDtkPWk7aT1pKzh8MDtlPWR8MDtmPWI7Zz1j
WyhjW2Y+PjJdfDApLTEyPj4yXXwwO2g9YjtpZigoY1toKyhnKzI0KT4+Ml18MCk9PTApe2k9ZDty
ZXR1cm4gYnwwfWo9ZXwwO2Fbal09MDtjW2UrND4+Ml09Yjtkb3tpZigoY1toKyhnKzE2KT4+Ml18
MCk9PTApe2s9Y1toKyhnKzcyKT4+Ml18MDtpZigoa3wwKSE9MCl7Zmgoayl8MH1hW2pdPTE7az1j
W2grKChjWyhjW2Y+PjJdfDApLTEyPj4yXXwwKSsyNCk+PjJdfDA7aWYoKGIwW2NbKGNbaz4+Ml18
MCkrMjQ+PjJdJjEyN10oayl8MCkhPS0xKXticmVha31rPWNbKGNbZj4+Ml18MCktMTI+PjJdfDA7
ZUMoaCtrfDAsY1toKyhrKzE2KT4+Ml18MSl9fXdoaWxlKDApO2ZqKGUpO2k9ZDtyZXR1cm4gYnww
fWZ1bmN0aW9uIGZpKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtiPWErNHwwO2E9Y1tiPj4yXXww
O2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlPWE7aWYoKGNbZSsoZCsyNCk+PjJdfDApPT0wKXty
ZXR1cm59aWYoKGNbZSsoZCsxNik+PjJdfDApIT0wKXtyZXR1cm59aWYoKGNbZSsoZCs0KT4+Ml0m
ODE5MnwwKT09MCl7cmV0dXJufWlmKGJoKCl8MCl7cmV0dXJufWQ9Y1tiPj4yXXwwO2U9Y1tkKygo
Y1soY1tkPj4yXXwwKS0xMj4+Ml18MCkrMjQpPj4yXXwwO2lmKChiMFtjWyhjW2U+PjJdfDApKzI0
Pj4yXSYxMjddKGUpfDApIT0tMSl7cmV0dXJufWU9Y1tiPj4yXXwwO2I9Y1soY1tlPj4yXXwwKS0x
Mj4+Ml18MDtkPWU7ZUMoZCtifDAsY1tkKyhiKzE2KT4+Ml18MSk7cmV0dXJufWZ1bmN0aW9uIGZq
KGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtiPWErNHwwO2E9Y1tiPj4yXXwwO2Q9Y1soY1thPj4y
XXwwKS0xMj4+Ml18MDtlPWE7aWYoKGNbZSsoZCsyNCk+PjJdfDApPT0wKXtyZXR1cm59aWYoKGNb
ZSsoZCsxNik+PjJdfDApIT0wKXtyZXR1cm59aWYoKGNbZSsoZCs0KT4+Ml0mODE5MnwwKT09MCl7
cmV0dXJufWlmKGJoKCl8MCl7cmV0dXJufWQ9Y1tiPj4yXXwwO2U9Y1tkKygoY1soY1tkPj4yXXww
KS0xMj4+Ml18MCkrMjQpPj4yXXwwO2lmKChiMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGUp
fDApIT0tMSl7cmV0dXJufWU9Y1tiPj4yXXwwO2I9Y1soY1tlPj4yXXwwKS0xMj4+Ml18MDtkPWU7
ZUMoZCtifDAsY1tkKyhiKzE2KT4+Ml18MSk7cmV0dXJufWZ1bmN0aW9uIGZrKGEsYixkLGUsZil7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0w
O0wyNTk2OmRve2lmKChlfDApPT0oZnwwKSl7Zz1ifWVsc2V7YT1iO2g9ZTt3aGlsZSgxKXtpZigo
YXwwKT09KGR8MCkpe2k9LTE7aj0yMTQ3O2JyZWFrfWs9Y1thPj4yXXwwO2w9Y1toPj4yXXwwO2lm
KChrfDApPChsfDApKXtpPS0xO2o9MjE1MDticmVha31pZigobHwwKTwoa3wwKSl7aT0xO2o9MjE0
ODticmVha31rPWErNHwwO2w9aCs0fDA7aWYoKGx8MCk9PShmfDApKXtnPWs7YnJlYWsgTDI1OTZ9
ZWxzZXthPWs7aD1sfX1pZigoanwwKT09MjE0OCl7cmV0dXJuIGl8MH1lbHNlIGlmKChqfDApPT0y
MTQ3KXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9PTIxNTApe3JldHVybiBpfDB9fX13aGlsZSgw
KTtpPShnfDApIT0oZHwwKXwwO3JldHVybiBpfDB9ZnVuY3Rpb24gZmwoYSxiLGQpe2E9YXwwO2I9
YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTA7aWYoKGJ8MCk9PShkfDApKXtlPTA7cmV0dXJu
IGV8MH1lbHNle2Y9YjtnPTB9d2hpbGUoMSl7Yj0oY1tmPj4yXXwwKSsoZzw8NCl8MDthPWImLTI2
ODQzNTQ1NjtoPShhPj4+MjR8YSleYjtiPWYrNHwwO2lmKChifDApPT0oZHwwKSl7ZT1oO2JyZWFr
fWVsc2V7Zj1iO2c9aH19cmV0dXJuIGV8MH1mdW5jdGlvbiBmbShiLGQsZSxmKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MDtkPWU7Zz1mLWR8MDtoPWc+PjI7
aWYoaD4+PjA+MTA3Mzc0MTgyMil7ZFgoYil9aWYoaD4+PjA8Mil7YVtiXT1nPj4+MSYyNTU7aT1i
KzR8MH1lbHNle2c9aCs0Ji00O2o9a08oZzw8Mil8MDtjW2IrOD4+Ml09ajtjW2I+PjJdPWd8MTtj
W2IrND4+Ml09aDtpPWp9aWYoKGV8MCk9PShmfDApKXtrPWk7Y1trPj4yXT0wO3JldHVybn1qPShm
LTQrKC1kfDApfDApPj4+MjtkPWk7aD1lO3doaWxlKDEpe2NbZD4+Ml09Y1toPj4yXTtlPWgrNHww
O2lmKChlfDApPT0oZnwwKSl7YnJlYWt9ZWxzZXtkPWQrNHwwO2g9ZX19az1pKyhqKzE8PDIpfDA7
Y1trPj4yXT0wO3JldHVybn1mdW5jdGlvbiBmbihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVy
bn1mdW5jdGlvbiBmbyhhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBmcChiLGQsZSxm
LGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MDtrPWk7aT1pKzExMnwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWt8
MDttPWsrMTZ8MDtuPWsrMzJ8MDtvPWsrNDB8MDtwPWsrNDh8MDtxPWsrNTZ8MDtyPWsrNjR8MDtz
PWsrNzJ8MDt0PWsrODB8MDt1PWsrMTA0fDA7aWYoKGNbZys0Pj4yXSYxfDApPT0wKXtjW24+PjJd
PS0xO3Y9Y1soY1tkPj4yXXwwKSsxNj4+Ml18MDt3PWV8MDtjW3A+PjJdPWNbdz4+Ml07Y1txPj4y
XT1jW2Y+PjJdO2JYW3YmMTI3XShvLGQscCxxLGcsaCxuKTtxPWNbbz4+Ml18MDtjW3c+PjJdPXE7
c3dpdGNoKGNbbj4+Ml18MCl7Y2FzZSAxOnthW2pdPTE7YnJlYWt9O2Nhc2UgMDp7YVtqXT0wO2Jy
ZWFrfTtkZWZhdWx0OnthW2pdPTE7Y1toPj4yXT00fX1jW2I+PjJdPXE7aT1rO3JldHVybn1laihy
LGcpO3E9cnwwO3I9Y1txPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1ttPj4yXT0xNTY5Njtj
W20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTU2OTYsbSw5Nil9bT0oY1szOTI1XXwwKS0xfDA7
bj1jW3IrOD4+Ml18MDtkb3tpZigoY1tyKzEyPj4yXXwwKS1uPj4yPj4+MD5tPj4+MCl7dz1jW24r
KG08PDIpPj4yXXwwO2lmKCh3fDApPT0wKXticmVha31vPXc7dz1jW3E+PjJdfDA7ZHoodyl8MDtl
aihzLGcpO3c9c3wwO3A9Y1t3Pj4yXXwwO2lmKChjWzM4MjhdfDApIT0tMSl7Y1tsPj4yXT0xNTMx
MjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTUzMTIsbCw5Nil9ZD0oY1szODI5XXwwKS0x
fDA7dj1jW3ArOD4+Ml18MDtkb3tpZigoY1twKzEyPj4yXXwwKS12Pj4yPj4+MD5kPj4+MCl7eD1j
W3YrKGQ8PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7ej1jW3c+PjJdfDA7ZHooeil8
MDt6PXR8MDtBPXg7YlpbY1soY1tBPj4yXXwwKSsyND4+Ml0mMTI3XSh6LHkpO2JaW2NbKGNbQT4+
Ml18MCkrMjg+PjJdJjEyN10odCsxMnwwLHkpO2NbdT4+Ml09Y1tmPj4yXTthW2pdPShmcShlLHUs
eix0KzI0fDAsbyxoLDEpfDApPT0oenwwKXwwO2NbYj4+Ml09Y1tlPj4yXTtkUCh0KzEyfDApO2RQ
KHR8MCk7aT1rO3JldHVybn19d2hpbGUoMCk7bz1iTyg0KXwwO2txKG8pO2JsKG98MCw4MTc2LDEz
NCl9fXdoaWxlKDApO2s9Yk8oNCl8MDtrcShrKTtibChrfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZx
KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3ww
O3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxN
PTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89
MCwkPTAsYWE9MDtsPWk7aT1pKzEwNHwwO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+
PjJdPWNbbT4+Ml07bT0oZy1mfDApLzEyfDA7bj1sfDA7ZG97aWYobT4+PjA+MTAwKXtvPWtKKG0p
fDA7aWYoKG98MCkhPTApe3A9bztxPW87YnJlYWt9a1goKTtwPTA7cT0wfWVsc2V7cD1uO3E9MH19
d2hpbGUoMCk7bj0oZnwwKT09KGd8MCk7aWYobil7cj1tO3M9MH1lbHNle289bTttPTA7dD1wO3U9
Zjt3aGlsZSgxKXt2PWRbdV18MDtpZigodiYxfDApPT0wKXt3PXY+Pj4xfWVsc2V7dz1jW3UrND4+
Ml18MH1pZigod3wwKT09MCl7YVt0XT0yO3g9bSsxfDA7eT1vLTF8MH1lbHNle2FbdF09MTt4PW07
eT1vfXY9dSsxMnwwO2lmKCh2fDApPT0oZ3wwKSl7cj15O3M9eDticmVha31lbHNle289eTttPXg7
dD10KzF8MDt1PXZ9fX11PWJ8MDtiPWV8MDtlPWg7dD0wO3g9cztzPXI7d2hpbGUoMSl7cj1jW3U+
PjJdfDA7ZG97aWYoKHJ8MCk9PTApe3o9MH1lbHNle2lmKChjW3IrMTI+PjJdfDApIT0oY1tyKzE2
Pj4yXXwwKSl7ej1yO2JyZWFrfWlmKChiMFtjWyhjW3I+PjJdfDApKzM2Pj4yXSYxMjddKHIpfDAp
PT0tMSl7Y1t1Pj4yXT0wO3o9MDticmVha31lbHNle3o9Y1t1Pj4yXXwwO2JyZWFrfX19d2hpbGUo
MCk7cj0oenwwKT09MDttPWNbYj4+Ml18MDtpZigobXwwKT09MCl7QT16O0I9MH1lbHNle2Rve2lm
KChjW20rMTI+PjJdfDApPT0oY1ttKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbbT4+Ml18MCkrMzY+
PjJdJjEyN10obSl8MCkhPS0xKXtDPW07YnJlYWt9Y1tiPj4yXT0wO0M9MH1lbHNle0M9bX19d2hp
bGUoMCk7QT1jW3U+PjJdfDA7Qj1DfUQ9KEJ8MCk9PTA7aWYoISgocl5EKSYoc3wwKSE9MCkpe2Jy
ZWFrfW09Y1tBKzEyPj4yXXwwO2lmKChtfDApPT0oY1tBKzE2Pj4yXXwwKSl7RT0oYjBbY1soY1tB
Pj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKSYyNTV9ZWxzZXtFPWFbbV18MH1pZihrKXtGPUV9ZWxz
ZXtGPWJfW2NbKGNbZT4+Ml18MCkrMTI+PjJdJjMxXShoLEUpfDB9ZG97aWYobil7Rz14O0g9c31l
bHNle209dCsxfDA7TDI3MDc6ZG97aWYoayl7eT1zO289eDt3PXA7dj0wO0k9Zjt3aGlsZSgxKXtk
b3tpZigoYVt3XXwwKT09MSl7Sj1JO2lmKChhW0pdJjEpPT0wKXtLPUkrMXwwfWVsc2V7Sz1jW0kr
OD4+Ml18MH1pZihGPDwyND4+MjQhPShhW0srdHwwXXwwKSl7YVt3XT0wO0w9djtNPW87Tj15LTF8
MDticmVha31PPWRbSl18MDtpZigoTyYxfDApPT0wKXtQPU8+Pj4xfWVsc2V7UD1jW0krND4+Ml18
MH1pZigoUHwwKSE9KG18MCkpe0w9MTtNPW87Tj15O2JyZWFrfWFbd109MjtMPTE7TT1vKzF8MDtO
PXktMXwwfWVsc2V7TD12O009bztOPXl9fXdoaWxlKDApO089SSsxMnwwO2lmKChPfDApPT0oZ3ww
KSl7UT1OO1I9TTtTPUw7YnJlYWsgTDI3MDd9eT1OO289TTt3PXcrMXwwO3Y9TDtJPU99fWVsc2V7
ST1zO3Y9eDt3PXA7bz0wO3k9Zjt3aGlsZSgxKXtkb3tpZigoYVt3XXwwKT09MSl7Tz15O2lmKChh
W09dJjEpPT0wKXtUPXkrMXwwfWVsc2V7VD1jW3krOD4+Ml18MH1pZihGPDwyND4+MjQhPShiX1tj
WyhjW2U+PjJdfDApKzEyPj4yXSYzMV0oaCxhW1QrdHwwXXwwKXwwKTw8MjQ+PjI0KXthW3ddPTA7
VT1vO1Y9djtXPUktMXwwO2JyZWFrfUo9ZFtPXXwwO2lmKChKJjF8MCk9PTApe1g9Sj4+PjF9ZWxz
ZXtYPWNbeSs0Pj4yXXwwfWlmKChYfDApIT0obXwwKSl7VT0xO1Y9djtXPUk7YnJlYWt9YVt3XT0y
O1U9MTtWPXYrMXwwO1c9SS0xfDB9ZWxzZXtVPW87Vj12O1c9SX19d2hpbGUoMCk7Sj15KzEyfDA7
aWYoKEp8MCk9PShnfDApKXtRPVc7Uj1WO1M9VTticmVhayBMMjcwN31JPVc7dj1WO3c9dysxfDA7
bz1VO3k9Sn19fXdoaWxlKDApO2lmKCFTKXtHPVI7SD1RO2JyZWFrfW09Y1t1Pj4yXXwwO3k9bSsx
MnwwO289Y1t5Pj4yXXwwO2lmKChvfDApPT0oY1ttKzE2Pj4yXXwwKSl7dz1jWyhjW20+PjJdfDAp
KzQwPj4yXXwwO2IwW3cmMTI3XShtKXwwfWVsc2V7Y1t5Pj4yXT1vKzF9aWYoKFIrUXwwKT4+PjA8
MnxuKXtHPVI7SD1RO2JyZWFrfW89dCsxfDA7eT1SO209cDt3PWY7d2hpbGUoMSl7ZG97aWYoKGFb
bV18MCk9PTIpe3Y9ZFt3XXwwO2lmKCh2JjF8MCk9PTApe1k9dj4+PjF9ZWxzZXtZPWNbdys0Pj4y
XXwwfWlmKChZfDApPT0ob3wwKSl7Wj15O2JyZWFrfWFbbV09MDtaPXktMXwwfWVsc2V7Wj15fX13
aGlsZSgwKTt2PXcrMTJ8MDtpZigodnwwKT09KGd8MCkpe0c9WjtIPVE7YnJlYWt9ZWxzZXt5PVo7
bT1tKzF8MDt3PXZ9fX19d2hpbGUoMCk7dD10KzF8MDt4PUc7cz1IfWRve2lmKChBfDApPT0wKXtf
PTB9ZWxzZXtpZigoY1tBKzEyPj4yXXwwKSE9KGNbQSsxNj4+Ml18MCkpe189QTticmVha31pZigo
YjBbY1soY1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKT09LTEpe2NbdT4+Ml09MDtfPTA7YnJl
YWt9ZWxzZXtfPWNbdT4+Ml18MDticmVha319fXdoaWxlKDApO3U9KF98MCk9PTA7ZG97aWYoRCl7
JD0yMjkzfWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtpZih1KXticmVh
a31lbHNleyQ9MjI5NTticmVha319aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MCk9PS0xKXtjW2I+PjJdPTA7JD0yMjkzO2JyZWFrfWVsc2V7aWYodV4oQnwwKT09MCl7YnJlYWt9
ZWxzZXskPTIyOTU7YnJlYWt9fX19d2hpbGUoMCk7aWYoKCR8MCk9PTIyOTMpe2lmKHUpeyQ9MjI5
NX19aWYoKCR8MCk9PTIyOTUpe2Nbaj4+Ml09Y1tqPj4yXXwyfUwyNzg2OmRve2lmKG4peyQ9MjMw
MH1lbHNle3U9ZjtCPXA7d2hpbGUoMSl7aWYoKGFbQl18MCk9PTIpe2FhPXU7YnJlYWsgTDI3ODZ9
Yj11KzEyfDA7aWYoKGJ8MCk9PShnfDApKXskPTIzMDA7YnJlYWsgTDI3ODZ9dT1iO0I9QisxfDB9
fX13aGlsZSgwKTtpZigoJHwwKT09MjMwMCl7Y1tqPj4yXT1jW2o+PjJdfDQ7YWE9Z31pZigocXww
KT09MCl7aT1sO3JldHVybiBhYXwwfWtLKHEpO2k9bDtyZXR1cm4gYWF8MH1mdW5jdGlvbiBmcihi
LGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2
YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7ZT1pO2k9aSs3MnwwO2w9ZjtmPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMzJ8MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47cD1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztz
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgNjQ6e3Q9
ODticmVha307Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307ZGVmYXVsdDp7
dD0xMH19dT1lfDA7ZngobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChh
W29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJd
fDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7
Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWFbbF18MDtsPXc7dz1jW2g+PjJdfDA7TDI4MDk6d2hpbGUo
MSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle2lmKChjW3crMTI+PjJdfDApIT0oY1t3KzE2Pj4y
XXwwKSl7Qj13O2JyZWFrfWlmKChiMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDApIT0t
MSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1jW2Y+PjJd
fDA7ZG97aWYoKER8MCk9PTApe0U9MjMyN31lbHNle2lmKChjW0QrMTI+PjJdfDApIT0oY1tEKzE2
Pj4yXXwwKSl7aWYoQyl7Rj1EO0c9MDticmVha31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFrIEwyODA5
fX1pZigoYjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+Ml09MDtF
PTIzMjc7YnJlYWt9ZWxzZXtLPShEfDApPT0wO2lmKENeSyl7Rj1EO0c9SzticmVha31lbHNle0g9
bDtJPUQ7Sj1LO2JyZWFrIEwyODA5fX19fXdoaWxlKDApO2lmKChFfDApPT0yMzI3KXtFPTA7aWYo
Qyl7SD1sO0k9MDtKPTE7YnJlYWt9ZWxzZXtGPTA7Rz0xfX1EPWRbb118MDtLPShEJjF8MCk9PTA7
aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoSz9EPj4+MTpjW3o+PjJdfDApfDApKXtpZihLKXtMPUQ+
Pj4xO009RD4+PjF9ZWxzZXtEPWNbej4+Ml18MDtMPUQ7TT1EfWRSKG4sTDw8MSwwKTtpZigoYVtv
XSYxKT09MCl7Tj0xMH1lbHNle049KGNbZz4+Ml0mLTIpLTF8MH1kUihuLE4sMCk7aWYoKGFbb10m
MSk9PTApe089eH1lbHNle089Y1t5Pj4yXXwwfWNbcD4+Ml09TytNO1A9T31lbHNle1A9bH1EPUIr
MTJ8MDtLPWNbRD4+Ml18MDtRPUIrMTZ8MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1I9KGIwW2Nb
KGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkmMjU1fWVsc2V7Uj1hW0tdfDB9aWYoKGZzKFIs
dCxQLHAscyxBLG0sdixyLHUpfDApIT0wKXtIPVA7ST1GO0o9RzticmVha31LPWNbRD4+Ml18MDtp
ZigoS3wwKT09KGNbUT4+Ml18MCkpe1E9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtRJjEyN10o
Qil8MDtsPVA7dz1CO2NvbnRpbnVlfWVsc2V7Y1tEPj4yXT1LKzE7bD1QO3c9Qjtjb250aW51ZX19
dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Uz13Pj4+MX1lbHNle1M9Y1ttKzQ+PjJdfDB9ZG97aWYo
KFN8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9UD1jW3M+PjJdfDA7
Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1QfX13aGlsZSgwKTtjW2s+PjJdPWZ1KEgsY1twPj4yXXwwLGos
dCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEMpe1Q9MH1lbHNle2lmKChjW0IrMTI+PjJd
fDApIT0oY1tCKzE2Pj4yXXwwKSl7VD1CO2JyZWFrfWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4y
XSYxMjddKEIpfDApIT0tMSl7VD1CO2JyZWFrfWNbaD4+Ml09MDtUPTB9fXdoaWxlKDApO2g9KFR8
MCk9PTA7TDI4Njk6ZG97aWYoSil7RT0yMzY4fWVsc2V7ZG97aWYoKGNbSSsxMj4+Ml18MCk9PShj
W0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwKSE9LTEp
e2JyZWFrfWNbZj4+Ml09MDtFPTIzNjg7YnJlYWsgTDI4Njl9fXdoaWxlKDApO2lmKCEoaF4oSXww
KT09MCkpe2JyZWFrfVU9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGls
ZSgwKTtkb3tpZigoRXwwKT09MjM2OCl7aWYoaCl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4p
O2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1U9YnwwO2NbVT4+
Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZzKGIsZSxmLGcsaCxpLGosayxs
LG0pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHww
O209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDtuPWNbZz4+Ml18MDtvPShufDApPT0o
ZnwwKTtkb3tpZihvKXtwPShhW20rMjR8MF18MCk9PWI8PDI0Pj4yNDtpZighcCl7aWYoKGFbbSsy
NXwwXXwwKSE9Yjw8MjQ+PjI0KXticmVha319Y1tnPj4yXT1mKzE7YVtmXT1wPzQzOjQ1O2NbaD4+
Ml09MDtxPTA7cmV0dXJuIHF8MH19d2hpbGUoMCk7cD1kW2pdfDA7aWYoKHAmMXwwKT09MCl7cj1w
Pj4+MX1lbHNle3I9Y1tqKzQ+PjJdfDB9aWYoKHJ8MCkhPTAmYjw8MjQ+PjI0PT1pPDwyND4+MjQp
e2k9Y1tsPj4yXXwwO2lmKChpLWt8MCk+PTE2MCl7cT0wO3JldHVybiBxfDB9az1jW2g+PjJdfDA7
Y1tsPj4yXT1pKzQ7Y1tpPj4yXT1rO2NbaD4+Ml09MDtxPTA7cmV0dXJuIHF8MH1rPW0rMjZ8MDtp
PW07d2hpbGUoMSl7aWYoKGl8MCk9PShrfDApKXtzPWs7YnJlYWt9aWYoKGFbaV18MCk9PWI8PDI0
Pj4yNCl7cz1pO2JyZWFrfWVsc2V7aT1pKzF8MH19aT1zLW18MDtpZigoaXwwKT4yMyl7cT0tMTty
ZXR1cm4gcXwwfUwyOTA4OmRve3N3aXRjaChlfDApe2Nhc2UgODpjYXNlIDEwOntpZigoaXwwKTwo
ZXwwKSl7YnJlYWsgTDI5MDh9ZWxzZXtxPS0xfXJldHVybiBxfDB9O2Nhc2UgMTY6e2lmKChpfDAp
PDIyKXticmVhayBMMjkwOH1pZihvKXtxPS0xO3JldHVybiBxfDB9aWYoKG4tZnwwKT49Myl7cT0t
MTtyZXR1cm4gcXwwfWlmKChhW24tMXwwXXwwKSE9NDgpe3E9LTE7cmV0dXJuIHF8MH1jW2g+PjJd
PTA7bT1hWzk3NDQraXwwXXwwO3M9Y1tnPj4yXXwwO2NbZz4+Ml09cysxO2Fbc109bTtxPTA7cmV0
dXJuIHF8MH07ZGVmYXVsdDp7fX19d2hpbGUoMCk7Zj1hWzk3NDQraXwwXXwwO2NbZz4+Ml09bisx
O2Fbbl09ZjtjW2g+PjJdPShjW2g+PjJdfDApKzE7cT0wO3JldHVybiBxfDB9ZnVuY3Rpb24gZnQo
YixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2c9YjtoPWI7aT1hW2hdfDA7
aj1pJjI1NTtpZigoaiYxfDApPT0wKXtrPWo+Pj4xfWVsc2V7az1jW2IrND4+Ml18MH1pZigoa3ww
KT09MCl7cmV0dXJufWRve2lmKChkfDApPT0oZXwwKSl7bD1pfWVsc2V7az1lLTR8MDtpZihrPj4+
MD5kPj4+MCl7bT1kO249a31lbHNle2w9aTticmVha31kb3trPWNbbT4+Ml18MDtjW20+PjJdPWNb
bj4+Ml07Y1tuPj4yXT1rO209bSs0fDA7bj1uLTR8MDt9d2hpbGUobT4+PjA8bj4+PjApO2w9YVto
XXwwfX13aGlsZSgwKTtpZigobCYxKT09MCl7bz1nKzF8MH1lbHNle289Y1tiKzg+PjJdfDB9Zz1s
JjI1NTtpZigoZyYxfDApPT0wKXtwPWc+Pj4xfWVsc2V7cD1jW2IrND4+Ml18MH1iPWUtNHwwO2U9
YVtvXXwwO2c9ZTw8MjQ+PjI0O2w9ZTw8MjQ+PjI0PDF8ZTw8MjQ+PjI0PT0xMjc7TDI5NDc6ZG97
aWYoYj4+PjA+ZD4+PjApe2U9bytwfDA7aD1vO249ZDttPWc7aT1sO3doaWxlKDEpe2lmKCFpKXtp
ZigobXwwKSE9KGNbbj4+Ml18MCkpe2JyZWFrfX1rPShlLWh8MCk+MT9oKzF8MDpoO2o9bis0fDA7
cT1hW2tdfDA7cj1xPDwyND4+MjQ7cz1xPDwyND4+MjQ8MXxxPDwyND4+MjQ9PTEyNztpZihqPj4+
MDxiPj4+MCl7aD1rO249ajttPXI7aT1zfWVsc2V7dD1yO3U9czticmVhayBMMjk0N319Y1tmPj4y
XT00O3JldHVybn1lbHNle3Q9Zzt1PWx9fXdoaWxlKDApO2lmKHUpe3JldHVybn11PWNbYj4+Ml18
MDtpZighKHQ+Pj4wPHU+Pj4wfCh1fDApPT0wKSl7cmV0dXJufWNbZj4+Ml09NDtyZXR1cm59ZnVu
Y3Rpb24gZnUoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0w
LGs9MCxsPTA7Zz1pO2k9aSs4fDA7aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0w
O2k9ZztyZXR1cm4ganwwfWs9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lm
KChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygx
LDEzNDQsMCl8MH19d2hpbGUoMCk7bD1iSShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9
Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09a31pZigoY1toPj4y
XXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9ZD0tMTtoPTA7aWYoKGJ8
MCk9PTM0fCgoZnwwKTwoZHwwKXwoZnwwKT09KGR8MCkmbD4+PjA8LTIxNDc0ODM2NDg+Pj4wKXwo
KGZ8MCk+KGh8MCl8KGZ8MCk9PShofDApJmw+Pj4wPjIxNDc0ODM2NDc+Pj4wKSl7Y1tlPj4yXT00
O2U9MDtqPShmfDApPihlfDApfChmfDApPT0oZXwwKSZsPj4+MD4wPj4+MD8yMTQ3NDgzNjQ3Oi0y
MTQ3NDgzNjQ4O2k9ZztyZXR1cm4ganwwfWVsc2V7aj1sO2k9ZztyZXR1cm4ganwwfXJldHVybiAw
fWZ1bmN0aW9uIGZ2KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxK
PTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MDtlPWk7aT1pKzcy
fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1
NnwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8
MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2Nhc2UgMDp7dD0wO2Jy
ZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RS
KG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1u
Kzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nb
cz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18
MDtMMjk5Nzp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18
MCkhPShjW3crMTY+PjJdfDApKXtCPXc7YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJd
JjEyN10odyl8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnww
KT09MDtEPWNbZj4+Ml18MDtkb3tpZigoRHwwKT09MCl7RT0yNDc2fWVsc2V7aWYoKGNbRCsxMj4+
Ml18MCkhPShjW0QrMTY+PjJdfDApKXtpZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtK
PTA7YnJlYWsgTDI5OTd9fWlmKChiMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0t
MSl7Y1tmPj4yXT0wO0U9MjQ3NjticmVha31lbHNle0w9KER8MCk9PTA7aWYoQ15MKXtGPUQ7Rz1M
O2JyZWFrfWVsc2V7SD1sO0k9RDtKPUw7YnJlYWsgTDI5OTd9fX19d2hpbGUoMCk7aWYoKEV8MCk9
PTI0NzYpe0U9MDtpZihDKXtIPWw7ST0wO0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXww
O0w9KEQmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChMP0Q+Pj4xOmNbej4+Ml18MCl8
MCkpe2lmKEwpe009RD4+PjE7Tj1EPj4+MX1lbHNle0Q9Y1t6Pj4yXXwwO009RDtOPUR9ZFIobixN
PDwxLDApO2lmKChhW29dJjEpPT0wKXtPPTEwfWVsc2V7Tz0oY1tnPj4yXSYtMiktMXwwfWRSKG4s
TywwKTtpZigoYVtvXSYxKT09MCl7UD14fWVsc2V7UD1jW3k+PjJdfDB9Y1twPj4yXT1QK047UT1Q
fWVsc2V7UT1sfUQ9QisxMnwwO0w9Y1tEPj4yXXwwO1I9QisxNnwwO2lmKChMfDApPT0oY1tSPj4y
XXwwKSl7Uz0oYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtTPWFb
TF18MH1pZigoZnMoUyx0LFEscCxzLEEsbSx2LHIsdSl8MCkhPTApe0g9UTtJPUY7Sj1HO2JyZWFr
fUw9Y1tEPj4yXXwwO2lmKChMfDApPT0oY1tSPj4yXXwwKSl7Uj1jWyhjW0I+PjJdfDApKzQwPj4y
XXwwO2IwW1ImMTI3XShCKXwwO2w9UTt3PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUwrMTtsPVE7
dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtUPXc+Pj4xfWVsc2V7VD1jW20r
ND4+Ml18MH1kb3tpZigoVHwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVh
a31RPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVF9fXdoaWxlKDApO3M9ZncoSCxjW3A+
PjJdfDAsaix0KXwwO2Nbaz4+Ml09cztjW2srND4+Ml09SztmdChtLHYsY1tyPj4yXXwwLGopO2Rv
e2lmKEMpe1U9MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VT1CO2Jy
ZWFrfWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VT1CO2JyZWFr
fWNbaD4+Ml09MDtVPTB9fXdoaWxlKDApO2g9KFV8MCk9PTA7TDMwNTc6ZG97aWYoSil7RT0yNTE3
fWVsc2V7ZG97aWYoKGNbSSsxMj4+Ml18MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJ
Pj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI1MTc7YnJl
YWsgTDMwNTd9fXdoaWxlKDApO2lmKCEoaF4oSXwwKT09MCkpe2JyZWFrfVY9YnwwO2NbVj4+Ml09
VTtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRXwwKT09MjUxNyl7aWYo
aCl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Nbaj4+Ml09Y1tqPj4yXXwyO1Y9YnwwO2NbVj4+Ml09VTtkUChuKTtkUChtKTtpPWU7cmV0dXJu
fWZ1bmN0aW9uIGZ3KGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0w
LGo9MCxrPTAsbD0wLG09MDtnPWk7aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+
Ml09NDtqPTA7az0wO2k9ZztyZXR1cm4oSz1qLGspfDB9bD1jWyhidygpfDApPj4yXXwwO2NbKGJ3
KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXti
cmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTttPWJJKGJ8MCxofDAsZnwwLGNb
Mjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDAp
Pj4yXT1sfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtrPTA7aT1nO3JldHVy
bihLPWosayl8MH1pZigoYnwwKSE9MzQpe2o9ZjtrPW07aT1nO3JldHVybihLPWosayl8MH1jW2U+
PjJdPTQ7ZT0wO2I9KGZ8MCk+KGV8MCl8KGZ8MCk9PShlfDApJm0+Pj4wPjA+Pj4wO2o9Yj8yMTQ3
NDgzNjQ3Oi0yMTQ3NDgzNjQ4O2s9Yj8tMTowO2k9ZztyZXR1cm4oSz1qLGspfDB9ZnVuY3Rpb24g
ZngoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MDtnPWk7aT1pKzQwfDA7aD1nfDA7aj1nKzE2fDA7az1nKzMy
fDA7ZWooayxkKTtkPWt8MDtrPWNbZD4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbaj4+Ml09
MTU2OTY7Y1tqKzQ+PjJdPTEyO2Nbais4Pj4yXT0wO2RXKDE1Njk2LGosOTYpfWo9KGNbMzkyNV18
MCktMXwwO2w9Y1trKzg+PjJdfDA7ZG97aWYoKGNbaysxMj4+Ml18MCktbD4+Mj4+PjA+aj4+PjAp
e209Y1tsKyhqPDwyKT4+Ml18MDtpZigobXwwKT09MCl7YnJlYWt9bj1tO289Y1soY1ttPj4yXXww
KSszMj4+Ml18MDtjYVtvJjE1XShuLDk3NDQsOTc3MCxlKXwwO249Y1tkPj4yXXwwO2lmKChjWzM4
MjhdfDApIT0tMSl7Y1toPj4yXT0xNTMxMjtjW2grND4+Ml09MTI7Y1toKzg+PjJdPTA7ZFcoMTUz
MTIsaCw5Nil9bz0oY1szODI5XXwwKS0xfDA7bT1jW24rOD4+Ml18MDtkb3tpZigoY1tuKzEyPj4y
XXwwKS1tPj4yPj4+MD5vPj4+MCl7cD1jW20rKG88PDIpPj4yXXwwO2lmKChwfDApPT0wKXticmVh
a31xPXA7YVtmXT1iMFtjWyhjW3A+PjJdfDApKzE2Pj4yXSYxMjddKHEpfDA7YlpbY1soY1twPj4y
XXwwKSsyMD4+Ml0mMTI3XShiLHEpO3E9Y1tkPj4yXXwwO2R6KHEpfDA7aT1nO3JldHVybn19d2hp
bGUoMCk7bz1iTyg0KXwwO2txKG8pO2JsKG98MCw4MTc2LDEzNCl9fXdoaWxlKDApO2c9Yk8oNCl8
MDtrcShnKTtibChnfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZ5KGUsZixnLGgsaixrLGwpe2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxF
PTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9
MCxUPTAsVT0wLFY9MDtmPWk7aT1pKzcyfDA7bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zz4+Ml09Y1ttPj4yXTttPWg7aD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1toPj4yXT1jW20+PjJd
O209ZiszMnwwO249Zis0MHwwO289Zis1NnwwO3A9bztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzty
PWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3N3aXRjaChjW2orND4+Ml0mNzR8MCl7Y2FzZSAwOnt1PTA7YnJlYWt9O2Nhc2UgODp7dT0x
NjticmVha307Y2FzZSA2NDp7dT04O2JyZWFrfTtkZWZhdWx0Ont1PTEwfX12PWZ8MDtmeChuLGos
dixtKTtrJChwfDAsMCwxMik7aj1vO2RSKG8sMTAsMCk7aWYoKGFbcF0mMSk9PTApe3c9aisxfDA7
eD13O3k9dzt6PW8rOHwwfWVsc2V7dz1vKzh8MDt4PWNbdz4+Ml18MDt5PWorMXwwO3o9d31jW3E+
PjJdPXg7dz1yfDA7Y1tzPj4yXT13O2NbdD4+Ml09MDtqPWd8MDtnPWh8MDtoPW98MDtBPW8rNHww
O0I9YVttXXwwO209eDt4PWNbaj4+Ml18MDtMMzEyMjp3aGlsZSgxKXtkb3tpZigoeHwwKT09MCl7
Qz0wfWVsc2V7aWYoKGNbeCsxMj4+Ml18MCkhPShjW3grMTY+PjJdfDApKXtDPXg7YnJlYWt9aWYo
KGIwW2NbKGNbeD4+Ml18MCkrMzY+PjJdJjEyN10oeCl8MCkhPS0xKXtDPXg7YnJlYWt9Y1tqPj4y
XT0wO0M9MH19d2hpbGUoMCk7RD0oQ3wwKT09MDtFPWNbZz4+Ml18MDtkb3tpZigoRXwwKT09MCl7
Rj0yNTc5fWVsc2V7aWYoKGNbRSsxMj4+Ml18MCkhPShjW0UrMTY+PjJdfDApKXtpZihEKXtHPUU7
SD0wO2JyZWFrfWVsc2V7ST1tO0o9RTtLPTA7YnJlYWsgTDMxMjJ9fWlmKChiMFtjWyhjW0U+PjJd
fDApKzM2Pj4yXSYxMjddKEUpfDApPT0tMSl7Y1tnPj4yXT0wO0Y9MjU3OTticmVha31lbHNle0w9
KEV8MCk9PTA7aWYoRF5MKXtHPUU7SD1MO2JyZWFrfWVsc2V7ST1tO0o9RTtLPUw7YnJlYWsgTDMx
MjJ9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTI1Nzkpe0Y9MDtpZihEKXtJPW07Sj0wO0s9MTticmVh
a31lbHNle0c9MDtIPTF9fUU9ZFtwXXwwO0w9KEUmMXwwKT09MDtpZigoKGNbcT4+Ml18MCktbXww
KT09KChMP0U+Pj4xOmNbQT4+Ml18MCl8MCkpe2lmKEwpe009RT4+PjE7Tj1FPj4+MX1lbHNle0U9
Y1tBPj4yXXwwO009RTtOPUV9ZFIobyxNPDwxLDApO2lmKChhW3BdJjEpPT0wKXtPPTEwfWVsc2V7
Tz0oY1toPj4yXSYtMiktMXwwfWRSKG8sTywwKTtpZigoYVtwXSYxKT09MCl7UD15fWVsc2V7UD1j
W3o+PjJdfDB9Y1txPj4yXT1QK047UT1QfWVsc2V7UT1tfUU9QysxMnwwO0w9Y1tFPj4yXXwwO1I9
QysxNnwwO2lmKChMfDApPT0oY1tSPj4yXXwwKSl7Uz0oYjBbY1soY1tDPj4yXXwwKSszNj4+Ml0m
MTI3XShDKXwwKSYyNTV9ZWxzZXtTPWFbTF18MH1pZigoZnMoUyx1LFEscSx0LEIsbix3LHMsdil8
MCkhPTApe0k9UTtKPUc7Sz1IO2JyZWFrfUw9Y1tFPj4yXXwwO2lmKChMfDApPT0oY1tSPj4yXXww
KSl7Uj1jWyhjW0M+PjJdfDApKzQwPj4yXXwwO2IwW1ImMTI3XShDKXwwO209UTt4PUM7Y29udGlu
dWV9ZWxzZXtjW0U+PjJdPUwrMTttPVE7eD1DO2NvbnRpbnVlfX14PWRbbl18MDtpZigoeCYxfDAp
PT0wKXtUPXg+Pj4xfWVsc2V7VD1jW24rND4+Ml18MH1kb3tpZigoVHwwKSE9MCl7eD1jW3M+PjJd
fDA7aWYoKHgtcnwwKT49MTYwKXticmVha31RPWNbdD4+Ml18MDtjW3M+PjJdPXgrNDtjW3g+PjJd
PVF9fXdoaWxlKDApO2JbbD4+MV09ZnooSSxjW3E+PjJdfDAsayx1KXwwO2Z0KG4sdyxjW3M+PjJd
fDAsayk7ZG97aWYoRCl7VT0wfWVsc2V7aWYoKGNbQysxMj4+Ml18MCkhPShjW0MrMTY+PjJdfDAp
KXtVPUM7YnJlYWt9aWYoKGIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MCkhPS0xKXtV
PUM7YnJlYWt9Y1tqPj4yXT0wO1U9MH19d2hpbGUoMCk7aj0oVXwwKT09MDtMMzE4Mjpkb3tpZihL
KXtGPTI2MjB9ZWxzZXtkb3tpZigoY1tKKzEyPj4yXXwwKT09KGNbSisxNj4+Ml18MCkpe2lmKChi
MFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYxMjddKEopfDApIT0tMSl7YnJlYWt9Y1tnPj4yXT0wO0Y9
MjYyMDticmVhayBMMzE4Mn19d2hpbGUoMCk7aWYoIShqXihKfDApPT0wKSl7YnJlYWt9Vj1lfDA7
Y1tWPj4yXT1VO2RQKG8pO2RQKG4pO2k9ZjtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT0y
NjIwKXtpZihqKXticmVha31WPWV8MDtjW1Y+PjJdPVU7ZFAobyk7ZFAobik7aT1mO3JldHVybn19
d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7Vj1lfDA7Y1tWPj4yXT1VO2RQKG8pO2RQKG4pO2k9
ZjtyZXR1cm59ZnVuY3Rpb24gZnooYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFy
IGc9MCxoPTAsaj0wLGs9MCxsPTA7Zz1pO2k9aSs4fDA7aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtj
W2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWlmKChhW2JdfDApPT00NSl7Y1tlPj4yXT00O2o9
MDtpPWc7cmV0dXJuIGp8MH1rPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tp
ZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMo
MSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9YUkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXwwO2Y9Szti
PWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWt9aWYoKGNbaD4+
Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWQ9MDtpZigoYnwwKT09
MzR8KGY+Pj4wPmQ+Pj4wfGY+Pj4wPT1kPj4+MCZsPj4+MD42NTUzNT4+PjApKXtjW2U+PjJdPTQ7
aj0tMTtpPWc7cmV0dXJuIGp8MH1lbHNle2o9bCY2NTUzNTtpPWc7cmV0dXJuIGp8MH1yZXR1cm4g
MH1mdW5jdGlvbiBmQShiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0w
LHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAs
Sj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7ZT1pO2k9aSs3
MnwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMzJ8MDttPWUrNDB8MDtuPWUr
NTZ8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0
fDApe2Nhc2UgNjQ6e3Q9ODticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2UgODp7dD0xNjti
cmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZngobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtk
UihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9
bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtj
W3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWFbbF18MDtsPXc7dz1jW2g+PjJd
fDA7TDMyMzI6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle2lmKChjW3crMTI+PjJd
fDApIT0oY1t3KzE2Pj4yXXwwKSl7Qj13O2JyZWFrfWlmKChiMFtjWyhjW3c+PjJdfDApKzM2Pj4y
XSYxMjddKHcpfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0M9KEJ8
MCk9PTA7RD1jW2Y+PjJdfDA7ZG97aWYoKER8MCk9PTApe0U9MjY2OX1lbHNle2lmKChjW0QrMTI+
PjJdfDApIT0oY1tEKzE2Pj4yXXwwKSl7aWYoQyl7Rj1EO0c9MDticmVha31lbHNle0g9bDtJPUQ7
Sj0wO2JyZWFrIEwzMjMyfX1pZigoYjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwKT09
LTEpe2NbZj4+Ml09MDtFPTI2Njk7YnJlYWt9ZWxzZXtLPShEfDApPT0wO2lmKENeSyl7Rj1EO0c9
SzticmVha31lbHNle0g9bDtJPUQ7Sj1LO2JyZWFrIEwzMjMyfX19fXdoaWxlKDApO2lmKChFfDAp
PT0yNjY5KXtFPTA7aWYoQyl7SD1sO0k9MDtKPTE7YnJlYWt9ZWxzZXtGPTA7Rz0xfX1EPWRbb118
MDtLPShEJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoSz9EPj4+MTpjW3o+PjJdfDAp
fDApKXtpZihLKXtMPUQ+Pj4xO009RD4+PjF9ZWxzZXtEPWNbej4+Ml18MDtMPUQ7TT1EfWRSKG4s
TDw8MSwwKTtpZigoYVtvXSYxKT09MCl7Tj0xMH1lbHNle049KGNbZz4+Ml0mLTIpLTF8MH1kUihu
LE4sMCk7aWYoKGFbb10mMSk9PTApe089eH1lbHNle089Y1t5Pj4yXXwwfWNbcD4+Ml09TytNO1A9
T31lbHNle1A9bH1EPUIrMTJ8MDtLPWNbRD4+Ml18MDtRPUIrMTZ8MDtpZigoS3wwKT09KGNbUT4+
Ml18MCkpe1I9KGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkmMjU1fWVsc2V7Uj1h
W0tdfDB9aWYoKGZzKFIsdCxQLHAscyxBLG0sdixyLHUpfDApIT0wKXtIPVA7ST1GO0o9RzticmVh
a31LPWNbRD4+Ml18MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1E9Y1soY1tCPj4yXXwwKSs0MD4+
Ml18MDtiMFtRJjEyN10oQil8MDtsPVA7dz1CO2NvbnRpbnVlfWVsc2V7Y1tEPj4yXT1LKzE7bD1Q
O3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Uz13Pj4+MX1lbHNle1M9Y1tt
KzQ+PjJdfDB9ZG97aWYoKFN8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJl
YWt9UD1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1QfX13aGlsZSgwKTtjW2s+PjJdPWZC
KEgsY1twPj4yXXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEMpe1Q9MH1lbHNl
e2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VD1CO2JyZWFrfWlmKChiMFtjWyhj
W0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VD1CO2JyZWFrfWNbaD4+Ml09MDtUPTB9
fXdoaWxlKDApO2g9KFR8MCk9PTA7TDMyOTI6ZG97aWYoSil7RT0yNzEwfWVsc2V7ZG97aWYoKGNb
SSsxMj4+Ml18MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJPj4yXXwwKSszNj4+Ml0m
MTI3XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI3MTA7YnJlYWsgTDMyOTJ9fXdoaWxl
KDApO2lmKCEoaF4oSXwwKT09MCkpe2JyZWFrfVU9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtp
PWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRXwwKT09MjcxMCl7aWYoaCl7YnJlYWt9VT1ifDA7
Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4y
XXwyO1U9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZCKGIs
ZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wO2c9
aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJu
IGp8MH1pZigoYVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9az1jWyhi
dygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigo
YmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTts
PWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDApPj4yXXwwO2lmKChi
fDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00
O2o9MDtpPWc7cmV0dXJuIGp8MH1kPTA7aWYoKGJ8MCk9PTM0fChmPj4+MD5kPj4+MHxmPj4+MD09
ZD4+PjAmbD4+PjA+LTE+Pj4wKSl7Y1tlPj4yXT00O2o9LTE7aT1nO3JldHVybiBqfDB9ZWxzZXtq
PWw7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZkMoYixlLGYsZyxoLGosayl7Yj1i
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0w
LEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAs
Uj0wLFM9MCxUPTAsVT0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+
Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA4Ont0
PTE2O2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2Z4KG0s
aCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1oKzF8
MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNb
cD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0
fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wzMzQyOndoaWxlKDEpe2Rve2lmKCh3fDApPT0w
KXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+Ml18MCkpe0I9dzticmVha31p
ZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9LTEpe0I9dzticmVha31jW2g+
PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4yXXwwO2Rve2lmKChEfDApPT0w
KXtFPTI3NTl9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsxNj4+Ml18MCkpe2lmKEMpe0Y9
RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMzM0Mn19aWYoKGIwW2NbKGNbRD4+
Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7RT0yNzU5O2JyZWFrfWVsc2V7
Sz0oRHwwKT09MDtpZihDXkspe0Y9RDtHPUs7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9SzticmVhayBM
MzM0Mn19fX13aGlsZSgwKTtpZigoRXwwKT09Mjc1OSl7RT0wO2lmKEMpe0g9bDtJPTA7Sj0xO2Jy
ZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7Sz0oRCYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1s
fDApPT0oKEs/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoSyl7TD1EPj4+MTtNPUQ+Pj4xfWVsc2V7
RD1jW3o+PjJdfDA7TD1EO009RH1kUihuLEw8PDEsMCk7aWYoKGFbb10mMSk9PTApe049MTB9ZWxz
ZXtOPShjW2c+PjJdJi0yKS0xfDB9ZFIobixOLDApO2lmKChhW29dJjEpPT0wKXtPPXh9ZWxzZXtP
PWNbeT4+Ml18MH1jW3A+PjJdPU8rTTtQPU99ZWxzZXtQPWx9RD1CKzEyfDA7Sz1jW0Q+PjJdfDA7
UT1CKzE2fDA7aWYoKEt8MCk9PShjW1E+PjJdfDApKXtSPShiMFtjWyhjW0I+PjJdfDApKzM2Pj4y
XSYxMjddKEIpfDApJjI1NX1lbHNle1I9YVtLXXwwfWlmKChmcyhSLHQsUCxwLHMsQSxtLHYscix1
KXwwKSE9MCl7SD1QO0k9RjtKPUc7YnJlYWt9Sz1jW0Q+PjJdfDA7aWYoKEt8MCk9PShjW1E+PjJd
fDApKXtRPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUSYxMjddKEIpfDA7bD1QO3c9Qjtjb250
aW51ZX1lbHNle2NbRD4+Ml09SysxO2w9UDt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8
MCk9PTApe1M9dz4+PjF9ZWxzZXtTPWNbbSs0Pj4yXXwwfWRve2lmKChTfDApIT0wKXt3PWNbcj4+
Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVA9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+
Ml09UH19d2hpbGUoMCk7Y1trPj4yXT1mRChILGNbcD4+Ml18MCxqLHQpfDA7ZnQobSx2LGNbcj4+
Ml18MCxqKTtkb3tpZihDKXtUPTB9ZWxzZXtpZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18
MCkpe1Q9QjticmVha31pZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSE9LTEp
e1Q9QjticmVha31jW2g+PjJdPTA7VD0wfX13aGlsZSgwKTtoPShUfDApPT0wO0wzNDAyOmRve2lm
KEope0U9MjgwMH1lbHNle2Rve2lmKChjW0krMTI+PjJdfDApPT0oY1tJKzE2Pj4yXXwwKSl7aWYo
KGIwW2NbKGNbST4+Ml18MCkrMzY+PjJdJjEyN10oSSl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7
RT0yODAwO2JyZWFrIEwzNDAyfX13aGlsZSgwKTtpZighKGheKEl8MCk9PTApKXticmVha31VPWJ8
MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEV8MCk9
PTI4MDApe2lmKGgpe2JyZWFrfVU9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJu
fX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtVPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7
aT1lO3JldHVybn1mdW5jdGlvbiBmRChiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2
YXIgZz0wLGg9MCxqPTAsaz0wLGw9MDtnPWk7aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkp
e2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9aWYoKGFbYl18MCk9PTQ1KXtjW2U+PjJdPTQ7
aj0wO2k9ZztyZXR1cm4ganwwfWs9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rv
e2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1h
UygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1hSShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1L
O2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09a31pZigoY1to
Pj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9ZD0wO2lmKChifDAp
PT0zNHwoZj4+PjA+ZD4+PjB8Zj4+PjA9PWQ+Pj4wJmw+Pj4wPi0xPj4+MCkpe2NbZT4+Ml09NDtq
PS0xO2k9ZztyZXR1cm4ganwwfWVsc2V7aj1sO2k9ZztyZXR1cm4ganwwfXJldHVybiAwfWZ1bmN0
aW9uIGZFKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anww
O2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MDtlPWk7aT1pKzcyfDA7bD1m
O2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289
bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2Fz
ZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtk
ZWZhdWx0Ont0PTEwfX11PWV8MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAs
MCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3
PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09
MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMzQ1
Mjp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShj
W3crMTY+PjJdfDApKXtCPXc7YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10o
dyl8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtE
PWNbZj4+Ml18MDtkb3tpZigoRHwwKT09MCl7RT0yODQ5fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkh
PShjW0QrMTY+PjJdfDApKXtpZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJl
YWsgTDM0NTJ9fWlmKChiMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tm
Pj4yXT0wO0U9Mjg0OTticmVha31lbHNle0w9KER8MCk9PTA7aWYoQ15MKXtGPUQ7Rz1MO2JyZWFr
fWVsc2V7SD1sO0k9RDtKPUw7YnJlYWsgTDM0NTJ9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTI4NDkp
e0U9MDtpZihDKXtIPWw7ST0wO0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0w9KEQm
MXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChMP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lm
KEwpe009RD4+PjE7Tj1EPj4+MX1lbHNle0Q9Y1t6Pj4yXXwwO009RDtOPUR9ZFIobixNPDwxLDAp
O2lmKChhW29dJjEpPT0wKXtPPTEwfWVsc2V7Tz0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTywwKTtp
ZigoYVtvXSYxKT09MCl7UD14fWVsc2V7UD1jW3k+PjJdfDB9Y1twPj4yXT1QK047UT1QfWVsc2V7
UT1sfUQ9QisxMnwwO0w9Y1tEPj4yXXwwO1I9QisxNnwwO2lmKChMfDApPT0oY1tSPj4yXXwwKSl7
Uz0oYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtTPWFbTF18MH1p
ZigoZnMoUyx0LFEscCxzLEEsbSx2LHIsdSl8MCkhPTApe0g9UTtJPUY7Sj1HO2JyZWFrfUw9Y1tE
Pj4yXXwwO2lmKChMfDApPT0oY1tSPj4yXXwwKSl7Uj1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2Iw
W1ImMTI3XShCKXwwO2w9UTt3PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUwrMTtsPVE7dz1CO2Nv
bnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtUPXc+Pj4xfWVsc2V7VD1jW20rND4+Ml18
MH1kb3tpZigoVHwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31RPWNb
cz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVF9fXdoaWxlKDApO3M9ZkYoSCxjW3A+PjJdfDAs
aix0KXwwO2Nbaz4+Ml09cztjW2srND4+Ml09SztmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEMp
e1U9MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VT1CO2JyZWFrfWlm
KChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VT1CO2JyZWFrfWNbaD4+
Ml09MDtVPTB9fXdoaWxlKDApO2g9KFV8MCk9PTA7TDM1MTI6ZG97aWYoSil7RT0yODkwfWVsc2V7
ZG97aWYoKGNbSSsxMj4+Ml18MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJPj4yXXww
KSszNj4+Ml0mMTI3XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI4OTA7YnJlYWsgTDM1
MTJ9fXdoaWxlKDApO2lmKCEoaF4oSXwwKT09MCkpe2JyZWFrfVY9YnwwO2NbVj4+Ml09VTtkUChu
KTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRXwwKT09Mjg5MCl7aWYoaCl7YnJl
YWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+
Ml09Y1tqPj4yXXwyO1Y9YnwwO2NbVj4+Ml09VTtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0
aW9uIGZGKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wO2c9aTtpPWkrOHwwO2g9Z3wwO2Rve2lmKChifDApPT0oZHwwKSl7
Y1tlPj4yXT00O2o9MDtrPTB9ZWxzZXtpZigoYVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7az0w
O2JyZWFrfWw9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7bT1hSShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7bj1LO289Y1soYncoKXww
KT4+Ml18MDtpZigob3wwKT09MCl7Y1soYncoKXwwKT4+Ml09bH1pZigoY1toPj4yXXwwKSE9KGR8
MCkpe2NbZT4+Ml09NDtqPTA7az0wO2JyZWFrfWlmKChvfDApIT0zNCl7aj1uO2s9bTticmVha31j
W2U+PjJdPTQ7aj0tMTtrPS0xfX13aGlsZSgwKTtpPWc7cmV0dXJuKEs9aixrKXwwfWZ1bmN0aW9u
IGZHKGIsZSxmLGcsaCxpLGosayxsLG0sbixvKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDtuPW58MDtvPW98MDt2YXIgcD0wLHE9MCxy
PTAscz0wLHQ9MDtpZihiPDwyND4+MjQ9PWk8PDI0Pj4yNCl7aWYoKGFbZV0mMSk9PTApe3A9LTE7
cmV0dXJuIHB8MH1hW2VdPTA7aT1jW2g+PjJdfDA7Y1toPj4yXT1pKzE7YVtpXT00NjtpPWRba118
MDtpZigoaSYxfDApPT0wKXtxPWk+Pj4xfWVsc2V7cT1jW2srND4+Ml18MH1pZigocXwwKT09MCl7
cD0wO3JldHVybiBwfDB9cT1jW20+PjJdfDA7aWYoKHEtbHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8
MH1pPWNbbj4+Ml18MDtjW20+PjJdPXErNDtjW3E+PjJdPWk7cD0wO3JldHVybiBwfDB9ZG97aWYo
Yjw8MjQ+PjI0PT1qPDwyND4+MjQpe2k9ZFtrXXwwO2lmKChpJjF8MCk9PTApe3I9aT4+PjF9ZWxz
ZXtyPWNbays0Pj4yXXwwfWlmKChyfDApPT0wKXticmVha31pZigoYVtlXSYxKT09MCl7cD0tMTty
ZXR1cm4gcHwwfWk9Y1ttPj4yXXwwO2lmKChpLWx8MCk+PTE2MCl7cD0wO3JldHVybiBwfDB9cT1j
W24+PjJdfDA7Y1ttPj4yXT1pKzQ7Y1tpPj4yXT1xO2Nbbj4+Ml09MDtwPTA7cmV0dXJuIHB8MH19
d2hpbGUoMCk7cj1vKzMyfDA7aj1vO3doaWxlKDEpe2lmKChqfDApPT0ocnwwKSl7cz1yO2JyZWFr
fWlmKChhW2pdfDApPT1iPDwyND4+MjQpe3M9ajticmVha31lbHNle2o9aisxfDB9fWo9cy1vfDA7
aWYoKGp8MCk+MzEpe3A9LTE7cmV0dXJuIHB8MH1vPWFbOTc0NCtqfDBdfDA7c3dpdGNoKGp8MCl7
Y2FzZSAyNTpjYXNlIDI0OntzPWNbaD4+Ml18MDtkb3tpZigoc3wwKSE9KGd8MCkpe2lmKChhW3Mt
MXwwXSY5NXwwKT09KGFbZl0mMTI3fDApKXticmVha31lbHNle3A9LTF9cmV0dXJuIHB8MH19d2hp
bGUoMCk7Y1toPj4yXT1zKzE7YVtzXT1vO3A9MDtyZXR1cm4gcHwwfTtjYXNlIDIyOmNhc2UgMjM6
e2FbZl09ODA7cz1jW2g+PjJdfDA7Y1toPj4yXT1zKzE7YVtzXT1vO3A9MDtyZXR1cm4gcHwwfTtk
ZWZhdWx0OntzPWFbZl18MDtkb3tpZigobyY5NXwwKT09KHM8PDI0Pj4yNHwwKSl7YVtmXT1zfC0x
Mjg7aWYoKGFbZV0mMSk9PTApe2JyZWFrfWFbZV09MDtnPWRba118MDtpZigoZyYxfDApPT0wKXt0
PWc+Pj4xfWVsc2V7dD1jW2srND4+Ml18MH1pZigodHwwKT09MCl7YnJlYWt9Zz1jW20+PjJdfDA7
aWYoKGctbHwwKT49MTYwKXticmVha31iPWNbbj4+Ml18MDtjW20+PjJdPWcrNDtjW2c+PjJdPWJ9
fXdoaWxlKDApO209Y1toPj4yXXwwO2NbaD4+Ml09bSsxO2FbbV09bztpZigoanwwKT4yMSl7cD0w
O3JldHVybiBwfDB9Y1tuPj4yXT0oY1tuPj4yXXwwKSsxO3A9MDtyZXR1cm4gcHwwfX1yZXR1cm4g
MH1mdW5jdGlvbiBmSChiLGUsZixoLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtoPWh8MDtqPWp8
MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAs
Sz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MDtl
PWk7aT1pKzgwfDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTtt
PWg7aD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1toPj4yXT1jW20+PjJdO209ZSszMnwwO249ZSs0
MHwwO289ZSs0OHwwO3A9ZSs2NHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1p
KzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9
aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2ZKKG8s
aix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWor
MXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9
Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7
Zj1ofDA7aD1wfDA7Qz1wKzR8MDtEPWFbbV18MDttPWFbbl18MDtuPXo7ej1jW2o+PjJdfDA7TDM2
MTU6d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle2lmKChjW3orMTI+PjJdfDApIT0o
Y1t6KzE2Pj4yXXwwKSl7RT16O2JyZWFrfWlmKChiMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjdd
KHopfDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0Y9KEV8MCk9PTA7
Rz1jW2Y+PjJdfDA7ZG97aWYoKEd8MCk9PTApe0g9Mjk3OH1lbHNle2lmKChjW0crMTI+PjJdfDAp
IT0oY1tHKzE2Pj4yXXwwKSl7aWYoRil7ST1HO0o9MDticmVha31lbHNle0s9bjtMPUc7TT0wO2Jy
ZWFrIEwzNjE1fX1pZigoYjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2Nb
Zj4+Ml09MDtIPTI5Nzg7YnJlYWt9ZWxzZXtOPShHfDApPT0wO2lmKEZeTil7ST1HO0o9TjticmVh
a31lbHNle0s9bjtMPUc7TT1OO2JyZWFrIEwzNjE1fX19fXdoaWxlKDApO2lmKChIfDApPT0yOTc4
KXtIPTA7aWYoRil7Sz1uO0w9MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1HPWRbcV18MDtOPShH
JjF8MCk9PTA7aWYoKChjW3I+PjJdfDApLW58MCk9PSgoTj9HPj4+MTpjW0M+PjJdfDApfDApKXtp
ZihOKXtPPUc+Pj4xO1A9Rz4+PjF9ZWxzZXtHPWNbQz4+Ml18MDtPPUc7UD1HfWRSKHAsTzw8MSww
KTtpZigoYVtxXSYxKT09MCl7UT0xMH1lbHNle1E9KGNbaD4+Ml0mLTIpLTF8MH1kUihwLFEsMCk7
aWYoKGFbcV0mMSk9PTApe1I9QX1lbHNle1I9Y1tCPj4yXXwwfWNbcj4+Ml09UitQO1M9Un1lbHNl
e1M9bn1HPUUrMTJ8MDtOPWNbRz4+Ml18MDtUPUUrMTZ8MDtpZigoTnwwKT09KGNbVD4+Ml18MCkp
e1U9KGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkmMjU1fWVsc2V7VT1hW05dfDB9
aWYoKGZHKFUsdix3LFMscixELG0sbyx5LHQsdSx4KXwwKSE9MCl7Sz1TO0w9STtNPUo7YnJlYWt9
Tj1jW0c+PjJdfDA7aWYoKE58MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbRT4+Ml18MCkrNDA+PjJd
fDA7YjBbVCYxMjddKEUpfDA7bj1TO3o9RTtjb250aW51ZX1lbHNle2NbRz4+Ml09TisxO249Uzt6
PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6JjF8MCk9PTApe1Y9ej4+PjF9ZWxzZXtWPWNbbys0
Pj4yXXwwfWRve2lmKChWfDApIT0wKXtpZigoYVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7
aWYoKHotc3wwKT49MTYwKXticmVha31TPWNbdT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVN9
fXdoaWxlKDApO2dbbD4+Ml09K2ZJKEssY1tyPj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7
ZG97aWYoRil7Vz0wfWVsc2V7aWYoKGNbRSsxMj4+Ml18MCkhPShjW0UrMTY+PjJdfDApKXtXPUU7
YnJlYWt9aWYoKGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkhPS0xKXtXPUU7YnJl
YWt9Y1tqPj4yXT0wO1c9MH19d2hpbGUoMCk7aj0oV3wwKT09MDtMMzY3Njpkb3tpZihNKXtIPTMw
MjB9ZWxzZXtkb3tpZigoY1tMKzEyPj4yXXwwKT09KGNbTCsxNj4+Ml18MCkpe2lmKChiMFtjWyhj
W0w+PjJdfDApKzM2Pj4yXSYxMjddKEwpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0g9MzAyMDti
cmVhayBMMzY3Nn19d2hpbGUoMCk7aWYoIShqXihMfDApPT0wKSl7YnJlYWt9WD1ifDA7Y1tYPj4y
XT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChIfDApPT0zMDIwKXtp
ZihqKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUo
MCk7Y1trPj4yXT1jW2s+PjJdfDI7WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1
cm59ZnVuY3Rpb24gZkkoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MC4w
LGo9MCxrPTAuMDtmPWk7aT1pKzh8MDtnPWZ8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDto
PTAuMDtpPWY7cmV0dXJuK2h9aj1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97
aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFT
KDEsMTM0NCwwKXwwfX13aGlsZSgwKTtrPStrVyhiLGcsY1syOTU4XXwwKTtiPWNbKGJ3KCl8MCk+
PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWp9aWYoKGNbZz4+Ml18MCkhPShkfDAp
KXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVybitofWlmKChifDApPT0zNCl7Y1tlPj4yXT00fWg9
aztpPWY7cmV0dXJuK2h9ZnVuY3Rpb24gZkooYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDt2YXIgaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MDtoPWk7aT1pKzQwfDA7aj1ofDA7az1oKzE2fDA7bD1oKzMyfDA7ZWoobCxkKTtkPWx8MDtsPWNb
ZD4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbaz4+Ml09MTU2OTY7Y1trKzQ+PjJdPTEyO2Nb
ays4Pj4yXT0wO2RXKDE1Njk2LGssOTYpfWs9KGNbMzkyNV18MCktMXwwO209Y1tsKzg+PjJdfDA7
ZG97aWYoKGNbbCsxMj4+Ml18MCktbT4+Mj4+PjA+az4+PjApe249Y1ttKyhrPDwyKT4+Ml18MDtp
ZigobnwwKT09MCl7YnJlYWt9bz1uO3A9Y1soY1tuPj4yXXwwKSszMj4+Ml18MDtjYVtwJjE1XShv
LDk3NDQsOTc3NixlKXwwO289Y1tkPj4yXXwwO2lmKChjWzM4MjhdfDApIT0tMSl7Y1tqPj4yXT0x
NTMxMjtjW2orND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTUzMTIsaiw5Nil9cD0oY1szODI5XXww
KS0xfDA7bj1jW28rOD4+Ml18MDtkb3tpZigoY1tvKzEyPj4yXXwwKS1uPj4yPj4+MD5wPj4+MCl7
cT1jW24rKHA8PDIpPj4yXXwwO2lmKChxfDApPT0wKXticmVha31yPXE7cz1xO2FbZl09YjBbY1so
Y1tzPj4yXXwwKSsxMj4+Ml0mMTI3XShyKXwwO2FbZ109YjBbY1soY1tzPj4yXXwwKSsxNj4+Ml0m
MTI3XShyKXwwO2JaW2NbKGNbcT4+Ml18MCkrMjA+PjJdJjEyN10oYixyKTtyPWNbZD4+Ml18MDtk
eihyKXwwO2k9aDtyZXR1cm59fXdoaWxlKDApO3A9Yk8oNCl8MDtrcShwKTtibChwfDAsODE3Niwx
MzQpfX13aGlsZSgwKTtoPWJPKDQpfDA7a3EoaCk7YmwoaHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBm
SyhiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPWx8
MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAs
Tj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MDtlPWk7aT1pKzgwfDA7
bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWc7Zz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+PjJdO209ZSszMnwwO249ZSs0MHwwO289ZSs0OHww
O3A9ZSs2NHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9
aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2ZKKG8saix4LG0sbik7ayQo
cXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7
Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9
c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1nfDA7Zz1wfDA7
Qz1wKzR8MDtEPWFbbV18MDttPWFbbl18MDtuPXo7ej1jW2o+PjJdfDA7TDM3Mzc6d2hpbGUoMSl7
ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle2lmKChjW3orMTI+PjJdfDApIT0oY1t6KzE2Pj4yXXww
KSl7RT16O2JyZWFrfWlmKChiMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDApIT0tMSl7
RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0Y9KEV8MCk9PTA7Rz1jW2Y+PjJdfDA7
ZG97aWYoKEd8MCk9PTApe0g9MzA3OX1lbHNle2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4y
XXwwKSl7aWYoRil7ST1HO0o9MDticmVha31lbHNle0s9bjtMPUc7TT0wO2JyZWFrIEwzNzM3fX1p
ZigoYjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2NbZj4+Ml09MDtIPTMw
Nzk7YnJlYWt9ZWxzZXtOPShHfDApPT0wO2lmKEZeTil7ST1HO0o9TjticmVha31lbHNle0s9bjtM
PUc7TT1OO2JyZWFrIEwzNzM3fX19fXdoaWxlKDApO2lmKChIfDApPT0zMDc5KXtIPTA7aWYoRil7
Sz1uO0w9MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1HPWRbcV18MDtOPShHJjF8MCk9PTA7aWYo
KChjW3I+PjJdfDApLW58MCk9PSgoTj9HPj4+MTpjW0M+PjJdfDApfDApKXtpZihOKXtPPUc+Pj4x
O1A9Rz4+PjF9ZWxzZXtHPWNbQz4+Ml18MDtPPUc7UD1HfWRSKHAsTzw8MSwwKTtpZigoYVtxXSYx
KT09MCl7UT0xMH1lbHNle1E9KGNbZz4+Ml0mLTIpLTF8MH1kUihwLFEsMCk7aWYoKGFbcV0mMSk9
PTApe1I9QX1lbHNle1I9Y1tCPj4yXXwwfWNbcj4+Ml09UitQO1M9Un1lbHNle1M9bn1HPUUrMTJ8
MDtOPWNbRz4+Ml18MDtUPUUrMTZ8MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1U9KGIwW2NbKGNb
RT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkmMjU1fWVsc2V7VT1hW05dfDB9aWYoKGZHKFUsdix3
LFMscixELG0sbyx5LHQsdSx4KXwwKSE9MCl7Sz1TO0w9STtNPUo7YnJlYWt9Tj1jW0c+PjJdfDA7
aWYoKE58MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbVCYxMjdd
KEUpfDA7bj1TO3o9RTtjb250aW51ZX1lbHNle2NbRz4+Ml09TisxO249Uzt6PUU7Y29udGludWV9
fXo9ZFtvXXwwO2lmKCh6JjF8MCk9PTApe1Y9ej4+PjF9ZWxzZXtWPWNbbys0Pj4yXXwwfWRve2lm
KChWfDApIT0wKXtpZigoYVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49
MTYwKXticmVha31TPWNbdT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVN9fXdoaWxlKDApO2hb
bD4+M109K2ZMKEssY1tyPj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoRil7Vz0w
fWVsc2V7aWYoKGNbRSsxMj4+Ml18MCkhPShjW0UrMTY+PjJdfDApKXtXPUU7YnJlYWt9aWYoKGIw
W2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkhPS0xKXtXPUU7YnJlYWt9Y1tqPj4yXT0w
O1c9MH19d2hpbGUoMCk7aj0oV3wwKT09MDtMMzc5ODpkb3tpZihNKXtIPTMxMjF9ZWxzZXtkb3tp
ZigoY1tMKzEyPj4yXXwwKT09KGNbTCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0w+PjJdfDApKzM2
Pj4yXSYxMjddKEwpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0g9MzEyMTticmVhayBMMzc5OH19
d2hpbGUoMCk7aWYoIShqXihMfDApPT0wKSl7YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQ
KG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChIfDApPT0zMTIxKXtpZihqKXticmVha31Y
PWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1j
W2s+PjJdfDI7WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24g
ZkwoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MC4wLGo9MCxrPTAuMDtm
PWk7aT1pKzh8MDtnPWZ8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7cmV0
dXJuK2h9aj1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRd
fDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXww
fX13aGlsZSgwKTtrPStrVyhiLGcsY1syOTU4XXwwKTtiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8
MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWp9aWYoKGNbZz4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7
aD0wLjA7aT1mO3JldHVybitofWlmKChifDApIT0zNCl7aD1rO2k9ZjtyZXR1cm4raH1jW2U+PjJd
PTQ7aD1rO2k9ZjtyZXR1cm4raH1mdW5jdGlvbiBmTShiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9
MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0w
LFU9MCxWPTAsVz0wLFg9MDtlPWk7aT1pKzgwfDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZj4+Ml09Y1ttPj4yXTttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+
PjJdO209ZSszMnwwO249ZSs0MHwwO289ZSs0OHwwO3A9ZSs2NHwwO3E9cDtyPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3
Pj4zPDwzO3g9ZXwwO2ZKKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lm
KChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+
PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2
XT0xO2Fbd109Njk7aj1mfDA7Zj1nfDA7Zz1wfDA7Qz1wKzR8MDtEPWFbbV18MDttPWFbbl18MDtu
PXo7ej1jW2o+PjJdfDA7TDY6d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle2lmKChj
W3orMTI+PjJdfDApIT0oY1t6KzE2Pj4yXXwwKSl7RT16O2JyZWFrfWlmKChiMFtjWyhjW3o+PjJd
fDApKzM2Pj4yXSYxMjddKHopfDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxl
KDApO0Y9KEV8MCk9PTA7Rz1jW2Y+PjJdfDA7ZG97aWYoKEd8MCk9PTApe0g9MTd9ZWxzZXtpZigo
Y1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe2lmKEYpe0k9RztKPTA7YnJlYWt9ZWxzZXtL
PW47TD1HO009MDticmVhayBMNn19aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8
MCk9PS0xKXtjW2Y+PjJdPTA7SD0xNzticmVha31lbHNle049KEd8MCk9PTA7aWYoRl5OKXtJPUc7
Sj1OO2JyZWFrfWVsc2V7Sz1uO0w9RztNPU47YnJlYWsgTDZ9fX19d2hpbGUoMCk7aWYoKEh8MCk9
PTE3KXtIPTA7aWYoRil7Sz1uO0w9MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1HPWRbcV18MDtO
PShHJjF8MCk9PTA7aWYoKChjW3I+PjJdfDApLW58MCk9PSgoTj9HPj4+MTpjW0M+PjJdfDApfDAp
KXtpZihOKXtPPUc+Pj4xO1A9Rz4+PjF9ZWxzZXtHPWNbQz4+Ml18MDtPPUc7UD1HfWRSKHAsTzw8
MSwwKTtpZigoYVtxXSYxKT09MCl7UT0xMH1lbHNle1E9KGNbZz4+Ml0mLTIpLTF8MH1kUihwLFEs
MCk7aWYoKGFbcV0mMSk9PTApe1I9QX1lbHNle1I9Y1tCPj4yXXwwfWNbcj4+Ml09UitQO1M9Un1l
bHNle1M9bn1HPUUrMTJ8MDtOPWNbRz4+Ml18MDtUPUUrMTZ8MDtpZigoTnwwKT09KGNbVD4+Ml18
MCkpe1U9KGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkmMjU1fWVsc2V7VT1hW05d
fDB9aWYoKGZHKFUsdix3LFMscixELG0sbyx5LHQsdSx4KXwwKSE9MCl7Sz1TO0w9STtNPUo7YnJl
YWt9Tj1jW0c+PjJdfDA7aWYoKE58MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbRT4+Ml18MCkrNDA+
PjJdfDA7YjBbVCYxMjddKEUpfDA7bj1TO3o9RTtjb250aW51ZX1lbHNle2NbRz4+Ml09TisxO249
Uzt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6JjF8MCk9PTApe1Y9ej4+PjF9ZWxzZXtWPWNb
bys0Pj4yXXwwfWRve2lmKChWfDApIT0wKXtpZigoYVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJd
fDA7aWYoKHotc3wwKT49MTYwKXticmVha31TPWNbdT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJd
PVN9fXdoaWxlKDApO2hbbD4+M109K2ZOKEssY1tyPj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAs
ayk7ZG97aWYoRil7Vz0wfWVsc2V7aWYoKGNbRSsxMj4+Ml18MCkhPShjW0UrMTY+PjJdfDApKXtX
PUU7YnJlYWt9aWYoKGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MCkhPS0xKXtXPUU7
YnJlYWt9Y1tqPj4yXT0wO1c9MH19d2hpbGUoMCk7aj0oV3wwKT09MDtMNjc6ZG97aWYoTSl7SD01
OX1lbHNle2Rve2lmKChjW0wrMTI+PjJdfDApPT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNb
TD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7SD01OTticmVh
ayBMNjd9fXdoaWxlKDApO2lmKCEoal4oTHwwKT09MCkpe2JyZWFrfVg9YnwwO2NbWD4+Ml09Vztk
UChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoSHwwKT09NTkpe2lmKGope2Jy
ZWFrfVg9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+
PjJdPWNbaz4+Ml18MjtYPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5j
dGlvbiBmTihiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9
MC4wO2Y9aTtpPWkrOHwwO2c9ZnwwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9
ZjtyZXR1cm4raH1qPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsx
NjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0
LDApfDB9fXdoaWxlKDApO2s9K2tXKGIsZyxjWzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtp
ZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+
Ml09NDtoPTAuMDtpPWY7cmV0dXJuK2h9aWYoKGJ8MCkhPTM0KXtoPWs7aT1mO3JldHVybitofWNb
ZT4+Ml09NDtoPWs7aT1mO3JldHVybitofWZ1bmN0aW9uIGZPKGEpe2E9YXwwO2RlKGF8MCk7a1Mo
YSk7cmV0dXJufWZ1bmN0aW9uIGZQKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZR
KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3ww
O3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxN
PTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTA7ZT1pO2k9aSs2NHwwO2w9Zjtm
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWV8MDttPWUrMTZ8MDtuPWUrNDh8MDtvPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztwPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7cT1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7cj1pO2k9aSsxNjB8MDtzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt0PWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztrJChufDAsMCwxMik7dT1wO2VqKG8saCk7aD1vfDA7bz1jW2g+PjJdfDA7
aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJdPTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09
MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVdfDApLTF8MDt2PWNbbys4Pj4yXXwwO2Rve2lmKChj
W28rMTI+PjJdfDApLXY+PjI+Pj4wPmw+Pj4wKXt3PWNbdisobDw8Mik+PjJdfDA7aWYoKHd8MCk9
PTApe2JyZWFrfXg9dzt5PW18MDt6PWNbKGNbdz4+Ml18MCkrMzI+PjJdfDA7Y2FbeiYxNV0oeCw5
NzQ0LDk3NzAseSl8MDt4PWNbaD4+Ml18MDtkeih4KXwwO2skKHV8MCwwLDEyKTt4PXA7ZFIocCwx
MCwwKTtpZigoYVt1XSYxKT09MCl7ej14KzF8MDtBPXo7Qj16O0M9cCs4fDB9ZWxzZXt6PXArOHww
O0E9Y1t6Pj4yXXwwO0I9eCsxfDA7Qz16fWNbcT4+Ml09QTt6PXJ8MDtjW3M+PjJdPXo7Y1t0Pj4y
XT0wO3g9ZnwwO3c9Z3wwO0Q9cHwwO0U9cCs0fDA7Rj1BO0c9Y1t4Pj4yXXwwO0wxMTc6d2hpbGUo
MSl7ZG97aWYoKEd8MCk9PTApe0g9MH1lbHNle2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4y
XXwwKSl7SD1HO2JyZWFrfWlmKChiMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApIT0t
MSl7SD1HO2JyZWFrfWNbeD4+Ml09MDtIPTB9fXdoaWxlKDApO0k9KEh8MCk9PTA7Sj1jW3c+PjJd
fDA7ZG97aWYoKEp8MCk9PTApe0s9MTEwfWVsc2V7aWYoKGNbSisxMj4+Ml18MCkhPShjW0orMTY+
PjJdfDApKXtpZihJKXticmVha31lbHNle0w9RjticmVhayBMMTE3fX1pZigoYjBbY1soY1tKPj4y
XXwwKSszNj4+Ml0mMTI3XShKKXwwKT09LTEpe2Nbdz4+Ml09MDtLPTExMDticmVha31lbHNle2lm
KEleKEp8MCk9PTApe2JyZWFrfWVsc2V7TD1GO2JyZWFrIEwxMTd9fX19d2hpbGUoMCk7aWYoKEt8
MCk9PTExMCl7Sz0wO2lmKEkpe0w9RjticmVha319Sj1kW3VdfDA7TT0oSiYxfDApPT0wO2lmKCgo
Y1txPj4yXXwwKS1GfDApPT0oKE0/Sj4+PjE6Y1tFPj4yXXwwKXwwKSl7aWYoTSl7Tj1KPj4+MTtP
PUo+Pj4xfWVsc2V7Sj1jW0U+PjJdfDA7Tj1KO089Sn1kUihwLE48PDEsMCk7aWYoKGFbdV0mMSk9
PTApe1A9MTB9ZWxzZXtQPShjW0Q+PjJdJi0yKS0xfDB9ZFIocCxQLDApO2lmKChhW3VdJjEpPT0w
KXtRPUJ9ZWxzZXtRPWNbQz4+Ml18MH1jW3E+PjJdPVErTztSPVF9ZWxzZXtSPUZ9Sj1IKzEyfDA7
TT1jW0o+PjJdfDA7Uz1IKzE2fDA7aWYoKE18MCk9PShjW1M+PjJdfDApKXtUPShiMFtjWyhjW0g+
PjJdfDApKzM2Pj4yXSYxMjddKEgpfDApJjI1NX1lbHNle1Q9YVtNXXwwfWlmKChmcyhULDE2LFIs
cSx0LDAsbix6LHMseSl8MCkhPTApe0w9UjticmVha31NPWNbSj4+Ml18MDtpZigoTXwwKT09KGNb
Uz4+Ml18MCkpe1M9Y1soY1tIPj4yXXwwKSs0MD4+Ml18MDtiMFtTJjEyN10oSCl8MDtGPVI7Rz1I
O2NvbnRpbnVlfWVsc2V7Y1tKPj4yXT1NKzE7Rj1SO0c9SDtjb250aW51ZX19YVtMKzN8MF09MDtk
b3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09
YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO0c9ZlIoTCxjWzI5NThdfDAsMTMyMCwoRj1pLGk9aSs4
fDAsY1tGPj4yXT1rLEYpfDApfDA7aT1GO2lmKChHfDApIT0xKXtjW2o+PjJdPTR9Rz1jW3g+PjJd
fDA7ZG97aWYoKEd8MCk9PTApe1U9MH1lbHNle2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4y
XXwwKSl7VT1HO2JyZWFrfWlmKChiMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApIT0t
MSl7VT1HO2JyZWFrfWNbeD4+Ml09MDtVPTB9fXdoaWxlKDApO3g9KFV8MCk9PTA7Rz1jW3c+PjJd
fDA7ZG97aWYoKEd8MCk9PTApe0s9MTU1fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+
PjJdfDApKXtpZigheCl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKHApO2RQKG4pO2k9ZTtyZXR1
cm59aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCk9PS0xKXtjW3c+PjJdPTA7
Sz0xNTU7YnJlYWt9aWYoISh4XihHfDApPT0wKSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKHAp
O2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChLfDApPT0xNTUpe2lmKHgpe2JyZWFr
fVY9YnwwO2NbVj4+Ml09VTtkUChwKTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJd
PWNbaj4+Ml18MjtWPWJ8MDtjW1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUo
MCk7ZT1iTyg0KXwwO2txKGUpO2JsKGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZlIoYSxiLGQsZSl7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2Y9aTtpPWkrMTZ8MDtnPWZ8
MDtoPWc7Y1toPj4yXT1lO2NbaCs0Pj4yXT0wO2g9YkIoYnwwKXwwO2I9YVkoYXwwLGR8MCxnfDAp
fDA7aWYoKGh8MCk9PTApe2k9ZjtyZXR1cm4gYnwwfWJCKGh8MCl8MDtpPWY7cmV0dXJuIGJ8MH1m
dW5jdGlvbiBmUyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtq
PWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAs
WT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTA7bD1pO2k9aSsxMDR8MDttPWU7ZT1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW20+PjJdO209KGctZnwwKS8xMnwwO249bHww
O2Rve2lmKG0+Pj4wPjEwMCl7bz1rSihtKXwwO2lmKChvfDApIT0wKXtwPW87cT1vO2JyZWFrfWtY
KCk7cD0wO3E9MH1lbHNle3A9bjtxPTB9fXdoaWxlKDApO249KGZ8MCk9PShnfDApO2lmKG4pe3I9
bTtzPTB9ZWxzZXtvPW07bT0wO3Q9cDt1PWY7d2hpbGUoMSl7dj1kW3VdfDA7aWYoKHYmMXwwKT09
MCl7dz12Pj4+MX1lbHNle3c9Y1t1KzQ+PjJdfDB9aWYoKHd8MCk9PTApe2FbdF09Mjt4PW0rMXww
O3k9by0xfDB9ZWxzZXthW3RdPTE7eD1tO3k9b312PXUrMTJ8MDtpZigodnwwKT09KGd8MCkpe3I9
eTtzPXg7YnJlYWt9ZWxzZXtvPXk7bT14O3Q9dCsxfDA7dT12fX19dT1ifDA7Yj1lfDA7ZT1oO3Q9
MDt4PXM7cz1yO3doaWxlKDEpe3I9Y1t1Pj4yXXwwO2Rve2lmKChyfDApPT0wKXt6PTB9ZWxzZXtt
PWNbcisxMj4+Ml18MDtpZigobXwwKT09KGNbcisxNj4+Ml18MCkpe0E9YjBbY1soY1tyPj4yXXww
KSszNj4+Ml0mMTI3XShyKXwwfWVsc2V7QT1jW20+PjJdfDB9aWYoKEF8MCk9PS0xKXtjW3U+PjJd
PTA7ej0wO2JyZWFrfWVsc2V7ej1jW3U+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtyPSh6fDApPT0w
O209Y1tiPj4yXXwwO2lmKChtfDApPT0wKXtCPXo7Qz0wfWVsc2V7eT1jW20rMTI+PjJdfDA7aWYo
KHl8MCk9PShjW20rMTY+PjJdfDApKXtEPWIwW2NbKGNbbT4+Ml18MCkrMzY+PjJdJjEyN10obSl8
MH1lbHNle0Q9Y1t5Pj4yXXwwfWlmKChEfDApPT0tMSl7Y1tiPj4yXT0wO0U9MH1lbHNle0U9bX1C
PWNbdT4+Ml18MDtDPUV9Rj0oQ3wwKT09MDtpZighKChyXkYpJihzfDApIT0wKSl7YnJlYWt9cj1j
W0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtHPWIwW2NbKGNbQj4+Ml18MCkr
MzY+PjJdJjEyN10oQil8MH1lbHNle0c9Y1tyPj4yXXwwfWlmKGspe0g9R31lbHNle0g9Yl9bY1so
Y1tlPj4yXXwwKSsyOD4+Ml0mMzFdKGgsRyl8MH1kb3tpZihuKXtJPXg7Sj1zfWVsc2V7cj10KzF8
MDtMMjQ5OmRve2lmKGspe209czt5PXg7bz1wO3c9MDt2PWY7d2hpbGUoMSl7ZG97aWYoKGFbb118
MCk9PTEpe0s9djtpZigoYVtLXSYxKT09MCl7TD12KzR8MH1lbHNle0w9Y1t2Kzg+PjJdfDB9aWYo
KEh8MCkhPShjW0wrKHQ8PDIpPj4yXXwwKSl7YVtvXT0wO009dztOPXk7Tz1tLTF8MDticmVha31Q
PWRbS118MDtpZigoUCYxfDApPT0wKXtRPVA+Pj4xfWVsc2V7UT1jW3YrND4+Ml18MH1pZigoUXww
KSE9KHJ8MCkpe009MTtOPXk7Tz1tO2JyZWFrfWFbb109MjtNPTE7Tj15KzF8MDtPPW0tMXwwfWVs
c2V7TT13O049eTtPPW19fXdoaWxlKDApO1A9disxMnwwO2lmKChQfDApPT0oZ3wwKSl7Uj1PO1M9
TjtUPU07YnJlYWsgTDI0OX1tPU87eT1OO289bysxfDA7dz1NO3Y9UH19ZWxzZXt2PXM7dz14O289
cDt5PTA7bT1mO3doaWxlKDEpe2Rve2lmKChhW29dfDApPT0xKXtQPW07aWYoKGFbUF0mMSk9PTAp
e1U9bSs0fDB9ZWxzZXtVPWNbbSs4Pj4yXXwwfWlmKChIfDApIT0oYl9bY1soY1tlPj4yXXwwKSsy
OD4+Ml0mMzFdKGgsY1tVKyh0PDwyKT4+Ml18MCl8MCkpe2Fbb109MDtWPXk7Vz13O1g9di0xfDA7
YnJlYWt9Sz1kW1BdfDA7aWYoKEsmMXwwKT09MCl7WT1LPj4+MX1lbHNle1k9Y1ttKzQ+PjJdfDB9
aWYoKFl8MCkhPShyfDApKXtWPTE7Vz13O1g9djticmVha31hW29dPTI7Vj0xO1c9dysxfDA7WD12
LTF8MH1lbHNle1Y9eTtXPXc7WD12fX13aGlsZSgwKTtLPW0rMTJ8MDtpZigoS3wwKT09KGd8MCkp
e1I9WDtTPVc7VD1WO2JyZWFrIEwyNDl9dj1YO3c9VztvPW8rMXwwO3k9VjttPUt9fX13aGlsZSgw
KTtpZighVCl7ST1TO0o9UjticmVha31yPWNbdT4+Ml18MDttPXIrMTJ8MDt5PWNbbT4+Ml18MDtp
ZigoeXwwKT09KGNbcisxNj4+Ml18MCkpe289Y1soY1tyPj4yXXwwKSs0MD4+Ml18MDtiMFtvJjEy
N10ocil8MH1lbHNle2NbbT4+Ml09eSs0fWlmKChTK1J8MCk+Pj4wPDJ8bil7ST1TO0o9UjticmVh
a315PXQrMXwwO209UztyPXA7bz1mO3doaWxlKDEpe2Rve2lmKChhW3JdfDApPT0yKXt3PWRbb118
MDtpZigodyYxfDApPT0wKXtaPXc+Pj4xfWVsc2V7Wj1jW28rND4+Ml18MH1pZigoWnwwKT09KHl8
MCkpe189bTticmVha31hW3JdPTA7Xz1tLTF8MH1lbHNle189bX19d2hpbGUoMCk7dz1vKzEyfDA7
aWYoKHd8MCk9PShnfDApKXtJPV87Sj1SO2JyZWFrfWVsc2V7bT1fO3I9cisxfDA7bz13fX19fXdo
aWxlKDApO3Q9dCsxfDA7eD1JO3M9Sn1kb3tpZigoQnwwKT09MCl7JD0xfWVsc2V7Sj1jW0IrMTI+
PjJdfDA7aWYoKEp8MCk9PShjW0IrMTY+PjJdfDApKXthYT1iMFtjWyhjW0I+PjJdfDApKzM2Pj4y
XSYxMjddKEIpfDB9ZWxzZXthYT1jW0o+PjJdfDB9aWYoKGFhfDApPT0tMSl7Y1t1Pj4yXT0wOyQ9
MTticmVha31lbHNleyQ9KGNbdT4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZihGKXth
Yj0yNjR9ZWxzZXt1PWNbQysxMj4+Ml18MDtpZigodXwwKT09KGNbQysxNj4+Ml18MCkpe2FjPWIw
W2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle2FjPWNbdT4+Ml18MH1pZigoYWN8
MCk9PS0xKXtjW2I+PjJdPTA7YWI9MjY0O2JyZWFrfWVsc2V7aWYoJF4oQ3wwKT09MCl7YnJlYWt9
ZWxzZXthYj0yNjY7YnJlYWt9fX19d2hpbGUoMCk7aWYoKGFifDApPT0yNjQpe2lmKCQpe2FiPTI2
Nn19aWYoKGFifDApPT0yNjYpe2Nbaj4+Ml09Y1tqPj4yXXwyfUwzMzA6ZG97aWYobil7YWI9Mjcx
fWVsc2V7JD1mO0M9cDt3aGlsZSgxKXtpZigoYVtDXXwwKT09Mil7YWQ9JDticmVhayBMMzMwfWI9
JCsxMnwwO2lmKChifDApPT0oZ3wwKSl7YWI9MjcxO2JyZWFrIEwzMzB9JD1iO0M9QysxfDB9fX13
aGlsZSgwKTtpZigoYWJ8MCk9PTI3MSl7Y1tqPj4yXT1jW2o+PjJdfDQ7YWQ9Z31pZigocXwwKT09
MCl7aT1sO3JldHVybiBhZHwwfWtLKHEpO2k9bDtyZXR1cm4gYWR8MH1mdW5jdGlvbiBmVChiLGQs
ZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIg
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MDtrPWk7aT1pKzExMnwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+
PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTts
PWt8MDttPWsrMTZ8MDtuPWsrMzJ8MDtvPWsrNDB8MDtwPWsrNDh8MDtxPWsrNTZ8MDtyPWsrNjR8
MDtzPWsrNzJ8MDt0PWsrODB8MDt1PWsrMTA0fDA7aWYoKGNbZys0Pj4yXSYxfDApPT0wKXtjW24+
PjJdPS0xO3Y9Y1soY1tkPj4yXXwwKSsxNj4+Ml18MDt3PWV8MDtjW3A+PjJdPWNbdz4+Ml07Y1tx
Pj4yXT1jW2Y+PjJdO2JYW3YmMTI3XShvLGQscCxxLGcsaCxuKTtxPWNbbz4+Ml18MDtjW3c+PjJd
PXE7c3dpdGNoKGNbbj4+Ml18MCl7Y2FzZSAxOnthW2pdPTE7YnJlYWt9O2Nhc2UgMDp7YVtqXT0w
O2JyZWFrfTtkZWZhdWx0OnthW2pdPTE7Y1toPj4yXT00fX1jW2I+PjJdPXE7aT1rO3JldHVybn1l
aihyLGcpO3E9cnwwO3I9Y1txPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1ttPj4yXT0xNTY4
ODtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTU2ODgsbSw5Nil9bT0oY1szOTIzXXwwKS0x
fDA7bj1jW3IrOD4+Ml18MDtkb3tpZigoY1tyKzEyPj4yXXwwKS1uPj4yPj4+MD5tPj4+MCl7dz1j
W24rKG08PDIpPj4yXXwwO2lmKCh3fDApPT0wKXticmVha31vPXc7dz1jW3E+PjJdfDA7ZHoodyl8
MDtlaihzLGcpO3c9c3wwO3A9Y1t3Pj4yXXwwO2lmKChjWzM4MjZdfDApIT0tMSl7Y1tsPj4yXT0x
NTMwNDtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTUzMDQsbCw5Nil9ZD0oY1szODI3XXww
KS0xfDA7dj1jW3ArOD4+Ml18MDtkb3tpZigoY1twKzEyPj4yXXwwKS12Pj4yPj4+MD5kPj4+MCl7
eD1jW3YrKGQ8PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7ej1jW3c+PjJdfDA7ZHoo
eil8MDt6PXR8MDtBPXg7YlpbY1soY1tBPj4yXXwwKSsyND4+Ml0mMTI3XSh6LHkpO2JaW2NbKGNb
QT4+Ml18MCkrMjg+PjJdJjEyN10odCsxMnwwLHkpO2NbdT4+Ml09Y1tmPj4yXTthW2pdPShmUyhl
LHUseix0KzI0fDAsbyxoLDEpfDApPT0oenwwKXwwO2NbYj4+Ml09Y1tlPj4yXTtlZSh0KzEyfDAp
O2VlKHR8MCk7aT1rO3JldHVybn19d2hpbGUoMCk7bz1iTyg0KXwwO2txKG8pO2JsKG98MCw4MTc2
LDEzNCl9fXdoaWxlKDApO2s9Yk8oNCl8MDtrcShrKTtibChrfDAsODE3NiwxMzQpfWZ1bmN0aW9u
IGZVKGIsZSxmLGcsaCxpLGosayxsLG0pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9
aXwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDtu
PWNbZz4+Ml18MDtvPShufDApPT0oZnwwKTtkb3tpZihvKXtwPShjW20rOTY+PjJdfDApPT0oYnww
KTtpZighcCl7aWYoKGNbbSsxMDA+PjJdfDApIT0oYnwwKSl7YnJlYWt9fWNbZz4+Ml09ZisxO2Fb
Zl09cD80Mzo0NTtjW2g+PjJdPTA7cT0wO3JldHVybiBxfDB9fXdoaWxlKDApO3A9ZFtqXXwwO2lm
KChwJjF8MCk9PTApe3I9cD4+PjF9ZWxzZXtyPWNbais0Pj4yXXwwfWlmKChyfDApIT0wJihifDAp
PT0oaXwwKSl7aT1jW2w+PjJdfDA7aWYoKGkta3wwKT49MTYwKXtxPTA7cmV0dXJuIHF8MH1rPWNb
aD4+Ml18MDtjW2w+PjJdPWkrNDtjW2k+PjJdPWs7Y1toPj4yXT0wO3E9MDtyZXR1cm4gcXwwfWs9
bSsxMDR8MDtpPW07d2hpbGUoMSl7aWYoKGl8MCk9PShrfDApKXtzPWs7YnJlYWt9aWYoKGNbaT4+
Ml18MCk9PShifDApKXtzPWk7YnJlYWt9ZWxzZXtpPWkrNHwwfX1pPXMtbXwwO209aT4+MjtpZigo
aXwwKT45Mil7cT0tMTtyZXR1cm4gcXwwfUwzOTg6ZG97c3dpdGNoKGV8MCl7Y2FzZSA4OmNhc2Ug
MTA6e2lmKChtfDApPChlfDApKXticmVhayBMMzk4fWVsc2V7cT0tMX1yZXR1cm4gcXwwfTtjYXNl
IDE2OntpZigoaXwwKTw4OCl7YnJlYWsgTDM5OH1pZihvKXtxPS0xO3JldHVybiBxfDB9aWYoKG4t
ZnwwKT49Myl7cT0tMTtyZXR1cm4gcXwwfWlmKChhW24tMXwwXXwwKSE9NDgpe3E9LTE7cmV0dXJu
IHF8MH1jW2g+PjJdPTA7cz1hWzk3NDQrbXwwXXwwO2I9Y1tnPj4yXXwwO2NbZz4+Ml09YisxO2Fb
Yl09cztxPTA7cmV0dXJuIHF8MH07ZGVmYXVsdDp7fX19d2hpbGUoMCk7Zj1hWzk3NDQrbXwwXXww
O2NbZz4+Ml09bisxO2Fbbl09ZjtjW2g+PjJdPShjW2g+PjJdfDApKzE7cT0wO3JldHVybiBxfDB9
ZnVuY3Rpb24gZlYoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9
MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0w
LFk9MDtlPWk7aT1pKzE0NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNb
bD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0
fDA7bT1lKzExMnwwO249ZSsxMjh8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9
aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztz
d2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0xNjticmVha307Y2FzZSAwOnt0PTA7YnJl
YWt9O2Nhc2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7
ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4
PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13
O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNb
bD4+Ml18MDtsPXc7dz1jW2g+PjJdfDA7TDQyNjp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0w
fWVsc2V7Qz1jW3crMTI+PjJdfDA7aWYoKEN8MCk9PShjW3crMTY+PjJdfDApKXtEPWIwW2NbKGNb
dz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MH1lbHNle0Q9Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7
Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7
ZG97aWYoKEN8MCk9PTApe0Y9MzYzfWVsc2V7Rz1jW0MrMTI+PjJdfDA7aWYoKEd8MCk9PShjW0Mr
MTY+PjJdfDApKXtIPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tH
Pj4yXXwwfWlmKChIfDApPT0tMSl7Y1tmPj4yXT0wO0Y9MzYzO2JyZWFrfWVsc2V7Rz0oQ3wwKT09
MDtpZihFXkcpe0k9QztKPUc7YnJlYWt9ZWxzZXtLPWw7TD1DO009RzticmVhayBMNDI2fX19fXdo
aWxlKDApO2lmKChGfDApPT0zNjMpe0Y9MDtpZihFKXtLPWw7TD0wO009MTticmVha31lbHNle0k9
MDtKPTF9fUM9ZFtvXXwwO0c9KEMmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChHP0M+
Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEcpe049Qz4+PjE7Tz1DPj4+MX1lbHNle0M9Y1t6Pj4yXXww
O049QztPPUN9ZFIobixOPDwxLDApO2lmKChhW29dJjEpPT0wKXtQPTEwfWVsc2V7UD0oY1tnPj4y
XSYtMiktMXwwfWRSKG4sUCwwKTtpZigoYVtvXSYxKT09MCl7UT14fWVsc2V7UT1jW3k+PjJdfDB9
Y1twPj4yXT1RK087Uj1RfWVsc2V7Uj1sfUM9QisxMnwwO0c9Y1tDPj4yXXwwO1M9QisxNnwwO2lm
KChHfDApPT0oY1tTPj4yXXwwKSl7VD1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9
ZWxzZXtUPWNbRz4+Ml18MH1pZigoZlUoVCx0LFIscCxzLEEsbSx2LHIsdSl8MCkhPTApe0s9UjtM
PUk7TT1KO2JyZWFrfUc9Y1tDPj4yXXwwO2lmKChHfDApPT0oY1tTPj4yXXwwKSl7Uz1jWyhjW0I+
PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShCKXwwO2w9Ujt3PUI7Y29udGludWV9ZWxzZXtjW0M+
PjJdPUcrNDtsPVI7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtVPXc+Pj4x
fWVsc2V7VT1jW20rND4+Ml18MH1kb3tpZigoVXwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXww
KT49MTYwKXticmVha31SPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVJ9fXdoaWxlKDAp
O2Nbaz4+Ml09ZnUoSyxjW3A+PjJdfDAsaix0KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYo
RSl7Vj0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtXPWIw
W2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1c9Y1tyPj4yXXwwfWlmKChXfDAp
IT0tMSl7Vj1CO2JyZWFrfWNbaD4+Ml09MDtWPTB9fXdoaWxlKDApO2g9KFZ8MCk9PTA7ZG97aWYo
TSl7Rj00MDV9ZWxzZXtCPWNbTCsxMj4+Ml18MDtpZigoQnwwKT09KGNbTCsxNj4+Ml18MCkpe1g9
YjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3XShMKXwwfWVsc2V7WD1jW0I+PjJdfDB9aWYoKFh8
MCk9PS0xKXtjW2Y+PjJdPTA7Rj00MDU7YnJlYWt9aWYoIShoXihMfDApPT0wKSl7YnJlYWt9WT1i
fDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDAp
PT00MDUpe2lmKGgpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJu
fX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7
aT1lO3JldHVybn1mdW5jdGlvbiBmVyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2
YXIgZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wO2Y9aTtpPWkrNDB8MDtn
PWZ8MDtoPWYrMTZ8MDtqPWYrMzJ8MDtlaihqLGIpO2I9anwwO2o9Y1tiPj4yXXwwO2lmKChjWzM5
MjJdfDApIT0tMSl7Y1toPj4yXT0xNTY4ODtjW2grND4+Ml09MTI7Y1toKzg+PjJdPTA7ZFcoMTU2
ODgsaCw5Nil9aD0oY1szOTIzXXwwKS0xfDA7az1jW2orOD4+Ml18MDtkb3tpZigoY1tqKzEyPj4y
XXwwKS1rPj4yPj4+MD5oPj4+MCl7bD1jW2srKGg8PDIpPj4yXXwwO2lmKChsfDApPT0wKXticmVh
a31tPWw7bj1jWyhjW2w+PjJdfDApKzQ4Pj4yXXwwO2NhW24mMTVdKG0sOTc0NCw5NzcwLGQpfDA7
bT1jW2I+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0xKXtjW2c+PjJdPTE1MzA0O2NbZys0Pj4yXT0x
MjtjW2crOD4+Ml09MDtkVygxNTMwNCxnLDk2KX1uPShjWzM4MjddfDApLTF8MDtsPWNbbSs4Pj4y
XXwwO2Rve2lmKChjW20rMTI+PjJdfDApLWw+PjI+Pj4wPm4+Pj4wKXtvPWNbbCsobjw8Mik+PjJd
fDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztjW2U+PjJdPWIwW2NbKGNbbz4+Ml18MCkrMTY+PjJd
JjEyN10ocCl8MDtiWltjWyhjW28+PjJdfDApKzIwPj4yXSYxMjddKGEscCk7cD1jW2I+PjJdfDA7
ZHoocCl8MDtpPWY7cmV0dXJufX13aGlsZSgwKTtuPWJPKDQpfDA7a3Eobik7YmwobnwwLDgxNzYs
MTM0KX19d2hpbGUoMCk7Zj1iTyg0KXwwO2txKGYpO2JsKGZ8MCw4MTc2LDEzNCl9ZnVuY3Rpb24g
ZlgoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1r
fDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MDtlPWk7
aT1pKzE0NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1n
O2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzEx
MnwwO249ZSsxMjh8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDty
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1to
KzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0xNjticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2Ug
NjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAs
MTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8
MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nb
cj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDts
PXc7dz1jW2g+PjJdfDA7TDUzNTp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1j
W3crMTI+PjJdfDA7aWYoKEN8MCk9PShjW3crMTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkr
MzY+PjJdJjEyN10odyl8MH1lbHNle0Q9Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFr
fWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8
MCk9PTApe0Y9NDUwfWVsc2V7Rz1jW0MrMTI+PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDAp
KXtIPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlm
KChIfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NDUwO2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcp
e0k9QztKPUc7YnJlYWt9ZWxzZXtMPWw7TT1DO049RzticmVhayBMNTM1fX19fXdoaWxlKDApO2lm
KChGfDApPT00NTApe0Y9MDtpZihFKXtMPWw7TT0wO049MTticmVha31lbHNle0k9MDtKPTF9fUM9
ZFtvXXwwO0c9KEMmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+
Ml18MCl8MCkpe2lmKEcpe089Qz4+PjE7UD1DPj4+MX1lbHNle0M9Y1t6Pj4yXXwwO089QztQPUN9
ZFIobixPPDwxLDApO2lmKChhW29dJjEpPT0wKXtRPTEwfWVsc2V7UT0oY1tnPj4yXSYtMiktMXww
fWRSKG4sUSwwKTtpZigoYVtvXSYxKT09MCl7Uj14fWVsc2V7Uj1jW3k+PjJdfDB9Y1twPj4yXT1S
K1A7Uz1SfWVsc2V7Uz1sfUM9QisxMnwwO0c9Y1tDPj4yXXwwO1Q9QisxNnwwO2lmKChHfDApPT0o
Y1tUPj4yXXwwKSl7VT1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtVPWNb
Rz4+Ml18MH1pZigoZlUoVSx0LFMscCxzLEEsbSx2LHIsdSl8MCkhPTApe0w9UztNPUk7Tj1KO2Jy
ZWFrfUc9Y1tDPj4yXXwwO2lmKChHfDApPT0oY1tUPj4yXXwwKSl7VD1jWyhjW0I+PjJdfDApKzQw
Pj4yXXwwO2IwW1QmMTI3XShCKXwwO2w9Uzt3PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDts
PVM7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtWPXc+Pj4xfWVsc2V7Vj1j
W20rND4+Ml18MH1kb3tpZigoVnwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXti
cmVha31TPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVN9fXdoaWxlKDApO3M9ZncoTCxj
W3A+PjJdfDAsaix0KXwwO2Nbaz4+Ml09cztjW2srND4+Ml09SztmdChtLHYsY1tyPj4yXXwwLGop
O2Rve2lmKEUpe1c9MH1lbHNle3I9Y1tCKzEyPj4yXXwwO2lmKChyfDApPT0oY1tCKzE2Pj4yXXww
KSl7WD1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtYPWNbcj4+Ml18MH1p
ZigoWHwwKSE9LTEpe1c9QjticmVha31jW2g+PjJdPTA7Vz0wfX13aGlsZSgwKTtoPShXfDApPT0w
O2Rve2lmKE4pe0Y9NDkyfWVsc2V7Qj1jW00rMTI+PjJdfDA7aWYoKEJ8MCk9PShjW00rMTY+PjJd
fDApKXtZPWIwW2NbKGNbTT4+Ml18MCkrMzY+PjJdJjEyN10oTSl8MH1lbHNle1k9Y1tCPj4yXXww
fWlmKChZfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NDkyO2JyZWFrfWlmKCEoaF4oTXwwKT09MCkpe2Jy
ZWFrfVo9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tp
ZigoRnwwKT09NDkyKXtpZihoKXticmVha31aPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1l
O3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7Wj1ifDA7Y1taPj4yXT1XO2RQKG4p
O2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZlkoZSxmLGcsaCxqLGssbCl7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAs
Rz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxV
PTAsVj0wLFc9MCxYPTAsWT0wLFo9MDtmPWk7aT1pKzE0NHwwO209ZztnPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1oO2g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbaD4+
Ml09Y1ttPj4yXTttPWYrMTA0fDA7bj1mKzExMnwwO289ZisxMjh8MDtwPW87cT1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7cj1pO2k9aSsxNjB8MDtzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt0PWk7aT1p
KzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1tqKzQ+PjJdJjc0fDApe2Nhc2UgODp7dT0xNjticmVh
a307Y2FzZSA2NDp7dT04O2JyZWFrfTtjYXNlIDA6e3U9MDticmVha307ZGVmYXVsdDp7dT0xMH19
dj1mfDA7ZlcobixqLHYsbSk7ayQocHwwLDAsMTIpO2o9bztkUihvLDEwLDApO2lmKChhW3BdJjEp
PT0wKXt3PWorMXwwO3g9dzt5PXc7ej1vKzh8MH1lbHNle3c9bys4fDA7eD1jW3c+PjJdfDA7eT1q
KzF8MDt6PXd9Y1txPj4yXT14O3c9cnwwO2Nbcz4+Ml09dztjW3Q+PjJdPTA7aj1nfDA7Zz1ofDA7
aD1vfDA7QT1vKzR8MDtCPWNbbT4+Ml18MDttPXg7eD1jW2o+PjJdfDA7TDYyNDp3aGlsZSgxKXtk
b3tpZigoeHwwKT09MCl7Qz0wfWVsc2V7RD1jW3grMTI+PjJdfDA7aWYoKER8MCk9PShjW3grMTY+
PjJdfDApKXtFPWIwW2NbKGNbeD4+Ml18MCkrMzY+PjJdJjEyN10oeCl8MH1lbHNle0U9Y1tEPj4y
XXwwfWlmKChFfDApIT0tMSl7Qz14O2JyZWFrfWNbaj4+Ml09MDtDPTB9fXdoaWxlKDApO0Y9KEN8
MCk9PTA7RD1jW2c+PjJdfDA7ZG97aWYoKER8MCk9PTApe0c9NTIwfWVsc2V7SD1jW0QrMTI+PjJd
fDA7aWYoKEh8MCk9PShjW0QrMTY+PjJdfDApKXtJPWIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEy
N10oRCl8MH1lbHNle0k9Y1tIPj4yXXwwfWlmKChJfDApPT0tMSl7Y1tnPj4yXT0wO0c9NTIwO2Jy
ZWFrfWVsc2V7SD0oRHwwKT09MDtpZihGXkgpe0o9RDtLPUg7YnJlYWt9ZWxzZXtMPW07TT1EO049
SDticmVhayBMNjI0fX19fXdoaWxlKDApO2lmKChHfDApPT01MjApe0c9MDtpZihGKXtMPW07TT0w
O049MTticmVha31lbHNle0o9MDtLPTF9fUQ9ZFtwXXwwO0g9KEQmMXwwKT09MDtpZigoKGNbcT4+
Ml18MCktbXwwKT09KChIP0Q+Pj4xOmNbQT4+Ml18MCl8MCkpe2lmKEgpe089RD4+PjE7UD1EPj4+
MX1lbHNle0Q9Y1tBPj4yXXwwO089RDtQPUR9ZFIobyxPPDwxLDApO2lmKChhW3BdJjEpPT0wKXtR
PTEwfWVsc2V7UT0oY1toPj4yXSYtMiktMXwwfWRSKG8sUSwwKTtpZigoYVtwXSYxKT09MCl7Uj15
fWVsc2V7Uj1jW3o+PjJdfDB9Y1txPj4yXT1SK1A7Uz1SfWVsc2V7Uz1tfUQ9QysxMnwwO0g9Y1tE
Pj4yXXwwO1Q9QysxNnwwO2lmKChIfDApPT0oY1tUPj4yXXwwKSl7VT1iMFtjWyhjW0M+PjJdfDAp
KzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtVPWNbSD4+Ml18MH1pZigoZlUoVSx1LFMscSx0LEIsbix3
LHMsdil8MCkhPTApe0w9UztNPUo7Tj1LO2JyZWFrfUg9Y1tEPj4yXXwwO2lmKChIfDApPT0oY1tU
Pj4yXXwwKSl7VD1jWyhjW0M+PjJdfDApKzQwPj4yXXwwO2IwW1QmMTI3XShDKXwwO209Uzt4PUM7
Y29udGludWV9ZWxzZXtjW0Q+PjJdPUgrNDttPVM7eD1DO2NvbnRpbnVlfX14PWRbbl18MDtpZigo
eCYxfDApPT0wKXtWPXg+Pj4xfWVsc2V7Vj1jW24rND4+Ml18MH1kb3tpZigoVnwwKSE9MCl7eD1j
W3M+PjJdfDA7aWYoKHgtcnwwKT49MTYwKXticmVha31TPWNbdD4+Ml18MDtjW3M+PjJdPXgrNDtj
W3g+PjJdPVN9fXdoaWxlKDApO2JbbD4+MV09ZnooTCxjW3E+PjJdfDAsayx1KXwwO2Z0KG4sdyxj
W3M+PjJdfDAsayk7ZG97aWYoRil7Vz0wfWVsc2V7cz1jW0MrMTI+PjJdfDA7aWYoKHN8MCk9PShj
W0MrMTY+PjJdfDApKXtYPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle1g9
Y1tzPj4yXXwwfWlmKChYfDApIT0tMSl7Vz1DO2JyZWFrfWNbaj4+Ml09MDtXPTB9fXdoaWxlKDAp
O2o9KFd8MCk9PTA7ZG97aWYoTil7Rz01NjJ9ZWxzZXtDPWNbTSsxMj4+Ml18MDtpZigoQ3wwKT09
KGNbTSsxNj4+Ml18MCkpe1k9YjBbY1soY1tNPj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwfWVsc2V7
WT1jW0M+PjJdfDB9aWYoKFl8MCk9PS0xKXtjW2c+PjJdPTA7Rz01NjI7YnJlYWt9aWYoIShqXihN
fDApPT0wKSl7YnJlYWt9Wj1lfDA7Y1taPj4yXT1XO2RQKG8pO2RQKG4pO2k9ZjtyZXR1cm59fXdo
aWxlKDApO2Rve2lmKChHfDApPT01NjIpe2lmKGope2JyZWFrfVo9ZXwwO2NbWj4+Ml09VztkUChv
KTtkUChuKTtpPWY7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjtaPWV8MDtjW1o+
PjJdPVc7ZFAobyk7ZFAobik7aT1mO3JldHVybn1mdW5jdGlvbiBmWihiLGUsZixnLGgsaixrKXti
PWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9
MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wO2U9aTtpPWkrMTQ0fDA7bD1mO2Y9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEyOHwwO289bjtw
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA4
Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtkZWZh
dWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7
aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNb
dj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDto
PWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+Ml18MDtMNzEz
OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18MDtpZigoQ3ww
KT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwfWVs
c2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hp
bGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj01OTB9ZWxzZXtH
PWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1soY1tDPj4yXXww
KSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0xKXtjW2Y+PjJd
PTA7Rj01OTA7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9RzticmVha31lbHNl
e0s9bDtMPUM7TT1HO2JyZWFrIEw3MTN9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTU5MCl7Rj0wO2lm
KEUpe0s9bDtMPTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0oQyYxfDApPT0w
O2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoRyl7Tj1D
Pj4+MTtPPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tj1DO089Q31kUihuLE48PDEsMCk7aWYoKGFb
b10mMSk9PTApe1A9MTB9ZWxzZXtQPShjW2c+PjJdJi0yKS0xfDB9ZFIobixQLDApO2lmKChhW29d
JjEpPT0wKXtRPXh9ZWxzZXtRPWNbeT4+Ml18MH1jW3A+PjJdPVErTztSPVF9ZWxzZXtSPWx9Qz1C
KzEyfDA7Rz1jW0M+PjJdfDA7Uz1CKzE2fDA7aWYoKEd8MCk9PShjW1M+PjJdfDApKXtUPWIwW2Nb
KGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1Q9Y1tHPj4yXXwwfWlmKChmVShULHQs
UixwLHMsQSxtLHYscix1KXwwKSE9MCl7Sz1SO0w9STtNPUo7YnJlYWt9Rz1jW0M+PjJdfDA7aWYo
KEd8MCk9PShjW1M+PjJdfDApKXtTPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUyYxMjddKEIp
fDA7bD1SO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Ujt3PUI7Y29udGludWV9fXc9
ZFttXXwwO2lmKCh3JjF8MCk9PTApe1U9dz4+PjF9ZWxzZXtVPWNbbSs0Pj4yXXwwfWRve2lmKChV
fDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVI9Y1tzPj4yXXwwO2Nb
cj4+Ml09dys0O2Nbdz4+Ml09Un19d2hpbGUoMCk7Y1trPj4yXT1mQihLLGNbcD4+Ml18MCxqLHQp
fDA7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihFKXtWPTB9ZWxzZXtyPWNbQisxMj4+Ml18MDtp
ZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1c9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShC
KXwwfWVsc2V7Vz1jW3I+PjJdfDB9aWYoKFd8MCkhPS0xKXtWPUI7YnJlYWt9Y1toPj4yXT0wO1Y9
MH19d2hpbGUoMCk7aD0oVnwwKT09MDtkb3tpZihNKXtGPTYzMn1lbHNle0I9Y1tMKzEyPj4yXXww
O2lmKChCfDApPT0oY1tMKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYxMjdd
KEwpfDB9ZWxzZXtYPWNbQj4+Ml18MH1pZigoWHwwKT09LTEpe2NbZj4+Ml09MDtGPTYzMjticmVh
a31pZighKGheKEx8MCk9PTApKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1l
O3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTYzMil7aWYoaCl7YnJlYWt9WT1ifDA7Y1tZ
Pj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwy
O1k9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZfKGIsZSxm
LGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9
MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0w
LE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTA7ZT1pO2k9aSsxNDR8
MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtuPWUr
MTI4fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3
NHwwKXtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307Y2FzZSAwOnt0PTA7
YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47
ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2
PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7
Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9Y1to
Pj4yXXwwO0w4MDI6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEyPj4y
XXwwO2lmKChDfDApPT0oY1t3KzE2Pj4yXXwwKSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYx
MjddKHcpfDB9ZWxzZXtEPWNbQz4+Ml18MH1pZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+PjJd
PTA7Qj0wfX13aGlsZSgwKTtFPShCfDApPT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0wKXtG
PTY2MH1lbHNle0c9Y1tDKzEyPj4yXXwwO2lmKChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1iMFtj
WyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHwwKT09
LTEpe2NbZj4+Ml09MDtGPTY2MDticmVha31lbHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7Sj1H
O2JyZWFrfWVsc2V7Sz1sO0w9QztNPUc7YnJlYWsgTDgwMn19fX13aGlsZSgwKTtpZigoRnwwKT09
NjYwKXtGPTA7aWYoRSl7Sz1sO0w9MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118MDtH
PShDJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDApfDAp
KXtpZihHKXtOPUM+Pj4xO089Qz4+PjF9ZWxzZXtDPWNbej4+Ml18MDtOPUM7Tz1DfWRSKG4sTjw8
MSwwKTtpZigoYVtvXSYxKT09MCl7UD0xMH1lbHNle1A9KGNbZz4+Ml0mLTIpLTF8MH1kUihuLFAs
MCk7aWYoKGFbb10mMSk9PTApe1E9eH1lbHNle1E9Y1t5Pj4yXXwwfWNbcD4+Ml09UStPO1I9UX1l
bHNle1I9bH1DPUIrMTJ8MDtHPWNbQz4+Ml18MDtTPUIrMTZ8MDtpZigoR3wwKT09KGNbUz4+Ml18
MCkpe1Q9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7VD1jW0c+PjJdfDB9
aWYoKGZVKFQsdCxSLHAscyxBLG0sdixyLHUpfDApIT0wKXtLPVI7TD1JO009SjticmVha31HPWNb
Qz4+Ml18MDtpZigoR3wwKT09KGNbUz4+Ml18MCkpe1M9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDti
MFtTJjEyN10oQil8MDtsPVI7dz1CO2NvbnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1SO3c9Qjtj
b250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7VT13Pj4+MX1lbHNle1U9Y1ttKzQ+PjJd
fDB9ZG97aWYoKFV8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9Uj1j
W3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1SfX13aGlsZSgwKTtjW2s+PjJdPWZEKEssY1tw
Pj4yXXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEUpe1Y9MH1lbHNle3I9Y1tC
KzEyPj4yXXwwO2lmKChyfDApPT0oY1tCKzE2Pj4yXXwwKSl7Vz1iMFtjWyhjW0I+PjJdfDApKzM2
Pj4yXSYxMjddKEIpfDB9ZWxzZXtXPWNbcj4+Ml18MH1pZigoV3wwKSE9LTEpe1Y9QjticmVha31j
W2g+PjJdPTA7Vj0wfX13aGlsZSgwKTtoPShWfDApPT0wO2Rve2lmKE0pe0Y9NzAyfWVsc2V7Qj1j
W0wrMTI+PjJdfDA7aWYoKEJ8MCk9PShjW0wrMTY+PjJdfDApKXtYPWIwW2NbKGNbTD4+Ml18MCkr
MzY+PjJdJjEyN10oTCl8MH1lbHNle1g9Y1tCPj4yXXwwfWlmKChYfDApPT0tMSl7Y1tmPj4yXT0w
O0Y9NzAyO2JyZWFrfWlmKCEoaF4oTHwwKT09MCkpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChu
KTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRnwwKT09NzAyKXtpZihoKXticmVh
a31ZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4y
XT1jW2o+PjJdfDI7WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rp
b24gZiQoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7
az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MDtl
PWk7aT1pKzE0NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07
bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1l
KzExMnwwO249ZSsxMjh8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8
MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2go
Y1toKzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0xNjticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2Nh
c2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3ww
LDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1u
Kzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXww
O2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18
MDtsPXc7dz1jW2g+PjJdfDA7TDg5MTp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7
Qz1jW3crMTI+PjJdfDA7aWYoKEN8MCk9PShjW3crMTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18
MCkrMzY+PjJdJjEyN10odyl8MH1lbHNle0Q9Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2Jy
ZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYo
KEN8MCk9PTApe0Y9NzMwfWVsc2V7Rz1jW0MrMTI+PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJd
fDApKXtIPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXww
fWlmKChIfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NzMwO2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihF
Xkcpe0k9QztKPUc7YnJlYWt9ZWxzZXtMPWw7TT1DO049RzticmVhayBMODkxfX19fXdoaWxlKDAp
O2lmKChGfDApPT03MzApe0Y9MDtpZihFKXtMPWw7TT0wO049MTticmVha31lbHNle0k9MDtKPTF9
fUM9ZFtvXXwwO0c9KEMmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNb
ej4+Ml18MCl8MCkpe2lmKEcpe089Qz4+PjE7UD1DPj4+MX1lbHNle0M9Y1t6Pj4yXXwwO089QztQ
PUN9ZFIobixPPDwxLDApO2lmKChhW29dJjEpPT0wKXtRPTEwfWVsc2V7UT0oY1tnPj4yXSYtMikt
MXwwfWRSKG4sUSwwKTtpZigoYVtvXSYxKT09MCl7Uj14fWVsc2V7Uj1jW3k+PjJdfDB9Y1twPj4y
XT1SK1A7Uz1SfWVsc2V7Uz1sfUM9QisxMnwwO0c9Y1tDPj4yXXwwO1Q9QisxNnwwO2lmKChHfDAp
PT0oY1tUPj4yXXwwKSl7VT1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtV
PWNbRz4+Ml18MH1pZigoZlUoVSx0LFMscCxzLEEsbSx2LHIsdSl8MCkhPTApe0w9UztNPUk7Tj1K
O2JyZWFrfUc9Y1tDPj4yXXwwO2lmKChHfDApPT0oY1tUPj4yXXwwKSl7VD1jWyhjW0I+PjJdfDAp
KzQwPj4yXXwwO2IwW1QmMTI3XShCKXwwO2w9Uzt3PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcr
NDtsPVM7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtWPXc+Pj4xfWVsc2V7
Vj1jW20rND4+Ml18MH1kb3tpZigoVnwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYw
KXticmVha31TPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVN9fXdoaWxlKDApO3M9ZkYo
TCxjW3A+PjJdfDAsaix0KXwwO2Nbaz4+Ml09cztjW2srND4+Ml09SztmdChtLHYsY1tyPj4yXXww
LGopO2Rve2lmKEUpe1c9MH1lbHNle3I9Y1tCKzEyPj4yXXwwO2lmKChyfDApPT0oY1tCKzE2Pj4y
XXwwKSl7WD1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtYPWNbcj4+Ml18
MH1pZigoWHwwKSE9LTEpe1c9QjticmVha31jW2g+PjJdPTA7Vz0wfX13aGlsZSgwKTtoPShXfDAp
PT0wO2Rve2lmKE4pe0Y9NzcyfWVsc2V7Qj1jW00rMTI+PjJdfDA7aWYoKEJ8MCk9PShjW00rMTY+
PjJdfDApKXtZPWIwW2NbKGNbTT4+Ml18MCkrMzY+PjJdJjEyN10oTSl8MH1lbHNle1k9Y1tCPj4y
XXwwfWlmKChZfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NzcyO2JyZWFrfWlmKCEoaF4oTXwwKT09MCkp
e2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtk
b3tpZigoRnwwKT09NzcyKXtpZihoKXticmVha31aPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7
aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7Wj1ifDA7Y1taPj4yXT1XO2RQ
KG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZjAoYixlLGYsaCxqLGssbCl7Yj1ifDA7ZT1l
fDA7Zj1mfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9
MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wO2U9aTtpPWkrMTc2fDA7bT1mO2Y9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWg7aD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1toPj4yXT1jW20+PjJdO209ZSsxMjh8MDtuPWUrMTM2fDA7bz1lKzE0NHwwO3A9ZSsx
NjB8MDtxPXA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSsxNjB8MDt0PWk7aT1pKzR8
MDtpPWkrNz4+Mzw8Mzt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PWk7aT1pKzF8MDtpPWkrNz4+
Mzw8Mzt3PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt4PWV8MDtmMShvLGoseCxtLG4pO2skKHF8MCww
LDEyKTtqPXA7ZFIocCwxMCwwKTtpZigoYVtxXSYxKT09MCl7eT1qKzF8MDt6PXk7QT15O0I9cCs4
fDB9ZWxzZXt5PXArOHwwO3o9Y1t5Pj4yXXwwO0E9aisxfDA7Qj15fWNbcj4+Ml09ejt5PXN8MDtj
W3Q+PjJdPXk7Y1t1Pj4yXT0wO2Fbdl09MTthW3ddPTY5O2o9ZnwwO2Y9aHwwO2g9cHwwO0M9cCs0
fDA7RD1jW20+PjJdfDA7bT1jW24+PjJdfDA7bj16O3o9Y1tqPj4yXXwwO0w5NzU6d2hpbGUoMSl7
ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle0Y9Y1t6KzEyPj4yXXwwO2lmKChGfDApPT0oY1t6KzE2
Pj4yXXwwKSl7Rz1iMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDB9ZWxzZXtHPWNbRj4+
Ml18MH1pZigoR3wwKSE9LTEpe0U9ejticmVha31jW2o+PjJdPTA7RT0wfX13aGlsZSgwKTtIPShF
fDApPT0wO0Y9Y1tmPj4yXXwwO2Rve2lmKChGfDApPT0wKXtJPTc5Nn1lbHNle0o9Y1tGKzEyPj4y
XXwwO2lmKChKfDApPT0oY1tGKzE2Pj4yXXwwKSl7Sz1iMFtjWyhjW0Y+PjJdfDApKzM2Pj4yXSYx
MjddKEYpfDB9ZWxzZXtLPWNbSj4+Ml18MH1pZigoS3wwKT09LTEpe2NbZj4+Ml09MDtJPTc5Njti
cmVha31lbHNle0o9KEZ8MCk9PTA7aWYoSF5KKXtMPUY7TT1KO2JyZWFrfWVsc2V7Tj1uO089RjtQ
PUo7YnJlYWsgTDk3NX19fX13aGlsZSgwKTtpZigoSXwwKT09Nzk2KXtJPTA7aWYoSCl7Tj1uO089
MDtQPTE7YnJlYWt9ZWxzZXtMPTA7TT0xfX1GPWRbcV18MDtKPShGJjF8MCk9PTA7aWYoKChjW3I+
PjJdfDApLW58MCk9PSgoSj9GPj4+MTpjW0M+PjJdfDApfDApKXtpZihKKXtRPUY+Pj4xO1I9Rj4+
PjF9ZWxzZXtGPWNbQz4+Ml18MDtRPUY7Uj1GfWRSKHAsUTw8MSwwKTtpZigoYVtxXSYxKT09MCl7
Uz0xMH1lbHNle1M9KGNbaD4+Ml0mLTIpLTF8MH1kUihwLFMsMCk7aWYoKGFbcV0mMSk9PTApe1Q9
QX1lbHNle1Q9Y1tCPj4yXXwwfWNbcj4+Ml09VCtSO1U9VH1lbHNle1U9bn1GPUUrMTJ8MDtKPWNb
Rj4+Ml18MDtWPUUrMTZ8MDtpZigoSnwwKT09KGNbVj4+Ml18MCkpe1c9YjBbY1soY1tFPj4yXXww
KSszNj4+Ml0mMTI3XShFKXwwfWVsc2V7Vz1jW0o+PjJdfDB9aWYoKGYyKFcsdix3LFUscixELG0s
byx5LHQsdSx4KXwwKSE9MCl7Tj1VO089TDtQPU07YnJlYWt9Sj1jW0Y+PjJdfDA7aWYoKEp8MCk9
PShjW1Y+PjJdfDApKXtWPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbViYxMjddKEUpfDA7bj1V
O3o9RTtjb250aW51ZX1lbHNle2NbRj4+Ml09Sis0O249VTt6PUU7Y29udGludWV9fXo9ZFtvXXww
O2lmKCh6JjF8MCk9PTApe1g9ej4+PjF9ZWxzZXtYPWNbbys0Pj4yXXwwfWRve2lmKChYfDApIT0w
KXtpZigoYVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVh
a31VPWNbdT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVV9fXdoaWxlKDApO2dbbD4+Ml09K2ZJ
KE4sY1tyPj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoSCl7WT0wfWVsc2V7dD1j
W0UrMTI+PjJdfDA7aWYoKHR8MCk9PShjW0UrMTY+PjJdfDApKXtaPWIwW2NbKGNbRT4+Ml18MCkr
MzY+PjJdJjEyN10oRSl8MH1lbHNle1o9Y1t0Pj4yXXwwfWlmKChafDApIT0tMSl7WT1FO2JyZWFr
fWNbaj4+Ml09MDtZPTB9fXdoaWxlKDApO2o9KFl8MCk9PTA7ZG97aWYoUCl7ST04Mzl9ZWxzZXtF
PWNbTysxMj4+Ml18MDtpZigoRXwwKT09KGNbTysxNj4+Ml18MCkpe189YjBbY1soY1tPPj4yXXww
KSszNj4+Ml0mMTI3XShPKXwwfWVsc2V7Xz1jW0U+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2Y+PjJd
PTA7ST04Mzk7YnJlYWt9aWYoIShqXihPfDApPT0wKSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQ
KHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChJfDApPT04Mzkpe2lmKGope2Jy
ZWFrfSQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+
PjJdPWNbaz4+Ml18MjskPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5j
dGlvbiBmMShhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAs
aD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2c9aTtpPWkrNDB8MDtoPWd8
MDtqPWcrMTZ8MDtrPWcrMzJ8MDtlaihrLGIpO2I9a3wwO2s9Y1tiPj4yXXwwO2lmKChjWzM5MjJd
fDApIT0tMSl7Y1tqPj4yXT0xNTY4ODtjW2orND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTU2ODgs
aiw5Nil9aj0oY1szOTIzXXwwKS0xfDA7bD1jW2srOD4+Ml18MDtkb3tpZigoY1trKzEyPj4yXXww
KS1sPj4yPj4+MD5qPj4+MCl7bT1jW2wrKGo8PDIpPj4yXXwwO2lmKChtfDApPT0wKXticmVha31u
PW07bz1jWyhjW20+PjJdfDApKzQ4Pj4yXXwwO2NhW28mMTVdKG4sOTc0NCw5Nzc2LGQpfDA7bj1j
W2I+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0xKXtjW2g+PjJdPTE1MzA0O2NbaCs0Pj4yXT0xMjtj
W2grOD4+Ml09MDtkVygxNTMwNCxoLDk2KX1vPShjWzM4MjddfDApLTF8MDttPWNbbis4Pj4yXXww
O2Rve2lmKChjW24rMTI+PjJdfDApLW0+PjI+Pj4wPm8+Pj4wKXtwPWNbbSsobzw8Mik+PjJdfDA7
aWYoKHB8MCk9PTApe2JyZWFrfXE9cDtyPXA7Y1tlPj4yXT1iMFtjWyhjW3I+PjJdfDApKzEyPj4y
XSYxMjddKHEpfDA7Y1tmPj4yXT1iMFtjWyhjW3I+PjJdfDApKzE2Pj4yXSYxMjddKHEpfDA7Ylpb
Y1soY1twPj4yXXwwKSsyMD4+Ml0mMTI3XShhLHEpO3E9Y1tiPj4yXXwwO2R6KHEpfDA7aT1nO3Jl
dHVybn19d2hpbGUoMCk7bz1iTyg0KXwwO2txKG8pO2JsKG98MCw4MTc2LDEzNCl9fXdoaWxlKDAp
O2c9Yk8oNCl8MDtrcShnKTtibChnfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGYyKGIsZSxmLGcsaCxp
LGosayxsLG0sbixvKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtr
PWt8MDtsPWx8MDttPW18MDtuPW58MDtvPW98MDt2YXIgcD0wLHE9MCxyPTAscz0wLHQ9MDtpZigo
YnwwKT09KGl8MCkpe2lmKChhW2VdJjEpPT0wKXtwPS0xO3JldHVybiBwfDB9YVtlXT0wO2k9Y1to
Pj4yXXwwO2NbaD4+Ml09aSsxO2FbaV09NDY7aT1kW2tdfDA7aWYoKGkmMXwwKT09MCl7cT1pPj4+
MX1lbHNle3E9Y1trKzQ+PjJdfDB9aWYoKHF8MCk9PTApe3A9MDtyZXR1cm4gcHwwfXE9Y1ttPj4y
XXwwO2lmKChxLWx8MCk+PTE2MCl7cD0wO3JldHVybiBwfDB9aT1jW24+PjJdfDA7Y1ttPj4yXT1x
KzQ7Y1txPj4yXT1pO3A9MDtyZXR1cm4gcHwwfWRve2lmKChifDApPT0oanwwKSl7aT1kW2tdfDA7
aWYoKGkmMXwwKT09MCl7cj1pPj4+MX1lbHNle3I9Y1trKzQ+PjJdfDB9aWYoKHJ8MCk9PTApe2Jy
ZWFrfWlmKChhW2VdJjEpPT0wKXtwPS0xO3JldHVybiBwfDB9aT1jW20+PjJdfDA7aWYoKGktbHww
KT49MTYwKXtwPTA7cmV0dXJuIHB8MH1xPWNbbj4+Ml18MDtjW20+PjJdPWkrNDtjW2k+PjJdPXE7
Y1tuPj4yXT0wO3A9MDtyZXR1cm4gcHwwfX13aGlsZSgwKTtyPW8rMTI4fDA7aj1vO3doaWxlKDEp
e2lmKChqfDApPT0ocnwwKSl7cz1yO2JyZWFrfWlmKChjW2o+PjJdfDApPT0oYnwwKSl7cz1qO2Jy
ZWFrfWVsc2V7aj1qKzR8MH19aj1zLW98MDtvPWo+PjI7aWYoKGp8MCk+MTI0KXtwPS0xO3JldHVy
biBwfDB9cz1hWzk3NDQrb3wwXXwwO0wxMTE1OmRve3N3aXRjaChvfDApe2Nhc2UgMjU6Y2FzZSAy
NDp7Yj1jW2g+PjJdfDA7ZG97aWYoKGJ8MCkhPShnfDApKXtpZigoYVtiLTF8MF0mOTV8MCk9PShh
W2ZdJjEyN3wwKSl7YnJlYWt9ZWxzZXtwPS0xfXJldHVybiBwfDB9fXdoaWxlKDApO2NbaD4+Ml09
YisxO2FbYl09cztwPTA7cmV0dXJuIHB8MH07Y2FzZSAyMjpjYXNlIDIzOnthW2ZdPTgwO2JyZWFr
fTtkZWZhdWx0OntyPWFbZl18MDtpZigocyY5NXwwKSE9KHI8PDI0Pj4yNHwwKSl7YnJlYWsgTDEx
MTV9YVtmXT1yfC0xMjg7aWYoKGFbZV0mMSk9PTApe2JyZWFrIEwxMTE1fWFbZV09MDtyPWRba118
MDtpZigociYxfDApPT0wKXt0PXI+Pj4xfWVsc2V7dD1jW2srND4+Ml18MH1pZigodHwwKT09MCl7
YnJlYWsgTDExMTV9cj1jW20+PjJdfDA7aWYoKHItbHwwKT49MTYwKXticmVhayBMMTExNX1xPWNb
bj4+Ml18MDtjW20+PjJdPXIrNDtjW3I+PjJdPXF9fX13aGlsZSgwKTttPWNbaD4+Ml18MDtjW2g+
PjJdPW0rMTthW21dPXM7aWYoKGp8MCk+ODQpe3A9MDtyZXR1cm4gcHwwfWNbbj4+Ml09KGNbbj4+
Ml18MCkrMTtwPTA7cmV0dXJuIHB8MH1mdW5jdGlvbiBmMyhiLGUsZixnLGosayxsKXtiPWJ8MDtl
PWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTA7ZT1pO2k9aSsxNzZ8MDttPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZztnPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzEyOHwwO249ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1l
KzE2MHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3
Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2YxKG8saix4LG0sbik7ayQocXww
LDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1w
Kzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3ww
O2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1nfDA7Zz1wfDA7Qz1w
KzR8MDtEPWNbbT4+Ml18MDttPWNbbj4+Ml18MDtuPXo7ej1jW2o+PjJdfDA7TDExNDM6d2hpbGUo
MSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle0Y9Y1t6KzEyPj4yXXwwO2lmKChGfDApPT0oY1t6
KzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDB9ZWxzZXtHPWNb
Rj4+Ml18MH1pZigoR3wwKSE9LTEpe0U9ejticmVha31jW2o+PjJdPTA7RT0wfX13aGlsZSgwKTtI
PShFfDApPT0wO0Y9Y1tmPj4yXXwwO2Rve2lmKChGfDApPT0wKXtJPTkyOX1lbHNle0o9Y1tGKzEy
Pj4yXXwwO2lmKChKfDApPT0oY1tGKzE2Pj4yXXwwKSl7Sz1iMFtjWyhjW0Y+PjJdfDApKzM2Pj4y
XSYxMjddKEYpfDB9ZWxzZXtLPWNbSj4+Ml18MH1pZigoS3wwKT09LTEpe2NbZj4+Ml09MDtJPTky
OTticmVha31lbHNle0o9KEZ8MCk9PTA7aWYoSF5KKXtMPUY7TT1KO2JyZWFrfWVsc2V7Tj1uO089
RjtQPUo7YnJlYWsgTDExNDN9fX19d2hpbGUoMCk7aWYoKEl8MCk9PTkyOSl7ST0wO2lmKEgpe049
bjtPPTA7UD0xO2JyZWFrfWVsc2V7TD0wO009MX19Rj1kW3FdfDA7Sj0oRiYxfDApPT0wO2lmKCgo
Y1tyPj4yXXwwKS1ufDApPT0oKEo/Rj4+PjE6Y1tDPj4yXXwwKXwwKSl7aWYoSil7UT1GPj4+MTtS
PUY+Pj4xfWVsc2V7Rj1jW0M+PjJdfDA7UT1GO1I9Rn1kUihwLFE8PDEsMCk7aWYoKGFbcV0mMSk9
PTApe1M9MTB9ZWxzZXtTPShjW2c+PjJdJi0yKS0xfDB9ZFIocCxTLDApO2lmKChhW3FdJjEpPT0w
KXtUPUF9ZWxzZXtUPWNbQj4+Ml18MH1jW3I+PjJdPVQrUjtVPVR9ZWxzZXtVPW59Rj1FKzEyfDA7
Sj1jW0Y+PjJdfDA7Vj1FKzE2fDA7aWYoKEp8MCk9PShjW1Y+PjJdfDApKXtXPWIwW2NbKGNbRT4+
Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1lbHNle1c9Y1tKPj4yXXwwfWlmKChmMihXLHYsdyxVLHIs
RCxtLG8seSx0LHUseCl8MCkhPTApe049VTtPPUw7UD1NO2JyZWFrfUo9Y1tGPj4yXXwwO2lmKChK
fDApPT0oY1tWPj4yXXwwKSl7Vj1jWyhjW0U+PjJdfDApKzQwPj4yXXwwO2IwW1YmMTI3XShFKXww
O249VTt6PUU7Y29udGludWV9ZWxzZXtjW0Y+PjJdPUorNDtuPVU7ej1FO2NvbnRpbnVlfX16PWRb
b118MDtpZigoeiYxfDApPT0wKXtYPXo+Pj4xfWVsc2V7WD1jW28rND4+Ml18MH1kb3tpZigoWHww
KSE9MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7
YnJlYWt9VT1jW3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6Pj4yXT1VfX13aGlsZSgwKTtoW2w+PjNd
PStmTChOLGNbcj4+Ml18MCxrKTtmdChvLHksY1t0Pj4yXXwwLGspO2Rve2lmKEgpe1k9MH1lbHNl
e3Q9Y1tFKzEyPj4yXXwwO2lmKCh0fDApPT0oY1tFKzE2Pj4yXXwwKSl7Wj1iMFtjWyhjW0U+PjJd
fDApKzM2Pj4yXSYxMjddKEUpfDB9ZWxzZXtaPWNbdD4+Ml18MH1pZigoWnwwKSE9LTEpe1k9RTti
cmVha31jW2o+PjJdPTA7WT0wfX13aGlsZSgwKTtqPShZfDApPT0wO2Rve2lmKFApe0k9OTcyfWVs
c2V7RT1jW08rMTI+PjJdfDA7aWYoKEV8MCk9PShjW08rMTY+PjJdfDApKXtfPWIwW2NbKGNbTz4+
Ml18MCkrMzY+PjJdJjEyN10oTyl8MH1lbHNle189Y1tFPj4yXXwwfWlmKChffDApPT0tMSl7Y1tm
Pj4yXT0wO0k9OTcyO2JyZWFrfWlmKCEoal4oT3wwKT09MCkpe2JyZWFrfSQ9YnwwO2NbJD4+Ml09
WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoSXwwKT09OTcyKXtpZihq
KXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7
Y1trPj4yXT1jW2s+PjJdfDI7JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59
ZnVuY3Rpb24gZjQoYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7
az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9
MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0w
LFo9MCxfPTAsJD0wO2U9aTtpPWkrMTc2fDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zj4+Ml09Y1ttPj4yXTttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+PjJd
O209ZSsxMjh8MDtuPWUrMTM2fDA7bz1lKzE0NHwwO3A9ZSsxNjB8MDtxPXA7cj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7cz1pO2k9aSsxNjB8MDt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt1PWk7aT1p
KzR8MDtpPWkrNz4+Mzw8Mzt2PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt3PWk7aT1pKzF8MDtpPWkr
Nz4+Mzw8Mzt4PWV8MDtmMShvLGoseCxtLG4pO2skKHF8MCwwLDEyKTtqPXA7ZFIocCwxMCwwKTtp
ZigoYVtxXSYxKT09MCl7eT1qKzF8MDt6PXk7QT15O0I9cCs4fDB9ZWxzZXt5PXArOHwwO3o9Y1t5
Pj4yXXwwO0E9aisxfDA7Qj15fWNbcj4+Ml09ejt5PXN8MDtjW3Q+PjJdPXk7Y1t1Pj4yXT0wO2Fb
dl09MTthW3ddPTY5O2o9ZnwwO2Y9Z3wwO2c9cHwwO0M9cCs0fDA7RD1jW20+PjJdfDA7bT1jW24+
PjJdfDA7bj16O3o9Y1tqPj4yXXwwO0wxMjI4OndoaWxlKDEpe2Rve2lmKCh6fDApPT0wKXtFPTB9
ZWxzZXtGPWNbeisxMj4+Ml18MDtpZigoRnwwKT09KGNbeisxNj4+Ml18MCkpe0c9YjBbY1soY1t6
Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Rz1jW0Y+PjJdfDB9aWYoKEd8MCkhPS0xKXtF
PXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7SD0oRXwwKT09MDtGPWNbZj4+Ml18MDtk
b3tpZigoRnwwKT09MCl7ST05OTZ9ZWxzZXtKPWNbRisxMj4+Ml18MDtpZigoSnwwKT09KGNbRisx
Nj4+Ml18MCkpe0s9YjBbY1soY1tGPj4yXXwwKSszNj4+Ml0mMTI3XShGKXwwfWVsc2V7Sz1jW0o+
PjJdfDB9aWYoKEt8MCk9PS0xKXtjW2Y+PjJdPTA7ST05OTY7YnJlYWt9ZWxzZXtKPShGfDApPT0w
O2lmKEheSil7TD1GO009SjticmVha31lbHNle049bjtPPUY7UD1KO2JyZWFrIEwxMjI4fX19fXdo
aWxlKDApO2lmKChJfDApPT05OTYpe0k9MDtpZihIKXtOPW47Tz0wO1A9MTticmVha31lbHNle0w9
MDtNPTF9fUY9ZFtxXXwwO0o9KEYmMXwwKT09MDtpZigoKGNbcj4+Ml18MCktbnwwKT09KChKP0Y+
Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKEope1E9Rj4+PjE7Uj1GPj4+MX1lbHNle0Y9Y1tDPj4yXXww
O1E9RjtSPUZ9ZFIocCxRPDwxLDApO2lmKChhW3FdJjEpPT0wKXtTPTEwfWVsc2V7Uz0oY1tnPj4y
XSYtMiktMXwwfWRSKHAsUywwKTtpZigoYVtxXSYxKT09MCl7VD1BfWVsc2V7VD1jW0I+PjJdfDB9
Y1tyPj4yXT1UK1I7VT1UfWVsc2V7VT1ufUY9RSsxMnwwO0o9Y1tGPj4yXXwwO1Y9RSsxNnwwO2lm
KChKfDApPT0oY1tWPj4yXXwwKSl7Vz1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDB9
ZWxzZXtXPWNbSj4+Ml18MH1pZigoZjIoVyx2LHcsVSxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtO
PVU7Tz1MO1A9TTticmVha31KPWNbRj4+Ml18MDtpZigoSnwwKT09KGNbVj4+Ml18MCkpe1Y9Y1so
Y1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtWJjEyN10oRSl8MDtuPVU7ej1FO2NvbnRpbnVlfWVsc2V7
Y1tGPj4yXT1KKzQ7bj1VO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7WD16
Pj4+MX1lbHNle1g9Y1tvKzQ+PjJdfDB9ZG97aWYoKFh8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXti
cmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVU9Y1t1Pj4yXXwwO2NbdD4+
Ml09eis0O2Nbej4+Ml09VX19d2hpbGUoMCk7aFtsPj4zXT0rZk4oTixjW3I+PjJdfDAsayk7ZnQo
byx5LGNbdD4+Ml18MCxrKTtkb3tpZihIKXtZPTB9ZWxzZXt0PWNbRSsxMj4+Ml18MDtpZigodHww
KT09KGNbRSsxNj4+Ml18MCkpe1o9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwfWVs
c2V7Wj1jW3Q+PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUU7YnJlYWt9Y1tqPj4yXT0wO1k9MH19d2hp
bGUoMCk7aj0oWXwwKT09MDtkb3tpZihQKXtJPTEwMzl9ZWxzZXtFPWNbTysxMj4+Ml18MDtpZigo
RXwwKT09KGNbTysxNj4+Ml18MCkpe189YjBbY1soY1tPPj4yXXwwKSszNj4+Ml0mMTI3XShPKXww
fWVsc2V7Xz1jW0U+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2Y+PjJdPTA7ST0xMDM5O2JyZWFrfWlm
KCEoal4oT3wwKT09MCkpe2JyZWFrfSQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0
dXJufX13aGlsZSgwKTtkb3tpZigoSXwwKT09MTAzOSl7aWYoail7YnJlYWt9JD1ifDA7Y1skPj4y
XT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwyOyQ9
YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGY1KGEpe2E9YXww
O2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGY2KGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJu
fWZ1bmN0aW9uIGY3KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxK
PTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9
MCxZPTAsWj0wO2U9aTtpPWkrMTM2fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+
Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9
ZXwwO209ZSsxNnwwO249ZSsxMjB8MDtvPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztwPWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cj1pO2k9aSsxNjB8MDtzPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8Mzt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztrJChufDAsMCwxMik7
dT1wO2VqKG8saCk7aD1vfDA7bz1jW2g+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJd
PTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNd
fDApLTF8MDt2PWNbbys4Pj4yXXwwO2Rve2lmKChjW28rMTI+PjJdfDApLXY+PjI+Pj4wPmw+Pj4w
KXt3PWNbdisobDw8Mik+PjJdfDA7aWYoKHd8MCk9PTApe2JyZWFrfXg9dzt5PW18MDt6PWNbKGNb
dz4+Ml18MCkrNDg+PjJdfDA7Y2FbeiYxNV0oeCw5NzQ0LDk3NzAseSl8MDt4PWNbaD4+Ml18MDtk
eih4KXwwO2skKHV8MCwwLDEyKTt4PXA7ZFIocCwxMCwwKTtpZigoYVt1XSYxKT09MCl7ej14KzF8
MDtBPXo7Qj16O0M9cCs4fDB9ZWxzZXt6PXArOHwwO0E9Y1t6Pj4yXXwwO0I9eCsxfDA7Qz16fWNb
cT4+Ml09QTt6PXJ8MDtjW3M+PjJdPXo7Y1t0Pj4yXT0wO3g9ZnwwO3c9Z3wwO0Q9cHwwO0U9cCs0
fDA7Rj1BO0c9Y1t4Pj4yXXwwO0wxMzIzOndoaWxlKDEpe2Rve2lmKChHfDApPT0wKXtIPTB9ZWxz
ZXtJPWNbRysxMj4+Ml18MDtpZigoSXwwKT09KGNbRysxNj4+Ml18MCkpe0o9YjBbY1soY1tHPj4y
XXwwKSszNj4+Ml0mMTI3XShHKXwwfWVsc2V7Sj1jW0k+PjJdfDB9aWYoKEp8MCkhPS0xKXtIPUc7
YnJlYWt9Y1t4Pj4yXT0wO0g9MH19d2hpbGUoMCk7ST0oSHwwKT09MDtLPWNbdz4+Ml18MDtkb3tp
ZigoS3wwKT09MCl7TD0xMDczfWVsc2V7TT1jW0srMTI+PjJdfDA7aWYoKE18MCk9PShjW0srMTY+
PjJdfDApKXtOPWIwW2NbKGNbSz4+Ml18MCkrMzY+PjJdJjEyN10oSyl8MH1lbHNle049Y1tNPj4y
XXwwfWlmKChOfDApPT0tMSl7Y1t3Pj4yXT0wO0w9MTA3MzticmVha31lbHNle2lmKEleKEt8MCk9
PTApe2JyZWFrfWVsc2V7Tz1GO2JyZWFrIEwxMzIzfX19fXdoaWxlKDApO2lmKChMfDApPT0xMDcz
KXtMPTA7aWYoSSl7Tz1GO2JyZWFrfX1LPWRbdV18MDtNPShLJjF8MCk9PTA7aWYoKChjW3E+PjJd
fDApLUZ8MCk9PSgoTT9LPj4+MTpjW0U+PjJdfDApfDApKXtpZihNKXtQPUs+Pj4xO1E9Sz4+PjF9
ZWxzZXtLPWNbRT4+Ml18MDtQPUs7UT1LfWRSKHAsUDw8MSwwKTtpZigoYVt1XSYxKT09MCl7Uj0x
MH1lbHNle1I9KGNbRD4+Ml0mLTIpLTF8MH1kUihwLFIsMCk7aWYoKGFbdV0mMSk9PTApe1M9Qn1l
bHNle1M9Y1tDPj4yXXwwfWNbcT4+Ml09UytRO1Q9U31lbHNle1Q9Rn1LPUgrMTJ8MDtNPWNbSz4+
Ml18MDtVPUgrMTZ8MDtpZigoTXwwKT09KGNbVT4+Ml18MCkpe1Y9YjBbY1soY1tIPj4yXXwwKSsz
Nj4+Ml0mMTI3XShIKXwwfWVsc2V7Vj1jW00+PjJdfDB9aWYoKGZVKFYsMTYsVCxxLHQsMCxuLHos
cyx5KXwwKSE9MCl7Tz1UO2JyZWFrfU09Y1tLPj4yXXwwO2lmKChNfDApPT0oY1tVPj4yXXwwKSl7
VT1jWyhjW0g+PjJdfDApKzQwPj4yXXwwO2IwW1UmMTI3XShIKXwwO0Y9VDtHPUg7Y29udGludWV9
ZWxzZXtjW0s+PjJdPU0rNDtGPVQ7Rz1IO2NvbnRpbnVlfX1hW08rM3wwXT0wO2Rve2lmKChhWzE2
MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7Rz1mUihPLGNbMjk1OF18MCwxMzIwLChGPWksaT1pKzh8MCxjW0Y+PjJd
PWssRil8MCl8MDtpPUY7aWYoKEd8MCkhPTEpe2Nbaj4+Ml09NH1HPWNbeD4+Ml18MDtkb3tpZigo
R3wwKT09MCl7Vz0wfWVsc2V7Rj1jW0crMTI+PjJdfDA7aWYoKEZ8MCk9PShjW0crMTY+PjJdfDAp
KXtYPWIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MH1lbHNle1g9Y1tGPj4yXXwwfWlm
KChYfDApIT0tMSl7Vz1HO2JyZWFrfWNbeD4+Ml09MDtXPTB9fXdoaWxlKDApO3g9KFd8MCk9PTA7
Rz1jW3c+PjJdfDA7ZG97aWYoKEd8MCk9PTApe0w9MTExOH1lbHNle0Y9Y1tHKzEyPj4yXXwwO2lm
KChGfDApPT0oY1tHKzE2Pj4yXXwwKSl7WT1iMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcp
fDB9ZWxzZXtZPWNbRj4+Ml18MH1pZigoWXwwKT09LTEpe2Nbdz4+Ml09MDtMPTExMTg7YnJlYWt9
aWYoISh4XihHfDApPT0wKSl7YnJlYWt9Wj1ifDA7Y1taPj4yXT1XO2RQKHApO2RQKG4pO2k9ZTty
ZXR1cm59fXdoaWxlKDApO2Rve2lmKChMfDApPT0xMTE4KXtpZih4KXticmVha31aPWJ8MDtjW1o+
PjJdPVc7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7
Wj1ifDA7Y1taPj4yXT1XO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8
MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGY4KGIsZCxlLGYsZyxoKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSs4MHwwO2o9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8
MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8MDtwPWQrNzJ8MDtxPWp8MDthW3FdPWFbMjM4NF18
MDthW3ErMXwwXT1hWzIzODV8MF18MDthW3ErMnwwXT1hWzIzODZ8MF18MDthW3ErM3wwXT1hWzIz
ODd8MF18MDthW3ErNHwwXT1hWzIzODh8MF18MDthW3ErNXwwXT1hWzIzODl8MF18MDtyPWorMXww
O3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1yfWVsc2V7YVtyXT00Mzt1
PWorMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4
O3U9disxfDA7TDE0MTA6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9
O2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwxNDEwfWVsc2V7YVt1
XT04ODticmVhayBMMTQxMH1icmVha307ZGVmYXVsdDp7YVt1XT0xMDB9fX13aGlsZSgwKTt1PWt8
MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1
OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwxMixjWzI5NThdfDAscSwocT1pLGk9
aSs4fDAsY1txPj4yXT1oLHEpfDApfDA7aT1xO3E9ayt0fDA7TDE0MjM6ZG97c3dpdGNoKGNbcz4+
Ml0mMTc2fDApe2Nhc2UgMzI6e3c9cTticmVha307Y2FzZSAxNjp7aD1hW3VdfDA7c3dpdGNoKGg8
PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWsrMXwwO2JyZWFrIEwxNDIzO2JyZWFrfTtkZWZh
dWx0Ont9fWlmKCEoKHR8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7eD0xMTQ3O2JyZWFrIEwxNDIzfXN3
aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xMTQ3
O2JyZWFrIEwxNDIzfX13PWsrMnwwO2JyZWFrfTtkZWZhdWx0Ont4PTExNDd9fX13aGlsZSgwKTtp
ZigoeHwwKT09MTE0Nyl7dz11fXg9bHwwO2VqKG8sZik7Z2ModSx3LHEseCxtLG4sbyk7ZHooY1tv
Pj4yXXwwKXwwO2NbcD4+Ml09Y1tlPj4yXTtmOShiLHAseCxjW20+PjJdfDAsY1tuPj4yXXwwLGYs
Zyk7aT1kO3JldHVybn1mdW5jdGlvbiBmOShiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MDtrPWk7aT1pKzE2fDA7bD1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1ts
Pj4yXTtsPWt8MDttPWR8MDtkPWNbbT4+Ml18MDtpZigoZHwwKT09MCl7Y1tiPj4yXT0wO2k9azty
ZXR1cm59bj1nO2c9ZTtvPW4tZ3wwO3A9aCsxMnwwO2g9Y1twPj4yXXwwO3E9KGh8MCk+KG98MCk/
aC1vfDA6MDtvPWY7aD1vLWd8MDtkb3tpZigoaHwwKT4wKXtpZigoYjFbY1soY1tkPj4yXXwwKSs0
OD4+Ml0mNjNdKGQsZSxoKXwwKT09KGh8MCkpe2JyZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7aT1r
O3JldHVybn19d2hpbGUoMCk7ZG97aWYoKHF8MCk+MCl7ZF8obCxxLGopO2lmKChhW2xdJjEpPT0w
KXtyPWwrMXwwfWVsc2V7cj1jW2wrOD4+Ml18MH1pZigoYjFbY1soY1tkPj4yXXwwKSs0OD4+Ml0m
NjNdKGQscixxKXwwKT09KHF8MCkpe2RQKGwpO2JyZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7ZFAo
bCk7aT1rO3JldHVybn19d2hpbGUoMCk7bD1uLW98MDtkb3tpZigobHwwKT4wKXtpZigoYjFbY1so
Y1tkPj4yXXwwKSs0OD4+Ml0mNjNdKGQsZixsKXwwKT09KGx8MCkpe2JyZWFrfWNbbT4+Ml09MDtj
W2I+PjJdPTA7aT1rO3JldHVybn19d2hpbGUoMCk7Y1twPj4yXT0wO2NbYj4+Ml09ZDtpPWs7cmV0
dXJufWZ1bmN0aW9uIGdhKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wO2o9aTtpPWkrNDh8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9aisxNnwwO209aisyNHwwO249aiszMnwwO2lmKChj
W2YrND4+Ml0mMXwwKT09MCl7bz1jWyhjW2Q+PjJdfDApKzI0Pj4yXXwwO2NbbD4+Ml09Y1tlPj4y
XTtiOVtvJjMxXShiLGQsbCxmLGcsaCYxKTtpPWo7cmV0dXJufWVqKG0sZik7Zj1tfDA7bT1jW2Y+
PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW2s+PjJdPTE1MzEyO2Nbays0Pj4yXT0xMjtjW2sr
OD4+Ml09MDtkVygxNTMxMixrLDk2KX1rPShjWzM4MjldfDApLTF8MDtnPWNbbSs4Pj4yXXwwO2Rv
e2lmKChjW20rMTI+PjJdfDApLWc+PjI+Pj4wPms+Pj4wKXtsPWNbZysoazw8Mik+PjJdfDA7aWYo
KGx8MCk9PTApe2JyZWFrfWQ9bDtvPWNbZj4+Ml18MDtkeihvKXwwO289Y1tsPj4yXXwwO2lmKGgp
e2JaW2NbbysyND4+Ml0mMTI3XShuLGQpfWVsc2V7YlpbY1tvKzI4Pj4yXSYxMjddKG4sZCl9ZD1u
O289bjtsPWFbb118MDtpZigobCYxKT09MCl7cD1kKzF8MDtxPXA7cj1wO3M9bis4fDB9ZWxzZXtw
PW4rOHwwO3E9Y1twPj4yXXwwO3I9ZCsxfDA7cz1wfXA9ZXwwO2Q9bis0fDA7dD1xO3U9bDt3aGls
ZSgxKXtpZigodSYxKT09MCl7dj1yfWVsc2V7dj1jW3M+PjJdfDB9bD11JjI1NTtpZigodHwwKT09
KHYrKChsJjF8MCk9PTA/bD4+PjE6Y1tkPj4yXXwwKXwwKSl7YnJlYWt9bD1hW3RdfDA7dz1jW3A+
PjJdfDA7ZG97aWYoKHd8MCkhPTApe3g9dysyNHwwO3k9Y1t4Pj4yXXwwO2lmKCh5fDApIT0oY1t3
KzI4Pj4yXXwwKSl7Y1t4Pj4yXT15KzE7YVt5XT1sO2JyZWFrfWlmKChiX1tjWyhjW3c+PjJdfDAp
KzUyPj4yXSYzMV0odyxsJjI1NSl8MCkhPS0xKXticmVha31jW3A+PjJdPTB9fXdoaWxlKDApO3Q9
dCsxfDA7dT1hW29dfDB9Y1tiPj4yXT1jW3A+PjJdO2RQKG4pO2k9ajtyZXR1cm59fXdoaWxlKDAp
O2o9Yk8oNCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdiKGEsYixkLGUsZil7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wO2c9aTtpPWkrMTZ8
MDtoPWd8MDtqPWg7Y1tqPj4yXT1mO2Nbais0Pj4yXT0wO2o9YkIoZHwwKXwwO2Q9YkMoYXwwLGJ8
MCxlfDAsaHwwKXwwO2lmKChqfDApPT0wKXtpPWc7cmV0dXJuIGR8MH1iQihqfDApfDA7aT1nO3Jl
dHVybiBkfDB9ZnVuY3Rpb24gZ2MoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wO2w9aTtpPWkrNDh8MDttPWx8MDtuPWwrMTZ8MDtvPWwrMzJ8MDtw
PWt8MDtrPWNbcD4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbbj4+Ml09MTU2OTY7Y1tuKzQ+
PjJdPTEyO2Nbbis4Pj4yXT0wO2RXKDE1Njk2LG4sOTYpfW49KGNbMzkyNV18MCktMXwwO3E9Y1tr
Kzg+PjJdfDA7aWYoKGNbaysxMj4+Ml18MCktcT4+Mj4+PjA8PW4+Pj4wKXtyPWJPKDQpfDA7cz1y
O2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9az1jW3ErKG48PDIpPj4yXXwwO2lmKChrfDApPT0wKXty
PWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9cj1rO3M9Y1twPj4yXXwwO2lmKChj
WzM4MjhdfDApIT0tMSl7Y1ttPj4yXT0xNTMxMjtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFco
MTUzMTIsbSw5Nil9bT0oY1szODI5XXwwKS0xfDA7cD1jW3MrOD4+Ml18MDtpZigoY1tzKzEyPj4y
XXwwKS1wPj4yPj4+MDw9bT4+PjApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0
KX1zPWNbcCsobTw8Mik+PjJdfDA7aWYoKHN8MCk9PTApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7Ymwo
dHwwLDgxNzYsMTM0KX10PXM7YlpbY1soY1tzPj4yXXwwKSsyMD4+Ml0mMTI3XShvLHQpO3U9bztt
PW87cD1kW21dfDA7aWYoKHAmMXwwKT09MCl7dj1wPj4+MX1lbHNle3Y9Y1tvKzQ+PjJdfDB9ZG97
aWYoKHZ8MCk9PTApe3A9Y1soY1trPj4yXXwwKSszMj4+Ml18MDtjYVtwJjE1XShyLGIsZixnKXww
O2Nbaj4+Ml09ZysoZi1iKX1lbHNle2Nbaj4+Ml09ZztwPWFbYl18MDtzd2l0Y2gocDw8MjQ+PjI0
KXtjYXNlIDQ1OmNhc2UgNDM6e249Yl9bY1soY1trPj4yXXwwKSsyOD4+Ml0mMzFdKHIscCl8MDtw
PWNbaj4+Ml18MDtjW2o+PjJdPXArMTthW3BdPW47dz1iKzF8MDticmVha307ZGVmYXVsdDp7dz1i
fX1MMTUzMzpkb3tpZigoZi13fDApPjEpe2lmKChhW3ddfDApIT00OCl7eD13O2JyZWFrfW49dysx
fDA7c3dpdGNoKGFbbl18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9dzti
cmVhayBMMTUzM319cD1rO3E9Yl9bY1soY1twPj4yXXwwKSsyOD4+Ml0mMzFdKHIsNDgpfDA7eT1j
W2o+PjJdfDA7Y1tqPj4yXT15KzE7YVt5XT1xO3E9Yl9bY1soY1twPj4yXXwwKSsyOD4+Ml0mMzFd
KHIsYVtuXXwwKXwwO249Y1tqPj4yXXwwO2Nbaj4+Ml09bisxO2Fbbl09cTt4PXcrMnwwfWVsc2V7
eD13fX13aGlsZSgwKTtkb3tpZigoeHwwKSE9KGZ8MCkpe3E9Zi0xfDA7aWYoeD4+PjA8cT4+PjAp
e3o9eDtBPXF9ZWxzZXticmVha31kb3txPWFbel18MDthW3pdPWFbQV18MDthW0FdPXE7ej16KzF8
MDtBPUEtMXwwO313aGlsZSh6Pj4+MDxBPj4+MCl9fXdoaWxlKDApO3E9YjBbY1soY1tzPj4yXXww
KSsxNj4+Ml0mMTI3XSh0KXwwO2lmKHg+Pj4wPGY+Pj4wKXtuPXUrMXwwO3A9azt5PW8rNHwwO0I9
bys4fDA7Qz0wO0Q9MDtFPXg7d2hpbGUoMSl7Rj0oYVttXSYxKT09MDtkb3tpZigoYVsoRj9uOmNb
Qj4+Ml18MCkrRHwwXXwwKT09MCl7Rz1EO0g9Q31lbHNle2lmKChDfDApIT0oYVsoRj9uOmNbQj4+
Ml18MCkrRHwwXXwwKSl7Rz1EO0g9QzticmVha31JPWNbaj4+Ml18MDtjW2o+PjJdPUkrMTthW0ld
PXE7ST1kW21dfDA7Rz0oRD4+PjA8KCgoSSYxfDApPT0wP0k+Pj4xOmNbeT4+Ml18MCktMXwwKT4+
PjApK0R8MDtIPTB9fXdoaWxlKDApO0Y9Yl9bY1soY1twPj4yXXwwKSsyOD4+Ml0mMzFdKHIsYVtF
XXwwKXwwO0k9Y1tqPj4yXXwwO2Nbaj4+Ml09SSsxO2FbSV09RjtGPUUrMXwwO2lmKEY+Pj4wPGY+
Pj4wKXtDPUgrMXwwO0Q9RztFPUZ9ZWxzZXticmVha319fUU9ZysoeC1iKXwwO0Q9Y1tqPj4yXXww
O2lmKChFfDApPT0oRHwwKSl7YnJlYWt9Qz1ELTF8MDtpZihFPj4+MDxDPj4+MCl7Sj1FO0s9Q31l
bHNle2JyZWFrfWRve0M9YVtKXXwwO2FbSl09YVtLXXwwO2FbS109QztKPUorMXwwO0s9Sy0xfDA7
fXdoaWxlKEo+Pj4wPEs+Pj4wKX19d2hpbGUoMCk7aWYoKGV8MCk9PShmfDApKXtMPWNbaj4+Ml18
MDtjW2g+PjJdPUw7ZFAobyk7aT1sO3JldHVybn1lbHNle0w9ZysoZS1iKXwwO2NbaD4+Ml09TDtk
UChvKTtpPWw7cmV0dXJufX1mdW5jdGlvbiBnZChiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtl
PWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzExMnwwO2s9ZTtlPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrMzJ8MDtu
PWQrODB8MDtvPWQrODh8MDtwPWQrOTZ8MDtxPWQrMTA0fDA7Y1trPj4yXT0zNztjW2srND4+Ml09
MDtyPWs7az1yKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9a31l
bHNle2Fba109NDM7dT1yKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11
KzF8MH1hW3ZdPTEwODthW3YrMXwwXT0xMDg7dT12KzJ8MDtMMTU3NDpkb3tzd2l0Y2godCY3NHww
KXtjYXNlIDY0OnthW3VdPTExMTticmVha307Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1
XT0xMjA7YnJlYWsgTDE1NzR9ZWxzZXthW3VdPTg4O2JyZWFrIEwxNTc0fWJyZWFrfTtkZWZhdWx0
OnthW3VdPTEwMH19fXdoaWxlKDApO3U9bHwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJj
KDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dD1n
Yih1LDIyLGNbMjk1OF18MCxyLChyPWksaT1pKzE2fDAsY1tyPj4yXT1oLGNbcis4Pj4yXT1qLHIp
fDApfDA7aT1yO3I9bCt0fDA7TDE1ODc6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMTY6
e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7dz1sKzF8MDticmVh
ayBMMTU4NzticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmajw8MjQ+PjI0PT00OCkpe3g9
MTI4NjticmVhayBMMTU4N31zd2l0Y2goYVtsKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJl
YWt9O2RlZmF1bHQ6e3g9MTI4NjticmVhayBMMTU4N319dz1sKzJ8MDticmVha307Y2FzZSAzMjp7
dz1yO2JyZWFrfTtkZWZhdWx0Ont4PTEyODZ9fX13aGlsZSgwKTtpZigoeHwwKT09MTI4Nil7dz11
fXg9bXwwO2VqKHAsZik7Z2ModSx3LHIseCxuLG8scCk7ZHooY1twPj4yXXwwKXwwO2NbcT4+Ml09
Y1tlPj4yXTtmOShiLHEseCxjW24+PjJdfDAsY1tvPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5j
dGlvbiBnZShiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wO2Q9aTtpPWkrODB8MDtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1j
W2o+PjJdO2o9ZHwwO2s9ZCs4fDA7bD1kKzI0fDA7bT1kKzQ4fDA7bj1kKzU2fDA7bz1kKzY0fDA7
cD1kKzcyfDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8MF09YVsyMzg1fDBdfDA7YVtxKzJ8
MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7YVtxKzR8MF09YVsyMzg4fDBdfDA7
YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIw
NDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1l
bHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXwwO0wxNjA1OmRve3N3aXRjaCh0Jjc0
fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXth
W3VdPTEyMDticmVhayBMMTYwNX1lbHNle2FbdV09ODg7YnJlYWsgTDE2MDV9YnJlYWt9O2RlZmF1
bHQ6e2FbdV09MTE3fX19d2hpbGUoMCk7dT1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigo
YmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0
PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNbcT4+Ml09aCxxKXwwKXwwO2k9cTtx
PWsrdHwwO0wxNjE4OmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDMyOnt3PXE7YnJlYWt9
O2Nhc2UgMTY6e2g9YVt1XXwwO3N3aXRjaChoPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7dz1r
KzF8MDticmVhayBMMTYxODticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmaDw8MjQ+PjI0
PT00OCkpe3g9MTMxMTticmVhayBMMTYxOH1zd2l0Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6Y2Fz
ZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTMxMTticmVhayBMMTYxOH19dz1rKzJ8MDticmVha307
ZGVmYXVsdDp7eD0xMzExfX19d2hpbGUoMCk7aWYoKHh8MCk9PTEzMTEpe3c9dX14PWx8MDtlaihv
LGYpO2djKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8MDtjW3A+PjJdPWNbZT4+Ml07Zjko
YixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2YoYixk
LGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFy
IGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7
ZD1pO2k9aSsxMTJ8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJd
O2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7bj1kKzgwfDA7bz1kKzg4fDA7cD1kKzk2fDA7cT1kKzEw
NHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7cj1rO2s9cisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18
MDtpZigodCYyMDQ4fDApPT0wKXt1PWt9ZWxzZXthW2tdPTQzO3U9cisyfDB9aWYoKHQmNTEyfDAp
PT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7YVt2KzF8MF09MTA4O3U9disy
fDA7TDE2MzY6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1
XT0xMjA7YnJlYWsgTDE2MzZ9ZWxzZXthW3VdPTg4O2JyZWFrIEwxNjM2fWJyZWFrfTtjYXNlIDY0
OnthW3VdPTExMTticmVha307ZGVmYXVsdDp7YVt1XT0xMTd9fX13aGlsZSgwKTt1PWx8MDtkb3tp
ZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMo
MSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwyMyxjWzI5NThdfDAsciwocj1pLGk9aSsxNnww
LGNbcj4+Ml09aCxjW3IrOD4+Ml09aixyKXwwKXwwO2k9cjtyPWwrdHwwO0wxNjQ5OmRve3N3aXRj
aChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2OntqPWFbdV18MDtzd2l0Y2goajw8MjQ+PjI0KXtjYXNl
IDQ1OmNhc2UgNDM6e3c9bCsxfDA7YnJlYWsgTDE2NDk7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgo
dHwwKT4xJmo8PDI0Pj4yND09NDgpKXt4PTEzMzY7YnJlYWsgTDE2NDl9c3dpdGNoKGFbbCsxfDBd
fDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTEzMzY7YnJlYWsgTDE2NDl9
fXc9bCsyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9cjticmVha307ZGVmYXVsdDp7eD0xMzM2fX19d2hp
bGUoMCk7aWYoKHh8MCk9PTEzMzYpe3c9dX14PW18MDtlaihwLGYpO2djKHUsdyxyLHgsbixvLHAp
O2R6KGNbcD4+Ml18MCl8MDtjW3E+PjJdPWNbZT4+Ml07ZjkoYixxLHgsY1tuPj4yXXwwLGNbbz4+
Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2coYixkLGUsZixnLGope2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9K2o7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9
MCxHPTAsSD0wLEk9MCxKPTA7ZD1pO2k9aSsxNTJ8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzQwfDA7bj1kKzQ4fDA7bz1kKzEx
MnwwO3A9ZCsxMjB8MDtxPWQrMTI4fDA7cj1kKzEzNnwwO3M9ZCsxNDR8MDtjW2s+PjJdPTM3O2Nb
ays0Pj4yXT0wO3Q9aztrPXQrMXwwO3U9Zis0fDA7dj1jW3U+PjJdfDA7aWYoKHYmMjA0OHwwKT09
MCl7dz1rfWVsc2V7YVtrXT00Mzt3PXQrMnwwfWlmKCh2JjEwMjR8MCk9PTApe3g9d31lbHNle2Fb
d109MzU7eD13KzF8MH13PXYmMjYwO2s9dj4+PjE0O0wxNjY3OmRve2lmKCh3fDApPT0yNjApe2lm
KChrJjF8MCk9PTApe2FbeF09OTc7eT0wO2JyZWFrfWVsc2V7YVt4XT02NTt5PTA7YnJlYWt9fWVs
c2V7YVt4XT00Njt2PXgrMnwwO2FbeCsxfDBdPTQyO3N3aXRjaCh3fDApe2Nhc2UgNDp7aWYoKGsm
MXwwKT09MCl7YVt2XT0xMDI7eT0xO2JyZWFrIEwxNjY3fWVsc2V7YVt2XT03MDt5PTE7YnJlYWsg
TDE2Njd9YnJlYWt9O2Nhc2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsg
TDE2Njd9ZWxzZXthW3ZdPTY5O3k9MTticmVhayBMMTY2N31icmVha307ZGVmYXVsdDp7aWYoKGsm
MXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwxNjY3fWVsc2V7YVt2XT03MTt5PTE7YnJlYWsg
TDE2Njd9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsxNjI2NF18MCk9PTAp
e2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxl
KDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJd
PWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3PWdiKGssMzAsbCx0
LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lmKChBfDApPjI5KXt3
PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVh
a31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1syOTU4XXwwLHQsKHo9
aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPWx9
ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0
NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJd
PWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8
MCkhPTApe0M9QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxz
ZXtDPUE7RD0wO0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wxNzE2OmRve3N3aXRjaChj
W3U+PjJdJjE3NnwwKXtjYXNlIDE2OntCPWFbRV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtjYXNlIDQ1
OmNhc2UgNDM6e0Y9RSsxfDA7YnJlYWsgTDE3MTY7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgoQ3ww
KT4xJkI8PDI0Pj4yND09NDgpKXtHPTEzOTI7YnJlYWsgTDE3MTZ9c3dpdGNoKGFbRSsxfDBdfDAp
e2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntHPTEzOTI7YnJlYWsgTDE3MTZ9fUY9
RSsyfDA7YnJlYWt9O2Nhc2UgMzI6e0Y9QTticmVha307ZGVmYXVsdDp7Rz0xMzkyfX19d2hpbGUo
MCk7aWYoKEd8MCk9PTEzOTIpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9
ZWxzZXtHPWtKKEM8PDEpfDA7aWYoKEd8MCkhPTApe0g9RztJPUc7Sj1FO2JyZWFrfWtYKCk7SD0w
O0k9MDtKPWNbbT4+Ml18MH19d2hpbGUoMCk7ZWoocSxmKTtnaihKLEYsQSxILG8scCxxKTtkeihj
W3E+PjJdfDApfDA7cT1lfDA7Y1tzPj4yXT1jW3E+PjJdO2Y5KHIscyxILGNbbz4+Ml18MCxjW3A+
PjJdfDAsZixnKTtnPWNbcj4+Ml18MDtjW3E+PjJdPWc7Y1tiPj4yXT1nO2lmKChJfDApIT0wKXtr
SyhJKX1pZigoRHwwKT09MCl7aT1kO3JldHVybn1rSyhEKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdo
KGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtmPWk7aT1p
KzE2fDA7Zz1mfDA7aD1nO2NbaD4+Ml09ZTtjW2grND4+Ml09MDtoPWJCKGJ8MCl8MDtiPWJRKGF8
MCxkfDAsZ3wwKXwwO2lmKChofDApPT0wKXtpPWY7cmV0dXJuIGJ8MH1iQihofDApfDA7aT1mO3Jl
dHVybiBifDB9ZnVuY3Rpb24gZ2koYixkLGUsZixnLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2o9K2o7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9
MCxKPTA7ZD1pO2k9aSsxNTJ8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1j
W2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzQwfDA7bj1kKzQ4fDA7bz1kKzExMnwwO3A9ZCsxMjB8
MDtxPWQrMTI4fDA7cj1kKzEzNnwwO3M9ZCsxNDR8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3Q9
aztrPXQrMXwwO3U9Zis0fDA7dj1jW3U+PjJdfDA7aWYoKHYmMjA0OHwwKT09MCl7dz1rfWVsc2V7
YVtrXT00Mzt3PXQrMnwwfWlmKCh2JjEwMjR8MCk9PTApe3g9d31lbHNle2Fbd109MzU7eD13KzF8
MH13PXYmMjYwO2s9dj4+PjE0O0wxNzU0OmRve2lmKCh3fDApPT0yNjApe2FbeF09NzY7dj14KzF8
MDtpZigoayYxfDApPT0wKXthW3ZdPTk3O3k9MDticmVha31lbHNle2Fbdl09NjU7eT0wO2JyZWFr
fX1lbHNle2FbeF09NDY7YVt4KzF8MF09NDI7YVt4KzJ8MF09NzY7dj14KzN8MDtzd2l0Y2god3ww
KXtjYXNlIDQ6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAyO3k9MTticmVhayBMMTc1NH1lbHNle2Fb
dl09NzA7eT0xO2JyZWFrIEwxNzU0fWJyZWFrfTtjYXNlIDI1Njp7aWYoKGsmMXwwKT09MCl7YVt2
XT0xMDE7eT0xO2JyZWFrIEwxNzU0fWVsc2V7YVt2XT02OTt5PTE7YnJlYWsgTDE3NTR9YnJlYWt9
O2RlZmF1bHQ6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAzO3k9MTticmVhayBMMTc1NH1lbHNle2Fb
dl09NzE7eT0xO2JyZWFrIEwxNzU0fX19fX13aGlsZSgwKTtrPWx8MDtjW20+PjJdPWs7ZG97aWYo
KGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEs
MTM0NCwwKXwwfX13aGlsZSgwKTtsPWNbMjk1OF18MDtpZih5KXt3PWdiKGssMzAsbCx0LCh6PWks
aT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7QT13fWVs
c2V7dz1nYihrLDMwLGwsdCwoej1pLGk9aSs4fDAsaFt6Pj4zXT1qLHopfDApfDA7aT16O0E9d31k
b3tpZigoQXwwKT4yOSl7dz0oYVsxNjI2NF18MCk9PTA7aWYoeSl7ZG97aWYodyl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1naCht
LGNbMjk1OF18MCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWos
eil8MCl8MDtpPXo7Qj1sfWVsc2V7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9
Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dz1naChtLGNbMjk1OF18MCx0LCh6PWks
aT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7Qj13fXc9Y1ttPj4yXXwwO2lmKCh3fDApIT0w
KXtDPUI7RD13O0U9dzticmVha31rWCgpO3c9Y1ttPj4yXXwwO0M9QjtEPXc7RT13fWVsc2V7Qz1B
O0Q9MDtFPWNbbT4+Ml18MH19d2hpbGUoMCk7QT1FK0N8MDtMMTgwMzpkb3tzd2l0Y2goY1t1Pj4y
XSYxNzZ8MCl7Y2FzZSAzMjp7Rj1BO2JyZWFrfTtjYXNlIDE2OntCPWFbRV18MDtzd2l0Y2goQjw8
MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e0Y9RSsxfDA7YnJlYWsgTDE4MDM7YnJlYWt9O2RlZmF1
bHQ6e319aWYoISgoQ3wwKT4xJkI8PDI0Pj4yND09NDgpKXtHPTE0Nzc7YnJlYWsgTDE4MDN9c3dp
dGNoKGFbRSsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntHPTE0Nzc7
YnJlYWsgTDE4MDN9fUY9RSsyfDA7YnJlYWt9O2RlZmF1bHQ6e0c9MTQ3N319fXdoaWxlKDApO2lm
KChHfDApPT0xNDc3KXtGPUV9ZG97aWYoKEV8MCk9PShrfDApKXtIPW58MDtJPTA7Sj1rfWVsc2V7
Rz1rSihDPDwxKXwwO2lmKChHfDApIT0wKXtIPUc7ST1HO0o9RTticmVha31rWCgpO0g9MDtJPTA7
Sj1jW20+PjJdfDB9fXdoaWxlKDApO2VqKHEsZik7Z2ooSixGLEEsSCxvLHAscSk7ZHooY1txPj4y
XXwwKXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4yXTtmOShyLHMsSCxjW28+PjJdfDAsY1twPj4yXXww
LGYsZyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09ZztpZigoSXwwKSE9MCl7a0soSSl9
aWYoKER8MCk9PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3JldHVybn1mdW5jdGlvbiBnaihiLGUs
ZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIg
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49
MDtsPWk7aT1pKzQ4fDA7bT1sfDA7bj1sKzE2fDA7bz1sKzMyfDA7cD1rfDA7az1jW3A+PjJdfDA7
aWYoKGNbMzkyNF18MCkhPS0xKXtjW24+PjJdPTE1Njk2O2Nbbis0Pj4yXT0xMjtjW24rOD4+Ml09
MDtkVygxNTY5NixuLDk2KX1uPShjWzM5MjVdfDApLTF8MDtxPWNbays4Pj4yXXwwO2lmKChjW2sr
MTI+PjJdfDApLXE+PjI+Pj4wPD1uPj4+MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3
NiwxMzQpfWs9Y1txKyhuPDwyKT4+Ml18MDtpZigoa3wwKT09MCl7cj1iTyg0KXwwO3M9cjtrcShz
KTtibChyfDAsODE3NiwxMzQpfXI9aztzPWNbcD4+Ml18MDtpZigoY1szODI4XXwwKSE9LTEpe2Nb
bT4+Ml09MTUzMTI7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1MzEyLG0sOTYpfW09KGNb
MzgyOV18MCktMXwwO3A9Y1tzKzg+PjJdfDA7aWYoKGNbcysxMj4+Ml18MCktcD4+Mj4+PjA8PW0+
Pj4wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9cz1jW3ArKG08PDIpPj4y
XXwwO2lmKChzfDApPT0wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9dD1z
O2JaW2NbKGNbcz4+Ml18MCkrMjA+PjJdJjEyN10obyx0KTtjW2o+PjJdPWc7dT1hW2JdfDA7c3dp
dGNoKHU8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnttPWJfW2NbKGNbaz4+Ml18MCkrMjg+PjJd
JjMxXShyLHUpfDA7dT1jW2o+PjJdfDA7Y1tqPj4yXT11KzE7YVt1XT1tO3Y9YisxfDA7YnJlYWt9
O2RlZmF1bHQ6e3Y9Yn19bT1mO0wxODUxOmRve2lmKChtLXZ8MCk+MSl7aWYoKGFbdl18MCkhPTQ4
KXt3PXY7eD0xNTMyO2JyZWFrfXU9disxfDA7c3dpdGNoKGFbdV18MCl7Y2FzZSAxMjA6Y2FzZSA4
ODp7YnJlYWt9O2RlZmF1bHQ6e3c9djt4PTE1MzI7YnJlYWsgTDE4NTF9fXA9aztuPWJfW2NbKGNb
cD4+Ml18MCkrMjg+PjJdJjMxXShyLDQ4KXwwO3E9Y1tqPj4yXXwwO2Nbaj4+Ml09cSsxO2FbcV09
bjtuPXYrMnwwO3E9Yl9bY1soY1twPj4yXXwwKSsyOD4+Ml0mMzFdKHIsYVt1XXwwKXwwO3U9Y1tq
Pj4yXXwwO2Nbaj4+Ml09dSsxO2FbdV09cTtxPW47d2hpbGUoMSl7aWYocT4+PjA+PWY+Pj4wKXt5
PXE7ej1uO2JyZWFrIEwxODUxfXU9YVtxXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJj
KDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYo
KGEzKHU8PDI0Pj4yNHwwLGNbMjk1OF18MCl8MCk9PTApe3k9cTt6PW47YnJlYWt9ZWxzZXtxPXEr
MXwwfX19ZWxzZXt3PXY7eD0xNTMyfX13aGlsZSgwKTtMMTg2Njpkb3tpZigoeHwwKT09MTUzMil7
d2hpbGUoMSl7eD0wO2lmKHc+Pj4wPj1mPj4+MCl7eT13O3o9djticmVhayBMMTg2Nn1xPWFbd118
MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1
OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChiSChxPDwyND4+MjR8MCxjWzI5NThdfDAp
fDApPT0wKXt5PXc7ej12O2JyZWFrfWVsc2V7dz13KzF8MDt4PTE1MzJ9fX19d2hpbGUoMCk7eD1v
O3c9bzt2PWRbd118MDtpZigodiYxfDApPT0wKXtBPXY+Pj4xfWVsc2V7QT1jW28rND4+Ml18MH1k
b3tpZigoQXwwKT09MCl7dj1jW2o+PjJdfDA7dT1jWyhjW2s+PjJdfDApKzMyPj4yXXwwO2NhW3Um
MTVdKHIseix5LHYpfDA7Y1tqPj4yXT0oY1tqPj4yXXwwKSsoeS16KX1lbHNle2Rve2lmKCh6fDAp
IT0oeXwwKSl7dj15LTF8MDtpZih6Pj4+MDx2Pj4+MCl7Qj16O0M9dn1lbHNle2JyZWFrfWRve3Y9
YVtCXXwwO2FbQl09YVtDXXwwO2FbQ109djtCPUIrMXwwO0M9Qy0xfDA7fXdoaWxlKEI+Pj4wPEM+
Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjddKHQpfDA7aWYoej4+
PjA8eT4+PjApe3Y9eCsxfDA7dT1vKzR8MDtuPW8rOHwwO3A9aztEPTA7RT0wO0Y9ejt3aGlsZSgx
KXtHPShhW3ddJjEpPT0wO2Rve2lmKChhWyhHP3Y6Y1tuPj4yXXwwKStFfDBdfDApPjApe2lmKChE
fDApIT0oYVsoRz92OmNbbj4+Ml18MCkrRXwwXXwwKSl7SD1FO0k9RDticmVha31KPWNbaj4+Ml18
MDtjW2o+PjJdPUorMTthW0pdPXE7Sj1kW3ddfDA7SD0oRT4+PjA8KCgoSiYxfDApPT0wP0o+Pj4x
OmNbdT4+Ml18MCktMXwwKT4+PjApK0V8MDtJPTB9ZWxzZXtIPUU7ST1EfX13aGlsZSgwKTtHPWJf
W2NbKGNbcD4+Ml18MCkrMjg+PjJdJjMxXShyLGFbRl18MCl8MDtKPWNbaj4+Ml18MDtjW2o+PjJd
PUorMTthW0pdPUc7Rz1GKzF8MDtpZihHPj4+MDx5Pj4+MCl7RD1JKzF8MDtFPUg7Rj1HfWVsc2V7
YnJlYWt9fX1GPWcrKHotYil8MDtFPWNbaj4+Ml18MDtpZigoRnwwKT09KEV8MCkpe2JyZWFrfUQ9
RS0xfDA7aWYoRj4+PjA8RD4+PjApe0s9RjtMPUR9ZWxzZXticmVha31kb3tEPWFbS118MDthW0td
PWFbTF18MDthW0xdPUQ7Sz1LKzF8MDtMPUwtMXwwO313aGlsZShLPj4+MDxMPj4+MCl9fXdoaWxl
KDApO0wxOTA1OmRve2lmKHk+Pj4wPGY+Pj4wKXtMPWs7Sz15O3doaWxlKDEpe3o9YVtLXXwwO2lm
KHo8PDI0Pj4yND09NDYpe2JyZWFrfUg9Yl9bY1soY1tMPj4yXXwwKSsyOD4+Ml0mMzFdKHIseil8
MDt6PWNbaj4+Ml18MDtjW2o+PjJdPXorMTthW3pdPUg7SD1LKzF8MDtpZihIPj4+MDxmPj4+MCl7
Sz1IfWVsc2V7TT1IO2JyZWFrIEwxOTA1fX1MPWIwW2NbKGNbcz4+Ml18MCkrMTI+PjJdJjEyN10o
dCl8MDtIPWNbaj4+Ml18MDtjW2o+PjJdPUgrMTthW0hdPUw7TT1LKzF8MH1lbHNle009eX19d2hp
bGUoMCk7Y2FbY1soY1trPj4yXXwwKSszMj4+Ml0mMTVdKHIsTSxmLGNbaj4+Ml18MCl8MDtyPShj
W2o+PjJdfDApKyhtLU0pfDA7Y1tqPj4yXT1yO2lmKChlfDApPT0oZnwwKSl7Tj1yO2NbaD4+Ml09
TjtkUChvKTtpPWw7cmV0dXJufU49ZysoZS1iKXwwO2NbaD4+Ml09TjtkUChvKTtpPWw7cmV0dXJu
fWZ1bmN0aW9uIGdrKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdsKGEp
e2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGdtKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsxNDR8MDtqPWU7ZT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9ZHwwO2s9ZCs4fDA7bD1kKzI0fDA7
bT1kKzExMnwwO249ZCsxMjB8MDtvPWQrMTI4fDA7cD1kKzEzNnwwO3E9anwwO2FbcV09YVsyMzg0
XXwwO2FbcSsxfDBdPWFbMjM4NXwwXXwwO2FbcSsyfDBdPWFbMjM4NnwwXXwwO2FbcSszfDBdPWFb
MjM4N3wwXXwwO2FbcSs0fDBdPWFbMjM4OHwwXXwwO2FbcSs1fDBdPWFbMjM4OXwwXXwwO3I9aisx
fDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PXJ9ZWxzZXthW3JdPTQz
O3U9aisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0x
MDg7dT12KzF8MDtMMTkyODpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDY0OnthW3VdPTExMTticmVh
a307Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDE5Mjh9ZWxzZXth
W3VdPTg4O2JyZWFrIEwxOTI4fWJyZWFrfTtkZWZhdWx0OnthW3VdPTEwMH19fXdoaWxlKDApO3U9
a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1sy
OTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDEyLGNbMjk1OF18MCxxLChxPWks
aT1pKzh8MCxjW3E+PjJdPWgscSl8MCl8MDtpPXE7cT1rK3R8MDtMMTk0MTpkb3tzd2l0Y2goY1tz
Pj4yXSYxNzZ8MCl7Y2FzZSAzMjp7dz1xO2JyZWFrfTtjYXNlIDE2OntoPWFbdV18MDtzd2l0Y2go
aDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsgTDE5NDE7YnJlYWt9O2Rl
ZmF1bHQ6e319aWYoISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTE2MDA7YnJlYWsgTDE5NDF9
c3dpdGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE2
MDA7YnJlYWsgTDE5NDF9fXc9aysyfDA7YnJlYWt9O2RlZmF1bHQ6e3g9MTYwMH19fXdoaWxlKDAp
O2lmKCh4fDApPT0xNjAwKXt3PXV9eD1sfDA7ZWoobyxmKTtncCh1LHcscSx4LG0sbixvKTtkeihj
W28+PjJdfDApfDA7Y1twPj4yXT1jW2U+PjJdO2dxKGIscCx4LGNbbT4+Ml18MCxjW24+PjJdfDAs
ZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGduKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7ZD1pO2k9aSsxMDR8MDtqPWU7
ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9ZHwwO2s9ZCsyNHwwO2w9
ZCs0OHwwO209ZCs4OHwwO249ZCs5NnwwO289ZCsxNnwwO2Fbb109YVsyMzkyXXwwO2FbbysxfDBd
PWFbMjM5M3wwXXwwO2FbbysyfDBdPWFbMjM5NHwwXXwwO2FbbyszfDBdPWFbMjM5NXwwXXwwO2Fb
bys0fDBdPWFbMjM5NnwwXXwwO2Fbbys1fDBdPWFbMjM5N3wwXXwwO3A9a3wwO2Rve2lmKChhWzE2
MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7cT1nYihwLDIwLGNbMjk1OF18MCxvLChvPWksaT1pKzh8MCxjW28+PjJd
PWgsbyl8MCl8MDtpPW87bz1rK3F8MDtMMTk1ODpkb3tzd2l0Y2goY1tmKzQ+PjJdJjE3NnwwKXtj
YXNlIDE2OntoPWFbcF18MDtzd2l0Y2goaDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3I9aysx
fDA7YnJlYWsgTDE5NTg7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgocXwwKT4xJmg8PDI0Pj4yND09
NDgpKXtzPTE2MTU7YnJlYWsgTDE5NTh9c3dpdGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2Ug
ODg6e2JyZWFrfTtkZWZhdWx0OntzPTE2MTU7YnJlYWsgTDE5NTh9fXI9aysyfDA7YnJlYWt9O2Nh
c2UgMzI6e3I9bzticmVha307ZGVmYXVsdDp7cz0xNjE1fX19d2hpbGUoMCk7aWYoKHN8MCk9PTE2
MTUpe3I9cH1laihtLGYpO3M9bXwwO209Y1tzPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tq
Pj4yXT0xNTY5NjtjW2orND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTU2OTYsaiw5Nil9aj0oY1sz
OTI1XXwwKS0xfDA7aD1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1oPj4yPj4+MD5q
Pj4+MCl7dD1jW2grKGo8PDIpPj4yXXwwO2lmKCh0fDApPT0wKXticmVha311PXQ7dj1jW3M+PjJd
fDA7ZHoodil8MDt2PWx8MDt3PWNbKGNbdD4+Ml18MCkrMzI+PjJdfDA7Y2FbdyYxNV0odSxwLG8s
dil8MDt1PWwrcXwwO2lmKChyfDApPT0ob3wwKSl7eD11O3k9ZXwwO3o9Y1t5Pj4yXXwwO0E9bnww
O2NbQT4+Ml09ejtmOShiLG4sdix4LHUsZixnKTtpPWQ7cmV0dXJufXg9bCsoci1rKXwwO3k9ZXww
O3o9Y1t5Pj4yXXwwO0E9bnwwO2NbQT4+Ml09ejtmOShiLG4sdix4LHUsZixnKTtpPWQ7cmV0dXJu
fX13aGlsZSgwKTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnbyhi
LGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTA7aj1pO2k9aSs0OHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNb
az4+Ml07az1qfDA7bD1qKzE2fDA7bT1qKzI0fDA7bj1qKzMyfDA7aWYoKGNbZis0Pj4yXSYxfDAp
PT0wKXtvPWNbKGNbZD4+Ml18MCkrMjQ+PjJdfDA7Y1tsPj4yXT1jW2U+PjJdO2I5W28mMzFdKGIs
ZCxsLGYsZyxoJjEpO2k9ajtyZXR1cm59ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1sz
ODI2XXwwKSE9LTEpe2Nbaz4+Ml09MTUzMDQ7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1
MzA0LGssOTYpfWs9KGNbMzgyN118MCktMXwwO2c9Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+
Ml18MCktZz4+Mj4+PjA+az4+PjApe2w9Y1tnKyhrPDwyKT4+Ml18MDtpZigobHwwKT09MCl7YnJl
YWt9ZD1sO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2w+PjJdfDA7aWYoaCl7YlpbY1tvKzI0Pj4y
XSYxMjddKG4sZCl9ZWxzZXtiWltjW28rMjg+PjJdJjEyN10obixkKX1kPW47bz1hW2RdfDA7aWYo
KG8mMSk9PTApe2w9bis0fDA7cD1sO3E9bDtyPW4rOHwwfWVsc2V7bD1uKzh8MDtwPWNbbD4+Ml18
MDtxPW4rNHwwO3I9bH1sPWV8MDtzPXA7dD1vO3doaWxlKDEpe2lmKCh0JjEpPT0wKXt1PXF9ZWxz
ZXt1PWNbcj4+Ml18MH1vPXQmMjU1O2lmKChvJjF8MCk9PTApe3Y9bz4+PjF9ZWxzZXt2PWNbcT4+
Ml18MH1pZigoc3wwKT09KHUrKHY8PDIpfDApKXticmVha31vPWNbcz4+Ml18MDt3PWNbbD4+Ml18
MDtkb3tpZigod3wwKSE9MCl7eD13KzI0fDA7eT1jW3g+PjJdfDA7aWYoKHl8MCk9PShjW3crMjg+
PjJdfDApKXt6PWJfW2NbKGNbdz4+Ml18MCkrNTI+PjJdJjMxXSh3LG8pfDB9ZWxzZXtjW3g+PjJd
PXkrNDtjW3k+PjJdPW87ej1vfWlmKCh6fDApIT0tMSl7YnJlYWt9Y1tsPj4yXT0wfX13aGlsZSgw
KTtzPXMrNHwwO3Q9YVtkXXwwfWNbYj4+Ml09Y1tsPj4yXTtlZShuKTtpPWo7cmV0dXJufX13aGls
ZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlvbiBncChiLGUsZixn
LGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTA7bD1pO2k9aSs0
OHwwO209bHwwO249bCsxNnwwO289bCszMnwwO3A9a3wwO2s9Y1twPj4yXXwwO2lmKChjWzM5MjJd
fDApIT0tMSl7Y1tuPj4yXT0xNTY4ODtjW24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7ZFcoMTU2ODgs
biw5Nil9bj0oY1szOTIzXXwwKS0xfDA7cT1jW2srOD4+Ml18MDtpZigoY1trKzEyPj4yXXwwKS1x
Pj4yPj4+MDw9bj4+PjApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1rPWNb
cSsobjw8Mik+PjJdfDA7aWYoKGt8MCk9PTApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgx
NzYsMTM0KX1yPWs7cz1jW3A+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0xKXtjW20+PjJdPTE1MzA0
O2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTMwNCxtLDk2KX1tPShjWzM4MjddfDApLTF8
MDtwPWNbcys4Pj4yXXwwO2lmKChjW3MrMTI+PjJdfDApLXA+PjI+Pj4wPD1tPj4+MCl7dD1iTyg0
KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXM9Y1twKyhtPDwyKT4+Ml18MDtpZigoc3ww
KT09MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXQ9cztiWltjWyhjW3M+
PjJdfDApKzIwPj4yXSYxMjddKG8sdCk7dT1vO209bztwPWRbbV18MDtpZigocCYxfDApPT0wKXt2
PXA+Pj4xfWVsc2V7dj1jW28rND4+Ml18MH1kb3tpZigodnwwKT09MCl7cD1jWyhjW2s+PjJdfDAp
KzQ4Pj4yXXwwO2NhW3AmMTVdKHIsYixmLGcpfDA7Y1tqPj4yXT1nKyhmLWI8PDIpfWVsc2V7Y1tq
Pj4yXT1nO3A9YVtiXXwwO3N3aXRjaChwPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7bj1iX1tj
WyhjW2s+PjJdfDApKzQ0Pj4yXSYzMV0ocixwKXwwO3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCs0O2Nb
cD4+Ml09bjt3PWIrMXwwO2JyZWFrfTtkZWZhdWx0Ont3PWJ9fUwyMDUwOmRve2lmKChmLXd8MCk+
MSl7aWYoKGFbd118MCkhPTQ4KXt4PXc7YnJlYWt9bj13KzF8MDtzd2l0Y2goYVtuXXwwKXtjYXNl
IDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD13O2JyZWFrIEwyMDUwfX1wPWs7cT1iX1tj
WyhjW3A+PjJdfDApKzQ0Pj4yXSYzMV0ociw0OCl8MDt5PWNbaj4+Ml18MDtjW2o+PjJdPXkrNDtj
W3k+PjJdPXE7cT1iX1tjWyhjW3A+PjJdfDApKzQ0Pj4yXSYzMV0ocixhW25dfDApfDA7bj1jW2o+
PjJdfDA7Y1tqPj4yXT1uKzQ7Y1tuPj4yXT1xO3g9dysyfDB9ZWxzZXt4PXd9fXdoaWxlKDApO2Rv
e2lmKCh4fDApIT0oZnwwKSl7cT1mLTF8MDtpZih4Pj4+MDxxPj4+MCl7ej14O0E9cX1lbHNle2Jy
ZWFrfWRve3E9YVt6XXwwO2Fbel09YVtBXXwwO2FbQV09cTt6PXorMXwwO0E9QS0xfDA7fXdoaWxl
KHo+Pj4wPEE+Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjddKHQp
fDA7aWYoeD4+PjA8Zj4+PjApe249dSsxfDA7cD1rO3k9bys0fDA7Qj1vKzh8MDtDPTA7RD0wO0U9
eDt3aGlsZSgxKXtGPShhW21dJjEpPT0wO2Rve2lmKChhWyhGP246Y1tCPj4yXXwwKStEfDBdfDAp
PT0wKXtHPUQ7SD1DfWVsc2V7aWYoKEN8MCkhPShhWyhGP246Y1tCPj4yXXwwKStEfDBdfDApKXtH
PUQ7SD1DO2JyZWFrfUk9Y1tqPj4yXXwwO2Nbaj4+Ml09SSs0O2NbST4+Ml09cTtJPWRbbV18MDtH
PShEPj4+MDwoKChJJjF8MCk9PTA/ST4+PjE6Y1t5Pj4yXXwwKS0xfDApPj4+MCkrRHwwO0g9MH19
d2hpbGUoMCk7Rj1iX1tjWyhjW3A+PjJdfDApKzQ0Pj4yXSYzMV0ocixhW0VdfDApfDA7ST1jW2o+
PjJdfDA7Y1tqPj4yXT1JKzQ7Y1tJPj4yXT1GO0Y9RSsxfDA7aWYoRj4+PjA8Zj4+PjApe0M9SCsx
fDA7RD1HO0U9Rn1lbHNle2JyZWFrfX19RT1nKyh4LWI8PDIpfDA7RD1jW2o+PjJdfDA7aWYoKEV8
MCk9PShEfDApKXticmVha31DPUQtNHwwO2lmKEU+Pj4wPEM+Pj4wKXtKPUU7Sz1DfWVsc2V7YnJl
YWt9ZG97Qz1jW0o+PjJdfDA7Y1tKPj4yXT1jW0s+PjJdO2NbSz4+Ml09QztKPUorNHwwO0s9Sy00
fDA7fXdoaWxlKEo+Pj4wPEs+Pj4wKX19d2hpbGUoMCk7aWYoKGV8MCk9PShmfDApKXtMPWNbaj4+
Ml18MDtjW2g+PjJdPUw7ZFAobyk7aT1sO3JldHVybn1lbHNle0w9ZysoZS1iPDwyKXwwO2NbaD4+
Ml09TDtkUChvKTtpPWw7cmV0dXJufX1mdW5jdGlvbiBncShiLGQsZSxmLGcsaCxqKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MDtrPWk7aT1pKzE2fDA7bD1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
ZD4+Ml09Y1tsPj4yXTtsPWt8MDttPWR8MDtkPWNbbT4+Ml18MDtpZigoZHwwKT09MCl7Y1tiPj4y
XT0wO2k9aztyZXR1cm59bj1nO2c9ZTtvPW4tZz4+MjtwPWgrMTJ8MDtoPWNbcD4+Ml18MDtxPSho
fDApPihvfDApP2gtb3wwOjA7bz1mO2g9by1nfDA7Zz1oPj4yO2Rve2lmKChofDApPjApe2lmKChi
MVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxlLGcpfDApPT0oZ3wwKSl7YnJlYWt9Y1ttPj4y
XT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13aGlsZSgwKTtkb3tpZigocXwwKT4wKXtleShsLHEs
aik7aWYoKGFbbF0mMSk9PTApe3I9bCs0fDB9ZWxzZXtyPWNbbCs4Pj4yXXwwfWlmKChiMVtjWyhj
W2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxyLHEpfDApPT0ocXwwKSl7ZWUobCk7YnJlYWt9Y1ttPj4y
XT0wO2NbYj4+Ml09MDtlZShsKTtpPWs7cmV0dXJufX13aGlsZSgwKTtsPW4tb3wwO289bD4+Mjtk
b3tpZigobHwwKT4wKXtpZigoYjFbY1soY1tkPj4yXXwwKSs0OD4+Ml0mNjNdKGQsZixvKXwwKT09
KG98MCkpe2JyZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7aT1rO3JldHVybn19d2hpbGUoMCk7Y1tw
Pj4yXT0wO2NbYj4+Ml09ZDtpPWs7cmV0dXJufWZ1bmN0aW9uIGdyKGIsZCxlLGYsZyxoLGope2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrMjMyfDA7
az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHww
O209ZCszMnwwO249ZCsyMDB8MDtvPWQrMjA4fDA7cD1kKzIxNnwwO3E9ZCsyMjR8MDtjW2s+PjJd
PTM3O2Nbays0Pj4yXT0wO3I9aztrPXIrMXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0
OHwwKT09MCl7dT1rfWVsc2V7YVtrXT00Mzt1PXIrMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVs
c2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4O2FbdisxfDBdPTEwODt1PXYrMnwwO0wyMTE5OmRv
e3N3aXRjaCh0Jjc0fDApe2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2JyZWFr
IEwyMTE5fWVsc2V7YVt1XT04ODticmVhayBMMjExOX1icmVha307Y2FzZSA2NDp7YVt1XT0xMTE7
YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAwfX19d2hpbGUoMCk7dT1sfDA7ZG97aWYoKGFbMTYyNjRd
fDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXww
fX13aGlsZSgwKTt0PWdiKHUsMjIsY1syOTU4XXwwLHIsKHI9aSxpPWkrMTZ8MCxjW3I+PjJdPWgs
Y1tyKzg+PjJdPWoscil8MCl8MDtpPXI7cj1sK3R8MDtMMjEzMjpkb3tzd2l0Y2goY1tzPj4yXSYx
NzZ8MCl7Y2FzZSAzMjp7dz1yO2JyZWFrfTtjYXNlIDE2OntqPWFbdV18MDtzd2l0Y2goajw8MjQ+
PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9bCsxfDA7YnJlYWsgTDIxMzI7YnJlYWt9O2RlZmF1bHQ6
e319aWYoISgodHwwKT4xJmo8PDI0Pj4yND09NDgpKXt4PTE3NjA7YnJlYWsgTDIxMzJ9c3dpdGNo
KGFbbCsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE3NjA7YnJl
YWsgTDIxMzJ9fXc9bCsyfDA7YnJlYWt9O2RlZmF1bHQ6e3g9MTc2MH19fXdoaWxlKDApO2lmKCh4
fDApPT0xNzYwKXt3PXV9eD1tfDA7ZWoocCxmKTtncCh1LHcscix4LG4sbyxwKTtkeihjW3A+PjJd
fDApfDA7Y1txPj4yXT1jW2U+PjJdO2dxKGIscSx4LGNbbj4+Ml18MCxjW28+PjJdfDAsZixnKTtp
PWQ7cmV0dXJufWZ1bmN0aW9uIGdzKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsxNDR8MDtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9ZHwwO2s9ZCs4fDA7bD1kKzI0fDA7bT1kKzExMnwwO249
ZCsxMjB8MDtvPWQrMTI4fDA7cD1kKzEzNnwwO3E9anwwO2FbcV09YVsyMzg0XXwwO2FbcSsxfDBd
PWFbMjM4NXwwXXwwO2FbcSsyfDBdPWFbMjM4NnwwXXwwO2FbcSszfDBdPWFbMjM4N3wwXXwwO2Fb
cSs0fDBdPWFbMjM4OHwwXXwwO2FbcSs1fDBdPWFbMjM4OXwwXXwwO3I9aisxfDA7cz1mKzR8MDt0
PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PXJ9ZWxzZXthW3JdPTQzO3U9aisyfDB9aWYo
KHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7dT12KzF8MDtM
MjE1MDpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDY0OnthW3VdPTExMTticmVha307Y2FzZSA4Ontp
ZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDIxNTB9ZWxzZXthW3VdPTg4O2JyZWFr
IEwyMTUwfWJyZWFrfTtkZWZhdWx0OnthW3VdPTExN319fXdoaWxlKDApO3U9a3wwO2Rve2lmKChh
WzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEz
NDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDEyLGNbMjk1OF18MCxxLChxPWksaT1pKzh8MCxjW3E+
PjJdPWgscSl8MCl8MDtpPXE7cT1rK3R8MDtMMjE2Mzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7
Y2FzZSAxNjp7aD1hW3VdfDA7c3dpdGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWsr
MXwwO2JyZWFrIEwyMTYzO2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZoPDwyND4+MjQ9
PTQ4KSl7eD0xNzg1O2JyZWFrIEwyMTYzfXN3aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNl
IDg4OnticmVha307ZGVmYXVsdDp7eD0xNzg1O2JyZWFrIEwyMTYzfX13PWsrMnwwO2JyZWFrfTtj
YXNlIDMyOnt3PXE7YnJlYWt9O2RlZmF1bHQ6e3g9MTc4NX19fXdoaWxlKDApO2lmKCh4fDApPT0x
Nzg1KXt3PXV9eD1sfDA7ZWoobyxmKTtncCh1LHcscSx4LG0sbixvKTtkeihjW28+PjJdfDApfDA7
Y1twPj4yXT1jW2U+PjJdO2dxKGIscCx4LGNbbT4+Ml18MCxjW24+PjJdfDAsZixnKTtpPWQ7cmV0
dXJufWZ1bmN0aW9uIGd0KGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrMjQwfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCszMnwwO249ZCsyMDh8MDtvPWQr
MjE2fDA7cD1kKzIyNHwwO3E9ZCsyMzJ8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3I9aztrPXIr
MXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1rfWVsc2V7YVtrXT00
Mzt1PXIrMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09
MTA4O2FbdisxfDBdPTEwODt1PXYrMnwwO0wyMTgxOmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgODp7
aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwyMTgxfWVsc2V7YVt1XT04ODticmVh
ayBMMjE4MX1icmVha307Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTE3
fX19d2hpbGUoMCk7dT1sfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDAp
PT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMjMsY1sy
OTU4XXwwLHIsKHI9aSxpPWkrMTZ8MCxjW3I+PjJdPWgsY1tyKzg+PjJdPWoscil8MCl8MDtpPXI7
cj1sK3R8MDtMMjE5NDpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aj1hW3VdfDA7
c3dpdGNoKGo8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWwrMXwwO2JyZWFrIEwyMTk0O2Jy
ZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZqPDwyND4+MjQ9PTQ4KSl7eD0xODEwO2JyZWFr
IEwyMTk0fXN3aXRjaChhW2wrMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVs
dDp7eD0xODEwO2JyZWFrIEwyMTk0fX13PWwrMnwwO2JyZWFrfTtjYXNlIDMyOnt3PXI7YnJlYWt9
O2RlZmF1bHQ6e3g9MTgxMH19fXdoaWxlKDApO2lmKCh4fDApPT0xODEwKXt3PXV9eD1tfDA7ZWoo
cCxmKTtncCh1LHcscix4LG4sbyxwKTtkeihjW3A+PjJdfDApfDA7Y1txPj4yXT1jW2U+PjJdO2dx
KGIscSx4LGNbbj4+Ml18MCxjW28+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGd1KGIs
ZCxlLGYsZyxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPStqO3ZhciBrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2Q9aTtpPWkrMzIwfDA7az1l
O2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209
ZCs0MHwwO249ZCs0OHwwO289ZCsyODB8MDtwPWQrMjg4fDA7cT1kKzI5NnwwO3I9ZCszMDR8MDtz
PWQrMzEyfDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDt0PWs7az10KzF8MDt1PWYrNHwwO3Y9Y1t1
Pj4yXXwwO2lmKCh2JjIwNDh8MCk9PTApe3c9a31lbHNle2Fba109NDM7dz10KzJ8MH1pZigodiYx
MDI0fDApPT0wKXt4PXd9ZWxzZXthW3ddPTM1O3g9dysxfDB9dz12JjI2MDtrPXY+Pj4xNDtMMjIx
Mjpkb3tpZigod3wwKT09MjYwKXtpZigoayYxfDApPT0wKXthW3hdPTk3O3k9MDticmVha31lbHNl
e2FbeF09NjU7eT0wO2JyZWFrfX1lbHNle2FbeF09NDY7dj14KzJ8MDthW3grMXwwXT00Mjtzd2l0
Y2god3wwKXtjYXNlIDI1Njp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDE7eT0xO2JyZWFrIEwyMjEy
fWVsc2V7YVt2XT02OTt5PTE7YnJlYWsgTDIyMTJ9YnJlYWt9O2Nhc2UgNDp7aWYoKGsmMXwwKT09
MCl7YVt2XT0xMDI7eT0xO2JyZWFrIEwyMjEyfWVsc2V7YVt2XT03MDt5PTE7YnJlYWsgTDIyMTJ9
YnJlYWt9O2RlZmF1bHQ6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAzO3k9MTticmVhayBMMjIxMn1l
bHNle2Fbdl09NzE7eT0xO2JyZWFrIEwyMjEyfX19fX13aGlsZSgwKTtrPWx8MDtjW20+PjJdPWs7
ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThd
PWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWNbMjk1OF18MDtpZih5KXt3PWdiKGssMzAsbCx0
LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7
QT13fWVsc2V7dz1nYihrLDMwLGwsdCwoej1pLGk9aSs4fDAsaFt6Pj4zXT1qLHopfDApfDA7aT16
O0E9d31kb3tpZigoQXwwKT4yOSl7dz0oYVsxNjI2NF18MCk9PTA7aWYoeSl7ZG97aWYodyl7aWYo
KGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7
bD1naChtLGNbMjk1OF18MCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+
PjNdPWoseil8MCl8MDtpPXo7Qj1sfWVsc2V7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7
YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dz1naChtLGNbMjk1OF18MCx0
LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7
Qj13fXc9Y1ttPj4yXXwwO2lmKCh3fDApIT0wKXtDPUI7RD13O0U9dzticmVha31rWCgpO3c9Y1tt
Pj4yXXwwO0M9QjtEPXc7RT13fWVsc2V7Qz1BO0Q9MDtFPWNbbT4+Ml18MH19d2hpbGUoMCk7QT1F
K0N8MDtMMjI2MTpkb3tzd2l0Y2goY1t1Pj4yXSYxNzZ8MCl7Y2FzZSAzMjp7Rj1BO2JyZWFrfTtj
YXNlIDE2OntCPWFbRV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e0Y9RSsx
fDA7YnJlYWsgTDIyNjE7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgoQ3wwKT4xJkI8PDI0Pj4yND09
NDgpKXtHPTE4NjY7YnJlYWsgTDIyNjF9c3dpdGNoKGFbRSsxfDBdfDApe2Nhc2UgMTIwOmNhc2Ug
ODg6e2JyZWFrfTtkZWZhdWx0OntHPTE4NjY7YnJlYWsgTDIyNjF9fUY9RSsyfDA7YnJlYWt9O2Rl
ZmF1bHQ6e0c9MTg2Nn19fXdoaWxlKDApO2lmKChHfDApPT0xODY2KXtGPUV9ZG97aWYoKEV8MCk9
PShrfDApKXtIPW58MDtJPTA7Sj1rfWVsc2V7Rz1rSihDPDwzKXwwO3U9RztpZigoR3wwKSE9MCl7
SD11O0k9dTtKPUU7YnJlYWt9a1goKTtIPXU7ST11O0o9Y1ttPj4yXXwwfX13aGlsZSgwKTtlaihx
LGYpO2d2KEosRixBLEgsbyxwLHEpO2R6KGNbcT4+Ml18MCl8MDtxPWV8MDtjW3M+PjJdPWNbcT4+
Ml07Z3EocixzLEgsY1tvPj4yXXwwLGNbcD4+Ml18MCxmLGcpO2c9Y1tyPj4yXXwwO2NbcT4+Ml09
ZztjW2I+PjJdPWc7aWYoKEl8MCkhPTApe2tLKEkpfWlmKChEfDApPT0wKXtpPWQ7cmV0dXJufWtL
KEQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ3YoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0w
LEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTA7bD1pO2k9aSs0OHwwO209bHwwO249bCsx
NnwwO289bCszMnwwO3A9a3wwO2s9Y1twPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tuPj4y
XT0xNTY4ODtjW24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7ZFcoMTU2ODgsbiw5Nil9bj0oY1szOTIz
XXwwKS0xfDA7cT1jW2srOD4+Ml18MDtpZigoY1trKzEyPj4yXXwwKS1xPj4yPj4+MDw9bj4+PjAp
e3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1rPWNbcSsobjw8Mik+PjJdfDA7
aWYoKGt8MCk9PTApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1yPWs7cz1j
W3A+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0xKXtjW20+PjJdPTE1MzA0O2NbbSs0Pj4yXT0xMjtj
W20rOD4+Ml09MDtkVygxNTMwNCxtLDk2KX1tPShjWzM4MjddfDApLTF8MDtwPWNbcys4Pj4yXXww
O2lmKChjW3MrMTI+PjJdfDApLXA+PjI+Pj4wPD1tPj4+MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTti
bCh0fDAsODE3NiwxMzQpfXM9Y1twKyhtPDwyKT4+Ml18MDtpZigoc3wwKT09MCl7dD1iTyg0KXww
O3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXQ9cztiWltjWyhjW3M+PjJdfDApKzIwPj4yXSYx
MjddKG8sdCk7Y1tqPj4yXT1nO3U9YVtiXXwwO3N3aXRjaCh1PDwyND4+MjQpe2Nhc2UgNDU6Y2Fz
ZSA0Mzp7bT1iX1tjWyhjW2s+PjJdfDApKzQ0Pj4yXSYzMV0ocix1KXwwO3U9Y1tqPj4yXXwwO2Nb
aj4+Ml09dSs0O2NbdT4+Ml09bTt2PWIrMXwwO2JyZWFrfTtkZWZhdWx0Ont2PWJ9fW09ZjtMMjMw
OTpkb3tpZigobS12fDApPjEpe2lmKChhW3ZdfDApIT00OCl7dz12O3g9MTkyMTticmVha311PXYr
MXwwO3N3aXRjaChhW3VdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont3PXY7
eD0xOTIxO2JyZWFrIEwyMzA5fX1wPWs7bj1iX1tjWyhjW3A+PjJdfDApKzQ0Pj4yXSYzMV0ociw0
OCl8MDtxPWNbaj4+Ml18MDtjW2o+PjJdPXErNDtjW3E+PjJdPW47bj12KzJ8MDtxPWJfW2NbKGNb
cD4+Ml18MCkrNDQ+PjJdJjMxXShyLGFbdV18MCl8MDt1PWNbaj4+Ml18MDtjW2o+PjJdPXUrNDtj
W3U+PjJdPXE7cT1uO3doaWxlKDEpe2lmKHE+Pj4wPj1mPj4+MCl7eT1xO3o9bjticmVhayBMMjMw
OX11PWFbcV18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2Jy
ZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChhMyh1PDwyND4+MjR8MCxj
WzI5NThdfDApfDApPT0wKXt5PXE7ej1uO2JyZWFrfWVsc2V7cT1xKzF8MH19fWVsc2V7dz12O3g9
MTkyMX19d2hpbGUoMCk7TDIzMjQ6ZG97aWYoKHh8MCk9PTE5MjEpe3doaWxlKDEpe3g9MDtpZih3
Pj4+MD49Zj4+PjApe3k9dzt6PXY7YnJlYWsgTDIzMjR9cT1hW3ddfDA7ZG97aWYoKGFbMTYyNjRd
fDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXww
fX13aGlsZSgwKTtpZigoYkgocTw8MjQ+PjI0fDAsY1syOTU4XXwwKXwwKT09MCl7eT13O3o9djti
cmVha31lbHNle3c9dysxfDA7eD0xOTIxfX19fXdoaWxlKDApO3g9bzt3PW87dj1kW3ddfDA7aWYo
KHYmMXwwKT09MCl7QT12Pj4+MX1lbHNle0E9Y1tvKzQ+PjJdfDB9ZG97aWYoKEF8MCk9PTApe3Y9
Y1tqPj4yXXwwO3U9Y1soY1trPj4yXXwwKSs0OD4+Ml18MDtjYVt1JjE1XShyLHoseSx2KXwwO2Nb
aj4+Ml09KGNbaj4+Ml18MCkrKHktejw8Mil9ZWxzZXtkb3tpZigoenwwKSE9KHl8MCkpe3Y9eS0x
fDA7aWYoej4+PjA8dj4+PjApe0I9ejtDPXZ9ZWxzZXticmVha31kb3t2PWFbQl18MDthW0JdPWFb
Q118MDthW0NdPXY7Qj1CKzF8MDtDPUMtMXwwO313aGlsZShCPj4+MDxDPj4+MCl9fXdoaWxlKDAp
O3E9YjBbY1soY1tzPj4yXXwwKSsxNj4+Ml0mMTI3XSh0KXwwO2lmKHo+Pj4wPHk+Pj4wKXt2PXgr
MXwwO3U9bys0fDA7bj1vKzh8MDtwPWs7RD0wO0U9MDtGPXo7d2hpbGUoMSl7Rz0oYVt3XSYxKT09
MDtkb3tpZigoYVsoRz92OmNbbj4+Ml18MCkrRXwwXXwwKT4wKXtpZigoRHwwKSE9KGFbKEc/djpj
W24+PjJdfDApK0V8MF18MCkpe0g9RTtJPUQ7YnJlYWt9Sj1jW2o+PjJdfDA7Y1tqPj4yXT1KKzQ7
Y1tKPj4yXT1xO0o9ZFt3XXwwO0g9KEU+Pj4wPCgoKEomMXwwKT09MD9KPj4+MTpjW3U+PjJdfDAp
LTF8MCk+Pj4wKStFfDA7ST0wfWVsc2V7SD1FO0k9RH19d2hpbGUoMCk7Rz1iX1tjWyhjW3A+PjJd
fDApKzQ0Pj4yXSYzMV0ocixhW0ZdfDApfDA7Sj1jW2o+PjJdfDA7Y1tqPj4yXT1KKzQ7Y1tKPj4y
XT1HO0c9RisxfDA7aWYoRz4+PjA8eT4+PjApe0Q9SSsxfDA7RT1IO0Y9R31lbHNle2JyZWFrfX19
Rj1nKyh6LWI8PDIpfDA7RT1jW2o+PjJdfDA7aWYoKEZ8MCk9PShFfDApKXticmVha31EPUUtNHww
O2lmKEY+Pj4wPEQ+Pj4wKXtLPUY7TD1EfWVsc2V7YnJlYWt9ZG97RD1jW0s+PjJdfDA7Y1tLPj4y
XT1jW0w+PjJdO2NbTD4+Ml09RDtLPUsrNHwwO0w9TC00fDA7fXdoaWxlKEs+Pj4wPEw+Pj4wKX19
d2hpbGUoMCk7TDIzNjM6ZG97aWYoeT4+PjA8Zj4+PjApe0w9aztLPXk7d2hpbGUoMSl7ej1hW0td
fDA7aWYoejw8MjQ+PjI0PT00Nil7YnJlYWt9SD1iX1tjWyhjW0w+PjJdfDApKzQ0Pj4yXSYzMV0o
cix6KXwwO3o9Y1tqPj4yXXwwO2Nbaj4+Ml09eis0O2Nbej4+Ml09SDtIPUsrMXwwO2lmKEg+Pj4w
PGY+Pj4wKXtLPUh9ZWxzZXtNPUg7YnJlYWsgTDIzNjN9fUw9YjBbY1soY1tzPj4yXXwwKSsxMj4+
Ml0mMTI3XSh0KXwwO0g9Y1tqPj4yXXwwO2Nbaj4+Ml09SCs0O2NbSD4+Ml09TDtNPUsrMXwwfWVs
c2V7TT15fX13aGlsZSgwKTtjYVtjWyhjW2s+PjJdfDApKzQ4Pj4yXSYxNV0ocixNLGYsY1tqPj4y
XXwwKXwwO3I9KGNbaj4+Ml18MCkrKG0tTTw8Mil8MDtjW2o+PjJdPXI7aWYoKGV8MCk9PShmfDAp
KXtOPXI7Y1toPj4yXT1OO2RQKG8pO2k9bDtyZXR1cm59Tj1nKyhlLWI8PDIpfDA7Y1toPj4yXT1O
O2RQKG8pO2k9bDtyZXR1cm59ZnVuY3Rpb24gZ3coYixkLGUsZixnLGope2I9YnwwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO2c9Z3wwO2o9K2o7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wLEk9MCxKPTA7ZD1pO2k9aSszMjB8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzQwfDA7bj1kKzQ4fDA7bz1kKzI4MHww
O3A9ZCsyODh8MDtxPWQrMjk2fDA7cj1kKzMwNHwwO3M9ZCszMTJ8MDtjW2s+PjJdPTM3O2Nbays0
Pj4yXT0wO3Q9aztrPXQrMXwwO3U9Zis0fDA7dj1jW3U+PjJdfDA7aWYoKHYmMjA0OHwwKT09MCl7
dz1rfWVsc2V7YVtrXT00Mzt3PXQrMnwwfWlmKCh2JjEwMjR8MCk9PTApe3g9d31lbHNle2Fbd109
MzU7eD13KzF8MH13PXYmMjYwO2s9dj4+PjE0O0wyMzg0OmRve2lmKCh3fDApPT0yNjApe2FbeF09
NzY7dj14KzF8MDtpZigoayYxfDApPT0wKXthW3ZdPTk3O3k9MDticmVha31lbHNle2Fbdl09NjU7
eT0wO2JyZWFrfX1lbHNle2FbeF09NDY7YVt4KzF8MF09NDI7YVt4KzJ8MF09NzY7dj14KzN8MDtz
d2l0Y2god3wwKXtjYXNlIDI1Njp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDE7eT0xO2JyZWFrIEwy
Mzg0fWVsc2V7YVt2XT02OTt5PTE7YnJlYWsgTDIzODR9YnJlYWt9O2Nhc2UgNDp7aWYoKGsmMXww
KT09MCl7YVt2XT0xMDI7eT0xO2JyZWFrIEwyMzg0fWVsc2V7YVt2XT03MDt5PTE7YnJlYWsgTDIz
ODR9YnJlYWt9O2RlZmF1bHQ6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAzO3k9MTticmVhayBMMjM4
NH1lbHNle2Fbdl09NzE7eT0xO2JyZWFrIEwyMzg0fX19fX13aGlsZSgwKTtrPWx8MDtjW20+PjJd
PWs7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5
NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWNbMjk1OF18MDtpZih5KXt3PWdiKGssMzAs
bCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtp
PXo7QT13fWVsc2V7dz1nYihrLDMwLGwsdCwoej1pLGk9aSs4fDAsaFt6Pj4zXT1qLHopfDApfDA7
aT16O0E9d31kb3tpZigoQXwwKT4yOSl7dz0oYVsxNjI2NF18MCk9PTA7aWYoeSl7ZG97aWYodyl7
aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUo
MCk7bD1naChtLGNbMjk1OF18MCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6
Kzg+PjNdPWoseil8MCl8MDtpPXo7Qj1sfWVsc2V7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09
MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dz1naChtLGNbMjk1OF18
MCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7Qj13fXc9Y1ttPj4yXXwwO2lm
KCh3fDApIT0wKXtDPUI7RD13O0U9dzticmVha31rWCgpO3c9Y1ttPj4yXXwwO0M9QjtEPXc7RT13
fWVsc2V7Qz1BO0Q9MDtFPWNbbT4+Ml18MH19d2hpbGUoMCk7QT1FK0N8MDtMMjQzMzpkb3tzd2l0
Y2goY1t1Pj4yXSYxNzZ8MCl7Y2FzZSAxNjp7Qj1hW0VdfDA7c3dpdGNoKEI8PDI0Pj4yNCl7Y2Fz
ZSA0NTpjYXNlIDQzOntGPUUrMXwwO2JyZWFrIEwyNDMzO2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEo
KEN8MCk+MSZCPDwyND4+MjQ9PTQ4KSl7Rz0yMDE4O2JyZWFrIEwyNDMzfXN3aXRjaChhW0UrMXww
XXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7Rz0yMDE4O2JyZWFrIEwyNDMz
fX1GPUUrMnwwO2JyZWFrfTtjYXNlIDMyOntGPUE7YnJlYWt9O2RlZmF1bHQ6e0c9MjAxOH19fXdo
aWxlKDApO2lmKChHfDApPT0yMDE4KXtGPUV9ZG97aWYoKEV8MCk9PShrfDApKXtIPW58MDtJPTA7
Sj1rfWVsc2V7Rz1rSihDPDwzKXwwO3U9RztpZigoR3wwKSE9MCl7SD11O0k9dTtKPUU7YnJlYWt9
a1goKTtIPXU7ST11O0o9Y1ttPj4yXXwwfX13aGlsZSgwKTtlaihxLGYpO2d2KEosRixBLEgsbyxw
LHEpO2R6KGNbcT4+Ml18MCl8MDtxPWV8MDtjW3M+PjJdPWNbcT4+Ml07Z3EocixzLEgsY1tvPj4y
XXwwLGNbcD4+Ml18MCxmLGcpO2c9Y1tyPj4yXXwwO2NbcT4+Ml09ZztjW2I+PjJdPWc7aWYoKEl8
MCkhPTApe2tLKEkpfWlmKChEfDApPT0wKXtpPWQ7cmV0dXJufWtLKEQpO2k9ZDtyZXR1cm59ZnVu
Y3Rpb24gZ3goYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MCx5PTAsej0wLEE9MDtkPWk7aT1pKzIxNnwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzI0fDA7bD1kKzQ4fDA7bT1kKzIwMHwwO249
ZCsyMDh8MDtvPWQrMTZ8MDthW29dPWFbMjM5Ml18MDthW28rMXwwXT1hWzIzOTN8MF18MDthW28r
MnwwXT1hWzIzOTR8MF18MDthW28rM3wwXT1hWzIzOTV8MF18MDthW28rNHwwXT1hWzIzOTZ8MF18
MDthW28rNXwwXT1hWzIzOTd8MF18MDtwPWt8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChi
YygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3E9
Z2IocCwyMCxjWzI5NThdfDAsbywobz1pLGk9aSs4fDAsY1tvPj4yXT1oLG8pfDApfDA7aT1vO289
aytxfDA7TDI0NjQ6ZG97c3dpdGNoKGNbZis0Pj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aD1hW3BdfDA7
c3dpdGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntyPWsrMXwwO2JyZWFrIEwyNDY0O2Jy
ZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHF8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7cz0yMDUxO2JyZWFr
IEwyNDY0fXN3aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVs
dDp7cz0yMDUxO2JyZWFrIEwyNDY0fX1yPWsrMnwwO2JyZWFrfTtjYXNlIDMyOntyPW87YnJlYWt9
O2RlZmF1bHQ6e3M9MjA1MX19fXdoaWxlKDApO2lmKChzfDApPT0yMDUxKXtyPXB9ZWoobSxmKTtz
PW18MDttPWNbcz4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2Nbaj4+Ml09MTU2ODg7Y1tqKzQ+
PjJdPTEyO2Nbais4Pj4yXT0wO2RXKDE1Njg4LGosOTYpfWo9KGNbMzkyM118MCktMXwwO2g9Y1tt
Kzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktaD4+Mj4+PjA+aj4+PjApe3Q9Y1toKyhqPDwy
KT4+Ml18MDtpZigodHwwKT09MCl7YnJlYWt9dT10O3Y9Y1tzPj4yXXwwO2R6KHYpfDA7dj1sfDA7
dz1jWyhjW3Q+PjJdfDApKzQ4Pj4yXXwwO2NhW3cmMTVdKHUscCxvLHYpfDA7dT1sKyhxPDwyKXww
O2lmKChyfDApPT0ob3wwKSl7eD11O3k9ZXwwO3o9Y1t5Pj4yXXwwO0E9bnwwO2NbQT4+Ml09ejtn
cShiLG4sdix4LHUsZixnKTtpPWQ7cmV0dXJufXg9bCsoci1rPDwyKXwwO3k9ZXwwO3o9Y1t5Pj4y
XXwwO0E9bnwwO2NbQT4+Ml09ejtncShiLG4sdix4LHUsZixnKTtpPWQ7cmV0dXJufX13aGlsZSgw
KTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBneShhKXthPWF8MDty
ZXR1cm4gMn1mdW5jdGlvbiBneihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlv
biBnQShhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBnQihhLGIsZCxlLGYsZyxoKXth
PWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTA7
aj1pO2k9aSsxNnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07
az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHww
O2Nbaz4+Ml09Y1tkPj4yXTtjW2w+PjJdPWNbZT4+Ml07Z0QoYSxiLGssbCxmLGcsaCwyMzc2LDIz
ODQpO2k9ajtyZXR1cm59ZnVuY3Rpb24gZ0MoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTA7az1pO2k9aSsxNnwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNb
bD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWt8MDtt
PWsrOHwwO249ZCs4fDA7bz1iMFtjWyhjW24+PjJdfDApKzIwPj4yXSYxMjddKG4pfDA7Y1tsPj4y
XT1jW2U+PjJdO2NbbT4+Ml09Y1tmPj4yXTtmPW87ZT1hW29dfDA7aWYoKGUmMSk9PTApe3A9Zisx
fDA7cT1mKzF8MH1lbHNle2Y9Y1tvKzg+PjJdfDA7cD1mO3E9Zn1mPWUmMjU1O2lmKChmJjF8MCk9
PTApe3I9Zj4+PjF9ZWxzZXtyPWNbbys0Pj4yXXwwfWdEKGIsZCxsLG0sZyxoLGoscSxwK3J8MCk7
aT1rO3JldHVybn1mdW5jdGlvbiBnRChkLGUsZixnLGgsaixrLGwsbSl7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MDtu
PWk7aT1pKzQ4fDA7bz1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tvPj4yXTtv
PWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW28+PjJdO289bnwwO3A9bisxNnww
O3E9bisyNHwwO3I9biszMnwwO3M9bis0MHwwO2VqKHAsaCk7dD1wfDA7cD1jW3Q+PjJdfDA7aWYo
KGNbMzkyNF18MCkhPS0xKXtjW28+PjJdPTE1Njk2O2Nbbys0Pj4yXT0xMjtjW28rOD4+Ml09MDtk
VygxNTY5NixvLDk2KX1vPShjWzM5MjVdfDApLTF8MDt1PWNbcCs4Pj4yXXwwO2Rve2lmKChjW3Ar
MTI+PjJdfDApLXU+PjI+Pj4wPm8+Pj4wKXt2PWNbdSsobzw8Mik+PjJdfDA7aWYoKHZ8MCk9PTAp
e2JyZWFrfXc9djt4PWNbdD4+Ml18MDtkeih4KXwwO2Nbaj4+Ml09MDt4PWZ8MDtMMjUwNjpkb3tp
ZigobHwwKT09KG18MCkpe3k9MjE0MX1lbHNle3o9Z3wwO0E9djtCPXYrOHwwO0M9djtEPWU7RT1y
fDA7Rj1zfDA7Rz1xfDA7SD1sO0k9MDtMMjUwODp3aGlsZSgxKXtKPUk7d2hpbGUoMSl7aWYoKEp8
MCkhPTApe3k9MjE0MTticmVhayBMMjUwNn1LPWNbeD4+Ml18MDtkb3tpZigoS3wwKT09MCl7TD0w
fWVsc2V7aWYoKGNbSysxMj4+Ml18MCkhPShjW0srMTY+PjJdfDApKXtMPUs7YnJlYWt9aWYoKGIw
W2NbKGNbSz4+Ml18MCkrMzY+PjJdJjEyN10oSyl8MCkhPS0xKXtMPUs7YnJlYWt9Y1t4Pj4yXT0w
O0w9MH19d2hpbGUoMCk7Sz0oTHwwKT09MDtNPWNbej4+Ml18MDtMMjUxODpkb3tpZigoTXwwKT09
MCl7eT0yMDk0fWVsc2V7ZG97aWYoKGNbTSsxMj4+Ml18MCk9PShjW00rMTY+PjJdfDApKXtpZigo
YjBbY1soY1tNPj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwKSE9LTEpe2JyZWFrfWNbej4+Ml09MDt5
PTIwOTQ7YnJlYWsgTDI1MTh9fXdoaWxlKDApO2lmKEspe049TX1lbHNle3k9MjA5NTticmVhayBM
MjUwOH19fXdoaWxlKDApO2lmKCh5fDApPT0yMDk0KXt5PTA7aWYoSyl7eT0yMDk1O2JyZWFrIEwy
NTA4fWVsc2V7Tj0wfX1pZigoYjFbY1soY1tBPj4yXXwwKSszNj4+Ml0mNjNdKHcsYVtIXXwwLDAp
fDApPDwyND4+MjQ9PTM3KXt5PTIwOTg7YnJlYWt9TT1hW0hdfDA7aWYoTTw8MjQ+PjI0Pi0xKXtP
PWNbQj4+Ml18MDtpZigoYltPKyhNPDwyND4+MjQ8PDEpPj4xXSY4MTkyKSE9MCl7UD1IO3k9MjEw
OTticmVha319UT1MKzEyfDA7TT1jW1E+PjJdfDA7Uj1MKzE2fDA7aWYoKE18MCk9PShjW1I+PjJd
fDApKXtTPShiMFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYxMjddKEwpfDApJjI1NX1lbHNle1M9YVtN
XXwwfU09Yl9bY1soY1tDPj4yXXwwKSsxMj4+Ml0mMzFdKHcsUyl8MDtpZihNPDwyND4+MjQ9PShi
X1tjWyhjW0M+PjJdfDApKzEyPj4yXSYzMV0odyxhW0hdfDApfDApPDwyND4+MjQpe3k9MjEzNjti
cmVha31jW2o+PjJdPTQ7Sj00fUwyNTM2OmRve2lmKCh5fDApPT0yMTM2KXt5PTA7Sj1jW1E+PjJd
fDA7aWYoKEp8MCk9PShjW1I+PjJdfDApKXtNPWNbKGNbTD4+Ml18MCkrNDA+PjJdfDA7YjBbTSYx
MjddKEwpfDB9ZWxzZXtjW1E+PjJdPUorMX1UPUgrMXwwfWVsc2UgaWYoKHl8MCk9PTIwOTgpe3k9
MDtKPUgrMXwwO2lmKChKfDApPT0obXwwKSl7eT0yMDk5O2JyZWFrIEwyNTA4fU09YjFbY1soY1tB
Pj4yXXwwKSszNj4+Ml0mNjNdKHcsYVtKXXwwLDApfDA7c3dpdGNoKE08PDI0Pj4yNCl7Y2FzZSA2
OTpjYXNlIDQ4OntVPUgrMnwwO2lmKChVfDApPT0obXwwKSl7eT0yMTAyO2JyZWFrIEwyNTA4fVY9
TTtXPWIxW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjYzXSh3LGFbVV18MCwwKXwwO1g9VTticmVha307
ZGVmYXVsdDp7Vj0wO1c9TTtYPUp9fUo9Y1soY1tEPj4yXXwwKSszNj4+Ml18MDtjW0U+PjJdPUw7
Y1tGPj4yXT1OO2I3W0omN10ocSxlLHIscyxoLGosayxXLFYpO2NbeD4+Ml09Y1tHPj4yXTtUPVgr
MXwwfWVsc2UgaWYoKHl8MCk9PTIxMDkpe3doaWxlKDEpe3k9MDtKPVArMXwwO2lmKChKfDApPT0o
bXwwKSl7WT1tO2JyZWFrfU09YVtKXXwwO2lmKE08PDI0Pj4yNDw9LTEpe1k9SjticmVha31pZigo
YltPKyhNPDwyND4+MjQ8PDEpPj4xXSY4MTkyKT09MCl7WT1KO2JyZWFrfWVsc2V7UD1KO3k9MjEw
OX19Sz1MO0o9Tjt3aGlsZSgxKXtkb3tpZigoS3wwKT09MCl7Wj0wfWVsc2V7aWYoKGNbSysxMj4+
Ml18MCkhPShjW0srMTY+PjJdfDApKXtaPUs7YnJlYWt9aWYoKGIwW2NbKGNbSz4+Ml18MCkrMzY+
PjJdJjEyN10oSyl8MCkhPS0xKXtaPUs7YnJlYWt9Y1t4Pj4yXT0wO1o9MH19d2hpbGUoMCk7TT0o
WnwwKT09MDtkb3tpZigoSnwwKT09MCl7eT0yMTIyfWVsc2V7aWYoKGNbSisxMj4+Ml18MCkhPShj
W0orMTY+PjJdfDApKXtpZihNKXtfPUo7YnJlYWt9ZWxzZXtUPVk7YnJlYWsgTDI1MzZ9fWlmKChi
MFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYxMjddKEopfDApPT0tMSl7Y1t6Pj4yXT0wO3k9MjEyMjti
cmVha31lbHNle2lmKE1eKEp8MCk9PTApe189SjticmVha31lbHNle1Q9WTticmVhayBMMjUzNn19
fX13aGlsZSgwKTtpZigoeXwwKT09MjEyMil7eT0wO2lmKE0pe1Q9WTticmVhayBMMjUzNn1lbHNl
e189MH19VT1aKzEyfDA7JD1jW1U+PjJdfDA7YWE9WisxNnwwO2lmKCgkfDApPT0oY1thYT4+Ml18
MCkpe2FiPShiMFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFopfDApJjI1NX1lbHNle2FiPWFb
JF18MH1pZihhYjw8MjQ+PjI0PD0tMSl7VD1ZO2JyZWFrIEwyNTM2fWlmKChiWyhjW0I+PjJdfDAp
KyhhYjw8MjQ+PjI0PDwxKT4+MV0mODE5Mik9PTApe1Q9WTticmVhayBMMjUzNn0kPWNbVT4+Ml18
MDtpZigoJHwwKT09KGNbYWE+PjJdfDApKXthYT1jWyhjW1o+PjJdfDApKzQwPj4yXXwwO2IwW2Fh
JjEyN10oWil8MDtLPVo7Sj1fO2NvbnRpbnVlfWVsc2V7Y1tVPj4yXT0kKzE7Sz1aO0o9Xztjb250
aW51ZX19fX13aGlsZSgwKTtpZigoVHwwKT09KG18MCkpe3k9MjE0MTticmVhayBMMjUwNn1IPVQ7
ST1jW2o+PjJdfDB9aWYoKHl8MCk9PTIwOTkpe2Nbaj4+Ml09NDthYz1MO2JyZWFrfWVsc2UgaWYo
KHl8MCk9PTIxMDIpe2Nbaj4+Ml09NDthYz1MO2JyZWFrfWVsc2UgaWYoKHl8MCk9PTIwOTUpe2Nb
aj4+Ml09NDthYz1MO2JyZWFrfX19d2hpbGUoMCk7aWYoKHl8MCk9PTIxNDEpe2FjPWNbeD4+Ml18
MH13PWZ8MDtkb3tpZigoYWN8MCkhPTApe2lmKChjW2FjKzEyPj4yXXwwKSE9KGNbYWMrMTY+PjJd
fDApKXticmVha31pZigoYjBbY1soY1thYz4+Ml18MCkrMzY+PjJdJjEyN10oYWMpfDApIT0tMSl7
YnJlYWt9Y1t3Pj4yXT0wfX13aGlsZSgwKTt4PWNbdz4+Ml18MDt2PSh4fDApPT0wO0k9Z3wwO0g9
Y1tJPj4yXXwwO0wyNTk0OmRve2lmKChIfDApPT0wKXt5PTIxNTF9ZWxzZXtkb3tpZigoY1tIKzEy
Pj4yXXwwKT09KGNbSCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0g+PjJdfDApKzM2Pj4yXSYxMjdd
KEgpfDApIT0tMSl7YnJlYWt9Y1tJPj4yXT0wO3k9MjE1MTticmVhayBMMjU5NH19d2hpbGUoMCk7
aWYoIXYpe2JyZWFrfWFkPWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO2Rve2lm
KCh5fDApPT0yMTUxKXtpZih2KXticmVha31hZD1kfDA7Y1thZD4+Ml09eDtpPW47cmV0dXJufX13
aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjthZD1kfDA7Y1thZD4+Ml09eDtpPW47cmV0dXJufX13
aGlsZSgwKTtuPWJPKDQpfDA7a3Eobik7YmwobnwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnRShhLGIs
ZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIg
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7aj1pO2k9aSsz
MnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1lO2U9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHwwO209aisyNHww
O2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJdPTE1
Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVdfDAp
LTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLW4+PjI+Pj4wPmw+Pj4wKXtv
PWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztvPWNbZj4+Ml18MDtkeihv
KXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjW2NbcT4+Ml0+PjJdJjEyN10ocSl8MDtjW2s+
PjJdPW87bz0oZnEoZCxrLHIscisxNjh8MCxwLGcsMCl8MCktcnwwO2lmKChvfDApPj0xNjgpe3M9
ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufWNbaCsyND4+Ml09KChv
fDApLzEyfDB8MCklN3wwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0
dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlvbiBn
RihhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7aj1p
O2k9aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07az1l
O2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHwwO209
aisyNHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+
PjJdPTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5
MjVdfDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLW4+PjI+Pj4wPmw+
Pj4wKXtvPWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztvPWNbZj4+Ml18
MDtkeihvKXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjWyhjW3E+PjJdfDApKzQ+PjJdJjEy
N10ocSl8MDtjW2s+PjJdPW87bz0oZnEoZCxrLHIscisyODh8MCxwLGcsMCl8MCktcnwwO2lmKChv
fDApPj0yODgpe3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJufWNb
aCsxNj4+Ml09KChvfDApLzEyfDB8MCklMTJ8MDtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+
PjJdPXQ7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGopO2JsKGp8MCw4MTc2LDEz
NCl9ZnVuY3Rpb24gZ0coYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MDtiPWk7aT1pKzMyfDA7aj1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tqPj4y
XTtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJdO2o9YnwwO2s9Yis4
fDA7bD1iKzI0fDA7ZWoobCxmKTtmPWx8MDtsPWNbZj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEp
e2Nbaz4+Ml09MTU2OTY7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1Njk2LGssOTYpfWs9
KGNbMzkyNV18MCktMXwwO209Y1tsKzg+PjJdfDA7ZG97aWYoKGNbbCsxMj4+Ml18MCktbT4+Mj4+
PjA+az4+PjApe249Y1ttKyhrPDwyKT4+Ml18MDtpZigobnwwKT09MCl7YnJlYWt9bz1uO249Y1tm
Pj4yXXwwO2R6KG4pfDA7Y1tqPj4yXT1jW2U+PjJdO249Z0woZCxqLGcsbyw0KXwwO2lmKChjW2c+
PjJdJjR8MCkhPTApe3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXwwO2Nbcj4+Ml09cTtpPWI7cmV0dXJu
fWlmKChufDApPDY5KXtzPW4rMmUzfDB9ZWxzZXtzPShuLTY5fDApPj4+MDwzMT9uKzE5MDB8MDpu
fWNbaCsyMD4+Ml09cy0xOTAwO3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXwwO2Nbcj4+Ml09cTtpPWI7
cmV0dXJufX13aGlsZSgwKTtiPWJPKDQpfDA7a3EoYik7YmwoYnwwLDgxNzYsMTM0KX1mdW5jdGlv
biBnSChkLGUsZixnLGgpe2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTA7ZD1pO2o9ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbaj4+Ml07aj1lfDA7ZT1mfDA7Zj1oKzh8MDtM
MjY1Mjp3aGlsZSgxKXtoPWNbaj4+Ml18MDtkb3tpZigoaHwwKT09MCl7az0wfWVsc2V7aWYoKGNb
aCsxMj4+Ml18MCkhPShjW2grMTY+PjJdfDApKXtrPWg7YnJlYWt9aWYoKGIwW2NbKGNbaD4+Ml18
MCkrMzY+PjJdJjEyN10oaCl8MCk9PS0xKXtjW2o+PjJdPTA7az0wO2JyZWFrfWVsc2V7az1jW2o+
PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtoPShrfDApPT0wO2w9Y1tlPj4yXXwwO0wyNjYxOmRve2lm
KChsfDApPT0wKXttPTIyMDd9ZWxzZXtkb3tpZigoY1tsKzEyPj4yXXwwKT09KGNbbCsxNj4+Ml18
MCkpe2lmKChiMFtjWyhjW2w+PjJdfDApKzM2Pj4yXSYxMjddKGwpfDApIT0tMSl7YnJlYWt9Y1tl
Pj4yXT0wO209MjIwNzticmVhayBMMjY2MX19d2hpbGUoMCk7aWYoaCl7bj1sO289MH1lbHNle3A9
bDtxPTA7YnJlYWsgTDI2NTJ9fX13aGlsZSgwKTtpZigobXwwKT09MjIwNyl7bT0wO2lmKGgpe3A9
MDtxPTE7YnJlYWt9ZWxzZXtuPTA7bz0xfX1sPWNbaj4+Ml18MDtyPWNbbCsxMj4+Ml18MDtpZigo
cnwwKT09KGNbbCsxNj4+Ml18MCkpe3M9KGIwW2NbKGNbbD4+Ml18MCkrMzY+PjJdJjEyN10obCl8
MCkmMjU1fWVsc2V7cz1hW3JdfDB9aWYoczw8MjQ+PjI0PD0tMSl7cD1uO3E9bzticmVha31pZigo
YlsoY1tmPj4yXXwwKSsoczw8MjQ+PjI0PDwxKT4+MV0mODE5Mik9PTApe3A9bjtxPW87YnJlYWt9
cj1jW2o+PjJdfDA7bD1yKzEyfDA7dD1jW2w+PjJdfDA7aWYoKHR8MCk9PShjW3IrMTY+PjJdfDAp
KXt1PWNbKGNbcj4+Ml18MCkrNDA+PjJdfDA7YjBbdSYxMjddKHIpfDA7Y29udGludWV9ZWxzZXtj
W2w+PjJdPXQrMTtjb250aW51ZX19bz1jW2o+PjJdfDA7ZG97aWYoKG98MCk9PTApe3Y9MH1lbHNl
e2lmKChjW28rMTI+PjJdfDApIT0oY1tvKzE2Pj4yXXwwKSl7dj1vO2JyZWFrfWlmKChiMFtjWyhj
W28+PjJdfDApKzM2Pj4yXSYxMjddKG8pfDApPT0tMSl7Y1tqPj4yXT0wO3Y9MDticmVha31lbHNl
e3Y9Y1tqPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7aj0odnwwKT09MDtkb3tpZihxKXttPTIyMjZ9
ZWxzZXtpZigoY1twKzEyPj4yXXwwKSE9KGNbcCsxNj4+Ml18MCkpe2lmKCEoal4ocHwwKT09MCkp
e2JyZWFrfWk9ZDtyZXR1cm59aWYoKGIwW2NbKGNbcD4+Ml18MCkrMzY+PjJdJjEyN10ocCl8MCk9
PS0xKXtjW2U+PjJdPTA7bT0yMjI2O2JyZWFrfWlmKCFqKXticmVha31pPWQ7cmV0dXJufX13aGls
ZSgwKTtkb3tpZigobXwwKT09MjIyNil7aWYoail7YnJlYWt9aT1kO3JldHVybn19d2hpbGUoMCk7
Y1tnPj4yXT1jW2c+PjJdfDI7aT1kO3JldHVybn1mdW5jdGlvbiBnSShiLGQsZSxmLGcsaCxqLGss
bCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7
dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49
MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0w
LGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxh
bD0wLGFtPTA7bD1pO2k9aSszMjh8MDttPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW20+PjJdO209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1s
fDA7bj1sKzh8MDtvPWwrMTZ8MDtwPWwrMjR8MDtxPWwrMzJ8MDtyPWwrNDB8MDtzPWwrNDh8MDt0
PWwrNTZ8MDt1PWwrNjR8MDt2PWwrNzJ8MDt3PWwrODB8MDt4PWwrODh8MDt5PWwrOTZ8MDt6PWwr
MTEyfDA7QT1sKzEyMHwwO0I9bCsxMjh8MDtDPWwrMTM2fDA7RD1sKzE0NHwwO0U9bCsxNTJ8MDtG
PWwrMTYwfDA7Rz1sKzE2OHwwO0g9bCsxNzZ8MDtJPWwrMTg0fDA7Sj1sKzE5MnwwO0s9bCsyMDB8
MDtMPWwrMjA4fDA7TT1sKzIxNnwwO049bCsyMjR8MDtPPWwrMjMyfDA7UD1sKzI0MHwwO1E9bCsy
NDh8MDtSPWwrMjU2fDA7Uz1sKzI2NHwwO1Q9bCsyNzJ8MDtVPWwrMjgwfDA7Vj1sKzI4OHwwO1c9
bCsyOTZ8MDtYPWwrMzA0fDA7WT1sKzMxMnwwO1o9bCszMjB8MDtjW2g+PjJdPTA7ZWooeixnKTtf
PXp8MDt6PWNbXz4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbeT4+Ml09MTU2OTY7Y1t5KzQ+
PjJdPTEyO2NbeSs4Pj4yXT0wO2RXKDE1Njk2LHksOTYpfXk9KGNbMzkyNV18MCktMXwwOyQ9Y1t6
Kzg+PjJdfDA7ZG97aWYoKGNbeisxMj4+Ml18MCktJD4+Mj4+PjA+eT4+PjApe2FhPWNbJCsoeTw8
Mik+PjJdfDA7aWYoKGFhfDApPT0wKXticmVha31hYj1hYTthYT1jW18+PjJdfDA7ZHooYWEpfDA7
TDI3MDk6ZG97c3dpdGNoKGs8PDI0Pj4yNHwwKXtjYXNlIDcyOntjW3U+PjJdPWNbZj4+Ml07YWE9
Z0woZSx1LGgsYWIsMil8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAmKGFhfDApPDI0KXtj
W2orOD4+Ml09YWE7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFjfDQ7YnJlYWsgTDI3MDl9YnJl
YWt9O2Nhc2UgOTc6Y2FzZSA2NTp7YWM9Y1tmPj4yXXwwO2FhPWQrOHwwO2FkPWIwW2NbY1thYT4+
Ml0+PjJdJjEyN10oYWEpfDA7Y1t4Pj4yXT1hYzthYz0oZnEoZSx4LGFkLGFkKzE2OHwwLGFiLGgs
MCl8MCktYWR8MDtpZigoYWN8MCk+PTE2OCl7YnJlYWsgTDI3MDl9Y1tqKzI0Pj4yXT0oKGFjfDAp
LzEyfDB8MCklN3wwO2JyZWFrfTtjYXNlIDEwOTp7Y1tyPj4yXT1jW2Y+PjJdO2FjPShnTChlLHIs
aCxhYiwyKXwwKS0xfDA7YWQ9Y1toPj4yXXwwO2lmKChhZCY0fDApPT0wJihhY3wwKTwxMil7Y1tq
KzE2Pj4yXT1hYzticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVh
a307Y2FzZSAxMjE6e2Nbbj4+Ml09Y1tmPj4yXTthZD1nTChlLG4saCxhYiw0KXwwO2lmKChjW2g+
PjJdJjR8MCkhPTApe2JyZWFrIEwyNzA5fWlmKChhZHwwKTw2OSl7YWU9YWQrMmUzfDB9ZWxzZXth
ZT0oYWQtNjl8MCk+Pj4wPDMxP2FkKzE5MDB8MDphZH1jW2orMjA+PjJdPWFlLTE5MDA7YnJlYWt9
O2Nhc2UgOTg6Y2FzZSA2NjpjYXNlIDEwNDp7YWQ9Y1tmPj4yXXwwO2FjPWQrOHwwO2FhPWIwW2Nb
KGNbYWM+PjJdfDApKzQ+PjJdJjEyN10oYWMpfDA7Y1t3Pj4yXT1hZDthZD0oZnEoZSx3LGFhLGFh
KzI4OHwwLGFiLGgsMCl8MCktYWF8MDtpZigoYWR8MCk+PTI4OCl7YnJlYWsgTDI3MDl9Y1tqKzE2
Pj4yXT0oKGFkfDApLzEyfDB8MCklMTJ8MDticmVha307Y2FzZSA3Mzp7YWQ9ais4fDA7Y1t0Pj4y
XT1jW2Y+PjJdO2FhPWdMKGUsdCxoLGFiLDIpfDA7YWM9Y1toPj4yXXwwO2Rve2lmKChhYyY0fDAp
PT0wKXtpZigoYWEtMXwwKT4+PjA+PTEyKXticmVha31jW2FkPj4yXT1hYTticmVhayBMMjcwOX19
d2hpbGUoMCk7Y1toPj4yXT1hY3w0O2JyZWFrfTtjYXNlIDEwNjp7Y1tzPj4yXT1jW2Y+PjJdO2Fh
PWdMKGUscyxoLGFiLDMpfDA7YWQ9Y1toPj4yXXwwO2lmKChhZCY0fDApPT0wJihhYXwwKTwzNjYp
e2NbaisyOD4+Ml09YWE7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFkfDQ7YnJlYWsgTDI3MDl9
YnJlYWt9O2Nhc2UgNjg6e2FkPWV8MDtjW0U+PjJdPWNbYWQ+PjJdO2NbRj4+Ml09Y1tmPj4yXTtn
RChELGQsRSxGLGcsaCxqLDIzNjgsMjM3Nik7Y1thZD4+Ml09Y1tEPj4yXTticmVha307Y2FzZSA4
NDp7YWQ9ZXwwO2NbUz4+Ml09Y1thZD4+Ml07Y1tUPj4yXT1jW2Y+PjJdO2dEKFIsZCxTLFQsZyxo
LGosMjMyOCwyMzM2KTtjW2FkPj4yXT1jW1I+PjJdO2JyZWFrfTtjYXNlIDExOTp7Y1tvPj4yXT1j
W2Y+PjJdO2FkPWdMKGUsbyxoLGFiLDEpfDA7YWE9Y1toPj4yXXwwO2lmKChhYSY0fDApPT0wJihh
ZHwwKTw3KXtjW2orMjQ+PjJdPWFkO2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hYXw0O2JyZWFr
IEwyNzA5fWJyZWFrfTtjYXNlIDcwOnthYT1lfDA7Y1tIPj4yXT1jW2FhPj4yXTtjW0k+PjJdPWNb
Zj4+Ml07Z0QoRyxkLEgsSSxnLGgsaiwyMzYwLDIzNjgpO2NbYWE+PjJdPWNbRz4+Ml07YnJlYWt9
O2Nhc2UgODk6e2NbbT4+Ml09Y1tmPj4yXTthYT1nTChlLG0saCxhYiw0KXwwO2lmKChjW2g+PjJd
JjR8MCkhPTApe2JyZWFrIEwyNzA5fWNbaisyMD4+Ml09YWEtMTkwMDticmVha307Y2FzZSAzNzp7
Y1taPj4yXT1jW2Y+PjJdO2dLKDAsZSxaLGgsYWIpO2JyZWFrfTtjYXNlIDExNDp7YWE9ZXwwO2Nb
TT4+Ml09Y1thYT4+Ml07Y1tOPj4yXT1jW2Y+PjJdO2dEKEwsZCxNLE4sZyxoLGosMjM0NCwyMzU1
KTtjW2FhPj4yXT1jW0w+PjJdO2JyZWFrfTtjYXNlIDgyOnthYT1lfDA7Y1tQPj4yXT1jW2FhPj4y
XTtjW1E+PjJdPWNbZj4+Ml07Z0QoTyxkLFAsUSxnLGgsaiwyMzM2LDIzNDEpO2NbYWE+PjJdPWNb
Tz4+Ml07YnJlYWt9O2Nhc2UgOTk6e2FhPWQrOHwwO2FkPWIwW2NbKGNbYWE+PjJdfDApKzEyPj4y
XSYxMjddKGFhKXwwO2FhPWV8MDtjW0I+PjJdPWNbYWE+PjJdO2NbQz4+Ml09Y1tmPj4yXTthZj1h
ZDthZz1hW2FkXXwwO2lmKChhZyYxKT09MCl7YWg9YWYrMXwwO2FpPWFmKzF8MH1lbHNle2FmPWNb
YWQrOD4+Ml18MDthaD1hZjthaT1hZn1hZj1hZyYyNTU7aWYoKGFmJjF8MCk9PTApe2FqPWFmPj4+
MX1lbHNle2FqPWNbYWQrND4+Ml18MH1nRChBLGQsQixDLGcsaCxqLGFpLGFoK2FqfDApO2NbYWE+
PjJdPWNbQT4+Ml07YnJlYWt9O2Nhc2UgODM6e2NbcD4+Ml09Y1tmPj4yXTthYT1nTChlLHAsaCxh
YiwyKXwwO2FkPWNbaD4+Ml18MDtpZigoYWQmNHwwKT09MCYoYWF8MCk8NjEpe2Nbaj4+Ml09YWE7
YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFkfDQ7YnJlYWsgTDI3MDl9YnJlYWt9O2Nhc2UgNzc6
e2NbcT4+Ml09Y1tmPj4yXTthZD1nTChlLHEsaCxhYiwyKXwwO2FhPWNbaD4+Ml18MDtpZigoYWEm
NHwwKT09MCYoYWR8MCk8NjApe2Nbais0Pj4yXT1hZDticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09
YWF8NDticmVhayBMMjcwOX1icmVha307Y2FzZSAxMTA6Y2FzZSAxMTY6e2NbSj4+Ml09Y1tmPj4y
XTtnSCgwLGUsSixoLGFiKTticmVha307Y2FzZSAxMTI6e2NbSz4+Ml09Y1tmPj4yXTtnSihkLGor
OHwwLGUsSyxoLGFiKTticmVha307Y2FzZSAxMjA6e2FhPWNbKGNbZD4+Ml18MCkrMjA+PjJdfDA7
Y1tVPj4yXT1jW2U+PjJdO2NbVj4+Ml09Y1tmPj4yXTtiWFthYSYxMjddKGIsZCxVLFYsZyxoLGop
O2k9bDtyZXR1cm59O2Nhc2UgODg6e2FhPWQrOHwwO2FkPWIwW2NbKGNbYWE+PjJdfDApKzI0Pj4y
XSYxMjddKGFhKXwwO2FhPWV8MDtjW1g+PjJdPWNbYWE+PjJdO2NbWT4+Ml09Y1tmPj4yXTthZj1h
ZDthZz1hW2FkXXwwO2lmKChhZyYxKT09MCl7YWs9YWYrMXwwO2FsPWFmKzF8MH1lbHNle2FmPWNb
YWQrOD4+Ml18MDthaz1hZjthbD1hZn1hZj1hZyYyNTU7aWYoKGFmJjF8MCk9PTApe2FtPWFmPj4+
MX1lbHNle2FtPWNbYWQrND4+Ml18MH1nRChXLGQsWCxZLGcsaCxqLGFsLGFrK2FtfDApO2NbYWE+
PjJdPWNbVz4+Ml07YnJlYWt9O2Nhc2UgMTAwOmNhc2UgMTAxOnthYT1qKzEyfDA7Y1t2Pj4yXT1j
W2Y+PjJdO2FkPWdMKGUsdixoLGFiLDIpfDA7YWY9Y1toPj4yXXwwO2Rve2lmKChhZiY0fDApPT0w
KXtpZigoYWQtMXwwKT4+PjA+PTMxKXticmVha31jW2FhPj4yXT1hZDticmVhayBMMjcwOX19d2hp
bGUoMCk7Y1toPj4yXT1hZnw0O2JyZWFrfTtkZWZhdWx0OntjW2g+PjJdPWNbaD4+Ml18NH19fXdo
aWxlKDApO2NbYj4+Ml09Y1tlPj4yXTtpPWw7cmV0dXJufX13aGlsZSgwKTtsPWJPKDQpfDA7a3Eo
bCk7YmwobHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnSihhLGIsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTA7aj1pO2k9aSs4
fDA7az1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1trPj4yXTtrPWp8MDtsPWEr
OHwwO2E9YjBbY1soY1tsPj4yXXwwKSs4Pj4yXSYxMjddKGwpfDA7bD1kW2FdfDA7aWYoKGwmMXww
KT09MCl7bT1sPj4+MX1lbHNle209Y1thKzQ+PjJdfDB9bD1kW2ErMTJ8MF18MDtpZigobCYxfDAp
PT0wKXtuPWw+Pj4xfWVsc2V7bj1jW2ErMTY+PjJdfDB9aWYoKG18MCk9PSgtbnwwKSl7Y1tnPj4y
XT1jW2c+PjJdfDQ7aT1qO3JldHVybn1jW2s+PjJdPWNbZj4+Ml07Zj1mcShlLGssYSxhKzI0fDAs
aCxnLDApfDA7Zz1mLWF8MDtkb3tpZigoZnwwKT09KGF8MCkpe2lmKChjW2I+PjJdfDApIT0xMil7
YnJlYWt9Y1tiPj4yXT0wO2k9ajtyZXR1cm59fXdoaWxlKDApO2lmKChnfDApIT0xMil7aT1qO3Jl
dHVybn1nPWNbYj4+Ml18MDtpZigoZ3wwKT49MTIpe2k9ajtyZXR1cm59Y1tiPj4yXT1nKzEyO2k9
ajtyZXR1cm59ZnVuY3Rpb24gZ0soYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDt2YXIgaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wO2I9aTtoPWU7ZT1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2g+PjJdO2g9ZHwwO2Q9Y1toPj4yXXwwO2Rve2lmKChkfDAp
PT0wKXtqPTB9ZWxzZXtpZigoY1tkKzEyPj4yXXwwKSE9KGNbZCsxNj4+Ml18MCkpe2o9ZDticmVh
a31pZigoYjBbY1soY1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwKT09LTEpe2NbaD4+Ml09MDtq
PTA7YnJlYWt9ZWxzZXtqPWNbaD4+Ml18MDticmVha319fXdoaWxlKDApO2Q9KGp8MCk9PTA7aj1l
fDA7ZT1jW2o+PjJdfDA7TDI4MjI6ZG97aWYoKGV8MCk9PTApe2s9MjMzN31lbHNle2Rve2lmKChj
W2UrMTI+PjJdfDApPT0oY1tlKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMzY+PjJd
JjEyN10oZSl8MCkhPS0xKXticmVha31jW2o+PjJdPTA7az0yMzM3O2JyZWFrIEwyODIyfX13aGls
ZSgwKTtpZihkKXtsPWU7bT0wfWVsc2V7az0yMzM4fX19d2hpbGUoMCk7aWYoKGt8MCk9PTIzMzcp
e2lmKGQpe2s9MjMzOH1lbHNle2w9MDttPTF9fWlmKChrfDApPT0yMzM4KXtjW2Y+PjJdPWNbZj4+
Ml18NjtpPWI7cmV0dXJufWQ9Y1toPj4yXXwwO2U9Y1tkKzEyPj4yXXwwO2lmKChlfDApPT0oY1tk
KzE2Pj4yXXwwKSl7bj0oYjBbY1soY1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwKSYyNTV9ZWxz
ZXtuPWFbZV18MH1pZigoYjFbY1soY1tnPj4yXXwwKSszNj4+Ml0mNjNdKGcsbiwwKXwwKTw8MjQ+
PjI0IT0zNyl7Y1tmPj4yXT1jW2Y+PjJdfDQ7aT1iO3JldHVybn1uPWNbaD4+Ml18MDtnPW4rMTJ8
MDtlPWNbZz4+Ml18MDtpZigoZXwwKT09KGNbbisxNj4+Ml18MCkpe2Q9Y1soY1tuPj4yXXwwKSs0
MD4+Ml18MDtiMFtkJjEyN10obil8MH1lbHNle2NbZz4+Ml09ZSsxfWU9Y1toPj4yXXwwO2Rve2lm
KChlfDApPT0wKXtvPTB9ZWxzZXtpZigoY1tlKzEyPj4yXXwwKSE9KGNbZSsxNj4+Ml18MCkpe289
ZTticmVha31pZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXwwKT09LTEpe2NbaD4+
Ml09MDtvPTA7YnJlYWt9ZWxzZXtvPWNbaD4+Ml18MDticmVha319fXdoaWxlKDApO2g9KG98MCk9
PTA7ZG97aWYobSl7az0yMzU3fWVsc2V7aWYoKGNbbCsxMj4+Ml18MCkhPShjW2wrMTY+PjJdfDAp
KXtpZighKGheKGx8MCk9PTApKXticmVha31pPWI7cmV0dXJufWlmKChiMFtjWyhjW2w+PjJdfDAp
KzM2Pj4yXSYxMjddKGwpfDApPT0tMSl7Y1tqPj4yXT0wO2s9MjM1NzticmVha31pZighaCl7YnJl
YWt9aT1iO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKGt8MCk9PTIzNTcpe2lmKGgpe2JyZWFrfWk9
YjtyZXR1cm59fXdoaWxlKDApO2NbZj4+Ml09Y1tmPj4yXXwyO2k9YjtyZXR1cm59ZnVuY3Rpb24g
Z0woZCxlLGYsZyxoKXtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9
MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wO2o9aTtrPWU7ZT1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2Q9Y1trPj4yXXwwO2Rve2lmKChkfDApPT0w
KXtsPTB9ZWxzZXtpZigoY1tkKzEyPj4yXXwwKSE9KGNbZCsxNj4+Ml18MCkpe2w9ZDticmVha31p
ZigoYjBbY1soY1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwKT09LTEpe2Nbaz4+Ml09MDtsPTA7
YnJlYWt9ZWxzZXtsPWNbaz4+Ml18MDticmVha319fXdoaWxlKDApO2Q9KGx8MCk9PTA7bD1lfDA7
ZT1jW2w+PjJdfDA7TDI4NzY6ZG97aWYoKGV8MCk9PTApe209MjM3N31lbHNle2Rve2lmKChjW2Ur
MTI+PjJdfDApPT0oY1tlKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMzY+PjJdJjEy
N10oZSl8MCkhPS0xKXticmVha31jW2w+PjJdPTA7bT0yMzc3O2JyZWFrIEwyODc2fX13aGlsZSgw
KTtpZihkKXtuPWV9ZWxzZXttPTIzNzh9fX13aGlsZSgwKTtpZigobXwwKT09MjM3Nyl7aWYoZCl7
bT0yMzc4fWVsc2V7bj0wfX1pZigobXwwKT09MjM3OCl7Y1tmPj4yXT1jW2Y+PjJdfDY7bz0wO2k9
ajtyZXR1cm4gb3wwfWQ9Y1trPj4yXXwwO2U9Y1tkKzEyPj4yXXwwO2lmKChlfDApPT0oY1tkKzE2
Pj4yXXwwKSl7cD0oYjBbY1soY1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwKSYyNTV9ZWxzZXtw
PWFbZV18MH1kb3tpZihwPDwyND4+MjQ+LTEpe2U9Zys4fDA7aWYoKGJbKGNbZT4+Ml18MCkrKHA8
PDI0Pj4yNDw8MSk+PjFdJjIwNDgpPT0wKXticmVha31kPWc7cT0oYjFbY1soY1tkPj4yXXwwKSsz
Nj4+Ml0mNjNdKGcscCwwKXwwKTw8MjQ+PjI0O3I9Y1trPj4yXXwwO3M9cisxMnwwO3Q9Y1tzPj4y
XXwwO2lmKCh0fDApPT0oY1tyKzE2Pj4yXXwwKSl7dT1jWyhjW3I+PjJdfDApKzQwPj4yXXwwO2Iw
W3UmMTI3XShyKXwwO3Y9cTt3PWg7eD1ufWVsc2V7Y1tzPj4yXT10KzE7dj1xO3c9aDt4PW59d2hp
bGUoMSl7eT12LTQ4fDA7cT13LTF8MDt0PWNbaz4+Ml18MDtkb3tpZigodHwwKT09MCl7ej0wfWVs
c2V7aWYoKGNbdCsxMj4+Ml18MCkhPShjW3QrMTY+PjJdfDApKXt6PXQ7YnJlYWt9aWYoKGIwW2Nb
KGNbdD4+Ml18MCkrMzY+PjJdJjEyN10odCl8MCk9PS0xKXtjW2s+PjJdPTA7ej0wO2JyZWFrfWVs
c2V7ej1jW2s+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTt0PSh6fDApPT0wO2lmKCh4fDApPT0wKXtB
PXo7Qj0wfWVsc2V7ZG97aWYoKGNbeCsxMj4+Ml18MCk9PShjW3grMTY+PjJdfDApKXtpZigoYjBb
Y1soY1t4Pj4yXXwwKSszNj4+Ml0mMTI3XSh4KXwwKSE9LTEpe0M9eDticmVha31jW2w+PjJdPTA7
Qz0wfWVsc2V7Qz14fX13aGlsZSgwKTtBPWNbaz4+Ml18MDtCPUN9RD0oQnwwKT09MDtpZighKCh0
XkQpJihxfDApPjApKXttPTI0MDc7YnJlYWt9cz1jW0ErMTI+PjJdfDA7aWYoKHN8MCk9PShjW0Er
MTY+PjJdfDApKXtFPShiMFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApJjI1NX1lbHNl
e0U9YVtzXXwwfWlmKEU8PDI0Pj4yNDw9LTEpe289eTttPTI0MjI7YnJlYWt9aWYoKGJbKGNbZT4+
Ml18MCkrKEU8PDI0Pj4yNDw8MSk+PjFdJjIwNDgpPT0wKXtvPXk7bT0yNDIzO2JyZWFrfXM9KChi
MVtjWyhjW2Q+PjJdfDApKzM2Pj4yXSY2M10oZyxFLDApfDApPDwyND4+MjQpKyh5KjEwfDApfDA7
cj1jW2s+PjJdfDA7dT1yKzEyfDA7Rj1jW3U+PjJdfDA7aWYoKEZ8MCk9PShjW3IrMTY+PjJdfDAp
KXtHPWNbKGNbcj4+Ml18MCkrNDA+PjJdfDA7YjBbRyYxMjddKHIpfDA7dj1zO3c9cTt4PUI7Y29u
dGludWV9ZWxzZXtjW3U+PjJdPUYrMTt2PXM7dz1xO3g9Qjtjb250aW51ZX19aWYoKG18MCk9PTI0
MDcpe2Rve2lmKChBfDApPT0wKXtIPTB9ZWxzZXtpZigoY1tBKzEyPj4yXXwwKSE9KGNbQSsxNj4+
Ml18MCkpe0g9QTticmVha31pZigoYjBbY1soY1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKT09
LTEpe2Nbaz4+Ml09MDtIPTA7YnJlYWt9ZWxzZXtIPWNbaz4+Ml18MDticmVha319fXdoaWxlKDAp
O2Q9KEh8MCk9PTA7TDI5MzM6ZG97aWYoRCl7bT0yNDE3fWVsc2V7ZG97aWYoKGNbQisxMj4+Ml18
MCk9PShjW0IrMTY+PjJdfDApKXtpZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXww
KSE9LTEpe2JyZWFrfWNbbD4+Ml09MDttPTI0MTc7YnJlYWsgTDI5MzN9fXdoaWxlKDApO2lmKGQp
e289eX1lbHNle2JyZWFrfWk9ajtyZXR1cm4gb3wwfX13aGlsZSgwKTtkb3tpZigobXwwKT09MjQx
Nyl7aWYoZCl7YnJlYWt9ZWxzZXtvPXl9aT1qO3JldHVybiBvfDB9fXdoaWxlKDApO2NbZj4+Ml09
Y1tmPj4yXXwyO289eTtpPWo7cmV0dXJuIG98MH1lbHNlIGlmKChtfDApPT0yNDIyKXtpPWo7cmV0
dXJuIG98MH1lbHNlIGlmKChtfDApPT0yNDIzKXtpPWo7cmV0dXJuIG98MH19fXdoaWxlKDApO2Nb
Zj4+Ml09Y1tmPj4yXXw0O289MDtpPWo7cmV0dXJuIG98MH1mdW5jdGlvbiBnTShhKXthPWF8MDty
ZXR1cm4gMn1mdW5jdGlvbiBnTihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlv
biBnTyhhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBnUChhLGIsZCxlLGYsZyxoKXth
PWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTA7
aj1pO2k9aSsxNnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaz4+Ml07
az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDtsPWorOHww
O2Nbaz4+Ml09Y1tkPj4yXTtjW2w+PjJdPWNbZT4+Ml07Z1IoYSxiLGssbCxmLGcsaCwyMjk2LDIz
MjgpO2k9ajtyZXR1cm59ZnVuY3Rpb24gZ1EoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTA7az1pO2k9aSsxNnwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNb
bD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWt8MDtt
PWsrOHwwO249ZCs4fDA7bz1iMFtjWyhjW24+PjJdfDApKzIwPj4yXSYxMjddKG4pfDA7Y1tsPj4y
XT1jW2U+PjJdO2NbbT4+Ml09Y1tmPj4yXTtmPWFbb118MDtpZigoZiYxKT09MCl7cD1vKzR8MDtx
PW8rNHwwfWVsc2V7ZT1jW28rOD4+Ml18MDtwPWU7cT1lfWU9ZiYyNTU7aWYoKGUmMXwwKT09MCl7
cj1lPj4+MX1lbHNle3I9Y1tvKzQ+PjJdfDB9Z1IoYixkLGwsbSxnLGgsaixxLHArKHI8PDIpfDAp
O2k9aztyZXR1cm59ZnVuY3Rpb24gZ1IoYSxiLGQsZSxmLGcsaCxqLGspe2E9YXwwO2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0w
LFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFj
PTAsYWQ9MCxhZT0wLGFmPTAsYWc9MDtsPWk7aT1pKzQ4fDA7bT1kO2Q9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZD4+Ml09Y1ttPj4yXTttPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW20+PjJdO209bHwwO249bCsxNnwwO289bCsyNHwwO3A9bCszMnwwO3E9bCs0MHwwO2VqKG4s
Zik7cj1ufDA7bj1jW3I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW20+PjJdPTE1Njg4O2Nb
bSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTY4OCxtLDk2KX1tPShjWzM5MjNdfDApLTF8MDtz
PWNbbis4Pj4yXXwwO2Rve2lmKChjW24rMTI+PjJdfDApLXM+PjI+Pj4wPm0+Pj4wKXt0PWNbcyso
bTw8Mik+PjJdfDA7aWYoKHR8MCk9PTApe2JyZWFrfXU9dDt2PWNbcj4+Ml18MDtkeih2KXwwO2Nb
Zz4+Ml09MDt2PWR8MDtMMjk2OTpkb3tpZigoanwwKT09KGt8MCkpe3c9MjUwOH1lbHNle3g9ZXww
O3k9dDt6PXQ7QT10O0I9YjtDPXB8MDtEPXF8MDtFPW98MDtGPWo7Rz0wO0wyOTcxOndoaWxlKDEp
e0g9Rzt3aGlsZSgxKXtpZigoSHwwKSE9MCl7dz0yNTA4O2JyZWFrIEwyOTY5fUk9Y1t2Pj4yXXww
O2Rve2lmKChJfDApPT0wKXtKPTB9ZWxzZXtLPWNbSSsxMj4+Ml18MDtpZigoS3wwKT09KGNbSSsx
Nj4+Ml18MCkpe0w9YjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwfWVsc2V7TD1jW0s+
PjJdfDB9aWYoKEx8MCkhPS0xKXtKPUk7YnJlYWt9Y1t2Pj4yXT0wO0o9MH19d2hpbGUoMCk7ST0o
SnwwKT09MDtLPWNbeD4+Ml18MDtkb3tpZigoS3wwKT09MCl7dz0yNDYwfWVsc2V7TT1jW0srMTI+
PjJdfDA7aWYoKE18MCk9PShjW0srMTY+PjJdfDApKXtOPWIwW2NbKGNbSz4+Ml18MCkrMzY+PjJd
JjEyN10oSyl8MH1lbHNle049Y1tNPj4yXXwwfWlmKChOfDApPT0tMSl7Y1t4Pj4yXT0wO3c9MjQ2
MDticmVha31lbHNle2lmKEleKEt8MCk9PTApe089SzticmVha31lbHNle3c9MjQ2MjticmVhayBM
Mjk3MX19fX13aGlsZSgwKTtpZigod3wwKT09MjQ2MCl7dz0wO2lmKEkpe3c9MjQ2MjticmVhayBM
Mjk3MX1lbHNle089MH19aWYoKGIxW2NbKGNbeT4+Ml18MCkrNTI+PjJdJjYzXSh1LGNbRj4+Ml18
MCwwKXwwKTw8MjQ+PjI0PT0zNyl7dz0yNDY1O2JyZWFrfWlmKGIxW2NbKGNbej4+Ml18MCkrMTI+
PjJdJjYzXSh1LDgxOTIsY1tGPj4yXXwwKXwwKXtQPUY7dz0yNDc1O2JyZWFrfVE9SisxMnwwO0s9
Y1tRPj4yXXwwO1I9SisxNnwwO2lmKChLfDApPT0oY1tSPj4yXXwwKSl7Uz1iMFtjWyhjW0o+PjJd
fDApKzM2Pj4yXSYxMjddKEopfDB9ZWxzZXtTPWNbSz4+Ml18MH1LPWJfW2NbKGNbQT4+Ml18MCkr
Mjg+PjJdJjMxXSh1LFMpfDA7aWYoKEt8MCk9PShiX1tjWyhjW0E+PjJdfDApKzI4Pj4yXSYzMV0o
dSxjW0Y+PjJdfDApfDApKXt3PTI1MDM7YnJlYWt9Y1tnPj4yXT00O0g9NH1MMzAwMzpkb3tpZigo
d3wwKT09MjUwMyl7dz0wO0g9Y1tRPj4yXXwwO2lmKChIfDApPT0oY1tSPj4yXXwwKSl7Sz1jWyhj
W0o+PjJdfDApKzQwPj4yXXwwO2IwW0smMTI3XShKKXwwfWVsc2V7Y1tRPj4yXT1IKzR9VD1GKzR8
MH1lbHNlIGlmKCh3fDApPT0yNDY1KXt3PTA7SD1GKzR8MDtpZigoSHwwKT09KGt8MCkpe3c9MjQ2
NjticmVhayBMMjk3MX1LPWIxW2NbKGNbeT4+Ml18MCkrNTI+PjJdJjYzXSh1LGNbSD4+Ml18MCww
KXwwO3N3aXRjaChLPDwyND4+MjQpe2Nhc2UgNjk6Y2FzZSA0ODp7TT1GKzh8MDtpZigoTXwwKT09
KGt8MCkpe3c9MjQ2OTticmVhayBMMjk3MX1VPUs7Vj1iMVtjWyhjW3k+PjJdfDApKzUyPj4yXSY2
M10odSxjW00+PjJdfDAsMCl8MDtXPU07YnJlYWt9O2RlZmF1bHQ6e1U9MDtWPUs7Vz1IfX1IPWNb
KGNbQj4+Ml18MCkrMzY+PjJdfDA7Y1tDPj4yXT1KO2NbRD4+Ml09TztiN1tIJjddKG8sYixwLHEs
ZixnLGgsVixVKTtjW3Y+PjJdPWNbRT4+Ml07VD1XKzR8MH1lbHNlIGlmKCh3fDApPT0yNDc1KXt3
aGlsZSgxKXt3PTA7SD1QKzR8MDtpZigoSHwwKT09KGt8MCkpe1g9azticmVha31pZihiMVtjWyhj
W3o+PjJdfDApKzEyPj4yXSY2M10odSw4MTkyLGNbSD4+Ml18MCl8MCl7UD1IO3c9MjQ3NX1lbHNl
e1g9SDticmVha319ST1KO0g9Tzt3aGlsZSgxKXtkb3tpZigoSXwwKT09MCl7WT0wfWVsc2V7Sz1j
W0krMTI+PjJdfDA7aWYoKEt8MCk9PShjW0krMTY+PjJdfDApKXtaPWIwW2NbKGNbST4+Ml18MCkr
MzY+PjJdJjEyN10oSSl8MH1lbHNle1o9Y1tLPj4yXXwwfWlmKChafDApIT0tMSl7WT1JO2JyZWFr
fWNbdj4+Ml09MDtZPTB9fXdoaWxlKDApO0s9KFl8MCk9PTA7ZG97aWYoKEh8MCk9PTApe3c9MjQ5
MH1lbHNle009Y1tIKzEyPj4yXXwwO2lmKChNfDApPT0oY1tIKzE2Pj4yXXwwKSl7Xz1iMFtjWyhj
W0g+PjJdfDApKzM2Pj4yXSYxMjddKEgpfDB9ZWxzZXtfPWNbTT4+Ml18MH1pZigoX3wwKT09LTEp
e2NbeD4+Ml09MDt3PTI0OTA7YnJlYWt9ZWxzZXtpZihLXihIfDApPT0wKXskPUg7YnJlYWt9ZWxz
ZXtUPVg7YnJlYWsgTDMwMDN9fX19d2hpbGUoMCk7aWYoKHd8MCk9PTI0OTApe3c9MDtpZihLKXtU
PVg7YnJlYWsgTDMwMDN9ZWxzZXskPTB9fU09WSsxMnwwO2FhPWNbTT4+Ml18MDthYj1ZKzE2fDA7
aWYoKGFhfDApPT0oY1thYj4+Ml18MCkpe2FjPWIwW2NbKGNbWT4+Ml18MCkrMzY+PjJdJjEyN10o
WSl8MH1lbHNle2FjPWNbYWE+PjJdfDB9aWYoIShiMVtjWyhjW3o+PjJdfDApKzEyPj4yXSY2M10o
dSw4MTkyLGFjKXwwKSl7VD1YO2JyZWFrIEwzMDAzfWFhPWNbTT4+Ml18MDtpZigoYWF8MCk9PShj
W2FiPj4yXXwwKSl7YWI9Y1soY1tZPj4yXXwwKSs0MD4+Ml18MDtiMFthYiYxMjddKFkpfDA7ST1Z
O0g9JDtjb250aW51ZX1lbHNle2NbTT4+Ml09YWErNDtJPVk7SD0kO2NvbnRpbnVlfX19fXdoaWxl
KDApO2lmKChUfDApPT0oa3wwKSl7dz0yNTA4O2JyZWFrIEwyOTY5fUY9VDtHPWNbZz4+Ml18MH1p
Zigod3wwKT09MjQ2Mil7Y1tnPj4yXT00O2FkPUo7YnJlYWt9ZWxzZSBpZigod3wwKT09MjQ2Nil7
Y1tnPj4yXT00O2FkPUo7YnJlYWt9ZWxzZSBpZigod3wwKT09MjQ2OSl7Y1tnPj4yXT00O2FkPUo7
YnJlYWt9fX13aGlsZSgwKTtpZigod3wwKT09MjUwOCl7YWQ9Y1t2Pj4yXXwwfXU9ZHwwO2Rve2lm
KChhZHwwKSE9MCl7dD1jW2FkKzEyPj4yXXwwO2lmKCh0fDApPT0oY1thZCsxNj4+Ml18MCkpe2Fl
PWIwW2NbKGNbYWQ+PjJdfDApKzM2Pj4yXSYxMjddKGFkKXwwfWVsc2V7YWU9Y1t0Pj4yXXwwfWlm
KChhZXwwKSE9LTEpe2JyZWFrfWNbdT4+Ml09MH19d2hpbGUoMCk7dj1jW3U+PjJdfDA7dD0odnww
KT09MDtHPWV8MDtGPWNbRz4+Ml18MDtkb3tpZigoRnwwKT09MCl7dz0yNTIxfWVsc2V7ej1jW0Yr
MTI+PjJdfDA7aWYoKHp8MCk9PShjW0YrMTY+PjJdfDApKXthZj1iMFtjWyhjW0Y+PjJdfDApKzM2
Pj4yXSYxMjddKEYpfDB9ZWxzZXthZj1jW3o+PjJdfDB9aWYoKGFmfDApPT0tMSl7Y1tHPj4yXT0w
O3c9MjUyMTticmVha31pZighKHReKEZ8MCk9PTApKXticmVha31hZz1hfDA7Y1thZz4+Ml09djtp
PWw7cmV0dXJufX13aGlsZSgwKTtkb3tpZigod3wwKT09MjUyMSl7aWYodCl7YnJlYWt9YWc9YXww
O2NbYWc+PjJdPXY7aT1sO3JldHVybn19d2hpbGUoMCk7Y1tnPj4yXT1jW2c+PjJdfDI7YWc9YXww
O2NbYWc+PjJdPXY7aT1sO3JldHVybn19d2hpbGUoMCk7bD1iTyg0KXwwO2txKGwpO2JsKGx8MCw4
MTc2LDEzNCl9ZnVuY3Rpb24gZ1MoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wO2o9aTtpPWkrMzJ8MDtrPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tkPj4yXT1jW2s+PjJdO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+
Ml07az1qfDA7bD1qKzh8MDttPWorMjR8MDtlaihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChj
WzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFco
MTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7bj1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEy
Pj4yXXwwKS1uPj4yPj4+MD5sPj4+MCl7bz1jW24rKGw8PDIpPj4yXXwwO2lmKChvfDApPT0wKXti
cmVha31wPW87bz1jW2Y+PjJdfDA7ZHoobyl8MDtvPWNbZT4+Ml18MDtxPWIrOHwwO3I9YjBbY1tj
W3E+PjJdPj4yXSYxMjddKHEpfDA7Y1trPj4yXT1vO289KGZTKGQsayxyLHIrMTY4fDAscCxnLDAp
fDApLXJ8MDtpZigob3wwKT49MTY4KXtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7
aT1qO3JldHVybn1jW2grMjQ+PjJdPSgob3wwKS8xMnwwfDApJTd8MDtzPWR8MDt0PWNbcz4+Ml18
MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGopO2Js
KGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ1QoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MCx0PTAsdT0wO2o9aTtpPWkrMzJ8MDtrPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tkPj4yXT1jW2s+PjJdO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbaz4+Ml07az1qfDA7bD1qKzh8MDttPWorMjR8MDtlaihtLGYpO2Y9bXwwO209Y1tmPj4yXXww
O2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJd
PTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7bj1jW20rOD4+Ml18MDtkb3tpZigo
Y1ttKzEyPj4yXXwwKS1uPj4yPj4+MD5sPj4+MCl7bz1jW24rKGw8PDIpPj4yXXwwO2lmKChvfDAp
PT0wKXticmVha31wPW87bz1jW2Y+PjJdfDA7ZHoobyl8MDtvPWNbZT4+Ml18MDtxPWIrOHwwO3I9
YjBbY1soY1txPj4yXXwwKSs0Pj4yXSYxMjddKHEpfDA7Y1trPj4yXT1vO289KGZTKGQsayxyLHIr
Mjg4fDAscCxnLDApfDApLXJ8MDtpZigob3wwKT49Mjg4KXtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8
MDtjW3U+PjJdPXQ7aT1qO3JldHVybn1jW2grMTY+PjJdPSgob3wwKS8xMnwwfDApJTEyfDA7cz1k
fDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8o
NCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdVKGEsYixkLGUsZixnLGgpe2E9
YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7Yj1pO2k9aSszMnwwO2o9ZDtkPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Q+PjJdPWNbaj4+Ml07aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
ZT4+Ml09Y1tqPj4yXTtqPWJ8MDtrPWIrOHwwO2w9YisyNHwwO2VqKGwsZik7Zj1sfDA7bD1jW2Y+
PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2s+PjJdPTE1Njg4O2Nbays0Pj4yXT0xMjtjW2sr
OD4+Ml09MDtkVygxNTY4OCxrLDk2KX1rPShjWzM5MjNdfDApLTF8MDttPWNbbCs4Pj4yXXwwO2Rv
e2lmKChjW2wrMTI+PjJdfDApLW0+PjI+Pj4wPms+Pj4wKXtuPWNbbSsoazw8Mik+PjJdfDA7aWYo
KG58MCk9PTApe2JyZWFrfW89bjtuPWNbZj4+Ml18MDtkeihuKXwwO2Nbaj4+Ml09Y1tlPj4yXTtu
PWhjKGQsaixnLG8sNCl8MDtpZigoY1tnPj4yXSY0fDApIT0wKXtwPWR8MDtxPWNbcD4+Ml18MDty
PWF8MDtjW3I+PjJdPXE7aT1iO3JldHVybn1pZigobnwwKTw2OSl7cz1uKzJlM3wwfWVsc2V7cz0o
bi02OXwwKT4+PjA8MzE/bisxOTAwfDA6bn1jW2grMjA+PjJdPXMtMTkwMDtwPWR8MDtxPWNbcD4+
Ml18MDtyPWF8MDtjW3I+PjJdPXE7aT1iO3JldHVybn19d2hpbGUoMCk7Yj1iTyg0KXwwO2txKGIp
O2JsKGJ8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ1YoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDthPWk7Zz1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZD4+Ml09Y1tnPj4yXTtnPWJ8MDtiPWR8MDtkPWY7TDMxMjc6d2hpbGUoMSl7aD1jW2c+
PjJdfDA7ZG97aWYoKGh8MCk9PTApe2o9MX1lbHNle2s9Y1toKzEyPj4yXXwwO2lmKChrfDApPT0o
Y1toKzE2Pj4yXXwwKSl7bD1iMFtjWyhjW2g+PjJdfDApKzM2Pj4yXSYxMjddKGgpfDB9ZWxzZXts
PWNbaz4+Ml18MH1pZigobHwwKT09LTEpe2NbZz4+Ml09MDtqPTE7YnJlYWt9ZWxzZXtqPShjW2c+
PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7aD1jW2I+PjJdfDA7ZG97aWYoKGh8MCk9PTApe209
MjU4MX1lbHNle2s9Y1toKzEyPj4yXXwwO2lmKChrfDApPT0oY1toKzE2Pj4yXXwwKSl7bj1iMFtj
WyhjW2g+PjJdfDApKzM2Pj4yXSYxMjddKGgpfDB9ZWxzZXtuPWNbaz4+Ml18MH1pZigobnwwKT09
LTEpe2NbYj4+Ml09MDttPTI1ODE7YnJlYWt9ZWxzZXtrPShofDApPT0wO2lmKGpeayl7bz1oO3A9
azticmVha31lbHNle3E9aDtyPWs7YnJlYWsgTDMxMjd9fX19d2hpbGUoMCk7aWYoKG18MCk9PTI1
ODEpe209MDtpZihqKXtxPTA7cj0xO2JyZWFrfWVsc2V7bz0wO3A9MX19aD1jW2c+PjJdfDA7az1j
W2grMTI+PjJdfDA7aWYoKGt8MCk9PShjW2grMTY+PjJdfDApKXtzPWIwW2NbKGNbaD4+Ml18MCkr
MzY+PjJdJjEyN10oaCl8MH1lbHNle3M9Y1trPj4yXXwwfWlmKCEoYjFbY1soY1tkPj4yXXwwKSsx
Mj4+Ml0mNjNdKGYsODE5MixzKXwwKSl7cT1vO3I9cDticmVha31rPWNbZz4+Ml18MDtoPWsrMTJ8
MDt0PWNbaD4+Ml18MDtpZigodHwwKT09KGNbaysxNj4+Ml18MCkpe3U9Y1soY1trPj4yXXwwKSs0
MD4+Ml18MDtiMFt1JjEyN10oayl8MDtjb250aW51ZX1lbHNle2NbaD4+Ml09dCs0O2NvbnRpbnVl
fX1wPWNbZz4+Ml18MDtkb3tpZigocHwwKT09MCl7dj0xfWVsc2V7bz1jW3ArMTI+PjJdfDA7aWYo
KG98MCk9PShjW3ArMTY+PjJdfDApKXt3PWIwW2NbKGNbcD4+Ml18MCkrMzY+PjJdJjEyN10ocCl8
MH1lbHNle3c9Y1tvPj4yXXwwfWlmKCh3fDApPT0tMSl7Y1tnPj4yXT0wO3Y9MTticmVha31lbHNl
e3Y9KGNbZz4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZihyKXttPTI2MDN9ZWxzZXtn
PWNbcSsxMj4+Ml18MDtpZigoZ3wwKT09KGNbcSsxNj4+Ml18MCkpe3g9YjBbY1soY1txPj4yXXww
KSszNj4+Ml0mMTI3XShxKXwwfWVsc2V7eD1jW2c+PjJdfDB9aWYoKHh8MCk9PS0xKXtjW2I+PjJd
PTA7bT0yNjAzO2JyZWFrfWlmKCEodl4ocXwwKT09MCkpe2JyZWFrfWk9YTtyZXR1cm59fXdoaWxl
KDApO2Rve2lmKChtfDApPT0yNjAzKXtpZih2KXticmVha31pPWE7cmV0dXJufX13aGlsZSgwKTtj
W2U+PjJdPWNbZT4+Ml18MjtpPWE7cmV0dXJufWZ1bmN0aW9uIGdXKGIsZCxlLGYsZyxoLGosayxs
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2
YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9
MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0w
LE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAs
YWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFs
PTAsYW09MDtsPWk7aT1pKzMyOHwwO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbbT4+Ml07bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWx8
MDtuPWwrOHwwO289bCsxNnwwO3A9bCsyNHwwO3E9bCszMnwwO3I9bCs0MHwwO3M9bCs0OHwwO3Q9
bCs1NnwwO3U9bCs2NHwwO3Y9bCs3MnwwO3c9bCs4MHwwO3g9bCs4OHwwO3k9bCs5NnwwO3o9bCsx
MTJ8MDtBPWwrMTIwfDA7Qj1sKzEyOHwwO0M9bCsxMzZ8MDtEPWwrMTQ0fDA7RT1sKzE1MnwwO0Y9
bCsxNjB8MDtHPWwrMTY4fDA7SD1sKzE3NnwwO0k9bCsxODR8MDtKPWwrMTkyfDA7Sz1sKzIwMHww
O0w9bCsyMDh8MDtNPWwrMjE2fDA7Tj1sKzIyNHwwO089bCsyMzJ8MDtQPWwrMjQwfDA7UT1sKzI0
OHwwO1I9bCsyNTZ8MDtTPWwrMjY0fDA7VD1sKzI3MnwwO1U9bCsyODB8MDtWPWwrMjg4fDA7Vz1s
KzI5NnwwO1g9bCszMDR8MDtZPWwrMzEyfDA7Wj1sKzMyMHwwO2NbaD4+Ml09MDtlaih6LGcpO189
enwwO3o9Y1tfPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1t5Pj4yXT0xNTY4ODtjW3krND4+
Ml09MTI7Y1t5Kzg+PjJdPTA7ZFcoMTU2ODgseSw5Nil9eT0oY1szOTIzXXwwKS0xfDA7JD1jW3or
OD4+Ml18MDtkb3tpZigoY1t6KzEyPj4yXXwwKS0kPj4yPj4+MD55Pj4+MCl7YWE9Y1skKyh5PDwy
KT4+Ml18MDtpZigoYWF8MCk9PTApe2JyZWFrfWFiPWFhO2FhPWNbXz4+Ml18MDtkeihhYSl8MDtM
MzE5Mjpkb3tzd2l0Y2goazw8MjQ+PjI0fDApe2Nhc2UgMTAwOmNhc2UgMTAxOnthYT1qKzEyfDA7
Y1t2Pj4yXT1jW2Y+PjJdO2FjPWhjKGUsdixoLGFiLDIpfDA7YWQ9Y1toPj4yXXwwO2Rve2lmKChh
ZCY0fDApPT0wKXtpZigoYWMtMXwwKT4+PjA+PTMxKXticmVha31jW2FhPj4yXT1hYzticmVhayBM
MzE5Mn19d2hpbGUoMCk7Y1toPj4yXT1hZHw0O2JyZWFrfTtjYXNlIDExMDpjYXNlIDExNjp7Y1tK
Pj4yXT1jW2Y+PjJdO2dWKDAsZSxKLGgsYWIpO2JyZWFrfTtjYXNlIDg4OnthYz1kKzh8MDthYT1i
MFtjWyhjW2FjPj4yXXwwKSsyND4+Ml0mMTI3XShhYyl8MDthYz1lfDA7Y1tYPj4yXT1jW2FjPj4y
XTtjW1k+PjJdPWNbZj4+Ml07YWU9YVthYV18MDtpZigoYWUmMSk9PTApe2FmPWFhKzR8MDthZz1h
YSs0fDB9ZWxzZXthaD1jW2FhKzg+PjJdfDA7YWY9YWg7YWc9YWh9YWg9YWUmMjU1O2lmKChhaCYx
fDApPT0wKXthaT1haD4+PjF9ZWxzZXthaT1jW2FhKzQ+PjJdfDB9Z1IoVyxkLFgsWSxnLGgsaixh
ZyxhZisoYWk8PDIpfDApO2NbYWM+PjJdPWNbVz4+Ml07YnJlYWt9O2Nhc2UgOTg6Y2FzZSA2Njpj
YXNlIDEwNDp7YWM9Y1tmPj4yXXwwO2FhPWQrOHwwO2FoPWIwW2NbKGNbYWE+PjJdfDApKzQ+PjJd
JjEyN10oYWEpfDA7Y1t3Pj4yXT1hYzthYz0oZlMoZSx3LGFoLGFoKzI4OHwwLGFiLGgsMCl8MCkt
YWh8MDtpZigoYWN8MCk+PTI4OCl7YnJlYWsgTDMxOTJ9Y1tqKzE2Pj4yXT0oKGFjfDApLzEyfDB8
MCklMTJ8MDticmVha307Y2FzZSAxMTI6e2NbSz4+Ml09Y1tmPj4yXTtnWChkLGorOHwwLGUsSyxo
LGFiKTticmVha307Y2FzZSAxMTQ6e2FjPWV8MDtjW00+PjJdPWNbYWM+PjJdO2NbTj4+Ml09Y1tm
Pj4yXTtnUihMLGQsTSxOLGcsaCxqLDIyMTYsMjI2MCk7Y1thYz4+Ml09Y1tMPj4yXTticmVha307
Y2FzZSAzNzp7Y1taPj4yXT1jW2Y+PjJdO2dZKDAsZSxaLGgsYWIpO2JyZWFrfTtjYXNlIDY4Onth
Yz1lfDA7Y1tFPj4yXT1jW2FjPj4yXTtjW0Y+PjJdPWNbZj4+Ml07Z1IoRCxkLEUsRixnLGgsaiwy
MjY0LDIyOTYpO2NbYWM+PjJdPWNbRD4+Ml07YnJlYWt9O2Nhc2UgODk6e2NbbT4+Ml09Y1tmPj4y
XTthYz1oYyhlLG0saCxhYiw0KXwwO2lmKChjW2g+PjJdJjR8MCkhPTApe2JyZWFrIEwzMTkyfWNb
aisyMD4+Ml09YWMtMTkwMDticmVha307Y2FzZSA4Mjp7YWM9ZXwwO2NbUD4+Ml09Y1thYz4+Ml07
Y1tRPj4yXT1jW2Y+PjJdO2dSKE8sZCxQLFEsZyxoLGosMjE5MiwyMjEyKTtjW2FjPj4yXT1jW08+
PjJdO2JyZWFrfTtjYXNlIDgzOntjW3A+PjJdPWNbZj4+Ml07YWM9aGMoZSxwLGgsYWIsMil8MDth
aD1jW2g+PjJdfDA7aWYoKGFoJjR8MCk9PTAmKGFjfDApPDYxKXtjW2o+PjJdPWFjO2JyZWFrIEwz
MTkyfWVsc2V7Y1toPj4yXT1haHw0O2JyZWFrIEwzMTkyfWJyZWFrfTtjYXNlIDEwNjp7Y1tzPj4y
XT1jW2Y+PjJdO2FoPWhjKGUscyxoLGFiLDMpfDA7YWM9Y1toPj4yXXwwO2lmKChhYyY0fDApPT0w
JihhaHwwKTwzNjYpe2NbaisyOD4+Ml09YWg7YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFjfDQ7
YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgOTc6Y2FzZSA2NTp7YWM9Y1tmPj4yXXwwO2FoPWQrOHww
O2FhPWIwW2NbY1thaD4+Ml0+PjJdJjEyN10oYWgpfDA7Y1t4Pj4yXT1hYzthYz0oZlMoZSx4LGFh
LGFhKzE2OHwwLGFiLGgsMCl8MCktYWF8MDtpZigoYWN8MCk+PTE2OCl7YnJlYWsgTDMxOTJ9Y1tq
KzI0Pj4yXT0oKGFjfDApLzEyfDB8MCklN3wwO2JyZWFrfTtjYXNlIDk5OnthYz1kKzh8MDthYT1i
MFtjWyhjW2FjPj4yXXwwKSsxMj4+Ml0mMTI3XShhYyl8MDthYz1lfDA7Y1tCPj4yXT1jW2FjPj4y
XTtjW0M+PjJdPWNbZj4+Ml07YWg9YVthYV18MDtpZigoYWgmMSk9PTApe2FqPWFhKzR8MDthaz1h
YSs0fDB9ZWxzZXthZT1jW2FhKzg+PjJdfDA7YWo9YWU7YWs9YWV9YWU9YWgmMjU1O2lmKChhZSYx
fDApPT0wKXthbD1hZT4+PjF9ZWxzZXthbD1jW2FhKzQ+PjJdfDB9Z1IoQSxkLEIsQyxnLGgsaixh
ayxhaisoYWw8PDIpfDApO2NbYWM+PjJdPWNbQT4+Ml07YnJlYWt9O2Nhc2UgODQ6e2FjPWV8MDtj
W1M+PjJdPWNbYWM+PjJdO2NbVD4+Ml09Y1tmPj4yXTtnUihSLGQsUyxULGcsaCxqLDIxNjAsMjE5
Mik7Y1thYz4+Ml09Y1tSPj4yXTticmVha307Y2FzZSA3MDp7YWM9ZXwwO2NbSD4+Ml09Y1thYz4+
Ml07Y1tJPj4yXT1jW2Y+PjJdO2dSKEcsZCxILEksZyxoLGosMjEyOCwyMTYwKTtjW2FjPj4yXT1j
W0c+PjJdO2JyZWFrfTtjYXNlIDcyOntjW3U+PjJdPWNbZj4+Ml07YWM9aGMoZSx1LGgsYWIsMil8
MDthYT1jW2g+PjJdfDA7aWYoKGFhJjR8MCk9PTAmKGFjfDApPDI0KXtjW2orOD4+Ml09YWM7YnJl
YWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFhfDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgMTIxOntj
W24+PjJdPWNbZj4+Ml07YWE9aGMoZSxuLGgsYWIsNCl8MDtpZigoY1toPj4yXSY0fDApIT0wKXti
cmVhayBMMzE5Mn1pZigoYWF8MCk8Njkpe2FtPWFhKzJlM3wwfWVsc2V7YW09KGFhLTY5fDApPj4+
MDwzMT9hYSsxOTAwfDA6YWF9Y1tqKzIwPj4yXT1hbS0xOTAwO2JyZWFrfTtjYXNlIDEwOTp7Y1ty
Pj4yXT1jW2Y+PjJdO2FhPShoYyhlLHIsaCxhYiwyKXwwKS0xfDA7YWM9Y1toPj4yXXwwO2lmKChh
YyY0fDApPT0wJihhYXwwKTwxMil7Y1tqKzE2Pj4yXT1hYTticmVhayBMMzE5Mn1lbHNle2NbaD4+
Ml09YWN8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSA3Mzp7YWM9ais4fDA7Y1t0Pj4yXT1jW2Y+
PjJdO2FhPWhjKGUsdCxoLGFiLDIpfDA7YWU9Y1toPj4yXXwwO2Rve2lmKChhZSY0fDApPT0wKXtp
ZigoYWEtMXwwKT4+PjA+PTEyKXticmVha31jW2FjPj4yXT1hYTticmVhayBMMzE5Mn19d2hpbGUo
MCk7Y1toPj4yXT1hZXw0O2JyZWFrfTtjYXNlIDc3OntjW3E+PjJdPWNbZj4+Ml07YWE9aGMoZSxx
LGgsYWIsMil8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAmKGFhfDApPDYwKXtjW2orND4+
Ml09YWE7YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFjfDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nh
c2UgMTE5OntjW28+PjJdPWNbZj4+Ml07YWM9aGMoZSxvLGgsYWIsMSl8MDthYT1jW2g+PjJdfDA7
aWYoKGFhJjR8MCk9PTAmKGFjfDApPDcpe2NbaisyND4+Ml09YWM7YnJlYWsgTDMxOTJ9ZWxzZXtj
W2g+PjJdPWFhfDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgMTIwOnthYT1jWyhjW2Q+PjJdfDAp
KzIwPj4yXXwwO2NbVT4+Ml09Y1tlPj4yXTtjW1Y+PjJdPWNbZj4+Ml07YlhbYWEmMTI3XShiLGQs
VSxWLGcsaCxqKTtpPWw7cmV0dXJufTtkZWZhdWx0OntjW2g+PjJdPWNbaD4+Ml18NH19fXdoaWxl
KDApO2NbYj4+Ml09Y1tlPj4yXTtpPWw7cmV0dXJufX13aGlsZSgwKTtsPWJPKDQpfDA7a3EobCk7
YmwobHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnWChhLGIsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTA7aj1pO2k9aSs4fDA7
az1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1trPj4yXTtrPWp8MDtsPWErOHww
O2E9YjBbY1soY1tsPj4yXXwwKSs4Pj4yXSYxMjddKGwpfDA7bD1kW2FdfDA7aWYoKGwmMXwwKT09
MCl7bT1sPj4+MX1lbHNle209Y1thKzQ+PjJdfDB9bD1kW2ErMTJ8MF18MDtpZigobCYxfDApPT0w
KXtuPWw+Pj4xfWVsc2V7bj1jW2ErMTY+PjJdfDB9aWYoKG18MCk9PSgtbnwwKSl7Y1tnPj4yXT1j
W2c+PjJdfDQ7aT1qO3JldHVybn1jW2s+PjJdPWNbZj4+Ml07Zj1mUyhlLGssYSxhKzI0fDAsaCxn
LDApfDA7Zz1mLWF8MDtkb3tpZigoZnwwKT09KGF8MCkpe2lmKChjW2I+PjJdfDApIT0xMil7YnJl
YWt9Y1tiPj4yXT0wO2k9ajtyZXR1cm59fXdoaWxlKDApO2lmKChnfDApIT0xMil7aT1qO3JldHVy
bn1nPWNbYj4+Ml18MDtpZigoZ3wwKT49MTIpe2k9ajtyZXR1cm59Y1tiPj4yXT1nKzEyO2k9ajty
ZXR1cm59Ci1mdW5jdGlvbiBnWShhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MDth
PWk7Zz1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tnPj4yXTtnPWJ8MDtiPWNb
Zz4+Ml18MDtkb3tpZigoYnwwKT09MCl7aD0xfWVsc2V7aj1jW2IrMTI+PjJdfDA7aWYoKGp8MCk9
PShjW2IrMTY+PjJdfDApKXtrPWIwW2NbKGNbYj4+Ml18MCkrMzY+PjJdJjEyN10oYil8MH1lbHNl
e2s9Y1tqPj4yXXwwfWlmKChrfDApPT0tMSl7Y1tnPj4yXT0wO2g9MTticmVha31lbHNle2g9KGNb
Zz4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtrPWR8MDtkPWNbaz4+Ml18MDtkb3tpZigoZHww
KT09MCl7bD0yNzE2fWVsc2V7Yj1jW2QrMTI+PjJdfDA7aWYoKGJ8MCk9PShjW2QrMTY+PjJdfDAp
KXttPWIwW2NbKGNbZD4+Ml18MCkrMzY+PjJdJjEyN10oZCl8MH1lbHNle209Y1tiPj4yXXwwfWlm
KChtfDApPT0tMSl7Y1trPj4yXT0wO2w9MjcxNjticmVha31lbHNle2I9KGR8MCk9PTA7aWYoaF5i
KXtuPWQ7bz1iO2JyZWFrfWVsc2V7bD0yNzE4O2JyZWFrfX19fXdoaWxlKDApO2lmKChsfDApPT0y
NzE2KXtpZihoKXtsPTI3MTh9ZWxzZXtuPTA7bz0xfX1pZigobHwwKT09MjcxOCl7Y1tlPj4yXT1j
W2U+PjJdfDY7aT1hO3JldHVybn1oPWNbZz4+Ml18MDtkPWNbaCsxMj4+Ml18MDtpZigoZHwwKT09
KGNbaCsxNj4+Ml18MCkpe3A9YjBbY1soY1toPj4yXXwwKSszNj4+Ml0mMTI3XShoKXwwfWVsc2V7
cD1jW2Q+PjJdfDB9aWYoKGIxW2NbKGNbZj4+Ml18MCkrNTI+PjJdJjYzXShmLHAsMCl8MCk8PDI0
Pj4yNCE9Mzcpe2NbZT4+Ml09Y1tlPj4yXXw0O2k9YTtyZXR1cm59cD1jW2c+PjJdfDA7Zj1wKzEy
fDA7ZD1jW2Y+PjJdfDA7aWYoKGR8MCk9PShjW3ArMTY+PjJdfDApKXtoPWNbKGNbcD4+Ml18MCkr
NDA+PjJdfDA7YjBbaCYxMjddKHApfDB9ZWxzZXtjW2Y+PjJdPWQrNH1kPWNbZz4+Ml18MDtkb3tp
ZigoZHwwKT09MCl7cT0xfWVsc2V7Zj1jW2QrMTI+PjJdfDA7aWYoKGZ8MCk9PShjW2QrMTY+PjJd
fDApKXtyPWIwW2NbKGNbZD4+Ml18MCkrMzY+PjJdJjEyN10oZCl8MH1lbHNle3I9Y1tmPj4yXXww
fWlmKChyfDApPT0tMSl7Y1tnPj4yXT0wO3E9MTticmVha31lbHNle3E9KGNbZz4+Ml18MCk9PTA7
YnJlYWt9fX13aGlsZSgwKTtkb3tpZihvKXtsPTI3NDB9ZWxzZXtnPWNbbisxMj4+Ml18MDtpZigo
Z3wwKT09KGNbbisxNj4+Ml18MCkpe3M9YjBbY1soY1tuPj4yXXwwKSszNj4+Ml0mMTI3XShuKXww
fWVsc2V7cz1jW2c+PjJdfDB9aWYoKHN8MCk9PS0xKXtjW2s+PjJdPTA7bD0yNzQwO2JyZWFrfWlm
KCEocV4obnwwKT09MCkpe2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChsfDApPT0y
NzQwKXtpZihxKXticmVha31pPWE7cmV0dXJufX13aGlsZSgwKTtjW2U+PjJdPWNbZT4+Ml18Mjtp
PWE7cmV0dXJufWZ1bmN0aW9uIGdaKGEpe2E9YXwwO3JldHVybiAxMjd9ZnVuY3Rpb24gZ18oYSl7
YT1hfDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnJChhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBn
MChhKXthPWF8MDtyZXR1cm4gMTI3fWZ1bmN0aW9uIGcxKGEpe2E9YXwwO3JldHVybiAxMjd9ZnVu
Y3Rpb24gZzIoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZzMoYSl7YT1hfDA7cmV0dXJuIDIx
NDc0ODM2NDd9ZnVuY3Rpb24gZzQoYSl7YT1hfDA7cmV0dXJuIDIxNDc0ODM2NDd9ZnVuY3Rpb24g
ZzUoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZzYoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02
NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09
QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBnNyhiLGMpe2I9Ynww
O2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9
Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9u
IGc4KGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtj
KzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTty
ZXR1cm59ZnVuY3Rpb24gZzkoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMm
MjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2Fb
YyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoYShiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3
MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1D
JjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGhiKGIsYyl7Yj1ifDA7
Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1D
Pj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24g
aGMoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MDtnPWk7aD1iO2I9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbYj4+Ml09Y1toPj4yXTtoPWF8MDthPWNbaD4+Ml18MDtkb3tpZigoYXww
KT09MCl7aj0xfWVsc2V7az1jW2ErMTI+PjJdfDA7aWYoKGt8MCk9PShjW2ErMTY+PjJdfDApKXts
PWIwW2NbKGNbYT4+Ml18MCkrMzY+PjJdJjEyN10oYSl8MH1lbHNle2w9Y1trPj4yXXwwfWlmKChs
fDApPT0tMSl7Y1toPj4yXT0wO2o9MTticmVha31lbHNle2o9KGNbaD4+Ml18MCk9PTA7YnJlYWt9
fX13aGlsZSgwKTtsPWJ8MDtiPWNbbD4+Ml18MDtkb3tpZigoYnwwKT09MCl7bT0yOX1lbHNle2E9
Y1tiKzEyPj4yXXwwO2lmKChhfDApPT0oY1tiKzE2Pj4yXXwwKSl7bj1iMFtjWyhjW2I+PjJdfDAp
KzM2Pj4yXSYxMjddKGIpfDB9ZWxzZXtuPWNbYT4+Ml18MH1pZigobnwwKT09LTEpe2NbbD4+Ml09
MDttPTI5O2JyZWFrfWVsc2V7aWYoal4oYnwwKT09MCl7bz1iO2JyZWFrfWVsc2V7bT0zMTticmVh
a319fX13aGlsZSgwKTtpZigobXwwKT09Mjkpe2lmKGope209MzF9ZWxzZXtvPTB9fWlmKChtfDAp
PT0zMSl7Y1tkPj4yXT1jW2Q+PjJdfDY7cD0wO2k9ZztyZXR1cm4gcHwwfWo9Y1toPj4yXXwwO2I9
Y1tqKzEyPj4yXXwwO2lmKChifDApPT0oY1tqKzE2Pj4yXXwwKSl7cT1iMFtjWyhjW2o+PjJdfDAp
KzM2Pj4yXSYxMjddKGopfDB9ZWxzZXtxPWNbYj4+Ml18MH1iPWU7aWYoIShiMVtjWyhjW2I+PjJd
fDApKzEyPj4yXSY2M10oZSwyMDQ4LHEpfDApKXtjW2Q+PjJdPWNbZD4+Ml18NDtwPTA7aT1nO3Jl
dHVybiBwfDB9aj1lO249KGIxW2NbKGNbaj4+Ml18MCkrNTI+PjJdJjYzXShlLHEsMCl8MCk8PDI0
Pj4yNDtxPWNbaD4+Ml18MDthPXErMTJ8MDtrPWNbYT4+Ml18MDtpZigoa3wwKT09KGNbcSsxNj4+
Ml18MCkpe3I9Y1soY1txPj4yXXwwKSs0MD4+Ml18MDtiMFtyJjEyN10ocSl8MDtzPW47dD1mO3U9
b31lbHNle2NbYT4+Ml09ays0O3M9bjt0PWY7dT1vfXdoaWxlKDEpe3Y9cy00OHwwO289dC0xfDA7
Zj1jW2g+PjJdfDA7ZG97aWYoKGZ8MCk9PTApe3c9MH1lbHNle249Y1tmKzEyPj4yXXwwO2lmKChu
fDApPT0oY1tmKzE2Pj4yXXwwKSl7eD1iMFtjWyhjW2Y+PjJdfDApKzM2Pj4yXSYxMjddKGYpfDB9
ZWxzZXt4PWNbbj4+Ml18MH1pZigoeHwwKT09LTEpe2NbaD4+Ml09MDt3PTA7YnJlYWt9ZWxzZXt3
PWNbaD4+Ml18MDticmVha319fXdoaWxlKDApO2Y9KHd8MCk9PTA7aWYoKHV8MCk9PTApe3k9dzt6
PTB9ZWxzZXtuPWNbdSsxMj4+Ml18MDtpZigobnwwKT09KGNbdSsxNj4+Ml18MCkpe0E9YjBbY1so
Y1t1Pj4yXXwwKSszNj4+Ml0mMTI3XSh1KXwwfWVsc2V7QT1jW24+PjJdfDB9aWYoKEF8MCk9PS0x
KXtjW2w+PjJdPTA7Qj0wfWVsc2V7Qj11fXk9Y1toPj4yXXwwO3o9Qn1DPSh6fDApPT0wO2lmKCEo
KGZeQykmKG98MCk+MCkpe2JyZWFrfWY9Y1t5KzEyPj4yXXwwO2lmKChmfDApPT0oY1t5KzE2Pj4y
XXwwKSl7RD1iMFtjWyhjW3k+PjJdfDApKzM2Pj4yXSYxMjddKHkpfDB9ZWxzZXtEPWNbZj4+Ml18
MH1pZighKGIxW2NbKGNbYj4+Ml18MCkrMTI+PjJdJjYzXShlLDIwNDgsRCl8MCkpe3A9djttPTgx
O2JyZWFrfWY9KChiMVtjWyhjW2o+PjJdfDApKzUyPj4yXSY2M10oZSxELDApfDApPDwyND4+MjQp
Kyh2KjEwfDApfDA7bj1jW2g+PjJdfDA7az1uKzEyfDA7YT1jW2s+PjJdfDA7aWYoKGF8MCk9PShj
W24rMTY+PjJdfDApKXtxPWNbKGNbbj4+Ml18MCkrNDA+PjJdfDA7YjBbcSYxMjddKG4pfDA7cz1m
O3Q9bzt1PXo7Y29udGludWV9ZWxzZXtjW2s+PjJdPWErNDtzPWY7dD1vO3U9ejtjb250aW51ZX19
aWYoKG18MCk9PTgxKXtpPWc7cmV0dXJuIHB8MH1kb3tpZigoeXwwKT09MCl7RT0xfWVsc2V7dT1j
W3krMTI+PjJdfDA7aWYoKHV8MCk9PShjW3krMTY+PjJdfDApKXtGPWIwW2NbKGNbeT4+Ml18MCkr
MzY+PjJdJjEyN10oeSl8MH1lbHNle0Y9Y1t1Pj4yXXwwfWlmKChGfDApPT0tMSl7Y1toPj4yXT0w
O0U9MTticmVha31lbHNle0U9KGNbaD4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZihD
KXttPTc1fWVsc2V7aD1jW3orMTI+PjJdfDA7aWYoKGh8MCk9PShjW3orMTY+PjJdfDApKXtHPWIw
W2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1toPj4yXXwwfWlmKChHfDAp
PT0tMSl7Y1tsPj4yXT0wO209NzU7YnJlYWt9aWYoRV4oenwwKT09MCl7cD12fWVsc2V7YnJlYWt9
aT1nO3JldHVybiBwfDB9fXdoaWxlKDApO2Rve2lmKChtfDApPT03NSl7aWYoRSl7YnJlYWt9ZWxz
ZXtwPXZ9aT1nO3JldHVybiBwfDB9fXdoaWxlKDApO2NbZD4+Ml09Y1tkPj4yXXwyO3A9djtpPWc7
cmV0dXJuIHB8MH1mdW5jdGlvbiBoZChiLGQsZSxmLGcsaCxqLGspe2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wO2c9aTtpPWkrMTEyfDA7Zj1lO2U9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZT4+Ml09Y1tmPj4yXTtmPWd8MDtsPWcrOHwwO209bHwwO249ZnwwO2Fbbl09Mzc7
bz1mKzF8MDthW29dPWo7cD1mKzJ8MDthW3BdPWs7YVtmKzN8MF09MDtpZihrPDwyND4+MjQhPTAp
e2Fbb109azthW3BdPWp9aj1iayhtfDAsMTAwLG58MCxofDAsY1tkKzg+PjJdfDApfDA7ZD1sK2p8
MDtsPWNbZT4+Ml18MDtpZigoanwwKT09MCl7cT1sO3I9YnwwO2Nbcj4+Ml09cTtpPWc7cmV0dXJu
fWVsc2V7cz1sO3Q9bX13aGlsZSgxKXttPWFbdF18MDtpZigoc3wwKT09MCl7dT0wfWVsc2V7bD1z
KzI0fDA7aj1jW2w+PjJdfDA7aWYoKGp8MCk9PShjW3MrMjg+PjJdfDApKXt2PWJfW2NbKGNbcz4+
Ml18MCkrNTI+PjJdJjMxXShzLG0mMjU1KXwwfWVsc2V7Y1tsPj4yXT1qKzE7YVtqXT1tO3Y9bSYy
NTV9dT0odnwwKT09LTE/MDpzfW09dCsxfDA7aWYoKG18MCk9PShkfDApKXtxPXU7YnJlYWt9ZWxz
ZXtzPXU7dD1tfX1yPWJ8MDtjW3I+PjJdPXE7aT1nO3JldHVybn1mdW5jdGlvbiBoZShhLGIsZCxl
LGYsZyxoLGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anww
O3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2Y9aTtpPWkrNDA4fDA7ZT1kO2Q9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tlPj4yXTtlPWZ8MDtrPWYrNDAwfDA7bD1l
fDA7Y1trPj4yXT1lKzQwMDtoQyhiKzh8MCxsLGssZyxoLGopO2o9Y1trPj4yXXwwO2s9Y1tkPj4y
XXwwO2lmKChsfDApPT0oanwwKSl7bT1rO249YXwwO2Nbbj4+Ml09bTtpPWY7cmV0dXJufWVsc2V7
bz1rO3A9bH13aGlsZSgxKXtsPWNbcD4+Ml18MDtpZigob3wwKT09MCl7cT0wfWVsc2V7az1vKzI0
fDA7ZD1jW2s+PjJdfDA7aWYoKGR8MCk9PShjW28rMjg+PjJdfDApKXtyPWJfW2NbKGNbbz4+Ml18
MCkrNTI+PjJdJjMxXShvLGwpfDB9ZWxzZXtjW2s+PjJdPWQrNDtjW2Q+PjJdPWw7cj1sfXE9KHJ8
MCk9PS0xPzA6b31sPXArNHwwO2lmKChsfDApPT0oanwwKSl7bT1xO2JyZWFrfWVsc2V7bz1xO3A9
bH19bj1hfDA7Y1tuPj4yXT1tO2k9ZjtyZXR1cm59ZnVuY3Rpb24gaGYoYSl7YT1hfDA7ZGUoYXww
KTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaGcoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rp
b24gaGgoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhpKGEs
Yil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoaihhLGIpe2E9YXww
O2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaGsoYSxiKXthPWF8MDtiPWJ8MDtk
XyhhLDEsNDUpO3JldHVybn1mdW5jdGlvbiBobChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVy
bn1mdW5jdGlvbiBobShhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBobihhLGIpe2E9
YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaG8oYSxiKXthPWF8MDtiPWJ8
MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhwKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXww
LDAsMTIpO3JldHVybn1mdW5jdGlvbiBocShhLGIpe2E9YXwwO2I9YnwwO2RfKGEsMSw0NSk7cmV0
dXJufWZ1bmN0aW9uIGhyKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGhz
KGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGh0KGEsYil7YT1hfDA7Yj1ifDA7ayQo
YXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBodShhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEy
KTtyZXR1cm59ZnVuY3Rpb24gaHYoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJu
fWZ1bmN0aW9uIGh3KGEsYil7YT1hfDA7Yj1ifDA7ZXkoYSwxLDQ1KTtyZXR1cm59ZnVuY3Rpb24g
aHgoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaHkoYil7Yj1ifDA7dmFy
IGQ9MCxlPTAsZj0wLGc9MDtkPWI7ZT1iKzh8MDtmPWNbZT4+Ml18MDtkb3tpZigoYVsxNjI2NF18
MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9
fXdoaWxlKDApO2lmKChmfDApPT0oY1syOTU4XXwwKSl7Zz1ifDA7ZGUoZyk7a1MoZCk7cmV0dXJu
fWE3KGNbZT4+Ml18MCk7Zz1ifDA7ZGUoZyk7a1MoZCk7cmV0dXJufWZ1bmN0aW9uIGh6KGIpe2I9
YnwwO3ZhciBkPTAsZT0wLGY9MDtkPWIrOHwwO2U9Y1tkPj4yXXwwO2Rve2lmKChhWzE2MjY0XXww
KT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19
d2hpbGUoMCk7aWYoKGV8MCk9PShjWzI5NThdfDApKXtmPWJ8MDtkZShmKTtyZXR1cm59YTcoY1tk
Pj4yXXwwKTtmPWJ8MDtkZShmKTtyZXR1cm59ZnVuY3Rpb24gaEEoYil7Yj1ifDA7dmFyIGQ9MCxl
PTAsZj0wLGc9MDtkPWI7ZT1iKzh8MDtmPWNbZT4+Ml18MDtkb3tpZigoYVsxNjI2NF18MCk9PTAp
e2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxl
KDApO2lmKChmfDApPT0oY1syOTU4XXwwKSl7Zz1ifDA7ZGUoZyk7a1MoZCk7cmV0dXJufWE3KGNb
ZT4+Ml18MCk7Zz1ifDA7ZGUoZyk7a1MoZCk7cmV0dXJufWZ1bmN0aW9uIGhCKGIpe2I9YnwwO3Zh
ciBkPTAsZT0wLGY9MDtkPWIrOHwwO2U9Y1tkPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7
aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUo
MCk7aWYoKGV8MCk9PShjWzI5NThdfDApKXtmPWJ8MDtkZShmKTtyZXR1cm59YTcoY1tkPj4yXXww
KTtmPWJ8MDtkZShmKTtyZXR1cm59ZnVuY3Rpb24gaEMoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wO2o9aTtpPWkrMTIwfDA7az1qfDA7bD1qKzExMnwwO209aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O249ais4fDA7bz1rfDA7YVtvXT0zNztwPWsrMXwwO2FbcF09ZztxPWsrMnwwO2FbcV09aDthW2sr
M3wwXT0wO2lmKGg8PDI0Pj4yNCE9MCl7YVtwXT1oO2FbcV09Z31nPWJ8MDtiayhufDAsMTAwLG98
MCxmfDAsY1tnPj4yXXwwKXwwO2NbbD4+Ml09MDtjW2wrND4+Ml09MDtjW20+PjJdPW47bj0oY1tl
Pj4yXXwwKS1kPj4yO2Y9YkIoY1tnPj4yXXwwKXwwO2c9a2UoZCxtLG4sbCl8MDtpZigoZnwwKSE9
MCl7YkIoZnwwKXwwfWlmKChnfDApPT0tMSl7aFYoOTA0KX1lbHNle2NbZT4+Ml09ZCsoZzw8Mik7
aT1qO3JldHVybn19ZnVuY3Rpb24gaEQoYSl7YT1hfDA7cmV0dXJuIDIxNDc0ODM2NDd9ZnVuY3Rp
b24gaEUoYSl7YT1hfDA7cmV0dXJuIDIxNDc0ODM2NDd9ZnVuY3Rpb24gaEYoYSl7YT1hfDA7cmV0
dXJuIDB9ZnVuY3Rpb24gaEcoYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGhIKGIsYyl7Yj1ifDA7
Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1D
Pj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24g
aEkoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2Mr
MXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3Jl
dHVybn1mdW5jdGlvbiBoSihhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoSyhhLGIp
e2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaEwoYSxiKXthPWF8MDti
PWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhNKGEsYil7YT1hfDA7Yj1ifDA7ayQo
YXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoTihhLGIpe2E9YXwwO2I9YnwwO2V5KGEsMSw0NSk7
cmV0dXJufWZ1bmN0aW9uIGhPKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGhQKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhRKGIsZCxlLGYsZyxoLGosayl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0w
LFA9MCxRPTAsUj0wLFM9MDtkPWk7aT1pKzI4MHwwO2w9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ts
Pj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrMTIwfDA7bz1kKzEyOHwwO3A9ZCsxMzZ8MDtxPWQrMTQ0
fDA7cj1kKzE1MnwwO3M9ZCsxNjB8MDt0PWQrMTc2fDA7dT1ufDA7Y1t1Pj4yXT1tO3Y9bis0fDA7
Y1t2Pj4yXT0xNjY7dz1tKzEwMHwwO2VqKHAsaCk7bT1wfDA7eD1jW20+PjJdfDA7aWYoKGNbMzky
NF18MCkhPS0xKXtjW2w+PjJdPTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5
NixsLDk2KX1sPShjWzM5MjVdfDApLTF8MDt5PWNbeCs4Pj4yXXwwO2Rve2lmKChjW3grMTI+PjJd
fDApLXk+PjI+Pj4wPmw+Pj4wKXt6PWNbeSsobDw8Mik+PjJdfDA7aWYoKHp8MCk9PTApe2JyZWFr
fUE9ejthW3FdPTA7Qj1mfDA7Y1tyPj4yXT1jW0I+PjJdO2Rve2lmKGhSKGUscixnLHAsY1toKzQ+
PjJdfDAsaixxLEEsbixvLHcpfDApe0M9c3wwO0Q9Y1soY1t6Pj4yXXwwKSszMj4+Ml18MDtjYVtE
JjE1XShBLDIxMTIsMjEyMixDKXwwO0Q9dHwwO0U9Y1tvPj4yXXwwO0Y9Y1t1Pj4yXXwwO0c9RS1G
fDA7ZG97aWYoKEd8MCk+OTgpe0g9a0ooRysyfDApfDA7aWYoKEh8MCkhPTApe0k9SDtKPUg7YnJl
YWt9a1goKTtJPTA7Sj0wfWVsc2V7ST1EO0o9MH19d2hpbGUoMCk7aWYoKGFbcV0mMSk9PTApe0s9
SX1lbHNle2FbSV09NDU7Sz1JKzF8MH1pZihGPj4+MDxFPj4+MCl7Rz1zKzEwfDA7SD1zO0w9SztN
PUY7d2hpbGUoMSl7Tj1DO3doaWxlKDEpe2lmKChOfDApPT0oR3wwKSl7Tz1HO2JyZWFrfWlmKChh
W05dfDApPT0oYVtNXXwwKSl7Tz1OO2JyZWFrfWVsc2V7Tj1OKzF8MH19YVtMXT1hWzIxMTIrKE8t
SCl8MF18MDtOPU0rMXwwO1A9TCsxfDA7aWYoTj4+PjA8KGNbbz4+Ml18MCk+Pj4wKXtMPVA7TT1O
fWVsc2V7UT1QO2JyZWFrfX19ZWxzZXtRPUt9YVtRXT0wO009YkQoRHwwLDE0MDgsKEw9aSxpPWkr
OHwwLGNbTD4+Ml09ayxMKXwwKXwwO2k9TDtpZigoTXwwKT09MSl7aWYoKEp8MCk9PTApe2JyZWFr
fWtLKEopO2JyZWFrfU09Yk8oOCl8MDtkRShNLDEzNjgpO2JsKE18MCw4MTkyLDIyKX19d2hpbGUo
MCk7QT1lfDA7ej1jW0E+PjJdfDA7ZG97aWYoKHp8MCk9PTApe1I9MH1lbHNle2lmKChjW3orMTI+
PjJdfDApIT0oY1t6KzE2Pj4yXXwwKSl7Uj16O2JyZWFrfWlmKChiMFtjWyhjW3o+PjJdfDApKzM2
Pj4yXSYxMjddKHopfDApIT0tMSl7Uj16O2JyZWFrfWNbQT4+Ml09MDtSPTB9fXdoaWxlKDApO0E9
KFJ8MCk9PTA7ej1jW0I+PjJdfDA7ZG97aWYoKHp8MCk9PTApe1M9MjQ0fWVsc2V7aWYoKGNbeisx
Mj4+Ml18MCkhPShjW3orMTY+PjJdfDApKXtpZihBKXticmVha31lbHNle1M9MjQ2O2JyZWFrfX1p
ZigoYjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwKT09LTEpe2NbQj4+Ml09MDtTPTI0
NDticmVha31lbHNle2lmKEFeKHp8MCk9PTApe2JyZWFrfWVsc2V7Uz0yNDY7YnJlYWt9fX19d2hp
bGUoMCk7aWYoKFN8MCk9PTI0NCl7aWYoQSl7Uz0yNDZ9fWlmKChTfDApPT0yNDYpe2Nbaj4+Ml09
Y1tqPj4yXXwyfWNbYj4+Ml09Ujt6PWNbbT4+Ml18MDtkeih6KXwwO3o9Y1t1Pj4yXXwwO2NbdT4+
Ml09MDtpZigoenwwKT09MCl7aT1kO3JldHVybn1iWVtjW3Y+PjJdJjUxMV0oeik7aT1kO3JldHVy
bn19d2hpbGUoMCk7ZD1iTyg0KXwwO2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaFIo
ZSxmLGcsaCxqLGssbCxtLG4sbyxwKXtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8
MDtsPWx8MDttPW18MDtuPW58MDtvPW98MDtwPXB8MDt2YXIgcT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9
MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0w
LFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAs
YWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9MCxhcz0wLGF0
PTAsYXU9MCxhdj0wLGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0wLGFDPTAsYUQ9MCxhRT0w
LGFGPTAsYUc9MCxhSD0wLGFJPTAsYUo9MCxhSz0wLGFMPTAsYU09MCxhTj0wLGFPPTAsYVA9MCxh
UT0wLGFSPTAsYVM9MCxhVD0wLGFVPTAsYVY9MCxhVz0wLGFYPTAsYVk9MCxhWj0wLGFfPTAsYSQ9
MCxhMD0wLGExPTAsYTI9MCxhMz0wLGE0PTAsYTU9MCxhNj0wLGE3PTAsYTg9MCxhOT0wLGJhPTAs
YmI9MCxiYz0wLGJkPTAsYmU9MCxiZj0wLGJnPTAsYmg9MCxiaT0wLGJqPTAsYms9MCxibD0wLGJt
PTAsYm49MCxibz0wLGJwPTAsYnE9MCxicj0wLGJzPTAsYnQ9MCxidT0wLGJ2PTAsYnc9MCxieD0w
LGJ5PTAsYno9MCxiQT0wLGJCPTAsYkM9MCxiRD0wLGJFPTA7cT1pO2k9aSs0NDB8MDtyPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW3I+PjJdO3I9cXwwO3M9cSs0MDB8MDt0PXEr
NDA4fDA7dT1xKzQxNnwwO3Y9cSs0MjR8MDt3PXY7eD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3k9
aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7QT1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0M9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO0Q9cnwwO2skKHd8MCwwLDEyKTtFPXg7Rj15O0c9ejtIPUE7ayQoRXwwLDAsMTIpO2sk
KEZ8MCwwLDEyKTtrJChHfDAsMCwxMik7ayQoSHwwLDAsMTIpO2hYKGcsaCxzLHQsdSx2LHgseSx6
LEIpO2g9bnwwO2Nbbz4+Ml09Y1toPj4yXTtnPWV8MDtlPWZ8MDtmPW0rOHwwO209eisxfDA7ST16
KzR8MDtKPXorOHwwO0s9eSsxfDA7TD15KzR8MDtNPXkrOHwwO049KGomNTEyfDApIT0wO2o9eCsx
fDA7Tz14KzR8MDtQPXgrOHwwO1E9QSsxfDA7Uj1BKzR8MDtTPUErOHwwO1Q9cyszfDA7VT1uKzR8
MDtuPXYrNHwwO1Y9cDtwPTE2NjtXPUQ7WD1EO0Q9cis0MDB8MDtyPTA7WT0wO0wyODY6d2hpbGUo
MSl7Wj1jW2c+PjJdfDA7ZG97aWYoKFp8MCk9PTApe189MH1lbHNle2lmKChjW1orMTI+PjJdfDAp
IT0oY1taKzE2Pj4yXXwwKSl7Xz1aO2JyZWFrfWlmKChiMFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYx
MjddKFopfDApPT0tMSl7Y1tnPj4yXT0wO189MDticmVha31lbHNle189Y1tnPj4yXXwwO2JyZWFr
fX19d2hpbGUoMCk7Wj0oX3wwKT09MDskPWNbZT4+Ml18MDtkb3tpZigoJHwwKT09MCl7YWE9Mjcx
fWVsc2V7aWYoKGNbJCsxMj4+Ml18MCkhPShjWyQrMTY+PjJdfDApKXtpZihaKXthYj0kO2JyZWFr
fWVsc2V7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01MjM7YnJlYWsgTDI4Nn19aWYoKGIwW2NbKGNb
JD4+Ml18MCkrMzY+PjJdJjEyN10oJCl8MCk9PS0xKXtjW2U+PjJdPTA7YWE9MjcxO2JyZWFrfWVs
c2V7aWYoWil7YWI9JDticmVha31lbHNle2FjPXA7YWQ9VzthZT1YO2FmPXI7YWE9NTIzO2JyZWFr
IEwyODZ9fX19d2hpbGUoMCk7aWYoKGFhfDApPT0yNzEpe2FhPTA7aWYoWil7YWM9cDthZD1XO2Fl
PVg7YWY9cjthYT01MjM7YnJlYWt9ZWxzZXthYj0wfX1MMzA4OmRve3N3aXRjaChhW3MrWXwwXXww
KXtjYXNlIDE6e2lmKChZfDApPT0zKXthYz1wO2FkPVc7YWU9WDthZj1yO2FhPTUyMzticmVhayBM
Mjg2fSQ9Y1tnPj4yXXwwO2FnPWNbJCsxMj4+Ml18MDtpZigoYWd8MCk9PShjWyQrMTY+PjJdfDAp
KXthaD0oYjBbY1soY1skPj4yXXwwKSszNj4+Ml0mMTI3XSgkKXwwKSYyNTV9ZWxzZXthaD1hW2Fn
XXwwfWlmKGFoPDwyND4+MjQ8PS0xKXthYT0yOTY7YnJlYWsgTDI4Nn1pZigoYlsoY1tmPj4yXXww
KSsoYWg8PDI0Pj4yNDw8MSk+PjFdJjgxOTIpPT0wKXthYT0yOTY7YnJlYWsgTDI4Nn1hZz1jW2c+
PjJdfDA7JD1hZysxMnwwO2FpPWNbJD4+Ml18MDtpZigoYWl8MCk9PShjW2FnKzE2Pj4yXXwwKSl7
YWo9KGIwW2NbKGNbYWc+PjJdfDApKzQwPj4yXSYxMjddKGFnKXwwKSYyNTV9ZWxzZXtjWyQ+PjJd
PWFpKzE7YWo9YVthaV18MH1kVShBLGFqKTthYT0yOTc7YnJlYWt9O2Nhc2UgMzp7YWk9YVtGXXww
OyQ9YWkmMjU1O2FnPSgkJjF8MCk9PTA/JD4+PjE6Y1tMPj4yXXwwOyQ9YVtHXXwwO2FrPSQmMjU1
O2FsPShhayYxfDApPT0wP2FrPj4+MTpjW0k+PjJdfDA7aWYoKGFnfDApPT0oLWFsfDApKXthbT1y
O2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWFrPShhZ3wwKT09MDthZz1jW2c+
PjJdfDA7YXM9Y1thZysxMj4+Ml18MDthdD1jW2FnKzE2Pj4yXXwwO2F1PShhc3wwKT09KGF0fDAp
O2lmKCEoYWt8KGFsfDApPT0wKSl7aWYoYXUpe2FsPShiMFtjWyhjW2FnPj4yXXwwKSszNj4+Ml0m
MTI3XShhZyl8MCkmMjU1O2F2PWNbZz4+Ml18MDthdz1hbDtheD1hW0ZdfDA7YXk9YXY7YXo9Y1th
disxMj4+Ml18MDthQT1jW2F2KzE2Pj4yXXwwfWVsc2V7YXc9YVthc118MDtheD1haTtheT1hZzth
ej1hczthQT1hdH1hdD1heSsxMnwwO2F2PShhenwwKT09KGFBfDApO2lmKGF3PDwyND4+MjQ9PShh
WyhheCYxKT09MD9LOmNbTT4+Ml18MF18MCkpe2lmKGF2KXthbD1jWyhjW2F5Pj4yXXwwKSs0MD4+
Ml18MDtiMFthbCYxMjddKGF5KXwwfWVsc2V7Y1thdD4+Ml09YXorMX1hdD1kW0ZdfDA7YW09KChh
dCYxfDApPT0wP2F0Pj4+MTpjW0w+PjJdfDApPj4+MD4xP3k6cjthbj1EO2FvPVg7YXA9VzthcT1w
O2FyPVY7YnJlYWsgTDMwOH1pZihhdil7YUI9KGIwW2NbKGNbYXk+PjJdfDApKzM2Pj4yXSYxMjdd
KGF5KXwwKSYyNTV9ZWxzZXthQj1hW2F6XXwwfWlmKGFCPDwyND4+MjQhPShhWyhhW0ddJjEpPT0w
P206Y1tKPj4yXXwwXXwwKSl7YWE9MzYzO2JyZWFrIEwyODZ9YXY9Y1tnPj4yXXwwO2F0PWF2KzEy
fDA7YWw9Y1thdD4+Ml18MDtpZigoYWx8MCk9PShjW2F2KzE2Pj4yXXwwKSl7YUM9Y1soY1thdj4+
Ml18MCkrNDA+PjJdfDA7YjBbYUMmMTI3XShhdil8MH1lbHNle2NbYXQ+PjJdPWFsKzF9YVtsXT0x
O2FsPWRbR118MDthbT0oKGFsJjF8MCk9PTA/YWw+Pj4xOmNbST4+Ml18MCk+Pj4wPjE/ejpyO2Fu
PUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWlmKGFrKXtpZihhdSl7YWs9KGIwW2Nb
KGNbYWc+PjJdfDApKzM2Pj4yXSYxMjddKGFnKXwwKSYyNTU7YUQ9YWs7YUU9YVtHXXwwfWVsc2V7
YUQ9YVthc118MDthRT0kfWlmKGFEPDwyND4+MjQhPShhWyhhRSYxKT09MD9tOmNbSj4+Ml18MF18
MCkpe2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9JD1jW2c+PjJdfDA7
YWs9JCsxMnwwO2FsPWNbYWs+PjJdfDA7aWYoKGFsfDApPT0oY1skKzE2Pj4yXXwwKSl7YXQ9Y1so
Y1skPj4yXXwwKSs0MD4+Ml18MDtiMFthdCYxMjddKCQpfDB9ZWxzZXtjW2FrPj4yXT1hbCsxfWFb
bF09MTthbD1kW0ddfDA7YW09KChhbCYxfDApPT0wP2FsPj4+MTpjW0k+PjJdfDApPj4+MD4xP3o6
cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1pZihhdSl7YXU9KGIwW2NbKGNb
YWc+PjJdfDApKzM2Pj4yXSYxMjddKGFnKXwwKSYyNTU7YUY9YXU7YUc9YVtGXXwwfWVsc2V7YUY9
YVthc118MDthRz1haX1pZihhRjw8MjQ+PjI0IT0oYVsoYUcmMSk9PTA/SzpjW00+PjJdfDBdfDAp
KXthW2xdPTE7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1haT1jW2c+
PjJdfDA7YXM9YWkrMTJ8MDthdT1jW2FzPj4yXXwwO2lmKChhdXwwKT09KGNbYWkrMTY+PjJdfDAp
KXthZz1jWyhjW2FpPj4yXXwwKSs0MD4+Ml18MDtiMFthZyYxMjddKGFpKXwwfWVsc2V7Y1thcz4+
Ml09YXUrMX1hdT1kW0ZdfDA7YW09KChhdSYxfDApPT0wP2F1Pj4+MTpjW0w+PjJdfDApPj4+MD4x
P3k6cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWt9O2Nhc2UgMDp7YWE9Mjk3O2JyZWFr
fTtjYXNlIDI6e2lmKCEoKHJ8MCkhPTB8WT4+PjA8Mikpe2lmKChZfDApPT0yKXthSD0oYVtUXXww
KSE9MH1lbHNle2FIPTB9aWYoIShOfGFIKSl7YW09MDthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7
YnJlYWsgTDMwOH19YXU9YVtFXXwwO2FzPShhdSYxKT09MD9qOmNbUD4+Ml18MDtMMzgyOmRve2lm
KChZfDApPT0wKXthST1hc31lbHNle2lmKChkW3MrKFktMSl8MF18MCk+PTIpe2FJPWFzO2JyZWFr
fWFpPWF1JjI1NTthZz1hcysoKGFpJjF8MCk9PTA/YWk+Pj4xOmNbTz4+Ml18MCl8MDthaT1hczt3
aGlsZSgxKXtpZigoYWl8MCk9PShhZ3wwKSl7YUo9YWc7YnJlYWt9YWw9YVthaV18MDtpZihhbDw8
MjQ+PjI0PD0tMSl7YUo9YWk7YnJlYWt9aWYoKGJbKGNbZj4+Ml18MCkrKGFsPDwyND4+MjQ8PDEp
Pj4xXSY4MTkyKT09MCl7YUo9YWk7YnJlYWt9ZWxzZXthaT1haSsxfDB9fWFpPWFKLWFzfDA7YWc9
YVtIXXwwO2FsPWFnJjI1NTthaz0oYWwmMXwwKT09MD9hbD4+PjE6Y1tSPj4yXXwwO2lmKGFpPj4+
MD5haz4+PjApe2FJPWFzO2JyZWFrfWFsPShhZyYxKT09MD9ROmNbUz4+Ml18MDthZz1hbCtha3ww
O2lmKChhSnwwKT09KGFzfDApKXthST1hczticmVha30kPWFzO2F0PWFsKyhhay1haSl8MDt3aGls
ZSgxKXtpZigoYVthdF18MCkhPShhWyRdfDApKXthST1hczticmVhayBMMzgyfWFpPWF0KzF8MDtp
ZigoYWl8MCk9PShhZ3wwKSl7YUk9YUo7YnJlYWt9ZWxzZXskPSQrMXwwO2F0PWFpfX19fXdoaWxl
KDApO2F0PWF1JjI1NTtMMzk2OmRve2lmKChhSXwwKT09KGFzKygoYXQmMXwwKT09MD9hdD4+PjE6
Y1tPPj4yXXwwKXwwKSl7YUs9YUl9ZWxzZXskPWFiO2FnPWFJO3doaWxlKDEpe2FpPWNbZz4+Ml18
MDtkb3tpZigoYWl8MCk9PTApe2FMPTB9ZWxzZXtpZigoY1thaSsxMj4+Ml18MCkhPShjW2FpKzE2
Pj4yXXwwKSl7YUw9YWk7YnJlYWt9aWYoKGIwW2NbKGNbYWk+PjJdfDApKzM2Pj4yXSYxMjddKGFp
KXwwKT09LTEpe2NbZz4+Ml09MDthTD0wO2JyZWFrfWVsc2V7YUw9Y1tnPj4yXXwwO2JyZWFrfX19
d2hpbGUoMCk7YWk9KGFMfDApPT0wO2Rve2lmKCgkfDApPT0wKXthYT0zOTJ9ZWxzZXtpZigoY1sk
KzEyPj4yXXwwKSE9KGNbJCsxNj4+Ml18MCkpe2lmKGFpKXthTT0kO2JyZWFrfWVsc2V7YUs9YWc7
YnJlYWsgTDM5Nn19aWYoKGIwW2NbKGNbJD4+Ml18MCkrMzY+PjJdJjEyN10oJCl8MCk9PS0xKXtj
W2U+PjJdPTA7YWE9MzkyO2JyZWFrfWVsc2V7aWYoYWkpe2FNPSQ7YnJlYWt9ZWxzZXthSz1hZzti
cmVhayBMMzk2fX19fXdoaWxlKDApO2lmKChhYXwwKT09MzkyKXthYT0wO2lmKGFpKXthSz1hZzti
cmVhayBMMzk2fWVsc2V7YU09MH19YWs9Y1tnPj4yXXwwO2FsPWNbYWsrMTI+PjJdfDA7aWYoKGFs
fDApPT0oY1thaysxNj4+Ml18MCkpe2FOPShiMFtjWyhjW2FrPj4yXXwwKSszNj4+Ml0mMTI3XShh
ayl8MCkmMjU1fWVsc2V7YU49YVthbF18MH1pZihhTjw8MjQ+PjI0IT0oYVthZ118MCkpe2FLPWFn
O2JyZWFrIEwzOTZ9YWw9Y1tnPj4yXXwwO2FrPWFsKzEyfDA7YXY9Y1thaz4+Ml18MDtpZigoYXZ8
MCk9PShjW2FsKzE2Pj4yXXwwKSl7YUM9Y1soY1thbD4+Ml18MCkrNDA+PjJdfDA7YjBbYUMmMTI3
XShhbCl8MH1lbHNle2NbYWs+PjJdPWF2KzF9YXY9YWcrMXwwO2FrPWFbRV18MDthbD1hayYyNTU7
aWYoKGF2fDApPT0oKChhayYxKT09MD9qOmNbUD4+Ml18MCkrKChhbCYxfDApPT0wP2FsPj4+MTpj
W08+PjJdfDApfDApKXthSz1hdjticmVha31lbHNleyQ9YU07YWc9YXZ9fX19d2hpbGUoMCk7aWYo
IU4pe2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9YXQ9YVtFXXwwO2Fz
PWF0JjI1NTtpZigoYUt8MCk9PSgoKGF0JjEpPT0wP2o6Y1tQPj4yXXwwKSsoKGFzJjF8MCk9PTA/
YXM+Pj4xOmNbTz4+Ml18MCl8MCkpe2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WfWVsc2V7
YWE9NDA1O2JyZWFrIEwyODZ9YnJlYWt9O2Nhc2UgNDp7YXM9MDthdD1EO2F1PVg7YWc9VzskPXA7
YXY9VjtMNDMxOndoaWxlKDEpe2FsPWNbZz4+Ml18MDtkb3tpZigoYWx8MCk9PTApe2FPPTB9ZWxz
ZXtpZigoY1thbCsxMj4+Ml18MCkhPShjW2FsKzE2Pj4yXXwwKSl7YU89YWw7YnJlYWt9aWYoKGIw
W2NbKGNbYWw+PjJdfDApKzM2Pj4yXSYxMjddKGFsKXwwKT09LTEpe2NbZz4+Ml09MDthTz0wO2Jy
ZWFrfWVsc2V7YU89Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7YWw9KGFPfDApPT0wO2FrPWNb
ZT4+Ml18MDtkb3tpZigoYWt8MCk9PTApe2FhPTQxOH1lbHNle2lmKChjW2FrKzEyPj4yXXwwKSE9
KGNbYWsrMTY+PjJdfDApKXtpZihhbCl7YnJlYWt9ZWxzZXticmVhayBMNDMxfX1pZigoYjBbY1so
Y1thaz4+Ml18MCkrMzY+PjJdJjEyN10oYWspfDApPT0tMSl7Y1tlPj4yXT0wO2FhPTQxODticmVh
a31lbHNle2lmKGFsKXticmVha31lbHNle2JyZWFrIEw0MzF9fX19d2hpbGUoMCk7aWYoKGFhfDAp
PT00MTgpe2FhPTA7aWYoYWwpe2JyZWFrfX1haz1jW2c+PjJdfDA7YUM9Y1thaysxMj4+Ml18MDtp
ZigoYUN8MCk9PShjW2FrKzE2Pj4yXXwwKSl7YVA9KGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYx
MjddKGFrKXwwKSYyNTV9ZWxzZXthUD1hW2FDXXwwfWRve2lmKGFQPDwyND4+MjQ+LTEpe2lmKChi
WyhjW2Y+PjJdfDApKyhhUDw8MjQ+PjI0PDwxKT4+MV0mMjA0OCk9PTApe2FhPTQzNzticmVha31h
Qz1jW28+PjJdfDA7aWYoKGFDfDApPT0oYXZ8MCkpe2FrPShjW1U+PjJdfDApIT0xNjY7YVE9Y1to
Pj4yXXwwO2FSPWF2LWFRfDA7YVM9YVI+Pj4wPDIxNDc0ODM2NDc/YVI8PDE6LTE7YVQ9a0woYWs/
YVE6MCxhUyl8MDtpZigoYVR8MCk9PTApe2tYKCl9ZG97aWYoYWspe2NbaD4+Ml09YVQ7YVU9YVR9
ZWxzZXthUT1jW2g+PjJdfDA7Y1toPj4yXT1hVDtpZigoYVF8MCk9PTApe2FVPWFUO2JyZWFrfWJZ
W2NbVT4+Ml0mNTExXShhUSk7YVU9Y1toPj4yXXwwfX13aGlsZSgwKTtjW1U+PjJdPTgyO2FUPWFV
K2FSfDA7Y1tvPj4yXT1hVDthVj0oY1toPj4yXXwwKSthU3wwO2FXPWFUfWVsc2V7YVY9YXY7YVc9
YUN9Y1tvPj4yXT1hVysxO2FbYVddPWFQO2FYPWFzKzF8MDthWT1hdDthWj1hdTthXz1hZzthJD0k
O2EwPWFWfWVsc2V7YWE9NDM3fX13aGlsZSgwKTtpZigoYWF8MCk9PTQzNyl7YWE9MDthbD1kW3dd
fDA7aWYoKCgoYWwmMXwwKT09MD9hbD4+PjE6Y1tuPj4yXXwwKXwwKT09MHwoYXN8MCk9PTApe2Jy
ZWFrfWlmKGFQPDwyND4+MjQhPShhW3VdfDApKXticmVha31pZigoYXV8MCk9PShhdHwwKSl7YWw9
YXUtYWd8MDthVD1hbD4+PjA8MjE0NzQ4MzY0Nz9hbDw8MTotMTtpZigoJHwwKT09MTY2KXthMT0w
fWVsc2V7YTE9YWd9YWs9a0woYTEsYVQpfDA7YWk9YWs7aWYoKGFrfDApPT0wKXtrWCgpfWEyPWFp
KyhhVD4+PjI8PDIpfDA7YTM9YWkrKGFsPj4yPDwyKXwwO2E0PWFpO2E1PTgyfWVsc2V7YTI9YXQ7
YTM9YXU7YTQ9YWc7YTU9JH1jW2EzPj4yXT1hczthWD0wO2FZPWEyO2FaPWEzKzR8MDthXz1hNDth
JD1hNTthMD1hdn1haT1jW2c+PjJdfDA7YWw9YWkrMTJ8MDthVD1jW2FsPj4yXXwwO2lmKChhVHww
KT09KGNbYWkrMTY+PjJdfDApKXthaz1jWyhjW2FpPj4yXXwwKSs0MD4+Ml18MDtiMFthayYxMjdd
KGFpKXwwO2FzPWFYO2F0PWFZO2F1PWFaO2FnPWFfOyQ9YSQ7YXY9YTA7Y29udGludWV9ZWxzZXtj
W2FsPj4yXT1hVCsxO2FzPWFYO2F0PWFZO2F1PWFaO2FnPWFfOyQ9YSQ7YXY9YTA7Y29udGludWV9
fWlmKChhZ3wwKT09KGF1fDApfChhc3wwKT09MCl7YTY9YXQ7YTc9YXU7YTg9YWc7YTk9JH1lbHNl
e2lmKChhdXwwKT09KGF0fDApKXthVD1hdS1hZ3wwO2FsPWFUPj4+MDwyMTQ3NDgzNjQ3P2FUPDwx
Oi0xO2lmKCgkfDApPT0xNjYpe2JhPTB9ZWxzZXtiYT1hZ31haT1rTChiYSxhbCl8MDthaz1haTtp
ZigoYWl8MCk9PTApe2tYKCl9YmI9YWsrKGFsPj4+Mjw8Mil8MDtiYz1haysoYVQ+PjI8PDIpfDA7
YmQ9YWs7YmU9ODJ9ZWxzZXtiYj1hdDtiYz1hdTtiZD1hZztiZT0kfWNbYmM+PjJdPWFzO2E2PWJi
O2E3PWJjKzR8MDthOD1iZDthOT1iZX1pZigoY1tCPj4yXXwwKT4wKXthaz1jW2c+PjJdfDA7ZG97
aWYoKGFrfDApPT0wKXtiZj0wfWVsc2V7aWYoKGNbYWsrMTI+PjJdfDApIT0oY1thaysxNj4+Ml18
MCkpe2JmPWFrO2JyZWFrfWlmKChiMFtjWyhjW2FrPj4yXXwwKSszNj4+Ml0mMTI3XShhayl8MCk9
PS0xKXtjW2c+PjJdPTA7YmY9MDticmVha31lbHNle2JmPWNbZz4+Ml18MDticmVha319fXdoaWxl
KDApO2FrPShiZnwwKT09MDthcz1jW2U+PjJdfDA7ZG97aWYoKGFzfDApPT0wKXthYT00NzB9ZWxz
ZXtpZigoY1thcysxMj4+Ml18MCkhPShjW2FzKzE2Pj4yXXwwKSl7aWYoYWspe2JnPWFzO2JyZWFr
fWVsc2V7YWE9NDc3O2JyZWFrIEwyODZ9fWlmKChiMFtjWyhjW2FzPj4yXXwwKSszNj4+Ml0mMTI3
XShhcyl8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NDcwO2JyZWFrfWVsc2V7aWYoYWspe2JnPWFzO2Jy
ZWFrfWVsc2V7YWE9NDc3O2JyZWFrIEwyODZ9fX19d2hpbGUoMCk7aWYoKGFhfDApPT00NzApe2Fh
PTA7aWYoYWspe2FhPTQ3NzticmVhayBMMjg2fWVsc2V7Ymc9MH19YXM9Y1tnPj4yXXwwOyQ9Y1th
cysxMj4+Ml18MDtpZigoJHwwKT09KGNbYXMrMTY+PjJdfDApKXtiaD0oYjBbY1soY1thcz4+Ml18
MCkrMzY+PjJdJjEyN10oYXMpfDApJjI1NX1lbHNle2JoPWFbJF18MH1pZihiaDw8MjQ+PjI0IT0o
YVt0XXwwKSl7YWE9NDc3O2JyZWFrIEwyODZ9JD1jW2c+PjJdfDA7YXM9JCsxMnwwO2FnPWNbYXM+
PjJdfDA7aWYoKGFnfDApPT0oY1skKzE2Pj4yXXwwKSl7YXU9Y1soY1skPj4yXXwwKSs0MD4+Ml18
MDtiMFthdSYxMjddKCQpfDA7Ymk9YXY7Ymo9Ymd9ZWxzZXtjW2FzPj4yXT1hZysxO2JpPWF2O2Jq
PWJnfXdoaWxlKDEpe2FnPWNbZz4+Ml18MDtkb3tpZigoYWd8MCk9PTApe2JrPTB9ZWxzZXtpZigo
Y1thZysxMj4+Ml18MCkhPShjW2FnKzE2Pj4yXXwwKSl7Yms9YWc7YnJlYWt9aWYoKGIwW2NbKGNb
YWc+PjJdfDApKzM2Pj4yXSYxMjddKGFnKXwwKT09LTEpe2NbZz4+Ml09MDtiaz0wO2JyZWFrfWVs
c2V7Yms9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7YWc9KGJrfDApPT0wO2Rve2lmKChianww
KT09MCl7YWE9NDkzfWVsc2V7aWYoKGNbYmorMTI+PjJdfDApIT0oY1tiaisxNj4+Ml18MCkpe2lm
KGFnKXtibD1iajticmVha31lbHNle2FhPTUwMTticmVhayBMMjg2fX1pZigoYjBbY1soY1tiaj4+
Ml18MCkrMzY+PjJdJjEyN10oYmopfDApPT0tMSl7Y1tlPj4yXT0wO2FhPTQ5MzticmVha31lbHNl
e2lmKGFnKXtibD1iajticmVha31lbHNle2FhPTUwMTticmVhayBMMjg2fX19fXdoaWxlKDApO2lm
KChhYXwwKT09NDkzKXthYT0wO2lmKGFnKXthYT01MDE7YnJlYWsgTDI4Nn1lbHNle2JsPTB9fWFz
PWNbZz4+Ml18MDskPWNbYXMrMTI+PjJdfDA7aWYoKCR8MCk9PShjW2FzKzE2Pj4yXXwwKSl7Ym09
KGIwW2NbKGNbYXM+PjJdfDApKzM2Pj4yXSYxMjddKGFzKXwwKSYyNTV9ZWxzZXtibT1hWyRdfDB9
aWYoYm08PDI0Pj4yNDw9LTEpe2FhPTUwMTticmVhayBMMjg2fWlmKChiWyhjW2Y+PjJdfDApKyhi
bTw8MjQ+PjI0PDwxKT4+MV0mMjA0OCk9PTApe2FhPTUwMTticmVhayBMMjg2fSQ9Y1tvPj4yXXww
O2lmKCgkfDApPT0oYml8MCkpe2FzPShjW1U+PjJdfDApIT0xNjY7YXU9Y1toPj4yXXwwO2F0PWJp
LWF1fDA7YVQ9YXQ+Pj4wPDIxNDc0ODM2NDc/YXQ8PDE6LTE7YWw9a0woYXM/YXU6MCxhVCl8MDtp
ZigoYWx8MCk9PTApe2tYKCl9ZG97aWYoYXMpe2NbaD4+Ml09YWw7Ym49YWx9ZWxzZXthdT1jW2g+
PjJdfDA7Y1toPj4yXT1hbDtpZigoYXV8MCk9PTApe2JuPWFsO2JyZWFrfWJZW2NbVT4+Ml0mNTEx
XShhdSk7Ym49Y1toPj4yXXwwfX13aGlsZSgwKTtjW1U+PjJdPTgyO2FsPWJuK2F0fDA7Y1tvPj4y
XT1hbDtibz0oY1toPj4yXXwwKSthVHwwO2JwPWFsfWVsc2V7Ym89Ymk7YnA9JH1hbD1jW2c+PjJd
fDA7YXM9Y1thbCsxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FsKzE2Pj4yXXwwKSl7YWc9KGIwW2Nb
KGNbYWw+PjJdfDApKzM2Pj4yXSYxMjddKGFsKXwwKSYyNTU7YnE9YWc7YnI9Y1tvPj4yXXwwfWVs
c2V7YnE9YVthc118MDticj1icH1jW28+PjJdPWJyKzE7YVticl09YnE7YXM9KGNbQj4+Ml18MCkt
MXwwO2NbQj4+Ml09YXM7YWc9Y1tnPj4yXXwwO2FsPWFnKzEyfDA7YXU9Y1thbD4+Ml18MDtpZigo
YXV8MCk9PShjW2FnKzE2Pj4yXXwwKSl7YWk9Y1soY1thZz4+Ml18MCkrNDA+PjJdfDA7YjBbYWkm
MTI3XShhZyl8MH1lbHNle2NbYWw+PjJdPWF1KzF9aWYoKGFzfDApPjApe2JpPWJvO2JqPWJsfWVs
c2V7YnM9Ym87YnJlYWt9fX1lbHNle2JzPWF2fWlmKChjW28+PjJdfDApPT0oY1toPj4yXXwwKSl7
YWE9NTIxO2JyZWFrIEwyODZ9ZWxzZXthbT1yO2FuPWE2O2FvPWE3O2FwPWE4O2FxPWE5O2FyPWJz
fWJyZWFrfTtkZWZhdWx0OnthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9Vn19fXdoaWxlKDAp
O0w1ODU6ZG97aWYoKGFhfDApPT0yOTcpe2FhPTA7aWYoKFl8MCk9PTMpe2FjPXA7YWQ9VzthZT1Y
O2FmPXI7YWE9NTIzO2JyZWFrIEwyODZ9ZWxzZXtidD1hYn13aGlsZSgxKXtaPWNbZz4+Ml18MDtk
b3tpZigoWnwwKT09MCl7YnU9MH1lbHNle2lmKChjW1orMTI+PjJdfDApIT0oY1taKzE2Pj4yXXww
KSl7YnU9WjticmVha31pZigoYjBbY1soY1taPj4yXXwwKSszNj4+Ml0mMTI3XShaKXwwKT09LTEp
e2NbZz4+Ml09MDtidT0wO2JyZWFrfWVsc2V7YnU9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7
Wj0oYnV8MCk9PTA7ZG97aWYoKGJ0fDApPT0wKXthYT0zMTB9ZWxzZXtpZigoY1tidCsxMj4+Ml18
MCkhPShjW2J0KzE2Pj4yXXwwKSl7aWYoWil7YnY9YnQ7YnJlYWt9ZWxzZXthbT1yO2FuPUQ7YW89
WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1fX1pZigoYjBbY1soY1tidD4+Ml18MCkrMzY+PjJd
JjEyN10oYnQpfDApPT0tMSl7Y1tlPj4yXT0wO2FhPTMxMDticmVha31lbHNle2lmKFope2J2PWJ0
O2JyZWFrfWVsc2V7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDU4NX19fX13
aGlsZSgwKTtpZigoYWF8MCk9PTMxMCl7YWE9MDtpZihaKXthbT1yO2FuPUQ7YW89WDthcD1XO2Fx
PXA7YXI9VjticmVhayBMNTg1fWVsc2V7YnY9MH19JD1jW2c+PjJdfDA7YVQ9Y1skKzEyPj4yXXww
O2lmKChhVHwwKT09KGNbJCsxNj4+Ml18MCkpe2J3PShiMFtjWyhjWyQ+PjJdfDApKzM2Pj4yXSYx
MjddKCQpfDApJjI1NX1lbHNle2J3PWFbYVRdfDB9aWYoYnc8PDI0Pj4yNDw9LTEpe2FtPXI7YW49
RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEw1ODV9aWYoKGJbKGNbZj4+Ml18MCkrKGJ3PDwy
ND4+MjQ8PDEpPj4xXSY4MTkyKT09MCl7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJl
YWsgTDU4NX1hVD1jW2c+PjJdfDA7JD1hVCsxMnwwO2F0PWNbJD4+Ml18MDtpZigoYXR8MCk9PShj
W2FUKzE2Pj4yXXwwKSl7Yng9KGIwW2NbKGNbYVQ+PjJdfDApKzQwPj4yXSYxMjddKGFUKXwwKSYy
NTV9ZWxzZXtjWyQ+PjJdPWF0KzE7Yng9YVthdF18MH1kVShBLGJ4KTtidD1idn19fXdoaWxlKDAp
O2F2PVkrMXwwO2lmKGF2Pj4+MDw0KXtWPWFyO3A9YXE7Vz1hcDtYPWFvO0Q9YW47cj1hbTtZPWF2
fWVsc2V7YWM9YXE7YWQ9YXA7YWU9YW87YWY9YW07YWE9NTIzO2JyZWFrfX1MNjIyOmRve2lmKChh
YXwwKT09Mjk2KXtjW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PVc7YkE9cH1lbHNlIGlmKChhYXww
KT09MzYzKXtjW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PVc7YkE9cH1lbHNlIGlmKChhYXwwKT09
NDA1KXtjW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PVc7YkE9cH1lbHNlIGlmKChhYXwwKT09NDc3
KXtjW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PWE4O2JBPWE5fWVsc2UgaWYoKGFhfDApPT01MDEp
e2Nbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9YTg7YkE9YTl9ZWxzZSBpZigoYWF8MCk9PTUyMSl7
Y1trPj4yXT1jW2s+PjJdfDQ7Ynk9MDtiej1hODtiQT1hOX1lbHNlIGlmKChhYXwwKT09NTIzKXtM
NjMwOmRve2lmKChhZnwwKSE9MCl7YW09YWY7YW89YWYrMXwwO2FwPWFmKzh8MDthcT1hZis0fDA7
WT0xO0w2MzI6d2hpbGUoMSl7cj1kW2FtXXwwO2lmKChyJjF8MCk9PTApe2JCPXI+Pj4xfWVsc2V7
YkI9Y1thcT4+Ml18MH1pZihZPj4+MD49YkI+Pj4wKXticmVhayBMNjMwfXI9Y1tnPj4yXXwwO2Rv
e2lmKChyfDApPT0wKXtiQz0wfWVsc2V7aWYoKGNbcisxMj4+Ml18MCkhPShjW3IrMTY+PjJdfDAp
KXtiQz1yO2JyZWFrfWlmKChiMFtjWyhjW3I+PjJdfDApKzM2Pj4yXSYxMjddKHIpfDApPT0tMSl7
Y1tnPj4yXT0wO2JDPTA7YnJlYWt9ZWxzZXtiQz1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTty
PShiQ3wwKT09MDtaPWNbZT4+Ml18MDtkb3tpZigoWnwwKT09MCl7YWE9NTQxfWVsc2V7aWYoKGNb
WisxMj4+Ml18MCkhPShjW1orMTY+PjJdfDApKXtpZihyKXticmVha31lbHNle2JyZWFrIEw2MzJ9
fWlmKChiMFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFopfDApPT0tMSl7Y1tlPj4yXT0wO2Fh
PTU0MTticmVha31lbHNle2lmKHIpe2JyZWFrfWVsc2V7YnJlYWsgTDYzMn19fX13aGlsZSgwKTtp
ZigoYWF8MCk9PTU0MSl7YWE9MDtpZihyKXticmVha319Wj1jW2c+PjJdfDA7YW49Y1taKzEyPj4y
XXwwO2lmKChhbnwwKT09KGNbWisxNj4+Ml18MCkpe2JEPShiMFtjWyhjW1o+PjJdfDApKzM2Pj4y
XSYxMjddKFopfDApJjI1NX1lbHNle2JEPWFbYW5dfDB9aWYoKGFbYW1dJjEpPT0wKXtiRT1hb31l
bHNle2JFPWNbYXA+PjJdfDB9aWYoYkQ8PDI0Pj4yNCE9KGFbYkUrWXwwXXwwKSl7YnJlYWt9YW49
WSsxfDA7Wj1jW2c+PjJdfDA7RD1aKzEyfDA7WD1jW0Q+PjJdfDA7aWYoKFh8MCk9PShjW1orMTY+
PjJdfDApKXthcj1jWyhjW1o+PjJdfDApKzQwPj4yXXwwO2IwW2FyJjEyN10oWil8MDtZPWFuO2Nv
bnRpbnVlfWVsc2V7Y1tEPj4yXT1YKzE7WT1hbjtjb250aW51ZX19Y1trPj4yXT1jW2s+PjJdfDQ7
Ynk9MDtiej1hZDtiQT1hYzticmVhayBMNjIyfX13aGlsZSgwKTtpZigoYWR8MCk9PShhZXwwKSl7
Ynk9MTtiej1hZTtiQT1hYzticmVha31jW0M+PjJdPTA7ZnQodixhZCxhZSxDKTtpZigoY1tDPj4y
XXwwKT09MCl7Ynk9MTtiej1hZDtiQT1hYzticmVha31jW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6
PWFkO2JBPWFjfX13aGlsZSgwKTtkUChBKTtkUCh6KTtkUCh5KTtkUCh4KTtkUCh2KTtpZigoYnp8
MCk9PTApe2k9cTtyZXR1cm4gYnl8MH1iWVtiQSY1MTFdKGJ6KTtpPXE7cmV0dXJuIGJ5fDB9ZnVu
Y3Rpb24gaFMoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0w
LGs9MCxsPTAsbT0wLG49MDtmPWI7Zz1kO2g9YVtmXXwwO2k9aCYyNTU7aWYoKGkmMXwwKT09MCl7
aj1pPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9aWYoKGgmMSk9PTApe2s9MTA7bD1ofWVsc2V7aD1j
W2I+PjJdfDA7az0oaCYtMiktMXwwO2w9aCYyNTV9aD1lLWd8MDtpZigoZXwwKT09KGR8MCkpe3Jl
dHVybiBifDB9aWYoKGstanwwKT4+PjA8aD4+PjApe2QxKGIsayxqK2gta3wwLGosaiwwLDApO209
YVtmXXwwfWVsc2V7bT1sfWlmKChtJjEpPT0wKXtuPWIrMXwwfWVsc2V7bj1jW2IrOD4+Ml18MH1t
PWUrKGotZyl8MDtnPWQ7ZD1uK2p8MDt3aGlsZSgxKXthW2RdPWFbZ118MDtsPWcrMXwwO2lmKChs
fDApPT0oZXwwKSl7YnJlYWt9ZWxzZXtnPWw7ZD1kKzF8MH19YVtuK218MF09MDttPWoraHwwO2lm
KChhW2ZdJjEpPT0wKXthW2ZdPW08PDEmMjU1O3JldHVybiBifDB9ZWxzZXtjW2IrND4+Ml09bTty
ZXR1cm4gYnwwfXJldHVybiAwfWZ1bmN0aW9uIGhUKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0
dXJufWZ1bmN0aW9uIGhVKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhWKGEpe2E9
YXwwO3ZhciBiPTA7Yj1iTyg4KXwwO2RFKGIsYSk7YmwoYnwwLDgxOTIsMjIpfWZ1bmN0aW9uIGhX
KGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1q
fDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTA7ZD1pO2k9aSsxNjB8MDtsPWU7ZT1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1kfDA7bT1kKzE2fDA7bj1kKzEyMHwwO289ZCsxMjh8
MDtwPWQrMTM2fDA7cT1kKzE0NHwwO3I9ZCsxNTJ8MDtzPW58MDtjW3M+PjJdPW07dD1uKzR8MDtj
W3Q+PjJdPTE2Njt1PW0rMTAwfDA7ZWoocCxoKTttPXB8MDt2PWNbbT4+Ml18MDtpZigoY1szOTI0
XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2
LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO3c9Y1t2Kzg+PjJdfDA7ZG97aWYoKGNbdisxMj4+Ml18
MCktdz4+Mj4+PjA+bD4+PjApe3g9Y1t3KyhsPDwyKT4+Ml18MDtpZigoeHwwKT09MCl7YnJlYWt9
eT14O2FbcV09MDt6PWZ8MDtBPWNbej4+Ml18MDtjW3I+PjJdPUE7aWYoaFIoZSxyLGcscCxjW2gr
ND4+Ml18MCxqLHEseSxuLG8sdSl8MCl7Qj1rO2lmKChhW0JdJjEpPT0wKXthW2srMXwwXT0wO2Fb
Ql09MH1lbHNle2FbY1trKzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9Qj14O2lmKChhW3FdJjEpIT0w
KXtkVShrLGJfW2NbKGNbQj4+Ml18MCkrMjg+PjJdJjMxXSh5LDQ1KXwwKX14PWJfW2NbKGNbQj4+
Ml18MCkrMjg+PjJdJjMxXSh5LDQ4KXwwO3k9Y1tvPj4yXXwwO0I9eS0xfDA7Qz1jW3M+PjJdfDA7
d2hpbGUoMSl7aWYoQz4+PjA+PUI+Pj4wKXticmVha31pZigoYVtDXXwwKT09eDw8MjQ+PjI0KXtD
PUMrMXwwfWVsc2V7YnJlYWt9fWhTKGssQyx5KXwwfXg9ZXwwO0I9Y1t4Pj4yXXwwO2Rve2lmKChC
fDApPT0wKXtEPTB9ZWxzZXtpZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe0Q9Qjti
cmVha31pZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSE9LTEpe0Q9QjticmVh
a31jW3g+PjJdPTA7RD0wfX13aGlsZSgwKTt4PShEfDApPT0wO2Rve2lmKChBfDApPT0wKXtFPTYy
MX1lbHNle2lmKChjW0ErMTI+PjJdfDApIT0oY1tBKzE2Pj4yXXwwKSl7aWYoeCl7YnJlYWt9ZWxz
ZXtFPTYyMzticmVha319aWYoKGIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MCk9PS0x
KXtjW3o+PjJdPTA7RT02MjE7YnJlYWt9ZWxzZXtpZih4XihBfDApPT0wKXticmVha31lbHNle0U9
NjIzO2JyZWFrfX19fXdoaWxlKDApO2lmKChFfDApPT02MjEpe2lmKHgpe0U9NjIzfX1pZigoRXww
KT09NjIzKXtjW2o+PjJdPWNbaj4+Ml18Mn1jW2I+PjJdPUQ7QT1jW20+PjJdfDA7ZHooQSl8MDtB
PWNbcz4+Ml18MDtjW3M+PjJdPTA7aWYoKEF8MCk9PTApe2k9ZDtyZXR1cm59YllbY1t0Pj4yXSY1
MTFdKEEpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3Niwx
MzQpfWZ1bmN0aW9uIGhYKGIsZCxlLGYsZyxoLGosayxsLG0pe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxx
PTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxEPTAsRT0wLEY9
MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MDtuPWk7aT1pKzU2fDA7bz1ufDA7
cD1uKzE2fDA7cT1uKzMyfDA7cj1uKzQwfDA7cz1yO3Q9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt1
PXQ7dj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7
eT14O3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztCPUE7
RD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Rz1G
O0g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztJPUg7aWYoYil7Yj1jW2Q+PjJdfDA7aWYoKGNbNDA0
NF18MCkhPS0xKXtjW3A+PjJdPTE2MTc2O2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNjE3
NixwLDk2KX1wPShjWzQwNDVdfDApLTF8MDtKPWNbYis4Pj4yXXwwO2lmKChjW2IrMTI+PjJdfDAp
LUo+PjI+Pj4wPD1wPj4+MCl7Sz1iTyg0KXwwO0w9SztrcShMKTtibChLfDAsODE3NiwxMzQpfWI9
Y1tKKyhwPDwyKT4+Ml18MDtpZigoYnwwKT09MCl7Sz1iTyg0KXwwO0w9SztrcShMKTtibChLfDAs
ODE3NiwxMzQpfUs9YjtiWltjWyhjW2I+PjJdfDApKzQ0Pj4yXSYxMjddKHEsSyk7TD1lO0M9Y1tx
Pj4yXXwwO2FbTF09QyYyNTU7Qz1DPj44O2FbTCsxfDBdPUMmMjU1O0M9Qz4+ODthW0wrMnwwXT1D
JjI1NTtDPUM+Pjg7YVtMKzN8MF09QyYyNTU7TD1iO2JaW2NbKGNbTD4+Ml18MCkrMzI+PjJdJjEy
N10ocixLKTtxPWw7aWYoKGFbcV0mMSk9PTApe2FbbCsxfDBdPTA7YVtxXT0wfWVsc2V7YVtjW2wr
OD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChsLDApO2NbcT4+Ml09Y1tzPj4yXTtjW3ErND4+Ml09
Y1tzKzQ+PjJdO2NbcSs4Pj4yXT1jW3MrOD4+Ml07ayQoc3wwLDAsMTIpO2RQKHIpO2JaW2NbKGNb
TD4+Ml18MCkrMjg+PjJdJjEyN10odCxLKTtyPWs7aWYoKGFbcl0mMSk9PTApe2FbaysxfDBdPTA7
YVtyXT0wfWVsc2V7YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1kJChrLDApO2Nbcj4+Ml09
Y1t1Pj4yXTtjW3IrND4+Ml09Y1t1KzQ+PjJdO2Nbcis4Pj4yXT1jW3UrOD4+Ml07ayQodXwwLDAs
MTIpO2RQKHQpO3Q9YjthW2ZdPWIwW2NbKGNbdD4+Ml18MCkrMTI+PjJdJjEyN10oSyl8MDthW2dd
PWIwW2NbKGNbdD4+Ml18MCkrMTY+PjJdJjEyN10oSyl8MDtiWltjWyhjW0w+PjJdfDApKzIwPj4y
XSYxMjddKHYsSyk7dD1oO2lmKChhW3RdJjEpPT0wKXthW2grMXwwXT0wO2FbdF09MH1lbHNle2Fb
Y1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9ZCQoaCwwKTtjW3Q+PjJdPWNbdz4+Ml07Y1t0KzQ+
PjJdPWNbdys0Pj4yXTtjW3QrOD4+Ml09Y1t3Kzg+PjJdO2skKHd8MCwwLDEyKTtkUCh2KTtiWltj
WyhjW0w+PjJdfDApKzI0Pj4yXSYxMjddKHgsSyk7TD1qO2lmKChhW0xdJjEpPT0wKXthW2orMXww
XT0wO2FbTF09MH1lbHNle2FbY1tqKzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW0w+
PjJdPWNbeT4+Ml07Y1tMKzQ+PjJdPWNbeSs0Pj4yXTtjW0wrOD4+Ml09Y1t5Kzg+PjJdO2skKHl8
MCwwLDEyKTtkUCh4KTtNPWIwW2NbKGNbYj4+Ml18MCkrMzY+PjJdJjEyN10oSyl8MDtjW20+PjJd
PU07aT1uO3JldHVybn1lbHNle0s9Y1tkPj4yXXwwO2lmKChjWzQwNDZdfDApIT0tMSl7Y1tvPj4y
XT0xNjE4NDtjW28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxODQsbyw5Nil9bz0oY1s0MDQ3
XXwwKS0xfDA7ZD1jW0srOD4+Ml18MDtpZigoY1tLKzEyPj4yXXwwKS1kPj4yPj4+MDw9bz4+PjAp
e049Yk8oNCl8MDtPPU47a3EoTyk7YmwoTnwwLDgxNzYsMTM0KX1LPWNbZCsobzw8Mik+PjJdfDA7
aWYoKEt8MCk9PTApe049Yk8oNCl8MDtPPU47a3EoTyk7YmwoTnwwLDgxNzYsMTM0KX1OPUs7Ylpb
Y1soY1tLPj4yXXwwKSs0ND4+Ml0mMTI3XSh6LE4pO089ZTtDPWNbej4+Ml18MDthW09dPUMmMjU1
O0M9Qz4+ODthW08rMXwwXT1DJjI1NTtDPUM+Pjg7YVtPKzJ8MF09QyYyNTU7Qz1DPj44O2FbTysz
fDBdPUMmMjU1O089SztiWltjWyhjW08+PjJdfDApKzMyPj4yXSYxMjddKEEsTik7ej1sO2lmKChh
W3pdJjEpPT0wKXthW2wrMXwwXT0wO2Fbel09MH1lbHNle2FbY1tsKzg+PjJdfDBdPTA7Y1tsKzQ+
PjJdPTB9ZCQobCwwKTtjW3o+PjJdPWNbQj4+Ml07Y1t6KzQ+PjJdPWNbQis0Pj4yXTtjW3orOD4+
Ml09Y1tCKzg+PjJdO2skKEJ8MCwwLDEyKTtkUChBKTtiWltjWyhjW08+PjJdfDApKzI4Pj4yXSYx
MjddKEQsTik7QT1rO2lmKChhW0FdJjEpPT0wKXthW2srMXwwXT0wO2FbQV09MH1lbHNle2FbY1tr
Kzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW0E+PjJdPWNbRT4+Ml07Y1tBKzQ+PjJd
PWNbRSs0Pj4yXTtjW0ErOD4+Ml09Y1tFKzg+PjJdO2skKEV8MCwwLDEyKTtkUChEKTtEPUs7YVtm
XT1iMFtjWyhjW0Q+PjJdfDApKzEyPj4yXSYxMjddKE4pfDA7YVtnXT1iMFtjWyhjW0Q+PjJdfDAp
KzE2Pj4yXSYxMjddKE4pfDA7YlpbY1soY1tPPj4yXXwwKSsyMD4+Ml0mMTI3XShGLE4pO0Q9aDtp
ZigoYVtEXSYxKT09MCl7YVtoKzF8MF09MDthW0RdPTB9ZWxzZXthW2NbaCs4Pj4yXXwwXT0wO2Nb
aCs0Pj4yXT0wfWQkKGgsMCk7Y1tEPj4yXT1jW0c+PjJdO2NbRCs0Pj4yXT1jW0crND4+Ml07Y1tE
Kzg+PjJdPWNbRys4Pj4yXTtrJChHfDAsMCwxMik7ZFAoRik7YlpbY1soY1tPPj4yXXwwKSsyND4+
Ml0mMTI3XShILE4pO089ajtpZigoYVtPXSYxKT09MCl7YVtqKzF8MF09MDthW09dPTB9ZWxzZXth
W2Nbais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1tPPj4yXT1jW0k+PjJdO2NbTys0
Pj4yXT1jW0krND4+Ml07Y1tPKzg+PjJdPWNbSSs4Pj4yXTtrJChJfDAsMCwxMik7ZFAoSCk7TT1i
MFtjWyhjW0s+PjJdfDApKzM2Pj4yXSYxMjddKE4pfDA7Y1ttPj4yXT1NO2k9bjtyZXR1cm59fWZ1
bmN0aW9uIGhZKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wO2Q9aTtp
PWkrNjAwfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZHwwO209ZCsxNnwwO249
ZCs0MTZ8MDtvPWQrNDI0fDA7cD1kKzQzMnwwO3E9ZCs0NDB8MDtyPWQrNDQ4fDA7cz1kKzQ1Nnww
O3Q9ZCs0OTZ8MDt1PW58MDtjW3U+PjJdPW07dj1uKzR8MDtjW3Y+PjJdPTE2Njt3PW0rNDAwfDA7
ZWoocCxoKTttPXB8MDt4PWNbbT4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2
ODg7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4LGwsOTYpfWw9KGNbMzkyM118MCkt
MXwwO3k9Y1t4Kzg+PjJdfDA7ZG97aWYoKGNbeCsxMj4+Ml18MCkteT4+Mj4+PjA+bD4+PjApe3o9
Y1t5KyhsPDwyKT4+Ml18MDtpZigoenwwKT09MCl7YnJlYWt9QT16O2FbcV09MDtCPWZ8MDtjW3I+
PjJdPWNbQj4+Ml07ZG97aWYoaFooZSxyLGcscCxjW2grND4+Ml18MCxqLHEsQSxuLG8sdyl8MCl7
Qz1zfDA7RD1jWyhjW3o+PjJdfDApKzQ4Pj4yXXwwO2NhW0QmMTVdKEEsMjA5NiwyMTA2LEMpfDA7
RD10fDA7RT1jW28+PjJdfDA7Rj1jW3U+PjJdfDA7Rz1FLUZ8MDtkb3tpZigoR3wwKT4zOTIpe0g9
a0ooKEc+PjIpKzJ8MCl8MDtpZigoSHwwKSE9MCl7ST1IO0o9SDticmVha31rWCgpO0k9MDtKPTB9
ZWxzZXtJPUQ7Sj0wfX13aGlsZSgwKTtpZigoYVtxXSYxKT09MCl7Sz1JfWVsc2V7YVtJXT00NTtL
PUkrMXwwfWlmKEY+Pj4wPEU+Pj4wKXtHPXMrNDB8MDtIPXM7TD1LO009Rjt3aGlsZSgxKXtOPUM7
d2hpbGUoMSl7aWYoKE58MCk9PShHfDApKXtPPUc7YnJlYWt9aWYoKGNbTj4+Ml18MCk9PShjW00+
PjJdfDApKXtPPU47YnJlYWt9ZWxzZXtOPU4rNHwwfX1hW0xdPWFbMjA5NisoTy1IPj4yKXwwXXww
O049TSs0fDA7UD1MKzF8MDtpZihOPj4+MDwoY1tvPj4yXXwwKT4+PjApe0w9UDtNPU59ZWxzZXtR
PVA7YnJlYWt9fX1lbHNle1E9S31hW1FdPTA7TT1iRChEfDAsMTQwOCwoTD1pLGk9aSs4fDAsY1tM
Pj4yXT1rLEwpfDApfDA7aT1MO2lmKChNfDApPT0xKXtpZigoSnwwKT09MCl7YnJlYWt9a0soSik7
YnJlYWt9TT1iTyg4KXwwO2RFKE0sMTM2OCk7YmwoTXwwLDgxOTIsMjIpfX13aGlsZSgwKTtBPWV8
MDt6PWNbQT4+Ml18MDtkb3tpZigoenwwKT09MCl7Uj0wfWVsc2V7TT1jW3orMTI+PjJdfDA7aWYo
KE18MCk9PShjW3orMTY+PjJdfDApKXtTPWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8
MH1lbHNle1M9Y1tNPj4yXXwwfWlmKChTfDApIT0tMSl7Uj16O2JyZWFrfWNbQT4+Ml09MDtSPTB9
fXdoaWxlKDApO0E9KFJ8MCk9PTA7ej1jW0I+PjJdfDA7ZG97aWYoKHp8MCk9PTApe1Q9NzM5fWVs
c2V7TT1jW3orMTI+PjJdfDA7aWYoKE18MCk9PShjW3orMTY+PjJdfDApKXtVPWIwW2NbKGNbej4+
Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle1U9Y1tNPj4yXXwwfWlmKChVfDApPT0tMSl7Y1tC
Pj4yXT0wO1Q9NzM5O2JyZWFrfWVsc2V7aWYoQV4oenwwKT09MCl7YnJlYWt9ZWxzZXtUPTc0MTti
cmVha319fX13aGlsZSgwKTtpZigoVHwwKT09NzM5KXtpZihBKXtUPTc0MX19aWYoKFR8MCk9PTc0
MSl7Y1tqPj4yXT1jW2o+PjJdfDJ9Y1tiPj4yXT1SO3o9Y1ttPj4yXXwwO2R6KHopfDA7ej1jW3U+
PjJdfDA7Y1t1Pj4yXT0wO2lmKCh6fDApPT0wKXtpPWQ7cmV0dXJufWJZW2Nbdj4+Ml0mNTExXSh6
KTtpPWQ7cmV0dXJufX13aGlsZSgwKTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1m
dW5jdGlvbiBoWihiLGUsZixnLGgsaixrLGwsbSxuLG8pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0w
LEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAs
VT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAs
YWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFx
PTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxhdj0wLGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0w
LGFDPTAsYUQ9MCxhRT0wLGFGPTAsYUc9MCxhSD0wLGFJPTAsYUo9MCxhSz0wLGFMPTAsYU09MCxh
Tj0wLGFPPTAsYVA9MCxhUT0wLGFSPTAsYVM9MCxhVD0wLGFVPTAsYVY9MCxhVz0wLGFYPTAsYVk9
MCxhWj0wLGFfPTAsYSQ9MCxhMD0wLGExPTAsYTI9MCxhMz0wLGE0PTAsYTU9MCxhNj0wLGE3PTAs
YTg9MCxhOT0wLGJhPTAsYmI9MCxiYz0wLGJkPTAsYmU9MCxiZj0wLGJnPTAsYmg9MCxiaT0wLGJq
PTAsYms9MCxibD0wLGJtPTAsYm49MCxibz0wLGJwPTAsYnE9MCxicj0wLGJzPTAsYnQ9MCxidT0w
LGJ2PTAsYnc9MCxieD0wLGJ5PTAsYno9MCxiQT0wLGJCPTAsYkM9MCxiRD0wO3A9aTtpPWkrNDQ4
fDA7cT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1txPj4yXTtxPXB8MDtyPXAr
OHwwO3M9cCs0MDh8MDt0PXArNDE2fDA7dT1wKzQyNHwwO3Y9cCs0MzJ8MDt3PXY7eD1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO3k9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7QT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O0M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbcT4+Ml09bztvPXJ8MDtrJCh3fDAsMCwxMik7RD14
O0U9eTtGPXo7Rz1BO2skKER8MCwwLDEyKTtrJChFfDAsMCwxMik7ayQoRnwwLDAsMTIpO2skKEd8
MCwwLDEyKTtoMihmLGcscyx0LHUsdix4LHkseixCKTtnPW18MDtjW24+PjJdPWNbZz4+Ml07Zj1i
fDA7Yj1lfDA7ZT1sO0g9eis0fDA7ST16Kzh8MDtKPXkrNHwwO0s9eSs4fDA7TD0oaCY1MTJ8MCkh
PTA7aD14KzR8MDtNPXgrOHwwO049QSs0fDA7Tz1BKzh8MDtQPXMrM3wwO1E9dis0fDA7Uj0xNjY7
Uz1vO1Q9bztvPXIrNDAwfDA7cj0wO1U9MDtMODkwOndoaWxlKDEpe1Y9Y1tmPj4yXXwwO2Rve2lm
KChWfDApPT0wKXtXPTF9ZWxzZXtYPWNbVisxMj4+Ml18MDtpZigoWHwwKT09KGNbVisxNj4+Ml18
MCkpe1k9YjBbY1soY1tWPj4yXXwwKSszNj4+Ml0mMTI3XShWKXwwfWVsc2V7WT1jW1g+PjJdfDB9
aWYoKFl8MCk9PS0xKXtjW2Y+PjJdPTA7Vz0xO2JyZWFrfWVsc2V7Vz0oY1tmPj4yXXwwKT09MDti
cmVha319fXdoaWxlKDApO1Y9Y1tiPj4yXXwwO2Rve2lmKChWfDApPT0wKXtaPTc2N31lbHNle1g9
Y1tWKzEyPj4yXXwwO2lmKChYfDApPT0oY1tWKzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW1Y+PjJdfDAp
KzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXtfPWNbWD4+Ml18MH1pZigoX3wwKT09LTEpe2NbYj4+Ml09
MDtaPTc2NzticmVha31lbHNle2lmKFdeKFZ8MCk9PTApeyQ9VjticmVha31lbHNle2FhPVI7YWI9
UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrIEw4OTB9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTc2Nyl7
Wj0wO2lmKFcpe2FhPVI7YWI9UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrfWVsc2V7JD0wfX1MOTE0
OmRve3N3aXRjaChhW3MrVXwwXXwwKXtjYXNlIDI6e2lmKCEoKHJ8MCkhPTB8VT4+PjA8Mikpe2lm
KChVfDApPT0yKXthZT0oYVtQXXwwKSE9MH1lbHNle2FlPTB9aWYoIShMfGFlKSl7YWY9MDthZz1v
O2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9fVY9YVtEXXwwO1g9KFYmMSk9PTA/aDpjW00+PjJd
fDA7TDkyMjpkb3tpZigoVXwwKT09MCl7YWs9WDthbD1WO2FtPSR9ZWxzZXtpZigoZFtzKyhVLTEp
fDBdfDApPDIpe2FuPVg7YW89Vn1lbHNle2FrPVg7YWw9VjthbT0kO2JyZWFrfXdoaWxlKDEpe2Fw
PWFvJjI1NTtpZigoYW58MCk9PSgoKGFvJjEpPT0wP2g6Y1tNPj4yXXwwKSsoKChhcCYxfDApPT0w
P2FwPj4+MTpjW2g+PjJdfDApPDwyKXwwKSl7YXE9YW87YnJlYWt9aWYoIShiMVtjWyhjW2U+PjJd
fDApKzEyPj4yXSY2M10obCw4MTkyLGNbYW4+PjJdfDApfDApKXtaPTg2ODticmVha31hbj1hbis0
fDA7YW89YVtEXXwwfWlmKChafDApPT04Njgpe1o9MDthcT1hW0RdfDB9YXA9KGFxJjEpPT0wO2Fy
PWFuLShhcD9oOmNbTT4+Ml18MCk+PjI7YXM9YVtHXXwwO2F0PWFzJjI1NTthdT0oYXQmMXwwKT09
MDtMOTMyOmRve2lmKGFyPj4+MDw9KGF1P2F0Pj4+MTpjW04+PjJdfDApPj4+MCl7YXY9KGFzJjEp
PT0wO2F3PShhdj9OOmNbTz4+Ml18MCkrKChhdT9hdD4+PjE6Y1tOPj4yXXwwKS1hcjw8Mil8MDth
eD0oYXY/TjpjW08+PjJdfDApKygoYXU/YXQ+Pj4xOmNbTj4+Ml18MCk8PDIpfDA7aWYoKGF3fDAp
PT0oYXh8MCkpe2FrPWFuO2FsPWFxO2FtPSQ7YnJlYWsgTDkyMn1lbHNle2F5PWF3O2F6PWFwP2g6
Y1tNPj4yXXwwfXdoaWxlKDEpe2lmKChjW2F5Pj4yXXwwKSE9KGNbYXo+PjJdfDApKXticmVhayBM
OTMyfWF3PWF5KzR8MDtpZigoYXd8MCk9PShheHwwKSl7YWs9YW47YWw9YXE7YW09JDticmVhayBM
OTIyfWF5PWF3O2F6PWF6KzR8MH19fXdoaWxlKDApO2FrPWFwP2g6Y1tNPj4yXXwwO2FsPWFxO2Ft
PSR9fXdoaWxlKDApO0w5Mzk6d2hpbGUoMSl7Vj1hbCYyNTU7aWYoKGFrfDApPT0oKChhbCYxKT09
MD9oOmNbTT4+Ml18MCkrKCgoViYxfDApPT0wP1Y+Pj4xOmNbaD4+Ml18MCk8PDIpfDApKXticmVh
a31WPWNbZj4+Ml18MDtkb3tpZigoVnwwKT09MCl7YUE9MX1lbHNle1g9Y1tWKzEyPj4yXXwwO2lm
KChYfDApPT0oY1tWKzE2Pj4yXXwwKSl7YUI9YjBbY1soY1tWPj4yXXwwKSszNj4+Ml0mMTI3XShW
KXwwfWVsc2V7YUI9Y1tYPj4yXXwwfWlmKChhQnwwKT09LTEpe2NbZj4+Ml09MDthQT0xO2JyZWFr
fWVsc2V7YUE9KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZigoYW18MCk9PTAp
e1o9ODg5fWVsc2V7Vj1jW2FtKzEyPj4yXXwwO2lmKChWfDApPT0oY1thbSsxNj4+Ml18MCkpe2FD
PWIwW2NbKGNbYW0+PjJdfDApKzM2Pj4yXSYxMjddKGFtKXwwfWVsc2V7YUM9Y1tWPj4yXXwwfWlm
KChhQ3wwKT09LTEpe2NbYj4+Ml09MDtaPTg4OTticmVha31lbHNle2lmKGFBXihhbXwwKT09MCl7
YUQ9YW07YnJlYWt9ZWxzZXticmVhayBMOTM5fX19fXdoaWxlKDApO2lmKChafDApPT04ODkpe1o9
MDtpZihhQSl7YnJlYWt9ZWxzZXthRD0wfX1WPWNbZj4+Ml18MDthcD1jW1YrMTI+PjJdfDA7aWYo
KGFwfDApPT0oY1tWKzE2Pj4yXXwwKSl7YUU9YjBbY1soY1tWPj4yXXwwKSszNj4+Ml0mMTI3XShW
KXwwfWVsc2V7YUU9Y1thcD4+Ml18MH1pZigoYUV8MCkhPShjW2FrPj4yXXwwKSl7YnJlYWt9YXA9
Y1tmPj4yXXwwO1Y9YXArMTJ8MDtYPWNbVj4+Ml18MDtpZigoWHwwKT09KGNbYXArMTY+PjJdfDAp
KXthdD1jWyhjW2FwPj4yXXwwKSs0MD4+Ml18MDtiMFthdCYxMjddKGFwKXwwfWVsc2V7Y1tWPj4y
XT1YKzR9YWs9YWsrNHwwO2FsPWFbRF18MDthbT1hRH1pZighTCl7YWY9cjthZz1vO2FoPVQ7YWk9
Uzthaj1SO2JyZWFrIEw5MTR9WD1hW0RdfDA7Vj1YJjI1NTtpZigoYWt8MCk9PSgoKFgmMSk9PTA/
aDpjW00+PjJdfDApKygoKFYmMXwwKT09MD9WPj4+MTpjW2g+PjJdfDApPDwyKXwwKSl7YWY9cjth
Zz1vO2FoPVQ7YWk9Uzthaj1SfWVsc2V7Wj05MDE7YnJlYWsgTDg5MH1icmVha307Y2FzZSA0OntW
PTA7WD1vO2FwPVQ7YXQ9UzthdT1SO0w5NzU6d2hpbGUoMSl7YXI9Y1tmPj4yXXwwO2Rve2lmKChh
cnwwKT09MCl7YUY9MX1lbHNle2FzPWNbYXIrMTI+PjJdfDA7aWYoKGFzfDApPT0oY1thcisxNj4+
Ml18MCkpe2FHPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YUc9Y1th
cz4+Ml18MH1pZigoYUd8MCk9PS0xKXtjW2Y+PjJdPTA7YUY9MTticmVha31lbHNle2FGPShjW2Y+
PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7YXI9Y1tiPj4yXXwwO2Rve2lmKChhcnwwKT09MCl7
Wj05MTV9ZWxzZXthcz1jW2FyKzEyPj4yXXwwO2lmKChhc3wwKT09KGNbYXIrMTY+PjJdfDApKXth
SD1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2FIPWNbYXM+PjJdfDB9
aWYoKGFIfDApPT0tMSl7Y1tiPj4yXT0wO1o9OTE1O2JyZWFrfWVsc2V7aWYoYUZeKGFyfDApPT0w
KXticmVha31lbHNle2JyZWFrIEw5NzV9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTkxNSl7Wj0wO2lm
KGFGKXticmVha319YXI9Y1tmPj4yXXwwO2FzPWNbYXIrMTI+PjJdfDA7aWYoKGFzfDApPT0oY1th
cisxNj4+Ml18MCkpe2FJPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7
YUk9Y1thcz4+Ml18MH1pZihiMVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2M10obCwyMDQ4LGFJKXww
KXthcz1jW24+PjJdfDA7aWYoKGFzfDApPT0oY1txPj4yXXwwKSl7aDMobSxuLHEpO2FKPWNbbj4+
Ml18MH1lbHNle2FKPWFzfWNbbj4+Ml09YUorNDtjW2FKPj4yXT1hSTthSz1WKzF8MDthTD1YO2FN
PWFwO2FOPWF0O2FPPWF1fWVsc2V7YXM9ZFt3XXwwO2lmKCgoKGFzJjF8MCk9PTA/YXM+Pj4xOmNb
UT4+Ml18MCl8MCk9PTB8KFZ8MCk9PTApe2JyZWFrfWlmKChhSXwwKSE9KGNbdT4+Ml18MCkpe2Jy
ZWFrfWlmKChhcHwwKT09KFh8MCkpe2FzPShhdXwwKSE9MTY2O2FyPWFwLWF0fDA7YXg9YXI+Pj4w
PDIxNDc0ODM2NDc/YXI8PDE6LTE7aWYoYXMpe2FQPWF0fWVsc2V7YVA9MH1hcz1rTChhUCxheCl8
MDthdz1hcztpZigoYXN8MCk9PTApe2tYKCl9YVE9YXcrKGF4Pj4+Mjw8Mil8MDthUj1hdysoYXI+
PjI8PDIpfDA7YVM9YXc7YVQ9ODJ9ZWxzZXthUT1YO2FSPWFwO2FTPWF0O2FUPWF1fWNbYVI+PjJd
PVY7YUs9MDthTD1hUTthTT1hUis0fDA7YU49YVM7YU89YVR9YXc9Y1tmPj4yXXwwO2FyPWF3KzEy
fDA7YXg9Y1thcj4+Ml18MDtpZigoYXh8MCk9PShjW2F3KzE2Pj4yXXwwKSl7YXM9Y1soY1thdz4+
Ml18MCkrNDA+PjJdfDA7YjBbYXMmMTI3XShhdyl8MDtWPWFLO1g9YUw7YXA9YU07YXQ9YU47YXU9
YU87Y29udGludWV9ZWxzZXtjW2FyPj4yXT1heCs0O1Y9YUs7WD1hTDthcD1hTTthdD1hTjthdT1h
Tztjb250aW51ZX19aWYoKGF0fDApPT0oYXB8MCl8KFZ8MCk9PTApe2FVPVg7YVY9YXA7YVc9YXQ7
YVg9YXV9ZWxzZXtpZigoYXB8MCk9PShYfDApKXtheD0oYXV8MCkhPTE2Njthcj1hcC1hdHwwO2F3
PWFyPj4+MDwyMTQ3NDgzNjQ3P2FyPDwxOi0xO2lmKGF4KXthWT1hdH1lbHNle2FZPTB9YXg9a0wo
YVksYXcpfDA7YXM9YXg7aWYoKGF4fDApPT0wKXtrWCgpfWFaPWFzKyhhdz4+PjI8PDIpfDA7YV89
YXMrKGFyPj4yPDwyKXwwO2EkPWFzO2EwPTgyfWVsc2V7YVo9WDthXz1hcDthJD1hdDthMD1hdX1j
W2FfPj4yXT1WO2FVPWFaO2FWPWFfKzR8MDthVz1hJDthWD1hMH1hcz1jW0I+PjJdfDA7aWYoKGFz
fDApPjApe2FyPWNbZj4+Ml18MDtkb3tpZigoYXJ8MCk9PTApe2ExPTF9ZWxzZXthdz1jW2FyKzEy
Pj4yXXwwO2lmKChhd3wwKT09KGNbYXIrMTY+PjJdfDApKXthMj1iMFtjWyhjW2FyPj4yXXwwKSsz
Nj4+Ml0mMTI3XShhcil8MH1lbHNle2EyPWNbYXc+PjJdfDB9aWYoKGEyfDApPT0tMSl7Y1tmPj4y
XT0wO2ExPTE7YnJlYWt9ZWxzZXthMT0oY1tmPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Fy
PWNbYj4+Ml18MDtkb3tpZigoYXJ8MCk9PTApe1o9OTY0fWVsc2V7Vj1jW2FyKzEyPj4yXXwwO2lm
KChWfDApPT0oY1thcisxNj4+Ml18MCkpe2EzPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjdd
KGFyKXwwfWVsc2V7YTM9Y1tWPj4yXXwwfWlmKChhM3wwKT09LTEpe2NbYj4+Ml09MDtaPTk2NDti
cmVha31lbHNle2lmKGExXihhcnwwKT09MCl7YTQ9YXI7YnJlYWt9ZWxzZXtaPTk3MDticmVhayBM
ODkwfX19fXdoaWxlKDApO2lmKChafDApPT05NjQpe1o9MDtpZihhMSl7Wj05NzA7YnJlYWsgTDg5
MH1lbHNle2E0PTB9fWFyPWNbZj4+Ml18MDtWPWNbYXIrMTI+PjJdfDA7aWYoKFZ8MCk9PShjW2Fy
KzE2Pj4yXXwwKSl7YTU9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXth
NT1jW1Y+PjJdfDB9aWYoKGE1fDApIT0oY1t0Pj4yXXwwKSl7Wj05NzA7YnJlYWsgTDg5MH1WPWNb
Zj4+Ml18MDthcj1WKzEyfDA7YXU9Y1thcj4+Ml18MDtpZigoYXV8MCk9PShjW1YrMTY+PjJdfDAp
KXthdD1jWyhjW1Y+PjJdfDApKzQwPj4yXXwwO2IwW2F0JjEyN10oVil8MDthNj1hNDthNz1hc31l
bHNle2NbYXI+PjJdPWF1KzQ7YTY9YTQ7YTc9YXN9d2hpbGUoMSl7YXU9Y1tmPj4yXXwwO2Rve2lm
KChhdXwwKT09MCl7YTg9MX1lbHNle2FyPWNbYXUrMTI+PjJdfDA7aWYoKGFyfDApPT0oY1thdSsx
Nj4+Ml18MCkpe2E5PWIwW2NbKGNbYXU+PjJdfDApKzM2Pj4yXSYxMjddKGF1KXwwfWVsc2V7YTk9
Y1thcj4+Ml18MH1pZigoYTl8MCk9PS0xKXtjW2Y+PjJdPTA7YTg9MTticmVha31lbHNle2E4PShj
W2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7ZG97aWYoKGE2fDApPT0wKXtaPTk4N31lbHNl
e2F1PWNbYTYrMTI+PjJdfDA7aWYoKGF1fDApPT0oY1thNisxNj4+Ml18MCkpe2JhPWIwW2NbKGNb
YTY+PjJdfDApKzM2Pj4yXSYxMjddKGE2KXwwfWVsc2V7YmE9Y1thdT4+Ml18MH1pZigoYmF8MCk9
PS0xKXtjW2I+PjJdPTA7Wj05ODc7YnJlYWt9ZWxzZXtpZihhOF4oYTZ8MCk9PTApe2JiPWE2O2Jy
ZWFrfWVsc2V7Wj05OTQ7YnJlYWsgTDg5MH19fX13aGlsZSgwKTtpZigoWnwwKT09OTg3KXtaPTA7
aWYoYTgpe1o9OTk0O2JyZWFrIEw4OTB9ZWxzZXtiYj0wfX1hdT1jW2Y+PjJdfDA7YXI9Y1thdSsx
Mj4+Ml18MDtpZigoYXJ8MCk9PShjW2F1KzE2Pj4yXXwwKSl7YmM9YjBbY1soY1thdT4+Ml18MCkr
MzY+PjJdJjEyN10oYXUpfDB9ZWxzZXtiYz1jW2FyPj4yXXwwfWlmKCEoYjFbY1soY1tlPj4yXXww
KSsxMj4+Ml0mNjNdKGwsMjA0OCxiYyl8MCkpe1o9OTk0O2JyZWFrIEw4OTB9aWYoKGNbbj4+Ml18
MCk9PShjW3E+PjJdfDApKXtoMyhtLG4scSl9YXI9Y1tmPj4yXXwwO2F1PWNbYXIrMTI+PjJdfDA7
aWYoKGF1fDApPT0oY1thcisxNj4+Ml18MCkpe2JkPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYx
MjddKGFyKXwwfWVsc2V7YmQ9Y1thdT4+Ml18MH1hdT1jW24+PjJdfDA7Y1tuPj4yXT1hdSs0O2Nb
YXU+PjJdPWJkO2F1PWE3LTF8MDtjW0I+PjJdPWF1O2FyPWNbZj4+Ml18MDtWPWFyKzEyfDA7YXQ9
Y1tWPj4yXXwwO2lmKChhdHwwKT09KGNbYXIrMTY+PjJdfDApKXthcD1jWyhjW2FyPj4yXXwwKSs0
MD4+Ml18MDtiMFthcCYxMjddKGFyKXwwfWVsc2V7Y1tWPj4yXT1hdCs0fWlmKChhdXwwKT4wKXth
Nj1iYjthNz1hdX1lbHNle2JyZWFrfX19aWYoKGNbbj4+Ml18MCk9PShjW2c+PjJdfDApKXtaPTEw
MDU7YnJlYWsgTDg5MH1lbHNle2FmPXI7YWc9YVU7YWg9YVY7YWk9YVc7YWo9YVh9YnJlYWt9O2Nh
c2UgMTp7aWYoKFV8MCk9PTMpe2FhPVI7YWI9UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrIEw4OTB9
YXM9Y1tmPj4yXXwwO2F1PWNbYXMrMTI+PjJdfDA7aWYoKGF1fDApPT0oY1thcysxNj4+Ml18MCkp
e2JlPWIwW2NbKGNbYXM+PjJdfDApKzM2Pj4yXSYxMjddKGFzKXwwfWVsc2V7YmU9Y1thdT4+Ml18
MH1pZighKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJdJjYzXShsLDgxOTIsYmUpfDApKXtaPTc5MTti
cmVhayBMODkwfWF1PWNbZj4+Ml18MDthcz1hdSsxMnwwO2F0PWNbYXM+PjJdfDA7aWYoKGF0fDAp
PT0oY1thdSsxNj4+Ml18MCkpe2JmPWIwW2NbKGNbYXU+PjJdfDApKzQwPj4yXSYxMjddKGF1KXww
fWVsc2V7Y1thcz4+Ml09YXQrNDtiZj1jW2F0Pj4yXXwwfWVoKEEsYmYpO1o9NzkyO2JyZWFrfTtj
YXNlIDA6e1o9NzkyO2JyZWFrfTtjYXNlIDM6e2F0PWFbRV18MDthcz1hdCYyNTU7YXU9KGFzJjF8
MCk9PTA7Vj1hW0ZdfDA7YXI9ViYyNTU7YXA9KGFyJjF8MCk9PTA7aWYoKChhdT9hcz4+PjE6Y1tK
Pj4yXXwwKXwwKT09KC0oYXA/YXI+Pj4xOmNbSD4+Ml18MCl8MCkpe2FmPXI7YWc9bzthaD1UO2Fp
PVM7YWo9UjticmVhayBMOTE0fWRve2lmKCgoYXU/YXM+Pj4xOmNbSj4+Ml18MCl8MCkhPTApe2lm
KCgoYXA/YXI+Pj4xOmNbSD4+Ml18MCl8MCk9PTApe2JyZWFrfVg9Y1tmPj4yXXwwO2F3PWNbWCsx
Mj4+Ml18MDtpZigoYXd8MCk9PShjW1grMTY+PjJdfDApKXtheD1iMFtjWyhjW1g+PjJdfDApKzM2
Pj4yXSYxMjddKFgpfDA7Ymc9YXg7Ymg9YVtFXXwwfWVsc2V7Ymc9Y1thdz4+Ml18MDtiaD1hdH1h
dz1jW2Y+PjJdfDA7YXg9YXcrMTJ8MDtYPWNbYXg+PjJdfDA7YXY9KFh8MCk9PShjW2F3KzE2Pj4y
XXwwKTtpZigoYmd8MCk9PShjWygoYmgmMSk9PTA/SjpjW0s+PjJdfDApPj4yXXwwKSl7aWYoYXYp
e2JpPWNbKGNbYXc+PjJdfDApKzQwPj4yXXwwO2IwW2JpJjEyN10oYXcpfDB9ZWxzZXtjW2F4Pj4y
XT1YKzR9YXg9ZFtFXXwwO2FmPSgoYXgmMXwwKT09MD9heD4+PjE6Y1tKPj4yXXwwKT4+PjA+MT95
OnI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMOTE0fWlmKGF2KXtiaj1iMFtjWyhjW2F3Pj4y
XXwwKSszNj4+Ml0mMTI3XShhdyl8MH1lbHNle2JqPWNbWD4+Ml18MH1pZigoYmp8MCkhPShjWygo
YVtGXSYxKT09MD9IOmNbST4+Ml18MCk+PjJdfDApKXtaPTg1NzticmVhayBMODkwfVg9Y1tmPj4y
XXwwO2F3PVgrMTJ8MDthdj1jW2F3Pj4yXXwwO2lmKChhdnwwKT09KGNbWCsxNj4+Ml18MCkpe2F4
PWNbKGNbWD4+Ml18MCkrNDA+PjJdfDA7YjBbYXgmMTI3XShYKXwwfWVsc2V7Y1thdz4+Ml09YXYr
NH1hW2tdPTE7YXY9ZFtGXXwwO2FmPSgoYXYmMXwwKT09MD9hdj4+PjE6Y1tIPj4yXXwwKT4+PjA+
MT96OnI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMOTE0fX13aGlsZSgwKTthcj1jW2Y+PjJd
fDA7YXA9Y1thcisxMj4+Ml18MDthdj0oYXB8MCk9PShjW2FyKzE2Pj4yXXwwKTtpZigoKGF1P2Fz
Pj4+MTpjW0o+PjJdfDApfDApPT0wKXtpZihhdil7YXc9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJd
JjEyN10oYXIpfDA7Yms9YXc7Ymw9YVtGXXwwfWVsc2V7Yms9Y1thcD4+Ml18MDtibD1WfWlmKChi
a3wwKSE9KGNbKChibCYxKT09MD9IOmNbST4+Ml18MCk+PjJdfDApKXthZj1yO2FnPW87YWg9VDth
aT1TO2FqPVI7YnJlYWsgTDkxNH1hdz1jW2Y+PjJdfDA7WD1hdysxMnwwO2F4PWNbWD4+Ml18MDtp
ZigoYXh8MCk9PShjW2F3KzE2Pj4yXXwwKSl7Ymk9Y1soY1thdz4+Ml18MCkrNDA+PjJdfDA7YjBb
YmkmMTI3XShhdyl8MH1lbHNle2NbWD4+Ml09YXgrNH1hW2tdPTE7YXg9ZFtGXXwwO2FmPSgoYXgm
MXwwKT09MD9heD4+PjE6Y1tIPj4yXXwwKT4+PjA+MT96OnI7YWc9bzthaD1UO2FpPVM7YWo9Ujti
cmVhayBMOTE0fWlmKGF2KXthdj1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MDti
bT1hdjtibj1hW0VdfDB9ZWxzZXtibT1jW2FwPj4yXXwwO2JuPWF0fWlmKChibXwwKSE9KGNbKChi
biYxKT09MD9KOmNbSz4+Ml18MCk+PjJdfDApKXthW2tdPTE7YWY9cjthZz1vO2FoPVQ7YWk9Uzth
aj1SO2JyZWFrIEw5MTR9YXA9Y1tmPj4yXXwwO2F2PWFwKzEyfDA7YXI9Y1thdj4+Ml18MDtpZigo
YXJ8MCk9PShjW2FwKzE2Pj4yXXwwKSl7YXg9Y1soY1thcD4+Ml18MCkrNDA+PjJdfDA7YjBbYXgm
MTI3XShhcCl8MH1lbHNle2NbYXY+PjJdPWFyKzR9YXI9ZFtFXXwwO2FmPSgoYXImMXwwKT09MD9h
cj4+PjE6Y1tKPj4yXXwwKT4+PjA+MT95OnI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVha307ZGVm
YXVsdDp7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SfX19d2hpbGUoMCk7TDExODM6ZG97aWYoKFp8
MCk9PTc5Mil7Wj0wO2lmKChVfDApPT0zKXthYT1SO2FiPVM7YWM9VDthZD1yO1o9MTAwNzticmVh
ayBMODkwfWVsc2V7Ym89JH13aGlsZSgxKXthcj1jW2Y+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXti
cD0xfWVsc2V7YXY9Y1thcisxMj4+Ml18MDtpZigoYXZ8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YnE9
YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXticT1jW2F2Pj4yXXwwfWlm
KChicXwwKT09LTEpe2NbZj4+Ml09MDticD0xO2JyZWFrfWVsc2V7YnA9KGNbZj4+Ml18MCk9PTA7
YnJlYWt9fX13aGlsZSgwKTtkb3tpZigoYm98MCk9PTApe1o9ODA2fWVsc2V7YXI9Y1tibysxMj4+
Ml18MDtpZigoYXJ8MCk9PShjW2JvKzE2Pj4yXXwwKSl7YnI9YjBbY1soY1tibz4+Ml18MCkrMzY+
PjJdJjEyN10oYm8pfDB9ZWxzZXticj1jW2FyPj4yXXwwfWlmKChicnwwKT09LTEpe2NbYj4+Ml09
MDtaPTgwNjticmVha31lbHNle2lmKGJwXihib3wwKT09MCl7YnM9Ym87YnJlYWt9ZWxzZXthZj1y
O2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDExODN9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTgw
Nil7Wj0wO2lmKGJwKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDExODN9ZWxzZXti
cz0wfX1hcj1jW2Y+PjJdfDA7YXY9Y1thcisxMj4+Ml18MDtpZigoYXZ8MCk9PShjW2FyKzE2Pj4y
XXwwKSl7YnQ9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXtidD1jW2F2
Pj4yXXwwfWlmKCEoYjFbY1soY1tlPj4yXXwwKSsxMj4+Ml0mNjNdKGwsODE5MixidCl8MCkpe2Fm
PXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMMTE4M31hdj1jW2Y+PjJdfDA7YXI9YXYrMTJ8
MDthcD1jW2FyPj4yXXwwO2lmKChhcHwwKT09KGNbYXYrMTY+PjJdfDApKXtidT1iMFtjWyhjW2F2
Pj4yXXwwKSs0MD4+Ml0mMTI3XShhdil8MH1lbHNle2NbYXI+PjJdPWFwKzQ7YnU9Y1thcD4+Ml18
MH1laChBLGJ1KTtibz1ic319fXdoaWxlKDApO2F0PVUrMXwwO2lmKGF0Pj4+MDw0KXtSPWFqO1M9
YWk7VD1haDtvPWFnO3I9YWY7VT1hdH1lbHNle2FhPWFqO2FiPWFpO2FjPWFoO2FkPWFmO1o9MTAw
NzticmVha319TDEyMjA6ZG97aWYoKFp8MCk9PTg1Nyl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDti
dz1TO2J4PVJ9ZWxzZSBpZigoWnwwKT09OTAxKXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PVM7
Yng9Un1lbHNlIGlmKChafDApPT05NzApe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YVc7Yng9
YVh9ZWxzZSBpZigoWnwwKT09OTk0KXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PWFXO2J4PWFY
fWVsc2UgaWYoKFp8MCk9PTEwMDUpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YVc7Yng9YVh9
ZWxzZSBpZigoWnwwKT09MTAwNyl7TDEyMjc6ZG97aWYoKGFkfDApIT0wKXthZj1hZDthaD1hZCs0
fDA7YWk9YWQrOHwwO2FqPTE7TDEyMjk6d2hpbGUoMSl7VT1kW2FmXXwwO2lmKChVJjF8MCk9PTAp
e2J5PVU+Pj4xfWVsc2V7Ynk9Y1thaD4+Ml18MH1pZihhaj4+PjA+PWJ5Pj4+MCl7YnJlYWsgTDEy
Mjd9VT1jW2Y+PjJdfDA7ZG97aWYoKFV8MCk9PTApe2J6PTF9ZWxzZXtyPWNbVSsxMj4+Ml18MDtp
ZigocnwwKT09KGNbVSsxNj4+Ml18MCkpe2JBPWIwW2NbKGNbVT4+Ml18MCkrMzY+PjJdJjEyN10o
VSl8MH1lbHNle2JBPWNbcj4+Ml18MH1pZigoYkF8MCk9PS0xKXtjW2Y+PjJdPTA7Yno9MTticmVh
a31lbHNle2J6PShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7VT1jW2I+PjJdfDA7ZG97
aWYoKFV8MCk9PTApe1o9MTAyNn1lbHNle3I9Y1tVKzEyPj4yXXwwO2lmKChyfDApPT0oY1tVKzE2
Pj4yXXwwKSl7YkI9YjBbY1soY1tVPj4yXXwwKSszNj4+Ml0mMTI3XShVKXwwfWVsc2V7YkI9Y1ty
Pj4yXXwwfWlmKChiQnwwKT09LTEpe2NbYj4+Ml09MDtaPTEwMjY7YnJlYWt9ZWxzZXtpZihiel4o
VXwwKT09MCl7YnJlYWt9ZWxzZXticmVhayBMMTIyOX19fX13aGlsZSgwKTtpZigoWnwwKT09MTAy
Nil7Wj0wO2lmKGJ6KXticmVha319VT1jW2Y+PjJdfDA7cj1jW1UrMTI+PjJdfDA7aWYoKHJ8MCk9
PShjW1UrMTY+PjJdfDApKXtiQz1iMFtjWyhjW1U+PjJdfDApKzM2Pj4yXSYxMjddKFUpfDB9ZWxz
ZXtiQz1jW3I+PjJdfDB9aWYoKGFbYWZdJjEpPT0wKXtiRD1haH1lbHNle2JEPWNbYWk+PjJdfDB9
aWYoKGJDfDApIT0oY1tiRCsoYWo8PDIpPj4yXXwwKSl7YnJlYWt9cj1haisxfDA7VT1jW2Y+PjJd
fDA7YWc9VSsxMnwwO289Y1thZz4+Ml18MDtpZigob3wwKT09KGNbVSsxNj4+Ml18MCkpe1Q9Y1so
Y1tVPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10oVSl8MDthaj1yO2NvbnRpbnVlfWVsc2V7Y1th
Zz4+Ml09bys0O2FqPXI7Y29udGludWV9fWNbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YWI7Yng9
YWE7YnJlYWsgTDEyMjB9fXdoaWxlKDApO2lmKChhYnwwKT09KGFjfDApKXtidj0xO2J3PWFjO2J4
PWFhO2JyZWFrfWNbQz4+Ml09MDtmdCh2LGFiLGFjLEMpO2lmKChjW0M+PjJdfDApPT0wKXtidj0x
O2J3PWFiO2J4PWFhO2JyZWFrfWNbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YWI7Yng9YWF9ZWxz
ZSBpZigoWnwwKT09NzkxKXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PVM7Yng9Un19d2hpbGUo
MCk7ZWUoQSk7ZWUoeik7ZWUoeSk7ZWUoeCk7ZFAodik7aWYoKGJ3fDApPT0wKXtpPXA7cmV0dXJu
IGJ2fDB9YllbYngmNTExXShidyk7aT1wO3JldHVybiBidnwwfWZ1bmN0aW9uIGhfKGIsZCxlKXti
PWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wO2Y9YjtnPWQ7aD1hW2ZdfDA7aT1oJjI1NTtpZigoaSYxfDApPT0wKXtqPWk+Pj4xfWVsc2V7
aj1jW2IrND4+Ml18MH1pZigoaCYxKT09MCl7az0xO2w9aH1lbHNle2g9Y1tiPj4yXXwwO2s9KGgm
LTIpLTF8MDtsPWgmMjU1fWg9ZS1nPj4yO2lmKChofDApPT0wKXtyZXR1cm4gYnwwfWlmKChrLWp8
MCk+Pj4wPGg+Pj4wKXtlQihiLGssaitoLWt8MCxqLGosMCwwKTttPWFbZl18MH1lbHNle209bH1p
ZigobSYxKT09MCl7bj1iKzR8MH1lbHNle249Y1tiKzg+PjJdfDB9bT1uKyhqPDwyKXwwO2lmKChk
fDApPT0oZXwwKSl7bz1tfWVsc2V7bD1qKygoZS00KygtZ3wwKXwwKT4+PjIpKzF8MDtnPWQ7ZD1t
O3doaWxlKDEpe2NbZD4+Ml09Y1tnPj4yXTttPWcrNHwwO2lmKChtfDApPT0oZXwwKSl7YnJlYWt9
ZWxzZXtnPW07ZD1kKzR8MH19bz1uKyhsPDwyKXwwfWNbbz4+Ml09MDtvPWoraHwwO2lmKChhW2Zd
JjEpPT0wKXthW2ZdPW88PDEmMjU1O3JldHVybiBifDB9ZWxzZXtjW2IrND4+Ml09bztyZXR1cm4g
YnwwfXJldHVybiAwfWZ1bmN0aW9uIGgkKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1
bmN0aW9uIGgwKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGgxKGIsZCxlLGYsZyxo
LGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFy
IGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTA7ZD1pO2k9aSs0NTZ8MDtsPWU7ZT1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1kfDA7bT1kKzE2fDA7bj1kKzQxNnwwO289ZCs0MjR8
MDtwPWQrNDMyfDA7cT1kKzQ0MHwwO3I9ZCs0NDh8MDtzPW58MDtjW3M+PjJdPW07dD1uKzR8MDtj
W3Q+PjJdPTE2Njt1PW0rNDAwfDA7ZWoocCxoKTttPXB8MDt2PWNbbT4+Ml18MDtpZigoY1szOTIy
XXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4
LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO3c9Y1t2Kzg+PjJdfDA7ZG97aWYoKGNbdisxMj4+Ml18
MCktdz4+Mj4+PjA+bD4+PjApe3g9Y1t3KyhsPDwyKT4+Ml18MDtpZigoeHwwKT09MCl7YnJlYWt9
eT14O2FbcV09MDt6PWZ8MDtBPWNbej4+Ml18MDtjW3I+PjJdPUE7aWYoaFooZSxyLGcscCxjW2gr
ND4+Ml18MCxqLHEseSxuLG8sdSl8MCl7Qj1rO2lmKChhW0JdJjEpPT0wKXtjW2srND4+Ml09MDth
W0JdPTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2srND4+Ml09MH1CPXg7aWYoKGFbcV0mMSkh
PTApe2VoKGssYl9bY1soY1tCPj4yXXwwKSs0ND4+Ml0mMzFdKHksNDUpfDApfXg9Yl9bY1soY1tC
Pj4yXXwwKSs0ND4+Ml0mMzFdKHksNDgpfDA7eT1jW28+PjJdfDA7Qj15LTR8MDtDPWNbcz4+Ml18
MDt3aGlsZSgxKXtpZihDPj4+MD49Qj4+PjApe2JyZWFrfWlmKChjW0M+PjJdfDApPT0oeHwwKSl7
Qz1DKzR8MH1lbHNle2JyZWFrfX1oXyhrLEMseSl8MH14PWV8MDtCPWNbeD4+Ml18MDtkb3tpZigo
QnwwKT09MCl7RD0wfWVsc2V7RT1jW0IrMTI+PjJdfDA7aWYoKEV8MCk9PShjW0IrMTY+PjJdfDAp
KXtGPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle0Y9Y1tFPj4yXXwwfWlm
KChGfDApIT0tMSl7RD1CO2JyZWFrfWNbeD4+Ml09MDtEPTB9fXdoaWxlKDApO3g9KER8MCk9PTA7
ZG97aWYoKEF8MCk9PTApe0c9MTEwNX1lbHNle0I9Y1tBKzEyPj4yXXwwO2lmKChCfDApPT0oY1tB
KzE2Pj4yXXwwKSl7SD1iMFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDB9ZWxzZXtIPWNb
Qj4+Ml18MH1pZigoSHwwKT09LTEpe2Nbej4+Ml09MDtHPTExMDU7YnJlYWt9ZWxzZXtpZih4XihB
fDApPT0wKXticmVha31lbHNle0c9MTEwNzticmVha319fX13aGlsZSgwKTtpZigoR3wwKT09MTEw
NSl7aWYoeCl7Rz0xMTA3fX1pZigoR3wwKT09MTEwNyl7Y1tqPj4yXT1jW2o+PjJdfDJ9Y1tiPj4y
XT1EO0E9Y1ttPj4yXXwwO2R6KEEpfDA7QT1jW3M+PjJdfDA7Y1tzPj4yXT0wO2lmKChBfDApPT0w
KXtpPWQ7cmV0dXJufWJZW2NbdD4+Ml0mNTExXShBKTtpPWQ7cmV0dXJufX13aGlsZSgwKTtkPWJP
KDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBoMihiLGQsZSxmLGcsaCxqLGss
bCxtKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8
MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49
MCxPPTA7bj1pO2k9aSs1NnwwO289bnwwO3A9bisxNnwwO3E9biszMnwwO3I9bis0MHwwO3M9cjt0
PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dT10O3Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt3PXY7
eD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3k9eDt6PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztBPWk7
aT1pKzEyfDA7aT1pKzc+PjM8PDM7Qj1BO0Q9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1p
O2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0c9RjtIPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7ST1IO2lm
KGIpe2I9Y1tkPj4yXXwwO2lmKChjWzQwNDBdfDApIT0tMSl7Y1twPj4yXT0xNjE2MDtjW3ArND4+
Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTYxNjAscCw5Nil9cD0oY1s0MDQxXXwwKS0xfDA7Sj1jW2Ir
OD4+Ml18MDtpZigoY1tiKzEyPj4yXXwwKS1KPj4yPj4+MDw9cD4+PjApe0s9Yk8oNCl8MDtMPUs7
a3EoTCk7YmwoS3wwLDgxNzYsMTM0KX1iPWNbSisocDw8Mik+PjJdfDA7aWYoKGJ8MCk9PTApe0s9
Yk8oNCl8MDtMPUs7a3EoTCk7YmwoS3wwLDgxNzYsMTM0KX1LPWI7YlpbY1soY1tiPj4yXXwwKSs0
ND4+Ml0mMTI3XShxLEspO0w9ZTtDPWNbcT4+Ml18MDthW0xdPUMmMjU1O0M9Qz4+ODthW0wrMXww
XT1DJjI1NTtDPUM+Pjg7YVtMKzJ8MF09QyYyNTU7Qz1DPj44O2FbTCszfDBdPUMmMjU1O0w9Yjti
WltjWyhjW0w+PjJdfDApKzMyPj4yXSYxMjddKHIsSyk7cT1sO2lmKChhW3FdJjEpPT0wKXtjW2wr
ND4+Ml09MDthW3FdPTB9ZWxzZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDAp
O2NbcT4+Ml09Y1tzPj4yXTtjW3ErND4+Ml09Y1tzKzQ+PjJdO2NbcSs4Pj4yXT1jW3MrOD4+Ml07
ayQoc3wwLDAsMTIpO2VlKHIpO2JaW2NbKGNbTD4+Ml18MCkrMjg+PjJdJjEyN10odCxLKTtyPWs7
aWYoKGFbcl0mMSk9PTApe2Nbays0Pj4yXT0wO2Fbcl09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0w
O2Nbays0Pj4yXT0wfWV6KGssMCk7Y1tyPj4yXT1jW3U+PjJdO2Nbcis0Pj4yXT1jW3UrND4+Ml07
Y1tyKzg+PjJdPWNbdSs4Pj4yXTtrJCh1fDAsMCwxMik7ZWUodCk7dD1iO2NbZj4+Ml09YjBbY1so
Y1t0Pj4yXXwwKSsxMj4+Ml0mMTI3XShLKXwwO2NbZz4+Ml09YjBbY1soY1t0Pj4yXXwwKSsxNj4+
Ml0mMTI3XShLKXwwO2JaW2NbKGNbYj4+Ml18MCkrMjA+PjJdJjEyN10odixLKTtiPWg7aWYoKGFb
Yl0mMSk9PTApe2FbaCsxfDBdPTA7YVtiXT0wfWVsc2V7YVtjW2grOD4+Ml18MF09MDtjW2grND4+
Ml09MH1kJChoLDApO2NbYj4+Ml09Y1t3Pj4yXTtjW2IrND4+Ml09Y1t3KzQ+PjJdO2NbYis4Pj4y
XT1jW3crOD4+Ml07ayQod3wwLDAsMTIpO2RQKHYpO2JaW2NbKGNbTD4+Ml18MCkrMjQ+PjJdJjEy
N10oeCxLKTtMPWo7aWYoKGFbTF0mMSk9PTApe2Nbais0Pj4yXT0wO2FbTF09MH1lbHNle2NbY1tq
Kzg+PjJdPj4yXT0wO2Nbais0Pj4yXT0wfWV6KGosMCk7Y1tMPj4yXT1jW3k+PjJdO2NbTCs0Pj4y
XT1jW3krND4+Ml07Y1tMKzg+PjJdPWNbeSs4Pj4yXTtrJCh5fDAsMCwxMik7ZWUoeCk7TT1iMFtj
WyhjW3Q+PjJdfDApKzM2Pj4yXSYxMjddKEspfDA7Y1ttPj4yXT1NO2k9bjtyZXR1cm59ZWxzZXtL
PWNbZD4+Ml18MDtpZigoY1s0MDQyXXwwKSE9LTEpe2Nbbz4+Ml09MTYxNjg7Y1tvKzQ+PjJdPTEy
O2Nbbys4Pj4yXT0wO2RXKDE2MTY4LG8sOTYpfW89KGNbNDA0M118MCktMXwwO2Q9Y1tLKzg+PjJd
fDA7aWYoKGNbSysxMj4+Ml18MCktZD4+Mj4+PjA8PW8+Pj4wKXtOPWJPKDQpfDA7Tz1OO2txKE8p
O2JsKE58MCw4MTc2LDEzNCl9Sz1jW2QrKG88PDIpPj4yXXwwO2lmKChLfDApPT0wKXtOPWJPKDQp
fDA7Tz1OO2txKE8pO2JsKE58MCw4MTc2LDEzNCl9Tj1LO2JaW2NbKGNbSz4+Ml18MCkrNDQ+PjJd
JjEyN10oeixOKTtPPWU7Qz1jW3o+PjJdfDA7YVtPXT1DJjI1NTtDPUM+Pjg7YVtPKzF8MF09QyYy
NTU7Qz1DPj44O2FbTysyfDBdPUMmMjU1O0M9Qz4+ODthW08rM3wwXT1DJjI1NTtPPUs7YlpbY1so
Y1tPPj4yXXwwKSszMj4+Ml0mMTI3XShBLE4pO3o9bDtpZigoYVt6XSYxKT09MCl7Y1tsKzQ+PjJd
PTA7YVt6XT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW3o+
PjJdPWNbQj4+Ml07Y1t6KzQ+PjJdPWNbQis0Pj4yXTtjW3orOD4+Ml09Y1tCKzg+PjJdO2skKEJ8
MCwwLDEyKTtlZShBKTtiWltjWyhjW08+PjJdfDApKzI4Pj4yXSYxMjddKEQsTik7QT1rO2lmKChh
W0FdJjEpPT0wKXtjW2srND4+Ml09MDthW0FdPTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2sr
ND4+Ml09MH1leihrLDApO2NbQT4+Ml09Y1tFPj4yXTtjW0ErND4+Ml09Y1tFKzQ+PjJdO2NbQSs4
Pj4yXT1jW0UrOD4+Ml07ayQoRXwwLDAsMTIpO2VlKEQpO0Q9SztjW2Y+PjJdPWIwW2NbKGNbRD4+
Ml18MCkrMTI+PjJdJjEyN10oTil8MDtjW2c+PjJdPWIwW2NbKGNbRD4+Ml18MCkrMTY+PjJdJjEy
N10oTil8MDtiWltjWyhjW0s+PjJdfDApKzIwPj4yXSYxMjddKEYsTik7Sz1oO2lmKChhW0tdJjEp
PT0wKXthW2grMXwwXT0wO2FbS109MH1lbHNle2FbY1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9
ZCQoaCwwKTtjW0s+PjJdPWNbRz4+Ml07Y1tLKzQ+PjJdPWNbRys0Pj4yXTtjW0srOD4+Ml09Y1tH
Kzg+PjJdO2skKEd8MCwwLDEyKTtkUChGKTtiWltjWyhjW08+PjJdfDApKzI0Pj4yXSYxMjddKEgs
Tik7Tz1qO2lmKChhW09dJjEpPT0wKXtjW2orND4+Ml09MDthW09dPTB9ZWxzZXtjW2Nbais4Pj4y
XT4+Ml09MDtjW2orND4+Ml09MH1leihqLDApO2NbTz4+Ml09Y1tJPj4yXTtjW08rND4+Ml09Y1tJ
KzQ+PjJdO2NbTys4Pj4yXT1jW0krOD4+Ml07ayQoSXwwLDAsMTIpO2VlKEgpO009YjBbY1soY1tE
Pj4yXXwwKSszNj4+Ml0mMTI3XShOKXwwO2NbbT4+Ml09TTtpPW47cmV0dXJufX1mdW5jdGlvbiBo
MyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9
MCxsPTA7ZT1hKzR8MDtmPShjW2U+PjJdfDApIT0xNjY7Zz1hfDA7YT1jW2c+PjJdfDA7aD1hO2k9
KGNbZD4+Ml18MCktaHwwO2o9aT4+PjA8MjE0NzQ4MzY0Nz9pPDwxOi0xO2k9KGNbYj4+Ml18MCkt
aD4+MjtpZihmKXtrPWF9ZWxzZXtrPTB9YT1rTChrLGopfDA7az1hO2lmKChhfDApPT0wKXtrWCgp
fWRve2lmKGYpe2NbZz4+Ml09aztsPWt9ZWxzZXthPWNbZz4+Ml18MDtjW2c+PjJdPWs7aWYoKGF8
MCk9PTApe2w9azticmVha31iWVtjW2U+PjJdJjUxMV0oYSk7bD1jW2c+PjJdfDB9fXdoaWxlKDAp
O2NbZT4+Ml09ODI7Y1tiPj4yXT1sKyhpPDwyKTtjW2Q+PjJdPShjW2c+PjJdfDApKyhqPj4+Mjw8
Mik7cmV0dXJufWZ1bmN0aW9uIGg0KGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2o9anwwO2s9a3wwO2w9K2w7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9
MDtlPWk7aT1pKzI4MHwwO209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+
Ml07bT1lfDA7bj1lKzEyMHwwO289ZSsyMzJ8MDtwPWUrMjQwfDA7cT1lKzI0OHwwO3I9ZSsyNTZ8
MDtzPWUrMjY0fDA7dD1zO3U9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO3g9dzt5PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzEwMHwwO2k9
aSs3Pj4zPDwzO0E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O0M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0Q9ZSsxNnwwO2Nbbj4+Ml09RDtFPWUrMTI4fDA7Rj1h
WihEfDAsMTAwLDEzNjAsKEQ9aSxpPWkrOHwwLGhbRD4+M109bCxEKXwwKXwwO2k9RDtkb3tpZihG
Pj4+MD45OSl7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVh
a31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtHPWdoKG4sY1syOTU4XXwwLDEzNjAs
KEQ9aSxpPWkrOHwwLGhbRD4+M109bCxEKXwwKXwwO2k9RDtIPWNbbj4+Ml18MDtpZigoSHwwKT09
MCl7a1goKTtJPWNbbj4+Ml18MH1lbHNle0k9SH1IPWtKKEcpfDA7aWYoKEh8MCkhPTApe0o9SDtL
PUc7TD1JO009SDticmVha31rWCgpO0o9MDtLPUc7TD1JO009MH1lbHNle0o9RTtLPUY7TD0wO009
MH19d2hpbGUoMCk7ZWoobyxqKTtGPW98MDtFPWNbRj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEp
e2NbbT4+Ml09MTU2OTY7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1Njk2LG0sOTYpfW09
KGNbMzkyNV18MCktMXwwO0k9Y1tFKzg+PjJdfDA7ZG97aWYoKGNbRSsxMj4+Ml18MCktST4+Mj4+
PjA+bT4+PjApe0Q9Y1tJKyhtPDwyKT4+Ml18MDtpZigoRHwwKT09MCl7YnJlYWt9Rz1EO0g9Y1tu
Pj4yXXwwO049SCtLfDA7Tz1jWyhjW0Q+PjJdfDApKzMyPj4yXXwwO2NhW08mMTVdKEcsSCxOLEop
fDA7aWYoKEt8MCk9PTApe1A9MH1lbHNle1A9KGFbY1tuPj4yXXwwXXwwKT09NDV9ayQodHwwLDAs
MTIpO2skKHZ8MCwwLDEyKTtrJCh4fDAsMCwxMik7aDUoZyxQLG8scCxxLHIscyx1LHcseSk7Tj16
fDA7SD1jW3k+PjJdfDA7aWYoKEt8MCk+KEh8MCkpe089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1E9
Tz4+PjF9ZWxzZXtRPWNbdys0Pj4yXXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1I9Tz4+PjF9
ZWxzZXtSPWNbdSs0Pj4yXXwwfVM9KEstSDw8MXwxKStRK1J8MH1lbHNle089ZFt4XXwwO2lmKChP
JjF8MCk9PTApe1Q9Tz4+PjF9ZWxzZXtUPWNbdys0Pj4yXXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9
PTApe1U9Tz4+PjF9ZWxzZXtVPWNbdSs0Pj4yXXwwfVM9VCsyK1V8MH1PPVMrSHwwO2Rve2lmKE8+
Pj4wPjEwMCl7RD1rSihPKXwwO2lmKChEfDApIT0wKXtWPUQ7Vz1EO2JyZWFrfWtYKCk7Vj0wO1c9
MH1lbHNle1Y9TjtXPTB9fXdoaWxlKDApO2g2KFYsQSxCLGNbais0Pj4yXXwwLEosSitLfDAsRyxQ
LHAsYVtxXXwwLGFbcl18MCxzLHUsdyxIKTtjW0M+PjJdPWNbZj4+Ml07ZjkoYixDLFYsY1tBPj4y
XXwwLGNbQj4+Ml18MCxqLGspO2lmKChXfDApIT0wKXtrSyhXKX1kUCh3KTtkUCh1KTtkUChzKTtO
PWNbRj4+Ml18MDtkeihOKXwwO2lmKChNfDApIT0wKXtrSyhNKX1pZigoTHwwKT09MCl7aT1lO3Jl
dHVybn1rSyhMKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgx
NzYsMTM0KX1mdW5jdGlvbiBoNShiLGQsZSxmLGcsaCxqLGssbCxtKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsRD0wLEU9
MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0w
LFQ9MCxVPTA7bj1pO2k9aSs0MHwwO289bnwwO3A9bisxNnwwO3E9biszMnwwO3I9cTtzPWk7aT1p
KzEyfDA7aT1pKzc+PjM8PDM7dD1zO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1p
KzEyfDA7aT1pKzc+PjM8PDM7eD13O3k9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PXk7QT1pO2k9
aSsxMnwwO2k9aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1pO2k9
aSsxMnwwO2k9aSs3Pj4zPDwzO0c9RjtIPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztJPUg7Sj1pO2k9
aSsxMnwwO2k9aSs3Pj4zPDwzO0s9SjtMPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7TT1MO049aTtp
PWkrMTJ8MDtpPWkrNz4+Mzw8MztPPU47UD1jW2U+PjJdfDA7aWYoYil7aWYoKGNbNDA0NF18MCkh
PS0xKXtjW3A+PjJdPTE2MTc2O2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNjE3NixwLDk2
KX1wPShjWzQwNDVdfDApLTF8MDtiPWNbUCs4Pj4yXXwwO2lmKChjW1ArMTI+PjJdfDApLWI+PjI+
Pj4wPD1wPj4+MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQpfWU9Y1tiKyhw
PDwyKT4+Ml18MDtpZigoZXwwKT09MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3Niwx
MzQpfVE9ZTtSPWNbZT4+Ml18MDtpZihkKXtiWltjW1IrNDQ+PjJdJjEyN10ocixRKTtyPWY7Qz1j
W3E+PjJdfDA7YVtyXT1DJjI1NTtDPUM+Pjg7YVtyKzF8MF09QyYyNTU7Qz1DPj44O2FbcisyfDBd
PUMmMjU1O0M9Qz4+ODthW3IrM3wwXT1DJjI1NTtiWltjWyhjW2U+PjJdfDApKzMyPj4yXSYxMjdd
KHMsUSk7cj1sO2lmKChhW3JdJjEpPT0wKXthW2wrMXwwXT0wO2Fbcl09MH1lbHNle2FbY1tsKzg+
PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9ZCQobCwwKTtjW3I+PjJdPWNbdD4+Ml07Y1tyKzQ+PjJdPWNb
dCs0Pj4yXTtjW3IrOD4+Ml09Y1t0Kzg+PjJdO2skKHR8MCwwLDEyKTtkUChzKX1lbHNle2JaW2Nb
Uis0MD4+Ml0mMTI3XSh2LFEpO3Y9ZjtDPWNbdT4+Ml18MDthW3ZdPUMmMjU1O0M9Qz4+ODthW3Yr
MXwwXT1DJjI1NTtDPUM+Pjg7YVt2KzJ8MF09QyYyNTU7Qz1DPj44O2FbdiszfDBdPUMmMjU1O2Ja
W2NbKGNbZT4+Ml18MCkrMjg+PjJdJjEyN10odyxRKTt2PWw7aWYoKGFbdl0mMSk9PTApe2FbbCsx
fDBdPTA7YVt2XT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChsLDApO2Nb
dj4+Ml09Y1t4Pj4yXTtjW3YrND4+Ml09Y1t4KzQ+PjJdO2Nbdis4Pj4yXT1jW3grOD4+Ml07ayQo
eHwwLDAsMTIpO2RQKHcpfXc9ZTthW2ddPWIwW2NbKGNbdz4+Ml18MCkrMTI+PjJdJjEyN10oUSl8
MDthW2hdPWIwW2NbKGNbdz4+Ml18MCkrMTY+PjJdJjEyN10oUSl8MDt3PWU7YlpbY1soY1t3Pj4y
XXwwKSsyMD4+Ml0mMTI3XSh5LFEpO3g9ajtpZigoYVt4XSYxKT09MCl7YVtqKzF8MF09MDthW3hd
PTB9ZWxzZXthW2Nbais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1t4Pj4yXT1jW3o+
PjJdO2NbeCs0Pj4yXT1jW3orND4+Ml07Y1t4Kzg+PjJdPWNbeis4Pj4yXTtrJCh6fDAsMCwxMik7
ZFAoeSk7YlpbY1soY1t3Pj4yXXwwKSsyND4+Ml0mMTI3XShBLFEpO3c9aztpZigoYVt3XSYxKT09
MCl7YVtrKzF8MF09MDthW3ddPTB9ZWxzZXthW2Nbays4Pj4yXXwwXT0wO2Nbays0Pj4yXT0wfWQk
KGssMCk7Y1t3Pj4yXT1jW0I+PjJdO2Nbdys0Pj4yXT1jW0IrND4+Ml07Y1t3Kzg+PjJdPWNbQis4
Pj4yXTtrJChCfDAsMCwxMik7ZFAoQSk7Uz1iMFtjWyhjW2U+PjJdfDApKzM2Pj4yXSYxMjddKFEp
fDA7Y1ttPj4yXT1TO2k9bjtyZXR1cm59ZWxzZXtpZigoY1s0MDQ2XXwwKSE9LTEpe2Nbbz4+Ml09
MTYxODQ7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE2MTg0LG8sOTYpfW89KGNbNDA0N118
MCktMXwwO1E9Y1tQKzg+PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktUT4+Mj4+PjA8PW8+Pj4wKXtU
PWJPKDQpfDA7VT1UO2txKFUpO2JsKFR8MCw4MTc2LDEzNCl9UD1jW1ErKG88PDIpPj4yXXwwO2lm
KChQfDApPT0wKXtUPWJPKDQpfDA7VT1UO2txKFUpO2JsKFR8MCw4MTc2LDEzNCl9VD1QO1U9Y1tQ
Pj4yXXwwO2lmKGQpe2JaW2NbVSs0ND4+Ml0mMTI3XShFLFQpO0U9ZjtDPWNbRD4+Ml18MDthW0Vd
PUMmMjU1O0M9Qz4+ODthW0UrMXwwXT1DJjI1NTtDPUM+Pjg7YVtFKzJ8MF09QyYyNTU7Qz1DPj44
O2FbRSszfDBdPUMmMjU1O2JaW2NbKGNbUD4+Ml18MCkrMzI+PjJdJjEyN10oRixUKTtFPWw7aWYo
KGFbRV0mMSk9PTApe2FbbCsxfDBdPTA7YVtFXT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wr
ND4+Ml09MH1kJChsLDApO2NbRT4+Ml09Y1tHPj4yXTtjW0UrND4+Ml09Y1tHKzQ+PjJdO2NbRSs4
Pj4yXT1jW0crOD4+Ml07ayQoR3wwLDAsMTIpO2RQKEYpfWVsc2V7YlpbY1tVKzQwPj4yXSYxMjdd
KEksVCk7ST1mO0M9Y1tIPj4yXXwwO2FbSV09QyYyNTU7Qz1DPj44O2FbSSsxfDBdPUMmMjU1O0M9
Qz4+ODthW0krMnwwXT1DJjI1NTtDPUM+Pjg7YVtJKzN8MF09QyYyNTU7YlpbY1soY1tQPj4yXXww
KSsyOD4+Ml0mMTI3XShKLFQpO0k9bDtpZigoYVtJXSYxKT09MCl7YVtsKzF8MF09MDthW0ldPTB9
ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1tJPj4yXT1jW0s+PjJd
O2NbSSs0Pj4yXT1jW0srND4+Ml07Y1tJKzg+PjJdPWNbSys4Pj4yXTtrJChLfDAsMCwxMik7ZFAo
Sil9Sj1QO2FbZ109YjBbY1soY1tKPj4yXXwwKSsxMj4+Ml0mMTI3XShUKXwwO2FbaF09YjBbY1so
Y1tKPj4yXXwwKSsxNj4+Ml0mMTI3XShUKXwwO0o9UDtiWltjWyhjW0o+PjJdfDApKzIwPj4yXSYx
MjddKEwsVCk7aD1qO2lmKChhW2hdJjEpPT0wKXthW2orMXwwXT0wO2FbaF09MH1lbHNle2FbY1tq
Kzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW2g+PjJdPWNbTT4+Ml07Y1toKzQ+PjJd
PWNbTSs0Pj4yXTtjW2grOD4+Ml09Y1tNKzg+PjJdO2skKE18MCwwLDEyKTtkUChMKTtiWltjWyhj
W0o+PjJdfDApKzI0Pj4yXSYxMjddKE4sVCk7Sj1rO2lmKChhW0pdJjEpPT0wKXthW2srMXwwXT0w
O2FbSl09MH1lbHNle2FbY1trKzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW0o+PjJd
PWNbTz4+Ml07Y1tKKzQ+PjJdPWNbTys0Pj4yXTtjW0orOD4+Ml09Y1tPKzg+PjJdO2skKE98MCww
LDEyKTtkUChOKTtTPWIwW2NbKGNbUD4+Ml18MCkrMzY+PjJdJjEyN10oVCl8MDtjW20+PjJdPVM7
aT1uO3JldHVybn19ZnVuY3Rpb24gaDYoZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIpe2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO209bXww
O249bnwwO289b3wwO3A9cHwwO3E9cXwwO3I9cnwwO3ZhciBzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAs
Xz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0w
LGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxh
dj0wLGF3PTAsYXg9MCxheT0wO2NbZj4+Ml09ZDtzPWo7dD1xO3U9cSsxfDA7dj1xKzh8MDt3PXEr
NHwwO3E9cDt4PShnJjUxMnwwKT09MDt5PXArMXwwO3o9cCs0fDA7QT1wKzh8MDtwPWorOHwwO0I9
KHJ8MCk+MDtDPW87RD1vKzF8MDtFPW8rOHwwO0Y9bys0fDA7bz0tcnwwO0c9aDtoPTA7d2hpbGUo
MSl7TDE1ODA6ZG97c3dpdGNoKGFbbCtofDBdfDApe2Nhc2UgMDp7Y1tlPj4yXT1jW2Y+PjJdO0g9
RzticmVha307Y2FzZSAxOntjW2U+PjJdPWNbZj4+Ml07ST1iX1tjWyhjW3M+PjJdfDApKzI4Pj4y
XSYzMV0oaiwzMil8MDtKPWNbZj4+Ml18MDtjW2Y+PjJdPUorMTthW0pdPUk7SD1HO2JyZWFrfTtj
YXNlIDM6e0k9YVt0XXwwO0o9SSYyNTU7aWYoKEomMXwwKT09MCl7Sz1KPj4+MX1lbHNle0s9Y1t3
Pj4yXXwwfWlmKChLfDApPT0wKXtIPUc7YnJlYWsgTDE1ODB9aWYoKEkmMSk9PTApe0w9dX1lbHNl
e0w9Y1t2Pj4yXXwwfUk9YVtMXXwwO0o9Y1tmPj4yXXwwO2NbZj4+Ml09SisxO2FbSl09STtIPUc7
YnJlYWt9O2Nhc2UgMjp7ST1hW3FdfDA7Sj1JJjI1NTtNPShKJjF8MCk9PTA7aWYoTSl7Tj1KPj4+
MX1lbHNle049Y1t6Pj4yXXwwfWlmKChOfDApPT0wfHgpe0g9RzticmVhayBMMTU4MH1pZigoSSYx
KT09MCl7Tz15O1A9eX1lbHNle0k9Y1tBPj4yXXwwO089STtQPUl9aWYoTSl7UT1KPj4+MX1lbHNl
e1E9Y1t6Pj4yXXwwfUo9TytRfDA7TT1jW2Y+PjJdfDA7aWYoKFB8MCk9PShKfDApKXtSPU19ZWxz
ZXtJPVA7Uz1NO3doaWxlKDEpe2FbU109YVtJXXwwO009SSsxfDA7VD1TKzF8MDtpZigoTXwwKT09
KEp8MCkpe1I9VDticmVha31lbHNle0k9TTtTPVR9fX1jW2Y+PjJdPVI7SD1HO2JyZWFrfTtjYXNl
IDQ6e1M9Y1tmPj4yXXwwO0k9az9HKzF8MDpHO0o9STt3aGlsZSgxKXtpZihKPj4+MD49aT4+PjAp
e2JyZWFrfVQ9YVtKXXwwO2lmKFQ8PDI0Pj4yNDw9LTEpe2JyZWFrfWlmKChiWyhjW3A+PjJdfDAp
KyhUPDwyND4+MjQ8PDEpPj4xXSYyMDQ4KT09MCl7YnJlYWt9ZWxzZXtKPUorMXwwfX1UPUo7aWYo
Qil7aWYoSj4+PjA+ST4+PjApe009SSsoLVR8MCl8MDtUPU0+Pj4wPG8+Pj4wP286TTtNPVQrcnww
O1U9SjtWPXI7Vz1TO3doaWxlKDEpe1g9VS0xfDA7WT1hW1hdfDA7Y1tmPj4yXT1XKzE7YVtXXT1Z
O1k9Vi0xfDA7Wj0oWXwwKT4wO2lmKCEoWD4+PjA+ST4+PjAmWikpe2JyZWFrfVU9WDtWPVk7Vz1j
W2Y+PjJdfDB9Vz1KK1R8MDtpZihaKXtfPU07JD1XO2FhPTEzNTR9ZWxzZXthYj0wO2FjPU07YWQ9
V319ZWxzZXtfPXI7JD1KO2FhPTEzNTR9aWYoKGFhfDApPT0xMzU0KXthYT0wO2FiPWJfW2NbKGNb
cz4+Ml18MCkrMjg+PjJdJjMxXShqLDQ4KXwwO2FjPV87YWQ9JH1XPWNbZj4+Ml18MDtjW2Y+PjJd
PVcrMTtpZigoYWN8MCk+MCl7Vj1hYztVPVc7d2hpbGUoMSl7YVtVXT1hYjtZPVYtMXwwO1g9Y1tm
Pj4yXXwwO2NbZj4+Ml09WCsxO2lmKChZfDApPjApe1Y9WTtVPVh9ZWxzZXthZT1YO2JyZWFrfX19
ZWxzZXthZT1XfWFbYWVdPW07YWY9YWR9ZWxzZXthZj1KfWlmKChhZnwwKT09KEl8MCkpe1U9Yl9b
Y1soY1tzPj4yXXwwKSsyOD4+Ml0mMzFdKGosNDgpfDA7Vj1jW2Y+PjJdfDA7Y1tmPj4yXT1WKzE7
YVtWXT1VfWVsc2V7VT1hW0NdfDA7Vj1VJjI1NTtpZigoViYxfDApPT0wKXthZz1WPj4+MX1lbHNl
e2FnPWNbRj4+Ml18MH1pZigoYWd8MCk9PTApe2FoPWFmO2FpPTA7YWo9MDthaz0tMX1lbHNle2lm
KChVJjEpPT0wKXthbD1EfWVsc2V7YWw9Y1tFPj4yXXwwfWFoPWFmO2FpPTA7YWo9MDthaz1hW2Fs
XXwwfXdoaWxlKDEpe2Rve2lmKChhaXwwKT09KGFrfDApKXtVPWNbZj4+Ml18MDtjW2Y+PjJdPVUr
MTthW1VdPW47VT1haisxfDA7Vj1hW0NdfDA7TT1WJjI1NTtpZigoTSYxfDApPT0wKXthbT1NPj4+
MX1lbHNle2FtPWNbRj4+Ml18MH1pZihVPj4+MD49YW0+Pj4wKXthbj1hazthbz1VO2FwPTA7YnJl
YWt9TT0oViYxKT09MDtpZihNKXthcT1EfWVsc2V7YXE9Y1tFPj4yXXwwfWlmKChhW2FxK1V8MF18
MCk9PTEyNyl7YW49LTE7YW89VTthcD0wO2JyZWFrfWlmKE0pe2FyPUR9ZWxzZXthcj1jW0U+PjJd
fDB9YW49YVthcitVfDBdfDA7YW89VTthcD0wfWVsc2V7YW49YWs7YW89YWo7YXA9YWl9fXdoaWxl
KDApO1U9YWgtMXwwO009YVtVXXwwO1Y9Y1tmPj4yXXwwO2NbZj4+Ml09VisxO2FbVl09TTtpZigo
VXwwKT09KEl8MCkpe2JyZWFrfWVsc2V7YWg9VTthaT1hcCsxfDA7YWo9YW87YWs9YW59fX1KPWNb
Zj4+Ml18MDtpZigoU3wwKT09KEp8MCkpe0g9STticmVhayBMMTU4MH1XPUotMXwwO2lmKFM+Pj4w
PFc+Pj4wKXthcz1TO2F0PVd9ZWxzZXtIPUk7YnJlYWsgTDE1ODB9d2hpbGUoMSl7Vz1hW2FzXXww
O2FbYXNdPWFbYXRdfDA7YVthdF09VztXPWFzKzF8MDtKPWF0LTF8MDtpZihXPj4+MDxKPj4+MCl7
YXM9VzthdD1KfWVsc2V7SD1JO2JyZWFrfX1icmVha307ZGVmYXVsdDp7SD1HfX19d2hpbGUoMCk7
ST1oKzF8MDtpZihJPj4+MDw0KXtHPUg7aD1JfWVsc2V7YnJlYWt9fWg9YVt0XXwwO3Q9aCYyNTU7
SD0odCYxfDApPT0wO2lmKEgpe2F1PXQ+Pj4xfWVsc2V7YXU9Y1t3Pj4yXXwwfWlmKGF1Pj4+MD4x
KXtpZigoaCYxKT09MCl7YXY9dTthdz11fWVsc2V7dT1jW3Y+PjJdfDA7YXY9dTthdz11fWlmKEgp
e2F4PXQ+Pj4xfWVsc2V7YXg9Y1t3Pj4yXXwwfXc9YXYrYXh8MDtheD1jW2Y+PjJdfDA7YXY9YXcr
MXwwO2lmKChhdnwwKT09KHd8MCkpe2F5PWF4fWVsc2V7YXc9YXg7YXg9YXY7d2hpbGUoMSl7YVth
d109YVtheF18MDthdj1hdysxfDA7dD1heCsxfDA7aWYoKHR8MCk9PSh3fDApKXtheT1hdjticmVh
a31lbHNle2F3PWF2O2F4PXR9fX1jW2Y+PjJdPWF5fXN3aXRjaChnJjE3NnwwKXtjYXNlIDE2Onty
ZXR1cm59O2Nhc2UgMzI6e2NbZT4+Ml09Y1tmPj4yXTtyZXR1cm59O2RlZmF1bHQ6e2NbZT4+Ml09
ZDtyZXR1cm59fX1mdW5jdGlvbiBoNyhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5j
dGlvbiBoOChhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoOShiLGUsZixnLGgsaixr
KXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0w
LFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9
MCxhYz0wO2U9aTtpPWkrNjR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1j
W2w+PjJdO2w9ZXwwO209ZSsxNnwwO249ZSsyNHwwO289ZSszMnwwO3A9ZSs0MHwwO3E9ZSs0OHww
O3I9cTtzPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dD1zO3U9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8
Mzt2PXU7dz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7eD1pO2k9aSsxMDB8MDtpPWkrNz4+Mzw8Mzt5
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztlaihtLGgpO0I9bXwwO0M9Y1tCPj4yXXwwO2lmKChjWzM5MjRdfDApIT0t
MSl7Y1tsPj4yXT0xNTY5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9
bD0oY1szOTI1XXwwKS0xfDA7RD1jW0MrOD4+Ml18MDtkb3tpZigoY1tDKzEyPj4yXXwwKS1EPj4y
Pj4+MD5sPj4+MCl7RT1jW0QrKGw8PDIpPj4yXXwwO2lmKChFfDApPT0wKXticmVha31GPUU7Rz1r
O0g9aztJPWFbSF18MDtKPUkmMjU1O2lmKChKJjF8MCk9PTApe0s9Sj4+PjF9ZWxzZXtLPWNbays0
Pj4yXXwwfWlmKChLfDApPT0wKXtMPTB9ZWxzZXtpZigoSSYxKT09MCl7TT1HKzF8MH1lbHNle009
Y1trKzg+PjJdfDB9ST1hW01dfDA7TD1JPDwyND4+MjQ9PShiX1tjWyhjW0U+PjJdfDApKzI4Pj4y
XSYzMV0oRiw0NSl8MCk8PDI0Pj4yNH1rJChyfDAsMCwxMik7ayQodHwwLDAsMTIpO2skKHZ8MCww
LDEyKTtoNShnLEwsbSxuLG8scCxxLHMsdSx3KTtFPXh8MDtJPWFbSF18MDtKPUkmMjU1O049KEom
MXwwKT09MDtpZihOKXtPPUo+Pj4xfWVsc2V7Tz1jW2srND4+Ml18MH1QPWNbdz4+Ml18MDtpZigo
T3wwKT4oUHwwKSl7aWYoTil7UT1KPj4+MX1lbHNle1E9Y1trKzQ+PjJdfDB9Sj1kW3ZdfDA7aWYo
KEomMXwwKT09MCl7Uj1KPj4+MX1lbHNle1I9Y1t1KzQ+PjJdfDB9Sj1kW3RdfDA7aWYoKEomMXww
KT09MCl7Uz1KPj4+MX1lbHNle1M9Y1tzKzQ+PjJdfDB9VD0oUS1QPDwxfDEpK1IrU3wwfWVsc2V7
Sj1kW3ZdfDA7aWYoKEomMXwwKT09MCl7VT1KPj4+MX1lbHNle1U9Y1t1KzQ+PjJdfDB9Sj1kW3Rd
fDA7aWYoKEomMXwwKT09MCl7Vj1KPj4+MX1lbHNle1Y9Y1tzKzQ+PjJdfDB9VD1VKzIrVnwwfUo9
VCtQfDA7ZG97aWYoSj4+PjA+MTAwKXtOPWtKKEopfDA7aWYoKE58MCkhPTApe1c9TjtYPU47WT1J
O2JyZWFrfWtYKCk7Vz0wO1g9MDtZPWFbSF18MH1lbHNle1c9RTtYPTA7WT1JfX13aGlsZSgwKTtp
ZigoWSYxKT09MCl7Wj1HKzF8MDtfPUcrMXwwfWVsc2V7ST1jW2srOD4+Ml18MDtaPUk7Xz1JfUk9
WSYyNTU7aWYoKEkmMXwwKT09MCl7JD1JPj4+MX1lbHNleyQ9Y1trKzQ+PjJdfDB9aDYoVyx5LHos
Y1toKzQ+PjJdfDAsXyxaKyR8MCxGLEwsbixhW29dfDAsYVtwXXwwLHEscyx1LFApO2NbQT4+Ml09
Y1tmPj4yXTtmOShiLEEsVyxjW3k+PjJdfDAsY1t6Pj4yXXwwLGgsaik7aWYoKFh8MCk9PTApe2RQ
KHUpO2RQKHMpO2RQKHEpO2FhPWNbQj4+Ml18MDthYj1hYXwwO2FjPWR6KGFiKXwwO2k9ZTtyZXR1
cm59a0soWCk7ZFAodSk7ZFAocyk7ZFAocSk7YWE9Y1tCPj4yXXwwO2FiPWFhfDA7YWM9ZHooYWIp
fDA7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2JsKGV8MCw4MTc2LDEzNCl9
ZnVuY3Rpb24gaWEoYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7
az1rfDA7bD0rbDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0w
LEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MDtlPWk7
aT1pKzU3NnwwO209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1l
fDA7bj1lKzEyMHwwO289ZSs1Mjh8MDtwPWUrNTM2fDA7cT1lKzU0NHwwO3I9ZSs1NTJ8MDtzPWUr
NTYwfDA7dD1zO3U9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSsxMnwwO2k9aSs3
Pj4zPDwzO3g9dzt5PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt6PWk7aT1pKzQwMHwwO0E9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO0I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0M9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO0Q9ZSsxNnwwO2Nbbj4+Ml09RDtFPWUrMTI4fDA7Rj1hWihEfDAsMTAwLDEzNjAsKEQ9
aSxpPWkrOHwwLGhbRD4+M109bCxEKXwwKXwwO2k9RDtkb3tpZihGPj4+MD45OSl7ZG97aWYoKGFb
MTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0
NCwwKXwwfX13aGlsZSgwKTtHPWdoKG4sY1syOTU4XXwwLDEzNjAsKEQ9aSxpPWkrOHwwLGhbRD4+
M109bCxEKXwwKXwwO2k9RDtIPWNbbj4+Ml18MDtpZigoSHwwKT09MCl7a1goKTtJPWNbbj4+Ml18
MH1lbHNle0k9SH1IPWtKKEc8PDIpfDA7Sj1IO2lmKChIfDApIT0wKXtLPUo7TD1HO009STtOPUo7
YnJlYWt9a1goKTtLPUo7TD1HO009STtOPUp9ZWxzZXtLPUU7TD1GO009MDtOPTB9fXdoaWxlKDAp
O2VqKG8saik7Rj1vfDA7RT1jW0Y+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW20+PjJdPTE1
Njg4O2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTY4OCxtLDk2KX1tPShjWzM5MjNdfDAp
LTF8MDtJPWNbRSs4Pj4yXXwwO2Rve2lmKChjW0UrMTI+PjJdfDApLUk+PjI+Pj4wPm0+Pj4wKXtE
PWNbSSsobTw8Mik+PjJdfDA7aWYoKER8MCk9PTApe2JyZWFrfUo9RDtHPWNbbj4+Ml18MDtIPUcr
THwwO089Y1soY1tEPj4yXXwwKSs0OD4+Ml18MDtjYVtPJjE1XShKLEcsSCxLKXwwO2lmKChMfDAp
PT0wKXtQPTB9ZWxzZXtQPShhW2Nbbj4+Ml18MF18MCk9PTQ1fWskKHR8MCwwLDEyKTtrJCh2fDAs
MCwxMik7ayQoeHwwLDAsMTIpO2liKGcsUCxvLHAscSxyLHMsdSx3LHkpO0g9enwwO0c9Y1t5Pj4y
XXwwO2lmKChMfDApPihHfDApKXtPPWRbeF18MDtpZigoTyYxfDApPT0wKXtRPU8+Pj4xfWVsc2V7
UT1jW3crND4+Ml18MH1PPWRbdl18MDtpZigoTyYxfDApPT0wKXtSPU8+Pj4xfWVsc2V7Uj1jW3Ur
ND4+Ml18MH1TPShMLUc8PDF8MSkrUStSfDB9ZWxzZXtPPWRbeF18MDtpZigoTyYxfDApPT0wKXtU
PU8+Pj4xfWVsc2V7VD1jW3crND4+Ml18MH1PPWRbdl18MDtpZigoTyYxfDApPT0wKXtVPU8+Pj4x
fWVsc2V7VT1jW3UrND4+Ml18MH1TPVQrMitVfDB9Tz1TK0d8MDtkb3tpZihPPj4+MD4xMDApe0Q9
a0ooTzw8Mil8MDtWPUQ7aWYoKER8MCkhPTApe1c9VjtYPVY7YnJlYWt9a1goKTtXPVY7WD1WfWVs
c2V7Vz1IO1g9MH19d2hpbGUoMCk7aWMoVyxBLEIsY1tqKzQ+PjJdfDAsSyxLKyhMPDwyKXwwLEos
UCxwLGNbcT4+Ml18MCxjW3I+PjJdfDAscyx1LHcsRyk7Y1tDPj4yXT1jW2Y+PjJdO2dxKGIsQyxX
LGNbQT4+Ml18MCxjW0I+PjJdfDAsaixrKTtpZigoWHwwKSE9MCl7a0soWCl9ZWUodyk7ZWUodSk7
ZFAocyk7SD1jW0Y+PjJdfDA7ZHooSCl8MDtpZigoTnwwKSE9MCl7a0soTil9aWYoKE18MCk9PTAp
e2k9ZTtyZXR1cm59a0soTSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2Js
KGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaWIoYixkLGUsZixnLGgsaixrLGwsbSl7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAs
Uj0wLFM9MCxUPTAsVT0wO249aTtpPWkrNDB8MDtvPW58MDtwPW4rMTZ8MDtxPW4rMzJ8MDtyPXE7
cz1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Q9czt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PXU7
dz1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3g9dzt5PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7ej15
O0E9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztCPUE7RD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RT1E
O0Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztHPUY7SD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ST1I
O0o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztLPUo7TD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO009
TDtOPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Tz1OO1A9Y1tlPj4yXXwwO2lmKGIpe2lmKChjWzQw
NDBdfDApIT0tMSl7Y1twPj4yXT0xNjE2MDtjW3ArND4+Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTYx
NjAscCw5Nil9cD0oY1s0MDQxXXwwKS0xfDA7Yj1jW1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXww
KS1iPj4yPj4+MDw9cD4+PjApe1E9Yk8oNCl8MDtSPVE7a3EoUik7YmwoUXwwLDgxNzYsMTM0KX1l
PWNbYisocDw8Mik+PjJdfDA7aWYoKGV8MCk9PTApe1E9Yk8oNCl8MDtSPVE7a3EoUik7YmwoUXww
LDgxNzYsMTM0KX1RPWU7Uj1jW2U+PjJdfDA7aWYoZCl7YlpbY1tSKzQ0Pj4yXSYxMjddKHIsUSk7
cj1mO0M9Y1txPj4yXXwwO2Fbcl09QyYyNTU7Qz1DPj44O2FbcisxfDBdPUMmMjU1O0M9Qz4+ODth
W3IrMnwwXT1DJjI1NTtDPUM+Pjg7YVtyKzN8MF09QyYyNTU7YlpbY1soY1tlPj4yXXwwKSszMj4+
Ml0mMTI3XShzLFEpO3I9bDtpZigoYVtyXSYxKT09MCl7Y1tsKzQ+PjJdPTA7YVtyXT0wfWVsc2V7
Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW3I+PjJdPWNbdD4+Ml07Y1ty
KzQ+PjJdPWNbdCs0Pj4yXTtjW3IrOD4+Ml09Y1t0Kzg+PjJdO2skKHR8MCwwLDEyKTtlZShzKX1l
bHNle2JaW2NbUis0MD4+Ml0mMTI3XSh2LFEpO3Y9ZjtDPWNbdT4+Ml18MDthW3ZdPUMmMjU1O0M9
Qz4+ODthW3YrMXwwXT1DJjI1NTtDPUM+Pjg7YVt2KzJ8MF09QyYyNTU7Qz1DPj44O2FbdiszfDBd
PUMmMjU1O2JaW2NbKGNbZT4+Ml18MCkrMjg+PjJdJjEyN10odyxRKTt2PWw7aWYoKGFbdl0mMSk9
PTApe2NbbCs0Pj4yXT0wO2Fbdl09MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0w
fWV6KGwsMCk7Y1t2Pj4yXT1jW3g+PjJdO2Nbdis0Pj4yXT1jW3grND4+Ml07Y1t2Kzg+PjJdPWNb
eCs4Pj4yXTtrJCh4fDAsMCwxMik7ZWUodyl9dz1lO2NbZz4+Ml09YjBbY1soY1t3Pj4yXXwwKSsx
Mj4+Ml0mMTI3XShRKXwwO2NbaD4+Ml09YjBbY1soY1t3Pj4yXXwwKSsxNj4+Ml0mMTI3XShRKXww
O2JaW2NbKGNbZT4+Ml18MCkrMjA+PjJdJjEyN10oeSxRKTt4PWo7aWYoKGFbeF0mMSk9PTApe2Fb
aisxfDBdPTA7YVt4XT0wfWVsc2V7YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDAp
O2NbeD4+Ml09Y1t6Pj4yXTtjW3grND4+Ml09Y1t6KzQ+PjJdO2NbeCs4Pj4yXT1jW3orOD4+Ml07
ayQoenwwLDAsMTIpO2RQKHkpO2JaW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oQSxRKTtlPWs7
aWYoKGFbZV0mMSk9PTApe2Nbays0Pj4yXT0wO2FbZV09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0w
O2Nbays0Pj4yXT0wfWV6KGssMCk7Y1tlPj4yXT1jW0I+PjJdO2NbZSs0Pj4yXT1jW0IrND4+Ml07
Y1tlKzg+PjJdPWNbQis4Pj4yXTtrJChCfDAsMCwxMik7ZWUoQSk7Uz1iMFtjWyhjW3c+PjJdfDAp
KzM2Pj4yXSYxMjddKFEpfDA7Y1ttPj4yXT1TO2k9bjtyZXR1cm59ZWxzZXtpZigoY1s0MDQyXXww
KSE9LTEpe2Nbbz4+Ml09MTYxNjg7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE2MTY4LG8s
OTYpfW89KGNbNDA0M118MCktMXwwO1E9Y1tQKzg+PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktUT4+
Mj4+PjA8PW8+Pj4wKXtUPWJPKDQpfDA7VT1UO2txKFUpO2JsKFR8MCw4MTc2LDEzNCl9UD1jW1Er
KG88PDIpPj4yXXwwO2lmKChQfDApPT0wKXtUPWJPKDQpfDA7VT1UO2txKFUpO2JsKFR8MCw4MTc2
LDEzNCl9VD1QO1U9Y1tQPj4yXXwwO2lmKGQpe2JaW2NbVSs0ND4+Ml0mMTI3XShFLFQpO0U9ZjtD
PWNbRD4+Ml18MDthW0VdPUMmMjU1O0M9Qz4+ODthW0UrMXwwXT1DJjI1NTtDPUM+Pjg7YVtFKzJ8
MF09QyYyNTU7Qz1DPj44O2FbRSszfDBdPUMmMjU1O2JaW2NbKGNbUD4+Ml18MCkrMzI+PjJdJjEy
N10oRixUKTtFPWw7aWYoKGFbRV0mMSk9PTApe2NbbCs0Pj4yXT0wO2FbRV09MH1lbHNle2NbY1ts
Kzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1tFPj4yXT1jW0c+PjJdO2NbRSs0Pj4y
XT1jW0crND4+Ml07Y1tFKzg+PjJdPWNbRys4Pj4yXTtrJChHfDAsMCwxMik7ZWUoRil9ZWxzZXti
WltjW1UrNDA+PjJdJjEyN10oSSxUKTtJPWY7Qz1jW0g+PjJdfDA7YVtJXT1DJjI1NTtDPUM+Pjg7
YVtJKzF8MF09QyYyNTU7Qz1DPj44O2FbSSsyfDBdPUMmMjU1O0M9Qz4+ODthW0krM3wwXT1DJjI1
NTtiWltjWyhjW1A+PjJdfDApKzI4Pj4yXSYxMjddKEosVCk7ST1sO2lmKChhW0ldJjEpPT0wKXtj
W2wrND4+Ml09MDthW0ldPTB9ZWxzZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihs
LDApO2NbST4+Ml09Y1tLPj4yXTtjW0krND4+Ml09Y1tLKzQ+PjJdO2NbSSs4Pj4yXT1jW0srOD4+
Ml07ayQoS3wwLDAsMTIpO2VlKEopfUo9UDtjW2c+PjJdPWIwW2NbKGNbSj4+Ml18MCkrMTI+PjJd
JjEyN10oVCl8MDtjW2g+PjJdPWIwW2NbKGNbSj4+Ml18MCkrMTY+PjJdJjEyN10oVCl8MDtiWltj
WyhjW1A+PjJdfDApKzIwPj4yXSYxMjddKEwsVCk7aD1qO2lmKChhW2hdJjEpPT0wKXthW2orMXww
XT0wO2FbaF09MH1lbHNle2FbY1tqKzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW2g+
PjJdPWNbTT4+Ml07Y1toKzQ+PjJdPWNbTSs0Pj4yXTtjW2grOD4+Ml09Y1tNKzg+PjJdO2skKE18
MCwwLDEyKTtkUChMKTtiWltjWyhjW1A+PjJdfDApKzI0Pj4yXSYxMjddKE4sVCk7UD1rO2lmKChh
W1BdJjEpPT0wKXtjW2srND4+Ml09MDthW1BdPTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2sr
ND4+Ml09MH1leihrLDApO2NbUD4+Ml09Y1tPPj4yXTtjW1ArND4+Ml09Y1tPKzQ+PjJdO2NbUCs4
Pj4yXT1jW08rOD4+Ml07ayQoT3wwLDAsMTIpO2VlKE4pO1M9YjBbY1soY1tKPj4yXXwwKSszNj4+
Ml0mMTI3XShUKXwwO2NbbT4+Ml09UztpPW47cmV0dXJufX1mdW5jdGlvbiBpYyhiLGQsZSxmLGcs
aCxpLGosayxsLG0sbixvLHAscSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1vfDA7cD1wfDA7cT1xfDA7dmFy
IHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxU
PTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFl
PTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0w
LGFxPTAsYXI9MCxhcz0wLGF0PTAsYXU9MCxhdj0wLGF3PTA7Y1tlPj4yXT1iO3I9aTtzPXA7dD1w
KzR8MDt1PXArOHwwO3A9bzt2PShmJjUxMnwwKT09MDt3PW8rNHwwO3g9bys4fDA7bz1pO3k9KHF8
MCk+MDt6PW47QT1uKzF8MDtCPW4rOHwwO0M9bis0fDA7bj1nO2c9MDt3aGlsZSgxKXtMMTkwMTpk
b3tzd2l0Y2goYVtrK2d8MF18MCl7Y2FzZSAwOntjW2Q+PjJdPWNbZT4+Ml07RD1uO2JyZWFrfTtj
YXNlIDE6e2NbZD4+Ml09Y1tlPj4yXTtFPWJfW2NbKGNbcj4+Ml18MCkrNDQ+PjJdJjMxXShpLDMy
KXwwO0Y9Y1tlPj4yXXwwO2NbZT4+Ml09Ris0O2NbRj4+Ml09RTtEPW47YnJlYWt9O2Nhc2UgMzp7
RT1hW3NdfDA7Rj1FJjI1NTtpZigoRiYxfDApPT0wKXtHPUY+Pj4xfWVsc2V7Rz1jW3Q+PjJdfDB9
aWYoKEd8MCk9PTApe0Q9bjticmVhayBMMTkwMX1pZigoRSYxKT09MCl7SD10fWVsc2V7SD1jW3U+
PjJdfDB9RT1jW0g+PjJdfDA7Rj1jW2U+PjJdfDA7Y1tlPj4yXT1GKzQ7Y1tGPj4yXT1FO0Q9bjti
cmVha307Y2FzZSAyOntFPWFbcF18MDtGPUUmMjU1O0k9KEYmMXwwKT09MDtpZihJKXtKPUY+Pj4x
fWVsc2V7Sj1jW3c+PjJdfDB9aWYoKEp8MCk9PTB8dil7RD1uO2JyZWFrIEwxOTAxfWlmKChFJjEp
PT0wKXtLPXc7TD13O009d31lbHNle0U9Y1t4Pj4yXXwwO0s9RTtMPUU7TT1FfWlmKEkpe049Rj4+
PjF9ZWxzZXtOPWNbdz4+Ml18MH1GPUsrKE48PDIpfDA7ST1jW2U+PjJdfDA7aWYoKEx8MCk9PShG
fDApKXtPPUl9ZWxzZXtFPShLKyhOLTE8PDIpKygtTXwwKXwwKT4+PjI7UD1MO1E9STt3aGlsZSgx
KXtjW1E+PjJdPWNbUD4+Ml07Uj1QKzR8MDtpZigoUnwwKT09KEZ8MCkpe2JyZWFrfVA9UjtRPVEr
NHwwfU89SSsoRSsxPDwyKXwwfWNbZT4+Ml09TztEPW47YnJlYWt9O2Nhc2UgNDp7UT1jW2U+PjJd
fDA7UD1qP24rNHwwOm47Rj1QO3doaWxlKDEpe2lmKEY+Pj4wPj1oPj4+MCl7YnJlYWt9aWYoYjFb
Y1soY1tvPj4yXXwwKSsxMj4+Ml0mNjNdKGksMjA0OCxjW0Y+PjJdfDApfDApe0Y9Ris0fDB9ZWxz
ZXticmVha319aWYoeSl7aWYoRj4+PjA+UD4+PjApe0U9RjtJPXE7ZG97RT1FLTR8MDtSPWNbRT4+
Ml18MDtTPWNbZT4+Ml18MDtjW2U+PjJdPVMrNDtjW1M+PjJdPVI7ST1JLTF8MDtUPShJfDApPjA7
fXdoaWxlKEU+Pj4wPlA+Pj4wJlQpO2lmKFQpe1U9STtWPUU7Vz0xNjMwfWVsc2V7WD0wO1k9STta
PUV9fWVsc2V7VT1xO1Y9RjtXPTE2MzB9aWYoKFd8MCk9PTE2MzApe1c9MDtYPWJfW2NbKGNbcj4+
Ml18MCkrNDQ+PjJdJjMxXShpLDQ4KXwwO1k9VTtaPVZ9Uj1jW2U+PjJdfDA7Y1tlPj4yXT1SKzQ7
aWYoKFl8MCk+MCl7Uz1ZO189Ujt3aGlsZSgxKXtjW18+PjJdPVg7JD1TLTF8MDthYT1jW2U+PjJd
fDA7Y1tlPj4yXT1hYSs0O2lmKCgkfDApPjApe1M9JDtfPWFhfWVsc2V7YWI9YWE7YnJlYWt9fX1l
bHNle2FiPVJ9Y1thYj4+Ml09bDthYz1afWVsc2V7YWM9Rn1pZigoYWN8MCk9PShQfDApKXtfPWJf
W2NbKGNbcj4+Ml18MCkrNDQ+PjJdJjMxXShpLDQ4KXwwO1M9Y1tlPj4yXXwwO2NbZT4+Ml09Uys0
O2NbUz4+Ml09X31lbHNle189YVt6XXwwO1M9XyYyNTU7aWYoKFMmMXwwKT09MCl7YWQ9Uz4+PjF9
ZWxzZXthZD1jW0M+PjJdfDB9aWYoKGFkfDApPT0wKXthZT1hYzthZj0wO2FnPTA7YWg9LTF9ZWxz
ZXtpZigoXyYxKT09MCl7YWk9QX1lbHNle2FpPWNbQj4+Ml18MH1hZT1hYzthZj0wO2FnPTA7YWg9
YVthaV18MH13aGlsZSgxKXtkb3tpZigoYWZ8MCk9PShhaHwwKSl7Xz1jW2U+PjJdfDA7Y1tlPj4y
XT1fKzQ7Y1tfPj4yXT1tO189YWcrMXwwO1M9YVt6XXwwO0U9UyYyNTU7aWYoKEUmMXwwKT09MCl7
YWo9RT4+PjF9ZWxzZXthaj1jW0M+PjJdfDB9aWYoXz4+PjA+PWFqPj4+MCl7YWs9YWg7YWw9Xzth
bT0wO2JyZWFrfUU9KFMmMSk9PTA7aWYoRSl7YW49QX1lbHNle2FuPWNbQj4+Ml18MH1pZigoYVth
bitffDBdfDApPT0xMjcpe2FrPS0xO2FsPV87YW09MDticmVha31pZihFKXthbz1BfWVsc2V7YW89
Y1tCPj4yXXwwfWFrPWFbYW8rX3wwXXwwO2FsPV87YW09MH1lbHNle2FrPWFoO2FsPWFnO2FtPWFm
fX13aGlsZSgwKTtfPWFlLTR8MDtFPWNbXz4+Ml18MDtTPWNbZT4+Ml18MDtjW2U+PjJdPVMrNDtj
W1M+PjJdPUU7aWYoKF98MCk9PShQfDApKXticmVha31lbHNle2FlPV87YWY9YW0rMXwwO2FnPWFs
O2FoPWFrfX19Rj1jW2U+PjJdfDA7aWYoKFF8MCk9PShGfDApKXtEPVA7YnJlYWsgTDE5MDF9Uj1G
LTR8MDtpZihRPj4+MDxSPj4+MCl7YXA9UTthcT1SfWVsc2V7RD1QO2JyZWFrIEwxOTAxfXdoaWxl
KDEpe1I9Y1thcD4+Ml18MDtjW2FwPj4yXT1jW2FxPj4yXTtjW2FxPj4yXT1SO1I9YXArNHwwO0Y9
YXEtNHwwO2lmKFI+Pj4wPEY+Pj4wKXthcD1SO2FxPUZ9ZWxzZXtEPVA7YnJlYWt9fWJyZWFrfTtk
ZWZhdWx0OntEPW59fX13aGlsZSgwKTtQPWcrMXwwO2lmKFA+Pj4wPDQpe249RDtnPVB9ZWxzZXti
cmVha319Zz1hW3NdfDA7cz1nJjI1NTtEPShzJjF8MCk9PTA7aWYoRCl7YXI9cz4+PjF9ZWxzZXth
cj1jW3Q+PjJdfDB9aWYoYXI+Pj4wPjEpe2lmKChnJjEpPT0wKXthcz10O2F0PXQ7YXU9dH1lbHNl
e2c9Y1t1Pj4yXXwwO2FzPWc7YXQ9ZzthdT1nfWlmKEQpe2F2PXM+Pj4xfWVsc2V7YXY9Y1t0Pj4y
XXwwfXQ9YXMrKGF2PDwyKXwwO3M9Y1tlPj4yXXwwO0Q9YXQrNHwwO2lmKChEfDApPT0odHwwKSl7
YXc9c31lbHNle2F0PSgoYXMrKGF2LTI8PDIpKygtYXV8MCl8MCk+Pj4yKSsxfDA7YXU9czthdj1E
O3doaWxlKDEpe2NbYXU+PjJdPWNbYXY+PjJdO0Q9YXYrNHwwO2lmKChEfDApPT0odHwwKSl7YnJl
YWt9ZWxzZXthdT1hdSs0fDA7YXY9RH19YXc9cysoYXQ8PDIpfDB9Y1tlPj4yXT1hd31zd2l0Y2go
ZiYxNzZ8MCl7Y2FzZSAzMjp7Y1tkPj4yXT1jW2U+PjJdO3JldHVybn07Y2FzZSAxNjp7cmV0dXJu
fTtkZWZhdWx0OntjW2Q+PjJdPWI7cmV0dXJufX19ZnVuY3Rpb24gaWQoYSl7YT1hfDA7ZGUoYXww
KTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaWUoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rp
b24gaWcoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYoKGFbZF0mMSk9PTApe2Y9
ZCsxfDB9ZWxzZXtmPWNbZCs4Pj4yXXwwfWQ9YTgoZnwwLDIwMCl8MDtyZXR1cm4gZD4+PigoKGR8
MCkhPS0xfDApPj4+MCl8MH1mdW5jdGlvbiBpaChiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9
MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wO2U9aTtpPWkr
NjR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZXwwO209
ZSsxNnwwO249ZSsyNHwwO289ZSszMnwwO3A9ZSs0MHwwO3E9ZSs0OHwwO3I9cTtzPWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7dD1zO3U9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7eD1pO2k9aSs0MDB8MDt5PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt6PWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztlaihtLGgpO0I9bXww
O0M9Y1tCPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09
MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7RD1jW0MrOD4+
Ml18MDtkb3tpZigoY1tDKzEyPj4yXXwwKS1EPj4yPj4+MD5sPj4+MCl7RT1jW0QrKGw8PDIpPj4y
XXwwO2lmKChFfDApPT0wKXticmVha31GPUU7Rz1rO0g9YVtHXXwwO0k9SCYyNTU7aWYoKEkmMXww
KT09MCl7Sj1JPj4+MX1lbHNle0o9Y1trKzQ+PjJdfDB9aWYoKEp8MCk9PTApe0s9MH1lbHNle2lm
KChIJjEpPT0wKXtMPWsrNHwwfWVsc2V7TD1jW2srOD4+Ml18MH1IPWNbTD4+Ml18MDtLPShIfDAp
PT0oYl9bY1soY1tFPj4yXXwwKSs0ND4+Ml0mMzFdKEYsNDUpfDApfWskKHJ8MCwwLDEyKTtrJCh0
fDAsMCwxMik7ayQodnwwLDAsMTIpO2liKGcsSyxtLG4sbyxwLHEscyx1LHcpO0U9eHwwO0g9YVtH
XXwwO0k9SCYyNTU7TT0oSSYxfDApPT0wO2lmKE0pe049ST4+PjF9ZWxzZXtOPWNbays0Pj4yXXww
fU89Y1t3Pj4yXXwwO2lmKChOfDApPihPfDApKXtpZihNKXtQPUk+Pj4xfWVsc2V7UD1jW2srND4+
Ml18MH1JPWRbdl18MDtpZigoSSYxfDApPT0wKXtRPUk+Pj4xfWVsc2V7UT1jW3UrND4+Ml18MH1J
PWRbdF18MDtpZigoSSYxfDApPT0wKXtSPUk+Pj4xfWVsc2V7Uj1jW3MrND4+Ml18MH1TPShQLU88
PDF8MSkrUStSfDB9ZWxzZXtJPWRbdl18MDtpZigoSSYxfDApPT0wKXtUPUk+Pj4xfWVsc2V7VD1j
W3UrND4+Ml18MH1JPWRbdF18MDtpZigoSSYxfDApPT0wKXtVPUk+Pj4xfWVsc2V7VT1jW3MrND4+
Ml18MH1TPVQrMitVfDB9ST1TK098MDtkb3tpZihJPj4+MD4xMDApe009a0ooSTw8Mil8MDtWPU07
aWYoKE18MCkhPTApe1c9VjtYPVY7WT1IO2JyZWFrfWtYKCk7Vz1WO1g9VjtZPWFbR118MH1lbHNl
e1c9RTtYPTA7WT1IfX13aGlsZSgwKTtpZigoWSYxKT09MCl7Wj1rKzR8MDtfPWsrNHwwfWVsc2V7
SD1jW2srOD4+Ml18MDtaPUg7Xz1IfUg9WSYyNTU7aWYoKEgmMXwwKT09MCl7JD1IPj4+MX1lbHNl
eyQ9Y1trKzQ+PjJdfDB9aWMoVyx5LHosY1toKzQ+PjJdfDAsXyxaKygkPDwyKXwwLEYsSyxuLGNb
bz4+Ml18MCxjW3A+PjJdfDAscSxzLHUsTyk7Y1tBPj4yXT1jW2Y+PjJdO2dxKGIsQSxXLGNbeT4+
Ml18MCxjW3o+PjJdfDAsaCxqKTtpZigoWHwwKT09MCl7ZWUodSk7ZWUocyk7ZFAocSk7YWE9Y1tC
Pj4yXXwwO2FiPWFhfDA7YWM9ZHooYWIpfDA7aT1lO3JldHVybn1rSyhYKTtlZSh1KTtlZShzKTtk
UChxKTthYT1jW0I+PjJdfDA7YWI9YWF8MDthYz1keihhYil8MDtpPWU7cmV0dXJufX13aGlsZSgw
KTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBpaShiLGQsZSxmLGcs
aCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MDtkPWk7aT1pKzE2fDA7aj1kfDA7
az1qO2skKGt8MCwwLDEyKTtsPWI7bT1oO249YVtoXXwwO2lmKChuJjEpPT0wKXtvPW0rMXwwO3A9
bSsxfDB9ZWxzZXttPWNbaCs4Pj4yXXwwO289bTtwPW19bT1uJjI1NTtpZigobSYxfDApPT0wKXtx
PW0+Pj4xfWVsc2V7cT1jW2grND4+Ml18MH1oPW8rcXwwO2Rve2lmKHA+Pj4wPGg+Pj4wKXtxPXA7
ZG97ZFUoaixhW3FdfDApO3E9cSsxfDA7fXdoaWxlKHE+Pj4wPGg+Pj4wKTtxPShlfDApPT0tMT8t
MTplPDwxO2lmKChhW2tdJjEpPT0wKXtyPXE7cz0xNzYyO2JyZWFrfXQ9Y1tqKzg+PjJdfDA7dT1x
fWVsc2V7cj0oZXwwKT09LTE/LTE6ZTw8MTtzPTE3NjJ9fXdoaWxlKDApO2lmKChzfDApPT0xNzYy
KXt0PWorMXwwO3U9cn1yPWJNKHV8MCxmfDAsZ3wwLHR8MCl8MDtrJChsfDAsMCwxMik7bD1rMChy
fDApfDA7dD1yK2x8MDtpZigobHwwKT4wKXt2PXJ9ZWxzZXtkUChqKTtpPWQ7cmV0dXJufWRve2RV
KGIsYVt2XXwwKTt2PXYrMXwwO313aGlsZSh2Pj4+MDx0Pj4+MCk7ZFAoaik7aT1kO3JldHVybn1m
dW5jdGlvbiBpaihhLGIpe2E9YXwwO2I9YnwwO2ExKCgoYnwwKT09LTE/LTE6Yjw8MSl8MCl8MDty
ZXR1cm59ZnVuY3Rpb24gaWsoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24g
aWwoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaW0oYixkLGUpe2I9YnwwO2Q9ZHww
O2U9ZXwwO3ZhciBmPTA7aWYoKGFbZF0mMSk9PTApe2Y9ZCsxfDB9ZWxzZXtmPWNbZCs4Pj4yXXww
fWQ9YTgoZnwwLDIwMCl8MDtyZXR1cm4gZD4+PigoKGR8MCkhPS0xfDApPj4+MCl8MH1mdW5jdGlv
biBpbyhhLGIpe2E9YXwwO2I9YnwwO2ExKCgoYnwwKT09LTE/LTE6Yjw8MSl8MCl8MDtyZXR1cm59
ZnVuY3Rpb24gaXAoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9
aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9
MDtkPWk7aT1pKzIyNHwwO2o9ZHwwO2s9ZCs4fDA7bD1kKzQwfDA7bT1kKzQ4fDA7bj1kKzU2fDA7
bz1kKzY0fDA7cD1kKzE5MnwwO3E9ZCsyMDB8MDtyPWQrMjA4fDA7cz1yO3Q9aTtpPWkrOHwwO3U9
aTtpPWkrOHwwO2skKHN8MCwwLDEyKTt2PWI7dz10fDA7Y1t0KzQ+PjJdPTA7Y1t0Pj4yXT00MTA0
O3g9YVtoXXwwO2lmKCh4JjEpPT0wKXt5PWgrNHwwO3o9aCs0fDB9ZWxzZXtBPWNbaCs4Pj4yXXww
O3k9QTt6PUF9QT14JjI1NTtpZigoQSYxfDApPT0wKXtCPUE+Pj4xfWVsc2V7Qj1jW2grND4+Ml18
MH1oPXkrKEI8PDIpfDA7TDIxMzU6ZG97aWYoej4+PjA8aD4+PjApe0I9dDt5PWt8MDtBPWsrMzJ8
MDt4PXo7Qz00MTA0O3doaWxlKDEpe2NbbT4+Ml09eDtEPShiNltjW0MrMTI+PjJdJjMxXSh3LGos
eCxoLG0seSxBLGwpfDApPT0yO0U9Y1ttPj4yXXwwO2lmKER8KEV8MCk9PSh4fDApKXticmVha31p
Zih5Pj4+MDwoY1tsPj4yXXwwKT4+PjApe0Q9eTtkb3tkVShyLGFbRF18MCk7RD1EKzF8MDt9d2hp
bGUoRD4+PjA8KGNbbD4+Ml18MCk+Pj4wKTtGPWNbbT4+Ml18MH1lbHNle0Y9RX1pZihGPj4+MD49
aD4+PjApe2JyZWFrIEwyMTM1fXg9RjtDPWNbQj4+Ml18MH1CPWJPKDgpfDA7ZEUoQiw5MDQpO2Js
KEJ8MCw4MTkyLDIyKX19d2hpbGUoMCk7ZGUodHwwKTtpZigoYVtzXSYxKT09MCl7Rz1yKzF8MH1l
bHNle0c9Y1tyKzg+PjJdfDB9cz1iTSgoKGV8MCk9PS0xPy0xOmU8PDEpfDAsZnwwLGd8MCxHfDAp
fDA7ayQodnwwLDAsMTIpO3Y9dXwwO2NbdSs0Pj4yXT0wO2NbdT4+Ml09NDA0ODtHPWswKHN8MCl8
MDtnPXMrR3wwO2lmKChHfDApPDEpe0g9dXwwO2RlKEgpO2RQKHIpO2k9ZDtyZXR1cm59Rz11O2Y9
ZztlPW98MDt0PW8rMTI4fDA7bz1zO3M9NDA0ODt3aGlsZSgxKXtjW3E+PjJdPW87Rj0oYjZbY1tz
KzE2Pj4yXSYzMV0odixuLG8sKGYtb3wwKT4zMj9vKzMyfDA6ZyxxLGUsdCxwKXwwKT09MjtoPWNb
cT4+Ml18MDtpZihGfChofDApPT0ob3wwKSl7YnJlYWt9aWYoZT4+PjA8KGNbcD4+Ml18MCk+Pj4w
KXtGPWU7ZG97ZWgoYixjW0Y+PjJdfDApO0Y9Ris0fDA7fXdoaWxlKEY+Pj4wPChjW3A+PjJdfDAp
Pj4+MCk7ST1jW3E+PjJdfDB9ZWxzZXtJPWh9aWYoST4+PjA+PWc+Pj4wKXtKPTE4Mjk7YnJlYWt9
bz1JO3M9Y1tHPj4yXXwwfWlmKChKfDApPT0xODI5KXtIPXV8MDtkZShIKTtkUChyKTtpPWQ7cmV0
dXJufWQ9Yk8oOCl8MDtkRShkLDkwNCk7YmwoZHwwLDgxOTIsMjIpfWZ1bmN0aW9uIGlxKGIpe2I9
YnwwO3ZhciBkPTAsZT0wLGY9MDtjW2I+PjJdPTM1Njg7ZD1iKzh8MDtlPWNbZD4+Ml18MDtkb3tp
ZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMo
MSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChlfDApPT0oY1syOTU4XXwwKSl7Zj1ifDA7ZGUoZik7
cmV0dXJufWE3KGNbZD4+Ml18MCk7Zj1ifDA7ZGUoZik7cmV0dXJufWZ1bmN0aW9uIGlyKGEpe2E9
YXwwO2E9Yk8oOCl8MDtkQShhLDEzNTIpO2NbYT4+Ml09MjUwNDtibChhfDAsODIwOCwzMil9ZnVu
Y3Rpb24gaXMoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wO2U9aTtp
PWkrNDQ4fDA7Zj1lfDA7Zz1lKzE2fDA7aD1lKzMyfDA7aj1lKzQ4fDA7az1lKzY0fDA7bD1lKzgw
fDA7bT1lKzk2fDA7bj1lKzExMnwwO289ZSsxMjh8MDtwPWUrMTQ0fDA7cT1lKzE2MHwwO3I9ZSsx
NzZ8MDtzPWUrMTkyfDA7dD1lKzIwOHwwO3U9ZSsyMjR8MDt2PWUrMjQwfDA7dz1lKzI1NnwwO3g9
ZSsyNzJ8MDt5PWUrMjg4fDA7ej1lKzMwNHwwO0E9ZSszMjB8MDtCPWUrMzM2fDA7Qz1lKzM1Mnww
O0Q9ZSszNjh8MDtFPWUrMzg0fDA7Rj1lKzQwMHwwO0c9ZSs0MTZ8MDtIPWUrNDMyfDA7Y1tiKzQ+
PjJdPWQtMTtjW2I+PjJdPTM4MjQ7ZD1iKzh8MDtJPWIrMTJ8MDthW2IrMTM2fDBdPTE7Sj1iKzI0
fDA7Sz1KO2NbST4+Ml09SztjW2Q+PjJdPUs7Y1tiKzE2Pj4yXT1KKzExMjtKPTI4O0w9Sztkb3tp
ZigoTHwwKT09MCl7TT0wfWVsc2V7Y1tMPj4yXT0wO009Y1tJPj4yXXwwfUw9TSs0fDA7Y1tJPj4y
XT1MO0o9Si0xfDA7fXdoaWxlKChKfDApIT0wKTtkWihiKzE0NHwwLDEzNDQsMSk7Sj1jW2Q+PjJd
fDA7ZD1jW0k+PjJdfDA7aWYoKEp8MCkhPShkfDApKXtjW0k+PjJdPWQrKH4oKGQtNCsoLUp8MCl8
MCk+Pj4yKTw8Mil9Y1szNjE3XT0wO2NbMzYxNl09MzUyODtpZigoY1szODQ0XXwwKSE9LTEpe2Nb
SD4+Ml09MTUzNzY7Y1tIKzQ+PjJdPTEyO2NbSCs4Pj4yXT0wO2RXKDE1Mzc2LEgsOTYpfWlKKGIs
MTQ0NjQsKGNbMzg0NV18MCktMXwwKTtjWzM2MTVdPTA7Y1szNjE0XT0zNDg4O2lmKChjWzM4NDJd
fDApIT0tMSl7Y1tHPj4yXT0xNTM2ODtjW0crND4+Ml09MTI7Y1tHKzg+PjJdPTA7ZFcoMTUzNjgs
Ryw5Nil9aUooYiwxNDQ1NiwoY1szODQzXXwwKS0xfDApO2NbMzY2N109MDtjWzM2NjZdPTM5MzY7
Y1szNjY4XT0wO2FbMTQ2NzZdPTA7Y1szNjY4XT1jWyhhNigpfDApPj4yXTtpZigoY1szOTI0XXww
KSE9LTEpe2NbRj4+Ml09MTU2OTY7Y1tGKzQ+PjJdPTEyO2NbRis4Pj4yXT0wO2RXKDE1Njk2LEYs
OTYpfWlKKGIsMTQ2NjQsKGNbMzkyNV18MCktMXwwKTtjWzM2NjVdPTA7Y1szNjY0XT0zODU2O2lm
KChjWzM5MjJdfDApIT0tMSl7Y1tFPj4yXT0xNTY4ODtjW0UrND4+Ml09MTI7Y1tFKzg+PjJdPTA7
ZFcoMTU2ODgsRSw5Nil9aUooYiwxNDY1NiwoY1szOTIzXXwwKS0xfDApO2NbMzYxOV09MDtjWzM2
MThdPTM2MjQ7aWYoKGNbMzg0OF18MCkhPS0xKXtjW0Q+PjJdPTE1MzkyO2NbRCs0Pj4yXT0xMjtj
W0QrOD4+Ml09MDtkVygxNTM5MixELDk2KX1pSihiLDE0NDcyLChjWzM4NDldfDApLTF8MCk7Y1s1
MjFdPTA7Y1s1MjBdPTM1Njg7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDAp
PT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtjWzUyMl09Y1syOTU4
XTtpZigoY1szODQ2XXwwKSE9LTEpe2NbQz4+Ml09MTUzODQ7Y1tDKzQ+PjJdPTEyO2NbQys4Pj4y
XT0wO2RXKDE1Mzg0LEMsOTYpfWlKKGIsMjA4MCwoY1szODQ3XXwwKS0xfDApO2NbMzYyMV09MDtj
WzM2MjBdPTM2ODA7aWYoKGNbMzg1MF18MCkhPS0xKXtjW0I+PjJdPTE1NDAwO2NbQis0Pj4yXT0x
MjtjW0IrOD4+Ml09MDtkVygxNTQwMCxCLDk2KX1pSihiLDE0NDgwLChjWzM4NTFdfDApLTF8MCk7
Y1szNjIzXT0wO2NbMzYyMl09MzczNjtpZigoY1szODUyXXwwKSE9LTEpe2NbQT4+Ml09MTU0MDg7
Y1tBKzQ+PjJdPTEyO2NbQSs4Pj4yXT0wO2RXKDE1NDA4LEEsOTYpfWlKKGIsMTQ0ODgsKGNbMzg1
M118MCktMXwwKTtjWzM1OTddPTA7Y1szNTk2XT0zMDMyO2FbMTQzOTJdPTQ2O2FbMTQzOTNdPTQ0
O2skKDE0Mzk2LDAsMTIpO2lmKChjWzM4MjhdfDApIT0tMSl7Y1t6Pj4yXT0xNTMxMjtjW3orND4+
Ml09MTI7Y1t6Kzg+PjJdPTA7ZFcoMTUzMTIseiw5Nil9aUooYiwxNDM4NCwoY1szODI5XXwwKS0x
fDApO2NbNTEzXT0wO2NbNTEyXT0yOTg0O2NbNTE0XT00NjtjWzUxNV09NDQ7ayQoMjA2NCwwLDEy
KTtpZigoY1szODI2XXwwKSE9LTEpe2NbeT4+Ml09MTUzMDQ7Y1t5KzQ+PjJdPTEyO2NbeSs4Pj4y
XT0wO2RXKDE1MzA0LHksOTYpfWlKKGIsMjA0OCwoY1szODI3XXwwKS0xfDApO2NbMzYxM109MDtj
WzM2MTJdPTM0MTY7aWYoKGNbMzg0MF18MCkhPS0xKXtjW3g+PjJdPTE1MzYwO2NbeCs0Pj4yXT0x
MjtjW3grOD4+Ml09MDtkVygxNTM2MCx4LDk2KX1pSihiLDE0NDQ4LChjWzM4NDFdfDApLTF8MCk7
Y1szNjExXT0wO2NbMzYxMF09MzM0NDtpZigoY1szODM4XXwwKSE9LTEpe2Nbdz4+Ml09MTUzNTI7
Y1t3KzQ+PjJdPTEyO2Nbdys4Pj4yXT0wO2RXKDE1MzUyLHcsOTYpfWlKKGIsMTQ0NDAsKGNbMzgz
OV18MCktMXwwKTtjWzM2MDldPTA7Y1szNjA4XT0zMjgwO2lmKChjWzM4MzZdfDApIT0tMSl7Y1t2
Pj4yXT0xNTM0NDtjW3YrND4+Ml09MTI7Y1t2Kzg+PjJdPTA7ZFcoMTUzNDQsdiw5Nil9aUooYiwx
NDQzMiwoY1szODM3XXwwKS0xfDApO2NbMzYwN109MDtjWzM2MDZdPTMyMTY7aWYoKGNbMzgzNF18
MCkhPS0xKXtjW3U+PjJdPTE1MzM2O2NbdSs0Pj4yXT0xMjtjW3UrOD4+Ml09MDtkVygxNTMzNix1
LDk2KX1pSihiLDE0NDI0LChjWzM4MzVdfDApLTF8MCk7Y1szNjc3XT0wO2NbMzY3Nl09NDkxMjtp
ZigoY1s0MDQ2XXwwKSE9LTEpe2NbdD4+Ml09MTYxODQ7Y1t0KzQ+PjJdPTEyO2NbdCs4Pj4yXT0w
O2RXKDE2MTg0LHQsOTYpfWlKKGIsMTQ3MDQsKGNbNDA0N118MCktMXwwKTtjWzM2NzVdPTA7Y1sz
Njc0XT00ODQ4O2lmKChjWzQwNDRdfDApIT0tMSl7Y1tzPj4yXT0xNjE3NjtjW3MrND4+Ml09MTI7
Y1tzKzg+PjJdPTA7ZFcoMTYxNzYscyw5Nil9aUooYiwxNDY5NiwoY1s0MDQ1XXwwKS0xfDApO2Nb
MzY3M109MDtjWzM2NzJdPTQ3ODQ7aWYoKGNbNDA0Ml18MCkhPS0xKXtjW3I+PjJdPTE2MTY4O2Nb
cis0Pj4yXT0xMjtjW3IrOD4+Ml09MDtkVygxNjE2OCxyLDk2KX1pSihiLDE0Njg4LChjWzQwNDNd
fDApLTF8MCk7Y1szNjcxXT0wO2NbMzY3MF09NDcyMDtpZigoY1s0MDQwXXwwKSE9LTEpe2NbcT4+
Ml09MTYxNjA7Y1txKzQ+PjJdPTEyO2NbcSs4Pj4yXT0wO2RXKDE2MTYwLHEsOTYpfWlKKGIsMTQ2
ODAsKGNbNDA0MV18MCktMXwwKTtjWzM1OTVdPTA7Y1szNTk0XT0yNjg4O2lmKChjWzM4MTZdfDAp
IT0tMSl7Y1twPj4yXT0xNTI2NDtjW3ArND4+Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTUyNjQscCw5
Nil9aUooYiwxNDM3NiwoY1szODE3XXwwKS0xfDApO2NbMzU5M109MDtjWzM1OTJdPTI2NDg7aWYo
KGNbMzgxNF18MCkhPS0xKXtjW28+PjJdPTE1MjU2O2Nbbys0Pj4yXT0xMjtjW28rOD4+Ml09MDtk
VygxNTI1NixvLDk2KX1pSihiLDE0MzY4LChjWzM4MTVdfDApLTF8MCk7Y1szNTkxXT0wO2NbMzU5
MF09MjYwODtpZigoY1szODEyXXwwKSE9LTEpe2Nbbj4+Ml09MTUyNDg7Y1tuKzQ+PjJdPTEyO2Nb
bis4Pj4yXT0wO2RXKDE1MjQ4LG4sOTYpfWlKKGIsMTQzNjAsKGNbMzgxM118MCktMXwwKTtjWzM1
ODldPTA7Y1szNTg4XT0yNTY4O2lmKChjWzM4MTBdfDApIT0tMSl7Y1ttPj4yXT0xNTI0MDtjW20r
ND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTUyNDAsbSw5Nil9aUooYiwxNDM1MiwoY1szODExXXww
KS0xfDApO2NbNTA5XT0wO2NbNTA4XT0yODg4O2NbNTEwXT0yOTM2O2lmKChjWzM4MjRdfDApIT0t
MSl7Y1tsPj4yXT0xNTI5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTUyOTYsbCw5Nil9
aUooYiwyMDMyLChjWzM4MjVdfDApLTF8MCk7Y1s1MDVdPTA7Y1s1MDRdPTI3OTI7Y1s1MDZdPTI4
NDA7aWYoKGNbMzgyMl18MCkhPS0xKXtjW2s+PjJdPTE1Mjg4O2Nbays0Pj4yXT0xMjtjW2srOD4+
Ml09MDtkVygxNTI4OCxrLDk2KX1pSihiLDIwMTYsKGNbMzgyM118MCktMXwwKTtjWzUwMV09MDtj
WzUwMF09Mzc5Mjtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2Jy
ZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2NbNTAyXT1jWzI5NThdO2NbNTAw
XT0yNzYwO2lmKChjWzM4MjBdfDApIT0tMSl7Y1tqPj4yXT0xNTI4MDtjW2orND4+Ml09MTI7Y1tq
Kzg+PjJdPTA7ZFcoMTUyODAsaiw5Nil9aUooYiwyZTMsKGNbMzgyMV18MCktMXwwKTtjWzQ5N109
MDtjWzQ5Nl09Mzc5Mjtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTAp
e2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2NbNDk4XT1jWzI5NThdO2Nb
NDk2XT0yNzI4O2lmKChjWzM4MThdfDApIT0tMSl7Y1toPj4yXT0xNTI3MjtjW2grND4+Ml09MTI7
Y1toKzg+PjJdPTA7ZFcoMTUyNzIsaCw5Nil9aUooYiwxOTg0LChjWzM4MTldfDApLTF8MCk7Y1sz
NjA1XT0wO2NbMzYwNF09MzEyMDtpZigoY1szODMyXXwwKSE9LTEpe2NbZz4+Ml09MTUzMjg7Y1tn
KzQ+PjJdPTEyO2NbZys4Pj4yXT0wO2RXKDE1MzI4LGcsOTYpfWlKKGIsMTQ0MTYsKGNbMzgzM118
MCktMXwwKTtjWzM2MDNdPTA7Y1szNjAyXT0zMDgwO2lmKChjWzM4MzBdfDApIT0tMSl7Y1tmPj4y
XT0xNTMyMDtjW2YrND4+Ml09MTI7Y1tmKzg+PjJdPTA7ZFcoMTUzMjAsZiw5Nil9aUooYiwxNDQw
OCwoY1szODMxXXwwKS0xfDApO2k9ZTtyZXR1cm59ZnVuY3Rpb24gaXQoYSxiKXthPWF8MDtiPWJ8
MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGl1KGEsYixkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7Y1tmPj4yXT1kO2NbaT4+Ml09ZztyZXR1
cm4gM31mdW5jdGlvbiBpdihhLGIsZCxlLGYsZyxoLGkpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2NbZj4+Ml09ZDtjW2k+PjJdPWc7cmV0dXJuIDN9ZnVu
Y3Rpb24gaXcoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtjW2Y+PjJd
PWQ7cmV0dXJuIDN9ZnVuY3Rpb24gaXgoYSl7YT1hfDA7cmV0dXJuIDF9ZnVuY3Rpb24gaXkoYSl7
YT1hfDA7cmV0dXJuIDF9ZnVuY3Rpb24gaXooYSl7YT1hfDA7cmV0dXJuIDF9ZnVuY3Rpb24gaUEo
YSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4gYjw8MjQ+PjI0fDB9ZnVuY3Rpb24gaUIoYSxiLGMpe2E9
YXwwO2I9YnwwO2M9Y3wwO3JldHVybihiPj4+MDwxMjg/YiYyNTU6Yyl8MH1mdW5jdGlvbiBpQyhh
LGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJuKGI8PDI0Pj4yND4tMT9iOmMpfDB9ZnVuY3Rp
b24gaUQoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtiPWQtY3wwO3Jl
dHVybihiPj4+MDxlPj4+MD9iOmUpfDB9ZnVuY3Rpb24gaUUoYSl7YT1hfDA7Y1thKzQ+PjJdPShJ
PWNbMzg1NF18MCxjWzM4NTRdPUkrMSxJKSsxO3JldHVybn1mdW5jdGlvbiBpRihiLGQsZSxmKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTA7aWYoKGR8MCk9PShlfDApKXtn
PWQ7cmV0dXJuIGd8MH1lbHNle2g9ZDtpPWZ9d2hpbGUoMSl7Y1tpPj4yXT1hW2hdfDA7Zj1oKzF8
MDtpZigoZnwwKT09KGV8MCkpe2c9ZTticmVha31lbHNle2g9ZjtpPWkrNHwwfX1yZXR1cm4gZ3ww
fWZ1bmN0aW9uIGlHKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFy
IGg9MCxpPTAsaj0wO2lmKChkfDApPT0oZXwwKSl7aD1kO3JldHVybiBofDB9Yj0oKGUtNCsoLWR8
MCl8MCk+Pj4yKSsxfDA7aT1kO2o9Zzt3aGlsZSgxKXtnPWNbaT4+Ml18MDthW2pdPWc+Pj4wPDEy
OD9nJjI1NTpmO2c9aSs0fDA7aWYoKGd8MCk9PShlfDApKXticmVha31lbHNle2k9ZztqPWorMXww
fX1oPWQrKGI8PDIpfDA7cmV0dXJuIGh8MH1mdW5jdGlvbiBpSChiLGMsZCxlKXtiPWJ8MDtjPWN8
MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7aWYoKGN8MCk9PShkfDApKXtmPWM7cmV0dXJu
IGZ8MH1lbHNle2c9YztoPWV9d2hpbGUoMSl7YVtoXT1hW2ddfDA7ZT1nKzF8MDtpZigoZXwwKT09
KGR8MCkpe2Y9ZDticmVha31lbHNle2c9ZTtoPWgrMXwwfX1yZXR1cm4gZnwwfWZ1bmN0aW9uIGlJ
KGIsYyxkLGUsZil7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0w
O2lmKChjfDApPT0oZHwwKSl7Zz1jO3JldHVybiBnfDB9ZWxzZXtoPWM7aT1mfXdoaWxlKDEpe2Y9
YVtoXXwwO2FbaV09Zjw8MjQ+PjI0Pi0xP2Y6ZTtmPWgrMXwwO2lmKChmfDApPT0oZHwwKSl7Zz1k
O2JyZWFrfWVsc2V7aD1mO2k9aSsxfDB9fXJldHVybiBnfDB9ZnVuY3Rpb24gaUooYSxiLGQpe2E9
YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxu
PTA7ZGcoYnwwKTtlPWErOHwwO2Y9YSsxMnwwO2E9Y1tmPj4yXXwwO2c9ZXwwO2g9Y1tnPj4yXXww
O2k9YS1oPj4yO2Rve2lmKGk+Pj4wPmQ+Pj4wKXtqPWh9ZWxzZXtrPWQrMXwwO2lmKGk+Pj4wPGs+
Pj4wKXtqNShlLGstaXwwKTtqPWNbZz4+Ml18MDticmVha31pZihpPj4+MDw9az4+PjApe2o9aDti
cmVha31sPWgrKGs8PDIpfDA7aWYoKGx8MCk9PShhfDApKXtqPWg7YnJlYWt9Y1tmPj4yXT1hKyh+
KChhLTQrKC1sfDApfDApPj4+Mik8PDIpO2o9aH19d2hpbGUoMCk7aD1jW2orKGQ8PDIpPj4yXXww
O2lmKChofDApPT0wKXttPWo7bj1tKyhkPDwyKXwwO2Nbbj4+Ml09YjtyZXR1cm59ZHooaHwwKXww
O209Y1tnPj4yXXwwO249bSsoZDw8Mil8MDtjW24+PjJdPWI7cmV0dXJufWZ1bmN0aW9uIGlLKGEp
e2E9YXwwO2lMKGEpO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpTChiKXtiPWJ8MDt2YXIgZD0wLGU9
MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wO2NbYj4+Ml09MzgyNDtkPWIrMTJ8MDtl
PWNbZD4+Ml18MDtmPWIrOHwwO2c9Y1tmPj4yXXwwO2lmKChlfDApIT0oZ3wwKSl7aD0wO2k9Zztn
PWU7d2hpbGUoMSl7ZT1jW2krKGg8PDIpPj4yXXwwO2lmKChlfDApPT0wKXtqPWc7az1pfWVsc2V7
bD1lfDA7ZHoobCl8MDtqPWNbZD4+Ml18MDtrPWNbZj4+Ml18MH1sPWgrMXwwO2lmKGw+Pj4wPGot
az4+Mj4+PjApe2g9bDtpPWs7Zz1qfWVsc2V7YnJlYWt9fX1kUChiKzE0NHwwKTtqPWNbZj4+Ml18
MDtpZigoanwwKT09MCl7bT1ifDA7ZGUobSk7cmV0dXJufWY9Y1tkPj4yXXwwO2lmKChqfDApIT0o
ZnwwKSl7Y1tkPj4yXT1mKyh+KChmLTQrKC1qfDApfDApPj4+Mik8PDIpfWlmKChqfDApPT0oYisy
NHwwKSl7YVtiKzEzNnwwXT0wO209YnwwO2RlKG0pO3JldHVybn1lbHNle2tTKGopO209YnwwO2Rl
KG0pO3JldHVybn19ZnVuY3Rpb24gaU0oKXt2YXIgYj0wLGQ9MDtpZigoYVsxNjI0OF18MCkhPTAp
e2I9Y1syOTUwXXwwO3JldHVybiBifDB9aWYoKGJjKDE2MjQ4KXwwKT09MCl7Yj1jWzI5NTBdfDA7
cmV0dXJuIGJ8MH1kb3tpZigoYVsxNjI1Nl18MCk9PTApe2lmKChiYygxNjI1Nil8MCk9PTApe2Jy
ZWFrfWlzKDE0NDk2LDEpO2NbMjk1NF09MTQ0OTY7Y1syOTUyXT0xMTgxNn19d2hpbGUoMCk7ZD1j
W2NbMjk1Ml0+PjJdfDA7Y1syOTU2XT1kO2RnKGR8MCk7Y1syOTUwXT0xMTgyNDtiPWNbMjk1MF18
MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGlOKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MDtkPWNbYj4+
Ml18MDtjW2E+PjJdPWQ7ZGcoZHwwKTtyZXR1cm59ZnVuY3Rpb24gaU8oYSl7YT1hfDA7ZHooY1th
Pj4yXXwwKXwwO3JldHVybn1mdW5jdGlvbiBpUChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVy
bn1mdW5jdGlvbiBpUShhKXthPWF8MDtpZigoYXwwKT09MCl7cmV0dXJufWJZW2NbKGNbYT4+Ml18
MCkrND4+Ml0mNTExXShhKTtyZXR1cm59ZnVuY3Rpb24gaVIoYSl7YT1hfDA7ZGUoYXwwKTtrUyhh
KTtyZXR1cm59ZnVuY3Rpb24gaVMoYil7Yj1ifDA7dmFyIGQ9MDtjW2I+PjJdPTM5MzY7ZD1jW2Ir
OD4+Ml18MDtkb3tpZigoZHwwKSE9MCl7aWYoKGFbYisxMnwwXSYxKT09MCl7YnJlYWt9a1QoZCl9
fXdoaWxlKDApO2RlKGJ8MCk7a1MoYik7cmV0dXJufWZ1bmN0aW9uIGlUKGIpe2I9YnwwO3ZhciBk
PTA7Y1tiPj4yXT0zOTM2O2Q9Y1tiKzg+PjJdfDA7ZG97aWYoKGR8MCkhPTApe2lmKChhW2IrMTJ8
MF0mMSk9PTApe2JyZWFrfWtUKGQpfX13aGlsZSgwKTtkZShifDApO3JldHVybn1mdW5jdGlvbiBp
VShhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpVihhKXthPWF8MDtpcShh
KTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaVcoYSl7YT1hfDA7dmFyIGI9MDtiPWNbKGlNKCl8MCk+
PjJdfDA7Y1thPj4yXT1iO2RnKGJ8MCk7cmV0dXJufWZ1bmN0aW9uIGlYKGEsYil7YT1hfDA7Yj1i
fDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTA7ZD1pO2k9aSsxNnwwO2U9ZHwwO2Y9Y1thPj4yXXww
O2E9YnwwO2lmKChjW2E+PjJdfDApIT0tMSl7Y1tlPj4yXT1iO2NbZSs0Pj4yXT0xMjtjW2UrOD4+
Ml09MDtkVyhhLGUsOTYpfWU9KGNbYis0Pj4yXXwwKS0xfDA7Yj1jW2YrOD4+Ml18MDtpZigoY1tm
KzEyPj4yXXwwKS1iPj4yPj4+MDw9ZT4+PjApe2c9Yk8oNCl8MDtoPWc7a3EoaCk7YmwoZ3wwLDgx
NzYsMTM0KTtyZXR1cm4gMH1mPWNbYisoZTw8Mik+PjJdfDA7aWYoKGZ8MCk9PTApe2c9Yk8oNCl8
MDtoPWc7a3EoaCk7YmwoZ3wwLDgxNzYsMTM0KTtyZXR1cm4gMH1lbHNle2k9ZDtyZXR1cm4gZnww
fXJldHVybiAwfWZ1bmN0aW9uIGlZKGEsZCxlKXthPWF8MDtkPWR8MDtlPWV8MDt2YXIgZj0wO2lm
KGU+Pj4wPj0xMjgpe2Y9MDtyZXR1cm4gZnwwfWY9KGJbKGNbKGE2KCl8MCk+PjJdfDApKyhlPDwx
KT4+MV0mZCk8PDE2Pj4xNiE9MDtyZXR1cm4gZnwwfWZ1bmN0aW9uIGlaKGEsZCxlLGYpe2E9YXww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTA7aWYoKGR8MCk9PShlfDApKXtn
PWQ7cmV0dXJuIGd8MH1lbHNle2g9ZDtpPWZ9d2hpbGUoMSl7Zj1jW2g+PjJdfDA7aWYoZj4+PjA8
MTI4KXtqPWJbKGNbKGE2KCl8MCk+PjJdfDApKyhmPDwxKT4+MV18MH1lbHNle2o9MH1iW2k+PjFd
PWo7Zj1oKzR8MDtpZigoZnwwKT09KGV8MCkpe2c9ZTticmVha31lbHNle2g9ZjtpPWkrMnwwfX1y
ZXR1cm4gZ3wwfWZ1bmN0aW9uIGlfKGEsZCxlLGYpe2E9YXwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3Zh
ciBnPTAsaD0wLGk9MDtpZigoZXwwKT09KGZ8MCkpe2c9ZTtyZXR1cm4gZ3wwfWVsc2V7aD1lfXdo
aWxlKDEpe2U9Y1toPj4yXXwwO2lmKGU+Pj4wPDEyOCl7aWYoKGJbKGNbKGE2KCl8MCk+PjJdfDAp
KyhlPDwxKT4+MV0mZCk8PDE2Pj4xNiE9MCl7Zz1oO2k9MjA5NDticmVha319ZT1oKzR8MDtpZigo
ZXwwKT09KGZ8MCkpe2c9ZjtpPTIwOTY7YnJlYWt9ZWxzZXtoPWV9fWlmKChpfDApPT0yMDk0KXty
ZXR1cm4gZ3wwfWVsc2UgaWYoKGl8MCk9PTIwOTYpe3JldHVybiBnfDB9cmV0dXJuIDB9ZnVuY3Rp
b24gaSQoYSxkLGUsZil7YT1hfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTA7YT1lO3do
aWxlKDEpe2lmKChhfDApPT0oZnwwKSl7Zz1mO2g9MjEwNDticmVha31lPWNbYT4+Ml18MDtpZihl
Pj4+MD49MTI4KXtnPWE7aD0yMTA2O2JyZWFrfWlmKChiWyhjWyhhNigpfDApPj4yXXwwKSsoZTw8
MSk+PjFdJmQpPDwxNj4+MTY9PTApe2c9YTtoPTIxMDU7YnJlYWt9ZWxzZXthPWErNHwwfX1pZigo
aHwwKT09MjEwNCl7cmV0dXJuIGd8MH1lbHNlIGlmKChofDApPT0yMTA1KXtyZXR1cm4gZ3wwfWVs
c2UgaWYoKGh8MCk9PTIxMDYpe3JldHVybiBnfDB9cmV0dXJuIDB9ZnVuY3Rpb24gaTAoYSxiKXth
PWF8MDtiPWJ8MDt2YXIgZD0wO2lmKGI+Pj4wPj0xMjgpe2Q9YjtyZXR1cm4gZHwwfWQ9Y1soY1so
YlIoKXwwKT4+Ml18MCkrKGI8PDIpPj4yXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24gaTEoYSxiLGQp
e2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtpZigoYnwwKT09KGR8MCkpe2U9Yjty
ZXR1cm4gZXwwfWVsc2V7Zj1ifXdoaWxlKDEpe2I9Y1tmPj4yXXwwO2lmKGI+Pj4wPDEyOCl7Zz1j
WyhjWyhiUigpfDApPj4yXXwwKSsoYjw8Mik+PjJdfDB9ZWxzZXtnPWJ9Y1tmPj4yXT1nO2I9Zis0
fDA7aWYoKGJ8MCk9PShkfDApKXtlPWQ7YnJlYWt9ZWxzZXtmPWJ9fXJldHVybiBlfDB9ZnVuY3Rp
b24gaTIoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wO2lmKGI+Pj4wPj0xMjgpe2Q9YjtyZXR1cm4g
ZHwwfWQ9Y1soY1soYlMoKXwwKT4+Ml18MCkrKGI8PDIpPj4yXXwwO3JldHVybiBkfDB9ZnVuY3Rp
b24gaTMoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtpZigoYnwwKT09
KGR8MCkpe2U9YjtyZXR1cm4gZXwwfWVsc2V7Zj1ifXdoaWxlKDEpe2I9Y1tmPj4yXXwwO2lmKGI+
Pj4wPDEyOCl7Zz1jWyhjWyhiUygpfDApPj4yXXwwKSsoYjw8Mik+PjJdfDB9ZWxzZXtnPWJ9Y1tm
Pj4yXT1nO2I9Zis0fDA7aWYoKGJ8MCk9PShkfDApKXtlPWQ7YnJlYWt9ZWxzZXtmPWJ9fXJldHVy
biBlfDB9ZnVuY3Rpb24gaTQoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wO2lmKGI8PDI0Pj4yNDw9
LTEpe2Q9YjtyZXR1cm4gZHwwfWQ9Y1soY1soYlIoKXwwKT4+Ml18MCkrKChiJjI1NSk8PDIpPj4y
XSYyNTU7cmV0dXJuIGR8MH1mdW5jdGlvbiBpNShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFy
IGY9MCxnPTAsaD0wO2lmKChkfDApPT0oZXwwKSl7Zj1kO3JldHVybiBmfDB9ZWxzZXtnPWR9d2hp
bGUoMSl7ZD1hW2ddfDA7aWYoZDw8MjQ+PjI0Pi0xKXtoPWNbKGNbKGJSKCl8MCk+PjJdfDApKyhk
PDwyND4+MjQ8PDIpPj4yXSYyNTV9ZWxzZXtoPWR9YVtnXT1oO2Q9ZysxfDA7aWYoKGR8MCk9PShl
fDApKXtmPWU7YnJlYWt9ZWxzZXtnPWR9fXJldHVybiBmfDB9ZnVuY3Rpb24gaTYoYSxiKXthPWF8
MDtiPWJ8MDt2YXIgZD0wO2lmKGI8PDI0Pj4yNDw9LTEpe2Q9YjtyZXR1cm4gZHwwfWQ9Y1soY1so
YlMoKXwwKT4+Ml18MCkrKGI8PDI0Pj4yNDw8Mik+PjJdJjI1NTtyZXR1cm4gZHwwfWZ1bmN0aW9u
IGk3KGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7aWYoKGR8MCk9PShl
fDApKXtmPWQ7cmV0dXJuIGZ8MH1lbHNle2c9ZH13aGlsZSgxKXtkPWFbZ118MDtpZihkPDwyND4+
MjQ+LTEpe2g9Y1soY1soYlMoKXwwKT4+Ml18MCkrKGQ8PDI0Pj4yNDw8Mik+PjJdJjI1NX1lbHNl
e2g9ZH1hW2ddPWg7ZD1nKzF8MDtpZigoZHwwKT09KGV8MCkpe2Y9ZTticmVha31lbHNle2c9ZH19
cmV0dXJuIGZ8MH1mdW5jdGlvbiBpOChhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBpOShhKXth
PWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBqYShhLGIsZCxlLGYsZyxoLGope2E9
YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0w
O2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2NbYT4+Ml09ZDtjW2s+PjJdPWc7bD1qbChkLGUs
YSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1kKygoY1thPj4yXXwwKS1kPj4xPDwxKTtjW2o+
PjJdPWcrKChjW2s+PjJdfDApLWcpO2k9YjtyZXR1cm4gbHwwfWZ1bmN0aW9uIGpiKGIsZCxlLGYs
ZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7
dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTA7bD1pO2k9
aSs4fDA7bT1sfDA7bj1tO289aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3A9ZTt3aGlsZSgxKXtpZigo
cHwwKT09KGZ8MCkpe3E9ZjticmVha31pZigoY1twPj4yXXwwKT09MCl7cT1wO2JyZWFrfWVsc2V7
cD1wKzR8MH19Y1trPj4yXT1oO2NbZz4+Ml09ZTtMMjU1NTpkb3tpZigoZXwwKT09KGZ8MCl8KGh8
MCk9PShqfDApKXtyPWV9ZWxzZXtwPWQ7cz1qO3Q9Yis4fDA7dT1vfDA7dj1oO3c9ZTt4PXE7TDI1
NTc6d2hpbGUoMSl7eT1jW3ArND4+Ml18MDtjW20+PjJdPWNbcD4+Ml07Y1ttKzQ+PjJdPXk7eT1i
QihjW3Q+PjJdfDApfDA7ej1rcyh2LGcseC13Pj4yLHMtdnwwLGQpfDA7aWYoKHl8MCkhPTApe2JC
KHl8MCl8MH1zd2l0Y2goenwwKXtjYXNlLTE6e0E9MjE4ODticmVhayBMMjU1NzticmVha307Y2Fz
ZSAwOntCPTE7QT0yMjI0O2JyZWFrIEwyNTU3O2JyZWFrfTtkZWZhdWx0Ont9fXk9KGNbaz4+Ml18
MCkrenwwO2Nbaz4+Ml09eTtpZigoeXwwKT09KGp8MCkpe0E9MjIyMTticmVha31pZigoeHwwKT09
KGZ8MCkpe0M9ZjtEPXk7RT1jW2c+PjJdfDB9ZWxzZXt5PWJCKGNbdD4+Ml18MCl8MDt6PWtnKHUs
MCxkKXwwO2lmKCh5fDApIT0wKXtiQih5fDApfDB9aWYoKHp8MCk9PS0xKXtCPTI7QT0yMjI2O2Jy
ZWFrfXk9Y1trPj4yXXwwO2lmKHo+Pj4wPihzLXl8MCk+Pj4wKXtCPTE7QT0yMjI3O2JyZWFrfUwy
NTc0OmRve2lmKCh6fDApIT0wKXtGPXo7Rz11O0g9eTt3aGlsZSgxKXtJPWFbR118MDtjW2s+PjJd
PUgrMTthW0hdPUk7ST1GLTF8MDtpZigoSXwwKT09MCl7YnJlYWsgTDI1NzR9Rj1JO0c9RysxfDA7
SD1jW2s+PjJdfDB9fX13aGlsZSgwKTt5PShjW2c+PjJdfDApKzR8MDtjW2c+PjJdPXk7ej15O3do
aWxlKDEpe2lmKCh6fDApPT0oZnwwKSl7Sj1mO2JyZWFrfWlmKChjW3o+PjJdfDApPT0wKXtKPXo7
YnJlYWt9ZWxzZXt6PXorNHwwfX1DPUo7RD1jW2s+PjJdfDA7RT15fWlmKChFfDApPT0oZnwwKXwo
RHwwKT09KGp8MCkpe3I9RTticmVhayBMMjU1NX1lbHNle3Y9RDt3PUU7eD1DfX1pZigoQXwwKT09
MjE4OCl7Y1trPj4yXT12O0wyNTg2OmRve2lmKCh3fDApPT0oY1tnPj4yXXwwKSl7Sz13fWVsc2V7
eD13O3U9djt3aGlsZSgxKXtzPWNbeD4+Ml18MDtwPWJCKGNbdD4+Ml18MCl8MDt6PWtnKHUscyxu
KXwwO2lmKChwfDApIT0wKXtiQihwfDApfDB9aWYoKHp8MCk9PS0xKXtLPXg7YnJlYWsgTDI1ODZ9
cD0oY1trPj4yXXwwKSt6fDA7Y1trPj4yXT1wO3o9eCs0fDA7aWYoKHp8MCk9PShjW2c+PjJdfDAp
KXtLPXo7YnJlYWt9ZWxzZXt4PXo7dT1wfX19fXdoaWxlKDApO2NbZz4+Ml09SztCPTI7aT1sO3Jl
dHVybiBCfDB9ZWxzZSBpZigoQXwwKT09MjIyMSl7cj1jW2c+PjJdfDA7YnJlYWt9ZWxzZSBpZigo
QXwwKT09MjIyNCl7aT1sO3JldHVybiBCfDB9ZWxzZSBpZigoQXwwKT09MjIyNil7aT1sO3JldHVy
biBCfDB9ZWxzZSBpZigoQXwwKT09MjIyNyl7aT1sO3JldHVybiBCfDB9fX13aGlsZSgwKTtCPShy
fDApIT0oZnwwKXwwO2k9bDtyZXR1cm4gQnwwfWZ1bmN0aW9uIGpjKGIsZCxlLGYsZyxoLGosayl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wO2w9aTtpPWkrOHwwO209bHwwO249bTtv
PWU7d2hpbGUoMSl7aWYoKG98MCk9PShmfDApKXtwPWY7YnJlYWt9aWYoKGFbb118MCk9PTApe3A9
bzticmVha31lbHNle289bysxfDB9fWNbaz4+Ml09aDtjW2c+PjJdPWU7TDI2MDc6ZG97aWYoKGV8
MCk9PShmfDApfChofDApPT0oanwwKSl7cT1lfWVsc2V7bz1kO3I9ajtzPWIrOHwwO3Q9aDt1PWU7
dj1wO0wyNjA5OndoaWxlKDEpe3c9Y1tvKzQ+PjJdfDA7Y1ttPj4yXT1jW28+PjJdO2NbbSs0Pj4y
XT13O3g9djt3PWJCKGNbcz4+Ml18MCl8MDt5PWtkKHQsZyx4LXV8MCxyLXQ+PjIsZCl8MDtpZigo
d3wwKSE9MCl7YkIod3wwKXwwfXN3aXRjaCh5fDApe2Nhc2UtMTp7ej0yMjQzO2JyZWFrIEwyNjA5
O2JyZWFrfTtjYXNlIDA6e0E9Mjt6PTIyNzg7YnJlYWsgTDI2MDk7YnJlYWt9O2RlZmF1bHQ6e319
dz0oY1trPj4yXXwwKSsoeTw8Mil8MDtjW2s+PjJdPXc7aWYoKHd8MCk9PShqfDApKXt6PTIyNzU7
YnJlYWt9eT1jW2c+PjJdfDA7aWYoKHZ8MCk9PShmfDApKXtCPWY7Qz13O0Q9eX1lbHNle0U9YkIo
Y1tzPj4yXXwwKXwwO0Y9a2Modyx5LDEsZCl8MDtpZigoRXwwKSE9MCl7YkIoRXwwKXwwfWlmKChG
fDApIT0wKXtBPTI7ej0yMjgyO2JyZWFrfWNbaz4+Ml09KGNbaz4+Ml18MCkrNDtGPShjW2c+PjJd
fDApKzF8MDtjW2c+PjJdPUY7RT1GO3doaWxlKDEpe2lmKChFfDApPT0oZnwwKSl7Rz1mO2JyZWFr
fWlmKChhW0VdfDApPT0wKXtHPUU7YnJlYWt9ZWxzZXtFPUUrMXwwfX1CPUc7Qz1jW2s+PjJdfDA7
RD1GfWlmKChEfDApPT0oZnwwKXwoQ3wwKT09KGp8MCkpe3E9RDticmVhayBMMjYwN31lbHNle3Q9
Qzt1PUQ7dj1CfX1pZigoenwwKT09MjI0Myl7Y1trPj4yXT10O0wyNjMxOmRve2lmKCh1fDApPT0o
Y1tnPj4yXXwwKSl7SD11fWVsc2V7dj10O3I9dTtMMjYzMjp3aGlsZSgxKXtvPWJCKGNbcz4+Ml18
MCl8MDtFPWtjKHYscix4LXJ8MCxuKXwwO2lmKChvfDApIT0wKXtiQihvfDApfDB9c3dpdGNoKEV8
MCl7Y2FzZSAwOntJPXIrMXwwO2JyZWFrfTtjYXNlLTE6e3o9MjI1NDticmVhayBMMjYzMjticmVh
a307Y2FzZS0yOnt6PTIyNTU7YnJlYWsgTDI2MzI7YnJlYWt9O2RlZmF1bHQ6e0k9citFfDB9fUU9
KGNbaz4+Ml18MCkrNHwwO2Nbaz4+Ml09RTtpZigoSXwwKT09KGNbZz4+Ml18MCkpe0g9STticmVh
ayBMMjYzMX1lbHNle3Y9RTtyPUl9fWlmKCh6fDApPT0yMjU0KXtjW2c+PjJdPXI7QT0yO2k9bDty
ZXR1cm4gQXwwfWVsc2UgaWYoKHp8MCk9PTIyNTUpe2NbZz4+Ml09cjtBPTE7aT1sO3JldHVybiBB
fDB9fX13aGlsZSgwKTtjW2c+PjJdPUg7QT0oSHwwKSE9KGZ8MCl8MDtpPWw7cmV0dXJuIEF8MH1l
bHNlIGlmKCh6fDApPT0yMjc1KXtxPWNbZz4+Ml18MDticmVha31lbHNlIGlmKCh6fDApPT0yMjc4
KXtpPWw7cmV0dXJuIEF8MH1lbHNlIGlmKCh6fDApPT0yMjgyKXtpPWw7cmV0dXJuIEF8MH19fXdo
aWxlKDApO0E9KHF8MCkhPShmfDApfDA7aT1sO3JldHVybiBBfDB9ZnVuY3Rpb24gamQoYixkLGUs
ZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGo9MCxrPTAsbD0wLG09
MCxuPTA7aD1pO2k9aSs4fDA7Y1tnPj4yXT1lO2U9aHwwO2o9YkIoY1tiKzg+PjJdfDApfDA7Yj1r
ZyhlLDAsZCl8MDtpZigoanwwKSE9MCl7YkIoanwwKXwwfXN3aXRjaChifDApe2Nhc2UtMTpjYXNl
IDA6e2s9MjtpPWg7cmV0dXJuIGt8MH07ZGVmYXVsdDp7fX1qPWItMXwwO2I9Y1tnPj4yXXwwO2lm
KGo+Pj4wPihmLWJ8MCk+Pj4wKXtrPTE7aT1oO3JldHVybiBrfDB9aWYoKGp8MCk9PTApe2s9MDtp
PWg7cmV0dXJuIGt8MH1lbHNle2w9ajttPWU7bj1ifXdoaWxlKDEpe2I9YVttXXwwO2NbZz4+Ml09
bisxO2Fbbl09YjtiPWwtMXwwO2lmKChifDApPT0wKXtrPTA7YnJlYWt9bD1iO209bSsxfDA7bj1j
W2c+PjJdfDB9aT1oO3JldHVybiBrfDB9ZnVuY3Rpb24gamUoYSl7YT1hfDA7dmFyIGI9MCxkPTAs
ZT0wLGY9MCxnPTA7Yj1hKzh8MDthPWJCKGNbYj4+Ml18MCl8MDtkPWtmKDAsMCwxKXwwO2lmKChh
fDApIT0wKXtiQihhfDApfDB9aWYoKGR8MCkhPTApe2U9LTE7cmV0dXJuIGV8MH1kPWNbYj4+Ml18
MDtpZigoZHwwKT09MCl7ZT0xO3JldHVybiBlfDB9ZT1iQihkfDApfDA7ZD1iZCgpfDA7aWYoKGV8
MCk9PTApe2Y9KGR8MCk9PTE7Zz1mJjE7cmV0dXJuIGd8MH1iQihlfDApfDA7Zj0oZHwwKT09MTtn
PWYmMTtyZXR1cm4gZ3wwfWZ1bmN0aW9uIGpmKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wO2lmKChm
fDApPT0wfChkfDApPT0oZXwwKSl7Zz0wO3JldHVybiBnfDB9aD1lO2k9YSs4fDA7YT1kO2Q9MDtq
PTA7TDI2OTM6d2hpbGUoMSl7az1iQihjW2k+PjJdfDApfDA7bD1rYihhLGgtYXwwLGIpfDA7aWYo
KGt8MCkhPTApe2JCKGt8MCl8MH1zd2l0Y2gobHwwKXtjYXNlIDA6e209MTtuPWErMXwwO2JyZWFr
fTtjYXNlLTE6Y2FzZS0yOntnPWQ7bz0yMzQzO2JyZWFrIEwyNjkzO2JyZWFrfTtkZWZhdWx0Ontt
PWw7bj1hK2x8MH19bD1tK2R8MDtrPWorMXwwO2lmKGs+Pj4wPj1mPj4+MHwobnwwKT09KGV8MCkp
e2c9bDtvPTIzNDU7YnJlYWt9ZWxzZXthPW47ZD1sO2o9a319aWYoKG98MCk9PTIzNDUpe3JldHVy
biBnfDB9ZWxzZSBpZigob3wwKT09MjM0Myl7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBq
ZyhhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTA7Yj1jW2ErOD4+Ml18MDtkb3tpZigoYnwwKT09MCl7
ZD0xfWVsc2V7YT1iQihifDApfDA7ZT1iZCgpfDA7aWYoKGF8MCk9PTApe2Q9ZTticmVha31iQihh
fDApfDA7ZD1lfX13aGlsZSgwKTtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpoKGEsYixkLGUsZil7YT1h
fDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Y1tmPj4yXT1kO3JldHVybiAzfWZ1bmN0aW9uIGpp
KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGpqKGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9u
IGprKGEpe2E9YXwwO3JldHVybiA0fWZ1bmN0aW9uIGpsKGQsZixnLGgsaSxqLGssbCl7ZD1kfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wO2NbZz4+Ml09ZDtjW2o+PjJdPWg7ZG97aWYoKGwmMnwwKSE9MCl7aWYoKGkt
aHwwKTwzKXttPTE7cmV0dXJuIG18MH1lbHNle2Nbaj4+Ml09aCsxO2FbaF09LTE3O2Q9Y1tqPj4y
XXwwO2Nbaj4+Ml09ZCsxO2FbZF09LTY5O2Q9Y1tqPj4yXXwwO2Nbaj4+Ml09ZCsxO2FbZF09LTY1
O2JyZWFrfX19d2hpbGUoMCk7aD1mO2w9Y1tnPj4yXXwwO2lmKGw+Pj4wPj1mPj4+MCl7bT0wO3Jl
dHVybiBtfDB9ZD1pO2k9bDtMMjcyNzp3aGlsZSgxKXtsPWJbaT4+MV18MDtuPWwmNjU1MzU7aWYo
bj4+PjA+az4+PjApe209MjtvPTIzOTk7YnJlYWt9ZG97aWYoKGwmNjU1MzUpPDEyOCl7cD1jW2o+
PjJdfDA7aWYoKGQtcHwwKTwxKXttPTE7bz0yMzg4O2JyZWFrIEwyNzI3fWNbaj4+Ml09cCsxO2Fb
cF09bCYyNTV9ZWxzZXtpZigobCY2NTUzNSk8MjA0OCl7cD1jW2o+PjJdfDA7aWYoKGQtcHwwKTwy
KXttPTE7bz0yMzg5O2JyZWFrIEwyNzI3fWNbaj4+Ml09cCsxO2FbcF09KG4+Pj42fDE5MikmMjU1
O3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCsxO2FbcF09KG4mNjN8MTI4KSYyNTU7YnJlYWt9aWYoKGwm
NjU1MzUpPDU1Mjk2KXtwPWNbaj4+Ml18MDtpZigoZC1wfDApPDMpe209MTtvPTIzOTc7YnJlYWsg
TDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT0obj4+PjEyfDIyNCkmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+
Ml09cCsxO2FbcF09KG4+Pj42JjYzfDEyOCkmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCsxO2Fb
cF09KG4mNjN8MTI4KSYyNTU7YnJlYWt9aWYoKGwmNjU1MzUpPj01NjMyMCl7aWYoKGwmNjU1MzUp
PDU3MzQ0KXttPTI7bz0yMzkzO2JyZWFrIEwyNzI3fXA9Y1tqPj4yXXwwO2lmKChkLXB8MCk8Myl7
bT0xO289MjM5NDticmVhayBMMjcyN31jW2o+PjJdPXArMTthW3BdPShuPj4+MTJ8MjI0KSYyNTU7
cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtwXT0obj4+PjYmNjN8MTI4KSYyNTU7cD1jW2o+PjJd
fDA7Y1tqPj4yXT1wKzE7YVtwXT0obiY2M3wxMjgpJjI1NTticmVha31pZigoaC1pfDApPDQpe209
MTtvPTIzOTE7YnJlYWsgTDI3Mjd9cD1pKzJ8MDtxPWVbcD4+MV18MDtpZigocSY2NDUxMnwwKSE9
NTYzMjApe209MjtvPTIzOTI7YnJlYWsgTDI3Mjd9aWYoKGQtKGNbaj4+Ml18MCl8MCk8NCl7bT0x
O289MjM5ODticmVhayBMMjcyN31yPW4mOTYwO2lmKCgocjw8MTApKzY1NTM2fG48PDEwJjY0NTEy
fHEmMTAyMyk+Pj4wPms+Pj4wKXttPTI7bz0yNDAwO2JyZWFrIEwyNzI3fWNbZz4+Ml09cDtwPShy
Pj4+NikrMXwwO3I9Y1tqPj4yXXwwO2Nbaj4+Ml09cisxO2Fbcl09KHA+Pj4yfDI0MCkmMjU1O3I9
Y1tqPj4yXXwwO2Nbaj4+Ml09cisxO2Fbcl09KG4+Pj4yJjE1fHA8PDQmNDh8MTI4KSYyNTU7cD1j
W2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtwXT0objw8NCY0OHxxPj4+NiYxNXwxMjgpJjI1NTtwPWNb
aj4+Ml18MDtjW2o+PjJdPXArMTthW3BdPShxJjYzfDEyOCkmMjU1fX13aGlsZSgwKTtuPShjW2c+
PjJdfDApKzJ8MDtjW2c+PjJdPW47aWYobj4+PjA8Zj4+PjApe2k9bn1lbHNle209MDtvPTIzOTU7
YnJlYWt9fWlmKChvfDApPT0yMzg5KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTMpe3Jl
dHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5NCl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0y
NDAwKXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzODgpe3JldHVybiBtfDB9ZWxzZSBpZigo
b3wwKT09MjM5MSl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzkyKXtyZXR1cm4gbXwwfWVs
c2UgaWYoKG98MCk9PTIzOTUpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5Nyl7cmV0dXJu
IG18MH1lbHNlIGlmKChvfDApPT0yMzk4KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTkp
e3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rpb24gam0oZSxmLGcsaCxpLGosayxsKXtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wO2NbZz4+Ml09ZTtjW2o+PjJd
PWg7aD1jW2c+PjJdfDA7ZG97aWYoKGwmNHwwKT09MCl7bT1ofWVsc2V7aWYoKGYtaHwwKTw9Mil7
bT1oO2JyZWFrfWlmKChhW2hdfDApIT0tMTcpe209aDticmVha31pZigoYVtoKzF8MF18MCkhPS02
OSl7bT1oO2JyZWFrfWlmKChhW2grMnwwXXwwKSE9LTY1KXttPWg7YnJlYWt9ZT1oKzN8MDtjW2c+
PjJdPWU7bT1lfX13aGlsZSgwKTtMMjc3Mjpkb3tpZihtPj4+MDxmPj4+MCl7aD1mO2w9aTtlPWNb
aj4+Ml18MDtuPW07TDI3NzQ6d2hpbGUoMSl7aWYoZT4+PjA+PWk+Pj4wKXtvPW47YnJlYWsgTDI3
NzJ9cD1hW25dfDA7cT1wJjI1NTtpZihxPj4+MD5rPj4+MCl7cj0yO3M9MjQ0NDticmVha31kb3tp
ZihwPDwyND4+MjQ+LTEpe2JbZT4+MV09cCYyNTU7Y1tnPj4yXT0oY1tnPj4yXXwwKSsxfWVsc2V7
aWYoKHAmMjU1KTwxOTQpe3I9MjtzPTI0NTM7YnJlYWsgTDI3NzR9aWYoKHAmMjU1KTwyMjQpe2lm
KChoLW58MCk8Mil7cj0xO3M9MjQ1NDticmVhayBMMjc3NH10PWRbbisxfDBdfDA7aWYoKHQmMTky
fDApIT0xMjgpe3I9MjtzPTI0NTU7YnJlYWsgTDI3NzR9dT10JjYzfHE8PDYmMTk4NDtpZih1Pj4+
MD5rPj4+MCl7cj0yO3M9MjQ1NjticmVhayBMMjc3NH1iW2U+PjFdPXUmNjU1MzU7Y1tnPj4yXT0o
Y1tnPj4yXXwwKSsyO2JyZWFrfWlmKChwJjI1NSk8MjQwKXtpZigoaC1ufDApPDMpe3I9MTtzPTI0
NTc7YnJlYWsgTDI3NzR9dT1hW24rMXwwXXwwO3N3aXRjaChxfDApe2Nhc2UgMjI0OntpZigodSYt
MzIpPDwyND4+MjQhPS05Nil7cj0yO3M9MjQ1MDticmVhayBMMjc3NH1icmVha307Y2FzZSAyMzc6
e2lmKCh1Ji0zMik8PDI0Pj4yNCE9LTEyOCl7cj0yO3M9MjQ1MjticmVhayBMMjc3NH1icmVha307
ZGVmYXVsdDp7aWYoKHUmLTY0KTw8MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDYyO2JyZWFrIEwyNzc0
fX19dD1kW24rMnwwXXwwO2lmKCh0JjE5MnwwKSE9MTI4KXtyPTI7cz0yNDQzO2JyZWFrIEwyNzc0
fXY9KHUmMjU1KTw8NiY0MDMyfHE8PDEyfHQmNjM7aWYoKHYmNjU1MzUpPj4+MD5rPj4+MCl7cj0y
O3M9MjQ0MjticmVhayBMMjc3NH1iW2U+PjFdPXYmNjU1MzU7Y1tnPj4yXT0oY1tnPj4yXXwwKSsz
O2JyZWFrfWlmKChwJjI1NSk+PTI0NSl7cj0yO3M9MjQ0NzticmVhayBMMjc3NH1pZigoaC1ufDAp
PDQpe3I9MTtzPTI0NTg7YnJlYWsgTDI3NzR9dj1hW24rMXwwXXwwO3N3aXRjaChxfDApe2Nhc2Ug
MjQwOntpZigodisxMTImMjU1KT49NDgpe3I9MjtzPTI0NDg7YnJlYWsgTDI3NzR9YnJlYWt9O2Nh
c2UgMjQ0OntpZigodiYtMTYpPDwyND4+MjQhPS0xMjgpe3I9MjtzPTI0NTk7YnJlYWsgTDI3NzR9
YnJlYWt9O2RlZmF1bHQ6e2lmKCh2Ji02NCk8PDI0Pj4yNCE9LTEyOCl7cj0yO3M9MjQ2MDticmVh
ayBMMjc3NH19fXQ9ZFtuKzJ8MF18MDtpZigodCYxOTJ8MCkhPTEyOCl7cj0yO3M9MjQ2MTticmVh
ayBMMjc3NH11PWRbbiszfDBdfDA7aWYoKHUmMTkyfDApIT0xMjgpe3I9MjtzPTI0NDk7YnJlYWsg
TDI3NzR9aWYoKGwtZXwwKTw0KXtyPTE7cz0yNDQ1O2JyZWFrIEwyNzc0fXc9cSY3O3g9diYyNTU7
dj10PDw2O3k9dSY2MztpZigoeDw8MTImMjU4MDQ4fHc8PDE4fHYmNDAzMnx5KT4+PjA+az4+PjAp
e3I9MjtzPTI0NDY7YnJlYWsgTDI3NzR9YltlPj4xXT0oeDw8MiY2MHx0Pj4+NCYzfCgoeD4+PjQm
M3x3PDwyKTw8NikrMTYzMjB8NTUyOTYpJjY1NTM1O3c9KGNbaj4+Ml18MCkrMnwwO2Nbaj4+Ml09
dztiW3c+PjFdPSh5fHYmOTYwfDU2MzIwKSY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDApKzR9fXdo
aWxlKDApO3E9KGNbaj4+Ml18MCkrMnwwO2Nbaj4+Ml09cTtwPWNbZz4+Ml18MDtpZihwPj4+MDxm
Pj4+MCl7ZT1xO249cH1lbHNle289cDticmVhayBMMjc3Mn19aWYoKHN8MCk9PTI0NDIpe3JldHVy
biByfDB9ZWxzZSBpZigoc3wwKT09MjQ0Myl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ0
KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDgpe3JldHVybiByfDB9ZWxzZSBpZigoc3ww
KT09MjQ0OSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDUwKXtyZXR1cm4gcnwwfWVsc2Ug
aWYoKHN8MCk9PTI0NDUpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ0Nil7cmV0dXJuIHJ8
MH1lbHNlIGlmKChzfDApPT0yNDQ3KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTYpe3Jl
dHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1Nyl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0y
NDU4KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTkpe3JldHVybiByfDB9ZWxzZSBpZigo
c3wwKT09MjQ2MCl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDYxKXtyZXR1cm4gcnwwfWVs
c2UgaWYoKHN8MCk9PTI0NjIpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1Mil7cmV0dXJu
IHJ8MH1lbHNlIGlmKChzfDApPT0yNDUzKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTQp
e3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1NSl7cmV0dXJuIHJ8MH19ZWxzZXtvPW19fXdo
aWxlKDApO3I9bz4+PjA8Zj4+PjB8MDtyZXR1cm4gcnwwfWZ1bmN0aW9uIGpuKGIsYyxlLGYsZyl7
Yj1ifDA7Yz1jfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wO2Rve2lmKChnJjR8MCk9PTApe2g9
Yn1lbHNle2lmKChjLWJ8MCk8PTIpe2g9YjticmVha31pZigoYVtiXXwwKSE9LTE3KXtoPWI7YnJl
YWt9aWYoKGFbYisxfDBdfDApIT0tNjkpe2g9YjticmVha31oPShhW2IrMnwwXXwwKT09LTY1P2Ir
M3wwOmJ9fXdoaWxlKDApO0wyODQxOmRve2lmKGg+Pj4wPGM+Pj4wJihlfDApIT0wKXtnPWM7aT0w
O2o9aDtMMjg0Mzp3aGlsZSgxKXtrPWFbal18MDtsPWsmMjU1O2lmKGw+Pj4wPmY+Pj4wKXttPWo7
YnJlYWsgTDI4NDF9ZG97aWYoazw8MjQ+PjI0Pi0xKXtuPWorMXwwO289aX1lbHNle2lmKChrJjI1
NSk8MTk0KXttPWo7YnJlYWsgTDI4NDF9aWYoKGsmMjU1KTwyMjQpe2lmKChnLWp8MCk8Mil7bT1q
O2JyZWFrIEwyODQxfXA9ZFtqKzF8MF18MDtpZigocCYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwy
ODQxfWlmKChwJjYzfGw8PDYmMTk4NCk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDI4NDF9bj1qKzJ8
MDtvPWk7YnJlYWt9aWYoKGsmMjU1KTwyNDApe3E9ajtpZigoZy1xfDApPDMpe209ajticmVhayBM
Mjg0MX1wPWFbaisxfDBdfDA7c3dpdGNoKGx8MCl7Y2FzZSAyMjQ6e2lmKChwJi0zMik8PDI0Pj4y
NCE9LTk2KXtyPTI0ODM7YnJlYWsgTDI4NDN9YnJlYWt9O2Nhc2UgMjM3OntpZigocCYtMzIpPDwy
ND4+MjQhPS0xMjgpe3I9MjQ4NTticmVhayBMMjg0M31icmVha307ZGVmYXVsdDp7aWYoKHAmLTY0
KTw8MjQ+PjI0IT0tMTI4KXtyPTI0ODc7YnJlYWsgTDI4NDN9fX1zPWRbaisyfDBdfDA7aWYoKHMm
MTkyfDApIT0xMjgpe209ajticmVhayBMMjg0MX1pZigoKHAmMjU1KTw8NiY0MDMyfGw8PDEyJjYx
NDQwfHMmNjMpPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwyODQxfW49aiszfDA7bz1pO2JyZWFrfWlm
KChrJjI1NSk+PTI0NSl7bT1qO2JyZWFrIEwyODQxfXQ9ajtpZigoZy10fDApPDQpe209ajticmVh
ayBMMjg0MX1pZigoZS1pfDApPj4+MDwyKXttPWo7YnJlYWsgTDI4NDF9cz1hW2orMXwwXXwwO3N3
aXRjaChsfDApe2Nhc2UgMjQwOntpZigocysxMTImMjU1KT49NDgpe3I9MjQ5NjticmVhayBMMjg0
M31icmVha307Y2FzZSAyNDQ6e2lmKChzJi0xNik8PDI0Pj4yNCE9LTEyOCl7cj0yNDk4O2JyZWFr
IEwyODQzfWJyZWFrfTtkZWZhdWx0OntpZigocyYtNjQpPDwyND4+MjQhPS0xMjgpe3I9MjUwMDti
cmVhayBMMjg0M319fXA9ZFtqKzJ8MF18MDtpZigocCYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwy
ODQxfXU9ZFtqKzN8MF18MDtpZigodSYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwyODQxfWlmKCgo
cyYyNTUpPDwxMiYyNTgwNDh8bDw8MTgmMTgzNTAwOHxwPDw2JjQwMzJ8dSY2Myk+Pj4wPmY+Pj4w
KXttPWo7YnJlYWsgTDI4NDF9bj1qKzR8MDtvPWkrMXwwfX13aGlsZSgwKTtsPW8rMXwwO2lmKG4+
Pj4wPGM+Pj4wJmw+Pj4wPGU+Pj4wKXtpPWw7aj1ufWVsc2V7bT1uO2JyZWFrIEwyODQxfX1pZigo
cnwwKT09MjUwMCl7dj10LWJ8MDtyZXR1cm4gdnwwfWVsc2UgaWYoKHJ8MCk9PTI0OTYpe3Y9dC1i
fDA7cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDApPT0yNDk4KXt2PXQtYnwwO3JldHVybiB2fDB9ZWxz
ZSBpZigocnwwKT09MjQ4Myl7dj1xLWJ8MDtyZXR1cm4gdnwwfWVsc2UgaWYoKHJ8MCk9PTI0ODUp
e3Y9cS1ifDA7cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDApPT0yNDg3KXt2PXEtYnwwO3JldHVybiB2
fDB9fWVsc2V7bT1ofX13aGlsZSgwKTt2PW0tYnwwO3JldHVybiB2fDB9ZnVuY3Rpb24gam8oYSxi
LGQsZSxmLGcsaCxqKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtq
PWp8MDt2YXIgaz0wLGw9MDtiPWk7aT1pKzE2fDA7YT1ifDA7az1iKzh8MDtjW2E+PjJdPWQ7Y1tr
Pj4yXT1nO2w9am0oZCxlLGEsZyxoLGssMTExNDExMSwwKXwwO2NbZj4+Ml09ZCsoKGNbYT4+Ml18
MCktZCk7Y1tqPj4yXT1nKygoY1trPj4yXXwwKS1nPj4xPDwxKTtpPWI7cmV0dXJuIGx8MH1mdW5j
dGlvbiBqcChhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO3JldHVybiBq
bihjLGQsZSwxMTE0MTExLDApfDB9ZnVuY3Rpb24ganEoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24ganIoYSxiLGQsZSxmLGcsaCxqKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MDtiPWk7aT1pKzE2fDA7YT1ifDA7
az1iKzh8MDtjW2E+PjJdPWQ7Y1trPj4yXT1nO2w9ancoZCxlLGEsZyxoLGssMTExNDExMSwwKXww
O2NbZj4+Ml09ZCsoKGNbYT4+Ml18MCktZD4+Mjw8Mik7Y1tqPj4yXT1nKygoY1trPj4yXXwwKS1n
KTtpPWI7cmV0dXJuIGx8MH1mdW5jdGlvbiBqcyhhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO2NbZj4+Ml09ZDtyZXR1cm4gM31mdW5jdGlvbiBqdChhKXthPWF8MDtyZXR1
cm4gMH1mdW5jdGlvbiBqdShhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBqdihhKXthPWF8MDty
ZXR1cm4gNH1mdW5jdGlvbiBqdyhiLGQsZSxmLGcsaCxpLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTA7Y1tlPj4yXT1i
O2NbaD4+Ml09Zjtkb3tpZigoaiYyfDApIT0wKXtpZigoZy1mfDApPDMpe2s9MTtyZXR1cm4ga3ww
fWVsc2V7Y1toPj4yXT1mKzE7YVtmXT0tMTc7Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0t
Njk7Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0tNjU7YnJlYWt9fX13aGlsZSgwKTtmPWNb
ZT4+Ml18MDtpZihmPj4+MD49ZD4+PjApe2s9MDtyZXR1cm4ga3wwfWo9ZztnPWY7TDI5MTI6d2hp
bGUoMSl7Zj1jW2c+PjJdfDA7aWYoKGYmLTIwNDh8MCk9PTU1Mjk2fGY+Pj4wPmk+Pj4wKXtrPTI7
bD0yNTQ4O2JyZWFrfWRve2lmKGY+Pj4wPDEyOCl7Yj1jW2g+PjJdfDA7aWYoKGotYnwwKTwxKXtr
PTE7bD0yNTQ0O2JyZWFrIEwyOTEyfWNbaD4+Ml09YisxO2FbYl09ZiYyNTV9ZWxzZXtpZihmPj4+
MDwyMDQ4KXtiPWNbaD4+Ml18MDtpZigoai1ifDApPDIpe2s9MTtsPTI1NDc7YnJlYWsgTDI5MTJ9
Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjZ8MTkyKSYyNTU7Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7
YVtiXT0oZiY2M3wxMjgpJjI1NTticmVha31iPWNbaD4+Ml18MDttPWotYnwwO2lmKGY+Pj4wPDY1
NTM2KXtpZigobXwwKTwzKXtrPTE7bD0yNTQ5O2JyZWFrIEwyOTEyfWNbaD4+Ml09YisxO2FbYl09
KGY+Pj4xMnwyMjQpJjI1NTtuPWNbaD4+Ml18MDtjW2g+PjJdPW4rMTthW25dPShmPj4+NiY2M3wx
MjgpJjI1NTtuPWNbaD4+Ml18MDtjW2g+PjJdPW4rMTthW25dPShmJjYzfDEyOCkmMjU1O2JyZWFr
fWVsc2V7aWYoKG18MCk8NCl7az0xO2w9MjU0MjticmVhayBMMjkxMn1jW2g+PjJdPWIrMTthW2Jd
PShmPj4+MTh8MjQwKSYyNTU7Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjEyJjYz
fDEyOCkmMjU1O2I9Y1toPj4yXXwwO2NbaD4+Ml09YisxO2FbYl09KGY+Pj42JjYzfDEyOCkmMjU1
O2I9Y1toPj4yXXwwO2NbaD4+Ml09YisxO2FbYl09KGYmNjN8MTI4KSYyNTU7YnJlYWt9fX13aGls
ZSgwKTtmPShjW2U+PjJdfDApKzR8MDtjW2U+PjJdPWY7aWYoZj4+PjA8ZD4+PjApe2c9Zn1lbHNl
e2s9MDtsPTI1NDM7YnJlYWt9fWlmKChsfDApPT0yNTQzKXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8
MCk9PTI1NDIpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0NCl7cmV0dXJuIGt8MH1lbHNl
IGlmKChsfDApPT0yNTQ4KXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8MCk9PTI1NDkpe3JldHVybiBr
fDB9ZWxzZSBpZigobHwwKT09MjU0Nyl7cmV0dXJuIGt8MH1yZXR1cm4gMH1mdW5jdGlvbiBqeChi
LGUsZixnLGgsaSxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anww
O2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7Y1tmPj4y
XT1iO2NbaT4+Ml09ZztnPWNbZj4+Ml18MDtkb3tpZigoayY0fDApPT0wKXtsPWd9ZWxzZXtpZigo
ZS1nfDApPD0yKXtsPWc7YnJlYWt9aWYoKGFbZ118MCkhPS0xNyl7bD1nO2JyZWFrfWlmKChhW2cr
MXwwXXwwKSE9LTY5KXtsPWc7YnJlYWt9aWYoKGFbZysyfDBdfDApIT0tNjUpe2w9ZzticmVha31i
PWcrM3wwO2NbZj4+Ml09YjtsPWJ9fXdoaWxlKDApO0wyOTQ0OmRve2lmKGw+Pj4wPGU+Pj4wKXtn
PWU7az1jW2k+PjJdfDA7Yj1sO0wyOTQ2OndoaWxlKDEpe2lmKGs+Pj4wPj1oPj4+MCl7bT1iO2Jy
ZWFrIEwyOTQ0fW49YVtiXXwwO289biYyNTU7ZG97aWYobjw8MjQ+PjI0Pi0xKXtpZihvPj4+MD5q
Pj4+MCl7cD0yO3E9MjYwOTticmVhayBMMjk0Nn1jW2s+PjJdPW87Y1tmPj4yXT0oY1tmPj4yXXww
KSsxfWVsc2V7aWYoKG4mMjU1KTwxOTQpe3A9MjtxPTI2MDI7YnJlYWsgTDI5NDZ9aWYoKG4mMjU1
KTwyMjQpe2lmKChnLWJ8MCk8Mil7cD0xO3E9MjYwNTticmVhayBMMjk0Nn1yPWRbYisxfDBdfDA7
aWYoKHImMTkyfDApIT0xMjgpe3A9MjtxPTI1OTg7YnJlYWsgTDI5NDZ9cz1yJjYzfG88PDYmMTk4
NDtpZihzPj4+MD5qPj4+MCl7cD0yO3E9MjYwNDticmVhayBMMjk0Nn1jW2s+PjJdPXM7Y1tmPj4y
XT0oY1tmPj4yXXwwKSsyO2JyZWFrfWlmKChuJjI1NSk8MjQwKXtpZigoZy1ifDApPDMpe3A9MTtx
PTI2MDY7YnJlYWsgTDI5NDZ9cz1hW2IrMXwwXXwwO3N3aXRjaChvfDApe2Nhc2UgMjI0OntpZigo
cyYtMzIpPDwyND4+MjQhPS05Nil7cD0yO3E9MjU5MTticmVhayBMMjk0Nn1icmVha307Y2FzZSAy
Mzc6e2lmKChzJi0zMik8PDI0Pj4yNCE9LTEyOCl7cD0yO3E9MjU5MzticmVhayBMMjk0Nn1icmVh
a307ZGVmYXVsdDp7aWYoKHMmLTY0KTw8MjQ+PjI0IT0tMTI4KXtwPTI7cT0yNjAzO2JyZWFrIEwy
OTQ2fX19cj1kW2IrMnwwXXwwO2lmKChyJjE5MnwwKSE9MTI4KXtwPTI7cT0yNTk0O2JyZWFrIEwy
OTQ2fXQ9KHMmMjU1KTw8NiY0MDMyfG88PDEyJjYxNDQwfHImNjM7aWYodD4+PjA+aj4+PjApe3A9
MjtxPTI1OTI7YnJlYWsgTDI5NDZ9Y1trPj4yXT10O2NbZj4+Ml09KGNbZj4+Ml18MCkrMzticmVh
a31pZigobiYyNTUpPj0yNDUpe3A9MjtxPTI2MDc7YnJlYWsgTDI5NDZ9aWYoKGctYnwwKTw0KXtw
PTE7cT0yNjA4O2JyZWFrIEwyOTQ2fXQ9YVtiKzF8MF18MDtzd2l0Y2gob3wwKXtjYXNlIDI0MDp7
aWYoKHQrMTEyJjI1NSk+PTQ4KXtwPTI7cT0yNTkwO2JyZWFrIEwyOTQ2fWJyZWFrfTtjYXNlIDI0
NDp7aWYoKHQmLTE2KTw8MjQ+PjI0IT0tMTI4KXtwPTI7cT0yNTk2O2JyZWFrIEwyOTQ2fWJyZWFr
fTtkZWZhdWx0OntpZigodCYtNjQpPDwyND4+MjQhPS0xMjgpe3A9MjtxPTI1OTc7YnJlYWsgTDI5
NDZ9fX1yPWRbYisyfDBdfDA7aWYoKHImMTkyfDApIT0xMjgpe3A9MjtxPTI1OTk7YnJlYWsgTDI5
NDZ9cz1kW2IrM3wwXXwwO2lmKChzJjE5MnwwKSE9MTI4KXtwPTI7cT0yNjAxO2JyZWFrIEwyOTQ2
fXU9KHQmMjU1KTw8MTImMjU4MDQ4fG88PDE4JjE4MzUwMDh8cjw8NiY0MDMyfHMmNjM7aWYodT4+
PjA+aj4+PjApe3A9MjtxPTI2MDA7YnJlYWsgTDI5NDZ9Y1trPj4yXT11O2NbZj4+Ml09KGNbZj4+
Ml18MCkrNH19d2hpbGUoMCk7bz0oY1tpPj4yXXwwKSs0fDA7Y1tpPj4yXT1vO249Y1tmPj4yXXww
O2lmKG4+Pj4wPGU+Pj4wKXtrPW87Yj1ufWVsc2V7bT1uO2JyZWFrIEwyOTQ0fX1pZigocXwwKT09
MjU5Nyl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTk4KXtyZXR1cm4gcHwwfWVsc2UgaWYo
KHF8MCk9PTI1OTkpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwMCl7cmV0dXJuIHB8MH1l
bHNlIGlmKChxfDApPT0yNTkzKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTQpe3JldHVy
biBwfDB9ZWxzZSBpZigocXwwKT09MjU5Nil7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA1
KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDYpe3JldHVybiBwfDB9ZWxzZSBpZigocXww
KT09MjYwNyl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA4KXtyZXR1cm4gcHwwfWVsc2Ug
aWYoKHF8MCk9PTI2MDkpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5MCl7cmV0dXJuIHB8
MH1lbHNlIGlmKChxfDApPT0yNTkxKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTIpe3Jl
dHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwMSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0y
NjAyKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDMpe3JldHVybiBwfDB9ZWxzZSBpZigo
cXwwKT09MjYwNCl7cmV0dXJuIHB8MH19ZWxzZXttPWx9fXdoaWxlKDApO3A9bT4+PjA8ZT4+PjB8
MDtyZXR1cm4gcHwwfWZ1bmN0aW9uIGp5KGIsYyxlLGYsZyl7Yj1ifDA7Yz1jfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTA7ZG97aWYoKGcmNHwwKT09MCl7aD1ifWVsc2V7aWYoKGMtYnwwKTw9Mil7aD1i
O2JyZWFrfWlmKChhW2JdfDApIT0tMTcpe2g9YjticmVha31pZigoYVtiKzF8MF18MCkhPS02OSl7
aD1iO2JyZWFrfWg9KGFbYisyfDBdfDApPT0tNjU/YiszfDA6Yn19d2hpbGUoMCk7TDMwMTE6ZG97
aWYoaD4+PjA8Yz4+PjAmKGV8MCkhPTApe2c9YztpPTE7aj1oO0wzMDEzOndoaWxlKDEpe2s9YVtq
XXwwO2w9ayYyNTU7ZG97aWYoazw8MjQ+PjI0Pi0xKXtpZihsPj4+MD5mPj4+MCl7bT1qO2JyZWFr
IEwzMDExfW49aisxfDB9ZWxzZXtpZigoayYyNTUpPDE5NCl7bT1qO2JyZWFrIEwzMDExfWlmKChr
JjI1NSk8MjI0KXtpZigoZy1qfDApPDIpe209ajticmVhayBMMzAxMX1vPWRbaisxfDBdfDA7aWYo
KG8mMTkyfDApIT0xMjgpe209ajticmVhayBMMzAxMX1pZigobyY2M3xsPDw2JjE5ODQpPj4+MD5m
Pj4+MCl7bT1qO2JyZWFrIEwzMDExfW49aisyfDA7YnJlYWt9aWYoKGsmMjU1KTwyNDApe3A9ajtp
ZigoZy1wfDApPDMpe209ajticmVhayBMMzAxMX1vPWFbaisxfDBdfDA7c3dpdGNoKGx8MCl7Y2Fz
ZSAyMjQ6e2lmKChvJi0zMik8PDI0Pj4yNCE9LTk2KXtxPTI2MzA7YnJlYWsgTDMwMTN9YnJlYWt9
O2Nhc2UgMjM3OntpZigobyYtMzIpPDwyND4+MjQhPS0xMjgpe3E9MjYzMjticmVhayBMMzAxM31i
cmVha307ZGVmYXVsdDp7aWYoKG8mLTY0KTw8MjQ+PjI0IT0tMTI4KXtxPTI2MzQ7YnJlYWsgTDMw
MTN9fX1yPWRbaisyfDBdfDA7aWYoKHImMTkyfDApIT0xMjgpe209ajticmVhayBMMzAxMX1pZigo
KG8mMjU1KTw8NiY0MDMyfGw8PDEyJjYxNDQwfHImNjMpPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwz
MDExfW49aiszfDA7YnJlYWt9aWYoKGsmMjU1KT49MjQ1KXttPWo7YnJlYWsgTDMwMTF9cz1qO2lm
KChnLXN8MCk8NCl7bT1qO2JyZWFrIEwzMDExfXI9YVtqKzF8MF18MDtzd2l0Y2gobHwwKXtjYXNl
IDI0MDp7aWYoKHIrMTEyJjI1NSk+PTQ4KXtxPTI2NDI7YnJlYWsgTDMwMTN9YnJlYWt9O2Nhc2Ug
MjQ0OntpZigociYtMTYpPDwyND4+MjQhPS0xMjgpe3E9MjY0NDticmVhayBMMzAxM31icmVha307
ZGVmYXVsdDp7aWYoKHImLTY0KTw8MjQ+PjI0IT0tMTI4KXtxPTI2NDY7YnJlYWsgTDMwMTN9fX1v
PWRbaisyfDBdfDA7aWYoKG8mMTkyfDApIT0xMjgpe209ajticmVhayBMMzAxMX10PWRbaiszfDBd
fDA7aWYoKHQmMTkyfDApIT0xMjgpe209ajticmVhayBMMzAxMX1pZigoKHImMjU1KTw8MTImMjU4
MDQ4fGw8PDE4JjE4MzUwMDh8bzw8NiY0MDMyfHQmNjMpPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwz
MDExfW49ais0fDB9fXdoaWxlKDApO2lmKCEobj4+PjA8Yz4+PjAmaT4+PjA8ZT4+PjApKXttPW47
YnJlYWsgTDMwMTF9aT1pKzF8MDtqPW59aWYoKHF8MCk9PTI2NDQpe3U9cy1ifDA7cmV0dXJuIHV8
MH1lbHNlIGlmKChxfDApPT0yNjQyKXt1PXMtYnwwO3JldHVybiB1fDB9ZWxzZSBpZigocXwwKT09
MjYzMCl7dT1wLWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYoKHF8MCk9PTI2MzIpe3U9cC1ifDA7cmV0
dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjM0KXt1PXAtYnwwO3JldHVybiB1fDB9ZWxzZSBpZigo
cXwwKT09MjY0Nil7dT1zLWJ8MDtyZXR1cm4gdXwwfX1lbHNle209aH19d2hpbGUoMCk7dT1tLWJ8
MDtyZXR1cm4gdXwwfWZ1bmN0aW9uIGp6KGIpe2I9YnwwO3JldHVybiBhW2IrOHwwXXwwfWZ1bmN0
aW9uIGpBKGEpe2E9YXwwO3JldHVybiBjW2ErOD4+Ml18MH1mdW5jdGlvbiBqQihiKXtiPWJ8MDty
ZXR1cm4gYVtiKzl8MF18MH1mdW5jdGlvbiBqQyhhKXthPWF8MDtyZXR1cm4gY1thKzEyPj4yXXww
fWZ1bmN0aW9uIGpEKGEsYixkLGUsZixnLGgsail7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTA7Yj1pO2k9aSsxNnwwO2E9YnwwO2s9Yis4
fDA7Y1thPj4yXT1kO2Nbaz4+Ml09ZztsPWp4KGQsZSxhLGcsaCxrLDExMTQxMTEsMCl8MDtjW2Y+
PjJdPWQrKChjW2E+PjJdfDApLWQpO2Nbaj4+Ml09ZysoKGNbaz4+Ml18MCktZz4+Mjw8Mik7aT1i
O3JldHVybiBsfDB9ZnVuY3Rpb24gakUoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8
MDtlPWV8MDtyZXR1cm4gankoYyxkLGUsMTExNDExMSwwKXwwfWZ1bmN0aW9uIGpGKGEpe2E9YXww
O2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGpHKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7
cmV0dXJufWZ1bmN0aW9uIGpIKGEpe2E9YXwwO2NbYT4+Ml09MzAzMjtkUChhKzEyfDApO2RlKGF8
MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGpJKGEpe2E9YXwwO2NbYT4+Ml09MzAzMjtkUChhKzEy
fDApO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGpKKGEpe2E9YXwwO2NbYT4+Ml09Mjk4NDtkUChh
KzE2fDApO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGpLKGEpe2E9YXwwO2NbYT4+Ml09
Mjk4NDtkUChhKzE2fDApO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGpMKGEsYil7YT1hfDA7Yj1i
fDA7ZFkoYSxiKzEyfDApO3JldHVybn1mdW5jdGlvbiBqTShhLGIpe2E9YXwwO2I9YnwwO2RZKGEs
YisxNnwwKTtyZXR1cm59ZnVuY3Rpb24gak4oYSxiKXthPWF8MDtiPWJ8MDtkWihhLDEyODgsNCk7
cmV0dXJufWZ1bmN0aW9uIGpPKGEsYil7YT1hfDA7Yj1ifDA7ZXgoYSwxMjY0LGttKDEyNjQpfDAp
O3JldHVybn1mdW5jdGlvbiBqUChhLGIpe2E9YXwwO2I9YnwwO2RaKGEsMTI1Niw1KTtyZXR1cm59
ZnVuY3Rpb24galEoYSxiKXthPWF8MDtiPWJ8MDtleChhLDEyMzIsa20oMTIzMil8MCk7cmV0dXJu
fWZ1bmN0aW9uIGpSKGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYzNTJdfDApIT0wKXtkPWNbMzcw
Ml18MDtyZXR1cm4gZHwwfWlmKChiYygxNjM1Mil8MCk9PTApe2Q9Y1szNzAyXXwwO3JldHVybiBk
fDB9ZG97aWYoKGFbMTYyMzJdfDApPT0wKXtpZigoYmMoMTYyMzIpfDApPT0wKXticmVha31rJCgx
MTM0NCwwLDE2OCk7YSQoMjY2LDAsdXwwKXwwfX13aGlsZSgwKTtkUSgxMTM0NCwxNTM2KXwwO2RR
KDExMzU2LDE1MjgpfDA7ZFEoMTEzNjgsMTUyMCl8MDtkUSgxMTM4MCwxNTA0KXwwO2RRKDExMzky
LDE0ODgpfDA7ZFEoMTE0MDQsMTQ4MCl8MDtkUSgxMTQxNiwxNDY0KXwwO2RRKDExNDI4LDE0NTYp
fDA7ZFEoMTE0NDAsMTQ0OCl8MDtkUSgxMTQ1MiwxNDQwKXwwO2RRKDExNDY0LDE0MzIpfDA7ZFEo
MTE0NzYsMTQwMCl8MDtkUSgxMTQ4OCwxMzkyKXwwO2RRKDExNTAwLDEzODQpfDA7Y1szNzAyXT0x
MTM0NDtkPWNbMzcwMl18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpTKGIpe2I9YnwwO3ZhciBkPTA7
aWYoKGFbMTYyOTZdfDApIT0wKXtkPWNbMzY4MF18MDtyZXR1cm4gZHwwfWlmKChiYygxNjI5Nil8
MCk9PTApe2Q9Y1szNjgwXXwwO3JldHVybiBkfDB9ZG97aWYoKGFbMTYyMDhdfDApPT0wKXtpZigo
YmMoMTYyMDgpfDApPT0wKXticmVha31rJCgxMDYwMCwwLDE2OCk7YSQoMTQ4LDAsdXwwKXwwfX13
aGlsZSgwKTtlZigxMDYwMCwxOTEyKXwwO2VmKDEwNjEyLDE4ODApfDA7ZWYoMTA2MjQsMTg0OCl8
MDtlZigxMDYzNiwxODA4KXwwO2VmKDEwNjQ4LDE3NjgpfDA7ZWYoMTA2NjAsMTczNil8MDtlZigx
MDY3MiwxNjk2KXwwO2VmKDEwNjg0LDE2ODApfDA7ZWYoMTA2OTYsMTYyNCl8MDtlZigxMDcwOCwx
NjA4KXwwO2VmKDEwNzIwLDE1OTIpfDA7ZWYoMTA3MzIsMTU3Nil8MDtlZigxMDc0NCwxNTYwKXww
O2VmKDEwNzU2LDE1NDQpfDA7Y1szNjgwXT0xMDYwMDtkPWNbMzY4MF18MDtyZXR1cm4gZHwwfWZ1
bmN0aW9uIGpUKGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYzNDRdfDApIT0wKXtkPWNbMzcwMF18
MDtyZXR1cm4gZHwwfWlmKChiYygxNjM0NCl8MCk9PTApe2Q9Y1szNzAwXXwwO3JldHVybiBkfDB9
ZG97aWYoKGFbMTYyMjRdfDApPT0wKXtpZigoYmMoMTYyMjQpfDApPT0wKXticmVha31rJCgxMTA1
NiwwLDI4OCk7YSQoMTcwLDAsdXwwKXwwfX13aGlsZSgwKTtkUSgxMTA1NiwyODgpfDA7ZFEoMTEw
NjgsMjcyKXwwO2RRKDExMDgwLDI2NCl8MDtkUSgxMTA5MiwyNTYpfDA7ZFEoMTExMDQsMjQ4KXww
O2RRKDExMTE2LDI0MCl8MDtkUSgxMTEyOCwyMzIpfDA7ZFEoMTExNDAsMjI0KXwwO2RRKDExMTUy
LDE2OCl8MDtkUSgxMTE2NCwxNjApfDA7ZFEoMTExNzYsMTQ0KXwwO2RRKDExMTg4LDEyOCl8MDtk
USgxMTIwMCwxMjApfDA7ZFEoMTEyMTIsMTEyKXwwO2RRKDExMjI0LDEwNCl8MDtkUSgxMTIzNiw5
Nil8MDtkUSgxMTI0OCwyNDgpfDA7ZFEoMTEyNjAsODgpfDA7ZFEoMTEyNzIsODApfDA7ZFEoMTEy
ODQsMTk3Nil8MDtkUSgxMTI5NiwxOTY4KXwwO2RRKDExMzA4LDE5NjApfDA7ZFEoMTEzMjAsMTk1
Mil8MDtkUSgxMTMzMiwxOTQ0KXwwO2NbMzcwMF09MTEwNTY7ZD1jWzM3MDBdfDA7cmV0dXJuIGR8
MH1mdW5jdGlvbiBqVShiKXtiPWJ8MDt2YXIgZD0wO2lmKChhWzE2Mjg4XXwwKSE9MCl7ZD1jWzM2
NzhdfDA7cmV0dXJuIGR8MH1pZigoYmMoMTYyODgpfDApPT0wKXtkPWNbMzY3OF18MDtyZXR1cm4g
ZHwwfWRve2lmKChhWzE2MjAwXXwwKT09MCl7aWYoKGJjKDE2MjAwKXwwKT09MCl7YnJlYWt9ayQo
MTAzMTIsMCwyODgpO2EkKDEyMiwwLHV8MCl8MH19d2hpbGUoMCk7ZWYoMTAzMTIsODI0KXwwO2Vm
KDEwMzI0LDc4NCl8MDtlZigxMDMzNiw3NjApfDA7ZWYoMTAzNDgsNzM2KXwwO2VmKDEwMzYwLDQy
NCl8MDtlZigxMDM3Miw3MTIpfDA7ZWYoMTAzODQsNjg4KXwwO2VmKDEwMzk2LDY1Nil8MDtlZigx
MDQwOCw2MTYpfDA7ZWYoMTA0MjAsNTg0KXwwO2VmKDEwNDMyLDU0NCl8MDtlZigxMDQ0NCw1MDQp
fDA7ZWYoMTA0NTYsNDg4KXwwO2VmKDEwNDY4LDQ3Mil8MDtlZigxMDQ4MCw0NTYpfDA7ZWYoMTA0
OTIsNDQwKXwwO2VmKDEwNTA0LDQyNCl8MDtlZigxMDUxNiw0MDgpfDA7ZWYoMTA1MjgsMzkyKXww
O2VmKDEwNTQwLDM3Nil8MDtlZigxMDU1MiwzNDQpfDA7ZWYoMTA1NjQsMzI4KXwwO2VmKDEwNTc2
LDMxMil8MDtlZigxMDU4OCwyOTYpfDA7Y1szNjc4XT0xMDMxMjtkPWNbMzY3OF18MDtyZXR1cm4g
ZHwwfWZ1bmN0aW9uIGpWKGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYzNjBdfDApIT0wKXtkPWNb
MzcwNF18MDtyZXR1cm4gZHwwfWlmKChiYygxNjM2MCl8MCk9PTApe2Q9Y1szNzA0XXwwO3JldHVy
biBkfDB9ZG97aWYoKGFbMTYyNDBdfDApPT0wKXtpZigoYmMoMTYyNDApfDApPT0wKXticmVha31r
JCgxMTUxMiwwLDI4OCk7YSQoMTIwLDAsdXwwKXwwfX13aGlsZSgwKTtkUSgxMTUxMiw4NjQpfDA7
ZFEoMTE1MjQsODU2KXwwO2NbMzcwNF09MTE1MTI7ZD1jWzM3MDRdfDA7cmV0dXJuIGR8MH1mdW5j
dGlvbiBqVyhiKXtiPWJ8MDt2YXIgZD0wO2lmKChhWzE2MzA0XXwwKSE9MCl7ZD1jWzM2ODJdfDA7
cmV0dXJuIGR8MH1pZigoYmMoMTYzMDQpfDApPT0wKXtkPWNbMzY4Ml18MDtyZXR1cm4gZHwwfWRv
e2lmKChhWzE2MjE2XXwwKT09MCl7aWYoKGJjKDE2MjE2KXwwKT09MCl7YnJlYWt9ayQoMTA3Njgs
MCwyODgpO2EkKDI0MCwwLHV8MCl8MH19d2hpbGUoMCk7ZWYoMTA3NjgsODg4KXwwO2VmKDEwNzgw
LDg3Mil8MDtjWzM2ODJdPTEwNzY4O2Q9Y1szNjgyXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galgo
Yil7Yj1ifDA7aWYoKGFbMTYzNjhdfDApIT0wKXtyZXR1cm4gMTQ4MjR9aWYoKGJjKDE2MzY4KXww
KT09MCl7cmV0dXJuIDE0ODI0fWRaKDE0ODI0LDEyMTYsOCk7YSQoMjU4LDE0ODI0LHV8MCl8MDty
ZXR1cm4gMTQ4MjR9ZnVuY3Rpb24galkoYil7Yj1ifDA7aWYoKGFbMTYzMTJdfDApIT0wKXtyZXR1
cm4gMTQ3MzZ9aWYoKGJjKDE2MzEyKXwwKT09MCl7cmV0dXJuIDE0NzM2fWV4KDE0NzM2LDExNzYs
a20oMTE3Nil8MCk7YSQoMTkyLDE0NzM2LHV8MCl8MDtyZXR1cm4gMTQ3MzZ9ZnVuY3Rpb24galoo
Yil7Yj1ifDA7aWYoKGFbMTYzOTJdfDApIT0wKXtyZXR1cm4gMTQ4NzJ9aWYoKGJjKDE2MzkyKXww
KT09MCl7cmV0dXJuIDE0ODcyfWRaKDE0ODcyLDExNDQsOCk7YSQoMjU4LDE0ODcyLHV8MCl8MDty
ZXR1cm4gMTQ4NzJ9ZnVuY3Rpb24gal8oYil7Yj1ifDA7aWYoKGFbMTYzMzZdfDApIT0wKXtyZXR1
cm4gMTQ3ODR9aWYoKGJjKDE2MzM2KXwwKT09MCl7cmV0dXJuIDE0Nzg0fWV4KDE0Nzg0LDExMDQs
a20oMTEwNCl8MCk7YSQoMTkyLDE0Nzg0LHV8MCl8MDtyZXR1cm4gMTQ3ODR9ZnVuY3Rpb24gaiQo
Yil7Yj1ifDA7aWYoKGFbMTYzODRdfDApIT0wKXtyZXR1cm4gMTQ4NTZ9aWYoKGJjKDE2Mzg0KXww
KT09MCl7cmV0dXJuIDE0ODU2fWRaKDE0ODU2LDEwODAsMjApO2EkKDI1OCwxNDg1Nix1fDApfDA7
cmV0dXJuIDE0ODU2fWZ1bmN0aW9uIGowKGIpe2I9YnwwO2lmKChhWzE2MzI4XXwwKSE9MCl7cmV0
dXJuIDE0NzY4fWlmKChiYygxNjMyOCl8MCk9PTApe3JldHVybiAxNDc2OH1leCgxNDc2OCw5OTIs
a20oOTkyKXwwKTthJCgxOTIsMTQ3NjgsdXwwKXwwO3JldHVybiAxNDc2OH1mdW5jdGlvbiBqMShi
KXtiPWJ8MDtpZigoYVsxNjM3Nl18MCkhPTApe3JldHVybiAxNDg0MH1pZigoYmMoMTYzNzYpfDAp
PT0wKXtyZXR1cm4gMTQ4NDB9ZFooMTQ4NDAsOTc2LDExKTthJCgyNTgsMTQ4NDAsdXwwKXwwO3Jl
dHVybiAxNDg0MH1mdW5jdGlvbiBqMihiKXtiPWJ8MDtpZigoYVsxNjMyMF18MCkhPTApe3JldHVy
biAxNDc1Mn1pZigoYmMoMTYzMjApfDApPT0wKXtyZXR1cm4gMTQ3NTJ9ZXgoMTQ3NTIsOTI4LGtt
KDkyOCl8MCk7YSQoMTkyLDE0NzUyLHV8MCl8MDtyZXR1cm4gMTQ3NTJ9ZnVuY3Rpb24gajMoYSl7
YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MDtiPWErNHwwO2Q9KGNbYT4+Ml18MCkrKGNbYis0Pj4y
XXwwKXwwO2E9ZDtlPWNbYj4+Ml18MDtpZigoZSYxfDApPT0wKXtmPWU7YllbZiY1MTFdKGEpO3Jl
dHVybn1lbHNle2Y9Y1soY1tkPj4yXXwwKSsoZS0xKT4+Ml18MDtiWVtmJjUxMV0oYSk7cmV0dXJu
fX1mdW5jdGlvbiBqNChhKXthPWF8MDtlZSgxMTA0NCk7ZWUoMTEwMzIpO2VlKDExMDIwKTtlZSgx
MTAwOCk7ZWUoMTA5OTYpO2VlKDEwOTg0KTtlZSgxMDk3Mik7ZWUoMTA5NjApO2VlKDEwOTQ4KTtl
ZSgxMDkzNik7ZWUoMTA5MjQpO2VlKDEwOTEyKTtlZSgxMDkwMCk7ZWUoMTA4ODgpO2VlKDEwODc2
KTtlZSgxMDg2NCk7ZWUoMTA4NTIpO2VlKDEwODQwKTtlZSgxMDgyOCk7ZWUoMTA4MTYpO2VlKDEw
ODA0KTtlZSgxMDc5Mik7ZWUoMTA3ODApO2VlKDEwNzY4KTtyZXR1cm59ZnVuY3Rpb24gajUoYixk
KXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MDtlPWIrOHwwO2Y9Yis0fDA7Zz1jW2Y+PjJdfDA7aD1jW2U+PjJdfDA7
aT1nO2lmKGgtaT4+Mj4+PjA+PWQ+Pj4wKXtqPWQ7az1nO2Rve2lmKChrfDApPT0wKXtsPTB9ZWxz
ZXtjW2s+PjJdPTA7bD1jW2Y+PjJdfDB9az1sKzR8MDtjW2Y+PjJdPWs7aj1qLTF8MDt9d2hpbGUo
KGp8MCkhPTApO3JldHVybn1qPWIrMTZ8MDtrPWJ8MDtsPWNbaz4+Ml18MDtnPWktbD4+MjtpPWcr
ZHwwO2lmKGk+Pj4wPjEwNzM3NDE4MjMpe2lyKDApfW09aC1sfDA7ZG97aWYobT4+Mj4+PjA+NTM2
ODcwOTEwKXtuPTEwNzM3NDE4MjM7bz0yOTE5fWVsc2V7bD1tPj4xO2g9bD4+PjA8aT4+PjA/aTps
O2lmKChofDApPT0wKXtwPTA7cT0wO2JyZWFrfWw9YisxMjh8MDtpZighKChhW2xdJjEpPT0wJmg+
Pj4wPDI5KSl7bj1oO289MjkxOTticmVha31hW2xdPTE7cD1qO3E9aH19d2hpbGUoMCk7aWYoKG98
MCk9PTI5MTkpe3A9a08objw8Mil8MDtxPW59bj1kO2Q9cCsoZzw8Mil8MDtkb3tpZigoZHwwKT09
MCl7cj0wfWVsc2V7Y1tkPj4yXT0wO3I9ZH1kPXIrNHwwO249bi0xfDA7fXdoaWxlKChufDApIT0w
KTtuPXArKHE8PDIpfDA7cT1jW2s+PjJdfDA7cj0oY1tmPj4yXXwwKS1xfDA7bz1wKyhnLShyPj4y
KTw8Mil8MDtnPW87cD1xO2tZKGd8MCxwfDAscil8MDtjW2s+PjJdPW87Y1tmPj4yXT1kO2NbZT4+
Ml09bjtpZigocXwwKT09MCl7cmV0dXJufWlmKChxfDApPT0oanwwKSl7YVtiKzEyOHwwXT0wO3Jl
dHVybn1lbHNle2tTKHApO3JldHVybn19ZnVuY3Rpb24gajYoYSl7YT1hfDA7ZFAoMTE3ODgpO2RQ
KDExNzc2KTtkUCgxMTc2NCk7ZFAoMTE3NTIpO2RQKDExNzQwKTtkUCgxMTcyOCk7ZFAoMTE3MTYp
O2RQKDExNzA0KTtkUCgxMTY5Mik7ZFAoMTE2ODApO2RQKDExNjY4KTtkUCgxMTY1Nik7ZFAoMTE2
NDQpO2RQKDExNjMyKTtkUCgxMTYyMCk7ZFAoMTE2MDgpO2RQKDExNTk2KTtkUCgxMTU4NCk7ZFAo
MTE1NzIpO2RQKDExNTYwKTtkUCgxMTU0OCk7ZFAoMTE1MzYpO2RQKDExNTI0KTtkUCgxMTUxMik7
cmV0dXJufWZ1bmN0aW9uIGo3KGEpe2E9YXwwO2VlKDEwNTg4KTtlZSgxMDU3Nik7ZWUoMTA1NjQp
O2VlKDEwNTUyKTtlZSgxMDU0MCk7ZWUoMTA1MjgpO2VlKDEwNTE2KTtlZSgxMDUwNCk7ZWUoMTA0
OTIpO2VlKDEwNDgwKTtlZSgxMDQ2OCk7ZWUoMTA0NTYpO2VlKDEwNDQ0KTtlZSgxMDQzMik7ZWUo
MTA0MjApO2VlKDEwNDA4KTtlZSgxMDM5Nik7ZWUoMTAzODQpO2VlKDEwMzcyKTtlZSgxMDM2MCk7
ZWUoMTAzNDgpO2VlKDEwMzM2KTtlZSgxMDMyNCk7ZWUoMTAzMTIpO3JldHVybn1mdW5jdGlvbiBq
OChhKXthPWF8MDtkUCgxMTMzMik7ZFAoMTEzMjApO2RQKDExMzA4KTtkUCgxMTI5Nik7ZFAoMTEy
ODQpO2RQKDExMjcyKTtkUCgxMTI2MCk7ZFAoMTEyNDgpO2RQKDExMjM2KTtkUCgxMTIyNCk7ZFAo
MTEyMTIpO2RQKDExMjAwKTtkUCgxMTE4OCk7ZFAoMTExNzYpO2RQKDExMTY0KTtkUCgxMTE1Mik7
ZFAoMTExNDApO2RQKDExMTI4KTtkUCgxMTExNik7ZFAoMTExMDQpO2RQKDExMDkyKTtkUCgxMTA4
MCk7ZFAoMTEwNjgpO2RQKDExMDU2KTtyZXR1cm59ZnVuY3Rpb24gajkoYSl7YT1hfDA7ZWUoMTA3
NTYpO2VlKDEwNzQ0KTtlZSgxMDczMik7ZWUoMTA3MjApO2VlKDEwNzA4KTtlZSgxMDY5Nik7ZWUo
MTA2ODQpO2VlKDEwNjcyKTtlZSgxMDY2MCk7ZWUoMTA2NDgpO2VlKDEwNjM2KTtlZSgxMDYyNCk7
ZWUoMTA2MTIpO2VlKDEwNjAwKTtyZXR1cm59ZnVuY3Rpb24ga2EoYSl7YT1hfDA7ZFAoMTE1MDAp
O2RQKDExNDg4KTtkUCgxMTQ3Nik7ZFAoMTE0NjQpO2RQKDExNDUyKTtkUCgxMTQ0MCk7ZFAoMTE0
MjgpO2RQKDExNDE2KTtkUCgxMTQwNCk7ZFAoMTEzOTIpO2RQKDExMzgwKTtkUCgxMTM2OCk7ZFAo
MTEzNTYpO2RQKDExMzQ0KTtyZXR1cm59ZnVuY3Rpb24ga2IoYSxiLGMpe2E9YXwwO2I9YnwwO2M9
Y3wwO3JldHVybiBrYygwLGEsYiwoY3wwKSE9MD9jOjk4MzIpfDB9ZnVuY3Rpb24ga2MoYixkLGUs
Zil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAsdD0wLHU9MCx2PTAsdz0wO2c9aTtpPWkrOHwwO2g9Z3wwO2NbaD4+
Ml09YjtqPSgoZnwwKT09MD85ODI0OmYpfDA7Zj1jW2o+PjJdfDA7TDc6ZG97aWYoKGR8MCk9PTAp
e2lmKChmfDApPT0wKXtrPTB9ZWxzZXticmVha31pPWc7cmV0dXJuIGt8MH1lbHNle2lmKChifDAp
PT0wKXtsPWg7Y1toPj4yXT1sO209bH1lbHNle209Yn1pZigoZXwwKT09MCl7az0tMjtpPWc7cmV0
dXJuIGt8MH1kb3tpZigoZnwwKT09MCl7bD1hW2RdfDA7bj1sJjI1NTtpZihsPDwyND4+MjQ+LTEp
e2NbbT4+Ml09bjtrPWw8PDI0Pj4yNCE9MHwwO2k9ZztyZXR1cm4ga3wwfWVsc2V7bD1uLTE5NHww
O2lmKGw+Pj4wPjUwKXticmVhayBMN31vPWQrMXwwO3A9Y1tzKyhsPDwyKT4+Ml18MDtxPWUtMXww
O2JyZWFrfX1lbHNle289ZDtwPWY7cT1lfX13aGlsZSgwKTtMMjU6ZG97aWYoKHF8MCk9PTApe3I9
cH1lbHNle2w9YVtvXXwwO249KGwmMjU1KT4+PjM7aWYoKG4tMTZ8bisocD4+MjYpKT4+PjA+Nyl7
YnJlYWsgTDd9ZWxzZXt0PW87dT1wO3Y9cTt3PWx9d2hpbGUoMSl7dD10KzF8MDt1PSh3JjI1NSkt
MTI4fHU8PDY7dj12LTF8MDtpZigodXwwKT49MCl7YnJlYWt9aWYoKHZ8MCk9PTApe3I9dTticmVh
ayBMMjV9dz1hW3RdfDA7aWYoKCh3JjI1NSktMTI4fDApPj4+MD42Myl7YnJlYWsgTDd9fWNbaj4+
Ml09MDtjW20+PjJdPXU7az1lLXZ8MDtpPWc7cmV0dXJuIGt8MH19d2hpbGUoMCk7Y1tqPj4yXT1y
O2s9LTI7aT1nO3JldHVybiBrfDB9fXdoaWxlKDApO2Nbaj4+Ml09MDtjWyhidygpfDApPj4yXT0x
Mzg7az0tMTtpPWc7cmV0dXJuIGt8MH1mdW5jdGlvbiBrZChhLGIsZCxlLGYpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0w
LEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2c9aTtpPWkrMTAzMnwwO2g9Z3wwO2o9ZysxMDI0fDA7
az1jW2I+PjJdfDA7Y1tqPj4yXT1rO2w9KGF8MCkhPTA7bT1sP2U6MjU2O2U9bD9hOmh8MDtMMzg6
ZG97aWYoKGt8MCk9PTB8KG18MCk9PTApe249MDtvPWQ7cD1tO3E9ZTtyPWt9ZWxzZXthPWh8MDtz
PW07dD1kO3U9MDt2PWU7dz1rO3doaWxlKDEpe3g9dD4+PjI7eT14Pj4+MD49cz4+PjA7aWYoISh5
fHQ+Pj4wPjEzMSkpe249dTtvPXQ7cD1zO3E9djtyPXc7YnJlYWsgTDM4fXo9eT9zOng7QT10LXp8
MDt4PWtlKHYsaix6LGYpfDA7aWYoKHh8MCk9PS0xKXticmVha31pZigodnwwKT09KGF8MCkpe0I9
YTtDPXN9ZWxzZXtCPXYrKHg8PDIpfDA7Qz1zLXh8MH16PXgrdXwwO3g9Y1tqPj4yXXwwO2lmKCh4
fDApPT0wfChDfDApPT0wKXtuPXo7bz1BO3A9QztxPUI7cj14O2JyZWFrIEwzOH1lbHNle3M9Qzt0
PUE7dT16O3Y9Qjt3PXh9fW49LTE7bz1BO3A9MDtxPXY7cj1jW2o+PjJdfDB9fXdoaWxlKDApO0w0
OTpkb3tpZigocnwwKT09MCl7RD1ufWVsc2V7aWYoKHB8MCk9PTB8KG98MCk9PTApe0Q9bjticmVh
a31lbHNle0U9cDtGPW87Rz1uO0g9cTtJPXJ9d2hpbGUoMSl7Sj1rYyhILEksRixmKXwwO2lmKChK
KzJ8MCk+Pj4wPDMpe2JyZWFrfUE9KGNbaj4+Ml18MCkrSnwwO2Nbaj4+Ml09QTtCPUUtMXwwO0M9
RysxfDA7aWYoKEJ8MCk9PTB8KEZ8MCk9PShKfDApKXtEPUM7YnJlYWsgTDQ5fWVsc2V7RT1CO0Y9
Ri1KfDA7Rz1DO0g9SCs0fDA7ST1BfX1zd2l0Y2goSnwwKXtjYXNlIDA6e2Nbaj4+Ml09MDtEPUc7
YnJlYWsgTDQ5O2JyZWFrfTtjYXNlLTE6e0Q9LTE7YnJlYWsgTDQ5O2JyZWFrfTtkZWZhdWx0Ontj
W2Y+PjJdPTA7RD1HO2JyZWFrIEw0OX19fX13aGlsZSgwKTtpZighbCl7aT1nO3JldHVybiBEfDB9
Y1tiPj4yXT1jW2o+PjJdO2k9ZztyZXR1cm4gRHwwfWZ1bmN0aW9uIGtlKGIsZSxmLGcpe2I9Ynww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxh
ZT0wLGFmPTA7aD1jW2U+PjJdfDA7ZG97aWYoKGd8MCk9PTApe2k9NTZ9ZWxzZXtqPWd8MDtrPWNb
aj4+Ml18MDtpZigoa3wwKT09MCl7aT01NjticmVha31pZigoYnwwKT09MCl7bD1rO209aDtuPWY7
aT02NzticmVha31jW2o+PjJdPTA7bz1rO3A9aDtxPWI7cj1mO2k9ODd9fXdoaWxlKDApO2lmKChp
fDApPT01Nil7aWYoKGJ8MCk9PTApe3Q9aDt1PWY7aT01OH1lbHNle3Y9aDt3PWI7eD1mO2k9NTd9
fUw3MDp3aGlsZSgxKXtpZigoaXwwKT09ODcpe2k9MDtoPWRbcF18MDtnPWg+Pj4zO2lmKChnLTE2
fGcrKG8+PjI2KSk+Pj4wPjcpe2k9ODg7YnJlYWt9Zz1wKzF8MDt5PWgtMTI4fG88PDY7ZG97aWYo
KHl8MCk8MCl7aD0oZFtnXXwwKS0xMjh8MDtpZihoPj4+MD42Myl7aT05MTticmVhayBMNzB9az1w
KzJ8MDt6PWh8eTw8NjtpZigoenwwKT49MCl7QT16O0I9azticmVha31oPShkW2tdfDApLTEyOHww
O2lmKGg+Pj4wPjYzKXtpPTk0O2JyZWFrIEw3MH1BPWh8ejw8NjtCPXArM3wwfWVsc2V7QT15O0I9
Z319d2hpbGUoMCk7Y1txPj4yXT1BO3Y9Qjt3PXErNHwwO3g9ci0xfDA7aT01Nztjb250aW51ZX1l
bHNlIGlmKChpfDApPT01OCl7aT0wO2c9YVt0XXwwO2Rve2lmKCgoZyYyNTUpLTF8MCk+Pj4wPDEy
Nyl7aWYoKHQmM3wwKSE9MCl7Qz10O0Q9dTtFPWc7YnJlYWt9aD1jW3Q+PjJdfDA7aWYoKChoLTE2
ODQzMDA5fGgpJi0yMTM5MDYyMTQ0fDApPT0wKXtGPXU7Rz10fWVsc2V7Qz10O0Q9dTtFPWgmMjU1
O2JyZWFrfWRve0c9Rys0fDA7Rj1GLTR8MDtIPWNbRz4+Ml18MDt9d2hpbGUoKChILTE2ODQzMDA5
fEgpJi0yMTM5MDYyMTQ0fDApPT0wKTtDPUc7RD1GO0U9SCYyNTV9ZWxzZXtDPXQ7RD11O0U9Z319
d2hpbGUoMCk7Zz1FJjI1NTtpZigoZy0xfDApPj4+MDwxMjcpe3Q9QysxfDA7dT1ELTF8MDtpPTU4
O2NvbnRpbnVlfWg9Zy0xOTR8MDtpZihoPj4+MD41MCl7ST1EO0o9YjtLPUM7aT05ODticmVha31s
PWNbcysoaDw8Mik+PjJdfDA7bT1DKzF8MDtuPUQ7aT02Nztjb250aW51ZX1lbHNlIGlmKChpfDAp
PT01Nyl7aT0wO2lmKCh4fDApPT0wKXtMPWY7aT0xMDY7YnJlYWt9ZWxzZXtNPXg7Tj13O089dn13
aGlsZSgxKXtoPWFbT118MDtkb3tpZigoKGgmMjU1KS0xfDApPj4+MDwxMjcpe2lmKChPJjN8MCk9
PTAmTT4+PjA+Myl7UD1NO1E9TjtSPU99ZWxzZXtTPU87VD1OO1U9TTtWPWg7YnJlYWt9d2hpbGUo
MSl7Vz1jW1I+PjJdfDA7aWYoKChXLTE2ODQzMDA5fFcpJi0yMTM5MDYyMTQ0fDApIT0wKXtpPTgx
O2JyZWFrfWNbUT4+Ml09VyYyNTU7Y1tRKzQ+PjJdPWRbUisxfDBdfDA7Y1tRKzg+PjJdPWRbUisy
fDBdfDA7WD1SKzR8MDtZPVErMTZ8MDtjW1ErMTI+PjJdPWRbUiszfDBdfDA7Wj1QLTR8MDtpZiha
Pj4+MD4zKXtQPVo7UT1ZO1I9WH1lbHNle2k9ODI7YnJlYWt9fWlmKChpfDApPT04MSl7aT0wO1M9
UjtUPVE7VT1QO1Y9VyYyNTU7YnJlYWt9ZWxzZSBpZigoaXwwKT09ODIpe2k9MDtTPVg7VD1ZO1U9
WjtWPWFbWF18MDticmVha319ZWxzZXtTPU87VD1OO1U9TTtWPWh9fXdoaWxlKDApO189ViYyNTU7
aWYoKF8tMXwwKT4+PjA+PTEyNyl7YnJlYWt9Y1tUPj4yXT1fO2g9VS0xfDA7aWYoKGh8MCk9PTAp
e0w9ZjtpPTEwNTticmVhayBMNzB9ZWxzZXtNPWg7Tj1UKzR8MDtPPVMrMXwwfX1oPV8tMTk0fDA7
aWYoaD4+PjA+NTApe0k9VTtKPVQ7Sz1TO2k9OTg7YnJlYWt9bz1jW3MrKGg8PDIpPj4yXXwwO3A9
UysxfDA7cT1UO3I9VTtpPTg3O2NvbnRpbnVlfWVsc2UgaWYoKGl8MCk9PTY3KXtpPTA7aD0oZFtt
XXwwKT4+PjM7aWYoKGgtMTZ8aCsobD4+MjYpKT4+PjA+Nyl7aT02ODticmVha31oPW0rMXwwO2Rv
e2lmKChsJjMzNTU0NDMyfDApPT0wKXskPWh9ZWxzZXtpZigoKGRbaF18MCktMTI4fDApPj4+MD42
Myl7aT03MTticmVhayBMNzB9Zz1tKzJ8MDtpZigobCY1MjQyODh8MCk9PTApeyQ9ZzticmVha31p
ZigoKGRbZ118MCktMTI4fDApPj4+MD42Myl7aT03NDticmVhayBMNzB9JD1tKzN8MH19d2hpbGUo
MCk7dD0kO3U9bi0xfDA7aT01ODtjb250aW51ZX19aWYoKGl8MCk9PTcxKXthYT1sO2FiPW0tMXww
O2FjPWI7YWQ9bjtpPTk3fWVsc2UgaWYoKGl8MCk9PTc0KXthYT1sO2FiPW0tMXwwO2FjPWI7YWQ9
bjtpPTk3fWVsc2UgaWYoKGl8MCk9PTY4KXthYT1sO2FiPW0tMXwwO2FjPWI7YWQ9bjtpPTk3fWVs
c2UgaWYoKGl8MCk9PTg4KXthYT1vO2FiPXAtMXwwO2FjPXE7YWQ9cjtpPTk3fWVsc2UgaWYoKGl8
MCk9PTkxKXthYT15O2FiPXAtMXwwO2FjPXE7YWQ9cjtpPTk3fWVsc2UgaWYoKGl8MCk9PTk0KXth
YT16O2FiPXAtMXwwO2FjPXE7YWQ9cjtpPTk3fWVsc2UgaWYoKGl8MCk9PTEwNSl7cmV0dXJuIEx8
MH1lbHNlIGlmKChpfDApPT0xMDYpe3JldHVybiBMfDB9aWYoKGl8MCk9PTk3KXtpZigoYWF8MCk9
PTApe0k9YWQ7Sj1hYztLPWFiO2k9OTh9ZWxzZXthZT1hYzthZj1hYn19ZG97aWYoKGl8MCk9PTk4
KXtpZigoYVtLXXwwKSE9MCl7YWU9SjthZj1LO2JyZWFrfWlmKChKfDApIT0wKXtjW0o+PjJdPTA7
Y1tlPj4yXT0wfUw9Zi1JfDA7cmV0dXJuIEx8MH19d2hpbGUoMCk7Y1soYncoKXwwKT4+Ml09MTM4
O2lmKChhZXwwKT09MCl7TD0tMTtyZXR1cm4gTHwwfWNbZT4+Ml09YWY7TD0tMTtyZXR1cm4gTHww
fWZ1bmN0aW9uIGtmKGIsZSxmKXtiPWJ8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0w
LGw9MCxtPTAsbj0wO2c9aTtpPWkrOHwwO2g9Z3wwO2NbaD4+Ml09YjtpZigoZXwwKT09MCl7aj0w
O2k9ZztyZXR1cm4ganwwfWRve2lmKChmfDApIT0wKXtpZigoYnwwKT09MCl7az1oO2NbaD4+Ml09
aztsPWt9ZWxzZXtsPWJ9az1hW2VdfDA7bT1rJjI1NTtpZihrPDwyND4+MjQ+LTEpe2NbbD4+Ml09
bTtqPWs8PDI0Pj4yNCE9MHwwO2k9ZztyZXR1cm4ganwwfWs9bS0xOTR8MDtpZihrPj4+MD41MCl7
YnJlYWt9bT1lKzF8MDtuPWNbcysoazw8Mik+PjJdfDA7aWYoZj4+PjA8NCl7aWYoKG4mLTIxNDc0
ODM2NDg+Pj4oKChmKjZ8MCktNnwwKT4+PjApfDApIT0wKXticmVha319az1kW21dfDA7bT1rPj4+
MztpZigobS0xNnxtKyhuPj4yNikpPj4+MD43KXticmVha31tPWstMTI4fG48PDY7aWYoKG18MCk+
PTApe2NbbD4+Ml09bTtqPTI7aT1nO3JldHVybiBqfDB9bj0oZFtlKzJ8MF18MCktMTI4fDA7aWYo
bj4+PjA+NjMpe2JyZWFrfWs9bnxtPDw2O2lmKChrfDApPj0wKXtjW2w+PjJdPWs7aj0zO2k9Zzty
ZXR1cm4ganwwfW09KGRbZSszfDBdfDApLTEyOHwwO2lmKG0+Pj4wPjYzKXticmVha31jW2w+PjJd
PW18azw8NjtqPTQ7aT1nO3JldHVybiBqfDB9fXdoaWxlKDApO2NbKGJ3KCl8MCk+PjJdPTEzODtq
PS0xO2k9ZztyZXR1cm4ganwwfWZ1bmN0aW9uIGtnKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2
YXIgZj0wO2lmKChifDApPT0wKXtmPTE7cmV0dXJuIGZ8MH1pZihkPj4+MDwxMjgpe2FbYl09ZCYy
NTU7Zj0xO3JldHVybiBmfDB9aWYoZD4+PjA8MjA0OCl7YVtiXT0oZD4+PjZ8MTkyKSYyNTU7YVti
KzF8MF09KGQmNjN8MTI4KSYyNTU7Zj0yO3JldHVybiBmfDB9aWYoZD4+PjA8NTUyOTZ8KGQtNTcz
NDR8MCk+Pj4wPDgxOTIpe2FbYl09KGQ+Pj4xMnwyMjQpJjI1NTthW2IrMXwwXT0oZD4+PjYmNjN8
MTI4KSYyNTU7YVtiKzJ8MF09KGQmNjN8MTI4KSYyNTU7Zj0zO3JldHVybiBmfDB9aWYoKGQtNjU1
MzZ8MCk+Pj4wPDEwNDg1NzYpe2FbYl09KGQ+Pj4xOHwyNDApJjI1NTthW2IrMXwwXT0oZD4+PjEy
JjYzfDEyOCkmMjU1O2FbYisyfDBdPShkPj4+NiY2M3wxMjgpJjI1NTthW2IrM3wwXT0oZCY2M3wx
MjgpJjI1NTtmPTQ7cmV0dXJuIGZ8MH1lbHNle2NbKGJ3KCl8MCk+PjJdPTEzODtmPS0xO3JldHVy
biBmfDB9cmV0dXJuIDB9ZnVuY3Rpb24ga2goYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGtpKGEp
e2E9YXwwO3JldHVybn1mdW5jdGlvbiBraihhKXthPWF8MDtyZXR1cm4gMTMyOHwwfWZ1bmN0aW9u
IGtrKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBrbChhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24g
a20oYSl7YT1hfDA7dmFyIGI9MDtiPWE7d2hpbGUoMSl7aWYoKGNbYj4+Ml18MCk9PTApe2JyZWFr
fWVsc2V7Yj1iKzR8MH19cmV0dXJuIGItYT4+MnwwfWZ1bmN0aW9uIGtuKGEsYixkKXthPWF8MDti
PWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7aWYoKGR8MCk9PTApe3JldHVybiBhfDB9ZWxzZXtl
PWI7Zj1kO2c9YX13aGlsZSgxKXtkPWYtMXwwO2NbZz4+Ml09Y1tlPj4yXTtpZigoZHwwKT09MCl7
YnJlYWt9ZWxzZXtlPWUrNHwwO2Y9ZDtnPWcrNHwwfX1yZXR1cm4gYXwwfWZ1bmN0aW9uIGtvKGEs
YixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MDtlPShkfDApPT0w
O2lmKGEtYj4+Mj4+PjA8ZD4+PjApe2lmKGUpe3JldHVybiBhfDB9ZWxzZXtmPWR9ZG97Zj1mLTF8
MDtjW2ErKGY8PDIpPj4yXT1jW2IrKGY8PDIpPj4yXTt9d2hpbGUoKGZ8MCkhPTApO3JldHVybiBh
fDB9ZWxzZXtpZihlKXtyZXR1cm4gYXwwfWVsc2V7Zz1iO2g9ZDtpPWF9d2hpbGUoMSl7ZD1oLTF8
MDtjW2k+PjJdPWNbZz4+Ml07aWYoKGR8MCk9PTApe2JyZWFrfWVsc2V7Zz1nKzR8MDtoPWQ7aT1p
KzR8MH19cmV0dXJuIGF8MH1yZXR1cm4gMH1mdW5jdGlvbiBrcChhLGIsZCl7YT1hfDA7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTA7aWYoKGR8MCk9PTApe3JldHVybiBhfDB9ZWxzZXtlPWQ7Zj1hfXdo
aWxlKDEpe2Q9ZS0xfDA7Y1tmPj4yXT1iO2lmKChkfDApPT0wKXticmVha31lbHNle2U9ZDtmPWYr
NHwwfX1yZXR1cm4gYXwwfWZ1bmN0aW9uIGtxKGEpe2E9YXwwO2NbYT4+Ml09MjQ0MDtyZXR1cm59
ZnVuY3Rpb24ga3IoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MDtpZigo
Y1tkKzg+PjJdfDApIT0oYnwwKSl7cmV0dXJufWI9ZCsxNnwwO2c9Y1tiPj4yXXwwO2lmKChnfDAp
PT0wKXtjW2I+PjJdPWU7Y1tkKzI0Pj4yXT1mO2NbZCszNj4+Ml09MTtyZXR1cm59aWYoKGd8MCkh
PShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7Y1tkKzI0Pj4yXT0yO2FbZCs1
NHwwXT0xO3JldHVybn1lPWQrMjR8MDtpZigoY1tlPj4yXXwwKSE9Mil7cmV0dXJufWNbZT4+Ml09
ZjtyZXR1cm59ZnVuY3Rpb24ga3MoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTA7Zj1pO2k9aSsyNjR8MDtnPWZ8MDtoPWYrMjU2fDA7aj1jW2I+PjJdfDA7Y1toPj4yXT1qO2s9
KGF8MCkhPTA7bD1rP2U6MjU2O2U9az9hOmd8MDtMMjQzOmRve2lmKChqfDApPT0wfChsfDApPT0w
KXttPTA7bj1kO289bDtwPWU7cT1qfWVsc2V7YT1nfDA7cj1sO3M9ZDt0PTA7dT1lO3Y9ajt3aGls
ZSgxKXt3PXM+Pj4wPj1yPj4+MDtpZighKHd8cz4+PjA+MzIpKXttPXQ7bj1zO289cjtwPXU7cT12
O2JyZWFrIEwyNDN9eD13P3I6czt5PXMteHwwO3c9a3QodSxoLHgsMCl8MDtpZigod3wwKT09LTEp
e2JyZWFrfWlmKCh1fDApPT0oYXwwKSl7ej1hO0E9cn1lbHNle3o9dSt3fDA7QT1yLXd8MH14PXcr
dHwwO3c9Y1toPj4yXXwwO2lmKCh3fDApPT0wfChBfDApPT0wKXttPXg7bj15O289QTtwPXo7cT13
O2JyZWFrIEwyNDN9ZWxzZXtyPUE7cz15O3Q9eDt1PXo7dj13fX1tPS0xO249eTtvPTA7cD11O3E9
Y1toPj4yXXwwfX13aGlsZSgwKTtMMjU0OmRve2lmKChxfDApPT0wKXtCPW19ZWxzZXtpZigob3ww
KT09MHwobnwwKT09MCl7Qj1tO2JyZWFrfWVsc2V7Qz1vO0Q9bjtFPW07Rj1wO0c9cX13aGlsZSgx
KXtIPWtnKEYsY1tHPj4yXXwwLDApfDA7aWYoKEgrMXwwKT4+PjA8Mil7YnJlYWt9eT0oY1toPj4y
XXwwKSs0fDA7Y1toPj4yXT15O3o9RC0xfDA7QT1FKzF8MDtpZigoQ3wwKT09KEh8MCl8KHp8MCk9
PTApe0I9QTticmVhayBMMjU0fWVsc2V7Qz1DLUh8MDtEPXo7RT1BO0Y9RitIfDA7Rz15fX1pZigo
SHwwKSE9MCl7Qj0tMTticmVha31jW2g+PjJdPTA7Qj1FfX13aGlsZSgwKTtpZighayl7aT1mO3Jl
dHVybiBCfDB9Y1tiPj4yXT1jW2g+PjJdO2k9ZjtyZXR1cm4gQnwwfWZ1bmN0aW9uIGt0KGIsZCxl
LGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2Y9
aTtpPWkrOHwwO2c9ZnwwO2lmKChifDApPT0wKXtoPWNbZD4+Ml18MDtqPWd8MDtrPWNbaD4+Ml18
MDtpZigoa3wwKT09MCl7bD0wO2k9ZjtyZXR1cm4gbHwwfWVsc2V7bT0wO249aDtvPWt9d2hpbGUo
MSl7aWYobz4+PjA+MTI3KXtrPWtnKGosbywwKXwwO2lmKChrfDApPT0tMSl7bD0tMTtwPTI0MDti
cmVha31lbHNle3E9a319ZWxzZXtxPTF9az1xK218MDtoPW4rNHwwO3I9Y1toPj4yXXwwO2lmKChy
fDApPT0wKXtsPWs7cD0yNDE7YnJlYWt9ZWxzZXttPWs7bj1oO289cn19aWYoKHB8MCk9PTI0MCl7
aT1mO3JldHVybiBsfDB9ZWxzZSBpZigocHwwKT09MjQxKXtpPWY7cmV0dXJuIGx8MH19TDI4MDpk
b3tpZihlPj4+MD4zKXtvPWU7bj1iO209Y1tkPj4yXXwwO3doaWxlKDEpe3E9Y1ttPj4yXXwwO2lm
KChxfDApPT0wKXtzPW87dD1uO2JyZWFrIEwyODB9aWYocT4+PjA+MTI3KXtqPWtnKG4scSwwKXww
O2lmKChqfDApPT0tMSl7bD0tMTticmVha311PW4ranwwO3Y9by1qfDA7dz1tfWVsc2V7YVtuXT1x
JjI1NTt1PW4rMXwwO3Y9by0xfDA7dz1jW2Q+PjJdfDB9cT13KzR8MDtjW2Q+PjJdPXE7aWYodj4+
PjA+Myl7bz12O249dTttPXF9ZWxzZXtzPXY7dD11O2JyZWFrIEwyODB9fWk9ZjtyZXR1cm4gbHww
fWVsc2V7cz1lO3Q9Yn19d2hpbGUoMCk7TDI5Mjpkb3tpZigoc3wwKT09MCl7eD0wfWVsc2V7Yj1n
fDA7dT1zO3Y9dDt3PWNbZD4+Ml18MDt3aGlsZSgxKXttPWNbdz4+Ml18MDtpZigobXwwKT09MCl7
cD0yMzY7YnJlYWt9aWYobT4+PjA+MTI3KXtuPWtnKGIsbSwwKXwwO2lmKChufDApPT0tMSl7bD0t
MTtwPTI0MzticmVha31pZihuPj4+MD51Pj4+MCl7cD0yMzI7YnJlYWt9bz1jW3c+PjJdfDA7a2co
dixvLDApfDA7eT12K258MDt6PXUtbnwwO0E9d31lbHNle2Fbdl09bSYyNTU7eT12KzF8MDt6PXUt
MXwwO0E9Y1tkPj4yXXwwfW09QSs0fDA7Y1tkPj4yXT1tO2lmKCh6fDApPT0wKXt4PTA7YnJlYWsg
TDI5Mn1lbHNle3U9ejt2PXk7dz1tfX1pZigocHwwKT09MjMyKXtsPWUtdXwwO2k9ZjtyZXR1cm4g
bHwwfWVsc2UgaWYoKHB8MCk9PTIzNil7YVt2XT0wO3g9dTticmVha31lbHNlIGlmKChwfDApPT0y
NDMpe2k9ZjtyZXR1cm4gbHwwfX19d2hpbGUoMCk7Y1tkPj4yXT0wO2w9ZS14fDA7aT1mO3JldHVy
biBsfDB9ZnVuY3Rpb24ga3UoYSl7YT1hfDA7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGt2KGEpe2E9
YXwwO2toKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGt3KGEpe2E9YXwwO2toKGF8MCk7a1MoYSk7cmV0
dXJufWZ1bmN0aW9uIGt4KGEpe2E9YXwwO2toKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGt5
KGEpe2E9YXwwO2toKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGt6KGEsYixkKXthPWF8MDti
PWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wO2U9aTtpPWkrNTZ8MDtmPWV8MDtpZigoYXww
KT09KGJ8MCkpe2c9MTtpPWU7cmV0dXJuIGd8MH1pZigoYnwwKT09MCl7Zz0wO2k9ZTtyZXR1cm4g
Z3wwfWg9a0MoYiw5NzA0LDk2ODgsLTEpfDA7Yj1oO2lmKChofDApPT0wKXtnPTA7aT1lO3JldHVy
biBnfDB9ayQoZnwwLDAsNTYpO2NbZj4+Ml09YjtjW2YrOD4+Ml09YTtjW2YrMTI+PjJdPS0xO2Nb
Zis0OD4+Ml09MTtjYltjWyhjW2g+PjJdfDApKzI4Pj4yXSYxNV0oYixmLGNbZD4+Ml18MCwxKTtp
ZigoY1tmKzI0Pj4yXXwwKSE9MSl7Zz0wO2k9ZTtyZXR1cm4gZ3wwfWNbZD4+Ml09Y1tmKzE2Pj4y
XTtnPTE7aT1lO3JldHVybiBnfDB9ZnVuY3Rpb24ga0EoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7dmFyIGc9MDtpZigoYnwwKSE9KGNbZCs4Pj4yXXwwKSl7Zz1jW2IrOD4+Ml18MDtj
YltjWyhjW2c+PjJdfDApKzI4Pj4yXSYxNV0oZyxkLGUsZik7cmV0dXJufWc9ZCsxNnwwO2I9Y1tn
Pj4yXXwwO2lmKChifDApPT0wKXtjW2c+PjJdPWU7Y1tkKzI0Pj4yXT1mO2NbZCszNj4+Ml09MTty
ZXR1cm59aWYoKGJ8MCkhPShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7Y1tk
KzI0Pj4yXT0yO2FbZCs1NHwwXT0xO3JldHVybn1lPWQrMjR8MDtpZigoY1tlPj4yXXwwKSE9Mil7
cmV0dXJufWNbZT4+Ml09ZjtyZXR1cm59ZnVuY3Rpb24ga0IoYixkLGUsZil7Yj1ifDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MDtpZigoYnwwKT09KGNb
ZCs4Pj4yXXwwKSl7Zz1kKzE2fDA7aD1jW2c+PjJdfDA7aWYoKGh8MCk9PTApe2NbZz4+Ml09ZTtj
W2QrMjQ+PjJdPWY7Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigoaHwwKSE9KGV8MCkpe2g9ZCszNnww
O2NbaD4+Ml09KGNbaD4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7YVtkKzU0fDBdPTE7cmV0dXJufWg9
ZCsyNHwwO2lmKChjW2g+PjJdfDApIT0yKXtyZXR1cm59Y1toPj4yXT1mO3JldHVybn1oPWNbYisx
Mj4+Ml18MDtnPWIrMTYrKGg8PDMpfDA7aT1jW2IrMjA+PjJdfDA7aj1pPj44O2lmKChpJjF8MCk9
PTApe2s9an1lbHNle2s9Y1soY1tlPj4yXXwwKStqPj4yXXwwfWo9Y1tiKzE2Pj4yXXwwO2NiW2Nb
KGNbaj4+Ml18MCkrMjg+PjJdJjE1XShqLGQsZStrfDAsKGkmMnwwKSE9MD9mOjIpO2lmKChofDAp
PD0xKXtyZXR1cm59aD1kKzU0fDA7aT1lO2s9YisyNHwwO3doaWxlKDEpe2I9Y1trKzQ+PjJdfDA7
aj1iPj44O2lmKChiJjF8MCk9PTApe2w9an1lbHNle2w9Y1soY1tpPj4yXXwwKStqPj4yXXwwfWo9
Y1trPj4yXXwwO2NiW2NbKGNbaj4+Ml18MCkrMjg+PjJdJjE1XShqLGQsZStsfDAsKGImMnwwKSE9
MD9mOjIpO2lmKChhW2hdJjEpIT0wKXttPTI5NzticmVha31iPWsrOHwwO2lmKGI+Pj4wPGc+Pj4w
KXtrPWJ9ZWxzZXttPTI5ODticmVha319aWYoKG18MCk9PTI5Nyl7cmV0dXJufWVsc2UgaWYoKG18
MCk9PTI5OCl7cmV0dXJufX1mdW5jdGlvbiBrQyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtl
PWV8MDt2YXIgZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Zj1pO2k9aSs1Nnww
O2c9ZnwwO2g9Y1thPj4yXXwwO2o9YSsoY1toLTg+PjJdfDApfDA7az1jW2gtND4+Ml18MDtoPWs7
Y1tnPj4yXT1kO2NbZys0Pj4yXT1hO2NbZys4Pj4yXT1iO2NbZysxMj4+Ml09ZTtlPWcrMTZ8MDti
PWcrMjB8MDthPWcrMjR8MDtsPWcrMjh8MDttPWcrMzJ8MDtuPWcrNDB8MDtrJChlfDAsMCwzOSk7
aWYoKGt8MCk9PShkfDApKXtjW2crNDg+PjJdPTE7YjlbY1soY1trPj4yXXwwKSsyMD4+Ml0mMzFd
KGgsZyxqLGosMSwwKTtpPWY7cmV0dXJuKChjW2E+PjJdfDApPT0xP2o6MCl8MH1iV1tjWyhjW2s+
PjJdfDApKzI0Pj4yXSY3XShoLGcsaiwxLDApO3N3aXRjaChjW2crMzY+PjJdfDApe2Nhc2UgMTp7
ZG97aWYoKGNbYT4+Ml18MCkhPTEpe2lmKChjW24+PjJdfDApIT0wKXtvPTA7aT1mO3JldHVybiBv
fDB9aWYoKGNbbD4+Ml18MCkhPTEpe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1ttPj4yXXwwKT09
MSl7YnJlYWt9ZWxzZXtvPTB9aT1mO3JldHVybiBvfDB9fXdoaWxlKDApO289Y1tlPj4yXXwwO2k9
ZjtyZXR1cm4gb3wwfTtjYXNlIDA6e2lmKChjW24+PjJdfDApIT0xKXtvPTA7aT1mO3JldHVybiBv
fDB9aWYoKGNbbD4+Ml18MCkhPTEpe289MDtpPWY7cmV0dXJuIG98MH1vPShjW20+PjJdfDApPT0x
P2NbYj4+Ml18MDowO2k9ZjtyZXR1cm4gb3wwfTtkZWZhdWx0OntvPTA7aT1mO3JldHVybiBvfDB9
fXJldHVybiAwfWZ1bmN0aW9uIGtEKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aWYoKGNbZCs4Pj4yXXwwKT09KGJ8MCkpe2lmKChjW2QrND4+Ml18MCkhPShlfDApKXty
ZXR1cm59Zz1kKzI4fDA7aWYoKGNbZz4+Ml18MCk9PTEpe3JldHVybn1jW2c+PjJdPWY7cmV0dXJu
fWlmKChjW2Q+PjJdfDApIT0oYnwwKSl7cmV0dXJufWRve2lmKChjW2QrMTY+PjJdfDApIT0oZXww
KSl7Yj1kKzIwfDA7aWYoKGNbYj4+Ml18MCk9PShlfDApKXticmVha31jW2QrMzI+PjJdPWY7Y1ti
Pj4yXT1lO2I9ZCs0MHwwO2NbYj4+Ml09KGNbYj4+Ml18MCkrMTtkb3tpZigoY1tkKzM2Pj4yXXww
KT09MSl7aWYoKGNbZCsyND4+Ml18MCkhPTIpe2JyZWFrfWFbZCs1NHwwXT0xfX13aGlsZSgwKTtj
W2QrNDQ+PjJdPTQ7cmV0dXJufX13aGlsZSgwKTtpZigoZnwwKSE9MSl7cmV0dXJufWNbZCszMj4+
Ml09MTtyZXR1cm59ZnVuY3Rpb24ga0UoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO3ZhciBpPTA7aWYoKGNbZCs4Pj4yXXwwKSE9KGJ8MCkpe3JldHVybn1h
W2QrNTN8MF09MTtpZigoY1tkKzQ+PjJdfDApIT0oZnwwKSl7cmV0dXJufWFbZCs1MnwwXT0xO2Y9
ZCsxNnwwO2I9Y1tmPj4yXXwwO2lmKChifDApPT0wKXtjW2Y+PjJdPWU7Y1tkKzI0Pj4yXT1nO2Nb
ZCszNj4+Ml09MTtpZighKChjW2QrNDg+PjJdfDApPT0xJihnfDApPT0xKSl7cmV0dXJufWFbZCs1
NHwwXT0xO3JldHVybn1pZigoYnwwKSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18
MCkrMTthW2QrNTR8MF09MTtyZXR1cm59ZT1kKzI0fDA7Yj1jW2U+PjJdfDA7aWYoKGJ8MCk9PTIp
e2NbZT4+Ml09ZztpPWd9ZWxzZXtpPWJ9aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYoaXwwKT09MSkp
e3JldHVybn1hW2QrNTR8MF09MTtyZXR1cm59ZnVuY3Rpb24ga0YoYixkLGUsZixnKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89
MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0w
LEQ9MCxFPTAsRj0wLEc9MCxIPTA7aD1ifDA7aWYoKGh8MCk9PShjW2QrOD4+Ml18MCkpe2lmKChj
W2QrND4+Ml18MCkhPShlfDApKXtyZXR1cm59aT1kKzI4fDA7aWYoKGNbaT4+Ml18MCk9PTEpe3Jl
dHVybn1jW2k+PjJdPWY7cmV0dXJufWlmKChofDApPT0oY1tkPj4yXXwwKSl7ZG97aWYoKGNbZCsx
Nj4+Ml18MCkhPShlfDApKXtoPWQrMjB8MDtpZigoY1toPj4yXXwwKT09KGV8MCkpe2JyZWFrfWNb
ZCszMj4+Ml09ZjtpPWQrNDR8MDtpZigoY1tpPj4yXXwwKT09NCl7cmV0dXJufWo9Y1tiKzEyPj4y
XXwwO2s9YisxNisoajw8Myl8MDtMNDc0OmRve2lmKChqfDApPjApe2w9ZCs1MnwwO209ZCs1M3ww
O249ZCs1NHwwO289Yis4fDA7cD1kKzI0fDA7cT1lO3I9MDtzPWIrMTZ8MDt0PTA7TDQ3Njp3aGls
ZSgxKXthW2xdPTA7YVttXT0wO3U9Y1tzKzQ+PjJdfDA7dj11Pj44O2lmKCh1JjF8MCk9PTApe3c9
dn1lbHNle3c9Y1soY1txPj4yXXwwKSt2Pj4yXXwwfXY9Y1tzPj4yXXwwO2I5W2NbKGNbdj4+Ml18
MCkrMjA+PjJdJjMxXSh2LGQsZSxlK3d8MCwyLSh1Pj4+MSYxKXwwLGcpO2lmKChhW25dJjEpIT0w
KXt4PXQ7eT1yO2JyZWFrfWRve2lmKChhW21dJjEpPT0wKXt6PXQ7QT1yfWVsc2V7aWYoKGFbbF0m
MSk9PTApe2lmKChjW28+PjJdJjF8MCk9PTApe3g9MTt5PXI7YnJlYWsgTDQ3Nn1lbHNle3o9MTtB
PXI7YnJlYWt9fWlmKChjW3A+PjJdfDApPT0xKXtCPTM4NTticmVhayBMNDc0fWlmKChjW28+PjJd
JjJ8MCk9PTApe0I9Mzg1O2JyZWFrIEw0NzR9ZWxzZXt6PTE7QT0xfX19d2hpbGUoMCk7dT1zKzh8
MDtpZih1Pj4+MDxrPj4+MCl7cj1BO3M9dTt0PXp9ZWxzZXt4PXo7eT1BO2JyZWFrfX1pZih5KXtD
PXg7Qj0zODR9ZWxzZXtEPXg7Qj0zODF9fWVsc2V7RD0wO0I9MzgxfX13aGlsZSgwKTtkb3tpZigo
QnwwKT09MzgxKXtjW2g+PjJdPWU7az1kKzQwfDA7Y1trPj4yXT0oY1trPj4yXXwwKSsxO2lmKChj
W2QrMzY+PjJdfDApIT0xKXtDPUQ7Qj0zODQ7YnJlYWt9aWYoKGNbZCsyND4+Ml18MCkhPTIpe0M9
RDtCPTM4NDticmVha31hW2QrNTR8MF09MTtpZihEKXtCPTM4NX1lbHNle0I9Mzg2fX19d2hpbGUo
MCk7aWYoKEJ8MCk9PTM4NCl7aWYoQyl7Qj0zODV9ZWxzZXtCPTM4Nn19aWYoKEJ8MCk9PTM4NSl7
Y1tpPj4yXT0zO3JldHVybn1lbHNlIGlmKChCfDApPT0zODYpe2NbaT4+Ml09NDtyZXR1cm59fX13
aGlsZSgwKTtpZigoZnwwKSE9MSl7cmV0dXJufWNbZCszMj4+Ml09MTtyZXR1cm59Qz1jW2IrMTI+
PjJdfDA7RD1iKzE2KyhDPDwzKXwwO3g9Y1tiKzIwPj4yXXwwO3k9eD4+ODtpZigoeCYxfDApPT0w
KXtFPXl9ZWxzZXtFPWNbKGNbZT4+Ml18MCkreT4+Ml18MH15PWNbYisxNj4+Ml18MDtiV1tjWyhj
W3k+PjJdfDApKzI0Pj4yXSY3XSh5LGQsZStFfDAsKHgmMnwwKSE9MD9mOjIsZyk7eD1iKzI0fDA7
aWYoKEN8MCk8PTEpe3JldHVybn1DPWNbYis4Pj4yXXwwO2Rve2lmKChDJjJ8MCk9PTApe2I9ZCsz
NnwwO2lmKChjW2I+PjJdfDApPT0xKXticmVha31pZigoQyYxfDApPT0wKXtFPWQrNTR8MDt5PWU7
QT14O3doaWxlKDEpe2lmKChhW0VdJjEpIT0wKXtCPTQyNTticmVha31pZigoY1tiPj4yXXwwKT09
MSl7Qj00MjY7YnJlYWt9ej1jW0ErND4+Ml18MDt3PXo+Pjg7aWYoKHomMXwwKT09MCl7Rj13fWVs
c2V7Rj1jWyhjW3k+PjJdfDApK3c+PjJdfDB9dz1jW0E+PjJdfDA7YldbY1soY1t3Pj4yXXwwKSsy
ND4+Ml0mN10odyxkLGUrRnwwLCh6JjJ8MCkhPTA/ZjoyLGcpO3o9QSs4fDA7aWYoej4+PjA8RD4+
PjApe0E9en1lbHNle0I9NDEyO2JyZWFrfX1pZigoQnwwKT09NDEyKXtyZXR1cm59ZWxzZSBpZigo
QnwwKT09NDI1KXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDI2KXtyZXR1cm59fUE9ZCsyNHwwO3k9
ZCs1NHwwO0U9ZTtpPXg7d2hpbGUoMSl7aWYoKGFbeV0mMSkhPTApe0I9NDIyO2JyZWFrfWlmKChj
W2I+PjJdfDApPT0xKXtpZigoY1tBPj4yXXwwKT09MSl7Qj00MjM7YnJlYWt9fXo9Y1tpKzQ+PjJd
fDA7dz16Pj44O2lmKCh6JjF8MCk9PTApe0c9d31lbHNle0c9Y1soY1tFPj4yXXwwKSt3Pj4yXXww
fXc9Y1tpPj4yXXwwO2JXW2NbKGNbdz4+Ml18MCkrMjQ+PjJdJjddKHcsZCxlK0d8MCwoeiYyfDAp
IT0wP2Y6MixnKTt6PWkrOHwwO2lmKHo+Pj4wPEQ+Pj4wKXtpPXp9ZWxzZXtCPTQyNDticmVha319
aWYoKEJ8MCk9PTQyMil7cmV0dXJufWVsc2UgaWYoKEJ8MCk9PTQyMyl7cmV0dXJufWVsc2UgaWYo
KEJ8MCk9PTQyNCl7cmV0dXJufX19d2hpbGUoMCk7Rz1kKzU0fDA7Rj1lO0M9eDt3aGlsZSgxKXtp
ZigoYVtHXSYxKSE9MCl7Qj00MjE7YnJlYWt9eD1jW0MrND4+Ml18MDtpPXg+Pjg7aWYoKHgmMXww
KT09MCl7SD1pfWVsc2V7SD1jWyhjW0Y+PjJdfDApK2k+PjJdfDB9aT1jW0M+PjJdfDA7YldbY1so
Y1tpPj4yXXwwKSsyND4+Ml0mN10oaSxkLGUrSHwwLCh4JjJ8MCkhPTA/ZjoyLGcpO3g9Qys4fDA7
aWYoeD4+PjA8RD4+PjApe0M9eH1lbHNle0I9NDIwO2JyZWFrfX1pZigoQnwwKT09NDIwKXtyZXR1
cm59ZWxzZSBpZigoQnwwKT09NDIxKXtyZXR1cm59fWZ1bmN0aW9uIGtHKGIsZCxlLGYsZyl7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49
MDtoPWJ8MDtpZigoaHwwKT09KGNbZCs4Pj4yXXwwKSl7aWYoKGNbZCs0Pj4yXXwwKSE9KGV8MCkp
e3JldHVybn1pPWQrMjh8MDtpZigoY1tpPj4yXXwwKT09MSl7cmV0dXJufWNbaT4+Ml09ZjtyZXR1
cm59aWYoKGh8MCkhPShjW2Q+PjJdfDApKXtoPWNbYis4Pj4yXXwwO2JXW2NbKGNbaD4+Ml18MCkr
MjQ+PjJdJjddKGgsZCxlLGYsZyk7cmV0dXJufWRve2lmKChjW2QrMTY+PjJdfDApIT0oZXwwKSl7
aD1kKzIwfDA7aWYoKGNbaD4+Ml18MCk9PShlfDApKXticmVha31jW2QrMzI+PjJdPWY7aT1kKzQ0
fDA7aWYoKGNbaT4+Ml18MCk9PTQpe3JldHVybn1qPWQrNTJ8MDthW2pdPTA7az1kKzUzfDA7YVtr
XT0wO2w9Y1tiKzg+PjJdfDA7YjlbY1soY1tsPj4yXXwwKSsyMD4+Ml0mMzFdKGwsZCxlLGUsMSxn
KTtpZigoYVtrXSYxKT09MCl7bT0wO249NDQxfWVsc2V7aWYoKGFbal0mMSk9PTApe209MTtuPTQ0
MX19TDU3Njpkb3tpZigobnwwKT09NDQxKXtjW2g+PjJdPWU7aj1kKzQwfDA7Y1tqPj4yXT0oY1tq
Pj4yXXwwKSsxO2Rve2lmKChjW2QrMzY+PjJdfDApPT0xKXtpZigoY1tkKzI0Pj4yXXwwKSE9Mil7
bj00NDQ7YnJlYWt9YVtkKzU0fDBdPTE7aWYobSl7YnJlYWsgTDU3Nn19ZWxzZXtuPTQ0NH19d2hp
bGUoMCk7aWYoKG58MCk9PTQ0NCl7aWYobSl7YnJlYWt9fWNbaT4+Ml09NDtyZXR1cm59fXdoaWxl
KDApO2NbaT4+Ml09MztyZXR1cm59fXdoaWxlKDApO2lmKChmfDApIT0xKXtyZXR1cm59Y1tkKzMy
Pj4yXT0xO3JldHVybn1mdW5jdGlvbiBrSChiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wO2lmKChifDApIT0oY1tkKzg+PjJdfDApKXtpPWQrNTJ8
MDtqPWFbaV0mMTtrPWQrNTN8MDtsPWFba10mMTttPWNbYisxMj4+Ml18MDtuPWIrMTYrKG08PDMp
fDA7YVtpXT0wO2Fba109MDtvPWNbYisyMD4+Ml18MDtwPW8+Pjg7aWYoKG8mMXwwKT09MCl7cT1w
fWVsc2V7cT1jWyhjW2Y+PjJdfDApK3A+PjJdfDB9cD1jW2IrMTY+PjJdfDA7YjlbY1soY1twPj4y
XXwwKSsyMD4+Ml0mMzFdKHAsZCxlLGYrcXwwLChvJjJ8MCkhPTA/ZzoyLGgpO0w1OTg6ZG97aWYo
KG18MCk+MSl7bz1kKzI0fDA7cT1iKzh8MDtwPWQrNTR8MDtyPWY7cz1iKzI0fDA7ZG97aWYoKGFb
cF0mMSkhPTApe2JyZWFrIEw1OTh9ZG97aWYoKGFbaV0mMSk9PTApe2lmKChhW2tdJjEpPT0wKXti
cmVha31pZigoY1txPj4yXSYxfDApPT0wKXticmVhayBMNTk4fX1lbHNle2lmKChjW28+PjJdfDAp
PT0xKXticmVhayBMNTk4fWlmKChjW3E+PjJdJjJ8MCk9PTApe2JyZWFrIEw1OTh9fX13aGlsZSgw
KTthW2ldPTA7YVtrXT0wO3Q9Y1tzKzQ+PjJdfDA7dT10Pj44O2lmKCh0JjF8MCk9PTApe3Y9dX1l
bHNle3Y9Y1soY1tyPj4yXXwwKSt1Pj4yXXwwfXU9Y1tzPj4yXXwwO2I5W2NbKGNbdT4+Ml18MCkr
MjA+PjJdJjMxXSh1LGQsZSxmK3Z8MCwodCYyfDApIT0wP2c6MixoKTtzPXMrOHwwO313aGlsZShz
Pj4+MDxuPj4+MCl9fXdoaWxlKDApO2FbaV09ajthW2tdPWw7cmV0dXJufWFbZCs1M3wwXT0xO2lm
KChjW2QrND4+Ml18MCkhPShmfDApKXtyZXR1cm59YVtkKzUyfDBdPTE7Zj1kKzE2fDA7bD1jW2Y+
PjJdfDA7aWYoKGx8MCk9PTApe2NbZj4+Ml09ZTtjW2QrMjQ+PjJdPWc7Y1tkKzM2Pj4yXT0xO2lm
KCEoKGNbZCs0OD4+Ml18MCk9PTEmKGd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0dXJu
fWlmKChsfDApIT0oZXwwKSl7ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2FbZCs1NHww
XT0xO3JldHVybn1lPWQrMjR8MDtsPWNbZT4+Ml18MDtpZigobHwwKT09Mil7Y1tlPj4yXT1nO3c9
Z31lbHNle3c9bH1pZighKChjW2QrNDg+PjJdfDApPT0xJih3fDApPT0xKSl7cmV0dXJufWFbZCs1
NHwwXT0xO3JldHVybn1mdW5jdGlvbiBrSShiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGk9MCxqPTA7aWYoKGJ8MCkhPShjW2QrOD4+Ml18MCkpe2k9
Y1tiKzg+PjJdfDA7YjlbY1soY1tpPj4yXXwwKSsyMD4+Ml0mMzFdKGksZCxlLGYsZyxoKTtyZXR1
cm59YVtkKzUzfDBdPTE7aWYoKGNbZCs0Pj4yXXwwKSE9KGZ8MCkpe3JldHVybn1hW2QrNTJ8MF09
MTtmPWQrMTZ8MDtoPWNbZj4+Ml18MDtpZigoaHwwKT09MCl7Y1tmPj4yXT1lO2NbZCsyND4+Ml09
ZztjW2QrMzY+PjJdPTE7aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYoZ3wwKT09MSkpe3JldHVybn1h
W2QrNTR8MF09MTtyZXR1cm59aWYoKGh8MCkhPShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+
PjJdfDApKzE7YVtkKzU0fDBdPTE7cmV0dXJufWU9ZCsyNHwwO2g9Y1tlPj4yXXwwO2lmKChofDAp
PT0yKXtjW2U+PjJdPWc7aj1nfWVsc2V7aj1ofWlmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKGp8MCk9
PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0dXJufWZ1bmN0aW9uIGtKKGEpe2E9YXwwO3ZhciBi
PTAsZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxh
ZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MCxhbj0wLGFvPTAsYXA9
MCxhcT0wLGFyPTAsYXM9MCxhdD0wLGF1PTAsYXY9MCxhdz0wLGF4PTAsYXk9MCxhej0wLGFBPTAs
YUI9MCxhQz0wLGFEPTAsYUU9MCxhRj0wLGFHPTA7ZG97aWYoYT4+PjA8MjQ1KXtpZihhPj4+MDwx
MSl7Yj0xNn1lbHNle2I9YSsxMSYtOH1kPWI+Pj4zO2U9Y1syNDYwXXwwO2Y9ZT4+PihkPj4+MCk7
aWYoKGYmM3wwKSE9MCl7Zz0oZiYxXjEpK2R8MDtoPWc8PDE7aT05ODgwKyhoPDwyKXwwO2o9OTg4
MCsoaCsyPDwyKXwwO2g9Y1tqPj4yXXwwO2s9aCs4fDA7bD1jW2s+PjJdfDA7ZG97aWYoKGl8MCk9
PShsfDApKXtjWzI0NjBdPWUmfigxPDxnKX1lbHNle2lmKGw+Pj4wPChjWzI0NjRdfDApPj4+MCl7
YkcoKTtyZXR1cm4gMH1tPWwrMTJ8MDtpZigoY1ttPj4yXXwwKT09KGh8MCkpe2NbbT4+Ml09aTtj
W2o+PjJdPWw7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7bD1nPDwzO2NbaCs0
Pj4yXT1sfDM7aj1oKyhsfDQpfDA7Y1tqPj4yXT1jW2o+PjJdfDE7bj1rO3JldHVybiBufDB9aWYo
Yj4+PjA8PShjWzI0NjJdfDApPj4+MCl7bz1iO2JyZWFrfWlmKChmfDApIT0wKXtqPTI8PGQ7bD1m
PDxkJihqfC1qKTtqPShsJi1sKS0xfDA7bD1qPj4+MTImMTY7aT1qPj4+KGw+Pj4wKTtqPWk+Pj41
Jjg7bT1pPj4+KGo+Pj4wKTtpPW0+Pj4yJjQ7cD1tPj4+KGk+Pj4wKTttPXA+Pj4xJjI7cT1wPj4+
KG0+Pj4wKTtwPXE+Pj4xJjE7cj0oanxsfGl8bXxwKSsocT4+PihwPj4+MCkpfDA7cD1yPDwxO3E9
OTg4MCsocDw8Mil8MDttPTk4ODArKHArMjw8Mil8MDtwPWNbbT4+Ml18MDtpPXArOHwwO2w9Y1tp
Pj4yXXwwO2Rve2lmKChxfDApPT0obHwwKSl7Y1syNDYwXT1lJn4oMTw8cil9ZWxzZXtpZihsPj4+
MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9aj1sKzEyfDA7aWYoKGNbaj4+Ml18MCk9
PShwfDApKXtjW2o+PjJdPXE7Y1ttPj4yXT1sO2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdo
aWxlKDApO2w9cjw8MzttPWwtYnwwO2NbcCs0Pj4yXT1ifDM7cT1wO2U9cStifDA7Y1txKyhifDQp
Pj4yXT1tfDE7Y1txK2w+PjJdPW07bD1jWzI0NjJdfDA7aWYoKGx8MCkhPTApe3E9Y1syNDY1XXww
O2Q9bD4+PjM7bD1kPDwxO2Y9OTg4MCsobDw8Mil8MDtrPWNbMjQ2MF18MDtoPTE8PGQ7ZG97aWYo
KGsmaHwwKT09MCl7Y1syNDYwXT1rfGg7cz1mO3Q9OTg4MCsobCsyPDwyKXwwfWVsc2V7ZD05ODgw
KyhsKzI8PDIpfDA7Zz1jW2Q+PjJdfDA7aWYoZz4+PjA+PShjWzI0NjRdfDApPj4+MCl7cz1nO3Q9
ZDticmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtjW3Q+PjJdPXE7Y1tzKzEyPj4yXT1xO2Nb
cSs4Pj4yXT1zO2NbcSsxMj4+Ml09Zn1jWzI0NjJdPW07Y1syNDY1XT1lO249aTtyZXR1cm4gbnww
fWw9Y1syNDYxXXwwO2lmKChsfDApPT0wKXtvPWI7YnJlYWt9aD0obCYtbCktMXwwO2w9aD4+PjEy
JjE2O2s9aD4+PihsPj4+MCk7aD1rPj4+NSY4O3A9az4+PihoPj4+MCk7az1wPj4+MiY0O3I9cD4+
PihrPj4+MCk7cD1yPj4+MSYyO2Q9cj4+PihwPj4+MCk7cj1kPj4+MSYxO2c9Y1sxMDE0NCsoKGh8
bHxrfHB8cikrKGQ+Pj4ocj4+PjApKTw8Mik+PjJdfDA7cj1nO2Q9ZztwPShjW2crND4+Ml0mLTgp
LWJ8MDt3aGlsZSgxKXtnPWNbcisxNj4+Ml18MDtpZigoZ3wwKT09MCl7az1jW3IrMjA+PjJdfDA7
aWYoKGt8MCk9PTApe2JyZWFrfWVsc2V7dT1rfX1lbHNle3U9Z31nPShjW3UrND4+Ml0mLTgpLWJ8
MDtrPWc+Pj4wPHA+Pj4wO3I9dTtkPWs/dTpkO3A9az9nOnB9cj1kO2k9Y1syNDY0XXwwO2lmKHI+
Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAwfWU9citifDA7bT1lO2lmKHI+Pj4wPj1lPj4+MCl7Ykco
KTtyZXR1cm4gMH1lPWNbZCsyND4+Ml18MDtmPWNbZCsxMj4+Ml18MDtkb3tpZigoZnwwKT09KGR8
MCkpe3E9ZCsyMHwwO2c9Y1txPj4yXXwwO2lmKChnfDApPT0wKXtrPWQrMTZ8MDtsPWNbaz4+Ml18
MDtpZigobHwwKT09MCl7dj0wO2JyZWFrfWVsc2V7dz1sO3g9a319ZWxzZXt3PWc7eD1xfXdoaWxl
KDEpe3E9dysyMHwwO2c9Y1txPj4yXXwwO2lmKChnfDApIT0wKXt3PWc7eD1xO2NvbnRpbnVlfXE9
dysxNnwwO2c9Y1txPj4yXXwwO2lmKChnfDApPT0wKXticmVha31lbHNle3c9Zzt4PXF9fWlmKHg+
Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1t4Pj4yXT0wO3Y9dzticmVha319ZWxzZXtx
PWNbZCs4Pj4yXXwwO2lmKHE+Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAwfWc9cSsxMnwwO2lmKChj
W2c+PjJdfDApIT0oZHwwKSl7YkcoKTtyZXR1cm4gMH1rPWYrOHwwO2lmKChjW2s+PjJdfDApPT0o
ZHwwKSl7Y1tnPj4yXT1mO2Nbaz4+Ml09cTt2PWY7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19
d2hpbGUoMCk7TDc0MDpkb3tpZigoZXwwKSE9MCl7Zj1kKzI4fDA7aT0xMDE0NCsoY1tmPj4yXTw8
Mil8MDtkb3tpZigoZHwwKT09KGNbaT4+Ml18MCkpe2NbaT4+Ml09djtpZigodnwwKSE9MCl7YnJl
YWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1tmPj4yXSk7YnJlYWsgTDc0MH1lbHNle2lmKGU+Pj4w
PChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1xPWUrMTZ8MDtpZigoY1txPj4yXXwwKT09
KGR8MCkpe2NbcT4+Ml09dn1lbHNle2NbZSsyMD4+Ml09dn1pZigodnwwKT09MCl7YnJlYWsgTDc0
MH19fXdoaWxlKDApO2lmKHY+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1jW3Yr
MjQ+PjJdPWU7Zj1jW2QrMTY+PjJdfDA7ZG97aWYoKGZ8MCkhPTApe2lmKGY+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbdisxNj4+Ml09ZjtjW2YrMjQ+PjJdPXY7YnJl
YWt9fX13aGlsZSgwKTtmPWNbZCsyMD4+Ml18MDtpZigoZnwwKT09MCl7YnJlYWt9aWYoZj4+PjA8
KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1t2KzIwPj4yXT1mO2NbZisyND4+
Ml09djticmVha319fXdoaWxlKDApO2lmKHA+Pj4wPDE2KXtlPXArYnwwO2NbZCs0Pj4yXT1lfDM7
Zj1yKyhlKzQpfDA7Y1tmPj4yXT1jW2Y+PjJdfDF9ZWxzZXtjW2QrND4+Ml09YnwzO2NbcisoYnw0
KT4+Ml09cHwxO2NbcisocCtiKT4+Ml09cDtmPWNbMjQ2Ml18MDtpZigoZnwwKSE9MCl7ZT1jWzI0
NjVdfDA7aT1mPj4+MztmPWk8PDE7cT05ODgwKyhmPDwyKXwwO2s9Y1syNDYwXXwwO2c9MTw8aTtk
b3tpZigoayZnfDApPT0wKXtjWzI0NjBdPWt8Zzt5PXE7ej05ODgwKyhmKzI8PDIpfDB9ZWxzZXtp
PTk4ODArKGYrMjw8Mil8MDtsPWNbaT4+Ml18MDtpZihsPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXt5
PWw7ej1pO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2Nbej4+Ml09ZTtjW3krMTI+PjJd
PWU7Y1tlKzg+PjJdPXk7Y1tlKzEyPj4yXT1xfWNbMjQ2Ml09cDtjWzI0NjVdPW19Zj1kKzh8MDtp
ZigoZnwwKT09MCl7bz1iO2JyZWFrfWVsc2V7bj1mfXJldHVybiBufDB9ZWxzZXtpZihhPj4+MD40
Mjk0OTY3MjMxKXtvPS0xO2JyZWFrfWY9YSsxMXwwO2c9ZiYtODtrPWNbMjQ2MV18MDtpZigoa3ww
KT09MCl7bz1nO2JyZWFrfXI9LWd8MDtpPWY+Pj44O2Rve2lmKChpfDApPT0wKXtBPTB9ZWxzZXtp
ZihnPj4+MD4xNjc3NzIxNSl7QT0zMTticmVha31mPShpKzEwNDgzMjB8MCk+Pj4xNiY4O2w9aTw8
ZjtoPShsKzUyMDE5MnwwKT4+PjE2JjQ7aj1sPDxoO2w9KGorMjQ1NzYwfDApPj4+MTYmMjtCPTE0
LShofGZ8bCkrKGo8PGw+Pj4xNSl8MDtBPWc+Pj4oKEIrN3wwKT4+PjApJjF8Qjw8MX19d2hpbGUo
MCk7aT1jWzEwMTQ0KyhBPDwyKT4+Ml18MDtMNzg4OmRve2lmKChpfDApPT0wKXtDPTA7RD1yO0U9
MH1lbHNle2lmKChBfDApPT0zMSl7Rj0wfWVsc2V7Rj0yNS0oQT4+PjEpfDB9ZD0wO209cjtwPWk7
cT1nPDxGO2U9MDt3aGlsZSgxKXtCPWNbcCs0Pj4yXSYtODtsPUItZ3wwO2lmKGw+Pj4wPG0+Pj4w
KXtpZigoQnwwKT09KGd8MCkpe0M9cDtEPWw7RT1wO2JyZWFrIEw3ODh9ZWxzZXtHPXA7SD1sfX1l
bHNle0c9ZDtIPW19bD1jW3ArMjA+PjJdfDA7Qj1jW3ArMTYrKHE+Pj4zMTw8Mik+PjJdfDA7aj0o
bHwwKT09MHwobHwwKT09KEJ8MCk/ZTpsO2lmKChCfDApPT0wKXtDPUc7RD1IO0U9ajticmVha31l
bHNle2Q9RzttPUg7cD1CO3E9cTw8MTtlPWp9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTAmKEN8MCk9
PTApe2k9Mjw8QTtyPWsmKGl8LWkpO2lmKChyfDApPT0wKXtvPWc7YnJlYWt9aT0ociYtciktMXww
O3I9aT4+PjEyJjE2O2U9aT4+PihyPj4+MCk7aT1lPj4+NSY4O3E9ZT4+PihpPj4+MCk7ZT1xPj4+
MiY0O3A9cT4+PihlPj4+MCk7cT1wPj4+MSYyO209cD4+PihxPj4+MCk7cD1tPj4+MSYxO0k9Y1sx
MDE0NCsoKGl8cnxlfHF8cCkrKG0+Pj4ocD4+PjApKTw8Mik+PjJdfDB9ZWxzZXtJPUV9aWYoKEl8
MCk9PTApe0o9RDtLPUN9ZWxzZXtwPUk7bT1EO3E9Qzt3aGlsZSgxKXtlPShjW3ArND4+Ml0mLTgp
LWd8MDtyPWU+Pj4wPG0+Pj4wO2k9cj9lOm07ZT1yP3A6cTtyPWNbcCsxNj4+Ml18MDtpZigocnww
KSE9MCl7cD1yO209aTtxPWU7Y29udGludWV9cj1jW3ArMjA+PjJdfDA7aWYoKHJ8MCk9PTApe0o9
aTtLPWU7YnJlYWt9ZWxzZXtwPXI7bT1pO3E9ZX19fWlmKChLfDApPT0wKXtvPWc7YnJlYWt9aWYo
Sj4+PjA+PSgoY1syNDYyXXwwKS1nfDApPj4+MCl7bz1nO2JyZWFrfXE9SzttPWNbMjQ2NF18MDtp
ZihxPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4gMH1wPXErZ3wwO2s9cDtpZihxPj4+MD49cD4+PjAp
e2JHKCk7cmV0dXJuIDB9ZT1jW0srMjQ+PjJdfDA7aT1jW0srMTI+PjJdfDA7ZG97aWYoKGl8MCk9
PShLfDApKXtyPUsrMjB8MDtkPWNbcj4+Ml18MDtpZigoZHwwKT09MCl7aj1LKzE2fDA7Qj1jW2o+
PjJdfDA7aWYoKEJ8MCk9PTApe0w9MDticmVha31lbHNle009QjtOPWp9fWVsc2V7TT1kO049cn13
aGlsZSgxKXtyPU0rMjB8MDtkPWNbcj4+Ml18MDtpZigoZHwwKSE9MCl7TT1kO049cjtjb250aW51
ZX1yPU0rMTZ8MDtkPWNbcj4+Ml18MDtpZigoZHwwKT09MCl7YnJlYWt9ZWxzZXtNPWQ7Tj1yfX1p
ZihOPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbTj4+Ml09MDtMPU07YnJlYWt9fWVs
c2V7cj1jW0srOD4+Ml18MDtpZihyPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4gMH1kPXIrMTJ8MDtp
ZigoY1tkPj4yXXwwKSE9KEt8MCkpe2JHKCk7cmV0dXJuIDB9aj1pKzh8MDtpZigoY1tqPj4yXXww
KT09KEt8MCkpe2NbZD4+Ml09aTtjW2o+PjJdPXI7TD1pO2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4g
MH19fXdoaWxlKDApO0w4Mzg6ZG97aWYoKGV8MCkhPTApe2k9SysyOHwwO209MTAxNDQrKGNbaT4+
Ml08PDIpfDA7ZG97aWYoKEt8MCk9PShjW20+PjJdfDApKXtjW20+PjJdPUw7aWYoKEx8MCkhPTAp
e2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbaT4+Ml0pO2JyZWFrIEw4Mzh9ZWxzZXtpZihl
Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9cj1lKzE2fDA7aWYoKGNbcj4+Ml18
MCk9PShLfDApKXtjW3I+PjJdPUx9ZWxzZXtjW2UrMjA+PjJdPUx9aWYoKEx8MCk9PTApe2JyZWFr
IEw4Mzh9fX13aGlsZSgwKTtpZihMPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9
Y1tMKzI0Pj4yXT1lO2k9Y1tLKzE2Pj4yXXwwO2Rve2lmKChpfDApIT0wKXtpZihpPj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW0wrMTY+PjJdPWk7Y1tpKzI0Pj4yXT1M
O2JyZWFrfX19d2hpbGUoMCk7aT1jW0srMjA+PjJdfDA7aWYoKGl8MCk9PTApe2JyZWFrfWlmKGk+
Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbTCsyMD4+Ml09aTtjW2kr
MjQ+PjJdPUw7YnJlYWt9fX13aGlsZSgwKTtkb3tpZihKPj4+MDwxNil7ZT1KK2d8MDtjW0srND4+
Ml09ZXwzO2k9cSsoZSs0KXwwO2NbaT4+Ml09Y1tpPj4yXXwxfWVsc2V7Y1tLKzQ+PjJdPWd8Mztj
W3ErKGd8NCk+PjJdPUp8MTtjW3ErKEorZyk+PjJdPUo7aT1KPj4+MztpZihKPj4+MDwyNTYpe2U9
aTw8MTttPTk4ODArKGU8PDIpfDA7cj1jWzI0NjBdfDA7aj0xPDxpO2Rve2lmKChyJmp8MCk9PTAp
e2NbMjQ2MF09cnxqO089bTtQPTk4ODArKGUrMjw8Mil8MH1lbHNle2k9OTg4MCsoZSsyPDwyKXww
O2Q9Y1tpPj4yXXwwO2lmKGQ+Pj4wPj0oY1syNDY0XXwwKT4+PjApe089ZDtQPWk7YnJlYWt9Ykco
KTtyZXR1cm4gMH19d2hpbGUoMCk7Y1tQPj4yXT1rO2NbTysxMj4+Ml09aztjW3ErKGcrOCk+PjJd
PU87Y1txKyhnKzEyKT4+Ml09bTticmVha31lPXA7aj1KPj4+ODtkb3tpZigoanwwKT09MCl7UT0w
fWVsc2V7aWYoSj4+PjA+MTY3NzcyMTUpe1E9MzE7YnJlYWt9cj0oaisxMDQ4MzIwfDApPj4+MTYm
ODtpPWo8PHI7ZD0oaSs1MjAxOTJ8MCk+Pj4xNiY0O0I9aTw8ZDtpPShCKzI0NTc2MHwwKT4+PjE2
JjI7bD0xNC0oZHxyfGkpKyhCPDxpPj4+MTUpfDA7UT1KPj4+KChsKzd8MCk+Pj4wKSYxfGw8PDF9
fXdoaWxlKDApO2o9MTAxNDQrKFE8PDIpfDA7Y1txKyhnKzI4KT4+Ml09UTtjW3ErKGcrMjApPj4y
XT0wO2NbcSsoZysxNik+PjJdPTA7bT1jWzI0NjFdfDA7bD0xPDxRO2lmKChtJmx8MCk9PTApe2Nb
MjQ2MV09bXxsO2Nbaj4+Ml09ZTtjW3ErKGcrMjQpPj4yXT1qO2NbcSsoZysxMik+PjJdPWU7Y1tx
KyhnKzgpPj4yXT1lO2JyZWFrfWlmKChRfDApPT0zMSl7Uj0wfWVsc2V7Uj0yNS0oUT4+PjEpfDB9
bD1KPDxSO209Y1tqPj4yXXwwO3doaWxlKDEpe2lmKChjW20rND4+Ml0mLTh8MCk9PShKfDApKXti
cmVha31TPW0rMTYrKGw+Pj4zMTw8Mil8MDtqPWNbUz4+Ml18MDtpZigoanwwKT09MCl7VD02NjE7
YnJlYWt9ZWxzZXtsPWw8PDE7bT1qfX1pZigoVHwwKT09NjYxKXtpZihTPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW1M+PjJdPWU7Y1txKyhnKzI0KT4+Ml09bTtjW3Er
KGcrMTIpPj4yXT1lO2NbcSsoZys4KT4+Ml09ZTticmVha319bD1tKzh8MDtqPWNbbD4+Ml18MDtp
PWNbMjQ2NF18MDtpZihtPj4+MDxpPj4+MCl7YkcoKTtyZXR1cm4gMH1pZihqPj4+MDxpPj4+MCl7
YkcoKTtyZXR1cm4gMH1lbHNle2NbaisxMj4+Ml09ZTtjW2w+PjJdPWU7Y1txKyhnKzgpPj4yXT1q
O2NbcSsoZysxMik+PjJdPW07Y1txKyhnKzI0KT4+Ml09MDticmVha319fXdoaWxlKDApO3E9Sys4
fDA7aWYoKHF8MCk9PTApe289ZzticmVha31lbHNle249cX1yZXR1cm4gbnwwfX13aGlsZSgwKTtL
PWNbMjQ2Ml18MDtpZihvPj4+MDw9Sz4+PjApe1M9Sy1vfDA7Sj1jWzI0NjVdfDA7aWYoUz4+PjA+
MTUpe1I9SjtjWzI0NjVdPVIrbztjWzI0NjJdPVM7Y1tSKyhvKzQpPj4yXT1TfDE7Y1tSK0s+PjJd
PVM7Y1tKKzQ+PjJdPW98M31lbHNle2NbMjQ2Ml09MDtjWzI0NjVdPTA7Y1tKKzQ+PjJdPUt8MztT
PUorKEsrNCl8MDtjW1M+PjJdPWNbUz4+Ml18MX1uPUorOHwwO3JldHVybiBufDB9Sj1jWzI0NjNd
fDA7aWYobz4+PjA8Sj4+PjApe1M9Si1vfDA7Y1syNDYzXT1TO0o9Y1syNDY2XXwwO0s9SjtjWzI0
NjZdPUsrbztjW0srKG8rNCk+PjJdPVN8MTtjW0orND4+Ml09b3wzO249Sis4fDA7cmV0dXJuIG58
MH1kb3tpZigoY1syNDUwXXwwKT09MCl7Sj1iRSg4KXwwO2lmKChKLTEmSnwwKT09MCl7Y1syNDUy
XT1KO2NbMjQ1MV09SjtjWzI0NTNdPS0xO2NbMjQ1NF09LTE7Y1syNDU1XT0wO2NbMjU3MV09MDtj
WzI0NTBdPShiVigwKXwwKSYtMTZeMTQzMTY1NTc2ODticmVha31lbHNle2JHKCk7cmV0dXJuIDB9
fX13aGlsZSgwKTtKPW8rNDh8MDtTPWNbMjQ1Ml18MDtLPW8rNDd8MDtSPVMrS3wwO1E9LVN8MDtT
PVImUTtpZihTPj4+MDw9bz4+PjApe249MDtyZXR1cm4gbnwwfU89Y1syNTcwXXwwO2Rve2lmKChP
fDApIT0wKXtQPWNbMjU2OF18MDtMPVArU3wwO2lmKEw+Pj4wPD1QPj4+MHxMPj4+MD5PPj4+MCl7
bj0wfWVsc2V7YnJlYWt9cmV0dXJuIG58MH19d2hpbGUoMCk7TDkzMDpkb3tpZigoY1syNTcxXSY0
fDApPT0wKXtPPWNbMjQ2Nl18MDtMOTMyOmRve2lmKChPfDApPT0wKXtUPTY5MX1lbHNle0w9TztQ
PTEwMjg4O3doaWxlKDEpe1U9UHwwO009Y1tVPj4yXXwwO2lmKE0+Pj4wPD1MPj4+MCl7Vj1QKzR8
MDtpZigoTSsoY1tWPj4yXXwwKXwwKT4+PjA+TD4+PjApe2JyZWFrfX1NPWNbUCs4Pj4yXXwwO2lm
KChNfDApPT0wKXtUPTY5MTticmVhayBMOTMyfWVsc2V7UD1NfX1pZigoUHwwKT09MCl7VD02OTE7
YnJlYWt9TD1SLShjWzI0NjNdfDApJlE7aWYoTD4+PjA+PTIxNDc0ODM2NDcpe1c9MDticmVha31t
PWJ2KEx8MCl8MDtlPShtfDApPT0oKGNbVT4+Ml18MCkrKGNbVj4+Ml18MCl8MCk7WD1lP206LTE7
WT1lP0w6MDtaPW07Xz1MO1Q9NzAwfX13aGlsZSgwKTtkb3tpZigoVHwwKT09NjkxKXtPPWJ2KDAp
fDA7aWYoKE98MCk9PS0xKXtXPTA7YnJlYWt9Zz1PO0w9Y1syNDUxXXwwO209TC0xfDA7aWYoKG0m
Z3wwKT09MCl7JD1TfWVsc2V7JD1TLWcrKG0rZyYtTCl8MH1MPWNbMjU2OF18MDtnPUwrJHwwO2lm
KCEoJD4+PjA+bz4+PjAmJD4+PjA8MjE0NzQ4MzY0Nykpe1c9MDticmVha31tPWNbMjU3MF18MDtp
ZigobXwwKSE9MCl7aWYoZz4+PjA8PUw+Pj4wfGc+Pj4wPm0+Pj4wKXtXPTA7YnJlYWt9fW09YnYo
JHwwKXwwO2c9KG18MCk9PShPfDApO1g9Zz9POi0xO1k9Zz8kOjA7Wj1tO189JDtUPTcwMH19d2hp
bGUoMCk7TDk1Mjpkb3tpZigoVHwwKT09NzAwKXttPS1ffDA7aWYoKFh8MCkhPS0xKXthYT1ZO2Fi
PVg7VD03MTE7YnJlYWsgTDkzMH1kb3tpZigoWnwwKSE9LTEmXz4+PjA8MjE0NzQ4MzY0NyZfPj4+
MDxKPj4+MCl7Zz1jWzI0NTJdfDA7Tz1LLV8rZyYtZztpZihPPj4+MD49MjE0NzQ4MzY0Nyl7YWM9
XzticmVha31pZigoYnYoT3wwKXwwKT09LTEpe2J2KG18MCl8MDtXPVk7YnJlYWsgTDk1Mn1lbHNl
e2FjPU8rX3wwO2JyZWFrfX1lbHNle2FjPV99fXdoaWxlKDApO2lmKChafDApPT0tMSl7Vz1ZfWVs
c2V7YWE9YWM7YWI9WjtUPTcxMTticmVhayBMOTMwfX19d2hpbGUoMCk7Y1syNTcxXT1jWzI1NzFd
fDQ7YWQ9VztUPTcwOH1lbHNle2FkPTA7VD03MDh9fXdoaWxlKDApO2Rve2lmKChUfDApPT03MDgp
e2lmKFM+Pj4wPj0yMTQ3NDgzNjQ3KXticmVha31XPWJ2KFN8MCl8MDtaPWJ2KDApfDA7aWYoISgo
WnwwKSE9LTEmKFd8MCkhPS0xJlc+Pj4wPFo+Pj4wKSl7YnJlYWt9YWM9Wi1XfDA7Wj1hYz4+PjA+
KG8rNDB8MCk+Pj4wO1k9Wj9XOi0xO2lmKChZfDApIT0tMSl7YWE9Wj9hYzphZDthYj1ZO1Q9NzEx
fX19d2hpbGUoMCk7ZG97aWYoKFR8MCk9PTcxMSl7YWQ9KGNbMjU2OF18MCkrYWF8MDtjWzI1Njhd
PWFkO2lmKGFkPj4+MD4oY1syNTY5XXwwKT4+PjApe2NbMjU2OV09YWR9YWQ9Y1syNDY2XXwwO0w5
NzI6ZG97aWYoKGFkfDApPT0wKXtTPWNbMjQ2NF18MDtpZigoU3wwKT09MHxhYj4+PjA8Uz4+PjAp
e2NbMjQ2NF09YWJ9Y1syNTcyXT1hYjtjWzI1NzNdPWFhO2NbMjU3NV09MDtjWzI0NjldPWNbMjQ1
MF07Y1syNDY4XT0tMTtTPTA7ZG97WT1TPDwxO2FjPTk4ODArKFk8PDIpfDA7Y1s5ODgwKyhZKzM8
PDIpPj4yXT1hYztjWzk4ODArKFkrMjw8Mik+PjJdPWFjO1M9UysxfDA7fXdoaWxlKFM+Pj4wPDMy
KTtTPWFiKzh8MDtpZigoUyY3fDApPT0wKXthZT0wfWVsc2V7YWU9LVMmN31TPWFhLTQwLWFlfDA7
Y1syNDY2XT1hYithZTtjWzI0NjNdPVM7Y1thYisoYWUrNCk+PjJdPVN8MTtjW2FiKyhhYS0zNik+
PjJdPTQwO2NbMjQ2N109Y1syNDU0XX1lbHNle1M9MTAyODg7d2hpbGUoMSl7YWY9Y1tTPj4yXXww
O2FnPVMrNHwwO2FoPWNbYWc+PjJdfDA7aWYoKGFifDApPT0oYWYrYWh8MCkpe1Q9NzIzO2JyZWFr
fWFjPWNbUys4Pj4yXXwwO2lmKChhY3wwKT09MCl7YnJlYWt9ZWxzZXtTPWFjfX1kb3tpZigoVHww
KT09NzIzKXtpZigoY1tTKzEyPj4yXSY4fDApIT0wKXticmVha31hYz1hZDtpZighKGFjPj4+MD49
YWY+Pj4wJmFjPj4+MDxhYj4+PjApKXticmVha31jW2FnPj4yXT1haCthYTthYz1jWzI0NjZdfDA7
WT0oY1syNDYzXXwwKSthYXwwO1o9YWM7Vz1hYys4fDA7aWYoKFcmN3wwKT09MCl7YWk9MH1lbHNl
e2FpPS1XJjd9Vz1ZLWFpfDA7Y1syNDY2XT1aK2FpO2NbMjQ2M109VztjW1orKGFpKzQpPj4yXT1X
fDE7Y1taKyhZKzQpPj4yXT00MDtjWzI0NjddPWNbMjQ1NF07YnJlYWsgTDk3Mn19d2hpbGUoMCk7
aWYoYWI+Pj4wPChjWzI0NjRdfDApPj4+MCl7Y1syNDY0XT1hYn1TPWFiK2FhfDA7WT0xMDI4ODt3
aGlsZSgxKXthaj1ZfDA7aWYoKGNbYWo+PjJdfDApPT0oU3wwKSl7VD03MzM7YnJlYWt9Wj1jW1kr
OD4+Ml18MDtpZigoWnwwKT09MCl7YnJlYWt9ZWxzZXtZPVp9fWRve2lmKChUfDApPT03MzMpe2lm
KChjW1krMTI+PjJdJjh8MCkhPTApe2JyZWFrfWNbYWo+PjJdPWFiO1M9WSs0fDA7Y1tTPj4yXT0o
Y1tTPj4yXXwwKSthYTtTPWFiKzh8MDtpZigoUyY3fDApPT0wKXthaz0wfWVsc2V7YWs9LVMmN31T
PWFiKyhhYSs4KXwwO2lmKChTJjd8MCk9PTApe2FsPTB9ZWxzZXthbD0tUyY3fVM9YWIrKGFsK2Fh
KXwwO1o9UztXPWFrK298MDthYz1hYitXfDA7Xz1hYztLPVMtKGFiK2FrKS1vfDA7Y1thYisoYWsr
NCk+PjJdPW98Mztkb3tpZigoWnwwKT09KGNbMjQ2Nl18MCkpe0o9KGNbMjQ2M118MCkrS3wwO2Nb
MjQ2M109SjtjWzI0NjZdPV87Y1thYisoVys0KT4+Ml09SnwxfWVsc2V7aWYoKFp8MCk9PShjWzI0
NjVdfDApKXtKPShjWzI0NjJdfDApK0t8MDtjWzI0NjJdPUo7Y1syNDY1XT1fO2NbYWIrKFcrNCk+
PjJdPUp8MTtjW2FiKyhKK1cpPj4yXT1KO2JyZWFrfUo9YWErNHwwO1g9Y1thYisoSithbCk+PjJd
fDA7aWYoKFgmM3wwKT09MSl7JD1YJi04O1Y9WD4+PjM7TDEwMTc6ZG97aWYoWD4+PjA8MjU2KXtV
PWNbYWIrKChhbHw4KSthYSk+PjJdfDA7UT1jW2FiKyhhYSsxMithbCk+PjJdfDA7Uj05ODgwKyhW
PDwxPDwyKXwwO2Rve2lmKChVfDApIT0oUnwwKSl7aWYoVT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXti
RygpO3JldHVybiAwfWlmKChjW1UrMTI+PjJdfDApPT0oWnwwKSl7YnJlYWt9YkcoKTtyZXR1cm4g
MH19d2hpbGUoMCk7aWYoKFF8MCk9PShVfDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxWKTticmVh
a31kb3tpZigoUXwwKT09KFJ8MCkpe2FtPVErOHwwfWVsc2V7aWYoUT4+PjA8KGNbMjQ2NF18MCk+
Pj4wKXtiRygpO3JldHVybiAwfW09USs4fDA7aWYoKGNbbT4+Ml18MCk9PShafDApKXthbT1tO2Jy
ZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2NbVSsxMj4+Ml09UTtjW2FtPj4yXT1VfWVsc2V7
Uj1TO209Y1thYisoKGFsfDI0KSthYSk+PjJdfDA7UD1jW2FiKyhhYSsxMithbCk+PjJdfDA7ZG97
aWYoKFB8MCk9PShSfDApKXtPPWFsfDE2O2c9YWIrKEorTyl8MDtMPWNbZz4+Ml18MDtpZigoTHww
KT09MCl7ZT1hYisoTythYSl8MDtPPWNbZT4+Ml18MDtpZigoT3wwKT09MCl7YW49MDticmVha31l
bHNle2FvPU87YXA9ZX19ZWxzZXthbz1MO2FwPWd9d2hpbGUoMSl7Zz1hbysyMHwwO0w9Y1tnPj4y
XXwwO2lmKChMfDApIT0wKXthbz1MO2FwPWc7Y29udGludWV9Zz1hbysxNnwwO0w9Y1tnPj4yXXww
O2lmKChMfDApPT0wKXticmVha31lbHNle2FvPUw7YXA9Z319aWYoYXA+Pj4wPChjWzI0NjRdfDAp
Pj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbYXA+PjJdPTA7YW49YW87YnJlYWt9fWVsc2V7Zz1j
W2FiKygoYWx8OCkrYWEpPj4yXXwwO2lmKGc+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1MPWcrMTJ8MDtpZigoY1tMPj4yXXwwKSE9KFJ8MCkpe2JHKCk7cmV0dXJuIDB9ZT1QKzh8
MDtpZigoY1tlPj4yXXwwKT09KFJ8MCkpe2NbTD4+Ml09UDtjW2U+PjJdPWc7YW49UDticmVha31l
bHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtpZigobXwwKT09MCl7YnJlYWt9UD1hYisoYWEr
MjgrYWwpfDA7VT0xMDE0NCsoY1tQPj4yXTw8Mil8MDtkb3tpZigoUnwwKT09KGNbVT4+Ml18MCkp
e2NbVT4+Ml09YW47aWYoKGFufDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW1A+
PjJdKTticmVhayBMMTAxN31lbHNle2lmKG0+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1RPW0rMTZ8MDtpZigoY1tRPj4yXXwwKT09KFJ8MCkpe2NbUT4+Ml09YW59ZWxzZXtjW20r
MjA+PjJdPWFufWlmKChhbnwwKT09MCl7YnJlYWsgTDEwMTd9fX13aGlsZSgwKTtpZihhbj4+PjA8
KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWNbYW4rMjQ+PjJdPW07Uj1hbHwxNjtQPWNb
YWIrKFIrYWEpPj4yXXwwO2Rve2lmKChQfDApIT0wKXtpZihQPj4+MDwoY1syNDY0XXwwKT4+PjAp
e2JHKCk7cmV0dXJuIDB9ZWxzZXtjW2FuKzE2Pj4yXT1QO2NbUCsyND4+Ml09YW47YnJlYWt9fX13
aGlsZSgwKTtQPWNbYWIrKEorUik+PjJdfDA7aWYoKFB8MCk9PTApe2JyZWFrfWlmKFA+Pj4wPChj
WzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbYW4rMjA+PjJdPVA7Y1tQKzI0Pj4y
XT1hbjticmVha319fXdoaWxlKDApO2FxPWFiKygoJHxhbCkrYWEpfDA7YXI9JCtLfDB9ZWxzZXth
cT1aO2FyPUt9Sj1hcSs0fDA7Y1tKPj4yXT1jW0o+PjJdJi0yO2NbYWIrKFcrNCk+PjJdPWFyfDE7
Y1thYisoYXIrVyk+PjJdPWFyO0o9YXI+Pj4zO2lmKGFyPj4+MDwyNTYpe1Y9Sjw8MTtYPTk4ODAr
KFY8PDIpfDA7UD1jWzI0NjBdfDA7bT0xPDxKO2Rve2lmKChQJm18MCk9PTApe2NbMjQ2MF09UHxt
O2FzPVg7YXQ9OTg4MCsoVisyPDwyKXwwfWVsc2V7Sj05ODgwKyhWKzI8PDIpfDA7VT1jW0o+PjJd
fDA7aWYoVT4+PjA+PShjWzI0NjRdfDApPj4+MCl7YXM9VTthdD1KO2JyZWFrfWJHKCk7cmV0dXJu
IDB9fXdoaWxlKDApO2NbYXQ+PjJdPV87Y1thcysxMj4+Ml09XztjW2FiKyhXKzgpPj4yXT1hcztj
W2FiKyhXKzEyKT4+Ml09WDticmVha31WPWFjO209YXI+Pj44O2Rve2lmKChtfDApPT0wKXthdT0w
fWVsc2V7aWYoYXI+Pj4wPjE2Nzc3MjE1KXthdT0zMTticmVha31QPShtKzEwNDgzMjB8MCk+Pj4x
NiY4OyQ9bTw8UDtKPSgkKzUyMDE5MnwwKT4+PjE2JjQ7VT0kPDxKOyQ9KFUrMjQ1NzYwfDApPj4+
MTYmMjtRPTE0LShKfFB8JCkrKFU8PCQ+Pj4xNSl8MDthdT1hcj4+PigoUSs3fDApPj4+MCkmMXxR
PDwxfX13aGlsZSgwKTttPTEwMTQ0KyhhdTw8Mil8MDtjW2FiKyhXKzI4KT4+Ml09YXU7Y1thYiso
VysyMCk+PjJdPTA7Y1thYisoVysxNik+PjJdPTA7WD1jWzI0NjFdfDA7UT0xPDxhdTtpZigoWCZR
fDApPT0wKXtjWzI0NjFdPVh8UTtjW20+PjJdPVY7Y1thYisoVysyNCk+PjJdPW07Y1thYisoVysx
Mik+PjJdPVY7Y1thYisoVys4KT4+Ml09VjticmVha31pZigoYXV8MCk9PTMxKXthdj0wfWVsc2V7
YXY9MjUtKGF1Pj4+MSl8MH1RPWFyPDxhdjtYPWNbbT4+Ml18MDt3aGlsZSgxKXtpZigoY1tYKzQ+
PjJdJi04fDApPT0oYXJ8MCkpe2JyZWFrfWF3PVgrMTYrKFE+Pj4zMTw8Mil8MDttPWNbYXc+PjJd
fDA7aWYoKG18MCk9PTApe1Q9ODA2O2JyZWFrfWVsc2V7UT1RPDwxO1g9bX19aWYoKFR8MCk9PTgw
Nil7aWYoYXc+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbYXc+PjJd
PVY7Y1thYisoVysyNCk+PjJdPVg7Y1thYisoVysxMik+PjJdPVY7Y1thYisoVys4KT4+Ml09Vjti
cmVha319UT1YKzh8MDttPWNbUT4+Ml18MDskPWNbMjQ2NF18MDtpZihYPj4+MDwkPj4+MCl7Ykco
KTtyZXR1cm4gMH1pZihtPj4+MDwkPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbbSsxMj4+Ml09
VjtjW1E+PjJdPVY7Y1thYisoVys4KT4+Ml09bTtjW2FiKyhXKzEyKT4+Ml09WDtjW2FiKyhXKzI0
KT4+Ml09MDticmVha319fXdoaWxlKDApO249YWIrKGFrfDgpfDA7cmV0dXJuIG58MH19d2hpbGUo
MCk7WT1hZDtXPTEwMjg4O3doaWxlKDEpe2F4PWNbVz4+Ml18MDtpZihheD4+PjA8PVk+Pj4wKXth
eT1jW1crND4+Ml18MDthej1heCtheXwwO2lmKGF6Pj4+MD5ZPj4+MCl7YnJlYWt9fVc9Y1tXKzg+
PjJdfDB9Vz1heCsoYXktMzkpfDA7aWYoKFcmN3wwKT09MCl7YUE9MH1lbHNle2FBPS1XJjd9Vz1h
eCsoYXktNDcrYUEpfDA7YWM9Vz4+PjA8KGFkKzE2fDApPj4+MD9ZOlc7Vz1hYys4fDA7Xz1hYis4
fDA7aWYoKF8mN3wwKT09MCl7YUI9MH1lbHNle2FCPS1fJjd9Xz1hYS00MC1hQnwwO2NbMjQ2Nl09
YWIrYUI7Y1syNDYzXT1fO2NbYWIrKGFCKzQpPj4yXT1ffDE7Y1thYisoYWEtMzYpPj4yXT00MDtj
WzI0NjddPWNbMjQ1NF07Y1thYys0Pj4yXT0yNztjW1c+PjJdPWNbMjU3Ml07Y1tXKzQ+PjJdPWNb
MTAyOTI+PjJdO2NbVys4Pj4yXT1jWzEwMjk2Pj4yXTtjW1crMTI+PjJdPWNbMTAzMDA+PjJdO2Nb
MjU3Ml09YWI7Y1syNTczXT1hYTtjWzI1NzVdPTA7Y1syNTc0XT1XO1c9YWMrMjh8MDtjW1c+PjJd
PTc7aWYoKGFjKzMyfDApPj4+MDxhej4+PjApe189Vzt3aGlsZSgxKXtXPV8rNHwwO2NbVz4+Ml09
NztpZigoXys4fDApPj4+MDxhej4+PjApe189V31lbHNle2JyZWFrfX19aWYoKGFjfDApPT0oWXww
KSl7YnJlYWt9Xz1hYy1hZHwwO1c9WSsoXys0KXwwO2NbVz4+Ml09Y1tXPj4yXSYtMjtjW2FkKzQ+
PjJdPV98MTtjW1krXz4+Ml09XztXPV8+Pj4zO2lmKF8+Pj4wPDI1Nil7Sz1XPDwxO1o9OTg4MCso
Szw8Mil8MDtTPWNbMjQ2MF18MDttPTE8PFc7ZG97aWYoKFMmbXwwKT09MCl7Y1syNDYwXT1TfG07
YUM9WjthRD05ODgwKyhLKzI8PDIpfDB9ZWxzZXtXPTk4ODArKEsrMjw8Mil8MDtRPWNbVz4+Ml18
MDtpZihRPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXthQz1RO2FEPVc7YnJlYWt9YkcoKTtyZXR1cm4g
MH19d2hpbGUoMCk7Y1thRD4+Ml09YWQ7Y1thQysxMj4+Ml09YWQ7Y1thZCs4Pj4yXT1hQztjW2Fk
KzEyPj4yXT1aO2JyZWFrfUs9YWQ7bT1fPj4+ODtkb3tpZigobXwwKT09MCl7YUU9MH1lbHNle2lm
KF8+Pj4wPjE2Nzc3MjE1KXthRT0zMTticmVha31TPShtKzEwNDgzMjB8MCk+Pj4xNiY4O1k9bTw8
UzthYz0oWSs1MjAxOTJ8MCk+Pj4xNiY0O1c9WTw8YWM7WT0oVysyNDU3NjB8MCk+Pj4xNiYyO1E9
MTQtKGFjfFN8WSkrKFc8PFk+Pj4xNSl8MDthRT1fPj4+KChRKzd8MCk+Pj4wKSYxfFE8PDF9fXdo
aWxlKDApO209MTAxNDQrKGFFPDwyKXwwO2NbYWQrMjg+PjJdPWFFO2NbYWQrMjA+PjJdPTA7Y1th
ZCsxNj4+Ml09MDtaPWNbMjQ2MV18MDtRPTE8PGFFO2lmKChaJlF8MCk9PTApe2NbMjQ2MV09WnxR
O2NbbT4+Ml09SztjW2FkKzI0Pj4yXT1tO2NbYWQrMTI+PjJdPWFkO2NbYWQrOD4+Ml09YWQ7YnJl
YWt9aWYoKGFFfDApPT0zMSl7YUY9MH1lbHNle2FGPTI1LShhRT4+PjEpfDB9UT1fPDxhRjtaPWNb
bT4+Ml18MDt3aGlsZSgxKXtpZigoY1taKzQ+PjJdJi04fDApPT0oX3wwKSl7YnJlYWt9YUc9Wisx
NisoUT4+PjMxPDwyKXwwO209Y1thRz4+Ml18MDtpZigobXwwKT09MCl7VD04NDE7YnJlYWt9ZWxz
ZXtRPVE8PDE7Wj1tfX1pZigoVHwwKT09ODQxKXtpZihhRz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXti
RygpO3JldHVybiAwfWVsc2V7Y1thRz4+Ml09SztjW2FkKzI0Pj4yXT1aO2NbYWQrMTI+PjJdPWFk
O2NbYWQrOD4+Ml09YWQ7YnJlYWt9fVE9Wis4fDA7Xz1jW1E+PjJdfDA7bT1jWzI0NjRdfDA7aWYo
Wj4+PjA8bT4+PjApe2JHKCk7cmV0dXJuIDB9aWYoXz4+PjA8bT4+PjApe2JHKCk7cmV0dXJuIDB9
ZWxzZXtjW18rMTI+PjJdPUs7Y1tRPj4yXT1LO2NbYWQrOD4+Ml09XztjW2FkKzEyPj4yXT1aO2Nb
YWQrMjQ+PjJdPTA7YnJlYWt9fX13aGlsZSgwKTthZD1jWzI0NjNdfDA7aWYoYWQ+Pj4wPD1vPj4+
MCl7YnJlYWt9Xz1hZC1vfDA7Y1syNDYzXT1fO2FkPWNbMjQ2Nl18MDtRPWFkO2NbMjQ2Nl09UStv
O2NbUSsobys0KT4+Ml09X3wxO2NbYWQrND4+Ml09b3wzO249YWQrOHwwO3JldHVybiBufDB9fXdo
aWxlKDApO2NbKGJ3KCl8MCk+PjJdPTEyO249MDtyZXR1cm4gbnwwfWZ1bmN0aW9uIGtLKGEpe2E9
YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MDtpZigoYXww
KT09MCl7cmV0dXJufWI9YS04fDA7ZD1iO2U9Y1syNDY0XXwwO2lmKGI+Pj4wPGU+Pj4wKXtiRygp
fWY9Y1thLTQ+PjJdfDA7Zz1mJjM7aWYoKGd8MCk9PTEpe2JHKCl9aD1mJi04O2k9YSsoaC04KXww
O2o9aTtMMTE4OTpkb3tpZigoZiYxfDApPT0wKXtrPWNbYj4+Ml18MDtpZigoZ3wwKT09MCl7cmV0
dXJufWw9LTgta3wwO209YStsfDA7bj1tO289aytofDA7aWYobT4+PjA8ZT4+PjApe2JHKCl9aWYo
KG58MCk9PShjWzI0NjVdfDApKXtwPWErKGgtNCl8MDtpZigoY1twPj4yXSYzfDApIT0zKXtxPW47
cj1vO2JyZWFrfWNbMjQ2Ml09bztjW3A+PjJdPWNbcD4+Ml0mLTI7Y1thKyhsKzQpPj4yXT1vfDE7
Y1tpPj4yXT1vO3JldHVybn1wPWs+Pj4zO2lmKGs+Pj4wPDI1Nil7az1jW2ErKGwrOCk+PjJdfDA7
cz1jW2ErKGwrMTIpPj4yXXwwO3Q9OTg4MCsocDw8MTw8Mil8MDtkb3tpZigoa3wwKSE9KHR8MCkp
e2lmKGs+Pj4wPGU+Pj4wKXtiRygpfWlmKChjW2srMTI+PjJdfDApPT0obnwwKSl7YnJlYWt9Ykco
KX19d2hpbGUoMCk7aWYoKHN8MCk9PShrfDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxwKTtxPW47
cj1vO2JyZWFrfWRve2lmKChzfDApPT0odHwwKSl7dT1zKzh8MH1lbHNle2lmKHM+Pj4wPGU+Pj4w
KXtiRygpfXY9cys4fDA7aWYoKGNbdj4+Ml18MCk9PShufDApKXt1PXY7YnJlYWt9YkcoKX19d2hp
bGUoMCk7Y1trKzEyPj4yXT1zO2NbdT4+Ml09aztxPW47cj1vO2JyZWFrfXQ9bTtwPWNbYSsobCsy
NCk+PjJdfDA7dj1jW2ErKGwrMTIpPj4yXXwwO2Rve2lmKCh2fDApPT0odHwwKSl7dz1hKyhsKzIw
KXwwO3g9Y1t3Pj4yXXwwO2lmKCh4fDApPT0wKXt5PWErKGwrMTYpfDA7ej1jW3k+PjJdfDA7aWYo
KHp8MCk9PTApe0E9MDticmVha31lbHNle0I9ejtDPXl9fWVsc2V7Qj14O0M9d313aGlsZSgxKXt3
PUIrMjB8MDt4PWNbdz4+Ml18MDtpZigoeHwwKSE9MCl7Qj14O0M9dztjb250aW51ZX13PUIrMTZ8
MDt4PWNbdz4+Ml18MDtpZigoeHwwKT09MCl7YnJlYWt9ZWxzZXtCPXg7Qz13fX1pZihDPj4+MDxl
Pj4+MCl7YkcoKX1lbHNle2NbQz4+Ml09MDtBPUI7YnJlYWt9fWVsc2V7dz1jW2ErKGwrOCk+PjJd
fDA7aWYodz4+PjA8ZT4+PjApe2JHKCl9eD13KzEyfDA7aWYoKGNbeD4+Ml18MCkhPSh0fDApKXti
RygpfXk9dis4fDA7aWYoKGNbeT4+Ml18MCk9PSh0fDApKXtjW3g+PjJdPXY7Y1t5Pj4yXT13O0E9
djticmVha31lbHNle2JHKCl9fX13aGlsZSgwKTtpZigocHwwKT09MCl7cT1uO3I9bzticmVha312
PWErKGwrMjgpfDA7bT0xMDE0NCsoY1t2Pj4yXTw8Mil8MDtkb3tpZigodHwwKT09KGNbbT4+Ml18
MCkpe2NbbT4+Ml09QTtpZigoQXwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1t2
Pj4yXSk7cT1uO3I9bzticmVhayBMMTE4OX1lbHNle2lmKHA+Pj4wPChjWzI0NjRdfDApPj4+MCl7
YkcoKX1rPXArMTZ8MDtpZigoY1trPj4yXXwwKT09KHR8MCkpe2Nbaz4+Ml09QX1lbHNle2NbcCsy
MD4+Ml09QX1pZigoQXwwKT09MCl7cT1uO3I9bzticmVhayBMMTE4OX19fXdoaWxlKDApO2lmKEE+
Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1jW0ErMjQ+PjJdPXA7dD1jW2ErKGwrMTYpPj4yXXww
O2Rve2lmKCh0fDApIT0wKXtpZih0Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW0Er
MTY+PjJdPXQ7Y1t0KzI0Pj4yXT1BO2JyZWFrfX19d2hpbGUoMCk7dD1jW2ErKGwrMjApPj4yXXww
O2lmKCh0fDApPT0wKXtxPW47cj1vO2JyZWFrfWlmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KX1lbHNle2NbQSsyMD4+Ml09dDtjW3QrMjQ+PjJdPUE7cT1uO3I9bzticmVha319ZWxzZXtxPWQ7
cj1ofX13aGlsZSgwKTtkPXE7aWYoZD4+PjA+PWk+Pj4wKXtiRygpfUE9YSsoaC00KXwwO2U9Y1tB
Pj4yXXwwO2lmKChlJjF8MCk9PTApe2JHKCl9ZG97aWYoKGUmMnwwKT09MCl7aWYoKGp8MCk9PShj
WzI0NjZdfDApKXtCPShjWzI0NjNdfDApK3J8MDtjWzI0NjNdPUI7Y1syNDY2XT1xO2NbcSs0Pj4y
XT1CfDE7aWYoKHF8MCkhPShjWzI0NjVdfDApKXtyZXR1cm59Y1syNDY1XT0wO2NbMjQ2Ml09MDty
ZXR1cm59aWYoKGp8MCk9PShjWzI0NjVdfDApKXtCPShjWzI0NjJdfDApK3J8MDtjWzI0NjJdPUI7
Y1syNDY1XT1xO2NbcSs0Pj4yXT1CfDE7Y1tkK0I+PjJdPUI7cmV0dXJufUI9KGUmLTgpK3J8MDtD
PWU+Pj4zO0wxMjkyOmRve2lmKGU+Pj4wPDI1Nil7dT1jW2EraD4+Ml18MDtnPWNbYSsoaHw0KT4+
Ml18MDtiPTk4ODArKEM8PDE8PDIpfDA7ZG97aWYoKHV8MCkhPShifDApKXtpZih1Pj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCl9aWYoKGNbdSsxMj4+Ml18MCk9PShqfDApKXticmVha31iRygpfX13
aGlsZSgwKTtpZigoZ3wwKT09KHV8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PEMpO2JyZWFrfWRv
e2lmKChnfDApPT0oYnwwKSl7RD1nKzh8MH1lbHNle2lmKGc+Pj4wPChjWzI0NjRdfDApPj4+MCl7
YkcoKX1mPWcrOHwwO2lmKChjW2Y+PjJdfDApPT0oanwwKSl7RD1mO2JyZWFrfWJHKCl9fXdoaWxl
KDApO2NbdSsxMj4+Ml09ZztjW0Q+PjJdPXV9ZWxzZXtiPWk7Zj1jW2ErKGgrMTYpPj4yXXwwO3Q9
Y1thKyhofDQpPj4yXXwwO2Rve2lmKCh0fDApPT0oYnwwKSl7cD1hKyhoKzEyKXwwO3Y9Y1twPj4y
XXwwO2lmKCh2fDApPT0wKXttPWErKGgrOCl8MDtrPWNbbT4+Ml18MDtpZigoa3wwKT09MCl7RT0w
O2JyZWFrfWVsc2V7Rj1rO0c9bX19ZWxzZXtGPXY7Rz1wfXdoaWxlKDEpe3A9RisyMHwwO3Y9Y1tw
Pj4yXXwwO2lmKCh2fDApIT0wKXtGPXY7Rz1wO2NvbnRpbnVlfXA9RisxNnwwO3Y9Y1twPj4yXXww
O2lmKCh2fDApPT0wKXticmVha31lbHNle0Y9djtHPXB9fWlmKEc+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKX1lbHNle2NbRz4+Ml09MDtFPUY7YnJlYWt9fWVsc2V7cD1jW2EraD4+Ml18MDtpZihw
Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9dj1wKzEyfDA7aWYoKGNbdj4+Ml18MCkhPShifDAp
KXtiRygpfW09dCs4fDA7aWYoKGNbbT4+Ml18MCk9PShifDApKXtjW3Y+PjJdPXQ7Y1ttPj4yXT1w
O0U9dDticmVha31lbHNle2JHKCl9fX13aGlsZSgwKTtpZigoZnwwKT09MCl7YnJlYWt9dD1hKyho
KzIwKXwwO3U9MTAxNDQrKGNbdD4+Ml08PDIpfDA7ZG97aWYoKGJ8MCk9PShjW3U+PjJdfDApKXtj
W3U+PjJdPUU7aWYoKEV8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbdD4+Ml0p
O2JyZWFrIEwxMjkyfWVsc2V7aWYoZj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWc9ZisxNnww
O2lmKChjW2c+PjJdfDApPT0oYnwwKSl7Y1tnPj4yXT1FfWVsc2V7Y1tmKzIwPj4yXT1FfWlmKChF
fDApPT0wKXticmVhayBMMTI5Mn19fXdoaWxlKDApO2lmKEU+Pj4wPChjWzI0NjRdfDApPj4+MCl7
YkcoKX1jW0UrMjQ+PjJdPWY7Yj1jW2ErKGgrOCk+PjJdfDA7ZG97aWYoKGJ8MCkhPTApe2lmKGI+
Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbRSsxNj4+Ml09YjtjW2IrMjQ+PjJdPUU7
YnJlYWt9fX13aGlsZSgwKTtiPWNbYSsoaCsxMik+PjJdfDA7aWYoKGJ8MCk9PTApe2JyZWFrfWlm
KGI+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbRSsyMD4+Ml09YjtjW2IrMjQ+PjJd
PUU7YnJlYWt9fX13aGlsZSgwKTtjW3ErND4+Ml09QnwxO2NbZCtCPj4yXT1CO2lmKChxfDApIT0o
Y1syNDY1XXwwKSl7SD1CO2JyZWFrfWNbMjQ2Ml09QjtyZXR1cm59ZWxzZXtjW0E+PjJdPWUmLTI7
Y1txKzQ+PjJdPXJ8MTtjW2Qrcj4+Ml09cjtIPXJ9fXdoaWxlKDApO3I9SD4+PjM7aWYoSD4+PjA8
MjU2KXtkPXI8PDE7ZT05ODgwKyhkPDwyKXwwO0E9Y1syNDYwXXwwO0U9MTw8cjtkb3tpZigoQSZF
fDApPT0wKXtjWzI0NjBdPUF8RTtJPWU7Sj05ODgwKyhkKzI8PDIpfDB9ZWxzZXtyPTk4ODArKGQr
Mjw8Mil8MDtoPWNbcj4+Ml18MDtpZihoPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXtJPWg7Sj1yO2Jy
ZWFrfWJHKCl9fXdoaWxlKDApO2NbSj4+Ml09cTtjW0krMTI+PjJdPXE7Y1txKzg+PjJdPUk7Y1tx
KzEyPj4yXT1lO3JldHVybn1lPXE7ST1IPj4+ODtkb3tpZigoSXwwKT09MCl7Sz0wfWVsc2V7aWYo
SD4+PjA+MTY3NzcyMTUpe0s9MzE7YnJlYWt9Sj0oSSsxMDQ4MzIwfDApPj4+MTYmODtkPUk8PEo7
RT0oZCs1MjAxOTJ8MCk+Pj4xNiY0O0E9ZDw8RTtkPShBKzI0NTc2MHwwKT4+PjE2JjI7cj0xNC0o
RXxKfGQpKyhBPDxkPj4+MTUpfDA7Sz1IPj4+KChyKzd8MCk+Pj4wKSYxfHI8PDF9fXdoaWxlKDAp
O0k9MTAxNDQrKEs8PDIpfDA7Y1txKzI4Pj4yXT1LO2NbcSsyMD4+Ml09MDtjW3ErMTY+PjJdPTA7
cj1jWzI0NjFdfDA7ZD0xPDxLO2Rve2lmKChyJmR8MCk9PTApe2NbMjQ2MV09cnxkO2NbST4+Ml09
ZTtjW3ErMjQ+PjJdPUk7Y1txKzEyPj4yXT1xO2NbcSs4Pj4yXT1xfWVsc2V7aWYoKEt8MCk9PTMx
KXtMPTB9ZWxzZXtMPTI1LShLPj4+MSl8MH1BPUg8PEw7Sj1jW0k+PjJdfDA7d2hpbGUoMSl7aWYo
KGNbSis0Pj4yXSYtOHwwKT09KEh8MCkpe2JyZWFrfU09SisxNisoQT4+PjMxPDwyKXwwO0U9Y1tN
Pj4yXXwwO2lmKChFfDApPT0wKXtOPTEwMTg7YnJlYWt9ZWxzZXtBPUE8PDE7Sj1FfX1pZigoTnww
KT09MTAxOCl7aWYoTT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tNPj4yXT1lO2Nb
cSsyND4+Ml09SjtjW3ErMTI+PjJdPXE7Y1txKzg+PjJdPXE7YnJlYWt9fUE9Sis4fDA7Qj1jW0E+
PjJdfDA7RT1jWzI0NjRdfDA7aWYoSj4+PjA8RT4+PjApe2JHKCl9aWYoQj4+PjA8RT4+PjApe2JH
KCl9ZWxzZXtjW0IrMTI+PjJdPWU7Y1tBPj4yXT1lO2NbcSs4Pj4yXT1CO2NbcSsxMj4+Ml09Sjtj
W3ErMjQ+PjJdPTA7YnJlYWt9fX13aGlsZSgwKTtxPShjWzI0NjhdfDApLTF8MDtjWzI0NjhdPXE7
aWYoKHF8MCk9PTApe089MTAyOTZ9ZWxzZXtyZXR1cm59d2hpbGUoMSl7cT1jW08+PjJdfDA7aWYo
KHF8MCk9PTApe2JyZWFrfWVsc2V7Tz1xKzh8MH19Y1syNDY4XT0tMTtyZXR1cm59ZnVuY3Rpb24g
a0woYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wO2lmKChhfDApPT0wKXtkPWtK
KGIpfDA7cmV0dXJuIGR8MH1pZihiPj4+MD40Mjk0OTY3MjMxKXtjWyhidygpfDApPj4yXT0xMjtk
PTA7cmV0dXJuIGR8MH1pZihiPj4+MDwxMSl7ZT0xNn1lbHNle2U9YisxMSYtOH1mPWtNKGEtOHww
LGUpfDA7aWYoKGZ8MCkhPTApe2Q9Zis4fDA7cmV0dXJuIGR8MH1mPWtKKGIpfDA7aWYoKGZ8MCk9
PTApe2Q9MDtyZXR1cm4gZHwwfWU9Y1thLTQ+PjJdfDA7Zz0oZSYtOCktKChlJjN8MCk9PTA/ODo0
KXwwO2U9Zz4+PjA8Yj4+PjA/ZzpiO2tZKGZ8MCxhfDAsZSl8MDtrSyhhKTtkPWY7cmV0dXJuIGR8
MH1mdW5jdGlvbiBrTShhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGk9
MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MCx5PTAsej0wLEE9MDtkPWErNHwwO2U9Y1tkPj4yXXwwO2Y9ZSYtODtnPWE7aD1nK2Z8MDtp
PWg7aj1jWzI0NjRdfDA7aWYoZz4+PjA8aj4+PjApe2JHKCk7cmV0dXJuIDB9az1lJjM7aWYoISgo
a3wwKSE9MSZnPj4+MDxoPj4+MCkpe2JHKCk7cmV0dXJuIDB9bD1nKyhmfDQpfDA7bT1jW2w+PjJd
fDA7aWYoKG0mMXwwKT09MCl7YkcoKTtyZXR1cm4gMH1pZigoa3wwKT09MCl7aWYoYj4+PjA8MjU2
KXtuPTA7cmV0dXJuIG58MH1kb3tpZihmPj4+MD49KGIrNHwwKT4+PjApe2lmKChmLWJ8MCk+Pj4w
PmNbMjQ1Ml08PDE+Pj4wKXticmVha31lbHNle249YX1yZXR1cm4gbnwwfX13aGlsZSgwKTtuPTA7
cmV0dXJuIG58MH1pZihmPj4+MD49Yj4+PjApe2s9Zi1ifDA7aWYoaz4+PjA8PTE1KXtuPWE7cmV0
dXJuIG58MH1jW2Q+PjJdPWUmMXxifDI7Y1tnKyhiKzQpPj4yXT1rfDM7Y1tsPj4yXT1jW2w+PjJd
fDE7a04oZytifDAsayk7bj1hO3JldHVybiBufDB9aWYoKGl8MCk9PShjWzI0NjZdfDApKXtrPShj
WzI0NjNdfDApK2Z8MDtpZihrPj4+MDw9Yj4+PjApe249MDtyZXR1cm4gbnwwfWw9ay1ifDA7Y1tk
Pj4yXT1lJjF8YnwyO2NbZysoYis0KT4+Ml09bHwxO2NbMjQ2Nl09ZytiO2NbMjQ2M109bDtuPWE7
cmV0dXJuIG58MH1pZigoaXwwKT09KGNbMjQ2NV18MCkpe2w9KGNbMjQ2Ml18MCkrZnwwO2lmKGw+
Pj4wPGI+Pj4wKXtuPTA7cmV0dXJuIG58MH1rPWwtYnwwO2lmKGs+Pj4wPjE1KXtjW2Q+PjJdPWUm
MXxifDI7Y1tnKyhiKzQpPj4yXT1rfDE7Y1tnK2w+PjJdPWs7bz1nKyhsKzQpfDA7Y1tvPj4yXT1j
W28+PjJdJi0yO3A9ZytifDA7cT1rfWVsc2V7Y1tkPj4yXT1lJjF8bHwyO2U9ZysobCs0KXwwO2Nb
ZT4+Ml09Y1tlPj4yXXwxO3A9MDtxPTB9Y1syNDYyXT1xO2NbMjQ2NV09cDtuPWE7cmV0dXJuIG58
MH1pZigobSYyfDApIT0wKXtuPTA7cmV0dXJuIG58MH1wPShtJi04KStmfDA7aWYocD4+PjA8Yj4+
PjApe249MDtyZXR1cm4gbnwwfXE9cC1ifDA7ZT1tPj4+MztMMTQ3ODpkb3tpZihtPj4+MDwyNTYp
e2w9Y1tnKyhmKzgpPj4yXXwwO2s9Y1tnKyhmKzEyKT4+Ml18MDtvPTk4ODArKGU8PDE8PDIpfDA7
ZG97aWYoKGx8MCkhPShvfDApKXtpZihsPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1pZigoY1ts
KzEyPj4yXXwwKT09KGl8MCkpe2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2lmKChrfDAp
PT0obHwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8ZSk7YnJlYWt9ZG97aWYoKGt8MCk9PShvfDAp
KXtyPWsrOHwwfWVsc2V7aWYoaz4+PjA8aj4+PjApe2JHKCk7cmV0dXJuIDB9cz1rKzh8MDtpZigo
Y1tzPj4yXXwwKT09KGl8MCkpe3I9czticmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtjW2wr
MTI+PjJdPWs7Y1tyPj4yXT1sfWVsc2V7bz1oO3M9Y1tnKyhmKzI0KT4+Ml18MDt0PWNbZysoZisx
Mik+PjJdfDA7ZG97aWYoKHR8MCk9PShvfDApKXt1PWcrKGYrMjApfDA7dj1jW3U+PjJdfDA7aWYo
KHZ8MCk9PTApe3c9ZysoZisxNil8MDt4PWNbdz4+Ml18MDtpZigoeHwwKT09MCl7eT0wO2JyZWFr
fWVsc2V7ej14O0E9d319ZWxzZXt6PXY7QT11fXdoaWxlKDEpe3U9eisyMHwwO3Y9Y1t1Pj4yXXww
O2lmKCh2fDApIT0wKXt6PXY7QT11O2NvbnRpbnVlfXU9eisxNnwwO3Y9Y1t1Pj4yXXwwO2lmKCh2
fDApPT0wKXticmVha31lbHNle3o9djtBPXV9fWlmKEE+Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAw
fWVsc2V7Y1tBPj4yXT0wO3k9ejticmVha319ZWxzZXt1PWNbZysoZis4KT4+Ml18MDtpZih1Pj4+
MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH12PXUrMTJ8MDtpZigoY1t2Pj4yXXwwKSE9KG98MCkpe2JH
KCk7cmV0dXJuIDB9dz10Kzh8MDtpZigoY1t3Pj4yXXwwKT09KG98MCkpe2Nbdj4+Ml09dDtjW3c+
PjJdPXU7eT10O2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDApO2lmKChzfDApPT0w
KXticmVha310PWcrKGYrMjgpfDA7bD0xMDE0NCsoY1t0Pj4yXTw8Mil8MDtkb3tpZigob3wwKT09
KGNbbD4+Ml18MCkpe2NbbD4+Ml09eTtpZigoeXwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFd
Jn4oMTw8Y1t0Pj4yXSk7YnJlYWsgTDE0Nzh9ZWxzZXtpZihzPj4+MDwoY1syNDY0XXwwKT4+PjAp
e2JHKCk7cmV0dXJuIDB9az1zKzE2fDA7aWYoKGNbaz4+Ml18MCk9PShvfDApKXtjW2s+PjJdPXl9
ZWxzZXtjW3MrMjA+PjJdPXl9aWYoKHl8MCk9PTApe2JyZWFrIEwxNDc4fX19d2hpbGUoMCk7aWYo
eT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWNbeSsyND4+Ml09cztvPWNbZyso
ZisxNik+PjJdfDA7ZG97aWYoKG98MCkhPTApe2lmKG8+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KTtyZXR1cm4gMH1lbHNle2NbeSsxNj4+Ml09bztjW28rMjQ+PjJdPXk7YnJlYWt9fX13aGlsZSgw
KTtvPWNbZysoZisyMCk+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfWlmKG8+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbeSsyMD4+Ml09bztjW28rMjQ+PjJdPXk7YnJl
YWt9fX13aGlsZSgwKTtpZihxPj4+MDwxNil7Y1tkPj4yXT1wfGNbZD4+Ml0mMXwyO3k9ZysocHw0
KXwwO2NbeT4+Ml09Y1t5Pj4yXXwxO249YTtyZXR1cm4gbnwwfWVsc2V7Y1tkPj4yXT1jW2Q+PjJd
JjF8YnwyO2NbZysoYis0KT4+Ml09cXwzO2Q9ZysocHw0KXwwO2NbZD4+Ml09Y1tkPj4yXXwxO2tO
KGcrYnwwLHEpO249YTtyZXR1cm4gbnwwfXJldHVybiAwfWZ1bmN0aW9uIGtOKGEsYil7YT1hfDA7
Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTA7ZD1hO2U9ZCtifDA7Zj1lO2c9Y1th
KzQ+PjJdfDA7TDE1NTQ6ZG97aWYoKGcmMXwwKT09MCl7aD1jW2E+PjJdfDA7aWYoKGcmM3wwKT09
MCl7cmV0dXJufWk9ZCsoLWh8MCl8MDtqPWk7az1oK2J8MDtsPWNbMjQ2NF18MDtpZihpPj4+MDxs
Pj4+MCl7YkcoKX1pZigoanwwKT09KGNbMjQ2NV18MCkpe209ZCsoYis0KXwwO2lmKChjW20+PjJd
JjN8MCkhPTMpe249ajtvPWs7YnJlYWt9Y1syNDYyXT1rO2NbbT4+Ml09Y1ttPj4yXSYtMjtjW2Qr
KDQtaCk+PjJdPWt8MTtjW2U+PjJdPWs7cmV0dXJufW09aD4+PjM7aWYoaD4+PjA8MjU2KXtwPWNb
ZCsoOC1oKT4+Ml18MDtxPWNbZCsoMTItaCk+PjJdfDA7cj05ODgwKyhtPDwxPDwyKXwwO2Rve2lm
KChwfDApIT0ocnwwKSl7aWYocD4+PjA8bD4+PjApe2JHKCl9aWYoKGNbcCsxMj4+Ml18MCk9PShq
fDApKXticmVha31iRygpfX13aGlsZSgwKTtpZigocXwwKT09KHB8MCkpe2NbMjQ2MF09Y1syNDYw
XSZ+KDE8PG0pO249ajtvPWs7YnJlYWt9ZG97aWYoKHF8MCk9PShyfDApKXtzPXErOHwwfWVsc2V7
aWYocT4+PjA8bD4+PjApe2JHKCl9dD1xKzh8MDtpZigoY1t0Pj4yXXwwKT09KGp8MCkpe3M9dDti
cmVha31iRygpfX13aGlsZSgwKTtjW3ArMTI+PjJdPXE7Y1tzPj4yXT1wO249ajtvPWs7YnJlYWt9
cj1pO209Y1tkKygyNC1oKT4+Ml18MDt0PWNbZCsoMTItaCk+PjJdfDA7ZG97aWYoKHR8MCk9PShy
fDApKXt1PTE2LWh8MDt2PWQrKHUrNCl8MDt3PWNbdj4+Ml18MDtpZigod3wwKT09MCl7eD1kK3V8
MDt1PWNbeD4+Ml18MDtpZigodXwwKT09MCl7eT0wO2JyZWFrfWVsc2V7ej11O0E9eH19ZWxzZXt6
PXc7QT12fXdoaWxlKDEpe3Y9eisyMHwwO3c9Y1t2Pj4yXXwwO2lmKCh3fDApIT0wKXt6PXc7QT12
O2NvbnRpbnVlfXY9eisxNnwwO3c9Y1t2Pj4yXXwwO2lmKCh3fDApPT0wKXticmVha31lbHNle3o9
dztBPXZ9fWlmKEE+Pj4wPGw+Pj4wKXtiRygpfWVsc2V7Y1tBPj4yXT0wO3k9ejticmVha319ZWxz
ZXt2PWNbZCsoOC1oKT4+Ml18MDtpZih2Pj4+MDxsPj4+MCl7YkcoKX13PXYrMTJ8MDtpZigoY1t3
Pj4yXXwwKSE9KHJ8MCkpe2JHKCl9eD10Kzh8MDtpZigoY1t4Pj4yXXwwKT09KHJ8MCkpe2Nbdz4+
Ml09dDtjW3g+PjJdPXY7eT10O2JyZWFrfWVsc2V7YkcoKX19fXdoaWxlKDApO2lmKChtfDApPT0w
KXtuPWo7bz1rO2JyZWFrfXQ9ZCsoMjgtaCl8MDtsPTEwMTQ0KyhjW3Q+PjJdPDwyKXwwO2Rve2lm
KChyfDApPT0oY1tsPj4yXXwwKSl7Y1tsPj4yXT15O2lmKCh5fDApIT0wKXticmVha31jWzI0NjFd
PWNbMjQ2MV0mfigxPDxjW3Q+PjJdKTtuPWo7bz1rO2JyZWFrIEwxNTU0fWVsc2V7aWYobT4+PjA8
KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWk9bSsxNnwwO2lmKChjW2k+PjJdfDApPT0ocnwwKSl7Y1tp
Pj4yXT15fWVsc2V7Y1ttKzIwPj4yXT15fWlmKCh5fDApPT0wKXtuPWo7bz1rO2JyZWFrIEwxNTU0
fX19d2hpbGUoMCk7aWYoeT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWNbeSsyND4+Ml09bTty
PTE2LWh8MDt0PWNbZCtyPj4yXXwwO2Rve2lmKCh0fDApIT0wKXtpZih0Pj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCl9ZWxzZXtjW3krMTY+PjJdPXQ7Y1t0KzI0Pj4yXT15O2JyZWFrfX19d2hpbGUo
MCk7dD1jW2QrKHIrNCk+PjJdfDA7aWYoKHR8MCk9PTApe249ajtvPWs7YnJlYWt9aWYodD4+PjA8
KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1t5KzIwPj4yXT10O2NbdCsyND4+Ml09eTtuPWo7
bz1rO2JyZWFrfX1lbHNle249YTtvPWJ9fXdoaWxlKDApO2E9Y1syNDY0XXwwO2lmKGU+Pj4wPGE+
Pj4wKXtiRygpfXk9ZCsoYis0KXwwO3o9Y1t5Pj4yXXwwO2Rve2lmKCh6JjJ8MCk9PTApe2lmKChm
fDApPT0oY1syNDY2XXwwKSl7QT0oY1syNDYzXXwwKStvfDA7Y1syNDYzXT1BO2NbMjQ2Nl09bjtj
W24rND4+Ml09QXwxO2lmKChufDApIT0oY1syNDY1XXwwKSl7cmV0dXJufWNbMjQ2NV09MDtjWzI0
NjJdPTA7cmV0dXJufWlmKChmfDApPT0oY1syNDY1XXwwKSl7QT0oY1syNDYyXXwwKStvfDA7Y1sy
NDYyXT1BO2NbMjQ2NV09bjtjW24rND4+Ml09QXwxO2NbbitBPj4yXT1BO3JldHVybn1BPSh6Ji04
KStvfDA7cz16Pj4+MztMMTY1Mzpkb3tpZih6Pj4+MDwyNTYpe2c9Y1tkKyhiKzgpPj4yXXwwO3Q9
Y1tkKyhiKzEyKT4+Ml18MDtoPTk4ODArKHM8PDE8PDIpfDA7ZG97aWYoKGd8MCkhPShofDApKXtp
ZihnPj4+MDxhPj4+MCl7YkcoKX1pZigoY1tnKzEyPj4yXXwwKT09KGZ8MCkpe2JyZWFrfWJHKCl9
fXdoaWxlKDApO2lmKCh0fDApPT0oZ3wwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8cyk7YnJlYWt9
ZG97aWYoKHR8MCk9PShofDApKXtCPXQrOHwwfWVsc2V7aWYodD4+PjA8YT4+PjApe2JHKCl9bT10
Kzh8MDtpZigoY1ttPj4yXXwwKT09KGZ8MCkpe0I9bTticmVha31iRygpfX13aGlsZSgwKTtjW2cr
MTI+PjJdPXQ7Y1tCPj4yXT1nfWVsc2V7aD1lO209Y1tkKyhiKzI0KT4+Ml18MDtsPWNbZCsoYisx
Mik+PjJdfDA7ZG97aWYoKGx8MCk9PShofDApKXtpPWQrKGIrMjApfDA7cD1jW2k+PjJdfDA7aWYo
KHB8MCk9PTApe3E9ZCsoYisxNil8MDt2PWNbcT4+Ml18MDtpZigodnwwKT09MCl7Qz0wO2JyZWFr
fWVsc2V7RD12O0U9cX19ZWxzZXtEPXA7RT1pfXdoaWxlKDEpe2k9RCsyMHwwO3A9Y1tpPj4yXXww
O2lmKChwfDApIT0wKXtEPXA7RT1pO2NvbnRpbnVlfWk9RCsxNnwwO3A9Y1tpPj4yXXwwO2lmKChw
fDApPT0wKXticmVha31lbHNle0Q9cDtFPWl9fWlmKEU+Pj4wPGE+Pj4wKXtiRygpfWVsc2V7Y1tF
Pj4yXT0wO0M9RDticmVha319ZWxzZXtpPWNbZCsoYis4KT4+Ml18MDtpZihpPj4+MDxhPj4+MCl7
YkcoKX1wPWkrMTJ8MDtpZigoY1twPj4yXXwwKSE9KGh8MCkpe2JHKCl9cT1sKzh8MDtpZigoY1tx
Pj4yXXwwKT09KGh8MCkpe2NbcD4+Ml09bDtjW3E+PjJdPWk7Qz1sO2JyZWFrfWVsc2V7YkcoKX19
fXdoaWxlKDApO2lmKChtfDApPT0wKXticmVha31sPWQrKGIrMjgpfDA7Zz0xMDE0NCsoY1tsPj4y
XTw8Mil8MDtkb3tpZigoaHwwKT09KGNbZz4+Ml18MCkpe2NbZz4+Ml09QztpZigoQ3wwKSE9MCl7
YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1tsPj4yXSk7YnJlYWsgTDE2NTN9ZWxzZXtpZiht
Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9dD1tKzE2fDA7aWYoKGNbdD4+Ml18MCk9PShofDAp
KXtjW3Q+PjJdPUN9ZWxzZXtjW20rMjA+PjJdPUN9aWYoKEN8MCk9PTApe2JyZWFrIEwxNjUzfX19
d2hpbGUoMCk7aWYoQz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWNbQysyND4+Ml09bTtoPWNb
ZCsoYisxNik+PjJdfDA7ZG97aWYoKGh8MCkhPTApe2lmKGg+Pj4wPChjWzI0NjRdfDApPj4+MCl7
YkcoKX1lbHNle2NbQysxNj4+Ml09aDtjW2grMjQ+PjJdPUM7YnJlYWt9fX13aGlsZSgwKTtoPWNb
ZCsoYisyMCk+PjJdfDA7aWYoKGh8MCk9PTApe2JyZWFrfWlmKGg+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKX1lbHNle2NbQysyMD4+Ml09aDtjW2grMjQ+PjJdPUM7YnJlYWt9fX13aGlsZSgwKTtj
W24rND4+Ml09QXwxO2NbbitBPj4yXT1BO2lmKChufDApIT0oY1syNDY1XXwwKSl7Rj1BO2JyZWFr
fWNbMjQ2Ml09QTtyZXR1cm59ZWxzZXtjW3k+PjJdPXomLTI7Y1tuKzQ+PjJdPW98MTtjW24rbz4+
Ml09bztGPW99fXdoaWxlKDApO289Rj4+PjM7aWYoRj4+PjA8MjU2KXt6PW88PDE7eT05ODgwKyh6
PDwyKXwwO0M9Y1syNDYwXXwwO2I9MTw8bztkb3tpZigoQyZifDApPT0wKXtjWzI0NjBdPUN8YjtH
PXk7SD05ODgwKyh6KzI8PDIpfDB9ZWxzZXtvPTk4ODArKHorMjw8Mil8MDtkPWNbbz4+Ml18MDtp
ZihkPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXtHPWQ7SD1vO2JyZWFrfWJHKCl9fXdoaWxlKDApO2Nb
SD4+Ml09bjtjW0crMTI+PjJdPW47Y1tuKzg+PjJdPUc7Y1tuKzEyPj4yXT15O3JldHVybn15PW47
Rz1GPj4+ODtkb3tpZigoR3wwKT09MCl7ST0wfWVsc2V7aWYoRj4+PjA+MTY3NzcyMTUpe0k9MzE7
YnJlYWt9SD0oRysxMDQ4MzIwfDApPj4+MTYmODt6PUc8PEg7Yj0oeis1MjAxOTJ8MCk+Pj4xNiY0
O0M9ejw8Yjt6PShDKzI0NTc2MHwwKT4+PjE2JjI7bz0xNC0oYnxIfHopKyhDPDx6Pj4+MTUpfDA7
ST1GPj4+KChvKzd8MCk+Pj4wKSYxfG88PDF9fXdoaWxlKDApO0c9MTAxNDQrKEk8PDIpfDA7Y1tu
KzI4Pj4yXT1JO2NbbisyMD4+Ml09MDtjW24rMTY+PjJdPTA7bz1jWzI0NjFdfDA7ej0xPDxJO2lm
KChvJnp8MCk9PTApe2NbMjQ2MV09b3x6O2NbRz4+Ml09eTtjW24rMjQ+PjJdPUc7Y1tuKzEyPj4y
XT1uO2Nbbis4Pj4yXT1uO3JldHVybn1pZigoSXwwKT09MzEpe0o9MH1lbHNle0o9MjUtKEk+Pj4x
KXwwfUk9Rjw8SjtKPWNbRz4+Ml18MDt3aGlsZSgxKXtpZigoY1tKKzQ+PjJdJi04fDApPT0oRnww
KSl7YnJlYWt9Sz1KKzE2KyhJPj4+MzE8PDIpfDA7Rz1jW0s+PjJdfDA7aWYoKEd8MCk9PTApe0w9
MTI5ODticmVha31lbHNle0k9STw8MTtKPUd9fWlmKChMfDApPT0xMjk4KXtpZihLPj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCl9Y1tLPj4yXT15O2NbbisyND4+Ml09SjtjW24rMTI+PjJdPW47Y1tu
Kzg+PjJdPW47cmV0dXJufUs9Sis4fDA7TD1jW0s+PjJdfDA7ST1jWzI0NjRdfDA7aWYoSj4+PjA8
ST4+PjApe2JHKCl9aWYoTD4+PjA8ST4+PjApe2JHKCl9Y1tMKzEyPj4yXT15O2NbSz4+Ml09eTtj
W24rOD4+Ml09TDtjW24rMTI+PjJdPUo7Y1tuKzI0Pj4yXT0wO3JldHVybn1mdW5jdGlvbiBrTyhh
KXthPWF8MDt2YXIgYj0wLGQ9MCxlPTA7Yj0oYXwwKT09MD8xOmE7d2hpbGUoMSl7ZD1rSihiKXww
O2lmKChkfDApIT0wKXtlPTEzNDI7YnJlYWt9YT0oST1jWzQwNDhdfDAsY1s0MDQ4XT1JKzAsSSk7
aWYoKGF8MCk9PTApe2JyZWFrfWI1W2EmM10oKX1pZigoZXwwKT09MTM0Mil7cmV0dXJuIGR8MH1k
PWJPKDQpfDA7Y1tkPj4yXT0yNDA4O2JsKGR8MCw4MTYwLDMwKTtyZXR1cm4gMH1mdW5jdGlvbiBr
UChhKXthPWF8MDtyZXR1cm4ga08oYSl8MH1mdW5jdGlvbiBrUShhKXthPWF8MDtyZXR1cm59ZnVu
Y3Rpb24ga1IoYSl7YT1hfDA7cmV0dXJuIDExNjB8MH1mdW5jdGlvbiBrUyhhKXthPWF8MDtpZigo
YXwwKSE9MCl7a0soYSl9cmV0dXJufWZ1bmN0aW9uIGtUKGEpe2E9YXwwO2tTKGEpO3JldHVybn1m
dW5jdGlvbiBrVShhKXthPWF8MDtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga1YoYixkKXtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAu
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLjAsdz0wLHg9MCx5PTAsej0wLjAsQT0wLjAsQj0wLEM9MCxE
PTAsRT0wLjAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAuMCxPPTAsUD0wLFE9
MC4wLFI9MC4wLFM9MC4wO2U9Yjt3aGlsZSgxKXtmPWUrMXwwO2lmKChhUChhW2VdfDApfDApPT0w
KXticmVha31lbHNle2U9Zn19c3dpdGNoKGFbZV18MCl7Y2FzZSA0Mzp7Zz1mO2k9MDticmVha307
Y2FzZSA0NTp7Zz1mO2k9MTticmVha307ZGVmYXVsdDp7Zz1lO2k9MH19ZT0tMTtmPTA7aj1nO3do
aWxlKDEpe2s9YVtqXXwwO2lmKCgoazw8MjQ+PjI0KS00OHwwKT4+PjA8MTApe2w9ZX1lbHNle2lm
KGs8PDI0Pj4yNCE9NDZ8KGV8MCk+LTEpe2JyZWFrfWVsc2V7bD1mfX1lPWw7Zj1mKzF8MDtqPWor
MXwwfWw9aisoLWZ8MCl8MDtnPShlfDApPDA7bT0oKGdeMSk8PDMxPj4zMSkrZnwwO249KG18MCk+
MTg7bz0obj8tMTg6LW18MCkrKGc/ZjplKXwwO2U9bj8xODptO2Rve2lmKChlfDApPT0wKXtwPWI7
cT0wLjB9ZWxzZXtpZigoZXwwKT45KXttPWw7bj1lO2Y9MDt3aGlsZSgxKXtnPWFbbV18MDtyPW0r
MXwwO2lmKGc8PDI0Pj4yND09NDYpe3M9YVtyXXwwO3Q9bSsyfDB9ZWxzZXtzPWc7dD1yfXU9KGYq
MTB8MCktNDgrKHM8PDI0Pj4yNCl8MDtyPW4tMXwwO2lmKChyfDApPjkpe209dDtuPXI7Zj11fWVs
c2V7YnJlYWt9fXY9Kyh1fDApKjEuMGU5O3c9OTt4PXQ7eT0xMzcwfWVsc2V7aWYoKGV8MCk+MCl7
dj0wLjA7dz1lO3g9bDt5PTEzNzB9ZWxzZXt6PTAuMDtBPTAuMH19aWYoKHl8MCk9PTEzNzApe2Y9
eDtuPXc7bT0wO3doaWxlKDEpe3I9YVtmXXwwO2c9ZisxfDA7aWYocjw8MjQ+PjI0PT00Nil7Qj1h
W2ddfDA7Qz1mKzJ8MH1lbHNle0I9cjtDPWd9RD0obSoxMHwwKS00OCsoQjw8MjQ+PjI0KXwwO2c9
bi0xfDA7aWYoKGd8MCk+MCl7Zj1DO249ZzttPUR9ZWxzZXticmVha319ej0rKER8MCk7QT12fUU9
QSt6O0wxODE2OmRve3N3aXRjaChrPDwyND4+MjQpe2Nhc2UgNjk6Y2FzZSAxMDE6e209aisxfDA7
c3dpdGNoKGFbbV18MCl7Y2FzZSA0NTp7Rj1qKzJ8MDtHPTE7YnJlYWt9O2Nhc2UgNDM6e0Y9aisy
fDA7Rz0wO2JyZWFrfTtkZWZhdWx0OntGPW07Rz0wfX1tPWFbRl18MDtpZigoKG08PDI0Pj4yNCkt
NDh8MCk+Pj4wPDEwKXtIPUY7ST0wO0o9bX1lbHNle0s9MDtMPUY7TT1HO2JyZWFrIEwxODE2fXdo
aWxlKDEpe209KEkqMTB8MCktNDgrKEo8PDI0Pj4yNCl8MDtuPUgrMXwwO2Y9YVtuXXwwO2lmKCgo
Zjw8MjQ+PjI0KS00OHwwKT4+PjA8MTApe0g9bjtJPW07Sj1mfWVsc2V7Sz1tO0w9bjtNPUc7YnJl
YWt9fWJyZWFrfTtkZWZhdWx0OntLPTA7TD1qO009MH19fXdoaWxlKDApO249bysoKE18MCk9PTA/
SzotS3wwKXwwO209KG58MCk8MD8tbnwwOm47aWYoKG18MCk+NTExKXtjWyhidygpfDApPj4yXT0z
NDtOPTEuMDtPPTg7UD01MTE7eT0xMzg3fWVsc2V7aWYoKG18MCk9PTApe1E9MS4wfWVsc2V7Tj0x
LjA7Tz04O1A9bTt5PTEzODd9fWlmKCh5fDApPT0xMzg3KXt3aGlsZSgxKXt5PTA7aWYoKFAmMXww
KT09MCl7Uj1OfWVsc2V7Uj1OKitoW08+PjNdfW09UD4+MTtpZigobXwwKT09MCl7UT1SO2JyZWFr
fWVsc2V7Tj1SO089Tys4fDA7UD1tO3k9MTM4N319fWlmKChufDApPi0xKXtwPUw7cT1FKlE7YnJl
YWt9ZWxzZXtwPUw7cT1FL1E7YnJlYWt9fX13aGlsZSgwKTtpZigoZHwwKSE9MCl7Y1tkPj4yXT1w
fWlmKChpfDApPT0wKXtTPXE7cmV0dXJuK1N9Uz0tMC4wLXE7cmV0dXJuK1N9ZnVuY3Rpb24ga1co
YSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO3JldHVybisoK2tWKGEsYikpfWZ1bmN0aW9uIGtYKCl7
dmFyIGE9MDthPWJPKDQpfDA7Y1thPj4yXT0yNDA4O2JsKGF8MCw4MTYwLDMwKX1mdW5jdGlvbiBr
WShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MDtmPWJ8MDtpZigoYiYzKT09KGQmMykp
e3doaWxlKGImMyl7aWYoKGV8MCk9PTApcmV0dXJuIGZ8MDthW2JdPWFbZF18MDtiPWIrMXwwO2Q9
ZCsxfDA7ZT1lLTF8MH13aGlsZSgoZXwwKT49NCl7Y1tiPj4yXT1jW2Q+PjJdO2I9Yis0fDA7ZD1k
KzR8MDtlPWUtNHwwfX13aGlsZSgoZXwwKT4wKXthW2JdPWFbZF18MDtiPWIrMXwwO2Q9ZCsxfDA7
ZT1lLTF8MH1yZXR1cm4gZnwwfWZ1bmN0aW9uIGtaKGIpe2I9YnwwO3ZhciBjPTA7Yz1hW24rKGI+
Pj4yNCl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjfDA7Yz1hW24rKGI+PjE2JjI1NSl8MF18MDtp
ZigoY3wwKTw4KXJldHVybiBjKzh8MDtjPWFbbisoYj4+OCYyNTUpfDBdfDA7aWYoKGN8MCk8OCly
ZXR1cm4gYysxNnwwO3JldHVybihhW24rKGImMjU1KXwwXXwwKSsyNHwwfWZ1bmN0aW9uIGtfKGIs
YyxkKXtiPWJ8MDtjPWN8MDtkPWR8MDtpZigoY3wwKTwoYnwwKSYoYnwwKTwoYytkfDApKXtjPWMr
ZHwwO2I9YitkfDA7d2hpbGUoKGR8MCk+MCl7Yj1iLTF8MDtjPWMtMXwwO2Q9ZC0xfDA7YVtiXT1h
W2NdfDB9fWVsc2V7a1koYixjLGQpfDB9fWZ1bmN0aW9uIGskKGIsZCxlKXtiPWJ8MDtkPWR8MDtl
PWV8MDt2YXIgZj0wLGc9MCxoPTA7Zj1iK2V8MDtpZigoZXwwKT49MjApe2Q9ZCYyNTU7ZT1iJjM7
Zz1kfGQ8PDh8ZDw8MTZ8ZDw8MjQ7aD1mJn4zO2lmKGUpe2U9Yis0LWV8MDt3aGlsZSgoYnwwKTwo
ZXwwKSl7YVtiXT1kO2I9YisxfDB9fXdoaWxlKChifDApPChofDApKXtjW2I+PjJdPWc7Yj1iKzR8
MH19d2hpbGUoKGJ8MCk8KGZ8MCkpe2FbYl09ZDtiPWIrMXwwfX1mdW5jdGlvbiBrMChiKXtiPWJ8
MDt2YXIgYz0wO2M9Yjt3aGlsZShhW2NdfDApe2M9YysxfDB9cmV0dXJuIGMtYnwwfWZ1bmN0aW9u
IGsxKGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTA7ZT1hK2M+Pj4wO3Jl
dHVybihLPWIrZCsoZT4+PjA8YT4+PjB8MCk+Pj4wLGV8MCl8MH1mdW5jdGlvbiBrMihhLGIsYyxk
KXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wO2U9Yi1kPj4+MDtlPWItZC0oYz4+PjA+
YT4+PjB8MCk+Pj4wO3JldHVybihLPWUsYS1jPj4+MHwwKXwwfWZ1bmN0aW9uIGszKGEsYixjKXth
PWF8MDtiPWJ8MDtjPWN8MDtpZigoY3wwKTwzMil7Sz1iPDxjfChhJigxPDxjKS0xPDwzMi1jKT4+
PjMyLWM7cmV0dXJuIGE8PGN9Sz1hPDxjLTMyO3JldHVybiAwfWZ1bmN0aW9uIGs0KGEsYixjKXth
PWF8MDtiPWJ8MDtjPWN8MDtpZigoY3wwKTwzMil7Sz1iPj4+YztyZXR1cm4gYT4+PmN8KGImKDE8
PGMpLTEpPDwzMi1jfUs9MDtyZXR1cm4gYj4+PmMtMzJ8MH1mdW5jdGlvbiBrNShhLGIsYyl7YT1h
fDA7Yj1ifDA7Yz1jfDA7aWYoKGN8MCk8MzIpe0s9Yj4+YztyZXR1cm4gYT4+PmN8KGImKDE8PGMp
LTEpPDwzMi1jfUs9KGJ8MCk8MD8tMTowO3JldHVybiBiPj5jLTMyfDB9ZnVuY3Rpb24gazYoYil7
Yj1ifDA7dmFyIGM9MDtjPWFbbSsoYiYyNTUpfDBdfDA7aWYoKGN8MCk8OClyZXR1cm4gY3wwO2M9
YVttKyhiPj44JjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjKzh8MDtjPWFbbSsoYj4+MTYm
MjU1KXwwXXwwO2lmKChjfDApPDgpcmV0dXJuIGMrMTZ8MDtyZXR1cm4oYVttKyhiPj4+MjQpfDBd
fDApKzI0fDB9ZnVuY3Rpb24gazcoYSxiKXthPWF8MDtiPWJ8MDt2YXIgYz0wLGQ9MCxlPTAsZj0w
O2M9YSY2NTUzNTtkPWImNjU1MzU7ZT1hZyhkLGMpfDA7Zj1hPj4+MTY7YT0oZT4+PjE2KSsoYWco
ZCxmKXwwKXwwO2Q9Yj4+PjE2O2I9YWcoZCxjKXwwO3JldHVybihLPShhPj4+MTYpKyhhZyhkLGYp
fDApKygoKGEmNjU1MzUpK2J8MCk+Pj4xNil8MCxhK2I8PDE2fGUmNjU1MzV8MCl8MH1mdW5jdGlv
biBrOChhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0w
LGk9MDtlPWI+PjMxfCgoYnwwKTwwPy0xOjApPDwxO2Y9KChifDApPDA/LTE6MCk+PjMxfCgoYnww
KTwwPy0xOjApPDwxO2c9ZD4+MzF8KChkfDApPDA/LTE6MCk8PDE7aD0oKGR8MCk8MD8tMTowKT4+
MzF8KChkfDApPDA/LTE6MCk8PDE7aT1rMihlXmEsZl5iLGUsZil8MDtiPUs7YT1nXmU7ZT1oXmY7
Zj1rMigobGQoaSxiLGsyKGdeYyxoXmQsZyxoKXwwLEssMCl8MCleYSxLXmUsYSxlKXwwO3JldHVy
bihLPUssZil8MH1mdW5jdGlvbiBrOShhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2
YXIgZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wO2Y9aTtpPWkrOHwwO2c9ZnwwO2g9Yj4+MzF8
KChifDApPDA/LTE6MCk8PDE7aj0oKGJ8MCk8MD8tMTowKT4+MzF8KChifDApPDA/LTE6MCk8PDE7
az1lPj4zMXwoKGV8MCk8MD8tMTowKTw8MTtsPSgoZXwwKTwwPy0xOjApPj4zMXwoKGV8MCk8MD8t
MTowKTw8MTttPWsyKGheYSxqXmIsaCxqKXwwO2I9SzthPWsyKGteZCxsXmUsayxsKXwwO2xkKG0s
YixhLEssZyl8MDthPWsyKGNbZz4+Ml1eaCxjW2crND4+Ml1eaixoLGopfDA7aj1LO2k9ZjtyZXR1
cm4oSz1qLGEpfDB9ZnVuY3Rpb24gbGEoYSxiLGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7
dmFyIGU9MCxmPTA7ZT1hO2E9YztjPWs3KGUsYSl8MDtmPUs7cmV0dXJuKEs9KGFnKGIsYSl8MCkr
KGFnKGQsZSl8MCkrZnxmJjAsY3wwfDApfDB9ZnVuY3Rpb24gbGIoYSxiLGMsZCl7YT1hfDA7Yj1i
fDA7Yz1jfDA7ZD1kfDA7dmFyIGU9MDtlPWxkKGEsYixjLGQsMCl8MDtyZXR1cm4oSz1LLGUpfDB9
ZnVuY3Rpb24gbGMoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTA7
Zj1pO2k9aSs4fDA7Zz1mfDA7bGQoYSxiLGQsZSxnKXwwO2k9ZjtyZXR1cm4oSz1jW2crND4+Ml18
MCxjW2c+PjJdfDApfDB9ZnVuY3Rpb24gbGQoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtl
PWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsTD0wLE09MDtnPWE7aD1iO2k9aDtqPWQ7az1lO2w9aztpZigo
aXwwKT09MCl7bT0oZnwwKSE9MDtpZigobHwwKT09MCl7aWYobSl7Y1tmPj4yXT0oZz4+PjApJShq
Pj4+MCk7Y1tmKzQ+PjJdPTB9bj0wO289KGc+Pj4wKS8oaj4+PjApPj4+MDtyZXR1cm4oSz1uLG8p
fDB9ZWxzZXtpZighbSl7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9Y1tmPj4yXT1hfDA7Y1tmKzQ+
PjJdPWImMDtuPTA7bz0wO3JldHVybihLPW4sbyl8MH19bT0obHwwKT09MDtkb3tpZigoanwwKT09
MCl7aWYobSl7aWYoKGZ8MCkhPTApe2NbZj4+Ml09KGk+Pj4wKSUoaj4+PjApO2NbZis0Pj4yXT0w
fW49MDtvPShpPj4+MCkvKGo+Pj4wKT4+PjA7cmV0dXJuKEs9bixvKXwwfWlmKChnfDApPT0wKXtp
ZigoZnwwKSE9MCl7Y1tmPj4yXT0wO2NbZis0Pj4yXT0oaT4+PjApJShsPj4+MCl9bj0wO289KGk+
Pj4wKS8obD4+PjApPj4+MDtyZXR1cm4oSz1uLG8pfDB9cD1sLTF8MDtpZigocCZsfDApPT0wKXtp
ZigoZnwwKSE9MCl7Y1tmPj4yXT1hfDA7Y1tmKzQ+PjJdPXAmaXxiJjB9bj0wO289aT4+PigoazYo
bHwwKXwwKT4+PjApO3JldHVybihLPW4sbyl8MH1wPShrWihsfDApfDApLShrWihpfDApfDApfDA7
aWYocD4+PjA8PTMwKXtxPXArMXwwO3I9MzEtcHwwO3M9cTt0PWk8PHJ8Zz4+PihxPj4+MCk7dT1p
Pj4+KHE+Pj4wKTt2PTA7dz1nPDxyO2JyZWFrfWlmKChmfDApPT0wKXtuPTA7bz0wO3JldHVybihL
PW4sbyl8MH1jW2Y+PjJdPWF8MDtjW2YrND4+Ml09aHxiJjA7bj0wO289MDtyZXR1cm4oSz1uLG8p
fDB9ZWxzZXtpZighbSl7cj0oa1oobHwwKXwwKS0oa1ooaXwwKXwwKXwwO2lmKHI+Pj4wPD0zMSl7
cT1yKzF8MDtwPTMxLXJ8MDt4PXItMzE+PjMxO3M9cTt0PWc+Pj4ocT4+PjApJnh8aTw8cDt1PWk+
Pj4ocT4+PjApJng7dj0wO3c9Zzw8cDticmVha31pZigoZnwwKT09MCl7bj0wO289MDtyZXR1cm4o
Sz1uLG8pfDB9Y1tmPj4yXT1hfDA7Y1tmKzQ+PjJdPWh8YiYwO249MDtvPTA7cmV0dXJuKEs9bixv
KXwwfXA9ai0xfDA7aWYoKHAmanwwKSE9MCl7eD0oa1ooanwwKXwwKSszMy0oa1ooaXwwKXwwKXww
O3E9NjQteHwwO3I9MzIteHwwO3k9cj4+MzE7ej14LTMyfDA7QT16Pj4zMTtzPXg7dD1yLTE+PjMx
Jmk+Pj4oej4+PjApfChpPDxyfGc+Pj4oeD4+PjApKSZBO3U9QSZpPj4+KHg+Pj4wKTt2PWc8PHEm
eTt3PShpPDxxfGc+Pj4oej4+PjApKSZ5fGc8PHImeC0zMz4+MzE7YnJlYWt9aWYoKGZ8MCkhPTAp
e2NbZj4+Ml09cCZnO2NbZis0Pj4yXT0wfWlmKChqfDApPT0xKXtuPWh8YiYwO289YXwwfDA7cmV0
dXJuKEs9bixvKXwwfWVsc2V7cD1rNihqfDApfDA7bj1pPj4+KHA+Pj4wKXwwO289aTw8MzItcHxn
Pj4+KHA+Pj4wKXwwO3JldHVybihLPW4sbyl8MH19fXdoaWxlKDApO2lmKChzfDApPT0wKXtCPXc7
Qz12O0Q9dTtFPXQ7Rj0wO0c9MH1lbHNle2c9ZHwwfDA7ZD1rfGUmMDtlPWsxKGcsZCwtMSwtMSl8
MDtrPUs7aT13O3c9djt2PXU7dT10O3Q9cztzPTA7d2hpbGUoMSl7SD13Pj4+MzF8aTw8MTtJPXN8
dzw8MTtqPXU8PDF8aT4+PjMxfDA7YT11Pj4+MzF8djw8MXwwO2syKGUsayxqLGEpfDA7Yj1LO2g9
Yj4+MzF8KChifDApPDA/LTE6MCk8PDE7Sj1oJjE7TD1rMihqLGEsaCZnLCgoKGJ8MCk8MD8tMTow
KT4+MzF8KChifDApPDA/LTE6MCk8PDEpJmQpfDA7TT1LO2I9dC0xfDA7aWYoKGJ8MCk9PTApe2Jy
ZWFrfWVsc2V7aT1IO3c9STt2PU07dT1MO3Q9YjtzPUp9fUI9SDtDPUk7RD1NO0U9TDtGPTA7Rz1K
fUo9QztDPTA7aWYoKGZ8MCkhPTApe2NbZj4+Ml09RTtjW2YrND4+Ml09RH1uPShKfDApPj4+MzF8
KEJ8Qyk8PDF8KEM8PDF8Sj4+PjMxKSYwfEY7bz0oSjw8MXwwPj4+MzEpJi0yfEc7cmV0dXJuKEs9
bixvKXwwfWZ1bmN0aW9uIGxlKCl7YlAoKX1mdW5jdGlvbiBsZihhLGIsYyxkLGUsZil7YT1hfDA7
Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7YldbYSY3XShifDAsY3wwLGR8MCxlfDAsZnww
KX1mdW5jdGlvbiBsZyhhLGIsYyxkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2JYW2EmMTI3XShifDAsY3wwLGR8MCxlfDAsZnwwLGd8MCxo
fDApfWZ1bmN0aW9uIGxoKGEsYil7YT1hfDA7Yj1ifDA7YllbYSY1MTFdKGJ8MCl9ZnVuY3Rpb24g
bGkoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2JaW2EmMTI3XShifDAsY3wwKX1mdW5jdGlvbiBs
aihhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJuIGJfW2EmMzFdKGJ8MCxjfDApfDB9ZnVu
Y3Rpb24gbGsoYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O3JldHVybiBiJFthJjMxXShifDAsY3wwLGR8MCxlfDAsZnwwKXwwfWZ1bmN0aW9uIGxsKGEsYil7
YT1hfDA7Yj1ifDA7cmV0dXJuIGIwW2EmMTI3XShifDApfDB9ZnVuY3Rpb24gbG0oYSxiLGMsZCl7
YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7cmV0dXJuIGIxW2EmNjNdKGJ8MCxjfDAsZHwwKXwwfWZ1
bmN0aW9uIGxuKGEsYixjLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9K2c7YjJbYSYxNV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCwrZyl9ZnVuY3Rpb24gbG8oYSxi
LGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7YjNbYSY3XShifDAsY3wwLGR8MCl9ZnVuY3Rp
b24gbHAoYSxiLGMsZCxlLGYsZyxoLGkpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2I0W2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8
MCxpfDApfWZ1bmN0aW9uIGxxKGEpe2E9YXwwO2I1W2EmM10oKX1mdW5jdGlvbiBscihhLGIsYyxk
LGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1o
fDA7aT1pfDA7cmV0dXJuIGI2W2EmMzFdKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8MCxpfDAp
fDB9ZnVuY3Rpb24gbHMoYSxiLGMsZCxlLGYsZyxoLGksail7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7YjdbYSY3XShifDAsY3wwLGR8
MCxlfDAsZnwwLGd8MCxofDAsaXwwLGp8MCl9ZnVuY3Rpb24gbHQoYSxiLGMsZCxlLGYsZyxoKXth
PWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPStoO2I4W2EmN10oYnww
LGN8MCxkfDAsZXwwLGZ8MCxnfDAsK2gpfWZ1bmN0aW9uIGx1KGEsYixjLGQsZSxmLGcpe2E9YXww
O2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2I5W2EmMzFdKGJ8MCxjfDAsZHww
LGV8MCxmfDAsZ3wwKX1mdW5jdGlvbiBsdihhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9
ZHwwO2U9ZXwwO3JldHVybiBjYVthJjE1XShifDAsY3wwLGR8MCxlfDApfDB9ZnVuY3Rpb24gbHco
YSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtjYlthJjE1XShifDAsY3ww
LGR8MCxlfDApfWZ1bmN0aW9uIGx4KGEsYixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7
ZT1lfDA7YWgoMCl9ZnVuY3Rpb24gbHkoYSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7YWgoMSl9ZnVuY3Rpb24gbHooYSl7YT1hfDA7YWgoMil9
ZnVuY3Rpb24gbEEoYSxiKXthPWF8MDtiPWJ8MDthaCgzKX1mdW5jdGlvbiBsQihhLGIpe2E9YXww
O2I9YnwwO2FoKDQpO3JldHVybiAwfWZ1bmN0aW9uIGxDKGEsYixjLGQsZSl7YT1hfDA7Yj1ifDA7
Yz1jfDA7ZD1kfDA7ZT1lfDA7YWgoNSk7cmV0dXJuIDB9ZnVuY3Rpb24gbEQoYSl7YT1hfDA7YWgo
Nik7cmV0dXJuIDB9ZnVuY3Rpb24gbEUoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2FoKDcpO3Jl
dHVybiAwfWZ1bmN0aW9uIGxGKGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtl
PWV8MDtmPStmO2FoKDgpfWZ1bmN0aW9uIGxHKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDthaCg5
KX1mdW5jdGlvbiBsSChhLGIsYyxkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2FoKDEwKX1mdW5jdGlvbiBsSSgpe2FoKDExKX1mdW5jdGlv
biBsSihhLGIsYyxkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2FoKDEyKTtyZXR1cm4gMH1mdW5jdGlvbiBsSyhhLGIsYyxkLGUsZixnLGgs
aSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7
YWgoMTMpfWZ1bmN0aW9uIGxMKGEsYixjLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO2c9K2c7YWgoMTQpfWZ1bmN0aW9uIGxNKGEsYixjLGQsZSxmKXthPWF8MDti
PWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDthaCgxNSl9ZnVuY3Rpb24gbE4oYSxiLGMsZCl7
YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7YWgoMTYpO3JldHVybiAwfWZ1bmN0aW9uIGxPKGEsYixj
LGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2FoKDE3KX0KLS8vIEVNU0NSSVBURU5fRU5EX0ZV
TkNTCi12YXIgYlc9W2x4LGx4LGtHLGx4LGtELGx4LGtGLGx4XTt2YXIgYlg9W2x5LGx5LGdHLGx5
LGdQLGx5LGdTLGx5LGloLGx5LGd0LGx5LGdyLGx5LGg5LGx5LGdCLGx5LGdGLGx5LGdULGx5LGdm
LGx5LGY3LGx5LGdFLGx5LGZILGx5LGZaLGx5LGdRLGx5LGdkLGx5LGYkLGx5LGZYLGx5LGZZLGx5
LGZRLGx5LGZfLGx5LGZWLGx5LGZULGx5LGY0LGx5LGYzLGx5LGYwLGx5LGdVLGx5LGZBLGx5LGdD
LGx5LGZFLGx5LGZ2LGx5LGZ5LGx5LGZDLGx5LGZyLGx5LGZNLGx5LGZLLGx5LGZwLGx5LGx5LGx5
LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5
LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5
LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5LGx5XTt2YXIgYlk9W2x6LGx6LGlrLGx6LGZuLGx6
LGdsLGx6LGRILGx6LGVuLGx6LGlFLGx6LGRyLGx6LGhBLGx6LGY1LGx6LGRCLGx6LGRHLGx6LGZP
LGx6LGZiLGx6LGU3LGx6LGtRLGx6LGRDLGx6LGlQLGx6LGlTLGx6LGdPLGx6LGZQLGx6LGtxLGx6
LGUxLGx6LGllLGx6LGlRLGx6LGVTLGx6LGZvLGx6LGhyLGx6LGlMLGx6LGpJLGx6LGlVLGx6LGtr
LGx6LGpILGx6LGU1LGx6LGM1LGx6LGRHLGx6LGN0LGx6LGZmLGx6LGhnLGx6LGpLLGx6LGlSLGx6
LGtLLGx6LGg3LGx6LGpHLGx6LGVWLGx6LGM0LGx6LGZlLGx6LGRDLGx6LGozLGx6LGY2LGx6LGRm
LGx6LGhzLGx6LGVSLGx6LGUkLGx6LGh5LGx6LGdOLGx6LGU4LGx6LGhsLGx6LGtVLGx6LGVtLGx6
LGo2LGx6LGo3LGx6LGUyLGx6LGV1LGx6LGt4LGx6LGlWLGx6LGk5LGx6LGtpLGx6LGVULGx6LGU2
LGx6LGhPLGx6LGRkLGx6LGh4LGx6LGUzLGx6LGo5LGx6LGtsLGx6LGpxLGx6LGRiLGx6LGlLLGx6
LGlPLGx6LGh6LGx6LGhVLGx6LGt1LGx6LGhHLGx6LGg4LGx6LGo4LGx6LGhmLGx6LGdrLGx6LGZh
LGx6LGRjLGx6LGZjLGx6LGVYLGx6LGROLGx6LGgkLGx6LGhULGx6LGpKLGx6LGVlLGx6LGRJLGx6
LGtpLGx6LGt5LGx6LGVfLGx6LGRPLGx6LGVRLGx6LGUwLGx6LGlkLGx6LGVELGx6LGVaLGx6LGRz
LGx6LGlXLGx6LGU5LGx6LGhKLGx6LGd6LGx6LGhtLGx6LGMkLGx6LGlxLGx6LGgwLGx6LGVXLGx6
LGV0LGx6LGVZLGx6LGpGLGx6LGo0LGx6LGdBLGx6LGt3LGx6LGlsLGx6LGNfLGx6LGt2LGx6LGhC
LGx6LGhQLGx6LGNXLGx6LGRQLGx6LGlULGx6LGRGLGx6LGVVLGx6LGthLGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6
LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6LGx6XTt2YXIgYlo9W2xBLGxBLGpQLGxB
LGMwLGxBLGhNLGxBLGpNLGxBLGhiLGxBLGpMLGxBLGlqLGxBLGQ5LGxBLGhrLGxBLGhILGxBLGh3
LGxBLGhqLGxBLGhoLGxBLGhOLGxBLGlOLGxBLGc5LGxBLGRtLGxBLGhJLGxBLGpPLGxBLGhLLGxB
LGhvLGxBLGRFLGxBLGhuLGxBLGpRLGxBLGhhLGxBLGhxLGxBLGpOLGxBLGc4LGxBLGQyLGxBLGR0
LGxBLGM2LGxBLGlvLGxBLGh0LGxBLGc3LGxBLGc2LGxBLGhpLGxBLGh1LGxBLGh2LGxBLGhwLGxB
LGhMLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxB
LGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxB
LGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBLGxBXTt2YXIgYl89W2xCLGxCLGk0LGxCLGR3LGxC
LGlBLGxCLGl0LGxCLGQ4LGxCLGM5LGxCLGRwLGxCLGkwLGxCLGk2LGxCLGVJLGxCLGkyLGxCLGQ3
LGxCLGMyLGxCLGVILGxCLGxCLGxCXTt2YXIgYiQ9W2xDLGxDLGpoLGxDLGpmLGxDLGpFLGxDLGl3
LGxDLGlHLGxDLGpwLGxDLGlJLGxDLGZrLGxDLGlELGxDLGpkLGxDLGVMLGxDLGpzLGxDLGxDLGxD
LGxDLGxDLGxDLGxDXTt2YXIgYjA9W2xELGxELGoyLGxELGc0LGxELGQ2LGxELGpVLGxELGVyLGxE
LGowLGxELGcwLGxELGplLGxELGprLGxELGd5LGxELGpTLGxELGR2LGxELGVPLGxELGVHLGxELGpZ
LGxELGpXLGxELGp0LGxELGtqLGxELGRpLGxELGpDLGxELGp6LGxELGpYLGxELGpqLGxELGpBLGxE
LGQ0LGxELGhGLGxELGpaLGxELGR1LGxELGMxLGxELGcxLGxELGk4LGxELGoxLGxELGp2LGxELGhE
LGxELGpSLGxELGM3LGxELGp1LGxELGpnLGxELGVKLGxELGckLGxELGM4LGxELGpCLGxELGQ1LGxE
LGVFLGxELGRuLGxELGcyLGxELGl6LGxELGl5LGxELGtSLGxELGVGLGxELGdaLGxELGpULGxELGl4
LGxELGdfLGxELGRoLGxELGczLGxELGc1LGxELGpWLGxELGhFLGxELGdNLGxELGokLGxELGpfLGxE
LGppLGxEXTt2YXIgYjE9W2xFLGxFLGVNLGxFLGk1LGxFLGkzLGxFLGt6LGxFLGlCLGxFLGZsLGxF
LGRKLGxFLGVzLGxFLGVxLGxFLGlZLGxFLGVhLGxFLGltLGxFLGlDLGxFLGkxLGxFLGVOLGxFLGRs
LGxFLGk3LGxFLGlnLGxFLGQzLGxFLGVQLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxF
LGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFLGxFXTt2YXIgYjI9W2xGLGxGLGd3LGxG
LGd1LGxGLGdpLGxGLGdnLGxGLGxGLGxGLGxGLGxGLGxGLGxGXTt2YXIgYjM9W2xHLGxHLGRrLGxH
LGU0LGxHLGxHLGxHXTt2YXIgYjQ9W2xILGxILGhlLGxILGhkLGxILGhRLGxILGhZLGxILGhXLGxI
LGgxLGxILGxILGxIXTt2YXIgYjU9W2xJLGxJLGxlLGxJXTt2YXIgYjY9W2xKLGxKLGl1LGxKLGpj
LGxKLGpvLGxKLGl2LGxKLGpyLGxKLGpELGxKLGpiLGxKLGphLGxKLGxKLGxKLGxKLGxKLGxKLGxK
LGxKLGxKLGxKLGxKLGxKLGxKLGxKLGxKXTt2YXIgYjc9W2xLLGxLLGdXLGxLLGdJLGxLLGxLLGxL
XTt2YXIgYjg9W2xMLGxMLGlhLGxMLGg0LGxMLGxMLGxMXTt2YXIgYjk9W2xNLGxNLGtILGxNLGdz
LGxNLGdtLGxNLGdvLGxNLGtJLGxNLGd4LGxNLGlpLGxNLGVkLGxNLGduLGxNLGdhLGxNLGdlLGxN
LGY4LGxNLGtFLGxNLGViLGxNLGlwLGxNXTt2YXIgY2E9W2xOLGxOLGlaLGxOLGlfLGxOLGlILGxO
LGlGLGxOLGkkLGxOLGxOLGxOLGxOLGxOXTt2YXIgY2I9W2xPLGxPLGtBLGxPLGtCLGxPLGVjLGxP
LGtyLGxPLGVLLGxPLGZtLGxPLGZkLGxPXTtyZXR1cm57X3N0cmxlbjprMCxfZnJlZTprSyxfbWFp
bjpjRCxfcmVhbGxvYzprTCxfbWVtbW92ZTprXyxfX0dMT0JBTF9fSV9hOmNULF9tZW1zZXQ6ayQs
X21hbGxvYzprSixfbWVtY3B5OmtZLF9sbHZtX2N0bHpfaTMyOmtaLF9fR0xPQkFMX19JX2E4OmR5
LHJ1blBvc3RTZXRzOmNzLHN0YWNrQWxsb2M6Y2Msc3RhY2tTYXZlOmNkLHN0YWNrUmVzdG9yZTpj
ZSxzZXRUaHJldzpjZixzZXRUZW1wUmV0MDpjaSxzZXRUZW1wUmV0MTpjaixzZXRUZW1wUmV0Mjpj
ayxzZXRUZW1wUmV0MzpjbCxzZXRUZW1wUmV0NDpjbSxzZXRUZW1wUmV0NTpjbixzZXRUZW1wUmV0
NjpjbyxzZXRUZW1wUmV0NzpjcCxzZXRUZW1wUmV0ODpjcSxzZXRUZW1wUmV0OTpjcixkeW5DYWxs
X3ZpaWlpaTpsZixkeW5DYWxsX3ZpaWlpaWlpOmxnLGR5bkNhbGxfdmk6bGgsZHluQ2FsbF92aWk6
bGksZHluQ2FsbF9paWk6bGosZHluQ2FsbF9paWlpaWk6bGssZHluQ2FsbF9paTpsbCxkeW5DYWxs
X2lpaWk6bG0sZHluQ2FsbF92aWlpaWlmOmxuLGR5bkNhbGxfdmlpaTpsbyxkeW5DYWxsX3ZpaWlp
aWlpaTpscCxkeW5DYWxsX3Y6bHEsZHluQ2FsbF9paWlpaWlpaWk6bHIsZHluQ2FsbF92aWlpaWlp
aWlpOmxzLGR5bkNhbGxfdmlpaWlpaWY6bHQsZHluQ2FsbF92aWlpaWlpOmx1LGR5bkNhbGxfaWlp
aWk6bHYsZHluQ2FsbF92aWlpaTpsd319KQotLy8gRU1TQ1JJUFRFTl9FTkRfQVNNCi0oeyAiTWF0
aCI6IE1hdGgsICJJbnQ4QXJyYXkiOiBJbnQ4QXJyYXksICJJbnQxNkFycmF5IjogSW50MTZBcnJh
eSwgIkludDMyQXJyYXkiOiBJbnQzMkFycmF5LCAiVWludDhBcnJheSI6IFVpbnQ4QXJyYXksICJV
aW50MTZBcnJheSI6IFVpbnQxNkFycmF5LCAiVWludDMyQXJyYXkiOiBVaW50MzJBcnJheSwgIkZs
b2F0MzJBcnJheSI6IEZsb2F0MzJBcnJheSwgIkZsb2F0NjRBcnJheSI6IEZsb2F0NjRBcnJheSB9
LCB7ICJhYm9ydCI6IGFib3J0LCAiYXNzZXJ0IjogYXNzZXJ0LCAiYXNtUHJpbnRJbnQiOiBhc21Q
cmludEludCwgImFzbVByaW50RmxvYXQiOiBhc21QcmludEZsb2F0LCAibWluIjogTWF0aF9taW4s
ICJpbnZva2VfdmlpaWlpIjogaW52b2tlX3ZpaWlpaSwgImludm9rZV92aWlpaWlpaSI6IGludm9r
ZV92aWlpaWlpaSwgImludm9rZV92aSI6IGludm9rZV92aSwgImludm9rZV92aWkiOiBpbnZva2Vf
dmlpLCAiaW52b2tlX2lpaSI6IGludm9rZV9paWksICJpbnZva2VfaWlpaWlpIjogaW52b2tlX2lp
aWlpaSwgImludm9rZV9paSI6IGludm9rZV9paSwgImludm9rZV9paWlpIjogaW52b2tlX2lpaWks
ICJpbnZva2VfdmlpaWlpZiI6IGludm9rZV92aWlpaWlmLCAiaW52b2tlX3ZpaWkiOiBpbnZva2Vf
dmlpaSwgImludm9rZV92aWlpaWlpaWkiOiBpbnZva2VfdmlpaWlpaWlpLCAiaW52b2tlX3YiOiBp
bnZva2VfdiwgImludm9rZV9paWlpaWlpaWkiOiBpbnZva2VfaWlpaWlpaWlpLCAiaW52b2tlX3Zp
aWlpaWlpaWkiOiBpbnZva2VfdmlpaWlpaWlpaSwgImludm9rZV92aWlpaWlpZiI6IGludm9rZV92
aWlpaWlpZiwgImludm9rZV92aWlpaWlpIjogaW52b2tlX3ZpaWlpaWksICJpbnZva2VfaWlpaWki
OiBpbnZva2VfaWlpaWksICJpbnZva2VfdmlpaWkiOiBpbnZva2VfdmlpaWksICJfbGx2bV9saWZl
dGltZV9lbmQiOiBfbGx2bV9saWZldGltZV9lbmQsICJfX3NjYW5TdHJpbmciOiBfX3NjYW5TdHJp
bmcsICJfcHRocmVhZF9tdXRleF9sb2NrIjogX3B0aHJlYWRfbXV0ZXhfbG9jaywgIl9fX2N4YV9l
bmRfY2F0Y2giOiBfX19jeGFfZW5kX2NhdGNoLCAiX3N0cnRvdWxsIjogX3N0cnRvdWxsLCAiX19p
c0Zsb2F0IjogX19pc0Zsb2F0LCAiX2ZmbHVzaCI6IF9mZmx1c2gsICJfX2lzTGVhcFllYXIiOiBf
X2lzTGVhcFllYXIsICJfZndyaXRlIjogX2Z3cml0ZSwgIl9zZW5kIjogX3NlbmQsICJfbGx2bV91
bXVsX3dpdGhfb3ZlcmZsb3dfaTMyIjogX2xsdm1fdW11bF93aXRoX292ZXJmbG93X2kzMiwgIl9p
c3NwYWNlIjogX2lzc3BhY2UsICJfcmVhZCI6IF9yZWFkLCAiX19fY3hhX2d1YXJkX2Fib3J0Ijog
X19fY3hhX2d1YXJkX2Fib3J0LCAiX25ld2xvY2FsZSI6IF9uZXdsb2NhbGUsICJfX19neHhfcGVy
c29uYWxpdHlfdjAiOiBfX19neHhfcGVyc29uYWxpdHlfdjAsICJfcHRocmVhZF9jb25kX3dhaXQi
OiBfcHRocmVhZF9jb25kX3dhaXQsICJfX19jeGFfcmV0aHJvdyI6IF9fX2N4YV9yZXRocm93LCAi
X19fcmVzdW1lRXhjZXB0aW9uIjogX19fcmVzdW1lRXhjZXB0aW9uLCAiX2xsdm1fdmFfZW5kIjog
X2xsdm1fdmFfZW5kLCAiX3Zzc2NhbmYiOiBfdnNzY2FuZiwgIl9zbnByaW50ZiI6IF9zbnByaW50
ZiwgIl9mZ2V0YyI6IF9mZ2V0YywgIl9hdGV4aXQiOiBfYXRleGl0LCAiX19fY3hhX2ZyZWVfZXhj
ZXB0aW9uIjogX19fY3hhX2ZyZWVfZXhjZXB0aW9uLCAiX19aOGNhdGNsb3NlUDhfbmxfY2F0ZCI6
IF9fWjhjYXRjbG9zZVA4X25sX2NhdGQsICJfX19zZXRFcnJObyI6IF9fX3NldEVyck5vLCAiX2lz
eGRpZ2l0IjogX2lzeGRpZ2l0LCAiX2V4aXQiOiBfZXhpdCwgIl9zcHJpbnRmIjogX3NwcmludGYs
ICJfX19jdHlwZV9iX2xvYyI6IF9fX2N0eXBlX2JfbG9jLCAiX2ZyZWVsb2NhbGUiOiBfZnJlZWxv
Y2FsZSwgIl9fWjdjYXRvcGVuUEtjaSI6IF9fWjdjYXRvcGVuUEtjaSwgIl9hc3ByaW50ZiI6IF9h
c3ByaW50ZiwgIl9fX2N4YV9pc19udW1iZXJfdHlwZSI6IF9fX2N4YV9pc19udW1iZXJfdHlwZSwg
Il9fX2N4YV9kb2VzX2luaGVyaXQiOiBfX19jeGFfZG9lc19pbmhlcml0LCAiX19fY3hhX2d1YXJk
X2FjcXVpcmUiOiBfX19jeGFfZ3VhcmRfYWNxdWlyZSwgIl9fX2xvY2FsZV9tYl9jdXJfbWF4Ijog
X19fbG9jYWxlX21iX2N1cl9tYXgsICJfX19jeGFfYmVnaW5fY2F0Y2giOiBfX19jeGFfYmVnaW5f
Y2F0Y2gsICJfcmVjdiI6IF9yZWN2LCAiX19wYXJzZUludDY0IjogX19wYXJzZUludDY0LCAiX19a
U3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYiOiBfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udiwgIl9f
X2N4YV9jYWxsX3VuZXhwZWN0ZWQiOiBfX19jeGFfY2FsbF91bmV4cGVjdGVkLCAiX19leGl0Ijog
X19leGl0LCAiX3N0cmZ0aW1lIjogX3N0cmZ0aW1lLCAiX19fY3hhX3Rocm93IjogX19fY3hhX3Ro
cm93LCAiX2xsdm1fZWhfZXhjZXB0aW9uIjogX2xsdm1fZWhfZXhjZXB0aW9uLCAiX3ByZWFkIjog
X3ByZWFkLCAiX19hcnJheVN1bSI6IF9fYXJyYXlTdW0sICJfbG9nIjogX2xvZywgIl9fX2N4YV9m
aW5kX21hdGNoaW5nX2NhdGNoIjogX19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2gsICJfX2Zvcm1h
dFN0cmluZyI6IF9fZm9ybWF0U3RyaW5nLCAiX3B0aHJlYWRfY29uZF9icm9hZGNhc3QiOiBfcHRo
cmVhZF9jb25kX2Jyb2FkY2FzdCwgIl9fWlN0OXRlcm1pbmF0ZXYiOiBfX1pTdDl0ZXJtaW5hdGV2
LCAiX3B0aHJlYWRfbXV0ZXhfdW5sb2NrIjogX3B0aHJlYWRfbXV0ZXhfdW5sb2NrLCAiX3Nicmsi
OiBfc2JyaywgIl9fX2Vycm5vX2xvY2F0aW9uIjogX19fZXJybm9fbG9jYXRpb24sICJfc3RyZXJy
b3IiOiBfc3RyZXJyb3IsICJfbGx2bV9saWZldGltZV9zdGFydCI6IF9sbHZtX2xpZmV0aW1lX3N0
YXJ0LCAiX19fY3hhX2d1YXJkX3JlbGVhc2UiOiBfX19jeGFfZ3VhcmRfcmVsZWFzZSwgIl91bmdl
dGMiOiBfdW5nZXRjLCAiX3VzZWxvY2FsZSI6IF91c2Vsb2NhbGUsICJfdnNucHJpbnRmIjogX3Zz
bnByaW50ZiwgIl9zc2NhbmYiOiBfc3NjYW5mLCAiX3N5c2NvbmYiOiBfc3lzY29uZiwgIl9mcmVh
ZCI6IF9mcmVhZCwgIl9hYm9ydCI6IF9hYm9ydCwgIl9pc2RpZ2l0IjogX2lzZGlnaXQsICJfc3Ry
dG9sbCI6IF9zdHJ0b2xsLCAiX19hZGREYXlzIjogX19hZGREYXlzLCAiX2Zsb29yIjogX2Zsb29y
LCAiX19yZWFsbHlOZWdhdGl2ZSI6IF9fcmVhbGx5TmVnYXRpdmUsICJfX1o3Y2F0Z2V0c1A4X25s
X2NhdGRpaVBLYyI6IF9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtjLCAiX3dyaXRlIjogX3dyaXRl
LCAiX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbiI6IF9fX2N4YV9hbGxvY2F0ZV9leGNlcHRpb24s
ICJfX19jeGFfcHVyZV92aXJ0dWFsIjogX19fY3hhX3B1cmVfdmlydHVhbCwgIl92YXNwcmludGYi
OiBfdmFzcHJpbnRmLCAiX19fY3R5cGVfdG91cHBlcl9sb2MiOiBfX19jdHlwZV90b3VwcGVyX2xv
YywgIl9fX2N0eXBlX3RvbG93ZXJfbG9jIjogX19fY3R5cGVfdG9sb3dlcl9sb2MsICJfcHdyaXRl
IjogX3B3cml0ZSwgIl9zdHJlcnJvcl9yIjogX3N0cmVycm9yX3IsICJfdGltZSI6IF90aW1lLCAi
U1RBQ0tUT1AiOiBTVEFDS1RPUCwgIlNUQUNLX01BWCI6IFNUQUNLX01BWCwgInRlbXBEb3VibGVQ
dHIiOiB0ZW1wRG91YmxlUHRyLCAiQUJPUlQiOiBBQk9SVCwgImN0dHpfaTgiOiBjdHR6X2k4LCAi
Y3Rsel9pOCI6IGN0bHpfaTgsICJOYU4iOiBOYU4sICJJbmZpbml0eSI6IEluZmluaXR5LCAiX3N0
ZGluIjogX3N0ZGluLCAiX19aVFZOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UiOiBf
X1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRSwgIl9fWlRWTjEwX19jeHhhYml2
MTIwX19zaV9jbGFzc190eXBlX2luZm9FIjogX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNz
X3R5cGVfaW5mb0UsICJfc3RkZXJyIjogX3N0ZGVyciwgIl9fX2ZzbXU4IjogX19fZnNtdTgsICJf
c3Rkb3V0IjogX3N0ZG91dCwgIl9fX2Rzb19oYW5kbGUiOiBfX19kc29faGFuZGxlIH0sIGJ1ZmZl
cik7Ci12YXIgX3N0cmxlbiA9IE1vZHVsZVsiX3N0cmxlbiJdID0gYXNtWyJfc3RybGVuIl07Ci12
YXIgX2ZyZWUgPSBNb2R1bGVbIl9mcmVlIl0gPSBhc21bIl9mcmVlIl07Ci12YXIgX21haW4gPSBN
b2R1bGVbIl9tYWluIl0gPSBhc21bIl9tYWluIl07Ci12YXIgX3JlYWxsb2MgPSBNb2R1bGVbIl9y
ZWFsbG9jIl0gPSBhc21bIl9yZWFsbG9jIl07Ci12YXIgX21lbW1vdmUgPSBNb2R1bGVbIl9tZW1t
b3ZlIl0gPSBhc21bIl9tZW1tb3ZlIl07Ci12YXIgX19HTE9CQUxfX0lfYSA9IE1vZHVsZVsiX19H
TE9CQUxfX0lfYSJdID0gYXNtWyJfX0dMT0JBTF9fSV9hIl07Ci12YXIgX21lbXNldCA9IE1vZHVs
ZVsiX21lbXNldCJdID0gYXNtWyJfbWVtc2V0Il07Ci12YXIgX21hbGxvYyA9IE1vZHVsZVsiX21h
bGxvYyJdID0gYXNtWyJfbWFsbG9jIl07Ci12YXIgX21lbWNweSA9IE1vZHVsZVsiX21lbWNweSJd
ID0gYXNtWyJfbWVtY3B5Il07Ci12YXIgX2xsdm1fY3Rsel9pMzIgPSBNb2R1bGVbIl9sbHZtX2N0
bHpfaTMyIl0gPSBhc21bIl9sbHZtX2N0bHpfaTMyIl07Ci12YXIgX19HTE9CQUxfX0lfYTggPSBN
b2R1bGVbIl9fR0xPQkFMX19JX2E4Il0gPSBhc21bIl9fR0xPQkFMX19JX2E4Il07Ci12YXIgcnVu
UG9zdFNldHMgPSBNb2R1bGVbInJ1blBvc3RTZXRzIl0gPSBhc21bInJ1blBvc3RTZXRzIl07Ci12
YXIgZHluQ2FsbF92aWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpIl0gPSBhc21bImR5bkNh
bGxfdmlpaWlpIl07Ci12YXIgZHluQ2FsbF92aWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlp
aWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWlpIl07Ci12YXIgZHluQ2FsbF92aSA9IE1vZHVs
ZVsiZHluQ2FsbF92aSJdID0gYXNtWyJkeW5DYWxsX3ZpIl07Ci12YXIgZHluQ2FsbF92aWkgPSBN
b2R1bGVbImR5bkNhbGxfdmlpIl0gPSBhc21bImR5bkNhbGxfdmlpIl07Ci12YXIgZHluQ2FsbF9p
aWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpIl0gPSBhc21bImR5bkNhbGxfaWlpIl07Ci12YXIgZHlu
Q2FsbF9paWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlpIl0gPSBhc21bImR5bkNhbGxfaWlp
aWlpIl07Ci12YXIgZHluQ2FsbF9paSA9IE1vZHVsZVsiZHluQ2FsbF9paSJdID0gYXNtWyJkeW5D
YWxsX2lpIl07Ci12YXIgZHluQ2FsbF9paWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXSA9IGFz
bVsiZHluQ2FsbF9paWlpIl07Ci12YXIgZHluQ2FsbF92aWlpaWlmID0gTW9kdWxlWyJkeW5DYWxs
X3ZpaWlpaWYiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWlmIl07Ci12YXIgZHluQ2FsbF92aWlpID0g
TW9kdWxlWyJkeW5DYWxsX3ZpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpIl07Ci12YXIgZHluQ2Fs
bF92aWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWlpIl0gPSBhc21bImR5bkNhbGxf
dmlpaWlpaWlpIl07Ci12YXIgZHluQ2FsbF92ID0gTW9kdWxlWyJkeW5DYWxsX3YiXSA9IGFzbVsi
ZHluQ2FsbF92Il07Ci12YXIgZHluQ2FsbF9paWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlp
aWlpaWlpIl0gPSBhc21bImR5bkNhbGxfaWlpaWlpaWlpIl07Ci12YXIgZHluQ2FsbF92aWlpaWlp
aWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWlp
aWlpIl07Ci12YXIgZHluQ2FsbF92aWlpaWlpZiA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpZiJd
ID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWlmIl07Ci12YXIgZHluQ2FsbF92aWlpaWlpID0gTW9kdWxl
WyJkeW5DYWxsX3ZpaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWlpIl07Ci12YXIgZHluQ2Fs
bF9paWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaSJdID0gYXNtWyJkeW5DYWxsX2lpaWlpIl07
Ci12YXIgZHluQ2FsbF92aWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaSJdID0gYXNtWyJkeW5D
YWxsX3ZpaWlpIl07Ci1SdW50aW1lLnN0YWNrQWxsb2MgPSBmdW5jdGlvbihzaXplKSB7IHJldHVy
biBhc21bJ3N0YWNrQWxsb2MnXShzaXplKSB9OwotUnVudGltZS5zdGFja1NhdmUgPSBmdW5jdGlv
bigpIHsgcmV0dXJuIGFzbVsnc3RhY2tTYXZlJ10oKSB9OwotUnVudGltZS5zdGFja1Jlc3RvcmUg
PSBmdW5jdGlvbih0b3ApIHsgYXNtWydzdGFja1Jlc3RvcmUnXSh0b3ApIH07Ci0vLyBUT0RPOiBz
dHJpcCBvdXQgcGFydHMgb2YgdGhpcyB3ZSBkbyBub3QgbmVlZAotLy89PT09PT09IGJlZ2luIGNs
b3N1cmUgaTY0IGNvZGUgPT09PT09PQotLy8gQ29weXJpZ2h0IDIwMDkgVGhlIENsb3N1cmUgTGli
cmFyeSBBdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIExpY2Vuc2VkIHVuZGVy
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotLy8geW91
IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNl
bnNlLgotLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0vLwotLy8g
ICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLS8vCi0vLyBV
bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcs
IHNvZnR3YXJlCi0vLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRl
ZCBvbiBhbiAiQVMtSVMiIEJBU0lTLAotLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElP
TlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0vLyBTZWUgdGhlIExp
Y2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
Ci0vLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS8qKgotICogQGZpbGVvdmVydmll
dyBEZWZpbmVzIGEgTG9uZyBjbGFzcyBmb3IgcmVwcmVzZW50aW5nIGEgNjQtYml0IHR3bydzLWNv
bXBsZW1lbnQKLSAqIGludGVnZXIgdmFsdWUsIHdoaWNoIGZhaXRoZnVsbHkgc2ltdWxhdGVzIHRo
ZSBiZWhhdmlvciBvZiBhIEphdmEgImxvbmciLiBUaGlzCi0gKiBpbXBsZW1lbnRhdGlvbiBpcyBk
ZXJpdmVkIGZyb20gTG9uZ0xpYiBpbiBHV1QuCi0gKgotICovCi12YXIgaTY0TWF0aCA9IChmdW5j
dGlvbigpIHsgLy8gRW1zY3JpcHRlbiB3cmFwcGVyCi0gIHZhciBnb29nID0geyBtYXRoOiB7fSB9
OwotICAvKioKLSAgICogQ29uc3RydWN0cyBhIDY0LWJpdCB0d28ncy1jb21wbGVtZW50IGludGVn
ZXIsIGdpdmVuIGl0cyBsb3cgYW5kIGhpZ2ggMzItYml0Ci0gICAqIHZhbHVlcyBhcyAqc2lnbmVk
KiBpbnRlZ2Vycy4gIFNlZSB0aGUgZnJvbSogZnVuY3Rpb25zIGJlbG93IGZvciBtb3JlCi0gICAq
IGNvbnZlbmllbnQgd2F5cyBvZiBjb25zdHJ1Y3RpbmcgTG9uZ3MuCi0gICAqCi0gICAqIFRoZSBp
bnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBhIGxvbmcgaXMgdGhlIHR3byBnaXZlbiBzaWduZWQs
IDMyLWJpdCB2YWx1ZXMuCi0gICAqIFdlIHVzZSAzMi1iaXQgcGllY2VzIGJlY2F1c2UgdGhlc2Ug
YXJlIHRoZSBzaXplIG9mIGludGVnZXJzIG9uIHdoaWNoCi0gICAqIEphdmFzY3JpcHQgcGVyZm9y
bXMgYml0LW9wZXJhdGlvbnMuICBGb3Igb3BlcmF0aW9ucyBsaWtlIGFkZGl0aW9uIGFuZAotICAg
KiBtdWx0aXBsaWNhdGlvbiwgd2Ugc3BsaXQgZWFjaCBudW1iZXIgaW50byAxNi1iaXQgcGllY2Vz
LCB3aGljaCBjYW4gZWFzaWx5IGJlCi0gICAqIG11bHRpcGxpZWQgd2l0aGluIEphdmFzY3JpcHQn
cyBmbG9hdGluZy1wb2ludCByZXByZXNlbnRhdGlvbiB3aXRob3V0IG92ZXJmbG93Ci0gICAqIG9y
IGNoYW5nZSBpbiBzaWduLgotICAgKgotICAgKiBJbiB0aGUgYWxnb3JpdGhtcyBiZWxvdywgd2Ug
ZnJlcXVlbnRseSByZWR1Y2UgdGhlIG5lZ2F0aXZlIGNhc2UgdG8gdGhlCi0gICAqIHBvc2l0aXZl
IGNhc2UgYnkgbmVnYXRpbmcgdGhlIGlucHV0KHMpIGFuZCB0aGVuIHBvc3QtcHJvY2Vzc2luZyB0
aGUgcmVzdWx0LgotICAgKiBOb3RlIHRoYXQgd2UgbXVzdCBBTFdBWVMgY2hlY2sgc3BlY2lhbGx5
IHdoZXRoZXIgdGhvc2UgdmFsdWVzIGFyZSBNSU5fVkFMVUUKLSAgICogKC0yXjYzKSBiZWNhdXNl
IC1NSU5fVkFMVUUgPT0gTUlOX1ZBTFVFIChzaW5jZSAyXjYzIGNhbm5vdCBiZSByZXByZXNlbnRl
ZCBhcwotICAgKiBhIHBvc2l0aXZlIG51bWJlciwgaXQgb3ZlcmZsb3dzIGJhY2sgaW50byBhIG5l
Z2F0aXZlKS4gIE5vdCBoYW5kbGluZyB0aGlzCi0gICAqIGNhc2Ugd291bGQgb2Z0ZW4gcmVzdWx0
IGluIGluZmluaXRlIHJlY3Vyc2lvbi4KLSAgICoKLSAgICogQHBhcmFtIHtudW1iZXJ9IGxvdyAg
VGhlIGxvdyAoc2lnbmVkKSAzMiBiaXRzIG9mIHRoZSBsb25nLgotICAgKiBAcGFyYW0ge251bWJl
cn0gaGlnaCAgVGhlIGhpZ2ggKHNpZ25lZCkgMzIgYml0cyBvZiB0aGUgbG9uZy4KLSAgICogQGNv
bnN0cnVjdG9yCi0gICAqLwotICBnb29nLm1hdGguTG9uZyA9IGZ1bmN0aW9uKGxvdywgaGlnaCkg
ewotICAgIC8qKgotICAgICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAgICogQHByaXZhdGUKLSAgICAg
Ki8KLSAgICB0aGlzLmxvd18gPSBsb3cgfCAwOyAgLy8gZm9yY2UgaW50byAzMiBzaWduZWQgYml0
cy4KLSAgICAvKioKLSAgICAgKiBAdHlwZSB7bnVtYmVyfQotICAgICAqIEBwcml2YXRlCi0gICAg
ICovCi0gICAgdGhpcy5oaWdoXyA9IGhpZ2ggfCAwOyAgLy8gZm9yY2UgaW50byAzMiBzaWduZWQg
Yml0cy4KLSAgfTsKLSAgLy8gTk9URTogQ29tbW9uIGNvbnN0YW50IHZhbHVlcyBaRVJPLCBPTkUs
IE5FR19PTkUsIGV0Yy4gYXJlIGRlZmluZWQgYmVsb3cgdGhlCi0gIC8vIGZyb20qIG1ldGhvZHMg
b24gd2hpY2ggdGhleSBkZXBlbmQuCi0gIC8qKgotICAgKiBBIGNhY2hlIG9mIHRoZSBMb25nIHJl
cHJlc2VudGF0aW9ucyBvZiBzbWFsbCBpbnRlZ2VyIHZhbHVlcy4KLSAgICogQHR5cGUgeyFPYmpl
Y3R9Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5JbnRDYWNoZV8gPSB7
fTsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBMb25nIHJlcHJlc2VudGluZyB0aGUgZ2l2ZW4gKDMy
LWJpdCkgaW50ZWdlciB2YWx1ZS4KLSAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIFRoZSAzMi1i
aXQgaW50ZWdlciBpbiBxdWVzdGlvbi4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBU
aGUgY29ycmVzcG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuZnJv
bUludCA9IGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgaWYgKC0xMjggPD0gdmFsdWUgJiYgdmFsdWUg
PCAxMjgpIHsKLSAgICAgIHZhciBjYWNoZWRPYmogPSBnb29nLm1hdGguTG9uZy5JbnRDYWNoZV9b
dmFsdWVdOwotICAgICAgaWYgKGNhY2hlZE9iaikgewotICAgICAgICByZXR1cm4gY2FjaGVkT2Jq
OwotICAgICAgfQotICAgIH0KLSAgICB2YXIgb2JqID0gbmV3IGdvb2cubWF0aC5Mb25nKHZhbHVl
IHwgMCwgdmFsdWUgPCAwID8gLTEgOiAwKTsKLSAgICBpZiAoLTEyOCA8PSB2YWx1ZSAmJiB2YWx1
ZSA8IDEyOCkgewotICAgICAgZ29vZy5tYXRoLkxvbmcuSW50Q2FjaGVfW3ZhbHVlXSA9IG9iajsK
LSAgICB9Ci0gICAgcmV0dXJuIG9iajsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBMb25n
IHJlcHJlc2VudGluZyB0aGUgZ2l2ZW4gdmFsdWUsIHByb3ZpZGVkIHRoYXQgaXQgaXMgYSBmaW5p
dGUKLSAgICogbnVtYmVyLiAgT3RoZXJ3aXNlLCB6ZXJvIGlzIHJldHVybmVkLgotICAgKiBAcGFy
YW0ge251bWJlcn0gdmFsdWUgVGhlIG51bWJlciBpbiBxdWVzdGlvbi4KLSAgICogQHJldHVybiB7
IWdvb2cubWF0aC5Mb25nfSBUaGUgY29ycmVzcG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcuZnJvbU51bWJlciA9IGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgaWYgKGlz
TmFOKHZhbHVlKSB8fCAhaXNGaW5pdGUodmFsdWUpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRo
LkxvbmcuWkVSTzsKLSAgICB9IGVsc2UgaWYgKHZhbHVlIDw9IC1nb29nLm1hdGguTG9uZy5UV09f
UFdSXzYzX0RCTF8pIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5NSU5fVkFMVUU7Ci0g
ICAgfSBlbHNlIGlmICh2YWx1ZSArIDEgPj0gZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl82M19EQkxf
KSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuTUFYX1ZBTFVFOwotICAgIH0gZWxzZSBp
ZiAodmFsdWUgPCAwKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcigt
dmFsdWUpLm5lZ2F0ZSgpOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gbmV3IGdvb2cubWF0
aC5Mb25nKAotICAgICAgICAgICh2YWx1ZSAlIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJM
XykgfCAwLAotICAgICAgICAgICh2YWx1ZSAvIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJM
XykgfCAwKTsKLSAgICB9Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIGEgTG9uZyByZXByZXNl
bnRpbmcgdGhlIDY0LWJpdCBpbnRlZ2VyIHRoYXQgY29tZXMgYnkgY29uY2F0ZW5hdGluZwotICAg
KiB0aGUgZ2l2ZW4gaGlnaCBhbmQgbG93IGJpdHMuICBFYWNoIGlzIGFzc3VtZWQgdG8gdXNlIDMy
IGJpdHMuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBsb3dCaXRzIFRoZSBsb3cgMzItYml0cy4KLSAg
ICogQHBhcmFtIHtudW1iZXJ9IGhpZ2hCaXRzIFRoZSBoaWdoIDMyLWJpdHMuCi0gICAqIEByZXR1
cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGNvcnJlc3BvbmRpbmcgTG9uZyB2YWx1ZS4KLSAgICov
Ci0gIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzID0gZnVuY3Rpb24obG93Qml0cywgaGlnaEJpdHMp
IHsKLSAgICByZXR1cm4gbmV3IGdvb2cubWF0aC5Mb25nKGxvd0JpdHMsIGhpZ2hCaXRzKTsKLSAg
fTsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBMb25nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZl
biBzdHJpbmcsIHdyaXR0ZW4gdXNpbmcgdGhlIGdpdmVuCi0gICAqIHJhZGl4LgotICAgKiBAcGFy
YW0ge3N0cmluZ30gc3RyIFRoZSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25nLgot
ICAgKiBAcGFyYW0ge251bWJlcj19IG9wdF9yYWRpeCBUaGUgcmFkaXggaW4gd2hpY2ggdGhlIHRl
eHQgaXMgd3JpdHRlbi4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgY29ycmVz
cG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuZnJvbVN0cmluZyA9
IGZ1bmN0aW9uKHN0ciwgb3B0X3JhZGl4KSB7Ci0gICAgaWYgKHN0ci5sZW5ndGggPT0gMCkgewot
ICAgICAgdGhyb3cgRXJyb3IoJ251bWJlciBmb3JtYXQgZXJyb3I6IGVtcHR5IHN0cmluZycpOwot
ICAgIH0KLSAgICB2YXIgcmFkaXggPSBvcHRfcmFkaXggfHwgMTA7Ci0gICAgaWYgKHJhZGl4IDwg
MiB8fCAzNiA8IHJhZGl4KSB7Ci0gICAgICB0aHJvdyBFcnJvcigncmFkaXggb3V0IG9mIHJhbmdl
OiAnICsgcmFkaXgpOwotICAgIH0KLSAgICBpZiAoc3RyLmNoYXJBdCgwKSA9PSAnLScpIHsKLSAg
ICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tU3RyaW5nKHN0ci5zdWJzdHJpbmcoMSksIHJh
ZGl4KS5uZWdhdGUoKTsKLSAgICB9IGVsc2UgaWYgKHN0ci5pbmRleE9mKCctJykgPj0gMCkgewot
ICAgICAgdGhyb3cgRXJyb3IoJ251bWJlciBmb3JtYXQgZXJyb3I6IGludGVyaW9yICItIiBjaGFy
YWN0ZXI6ICcgKyBzdHIpOwotICAgIH0KLSAgICAvLyBEbyBzZXZlcmFsICg4KSBkaWdpdHMgZWFj
aCB0aW1lIHRocm91Z2ggdGhlIGxvb3AsIHNvIGFzIHRvCi0gICAgLy8gbWluaW1pemUgdGhlIGNh
bGxzIHRvIHRoZSB2ZXJ5IGV4cGVuc2l2ZSBlbXVsYXRlZCBkaXYuCi0gICAgdmFyIHJhZGl4VG9Q
b3dlciA9IGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIoTWF0aC5wb3cocmFkaXgsIDgpKTsKLSAg
ICB2YXIgcmVzdWx0ID0gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHN0ci5sZW5ndGg7IGkgKz0gOCkgewotICAgICAgdmFyIHNpemUgPSBNYXRoLm1pbig4LCBz
dHIubGVuZ3RoIC0gaSk7Ci0gICAgICB2YXIgdmFsdWUgPSBwYXJzZUludChzdHIuc3Vic3RyaW5n
KGksIGkgKyBzaXplKSwgcmFkaXgpOwotICAgICAgaWYgKHNpemUgPCA4KSB7Ci0gICAgICAgIHZh
ciBwb3dlciA9IGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIoTWF0aC5wb3cocmFkaXgsIHNpemUp
KTsKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0Lm11bHRpcGx5KHBvd2VyKS5hZGQoZ29vZy5tYXRo
LkxvbmcuZnJvbU51bWJlcih2YWx1ZSkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdWx0
ID0gcmVzdWx0Lm11bHRpcGx5KHJhZGl4VG9Qb3dlcik7Ci0gICAgICAgIHJlc3VsdCA9IHJlc3Vs
dC5hZGQoZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcih2YWx1ZSkpOwotICAgICAgfQotICAgIH0K
LSAgICByZXR1cm4gcmVzdWx0OwotICB9OwotICAvLyBOT1RFOiB0aGUgY29tcGlsZXIgc2hvdWxk
IGlubGluZSB0aGVzZSBjb25zdGFudCB2YWx1ZXMgYmVsb3cgYW5kIHRoZW4gcmVtb3ZlCi0gIC8v
IHRoZXNlIHZhcmlhYmxlcywgc28gdGhlcmUgc2hvdWxkIGJlIG5vIHJ1bnRpbWUgcGVuYWx0eSBm
b3IgdGhlc2UuCi0gIC8qKgotICAgKiBOdW1iZXIgdXNlZCByZXBlYXRlZCBiZWxvdyBpbiBjYWxj
dWxhdGlvbnMuICBUaGlzIG11c3QgYXBwZWFyIGJlZm9yZSB0aGUKLSAgICogZmlyc3QgY2FsbCB0
byBhbnkgZnJvbSogZnVuY3Rpb24gYmVsb3cuCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBw
cml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzE2X0RCTF8gPSAxIDw8IDE2
OwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdv
b2cubWF0aC5Mb25nLlRXT19QV1JfMjRfREJMXyA9IDEgPDwgMjQ7Ci0gIC8qKgotICAgKiBAdHlw
ZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BX
Ul8zMl9EQkxfID0KLSAgICAgIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMTZfREJMXyAqIGdvb2cu
bWF0aC5Mb25nLlRXT19QV1JfMTZfREJMXzsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0g
ICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMxX0RCTF8gPQot
ICAgICAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfIC8gMjsKLSAgLyoqCi0gICAqIEB0
eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09f
UFdSXzQ4X0RCTF8gPQotICAgICAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfICogZ29v
Zy5tYXRoLkxvbmcuVFdPX1BXUl8xNl9EQkxfOwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0K
LSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfNjRfREJMXyA9
Ci0gICAgICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gKiBnb29nLm1hdGguTG9uZy5U
V09fUFdSXzMyX0RCTF87Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0
ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl82M19EQkxfID0KLSAgICAgIGdvb2cu
bWF0aC5Mb25nLlRXT19QV1JfNjRfREJMXyAvIDI7Ci0gIC8qKiBAdHlwZSB7IWdvb2cubWF0aC5M
b25nfSAqLwotICBnb29nLm1hdGguTG9uZy5aRVJPID0gZ29vZy5tYXRoLkxvbmcuZnJvbUludCgw
KTsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdvb2cubWF0aC5Mb25nLk9O
RSA9IGdvb2cubWF0aC5Mb25nLmZyb21JbnQoMSk7Ci0gIC8qKiBAdHlwZSB7IWdvb2cubWF0aC5M
b25nfSAqLwotICBnb29nLm1hdGguTG9uZy5ORUdfT05FID0gZ29vZy5tYXRoLkxvbmcuZnJvbUlu
dCgtMSk7Ci0gIC8qKiBAdHlwZSB7IWdvb2cubWF0aC5Mb25nfSAqLwotICBnb29nLm1hdGguTG9u
Zy5NQVhfVkFMVUUgPQotICAgICAgZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoMHhGRkZGRkZGRiB8
IDAsIDB4N0ZGRkZGRkYgfCAwKTsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0g
IGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSA9IGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKDAsIDB4
ODAwMDAwMDAgfCAwKTsKLSAgLyoqCi0gICAqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9Ci0gICAq
IEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzI0XyA9IGdvb2cubWF0
aC5Mb25nLmZyb21JbnQoMSA8PCAyNCk7Ci0gIC8qKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSB2YWx1
ZSwgYXNzdW1pbmcgaXQgaXMgYSAzMi1iaXQgaW50ZWdlci4gKi8KLSAgZ29vZy5tYXRoLkxvbmcu
cHJvdG90eXBlLnRvSW50ID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMubG93XzsKLSAg
fTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhlIGNsb3Nlc3QgZmxvYXRpbmctcG9pbnQgcmVw
cmVzZW50YXRpb24gdG8gdGhpcyB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBl
LnRvTnVtYmVyID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF8gKiBnb29nLm1h
dGguTG9uZy5UV09fUFdSXzMyX0RCTF8gKwotICAgICAgICAgICB0aGlzLmdldExvd0JpdHNVbnNp
Z25lZCgpOwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtudW1iZXI9fSBvcHRfcmFkaXggVGhl
IHJhZGl4IGluIHdoaWNoIHRoZSB0ZXh0IHNob3VsZCBiZSB3cml0dGVuLgotICAgKiBAcmV0dXJu
IHtzdHJpbmd9IFRoZSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdmFsdWUuCi0gICAq
LwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbihvcHRfcmFk
aXgpIHsKLSAgICB2YXIgcmFkaXggPSBvcHRfcmFkaXggfHwgMTA7Ci0gICAgaWYgKHJhZGl4IDwg
MiB8fCAzNiA8IHJhZGl4KSB7Ci0gICAgICB0aHJvdyBFcnJvcigncmFkaXggb3V0IG9mIHJhbmdl
OiAnICsgcmFkaXgpOwotICAgIH0KLSAgICBpZiAodGhpcy5pc1plcm8oKSkgewotICAgICAgcmV0
dXJuICcwJzsKLSAgICB9Ci0gICAgaWYgKHRoaXMuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICBpZiAo
dGhpcy5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgICAvLyBXZSBu
ZWVkIHRvIGNoYW5nZSB0aGUgTG9uZyB2YWx1ZSBiZWZvcmUgaXQgY2FuIGJlIG5lZ2F0ZWQsIHNv
IHdlIHJlbW92ZQotICAgICAgICAvLyB0aGUgYm90dG9tLW1vc3QgZGlnaXQgaW4gdGhpcyBiYXNl
IGFuZCB0aGVuIHJlY3Vyc2UgdG8gZG8gdGhlIHJlc3QuCi0gICAgICAgIHZhciByYWRpeExvbmcg
PSBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKHJhZGl4KTsKLSAgICAgICAgdmFyIGRpdiA9IHRo
aXMuZGl2KHJhZGl4TG9uZyk7Ci0gICAgICAgIHZhciByZW0gPSBkaXYubXVsdGlwbHkocmFkaXhM
b25nKS5zdWJ0cmFjdCh0aGlzKTsKLSAgICAgICAgcmV0dXJuIGRpdi50b1N0cmluZyhyYWRpeCkg
KyByZW0udG9JbnQoKS50b1N0cmluZyhyYWRpeCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBy
ZXR1cm4gJy0nICsgdGhpcy5uZWdhdGUoKS50b1N0cmluZyhyYWRpeCk7Ci0gICAgICB9Ci0gICAg
fQotICAgIC8vIERvIHNldmVyYWwgKDYpIGRpZ2l0cyBlYWNoIHRpbWUgdGhyb3VnaCB0aGUgbG9v
cCwgc28gYXMgdG8KLSAgICAvLyBtaW5pbWl6ZSB0aGUgY2FsbHMgdG8gdGhlIHZlcnkgZXhwZW5z
aXZlIGVtdWxhdGVkIGRpdi4KLSAgICB2YXIgcmFkaXhUb1Bvd2VyID0gZ29vZy5tYXRoLkxvbmcu
ZnJvbU51bWJlcihNYXRoLnBvdyhyYWRpeCwgNikpOwotICAgIHZhciByZW0gPSB0aGlzOwotICAg
IHZhciByZXN1bHQgPSAnJzsKLSAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgdmFyIHJlbURpdiA9
IHJlbS5kaXYocmFkaXhUb1Bvd2VyKTsKLSAgICAgIHZhciBpbnR2YWwgPSByZW0uc3VidHJhY3Qo
cmVtRGl2Lm11bHRpcGx5KHJhZGl4VG9Qb3dlcikpLnRvSW50KCk7Ci0gICAgICB2YXIgZGlnaXRz
ID0gaW50dmFsLnRvU3RyaW5nKHJhZGl4KTsKLSAgICAgIHJlbSA9IHJlbURpdjsKLSAgICAgIGlm
IChyZW0uaXNaZXJvKCkpIHsKLSAgICAgICAgcmV0dXJuIGRpZ2l0cyArIHJlc3VsdDsKLSAgICAg
IH0gZWxzZSB7Ci0gICAgICAgIHdoaWxlIChkaWdpdHMubGVuZ3RoIDwgNikgewotICAgICAgICAg
IGRpZ2l0cyA9ICcwJyArIGRpZ2l0czsKLSAgICAgICAgfQotICAgICAgICByZXN1bHQgPSAnJyAr
IGRpZ2l0cyArIHJlc3VsdDsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtu
dW1iZXJ9IFRoZSBoaWdoIDMyLWJpdHMgYXMgYSBzaWduZWQgdmFsdWUuICovCi0gIGdvb2cubWF0
aC5Mb25nLnByb3RvdHlwZS5nZXRIaWdoQml0cyA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0
aGlzLmhpZ2hfOwotICB9OwotICAvKiogQHJldHVybiB7bnVtYmVyfSBUaGUgbG93IDMyLWJpdHMg
YXMgYSBzaWduZWQgdmFsdWUuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5nZXRMb3dC
aXRzID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMubG93XzsKLSAgfTsKLSAgLyoqIEBy
ZXR1cm4ge251bWJlcn0gVGhlIGxvdyAzMi1iaXRzIGFzIGFuIHVuc2lnbmVkIHZhbHVlLiAqLwot
ICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZ2V0TG93Qml0c1Vuc2lnbmVkID0gZnVuY3Rpb24o
KSB7Ci0gICAgcmV0dXJuICh0aGlzLmxvd18gPj0gMCkgPwotICAgICAgICB0aGlzLmxvd18gOiBn
b29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gKyB0aGlzLmxvd187Ci0gIH07Ci0gIC8qKgot
ICAgKiBAcmV0dXJuIHtudW1iZXJ9IFJldHVybnMgdGhlIG51bWJlciBvZiBiaXRzIG5lZWRlZCB0
byByZXByZXNlbnQgdGhlIGFic29sdXRlCi0gICAqICAgICB2YWx1ZSBvZiB0aGlzIExvbmcuCi0g
ICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZ2V0TnVtQml0c0FicyA9IGZ1bmN0aW9u
KCkgewotICAgIGlmICh0aGlzLmlzTmVnYXRpdmUoKSkgewotICAgICAgaWYgKHRoaXMuZXF1YWxz
KGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgICAgcmV0dXJuIDY0OwotICAgICAg
fSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmVnYXRlKCkuZ2V0TnVtQml0c0FicygpOwot
ICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgdmFsID0gdGhpcy5oaWdoXyAhPSAwID8g
dGhpcy5oaWdoXyA6IHRoaXMubG93XzsKLSAgICAgIGZvciAodmFyIGJpdCA9IDMxOyBiaXQgPiAw
OyBiaXQtLSkgewotICAgICAgICBpZiAoKHZhbCAmICgxIDw8IGJpdCkpICE9IDApIHsKLSAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuIHRoaXMuaGlnaF8g
IT0gMCA/IGJpdCArIDMzIDogYml0ICsgMTsKLSAgICB9Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHti
b29sZWFufSBXaGV0aGVyIHRoaXMgdmFsdWUgaXMgemVyby4gKi8KLSAgZ29vZy5tYXRoLkxvbmcu
cHJvdG90eXBlLmlzWmVybyA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmhpZ2hfID09
IDAgJiYgdGhpcy5sb3dfID09IDA7Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtib29sZWFufSBXaGV0
aGVyIHRoaXMgdmFsdWUgaXMgbmVnYXRpdmUuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlw
ZS5pc05lZ2F0aXZlID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF8gPCAwOwot
ICB9OwotICAvKiogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIHZhbHVlIGlzIG9kZC4g
Ki8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmlzT2RkID0gZnVuY3Rpb24oKSB7Ci0gICAg
cmV0dXJuICh0aGlzLmxvd18gJiAxKSA9PSAxOwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtn
b29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1
cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBMb25nIGVxdWFscyB0aGUgb3RoZXIuCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAg
ICByZXR1cm4gKHRoaXMuaGlnaF8gPT0gb3RoZXIuaGlnaF8pICYmICh0aGlzLmxvd18gPT0gb3Ro
ZXIubG93Xyk7Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhl
ciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhl
ciB0aGlzIExvbmcgZG9lcyBub3QgZXF1YWwgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRo
LkxvbmcucHJvdG90eXBlLm5vdEVxdWFscyA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJu
ICh0aGlzLmhpZ2hfICE9IG90aGVyLmhpZ2hfKSB8fCAodGhpcy5sb3dfICE9IG90aGVyLmxvd18p
OwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0
byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBM
b25nIGlzIGxlc3MgdGhhbiB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90
b3R5cGUubGVzc1RoYW4gPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLmNvbXBh
cmUob3RoZXIpIDwgMDsKLSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9
IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBX
aGV0aGVyIHRoaXMgTG9uZyBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG90aGVyLgotICAg
Ki8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmxlc3NUaGFuT3JFcXVhbCA9IGZ1bmN0aW9u
KG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikgPD0gMDsKLSAgfTsKLSAg
LyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBh
Z2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9uZyBpcyBncmVh
dGVyIHRoYW4gdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmdy
ZWF0ZXJUaGFuID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhpcy5jb21wYXJlKG90
aGVyKSA+IDA7Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhl
ciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhl
ciB0aGlzIExvbmcgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBvdGhlci4KLSAgICov
Ci0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5ncmVhdGVyVGhhbk9yRXF1YWwgPSBmdW5jdGlv
bihvdGhlcikgewotICAgIHJldHVybiB0aGlzLmNvbXBhcmUob3RoZXIpID49IDA7Ci0gIH07Ci0g
IC8qKgotICAgKiBDb21wYXJlcyB0aGlzIExvbmcgd2l0aCB0aGUgZ2l2ZW4gb25lLgotICAgKiBA
cGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAg
ICogQHJldHVybiB7bnVtYmVyfSAwIGlmIHRoZXkgYXJlIHRoZSBzYW1lLCAxIGlmIHRoZSB0aGlz
IGlzIGdyZWF0ZXIsIGFuZCAtMQotICAgKiAgICAgaWYgdGhlIGdpdmVuIG9uZSBpcyBncmVhdGVy
LgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbihv
dGhlcikgewotICAgIGlmICh0aGlzLmVxdWFscyhvdGhlcikpIHsKLSAgICAgIHJldHVybiAwOwot
ICAgIH0KLSAgICB2YXIgdGhpc05lZyA9IHRoaXMuaXNOZWdhdGl2ZSgpOwotICAgIHZhciBvdGhl
ck5lZyA9IG90aGVyLmlzTmVnYXRpdmUoKTsKLSAgICBpZiAodGhpc05lZyAmJiAhb3RoZXJOZWcp
IHsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgaWYgKCF0aGlzTmVnICYmIG90aGVyTmVn
KSB7Ci0gICAgICByZXR1cm4gMTsKLSAgICB9Ci0gICAgLy8gYXQgdGhpcyBwb2ludCwgdGhlIHNp
Z25zIGFyZSB0aGUgc2FtZSwgc28gc3VidHJhY3Rpb24gd2lsbCBub3Qgb3ZlcmZsb3cKLSAgICBp
ZiAodGhpcy5zdWJ0cmFjdChvdGhlcikuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICByZXR1cm4gLTE7
Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiAxOwotICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1
cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIG5lZ2F0aW9uIG9mIHRoaXMgdmFsdWUuICovCi0gIGdv
b2cubWF0aC5Mb25nLnByb3RvdHlwZS5uZWdhdGUgPSBmdW5jdGlvbigpIHsKLSAgICBpZiAodGhp
cy5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgcmV0dXJuIGdvb2cu
bWF0aC5Mb25nLk1JTl9WQUxVRTsKLSAgICB9IGVsc2UgewotICAgICAgcmV0dXJuIHRoaXMubm90
KCkuYWRkKGdvb2cubWF0aC5Mb25nLk9ORSk7Ci0gICAgfQotICB9OwotICAvKioKLSAgICogUmV0
dXJucyB0aGUgc3VtIG9mIHRoaXMgYW5kIHRoZSBnaXZlbiBMb25nLgotICAgKiBAcGFyYW0ge2dv
b2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGFkZCB0byB0aGlzIG9uZS4KLSAgICogQHJldHVy
biB7IWdvb2cubWF0aC5Mb25nfSBUaGUgc3VtIG9mIHRoaXMgYW5kIHRoZSBnaXZlbiBMb25nLgot
ICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKG90aGVyKSB7
Ci0gICAgLy8gRGl2aWRlIGVhY2ggbnVtYmVyIGludG8gNCBjaHVua3Mgb2YgMTYgYml0cywgYW5k
IHRoZW4gc3VtIHRoZSBjaHVua3MuCi0gICAgdmFyIGE0OCA9IHRoaXMuaGlnaF8gPj4+IDE2Owot
ICAgIHZhciBhMzIgPSB0aGlzLmhpZ2hfICYgMHhGRkZGOwotICAgIHZhciBhMTYgPSB0aGlzLmxv
d18gPj4+IDE2OwotICAgIHZhciBhMDAgPSB0aGlzLmxvd18gJiAweEZGRkY7Ci0gICAgdmFyIGI0
OCA9IG90aGVyLmhpZ2hfID4+PiAxNjsKLSAgICB2YXIgYjMyID0gb3RoZXIuaGlnaF8gJiAweEZG
RkY7Ci0gICAgdmFyIGIxNiA9IG90aGVyLmxvd18gPj4+IDE2OwotICAgIHZhciBiMDAgPSBvdGhl
ci5sb3dfICYgMHhGRkZGOwotICAgIHZhciBjNDggPSAwLCBjMzIgPSAwLCBjMTYgPSAwLCBjMDAg
PSAwOwotICAgIGMwMCArPSBhMDAgKyBiMDA7Ci0gICAgYzE2ICs9IGMwMCA+Pj4gMTY7Ci0gICAg
YzAwICY9IDB4RkZGRjsKLSAgICBjMTYgKz0gYTE2ICsgYjE2OwotICAgIGMzMiArPSBjMTYgPj4+
IDE2OwotICAgIGMxNiAmPSAweEZGRkY7Ci0gICAgYzMyICs9IGEzMiArIGIzMjsKLSAgICBjNDgg
Kz0gYzMyID4+PiAxNjsKLSAgICBjMzIgJj0gMHhGRkZGOwotICAgIGM0OCArPSBhNDggKyBiNDg7
Ci0gICAgYzQ4ICY9IDB4RkZGRjsKLSAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMo
KGMxNiA8PCAxNikgfCBjMDAsIChjNDggPDwgMTYpIHwgYzMyKTsKLSAgfTsKLSAgLyoqCi0gICAq
IFJldHVybnMgdGhlIGRpZmZlcmVuY2Ugb2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAq
IEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gc3VidHJhY3QgZnJvbSB0aGlz
LgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBkaWZmZXJlbmNlIG9mIHRoaXMg
YW5kIHRoZSBnaXZlbiBMb25nLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnN1
YnRyYWN0ID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhpcy5hZGQob3RoZXIubmVn
YXRlKCkpOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUgcHJvZHVjdCBvZiB0aGlzIGFu
ZCB0aGUgZ2l2ZW4gbG9uZy4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9u
ZyB0byBtdWx0aXBseSB3aXRoIHRoaXMuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30g
VGhlIHByb2R1Y3Qgb2YgdGhpcyBhbmQgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxv
bmcucHJvdG90eXBlLm11bHRpcGx5ID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICBpZiAodGhpcy5p
c1plcm8oKSkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgfSBlbHNl
IGlmIChvdGhlci5pc1plcm8oKSkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLlpFUk87
Ci0gICAgfQotICAgIGlmICh0aGlzLmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7
Ci0gICAgICByZXR1cm4gb3RoZXIuaXNPZGQoKSA/IGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSA6
IGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgfSBlbHNlIGlmIChvdGhlci5lcXVhbHMoZ29vZy5t
YXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgcmV0dXJuIHRoaXMuaXNPZGQoKSA/IGdvb2cu
bWF0aC5Mb25nLk1JTl9WQUxVRSA6IGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgfQotICAgIGlm
ICh0aGlzLmlzTmVnYXRpdmUoKSkgewotICAgICAgaWYgKG90aGVyLmlzTmVnYXRpdmUoKSkgewot
ICAgICAgICByZXR1cm4gdGhpcy5uZWdhdGUoKS5tdWx0aXBseShvdGhlci5uZWdhdGUoKSk7Ci0g
ICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gdGhpcy5uZWdhdGUoKS5tdWx0aXBseShvdGhl
cikubmVnYXRlKCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChvdGhlci5pc05lZ2F0aXZlKCkp
IHsKLSAgICAgIHJldHVybiB0aGlzLm11bHRpcGx5KG90aGVyLm5lZ2F0ZSgpKS5uZWdhdGUoKTsK
LSAgICB9Ci0gICAgLy8gSWYgYm90aCBsb25ncyBhcmUgc21hbGwsIHVzZSBmbG9hdCBtdWx0aXBs
aWNhdGlvbgotICAgIGlmICh0aGlzLmxlc3NUaGFuKGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRf
KSAmJgotICAgICAgICBvdGhlci5sZXNzVGhhbihnb29nLm1hdGguTG9uZy5UV09fUFdSXzI0Xykp
IHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKHRoaXMudG9OdW1iZXIo
KSAqIG90aGVyLnRvTnVtYmVyKCkpOwotICAgIH0KLSAgICAvLyBEaXZpZGUgZWFjaCBsb25nIGlu
dG8gNCBjaHVua3Mgb2YgMTYgYml0cywgYW5kIHRoZW4gYWRkIHVwIDR4NCBwcm9kdWN0cy4KLSAg
ICAvLyBXZSBjYW4gc2tpcCBwcm9kdWN0cyB0aGF0IHdvdWxkIG92ZXJmbG93LgotICAgIHZhciBh
NDggPSB0aGlzLmhpZ2hfID4+PiAxNjsKLSAgICB2YXIgYTMyID0gdGhpcy5oaWdoXyAmIDB4RkZG
RjsKLSAgICB2YXIgYTE2ID0gdGhpcy5sb3dfID4+PiAxNjsKLSAgICB2YXIgYTAwID0gdGhpcy5s
b3dfICYgMHhGRkZGOwotICAgIHZhciBiNDggPSBvdGhlci5oaWdoXyA+Pj4gMTY7Ci0gICAgdmFy
IGIzMiA9IG90aGVyLmhpZ2hfICYgMHhGRkZGOwotICAgIHZhciBiMTYgPSBvdGhlci5sb3dfID4+
PiAxNjsKLSAgICB2YXIgYjAwID0gb3RoZXIubG93XyAmIDB4RkZGRjsKLSAgICB2YXIgYzQ4ID0g
MCwgYzMyID0gMCwgYzE2ID0gMCwgYzAwID0gMDsKLSAgICBjMDAgKz0gYTAwICogYjAwOwotICAg
IGMxNiArPSBjMDAgPj4+IDE2OwotICAgIGMwMCAmPSAweEZGRkY7Ci0gICAgYzE2ICs9IGExNiAq
IGIwMDsKLSAgICBjMzIgKz0gYzE2ID4+PiAxNjsKLSAgICBjMTYgJj0gMHhGRkZGOwotICAgIGMx
NiArPSBhMDAgKiBiMTY7Ci0gICAgYzMyICs9IGMxNiA+Pj4gMTY7Ci0gICAgYzE2ICY9IDB4RkZG
RjsKLSAgICBjMzIgKz0gYTMyICogYjAwOwotICAgIGM0OCArPSBjMzIgPj4+IDE2OwotICAgIGMz
MiAmPSAweEZGRkY7Ci0gICAgYzMyICs9IGExNiAqIGIxNjsKLSAgICBjNDggKz0gYzMyID4+PiAx
NjsKLSAgICBjMzIgJj0gMHhGRkZGOwotICAgIGMzMiArPSBhMDAgKiBiMzI7Ci0gICAgYzQ4ICs9
IGMzMiA+Pj4gMTY7Ci0gICAgYzMyICY9IDB4RkZGRjsKLSAgICBjNDggKz0gYTQ4ICogYjAwICsg
YTMyICogYjE2ICsgYTE2ICogYjMyICsgYTAwICogYjQ4OwotICAgIGM0OCAmPSAweEZGRkY7Ci0g
ICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKChjMTYgPDwgMTYpIHwgYzAwLCAoYzQ4
IDw8IDE2KSB8IGMzMik7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoaXMgTG9uZyBkaXZp
ZGVkIGJ5IHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVy
IExvbmcgYnkgd2hpY2ggdG8gZGl2aWRlLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9
IFRoaXMgTG9uZyBkaXZpZGVkIGJ5IHRoZSBnaXZlbiBvbmUuCi0gICAqLwotICBnb29nLm1hdGgu
TG9uZy5wcm90b3R5cGUuZGl2ID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICBpZiAob3RoZXIuaXNa
ZXJvKCkpIHsKLSAgICAgIHRocm93IEVycm9yKCdkaXZpc2lvbiBieSB6ZXJvJyk7Ci0gICAgfSBl
bHNlIGlmICh0aGlzLmlzWmVybygpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVS
TzsKLSAgICB9Ci0gICAgaWYgKHRoaXMuZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkp
IHsKLSAgICAgIGlmIChvdGhlci5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuT05FKSB8fAotICAgICAg
ICAgIG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5ORUdfT05FKSkgewotICAgICAgICByZXR1
cm4gZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFOyAgLy8gcmVjYWxsIHRoYXQgLU1JTl9WQUxVRSA9
PSBNSU5fVkFMVUUKLSAgICAgIH0gZWxzZSBpZiAob3RoZXIuZXF1YWxzKGdvb2cubWF0aC5Mb25n
Lk1JTl9WQUxVRSkpIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLk9ORTsKLSAgICAg
IH0gZWxzZSB7Ci0gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlIGhhdmUgfG90aGVyfCA+PSAy
LCBzbyB8dGhpcy9vdGhlcnwgPCB8TUlOX1ZBTFVFfC4KLSAgICAgICAgdmFyIGhhbGZUaGlzID0g
dGhpcy5zaGlmdFJpZ2h0KDEpOwotICAgICAgICB2YXIgYXBwcm94ID0gaGFsZlRoaXMuZGl2KG90
aGVyKS5zaGlmdExlZnQoMSk7Ci0gICAgICAgIGlmIChhcHByb3guZXF1YWxzKGdvb2cubWF0aC5M
b25nLlpFUk8pKSB7Ci0gICAgICAgICAgcmV0dXJuIG90aGVyLmlzTmVnYXRpdmUoKSA/IGdvb2cu
bWF0aC5Mb25nLk9ORSA6IGdvb2cubWF0aC5Mb25nLk5FR19PTkU7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgdmFyIHJlbSA9IHRoaXMuc3VidHJhY3Qob3RoZXIubXVsdGlwbHkoYXBwcm94
KSk7Ci0gICAgICAgICAgdmFyIHJlc3VsdCA9IGFwcHJveC5hZGQocmVtLmRpdihvdGhlcikpOwot
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9IGVsc2Ug
aWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICByZXR1
cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0gICAgaWYgKHRoaXMuaXNOZWdhdGl2ZSgp
KSB7Ci0gICAgICBpZiAob3RoZXIuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICAgIHJldHVybiB0aGlz
Lm5lZ2F0ZSgpLmRpdihvdGhlci5uZWdhdGUoKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBy
ZXR1cm4gdGhpcy5uZWdhdGUoKS5kaXYob3RoZXIpLm5lZ2F0ZSgpOwotICAgICAgfQotICAgIH0g
ZWxzZSBpZiAob3RoZXIuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICByZXR1cm4gdGhpcy5kaXYob3Ro
ZXIubmVnYXRlKCkpLm5lZ2F0ZSgpOwotICAgIH0KLSAgICAvLyBSZXBlYXQgdGhlIGZvbGxvd2lu
ZyB1bnRpbCB0aGUgcmVtYWluZGVyIGlzIGxlc3MgdGhhbiBvdGhlcjogIGZpbmQgYQotICAgIC8v
IGZsb2F0aW5nLXBvaW50IHRoYXQgYXBwcm94aW1hdGVzIHJlbWFpbmRlciAvIG90aGVyICpmcm9t
IGJlbG93KiwgYWRkIHRoaXMKLSAgICAvLyBpbnRvIHRoZSByZXN1bHQsIGFuZCBzdWJ0cmFjdCBp
dCBmcm9tIHRoZSByZW1haW5kZXIuICBJdCBpcyBjcml0aWNhbCB0aGF0Ci0gICAgLy8gdGhlIGFw
cHJveGltYXRlIHZhbHVlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgcmVhbCB2YWx1ZSBz
byB0aGF0IHRoZQotICAgIC8vIHJlbWFpbmRlciBuZXZlciBiZWNvbWVzIG5lZ2F0aXZlLgotICAg
IHZhciByZXMgPSBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIHZhciByZW0gPSB0aGlzOwotICAg
IHdoaWxlIChyZW0uZ3JlYXRlclRoYW5PckVxdWFsKG90aGVyKSkgewotICAgICAgLy8gQXBwcm94
aW1hdGUgdGhlIHJlc3VsdCBvZiBkaXZpc2lvbi4gVGhpcyBtYXkgYmUgYSBsaXR0bGUgZ3JlYXRl
ciBvcgotICAgICAgLy8gc21hbGxlciB0aGFuIHRoZSBhY3R1YWwgdmFsdWUuCi0gICAgICB2YXIg
YXBwcm94ID0gTWF0aC5tYXgoMSwgTWF0aC5mbG9vcihyZW0udG9OdW1iZXIoKSAvIG90aGVyLnRv
TnVtYmVyKCkpKTsKLSAgICAgIC8vIFdlIHdpbGwgdHdlYWsgdGhlIGFwcHJveGltYXRlIHJlc3Vs
dCBieSBjaGFuZ2luZyBpdCBpbiB0aGUgNDgtdGggZGlnaXQgb3IKLSAgICAgIC8vIHRoZSBzbWFs
bGVzdCBub24tZnJhY3Rpb25hbCBkaWdpdCwgd2hpY2hldmVyIGlzIGxhcmdlci4KLSAgICAgIHZh
ciBsb2cyID0gTWF0aC5jZWlsKE1hdGgubG9nKGFwcHJveCkgLyBNYXRoLkxOMik7Ci0gICAgICB2
YXIgZGVsdGEgPSAobG9nMiA8PSA0OCkgPyAxIDogTWF0aC5wb3coMiwgbG9nMiAtIDQ4KTsKLSAg
ICAgIC8vIERlY3JlYXNlIHRoZSBhcHByb3hpbWF0aW9uIHVudGlsIGl0IGlzIHNtYWxsZXIgdGhh
biB0aGUgcmVtYWluZGVyLiAgTm90ZQotICAgICAgLy8gdGhhdCBpZiBpdCBpcyB0b28gbGFyZ2Us
IHRoZSBwcm9kdWN0IG92ZXJmbG93cyBhbmQgaXMgbmVnYXRpdmUuCi0gICAgICB2YXIgYXBwcm94
UmVzID0gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcihhcHByb3gpOwotICAgICAgdmFyIGFwcHJv
eFJlbSA9IGFwcHJveFJlcy5tdWx0aXBseShvdGhlcik7Ci0gICAgICB3aGlsZSAoYXBwcm94UmVt
LmlzTmVnYXRpdmUoKSB8fCBhcHByb3hSZW0uZ3JlYXRlclRoYW4ocmVtKSkgewotICAgICAgICBh
cHByb3ggLT0gZGVsdGE7Ci0gICAgICAgIGFwcHJveFJlcyA9IGdvb2cubWF0aC5Mb25nLmZyb21O
dW1iZXIoYXBwcm94KTsKLSAgICAgICAgYXBwcm94UmVtID0gYXBwcm94UmVzLm11bHRpcGx5KG90
aGVyKTsKLSAgICAgIH0KLSAgICAgIC8vIFdlIGtub3cgdGhlIGFuc3dlciBjYW4ndCBiZSB6ZXJv
Li4uIGFuZCBhY3R1YWxseSwgemVybyB3b3VsZCBjYXVzZQotICAgICAgLy8gaW5maW5pdGUgcmVj
dXJzaW9uIHNpbmNlIHdlIHdvdWxkIG1ha2Ugbm8gcHJvZ3Jlc3MuCi0gICAgICBpZiAoYXBwcm94
UmVzLmlzWmVybygpKSB7Ci0gICAgICAgIGFwcHJveFJlcyA9IGdvb2cubWF0aC5Mb25nLk9ORTsK
LSAgICAgIH0KLSAgICAgIHJlcyA9IHJlcy5hZGQoYXBwcm94UmVzKTsKLSAgICAgIHJlbSA9IHJl
bS5zdWJ0cmFjdChhcHByb3hSZW0pOwotICAgIH0KLSAgICByZXR1cm4gcmVzOwotICB9OwotICAv
KioKLSAgICogUmV0dXJucyB0aGlzIExvbmcgbW9kdWxvIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBw
YXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgYnkgd2hpY2ggdG8gbW9kLgotICAgKiBA
cmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoaXMgTG9uZyBtb2R1bG8gdGhlIGdpdmVuIG9uZS4K
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5tb2R1bG8gPSBmdW5jdGlvbihvdGhl
cikgewotICAgIHJldHVybiB0aGlzLnN1YnRyYWN0KHRoaXMuZGl2KG90aGVyKS5tdWx0aXBseShv
dGhlcikpOwotICB9OwotICAvKiogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgYml0d2lz
ZS1OT1Qgb2YgdGhpcyB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLm5vdCA9
IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cyh+dGhpcy5s
b3dfLCB+dGhpcy5oaWdoXyk7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBiaXR3aXNl
LUFORCBvZiB0aGlzIExvbmcgYW5kIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5t
YXRoLkxvbmd9IG90aGVyIFRoZSBMb25nIHdpdGggd2hpY2ggdG8gQU5ELgotICAgKiBAcmV0dXJu
IHshZ29vZy5tYXRoLkxvbmd9IFRoZSBiaXR3aXNlLUFORCBvZiB0aGlzIGFuZCB0aGUgb3RoZXIu
Ci0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuYW5kID0gZnVuY3Rpb24ob3RoZXIp
IHsKLSAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHModGhpcy5sb3dfICYgb3RoZXIu
bG93XywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWdoXyAmIG90
aGVyLmhpZ2hfKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhlIGJpdHdpc2UtT1Igb2Yg
dGhpcyBMb25nIGFuZCB0aGUgZ2l2ZW4gb25lLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25n
fSBvdGhlciBUaGUgTG9uZyB3aXRoIHdoaWNoIHRvIE9SLgotICAgKiBAcmV0dXJuIHshZ29vZy5t
YXRoLkxvbmd9IFRoZSBiaXR3aXNlLU9SIG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0g
IGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5vciA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0
dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKHRoaXMubG93XyB8IG90aGVyLmxvd18sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlnaF8gfCBvdGhlci5oaWdoXyk7
Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBiaXR3aXNlLVhPUiBvZiB0aGlzIExvbmcg
YW5kIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIFRo
ZSBMb25nIHdpdGggd2hpY2ggdG8gWE9SLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9
IFRoZSBiaXR3aXNlLVhPUiBvZiB0aGlzIGFuZCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1h
dGguTG9uZy5wcm90b3R5cGUueG9yID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gZ29v
Zy5tYXRoLkxvbmcuZnJvbUJpdHModGhpcy5sb3dfIF4gb3RoZXIubG93XywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWdoXyBeIG90aGVyLmhpZ2hfKTsKLSAgfTsK
LSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBMb25nIHdpdGggYml0cyBzaGlmdGVkIHRvIHRoZSBs
ZWZ0IGJ5IHRoZSBnaXZlbiBhbW91bnQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1CaXRzIFRo
ZSBudW1iZXIgb2YgYml0cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVybiB7IWdvb2cu
bWF0aC5Mb25nfSBUaGlzIHNoaWZ0ZWQgdG8gdGhlIGxlZnQgYnkgdGhlIGdpdmVuIGFtb3VudC4K
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5zaGlmdExlZnQgPSBmdW5jdGlvbihu
dW1CaXRzKSB7Ci0gICAgbnVtQml0cyAmPSA2MzsKLSAgICBpZiAobnVtQml0cyA9PSAwKSB7Ci0g
ICAgICByZXR1cm4gdGhpczsKLSAgICB9IGVsc2UgewotICAgICAgdmFyIGxvdyA9IHRoaXMubG93
XzsKLSAgICAgIGlmIChudW1CaXRzIDwgMzIpIHsKLSAgICAgICAgdmFyIGhpZ2ggPSB0aGlzLmhp
Z2hfOwotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoCi0gICAgICAgICAg
ICBsb3cgPDwgbnVtQml0cywKLSAgICAgICAgICAgIChoaWdoIDw8IG51bUJpdHMpIHwgKGxvdyA+
Pj4gKDMyIC0gbnVtQml0cykpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBnb29n
Lm1hdGguTG9uZy5mcm9tQml0cygwLCBsb3cgPDwgKG51bUJpdHMgLSAzMikpOwotICAgICAgfQot
ICAgIH0KLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBMb25nIHdpdGggYml0cyBzaGlm
dGVkIHRvIHRoZSByaWdodCBieSB0aGUgZ2l2ZW4gYW1vdW50LgotICAgKiBAcGFyYW0ge251bWJl
cn0gbnVtQml0cyBUaGUgbnVtYmVyIG9mIGJpdHMgYnkgd2hpY2ggdG8gc2hpZnQuCi0gICAqIEBy
ZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhpcyBzaGlmdGVkIHRvIHRoZSByaWdodCBieSB0aGUg
Z2l2ZW4gYW1vdW50LgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0Umln
aHQgPSBmdW5jdGlvbihudW1CaXRzKSB7Ci0gICAgbnVtQml0cyAmPSA2MzsKLSAgICBpZiAobnVt
Qml0cyA9PSAwKSB7Ci0gICAgICByZXR1cm4gdGhpczsKLSAgICB9IGVsc2UgewotICAgICAgdmFy
IGhpZ2ggPSB0aGlzLmhpZ2hfOwotICAgICAgaWYgKG51bUJpdHMgPCAzMikgewotICAgICAgICB2
YXIgbG93ID0gdGhpcy5sb3dfOwotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJp
dHMoCi0gICAgICAgICAgICAobG93ID4+PiBudW1CaXRzKSB8IChoaWdoIDw8ICgzMiAtIG51bUJp
dHMpKSwKLSAgICAgICAgICAgIGhpZ2ggPj4gbnVtQml0cyk7Ci0gICAgICB9IGVsc2UgewotICAg
ICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoCi0gICAgICAgICAgICBoaWdoID4+
IChudW1CaXRzIC0gMzIpLAotICAgICAgICAgICAgaGlnaCA+PSAwID8gMCA6IC0xKTsKLSAgICAg
IH0KLSAgICB9Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoaXMgTG9uZyB3aXRoIGJpdHMg
c2hpZnRlZCB0byB0aGUgcmlnaHQgYnkgdGhlIGdpdmVuIGFtb3VudCwgd2l0aAotICAgKiB0aGUg
bmV3IHRvcCBiaXRzIG1hdGNoaW5nIHRoZSBjdXJyZW50IHNpZ24gYml0LgotICAgKiBAcGFyYW0g
e251bWJlcn0gbnVtQml0cyBUaGUgbnVtYmVyIG9mIGJpdHMgYnkgd2hpY2ggdG8gc2hpZnQuCi0g
ICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhpcyBzaGlmdGVkIHRvIHRoZSByaWdodCBi
eSB0aGUgZ2l2ZW4gYW1vdW50LCB3aXRoCi0gICAqICAgICB6ZXJvcyBwbGFjZWQgaW50byB0aGUg
bmV3IGxlYWRpbmcgYml0cy4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5zaGlm
dFJpZ2h0VW5zaWduZWQgPSBmdW5jdGlvbihudW1CaXRzKSB7Ci0gICAgbnVtQml0cyAmPSA2MzsK
LSAgICBpZiAobnVtQml0cyA9PSAwKSB7Ci0gICAgICByZXR1cm4gdGhpczsKLSAgICB9IGVsc2Ug
ewotICAgICAgdmFyIGhpZ2ggPSB0aGlzLmhpZ2hfOwotICAgICAgaWYgKG51bUJpdHMgPCAzMikg
ewotICAgICAgICB2YXIgbG93ID0gdGhpcy5sb3dfOwotICAgICAgICByZXR1cm4gZ29vZy5tYXRo
LkxvbmcuZnJvbUJpdHMoCi0gICAgICAgICAgICAobG93ID4+PiBudW1CaXRzKSB8IChoaWdoIDw8
ICgzMiAtIG51bUJpdHMpKSwKLSAgICAgICAgICAgIGhpZ2ggPj4+IG51bUJpdHMpOwotICAgICAg
fSBlbHNlIGlmIChudW1CaXRzID09IDMyKSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9u
Zy5mcm9tQml0cyhoaWdoLCAwKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBnb29n
Lm1hdGguTG9uZy5mcm9tQml0cyhoaWdoID4+PiAobnVtQml0cyAtIDMyKSwgMCk7Ci0gICAgICB9
Ci0gICAgfQotICB9OwotICAvLz09PT09PT0gYmVnaW4ganNibiA9PT09PT09Ci0gIHZhciBuYXZp
Z2F0b3IgPSB7IGFwcE5hbWU6ICdNb2Rlcm4gQnJvd3NlcicgfTsgLy8gcG9seWZpbGwgYSBsaXR0
bGUKLSAgLy8gQ29weXJpZ2h0IChjKSAyMDA1ICBUb20gV3UKLSAgLy8gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAgLy8gaHR0cDovL3d3dy1jcy1zdHVkZW50cy5zdGFuZm9yZC5lZHUvfnRqdy9qc2Ju
LwotICAvKgotICAgKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSAgVG9tIFd1Ci0gICAqIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCi0gICAqCi0gICAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwotICAgKiBhIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSAg
ICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp
b24sIGluY2x1ZGluZwotICAgKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0gICAqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu
c2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotICAgKiBwZXJt
aXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KLSAgICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICAgKgotICAgKiBUaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZQotICAgKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBTb2Z0d2FyZS4KLSAgICoKLSAgICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUy1J
UyIgQU5EIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIAotICAgKiBFWFBSRVNTLCBJTVBM
SUVEIE9SIE9USEVSV0lTRSwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIAotICAg
KiBXQVJSQU5UWSBPRiBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICAKLSAgICoKLSAgICogSU4gTk8gRVZFTlQgU0hBTEwgVE9NIFdVIEJFIExJQUJM
RSBGT1IgQU5ZIFNQRUNJQUwsIElOQ0lERU5UQUwsCi0gICAqIElORElSRUNUIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyBPRiBBTlkgS0lORCwgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUgotICAg
KiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIE9S
IE5PVCBBRFZJU0VEIE9GCi0gICAqIFRIRSBQT1NTSUJJTElUWSBPRiBEQU1BR0UsIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgQVJJU0lORyBPVVQKLSAgICogT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KLSAgICoK
LSAgICogSW4gYWRkaXRpb24sIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uIGFwcGxpZXM6Ci0gICAq
Ci0gICAqIEFsbCByZWRpc3RyaWJ1dGlvbnMgbXVzdCByZXRhaW4gYW4gaW50YWN0IGNvcHkgb2Yg
dGhpcyBjb3B5cmlnaHQgbm90aWNlCi0gICAqIGFuZCBkaXNjbGFpbWVyLgotICAgKi8KLSAgLy8g
QmFzaWMgSmF2YVNjcmlwdCBCTiBsaWJyYXJ5IC0gc3Vic2V0IHVzZWZ1bCBmb3IgUlNBIGVuY3J5
cHRpb24uCi0gIC8vIEJpdHMgcGVyIGRpZ2l0Ci0gIHZhciBkYml0czsKLSAgLy8gSmF2YVNjcmlw
dCBlbmdpbmUgYW5hbHlzaXMKLSAgdmFyIGNhbmFyeSA9IDB4ZGVhZGJlZWZjYWZlOwotICB2YXIg
al9sbSA9ICgoY2FuYXJ5JjB4ZmZmZmZmKT09MHhlZmNhZmUpOwotICAvLyAocHVibGljKSBDb25z
dHJ1Y3RvcgotICBmdW5jdGlvbiBCaWdJbnRlZ2VyKGEsYixjKSB7Ci0gICAgaWYoYSAhPSBudWxs
KQotICAgICAgaWYoIm51bWJlciIgPT0gdHlwZW9mIGEpIHRoaXMuZnJvbU51bWJlcihhLGIsYyk7
Ci0gICAgICBlbHNlIGlmKGIgPT0gbnVsbCAmJiAic3RyaW5nIiAhPSB0eXBlb2YgYSkgdGhpcy5m
cm9tU3RyaW5nKGEsMjU2KTsKLSAgICAgIGVsc2UgdGhpcy5mcm9tU3RyaW5nKGEsYik7Ci0gIH0K
LSAgLy8gcmV0dXJuIG5ldywgdW5zZXQgQmlnSW50ZWdlcgotICBmdW5jdGlvbiBuYmkoKSB7IHJl
dHVybiBuZXcgQmlnSW50ZWdlcihudWxsKTsgfQotICAvLyBhbTogQ29tcHV0ZSB3X2ogKz0gKHgq
dGhpc19pKSwgcHJvcGFnYXRlIGNhcnJpZXMsCi0gIC8vIGMgaXMgaW5pdGlhbCBjYXJyeSwgcmV0
dXJucyBmaW5hbCBjYXJyeS4KLSAgLy8gYyA8IDMqZHZhbHVlLCB4IDwgMipkdmFsdWUsIHRoaXNf
aSA8IGR2YWx1ZQotICAvLyBXZSBuZWVkIHRvIHNlbGVjdCB0aGUgZmFzdGVzdCBvbmUgdGhhdCB3
b3JrcyBpbiB0aGlzIGVudmlyb25tZW50LgotICAvLyBhbTE6IHVzZSBhIHNpbmdsZSBtdWx0IGFu
ZCBkaXZpZGUgdG8gZ2V0IHRoZSBoaWdoIGJpdHMsCi0gIC8vIG1heCBkaWdpdCBiaXRzIHNob3Vs
ZCBiZSAyNiBiZWNhdXNlCi0gIC8vIG1heCBpbnRlcm5hbCB2YWx1ZSA9IDIqZHZhbHVlXjItMipk
dmFsdWUgKDwgMl41MykKLSAgZnVuY3Rpb24gYW0xKGkseCx3LGosYyxuKSB7Ci0gICAgd2hpbGUo
LS1uID49IDApIHsKLSAgICAgIHZhciB2ID0geCp0aGlzW2krK10rd1tqXStjOwotICAgICAgYyA9
IE1hdGguZmxvb3Iodi8weDQwMDAwMDApOwotICAgICAgd1tqKytdID0gdiYweDNmZmZmZmY7Ci0g
ICAgfQotICAgIHJldHVybiBjOwotICB9Ci0gIC8vIGFtMiBhdm9pZHMgYSBiaWcgbXVsdC1hbmQt
ZXh0cmFjdCBjb21wbGV0ZWx5LgotICAvLyBNYXggZGlnaXQgYml0cyBzaG91bGQgYmUgPD0gMzAg
YmVjYXVzZSB3ZSBkbyBiaXR3aXNlIG9wcwotICAvLyBvbiB2YWx1ZXMgdXAgdG8gMipoZHZhbHVl
XjItaGR2YWx1ZS0xICg8IDJeMzEpCi0gIGZ1bmN0aW9uIGFtMihpLHgsdyxqLGMsbikgewotICAg
IHZhciB4bCA9IHgmMHg3ZmZmLCB4aCA9IHg+PjE1OwotICAgIHdoaWxlKC0tbiA+PSAwKSB7Ci0g
ICAgICB2YXIgbCA9IHRoaXNbaV0mMHg3ZmZmOwotICAgICAgdmFyIGggPSB0aGlzW2krK10+PjE1
OwotICAgICAgdmFyIG0gPSB4aCpsK2gqeGw7Ci0gICAgICBsID0geGwqbCsoKG0mMHg3ZmZmKTw8
MTUpK3dbal0rKGMmMHgzZmZmZmZmZik7Ci0gICAgICBjID0gKGw+Pj4zMCkrKG0+Pj4xNSkreGgq
aCsoYz4+PjMwKTsKLSAgICAgIHdbaisrXSA9IGwmMHgzZmZmZmZmZjsKLSAgICB9Ci0gICAgcmV0
dXJuIGM7Ci0gIH0KLSAgLy8gQWx0ZXJuYXRlbHksIHNldCBtYXggZGlnaXQgYml0cyB0byAyOCBz
aW5jZSBzb21lCi0gIC8vIGJyb3dzZXJzIHNsb3cgZG93biB3aGVuIGRlYWxpbmcgd2l0aCAzMi1i
aXQgbnVtYmVycy4KLSAgZnVuY3Rpb24gYW0zKGkseCx3LGosYyxuKSB7Ci0gICAgdmFyIHhsID0g
eCYweDNmZmYsIHhoID0geD4+MTQ7Ci0gICAgd2hpbGUoLS1uID49IDApIHsKLSAgICAgIHZhciBs
ID0gdGhpc1tpXSYweDNmZmY7Ci0gICAgICB2YXIgaCA9IHRoaXNbaSsrXT4+MTQ7Ci0gICAgICB2
YXIgbSA9IHhoKmwraCp4bDsKLSAgICAgIGwgPSB4bCpsKygobSYweDNmZmYpPDwxNCkrd1tqXStj
OwotICAgICAgYyA9IChsPj4yOCkrKG0+PjE0KSt4aCpoOwotICAgICAgd1tqKytdID0gbCYweGZm
ZmZmZmY7Ci0gICAgfQotICAgIHJldHVybiBjOwotICB9Ci0gIGlmKGpfbG0gJiYgKG5hdmlnYXRv
ci5hcHBOYW1lID09ICJNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIiKSkgewotICAgIEJpZ0lu
dGVnZXIucHJvdG90eXBlLmFtID0gYW0yOwotICAgIGRiaXRzID0gMzA7Ci0gIH0KLSAgZWxzZSBp
ZihqX2xtICYmIChuYXZpZ2F0b3IuYXBwTmFtZSAhPSAiTmV0c2NhcGUiKSkgewotICAgIEJpZ0lu
dGVnZXIucHJvdG90eXBlLmFtID0gYW0xOwotICAgIGRiaXRzID0gMjY7Ci0gIH0KLSAgZWxzZSB7
IC8vIE1vemlsbGEvTmV0c2NhcGUgc2VlbXMgdG8gcHJlZmVyIGFtMwotICAgIEJpZ0ludGVnZXIu
cHJvdG90eXBlLmFtID0gYW0zOwotICAgIGRiaXRzID0gMjg7Ci0gIH0KLSAgQmlnSW50ZWdlci5w
cm90b3R5cGUuREIgPSBkYml0czsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuRE0gPSAoKDE8PGRi
aXRzKS0xKTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuRFYgPSAoMTw8ZGJpdHMpOwotICB2YXIg
QklfRlAgPSA1MjsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuRlYgPSBNYXRoLnBvdygyLEJJX0ZQ
KTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuRjEgPSBCSV9GUC1kYml0czsKLSAgQmlnSW50ZWdl
ci5wcm90b3R5cGUuRjIgPSAyKmRiaXRzLUJJX0ZQOwotICAvLyBEaWdpdCBjb252ZXJzaW9ucwot
ICB2YXIgQklfUk0gPSAiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IjsKLSAg
dmFyIEJJX1JDID0gbmV3IEFycmF5KCk7Ci0gIHZhciBycix2djsKLSAgcnIgPSAiMCIuY2hhckNv
ZGVBdCgwKTsKLSAgZm9yKHZ2ID0gMDsgdnYgPD0gOTsgKyt2dikgQklfUkNbcnIrK10gPSB2djsK
LSAgcnIgPSAiYSIuY2hhckNvZGVBdCgwKTsKLSAgZm9yKHZ2ID0gMTA7IHZ2IDwgMzY7ICsrdnYp
IEJJX1JDW3JyKytdID0gdnY7Ci0gIHJyID0gIkEiLmNoYXJDb2RlQXQoMCk7Ci0gIGZvcih2diA9
IDEwOyB2diA8IDM2OyArK3Z2KSBCSV9SQ1tycisrXSA9IHZ2OwotICBmdW5jdGlvbiBpbnQyY2hh
cihuKSB7IHJldHVybiBCSV9STS5jaGFyQXQobik7IH0KLSAgZnVuY3Rpb24gaW50QXQocyxpKSB7
Ci0gICAgdmFyIGMgPSBCSV9SQ1tzLmNoYXJDb2RlQXQoaSldOwotICAgIHJldHVybiAoYz09bnVs
bCk/LTE6YzsKLSAgfQotICAvLyAocHJvdGVjdGVkKSBjb3B5IHRoaXMgdG8gcgotICBmdW5jdGlv
biBibnBDb3B5VG8ocikgewotICAgIGZvcih2YXIgaSA9IHRoaXMudC0xOyBpID49IDA7IC0taSkg
cltpXSA9IHRoaXNbaV07Ci0gICAgci50ID0gdGhpcy50OwotICAgIHIucyA9IHRoaXMuczsKLSAg
fQotICAvLyAocHJvdGVjdGVkKSBzZXQgZnJvbSBpbnRlZ2VyIHZhbHVlIHgsIC1EViA8PSB4IDwg
RFYKLSAgZnVuY3Rpb24gYm5wRnJvbUludCh4KSB7Ci0gICAgdGhpcy50ID0gMTsKLSAgICB0aGlz
LnMgPSAoeDwwKT8tMTowOwotICAgIGlmKHggPiAwKSB0aGlzWzBdID0geDsKLSAgICBlbHNlIGlm
KHggPCAtMSkgdGhpc1swXSA9IHgrRFY7Ci0gICAgZWxzZSB0aGlzLnQgPSAwOwotICB9Ci0gIC8v
IHJldHVybiBiaWdpbnQgaW5pdGlhbGl6ZWQgdG8gdmFsdWUKLSAgZnVuY3Rpb24gbmJ2KGkpIHsg
dmFyIHIgPSBuYmkoKTsgci5mcm9tSW50KGkpOyByZXR1cm4gcjsgfQotICAvLyAocHJvdGVjdGVk
KSBzZXQgZnJvbSBzdHJpbmcgYW5kIHJhZGl4Ci0gIGZ1bmN0aW9uIGJucEZyb21TdHJpbmcocyxi
KSB7Ci0gICAgdmFyIGs7Ci0gICAgaWYoYiA9PSAxNikgayA9IDQ7Ci0gICAgZWxzZSBpZihiID09
IDgpIGsgPSAzOwotICAgIGVsc2UgaWYoYiA9PSAyNTYpIGsgPSA4OyAvLyBieXRlIGFycmF5Ci0g
ICAgZWxzZSBpZihiID09IDIpIGsgPSAxOwotICAgIGVsc2UgaWYoYiA9PSAzMikgayA9IDU7Ci0g
ICAgZWxzZSBpZihiID09IDQpIGsgPSAyOwotICAgIGVsc2UgeyB0aGlzLmZyb21SYWRpeChzLGIp
OyByZXR1cm47IH0KLSAgICB0aGlzLnQgPSAwOwotICAgIHRoaXMucyA9IDA7Ci0gICAgdmFyIGkg
PSBzLmxlbmd0aCwgbWkgPSBmYWxzZSwgc2ggPSAwOwotICAgIHdoaWxlKC0taSA+PSAwKSB7Ci0g
ICAgICB2YXIgeCA9IChrPT04KT9zW2ldJjB4ZmY6aW50QXQocyxpKTsKLSAgICAgIGlmKHggPCAw
KSB7Ci0gICAgICAgIGlmKHMuY2hhckF0KGkpID09ICItIikgbWkgPSB0cnVlOwotICAgICAgICBj
b250aW51ZTsKLSAgICAgIH0KLSAgICAgIG1pID0gZmFsc2U7Ci0gICAgICBpZihzaCA9PSAwKQot
ICAgICAgICB0aGlzW3RoaXMudCsrXSA9IHg7Ci0gICAgICBlbHNlIGlmKHNoK2sgPiB0aGlzLkRC
KSB7Ci0gICAgICAgIHRoaXNbdGhpcy50LTFdIHw9ICh4JigoMTw8KHRoaXMuREItc2gpKS0xKSk8
PHNoOwotICAgICAgICB0aGlzW3RoaXMudCsrXSA9ICh4Pj4odGhpcy5EQi1zaCkpOwotICAgICAg
fQotICAgICAgZWxzZQotICAgICAgICB0aGlzW3RoaXMudC0xXSB8PSB4PDxzaDsKLSAgICAgIHNo
ICs9IGs7Ci0gICAgICBpZihzaCA+PSB0aGlzLkRCKSBzaCAtPSB0aGlzLkRCOwotICAgIH0KLSAg
ICBpZihrID09IDggJiYgKHNbMF0mMHg4MCkgIT0gMCkgewotICAgICAgdGhpcy5zID0gLTE7Ci0g
ICAgICBpZihzaCA+IDApIHRoaXNbdGhpcy50LTFdIHw9ICgoMTw8KHRoaXMuREItc2gpKS0xKTw8
c2g7Ci0gICAgfQotICAgIHRoaXMuY2xhbXAoKTsKLSAgICBpZihtaSkgQmlnSW50ZWdlci5aRVJP
LnN1YlRvKHRoaXMsdGhpcyk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgY2xhbXAgb2ZmIGV4Y2Vz
cyBoaWdoIHdvcmRzCi0gIGZ1bmN0aW9uIGJucENsYW1wKCkgewotICAgIHZhciBjID0gdGhpcy5z
JnRoaXMuRE07Ci0gICAgd2hpbGUodGhpcy50ID4gMCAmJiB0aGlzW3RoaXMudC0xXSA9PSBjKSAt
LXRoaXMudDsKLSAgfQotICAvLyAocHVibGljKSByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9u
IGluIGdpdmVuIHJhZGl4Ci0gIGZ1bmN0aW9uIGJuVG9TdHJpbmcoYikgewotICAgIGlmKHRoaXMu
cyA8IDApIHJldHVybiAiLSIrdGhpcy5uZWdhdGUoKS50b1N0cmluZyhiKTsKLSAgICB2YXIgazsK
LSAgICBpZihiID09IDE2KSBrID0gNDsKLSAgICBlbHNlIGlmKGIgPT0gOCkgayA9IDM7Ci0gICAg
ZWxzZSBpZihiID09IDIpIGsgPSAxOwotICAgIGVsc2UgaWYoYiA9PSAzMikgayA9IDU7Ci0gICAg
ZWxzZSBpZihiID09IDQpIGsgPSAyOwotICAgIGVsc2UgcmV0dXJuIHRoaXMudG9SYWRpeChiKTsK
LSAgICB2YXIga20gPSAoMTw8ayktMSwgZCwgbSA9IGZhbHNlLCByID0gIiIsIGkgPSB0aGlzLnQ7
Ci0gICAgdmFyIHAgPSB0aGlzLkRCLShpKnRoaXMuREIpJWs7Ci0gICAgaWYoaS0tID4gMCkgewot
ICAgICAgaWYocCA8IHRoaXMuREIgJiYgKGQgPSB0aGlzW2ldPj5wKSA+IDApIHsgbSA9IHRydWU7
IHIgPSBpbnQyY2hhcihkKTsgfQotICAgICAgd2hpbGUoaSA+PSAwKSB7Ci0gICAgICAgIGlmKHAg
PCBrKSB7Ci0gICAgICAgICAgZCA9ICh0aGlzW2ldJigoMTw8cCktMSkpPDwoay1wKTsKLSAgICAg
ICAgICBkIHw9IHRoaXNbLS1pXT4+KHArPXRoaXMuREItayk7Ci0gICAgICAgIH0KLSAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgZCA9ICh0aGlzW2ldPj4ocC09aykpJmttOwotICAgICAgICAgIGlm
KHAgPD0gMCkgeyBwICs9IHRoaXMuREI7IC0taTsgfQotICAgICAgICB9Ci0gICAgICAgIGlmKGQg
PiAwKSBtID0gdHJ1ZTsKLSAgICAgICAgaWYobSkgciArPSBpbnQyY2hhcihkKTsKLSAgICAgIH0K
LSAgICB9Ci0gICAgcmV0dXJuIG0/cjoiMCI7Ci0gIH0KLSAgLy8gKHB1YmxpYykgLXRoaXMKLSAg
ZnVuY3Rpb24gYm5OZWdhdGUoKSB7IHZhciByID0gbmJpKCk7IEJpZ0ludGVnZXIuWkVSTy5zdWJU
byh0aGlzLHIpOyByZXR1cm4gcjsgfQotICAvLyAocHVibGljKSB8dGhpc3wKLSAgZnVuY3Rpb24g
Ym5BYnMoKSB7IHJldHVybiAodGhpcy5zPDApP3RoaXMubmVnYXRlKCk6dGhpczsgfQotICAvLyAo
cHVibGljKSByZXR1cm4gKyBpZiB0aGlzID4gYSwgLSBpZiB0aGlzIDwgYSwgMCBpZiBlcXVhbAot
ICBmdW5jdGlvbiBibkNvbXBhcmVUbyhhKSB7Ci0gICAgdmFyIHIgPSB0aGlzLnMtYS5zOwotICAg
IGlmKHIgIT0gMCkgcmV0dXJuIHI7Ci0gICAgdmFyIGkgPSB0aGlzLnQ7Ci0gICAgciA9IGktYS50
OwotICAgIGlmKHIgIT0gMCkgcmV0dXJuICh0aGlzLnM8MCk/LXI6cjsKLSAgICB3aGlsZSgtLWkg
Pj0gMCkgaWYoKHI9dGhpc1tpXS1hW2ldKSAhPSAwKSByZXR1cm4gcjsKLSAgICByZXR1cm4gMDsK
LSAgfQotICAvLyByZXR1cm5zIGJpdCBsZW5ndGggb2YgdGhlIGludGVnZXIgeAotICBmdW5jdGlv
biBuYml0cyh4KSB7Ci0gICAgdmFyIHIgPSAxLCB0OwotICAgIGlmKCh0PXg+Pj4xNikgIT0gMCkg
eyB4ID0gdDsgciArPSAxNjsgfQotICAgIGlmKCh0PXg+PjgpICE9IDApIHsgeCA9IHQ7IHIgKz0g
ODsgfQotICAgIGlmKCh0PXg+PjQpICE9IDApIHsgeCA9IHQ7IHIgKz0gNDsgfQotICAgIGlmKCh0
PXg+PjIpICE9IDApIHsgeCA9IHQ7IHIgKz0gMjsgfQotICAgIGlmKCh0PXg+PjEpICE9IDApIHsg
eCA9IHQ7IHIgKz0gMTsgfQotICAgIHJldHVybiByOwotICB9Ci0gIC8vIChwdWJsaWMpIHJldHVy
biB0aGUgbnVtYmVyIG9mIGJpdHMgaW4gInRoaXMiCi0gIGZ1bmN0aW9uIGJuQml0TGVuZ3RoKCkg
ewotICAgIGlmKHRoaXMudCA8PSAwKSByZXR1cm4gMDsKLSAgICByZXR1cm4gdGhpcy5EQioodGhp
cy50LTEpK25iaXRzKHRoaXNbdGhpcy50LTFdXih0aGlzLnMmdGhpcy5ETSkpOwotICB9Ci0gIC8v
IChwcm90ZWN0ZWQpIHIgPSB0aGlzIDw8IG4qREIKLSAgZnVuY3Rpb24gYm5wRExTaGlmdFRvKG4s
cikgewotICAgIHZhciBpOwotICAgIGZvcihpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSByW2kr
bl0gPSB0aGlzW2ldOwotICAgIGZvcihpID0gbi0xOyBpID49IDA7IC0taSkgcltpXSA9IDA7Ci0g
ICAgci50ID0gdGhpcy50K247Ci0gICAgci5zID0gdGhpcy5zOwotICB9Ci0gIC8vIChwcm90ZWN0
ZWQpIHIgPSB0aGlzID4+IG4qREIKLSAgZnVuY3Rpb24gYm5wRFJTaGlmdFRvKG4scikgewotICAg
IGZvcih2YXIgaSA9IG47IGkgPCB0aGlzLnQ7ICsraSkgcltpLW5dID0gdGhpc1tpXTsKLSAgICBy
LnQgPSBNYXRoLm1heCh0aGlzLnQtbiwwKTsKLSAgICByLnMgPSB0aGlzLnM7Ci0gIH0KLSAgLy8g
KHByb3RlY3RlZCkgciA9IHRoaXMgPDwgbgotICBmdW5jdGlvbiBibnBMU2hpZnRUbyhuLHIpIHsK
LSAgICB2YXIgYnMgPSBuJXRoaXMuREI7Ci0gICAgdmFyIGNicyA9IHRoaXMuREItYnM7Ci0gICAg
dmFyIGJtID0gKDE8PGNicyktMTsKLSAgICB2YXIgZHMgPSBNYXRoLmZsb29yKG4vdGhpcy5EQiks
IGMgPSAodGhpcy5zPDxicykmdGhpcy5ETSwgaTsKLSAgICBmb3IoaSA9IHRoaXMudC0xOyBpID49
IDA7IC0taSkgewotICAgICAgcltpK2RzKzFdID0gKHRoaXNbaV0+PmNicyl8YzsKLSAgICAgIGMg
PSAodGhpc1tpXSZibSk8PGJzOwotICAgIH0KLSAgICBmb3IoaSA9IGRzLTE7IGkgPj0gMDsgLS1p
KSByW2ldID0gMDsKLSAgICByW2RzXSA9IGM7Ci0gICAgci50ID0gdGhpcy50K2RzKzE7Ci0gICAg
ci5zID0gdGhpcy5zOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSByID0g
dGhpcyA+PiBuCi0gIGZ1bmN0aW9uIGJucFJTaGlmdFRvKG4scikgewotICAgIHIucyA9IHRoaXMu
czsKLSAgICB2YXIgZHMgPSBNYXRoLmZsb29yKG4vdGhpcy5EQik7Ci0gICAgaWYoZHMgPj0gdGhp
cy50KSB7IHIudCA9IDA7IHJldHVybjsgfQotICAgIHZhciBicyA9IG4ldGhpcy5EQjsKLSAgICB2
YXIgY2JzID0gdGhpcy5EQi1iczsKLSAgICB2YXIgYm0gPSAoMTw8YnMpLTE7Ci0gICAgclswXSA9
IHRoaXNbZHNdPj5iczsKLSAgICBmb3IodmFyIGkgPSBkcysxOyBpIDwgdGhpcy50OyArK2kpIHsK
LSAgICAgIHJbaS1kcy0xXSB8PSAodGhpc1tpXSZibSk8PGNiczsKLSAgICAgIHJbaS1kc10gPSB0
aGlzW2ldPj5iczsKLSAgICB9Ci0gICAgaWYoYnMgPiAwKSByW3RoaXMudC1kcy0xXSB8PSAodGhp
cy5zJmJtKTw8Y2JzOwotICAgIHIudCA9IHRoaXMudC1kczsKLSAgICByLmNsYW1wKCk7Ci0gIH0K
LSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMgLSBhCi0gIGZ1bmN0aW9uIGJucFN1YlRvKGEscikg
ewotICAgIHZhciBpID0gMCwgYyA9IDAsIG0gPSBNYXRoLm1pbihhLnQsdGhpcy50KTsKLSAgICB3
aGlsZShpIDwgbSkgewotICAgICAgYyArPSB0aGlzW2ldLWFbaV07Ci0gICAgICByW2krK10gPSBj
JnRoaXMuRE07Ci0gICAgICBjID4+PSB0aGlzLkRCOwotICAgIH0KLSAgICBpZihhLnQgPCB0aGlz
LnQpIHsKLSAgICAgIGMgLT0gYS5zOwotICAgICAgd2hpbGUoaSA8IHRoaXMudCkgewotICAgICAg
ICBjICs9IHRoaXNbaV07Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+
Pj0gdGhpcy5EQjsKLSAgICAgIH0KLSAgICAgIGMgKz0gdGhpcy5zOwotICAgIH0KLSAgICBlbHNl
IHsKLSAgICAgIGMgKz0gdGhpcy5zOwotICAgICAgd2hpbGUoaSA8IGEudCkgewotICAgICAgICBj
IC09IGFbaV07Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0gdGhp
cy5EQjsKLSAgICAgIH0KLSAgICAgIGMgLT0gYS5zOwotICAgIH0KLSAgICByLnMgPSAoYzwwKT8t
MTowOwotICAgIGlmKGMgPCAtMSkgcltpKytdID0gdGhpcy5EVitjOwotICAgIGVsc2UgaWYoYyA+
IDApIHJbaSsrXSA9IGM7Ci0gICAgci50ID0gaTsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgLy8g
KHByb3RlY3RlZCkgciA9IHRoaXMgKiBhLCByICE9IHRoaXMsYSAoSEFDIDE0LjEyKQotICAvLyAi
dGhpcyIgc2hvdWxkIGJlIHRoZSBsYXJnZXIgb25lIGlmIGFwcHJvcHJpYXRlLgotICBmdW5jdGlv
biBibnBNdWx0aXBseVRvKGEscikgewotICAgIHZhciB4ID0gdGhpcy5hYnMoKSwgeSA9IGEuYWJz
KCk7Ci0gICAgdmFyIGkgPSB4LnQ7Ci0gICAgci50ID0gaSt5LnQ7Ci0gICAgd2hpbGUoLS1pID49
IDApIHJbaV0gPSAwOwotICAgIGZvcihpID0gMDsgaSA8IHkudDsgKytpKSByW2kreC50XSA9IHgu
YW0oMCx5W2ldLHIsaSwwLHgudCk7Ci0gICAgci5zID0gMDsKLSAgICByLmNsYW1wKCk7Ci0gICAg
aWYodGhpcy5zICE9IGEucykgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHIscik7Ci0gIH0KLSAgLy8g
KHByb3RlY3RlZCkgciA9IHRoaXNeMiwgciAhPSB0aGlzIChIQUMgMTQuMTYpCi0gIGZ1bmN0aW9u
IGJucFNxdWFyZVRvKHIpIHsKLSAgICB2YXIgeCA9IHRoaXMuYWJzKCk7Ci0gICAgdmFyIGkgPSBy
LnQgPSAyKngudDsKLSAgICB3aGlsZSgtLWkgPj0gMCkgcltpXSA9IDA7Ci0gICAgZm9yKGkgPSAw
OyBpIDwgeC50LTE7ICsraSkgewotICAgICAgdmFyIGMgPSB4LmFtKGkseFtpXSxyLDIqaSwwLDEp
OwotICAgICAgaWYoKHJbaSt4LnRdKz14LmFtKGkrMSwyKnhbaV0sciwyKmkrMSxjLHgudC1pLTEp
KSA+PSB4LkRWKSB7Ci0gICAgICAgIHJbaSt4LnRdIC09IHguRFY7Ci0gICAgICAgIHJbaSt4LnQr
MV0gPSAxOwotICAgICAgfQotICAgIH0KLSAgICBpZihyLnQgPiAwKSByW3IudC0xXSArPSB4LmFt
KGkseFtpXSxyLDIqaSwwLDEpOwotICAgIHIucyA9IDA7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0g
IC8vIChwcm90ZWN0ZWQpIGRpdmlkZSB0aGlzIGJ5IG0sIHF1b3RpZW50IGFuZCByZW1haW5kZXIg
dG8gcSwgciAoSEFDIDE0LjIwKQotICAvLyByICE9IHEsIHRoaXMgIT0gbS4gIHEgb3IgciBtYXkg
YmUgbnVsbC4KLSAgZnVuY3Rpb24gYm5wRGl2UmVtVG8obSxxLHIpIHsKLSAgICB2YXIgcG0gPSBt
LmFicygpOwotICAgIGlmKHBtLnQgPD0gMCkgcmV0dXJuOwotICAgIHZhciBwdCA9IHRoaXMuYWJz
KCk7Ci0gICAgaWYocHQudCA8IHBtLnQpIHsKLSAgICAgIGlmKHEgIT0gbnVsbCkgcS5mcm9tSW50
KDApOwotICAgICAgaWYociAhPSBudWxsKSB0aGlzLmNvcHlUbyhyKTsKLSAgICAgIHJldHVybjsK
LSAgICB9Ci0gICAgaWYociA9PSBudWxsKSByID0gbmJpKCk7Ci0gICAgdmFyIHkgPSBuYmkoKSwg
dHMgPSB0aGlzLnMsIG1zID0gbS5zOwotICAgIHZhciBuc2ggPSB0aGlzLkRCLW5iaXRzKHBtW3Bt
LnQtMV0pOwkvLyBub3JtYWxpemUgbW9kdWx1cwotICAgIGlmKG5zaCA+IDApIHsgcG0ubFNoaWZ0
VG8obnNoLHkpOyBwdC5sU2hpZnRUbyhuc2gscik7IH0KLSAgICBlbHNlIHsgcG0uY29weVRvKHkp
OyBwdC5jb3B5VG8ocik7IH0KLSAgICB2YXIgeXMgPSB5LnQ7Ci0gICAgdmFyIHkwID0geVt5cy0x
XTsKLSAgICBpZih5MCA9PSAwKSByZXR1cm47Ci0gICAgdmFyIHl0ID0geTAqKDE8PHRoaXMuRjEp
KygoeXM+MSk/eVt5cy0yXT4+dGhpcy5GMjowKTsKLSAgICB2YXIgZDEgPSB0aGlzLkZWL3l0LCBk
MiA9ICgxPDx0aGlzLkYxKS95dCwgZSA9IDE8PHRoaXMuRjI7Ci0gICAgdmFyIGkgPSByLnQsIGog
PSBpLXlzLCB0ID0gKHE9PW51bGwpP25iaSgpOnE7Ci0gICAgeS5kbFNoaWZ0VG8oaix0KTsKLSAg
ICBpZihyLmNvbXBhcmVUbyh0KSA+PSAwKSB7Ci0gICAgICByW3IudCsrXSA9IDE7Ci0gICAgICBy
LnN1YlRvKHQscik7Ci0gICAgfQotICAgIEJpZ0ludGVnZXIuT05FLmRsU2hpZnRUbyh5cyx0KTsK
LSAgICB0LnN1YlRvKHkseSk7CS8vICJuZWdhdGl2ZSIgeSBzbyB3ZSBjYW4gcmVwbGFjZSBzdWIg
d2l0aCBhbSBsYXRlcgotICAgIHdoaWxlKHkudCA8IHlzKSB5W3kudCsrXSA9IDA7Ci0gICAgd2hp
bGUoLS1qID49IDApIHsKLSAgICAgIC8vIEVzdGltYXRlIHF1b3RpZW50IGRpZ2l0Ci0gICAgICB2
YXIgcWQgPSAoclstLWldPT15MCk/dGhpcy5ETTpNYXRoLmZsb29yKHJbaV0qZDErKHJbaS0xXStl
KSpkMik7Ci0gICAgICBpZigocltpXSs9eS5hbSgwLHFkLHIsaiwwLHlzKSkgPCBxZCkgewkvLyBU
cnkgaXQgb3V0Ci0gICAgICAgIHkuZGxTaGlmdFRvKGosdCk7Ci0gICAgICAgIHIuc3ViVG8odCxy
KTsKLSAgICAgICAgd2hpbGUocltpXSA8IC0tcWQpIHIuc3ViVG8odCxyKTsKLSAgICAgIH0KLSAg
ICB9Ci0gICAgaWYocSAhPSBudWxsKSB7Ci0gICAgICByLmRyU2hpZnRUbyh5cyxxKTsKLSAgICAg
IGlmKHRzICE9IG1zKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8ocSxxKTsKLSAgICB9Ci0gICAgci50
ID0geXM7Ci0gICAgci5jbGFtcCgpOwotICAgIGlmKG5zaCA+IDApIHIuclNoaWZ0VG8obnNoLHIp
OwkvLyBEZW5vcm1hbGl6ZSByZW1haW5kZXIKLSAgICBpZih0cyA8IDApIEJpZ0ludGVnZXIuWkVS
Ty5zdWJUbyhyLHIpOwotICB9Ci0gIC8vIChwdWJsaWMpIHRoaXMgbW9kIGEKLSAgZnVuY3Rpb24g
Ym5Nb2QoYSkgewotICAgIHZhciByID0gbmJpKCk7Ci0gICAgdGhpcy5hYnMoKS5kaXZSZW1Ubyhh
LG51bGwscik7Ci0gICAgaWYodGhpcy5zIDwgMCAmJiByLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpF
Uk8pID4gMCkgYS5zdWJUbyhyLHIpOwotICAgIHJldHVybiByOwotICB9Ci0gIC8vIE1vZHVsYXIg
cmVkdWN0aW9uIHVzaW5nICJjbGFzc2ljIiBhbGdvcml0aG0KLSAgZnVuY3Rpb24gQ2xhc3NpYyht
KSB7IHRoaXMubSA9IG07IH0KLSAgZnVuY3Rpb24gY0NvbnZlcnQoeCkgewotICAgIGlmKHgucyA8
IDAgfHwgeC5jb21wYXJlVG8odGhpcy5tKSA+PSAwKSByZXR1cm4geC5tb2QodGhpcy5tKTsKLSAg
ICBlbHNlIHJldHVybiB4OwotICB9Ci0gIGZ1bmN0aW9uIGNSZXZlcnQoeCkgeyByZXR1cm4geDsg
fQotICBmdW5jdGlvbiBjUmVkdWNlKHgpIHsgeC5kaXZSZW1Ubyh0aGlzLm0sbnVsbCx4KTsgfQot
ICBmdW5jdGlvbiBjTXVsVG8oeCx5LHIpIHsgeC5tdWx0aXBseVRvKHkscik7IHRoaXMucmVkdWNl
KHIpOyB9Ci0gIGZ1bmN0aW9uIGNTcXJUbyh4LHIpIHsgeC5zcXVhcmVUbyhyKTsgdGhpcy5yZWR1
Y2Uocik7IH0KLSAgQ2xhc3NpYy5wcm90b3R5cGUuY29udmVydCA9IGNDb252ZXJ0OwotICBDbGFz
c2ljLnByb3RvdHlwZS5yZXZlcnQgPSBjUmV2ZXJ0OwotICBDbGFzc2ljLnByb3RvdHlwZS5yZWR1
Y2UgPSBjUmVkdWNlOwotICBDbGFzc2ljLnByb3RvdHlwZS5tdWxUbyA9IGNNdWxUbzsKLSAgQ2xh
c3NpYy5wcm90b3R5cGUuc3FyVG8gPSBjU3FyVG87Ci0gIC8vIChwcm90ZWN0ZWQpIHJldHVybiAi
LTEvdGhpcyAlIDJeREIiOyB1c2VmdWwgZm9yIE1vbnQuIHJlZHVjdGlvbgotICAvLyBqdXN0aWZp
Y2F0aW9uOgotICAvLyAgICAgICAgIHh5ID09IDEgKG1vZCBtKQotICAvLyAgICAgICAgIHh5ID0g
IDEra20KLSAgLy8gICB4eSgyLXh5KSA9ICgxK2ttKSgxLWttKQotICAvLyB4W3koMi14eSldID0g
MS1rXjJtXjIKLSAgLy8geFt5KDIteHkpXSA9PSAxIChtb2QgbV4yKQotICAvLyBpZiB5IGlzIDEv
eCBtb2QgbSwgdGhlbiB5KDIteHkpIGlzIDEveCBtb2QgbV4yCi0gIC8vIHNob3VsZCByZWR1Y2Ug
eCBhbmQgeSgyLXh5KSBieSBtXjIgYXQgZWFjaCBzdGVwIHRvIGtlZXAgc2l6ZSBib3VuZGVkLgot
ICAvLyBKUyBtdWx0aXBseSAib3ZlcmZsb3dzIiBkaWZmZXJlbnRseSBmcm9tIEMvQysrLCBzbyBj
YXJlIGlzIG5lZWRlZCBoZXJlLgotICBmdW5jdGlvbiBibnBJbnZEaWdpdCgpIHsKLSAgICBpZih0
aGlzLnQgPCAxKSByZXR1cm4gMDsKLSAgICB2YXIgeCA9IHRoaXNbMF07Ci0gICAgaWYoKHgmMSkg
PT0gMCkgcmV0dXJuIDA7Ci0gICAgdmFyIHkgPSB4JjM7CQkvLyB5ID09IDEveCBtb2QgMl4yCi0g
ICAgeSA9ICh5KigyLSh4JjB4ZikqeSkpJjB4ZjsJLy8geSA9PSAxL3ggbW9kIDJeNAotICAgIHkg
PSAoeSooMi0oeCYweGZmKSp5KSkmMHhmZjsJLy8geSA9PSAxL3ggbW9kIDJeOAotICAgIHkgPSAo
eSooMi0oKCh4JjB4ZmZmZikqeSkmMHhmZmZmKSkpJjB4ZmZmZjsJLy8geSA9PSAxL3ggbW9kIDJe
MTYKLSAgICAvLyBsYXN0IHN0ZXAgLSBjYWxjdWxhdGUgaW52ZXJzZSBtb2QgRFYgZGlyZWN0bHk7
Ci0gICAgLy8gYXNzdW1lcyAxNiA8IERCIDw9IDMyIGFuZCBhc3N1bWVzIGFiaWxpdHkgdG8gaGFu
ZGxlIDQ4LWJpdCBpbnRzCi0gICAgeSA9ICh5KigyLXgqeSV0aGlzLkRWKSkldGhpcy5EVjsJCS8v
IHkgPT0gMS94IG1vZCAyXmRiaXRzCi0gICAgLy8gd2UgcmVhbGx5IHdhbnQgdGhlIG5lZ2F0aXZl
IGludmVyc2UsIGFuZCAtRFYgPCB5IDwgRFYKLSAgICByZXR1cm4gKHk+MCk/dGhpcy5EVi15Oi15
OwotICB9Ci0gIC8vIE1vbnRnb21lcnkgcmVkdWN0aW9uCi0gIGZ1bmN0aW9uIE1vbnRnb21lcnko
bSkgewotICAgIHRoaXMubSA9IG07Ci0gICAgdGhpcy5tcCA9IG0uaW52RGlnaXQoKTsKLSAgICB0
aGlzLm1wbCA9IHRoaXMubXAmMHg3ZmZmOwotICAgIHRoaXMubXBoID0gdGhpcy5tcD4+MTU7Ci0g
ICAgdGhpcy51bSA9ICgxPDwobS5EQi0xNSkpLTE7Ci0gICAgdGhpcy5tdDIgPSAyKm0udDsKLSAg
fQotICAvLyB4UiBtb2QgbQotICBmdW5jdGlvbiBtb250Q29udmVydCh4KSB7Ci0gICAgdmFyIHIg
PSBuYmkoKTsKLSAgICB4LmFicygpLmRsU2hpZnRUbyh0aGlzLm0udCxyKTsKLSAgICByLmRpdlJl
bVRvKHRoaXMubSxudWxsLHIpOwotICAgIGlmKHgucyA8IDAgJiYgci5jb21wYXJlVG8oQmlnSW50
ZWdlci5aRVJPKSA+IDApIHRoaXMubS5zdWJUbyhyLHIpOwotICAgIHJldHVybiByOwotICB9Ci0g
IC8vIHgvUiBtb2QgbQotICBmdW5jdGlvbiBtb250UmV2ZXJ0KHgpIHsKLSAgICB2YXIgciA9IG5i
aSgpOwotICAgIHguY29weVRvKHIpOwotICAgIHRoaXMucmVkdWNlKHIpOwotICAgIHJldHVybiBy
OwotICB9Ci0gIC8vIHggPSB4L1IgbW9kIG0gKEhBQyAxNC4zMikKLSAgZnVuY3Rpb24gbW9udFJl
ZHVjZSh4KSB7Ci0gICAgd2hpbGUoeC50IDw9IHRoaXMubXQyKQkvLyBwYWQgeCBzbyBhbSBoYXMg
ZW5vdWdoIHJvb20gbGF0ZXIKLSAgICAgIHhbeC50KytdID0gMDsKLSAgICBmb3IodmFyIGkgPSAw
OyBpIDwgdGhpcy5tLnQ7ICsraSkgewotICAgICAgLy8gZmFzdGVyIHdheSBvZiBjYWxjdWxhdGlu
ZyB1MCA9IHhbaV0qbXAgbW9kIERWCi0gICAgICB2YXIgaiA9IHhbaV0mMHg3ZmZmOwotICAgICAg
dmFyIHUwID0gKGoqdGhpcy5tcGwrKCgoaip0aGlzLm1waCsoeFtpXT4+MTUpKnRoaXMubXBsKSZ0
aGlzLnVtKTw8MTUpKSZ4LkRNOwotICAgICAgLy8gdXNlIGFtIHRvIGNvbWJpbmUgdGhlIG11bHRp
cGx5LXNoaWZ0LWFkZCBpbnRvIG9uZSBjYWxsCi0gICAgICBqID0gaSt0aGlzLm0udDsKLSAgICAg
IHhbal0gKz0gdGhpcy5tLmFtKDAsdTAseCxpLDAsdGhpcy5tLnQpOwotICAgICAgLy8gcHJvcGFn
YXRlIGNhcnJ5Ci0gICAgICB3aGlsZSh4W2pdID49IHguRFYpIHsgeFtqXSAtPSB4LkRWOyB4Wysr
al0rKzsgfQotICAgIH0KLSAgICB4LmNsYW1wKCk7Ci0gICAgeC5kclNoaWZ0VG8odGhpcy5tLnQs
eCk7Ci0gICAgaWYoeC5jb21wYXJlVG8odGhpcy5tKSA+PSAwKSB4LnN1YlRvKHRoaXMubSx4KTsK
LSAgfQotICAvLyByID0gInheMi9SIG1vZCBtIjsgeCAhPSByCi0gIGZ1bmN0aW9uIG1vbnRTcXJU
byh4LHIpIHsgeC5zcXVhcmVUbyhyKTsgdGhpcy5yZWR1Y2Uocik7IH0KLSAgLy8gciA9ICJ4eS9S
IG1vZCBtIjsgeCx5ICE9IHIKLSAgZnVuY3Rpb24gbW9udE11bFRvKHgseSxyKSB7IHgubXVsdGlw
bHlUbyh5LHIpOyB0aGlzLnJlZHVjZShyKTsgfQotICBNb250Z29tZXJ5LnByb3RvdHlwZS5jb252
ZXJ0ID0gbW9udENvbnZlcnQ7Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLnJldmVydCA9IG1vbnRS
ZXZlcnQ7Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLnJlZHVjZSA9IG1vbnRSZWR1Y2U7Ci0gIE1v
bnRnb21lcnkucHJvdG90eXBlLm11bFRvID0gbW9udE11bFRvOwotICBNb250Z29tZXJ5LnByb3Rv
dHlwZS5zcXJUbyA9IG1vbnRTcXJUbzsKLSAgLy8gKHByb3RlY3RlZCkgdHJ1ZSBpZmYgdGhpcyBp
cyBldmVuCi0gIGZ1bmN0aW9uIGJucElzRXZlbigpIHsgcmV0dXJuICgodGhpcy50PjApPyh0aGlz
WzBdJjEpOnRoaXMucykgPT0gMDsgfQotICAvLyAocHJvdGVjdGVkKSB0aGlzXmUsIGUgPCAyXjMy
LCBkb2luZyBzcXIgYW5kIG11bCB3aXRoICJyIiAoSEFDIDE0Ljc5KQotICBmdW5jdGlvbiBibnBF
eHAoZSx6KSB7Ci0gICAgaWYoZSA+IDB4ZmZmZmZmZmYgfHwgZSA8IDEpIHJldHVybiBCaWdJbnRl
Z2VyLk9ORTsKLSAgICB2YXIgciA9IG5iaSgpLCByMiA9IG5iaSgpLCBnID0gei5jb252ZXJ0KHRo
aXMpLCBpID0gbmJpdHMoZSktMTsKLSAgICBnLmNvcHlUbyhyKTsKLSAgICB3aGlsZSgtLWkgPj0g
MCkgewotICAgICAgei5zcXJUbyhyLHIyKTsKLSAgICAgIGlmKChlJigxPDxpKSkgPiAwKSB6Lm11
bFRvKHIyLGcscik7Ci0gICAgICBlbHNlIHsgdmFyIHQgPSByOyByID0gcjI7IHIyID0gdDsgfQot
ICAgIH0KLSAgICByZXR1cm4gei5yZXZlcnQocik7Ci0gIH0KLSAgLy8gKHB1YmxpYykgdGhpc15l
ICUgbSwgMCA8PSBlIDwgMl4zMgotICBmdW5jdGlvbiBibk1vZFBvd0ludChlLG0pIHsKLSAgICB2
YXIgejsKLSAgICBpZihlIDwgMjU2IHx8IG0uaXNFdmVuKCkpIHogPSBuZXcgQ2xhc3NpYyhtKTsg
ZWxzZSB6ID0gbmV3IE1vbnRnb21lcnkobSk7Ci0gICAgcmV0dXJuIHRoaXMuZXhwKGUseik7Ci0g
IH0KLSAgLy8gcHJvdGVjdGVkCi0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmNvcHlUbyA9IGJucENv
cHlUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZnJvbUludCA9IGJucEZyb21JbnQ7Ci0gIEJp
Z0ludGVnZXIucHJvdG90eXBlLmZyb21TdHJpbmcgPSBibnBGcm9tU3RyaW5nOwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5jbGFtcCA9IGJucENsYW1wOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5k
bFNoaWZ0VG8gPSBibnBETFNoaWZ0VG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRyU2hpZnRU
byA9IGJucERSU2hpZnRUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUubFNoaWZ0VG8gPSBibnBM
U2hpZnRUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuclNoaWZ0VG8gPSBibnBSU2hpZnRUbzsK
LSAgQmlnSW50ZWdlci5wcm90b3R5cGUuc3ViVG8gPSBibnBTdWJUbzsKLSAgQmlnSW50ZWdlci5w
cm90b3R5cGUubXVsdGlwbHlUbyA9IGJucE11bHRpcGx5VG87Ci0gIEJpZ0ludGVnZXIucHJvdG90
eXBlLnNxdWFyZVRvID0gYm5wU3F1YXJlVG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRpdlJl
bVRvID0gYm5wRGl2UmVtVG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmludkRpZ2l0ID0gYm5w
SW52RGlnaXQ7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmlzRXZlbiA9IGJucElzRXZlbjsKLSAg
QmlnSW50ZWdlci5wcm90b3R5cGUuZXhwID0gYm5wRXhwOwotICAvLyBwdWJsaWMKLSAgQmlnSW50
ZWdlci5wcm90b3R5cGUudG9TdHJpbmcgPSBiblRvU3RyaW5nOwotICBCaWdJbnRlZ2VyLnByb3Rv
dHlwZS5uZWdhdGUgPSBibk5lZ2F0ZTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuYWJzID0gYm5B
YnM7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmNvbXBhcmVUbyA9IGJuQ29tcGFyZVRvOwotICBC
aWdJbnRlZ2VyLnByb3RvdHlwZS5iaXRMZW5ndGggPSBibkJpdExlbmd0aDsKLSAgQmlnSW50ZWdl
ci5wcm90b3R5cGUubW9kID0gYm5Nb2Q7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLm1vZFBvd0lu
dCA9IGJuTW9kUG93SW50OwotICAvLyAiY29uc3RhbnRzIgotICBCaWdJbnRlZ2VyLlpFUk8gPSBu
YnYoMCk7Ci0gIEJpZ0ludGVnZXIuT05FID0gbmJ2KDEpOwotICAvLyBqc2JuMiBzdHVmZgotICAv
LyAocHJvdGVjdGVkKSBjb252ZXJ0IGZyb20gcmFkaXggc3RyaW5nCi0gIGZ1bmN0aW9uIGJucEZy
b21SYWRpeChzLGIpIHsKLSAgICB0aGlzLmZyb21JbnQoMCk7Ci0gICAgaWYoYiA9PSBudWxsKSBi
ID0gMTA7Ci0gICAgdmFyIGNzID0gdGhpcy5jaHVua1NpemUoYik7Ci0gICAgdmFyIGQgPSBNYXRo
LnBvdyhiLGNzKSwgbWkgPSBmYWxzZSwgaiA9IDAsIHcgPSAwOwotICAgIGZvcih2YXIgaSA9IDA7
IGkgPCBzLmxlbmd0aDsgKytpKSB7Ci0gICAgICB2YXIgeCA9IGludEF0KHMsaSk7Ci0gICAgICBp
Zih4IDwgMCkgewotICAgICAgICBpZihzLmNoYXJBdChpKSA9PSAiLSIgJiYgdGhpcy5zaWdudW0o
KSA9PSAwKSBtaSA9IHRydWU7Ci0gICAgICAgIGNvbnRpbnVlOwotICAgICAgfQotICAgICAgdyA9
IGIqdyt4OwotICAgICAgaWYoKytqID49IGNzKSB7Ci0gICAgICAgIHRoaXMuZE11bHRpcGx5KGQp
OwotICAgICAgICB0aGlzLmRBZGRPZmZzZXQodywwKTsKLSAgICAgICAgaiA9IDA7Ci0gICAgICAg
IHcgPSAwOwotICAgICAgfQotICAgIH0KLSAgICBpZihqID4gMCkgewotICAgICAgdGhpcy5kTXVs
dGlwbHkoTWF0aC5wb3coYixqKSk7Ci0gICAgICB0aGlzLmRBZGRPZmZzZXQodywwKTsKLSAgICB9
Ci0gICAgaWYobWkpIEJpZ0ludGVnZXIuWkVSTy5zdWJUbyh0aGlzLHRoaXMpOwotICB9Ci0gIC8v
IChwcm90ZWN0ZWQpIHJldHVybiB4IHMudC4gcl54IDwgRFYKLSAgZnVuY3Rpb24gYm5wQ2h1bmtT
aXplKHIpIHsgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5MTjIqdGhpcy5EQi9NYXRoLmxvZyhyKSk7
IH0KLSAgLy8gKHB1YmxpYykgMCBpZiB0aGlzID09IDAsIDEgaWYgdGhpcyA+IDAKLSAgZnVuY3Rp
b24gYm5TaWdOdW0oKSB7Ci0gICAgaWYodGhpcy5zIDwgMCkgcmV0dXJuIC0xOwotICAgIGVsc2Ug
aWYodGhpcy50IDw9IDAgfHwgKHRoaXMudCA9PSAxICYmIHRoaXNbMF0gPD0gMCkpIHJldHVybiAw
OwotICAgIGVsc2UgcmV0dXJuIDE7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgdGhpcyAqPSBuLCB0
aGlzID49IDAsIDEgPCBuIDwgRFYKLSAgZnVuY3Rpb24gYm5wRE11bHRpcGx5KG4pIHsKLSAgICB0
aGlzW3RoaXMudF0gPSB0aGlzLmFtKDAsbi0xLHRoaXMsMCwwLHRoaXMudCk7Ci0gICAgKyt0aGlz
LnQ7Ci0gICAgdGhpcy5jbGFtcCgpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHRoaXMgKz0gbiA8
PCB3IHdvcmRzLCB0aGlzID49IDAKLSAgZnVuY3Rpb24gYm5wREFkZE9mZnNldChuLHcpIHsKLSAg
ICBpZihuID09IDApIHJldHVybjsKLSAgICB3aGlsZSh0aGlzLnQgPD0gdykgdGhpc1t0aGlzLnQr
K10gPSAwOwotICAgIHRoaXNbd10gKz0gbjsKLSAgICB3aGlsZSh0aGlzW3ddID49IHRoaXMuRFYp
IHsKLSAgICAgIHRoaXNbd10gLT0gdGhpcy5EVjsKLSAgICAgIGlmKCsrdyA+PSB0aGlzLnQpIHRo
aXNbdGhpcy50KytdID0gMDsKLSAgICAgICsrdGhpc1t3XTsKLSAgICB9Ci0gIH0KLSAgLy8gKHBy
b3RlY3RlZCkgY29udmVydCB0byByYWRpeCBzdHJpbmcKLSAgZnVuY3Rpb24gYm5wVG9SYWRpeChi
KSB7Ci0gICAgaWYoYiA9PSBudWxsKSBiID0gMTA7Ci0gICAgaWYodGhpcy5zaWdudW0oKSA9PSAw
IHx8IGIgPCAyIHx8IGIgPiAzNikgcmV0dXJuICIwIjsKLSAgICB2YXIgY3MgPSB0aGlzLmNodW5r
U2l6ZShiKTsKLSAgICB2YXIgYSA9IE1hdGgucG93KGIsY3MpOwotICAgIHZhciBkID0gbmJ2KGEp
LCB5ID0gbmJpKCksIHogPSBuYmkoKSwgciA9ICIiOwotICAgIHRoaXMuZGl2UmVtVG8oZCx5LHop
OwotICAgIHdoaWxlKHkuc2lnbnVtKCkgPiAwKSB7Ci0gICAgICByID0gKGErei5pbnRWYWx1ZSgp
KS50b1N0cmluZyhiKS5zdWJzdHIoMSkgKyByOwotICAgICAgeS5kaXZSZW1UbyhkLHkseik7Ci0g
ICAgfQotICAgIHJldHVybiB6LmludFZhbHVlKCkudG9TdHJpbmcoYikgKyByOwotICB9Ci0gIC8v
IChwdWJsaWMpIHJldHVybiB2YWx1ZSBhcyBpbnRlZ2VyCi0gIGZ1bmN0aW9uIGJuSW50VmFsdWUo
KSB7Ci0gICAgaWYodGhpcy5zIDwgMCkgewotICAgICAgaWYodGhpcy50ID09IDEpIHJldHVybiB0
aGlzWzBdLXRoaXMuRFY7Ci0gICAgICBlbHNlIGlmKHRoaXMudCA9PSAwKSByZXR1cm4gLTE7Ci0g
ICAgfQotICAgIGVsc2UgaWYodGhpcy50ID09IDEpIHJldHVybiB0aGlzWzBdOwotICAgIGVsc2Ug
aWYodGhpcy50ID09IDApIHJldHVybiAwOwotICAgIC8vIGFzc3VtZXMgMTYgPCBEQiA8IDMyCi0g
ICAgcmV0dXJuICgodGhpc1sxXSYoKDE8PCgzMi10aGlzLkRCKSktMSkpPDx0aGlzLkRCKXx0aGlz
WzBdOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlzICsgYQotICBmdW5jdGlvbiBibnBB
ZGRUbyhhLHIpIHsKLSAgICB2YXIgaSA9IDAsIGMgPSAwLCBtID0gTWF0aC5taW4oYS50LHRoaXMu
dCk7Ci0gICAgd2hpbGUoaSA8IG0pIHsKLSAgICAgIGMgKz0gdGhpc1tpXSthW2ldOwotICAgICAg
cltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgYyA+Pj0gdGhpcy5EQjsKLSAgICB9Ci0gICAgaWYo
YS50IDwgdGhpcy50KSB7Ci0gICAgICBjICs9IGEuczsKLSAgICAgIHdoaWxlKGkgPCB0aGlzLnQp
IHsKLSAgICAgICAgYyArPSB0aGlzW2ldOwotICAgICAgICByW2krK10gPSBjJnRoaXMuRE07Ci0g
ICAgICAgIGMgPj49IHRoaXMuREI7Ci0gICAgICB9Ci0gICAgICBjICs9IHRoaXMuczsKLSAgICB9
Ci0gICAgZWxzZSB7Ci0gICAgICBjICs9IHRoaXMuczsKLSAgICAgIHdoaWxlKGkgPCBhLnQpIHsK
LSAgICAgICAgYyArPSBhW2ldOwotICAgICAgICByW2krK10gPSBjJnRoaXMuRE07Ci0gICAgICAg
IGMgPj49IHRoaXMuREI7Ci0gICAgICB9Ci0gICAgICBjICs9IGEuczsKLSAgICB9Ci0gICAgci5z
ID0gKGM8MCk/LTE6MDsKLSAgICBpZihjID4gMCkgcltpKytdID0gYzsKLSAgICBlbHNlIGlmKGMg
PCAtMSkgcltpKytdID0gdGhpcy5EVitjOwotICAgIHIudCA9IGk7Ci0gICAgci5jbGFtcCgpOwot
ICB9Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmZyb21SYWRpeCA9IGJucEZyb21SYWRpeDsKLSAg
QmlnSW50ZWdlci5wcm90b3R5cGUuY2h1bmtTaXplID0gYm5wQ2h1bmtTaXplOwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5zaWdudW0gPSBiblNpZ051bTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUu
ZE11bHRpcGx5ID0gYm5wRE11bHRpcGx5OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kQWRkT2Zm
c2V0ID0gYm5wREFkZE9mZnNldDsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUudG9SYWRpeCA9IGJu
cFRvUmFkaXg7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmludFZhbHVlID0gYm5JbnRWYWx1ZTsK
LSAgQmlnSW50ZWdlci5wcm90b3R5cGUuYWRkVG8gPSBibnBBZGRUbzsKLSAgLy89PT09PT09IGVu
ZCBqc2JuID09PT09PT0KLSAgLy8gRW1zY3JpcHRlbiB3cmFwcGVyCi0gIHZhciBXcmFwcGVyID0g
ewotICAgIGFiczogZnVuY3Rpb24obCwgaCkgewotICAgICAgdmFyIHggPSBuZXcgZ29vZy5tYXRo
LkxvbmcobCwgaCk7Ci0gICAgICB2YXIgcmV0OwotICAgICAgaWYgKHguaXNOZWdhdGl2ZSgpKSB7
Ci0gICAgICAgIHJldCA9IHgubmVnYXRlKCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXQg
PSB4OwotICAgICAgfQotICAgICAgSEVBUDMyW3RlbXBEb3VibGVQdHI+PjJdID0gcmV0Lmxvd187
Ci0gICAgICBIRUFQMzJbdGVtcERvdWJsZVB0cis0Pj4yXSA9IHJldC5oaWdoXzsKLSAgICB9LAot
ICAgIGVuc3VyZVRlbXBzOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmIChXcmFwcGVyLmVuc3VyZWRU
ZW1wcykgcmV0dXJuOwotICAgICAgV3JhcHBlci5lbnN1cmVkVGVtcHMgPSB0cnVlOwotICAgICAg
V3JhcHBlci50d28zMiA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBXcmFwcGVyLnR3bzMyLmZy
b21TdHJpbmcoJzQyOTQ5NjcyOTYnLCAxMCk7Ci0gICAgICBXcmFwcGVyLnR3bzY0ID0gbmV3IEJp
Z0ludGVnZXIoKTsKLSAgICAgIFdyYXBwZXIudHdvNjQuZnJvbVN0cmluZygnMTg0NDY3NDQwNzM3
MDk1NTE2MTYnLCAxMCk7Ci0gICAgICBXcmFwcGVyLnRlbXAxID0gbmV3IEJpZ0ludGVnZXIoKTsK
LSAgICAgIFdyYXBwZXIudGVtcDIgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgIH0sCi0gICAgbGgy
YmlnbnVtOiBmdW5jdGlvbihsLCBoKSB7Ci0gICAgICB2YXIgYSA9IG5ldyBCaWdJbnRlZ2VyKCk7
Ci0gICAgICBhLmZyb21TdHJpbmcoaC50b1N0cmluZygpLCAxMCk7Ci0gICAgICB2YXIgYiA9IG5l
dyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBhLm11bHRpcGx5VG8oV3JhcHBlci50d28zMiwgYik7Ci0g
ICAgICB2YXIgYyA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBjLmZyb21TdHJpbmcobC50b1N0
cmluZygpLCAxMCk7Ci0gICAgICB2YXIgZCA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBjLmFk
ZFRvKGIsIGQpOwotICAgICAgcmV0dXJuIGQ7Ci0gICAgfSwKLSAgICBzdHJpbmdpZnk6IGZ1bmN0
aW9uKGwsIGgsIHVuc2lnbmVkKSB7Ci0gICAgICB2YXIgcmV0ID0gbmV3IGdvb2cubWF0aC5Mb25n
KGwsIGgpLnRvU3RyaW5nKCk7Ci0gICAgICBpZiAodW5zaWduZWQgJiYgcmV0WzBdID09ICctJykg
ewotICAgICAgICAvLyB1bnNpZ24gc2xvd2x5IHVzaW5nIGpzYm4gYmlnbnVtcwotICAgICAgICBX
cmFwcGVyLmVuc3VyZVRlbXBzKCk7Ci0gICAgICAgIHZhciBiaWdudW0gPSBuZXcgQmlnSW50ZWdl
cigpOwotICAgICAgICBiaWdudW0uZnJvbVN0cmluZyhyZXQsIDEwKTsKLSAgICAgICAgcmV0ID0g
bmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgICAgV3JhcHBlci50d282NC5hZGRUbyhiaWdudW0sIHJl
dCk7Ci0gICAgICAgIHJldCA9IHJldC50b1N0cmluZygxMCk7Ci0gICAgICB9Ci0gICAgICByZXR1
cm4gcmV0OwotICAgIH0sCi0gICAgZnJvbVN0cmluZzogZnVuY3Rpb24oc3RyLCBiYXNlLCBtaW4s
IG1heCwgdW5zaWduZWQpIHsKLSAgICAgIFdyYXBwZXIuZW5zdXJlVGVtcHMoKTsKLSAgICAgIHZh
ciBiaWdudW0gPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgYmlnbnVtLmZyb21TdHJpbmcoc3Ry
LCBiYXNlKTsKLSAgICAgIHZhciBiaWdtaW4gPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgYmln
bWluLmZyb21TdHJpbmcobWluLCAxMCk7Ci0gICAgICB2YXIgYmlnbWF4ID0gbmV3IEJpZ0ludGVn
ZXIoKTsKLSAgICAgIGJpZ21heC5mcm9tU3RyaW5nKG1heCwgMTApOwotICAgICAgaWYgKHVuc2ln
bmVkICYmIGJpZ251bS5jb21wYXJlVG8oQmlnSW50ZWdlci5aRVJPKSA8IDApIHsKLSAgICAgICAg
dmFyIHRlbXAgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgICBiaWdudW0uYWRkVG8oV3JhcHBl
ci50d282NCwgdGVtcCk7Ci0gICAgICAgIGJpZ251bSA9IHRlbXA7Ci0gICAgICB9Ci0gICAgICB2
YXIgZXJyb3IgPSBmYWxzZTsKLSAgICAgIGlmIChiaWdudW0uY29tcGFyZVRvKGJpZ21pbikgPCAw
KSB7Ci0gICAgICAgIGJpZ251bSA9IGJpZ21pbjsKLSAgICAgICAgZXJyb3IgPSB0cnVlOwotICAg
ICAgfSBlbHNlIGlmIChiaWdudW0uY29tcGFyZVRvKGJpZ21heCkgPiAwKSB7Ci0gICAgICAgIGJp
Z251bSA9IGJpZ21heDsKLSAgICAgICAgZXJyb3IgPSB0cnVlOwotICAgICAgfQotICAgICAgdmFy
IHJldCA9IGdvb2cubWF0aC5Mb25nLmZyb21TdHJpbmcoYmlnbnVtLnRvU3RyaW5nKCkpOyAvLyBt
aW4tbWF4IGNoZWNrcyBzaG91bGQgaGF2ZSBjbGFtcGVkIHRoaXMgdG8gYSByYW5nZSBnb29nLm1h
dGguTG9uZyBjYW4gaGFuZGxlIHdlbGwKLSAgICAgIEhFQVAzMlt0ZW1wRG91YmxlUHRyPj4yXSA9
IHJldC5sb3dfOwotICAgICAgSEVBUDMyW3RlbXBEb3VibGVQdHIrND4+Ml0gPSByZXQuaGlnaF87
Ci0gICAgICBpZiAoZXJyb3IpIHRocm93ICdyYW5nZSBlcnJvcic7Ci0gICAgfQotICB9OwotICBy
ZXR1cm4gV3JhcHBlcjsKLX0pKCk7Ci0vLz09PT09PT0gZW5kIGNsb3N1cmUgaTY0IGNvZGUgPT09
PT09PQotLy8gPT09IEF1dG8tZ2VuZXJhdGVkIHBvc3RhbWJsZSBzZXR1cCBlbnRyeSBzdHVmZiA9
PT0KLWZ1bmN0aW9uIEV4aXRTdGF0dXMoc3RhdHVzKSB7Ci0gIHRoaXMubmFtZSA9ICJFeGl0U3Rh
dHVzIjsKLSAgdGhpcy5tZXNzYWdlID0gIlByb2dyYW0gdGVybWluYXRlZCB3aXRoIGV4aXQoIiAr
IHN0YXR1cyArICIpIjsKLSAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7Ci19OwotRXhpdFN0YXR1cy5w
cm90b3R5cGUgPSBuZXcgRXJyb3IoKTsKLUV4aXRTdGF0dXMucHJvdG90eXBlLmNvbnN0cnVjdG9y
ID0gRXhpdFN0YXR1czsKLXZhciBpbml0aWFsU3RhY2tUb3A7Ci12YXIgcHJlbG9hZFN0YXJ0VGlt
ZSA9IG51bGw7Ci1Nb2R1bGVbJ2NhbGxNYWluJ10gPSBNb2R1bGUuY2FsbE1haW4gPSBmdW5jdGlv
biBjYWxsTWFpbihhcmdzKSB7Ci0gIGFzc2VydChydW5EZXBlbmRlbmNpZXMgPT0gMCwgJ2Nhbm5v
dCBjYWxsIG1haW4gd2hlbiBhc3luYyBkZXBlbmRlbmNpZXMgcmVtYWluISAobGlzdGVuIG9uIF9f
QVRNQUlOX18pJyk7Ci0gIGFzc2VydChfX0FUUFJFUlVOX18ubGVuZ3RoID09IDAsICdjYW5ub3Qg
Y2FsbCBtYWluIHdoZW4gcHJlUnVuIGZ1bmN0aW9ucyByZW1haW4gdG8gYmUgY2FsbGVkJyk7Ci0g
IGFyZ3MgPSBhcmdzIHx8IFtdOwotICBpZiAoRU5WSVJPTk1FTlRfSVNfV0VCICYmIHByZWxvYWRT
dGFydFRpbWUgIT09IG51bGwpIHsKLSAgICAvL01vZHVsZS5wcmludEVycigncHJlbG9hZCB0aW1l
OiAnICsgKERhdGUubm93KCkgLSBwcmVsb2FkU3RhcnRUaW1lKSArICcgbXMnKTsKLSAgfQotICBl
bnN1cmVJbml0UnVudGltZSgpOwotICB2YXIgYXJnYyA9IGFyZ3MubGVuZ3RoKzE7Ci0gIGZ1bmN0
aW9uIHBhZCgpIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQtMTsgaSsrKSB7Ci0gICAgICBh
cmd2LnB1c2goMCk7Ci0gICAgfQotICB9Ci0gIHZhciBhcmd2ID0gW2FsbG9jYXRlKGludEFycmF5
RnJvbVN0cmluZygiL2Jpbi90aGlzLnByb2dyYW0iKSwgJ2k4JywgQUxMT0NfTk9STUFMKSBdOwot
ICBwYWQoKTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdjLTE7IGkgPSBpICsgMSkgewotICAg
IGFyZ3YucHVzaChhbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcoYXJnc1tpXSksICdpOCcsIEFM
TE9DX05PUk1BTCkpOwotICAgIHBhZCgpOwotICB9Ci0gIGFyZ3YucHVzaCgwKTsKLSAgYXJndiA9
IGFsbG9jYXRlKGFyZ3YsICdpMzInLCBBTExPQ19OT1JNQUwpOwotICBpbml0aWFsU3RhY2tUb3Ag
PSBTVEFDS1RPUDsKLSAgdHJ5IHsKLSAgICB2YXIgcmV0ID0gTW9kdWxlWydfbWFpbiddKGFyZ2Ms
IGFyZ3YsIDApOwotICAgIC8vIGlmIHdlJ3JlIG5vdCBydW5uaW5nIGFuIGV2ZW50ZWQgbWFpbiBs
b29wLCBpdCdzIHRpbWUgdG8gZXhpdAotICAgIGlmICghTW9kdWxlWydub0V4aXRSdW50aW1lJ10p
IHsKLSAgICAgIGV4aXQocmV0KTsKLSAgICB9Ci0gIH0KLSAgY2F0Y2goZSkgewotICAgIGlmIChl
IGluc3RhbmNlb2YgRXhpdFN0YXR1cykgewotICAgICAgLy8gZXhpdCgpIHRocm93cyB0aGlzIG9u
Y2UgaXQncyBkb25lIHRvIG1ha2Ugc3VyZSBleGVjdXRpb24KLSAgICAgIC8vIGhhcyBiZWVuIHN0
b3BwZWQgY29tcGxldGVseQotICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAoZSA9PSAnU2lt
dWxhdGVJbmZpbml0ZUxvb3AnKSB7Ci0gICAgICAvLyBydW5uaW5nIGFuIGV2ZW50ZWQgbWFpbiBs
b29wLCBkb24ndCBpbW1lZGlhdGVseSBleGl0Ci0gICAgICBNb2R1bGVbJ25vRXhpdFJ1bnRpbWUn
XSA9IHRydWU7Ci0gICAgICByZXR1cm47Ci0gICAgfSBlbHNlIHsKLSAgICAgIHRocm93IGU7Ci0g
ICAgfQotICB9Ci19Ci1mdW5jdGlvbiBydW4oYXJncykgewotICBhcmdzID0gYXJncyB8fCBNb2R1
bGVbJ2FyZ3VtZW50cyddOwotICBpZiAocHJlbG9hZFN0YXJ0VGltZSA9PT0gbnVsbCkgcHJlbG9h
ZFN0YXJ0VGltZSA9IERhdGUubm93KCk7Ci0gIGlmIChydW5EZXBlbmRlbmNpZXMgPiAwKSB7Ci0g
ICAgLy9Nb2R1bGUucHJpbnRFcnIoJ3J1bigpIGNhbGxlZCwgYnV0IGRlcGVuZGVuY2llcyByZW1h
aW4sIHNvIG5vdCBydW5uaW5nJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIHByZVJ1bigpOwotICBp
ZiAocnVuRGVwZW5kZW5jaWVzID4gMCkgewotICAgIC8vIGEgcHJlUnVuIGFkZGVkIGEgZGVwZW5k
ZW5jeSwgcnVuIHdpbGwgYmUgY2FsbGVkIGxhdGVyCi0gICAgcmV0dXJuOwotICB9Ci0gIGZ1bmN0
aW9uIGRvUnVuKCkgewotICAgIGVuc3VyZUluaXRSdW50aW1lKCk7Ci0gICAgcHJlTWFpbigpOwot
ICAgIGNhbGxlZFJ1biA9IHRydWU7Ci0gICAgaWYgKE1vZHVsZVsnX21haW4nXSAmJiBzaG91bGRS
dW5Ob3cpIHsKLSAgICAgIE1vZHVsZVsnY2FsbE1haW4nXShhcmdzKTsKLSAgICB9Ci0gICAgcG9z
dFJ1bigpOwotICB9Ci0gIGlmIChNb2R1bGVbJ3NldFN0YXR1cyddKSB7Ci0gICAgTW9kdWxlWydz
ZXRTdGF0dXMnXSgnUnVubmluZy4uLicpOwotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0g
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICBNb2R1bGVbJ3NldFN0YXR1cydd
KCcnKTsKLSAgICAgIH0sIDEpOwotICAgICAgaWYgKCFBQk9SVCkgZG9SdW4oKTsKLSAgICB9LCAx
KTsKLSAgfSBlbHNlIHsKLSAgICBkb1J1bigpOwotICB9Ci19Ci1Nb2R1bGVbJ3J1biddID0gTW9k
dWxlLnJ1biA9IHJ1bjsKLWZ1bmN0aW9uIGV4aXQoc3RhdHVzKSB7Ci0gIEFCT1JUID0gdHJ1ZTsK
LSAgRVhJVFNUQVRVUyA9IHN0YXR1czsKLSAgU1RBQ0tUT1AgPSBpbml0aWFsU3RhY2tUb3A7Ci0g
IC8vIGV4aXQgdGhlIHJ1bnRpbWUKLSAgZXhpdFJ1bnRpbWUoKTsKLSAgLy8gdGhyb3cgYW4gZXhj
ZXB0aW9uIHRvIGhhbHQgdGhlIGN1cnJlbnQgZXhlY3V0aW9uCi0gIHRocm93IG5ldyBFeGl0U3Rh
dHVzKHN0YXR1cyk7Ci19Ci1Nb2R1bGVbJ2V4aXQnXSA9IE1vZHVsZS5leGl0ID0gZXhpdDsKLWZ1
bmN0aW9uIGFib3J0KHRleHQpIHsKLSAgaWYgKHRleHQpIHsKLSAgICBNb2R1bGUucHJpbnQodGV4
dCk7Ci0gICAgTW9kdWxlLnByaW50RXJyKHRleHQpOwotICB9Ci0gIEFCT1JUID0gdHJ1ZTsKLSAg
RVhJVFNUQVRVUyA9IDE7Ci0gIHRocm93ICdhYm9ydCgpIGF0ICcgKyAobmV3IEVycm9yKCkuc3Rh
Y2spOwotfQotTW9kdWxlWydhYm9ydCddID0gTW9kdWxlLmFib3J0ID0gYWJvcnQ7Ci0vLyB7e1BS
RV9SVU5fQURESVRJT05TfX0KLWlmIChNb2R1bGVbJ3ByZUluaXQnXSkgewotICBpZiAodHlwZW9m
IE1vZHVsZVsncHJlSW5pdCddID09ICdmdW5jdGlvbicpIE1vZHVsZVsncHJlSW5pdCddID0gW01v
ZHVsZVsncHJlSW5pdCddXTsKLSAgd2hpbGUgKE1vZHVsZVsncHJlSW5pdCddLmxlbmd0aCA+IDAp
IHsKLSAgICBNb2R1bGVbJ3ByZUluaXQnXS5wb3AoKSgpOwotICB9Ci19Ci0vLyBzaG91bGRSdW5O
b3cgcmVmZXJzIHRvIGNhbGxpbmcgbWFpbigpLCBub3QgcnVuKCkuCi12YXIgc2hvdWxkUnVuTm93
ID0gdHJ1ZTsKLWlmIChNb2R1bGVbJ25vSW5pdGlhbFJ1biddKSB7Ci0gIHNob3VsZFJ1bk5vdyA9
IGZhbHNlOwotfQotcnVuKCk7Ci0vLyB7e1BPU1RfUlVOX0FERElUSU9OU319Ci0vLyB7e01PRFVM
RV9BRERJVElPTlN9fQpJbmRleDogTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RmZy1hZGQt
bm90LW51bWJlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
ZGZnLWFkZC1ub3QtbnVtYmVyLmpzCShyZXZpc2lvbiAxNjI5NjEpCisrKyBMYXlvdXRUZXN0cy9q
cy9zY3JpcHQtdGVzdHMvZGZnLWFkZC1ub3QtbnVtYmVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsNiBAQAorLy8gVGhpcyB0ZXN0IHdvbid0IGdldCBpbnRvIHRoZSBGVEwgY3VycmVudGx5
LCBzaW5jZSB0aGUgZm9vKCkgZnVuY3Rpb24ganVzdCBleGl0cyBhIGxvdC4KKy8vQCBub0ZUTFJ1
bkxheW91dFRlc3QKKwogZGVzY3JpcHRpb24oCiAiVGVzdHMgdGhhdCBhZGRpbmcgdGhpbmdzIHRo
YXQgYXJlbid0IG51bWJlcnMgdXNpbmcgKysgZG9lcyBub3QgY3Jhc2ggb3IgZ2VuZXJhdGUgYm9n
dXMgY29kZS4iCiApOwpJbmRleDogTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2xhcmdlLWV4
cHJlc3Npb25zLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9s
YXJnZS1leHByZXNzaW9ucy5qcwkocmV2aXNpb24gMTYyOTYxKQorKysgTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL2xhcmdlLWV4cHJlc3Npb25zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw1
ICszMCw0IEBAIGZ1bmN0aW9uIHJlcGVhdGVkU3RyaW5nKHZhbHVlLCBjb3VudCkKIAogc2hvdWxk
QmUoJ2V2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDApKScsICdyZXBl
YXRlZFN0cmluZygiYSIsIDEwMCknKTsKIHNob3VsZEJlKCdldmFsKHJlcGVhdGVkRXhwcmVzc2lv
bigibGV0dGVyQSIsICIrIiwgMTAwMCkpJywgJ3JlcGVhdGVkU3RyaW5nKCJhIiwgMTAwMCknKTsK
LXNob3VsZEJlKCdldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDAp
KScsICdyZXBlYXRlZFN0cmluZygiYSIsIDEwMDAwKScpOwogc2hvdWxkVGhyb3coJ2V2YWwocmVw
ZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMDApKScpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222524</attachid>
            <date>2014-01-28 16:08:34 -0800</date>
            <delta_ts>2014-01-29 10:41:30 -0800</delta_ts>
            <desc>Updated patch with speculative build fix for Windows</desc>
            <filename>127763-7.patch</filename>
            <type>text/plain</type>
            <size>1599615</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBA
CisyMDE0LTAxLTI4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIE1lcmdlIHRoZSBqc0NTdGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZXMgZnJvbSBodHRwOi8vc3ZuLndlYmtpdC5vcmcv
cmVwb3NpdG9yeS93ZWJraXQvYnJhbmNoZXMvanNDU3RhY2sKKwogMjAxNC0wMS0yOCAgTWFyayBM
YW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgSmV0dGlzb24gREZHIGNvZGUgd2hl
biBuZWl0aGVyIGJyZWFrcG9pbnRzIG9yIHRoZSBwcm9maWxlciBhcmUgYWN0aXZlLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTYyOTYxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNTUs
NiArMjU1LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBpbnRlcnByZXRlci9W
TUluc3BlY3Rvci5jcHAKIAogICAgIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCisgICAgaml0L0Fy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcAogICAgIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0
aW5lLmNwcAogICAgIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAogICAgIGppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCkBAIC0yNzgsNiArMjc5LDcgQEAgc2V0KEphdmFT
Y3JpcHRDb3JlX1NPVVJDRVMKICAgICBqaXQvSklUU3R1YnMuY3BwCiAgICAgaml0L0pJVFRodW5r
cy5jcHAKICAgICBqaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCisg
ICAgaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAKICAgICBqaXQv
UmVnaXN0ZXJTZXQuY3BwCiAgICAgaml0L1JlcGF0Y2guY3BwCiAgICAgaml0L1RlbXBSZWdpc3Rl
clNldC5jcHAKQEAgLTM0MCw2ICszNDIsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwog
ICAgIHJ1bnRpbWUvRHVtcENvbnRleHQuY3BwCiAgICAgcnVudGltZS9FcnJvci5jcHAKICAgICBy
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisgICAgcnVudGltZS9FcnJvckhhbmRsaW5nU2Nv
cGUuY3BwCiAgICAgcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAogICAgIHJ1bnRpbWUvRXJyb3JQ
cm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNv
cHkpCkBAIC05MSw2ICs5MSw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZf
NjQuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNB
c3NlbWJsZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9SZXBhdGNoQnVm
ZmVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvU0g0QXNzZW1ibGVyLmgg
XApAQCAtNjkxLDYgKzY5Miw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9WTUluc3BlY3Rvci5jcHAgXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9WTUluc3BlY3Rvci5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguaCBcCisgICAgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIFwKKyAgICBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NDYWxsSGVscGVycy5oIFwKQEAgLTc0NCw2ICs3NDcsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV3JpdGVC
YXJyaWVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaCBc
CisgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBw
ZXJHZW5lcmF0b3IuaCBcCisgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclBy
ZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlZ2lzdGVyU2V0LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3Rl
clNldC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIFwKQEAgLTkw
NCw2ICs5MDksOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3IuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Nj
b3BlLmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Nj
b3BlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcCBcCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCShyZXZpc2lvbiAxNjI5
NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIJKHdvcmtp
bmcgY29weSkKQEAgLTQ5ODEsNyArNDk4MSw2IEBAIF9sbGludF9zbG93X3BhdGhfaGFuZGxlX3dh
dGNoZG9nX3RpbWVyCiBfbGxpbnRfc2xvd19wYXRoX2RlYnVnCiBfbGxpbnRfc2xvd19wYXRoX3By
b2ZpbGVfd2lsbF9jYWxsCiBfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwKLV9sbGlu
dF90aHJvd19mcm9tX25hdGl2ZV9jYWxsCiBfbGxpbnRfYmVnaW4KIF9sbGludF9wcm9ncmFtX3By
b2xvZ3VlCiBfbGxpbnRfZXZhbF9wcm9sb2d1ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC01ODksNiArNTg5LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1
bnRpbWVcRHVtcENvbnRleHQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxFcnJvci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVy
cm9yQ29uc3RydWN0b3IuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxFcnJvckhhbmRsaW5nU2NvcGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxFcnJvckluc3RhbmNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcRXJyb3JQcm90b3R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccnVudGltZVxFeGNlcHRpb25IZWxwZXJzLmNwcCIgLz4KQEAgLTc5MSw2ICs3OTIsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1hY3JvQXNzZW1ibGVyWDg2Lmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxNYWNy
b0Fzc2VtYmxlclg4Nl82NC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1i
bGVyXE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxhc3NlbWJsZXJcUmVwYXRjaEJ1ZmZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYXNzZW1ibGVyXFg4NkFzc2VtYmxlci5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYmluZGluZ3NcU2NyaXB0RnVuY3Rpb25DYWxsLmgiIC8+CkBAIC0xMjA0LDYg
KzEyMDYsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxEdW1wQ29udGV4
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvci5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckNvbnN0cnVjdG9yLmgiIC8+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckluc3RhbmNlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yUHJvdG90eXBlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEV4Y2VwdGlvbkhlbHBlcnMu
aCIgLz4KQEAgLTE0MDYsMjIgKzE0MDksNiBAQAogICAgICAgPEZpbGVUeXBlPkRvY3VtZW50PC9G
aWxlVHlwZT4KICAgICA8L05vbmU+CiAgIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAg
IDxNQVNNIEluY2x1ZGU9Ii4uXGppdFxKSVRTdHVic01TVkM2NC5hc20iPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdT
dWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvTUFTTT4KLSAgPC9J
dGVtR3JvdXA+CiAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQu
Q3BwLnRhcmdldHMiIC8+CiAgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+
CiAgICAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXEJ1aWxkQ3VzdG9taXphdGlv
bnNcbWFzbS50YXJnZXRzIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5m
aWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC01MzcsNiArNTM3LDkgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JDb25zdHJ1Y3Rvci5jcHAiPgogICAgICAgPEZpbHRl
cj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5jcHAiPgorICAgICAgPEZpbHRlcj5y
dW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTQ0Miw2ICsxNDQ1LDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxNYWNyb0Fzc2VtYmxlclg4Nl82NC5oIj4KICAg
ICAgIDxGaWx0ZXI+YXNzZW1ibGVyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwuaCI+CisgICAgICA8RmlsdGVyPmFzc2VtYmxlcjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRl
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXFJlcGF0Y2hCdWZmZXIuaCI+
CiAgICAgICA8RmlsdGVyPmFzc2VtYmxlcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAt
MjEyOSw2ICsyMTM1LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJy
b3JDb25zdHJ1Y3Rvci5oIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckhhbmRs
aW5nU2NvcGUuaCI+CisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5j
bHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JJbnN0YW5jZS5o
Ij4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAt
MzI5NSw5ICszMzA0LDQgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSJKYXZhU2NyaXB0Q29yZVBvc3RC
dWlsZC5jbWQiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iSmF2YVNjcmlwdENvcmVQcmVCdWlsZC5j
bWQiIC8+CiAgIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxNQVNNIEluY2x1ZGU9
Ii4uXGppdFxKSVRTdHVic01TVkM2NC5hc20iPgotICAgICAgPEZpbHRlcj5qaXQ8L0ZpbHRlcj4K
LSAgICA8L01BU00+Ci0gIDwvSXRlbUdyb3VwPgogPC9Qcm9qZWN0PgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTAsNiArMjEwLDcgQEAKIAkJMEYzOEIwMTkxN0NGRTc1NTAwQjE0NEQzIC8qIERG
R0NvbXBpbGF0aW9uTW9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjM4QjAxNTE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2Rl
LmNwcCAqLzsgfTsKIAkJMEYzOEIwMUExN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9u
TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYz
OEIwMTYxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uTW9kZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0FDNzUyMTgzRUExMDQw
MDMyMDI5RiAvKiBTdGFja0FsaWdubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYzQUM3NTExODNFQTEwNDAwMzIwMjlGIC8qIFN0YWNrQWxpZ25t
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEYzQUM3NTQxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNBQzc1MzE4OEU1RUM4MDAzMjAy
OUYgLyogRXhpdGluZ0pJVFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjNCM0ExQTE1M0U2OEYyMDAzRUQwRkYgLyogREZHQ29uc3RhbnRG
b2xkaW5nUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYzQjNBMTcxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcCAqLzsgfTsKIAkJMEYzQjNBMUIxNTNFNjhGNDAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9s
ZGluZ1BoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjNCM0ExODE1M0U2OEVGMDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjNCM0Ey
NzE1NDRDOTk1MDAzRUQwRkYgLyogREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0EyNDE1NDRDOTkx
MDAzRUQwRkYgLyogREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAgKi87IH07CkBAIC0yMzYs
NiArMjM3LDEwIEBACiAJCTBGNDY4MEQ1MTRCQkQyNEIwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVy
blZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjQ2ODBEMTE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNDg1MzIxMTg3NzUw
NTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMUYxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRo
TW9kZS5jcHAgKi87IH07CiAJCTBGNDg1MzIyMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1
MzIwMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjQ4NTMyNzE4N0RGREVDMDA4M0I2ODcg
LyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjMxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJs
ZVJlY292ZXJ5LmNwcCAqLzsgfTsKKwkJMEY0ODUzMjgxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2
YWlsYWJsZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjQ4NTMyNDE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3Zlcnku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjQ4
NTMyOTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjUxODdERkRFQzAwODNC
Njg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCAqLzsgfTsKKwkJMEY0ODUzMkExODdERkRFQzAw
ODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMyNjE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3Zl
cnlPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0OTNBRjgxNkQwQ0FE
MTAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJMEY0Qjk0REMxN0I5RjA3
NTAwREQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRCOTREQjE3QjlGMDc1MDBERDAzQTQgLyogVHlwZWRB
cnJheUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjU1NDFCMTE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NTQxQUYxNjEz
QzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmNwcCAqLzsgfTsKQEAgLTI0OCw2ICsyNTMs
OCBAQAogCQkwRjU2QTFENTE1MDAxQ0Y0MDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2QTFENDE1
MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAgKi87IH07CiAJCTBGNTcyRDRG
MTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRo
dW5rR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEY1QTUyRDAxN0FERDcxNzAwOEVDQjJEIC8qIENvcHlUb2tlbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1QTUyQ0YxN0FERDcxNzAw
OEVDQjJEIC8qIENvcHlUb2tlbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTBGNUE2MjgzMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUE2
MjgxMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmNwcCAqLzsgfTsKKwkJMEY1QTYy
ODQxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUE2MjgyMTg4Qzk4RDQwMDcyQzlERiAvKiBG
VExWYWx1ZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFRjkxQjE2ODc4Rjc4
MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLzsgfTsKIAkJMEY1RUY5MUYxNjg3OEY3RDAwM0U1
QzI1IC8qIEpJVFRodW5rcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUYwOENGMTQ2Qzc2
MzMwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGMDhDRTE0NkM3NjJGMDAwNDcyQTkgLyog
VW5jb25kaXRpb25hbEZpbmFsaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0yNjksNiArMjc2LDE4IEBACiAJCTBGNjY2RUNEMTgzNkIzN0Uw
MEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjY2RUNCMTgzNkIzN0UwMEQw
MTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjY2RTE2QjE0REYzRjE2MDBC
N0IyRTQgLyogREZHQWRqYWNlbmN5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY2NkUxNjgxNERGM0YxMzAwQjdCMkU0IC8qIERGR0FkamFjZW5j
eUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRjY2RTE2QzE0REYzRjE2MDBCN0IyRTQgLyogREZHRWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2NkUxNjkxNERGM0YxMzAwQjdCMkU0IC8q
IERGR0VkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjZCMUNCNTE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0IzMTg1RkM5RTkwMDg0
NUQ5NyAvKiBGVExKU0NhbGwuY3BwICovOyB9OworCQkwRjZCMUNCNjE4NUZDOUU5MDA4NDVEOTcg
LyogRlRMSlNDYWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjZCMUNCNDE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQjkxODYxMjQ0QzAw
ODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCNzE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01v
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
RjZCMUNCQTE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCODE4NjEy
NDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQkQxODYxMjQ2QTAwODQ1
RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCQjE4NjEyNDZBMDA4
NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcCAqLzsgfTsK
KwkJMEY2QjFDQkUxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY2QjFDQkMxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTBGNkIxQ0MzMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0JG
MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCAqLzsgfTsKKwkJMEY2
QjFDQzQxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0MwMTg2MkM0NzgwMDg0
NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQzUxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVu
d2luZEluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY2QjFDQzExODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwICovOyB9Owor
CQkwRjZCMUNDNjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQzIxODYyQzQ3ODAwODQ1
RDk3IC8qIEZUTFVud2luZEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjZCMUNDOTE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY2QjFDQzcxODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJu
VGh1bmtzLmNwcCAqLzsgfTsKKwkJMEY2QjFDQ0ExODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hl
Y2tGYWlsUmV0dXJuVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjZCMUNDODE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjcwMjVBOTE3MTRCMEZBMDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzAy
NUE3MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwICovOyB9
OwogCQkwRjcwMjVBQTE3MTRCMEZDMDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjcwMjVB
ODE3MTRCMEY4MDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3MTRDQTQxNkVBOTJG
MDAwRjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3MTRDQTExNkVBOTJFRDAwRjNF
QkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwICovOyB9OwpAQCAtMTM0Niw2
ICsxMzY1LDggQEAKIAkJRkU1OTMyQTgxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU1OTMyQTYx
ODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFQTA4NjIwMTgyQjdBMDQwMEY2RDg1MSAvKiBC
cmVha3BvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRUEwODYxRTE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFQTA4NjIxMTgyQjdBMDQwMEY2
RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZFQTA4NjFGMTgyQjdBMDQwMEY2RDg1MSAvKiBEZWJ1Z2dlclBy
aW1pdGl2ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlGRUI1OEMxNDE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFQjU4QzEyMTg3
QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuY3BwICovOyB9OworCQlGRUI1OEMx
NTE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUI1OEMxMzE4N0I4QjE2MDA5OEVGMEIg
LyogRXJyb3JIYW5kbGluZ1Njb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRkVEMjg3QjIxNUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQyODdC
MTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQgLyog
V2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLzsgfTsKIAkJRkVE
OTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0
Y2hkb2cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTYwNSw2ICsxNjI2LDcgQEAKIAkJMEYzOEIwMTUxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0Nv
bXBpbGF0aW9uTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBE
RkdDb21waWxhdGlvbk1vZGUuY3BwOyBwYXRoID0gZGZnL0RGR0NvbXBpbGF0aW9uTW9kZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMzhCMDE2MTdDRkU3NTUwMEIxNDREMyAv
KiBERkdDb21waWxhdGlvbk1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
REZHQ29tcGlsYXRpb25Nb2RlLmg7IHBhdGggPSBkZmcvREZHQ29tcGlsYXRpb25Nb2RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0FDNzUxMTgzRUExMDQwMDMyMDI5RiAvKiBT
dGFja0FsaWdubWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGFja0Fs
aWdubWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjNBQzc1MzE4OEU1RUM4
MDAzMjAyOUYgLyogRXhpdGluZ0pJVFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXhpdGluZ0pJVFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYz
QjNBMTcxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcDsgcGF0aCA9IGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGM0IzQTE4MTUzRTY4RUYwMDNFRDBGRiAvKiBERkdDb25zdGFu
dEZvbGRpbmdQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0IzQTI0MTU0NEM5OTEwMDNFRDBGRiAv
KiBERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IERGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RG
R0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTYzMiw2ICsxNjU0LDEwIEBACiAJCTBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3MiAvKiBIb3N0
Q2FsbFJldHVyblZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhvc3RD
YWxsUmV0dXJuVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0ODUzMUYx
ODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdBcml0aE1vZGUuY3BwOyBwYXRoID0gZGZnL0RGR0FyaXRoTW9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDg1MzIwMTg3NzUwNTYwMDgz
QjY4NyAvKiBERkdBcml0aE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
REZHQXJpdGhNb2RlLmg7IHBhdGggPSBkZmcvREZHQXJpdGhNb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGNDg1MzIzMTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVS
ZWNvdmVyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExBdmFp
bGFibGVSZWNvdmVyeS5jcHA7IHBhdGggPSBmdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ4NTMyNDE4N0RGREVDMDA4M0I2ODcgLyog
RlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
RlRMQXZhaWxhYmxlUmVjb3ZlcnkuaDsgcGF0aCA9IGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ4NTMyNTE4N0RGREVDMDA4M0I2ODcg
LyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gRlRMUmVjb3ZlcnlPcGNvZGUuY3BwOyBwYXRoID0gZnRsL0ZUTFJlY292ZXJ5T3Bjb2Rl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0ODUzMjYxODdERkRFQzAwODNC
Njg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEZUTFJlY292ZXJ5T3Bjb2RlLmg7IHBhdGggPSBmdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0OTNBRjgxNkQwQ0FEMTAwODQ1MDhCIC8q
IFNvdXJjZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNvdXJjZVByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0Qjk0
REIxN0I5RjA3NTAwREQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVkQXJyYXlJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNTU0MUFGMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9pbnRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVjaWFsUG9pbnRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQ0LDYgKzE2NzAsOCBAQAogCQkw
RjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVjdXRpb25Db3VudGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRodW5r
R2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRodW5rR2VuZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUE1MkNGMTdBREQ3MTcwMDhF
Q0IyRCAvKiBDb3B5VG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29w
eVRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUE2MjgxMTg4Qzk4RDQw
MDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEZUTFZhbHVlUmFuZ2UuY3BwOyBwYXRoID0gZnRsL0ZUTFZhbHVlUmFuZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjVBNjI4MjE4OEM5OEQ0MDA3MkM5REYg
LyogRlRMVmFsdWVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExW
YWx1ZVJhbmdlLmg7IHBhdGggPSBmdGwvRlRMVmFsdWVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVFRodW5rcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRU
aHVua3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVGh1bmtzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBV
bmNvbmRpdGlvbmFsRmluYWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE2NjUsNiArMTY5MywxOCBAQAogCQkwRjY2NkVDQjE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVz
dXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oOyBwYXRoID0gZGZnL0RG
R1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjY2RTE2ODE0REYzRjEzMDBCN0IyRTQgLyogREZHQWRqYWNlbmN5TGlzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBZGphY2VuY3lMaXN0Lmg7IHBhdGgg
PSBkZmcvREZHQWRqYWNlbmN5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjY2RTE2OTE0REYzRjEzMDBCN0IyRTQgLyogREZHRWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdFZGdlLmg7IHBhdGggPSBkZmcvREZHRWRnZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCMzE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEpTQ2FsbC5jcHA7
IHBhdGggPSBmdGwvRlRMSlNDYWxsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MEY2QjFDQjQxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBGVExKU0NhbGwuaDsgcGF0aCA9IGZ0bC9GVExKU0NhbGwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQjcxODYxMjQ0QzAwODQ1RDk3IC8qIEFy
aXR5Q2hlY2tNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyaXR5Q2hl
Y2tNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0I4MTg2MTI0NEMw
MDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGNkIxQ0JCMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNl
cnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQkMxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lz
dGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQkYxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJl
Z2lzdGVyQXRPZmZzZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
RlRMUmVnaXN0ZXJBdE9mZnNldC5jcHA7IHBhdGggPSBmdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0MwMTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEZUTFJlZ2lzdGVyQXRPZmZzZXQuaDsgcGF0aCA9IGZ0bC9GVExSZWdpc3RlckF0T2Zmc2V0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0MxMTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExVbndpbmRJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEZUTFVud2luZEluZm8uY3BwOyBwYXRoID0gZnRsL0ZUTFVud2luZEluZm8uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNDMjE4NjJDNDc4MDA4NDVEOTcgLyogRlRM
VW53aW5kSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExVbndpbmRJ
bmZvLmg7IHBhdGggPSBmdGwvRlRMVW53aW5kSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjZCMUNDNzE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5U
aHVua3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJpdHlDaGVj
a0ZhaWxSZXR1cm5UaHVua3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZC
MUNDODE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MDI1QTcxNzE0QjBGODAwMzgyQzBF
IC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOyBwYXRoID0gZGZnL0RG
R09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGNzAyNUE4MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
Lmg7IHBhdGggPSBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGNzE0Q0ExMTZFQTkyRUQwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQ
cm9wYWdhdGlvblBoYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RGR0JhY2t3YXJk
c1Byb3BhZ2F0aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEx
Niw2ICsyMTU2LDcgQEAKIAkJNjU2MEE0Q0YwNEIzQjNFNzAwOEFFOTUyIC8qIENvcmVGb3VuZGF0
aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29yZUZvdW5kYXRpb24uZnJhbWV3b3Jr
OyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUZvdW5kYXRpb24uZnJhbWV3
b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQk2NTYyMUU2QjA4OUU4NTk3MDA3
NjBGMzUgLyogUHJvcGVydHlTbG90LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3BlcnR5U2xvdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJNjU2MjFFNkMwODlFODU5NzAwNzYwRjM1IC8q
IFByb3BlcnR5U2xvdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcm9wZXJ0eVNsb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB9OworCQk2NTg2MDE3NzE4NUE4RjVFMDAwMzBFRUUgLyogTWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NjU5ODdGMkMxNjdGRTg0QjAwM0MyRjhEIC8qIERGR09TUkV4aXRDb21waWxhdGlvbkluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHT1NSRXhpdENvbXBpbGF0aW9uSW5m
by5oOyBwYXRoID0gZGZnL0RGR09TUkV4aXRDb21waWxhdGlvbkluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjU5ODdGMkYxNjgyOEE3RTAwM0MyRjhEIC8qIFVudXNlZFBvaW50
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW51c2VkUG9pbnRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUMwMjg0RjE3MTc5NUUyMDAzNTFFMzUgLyog
QVJNdjdEaXNhc3NlbWJsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQVJNdjdEaXNhc3NlbWJsZXIuY3BwOyBwYXRoID0gZGlzYXNzZW1ibGVyL0FSTXY3RGlzYXNz
ZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3ODMsNiArMjgyNCw4
IEBACiAJCUZFNTkzMkE2MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVk1FbnRyeVNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUZFQTA4NjFFMTgyQjdBMDQwMEY2RDg1MSAvKiBCcmVha3BvaW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJyZWFrcG9pbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBMDg2MUYxODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2Vy
UHJpbWl0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWJ1Z2dlclBy
aW1pdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVCNThDMTIxODdCOEIx
NjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBFcnJvckhhbmRsaW5nU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGRUI1OEMxMzE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Nj
b3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVycm9ySGFuZGxpbmdTY29w
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQyODdCMTE1RUM5QTU3MDBEQTgx
NjEgLyogTExJbnRPcGNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTExJ
bnRPcGNvZGUuaDsgcGF0aCA9IGxsaW50L0xMSW50T3Bjb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXRjaGRvZy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRDk0RjJDMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRv
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXRjaGRvZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAwMSw2ICszMDQ0LDggQEAKIAkJCQkwRkVBMEExODE3
MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwLmggKi8sCiAJCQkJMEZFQTBBMTkxNzA4
QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwICovLAogCQkJCTBG
RUEwQTFBMTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggKi8s
CisJCQkJMEY0ODUzMjMxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNw
cCAqLywKKwkJCQkwRjQ4NTMyNDE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3Zl
cnkuaCAqLywKIAkJCQkwRkVBMDlGRTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJpbGl0aWVz
LmNwcCAqLywKIAkJCQkwRkVBMDlGRjE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJpbGl0aWVz
LmggKi8sCiAJCQkJMEZFQTBBMjUxNzA5NjIzQjAwQkI3MjJDIC8qIEZUTENvbW1vblZhbHVlcy5j
cHAgKi8sCkBAIC0zMDMxLDYgKzMwNzYsOCBAQAogCQkJCTBGRUEwQTAzMTcwNTEzREIwMEJCNzIy
QyAvKiBGVExKSVRDb2RlLmggKi8sCiAJCQkJQTc4QTk3N0QxNzk3MzhENTAwOURGNzQ0IC8qIEZU
TEpJVEZpbmFsaXplci5jcHAgKi8sCiAJCQkJQTc4QTk3N0UxNzk3MzhENTAwOURGNzQ0IC8qIEZU
TEpJVEZpbmFsaXplci5oICovLAorCQkJCTBGNkIxQ0IzMTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExK
U0NhbGwuY3BwICovLAorCQkJCTBGNkIxQ0I0MTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwu
aCAqLywKIAkJCQkwRjhGMkI5MzE3MkUwNDlFMDA3REJEQTUgLyogRlRMTGluay5jcHAgKi8sCiAJ
CQkJMEY4RjJCOTQxNzJFMDQ5RTAwN0RCREE1IC8qIEZUTExpbmsuaCAqLywKIAkJCQkwRkNFRkFE
RDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uY3BwICovLApAQCAtMzA0Nyw2ICszMDk0
LDEwIEBACiAJCQkJMEYyMzVCQ0ExNzE3OEUxQzAwNjkwQzdGIC8qIEZUTE9TUkV4aXRDb21waWxl
ci5oICovLAogCQkJCTBGRUEwQTI5MTcwOTYyOTYwMEJCNzIyQyAvKiBGVExPdXRwdXQuY3BwICov
LAogCQkJCTBGRUEwQTA2MTcwNTEzREIwMEJCNzIyQyAvKiBGVExPdXRwdXQuaCAqLywKKwkJCQkw
RjQ4NTMyNTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwICovLAorCQkJ
CTBGNDg1MzI2MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oICovLAorCQkJ
CTBGNkIxQ0JGMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCAqLywK
KwkJCQkwRjZCMUNDMDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5oICov
LAogCQkJCTBGQ0VGQUE5MTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5jcHAgKi8s
CiAJCQkJMEZDRUZBQUExODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmggKi8sCiAJ
CQkJMEYyNUYxQUExODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbC5jcHAgKi8sCkBA
IC0zMDYxLDkgKzMxMTIsMTMgQEAKIAkJCQkwRjIzNUJDQjE3MTc4RTFDMDA2OTBDN0YgLyogRlRM
VGh1bmtzLmNwcCAqLywKIAkJCQkwRjIzNUJDQzE3MTc4RTFDMDA2OTBDN0YgLyogRlRMVGh1bmtz
LmggKi8sCiAJCQkJMEZFQTBBMUIxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTFR5cGVkUG9pbnRlci5o
ICovLAorCQkJCTBGNkIxQ0MxMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmNwcCAq
LywKKwkJCQkwRjZCMUNDMjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oICovLAog
CQkJCTBGMjM1QkNEMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExWYWx1ZUZvcm1hdC5jcHAgKi8sCiAJ
CQkJMEYyMzVCQ0UxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFZhbHVlRm9ybWF0LmggKi8sCiAJCQkJ
MEZEQjJDQzgxNzNEQTUxRTAwN0IzQzFCIC8qIEZUTFZhbHVlRnJvbUJsb2NrLmggKi8sCisJCQkJ
MEY1QTYyODExODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuY3BwICovLAorCQkJCTBG
NUE2MjgyMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmggKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IGZ0bDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTUyLDYgKzMyMDcs
OCBAQAogCQkxNDI5RDkyQzBFRDIyRDcwMDBCODk2MTkgLyogaml0ICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkwRjZCMUNDNzE4NjQxREY4MDA4NDVEOTcg
LyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwICovLAorCQkJCTBGNkIxQ0M4MTg2NDFE
RjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oICovLAogCQkJCTBGMjRF
NTNCMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuY3BwICovLAogCQkJCTBGMjRF
NTNDMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuaCAqLywKIAkJCQkwRjI0RTUz
RDE3RUE5RjU5MDBBQkIyMTcgLyogQ0NhbGxIZWxwZXJzLmggKi8sCkBAIC0zMjA1LDYgKzMyNjIs
OCBAQAogCQkJCTBGQzcxMkUxMTdDRDg3OEYwMDhDQzkzQyAvKiBKSVRUb0RGR0RlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjay5oICovLAogCQkJCUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBK
SVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJ
bnRlcmZhY2VKSVQuaCAqLywKKwkJCQkwRjZCMUNCQjE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcCAqLywKKwkJCQkwRjZCMUNCQzE4NjEy
NDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggKi8s
CiAJCQkJMEZDMzE0MTQxODE0NkQ3MDAwMDMzMjMyIC8qIFJlZ2lzdGVyU2V0LmNwcCAqLywKIAkJ
CQkwRkMzMTQxMDE4MTQ1NTkxMDAwMzMyMzIgLyogUmVnaXN0ZXJTZXQuaCAqLywKIAkJCQkwRjI0
RTU0OTE3RUUyNzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5jcHAgKi8sCkBAIC0zNTU0LDYgKzM2MTMs
NyBAQAogCQkJCUE3NjE0MEM4MTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvckNv
bnN0cnVjdG9yLmggKi8sCiAJCQkJQTc2MTQwQzkxODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3VtZW50
c0l0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLywKIAkJCQlBNzYxNDBDQTE4Mjk4MkNCMDA3NTA2MjQg
LyogQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuaCAqLywKKwkJCQkwRjZCMUNCNzE4NjEyNDRD
MDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUuaCAqLywKIAkJCQlBN0E4QUYyNTE3QURCNUYyMDA1
QUIxNzQgLyogQXJyYXlCdWZmZXIuY3BwICovLAogCQkJCUE3QThBRjI2MTdBREI1RjMwMDVBQjE3
NCAvKiBBcnJheUJ1ZmZlci5oICovLAogCQkJCTBGRkM5OUQyMTg0RUUzMTgwMDlDMTBBQiAvKiBB
cnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuY3BwICovLApAQCAtMzYxOCw2ICszNjc4LDgg
QEAKIAkJCQlCQzMwNDYwNjBFMUY0OTdGMDAzMjMyQ0YgLyogRXJyb3IuaCAqLywKIAkJCQlCQzAy
RTkwNDBFMTgzOURCMDAwRjkyOTcgLyogRXJyb3JDb25zdHJ1Y3Rvci5jcHAgKi8sCiAJCQkJQkMw
MkU5MDUwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yQ29uc3RydWN0b3IuaCAqLywKKwkJCQlGRUI1
OEMxMjE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCAqLywKKwkJCQlG
RUI1OEMxMzE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggKi8sCiAJCQkJ
QkMwMkU5OEEwRTE4M0UzODAwMEY5Mjk3IC8qIEVycm9ySW5zdGFuY2UuY3BwICovLAogCQkJCUJD
MDJFOThCMEUxODNFMzgwMDBGOTI5NyAvKiBFcnJvckluc3RhbmNlLmggKi8sCiAJCQkJQkMwMkU5
MDYwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yUHJvdG90eXBlLmNwcCAqLywKQEAgLTM4NTEsNiAr
MzkxMyw3IEBACiAJCQkJRjY5MkE4N0MwMjU1NTk3RDAxRkY2MEY3IC8qIFJlZ0V4cE9iamVjdC5o
ICovLAogCQkJCUJDRDIwMkJGMEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBQcm90b3R5cGUuY3Bw
ICovLAogCQkJCUJDRDIwMkMwMEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBQcm90b3R5cGUuaCAq
LywKKwkJCQkwRjZCMUNCODE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25N
b2RlLmggKi8sCiAJCQkJMEZCN0YzOTExNUVEOEUzODAwRjE2N0IyIC8qIFJlamVjdC5oICovLAog
CQkJCTBGNzcwMDkxMTQwMkZGMjgwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIuY3BwICovLAog
CQkJCTBGNzcwMDhFMTQwMkZERDYwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIuaCAqLywKQEAg
LTM5NjUsNiArNDAyOCw4IEBACiAJCTg2RUM5REIzMTMyOERGNDQwMDJCMkFENyAvKiBkZmcgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJBQ0NGM0RDMTg1
RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2UuY3BwICovLAorCQkJ
CTJBQ0NGM0REMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2Uu
aCAqLywKIAkJCQlBNzdBNDIzNjE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmNw
cCAqLywKIAkJCQlBNzdBNDIzNzE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmgg
Ki8sCiAJCQkJQTcwNEQ4RkUxN0EwQkFBODAwNkJBNTU0IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0
ZXIuaCAqLywKQEAgLTQxNTMsOCArNDIxOCw2IEBACiAJCQkJMEZDMjBDQjgxODU1NkEzNTAwQzlF
OTU0IC8qIERGR1NTQUxvd2VyaW5nUGhhc2UuaCAqLywKIAkJCQkwRjlGQjRGMjE3RkNCOTE3MDBD
QjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAgKi8sCiAJCQkJMEY5RkI0RjMxN0ZDQjkx
NzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhhc2UuaCAqLywKLQkJCQkyQUNDRjNEQzE4NUZF
MjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmNwcCAqLywKLQkJCQky
QUNDRjNERDE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxpc2lvblBoYXNlLmgg
Ki8sCiAJCQkJMEZDMjBDQjMxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuY3BwICovLAogCQkJCTBGQzIwQ0I0MTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0
aFJlZHVjdGlvblBoYXNlLmggKi8sCiAJCQkJMEY2Mzk0NzYxNURDRTM0NzAwNkE1OTdDIC8qIERG
R1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCAqLywKQEAgLTQyNTAsNiArNDMxMyw3IEBACiAJCTk2
ODhDQjEyMEVEMTJCNEUwMDFENjQ5RiAvKiBhc3NlbWJsZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTY1ODYwMTc3MTg1QThGNUUwMDAzMEVFRSAvKiBN
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oICovLAogCQkJCTg2MDE2MURGMEYzQTgzQzEw
MEY4NDcxMCAvKiBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggKi8sCiAJCQkJODY0MDkyM0IxNTZF
RUQzQjAwNTY2Q0IyIC8qIEFSTTY0QXNzZW1ibGVyLmggKi8sCiAJCQkJODZEM0IyQkYxMDE1NkJE
RTAwMjg2NUU3IC8qIEFSTUFzc2VtYmxlci5jcHAgKi8sCkBAIC00MzIyLDYgKzQzODYsNyBAQAog
CQkJCTk2OUEwNzkyMEVEMUQzQUUwMEYxRjY4MSAvKiBFdmFsQ29kZUNhY2hlLmggKi8sCiAJCQkJ
MEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIuY3BwICovLAogCQkJ
CTBGNTZBMUQxMTUwMDBGMzEwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggKi8sCisJCQkJ
MEYzQUM3NTMxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggKi8sCiAJCQkJMEZC
MTA1ODIxNjc1NDgwQzAwRjhBQjZFIC8qIEV4aXRLaW5kLmNwcCAqLywKIAkJCQkwRkIxMDU4MzE2
NzU0ODBDMDBGOEFCNkUgLyogRXhpdEtpbmQuaCAqLywKIAkJCQkwRjBCODNBQTE0QkNGNUI5MDA4
ODVCNEYgLyogRXhwcmVzc2lvblJhbmdlSW5mby5oICovLApAQCAtNDU0MSwxMyArNDYwNiwxNCBA
QAogCQkJCTg2QUREMTQ1MEZEREVBOTgwMDA2RUVDMiAvKiBBUk12N0Fzc2VtYmxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVDRUVFMTUxODdGM0JBRDAwRTU1Qzk5IC8qIEluc3BlY3RvckFnZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUMwMjg1RDE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdE
T3Bjb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkyQTY4Mjk1QjE4NzVGODA1MDBCNkMzRTIgLyog
Q29weVdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkE0RUM5MEMxODYwRDZDMjAw
OTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisgCQkJCTJBNjgy
OTVCMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywK
KyAgICAgICAgICAgICAgICAyQTRFQzkwQzE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVy
QnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJBODE4M0M1QTI2MDBBMUVDQ0MgLyog
Vk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MzE4NTY5NzA5MDAyRUQ2
OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3MucHkgaW4gSGVhZGVycyAqLywKLQkJ
CQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weSBp
biBIZWFkZXJzICovLAorIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVy
YXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTRGMTdFRTI3NDkwMEFC
QjIxNyAvKiBUZW1wUmVnaXN0ZXJTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MEU0QjY0MTg4
MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRkVCNThDMTUxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCRkYzQzAxNzk4Njg5NDAwMDJGNDYyIC8qIERGR0ZpbHRy
YXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTI3MTg3Qzk4MUUwMDg0M0Ix
MCAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLywKIAkJCQlDMkZDQUUxMTE3QTlDMjRFMDAzNEM3
MzUgLyogQnl0ZWNvZGVCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLywKQEAgLTQ1NTYsNyArNDYy
Miw3IEBACiAJCQkJMEY4MzM1QjgxNjM5QzFFQTAwMTQ0M0I1IC8qIEFycmF5QWxsb2NhdGlvblBy
b2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTI5MTg3Q0E1RTYwMDg0M0IxMCAvKiBp
bmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0cy5weSBpbiBIZWFkZXJzICov
LAogCQkJCUE1ODQwRTJCMTg3Q0E3NUIwMDg0M0IxMCAvKiBqc21pbi5weSBpbiBIZWFkZXJzICov
LAotCQkJCUE1MzI0Mzk4MTg1NkE0ODkwMDJFRDY5MiAvKiBJbnNwZWN0b3JKUy5qc29uIGluIEhl
YWRlcnMgKi8sCisgCQkJCUE1MzI0Mzk4MTg1NkE0ODkwMDJFRDY5MiAvKiBJbnNwZWN0b3JKUy5q
c29uIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMkExODdDQTc1OTAwODQzQjEwIC8qIHh4ZC5w
bCBpbiBIZWFkZXJzICovLAogCQkJCUZFQTA4NjIwMTgyQjdBMDQwMEY2RDg1MSAvKiBCcmVha3Bv
aW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0E4QUYzNTE3QURCNUYzMDA1QUIxNzQgLyogQXJy
YXlCdWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNDYyNCw2ICs0NjkwLDcgQEAKIAkJCQlDMkVB
QTNGQTE0OUE4MzVFMDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUMyQzhEMDJEMTRBM0M2RTAwMDU3OEU2NSAvKiBDb3BpZWRTcGFjZUlubGluZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNUE1MkQwMTdBREQ3MTcwMDhFQ0IyRCAvKiBDb3B5VG9rZW4uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNkIxQ0M2MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZv
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjIzOUQxODE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZp
c2l0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyMjM5RDE5MTYyNjJCREQwMDVBQzVGRCAvKiBD
b3B5VmlzaXRvcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyMThEMTQwMTY1NUNGRDUw
MDYyQkI4MSAvKiBDb3B5V29ya0xpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtNDY2NSw3ICs0NzMy
LDggQEAKIAkJCQkwRjgzNjRCNzE2NEIwQzExMDA1MzMyOUEgLyogREZHQnJhbmNoRGlyZWN0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUEwMDlDMDE4MzFBMjJEMDBDRjg3MTEgLyogTWFjcm9B
c3NlbWJsZXJBUk02NC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlEQzUxMzI4REY4MjAwMkIy
QUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTkzQ0Y4NzE4
NDAzOENBMDBCRkNFMjcgLyogSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY0ODUzMjgxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5Lmgg
aW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICBBNTkzQ0Y4NzE4NDAzOENBMDBCRkNFMjcg
LyogSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNTZDMzYx
NjI3QjBBRDAwN0YyNzgzIC8qIERGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdCMjk0QjE0QzNDRDJGMDA3QzNEQjEgLyogREZHQ2Fw
YWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZGQzk1ODE0RUY5MEEyMDBDNzI1MzIg
LyogREZHQ0ZBUGhhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtNDY5OSw2ICs0NzY3LDcgQEAKIAkJ
CQkwRkJDMEFFODE0OTZDN0M3MDBENEZCREQgLyogREZHRXhpdFByb2ZpbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3OEE5Nzc1MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGYWlsZWRGaW5hbGl6ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3OEE5Nzc3MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGaW5h
bGl6ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0I2MTg1RkM5RTkwMDg0NUQ5NyAvKiBG
VExKU0NhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzE2MTUxQzVENEYwMENEODkxMCAv
KiBERkdGaXh1cFBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlEMzM5NzE3RkZDNEU2MDA3
M0MyQkMgLyogREZHRmx1c2hlZEF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4OUNGODE3QTBC
OENDMDA3NzNBRDggLyogREZHRmx1c2hGb3JtYXQuaCBpbiBIZWFkZXJzICovLApAQCAtNDczNSw2
ICs0ODA0LDcgQEAKIAkJCQkwRkQ4QTMyNjE3RDUxRjU3MDBDQTJDNDAgLyogREZHT1NSRW50cnlw
b2ludENyZWF0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzA5NzZBMTQ2OEE2Rjcw
MENGMjQ0MiAvKiBERkdPU1JFeGl0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZDOTlEMTE4NEVD
OEFEMDA5QzEwQUIgLyogQ29uc3RhbnRNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNC
QTE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjIzNUJFQzE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NSRXhpdEJhc2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1QkExNUVEMTgyMzQwQjQwMEE4MkU2OSAvKiBSZW1vdGVJbnNw
ZWN0b3JYUENDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZCOTIxQzE2RDAyRjEx
MDA1NUE1REIgLyogREZHT1NSRXhpdENvbXBpbGF0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8sCkBA
IC00ODAzLDYgKzQ4NzMsNyBAQAogCQkJCTBGRUEwQTFGMTcwOEIwMDcwMEJCNzIyQyAvKiBGVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTk0NTU5MzE4MjQ3
NDQ3MDBDQzM4NDMgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVBMEEwQTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJpbGl0aWVzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjQ4NTMyQTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNv
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTIzMTcwOTYwNjkwMEJCNzIyQyAvKiBGVExD
b21tb25WYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBDMTcwNTEzREIwMEJCNzIy
QyAvKiBGVExDb21waWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjIzNUJENDE3MTc4RTFDMDA2
OTBDN0YgLyogRlRMRXhpdEFyZ3VtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTQ4MTksNiArNDg5
MCw3IEBACiAJCQkJMEZFQTBBMjQxNzA5NjA2OTAwQkI3MjJDIC8qIEZUTEludHJpbnNpY1JlcG9z
aXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBFMTcwNTEzREIwMEJCNzIyQyAvKiBG
VExKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc4MTE3OTczOEQ1MDA5REY3NDQg
LyogRlRMSklURmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVBNjI4NDE4OEM5OEQ0
MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RjJCOTYx
NzJFMDRBMzAwN0RCREE1IC8qIEZUTExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQ0VGQUUw
MTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
QTBBMTAxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTExvd2VyREZHVG9MTFZNLmggaW4gSGVhZGVycyAq
LywKQEAgLTQ5MDEsNiArNDk3Myw3IEBACiAJCQkJMEZDMjBDQjYxODUyRTJDNjAwQzlFOTU0IC8q
IERGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjE0RTFG
MTgxMjRBQ0UwMDlCNkI0RCAvKiBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODZDQzg1QTEwRUU3OUE0NzAwMjg4NjgyIC8qIEpJVElubGluZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNkIxQ0JFMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZh
dGlvbldyYXBwZXJHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTREMTdFRTI3
NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzkwREQ3
MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbldyYXBwZXJzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTQ5MTYsNiArNDk4OSw3IEBACiAJCQkJMEZDNzEyRTMxN0NEODc5MzAwOEND
OTNDIC8qIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzZGNTRBMzEzQjI4QUFCMDBFRjJCQ0UgLyogSklUV3JpdGVCYXJyaWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzE4QzQxNjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNBY3RpdmF0aW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNCOTE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlD
aGVja01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0MDQ4MDEzMTAyMUExRDkwMDhFN0YwMSAv
KiBKU0FQSVZhbHVlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzJDRjM5QzIxNkUxNUE4
MTAwREQ2OUJFIC8qIEpTQVBJV3JhcHBlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc2
MTQwRDIxODI5ODJDQjAwNzUwNjI0IC8qIEpTQXJndW1lbnRzSXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovLApAQCAtNDk2OSw2ICs1MDQzLDggQEAKIAkJCQlCQzE4QzQyMzBFMTZGNUNEMDBCMzQ0NjAg
LyogSlNMb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjVENzA5QzE2REU5OUY0MDBGQ0E2QkMg
LyogSlNNYW5hZ2VkVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzQyMTdDQkU4RUIw
MEMzRTY0MyAvKiBKU01hcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzQUM3NTQxODhFNUVDODAw
MzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNDNDE4
NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTQ4NzRBRTQxNUVCREU0QTAwMkUzNTg3IC8qIEpTTmFtZVNjb3BlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzQyNDBFMTZGNUNEMDBCMzQ0NjAgLyogSlNPYmplY3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDI1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU09iamVjdFJlZi5oIGluIEhl
YWRlcnMgKi8sCkBAIC01MjczLDYgKzUzNDksNyBAQAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFE
NjQ5RiAvKiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MTUzOUI5MTJEQzk5
NDUwMEVGN0FDNCAvKiBZYXJyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY2NkVDRDE4MzZCMzdF
MDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjZCMUNDQTE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg1MTJEQkEzMzcwMEE5RkU3QiAv
KiBZYXJySW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NUQ5M0E2MTg1MDEyQTgw
MDQwMERFRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0
Qjg3MTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJySklULmggaW4gSGVhZGVycyAqLywKQEAgLTU3MTYs
NiArNTc5Myw3IEBACiAJCQkJMTQyOUQ4REQwRUQyMjA1QjAwQjg5NjE5IC8qIENhbGxGcmFtZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBCODNCMDE0QkNGNzE2MDA4ODVCNEYgLyogQ2FsbExp
bmtJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1MTNFNUI3MTg1QjhCRDMwMDdFOTVBRCAv
KiBJbmplY3RlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjVBNjI4MzE4OEM5OEQ0
MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkzMzI5
RDE0Q0E3REMzMDA4NUYzQzYgLyogQ2FsbExpbmtTdGF0dXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEY3M0Q3QUUxNjVBMTQyRDAwQUNBQjcxIC8qIENsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTY5QTA3OTYwRUQxRDNBRTAwRjFGNjgxIC8qIENvZGVCbG9j
ay5jcHAgaW4gU291cmNlcyAqLywKQEAgLTU3NTQsNiArNTgzMiw3IEBACiAJCQkJMEY2Mzk0ODQx
NUU0ODExODAwNkE1OTdDIC8qIERGR0FycmF5TW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
N0Q5QTI5NDE3QTBCQzc0MDBFRTI2MTggLyogREZHQXRUYWlsQWJzdHJhY3RTdGF0ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjcxNENBNDE2RUE5MkYwMDBGM0VCRUIgLyogREZHQmFja3dhcmRz
UHJvcGFnYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRUI1OEMxNDE4N0I4QjE2
MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
RDg5Q0YyMTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCYXNpY0Jsb2NrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE3MEIwODMyMTdBMEI3OUIwMERBRjE0QiAvKiBERkdCaW5hcnlTd2l0Y2guY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRjMxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5z
ZXJ0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTgzMSw5ICs1OTEwLDExIEBACiAJCQkJ
ODY4ODBGNEQxNDM1M0IyMTAwQjA4RDQyIC8qIERGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTdEODlDRkYxN0EwQjhDQzAwNzczQUQ4IC8qIERGR1NTQUNvbnZlcnNp
b25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlGQjRGNDE3RkNCOTE3MDBDQjY3Rjgg
LyogREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZCMUNCRDE4
NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5N0ExMTQ2QjI4Q0EwMENGMjQ0MiAvKiBERkdUaHVu
a3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEOEEzMjcxN0Q1MUY1NzAwQ0EyQzQwIC8qIERG
R1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEOEEz
MjkxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNDg1MzI3MTg3REZERUMwMDgzQjY4NyAvKiBGVExB
dmFpbGFibGVSZWNvdmVyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyQjE3RDUxRjU3
MDBDQTJDNDAgLyogREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYzOTQ0MDE1Qzc1RjFEMDA2QTU5N0MgLyogREZH
VHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkJFMEY3NjE2
QzFEQjBGMDA4MkM1RTggLyogREZHVW5pZmljYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTU4OTIsOSArNTk3MywxMSBAQAogCQkJCTBGQ0VGQUFCMTgwNEMxM0UwMDQ3MkNFNCAvKiBG
VExTYXZlUmVzdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI1RjFCMTE4MTYzNUYzMDA1
MjJGMzkgLyogRlRMU2xvd1BhdGhDYWxsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjVGMUIz
MTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0aENhbGxLZXkuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMEY2QjFDQzUxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY5RDMzOUExODAzQURCNzAwNzNDMkJDIC8qIEZUTFN0YWNrTWFwcy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBMEExNjE3MDZCQjkwMDBCQjcyMkMgLyogRlRMU3Rh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJN0MwMDhDRDIxODZGOEE5MzAwOTU1QzI0IC8qIEpT
UHJvbWlzZUZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKyAJCQkJN0MwMDhDRDIxODZGOEE5
MzAwOTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RjZCMUNCNTE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMjM1QkUxMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExUaHVua3MuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTU5M0NGN0MxODQwMzYwMzAwQkZDRTI3IC8qIEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjM1QkUzMTcxNzhFMUMwMDY5MEM3RiAv
KiBGVExWYWx1ZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTU5ODAsNiArNjA2Myw3IEBA
CiAJCQkJMTQyODA4NzUxMDdFQzEzRTAwMTNFN0IyIC8qIEpTTG9jay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDMjVENzA5QjE2REU5OUY0MDBGQ0E2QkMgLyogSlNNYW5hZ2VkVmFsdWUubW0gaW4g
U291cmNlcyAqLywKIAkJCQlBNzAwODc0MTE3Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY0ODUzMjkxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5
T3Bjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0ODc0QUUzMTVFQkRFNEEwMDJFMzU4NyAv
KiBKU05hbWVTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzI3MDA5MDBEQUM2QkJDMDBF
NTQ4RDcgLyogSlNOb3RBbk9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlENDEw
N0VDMzc2MDA0MjdBNDggLyogSlNPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02MDk2LDYg
KzYxODAsNyBAQAogCQkJCTBGNjY2RUNDMTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rp
b25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCMTA1OEIxNjc1
NDgzMTAwRjhBQjZFIC8qIFByb2ZpbGVyT1NSRXhpdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkIxMDU4RDE2NzU0ODM3MDBGOEFCNkUgLyogUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRjZCMUNDMzE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9m
ZnNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjEzOTEyQjE2NzcxQzNBMDA5Q0NCMDcgLyog
UHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0ZCNjBB
NDEwM0Y3REMyMDAxN0EyODYgLyogUHJvcGVydHlEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0NDY5REU3MTA3RUM3RTcwMDY1MDQ0NiAvKiBQcm9wZXJ0eU5hbWVBcnJheS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTYxMjUsNiArNjIxMCw3IEBACiAJCQkJMEY4RjJCOUUxNzMwNkM4
RDAwN0RCREE1IC8qIFNvdXJjZUNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0OTNBRkEx
NkQwQ0FEMzAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUU0OURDMTZCMTJFRjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTBGNkIxQ0M5MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBDRDRDNDE1RjZCNkJCMDAz
MkYxQzAgLyogU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU1
NDFCMTE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZEODJFODYxNDFGM0ZGMTAwMTc5Qzk0IC8qIFNwZWN1bGF0ZWRUeXBlLmNwcCBpbiBT
b3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFz
c2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QVJNNjRBc3NlbWJsZXIuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNCAr
NDAsMjYgQEAKICNkZWZpbmUgREFUQVNJWkUgREFUQVNJWkVfT0YoZGF0YXNpemUpCiAjZGVmaW5l
IE1FTU9QU0laRSBNRU1PUFNJWkVfT0YoZGF0YXNpemUpCiAjZGVmaW5lIENIRUNLX0ZQX01FTU9Q
X0RBVEFTSVpFKCkgQVNTRVJUKGRhdGFzaXplID09IDggfHwgZGF0YXNpemUgPT0gMTYgfHwgZGF0
YXNpemUgPT0gMzIgfHwgZGF0YXNpemUgPT0gNjQgfHwgZGF0YXNpemUgPT0gMTI4KQorI2RlZmlu
ZSBNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSkgKChkYXRhc2l6ZSA9PSA2NCkgPyBNZW1QYWly
T3BfNjQgOiBNZW1QYWlyT3BfMzIpCisjZGVmaW5lIE1FTVBBSVJPUFNJWkVfRlAoZGF0YXNpemUp
ICgoZGF0YXNpemUgPT0gMTI4KSA/IE1lbVBhaXJPcF9WMTI4IDogKGRhdGFzaXplID09IDY0KSA/
IE1lbVBhaXJPcF9WNjQgOiBNZW1QYWlyT3BfMzIpCiAKIG5hbWVzcGFjZSBKU0MgewogCitBTFdB
WVNfSU5MSU5FIGJvb2wgaXNJbnQ3KGludDMyX3QgdmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVl
ID09ICgodmFsdWUgPDwgMjUpID4+IDI1KTsKK30KKwogQUxXQVlTX0lOTElORSBib29sIGlzSW50
OShpbnQzMl90IHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDIzKSA+
PiAyMyk7CiB9CiAKK0FMV0FZU19JTkxJTkUgYm9vbCBpc0ludDExKGludDMyX3QgdmFsdWUpCit7
CisgICAgcmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMjEpID4+IDIxKTsKK30KKwogQUxXQVlT
X0lOTElORSBib29sIGlzVUludDUoaW50MzJfdCB2YWx1ZSkKIHsKICAgICByZXR1cm4gISh2YWx1
ZSAmIH4weDFmKTsKQEAgLTExOSw2ICsxMzEsMzQgQEAgcHJpdmF0ZToKICAgICBpbnQgbV92YWx1
ZTsKIH07CiAKK2NsYXNzIFBhaXJQb3N0SW5kZXggeworcHVibGljOgorICAgIGV4cGxpY2l0IFBh
aXJQb3N0SW5kZXgoaW50IHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUpCisgICAgewor
ICAgICAgICBBU1NFUlQoaXNJbnQxMSh2YWx1ZSkpOworICAgIH0KKworICAgIG9wZXJhdG9yIGlu
dCgpIHsgcmV0dXJuIG1fdmFsdWU7IH0KKworcHJpdmF0ZToKKyAgICBpbnQgbV92YWx1ZTsKK307
CisKK2NsYXNzIFBhaXJQcmVJbmRleCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGFpclByZUlu
ZGV4KGludCB2YWx1ZSkKKyAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzSW50MTEodmFsdWUpKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBpbnQoKSB7IHJl
dHVybiBtX3ZhbHVlOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fdmFsdWU7Cit9OworCiBjbGFz
cyBMb2dpY2FsSW1tZWRpYXRlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTG9naWNhbEltbWVkaWF0
ZSBjcmVhdGUzMih1aW50MzJfdCB2YWx1ZSkKQEAgLTgyMyw2ICs4NjMsMTYgQEAgcHJpdmF0ZToK
ICAgICAgICAgTWVtT3BfTE9BRF9zaWduZWQzMiA9IDMgLy8gc2l6ZSBtYXkgYmUgMCBvciAxCiAg
ICAgfTsKIAorICAgIGVudW0gTWVtUGFpck9wU2l6ZSB7CisgICAgICAgIE1lbVBhaXJPcF8zMiA9
IDAsCisgICAgICAgIE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyID0gMSwKKyAgICAgICAgTWVtUGFp
ck9wXzY0ID0gMiwKKworICAgICAgICBNZW1QYWlyT3BfVjMyID0gTWVtUGFpck9wXzMyLAorICAg
ICAgICBNZW1QYWlyT3BfVjY0ID0gMSwKKyAgICAgICAgTWVtUGFpck9wX1YxMjggPSAyCisgICAg
fTsKKwogICAgIGVudW0gTW92ZVdpZGVPcCB7CiAgICAgICAgIE1vdmVXaWRlT3BfTiA9IDAsCiAg
ICAgICAgIE1vdmVXaWRlT3BfWiA9IDIsCkBAIC04MzYsNiArODg2LDE0IEBAIHByaXZhdGU6CiAg
ICAgICAgIExkckxpdGVyYWxPcF8xMjhCSVQgPSAyCiAgICAgfTsKIAorICAgIHN0YXRpYyB1bnNp
Z25lZCBtZW1QYWlyT2Zmc2V0U2hpZnQoYm9vbCBWLCBNZW1QYWlyT3BTaXplIHNpemUpCisgICAg
eworICAgICAgICAvLyByZXR1cm4gdGhlIGxvZzIgb2YgdGhlIHNpemUgaW4gYnl0ZXMsIGUuZy4g
NjQgYml0IHNpemUgcmV0dXJucyAzCisgICAgICAgIGlmIChWKQorICAgICAgICAgICAgcmV0dXJu
IHNpemUgKyAyOworICAgICAgICByZXR1cm4gKHNpemUgPj4gMSkgKyAyOworICAgIH0KKwogcHVi
bGljOgogICAgIC8vIEludGVnZXIgSW5zdHJ1Y3Rpb25zOgogCkBAIC04NzEsOCArOTI5LDkgQEAg
cHVibGljOgogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhZGQoUmVnaXN0ZXJJRCByZCwgUmVnaXN0
ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSwgU2hpZnRUeXBlIHNoaWZ0LCBpbnQgYW1vdW50KQogICAg
IHsKICAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKLSAgICAgICAgaWYgKGlzU3Aocm4pKSB7Cisg
ICAgICAgIGlmIChpc1NwKHJkKSB8fCBpc1NwKHJuKSkgewogICAgICAgICAgICAgQVNTRVJUKHNo
aWZ0ID09IExTTCk7CisgICAgICAgICAgICBBU1NFUlQoIWlzU3Aocm0pKTsKICAgICAgICAgICAg
IGFkZDxkYXRhc2l6ZSwgc2V0RmxhZ3M+KHJkLCBybiwgcm0sIFVYVFgsIGFtb3VudCk7CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgaW5zbihhZGRTdWJ0cmFjdFNoaWZ0ZWRSZWdpc3RlcihE
QVRBU0laRSwgQWRkT3BfQURELCBzZXRGbGFncywgc2hpZnQsIHJtLCBhbW91bnQsIHJuLCByZCkp
OwpAQCAtMTIxNiw2ICsxMjc1LDIwIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxp
bnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGxkcChSZWdpc3RlcklEIHJ0LCBS
ZWdpc3RlcklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwgUGFpclBvc3RJbmRleCBzaW1tKQorICAgIHsK
KyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3Rl
clBhaXJQb3N0SW5kZXgoTUVNUEFJUk9QU0laRV9JTlQoZGF0YXNpemUpLCBmYWxzZSwgTWVtT3Bf
TE9BRCwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0
YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGxkcChSZWdpc3RlcklEIHJ0LCBSZWdpc3Rl
cklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwgUGFpclByZUluZGV4IHNpbW0pCisgICAgeworICAgICAg
ICBDSEVDS19EQVRBU0laRSgpOworICAgICAgICBpbnNuKGxvYWRTdG9yZVJlZ2lzdGVyUGFpclBy
ZUluZGV4KE1FTVBBSVJPUFNJWkVfSU5UKGRhdGFzaXplKSwgZmFsc2UsIE1lbU9wX0xPQUQsIHNp
bW0sIHJuLCBydCwgcnQyKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgog
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBsZHIoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwg
UmVnaXN0ZXJJRCBybSkKICAgICB7CiAgICAgICAgIGxkcjxkYXRhc2l6ZT4ocnQsIHJuLCBybSwg
VVhUWCwgMCk7CkBAIC0xNzQ4LDYgKzE4MjEsMjAgQEAgcHVibGljOgogICAgIH0KIAogICAgIHRl
bXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3RwKFJlZ2lzdGVy
SUQgcnQsIFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBQYWlyUG9zdEluZGV4IHNpbW0p
CisgICAgeworICAgICAgICBDSEVDS19EQVRBU0laRSgpOworICAgICAgICBpbnNuKGxvYWRTdG9y
ZVJlZ2lzdGVyUGFpclBvc3RJbmRleChNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6ZSksIGZhbHNl
LCBNZW1PcF9TVE9SRSwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxpbnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIHN0cChSZWdpc3RlcklEIHJ0
LCBSZWdpc3RlcklEIHJ0MiwgUmVnaXN0ZXJJRCBybiwgUGFpclByZUluZGV4IHNpbW0pCisgICAg
eworICAgICAgICBDSEVDS19EQVRBU0laRSgpOworICAgICAgICBpbnNuKGxvYWRTdG9yZVJlZ2lz
dGVyUGFpclByZUluZGV4KE1FTVBBSVJPUFNJWkVfSU5UKGRhdGFzaXplKSwgZmFsc2UsIE1lbU9w
X1NUT1JFLCBzaW1tLCBybiwgcnQsIHJ0MikpOworICAgIH0KKworICAgIHRlbXBsYXRlPGludCBk
YXRhc2l6ZT4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3RyKFJlZ2lzdGVySUQgcnQsIFJlZ2lz
dGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAgICBzdHI8ZGF0YXNpemU+KHJ0
LCBybiwgcm0sIFVYVFgsIDApOwpAQCAtMTg3Niw4ICsxOTYzLDkgQEAgcHVibGljOgogICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBzdWIoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0
ZXJJRCBybSwgU2hpZnRUeXBlIHNoaWZ0LCBpbnQgYW1vdW50KQogICAgIHsKICAgICAgICAgQ0hF
Q0tfREFUQVNJWkUoKTsKLSAgICAgICAgaWYgKGlzU3Aocm4pKSB7CisgICAgICAgIGlmIChpc1Nw
KHJkKSB8fCBpc1NwKHJuKSkgewogICAgICAgICAgICAgQVNTRVJUKHNoaWZ0ID09IExTTCk7Cisg
ICAgICAgICAgICBBU1NFUlQoIWlzU3Aocm0pKTsKICAgICAgICAgICAgIHN1YjxkYXRhc2l6ZSwg
c2V0RmxhZ3M+KHJkLCBybiwgcm0sIFVYVFgsIGFtb3VudCk7CiAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgaW5zbihhZGRTdWJ0cmFjdFNoaWZ0ZWRSZWdpc3RlcihEQVRBU0laRSwgQWRkT3Bf
U1VCLCBzZXRGbGFncywgc2hpZnQsIHJtLCBhbW91bnQsIHJuLCByZCkpOwpAQCAtMzM2MSw2ICsz
NDQ5LDIzIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8gJ1YnIG1lYW5zIHZlY3RvcgorICAg
IEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgo
TWVtUGFpck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGltbWVkaWF0ZSwgUmVn
aXN0ZXJJRCBybiwgRlBSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKHNpemUgPCAzKTsKKyAgICAgICAgQVNTRVJUKG9wYyA9PSAob3BjICYgMSkp
OyAvLyBPbmx5IGxvYWQgb3Igc3RvcmUsIGxvYWQgc2lnbmVkIDY0IGlzIGhhbmRsZWQgdmlhIHNp
emUuCisgICAgICAgIEFTU0VSVChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMy
KSB8fCAob3BjID09IE1lbU9wX0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9y
ZSBzaWduZWQuCisgICAgICAgIHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zm
c2V0U2hpZnQoViwgc2l6ZSk7CisgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+IGltbWVk
U2hpZnRBbW91bnQ7CisgICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9
PSBpbW1lZGlhdGUgJiYgaXNJbnQ3KGltbTcpKTsKKyAgICAgICAgcmV0dXJuICgweDI4ODAwMDAw
IHwgc2l6ZSA8PCAzMCB8IFYgPDwgMjYgfCBvcGMgPDwgMjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1
IHwgcnQyIDw8IDEwIHwgeE9yU3Aocm4pIDw8IDUgfCBydCk7CisgICAgfQorCisgICAgQUxXQVlT
X0lOTElORSBzdGF0aWMgaW50IGxvYWRTdG9yZVJlZ2lzdGVyUGFpclBvc3RJbmRleChNZW1QYWly
T3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3BjLCBpbnQgaW1tZWRpYXRlLCBSZWdpc3RlcklE
IHJuLCBSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0MikKKyAgICB7CisgICAgICAgIHJldHVy
biBsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoc2l6ZSwgViwgb3BjLCBpbW1lZGlhdGUs
IHJuLCB4T3JackFzRlBSKHJ0KSwgeE9yWnJBc0ZQUihydDIpKTsKKyAgICB9CisKKyAgICAvLyAn
VicgbWVhbnMgdmVjdG9yCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgaW50IGxvYWRTdG9yZVJl
Z2lzdGVyUHJlSW5kZXgoTWVtT3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3BjLCBpbnQgaW1t
OSwgUmVnaXN0ZXJJRCBybiwgRlBSZWdpc3RlcklEIHJ0KQogICAgIHsKICAgICAgICAgQVNTRVJU
KCEoc2l6ZSAmJiBWICYmIChvcGMgJiAyKSkpOyAvLyBNYXhpbXVtIHZlY3RvciBzaXplIGlzIDEy
OCBiaXRzLgpAQCAtMzM3NSw2ICszNDgwLDIzIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8g
J1YnIG1lYW5zIHZlY3RvcgorICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2FkU3RvcmVS
ZWdpc3RlclBhaXJQcmVJbmRleChNZW1QYWlyT3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3Bj
LCBpbnQgaW1tZWRpYXRlLCBSZWdpc3RlcklEIHJuLCBGUFJlZ2lzdGVySUQgcnQsIEZQUmVnaXN0
ZXJJRCBydDIpCisgICAgeworICAgICAgICBBU1NFUlQoc2l6ZSA8IDMpOworICAgICAgICBBU1NF
UlQob3BjID09IChvcGMgJiAxKSk7IC8vIE9ubHkgbG9hZCBvciBzdG9yZSwgbG9hZCBzaWduZWQg
NjQgaXMgaGFuZGxlZCB2aWEgc2l6ZS4KKyAgICAgICAgQVNTRVJUKFYgfHwgKHNpemUgIT0gTWVt
UGFpck9wX0xvYWRTaWduZWRfMzIpIHx8IChvcGMgPT0gTWVtT3BfTE9BRCkpOyAvLyBUaGVyZSBp
c24ndCBhbiBpbnRlZ2VyIHN0b3JlIHNpZ25lZC4KKyAgICAgICAgdW5zaWduZWQgaW1tZWRTaGlm
dEFtb3VudCA9IG1lbVBhaXJPZmZzZXRTaGlmdChWLCBzaXplKTsKKyAgICAgICAgaW50IGltbTcg
PSBpbW1lZGlhdGUgPj4gaW1tZWRTaGlmdEFtb3VudDsKKyAgICAgICAgQVNTRVJUKChpbW03IDw8
IGltbWVkU2hpZnRBbW91bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDcoaW1tNykpOworICAgICAg
ICByZXR1cm4gKDB4Mjk4MDAwMDAgfCBzaXplIDw8IDMwIHwgViA8PCAyNiB8IG9wYyA8PCAyMiB8
IChpbW03ICYgMHg3ZikgPDwgMTUgfCBydDIgPDwgMTAgfCB4T3JTcChybikgPDwgNSB8IHJ0KTsK
KyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJQ
YWlyUHJlSW5kZXgoTWVtUGFpck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGlt
bWVkaWF0ZSwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIpCisg
ICAgeworICAgICAgICByZXR1cm4gbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoc2l6ZSwg
Viwgb3BjLCBpbW1lZGlhdGUsIHJuLCB4T3JackFzRlBSKHJ0KSwgeE9yWnJBc0ZQUihydDIpKTsK
KyAgICB9CisKKyAgICAvLyAnVicgbWVhbnMgdmVjdG9yCiAgICAgLy8gJ1MnIG1lYW5zIHNoaWZ0
IHJtCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgaW50IGxvYWRTdG9yZVJlZ2lzdGVyUmVnaXN0
ZXJPZmZzZXQoTWVtT3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3BjLCBSZWdpc3RlcklEIHJt
LCBFeHRlbmRUeXBlIG9wdGlvbiwgYm9vbCBTLCBSZWdpc3RlcklEIHJuLCBGUFJlZ2lzdGVySUQg
cnQpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QVJNdjdBc3NlbWJsZXIuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02NTQsNiAr
NjU0LDggQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIGVudW0gewogICAgICAgICBPUF9CX1QxICAg
ICAgICAgPSAweEQwMDAsCiAgICAgICAgIE9QX0JfVDIgICAgICAgICA9IDB4RTAwMCwKKyAgICAg
ICAgT1BfUE9QX1QyICAgICAgID0gMHhFOEJELAorICAgICAgICBPUF9QVVNIX1QyICAgICAgPSAw
eEU5MkQsCiAgICAgICAgIE9QX0FORF9yZWdfVDIgICA9IDB4RUEwMCwKICAgICAgICAgT1BfVFNU
X3JlZ19UMiAgID0gMHhFQTEwLAogICAgICAgICBPUF9PUlJfcmVnX1QyICAgPSAweEVBNDAsCkBA
IC04OTQsNiArODk2LDExIEBAIHB1YmxpYzoKICAgICAvLyBOT1RFOiBJbiBhbiBJVCBibG9jaywg
YWRkIGRvZXNuJ3QgbW9kaWZ5IHRoZSBmbGFncyByZWdpc3Rlci4KICAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgYWRkKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAg
ICAgeworICAgICAgICBpZiAocmQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgeworICAgICAgICAgICAg
bW92KHJkLCBybik7CisgICAgICAgICAgICBybiA9IHJkOworICAgICAgICB9CisKICAgICAgICAg
aWYgKHJkID09IHJuKQogICAgICAgICAgICAgbV9mb3JtYXR0ZXIub25lV29yZE9wOFJlZ1JlZzE0
MyhPUF9BRERfcmVnX1QyLCBybSwgcmQpOwogICAgICAgICBlbHNlIGlmIChyZCA9PSBybSkKQEAg
LTE0ODgsNiArMTQ5NSwyMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRP
cDEyUmVnNEZvdXJGb3VycyhPUF9ST1JfcmVnX1QyLCBybiwgRm91ckZvdXJzKDB4ZiwgcmQsIDAs
IHJtKSk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHBvcCh1aW50MzJfdCByZWdp
c3Rlckxpc3QpCisgICAgeworICAgICAgICBBU1NFUlQoV1RGOjpiaXRDb3VudChyZWdpc3Rlckxp
c3QpID4gMSk7CisgICAgICAgIEFTU0VSVCghKCgxIDw8IEFSTVJlZ2lzdGVyczo6cGMpICYgcmVn
aXN0ZXJMaXN0KSB8fCAhKCgxIDw8IEFSTVJlZ2lzdGVyczo6bHIpICYgcmVnaXN0ZXJMaXN0KSk7
CisgICAgICAgIEFTU0VSVCghKCgxIDw8IEFSTVJlZ2lzdGVyczo6c3ApICYgcmVnaXN0ZXJMaXN0
KSk7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDE2SW1tMTYoT1BfUE9QX1QyLCByZWdp
c3Rlckxpc3QpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwdXNoKHVpbnQzMl90
IHJlZ2lzdGVyTGlzdCkKKyAgICB7CisgICAgICAgIEFTU0VSVChXVEY6OmJpdENvdW50KHJlZ2lz
dGVyTGlzdCkgPiAxKTsKKyAgICAgICAgQVNTRVJUKCEoKDEgPDwgQVJNUmVnaXN0ZXJzOjpwYykg
JiByZWdpc3Rlckxpc3QpKTsKKyAgICAgICAgQVNTRVJUKCEoKDEgPDwgQVJNUmVnaXN0ZXJzOjpz
cCkgJiByZWdpc3Rlckxpc3QpKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTZJbW0x
NihPUF9QVVNIX1QyLCByZWdpc3Rlckxpc3QpOworICAgIH0KKwogI2lmIENQVShBUFBMRV9BUk1W
N1MpCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNkaXYoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJ
RCBybiwgUmVnaXN0ZXJJRCBybSkKICAgICB7CkBAIC0yNzkxLDYgKzI4MTQsMTIgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIG1fYnVmZmVyLnB1dFNob3J0KG9wMik7CiAgICAgICAgIH0KIAorICAg
ICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdHdvV29yZE9wMTZJbW0xNihPcGNvZGVJRDEgb3AxLCB1
aW50MTZfdCBpbW0pCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fYnVmZmVyLnB1dFNob3J0KG9w
MSk7CisgICAgICAgICAgICBtX2J1ZmZlci5wdXRTaG9ydChpbW0pOworICAgICAgICB9CisgICAg
ICAgIAogICAgICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdHdvV29yZE9wNWk2SW1tNFJlZzRFbmNv
ZGVkSW1tKE9wY29kZUlEMSBvcCwgaW50IGltbTQsIFJlZ2lzdGVySUQgcmQsIEFSTVRodW1iSW1t
ZWRpYXRlIGltbSkKICAgICAgICAgewogICAgICAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgbmV3
SW1tID0gaW1tOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFj
dE1hY3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAgICAgICB7CiAgICAg
ICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlLCBvZmZzZXQgKyBhZGRpdGlvbmFsT2Zmc2V0KTsK
ICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBSZWdpc3RlcklEIGJhc2U7CiAgICAgICAg
IGludDMyX3Qgb2Zmc2V0OwogICAgIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0xpbmtCdWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI4LDEyICsyOCwyMSBAQAogCiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKIAorI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJPcHRp
b25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25UaHJlYWQu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK2Jvb2wgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5Rm9yKENv
ZGVCbG9jayogY29kZUJsb2NrKQoreworICAgIGlmIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQo
Y29kZUJsb2NrLT5qaXRUeXBlKCkpICYmIE9wdGlvbnM6OnNob3dERkdEaXNhc3NlbWJseSgpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5
KCk7Cit9CisKIExpbmtCdWZmZXI6OkNvZGVSZWYgTGlua0J1ZmZlcjo6ZmluYWxpemVDb2RlV2l0
aG91dERpc2Fzc2VtYmx5KCkKIHsKICAgICBwZXJmb3JtRmluYWxpemF0aW9uKCk7CkBAIC00Nyw4
ICs1Niw2IEBAIExpbmtCdWZmZXI6OkNvZGVSZWYgTGlua0J1ZmZlcjo6ZmluYWxpemUKIAogTGlu
a0J1ZmZlcjo6Q29kZVJlZiBMaW5rQnVmZmVyOjpmaW5hbGl6ZUNvZGVXaXRoRGlzYXNzZW1ibHko
Y29uc3QgY2hhciogZm9ybWF0LCAuLi4pCiB7Ci0gICAgQVNTRVJUKE9wdGlvbnM6OnNob3dEaXNh
c3NlbWJseSgpIHx8IE9wdGlvbnM6OnNob3dERkdEaXNhc3NlbWJseSgpKTsKLSAgICAKICAgICBD
b2RlUmVmIHJlc3VsdCA9IGZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpOwogCiAjaWYg
RU5BQkxFKERJU0FTU0VNQkxFUikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTGlua0J1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTGlua0J1ZmZlci5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTIsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDEy
LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDMsNiArNDMsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAorY2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgVk07CiAKIC8vIExpbmtCdWZmZXI6CkBAIC0xNjQs
NiArMTY1LDExIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSB1
c2VkIHRvIG9idGFpbiBoYW5kbGVzIHRvIGFsbG93IHRoZSBjb2RlIHRvIGJlIHJlbGlua2VkIC8g
cmVwYXRjaGVkIGxhdGVyLgorICAgIAorICAgIENvZGVMb2NhdGlvbkxhYmVsIGVudHJ5cG9pbnQo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIENvZGVMb2NhdGlvbkxhYmVsKGNvZGUoKSk7CisgICAg
fQogCiAgICAgQ29kZUxvY2F0aW9uQ2FsbCBsb2NhdGlvbk9mKENhbGwgY2FsbCkKICAgICB7CkBA
IC0zMDMsNiArMzA5LDExIEBAIHByaXZhdGU6CiAgICAgID8gKChsaW5rQnVmZmVyUmVmZXJlbmNl
KS5maW5hbGl6ZUNvZGVXaXRoRGlzYXNzZW1ibHkgZGF0YUxvZ0ZBcmd1bWVudHNGb3JIZWFkaW5n
KSBcCiAgICAgIDogKGxpbmtCdWZmZXJSZWZlcmVuY2UpLmZpbmFsaXplQ29kZVdpdGhvdXREaXNh
c3NlbWJseSgpKQogCitib29sIHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihDb2RlQmxvY2sqKTsK
KworI2RlZmluZSBGSU5BTElaRV9DT0RFX0ZPUihjb2RlQmxvY2ssIGxpbmtCdWZmZXJSZWZlcmVu
Y2UsIGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykgIFwKKyAgICBGSU5BTElaRV9DT0RFX0lG
KHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihjb2RlQmxvY2spLCBsaW5rQnVmZmVyUmVmZXJlbmNl
LCBkYXRhTG9nRkFyZ3VtZW50c0ZvckhlYWRpbmcpCisKIC8vIFVzZSB0aGlzIHRvIGZpbmFsaXpl
IGNvZGUsIGxpa2Ugc286CiAvLwogLy8gQ29kZVJlZiBjb2RlID0gRklOQUxJWkVfQ09ERShsaW5r
QnVmZmVyLCAoIm15IHN1cGVyIHRoaW5neSBudW1iZXIgJWQiLCBudW1iZXIpKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHJl
dmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTk1LDYgKzU5NSwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGltbSksIGFkZHJlc3MpOwogICAgIH0KIAorICAg
IHZvaWQgc3RvcmVQdHIoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Mp
CisgICAgeworICAgICAgICBzdG9yZTMyKGltbSwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9p
ZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgQmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewog
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihpbW0pLCBhZGRyZXNzKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02
NC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNNjQuaAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIwMSwxMCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZDY0KFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7
CisgICAgICAgIGlmIChzcmMgPT0gQVJNNjRSZWdpc3RlcnM6OnNwKQorICAgICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkPDY0PihkZXN0LCBzcmMsIGRlc3QpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7CiAgICAgfQogCiAgICAg
dm9pZCBhZGQ2NChUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCkBAIC0xNDM3LDYg
KzE0NDAsMTYgQEAgcHVibGljOgogICAgICAgICBDUkFTSCgpOwogICAgIH0KIAorICAgIHZvaWQg
cG9wUGFpcihSZWdpc3RlcklEIGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQorICAgIHsKKyAgICAg
ICAgbV9hc3NlbWJsZXIubGRwPDY0PihkZXN0MSwgZGVzdDIsIEFSTTY0UmVnaXN0ZXJzOjpzcCwg
UGFpclBvc3RJbmRleCgxNikpOworICAgIH0KKworICAgIHZvaWQgcHVzaFBhaXIoUmVnaXN0ZXJJ
RCBzcmMxLCBSZWdpc3RlcklEIHNyYzIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5zdHA8
NjQ+KHNyYzEsIHNyYzIsIEFSTTY0UmVnaXN0ZXJzOjpzcCwgUGFpclByZUluZGV4KC0xNikpOwor
ICAgIH0KKwogICAgIHZvaWQgcG9wVG9SZXN0b3JlKFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLmxkcjw2ND4oZGVzdCwgQVJNNjRSZWdpc3RlcnM6OnNwLCBQb3N0
SW5kZXgoMTYpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29ya2luZyBj
b3B5KQpAQCAtMTcwLDYgKzE3MCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGQzMihUcnVzdGVk
SW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAg
ICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VVSW50
MTJPckVuY29kZWRJbW0oaW1tLm1fdmFsdWUpOworCisgICAgICAgIC8vIEZvciBhZGRzIHdpdGgg
c3RhY2sgcG9pbnRlciBkZXN0aW5hdGlvbiwgbW92aW5nIHRoZSBzcmMgZmlyc3QgdG8gc3AgaXMK
KyAgICAgICAgLy8gbmVlZGVkIHRvIGF2b2lkIHVucHJlZGljdGFibGUgaW5zdHJ1Y3Rpb24KKyAg
ICAgICAgaWYgKGRlc3QgPT0gQVJNUmVnaXN0ZXJzOjpzcCAmJiBzcmMgIT0gZGVzdCkgeworICAg
ICAgICAgICAgbW92ZShzcmMsIEFSTVJlZ2lzdGVyczo6c3ApOworICAgICAgICAgICAgc3JjID0g
QVJNUmVnaXN0ZXJzOjpzcDsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxp
ZCgpKQogICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkKGRlc3QsIHNyYywgYXJtSW1tKTsKICAg
ICAgICAgZWxzZSB7CkBAIC0xMTYwLDYgKzExNjgsMTYgQEAgcHVibGljOgogICAgICAgICBwdXNo
KGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAorICAgIHZvaWQgcG9wUGFpcihSZWdpc3RlcklE
IGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucG9w
KDEgPDwgZGVzdDEgfCAxIDw8IGRlc3QyKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBwdXNoUGFp
cihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMikKKyAgICB7CisgICAgICAgIG1fYXNz
ZW1ibGVyLnB1c2goMSA8PCBzcmMxIHwgMSA8PCBzcmMyKTsKKyAgICB9CisgICAgCiAgICAgLy8g
UmVnaXN0ZXIgbW92ZSBvcGVyYXRpb25zOgogICAgIC8vCiAgICAgLy8gTW92ZSB2YWx1ZXMgaW4g
cmVnaXN0ZXJzLgpAQCAtMTI4MSwxMSArMTI5OSwxOSBAQCBwcml2YXRlOgogICAgICAgICAgICAg
bV9hc3NlbWJsZXIudHN0KHJlZywgcmVnKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBB
Uk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJ
bW0oaW1tKTsKLSAgICAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKQotICAgICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIGFybUltbSk7Ci0gICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHJl
ZyA9PSBBUk1SZWdpc3RlcnM6OnNwKSB7CisgICAgICAgICAgICAgICAgICAgIG1vdmUocmVnLCBh
ZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0
KGFkZHJlc3NUZW1wUmVnaXN0ZXIsIGFybUltbSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIGFybUltbSk7CisgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIG1vdmUobWFzaywgZGF0YVRlbXBSZWdpc3Rl
cik7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0KHJlZywgZGF0YVRlbXBSZWdpc3Rl
cik7CisgICAgICAgICAgICAgICAgaWYgKHJlZyA9PSBBUk1SZWdpc3RlcnM6OnNwKSB7CisgICAg
ICAgICAgICAgICAgICAgIG1vdmUocmVnLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0KGFkZHJlc3NUZW1wUmVnaXN0ZXIsIGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBt
X2Fzc2VtYmxlci50c3QocmVnLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkocmV2aXNpb24gMTYyOTYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAko
d29ya2luZyBjb3B5KQpAQCAtMjU0LDYgKzI1NCwxMSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
dm9pZCogdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgCisgICAgdm9pZCBk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CisgICAgeworICAgICAgICBvdXQucHJpbnQoUmF3
UG9pbnRlcihtX3ZhbHVlKSk7CisgICAgfQogCiBwcml2YXRlOgogICAgIHZvaWQqIG1fdmFsdWU7
CkBAIC0zMDksOSArMzE0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkKiBkYXRhTG9jYXRpb24oKSBj
b25zdCB7IEFTU0VSVF9WQUxJRF9DT0RFX1BPSU5URVIobV92YWx1ZSk7IHJldHVybiBtX3ZhbHVl
OyB9CiAjZW5kaWYKIAotICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QKKyAgICB0eXBlZGVmIHZv
aWQqIChNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OipVbnNwZWNpZmllZEJvb2xUeXBlKTsKKyAgICBv
cGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKigpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1
cm4gIW1fdmFsdWU7CisgICAgICAgIHJldHVybiAhIW1fdmFsdWUgPyByZWludGVycHJldF9jYXN0
PFVuc3BlY2lmaWVkQm9vbFR5cGUqPigxKSA6IDA7CiAgICAgfQogICAgIAogICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBNYWNyb0Fzc2VtYmxlckNvZGVQdHImIG90aGVyKSBjb25zdApAQCAtNDM0
LDcgKzQ0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBKU0M6OnRyeVRvRGlzYXNzZW1i
bGUobV9jb2RlUHRyLCBzaXplKCksIHByZWZpeCwgV1RGOjpkYXRhRmlsZSgpKTsKICAgICB9CiAg
ICAgCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9jb2RlUHRyOyB9Cisg
ICAgdHlwZWRlZiB2b2lkKiAoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjoqVW5zcGVjaWZpZWRCb29s
VHlwZSk7CisgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSooKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuICEhbV9jb2RlUHRyID8gcmVpbnRlcnByZXRfY2FzdDxVbnNwZWNpZmll
ZEJvb2xUeXBlKj4oMSkgOiAwOworICAgIH0KICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5o
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBN
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbF9oCisjZGVmaW5lIE1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsX2gKKworI2luY2x1ZGUgIkpTU3RhY2suaCIKKyNpbmNsdWRlICJSZWdpc3Rl
ci5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKKy8vIFRoZSBtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCBpcyB0aGUgbWF4IGFtb3VudCBvZiBzdGFjayBzcGFjZSAoaW4gYnl0ZXMpCisvLyB0
aGF0IGNhbiBiZSB1c2VkIGZvciBvdXRnb2luZyBhcmdzIHdoZW4gY2FsbGluZyBhIHNsb3cgcGF0
aCBDIGZ1bmN0aW9uCisvLyBmcm9tIEpTIGNvZGUuCisKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09Q
KQorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDA7
CisKKyNlbGlmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpCisvLyA0IGFyZ3MgaW4gcmVnaXN0
ZXJzLCBidXQgc3RhY2sgc3BhY2UgbmVlZHMgdG8gYmUgYWxsb2NhdGVkIGZvciBhbGwgYXJncy4K
K3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA2NDsK
KworI2VsaWYgQ1BVKFg4Nl82NCkKKy8vIEFsbCBhcmdzIGluIHJlZ2lzdGVycy4KK3N0YXRpYyBj
b25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAwOworCisjZWxpZiBD
UFUoWDg2KQorLy8gNyBhcmdzIG9uIHN0YWNrICgyOCBieXRlcykuCitzdGF0aWMgY29uc3Qgc2l6
ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDA7CisKKyNlbGlmIENQVShBUk02
NCkKKy8vIEFsbCBhcmdzIGluIHJlZ2lzdGVycy4KK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAwOworCisjZWxpZiBDUFUoQVJNKQorLy8gRmlyc3Qg
Zm91ciBhcmdzIGluIHJlZ2lzdGVycywgcmVtYWluaW5nIDQgYXJncyBvbiBzdGFjay4KK3N0YXRp
YyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAyNDsKKworI2Vs
aWYgQ1BVKFNINCkKKy8vIEZpcnN0IGZvdXIgYXJncyBpbiByZWdpc3RlcnMsIHJlbWFpbmluZyA0
IGFyZ3Mgb24gc3RhY2suCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsID0gMjQ7CisKKyNlbGlmIENQVShNSVBTKQorLy8gVGhvdWdoIGFyZ3MgYXJlIGlu
IHJlZ2lzdGVycywgdGhlcmUgbmVlZCB0byBiZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIGFsbCBh
cmdzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9
IDQwOworCisjZWxzZQorI2Vycm9yICJVbnN1cHBvcnRlZCBDUFU6IG5lZWQgdmFsdWUgZm9yIG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsIgorCisjZW5kaWYKKworQ09NUElMRV9BU1NFUlQo
IShtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCAlIHNpemVvZihSZWdpc3RlcikpLCBleHRl
bnRfbXVzdF9iZV9pbl9tdWx0aXBsZXNfb2ZfcmVnaXN0ZXJzKTsKKworI2lmICFFTkFCTEUoTExJ
TlRfQ19MT09QKQorLy8gTWFrZSBzdXJlIHRoYXQgY2ZyIC0gbWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwgYnl0ZXMgd2lsbCBtYWtlIHRoZSBzdGFjayBwb2ludGVyIGFsaWduZWQKK0NPTVBJ
TEVfQVNTRVJUKChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCAlIDE2KSA9PSAxNiAtIHNp
emVvZihDYWxsZXJGcmFtZUFuZFBDKSwgZXh0ZW50X211c3RfYWxpZ25fc3RhY2tfZnJvbV9jYWxs
ZnJhbWVfcG9pbnRlcik7CisjZW5kaWYKKworc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJzID0gbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwgLyBzaXplb2YoUmVnaXN0ZXIpOworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlm
IC8vIE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsX2gKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zNywxNSArMzcsMTUgQEAgdm9pZCBDYWxsTGlua0luZm86OnVubGluayhW
TSYgdm0sIFJlcGF0YwogewogICAgIEFTU0VSVChpc0xpbmtlZCgpKTsKICAgICAKKyAgICBpZiAo
T3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5KCkpCisgICAgICAgIGRhdGFMb2coIlVubGlua2luZyBj
YWxsIGZyb20gIiwgY2FsbFJldHVybkxvY2F0aW9uLCAiIHRvICIsIHBvaW50ZXJEdW1wKHJlcGF0
Y2hCdWZmZXIuY29kZUJsb2NrKCkpLCAiXG4iKTsKKwogICAgIHJlcGF0Y2hCdWZmZXIucmV2ZXJ0
SnVtcFJlcGxhY2VtZW50VG9CcmFuY2hQdHJXaXRoUGF0Y2goUmVwYXRjaEJ1ZmZlcjo6c3RhcnRP
ZkJyYW5jaFB0cldpdGhQYXRjaE9uUmVnaXN0ZXIoaG90UGF0aEJlZ2luKSwgc3RhdGljX2Nhc3Q8
TWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQ+KGNhbGxlZUdQUiksIDApOwotICAgIGlmIChpc0RG
RykgewotI2lmIEVOQUJMRShERkdfSklUKQotICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhj
YWxsUmV0dXJuTG9jYXRpb24sIChjYWxsVHlwZSA9PSBDb25zdHJ1Y3QgPyB2bS5nZXRDVElTdHVi
KGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikgOiB2bS5nZXRDVElTdHViKGxpbmtDYWxsVGh1
bmtHZW5lcmF0b3IpKS5jb2RlKCkpOwotI2Vsc2UKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSNlbmRpZgotICAgIH0gZWxzZQotICAgICAgICByZXBhdGNoQnVmZmVyLnJl
bGluayhjYWxsUmV0dXJuTG9jYXRpb24sIGNhbGxUeXBlID09IENvbnN0cnVjdCA/IHZtLmdldENU
SVN0dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5jb2RlKCkgOiB2bS5nZXRDVElTdHVi
KGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxp
bmsoCisgICAgICAgIGNhbGxSZXR1cm5Mb2NhdGlvbiwKKyAgICAgICAgdm0uZ2V0Q1RJU3R1Yihs
aW5rVGh1bmtHZW5lcmF0b3JGb3IoCisgICAgICAgICAgICBjYWxsVHlwZSA9PSBDb25zdHJ1Y3Qg
PyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisgICAgICAgICAgICBpc0ZUTCA/IE11
c3RQcmVzZXJ2ZVJlZ2lzdGVycyA6IFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpKS5j
b2RlKCkpOwogICAgIGhhc1NlZW5TaG91bGRSZXBhdGNoID0gZmFsc2U7CiAgICAgY2FsbGVlLmNs
ZWFyKCk7CiAgICAgc3R1Yi5jbGVhcigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NhbGxMaW5rSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC01
NSw4ICs1NSw4IEBAIHN0cnVjdCBDYWxsTGlua0luZm8gOiBwdWJsaWMgQmFzaWNSYXdTZW4KICAg
ICB9CiAgICAgICAgIAogICAgIENhbGxMaW5rSW5mbygpCi0gICAgICAgIDogaGFzU2VlblNob3Vs
ZFJlcGF0Y2goZmFsc2UpCi0gICAgICAgICwgaXNERkcoZmFsc2UpCisgICAgICAgIDogaXNGVEwo
ZmFsc2UpCisgICAgICAgICwgaGFzU2VlblNob3VsZFJlcGF0Y2goZmFsc2UpCiAgICAgICAgICwg
aGFzU2VlbkNsb3N1cmUoZmFsc2UpCiAgICAgICAgICwgY2FsbFR5cGUoTm9uZSkKICAgICB7CkBA
IC03OSw4ICs3OSw4IEBAIHN0cnVjdCBDYWxsTGlua0luZm8gOiBwdWJsaWMgQmFzaWNSYXdTZW4K
ICAgICBKSVRXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gY2FsbGVlOwogICAgIFdyaXRlQmFycmll
cjxKU0Z1bmN0aW9uPiBsYXN0U2VlbkNhbGxlZTsKICAgICBSZWZQdHI8Q2xvc3VyZUNhbGxTdHVi
Um91dGluZT4gc3R1YjsKKyAgICBib29sIGlzRlRMIDogMTsKICAgICBib29sIGhhc1NlZW5TaG91
bGRSZXBhdGNoIDogMTsKLSAgICBib29sIGlzREZHIDogMTsKICAgICBib29sIGhhc1NlZW5DbG9z
dXJlIDogMTsKICAgICB1bnNpZ25lZCBjYWxsVHlwZSA6IDU7IC8vIENhbGxUeXBlCiAgICAgdW5z
aWduZWQgY2FsbGVlR1BSIDogODsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9DYWxsTGlua1N0YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjYsMTMgKzI2LDE3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQ2FsbExpbmtTdGF0dXMuaCIKIAorI2luY2x1ZGUgIkNhbGxMaW5rSW5mby5oIgogI2lu
Y2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJM
TEludENhbGxMaW5rSW5mby5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDx3
dGYvQ29tbWFQcmludGVyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CisKIENhbGxMaW5rU3RhdHVzOjpDYWxsTGlua1N0YXR1cyhKU1Zh
bHVlIHZhbHVlKQogICAgIDogbV9jYWxsVGFyZ2V0KHZhbHVlKQogICAgICwgbV9leGVjdXRhYmxl
KDApCkBAIC04MSwxMiArODUsMjggQEAgSW50cmluc2ljIENhbGxMaW5rU3RhdHVzOjppbnRyaW5z
aWNGb3IoQwogICAgIHJldHVybiBtX2V4ZWN1dGFibGUtPmludHJpbnNpY0ZvcihraW5kKTsKIH0K
IAotQ2FsbExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJs
b2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KQorQ2FsbExpbmtTdGF0
dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2Rl
SW5kZXgpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHByb2ZpbGVkQmxvY2spOwogICAgIFVOVVNFRF9Q
QVJBTShieXRlY29kZUluZGV4KTsKICNpZiBFTkFCTEUoTExJTlQpCisjaWYgRU5BQkxFKERGR19K
SVQpCisgICAgaWYgKHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVx
dWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZEZ1bmN0aW9uKSkpIHsKKyAgICAgICAgLy8g
V2UgY291bGQgZm9yY2UgdGhpcyB0byBiZSBhIGNsb3N1cmUgY2FsbCwgYnV0IGluc3RlYWQgd2Un
bGwganVzdCBhc3N1bWUgdGhhdCBpdAorICAgICAgICAvLyB0YWtlcyBzbG93IHBhdGguCisgICAg
ICAgIHJldHVybiB0YWtlc1Nsb3dQYXRoKCk7CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0obG9ja2VyKTsKKyNlbmRpZgorCisgICAgVk0mIHZtID0gKnByb2ZpbGVkQmxvY2stPnZtKCk7
CisgICAgCiAgICAgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gcHJvZmlsZWRCbG9jay0+aW5z
dHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5dGVjb2RlSW5kZXg7CisgICAgT3Bjb2RlSUQgb3AgPSB2
bS5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUpOworICAg
IGlmIChvcCAhPSBvcF9jYWxsICYmIG9wICE9IG9wX2NvbnN0cnVjdCkKKyAgICAgICAgcmV0dXJu
IENhbGxMaW5rU3RhdHVzKCk7CisgICAgCiAgICAgTExJbnRDYWxsTGlua0luZm8qIGNhbGxMaW5r
SW5mbyA9IGluc3RydWN0aW9uWzVdLnUuY2FsbExpbmtJbmZvOwogICAgIAogICAgIHJldHVybiBD
YWxsTGlua1N0YXR1cyhjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLmdldCgpKTsKQEAgLTEw
MiwyNyArMTIyLDEyMSBAQCBDYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZv
CiAgICAgVU5VU0VEX1BBUkFNKHByb2ZpbGVkQmxvY2spOwogICAgIFVOVVNFRF9QQVJBTShieXRl
Y29kZUluZGV4KTsKICNpZiBFTkFCTEUoSklUKQorICAgIGlmIChwcm9maWxlZEJsb2NrLT5oYXNF
eGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRD
YWNoZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZH
OjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCkpCisg
ICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVu
dEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZEV4ZWN1dGFibGUpKSkKKyAgICAgICAgcmV0dXJu
IHRha2VzU2xvd1BhdGgoKTsKKyAgICAKICAgICBpZiAoIXByb2ZpbGVkQmxvY2stPmhhc0Jhc2Vs
aW5lSklUUHJvZmlsaW5nKCkpCi0gICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50KHByb2Zp
bGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpOworICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTElu
dChsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpOwogICAgIAogICAgIGlmIChw
cm9maWxlZEJsb2NrLT5jb3VsZFRha2VTbG93Q2FzZShieXRlY29kZUluZGV4KSkKLSAgICAgICAg
cmV0dXJuIENhbGxMaW5rU3RhdHVzOjp0YWtlc1Nsb3dQYXRoKCk7CisgICAgICAgIHJldHVybiB0
YWtlc1Nsb3dQYXRoKCk7CiAgICAgCiAgICAgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8gPSBw
cm9maWxlZEJsb2NrLT5nZXRDYWxsTGlua0luZm8oYnl0ZWNvZGVJbmRleCk7CisgICAgCisgICAg
Q2FsbExpbmtTdGF0dXMgcmVzdWx0ID0gY29tcHV0ZUZvcihsb2NrZXIsIGNhbGxMaW5rSW5mbyk7
CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50KGxvY2tl
ciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7CisgICAgCisgICAgaWYgKHByb2ZpbGVk
QmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2Rl
SW5kZXgsIEJhZEZ1bmN0aW9uKSkpCisgICAgICAgIHJlc3VsdC5tYWtlQ2xvc3VyZUNhbGwoKTsK
KyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworI2Vsc2UKKyAgICByZXR1cm4gQ2FsbExpbmtTdGF0
dXMoKTsKKyNlbmRpZgorfQorCisjaWYgRU5BQkxFKEpJVCkKK0NhbGxMaW5rU3RhdHVzIENhbGxM
aW5rU3RhdHVzOjpjb21wdXRlRm9yKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDYWxsTGlu
a0luZm8mIGNhbGxMaW5rSW5mbykKK3sKICAgICBpZiAoY2FsbExpbmtJbmZvLnN0dWIpCiAgICAg
ICAgIHJldHVybiBDYWxsTGlua1N0YXR1cyhjYWxsTGlua0luZm8uc3R1Yi0+ZXhlY3V0YWJsZSgp
LCBjYWxsTGlua0luZm8uc3R1Yi0+c3RydWN0dXJlKCkpOwogICAgIAogICAgIEpTRnVuY3Rpb24q
IHRhcmdldCA9IGNhbGxMaW5rSW5mby5sYXN0U2VlbkNhbGxlZS5nZXQoKTsKICAgICBpZiAoIXRh
cmdldCkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0
ZWNvZGVJbmRleCk7CisgICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1cygpOwogICAgIAogICAg
IGlmIChjYWxsTGlua0luZm8uaGFzU2VlbkNsb3N1cmUpCiAgICAgICAgIHJldHVybiBDYWxsTGlu
a1N0YXR1cyh0YXJnZXQtPmV4ZWN1dGFibGUoKSwgdGFyZ2V0LT5zdHJ1Y3R1cmUoKSk7CiAKICAg
ICByZXR1cm4gQ2FsbExpbmtTdGF0dXModGFyZ2V0KTsKLSNlbHNlCi0gICAgcmV0dXJuIENhbGxM
aW5rU3RhdHVzKCk7Cit9CiAjZW5kaWYKKwordm9pZCBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZURG
R1N0YXR1c2VzKAorICAgIENvZGVCbG9jayogZGZnQ29kZUJsb2NrLCBDYWxsTGlua1N0YXR1czo6
Q29udGV4dE1hcCYgbWFwKQoreworI2lmIEVOQUJMRShERkdfSklUKQorICAgIFJFTEVBU0VfQVNT
RVJUKGRmZ0NvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVENvZGU6OkRGR0pJVCk7CisgICAgQ29k
ZUJsb2NrKiBiYXNlbGluZUNvZGVCbG9jayA9IGRmZ0NvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKTsK
KyAgICBERkc6OkpJVENvZGUqIGppdENvZGUgPSBkZmdDb2RlQmxvY2stPmppdENvZGUoKS0+ZGZn
KCk7CisgICAgUkVMRUFTRV9BU1NFUlQoZGZnQ29kZUJsb2NrLT5udW1iZXJPZkNhbGxMaW5rSW5m
b3MoKSA8PSBqaXRDb2RlLT5zbG93UGF0aENhbGxzLnNpemUoKSk7CisgICAgCisgICAgZm9yIChz
aXplX3QgaSA9IGRmZ0NvZGVCbG9jay0+bnVtYmVyT2ZDYWxsTGlua0luZm9zKCk7IGktLTspIHsK
KyAgICAgICAgQ2FsbExpbmtJbmZvJiBpbmZvID0gZGZnQ29kZUJsb2NrLT5jYWxsTGlua0luZm8o
aSk7CisgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IGluZm8uY29kZU9yaWdpbjsKKyAg
ICAgICAgCisgICAgICAgIGJvb2wgdGFrZVNsb3dQYXRoOworICAgICAgICBib29sIGJhZEZ1bmN0
aW9uOworICAgICAgICAKKyAgICAgICAgLy8gQ2hlY2sgaWYgd2UgaGFkIGFscmVhZHkgcHJldmlv
dXNseSBtYWRlIGEgdGVycmlibGUgbWlzdGFrZSBpbiB0aGUgRlRMIGZvciB0aGlzCisgICAgICAg
IC8vIGNvZGUgb3JpZ2luLiBOb3RlIHRoYXQgdGhpcyBpcyBhcHByb3hpbWF0ZSBiZWNhdXNlIHdl
IGNvdWxkIGhhdmUgYSBtb25vdmFyaWFudAorICAgICAgICAvLyBpbmxpbmUgaW4gdGhlIEZUTCB0
aGF0IGVuZGVkIHVwIGZhaWxpbmcuIFdlIHNob3VsZCBmaXggdGhhdCBhdCBzb21lIHBvaW50IGJ5
CisgICAgICAgIC8vIGhhdmluZyBkYXRhIHN0cnVjdHVyZXMgdG8gdHJhY2sgdGhlIGNvbnRleHQg
b2YgZnJlcXVlbnQgZXhpdHMuIFRoaXMgaXMgY3VycmVudGx5CisgICAgICAgIC8vIGNoYWxsZW5n
aW5nIGJlY2F1c2UgaXQgd291bGQgcmVxdWlyZSBjcmVhdGluZyBhIENvZGVPcmlnaW4tYmFzZWQg
ZGF0YWJhc2UgaW4KKyAgICAgICAgLy8gYmFzZWxpbmUgQ29kZUJsb2NrcywgYnV0IHRob3NlIENv
ZGVCbG9ja3MgZG9uJ3QgcmVhbGx5IGhhdmUgYSBwbGFjZSB0byBwdXQgdGhlCisgICAgICAgIC8v
IElubGluZUNhbGxGcmFtZXMuCisgICAgICAgIENvZGVCbG9jayogY3VycmVudEJhc2VsaW5lID0K
KyAgICAgICAgICAgIGJhc2VsaW5lQ29kZUJsb2NrRm9yT3JpZ2luQW5kQmFzZWxpbmVDb2RlQmxv
Y2soY29kZU9yaWdpbiwgYmFzZWxpbmVDb2RlQmxvY2spOworICAgICAgICB7CisgICAgICAgICAg
ICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjdXJyZW50QmFzZWxpbmUtPm1fbG9jayk7Cisg
ICAgICAgICAgICB0YWtlU2xvd1BhdGggPQorICAgICAgICAgICAgICAgIGN1cnJlbnRCYXNlbGlu
ZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5i
eXRlY29kZUluZGV4LCBCYWRDYWNoZSwgRXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHx8
IGN1cnJlbnRCYXNlbGluZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNp
dGUoY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQsIEV4aXRGcm9t
RlRMKSkKKyAgICAgICAgICAgICAgICB8fCBjdXJyZW50QmFzZWxpbmUtPmhhc0V4aXRTaXRlKGxv
Y2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgQmFk
RXhlY3V0YWJsZSwgRXhpdEZyb21GVEwpKTsKKyAgICAgICAgICAgIGJhZEZ1bmN0aW9uID0KKyAg
ICAgICAgICAgICAgICBjdXJyZW50QmFzZWxpbmUtPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpG
cmVxdWVudEV4aXRTaXRlKGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgQmFkRnVuY3Rpb24sIEV4
aXRGcm9tRlRMKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAg
IENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGRmZ0NvZGVCbG9jay0+bV9sb2NrKTsKKyAgICAg
ICAgICAgIGlmICh0YWtlU2xvd1BhdGggfHwgaml0Q29kZS0+c2xvd1BhdGhDYWxsc1tpXSA+PSBP
cHRpb25zOjpjb3VsZFRha2VTbG93Q2FzZU1pbmltdW1Db3VudCgpKQorICAgICAgICAgICAgICAg
IG1hcC5hZGQoaW5mby5jb2RlT3JpZ2luLCB0YWtlc1Nsb3dQYXRoKCkpOworICAgICAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICAgICAgQ2FsbExpbmtTdGF0dXMgc3RhdHVzID0gY29tcHV0ZUZv
cihsb2NrZXIsIGluZm8pOworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMuaXNTZXQoKSkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoYmFkRnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0dXMubWFrZUNsb3N1cmVDYWxsKCk7CisgICAgICAgICAgICAgICAgICAgIG1hcC5h
ZGQoaW5mby5jb2RlT3JpZ2luLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRmZ0NvZGVC
bG9jayk7CisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCisgICAgCisgICAgaWYgKHZlcmJvc2Up
IHsKKyAgICAgICAgZGF0YUxvZygiQ29udGV4dCBtYXA6XG4iKTsKKyAgICAgICAgQ29udGV4dE1h
cDo6aXRlcmF0b3IgaXRlciA9IG1hcC5iZWdpbigpOworICAgICAgICBDb250ZXh0TWFwOjppdGVy
YXRvciBlbmQgPSBtYXAuZW5kKCk7CisgICAgICAgIGZvciAoOyBpdGVyICE9IGVuZDsgKytpdGVy
KSB7CisgICAgICAgICAgICBkYXRhTG9nKCIgICAgIiwgaXRlci0+a2V5LCAiOlxuIik7CisgICAg
ICAgICAgICBkYXRhTG9nKCIgICAgICAgICIsIGl0ZXItPnZhbHVlLCAiXG4iKTsKKyAgICAgICAg
fQorICAgIH0KK30KKworQ2FsbExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3Io
CisgICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNv
bnN0IENhbGxMaW5rU3RhdHVzOjpDb250ZXh0TWFwJiBtYXApCit7CisgICAgQ29udGV4dE1hcDo6
Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1hcC5maW5kKGNvZGVPcmlnaW4pOworICAgIGlmIChpdGVy
ICE9IG1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOworICAgIAorICAgIHJl
dHVybiBjb21wdXRlRm9yKHByb2ZpbGVkQmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCk7
CiB9CiAKIHZvaWQgQ2FsbExpbmtTdGF0dXM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1
cy5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q2FsbExpbmtTdGF0dXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNyArMjYsOSBA
QAogI2lmbmRlZiBDYWxsTGlua1N0YXR1c19oCiAjZGVmaW5lIENhbGxMaW5rU3RhdHVzX2gKIAor
I2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKICNpbmNsdWRlICJDb2RlU3BlY2lhbGl6YXRpb25LaW5k
LmgiCisjaW5jbHVkZSAiQ29uY3VycmVudEpJVExvY2suaCIKICNpbmNsdWRlICJJbnRyaW5zaWMu
aCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAKQEAgLTM3LDYgKzM5LDcgQEAgY2xhc3MgRXhl
Y3V0YWJsZUJhc2U7CiBjbGFzcyBJbnRlcm5hbEZ1bmN0aW9uOwogY2xhc3MgSlNGdW5jdGlvbjsK
IGNsYXNzIFN0cnVjdHVyZTsKK3N0cnVjdCBDYWxsTGlua0luZm87CiAKIGNsYXNzIENhbGxMaW5r
U3RhdHVzIHsKIHB1YmxpYzoKQEAgLTczLDMyICs3NiwyMiBAQCBwdWJsaWM6CiAgICAgfQogICAg
IAogICAgIHN0YXRpYyBDYWxsTGlua1N0YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayosIHVuc2ln
bmVkIGJ5dGVjb2RlSW5kZXgpOworCisjaWYgRU5BQkxFKEpJVCkKKyAgICAvLyBDb21wdXRlcyB0
aGUgc3RhdHVzIGFzc3VtaW5nIHRoYXQgd2UgbmV2ZXIgdG9vayBzbG93IHBhdGggYW5kIG5ldmVy
IHByZXZpb3VzbHkKKyAgICAvLyBleGl0ZWQuCisgICAgc3RhdGljIENhbGxMaW5rU3RhdHVzIGNv
bXB1dGVGb3IoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENhbGxMaW5rSW5mbyYpOworI2Vu
ZGlmCisgICAgCisgICAgdHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIENhbGxMaW5rU3RhdHVz
LCBDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoPiBDb250ZXh0TWFwOworICAgIAorICAgIC8vIENv
bXB1dGVzIGFsbCBvZiB0aGUgc3RhdHVzZXMgb2YgdGhlIERGRyBjb2RlIGJsb2NrLiBEb2Vzbid0
IGluY2x1ZGUgc3RhdHVzZXMgdGhhdCBoYWQKKyAgICAvLyBubyBpbmZvcm1hdGlvbi4gQ3VycmVu
dGx5IHdlIHVzZSB0aGlzIHdoZW4gY29tcGlsaW5nIEZUTCBjb2RlLCB0byBlbmFibGUgcG9seXZh
cmlhbnQKKyAgICAvLyBpbmxpbmluZy4KKyAgICBzdGF0aWMgdm9pZCBjb21wdXRlREZHU3RhdHVz
ZXMoQ29kZUJsb2NrKiBkZmdDb2RlQmxvY2ssIENvbnRleHRNYXAmKTsKICAgICAKLSAgICBDYWxs
TGlua1N0YXR1cyYgc2V0SGFzQmFkRnVuY3Rpb25FeGl0U2l0ZShib29sIGRpZEhhdmVFeGl0U2l0
ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1Byb3ZlZCk7Ci0gICAgICAgIGlmIChkaWRI
YXZlRXhpdFNpdGUpIHsKLSAgICAgICAgICAgIC8vIFR1cm4gdGhpcyBpbnRvIGEgY2xvc3VyZSBj
YWxsLgotICAgICAgICAgICAgbV9jYWxsVGFyZ2V0ID0gSlNWYWx1ZSgpOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0gICAgCi0gICAgQ2FsbExpbmtTdGF0dXMmIHNl
dEhhc0JhZENhY2hlRXhpdFNpdGUoYm9vbCBkaWRIYXZlRXhpdFNpdGUpCi0gICAgewotICAgICAg
ICBBU1NFUlQoIW1faXNQcm92ZWQpOwotICAgICAgICBpZiAoZGlkSGF2ZUV4aXRTaXRlKQotICAg
ICAgICAgICAgKnRoaXMgPSB0YWtlc1Nsb3dQYXRoKCk7Ci0gICAgICAgIHJldHVybiAqdGhpczsK
LSAgICB9Ci0gICAgCi0gICAgQ2FsbExpbmtTdGF0dXMmIHNldEhhc0JhZEV4ZWN1dGFibGVFeGl0
U2l0ZShib29sIGRpZEhhdmVFeGl0U2l0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1By
b3ZlZCk7Ci0gICAgICAgIGlmIChkaWRIYXZlRXhpdFNpdGUpCi0gICAgICAgICAgICAqdGhpcyA9
IHRha2VzU2xvd1BhdGgoKTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KKyAgICAvLyBI
ZWxwZXIgdGhhdCBmaXJzdCBjb25zdWx0cyB0aGUgQ29udGV4dE1hcCBhbmQgdGhlbiBkb2VzIGNv
bXB1dGVGb3IoKS4KKyAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxv
Y2sqLCBDb2RlT3JpZ2luLCBjb25zdCBDb250ZXh0TWFwJik7CiAgICAgCiAgICAgYm9vbCBpc1Nl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbFRhcmdldCB8fCBtX2V4ZWN1dGFibGUgfHwgbV9jb3Vs
ZFRha2VTbG93UGF0aDsgfQogICAgIApAQCAtMTE5LDcgKzExMiwxNCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIHN0YXRp
YyBDYWxsTGlua1N0YXR1cyBjb21wdXRlRnJvbUxMSW50KENvZGVCbG9jayosIHVuc2lnbmVkIGJ5
dGVjb2RlSW5kZXgpOworICAgIHZvaWQgbWFrZUNsb3N1cmVDYWxsKCkKKyAgICB7CisgICAgICAg
IEFTU0VSVCghbV9pc1Byb3ZlZCk7CisgICAgICAgIC8vIFR1cm4gdGhpcyBpbnRvIGEgY2xvc3Vy
ZSBjYWxsLgorICAgICAgICBtX2NhbGxUYXJnZXQgPSBKU1ZhbHVlKCk7CisgICAgfQorICAgIAor
ICAgIHN0YXRpYyBDYWxsTGlua1N0YXR1cyBjb21wdXRlRnJvbUxMSW50KGNvbnN0IENvbmN1cnJl
bnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KTsKICAgICAK
ICAgICBKU1ZhbHVlIG1fY2FsbFRhcmdldDsKICAgICBFeGVjdXRhYmxlQmFzZSogbV9leGVjdXRh
YmxlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5j
cHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksMTAgKzEyOSwxNSBAQCBDU3RyaW5n
IENvZGVCbG9jazo6c291cmNlQ29kZU9uT25lTGluZSgpCiAKIHZvaWQgQ29kZUJsb2NrOjpkdW1w
QXNzdW1pbmdKSVRUeXBlKFByaW50U3RyZWFtJiBvdXQsIEpJVENvZGU6OkpJVFR5cGUgaml0VHlw
ZSkgY29uc3QKIHsKKyAgICBvdXQucHJpbnQoaW5mZXJyZWROYW1lKCksICIjIik7CiAgICAgaWYg
KGhhc0hhc2goKSB8fCBpc1NhZmVUb0NvbXB1dGVIYXNoKCkpCi0gICAgICAgIG91dC5wcmludChp
bmZlcnJlZE5hbWUoKSwgIiMiLCBoYXNoKCksICI6WyIsIFJhd1BvaW50ZXIodGhpcyksICItPiIs
IFJhd1BvaW50ZXIob3duZXJFeGVjdXRhYmxlKCkpLCAiLCAiLCBqaXRUeXBlLCBjb2RlVHlwZSgp
KTsKKyAgICAgICAgb3V0LnByaW50KGhhc2goKSk7CiAgICAgZWxzZQotICAgICAgICBvdXQucHJp
bnQoaW5mZXJyZWROYW1lKCksICIjPG5vLWhhc2g+OlsiLCBSYXdQb2ludGVyKHRoaXMpLCAiLT4i
LCBSYXdQb2ludGVyKG93bmVyRXhlY3V0YWJsZSgpKSwgIiwgIiwgaml0VHlwZSwgY29kZVR5cGUo
KSk7CisgICAgICAgIG91dC5wcmludCgiPG5vLWhhc2g+Iik7CisgICAgb3V0LnByaW50KCI6WyIs
IFJhd1BvaW50ZXIodGhpcyksICItPiIpOworICAgIGlmICghIW1fYWx0ZXJuYXRpdmUpCisgICAg
ICAgIG91dC5wcmludChSYXdQb2ludGVyKG1fYWx0ZXJuYXRpdmUuZ2V0KCkpLCAiLT4iKTsKKyAg
ICBvdXQucHJpbnQoUmF3UG9pbnRlcihvd25lckV4ZWN1dGFibGUoKSksICIsICIsIGppdFR5cGUs
IGNvZGVUeXBlKCkpOwogCiAgICAgaWYgKGNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKQogICAg
ICAgICBvdXQucHJpbnQoc3BlY2lhbGl6YXRpb25LaW5kKCkpOwpAQCAtMTQzLDYgKzE0OCwxMCBA
QCB2b2lkIENvZGVCbG9jazo6ZHVtcEFzc3VtaW5nSklUVHlwZShQcmluCiAgICAgICAgIG91dC5w
cmludCgiIChOZXZlcklubGluZSkiKTsKICAgICBpZiAob3duZXJFeGVjdXRhYmxlKCktPmlzU3Ry
aWN0TW9kZSgpKQogICAgICAgICBvdXQucHJpbnQoIiAoU3RyaWN0TW9kZSkiKTsKKyAgICBpZiAo
dGhpcy0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2VsaW5lSklUICYmIG1fZGlkRmFpbEZUTENv
bXBpbGF0aW9uKQorICAgICAgICBvdXQucHJpbnQoIiAoRlRMRmFpbCkiKTsKKyAgICBpZiAodGhp
cy0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2VsaW5lSklUICYmIG1faGFzQmVlbkNvbXBpbGVk
V2l0aEZUTCkKKyAgICAgICAgb3V0LnByaW50KCIgKEhhZEZUTFJlcGxhY2VtZW50KSIpOwogICAg
IG91dC5wcmludCgiXSIpOwogfQogCkBAIC00NzUsOCArNDg0LDggQEAgdm9pZCBDb2RlQmxvY2s6
OnByaW50Q2FsbE9wKFByaW50U3RyZWFtJgogICAgICAgICAgICAgaWYgKHRhcmdldCkKICAgICAg
ICAgICAgICAgICBvdXQucHJpbnRmKCIgaml0KCVwLCBleGVjICVwKSIsIHRhcmdldCwgdGFyZ2V0
LT5leGVjdXRhYmxlKCkpOwogICAgICAgICB9Ci0jZW5kaWYKICAgICAgICAgb3V0LnByaW50KCIg
c3RhdHVzKCIsIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKHRoaXMsIGxvY2F0aW9uKSwgIiki
KTsKKyNlbmRpZgogICAgIH0KICAgICArK2l0OwogICAgIGR1bXBBcnJheVByb2ZpbGluZyhvdXQs
IGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKQEAgLTUyNiwxMiArNTM1LDcgQEAgdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgIG91dC5wcmludGYoIlxuIik7CiAg
ICAgCiAgICAgU3R1YkluZm9NYXAgc3R1YkluZm9zOwotI2lmIEVOQUJMRShKSVQpCi0gICAgewot
ICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgICAgICBnZXRT
dHViSW5mb01hcChsb2NrZXIsIHN0dWJJbmZvcyk7Ci0gICAgfQotI2VuZGlmCisgICAgZ2V0U3R1
YkluZm9NYXAoc3R1YkluZm9zKTsKICAgICAKICAgICBjb25zdCBJbnN0cnVjdGlvbiogYmVnaW4g
PSBpbnN0cnVjdGlvbnMoKS5iZWdpbigpOwogICAgIGNvbnN0IEluc3RydWN0aW9uKiBlbmQgPSBp
bnN0cnVjdGlvbnMoKS5lbmQoKTsKQEAgLTE0NjksNiArMTQ3Myw3IEBAIENvZGVCbG9jazo6Q29k
ZUJsb2NrKENvcHlQYXJzZWRCbG9ja1RhZywKICAgICAsIG1faXNDb25zdHJ1Y3RvcihvdGhlci5t
X2lzQ29uc3RydWN0b3IpCiAgICAgLCBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZCh0cnVlKQogICAg
ICwgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb24oZmFsc2UpCisgICAgLCBtX2hhc0JlZW5Db21waWxl
ZFdpdGhGVEwoZmFsc2UpCiAgICAgLCBtX3VubGlua2VkQ29kZSgqb3RoZXIubV92bSwgb3RoZXIu
bV9vd25lckV4ZWN1dGFibGUuZ2V0KCksIG90aGVyLm1fdW5saW5rZWRDb2RlLmdldCgpKQogICAg
ICwgbV9zdGVwcGluZ01vZGUoU3RlcHBpbmdNb2RlRGlzYWJsZWQpCiAgICAgLCBtX251bUJyZWFr
cG9pbnRzKDApCkBAIC0xNTI1LDYgKzE1MzAsNyBAQCBDb2RlQmxvY2s6OkNvZGVCbG9jayhTY3Jp
cHRFeGVjdXRhYmxlKiBvCiAgICAgLCBtX2lzQ29uc3RydWN0b3IodW5saW5rZWRDb2RlQmxvY2st
PmlzQ29uc3RydWN0b3IoKSkKICAgICAsIG1fc2hvdWxkQWx3YXlzQmVJbmxpbmVkKHRydWUpCiAg
ICAgLCBtX2RpZEZhaWxGVExDb21waWxhdGlvbihmYWxzZSkKKyAgICAsIG1faGFzQmVlbkNvbXBp
bGVkV2l0aEZUTChmYWxzZSkKICAgICAsIG1fdW5saW5rZWRDb2RlKG1fZ2xvYmFsT2JqZWN0LT52
bSgpLCBvd25lckV4ZWN1dGFibGUsIHVubGlua2VkQ29kZUJsb2NrKQogICAgICwgbV9zdGVwcGlu
Z01vZGUoU3RlcHBpbmdNb2RlRGlzYWJsZWQpCiAgICAgLCBtX251bUJyZWFrcG9pbnRzKDApCkBA
IC0xODU0LDIzICsxODYwLDEzIEBAIENvZGVCbG9jazo6Q29kZUJsb2NrKFNjcmlwdEV4ZWN1dGFi
bGUqIG8KIAogICAgIC8vIElmIHRoZSBjb25jdXJyZW50IHRocmVhZCB3aWxsIHdhbnQgdGhlIGNv
ZGUgYmxvY2sncyBoYXNoLCB0aGVuIGNvbXB1dGUgaXQgaGVyZQogICAgIC8vIHN5bmNocm9ub3Vz
bHkuCi0gICAgaWYgKE9wdGlvbnM6OnNob3dEaXNhc3NlbWJseSgpCi0gICAgICAgIHx8IE9wdGlv
bnM6OnNob3dERkdEaXNhc3NlbWJseSgpCi0gICAgICAgIHx8IE9wdGlvbnM6OmR1bXBCeXRlY29k
ZUF0REZHVGltZSgpCi0gICAgICAgIHx8IE9wdGlvbnM6OmR1bXBHcmFwaEF0RWFjaFBoYXNlKCkK
LSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkKLSAgICAgICAgfHwgT3B0
aW9uczo6bG9nQ29tcGlsYXRpb25DaGFuZ2VzKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRh
dGVHcmFwaCgpCi0gICAgICAgIHx8IE9wdGlvbnM6OnZhbGlkYXRlR3JhcGhBdEVhY2hQaGFzZSgp
Ci0gICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKQotICAgICAgICB8fCBPcHRpb25zOjp2
ZXJib3NlQ29tcGlsYXRpb25RdWV1ZSgpCi0gICAgICAgIHx8IE9wdGlvbnM6OnJlcG9ydENvbXBp
bGVUaW1lcygpCi0gICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDRkEoKSkKKyAgICBpZiAoT3B0
aW9uczo6YWx3YXlzQ29tcHV0ZUhhc2goKSkKICAgICAgICAgaGFzaCgpOwogCiAgICAgaWYgKE9w
dGlvbnM6OmR1bXBHZW5lcmF0ZWRCeXRlY29kZXMoKSkKICAgICAgICAgZHVtcEJ5dGVjb2RlKCk7
CiAKKyAgICAKICAgICBtX2hlYXAtPm1fY29kZUJsb2Nrcy5hZGQodGhpcyk7CiAgICAgbV9oZWFw
LT5yZXBvcnRFeHRyYU1lbW9yeUNvc3Qoc2l6ZW9mKENvZGVCbG9jaykgKyBtX2luc3RydWN0aW9u
cy5zaXplKCkgKiBzaXplb2YoSW5zdHJ1Y3Rpb24pKTsKIH0KQEAgLTIzMzQsMTYgKzIzMzAsMjYg
QEAgdm9pZCBDb2RlQmxvY2s6OmZpbmFsaXplVW5jb25kaXRpb25hbGx5KAogI2VuZGlmCiB9CiAK
K3ZvaWQgQ29kZUJsb2NrOjpnZXRTdHViSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2Vy
JiwgU3R1YkluZm9NYXAmIHJlc3VsdCkKK3sKICNpZiBFTkFCTEUoSklUKQotU3RydWN0dXJlU3R1
YkluZm8qIENvZGVCbG9jazo6YWRkU3R1YkluZm8oKQorICAgIHRvSGFzaE1hcChtX3N0dWJJbmZv
cywgZ2V0U3RydWN0dXJlU3R1YkluZm9Db2RlT3JpZ2luLCByZXN1bHQpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0ocmVzdWx0KTsKKyNlbmRpZgorfQorCit2b2lkIENvZGVCbG9jazo6Z2V0U3R1
YkluZm9NYXAoU3R1YkluZm9NYXAmIHJlc3VsdCkKIHsKICAgICBDb25jdXJyZW50SklUTG9ja2Vy
IGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBtX3N0dWJJbmZvcy5hZGQoKTsKKyAgICBnZXRT
dHViSW5mb01hcChsb2NrZXIsIHJlc3VsdCk7CiB9CiAKLXZvaWQgQ29kZUJsb2NrOjpnZXRTdHVi
SW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgU3R1YkluZm9NYXAmIHJlc3VsdCkK
KyNpZiBFTkFCTEUoSklUKQorU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1Yklu
Zm8oKQogewotICAgIHRvSGFzaE1hcChtX3N0dWJJbmZvcywgZ2V0U3RydWN0dXJlU3R1YkluZm9D
b2RlT3JpZ2luLCByZXN1bHQpOworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9j
ayk7CisgICAgcmV0dXJuIG1fc3R1YkluZm9zLmFkZCgpOwogfQogCiB2b2lkIENvZGVCbG9jazo6
cmVzZXRTdHViKFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKQEAgLTI4OTksNiArMjkwNSwx
MSBAQCB2b2lkIENvZGVCbG9jazo6Y291bnRSZW9wdGltaXphdGlvbigpCiB1bnNpZ25lZCBDb2Rl
QmxvY2s6Om51bWJlck9mREZHQ29tcGlsZXMoKQogewogICAgIEFTU0VSVChKSVRDb2RlOjppc0Jh
c2VsaW5lQ29kZShqaXRUeXBlKCkpKTsKKyAgICBpZiAoT3B0aW9uczo6dGVzdFRoZUZUTCgpKSB7
CisgICAgICAgIGlmIChtX2RpZEZhaWxGVExDb21waWxhdGlvbikKKyAgICAgICAgICAgIHJldHVy
biAxMDAwMDAwOworICAgICAgICByZXR1cm4gKG1faGFzQmVlbkNvbXBpbGVkV2l0aEZUTCA/IDEg
OiAwKSArIG1fcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXI7CisgICAgfQogICAgIHJldHVybiAo
SklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKHJlcGxhY2VtZW50KCktPmppdFR5cGUoKSkgPyAxIDog
MCkgKyBtX3Jlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyOwogfQogCkBAIC0zMDEwLDcgKzMwMjEs
NyBAQCBpbnQzMl90IENvZGVCbG9jazo6YWRqdXN0ZWRDb3VudGVyVmFsdWUoCiBib29sIENvZGVC
bG9jazo6Y2hlY2tJZk9wdGltaXphdGlvblRocmVzaG9sZFJlYWNoZWQoKQogewogI2lmIEVOQUJM
RShERkdfSklUKQotICAgIGlmIChERkc6OldvcmtsaXN0KiB3b3JrbGlzdCA9IG1fdm0tPndvcmts
aXN0LmdldCgpKSB7CisgICAgaWYgKERGRzo6V29ya2xpc3QqIHdvcmtsaXN0ID0gREZHOjpleGlz
dGluZ0dsb2JhbERGR1dvcmtsaXN0T3JOdWxsKCkpIHsKICAgICAgICAgaWYgKHdvcmtsaXN0LT5j
b21waWxhdGlvblN0YXRlKERGRzo6Q29tcGlsYXRpb25LZXkodGhpcywgREZHOjpERkdNb2RlKSkK
ICAgICAgICAgICAgID09IERGRzo6V29ya2xpc3Q6OkNvbXBpbGVkKSB7CiAgICAgICAgICAgICBv
cHRpbWl6ZU5leHRJbnZvY2F0aW9uKCk7CkBAIC0zMzQxLDYgKzMzNTIsMTEgQEAgdW5zaWduZWQg
Q29kZUJsb2NrOjpmcmFtZVJlZ2lzdGVyQ291bnQoKQogICAgIH0KIH0KIAoraW50IENvZGVCbG9j
azo6c3RhY2tQb2ludGVyT2Zmc2V0KCkKK3sKKyAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9y
TG9jYWwoZnJhbWVSZWdpc3RlckNvdW50KCkgLSAxKS5vZmZzZXQoKTsKK30KKwogc2l6ZV90IENv
ZGVCbG9jazo6cHJlZGljdGVkTWFjaGluZUNvZGVTaXplKCkKIHsKICAgICAvLyBUaGlzIHdpbGwg
YmUgY2FsbGVkIGZyb20gQ29kZUJsb2NrOjpDb2RlQmxvY2sgYmVmb3JlIGVpdGhlciBtX3ZtIG9y
IHRoZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNiArMTc1LDkgQEAgcHVibGljOgogICAgIHZv
aWQgZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQgYnl0ZWNvZGVPZmZz
ZXQsIGludCYgZGl2b3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQmIHN0YXJ0T2Zmc2V0LCBpbnQmIGVuZE9mZnNldCwgdW5zaWduZWQmIGxpbmUsIHVuc2ln
bmVkJiBjb2x1bW4pOwogCisgICAgdm9pZCBnZXRTdHViSW5mb01hcChjb25zdCBDb25jdXJyZW50
SklUTG9ja2VyJiwgU3R1YkluZm9NYXAmIHJlc3VsdCk7CisgICAgdm9pZCBnZXRTdHViSW5mb01h
cChTdHViSW5mb01hcCYgcmVzdWx0KTsKKwogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJl
U3R1YkluZm8qIGFkZFN0dWJJbmZvKCk7CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPjo6aXRl
cmF0b3IgYmVnaW4oKSB7IHJldHVybiBtX3N0dWJJbmZvcy5iZWdpbigpOyB9CkBAIC0xODIsOCAr
MTg1LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXNldFN0dWIoU3RydWN0dXJlU3R1YkluZm8m
KTsKICAgICAKLSAgICB2b2lkIGdldFN0dWJJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2Nr
ZXImLCBTdHViSW5mb01hcCYgcmVzdWx0KTsKLQogICAgIEJ5VmFsSW5mbyYgZ2V0QnlWYWxJbmZv
KHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpCiAgICAgewogICAgICAgICByZXR1cm4gKihiaW5hcnlT
ZWFyY2g8QnlWYWxJbmZvLCB1bnNpZ25lZD4obV9ieVZhbEluZm9zLCBtX2J5VmFsSW5mb3Muc2l6
ZSgpLCBieXRlY29kZUluZGV4LCBnZXRCeVZhbEluZm9CeXRlY29kZUluZGV4KSk7CkBAIC0yNTYs
MTcgKzI1NywxNSBAQCBwdWJsaWM6CiAgICAgLy8gRXhhY3RseSBlcXVpdmFsZW50IHRvIGNvZGVC
bG9jay0+b3duZXJFeGVjdXRhYmxlKCktPm5ld1JlcGxhY2VtZW50Q29kZUJsb2NrRm9yKGNvZGVC
bG9jay0+c3BlY2lhbGl6YXRpb25LaW5kKCkpCiAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IG5l
d1JlcGxhY2VtZW50KCk7CiAgICAgCi0gICAgdm9pZCBzZXRKSVRDb2RlKFBhc3NSZWZQdHI8SklU
Q29kZT4gY29kZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVXaXRoQXJpdHlDaGVjaykKKyAg
ICB2b2lkIHNldEpJVENvZGUoUGFzc1JlZlB0cjxKSVRDb2RlPiBjb2RlKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKG1faGVhcC0+aXNEZWZlcnJlZCgpKTsKICAgICAgICAgbV9oZWFwLT5yZXBvcnRF
eHRyYU1lbW9yeUNvc3QoY29kZS0+c2l6ZSgpKTsKICAgICAgICAgQ29uY3VycmVudEpJVExvY2tl
ciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsgLy8gVGhp
cyBpcyBwcm9iYWJseSBub3QgbmVlZGVkIGJlY2F1c2UgdGhlIGxvY2sgd2lsbCBhbHNvIGRvIHNv
bWV0aGluZyBzaW1pbGFyLCBidXQgaXQncyBnb29kIHRvIGJlIHBhcmFub2lkLgogICAgICAgICBt
X2ppdENvZGUgPSBjb2RlOwotICAgICAgICBtX2ppdENvZGVXaXRoQXJpdHlDaGVjayA9IGNvZGVX
aXRoQXJpdHlDaGVjazsKICAgICB9CiAgICAgUGFzc1JlZlB0cjxKSVRDb2RlPiBqaXRDb2RlKCkg
eyByZXR1cm4gbV9qaXRDb2RlOyB9Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGppdENvZGVX
aXRoQXJpdHlDaGVjaygpIHsgcmV0dXJuIG1faml0Q29kZVdpdGhBcml0eUNoZWNrOyB9CiAgICAg
SklUQ29kZTo6SklUVHlwZSBqaXRUeXBlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEpJVENvZGUq
IGppdENvZGUgPSBtX2ppdENvZGUuZ2V0KCk7CkBAIC00ODksOCArNDg4LDggQEAgcHVibGljOgog
ICAgIFJhcmVDYXNlUHJvZmlsZSogc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUZvckJ5dGVjb2RlT2Zm
c2V0KGludCBieXRlY29kZU9mZnNldCkKICAgICB7CiAgICAgICAgIHJldHVybiB0cnlCaW5hcnlT
ZWFyY2g8UmFyZUNhc2VQcm9maWxlLCBpbnQ+KAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NwZWNpYWxGYXN0Q2FzZVByb2ZpbGVzLCBtX3Nw
ZWNpYWxGYXN0Q2FzZVByb2ZpbGVzLnNpemUoKSwgYnl0ZWNvZGVPZmZzZXQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFJhcmVDYXNlUHJv
ZmlsZUJ5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgICAgIG1fc3BlY2lhbEZhc3RDYXNlUHJvZmls
ZXMsIG1fc3BlY2lhbEZhc3RDYXNlUHJvZmlsZXMuc2l6ZSgpLCBieXRlY29kZU9mZnNldCwKKyAg
ICAgICAgICAgIGdldFJhcmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KTsKICAgICB9CiAKICAg
ICBib29sIGxpa2VseVRvVGFrZVNwZWNpYWxGYXN0Q2FzZShpbnQgYnl0ZWNvZGVPZmZzZXQpCkBA
IC01NzYsMTEgKzU3NSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKG1fbG9jayk7CiAgICAgICAgIHJldHVybiBtX2V4aXRQcm9maWxlLmFkZChsb2NrZXIs
IHNpdGUpOwogICAgIH0KLSAgICAgICAgCisKKyAgICBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENv
bmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgY29uc3QgREZHOjpGcmVxdWVudEV4aXRTaXRlJiBz
aXRlKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUuaGFzRXhpdFNp
dGUobG9ja2VyLCBzaXRlKTsKKyAgICB9CiAgICAgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBERkc6
OkZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpIGNvbnN0CiAgICAgewogICAgICAgICBDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5o
YXNFeGl0U2l0ZShsb2NrZXIsIHNpdGUpOworICAgICAgICByZXR1cm4gaGFzRXhpdFNpdGUobG9j
a2VyLCBzaXRlKTsKICAgICB9CiAKICAgICBERkc6OkV4aXRQcm9maWxlJiBleGl0UHJvZmlsZSgp
IHsgcmV0dXJuIG1fZXhpdFByb2ZpbGU7IH0KQEAgLTU4OSwxMSArNTkyLDYgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgcmV0dXJuIG1fbGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVzOwogICAgIH0K
LSNlbHNlIC8vIEVOQUJMRShERkdfSklUKQotICAgIGJvb2wgYWRkRnJlcXVlbnRFeGl0U2l0ZShj
b25zdCBERkc6OkZyZXF1ZW50RXhpdFNpdGUmKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKIAogICAgIC8vIENvbnN0YW50IFBv
b2wKQEAgLTY3OSw5ICs2NzcsMTkgQEAgcHVibGljOgogCiAgICAgQnl0ZWNvZGVMaXZlbmVzc0Fu
YWx5c2lzJiBsaXZlbmVzc0FuYWx5c2lzKCkKICAgICB7Ci0gICAgICAgIGlmICghbV9saXZlbmVz
c0FuYWx5c2lzKQotICAgICAgICAgICAgbV9saXZlbmVzc0FuYWx5c2lzID0gc3RkOjptYWtlX3Vu
aXF1ZTxCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXM+KHRoaXMpOwotICAgICAgICByZXR1cm4gKm1f
bGl2ZW5lc3NBbmFseXNpczsKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExv
Y2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgICAgIGlmICghIW1fbGl2ZW5lc3NBbmFseXNp
cykKKyAgICAgICAgICAgICAgICByZXR1cm4gKm1fbGl2ZW5lc3NBbmFseXNpczsKKyAgICAgICAg
fQorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Qnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzPiBhbmFs
eXNpcyA9CisgICAgICAgICAgICBzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVjb2RlTGl2ZW5lc3NBbmFs
eXNpcz4odGhpcyk7CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKG1fbG9jayk7CisgICAgICAgICAgICBpZiAoIW1fbGl2ZW5lc3NBbmFseXNpcykKKyAg
ICAgICAgICAgICAgICBtX2xpdmVuZXNzQW5hbHlzaXMgPSBzdGQ6Om1vdmUoYW5hbHlzaXMpOwor
ICAgICAgICAgICAgcmV0dXJuICptX2xpdmVuZXNzQW5hbHlzaXM7CisgICAgICAgIH0KICAgICB9
CiAgICAgCiAgICAgdm9pZCB2YWxpZGF0ZSgpOwpAQCAtODY2LDYgKzg3NCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVwZGF0ZUFsbFByZWRpY3Rpb25zKCk7CiAKICAgICB1bnNpZ25lZCBmcmFtZVJl
Z2lzdGVyQ291bnQoKTsKKyAgICBpbnQgc3RhY2tQb2ludGVyT2Zmc2V0KCk7CiAKICAgICBib29s
IGhhc09wRGVidWdGb3JMaW5lQW5kQ29sdW1uKHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVt
bik7CiAKQEAgLTg5MSw3ICs5MDAsNyBAQCBwdWJsaWM6CiAKICAgICBpbnQgbV9udW1DYWxsZWVS
ZWdpc3RlcnM7CiAgICAgaW50IG1fbnVtVmFyczsKLSAgICBib29sIG1faXNDb25zdHJ1Y3RvcjsK
KyAgICBib29sIG1faXNDb25zdHJ1Y3RvciA6IDE7CiAgICAgCiAgICAgLy8gVGhpcyBpcyBpbnRl
bnRpb25hbGx5IHB1YmxpYzsgaXQncyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgYW55b25lIGRvaW5n
IGFueQogICAgIC8vIG9mIHRoZSBmb2xsb3dpbmcgdG8gaG9sZCB0aGUgbG9jazoKQEAgLTkxMSwx
MCArOTIwLDExIEBAIHB1YmxpYzoKICAgICAvLyBjb25jdXJyZW50IGNvbXBpbGF0aW9uIHRocmVh
ZHMgZmluaXNoIHdoYXQgdGhleSdyZSBkb2luZy4KICAgICBtdXRhYmxlIENvbmN1cnJlbnRKSVRM
b2NrIG1fbG9jazsKICAgICAKLSAgICBib29sIG1fc2hvdWxkQWx3YXlzQmVJbmxpbmVkOwotICAg
IGJvb2wgbV9hbGxUcmFuc2l0aW9uc0hhdmVCZWVuTWFya2VkOyAvLyBJbml0aWFsaXplZCBhbmQg
dXNlZCBvbiBldmVyeSBHQy4KKyAgICBib29sIG1fc2hvdWxkQWx3YXlzQmVJbmxpbmVkOyAvLyBO
b3QgYSBiaXRmaWVsZCBiZWNhdXNlIHRoZSBKSVQgd2FudHMgdG8gc3RvcmUgdG8gaXQuCisgICAg
Ym9vbCBtX2FsbFRyYW5zaXRpb25zSGF2ZUJlZW5NYXJrZWQgOiAxOyAvLyBJbml0aWFsaXplZCBh
bmQgdXNlZCBvbiBldmVyeSBHQy4KICAgICAKLSAgICBib29sIG1fZGlkRmFpbEZUTENvbXBpbGF0
aW9uOworICAgIGJvb2wgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb24gOiAxOworICAgIGJvb2wgbV9o
YXNCZWVuQ29tcGlsZWRXaXRoRlRMIDogMTsKIAogICAgIC8vIEludGVybmFsIG1ldGhvZHMgZm9y
IHVzZSBieSB2YWxpZGF0aW9uIGNvZGUuIEl0IHdvdWxkIGJlIHByaXZhdGUgaWYgaXQgd2Fzbid0
CiAgICAgLy8gZm9yIHRoZSBmYWN0IHRoYXQgd2UgdXNlIGl0IGZyb20gYW5vbnltb3VzIG5hbWVz
cGFjZXMuCkBAIC0xMDU0LDcgKzEwNjQsNiBAQCBwcml2YXRlOgogICAgIFNlbnRpbmVsTGlua2Vk
TGlzdDxMTEludENhbGxMaW5rSW5mbywgQmFzaWNSYXdTZW50aW5lbE5vZGU8TExJbnRDYWxsTGlu
a0luZm8+PiBtX2luY29taW5nTExJbnRDYWxsczsKICNlbmRpZgogICAgIFJlZlB0cjxKSVRDb2Rl
PiBtX2ppdENvZGU7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1faml0Q29kZVdpdGhBcml0
eUNoZWNrOwogI2lmIEVOQUJMRShKSVQpCiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiBtX3N0
dWJJbmZvczsKICAgICBWZWN0b3I8QnlWYWxJbmZvPiBtX2J5VmFsSW5mb3M7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uY3BwCShyZXZpc2lvbiAx
NjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDY0IEBAIHVuc2lnbmVkIENvZGVPcmlnaW46Omlu
bGluZURlcHRoKCkgY29uc3QKIHsKICAgICByZXR1cm4gaW5saW5lRGVwdGhGb3JDYWxsRnJhbWUo
aW5saW5lQ2FsbEZyYW1lKTsKIH0KKworYm9vbCBDb2RlT3JpZ2luOjppc0FwcHJveGltYXRlbHlF
cXVhbFRvKGNvbnN0IENvZGVPcmlnaW4mIG90aGVyKSBjb25zdAoreworICAgIENvZGVPcmlnaW4g
YSA9ICp0aGlzOworICAgIENvZGVPcmlnaW4gYiA9IG90aGVyOworCisgICAgaWYgKCFhLmlzU2V0
KCkpCisgICAgICAgIHJldHVybiAhYi5pc1NldCgpOworICAgIGlmICghYi5pc1NldCgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGEuaXNIYXNoVGFibGVEZWxldGVkVmFs
dWUoKSkKKyAgICAgICAgcmV0dXJuIGIuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKTsKKyAgICBp
ZiAoYi5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgZm9yICg7OykgeworICAgICAgICBBU1NFUlQoYS5pc1NldCgpKTsKKyAgICAgICAg
QVNTRVJUKGIuaXNTZXQoKSk7CisgICAgICAgIAorICAgICAgICBpZiAoYS5ieXRlY29kZUluZGV4
ICE9IGIuYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
CisgICAgICAgIGlmICgoISFhLmlubGluZUNhbGxGcmFtZSkgIT0gKCEhYi5pbmxpbmVDYWxsRnJh
bWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYgKCFh
LmlubGluZUNhbGxGcmFtZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAKKyAg
ICAgICAgaWYgKGEuaW5saW5lQ2FsbEZyYW1lLT5leGVjdXRhYmxlICE9IGIuaW5saW5lQ2FsbEZy
YW1lLT5leGVjdXRhYmxlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAg
ICAgICAgYSA9IGEuaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7CisgICAgICAgIGIgPSBiLmlubGlu
ZUNhbGxGcmFtZS0+Y2FsbGVyOworICAgIH0KK30KKwordW5zaWduZWQgQ29kZU9yaWdpbjo6YXBw
cm94aW1hdGVIYXNoKCkgY29uc3QKK3sKKyAgICBpZiAoIWlzU2V0KCkpCisgICAgICAgIHJldHVy
biAwOworICAgIGlmIChpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKQorICAgICAgICByZXR1cm4g
MTsKICAgICAKKyAgICB1bnNpZ25lZCByZXN1bHQgPSAyOworICAgIENvZGVPcmlnaW4gY29kZU9y
aWdpbiA9ICp0aGlzOworICAgIGZvciAoOzspIHsKKyAgICAgICAgcmVzdWx0ICs9IGNvZGVPcmln
aW4uYnl0ZWNvZGVJbmRleDsKKyAgICAgICAgCisgICAgICAgIGlmICghY29kZU9yaWdpbi5pbmxp
bmVDYWxsRnJhbWUpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAKKyAgICAg
ICAgcmVzdWx0ICs9IFdURjo6UHRySGFzaDxKU0NlbGwqPjo6aGFzaChjb2RlT3JpZ2luLmlubGlu
ZUNhbGxGcmFtZS0+ZXhlY3V0YWJsZS5nZXQoKSk7CisgICAgICAgIAorICAgICAgICBjb2RlT3Jp
Z2luID0gY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUtPmNhbGxlcjsKKyAgICB9Cit9CisKIFZl
Y3RvcjxDb2RlT3JpZ2luPiBDb2RlT3JpZ2luOjppbmxpbmVTdGFjaygpIGNvbnN0CiB7CiAgICAg
VmVjdG9yPENvZGVPcmlnaW4+IHJlc3VsdChpbmxpbmVEZXB0aCgpKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uaAkocmV2aXNpb24gMTYyOTYxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uaAkod29ya2luZyBj
b3B5KQpAQCAtNjMsNyArNjMsNyBAQCBzdHJ1Y3QgQ29kZU9yaWdpbiB7CiAgICAgCiAgICAgQ29k
ZU9yaWdpbihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCiAgICAgICAgIDogYnl0ZWNv
ZGVJbmRleChpbnZhbGlkQnl0ZWNvZGVJbmRleCkKLSAgICAgICAgLCBpbmxpbmVDYWxsRnJhbWUo
Yml0d2lzZV9jYXN0PElubGluZUNhbGxGcmFtZSo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSkp
KQorICAgICAgICAsIGlubGluZUNhbGxGcmFtZShkZWxldGVkTWFya2VyKCkpCiAgICAgewogICAg
IH0KICAgICAKQEAgLTk3LDE1ICs5NywyNyBAQCBzdHJ1Y3QgQ29kZU9yaWdpbiB7CiAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IENvZGVPcmlnaW4mIG90aGVyKSBjb25zdDsKICAgICBib29sIG9w
ZXJhdG9yIT0oY29uc3QgQ29kZU9yaWdpbiYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMg
PT0gb3RoZXIpOyB9CiAgICAgCisgICAgLy8gVGhpcyBjaGVja3MgaWYgdGhlIHR3byBjb2RlIG9y
aWdpbnMgY29ycmVzcG9uZCB0byB0aGUgc2FtZSBzdGFjayB0cmFjZSBzbmlwcGV0cywKKyAgICAv
LyBidXQgaWdub3JlIHdoZXRoZXIgdGhlIElubGluZUNhbGxGcmFtZSdzIGFyZSBpZGVudGljYWwu
CisgICAgYm9vbCBpc0FwcHJveGltYXRlbHlFcXVhbFRvKGNvbnN0IENvZGVPcmlnaW4mIG90aGVy
KSBjb25zdDsKKyAgICAKKyAgICB1bnNpZ25lZCBhcHByb3hpbWF0ZUhhc2goKSBjb25zdDsKKyAg
ICAKICAgICAvLyBHZXQgdGhlIGlubGluZSBzdGFjay4gVGhpcyBpcyBzbG93LCBhbmQgaXMgaW50
ZW5kZWQgZm9yIGRlYnVnZ2luZyBvbmx5LgogICAgIFZlY3RvcjxDb2RlT3JpZ2luPiBpbmxpbmVT
dGFjaygpIGNvbnN0OwogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0Owog
ICAgIHZvaWQgZHVtcEluQ29udGV4dChQcmludFN0cmVhbSYsIER1bXBDb250ZXh0KikgY29uc3Q7
CisKK3ByaXZhdGU6CisgICAgc3RhdGljIElubGluZUNhbGxGcmFtZSogZGVsZXRlZE1hcmtlcigp
CisgICAgeworICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PElubGluZUNhbGxGcmFtZSo+KHN0
YXRpY19jYXN0PHVpbnRwdHJfdD4oMSkpOworICAgIH0KIH07CiAKIHN0cnVjdCBJbmxpbmVDYWxs
RnJhbWUgewotICAgIFZlY3RvcjxWYWx1ZVJlY292ZXJ5PiBhcmd1bWVudHM7CisgICAgVmVjdG9y
PFZhbHVlUmVjb3Zlcnk+IGFyZ3VtZW50czsgLy8gSW5jbHVkZXMgJ3RoaXMnLgogICAgIFdyaXRl
QmFycmllcjxTY3JpcHRFeGVjdXRhYmxlPiBleGVjdXRhYmxlOwogICAgIFZhbHVlUmVjb3Zlcnkg
Y2FsbGVlUmVjb3Zlcnk7CiAgICAgQ29kZU9yaWdpbiBjYWxsZXI7CkBAIC0xODUsNiArMTk3LDEy
IEBAIHN0cnVjdCBDb2RlT3JpZ2luSGFzaCB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAorc3RydWN0IENvZGVPcmlnaW5B
cHByb3hpbWF0ZUhhc2ggeworICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IENvZGVPcmln
aW4mIGtleSkgeyByZXR1cm4ga2V5LmFwcHJveGltYXRlSGFzaCgpOyB9CisgICAgc3RhdGljIGJv
b2wgZXF1YWwoY29uc3QgQ29kZU9yaWdpbiYgYSwgY29uc3QgQ29kZU9yaWdpbiYgYikgeyByZXR1
cm4gYS5pc0FwcHJveGltYXRlbHlFcXVhbFRvKGIpOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworfTsKKwogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKIG5hbWVzcGFjZSBXVEYgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw2ICszNyw4IEBAIEV4aXRQcm9maWxlOjp+RXhpdFByb2ZpbGUoKSB7IH0K
IAogYm9vbCBFeGl0UHJvZmlsZTo6YWRkKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBjb25z
dCBGcmVxdWVudEV4aXRTaXRlJiBzaXRlKQogeworICAgIEFTU0VSVChzaXRlLmppdFR5cGUoKSAh
PSBFeGl0RnJvbUFueXRoaW5nKTsKKyAgICAKICAgICAvLyBJZiB3ZSd2ZSBuZXZlciBzZWVuIGFu
eSBmcmVxdWVudCBleGl0cyB0aGVuIGNyZWF0ZSB0aGUgbGlzdCBhbmQgcHV0IHRoaXMgc2l0ZQog
ICAgIC8vIGludG8gaXQuCiAgICAgaWYgKCFtX2ZyZXF1ZW50RXhpdFNpdGVzKSB7CkBAIC03OCw3
ICs4MCw3IEBAIGJvb2wgRXhpdFByb2ZpbGU6Omhhc0V4aXRTaXRlKGNvbnN0IENvbmMKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9IG1fZnJlcXVlbnRF
eGl0U2l0ZXMtPnNpemUoKTsgaS0tOykgewotICAgICAgICBpZiAobV9mcmVxdWVudEV4aXRTaXRl
cy0+YXQoaSkgPT0gc2l0ZSkKKyAgICAgICAgaWYgKHNpdGUuc3Vic3VtZXMobV9mcmVxdWVudEV4
aXRTaXRlcy0+YXQoaSkpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJl
dHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0
UHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9E
RkdFeGl0UHJvZmlsZS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjYsOCArMjYsMTEgQEAKICNpZm5kZWYgREZHRXhpdFByb2ZpbGVfaAogI2Rl
ZmluZSBERkdFeGl0UHJvZmlsZV9oCiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKKwogI2luY2x1ZGUg
IkNvbmN1cnJlbnRKSVRMb2NrLmgiCiAjaW5jbHVkZSAiRXhpdEtpbmQuaCIKKyNpbmNsdWRlICJF
eGl0aW5nSklUVHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM5LDE4ICs0MiwyMSBAQCBw
dWJsaWM6CiAgICAgRnJlcXVlbnRFeGl0U2l0ZSgpCiAgICAgICAgIDogbV9ieXRlY29kZU9mZnNl
dCgwKSAvLyAwID0gZW1wdHkgdmFsdWUKICAgICAgICAgLCBtX2tpbmQoRXhpdEtpbmRVbnNldCkK
KyAgICAgICAgLCBtX2ppdFR5cGUoRXhpdEZyb21Bbnl0aGluZykKICAgICB7CiAgICAgfQogICAg
IAogICAgIEZyZXF1ZW50RXhpdFNpdGUoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQog
ICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQoMSkgLy8gMSA9IGRlbGV0ZWQgdmFsdWUKICAgICAg
ICAgLCBtX2tpbmQoRXhpdEtpbmRVbnNldCkKKyAgICAgICAgLCBtX2ppdFR5cGUoRXhpdEZyb21B
bnl0aGluZykKICAgICB7CiAgICAgfQogICAgIAotICAgIGV4cGxpY2l0IEZyZXF1ZW50RXhpdFNp
dGUodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsIEV4aXRLaW5kIGtpbmQpCisgICAgZXhwbGljaXQg
RnJlcXVlbnRFeGl0U2l0ZSh1bnNpZ25lZCBieXRlY29kZU9mZnNldCwgRXhpdEtpbmQga2luZCwg
RXhpdGluZ0pJVFR5cGUgaml0VHlwZSA9IEV4aXRGcm9tQW55dGhpbmcpCiAgICAgICAgIDogbV9i
eXRlY29kZU9mZnNldChieXRlY29kZU9mZnNldCkKICAgICAgICAgLCBtX2tpbmQoa2luZCkKKyAg
ICAgICAgLCBtX2ppdFR5cGUoaml0VHlwZSkKICAgICB7CiAgICAgICAgIGlmIChtX2tpbmQgPT0g
QXJndW1lbnRzRXNjYXBlZCkgewogICAgICAgICAgICAgLy8gQ291bnQgdGhpcyBvbmUgZ2xvYmFs
bHkuIEl0IGRvZXNuJ3QgbWF0dGVyIHdoZXJlIGluIHRoZSBjb2RlIGJsb2NrIHRoZSBhcmd1bWVu
dHMgZXhjYXBlZDsKQEAgLTYxLDkgKzY3LDEwIEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBVc2Ug
dGhpcyBjb25zdHJ1Y3RvciBpZiB5b3Ugd2lzaCBmb3IgdGhlIGV4aXQgc2l0ZSB0byBiZSBjb3Vu
dGVkIGdsb2JhbGx5IHdpdGhpbiBpdHMKICAgICAvLyBjb2RlIGJsb2NrLgotICAgIGV4cGxpY2l0
IEZyZXF1ZW50RXhpdFNpdGUoRXhpdEtpbmQga2luZCkKKyAgICBleHBsaWNpdCBGcmVxdWVudEV4
aXRTaXRlKEV4aXRLaW5kIGtpbmQsIEV4aXRpbmdKSVRUeXBlIGppdFR5cGUgPSBFeGl0RnJvbUFu
eXRoaW5nKQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQoMCkKICAgICAgICAgLCBtX2tpbmQo
a2luZCkKKyAgICAgICAgLCBtX2ppdFR5cGUoaml0VHlwZSkKICAgICB7CiAgICAgfQogICAgIApA
QCAtNzUsMTYgKzgyLDM2IEBAIHB1YmxpYzoKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRnJl
cXVlbnRFeGl0U2l0ZSYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9ieXRl
Y29kZU9mZnNldCA9PSBvdGhlci5tX2J5dGVjb2RlT2Zmc2V0Ci0gICAgICAgICAgICAmJiBtX2tp
bmQgPT0gb3RoZXIubV9raW5kOworICAgICAgICAgICAgJiYgbV9raW5kID09IG90aGVyLm1fa2lu
ZAorICAgICAgICAgICAgJiYgbV9qaXRUeXBlID09IG90aGVyLm1faml0VHlwZTsKKyAgICB9Cisg
ICAgCisgICAgYm9vbCBzdWJzdW1lcyhjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBvdGhlcikgY29u
c3QKKyAgICB7CisgICAgICAgIGlmIChtX2J5dGVjb2RlT2Zmc2V0ICE9IG90aGVyLm1fYnl0ZWNv
ZGVPZmZzZXQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChtX2tpbmQg
IT0gb3RoZXIubV9raW5kKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAo
bV9qaXRUeXBlID09IEV4aXRGcm9tQW55dGhpbmcpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgcmV0dXJuIG1faml0VHlwZSA9PSBvdGhlci5tX2ppdFR5cGU7CiAgICAgfQogICAg
IAogICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIFdURjo6
aW50SGFzaChtX2J5dGVjb2RlT2Zmc2V0KSArIG1fa2luZDsKKyAgICAgICAgcmV0dXJuIFdURjo6
aW50SGFzaChtX2J5dGVjb2RlT2Zmc2V0KSArIG1fa2luZCArIG1faml0VHlwZSAqIDc7CiAgICAg
fQogICAgIAogICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9i
eXRlY29kZU9mZnNldDsgfQogICAgIEV4aXRLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tp
bmQ7IH0KKyAgICBFeGl0aW5nSklUVHlwZSBqaXRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9qaXRU
eXBlOyB9CisgICAgCisgICAgRnJlcXVlbnRFeGl0U2l0ZSB3aXRoSklUVHlwZShFeGl0aW5nSklU
VHlwZSBqaXRUeXBlKSBjb25zdAorICAgIHsKKyAgICAgICAgRnJlcXVlbnRFeGl0U2l0ZSByZXN1
bHQgPSAqdGhpczsKKyAgICAgICAgcmVzdWx0Lm1faml0VHlwZSA9IGppdFR5cGU7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQogCiAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpIGNvbnN0CiAgICAgewpAQCAtOTQsNiArMTIxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB1bnNpZ25lZCBtX2J5dGVjb2RlT2Zmc2V0OwogICAgIEV4aXRLaW5kIG1fa2luZDsKKyAgICBF
eGl0aW5nSklUVHlwZSBtX2ppdFR5cGU7CiB9OwogCiBzdHJ1Y3QgRnJlcXVlbnRFeGl0U2l0ZUhh
c2ggewpAQCAtMTA0LDYgKzEzMiw3IEBAIHN0cnVjdCBGcmVxdWVudEV4aXRTaXRlSGFzaCB7CiAK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAorCiBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOwpAQCAtMTY2LDYgKzE5NSwxMCBAQCBw
dWJsaWM6CiAKICAgICBib29sIGhhc0V4aXRTaXRlKGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNp
dGUpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAoc2l0ZS5qaXRUeXBlKCkgPT0gRXhpdEZyb21B
bnl0aGluZykgeworICAgICAgICAgICAgcmV0dXJuIGhhc0V4aXRTaXRlKHNpdGUud2l0aEpJVFR5
cGUoRXhpdEZyb21ERkcpKQorICAgICAgICAgICAgICAgIHx8IGhhc0V4aXRTaXRlKHNpdGUud2l0
aEpJVFR5cGUoRXhpdEZyb21GVEwpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9mcmVx
dWVudEV4aXRTaXRlcy5maW5kKHNpdGUpICE9IG1fZnJlcXVlbnRFeGl0U2l0ZXMuZW5kKCk7CiAg
ICAgfQogICAgIApAQCAtMTg0LDQgKzIxNyw2IEBAIHByaXZhdGU6CiAKIH0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpERkcKIAorI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCiAjZW5kaWYgLy8gREZH
RXhpdFByb2ZpbGVfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRL
aW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRL
aW5kLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9FeGl0S2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCi1lbnVtIEV4aXRLaW5kIHsKK2VudW0gRXhpdEtpbmQgOiB1aW50OF90IHsKICAg
ICBFeGl0S2luZFVuc2V0LAogICAgIEJhZFR5cGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGEgdHlw
ZSBwcmVkaWN0aW9uIHdhcyB3cm9uZy4KICAgICBCYWRGdW5jdGlvbiwgLy8gV2UgZXhpdGVkIGJl
Y2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBhYm91dCB3aGF0IGZ1bmN0aW9u
IHdlIHdvdWxkIHNlZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0
aW5nSklUVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9FeGl0aW5nSklUVHlwZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0V4aXRpbmdKSVRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IEV4aXRpbmdKSVRUeXBlX2gKKyNkZWZpbmUgRXhpdGluZ0pJVFR5cGVfaAorCisjaW5jbHVkZSAi
SklUQ29kZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworZW51bSBFeGl0aW5nSklUVHlwZSA6IHVp
bnQ4X3QgeworICAgIEV4aXRGcm9tQW55dGhpbmcsCisgICAgRXhpdEZyb21ERkcsCisgICAgRXhp
dEZyb21GVEwKK307CisKK2lubGluZSBFeGl0aW5nSklUVHlwZSBleGl0aW5nSklUVHlwZUZvcihK
SVRDb2RlOjpKSVRUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBK
SVRDb2RlOjpERkdKSVQ6CisgICAgICAgIHJldHVybiBFeGl0RnJvbURGRzsKKyAgICBjYXNlIEpJ
VENvZGU6OkZUTEpJVDoKKyAgICAgICAgcmV0dXJuIEV4aXRGcm9tRlRMOworICAgIGRlZmF1bHQ6
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBF
eGl0RnJvbUFueXRoaW5nOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRp
ZiAvLyBFeGl0aW5nSklUVHlwZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9HZXRCeUlkU3RhdHVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzQsNiArMzQsMTYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBF
TkFCTEUoSklUKQorYm9vbCBHZXRCeUlkU3RhdHVzOjpoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQg
Ynl0ZWNvZGVJbmRleCwgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkKK3sKKyAgICByZXR1cm4gcHJv
ZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0
ZWNvZGVJbmRleCwgQmFkQ2FjaGUsIGppdFR5cGUpKQorICAgICAgICB8fCBwcm9maWxlZEJsb2Nr
LT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4
LCBCYWRDYWNoZVdhdGNocG9pbnQsIGppdFR5cGUpKQorICAgICAgICB8fCBwcm9maWxlZEJsb2Nr
LT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4
LCBCYWRXZWFrQ29uc3RhbnRDYWNoZSwgaml0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxv
Y2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5k
ZXgsIEJhZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2ludCwgaml0VHlwZSkpOworfQorI2VuZGlm
CisKIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludChDb2RlQmxv
Y2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVp
ZCkKIHsKICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CkBAIC0xMTksMTQgKzEyOSwz
NCBAQCB2b2lkIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JDaGFpbihHZXRCCiBHZXRCeUlkU3Rh
dHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBT
dHViSW5mb01hcCYgbWFwLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQp
CiB7CiAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIocHJvZmlsZWRCbG9jay0+bV9sb2Nr
KTsKKworICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0OworCisjaWYgRU5BQkxFKEpJVCkKKyAgICBy
ZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm8oCisgICAgICAgIGxvY2tlciwgcHJvZmlsZWRCbG9j
aywgbWFwLmdldChDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgpKSwgdWlkKTsKICAgICAKLSAgICBV
TlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7Ci0gICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5k
ZXgpOwotICAgIFVOVVNFRF9QQVJBTSh1aWQpOworICAgIGlmICghcmVzdWx0LnRha2VzU2xvd1Bh
dGgoKQorICAgICAgICAmJiAoaGFzRXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBieXRl
Y29kZUluZGV4KQorICAgICAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xv
d0Nhc2UoYnl0ZWNvZGVJbmRleCkpKQorICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhUYWtl
c1Nsb3dQYXRoLCB0cnVlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1hcCk7CisjZW5kaWYK
KworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9m
aWxlZEJsb2NrLCBieXRlY29kZUluZGV4LCB1aWQpOworICAgIAorICAgIHJldHVybiByZXN1bHQ7
Cit9CisKICNpZiBFTkFCTEUoSklUKQotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9
IG1hcC5nZXQoQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSk7CitHZXRCeUlkU3RhdHVzIEdldEJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbygKKyAgICBjb25zdCBDb25jdXJyZW50SklUTG9j
a2VyJiwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1Yklu
Zm8sCisgICAgU3RyaW5nSW1wbCogdWlkKQorewogICAgIGlmICghc3R1YkluZm8gfHwgIXN0dWJJ
bmZvLT5zZWVuKQotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxlZEJsb2Nr
LCBieXRlY29kZUluZGV4LCB1aWQpOworICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0lu
Zm9ybWF0aW9uKTsKICAgICAKICAgICBpZiAoc3R1YkluZm8tPnJlc2V0QnlHQykKICAgICAgICAg
cmV0dXJuIEdldEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgdHJ1ZSk7CkBAIC0xNTIsMTYgKzE4
MiwxMiBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCiAgICAgICAg
ICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhNYWtlc0NhbGxzLCB0cnVlKTsKICAgICB9CiAgICAg
Ci0gICAgLy8gTmV4dCBjaGVjayBpZiBpdCB0YWtlcyBzbG93IGNhc2UsIGluIHdoaWNoIGNhc2Ug
d2Ugd2FudCB0byBiZSBraW5kIG9mIGNhcmVmdWwuCi0gICAgaWYgKHByb2ZpbGVkQmxvY2stPmxp
a2VseVRvVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpKQotICAgICAgICByZXR1cm4gR2V0QnlJ
ZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCB0cnVlKTsKLSAgICAKICAgICAvLyBGaW5hbGx5IGZpZ3Vy
ZSBvdXQgaWYgd2UgY2FuIGRlcml2ZSBhbiBhY2Nlc3Mgc3RyYXRlZ3kuCiAgICAgR2V0QnlJZFN0
YXR1cyByZXN1bHQ7CiAgICAgcmVzdWx0Lm1fd2FzU2VlbkluSklUID0gdHJ1ZTsgLy8gVGhpcyBp
cyBpbnRlcmVzdGluZyBmb3IgYnl0ZWNvZGUgZHVtcGluZyBvbmx5LgogICAgIHN3aXRjaCAoc3R1
YkluZm8tPmFjY2Vzc1R5cGUpIHsKICAgICBjYXNlIGFjY2Vzc191bnNldDoKLSAgICAgICAgcmV0
dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCwgdWlkKTsK
KyAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbik7CiAgICAgICAgIAog
ICAgIGNhc2UgYWNjZXNzX2dldF9ieV9pZF9zZWxmOiB7CiAgICAgICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlID0gc3R1YkluZm8tPnUuZ2V0QnlJZFNlbGYuYmFzZU9iamVjdFN0cnVjdHVyZS5nZXQo
KTsKQEAgLTI2MSwxMCArMjg3LDM5IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29t
cHV0ZUZvcigKICAgICAgICAgcmVzdWx0Lm1fc3RhdGUgPSBTaW1wbGU7CiAgICAgCiAgICAgcmV0
dXJuIHJlc3VsdDsKLSNlbHNlIC8vIEVOQUJMRShKSVQpCi0gICAgVU5VU0VEX1BBUkFNKG1hcCk7
Ci0gICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgZmFsc2UpOworfQogI2Vu
ZGlmIC8vIEVOQUJMRShKSVQpCisKK0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvcigKKyAgICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ss
IFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwKKyAgICBTdHViSW5mb01hcCYgZGZnTWFwLCBDb2Rl
T3JpZ2luIGNvZGVPcmlnaW4sIFN0cmluZ0ltcGwqIHVpZCkKK3sKKyNpZiBFTkFCTEUoREZHX0pJ
VCkKKyAgICBpZiAoZGZnQmxvY2spIHsKKyAgICAgICAgR2V0QnlJZFN0YXR1cyByZXN1bHQ7Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGRmZ0Jsb2Nr
LT5tX2xvY2spOworICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKGxvY2tl
ciwgZGZnQmxvY2ssIGRmZ01hcC5nZXQoY29kZU9yaWdpbiksIHVpZCk7CisgICAgICAgIH0KKyAg
ICAKKyAgICAgICAgaWYgKHJlc3VsdC50YWtlc1Nsb3dQYXRoKCkpCisgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgIAorICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihwcm9maWxlZEJsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgaWYgKGhhc0V4
aXRTaXRlKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBF
eGl0RnJvbUZUTCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoVGFrZXNT
bG93UGF0aCwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQu
aXNTZXQoKSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oZGZnQmxvY2spOworICAgIFVOVVNFRF9QQVJBTShkZmdNYXApOworI2VuZGlm
CisKKyAgICByZXR1cm4gY29tcHV0ZUZvcihwcm9maWxlZEJsb2NrLCBiYXNlbGluZU1hcCwgY29k
ZU9yaWdpbi5ieXRlY29kZUluZGV4LCB1aWQpOwogfQogCiBHZXRCeUlkU3RhdHVzIEdldEJ5SWRT
dGF0dXM6OmNvbXB1dGVGb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3RyaW5nSW1w
bCogdWlkKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0
dXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJ
ZFN0YXR1cy5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsy
Niw5IEBACiAjaWZuZGVmIEdldEJ5SWRTdGF0dXNfaAogI2RlZmluZSBHZXRCeUlkU3RhdHVzX2gK
IAorI2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKKyNpbmNsdWRlICJDb25jdXJyZW50SklUTG9jay5o
IgorI2luY2x1ZGUgIkV4aXRpbmdKSVRUeXBlLmgiCiAjaW5jbHVkZSAiSW50ZW5kZWRTdHJ1Y3R1
cmVDaGFpbi5oIgogI2luY2x1ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCiAjaW5jbHVkZSAiU3RydWN0
dXJlU2V0LmgiCkBAIC03NCw2ICs3Nyw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgR2V0QnlJZFN0
YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayosIFN0dWJJbmZvTWFwJiwgdW5zaWduZWQgYnl0ZWNv
ZGVJbmRleCwgU3RyaW5nSW1wbCogdWlkKTsKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21w
dXRlRm9yKFZNJiwgU3RydWN0dXJlKiwgU3RyaW5nSW1wbCogdWlkKTsKICAgICAKKyAgICBzdGF0
aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgQ29k
ZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLCBTdHViSW5mb01hcCYg
ZGZnTWFwLCBDb2RlT3JpZ2luLCBTdHJpbmdJbXBsKiB1aWQpOworICAgIAogICAgIFN0YXRlIHN0
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogICAgIAogICAgIGJvb2wgaXNTZXQoKSBj
b25zdCB7IHJldHVybiBtX3N0YXRlICE9IE5vSW5mb3JtYXRpb247IH0KQEAgLTkwLDYgKzk1LDEw
IEBAIHB1YmxpYzoKICAgICBib29sIHdhc1NlZW5JbkpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fd2Fz
U2VlbkluSklUOyB9CiAgICAgCiBwcml2YXRlOgorI2lmIEVOQUJMRShKSVQpCisgICAgc3RhdGlj
IGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayos
IHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIEV4aXRpbmdKSVRUeXBlID0gRXhpdEZyb21Bbnl0aGlu
Zyk7CisgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENv
bmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFN0cmlu
Z0ltcGwqIHVpZCk7CisjZW5kaWYKICAgICBzdGF0aWMgdm9pZCBjb21wdXRlRm9yQ2hhaW4oR2V0
QnlJZFN0YXR1cyYgcmVzdWx0LCBDb2RlQmxvY2sqLCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIHN0
YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiwgdW5zaWduZWQg
Ynl0ZWNvZGVJbmRleCwgU3RyaW5nSW1wbCogdWlkKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2lu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2Zp
bGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAkocmV2aXNpb24gMTYyOTYxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlz
b25pbmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlByb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRj
aHBvaW50LmgiCiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKKwogI2luY2x1ZGUgIkNvZGVCbG9jay5o
IgogI2luY2x1ZGUgIkRGR0NvbW1vbi5oIgogI2luY2x1ZGUgIkRGR0V4aXRQcm9maWxlLmgiCkBA
IC00OSw3ICs1MSw5IEBAIHZvaWQgUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG8K
ICAgICAKICAgICBpZiAoc291cmNlQmFzZWxpbmVDb2RlQmxvY2spIHsKICAgICAgICAgc291cmNl
QmFzZWxpbmVDb2RlQmxvY2stPmFkZEZyZXF1ZW50RXhpdFNpdGUoCi0gICAgICAgICAgICBERkc6
OkZyZXF1ZW50RXhpdFNpdGUobV9jb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIG1fZXhpdEtpbmQp
KTsKKyAgICAgICAgICAgIERGRzo6RnJlcXVlbnRFeGl0U2l0ZSgKKyAgICAgICAgICAgICAgICBt
X2NvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgbV9leGl0S2luZCwKKyAgICAgICAgICAgICAgICBl
eGl0aW5nSklUVHlwZUZvcihtX2NvZGVCbG9jay0+aml0VHlwZSgpKSkpOwogICAgIH0KICAgICAK
ICAgICBtX2NvZGVCbG9jay0+amV0dGlzb24oQ291bnRSZW9wdGltaXphdGlvbik7CkBAIC02MCwz
ICs2NCw0IEBAIHZvaWQgUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG8KIAogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJv
ZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dh
dGNocG9pbnQuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYgUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNv
bmluZ1dhdGNocG9pbnRfaAogI2RlZmluZSBQcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0
Y2hwb2ludF9oCiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKKwogI2luY2x1ZGUgIkNvZGVPcmlnaW4u
aCIKICNpbmNsdWRlICJFeGl0S2luZC5oIgogI2luY2x1ZGUgIldhdGNocG9pbnQuaCIKQEAgLTYx
LDUgKzYzLDcgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKKyNlbmRpZiAvLyBF
TkFCTEUoREZHX0pJVCkKKwogI2VuZGlmIC8vIFByb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdX
YXRjaHBvaW50X2gKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5
SWRTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9QdXRCeUlkU3RhdHVzLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zNSw2ICszNSwxNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2lmIEVOQUJMRShKSVQp
Citib29sIFB1dEJ5SWRTdGF0dXM6Omhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2Nr
ZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUlu
ZGV4LCBFeGl0aW5nSklUVHlwZSBleGl0VHlwZSkKK3sKKyAgICByZXR1cm4gcHJvZmlsZWRCbG9j
ay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRl
eCwgQmFkQ2FjaGUsIGV4aXRUeXBlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhp
dFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2Fj
aGVXYXRjaHBvaW50LCBleGl0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4
aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdl
YWtDb25zdGFudENhY2hlLCBleGl0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhh
c0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJh
ZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2ludCwgZXhpdFR5cGUpKTsKKyAgICAKK30KKyNlbmRp
ZgorCiBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJs
b2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1
aWQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHByb2ZpbGVkQmxvY2spOwpAQCAtODksMTMgKzEwMCwy
OCBAQCBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCiAgICAgVU5VU0VE
X1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwogICAgIFVOVVNFRF9QQVJBTSh1aWQpOwogI2lmIEVOQUJM
RShKSVQpCi0gICAgaWYgKHByb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKGJ5dGVj
b2RlSW5kZXgpKQorICAgIGlmIChwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShi
eXRlY29kZUluZGV4KQorICAgICAgICB8fCBoYXNFeGl0U2l0ZShsb2NrZXIsIHByb2ZpbGVkQmxv
Y2ssIGJ5dGVjb2RlSW5kZXgpKQogICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Ns
b3dQYXRoLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsKICAgICAKICAgICBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8gPSBtYXAuZ2V0KENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkpOwotICAg
IGlmICghc3R1YkluZm8gfHwgIXN0dWJJbmZvLT5zZWVuKQorICAgIFB1dEJ5SWRTdGF0dXMgcmVz
dWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgc3R1YkluZm8s
IHVpZCk7CisgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50
KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7CiAgICAgCisgICAgcmV0dXJuIHJl
c3VsdDsKKyNlbHNlIC8vIEVOQUJMRShKSVQpCisgICAgVU5VU0VEX1BBUkFNKG1hcCk7CisgICAg
cmV0dXJuIFB1dEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgMCwgMCwgMCwgaW52YWxpZE9mZnNl
dCk7CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKK30KKworI2lmIEVOQUJMRShKSVQpCitQdXRCeUlk
U3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50
SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8sIFN0cmluZ0ltcGwqIHVpZCkKK3sKKyAgICBpZiAoIXN0dWJJbmZvIHx8ICFzdHVi
SW5mby0+c2VlbikKKyAgICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoKTsKKyAgICAKICAgICBp
ZiAoc3R1YkluZm8tPnJlc2V0QnlHQykKICAgICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoVGFr
ZXNTbG93UGF0aCwgMCwgMCwgMCwgaW52YWxpZE9mZnNldCk7CiAKQEAgLTE0MiwxMCArMTY4LDM0
IEBAIFB1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICAgICAgLy8g
d2UgY291bGQgZG8gYWJvdXQgaXQuCiAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2Vz
U2xvd1BhdGgsIDAsIDAsIDAsIGludmFsaWRPZmZzZXQpOwogICAgIH0KLSNlbHNlIC8vIEVOQUJM
RShKSVQpCi0gICAgVU5VU0VEX1BBUkFNKG1hcCk7Ci0gICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMo
Tm9JbmZvcm1hdGlvbiwgMCwgMCwgMCwgaW52YWxpZE9mZnNldCk7Ci0jZW5kaWYgLy8gRU5BQkxF
KEpJVCkKK30KKyNlbmRpZgorCitQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVG
b3IoQ29kZUJsb2NrKiBiYXNlbGluZUJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5m
b01hcCYgYmFzZWxpbmVNYXAsIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4gY29kZU9y
aWdpbiwgU3RyaW5nSW1wbCogdWlkKQoreworI2lmIEVOQUJMRShKSVQpCisgICAgaWYgKGRmZ0Js
b2NrKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2Vy
KGJhc2VsaW5lQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICBpZiAoaGFzRXhpdFNpdGUobG9j
a2VyLCBiYXNlbGluZUJsb2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEV4aXRGcm9tRlRM
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoKTsK
KyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIFB1dEJ5SWRTdGF0dXMgcmVzdWx0Owor
ICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihkZmdCbG9j
ay0+bV9sb2NrKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbyhsb2Nr
ZXIsIGRmZ0Jsb2NrLCBkZmdNYXAuZ2V0KGNvZGVPcmlnaW4pLCB1aWQpOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICBpZiAocmVzdWx0LmlzU2V0KCkpCisgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRmZ0Jsb2NrKTsKKyAgICBV
TlVTRURfUEFSQU0oZGZnTWFwKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIGNvbXB1dGVGb3IoYmFz
ZWxpbmVCbG9jaywgYmFzZWxpbmVNYXAsIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgdWlkKTsK
IH0KIAogUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0cmluZ0lt
cGwqIHVpZCwgYm9vbCBpc0RpcmVjdCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9QdXRCeUlkU3RhdHVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MjYsNiArMjYsNyBAQAogI2lmbmRlZiBQdXRCeUlkU3RhdHVzX2gKICNkZWZpbmUgUHV0QnlJZFN0
YXR1c19oCiAKKyNpbmNsdWRlICJFeGl0aW5nSklUVHlwZS5oIgogI2luY2x1ZGUgIkludGVuZGVk
U3RydWN0dXJlQ2hhaW4uaCIKICNpbmNsdWRlICJQcm9wZXJ0eU9mZnNldC5oIgogI2luY2x1ZGUg
IlN0cnVjdHVyZVN0dWJJbmZvLmgiCkBAIC05NCw2ICs5NSw4IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUHV0QnlJZFN0YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayosIFN0dWJJbmZvTWFwJiwgdW5z
aWduZWQgYnl0ZWNvZGVJbmRleCwgU3RyaW5nSW1wbCogdWlkKTsKICAgICBzdGF0aWMgUHV0QnlJ
ZFN0YXR1cyBjb21wdXRlRm9yKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBTdHJp
bmdJbXBsKiB1aWQsIGJvb2wgaXNEaXJlY3QpOwogICAgIAorICAgIHN0YXRpYyBQdXRCeUlkU3Rh
dHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiBiYXNlbGluZUJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Js
b2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVNYXAsIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVP
cmlnaW4sIFN0cmluZ0ltcGwqIHVpZCk7CisgICAgCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlOyB9CiAgICAgCiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhdGUgIT0gTm9JbmZvcm1hdGlvbjsgfQpAQCAtMTA4LDYgKzExMSwxMCBAQCBwdWJsaWM6
CiAgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0K
ICAgICAKIHByaXZhdGU6CisjaWYgRU5BQkxFKEpJVCkKKyAgICBzdGF0aWMgYm9vbCBoYXNFeGl0
U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0
ZWNvZGVJbmRleCwgRXhpdGluZ0pJVFR5cGUgPSBFeGl0RnJvbUFueXRoaW5nKTsKKyAgICBzdGF0
aWMgUHV0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYsIENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvKiwgU3RyaW5nSW1wbCogdWlkKTsK
KyNlbmRpZgogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGcm9tTExJbnQoQ29kZUJs
b2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgU3RyaW5nSW1wbCogdWlkKTsKICAgICAKICAg
ICBTdGF0ZSBtX3N0YXRlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0
cnVjdHVyZVNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTZXQuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3
IEBAIHB1YmxpYzoKICAgICAKICAgICBTdHJ1Y3R1cmVTZXQoU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgeworICAgICAgICBBU1NFUlQoc3RydWN0dXJlKTsKICAgICAgICAgbV9zdHJ1Y3R1cmVz
LmFwcGVuZChzdHJ1Y3R1cmUpOwogICAgIH0KICAgICAKQEAgLTU1LDYgKzU2LDcgQEAgcHVibGlj
OgogICAgIAogICAgIHZvaWQgYWRkKFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKKyAgICAg
ICAgQVNTRVJUKHN0cnVjdHVyZSk7CiAgICAgICAgIEFTU0VSVCghY29udGFpbnMoc3RydWN0dXJl
KSk7CiAgICAgICAgIG1fc3RydWN0dXJlcy5hcHBlbmQoc3RydWN0dXJlKTsKICAgICB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1N0cnVjdHVyZVN0dWJJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTIxNiw3ICsyMTYsNiBAQCBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm8gewogCiAgICAgc3Ry
dWN0IHsKICAgICAgICAgaW50OF90IHJlZ2lzdGVyc0ZsdXNoZWQ7Ci0gICAgICAgIGludDhfdCBj
YWxsRnJhbWVSZWdpc3RlcjsKICAgICAgICAgaW50OF90IGJhc2VHUFI7CiAjaWYgVVNFKEpTVkFM
VUUzMl82NCkKICAgICAgICAgaW50OF90IHZhbHVlVGFnR1BSOwpAQCAtMjkwLDcgKzI4OSw3IEBA
IGlubGluZSBDb2RlT3JpZ2luIGdldFN0cnVjdHVyZVN0dWJJbmZvQ28KICAgICByZXR1cm4gc3Ry
dWN0dXJlU3R1YkluZm8uY29kZU9yaWdpbjsKIH0KIAotdHlwZWRlZiBIYXNoTWFwPENvZGVPcmln
aW4sIFN0cnVjdHVyZVN0dWJJbmZvKj4gU3R1YkluZm9NYXA7Cit0eXBlZGVmIEhhc2hNYXA8Q29k
ZU9yaWdpbiwgU3RydWN0dXJlU3R1YkluZm8qLCBDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoPiBT
dHViSW5mb01hcDsKIAogI2Vsc2UKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1ZhbHVlUmVjb3ZlcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MzAsNiArMjMwLDI3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFZpcnR1YWxSZWdpc3Rlciht
X3NvdXJjZS52aXJ0dWFsUmVnKTsKICAgICB9CiAgICAgCisgICAgVmFsdWVSZWNvdmVyeSB3aXRo
TG9jYWxzT2Zmc2V0KGludCBvZmZzZXQpIGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKG1f
dGVjaG5pcXVlKSB7CisgICAgICAgIGNhc2UgRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBj
YXNlIEludDMyRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIERvdWJsZURpc3BsYWNl
ZEluSlNTdGFjazoKKyAgICAgICAgY2FzZSBDZWxsRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAg
ICBjYXNlIEJvb2xlYW5EaXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgSW50NTJEaXNw
bGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgU3RyaWN0SW50NTJEaXNwbGFjZWRJbkpTU3Rh
Y2s6IHsKKyAgICAgICAgICAgIFZhbHVlUmVjb3ZlcnkgcmVzdWx0OworICAgICAgICAgICAgcmVz
dWx0Lm1fdGVjaG5pcXVlID0gbV90ZWNobmlxdWU7CisgICAgICAgICAgICByZXN1bHQubV9zb3Vy
Y2UudmlydHVhbFJlZyA9IG1fc291cmNlLnZpcnR1YWxSZWcgKyBvZmZzZXQ7CisgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKICAg
ICBKU1ZhbHVlIGNvbnN0YW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3RlY2hu
aXF1ZSA9PSBDb25zdGFudCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VmlydHVhbFJlZ2lzdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1ZpcnR1YWxSZWdpc3Rlci5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIGludCB0b0FyZ3VtZW50KCkgY29uc3QgeyBBU1NF
UlQoaXNBcmd1bWVudCgpKTsgcmV0dXJuIG9wZXJhbmRUb0FyZ3VtZW50KG1fdmlydHVhbFJlZ2lz
dGVyKTsgfQogICAgIGludCB0b0NvbnN0YW50SW5kZXgoKSBjb25zdCB7IEFTU0VSVChpc0NvbnN0
YW50KCkpOyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXIgLSBzX2ZpcnN0Q29uc3RhbnRSZWdpc3Rl
ckluZGV4OyB9CiAgICAgaW50IG9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lz
dGVyOyB9CisgICAgaW50IG9mZnNldEluQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZpcnR1YWxS
ZWdpc3RlciAqIHNpemVvZihSZWdpc3Rlcik7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBWaXJ0dWFsUmVnaXN0ZXIgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVy
ID09IG90aGVyLm1fdmlydHVhbFJlZ2lzdGVyOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IFZpcnR1YWxSZWdpc3RlciBvdGhlcikgY29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXIg
IT0gb3RoZXIubV92aXJ0dWFsUmVnaXN0ZXI7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKLSNp
bmNsdWRlICJWTUVudHJ5U2NvcGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTMxLDcgKzEzMSwxMCBAQCBBcnJheU1vZGUgQXJyYXlNb2RlOjpmcm9tT2JzZXJ2
ZWQoY29uc3QgCiAgICAgfQogfQogCi1BcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoU3BlY3Vs
YXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVl
LCBOb2RlRmxhZ3MgZmxhZ3MpIGNvbnN0CitBcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoCisg
ICAgR3JhcGgmIGdyYXBoLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sCisgICAgU3BlY3VsYXRlZFR5
cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlLAorICAg
IE5vZGVGbGFncyBmbGFncykgY29uc3QKIHsKICAgICBpZiAoIWJhc2UgfHwgIWluZGV4KSB7CiAg
ICAgICAgIC8vIEl0IGNhbiBiZSB0aGF0IHdlIGhhZCBhIGxlZ2l0aW1hdGUgYXJyYXlNb2RlIGJ1
dCBubyBpbmNvbWluZyBwcmVkaWN0aW9ucy4gVGhhdCdsbApAQCAtMTg2LDcgKzE4OSw3IEBAIEFy
cmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShTcGVjdWxhdGVkVHkKICAgICAgICAgICAgIHJldHVy
biB3aXRoQ29udmVyc2lvbihBcnJheTo6UmFnZUNvbnZlcnQpOwogICAgICAgICByZXR1cm4gKnRo
aXM7CiAgICAgICAgIAotICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6Cisg
ICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczogewogICAgICAgICBiYXNlICY9
IH5TcGVjT3RoZXI7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNTdHJpbmdTcGVjdWxhdGlvbihi
YXNlKSkKQEAgLTE5NSwzNCArMTk4LDQxIEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShT
cGVjdWxhdGVkVHkKICAgICAgICAgaWYgKGlzQXJndW1lbnRzU3BlY3VsYXRpb24oYmFzZSkpCiAg
ICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkFyZ3VtZW50cyk7CiAgICAgICAgIAor
ICAgICAgICBBcnJheU1vZGUgcmVzdWx0OworICAgICAgICBpZiAoZ3JhcGguaGFzRXhpdFNpdGUo
Y29kZU9yaWdpbiwgT3V0T2ZCb3VuZHMpKQorICAgICAgICAgICAgcmVzdWx0ID0gd2l0aFNwZWN1
bGF0aW9uKEFycmF5OjpPdXRPZkJvdW5kcyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJl
c3VsdCA9ICp0aGlzOworICAgICAgICAKICAgICAgICAgaWYgKGlzSW50OEFycmF5U3BlY3VsYXRp
b24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkludDhBcnJheSk7
CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpJbnQ4QXJyYXkpOwog
ICAgICAgICAKICAgICAgICAgaWYgKGlzSW50MTZBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAg
ICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpJbnQxNkFycmF5KTsKKyAgICAgICAgICAg
IHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6OkludDE2QXJyYXkpOwogICAgICAgICAKICAg
ICAgICAgaWYgKGlzSW50MzJBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0
dXJuIHdpdGhUeXBlKEFycmF5OjpJbnQzMkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1
bHQud2l0aFR5cGUoQXJyYXk6OkludDMyQXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlz
VWludDhBcnJheVNwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBl
KEFycmF5OjpVaW50OEFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUo
QXJyYXk6OlVpbnQ4QXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWludDhDbGFtcGVk
QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJh
eTo6VWludDhDbGFtcGVkQXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlw
ZShBcnJheTo6VWludDhDbGFtcGVkQXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWlu
dDE2QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShB
cnJheTo6VWludDE2QXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShB
cnJheTo6VWludDE2QXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzVWludDMyQXJyYXlT
cGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6VWlu
dDMyQXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6VWlu
dDMyQXJyYXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzRmxvYXQzMkFycmF5U3BlY3VsYXRp
b24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkZsb2F0MzJBcnJh
eSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpGbG9hdDMyQXJy
YXkpOwogICAgICAgICAKICAgICAgICAgaWYgKGlzRmxvYXQ2NEFycmF5U3BlY3VsYXRpb24oYmFz
ZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkZsb2F0NjRBcnJheSk7Cisg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpGbG9hdDY0QXJyYXkpOwog
CiAgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkdlbmVyaWMpOworICAgIH0KIAogICAg
IGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAqdGhpczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBcnJheU1vZGUuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjExLDcgKzIx
MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEFycmF5TW9kZSh0eXBlLCBhcnJheUNsYXNz
KCksIHNwZWN1bGF0aW9uKCksIGNvbnZlcnNpb24pOwogICAgIH0KICAgICAKLSAgICBBcnJheU1v
ZGUgcmVmaW5lKFNwZWN1bGF0ZWRUeXBlIGJhc2UsIFNwZWN1bGF0ZWRUeXBlIGluZGV4LCBTcGVj
dWxhdGVkVHlwZSB2YWx1ZSA9IFNwZWNOb25lLCBOb2RlRmxhZ3MgPSAwKSBjb25zdDsKKyAgICBB
cnJheU1vZGUgcmVmaW5lKEdyYXBoJiwgQ29kZU9yaWdpbiwgU3BlY3VsYXRlZFR5cGUgYmFzZSwg
U3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlID0gU3BlY05vbmUsIE5v
ZGVGbGFncyA9IDApIGNvbnN0OwogICAgIAogICAgIGJvb2wgYWxyZWFkeUNoZWNrZWQoR3JhcGgm
LCBOb2RlKiwgQWJzdHJhY3RWYWx1ZSYpIGNvbnN0OwogICAgIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlByZWNpc2VKdW1wVGFyZ2V0cy5oIgogI2luY2x1ZGUgIlB1dEJ5SWRTdGF0dXMu
aCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgIlN0cmluZ0NvbnN0cnVj
dG9yLmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CkBAIC0xNjAsNyArMTYxLDggQEAgcHJpdmF0ZToKICAgICBib29sIGhhbmRsZU1pbk1h
eChpbnQgcmVzdWx0T3BlcmFuZCwgTm9kZVR5cGUgb3AsIGludCByZWdpc3Rlck9mZnNldCwgaW50
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKTsKICAgICAKICAgICAvLyBIYW5kbGUgY2FsbHMu
IFRoaXMgcmVzb2x2ZXMgaXNzdWVzIHN1cnJvdW5kaW5nIGlubGluaW5nIGFuZCBpbnRyaW5zaWNz
LgotICAgIHZvaWQgaGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBO
b2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CisgICAgdm9pZCBoYW5kbGVDYWxs
KGludCByZXN1bHQsIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCB1bnNpZ25l
ZCBpbnN0cnVjdGlvblNpemUsIGludCBjYWxsZWUsIGludCBhcmdDb3VudCwgaW50IHJlZ2lzdGVy
T2Zmc2V0KTsKKyAgICB2b2lkIGhhbmRsZUNhbGwoSW5zdHJ1Y3Rpb24qIHBjLCBOb2RlVHlwZSBv
cCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CiAgICAgdm9pZCBlbWl0RnVuY3Rpb25DaGVja3Mo
Y29uc3QgQ2FsbExpbmtTdGF0dXMmLCBOb2RlKiBjYWxsVGFyZ2V0LCBpbnQgcmVnaXN0ZXJPZmZz
ZXQsIENvZGVTcGVjaWFsaXphdGlvbktpbmQpOwogICAgIHZvaWQgZW1pdEFyZ3VtZW50UGhhbnRv
bXMoaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQpOwogICAgIC8vIEhhbmRsZSBpbmxpbmluZy4gUmV0dXJuIHRy
dWUgaWYgaXQgc3VjY2VlZGVkLCBmYWxzZSBpZiB3ZSBuZWVkIHRvIHBsYW50IGEgY2FsbC4KQEAg
LTc3MywyMiArNzc1LDIxIEBAIHByaXZhdGU6CiAgICAgICAgIG1fbnVtUGFzc2VkVmFyQXJncysr
OwogICAgIH0KICAgICAKLSAgICBOb2RlKiBhZGRDYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIE5vZGVUeXBlIG9wKQorICAgIE5vZGUqIGFkZENhbGwoaW50IHJlc3VsdCwgTm9k
ZVR5cGUgb3AsIGludCBjYWxsZWUsIGludCBhcmdDb3VudCwgaW50IHJlZ2lzdGVyT2Zmc2V0KQog
ICAgIHsKICAgICAgICAgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb24o
KTsKICAgICAgICAgCi0gICAgICAgIGFkZFZhckFyZ0NoaWxkKGdldChWaXJ0dWFsUmVnaXN0ZXIo
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpKTsKLSAgICAgICAgaW50IGFyZ0NvdW50
ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICAgICAgaWYgKEpTU3RhY2s6
OlRoaXNBcmd1bWVudCArICh1bnNpZ25lZClhcmdDb3VudCA+IG1fcGFyYW1ldGVyU2xvdHMpCi0g
ICAgICAgICAgICBtX3BhcmFtZXRlclNsb3RzID0gSlNTdGFjazo6VGhpc0FyZ3VtZW50ICsgYXJn
Q291bnQ7CisgICAgICAgIGFkZFZhckFyZ0NoaWxkKGdldChWaXJ0dWFsUmVnaXN0ZXIoY2FsbGVl
KSkpOworICAgICAgICBzaXplX3QgcGFyYW1ldGVyU2xvdHMgPSBKU1N0YWNrOjpDYWxsRnJhbWVI
ZWFkZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUgKyBhcmdDb3VudDsKKyAg
ICAgICAgaWYgKHBhcmFtZXRlclNsb3RzID4gbV9wYXJhbWV0ZXJTbG90cykKKyAgICAgICAgICAg
IG1fcGFyYW1ldGVyU2xvdHMgPSBwYXJhbWV0ZXJTbG90czsKIAotICAgICAgICBpbnQgcmVnaXN0
ZXJPZmZzZXQgPSAtY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKICAgICAgICAgaW50
IGR1bW15VGhpc0FyZ3VtZW50ID0gb3AgPT0gQ2FsbCA/IDAgOiAxOwogICAgICAgICBmb3IgKGlu
dCBpID0gMCArIGR1bW15VGhpc0FyZ3VtZW50OyBpIDwgYXJnQ291bnQ7ICsraSkKICAgICAgICAg
ICAgIGFkZFZhckFyZ0NoaWxkKGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChpLCByZWdp
c3Rlck9mZnNldCkpKTsKIAogICAgICAgICBOb2RlKiBjYWxsID0gYWRkVG9HcmFwaChOb2RlOjpW
YXJBcmcsIG9wLCBPcEluZm8oMCksIE9wSW5mbyhwcmVkaWN0aW9uKSk7Ci0gICAgICAgIHNldChW
aXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGNhbGwpOwor
ICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKHJlc3VsdCksIGNhbGwpOwogICAgICAgICByZXR1
cm4gY2FsbDsKICAgICB9CiAgICAgCkBAIC05OTMsOSArOTk0LDEwIEBAIHByaXZhdGU6CiAgICAg
Ly8gVGhlIG51bWJlciBvZiBsb2NhbHMgKHZhcnMgKyB0ZW1wb3JhcmllcykgdXNlZCBpbiB0aGUg
ZnVuY3Rpb24uCiAgICAgdW5zaWduZWQgbV9udW1Mb2NhbHM7CiAgICAgLy8gVGhlIG51bWJlciBv
ZiBzbG90cyAoaW4gdW5pdHMgb2Ygc2l6ZW9mKFJlZ2lzdGVyKSkgdGhhdCB3ZSBuZWVkIHRvCi0g
ICAgLy8gcHJlYWxsb2NhdGUgZm9yIGNhbGxzIGVtYW5hdGluZyBmcm9tIHRoaXMgZnJhbWUuIFRo
aXMgaW5jbHVkZXMgdGhlCi0gICAgLy8gc2l6ZSBvZiB0aGUgQ2FsbEZyYW1lLCBvbmx5IGlmIHRo
aXMgaXMgbm90IGEgbGVhZiBmdW5jdGlvbi4gIChJLmUuCi0gICAgLy8gdGhpcyBpcyAwIGlmIGFu
ZCBvbmx5IGlmIHRoaXMgZnVuY3Rpb24gaXMgYSBsZWFmLikKKyAgICAvLyBwcmVhbGxvY2F0ZSBm
b3IgYXJndW1lbnRzIHRvIG91dGdvaW5nIGNhbGxzIGZyb20gdGhpcyBmcmFtZS4gVGhpcworICAg
IC8vIG51bWJlciBpbmNsdWRlcyB0aGUgQ2FsbEZyYW1lIHNsb3RzIHRoYXQgd2UgaW5pdGlhbGl6
ZSBmb3IgdGhlIGNhbGxlZQorICAgIC8vIChidXQgbm90IHRoZSBjYWxsZWUtaW5pdGlhbGl6ZWQg
Q2FsbGVyRnJhbWUgYW5kIFJldHVyblBDIHNsb3RzKS4KKyAgICAvLyBUaGlzIG51bWJlciBpcyAw
IGlmIGFuZCBvbmx5IGlmIHRoaXMgZnVuY3Rpb24gaXMgYSBsZWFmLgogICAgIHVuc2lnbmVkIG1f
cGFyYW1ldGVyU2xvdHM7CiAgICAgLy8gVGhlIG51bWJlciBvZiB2YXIgYXJncyBwYXNzZWQgdG8g
dGhlIG5leHQgdmFyIGFyZyBub2RlLgogICAgIHVuc2lnbmVkIG1fbnVtUGFzc2VkVmFyQXJnczsK
QEAgLTExMzQsNiArMTEzNiwxMCBAQCBwcml2YXRlOgogICAgIC8vIHdvcmstYXJvdW5kIGZvciB0
aGUgZmFjdCB0aGF0IEpTVmFsdWVNYXAgY2FuJ3QgaGFuZGxlICJlbXB0eSIgdmFsdWVzLgogICAg
IHVuc2lnbmVkIG1fZW1wdHlKU1ZhbHVlSW5kZXg7CiAgICAgCisgICAgQ29kZUJsb2NrKiBtX2Rm
Z0NvZGVCbG9jazsKKyAgICBDYWxsTGlua1N0YXR1czo6Q29udGV4dE1hcCBtX2NhbGxDb250ZXh0
TWFwOworICAgIFN0dWJJbmZvTWFwIG1fZGZnU3R1YkluZm9zOworICAgIAogICAgIEluc3RydWN0
aW9uKiBtX2N1cnJlbnRJbnN0cnVjdGlvbjsKIH07CiAKQEAgLTExNDUsNDMgKzExNTEsNDUgQEAg
cHJpdmF0ZToKICAgICBtX2N1cnJlbnRJbmRleCArPSBPUENPREVfTEVOR1RIKG5hbWUpOyBcCiAg
ICAgcmV0dXJuIHNob3VsZENvbnRpbnVlUGFyc2luZwogCi0KLXZvaWQgQnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZUNhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgTm9kZVR5cGUgb3As
IENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK3ZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRs
ZUNhbGwoSW5zdHJ1Y3Rpb24qIHBjLCBOb2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxpemF0aW9uS2lu
ZCBraW5kKQogewogICAgIEFTU0VSVChPUENPREVfTEVOR1RIKG9wX2NhbGwpID09IE9QQ09ERV9M
RU5HVEgob3BfY29uc3RydWN0KSk7CisgICAgaGFuZGxlQ2FsbCgKKyAgICAgICAgcGNbMV0udS5v
cGVyYW5kLCBvcCwga2luZCwgT1BDT0RFX0xFTkdUSChvcF9jYWxsKSwKKyAgICAgICAgcGNbMl0u
dS5vcGVyYW5kLCBwY1szXS51Lm9wZXJhbmQsIC1wY1s0XS51Lm9wZXJhbmQpOworfQorCit2b2lk
IEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDYWxsKAorICAgIGludCByZXN1bHQsIE5vZGVUeXBlIG9w
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIHVuc2lnbmVkIGluc3RydWN0aW9uU2l6ZSwK
KyAgICBpbnQgY2FsbGVlLCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIGludCByZWdp
c3Rlck9mZnNldCkKK3sKKyAgICBBU1NFUlQocmVnaXN0ZXJPZmZzZXQgPD0gMCk7CiAgICAgCi0g
ICAgTm9kZSogY2FsbFRhcmdldCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzJdLnUub3BlcmFuZCkpOworICAgIE5vZGUqIGNhbGxUYXJnZXQgPSBnZXQoVmlydHVhbFJl
Z2lzdGVyKGNhbGxlZSkpOwogICAgIAogICAgIENhbGxMaW5rU3RhdHVzIGNhbGxMaW5rU3RhdHVz
OwogCi0gICAgaWYgKG1fZ3JhcGguaXNDb25zdGFudChjYWxsVGFyZ2V0KSkKLSAgICAgICAgY2Fs
bExpbmtTdGF0dXMgPSBDYWxsTGlua1N0YXR1cyhtX2dyYXBoLnZhbHVlT2ZKU0NvbnN0YW50KGNh
bGxUYXJnZXQpKS5zZXRJc1Byb3ZlZCh0cnVlKTsKLSAgICBlbHNlIHsKLSAgICAgICAgY2FsbExp
bmtTdGF0dXMgPSBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcihtX2lubGluZVN0YWNrVG9wLT5t
X3Byb2ZpbGVkQmxvY2ssIG1fY3VycmVudEluZGV4KTsKLSAgICAgICAgY2FsbExpbmtTdGF0dXMu
c2V0SGFzQmFkRnVuY3Rpb25FeGl0U2l0ZShtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxl
Lmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRGdW5jdGlvbikpOwotICAgICAgICBjYWxs
TGlua1N0YXR1cy5zZXRIYXNCYWRDYWNoZUV4aXRTaXRlKAotICAgICAgICAgICAgbV9pbmxpbmVT
dGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2Fj
aGUpCi0gICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4
aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQpKTsKLSAgICAgICAgY2Fs
bExpbmtTdGF0dXMuc2V0SGFzQmFkRXhlY3V0YWJsZUV4aXRTaXRlKG1faW5saW5lU3RhY2tUb3At
Pm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZEV4ZWN1dGFibGUp
KTsKKyAgICBpZiAobV9ncmFwaC5pc0NvbnN0YW50KGNhbGxUYXJnZXQpKSB7CisgICAgICAgIGNh
bGxMaW5rU3RhdHVzID0gQ2FsbExpbmtTdGF0dXMoCisgICAgICAgICAgICBtX2dyYXBoLnZhbHVl
T2ZKU0NvbnN0YW50KGNhbGxUYXJnZXQpKS5zZXRJc1Byb3ZlZCh0cnVlKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBjYWxsTGlua1N0YXR1cyA9IENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKAor
ICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCBjdXJyZW50Q29k
ZU9yaWdpbigpLCBtX2NhbGxDb250ZXh0TWFwKTsKICAgICB9CiAgICAgCiAgICAgaWYgKCFjYWxs
TGlua1N0YXR1cy5jYW5PcHRpbWl6ZSgpKSB7CiAgICAgICAgIC8vIE9kZGx5LCB0aGlzIGNvbmZs
YXRlcyBjYWxscyB0aGF0IGhhdmVuJ3QgZXhlY3V0ZWQgd2l0aCBjYWxscyB0aGF0IGJlaGF2ZWQg
c3VmZmljaWVudGx5IHBvbHltb3JwaGljYWxseQogICAgICAgICAvLyB0aGF0IHdlIGNhbm5vdCBv
cHRpbWl6ZSB0aGVtLgogICAgICAgICAKLSAgICAgICAgYWRkQ2FsbChjdXJyZW50SW5zdHJ1Y3Rp
b24sIG9wKTsKKyAgICAgICAgYWRkQ2FsbChyZXN1bHQsIG9wLCBjYWxsZWUsIGFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzLCByZWdpc3Rlck9mZnNldCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgCi0gICAgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID0gY3VycmVudEluc3Ry
dWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBpbnQgcmVnaXN0ZXJPZmZzZXQgPSAtY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZDsKLQotICAgIGludCByZXN1bHRPcGVyYW5kID0gY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKLSAgICB1bnNpZ25lZCBuZXh0T2Zmc2V0ID0gbV9j
dXJyZW50SW5kZXggKyBPUENPREVfTEVOR1RIKG9wX2NhbGwpOworICAgIHVuc2lnbmVkIG5leHRP
ZmZzZXQgPSBtX2N1cnJlbnRJbmRleCArIGluc3RydWN0aW9uU2l6ZTsKICAgICBTcGVjdWxhdGVk
VHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwogCiAgICAgaWYgKEludGVybmFsRnVu
Y3Rpb24qIGZ1bmN0aW9uID0gY2FsbExpbmtTdGF0dXMuaW50ZXJuYWxGdW5jdGlvbigpKSB7Ci0g
ICAgICAgIGlmIChoYW5kbGVDb25zdGFudEludGVybmFsRnVuY3Rpb24ocmVzdWx0T3BlcmFuZCwg
ZnVuY3Rpb24sIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcHJl
ZGljdGlvbiwga2luZCkpIHsKKyAgICAgICAgaWYgKGhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5j
dGlvbihyZXN1bHQsIGZ1bmN0aW9uLCByZWdpc3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMsIHByZWRpY3Rpb24sIGtpbmQpKSB7CiAgICAgICAgICAgICAvLyBUaGlzIHBoYW50
b21pbmcgaGFzIHRvIGJlICphZnRlciogdGhlIGNvZGUgZm9yIHRoZSBpbnRyaW5zaWMsIHRvIHNp
Z25pZnkgdGhhdAogICAgICAgICAgICAgLy8gdGhlIGlucHV0cyBtdXN0IGJlIGtlcHQgYWxpdmUg
d2hhdGV2ZXIgZXhpdHMgdGhlIGludHJpbnNpYyBtYXkgZG8uCiAgICAgICAgICAgICBhZGRUb0dy
YXBoKFBoYW50b20sIGNhbGxUYXJnZXQpOwpAQCAtMTE5MCw3ICsxMTk4LDcgQEAgdm9pZCBCeXRl
Q29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdAogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICAvLyBDYW4gb25seSBoYW5kbGUgdGhpcyB1c2luZyB0aGUgZ2VuZXJpYyBjYWxsIGhhbmRs
ZXIuCi0gICAgICAgIGFkZENhbGwoY3VycmVudEluc3RydWN0aW9uLCBvcCk7CisgICAgICAgIGFk
ZENhbGwocmVzdWx0LCBvcCwgY2FsbGVlLCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcmVn
aXN0ZXJPZmZzZXQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKQEAgLTExOTgs
NyArMTIwNiw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNhbGwoSW5zdHJ1Y3QKICAg
ICBpZiAoaW50cmluc2ljICE9IE5vSW50cmluc2ljKSB7CiAgICAgICAgIGVtaXRGdW5jdGlvbkNo
ZWNrcyhjYWxsTGlua1N0YXR1cywgY2FsbFRhcmdldCwgcmVnaXN0ZXJPZmZzZXQsIGtpbmQpOwog
ICAgICAgICAgICAgCi0gICAgICAgIGlmIChoYW5kbGVJbnRyaW5zaWMocmVzdWx0T3BlcmFuZCwg
aW50cmluc2ljLCByZWdpc3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHBy
ZWRpY3Rpb24pKSB7CisgICAgICAgIGlmIChoYW5kbGVJbnRyaW5zaWMocmVzdWx0LCBpbnRyaW5z
aWMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcHJlZGljdGlv
bikpIHsKICAgICAgICAgICAgIC8vIFRoaXMgcGhhbnRvbWluZyBoYXMgdG8gYmUgKmFmdGVyKiB0
aGUgY29kZSBmb3IgdGhlIGludHJpbnNpYywgdG8gc2lnbmlmeSB0aGF0CiAgICAgICAgICAgICAv
LyB0aGUgaW5wdXRzIG11c3QgYmUga2VwdCBhbGl2ZSB3aGF0ZXZlciBleGl0cyB0aGUgaW50cmlu
c2ljIG1heSBkby4KICAgICAgICAgICAgIGFkZFRvR3JhcGgoUGhhbnRvbSwgY2FsbFRhcmdldCk7
CkBAIC0xMjA3LDEzICsxMjE1LDEzIEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNhbGwo
SW5zdHJ1Y3QKICAgICAgICAgICAgICAgICBtX2dyYXBoLmNvbXBpbGF0aW9uKCktPm5vdGljZUlu
bGluZWRDYWxsKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9IGVsc2Ug
aWYgKGhhbmRsZUlubGluaW5nKGNhbGxUYXJnZXQsIHJlc3VsdE9wZXJhbmQsIGNhbGxMaW5rU3Rh
dHVzLCByZWdpc3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIG5leHRPZmZz
ZXQsIGtpbmQpKSB7CisgICAgfSBlbHNlIGlmIChoYW5kbGVJbmxpbmluZyhjYWxsVGFyZ2V0LCBy
ZXN1bHQsIGNhbGxMaW5rU3RhdHVzLCByZWdpc3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMsIG5leHRPZmZzZXQsIGtpbmQpKSB7CiAgICAgICAgIGlmIChtX2dyYXBoLmNvbXBp
bGF0aW9uKCkpCiAgICAgICAgICAgICBtX2dyYXBoLmNvbXBpbGF0aW9uKCktPm5vdGljZUlubGlu
ZWRDYWxsKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgYWRkQ2FsbChjdXJy
ZW50SW5zdHJ1Y3Rpb24sIG9wKTsKKyAgICBhZGRDYWxsKHJlc3VsdCwgb3AsIGNhbGxlZSwgYXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHJlZ2lzdGVyT2Zmc2V0KTsKIH0KIAogdm9pZCBCeXRl
Q29kZVBhcnNlcjo6ZW1pdEZ1bmN0aW9uQ2hlY2tzKGNvbnN0IENhbGxMaW5rU3RhdHVzJiBjYWxs
TGlua1N0YXR1cywgTm9kZSogY2FsbFRhcmdldCwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQpCkBAIC0xMjUwLDMwICsxMjU4LDMyIEBAIHZvaWQgQnl0ZUNv
ZGVQYXJzZXI6OmVtaXRBcmd1bWVudFBoYW50b20KIAogYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlSW5saW5pbmcoTm9kZSogY2FsbFRhcmdldE5vZGUsIGludCByZXN1bHRPcGVyYW5kLCBjb25z
dCBDYWxsTGlua1N0YXR1cyYgY2FsbExpbmtTdGF0dXMsIGludCByZWdpc3Rlck9mZnNldCwgaW50
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCB1bnNpZ25lZCBuZXh0T2Zmc2V0LCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9
IGZhbHNlOworICAgIAorICAgIGlmICh2ZXJib3NlKQorICAgICAgICBkYXRhTG9nKCJDb25zaWRl
cmluZyBpbmxpbmluZyAiLCBjYWxsTGlua1N0YXR1cywgIiBpbnRvICIsIGN1cnJlbnRDb2RlT3Jp
Z2luKCksICJcbiIpOworICAgIAogICAgIC8vIEZpcnN0LCB0aGUgcmVhbGx5IHNpbXBsZSBjaGVj
a3M6IGRvIHdlIGhhdmUgYW4gYWN0dWFsIEpTIGZ1bmN0aW9uPwotICAgIGlmICghY2FsbExpbmtT
dGF0dXMuZXhlY3V0YWJsZSgpKQorICAgIGlmICghY2FsbExpbmtTdGF0dXMuZXhlY3V0YWJsZSgp
KSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxp
bmcgYmVjYXVzZSB0aGVyZSBpcyBubyBleGVjdXRhYmxlLlxuIik7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoY2FsbExpbmtTdGF0dXMuZXhlY3V0YWJsZSgpLT5pc0hvc3RGdW5jdGlv
bigpKQorICAgIH0KKyAgICBpZiAoY2FsbExpbmtTdGF0dXMuZXhlY3V0YWJsZSgpLT5pc0hvc3RG
dW5jdGlvbigpKSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygi
ICAgIEZhaWxpbmcgYmVjYXVzZSBpdCdzIGEgaG9zdCBmdW5jdGlvbi5cbiIpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQogICAgIAogICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0
YWJsZSA9IGpzQ2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihjYWxsTGlua1N0YXR1cy5leGVjdXRh
YmxlKCkpOwogICAgIAogICAgIC8vIERvZXMgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgd2UncmUg
cGFzc2luZyBtYXRjaCB0aGUgYXJpdHkgb2YgdGhlIHRhcmdldD8gV2UgY3VycmVudGx5CiAgICAg
Ly8gaW5saW5lIG9ubHkgaWYgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgcGFzc2VkIGlzIGdyZWF0
ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbnVtYmVyCiAgICAgLy8gYXJndW1lbnRzIGV4cGVjdGVk
LgotICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+KGV4ZWN1dGFibGUtPnBhcmFtZXRlckNvdW50KCkp
ICsgMSA+IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKQorICAgIGlmIChzdGF0aWNfY2FzdDxp
bnQ+KGV4ZWN1dGFibGUtPnBhcmFtZXRlckNvdW50KCkpICsgMSA+IGFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzKSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygi
ICAgIEZhaWxpbmcgYmVjYXVzZSBvZiBhcml0eSBtaXNtYXRjaC5cbiIpOwogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgCi0gICAgLy8gSGF2ZSB3ZSBleGNlZWRlZCBpbmxpbmUgc3RhY2sgZGVw
dGgsIG9yIGFyZSB3ZSB0cnlpbmcgdG8gaW5saW5lIGEgcmVjdXJzaXZlIGNhbGw/Ci0gICAgLy8g
SWYgZWl0aGVyIG9mIHRoZXNlIGFyZSBkZXRlY3RlZCwgdGhlbiBkb24ndCBpbmxpbmUuCi0gICAg
dW5zaWduZWQgZGVwdGggPSAwOwotICAgIGZvciAoSW5saW5lU3RhY2tFbnRyeSogZW50cnkgPSBt
X2lubGluZVN0YWNrVG9wOyBlbnRyeTsgZW50cnkgPSBlbnRyeS0+bV9jYWxsZXIpIHsKLSAgICAg
ICAgKytkZXB0aDsKLSAgICAgICAgaWYgKGRlcHRoID49IE9wdGlvbnM6Om1heGltdW1Jbmxpbmlu
Z0RlcHRoKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIERlcHRoIGV4Y2VlZGVkLgot
ICAgICAgICAKLSAgICAgICAgaWYgKGVudHJ5LT5leGVjdXRhYmxlKCkgPT0gZXhlY3V0YWJsZSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gUmVjdXJzaW9uIGRldGVjdGVkLgogICAgIH0K
ICAgICAKICAgICAvLyBEbyB3ZSBoYXZlIGEgY29kZSBibG9jaywgYW5kIGRvZXMgdGhlIGNvZGUg
YmxvY2sncyBzaXplIG1hdGNoIHRoZSBoZXVyaXN0aWNzL3JlcXVpcmVtZW50cyBmb3IKQEAgLTEy
ODMsMTAgKzEyOTMsNTAgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW5saW5pbmcoTm9k
ZQogICAgIC8vIGdsb2JhbCBmdW5jdGlvbiwgd2hlcmUgd2F0Y2hwb2ludGluZyBnaXZlcyB1cyBz
dGF0aWMgaW5mb3JtYXRpb24uIE92ZXJhbGwsIGl0J3MgYSByYXJlIGNhc2UKICAgICAvLyBiZWNh
dXNlIHdlIGV4cGVjdCB0aGF0IGFueSBob3QgY2FsbGVlcyB3b3VsZCBoYXZlIGFscmVhZHkgYmVl
biBjb21waWxlZC4KICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWN1dGFibGUtPmJhc2Vs
aW5lQ29kZUJsb2NrRm9yKGtpbmQpOwotICAgIGlmICghY29kZUJsb2NrKQorICAgIGlmICghY29k
ZUJsb2NrKSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiICAg
IEZhaWxpbmcgYmVjYXVzZSBubyBjb2RlIGJsb2NrIGF2YWlsYWJsZS5cbiIpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFjYW5JbmxpbmVGdW5jdGlvbkZvcihjb2RlQmxvY2ssIGtp
bmQsIGNhbGxMaW5rU3RhdHVzLmlzQ2xvc3VyZUNhbGwoKSkpCisgICAgfQorICAgIENhcGFiaWxp
dHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwgPSBpbmxpbmVGdW5jdGlvbkZvckNhcGFiaWxpdHlMZXZl
bCgKKyAgICAgICAgY29kZUJsb2NrLCBraW5kLCBjYWxsTGlua1N0YXR1cy5pc0Nsb3N1cmVDYWxs
KCkpOworICAgIGlmICghY2FuSW5saW5lKGNhcGFiaWxpdHlMZXZlbCkpIHsKKyAgICAgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIHRoZSBm
dW5jdGlvbiBpcyBub3QgaW5saW5lYWJsZS5cbiIpOwogICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIAorICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBiZXR0ZXIgYXQgcHJlZGlj
dGluZyBob3cgbXVjaCBibG9hdCB3ZSB3aWxsIGludHJvZHVjZSBieSBpbmxpbmluZworICAgIC8v
IHRoaXMgZnVuY3Rpb24uCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNzYyNworICAgIAorICAgIC8vIEhhdmUgd2UgZXhjZWVkZWQgaW5saW5lIHN0YWNr
IGRlcHRoLCBvciBhcmUgd2UgdHJ5aW5nIHRvIGlubGluZSBhIHJlY3Vyc2l2ZSBjYWxsIHRvCisg
ICAgLy8gdG9vIG1hbnkgbGV2ZWxzPyBJZiBlaXRoZXIgb2YgdGhlc2UgYXJlIGRldGVjdGVkLCB0
aGVuIGRvbid0IGlubGluZS4gV2UgYWRqdXN0IG91cgorICAgIC8vIGhldXJpc3RpY3MgaWYgd2Ug
YXJlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uIHRoYXQgY2Fubm90IG90aGVyd2lzZSBiZSBjb21w
aWxlZC4KKyAgICAKKyAgICB1bnNpZ25lZCBkZXB0aCA9IDA7CisgICAgdW5zaWduZWQgcmVjdXJz
aW9uID0gMDsKKyAgICAKKyAgICBmb3IgKElubGluZVN0YWNrRW50cnkqIGVudHJ5ID0gbV9pbmxp
bmVTdGFja1RvcDsgZW50cnk7IGVudHJ5ID0gZW50cnktPm1fY2FsbGVyKSB7CisgICAgICAgICsr
ZGVwdGg7CisgICAgICAgIGlmIChkZXB0aCA+PSBPcHRpb25zOjptYXhpbXVtSW5saW5pbmdEZXB0
aCgpKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCIgICAgRmFpbGluZyBiZWNhdXNlIGRlcHRoIGV4Y2VlZGVkLlxuIik7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChlbnRyeS0+ZXhl
Y3V0YWJsZSgpID09IGV4ZWN1dGFibGUpIHsKKyAgICAgICAgICAgICsrcmVjdXJzaW9uOworICAg
ICAgICAgICAgaWYgKHJlY3Vyc2lvbiA+PSBPcHRpb25zOjptYXhpbXVtSW5saW5pbmdSZWN1cnNp
b24oKSkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAg
ICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIHJlY3Vyc2lvbiBkZXRlY3RlZC5cbiIpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0KKyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgZGF0YUxvZygiICAgIENvbW1p
dHRpbmcgdG8gaW5saW5pbmcuXG4iKTsKICAgICAKICAgICAvLyBOb3cgd2Uga25vdyB3aXRob3V0
IGEgZG91YnQgdGhhdCB3ZSBhcmUgY29tbWl0dGVkIHRvIGlubGluaW5nLiBTbyBiZWdpbiB0aGUg
cHJvY2VzcwogICAgIC8vIGJ5IGNoZWNraW5nIHRoZSBjYWxsZWUgKGlmIG5lY2Vzc2FyeSkgYW5k
IG1ha2luZyBzdXJlIHRoYXQgYXJndW1lbnRzIGFuZCB0aGUgY2FsbGVlCkBAIC0xNzczLDExICsx
ODIzLDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlR2V0QnlJZCgKICAgICBpbnQgZGVz
dGluYXRpb25PcGVyYW5kLCBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uLCBOb2RlKiBiYXNlLCB1
bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLAogICAgIGNvbnN0IEdldEJ5SWRTdGF0dXMmIGdldEJ5
SWRTdGF0dXMpCiB7Ci0gICAgaWYgKCFnZXRCeUlkU3RhdHVzLmlzU2ltcGxlKCkKLSAgICAgICAg
fHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJ
bmRleCwgQmFkQ2FjaGUpCi0gICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2Zp
bGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCkKLSAgICAg
ICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJl
bnRJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGUpCi0gICAgICAgIHx8IG1faW5saW5lU3RhY2tU
b3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFdlYWtDb25z
dGFudENhY2hlV2F0Y2hwb2ludCkpIHsKKyAgICBpZiAoIWdldEJ5SWRTdGF0dXMuaXNTaW1wbGUo
KSkgewogICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGRlc3RpbmF0aW9uT3BlcmFuZCksCiAg
ICAgICAgICAgICBhZGRUb0dyYXBoKAogICAgICAgICAgICAgICAgIGdldEJ5SWRTdGF0dXMubWFr
ZXNDYWxscygpID8gR2V0QnlJZEZsdXNoIDogR2V0QnlJZCwKQEAgLTI0NDQsNiArMjQ5MCw3IEBA
IGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgIGFk
ZFZhckFyZ0NoaWxkKHByb3BlcnR5KTsKICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKHZhbHVl
KTsKICAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKDApOyAvLyBMZWF2ZSByb29tIGZvciBwcm9w
ZXJ0eSBzdG9yYWdlLgorICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoMCk7IC8vIExlYXZlIHJv
b20gZm9yIGxlbmd0aC4KICAgICAgICAgICAgIGFkZFRvR3JhcGgoTm9kZTo6VmFyQXJnLCBvcGNv
ZGVJRCA9PSBvcF9wdXRfYnlfdmFsX2RpcmVjdCA/IFB1dEJ5VmFsRGlyZWN0IDogUHV0QnlWYWws
IE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBPcEluZm8oMCkpOwogCiAgICAgICAgICAgICBO
RVhUX09QQ09ERShvcF9wdXRfYnlfdmFsKTsKQEAgLTI0NTksOCArMjUwNiw5IEBAIGJvb2wgQnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1i
ZXJdOwogICAgICAgICAgICAgR2V0QnlJZFN0YXR1cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0
YXR1czo6Y29tcHV0ZUZvcigKLSAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3By
b2ZpbGVkQmxvY2ssIG1faW5saW5lU3RhY2tUb3AtPm1fc3R1YkluZm9zLAotICAgICAgICAgICAg
ICAgIG1fY3VycmVudEluZGV4LCB1aWQpOworICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tU
b3AtPm1fcHJvZmlsZWRCbG9jaywgbV9kZmdDb2RlQmxvY2ssCisgICAgICAgICAgICAgICAgbV9p
bmxpbmVTdGFja1RvcC0+bV9zdHViSW5mb3MsIG1fZGZnU3R1YkluZm9zLAorICAgICAgICAgICAg
ICAgIGN1cnJlbnRDb2RlT3JpZ2luKCksIHVpZCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGhhbmRsZUdldEJ5SWQoCiAgICAgICAgICAgICAgICAgY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCwgcHJlZGljdGlvbiwgYmFzZSwgaWRlbnRpZmllck51bWJlciwgZ2V0QnlJZFN0YXR1
cyk7CkBAIC0yNDc5LDI2ICsyNTI3LDIwIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxv
Y2sodW5zaWduZWQKICAgICAgICAgICAgIGJvb2wgZGlyZWN0ID0gY3VycmVudEluc3RydWN0aW9u
WzhdLnUub3BlcmFuZDsKIAogICAgICAgICAgICAgUHV0QnlJZFN0YXR1cyBwdXRCeUlkU3RhdHVz
ID0gUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKLSAgICAgICAgICAgICAgICBtX2lubGluZVN0
YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIG1faW5saW5lU3RhY2tUb3AtPm1fc3R1YkluZm9zLAot
ICAgICAgICAgICAgICAgIG1fY3VycmVudEluZGV4LCBtX2dyYXBoLmlkZW50aWZpZXJzKClbaWRl
bnRpZmllck51bWJlcl0pOworICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJv
ZmlsZWRCbG9jaywgbV9kZmdDb2RlQmxvY2ssCisgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFj
a1RvcC0+bV9zdHViSW5mb3MsIG1fZGZnU3R1YkluZm9zLAorICAgICAgICAgICAgICAgIGN1cnJl
bnRDb2RlT3JpZ2luKCksIG1fZ3JhcGguaWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVtYmVyXSk7
CiAgICAgICAgICAgICBib29sIGNhbkNvdW50QXNJbmxpbmVkID0gdHJ1ZTsKICAgICAgICAgICAg
IGlmICghcHV0QnlJZFN0YXR1cy5pc1NldCgpKSB7CiAgICAgICAgICAgICAgICAgYWRkVG9HcmFw
aChGb3JjZU9TUkV4aXQpOwogICAgICAgICAgICAgICAgIGNhbkNvdW50QXNJbmxpbmVkID0gZmFs
c2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGJvb2wgaGFzRXhp
dFNpdGUgPQotICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUu
aGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlKQotICAgICAgICAgICAgICAgIHx8
IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5k
ZXgsIEJhZENhY2hlV2F0Y2hwb2ludCkKLSAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNr
VG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRXZWFrQ29u
c3RhbnRDYWNoZSkKLSAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQ
cm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZVdh
dGNocG9pbnQpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIWhhc0V4aXRTaXRlICYm
IHB1dEJ5SWRTdGF0dXMuaXNTaW1wbGVSZXBsYWNlKCkpIHsKKyAgICAgICAgICAgIGlmIChwdXRC
eUlkU3RhdHVzLmlzU2ltcGxlUmVwbGFjZSgpKSB7CiAgICAgICAgICAgICAgICAgYWRkVG9HcmFw
aChDaGVja1N0cnVjdHVyZSwgT3BJbmZvKG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KHB1dEJ5SWRT
dGF0dXMub2xkU3RydWN0dXJlKCkpKSwgYmFzZSk7CiAgICAgICAgICAgICAgICAgaGFuZGxlUHV0
QnlPZmZzZXQoYmFzZSwgaWRlbnRpZmllck51bWJlciwgcHV0QnlJZFN0YXR1cy5vZmZzZXQoKSwg
dmFsdWUpOwogICAgICAgICAgICAgfSBlbHNlIGlmICgKLSAgICAgICAgICAgICAgICAhaGFzRXhp
dFNpdGUKLSAgICAgICAgICAgICAgICAmJiBwdXRCeUlkU3RhdHVzLmlzU2ltcGxlVHJhbnNpdGlv
bigpCisgICAgICAgICAgICAgICAgcHV0QnlJZFN0YXR1cy5pc1NpbXBsZVRyYW5zaXRpb24oKQog
ICAgICAgICAgICAgICAgICYmICghcHV0QnlJZFN0YXR1cy5zdHJ1Y3R1cmVDaGFpbigpCiAgICAg
ICAgICAgICAgICAgICAgIHx8IHB1dEJ5SWRTdGF0dXMuc3RydWN0dXJlQ2hhaW4oKS0+aXNTdGls
bFZhbGlkKCkpKSB7CiAgICAgICAgICAgICAgICAgCkBAIC0yOTczLDMwICszMDE1LDQxIEBAIGJv
b2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgIE5FWFRf
T1BDT0RFKG9wX2NvbnN0cnVjdCk7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBvcF9jYWxs
X3ZhcmFyZ3M6IHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kOworICAgICAgICAgICAgaW50IGNhbGxlZSA9IGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgdGhpc1JlZyA9IGN1cnJlbnRJbnN0cnVj
dGlvblszXS51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgYXJndW1lbnRzID0gY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCBmaXJzdEZyZWVSZWcgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kOworICAgICAgICAgICAgCiAgICAgICAgICAg
ICBBU1NFUlQoaW5saW5lQ2FsbEZyYW1lKCkpOwotICAgICAgICAgICAgQVNTRVJUKGN1cnJlbnRJ
bnN0cnVjdGlvbls0XS51Lm9wZXJhbmQgPT0gbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxvY2st
PmFyZ3VtZW50c1JlZ2lzdGVyKCkub2Zmc2V0KCkpOworICAgICAgICAgICAgQVNTRVJUX1VOVVNF
RChhcmd1bWVudHMsIGFyZ3VtZW50cyA9PSBtX2lubGluZVN0YWNrVG9wLT5tX2NvZGVCbG9jay0+
YXJndW1lbnRzUmVnaXN0ZXIoKS5vZmZzZXQoKSk7CiAgICAgICAgICAgICBBU1NFUlQoIW1faW5s
aW5lU3RhY2tUb3AtPm1fY29kZUJsb2NrLT5zeW1ib2xUYWJsZSgpLT5zbG93QXJndW1lbnRzKCkp
OwotICAgICAgICAgICAgLy8gSXQgd291bGQgYmUgY29vbCB0byBmdW5uZWwgdGhpcyBpbnRvIGhh
bmRsZUNhbGwoKSBzbyB0aGF0IGl0IGNhbiBoYW5kbGUKLSAgICAgICAgICAgIC8vIGlubGluaW5n
LiBCdXQgY3VycmVudGx5IHRoYXQgd29uJ3QgYmUgcHJvZml0YWJsZSBhbnl3YXksIHNpbmNlIG5v
bmUgb2YgdGhlCi0gICAgICAgICAgICAvLyB1c2VzIG9mIGNhbGxfdmFyYXJncyB3aWxsIGJlIGlu
bGluZWFibGUuIFNvIHdlIHNldCB0aGlzIHVwIG1hbnVhbGx5IGFuZAotICAgICAgICAgICAgLy8g
d2l0aG91dCBpbmxpbmUvaW50cmluc2ljIGRldGVjdGlvbi4KLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb24oKTsKLSAgICAg
ICAgICAgIAorCiAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrQXJndW1lbnRzTm90Q3JlYXRl
ZCk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgdW5zaWduZWQgYXJnQ291bnQgPSBpbmxp
bmVDYWxsRnJhbWUoKS0+YXJndW1lbnRzLnNpemUoKTsKLSAgICAgICAgICAgIGlmIChKU1N0YWNr
OjpUaGlzQXJndW1lbnQgKyBhcmdDb3VudCA+IG1fcGFyYW1ldGVyU2xvdHMpCi0gICAgICAgICAg
ICAgICAgbV9wYXJhbWV0ZXJTbG90cyA9IEpTU3RhY2s6OlRoaXNBcmd1bWVudCArIGFyZ0NvdW50
OwogICAgICAgICAgICAgCi0gICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChnZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKSk7IC8vIGNhbGxlZQotICAg
ICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kKSkpOyAvLyB0aGlzCisgICAgICAgICAgICAvLyBMZXQncyBjb21w
dXRlIHRoZSByZWdpc3RlciBvZmZzZXQuIFdlIHN0YXJ0IHdpdGggdGhlIGxhc3QgdXNlZCByZWdp
c3RlciwgYW5kCisgICAgICAgICAgICAvLyB0aGVuIGFkanVzdCBmb3IgdGhlIHRoaW5ncyB3ZSB3
YW50IGluIHRoZSBjYWxsIGZyYW1lLgorICAgICAgICAgICAgaW50IHJlZ2lzdGVyT2Zmc2V0ID0g
Zmlyc3RGcmVlUmVnICsgMTsKKyAgICAgICAgICAgIHJlZ2lzdGVyT2Zmc2V0IC09IGFyZ0NvdW50
OyAvLyBXZSB3aWxsIGJlIHBhc3Npbmcgc29tZSBhcmd1bWVudHMuCisgICAgICAgICAgICByZWdp
c3Rlck9mZnNldCAtPSBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOyAvLyBXZSB3aWxsIHBy
ZXRlbmQgdG8gaGF2ZSBhIGNhbGwgZnJhbWUgaGVhZGVyLgorICAgICAgICAgICAgCisgICAgICAg
ICAgICAvLyBHZXQgdGhlIGFsaWdubWVudCByaWdodC4KKyAgICAgICAgICAgIHJlZ2lzdGVyT2Zm
c2V0ID0gLVdURjo6cm91bmRVcFRvTXVsdGlwbGVPZigKKyAgICAgICAgICAgICAgICBzdGFja0Fs
aWdubWVudFJlZ2lzdGVycygpLAorICAgICAgICAgICAgICAgIC1yZWdpc3Rlck9mZnNldCk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRoZSBieXRlY29kZSB3b3VsZG4ndCBoYXZlIHNl
dCB1cCB0aGUgYXJndW1lbnRzLiBCdXQgd2UnbGwgZG8gaXQgYW5kIG1ha2UgaXQKKyAgICAgICAg
ICAgIC8vIGxvb2sgbGlrZSB0aGUgYnl0ZWNvZGUgaGFkIGRvbmUgaXQuCisgICAgICAgICAgICBp
bnQgbmV4dFJlZ2lzdGVyID0gcmVnaXN0ZXJPZmZzZXQgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFk
ZXJTaXplOworICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihuZXh0UmVnaXN0ZXIrKyks
IGdldChWaXJ0dWFsUmVnaXN0ZXIodGhpc1JlZykpLCBJbW1lZGlhdGVTZXQpOwogICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBhcmd1bWVudCA9IDE7IGFyZ3VtZW50IDwgYXJnQ291bnQ7ICsrYXJn
dW1lbnQpCi0gICAgICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KHZpcnR1YWxSZWdpc3Rl
ckZvckFyZ3VtZW50KGFyZ3VtZW50KSkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBzZXQo
VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLAotICAgICAg
ICAgICAgICAgIGFkZFRvR3JhcGgoTm9kZTo6VmFyQXJnLCBDYWxsLCBPcEluZm8oMCksIE9wSW5m
byhwcmVkaWN0aW9uKSkpOworICAgICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIobmV4
dFJlZ2lzdGVyKyspLCBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpKSwg
SW1tZWRpYXRlU2V0KTsKICAgICAgICAgICAgIAorICAgICAgICAgICAgaGFuZGxlQ2FsbCgKKyAg
ICAgICAgICAgICAgICByZXN1bHQsIENhbGwsIENvZGVGb3JDYWxsLCBPUENPREVfTEVOR1RIKG9w
X2NhbGxfdmFyYXJncyksCisgICAgICAgICAgICAgICAgY2FsbGVlLCBhcmdDb3VudCwgcmVnaXN0
ZXJPZmZzZXQpOwogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY2FsbF92YXJhcmdzKTsKICAg
ICAgICAgfQogICAgICAgICAgICAgCkBAIC0zNjU0LDYgKzM3MDcsMTYgQEAgYm9vbCBCeXRlQ29k
ZVBhcnNlcjo6cGFyc2UoKQogICAgIC8vIFNldCBkdXJpbmcgY29uc3RydWN0aW9uLgogICAgIEFT
U0VSVCghbV9jdXJyZW50SW5kZXgpOwogICAgIAorICAgIGlmIChpc0ZUTChtX2dyYXBoLm1fcGxh
bi5tb2RlKSkgeworICAgICAgICBtX2RmZ0NvZGVCbG9jayA9IG1fZ3JhcGgubV9wbGFuLnByb2Zp
bGVkREZHQ29kZUJsb2NrLmdldCgpOworICAgICAgICBpZiAobV9kZmdDb2RlQmxvY2spIHsKKyAg
ICAgICAgICAgIGlmIChPcHRpb25zOjplbmFibGVQb2x5dmFyaWFudENhbGxJbmxpbmluZygpKQor
ICAgICAgICAgICAgICAgIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlREZHU3RhdHVzZXMobV9kZmdD
b2RlQmxvY2ssIG1fY2FsbENvbnRleHRNYXApOworICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmVu
YWJsZVBvbHl2YXJpYW50QnlJZElubGluaW5nKCkpCisgICAgICAgICAgICAgICAgbV9kZmdDb2Rl
QmxvY2stPmdldFN0dWJJbmZvTWFwKG1fZGZnU3R1YkluZm9zKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICAKICAgICBpZiAobV9jb2RlQmxvY2stPmNhcHR1cmVDb3VudCgpKSB7CiAgICAgICAgIFN5
bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSA9IG1fY29kZUJsb2NrLT5zeW1ib2xUYWJsZSgpOwogICAg
ICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihzeW1ib2xUYWJsZS0+bV9sb2NrKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDRkdTaW1wbGlm
aWNhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzksNiArNzksOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIC8vIHN1Ym9wdGltYWws
IGJlY2F1c2UgaWYgbXkgc3VjY2Vzc29yIGhhcyBtdWx0aXBsZSBwcmVkZWNlc3NvcnMgdGhlbiB3
ZSdsbAogICAgICAgICAgICAgICAgICAgICAvLyBiZSBrZWVwaW5nIGFsaXZlIHRoaW5ncyBvbiBv
dGhlciBwcmVkZWNlc3NvciBlZGdlcyB1bm5lY2Vzc2FyaWx5LgogICAgICAgICAgICAgICAgICAg
ICAvLyBXaGF0IHdlIHJlYWxseSBuZWVkIGlzIHRoZSBub3Rpb24gb2YgZW5kLW9mLWJsb2NrIGdo
b3N0aWVzIQorICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogQWxsb3cgcHV0dGluZyBwaGFu
dG9tcyBhZnRlciB0ZXJtaW5hbHMuCisgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY3NzgKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkRG
R0Fic3RyYWN0SGVhcC5oIgorI2luY2x1ZGUgIkRGR0Nsb2JiZXJpemUuaCIKICNpbmNsdWRlICJE
RkdFZGdlVXNlc1N0cnVjdHVyZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVkZSAi
REZHUGhhc2UuaCIKQEAgLTEwMDYsNiArMTAwOCwxOCBAQCBwcml2YXRlOgogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KICAgICAKKyAgICBib29sIGludmFsaWRhdGlvblBvaW50RWxpbWlu
YXRpb24oKQorICAgIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9pbmRleEluQmxvY2s7
IGktLTspIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBtX2N1cnJlbnRCbG9jay0+YXQoaSk7
CisgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBJbnZhbGlkYXRpb25Qb2ludCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGlmICh3cml0ZXNPdmVybGFwKG1f
Z3JhcGgsIG5vZGUsIFdhdGNocG9pbnRfZmlyZSkpCisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKICAgICB2b2lkIGVs
aW1pbmF0ZUlycmVsZXZhbnRQaGFudG9tQ2hpbGRyZW4oTm9kZSogbm9kZSkKICAgICB7CiAgICAg
ICAgIEFTU0VSVChub2RlLT5vcCgpID09IFBoYW50b20pOwpAQCAtMTM4NSw5ICsxMzk5LDEzIEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBlbGltaW5hdGUocHV0QnlPZmZzZXRTdG9yZUVsaW1pbmF0
aW9uKG1fZ3JhcGgubV9zdG9yYWdlQWNjZXNzRGF0YVtub2RlLT5zdG9yYWdlQWNjZXNzRGF0YUlu
ZGV4KCldLmlkZW50aWZpZXJOdW1iZXIsIG5vZGUtPmNoaWxkMSgpLm5vZGUoKSkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBJbnZhbGlkYXRpb25Qb2lu
dDoKKyAgICAgICAgICAgIGlmIChpbnZhbGlkYXRpb25Qb2ludEVsaW1pbmF0aW9uKCkpCisgICAg
ICAgICAgICAgICAgZWxpbWluYXRlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IAogICAgICAgICBjYXNlIFBoYW50b206CiAgICAgICAgICAgICAvLyBGSVhNRTogd2Ugb3VnaHQg
dG8gcmVtb3ZlIFBoYW50b20ncyB0aGF0IGhhdmUgbm8gY2hpbGRyZW4uCi0gICAgICAgICAgICAK
ICAgICAgICAgICAgIGVsaW1pbmF0ZUlycmVsZXZhbnRQaGFudG9tQ2hpbGRyZW4obm9kZSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTgsNiArMTk4LDggQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNv
ZGVJRAogICAgIGNhc2Ugb3BfY2FsbF92YXJhcmdzOgogICAgICAgICBpZiAoY29kZUJsb2NrLT51
c2VzQXJndW1lbnRzKCkgJiYgcGNbNF0udS5vcGVyYW5kID09IGNvZGVCbG9jay0+YXJndW1lbnRz
UmVnaXN0ZXIoKS5vZmZzZXQoKSkKICAgICAgICAgICAgIHJldHVybiBDYW5JbmxpbmU7CisgICAg
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGFuZGxlIHRoaXMuCisgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2MjYKICAgICAgICAgcmV0dXJuIENh
bm5vdENvbXBpbGU7CiAKICAgICBjYXNlIG9wX25ld19yZWdleHA6IApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5oCShyZXZpc2lvbiAxNjI5NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC05NiwxOSArOTYsMjggQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBmdW5jdGlvbkZv
ckNvbnN0cgogICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAotaW5s
aW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3JDYWxsKENvZGVCbG9jayogY29kZUJsb2NrKQor
aW5saW5lIENhcGFiaWxpdHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZvckNhbGxDYXBhYmlsaXR5TGV2
ZWwoQ29kZUJsb2NrKiBjb2RlQmxvY2spCiB7Ci0gICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rp
b25Gb3JDYWxsKGNvZGVCbG9jaykgJiYgY2FuSW5saW5lKGNhcGFiaWxpdHlMZXZlbChjb2RlQmxv
Y2spKTsKKyAgICBpZiAoIW1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDYWxsKGNvZGVCbG9jaykpCisg
ICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOworICAgIAorICAgIHJldHVybiBjYXBhYmlsaXR5
TGV2ZWwoY29kZUJsb2NrKTsKIH0KIAotaW5saW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25Gb3JD
bG9zdXJlQ2FsbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKK2lubGluZSBDYXBhYmlsaXR5TGV2ZWwg
aW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNv
ZGVCbG9jaykKIHsKLSAgICByZXR1cm4gbWlnaHRJbmxpbmVGdW5jdGlvbkZvckNsb3N1cmVDYWxs
KGNvZGVCbG9jaykgJiYgY2FuSW5saW5lKGNhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spKTsKKyAg
ICBpZiAoIW1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChjb2RlQmxvY2spKQorICAg
ICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKKyAgICAKKyAgICByZXR1cm4gY2FwYWJpbGl0eUxl
dmVsKGNvZGVCbG9jayk7CiB9CiAKLWlubGluZSBib29sIGNhbklubGluZUZ1bmN0aW9uRm9yQ29u
c3RydWN0KENvZGVCbG9jayogY29kZUJsb2NrKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBpbmxp
bmVGdW5jdGlvbkZvckNvbnN0cnVjdENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9j
aykKIHsKLSAgICByZXR1cm4gbWlnaHRJbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdChjb2RlQmxv
Y2spICYmIGNhbklubGluZShjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKSk7CisgICAgaWYgKCFt
aWdodElubGluZUZ1bmN0aW9uRm9yQ29uc3RydWN0KGNvZGVCbG9jaykpCisgICAgICAgIHJldHVy
biBDYW5ub3RDb21waWxlOworICAgIAorICAgIHJldHVybiBjYXBhYmlsaXR5TGV2ZWwoY29kZUJs
b2NrKTsKIH0KIAogaW5saW5lIGJvb2wgbWlnaHRJbmxpbmVGdW5jdGlvbkZvcihDb2RlQmxvY2sq
IGNvZGVCbG9jaywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQpAQCAtMTI0LDE2ICsxMzMs
MTYgQEAgaW5saW5lIGJvb2wgbWlnaHRJbmxpbmVGdW5jdGlvbihDb2RlQmxvYwogICAgIHJldHVy
biBtaWdodElubGluZUZ1bmN0aW9uRm9yKGNvZGVCbG9jaywgY29kZUJsb2NrLT5zcGVjaWFsaXph
dGlvbktpbmQoKSk7CiB9CiAKLWlubGluZSBib29sIGNhbklubGluZUZ1bmN0aW9uRm9yKENvZGVC
bG9jayogY29kZUJsb2NrLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIGJvb2wgaXNDbG9z
dXJlQ2FsbCkKK2lubGluZSBDYXBhYmlsaXR5TGV2ZWwgaW5saW5lRnVuY3Rpb25Gb3JDYXBhYmls
aXR5TGV2ZWwoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2lu
ZCwgYm9vbCBpc0Nsb3N1cmVDYWxsKQogewogICAgIGlmIChpc0Nsb3N1cmVDYWxsKSB7CiAgICAg
ICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDYWxsKTsKLSAgICAgICAgcmV0dXJuIGNhbklubGlu
ZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGwoY29kZUJsb2NrKTsKKyAgICAgICAgcmV0dXJuIGlubGlu
ZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGxDYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKTsKICAgICB9
CiAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCi0gICAgICAgIHJldHVybiBjYW5JbmxpbmVG
dW5jdGlvbkZvckNhbGwoY29kZUJsb2NrKTsKKyAgICAgICAgcmV0dXJuIGlubGluZUZ1bmN0aW9u
Rm9yQ2FsbENhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2spOwogICAgIEFTU0VSVChraW5kID09IENv
ZGVGb3JDb25zdHJ1Y3QpOwotICAgIHJldHVybiBjYW5JbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVj
dChjb2RlQmxvY2spOworICAgIHJldHVybiBpbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdENhcGFi
aWxpdHlMZXZlbChjb2RlQmxvY2spOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTg3LDE1ICs4Nyw2IEBAIGlubGluZSBib29sIHZhbGlkYXRpb25FbmFibGVkKCkKICNlbmRp
ZgogfQogCi1pbmxpbmUgYm9vbCBlbmFibGVDb25jdXJyZW50SklUKCkKLXsKLSNpZiBFTkFCTEUo
Q09OQ1VSUkVOVF9KSVQpCi0gICAgcmV0dXJuIE9wdGlvbnM6OmVuYWJsZUNvbmN1cnJlbnRKSVQo
KSAmJiBPcHRpb25zOjpudW1iZXJPZkNvbXBpbGVyVGhyZWFkcygpOwotI2Vsc2UKLSAgICByZXR1
cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogaW5saW5lIGJvb2wgZW5hYmxlSW50NTIoKQogewogI2lm
IFVTRShKU1ZBTFVFNjQpCkBAIC0yMzUsNyArMjI2LDEzIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKIAogLy8gUHV0IHRoaW5ncyBoZXJlIHRoYXQgbXVzdCBiZSBkZWZpbmVkIGV2
ZW4gaWYgRU5BQkxFKERGR19KSVQpIGlzIGZhbHNlLgogCi1lbnVtIENhcGFiaWxpdHlMZXZlbCB7
IENhbm5vdENvbXBpbGUsIENhbklubGluZSwgQ2FuQ29tcGlsZSwgQ2FuQ29tcGlsZUFuZElubGlu
ZSwgQ2FwYWJpbGl0eUxldmVsTm90U2V0IH07CitlbnVtIENhcGFiaWxpdHlMZXZlbCB7CisgICAg
Q2Fubm90Q29tcGlsZSwKKyAgICBDYW5JbmxpbmUsCisgICAgQ2FuQ29tcGlsZSwKKyAgICBDYW5D
b21waWxlQW5kSW5saW5lLAorICAgIENhcGFiaWxpdHlMZXZlbE5vdFNldAorfTsKIAogaW5saW5l
IGJvb2wgY2FuQ29tcGlsZShDYXBhYmlsaXR5TGV2ZWwgbGV2ZWwpCiB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbXBpbGF0aW9uTW9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tcGlsYXRpb25Nb2RlLmgJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tcGlsYXRpb25Nb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDE3IEBAIGVudW0gQ29tcGlsYXRpb25Nb2RlIHsK
ICAgICBGVExGb3JPU1JFbnRyeU1vZGUKIH07CiAKK2lubGluZSBib29sIGlzRlRMKENvbXBpbGF0
aW9uTW9kZSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgRlRMTW9kZToK
KyAgICBjYXNlIEZUTEZvck9TUkVudHJ5TW9kZToKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkRGRwogCiBuYW1lc3BhY2UgV1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRHJpdmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RyaXZlci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNTYsOSArNTYsOSBAQCB1bnNpZ25lZCBnZXROdW1Db21waWxhdGlvbnMoKQogCiAj
aWYgRU5BQkxFKERGR19KSVQpCiBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwo
Ci0gICAgVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUs
IHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKLSAgICBjb25zdCBPcGVyYW5kczxKU1Zh
bHVlPiYgbXVzdEhhbmRsZVZhbHVlcywKLSAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjaz4gY2FsbGJhY2ssIFdvcmtsaXN0KiB3b3JrbGlzdCkKKyAgICBWTSYgdm0sIENv
ZGVCbG9jayogY29kZUJsb2NrLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21w
aWxhdGlvbk1vZGUgbW9kZSwKKyAgICB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIGNv
bnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzLAorICAgIFBhc3NSZWZQdHI8
RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjYWxsYmFjaykKIHsKICAgICBTYW1wbGluZ1Jl
Z2lvbiBzYW1wbGluZ1JlZ2lvbigiREZHIENvbXBpbGF0aW9uIChEcml2ZXIpIik7CiAgICAgCkBA
IC02Nyw2ICs2Nyw3IEBAIHN0YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAg
ICBBU1NFUlQoY29kZUJsb2NrKTsKICAgICBBU1NFUlQoY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgp
KTsKICAgICBBU1NFUlQoY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpLT5qaXRUeXBlKCkgPT0gSklU
Q29kZTo6QmFzZWxpbmVKSVQpOworICAgIEFTU0VSVCghcHJvZmlsZWRERkdDb2RlQmxvY2sgfHwg
cHJvZmlsZWRERkdDb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpERkdKSVQpOwogICAg
IAogICAgIGlmICghT3B0aW9uczo6dXNlREZHSklUKCkgfHwgIU1hY3JvQXNzZW1ibGVyOjpzdXBw
b3J0c0Zsb2F0aW5nUG9pbnQoKSkKICAgICAgICAgcmV0dXJuIENvbXBpbGF0aW9uRmFpbGVkOwpA
QCAtODgsMTYgKzg5LDMxIEBAIHN0YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgK
ICAgICAvLyBtYWtlIHN1cmUgdGhhdCBhbGwgSklUIGNvZGUgZ2VuZXJhdGlvbiBkb2VzIGZpbmFs
aXphdGlvbiBvbiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgdm0uZ2V0Q1RJU3R1Yihvc3JFeGl0R2Vu
ZXJhdGlvblRodW5rR2VuZXJhdG9yKTsKICAgICB2bS5nZXRDVElTdHViKHRocm93RXhjZXB0aW9u
RnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcik7Ci0gICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRo
dW5rR2VuZXJhdG9yKTsKLSAgICB2bS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVy
YXRvcik7Ci0gICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcik7
Ci0gICAgdm0uZ2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKTsKLSAgICB2bS5n
ZXRDVElTdHViKHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7CisgICAgaWYgKG1vZGUg
PT0gREZHTW9kZSkgeworICAgICAgICB2bS5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0
b3IpOworICAgICAgICB2bS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7
CisgICAgICAgIHZtLmdldENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpOwor
ICAgICAgICB2bS5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IpOworICAgICAg
ICB2bS5nZXRDVElTdHViKHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1
bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaGF0UHJl
c2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2xv
c3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0
Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOworICAg
ICAgICB2bS5nZXRDVElTdHViKHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5r
R2VuZXJhdG9yKTsKKyAgICB9CiAgICAgCiAgICAgUmVmUHRyPFBsYW4+IHBsYW4gPSBhZG9wdFJl
ZigKLSAgICAgICAgbmV3IFBsYW4oY29kZUJsb2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVjb2RlSW5k
ZXgsIG11c3RIYW5kbGVWYWx1ZXMpKTsKKyAgICAgICAgbmV3IFBsYW4oY29kZUJsb2NrLCBwcm9m
aWxlZERGR0NvZGVCbG9jaywgbW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxl
VmFsdWVzKSk7CiAgICAgCi0gICAgaWYgKHdvcmtsaXN0KSB7CisgICAgYm9vbCBlbmFibGVDb25j
dXJyZW50SklUOworI2lmIEVOQUJMRShDT05DVVJSRU5UX0pJVCkKKyAgICBlbmFibGVDb25jdXJy
ZW50SklUID0gT3B0aW9uczo6ZW5hYmxlQ29uY3VycmVudEpJVCgpOworI2Vsc2UgLy8gRU5BQkxF
KENPTkNVUlJFTlRfSklUKQorICAgIGVuYWJsZUNvbmN1cnJlbnRKSVQgPSBmYWxzZTsKKyNlbmRp
ZiAvLyBFTkFCTEUoQ09OQ1VSUkVOVF9KSVQpCisgICAgaWYgKGVuYWJsZUNvbmN1cnJlbnRKSVQp
IHsKKyAgICAgICAgV29ya2xpc3QqIHdvcmtsaXN0ID0gZW5zdXJlR2xvYmFsV29ya2xpc3RGb3Io
bW9kZSk7CiAgICAgICAgIHBsYW4tPmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgICAgIGlmIChs
b2dDb21waWxhdGlvbkNoYW5nZXMoKSkKICAgICAgICAgICAgIGRhdGFMb2coIkRlZmVycmluZyBE
RkcgY29tcGlsYXRpb24gb2YgIiwgKmNvZGVCbG9jaywgIiB3aXRoIHF1ZXVlIGxlbmd0aCAiLCB3
b3JrbGlzdC0+cXVldWVMZW5ndGgoKSwgIi5cbiIpOwpAQCAtMTEwLDIxICsxMjYsMjIgQEAgc3Rh
dGljIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAogfQogI2Vsc2UgLy8gRU5BQkxFKERG
R19KSVQpCiBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCi0gICAgVk0mLCBD
b2RlQmxvY2sqLCBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkLCBjb25zdCBPcGVyYW5kczxKU1Zh
bHVlPiYsCi0gICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+LCBXb3Jr
bGlzdCopCisgICAgVk0mLCBDb2RlQmxvY2sqLCBDb2RlQmxvY2sqLCBDb21waWxhdGlvbk1vZGUs
IHVuc2lnbmVkLCBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYsCisgICAgUGFzc1JlZlB0cjxEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+KQogewogICAgIHJldHVybiBDb21waWxhdGlvbkZhaWxl
ZDsKIH0KICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKIAogQ29tcGlsYXRpb25SZXN1bHQgY29t
cGlsZSgKLSAgICBWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUg
bW9kZSwgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LAotICAgIGNvbnN0IE9wZXJhbmRz
PEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzLAotICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrPiBwYXNzZWRDYWxsYmFjaywgV29ya2xpc3QqIHdvcmtsaXN0KQorICAg
IFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2Rl
QmxvY2ssIENvbXBpbGF0aW9uTW9kZSBtb2RlLAorICAgIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNv
ZGVJbmRleCwgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMsCisgICAg
UGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IHBhc3NlZENhbGxiYWNrKQog
ewogICAgIFJlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrID0gcGFz
c2VkQ2FsbGJhY2s7CiAgICAgQ29tcGlsYXRpb25SZXN1bHQgcmVzdWx0ID0gY29tcGlsZUltcGwo
Ci0gICAgICAgIHZtLCBjb2RlQmxvY2ssIG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVz
dEhhbmRsZVZhbHVlcywgY2FsbGJhY2ssIHdvcmtsaXN0KTsKKyAgICAgICAgdm0sIGNvZGVCbG9j
aywgcHJvZmlsZWRERkdDb2RlQmxvY2ssIG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVz
dEhhbmRsZVZhbHVlcywKKyAgICAgICAgY2FsbGJhY2spOwogICAgIGlmIChyZXN1bHQgIT0gQ29t
cGlsYXRpb25EZWZlcnJlZCkKICAgICAgICAgY2FsbGJhY2stPmNvbXBpbGF0aW9uRGlkQ29tcGxl
dGUoY29kZUJsb2NrLCByZXN1bHQpOwogICAgIHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTQwLDE2ICs0MCwxNCBAQCBjbGFzcyBWTTsKIAogbmFtZXNwYWNlIERGRyB7CiAKLWNsYXNzIFdv
cmtsaXN0OwotCiBKU19FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBnZXROdW1Db21waWxhdGlvbnMo
KTsKIAogLy8gSWYgdGhlIHdvcmtsaXN0IGlzIG5vbi1udWxsLCB3ZSBkbyBhIGNvbmN1cnJlbnQg
Y29tcGlsZS4gT3RoZXJ3aXNlIHdlIGRvIGEgc3luY2hyb25vdXMKIC8vIGNvbXBpbGUuIEV2ZW4g
aWYgd2UgZG8gYSBzeW5jaHJvbm91cyBjb21waWxlLCB3ZSBjYWxsIHRoZSBjYWxsYmFjayB3aXRo
IHRoZSByZXN1bHQuCiBDb21waWxhdGlvblJlc3VsdCBjb21waWxlKAotICAgIFZNJiwgQ29kZUJs
b2NrKiwgQ29tcGlsYXRpb25Nb2RlLCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCi0g
ICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMsCi0gICAgUGFzc1Jl
ZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+LCBXb3JrbGlzdCopOworICAgIFZNJiwg
Q29kZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25N
b2RlLAorICAgIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgY29uc3QgT3BlcmFuZHM8
SlNWYWx1ZT4mIG11c3RIYW5kbGVWYWx1ZXMsCisgICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2s+KTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuY3BwCShy
ZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZp
bmFsaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDExIEBAIEZhaWxlZEZpbmFs
aXplcjo6fkZhaWxlZEZpbmFsaXplcigpCiB7CiB9CiAKK3NpemVfdCBGYWlsZWRGaW5hbGl6ZXI6
OmNvZGVTaXplKCkKK3sKKyAgICByZXR1cm4gMDsKK30KKwogYm9vbCBGYWlsZWRGaW5hbGl6ZXI6
OmZpbmFsaXplKCkKIHsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgogICAgIEZhaWxlZEZpbmFsaXplcihQbGFu
Jik7CiAgICAgdmlydHVhbCB+RmFpbGVkRmluYWxpemVyKCk7CiAgICAgCisgICAgdmlydHVhbCBz
aXplX3QgY29kZVNpemUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemUoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOwog
fTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmluYWxpemVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaAkocmV2aXNp
b24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgRmluYWxpemVyKFBs
YW4mKTsKICAgICB2aXJ0dWFsIH5GaW5hbGl6ZXIoKTsKICAgICAKKyAgICB2aXJ0dWFsIHNpemVf
dCBjb2RlU2l6ZSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemUoKSA9IDA7CiAgICAg
dmlydHVhbCBib29sIGZpbmFsaXplRnVuY3Rpb24oKSA9IDA7CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTAwLDEyICsxMDAsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBCaXRSU2hpZnQ6
CiAgICAgICAgIGNhc2UgQml0TFNoaWZ0OgogICAgICAgICBjYXNlIEJpdFVSU2hpZnQ6IHsKLSAg
ICAgICAgICAgIGZpeEJpbmFyeUludEVkZ2VzKCk7CisgICAgICAgICAgICBmaXhJbnRFZGdlKG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGZpeEludEVkZ2Uobm9kZS0+Y2hpbGQyKCkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIEFyaXRoSU11bDog
ewotICAgICAgICAgICAgZml4QmluYXJ5SW50RWRnZXMoKTsKKyAgICAgICAgICAgIGZpeEludEVk
Z2Uobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4SW50RWRnZShub2RlLT5jaGlsZDIo
KSk7CiAgICAgICAgICAgICBub2RlLT5zZXRPcChBcml0aE11bCk7CiAgICAgICAgICAgICBub2Rl
LT5zZXRBcml0aE1vZGUoQXJpdGg6OlVuY2hlY2tlZCk7CiAgICAgICAgICAgICBub2RlLT5jaGls
ZDEoKS5zZXRVc2VLaW5kKEludDMyVXNlKTsKQEAgLTQ1MCw2ICs0NTIsNyBAQCBwcml2YXRlOgog
ICAgICAgICBjYXNlIEdldEJ5VmFsOiB7CiAgICAgICAgICAgICBub2RlLT5zZXRBcnJheU1vZGUo
CiAgICAgICAgICAgICAgICAgbm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKAorICAgICAgICAgICAg
ICAgICAgICBtX2dyYXBoLCBub2RlLT5jb2RlT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICBu
b2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLAogICAgICAgICAgICAgICAgICAgICBub2RlLT5j
aGlsZDIoKS0+cHJlZGljdGlvbigpLAogICAgICAgICAgICAgICAgICAgICBTcGVjTm9uZSwgbm9k
ZS0+ZmxhZ3MoKSkpOwpAQCAtNTA3LDYgKzUxMCw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgICAg
IG5vZGUtPnNldEFycmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2RlLT5hcnJheU1vZGUoKS5y
ZWZpbmUoCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4sCiAg
ICAgICAgICAgICAgICAgICAgIGNoaWxkMS0+cHJlZGljdGlvbigpLAogICAgICAgICAgICAgICAg
ICAgICBjaGlsZDItPnByZWRpY3Rpb24oKSwKICAgICAgICAgICAgICAgICAgICAgY2hpbGQzLT5w
cmVkaWN0aW9uKCkpKTsKQEAgLTU5Miw2ICs1OTYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
Ly8gdGhhdCB3b3VsZCBicmVhayB0aGluZ3MuCiAgICAgICAgICAgICBub2RlLT5zZXRBcnJheU1v
ZGUoCiAgICAgICAgICAgICAgICAgbm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKAorICAgICAgICAg
ICAgICAgICAgICBtX2dyYXBoLCBub2RlLT5jb2RlT3JpZ2luLAogICAgICAgICAgICAgICAgICAg
ICBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpICYgU3BlY0NlbGwsCiAgICAgICAgICAgICAg
ICAgICAgIFNwZWNJbnQzMiwKICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQyKCktPnBy
ZWRpY3Rpb24oKSkpOwpAQCAtOTQ2LDcgKzk1MSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgT3BJbmZvKG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPmNvZGVPcmlnaW4pKSk7CiAg
ICAgICAgICAgICBOb2RlKiBiYXJyaWVyTm9kZSA9IG1fZ3JhcGguYWRkTm9kZShTcGVjTm9uZSwg
Q29uZGl0aW9uYWxTdG9yZUJhcnJpZXIsIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIAogICAg
ICAgICAgICAgICAgIEVkZ2UoZ2xvYmFsT2JqZWN0Tm9kZSwgS25vd25DZWxsVXNlKSwgRWRnZShu
b2RlLT5jaGlsZDEoKS5ub2RlKCksIFVudHlwZWRVc2UpKTsKLSAgICAgICAgICAgIGZpeHVwTm9k
ZShiYXJyaWVyTm9kZSk7CiAgICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnQobV9pbmRl
eEluQmxvY2ssIGJhcnJpZXJOb2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBA
IC05NTQsNyArOTU4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUZWFyT2ZmQWN0aXZhdGlv
bjogewogICAgICAgICAgICAgTm9kZSogYmFycmllck5vZGUgPSBtX2dyYXBoLmFkZE5vZGUoU3Bl
Y05vbmUsIFN0b3JlQmFycmllcldpdGhOdWxsQ2hlY2ssIG1fY3VycmVudE5vZGUtPmNvZGVPcmln
aW4sIAogICAgICAgICAgICAgICAgIEVkZ2Uobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBVbnR5cGVk
VXNlKSk7Ci0gICAgICAgICAgICBmaXh1cE5vZGUoYmFycmllck5vZGUpOwogICAgICAgICAgICAg
bV9pbnNlcnRpb25TZXQuaW5zZXJ0KG1faW5kZXhJbkJsb2NrLCBiYXJyaWVyTm9kZSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTAzNCw2ICsxMDM3LDI0IEBAIHByaXZhdGU6
CiAgICAgICAgIAogICAgICAgICBpZiAoIW5vZGUtPmNvbnRhaW5zTW92SGludCgpKQogICAgICAg
ICAgICAgREZHX05PREVfRE9fVE9fQ0hJTERSRU4obV9ncmFwaCwgbm9kZSwgb2JzZXJ2ZVVudHlw
ZWRFZGdlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChub2RlLT5pc1Rlcm1pbmFsKCkpIHsKKyAg
ICAgICAgICAgIC8vIFRlcm1pbmFsIG5vZGVzIGRvbid0IG5lZWQgcG9zdC1waGFudG9tcywgYW5k
IGluc2VydGluZyB0aGVtIHdvdWxkIHZpb2xhdGUKKyAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50
IHJlcXVpcmVtZW50IHRoYXQgYSB0ZXJtaW5hbCBpcyB0aGUgbGFzdCB0aGluZyBpbiBhIGJsb2Nr
LiBXZQorICAgICAgICAgICAgLy8gc2hvdWxkIGV2ZW50dWFsbHkgY2hhbmdlIHRoYXQgcmVxdWly
ZW1lbnQgYnV0IGV2ZW4gaWYgd2UgZGlkLCB0aGlzIHdvdWxkCisgICAgICAgICAgICAvLyBzdGls
bCBiZSBhIHZhbGlkIG9wdGltaXphdGlvbi4gQWxsIHRlcm1pbmFscyBhY2NlcHQganVzdCBvbmUg
aW5wdXQsIGFuZAorICAgICAgICAgICAgLy8gaWYgdGhhdCBpbnB1dCBpcyBhIGNvbnZlcnNpb24g
bm9kZSB0aGVuIG5vIGZ1cnRoZXIgc3BlY3VsYXRpb25zIHdpbGwgYmUKKyAgICAgICAgICAgIC8v
IHBlcmZvcm1lZC4KKyAgICAgICAgICAgIC8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgYnkgYWxs
b3dpbmcgUGhhbnRvbXMgYWZ0ZXIgdGVybWluYWxzLgorICAgICAgICAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjc3OAorICAgICAgICAgICAgbV9yZXF1
aXJlZFBoYW50b21zLnJlc2l6ZSgwKTsKKyAgICAgICAgLy8gU2luY2UgU3RvcmVCYXJyaWVycyBh
cmUgcmVjdXJzaXZlbHkgZml4ZWQgdXAgc28gdGhhdCB0aGVpciBjaGlsZHJlbiBsb29rIAorICAg
ICAgICAvLyBpZGVudGljYWwgdG8gdGhhdCBvZiB0aGUgbm9kZSB0aGV5J3JlIGJhcnJpZXItaW5n
LCB3ZSBuZWVkIHRvIGF2b2lkIGFkZGluZworICAgICAgICAvLyBhbnkgUGhhbnRvbXMgd2hlbiBw
cm9jZXNzaW5nIHRoZW0gYmVjYXVzZSB0aGlzIHdvdWxkIGludmFsaWRhdGUgdGhlIAorICAgICAg
ICAvLyBJbnNlcnRpb25TZXQncyBpbnZhcmlhbnQgb2YgaW5zZXJ0aW5nIHRoaW5ncyBpbiBhIG1v
bm90b25pY2FsbHkgaW5jcmVhc2luZworICAgICAgICAvLyBvcmRlci4gVGhpcyBzaG91bGQgYmUg
b2theSBhbnl3YXlzIGJlY2F1c2UgU3RvcmVCYXJyaWVycyBjYW4ndCBleGl0LiAKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5KCk7CiAgICAgfQogICAg
IAogICAgIHZvaWQgb2JzZXJ2ZVVudHlwZWRFZGdlKE5vZGUqLCBFZGdlJiBlZGdlKQpAQCAtMTMx
OSw2ICsxMzQwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYWRkUGhhbnRvbXNJZk5lY2Vzc2FyeSgpOwogICAgICAgICB9CiAgICAgICAgIG1f
aW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOwogICAgIH0KQEAgLTEzMzQsOCArMTM1NiwxMCBA
QCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgIT0gU2V0TG9jYWwpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkKKyAgICAgICAgICAgIGlmIChub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkgewogICAgICAgICAgICAgICAgIGZp
eEVkZ2U8VW50eXBlZFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIGFkZFBo
YW50b21zSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBt
X2luc2VydGlvblNldC5leGVjdXRlKGJsb2NrKTsKICAgICB9CkBAIC0xNTA5LDYgKzE1MzMsNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgIC8vIEludDhUb0RvdWJsZSB3aWxsIGNvbnZlcnQg
aW50NTIncyB0aGF0IGZpdCBpbiBhbiBpbnQzMiBpbnRvIGEgZG91YmxlCiAgICAgICAgICAgICAg
ICAgLy8gcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIGNyZWF0ZSBhIGJveGVkIGludDMyIGxpa2UgSW50
NTJUb1ZhbHVlIGRvZXMuCiAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9yZXF1
aXJlZFBoYW50b21zLmFwcGVuZChlZGdlLm5vZGUoKSk7CiAgICAgICAgICAgICAgICAgTm9kZSog
cmVzdWx0ID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAgICAgICAgICAgICAgICAgICAg
bV9pbmRleEluQmxvY2ssIFNwZWNJbnQ1MkFzRG91YmxlLCBJbnQ1MlRvRG91YmxlLAogICAgICAg
ICAgICAgICAgICAgICBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBFZGdlKGVkZ2Uubm9kZSgp
LCBOdW1iZXJVc2UpKTsKQEAgLTE1NjIsNiArMTU4Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAvLwogICAgICAgICAgICAgLy8gQnV0IHRoZSBzb2x1dGlvbiB3ZSB1c2UgaGFuZGxlcyB0aGUg
YWJvdmUgZ3JhY2VmdWxseS4KICAgICAgICAgICAgIAorICAgICAgICAgICAgbV9yZXF1aXJlZFBo
YW50b21zLmFwcGVuZChlZGdlLm5vZGUoKSk7CiAgICAgICAgICAgICBOb2RlKiByZXN1bHQgPSBt
X2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgICAgIG1faW5kZXhJbkJsb2Nr
LCBTcGVjSW50NTIsIEludDUyVG9WYWx1ZSwKICAgICAgICAgICAgICAgICBtX2N1cnJlbnROb2Rl
LT5jb2RlT3JpZ2luLCBFZGdlKGVkZ2Uubm9kZSgpLCBVbnR5cGVkVXNlKSk7CkBAIC0xNTgzLDE2
ICsxNjA5LDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBiYXJyaWVyTm9kZSA9IG1fZ3JhcGgu
YWRkTm9kZShTcGVjTm9uZSwgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXIsIG1fY3VycmVudE5vZGUt
PmNvZGVPcmlnaW4sIAogICAgICAgICAgICAgICAgIEVkZ2UoY2hpbGQxLm5vZGUoKSwgY2hpbGQx
LnVzZUtpbmQoKSksIEVkZ2UoY2hpbGQyLm5vZGUoKSwgY2hpbGQyLnVzZUtpbmQoKSkpOwogICAg
ICAgICB9Ci0gICAgICAgIGZpeHVwTm9kZShiYXJyaWVyTm9kZSk7CiAgICAgICAgIG1faW5zZXJ0
aW9uU2V0Lmluc2VydChpbmRleEluQmxvY2ssIGJhcnJpZXJOb2RlKTsKICAgICB9CiAKLSAgICBi
b29sIGZpeEludEVkZ2UoRWRnZSYgZWRnZSkKKyAgICB2b2lkIGZpeEludEVkZ2UoRWRnZSYgZWRn
ZSkKICAgICB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBlZGdlLm5vZGUoKTsKICAgICAgICAgaWYg
KG5vZGUtPnNob3VsZFNwZWN1bGF0ZUludDMyKCkpIHsKICAgICAgICAgICAgIGZpeEVkZ2U8SW50
MzJVc2U+KGVkZ2UpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBVc2VLaW5kIHVzZUtpbmQ7CkBAIC0x
NjEwLDI0ICsxNjM1LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIG9ic2VydmVVc2VLaW5kT25Ob2Rl
KG5vZGUsIHVzZUtpbmQpOwogICAgICAgICAKICAgICAgICAgZWRnZSA9IEVkZ2UobmV3Tm9kZSwg
S25vd25JbnQzMlVzZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICB2
b2lkIGZpeEJpbmFyeUludEVkZ2VzKCkKLSAgICB7Ci0gICAgICAgIEFkamFjZW5jeUxpc3QgY2hp
bGRyZW4gPSBtX2N1cnJlbnROb2RlLT5jaGlsZHJlbjsKLSAgICAgICAgCi0gICAgICAgIC8vIENh
bGwgZml4SW50RWRnZSgpIG9uIGJvdGggZWRnZXMuCi0gICAgICAgIGJvb2wgbmVlZFBoYW50b20g
PQotICAgICAgICAgICAgZml4SW50RWRnZShtX2N1cnJlbnROb2RlLT5jaGlsZDEoKSkgfCBmaXhJ
bnRFZGdlKG1fY3VycmVudE5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgCi0gICAgICAgIGlmICgh
bmVlZFBoYW50b20pCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1faW5zZXJ0aW9uU2V0
Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2sgKyAxLCBTcGVjTm9uZSwgUGhhbnRvbSwgbV9jdXJy
ZW50Tm9kZS0+Y29kZU9yaWdpbiwgY2hpbGRyZW4pOworICAgICAgICBtX3JlcXVpcmVkUGhhbnRv
bXMuYXBwZW5kKG5vZGUpOwogICAgIH0KICAgICAKICAgICB2b2lkIGluamVjdEludDMyVG9Eb3Vi
bGVOb2RlKEVkZ2UmIGVkZ2UsIFVzZUtpbmQgdXNlS2luZCA9IE51bWJlclVzZSkKICAgICB7Cisg
ICAgICAgIG1fcmVxdWlyZWRQaGFudG9tcy5hcHBlbmQoZWRnZS5ub2RlKCkpOworICAgICAgICAK
ICAgICAgICAgTm9kZSogcmVzdWx0ID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAgICAg
ICAgICAgIG1faW5kZXhJbkJsb2NrLCBTcGVjSW50NTJBc0RvdWJsZSwgSW50MzJUb0RvdWJsZSwK
ICAgICAgICAgICAgIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRnZS5ub2RlKCks
IE51bWJlclVzZSkpOwpAQCAtMTcyMiw3ICsxNzM2LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgIGFycmF5TW9kZSA9IGFycmF5TW9k
ZS5yZWZpbmUobm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSwgbm9kZS0+cHJlZGljdGlvbigp
KTsKKyAgICAgICAgYXJyYXlNb2RlID0gYXJyYXlNb2RlLnJlZmluZSgKKyAgICAgICAgICAgIG1f
Z3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4sIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0aW9uKCksIG5v
ZGUtPnByZWRpY3Rpb24oKSk7CiAgICAgICAgICAgICAKICAgICAgICAgaWYgKGFycmF5TW9kZS50
eXBlKCkgPT0gQXJyYXk6OkdlbmVyaWMpIHsKICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBp
bnB1dCBpcyBzb21ldGhpbmcgdGhhdCB3ZSBjYW4ndCBnZXQgYXJyYXkgbGVuZ3RoIGZvciwgYnV0
IGZvciB3aGljaCB3ZQpAQCAtMTgxMywxMiArMTgyOCwyNyBAQCBwcml2YXRlOgogICAgICAgICBm
aXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CisgICAgCisgICAgdm9pZCBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5KCkKKyAgICB7
CisgICAgICAgIGlmIChtX3JlcXVpcmVkUGhhbnRvbXMuaXNFbXB0eSgpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9yZXF1aXJlZFBo
YW50b21zLnNpemUoKTsgaS0tOykgeworICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0
Tm9kZSgKKyAgICAgICAgICAgICAgICBtX2luZGV4SW5CbG9jayArIDEsIFNwZWNOb25lLCBQaGFu
dG9tLCBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgIEVkZ2UobV9y
ZXF1aXJlZFBoYW50b21zW2ldLCBVbnR5cGVkVXNlKSk7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIG1fcmVxdWlyZWRQaGFudG9tcy5yZXNpemUoMCk7CisgICAgfQogCiAgICAgQmFzaWNC
bG9jayogbV9ibG9jazsKICAgICB1bnNpZ25lZCBtX2luZGV4SW5CbG9jazsKICAgICBOb2RlKiBt
X2N1cnJlbnROb2RlOwogICAgIEluc2VydGlvblNldCBtX2luc2VydGlvblNldDsKICAgICBib29s
IG1fcHJvZml0YWJpbGl0eUNoYW5nZWQ7CisgICAgVmVjdG9yPE5vZGUqLCAzPiBtX3JlcXVpcmVk
UGhhbnRvbXM7CiB9OwogICAgIAogYm9vbCBwZXJmb3JtRml4dXAoR3JhcGgmIGdyYXBoKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiw4ICszNiwxMCBAQAogI2luY2x1ZGUgIkZ1bmN0aW9uRXhlY3V0YWJsZUR1bXAuaCIK
ICNpbmNsdWRlICJKSVQuaCIKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKKyNpbmNsdWRlICJN
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhbmRzSW5saW5l
cy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5o
IgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvTGlzdER1bXAu
aD4KIApAQCAtNjc4LDEwICs2ODAsMTAgQEAgRnVsbEJ5dGVjb2RlTGl2ZW5lc3MmIEdyYXBoOjps
aXZlbmVzc0ZvcgogYm9vbCBHcmFwaDo6aXNMaXZlSW5CeXRlY29kZShWaXJ0dWFsUmVnaXN0ZXIg
b3BlcmFuZCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQogewogICAgIGZvciAoOzspIHsKKyAgICAg
ICAgVmlydHVhbFJlZ2lzdGVyIHJlZyA9IFZpcnR1YWxSZWdpc3RlcigKKyAgICAgICAgICAgIG9w
ZXJhbmQub2Zmc2V0KCkgLSBjb2RlT3JpZ2luLnN0YWNrT2Zmc2V0KCkpOworICAgICAgICAKICAg
ICAgICAgaWYgKG9wZXJhbmQub2Zmc2V0KCkgPCBjb2RlT3JpZ2luLnN0YWNrT2Zmc2V0KCkgKyBK
U1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSB7Ci0gICAgICAgICAgICBWaXJ0dWFsUmVnaXN0
ZXIgcmVnID0gVmlydHVhbFJlZ2lzdGVyKAotICAgICAgICAgICAgICAgIG9wZXJhbmQub2Zmc2V0
KCkgLSBjb2RlT3JpZ2luLnN0YWNrT2Zmc2V0KCkpOwotICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpZiAocmVnLmlzQXJndW1lbnQoKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHJlZy5vZmZzZXQoKSA8IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpOwogICAgICAgICAg
ICAgICAgIApAQCAtNzAwLDEwICs3MDIsMTggQEAgYm9vbCBHcmFwaDo6aXNMaXZlSW5CeXRlY29k
ZShWaXJ0dWFsUmVnaQogICAgICAgICAgICAgICAgIHJlZy5vZmZzZXQoKSwgY29kZU9yaWdpbi5i
eXRlY29kZUluZGV4KTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKCFjb2RlT3Jp
Z2luLmlubGluZUNhbGxGcmFtZSkKKyAgICAgICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxs
RnJhbWUgPSBjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZTsKKyAgICAgICAgaWYgKCFpbmxpbmVD
YWxsRnJhbWUpCiAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBBcmd1bWVudHMgYXJl
IGFsd2F5cyBsaXZlLiBUaGlzIHdvdWxkIGJlIHJlZHVuZGFudCBpZiBpdCB3YXNuJ3QgZm9yIG91
cgorICAgICAgICAvLyBvcF9jYWxsX3ZhcmFyZ3MgaW5saW5pbmcuCisgICAgICAgIGlmIChyZWcu
aXNBcmd1bWVudCgpCisgICAgICAgICAgICAmJiByZWcudG9Bcmd1bWVudCgpCisgICAgICAgICAg
ICAmJiBzdGF0aWNfY2FzdDxzaXplX3Q+KHJlZy50b0FyZ3VtZW50KCkpIDwgaW5saW5lQ2FsbEZy
YW1lLT5hcmd1bWVudHMuc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IAotICAgICAgICBjb2RlT3JpZ2luID0gY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUtPmNhbGxl
cjsKKyAgICAgICAgY29kZU9yaWdpbiA9IGlubGluZUNhbGxGcmFtZS0+Y2FsbGVyOwogICAgIH0K
ICAgICAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTcxMSw3ICs3MjEsMTMgQEAgYm9vbCBHcmFwaDo6
aXNMaXZlSW5CeXRlY29kZShWaXJ0dWFsUmVnaQogCiB1bnNpZ25lZCBHcmFwaDo6ZnJhbWVSZWdp
c3RlckNvdW50KCkKIHsKLSAgICByZXR1cm4gbV9uZXh0TWFjaGluZUxvY2FsICsgbV9wYXJhbWV0
ZXJTbG90czsKKyAgICB1bnNpZ25lZCByZXN1bHQgPSBtX25leHRNYWNoaW5lTG9jYWwgKyBzdGQ6
Om1heChtX3BhcmFtZXRlclNsb3RzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGxJblJlZ2lzdGVycykpOworICAgIHJldHVybiByb3VuZExvY2FsUmVn
aXN0ZXJDb3VudEZvckZyYW1lUG9pbnRlck9mZnNldChyZXN1bHQpOworfQorCit1bnNpZ25lZCBH
cmFwaDo6c3RhY2tQb2ludGVyT2Zmc2V0KCkKK3sKKyAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVy
Rm9yTG9jYWwoZnJhbWVSZWdpc3RlckNvdW50KCkgLSAxKS5vZmZzZXQoKTsKIH0KIAogdW5zaWdu
ZWQgR3JhcGg6OnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQoKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OTMsNiArNzkzLDcg
QEAgcHVibGljOgogICAgIGJvb2wgaXNMaXZlSW5CeXRlY29kZShWaXJ0dWFsUmVnaXN0ZXIsIENv
ZGVPcmlnaW4pOwogICAgIAogICAgIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudCgpOworICAg
IHVuc2lnbmVkIHN0YWNrUG9pbnRlck9mZnNldCgpOwogICAgIHVuc2lnbmVkIHJlcXVpcmVkUmVn
aXN0ZXJDb3VudEZvckV4aXQoKTsKICAgICB1bnNpZ25lZCByZXF1aXJlZFJlZ2lzdGVyQ291bnRG
b3JFeGVjdXRpb25BbmRFeGl0KCk7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0pJVENvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29kZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw2ICsxNTYsNyBA
QCB2b2lkIEpJVENvZGU6OnNldE9wdGltaXphdGlvblRocmVzaG9sZEJhCiAgICAgc3dpdGNoIChy
ZXN1bHQpIHsKICAgICBjYXNlIENvbXBpbGF0aW9uU3VjY2Vzc2Z1bDoKICAgICAgICAgb3B0aW1p
emVOZXh0SW52b2NhdGlvbihjb2RlQmxvY2spOworICAgICAgICBjb2RlQmxvY2stPmJhc2VsaW5l
VmVyc2lvbigpLT5tX2hhc0JlZW5Db21waWxlZFdpdGhGVEwgPSB0cnVlOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBDb21waWxhdGlvbkZhaWxlZDoKICAgICAgICAgZG9udE9wdGltaXplQW55
dGltZVNvb24oY29kZUJsb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29kZS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVENvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTE5LDYgKzExOSw3IEBAIHB1YmxpYzoKICAgICBW
ZWN0b3I8REZHOjpPU1JFbnRyeURhdGE+IG9zckVudHJ5OwogICAgIFNlZ21lbnRlZFZlY3RvcjxE
Rkc6Ok9TUkV4aXQsIDg+IG9zckV4aXQ7CiAgICAgVmVjdG9yPERGRzo6U3BlY3VsYXRpb25SZWNv
dmVyeT4gc3BlY3VsYXRpb25SZWNvdmVyeTsKKyAgICBWZWN0b3I8dW5zaWduZWQ+IHNsb3dQYXRo
Q2FsbHM7CiAgICAgREZHOjpWYXJpYWJsZUV2ZW50U3RyZWFtIHZhcmlhYmxlRXZlbnRTdHJlYW07
CiAgICAgREZHOjpNaW5pZmllZEdyYXBoIG1pbmlmaWVkREZHOwogI2lmIEVOQUJMRShGVExfSklU
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJ
KHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29t
cGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUo
REZHX0pJVCkKIAorI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5j
bHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHRmFpbGVkRmluYWxpemVyLmgiCiAjaW5j
bHVkZSAiREZHSW5saW5lQ2FjaGVXcmFwcGVySW5saW5lcy5oIgpAQCAtNDAsNiArNDEsNyBAQAog
I2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCiAjaW5jbHVkZSAiREZHVGh1bmtzLmgiCiAj
aW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgogCkBAIC05MiwxNSArOTQsMTQgQEAgdm9pZCBKSVRDb21waWxlcjo6bGlua09TUkV4aXRzKCkK
IHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVFbnRyeSgpCiB7CiAgICAgLy8gVGhpcyBjb2RlIGN1
cnJlbnRseSBtYXRjaGVzIHRoZSBvbGQgSklULiBJbiB0aGUgZnVuY3Rpb24gaGVhZGVyIHdlIG5l
ZWQgdG8KLSAgICAvLyBwb3AgdGhlIHJldHVybiBhZGRyZXNzIChzaW5jZSB3ZSBkbyBub3QgYWxs
b3cgYW55IHJlY3Vyc2lvbiBvbiB0aGUgbWFjaGluZQotICAgIC8vIHN0YWNrKSwgYW5kIHBlcmZv
cm0gYSBmYXN0IHN0YWNrIGNoZWNrLgorICAgIC8vIHNhdmUgcmV0dXJuIGFkZHJlc3MgYW5kIGNh
bGwgZnJhbWUgdmlhIHRoZSBwcm9sb2d1ZSBhbmQgcGVyZm9ybSBhIGZhc3Qgc3RhY2sgY2hlY2su
CiAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NjI5MgogICAgIC8vIFdlJ2xsIG5lZWQgdG8gY29udmVydCB0aGUgcmVtYWluaW5nIGN0aV8gc3R5
bGUgY2FsbHMgKHNwZWNpZmljYWxseSB0aGUgc3RhY2sKICAgICAvLyBjaGVjaykgd2hpY2ggd2ls
bCBiZSBkZXBlbmRlbnQgb24gc3RhY2sgbGF5b3V0LiAoV2UnZCBuZWVkIHRvIGFjY291bnQgZm9y
IHRoaXMgaW4KICAgICAvLyBib3RoIG5vcm1hbCByZXR1cm4gY29kZSBhbmQgd2hlbiBqdW1waW5n
IHRvIGFuIGV4Y2VwdGlvbiBoYW5kbGVyKS4KLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRl
ckNhbGwoR1BSSW5mbzo6cmVnVDIpOwotICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVh
ZGVyKEdQUkluZm86OnJlZ1QyKTsKKyAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgIGVt
aXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcihtX2NvZGVCbG9jaywgSlNTdGFjazo6Q29k
ZUJsb2NrKTsKKyAgICBqaXRBc3NlcnRUYWdzSW5QbGFjZSgpOwogfQogCiB2b2lkIEpJVENvbXBp
bGVyOjpjb21waWxlQm9keSgpCkBAIC0xMjEsMjIgKzEyMiwyNSBAQCB2b2lkIEpJVENvbXBpbGVy
Ojpjb21waWxlRXhjZXB0aW9uSGFuZGxlCiAKICAgICBpZiAoIW1fZXhjZXB0aW9uQ2hlY2tzV2l0
aENhbGxGcmFtZVJvbGxiYWNrLmVtcHR5KCkpIHsKICAgICAgICAgbV9leGNlcHRpb25DaGVja3NX
aXRoQ2FsbEZyYW1lUm9sbGJhY2subGluayh0aGlzKTsKLSAgICAgICAgZW1pdEdldENhbGxlckZy
YW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAg
ICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSk7CiAgICAgICAgIGRvTG9va3VwID0ganVtcCgpOwogICAgIH0KIAogICAgIGlmICgh
bV9leGNlcHRpb25DaGVja3MuZW1wdHkoKSkKICAgICAgICAgbV9leGNlcHRpb25DaGVja3MubGlu
ayh0aGlzKTsKIAotICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIgaXMgcGFzc2VkIG9uZSBh
cmd1bWVudCwgdGhlIGV4ZWMgKHRoZSBDYWxsRnJhbWUqKS4KLSAgICBtb3ZlKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIC8vIGxvb2t1cEV4
Y2VwdGlvbkhhbmRsZXIgaXMgcGFzc2VkIHR3byBhcmd1bWVudHMsIHRoZSBWTSBhbmQgdGhlIGV4
ZWMgKHRoZSBDYWxsRnJhbWUqKS4KKyAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogCiAgICAgaWYgKGRvTG9va3VwLmlzU2V0KCkpCiAg
ICAgICAgIGRvTG9va3VwLmxpbmsodGhpcyk7CiAKKyAgICBtb3ZlKFRydXN0ZWRJbW1QdHIodm0o
KSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisKICNpZiBDUFUoWDg2KQogICAgIC8vIEZJWE1F
OiBzaG91bGQgdXNlIHRoZSBjYWxsIGFic3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkg
aW4gdGhlIFNwZWN1bGF0aXZlSklUIGxheWVyIQogICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKKyAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BSMSwgMSk7CiAjZW5kaWYKICAgICBt
X2NhbGxzLmFwcGVuZChDYWxsTGlua1JlY29yZChjYWxsKCksIGxvb2t1cEV4Y2VwdGlvbkhhbmRs
ZXIpKTsKICAgICBqdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CkBAIC0yMjgsMTMgKzIzMiwxNiBA
QCB2b2lkIEpJVENvbXBpbGVyOjpsaW5rKExpbmtCdWZmZXImIGxpbmtCCiAgICAgICAgIGluZm8u
cGF0Y2guZGVsdGFDYWxsVG9TbG93Q2FzZSA9IGRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihjYWxs
UmV0dXJuTG9jYXRpb24sIGxpbmtCdWZmZXIubG9jYXRpb25PZihtX2luc1tpXS5tX3Nsb3dQYXRo
R2VuZXJhdG9yLT5sYWJlbCgpKSk7CiAgICAgfQogICAgIAorICAgIFJFTEVBU0VfQVNTRVJUKCFt
X2dyYXBoLm1fcGxhbi53aWxsVHJ5VG9UaWVyVXAgfHwgbV9qaXRDb2RlLT5zbG93UGF0aENhbGxz
LnNpemUoKSA+PSBtX2pzQ2FsbHMuc2l6ZSgpKTsKICAgICBtX2NvZGVCbG9jay0+c2V0TnVtYmVy
T2ZDYWxsTGlua0luZm9zKG1fanNDYWxscy5zaXplKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX2pzQ2FsbHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgQ2FsbExpbmtJbmZvJiBp
bmZvID0gbV9jb2RlQmxvY2stPmNhbGxMaW5rSW5mbyhpKTsKICAgICAgICAgaW5mby5jYWxsVHlw
ZSA9IG1fanNDYWxsc1tpXS5tX2NhbGxUeXBlOwotICAgICAgICBpbmZvLmlzREZHID0gdHJ1ZTsK
ICAgICAgICAgaW5mby5jb2RlT3JpZ2luID0gbV9qc0NhbGxzW2ldLm1fY29kZU9yaWdpbjsKLSAg
ICAgICAgbGlua0J1ZmZlci5saW5rKG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxsLCBGdW5jdGlvblB0
cigobV92bS0+Z2V0Q1RJU3R1YihpbmZvLmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q29uc3Ry
dWN0ID8gbGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yIDogbGlua0NhbGxUaHVua0dlbmVyYXRv
cikpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7CisgICAgICAgIFRodW5rR2VuZXJhdG9y
IGdlbmVyYXRvciA9IGxpbmtUaHVua0dlbmVyYXRvckZvcigKKyAgICAgICAgICAgIGluZm8uY2Fs
bFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpDb25zdHJ1Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29k
ZUZvckNhbGwsCisgICAgICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsK
KyAgICAgICAgbGlua0J1ZmZlci5saW5rKG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxsLCBGdW5jdGlv
blB0cihtX3ZtLT5nZXRDVElTdHViKGdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNz
KCkpKTsKICAgICAgICAgaW5mby5jYWxsUmV0dXJuTG9jYXRpb24gPSBsaW5rQnVmZmVyLmxvY2F0
aW9uT2ZOZWFyQ2FsbChtX2pzQ2FsbHNbaV0ubV9zbG93Q2FsbCk7CiAgICAgICAgIGluZm8uaG90
UGF0aEJlZ2luID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mKG1fanNDYWxsc1tpXS5tX3RhcmdldFRv
Q2hlY2spOwogICAgICAgICBpbmZvLmhvdFBhdGhPdGhlciA9IGxpbmtCdWZmZXIubG9jYXRpb25P
Zk5lYXJDYWxsKG1fanNDYWxsc1tpXS5tX2Zhc3RDYWxsKTsKQEAgLTI3OCw2ICsyODUsOCBAQCB2
b2lkIEpJVENvbXBpbGVyOjpjb21waWxlKCkKICAgICBzZXRTdGFydE9mQ29kZSgpOwogICAgIGNv
bXBpbGVFbnRyeSgpOwogICAgIG1fc3BlY3VsYXRpdmUgPSBhZG9wdFB0cihuZXcgU3BlY3VsYXRp
dmVKSVQoKnRoaXMpKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1fZ3JhcGguc3RhY2tQb2lu
dGVyT2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVu
dCgpOwogICAgIGNvbXBpbGVCb2R5KCk7CiAgICAgc2V0RW5kT2ZNYWluUGF0aCgpOwogCkBAIC0z
MjUsMTEgKzMzNCwxMiBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogICAg
IC8vIHNvIGVudGVyIGFmdGVyIHRoaXMuCiAgICAgTGFiZWwgZnJvbUFyaXR5Q2hlY2sodGhpcyk7
CiAgICAgLy8gUGxhbnQgYSBjaGVjayB0aGF0IHN1ZmZpY2llbnQgc3BhY2UgaXMgYXZhaWxhYmxl
IGluIHRoZSBKU1N0YWNrLgotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVy
Rm9yTG9jYWwobV9ncmFwaC5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0
KCkpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCBHUFJJbmZvOjpyZWdUMSk7Ci0gICAgSnVtcCBzdGFja0NoZWNrID0gYnJhbmNoUHRyKEFi
b3ZlLCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCBHUFJJ
bmZvOjpyZWdUMSk7Ci0gICAgLy8gUmV0dXJuIGhlcmUgYWZ0ZXIgc3RhY2sgY2hlY2suCi0gICAg
TGFiZWwgZnJvbVN0YWNrQ2hlY2sgPSBsYWJlbCgpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIo
dmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9ncmFwaC5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JF
eGVjdXRpb25BbmRFeGl0KCkgLSAxKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOworICAgIEp1bXAgc3RhY2tP
dmVyZmxvdyA9IGJyYW5jaFB0cihBYm92ZSwgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmFkZHJlc3NP
ZkpTU3RhY2tMaW1pdCgpKSwgR1BSSW5mbzo6cmVnVDEpOwogCisgICAgLy8gTW92ZSB0aGUgc3Rh
Y2sgcG9pbnRlciBkb3duIHRvIGFjY29tbW9kYXRlIGxvY2FscworICAgIGFkZFB0cihUcnVzdGVk
SW1tMzIobV9ncmFwaC5zdGFja1BvaW50ZXJPZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNo
ZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKICAgICAvLyA9PT0gRnVuY3Rpb24gYm9keSBj
b2RlIGdlbmVyYXRpb24gPT09CiAgICAgbV9zcGVjdWxhdGl2ZSA9IGFkb3B0UHRyKG5ldyBTcGVj
dWxhdGl2ZUpJVCgqdGhpcykpOwpAQCAtMzM4LDE3ICszNDgsMTkgQEAgdm9pZCBKSVRDb21waWxl
cjo6Y29tcGlsZUZ1bmN0aW9uKCkKIAogICAgIC8vID09PSBGdW5jdGlvbiBmb290ZXIgY29kZSBn
ZW5lcmF0aW9uID09PQogICAgIC8vCi0gICAgLy8gR2VuZXJhdGUgY29kZSB0byBwZXJmb3JtIHRo
ZSBzbG93IHN0YWNrIGNoZWNrIChpZiB0aGUgZmFzdCBvbmUgaW4KKyAgICAvLyBHZW5lcmF0ZSBj
b2RlIHRvIHBlcmZvcm0gdGhlIHN0YWNrIG92ZXJmbG93IGhhbmRsaW5nIChpZiB0aGUgc3RhY2sg
Y2hlY2sgaW4KICAgICAvLyB0aGUgZnVuY3Rpb24gaGVhZGVyIGZhaWxzKSwgYW5kIGdlbmVyYXRl
IHRoZSBlbnRyeSBwb2ludCB3aXRoIGFyaXR5IGNoZWNrLgogICAgIC8vCi0gICAgLy8gR2VuZXJh
dGUgdGhlIHN0YWNrIGNoZWNrOyBpZiB0aGUgZmFzdCBjaGVjayBpbiB0aGUgZnVuY3Rpb24gaGVh
ZCBmYWlscywKLSAgICAvLyB3ZSBuZWVkIHRvIGNhbGwgb3V0IHRvIGEgaGVscGVyIGZ1bmN0aW9u
IHRvIGNoZWNrIHdoZXRoZXIgbW9yZSBzcGFjZSBpcyBhdmFpbGFibGUuCi0gICAgLy8gRklYTUU6
IGNoYW5nZSB0aGlzIGZyb20gYSBjdGkgY2FsbCB0byBhIERGRyBzdHlsZSBvcGVyYXRpb24gKG5v
cm1hbCBDIGNhbGxpbmcgY29udmVudGlvbnMpLgotICAgIHN0YWNrQ2hlY2subGluayh0aGlzKTsK
KyAgICAvLyBHZW5lcmF0ZSB0aGUgc3RhY2sgb3ZlcmZsb3cgaGFuZGxpbmc7IGlmIHRoZSBzdGFj
ayBjaGVjayBpbiB0aGUgZnVuY3Rpb24gaGVhZCBmYWlscywKKyAgICAvLyB3ZSBuZWVkIHRvIGNh
bGwgb3V0IHRvIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHRocm93IHRoZSBTdGFja092ZXJmbG93RXJy
b3IuCisgICAgc3RhY2tPdmVyZmxvdy5saW5rKHRoaXMpOwogCiAgICAgZW1pdFN0b3JlQ29kZU9y
aWdpbihDb2RlT3JpZ2luKDApKTsKLSAgICBtX3NwZWN1bGF0aXZlLT5jYWxsT3BlcmF0aW9uV2l0
aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uU3RhY2tDaGVjaywgbV9jb2Rl
QmxvY2spOwotICAgIGp1bXAoZnJvbVN0YWNrQ2hlY2spOworCisgICAgaWYgKG1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgIG1f
c3BlY3VsYXRpdmUtPmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlv
bihvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvciwgbV9jb2RlQmxvY2spOwogICAgIAog
ICAgIC8vIFRoZSBmYXN0IGVudHJ5IHBvaW50IGludG8gYSBmdW5jdGlvbiBkb2VzIG5vdCBjaGVj
ayB0aGUgY29ycmVjdCBudW1iZXIgb2YgYXJndW1lbnRzCiAgICAgLy8gaGF2ZSBiZWVuIHBhc3Nl
ZCB0byB0aGUgY2FsbCAod2Ugb25seSB1c2UgdGhlIGZhc3QgZW50cnkgcG9pbnQgd2hlcmUgd2Ug
Y2FuIHN0YXRpY2FsbHkKQEAgLTM2MSw5ICszNzMsMTUgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29t
cGlsZUZ1bmN0aW9uKCkKICAgICBsb2FkMzIoQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKChW
aXJ0dWFsUmVnaXN0ZXIpSlNTdGFjazo6QXJndW1lbnRDb3VudCksIEdQUkluZm86OnJlZ1QxKTsK
ICAgICBicmFuY2gzMihBYm92ZU9yRXF1YWwsIEdQUkluZm86OnJlZ1QxLCBUcnVzdGVkSW1tMzIo
bV9jb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkpLmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgdGhp
cyk7CiAgICAgZW1pdFN0b3JlQ29kZU9yaWdpbihDb2RlT3JpZ2luKDApKTsKKyAgICBpZiAobWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIo
LW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwog
ICAgIG1fc3BlY3VsYXRpdmUtPmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4
Y2VwdGlvbihtX2NvZGVCbG9jay0+bV9pc0NvbnN0cnVjdG9yID8gb3BlcmF0aW9uQ29uc3RydWN0
QXJpdHlDaGVjayA6IG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrLCBHUFJJbmZvOjpyZWdUMCk7Cisg
ICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICBhZGRQdHIoVHJ1
c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVn
aXN0ZXIpOwogICAgIGJyYW5jaFRlc3QzMihaZXJvLCBHUFJJbmZvOjpyZWdUMCkubGlua1RvKGZy
b21Bcml0eUNoZWNrLCB0aGlzKTsKICAgICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmlnaW4o
MCkpOworICAgIG1vdmUoVHJ1c3RlZEltbVB0cihtX3ZtLT5hcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcy0+cmV0dXJuUENzRm9yKCptX3ZtLCBtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSks
IEdQUkluZm86OnJlZ1Q1KTsKKyAgICBsb2FkUHRyKEJhc2VJbmRleChHUFJJbmZvOjpyZWdUNSwg
R1BSSW5mbzo6cmVnVDAsIHRpbWVzUHRyKCkpLCBHUFJJbmZvOjpyZWdUNSk7CiAgICAgbV9jYWxs
QXJpdHlGaXh1cCA9IGNhbGwoKTsKICAgICBqdW1wKGZyb21Bcml0eUNoZWNrKTsKICAgICAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9u
IDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMjIxLDYgKzIyMSwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICBtX2lucy5hcHBlbmQocmVjb3JkKTsKICAgICB9CisgICAgCisgICAgdW5zaWduZWQgY3VycmVu
dEpTQ2FsbEluZGV4KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2pzQ2FsbHMuc2l6
ZSgpOworICAgIH0KIAogICAgIHZvaWQgYWRkSlNDYWxsKENhbGwgZmFzdENhbGwsIENhbGwgc2xv
d0NhbGwsIERhdGFMYWJlbFB0ciB0YXJnZXRUb0NoZWNrLCBDYWxsTGlua0luZm86OkNhbGxUeXBl
IGNhbGxUeXBlLCBHUFJSZWcgY2FsbGVlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmNwcAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5h
bGl6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMCArNDYsMTYgQEAgSklURmluYWxpemVy
Ojp+SklURmluYWxpemVyKCkKIHsKIH0KIAorc2l6ZV90IEpJVEZpbmFsaXplcjo6Y29kZVNpemUo
KQoreworICAgIHJldHVybiBtX2xpbmtCdWZmZXItPnNpemUoKTsKK30KKwogYm9vbCBKSVRGaW5h
bGl6ZXI6OmZpbmFsaXplKCkKIHsKLSAgICBtX2ppdENvZGUtPmluaXRpYWxpemVDb2RlUmVmKG1f
bGlua0J1ZmZlci0+ZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2VtYmx5KCkpOwotICAgIG1fcGxh
bi5jb2RlQmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIo
KSk7CisgICAgbV9qaXRDb2RlLT5pbml0aWFsaXplQ29kZVJlZigKKyAgICAgICAgbV9saW5rQnVm
ZmVyLT5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKSwgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyKCkpOworICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlKTsKICAg
ICAKICAgICBmaW5hbGl6ZUNvbW1vbigpOwogICAgIApAQCAtNTksOCArNjUsOSBAQCBib29sIEpJ
VEZpbmFsaXplcjo6ZmluYWxpemUoKQogYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rp
b24oKQogewogICAgIFJFTEVBU0VfQVNTRVJUKCFtX3dpdGhBcml0eUNoZWNrLmlzRW1wdHlWYWx1
ZSgpKTsKLSAgICBtX2ppdENvZGUtPmluaXRpYWxpemVDb2RlUmVmKG1fbGlua0J1ZmZlci0+Zmlu
YWxpemVDb2RlV2l0aG91dERpc2Fzc2VtYmx5KCkpOwotICAgIG1fcGxhbi5jb2RlQmxvY2stPnNl
dEpJVENvZGUobV9qaXRDb2RlLCBtX3dpdGhBcml0eUNoZWNrKTsKKyAgICBtX2ppdENvZGUtPmlu
aXRpYWxpemVDb2RlUmVmKAorICAgICAgICBtX2xpbmtCdWZmZXItPmZpbmFsaXplQ29kZVdpdGhv
dXREaXNhc3NlbWJseSgpLCBtX3dpdGhBcml0eUNoZWNrKTsKKyAgICBtX3BsYW4uY29kZUJsb2Nr
LT5zZXRKSVRDb2RlKG1faml0Q29kZSk7CiAgICAgCiAgICAgZmluYWxpemVDb21tb24oKTsKICAg
ICAKQEAgLTc1LDYgKzgyLDkgQEAgdm9pZCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplQ29tbW9uKCkK
ICAgICAKICAgICBpZiAobV9wbGFuLmNvbXBpbGF0aW9uKQogICAgICAgICBtX3BsYW4udm0ubV9w
ZXJCeXRlY29kZVByb2ZpbGVyLT5hZGRDb21waWxhdGlvbihtX3BsYW4uY29tcGlsYXRpb24pOwor
ICAgIAorICAgIGlmICghbV9wbGFuLndpbGxUcnlUb1RpZXJVcCkKKyAgICAgICAgbV9wbGFuLmNv
ZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCktPm1fZGlkRmFpbEZUTENvbXBpbGF0aW9uID0gdHJ1
ZTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICBKSVRGaW5hbGl6ZXIoUGxhbiYsIFBhc3NSZWZQ
dHI8SklUQ29kZT4sIFBhc3NPd25QdHI8TGlua0J1ZmZlcj4sIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciB3aXRoQXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cihNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI6OkVtcHR5VmFsdWUpKTsKICAgICB2aXJ0dWFsIH5KSVRGaW5hbGl6ZXIoKTsKICAgICAK
KyAgICB2aXJ0dWFsIHNpemVfdCBjb2RlU2l6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZUZ1bmN0aW9u
KCkgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIw
MTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTE5OCw2ICsxMTk4LDExIEBAIHN0
cnVjdCBOb2RlIHsKICAgICAgICAgICAgIHJldHVybiBzaG91bGRHZW5lcmF0ZSgpOwogICAgICAg
ICB9CiAgICAgfQorICAgIAorICAgIGJvb2wgaXNTZW1hbnRpY2FsbHlTa2lwcGFibGUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ291bnRFeGVjdXRpb247CisgICAgfQogCiAgICAg
dW5zaWduZWQgcmVmQ291bnQoKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZUZsYWdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGVGbGFncy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDks
OSBAQCB2b2lkIGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJlYW0mIGFjdHVhbE91CiAgICAgICAgIGNh
c2UgTm9kZVJlc3VsdEludDMyOgogICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiSW50MzIi
KTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGVSZXN1bHRJbnQ1MjoKKyAg
ICAgICAgICAgIG91dC5wcmludChjb21tYSwgIkludDUyIik7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBOb2RlUmVzdWx0Qm9vbGVhbjoKICAgICAgICAgICAgIG91dC5wcmludChj
b21tYSwgIkJvb2xlYW4iKTsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5
c2lzUGhhc2UuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MSwxNSArNjEsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIEF2YWlsYWJpbGl0eTo6
dW5hdmFpbGFibGUoKS53aXRoRmx1c2goCiAgICAgICAgICAgICAgICAgICAgIEZsdXNoZWRBdChG
bHVzaGVkSlNWYWx1ZSwgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpKSk7CiAg
ICAgICAgIH0KLSAgICAgICAgZm9yICh1bnNpZ25lZCBsb2NhbCA9IHJvb3QtPnNzYS0+YXZhaWxh
YmlsaXR5QXRIZWFkLm51bWJlck9mTG9jYWxzKCk7IGxvY2FsLS07KQotICAgICAgICAgICAgcm9v
dC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubG9jYWwobG9jYWwpID0gQXZhaWxhYmlsaXR5Ojp1
bmF2YWlsYWJsZSgpOwotICAgICAgICAKKwogICAgICAgICBpZiAobV9ncmFwaC5tX3BsYW4ubW9k
ZSA9PSBGVExGb3JPU1JFbnRyeU1vZGUpIHsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgbG9j
YWwgPSBtX2dyYXBoLm1fcHJvZmlsZWRCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7IGxvY2Fs
LS07KSB7Ci0gICAgICAgICAgICAgICAgcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubG9j
YWwobG9jYWwpID0KLSAgICAgICAgICAgICAgICAgICAgQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJs
ZSgpLndpdGhGbHVzaCgKLSAgICAgICAgICAgICAgICAgICAgICAgIEZsdXNoZWRBdChGbHVzaGVk
SlNWYWx1ZSwgdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobG9jYWwpKSk7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGxvY2FsID0gbV9ncmFwaC5tX3Byb2ZpbGVkQmxv
Y2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOyBsb2NhbC0tOykKKyAgICAgICAgICAgICAgICByb290
LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxpdHk6OnVu
YXZhaWxhYmxlKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGxvY2FsID0gcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubnVtYmVyT2ZMb2NhbHMoKTsg
bG9jYWwtLTspCisgICAgICAgICAgICAgICAgcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQu
bG9jYWwobG9jYWwpID0gQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICAvLyBUaGlzIGNvdWxkIGJlIG1hZGUgbW9yZSBlZmZpY2llbnQgYnkg
cHJvY2Vzc2luZyBibG9ja3MgaW4gcmV2ZXJzZSBwb3N0b3JkZXIuCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDcgKzQ0LDEwIEBAIHZvaWQqIHByZXBhcmVPU1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIEMK
ICAgICBBU1NFUlQoY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpKTsKICAgICBBU1NFUlQoY29kZUJs
b2NrLT5hbHRlcm5hdGl2ZSgpLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6QmFzZWxpbmVKSVQpOwog
ICAgIEFTU0VSVCghY29kZUJsb2NrLT5qaXRDb2RlTWFwKCkpOwotICAgIAorCisgICAgaWYgKCFP
cHRpb25zOjplbmFibGVPU1JFbnRyeVRvREZHKCkpCisgICAgICAgIHJldHVybiAwOworCiAgICAg
aWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkgewogICAgICAgICBkYXRhTG9nKAogICAgICAgICAg
ICAgIkRGRyBPU1IgaW4gIiwgKmNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSwgIiAtPiAiLCAqY29k
ZUJsb2NrLApAQCAtNTIsOCArNTUsOCBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0YXRl
KiBleGVjLCBDCiAgICAgfQogICAgIAogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwotICAgIAot
ICAgIHZtLT5pbnRlcnByZXRlci0+c3RhY2soKS5zYW5pdGl6ZVN0YWNrKCk7CisKKyAgICBzYW5p
dGl6ZVN0YWNrRm9yVk0odm0pOwogICAgIAogICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSAh
PSBKSVRDb2RlOjpERkdKSVQpIHsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY29kZUJsb2NrLT5q
aXRUeXBlKCkgPT0gSklUQ29kZTo6RlRMSklUKTsKQEAgLTE4NSw3ICsxODgsNyBAQCB2b2lkKiBw
cmVwYXJlT1NSRW50cnkoRXhlY1N0YXRlKiBleGVjLCBDCiAgICAgLy8gICAgd291bGQgaGF2ZSBv
dGhlcndpc2UganVzdCBrZXB0IHJ1bm5pbmcgYWxiZWl0IGxlc3MgcXVpY2tseS4KICAgICAKICAg
ICB1bnNpZ25lZCBmcmFtZVNpemUgPSBqaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNv
dW50Rm9yRXhlY3V0aW9uQW5kRXhpdCgpOwotICAgIGlmICghdm0tPmludGVycHJldGVyLT5zdGFj
aygpLmdyb3coJmV4ZWMtPnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1l
U2l6ZSkub2Zmc2V0KCldKSkgeworICAgIGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVu
c3VyZUNhcGFjaXR5Rm9yKCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2Nh
bChmcmFtZVNpemUgLSAxKS5vZmZzZXQoKV0pKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJi
b3NlT1NSKCkpCiAgICAgICAgICAgICBkYXRhTG9nRigiICAgIE9TUiBmYWlsZWQgYmVjYXVzZSBz
dGFjayBncm93dGggZmFpbGVkLlxuIik7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMjEzLDEyICsy
MTYsMTQgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgQwogICAgIAog
ICAgIC8vIDUpIENsZWFyIHRob3NlIHBhcnRzIG9mIHRoZSBjYWxsIGZyYW1lIHRoYXQgdGhlIERG
RyBhaW4ndCB1c2luZy4gVGhpcyBoZWxwcyBHQyBvbiBzb21lCiAgICAgLy8gICAgcHJvZ3JhbXMg
YnkgZWxpbWluYXRpbmcgc29tZSBzdGFsZSBwb2ludGVyIHBhdGhvbG9naWVzLgotICAgIAorCisj
aWYgMCAvLyBGSVhNRTogQ1N0YWNrIC0gVGhpcyBuZWVkcyB0byBiZSB2ZXJpZmllZCBiZWZvcmUg
YmVpbmcgZW5hYmxlZAogICAgIGZvciAodW5zaWduZWQgaSA9IGZyYW1lU2l6ZTsgaS0tOykgewog
ICAgICAgICBpZiAoZW50cnktPm1fbWFjaGluZVN0YWNrVXNlZC5nZXQoaSkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgcmVnaXN0ZXJzW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGkp
Lm9mZnNldCgpXSA9IEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwogICAgIH0KKyNlbmRpZgog
ICAgIAogICAgIC8vIDYpIEZpeCB0aGUgY2FsbCBmcmFtZS4KICAgICAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlwb2ludENyZWF0
aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjMs
NyArNjMsMTAgQEAgcHVibGljOgogICAgICAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSBtX2dy
YXBoLmJsb2NrKGJsb2NrSW5kZXgpOwogICAgICAgICAgICAgaWYgKCFibG9jaykKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHVuc2lnbmVkIG5vZGVJbmRleCA9IDA7CiAg
ICAgICAgICAgICBOb2RlKiBmaXJzdE5vZGUgPSBibG9jay0+YXQoMCk7CisgICAgICAgICAgICB3
aGlsZSAoZmlyc3ROb2RlLT5pc1NlbWFudGljYWxseVNraXBwYWJsZSgpKQorICAgICAgICAgICAg
ICAgIGZpcnN0Tm9kZSA9IGJsb2NrLT5hdCgrK25vZGVJbmRleCk7CiAgICAgICAgICAgICBpZiAo
Zmlyc3ROb2RlLT5vcCgpID09IExvb3BIaW50CiAgICAgICAgICAgICAgICAgJiYgZmlyc3ROb2Rl
LT5jb2RlT3JpZ2luID09IENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkpIHsKICAgICAgICAgICAg
ICAgICB0YXJnZXQgPSBibG9jazsKQEAgLTgzLDE3ICs4Niw2IEBAIHB1YmxpYzoKICAgICAgICAg
QmFzaWNCbG9jayogbmV3Um9vdCA9IGluc2VydGlvblNldC5pbnNlcnQoMCk7CiAgICAgICAgIENv
ZGVPcmlnaW4gY29kZU9yaWdpbiA9IHRhcmdldC0+YXQoMCktPmNvZGVPcmlnaW47CiAgICAgICAg
IAotICAgICAgICBmb3IgKGludCBhcmd1bWVudCA9IDA7IGFyZ3VtZW50IDwgYmFzZWxpbmUtPm51
bVBhcmFtZXRlcnMoKTsgKythcmd1bWVudCkgewotICAgICAgICAgICAgTm9kZSogb2xkTm9kZSA9
IHRhcmdldC0+dmFyaWFibGVzQXRIZWFkLmFyZ3VtZW50KGFyZ3VtZW50KTsKLSAgICAgICAgICAg
IGlmICghb2xkTm9kZSkgewotICAgICAgICAgICAgICAgIC8vIEp1c3QgZm9yIHNhbml0eSwgYWx3
YXlzIGhhdmUgYSBTZXRBcmd1bWVudCBldmVuIGlmIGl0J3Mgbm90IG5lZWRlZC4KLSAgICAgICAg
ICAgICAgICBvbGROb2RlID0gbV9ncmFwaC5tX2FyZ3VtZW50c1thcmd1bWVudF07Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBOb2RlKiBub2RlID0gbmV3Um9vdC0+YXBwZW5kTm9kZSgKLSAg
ICAgICAgICAgICAgICBtX2dyYXBoLCBTcGVjTm9uZSwgU2V0QXJndW1lbnQsIGNvZGVPcmlnaW4s
Ci0gICAgICAgICAgICAgICAgT3BJbmZvKG9sZE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKSk7
Ci0gICAgICAgICAgICBtX2dyYXBoLm1fYXJndW1lbnRzW2FyZ3VtZW50XSA9IG5vZGU7Ci0gICAg
ICAgIH0KICAgICAgICAgVmVjdG9yPE5vZGUqPiBsb2NhbHMoYmFzZWxpbmUtPm1fbnVtQ2FsbGVl
UmVnaXN0ZXJzKTsKICAgICAgICAgZm9yIChpbnQgbG9jYWwgPSAwOyBsb2NhbCA8IGJhc2VsaW5l
LT5tX251bUNhbGxlZVJlZ2lzdGVyczsgKytsb2NhbCkgewogICAgICAgICAgICAgTm9kZSogcHJl
dmlvdXNIZWFkID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQubG9jYWwobG9jYWwpOwpAQCAtMTA4
LDYgKzEwMCwxOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgbV9ncmFwaCwgU3BlY05vbmUs
IE1vdkhpbnQsIGNvZGVPcmlnaW4sIE9wSW5mbyh2YXJpYWJsZS0+bG9jYWwoKS5vZmZzZXQoKSks
CiAgICAgICAgICAgICAgICAgRWRnZShsb2NhbHNbbG9jYWxdKSk7CiAgICAgICAgIH0KKworICAg
ICAgICBmb3IgKGludCBhcmd1bWVudCA9IDA7IGFyZ3VtZW50IDwgYmFzZWxpbmUtPm51bVBhcmFt
ZXRlcnMoKTsgKythcmd1bWVudCkgeworICAgICAgICAgICAgTm9kZSogb2xkTm9kZSA9IHRhcmdl
dC0+dmFyaWFibGVzQXRIZWFkLmFyZ3VtZW50KGFyZ3VtZW50KTsKKyAgICAgICAgICAgIGlmICgh
b2xkTm9kZSkgeworICAgICAgICAgICAgICAgIC8vIEp1c3QgZm9yIHNhbml0eSwgYWx3YXlzIGhh
dmUgYSBTZXRBcmd1bWVudCBldmVuIGlmIGl0J3Mgbm90IG5lZWRlZC4KKyAgICAgICAgICAgICAg
ICBvbGROb2RlID0gbV9ncmFwaC5tX2FyZ3VtZW50c1thcmd1bWVudF07CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBOb2RlKiBub2RlID0gbmV3Um9vdC0+YXBwZW5kTm9kZSgKKyAgICAgICAg
ICAgICAgICBtX2dyYXBoLCBTcGVjTm9uZSwgU2V0QXJndW1lbnQsIGNvZGVPcmlnaW4sCisgICAg
ICAgICAgICAgICAgT3BJbmZvKG9sZE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKSk7CisgICAg
ICAgICAgICBtX2dyYXBoLm1fYXJndW1lbnRzW2FyZ3VtZW50XSA9IG5vZGU7CisgICAgICAgIH0K
KyAgICAgICAgCiAgICAgICAgIGZvciAoaW50IGxvY2FsID0gMDsgbG9jYWwgPCBiYXNlbGluZS0+
bV9udW1DYWxsZWVSZWdpc3RlcnM7ICsrbG9jYWwpIHsKICAgICAgICAgICAgIE5vZGUqIHByZXZp
b3VzSGVhZCA9IHRhcmdldC0+dmFyaWFibGVzQXRIZWFkLmxvY2FsKGxvY2FsKTsKICAgICAgICAg
ICAgIGlmICghcHJldmlvdXNIZWFkKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFeGl0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0LmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDExIEBAIHN0cnVjdCBP
U1JFeGl0IDogcHVibGljIE9TUkV4aXRCYXNlIHsKICAgICB1bnNpZ25lZCBtX3N0cmVhbUluZGV4
OwogICAgIAogICAgIFJlZlB0cjxWYWx1ZVJlY292ZXJ5T3ZlcnJpZGU+IG1fdmFsdWVSZWNvdmVy
eU92ZXJyaWRlOworICAgIAorICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNp
dGUoQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBP
U1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUocHJvZmlsZWRDb2Rl
QmxvY2ssIEV4aXRGcm9tREZHKTsKKyAgICB9CiB9OwogCiBzdHJ1Y3QgU3BlY3VsYXRpb25GYWls
dXJlRGVidWdJbmZvIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dEJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdEJhc2UuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWJvb2wgT1NSRXhpdEJhc2U6OmNv
bnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhDb2RlQmxvY2sqIHByb2ZpbGVkQ29k
ZUJsb2NrKQorYm9vbCBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNp
dGVTbG93KENvZGVCbG9jayogcHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRpbmdKSVRUeXBlIGppdFR5
cGUpCiB7CiAgICAgQ29kZUJsb2NrKiBzb3VyY2VQcm9maWxlZENvZGVCbG9jayA9CiAgICAgICAg
IGJhc2VsaW5lQ29kZUJsb2NrRm9yT3JpZ2luQW5kQmFzZWxpbmVDb2RlQmxvY2soCkBAIC00Myw3
ICs0Myw3IEBAIGJvb2wgT1NSRXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWUKICAgICBp
ZiAoIXNvdXJjZVByb2ZpbGVkQ29kZUJsb2NrKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
cmV0dXJuIHNvdXJjZVByb2ZpbGVkQ29kZUJsb2NrLT5hZGRGcmVxdWVudEV4aXRTaXRlKAotICAg
ICAgICAgICAgRnJlcXVlbnRFeGl0U2l0ZShtX2NvZGVPcmlnaW5Gb3JFeGl0UHJvZmlsZS5ieXRl
Y29kZUluZGV4LCBtX2tpbmQpKTsKKyAgICAgICAgRnJlcXVlbnRFeGl0U2l0ZShtX2NvZGVPcmln
aW5Gb3JFeGl0UHJvZmlsZS5ieXRlY29kZUluZGV4LCBtX2tpbmQsIGppdFR5cGUpKTsKIH0KIAog
fSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdEJhc2UuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCwxNSArNTgs
MTYgQEAgc3RydWN0IE9TUkV4aXRCYXNlIHsKICAgICBDb2RlT3JpZ2luIG1fY29kZU9yaWdpbjsK
ICAgICBDb2RlT3JpZ2luIG1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxlOwogCi0gICAgYm9vbCBj
b25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJs
b2NrKQorcHJvdGVjdGVkOgorICAgIGJvb2wgY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNp
dGUoQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaywgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkK
ICAgICB7CiAgICAgICAgIGlmICghbV9jb3VudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgcmV0dXJuIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhwcm9m
aWxlZENvZGVCbG9jayk7CisgICAgICAgIHJldHVybiBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRF
eGl0U2l0ZVNsb3cocHJvZmlsZWRDb2RlQmxvY2ssIGppdFR5cGUpOwogICAgIH0KIAogcHJpdmF0
ZToKLSAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlU2xvdyhDb2RlQmxv
Y2sqIHByb2ZpbGVkQ29kZUJsb2NrKTsKKyAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVu
dEV4aXRTaXRlU2xvdyhDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrLCBFeGl0aW5nSklUVHlw
ZSk7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAkocmV2
aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29t
cGlsZXIzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDEyIEBAIHZvaWQgT1NS
RXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCAKICAgICAgICAgbV9qaXQuZGVidWdDYWxs
KGRlYnVnT3BlcmF0aW9uUHJpbnRTcGVjdWxhdGlvbkZhaWx1cmUsIGRlYnVnSW5mbyk7CiAgICAg
fQogICAgIAorICAgIC8vIE5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIHN0YWNrIHBvaW50ZXIgYWNj
b3VudHMgZm9yIHRoZSB3b3JzdC1jYXNlIHN0YWNrIHVzYWdlIGF0IGV4aXQuCisgICAgbV9qaXQu
YWRkUHRyKAorICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigKKyAgICAgICAgICAg
IC1tX2ppdC5jb2RlQmxvY2soKS0+aml0Q29kZSgpLT5kZmdDb21tb24oKS0+cmVxdWlyZWRSZWdp
c3RlckNvdW50Rm9yRXhpdCAqIHNpemVvZihSZWdpc3RlcikpLAorICAgICAgICBDQ2FsbEhlbHBl
cnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyKTsKKyAgICAKICAgICAvLyAyKSBQZXJmb3JtIHNwZWN1bGF0aW9uIHJlY292ZXJ5LiBUaGlz
IG9ubHkgY29tZXMgaW50byBwbGF5IHdoZW4gYW4gb3BlcmF0aW9uCiAgICAgLy8gICAgc3RhcnRz
IG11dGF0aW5nIHN0YXRlIGJlZm9yZSB2ZXJpZnlpbmcgdGhlIHNwZWN1bGF0aW9uIGl0IGhhcyBh
bHJlYWR5IG1hZGUuCiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkV4aXRDb21waWxlcjY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDYgKzQwLDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiB2
b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgT1NSRXhpdCYgZXhpdCwgY29u
c3QgT3BlcmFuZHM8VmFsdWVSZWNvdmVyeT4mIG9wZXJhbmRzLCBTcGVjdWxhdGlvblJlY292ZXJ5
KiByZWNvdmVyeSkKIHsKKyAgICBtX2ppdC5qaXRBc3NlcnRUYWdzSW5QbGFjZSgpOworCiAgICAg
Ly8gMSkgUHJvLWZvcm1hIHN0dWZmLgogICAgIGlmIChPcHRpb25zOjpwcmludEVhY2hPU1JFeGl0
KCkpIHsKICAgICAgICAgU3BlY3VsYXRpb25GYWlsdXJlRGVidWdJbmZvKiBkZWJ1Z0luZm8gPSBu
ZXcgU3BlY3VsYXRpb25GYWlsdXJlRGVidWdJbmZvOwpAQCAtNDgsNiArNTAsMTIgQEAgdm9pZCBP
U1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgICAgICBtX2ppdC5kZWJ1Z0Nh
bGwoZGVidWdPcGVyYXRpb25QcmludFNwZWN1bGF0aW9uRmFpbHVyZSwgZGVidWdJbmZvKTsKICAg
ICB9CiAgICAgCisgICAgLy8gTmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgc3RhY2sgcG9pbnRlciBh
Y2NvdW50cyBmb3IgdGhlIHdvcnN0LWNhc2Ugc3RhY2sgdXNhZ2UgYXQgZXhpdC4KKyAgICBtX2pp
dC5hZGRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKAorICAgICAgICAg
ICAgLW1faml0LmNvZGVCbG9jaygpLT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5yZXF1aXJlZFJl
Z2lzdGVyQ291bnRGb3JFeGl0ICogc2l6ZW9mKFJlZ2lzdGVyKSksCisgICAgICAgIENDYWxsSGVs
cGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIpOworICAgIAogICAgIC8vIDIpIFBlcmZvcm0gc3BlY3VsYXRpb24gcmVjb3ZlcnkuIFRo
aXMgb25seSBjb21lcyBpbnRvIHBsYXkgd2hlbiBhbiBvcGVyYXRpb24KICAgICAvLyAgICBzdGFy
dHMgbXV0YXRpbmcgc3RhdGUgYmVmb3JlIHZlcmlmeWluZyB0aGUgc3BlY3VsYXRpb24gaXQgaGFz
IGFscmVhZHkgbWFkZS4KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtOTYsNyArOTYsNyBAQCB2b2lkIGNvbXBpbGVPU1JFeGl0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgCiAgICAgICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBjb2RlQmxv
Y2spOwogICAgICAgICBleGl0Lm1fY29kZSA9IEZJTkFMSVpFX0NPREVfSUYoCi0gICAgICAgICAg
ICBzaG91bGRTaG93RGlzYXNzZW1ibHkoKSwKKyAgICAgICAgICAgIHNob3VsZFNob3dEaXNhc3Nl
bWJseSgpIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwKICAgICAgICAgICAgIHBhdGNoQnVmZmVy
LAogICAgICAgICAgICAgKCJERkcgT1NSIGV4aXQgIyV1ICglcywgJXMpIGZyb20gJXMsIHdpdGgg
b3BlcmFuZHMgPSAlcyIsCiAgICAgICAgICAgICAgICAgZXhpdEluZGV4LCB0b0NTdHJpbmcoZXhp
dC5tX2NvZGVPcmlnaW4pLmRhdGEoKSwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQXJndW1l
bnRzLmgiCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIkpJVC5oIgogI2lu
Y2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCkBA
IC0xNzMsNyArMTc0LDExIEBAIHZvaWQgYWRqdXN0QW5kSnVtcFRvVGFyZ2V0KENDYWxsSGVscGVy
cyYKICAgICBBU1NFUlQobWFwcGluZy0+bV9ieXRlY29kZUluZGV4ID09IGV4aXQubV9jb2RlT3Jp
Z2luLmJ5dGVjb2RlSW5kZXgpOwogICAgIAogICAgIHZvaWQqIGp1bXBUYXJnZXQgPSBiYXNlbGlu
ZUNvZGVCbG9jay0+aml0Q29kZSgpLT5leGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KG1hcHBpbmct
Pm1fbWFjaGluZUNvZGVPZmZzZXQpOworCisgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6
OlRydXN0ZWRJbW0zMihKSVQ6OnN0YWNrUG9pbnRlck9mZnNldEZvcihiYXNlbGluZUNvZGVCbG9j
aykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEFzc2Vt
Ymx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIAorICAgIGppdC5qaXRBc3Nl
cnRUYWdzSW5QbGFjZSgpOworCiAgICAgaml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKGp1bXBUYXJnZXQpLCBHUFJJbmZvOjpyZWdUMik7CiAgICAgaml0Lmp1bXAoR1BSSW5m
bzo6cmVnVDIpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQwLDcgKzExNDAsNyBAQCB2
b2lkIEpJVF9PUEVSQVRJT04gdHJpZ2dlclRpZXJVcE5vdyhFeGVjCiAgICAgfQogICAgIAogICAg
IFdvcmtsaXN0OjpTdGF0ZSB3b3JrbGlzdFN0YXRlOwotICAgIGlmIChXb3JrbGlzdCogd29ya2xp
c3QgPSB2bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAgICBpZiAoV29ya2xpc3QqIHdvcmtsaXN0ID0g
ZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVsbCgpKSB7CiAgICAgICAgIHdvcmtsaXN0U3Rh
dGUgPSB3b3JrbGlzdC0+Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oCiAgICAgICAgICAgICAq
dm0sIENvbXBpbGF0aW9uS2V5KGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCksIEZUTE1vZGUp
KTsKICAgICB9IGVsc2UKQEAgLTExNjksOCArMTE2OSw4IEBAIHZvaWQgSklUX09QRVJBVElPTiB0
cmlnZ2VyVGllclVwTm93KEV4ZWMKIAogICAgIC8vIFdlIG5lZWQgdG8gY29tcGlsZSB0aGUgY29k
ZS4KICAgICBjb21waWxlKAotICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQo
KS5nZXQoKSwgRlRMTW9kZSwgVUlOVF9NQVgsIE9wZXJhbmRzPEpTVmFsdWU+KCksCi0gICAgICAg
IFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoY29kZUJsb2NrKSwgdm0t
PmVuc3VyZVdvcmtsaXN0KCkpOworICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1l
bnQoKS5nZXQoKSwgY29kZUJsb2NrLCBGVExNb2RlLCBVSU5UX01BWCwKKyAgICAgICAgT3BlcmFu
ZHM8SlNWYWx1ZT4oKSwgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShj
b2RlQmxvY2spKTsKIH0KIAogY2hhciogSklUX09QRVJBVElPTiB0cmlnZ2VyT1NSRW50cnlOb3co
CkBAIC0xMjAyLDggKzEyMDIsMTAgQEAgY2hhciogSklUX09QRVJBVElPTiB0cmlnZ2VyT1NSRW50
cnlOb3coCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICAKKyAgICBXb3JrbGlzdCogd29y
a2xpc3QgPSBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCk7CisKICAgICBXb3JrbGlz
dDo6U3RhdGUgd29ya2xpc3RTdGF0ZTsKLSAgICBpZiAoV29ya2xpc3QqIHdvcmtsaXN0ID0gdm0t
PndvcmtsaXN0LmdldCgpKSB7CisgICAgaWYgKHdvcmtsaXN0KSB7CiAgICAgICAgIHdvcmtsaXN0
U3RhdGUgPSB3b3JrbGlzdC0+Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oCiAgICAgICAgICAg
ICAqdm0sIENvbXBpbGF0aW9uS2V5KGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCksIEZUTEZv
ck9TUkVudHJ5TW9kZSkpOwogICAgIH0gZWxzZQpAQCAtMTI1MiwxMCArMTI1NCw5IEBAIGNoYXIq
IEpJVF9PUEVSQVRJT04gdHJpZ2dlck9TUkVudHJ5Tm93KAogICAgIE9wZXJhbmRzPEpTVmFsdWU+
IG11c3RIYW5kbGVWYWx1ZXM7CiAgICAgaml0Q29kZS0+cmVjb25zdHJ1Y3QoCiAgICAgICAgIGV4
ZWMsIGNvZGVCbG9jaywgQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSwgc3RyZWFtSW5kZXgsIG11
c3RIYW5kbGVWYWx1ZXMpOwotICAgIENvbXBpbGF0aW9uUmVzdWx0IGZvckVudHJ5UmVzdWx0ID0g
REZHOjpjb21waWxlKAotICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5n
ZXQoKSwgRlRMRm9yT1NSRW50cnlNb2RlLCBieXRlY29kZUluZGV4LAotICAgICAgICBtdXN0SGFu
ZGxlVmFsdWVzLCBUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpj
cmVhdGUoY29kZUJsb2NrKSwKLSAgICAgICAgdm0tPmVuc3VyZVdvcmtsaXN0KCkpOworICAgIENv
bXBpbGF0aW9uUmVzdWx0IGZvckVudHJ5UmVzdWx0ID0gY29tcGlsZSgKKyAgICAgICAgKnZtLCBj
b2RlQmxvY2stPm5ld1JlcGxhY2VtZW50KCkuZ2V0KCksIGNvZGVCbG9jaywgRlRMRm9yT1NSRW50
cnlNb2RlLCBieXRlY29kZUluZGV4LAorICAgICAgICBtdXN0SGFuZGxlVmFsdWVzLCBUb0ZUTEZv
ck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoY29kZUJsb2NrKSk7
CiAgICAgCiAgICAgLy8gQnV0IHdlIGFsc28gd2FudCB0byB0cmlnZ2VyIGEgcmVwbGFjZW1lbnQg
Y29tcGlsZS4gT2YgY291cnNlLCB3ZSBkb24ndCB3YW50IHRvCiAgICAgLy8gdHJpZ2dlciBpdCBp
ZiB3ZSBkb24ndCBuZWVkIHRvLiBOb3RlIHRoYXQgdGhpcyBpcyBraW5kIG9mIHdlaXJkIGJlY2F1
c2Ugd2UgbWlnaHQKQEAgLTEyNjgsMTEgKzEyNjksMTEgQEAgY2hhciogSklUX09QRVJBVElPTiB0
cmlnZ2VyT1NSRW50cnlOb3coCiAgICAgQ29tcGlsYXRpb25LZXkga2V5Rm9yUmVwbGFjZW1lbnQo
Y29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKSwgRlRMTW9kZSk7CiAgICAgaWYgKGNvZGVCbG9j
ay0+Y29kZVR5cGUoKSAhPSBHbG9iYWxDb2RlCiAgICAgICAgICYmICFjb2RlQmxvY2stPmhhc09w
dGltaXplZFJlcGxhY2VtZW50KCkKLSAgICAgICAgJiYgKCF2bS0+d29ya2xpc3QuZ2V0KCkKLSAg
ICAgICAgICAgIHx8IHZtLT53b3JrbGlzdC0+Y29tcGlsYXRpb25TdGF0ZShrZXlGb3JSZXBsYWNl
bWVudCkgPT0gV29ya2xpc3Q6Ok5vdEtub3duKSkgeworICAgICAgICAmJiAoIXdvcmtsaXN0Cisg
ICAgICAgICAgICB8fCB3b3JrbGlzdC0+Y29tcGlsYXRpb25TdGF0ZShrZXlGb3JSZXBsYWNlbWVu
dCkgPT0gV29ya2xpc3Q6Ok5vdEtub3duKSkgewogICAgICAgICBjb21waWxlKAotICAgICAgICAg
ICAgKnZtLCBjb2RlQmxvY2stPm5ld1JlcGxhY2VtZW50KCkuZ2V0KCksIEZUTE1vZGUsIFVJTlRf
TUFYLCBPcGVyYW5kczxKU1ZhbHVlPigpLAotICAgICAgICAgICAgVG9GVExEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spLCB2bS0+ZW5zdXJlV29ya2xpc3QoKSk7
CisgICAgICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgY29k
ZUJsb2NrLCBGVExNb2RlLCBVSU5UX01BWCwKKyAgICAgICAgICAgIE9wZXJhbmRzPEpTVmFsdWU+
KCksIFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoY29kZUJsb2NrKSk7
CiAgICAgfQogICAgIAogICAgIGlmIChmb3JFbnRyeVJlc3VsdCAhPSBDb21waWxhdGlvblN1Y2Nl
c3NmdWwpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9u
IDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTkxLDE3ICs5MSwzNiBAQCBzdGF0aWMgdm9pZCBkdW1wQW5kVmVyaWZ5R3JhcGgo
R3JhcGgmIGdyCiAgICAgICAgIHZhbGlkYXRlKGdyYXBoLCBtb2RlRm9yRmluYWxWYWxpZGF0ZSk7
CiB9CiAKLVBsYW46OlBsYW4oCi0gICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IHBhc3NlZENvZGVC
bG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUsCi0gICAgdW5zaWduZWQgb3NyRW50cnlCeXRlY29k
ZUluZGV4LCBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcykKK3N0YXRp
YyBQcm9maWxlcjo6Q29tcGlsYXRpb25LaW5kIHByb2ZpbGVyQ29tcGlsYXRpb25LaW5kRm9yTW9k
ZShDb21waWxhdGlvbk1vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNl
IEludmFsaWRDb21waWxhdGlvbk1vZGU6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiBQcm9maWxlcjo6REZHOworICAgIGNhc2UgREZHTW9kZToK
KyAgICAgICAgcmV0dXJuIFByb2ZpbGVyOjpERkc7CisgICAgY2FzZSBGVExNb2RlOgorICAgICAg
ICByZXR1cm4gUHJvZmlsZXI6OkZUTDsKKyAgICBjYXNlIEZUTEZvck9TUkVudHJ5TW9kZToKKyAg
ICAgICAgcmV0dXJuIFByb2ZpbGVyOjpGVExGb3JPU1JFbnRyeTsKKyAgICB9CisgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gUHJvZmlsZXI6OkRGRzsKK30KKwor
UGxhbjo6UGxhbihQYXNzUmVmUHRyPENvZGVCbG9jaz4gcGFzc2VkQ29kZUJsb2NrLCBDb2RlQmxv
Y2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLAorICAgIENvbXBpbGF0aW9uTW9kZSBtb2RlLCB1bnNp
Z25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCisgICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4m
IG11c3RIYW5kbGVWYWx1ZXMpCiAgICAgOiB2bSgqcGFzc2VkQ29kZUJsb2NrLT52bSgpKQogICAg
ICwgY29kZUJsb2NrKHBhc3NlZENvZGVCbG9jaykKKyAgICAsIHByb2ZpbGVkREZHQ29kZUJsb2Nr
KHByb2ZpbGVkREZHQ29kZUJsb2NrKQogICAgICwgbW9kZShtb2RlKQogICAgICwgb3NyRW50cnlC
eXRlY29kZUluZGV4KG9zckVudHJ5Qnl0ZWNvZGVJbmRleCkKICAgICAsIG11c3RIYW5kbGVWYWx1
ZXMobXVzdEhhbmRsZVZhbHVlcykKLSAgICAsIGNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+
bV9wZXJCeXRlY29kZVByb2ZpbGVyID8gYWRvcHRSZWYobmV3IFByb2ZpbGVyOjpDb21waWxhdGlv
bihjb2RlQmxvY2stPnZtKCktPm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+ZW5zdXJlQnl0ZWNvZGVz
Rm9yKGNvZGVCbG9jay5nZXQoKSksIFByb2ZpbGVyOjpERkcpKSA6IDApCisgICAgLCBjb21waWxh
dGlvbihjb2RlQmxvY2stPnZtKCktPm1fcGVyQnl0ZWNvZGVQcm9maWxlciA/IGFkb3B0UmVmKG5l
dyBQcm9maWxlcjo6Q29tcGlsYXRpb24oY29kZUJsb2NrLT52bSgpLT5tX3BlckJ5dGVjb2RlUHJv
ZmlsZXItPmVuc3VyZUJ5dGVjb2Rlc0Zvcihjb2RlQmxvY2suZ2V0KCkpLCBwcm9maWxlckNvbXBp
bGF0aW9uS2luZEZvck1vZGUobW9kZSkpKSA6IDApCiAgICAgLCBpZGVudGlmaWVycyhjb2RlQmxv
Y2suZ2V0KCkpCiAgICAgLCB3ZWFrUmVmZXJlbmNlcyhjb2RlQmxvY2suZ2V0KCkpCisgICAgLCB3
aWxsVHJ5VG9UaWVyVXAoZmFsc2UpCiAgICAgLCBpc0NvbXBpbGVkKGZhbHNlKQogewogfQpAQCAt
MTEwLDEwICsxMjksMTYgQEAgUGxhbjo6flBsYW4oKQogewogfQogCitib29sIFBsYW46OnJlcG9y
dENvbXBpbGVUaW1lcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIE9wdGlvbnM6OnJlcG9ydENvbXBp
bGVUaW1lcygpCisgICAgICAgIHx8IChPcHRpb25zOjpyZXBvcnRGVExDb21waWxlVGltZXMoKSAm
JiBpc0ZUTChtb2RlKSk7Cit9CisKIHZvaWQgUGxhbjo6Y29tcGlsZUluVGhyZWFkKExvbmdMaXZl
ZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSkKIHsKICAgICBkb3VibGUgYmVmb3JlID0gMDsKLSAgICBp
ZiAoT3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkpCisgICAgaWYgKHJlcG9ydENvbXBpbGVU
aW1lcygpKQogICAgICAgICBiZWZvcmUgPSBjdXJyZW50VGltZU1TKCk7CiAgICAgCiAgICAgU2Ft
cGxpbmdSZWdpb24gc2FtcGxpbmdSZWdpb24oIkRGRyBDb21waWxhdGlvbiAoUGxhbikiKTsKQEAg
LTEyNiw3ICsxNTEsNyBAQCB2b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2ZWRTdGF0
CiAKICAgICBSRUxFQVNFX0FTU0VSVChmaW5hbGl6ZXIpOwogICAgIAotICAgIGlmIChPcHRpb25z
OjpyZXBvcnRDb21waWxlVGltZXMoKSkgeworICAgIGlmIChyZXBvcnRDb21waWxlVGltZXMoKSkg
ewogICAgICAgICBjb25zdCBjaGFyKiBwYXRoTmFtZTsKICAgICAgICAgc3dpdGNoIChwYXRoKSB7
CiAgICAgICAgIGNhc2UgRmFpbFBhdGg6CkBAIC0xNDQsNyArMTY5LDcgQEAgdm9pZCBQbGFuOjpj
b21waWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgZG91YmxlIG5vdyA9IGN1cnJlbnRUaW1lTVMoKTsKLSAgICAgICAgZGF0YUxv
ZygiT3B0aW1pemVkICIsICpjb2RlQmxvY2stPmFsdGVybmF0aXZlKCksICIgdXNpbmcgIiwgbW9k
ZSwgIiB3aXRoICIsIHBhdGhOYW1lLCAiIGluICIsIG5vdyAtIGJlZm9yZSwgIiBtcyIpOworICAg
ICAgICBkYXRhTG9nKCJPcHRpbWl6ZWQgIiwgKmNvZGVCbG9jaywgIiB1c2luZyAiLCBtb2RlLCAi
IHdpdGggIiwgcGF0aE5hbWUsICIgaW50byAiLCBmaW5hbGl6ZXItPmNvZGVTaXplKCksICIgYnl0
ZXMgaW4gIiwgbm93IC0gYmVmb3JlLCAiIG1zIik7CiAgICAgICAgIGlmIChwYXRoID09IEZUTFBh
dGgpCiAgICAgICAgICAgICBkYXRhTG9nKCIgKERGRzogIiwgYmVmb3JlRlRMIC0gYmVmb3JlLCAi
LCBMTFZNOiAiLCBub3cgLSBiZWZvcmVGVEwsICIpIik7CiAgICAgICAgIGRhdGFMb2coIi5cbiIp
OwpAQCAtMjkzLDcgKzMxOCw3IEBAIFBsYW46OkNvbXBpbGF0aW9uUGF0aCBQbGFuOjpjb21waWxl
SW5UaHIKICAgICAgICAgRlRMOjpTdGF0ZSBzdGF0ZShkZmcpOwogICAgICAgICBGVEw6Omxvd2Vy
REZHVG9MTFZNKHN0YXRlKTsKICAgICAgICAgCi0gICAgICAgIGlmIChPcHRpb25zOjpyZXBvcnRD
b21waWxlVGltZXMoKSkKKyAgICAgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKQogICAgICAg
ICAgICAgYmVmb3JlRlRMID0gY3VycmVudFRpbWVNUygpOwogICAgICAgICAKICAgICAgICAgaWYg
KE9wdGlvbnM6Omxsdm1BbHdheXNGYWlsc0JlZm9yZUNvbXBpbGUoKSkgewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw3ICs1NSw4IEBAIGNs
YXNzIExvbmdMaXZlZFN0YXRlOwogCiBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxQbGFuPiB7CiAgICAgUGxhbigKLSAgICAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+
LCBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKKyAgICAg
ICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IGNvZGVCbG9ja1RvQ29tcGlsZSwgQ29kZUJsb2NrKiBw
cm9maWxlZERGR0NvZGVCbG9jaywKKyAgICAgICAgQ29tcGlsYXRpb25Nb2RlLCB1bnNpZ25lZCBv
c3JFbnRyeUJ5dGVjb2RlSW5kZXgsCiAgICAgICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBt
dXN0SGFuZGxlVmFsdWVzKTsKICAgICB+UGxhbigpOwogICAgIApAQCAtNzAsNiArNzEsNyBAQCBz
dHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAgCiAgICAgVk0mIHZt
OwogICAgIFJlZlB0cjxDb2RlQmxvY2s+IGNvZGVCbG9jazsKKyAgICBSZWZQdHI8Q29kZUJsb2Nr
PiBwcm9maWxlZERGR0NvZGVCbG9jazsKICAgICBDb21waWxhdGlvbk1vZGUgbW9kZTsKICAgICBj
b25zdCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXg7CiAgICAgT3BlcmFuZHM8SlNWYWx1
ZT4gbXVzdEhhbmRsZVZhbHVlczsKQEAgLTg0LDYgKzg2LDggQEAgc3RydWN0IFBsYW4gOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZQogICAgIERlc2lyZWRXZWFrUmVmZXJlbmNlcyB3ZWFrUmVm
ZXJlbmNlczsKICAgICBEZXNpcmVkV3JpdGVCYXJyaWVycyB3cml0ZUJhcnJpZXJzOwogICAgIERl
c2lyZWRUcmFuc2l0aW9ucyB0cmFuc2l0aW9uczsKKyAgICAKKyAgICBib29sIHdpbGxUcnlUb1Rp
ZXJVcDsKIAogICAgIGRvdWJsZSBiZWZvcmVGVEw7CiAgICAgCkBAIC05Miw2ICs5Niw4IEBAIHN0
cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGUKICAgICBSZWZQdHI8RGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjYWxsYmFjazsKIAogcHJpdmF0ZToKKyAgICBib29sIHJl
cG9ydENvbXBpbGVUaW1lcygpIGNvbnN0OworICAgIAogICAgIGVudW0gQ29tcGlsYXRpb25QYXRo
IHsgRmFpbFBhdGgsIERGR1BhdGgsIEZUTFBhdGggfTsKICAgICBDb21waWxhdGlvblBhdGggY29t
cGlsZUluVGhyZWFkSW1wbChMb25nTGl2ZWRTdGF0ZSYpOwogICAgIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhh
c2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC03MywyMiArNzMsMzMgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgUHV0QnlWYWw6Ci0gICAgICAg
IGNhc2UgUHV0QnlWYWxEaXJlY3Q6Ci0gICAgICAgICAgICBsb3dlckJvdW5kc0NoZWNrKAotICAg
ICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSwKLSAgICAgICAgICAg
ICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSksCi0gICAgICAgICAgICAgICAgbV9n
cmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDMpKTsKKyAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVj
dDogeworICAgICAgICAgICAgRWRnZSBiYXNlID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUs
IDApOworICAgICAgICAgICAgRWRnZSBpbmRleCA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2Rl
LCAxKTsKKyAgICAgICAgICAgIEVkZ2Ugc3RvcmFnZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9u
b2RlLCAzKTsKKyAgICAgICAgICAgIGlmIChsb3dlckJvdW5kc0NoZWNrKGJhc2UsIGluZGV4LCBz
dG9yYWdlKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgaWYgKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSAhPSBOb3RUeXBlZEFy
cmF5ICYmIG1fbm9kZS0+YXJyYXlNb2RlKCkuaXNPdXRPZkJvdW5kcygpKSB7CisgICAgICAgICAg
ICAgICAgTm9kZSogbGVuZ3RoID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAg
ICAgICAgICAgICAgbV9ub2RlSW5kZXgsIFNwZWNJbnQzMiwgR2V0QXJyYXlMZW5ndGgsIG1fbm9k
ZS0+Y29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgT3BJbmZvKG1fbm9kZS0+YXJyYXlN
b2RlKCkuYXNXb3JkKCkpLCBiYXNlLCBzdG9yYWdlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgNCkgPSBFZGdlKGxlbmd0aCwg
S25vd25JbnQzMlVzZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICB2b2lk
IGxvd2VyQm91bmRzQ2hlY2soRWRnZSBiYXNlLCBFZGdlIGluZGV4LCBFZGdlIHN0b3JhZ2UpCisg
ICAgYm9vbCBsb3dlckJvdW5kc0NoZWNrKEVkZ2UgYmFzZSwgRWRnZSBpbmRleCwgRWRnZSBzdG9y
YWdlKQogICAgIHsKICAgICAgICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgpLnBlcm1pdHNCb3Vu
ZHNDaGVja0xvd2VyaW5nKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIAogICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCkubGVu
Z3RoTmVlZHNTdG9yYWdlKCkpCiAgICAgICAgICAgICBzdG9yYWdlID0gRWRnZSgpOwpAQCAtOTks
NiArMTEwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgK
ICAgICAgICAgICAgIG1fbm9kZUluZGV4LCBTcGVjSW50MzIsIENoZWNrSW5Cb3VuZHMsIG1fbm9k
ZS0+Y29kZU9yaWdpbiwKICAgICAgICAgICAgIGluZGV4LCBFZGdlKGxlbmd0aCwgS25vd25JbnQz
MlVzZSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCiAgICAgSW5zZXJ0aW9u
U2V0IG1faW5zZXJ0aW9uU2V0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDcgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6ZmlsbEpT
VmFsdWUoRWRnZSBlZAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3Jp
Z2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlVGFnR1BST3JOb25lLCBHUFJSZWcgYmFzZVBheWxv
YWRHUFIsIEdQUlJlZyByZXN1bHRUYWdHUFIsIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSLCB1bnNp
Z25lZCBpZGVudGlmaWVyTnVtYmVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwg
U3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSkKIHsKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9y
IGdlbigKLSAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3Rl
cnMoKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsCisgICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksCiAgICAgICAgIEpTVmFsdWVSZWdzKGJh
c2VUYWdHUFJPck5vbmUsIGJhc2VQYXlsb2FkR1BSKSwKICAgICAgICAgSlNWYWx1ZVJlZ3MocmVz
dWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSKSwgc3BpbGxNb2RlICE9IE5lZWRUb1NwaWxsKTsK
ICAgICAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRC
eUlkKENvZGVPCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4g
Y29kZU9yaWdpbiwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdmFsdWVUYWdHUFIsIEdQ
UlJlZyB2YWx1ZVBheWxvYWRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlm
aWVyTnVtYmVyLCBQdXRLaW5kIHB1dEtpbmQsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFy
Z2V0KQogewogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2Rl
QmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdp
c3RlcnMoKSwKICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2VQYXlsb2FkR1BS
KSwgSlNWYWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQUiksCiAgICAgICAgIHNj
cmF0Y2hHUFIsIGZhbHNlLCBtX2ppdC5lY21hTW9kZUZvcihjb2RlT3JpZ2luKSwgcHV0S2luZCk7
CiAgICAgCkBAIC02MzEsMTAgKzYzMSw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxs
KE5vZGUqIG5vZGUKICAgICAKICAgICBpbnQgbnVtQXJncyA9IG51bVBhc3NlZEFyZ3MgKyBkdW1t
eVRoaXNBcmd1bWVudDsKIAotICAgIG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChudW1BcmdzLCBKU1N0YWNr
OjpBcmd1bWVudENvdW50KSk7Ci0gICAgbV9qaXQuc3RvcmVQdHIoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUobnVtQXJncykpOwotICAgIG1faml0LnN0
b3JlMzIoY2FsbGVlUGF5bG9hZEdQUiwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChudW1BcmdzLCBK
U1N0YWNrOjpDYWxsZWUpKTsKLSAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVRhZ0dQUiwgY2FsbGVl
RnJhbWVUYWdTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOworICAgIG1faml0LnN0b3Jl
MzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVlRnJhbWVQYXls
b2FkU2xvdChKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7CisgICAgbV9qaXQuc3RvcmUzMihjYWxs
ZWVQYXlsb2FkR1BSLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6OkNhbGxlZSkpOwor
ICAgIG1faml0LnN0b3JlMzIoY2FsbGVlVGFnR1BSLCBjYWxsZWVGcmFtZVRhZ1Nsb3QoSlNTdGFj
azo6Q2FsbGVlKSk7CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7IGkr
KykgewogICAgICAgICBFZGdlIGFyZ0VkZ2UgPSBtX2ppdC5ncmFwaCgpLm1fdmFyQXJnQ2hpbGRy
ZW5bbm9kZS0+Zmlyc3RDaGlsZCgpICsgMSArIGldOwpAQCAtNjQzLDggKzY0Miw4IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUKICAgICAgICAgR1BSUmVnIGFyZ1Bh
eWxvYWRHUFIgPSBhcmcucGF5bG9hZEdQUigpOwogICAgICAgICB1c2UoYXJnRWRnZSk7CiAKLSAg
ICAgICAgbV9qaXQuc3RvcmUzMihhcmdUYWdHUFIsIGNhbGxlZUFyZ3VtZW50VGFnU2xvdChudW1B
cmdzLCBpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMihhcmdQ
YXlsb2FkR1BSLCBjYWxsZWVBcmd1bWVudFBheWxvYWRTbG90KG51bUFyZ3MsIGkgKyBkdW1teVRo
aXNBcmd1bWVudCkpOworICAgICAgICBtX2ppdC5zdG9yZTMyKGFyZ1RhZ0dQUiwgY2FsbGVlQXJn
dW1lbnRUYWdTbG90KGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOworICAgICAgICBtX2ppdC5zdG9y
ZTMyKGFyZ1BheWxvYWRHUFIsIGNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3QoaSArIGR1bW15VGhp
c0FyZ3VtZW50KSk7CiAgICAgfQogCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKQEAgLTY1OSwxMyAr
NjU4LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUKIAogICAg
IG1faml0LmVtaXRTdG9yZUNvZGVPcmlnaW4obm9kZS0+Y29kZU9yaWdpbik7CiAgICAgCi0gICAg
bV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMihjYWxsZWVGcmFtZU9mZnNldChudW1BcmdzKSksIEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAKICAgICBzbG93UGF0aC5hcHBlbmQobV9q
aXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBjYWxsZWVUYWdHUFIsIFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOwogICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5i
cmFuY2hQdHJXaXRoUGF0Y2goTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBjYWxsZWVQYXlsb2Fk
R1BSLCB0YXJnZXRUb0NoZWNrKSk7CiAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhjYWxsZWVQYXlsb2FkR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9z
Y29wZSkpLCByZXN1bHRQYXlsb2FkR1BSKTsKLSAgICBtX2ppdC5zdG9yZVB0cihyZXN1bHRQYXls
b2FkR1BSLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
ciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAqIEpTU3RhY2s6OlNj
b3BlQ2hhaW4gKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRz
LnBheWxvYWQpKSk7Ci0gICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIp
KSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVz
Y3JpcHRvciwgYXNCaXRzLnRhZykpKTsKKyAgICBtX2ppdC5zdG9yZVB0cihyZXN1bHRQYXlsb2Fk
R1BSLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6OlNjb3BlQ2hhaW4pKTsKKyAgICBt
X2ppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxU
YWcpLCBjYWxsZWVGcmFtZVRhZ1Nsb3QoSlNTdGFjazo6U2NvcGVDaGFpbikpOwogCiAgICAgSklU
Q29tcGlsZXI6OkNhbGwgZmFzdENhbGwgPSBtX2ppdC5uZWFyQ2FsbCgpOwogCkBAIC0zMDQ3LDEy
ICszMDQ0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJl
c3MuCi0gICAgICAgIG1faml0LmVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIo
R1BSSW5mbzo6cmVnVDIpOwotICAgICAgICAvLyBSZXN0b3JlIG91ciBjYWxsZXIncyAiciIuCi0g
ICAgICAgIG1faml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgICAgICAvLyBSZXR1cm4uCi0gICAgICAgIG1f
aml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86OnJlZ1QyKTsKKyAg
ICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgbV9qaXQucmV0KCk7
CiAgICAgICAgIAogICAgICAgICBub1Jlc3VsdChub2RlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDggKzE5MCw4IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJ
VDo6ZmlsbEpTVmFsdWUoRWRnZSAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQo
Q29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwg
dW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJn
ZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1vZGUpCiB7CiAgICAgSklUR2V0QnlJZEdlbmVy
YXRvciBnZW4oCi0gICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVn
aXN0ZXJzKCksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICBKU1ZhbHVlUmVn
cyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocmVzdWx0R1BSKSwgc3BpbGxNb2RlICE9IE5lZWRUb1Nw
aWxsKTsKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3Rl
cnMoKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksCisgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdEdQ
UiksIHNwaWxsTW9kZSAhPSBOZWVkVG9TcGlsbCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgo
bV9qaXQpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CkBAIC0y
MTAsOSArMjEwLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlTwog
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4s
IEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgdmFsdWVHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNp
Z25lZCBpZGVudGlmaWVyTnVtYmVyLCBQdXRLaW5kIHB1dEtpbmQsIEpJVENvbXBpbGVyOjpKdW1w
IHNsb3dQYXRoVGFyZ2V0KQogewogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAg
ICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksIEpTVmFs
dWVSZWdzKHZhbHVlR1BSKSwgc2NyYXRjaEdQUiwgZmFsc2UsCi0gICAgICAgIG1faml0LmVjbWFN
b2RlRm9yKGNvZGVPcmlnaW4pLCBwdXRLaW5kKTsKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCks
IGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMoKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksCisgICAg
ICAgIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgc2NyYXRjaEdQUiwgZmFsc2UsIG1faml0LmVjbWFN
b2RlRm9yKGNvZGVPcmlnaW4pLCBwdXRLaW5kKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCht
X2ppdCk7CiAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKQEAgLTY2
Myw5ICs2NjIsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBub2RlCiAg
ICAgCiAgICAgaW50IG51bUFyZ3MgPSBudW1QYXNzZWRBcmdzICsgZHVtbXlUaGlzQXJndW1lbnQ7
CiAgICAgCi0gICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG51
bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkFyZ3VtZW50
Q291bnQpKTsKLSAgICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBj
YWxsZWVGcmFtZUNhbGxlckZyYW1lKG51bUFyZ3MpKTsKLSAgICBtX2ppdC5zdG9yZTY0KGNhbGxl
ZUdQUiwgY2FsbGVlRnJhbWVTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOworICAgIG1f
aml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVl
RnJhbWVQYXlsb2FkU2xvdChKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7CisgICAgbV9qaXQuc3Rv
cmU2NChjYWxsZWVHUFIsIGNhbGxlZUZyYW1lU2xvdChKU1N0YWNrOjpDYWxsZWUpKTsKICAgICAK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7IGkrKykgewogICAgICAgICBF
ZGdlIGFyZ0VkZ2UgPSBtX2ppdC5ncmFwaCgpLm1fdmFyQXJnQ2hpbGRyZW5bbm9kZS0+Zmlyc3RD
aGlsZCgpICsgMSArIGldOwpAQCAtNjczLDcgKzY3MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmVtaXRDYWxsKE5vZGUqIG5vZGUKICAgICAgICAgR1BSUmVnIGFyZ0dQUiA9IGFyZy5ncHIoKTsK
ICAgICAgICAgdXNlKGFyZ0VkZ2UpOwogICAgICAgICAKLSAgICAgICAgbV9qaXQuc3RvcmU2NChh
cmdHUFIsIGNhbGxlZUFyZ3VtZW50U2xvdChudW1BcmdzLCBpICsgZHVtbXlUaGlzQXJndW1lbnQp
KTsKKyAgICAgICAgbV9qaXQuc3RvcmU2NChhcmdHUFIsIGNhbGxlZUFyZ3VtZW50U2xvdChpICsg
ZHVtbXlUaGlzQXJndW1lbnQpKTsKICAgICB9CiAKICAgICBmbHVzaFJlZ2lzdGVycygpOwpAQCAt
NjgyLDIzICs2ODAsMjggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9k
ZQogICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAKICAgICBKSVRDb21waWxl
cjo6RGF0YUxhYmVsUHRyIHRhcmdldFRvQ2hlY2s7Ci0gICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0
IHNsb3dQYXRoOworICAgIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoOwogCiAgICAgbV9qaXQu
ZW1pdFN0b3JlQ29kZU9yaWdpbihub2RlLT5jb2RlT3JpZ2luKTsKICAgICAKLSAgICBtX2ppdC5h
ZGRQdHIoVHJ1c3RlZEltbTMyKGNhbGxlZUZyYW1lT2Zmc2V0KG51bUFyZ3MpKSwgR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgIAotICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFu
Y2hQdHJXaXRoUGF0Y2goTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBjYWxsZWVHUFIsIHRhcmdl
dFRvQ2hlY2ssIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKDApKSk7CisgICAgc2xvd1Bh
dGggPSBtX2ppdC5icmFuY2hQdHJXaXRoUGF0Y2goTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBj
YWxsZWVHUFIsIHRhcmdldFRvQ2hlY2ssIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKDAp
KTsKIAogICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2FsbGVlR1BS
LCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZSkpLCByZXN1bHRHUFIpOwotICAg
IG1faml0LnN0b3JlNjQocmVzdWx0R1BSLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0
ZXIpKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pKTsKKyAgICBtX2ppdC5zdG9yZTY0KHJlc3VsdEdQ
UiwgY2FsbGVlRnJhbWVTbG90KEpTU3RhY2s6OlNjb3BlQ2hhaW4pKTsKIAogICAgIEpJVENvbXBp
bGVyOjpDYWxsIGZhc3RDYWxsID0gbV9qaXQubmVhckNhbGwoKTsKLSAgICAKKwogICAgIEpJVENv
bXBpbGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7CiAgICAgCiAgICAgc2xvd1BhdGgubGlu
aygmbV9qaXQpOwogICAgIAorICAgIGlmIChtX2ppdC5ncmFwaCgpLm1fcGxhbi53aWxsVHJ5VG9U
aWVyVXApIHsKKyAgICAgICAgbV9qaXQuYWRkMzIoCisgICAgICAgICAgICBUcnVzdGVkSW1tMzIo
MSksCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWJzb2x1dGVBZGRyZXNzKAorICAgICAg
ICAgICAgICAgIG1faml0LmppdENvZGUoKS0+c2xvd1BhdGhDYWxscy5iZWdpbigpICsgbV9qaXQu
Y3VycmVudEpTQ2FsbEluZGV4KCkpKTsKKyAgICB9CisgICAgCiAgICAgbV9qaXQubW92ZShjYWxs
ZWVHUFIsIEdQUkluZm86OnJlZ1QwKTsgLy8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJlZ1QwCiAg
ICAgSklUQ29tcGlsZXI6OkNhbGwgc2xvd0NhbGwgPSBtX2ppdC5uZWFyQ2FsbCgpOwogICAgIApA
QCAtMzIwMCw3ICszMjAzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKICAg
ICAgICAgICAgICAgICBzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRo
LCB0aGlzLCBvcGVyYXRpb25BcnJheVB1c2gsIE5vUmVzdWx0LCBzdG9yYWdlTGVuZ3RoR1BSLAor
ICAgICAgICAgICAgICAgICAgICBzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uQXJyYXlQdXNoLCBz
dG9yYWdlTGVuZ3RoR1BSLAogICAgICAgICAgICAgICAgICAgICB2YWx1ZUdQUiwgYmFzZUdQUikp
OwogICAgICAgICAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQoc3RvcmFnZUxlbmd0aEdQUiwg
bm9kZSk7CkBAIC0zMjI0LDcgKzMyMjcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJh
dG9yKAogICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAg
c2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSwgTm9SZXN1bHQsIHN0b3Jh
Z2VMZW5ndGhHUFIsCisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRp
b25BcnJheVB1c2hEb3VibGUsIHN0b3JhZ2VMZW5ndGhHUFIsCiAgICAgICAgICAgICAgICAgICAg
IHZhbHVlRlBSLCBiYXNlR1BSKSk7CiAgICAgICAgIAogICAgICAgICAgICAganNWYWx1ZVJlc3Vs
dChzdG9yYWdlTGVuZ3RoR1BSLCBub2RlKTsKQEAgLTMzODgsMTIgKzMzOTEsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIEpTVmFsdWVPcGVyYW5k
IG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIG1faml0Lm1vdmUob3AxLmdwcigp
LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAKLSAgICAgICAgLy8gR3JhYiB0aGUgcmV0dXJu
IGFkZHJlc3MuCi0gICAgICAgIG1faml0LmVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFk
ZXJQdHIoR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICAvLyBSZXN0b3JlIG91ciBjYWxsZXIncyAi
ciIuCi0gICAgICAgIG1faml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQ
dHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgICAgICAvLyBSZXR1cm4uCi0gICAg
ICAgIG1faml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86OnJlZ1Qx
KTsKKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgbV9qaXQu
cmV0KCk7CiAgICAgICAgIAogICAgICAgICBub1Jlc3VsdChub2RlKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAx
NjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTM0Niw2ICsxMzQ2LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUN1cnJlbnRCbG9jawogICAgIG1fc3RyZWFtLT5hcHBlbmRBbmRMb2coVmFyaWFi
bGVFdmVudDo6cmVzZXQoKSk7CiAgICAgCiAgICAgbV9qaXQuaml0QXNzZXJ0SGFzVmFsaWRDYWxs
RnJhbWUoKTsKKyAgICBtX2ppdC5qaXRBc3NlcnRUYWdzSW5QbGFjZSgpOworICAgIG1faml0Lmpp
dEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fYmxvY2stPnZhcmlhYmxlc0F0SGVhZC5udW1iZXJPZkFyZ3VtZW50cygpOyArK2kpIHsKICAg
ICAgICAgbV9zdHJlYW0tPmFwcGVuZEFuZExvZygKQEAgLTE1MzIsMTAgKzE1MzQsNDAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKAogICAgIG1faXNDaGVja2luZ0Fy
Z3VtZW50VHlwZXMgPSBmYWxzZTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6cHJlcGFyZUpJ
VENvZGVGb3JUaWVyVXAoKQoreworICAgIHVuc2lnbmVkIG51bWJlck9mQ2FsbHMgPSAwOworICAg
IAorICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gbV9qaXQuZ3JhcGgoKS5udW1CbG9j
a3MoKTsgYmxvY2tJbmRleC0tOykgeworICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1faml0
LmdyYXBoKCkuYmxvY2soYmxvY2tJbmRleCk7CisgICAgICAgIGlmICghYmxvY2spCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAgIGZvciAodW5zaWduZWQgbm9kZUluZGV4
ID0gYmxvY2stPnNpemUoKTsgbm9kZUluZGV4LS07KSB7CisgICAgICAgICAgICBOb2RlKiBub2Rl
ID0gYmxvY2stPmF0KG5vZGVJbmRleCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRj
aCAobm9kZS0+b3AoKSkgeworICAgICAgICAgICAgY2FzZSBDYWxsOgorICAgICAgICAgICAgY2Fz
ZSBDb25zdHJ1Y3Q6CisgICAgICAgICAgICAgICAgbnVtYmVyT2ZDYWxscysrOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAg
ICAKKyAgICBtX2ppdC5qaXRDb2RlKCktPnNsb3dQYXRoQ2FsbHMuZmlsbCgwLCBudW1iZXJPZkNh
bGxzKTsKK30KKwogYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSgpCiB7CiAgICAgY2hlY2tB
cmd1bWVudFR5cGVzKCk7Ci0KKyAgICAKKyAgICBpZiAobV9qaXQuZ3JhcGgoKS5tX3BsYW4ud2ls
bFRyeVRvVGllclVwKQorICAgICAgICBwcmVwYXJlSklUQ29kZUZvclRpZXJVcCgpOworICAgIAog
ICAgIEFTU0VSVCghbV9jdXJyZW50Tm9kZSk7CiAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5k
ZXggPSAwOyBibG9ja0luZGV4IDwgbV9qaXQuZ3JhcGgoKS5udW1CbG9ja3MoKTsgKytibG9ja0lu
ZGV4KSB7CiAgICAgICAgIG1faml0LnNldEZvckJsb2NrSW5kZXgoYmxvY2tJbmRleCk7CkBAIC0y
MzkwLDYgKzI0MjIsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9y
SQogICAgIEFTU0VSVCh2YWx1ZUdQUiAhPSBiYXNlKTsKICAgICBBU1NFUlQodmFsdWVHUFIgIT0g
c3RvcmFnZVJlZyk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1w
Rm9yVHlwZWRBcnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2UsIHByb3BlcnR5KTsKKyAgICBpZiAo
bm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpICYmIG91dE9mQm91bmRzLmlzU2V0KCkpIHsK
KyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVNvdXJjZSgpLCAw
LCBvdXRPZkJvdW5kcyk7CisgICAgICAgIG91dE9mQm91bmRzID0gTWFjcm9Bc3NlbWJsZXI6Okp1
bXAoKTsKKyAgICB9CiAKICAgICBzd2l0Y2ggKGVsZW1lbnRTaXplKHR5cGUpKSB7CiAgICAgY2Fz
ZSAxOgpAQCAtMjQ2NSw2ICsyNTAxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQ
dXRCeVZhbEZvckYKICAgICBBU1NFUlRfVU5VU0VEKGJhc2VVc2UsIG5vZGUtPmFycmF5TW9kZSgp
LmFscmVhZHlDaGVja2VkKG1faml0LmdyYXBoKCksIG5vZGUsIG1fc3RhdGUuZm9yTm9kZShiYXNl
VXNlKSkpOwogICAgIAogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9mQm91bmRzID0ganVt
cEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhub2RlLCBiYXNlLCBwcm9wZXJ0eSk7CisgICAgaWYg
KG5vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSAmJiBvdXRPZkJvdW5kcy5pc1NldCgpKSB7
CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVTb3VyY2UoKSwg
MCwgb3V0T2ZCb3VuZHMpOworICAgICAgICBvdXRPZkJvdW5kcyA9IE1hY3JvQXNzZW1ibGVyOjpK
dW1wKCk7CisgICAgfQogICAgIAogICAgIHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAg
ICBjYXNlIDQ6IHsKQEAgLTM0MjksNiArMzQ2OSwxNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlQXJpdGhNb2QoTm9kCiAgICAgICAgIEdQUlJlZyBxdW90aWVudFRoZW5SZW1haW5kZXJH
UFIgPSBxdW90aWVudFRoZW5SZW1haW5kZXIuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyBtdWx0aXBs
eUFuc3dlckdQUiA9IG11bHRpcGx5QW5zd2VyLmdwcigpOwogCisgICAgICAgIEpJVENvbXBpbGVy
OjpKdW1wTGlzdCBkb25lOworICAgICAgICAKKyAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZs
b3cobm9kZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdmVy
ZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpa
ZXJvLCBkaXZpc29yR1BSKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSklUQ29tcGls
ZXI6Okp1bXAgZGVub21pbmF0b3JOb3RaZXJvID0gbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBp
bGVyOjpOb25aZXJvLCBkaXZpc29yR1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUoZGl2aXNv
ckdQUiwgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BSKTsKKyAgICAgICAgICAgIGRvbmUuYXBwZW5k
KG1faml0Lmp1bXAoKSk7CisgICAgICAgICAgICBkZW5vbWluYXRvck5vdFplcm8ubGluaygmbV9q
aXQpOworICAgICAgICB9CisKICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuc2RpdihxdW90aWVu
dFRoZW5SZW1haW5kZXJHUFIsIGRpdmlkZW5kR1BSLCBkaXZpc29yR1BSKTsKICAgICAgICAgLy8g
RklYTUU6IEl0IHNlZW1zIGxpa2UgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHdlIGRvbid0IG5lZWQg
dGhpcz8gV2hhdCBpZiB3ZSBoYXZlCiAgICAgICAgIC8vIGFyaXRoTW9kZSgpID09IEFyaXRoOjpV
bmNoZWNrZWQ/CkBAIC0zNDQ1LDYgKzM0OTYsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQXJpdGhNb2QoTm9kCiAgICAgICAgICAgICBudW1lcmF0b3JQb3NpdGl2ZS5saW5rKCZtX2pp
dCk7CiAgICAgICAgIH0KIAorICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAgCiAg
ICAgICAgIGludDMyUmVzdWx0KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgbm9kZSk7CiAjZWxp
ZiBDUFUoQVJNNjQpCiAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOwpAQCAtMzQ1NSw2
ICszNTA4LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2QKICAg
ICAgICAgR1BSUmVnIHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiA9IHF1b3RpZW50VGhlblJlbWFp
bmRlci5ncHIoKTsKICAgICAgICAgR1BSUmVnIG11bHRpcGx5QW5zd2VyR1BSID0gbXVsdGlwbHlB
bnN3ZXIuZ3ByKCk7CiAKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IGRvbmU7CisgICAg
CisgICAgICAgIGlmIChzaG91bGRDaGVja092ZXJmbG93KG5vZGUtPmFyaXRoTW9kZSgpKSkKKyAg
ICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIG1f
aml0LmJyYW5jaFRlc3QzMihKSVRDb21waWxlcjo6WmVybywgZGl2aXNvckdQUikpOworICAgICAg
ICBlbHNlIHsKKyAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGRlbm9taW5hdG9yTm90WmVy
byA9IG1faml0LmJyYW5jaFRlc3QzMihKSVRDb21waWxlcjo6Tm9uWmVybywgZGl2aXNvckdQUik7
CisgICAgICAgICAgICBtX2ppdC5tb3ZlKGRpdmlzb3JHUFIsIHF1b3RpZW50VGhlblJlbWFpbmRl
ckdQUik7CisgICAgICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgICAgICAg
ICAgZGVub21pbmF0b3JOb3RaZXJvLmxpbmsoJm1faml0KTsKKyAgICAgICAgfQorCiAgICAgICAg
IG1faml0LmFzc2VtYmxlcigpLnNkaXY8MzI+KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwgZGl2
aWRlbmRHUFIsIGRpdmlzb3JHUFIpOwogICAgICAgICAvLyBGSVhNRTogSXQgc2VlbXMgbGlrZSB0
aGVyZSBhcmUgY2FzZXMgd2hlcmUgd2UgZG9uJ3QgbmVlZCB0aGlzPyBXaGF0IGlmIHdlIGhhdmUK
ICAgICAgICAgLy8gYXJpdGhNb2RlKCkgPT0gQXJpdGg6OlVuY2hlY2tlZD8KQEAgLTM0NzEsNiAr
MzUzNSw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2QKICAgICAg
ICAgICAgIG51bWVyYXRvclBvc2l0aXZlLmxpbmsoJm1faml0KTsKICAgICAgICAgfQogCisgICAg
ICAgIGRvbmUubGluaygmbV9qaXQpOworCiAgICAgICAgIGludDMyUmVzdWx0KHF1b3RpZW50VGhl
blJlbWFpbmRlckdQUiwgbm9kZSk7CiAjZWxzZSAvLyBub3QgYXJjaGl0ZWN0dXJlIHRoYXQgY2Fu
IGRvIGludGVnZXIgZGl2aXNpb24KICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSw5IEBAIHB1YmxpYzoK
ICAgICB+U3BlY3VsYXRpdmVKSVQoKTsKIAogICAgIGJvb2wgY29tcGlsZSgpOworICAgIAorICAg
IHZvaWQgcHJlcGFyZUpJVENvZGVGb3JUaWVyVXAoKTsKKyAgICAKICAgICB2b2lkIGNyZWF0ZU9T
UkVudHJpZXMoKTsKICAgICB2b2lkIGxpbmtPU1JFbnRyaWVzKExpbmtCdWZmZXImKTsKIApAQCAt
NzQyLDQ0ICs3NDUsNDUgQEAgcHVibGljOgogICAgIAogICAgIHB0cmRpZmZfdCBjYWxsZWVGcmFt
ZU9mZnNldChpbnQgbnVtQXJncykKICAgICB7Ci0gICAgICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0
ZXJGb3JMb2NhbChtX2ppdC5ncmFwaCgpLm1fbmV4dE1hY2hpbmVMb2NhbCArIEpTU3RhY2s6OkNh
bGxGcmFtZUhlYWRlclNpemUgKyBudW1BcmdzKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3Rlcik7
CisgICAgICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2ppdC5ncmFwaCgpLm1f
bmV4dE1hY2hpbmVMb2NhbCAtIDEgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplICsgbnVt
QXJncykub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpOwogICAgIH0KICAgICAKICAgICAvLyBB
Y2Nlc3MgdG8gb3VyIGZpeGVkIGNhbGxlZSBDYWxsRnJhbWUuCi0gICAgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MgY2FsbGVlRnJhbWVTbG90KGludCBudW1BcmdzLCBpbnQgc2xvdCkKKyAgICBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVNsb3QoaW50IHNsb3QpCiAgICAgewotICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsIGNhbGxlZUZyYW1lT2Zmc2V0KG51bUFyZ3MpICsgc2l6ZW9mKFJlZ2lzdGVyKSAqIHNs
b3QpOworICAgICAgICBBU1NFUlQoc2xvdCA+PSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6
ZSk7CisgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxl
cjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3RlcikgKiAoc2xvdCAtIEpTU3Rh
Y2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSk7CiAgICAgfQogCiAgICAgLy8gQWNjZXNzIHRvIG91
ciBmaXhlZCBjYWxsZWUgQ2FsbEZyYW1lLgotICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNh
bGxlZUFyZ3VtZW50U2xvdChpbnQgbnVtQXJncywgaW50IGFyZ3VtZW50KQorICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50U2xvdChpbnQgYXJndW1lbnQpCiAgICAgewot
ICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KG51bUFyZ3MsIHZpcnR1YWxSZWdpc3RlckZv
ckFyZ3VtZW50KGFyZ3VtZW50KS5vZmZzZXQoKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVGcmFt
ZVNsb3QodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpLm9mZnNldCgpKTsKICAg
ICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVRhZ1Nsb3QoaW50
IG51bUFyZ3MsIGludCBzbG90KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZy
YW1lVGFnU2xvdChpbnQgc2xvdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNs
b3QobnVtQXJncywgc2xvdCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVl
RGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOworICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90
KHNsb3QpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3Is
IGFzQml0cy50YWcpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxs
ZWVGcmFtZVBheWxvYWRTbG90KGludCBudW1BcmdzLCBpbnQgc2xvdCkKKyAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVBheWxvYWRTbG90KGludCBzbG90KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdChudW1BcmdzLCBzbG90KS53aXRoT2Zmc2V0KE9C
SkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpOwor
ICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KHNsb3QpLndpdGhPZmZzZXQoT0JKRUNUX09G
RlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CiAgICAgfQog
Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRUYWdTbG90KGludCBu
dW1BcmdzLCBpbnQgYXJndW1lbnQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVl
QXJndW1lbnRUYWdTbG90KGludCBhcmd1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxs
ZWVBcmd1bWVudFNsb3QobnVtQXJncywgYXJndW1lbnQpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNF
VE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKTsKKyAgICAgICAgcmV0dXJu
IGNhbGxlZUFyZ3VtZW50U2xvdChhcmd1bWVudCkud2l0aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0Yo
RW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOwogICAgIH0KIAotICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50UGF5bG9hZFNsb3QoaW50IG51bUFyZ3Ms
IGludCBhcmd1bWVudCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVBcmd1bWVu
dFBheWxvYWRTbG90KGludCBhcmd1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVB
cmd1bWVudFNsb3QobnVtQXJncywgYXJndW1lbnQpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9G
KEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJldHVy
biBjYWxsZWVBcmd1bWVudFNsb3QoYXJndW1lbnQpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9G
KEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CiAgICAgfQogCi0gICAg
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVDYWxsZXJGcmFtZShpbnQgbnVtQXJn
cykKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZUNhbGxlckZyYW1lKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QobnVtQXJncywgMCkud2l0aE9m
ZnNldChDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpOworICAgICAgICByZXR1cm4gY2Fs
bGVlRnJhbWVTbG90KDApLndpdGhPZmZzZXQoQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgp
KTsKICAgICB9CiAKICAgICB2b2lkIGVtaXRDYWxsKE5vZGUqKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVGllclVwQ2hlY2tJbmplY3Rpb25QaGFzZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBo
YXNlLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDksMjcgKzQ5
LDU5IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIGlmICghT3B0aW9uczo6dXNlRXhwZXJp
bWVudGFsRlRMKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KKyAgICAgICAgCisgICAg
ICAgIGlmIChtX2dyYXBoLm1fcHJvZmlsZWRCbG9jay0+bV9kaWRGYWlsRlRMQ29tcGlsYXRpb24p
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCiAjaWYgRU5BQkxFKEZUTF9KSVQp
CiAgICAgICAgIEZUTDo6Q2FwYWJpbGl0eUxldmVsIGxldmVsID0gRlRMOjpjYW5Db21waWxlKG1f
Z3JhcGgpOwogICAgICAgICBpZiAobGV2ZWwgPT0gRlRMOjpDYW5ub3RDb21waWxlKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKKyAgICAgICAgaWYgKCFPcHRpb25zOjplbmFi
bGVPU1JFbnRyeVRvRlRMKCkpCisgICAgICAgICAgICBsZXZlbCA9IEZUTDo6Q2FuQ29tcGlsZTsK
KyAgICAgICAgCiAgICAgICAgIEluc2VydGlvblNldCBpbnNlcnRpb25TZXQobV9ncmFwaCk7CiAg
ICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gbV9ncmFwaC5udW1CbG9ja3MoKTsg
YmxvY2tJbmRleC0tOykgewogICAgICAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgPSBtX2dyYXBo
LmJsb2NrKGJsb2NrSW5kZXgpOwogICAgICAgICAgICAgaWYgKCFibG9jaykKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGJsb2NrLT5hdCgw
KS0+b3AoKSA9PSBMb29wSGludCkgewotICAgICAgICAgICAgICAgIENvZGVPcmlnaW4gY29kZU9y
aWdpbiA9IGJsb2NrLT5hdCgwKS0+Y29kZU9yaWdpbjsKLSAgICAgICAgICAgICAgICBOb2RlVHlw
ZSBub2RlVHlwZTsKLSAgICAgICAgICAgICAgICBpZiAobGV2ZWwgPT0gRlRMOjpDYW5Db21waWxl
QW5kT1NSRW50ZXIgJiYgIWNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG5vZGVUeXBlID0gQ2hlY2tUaWVyVXBBbmRPU1JFbnRlcjsKLSAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoYmxvY2stPmJ5dGVjb2RlQmVnaW4gPT0gY29kZU9yaWdp
bi5ieXRlY29kZUluZGV4KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgbm9kZVR5cGUgPSBDaGVja1RpZXJVcEluTG9vcDsKLSAgICAgICAgICAgICAgICBpbnNl
cnRpb25TZXQuaW5zZXJ0Tm9kZSgxLCBTcGVjTm9uZSwgbm9kZVR5cGUsIGNvZGVPcmlnaW4pOwor
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9j
ay0+c2l6ZSgpOyArK25vZGVJbmRleCkgeworICAgICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBi
bG9jay0+YXQobm9kZUluZGV4KTsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSAhPSBM
b29wSGludCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgLy8gV2Ugb25seSBwdXQgT1NSIGNoZWNrcyBmb3IgdGhlIGZpcnN0
IExvb3BIaW50IGluIHRoZSBibG9jay4gTm90ZSB0aGF0CisgICAgICAgICAgICAgICAgLy8gbW9y
ZSB0aGFuIG9uZSBMb29wSGludCBjb3VsZCBoYXBwZW4gaW4gY2FzZXMgd2hlcmUgd2UgZGlkIGEg
bG90IG9mIENGRworICAgICAgICAgICAgICAgIC8vIHNpbXBsaWZpY2F0aW9uIGluIHRoZSBieXRl
Y29kZSBwYXJzZXIsIGJ1dCBpdCBzaG91bGQgYmUgdmVyeSByYXJlLgorICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IG5vZGUtPmNvZGVPcmln
aW47CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGxldmVsICE9IEZUTDo6
Q2FuQ29tcGlsZUFuZE9TUkVudGVyIHx8IGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAg
ICAgICAgICAgICAgbm9kZUluZGV4ICsgMSwgU3BlY05vbmUsIENoZWNrVGllclVwSW5Mb29wLCBj
b2RlT3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGJvb2wgaXNBdFRvcCA9IHRydWU7
CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBzdWJOb2RlSW5kZXggPSBub2RlSW5kZXg7
IHN1Yk5vZGVJbmRleC0tOykgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWJsb2NrLT5hdChz
dWJOb2RlSW5kZXgpLT5pc1NlbWFudGljYWxseVNraXBwYWJsZSgpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpc0F0VG9wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIWlzQXRUb3ApIHsKKyAgICAgICAgICAgICAgICAg
ICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBub2Rl
SW5kZXggKyAxLCBTcGVjTm9uZSwgQ2hlY2tUaWVyVXBJbkxvb3AsIGNvZGVPcmlnaW4pOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoYmxvY2stPmJ5dGVjb2RlQmVnaW4g
PT0gY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKKyAgICAgICAgICAgICAgICBpbnNlcnRpb25T
ZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAgICAgICAgICAgbm9kZUluZGV4ICsgMSwgU3BlY05v
bmUsIENoZWNrVGllclVwQW5kT1NSRW50ZXIsIGNvZGVPcmlnaW4pOworICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoYmxv
Y2stPmxhc3QoKS0+b3AoKSA9PSBSZXR1cm4pIHsKQEAgLTgwLDYgKzExMiw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIGluc2VydGlvblNldC5leGVjdXRlKGJsb2NrKTsKICAgICAgICAgfQogICAg
ICAgICAKKyAgICAgICAgbV9ncmFwaC5tX3BsYW4ud2lsbFRyeVRvVGllclVwID0gdHJ1ZTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAjZWxzZSAvLyBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDYgKzE4Miwx
OCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBW
X0VRVUFMKChub2RlKSwgbm9kZS0+cmVmQ291bnQoKSwgMSk7CiAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwIDsgaSA8IGJsb2NrLT5zaXpl
KCkgLSAxOyArK2kpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KGkp
OworICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwgIW5vZGUtPmlzVGVybWluYWwoKSk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgYmxvY2stPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgTm9kZSogbm9k
ZSA9IGJsb2NrLT5hdChpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAo
bm9kZS0+aGFzU3RydWN0dXJlKCkpCisgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2Rl
KSwgISFub2RlLT5zdHJ1Y3R1cmUoKSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIHN3aXRjaCAobV9ncmFwaC5tX2Zvcm0pIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjYxLDIzICsyNjEsNTIgQEAgdm9pZCBXb3JrbGlzdDo6dGhyZWFkRnVuY3Rpb24odm9pZCogYXJn
dQogICAgIHN0YXRpY19jYXN0PFdvcmtsaXN0Kj4oYXJndW1lbnQpLT5ydW5UaHJlYWQoKTsKIH0K
IAotc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxXb3JrbGlzdDsKK3N0YXRpYyBXb3JrbGlzdCog
dGhlR2xvYmFsREZHV29ya2xpc3Q7CiAKLVdvcmtsaXN0KiBnbG9iYWxXb3JrbGlzdCgpCitXb3Jr
bGlzdCogZW5zdXJlR2xvYmFsREZHV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25j
ZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAgICB1bnNpZ25l
ZCBudW1iZXJPZlRocmVhZHM7CisgICAgICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0gV29ya2xp
c3Q6OmNyZWF0ZShPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVm
KCk7CisgICAgfSk7CisgICAgcmV0dXJuIHRoZUdsb2JhbERGR1dvcmtsaXN0OworfQogCi0gICAg
ICAgIGlmIChPcHRpb25zOjp1c2VFeHBlcmltZW50YWxGVEwoKSkKLSAgICAgICAgICAgIG51bWJl
ck9mVGhyZWFkcyA9IDE7IC8vIFdlIGRvbid0IHlldCB1c2UgTExWTSBpbiBhIHRocmVhZC1zYWZl
IHdheS4KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbnVtYmVyT2ZUaHJlYWRzID0gT3B0aW9u
czo6bnVtYmVyT2ZDb21waWxlclRocmVhZHMoKTsKK1dvcmtsaXN0KiBleGlzdGluZ0dsb2JhbERG
R1dvcmtsaXN0T3JOdWxsKCkKK3sKKyAgICByZXR1cm4gdGhlR2xvYmFsREZHV29ya2xpc3Q7Cit9
CiAKLSAgICAgICAgdGhlR2xvYmFsV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKG51bWJlck9m
VGhyZWFkcykubGVha1JlZigpOworc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxGVExXb3JrbGlz
dDsKKworV29ya2xpc3QqIGVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KCkKK3sKKyAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWc7CisgICAgc3Rk
OjpjYWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWcsIFtdIHsKKyAgICAg
ICAgdGhlR2xvYmFsRlRMV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKE9wdGlvbnM6Om51bWJl
ck9mRlRMQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAgICB9KTsKKyAgICByZXR1cm4g
dGhlR2xvYmFsRlRMV29ya2xpc3Q7Cit9CisKK1dvcmtsaXN0KiBleGlzdGluZ0dsb2JhbEZUTFdv
cmtsaXN0T3JOdWxsKCkKK3sKKyAgICByZXR1cm4gdGhlR2xvYmFsRlRMV29ya2xpc3Q7Cit9CiAK
LSAgICByZXR1cm4gdGhlR2xvYmFsV29ya2xpc3Q7CitXb3JrbGlzdCogZW5zdXJlR2xvYmFsV29y
a2xpc3RGb3IoQ29tcGlsYXRpb25Nb2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7Cisg
ICAgY2FzZSBJbnZhbGlkQ29tcGlsYXRpb25Nb2RlOgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIERGR01vZGU6CisgICAg
ICAgIHJldHVybiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpOworICAgIGNhc2UgRlRMTW9kZToK
KyAgICBjYXNlIEZUTEZvck9TUkVudHJ5TW9kZToKKyAgICAgICAgcmV0dXJuIGVuc3VyZUdsb2Jh
bEZUTFdvcmtsaXN0KCk7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIDA7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgJKHJldmlzaW9uIDE2Mjk2MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAkod29ya2luZyBjb3B5KQpA
QCAtOTUsMTAgKzk1LDE1IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9udW1iZXJPZkFjdGl2
ZVRocmVhZHM7CiB9OwogCi0vLyBGb3Igbm93IHdlIHVzZSBhIHNpbmdsZSBnbG9iYWwgd29ya2xp
c3QuIEl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcwotLy8gaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRv
LCBidXQgaXQgaXMgd2hhdCB3ZSBkbywgZm9yIG5vdy4gVGhpcyBmdW5jdGlvbgotLy8gd2lsbCBs
YXppbHkgY3JlYXRlIG9uZSB3aGVuIGl0J3MgbmVlZGVkLgotV29ya2xpc3QqIGdsb2JhbFdvcmts
aXN0KCk7CisvLyBGb3IgREZHTW9kZSBjb21waWxhdGlvbnMuCitXb3JrbGlzdCogZW5zdXJlR2xv
YmFsREZHV29ya2xpc3QoKTsKK1dvcmtsaXN0KiBleGlzdGluZ0dsb2JhbERGR1dvcmtsaXN0T3JO
dWxsKCk7CisKKy8vIEZvciBGVExNb2RlIGFuZCBGVExGb3JPU1JFbnRyeU1vZGUgY29tcGlsYXRp
b25zLgorV29ya2xpc3QqIGVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KCk7CitXb3JrbGlzdCogZXhp
c3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVsbCgpOworCitXb3JrbGlzdCogZW5zdXJlR2xvYmFs
V29ya2xpc3RGb3IoQ29tcGlsYXRpb25Nb2RlKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRG
RwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERP
cGNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJs
ZXIvQVJNNjQvQTY0RE9wY29kZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTYyLDYgKzYyLDggQEAgc3RydWN0IE9wY29kZUdyb3VwSW5pdGlhbGl6ZXIgewogeyBn
cm91cEluZGV4LCBncm91cENsYXNzOjptYXNrLCBncm91cENsYXNzOjpwYXR0ZXJuLCBncm91cENs
YXNzOjpmb3JtYXQgfQogCiBzdGF0aWMgT3Bjb2RlR3JvdXBJbml0aWFsaXplciBvcGNvZGVHcm91
cExpc3RbXSA9IHsKKyAgICBPUENPREVfR1JPVVBfRU5UUlkoMHgwOCwgQTY0RE9wY29kZUxvYWRT
dG9yZVJlZ2lzdGVyUGFpciksCisgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MDksIEE2NERPcGNv
ZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIpLAogICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgweDBhLCBB
NjRET3Bjb2RlTG9naWNhbFNoaWZ0ZWRSZWdpc3RlciksCiAgICAgT1BDT0RFX0dST1VQX0VOVFJZ
KDB4MGIsIEE2NERPcGNvZGVBZGRTdWJ0cmFjdEV4dGVuZGVkUmVnaXN0ZXIpLAogICAgIE9QQ09E
RV9HUk9VUF9FTlRSWSgweDBiLCBBNjRET3Bjb2RlQWRkU3VidHJhY3RTaGlmdGVkUmVnaXN0ZXIp
LApAQCAtMTcyLDYgKzE3NCwxMSBAQCBjb25zdCBjaGFyKiBBNjRET3Bjb2RlOjpmb3JtYXQoKQog
CiB2b2lkIEE2NERPcGNvZGU6OmFwcGVuZFJlZ2lzdGVyTmFtZSh1bnNpZ25lZCByZWdpc3Rlck51
bWJlciwgYm9vbCBpczY0Qml0KQogeworICAgIGlmIChyZWdpc3Rlck51bWJlciA9PSAyOSkgewor
ICAgICAgICBidWZmZXJQcmludGYoaXM2NEJpdCA/ICJmcCIgOiAid2ZwIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBpZiAocmVnaXN0ZXJOdW1iZXIgPT0gMzApIHsKICAgICAgICAg
YnVmZmVyUHJpbnRmKGlzNjRCaXQgPyAibHIiIDogIndsciIpOwogICAgICAgICByZXR1cm47CkBA
IC05MzksNiArOTQ2LDYzIEBAIGNvbnN0IGNoYXIqIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3Rl
ck8KICAgICByZXR1cm4gbV9mb3JtYXRCdWZmZXI7CiB9CiAKK2NvbnN0IGNoYXIqIEE2NERPcGNv
ZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6Om9wTmFtZSgpCit7CisgICAgaWYgKCF2Qml0KCkgJiYg
bEJpdCgpICYmIHNpemUoKSA9PSAweDEpCisgICAgICAgIHJldHVybiAibGRwc3ciOworICAgIGlm
IChsQml0KCkpCisgICAgICAgIHJldHVybiAibGRwIjsKKyAgICByZXR1cm4gInN0cCI7Cit9CisK
K2NvbnN0IGNoYXIqIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OmZvcm1hdCgpCit7
CisgICAgY29uc3QgY2hhciogdGhpc09wTmFtZSA9IG9wTmFtZSgpOworICAgIAorICAgIGlmIChz
aXplKCkgPT0gMHgzKQorICAgICAgICByZXR1cm4gQTY0RE9wY29kZTo6Zm9ybWF0KCk7CisKKyAg
ICBpZiAoKG9mZnNldE1vZGUoKSA8IDB4MSkgfHwgKG9mZnNldE1vZGUoKSA+IDB4MykpCisgICAg
ICAgIHJldHVybiBBNjRET3Bjb2RlOjpmb3JtYXQoKTsKKworICAgIGlmICgob2Zmc2V0TW9kZSgp
ID09IDB4MSkgJiYgIXZCaXQoKSAmJiAhbEJpdCgpKQorICAgICAgICByZXR1cm4gQTY0RE9wY29k
ZTo6Zm9ybWF0KCk7CisKKyAgICBhcHBlbmRJbnN0cnVjdGlvbk5hbWUodGhpc09wTmFtZSk7Cisg
ICAgdW5zaWduZWQgb2Zmc2V0U2hpZnQ7CisgICAgaWYgKHZCaXQoKSkgeworICAgICAgICBhcHBl
bmRGUFJlZ2lzdGVyTmFtZShydCgpLCBzaXplKCkpOworICAgICAgICBhcHBlbmRTZXBhcmF0b3Io
KTsKKyAgICAgICAgYXBwZW5kRlBSZWdpc3Rlck5hbWUocnQyKCksIHNpemUoKSk7CisgICAgICAg
IG9mZnNldFNoaWZ0ID0gc2l6ZSgpICsgMjsKKyAgICB9IGVsc2UgeworICAgICAgICBhcHBlbmRS
ZWdpc3Rlck5hbWUocnQoKSwgaXM2NEJpdCgpKTsKKyAgICAgICAgYXBwZW5kU2VwYXJhdG9yKCk7
CisgICAgICAgIGFwcGVuZFJlZ2lzdGVyTmFtZShydDIoKSwgaXM2NEJpdCgpKTsKKyAgICAgICAg
b2Zmc2V0U2hpZnQgPSAoc2l6ZSgpID4+IDEpICsgMjsKKyAgICB9CisKKyAgICBhcHBlbmRTZXBh
cmF0b3IoKTsKKyAgICBhcHBlbmRDaGFyYWN0ZXIoJ1snKTsKKyAgICBhcHBlbmRTUE9yUmVnaXN0
ZXJOYW1lKHJuKCkpOworCisgICAgaW50IG9mZnNldCA9IGltbWVkaWF0ZTcoKSA8PCBvZmZzZXRT
aGlmdDsKKworICAgIGlmIChvZmZzZXRNb2RlKCkgPT0gMSkgeworICAgICAgICBhcHBlbmRDaGFy
YWN0ZXIoJ10nKTsKKyAgICAgICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIGFwcGVuZFNp
Z25lZEltbWVkaWF0ZShvZmZzZXQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGFwcGVuZFNlcGFy
YXRvcigpOworICAgICAgICBhcHBlbmRTaWduZWRJbW1lZGlhdGUob2Zmc2V0KTsKKyAgICAgICAg
YXBwZW5kQ2hhcmFjdGVyKCddJyk7CisgICAgICAgIGlmIChvZmZzZXRNb2RlKCkgPT0gMHgzKQor
ICAgICAgICAgICAgYXBwZW5kQ2hhcmFjdGVyKCchJyk7CisgICAgfQorCisgICAgcmV0dXJuIG1f
Zm9ybWF0QnVmZmVyOworfQorCiBjb25zdCBjaGFyKiBBNjRET3Bjb2RlTG9hZFN0b3JlVW5zaWdu
ZWRJbW1lZGlhdGU6OmZvcm1hdCgpCiB7CiAgICAgY29uc3QgY2hhciogdGhpc09wTmFtZSA9IG9w
TmFtZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9B
NjRET3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2Vt
Ymxlci9BUk02NC9BNjRET3Bjb2RlLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC01NjUsNiArNTY1LDIyIEBAIHB1YmxpYzoKICAgICBpbnQgc0JpdCgpIHsgcmV0dXJuICht
X29wY29kZSA+PiAxMikgJiAweDE7IH0KIH07CiAKK2NsYXNzIEE2NERPcGNvZGVMb2FkU3RvcmVS
ZWdpc3RlclBhaXIgOiBwdWJsaWMgQTY0RE9wY29kZUxvYWRTdG9yZSB7CitwdWJsaWM6CisgICAg
c3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDNhMDAwMDAwOworICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBwYXR0ZXJuID0gMHgyODAwMDAwMDsKKworICAgIERFRklORV9TVEFUSUNfRk9S
TUFUKEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIsIHRoaXNPYmopOworCisgICAgY29u
c3QgY2hhciogZm9ybWF0KCk7CisgICAgY29uc3QgY2hhciogb3BOYW1lKCk7CisKKyAgICB1bnNp
Z25lZCBydDIoKSB7IHJldHVybiAobV9vcGNvZGUgPj4gMTApICYgMHgxZjsgfQorICAgIGludCBp
bW1lZGlhdGU3KCkgeyByZXR1cm4gKHN0YXRpY19jYXN0PGludD4oKG1fb3Bjb2RlID4+IDE1KSAm
IDB4N2YpIDw8IDI1KSA+PiAyNTsgfQorICAgIHVuc2lnbmVkIG9mZnNldE1vZGUoKSB7IHJldHVy
biAobV9vcGNvZGUgPj4gMjMpICYgMHg3OyB9CisgICAgaW50IGxCaXQoKSB7IHJldHVybiAobV9v
cGNvZGUgPj4gMjIpICYgMHgxOyB9Cit9OworCiBjbGFzcyBBNjRET3Bjb2RlTG9hZFN0b3JlVW5z
aWduZWRJbW1lZGlhdGUgOiBwdWJsaWMgQTY0RE9wY29kZUxvYWRTdG9yZSB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDNiMDAwMDAwOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYmJyZXZpYXRpb25zLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYmJyZXZpYXRpb25zLmgJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJicmV2aWF0aW9ucy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBAIHN0YXRpYyBpbmxpbmUgTFR5cGUgZmxvYXRUeXBl
KExDb250ZXh0IGMKIHN0YXRpYyBpbmxpbmUgTFR5cGUgZG91YmxlVHlwZShMQ29udGV4dCBjb250
ZXh0KSB7IHJldHVybiBsbHZtLT5Eb3VibGVUeXBlSW5Db250ZXh0KGNvbnRleHQpOyB9CiAKIHN0
YXRpYyBpbmxpbmUgTFR5cGUgcG9pbnRlclR5cGUoTFR5cGUgdHlwZSkgeyByZXR1cm4gbGx2bS0+
UG9pbnRlclR5cGUodHlwZSwgMCk7IH0KK3N0YXRpYyBpbmxpbmUgTFR5cGUgYXJyYXlUeXBlKExU
eXBlIHR5cGUsIHVuc2lnbmVkIGNvdW50KSB7IHJldHVybiBsbHZtLT5BcnJheVR5cGUodHlwZSwg
Y291bnQpOyB9CiBzdGF0aWMgaW5saW5lIExUeXBlIHZlY3RvclR5cGUoTFR5cGUgdHlwZSwgdW5z
aWduZWQgY291bnQpIHsgcmV0dXJuIGxsdm0tPlZlY3RvclR5cGUodHlwZSwgY291bnQpOyB9CiAK
IGVudW0gUGFja2luZ01vZGUgeyBOb3RQYWNrZWQsIFBhY2tlZCB9OwpAQCAtMTMyLDYgKzEzMyw3
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRNZXRhZGF0YShMVmFsdWUgaW4KIHN0YXRpYyBpbmxp
bmUgTFZhbHVlIGFkZEZ1bmN0aW9uKExNb2R1bGUgbW9kdWxlLCBjb25zdCBjaGFyKiBuYW1lLCBM
VHlwZSB0eXBlKSB7IHJldHVybiBsbHZtLT5BZGRGdW5jdGlvbihtb2R1bGUsIG5hbWUsIHR5cGUp
OyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0TGlua2FnZShMVmFsdWUgZ2xvYmFsLCBMTGlua2Fn
ZSBsaW5rYWdlKSB7IGxsdm0tPlNldExpbmthZ2UoZ2xvYmFsLCBsaW5rYWdlKTsgfQogc3RhdGlj
IGlubGluZSB2b2lkIHNldEZ1bmN0aW9uQ2FsbGluZ0NvbnYoTFZhbHVlIGZ1bmN0aW9uLCBMQ2Fs
bENvbnYgY29udmVudGlvbikgeyBsbHZtLT5TZXRGdW5jdGlvbkNhbGxDb252KGZ1bmN0aW9uLCBj
b252ZW50aW9uKTsgfQorc3RhdGljIGlubGluZSB2b2lkIGFkZFRhcmdldERlcGVuZGVudEZ1bmN0
aW9uQXR0cihMVmFsdWUgZnVuY3Rpb24sIGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogdmFs
dWUpIHsgbGx2bS0+QWRkVGFyZ2V0RGVwZW5kZW50RnVuY3Rpb25BdHRyKGZ1bmN0aW9uLCBrZXks
IHZhbHVlKTsgfQogCiBzdGF0aWMgaW5saW5lIExWYWx1ZSBhZGRFeHRlcm5GdW5jdGlvbihMTW9k
dWxlIG1vZHVsZSwgY29uc3QgY2hhciogbmFtZSwgTFR5cGUgdHlwZSkKIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTMsOSArNTMsMTAgQEAgdm9pZCBBYnN0cmFjdEhlYXA6OmRlY29y
YXRlSW5zdHJ1Y3Rpb24oTAogICAgIHNldE1ldGFkYXRhKGluc3RydWN0aW9uLCByZXBvc2l0b3J5
Lm1fdGJhYUtpbmQsIHRiYWFNZXRhZGF0YShyZXBvc2l0b3J5KSk7CiB9CiAKLUluZGV4ZWRBYnN0
cmFjdEhlYXA6OkluZGV4ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RI
ZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIqIGhlYXBOYW1lLCBzaXplX3QgZWxlbWVudFNpemUpCitJ
bmRleGVkQWJzdHJhY3RIZWFwOjpJbmRleGVkQWJzdHJhY3RIZWFwKExDb250ZXh0IGNvbnRleHQs
IEFic3RyYWN0SGVhcCogcGFyZW50LCBjb25zdCBjaGFyKiBoZWFwTmFtZSwgcHRyZGlmZl90IG9m
ZnNldCwgc2l6ZV90IGVsZW1lbnRTaXplKQogICAgIDogbV9oZWFwRm9yQW55SW5kZXgocGFyZW50
LCBoZWFwTmFtZSkKICAgICAsIG1faGVhcE5hbWVMZW5ndGgoc3RybGVuKGhlYXBOYW1lKSkKKyAg
ICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fZWxlbWVudFNpemUoZWxlbWVudFNpemUpCiAg
ICAgLCBtX3NjYWxlVGVybSgwKQogICAgICwgbV9jYW5TaGlmdChmYWxzZSkKQEAgLTkzLDcgKzk0
LDcgQEAgVHlwZWRQb2ludGVyIEluZGV4ZWRBYnN0cmFjdEhlYXA6OmJhc2VJbgogICAgIH0gZWxz
ZQogICAgICAgICByZXN1bHQgPSBvdXQuYWRkKGJhc2UsIG91dC5tdWwoaW5kZXgsIG1fc2NhbGVU
ZXJtKSk7CiAgICAgCi0gICAgcmV0dXJuIFR5cGVkUG9pbnRlcihhdEFueUluZGV4KCksIG91dC5h
ZGRQdHIocmVzdWx0LCBvZmZzZXQpKTsKKyAgICByZXR1cm4gVHlwZWRQb2ludGVyKGF0QW55SW5k
ZXgoKSwgb3V0LmFkZFB0cihyZXN1bHQsIG1fb2Zmc2V0ICsgb2Zmc2V0KSk7CiB9CiAKIGNvbnN0
IEFic3RyYWN0RmllbGQmIEluZGV4ZWRBYnN0cmFjdEhlYXA6OmF0U2xvdyhwdHJkaWZmX3QgaW5k
ZXgpCkBAIC0xNjgsMTYgKzE2OSwxNSBAQCB2b2lkIEluZGV4ZWRBYnN0cmFjdEhlYXA6OmluaXRp
YWxpemUoQWJzCiAgICAgICAgICAgICBhY2N1bXVsYXRvciA+Pj0gNDsKICAgICAgICAgfQogICAg
ICAgICAKLSAgICAgICAgZmllbGQuaW5pdGlhbGl6ZSgmbV9oZWFwRm9yQW55SW5kZXgsIGNoYXJh
Y3RlcnMsIHNpZ25lZEluZGV4ICogbV9lbGVtZW50U2l6ZSk7CisgICAgICAgIGZpZWxkLmluaXRp
YWxpemUoJm1faGVhcEZvckFueUluZGV4LCBjaGFyYWN0ZXJzLCBtX29mZnNldCArIHNpZ25lZElu
ZGV4ICogbV9lbGVtZW50U2l6ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotTnVtYmVyZWRBYnN0cmFjdEhlYXA6
Ok51bWJlcmVkQWJzdHJhY3RIZWFwKAotICAgIExDb250ZXh0IGNvbnRleHQsIEFic3RyYWN0SGVh
cCogaGVhcCwgY29uc3QgY2hhciogaGVhcE5hbWUpCi0gICAgOiBtX2luZGV4ZWRIZWFwKGNvbnRl
eHQsIGhlYXAsIGhlYXBOYW1lLCAxKQorTnVtYmVyZWRBYnN0cmFjdEhlYXA6Ok51bWJlcmVkQWJz
dHJhY3RIZWFwKExDb250ZXh0IGNvbnRleHQsIEFic3RyYWN0SGVhcCogaGVhcCwgY29uc3QgY2hh
ciogaGVhcE5hbWUpCisgICAgOiBtX2luZGV4ZWRIZWFwKGNvbnRleHQsIGhlYXAsIGhlYXBOYW1l
LCAwLCAxKQogewogfQogCkBAIC0xODUsOSArMTg1LDggQEAgTnVtYmVyZWRBYnN0cmFjdEhlYXA6
On5OdW1iZXJlZEFic3RyYWN0SAogewogfQogCi1BYnNvbHV0ZUFic3RyYWN0SGVhcDo6QWJzb2x1
dGVBYnN0cmFjdEhlYXAoCi0gICAgTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBoZWFw
LCBjb25zdCBjaGFyKiBoZWFwTmFtZSkKLSAgICA6IG1faW5kZXhlZEhlYXAoY29udGV4dCwgaGVh
cCwgaGVhcE5hbWUsIDEpCitBYnNvbHV0ZUFic3RyYWN0SGVhcDo6QWJzb2x1dGVBYnN0cmFjdEhl
YXAoTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBoZWFwLCBjb25zdCBjaGFyKiBoZWFw
TmFtZSkKKyAgICA6IG1faW5kZXhlZEhlYXAoY29udGV4dCwgaGVhcCwgaGVhcE5hbWUsIDAsIDEp
CiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFw
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXAuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YnN0cmFjdEhlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDcgKzEzOSw3IEBAIHByaXZhdGU6
CiAKIGNsYXNzIEluZGV4ZWRBYnN0cmFjdEhlYXAgewogcHVibGljOgotICAgIEluZGV4ZWRBYnN0
cmFjdEhlYXAoTENvbnRleHQsIEFic3RyYWN0SGVhcCogcGFyZW50LCBjb25zdCBjaGFyKiBoZWFw
TmFtZSwgc2l6ZV90IGVsZW1lbnRTaXplKTsKKyAgICBJbmRleGVkQWJzdHJhY3RIZWFwKExDb250
ZXh0LCBBYnN0cmFjdEhlYXAqIHBhcmVudCwgY29uc3QgY2hhciogaGVhcE5hbWUsIHB0cmRpZmZf
dCBvZmZzZXQsIHNpemVfdCBlbGVtZW50U2l6ZSk7CiAgICAgfkluZGV4ZWRBYnN0cmFjdEhlYXAo
KTsKICAgICAKICAgICBjb25zdCBBYnN0cmFjdEhlYXAmIGF0QW55SW5kZXgoKSBjb25zdCB7IHJl
dHVybiBtX2hlYXBGb3JBbnlJbmRleDsgfQpAQCAtMTY4LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAK
ICAgICBBYnN0cmFjdEhlYXAgbV9oZWFwRm9yQW55SW5kZXg7CiAgICAgc2l6ZV90IG1faGVhcE5h
bWVMZW5ndGg7CisgICAgcHRyZGlmZl90IG1fb2Zmc2V0OwogICAgIHNpemVfdCBtX2VsZW1lbnRT
aXplOwogICAgIExWYWx1ZSBtX3NjYWxlVGVybTsKICAgICBib29sIG1fY2FuU2hpZnQ7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3
LDcgKzQ3LDcgQEAgQWJzdHJhY3RIZWFwUmVwb3NpdG9yeTo6QWJzdHJhY3RIZWFwUmVwbwogICAg
IAogICAgICwgSlNDZWxsX2ZyZWVMaXN0TmV4dChKU0NlbGxfc3RydWN0dXJlKQogICAgIAotI2Rl
ZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElBTElaQVRJT04obmFtZSwgc2l6ZSkgLCBu
YW1lKGNvbnRleHQsICZyb290LCAjbmFtZSwgc2l6ZSkKKyNkZWZpbmUgSU5ERVhFRF9BQlNUUkFD
VF9IRUFQX0lOSVRJQUxJWkFUSU9OKG5hbWUsIG9mZnNldCwgc2l6ZSkgLCBuYW1lKGNvbnRleHQs
ICZyb290LCAjbmFtZSwgb2Zmc2V0LCBzaXplKQogICAgIEZPUl9FQUNIX0lOREVYRURfQUJTVFJB
Q1RfSEVBUChJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElBTElaQVRJT04pCiAjdW5kZWYgSU5E
RVhFRF9BQlNUUkFDVF9IRUFQX0lOSVRJQUxJWkFUSU9OCiAgICAgCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAko
cmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDExICs0OCwxNSBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSlNBcnJheUJ1ZmZlclZpZXdf
bW9kZSwgSlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mTW9kZSgpKSBcCiAgICAgbWFjcm8oSlNB
cnJheUJ1ZmZlclZpZXdfdmVjdG9yLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZWZWN0b3Io
KSkgXAogICAgIG1hY3JvKEpTQ2VsbF9zdHJ1Y3R1cmUsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0
KCkpIFwKKyAgICBtYWNybyhKU0Z1bmN0aW9uX2V4ZWN1dGFibGUsIEpTRnVuY3Rpb246Om9mZnNl
dE9mRXhlY3V0YWJsZSgpKSBcCisgICAgbWFjcm8oSlNGdW5jdGlvbl9zY29wZSwgSlNGdW5jdGlv
bjo6b2Zmc2V0T2ZTY29wZUNoYWluKCkpIFwKICAgICBtYWNybyhKU09iamVjdF9idXR0ZXJmbHks
IEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSkgXAogICAgIG1hY3JvKEpTU2NvcGVfbmV4dCwg
SlNTY29wZTo6b2Zmc2V0T2ZOZXh0KCkpIFwKKyAgICBtYWNybyhKU1N0cmluZ19mbGFncywgSlNT
dHJpbmc6Om9mZnNldE9mRmxhZ3MoKSkgXAogICAgIG1hY3JvKEpTU3RyaW5nX2xlbmd0aCwgSlNT
dHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkpIFwKICAgICBtYWNybyhKU1N0cmluZ192YWx1ZSwgSlNT
dHJpbmc6Om9mZnNldE9mVmFsdWUoKSkgXAogICAgIG1hY3JvKEpTVmFyaWFibGVPYmplY3RfcmVn
aXN0ZXJzLCBKU1ZhcmlhYmxlT2JqZWN0OjpvZmZzZXRPZlJlZ2lzdGVycygpKSBcCisgICAgbWFj
cm8oSlNXcmFwcGVyT2JqZWN0X2ludGVybmFsVmFsdWUsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJu
YWxWYWx1ZU9mZnNldCgpKSBcCiAgICAgbWFjcm8oTWFya2VkQWxsb2NhdG9yX2ZyZWVMaXN0SGVh
ZCwgTWFya2VkQWxsb2NhdG9yOjpvZmZzZXRPZkZyZWVMaXN0SGVhZCgpKSBcCiAgICAgbWFjcm8o
TWFya2VkQmxvY2tfbWFya0JpdHMsIE1hcmtlZEJsb2NrOjpvZmZzZXRPZk1hcmtzKCkpIFwKICAg
ICBtYWNybyhTdHJpbmdJbXBsX2RhdGEsIFN0cmluZ0ltcGw6OmRhdGFPZmZzZXQoKSkgXApAQCAt
NjQsMTQgKzY4LDE1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNy
byhTdHJ1Y3R1cmVfdHlwZUluZm9UeXBlLCBTdHJ1Y3R1cmU6OnR5cGVJbmZvVHlwZU9mZnNldCgp
KQogCiAjZGVmaW5lIEZPUl9FQUNIX0lOREVYRURfQUJTVFJBQ1RfSEVBUChtYWNybykgXAotICAg
IG1hY3JvKGNoYXJhY3RlcnM4LCBzaXplb2YoTENoYXIpKSBcCi0gICAgbWFjcm8oY2hhcmFjdGVy
czE2LCBzaXplb2YoVUNoYXIpKSBcCi0gICAgbWFjcm8oaW5kZXhlZEludDMyUHJvcGVydGllcywg
c2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAotICAgIG1hY3JvKGluZGV4ZWREb3VibGVQcm9wZXJ0
aWVzLCBzaXplb2YoZG91YmxlKSkgXAotICAgIG1hY3JvKGluZGV4ZWRDb250aWd1b3VzUHJvcGVy
dGllcywgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAotICAgIG1hY3JvKGluZGV4ZWRBcnJheVN0
b3JhZ2VQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCi0gICAgbWFjcm8oc2lu
Z2xlQ2hhcmFjdGVyU3RyaW5ncywgc2l6ZW9mKEpTU3RyaW5nKikpIFwKLSAgICBtYWNybyh2YXJp
YWJsZXMsIHNpemVvZihSZWdpc3RlcikpCisgICAgbWFjcm8oSlNSb3BlU3RyaW5nX2ZpYmVycywg
SlNSb3BlU3RyaW5nOjpvZmZzZXRPZkZpYmVycygpLCBzaXplb2YoV3JpdGVCYXJyaWVyPEpTU3Ry
aW5nPikpIFwKKyAgICBtYWNybyhjaGFyYWN0ZXJzOCwgMCwgc2l6ZW9mKExDaGFyKSkgXAorICAg
IG1hY3JvKGNoYXJhY3RlcnMxNiwgMCwgc2l6ZW9mKFVDaGFyKSkgXAorICAgIG1hY3JvKGluZGV4
ZWRJbnQzMlByb3BlcnRpZXMsIDAsIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKKyAgICBtYWNy
byhpbmRleGVkRG91YmxlUHJvcGVydGllcywgMCwgc2l6ZW9mKGRvdWJsZSkpIFwKKyAgICBtYWNy
byhpbmRleGVkQ29udGlndW91c1Byb3BlcnRpZXMsIDAsIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkp
IFwKKyAgICBtYWNybyhpbmRleGVkQXJyYXlTdG9yYWdlUHJvcGVydGllcywgMCwgc2l6ZW9mKEVu
Y29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKHNpbmdsZUNoYXJhY3RlclN0cmluZ3MsIDAsIHNp
emVvZihKU1N0cmluZyopKSBcCisgICAgbWFjcm8odmFyaWFibGVzLCAwLCBzaXplb2YoUmVnaXN0
ZXIpKQogICAgIAogI2RlZmluZSBGT1JfRUFDSF9OVU1CRVJFRF9BQlNUUkFDVF9IRUFQKG1hY3Jv
KSBcCiAgICAgbWFjcm8ocHJvcGVydGllcykKQEAgLTk3LDcgKzEwMiw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICBBYnN0cmFjdEZpZWxkJiBKU0NlbGxfZnJlZUxpc3ROZXh0OwogICAgIAotI2RlZmlu
ZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfREVDTEFSQVRJT04obmFtZSwgc2l6ZSkgSW5kZXhlZEFi
c3RyYWN0SGVhcCBuYW1lOworI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfREVDTEFSQVRJ
T04obmFtZSwgb2Zmc2V0LCBzaXplKSBJbmRleGVkQWJzdHJhY3RIZWFwIG5hbWU7CiAgICAgRk9S
X0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKElOREVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJB
VElPTikKICN1bmRlZiBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfREVDTEFSQVRJT04KICAgICAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3Zl
cnkuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBdmFp
bGFibGVSZWNvdmVyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCIKKworI2lmIEVOQUJMRShGVExf
SklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK3ZvaWQgQXZhaWxhYmxl
UmVjb3Zlcnk6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBvdXQucHJpbnQo
bm9kZSgpLCAiID0+ICIsIG9wY29kZSgpLCAiLCAiLCBSYXdQb2ludGVyKG1fbGVmdCksICIsICIs
IFJhd1BvaW50ZXIobV9yaWdodCksICIsICIsIG1fZm9ybWF0KTsKK30KKworfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZUTEF2YWlsYWJsZVJlY292ZXJ5X2gK
KyNkZWZpbmUgRlRMQXZhaWxhYmxlUmVjb3ZlcnlfaAorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisK
KyNpbmNsdWRlICJERkdOb2RlLmgiCisjaW5jbHVkZSAiRlRMQWJicmV2aWF0ZWRUeXBlcy5oIgor
I2luY2x1ZGUgIkZUTFJlY292ZXJ5T3Bjb2RlLmgiCisjaW5jbHVkZSAiRlRMVmFsdWVGb3JtYXQu
aCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitjbGFzcyBBdmFpbGFibGVS
ZWNvdmVyeSB7CitwdWJsaWM6CisgICAgQXZhaWxhYmxlUmVjb3ZlcnkoKQorICAgICAgICA6IG1f
bm9kZSgwKQorICAgICAgICAsIG1fZm9ybWF0KEludmFsaWRWYWx1ZUZvcm1hdCkKKyAgICAgICAg
LCBtX29wY29kZShBZGRSZWNvdmVyeSkKKyAgICAgICAgLCBtX2xlZnQoMCkKKyAgICAgICAgLCBt
X3JpZ2h0KDApCisgICAgeworICAgIH0KKyAgICAKKyAgICBBdmFpbGFibGVSZWNvdmVyeShERkc6
Ok5vZGUqIG5vZGUsIFJlY292ZXJ5T3Bjb2RlIG9wY29kZSwgTFZhbHVlIGxlZnQsIExWYWx1ZSBy
aWdodCwgVmFsdWVGb3JtYXQgZm9ybWF0KQorICAgICAgICA6IG1fbm9kZShub2RlKQorICAgICAg
ICAsIG1fZm9ybWF0KGZvcm1hdCkKKyAgICAgICAgLCBtX29wY29kZShvcGNvZGUpCisgICAgICAg
ICwgbV9sZWZ0KGxlZnQpCisgICAgICAgICwgbV9yaWdodChyaWdodCkKKyAgICB7CisgICAgfQor
ICAgIAorICAgIERGRzo6Tm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9kZTsgfQorICAg
IFZhbHVlRm9ybWF0IGZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9ybWF0OyB9CisgICAgUmVj
b3ZlcnlPcGNvZGUgb3Bjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGNvZGU7IH0KKyAgICBMVmFs
dWUgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQorICAgIExWYWx1ZSByaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0KKyAgICAKKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0m
KSBjb25zdDsKKyAgICAKK3ByaXZhdGU6CisgICAgREZHOjpOb2RlKiBtX25vZGU7CisgICAgVmFs
dWVGb3JtYXQgbV9mb3JtYXQ7CisgICAgUmVjb3ZlcnlPcGNvZGUgbV9vcGNvZGU7CisgICAgTFZh
bHVlIG1fbGVmdDsKKyAgICBMVmFsdWUgbV9yaWdodDsKK307CisKK30gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMQXZh
aWxhYmxlUmVjb3ZlcnlfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDYXBhYmlsaXRpZXMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMy
LDExIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAogdXNpbmcgbmFtZXNwYWNl
IERGRzsKIAorc3RhdGljIGJvb2wgdmVyYm9zZUNhcGFiaWxpdGllcygpCit7CisgICAgcmV0dXJu
IHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSB8fCBPcHRpb25zOjp2ZXJib3NlRlRMRmFpbHVy
ZSgpOworfQorCiBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkK
IHsKICAgICAvLyBOT1RFOiBJZiB3ZSBldmVyIGhhdmUgcGhhbnRvbSBhcmd1bWVudHMsIHdlIGNh
biBjb21waWxlIHRoZW0gYnV0IHdlIGNhbm5vdApAQCAtNzcsNiArODIsOSBAQCBpbmxpbmUgQ2Fw
YWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogCiAgICAgY2FzZSBBcml0aE1pbjoKICAgICBj
YXNlIEFyaXRoTWF4OgogICAgIGNhc2UgQXJpdGhBYnM6CisgICAgY2FzZSBBcml0aFNpbjoKKyAg
ICBjYXNlIEFyaXRoQ29zOgorICAgIGNhc2UgQXJpdGhTcXJ0OgogICAgIGNhc2UgQXJpdGhOZWdh
dGU6CiAgICAgY2FzZSBVSW50MzJUb051bWJlcjoKICAgICBjYXNlIEludDMyVG9Eb3VibGU6CkBA
IC04OCw4ICs5Niw2IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiAK
ICAgICBjYXNlIFVwc2lsb246CiAgICAgY2FzZSBFeHRyYWN0T1NSRW50cnlMb2NhbDoKICAgICBj
YXNlIExvb3BIaW50OgotICAgIGNhc2UgQ2FsbDoKLSAgICBjYXNlIENvbnN0cnVjdDoKICAgICBj
YXNlIEdldE15U2NvcGU6CiAgICAgY2FzZSBTa2lwU2NvcGU6CiAgICAgY2FzZSBHZXRDbG9zdXJl
UmVnaXN0ZXJzOgpAQCAtMTA4LDE1ICsxMTQsMjcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBj
YW5Db21waWxlKE5vZGUqIAogICAgIGNhc2UgU3RvcmVCYXJyaWVyOgogICAgIGNhc2UgQ29uZGl0
aW9uYWxTdG9yZUJhcnJpZXI6CiAgICAgY2FzZSBTdG9yZUJhcnJpZXJXaXRoTnVsbENoZWNrOgor
ICAgIGNhc2UgQ2FsbDoKKyAgICBjYXNlIENvbnN0cnVjdDoKICAgICBjYXNlIFZhbHVlVG9JbnQz
MjoKICAgICBjYXNlIEJyYW5jaDoKICAgICBjYXNlIExvZ2ljYWxOb3Q6CiAgICAgY2FzZSBDaGVj
a0luQm91bmRzOgogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKICAgICBjYXNlIENo
ZWNrOgorICAgIGNhc2UgQ291bnRFeGVjdXRpb246CisgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6
CisgICAgY2FzZSBHZXRTY29wZToKKyAgICBjYXNlIEFsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2lu
dDoKKyAgICBjYXNlIENoZWNrQXJndW1lbnRzTm90Q3JlYXRlZDoKKyAgICBjYXNlIEdldENhbGxl
ZToKKyAgICBjYXNlIFRvU3RyaW5nOgorICAgIGNhc2UgTWFrZVJvcGU6CisgICAgY2FzZSBOZXdB
cnJheVdpdGhTaXplOgogICAgICAgICAvLyBUaGVzZSBhcmUgT0suCiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgR2V0QnlJZDoKKyAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CiAgICAgY2FzZSBQdXRC
eUlkOgogICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UpCiAg
ICAgICAgICAgICBicmVhazsKQEAgLTIzNyw4ICsyNTUsMTcgQEAgaW5saW5lIENhcGFiaWxpdHlM
ZXZlbCBjYW5Db21waWxlKE5vZGUqIAogQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgm
IGdyYXBoKQogewogICAgIGlmIChncmFwaC5tX2NvZGVCbG9jay0+Y29kZVR5cGUoKSAhPSBGdW5j
dGlvbkNvZGUpIHsKLSAgICAgICAgaWYgKHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkKLSAg
ICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3RpbmcgY29kZSBibG9jayB0aGF0IGRvZXNuJ3Qg
YmVsb25nIHRvIGEgZnVuY3Rpb24uXG4iKTsKKyAgICAgICAgaWYgKHZlcmJvc2VDYXBhYmlsaXRp
ZXMoKSkKKyAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3RpbmcgIiwgKmdyYXBoLm1fY29k
ZUJsb2NrLCAiIGJlY2F1c2UgaXQgZG9lc24ndCBiZWxvbmcgdG8gYSBmdW5jdGlvbi5cbiIpOwor
ICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKKyAgICB9CisgICAgCisgICAgaWYgKGdyYXBo
Lm1fY29kZUJsb2NrLT5uZWVkc0FjdGl2YXRpb24oKSkgeworICAgICAgICAvLyBOZWVkIHRoaXMg
YmVjYXVzZSBhbHRob3VnaCB3ZSBhbHNvIGRvbid0IHN1cHBvcnQKKyAgICAgICAgLy8gQ3JlYXRl
QWN0aXZhdGlvbi9UZWFyT2ZmQWN0aXZhdGlvbiwgd2UgbWlnaHQgbm90IHNlZSB0aG9zZSBub2Rl
cyBpbiBjYXNlIG9mCisgICAgICAgIC8vIE9TUiBlbnRyeS4KKyAgICAgICAgaWYgKHZlcmJvc2VD
YXBhYmlsaXRpZXMoKSkKKyAgICAgICAgICAgIGRhdGFMb2coIkZUTCByZWplY3RpbmcgIiwgKmdy
YXBoLm1fY29kZUJsb2NrLCAiIGJlY2F1c2UgaXQgdXNlcyBhY3RpdmF0aW9ucy5cbiIpOwogICAg
ICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKICAgICB9CiAgICAgCkBAIC0yNzQsMTMgKzMwMSwx
NyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgICAg
ICAgICAgY2FzZSBPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBPYmplY3RPck90aGVy
VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nVXNlOgorICAgICAgICAgICAgICAgIGNh
c2UgS25vd25TdHJpbmdVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6
CisgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAg
ICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNlOgorICAgICAgICAgICAgICAgIGNhc2UgTm90Q2Vs
bFVzZToKICAgICAgICAgICAgICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAg
ICAgICAvLyBEb24ndCBrbm93IGhvdyB0byBoYW5kbGUgYW55dGhpbmcgZWxzZS4KLSAgICAgICAg
ICAgICAgICAgICAgaWYgKHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyBub2RlIGJlY2F1c2Ugb2YgYmFk
IHVzZSBraW5kOiAiLCBlZGdlLnVzZUtpbmQoKSwgIiBpbiBub2RlOlxuIik7CisgICAgICAgICAg
ICAgICAgICAgIGlmICh2ZXJib3NlQ2FwYWJpbGl0aWVzKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRhdGFMb2coIkZUTCByZWplY3Rpbmcgbm9kZSBpbiAiLCAqZ3JhcGgubV9jb2RlQmxv
Y2ssICIgYmVjYXVzZSBvZiBiYWQgdXNlIGtpbmQ6ICIsIGVkZ2UudXNlS2luZCgpLCAiIGluIG5v
ZGU6XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoLmR1bXAoV1RGOjpkYXRhRmls
ZSgpLCAiICAgICIsIG5vZGUpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwpAQCAtMjg5LDggKzMyMCw4IEBAIENhcGFiaWxp
dHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgc3dpdGNoIChjYW5Db21waWxlKG5vZGUpKSB7CiAgICAgICAgICAgICBjYXNlIENhbm5vdENv
bXBpbGU6IAotICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyBub2RlOlxuIik7
CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2VDYXBhYmlsaXRpZXMoKSkgeworICAgICAgICAg
ICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5nIG5vZGUgaW4gIiwgKmdyYXBoLm1fY29k
ZUJsb2NrLCAiOlxuIik7CiAgICAgICAgICAgICAgICAgICAgIGdyYXBoLmR1bXAoV1RGOjpkYXRh
RmlsZSgpLCAiICAgICIsIG5vZGUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ29tbW9uVmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjEsNiAr
NjEsOCBAQCBDb21tb25WYWx1ZXM6OkNvbW1vblZhbHVlcyhMQ29udGV4dCBjb250CiAgICAgLCBp
bnRQdHJFaWdodChjb25zdEludChpbnRQdHIsIDgsIFNpZ25FeHRlbmQpKQogICAgICwgaW50UHRy
UHRyKGNvbnN0SW50KGludFB0ciwgc2l6ZW9mKHZvaWQqKSwgU2lnbkV4dGVuZCkpCiAgICAgLCBk
b3VibGVaZXJvKGNvbnN0UmVhbChkb3VibGVUeXBlLCAwKSkKKyAgICAsIHJhbmdlS2luZChtZEtp
bmRJRChjb250ZXh0LCAicmFuZ2UiKSkKKyAgICAsIG5vbk5lZ2F0aXZlSW50MzIoY29uc3RJbnQo
aW50MzIsIDAsIFNpZ25FeHRlbmQpLCBjb25zdEludChpbnQzMiwgMWxsIDw8IDMxLCBTaWduRXh0
ZW5kKSkKICAgICAsIG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9tb2R1bGUoMCkKIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21tb25WYWx1ZXMuaAkocmV2aXNp
b24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21tb25WYWx1ZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBAQAogI2lmIEVOQUJMRShGVExfSklUKQogCiAj
aW5jbHVkZSAiRlRMQWJicmV2aWF0aW9ucy5oIgorI2luY2x1ZGUgIkZUTFZhbHVlUmFuZ2UuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCkBAIC03NCw2ICs3NSwxMCBAQCBw
dWJsaWM6CiAgICAgY29uc3QgTFZhbHVlIGludFB0clB0cjsKICAgICBjb25zdCBMVmFsdWUgZG91
YmxlWmVybzsKICAgICAKKyAgICBjb25zdCB1bnNpZ25lZCByYW5nZUtpbmQ7CisgICAgCisgICAg
Y29uc3QgVmFsdWVSYW5nZSBub25OZWdhdGl2ZUludDMyOworICAgIAogICAgIExDb250ZXh0IGNv
bnN0IG1fY29udGV4dDsKICAgICBMTW9kdWxlIG1fbW9kdWxlOwogfTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgIkZUTElubGluZUNhY2hlU2l6ZS5oIgogI2luY2x1ZGUgIkZU
TEpJVENvZGUuaCIKICNpbmNsdWRlICJGVExUaHVua3MuaCIKKyNpbmNsdWRlICJGVExVbndpbmRJ
bmZvLmgiCiAjaW5jbHVkZSAiSklUU3R1YnMuaCIKICNpbmNsdWRlICJMTFZNQVBJLmgiCiAjaW5j
bHVkZSAiTGlua0J1ZmZlci5oIgpAQCAtNDksNyArNTAsNiBAQCB1c2luZyBuYW1lc3BhY2UgREZH
Owogc3RhdGljIHVpbnQ4X3QqIG1tQWxsb2NhdGVDb2RlU2VjdGlvbigKICAgICB2b2lkKiBvcGFx
dWVTdGF0ZSwgdWludHB0cl90IHNpemUsIHVuc2lnbmVkIGFsaWdubWVudCwgdW5zaWduZWQsIGNv
bnN0IGNoYXIqIHNlY3Rpb25OYW1lKQogewotICAgIAogICAgIFN0YXRlJiBzdGF0ZSA9ICpzdGF0
aWNfY2FzdDxTdGF0ZSo+KG9wYXF1ZVN0YXRlKTsKICAgICAKICAgICBSRUxFQVNFX0FTU0VSVChh
bGlnbm1lbnQgPD0gaml0QWxsb2NhdGlvbkdyYW51bGUpOwpAQCAtNTgsNiArNTgsMTEgQEAgc3Rh
dGljIHVpbnQ4X3QqIG1tQWxsb2NhdGVDb2RlU2VjdGlvbigKICAgICAgICAgc3RhdGUuZ3JhcGgu
bV92bS5leGVjdXRhYmxlQWxsb2NhdG9yLmFsbG9jYXRlKAogICAgICAgICAgICAgc3RhdGUuZ3Jh
cGgubV92bSwgc2l6ZSwgc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVz
dFN1Y2NlZWQpOwogICAgIAorICAgIGlmICghc3RyY21wKHNlY3Rpb25OYW1lLCAiX19jb21wYWN0
X3Vud2luZCIpKSB7CisgICAgICAgIHN0YXRlLmNvbXBhY3RVbndpbmQgPSByZXN1bHQtPnN0YXJ0
KCk7CisgICAgICAgIHN0YXRlLmNvbXBhY3RVbndpbmRTaXplID0gcmVzdWx0LT5zaXplSW5CeXRl
cygpOworICAgIH0KKyAgICAKICAgICBzdGF0ZS5qaXRDb2RlLT5hZGRIYW5kbGUocmVzdWx0KTsK
ICAgICBzdGF0ZS5jb2RlU2VjdGlvbk5hbWVzLmFwcGVuZChzZWN0aW9uTmFtZSk7CiAgICAgCkBA
IC0xNDksOCArMTU0LDYzIEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFw
cygKICAgICBTdGF0ZSYgc3RhdGUsIENvZGVCbG9jayogY29kZUJsb2NrLCBKSVRDb2RlKiBqaXRD
b2RlLCBHZW5lcmF0ZWRGdW5jdGlvbiBnZW5lcmF0ZWRGdW5jdGlvbiwKICAgICBTdGFja01hcHM6
OlJlY29yZE1hcCYgcmVjb3JkTWFwKQogewotICAgIFZNJiB2bSA9IHN0YXRlLmdyYXBoLm1fdm07
CisgICAgR3JhcGgmIGdyYXBoID0gc3RhdGUuZ3JhcGg7CisgICAgVk0mIHZtID0gZ3JhcGgubV92
bTsKICAgICBTdGFja01hcHMgc3RhY2ttYXBzID0gaml0Q29kZS0+c3RhY2ttYXBzOworICAgIAor
ICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQo
c3RhdGUuY2FwdHVyZWRTdGFja21hcElEKTsKKyAgICBSRUxFQVNFX0FTU0VSVChpdGVyICE9IHJl
Y29yZE1hcC5lbmQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoaXRlci0+dmFsdWUubG9jYXRpb25z
LnNpemUoKSA9PSAxKTsKKyAgICBMb2NhdGlvbiBjYXB0dXJlZExvY2F0aW9uID0KKyAgICAgICAg
TG9jYXRpb246OmZvclN0YWNrbWFwcygmaml0Q29kZS0+c3RhY2ttYXBzLCBpdGVyLT52YWx1ZS5s
b2NhdGlvbnNbMF0pOworICAgIFJFTEVBU0VfQVNTRVJUKGNhcHR1cmVkTG9jYXRpb24ua2luZCgp
ID09IExvY2F0aW9uOjpSZWdpc3Rlcik7CisgICAgUkVMRUFTRV9BU1NFUlQoY2FwdHVyZWRMb2Nh
dGlvbi5ncHIoKSA9PSBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgUkVMRUFTRV9B
U1NFUlQoIShjYXB0dXJlZExvY2F0aW9uLmFkZGVuZCgpICUgc2l6ZW9mKFJlZ2lzdGVyKSkpOwor
ICAgIGludDMyX3QgbG9jYWxzT2Zmc2V0ID0gY2FwdHVyZWRMb2NhdGlvbi5hZGRlbmQoKSAvIHNp
emVvZihSZWdpc3RlcikgKyBncmFwaC5tX25leHRNYWNoaW5lTG9jYWw7CisgICAgCisgICAgZm9y
ICh1bnNpZ25lZCBpID0gZ3JhcGgubV9pbmxpbmVWYXJpYWJsZURhdGEuc2l6ZSgpOyBpLS07KSB7
CisgICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lID0gZ3JhcGgubV9pbmxp
bmVWYXJpYWJsZURhdGFbaV0uaW5saW5lQ2FsbEZyYW1lOworICAgICAgICAKKyAgICAgICAgaWYg
KGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzUmVnaXN0ZXIuaXNWYWxpZCgpKSB7CisgICAgICAg
ICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1JlZ2lzdGVyID0gVmlydHVhbFJlZ2lzdGVy
KAorICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzUmVnaXN0ZXIub2Zm
c2V0KCkgKyBsb2NhbHNPZmZzZXQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3Ig
KHVuc2lnbmVkIGFyZ3VtZW50ID0gaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHMuc2l6ZSgpOyBh
cmd1bWVudC0tID4gMTspIHsKKyAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRz
W2FyZ3VtZW50XSA9CisgICAgICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNb
YXJndW1lbnRdLndpdGhMb2NhbHNPZmZzZXQobG9jYWxzT2Zmc2V0KTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCkgeworICAg
ICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVSZWNvdmVyeSA9CisgICAgICAgICAgICAg
ICAgaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVSZWNvdmVyeS53aXRoTG9jYWxzT2Zmc2V0KGxvY2Fs
c09mZnNldCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaWYgKGNvZGVCbG9jay0+dXNl
c0FyZ3VtZW50cygpKSB7CisgICAgICAgIGNvZGVCbG9jay0+c2V0QXJndW1lbnRzUmVnaXN0ZXIo
CisgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIoY29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3Rl
cigpLm9mZnNldCgpICsgbG9jYWxzT2Zmc2V0KSk7CisgICAgfQorCisgICAgeworICAgICAgICBD
Q2FsbEhlbHBlcnMgY2hlY2tKSVQoJnZtLCBjb2RlQmxvY2spOworICAgICAgICAKKyAgICAgICAg
Ly8gQXQgdGhpcyBwb2ludCBpdCdzIHBlcmZlY3RseSBmYWlyIHRvIGp1c3QgYmxvdyBhd2F5IGFs
bCBzdGF0ZSBhbmQgcmVzdG9yZSB0aGUKKyAgICAgICAgLy8gSlMgSklUIHZpZXcgb2YgdGhlIHVu
aXZlcnNlLgorICAgICAgICBjaGVja0pJVC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
NjQoVGFnVHlwZU51bWJlciksIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CisgICAg
ICAgIGNoZWNrSklULm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02NChUYWdNYXNrKSwg
R1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKTsKKyAgICAgICAgCisgICAgICAgIGNoZWNrSklULm1v
dmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJnZtKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKKyAgICAgICAgY2hlY2tKSVQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
R1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bCA9IGNoZWNrSklULmNhbGwoKTsKKyAgICAgICAgY2hlY2tKSVQuanVtcFRvRXhjZXB0aW9uSGFu
ZGxlcigpOworICAgICAgICAKKyAgICAgICAgT3duUHRyPExpbmtCdWZmZXI+IGxpbmtCdWZmZXIg
PSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcigKKyAgICAgICAgICAgIHZtLCAmY2hlY2tKSVQsIGNv
ZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOworICAgICAgICBsaW5rQnVmZmVy
LT5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyKGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpKTsKKyAgICAg
ICAgCisgICAgICAgIHN0YXRlLmZpbmFsaXplci0+aGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXIg
PSBsaW5rQnVmZmVyLnJlbGVhc2UoKTsKKyAgICB9CiAKICAgICBFeGl0VGh1bmtHZW5lcmF0b3Ig
ZXhpdFRodW5rR2VuZXJhdG9yKHN0YXRlKTsKICAgICBleGl0VGh1bmtHZW5lcmF0b3IuZW1pdFRo
dW5rcygpOwpAQCAtMTY2LDE2ICsyMjYsMzAgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNl
ZE9uU3RhY2tNYXBzKAogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVy
Ym9zZUNvbXBpbGF0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiSGFuZGxpbmcgT1NS
IHN0YWNrbWFwICMiLCBleGl0Lm1fc3RhY2ttYXBJRCwgIiBmb3IgIiwgZXhpdC5tX2NvZGVPcmln
aW4sICJcbiIpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBTdGFja01hcHM6OlJlY29yZE1h
cDo6aXRlcmF0b3IgaXRlciA9IHJlY29yZE1hcC5maW5kKGV4aXQubV9zdGFja21hcElEKTsKKwor
ICAgICAgICAgICAgaXRlciA9IHJlY29yZE1hcC5maW5kKGV4aXQubV9zdGFja21hcElEKTsKICAg
ICAgICAgICAgIGlmIChpdGVyID09IHJlY29yZE1hcC5lbmQoKSkgewogICAgICAgICAgICAgICAg
IC8vIEl0IHdhcyBvcHRpbWl6ZWQgb3V0LgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpbmZvLm1fdGh1bmtBZGRyZXNz
ID0gbGlua0J1ZmZlci0+bG9jYXRpb25PZihpbmZvLm1fdGh1bmtMYWJlbCk7Ci0gICAgICAgICAg
ICAKICAgICAgICAgICAgIGV4aXQubV9wYXRjaGFibGVDb2RlT2Zmc2V0ID0gbGlua0J1ZmZlci0+
b2Zmc2V0T2YoaW5mby5tX3RodW5rSnVtcCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaiA9IGV4aXQubV92YWx1ZXMuc2l6ZSgpOyBqLS07KSB7CisgICAgICAgICAg
ICAgICAgRXhpdFZhbHVlIHZhbHVlID0gZXhpdC5tX3ZhbHVlc1tqXTsKKyAgICAgICAgICAgICAg
ICBpZiAoIXZhbHVlLmlzSW5KU1N0YWNrU29tZWhvdygpKQorICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoIXZhbHVlLnZpcnR1YWxSZWdpc3RlcigpLmlz
TG9jYWwoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAg
ZXhpdC5tX3ZhbHVlc1tqXSA9IHZhbHVlLndpdGhWaXJ0dWFsUmVnaXN0ZXIoCisgICAgICAgICAg
ICAgICAgICAgIFZpcnR1YWxSZWdpc3Rlcih2YWx1ZS52aXJ0dWFsUmVnaXN0ZXIoKS5vZmZzZXQo
KSArIGxvY2Fsc09mZnNldCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAg
ICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkpIHsKKyAgICAgICAgICAgICAg
ICBEdW1wQ29udGV4dCBjb250ZXh0OworICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBFeGl0
IHZhbHVlczogIiwgaW5Db250ZXh0KGV4aXQubV92YWx1ZXMsICZjb250ZXh0KSwgIlxuIik7Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRlLmZpbmFsaXpl
ci0+ZXhpdFRodW5rc0xpbmtCdWZmZXIgPSBsaW5rQnVmZmVyLnJlbGVhc2UoKTsKQEAgLTE4NCwx
MyArMjU4LDE1IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAg
ICBpZiAoIXN0YXRlLmdldEJ5SWRzLmlzRW1wdHkoKSB8fCAhc3RhdGUucHV0QnlJZHMuaXNFbXB0
eSgpKSB7CiAgICAgICAgIENDYWxsSGVscGVycyBzbG93UGF0aEpJVCgmdm0sIGNvZGVCbG9jayk7
CiAgICAgICAgIAorICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGV4Y2VwdGlvblRhcmdl
dDsKKyAgICAgICAgCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXRlLmdldEJ5SWRzLnNp
emUoKTsgaS0tOykgewogICAgICAgICAgICAgR2V0QnlJZERlc2NyaXB0b3ImIGdldEJ5SWQgPSBz
dGF0ZS5nZXRCeUlkc1tpXTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKE9wdGlvbnM6
OnZlcmJvc2VDb21waWxhdGlvbigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhhbmRsaW5n
IEdldEJ5SWQgc3RhY2ttYXAgIyIsIGdldEJ5SWQuc3RhY2ttYXBJRCgpLCAiXG4iKTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIg
PSByZWNvcmRNYXAuZmluZChnZXRCeUlkLnN0YWNrbWFwSUQoKSk7CisgICAgICAgICAgICBpdGVy
ID0gcmVjb3JkTWFwLmZpbmQoZ2V0QnlJZC5zdGFja21hcElEKCkpOwogICAgICAgICAgICAgaWYg
KGl0ZXIgPT0gcmVjb3JkTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gSXQgd2FzIG9w
dGltaXplZCBvdXQuCiAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC0yMDIsMTggKzI3OCwx
NyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAg
ICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6OmFsbFJlZ2lzdGVycygp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBHUFJSZWcgcmVzdWx0ID0gcmVjb3JkLmxvY2F0
aW9uc1swXS5kaXJlY3RHUFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3Rl
ciA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCk7Ci0gICAgICAgICAgICBHUFJSZWcg
YmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMl0uZGlyZWN0R1BSKCk7CisgICAgICAgICAgICBHUFJS
ZWcgYmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BSKCk7CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICAgICAgICAgIGNv
ZGVCbG9jaywgZ2V0QnlJZC5jb2RlT3JpZ2luKCksIHVzZWRSZWdpc3RlcnMsIGNhbGxGcmFtZVJl
Z2lzdGVyLAotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2UpLCBKU1ZhbHVlUmVncyhy
ZXN1bHQpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgY29kZUJsb2NrLCBnZXRCeUlkLmNvZGVP
cmlnaW4oKSwgdXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MoYmFzZSksCisgICAgICAgICAgICAg
ICAgSlNWYWx1ZVJlZ3MocmVzdWx0KSwgZmFsc2UpOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgYmVnaW4gPSBzbG93UGF0aEpJVC5sYWJlbCgpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gY2FsbE9w
ZXJhdGlvbigKLSAgICAgICAgICAgICAgICBzdGF0ZSwgdXNlZFJlZ2lzdGVycywgc2xvd1BhdGhK
SVQsIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgcmVzdWx0LAotICAgICAgICAgICAgICAgIGNh
bGxGcmFtZVJlZ2lzdGVyLCBnZW4uc3R1YkluZm8oKSwgYmFzZSwgZ2V0QnlJZC51aWQoKSk7Cisg
ICAgICAgICAgICAgICAgc3RhdGUsIHVzZWRSZWdpc3RlcnMsIHNsb3dQYXRoSklULCBnZXRCeUlk
LmNvZGVPcmlnaW4oKSwgJmV4Y2VwdGlvblRhcmdldCwKKyAgICAgICAgICAgICAgICBvcGVyYXRp
b25HZXRCeUlkT3B0aW1pemUsIHJlc3VsdCwgZ2VuLnN0dWJJbmZvKCksIGJhc2UsIGdldEJ5SWQu
dWlkKCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxs
KGJlZ2luLCBjYWxsKTsKICAgICAgICAgICAgIApAQCAtMjI3LDcgKzMwMiw3IEBAIHN0YXRpYyB2
b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAgIGlmIChPcHRpb25z
Ojp2ZXJib3NlQ29tcGlsYXRpb24oKSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJIYW5kbGlu
ZyBQdXRCeUlkIHN0YWNrbWFwICMiLCBwdXRCeUlkLnN0YWNrbWFwSUQoKSwgIlxuIik7CiAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVy
ID0gcmVjb3JkTWFwLmZpbmQocHV0QnlJZC5zdGFja21hcElEKCkpOworICAgICAgICAgICAgaXRl
ciA9IHJlY29yZE1hcC5maW5kKHB1dEJ5SWQuc3RhY2ttYXBJRCgpKTsKICAgICAgICAgICAgIGlm
IChpdGVyID09IHJlY29yZE1hcC5lbmQoKSkgewogICAgICAgICAgICAgICAgIC8vIEl0IHdhcyBv
cHRpbWl6ZWQgb3V0LgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjM4LDIwICszMTMs
MTkgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAg
ICAgLy8gRklYTUU6IExMVk0gc2hvdWxkIHRlbGwgdXMgd2hpY2ggcmVnaXN0ZXJzIGFyZSBsaXZl
LgogICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0Ojph
bGxSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgR1BSUmVnIGNhbGxGcmFt
ZVJlZ2lzdGVyID0gcmVjb3JkLmxvY2F0aW9uc1swXS5kaXJlY3RHUFIoKTsKLSAgICAgICAgICAg
IEdQUlJlZyBiYXNlID0gcmVjb3JkLmxvY2F0aW9uc1sxXS5kaXJlY3RHUFIoKTsKLSAgICAgICAg
ICAgIEdQUlJlZyB2YWx1ZSA9IHJlY29yZC5sb2NhdGlvbnNbMl0uZGlyZWN0R1BSKCk7CisgICAg
ICAgICAgICBHUFJSZWcgYmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCk7Cisg
ICAgICAgICAgICBHUFJSZWcgdmFsdWUgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigKLSAg
ICAgICAgICAgICAgICBjb2RlQmxvY2ssIHB1dEJ5SWQuY29kZU9yaWdpbigpLCB1c2VkUmVnaXN0
ZXJzLCBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhiYXNl
KSwgSlNWYWx1ZVJlZ3ModmFsdWUpLCBNYWNyb0Fzc2VtYmxlcjo6c2NyYXRjaFJlZ2lzdGVyLAot
ICAgICAgICAgICAgICAgIGZhbHNlLCBwdXRCeUlkLmVjbWFNb2RlKCksIHB1dEJ5SWQucHV0S2lu
ZCgpKTsKKyAgICAgICAgICAgICAgICBjb2RlQmxvY2ssIHB1dEJ5SWQuY29kZU9yaWdpbigpLCB1
c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyhiYXNlKSwKKyAgICAgICAgICAgICAgICBKU1ZhbHVl
UmVncyh2YWx1ZSksIE1hY3JvQXNzZW1ibGVyOjpzY3JhdGNoUmVnaXN0ZXIsIGZhbHNlLCBwdXRC
eUlkLmVjbWFNb2RlKCksCisgICAgICAgICAgICAgICAgcHV0QnlJZC5wdXRLaW5kKCkpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgYmVnaW4gPSBzbG93
UGF0aEpJVC5sYWJlbCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbigKLSAgICAgICAgICAgICAgICBzdGF0ZSwgdXNl
ZFJlZ2lzdGVycywgc2xvd1BhdGhKSVQsIGdlbi5zbG93UGF0aEZ1bmN0aW9uKCksIGNhbGxGcmFt
ZVJlZ2lzdGVyLAotICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLCB2YWx1ZSwgYmFzZSwg
cHV0QnlJZC51aWQoKSk7CisgICAgICAgICAgICAgICAgc3RhdGUsIHVzZWRSZWdpc3RlcnMsIHNs
b3dQYXRoSklULCBwdXRCeUlkLmNvZGVPcmlnaW4oKSwgJmV4Y2VwdGlvblRhcmdldCwKKyAgICAg
ICAgICAgICAgICBnZW4uc2xvd1BhdGhGdW5jdGlvbigpLCBnZW4uc3R1YkluZm8oKSwgdmFsdWUs
IGJhc2UsIHB1dEJ5SWQudWlkKCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBnZW4ucmVw
b3J0U2xvd1BhdGhDYWxsKGJlZ2luLCBjYWxsKTsKICAgICAgICAgICAgIApAQCAtMjU5LDggKzMz
MywxMyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAg
ICAgICBwdXRCeUlkLm1fZ2VuZXJhdG9yID0gZ2VuOwogICAgICAgICB9CiAgICAgICAgIAorICAg
ICAgICBleGNlcHRpb25UYXJnZXQubGluaygmc2xvd1BhdGhKSVQpOworICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBleGNlcHRpb25KdW1wID0gc2xvd1BhdGhKSVQuanVtcCgpOworICAgICAg
ICAKICAgICAgICAgc3RhdGUuZmluYWxpemVyLT5zaWRlQ29kZUxpbmtCdWZmZXIgPSBhZG9wdFB0
cigKICAgICAgICAgICAgIG5ldyBMaW5rQnVmZmVyKHZtLCAmc2xvd1BhdGhKSVQsIGNvZGVCbG9j
aywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOworICAgICAgICBzdGF0ZS5maW5hbGl6ZXIt
PnNpZGVDb2RlTGlua0J1ZmZlci0+bGluaygKKyAgICAgICAgICAgIGV4Y2VwdGlvbkp1bXAsIHN0
YXRlLmZpbmFsaXplci0+aGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXItPmVudHJ5cG9pbnQoKSk7
CiAgICAgICAgIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0ZS5nZXRCeUlkcy5zaXpl
KCk7IGktLTspIHsKICAgICAgICAgICAgIGdlbmVyYXRlSUNGYXN0UGF0aCgKQEAgLTI3NCwyOCAr
MzUzLDgxIEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAg
ICAgfQogICAgIH0KICAgICAKLSAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIoY29kZUJs
b2NrKTsKLSAgICAKLSAgICBmb3IgKHVuc2lnbmVkIGV4aXRJbmRleCA9IGppdENvZGUtPm9zckV4
aXQuc2l6ZSgpOyBleGl0SW5kZXgtLTspIHsKLSAgICAgICAgT1NSRXhpdENvbXBpbGF0aW9uSW5m
byYgaW5mbyA9IHN0YXRlLmZpbmFsaXplci0+b3NyRXhpdFtleGl0SW5kZXhdOwotICAgICAgICBP
U1JFeGl0JiBleGl0ID0gaml0Q29kZS0+b3NyRXhpdFtleGl0SW5kZXhdOwotICAgICAgICBTdGFj
a01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJlY29yZE1hcC5maW5kKGV4aXQubV9z
dGFja21hcElEKTsKKyAgICAvLyBIYW5kbGluZyBKUyBjYWxscyBpcyB3ZWlyZDogd2UgbmVlZCB0
byBlbnN1cmUgdGhhdCB3ZSBzb3J0IHRoZW0gYnkgdGhlIFBDIGluIExMVk0KKyAgICAvLyBnZW5l
cmF0ZWQgY29kZS4gVGhhdCBpbXBsaWVzIGZpcnN0IHBydW5pbmcgdGhlIG9uZXMgdGhhdCBMTFZN
IGRpZG4ndCBnZW5lcmF0ZS4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3RhdGUuanND
YWxscy5zaXplKCk7ICsraSkgeworICAgICAgICBKU0NhbGwmIGNhbGwgPSBzdGF0ZS5qc0NhbGxz
W2ldOworICAgICAgICAKKyAgICAgICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0
ZXIgPSByZWNvcmRNYXAuZmluZChjYWxsLnN0YWNrbWFwSUQoKSk7CiAgICAgICAgIGlmIChpdGVy
ID09IHJlY29yZE1hcC5lbmQoKSkgewotICAgICAgICAgICAgLy8gVGhpcyBjb3VsZCBoYXBwZW4g
aWYgTExWTSBvcHRpbWl6ZXMgb3V0IGFuIE9TUiBleGl0LgorICAgICAgICAgICAgLy8gSXQgd2Fz
IG9wdGltaXplZCBvdXQuIFBydW5lIGl0LgorICAgICAgICAgICAgY2FsbCA9IHN0YXRlLmpzQ2Fs
bHMubGFzdCgpOworICAgICAgICAgICAgc3RhdGUuanNDYWxscy5yZW1vdmVMYXN0KCk7CisgICAg
ICAgICAgICBpLS07CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICAK
KyAgICAgICAgY2FsbC5tX2luc3RydWN0aW9uT2Zmc2V0ID0gaXRlci0+dmFsdWUuaW5zdHJ1Y3Rp
b25PZmZzZXQ7CisgICAgfQorICAgIAorICAgIHN0ZDo6c29ydChzdGF0ZS5qc0NhbGxzLmJlZ2lu
KCksIHN0YXRlLmpzQ2FsbHMuZW5kKCkpOworICAgIAorICAgIGNvZGVCbG9jay0+c2V0TnVtYmVy
T2ZDYWxsTGlua0luZm9zKHN0YXRlLmpzQ2FsbHMuc2l6ZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSBzdGF0ZS5qc0NhbGxzLnNpemUoKTsgaS0tOykgeworICAgICAgICBKU0NhbGwmIGNhbGwg
PSBzdGF0ZS5qc0NhbGxzW2ldOworCisgICAgICAgIENDYWxsSGVscGVycyBmYXN0UGF0aEpJVCgm
dm0sIGNvZGVCbG9jayk7CisgICAgICAgIGNhbGwuZW1pdChmYXN0UGF0aEpJVCk7CisgICAgICAg
IAorICAgICAgICBjaGFyKiBzdGFydE9mSUMgPSBiaXR3aXNlX2Nhc3Q8Y2hhcio+KGdlbmVyYXRl
ZEZ1bmN0aW9uKSArIGNhbGwubV9pbnN0cnVjdGlvbk9mZnNldDsKKyAgICAgICAgCisgICAgICAg
IExpbmtCdWZmZXIgbGlua0J1ZmZlcih2bSwgJmZhc3RQYXRoSklULCBzdGFydE9mSUMsIHNpemVP
ZkNhbGwoKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGxpbmtCdWZmZXIuaXNWYWxpZCgpKTsK
KyAgICAgICAgCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBc3NlbWJsZXJUeXBlX1Q6OmZpbGxO
b3BzKAorICAgICAgICAgICAgc3RhcnRPZklDICsgbGlua0J1ZmZlci5zaXplKCksIHNpemVPZkNh
bGwoKSAtIGxpbmtCdWZmZXIuc2l6ZSgpKTsKKyAgICAgICAgCisgICAgICAgIENhbGxMaW5rSW5m
byYgaW5mbyA9IGNvZGVCbG9jay0+Y2FsbExpbmtJbmZvKGkpOworICAgICAgICBjYWxsLmxpbmso
dm0sIGxpbmtCdWZmZXIsIGluZm8pOworICAgIH0KKyAgICAKKyAgICBSZXBhdGNoQnVmZmVyIHJl
cGF0Y2hCdWZmZXIoY29kZUJsb2NrKTsKKyAgICAKKyAgICBpdGVyID0gcmVjb3JkTWFwLmZpbmQo
c3RhdGUuaGFuZGxlRXhjZXB0aW9uU3RhY2ttYXBJRCk7CisgICAgLy8gSXQncyBzb3J0IG9mIHJl
bW90ZWx5IHBvc3NpYmxlIHRoYXQgd2Ugd29uJ3QgaGF2ZSBhbiBpbi1iYW5kIGV4Y2VwdGlvbiBo
YW5kbGluZworICAgIC8vIHBhdGgsIGZvciBzb21lIGtpbmRzIG9mIGZ1bmN0aW9ucy4KKyAgICBp
ZiAoaXRlciAhPSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAgICAgU3RhY2tNYXBzOjpSZWNvcmQm
IHJlY29yZCA9IGl0ZXItPnZhbHVlOwogICAgICAgICAKICAgICAgICAgQ29kZUxvY2F0aW9uTGFi
ZWwgc291cmNlID0gQ29kZUxvY2F0aW9uTGFiZWwoCiAgICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8
Y2hhcio+KGdlbmVyYXRlZEZ1bmN0aW9uKSArIHJlY29yZC5pbnN0cnVjdGlvbk9mZnNldCk7CisK
KyAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZXBsYWNlV2l0aEp1bXAoc291cmNlLCBzdGF0ZS5maW5h
bGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLT5lbnRyeXBvaW50KCkpOworICAgIH0K
KyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGV4aXRJbmRleCA9IDA7IGV4aXRJbmRleCA8IGppdENv
ZGUtPm9zckV4aXQuc2l6ZSgpOyArK2V4aXRJbmRleCkgeworICAgICAgICBPU1JFeGl0Q29tcGls
YXRpb25JbmZvJiBpbmZvID0gc3RhdGUuZmluYWxpemVyLT5vc3JFeGl0W2V4aXRJbmRleF07Cisg
ICAgICAgIE9TUkV4aXQmIGV4aXQgPSBqaXRDb2RlLT5vc3JFeGl0W2V4aXRJbmRleF07CisgICAg
ICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3RhY2ttYXBJRCk7CiAgICAgICAgIAot
ICAgICAgICBpZiAoaW5mby5tX2lzSW52YWxpZGF0aW9uUG9pbnQpIHsKLSAgICAgICAgICAgIGpp
dENvZGUtPmNvbW1vbi5qdW1wUmVwbGFjZW1lbnRzLmFwcGVuZChKdW1wUmVwbGFjZW1lbnQoc291
cmNlLCBpbmZvLm1fdGh1bmtBZGRyZXNzKSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgVmVjdG9yPGNvbnN0IHZvaWQqPiBjb2RlQWRkcmVzc2VzOworICAgICAgICAKKyAgICAgICAg
aWYgKGl0ZXIgIT0gcmVjb3JkTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBTdGFja01hcHM6OlJl
Y29yZCYgcmVjb3JkID0gaXRlci0+dmFsdWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIENv
ZGVMb2NhdGlvbkxhYmVsIHNvdXJjZSA9IENvZGVMb2NhdGlvbkxhYmVsKAorICAgICAgICAgICAg
ICAgIGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJhdGVkRnVuY3Rpb24pICsgcmVjb3JkLmluc3Ry
dWN0aW9uT2Zmc2V0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY29kZUFkZHJlc3Nlcy5h
cHBlbmQoYml0d2lzZV9jYXN0PGNoYXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyByZWNvcmQuaW5z
dHJ1Y3Rpb25PZmZzZXQgKyBNYWNyb0Fzc2VtYmxlcjo6bWF4SnVtcFJlcGxhY2VtZW50U2l6ZSgp
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGluZm8ubV9pc0ludmFsaWRhdGlvblBv
aW50KQorICAgICAgICAgICAgICAgIGppdENvZGUtPmNvbW1vbi5qdW1wUmVwbGFjZW1lbnRzLmFw
cGVuZChKdW1wUmVwbGFjZW1lbnQoc291cmNlLCBpbmZvLm1fdGh1bmtBZGRyZXNzKSk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZXBsYWNlV2l0aEp1
bXAoc291cmNlLCBpbmZvLm1fdGh1bmtBZGRyZXNzKTsKICAgICAgICAgfQogICAgICAgICAKLSAg
ICAgICAgcmVwYXRjaEJ1ZmZlci5yZXBsYWNlV2l0aEp1bXAoc291cmNlLCBpbmZvLm1fdGh1bmtB
ZGRyZXNzKTsKKyAgICAgICAgaWYgKGdyYXBoLmNvbXBpbGF0aW9uKCkpCisgICAgICAgICAgICBn
cmFwaC5jb21waWxhdGlvbigpLT5hZGRPU1JFeGl0U2l0ZShjb2RlQWRkcmVzc2VzKTsKICAgICB9
CiB9CiAKQEAgLTM3Myw3ICs1MDUsNyBAQCB2b2lkIGNvbXBpbGUoU3RhdGUmIHN0YXRlKQogICAg
ICAgICAgICAgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZSogaGFuZGxlID0gc3RhdGUuaml0Q29kZS0+
aGFuZGxlcygpW2ldLmdldCgpOwogICAgICAgICAgICAgZGF0YUxvZygKICAgICAgICAgICAgICAg
ICAiR2VuZXJhdGVkIExMVk0gY29kZSBmb3IgIiwKLSAgICAgICAgICAgICAgICBDb2RlQmxvY2tX
aXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6REZHSklUKSwKKyAg
ICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9j
aywgSklUQ29kZTo6RlRMSklUKSwKICAgICAgICAgICAgICAgICAiICMiLCBpLCAiLCAiLCBzdGF0
ZS5jb2RlU2VjdGlvbk5hbWVzW2ldLCAiOlxuIik7CiAgICAgICAgICAgICBkaXNhc3NlbWJsZSgK
ICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoaGFuZGxlLT5zdGFydCgpKSwg
aGFuZGxlLT5zaXplSW5CeXRlcygpLApAQCAtMzg0LDE3ICs1MTYsMjIgQEAgdm9pZCBjb21waWxl
KFN0YXRlJiBzdGF0ZSkKICAgICAgICAgICAgIGNvbnN0IFJlZkNvdW50ZWRBcnJheTxMU2VjdGlv
bldvcmQ+JiBzZWN0aW9uID0gc3RhdGUuaml0Q29kZS0+ZGF0YVNlY3Rpb25zKClbaV07CiAgICAg
ICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgICAgICJHZW5lcmF0ZWQgTExWTSBkYXRhIHNl
Y3Rpb24gZm9yICIsCi0gICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUu
Z3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkRGR0pJVCksCisgICAgICAgICAgICAgICAgQ29k
ZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJ
VCksCiAgICAgICAgICAgICAgICAgIiAjIiwgaSwgIiwgIiwgc3RhdGUuZGF0YVNlY3Rpb25OYW1l
c1tpXSwgIjpcbiIpOwogICAgICAgICAgICAgZHVtcERhdGFTZWN0aW9uKHNlY3Rpb24sICIgICAg
Iik7CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgc3RhdGUuaml0Q29kZS0+dW53aW5kSW5m
by5wYXJzZSgKKyAgICAgICAgc3RhdGUuY29tcGFjdFVud2luZCwgc3RhdGUuY29tcGFjdFVud2lu
ZFNpemUsIHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uKTsKKyAgICBpZiAoREZHOjpzaG91bGRTaG93
RGlzYXNzZW1ibHkoKSkKKyAgICAgICAgZGF0YUxvZygiVW53aW5kIGluZm8gZm9yICIsIENvZGVC
bG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQp
LCAiOlxuICAgICIsIHN0YXRlLmppdENvZGUtPnVud2luZEluZm8sICJcbiIpOworICAgIAogICAg
IGlmIChzdGF0ZS5zdGFja21hcHNTZWN0aW9uLnNpemUoKSkgewogICAgICAgICBpZiAoc2hvdWxk
U2hvd0Rpc2Fzc2VtYmx5KCkpIHsKICAgICAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAg
ICAgIkdlbmVyYXRlZCBMTFZNIHN0YWNrbWFwcyBzZWN0aW9uIGZvciAiLAotICAgICAgICAgICAg
ICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2Rl
OjpERkdKSVQpLCAiOlxuIik7CisgICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUo
c3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCksICI6XG4iKTsKICAgICAg
ICAgICAgIGRhdGFMb2coIiAgICBSYXcgZGF0YTpcbiIpOwogICAgICAgICAgICAgZHVtcERhdGFT
ZWN0aW9uKHN0YXRlLnN0YWNrbWFwc1NlY3Rpb24sICIgICAgIik7CiAgICAgICAgIH0KQEAgLTQy
MSw4ICs1NTgsOSBAQCB2b2lkIGNvbXBpbGUoU3RhdGUmIHN0YXRlKQogICAgICAgICAgICAgICAg
IEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUqIGhhbmRsZSA9IHN0YXRlLmppdENvZGUtPmhhbmRsZXMo
KVtpXS5nZXQoKTsKICAgICAgICAgICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgICAgICAg
ICAiR2VuZXJhdGVkIExMVk0gY29kZSBhZnRlciBzdGFja21hcC1iYXNlZCBmaXgtdXAgZm9yICIs
Ci0gICAgICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1f
Y29kZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLAotICAgICAgICAgICAgICAgICAgICAiICMiLCBp
LCAiLCAiLCBzdGF0ZS5jb2RlU2VjdGlvbk5hbWVzW2ldLCAiOlxuIik7CisgICAgICAgICAgICAg
ICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRD
b2RlOjpGVExKSVQpLAorICAgICAgICAgICAgICAgICAgICAiIGluICIsIHN0YXRlLmdyYXBoLm1f
cGxhbi5tb2RlLCAiICMiLCBpLCAiLCAiLAorICAgICAgICAgICAgICAgICAgICBzdGF0ZS5jb2Rl
U2VjdGlvbk5hbWVzW2ldLCAiOlxuIik7CiAgICAgICAgICAgICAgICAgZGlzYXNzZW1ibGUoCiAg
ICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cihoYW5kbGUtPnN0YXJ0KCkp
LCBoYW5kbGUtPnNpemVJbkJ5dGVzKCksCiAgICAgICAgICAgICAgICAgICAgICIgICAgIiwgV1RG
OjpkYXRhRmlsZSgpLCBMTFZNU3Vic2V0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMRXhpdFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEV4aXRWYWx1ZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTksNiArNTksOSBA
QCB2b2lkIEV4aXRWYWx1ZTo6ZHVtcEluQ29udGV4dChQcmludFN0cmVhCiAgICAgY2FzZSBFeGl0
VmFsdWVJbkpTU3RhY2tBc0RvdWJsZToKICAgICAgICAgb3V0LnByaW50KCJJbkpTU3RhY2tBc0Rv
dWJsZTpyIiwgdmlydHVhbFJlZ2lzdGVyKCkpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBF
eGl0VmFsdWVSZWNvdmVyeToKKyAgICAgICAgb3V0LnByaW50KCJSZWNvdmVyeSgiLCByZWNvdmVy
eU9wY29kZSgpLCAiLCBhcmciLCBsZWZ0UmVjb3ZlcnlBcmd1bWVudCgpLCAiLCBhcmciLCByaWdo
dFJlY292ZXJ5QXJndW1lbnQoKSwgIiwgIiwgcmVjb3ZlcnlGb3JtYXQoKSwgIikiKTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5oCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMSw2ICszMSw3IEBACiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKICNpbmNs
dWRlICJGVExFeGl0QXJndW1lbnQuaCIKKyNpbmNsdWRlICJGVExSZWNvdmVyeU9wY29kZS5oIgog
I2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKICNp
bmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KQEAgLTUxLDcgKzUyLDggQEAgZW51bSBFeGl0VmFs
dWVLaW5kIHsKICAgICBFeGl0VmFsdWVJbkpTU3RhY2ssCiAgICAgRXhpdFZhbHVlSW5KU1N0YWNr
QXNJbnQzMiwKICAgICBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDUyLAotICAgIEV4aXRWYWx1ZUlu
SlNTdGFja0FzRG91YmxlCisgICAgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGUsCisgICAgRXhp
dFZhbHVlUmVjb3ZlcnkKIH07CiAKIGNsYXNzIEV4aXRWYWx1ZSB7CkBAIC0xMTgsNiArMTIwLDE3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCisgICAgc3Rh
dGljIEV4aXRWYWx1ZSByZWNvdmVyeShSZWNvdmVyeU9wY29kZSBvcGNvZGUsIHVuc2lnbmVkIGxl
ZnRBcmd1bWVudCwgdW5zaWduZWQgcmlnaHRBcmd1bWVudCwgVmFsdWVGb3JtYXQgZm9ybWF0KQor
ICAgIHsKKyAgICAgICAgRXhpdFZhbHVlIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fa2luZCA9
IEV4aXRWYWx1ZVJlY292ZXJ5OworICAgICAgICByZXN1bHQudS5yZWNvdmVyeS5vcGNvZGUgPSBv
cGNvZGU7CisgICAgICAgIHJlc3VsdC51LnJlY292ZXJ5LmxlZnRBcmd1bWVudCA9IGxlZnRBcmd1
bWVudDsKKyAgICAgICAgcmVzdWx0LnUucmVjb3ZlcnkucmlnaHRBcmd1bWVudCA9IHJpZ2h0QXJn
dW1lbnQ7CisgICAgICAgIHJlc3VsdC51LnJlY292ZXJ5LmZvcm1hdCA9IGZvcm1hdDsKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCiAgICAgRXhpdFZhbHVlS2luZCBraW5kKCkg
Y29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAgICAgCiAgICAgYm9vbCBpc0RlYWQoKSBjb25zdCB7
IHJldHVybiBraW5kKCkgPT0gRXhpdFZhbHVlRGVhZDsgfQpAQCAtMTM1LDYgKzE0OCw3IEBAIHB1
YmxpYzoKICAgICB9CiAgICAgYm9vbCBpc0NvbnN0YW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgp
ID09IEV4aXRWYWx1ZUNvbnN0YW50OyB9CiAgICAgYm9vbCBpc0FyZ3VtZW50KCkgY29uc3QgeyBy
ZXR1cm4ga2luZCgpID09IEV4aXRWYWx1ZUFyZ3VtZW50OyB9CisgICAgYm9vbCBpc1JlY292ZXJ5
KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IEV4aXRWYWx1ZVJlY292ZXJ5OyB9CiAgICAgCiAg
ICAgRXhpdEFyZ3VtZW50IGV4aXRBcmd1bWVudCgpIGNvbnN0CiAgICAgewpAQCAtMTQyLDYgKzE1
NiwzMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBFeGl0QXJndW1lbnQodS5hcmd1bWVudCk7
CiAgICAgfQogICAgIAorICAgIHVuc2lnbmVkIGxlZnRSZWNvdmVyeUFyZ3VtZW50KCkgY29uc3QK
KyAgICB7CisgICAgICAgIEFTU0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICByZXR1cm4gdS5y
ZWNvdmVyeS5sZWZ0QXJndW1lbnQ7CisgICAgfQorICAgIAorICAgIHVuc2lnbmVkIHJpZ2h0UmVj
b3ZlcnlBcmd1bWVudCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNSZWNvdmVyeSgp
KTsKKyAgICAgICAgcmV0dXJuIHUucmVjb3ZlcnkucmlnaHRBcmd1bWVudDsKKyAgICB9CisgICAg
CisgICAgVmFsdWVGb3JtYXQgcmVjb3ZlcnlGb3JtYXQoKSBjb25zdAorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzUmVjb3ZlcnkoKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxWYWx1ZUZv
cm1hdD4odS5yZWNvdmVyeS5mb3JtYXQpOworICAgIH0KKyAgICAKKyAgICBSZWNvdmVyeU9wY29k
ZSByZWNvdmVyeU9wY29kZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNSZWNvdmVy
eSgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlY292ZXJ5T3Bjb2RlPih1LnJlY292
ZXJ5Lm9wY29kZSk7CisgICAgfQorICAgIAogICAgIEpTVmFsdWUgY29uc3RhbnQoKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVNTRVJUKGlzQ29uc3RhbnQoKSk7CkBAIC0xNTMsNiArMTkxLDE1IEBA
IHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGlzSW5KU1N0YWNrU29tZWhvdygpKTsKICAgICAgICAg
cmV0dXJuIFZpcnR1YWxSZWdpc3Rlcih1LnZpcnR1YWxSZWdpc3Rlcik7CiAgICAgfQorICAgIAor
ICAgIEV4aXRWYWx1ZSB3aXRoVmlydHVhbFJlZ2lzdGVyKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFs
UmVnaXN0ZXIpCisgICAgeworICAgICAgICBBU1NFUlQoaXNJbkpTU3RhY2tTb21laG93KCkpOwor
ICAgICAgICBFeGl0VmFsdWUgcmVzdWx0OworICAgICAgICByZXN1bHQubV9raW5kID0gbV9raW5k
OworICAgICAgICByZXN1bHQudS52aXJ0dWFsUmVnaXN0ZXIgPSB2aXJ0dWFsUmVnaXN0ZXIub2Zm
c2V0KCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQogCiAgICAgLy8gSWYgaXQncyBp
biB0aGUgSlNTdGFjayBzb21laG93LCB0aGlzIHdpbGwgdGVsbCB5b3Ugd2hhdCBmb3JtYXQgaXQn
cyBpbiwgaW4gYSBtYW5uZXIKICAgICAvLyB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCBleGl0QXJn
dW1lbnQoKS5mb3JtYXQoKS4gSWYgaXQncyBhIGNvbnN0YW50IG9yIGl0J3MgZGVhZCwgaXQKQEAg
LTE4MSw2ICsyMjgsOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBFeGl0
VmFsdWVJbkpTU3RhY2tBc0RvdWJsZToKICAgICAgICAgICAgIHJldHVybiBWYWx1ZUZvcm1hdERv
dWJsZTsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEV4aXRWYWx1ZVJlY292ZXJ5OgorICAg
ICAgICAgICAgcmV0dXJuIHJlY292ZXJ5Rm9ybWF0KCk7CiAgICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xOTYsNiArMjQ2LDEyIEBA
IHByaXZhdGU6CiAgICAgICAgIEV4aXRBcmd1bWVudFJlcHJlc2VudGF0aW9uIGFyZ3VtZW50Owog
ICAgICAgICBFbmNvZGVkSlNWYWx1ZSBjb25zdGFudDsKICAgICAgICAgaW50IHZpcnR1YWxSZWdp
c3RlcjsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQxNl90IGxlZnRBcmd1bWVu
dDsKKyAgICAgICAgICAgIHVpbnQxNl90IHJpZ2h0QXJndW1lbnQ7CisgICAgICAgICAgICB1aW50
MTZfdCBvcGNvZGU7CisgICAgICAgICAgICB1aW50MTZfdCBmb3JtYXQ7CisgICAgICAgIH0gcmVj
b3Zlcnk7CiAgICAgfSB1OwogfTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExJbmxpbmVDYWNoZVNpemUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00Nyw2ICs0NywxMSBAQCBzaXplX3Qgc2l6ZU9mUHV0QnlJZCgpCiAgICAgcmV0dXJuIDMy
OwogfQogCitzaXplX3Qgc2l6ZU9mQ2FsbCgpCit7CisgICAgcmV0dXJuIDQzOworfQorCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaAkocmV2
aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNo
ZVNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEZUTCB7CiAKIHNpemVfdCBzaXplT2ZHZXRCeUlkKCk7CiBzaXplX3Qgc2l6ZU9m
UHV0QnlJZCgpOworc2l6ZV90IHNpemVPZkNhbGwoKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkZUTAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9z
aXRvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJp
bnNpY1JlcG9zaXRvcnkuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE3
ICs0MCwyNSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oYWRk
V2l0aE92ZXJmbG93MzIsICJsbHZtLnNhZGQud2l0aC5vdmVyZmxvdy5pMzIiLCBmdW5jdGlvblR5
cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDMyLCBib29sZWFuKSwgaW50MzIsIGludDMyKSkg
XAogICAgIG1hY3JvKGFkZFdpdGhPdmVyZmxvdzY0LCAibGx2bS5zYWRkLndpdGgub3ZlcmZsb3cu
aTY0IiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBpbnQ2NCwgYm9vbGVhbiks
IGludDY0LCBpbnQ2NCkpIFwKICAgICBtYWNybyhkb3VibGVBYnMsICJsbHZtLmZhYnMuZjY0Iiwg
ZnVuY3Rpb25UeXBlKGRvdWJsZVR5cGUsIGRvdWJsZVR5cGUpKSBcCisgICAgbWFjcm8oZG91Ymxl
U2luLCAibGx2bS5zaW4uZjY0IiwgZnVuY3Rpb25UeXBlKGRvdWJsZVR5cGUsIGRvdWJsZVR5cGUp
KSBcCisgICAgbWFjcm8oZG91YmxlQ29zLCAibGx2bS5jb3MuZjY0IiwgZnVuY3Rpb25UeXBlKGRv
dWJsZVR5cGUsIGRvdWJsZVR5cGUpKSBcCisgICAgbWFjcm8oZG91YmxlU3FydCwgImxsdm0uc3Fy
dC5mNjQiLCBmdW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91YmxlVHlwZSkpIFwKKyAgICBtYWNy
byhmcmFtZUFkZHJlc3MsICJsbHZtLmZyYW1lYWRkcmVzcyIsIGZ1bmN0aW9uVHlwZShwb2ludGVy
VHlwZShpbnQ4KSwgaW50MzIpKSBcCiAgICAgbWFjcm8obXVsV2l0aE92ZXJmbG93MzIsICJsbHZt
LnNtdWwud2l0aC5vdmVyZmxvdy5pMzIiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShtX2NvbnRl
eHQsIGludDMyLCBib29sZWFuKSwgaW50MzIsIGludDMyKSkgXAogICAgIG1hY3JvKG11bFdpdGhP
dmVyZmxvdzY0LCAibGx2bS5zbXVsLndpdGgub3ZlcmZsb3cuaTY0IiwgZnVuY3Rpb25UeXBlKHN0
cnVjdFR5cGUobV9jb250ZXh0LCBpbnQ2NCwgYm9vbGVhbiksIGludDY0LCBpbnQ2NCkpIFwKLSAg
ICBtYWNybyhwYXRjaHBvaW50SW50NjQsICJsbHZtLmV4cGVyaW1lbnRhbC5wYXRjaHBvaW50Lmk2
NCIsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50MzIsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFk
aWMpKSBcCi0gICAgbWFjcm8ocGF0Y2hwb2ludFZvaWQsICJsbHZtLmV4cGVyaW1lbnRhbC5wYXRj
aHBvaW50LnZvaWQiLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludDMyLCBpbnQzMiwgcmVmOCwg
aW50MzIsIFZhcmlhZGljKSkgXAotICAgIG1hY3JvKHN0YWNrbWFwLCAibGx2bS5leHBlcmltZW50
YWwuc3RhY2ttYXAiLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludDMyLCBpbnQzMiwgVmFyaWFk
aWMpKSBcCisgICAgbWFjcm8ocGF0Y2hwb2ludEludDY0LCAibGx2bS5leHBlcmltZW50YWwucGF0
Y2hwb2ludC5pNjQiLCBmdW5jdGlvblR5cGUoaW50NjQsIGludDY0LCBpbnQzMiwgcmVmOCwgaW50
MzIsIFZhcmlhZGljKSkgXAorICAgIG1hY3JvKHBhdGNocG9pbnRWb2lkLCAibGx2bS5leHBlcmlt
ZW50YWwucGF0Y2hwb2ludC52b2lkIiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQ2NCwgaW50
MzIsIHJlZjgsIGludDMyLCBWYXJpYWRpYykpIFwKKyAgICBtYWNybyhzdGFja21hcCwgImxsdm0u
ZXhwZXJpbWVudGFsLnN0YWNrbWFwIiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQ2NCwgaW50
MzIsIFZhcmlhZGljKSkgXAogICAgIG1hY3JvKHN1YldpdGhPdmVyZmxvdzMyLCAibGx2bS5zc3Vi
LndpdGgub3ZlcmZsb3cuaTMyIiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBp
bnQzMiwgYm9vbGVhbiksIGludDMyLCBpbnQzMikpIFwKICAgICBtYWNybyhzdWJXaXRoT3ZlcmZs
b3c2NCwgImxsdm0uc3N1Yi53aXRoLm92ZXJmbG93Lmk2NCIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RU
eXBlKG1fY29udGV4dCwgaW50NjQsIGJvb2xlYW4pLCBpbnQ2NCwgaW50NjQpKSBcCiAgICAgbWFj
cm8odHJhcCwgImxsdm0udHJhcCIsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSkpIFwKICAgICBtYWNy
byh4ODZTU0UyQ3Z0VFNEMlNJLCAibGx2bS54ODYuc3NlMi5jdnR0c2Qyc2kiLCBmdW5jdGlvblR5
cGUoaW50MzIsIHZlY3RvclR5cGUoZG91YmxlVHlwZSwgMikpKQogCiAjZGVmaW5lIEZPUl9FQUNI
X0ZVTkNUSU9OX1RZUEUobWFjcm8pIFwKKyAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FQywgZnVu
Y3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCisgICAgbWFjcm8oQ19KSVRPcGVy
YXRpb25fRUosIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50NjQpKSBcCisgICAgbWFj
cm8oQ19KSVRPcGVyYXRpb25fRUpzc0pzcywgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBp
bnRQdHIsIGludFB0cikpIFwKKyAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FSnNzSnNzSnNzLCBm
dW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCiAg
ICAgbWFjcm8oQ19KSVRPcGVyYXRpb25fRVN0LCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIs
IGludFB0cikpIFwKICAgICBtYWNybyhJX0pJVE9wZXJhdGlvbl9FSnNzLCBmdW5jdGlvblR5cGUo
aW50UHRyLCBpbnRQdHIsIGludFB0cikpIFwKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FLCBm
dW5jdGlvblR5cGUoaW50NjQsIGludFB0cikpIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMSklUQ29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExKSVRDb2RlLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExKSVRDb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsMjcgKzU0LDM1
IEBAIHZvaWQgSklUQ29kZTo6YWRkRGF0YVNlY3Rpb24oUmVmQ291bnRlZEEKICAgICBtX2RhdGFT
ZWN0aW9ucy5hcHBlbmQoZGF0YVNlY3Rpb24pOwogfQogCi12b2lkIEpJVENvZGU6OmluaXRpYWxp
emVDb2RlKENvZGVSZWYgZW50cnlwb2ludCkKK3ZvaWQgSklUQ29kZTo6aW5pdGlhbGl6ZUFyaXR5
Q2hlY2tFbnRyeXBvaW50KENvZGVSZWYgZW50cnlwb2ludCkKIHsKLSAgICBtX2VudHJ5cG9pbnQg
PSBlbnRyeXBvaW50OworICAgIG1fYXJpdHlDaGVja0VudHJ5cG9pbnQgPSBlbnRyeXBvaW50Owog
fQogCi1KSVRDb2RlOjpDb2RlUHRyIEpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKCkKK3ZvaWQgSklU
Q29kZTo6aW5pdGlhbGl6ZUFkZHJlc3NGb3JDYWxsKENvZGVQdHIgYWRkcmVzcykKIHsKLSAgICBS
RUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnQpOwotICAgIHJldHVybiBtX2VudHJ5cG9pbnQuY29k
ZSgpOworICAgIG1fYWRkcmVzc0ZvckNhbGwgPSBhZGRyZXNzOworfQorCitKSVRDb2RlOjpDb2Rl
UHRyIEpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNo
ZWNrTW9kZSBhcml0eUNoZWNrLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpCit7CisgICAgc3dp
dGNoIChhcml0eUNoZWNrKSB7CisgICAgY2FzZSBBcml0eUNoZWNrTm90UmVxdWlyZWQ6CisgICAg
ICAgIHJldHVybiBtX2FkZHJlc3NGb3JDYWxsOworICAgIGNhc2UgTXVzdENoZWNrQXJpdHk6Cisg
ICAgICAgIHJldHVybiBtX2FyaXR5Q2hlY2tFbnRyeXBvaW50LmNvZGUoKTsKKyAgICB9CisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQ29kZVB0cigpOwogfQog
CiB2b2lkKiBKSVRDb2RlOjpleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQp
CiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLSAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4obV9lbnRyeXBvaW50LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygp
KSArIG9mZnNldDsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9hZGRyZXNz
Rm9yQ2FsbC5leGVjdXRhYmxlQWRkcmVzcygpKSArIG9mZnNldDsKIH0KIAogdm9pZCogSklUQ29k
ZTo6ZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3QpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9l
bnRyeXBvaW50KTsKLQogICAgIC8vIFdlIGNhbid0IHBhdGNoIEZUTCBjb2RlLCB5ZXQuIEV2ZW4g
aWYgd2UgZGlkLCBpdCdzIG5vdCBjbGVhciB0aGF0IHdlIHdvdWxkIGRvIHNvCiAgICAgLy8gdGhy
b3VnaCB0aGlzIEFQSS4KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODMs
OCArOTEsNiBAQCB2b2lkKiBKSVRDb2RlOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfCiAKIHVu
c2lnbmVkIEpJVENvZGU6Om9mZnNldE9mKHZvaWQqKQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1f
ZW50cnlwb2ludCk7Ci0KICAgICAvLyBXZSBjdXJyZW50bHkgZG9uJ3QgaGF2ZSB2aXNpYmlsaXR5
IGludG8gdGhlIEZUTCBjb2RlLgogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgcmV0dXJuIDA7CkBAIC05Miw4ICs5OCw2IEBAIHVuc2lnbmVkIEpJVENvZGU6Om9mZnNldE9m
KHZvaWQqKQogCiBzaXplX3QgSklUQ29kZTo6c2l6ZSgpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQo
bV9lbnRyeXBvaW50KTsKLQogICAgIC8vIFdlIGRvbid0IGtub3cgdGhlIHNpemUgb2YgRlRMIGNv
ZGUsIHlldC4gTWFrZSBhIHdpbGQgZ3Vlc3MuIFRoaXMgaXMgbW9zdGx5IHVzZWQgZm9yCiAgICAg
Ly8gR0MgbG9hZCBlc3RpbWF0ZXMuCiAgICAgcmV0dXJuIDEwMDA7CkBAIC0xMDEsOCArMTA1LDYg
QEAgc2l6ZV90IEpJVENvZGU6OnNpemUoKQogCiBib29sIEpJVENvZGU6OmNvbnRhaW5zKHZvaWQq
KQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1fZW50cnlwb2ludCk7Ci0KICAgICAvLyBXZSBoYXZl
IG5vIGlkZWEgd2hhdCBhZGRyZXNzZXMgdGhlIEZUTCBjb2RlIGNvbnRhaW5zLCB5ZXQuCiAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaAkocmV2aXNpb24gMTYyOTYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJERkdDb21tb25EYXRhLmgiCiAjaW5jbHVkZSAiRlRM
T1NSRXhpdC5oIgogI2luY2x1ZGUgIkZUTFN0YWNrTWFwcy5oIgorI2luY2x1ZGUgIkZUTFVud2lu
ZEluZm8uaCIKICNpbmNsdWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiTExWTUFQSS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkQXJyYXkuaD4KQEAgLTQ2LDE3ICs0NywxOCBAQCBwdWJsaWM6
CiAgICAgSklUQ29kZSgpOwogICAgIH5KSVRDb2RlKCk7CiAgICAgCi0gICAgQ29kZVB0ciBhZGRy
ZXNzRm9yQ2FsbCgpOwotICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90
IG9mZnNldCk7Ci0gICAgdm9pZCogZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KTsK
LSAgICB1bnNpZ25lZCBvZmZzZXRPZih2b2lkKiBwb2ludGVySW50b0NvZGUpOwotICAgIHNpemVf
dCBzaXplKCk7Ci0gICAgYm9vbCBjb250YWlucyh2b2lkKik7CisgICAgQ29kZVB0ciBhZGRyZXNz
Rm9yQ2FsbChWTSYsIEV4ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTW9kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9m
ZnNldChzaXplX3Qgb2Zmc2V0KSBvdmVycmlkZTsKKyAgICB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zm
c2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRlOworICAgIHVuc2lnbmVkIG9mZnNldE9mKHZvaWQq
IHBvaW50ZXJJbnRvQ29kZSkgb3ZlcnJpZGU7CisgICAgc2l6ZV90IHNpemUoKSBvdmVycmlkZTsK
KyAgICBib29sIGNvbnRhaW5zKHZvaWQqKSBvdmVycmlkZTsKICAgICAKICAgICB2b2lkIGluaXRp
YWxpemVFeGl0VGh1bmtzKENvZGVSZWYpOwogICAgIHZvaWQgYWRkSGFuZGxlKFBhc3NSZWZQdHI8
RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4pOwogICAgIHZvaWQgYWRkRGF0YVNlY3Rpb24oUmVmQ291
bnRlZEFycmF5PExTZWN0aW9uV29yZD4pOwotICAgIHZvaWQgaW5pdGlhbGl6ZUNvZGUoQ29kZVJl
ZiBlbnRyeXBvaW50KTsKKyAgICB2b2lkIGluaXRpYWxpemVBcml0eUNoZWNrRW50cnlwb2ludChD
b2RlUmVmKTsKKyAgICB2b2lkIGluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbChDb2RlUHRyKTsKICAg
ICAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+PiYgaGFu
ZGxlcygpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlczsgfQogICAgIGNvbnN0IFZlY3RvcjxSZWZD
b3VudGVkQXJyYXk8TFNlY3Rpb25Xb3JkPj4mIGRhdGFTZWN0aW9ucygpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YVNlY3Rpb25zOyB9CkBAIC02OSwxMSArNzEsMTMgQEAgcHVibGljOgogICAgIERGRzo6
Q29tbW9uRGF0YSBjb21tb247CiAgICAgU2VnbWVudGVkVmVjdG9yPE9TUkV4aXQsIDg+IG9zckV4
aXQ7CiAgICAgU3RhY2tNYXBzIHN0YWNrbWFwczsKKyAgICBVbndpbmRJbmZvIHVud2luZEluZm87
CiAgICAgCiBwcml2YXRlOgogICAgIFZlY3RvcjxSZWZDb3VudGVkQXJyYXk8TFNlY3Rpb25Xb3Jk
Pj4gbV9kYXRhU2VjdGlvbnM7CiAgICAgVmVjdG9yPFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFu
ZGxlPj4gbV9oYW5kbGVzOwotICAgIENvZGVSZWYgbV9lbnRyeXBvaW50OworICAgIENvZGVQdHIg
bV9hZGRyZXNzRm9yQ2FsbDsKKyAgICBDb2RlUmVmIG1fYXJpdHlDaGVja0VudHJ5cG9pbnQ7CiAg
ICAgQ29kZVJlZiBtX2V4aXRUaHVua3M7CiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEpJVEZpbmFsaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTQ1LDYgKzQ1LDIyIEBAIEpJVEZpbmFsaXplcjo6fkpJVEZpbmFsaXplcigpCiB7CiB9CiAKK3Np
emVfdCBKSVRGaW5hbGl6ZXI6OmNvZGVTaXplKCkKK3sKKyAgICBzaXplX3QgcmVzdWx0ID0gMDsK
KyAgICAKKyAgICByZXN1bHQgKz0gZXhpdFRodW5rc0xpbmtCdWZmZXItPnNpemUoKTsKKyAgICBy
ZXN1bHQgKz0gZW50cnlwb2ludExpbmtCdWZmZXItPnNpemUoKTsKKyAgICBpZiAoc2lkZUNvZGVM
aW5rQnVmZmVyKQorICAgICAgICByZXN1bHQgKz0gc2lkZUNvZGVMaW5rQnVmZmVyLT5zaXplKCk7
CisgICAgcmVzdWx0ICs9IGhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLT5zaXplKCk7CisgICAg
CisgICAgZm9yICh1bnNpZ25lZCBpID0gaml0Q29kZS0+aGFuZGxlcygpLnNpemUoKTsgaS0tOykK
KyAgICAgICAgcmVzdWx0ICs9IGppdENvZGUtPmhhbmRsZXMoKVtpXS0+c2l6ZUluQnl0ZXMoKTsK
KyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBib29sIEpJVEZpbmFsaXplcjo6ZmluYWxp
emUoKQogewogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC03Myw5ICs4OSw3
IEBAIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZUZ1bmN0aW9uKCkKICAgICAgICAgICAgIGV4
aXRUaHVua3NMaW5rQnVmZmVyLT5saW5rKAogICAgICAgICAgICAgICAgIGluZm8ubV90aHVua0p1
bXAsCiAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwoCi0gICAgICAgICAgICAgICAg
ICAgIG1fcGxhbi52bS5mdGxUaHVua3MtPmdldE9TUkV4aXRHZW5lcmF0aW9uVGh1bmsoCi0gICAg
ICAgICAgICAgICAgICAgICAgICBtX3BsYW4udm0sIExvY2F0aW9uOjpmb3JTdGFja21hcHMoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmppdENvZGUtPnN0YWNrbWFwcywgaXRlci0+dmFs
dWUubG9jYXRpb25zWzBdKSkuY29kZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIG1fcGxhbi52
bS5nZXRDVElTdHViKG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSkpOwog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBqaXRDb2RlLT5pbml0aWFsaXplRXhpdFRodW5r
cygKQEAgLTEwMiwxNSArMTE2LDI2IEBAIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZUZ1bmN0
aW9uKCkKICAgICAgICAgICAgIC5leGVjdXRhYmxlTWVtb3J5KCkpOwogICAgIH0KICAgICAKKyAg
ICBpZiAoaGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXIpIHsKKyAgICAgICAgaml0Q29kZS0+YWRk
SGFuZGxlKEZJTkFMSVpFX0RGR19DT0RFKAorICAgICAgICAgICAgKmhhbmRsZUV4Y2VwdGlvbnNM
aW5rQnVmZmVyLAorICAgICAgICAgICAgKCJGVEwgZXhjZXB0aW9uIGhhbmRsZXIgZm9yICVzIiwK
KyAgICAgICAgICAgICAgICB0b0NTdHJpbmcoQ29kZUJsb2NrV2l0aEpJVFR5cGUobV9wbGFuLmNv
ZGVCbG9jay5nZXQoKSwgSklUQ29kZTo6RlRMSklUKSkuZGF0YSgpKSkKKyAgICAgICAgICAgIC5l
eGVjdXRhYmxlTWVtb3J5KCkpOworICAgIH0KKyAgICAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgd2l0aEFyaXR5Q2hlY2s7CiAgICAgaWYgKGFyaXR5Q2hlY2suaXNTZXQoKSkKICAgICAgICAg
d2l0aEFyaXR5Q2hlY2sgPSBlbnRyeXBvaW50TGlua0J1ZmZlci0+bG9jYXRpb25PZihhcml0eUNo
ZWNrKTsKLSAgICBqaXRDb2RlLT5pbml0aWFsaXplQ29kZSgKKyAgICBqaXRDb2RlLT5pbml0aWFs
aXplQXJpdHlDaGVja0VudHJ5cG9pbnQoCiAgICAgICAgIEZJTkFMSVpFX0RGR19DT0RFKAogICAg
ICAgICAgICAgKmVudHJ5cG9pbnRMaW5rQnVmZmVyLAogICAgICAgICAgICAgKCJGVEwgZW50cnlw
b2ludCB0aHVuayBmb3IgJXMgd2l0aCBMTFZNIGdlbmVyYXRlZCBjb2RlIGF0ICVwIiwgdG9DU3Ry
aW5nKENvZGVCbG9ja1dpdGhKSVRUeXBlKG1fcGxhbi5jb2RlQmxvY2suZ2V0KCksIEpJVENvZGU6
OkZUTEpJVCkpLmRhdGEoKSwgZnVuY3Rpb24pKSk7CiAgICAgCi0gICAgbV9wbGFuLmNvZGVCbG9j
ay0+c2V0SklUQ29kZShqaXRDb2RlLCB3aXRoQXJpdHlDaGVjayk7CisgICAgbV9wbGFuLmNvZGVC
bG9jay0+c2V0SklUQ29kZShqaXRDb2RlKTsKKyAgICAKKyAgICBpZiAobV9wbGFuLmNvbXBpbGF0
aW9uKQorICAgICAgICBtX3BsYW4udm0ubV9wZXJCeXRlY29kZVByb2ZpbGVyLT5hZGRDb21waWxh
dGlvbihtX3BsYW4uY29tcGlsYXRpb24pOwogICAgIAogICAgIHJldHVybiB0cnVlOwogfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMiArNDYsMTQgQEAgcHVibGljOgogICAgIEpJVEZpbmFs
aXplcihERkc6OlBsYW4mKTsKICAgICB2aXJ0dWFsIH5KSVRGaW5hbGl6ZXIoKTsKICAgICAKLSAg
ICBib29sIGZpbmFsaXplKCk7Ci0gICAgYm9vbCBmaW5hbGl6ZUZ1bmN0aW9uKCk7CisgICAgc2l6
ZV90IGNvZGVTaXplKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwor
ICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOwogCiAgICAgT3duUHRyPExpbmtC
dWZmZXI+IGV4aXRUaHVua3NMaW5rQnVmZmVyOwogICAgIE93blB0cjxMaW5rQnVmZmVyPiBlbnRy
eXBvaW50TGlua0J1ZmZlcjsKICAgICBPd25QdHI8TGlua0J1ZmZlcj4gc2lkZUNvZGVMaW5rQnVm
ZmVyOworICAgIE93blB0cjxMaW5rQnVmZmVyPiBoYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlcjsK
ICAgICBWZWN0b3I8U2xvd1BhdGhDYWxsPiBzbG93UGF0aENhbGxzOyAvLyBDYWxscyBpbnNpZGUg
dGhlIHNpZGUgY29kZS4KICAgICBWZWN0b3I8T1NSRXhpdENvbXBpbGF0aW9uSW5mbz4gb3NyRXhp
dDsKICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgYXJpdHlDaGVjazsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMSlNDYWxsLmgiCisKKyNpZiBFTkFCTEUoRlRM
X0pJVCkKKworI2luY2x1ZGUgIkRGR05vZGUuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBGVEwgeworCitKU0NhbGw6OkpTQ2FsbCh1bnNpZ25lZCBzdGFja21hcElELCBERkc6Ok5vZGUq
IG5vZGUpCisgICAgOiBtX3N0YWNrbWFwSUQoc3RhY2ttYXBJRCkKKyAgICAsIG1fbm9kZShub2Rl
KQorICAgICwgbV9pbnN0cnVjdGlvbk9mZnNldCgwKQoreworfQorCit2b2lkIEpTQ2FsbDo6ZW1p
dChDQ2FsbEhlbHBlcnMmIGppdCkKK3sKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgc2xvd1BhdGgg
PSBqaXQuYnJhbmNoUHRyV2l0aFBhdGNoKAorICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFs
LCBHUFJJbmZvOjpyZWdUMCwgbV90YXJnZXRUb0NoZWNrLAorICAgICAgICBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoMCkpOworICAgIAorICAgIGppdC5sb2FkUHRyKAorICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTRnVuY3Rpb246Om9mZnNldE9mU2Nv
cGVDaGFpbigpKSwKKyAgICAgICAgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5zdG9yZTY0KAor
ICAgICAgICBHUFJJbmZvOjpyZWdUMSwKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKAor
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwKKyAgICAgICAg
ICAgIHNpemVvZihSZWdpc3RlcikgKiAoSlNTdGFjazo6U2NvcGVDaGFpbiAtIEpTU3RhY2s6OkNh
bGxlckZyYW1lQW5kUENTaXplKSkpOworICAgIAorICAgIG1fZmFzdENhbGwgPSBqaXQubmVhckNh
bGwoKTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CisgICAgCisg
ICAgc2xvd1BhdGgubGluaygmaml0KTsKKyAgICBtX3Nsb3dDYWxsID0gaml0Lm5lYXJDYWxsKCk7
CisgICAgCisgICAgZG9uZS5saW5rKCZqaXQpOworfQorCit2b2lkIEpTQ2FsbDo6bGluayhWTSYg
dm0sIExpbmtCdWZmZXImIGxpbmtCdWZmZXIsIENhbGxMaW5rSW5mbyYgY2FsbEluZm8pCit7Cisg
ICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAg
ICAgICBtX25vZGUtPm9wKCkgPT0gREZHOjpDb25zdHJ1Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDog
Q29kZUZvckNhbGwsCisgICAgICAgIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7CisgICAgCisgICAg
bGlua0J1ZmZlci5saW5rKAorICAgICAgICBtX3Nsb3dDYWxsLCBGdW5jdGlvblB0cih2bS5nZXRD
VElTdHViKGdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAKKyAg
ICBjYWxsSW5mby5pc0ZUTCA9IHRydWU7CisgICAgY2FsbEluZm8uY2FsbFR5cGUgPSBtX25vZGUt
Pm9wKCkgPT0gREZHOjpDb25zdHJ1Y3QgPyBDYWxsTGlua0luZm86OkNvbnN0cnVjdCA6IENhbGxM
aW5rSW5mbzo6Q2FsbDsKKyAgICBjYWxsSW5mby5jb2RlT3JpZ2luID0gbV9ub2RlLT5jb2RlT3Jp
Z2luOworICAgIGNhbGxJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGxpbmtCdWZmZXIubG9jYXRp
b25PZk5lYXJDYWxsKG1fc2xvd0NhbGwpOworICAgIGNhbGxJbmZvLmhvdFBhdGhCZWdpbiA9IGxp
bmtCdWZmZXIubG9jYXRpb25PZihtX3RhcmdldFRvQ2hlY2spOworICAgIGNhbGxJbmZvLmhvdFBh
dGhPdGhlciA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fZmFzdENhbGwpOworICAg
IGNhbGxJbmZvLmNhbGxlZUdQUiA9IEdQUkluZm86OnJlZ1QwOworfQorCit9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
RlRMSlNDYWxsX2gKKyNkZWZpbmUgRlRMSlNDYWxsX2gKKworI2lmIEVOQUJMRShGVExfSklUKQor
CisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiQ2FsbExpbmtJbmZvLmgiCisj
aW5jbHVkZSAiQ29kZU9yaWdpbi5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKworbmFtZXNw
YWNlIEpTQyB7CisKK25hbWVzcGFjZSBERkcgeworc3RydWN0IE5vZGU7Cit9CisKK25hbWVzcGFj
ZSBGVEwgeworCitjbGFzcyBKU0NhbGwgeworcHVibGljOgorICAgIEpTQ2FsbCh1bnNpZ25lZCBz
dGFja21hcElELCBERkc6Ok5vZGUqKTsKKyAgICAKKyAgICB2b2lkIGVtaXQoQ0NhbGxIZWxwZXJz
Jik7CisgICAgdm9pZCBsaW5rKFZNJiwgTGlua0J1ZmZlciYsIENhbGxMaW5rSW5mbyYpOworICAg
IAorICAgIHVuc2lnbmVkIHN0YWNrbWFwSUQoKSBjb25zdCB7IHJldHVybiBtX3N0YWNrbWFwSUQ7
IH0KKyAgICAKKyAgICBib29sIG9wZXJhdG9yPChjb25zdCBKU0NhbGwmIG90aGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW5zdHJ1Y3Rpb25PZmZzZXQgPCBvdGhlci5tX2luc3Ry
dWN0aW9uT2Zmc2V0OworICAgIH0KKyAgICAKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV9zdGFj
a21hcElEOworICAgIERGRzo6Tm9kZSogbV9ub2RlOworICAgIENDYWxsSGVscGVyczo6RGF0YUxh
YmVsUHRyIG1fdGFyZ2V0VG9DaGVjazsKKyAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgbV9mYXN0Q2Fs
bDsKKyAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgbV9zbG93Q2FsbDsKKworcHVibGljOgorICAgIHVp
bnQzMl90IG1faW5zdHJ1Y3Rpb25PZmZzZXQ7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTEpTQ2FsbF9o
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKKyNpbmNsdWRlICJB
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgog
I2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklU
VHlwZS5oIgpAQCAtMzcsMTIxICszOCwxNTAgQEAKICNpbmNsdWRlICJKSVRTdHVicy5oIgogI2lu
Y2x1ZGUgIkxMVk1BUEkuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiUHJv
ZmlsZXJDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBERkc7CiAKLXN0
YXRpYyB2b2lkIGNvbXBpbGVFbnRyeShDQ2FsbEhlbHBlcnMmIGppdCkKLXsKLSAgICBqaXQucHJl
c2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86OnJlZ1QyKTsKLSAgICBqaXQuZW1p
dFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6cmVnVDIpOwotICAgIGppdC5l
bWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJhbWVIZWFkZXIoaml0LmNvZGVCbG9jaygpLCBKU1N0YWNr
OjpDb2RlQmxvY2spOwotfQotCiB2b2lkIGxpbmsoU3RhdGUmIHN0YXRlKQogewotICAgIENvZGVC
bG9jayogY29kZUJsb2NrID0gc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2s7CisgICAgR3JhcGgmIGdy
YXBoID0gc3RhdGUuZ3JhcGg7CisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBncmFwaC5tX2Nv
ZGVCbG9jazsKKyAgICBWTSYgdm0gPSBncmFwaC5tX3ZtOwogICAgIAogICAgIC8vIExMVk0gd2ls
bCBjcmVhdGUgaXRzIG93biBqdW1wIHRhYmxlcyBhcyBuZWVkZWQuCiAgICAgY29kZUJsb2NrLT5j
bGVhclN3aXRjaEp1bXBUYWJsZXMoKTsKICAgICAKLSAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24u
ZnJhbWVSZWdpc3RlckNvdW50ID0gc3RhdGUuZ3JhcGguZnJhbWVSZWdpc3RlckNvdW50KCk7Ci0g
ICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQgPSBz
dGF0ZS5ncmFwaC5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0KCk7CisgICAgLy8gRklYTUU6
IE5lZWQgdG8ga25vdyB0aGUgcmVhbCBmcmFtZSByZWdpc3RlciBjb3VudC4KKyAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NzI3CisgICAgc3RhdGUuaml0
Q29kZS0+Y29tbW9uLmZyYW1lUmVnaXN0ZXJDb3VudCA9IDEwMDA7CisgICAgCisgICAgc3RhdGUu
aml0Q29kZS0+Y29tbW9uLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQgPSBncmFwaC5yZXF1
aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0KCk7CiAgICAgCi0gICAgaWYgKCFzdGF0ZS5ncmFwaC5t
X2lubGluZUNhbGxGcmFtZXMtPmlzRW1wdHkoKSkKLSAgICAgICAgc3RhdGUuaml0Q29kZS0+Y29t
bW9uLmlubGluZUNhbGxGcmFtZXMgPSBzdGQ6Om1vdmUoc3RhdGUuZ3JhcGgubV9pbmxpbmVDYWxs
RnJhbWVzKTsKKyAgICBpZiAoIWdyYXBoLm1faW5saW5lQ2FsbEZyYW1lcy0+aXNFbXB0eSgpKQor
ICAgICAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24uaW5saW5lQ2FsbEZyYW1lcyA9IHN0ZDo6bW92
ZShncmFwaC5tX2lubGluZUNhbGxGcmFtZXMpOwogICAgIAogICAgIC8vIENyZWF0ZSB0aGUgZW50
cnlwb2ludC4gTm90ZSB0aGF0IHdlIHVzZSB0aGlzIGVudHJ5cG9pbnQgdG90YWxseSBkaWZmZXJl
bnRseQogICAgIC8vIGRlcGVuZGluZyBvbiB3aGV0aGVyIHdlJ3JlIGRvaW5nIE9TUiBlbnRyeSBv
ciBub3QuCi0gICAgLy8gRklYTUU6IEV4Y2VwdCBmb3IgT1NSIGVudHJ5LCB0aGlzIGlzIGEgdG90
YWwga2x1ZGdlIC0gTExWTSBzaG91bGQganVzdCB1c2Ugb3VyCi0gICAgLy8gY2FsbGluZyBjb252
ZW50aW9uLgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTM2MjEKLSAgICBDQ2FsbEhlbHBlcnMgaml0KCZzdGF0ZS5ncmFwaC5tX3ZtLCBjb2RlQmxvY2sp
OworICAgIENDYWxsSGVscGVycyBqaXQoJnZtLCBjb2RlQmxvY2spOwogICAgIAogICAgIE93blB0
cjxMaW5rQnVmZmVyPiBsaW5rQnVmZmVyOwogICAgIENDYWxsSGVscGVyczo6TGFiZWwgYXJpdHlD
aGVjazsKLSAgICBzd2l0Y2ggKHN0YXRlLmdyYXBoLm1fcGxhbi5tb2RlKSB7Ci0gICAgY2FzZSBG
VExNb2RlOiB7Ci0gICAgICAgIGNvbXBpbGVFbnRyeShqaXQpOworCisgICAgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzIGZyYW1lID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKAorICAgICAgICBDQ2FsbEhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAtc3RhdGljX2Nhc3Q8aW50MzJfdD4oc2l6ZW9m
KHZvaWQqKSkpOwogICAgIAotICAgICAgICAvLyBUaGlzIHBhcnQgaXMgb25seSBuZWNlc3Nhcnkg
Zm9yIGZ1bmN0aW9ucy4gV2UgY3VycmVudGx5IG9ubHkgY29tcGlsZSBmdW5jdGlvbnMuCi0gICAg
ICAgIAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGZyb21Bcml0eUNoZWNrID0gaml0Lmxh
YmVsKCk7Ci0gICAgICAgIAotICAgICAgICAvLyBQbGFudCBhIGNoZWNrIHRoYXQgc3VmZmljaWVu
dCBzcGFjZSBpcyBhdmFpbGFibGUgaW4gdGhlIEpTU3RhY2suCi0gICAgICAgIC8vIEZJWE1FOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyOTEKLSAgICAgICAgaml0
LmFkZFB0cigKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHZpcnR1YWxS
ZWdpc3RlckZvckxvY2FsKHN0YXRlLmppdENvZGUtPmNvbW1vbi5yZXF1aXJlZFJlZ2lzdGVyQ291
bnRGb3JFeGl0KS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLAotICAgICAgICAgICAgR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wIHN0YWNrQ2hlY2sgPSBqaXQuYnJhbmNoUHRyKAotICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpBYm92ZSwKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRy
ZXNzKHN0YXRlLmdyYXBoLm1fdm0uYWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLAotICAgICAgICAg
ICAgR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGZyb21TdGFj
a0NoZWNrID0gaml0LmxhYmVsKCk7Ci0gICAgICAgIAotICAgICAgICBqaXQuc2V0dXBBcmd1bWVu
dHNFeGVjU3RhdGUoKTsKLSAgICAgICAgaml0Lm1vdmUoCi0gICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3RhdGUuZ2VuZXJhdGVk
RnVuY3Rpb24pKSwKLSAgICAgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgICAgICBq
aXQuY2FsbChHUFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICAgICAgaml0LmVtaXRHZXRSZXR1cm5Q
Q0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICBqaXQuZW1p
dEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3Rlcik7Ci0gICAgICAgIGppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihH
UFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIGppdC5yZXQoKTsKLSAgICAgICAgCi0gICAgICAgIHN0
YWNrQ2hlY2subGluaygmaml0KTsKLSAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKGNvZGVCbG9jayksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgIGpp
dC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwotICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0ZWNvZGVPZmZzZXQoMCkpLAot
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjp0YWdGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lz
dGVyPihKU1N0YWNrOjpBcmd1bWVudENvdW50KSkpOwotICAgICAgICBqaXQuc3RvcmVQdHIoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsICZzdGF0ZS5ncmFwaC5tX3ZtLnRvcENhbGxGcmFtZSk7
Ci0gICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxsU3RhY2tDaGVjayA9IGppdC5jYWxsKCk7
Ci0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgICAgICAvLyBGSVhNRTogbmVlZCB0byBtYWtlIHRo
aXMgY2FsbCByZWdpc3RlciB3aXRoIGV4Y2VwdGlvbiBoYW5kbGluZyBzb21laG93LiBUaGlzIGlz
Ci0gICAgICAgIC8vIHBhcnQgb2YgYSBiaWdnZXIgcHJvYmxlbTogRlRMIHNob3VsZCBiZSBhYmxl
IHRvIGhhbmRsZSBleGNlcHRpb25zLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIyCi0gICAgICAgIC8vIFVudGlsIHRoZW4sIHVzZSBhIEpJ
VCBBU1NFUlQuCi0gICAgICAgIGppdC5sb2FkNjQoc3RhdGUuZ3JhcGgubV92bS5hZGRyZXNzT2ZF
eGNlcHRpb24oKSwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICBqaXQuaml0QXNzZXJ0SXNOdWxs
KEdQUkluZm86OnJlZ1QwKTsKLSNlbmRpZgotICAgICAgICBqaXQuanVtcChmcm9tU3RhY2tDaGVj
ayk7CisgICAgaWYgKFByb2ZpbGVyOjpDb21waWxhdGlvbiogY29tcGlsYXRpb24gPSBncmFwaC5j
b21waWxhdGlvbigpKSB7CisgICAgICAgIGNvbXBpbGF0aW9uLT5hZGREZXNjcmlwdGlvbigKKyAg
ICAgICAgICAgIFByb2ZpbGVyOjpPcmlnaW5TdGFjaygpLAorICAgICAgICAgICAgdG9DU3RyaW5n
KCJHZW5lcmF0ZWQgRlRMIEpJVCBjb2RlIGZvciAiLCBDb2RlQmxvY2tXaXRoSklUVHlwZShjb2Rl
QmxvY2ssIEpJVENvZGU6OkZUTEpJVCksICIsIGluc3RydWN0aW9uIGNvdW50ID0gIiwgZ3JhcGgu
bV9jb2RlQmxvY2stPmluc3RydWN0aW9uQ291bnQoKSwgIjpcbiIpKTsKKyAgICAgICAgCisgICAg
ICAgIGdyYXBoLm1fZG9taW5hdG9ycy5jb21wdXRlSWZOZWNlc3NhcnkoZ3JhcGgpOworICAgICAg
ICBncmFwaC5tX25hdHVyYWxMb29wcy5jb21wdXRlSWZOZWNlc3NhcnkoZ3JhcGgpOworICAgICAg
ICAKKyAgICAgICAgY29uc3QgY2hhciogcHJlZml4ID0gIiAgICAiOworICAgICAgICAKKyAgICAg
ICAgRHVtcENvbnRleHQgZHVtcENvbnRleHQ7CisgICAgICAgIFN0cmluZ1ByaW50U3RyZWFtIG91
dDsKKyAgICAgICAgTm9kZSogbGFzdE5vZGUgPSAwOworICAgICAgICBmb3IgKHNpemVfdCBibG9j
a0luZGV4ID0gMDsgYmxvY2tJbmRleCA8IGdyYXBoLm51bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgp
IHsKKyAgICAgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gZ3JhcGguYmxvY2soYmxvY2tJbmRl
eCk7CisgICAgICAgICAgICBpZiAoIWJsb2NrKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBncmFwaC5kdW1wQmxvY2tIZWFkZXIob3V0LCBwcmVm
aXgsIGJsb2NrLCBHcmFwaDo6RHVtcExpdmVQaGlzT25seSwgJmR1bXBDb250ZXh0KTsKKyAgICAg
ICAgICAgIGNvbXBpbGF0aW9uLT5hZGREZXNjcmlwdGlvbihQcm9maWxlcjo6T3JpZ2luU3RhY2so
KSwgb3V0LnRvQ1N0cmluZygpKTsKKyAgICAgICAgICAgIG91dC5yZXNldCgpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBmb3IgKHNpemVfdCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBi
bG9jay0+c2l6ZSgpOyArK25vZGVJbmRleCkgeworICAgICAgICAgICAgICAgIE5vZGUqIG5vZGUg
PSBibG9jay0+YXQobm9kZUluZGV4KTsKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGUtPndpbGxI
YXZlQ29kZUdlbk9yT1NSKCkgJiYgIU9wdGlvbnM6OnNob3dBbGxERkdOb2RlcygpKQorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBQcm9maWxlcjo6T3JpZ2luU3RhY2sgc3RhY2s7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgaWYgKG5vZGUtPmNvZGVPcmlnaW4uaXNTZXQoKSkgeworICAgICAgICAgICAgICAg
ICAgICBzdGFjayA9IFByb2ZpbGVyOjpPcmlnaW5TdGFjaygKKyAgICAgICAgICAgICAgICAgICAg
ICAgICp2bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXIsIGNvZGVCbG9jaywgbm9kZS0+Y29kZU9yaWdp
bik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IGlmIChncmFwaC5kdW1wQ29kZU9yaWdpbihvdXQsIHByZWZpeCwgbGFzdE5vZGUsIG5vZGUsICZk
dW1wQ29udGV4dCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsYXRpb24tPmFkZERlc2Ny
aXB0aW9uKHN0YWNrLCBvdXQudG9DU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBvdXQu
cmVzZXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgZ3JhcGguZHVtcChvdXQsIHByZWZpeCwgbm9kZSwgJmR1bXBDb250ZXh0KTsKKyAgICAg
ICAgICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oc3RhY2ssIG91dC50b0NTdHJp
bmcoKSk7CisgICAgICAgICAgICAgICAgb3V0LnJlc2V0KCk7CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgaWYgKG5vZGUtPmNvZGVPcmlnaW4uaXNTZXQoKSkKKyAgICAgICAgICAg
ICAgICAgICAgbGFzdE5vZGUgPSBub2RlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBkdW1wQ29udGV4dC5kdW1wKG91dCwgcHJlZml4KTsKKyAgICAgICAgY29t
cGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKFByb2ZpbGVyOjpPcmlnaW5TdGFjaygpLCBvdXQudG9D
U3RyaW5nKCkpOworICAgICAgICBvdXQucmVzZXQoKTsKKyAgICAgICAgCisgICAgICAgIG91dC5w
cmludCgiICAgIERpc2Fzc2VtYmx5OlxuIik7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKCkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAg
IGlmIChzdGF0ZS5jb2RlU2VjdGlvbk5hbWVzW2ldICE9ICJfX3RleHQiKQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgRXhlY3V0YWJsZU1l
bW9yeUhhbmRsZSogaGFuZGxlID0gc3RhdGUuaml0Q29kZS0+aGFuZGxlcygpW2ldLmdldCgpOwor
ICAgICAgICAgICAgICAgIGRpc2Fzc2VtYmxlKAorICAgICAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoaGFuZGxlLT5zdGFydCgpKSwgaGFuZGxlLT5zaXplSW5CeXRlcygpLAor
ICAgICAgICAgICAgICAgICAgICAiICAgICAgIiwgb3V0LCBMTFZNU3Vic2V0KTsKKyAgICAgICAg
fQorICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oUHJvZmlsZXI6Ok9yaWdpblN0
YWNrKCksIG91dC50b0NTdHJpbmcoKSk7CisgICAgICAgIG91dC5yZXNldCgpOwogICAgICAgICAK
LSAgICAgICAgYXJpdHlDaGVjayA9IGppdC5sYWJlbCgpOwotICAgICAgICBjb21waWxlRW50cnko
aml0KTsKKyAgICAgICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmNvbXBpbGF0aW9uID0gY29tcGls
YXRpb247CisgICAgfQorICAgIAorICAgIHN3aXRjaCAoZ3JhcGgubV9wbGFuLm1vZGUpIHsKKyAg
ICBjYXNlIEZUTE1vZGU6IHsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtYWluUGF0
aEp1bXBzOworICAgIAogICAgICAgICBqaXQubG9hZDMyKAotICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpwYXlsb2FkRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNTdGFjazo6QXJn
dW1lbnRDb3VudCkpLAorICAgICAgICAgICAgZnJhbWUud2l0aE9mZnNldChzaXplb2YoUmVnaXN0
ZXIpICogSlNTdGFjazo6QXJndW1lbnRDb3VudCksCiAgICAgICAgICAgICBHUFJJbmZvOjpyZWdU
MSk7Ci0gICAgICAgIGppdC5icmFuY2gzMigKKyAgICAgICAgbWFpblBhdGhKdW1wcy5hcHBlbmQo
aml0LmJyYW5jaDMyKAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBYm92ZU9yRXF1YWwsIEdQ
UkluZm86OnJlZ1QxLAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY29k
ZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKQotICAgICAgICAgICAgLmxpbmtUbyhmcm9tQXJpdHlD
aGVjaywgJmppdCk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihjb2Rl
QmxvY2stPm51bVBhcmFtZXRlcnMoKSkpKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xv
Z3VlKCk7CiAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogICAgICAgICBqaXQuc3RvcmUzMigKICAgICAgICAgICAgIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0
ZWNvZGVPZmZzZXQoMCkpLAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjp0YWdGb3Ioc3RhdGlj
X2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihKU1N0YWNrOjpBcmd1bWVudENvdW50KSkpOwotICAgICAg
ICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsICZzdGF0ZS5ncmFwaC5t
X3ZtLnRvcENhbGxGcmFtZSk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihKU1N0
YWNrOjpBcmd1bWVudENvdW50KSk7CisgICAgICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgJnZtLnRvcENhbGxGcmFtZSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6
Q2FsbCBjYWxsQXJpdHlDaGVjayA9IGppdC5jYWxsKCk7CiAjaWYgIUFTU0VSVF9ESVNBQkxFRAog
ICAgICAgICAvLyBGSVhNRTogbmVlZCB0byBtYWtlIHRoaXMgY2FsbCByZWdpc3RlciB3aXRoIGV4
Y2VwdGlvbiBoYW5kbGluZyBzb21laG93LiBUaGlzIGlzCiAgICAgICAgIC8vIHBhcnQgb2YgYSBi
aWdnZXIgcHJvYmxlbTogRlRMIHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZSBleGNlcHRpb25zLgog
ICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIy
CiAgICAgICAgIC8vIFVudGlsIHRoZW4sIHVzZSBhIEpJVCBBU1NFUlQuCi0gICAgICAgIGppdC5s
b2FkNjQoc3RhdGUuZ3JhcGgubV92bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwgR1BSSW5mbzo6cmVn
VDEpOworICAgICAgICBqaXQubG9hZDY0KHZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBHUFJJbmZv
OjpyZWdUMSk7CiAgICAgICAgIGppdC5qaXRBc3NlcnRJc051bGwoR1BSSW5mbzo6cmVnVDEpOwog
I2VuZGlmCi0gICAgICAgIGlmIChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiAhPSBHUFJJbmZvOjpy
ZWdUMCkKLSAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJ
bmZvOjpyZWdUMCk7Ci0gICAgICAgIGppdC5icmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpaZXJv
LCBHUFJJbmZvOjpyZWdUMCkubGlua1RvKGZyb21Bcml0eUNoZWNrLCAmaml0KTsKKyAgICAgICAg
aml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAg
ICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAgIG1haW5QYXRoSnVtcHMuYXBw
ZW5kKGppdC5icmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMCkp
OworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKyAgICAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZtLmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtz
LT5yZXR1cm5QQ3NGb3Iodm0sIGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSksIEdQUkluZm86
OnJlZ1Q1KTsKKyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoR1BS
SW5mbzo6cmVnVDUsIEdQUkluZm86OnJlZ1QwLCBDQ2FsbEhlbHBlcnM6OnRpbWVzUHRyKCkpLCBH
UFJJbmZvOjpyZWdUNSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxsQXJpdHlGaXh1
cCA9IGppdC5jYWxsKCk7Ci0gICAgICAgIGppdC5qdW1wKGZyb21Bcml0eUNoZWNrKTsKLSAgICAg
ICAgCi0gICAgICAgIGxpbmtCdWZmZXIgPSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcihzdGF0ZS5n
cmFwaC5tX3ZtLCAmaml0LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsK
LSAgICAgICAgbGlua0J1ZmZlci0+bGluayhjYWxsU3RhY2tDaGVjaywgb3BlcmF0aW9uU3RhY2tD
aGVjayk7CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworICAgICAgICBtYWlu
UGF0aEp1bXBzLmFwcGVuZChqaXQuanVtcCgpKTsKKworICAgICAgICBsaW5rQnVmZmVyID0gYWRv
cHRQdHIobmV3IExpbmtCdWZmZXIodm0sICZqaXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25N
dXN0U3VjY2VlZCkpOwogICAgICAgICBsaW5rQnVmZmVyLT5saW5rKGNhbGxBcml0eUNoZWNrLCBj
b2RlQmxvY2stPm1faXNDb25zdHJ1Y3RvciA/IG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2sg
OiBvcGVyYXRpb25DYWxsQXJpdHlDaGVjayk7Ci0gICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2Fs
bEFyaXR5Rml4dXAsIEZ1bmN0aW9uUHRyKChzdGF0ZS5ncmFwaC5tX3ZtLmdldENUSVN0dWIoYXJp
dHlGaXh1cCkpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7CisgICAgICAgIGxpbmtCdWZm
ZXItPmxpbmsoY2FsbEFyaXR5Rml4dXAsIEZ1bmN0aW9uUHRyKCh2bS5nZXRDVElTdHViKGFyaXR5
Rml4dXApKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgICAgICBsaW5rQnVmZmVy
LT5saW5rKG1haW5QYXRoSnVtcHMsIENvZGVMb2NhdGlvbkxhYmVsKGJpdHdpc2VfY2FzdDx2b2lk
Kj4oc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24pKSk7CisKKyAgICAgICAgc3RhdGUuaml0Q29kZS0+
aW5pdGlhbGl6ZUFkZHJlc3NGb3JDYWxsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cihiaXR3aXNlX2Nh
c3Q8dm9pZCo+KHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uKSkpOwogICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgICAgIApAQCAtMTYwLDE4ICsxOTAsMTQgQEAgdm9pZCBsaW5rKFN0YXRlJiBzdGF0
ZSkKICAgICAgICAgLy8gdmFsdWVzIGludG8gdGhlIHNjcmF0Y2ggYnVmZmVyLiBFdmVyeXRoaW5n
IHNob3VsZCBiZSBnb29kIHRvIGdvIC0gYXQgdGhpcwogICAgICAgICAvLyBwb2ludCB3ZSd2ZSBl
dmVuIGRvbmUgdGhlIHN0YWNrIGNoZWNrLiBCYXNpY2FsbHkgd2UganVzdCBoYXZlIHRvIG1ha2Ug
dGhlCiAgICAgICAgIC8vIGNhbGwgdG8gdGhlIExMVk0tZ2VuZXJhdGVkIGNvZGUuCi0gICAgICAg
IGppdC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwotICAgICAgICBqaXQubW92ZSgKLSAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQq
PihzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbikpLAotICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJn
R1BSMCk7Ci0gICAgICAgIGppdC5jYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgICAgICBq
aXQuZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMSk7
Ci0gICAgICAgIGppdC5lbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAgICAgaml0LnJlc3RvcmVSZXR1cm5BZGRy
ZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0LnJldCgpOworICAg
ICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIHN0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgICAgIGpp
dC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbWFp
blBhdGhKdW1wID0gaml0Lmp1bXAoKTsKICAgICAgICAgCi0gICAgICAgIGxpbmtCdWZmZXIgPSBh
ZG9wdFB0cihuZXcgTGlua0J1ZmZlcigKLSAgICAgICAgICAgIHN0YXRlLmdyYXBoLm1fdm0sICZq
aXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOworICAgICAgICBsaW5r
QnVmZmVyID0gYWRvcHRQdHIobmV3IExpbmtCdWZmZXIodm0sICZqaXQsIGNvZGVCbG9jaywgSklU
Q29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOworICAgICAgICBsaW5rQnVmZmVyLT5saW5rKG1haW5Q
YXRoSnVtcCwgQ29kZUxvY2F0aW9uTGFiZWwoYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0ZS5nZW5l
cmF0ZWRGdW5jdGlvbikpKTsKKworICAgICAgICBzdGF0ZS5qaXRDb2RlLT5pbml0aWFsaXplQWRk
cmVzc0ZvckNhbGwobGlua0J1ZmZlci0+bG9jYXRpb25PZihzdGFydCkpOwogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCIKICNp
bmNsdWRlICJERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIgogI2luY2x1ZGUgIkZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaCIKKyNpbmNsdWRlICJGVExBdmFpbGFibGVSZWNvdmVyeS5oIgogI2lu
Y2x1ZGUgIkZUTEZvck9TUkVudHJ5SklUQ29kZS5oIgogI2luY2x1ZGUgIkZUTEZvcm1hdHRlZFZh
bHVlLmgiCiAjaW5jbHVkZSAiRlRMSW5saW5lQ2FjaGVTaXplLmgiCkBAIC01MSw2ICs1MiwxMCBA
QCB1c2luZyBuYW1lc3BhY2UgREZHOwogCiBzdGF0aWMgc3RkOjphdG9taWM8aW50PiBjb21waWxl
Q291bnRlcjsKIAorLy8gRklYTUU6IEdldCByaWQgb2YgdGhpcyBhbmQgaW50cm9kdWNlIGEgcmVh
bCBzdGFjayBjaGVjay4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjU2NTAKK3N0YXRpYyB1aW50cHRyX3Qgc3RhY2tMaW1pdDsKKwogLy8gVXNpbmcgdGhpcyBp
bnN0ZWFkIG9mIHR5cGVDaGVjaygpIGhlbHBzIHRvIHJlZHVjZSB0aGUgbG9hZCBvbiBMTFZNLCBi
eSBjcmVhdGluZwogLy8gc2lnbmlmaWNhbnRseSBsZXNzIGRlYWQgY29kZS4KICNkZWZpbmUgRlRM
X1RZUEVfQ0hFQ0sobG93VmFsdWUsIGhpZ2hWYWx1ZSwgdHlwZXNQYXNzZWRUaHJvdWdoLCBmYWls
Q29uZGl0aW9uKSBkbyB7IFwKQEAgLTkyLDE5ICs5NywyMCBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICBsbHZtLT5Nb2R1bGVDcmVhdGVXaXRoTmFtZUluQ29udGV4dChuYW1lLmRhdGEoKSwgbV9mdGxT
dGF0ZS5jb250ZXh0KTsKICAgICAgICAgCiAgICAgICAgIG1fZnRsU3RhdGUuZnVuY3Rpb24gPSBh
ZGRGdW5jdGlvbigKLSAgICAgICAgICAgIG1fZnRsU3RhdGUubW9kdWxlLCBuYW1lLmRhdGEoKSwg
ZnVuY3Rpb25UeXBlKG1fb3V0LmludDY0LCBtX291dC5pbnRQdHIpKTsKKyAgICAgICAgICAgIG1f
ZnRsU3RhdGUubW9kdWxlLCBuYW1lLmRhdGEoKSwgZnVuY3Rpb25UeXBlKG1fb3V0LmludDY0KSk7
CiAgICAgICAgIHNldEZ1bmN0aW9uQ2FsbGluZ0NvbnYobV9mdGxTdGF0ZS5mdW5jdGlvbiwgTExW
TUNDYWxsQ29udik7CisgICAgICAgIGlmIChpc1g4NigpICYmIE9wdGlvbnM6Omxsdm1EaXNhbGxv
d0FWWCgpKSB7CisgICAgICAgICAgICAvLyBBVlggbWFrZXMgVjgvcmF5dHJhY2UgODAlIHNsb3dl
ci4gSXQgbWFrZXMgS3Jha2VuL2F1ZGlvLW9zY2lsbGF0b3IgNC41eAorICAgICAgICAgICAgLy8g
c2xvd2VyLiBJdCBzaG91bGQgYmUgZGlzYWJsZWQuCisgICAgICAgICAgICBhZGRUYXJnZXREZXBl
bmRlbnRGdW5jdGlvbkF0dHIobV9mdGxTdGF0ZS5mdW5jdGlvbiwgInRhcmdldC1mZWF0dXJlcyIs
ICItYXZ4Iik7CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIG1fb3V0LmluaXRpYWxpemUo
bV9mdGxTdGF0ZS5tb2R1bGUsIG1fZnRsU3RhdGUuZnVuY3Rpb24sIG1faGVhcHMpOwogICAgICAg
ICAKLSAgICAgICAgbV9wcm9sb2d1ZSA9IGFwcGVuZEJhc2ljQmxvY2sobV9mdGxTdGF0ZS5jb250
ZXh0LCBtX2Z0bFN0YXRlLmZ1bmN0aW9uKTsKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8obV9wcm9s
b2d1ZSk7Ci0gICAgICAgIGNyZWF0ZVBoaVZhcmlhYmxlcygpOwotICAgICAgICAKLSAgICAgICAg
bV9jYWxsRnJhbWUgPSBtX291dC5wYXJhbSgwKTsKLSAgICAgICAgbV90YWdUeXBlTnVtYmVyID0g
bV9vdXQuY29uc3RJbnQ2NChUYWdUeXBlTnVtYmVyKTsKLSAgICAgICAgbV90YWdNYXNrID0gbV9v
dXQuY29uc3RJbnQ2NChUYWdNYXNrKTsKLSAgICAgICAgCisgICAgICAgIG1fcHJvbG9ndWUgPSBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIlByb2xvZ3VlIikpOworICAgICAgICBMQmFzaWNCbG9jayBz
dGFja092ZXJmbG93ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJTdGFjayBvdmVyZmxvdyIpKTsK
KyAgICAgICAgbV9oYW5kbGVFeGNlcHRpb25zID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJIYW5k
bGUgRXhjZXB0aW9ucyIpKTsKKwogICAgICAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9
IDA7IGJsb2NrSW5kZXggPCBtX2dyYXBoLm51bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgpIHsKICAg
ICAgICAgICAgIG1faGlnaEJsb2NrID0gbV9ncmFwaC5ibG9jayhibG9ja0luZGV4KTsKICAgICAg
ICAgICAgIGlmICghbV9oaWdoQmxvY2spCkBAIC0xMTIsOCArMTE4LDQyIEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIG1fYmxvY2tzLmFkZChtX2hpZ2hCbG9jaywgRlRMX05FV19CTE9DSyhtX291dCwg
KCJCbG9jayAiLCAqbV9oaWdoQmxvY2spKSk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAg
IG1fb3V0LmFwcGVuZFRvKG1fcHJvbG9ndWUpOwotICAgICAgICBtX291dC5qdW1wKGxvd0Jsb2Nr
KG1fZ3JhcGguYmxvY2soMCkpKTsKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8obV9wcm9sb2d1ZSwg
c3RhY2tPdmVyZmxvdyk7CisgICAgICAgIGNyZWF0ZVBoaVZhcmlhYmxlcygpOworICAgICAgICBM
VmFsdWUgY2FwdHVyZWRBbGxvY2EgPSBtX291dC5hbGxvY2EoYXJyYXlUeXBlKG1fb3V0LmludDY0
LCBtX2dyYXBoLm1fbmV4dE1hY2hpbmVMb2NhbCkpOworICAgICAgICBtX2NhcHR1cmVkID0gbV9v
dXQuYWRkKAorICAgICAgICAgICAgbV9vdXQucHRyVG9JbnQoY2FwdHVyZWRBbGxvY2EsIG1fb3V0
LmludFB0ciksCisgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihtX2dyYXBoLm1fbmV4dE1h
Y2hpbmVMb2NhbCAqIHNpemVvZihSZWdpc3RlcikpKTsKKyAgICAgICAgCisgICAgICAgIC8vIFdl
IHNob3VsZCBub3QgY3JlYXRlIGFueSBhbGxvY2EncyBhZnRlciB0aGlzIHBvaW50LCBzaW5jZSB0
aGV5IHdpbGwgY2Vhc2UgdG8KKyAgICAgICAgLy8gYmUgbWVtMnJlZyBjYW5kaWRhdGVzLgorICAg
ICAgICAKKyAgICAgICAgbV9mdGxTdGF0ZS5jYXB0dXJlZFN0YWNrbWFwSUQgPSBtX3N0YWNrbWFw
SURzKys7CisgICAgICAgIG1fb3V0LmNhbGwoCisgICAgICAgICAgICBtX291dC5zdGFja21hcElu
dHJpbnNpYygpLCBtX291dC5jb25zdEludDY0KG1fZnRsU3RhdGUuY2FwdHVyZWRTdGFja21hcElE
KSwKKyAgICAgICAgICAgIG1fb3V0LmludDMyWmVybywgY2FwdHVyZWRBbGxvY2EpOworICAgICAg
ICAKKyAgICAgICAgbV9jYWxsRnJhbWUgPSBtX291dC5wdHJUb0ludCgKKyAgICAgICAgICAgIG1f
b3V0LmNhbGwobV9vdXQuZnJhbWVBZGRyZXNzSW50cmluc2ljKCksIG1fb3V0LmludDMyWmVybyks
IG1fb3V0LmludFB0cik7CisgICAgICAgIG1fdGFnVHlwZU51bWJlciA9IG1fb3V0LmNvbnN0SW50
NjQoVGFnVHlwZU51bWJlcik7CisgICAgICAgIG1fdGFnTWFzayA9IG1fb3V0LmNvbnN0SW50NjQo
VGFnTWFzayk7CisgICAgICAgIAorICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5jb25zdElu
dFB0cihjb2RlQmxvY2soKSksIGFkZHJlc3NGb3IoSlNTdGFjazo6Q29kZUJsb2NrKSk7CisgICAg
ICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAgIG1fb3V0LmJlbG93KG1fY2FsbEZyYW1lLCBt
X291dC5sb2FkUHRyKG1fb3V0LmFic29sdXRlKCZzdGFja0xpbWl0KSkpLAorICAgICAgICAgICAg
c3RhY2tPdmVyZmxvdywgbG93QmxvY2sobV9ncmFwaC5ibG9jaygwKSkpOworICAgICAgICAKKyAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oc3RhY2tPdmVyZmxvdywgbV9oYW5kbGVFeGNlcHRpb25zKTsK
KyAgICAgICAgLy8gRklYTUU6IERvIGEgcmVhbCBzdGFjayBjaGVjayBhbmQgdGhyb3cgdGhlIGV4
Y2VwdGlvbiBhcHByb3ByaWF0ZWx5LgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NjUwCisgICAgICAgIG1fb3V0LmNyYXNoKCk7CisgICAgICAg
IAorICAgICAgICBtX291dC5hcHBlbmRUbyhtX2hhbmRsZUV4Y2VwdGlvbnMsIGxvd0Jsb2NrKG1f
Z3JhcGguYmxvY2soMCkpKTsKKyAgICAgICAgbV9mdGxTdGF0ZS5oYW5kbGVFeGNlcHRpb25TdGFj
a21hcElEID0gbV9zdGFja21hcElEcysrOworICAgICAgICBtX291dC5jYWxsKAorICAgICAgICAg
ICAgbV9vdXQuc3RhY2ttYXBJbnRyaW5zaWMoKSwgbV9vdXQuY29uc3RJbnQ2NChtX2Z0bFN0YXRl
LmhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQpLAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQz
MihNYWNyb0Fzc2VtYmxlcjo6bWF4SnVtcFJlcGxhY2VtZW50U2l6ZSgpKSk7CisgICAgICAgIG1f
b3V0LnVucmVhY2hhYmxlKCk7CiAgICAgICAgIAogICAgICAgICBWZWN0b3I8QmFzaWNCbG9jayo+
IGRlcHRoRmlyc3Q7CiAgICAgICAgIG1fZ3JhcGguZ2V0QmxvY2tzSW5EZXB0aEZpcnN0T3JkZXIo
ZGVwdGhGaXJzdCk7CkBAIC0yMjYsNiArMjY2LDggQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKHZl
cmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkKICAgICAgICAgICAgIGRhdGFMb2coIkxvd2VyaW5n
ICIsIG1fbm9kZSwgIlxuIik7CiAgICAgICAgIAorICAgICAgICBtX2F2YWlsYWJsZVJlY292ZXJp
ZXMucmVzaXplKDApOworICAgICAgICAKICAgICAgICAgYm9vbCBzaG91bGRFeGVjdXRlRWZmZWN0
cyA9IG1faW50ZXJwcmV0ZXIuc3RhcnRFeGVjdXRpbmcobV9ub2RlKTsKICAgICAgICAgCiAgICAg
ICAgIHN3aXRjaCAobV9ub2RlLT5vcCgpKSB7CkBAIC0yNjUsMTkgKzMwNywxNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgY29tcGlsZVZhbHVlQWRkKCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBBcml0aEFkZDoKLSAgICAgICAgICAgIGNvbXBpbGVBZGRTdWIoKTsKLSAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoU3ViOgotICAgICAgICAgICAgY29tcGls
ZUFkZFN1YigpOworICAgICAgICAgICAgY29tcGlsZUFyaXRoQWRkT3JTdWIoKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTXVsOgogICAgICAgICAgICAgY29tcGlsZUFy
aXRoTXVsKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcml0aERpdjoKLSAg
ICAgICAgICAgIGNvbXBpbGVBcml0aERpdk1vZCgpOworICAgICAgICAgICAgY29tcGlsZUFyaXRo
RGl2KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcml0aE1vZDoKLSAgICAg
ICAgICAgIGNvbXBpbGVBcml0aERpdk1vZCgpOworICAgICAgICAgICAgY29tcGlsZUFyaXRoTW9k
KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcml0aE1pbjoKICAgICAgICAg
Y2FzZSBBcml0aE1heDoKQEAgLTI4Niw2ICszMjYsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgY2Fz
ZSBBcml0aEFiczoKICAgICAgICAgICAgIGNvbXBpbGVBcml0aEFicygpOwogICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQXJpdGhTaW46CisgICAgICAgICAgICBjb21waWxlQXJpdGhT
aW4oKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFyaXRoQ29zOgorICAgICAg
ICAgICAgY29tcGlsZUFyaXRoQ29zKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBcml0aFNxcnQ6CisgICAgICAgICAgICBjb21waWxlQXJpdGhTcXJ0KCk7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBBcml0aE5lZ2F0ZToKICAgICAgICAgICAgIGNvbXBpbGVB
cml0aE5lZ2F0ZSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMjIsNiArMzcxLDkgQEAgcHJp
dmF0ZToKICAgICAgICAgY2FzZSBDaGVja0Z1bmN0aW9uOgogICAgICAgICAgICAgY29tcGlsZUNo
ZWNrRnVuY3Rpb24oKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENoZWNrRXhl
Y3V0YWJsZToKKyAgICAgICAgICAgIGNvbXBpbGVDaGVja0V4ZWN1dGFibGUoKTsKKyAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CiAgICAgICAgICAg
ICBjb21waWxlQXJyYXlpZnlUb1N0cnVjdHVyZSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0z
MzQsNiArMzg2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBHZXRCeUlkOgogICAgICAgICAg
ICAgY29tcGlsZUdldEJ5SWQoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFB1
dEJ5SWREaXJlY3Q6CiAgICAgICAgIGNhc2UgUHV0QnlJZDoKICAgICAgICAgICAgIGNvbXBpbGVQ
dXRCeUlkKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTM3Miw5ICs0MjUsMTggQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBOZXdBcnJheUJ1ZmZlcjoKICAgICAgICAgICAgIGNvbXBpbGVOZXdB
cnJheUJ1ZmZlcigpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTmV3QXJyYXlX
aXRoU2l6ZToKKyAgICAgICAgICAgIGNvbXBpbGVOZXdBcnJheVdpdGhTaXplKCk7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICAg
ICAgICAgIGNvbXBpbGVBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSgpOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgVG9TdHJpbmc6CisgICAgICAgICAgICBjb21waWxlVG9TdHJpbmco
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1ha2VSb3BlOgorICAgICAgICAg
ICAgY29tcGlsZU1ha2VSb3BlKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBT
dHJpbmdDaGFyQXQ6CiAgICAgICAgICAgICBjb21waWxlU3RyaW5nQ2hhckF0KCk7CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTM5Niw2ICs0NTgsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBO
b3RpZnlXcml0ZToKICAgICAgICAgICAgIGNvbXBpbGVOb3RpZnlXcml0ZSgpOwogICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgR2V0Q2FsbGVlOgorICAgICAgICAgICAgY29tcGlsZUdl
dENhbGxlZSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR2V0U2NvcGU6Cisg
ICAgICAgICAgICBjb21waWxlR2V0U2NvcGUoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEdldE15U2NvcGU6CiAgICAgICAgICAgICBjb21waWxlR2V0TXlTY29wZSgpOwogICAg
ICAgICAgICAgYnJlYWs7CkBAIC00NjYsNiArNTM0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGNh
c2UgSW50NTJUb1ZhbHVlOgogICAgICAgICAgICAgY29tcGlsZUludDUyVG9WYWx1ZSgpOwogICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkOgor
ICAgICAgICAgICAgY29tcGlsZUNoZWNrQXJndW1lbnRzTm90Q3JlYXRlZCgpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ291bnRFeGVjdXRpb246CisgICAgICAgICAgICBjb21w
aWxlQ291bnRFeGVjdXRpb24oKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFN0
b3JlQmFycmllcjoKICAgICAgICAgICAgIGNvbXBpbGVTdG9yZUJhcnJpZXIoKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtNDgyLDYgKzU1Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVmFy
aWFibGVXYXRjaHBvaW50OgogICAgICAgICBjYXNlIEZ1bmN0aW9uUmVlbnRyeVdhdGNocG9pbnQ6
CiAgICAgICAgIGNhc2UgVHlwZWRBcnJheVdhdGNocG9pbnQ6CisgICAgICAgIGNhc2UgQWxsb2Nh
dGlvblByb2ZpbGVXYXRjaHBvaW50OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODE1LDI0
ICs4OTAsNTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGxvd0pTVmFsdWUobV9ub2RlLT5jaGls
ZDEoKSksIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSkpKTsKICAgICB9CiAgICAgCi0gICAg
dm9pZCBjb21waWxlQWRkU3ViKCkKKyAgICB2b2lkIGNvbXBpbGVBcml0aEFkZE9yU3ViKCkKICAg
ICB7CiAgICAgICAgIGJvb2wgaXNTdWIgPSAgbV9ub2RlLT5vcCgpID09IEFyaXRoU3ViOwogICAg
ICAgICBzd2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgSW50
MzJVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SW50MzIobV9ub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxk
MigpKTsKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBpc1N1YiA/IG1fb3V0LnN1YihsZWZ0
LCByaWdodCkgOiBtX291dC5hZGQobGVmdCwgcmlnaHQpOwogCiAgICAgICAgICAgICBpZiAoIXNo
b3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAgICAgICAg
ICBzZXRJbnQzMihyZXN1bHQpOworICAgICAgICAgICAgICAgIHNldEludDMyKGlzU3ViID8gbV9v
dXQuc3ViKGxlZnQsIHJpZ2h0KSA6IG1fb3V0LmFkZChsZWZ0LCByaWdodCkpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBMVmFsdWUgb3ZlcmZs
b3cgPSBpc1N1YiA/IG1fb3V0LnN1YldpdGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0KSA6IG1fb3V0
LmFkZFdpdGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIExWYWx1ZSByZXN1
bHQ7CisgICAgICAgICAgICBpZiAoIWlzU3ViKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9vdXQuYWRkV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMigpKSkgeworICAgICAg
ICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1fbm9kZS0+Y2hpbGQyKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIGxlZnQsIFZhbHVlRm9ybWF0SW50MzIp
OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDEoKSkp
IHsKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCByaWdodCwgVmFsdWVG
b3JtYXRJbnQzMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5zdWJXaXRoT3ZlcmZsb3czMihsZWZ0LCByaWdo
dCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRvZXNLaWxsKG1fbm9k
ZS0+Y2hpbGQyKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCA9IGxlZnQgLSBy
aWdodAorICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgLSBsZWZ0ID0gLXJpZ2h0CisgICAg
ICAgICAgICAgICAgICAgIC8vIHJpZ2h0ID0gbGVmdCAtIHJlc3VsdAorICAgICAgICAgICAgICAg
ICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9k
ZS0+Y2hpbGQyKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCwg
bV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIFZhbHVlRm9ybWF0SW50MzIpOworICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDEoKSkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgLy8gcmVzdWx0ID0gbGVmdCAtIHJpZ2h0CisgICAgICAgICAgICAgICAg
ICAgIC8vIHJlc3VsdCArIHJpZ2h0ID0gbGVmdAorICAgICAgICAgICAgICAgICAgICBhZGRBdmFp
bGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQxKCks
IEFkZFJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuZXh0cmFjdFZhbHVl
KHJlc3VsdCwgMCksIHJpZ2h0LCBWYWx1ZUZvcm1hdEludDMyKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1
ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3csIDEpKTsKLSAgICAgICAgICAgIHNl
dEludDMyKHJlc3VsdCk7CisgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUo
KSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMSkpOworICAgICAgICAgICAgc2V0SW50
MzIobV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgICAgIApAQCAtODQ4LDExICs5NTIsNDEgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dJbnQ1MihtX25vZGUtPmNo
aWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hp
bGQyKCkpOwotICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGlzU3ViID8gbV9vdXQuc3ViKGxl
ZnQsIHJpZ2h0KSA6IG1fb3V0LmFkZChsZWZ0LCByaWdodCk7CiAKLSAgICAgICAgICAgIExWYWx1
ZSBvdmVyZmxvdyA9IGlzU3ViID8gbV9vdXQuc3ViV2l0aE92ZXJmbG93NjQobGVmdCwgcmlnaHQp
IDogbV9vdXQuYWRkV2l0aE92ZXJmbG93NjQobGVmdCwgcmlnaHQpOwotICAgICAgICAgICAgc3Bl
Y3VsYXRlKEludDUyT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92
ZXJmbG93LCAxKSk7Ci0gICAgICAgICAgICBzZXRJbnQ1MihyZXN1bHQpOworICAgICAgICAgICAg
TFZhbHVlIHJlc3VsdDsKKyAgICAgICAgICAgIGlmICghaXNTdWIpIHsKKyAgICAgICAgICAgICAg
ICByZXN1bHQgPSBtX291dC5hZGRXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdodCk7CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQyKCkp
KSB7CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAg
ICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDIoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgbGVmdCwgVmFsdWVG
b3JtYXRJbnQ1Mik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUt
PmNoaWxkMSgpKSkgeworICAgICAgICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQxKCksIFN1YlJlY292ZXJ5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIHJp
Z2h0LCBWYWx1ZUZvcm1hdEludDUyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzY0
KGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG9l
c0tpbGwobV9ub2RlLT5jaGlsZDIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0
ID0gbGVmdCAtIHJpZ2h0CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdCAtIGxlZnQgPSAt
cmlnaHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmlnaHQgPSBsZWZ0IC0gcmVzdWx0CisgICAg
ICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAg
ICAgICAgbV9ub2RlLT5jaGlsZDIoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAg
ICAgICBsZWZ0LCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgVmFsdWVGb3JtYXRJbnQ1
Mik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMSgp
KSkgeworICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgPSBsZWZ0IC0gcmlnaHQKKyAgICAg
ICAgICAgICAgICAgICAgLy8gcmVzdWx0ICsgcmlnaHQgPSBsZWZ0CisgICAgICAgICAgICAgICAg
ICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2Rl
LT5jaGlsZDEoKSwgQWRkUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5l
eHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgcmlnaHQsIFZhbHVlRm9ybWF0SW50NTIpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3BlY3VsYXRlKEludDUy
T3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMSkpOwor
ICAgICAgICAgICAgc2V0SW50NTIobV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCkpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtODc2LDExICsxMDEw
LDE1IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgSW50MzJVc2U6IHsKICAgICAgICAgICAgIExW
YWx1ZSBsZWZ0ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBMVmFs
dWUgcmlnaHQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgIExWYWx1
ZSByZXN1bHQgPSBtX291dC5tdWwobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBMVmFsdWUgcmVzdWx0OwogCi0gICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxv
dyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgeworICAgICAgICAgICAgaWYgKCFzaG91bGRDaGVja092
ZXJmbG93KG1fbm9kZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1f
b3V0Lm11bChsZWZ0LCByaWdodCk7CisgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAg
ICBMVmFsdWUgb3ZlcmZsb3dSZXN1bHQgPSBtX291dC5tdWxXaXRoT3ZlcmZsb3czMihsZWZ0LCBy
aWdodCk7CiAgICAgICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAs
IG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMSkpOworICAgICAgICAgICAgICAg
IHJlc3VsdCA9IG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZl
WmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewpAQCAtOTA0LDExICsxMDQyLDEwIEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBJbnQ1MktpbmQga2luZDsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0
ID0gbG93V2hpY2hldmVySW50NTIobV9ub2RlLT5jaGlsZDEoKSwga2luZCk7CiAgICAgICAgICAg
ICBMVmFsdWUgcmlnaHQgPSBsb3dJbnQ1MihtX25vZGUtPmNoaWxkMigpLCBvcHBvc2l0ZShraW5k
KSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQubXVsKGxlZnQsIHJpZ2h0KTsK
LQogCiAgICAgICAgICAgICBMVmFsdWUgb3ZlcmZsb3dSZXN1bHQgPSBtX291dC5tdWxXaXRoT3Zl
cmZsb3c2NChsZWZ0LCByaWdodCk7CiAgICAgICAgICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxv
dywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsK
KyAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dS
ZXN1bHQsIDApOwogCiAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9u
b2RlLT5hcml0aE1vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2Fz
ZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNdWwgc2xvdyBjYXNlIikpOwpAQCAtOTM5
LDE2ICsxMDc2LDE2IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIGNv
bXBpbGVBcml0aERpdk1vZCgpCisgICAgdm9pZCBjb21waWxlQXJpdGhEaXYoKQogICAgIHsKICAg
ICAgICAgc3dpdGNoIChtX25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewogICAgICAgICBjYXNlIElu
dDMyVXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUgbnVtZXJhdG9yID0gbG93SW50MzIobV9ub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgZGVub21pbmF0b3IgPSBsb3dJbnQzMiht
X25vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgTEJhc2ljQmxvY2sg
dW5zYWZlRGVub21pbmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIHVu
c2FmZSBkZW5vbWluYXRvciIpKTsKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlv
biA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXZNb2QgY29udGludWF0aW9uIikpOwot
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9uZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJp
dGhEaXZNb2QgZG9uZSIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIHVuc2FmZURlbm9taW5h
dG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiB1bnNhZmUgZGVub21pbmF0b3Ii
KSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NL
KG1fb3V0LCAoIkFyaXRoRGl2IGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgIExCYXNpY0Js
b2NrIGRvbmUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IGRvbmUiKSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIFZlY3RvcjxWYWx1ZUZyb21CbG9jaywgMz4gcmVzdWx0czsK
ICAgICAgICAgICAgIApAQCAtOTkxLDggKzExMjgsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBkb25lKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7
Ci0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgemVyb051bWVyYXRvciA9IEZUTF9ORVdfQkxP
Q0sobV9vdXQsICgiQXJpdGhEaXZNb2QgemVybyBudW1lcmF0b3IiKSk7Ci0gICAgICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgbnVtZXJhdG9yQ29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJBcml0aERpdk1vZCBudW1lcmF0b3IgY29udGludWF0aW9uIikpOworICAgICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIHplcm9OdW1lcmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFy
aXRoRGl2IHplcm8gbnVtZXJhdG9yIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG51
bWVyYXRvckNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgbnVt
ZXJhdG9yIGNvbnRpbnVhdGlvbiIpKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvMzIobnVtZXJhdG9yKSwgemVyb051bWVyYXRvciwg
bnVtZXJhdG9yQ29udGludWF0aW9uKTsKICAgICAgICAgICAgICAgICAKQEAgLTEwMDYsMTcgKzEx
NDMsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhudW1lcmF0
b3JDb250aW51YXRpb24sIGlubmVyTGFzdE5leHQpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgCi0gICAgICAgICAgICBMVmFsdWUgZGl2TW9kUmVzdWx0ID0gbV9ub2RlLT5vcCgpID09IEFy
aXRoRGl2Ci0gICAgICAgICAgICAgICAgPyBtX291dC5kaXYobnVtZXJhdG9yLCBkZW5vbWluYXRv
cikKLSAgICAgICAgICAgICAgICA6IG1fb3V0LnJlbShudW1lcmF0b3IsIGRlbm9taW5hdG9yKTsK
KyAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5kaXYobnVtZXJhdG9yLCBkZW5vbWlu
YXRvcik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChzaG91bGRDaGVja092ZXJmbG93
KG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CiAgICAgICAgICAgICAgICAgc3BlY3VsYXRlKAogICAg
ICAgICAgICAgICAgICAgICBPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLAotICAgICAgICAgICAgICAg
ICAgICBtX291dC5ub3RFcXVhbChtX291dC5tdWwoZGl2TW9kUmVzdWx0LCBkZW5vbWluYXRvciks
IG51bWVyYXRvcikpOworICAgICAgICAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChtX291dC5t
dWwocmVzdWx0LCBkZW5vbWluYXRvciksIG51bWVyYXRvcikpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgCi0gICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IoZGl2TW9k
UmVzdWx0KSk7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IocmVzdWx0
KSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGRvbmUpOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBtX291dC5hcHBlbmRUbyhkb25lLCBsYXN0TmV4dCk7CkBAIC0xMDI2LDkgKzExNjEsOCBA
QCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOdW1iZXJV
c2U6IHsKLSAgICAgICAgICAgIExWYWx1ZSBDMSA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgp
KTsKLSAgICAgICAgICAgIExWYWx1ZSBDMiA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKTsK
LSAgICAgICAgICAgIHNldERvdWJsZShtX25vZGUtPm9wKCkgPT0gQXJpdGhEaXYgPyBtX291dC5k
b3VibGVEaXYoQzEsIEMyKSA6IG1fb3V0LmRvdWJsZVJlbShDMSwgQzIpKTsKKyAgICAgICAgICAg
IHNldERvdWJsZShtX291dC5kb3VibGVEaXYoCisgICAgICAgICAgICAgICAgbG93RG91YmxlKG1f
bm9kZS0+Y2hpbGQxKCkpLCBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSkpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTEwMzgsNiArMTE3Miw5OSBA
QCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZUFyaXRo
TW9kKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsK
KyAgICAgICAgY2FzZSBJbnQzMlVzZTogeworICAgICAgICAgICAgTFZhbHVlIG51bWVyYXRvciA9
IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIGRlbm9taW5h
dG9yID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIHVuc2FmZURlbm9taW5hdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwg
KCJBcml0aE1vZCB1bnNhZmUgZGVub21pbmF0b3IiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9j
ayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIGNvbnRpbnVh
dGlvbiIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGRvbmUgPSBGVExfTkVXX0JMT0NLKG1f
b3V0LCAoIkFyaXRoTW9kIGRvbmUiKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZlY3Rv
cjxWYWx1ZUZyb21CbG9jaywgMz4gcmVzdWx0czsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
TFZhbHVlIGFkanVzdGVkRGVub21pbmF0b3IgPSBtX291dC5hZGQoZGVub21pbmF0b3IsIG1fb3V0
LmludDMyT25lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0
LmFib3ZlKGFkanVzdGVkRGVub21pbmF0b3IsIG1fb3V0LmludDMyT25lKSwgY29udGludWF0aW9u
LCB1bnNhZmVEZW5vbWluYXRvcik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Js
b2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8odW5zYWZlRGVub21pbmF0b3IsIGNvbnRpbnVh
dGlvbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBuZWcyVG9UaGUzMSA9IG1f
b3V0LmNvbnN0SW50MzIoLTIxNDc0ODM2NDctMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IC8vIEZJWE1FOiAtMl4zMSAvIC0xIHdpbGwgYWN0dWFsbHkgeWllbGQgbmVnYXRpdmUgemVybywg
c28gd2UgY291bGQgaGF2ZSBhCisgICAgICAgICAgICAvLyBzZXBhcmF0ZSBjYXNlIGZvciB0aGF0
LiBCdXQgaXQgcHJvYmFibHkgZG9lc24ndCBtYXR0ZXIgc28gbXVjaC4KKyAgICAgICAgICAgIGlm
IChzaG91bGRDaGVja092ZXJmbG93KG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAg
ICAgICAgTFZhbHVlIGNvbmQgPSBtX291dC5iaXRPcihtX291dC5pc1plcm8zMihkZW5vbWluYXRv
ciksIG1fb3V0LmVxdWFsKG51bWVyYXRvciwgbmVnMlRvVGhlMzEpKTsKKyAgICAgICAgICAgICAg
ICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgY29uZCk7CisgICAgICAgICAgICAg
ICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBjYXNlIHdoZXJlIHdlIGNvbnZlcnQgdGhlIHJlc3Vs
dCB0byBhbiBpbnQgYWZ0ZXIgd2UncmUgZG9uZS4gU28sCisgICAgICAgICAgICAgICAgLy8gaWYg
dGhlIGRlbm9taW5hdG9yIGlzIHplcm8sIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUgcmVzdWx0
IHNob3VsZCBiZSB6ZXJvLgorICAgICAgICAgICAgICAgIC8vIElmIHRoZSBkZW5vbWluYXRvciBp
cyBub3QgemVybyAoaS5lLiBpdCdzIC0xIGJlY2F1c2Ugd2UncmUgZ3VhcmRlZCBieSB0aGUKKyAg
ICAgICAgICAgICAgICAvLyBjaGVjayBhYm92ZSkgYW5kIHRoZSBudW1lcmF0b3IgaXMgLTJeMzEg
dGhlbiB0aGUgcmVzdWx0IHNob3VsZCBiZSAtMl4zMS4KKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBtb2RCeVplcm8gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IkFyaXRoTW9kIG1vZHVsbyBieSB6ZXJvIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IG5vdE1vZEJ5WmVybyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2Qgbm90IG1vZHVs
byBieSB6ZXJvIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5lZzJUb1RoZTMxQnlO
ZWcxID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCAtMl4zMS8tMSIpKTsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvMzIo
ZGVub21pbmF0b3IpLCBtb2RCeVplcm8sIG5vdE1vZEJ5WmVybyk7CisgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obW9kQnlaZXJvLCBub3RNb2RCeVplcm8p
OworICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5pbnQz
Mlplcm8pKTsKKyAgICAgICAgICAgICAgICBtX291dC5qdW1wKGRvbmUpOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdE1vZEJ5WmVybywgbmVnMlRv
VGhlMzFCeU5lZzEpOworICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5lcXVhbChu
dW1lcmF0b3IsIG5lZzJUb1RoZTMxKSwgbmVnMlRvVGhlMzFCeU5lZzEsIGNvbnRpbnVhdGlvbik7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obmVnMlRv
VGhlMzFCeU5lZzEsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBl
bmQobV9vdXQuYW5jaG9yKG1fb3V0LmludDMyWmVybykpOworICAgICAgICAgICAgICAgIG1fb3V0
Lmp1bXAoZG9uZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgZG9uZSk7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIExWYWx1ZSByZW1haW5kZXIgPSBtX291dC5yZW0obnVtZXJhdG9yLCBkZW5vbWluYXRvcik7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyht
X25vZGUtPmFyaXRoTW9kZSgpKSkgeworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5lZ2F0
aXZlTnVtZXJhdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBuZWdhdGl2ZSBu
dW1lcmF0b3IiKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbnVtZXJhdG9yQ29udGlu
dWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBudW1lcmF0b3IgY29udGlu
dWF0aW9uIikpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5j
aCgKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQubGVzc1RoYW4obnVtZXJhdG9yLCBtX291dC5p
bnQzMlplcm8pLAorICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZU51bWVyYXRvciwgbnVtZXJh
dG9yQ29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBMQmFz
aWNCbG9jayBpbm5lckxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obmVnYXRpdmVOdW1lcmF0b3Is
IG51bWVyYXRvckNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgc3BlY3VsYXRlKE5lZ2F0aXZlWmVybywgbm9WYWx1ZSgpLCAwLCBtX291dC5pc1plcm8zMihy
ZW1haW5kZXIpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5qdW1w
KG51bWVyYXRvckNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8obnVtZXJhdG9yQ29udGludWF0aW9uLCBpbm5lckxhc3ROZXh0KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQo
bV9vdXQuYW5jaG9yKHJlbWFpbmRlcikpOworICAgICAgICAgICAgbV9vdXQuanVtcChkb25lKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZG9uZSwgbGFzdE5leHQp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5waGkobV9vdXQuaW50
MzIsIHJlc3VsdHMpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICAg
ICAKKyAgICAgICAgY2FzZSBOdW1iZXJVc2U6IHsKKyAgICAgICAgICAgIHNldERvdWJsZSgKKyAg
ICAgICAgICAgICAgICBtX291dC5kb3VibGVSZW0obG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkp
LCBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgIH0KKwogICAgIHZvaWQgY29tcGlsZUFyaXRoTWluT3JNYXgoKQogICAgIHsKICAgICAgICAg
c3dpdGNoIChtX25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewpAQCAtMTExNCw2ICsxMzQxLDEyIEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKworICAgIHZv
aWQgY29tcGlsZUFyaXRoU2luKCkgeyBzZXREb3VibGUobV9vdXQuZG91YmxlU2luKGxvd0RvdWJs
ZShtX25vZGUtPmNoaWxkMSgpKSkpOyB9CisKKyAgICB2b2lkIGNvbXBpbGVBcml0aENvcygpIHsg
c2V0RG91YmxlKG1fb3V0LmRvdWJsZUNvcyhsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSkpKTsg
fQorCisgICAgdm9pZCBjb21waWxlQXJpdGhTcXJ0KCkgeyBzZXREb3VibGUobV9vdXQuZG91Ymxl
U3FydChsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSkpKTsgfQogICAgIAogICAgIHZvaWQgY29t
cGlsZUFyaXRoTmVnYXRlKCkKICAgICB7CkBAIC0xMTIxLDE2ICsxMzU0LDE4IEBAIHByaXZhdGU6
CiAgICAgICAgIGNhc2UgSW50MzJVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxv
d0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBMVmFs
dWUgcmVzdWx0ID0gbV9vdXQubmVnKHZhbHVlKTsKLSAgICAgICAgICAgIGlmIChzaG91bGRDaGVj
a092ZXJmbG93KG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFz
aG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAgICAg
ICAgICAgICAgICAvLyBXZSBkb24ndCBoYXZlIGEgbmVnYXRlLXdpdGgtb3ZlcmZsb3cgaW50cmlu
c2ljLiBIb3BlZnVsbHkgdGhpcwotICAgICAgICAgICAgICAgICAgICAvLyBkb2VzIHRoZSB0cmlj
aywgdGhvdWdoLgotICAgICAgICAgICAgICAgICAgICBMVmFsdWUgb3ZlcmZsb3dSZXN1bHQgPSBt
X291dC5zdWJXaXRoT3ZlcmZsb3czMihtX291dC5pbnQzMlplcm8sIHZhbHVlKTsKLSAgICAgICAg
ICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LmV4dHJh
Y3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMSkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQu
dGVzdElzWmVybzMyKHZhbHVlLCBtX291dC5jb25zdEludDMyKDB4N2ZmZmZmZmYpKSk7Ci0KKyAg
ICAgICAgICAgIExWYWx1ZSByZXN1bHQ7CisgICAgICAgICAgICBpZiAoIXNob3VsZENoZWNrT3Zl
cmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9v
dXQubmVnKHZhbHVlKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKCFzaG91bGRDaGVja05lZ2F0aXZl
WmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgeworICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0
IGhhdmUgYSBuZWdhdGUtd2l0aC1vdmVyZmxvdyBpbnRyaW5zaWMuIEhvcGVmdWxseSB0aGlzCisg
ICAgICAgICAgICAgICAgLy8gZG9lcyB0aGUgdHJpY2ssIHRob3VnaC4KKyAgICAgICAgICAgICAg
ICBMVmFsdWUgb3ZlcmZsb3dSZXN1bHQgPSBtX291dC5zdWJXaXRoT3ZlcmZsb3czMihtX291dC5p
bnQzMlplcm8sIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5v
VmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7CisgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAw
KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJm
bG93LCBub1ZhbHVlKCksIDAsIG1fb3V0LnRlc3RJc1plcm8zMih2YWx1ZSwgbV9vdXQuY29uc3RJ
bnQzMigweDdmZmZmZmZmKSkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0Lm5lZyh2
YWx1ZSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHNldEludDMyKHJlc3VsdCk7CkBA
IC0xMTUxLDcgKzEzODYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0g
bG93SW50NTIobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgb3ZlcmZsb3dS
ZXN1bHQgPSBtX291dC5zdWJXaXRoT3ZlcmZsb3c2NChtX291dC5pbnQ2NFplcm8sIHZhbHVlKTsK
ICAgICAgICAgICAgIHNwZWN1bGF0ZShJbnQ1Mk92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1fb3V0
LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMSkpOwotICAgICAgICAgICAgTFZhbHVlIHJl
c3VsdCA9IG1fb3V0Lm5lZyh2YWx1ZSk7CisgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9v
dXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAwKTsKICAgICAgICAgICAgIHNwZWN1bGF0
ZShOZWdhdGl2ZVplcm8sIG5vVmFsdWUoKSwgMCwgbV9vdXQuaXNaZXJvNjQocmVzdWx0KSk7CiAg
ICAgICAgICAgICBzZXRJbnQ1MihyZXN1bHQpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjc1
LDYgKzE1MTAsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKGNlbGws
IHdlYWtQb2ludGVyKG1fbm9kZS0+ZnVuY3Rpb24oKSkpKTsKICAgICB9CiAgICAgCisgICAgdm9p
ZCBjb21waWxlQ2hlY2tFeGVjdXRhYmxlKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBjZWxsID0g
bG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgCisgICAgICAgIHNwZWN1bGF0ZSgK
KyAgICAgICAgICAgIEJhZEV4ZWN1dGFibGUsIGpzVmFsdWVWYWx1ZShjZWxsKSwgbV9ub2RlLT5j
aGlsZDEoKS5ub2RlKCksCisgICAgICAgICAgICBtX291dC5ub3RFcXVhbCgKKyAgICAgICAgICAg
ICAgICBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNGdW5jdGlvbl9leGVjdXRhYmxlKSwK
KyAgICAgICAgICAgICAgICB3ZWFrUG9pbnRlcihtX25vZGUtPmV4ZWN1dGFibGUoKSkpKTsKKyAg
ICB9CisgICAgCiAgICAgdm9pZCBjb21waWxlQXJyYXlpZnlUb1N0cnVjdHVyZSgpCiAgICAgewog
ICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC0xMzcw
LDggKzE2MTYsOCBAQCBwcml2YXRlOgogICAgICAgICAKICAgICAgICAgTFZhbHVlIGNhbGwgPSBt
X291dC5jYWxsKAogICAgICAgICAgICAgbV9vdXQucGF0Y2hwb2ludEludDY0SW50cmluc2ljKCks
Ci0gICAgICAgICAgICBtX291dC5jb25zdEludDMyKHN0YWNrbWFwSUQpLCBtX291dC5jb25zdElu
dDMyKHNpemVPZkdldEJ5SWQoKSksCi0gICAgICAgICAgICBjb25zdE51bGwobV9vdXQucmVmOCks
IG1fb3V0LmNvbnN0SW50MzIoMiksIG1fY2FsbEZyYW1lLCBiYXNlKTsKKyAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50NjQoc3RhY2ttYXBJRCksIG1fb3V0LmNvbnN0SW50MzIoc2l6ZU9mR2V0QnlJ
ZCgpKSwKKyAgICAgICAgICAgIGNvbnN0TnVsbChtX291dC5yZWY4KSwgbV9vdXQuY29uc3RJbnQz
MigxKSwgYmFzZSk7CiAgICAgICAgIHNldEluc3RydWN0aW9uQ2FsbGluZ0NvbnZlbnRpb24oY2Fs
bCwgTExWTUFueVJlZ0NhbGxDb252KTsKICAgICAgICAgc2V0SlNWYWx1ZShjYWxsKTsKICAgICAg
ICAgCkBAIC0xMzk1LDggKzE2NDEsOCBAQCBwcml2YXRlOgogICAgICAgICAKICAgICAgICAgTFZh
bHVlIGNhbGwgPSBtX291dC5jYWxsKAogICAgICAgICAgICAgbV9vdXQucGF0Y2hwb2ludFZvaWRJ
bnRyaW5zaWMoKSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoc3RhY2ttYXBJRCksIG1f
b3V0LmNvbnN0SW50MzIoc2l6ZU9mUHV0QnlJZCgpKSwKLSAgICAgICAgICAgIGNvbnN0TnVsbCht
X291dC5yZWY4KSwgbV9vdXQuY29uc3RJbnQzMigzKSwgbV9jYWxsRnJhbWUsIGJhc2UsIHZhbHVl
KTsKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50NjQoc3RhY2ttYXBJRCksIG1fb3V0LmNvbnN0
SW50MzIoc2l6ZU9mUHV0QnlJZCgpKSwKKyAgICAgICAgICAgIGNvbnN0TnVsbChtX291dC5yZWY4
KSwgbV9vdXQuY29uc3RJbnQzMigyKSwgYmFzZSwgdmFsdWUpOwogICAgICAgICBzZXRJbnN0cnVj
dGlvbkNhbGxpbmdDb252ZW50aW9uKGNhbGwsIExMVk1BbnlSZWdDYWxsQ29udik7CiAgICAgICAg
IAogICAgICAgICBtX2Z0bFN0YXRlLnB1dEJ5SWRzLmFwcGVuZChQdXRCeUlkRGVzY3JpcHRvcigK
QEAgLTE0NjMsMjAgKzE3MDksMjAgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBBcnJheTo6SW50
MzI6CiAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKICAgICAgICAgY2FzZSBBcnJheTo6Q29u
dGlndW91czogewotICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyKGxvd1N0b3JhZ2Uo
bV9ub2RlLT5jaGlsZDIoKSksIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpOworICAg
ICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUobG93U3RvcmFnZShtX25v
ZGUtPmNoaWxkMigpKSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFycmF5
OjpTdHJpbmc6IHsKICAgICAgICAgICAgIExWYWx1ZSBzdHJpbmcgPSBsb3dDZWxsKG1fbm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyKHN0cmluZywgbV9o
ZWFwcy5KU1N0cmluZ19sZW5ndGgpKTsKKyAgICAgICAgICAgIHNldEludDMyKG1fb3V0LmxvYWQz
Mk5vbk5lZ2F0aXZlKHN0cmluZywgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBpZiAoaXNUeXBlZFZpZXcobV9ub2RlLT5hcnJheU1vZGUoKS50eXBlZEFycmF5
VHlwZSgpKSkgewogICAgICAgICAgICAgICAgIHNldEludDMyKAotICAgICAgICAgICAgICAgICAg
ICBtX291dC5sb2FkMzIobG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwgbV9oZWFwcy5KU0FycmF5
QnVmZmVyVmlld19sZW5ndGgpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyTm9u
TmVnYXRpdmUobG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwgbV9oZWFwcy5KU0FycmF5QnVmZmVy
Vmlld19sZW5ndGgpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAKQEAgLTE1MTgsNyArMTc2NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9y
RXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIoc3RvcmFnZSwg
bV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSksCisgICAgICAgICAgICAgICAgICAgIGlu
ZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9w
dWJsaWNMZW5ndGgpKSwKICAgICAgICAgICAgICAgICBzbG93Q2FzZSwgZmFzdENhc2UpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVu
ZFRvKGZhc3RDYXNlLCBzbG93Q2FzZSk7CkBAIC0xNTY1LDcgKzE4MTEsNyBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAg
bV9vdXQuYWJvdmVPckVxdWFsKAotICAgICAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9h
ZDMyKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpLAorICAgICAgICAg
ICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFw
cy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSksCiAgICAgICAgICAgICAgICAgc2xvd0Nhc2UsIGlu
Qm91bmRzKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQg
PSBtX291dC5hcHBlbmRUbyhpbkJvdW5kcywgYm94UGF0aCk7CkBAIC0xNjg3LDYgKzE5MzMsNyBA
QCBwcml2YXRlOgogICAgICAgICBFZGdlIGNoaWxkMiA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9u
b2RlLCAxKTsKICAgICAgICAgRWRnZSBjaGlsZDMgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9k
ZSwgMik7CiAgICAgICAgIEVkZ2UgY2hpbGQ0ID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUs
IDMpOworICAgICAgICBFZGdlIGNoaWxkNSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCA0
KTsKICAgICAgICAgCiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkp
IHsKICAgICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzogewpAQCAtMTgwMSw2ICsyMDQ4LDkgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX291dC56ZXJvRXh0KGluZGV4
LCBtX291dC5pbnRQdHIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0
SW50UHRyKGxvZ0VsZW1lbnRTaXplKHR5cGUpKSkpKTsKICAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICBMVHlwZSByZWZUeXBlOworICAgICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZVRv
U3RvcmU7CisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKGlzSW50KHR5cGUp
KSB7CiAgICAgICAgICAgICAgICAgICAgIExWYWx1ZSBpbnRWYWx1ZTsKICAgICAgICAgICAgICAg
ICAgICAgc3dpdGNoIChjaGlsZDMudXNlS2luZCgpKSB7CkBAIC0xODc2LDM0ICsyMTI2LDUzIEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBzd2l0
Y2ggKGVsZW1lbnRTaXplKHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlOChtX291dC5pbnRDYXN0KGludFZhbHVl
LCBtX291dC5pbnQ4KSwgcG9pbnRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRv
U3RvcmUgPSBtX291dC5pbnRDYXN0KGludFZhbHVlLCBtX291dC5pbnQ4KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJlZlR5cGUgPSBtX291dC5yZWY4OwogICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG1fb3V0LnN0b3JlMTYobV9vdXQuaW50Q2FzdChpbnRWYWx1ZSwgbV9vdXQuaW50MTYp
LCBwb2ludGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9TdG9yZSA9IG1fb3V0
LmludENhc3QoaW50VmFsdWUsIG1fb3V0LmludDE2KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJlZlR5cGUgPSBtX291dC5yZWYxNjsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBtX291
dC5zdG9yZTMyKGludFZhbHVlLCBwb2ludGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZh
bHVlVG9TdG9yZSA9IGludFZhbHVlOworICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9
IG1fb3V0LnJlZjMyOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSBlbHNlIC8qICFpc0ludCh0eXBlKSAqLyB7CisgICAgICAgICAgICAgICAgICAgIExWYWx1ZSB2
YWx1ZSA9IGxvd0RvdWJsZShjaGlsZDMpOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5
cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBlRmxvYXQzMjoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHZhbHVlVG9TdG9yZSA9IG1fb3V0LmZwQ2FzdCh2YWx1ZSwgbV9vdXQuZmxv
YXRUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZlR5cGUgPSBtX291dC5yZWZGbG9h
dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBj
YXNlIFR5cGVGbG9hdDY0OgorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3JlID0g
dmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZUeXBlID0gbV9vdXQucmVmRG91Ymxl
OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIEFTU0VSVChpc0Zsb2F0KHR5cGUpKTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dEb3VibGUoY2hpbGQzKTsKLSAg
ICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgICAgICAgICBjYXNlIFR5cGVG
bG9hdDMyOgotICAgICAgICAgICAgICAgICAgICBtX291dC5zdG9yZUZsb2F0KG1fb3V0LmZwQ2Fz
dCh2YWx1ZSwgbV9vdXQuZmxvYXRUeXBlKSwgcG9pbnRlcik7Ci0gICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgVHlwZUZsb2F0NjQ6Ci0gICAgICAgICAgICAg
ICAgICAgIG1fb3V0LnN0b3JlRG91YmxlKHZhbHVlLCBwb2ludGVyKTsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBpZiAobV9u
b2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzKCkpCisgICAgICAgICAgICAgICAgICAgIG1fb3V0
LnN0b3JlKHZhbHVlVG9TdG9yZSwgcG9pbnRlciwgcmVmVHlwZSk7CisgICAgICAgICAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlzSW5Cb3VuZHMgPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIlB1dEJ5VmFsIHR5cGVkIGFycmF5IGluIGJvdW5kcyBjYXNlIikp
OworICAgICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVX
X0JMT0NLKG1fb3V0LCAoIlB1dEJ5VmFsIHR5cGVkIGFycmF5IGNvbnRpbnVhdGlvbiIpKTsKKyAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbChpbmRleCwgbG93SW50MzIo
Y2hpbGQ1KSksCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51YXRpb24sIGlzSW5Cb3Vu
ZHMpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgTEJhc2ljQmxv
Y2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpc0luQm91bmRzLCBjb250aW51YXRpb24pOwor
ICAgICAgICAgICAgICAgICAgICBtX291dC5zdG9yZSh2YWx1ZVRvU3RvcmUsIHBvaW50ZXIsIHJl
ZlR5cGUpOworICAgICAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Cisg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhj
b250aW51YXRpb24sIGxhc3ROZXh0KTsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
CkBAIC0yMDYwLDYgKzIzMjksMTA5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX291dC5jb25z
dEludFB0cihtX25vZGUtPm51bUNvbnN0YW50cygpKSkpOwogICAgIH0KICAgICAKKyAgICB2b2lk
IGNvbXBpbGVOZXdBcnJheVdpdGhTaXplKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBwdWJsaWNM
ZW5ndGggPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgCisgICAgICAgIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX25v
ZGUtPmNvZGVPcmlnaW4pOworICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdsb2JhbE9i
amVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKAorICAg
ICAgICAgICAgbV9ub2RlLT5pbmRleGluZ1R5cGUoKSk7CisgICAgICAgIAorICAgICAgICBpZiAo
IWdsb2JhbE9iamVjdC0+aXNIYXZpbmdBQmFkVGltZSgpICYmICFoYXNBcnJheVN0b3JhZ2UobV9u
b2RlLT5pbmRleGluZ1R5cGUoKSkpIHsKKyAgICAgICAgICAgIEFTU0VSVCgKKyAgICAgICAgICAg
ICAgICBoYXNVbmRlY2lkZWQoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkKKyAgICAgICAgICAg
ICAgICB8fCBoYXNJbnQzMihzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKQorICAgICAgICAgICAg
ICAgIHx8IGhhc0RvdWJsZShzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKQorICAgICAgICAgICAg
ICAgIHx8IGhhc0NvbnRpZ3VvdXMoc3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSkpOworCisgICAg
ICAgICAgICBMQmFzaWNCbG9jayBmYXN0Q2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3
QXJyYXlXaXRoU2l6ZSBmYXN0IGNhc2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXJn
ZUNhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgbGFyZ2UgY2Fz
ZSIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGZhaWxDYXNlID0gRlRMX05FV19CTE9DSyht
X291dCwgKCJOZXdBcnJheVdpdGhTaXplIGZhaWwgY2FzZSIpKTsKKyAgICAgICAgICAgIExCYXNp
Y0Jsb2NrIHNsb3dDYXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXpl
IHNsb3cgY2FzZSIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBjb250aW51YXRpb24iKSk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAgICAgICBt
X291dC5hYm92ZU9yRXF1YWwocHVibGljTGVuZ3RoLCBtX291dC5jb25zdEludDMyKE1JTl9TUEFS
U0VfQVJSQVlfSU5ERVgpKSwKKyAgICAgICAgICAgICAgICBsYXJnZUNhc2UsIGZhc3RDYXNlKTsK
KworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhmYXN0
Q2FzZSwgbGFyZ2VDYXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gV2UgZG9uJ3Qg
cm91bmQgdXAgdG8gQkFTRV9WRUNUT1JfTEVOIGZvciBuZXcgQXJyYXkoYmxhaCkuCisgICAgICAg
ICAgICBMVmFsdWUgdmVjdG9yTGVuZ3RoID0gcHVibGljTGVuZ3RoOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBMVmFsdWUgcGF5bG9hZFNpemUgPQorICAgICAgICAgICAgICAgIG1fb3V0LnNo
bChtX291dC56ZXJvRXh0KHZlY3Rvckxlbmd0aCwgbV9vdXQuaW50UHRyKSwgbV9vdXQuY29uc3RJ
bnRQdHIoMykpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgYnV0dGVyZmx5U2l6
ZSA9IG1fb3V0LmFkZCgKKyAgICAgICAgICAgICAgICBwYXlsb2FkU2l6ZSwgbV9vdXQuY29uc3RJ
bnRQdHIoc2l6ZW9mKEluZGV4aW5nSGVhZGVyKSkpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBMVmFsdWUgZW5kT2ZTdG9yYWdlID0gYWxsb2NhdGVCYXNpY1N0b3JhZ2VBbmRHZXRFbmQoYnV0
dGVyZmx5U2l6ZSwgZmFpbENhc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUg
YnV0dGVyZmx5ID0gbV9vdXQuc3ViKGVuZE9mU3RvcmFnZSwgcGF5bG9hZFNpemUpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBMVmFsdWUgb2JqZWN0ID0gYWxsb2NhdGVPYmplY3Q8SlNBcnJh
eT4oCisgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIoc3RydWN0dXJlKSwgYnV0dGVy
Zmx5LCBmYWlsQ2FzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LnN0b3JlMzIo
cHVibGljTGVuZ3RoLCBidXR0ZXJmbHksIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCk7
CisgICAgICAgICAgICBtX291dC5zdG9yZTMyKHZlY3Rvckxlbmd0aCwgYnV0dGVyZmx5LCBtX2hl
YXBzLkJ1dHRlcmZseV92ZWN0b3JMZW5ndGgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAoaGFzRG91YmxlKG1fbm9kZS0+aW5kZXhpbmdUeXBlKCkpKSB7CisgICAgICAgICAgICAgICAg
TEJhc2ljQmxvY2sgaW5pdExvb3AgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0
aFNpemUgZG91YmxlIGluaXQgbG9vcCIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBp
bml0RG9uZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBkb3VibGUg
aW5pdCBkb25lIikpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZhbHVlRnJv
bUJsb2NrIG9yaWdpbmFsSW5kZXggPSBtX291dC5hbmNob3IodmVjdG9yTGVuZ3RoKTsKKyAgICAg
ICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBvcmlnaW5hbFBvaW50ZXIgPSBtX291dC5hbmNob3Io
YnV0dGVyZmx5KTsKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQubm90WmVybzMy
KHZlY3Rvckxlbmd0aCksIGluaXRMb29wLCBpbml0RG9uZSk7CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgaW5pdExhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8o
aW5pdExvb3AsIGluaXREb25lKTsKKyAgICAgICAgICAgICAgICBMVmFsdWUgaW5kZXggPSBtX291
dC5waGkobV9vdXQuaW50MzIsIG9yaWdpbmFsSW5kZXgpOworICAgICAgICAgICAgICAgIExWYWx1
ZSBwb2ludGVyID0gbV9vdXQucGhpKG1fb3V0LmludFB0ciwgb3JpZ2luYWxQb2ludGVyKTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5zdG9yZTY0KAorICAgICAgICAg
ICAgICAgICAgICBtX291dC5jb25zdEludDY0KGJpdHdpc2VfY2FzdDxpbnQ2NF90PihRTmFOKSks
CisgICAgICAgICAgICAgICAgICAgIFR5cGVkUG9pbnRlcihtX2hlYXBzLmluZGV4ZWREb3VibGVQ
cm9wZXJ0aWVzLmF0QW55SW5kZXgoKSwgcG9pbnRlcikpOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIExWYWx1ZSBuZXh0SW5kZXggPSBtX291dC5zdWIoaW5kZXgsIG1fb3V0Lmlu
dDMyT25lKTsKKyAgICAgICAgICAgICAgICBhZGRJbmNvbWluZyhpbmRleCwgbV9vdXQuYW5jaG9y
KG5leHRJbmRleCkpOworICAgICAgICAgICAgICAgIGFkZEluY29taW5nKHBvaW50ZXIsIG1fb3V0
LmFuY2hvcihtX291dC5hZGQocG9pbnRlciwgbV9vdXQuaW50UHRyRWlnaHQpKSk7CisgICAgICAg
ICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdFplcm8zMihuZXh0SW5kZXgpLCBpbml0TG9v
cCwgaW5pdERvbmUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmFw
cGVuZFRvKGluaXREb25lLCBpbml0TGFzdE5leHQpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgCisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9y
KG9iamVjdCk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGxhcmdlQ2FzZSwgZmFpbENhc2UpOwor
ICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgbGFyZ2VTdHJ1Y3R1cmUgPSBtX291dC5hbmNob3Io
bV9vdXQuY29uc3RJbnRQdHIoCisgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5hcnJheVN0
cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoQXJyYXlTdG9y
YWdlKSkpOworICAgICAgICAgICAgbV9vdXQuanVtcChzbG93Q2FzZSk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGZhaWxDYXNlLCBzbG93Q2FzZSk7CisgICAgICAg
ICAgICBWYWx1ZUZyb21CbG9jayBmYWlsU3RydWN0dXJlID0gbV9vdXQuYW5jaG9yKG1fb3V0LmNv
bnN0SW50UHRyKHN0cnVjdHVyZSkpOworICAgICAgICAgICAgbV9vdXQuanVtcChzbG93Q2FzZSk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dDYXNlLCBjb250
aW51YXRpb24pOworICAgICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZVZhbHVlID0gbV9vdXQucGhp
KAorICAgICAgICAgICAgICAgIG1fb3V0LmludFB0ciwgbGFyZ2VTdHJ1Y3R1cmUsIGZhaWxTdHJ1
Y3R1cmUpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFu
Y2hvcih2bUNhbGwoCisgICAgICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbk5l
d0FycmF5V2l0aFNpemUpLAorICAgICAgICAgICAgICAgIG1fY2FsbEZyYW1lLCBzdHJ1Y3R1cmVW
YWx1ZSwgcHVibGljTGVuZ3RoKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlv
bik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlv
biwgbGFzdE5leHQpOworICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkobV9vdXQuaW50
UHRyLCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmVWYWx1ZSA9IG1fb3V0LnNl
bGVjdCgKKyAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbChwdWJsaWNMZW5ndGgsIG1fb3V0
LmNvbnN0SW50MzIoTUlOX1NQQVJTRV9BUlJBWV9JTkRFWCkpLAorICAgICAgICAgICAgbV9vdXQu
Y29uc3RJbnRQdHIoCisgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVy
ZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoQXJyYXlTdG9yYWdlKSks
CisgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihzdHJ1Y3R1cmUpKTsKKyAgICAgICAgc2V0
SlNWYWx1ZSh2bUNhbGwobV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemUp
LCBtX2NhbGxGcmFtZSwgc3RydWN0dXJlVmFsdWUsIHB1YmxpY0xlbmd0aCkpOworICAgIH0KKyAg
ICAKICAgICB2b2lkIGNvbXBpbGVBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSgpCiAgICAgewogICAg
ICAgICBTdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0YSYgZGF0YSA9IG1fbm9kZS0+c3RydWN0dXJlVHJh
bnNpdGlvbkRhdGEoKTsKQEAgLTIxMDIsNiArMjQ3NCwxNjAgQEAgcHJpdmF0ZToKICAgICAgICAg
c2V0U3RvcmFnZShyZXN1bHQpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVUb1N0cmlu
ZygpCisgICAgeworICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7
CisgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOiB7CisgICAgICAgICAgICBMVmFsdWUgY2Vs
bCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJp
bmdPYmplY3RGb3JDZWxsKG1fbm9kZS0+Y2hpbGQxKCksIGNlbGwpOworICAgICAgICAgICAgbV9p
bnRlcnByZXRlci5maWx0ZXIobV9ub2RlLT5jaGlsZDEoKSwgU3BlY1N0cmluZ09iamVjdCk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9hZFB0cihjZWxsLCBt
X2hlYXBzLkpTV3JhcHBlck9iamVjdF9pbnRlcm5hbFZhbHVlKSk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFN0cmluZ09yU3RyaW5n
T2JqZWN0VXNlOiB7CisgICAgICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgc3RydWN0dXJlID0gbV9vdXQubG9hZFB0cihj
ZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBMQmFzaWNCbG9jayBub3RTdHJpbmcgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5n
IFN0cmluZ09yU3RyaW5nT2JqZWN0IG5vdCBzdHJpbmcgY2FzZSIpKTsKKyAgICAgICAgICAgIExC
YXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiVG9TdHJpbmcg
U3RyaW5nT3JTdHJpbmdPYmplY3QgY29udGludWF0aW9uIikpOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBWYWx1ZUZyb21CbG9jayBzaW1wbGVSZXN1bHQgPSBtX291dC5hbmNob3IoY2VsbCk7
CisgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICAgICAgbV9vdXQuZXF1YWwo
c3RydWN0dXJlLCBtX291dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkp
LAorICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbiwgbm90U3RyaW5nKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RT
dHJpbmcsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3RG
b3JTdHJ1Y3R1cmUobV9ub2RlLT5jaGlsZDEoKSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIFZh
bHVlRnJvbUJsb2NrIHVuYm94ZWRSZXN1bHQgPSBtX291dC5hbmNob3IoCisgICAgICAgICAgICAg
ICAgbV9vdXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTV3JhcHBlck9iamVjdF9pbnRlcm5hbFZh
bHVlKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwor
ICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkobV9vdXQuaW50NjQsIHNpbXBsZVJlc3Vs
dCwgdW5ib3hlZFJlc3VsdCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX2ludGVycHJl
dGVyLmZpbHRlcihtX25vZGUtPmNoaWxkMSgpLCBTcGVjU3RyaW5nIHwgU3BlY1N0cmluZ09iamVj
dCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAg
ICBjYXNlIENlbGxVc2U6CisgICAgICAgIGNhc2UgVW50eXBlZFVzZTogeworICAgICAgICAgICAg
TFZhbHVlIHZhbHVlOworICAgICAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgp
ID09IENlbGxVc2UpCisgICAgICAgICAgICAgICAgdmFsdWUgPSBsb3dDZWxsKG1fbm9kZS0+Y2hp
bGQxKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHZhbHVlID0gbG93SlNW
YWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2lj
QmxvY2sgaXNDZWxsID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJUb1N0cmluZyBDZWxsVXNlL1Vu
dHlwZWRVc2UgaXMgY2VsbCIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdFN0cmluZyA9
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiVG9TdHJpbmcgQ2VsbFVzZS9VbnR5cGVkVXNlIG5vdCBz
dHJpbmciKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVX
X0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIENlbGxVc2UvVW50eXBlZFVzZSBjb250aW51YXRpb24i
KSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBpc0NlbGxQcmVkaWNhdGU7Cisg
ICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkKKyAg
ICAgICAgICAgICAgICBpc0NlbGxQcmVkaWNhdGUgPSBtX291dC5ib29sZWFuVHJ1ZTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpc0NlbGxQcmVkaWNhdGUgPSB0aGlzLT5pc0Nl
bGwodmFsdWUpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQ2VsbFByZWRpY2F0ZSwgaXND
ZWxsLCBub3RTdHJpbmcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBs
YXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzQ2VsbCwgbm90U3RyaW5nKTsKKyAgICAgICAgICAg
IFZhbHVlRnJvbUJsb2NrIHNpbXBsZVJlc3VsdCA9IG1fb3V0LmFuY2hvcih2YWx1ZSk7CisgICAg
ICAgICAgICBMVmFsdWUgaXNTdHJpbmdQcmVkaWNhdGU7CisgICAgICAgICAgICBpZiAobV9ub2Rl
LT5jaGlsZDEoKS0+cHJlZGljdGlvbigpICYgU3BlY1N0cmluZykgeworICAgICAgICAgICAgICAg
IGlzU3RyaW5nUHJlZGljYXRlID0gbV9vdXQuZXF1YWwoCisgICAgICAgICAgICAgICAgICAgIG1f
b3V0LmxvYWRQdHIodmFsdWUsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSksCisgICAgICAgICAg
ICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJlLmdldCgpKSk7
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBpc1N0cmluZ1ByZWRpY2F0ZSA9
IG1fb3V0LmJvb2xlYW5GYWxzZTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc1N0cmluZ1By
ZWRpY2F0ZSwgY29udGludWF0aW9uLCBub3RTdHJpbmcpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBtX291dC5hcHBlbmRUbyhub3RTdHJpbmcsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAg
ICBMVmFsdWUgb3BlcmF0aW9uOworICAgICAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNl
S2luZCgpID09IENlbGxVc2UpCisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gbV9vdXQub3Bl
cmF0aW9uKG9wZXJhdGlvblRvU3RyaW5nT25DZWxsKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBvcGVyYXRpb24gPSBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uVG9TdHJpbmcp
OworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgY29udmVydGVkUmVzdWx0ID0gbV9vdXQuYW5j
aG9yKHZtQ2FsbChvcGVyYXRpb24sIG1fY2FsbEZyYW1lLCB2YWx1ZSkpOworICAgICAgICAgICAg
bV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgICAgIHNldEpTVmFs
dWUobV9vdXQucGhpKG1fb3V0LmludDY0LCBzaW1wbGVSZXN1bHQsIGNvbnZlcnRlZFJlc3VsdCkp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGNvbXBpbGVN
YWtlUm9wZSgpCisgICAgeworICAgICAgICBMVmFsdWUga2lkc1szXTsKKyAgICAgICAgdW5zaWdu
ZWQgbnVtS2lkczsKKyAgICAgICAga2lkc1swXSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7
CisgICAgICAgIGtpZHNbMV0gPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBp
ZiAobV9ub2RlLT5jaGlsZDMoKSkgeworICAgICAgICAgICAga2lkc1syXSA9IGxvd0NlbGwobV9u
b2RlLT5jaGlsZDMoKSk7CisgICAgICAgICAgICBudW1LaWRzID0gMzsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGtpZHNbMl0gPSAwOworICAgICAgICAgICAgbnVtS2lkcyA9IDI7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dQYXRoID0gRlRMX05F
V19CTE9DSyhtX291dCwgKCJNYWtlUm9wZSBzbG93IHBhdGgiKSk7CisgICAgICAgIExCYXNpY0Js
b2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTWFrZVJvcGUgY29udGlu
dWF0aW9uIikpOworICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291
dC5pbnNlcnROZXdCbG9ja3NCZWZvcmUoc2xvd1BhdGgpOworICAgICAgICAKKyAgICAgICAgTWFy
a2VkQWxsb2NhdG9yJiBhbGxvY2F0b3IgPQorICAgICAgICAgICAgdm0oKS5oZWFwLmFsbG9jYXRv
ckZvck9iamVjdFdpdGhJbW1vcnRhbFN0cnVjdHVyZURlc3RydWN0b3Ioc2l6ZW9mKEpTUm9wZVN0
cmluZykpOworICAgICAgICAKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGFsbG9jYXRlQ2VsbCgK
KyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKCZhbGxvY2F0b3IpLAorICAgICAgICAgICAg
bV9vdXQuY29uc3RJbnRQdHIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpLAorICAgICAgICAg
ICAgc2xvd1BhdGgpOworICAgICAgICAKKyAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50
UHRyWmVybywgcmVzdWx0LCBtX2hlYXBzLkpTU3RyaW5nX3ZhbHVlKTsKKyAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG51bUtpZHM7ICsraSkKKyAgICAgICAgICAgIG1fb3V0LnN0b3Jl
UHRyKGtpZHNbaV0sIHJlc3VsdCwgbV9oZWFwcy5KU1JvcGVTdHJpbmdfZmliZXJzW2ldKTsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtS2lkczsgaSA8IEpTUm9wZVN0cmluZzo6c19tYXhJ
bnRlcm5hbFJvcGVMZW5ndGg7ICsraSkKKyAgICAgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0
LmludFB0clplcm8sIHJlc3VsdCwgbV9oZWFwcy5KU1JvcGVTdHJpbmdfZmliZXJzW2ldKTsKKyAg
ICAgICAgTFZhbHVlIGZsYWdzID0gbV9vdXQubG9hZDMyKGtpZHNbMF0sIG1faGVhcHMuSlNTdHJp
bmdfZmxhZ3MpOworICAgICAgICBMVmFsdWUgbGVuZ3RoID0gbV9vdXQubG9hZDMyKGtpZHNbMF0s
IG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsg
aSA8IG51bUtpZHM7ICsraSkgeworICAgICAgICAgICAgZmxhZ3MgPSBtX291dC5iaXRBbmQoZmxh
Z3MsIG1fb3V0LmxvYWQzMihraWRzW2ldLCBtX2hlYXBzLkpTU3RyaW5nX2ZsYWdzKSk7CisgICAg
ICAgICAgICBsZW5ndGggPSBtX291dC5hZGQobGVuZ3RoLCBtX291dC5sb2FkMzIoa2lkc1tpXSwg
bV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpKTsKKyAgICAgICAgfQorICAgICAgICBtX291dC5zdG9y
ZTMyKAorICAgICAgICAgICAgbV9vdXQuYml0QW5kKG1fb3V0LmNvbnN0SW50MzIoSlNTdHJpbmc6
OklzOEJpdCksIGZsYWdzKSwKKyAgICAgICAgICAgIHJlc3VsdCwgbV9oZWFwcy5KU1N0cmluZ19m
bGFncyk7CisgICAgICAgIG1fb3V0LnN0b3JlMzIobGVuZ3RoLCByZXN1bHQsIG1faGVhcHMuSlNT
dHJpbmdfbGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1
bHQgPSBtX291dC5hbmNob3IocmVzdWx0KTsKKyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRp
b24pOworICAgICAgICAKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd1BhdGgsIGNvbnRpbnVh
dGlvbik7CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQ7CisgICAgICAgIHN3aXRj
aCAobnVtS2lkcykgeworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBzbG93UmVzdWx0ID0g
bV9vdXQuYW5jaG9yKHZtQ2FsbCgKKyAgICAgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3Bl
cmF0aW9uTWFrZVJvcGUyKSwgbV9jYWxsRnJhbWUsIGtpZHNbMF0sIGtpZHNbMV0pKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBzbG93UmVzdWx0ID0g
bV9vdXQuYW5jaG9yKHZtQ2FsbCgKKyAgICAgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3Bl
cmF0aW9uTWFrZVJvcGUzKSwgbV9jYWxsRnJhbWUsIGtpZHNbMF0sIGtpZHNbMV0sIGtpZHNbMl0p
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgCisgICAgICAgIG1f
b3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICBzZXRKU1ZhbHVl
KG1fb3V0LnBoaShtX291dC5pbnQ2NCwgZmFzdFJlc3VsdCwgc2xvd1Jlc3VsdCkpOworICAgIH0K
KyAgICAKICAgICB2b2lkIGNvbXBpbGVTdHJpbmdDaGFyQXQoKQogICAgIHsKICAgICAgICAgTFZh
bHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwpAQCAtMjExNCw3ICsyNjQwLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAg
ICAgICBtX291dC5hYm92ZU9yRXF1YWwoCi0gICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0Lmxv
YWQzMihiYXNlLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCkpLAorICAgICAgICAgICAgICAgIGlu
ZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShiYXNlLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0
aCkpLAogICAgICAgICAgICAgc2xvd1BhdGgsIGZhc3RQYXRoKTsKICAgICAgICAgICAgIAogICAg
ICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGZhc3RQYXRoLCBzbG93
UGF0aCk7CkBAIC0yMjEwLDcgKzI3MzYsOCBAQCBwcml2YXRlOgogICAgICAgICAKICAgICAgICAg
c3BlY3VsYXRlKAogICAgICAgICAgICAgVW5jb3VudGFibGUsIG5vVmFsdWUoKSwgMCwKLSAgICAg
ICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbChpbmRleCwgbV9vdXQubG9hZDMyKGJhc2UsIG1faGVh
cHMuSlNTdHJpbmdfbGVuZ3RoKSkpOworICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKAor
ICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShiYXNlLCBtX2hl
YXBzLkpTU3RyaW5nX2xlbmd0aCkpKTsKICAgICAgICAgCiAgICAgICAgIExWYWx1ZSBzdHJpbmdJ
bXBsID0gbV9vdXQubG9hZFB0cihiYXNlLCBtX2hlYXBzLkpTU3RyaW5nX3ZhbHVlKTsKICAgICAg
ICAgCkBAIC0yMzQ1LDYgKzI4NzIsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGls
ZUdldENhbGxlZSgpCisgICAgeworICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWRQdHIoYWRk
cmVzc0ZvcihKU1N0YWNrOjpDYWxsZWUpKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgY29tcGls
ZUdldFNjb3BlKCkKKyAgICB7CisgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9hZFB0cihsb3dD
ZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBzLkpTRnVuY3Rpb25fc2NvcGUpKTsKKyAgICB9
CisgICAgCiAgICAgdm9pZCBjb21waWxlR2V0TXlTY29wZSgpCiAgICAgewogICAgICAgICBzZXRK
U1ZhbHVlKG1fb3V0LmxvYWRQdHIoYWRkcmVzc0ZvcigKQEAgLTI0ODgsMzUgKzMwMjUsMzcgQEAg
cHJpdmF0ZToKICAgICAKICAgICB2b2lkIGNvbXBpbGVDYWxsT3JDb25zdHJ1Y3QoKQogICAgIHsK
LSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgdW5hY2NlcHRhYmx5IHNsb3cuCi0gICAgICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2MjEKKyAgICAgICAg
aW50IGR1bW15VGhpc0FyZ3VtZW50ID0gbV9ub2RlLT5vcCgpID09IENhbGwgPyAwIDogMTsKKyAg
ICAgICAgaW50IG51bVBhc3NlZEFyZ3MgPSBtX25vZGUtPm51bUNoaWxkcmVuKCkgLSAxOworICAg
ICAgICBpbnQgbnVtQXJncyA9IG51bVBhc3NlZEFyZ3MgKyBkdW1teVRoaXNBcmd1bWVudDsKICAg
ICAgICAgCi0gICAgICAgIEpfSklUT3BlcmF0aW9uX0UgZnVuY3Rpb24gPQotICAgICAgICAgICAg
bV9ub2RlLT5vcCgpID09IENhbGwgPyBvcGVyYXRpb25GVExDYWxsIDogb3BlcmF0aW9uRlRMQ29u
c3RydWN0OworICAgICAgICBMVmFsdWUgY2FsbGVlID0gbG93SlNWYWx1ZShtX2dyYXBoLnZhckFy
Z0NoaWxkKG1fbm9kZSwgMCkpOwogICAgICAgICAKLSAgICAgICAgaW50IGR1bW15VGhpc0FyZ3Vt
ZW50ID0gbV9ub2RlLT5vcCgpID09IENhbGwgPyAwIDogMTsKKyAgICAgICAgdW5zaWduZWQgc3Rh
Y2ttYXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsKICAgICAgICAgCi0gICAgICAgIGludCBudW1QYXNz
ZWRBcmdzID0gbV9ub2RlLT5udW1DaGlsZHJlbigpIC0gMTsKKyAgICAgICAgVmVjdG9yPExWYWx1
ZT4gYXJndW1lbnRzOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50NjQo
c3RhY2ttYXBJRCkpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50MzIo
c2l6ZU9mQ2FsbCgpKSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoY29uc3ROdWxsKG1fb3V0
LnJlZjgpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5jb25zdEludDMyKDEgKyBK
U1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1Np
emUgKyBudW1BcmdzKSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoY2FsbGVlKTsgLy8gY2Fs
bGVlIC0+ICVyYXgKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChnZXRVbmRlZihtX291dC5pbnQ2
NCkpOyAvLyBjb2RlIGJsb2NrCisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoZ2V0VW5kZWYobV9v
dXQuaW50NjQpKTsgLy8gc2NvcGUgY2hhaW4KKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjYWxs
ZWUpOyAvLyBjYWxsZWUgLT4gc3RhY2sKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChtX291dC5j
b25zdEludDY0KG51bUFyZ3MpKTsgLy8gYXJndW1lbnQgY291bnQgYW5kIHplcm9zIGZvciB0aGUg
dGFnCisgICAgICAgIGlmIChkdW1teVRoaXNBcmd1bWVudCkKKyAgICAgICAgICAgIGFyZ3VtZW50
cy5hcHBlbmQoZ2V0VW5kZWYobV9vdXQuaW50NjQpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBudW1QYXNzZWRBcmdzOyArK2kpCisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGxv
d0pTVmFsdWUobV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEgKyBpKSkpOwogICAgICAgICAK
LSAgICAgICAgTFZhbHVlIGNhbGxlZUZyYW1lID0gbV9vdXQuYWRkKAotICAgICAgICAgICAgbV9j
YWxsRnJhbWUsCi0gICAgICAgICAgICBtX291dC5jb25zdEludFB0cihzaXplb2YoUmVnaXN0ZXIp
ICogdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9ncmFwaC5mcmFtZVJlZ2lzdGVyQ291bnQoKSku
b2Zmc2V0KCkpKTsKKyAgICAgICAgY2FsbFByZWZsaWdodCgpOwogICAgICAgICAKLSAgICAgICAg
bV9vdXQuc3RvcmUzMigKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIobnVtUGFzc2VkQXJn
cyArIGR1bW15VGhpc0FyZ3VtZW50KSwKLSAgICAgICAgICAgIHBheWxvYWRGb3IoY2FsbGVlRnJh
bWUsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKTsKLSAgICAgICAgbV9vdXQuc3RvcmU2NChtX2Nh
bGxGcmFtZSwgY2FsbGVlRnJhbWUsIG1faGVhcHMuQ2FsbEZyYW1lX2NhbGxlckZyYW1lKTsKLSAg
ICAgICAgbV9vdXQuc3RvcmU2NCgKLSAgICAgICAgICAgIGxvd0pTVmFsdWUobV9ncmFwaC52YXJB
cmdDaGlsZChtX25vZGUsIDApKSwKLSAgICAgICAgICAgIGFkZHJlc3NGb3IoY2FsbGVlRnJhbWUs
IEpTU3RhY2s6OkNhbGxlZSkpOworICAgICAgICBMVmFsdWUgY2FsbCA9IG1fb3V0LmNhbGwobV9v
dXQucGF0Y2hwb2ludEludDY0SW50cmluc2ljKCksIGFyZ3VtZW50cyk7CisgICAgICAgIHNldElu
c3RydWN0aW9uQ2FsbGluZ0NvbnZlbnRpb24oY2FsbCwgTExWTVdlYktpdEpTQ2FsbENvbnYpOwog
ICAgICAgICAKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1QYXNzZWRBcmdzOyArK2kp
IHsKLSAgICAgICAgICAgIG1fb3V0LnN0b3JlNjQoCi0gICAgICAgICAgICAgICAgbG93SlNWYWx1
ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSArIGkpKSwKLSAgICAgICAgICAgICAgICBh
ZGRyZXNzRm9yKGNhbGxlZUZyYW1lLCB2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChpICsgZHVt
bXlUaGlzQXJndW1lbnQpLm9mZnNldCgpKSk7Ci0gICAgICAgIH0KKyAgICAgICAgbV9mdGxTdGF0
ZS5qc0NhbGxzLmFwcGVuZChKU0NhbGwoc3RhY2ttYXBJRCwgbV9ub2RlKSk7CiAgICAgICAgIAot
ICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChtX291dC5vcGVyYXRpb24oZnVuY3Rpb24pLCBjYWxs
ZWVGcmFtZSkpOworICAgICAgICBzZXRKU1ZhbHVlKGNhbGwpOwogICAgIH0KICAgICAKICAgICB2
b2lkIGNvbXBpbGVKdW1wKCkKQEAgLTI2MjcsNyArMzE2Niw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX291dC5u
b3RFcXVhbCgKLSAgICAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyKHN0cmluZ1ZhbHVlLCBt
X2hlYXBzLkpTU3RyaW5nX2xlbmd0aCksCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQz
Mk5vbk5lZ2F0aXZlKHN0cmluZ1ZhbHVlLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCksCiAgICAg
ICAgICAgICAgICAgICAgIG1fb3V0LmludDMyT25lKSwKICAgICAgICAgICAgICAgICBsb3dCbG9j
ayhkYXRhLT5mYWxsVGhyb3VnaCksIGxlbmd0aElzMSk7CiAgICAgICAgICAgICAKQEAgLTI3MDgs
NiArMzI0NywyMiBAQCBwcml2YXRlOgogICAgICAgICBpbmZvLm1faXNJbnZhbGlkYXRpb25Qb2lu
dCA9IHRydWU7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZUNoZWNrQXJndW1lbnRzTm90
Q3JlYXRlZCgpCisgICAgeworICAgICAgICBBU1NFUlQoIWlzRW1wdHlTcGVjdWxhdGlvbigKKyAg
ICAgICAgICAgIG1fc3RhdGUudmFyaWFibGVzKCkub3BlcmFuZCgKKyAgICAgICAgICAgICAgICBt
X2dyYXBoLmFyZ3VtZW50c1JlZ2lzdGVyRm9yKG1fbm9kZS0+Y29kZU9yaWdpbikpLm1fdHlwZSkp
OworICAgICAgICAKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHJlZyA9IG1fZ3JhcGgubWFjaGlu
ZUFyZ3VtZW50c1JlZ2lzdGVyRm9yKG1fbm9kZS0+Y29kZU9yaWdpbik7CisgICAgICAgIHNwZWN1
bGF0ZShBcmd1bWVudHNFc2NhcGVkLCBub1ZhbHVlKCksIDAsIG1fb3V0Lm5vdFplcm82NChtX291
dC5sb2FkNjQoYWRkcmVzc0ZvcihyZWcpKSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGNvbXBp
bGVDb3VudEV4ZWN1dGlvbigpCisgICAgeworICAgICAgICBUeXBlZFBvaW50ZXIgY291bnRlciA9
IG1fb3V0LmFic29sdXRlKG1fbm9kZS0+ZXhlY3V0aW9uQ291bnRlcigpLT5hZGRyZXNzKCkpOwor
ICAgICAgICBtX291dC5zdG9yZTY0KG1fb3V0LmFkZChtX291dC5sb2FkNjQoY291bnRlciksIG1f
b3V0LmNvbnN0SW50NjQoMSkpLCBjb3VudGVyKTsKKyAgICB9CisgICAgCiAgICAgVHlwZWRQb2lu
dGVyIGJhc2VJbmRleChJbmRleGVkQWJzdHJhY3RIZWFwJiBoZWFwLCBMVmFsdWUgc3RvcmFnZSwg
TFZhbHVlIGluZGV4LCBFZGdlIGVkZ2UpCiAgICAgewogICAgICAgICByZXR1cm4gbV9vdXQuYmFz
ZUluZGV4KApAQCAtMjkyNCw3ICszNDc5LDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIGlm
IChKU0FycmF5QnVmZmVyVmlldyogdmlldyA9IG1fZ3JhcGgudHJ5R2V0Rm9sZGFibGVWaWV3KGJh
c2VFZGdlLm5vZGUoKSwgYXJyYXlNb2RlKSkKICAgICAgICAgICAgIHJldHVybiBtX291dC5jb25z
dEludDMyKHZpZXctPmxlbmd0aCgpKTsKLSAgICAgICAgcmV0dXJuIG1fb3V0LmxvYWQzMihiYXNl
LCBtX2hlYXBzLkpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0aCk7CisgICAgICAgIHJldHVybiBtX291
dC5sb2FkMzJOb25OZWdhdGl2ZShiYXNlLCBtX2hlYXBzLkpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0
aCk7CiAgICAgfQogICAgIAogICAgIExWYWx1ZSB0eXBlZEFycmF5TGVuZ3RoKEVkZ2UgYmFzZUVk
Z2UsIEFycmF5TW9kZSBhcnJheU1vZGUpCkBAIC0yOTQ4LDcgKzM1MDMsNyBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgICAgICBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pKTsKICAgICAgICAg
Y2FzZSBTdHJpbmdVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSBzdHJpbmdWYWx1ZSA9IGxvd1N0
cmluZyhtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIExWYWx1ZSBsZW5ndGggPSBtX291
dC5sb2FkMzIoc3RyaW5nVmFsdWUsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKTsKKyAgICAgICAg
ICAgIExWYWx1ZSBsZW5ndGggPSBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdHJpbmdWYWx1ZSwg
bV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpOwogICAgICAgICAgICAgcmV0dXJuIG1fb3V0Lm5vdEVx
dWFsKGxlbmd0aCwgbV9vdXQuaW50MzJaZXJvKTsKICAgICAgICAgfQogICAgICAgICBjYXNlIFVu
dHlwZWRVc2U6IHsKQEAgLTMwODIsNyArMzYzNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIExCYXNp
Y0Jsb2NrIGNvbnRpbnVhdGlvbikKICAgICB7CiAgICAgICAgIExWYWx1ZSBpc05vdEluQm91bmRz
ID0gbV9vdXQuYWJvdmVPckVxdWFsKAotICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihz
dG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsKKyAgICAgICAgICAgIGlu
ZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9w
dWJsaWNMZW5ndGgpKTsKICAgICAgICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3Vu
ZHMoKSkgewogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90SW5Cb3VuZHNDYXNlID0KICAgICAg
ICAgICAgICAgICBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlB1dEJ5VmFsIG5vdCBpbiBib3VuZHMi
KSk7CkBAIC0zMDk0LDcgKzM2NDksNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgTEJhc2ljQmxv
Y2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RJbkJvdW5kc0Nhc2UsIHBlcmZvcm1TdG9y
ZSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBMVmFsdWUgaXNPdXRPZkJvdW5kcyA9
IG1fb3V0LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMy
KHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3ZlY3Rvckxlbmd0aCkpOworICAgICAgICAgICAg
ICAgIGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRl
cmZseV92ZWN0b3JMZW5ndGgpKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICgh
bV9ub2RlLT5hcnJheU1vZGUoKS5pc091dE9mQm91bmRzKCkpCiAgICAgICAgICAgICAgICAgc3Bl
Y3VsYXRlKE91dE9mQm91bmRzLCBub1ZhbHVlKCksIDAsIGlzT3V0T2ZCb3VuZHMpOwpAQCAtMzcx
OCw2ICs0MjczLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEtub3duSW50MzJVc2U6CiAgICAgICAgIGNhc2UgS25vd25OdW1iZXJVc2U6CisgICAgICAgIGNh
c2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgICAgICBBU1NFUlQoIW1faW50ZXJwcmV0ZXIubmVl
ZHNUeXBlQ2hlY2soZWRnZSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSW50
MzJVc2U6CkBAIC0zNzQxLDYgKzQyOTcsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBTdHJp
bmdVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CisgICAgICAgICAgICBzcGVjdWxh
dGVTdHJpbmdPYmplY3QoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBT
dHJpbmdPclN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09yU3Ry
aW5nT2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUmVhbE51
bWJlclVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVJlYWxOdW1iZXIoZWRnZSk7CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTM3NTMsNiArNDMxNSw5IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2Ug
Qm9vbGVhblVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZUJvb2xlYW4oZWRnZSk7CiAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb3RDZWxsVXNlOgorICAgICAgICAgICAgc3BlY3Vs
YXRlTm90Q2VsbChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgZGF0YUxvZygiVW5zdXBwb3J0ZWQgc3BlY3VsYXRpb24gdXNlIGtpbmQ6ICIs
IGVkZ2UudXNlS2luZCgpLCAiXG4iKTsKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC0zOTI4LDYgKzQ0OTMsNTUgQEAgcHJpdmF0ZToKICAgICAgICAgc3BlY3Vs
YXRlU3RyaW5nKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOwogICAgIH0KICAgICAKKyAgICB2b2lkIHNw
ZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBpZiAoIW1faW50
ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1N0cmluZ09iamVjdCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JD
ZWxsKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgICAgICBtX2ludGVycHJldGVyLmZpbHRlcihl
ZGdlLCBTcGVjU3RyaW5nT2JqZWN0KTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVT
dHJpbmdPclN0cmluZ09iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBpZiAoIW1faW50
ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1N0cmluZyB8IFNwZWNTdHJpbmdPYmpl
Y3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sg
bm90U3RyaW5nID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJTcGVjdWxhdGUgU3RyaW5nT3JTdHJp
bmdPYmplY3Qgbm90IHN0cmluZyBjYXNlIikpOworICAgICAgICBMQmFzaWNCbG9jayBjb250aW51
YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlNwZWN1bGF0ZSBTdHJpbmdPclN0cmluZ09i
amVjdCBjb250aW51YXRpb24iKSk7CisgICAgICAgIAorICAgICAgICBMVmFsdWUgc3RydWN0dXJl
ID0gbV9vdXQubG9hZFB0cihsb3dDZWxsKGVkZ2UpLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUp
OworICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICBtX291dC5lcXVhbChzdHJ1Y3R1
cmUsIG1fb3V0LmNvbnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJlLmdldCgpKSksCisgICAg
ICAgICAgICBjb250aW51YXRpb24sIG5vdFN0cmluZyk7CisgICAgICAgIAorICAgICAgICBMQmFz
aWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGludWF0aW9u
KTsKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yU3RydWN0dXJlKGVkZ2UsIHN0cnVj
dHVyZSk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgCisgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAKKyAg
ICAgICAgbV9pbnRlcnByZXRlci5maWx0ZXIoZWRnZSwgU3BlY1N0cmluZyB8IFNwZWNTdHJpbmdP
YmplY3QpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvckNl
bGwoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZVN0cmlu
Z09iamVjdEZvclN0cnVjdHVyZShlZGdlLCBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlND
ZWxsX3N0cnVjdHVyZSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09i
amVjdEZvclN0cnVjdHVyZShFZGdlIGVkZ2UsIExWYWx1ZSBzdHJ1Y3R1cmUpCisgICAgeworICAg
ICAgICBTdHJ1Y3R1cmUqIHN0cmluZ09iamVjdFN0cnVjdHVyZSA9CisgICAgICAgICAgICBtX2dy
YXBoLmdsb2JhbE9iamVjdEZvcihtX25vZGUtPmNvZGVPcmlnaW4pLT5zdHJpbmdPYmplY3RTdHJ1
Y3R1cmUoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUoZWRnZSkubV9j
dXJyZW50S25vd25TdHJ1Y3R1cmUuaXNTdWJzZXRPZihTdHJ1Y3R1cmVTZXQoc3RyaW5nT2JqZWN0
U3RydWN0dXJlKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBzcGVj
dWxhdGUoCisgICAgICAgICAgICBOb3RTdHJpbmdPYmplY3QsIG5vVmFsdWUoKSwgMCwKKyAgICAg
ICAgICAgIG1fb3V0Lm5vdEVxdWFsKHN0cnVjdHVyZSwgd2Vha1BvaW50ZXIoc3RyaW5nT2JqZWN0
U3RydWN0dXJlKSkpOworICAgIH0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZU5vbk51bGxPYmpl
Y3QoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1
cmUgPSBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSk7CkBAIC0z
OTc5LDYgKzQ1OTMsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgbG93Qm9vbGVhbihlZGdlKTsKICAg
ICB9CiAgICAgCisgICAgdm9pZCBzcGVjdWxhdGVOb3RDZWxsKEVkZ2UgZWRnZSkKKyAgICB7Cisg
ICAgICAgIGlmICghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVDaGVjayhlZGdlKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUo
ZWRnZSk7CisgICAgICAgIHR5cGVDaGVjayhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCB+U3Bl
Y0NlbGwsIGlzQ2VsbCh2YWx1ZSkpOworICAgIH0KKyAgICAKICAgICBib29sIG1hc3F1ZXJhZGVz
QXNVbmRlZmluZWRXYXRjaHBvaW50SXNTdGlsbFZhbGlkKCkKICAgICB7CiAgICAgICAgIHJldHVy
biBtX2dyYXBoLm1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50SXNTdGlsbFZhbGlkKG1f
bm9kZS0+Y29kZU9yaWdpbik7CkBAIC00MTA2LDE4ICs0NzI5LDEzIEBAIHByaXZhdGU6CiAgICAg
ICAgIGlmIChtb2RlID09IE5vRXhjZXB0aW9ucykKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgCi0gICAgICAgIExCYXNpY0Jsb2NrIGRpZEhhdmVFeGNlcHRpb24gPSBGVExfTkVXX0JMT0NL
KG1fb3V0LCAoIkRpZCBoYXZlIGV4Y2VwdGlvbiIpKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29u
dGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJFeGNlcHRpb24gY2hlY2sgY29udGlu
dWF0aW9uIikpOwogICAgICAgICAKICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAg
bV9vdXQubm90WmVybzY0KG1fb3V0LmxvYWQ2NChtX291dC5hYnNvbHV0ZSh2bSgpLmFkZHJlc3NP
ZkV4Y2VwdGlvbigpKSkpLAotICAgICAgICAgICAgZGlkSGF2ZUV4Y2VwdGlvbiwgY29udGludWF0
aW9uKTsKKyAgICAgICAgICAgIG1faGFuZGxlRXhjZXB0aW9ucywgY29udGludWF0aW9uKTsKICAg
ICAgICAgCi0gICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZGlk
SGF2ZUV4Y2VwdGlvbiwgY29udGludWF0aW9uKTsKLSAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBl
eGNlcHRpb25zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIy
Ci0gICAgICAgIG1fb3V0LmNyYXNoKCk7Ci0gICAgICAgIAotICAgICAgICBtX291dC5hcHBlbmRU
byhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGlu
dWF0aW9uKTsKICAgICB9CiAgICAgCiAgICAgTEJhc2ljQmxvY2sgbG93QmxvY2soQmFzaWNCbG9j
ayogYmxvY2spCkBAIC00MTMzLDggKzQ3NTEsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGVu
ZE9TUkV4aXQoCiAgICAgICAgIEV4aXRLaW5kIGtpbmQsIEZvcm1hdHRlZFZhbHVlIGxvd1ZhbHVl
LCBOb2RlKiBoaWdoVmFsdWUsIExWYWx1ZSBmYWlsQ29uZGl0aW9uKQogICAgIHsKLSAgICAgICAg
aWYgKHZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgaWYgKHZlcmJvc2VDb21w
aWxhdGlvbkVuYWJsZWQoKSkgewogICAgICAgICAgICAgZGF0YUxvZygiICAgIE9TUiBleGl0ICMi
LCBtX2Z0bFN0YXRlLmppdENvZGUtPm9zckV4aXQuc2l6ZSgpLCAiIHdpdGggYXZhaWxhYmlsaXR5
OiAiLCBtX2F2YWlsYWJpbGl0eSwgIlxuIik7CisgICAgICAgICAgICBpZiAoIW1fYXZhaWxhYmxl
UmVjb3Zlcmllcy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgICAgICBB
dmFpbGFibGUgcmVjb3ZlcmllczogIiwgbGlzdER1bXAobV9hdmFpbGFibGVSZWNvdmVyaWVzKSwg
IlxuIik7CisgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQobV9mdGxTdGF0ZS5qaXRDb2RlLT5v
c3JFeGl0LnNpemUoKSA9PSBtX2Z0bFN0YXRlLmZpbmFsaXplci0+b3NyRXhpdC5zaXplKCkpOwog
ICAgICAgICAKQEAgLTQxNzgsNyArNDc5OSw2IEBAIHByaXZhdGU6CiAgICAgICAgIE9TUkV4aXQm
IGV4aXQsIEV4aXRBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgRm9ybWF0dGVkVmFsdWUgbG93VmFs
dWUsCiAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbikKICAgICB7Ci0gICAgICAgIGFyZ3Vt
ZW50cy5hcHBlbmQobV9jYWxsRnJhbWUpOwogICAgICAgICBpZiAoISFsb3dWYWx1ZSkKICAgICAg
ICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobG93VmFsdWUudmFsdWUoKSk7CiAgICAgICAgIApAQCAt
NDI0Niw3ICs0ODY2LDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIGV4aXQubV9zdGFja21h
cElEID0gbV9zdGFja21hcElEcysrOwogICAgICAgICBhcmd1bWVudHMuaW5zZXJ0KDAsIG1fb3V0
LmNvbnN0SW50MzIoTWFjcm9Bc3NlbWJsZXI6Om1heEp1bXBSZXBsYWNlbWVudFNpemUoKSkpOwot
ICAgICAgICBhcmd1bWVudHMuaW5zZXJ0KDAsIG1fb3V0LmNvbnN0SW50MzIoZXhpdC5tX3N0YWNr
bWFwSUQpKTsKKyAgICAgICAgYXJndW1lbnRzLmluc2VydCgwLCBtX291dC5jb25zdEludDY0KGV4
aXQubV9zdGFja21hcElEKSk7CiAgICAgICAgIAogICAgICAgICBtX291dC5jYWxsKG1fb3V0LnN0
YWNrbWFwSW50cmluc2ljKCksIGFyZ3VtZW50cyk7CiAgICAgfQpAQCAtNDI2MCw2ICs0ODgwLDE5
IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICh0cnlUb1NldENvbnN0YW50RXhpdEFyZ3VtZW50KGV4
aXQsIGluZGV4LCBub2RlKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2F2YWlsYWJsZVJlY292ZXJpZXMuc2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgICAgIEF2YWlsYWJsZVJlY292ZXJ5IHJlY292ZXJ5ID0gbV9hdmFpbGFi
bGVSZWNvdmVyaWVzW2ldOworICAgICAgICAgICAgaWYgKHJlY292ZXJ5Lm5vZGUoKSAhPSBub2Rl
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBl
eGl0Lm1fdmFsdWVzW2luZGV4XSA9IEV4aXRWYWx1ZTo6cmVjb3ZlcnkoCisgICAgICAgICAgICAg
ICAgcmVjb3Zlcnkub3Bjb2RlKCksIGFyZ3VtZW50cy5zaXplKCksIGFyZ3VtZW50cy5zaXplKCkg
KyAxLAorICAgICAgICAgICAgICAgIHJlY292ZXJ5LmZvcm1hdCgpKTsKKyAgICAgICAgICAgIGFy
Z3VtZW50cy5hcHBlbmQocmVjb3ZlcnkubGVmdCgpKTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy5h
cHBlbmQocmVjb3ZlcnkucmlnaHQoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgCiAgICAgICAgIExvd2VyZWROb2RlVmFsdWUgdmFsdWUgPSBtX2ludDMyVmFsdWVz
LmdldChub2RlKTsKICAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKSB7CiAgICAgICAgICAgICBh
ZGRFeGl0QXJndW1lbnQoZXhpdCwgYXJndW1lbnRzLCBpbmRleCwgVmFsdWVGb3JtYXRJbnQzMiwg
dmFsdWUudmFsdWUoKSk7CkBAIC00MzI5LDYgKzQ5NjIsMjkgQEAgcHJpdmF0ZToKICAgICAgICAg
YXJndW1lbnRzLmFwcGVuZCh2YWx1ZSk7CiAgICAgfQogICAgIAorICAgIGJvb2wgZG9lc0tpbGwo
RWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgaWYgKGVkZ2UuZG9lc05vdEtpbGwoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmIChlZGdlLT5oYXNDb25z
dGFudCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAg
ICAgTm9kZSogbm9kZSwgUmVjb3ZlcnlPcGNvZGUgb3Bjb2RlLCBMVmFsdWUgbGVmdCwgTFZhbHVl
IHJpZ2h0LCBWYWx1ZUZvcm1hdCBmb3JtYXQpCisgICAgeworICAgICAgICBtX2F2YWlsYWJsZVJl
Y292ZXJpZXMuYXBwZW5kKEF2YWlsYWJsZVJlY292ZXJ5KG5vZGUsIG9wY29kZSwgbGVmdCwgcmln
aHQsIGZvcm1hdCkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGFkZEF2YWlsYWJsZVJlY292ZXJ5
KAorICAgICAgICBFZGdlIGVkZ2UsIFJlY292ZXJ5T3Bjb2RlIG9wY29kZSwgTFZhbHVlIGxlZnQs
IExWYWx1ZSByaWdodCwgVmFsdWVGb3JtYXQgZm9ybWF0KQorICAgIHsKKyAgICAgICAgYWRkQXZh
aWxhYmxlUmVjb3ZlcnkoZWRnZS5ub2RlKCksIG9wY29kZSwgbGVmdCwgcmlnaHQsIGZvcm1hdCk7
CisgICAgfQorICAgIAogICAgIHZvaWQgc2V0SW50MzIoTm9kZSogbm9kZSwgTFZhbHVlIHZhbHVl
KQogICAgIHsKICAgICAgICAgbV9pbnQzMlZhbHVlcy5zZXQobm9kZSwgTG93ZXJlZE5vZGVWYWx1
ZSh2YWx1ZSwgbV9oaWdoQmxvY2spKTsKQEAgLTQ0MzEsMzUgKzUwODcsMzcgQEAgcHJpdmF0ZToK
ICAgICB9CiAgICAgVHlwZWRQb2ludGVyIHBheWxvYWRGb3IoTFZhbHVlIGJhc2UsIGludCBvcGVy
YW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IoYmFzZSwgb3BlcmFuZCwgT0JK
RUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7Cisg
ICAgICAgIHJldHVybiBhZGRyZXNzRm9yKGJhc2UsIG9wZXJhbmQsIFBheWxvYWRPZmZzZXQpOwog
ICAgIH0KICAgICBUeXBlZFBvaW50ZXIgdGFnRm9yKExWYWx1ZSBiYXNlLCBpbnQgb3BlcmFuZCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZGRyZXNzRm9yKGJhc2UsIG9wZXJhbmQsIE9CSkVDVF9P
RkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7CisgICAgICAgIHJl
dHVybiBhZGRyZXNzRm9yKGJhc2UsIG9wZXJhbmQsIFRhZ09mZnNldCk7CiAgICAgfQotICAgIFR5
cGVkUG9pbnRlciBhZGRyZXNzRm9yKGludCBvcGVyYW5kKQorICAgIFR5cGVkUG9pbnRlciBhZGRy
ZXNzRm9yKGludCBvcGVyYW5kLCBwdHJkaWZmX3Qgb2Zmc2V0ID0gMCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZGRyZXNzRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5kKTsKKyAgICAgICAgcmV0dXJu
IGFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKG9wZXJhbmQpLCBvZmZzZXQpOwogICAgIH0KLSAg
ICBUeXBlZFBvaW50ZXIgYWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCkKKyAgICBU
eXBlZFBvaW50ZXIgYWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCwgcHRyZGlmZl90
IG9mZnNldCA9IDApCiAgICAgewotICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihtX2NhbGxGcmFt
ZSwgb3BlcmFuZC5vZmZzZXQoKSk7CisgICAgICAgIGlmIChvcGVyYW5kLmlzTG9jYWwoKSkKKyAg
ICAgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKG1fY2FwdHVyZWQsIG9wZXJhbmQub2Zmc2V0KCks
IG9mZnNldCk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKG1fY2FsbEZyYW1lLCBvcGVyYW5k
Lm9mZnNldCgpLCBvZmZzZXQpOwogICAgIH0KICAgICBUeXBlZFBvaW50ZXIgcGF5bG9hZEZvcihp
bnQgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwYXlsb2FkRm9yKG1fY2FsbEZyYW1l
LCBvcGVyYW5kKTsKKyAgICAgICAgcmV0dXJuIHBheWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVyKG9w
ZXJhbmQpKTsKICAgICB9CiAgICAgVHlwZWRQb2ludGVyIHBheWxvYWRGb3IoVmlydHVhbFJlZ2lz
dGVyIG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4gcGF5bG9hZEZvcihtX2NhbGxGcmFt
ZSwgb3BlcmFuZC5vZmZzZXQoKSk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKG9wZXJhbmQs
IFBheWxvYWRPZmZzZXQpOwogICAgIH0KICAgICBUeXBlZFBvaW50ZXIgdGFnRm9yKGludCBvcGVy
YW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRhZ0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZCk7
CisgICAgICAgIHJldHVybiB0YWdGb3IoVmlydHVhbFJlZ2lzdGVyKG9wZXJhbmQpKTsKICAgICB9
CiAgICAgVHlwZWRQb2ludGVyIHRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCkKICAgICB7
Ci0gICAgICAgIHJldHVybiB0YWdGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zmc2V0KCkpOwor
ICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihvcGVyYW5kLCBUYWdPZmZzZXQpOwogICAgIH0KICAg
ICAKICAgICBWTSYgdm0oKSB7IHJldHVybiBtX2dyYXBoLm1fdm07IH0KQEAgLTQ0NzEsOSArNTEy
OSwxMSBAQCBwcml2YXRlOgogICAgIE91dHB1dCBtX291dDsKICAgICAKICAgICBMQmFzaWNCbG9j
ayBtX3Byb2xvZ3VlOworICAgIExCYXNpY0Jsb2NrIG1faGFuZGxlRXhjZXB0aW9uczsKICAgICBI
YXNoTWFwPEJhc2ljQmxvY2sqLCBMQmFzaWNCbG9jaz4gbV9ibG9ja3M7CiAgICAgCiAgICAgTFZh
bHVlIG1fY2FsbEZyYW1lOworICAgIExWYWx1ZSBtX2NhcHR1cmVkOwogICAgIExWYWx1ZSBtX3Rh
Z1R5cGVOdW1iZXI7CiAgICAgTFZhbHVlIG1fdGFnTWFzazsKICAgICAKQEAgLTQ0ODksNiArNTE0
OSw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAgT3BlcmFuZHM8QXZhaWxhYmlsaXR5PiBtX2F2YWls
YWJpbGl0eTsKICAgICAKKyAgICBWZWN0b3I8QXZhaWxhYmxlUmVjb3ZlcnksIDM+IG1fYXZhaWxh
YmxlUmVjb3ZlcmllczsKKyAgICAKICAgICBJblBsYWNlQWJzdHJhY3RTdGF0ZSBtX3N0YXRlOwog
ICAgIEFic3RyYWN0SW50ZXJwcmV0ZXI8SW5QbGFjZUFic3RyYWN0U3RhdGU+IG1faW50ZXJwcmV0
ZXI7CiAgICAgQmFzaWNCbG9jayogbV9oaWdoQmxvY2s7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFbnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYg
KzQzLDcgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5KAogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CiAgICAgQ29kZUJsb2NrKiBiYXNlbGluZSA9IGRmZ0NvZGVCbG9jay0+YmFzZWxpbmVWZXJz
aW9uKCk7CisgICAgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUgPSBkZmdDb2RlQmxvY2stPm93
bmVyRXhlY3V0YWJsZSgpOwogICAgIERGRzo6SklUQ29kZSogZGZnQ29kZSA9IGRmZ0NvZGVCbG9j
ay0+aml0Q29kZSgpLT5kZmcoKTsKICAgICBGb3JPU1JFbnRyeUpJVENvZGUqIGVudHJ5Q29kZSA9
IGVudHJ5Q29kZUJsb2NrLT5qaXRDb2RlKCktPmZ0bEZvck9TUkVudHJ5KCk7CiAgICAgCkBAIC04
MCw3ICs4MSw3IEBAIHZvaWQqIHByZXBhcmVPU1JFbnRyeSgKICAgICAgICAgc2NyYXRjaFtsb2Nh
bF0gPSBKU1ZhbHVlOjplbmNvZGUodmFsdWVzLmxvY2FsKGxvY2FsKSk7CiAgICAgCiAgICAgaW50
IHN0YWNrRnJhbWVTaXplID0gZW50cnlDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50
Rm9yRXhlY3V0aW9uQW5kRXhpdCgpOwotICAgIGlmICghdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCku
Z3JvdygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoc3RhY2tGcmFt
ZVNpemUpLm9mZnNldCgpXSkpIHsKKyAgICBpZiAoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmVu
c3VyZUNhcGFjaXR5Rm9yKCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2Nh
bChzdGFja0ZyYW1lU2l6ZSAtIDEpLm9mZnNldCgpXSkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6
OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAgIGRhdGFMb2coIiAgICBPU1IgZmFpbGVkIGJlY2F1
c2Ugc3RhY2sgZ3Jvd3RoIGZhaWxlZC5cbiIpOwogICAgICAgICByZXR1cm4gMDsKQEAgLTg4LDcg
Kzg5LDkgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5KAogICAgIAogICAgIGV4ZWMtPnNldENvZGVC
bG9jayhlbnRyeUNvZGVCbG9jayk7CiAgICAgCi0gICAgdm9pZCogcmVzdWx0ID0gZW50cnlDb2Rl
LT5hZGRyZXNzRm9yQ2FsbCgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CisgICAgdm9pZCogcmVzdWx0
ID0gZW50cnlDb2RlLT5hZGRyZXNzRm9yQ2FsbCgKKyAgICAgICAgdm0sIGV4ZWN1dGFibGUsIEFy
aXR5Q2hlY2tOb3RSZXF1aXJlZCwKKyAgICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1
aXJlZCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigp
KQogICAgICAgICBkYXRhTG9nKCIgICAgRW50cnkgd2lsbCBzdWNjZWVkLCBnb2luZyB0byBhZGRy
ZXNzIiwgUmF3UG9pbnRlcihyZXN1bHQpLCAiXG4iKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMT1NSRXhpdC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYgKzE2
NiwxMSBAQCBzdHJ1Y3QgT1NSRXhpdCA6IHB1YmxpYyBERkc6Ok9TUkV4aXRCYXNlCiAgICAgdWlu
dDMyX3QgbV9zdGFja21hcElEOwogICAgIAogICAgIENvZGVMb2NhdGlvbkp1bXAgY29kZUxvY2F0
aW9uRm9yUmVwYXRjaChDb2RlQmxvY2sqIGZ0bENvZGVCbG9jaykgY29uc3Q7CisgICAgCisgICAg
Ym9vbCBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZShDb2RlQmxvY2sqIHByb2ZpbGVk
Q29kZUJsb2NrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9TUkV4aXRCYXNlOjpjb25zaWRlckFk
ZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZShwcm9maWxlZENvZGVCbG9jaywgRXhpdEZyb21GVEwpOwor
ICAgIH0KIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDE2
Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzQsOCArMzQsMTAgQEAKICNpbmNsdWRlICJGVExKSVRDb2RlLmgi
CiAjaW5jbHVkZSAiRlRMT1NSRXhpdC5oIgogI2luY2x1ZGUgIkZUTFNhdmVSZXN0b3JlLmgiCisj
aW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGVy
YW5kc0lubGluZXMuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiUmVnaXN0
ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZl
ci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CkBAIC02Miw5ICs2NCwxMCBA
QCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigKICAgICAKICAgICAvLyBXZSBuZWVkIHNjcmF0Y2gg
c3BhY2UgdG8gc2F2ZSBhbGwgcmVnaXN0ZXJzIGFuZCB0byBidWlsZCB1cCB0aGUgSlNTdGFjay4K
ICAgICAvLyBVc2UgYSBzY3JhdGNoIGJ1ZmZlciB0byB0cmFuc2ZlciBhbGwgdmFsdWVzLgotICAg
IFNjcmF0Y2hCdWZmZXIqIHNjcmF0Y2hCdWZmZXIgPSB2bS0+c2NyYXRjaEJ1ZmZlckZvclNpemUo
c2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSAqIGV4aXQubV92YWx1ZXMuc2l6ZSgpICsgcmVxdWlyZWRT
Y3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSk7CisgICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1
ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6ZShzaXplb2YoRW5jb2RlZEpTVmFsdWUpICog
ZXhpdC5tX3ZhbHVlcy5zaXplKCkgKyByZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygp
ICsgaml0Q29kZS0+dW53aW5kSW5mby5tX3JlZ2lzdGVycy5zaXplKCkgKiBzaXplb2YodWludDY0
X3QpKTsKICAgICBFbmNvZGVkSlNWYWx1ZSogc2NyYXRjaCA9IHNjcmF0Y2hCdWZmZXIgPyBzdGF0
aWNfY2FzdDxFbmNvZGVkSlNWYWx1ZSo+KHNjcmF0Y2hCdWZmZXItPmRhdGFCdWZmZXIoKSkgOiAw
OwogICAgIGNoYXIqIHJlZ2lzdGVyU2NyYXRjaCA9IGJpdHdpc2VfY2FzdDxjaGFyKj4oc2NyYXRj
aCArIGV4aXQubV92YWx1ZXMuc2l6ZSgpKTsKKyAgICB1aW50NjRfdCogdW53aW5kU2NyYXRjaCA9
IGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KHJlZ2lzdGVyU2NyYXRjaCArIHJlcXVpcmVkU2NyYXRj
aE1lbW9yeVNpemVJbkJ5dGVzKCkpOwogICAgIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHNhdmVB
bGxSZWdpc3RlcnMoKSBoYXMgYSBwbGFjZSBvbiB0b3Agb2YgdGhlIHN0YWNrIHRvIHNwaWxsIHRo
aW5ncy4gVGhhdAogICAgIC8vIGZ1bmN0aW9uIGV4cGVjdHMgdG8gYmUgYWJsZSB0byB1c2UgdG9w
IG9mIHN0YWNrIGZvciBzY3JhdGNoIG1lbW9yeS4KQEAgLTc1LDE4ICs3OCwyNyBAQCBzdGF0aWMg
dm9pZCBjb21waWxlU3R1YigKICAgICBqaXQucG9wKEdQUkluZm86OnJlZ1QwKTsKICAgICBqaXQu
cG9wKEdQUkluZm86OnJlZ1QwKTsKICAgICAKKyAgICBpZiAodm0tPm1fcGVyQnl0ZWNvZGVQcm9m
aWxlciAmJiBjb2RlQmxvY2stPmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPmNvbXBpbGF0aW9uKSB7
CisgICAgICAgIFByb2ZpbGVyOjpEYXRhYmFzZSYgZGF0YWJhc2UgPSAqdm0tPm1fcGVyQnl0ZWNv
ZGVQcm9maWxlcjsKKyAgICAgICAgUHJvZmlsZXI6OkNvbXBpbGF0aW9uKiBjb21waWxhdGlvbiA9
IGNvZGVCbG9jay0+aml0Q29kZSgpLT5kZmdDb21tb24oKS0+Y29tcGlsYXRpb24uZ2V0KCk7Cisg
ICAgICAgIAorICAgICAgICBQcm9maWxlcjo6T1NSRXhpdCogcHJvZmlsZXJFeGl0ID0gY29tcGls
YXRpb24tPmFkZE9TUkV4aXQoCisgICAgICAgICAgICBleGl0SUQsIFByb2ZpbGVyOjpPcmlnaW5T
dGFjayhkYXRhYmFzZSwgY29kZUJsb2NrLCBleGl0Lm1fY29kZU9yaWdpbiksCisgICAgICAgICAg
ICBleGl0Lm1fa2luZCwgaXNXYXRjaHBvaW50KGV4aXQubV9raW5kKSk7CisgICAgICAgIGppdC5h
ZGQ2NChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0
ZUFkZHJlc3MocHJvZmlsZXJFeGl0LT5jb3VudGVyQWRkcmVzcygpKSk7CisgICAgfQorCiAgICAg
Ly8gVGhlIHJlbWFpbmluZyBjb2RlIGFzc3VtZXMgdGhhdCBTUC9GUCBhcmUgaW4gdGhlIHNhbWUg
c3RhdGUgdGhhdCB0aGV5IHdlcmUgaW4gdGhlIEZUTCdzCiAgICAgLy8gY2FsbCBmcmFtZS4KICAg
ICAKICAgICAvLyBHZXQgdGhlIGNhbGwgZnJhbWUgYW5kIHRhZyB0aGluZ2llcy4KICAgICAvLyBS
ZXN0b3JlIHRoZSBleGl0aW5nIGZ1bmN0aW9uJ3MgY2FsbEZyYW1lIHZhbHVlIGludG8gYSByZWdU
NAotICAgIHJlY29yZC0+bG9jYXRpb25zWzBdLnJlc3RvcmVJbnRvKGppdCwgaml0Q29kZS0+c3Rh
Y2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86OnJlZ1Q0KTsKICAgICBqaXQubW92ZShN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdU
eXBlTnVtYmVyUmVnaXN0ZXIpOwogICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tNjQoVGFnTWFzayksIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CiAgICAgCiAgICAgLy8g
RG8gc29tZSB2YWx1ZSBwcm9maWxpbmcuCiAgICAgaWYgKGV4aXQubV9wcm9maWxlVmFsdWVGb3Jt
YXQgIT0gSW52YWxpZFZhbHVlRm9ybWF0KSB7Ci0gICAgICAgIHJlY29yZC0+bG9jYXRpb25zWzFd
LnJlc3RvcmVJbnRvKGppdCwgaml0Q29kZS0+c3RhY2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQ
UkluZm86OnJlZ1QwKTsKKyAgICAgICAgcmVjb3JkLT5sb2NhdGlvbnNbMF0ucmVzdG9yZUludG8o
aml0LCBqaXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVnVDAp
OwogICAgICAgICByZWJveEFjY29yZGluZ1RvRm9ybWF0KAogICAgICAgICAgICAgZXhpdC5tX3By
b2ZpbGVWYWx1ZUZvcm1hdCwgaml0LCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIEdQ
UkluZm86OnJlZ1QyKTsKICAgICAgICAgCkBAIC0xMzAsNyArMTQyLDQ1IEBAIHN0YXRpYyB2b2lk
IGNvbXBpbGVTdHViKAogICAgICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzSW50MzI6CiAg
ICAgICAgIGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNJbnQ1MjoKICAgICAgICAgY2FzZSBFeGl0
VmFsdWVJbkpTU3RhY2tBc0RvdWJsZToKLSAgICAgICAgICAgIGppdC5sb2FkNjQoQXNzZW1ibHlI
ZWxwZXJzOjphZGRyZXNzRm9yKHZhbHVlLnZpcnR1YWxSZWdpc3RlcigpLCBHUFJJbmZvOjpyZWdU
NCksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgIGppdC5sb2FkNjQoQXNzZW1ibHlIZWxw
ZXJzOjphZGRyZXNzRm9yKHZhbHVlLnZpcnR1YWxSZWdpc3RlcigpKSwgR1BSSW5mbzo6cmVnVDAp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBFeGl0VmFs
dWVSZWNvdmVyeToKKyAgICAgICAgICAgIHJlY29yZC0+bG9jYXRpb25zW3ZhbHVlLnJpZ2h0UmVj
b3ZlcnlBcmd1bWVudCgpXS5yZXN0b3JlSW50bygKKyAgICAgICAgICAgICAgICBqaXQsIGppdENv
ZGUtPnN0YWNrbWFwcywgcmVnaXN0ZXJTY3JhdGNoLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgICAg
ICAgICByZWNvcmQtPmxvY2F0aW9uc1t2YWx1ZS5sZWZ0UmVjb3ZlcnlBcmd1bWVudCgpXS5yZXN0
b3JlSW50bygKKyAgICAgICAgICAgICAgICBqaXQsIGppdENvZGUtPnN0YWNrbWFwcywgcmVnaXN0
ZXJTY3JhdGNoLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnJl
Y292ZXJ5T3Bjb2RlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgQWRkUmVjb3Zlcnk6CisgICAgICAg
ICAgICAgICAgc3dpdGNoICh2YWx1ZS5yZWNvdmVyeUZvcm1hdCgpKSB7CisgICAgICAgICAgICAg
ICAgY2FzZSBWYWx1ZUZvcm1hdEludDMyOgorICAgICAgICAgICAgICAgICAgICBqaXQuYWRkMzIo
R1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZUZvcm1hdEludDUyOgorICAgICAgICAgICAg
ICAgICAgICBqaXQuYWRkNjQoR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBTdWJSZWNvdmVyeToKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHZh
bHVlLnJlY292ZXJ5Rm9ybWF0KCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFZhbHVlRm9ybWF0
SW50MzI6CisgICAgICAgICAgICAgICAgICAgIGppdC5zdWIzMihHUFJJbmZvOjpyZWdUMSwgR1BS
SW5mbzo6cmVnVDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICBjYXNlIFZhbHVlRm9ybWF0SW50NTI6CisgICAgICAgICAgICAgICAgICAgIGppdC5zdWI2NChH
UFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIAogICAgICAgICBkZWZhdWx0OgpAQCAtMTQxLDYgKzE5MSwxMzcgQEAgc3RhdGljIHZv
aWQgY29tcGlsZVN0dWIoCiAgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBzY3Jh
dGNoICsgaW5kZXgpOwogICAgIH0KICAgICAKKyAgICAvLyBIZW5jZWZvcnRoIHdlIG1ha2UgaXQg
bG9vayBsaWtlIHRoZSBleGl0aW5nIGZ1bmN0aW9uIHdhcyBjYWxsZWQgdGhyb3VnaCBhIHJlZ2lz
dGVyCisgICAgLy8gcHJlc2VydmF0aW9uIHdyYXBwZXIuIFRoaXMgaW1wbGllcyB0aGF0IEZQIG11
c3QgYmUgbnVkZ2VkIGRvd24gYnkgYSBjZXJ0YWluIGFtb3VudC4gVGhlbgorICAgIC8vIHdlIHJl
c3RvcmUgdGhlIHZhcmlvdXMgdGhpbmdzIGFjY29yZGluZyB0byBlaXRoZXIgZXhpdC5tX3ZhbHVl
cyBvciBieSBjb3B5aW5nIGZyb20gdGhlCisgICAgLy8gb2xkIGZyYW1lLCBhbmQgZmluYWxseSB3
ZSBzYXZlIHRoZSB2YXJpb3VzIGNhbGxlZS1zYXZlIHJlZ2lzdGVycyBpbnRvIHdoZXJlIHRoZQor
ICAgIC8vIHJlc3RvcmF0aW9uIHRodW5rIHdvdWxkIHJlc3RvcmUgdGhlbSBmcm9tLgorICAgIAor
ICAgIHB0cmRpZmZfdCBvZmZzZXQgPSByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpOworICAg
IFJlZ2lzdGVyU2V0IHRvU2F2ZSA9IHJlZ2lzdGVyc1RvUHJlc2VydmUoKTsKKyAgICAKKyAgICAv
LyBCZWZvcmUgd2Ugc3RhcnQgbWVzc2luZyB3aXRoIHRoZSBmcmFtZSwgd2UgbmVlZCB0byBzZXQg
YXNpZGUgYW55IHJlZ2lzdGVycyB0aGF0IHRoZQorICAgIC8vIEZUTCBjb2RlIHdhcyBwcmVzZXJ2
aW5nLgorICAgIGZvciAodW5zaWduZWQgaSA9IGppdENvZGUtPnVud2luZEluZm8ubV9yZWdpc3Rl
cnMuc2l6ZSgpOyBpLS07KSB7CisgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQgZW50cnkgPSBqaXRD
b2RlLT51bndpbmRJbmZvLm1fcmVnaXN0ZXJzW2ldOworICAgICAgICBqaXQubG9hZDY0KAorICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9p
bnRlclJlZ2lzdGVyLCBlbnRyeS5vZmZzZXQoKSksCisgICAgICAgICAgICBHUFJJbmZvOjpyZWdU
MCk7CisgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCB1bndpbmRTY3JhdGNoICsg
aSk7CisgICAgfQorICAgIAorICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpwYXlsb2FkRm9y
KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgCisgICAgLy8g
TGV0J3Mgc2F5IHRoYXQgdGhlIEZUTCBmdW5jdGlvbiBoYWQgZmFpbGVkIGl0cyBhcml0eSBjaGVj
ay4gSW4gdGhhdCBjYXNlLCB0aGUgc3RhY2sgd2lsbAorICAgIC8vIGNvbnRhaW4gc29tZSBleHRy
YSBzdHVmZi4KKyAgICAvLworICAgIC8vIEZpcnN0IHdlIGNvbXB1dGUgdGhlIHBhZGRlZCBzdGFj
ayBzcGFjZToKKyAgICAvLworICAgIC8vICAgICBwYWRkZWRTdGFja1NwYWNlID0gcm91bmRVcChj
b2RlQmxvY2stPm51bVBhcmFtZXRlcnMgLSByZWdUMiArIDEpCisgICAgLy8KKyAgICAvLyBUaGUg
c3RhY2sgd2lsbCBoYXZlIHJlZ1QyICsgQ2FsbEZyYW1lSGVhZGVyU2l6ZSBzdHVmZiwgYnV0IGFi
b3ZlIGl0IHRoZXJlIHdpbGwgYmUKKyAgICAvLyBwYWRkZWRTdGFja1NwYWNlIGd1bmsgdXNlZCBi
eSB0aGUgYXJpdHkgY2hlY2sgZmFpbCByZXN0b3JhdGlvbiB0aHVuay4gV2hlbiB0aGF0IGhhcHBl
bnMKKyAgICAvLyB3ZSB3YW50IHRvIG1ha2UgdGhlIHN0YWNrIGxvb2sgbGlrZSB0aGlzLCBmcm9t
IGhpZ2hlciBhZGRyZXNzZXMgZG93bjoKKyAgICAvLworICAgIC8vICAgICAtIHJlZ2lzdGVyIHBy
ZXNlcnZhdGlvbiByZXR1cm4gUEMKKyAgICAvLyAgICAgLSBwcmVzZXJ2ZWQgcmVnaXN0ZXJzCisg
ICAgLy8gICAgIC0gYXJpdHkgY2hlY2sgZmFpbCByZXR1cm4gUEMKKyAgICAvLyAgICAgLSBhcmd1
bWVudCBwYWRkaW5nCisgICAgLy8gICAgIC0gYWN0dWFsIGFyZ3VtZW50cworICAgIC8vICAgICAt
IGNhbGwgZnJhbWUgaGVhZGVyCisgICAgLy8KKyAgICAvLyBTbyB0aGF0IHRoZSBhY3R1YWwgY2Fs
bCBmcmFtZSBoZWFkZXIgYXBwZWFycyB0byByZXR1cm4gdG8gdGhlIGFyaXR5IGNoZWNrIGZhaWwg
cmV0dXJuCisgICAgLy8gUEMsIGFuZCB0aGF0IHRoZW4gcmV0dXJucyB0byB0aGUgcmVnaXN0ZXIg
cHJlc2VydmF0aW9uIHRodW5rLiBUaGUgYXJpdHkgY2hlY2sgdGh1bmsgdGhhdAorICAgIC8vIHdl
IHJldHVybiB0byB3aWxsIGhhdmUgdGhlIHBhZGRpbmcgc2l6ZSBlbmNvZGVkIGludG8gaXQuIEl0
IHdpbGwgdGhlbiBrbm93IHRvIHJldHVybgorICAgIC8vIGludG8gdGhlIHJlZ2lzdGVyIHByZXNl
cnZhdGlvbiB0aHVuaywgd2hpY2ggdXNlcyB0aGUgYXJndW1lbnQgY291bnQgdG8gZmlndXJlIG91
dCB3aGVyZQorICAgIC8vIHJlZ2lzdGVycyBhcmUgcHJlc2VydmVkLgorCisgICAgLy8gVGhpcyBj
b2RlIGFzc3VtZXMgdGhhdCB3ZSdyZSBkZWFsaW5nIHdpdGggRnVuY3Rpb25Db2RlLgorICAgIFJF
TEVBU0VfQVNTRVJUKGNvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpOworICAg
IAorICAgIGppdC5hZGQzMigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigt
Y29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpLCBHUFJJbmZvOjpyZWdUMiwKKyAgICAgICAgR1BS
SW5mbzo6cmVnVDMpOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGFyaXR5SW50YWN0ID0gaml0
LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgR1BSSW5mbzo6cmVnVDMpOworICAg
IGppdC5uZWczMihHUFJJbmZvOjpyZWdUMyk7CisgICAgaml0LmFkZDMyKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoMSArIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSwgR1BSSW5m
bzo6cmVnVDMpOworICAgIGppdC5hbmQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1z
dGFja0FsaWdubWVudFJlZ2lzdGVycygpKSwgR1BSSW5mbzo6cmVnVDMpOworICAgIGppdC5hZGQz
MihHUFJJbmZvOjpyZWdUMywgR1BSSW5mbzo6cmVnVDIpOworICAgIGFyaXR5SW50YWN0Lmxpbmso
JmppdCk7CisKKyAgICAvLyBGaXJzdCBzZXQgdXAgU1Agc28gdGhhdCBvdXIgZGF0YSBkb2Vzbid0
IGdldCBjbG9iYmVyZWQgYnkgc2lnbmFscy4KKyAgICBqaXQuYWRkUHRyKAorICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mKAorICAgICAgICAgICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksCisgICAg
ICAgICAgICAgICAgLXJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KCkgLSBleGl0Lm1fdmFsdWVz
Lm51bWJlck9mTG9jYWxzKCkgKiBzaXplb2YoUmVnaXN0ZXIpIC0gbWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpKSwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lz
dGVyLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIAorICAgIGpp
dC5zdWJQdHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIocmVnaXN0ZXJQ
cmVzZXJ2YXRpb25PZmZzZXQoKSksCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3Rlcik7CisgICAgCisgICAgLy8gQ29weSB0aGUgb2xkIGZyYW1lIGRhdGEgaW50byBp
dHMgbmV3IGxvY2F0aW9uLgorICAgIGppdC5hZGQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCBHUFJJbmZvOjpyZWdUMik7CisgICAg
aml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpy
ZWdUMSk7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGxvb3AgPSBqaXQubGFiZWwoKTsKKyAg
ICBqaXQuc3ViMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmVn
VDIpOworICAgIGppdC5sb2FkNjQoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVn
VDEsIG9mZnNldCksIEdQUkluZm86OnJlZ1QwKTsKKyAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpy
ZWdUMCwgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5hZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMihzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5i
cmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEdQUkluZm86OnJlZ1QyKS5saW5r
VG8obG9vcCwgJmppdCk7CisgICAgCisgICAgLy8gQXQgdGhpcyBwb2ludCByZWdUMSBwb2ludHMg
dG8gd2hlcmUgd2Ugd291bGQgc2F2ZSBvdXIgcmVnaXN0ZXJzLiBTYXZlIHRoZW0gaGVyZS4KKyAg
ICBwdHJkaWZmX3QgY3VycmVudE9mZnNldCA9IDA7CisgICAgZm9yIChHUFJSZWcgZ3ByID0gQXNz
ZW1ibHlIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGdwciA8PSBBc3NlbWJseUhlbHBlcnM6Omxh
c3RSZWdpc3RlcigpOyBncHIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KGdwciArIDEpKSB7CisgICAg
ICAgIGlmICghdG9TYXZlLmdldChncHIpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGN1cnJlbnRPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICAgICAgdW5zaWduZWQgdW53
aW5kSW5kZXggPSBqaXRDb2RlLT51bndpbmRJbmZvLmluZGV4T2YoZ3ByKTsKKyAgICAgICAgaWYg
KHVud2luZEluZGV4ID09IFVJTlRfTUFYKSB7CisgICAgICAgICAgICAvLyBUaGUgRlRMIGNvbXBp
bGF0aW9uIGRpZG4ndCBwcmVzZXJ2ZSB0aGlzIHJlZ2lzdGVyLiBUaGlzIG1lYW5zIHRoYXQgaXQg
YWxzbworICAgICAgICAgICAgLy8gZGlkbid0IHVzZSB0aGUgcmVnaXN0ZXIuIFNvIGl0cyB2YWx1
ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIE9TUiBleGl0IHNob3VsZCBiZQorICAgICAgICAgICAgLy8g
cHJlc2VydmVkIGJ5IHRoZSB0aHVuay4gTHVja2lseSwgd2Ugc2F2ZWQgYWxsIHJlZ2lzdGVycyBp
bnRvIHRoZSByZWdpc3RlcgorICAgICAgICAgICAgLy8gc2NyYXRjaCBidWZmZXIsIHNvIHdlIGNh
biByZXN0b3JlIHRoZW0gZnJvbSB0aGVyZS4KKyAgICAgICAgICAgIGppdC5sb2FkNjQocmVnaXN0
ZXJTY3JhdGNoICsgb2Zmc2V0T2ZHUFIoZ3ByKSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIEZUTCBjb21waWxhdGlvbiBwcmVzZXJ2ZWQgdGhl
IHJlZ2lzdGVyLiBJdHMgbmV3IHZhbHVlIGlzIHRoZXJlZm9yZQorICAgICAgICAgICAgLy8gaXJy
ZWxldmFudCwgYnV0IHdlIGNhbiBnZXQgdGhlIHZhbHVlIHRoYXQgd2FzIHByZXNlcnZlZCBieSB1
c2luZyB0aGUgdW53aW5kCisgICAgICAgICAgICAvLyBkYXRhLiBXZSd2ZSBhbHJlYWR5IGNvcGll
ZCBhbGwgdW53aW5kLWFibGUgcHJlc2VydmVkIHJlZ2lzdGVycyBpbnRvIHRoZSB1bndpbmQKKyAg
ICAgICAgICAgIC8vIHNjcmF0Y2ggYnVmZmVyLCBzbyB3ZSBjYW4gZ2V0IGl0IGZyb20gdGhlcmUu
CisgICAgICAgICAgICBqaXQubG9hZDY0KHVud2luZFNjcmF0Y2ggKyB1bndpbmRJbmRleCwgR1BS
SW5mbzo6cmVnVDApOworICAgICAgICB9CisgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJl
Z1QwLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDEsIGN1cnJlbnRPZmZz
ZXQpKTsKKyAgICB9CisgICAgCisgICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSBy
ZXR1cm4gaW50byB0aGUgcmVnaXN0ZXIgcmVzdG9yYXRpb24gdGh1bmsuIFRoaXMgd29ya3MKKyAg
ICAvLyBkaWZmZXJlbnRseSBkZXBlbmRpbmcgb24gd2hldGhlciBvciBub3Qgd2UgaGFkIGFyaXR5
IGlzc3Vlcy4KKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBhcml0eUludGFjdEZvclJldHVyblBD
ID0KKyAgICAgICAgaml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgR1BSSW5m
bzo6cmVnVDMpOworICAgIAorICAgIC8vIFRoZSByZXR1cm4gUEMgaW4gdGhlIGNhbGwgZnJhbWUg
aGVhZGVyIHBvaW50cyBhdCBleGFjdGx5IHRoZSByaWdodCBhcml0eSByZXN0b3JhdGlvbgorICAg
IC8vIHRodW5rLiBXZSBkb24ndCB3YW50IHRvIGNoYW5nZSB0aGF0LiBCdXQgdGhlIGFyaXR5IHJl
c3RvcmF0aW9uIHRodW5rJ3MgZnJhbWUgaGFzIGEKKyAgICAvLyByZXR1cm4gUEMgYW5kIHdlIHdh
bnQgdG8gcmVyb3V0ZSB0aGF0IHRvIG91ciByZWdpc3RlciByZXN0b3JhdGlvbiB0aHVuay4gVGhl
IGFyaXR5CisgICAgLy8gcmVzdG9yYXRpb24ncyByZXR1cm4gUEMganVzdCBqdXN0IGJlbG93IHJl
Z1QxLCBhbmQgdGhlIHJlZ2lzdGVyIHJlc3RvcmF0aW9uJ3MgcmV0dXJuIFBDCisgICAgLy8gaXMg
cmlnaHQgYXQgcmVnVDEuCisgICAgaml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
R1BSSW5mbzo6cmVnVDEsIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3Rlcikp
KSwgR1BSSW5mbzo6cmVnVDApOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMCwgR1BS
SW5mbzo6cmVnVDEpOworICAgIGppdC5zdG9yZVB0cigKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIodm0tPmdldENUSVN0dWIocmVnaXN0ZXJSZXN0b3JhdGlvblRodW5rR2Vu
ZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSksCisgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QxLCAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXpl
b2YoUmVnaXN0ZXIpKSkpOworICAgIAorICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGFyaXR5UmV0
dXJuUENSZWFkeSA9IGppdC5qdW1wKCk7CisKKyAgICBhcml0eUludGFjdEZvclJldHVyblBDLmxp
bmsoJmppdCk7CisgICAgCisgICAgaml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
TWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBD
T2Zmc2V0KCkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJl
Z1QwLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRyKAorICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cih2bS0+Z2V0Q1RJU3R1YihyZWdpc3RlclJlc3RvcmF0aW9u
VGh1bmtHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSwKKyAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVy
LCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKKyAgICAKKyAgICBhcml0eVJldHVyblBD
UmVhZHkubGluaygmaml0KTsKKyAgICAKICAgICAvLyBOb3cgZ2V0IHN0YXRlIG91dCBvZiB0aGUg
c2NyYXRjaCBidWZmZXIgYW5kIHBsYWNlIGl0IGJhY2sgaW50byB0aGUgc3RhY2suIFRoaXMgcGFy
dCBkb2VzCiAgICAgLy8gYWxsIHJlYm94aW5nLgogICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBl
eGl0Lm1fdmFsdWVzLnNpemUoKTsgaW5kZXgtLTspIHsKQEAgLTE1MCwyNiArMzMxLDE2IEBAIHN0
YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgICAgICBqaXQubG9hZDY0KHNjcmF0Y2ggKyBpbmRl
eCwgR1BSSW5mbzo6cmVnVDApOwogICAgICAgICByZWJveEFjY29yZGluZ1RvRm9ybWF0KAogICAg
ICAgICAgICAgdmFsdWUudmFsdWVGb3JtYXQoKSwgaml0LCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5m
bzo6cmVnVDEsIEdQUkluZm86OnJlZ1QyKTsKLSAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6
cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVn
aXN0ZXI+KG9wZXJhbmQpLCBHUFJJbmZvOjpyZWdUNCkpOworICAgICAgICBqaXQuc3RvcmU2NChH
UFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKHN0YXRpY19jYXN0PFZp
cnR1YWxSZWdpc3Rlcj4ob3BlcmFuZCkpKTsKICAgICB9CiAgICAgCi0gICAgLy8gUmVzdG9yZSB0
aGUgb2xkIHN0YWNrIHBvaW50ZXIgYW5kIHRoZW4gcHV0IHJlZ1Q0IGludG8gY2FsbEZyYW1lUmVn
aXN0ZXIuIFRoZSBpZGVhIGlzCi0gICAgLy8gdGhhdCB0aGUgRlRMIGNhbGwgZnJhbWUgaXMgcHVz
aGVkIG9udG8gdGhlIEpTIGNhbGwgZnJhbWUgYW5kIHdlIGNhbiByZWNvdmVyIHRoZSBvbGQKLSAg
ICAvLyB2YWx1ZSBvZiB0aGUgc3RhY2sgcG9pbnRlciBieSBwb3BwaW5nIHRoZSBGVEwgY2FsbCBm
cmFtZS4gV2UgYWxyZWFkeSBrbm93IHdoYXQgdGhlCi0gICAgLy8gZnJhbWUgcG9pbnRlciBpbiB0
aGUgSlMgY2FsbCBmcmFtZSB3YXMgYmVjYXVzZSBpdCB3b3VsZCBoYXZlIGJlZW4gcGFzc2VkIGFz
IGFuIGFyZ3VtZW50Ci0gICAgLy8gdG8gdGhlIEZUTCBjYWxsIGZyYW1lLgotICAgIGppdC5tb3Zl
KE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICBqaXQucG9wKEdQUkluZm86Om5vbkFyZ0dQUjApOwot
ICAgIGppdC5wb3AoR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgaml0Lm1vdmUoR1BSSW5mbzo6
cmVnVDQsIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAKICAgICBoYW5kbGVFeGl0
Q291bnRzKGppdCwgZXhpdCk7CiAgICAgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhqaXQsIGV4aXQp
OwogICAgIGFkanVzdEFuZEp1bXBUb1RhcmdldChqaXQsIGV4aXQpOwogICAgIAogICAgIExpbmtC
dWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBjb2RlQmxvY2spOwogICAgIGV4aXQubV9jb2Rl
ID0gRklOQUxJWkVfQ09ERV9JRigKLSAgICAgICAgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCksCisg
ICAgICAgIHNob3VsZFNob3dEaXNhc3NlbWJseSgpIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwK
ICAgICAgICAgcGF0Y2hCdWZmZXIsCiAgICAgICAgICgiRlRMIE9TUiBleGl0ICMldSAoJXMsICVz
KSBmcm9tICVzLCB3aXRoIG9wZXJhbmRzID0gJXMsIGFuZCByZWNvcmQgPSAlcyIsCiAgICAgICAg
ICAgICBleGl0SUQsIHRvQ1N0cmluZyhleGl0Lm1fY29kZU9yaWdpbikuZGF0YSgpLApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODQs
NyArMTg0LDIzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBjYWxsKGRvdWJsZUFi
c0ludHJpbnNpYygpLCB2YWx1ZSk7CiAgICAgfQotICAgIAorICAgIExWYWx1ZSBkb3VibGVTaW4o
TFZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGwoZG91YmxlU2luSW50cmlu
c2ljKCksIHZhbHVlKTsKKyAgICB9CisKKworICAgIExWYWx1ZSBkb3VibGVDb3MoTFZhbHVlIHZh
bHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGwoZG91YmxlQ29zSW50cmluc2ljKCksIHZh
bHVlKTsKKyAgICB9CisKKyAgICBMVmFsdWUgZG91YmxlU3FydChMVmFsdWUgdmFsdWUpCisgICAg
eworICAgICAgICByZXR1cm4gY2FsbChkb3VibGVTcXJ0SW50cmluc2ljKCksIHZhbHVlKTsKKyAg
ICB9CisKKwogICAgIHN0YXRpYyBib29sIGhhc1NlbnNpYmxlRG91YmxlVG9JbnQoKSB7IHJldHVy
biBpc1g4NigpOyB9CiAgICAgTFZhbHVlIHNlbnNpYmxlRG91YmxlVG9JbnQoTFZhbHVlIHZhbHVl
KQogICAgIHsKQEAgLTIxMCw2ICsyMjYsNyBAQCBwdWJsaWM6CiAgICAgTFZhbHVlIGNhc3RUb0lu
dDMyKExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gaW50Q2FzdCh2YWx1ZSwgaW50MzIpOyB9CiAgICAg
TFZhbHVlIGZwQ2FzdChMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxkRlBD
YXN0KG1fYnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CiAgICAgTFZhbHVlIGludFRvUHRyKExWYWx1
ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRJbnRUb1B0cihtX2J1aWxkZXIsIHZh
bHVlLCB0eXBlKTsgfQorICAgIExWYWx1ZSBwdHJUb0ludChMVmFsdWUgdmFsdWUsIExUeXBlIHR5
cGUpIHsgcmV0dXJuIGJ1aWxkUHRyVG9JbnQobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0KICAg
ICBMVmFsdWUgYml0Q2FzdChMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxk
Qml0Q2FzdChtX2J1aWxkZXIsIHZhbHVlLCB0eXBlKTsgfQogICAgIAogICAgIExWYWx1ZSBhbGxv
Y2EoTFR5cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRBbGxvY2EobV9idWlsZGVyLCB0eXBlKTsgfQpA
QCAtMzE0LDYgKzMzMSwyMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9yZVB0cihMVmFsdWUgdmFs
dWUsIExWYWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyBzdG9yZVB0cih2
YWx1ZSwgYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9CiAgICAgdm9pZCBzdG9yZURvdWJsZShMVmFs
dWUgdmFsdWUsIExWYWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyBzdG9y
ZURvdWJsZSh2YWx1ZSwgYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9CiAgICAgCisgICAgdm9pZCBh
c2NyaWJlUmFuZ2UoTFZhbHVlIGxvYWRJbnN0cnVjdGlvbiwgY29uc3QgVmFsdWVSYW5nZSYgcmFu
Z2UpCisgICAgeworICAgICAgICByYW5nZS5kZWNvcmF0ZUluc3RydWN0aW9uKG1fY29udGV4dCwg
bG9hZEluc3RydWN0aW9uLCByYW5nZUtpbmQpOworICAgIH0KKyAgICAKKyAgICBMVmFsdWUgbm9u
TmVnYXRpdmUzMihMVmFsdWUgbG9hZEluc3RydWN0aW9uKQorICAgIHsKKyAgICAgICAgYXNjcmli
ZVJhbmdlKGxvYWRJbnN0cnVjdGlvbiwgbm9uTmVnYXRpdmVJbnQzMik7CisgICAgICAgIHJldHVy
biBsb2FkSW5zdHJ1Y3Rpb247CisgICAgfQorICAgIAorICAgIExWYWx1ZSBsb2FkMzJOb25OZWdh
dGl2ZShUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyByZXR1cm4gbm9uTmVnYXRpdmUzMihsb2FkMzIo
cG9pbnRlcikpOyB9CisgICAgTFZhbHVlIGxvYWQzMk5vbk5lZ2F0aXZlKExWYWx1ZSBiYXNlLCBj
b25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyByZXR1cm4gbm9uTmVnYXRpdmUzMihsb2FkMzIo
YmFzZSwgZmllbGQpKTsgfQorICAgIAogICAgIExWYWx1ZSBpY21wKExJbnRQcmVkaWNhdGUgY29u
ZCwgTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gYnVpbGRJQ21wKG1fYnVpbGRl
ciwgY29uZCwgbGVmdCwgcmlnaHQpOyB9CiAgICAgTFZhbHVlIGVxdWFsKExWYWx1ZSBsZWZ0LCBM
VmFsdWUgcmlnaHQpIHsgcmV0dXJuIGljbXAoTExWTUludEVRLCBsZWZ0LCByaWdodCk7IH0KICAg
ICBMVmFsdWUgbm90RXF1YWwoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gaWNt
cChMTFZNSW50TkUsIGxlZnQsIHJpZ2h0KTsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExSZWNvdmVyeU9wY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExSZWNvdmVyeU9wY29kZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExSZWNvdmVyeU9wY29kZS5o
IgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4K
KworbmFtZXNwYWNlIFdURiB7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBKU0M6OkZUTDo6UmVjb3ZlcnlPcGNvZGUgb3Bjb2RlKQoreworICAgIHN3aXRjaCAob3Bjb2Rl
KSB7CisgICAgY2FzZSBKU0M6OkZUTDo6QWRkUmVjb3Zlcnk6CisgICAgICAgIG91dC5wcmludCgi
QWRkIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6RlRMOjpTdWJSZWNvdmVyeToK
KyAgICAgICAgb3V0LnByaW50KCJTdWIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwor
I2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExSZWNvdmVyeU9wY29kZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExSZWNvdmVyeU9wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBGVExSZWNvdmVyeU9wY29kZV9oCisjZGVmaW5lIEZUTFJlY292ZXJ5T3Bjb2RlX2gK
KworI2lmIEVOQUJMRShGVExfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7
CisKK2VudW0gUmVjb3ZlcnlPcGNvZGUgeworICAgIEFkZFJlY292ZXJ5LAorICAgIFN1YlJlY292
ZXJ5Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKK25hbWVzcGFjZSBXVEYgewor
CitjbGFzcyBQcmludFN0cmVhbTsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpT
Qzo6RlRMOjpSZWNvdmVyeU9wY29kZSk7CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYg
Ly8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExSZWNvdmVyeU9wY29kZV9oCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVnaXN0
ZXJBdE9mZnNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRlRMUmVnaXN0ZXJBdE9mZnNldC5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQp
CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKwordm9pZCBSZWdpc3RlckF0T2Zm
c2V0OjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgb3V0LnByaW50KGdwcigp
LCAiIGF0ICIsIG9mZnNldCgpKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisj
ZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMUmVnaXN0ZXJBdE9mZnNldC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIEZUTFJlZ2lzdGVyQXRPZmZzZXRfaAorI2RlZmluZSBGVExSZWdpc3RlckF0
T2Zmc2V0X2gKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiR1BSSW5mby5oIgor
I2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEZUTCB7CisKK2NsYXNzIFJlZ2lzdGVyQXRPZmZzZXQgeworcHVibGljOgorICAgIFJlZ2lzdGVy
QXRPZmZzZXQoKQorICAgICAgICA6IG1fZ3ByKEludmFsaWRHUFJSZWcpCisgICAgICAgICwgbV9v
ZmZzZXQoMCkKKyAgICB7CisgICAgfQorICAgIAorICAgIFJlZ2lzdGVyQXRPZmZzZXQoR1BSUmVn
IGdwciwgcHRyZGlmZl90IG9mZnNldCkKKyAgICAgICAgOiBtX2dwcihncHIpCisgICAgICAgICwg
bV9vZmZzZXQob2Zmc2V0KQorICAgIHsKKyAgICB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvciEo
KSBjb25zdCB7IHJldHVybiBtX2dwciA9PSBJbnZhbGlkR1BSUmVnOyB9CisgICAgCisgICAgR1BS
UmVnIGdwcigpIGNvbnN0IHsgcmV0dXJuIG1fZ3ByOyB9CisgICAgcHRyZGlmZl90IG9mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0OyB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFJlZ2lzdGVyQXRPZmZzZXQmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IGdwcigpID09IG90aGVyLmdwcigpICYmIG9mZnNldCgpID09IG90aGVyLm9mZnNldCgpOworICAg
IH0KKyAgICAKKyAgICBib29sIG9wZXJhdG9yPChjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiBvdGhl
cikgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChncHIoKSAhPSBvdGhlci5ncHIoKSkKKyAgICAg
ICAgICAgIHJldHVybiBncHIoKSA8IG90aGVyLmdwcigpOworICAgICAgICByZXR1cm4gb2Zmc2V0
KCkgPCBvdGhlci5vZmZzZXQoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIEdQUlJlZyBnZXRH
UFIoUmVnaXN0ZXJBdE9mZnNldCogdmFsdWUpIHsgcmV0dXJuIHZhbHVlLT5ncHIoKTsgfQorICAg
IAorICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdDsKKworcHJpdmF0ZToKKyAg
ICBHUFJSZWcgbV9ncHI7CisgICAgcHRyZGlmZl90IG1fb2Zmc2V0OworfTsKKworfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAv
LyBGVExSZWdpc3RlckF0T2Zmc2V0X2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExTbG93UGF0aENhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2
ICsyOSw3IEBACiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKKyNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRlRMU3RhdGUuaCIK
ICNpbmNsdWRlICJHUFJJbmZvLmgiCiAKQEAgLTEzNCwxMSArMTM1LDEzIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIFNsb3dQYXRoQ2FsbEtleSh1c2VkUmVnaXN0ZXJzKCksIGNhbGxUYXJnZXQs
IG9mZnNldCgpKTsKICAgICB9CiAgICAgCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgbWFrZUNh
bGwodm9pZCogY2FsbFRhcmdldCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBtYWtlQ2FsbCh2
b2lkKiBjYWxsVGFyZ2V0LCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QqIGV4Y2VwdGlvblRhcmdl
dCkKICAgICB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHJlc3VsdCA9IG1faml0LmNh
bGwoKTsKICAgICAgICAgbV9zdGF0ZS5maW5hbGl6ZXItPnNsb3dQYXRoQ2FsbHMuYXBwZW5kKFNs
b3dQYXRoQ2FsbCgKICAgICAgICAgICAgIHJlc3VsdCwga2V5V2l0aFRhcmdldChjYWxsVGFyZ2V0
KSkpOworICAgICAgICBpZiAoZXhjZXB0aW9uVGFyZ2V0KQorICAgICAgICAgICAgZXhjZXB0aW9u
VGFyZ2V0LT5hcHBlbmQobV9qaXQuZW1pdEV4Y2VwdGlvbkNoZWNrKCkpOwogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KICAgICAKQEAgLTE1NywzMiArMTYwLDQ0IEBAIHByaXZhdGU6CiAK
IH0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQogCit2b2lkIHN0b3JlQ29kZU9yaWdpbihTdGF0ZSYg
c3RhdGUsIENDYWxsSGVscGVycyYgaml0LCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCit7CisgICAg
aWYgKCFjb2RlT3JpZ2luLmlzU2V0KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICB1bnNp
Z25lZCBpbmRleCA9IHN0YXRlLmppdENvZGUtPmNvbW1vbi5hZGRDb2RlT3JpZ2luKGNvZGVPcmln
aW4pOworICAgIHVuc2lnbmVkIGxvY2F0aW9uQml0cyA9IENhbGxGcmFtZTo6TG9jYXRpb246OmVu
Y29kZUFzQ29kZU9yaWdpbkluZGV4KGluZGV4KTsKKyAgICBqaXQuc3RvcmUzMigKKyAgICAgICAg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzOjp0YWdGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihKU1N0YWNrOjpBcmd1
bWVudENvdW50KSkpOworfQorCiBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKAot
ICAgIFN0YXRlJiBzdGF0ZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENDYWxs
SGVscGVycyYgaml0LCAKLSAgICBKX0pJVE9wZXJhdGlvbl9FU3NpSkkgb3BlcmF0aW9uLCBHUFJS
ZWcgcmVzdWx0LCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBHUFJSZWcgb2JqZWN0LCBTdHJpbmdJbXBsKiB1aWQpCisgICAgU3RhdGUm
IHN0YXRlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgQ0NhbGxIZWxwZXJzJiBq
aXQsCisgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qq
IGV4Y2VwdGlvblRhcmdldCwKKyAgICBKX0pJVE9wZXJhdGlvbl9FU3NpSkkgb3BlcmF0aW9uLCBH
UFJSZWcgcmVzdWx0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sCisgICAgR1BSUmVnIG9i
amVjdCwgU3RyaW5nSW1wbCogdWlkKQogeworICAgIHN0b3JlQ29kZU9yaWdpbihzdGF0ZSwgaml0
LCBjb2RlT3JpZ2luKTsKICAgICBDYWxsQ29udGV4dCBjb250ZXh0KHN0YXRlLCB1c2VkUmVnaXN0
ZXJzLCBqaXQsIDQsIHJlc3VsdCk7Ci0gICAgaml0LnNldHVwQXJndW1lbnRzKAotICAgICAgICBj
YWxsRnJhbWVSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwg
b2JqZWN0LAorICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAgICAgIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihzdHViSW5mbyksIG9iamVjdCwKICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHVpZCkpOwotICAgIHJldHVybiBjb250ZXh0Lm1ha2VD
YWxsKGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0aW9uKSk7Ci0gICAgLy8gRklYTUU6IEZUTCBz
aG91bGQgc3VwcG9ydCBleGNlcHRpb25zLgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTM2MjIKKyAgICByZXR1cm4gY29udGV4dC5tYWtlQ2FsbChiaXR3
aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlvbiksIGV4Y2VwdGlvblRhcmdldCk7CiB9CiAKIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oCiAgICAgU3RhdGUmIHN0YXRlLCBjb25zdCBS
ZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgQ0NhbGxIZWxwZXJzJiBqaXQsIAotICAgIFZfSklU
T3BlcmF0aW9uX0VTc2lKSkkgb3BlcmF0aW9uLCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsCi0g
ICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBHUFJSZWcgdmFsdWUsIEdQUlJlZyBvYmpl
Y3QsIFN0cmluZ0ltcGwqIHVpZCkKKyAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wTGlzdCogZXhjZXB0aW9uVGFyZ2V0LAorICAgIFZfSklUT3BlcmF0aW9uX0VT
c2lKSkkgb3BlcmF0aW9uLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEdQUlJlZyB2YWx1
ZSwKKyAgICBHUFJSZWcgb2JqZWN0LCBTdHJpbmdJbXBsKiB1aWQpCiB7CisgICAgc3RvcmVDb2Rl
T3JpZ2luKHN0YXRlLCBqaXQsIGNvZGVPcmlnaW4pOwogICAgIENhbGxDb250ZXh0IGNvbnRleHQo
c3RhdGUsIHVzZWRSZWdpc3RlcnMsIGppdCwgNSwgSW52YWxpZEdQUlJlZyk7Ci0gICAgaml0LnNl
dHVwQXJndW1lbnRzKAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwgdmFsdWUsIG9iamVjdCwKKyAgICBqaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKAorICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
c3R1YkluZm8pLCB2YWx1ZSwgb2JqZWN0LAogICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW1QdHIodWlkKSk7Ci0gICAgcmV0dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9jYXN0PHZv
aWQqPihvcGVyYXRpb24pKTsKLSAgICAvLyBGSVhNRTogRlRMIHNob3VsZCBzdXBwb3J0IGV4Y2Vw
dGlvbnMuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MzYyMgorICAgIHJldHVybiBjb250ZXh0Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lkKj4ob3Bl
cmF0aW9uKSwgZXhjZXB0aW9uVGFyZ2V0KTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZU
TApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oCShy
ZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRo
Q2FsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC01NSwxMyArNTUsMTUgQEAgcHJpdmF0ZToKICAgICBTbG93
UGF0aENhbGxLZXkgbV9rZXk7CiB9OwogCit2b2lkIHN0b3JlQ29kZU9yaWdpbihTdGF0ZSYsIEND
YWxsSGVscGVycyYsIENvZGVPcmlnaW4pOworCiBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKAotICAgIFN0YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmLCBDQ2FsbEhlbHBlcnMmLCBK
X0pJVE9wZXJhdGlvbl9FU3NpSkksCi0gICAgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGNhbGxGcmFt
ZVJlZ2lzdGVyLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZyBvYmplY3QsCisgICAgU3RhdGUm
LCBjb25zdCBSZWdpc3RlclNldCYsIENDYWxsSGVscGVycyYsIENvZGVPcmlnaW4sIENDYWxsSGVs
cGVyczo6SnVtcExpc3QqLAorICAgIEpfSklUT3BlcmF0aW9uX0VTc2lKSSwgR1BSUmVnIHJlc3Vs
dCwgU3RydWN0dXJlU3R1YkluZm8qLCBHUFJSZWcgb2JqZWN0LAogICAgIFN0cmluZ0ltcGwqIHVp
ZCk7CiBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKAotICAgIFN0YXRlJiwgY29u
c3QgUmVnaXN0ZXJTZXQmLCBDQ2FsbEhlbHBlcnMmLCBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJLAot
ICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwgU3RydWN0dXJlU3R1YkluZm8qLCBHUFJSZWcg
dmFsdWUsIEdQUlJlZyBvYmplY3QsCisgICAgU3RhdGUmLCBjb25zdCBSZWdpc3RlclNldCYsIEND
YWxsSGVscGVycyYsIENvZGVPcmlnaW4sIENDYWxsSGVscGVyczo6SnVtcExpc3QqLAorICAgIFZf
SklUT3BlcmF0aW9uX0VTc2lKSkksIFN0cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnIHZhbHVlLCBH
UFJSZWcgb2JqZWN0LAogICAgIFN0cmluZ0ltcGwqIHVpZCk7CiAKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpGVEwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tNYXBzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5j
cHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3Rh
Y2tNYXBzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksOSBAQCB2b2lkIFN0YWNrTWFw
czo6TG9jYXRpb246OnJlc3RvcmVJbnRvKAogCiBib29sIFN0YWNrTWFwczo6UmVjb3JkOjpwYXJz
ZShEYXRhVmlldyogdmlldywgdW5zaWduZWQmIG9mZnNldCkKIHsKLSAgICBwYXRjaHBvaW50SUQg
PSB2aWV3LT5yZWFkPHVpbnQzMl90PihvZmZzZXQsIHRydWUpOworICAgIGludDY0X3QgaWQgPSB2
aWV3LT5yZWFkPGludDY0X3Q+KG9mZnNldCwgdHJ1ZSk7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0
PGludDMyX3Q+KGlkKSA9PSBpZCk7CisgICAgcGF0Y2hwb2ludElEID0gc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KGlkKTsKICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4ocGF0Y2hwb2ludElEKSA8
IDApCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTkwLDYgKzkyLDEzIEBAIGJvb2wg
U3RhY2tNYXBzOjpSZWNvcmQ6OnBhcnNlKERhdGFWaWV3KiAKICAgICB3aGlsZSAobGVuZ3RoLS0p
CiAgICAgICAgIGxvY2F0aW9ucy5hcHBlbmQocmVhZE9iamVjdDxMb2NhdGlvbj4odmlldywgb2Zm
c2V0KSk7CiAgICAgCisgICAgdW5zaWduZWQgbnVtTGl2ZU91dHMgPSB2aWV3LT5yZWFkPHVpbnQx
Nl90PihvZmZzZXQsIHRydWUpOworICAgIHdoaWxlIChudW1MaXZlT3V0cy0tKSB7CisgICAgICAg
IHZpZXctPnJlYWQ8dWludDE2X3Q+KG9mZnNldCwgdHJ1ZSk7IC8vIHJlZ251bQorICAgICAgICB2
aWV3LT5yZWFkPHVpbnQ4X3Q+KG9mZnNldCwgdHJ1ZSk7IC8vIHJlc2VydmVkCisgICAgICAgIHZp
ZXctPnJlYWQ8dWludDhfdD4ob2Zmc2V0LCB0cnVlKTsgLy8gc2l6ZSBpbiBieXRlcworICAgIH0K
KyAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExTdGFja01hcHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFN0YWNrTWFwcy5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBA
IHN0cnVjdCBTdGFja01hcHMgewogICAgICAgICB1aW50MTZfdCBkd2FyZlJlZ051bTsgLy8gUmVw
cmVzZW50ZWQgYXMgYSAxMi1iaXQgaW50IGluIHRoZSBzZWN0aW9uLgogICAgICAgICBpbnQ4X3Qg
c2l6ZTsKICAgICAgICAgS2luZCBraW5kOwotICAgICAgICBpbnQxNl90IG9mZnNldDsKKyAgICAg
ICAgaW50MzJfdCBvZmZzZXQ7CiAgICAgICAgIAogICAgICAgICB2b2lkIHBhcnNlKERhdGFWaWV3
KiwgdW5zaWduZWQmIG9mZnNldCk7CiAgICAgICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuY3BwCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsOCBAQCBTdGF0ZTo6U3RhdGUoR3JhcGgmIGdyYXBo
KQogICAgICwgbW9kdWxlKDApCiAgICAgLCBmdW5jdGlvbigwKQogICAgICwgZ2VuZXJhdGVkRnVu
Y3Rpb24oMCkKKyAgICAsIGNvbXBhY3RVbndpbmQoMCkKKyAgICAsIGNvbXBhY3RVbndpbmRTaXpl
KDApCiB7CiAgICAgc3dpdGNoIChncmFwaC5tX3BsYW4ubW9kZSkgewogICAgIGNhc2UgRlRMTW9k
ZTogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmgi
CiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgogI2luY2x1ZGUgIkZUTEpJVEZpbmFsaXplci5oIgor
I2luY2x1ZGUgIkZUTEpTQ2FsbC5oIgogI2luY2x1ZGUgIkZUTFN0YWNrTWFwcy5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC01NywxMCArNTgsMTUgQEAgcHVibGljOgogICAg
IFJlZlB0cjxKSVRDb2RlPiBqaXRDb2RlOwogICAgIEdlbmVyYXRlZEZ1bmN0aW9uIGdlbmVyYXRl
ZEZ1bmN0aW9uOwogICAgIEpJVEZpbmFsaXplciogZmluYWxpemVyOworICAgIHVuc2lnbmVkIGhh
bmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQ7CisgICAgdW5zaWduZWQgY2FwdHVyZWRTdGFja21hcElE
OwogICAgIFNlZ21lbnRlZFZlY3RvcjxHZXRCeUlkRGVzY3JpcHRvcj4gZ2V0QnlJZHM7CiAgICAg
U2VnbWVudGVkVmVjdG9yPFB1dEJ5SWREZXNjcmlwdG9yPiBwdXRCeUlkczsKKyAgICBWZWN0b3I8
SlNDYWxsPiBqc0NhbGxzOwogICAgIFZlY3RvcjxDU3RyaW5nPiBjb2RlU2VjdGlvbk5hbWVzOwog
ICAgIFZlY3RvcjxDU3RyaW5nPiBkYXRhU2VjdGlvbk5hbWVzOworICAgIHZvaWQqIGNvbXBhY3RV
bndpbmQ7CisgICAgc2l6ZV90IGNvbXBhY3RVbndpbmRTaXplOwogICAgIFJlZkNvdW50ZWRBcnJh
eTxMU2VjdGlvbldvcmQ+IHN0YWNrbWFwc1NlY3Rpb247CiAgICAgCiAgICAgdm9pZCBkdW1wU3Rh
dGUoY29uc3QgY2hhciogd2hlbik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFRodW5rcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExU
aHVua3MuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTFRodW5rcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwogCi1NYWNyb0Fz
c2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSYgdm0sIGNv
bnN0IExvY2F0aW9uJiBsb2NhdGlvbikKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2Vu
ZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICBBc3NlbWJseUhlbHBlcnMgaml0
KCZ2bSwgMCk7CisgICAgQXNzZW1ibHlIZWxwZXJzIGppdCh2bSwgMCk7CiAgICAgCiAgICAgLy8g
Tm90ZSB0aGF0IHRoZSAicmV0dXJuIGFkZHJlc3MiIHdpbGwgYmUgdGhlIE9TUiBleGl0IElELgog
ICAgIApAQCAtNTEsNyArNTEsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVy
YXRpb25UCiAgICAgaml0LnB1c2goR1BSSW5mbzo6cmVnVDApOwogICAgIGppdC5wdXNoKEdQUklu
Zm86OnJlZ1QwKTsKICAgICAKLSAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0u
c2NyYXRjaEJ1ZmZlckZvclNpemUocmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSk7
CisgICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVyRm9y
U2l6ZShyZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKTsKICAgICBjaGFyKiBidWZm
ZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oc2NyYXRjaEJ1ZmZlci0+ZGF0YUJ1ZmZlcigpKTsKICAg
ICAKICAgICBzYXZlQWxsUmVnaXN0ZXJzKGppdCwgYnVmZmVyKTsKQEAgLTYwLDcgKzYwLDcgQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVAogICAgIGppdC5tb3ZlKE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHNjcmF0Y2hCdWZmZXItPmFjdGl2ZUxlbmd0aFB0
cigpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMSk7CiAgICAgaml0LnN0b3JlUHRyKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tUHRyKHJlcXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVzKCkpLCBH
UFJJbmZvOjpub25BcmdHUFIxKTsKIAotICAgIGxvY2F0aW9uLnJlc3RvcmVJbnRvKGppdCwgYnVm
ZmVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjAsIDEpOworICAgIGppdC5sb2FkUHRyKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5wZWVr
KEdQUkluZm86OmFyZ3VtZW50R1BSMSwgMyk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgZnVu
Y3Rpb25DYWxsID0gaml0LmNhbGwoKTsKICAgICAKQEAgLTcxLDYgKzcxLDEwIEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblQKICAgICAKICAgICBqaXQubW92ZShHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmVnVDApOwogICAgIAorICAgIC8vIE1ha2Ug
c3VyZSB3ZSB0ZWxsIHRoZSBHQyB0aGF0IHdlJ3JlIG5vdCB1c2luZyB0aGUgc2NyYXRjaCBidWZm
ZXIgYW55bW9yZS4KKyAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihz
Y3JhdGNoQnVmZmVyLT5hY3RpdmVMZW5ndGhQdHIoKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBq
aXQuc3RvcmVQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoMCksIEdQUkluZm86OnJl
Z1QxKTsKKyAgICAKICAgICAvLyBQcmVwYXJlIGZvciB0YWlsIGNhbGwuCiAgICAgaml0LnBvcChH
UFJJbmZvOjpyZWdUMSk7CiAgICAgaml0LnBvcChHUFJJbmZvOjpyZWdUMSk7CkBAIC04MSwxNCAr
ODUsMTQgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVAogICAgIC8v
IHJlc3RvcmUgYWxsIHJlZ2lzdGVycy4KICAgICAKICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJl
c3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6cmVnVDApOwotICAgIAorCiAgICAgcmVzdG9yZUFsbFJl
Z2lzdGVycyhqaXQsIGJ1ZmZlcik7CiAKICAgICBqaXQucmV0KCk7CiAgICAgCi0gICAgTGlua0J1
ZmZlciBwYXRjaEJ1ZmZlcih2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICBMaW5rQnVm
ZmVyIHBhdGNoQnVmZmVyKCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKICAgICBwYXRjaEJ1
ZmZlci5saW5rKGZ1bmN0aW9uQ2FsbCwgY29tcGlsZUZUTE9TUkV4aXQpOwotICAgIHJldHVybiBG
SU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIkZUTCBPU1IgZXhpdCBnZW5lcmF0aW9uIHRodW5r
IGZvciBjYWxsRnJhbWUgYXQgJXMiLCB0b0NTdHJpbmcobG9jYXRpb24pLmRhdGEoKSkpOworICAg
IHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIkZUTCBPU1IgZXhpdCBnZW5lcmF0
aW9uIHRodW5rIikpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1
bmtHZW5lcmF0b3IoVk0mIHZtLCBjb25zdCBTbG93UGF0aENhbGxLZXkmIGtleSkKQEAgLTExOSwx
MSArMTIzLDEzIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzbG93UGF0aENhbGxUaHVua0cKICAg
ICAgICAgY3VycmVudE9mZnNldCArPSBzaXplb2YoZG91YmxlKTsKICAgICB9CiAgICAgCisgICAg
Ly8gRklYTUU6IENTdGFjayAtIE5lZWQgdG8gZG8gc29lbWV0aGluZyBsaWtlIGppdC5lbWl0RnVu
Y3Rpb25Qcm9sb2d1ZSgpOwogICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwo
R1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86Om5vbkFyZ0dQ
UjAsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIGtleS5vZmZzZXQoKSkpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNh
bGwgPSBqaXQuY2FsbCgpOwotICAgIAorCisgICAgLy8gRklYTUU6IENTdGFjayAtIE5lZWQgdG8g
ZG8gc29tZXRoaW5nIGxpa2Ugaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgaml0Lmxv
YWRQdHIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50
ZXJSZWdpc3Rlciwga2V5Lm9mZnNldCgpKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJu
R1BSKTsKICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6
bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMVGh1bmtzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExUaHVua3MuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExUaHVua3MuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBjbGFz
cyBWTTsKIAogbmFtZXNwYWNlIEZUTCB7CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0
R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNJiwgY29uc3QgTG9jYXRpb24mKTsKK01hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNKik7CiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IoVk0mLCBjb25zdCBT
bG93UGF0aENhbGxLZXkmKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgS2V5VHlwZUFyZ3VtZW50PgpA
QCAtNzgsMTIgKzc4LDYgQEAgdHlwZW5hbWUgTWFwVHlwZTo6S2V5VHlwZSBrZXlGb3JUaHVuayhN
YQogCiBjbGFzcyBUaHVua3MgewogcHVibGljOgotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBn
ZXRPU1JFeGl0R2VuZXJhdGlvblRodW5rKFZNJiB2bSwgY29uc3QgTG9jYXRpb24mIGxvY2F0aW9u
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRlSWZOZWNlc3NhcnkoCi0gICAgICAgICAg
ICB2bSwgbV9vc3JFeGl0VGh1bmtzLCBsb2NhdGlvbiwgb3NyRXhpdEdlbmVyYXRpb25UaHVua0dl
bmVyYXRvcik7Ci0gICAgfQotICAgIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZXRTbG93
UGF0aENhbGxUaHVuayhWTSYgdm0sIGNvbnN0IFNsb3dQYXRoQ2FsbEtleSYga2V5KQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGdlbmVyYXRlSWZOZWNlc3NhcnkoCkBAIC05Niw3ICs5MCw2IEBAIHB1
YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIFRodW5rTWFwPExvY2F0aW9uPiBtX29z
ckV4aXRUaHVua3M7CiAgICAgVGh1bmtNYXA8U2xvd1BhdGhDYWxsS2V5PiBtX3Nsb3dQYXRoQ2Fs
bFRodW5rczsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53aW5k
SW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExVbndp
bmRJbmZvLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
VW53aW5kSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkZUTFVud2luZEluZm8uaCIKKworI2lmIEVOQUJMRShGVExfSklUKQorCisj
aW5jbHVkZSA8bWFjaC1vL2NvbXBhY3RfdW53aW5kX2VuY29kaW5nLmg+CisjaW5jbHVkZSA8d3Rm
L0xpc3REdW1wLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworVW53aW5k
SW5mbzo6VW53aW5kSW5mbygpIHsgfQorVW53aW5kSW5mbzo6flVud2luZEluZm8oKSB7IH0KKwor
bmFtZXNwYWNlIHsKKworc3RydWN0IENvbXBhY3RVbndpbmQgeworICAgIHZvaWQqIGZ1bmN0aW9u
OworICAgIHVpbnQzMl90IHNpemU7CisgICAgY29tcGFjdF91bndpbmRfZW5jb2RpbmdfdCBlbmNv
ZGluZzsKKyAgICB2b2lkKiBwZXJzb25hbGl0eTsKKyAgICB2b2lkKiBsc2RhOworfTsKKworfSAv
LyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK3ZvaWQgVW53aW5kSW5mbzo6cGFyc2Uodm9pZCogc2Vj
dGlvbiwgc2l6ZV90IHNpemUsIEdlbmVyYXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0aW9uKQor
eworICAgIG1fcmVnaXN0ZXJzLmNsZWFyKCk7CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlQoc2Vj
dGlvbik7CisgICAgUkVMRUFTRV9BU1NFUlQoc2l6ZSA+PSBzaXplb2YoQ29tcGFjdFVud2luZCkp
OworICAgIAorICAgIENvbXBhY3RVbndpbmQqIGRhdGEgPSBiaXR3aXNlX2Nhc3Q8Q29tcGFjdFVu
d2luZCo+KHNlY3Rpb24pOworICAgIAorICAgIFJFTEVBU0VfQVNTRVJUKCFkYXRhLT5wZXJzb25h
bGl0eSk7IC8vIFdlIGRvbid0IGtub3cgaG93IHRvIGhhbmRsZSB0aGlzLgorICAgIFJFTEVBU0Vf
QVNTRVJUKCFkYXRhLT5sc2RhKTsgLy8gV2UgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIHRoaXMu
CisgICAgUkVMRUFTRV9BU1NFUlQoZGF0YS0+ZnVuY3Rpb24gPT0gZ2VuZXJhdGVkRnVuY3Rpb24p
OyAvLyBUaGUgdW53aW5kIGRhdGEgYmV0dGVyIGJlIGZvciBvdXIgZnVuY3Rpb24uCisgICAgCisg
ICAgY29tcGFjdF91bndpbmRfZW5jb2RpbmdfdCBlbmNvZGluZyA9IGRhdGEtPmVuY29kaW5nOwor
ICAgIFJFTEVBU0VfQVNTRVJUKCEoZW5jb2RpbmcgJiBVTldJTkRfSVNfTk9UX0ZVTkNUSU9OX1NU
QVJUKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoIShlbmNvZGluZyAmIFVOV0lORF9IQVNfTFNEQSkp
OworICAgIFJFTEVBU0VfQVNTRVJUKCEoZW5jb2RpbmcgJiBVTldJTkRfUEVSU09OQUxJVFlfTUFT
SykpOworICAgIFJFTEVBU0VfQVNTRVJUKChlbmNvZGluZyAmIFVOV0lORF9YODZfNjRfTU9ERV9N
QVNLKSA9PSBVTldJTkRfWDg2XzY0X01PREVfUkJQX0ZSQU1FKTsKKyAgICAKKyAgICBpbnQzMl90
IG9mZnNldCA9IC0oKGVuY29kaW5nICYgVU5XSU5EX1g4Nl82NF9SQlBfRlJBTUVfT0ZGU0VUKSA+
PiAxNikgKiA4OworICAgIHVpbnQzMl90IG5leHRSZWdpc3RlcnMgPSBlbmNvZGluZzsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSA1OyBpLS07KSB7CisgICAgICAgIHVpbnQzMl90IGN1cnJlbnRSZWdp
c3RlciA9IG5leHRSZWdpc3RlcnMgJiA3OworICAgICAgICBuZXh0UmVnaXN0ZXJzID4+PSAzOwor
ICAgICAgICAKKyAgICAgICAgc3dpdGNoIChjdXJyZW50UmVnaXN0ZXIpIHsKKyAgICAgICAgY2Fz
ZSBVTldJTkRfWDg2XzY0X1JFR19OT05FOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAKKyAgICAgICAgY2FzZSBVTldJTkRfWDg2XzY0X1JFR19SQlg6CisgICAgICAgICAgICBtX3Jl
Z2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJBdE9mZnNldChYODZSZWdpc3RlcnM6OmVieCwgb2Zmc2V0
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lO
RF9YODZfNjRfUkVHX1IxMjoKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3Rl
ckF0T2Zmc2V0KFg4NlJlZ2lzdGVyczo6cjEyLCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUjEzOgorICAg
ICAgICAgICAgbV9yZWdpc3RlcnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJz
OjpyMTMsIG9mZnNldCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAg
ICAgY2FzZSBVTldJTkRfWDg2XzY0X1JFR19SMTQ6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5h
cHBlbmQoUmVnaXN0ZXJBdE9mZnNldChYODZSZWdpc3RlcnM6OnIxNCwgb2Zmc2V0KSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRf
UkVHX1IxNToKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0
KFg4NlJlZ2lzdGVyczo6cjE1LCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgCisgICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUkJQOgorICAgICAgICAgICAg
bV9yZWdpc3RlcnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjplYnAsIG9m
ZnNldCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIG9mZnNldCArPSA4OworICAgIH0KKyAgICAKKyAgICBzdGQ6OnNv
cnQobV9yZWdpc3RlcnMuYmVnaW4oKSwgbV9yZWdpc3RlcnMuZW5kKCkpOworfQorCit2b2lkIFVu
d2luZEluZm86OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBvdXQucHJpbnQo
bGlzdER1bXAobV9yZWdpc3RlcnMpKTsKK30KKworUmVnaXN0ZXJBdE9mZnNldCogVW53aW5kSW5m
bzo6ZmluZChHUFJSZWcgZ3ByKSBjb25zdAoreworICAgIHJldHVybiB0cnlCaW5hcnlTZWFyY2g8
UmVnaXN0ZXJBdE9mZnNldCwgR1BSUmVnPihtX3JlZ2lzdGVycywgbV9yZWdpc3RlcnMuc2l6ZSgp
LCBncHIsIFJlZ2lzdGVyQXRPZmZzZXQ6OmdldEdQUik7Cit9CisKK3Vuc2lnbmVkIFVud2luZElu
Zm86OmluZGV4T2YoR1BSUmVnIGdwcikgY29uc3QKK3sKKyAgICBpZiAoUmVnaXN0ZXJBdE9mZnNl
dCogcG9pbnRlciA9IGZpbmQoZ3ByKSkKKyAgICAgICAgcmV0dXJuIHBvaW50ZXIgLSBtX3JlZ2lz
dGVycy5iZWdpbigpOworICAgIHJldHVybiBVSU5UX01BWDsKK30KKworfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53aW5kSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53aW5kSW5mby5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExVbndpbmRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIEZUTFVud2luZEluZm9faAorI2RlZmluZSBGVExVbndpbmRJbmZvX2gKKworI2lm
IEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiRlRMR2VuZXJhdGVkRnVuY3Rpb24uaCIKKyNp
bmNsdWRlICJGVExSZWdpc3RlckF0T2Zmc2V0LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgRlRMIHsKKworc3RydWN0IFVud2luZEluZm8geworICAgIFVud2luZEluZm8oKTsKKyAgICB+
VW53aW5kSW5mbygpOworICAgIAorICAgIHZvaWQgcGFyc2Uodm9pZCosIHNpemVfdCwgR2VuZXJh
dGVkRnVuY3Rpb24pOworICAgIAorICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0Owor
ICAgIAorICAgIFJlZ2lzdGVyQXRPZmZzZXQqIGZpbmQoR1BSUmVnKSBjb25zdDsKKyAgICB1bnNp
Z25lZCBpbmRleE9mKEdQUlJlZykgY29uc3Q7IC8vIFJldHVybnMgVUlOVF9NQVggaWYgbm90IGZv
dW5kLgorICAgIAorICAgIFZlY3RvcjxSZWdpc3RlckF0T2Zmc2V0PiBtX3JlZ2lzdGVyczsKK307
CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklU
KQorCisjZW5kaWYgLy8gRlRMVW53aW5kSW5mb19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMVmFsdWVSYW5nZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5nZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMVmFsdWVSYW5nZS5oIgorCisjaW5jbHVk
ZSAiRlRMQWJicmV2aWF0aW9ucy5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKK25hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKwordm9pZCBWYWx1ZVJhbmdlOjpkZWNvcmF0ZUluc3Ry
dWN0aW9uKAorICAgIExDb250ZXh0IGNvbnRleHQsIExWYWx1ZSBsb2FkSW5zdHJ1Y3Rpb24sIHVu
c2lnbmVkIHJhbmdlS2luZCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcmFuZ2VNZXRhZGF0YSkKKyAg
ICAgICAgbV9yYW5nZU1ldGFkYXRhID0gbWROb2RlKGNvbnRleHQsIG1fYmVnaW4sIG1fZW5kKTsK
KyAgICBzZXRNZXRhZGF0YShsb2FkSW5zdHJ1Y3Rpb24sIHJhbmdlS2luZCwgbV9yYW5nZU1ldGFk
YXRhKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxF
KEZUTF9KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2Uu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5n
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBGVExWYWx1ZVJhbmdlX2gKKyNkZWZp
bmUgRlRMVmFsdWVSYW5nZV9oCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkZU
TEFiYnJldmlhdGVkVHlwZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewor
CitjbGFzcyBWYWx1ZVJhbmdlIHsKK3B1YmxpYzoKKyAgICBWYWx1ZVJhbmdlKCkKKyAgICAgICAg
OiBtX2JlZ2luKDApCisgICAgICAgICwgbV9lbmQoMCkKKyAgICAgICAgLCBtX3JhbmdlTWV0YWRh
dGEoMCkKKyAgICB7CisgICAgfQorICAgIAorICAgIFZhbHVlUmFuZ2UoTFZhbHVlIGJlZ2luLCBM
VmFsdWUgZW5kKQorICAgICAgICA6IG1fYmVnaW4oYmVnaW4pCisgICAgICAgICwgbV9lbmQoZW5k
KQorICAgICAgICAsIG1fcmFuZ2VNZXRhZGF0YSgwKQorICAgIHsKKyAgICB9CisgICAgCisgICAg
TFZhbHVlIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9iZWdpbjsgfQorICAgIExWYWx1ZSBlbmQo
KSBjb25zdCB7IHJldHVybiBtX2VuZDsgfQorICAgIAorICAgIHZvaWQgZGVjb3JhdGVJbnN0cnVj
dGlvbihMQ29udGV4dCwgTFZhbHVlIGxvYWRJbnN0cnVjdGlvbiwgdW5zaWduZWQgcmFuZ2VLaW5k
KSBjb25zdDsKKyAgICAKK3ByaXZhdGU6CisgICAgTFZhbHVlIG1fYmVnaW47CisgICAgTFZhbHVl
IG1fZW5kOworICAgIG11dGFibGUgTFZhbHVlIG1fcmFuZ2VNZXRhZGF0YTsKK307CisKK30gfSAv
LyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisjZW5k
aWYgLy8gRlRMVmFsdWVSYW5nZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0NvbnNlcnZhdGl2ZVJvb3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTksNyArOTksNiBAQCB2b2lkIENvbnNlcnZhdGl2ZVJvb3RzOjpnZW5lcmljQWRkU3Bh
bih2CiAgICAgICAgIGVuZCA9IHN3YXBUZW1wOwogICAgIH0KIAotICAgIEFTU0VSVCgoc3RhdGlj
X2Nhc3Q8Y2hhcio+KGVuZCkgLSBzdGF0aWNfY2FzdDxjaGFyKj4oYmVnaW4pKSA8IDB4MTAwMDAw
MCk7CiAgICAgQVNTRVJUKGlzUG9pbnRlckFsaWduZWQoYmVnaW4pKTsKICAgICBBU1NFUlQoaXNQ
b2ludGVyQWxpZ25lZChlbmQpKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTEsIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2Vp
ZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQ1MSwyNCArNDUxLDI3IEBA
IHZvaWQgSGVhcDo6bWFya1Jvb3RzKCkKICAgICBkb3VibGUgZ2NTdGFydFRpbWUgPSBXVEY6Om1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogI2VuZGlmCiAKKyAgICBtX2NvZGVCbG9ja3Mu
Y2xlYXJNYXJrcygpOwogICAgIHZvaWQqIGR1bW15OwotICAgIAorCiAgICAgLy8gV2UgZ2F0aGVy
IGNvbnNlcnZhdGl2ZSByb290cyBiZWZvcmUgY2xlYXJpbmcgbWFyayBiaXRzIGJlY2F1c2UgY29u
c2VydmF0aXZlCiAgICAgLy8gZ2F0aGVyaW5nIHVzZXMgdGhlIG1hcmsgYml0cyB0byBkZXRlcm1p
bmUgd2hldGhlciBhIHJlZmVyZW5jZSBpcyB2YWxpZC4KICAgICBDb25zZXJ2YXRpdmVSb290cyBt
YWNoaW5lVGhyZWFkUm9vdHMoJm1fb2JqZWN0U3BhY2UuYmxvY2tzKCksICZtX3N0b3JhZ2VTcGFj
ZSk7CiAgICAgbV9qaXRTdHViUm91dGluZXMuY2xlYXJNYXJrcygpOwogICAgIHsKICAgICAgICAg
R0NQSEFTRShHYXRoZXJDb25zZXJ2YXRpdmVSb290cyk7Ci0gICAgICAgIG1fbWFjaGluZVRocmVh
ZHMuZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMobWFjaGluZVRocmVhZFJvb3RzLCAmZHVtbXkpOwor
ICAgICAgICBtX21hY2hpbmVUaHJlYWRzLmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKG1hY2hpbmVU
aHJlYWRSb290cywgbV9qaXRTdHViUm91dGluZXMsIG1fY29kZUJsb2NrcywgJmR1bW15KTsKICAg
ICB9CiAKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgIENvbnNlcnZhdGl2ZVJvb3RzIHN0
YWNrUm9vdHMoJm1fb2JqZWN0U3BhY2UuYmxvY2tzKCksICZtX3N0b3JhZ2VTcGFjZSk7Ci0gICAg
bV9jb2RlQmxvY2tzLmNsZWFyTWFya3MoKTsKICAgICB7CiAgICAgICAgIEdDUEhBU0UoR2F0aGVy
U3RhY2tSb290cyk7CiAgICAgICAgIHN0YWNrKCkuZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoc3Rh
Y2tSb290cywgbV9qaXRTdHViUm91dGluZXMsIG1fY29kZUJsb2Nrcyk7Ci0gICAgICAgIHN0YWNr
KCkuc2FuaXRpemVTdGFjaygpOwogICAgIH0KKyNlbmRpZgorCisgICAgc2FuaXRpemVTdGFja0Zv
clZNKG1fdm0pOwogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgQ29uc2VydmF0aXZlUm9vdHMg
c2NyYXRjaEJ1ZmZlclJvb3RzKCZtX29iamVjdFNwYWNlLmJsb2NrcygpLCAmbV9zdG9yYWdlU3Bh
Y2UpOwpAQCAtNTA1LDEyICs1MDgsMTQgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoKQogICAgICAg
ICAgICAgdmlzaXRvci5hcHBlbmQobWFjaGluZVRocmVhZFJvb3RzKTsKICAgICAgICAgICAgIHZp
c2l0b3IuZG9uYXRlQW5kRHJhaW4oKTsKICAgICAgICAgfQorI2lmIEVOQUJMRShMTElOVF9DX0xP
T1ApCiAgICAgICAgIHsKICAgICAgICAgICAgIEdDUEhBU0UoVmlzaXRTdGFja1Jvb3RzKTsKICAg
ICAgICAgICAgIE1BUktfTE9HX1JPT1QodmlzaXRvciwgIlN0YWNrIik7CiAgICAgICAgICAgICB2
aXNpdG9yLmFwcGVuZChzdGFja1Jvb3RzKTsKICAgICAgICAgICAgIHZpc2l0b3IuZG9uYXRlQW5k
RHJhaW4oKTsKICAgICAgICAgfQorI2VuZGlmCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgICAg
IHsKICAgICAgICAgICAgIEdDUEhBU0UoVmlzaXRTY3JhdGNoQnVmZmVyUm9vdHMpOwpAQCAtOTUy
LDEyICs5NTcsMTIgQEAgdm9pZCBIZWFwOjpjb2xsZWN0KCkKIAogYm9vbCBIZWFwOjpjb2xsZWN0
SWZOZWNlc3NhcnlPckRlZmVyKCkKIHsKLSAgICBpZiAobV9kZWZlcnJhbERlcHRoKQorICAgIGlm
IChpc0RlZmVycmVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIGlmICgh
c2hvdWxkQ29sbGVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBjb2xs
ZWN0KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5Nyw3ICsxOTcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgCiAgICAgICAgIHZvaWQgYWRkUmVmZXJlbmNlKEpTQ2VsbCosIEFycmF5QnVmZmVyKik7
CiAgICAgICAgIAotICAgICAgICBib29sIGlzRGVmZXJyZWQoKSBjb25zdCB7IHJldHVybiAhIW1f
ZGVmZXJyYWxEZXB0aDsgfQorICAgICAgICBib29sIGlzRGVmZXJyZWQoKSBjb25zdCB7IHJldHVy
biAhIW1fZGVmZXJyYWxEZXB0aCB8fCBPcHRpb25zOjpkaXNhYmxlR0MoKTsgfQogCiAjaWYgVVNF
KENGKQogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHJlbGVhc2VTb29uKFJldGFp
blB0cjxUPiYmKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFj
a01hcmtlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFj
aGluZVN0YWNrTWFya2VyLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMy
LDcgKzIzMiw3IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OnJlbW92ZUN1cnJlbnRUaHJlYWQKICNk
ZWZpbmUgUkVHSVNURVJfQlVGRkVSX0FMSUdOTUVOVAogI2VuZGlmCiAKLXZvaWQgTWFjaGluZVRo
cmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2
YXRpdmVSb290cywgdm9pZCogc3RhY2tDdXJyZW50KQordm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0
aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3Rz
LCBKSVRTdHViUm91dGluZVNldCYgaml0U3R1YlJvdXRpbmVzLCBDb2RlQmxvY2tTZXQmIGNvZGVC
bG9ja3MsIHZvaWQqIHN0YWNrQ3VycmVudCkKIHsKICAgICAvLyBzZXRqbXAgZm9yY2VzIHZvbGF0
aWxlIHJlZ2lzdGVycyBvbnRvIHRoZSBzdGFjawogICAgIGptcF9idWYgcmVnaXN0ZXJzIFJFR0lT
VEVSX0JVRkZFUl9BTElHTk1FTlQ7CkBAIC0yNDgsMTIgKzI0OCwxMiBAQCB2b2lkIE1hY2hpbmVU
aHJlYWRzOjpnYXRoZXJGcm9tQ3VycmVudFRoCiAgICAgdm9pZCogcmVnaXN0ZXJzQmVnaW4gPSAm
cmVnaXN0ZXJzOwogICAgIHZvaWQqIHJlZ2lzdGVyc0VuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KHJvdW5kVXBUb011bHRpcGxlT2Y8c2l6ZW9mKHZvaWQqKT4ocmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KCZyZWdpc3RlcnMgKyAxKSkpOwogICAgIHN3YXBJZkJhY2t3YXJkcyhyZWdpc3Rl
cnNCZWdpbiwgcmVnaXN0ZXJzRW5kKTsKLSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQocmVnaXN0
ZXJzQmVnaW4sIHJlZ2lzdGVyc0VuZCk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHJlZ2lz
dGVyc0JlZ2luLCByZWdpc3RlcnNFbmQsIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiAK
ICAgICB2b2lkKiBzdGFja0JlZ2luID0gc3RhY2tDdXJyZW50OwogICAgIHZvaWQqIHN0YWNrRW5k
ID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkub3JpZ2luKCk7CiAgICAgc3dhcElmQmFja3dhcmRz
KHN0YWNrQmVnaW4sIHN0YWNrRW5kKTsKLSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoc3RhY2tC
ZWdpbiwgc3RhY2tFbmQpOworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGFja0JlZ2luLCBz
dGFja0VuZCwgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKIH0KIAogc3RhdGljIGlubGlu
ZSB2b2lkIHN1c3BlbmRUaHJlYWQoY29uc3QgUGxhdGZvcm1UaHJlYWQmIHBsYXRmb3JtVGhyZWFk
KQpAQCAtNDM0LDI0ICs0MzQsMjQgQEAgc3RhdGljIHZvaWQgZnJlZVBsYXRmb3JtVGhyZWFkUmVn
aXN0ZXJzKAogI2VuZGlmCiB9CiAKLXZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21PdGhl
clRocmVhZChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIFRocmVhZCogdGhy
ZWFkKQordm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZh
dGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgVGhyZWFkKiB0aHJlYWQsIEpJVFN0dWJSb3V0
aW5lU2V0JiBqaXRTdHViUm91dGluZXMsIENvZGVCbG9ja1NldCYgY29kZUJsb2NrcykKIHsKICAg
ICBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyByZWdzOwogICAgIHNpemVfdCByZWdTaXplID0gZ2V0
UGxhdGZvcm1UaHJlYWRSZWdpc3RlcnModGhyZWFkLT5wbGF0Zm9ybVRocmVhZCwgcmVncyk7CiAK
LSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoc3RhdGljX2Nhc3Q8dm9pZCo+KCZyZWdzKSwgc3Rh
dGljX2Nhc3Q8dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZyZWdzKSArIHJlZ1NpemUp
KTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoc3RhdGljX2Nhc3Q8dm9pZCo+KCZyZWdzKSwg
c3RhdGljX2Nhc3Q8dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZyZWdzKSArIHJlZ1Np
emUpLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogCiAgICAgdm9pZCogc3RhY2tQb2lu
dGVyID0gb3RoZXJUaHJlYWRTdGFja1BvaW50ZXIocmVncyk7CiAgICAgdm9pZCogc3RhY2tCYXNl
ID0gdGhyZWFkLT5zdGFja0Jhc2U7CiAgICAgc3dhcElmQmFja3dhcmRzKHN0YWNrUG9pbnRlciwg
c3RhY2tCYXNlKTsKLSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoc3RhY2tQb2ludGVyLCBzdGFj
a0Jhc2UpOworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGFja1BvaW50ZXIsIHN0YWNrQmFz
ZSwgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKIAogICAgIGZyZWVQbGF0Zm9ybVRocmVh
ZFJlZ2lzdGVycyhyZWdzKTsKIH0KIAotdm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyQ29uc2Vy
dmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCB2b2lkKiBz
dGFja0N1cnJlbnQpCit2b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290
cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIEpJVFN0dWJSb3V0aW5lU2V0
JiBqaXRTdHViUm91dGluZXMsIENvZGVCbG9ja1NldCYgY29kZUJsb2Nrcywgdm9pZCogc3RhY2tD
dXJyZW50KQogewotICAgIGdhdGhlckZyb21DdXJyZW50VGhyZWFkKGNvbnNlcnZhdGl2ZVJvb3Rz
LCBzdGFja0N1cnJlbnQpOworICAgIGdhdGhlckZyb21DdXJyZW50VGhyZWFkKGNvbnNlcnZhdGl2
ZVJvb3RzLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MsIHN0YWNrQ3VycmVudCk7CiAKICAg
ICBpZiAobV90aHJlYWRTcGVjaWZpYykgewogICAgICAgICBQbGF0Zm9ybVRocmVhZCBjdXJyZW50
UGxhdGZvcm1UaHJlYWQgPSBnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQoKTsKQEAgLTQ3Myw3ICs0
NzMsNyBAQCB2b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSCiAgICAgICAg
IC8vIGFuZCBzaW5jZSB0aGlzIGlzIGEgc2hhcmVkIGhlYXAsIHRoZXkgYXJlIHJlYWwgbG9ja3Mu
CiAgICAgICAgIGZvciAoVGhyZWFkKiB0aHJlYWQgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOyB0aHJl
YWQ7IHRocmVhZCA9IHRocmVhZC0+bmV4dCkgewogICAgICAgICAgICAgaWYgKCFlcXVhbFRocmVh
ZCh0aHJlYWQtPnBsYXRmb3JtVGhyZWFkLCBjdXJyZW50UGxhdGZvcm1UaHJlYWQpKQotICAgICAg
ICAgICAgICAgIGdhdGhlckZyb21PdGhlclRocmVhZChjb25zZXJ2YXRpdmVSb290cywgdGhyZWFk
KTsKKyAgICAgICAgICAgICAgICBnYXRoZXJGcm9tT3RoZXJUaHJlYWQoY29uc2VydmF0aXZlUm9v
dHMsIHRocmVhZCwgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKICAgICAgICAgfQogCiAg
ICAgICAgIGZvciAoVGhyZWFkKiB0aHJlYWQgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOyB0aHJlYWQ7
IHRocmVhZCA9IHRocmVhZC0+bmV4dCkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFjaGluZVN0YWNrTWFya2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw4ICsyOCwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorICAgIGNsYXNzIENvZGVC
bG9ja1NldDsKICAgICBjbGFzcyBDb25zZXJ2YXRpdmVSb290czsKICAgICBjbGFzcyBIZWFwOwor
ICAgIGNsYXNzIEpJVFN0dWJSb3V0aW5lU2V0OwogCiAgICAgY2xhc3MgTWFjaGluZVRocmVhZHMg
ewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNYWNoaW5lVGhyZWFkcyk7CkBAIC0zNywy
MCArMzksMjAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY2hpbmVUaHJlYWRzKEhlYXAq
KTsKICAgICAgICAgfk1hY2hpbmVUaHJlYWRzKCk7CiAKLSAgICAgICAgdm9pZCBnYXRoZXJDb25z
ZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYsIHZvaWQqIHN0YWNrQ3VycmVudCk7Cisg
ICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmLCBK
SVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYsIHZvaWQqIHN0YWNrQ3VycmVudCk7CiAK
ICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBtYWtlVXNhYmxlRnJvbU11bHRpcGxlVGhy
ZWFkcygpOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGFkZEN1cnJlbnRUaHJlYWQo
KTsgLy8gT25seSBuZWVkcyB0byBiZSBjYWxsZWQgYnkgY2xpZW50cyB0aGF0IGNhbiB1c2UgdGhl
IHNhbWUgaGVhcCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCiAKICAgICBwcml2YXRlOgotICAgICAg
ICB2b2lkIGdhdGhlckZyb21DdXJyZW50VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiwgdm9pZCog
c3RhY2tDdXJyZW50KTsKKyAgICAgICAgdm9pZCBnYXRoZXJGcm9tQ3VycmVudFRocmVhZChDb25z
ZXJ2YXRpdmVSb290cyYsIEpJVFN0dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jiwgdm9pZCog
c3RhY2tDdXJyZW50KTsKIAogICAgICAgICBjbGFzcyBUaHJlYWQ7CiAKICAgICAgICAgc3RhdGlj
IHZvaWQgcmVtb3ZlVGhyZWFkKHZvaWQqKTsKICAgICAgICAgdm9pZCByZW1vdmVDdXJyZW50VGhy
ZWFkKCk7CiAKLSAgICAgICAgdm9pZCBnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29uc2VydmF0aXZl
Um9vdHMmLCBUaHJlYWQqKTsKKyAgICAgICAgdm9pZCBnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29u
c2VydmF0aXZlUm9vdHMmLCBUaHJlYWQqLCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1Nl
dCYpOwogCiAgICAgICAgIE11dGV4IG1fcmVnaXN0ZXJlZFRocmVhZHNNdXRleDsKICAgICAgICAg
VGhyZWFkKiBtX3JlZ2lzdGVyZWRUaHJlYWRzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTYsMTEgKzExNiwxMSBAQCBDb2RlT3JpZ2luIENhbGxGcmFtZTo6Y29kZU9yaWdp
bigpCiAgICAgcmV0dXJuIENvZGVPcmlnaW4obG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOwog
fQogCi1SZWdpc3RlciogQ2FsbEZyYW1lOjpmcmFtZUV4dGVudEludGVybmFsKCkKK1JlZ2lzdGVy
KiBDYWxsRnJhbWU6OnRvcE9mRnJhbWVJbnRlcm5hbCgpCiB7CiAgICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSB0aGlzLT5jb2RlQmxvY2soKTsKICAgICBBU1NFUlQoY29kZUJsb2NrKTsKLSAgICBy
ZXR1cm4gcmVnaXN0ZXJzKCkgKyB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2stPmZy
YW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKTsKKyAgICByZXR1cm4gcmVnaXN0ZXJzKCkgKyBj
b2RlQmxvY2stPnN0YWNrUG9pbnRlck9mZnNldCgpOwogfQogCiBKU0dsb2JhbE9iamVjdCogQ2Fs
bEZyYW1lOjp2bUVudHJ5R2xvYmFsT2JqZWN0KCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAkod29ya2luZyBjb3B5KQpA
QCAtMTc2LDE1ICsxNzYsMTMgQEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICAvLyBDb2RlT3Jp
Z2luKDApIGlmIHdlJ3JlIGluIG5hdGl2ZSBjb2RlLgogICAgICAgICBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4oKTsKIAotICAgICAgICBSZWdpc3RlciogZnJhbWVFeHRlbnQoKQorICAgICAgICBSZWdp
c3RlciogdG9wT2ZGcmFtZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChpc1ZNRW50cnlT
ZW50aW5lbCgpIHx8ICFjb2RlQmxvY2soKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0
ZXJzKCkgLSAxOwotICAgICAgICAgICAgcmV0dXJuIGZyYW1lRXh0ZW50SW50ZXJuYWwoKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0ZXJzKCk7CisgICAgICAgICAgICByZXR1cm4gdG9w
T2ZGcmFtZUludGVybmFsKCk7CiAgICAgICAgIH0KICAgICAKLSAgICAgICAgUmVnaXN0ZXIqIGZy
YW1lRXh0ZW50SW50ZXJuYWwoKTsKLQogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgICAgIElu
c3RydWN0aW9uKiBjdXJyZW50VlBDKCkgY29uc3QKICAgICAgICAgewpAQCAtMzE4LDYgKzMxNiw4
IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgRXhlY1N0YXRlKCk7CiAgICAgICAgIH5FeGVj
U3RhdGUoKTsKIAorICAgICAgICBSZWdpc3RlciogdG9wT2ZGcmFtZUludGVybmFsKCk7CisKICAg
ICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgZm9yIGludGVybmFsIHVzZSBpbiBkZWJ1Z2dpbmcg
YW5kIHZlcmlmaWNhdGlvbgogICAgICAgICAvLyBjb2RlIG9ubHkgYW5kIG5vdCBtZWFudCBhcyBh
biBBUEkgZm9yIGdlbmVyYWwgdXNhZ2U6CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgIlJlZ0V4cFByb3RvdHlwZS5oIgog
I2luY2x1ZGUgIlJlZ2lzdGVyLmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCisjaW5jbHVk
ZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKICNpbmNsdWRl
ICJTdHJpY3RFdmFsQWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKQEAg
LTc0LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgog
I2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRzLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgpAQCAtODksMjIgKzkxLDYg
QEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUludGVycHJldGVy
OjpFcnJvckhhbmRsaW5nTW9kZTo6RXJyb3JIYW5kbGluZ01vZGUoRXhlY1N0YXRlICpleGVjKQot
ICAgIDogbV9pbnRlcnByZXRlcigqZXhlYy0+aW50ZXJwcmV0ZXIoKSkKLXsKLSAgICBpZiAoIW1f
aW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5nTW9kZVJlZW50cnkpCi0gICAgICAgIG1faW50ZXJw
cmV0ZXIuc3RhY2soKS5lbmFibGVFcnJvclN0YWNrUmVzZXJ2ZSgpOwotICAgIG1faW50ZXJwcmV0
ZXIubV9lcnJvckhhbmRsaW5nTW9kZVJlZW50cnkrKzsKLX0KLQotSW50ZXJwcmV0ZXI6OkVycm9y
SGFuZGxpbmdNb2RlOjp+RXJyb3JIYW5kbGluZ01vZGUoKQotewotICAgIG1faW50ZXJwcmV0ZXIu
bV9lcnJvckhhbmRsaW5nTW9kZVJlZW50cnktLTsKLSAgICBBU1NFUlQobV9pbnRlcnByZXRlci5t
X2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRyeSA+PSAwKTsKLSAgICBpZiAoIW1faW50ZXJwcmV0ZXIu
bV9lcnJvckhhbmRsaW5nTW9kZVJlZW50cnkpCi0gICAgICAgIG1faW50ZXJwcmV0ZXIuc3RhY2so
KS5kaXNhYmxlRXJyb3JTdGFja1Jlc2VydmUoKTsKLX0KLQogSlNWYWx1ZSBldmFsKENhbGxGcmFt
ZSogY2FsbEZyYW1lKQogewogICAgIGlmICghY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkpCkBA
IC0xNTIsMjIgKzEzOCwyNSBAQCBKU1ZhbHVlIGV2YWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAg
ICAgcmV0dXJuIGludGVycHJldGVyLT5leGVjdXRlKGV2YWwsIGNhbGxGcmFtZSwgdGhpc1ZhbHVl
LCBjYWxsZXJTY29wZUNoYWluKTsKIH0KIAotQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZv
clZhcmFyZ3MoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTU3RhY2sqIHN0YWNrLCBKU1ZhbHVlIGFy
Z3VtZW50cywgaW50IGZpcnN0RnJlZVJlZ2lzdGVyKQorQ2FsbEZyYW1lKiBzaXplRnJhbWVGb3JW
YXJhcmdzKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1N0YWNrKiBzdGFjaywgSlNWYWx1ZSBhcmd1
bWVudHMsIGludCBmaXJzdEZyZWVSZWdpc3RlcikKIHsKICAgICBpZiAoIWFyZ3VtZW50cykgeyAv
LyBmLmFwcGx5KHgsIGFyZ3VtZW50cyksIHdpdGggYXJndW1lbnRzIHVubW9kaWZpZWQuCiAgICAg
ICAgIHVuc2lnbmVkIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID0gY2FsbEZyYW1lLT5hcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcygpOwotICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFt
ZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBmaXJzdEZyZWVS
ZWdpc3RlciAtIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzIC0gSlNTdGFjazo6Q2FsbEZyYW1l
SGVhZGVyU2l6ZSAtIDEpOwotICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMg
PiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyArIDEgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFt
ZS0+cmVnaXN0ZXJzKCkpKSB7Ci0gICAgICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNl
cHRpb24oY2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7Cisg
ICAgICAgIHVuc2lnbmVkIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9N
dWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIC1maXJzdEZyZWVSZWdpc3RlciAr
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6
ZSArIDEpOworICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3Jl
YXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7Cisg
ICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA+IEFyZ3VtZW50czo6TWF4QXJn
dW1lbnRzICsgMSB8fCAhc3RhY2stPmVuc3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVn
aXN0ZXJzKCkpKSB7CisgICAgICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJh
bWUpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5l
d0NhbGxGcmFtZTsKICAgICB9CiAKICAgICBpZiAoYXJndW1lbnRzLmlzVW5kZWZpbmVkT3JOdWxs
KCkpIHsKLSAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0
ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSAxIC0gSlNTdGFj
azo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIDEpOwotICAgICAgICBpZiAoIXN0YWNrLT5ncm93KG5l
d0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7Ci0gICAgICAgICAgICBjYWxsRnJhbWUtPnZtKCku
dGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZy
YW1lKSk7CisgICAgICAgIHVuc2lnbmVkIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID0gMTsK
KyAgICAgICAgdW5zaWduZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBU
b011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgIC1maXJzdEZyZWVSZWdpc3Rl
ciArIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVy
U2l6ZSArIDEpOworICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6
Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7
CisgICAgICAgIGlmICghc3RhY2stPmVuc3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVn
aXN0ZXJzKCkpKSB7CisgICAgICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJh
bWUpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5l
d0NhbGxGcmFtZTsKQEAgLTE4MSw5ICsxNzAsMTAgQEAgQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NG
cmFtZUZvclZhcmFyZ3MoQwogICAgIGlmIChhc09iamVjdChhcmd1bWVudHMpLT5jbGFzc0luZm8o
KSA9PSBBcmd1bWVudHM6OmluZm8oKSkgewogICAgICAgICBBcmd1bWVudHMqIGFyZ3NPYmplY3Qg
PSBhc0FyZ3VtZW50cyhhcmd1bWVudHMpOwogICAgICAgICB1bnNpZ25lZCBhcmdDb3VudCA9IGFy
Z3NPYmplY3QtPmxlbmd0aChjYWxsRnJhbWUpOwotICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxG
cmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBmaXJzdEZy
ZWVSZWdpc3RlciAtIENhbGxGcmFtZTo6b2Zmc2V0Rm9yKGFyZ0NvdW50ICsgMSkpOwotICAgICAg
ICBpZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3RhY2stPmdyb3co
bmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKLSAgICAgICAgICAgIGNhbGxGcmFtZS0+dm0o
KS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxs
RnJhbWUpKTsKKyAgICAgICAgdW5zaWduZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6
OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgLWZpcnN0RnJl
ZVJlZ2lzdGVyICsgQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7CisgICAgICAg
IENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5y
ZWdpc3RlcnMoKSAtIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0KTsKKyAgICAgICAgaWYgKGFyZ0Nv
dW50ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5lbnN1cmVDYXBhY2l0eUZv
cihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAgICAgICAgICAgdGhyb3dTdGFja092
ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9
CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC0xOTIsOSArMTgyLDEwIEBAIENhbGxG
cmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKEMKICAgICBpZiAoaXNKU0FycmF5KGFy
Z3VtZW50cykpIHsKICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5KGFyZ3VtZW50cyk7
CiAgICAgICAgIHVuc2lnbmVkIGFyZ0NvdW50ID0gYXJyYXktPmxlbmd0aCgpOwotICAgICAgICBD
YWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVn
aXN0ZXJzKCkgKyBmaXJzdEZyZWVSZWdpc3RlciAtIENhbGxGcmFtZTo6b2Zmc2V0Rm9yKGFyZ0Nv
dW50ICsgMSkpOwotICAgICAgICBpZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50
cyB8fCAhc3RhY2stPmdyb3cobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKLSAgICAgICAg
ICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGNyZWF0ZVN0YWNr
T3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKKyAgICAgICAgdW5zaWduZWQgcGFkZGVkQ2FsbGVl
RnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdp
c3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lzdGVyICsgQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJnQ291
bnQgKyAxKSk7CisgICAgICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpj
cmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0KTsK
KyAgICAgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNr
LT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAgICAg
ICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC0yMDIs
OSArMTkzLDEwIEBAIENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKEMKIAog
ICAgIEpTT2JqZWN0KiBhcmdPYmplY3QgPSBhc09iamVjdChhcmd1bWVudHMpOwogICAgIHVuc2ln
bmVkIGFyZ0NvdW50ID0gYXJnT2JqZWN0LT5nZXQoY2FsbEZyYW1lLCBjYWxsRnJhbWUtPnByb3Bl
cnR5TmFtZXMoKS5sZW5ndGgpLnRvVUludDMyKGNhbGxGcmFtZSk7Ci0gICAgQ2FsbEZyYW1lKiBu
ZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsg
Zmlyc3RGcmVlUmVnaXN0ZXIgLSBDYWxsRnJhbWU6Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsK
LSAgICBpZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3RhY2stPmdy
b3cobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKLSAgICAgICAgY2FsbEZyYW1lLT52bSgp
LnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxs
RnJhbWUpKTsKKyAgICB1bnNpZ25lZCBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCA9IFdURjo6cm91
bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCAtZmlyc3RGcmVlUmVn
aXN0ZXIgKyBDYWxsRnJhbWU6Om9mZnNldEZvcihhcmdDb3VudCArIDEpKTsKKyAgICBDYWxsRnJh
bWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+cmVnaXN0ZXJz
KCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7CisgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1l
bnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJh
bWUtPnJlZ2lzdGVycygpKSkgeworICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxs
RnJhbWUpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgcmV0dXJuIG5ld0NhbGxGcmFt
ZTsKQEAgLTQyMSw3ICs0MTMsNiBAQCBzdGF0aWMgYm9vbCB1bndpbmRDYWxsRnJhbWUoU3RhY2tW
aXNpdG9yCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSB2aXNpdG9yLT5jYWxsRnJhbWUo
KTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHZpc2l0b3ItPmNvZGVCbG9jaygpOwotICAg
IENvZGVCbG9jayogb2xkQ29kZUJsb2NrID0gY29kZUJsb2NrOwogICAgIEpTU2NvcGUqIHNjb3Bl
ID0gY2FsbEZyYW1lLT5zY29wZSgpOwogCiAgICAgaWYgKERlYnVnZ2VyKiBkZWJ1Z2dlciA9IGNh
bGxGcmFtZS0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLT5kZWJ1Z2dlcigpKSB7CkBAIC00MzIsMTYg
KzQyMywxNiBAQCBzdGF0aWMgYm9vbCB1bndpbmRDYWxsRnJhbWUoU3RhY2tWaXNpdG9yCiAgICAg
fQogCiAgICAgSlNWYWx1ZSBhY3RpdmF0aW9uOwotICAgIGlmIChvbGRDb2RlQmxvY2stPmNvZGVU
eXBlKCkgPT0gRnVuY3Rpb25Db2RlICYmIG9sZENvZGVCbG9jay0+bmVlZHNBY3RpdmF0aW9uKCkp
IHsKKyAgICBpZiAoY29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSAmJiBjb2Rl
QmxvY2stPm5lZWRzQWN0aXZhdGlvbigpKSB7CiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKCF2aXNpdG9yLT5pc0lubGluZWRGcmFtZSgpKTsKICNlbmRpZgotICAg
ICAgICBhY3RpdmF0aW9uID0gY2FsbEZyYW1lLT51bmNoZWNrZWRSKG9sZENvZGVCbG9jay0+YWN0
aXZhdGlvblJlZ2lzdGVyKCkub2Zmc2V0KCkpLmpzVmFsdWUoKTsKKyAgICAgICAgYWN0aXZhdGlv
biA9IGNhbGxGcmFtZS0+dW5jaGVja2VkUihjb2RlQmxvY2stPmFjdGl2YXRpb25SZWdpc3Rlcigp
Lm9mZnNldCgpKS5qc1ZhbHVlKCk7CiAgICAgICAgIGlmIChhY3RpdmF0aW9uKQogICAgICAgICAg
ICAganNDYXN0PEpTQWN0aXZhdGlvbio+KGFjdGl2YXRpb24pLT50ZWFyT2ZmKCpzY29wZS0+dm0o
KSk7CiAgICAgfQogCi0gICAgaWYgKG9sZENvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlv
bkNvZGUgJiYgb2xkQ29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpIHsKKyAgICBpZiAoY29kZUJs
b2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSAmJiBjb2RlQmxvY2stPnVzZXNBcmd1bWVu
dHMoKSkgewogICAgICAgICBpZiAoQXJndW1lbnRzKiBhcmd1bWVudHMgPSB2aXNpdG9yLT5leGlz
dGluZ0FyZ3VtZW50cygpKSB7CiAgICAgICAgICAgICBpZiAoYWN0aXZhdGlvbikKICAgICAgICAg
ICAgICAgICBhcmd1bWVudHMtPmRpZFRlYXJPZmZBY3RpdmF0aW9uKGNhbGxGcmFtZSwganNDYXN0
PEpTQWN0aXZhdGlvbio+KGFjdGl2YXRpb24pKTsKQEAgLTQ1NSwxMSArNDQ2LDcgQEAgc3RhdGlj
IGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrVmlzaXRvcgogICAgIH0KIAogICAgIENhbGxGcmFt
ZSogY2FsbGVyRnJhbWUgPSBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCk7Ci0gICAgaWYgKGNhbGxl
ckZyYW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpKSB7Ci0gICAgICAgIGNhbGxGcmFtZS0+dm0oKS50
b3BDYWxsRnJhbWUgPSBjYWxsZXJGcmFtZS0+dm1FbnRyeVNlbnRpbmVsQ2FsbGVyRnJhbWUoKTsK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gIWNhbGxlckZyYW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpOwogfQogCiBzdGF0aWMgU3RhY2tG
cmFtZUNvZGVUeXBlIGdldFN0YWNrRnJhbWVDb2RlVHlwZShTdGFja1Zpc2l0b3ImIHZpc2l0b3Ip
CkBAIC02NjIsNyArNjQ5LDE3IEBAIHByaXZhdGU6CiAKIE5FVkVSX0lOTElORSBIYW5kbGVySW5m
byogSW50ZXJwcmV0ZXI6OnVud2luZChDYWxsRnJhbWUqJiBjYWxsRnJhbWUsIEpTVmFsdWUmIGV4
Y2VwdGlvblZhbHVlKQogeworICAgIGlmIChjYWxsRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkp
IHsKKyAgICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gd2UgdGhyb3cgc3RhY2sgb3ZlcmZsb3cg
aW4gYSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZAorICAgICAgICAvLyBkaXJlY3RseSBmcm9tIGNh
bGxUb0phdmFTY3JpcHQuIFN0YWNrIG92ZXJmbG93IHRocm93cyB0aGUgZXhjZXB0aW9uIGluIHRo
ZQorICAgICAgICAvLyBjb250ZXh0IG9mIHRoZSBjYWxsZXIuIEluIHRoYXQgY2FzZSB0aGUgY2Fs
bGVyIGlzIHRoZSBzZW50aW5lbCBmcmFtZS4gVGhlCisgICAgICAgIC8vIHJpZ2h0IHRoaW5nIHRv
IGRvIGlzIHRvIHByZXRlbmQgdGhhdCB0aGUgZXhjZXB0aW9uIGlzIHVuY2F1Z2h0IHNvIHRoYXQg
d2UKKyAgICAgICAgLy8gZ28gdG8gdGhlIHVuY2F1Z2h0IGV4Y2VwdGlvbiBoYW5kbGVyLCB3aGlj
aCByZXR1cm5zIHRocm91Z2ggY2FsbFRvSmF2YVNjcmlwdC4KKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgfQorICAgIAogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKTsKKyAgICBBU1NFUlQoY29kZUJsb2NrKTsKICAgICBib29sIGlzVGVybWluYXRpb24gPSBm
YWxzZTsKIAogICAgIEFTU0VSVCghZXhjZXB0aW9uVmFsdWUuaXNFbXB0eSgpKTsKQEAgLTc2Nyw3
ICs3NjQsNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKFByb2dyYW1FeGVjCiAgICAg
aWYgKHZtLmlzQ29sbGVjdG9yQnVzeSgpKQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAKLSAg
ICBWTUVudHJ5U2NvcGUgZW50cnlTY29wZSh2bSwgc2NvcGUtPmdsb2JhbE9iamVjdCgpKTsKICAg
ICBpZiAoIXZtLmlzU2FmZVRvUmVjdXJzZSgpKQogICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVy
bih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKIApAQCAtODc0LDYgKzg3MCw4
IEBAIGZhaWxlZEpTT05QOgogICAgIC8vIElmIHdlIGdldCBoZXJlLCB0aGVuIHdlIGhhdmUgYWxy
ZWFkeSBwcm92ZW4gdGhhdCB0aGUgc2NyaXB0IGlzIG5vdCBhIEpTT04KICAgICAvLyBvYmplY3Qu
CiAKKyAgICBWTUVudHJ5U2NvcGUgZW50cnlTY29wZSh2bSwgc2NvcGUtPmdsb2JhbE9iamVjdCgp
KTsKKwogICAgIC8vIENvbXBpbGUgc291cmNlIHRvIGJ5dGVjb2RlIGlmIG5lY2Vzc2FyeToKICAg
ICBpZiAoSlNPYmplY3QqIGVycm9yID0gcHJvZ3JhbS0+aW5pdGlhbGl6ZUdsb2JhbFByb3BlcnRp
ZXModm0sIGNhbGxGcmFtZSwgc2NvcGUpKQogICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybihj
YWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBlcnJvcikpOwpAQCAtODg4
LDkgKzg4Niw2IEBAIGZhaWxlZEpTT05QOgogCiAgICAgQVNTRVJUKGNvZGVCbG9jay0+bnVtUGFy
YW1ldGVycygpID09IDEpOyAvLyAxIHBhcmFtZXRlciBmb3IgJ3RoaXMnLgogCi0gICAgaWYgKFVO
TElLRUxZKCFtX3N0YWNrLmVudHJ5Q2hlY2soY29kZUJsb2NrLCAxKSkpCi0gICAgICAgIHJldHVy
biBjaGVja2VkUmV0dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwotCiAg
ICAgUHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5p
dChjb2RlQmxvY2ssIHNjb3BlLCAwLCB0aGlzT2JqLCAxKTsKIApAQCAtOTAzLDcgKzg5OCw3IEBA
IGZhaWxlZEpTT05QOgogICAgICAgICBTYW1wbGluZ1Rvb2w6OkNhbGxSZWNvcmQgY2FsbFJlY29y
ZChtX3NhbXBsZXIuZ2V0KCkpOwogICAgICAgICBXYXRjaGRvZzo6U2NvcGUgd2F0Y2hkb2dTY29w
ZSh2bS53YXRjaGRvZyk7CiAKLSAgICAgICAgcmVzdWx0ID0gcHJvZ3JhbS0+Z2VuZXJhdGVkSklU
Q29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNrLmdldFRvcE9mU3Rh
Y2soKSk7CisgICAgICAgIHJlc3VsdCA9IHByb2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhl
Y3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSk7CiAgICAgfQogCiAgICAgaWYgKExlZ2FjeVByb2Zp
bGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQpAQCAtOTUxLDkgKzk0Niw2IEBA
IEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmEKICAgICBpZiAoVU5MSUtF
TFkodm0ud2F0Y2hkb2cuZGlkRmlyZShjYWxsRnJhbWUpKSkKICAgICAgICAgcmV0dXJuIHRocm93
VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihjYWxsRnJhbWUpOwogCi0gICAgaWYgKFVOTElL
RUxZKCFtX3N0YWNrLmVudHJ5Q2hlY2sobmV3Q29kZUJsb2NrLCBhcmdzQ291bnQpKSkKLSAgICAg
ICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1l
KSk7Ci0KICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxG
cmFtZS5pbml0KG5ld0NvZGVCbG9jaywgc2NvcGUsIGZ1bmN0aW9uLCB0aGlzVmFsdWUsIGFyZ3ND
b3VudCwgYXJncy5kYXRhKCkpOwogCkBAIC05NjcsOSArOTU5LDEyIEBAIEpTVmFsdWUgSW50ZXJw
cmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmEKIAogICAgICAgICAvLyBFeGVjdXRlIHRoZSBjb2Rl
OgogICAgICAgICBpZiAoaXNKU0NhbGwpCi0gICAgICAgICAgICByZXN1bHQgPSBjYWxsRGF0YS5q
cy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCktPmV4ZWN1dGUo
JnZtLCAmcHJvdG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxUb05hdGl2ZUZ1
bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiks
ICZ2bS50b3BDYWxsRnJhbWUsICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNr
KCkpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJs
ZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFt
ZSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2Rl
KGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxEYXRhLm5h
dGl2ZS5mdW5jdGlvbiksICZ2bSwgJnByb3RvQ2FsbEZyYW1lKSk7CisgICAgICAgICAgICBpZiAo
Y2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBqc051
bGwoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmls
ZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKQEAgLTEwMTksOSArMTAxNCw2IEBAIEpTT2JqZWN0
KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgKICAgICBpZiAoVU5MSUtFTFkodm0ud2F0
Y2hkb2cuZGlkRmlyZShjYWxsRnJhbWUpKSkKICAgICAgICAgcmV0dXJuIHRocm93VGVybWluYXRl
ZEV4ZWN1dGlvbkV4Y2VwdGlvbihjYWxsRnJhbWUpOwogCi0gICAgaWYgKFVOTElLRUxZKCFtX3N0
YWNrLmVudHJ5Q2hlY2sobmV3Q29kZUJsb2NrLCBhcmdzQ291bnQpKSkKLSAgICAgICAgcmV0dXJu
IGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7Ci0KICAg
ICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0
KG5ld0NvZGVCbG9jaywgc2NvcGUsIGNvbnN0cnVjdG9yLCBqc1VuZGVmaW5lZCgpLCBhcmdzQ291
bnQsIGFyZ3MuZGF0YSgpKTsKIApAQCAtMTAzNSw5ICsxMDI3LDkgQEAgSlNPYmplY3QqIEludGVy
cHJldGVyOjpleGVjdXRlQ29uc3RydWN0KAogCiAgICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGUu
CiAgICAgICAgIGlmIChpc0pTQ29uc3RydWN0KQotICAgICAgICAgICAgcmVzdWx0ID0gY29uc3Ry
dWN0RGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1
Y3QoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNr
KCkpOworICAgICAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0RGF0YS5qcy5mdW5jdGlvbkV4ZWN1
dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3QoKS0+ZXhlY3V0ZSgmdm0sICZwcm90
b0NhbGxGcmFtZSk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgcmVzdWx0ID0gSlNWYWx1
ZTo6ZGVjb2RlKGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNv
bnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKSwgJnZtLnRvcENhbGxGcmFtZSwgJnByb3RvQ2Fs
bEZyYW1lLCBtX3N0YWNrLmdldFRvcE9mU3RhY2soKSkpOworICAgICAgICAgICAgcmVzdWx0ID0g
SlNWYWx1ZTo6ZGVjb2RlKGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKSwgJnZtLCAmcHJvdG9DYWxsRnJhbWUp
KTsKIAogICAgICAgICAgICAgaWYgKCFjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHJlc3VsdC5pc09iamVjdCgpKTsKQEAgLTEwNzIsMTEg
KzEwNjQsNiBAQCBDYWxsRnJhbWVDbG9zdXJlIEludGVycHJldGVyOjpwcmVwYXJlRm9yCiAKICAg
ICBzaXplX3QgYXJnc0NvdW50ID0gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXM7CiAKLSAgICBp
ZiAoVU5MSUtFTFkoIW1fc3RhY2suZW50cnlDaGVjayhuZXdDb2RlQmxvY2ssIGFyZ3NDb3VudCkp
KSB7Ci0gICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSk7Ci0gICAgICAg
IHJldHVybiBDYWxsRnJhbWVDbG9zdXJlKCk7Ci0gICAgfQotCiAgICAgcHJvdG9DYWxsRnJhbWUt
PmluaXQobmV3Q29kZUJsb2NrLCBzY29wZSwgZnVuY3Rpb24sIGpzVW5kZWZpbmVkKCksIGFyZ3ND
b3VudCwgYXJncyk7CiAgICAgLy8gUmV0dXJuIHRoZSBzdWNjZXNzZnVsIGNsb3N1cmU6CiAgICAg
Q2FsbEZyYW1lQ2xvc3VyZSByZXN1bHQgPSB7IGNhbGxGcmFtZSwgcHJvdG9DYWxsRnJhbWUsIGZ1
bmN0aW9uLCBmdW5jdGlvbkV4ZWN1dGFibGUsICZ2bSwgc2NvcGUsIG5ld0NvZGVCbG9jay0+bnVt
UGFyYW1ldGVycygpLCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyB9OwpAQCAtMTEwNyw3ICsx
MDk0LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShDYWxsRnJhbWVDbAogICAgICAg
ICBTYW1wbGluZ1Rvb2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwog
ICAgICAgICBXYXRjaGRvZzo6U2NvcGUgd2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZyk7CiAKLSAg
ICAgICAgcmVzdWx0ID0gY2xvc3VyZS5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENv
ZGVGb3JDYWxsKCktPmV4ZWN1dGUoJnZtLCBjbG9zdXJlLnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNr
LmdldFRvcE9mU3RhY2soKSk7CisgICAgICAgIHJlc3VsdCA9IGNsb3N1cmUuZnVuY3Rpb25FeGVj
dXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgY2xvc3VyZS5w
cm90b0NhbGxGcmFtZSk7CiAgICAgfQogCiAgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxl
ciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQpAQCAtMTE3OCw5ICsxMTY1LDYgQEAgSlNWYWx1ZSBJ
bnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YQogCiAgICAgQVNTRVJUKGNvZGVCbG9jay0+
bnVtUGFyYW1ldGVycygpID09IDEpOyAvLyAxIHBhcmFtZXRlciBmb3IgJ3RoaXMnLgogCi0gICAg
aWYgKFVOTElLRUxZKCFtX3N0YWNrLmVudHJ5Q2hlY2soY29kZUJsb2NrLCAxKSkpCi0gICAgICAg
IHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkp
OwotCiAgICAgUHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJh
bWUuaW5pdChjb2RlQmxvY2ssIHNjb3BlLCAwLCB0aGlzVmFsdWUsIDEpOwogCkBAIC0xMTkzLDcg
KzExNzcsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVjdXRhCiAgICAg
ICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7
CiAgICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRvZ1Njb3BlKHZtLndhdGNoZG9nKTsKIAot
ICAgICAgICByZXN1bHQgPSBldmFsLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAm
cHJvdG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICAgICAgcmVzdWx0
ID0gZXZhbC0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1l
KTsKICAgICB9CiAKICAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxl
ZFByb2ZpbGVyKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4MCw2ICsx
ODAsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBBU1NFUlQoIWNhbGxGcmFtZS0+
aXNWTUVudHJ5U2VudGluZWwoKSk7CiAgICAgICAgICAgICB2bS0+dG9wQ2FsbEZyYW1lID0gY2Fs
bEZyYW1lOwogICAgICAgICB9CisgICAgICAgIAorICAgICAgICBlbnVtIFZNRW50cnlTZW50aW5l
bE9LVGFnIHsgVk1FbnRyeVNlbnRpbmVsT0sgfTsKKyAgICAgICAgQUxXQVlTX0lOTElORSBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIoVk0qIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgVk1FbnRyeVNl
bnRpbmVsT0tUYWcpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCh2bSk7CisgICAgICAg
ICAgICBBU1NFUlQoY2FsbEZyYW1lKTsKKyAgICAgICAgICAgIGlmICghY2FsbEZyYW1lLT5pc1ZN
RW50cnlTZW50aW5lbCgpKQorICAgICAgICAgICAgICAgIHZtLT50b3BDYWxsRnJhbWUgPSBjYWxs
RnJhbWU7CisgICAgICAgIH0KICAgICB9OwogCiAgICAgY2xhc3MgSW50ZXJwcmV0ZXIgewpAQCAt
MTkwLDE0ICsxOTksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIFZN
OwogCiAgICAgcHVibGljOgotICAgICAgICBjbGFzcyBFcnJvckhhbmRsaW5nTW9kZSB7Ci0gICAg
ICAgIHB1YmxpYzoKLSAgICAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEVycm9ySGFuZGxpbmdN
b2RlKEV4ZWNTdGF0ZSopOwotICAgICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgfkVycm9ySGFu
ZGxpbmdNb2RlKCk7Ci0gICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBJbnRlcnByZXRlciYg
bV9pbnRlcnByZXRlcjsKLSAgICAgICAgfTsKLQogICAgICAgICBJbnRlcnByZXRlcihWTSAmKTsK
ICAgICAgICAgfkludGVycHJldGVyKCk7CiAgICAgICAgIApAQCAtMjM3LDggKzIzOCw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgU2FtcGxpbmdUb29sKiBzYW1wbGVyKCkg
eyByZXR1cm4gbV9zYW1wbGVyLmdldCgpOyB9CiAKLSAgICAgICAgYm9vbCBpc0luRXJyb3JIYW5k
bGluZ01vZGUoKSB7IHJldHVybiBtX2Vycm9ySGFuZGxpbmdNb2RlUmVlbnRyeTsgfQotCiAgICAg
ICAgIE5FVkVSX0lOTElORSBIYW5kbGVySW5mbyogdW53aW5kKENhbGxGcmFtZSomLCBKU1ZhbHVl
Jik7CiAgICAgICAgIE5FVkVSX0lOTElORSB2b2lkIGRlYnVnKENhbGxGcmFtZSosIERlYnVnSG9v
a0lEKTsKICAgICAgICAgSlNTdHJpbmcqIHN0YWNrVHJhY2VBc1N0cmluZyhFeGVjU3RhdGUqLCBW
ZWN0b3I8U3RhY2tGcmFtZT4pOwpAQCAtMjg2LDcgKzI4NSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgIH07CiAKICAgICBKU1ZhbHVlIGV2YWwoQ2FsbEZyYW1lKik7Ci0gICAgQ2FsbEZyYW1lKiBz
aXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoQ2FsbEZyYW1lKiwgSlNTdGFjayosIEpTVmFsdWUs
IGludCk7CisgICAgQ2FsbEZyYW1lKiBzaXplRnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZSosIEpT
U3RhY2sqLCBKU1ZhbHVlLCBpbnQpOwogICAgIHZvaWQgbG9hZFZhcmFyZ3MoQ2FsbEZyYW1lKiwg
Q2FsbEZyYW1lKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcAkocmV2
aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3Rh
Y2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw5ICszMSwxMSBAQAogCiAjaW5j
bHVkZSAiQ29uc2VydmF0aXZlUm9vdHMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2lu
Y2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBFTkFCTEUoTExJTlRf
Q19MT09QKQogc3RhdGljIHNpemVfdCBjb21taXR0ZWRCeXRlc0NvdW50ID0gMDsKIAogc3RhdGlj
IE11dGV4JiBzdGFja1N0YXRpc3RpY3NNdXRleCgpCkBAIC00MSw4NyArNDMsOTggQEAgc3RhdGlj
IE11dGV4JiBzdGFja1N0YXRpc3RpY3NNdXRleCgpCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChN
dXRleCwgc3RhdGljTXV0ZXgsICgpKTsKICAgICByZXR1cm4gc3RhdGljTXV0ZXg7CiB9ICAgIAor
I2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKLUpTU3RhY2s6OkpTU3RhY2soVk0mIHZt
LCBzaXplX3QgY2FwYWNpdHkpCitKU1N0YWNrOjpKU1N0YWNrKFZNJiB2bSkKICAgICA6IG1fdm0o
dm0pCi0gICAgLCBtX2VuZCgwKQogICAgICwgbV90b3BDYWxsRnJhbWUodm0udG9wQ2FsbEZyYW1l
KQorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgLCBtX2VuZCgwKQorICAgICwgbV9yZXNl
cnZlZFpvbmVTaXplSW5SZWdpc3RlcnMoMCkKKyNlbmRpZgogeworI2lmIEVOQUJMRShMTElOVF9D
X0xPT1ApCisgICAgc2l6ZV90IGNhcGFjaXR5ID0gT3B0aW9uczo6bWF4UGVyVGhyZWFkU3RhY2tV
c2FnZSgpOwogICAgIEFTU0VSVChjYXBhY2l0eSAmJiBpc1BhZ2VBbGlnbmVkKGNhcGFjaXR5KSk7
CiAKLSAgICBtX3Jlc2VydmF0aW9uID0gUGFnZVJlc2VydmF0aW9uOjpyZXNlcnZlKHJvdW5kVXBB
bGxvY2F0aW9uU2l6ZShjYXBhY2l0eSAqIHNpemVvZihSZWdpc3RlciksIGNvbW1pdFNpemUpLCBP
U0FsbG9jYXRvcjo6SlNWTVN0YWNrUGFnZXMpOwotICAgIHVwZGF0ZVN0YWNrTGltaXQoaGlnaEFk
ZHJlc3MoKSk7Ci0gICAgbV9jb21taXRFbmQgPSBoaWdoQWRkcmVzcygpOworICAgIG1fcmVzZXJ2
YXRpb24gPSBQYWdlUmVzZXJ2YXRpb246OnJlc2VydmUoV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9m
KGNvbW1pdFNpemUsIGNhcGFjaXR5KSwgT1NBbGxvY2F0b3I6OkpTVk1TdGFja1BhZ2VzKTsKKyAg
ICBzZXRTdGFja0xpbWl0KGhpZ2hBZGRyZXNzKCkpOworICAgIG1fY29tbWl0VG9wID0gaGlnaEFk
ZHJlc3MoKTsKICAgICAKLSAgICBtX2xhc3RTdGFja1RvcCA9IGdldEJhc2VPZlN0YWNrKCk7Ci0K
LSAgICBkaXNhYmxlRXJyb3JTdGFja1Jlc2VydmUoKTsKKyAgICBtX2xhc3RTdGFja1RvcCA9IGJh
c2VPZlN0YWNrKCk7CisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogICAgIG1fdG9w
Q2FsbEZyYW1lID0gMDsKIH0KIAorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiBKU1N0YWNrOjp+
SlNTdGFjaygpCiB7Ci0gICAgdm9pZCogaGlnaEFkZHJlc3MgPSByZWludGVycHJldF9jYXN0PHZv
aWQqPihzdGF0aWNfY2FzdDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpICsgbV9yZXNlcnZh
dGlvbi5zaXplKCkpOwotICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQocmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4obV9jb21taXRFbmQpLCByZWludGVycHJldF9jYXN0PGludHB0cl90PihoaWdoQWRk
cmVzcykgLSByZWludGVycHJldF9jYXN0PGludHB0cl90PihtX2NvbW1pdEVuZCkpOwotICAgIGFk
ZFRvQ29tbWl0dGVkQnl0ZUNvdW50KC0ocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oaGlnaEFk
ZHJlc3MpIC0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4obV9jb21taXRFbmQpKSk7CisgICAg
cHRyZGlmZl90IHNpemVUb0RlY29tbWl0ID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaGlnaEFk
ZHJlc3MoKSkgLSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdFRvcCk7CisgICAgbV9y
ZXNlcnZhdGlvbi5kZWNvbW1pdChyZWludGVycHJldF9jYXN0PHZvaWQqPihtX2NvbW1pdFRvcCks
IHNpemVUb0RlY29tbWl0KTsKKyAgICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudCgtc2l6ZVRvRGVj
b21taXQpOwogICAgIG1fcmVzZXJ2YXRpb24uZGVhbGxvY2F0ZSgpOwogfQogCi1ib29sIEpTU3Rh
Y2s6Omdyb3dTbG93Q2FzZShSZWdpc3RlciogbmV3RW5kKQorYm9vbCBKU1N0YWNrOjpncm93U2xv
d0Nhc2UoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7CisgICAgUmVnaXN0ZXIqIG5ld1RvcE9m
U3RhY2tXaXRoUmVzZXJ2ZWRab25lID0gbmV3VG9wT2ZTdGFjayAtIG1fcmVzZXJ2ZWRab25lU2l6
ZUluUmVnaXN0ZXJzOworCiAgICAgLy8gSWYgd2UgaGF2ZSBhbHJlYWR5IGNvbW1pdHRlZCBlbm91
Z2ggbWVtb3J5IHRvIHNhdGlzZnkgdGhpcyByZXF1ZXN0LAogICAgIC8vIGp1c3QgdXBkYXRlIHRo
ZSBlbmQgcG9pbnRlciBhbmQgcmV0dXJuLgotICAgIGlmIChuZXdFbmQgPj0gbV9jb21taXRFbmQp
IHsKLSAgICAgICAgdXBkYXRlU3RhY2tMaW1pdChuZXdFbmQpOworICAgIGlmIChuZXdUb3BPZlN0
YWNrV2l0aFJlc2VydmVkWm9uZSA+PSBtX2NvbW1pdFRvcCkgeworICAgICAgICBzZXRTdGFja0xp
bWl0KG5ld1RvcE9mU3RhY2spOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICAv
LyBDb21wdXRlIHRoZSBjaHVuayBzaXplIG9mIGFkZGl0aW9uYWwgbWVtb3J5IHRvIGNvbW1pdCwg
YW5kIHNlZSBpZiB3ZQogICAgIC8vIGhhdmUgaXQgaXMgc3RpbGwgd2l0aGluIG91ciBidWRnZXQu
IElmIG5vdCwgd2UnbGwgZmFpbCB0byBncm93IGFuZAogICAgIC8vIHJldHVybiBmYWxzZS4KLSAg
ICBsb25nIGRlbHRhID0gcm91bmRVcEFsbG9jYXRpb25TaXplKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KG1fY29tbWl0RW5kKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG5ld0VuZCksIGNvbW1p
dFNpemUpOwotICAgIGlmIChyZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVuZCkgLSBk
ZWx0YSA8PSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX3VzZWFibGVFbmQpKQorICAgIHB0cmRp
ZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0VG9wKSAtIHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KG5ld1RvcE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lKTsKKyAgICBk
ZWx0YSA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihjb21taXRTaXplLCBkZWx0YSk7CisgICAg
UmVnaXN0ZXIqIG5ld0NvbW1pdFRvcCA9IG1fY29tbWl0VG9wIC0gKGRlbHRhIC8gc2l6ZW9mKFJl
Z2lzdGVyKSk7CisgICAgaWYgKG5ld0NvbW1pdFRvcCA8IHJlc2VydmF0aW9uVG9wKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIE90aGVyd2lzZSwgdGhlIGdyb3d0aCBpcyBzdGls
bCB3aXRoaW4gb3VyIGJ1ZGdldC4gR28gYWhlYWQgYW5kIGNvbW1pdAogICAgIC8vIGl0IGFuZCBy
ZXR1cm4gdHJ1ZS4KLSAgICBtX3Jlc2VydmF0aW9uLmNvbW1pdChyZWludGVycHJldF9jYXN0PGNo
YXIqPihtX2NvbW1pdEVuZCkgLSBkZWx0YSwgZGVsdGEpOworICAgIG1fcmVzZXJ2YXRpb24uY29t
bWl0KG5ld0NvbW1pdFRvcCwgZGVsdGEpOwogICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGRl
bHRhKTsKLSAgICBtX2NvbW1pdEVuZCA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4o
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpIC0gZGVsdGEpOwotICAgIHVwZGF0
ZVN0YWNrTGltaXQobmV3RW5kKTsKKyAgICBtX2NvbW1pdFRvcCA9IG5ld0NvbW1pdFRvcDsKKyAg
ICBzZXRTdGFja0xpbWl0KG5ld1RvcE9mU3RhY2spOwogICAgIHJldHVybiB0cnVlOwogfQogCiB2
b2lkIEpTU3RhY2s6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBj
b25zZXJ2YXRpdmVSb290cykKIHsKLSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoZ2V0QmFzZU9m
U3RhY2soKSwgZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQodG9w
T2ZTdGFjaygpICsgMSwgaGlnaEFkZHJlc3MoKSk7CiB9CiAKIHZvaWQgSlNTdGFjazo6Z2F0aGVy
Q29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBK
SVRTdHViUm91dGluZVNldCYgaml0U3R1YlJvdXRpbmVzLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9j
a3MpCiB7Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKGdldEJhc2VPZlN0YWNrKCksIGdldFRv
cE9mU3RhY2soKSwgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKKyAgICBjb25zZXJ2YXRp
dmVSb290cy5hZGQodG9wT2ZTdGFjaygpICsgMSwgaGlnaEFkZHJlc3MoKSwgaml0U3R1YlJvdXRp
bmVzLCBjb2RlQmxvY2tzKTsKIH0KIAogdm9pZCBKU1N0YWNrOjpzYW5pdGl6ZVN0YWNrKCkKIHsK
LSAgICBBU1NFUlQoZ2V0VG9wT2ZTdGFjaygpIDw9IGdldEJhc2VPZlN0YWNrKCkpOworICAgIEFT
U0VSVCh0b3BPZlN0YWNrKCkgPD0gYmFzZU9mU3RhY2soKSk7CiAgICAgCi0gICAgaWYgKG1fbGFz
dFN0YWNrVG9wIDwgZ2V0VG9wT2ZTdGFjaygpKSB7Ci0gICAgICAgIGNoYXIqIGJlZ2luID0gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4obV9sYXN0U3RhY2tUb3ApOwotICAgICAgICBjaGFyKiBlbmQg
PSByZWludGVycHJldF9jYXN0PGNoYXIqPihnZXRUb3BPZlN0YWNrKCkpOworICAgIGlmIChtX2xh
c3RTdGFja1RvcCA8IHRvcE9mU3RhY2soKSkgeworICAgICAgICBjaGFyKiBiZWdpbiA9IHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fbGFzdFN0YWNrVG9wICsgMSk7CisgICAgICAgIGNoYXIqIGVu
ZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRvcE9mU3RhY2soKSArIDEpOwogICAgICAgICBt
ZW1zZXQoYmVnaW4sIDAsIGVuZCAtIGJlZ2luKTsKICAgICB9CiAgICAgCi0gICAgbV9sYXN0U3Rh
Y2tUb3AgPSBnZXRUb3BPZlN0YWNrKCk7CisgICAgbV9sYXN0U3RhY2tUb3AgPSB0b3BPZlN0YWNr
KCk7CiB9CiAKIHZvaWQgSlNTdGFjazo6cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KCkKIHsKLSAgICBw
dHJkaWZmX3QgZGVsdGEgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oaGlnaEFkZHJlc3Mo
KSkgLSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9jb21taXRFbmQpOwotICAgIG1fcmVz
ZXJ2YXRpb24uZGVjb21taXQobV9jb21taXRFbmQsIGRlbHRhKTsKKyAgICBSZWdpc3RlciogaGln
aEFkZHJlc3NXaXRoUmVzZXJ2ZWRab25lID0gaGlnaEFkZHJlc3MoKSAtIG1fcmVzZXJ2ZWRab25l
U2l6ZUluUmVnaXN0ZXJzOworICAgIHB0cmRpZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KGhpZ2hBZGRyZXNzV2l0aFJlc2VydmVkWm9uZSkgLSByZWludGVycHJldF9jYXN0PGNo
YXIqPihtX2NvbW1pdFRvcCk7CisgICAgbV9yZXNlcnZhdGlvbi5kZWNvbW1pdChtX2NvbW1pdFRv
cCwgZGVsdGEpOwogICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KC1kZWx0YSk7Ci0gICAgbV9j
b21taXRFbmQgPSBoaWdoQWRkcmVzcygpOworICAgIG1fY29tbWl0VG9wID0gaGlnaEFkZHJlc3NX
aXRoUmVzZXJ2ZWRab25lOwogfQogCiB2b2lkIEpTU3RhY2s6OmluaXRpYWxpemVUaHJlYWRpbmco
KQpAQCAtMTI5LDEyICsxNDIsNiBAQCB2b2lkIEpTU3RhY2s6OmluaXRpYWxpemVUaHJlYWRpbmco
KQogICAgIHN0YWNrU3RhdGlzdGljc011dGV4KCk7CiB9CiAKLXNpemVfdCBKU1N0YWNrOjpjb21t
aXR0ZWRCeXRlQ291bnQoKQotewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihzdGFja1N0YXRpc3Rp
Y3NNdXRleCgpKTsKLSAgICByZXR1cm4gY29tbWl0dGVkQnl0ZXNDb3VudDsKLX0KLQogdm9pZCBK
U1N0YWNrOjphZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChsb25nIGJ5dGVDb3VudCkKIHsKICAgICBN
dXRleExvY2tlciBsb2NrZXIoc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKSk7CkBAIC0xNDIsMjUgKzE0
OSw0MSBAQCB2b2lkIEpTU3RhY2s6OmFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGxvCiAgICAgY29t
bWl0dGVkQnl0ZXNDb3VudCArPSBieXRlQ291bnQ7CiB9CiAKLXZvaWQgSlNTdGFjazo6ZW5hYmxl
RXJyb3JTdGFja1Jlc2VydmUoKQordm9pZCBKU1N0YWNrOjpzZXRSZXNlcnZlZFpvbmVTaXplKHNp
emVfdCByZXNlcnZlZFpvbmVTaXplKQogewotICAgIG1fdXNlYWJsZUVuZCA9IHJlc2VydmF0aW9u
RW5kKCk7CisgICAgbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnMgPSByZXNlcnZlZFpvbmVT
aXplIC8gc2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICBpZiAobV9jb21taXRUb3AgPj0gKG1fZW5kICsg
MSkgLSBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVycykKKyAgICAgICAgZ3Jvd1Nsb3dDYXNl
KG1fZW5kICsgMSk7CiB9CisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAotdm9pZCBK
U1N0YWNrOjpkaXNhYmxlRXJyb3JTdGFja1Jlc2VydmUoKQorI2lmICFFTkFCTEUoTExJTlRfQ19M
T09QKQorUmVnaXN0ZXIqIEpTU3RhY2s6Omxvd0FkZHJlc3MoKSBjb25zdAogewotICAgIGNoYXIq
IHVzZWFibGVFbmQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihyZXNlcnZhdGlvbkVuZCgpKSAr
IGNvbW1pdFNpemU7Ci0gICAgbV91c2VhYmxlRW5kID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8UmVn
aXN0ZXIqPih1c2VhYmxlRW5kKTsKKyAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCku
aXNHcm93aW5nRG93bndhcmQoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmVnaXN0
ZXIqPihtX3ZtLnN0YWNrTGltaXQoKSk7Cit9CiAKLSAgICAvLyBCeSB0aGUgdGltZSB3ZSBnZXQg
aGVyZSwgd2UgYXJlIGd1YXJhbnRlZWQgdG8gYmUgZGVzdHJ1Y3RpbmcgdGhlIGxhc3QKLSAgICAv
LyBJbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGUgdGhhdCBlbmFibGVkIHRoaXMgcmVzZXJ2
ZSBpbiB0aGUgZmlyc3QKLSAgICAvLyBwbGFjZS4gVGhhdCBtZWFucyB0aGUgc3RhY2sgc3BhY2Ug
YmV5b25kIG1fdXNlYWJsZUVuZCBiZWZvcmUgd2UKLSAgICAvLyBlbmFibGVkIHRoZSByZXNlcnZl
IHdhcyBub3QgcHJldmlvdXNseSBpbiB1c2UuIEhlbmNlLCBpdCBpcyBzYWZlIHRvCi0gICAgLy8g
c2hyaW5rIGJhY2sgdG8gdGhhdCBtX3VzZWFibGVFbmQuCi0gICAgaWYgKG1fZW5kIDwgbV91c2Vh
YmxlRW5kKSB7Ci0gICAgICAgIEFTU0VSVChtX3RvcENhbGxGcmFtZS0+ZnJhbWVFeHRlbnQoKSA+
PSBtX3VzZWFibGVFbmQpOwotICAgICAgICBzaHJpbmsobV91c2VhYmxlRW5kKTsKLSAgICB9CitS
ZWdpc3RlciogSlNTdGFjazo6aGlnaEFkZHJlc3MoKSBjb25zdAoreworICAgIEFTU0VSVCh3dGZU
aHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKKyAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxSZWdpc3Rlcio+KHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLm9yaWdpbigp
KTsKK30KKyNlbmRpZiAvLyAhRU5BQkxFKExMSU5UX0NfTE9PUCkKKworc2l6ZV90IEpTU3RhY2s6
OmNvbW1pdHRlZEJ5dGVDb3VudCgpCit7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBN
dXRleExvY2tlciBsb2NrZXIoc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKSk7CisgICAgcmV0dXJuIGNv
bW1pdHRlZEJ5dGVzQ291bnQ7CisjZWxzZQorICAgIC8vIFdoZW4gdXNpbmcgdGhlIEMgc3RhY2ss
IHdlIGRvbid0IGtub3cgaG93IG1hbnkgc3RhY2sgcGFnZXMgYXJlIGFjdHVhbGx5CisgICAgLy8g
Y29tbWl0dGVkLiBTbywgd2UgdXNlIHRoZSBjdXJyZW50IHN0YWNrIHVzYWdlIGFzIGFuIGVzdGlt
YXRlLgorICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2Fy
ZCgpKTsKKyAgICBpbnQ4X3QqIGN1cnJlbnQgPSByZWludGVycHJldF9jYXN0PGludDhfdCo+KCZj
dXJyZW50KTsKKyAgICBpbnQ4X3QqIGhpZ2ggPSByZWludGVycHJldF9jYXN0PGludDhfdCo+KHd0
ZlRocmVhZERhdGEoKS5zdGFjaygpLm9yaWdpbigpKTsKKyAgICByZXR1cm4gaGlnaCAtIGN1cnJl
bnQ7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAw
OSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDExICszNSw2IEBACiAjaW5jbHVkZSA8d3RmL1Bh
Z2VSZXNlcnZhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9WTVRhZ3MuaD4KIAotI2RlZmluZSBFTkFC
TEVfREVCVUdfSlNTVEFDSyAwCi0jaWYgIWRlZmluZWQoTkRFQlVHKSAmJiAhZGVmaW5lZChFTkFC
TEVfREVCVUdfSlNTVEFDSykKLSNkZWZpbmUgRU5BQkxFX0RFQlVHX0pTU1RBQ0sgMQotI2VuZGlm
Ci0KIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgQ29kZUJsb2NrU2V0OwpAQCAtNjEsNyAr
NTYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNT
dGFjayk7CiAgICAgcHVibGljOgogICAgICAgICBlbnVtIENhbGxGcmFtZUhlYWRlckVudHJ5IHsK
LSAgICAgICAgICAgIENvZGVCbG9jayA9IHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSAvIHNpemVv
ZihSZWdpc3RlciksCisgICAgICAgICAgICBDYWxsZXJGcmFtZUFuZFBDU2l6ZSA9IHNpemVvZihD
YWxsZXJGcmFtZUFuZFBDKSAvIHNpemVvZihSZWdpc3RlciksCisgICAgICAgICAgICBDb2RlQmxv
Y2sgPSBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwKICAgICAgICAgICAgIFNjb3BlQ2hhaW4sCiAgICAg
ICAgICAgICBDYWxsZWUsCiAgICAgICAgICAgICBBcmd1bWVudENvdW50LApAQCAtNzIsOTIgKzY4
LDg3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgRmlyc3RBcmd1bWVudCwKICAgICAg
ICAgfTsKIAotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGRlZmF1bHRDYXBhY2l0eSA9IDUx
MiAqIDEwMjQ7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgY29tbWl0U2l6ZSA9IDE2ICog
MTAyNDsKICAgICAgICAgLy8gQWxsb3cgOGsgb2YgZXhjZXNzIHJlZ2lzdGVycyBiZWZvcmUgd2Ug
c3RhcnQgdHJ5aW5nIHRvIHJlYXAgdGhlIHN0YWNrCiAgICAgICAgIHN0YXRpYyBjb25zdCBwdHJk
aWZmX3QgbWF4RXhjZXNzQ2FwYWNpdHkgPSA4ICogMTAyNDsKIAotICAgICAgICBKU1N0YWNrKFZN
Jiwgc2l6ZV90IGNhcGFjaXR5ID0gZGVmYXVsdENhcGFjaXR5KTsKLSAgICAgICAgfkpTU3RhY2so
KTsKKyAgICAgICAgSlNTdGFjayhWTSYpOwogICAgICAgICAKKyAgICAgICAgYm9vbCBlbnN1cmVD
YXBhY2l0eUZvcihSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CisKKyAgICAgICAgYm9vbCBjb250
YWluc0FkZHJlc3MoUmVnaXN0ZXIqIGFkZHJlc3MpIHsgcmV0dXJuIChsb3dBZGRyZXNzKCkgPD0g
YWRkcmVzcyAmJiBhZGRyZXNzIDwgaGlnaEFkZHJlc3MoKSk7IH0KKyAgICAgICAgc3RhdGljIHNp
emVfdCBjb21taXR0ZWRCeXRlQ291bnQoKTsKKworI2lmICFFTkFCTEUoTExJTlRfQ19MT09QKQor
ICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJikg
eyB9CisgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9v
dHMmLCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYpIHsgfQorICAgICAgICB2b2lk
IHNhbml0aXplU3RhY2soKSB7IH0KKyAgICAgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVRocmVh
ZGluZygpIHsgfQorI2Vsc2UKKyAgICAgICAgfkpTU3RhY2soKTsKKwogICAgICAgICB2b2lkIGdh
dGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJik7CiAgICAgICAgIHZvaWQg
Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmLCBKSVRTdHViUm91dGlu
ZVNldCYsIENvZGVCbG9ja1NldCYpOwogICAgICAgICB2b2lkIHNhbml0aXplU3RhY2soKTsKIAot
ICAgICAgICBSZWdpc3RlciogZ2V0QmFzZU9mU3RhY2soKSBjb25zdAorICAgICAgICBSZWdpc3Rl
ciogYmFzZU9mU3RhY2soKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gaGln
aEFkZHJlc3MoKSAtIDE7CiAgICAgICAgIH0KIAogICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIGhpZ2hBZGRyZXNzKCkgLSBsb3dBZGRyZXNzKCk7IH0KIAotICAgICAgICBib29s
IGdyb3coUmVnaXN0ZXIqKTsKLSAgICAgICAgCi0gICAgICAgIHN0YXRpYyBzaXplX3QgY29tbWl0
dGVkQnl0ZUNvdW50KCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmco
KTsKIAotICAgICAgICBSZWdpc3RlciogZ2V0VG9wT2ZGcmFtZShDYWxsRnJhbWUqKTsKLSAgICAg
ICAgUmVnaXN0ZXIqIGdldFN0YXJ0T2ZGcmFtZShDYWxsRnJhbWUqKTsKLSAgICAgICAgUmVnaXN0
ZXIqIGdldFRvcE9mU3RhY2soKTsKLQotICAgICAgICBib29sIGVudHJ5Q2hlY2soY2xhc3MgQ29k
ZUJsb2NrKiwgaW50KTsKKyAgICAgICAgdm9pZCBzZXRSZXNlcnZlZFpvbmVTaXplKHNpemVfdCk7
CiAKLSAgICAgICAgQ2FsbEZyYW1lKiBwdXNoRnJhbWUoY2xhc3MgQ29kZUJsb2NrKiwgSlNTY29w
ZSosIGludCBhcmdzQ291bnQsIEpTT2JqZWN0KiBjYWxsZWUpOwotCi0gICAgICAgIHZvaWQgcG9w
RnJhbWUoQ2FsbEZyYW1lKik7Ci0KLSAgICAgICAgYm9vbCBjb250YWluc0FkZHJlc3MoUmVnaXN0
ZXIqIGFkZHJlc3MpIHsgcmV0dXJuIChsb3dBZGRyZXNzKCkgPD0gYWRkcmVzcyAmJiBhZGRyZXNz
IDw9IGhpZ2hBZGRyZXNzKCkpOyB9Ci0KLSAgICAgICAgdm9pZCBlbmFibGVFcnJvclN0YWNrUmVz
ZXJ2ZSgpOwotICAgICAgICB2b2lkIGRpc2FibGVFcnJvclN0YWNrUmVzZXJ2ZSgpOwotCi0jaWYg
RU5BQkxFKERFQlVHX0pTU1RBQ0spCi0gICAgICAgIHZvaWQgaW5zdGFsbEZlbmNlKENhbGxGcmFt
ZSosIGNvbnN0IGNoYXIgKmZ1bmN0aW9uID0gIiIsIGludCBsaW5lTm8gPSAwKTsKLSAgICAgICAg
dm9pZCB2YWxpZGF0ZUZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIgKmZ1bmN0aW9uID0gIiIs
IGludCBsaW5lTm8gPSAwKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBGZW5jZVNpemUgPSA0
OwotI2Vsc2UgLy8gIUVOQUJMRShERUJVR19KU1NUQUNLKQotICAgICAgICB2b2lkIGluc3RhbGxG
ZW5jZShDYWxsRnJhbWUqLCBjb25zdCBjaGFyKiA9ICIiLCBpbnQgPSAwKSB7IH0KLSAgICAgICAg
dm9pZCB2YWxpZGF0ZUZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIqID0gIiIsIGludCA9IDAp
IHsgfQotI2VuZGlmIC8vICFFTkFCTEUoREVCVUdfSlNTVEFDSykKKyAgICAgICAgaW5saW5lIFJl
Z2lzdGVyKiB0b3BPZlN0YWNrKCk7CisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAog
ICAgIHByaXZhdGU6CisKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICAgICBSZWdpc3Rl
ciogbG93QWRkcmVzcygpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX2Vu
ZDsKKyAgICAgICAgICAgIHJldHVybiBtX2VuZCArIDE7CiAgICAgICAgIH0KIAogICAgICAgICBS
ZWdpc3RlciogaGlnaEFkZHJlc3MoKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0ZXIqPihzdGF0aWNfY2FzdDxjaGFyKj4obV9y
ZXNlcnZhdGlvbi5iYXNlKCkpICsgbV9yZXNlcnZhdGlvbi5zaXplKCkpOwogICAgICAgICB9Cisj
ZWxzZQorICAgICAgICBSZWdpc3RlciogbG93QWRkcmVzcygpIGNvbnN0OworICAgICAgICBSZWdp
c3RlciogaGlnaEFkZHJlc3MoKSBjb25zdDsKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09Q
KQogCi0gICAgICAgIFJlZ2lzdGVyKiByZXNlcnZhdGlvbkVuZCgpIGNvbnN0CisjaWYgRU5BQkxF
KExMSU5UX0NfTE9PUCkKKyAgICAgICAgaW5saW5lIFJlZ2lzdGVyKiB0b3BPZkZyYW1lRm9yKENh
bGxGcmFtZSopOworCisgICAgICAgIFJlZ2lzdGVyKiByZXNlcnZhdGlvblRvcCgpIGNvbnN0CiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGNoYXIqIHJlc2VydmF0aW9uRW5kID0gc3RhdGljX2Nhc3Q8
Y2hhcio+KG1fcmVzZXJ2YXRpb24uYmFzZSgpKTsKLSAgICAgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHJlc2VydmF0aW9uRW5kKTsKKyAgICAgICAgICAgIGNo
YXIqIHJlc2VydmF0aW9uVG9wID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1fcmVzZXJ2YXRpb24uYmFz
ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+
KHJlc2VydmF0aW9uVG9wKTsKICAgICAgICAgfQogCi0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0sp
Ci0gICAgICAgIHN0YXRpYyBKU1ZhbHVlIGdlbmVyYXRlRmVuY2VWYWx1ZShzaXplX3QgYXJnSW5k
ZXgpOwotICAgICAgICB2b2lkIGluc3RhbGxUcmFwc0FmdGVyRnJhbWUoQ2FsbEZyYW1lKik7Ci0j
ZWxzZQotICAgICAgICB2b2lkIGluc3RhbGxUcmFwc0FmdGVyRnJhbWUoQ2FsbEZyYW1lKikgeyB9
Ci0jZW5kaWYKLQotICAgICAgICBib29sIGdyb3dTbG93Q2FzZShSZWdpc3RlciopOwotICAgICAg
ICB2b2lkIHNocmluayhSZWdpc3RlciopOworICAgICAgICBib29sIGdyb3coUmVnaXN0ZXIqIG5l
d1RvcE9mU3RhY2spOworICAgICAgICBib29sIGdyb3dTbG93Q2FzZShSZWdpc3RlciogbmV3VG9w
T2ZTdGFjayk7CisgICAgICAgIHZvaWQgc2hyaW5rKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKTsK
ICAgICAgICAgdm9pZCByZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKTsKICAgICAgICAgdm9pZCBhZGRU
b0NvbW1pdHRlZEJ5dGVDb3VudChsb25nKTsKIAotICAgICAgICB2b2lkIHVwZGF0ZVN0YWNrTGlt
aXQoUmVnaXN0ZXIqIG5ld0VuZCk7CisgICAgICAgIHZvaWQgc2V0U3RhY2tMaW1pdChSZWdpc3Rl
ciogbmV3VG9wT2ZTdGFjayk7CisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogICAg
ICAgICBWTSYgbV92bTsKKyAgICAgICAgQ2FsbEZyYW1lKiYgbV90b3BDYWxsRnJhbWU7CisjaWYg
RU5BQkxFKExMSU5UX0NfTE9PUCkKICAgICAgICAgUmVnaXN0ZXIqIG1fZW5kOwotICAgICAgICBS
ZWdpc3RlciogbV9jb21taXRFbmQ7Ci0gICAgICAgIFJlZ2lzdGVyKiBtX3VzZWFibGVFbmQ7Cisg
ICAgICAgIFJlZ2lzdGVyKiBtX2NvbW1pdFRvcDsKICAgICAgICAgUGFnZVJlc2VydmF0aW9uIG1f
cmVzZXJ2YXRpb247Ci0gICAgICAgIENhbGxGcmFtZSomIG1fdG9wQ2FsbEZyYW1lOwogICAgICAg
ICBSZWdpc3RlciogbV9sYXN0U3RhY2tUb3A7CisgICAgICAgIHB0cmRpZmZfdCBtX3Jlc2VydmVk
Wm9uZVNpemVJblJlZ2lzdGVyczsKKyNlbmRpZiAvLyBFTkFCTEUoTExJTlRfQ19MT09QKQogCiAg
ICAgICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAgICAgfTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrSW5saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrSW5saW5l
cy5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSlNTdGFja0lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMjYyICsz
Myw2NSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotaW5saW5lIFJlZ2lzdGVyKiBKU1N0YWNrOjpn
ZXRUb3BPZkZyYW1lKENhbGxGcmFtZSogZnJhbWUpCitpbmxpbmUgYm9vbCBKU1N0YWNrOjplbnN1
cmVDYXBhY2l0eUZvcihSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKIHsKLSAgICBpZiAoVU5MSUtF
TFkoIWZyYW1lKSkKLSAgICAgICAgcmV0dXJuIGdldEJhc2VPZlN0YWNrKCk7Ci0gICAgcmV0dXJu
IGZyYW1lLT5mcmFtZUV4dGVudCgpOwotfQotCi1pbmxpbmUgUmVnaXN0ZXIqIEpTU3RhY2s6Omdl
dFRvcE9mU3RhY2soKQotewotICAgIHJldHVybiBnZXRUb3BPZkZyYW1lKG1fdG9wQ2FsbEZyYW1l
KTsKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIHJldHVybiBncm93KG5ld1RvcE9mU3Rh
Y2spOworI2Vsc2UKKyAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5n
RG93bndhcmQoKSk7CisgICAgcmV0dXJuIG5ld1RvcE9mU3RhY2sgPj0gbV92bS5zdGFja0xpbWl0
KCk7CisjZW5kaWYKIH0KIAotaW5saW5lIFJlZ2lzdGVyKiBKU1N0YWNrOjpnZXRTdGFydE9mRnJh
bWUoQ2FsbEZyYW1lKiBmcmFtZSkKLXsKLSAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gZnJh
bWUtPmNhbGxlckZyYW1lU2tpcHBpbmdWTUVudHJ5U2VudGluZWwoKTsKLSAgICByZXR1cm4gZ2V0
VG9wT2ZGcmFtZShjYWxsZXJGcmFtZSk7Ci19CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKIAot
aW5saW5lIGJvb2wgSlNTdGFjazo6ZW50cnlDaGVjayhjbGFzcyBDb2RlQmxvY2sqIGNvZGVCbG9j
aywgaW50IGFyZ3NDb3VudCkKK2lubGluZSBSZWdpc3RlciogSlNTdGFjazo6dG9wT2ZGcmFtZUZv
cihDYWxsRnJhbWUqIGZyYW1lKQogewotICAgIFJlZ2lzdGVyKiBvbGRFbmQgPSBnZXRUb3BPZlN0
YWNrKCk7Ci0KLSAgICAvLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBzcGFjZSBmb3IgdGhl
IHBhcmFtZXRlcnM6Ci0gICAgc2l6ZV90IHBhZGRlZEFyZ3NDb3VudCA9IGFyZ3NDb3VudDsKLSAg
ICBpZiAoY29kZUJsb2NrKSB7Ci0gICAgICAgIHNpemVfdCBudW1QYXJhbWV0ZXJzID0gY29kZUJs
b2NrLT5udW1QYXJhbWV0ZXJzKCk7Ci0gICAgICAgIGlmIChwYWRkZWRBcmdzQ291bnQgPCBudW1Q
YXJhbWV0ZXJzKQotICAgICAgICAgICAgcGFkZGVkQXJnc0NvdW50ID0gbnVtUGFyYW1ldGVyczsK
LSAgICB9Ci0KLSAgICBSZWdpc3RlciogbmV3Q2FsbEZyYW1lU2xvdCA9IG9sZEVuZCAtIHBhZGRl
ZEFyZ3NDb3VudCAtICgyICogSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSkgKyAxOwotCi0j
aWYgRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0gICAgbmV3Q2FsbEZyYW1lU2xvdCAtPSBKU1N0YWNr
OjpGZW5jZVNpemU7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBpZiAoVU5MSUtFTFko
IWZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGJhc2VPZlN0YWNrKCk7CiAjZW5kaWYKLQotICAgIFJl
Z2lzdGVyKiBuZXdFbmQgPSBuZXdDYWxsRnJhbWVTbG90OwotICAgIGlmICghIWNvZGVCbG9jaykK
LSAgICAgICAgbmV3RW5kICs9IHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+ZnJh
bWVSZWdpc3RlckNvdW50KCkpLm9mZnNldCgpOwotCi0gICAgLy8gRW5zdXJlIHRoYXQgd2UgaGF2
ZSB0aGUgbmVlZGVkIHN0YWNrIGNhcGFjaXR5IHRvIHB1c2ggdGhlIG5ldyBmcmFtZToKLSAgICBp
ZiAoIWdyb3cobmV3RW5kKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIGZyYW1lLT50b3BPZkZyYW1lKCkgLSAxOwogfQogCi1pbmxpbmUgQ2Fs
bEZyYW1lKiBKU1N0YWNrOjpwdXNoRnJhbWUoY2xhc3MgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpT
U2NvcGUqIHNjb3BlLCBpbnQgYXJnc0NvdW50LCBKU09iamVjdCogY2FsbGVlKQoraW5saW5lIFJl
Z2lzdGVyKiBKU1N0YWNrOjp0b3BPZlN0YWNrKCkKIHsKLSAgICBBU1NFUlQoISFzY29wZSk7Ci0g
ICAgUmVnaXN0ZXIqIG9sZEVuZCA9IGdldFRvcE9mU3RhY2soKTsKLQotICAgIC8vIEVuc3VyZSB0
aGF0IHdlIGhhdmUgZW5vdWdoIHNwYWNlIGZvciB0aGUgcGFyYW1ldGVyczoKLSAgICBzaXplX3Qg
cGFkZGVkQXJnc0NvdW50ID0gYXJnc0NvdW50OwotICAgIGlmIChjb2RlQmxvY2spIHsKLSAgICAg
ICAgc2l6ZV90IG51bVBhcmFtZXRlcnMgPSBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKTsKLSAg
ICAgICAgaWYgKHBhZGRlZEFyZ3NDb3VudCA8IG51bVBhcmFtZXRlcnMpCi0gICAgICAgICAgICBw
YWRkZWRBcmdzQ291bnQgPSBudW1QYXJhbWV0ZXJzOwotICAgIH0KLQotICAgIFJlZ2lzdGVyKiBu
ZXdDYWxsRnJhbWVTbG90ID0gb2xkRW5kIC0gcGFkZGVkQXJnc0NvdW50IC0gKDIgKiBKU1N0YWNr
OjpDYWxsRnJhbWVIZWFkZXJTaXplKSArIDE7Ci0KLSNpZiBFTkFCTEUoREVCVUdfSlNTVEFDSykK
LSAgICBuZXdDYWxsRnJhbWVTbG90IC09IEpTU3RhY2s6OkZlbmNlU2l6ZTsKLSNlbmRpZgotCi0g
ICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG5ld0NhbGxGcmFtZVNsb3Q7Ci0gICAgaWYgKCEhY29kZUJs
b2NrKQotICAgICAgICBuZXdFbmQgKz0gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29kZUJsb2Nr
LT5mcmFtZVJlZ2lzdGVyQ291bnQoKSkub2Zmc2V0KCk7Ci0KLSAgICAvLyBFbnN1cmUgdGhhdCB3
ZSBoYXZlIHRoZSBuZWVkZWQgc3RhY2sgY2FwYWNpdHkgdG8gcHVzaCB0aGUgbmV3IGZyYW1lOgot
ICAgIGlmICghZ3JvdyhuZXdFbmQpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIC8vIENvbXB1
dGUgdGhlIGFkZHJlc3Mgb2YgdGhlIG5ldyBWTSBzZW50aW5lbCBmcmFtZSBmb3IgdGhpcyBpbnZv
Y2F0aW9uOgotICAgIENhbGxGcmFtZSogbmV3Vk1FbnRyeVNlbnRpbmVsRnJhbWUgPSBDYWxsRnJh
bWU6OmNyZWF0ZShuZXdDYWxsRnJhbWVTbG90ICsgcGFkZGVkQXJnc0NvdW50ICsgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSk7Ci0gICAgQVNTRVJUKCEhbmV3Vk1FbnRyeVNlbnRpbmVsRnJh
bWUpOwotCi0gICAgLy8gQ29tcHV0ZSB0aGUgYWRkcmVzcyBvZiB0aGUgbmV3IGZyYW1lIGZvciB0
aGlzIGludm9jYXRpb246Ci0gICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6
OmNyZWF0ZShuZXdDYWxsRnJhbWVTbG90KTsKLSAgICBBU1NFUlQoISFuZXdDYWxsRnJhbWUpOwot
Ci0gICAgLy8gVGhlIGNhbGxlciBmcmFtZSBzaG91bGQgYWx3YXlzIGJlIHRoZSByZWFsIHByZXZp
b3VzIGZyYW1lIG9uIHRoZSBzdGFjaywKLSAgICAvLyBhbmQgbm90IGEgcG90ZW50aWFsIEdsb2Jh
bEV4ZWMgdGhhdCB3YXMgcGFzc2VkIGluLiBQb2ludCBjYWxsZXJGcmFtZSB0bwotICAgIC8vIHRo
ZSB0b3AgZnJhbWUgb24gdGhlIHN0YWNrLgotICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBt
X3RvcENhbGxGcmFtZTsKLQotICAgIC8vIEluaXRpYWxpemUgdGhlIFZNIHNlbnRpbmVsIGZyYW1l
IGhlYWRlcjoKLSAgICBuZXdWTUVudHJ5U2VudGluZWxGcmFtZS0+aW5pdGlhbGl6ZVZNRW50cnlT
ZW50aW5lbEZyYW1lKGNhbGxlckZyYW1lKTsKLQotICAgIC8vIEluaXRpYWxpemUgdGhlIGNhbGxl
ZSBmcmFtZSBoZWFkZXI6Ci0gICAgbmV3Q2FsbEZyYW1lLT5pbml0KGNvZGVCbG9jaywgMCwgc2Nv
cGUsIG5ld1ZNRW50cnlTZW50aW5lbEZyYW1lLCBhcmdzQ291bnQsIGNhbGxlZSk7Ci0KLSAgICBB
U1NFUlQoISFuZXdDYWxsRnJhbWUtPnNjb3BlKCkpOwotCi0gICAgLy8gUGFkIGFkZGl0aW9uYWwg
YXJncyBpZiBuZWVkZWQ6Ci0gICAgLy8gTm90ZTogd2UgbmVlZCB0byBzdWJ0cmFjdCAxIGZyb20g
YXJnc0NvdW50IGFuZCBwYWRkZWRBcmdzQ291bnQgdG8KLSAgICAvLyBleGNsdWRlIHRoZSB0aGlz
IHBvaW50ZXIuCi0gICAgZm9yIChzaXplX3QgaSA9IGFyZ3NDb3VudC0xOyBpIDwgcGFkZGVkQXJn
c0NvdW50LTE7ICsraSkKLSAgICAgICAgbmV3Q2FsbEZyYW1lLT5zZXRBcmd1bWVudChpLCBqc1Vu
ZGVmaW5lZCgpKTsKLQotICAgIGluc3RhbGxGZW5jZShuZXdDYWxsRnJhbWUsIF9fRlVOQ1RJT05f
XywgX19MSU5FX18pOwotICAgIHZhbGlkYXRlRmVuY2UobmV3Q2FsbEZyYW1lLCBfX0ZVTkNUSU9O
X18sIF9fTElORV9fKTsKLSAgICBpbnN0YWxsVHJhcHNBZnRlckZyYW1lKG5ld0NhbGxGcmFtZSk7
Ci0KLSAgICAvLyBQdXNoIHRoZSBuZXcgZnJhbWU6Ci0gICAgbV90b3BDYWxsRnJhbWUgPSBuZXdD
YWxsRnJhbWU7Ci0KLSAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwotfQotCi1pbmxpbmUgdm9pZCBK
U1N0YWNrOjpwb3BGcmFtZShDYWxsRnJhbWUqIGZyYW1lKQotewotICAgIHZhbGlkYXRlRmVuY2Uo
ZnJhbWUsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwotCi0gICAgLy8gUG9wIG9mZiB0aGUgY2Fs
bGVlIGZyYW1lIGFuZCB0aGUgc2VudGluZWwgZnJhbWUuCi0gICAgQ2FsbEZyYW1lKiBjYWxsZXJG
cmFtZSA9IGZyYW1lLT5jYWxsZXJGcmFtZSgpLT52bUVudHJ5U2VudGluZWxDYWxsZXJGcmFtZSgp
OwotCi0gICAgLy8gUG9wIHRvIHRoZSBjYWxsZXI6Ci0gICAgbV90b3BDYWxsRnJhbWUgPSBjYWxs
ZXJGcmFtZTsKLQotICAgIC8vIElmIHdlIGFyZSBwb3BwaW5nIHRoZSB2ZXJ5IGZpcnN0IGZyYW1l
IGZyb20gdGhlIHN0YWNrIGkuZS4gbm8gbW9yZQotICAgIC8vIGZyYW1lcyBiZWZvcmUgdGhpcywg
dGhlbiB3ZSBjYW4gbm93IHNhZmVseSBzaHJpbmsgdGhlIHN0YWNrLiBJbgotICAgIC8vIHRoaXMg
Y2FzZSwgd2UncmUgc2hyaW5raW5nIGFsbCB0aGUgd2F5IHRvIHRoZSBiZWdpbm5pbmcgc2luY2Ug
dGhlcmUKLSAgICAvLyBhcmUgbm8gbW9yZSBmcmFtZXMgb24gdGhlIHN0YWNrLgotICAgIGlmICgh
Y2FsbGVyRnJhbWUpCi0gICAgICAgIHNocmluayhnZXRCYXNlT2ZTdGFjaygpKTsKLQotICAgIGlu
c3RhbGxUcmFwc0FmdGVyRnJhbWUoY2FsbGVyRnJhbWUpOworICAgIHJldHVybiB0b3BPZkZyYW1l
Rm9yKG1fdG9wQ2FsbEZyYW1lKTsKIH0KIAotaW5saW5lIHZvaWQgSlNTdGFjazo6c2hyaW5rKFJl
Z2lzdGVyKiBuZXdFbmQpCitpbmxpbmUgdm9pZCBKU1N0YWNrOjpzaHJpbmsoUmVnaXN0ZXIqIG5l
d1RvcE9mU3RhY2spCiB7CisgICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG5ld1RvcE9mU3RhY2sgLSAx
OwogICAgIGlmIChuZXdFbmQgPj0gbV9lbmQpCiAgICAgICAgIHJldHVybjsKLSAgICB1cGRhdGVT
dGFja0xpbWl0KG5ld0VuZCk7Ci0gICAgaWYgKG1fZW5kID09IGdldEJhc2VPZlN0YWNrKCkgJiYg
KG1fY29tbWl0RW5kIC0gZ2V0QmFzZU9mU3RhY2soKSkgPj0gbWF4RXhjZXNzQ2FwYWNpdHkpCisg
ICAgc2V0U3RhY2tMaW1pdChuZXdUb3BPZlN0YWNrKTsKKyAgICAvLyBOb3RlOiBDbGFuZyBjb21w
bGFpbnMgb2YgYW4gdW5yZXNvbHZlZCBsaW5rYWdlIHRvIG1heEV4Y2Vzc0NhcGFjaXR5IGlmCisg
ICAgLy8gaW52b2tlIHN0ZDo6bWF4KCkgd2l0aCBpdCBhcyBhbiBhcmd1bWVudC4gVG8gd29yayBh
cm91bmQgdGhpcywgd2UgZmlyc3QKKyAgICAvLyBhc3NpZ24gdGhlIGNvbnN0YW50IHRvIGEgbG9j
YWwgdmFyaWFibGUsIGFuZCB1c2UgdGhlIGxvY2FsIGluc3RlYWQuCisgICAgcHRyZGlmZl90IG1h
eEV4Y2Vzc0NhcGFjaXR5ID0gSlNTdGFjazo6bWF4RXhjZXNzQ2FwYWNpdHk7CisgICAgcHRyZGlm
Zl90IG1heEV4Y2Vzc0luUmVnaXN0ZXJzID0gc3RkOjptYXgobWF4RXhjZXNzQ2FwYWNpdHksIG1f
cmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzKTsKKyAgICBpZiAobV9lbmQgPT0gYmFzZU9mU3Rh
Y2soKSAmJiAoaGlnaEFkZHJlc3MoKSAtIG1fY29tbWl0VG9wKSA+PSBtYXhFeGNlc3NJblJlZ2lz
dGVycykKICAgICAgICAgcmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KCk7CiB9CiAKLWlubGluZSBib29s
IEpTU3RhY2s6Omdyb3coUmVnaXN0ZXIqIG5ld0VuZCkKK2lubGluZSBib29sIEpTU3RhY2s6Omdy
b3coUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7CisgICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG5l
d1RvcE9mU3RhY2sgLSAxOwogICAgIGlmIChuZXdFbmQgPj0gbV9lbmQpCiAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIHJldHVybiBncm93U2xvd0Nhc2UobmV3RW5kKTsKKyAgICByZXR1cm4gZ3Jv
d1Nsb3dDYXNlKG5ld1RvcE9mU3RhY2spOwogfQogCi1pbmxpbmUgdm9pZCBKU1N0YWNrOjp1cGRh
dGVTdGFja0xpbWl0KFJlZ2lzdGVyKiBuZXdFbmQpCitpbmxpbmUgdm9pZCBKU1N0YWNrOjpzZXRT
dGFja0xpbWl0KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogeworICAgIFJlZ2lzdGVyKiBuZXdF
bmQgPSBuZXdUb3BPZlN0YWNrIC0gMTsKICAgICBtX2VuZCA9IG5ld0VuZDsKLSNpZiBVU0UoU0VQ
QVJBVEVfQ19BTkRfSlNfU1RBQ0spCi0gICAgbV92bS5zZXRKU1N0YWNrTGltaXQobmV3RW5kKTsK
KyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIG1fdm0uc2V0SlNTdGFja0xpbWl0KG5ld1Rv
cE9mU3RhY2spOwogI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoREVCVUdfSlNTVEFDSykKLWlubGlu
ZSBKU1ZhbHVlIEpTU3RhY2s6OmdlbmVyYXRlRmVuY2VWYWx1ZShzaXplX3QgYXJnSW5kZXgpCi17
Ci0gICAgdW5zaWduZWQgZmVuY2VCaXRzID0gMHhmYWNlYmFkMCB8ICgoYXJnSW5kZXgrMSkgJiAw
eGYpOwotICAgIEpTVmFsdWUgZmVuY2VWYWx1ZSA9IEpTVmFsdWUoZmVuY2VCaXRzKTsKLSAgICBy
ZXR1cm4gZmVuY2VWYWx1ZTsKLX0KLQotLy8gVGhlIEpTU3RhY2sgZmVuY2VzIG1lY2hhbmlzbSB3
b3JrcyBhcyBmb2xsb3dzOgotLy8gMS4gQSBmZW5jZSBpcyBhIG51bWJlciAoSlNTdGFjazo6RmVu
Y2VTaXplKSBvZiBKU1ZhbHVlcyB0aGF0IGFyZSBpbml0aWFsaXplZAotLy8gICAgd2l0aCB2YWx1
ZXMgZ2VuZXJhdGVkIGJ5IEpTU3RhY2s6OmdlbmVyYXRlRmVuY2VWYWx1ZSgpLgotLy8gMi4gV2hl
biBwdXNoRnJhbWUoKSBpcyBjYWxsZWQsIHRoZSBmZW5jZSBpcyBpbnN0YWxsZWQgYWZ0ZXIgdGhl
IG1heCBleHRlbnQKLS8vICAgIG9mIHRoZSBwcmV2aW91cyB0b3BDYWxsRnJhbWUgYW5kIHRoZSBs
YXN0IGFyZyBvZiB0aGUgbmV3IGZyYW1lOgotLy8KLS8vICAgICAgICAgICAgICAgICAgICAgfCAu
Li4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAg
ICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAg
ICAgICAgICAgICAgIHwgRnJhbWUgSGVhZGVyIG9mIHByZXZpb3VzIGZyYW1lICAgICAgIHwKLS8v
ICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tfAotLy8gICAgdG9wQ2FsbEZyYW1lIC0tPiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgTG9jYWxzIG9mIHByZXZpb3Vz
IGZyYW1lICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8ICoq
KiB0aGUgRmVuY2UgKioqICAgICAgICAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAg
ICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAg
ICAgICAgICAgICAgfCBWTSBlbnRyeSBzZW50aW5lbCBmcmFtZSBoZWFkZXIgICAgICAgfAotLy8g
ICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgQXJncyBvZiBuZXcgZnJhbWUgICAgICAgICAg
ICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8IEZyYW1lIEhlYWRl
ciBvZiBuZXcgZnJhbWUgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAgICBmcmFtZSAt
LT4gfCBMb2NhbHMgb2YgbmV3IGZyYW1lICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAg
ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0vLwot
Ly8gMy4gSW4gcG9wRnJhbWUoKSBhbmQgZWxzZXdoZXJlLCB3ZSBjYW4gY2FsbCBKU1N0YWNrOjp2
YWxpZGF0ZUZlbmNlKCkgdG8KLS8vICAgIGFzc2VydCB0aGF0IHRoZSBmZW5jZSBjb250YWlucyB0
aGUgdmFsdWVzIHdlIGV4cGVjdC4KLQotaW5saW5lIHZvaWQgSlNTdGFjazo6aW5zdGFsbEZlbmNl
KENhbGxGcmFtZSogZnJhbWUsIGNvbnN0IGNoYXIgKmZ1bmN0aW9uLCBpbnQgbGluZU5vKQotewot
ICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7Ci0gICAgVU5VU0VEX1BBUkFNKGxpbmVObyk7Ci0g
ICAgUmVnaXN0ZXIqIHN0YXJ0T2ZGcmFtZSA9IGdldFN0YXJ0T2ZGcmFtZShmcmFtZSk7Ci0KLSAg
ICAvLyBUaGUgbGFzdCBhcmdJbmRleCBpcyBhdDoKLSAgICBzaXplX3QgbWF4SW5kZXggPSBmcmFt
ZS0+YXJnSW5kZXhGb3JSZWdpc3RlcihzdGFydE9mRnJhbWUpICsgMTsKLSAgICBzaXplX3Qgc3Rh
cnRJbmRleCA9IG1heEluZGV4IC0gRmVuY2VTaXplOwotICAgIGZvciAoc2l6ZV90IGkgPSBzdGFy
dEluZGV4OyBpIDwgbWF4SW5kZXg7ICsraSkgewotICAgICAgICBKU1ZhbHVlIGZlbmNlVmFsdWUg
PSBnZW5lcmF0ZUZlbmNlVmFsdWUoaSk7Ci0gICAgICAgIGZyYW1lLT5zZXRBcmd1bWVudChpLCBm
ZW5jZVZhbHVlKTsKLSAgICB9Ci19Ci0KLWlubGluZSB2b2lkIEpTU3RhY2s6OnZhbGlkYXRlRmVu
Y2UoQ2FsbEZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciAqZnVuY3Rpb24sIGludCBsaW5lTm8pCi17
Ci0gICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0obGluZU5vKTsK
LSAgICBBU1NFUlQoISFmcmFtZS0+c2NvcGUoKSk7Ci0gICAgUmVnaXN0ZXIqIHN0YXJ0T2ZGcmFt
ZSA9IGdldFN0YXJ0T2ZGcmFtZShmcmFtZSk7Ci0gICAgc2l6ZV90IG1heEluZGV4ID0gZnJhbWUt
PmFyZ0luZGV4Rm9yUmVnaXN0ZXIoc3RhcnRPZkZyYW1lKSArIDE7Ci0gICAgc2l6ZV90IHN0YXJ0
SW5kZXggPSBtYXhJbmRleCAtIEZlbmNlU2l6ZTsKLSAgICBmb3IgKHNpemVfdCBpID0gc3RhcnRJ
bmRleDsgaSA8IG1heEluZGV4OyArK2kpIHsKLSAgICAgICAgSlNWYWx1ZSBmZW5jZVZhbHVlID0g
Z2VuZXJhdGVGZW5jZVZhbHVlKGkpOwotICAgICAgICBKU1ZhbHVlIGFjdHVhbFZhbHVlID0gZnJh
bWUtPmdldEFyZ3VtZW50VW5zYWZlKGkpOwotICAgICAgICBBU1NFUlQoZmVuY2VWYWx1ZSA9PSBh
Y3R1YWxWYWx1ZSk7Ci0gICAgfQotfQotCi0vLyBXaGVuIGRlYnVnZ2luZyB0aGUgSlNTdGFjaywg
d2UgaW5zdGFsbCBiYWQgdmFsdWVzIGFmdGVyIHRoZSBleHRlbnQgb2YgdGhlCi0vLyB0b3BDYWxs
RnJhbWUgYXQgdGhlIGVuZCBvZiBwdXNoRnJhbWUoKSBhbmQgcG9wRnJhbWUoKS4gVGhlIGludGVu
dGlvbiBpcwotLy8gdG8gdHJpZ2dlciBjcmFzaGVzIGluIHRoZSBldmVudCB0aGF0IG1lbW9yeSBp
biB0aGlzIHN1cHBvc2VkbHkgdW51c2VkCi0vLyByZWdpb24gaXMgcmVhZCBhbmQgY29uc3VtZWQg
d2l0aG91dCBwcm9wZXIgaW5pdGlhbGl6YXRpb24uIEFmdGVyIHRoZSB0cmFwCi0vLyB3b3JkcyBh
cmUgaW5zdGFsbGVkLCB0aGUgc3RhY2sgbG9va3MgbGlrZSB0aGlzOgotLy8KLS8vICAgICAgICAg
ICAgICAgICAgICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAg
ICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAgICAgICAgICAg
ICAgICAgICAgIHwgRnJhbWUgSGVhZGVyIG9mIGZyYW1lICAgICAgIHwKLS8vICAgICAgICAgICAg
ICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgdG9wQ2FsbEZy
YW1lIC0tPiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAg
ICAgICAgIHwgTG9jYWxzIG9mIGZyYW1lICAgICAgICAgICAgIHwKLS8vICAgICAgICAgICAgICAg
ICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAg
ICAgICB8ICoqKiBUcmFwIHdvcmRzICoqKiAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAg
ICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAg
ICAgfCBVbnVzZWQgc3BhY2UgLi4uICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAg
ICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0KLWlubGluZSB2b2lkIEpTU3RhY2s6
Omluc3RhbGxUcmFwc0FmdGVyRnJhbWUoQ2FsbEZyYW1lKiBmcmFtZSkKLXsKLSAgICBSZWdpc3Rl
ciogdG9wT2ZGcmFtZSA9IGdldFRvcE9mRnJhbWUoZnJhbWUpOwotICAgIGNvbnN0IGludCBzaXpl
T2ZUcmFwID0gNjQ7Ci0gICAgaW50MzJfdCogc3RhcnRPZlRyYXAgPSByZWludGVycHJldF9jYXN0
PGludDMyX3QqPih0b3BPZkZyYW1lKTsKLSAgICBpbnQzMl90KiBlbmRPZlRyYXAgPSBzdGFydE9m
VHJhcCAtIHNpemVPZlRyYXA7Ci0gICAgaW50MzJfdCogZW5kT2ZDb21taXRlZE1lbW9yeSA9IHJl
aW50ZXJwcmV0X2Nhc3Q8aW50MzJfdCo+KG1fY29tbWl0RW5kKTsKLQotICAgIC8vIE1ha2Ugc3Vy
ZSB3ZSdyZSBub3QgZXhjZWVkaW5nIHRoZSBhbW91bnQgb2YgYXZhaWxhYmxlIG1lbW9yeSB0byB3
cml0ZSB0bzoKLSAgICBpZiAoZW5kT2ZUcmFwIDwgZW5kT2ZDb21taXRlZE1lbW9yeSkKLSAgICAg
ICAgZW5kT2ZUcmFwID0gZW5kT2ZDb21taXRlZE1lbW9yeTsKLQotICAgIC8vIExheSB0aGUgdHJh
cHM6Ci0gICAgaW50MzJfdCogcCA9IHN0YXJ0T2ZUcmFwOwotICAgIHdoaWxlIChwID4gZW5kT2ZU
cmFwKQotICAgICAgICAqcC0tID0gMHhhYmFkY2FmZTsgLy8gQSBiYWQgd29yZCB0byB0cmlnZ2Vy
IGEgY3Jhc2ggaWYgZGVyZWYnZWQuCi19Ci0jZW5kaWYgLy8gRU5BQkxFKERFQlVHX0pTU1RBQ0sp
CisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3Rv
Q2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAKICNpbmNsdWRlICJDb2RlQmxv
Y2suaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApA
QCAtNDMsNyArNDQsOSBAQCB2b2lkIFByb3RvQ2FsbEZyYW1lOjppbml0KENvZGVCbG9jayogY29k
CiAgICAgICAgIGlmIChwYWRkZWRBcmdzQ291bnQgPCBudW1QYXJhbWV0ZXJzKQogICAgICAgICAg
ICAgcGFkZGVkQXJnc0NvdW50ID0gbnVtUGFyYW1ldGVyczsKICAgICB9Ci0gICAgdGhpcy0+c2V0
UGFkZGVkQXJnc0NvdW50KHBhZGRlZEFyZ3NDb3VudCk7CisgICAgLy8gUm91bmQgdXAgcGFkZGVk
QXJnc0NvdW50IHRvIGtlZXAgdGhlIHN0YWNrIGZyYW1lIHNpemUgYWxpZ25lZC4KKyAgICBwYWRk
ZWRBcmdzQ291bnQgPSByb3VuZEFyZ3VtZW50Q291bnRUb0FsaWduRnJhbWUocGFkZGVkQXJnc0Nv
dW50KTsKKyAgICB0aGlzLT5zZXRQYWRkZWRBcmdDb3VudChwYWRkZWRBcmdzQ291bnQpOwogICAg
IHRoaXMtPmNsZWFyQ3VycmVudFZQQygpOwogICAgIHRoaXMtPnNldFRoaXNWYWx1ZSh0aGlzVmFs
dWUpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Byb3RvQ2Fs
bEZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L1Byb3RvQ2FsbEZyYW1lLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3
ICs1Myw3IEBAIHN0cnVjdCBQcm90b0NhbGxGcmFtZSB7CiAgICAgaW50IGFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzKCkgY29uc3QgeyByZXR1cm4gYXJnQ291bnRBbmRDb2RlT3JpZ2luVmFsdWUu
cGF5bG9hZCgpOyB9CiAgICAgaW50IGFyZ3VtZW50Q291bnQoKSBjb25zdCB7IHJldHVybiBhcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcygpIC0gMTsgfQogICAgIHZvaWQgc2V0QXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMoaW50IGNvdW50KSB7IGFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVlLnBh
eWxvYWQoKSA9IGNvdW50OyB9Ci0gICAgdm9pZCBzZXRQYWRkZWRBcmdzQ291bnQoc2l6ZV90IGFy
Z0NvdW50KSB7IHBhZGRlZEFyZ0NvdW50ID0gYXJnQ291bnQ7IH0KKyAgICB2b2lkIHNldFBhZGRl
ZEFyZ0NvdW50KHNpemVfdCBhcmdDb3VudCkgeyBwYWRkZWRBcmdDb3VudCA9IGFyZ0NvdW50OyB9
CiAKICAgICB2b2lkIGNsZWFyQ3VycmVudFZQQygpIHsgYXJnQ291bnRBbmRDb2RlT3JpZ2luVmFs
dWUudGFnKCkgPSAwOyB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIgorCisjaWYgRU5BQkxFKEpJVCkKKworI2lu
Y2x1ZGUgIkFzc2VtYmx5SGVscGVycy5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNs
dWRlICJTdGFja0FsaWdubWVudC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3M6OkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzKCkKKyAgICA6IG1fbmV4
dFNpemUoMCkKK3sKK30KKworQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6On5Bcml0eUNoZWNr
RmFpbFJldHVyblRodW5rcygpIHsgfQorCitDb2RlTG9jYXRpb25MYWJlbCogQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3M6OnJldHVyblBDc0ZvcigKKyAgICBWTSYgdm0sIHVuc2lnbmVkIG51bUV4
cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcykKK3sKKyAgICBBU1NFUlQobnVtRXhwZWN0ZWRB
cmd1bWVudHNJbmNsdWRpbmdUaGlzID49IDEpOworICAgIAorICAgIG51bUV4cGVjdGVkQXJndW1l
bnRzSW5jbHVkaW5nVGhpcyA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZigKKyAgICAgICAgc3Rh
Y2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlz
KTsKKyAgICAKKyAgICB7CisgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9j
ayk7CisgICAgICAgIGlmIChudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPCBtX25l
eHRTaXplKQorICAgICAgICAgICAgcmV0dXJuIG1fcmV0dXJuUENBcnJheXMubGFzdCgpLmdldCgp
OworICAgIH0KKyAgICAKKyAgICBBU1NFUlQoIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7CisgICAg
CisgICAgbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzID0gc3RkOjptYXgobnVtRXhw
ZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzLCBtX25leHRTaXplICogMik7CisgICAgCisgICAg
QXNzZW1ibHlIZWxwZXJzIGppdCgmdm0sIDApOworICAgIAorICAgIFZlY3RvcjxBc3NlbWJseUhl
bHBlcnM6OkxhYmVsPiBsYWJlbHM7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBzaXplID0gbV9u
ZXh0U2l6ZTsgc2l6ZSA8PSBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXM7IHNpemUg
Kz0gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSkgeworICAgICAgICBsYWJlbHMuYXBwZW5kKGpp
dC5sYWJlbCgpKTsKKyAgICAgICAgCisgICAgICAgIGppdC5sb2FkMzIoCisgICAgICAgICAgICBB
c3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3RlciwKKyAgICAgICAgICAgICAgICAoSlNTdGFjazo6QXJndW1l
bnRDb3VudCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSAqIHNpemVvZihSZWdpc3Rl
cikgKworICAgICAgICAgICAgICAgIFBheWxvYWRPZmZzZXQpLAorICAgICAgICAgICAgR1BSSW5m
bzo6cmVnVDQpOworICAgICAgICBqaXQuYWRkMzIoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBl
cnM6OlRydXN0ZWRJbW0zMigKKyAgICAgICAgICAgICAgICBKU1N0YWNrOjpDYWxsRnJhbWVIZWFk
ZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUgKyBzaXplIC0gMSksCisgICAg
ICAgICAgICBHUFJJbmZvOjpyZWdUNCwgR1BSSW5mbzo6cmVnVDIpOworICAgICAgICBqaXQubHNo
aWZ0MzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMyksIEdQUkluZm86OnJlZ1QyKTsK
KyAgICAgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBHUFJJbmZvOjpyZWdUMik7CisgICAgICAgIGppdC5sb2FkUHRyKEdQUkluZm86OnJlZ1QyLCBH
UFJJbmZvOjpyZWdUMik7CisgICAgICAgIAorICAgICAgICBqaXQuYWRkUHRyKAorICAgICAgICAg
ICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc2l6ZSAqIHNpemVvZihSZWdpc3Rlcikp
LAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Cisg
ICAgICAgIAorICAgICAgICAvLyBUaHVua3MgbGlrZSBvdXJzIHdhbnQgdG8gdXNlIHRoZSByZXR1
cm4gUEMgdG8gZmlndXJlIG91dCB3aGVyZSB0aGluZ3MKKyAgICAgICAgLy8gd2VyZSBzYXZlZC4g
U28sIHdlIHBheSBpdCBmb3J3YXJkLgorICAgICAgICBqaXQuc3RvcmUzMigKKyAgICAgICAgICAg
IEdQUkluZm86OnJlZ1Q0LAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKAor
ICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsCisg
ICAgICAgICAgICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJG
cmFtZUFuZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsKKyAgICAgICAgICAgICAgICBQYXls
b2FkT2Zmc2V0KSk7CisgICAgICAgIAorICAgICAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMik7
CisgICAgfQorICAgIAorICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcih2bSwgJmppdCwgR0xPQkFM
X1RIVU5LX0lEKTsKKyAgICAKKyAgICB1bnNpZ25lZCByZXR1cm5QQ3NTaXplID0gbnVtRXhwZWN0
ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzIC8gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSArIDE7
CisgICAgc3RkOjp1bmlxdWVfcHRyPENvZGVMb2NhdGlvbkxhYmVsW10+IHJldHVyblBDcyA9Cisg
ICAgICAgIHN0ZDo6bWFrZV91bmlxdWU8Q29kZUxvY2F0aW9uTGFiZWxbXT4ocmV0dXJuUENzU2l6
ZSk7CisgICAgZm9yICh1bnNpZ25lZCBzaXplID0gMDsgc2l6ZSA8PSBudW1FeHBlY3RlZEFyZ3Vt
ZW50c0luY2x1ZGluZ1RoaXM7IHNpemUgKz0gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSkgewor
ICAgICAgICB1bnNpZ25lZCBpbmRleCA9IHNpemUgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygp
OworICAgICAgICBSRUxFQVNFX0FTU0VSVChpbmRleCA8IHJldHVyblBDc1NpemUpOworICAgICAg
ICBpZiAoc2l6ZSA8IG1fbmV4dFNpemUpCisgICAgICAgICAgICByZXR1cm5QQ3NbaW5kZXhdID0g
bV9yZXR1cm5QQ0FycmF5cy5sYXN0KClbaW5kZXhdOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICByZXR1cm5QQ3NbaW5kZXhdID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mKGxhYmVsc1soc2l6ZSAt
IG1fbmV4dFNpemUpIC8gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKV0pOworICAgIH0KKworICAg
IENvZGVMb2NhdGlvbkxhYmVsKiByZXN1bHQgPSByZXR1cm5QQ3MuZ2V0KCk7CisKKyAgICB7Cisg
ICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIG1fcmV0
dXJuUENBcnJheXMuYXBwZW5kKHN0ZDo6bW92ZShyZXR1cm5QQ3MpKTsKKyAgICAgICAgbV9yZWZz
LmFwcGVuZChGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsICgiQXJpdHkgY2hlY2sgZmFpbCByZXR1
cm4gdGh1bmtzIGZvciB1cCB0byBudW1BcmdzID0gJXUiLCBudW1FeHBlY3RlZEFyZ3VtZW50c0lu
Y2x1ZGluZ1RoaXMpKSk7CisgICAgICAgIG1fbmV4dFNpemUgPSBudW1FeHBlY3RlZEFyZ3VtZW50
c0luY2x1ZGluZ1RoaXMgKyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpOworICAgIH0KKyAgICAK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitDb2RlTG9jYXRpb25MYWJlbCBBcml0eUNoZWNrRmFp
bFJldHVyblRodW5rczo6cmV0dXJuUENGb3IoVk0mIHZtLCB1bnNpZ25lZCBzbG90c1RvQWRkKQor
eworICAgIHJldHVybiByZXR1cm5QQ3NGb3Iodm0sIHNsb3RzVG9BZGQpW3Nsb3RzVG9BZGQgLyBz
dGFja0FsaWdubWVudFJlZ2lzdGVycygpXTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNl
bmRpZiAvLyBFTkFCTEUoSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rc19o
CisjZGVmaW5lIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzX2gKKworI2lmIEVOQUJMRShKSVQp
CisKKyNpbmNsdWRlICJDb2RlTG9jYXRpb24uaCIKKyNpbmNsdWRlICJDb25jdXJyZW50SklUTG9j
ay5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFz
cyBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcyB7CitwdWJsaWM6CisgICAgQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MoKTsKKyAgICB+QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKTsKKyAg
ICAKKyAgICAvLyBSZXR1cm5zIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiByZXR1cm4gbGFiZWxz
IGluZGV4ZWQgYnkgbWlzc2luZ0FyZ3MuCisgICAgQ29kZUxvY2F0aW9uTGFiZWwqIHJldHVyblBD
c0ZvcihWTSYsIHVuc2lnbmVkIG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyk7Cisg
ICAgCisgICAgQ29kZUxvY2F0aW9uTGFiZWwgcmV0dXJuUENGb3IoVk0mLCB1bnNpZ25lZCBzbG90
c1RvQWRkKTsKKyAgICAKK3ByaXZhdGU6CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDb2Rl
TG9jYXRpb25MYWJlbFtdPj4gbV9yZXR1cm5QQ0FycmF5czsKKyAgICB1bnNpZ25lZCBtX25leHRT
aXplOworICAgIFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVSZWY+IG1fcmVmczsKKyAgICBDb25j
dXJyZW50SklUTG9jayBtX2xvY2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlm
IC8vIEVOQUJMRShKSVQpCisKKyNlbmRpZiAvLyBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rc19o
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5j
cHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDYgKzExMCwxNyBAQCB2b2lkIEFz
c2VtYmx5SGVscGVyczo6aml0QXNzZXJ0SXNDZWxsKEdQCiAgICAgYnJlYWtwb2ludCgpOwogICAg
IGNoZWNrQ2VsbC5saW5rKHRoaXMpOwogfQorCit2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNz
ZXJ0VGFnc0luUGxhY2UoKQoreworICAgIEp1bXAgb2sgPSBicmFuY2g2NChFcXVhbCwgR1BSSW5m
bzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBUcnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlcikpOwor
ICAgIGJyZWFrcG9pbnQoKTsKKyAgICBvay5saW5rKHRoaXMpOworICAgIAorICAgIG9rID0gYnJh
bmNoNjQoRXF1YWwsIEdQUkluZm86OnRhZ01hc2tSZWdpc3RlciwgVHJ1c3RlZEltbTY0KFRhZ01h
c2spKTsKKyAgICBicmVha3BvaW50KCk7CisgICAgb2subGluayh0aGlzKTsKK30KICNlbGlmIFVT
RShKU1ZBTFVFMzJfNjQpCiB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0SXNJbnQzMihH
UFJSZWcgZ3ByKQogewpAQCAtMTQ1LDYgKzE1NiwxMCBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6
aml0QXNzZXJ0SXNDZWxsKEdQCiAgICAgYnJlYWtwb2ludCgpOwogICAgIGNoZWNrQ2VsbC5saW5r
KHRoaXMpOwogfQorCit2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0VGFnc0luUGxhY2Uo
KQoreworfQogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKIHZvaWQgQXNzZW1ibHlIZWxw
ZXJzOjpqaXRBc3NlcnRIYXNWYWxpZENhbGxGcmFtZSgpCkBAIC0xNjAsNiArMTc1LDEzIEBAIHZv
aWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc051bGwoR1AKICAgICBicmVha3BvaW50KCk7
CiAgICAgY2hlY2tOdWxsLmxpbmsodGhpcyk7CiB9CisKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpq
aXRBc3NlcnRBcmd1bWVudENvdW50U2FuZSgpCit7CisgICAgSnVtcCBvayA9IGJyYW5jaDMyKEJl
bG93LCBwYXlsb2FkRm9yKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpLCBUcnVzdGVkSW1tMzIoMTAw
MDAwMDApKTsKKyAgICBicmVha3BvaW50KCk7CisgICAgb2subGluayh0aGlzKTsKK30KICNlbmRp
ZiAvLyAhQVNTRVJUX0RJU0FCTEVECiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCShyZXZpc2lvbiAxNjI5NjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCSh3b3JraW5n
IGNvcHkpCkBAIC01OCw4ICs1OCwzNiBAQCBwdWJsaWM6CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxv
Y2soKSB7IHJldHVybiBtX2NvZGVCbG9jazsgfQogICAgIFZNKiB2bSgpIHsgcmV0dXJuIG1fdm07
IH0KICAgICBBc3NlbWJsZXJUeXBlX1QmIGFzc2VtYmxlcigpIHsgcmV0dXJuIG1fYXNzZW1ibGVy
OyB9Ci0gICAgCisKKyAgICB2b2lkIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCkKKyAgICB7
CisgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm90aCB1bm5lZWRlZCBhbmQgaGFyZGVyIHRvIHdy
aXRlIGNvcnJlY3RseSBmb3IgQVJNNjQKKyNpZiAhZGVmaW5lZChOREVCVUcpICYmICFDUFUoQVJN
NjQpCisgICAgICAgIEp1bXAgc3RhY2tQb2ludGVyQWxpZ25lZCA9IGJyYW5jaFRlc3RQdHIoWmVy
bywgc3RhY2tQb2ludGVyUmVnaXN0ZXIsIFRydXN0ZWRJbW0zMigweGYpKTsKKyAgICAgICAgYnJl
YWtwb2ludCgpOworICAgICAgICBzdGFja1BvaW50ZXJBbGlnbmVkLmxpbmsodGhpcyk7CisjZW5k
aWYKKyAgICB9CisKICNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQorICAgIHNpemVfdCBwcm9s
b2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkKKyAgICB7CisgICAgICAgIC8vIFByb2xvZ3VlIG9ubHkg
c2F2ZXMgdGhlIGZyYW1lUG9pbnRlclJlZ2lzdGVyCisgICAgICAgIHJldHVybiBzaXplb2Yodm9p
ZCopOworICAgIH0KKworICAgIHZvaWQgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKQorICAgIHsKKyAg
ICAgICAgcHVzaChmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoc3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIGZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICB9CisKKyAgICB2b2lkIGVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICB7CisgICAgICAgIG1vdmUoZnJhbWVQb2ludGVyUmVn
aXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgcG9wKGZyYW1lUG9pbnRlclJl
Z2lzdGVyKTsKKyAgICB9CisKICAgICB2b2lkIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2Fs
bChHUFJSZWcgcmVnKQogICAgIHsKICAgICAgICAgcG9wKHJlZyk7CkBAIC03Nyw2ICsxMDUsMjQg
QEAgcHVibGljOgogI2VuZGlmIC8vIENQVShYODZfNjQpIHx8IENQVShYODYpCiAKICNpZiBDUFUo
QVJNKSB8fCBDUFUoQVJNNjQpCisgICAgc2l6ZV90IHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEo
KQorICAgIHsKKyAgICAgICAgLy8gUHJvbG9ndWUgc2F2ZXMgdGhlIGZyYW1lUG9pbnRlclJlZ2lz
dGVyIGFuZCBsaW5rUmVnaXN0ZXIKKyAgICAgICAgcmV0dXJuIDIgKiBzaXplb2Yodm9pZCopOwor
ICAgIH0KKworICAgIHZvaWQgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKQorICAgIHsKKyAgICAgICAg
cHVzaFBhaXIoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIGxpbmtSZWdpc3Rlcik7CisgICAgICAgIG1v
dmUoc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICB9CisK
KyAgICB2b2lkIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICB7CisgICAgICAgIG1vdmUoZnJh
bWVQb2ludGVyUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgcG9wUGFp
cihmcmFtZVBvaW50ZXJSZWdpc3RlciwgbGlua1JlZ2lzdGVyKTsKKyAgICB9CisKICAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKFJlZ2lzdGVySUQg
cmVnKQogICAgIHsKICAgICAgICAgbW92ZShsaW5rUmVnaXN0ZXIsIHJlZyk7CkBAIC05NCw2ICsx
NDAsMTIgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBDUFUoTUlQUykKKyAgICBzaXplX3QgcHJv
bG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpCisgICAgeworICAgICAgICAvLyBQcm9sb2d1ZSBzYXZl
cyB0aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5kIHJldHVybkFkZHJlc3NSZWdpc3RlcgorICAg
ICAgICByZXR1cm4gMiAqIHNpemVvZih2b2lkKik7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElO
RSB2b2lkIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChSZWdpc3RlcklEIHJlZykKICAg
ICB7CiAgICAgICAgIG1vdmUocmV0dXJuQWRkcmVzc1JlZ2lzdGVyLCByZWcpOwpAQCAtMTExLDYg
KzE2MywxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIENQVShTSDQpCisgICAgc2l6ZV90IHBy
b2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKQorICAgIHsKKyAgICAgICAgLy8gUHJvbG9ndWUgc2F2
ZXMgdGhlIGZyYW1lUG9pbnRlclJlZ2lzdGVyIGFuZCBsaW5rIHJlZ2lzdGVyCisgICAgICAgIHJl
dHVybiAyICogc2l6ZW9mKHZvaWQqKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
cHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKFJlZ2lzdGVySUQgcmVnKQogICAgIHsKICAg
ICAgICAgbV9hc3NlbWJsZXIuc3RzcHIocmVnKTsKQEAgLTE1MCwxMCArMjA4LDYgQEAgcHVibGlj
OgogICAgICAgICBzdG9yZVB0cihmcm9tLCBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpKTsKICAgICB9CiAKLSAgICB2b2lk
IGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJJRCB0bykKLSAg
ICB7Ci0gICAgICAgIGxvYWRQdHIoQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
Q2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSwgdG8pOwotICAgIH0KICAgICB2b2lkIGVtaXRQ
dXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKFJlZ2lzdGVySUQgZnJvbSkKICAgICB7CiAgICAg
ICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENh
bGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOwpAQCAtMTYzLDYgKzIxNywyOSBAQCBwdWJsaWM6
CiAgICAgICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOwogICAgIH0KIAorICAgIC8vIGVtaXRQ
dXRUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKCkgYW5kIHJlbGF0ZWQgYXJlIHVzZWQg
dG8gYWNjZXNzIGNhbGxlZSBmcmFtZSBoZWFkZXIKKyAgICAvLyBmaWVsZHMgYmVmb3JlIHRoZSBj
b2RlIGZyb20gZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKSBoYXMgZXhlY3V0ZWQuCisgICAgLy8gRmly
c3QsIHRoZSBhY2Nlc3MgaXMgdmlhIHRoZSBzdGFjayBwb2ludGVyLiBTZWNvbmQsIHRoZSBhZGRy
ZXNzIGNhbGN1bGF0aW9uIG11c3QgYWxzbyB0YWtlCisgICAgLy8gaW50byBhY2NvdW50IHRoYXQg
dGhlIHN0YWNrIHBvaW50ZXIgbWF5IG5vdCBoYXZlIGJlZW4gYWRqdXN0ZWQgZG93biBmb3IgdGhl
IHJldHVybiBQQyBhbmQvb3IKKyAgICAvLyBjYWxsZXIncyBmcmFtZSBwb2ludGVyLiBPbiBzb21l
IHBsYXRmb3JtcywgdGhlIGNhbGxlZSBpcyByZXNwb25zaWJsZSBmb3IgcHVzaGluZyB0aGUKKyAg
ICAvLyAibGluayByZWdpc3RlciIgY29udGFpbmluZyB0aGUgcmV0dXJuIGFkZHJlc3MgaW4gdGhl
IGZ1bmN0aW9uIHByb2xvZ3VlLgorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgdm9pZCBlbWl0UHV0
VG9DYWxsRnJhbWVIZWFkZXJCZWZvcmVQcm9sb2d1ZShHUFJSZWcgZnJvbSwgSlNTdGFjazo6Q2Fs
bEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCisgICAgeworICAgICAgICBzdG9yZVB0cihmcm9tLCBB
ZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBlbnRyeSAqIHN0YXRpY19jYXN0PHB0cmRpZmZf
dD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBwcm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRhKCkpKTsKKyAg
ICB9CisjZWxzZQorICAgIHZvaWQgZW1pdFB1dFBheWxvYWRUb0NhbGxGcmFtZUhlYWRlckJlZm9y
ZVByb2xvZ3VlKEdQUlJlZyBmcm9tLCBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRy
eSkKKyAgICB7CisgICAgICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVn
aXN0ZXIsIGVudHJ5ICogc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpKSAt
IHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKSArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFs
dWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpKTsKKyAgICB9CisKKyAgICB2b2lkIGVtaXRQ
dXRUYWdUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKFRydXN0ZWRJbW0zMiB0YWcsIEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVudHJ5KQorICAgIHsKKyAgICAgICAgc3RvcmVQ
dHIodGFnLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBlbnRyeSAqIHN0YXRpY19jYXN0
PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBwcm9sb2d1ZVN0YWNrUG9pbnRlckRlbHRh
KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykp
KTsKKyAgICB9CisjZW5kaWYKKwogICAgIEp1bXAgYnJhbmNoSWZOb3RDZWxsKEdQUlJlZyByZWcp
CiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0xOTQsNyArMjcxLDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBBZGRyZXNzIHRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVy
KQogICAgIHsKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwotICAg
ICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgdmlydHVhbFJl
Z2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIE9CSkVDVF9PRkZTRVRPRihFbmNv
ZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSk7CisgICAgICAgIHJldHVybiBBZGRyZXNz
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBz
aXplb2YoUmVnaXN0ZXIpICsgVGFnT2Zmc2V0KTsKICAgICB9CiAgICAgc3RhdGljIEFkZHJlc3Mg
dGFnRm9yKGludCBvcGVyYW5kKQogICAgIHsKQEAgLTIwNCw3ICsyODEsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIEFkZHJlc3MgcGF5bG9hZEZvcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lz
dGVyKQogICAgIHsKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwot
ICAgICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgdmlydHVh
bFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIE9CSkVDVF9PRkZTRVRPRihF
bmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpOworICAgICAgICByZXR1cm4g
QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgdmlydHVhbFJlZ2lzdGVyLm9mZnNl
dCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQpOwogICAgIH0KICAgICBzdGF0
aWMgQWRkcmVzcyBwYXlsb2FkRm9yKGludCBvcGVyYW5kKQogICAgIHsKQEAgLTI5OCw2ICszNzUs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBqaXRBc3NlcnRJc0NlbGwoR1BSUmVnKTsKICAgICB2b2lk
IGppdEFzc2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCk7CiAgICAgdm9pZCBqaXRBc3NlcnRJc051bGwo
R1BSUmVnKTsKKyAgICB2b2lkIGppdEFzc2VydFRhZ3NJblBsYWNlKCk7CisgICAgdm9pZCBqaXRB
c3NlcnRBcmd1bWVudENvdW50U2FuZSgpOwogI2Vsc2UKICAgICB2b2lkIGppdEFzc2VydElzSW50
MzIoR1BSUmVnKSB7IH0KICAgICB2b2lkIGppdEFzc2VydElzSlNJbnQzMihHUFJSZWcpIHsgfQpA
QCAtMzA2LDYgKzM4NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGppdEFzc2VydElzQ2VsbChHUFJS
ZWcpIHsgfQogICAgIHZvaWQgaml0QXNzZXJ0SGFzVmFsaWRDYWxsRnJhbWUoKSB7IH0KICAgICB2
b2lkIGppdEFzc2VydElzTnVsbChHUFJSZWcpIHsgfQorICAgIHZvaWQgaml0QXNzZXJ0VGFnc0lu
UGxhY2UoKSB7IH0KKyAgICB2b2lkIGppdEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCkgeyB9CiAj
ZW5kaWYKIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgY29udmVydCBiZXR3ZWVuIGRvdWJsZXMsIGFu
ZCBkb3VibGVzIGJveGVkIGFuZCBKU1ZhbHVlcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQ0NhbGxIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsNiArOTUsMTMg
QEAgcHVibGljOgogICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMik7CiAgICAgfQogICAgIAor
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhUcnVzdGVkSW1tUHRyIGFyZzEs
IEdQUlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CisgICAg
ICAgIGFkZENhbGxBcmd1bWVudChhcmcxKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIp
OworICAgIH0KKyAgICAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoR1BS
UmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMykKICAgICB7CiAgICAgICAgIHJlc2V0
Q2FsbEFyZ3VtZW50cygpOwpAQCAtOTM5LDYgKzk0NiwxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1v
dmUoYXJnMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5M
SU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoVHJ1c3RlZEltbVB0ciBhcmcxLCBHUFJSZWcgYXJnMikK
KyAgICB7CisgICAgICAgIG1vdmUoYXJnMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAg
ICAgbW92ZShhcmcxLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIH0KKyAgICAKICAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcy
KQogICAgIHsKICAgICAgICAgc2V0dXBUd29TdHViQXJnc0dQUjxHUFJJbmZvOjphcmd1bWVudEdQ
UjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMT4oYXJnMSwgYXJnMik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc4LDIxICs3OCw2IEBAIHZvaWQgcmVsZWFzZUV4ZWN1dGFibGVN
ZW1vcnkoVk0mKTsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGppdEFsbG9jYXRpb25HcmFudWxl
ID0gMzI7CiAKLWlubGluZSBzaXplX3Qgcm91bmRVcEFsbG9jYXRpb25TaXplKHNpemVfdCByZXF1
ZXN0LCBzaXplX3QgZ3JhbnVsYXJpdHkpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQoKHN0ZDo6bnVt
ZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgLSBncmFudWxhcml0eSkgPiByZXF1ZXN0KTsKLSAg
ICAKLSAgICAvLyBSb3VuZCB1cCB0byBuZXh0IHBhZ2UgYm91bmRhcnkKLSAgICBzaXplX3Qgc2l6
ZSA9IHJlcXVlc3QgKyAoZ3JhbnVsYXJpdHkgLSAxKTsKLSAgICBzaXplID0gc2l6ZSAmIH4oZ3Jh
bnVsYXJpdHkgLSAxKTsKLSAgICBBU1NFUlQoc2l6ZSA+PSByZXF1ZXN0KTsKLSAgICByZXR1cm4g
c2l6ZTsKLX0KLQotfQotCi1uYW1lc3BhY2UgSlNDIHsKLQogdHlwZWRlZiBXVEY6Ok1ldGFBbGxv
Y2F0b3JIYW5kbGUgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZTsKIAogI2lmIEVOQUJMRShBU1NFTUJM
RVIpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDYgKzM0LDcgQEAKIEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OlNTRTJDaGVja1N0YXRl
IEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnNfc3NlMkNoZWNrU3RhdGUgPSBOb3RDaGVj
a2VkU1NFMjsKICNlbmRpZgogCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
aCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRpZXMuaCIK
ICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgpAQCAtNDIsMTEgKzQzLDEzIEBAIEpTQzo6TWFjcm9B
c3NlbWJsZXJYODZDb21tb246OlNTRTJDaGVja1MKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5j
bHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJN
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5oIgogI2lu
Y2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogI2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgorI2luY2x1
ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFu
ZG9tTnVtYmVyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC05OCw2ICsxMDEsNyBAQCB2
b2lkIEpJVDo6ZW1pdEVudGVyT3B0aW1pemF0aW9uQ2hlY2soKQogICAgIEFTU0VSVCghbV9ieXRl
Y29kZU9mZnNldCk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25PcHRpbWl6ZSwgbV9ieXRl
Y29kZU9mZnNldCk7CiAgICAgc2tpcE9wdGltaXplLmFwcGVuZChicmFuY2hUZXN0UHRyKFplcm8s
IHJldHVyblZhbHVlR1BSKSk7CisgICAgbW92ZShyZXR1cm5WYWx1ZUdQUjIsIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKICAgICBqdW1wKHJldHVyblZhbHVlR1BSKTsKICAgICBza2lwT3B0aW1pemUu
bGluayh0aGlzKTsKIH0KQEAgLTEyOCw2ICsxMzIsOSBAQCB2b2lkIEpJVDo6ZW1pdEVudGVyT3B0
aW1pemF0aW9uQ2hlY2soKQogCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiB7
CisgICAgaml0QXNzZXJ0VGFnc0luUGxhY2UoKTsKKyAgICBqaXRBc3NlcnRBcmd1bWVudENvdW50
U2FuZSgpOworICAgIAogICAgIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbnNCZWdpbiA9IG1fY29k
ZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwogICAgIHVuc2lnbmVkIGluc3RydWN0aW9u
Q291bnQgPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpOwogCkBAIC00OTYsOCAr
NTAzLDcgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSQogICAgIGlm
IChtX3JhbmRvbUdlbmVyYXRvci5nZXRVaW50MzIoKSAmIDEpCiAgICAgICAgIG5vcCgpOwogCi0g
ICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHJlZ1QyKTsKLSAgICBlbWl0UHV0UmV0
dXJuUENUb0NhbGxGcmFtZUhlYWRlcihyZWdUMik7CisgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUo
KTsKICAgICBlbWl0UHV0SW1tZWRpYXRlVG9DYWxsRnJhbWVIZWFkZXIobV9jb2RlQmxvY2ssIEpT
U3RhY2s6OkNvZGVCbG9jayk7CiAKICAgICBMYWJlbCBiZWdpbkxhYmVsKHRoaXMpOwpAQCAtNTA3
LDcgKzUxMyw3IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAg
ICBzYW1wbGVJbnN0cnVjdGlvbihtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSk7
CiAjZW5kaWYKIAotICAgIEp1bXAgc3RhY2tDaGVjazsKKyAgICBKdW1wIHN0YWNrT3ZlcmZsb3c7
CiAgICAgaWYgKG1fY29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSkgewogICAg
ICAgICBBU1NFUlQobV9ieXRlY29kZU9mZnNldCA9PSAodW5zaWduZWQpLTEpOwogICAgICAgICBp
ZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CkBAIC01MjcsMTIgKzUzMywxMyBAQCBDb21waWxh
dGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIAotICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHZpcnR1YWxSZWdpc3RlckZvckxvY2Fs
KGZyYW1lUmVnaXN0ZXJDb3VudEZvcihtX2NvZGVCbG9jaykpLm9mZnNldCgpICogc2l6ZW9mKFJl
Z2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7Ci0gICAgICAgIHN0YWNrQ2hlY2sg
PSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5hZGRyZXNzT2ZKU1N0YWNr
TGltaXQoKSksIHJlZ1QxKTsKKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50
ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJl
Z2lzdGVyLCByZWdUMSk7CisgICAgICAgIHN0YWNrT3ZlcmZsb3cgPSBicmFuY2hQdHIoQWJvdmUs
IEFic29sdXRlQWRkcmVzcyhtX3ZtLT5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksIHJlZ1QxKTsK
ICAgICB9CiAKLSAgICBMYWJlbCBmdW5jdGlvbkJvZHkgPSBsYWJlbCgpOwotICAgIAorICAgIGFk
ZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNp
emVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIp
OworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisKICAgICBwcml2YXRlQ29tcGls
ZU1haW5QYXNzKCk7CiAgICAgcHJpdmF0ZUNvbXBpbGVMaW5rUGFzcygpOwogICAgIHByaXZhdGVD
b21waWxlU2xvd0Nhc2VzKCk7CkBAIC01NDIsMTggKzU0OSwxNSBAQCBDb21waWxhdGlvblJlc3Vs
dCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAKICAgICBMYWJlbCBhcml0eUNoZWNrOwogICAgIGlm
IChtX2NvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpIHsKLSAgICAgICAgc3Rh
Y2tDaGVjay5saW5rKHRoaXMpOworICAgICAgICBzdGFja092ZXJmbG93LmxpbmsodGhpcyk7CiAg
ICAgICAgIG1fYnl0ZWNvZGVPZmZzZXQgPSAwOwotICAgICAgICBjYWxsT3BlcmF0aW9uV2l0aENh
bGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uU3RhY2tDaGVjaywgbV9jb2RlQmxv
Y2spOwotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgbV9ieXRlY29kZU9mZnNldCA9ICh1bnNpZ25l
ZCktMTsgLy8gUmVzZXQgdGhpcywgaW4gb3JkZXIgdG8gZ3VhcmQgaXRzIHVzZSB3aXRoIEFTU0VS
VHMuCi0jZW5kaWYKLSAgICAgICAganVtcChmdW5jdGlvbkJvZHkpOworICAgICAgICBpZiAobWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZElt
bTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9u
KG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yLCBtX2NvZGVCbG9jayk7CiAKICAgICAg
ICAgYXJpdHlDaGVjayA9IGxhYmVsKCk7CiAgICAgICAgIHN0b3JlOChUcnVzdGVkSW1tMzIoMCks
ICZtX2NvZGVCbG9jay0+bV9zaG91bGRBbHdheXNCZUlubGluZWQpOwotICAgICAgICBwcmVzZXJ2
ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDIpOwotICAgICAgICBlbWl0UHV0UmV0dXJuUENU
b0NhbGxGcmFtZUhlYWRlcihyZWdUMik7CisgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7
CiAgICAgICAgIGVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcihtX2NvZGVCbG9jaywg
SlNTdGFjazo6Q29kZUJsb2NrKTsKIAogICAgICAgICBsb2FkMzIocGF5bG9hZEZvcihKU1N0YWNr
OjpBcmd1bWVudENvdW50KSwgcmVnVDEpOwpAQCAtNTYxLDEwICs1NjUsMTYgQEAgQ29tcGlsYXRp
b25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSQogCiAgICAgICAgIG1fYnl0ZWNvZGVPZmZz
ZXQgPSAwOwogCisgICAgICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAg
ICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICBjYWxsT3BlcmF0aW9uV2l0aENh
bGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24obV9jb2RlQmxvY2stPm1faXNDb25zdHJ1Y3RvciA/
IG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2sgOiBvcGVyYXRpb25DYWxsQXJpdHlDaGVjayk7
CisgICAgICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAg
IGFkZFB0cihUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIGlmIChyZXR1cm5WYWx1ZUdQUiAhPSByZWdUMCkK
ICAgICAgICAgICAgIG1vdmUocmV0dXJuVmFsdWVHUFIsIHJlZ1QwKTsKICAgICAgICAgYnJhbmNo
VGVzdDMyKFplcm8sIHJlZ1QwKS5saW5rVG8oYmVnaW5MYWJlbCwgdGhpcyk7CisgICAgICAgIG1v
dmUoVHJ1c3RlZEltbVB0cihtX3ZtLT5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJu
UENzRm9yKCptX3ZtLCBtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSksIHJlZ1Q1KTsKKyAg
ICAgICAgbG9hZFB0cihCYXNlSW5kZXgocmVnVDUsIHJlZ1QwLCB0aW1lc1B0cigpKSwgcmVnVDUp
OwogICAgICAgICBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENUSVN0dWIoYXJpdHlGaXh1cCkuY29k
ZSgpKTsKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKQEAgLTY1MywyMCArNjYzLDEyIEBAIENvbXBp
bGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSkkKICAgICAgICAgaW5mby5jYWxsZWVH
UFIgPSByZWdUMDsKICAgICB9CiAKLSNpZiBFTkFCTEUoREZHX0pJVCkgfHwgRU5BQkxFKExMSU5U
KQotICAgIGlmIChjYW5CZU9wdGltaXplZE9ySW5saW5lZCgpCi0jaWYgRU5BQkxFKExMSU5UKQot
ICAgICAgICB8fCB0cnVlCi0jZW5kaWYKLSAgICAgICAgKSB7Ci0gICAgICAgIENvbXBhY3RKSVRD
b2RlTWFwOjpFbmNvZGVyIGppdENvZGVNYXBFbmNvZGVyOwotICAgICAgICBmb3IgKHVuc2lnbmVk
IGJ5dGVjb2RlT2Zmc2V0ID0gMDsgYnl0ZWNvZGVPZmZzZXQgPCBtX2xhYmVscy5zaXplKCk7ICsr
Ynl0ZWNvZGVPZmZzZXQpIHsKLSAgICAgICAgICAgIGlmIChtX2xhYmVsc1tieXRlY29kZU9mZnNl
dF0uaXNTZXQoKSkKLSAgICAgICAgICAgICAgICBqaXRDb2RlTWFwRW5jb2Rlci5hcHBlbmQoYnl0
ZWNvZGVPZmZzZXQsIHBhdGNoQnVmZmVyLm9mZnNldE9mKG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0
XSkpOwotICAgICAgICB9Ci0gICAgICAgIG1fY29kZUJsb2NrLT5zZXRKSVRDb2RlTWFwKGppdENv
ZGVNYXBFbmNvZGVyLmZpbmlzaCgpKTsKKyAgICBDb21wYWN0SklUQ29kZU1hcDo6RW5jb2RlciBq
aXRDb2RlTWFwRW5jb2RlcjsKKyAgICBmb3IgKHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gMDsg
Ynl0ZWNvZGVPZmZzZXQgPCBtX2xhYmVscy5zaXplKCk7ICsrYnl0ZWNvZGVPZmZzZXQpIHsKKyAg
ICAgICAgaWYgKG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XS5pc1NldCgpKQorICAgICAgICAgICAg
aml0Q29kZU1hcEVuY29kZXIuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0LCBwYXRjaEJ1ZmZlci5vZmZz
ZXRPZihtX2xhYmVsc1tieXRlY29kZU9mZnNldF0pKTsKICAgICB9Ci0jZW5kaWYKKyAgICBtX2Nv
ZGVCbG9jay0+c2V0SklUQ29kZU1hcChqaXRDb2RlTWFwRW5jb2Rlci5maW5pc2goKSk7CiAKICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgd2l0aEFyaXR5Q2hlY2s7CiAgICAgaWYgKG1fY29kZUJs
b2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSkKQEAgLTY4Nyw4ICs2ODksNyBAQCBDb21w
aWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAgICAgCiAgICAgbV9jb2RlQmxv
Y2stPnNocmlua1RvRml0KENvZGVCbG9jazo6TGF0ZVNocmluayk7CiAgICAgbV9jb2RlQmxvY2st
PnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHJlc3VsdCwg
SklUQ29kZTo6QmFzZWxpbmVKSVQpKSwKLSAgICAgICAgd2l0aEFyaXR5Q2hlY2spOworICAgICAg
ICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShyZXN1bHQsIHdpdGhBcml0eUNoZWNrLCBKSVRD
b2RlOjpCYXNlbGluZUpJVCkpKTsKICAgICAKICNpZiBFTkFCTEUoSklUX1ZFUkJPU0UpCiAgICAg
ZGF0YUxvZ0YoIkpJVCBnZW5lcmF0ZWQgY29kZSBmb3IgJXAgYXQgWyVwLCAlcCkuXG4iLCBtX2Nv
ZGVCbG9jaywgcmVzdWx0LmV4ZWN1dGFibGVNZW1vcnkoKS0+c3RhcnQoKSwgcmVzdWx0LmV4ZWN1
dGFibGVNZW1vcnkoKS0+ZW5kKCkpOwpAQCAtNjk3LDQyICs2OTgsNiBAQCBDb21waWxhdGlvblJl
c3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAgICAgcmV0dXJuIENvbXBpbGF0aW9uU3VjY2Vz
c2Z1bDsKIH0KIAotdm9pZCBKSVQ6OmxpbmtGb3IoRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9u
KiBjYWxsZWUsIENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrLCBDb2RlQmxvY2sqIGNhbGxlZUNv
ZGVCbG9jaywgSklUOjpDb2RlUHRyIGNvZGUsIENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvLCBW
TSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKLXsKLSAgICBSZXBhdGNoQnVmZmVy
IHJlcGF0Y2hCdWZmZXIoY2FsbGVyQ29kZUJsb2NrKTsKLQotICAgIEFTU0VSVCghY2FsbExpbmtJ
bmZvLT5pc0xpbmtlZCgpKTsKLSAgICBjYWxsTGlua0luZm8tPmNhbGxlZS5zZXQoKnZtLCBjYWxs
TGlua0luZm8tPmhvdFBhdGhCZWdpbiwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUo
KSwgY2FsbGVlKTsKLSAgICBjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLnNldCgqdm0sIGNh
bGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7Ci0gICAgcmVwYXRjaEJ1
ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5ob3RQYXRoT3RoZXIsIGNvZGUpOwotCi0gICAgaWYg
KGNhbGxlZUNvZGVCbG9jaykKLSAgICAgICAgY2FsbGVlQ29kZUJsb2NrLT5saW5rSW5jb21pbmdD
YWxsKGV4ZWMsIGNhbGxMaW5rSW5mbyk7Ci0KLSAgICAvLyBQYXRjaCB0aGUgc2xvdyBwYXRjaCBz
byB3ZSBkbyBub3QgY29udGludWUgdG8gdHJ5IHRvIGxpbmsuCi0gICAgaWYgKGtpbmQgPT0gQ29k
ZUZvckNhbGwpIHsKLSAgICAgICAgQVNTRVJUKGNhbGxMaW5rSW5mby0+Y2FsbFR5cGUgPT0gQ2Fs
bExpbmtJbmZvOjpDYWxsCi0gICAgICAgICAgICAgICB8fCBjYWxsTGlua0luZm8tPmNhbGxUeXBl
ID09IENhbGxMaW5rSW5mbzo6Q2FsbFZhcmFyZ3MpOwotICAgICAgICBpZiAoY2FsbExpbmtJbmZv
LT5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNhbGwpIHsKLSAgICAgICAgICAgIHJlcGF0Y2hC
dWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby0+Y2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJ
U3R1YihsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxM
aW5rSW5mby0+Y2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRo
dW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQVNT
RVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmso
Y2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRDVElTdHViKHZpcnR1YWxD
b25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKLX0KLQotdm9pZCBKSVQ6OmxpbmtTbG93
Q2FsbChDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jaywgQ2FsbExpbmtJbmZvKiBjYWxsTGlua0lu
Zm8pCi17Ci0gICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNhbGxlckNvZGVCbG9jayk7
Ci0KLSAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8tPmNhbGxSZXR1cm5Mb2Nh
dGlvbiwgY2FsbGVyQ29kZUJsb2NrLT52bSgpLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtH
ZW5lcmF0b3IpLmNvZGUoKSk7Ci19Ci0KIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlv
bkhhbmRsZXJzKCkKIHsKICAgICBpZiAobV9leGNlcHRpb25DaGVja3MuZW1wdHkoKSAmJiBtX2V4
Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFjay5lbXB0eSgpKQpAQCAtNzQyLDcgKzcw
Nyw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhhbmRsZXIKIAogICAgIGlm
ICghbV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2suZW1wdHkoKSkgewogICAg
ICAgICBtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFjay5saW5rKHRoaXMpOwot
ICAgICAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVI
ZWFkZXJQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICAgICAgZG9Mb29rdXAgPSBqdW1w
KCk7CiAgICAgfQogCkBAIC03NTAsMTkgKzcxNSwzMyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVFeGNlcHRpb25IYW5kbGVyCiAgICAgICAgIG1fZXhjZXB0aW9uQ2hlY2tzLmxpbmsodGhpcyk7
CiAgICAgCiAgICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQgb25lIGFyZ3Vt
ZW50LCB0aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgotICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgbW92ZShHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKIAogICAgIGlmIChkb0xv
b2t1cC5pc1NldCgpKQogICAgICAgICBkb0xvb2t1cC5saW5rKHRoaXMpOwogCisgICAgbW92ZShU
cnVzdGVkSW1tUHRyKHZtKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworCiAjaWYgQ1BVKFg4
NikKICAgICAvLyBGSVhNRTogc2hvdWxkIHVzZSB0aGUgY2FsbCBhYnN0cmFjdGlvbiwgYnV0IHRo
aXMgaXMgY3VycmVudGx5IGluIHRoZSBTcGVjdWxhdGl2ZUpJVCBsYXllciEKICAgICBwb2tlKEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjEsIDEp
OwogI2VuZGlmCiAgICAgbV9jYWxscy5hcHBlbmQoQ2FsbFJlY29yZChjYWxsKCksICh1bnNpZ25l
ZCktMSwgRnVuY3Rpb25QdHIobG9va3VwRXhjZXB0aW9uSGFuZGxlcikudmFsdWUoKSkpOwogICAg
IGp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIoKTsKIH0KIAordW5zaWduZWQgSklUOjpmcmFtZVJlZ2lz
dGVyQ291bnRGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCit7CisgICAgQVNTRVJUKHN0YXRpY19j
YXN0PHVuc2lnbmVkPihjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSA9PSBXVEY6OnJv
dW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMpKSk7CisKKyAgICByZXR1
cm4gcm91bmRMb2NhbFJlZ2lzdGVyQ291bnRGb3JGcmFtZVBvaW50ZXJPZmZzZXQoY29kZUJsb2Nr
LT5tX251bUNhbGxlZVJlZ2lzdGVycyArIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5S
ZWdpc3RlcnMpOworfQorCitpbnQgSklUOjpzdGFja1BvaW50ZXJPZmZzZXRGb3IoQ29kZUJsb2Nr
KiBjb2RlQmxvY2spCit7CisgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1l
UmVnaXN0ZXJDb3VudEZvcihjb2RlQmxvY2spIC0gMSkub2Zmc2V0KCk7Cit9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAg
LTI0MSwxMyArMjQxLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gaml0
LnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVuYyk7CiAgICAgICAgIH0KIAotICAg
ICAgICBzdGF0aWMgdm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIEpTRnVuY3Rpb24qIGNhbGxlZSwg
Q29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ssIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBD
b2RlUHRyLCBDYWxsTGlua0luZm8qLCBWTSosIENvZGVTcGVjaWFsaXphdGlvbktpbmQpOwotICAg
ICAgICBzdGF0aWMgdm9pZCBsaW5rU2xvd0NhbGwoQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2ss
IENhbGxMaW5rSW5mbyopOwotICAgICAgICAKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGZyYW1l
UmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7Ci0gICAgICAgIH0K
KyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sq
KTsKKyAgICAgICAgc3RhdGljIGludCBzdGFja1BvaW50ZXJPZmZzZXRGb3IoQ29kZUJsb2NrKik7
CiAKICAgICBwcml2YXRlOgogICAgICAgICBKSVQoVk0qLCBDb2RlQmxvY2sqID0gMCk7CkBAIC02
OTcsMTEgKzY5MiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZVRhZywgSl9KSVRPcGVyYXRpb25fRVBjLCBp
bnQsIEluc3RydWN0aW9uKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRVosIGludCwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oUF9KSVRPcGVyYXRpb25fRUpTLCBHUFJSZWcsIHNp
emVfdCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oUF9KSVRP
cGVyYXRpb25fRVosIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VDQywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25f
RUosIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKFNfSklUT3BlcmF0aW9uX0VKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRU9Kc3Ms
IFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKFNwcnRfSklUT3BlcmF0aW9uX0VaLCBpbnQzMl90KTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQywg
UmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRUNDLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKQEAgLTcyNiw2ICs3
MjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FUGMsIEluc3RydWN0aW9uKik7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVosIGludDMy
X3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uV2l0aENhbGxG
cmFtZVJvbGxiYWNrT25FeGNlcHRpb24oSl9KSVRPcGVyYXRpb25fRSk7CisgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKEpfSklUT3BlcmF0
aW9uX0VFLCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKFZfSklUT3BlcmF0aW9uX0VD
YiwgQ29kZUJsb2NrKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihaX0pJVE9wZXJhdGlvbl9FKTsKICNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
YWxsMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbDMyXzY0LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRDYWxsMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUu
aCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5o
IgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiAKQEAgLTU2LDEwICs1Nyw5
IEBAIHZvaWQgSklUOjplbWl0X29wX3JldChJbnN0cnVjdGlvbiogY3VycmUKICAgICB1bnNpZ25l
ZCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogCiAgICAgZW1pdExvYWQo
ZHN0LCByZWdUMSwgcmVnVDApOwotICAgIGVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFk
ZXJQdHIocmVnVDIpOwotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQ
dHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwogCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVS
ZXR1cm4ocmVnVDIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisgICAgZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsKIH0KIApAQCAtNzMsMjAgKzczLDE2IEBA
IHZvaWQgSklUOjplbWl0X29wX3JldF9vYmplY3Rfb3JfdGhpcyhJbnMKICAgICBsb2FkUHRyKEFk
ZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCByZWdUMik7CiAgICAgSnVt
cCBub3RPYmplY3QgPSBlbWl0SnVtcElmTm90T2JqZWN0KHJlZ1QyKTsKIAotICAgIGVtaXRHZXRS
ZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVnVDIpOwotICAgIGVtaXRHZXRDYWxsZXJG
cmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwotCi0gICAgcmVz
dG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDIpOworICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KCk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQoKTsK
IAogICAgIG5vdEpTQ2VsbC5saW5rKHRoaXMpOwogICAgIG5vdE9iamVjdC5saW5rKHRoaXMpOwog
ICAgIGVtaXRMb2FkKHRoaXNSZWcsIHJlZ1QxLCByZWdUMCk7CiAKLSAgICBlbWl0R2V0UmV0dXJu
UENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QyKTsKLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKLQotICAgIHJlc3RvcmVS
ZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFs
aWdubWVudCgpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiB9CiAK
QEAgLTE1MSw4ICsxNDcsMTIgQEAgdm9pZCBKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyhJbnN0cnVj
dGlvbgogICAgICAgICAvLyByZWdUMjogYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMKIAogICAg
ICAgICBtb3ZlKHJlZ1QyLCByZWdUMyk7CisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLWZp
cnN0RnJlZVJlZ2lzdGVyICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIHJlZ1QzKTsK
KyAgICAgICAgLy8gcmVnVDEgbm93IGhhcyB0aGUgcmVxdWlyZWQgZnJhbWUgc2l6ZSBpbiBSZWdp
c3RlciB1bml0cworICAgICAgICAvLyBSb3VuZCByZWdUMSB0byBuZXh0IG11bHRpcGxlIG9mIHN0
YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkKKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFj
a0FsaWdubWVudFJlZ2lzdGVycygpIC0gMSksIHJlZ1QzKTsKKyAgICAgICAgYW5kUHRyKFRydXN0
ZWRJbW0zMih+KHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSksIHJlZ1QzKTsKICAgICAg
ICAgbmVnMzIocmVnVDMpOwotICAgICAgICBhZGQzMihUcnVzdGVkSW1tMzIoZmlyc3RGcmVlUmVn
aXN0ZXIgLSBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgcmVnVDMpOwogICAgICAgICBs
c2hpZnQzMihUcnVzdGVkSW1tMzIoMyksIHJlZ1QzKTsKICAgICAgICAgYWRkUHRyKGNhbGxGcmFt
ZVJlZ2lzdGVyLCByZWdUMyk7CiAgICAgICAgIC8vIHJlZ1QzOiBuZXdDYWxsRnJhbWUKQEAgLTE4
NSwyMiArMTg1LDM0IEBAIHZvaWQgSklUOjpjb21waWxlTG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24K
ICAgICAgICAgc2xvd0Nhc2UubGluayh0aGlzKTsKIAogICAgIGVtaXRMb2FkKGFyZ3VtZW50cywg
cmVnVDEsIHJlZ1QwKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblNpemVBbmRBbGxvY0Zy
YW1lRm9yVmFyYXJncywgcmVnVDEsIHJlZ1QwLCBmaXJzdEZyZWVSZWdpc3Rlcik7Ci0gICAgbW92
ZShyZXR1cm5WYWx1ZUdQUiwgcmVnVDUpOwotICAgIGVtaXRMb2FkKHRoaXNWYWx1ZSwgcmVnVDEs
IHJlZ1QwKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3Ms
IHJlZ1QxLCByZWdUMCwgZmlyc3RGcmVlUmVnaXN0ZXIpOworICAgIG1vdmUocmV0dXJuVmFsdWVH
UFIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBlbWl0TG9hZCh0aGlzVmFsdWUsIHJlZ1Qx
LCByZWdUNCk7CiAgICAgZW1pdExvYWQoYXJndW1lbnRzLCByZWdUMywgcmVnVDIpOwotICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHJlZ1Q1LCByZWdUMSwgcmVnVDAsIHJl
Z1QzLCByZWdUMik7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmV0
dXJuVmFsdWVHUFIsIHJlZ1QxLCByZWdUNCwgcmVnVDMsIHJlZ1QyKTsKICAgICBtb3ZlKHJldHVy
blZhbHVlR1BSLCByZWdUMyk7CiAKICAgICBpZiAoY2FuT3B0aW1pemUpCiAgICAgICAgIGVuZC5s
aW5rKHRoaXMpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzaXplb2YoQ2FsbGVyRnJhbWVB
bmRQQykpLCByZWdUMywgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogfQogCiB2b2lkIEpJVDo6Y29t
cGlsZUNhbGxFdmFsKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKIHsKLSAgICBjYWxsT3BlcmF0
aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uQ2FsbEV2YWwpOwor
ICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLXN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKENh
bGxlckZyYW1lQW5kUEMpKSksIHN0YWNrUG9pbnRlclJlZ2lzdGVyLCByZWdUMSk7CisKKyAgICBj
YWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhvcGVyYXRpb25DYWxsRXZhbCwgcmVnVDEpOwor
CisgICAgSnVtcCBub0V4Y2VwdGlvbiA9IGVtaXRFeGNlcHRpb25DaGVjayhJbnZlcnRlZEV4Y2Vw
dGlvbkNoZWNrKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZv
cihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBleGNlcHRpb25DaGVjayhqdW1wKCkpOworCisgICAg
bm9FeGNlcHRpb24ubGluayh0aGlzKTsKICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihFcXVhbCwg
cmVnVDEsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSkpOwotICAgIGVtaXRH
ZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwor
CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxv
Y2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNhbXBs
ZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgCkBAIC0yMTEsOCArMjIzLDEzIEBAIHZvaWQg
SklUOjpjb21waWxlQ2FsbEV2YWxTbG93Q2FzZShJbnN0cnUKIHsKICAgICBsaW5rU2xvd0Nhc2Uo
aXRlcik7CiAKKyAgICBsb2FkUHRyKEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVv
ZihSZWdpc3RlcikgKiBKU1N0YWNrOjpDYWxsZWUgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykp
LCByZWdUMCk7CisgICAgbG9hZFB0cihBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzaXpl
b2YoUmVnaXN0ZXIpICogSlNTdGFjazo6Q2FsbGVlIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMp
KSwgcmVnVDEpOworCiAgICAgZW1pdExvYWQoSlNTdGFjazo6Q2FsbGVlLCByZWdUMSwgcmVnVDAp
OwogICAgIGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2Vu
ZXJhdG9yKS5jb2RlKCkpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zm
c2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rl
ciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50
KCk7CiAKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIApAQCAtMjUxLDE4
ICsyNjgsMTcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSQogICAg
ICAgICAgICAgZG9uZS5saW5rKHRoaXMpOwogICAgICAgICB9CiAgICAgCi0gICAgICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIocmVnaXN0ZXJPZmZzZXQgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZy
YW1lUmVnaXN0ZXIsIHJlZ1QzKTsKKyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rl
ck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikgKyBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCBj
YWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogCi0gICAgICAgIHN0b3Jl
MzIoVHJ1c3RlZEltbTMyKGFyZ0NvdW50KSwgcGF5bG9hZEZvcihKU1N0YWNrOjpBcmd1bWVudENv
dW50LCByZWdUMykpOwotICAgIH0gLy8gcmVnVDMgaG9sZHMgbmV3Q2FsbEZyYW1lIHdpdGggQXJn
dW1lbnRDb3VudCBpbml0aWFsaXplZC4KKyAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoYXJn
Q291bnQpLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENv
dW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFBheWxvYWRPZmZzZXQg
LSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKyAgICB9IC8vIFNQIGhvbGRzIG5ld0NhbGxG
cmFtZSArIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSwgd2l0aCBBcmd1bWVudENvdW50IGluaXRp
YWxpemVkLgogICAgIAogICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxGcmFtZTo6TG9j
YXRpb246OmVuY29kZUFzQnl0ZWNvZGVJbnN0cnVjdGlvbihpbnN0cnVjdGlvbik7CiAgICAgc3Rv
cmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgdGFnRm9yKEpTU3RhY2s6OkFyZ3VtZW50
Q291bnQsIGNhbGxGcmFtZVJlZ2lzdGVyKSk7CiAgICAgZW1pdExvYWQoY2FsbGVlLCByZWdUMSwg
cmVnVDApOyAvLyByZWdUMSwgcmVnVDAgaG9sZHMgY2FsbGVlLgogCi0gICAgc3RvcmVQdHIoY2Fs
bEZyYW1lUmVnaXN0ZXIsIEFkZHJlc3MocmVnVDMsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZz
ZXQoKSkpOwotICAgIGVtaXRTdG9yZShKU1N0YWNrOjpDYWxsZWUsIHJlZ1QxLCByZWdUMCwgcmVn
VDMpOwotICAgIG1vdmUocmVnVDMsIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBzdG9yZTMyKHJl
Z1QwLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihD
YWxsZXJGcmFtZUFuZFBDKSkpOworICAgIHN0b3JlMzIocmVnVDEsIEFkZHJlc3Moc3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJl
Z2lzdGVyKSkgKyBUYWdPZmZzZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKIAogICAg
IGlmIChvcGNvZGVJRCA9PSBvcF9jYWxsX2V2YWwpIHsKICAgICAgICAgY29tcGlsZUNhbGxFdmFs
KGluc3RydWN0aW9uKTsKQEAgLTI4MSwxMCArMjk3LDE2IEBAIHZvaWQgSklUOjpjb21waWxlT3BD
YWxsKE9wY29kZUlEIG9wY29kZUkKICAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25J
bmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsVHlwZSA9IENhbGxMaW5rSW5mbzo6Y2FsbFR5cGVG
b3Iob3Bjb2RlSUQpOwogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2Fs
bExpbmtJbmZvSW5kZXhdLmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlT2Zmc2V0OwogCi0gICAg
bG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29w
ZSkpLCByZWdUMSk7Ci0gICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgSlNT
dGFjazo6U2NvcGVDaGFpbik7CisgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZG
U0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZSkpLCByZWdUMik7CisgICAgc3RvcmUzMihyZWdUMiwg
QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OlNj
b3BlQ2hhaW4gKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxs
ZXJGcmFtZUFuZFBDKSkpOworICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxU
YWcpLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpTY29wZUNoYWluICog
c2l6ZW9mKFJlZ2lzdGVyKSArIFRhZ09mZnNldCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkp
OworCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKICAgICBtX2NhbGxTdHJ1Y3R1
cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5ob3RQYXRoT3RoZXIgPSBl
bWl0TmFrZWRDYWxsKCk7CiAKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9m
ZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0
ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVu
dCgpOworCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICBlbWl0UHV0Q2Fs
bFJlc3VsdChpbnN0cnVjdGlvbik7CiB9CkBAIC0yOTksNyArMzIxLDE0IEBAIHZvaWQgSklUOjpj
b21waWxlT3BDYWxsU2xvd0Nhc2UoT3Bjb2RlSUQKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAg
ICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogCi0gICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0
aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uY2FsbFJldHVybkxvY2F0aW9uID0gZW1pdE5ha2Vk
Q2FsbChvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBtX3ZtLT5nZXRDVElTdHViKGxpbmtDb25z
dHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpIDogbV92bS0+Z2V0Q1RJU3R1YihsaW5rQ2FsbFRo
dW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxp
bmtUaHVua0dlbmVyYXRvckZvcigKKyAgICAgICAgb3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8g
Q29kZUZvckNvbnN0cnVjdCA6IENvZGVGb3JDYWxsLAorICAgICAgICBSZWdpc3RlclByZXNlcnZh
dGlvbk5vdFJlcXVpcmVkKTsKKyAgICAKKyAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRp
b25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRD
YWxsKG1fdm0tPmdldENUSVN0dWIoZ2VuZXJhdG9yKS5jb2RlKCkpOworCisgICAgYWRkUHRyKFRy
dXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJl
Z2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAg
Y2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2Nv
ZGVCbG9jayk7CiAgICAgZW1pdFB1dENhbGxSZXN1bHQoaW5zdHJ1Y3Rpb24pOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2
ICszOSw3IEBACiAjaW5jbHVkZSAiUmVwYXRjaEJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5
cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVu
dC5oIgogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQ
cmludFN0cmVhbS5oPgogCkBAIC03MSwxMCArNzIsMTQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVMb2Fk
VmFyYXJncyhJbnN0cnVjdGlvbgogICAgICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMy
KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQsIHJlZ1QwKTsKICAgICAgICAgc2xvd0Nhc2UuYXBwZW5k
KGJyYW5jaDMyKEFib3ZlLCByZWdUMCwgVHJ1c3RlZEltbTMyKEFyZ3VtZW50czo6TWF4QXJndW1l
bnRzICsgMSkpKTsKICAgICAgICAgLy8gcmVnVDA6IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
Ci0KICAgICAgICAgbW92ZShyZWdUMCwgcmVnVDEpOworICAgICAgICBhZGQ2NChUcnVzdGVkSW1t
MzIoLWZpcnN0RnJlZVJlZ2lzdGVyICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIHJl
Z1QxKTsKKyAgICAgICAgLy8gcmVnVDEgbm93IGhhcyB0aGUgcmVxdWlyZWQgZnJhbWUgc2l6ZSBp
biBSZWdpc3RlciB1bml0cworICAgICAgICAvLyBSb3VuZCByZWdUMSB0byBuZXh0IG11bHRpcGxl
IG9mIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkKKyAgICAgICAgYWRkNjQoVHJ1c3RlZEltbTMy
KHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSwgcmVnVDEpOworICAgICAgICBhbmQ2NChU
cnVzdGVkSW1tMzIofihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpIC0gMSkpLCByZWdUMSk7CisK
ICAgICAgICAgbmVnNjQocmVnVDEpOwotICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIoZmlyc3RG
cmVlUmVnaXN0ZXIgLSBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgcmVnVDEpOwogICAg
ICAgICBsc2hpZnQ2NChUcnVzdGVkSW1tMzIoMyksIHJlZ1QxKTsKICAgICAgICAgYWRkUHRyKGNh
bGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7CiAgICAgICAgIC8vIHJlZ1QxOiBuZXdDYWxsRnJhbWUK
QEAgLTEwNSw3ICsxMTAsOCBAQCB2b2lkIEpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKEluc3RydWN0
aW9uCiAgICAgICAgIHNsb3dDYXNlLmxpbmsodGhpcyk7CiAKICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKGFyZ3VtZW50cywgcmVnVDEpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6
ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzLCByZWdUMSwgZmlyc3RGcmVlUmVnaXN0ZXIpOworICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgcmVnVDEsIGZpcnN0
RnJlZVJlZ2lzdGVyKTsKKyAgICBtb3ZlKHJldHVyblZhbHVlR1BSLCBzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih0aGlzVmFsdWUsIHJlZ1QxKTsKICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGFyZ3VtZW50cywgcmVnVDIpOwogICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHJldHVyblZhbHVlR1BSLCByZWdUMSwgcmVnVDIp
OwpAQCAtMTEzLDEzICsxMTksMjQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVMb2FkVmFyYXJncyhJbnN0
cnVjdGlvbgogCiAgICAgaWYgKGNhbk9wdGltaXplKQogICAgICAgICBlbmQubGluayh0aGlzKTsK
KyAgICAKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSks
IHJlZ1QxLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiB9CiAKIHZvaWQgSklUOjpjb21waWxlQ2Fs
bEV2YWwoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogewotICAgIGNhbGxPcGVyYXRpb25XaXRo
Q2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25DYWxsRXZhbCk7CisgICAgYWRk
UHRyKFRydXN0ZWRJbW0zMigtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJh
bWVBbmRQQykpKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0
aW9uTm9FeGNlcHRpb25DaGVjayhvcGVyYXRpb25DYWxsRXZhbCwgcmVnVDEpOworCisgICAgSnVt
cCBub0V4Y2VwdGlvbiA9IGVtaXRFeGNlcHRpb25DaGVjayhJbnZlcnRlZEV4Y2VwdGlvbkNoZWNr
KTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVC
bG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsgICAgCisgICAgZXhjZXB0aW9uQ2hlY2soanVtcCgpKTsKKworICAgIG5vRXhj
ZXB0aW9uLmxpbmsodGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoNjQoRXF1YWwsIHJlZ1Qw
LCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSkpKSk7Ci0gICAgZW1pdEdl
dENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7CisK
KyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9j
aykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxl
Q29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTEzMCw4ICsxNDcsMTAgQEAgdm9pZCBK
SVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dDYXNlKEluc3RydQogewogICAgIGxpbmtTbG93Q2FzZShp
dGVyKTsKIAotICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyNjQoSlNTdGFjazo6Q2FsbGVl
LCByZWdUMCk7CisgICAgbG9hZDY0KEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVv
ZihSZWdpc3RlcikgKiBKU1N0YWNrOjpDYWxsZWUgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykp
LCByZWdUMCk7CiAgICAgZW1pdE5ha2VkQ2FsbChtX3ZtLT5nZXRDVElTdHViKHZpcnR1YWxDYWxs
VGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1Bv
aW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFt
ZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgCkBA
IC0xNzAsMTggKzE4OSwxNiBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNv
ZGVJCiAgICAgICAgICAgICBkb25lLmxpbmsodGhpcyk7CiAgICAgICAgIH0KICAgICAKLSAgICAg
ICAgYWRkUHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3Rlcikp
LCBjYWxsRnJhbWVSZWdpc3RlciwgcmVnVDEpOwotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0z
MihhcmdDb3VudCksIEFkZHJlc3MocmVnVDEsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRW
YWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOwotICAgIH0gLy8gcmVnVDEgaG9sZHMg
bmV3Q2FsbEZyYW1lIHdpdGggQXJndW1lbnRDb3VudCBpbml0aWFsaXplZC4KKyAgICAgICAgYWRk
UHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikgKyBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVn
aXN0ZXIpOworICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihhcmdDb3VudCksIEFkZHJlc3Mo
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxsZXJG
cmFtZUFuZFBDKSkpOworICAgIH0gLy8gU1AgaG9sZHMgbmV3Q2FsbEZyYW1lICsgc2l6ZW9mKENh
bGxlckZyYW1lQW5kUEMpLCB3aXRoIEFyZ3VtZW50Q291bnQgaW5pdGlhbGl6ZWQuCiAgICAgCiAg
ICAgdWludDMyX3QgYnl0ZWNvZGVPZmZzZXQgPSBpbnN0cnVjdGlvbiAtIG1fY29kZUJsb2NrLT5p
bnN0cnVjdGlvbnMoKS5iZWdpbigpOwogICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxG
cmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOwot
ICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFkZHJlc3MoY2FsbEZyYW1l
UmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVv
ZihSZWdpc3RlcikpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFz
Qml0cy50YWcpKSk7CisgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQWRk
cmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19j
YXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBUYWdPZmZzZXQpKTsKICAgICBlbWl0R2V0Vmly
dHVhbFJlZ2lzdGVyKGNhbGxlZSwgcmVnVDApOyAvLyByZWdUMCBob2xkcyBjYWxsZWUuCiAKLSAg
ICBzdG9yZTY0KGNhbGxGcmFtZVJlZ2lzdGVyLCBBZGRyZXNzKHJlZ1QxLCBDYWxsRnJhbWU6OmNh
bGxlckZyYW1lT2Zmc2V0KCkpKTsKLSAgICBzdG9yZTY0KHJlZ1QwLCBBZGRyZXNzKHJlZ1QxLCBK
U1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7Ci0g
ICAgbW92ZShyZWdUMSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIHN0b3JlNjQocmVnVDAsIEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0
PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKIAog
ICAgIGlmIChvcGNvZGVJRCA9PSBvcF9jYWxsX2V2YWwpIHsKICAgICAgICAgY29tcGlsZUNhbGxF
dmFsKGluc3RydWN0aW9uKTsKQEAgLTE5OCwxMCArMjE1LDE0IEBAIHZvaWQgSklUOjpjb21waWxl
T3BDYWxsKE9wY29kZUlEIG9wY29kZUkKICAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRp
b25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsVHlwZSA9IENhbGxMaW5rSW5mbzo6Y2FsbFR5
cGVGb3Iob3Bjb2RlSUQpOwogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9b
Y2FsbExpbmtJbmZvSW5kZXhdLmJ5dGVjb2RlSW5kZXggPSBtX2J5dGVjb2RlT2Zmc2V0OwogCi0g
ICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9z
Y29wZSkpLCByZWdUMSk7Ci0gICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0
YWNrOjpTY29wZUNoYWluKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZT
RVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlZ1QyKTsKKyAgICBzdG9yZTY0KHJlZ1QyLCBB
ZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6U2Nv
cGVDaGFpbiAqIHNpemVvZihSZWdpc3RlcikgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsK
KwogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5k
ZXhdLmhvdFBhdGhPdGhlciA9IGVtaXROYWtlZENhbGwoKTsKIAorICAgIGFkZFB0cihUcnVzdGVk
SW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3Rl
cikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNr
U3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxv
Y2spOwogICAgIAogICAgIGVtaXRQdXRDYWxsUmVzdWx0KGluc3RydWN0aW9uKTsKQEAgLTIxNiw3
ICsyMzcsMTQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGxTbG93Q2FzZShPcGNvZGVJRAogCiAg
ICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogCi0gICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0
aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uY2FsbFJldHVybkxvY2F0aW9uID0gZW1pdE5ha2Vk
Q2FsbChvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBtX3ZtLT5nZXRDVElTdHViKGxpbmtDb25z
dHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpIDogbV92bS0+Z2V0Q1RJU3R1YihsaW5rQ2FsbFRo
dW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxp
bmtUaHVua0dlbmVyYXRvckZvcigKKyAgICAgICAgb3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8g
Q29kZUZvckNvbnN0cnVjdCA6IENvZGVGb3JDYWxsLAorICAgICAgICBSZWdpc3RlclByZXNlcnZh
dGlvbk5vdFJlcXVpcmVkKTsKKyAgICAKKyAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRp
b25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRD
YWxsKG1fdm0tPmdldENUSVN0dWIoZ2VuZXJhdG9yKS5jb2RlKCkpOworCisgICAgYWRkUHRyKFRy
dXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJl
Z2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAg
Y2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2Nv
ZGVCbG9jayk7CiAgICAgCkBAIC0yMjYsNyArMjU0LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENh
bGxTbG93Q2FzZShPcGNvZGVJRAogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlQ2xvc3VyZUNhbGwo
Q2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBT
dHJ1Y3R1cmUqIGV4cGVjdGVkU3RydWN0dXJlLCBFeGVjdXRhYmxlQmFzZSogZXhwZWN0ZWRFeGVj
dXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikKIHsKICAgICBKdW1wTGlzdCBz
bG93Q2FzZXM7Ci0gICAgCisKICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoTm9u
WmVybywgcmVnVDAsIHRhZ01hc2tSZWdpc3RlcikpOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJh
bmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgp
KSwgVHJ1c3RlZEltbVB0cihleHBlY3RlZFN0cnVjdHVyZSkpKTsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMCwgSlNGdW5jdGlvbjo6b2Zmc2V0
T2ZFeGVjdXRhYmxlKCkpLCBUcnVzdGVkSW1tUHRyKGV4cGVjdGVkRXhlY3V0YWJsZSkpKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAkocmV2aXNpb24gMTYyOTYxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiTExJbnRUaHVua3MuaCIKICNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJh
dG9yLmgiCiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpA
QCAtNDEsMTEgKzQyLDkgQEAgSklUQ29kZTo6fkpJVENvZGUoKQogewogfQogCi1KU1ZhbHVlIEpJ
VENvZGU6OmV4ZWN1dGUoVk0qIHZtLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUsIFJl
Z2lzdGVyKiB0b3BPZlN0YWNrKQorSlNWYWx1ZSBKSVRDb2RlOjpleGVjdXRlKFZNKiB2bSwgUHJv
dG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lKQogewotICAgIEFTU0VSVCghdm0tPnRvcENhbGxG
cmFtZSB8fCAoKFJlZ2lzdGVyKikodm0tPnRvcENhbGxGcmFtZSkgPj0gdG9wT2ZTdGFjaykpOwot
Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbFRvSmF2YVNjcmlwdChl
eGVjdXRhYmxlQWRkcmVzcygpLCAmdm0tPnRvcENhbGxGcmFtZSwgcHJvdG9DYWxsRnJhbWUsIHRv
cE9mU3RhY2spKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9K
YXZhU2NyaXB0KGV4ZWN1dGFibGVBZGRyZXNzKCksIHZtLCBwcm90b0NhbGxGcmFtZSkpOwogICAg
IHJldHVybiB2bS0+ZXhjZXB0aW9uKCkgPyBqc051bGwoKSA6IHJlc3VsdDsKIH0KIApAQCAtNzMs
NTIgKzcyLDM1IEBAIEZUTDo6Rm9yT1NSRW50cnlKSVRDb2RlKiBKSVRDb2RlOjpmdGxGb3IKICAg
ICByZXR1cm4gMDsKIH0KIAotUGFzc1JlZlB0cjxKSVRDb2RlPiBKSVRDb2RlOjpob3N0RnVuY3Rp
b24oSklUQ29kZTo6Q29kZVJlZiBjb2RlKQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGly
ZWN0SklUQ29kZShjb2RlLCBIb3N0Q2FsbFRodW5rKSk7Ci19Ci0KLURpcmVjdEpJVENvZGU6OkRp
cmVjdEpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQorSklUQ29kZVdpdGhDb2RlUmVmOjpKSVRDb2Rl
V2l0aENvZGVSZWYoSklUVHlwZSBqaXRUeXBlKQogICAgIDogSklUQ29kZShqaXRUeXBlKQogewog
fQogCi1EaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRDb2RlKGNvbnN0IEpJVENvZGU6OkNvZGVSZWYg
cmVmLCBKSVRUeXBlIGppdFR5cGUpCitKSVRDb2RlV2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29k
ZVJlZihDb2RlUmVmIHJlZiwgSklUVHlwZSBqaXRUeXBlKQogICAgIDogSklUQ29kZShqaXRUeXBl
KQogICAgICwgbV9yZWYocmVmKQogewogfQogCi1EaXJlY3RKSVRDb2RlOjp+RGlyZWN0SklUQ29k
ZSgpCi17Ci19Ci0KLXZvaWQgRGlyZWN0SklUQ29kZTo6aW5pdGlhbGl6ZUNvZGVSZWYoY29uc3Qg
SklUQ29kZTo6Q29kZVJlZiByZWYpCitKSVRDb2RlV2l0aENvZGVSZWY6On5KSVRDb2RlV2l0aENv
ZGVSZWYoKQogewotICAgIFJFTEVBU0VfQVNTRVJUKCFtX3JlZik7Ci0gICAgbV9yZWYgPSByZWY7
CiB9CiAKLUpJVENvZGU6OkNvZGVQdHIgRGlyZWN0SklUQ29kZTo6YWRkcmVzc0ZvckNhbGwoKQot
ewotICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsKLSAgICByZXR1cm4gbV9yZWYuY29kZSgpOwot
fQotCi12b2lkKiBEaXJlY3RKSVRDb2RlOjpleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVf
dCBvZmZzZXQpCit2b2lkKiBKSVRDb2RlV2l0aENvZGVSZWY6OmV4ZWN1dGFibGVBZGRyZXNzQXRP
ZmZzZXQoc2l6ZV90IG9mZnNldCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fcmVmLmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpKSArIG9mZnNldDsKIH0KIAotdm9pZCogRGlyZWN0SklUQ29kZTo6ZGF0YUFkZHJlc3NB
dE9mZnNldChzaXplX3Qgb2Zmc2V0KQordm9pZCogSklUQ29kZVdpdGhDb2RlUmVmOjpkYXRhQWRk
cmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYp
OwogICAgIEFTU0VSVChvZmZzZXQgPD0gc2l6ZSgpKTsgLy8gdXNlIDw9IGluc3RlYWQgb2YgPCBi
ZWNhdXNlIGl0IGlzIHZhbGlkIHRvIGFzayBmb3IgYW4gYWRkcmVzcyBhdCB0aGUgZXhjbHVzaXZl
IGVuZCBvZiB0aGUgY29kZS4KICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9y
ZWYuY29kZSgpLmRhdGFMb2NhdGlvbigpKSArIG9mZnNldDsKIH0KIAotdW5zaWduZWQgRGlyZWN0
SklUQ29kZTo6b2Zmc2V0T2Yodm9pZCogcG9pbnRlckludG9Db2RlKQordW5zaWduZWQgSklUQ29k
ZVdpdGhDb2RlUmVmOjpvZmZzZXRPZih2b2lkKiBwb2ludGVySW50b0NvZGUpCiB7CiAgICAgUkVM
RUFTRV9BU1NFUlQobV9yZWYpOwogICAgIGludHB0cl90IHJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8aW50cHRyX3Q+KHBvaW50ZXJJbnRvQ29kZSkgLSByZWludGVycHJldF9jYXN0PGludHB0cl90
PihtX3JlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CkBAIC0xMjYsMTggKzEwOCwxMTYg
QEAgdW5zaWduZWQgRGlyZWN0SklUQ29kZTo6b2Zmc2V0T2Yodm9pZCogcAogICAgIHJldHVybiBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVzdWx0KTsKIH0KIAotc2l6ZV90IERpcmVjdEpJVENvZGU6
OnNpemUoKQorc2l6ZV90IEpJVENvZGVXaXRoQ29kZVJlZjo6c2l6ZSgpCiB7CiAgICAgUkVMRUFT
RV9BU1NFUlQobV9yZWYpOwogICAgIHJldHVybiBtX3JlZi5zaXplKCk7CiB9CiAKLWJvb2wgRGly
ZWN0SklUQ29kZTo6Y29udGFpbnModm9pZCogYWRkcmVzcykKK2Jvb2wgSklUQ29kZVdpdGhDb2Rl
UmVmOjpjb250YWlucyh2b2lkKiBhZGRyZXNzKQogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVm
KTsKICAgICByZXR1cm4gbV9yZWYuZXhlY3V0YWJsZU1lbW9yeSgpLT5jb250YWlucyhhZGRyZXNz
KTsKIH0KIAorRGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZShKSVRUeXBlIGppdFR5cGUpCisg
ICAgOiBKSVRDb2RlV2l0aENvZGVSZWYoaml0VHlwZSkKK3sKK30KKworRGlyZWN0SklUQ29kZTo6
RGlyZWN0SklUQ29kZShKSVRDb2RlOjpDb2RlUmVmIHJlZiwgSklUQ29kZTo6Q29kZVB0ciB3aXRo
QXJpdHlDaGVjaywgSklUVHlwZSBqaXRUeXBlKQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJl
Ziwgaml0VHlwZSkKKyAgICAsIG1fd2l0aEFyaXR5Q2hlY2sod2l0aEFyaXR5Q2hlY2spCit7Cit9
CisKK0RpcmVjdEpJVENvZGU6On5EaXJlY3RKSVRDb2RlKCkKK3sKK30KKwordm9pZCBEaXJlY3RK
SVRDb2RlOjppbml0aWFsaXplQ29kZVJlZihKSVRDb2RlOjpDb2RlUmVmIHJlZiwgSklUQ29kZTo6
Q29kZVB0ciB3aXRoQXJpdHlDaGVjaykKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9yZWYpOwor
ICAgIG1fcmVmID0gcmVmOworICAgIG1fd2l0aEFyaXR5Q2hlY2sgPSB3aXRoQXJpdHlDaGVjazsK
K30KKworRGlyZWN0SklUQ29kZTo6UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyogRGlyZWN0
SklUQ29kZTo6ZW5zdXJlV3JhcHBlcnMoKQoreworICAgIGlmICghbV93cmFwcGVycykKKyAgICAg
ICAgbV93cmFwcGVycyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFw
cGVycz4oKTsKKyAgICByZXR1cm4gbV93cmFwcGVycy5nZXQoKTsKK30KKworSklUQ29kZTo6Q29k
ZVB0ciBEaXJlY3RKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgKKyAgICBWTSYgdm0sIEV4ZWN1dGFi
bGVCYXNlKiBleGVjdXRhYmxlLCBBcml0eUNoZWNrTW9kZSBhcml0eSwKKyAgICBSZWdpc3RlclBy
ZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAoYXJpdHkpIHsKKyAgICBj
YXNlIEFyaXR5Q2hlY2tOb3RSZXF1aXJlZDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsK
KyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOworICAgICAgICAgICAgcmV0dXJuIG1fcmVmLmNvZGUo
KTsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6IHsKKyNpZiBFTkFCTEUoSklU
KQorICAgICAgICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyogd3JhcHBlcnMgPSBl
bnN1cmVXcmFwcGVycygpOworICAgICAgICAgICAgaWYgKCF3cmFwcGVycy0+d2l0aG91dEFyaXR5
Q2hlY2spCisgICAgICAgICAgICAgICAgd3JhcHBlcnMtPndpdGhvdXRBcml0eUNoZWNrID0gZ2Vu
ZXJhdGVSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXIodm0sIGV4ZWN1dGFibGUsIG1fcmVmLmNv
ZGUoKSk7CisgICAgICAgICAgICByZXR1cm4gd3JhcHBlcnMtPndpdGhvdXRBcml0eUNoZWNrLmNv
ZGUoKTsKKyNlbHNlCisgICAgICAgICAgICBVTlVTRURfUEFSQU0odm0pOworICAgICAgICAgICAg
VU5VU0VEX1BBUkFNKGV4ZWN1dGFibGUpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICB9IH0KKyAgICBjYXNlIE11c3RDaGVja0FyaXR5
OgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJl
c2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dpdGhB
cml0eUNoZWNrKTsKKyAgICAgICAgICAgIHJldHVybiBtX3dpdGhBcml0eUNoZWNrOworICAgICAg
ICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczogeworI2lmIEVOQUJMRShKSVQpCisgICAgICAg
ICAgICBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzKiB3cmFwcGVycyA9IGVuc3VyZVdyYXBw
ZXJzKCk7CisgICAgICAgICAgICBpZiAoIXdyYXBwZXJzLT53aXRoQXJpdHlDaGVjaykKKyAgICAg
ICAgICAgICAgICB3cmFwcGVycy0+d2l0aEFyaXR5Q2hlY2sgPSBnZW5lcmF0ZVJlZ2lzdGVyUHJl
c2VydmF0aW9uV3JhcHBlcih2bSwgZXhlY3V0YWJsZSwgbV93aXRoQXJpdHlDaGVjayk7CisgICAg
ICAgICAgICByZXR1cm4gd3JhcHBlcnMtPndpdGhBcml0eUNoZWNrLmNvZGUoKTsKKyNlbHNlCisg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAg
IH0gfQorICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBDb2RlUHRyKCk7Cit9CisKK05hdGl2ZUpJVENvZGU6Ok5hdGl2ZUpJVENvZGUoSklUVHlwZSBq
aXRUeXBlKQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKGppdFR5cGUpCit7Cit9CisKK05hdGl2
ZUpJVENvZGU6Ok5hdGl2ZUpJVENvZGUoQ29kZVJlZiByZWYsIEpJVFR5cGUgaml0VHlwZSkKKyAg
ICA6IEpJVENvZGVXaXRoQ29kZVJlZihyZWYsIGppdFR5cGUpCit7Cit9CisKK05hdGl2ZUpJVENv
ZGU6On5OYXRpdmVKSVRDb2RlKCkKK3sKK30KKwordm9pZCBOYXRpdmVKSVRDb2RlOjppbml0aWFs
aXplQ29kZVJlZihDb2RlUmVmIHJlZikKK3sKKyAgICBBU1NFUlQoIW1fcmVmKTsKKyAgICBtX3Jl
ZiA9IHJlZjsKK30KKworSklUQ29kZTo6Q29kZVB0ciBOYXRpdmVKSVRDb2RlOjphZGRyZXNzRm9y
Q2FsbCgKKyAgICBWTSYsIEV4ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVy
UHJlc2VydmF0aW9uTW9kZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghIW1fcmVmKTsKKyAgICBy
ZXR1cm4gbV9yZWYuY29kZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNl
IFdURiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDE0ICsyNiwxNCBAQAogI2lmbmRlZiBKSVRDb2RlX2gKICNkZWZpbmUgSklUQ29k
ZV9oCiAKLSNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCisjaW5jbHVkZSAiQXJpdHlD
aGVja01vZGUuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJEaXNhc3NlbWJs
ZXIuaCIKICNpbmNsdWRlICJKSVRTdHVicy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNp
bmNsdWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJl
Zi5oIgotI2VuZGlmCisjaW5jbHVkZSAiUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkBAIC01NCw3ICs1NCwxNCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgQ29kZVJlZjsKICAgICB0eXBlZGVmIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBDb2RlUHRyOwogCi0gICAgZW51bSBKSVRUeXBlIHsgTm9uZSwgSG9zdENhbGxUaHVu
aywgSW50ZXJwcmV0ZXJUaHVuaywgQmFzZWxpbmVKSVQsIERGR0pJVCwgRlRMSklUIH07CisgICAg
ZW51bSBKSVRUeXBlIDogdWludDhfdCB7CisgICAgICAgIE5vbmUsCisgICAgICAgIEhvc3RDYWxs
VGh1bmssCisgICAgICAgIEludGVycHJldGVyVGh1bmssCisgICAgICAgIEJhc2VsaW5lSklULAor
ICAgICAgICBERkdKSVQsCisgICAgICAgIEZUTEpJVAorICAgIH07CiAgICAgCiAgICAgc3RhdGlj
IEpJVFR5cGUgYm90dG9tVGllckpJVCgpCiAgICAgewpAQCAtMTY0LDcgKzE3MSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGppdENvZGUtPmppdFR5cGUoKTsKICAgICB9CiAgICAgCi0gICAg
dmlydHVhbCBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKCkgPSAwOworICAgIHZpcnR1YWwgQ29kZVB0
ciBhZGRyZXNzRm9yQ2FsbChWTSYsIEV4ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCogZXhlY3V0YWJs
ZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSA9IDA7CiAgICAgdm9pZCogZXhlY3V0YWJs
ZUFkZHJlc3MoKSB7IHJldHVybiBleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KDApOyB9CiAgICAg
dmlydHVhbCB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpID0gMDsKQEAg
LTE3NSw3ICsxODIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBGVEw6OkpJVENvZGUqIGZ0bCgp
OwogICAgIHZpcnR1YWwgRlRMOjpGb3JPU1JFbnRyeUpJVENvZGUqIGZ0bEZvck9TUkVudHJ5KCk7
CiAgICAgCi0gICAgSlNWYWx1ZSBleGVjdXRlKFZNKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3Rl
ciopOworICAgIEpTVmFsdWUgZXhlY3V0ZShWTSosIFByb3RvQ2FsbEZyYW1lKik7CiAgICAgCiAg
ICAgdm9pZCogc3RhcnQoKSB7IHJldHVybiBkYXRhQWRkcmVzc0F0T2Zmc2V0KDApOyB9CiAgICAg
dmlydHVhbCBzaXplX3Qgc2l6ZSgpID0gMDsKQEAgLTE4MywzMSArMTkwLDYyIEBAIHB1YmxpYzoK
ICAgICAKICAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnModm9pZCopID0gMDsKIAotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEpJVENvZGU+IGhvc3RGdW5jdGlvbihDb2RlUmVmKTsKLQogcHJpdmF0ZToK
ICAgICBKSVRUeXBlIG1faml0VHlwZTsKIH07CiAKLWNsYXNzIERpcmVjdEpJVENvZGUgOiBwdWJs
aWMgSklUQ29kZSB7CitjbGFzcyBKSVRDb2RlV2l0aENvZGVSZWYgOiBwdWJsaWMgSklUQ29kZSB7
Citwcm90ZWN0ZWQ6CisgICAgSklUQ29kZVdpdGhDb2RlUmVmKEpJVFR5cGUpOworICAgIEpJVENv
ZGVXaXRoQ29kZVJlZihDb2RlUmVmLCBKSVRUeXBlKTsKKwogcHVibGljOgotICAgIERpcmVjdEpJ
VENvZGUoSklUVHlwZSk7Ci0gICAgRGlyZWN0SklUQ29kZShjb25zdCBDb2RlUmVmLCBKSVRUeXBl
KTsKLSAgICB2aXJ0dWFsIH5EaXJlY3RKSVRDb2RlKCk7Ci0gICAgCi0gICAgdm9pZCBpbml0aWFs
aXplQ29kZVJlZihDb2RlUmVmIHJlZik7CisgICAgdmlydHVhbCB+SklUQ29kZVdpdGhDb2RlUmVm
KCk7CiAKLSAgICB2aXJ0dWFsIENvZGVQdHIgYWRkcmVzc0ZvckNhbGwoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBv
ZmZzZXQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCogcG9p
bnRlckludG9Db2RlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHNpemVfdCBzaXplKCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGNvbnRhaW5zKHZvaWQqKSBvdmVycmlkZTsKIAotcHJpdmF0
ZToKK3Byb3RlY3RlZDoKICAgICBDb2RlUmVmIG1fcmVmOwogfTsKIAorY2xhc3MgRGlyZWN0SklU
Q29kZSA6IHB1YmxpYyBKSVRDb2RlV2l0aENvZGVSZWYgeworcHVibGljOgorICAgIERpcmVjdEpJ
VENvZGUoSklUVHlwZSk7CisgICAgRGlyZWN0SklUQ29kZShDb2RlUmVmLCBDb2RlUHRyIHdpdGhB
cml0eUNoZWNrLCBKSVRUeXBlKTsKKyAgICB2aXJ0dWFsIH5EaXJlY3RKSVRDb2RlKCk7CisgICAg
CisgICAgdm9pZCBpbml0aWFsaXplQ29kZVJlZihDb2RlUmVmLCBDb2RlUHRyIHdpdGhBcml0eUNo
ZWNrKTsKKworICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbChWTSYsIEV4ZWN1dGFi
bGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkgb3ZlcnJp
ZGU7CisKK3ByaXZhdGU6CisgICAgc3RydWN0IFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnMg
eworICAgICAgICBDb2RlUmVmIHdpdGhvdXRBcml0eUNoZWNrOworICAgICAgICBDb2RlUmVmIHdp
dGhBcml0eUNoZWNrOworICAgIH07CisKKyAgICBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJz
KiBlbnN1cmVXcmFwcGVycygpOworICAgIAorICAgIENvZGVQdHIgbV93aXRoQXJpdHlDaGVjazsK
KyAgICAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycz4g
bV93cmFwcGVyczsKK307CisKK2NsYXNzIE5hdGl2ZUpJVENvZGUgOiBwdWJsaWMgSklUQ29kZVdp
dGhDb2RlUmVmIHsKK3B1YmxpYzoKKyAgICBOYXRpdmVKSVRDb2RlKEpJVFR5cGUpOworICAgIE5h
dGl2ZUpJVENvZGUoQ29kZVJlZiwgSklUVHlwZSk7CisgICAgdmlydHVhbCB+TmF0aXZlSklUQ29k
ZSgpOworICAgIAorICAgIHZvaWQgaW5pdGlhbGl6ZUNvZGVSZWYoQ29kZVJlZik7CisKKyAgICB2
aXJ0dWFsIENvZGVQdHIgYWRkcmVzc0ZvckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5
Q2hlY2tNb2RlLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpIG92ZXJyaWRlOworfTsKKwogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKIG5hbWVzcGFjZSBXVEYgewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Myw2ICs0MywxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogdm9pZCBnZW5lcmljVW53aW5kKFZN
KiB2bSwgRXhlY1N0YXRlKiBjYWxsRnJhbWUsIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUpCiB7Cisg
ICAgaWYgKE9wdGlvbnM6OmJyZWFrT25UaHJvdygpKSB7CisgICAgICAgIGRhdGFMb2coIkluIGNh
bGwgZnJhbWUgIiwgUmF3UG9pbnRlcihjYWxsRnJhbWUpLCAiIGZvciBjb2RlIGJsb2NrICIsICpj
YWxsRnJhbWUtPmNvZGVCbG9jaygpLCAiXG4iKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9Cisg
ICAgCiAgICAgUkVMRUFTRV9BU1NFUlQoZXhjZXB0aW9uVmFsdWUpOwogICAgIEhhbmRsZXJJbmZv
KiBoYW5kbGVyID0gdm0tPmludGVycHJldGVyLT51bndpbmQoY2FsbEZyYW1lLCBleGNlcHRpb25W
YWx1ZSk7IC8vIFRoaXMgbWF5IHVwZGF0ZSBjYWxsRnJhbWUuCiAKQEAgLTU2LDcgKzYxLDcgQEAg
dm9pZCBnZW5lcmljVW53aW5kKFZNKiB2bSwgRXhlY1N0YXRlKiBjYQogICAgICAgICBjYXRjaFJv
dXRpbmUgPSBjYXRjaFBDRm9ySW50ZXJwcmV0ZXItPnUucG9pbnRlcjsKICNlbmRpZgogICAgIH0g
ZWxzZQotICAgICAgICBjYXRjaFJvdXRpbmUgPSBMTEludDo6Z2V0Q29kZVB0cihyZXR1cm5Gcm9t
SmF2YVNjcmlwdCk7CisgICAgICAgIGNhdGNoUm91dGluZSA9IExMSW50OjpnZXRDb2RlUHRyKGhh
bmRsZVVuY2F1Z2h0RXhjZXB0aW9uKTsKICAgICAKICAgICB2bS0+Y2FsbEZyYW1lRm9yVGhyb3cg
PSBjYWxsRnJhbWU7CiAgICAgdm0tPnRhcmdldE1hY2hpbmVQQ0ZvclRocm93ID0gY2F0Y2hSb3V0
aW5lOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVy
YXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVDYWNoZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00OSw3ICs0OSw3IEBAIEpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpKSVRJbmxpbmVDYWNoZUcK
IAogSklUQnlJZEdlbmVyYXRvcjo6SklUQnlJZEdlbmVyYXRvcigKICAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJl
Z2lzdGVycywKLSAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzIGJhc2Us
IEpTVmFsdWVSZWdzIHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgSlNWYWx1ZVJl
Z3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICA6
IEpJVElubGluZUNhY2hlR2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbikKICAgICAsIG1f
YmFzZShiYXNlKQogICAgICwgbV92YWx1ZSh2YWx1ZSkKQEAgLTYyLDcgKzYyLDYgQEAgSklUQnlJ
ZEdlbmVyYXRvcjo6SklUQnlJZEdlbmVyYXRvcigKICAgICBtX3N0dWJJbmZvLT5wYXRjaC51c2Vk
UmVnaXN0ZXJzLnNldChiYXNlKTsKICAgICBtX3N0dWJJbmZvLT5wYXRjaC51c2VkUmVnaXN0ZXJz
LnNldCh2YWx1ZSk7CiAgICAgCi0gICAgbV9zdHViSW5mby0+cGF0Y2guY2FsbEZyYW1lUmVnaXN0
ZXIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBtX3N0dWJJ
bmZvLT5wYXRjaC5iYXNlR1BSID0gc3RhdGljX2Nhc3Q8aW50OF90PihiYXNlLnBheWxvYWRHUFIo
KSk7CiAgICAgbV9zdHViSW5mby0+cGF0Y2gudmFsdWVHUFIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+
KHZhbHVlLnBheWxvYWRHUFIoKSk7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKQEAgLTEzMCwxMSAr
MTI5LDkgQEAgdm9pZCBKSVRHZXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYQogCiBKSVRQ
dXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9yKAogICAgIENvZGVCbG9jayogY29k
ZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVn
aXN0ZXJzLAotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3MgYmFzZSwg
SlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzY3JhdGNoLAotICAgIGJvb2wgcmVnaXN0ZXJzRmx1
c2hlZCwgRUNNQU1vZGUgZWNtYU1vZGUsIFB1dEtpbmQgcHV0S2luZCkKLSAgICA6IEpJVEJ5SWRH
ZW5lcmF0b3IoCi0gICAgICAgIGNvZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywg
Y2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2UsIHZhbHVlLAotICAgICAgICByZWdpc3RlcnNGbHVzaGVk
KQorICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRj
aCwgYm9vbCByZWdpc3RlcnNGbHVzaGVkLAorICAgIEVDTUFNb2RlIGVjbWFNb2RlLCBQdXRLaW5k
IHB1dEtpbmQpCisgICAgOiBKSVRCeUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbiwg
dXNlZFJlZ2lzdGVycywgYmFzZSwgdmFsdWUsIHJlZ2lzdGVyc0ZsdXNoZWQpCiAgICAgLCBtX3Nj
cmF0Y2goc2NyYXRjaCkKICAgICAsIG1fZWNtYU1vZGUoZWNtYU1vZGUpCiAgICAgLCBtX3B1dEtp
bmQocHV0S2luZCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpA
QCAtNTYsOCArNTYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgSklUQnlJZEdlbmVyYXRvcigpIHsgfQog
CiAgICAgSklUQnlJZEdlbmVyYXRvcigKLSAgICAgICAgQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwg
Y29uc3QgUmVnaXN0ZXJTZXQmLCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgIEpT
VmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQp
OworICAgICAgICBDb2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYsIEpT
VmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLAorICAgICAgICBib29sIHJlZ2lzdGVy
c0ZsdXNoZWQpOwogICAgIAogcHVibGljOgogICAgIHZvaWQgcmVwb3J0U2xvd1BhdGhDYWxsKE1h
Y3JvQXNzZW1ibGVyOjpMYWJlbCBzbG93UGF0aEJlZ2luLCBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsKQpAQCAtOTYsMTEgKzk2LDggQEAgcHVibGljOgogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRv
cigKICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwg
Y29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCi0gICAgICAgIEdQUlJlZyBjYWxsRnJh
bWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsCi0gICAgICAg
IGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKLSAgICAgICAgOiBKSVRCeUlkR2VuZXJhdG9yKAotICAg
ICAgICAgICAgY29kZUJsb2NrLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzLCBjYWxsRnJhbWVS
ZWdpc3RlciwgYmFzZSwgdmFsdWUsCi0gICAgICAgICAgICByZWdpc3RlcnNGbHVzaGVkKQorICAg
ICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgYm9vbCByZWdpc3RlcnNG
bHVzaGVkKQorICAgICAgICA6IEpJVEJ5SWRHZW5lcmF0b3IoY29kZUJsb2NrLCBjb2RlT3JpZ2lu
LCB1c2VkUmVnaXN0ZXJzLCBiYXNlLCB2YWx1ZSwgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICB7CiAg
ICAgfQogICAgIApAQCAtMTEyLDkgKzEwOSw4IEBAIHB1YmxpYzoKICAgICBKSVRQdXRCeUlkR2Vu
ZXJhdG9yKCkgeyB9CiAKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yKAotICAgICAgICBDb2RlQmxv
Y2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgR1BSUmVn
IGNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVn
cyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCwKLSAgICAgICAg
RUNNQU1vZGUsIFB1dEtpbmQpOworICAgICAgICBDb2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25z
dCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MgYmFzZSwKKyAgICAgICAg
SlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzY3JhdGNoLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQs
IEVDTUFNb2RlLCBQdXRLaW5kKTsKICAgICAKICAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFj
cm9Bc3NlbWJsZXImKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5s
aW5lcy5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNiBAQCBBTFdBWVNfSU5MSU5F
IHZvaWQgSklUOjplbWl0TG9hZENoYXJhY3RlCiBBTFdBWVNfSU5MSU5FIEpJVDo6Q2FsbCBKSVQ6
OmVtaXROYWtlZENhbGwoQ29kZVB0ciBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQobV9ieXRlY29k
ZU9mZnNldCAhPSAodW5zaWduZWQpLTEpOyAvLyBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBj
YWxsZWQgZHVyaW5nIGhvdC9jb2xkIHBhdGggZ2VuZXJhdGlvbiwgc28gdGhhdCBtX2J5dGVjb2Rl
T2Zmc2V0IGlzIHNldC4KLQogICAgIENhbGwgbmFrZWRDYWxsID0gbmVhckNhbGwoKTsKICAgICBt
X2NhbGxzLmFwcGVuZChDYWxsUmVjb3JkKG5ha2VkQ2FsbCwgbV9ieXRlY29kZU9mZnNldCwgZnVu
Y3Rpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgIHJldHVybiBuYWtlZENhbGw7CkBAIC0y
MjMsMjEgKzIyMiwyMSBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0
KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oUF9KSVRPcGVyYXRpb25fRVogb3BlcmF0aW9uLCBpbnQzMl90
IG9wKQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b24oU19KSVRPcGVyYXRpb25fRUNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lz
dGVySUQgcmVnT3AyKQogewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVk
SW1tMzIob3ApKTsKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdP
cDIpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7
CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uKFNfSklUT3BlcmF0aW9uX0VDQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdp
c3RlcklEIHJlZ09wMikKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpj
YWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VPSnNzIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCBy
ZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShyZWdPcDEsIHJlZ09wMik7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRU9Kc3Mgb3BlcmF0aW9uLCBSZWdp
c3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTcHJ0X0pJVE9wZXJhdGlvbl9FWiBvcGVy
YXRpb24sIGludDMyX3Qgb3ApCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgcmVnT3AyKTsKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZElt
bTMyKG9wKSk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0
aW9uKTsKIH0KIApAQCAtMjc3LDYgKzI3NiwxMyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoQ2FsbEZyYW1lUm9sbGJh
Y2tPbkV4Y2VwdGlvbihvcGVyYXRpb24pOwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soSl9KSVRPcGVyYXRp
b25fRUUgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wKQoreworICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShyZWdPcCk7CisgICAgdXBkYXRlVG9wQ2FsbEZyYW1lKCk7CisgICAgcmV0
dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2Vw
dGlvbihWX0pJVE9wZXJhdGlvbl9FQ2Igb3BlcmF0aW9uLCBDb2RlQmxvY2sqIHBvaW50ZXIpCiB7
CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIocG9pbnRlcikp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNw
cAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fuc3RlcmVy
IDxwYXJvZ2FAcGFyb2dhLmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNWYXJpYWJs
ZU9iamVjdC5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgogI2luY2x1
ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogCkBAIC00OCw2ICs0OSw3IEBAIEpJVDo6Q29kZVJlZiBK
SVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXYKIHsKICAgICBDYWxsIG5hdGl2ZUNhbGw7CiAKKyAg
ICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgIGVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFt
ZUhlYWRlcigwLCBKU1N0YWNrOjpDb2RlQmxvY2spOwogICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJl
Z2lzdGVyLCAmbV92bS0+dG9wQ2FsbEZyYW1lKTsKIApAQCAtNTgsMjEgKzYwLDE3IEBAIEpJVDo6
Q29kZVJlZiBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXYKICAgICBlbWl0R2V0RnJvbUNhbGxG
cmFtZUhlYWRlclB0cihKU1N0YWNrOjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDApOwogICAgIGVt
aXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIocmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwog
Ci0gICAgcGVlayhyZWdUMSk7Ci0gICAgZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIo
cmVnVDEpOwotCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoZWN4LCBlZHgsIC4u
Lik7CiAgICAgLy8gSG9zdCBmdW5jdGlvbiBzaWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CiAgICAg
bW92ZShjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplY3gpOwogCi0gICAgc3ViUHRy
KFRydXN0ZWRJbW0zMigxNiAtIHNpemVvZih2b2lkKikpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
IC8vIEFsaWduIHN0YWNrIGFmdGVyIGNhbGwuCi0KLSAgICBtb3ZlKHJlZ1QwLCBjYWxsRnJhbWVS
ZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZv
aWQgbG9hZGluZyBmcm9tIHN0YWNrLgorICAgIHN1YlB0cihUcnVzdGVkSW1tMzIoOCksIHN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsgLy8gQWxpZ24gc3RhY2sgZm9yIGNhbGwuCisgICAgc3RvcmVQdHIo
WDg2UmVnaXN0ZXJzOjplY3gsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIpKTsKIAogICAg
IC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgbmF0aXZlQ2FsbCA9IGNhbGwoKTsKIAotICAgIGFk
ZFB0cihUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2Yodm9pZCopKSwgc3RhY2tQb2ludGVyUmVnaXN0
ZXIpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoOCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
IAogI2VsaWYgQ1BVKEFSTSkgfHwgQ1BVKFNINCkgfHwgQ1BVKE1JUFMpCiAgICAgLy8gTG9hZCBj
YWxsZXIgZnJhbWUncyBzY29wZSBjaGFpbiBpbnRvIHRoaXMgY2FsbGZyYW1lIHNvIHRoYXQgd2hh
dGV2ZXIgd2UgY2FsbCBjYW4gZ2V0IHRvIGl0cyBnbG9iYWwgZGF0YS4KQEAgLTgwLDkgKzc4LDYg
QEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdgogICAgIGVtaXRHZXRG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIHJlZ1QxLCByZWdUMik7
CiAgICAgZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgSlNTdGFjazo6U2NvcGVD
aGFpbik7CiAKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwocmVnVDMpOyAvLyBD
YWxsZWUgcHJlc2VydmVkCi0gICAgZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIocmVn
VDMpOwotCiAjaWYgQ1BVKE1JUFMpCiAgICAgLy8gQWxsb2NhdGUgc3RhY2sgc3BhY2UgZm9yICh1
bnVzZWQpIDE2IGJ5dGVzICg4LWJ5dGUgYWxpZ25lZCkgZm9yIDQgYXJndW1lbnRzLgogICAgIHN1
YlB0cihUcnVzdGVkSW1tMzIoMTYpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CkBAIC05Myw3ICs4
OCw2IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXYKICAgICBtb3Zl
KGNhbGxGcmFtZVJlZ2lzdGVyLCBhcmd1bWVudEdQUjApOwogCiAgICAgZW1pdEdldEZyb21DYWxs
RnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBhcmd1bWVudEdQUjEpOwotICAgIG1vdmUo
cmVnVDIsIGNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFt
ZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAgbG9hZFB0cihBZGRy
ZXNzKGFyZ3VtZW50R1BSMSwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fZXhlY3V0YWJs
ZSkpLCByZWdUMik7CiAKICAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgpAQCAtMTEzLDMwICsxMDcs
MjcgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdgogICAgIC8vIENo
ZWNrIGZvciBhbiBleGNlcHRpb24KICAgICBKdW1wIHNhd0V4Y2VwdGlvbiA9IGJyYW5jaDMyKE5v
dEVxdWFsLCBBYnNvbHV0ZUFkZHJlc3MocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odm0tPmFkZHJl
c3NPZkV4Y2VwdGlvbigpKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcp
KSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKTsgCiAKKyAgICBlbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgIC8vIFJldHVybi4KICAgICByZXQoKTsKIAogICAgIC8vIEhh
bmRsZSBhbiBleGNlcHRpb24KICAgICBzYXdFeGNlcHRpb24ubGluayh0aGlzKTsKIAotICAgIC8v
IEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVy
Q2FsbChyZWdUMSk7Ci0KLSAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoJnZtLT5leGNlcHRpb25Mb2Nh
dGlvbiksIHJlZ1QyKTsKLSAgICBzdG9yZVB0cihyZWdUMSwgcmVnVDIpOwogICAgIHN0b3JlUHRy
KGNhbGxGcmFtZVJlZ2lzdGVyLCAmbV92bS0+dG9wQ2FsbEZyYW1lKTsKIAogI2lmIENQVShYODYp
Ci0gICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtMTIpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0g
ICAgcHVzaChjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtNCks
IHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVn
aXN0ZXIpLCBYODZSZWdpc3RlcnM6OmVjeCk7CisgICAgcHVzaChYODZSZWdpc3RlcnM6OmVjeCk7
CiAjZWxzZQotICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIGFyZ3VtZW50R1BSMCk7CisgICAg
bG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyKSwgYXJndW1lbnRHUFIwKTsKICNlbmRp
ZgogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihGdW5jdGlvblB0cihvcGVyYXRpb25WTUhhbmRsZUV4
Y2VwdGlvbikudmFsdWUoKSksIHJlZ1QzKTsKICAgICBjYWxsKHJlZ1QzKTsKIAogI2lmIENQVShY
ODYpCi0gICAgYWRkUHRyKFRydXN0ZWRJbW0zMigxNiksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
KyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDgpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAjZW5k
aWYKIAogICAgIGp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIoKTsKQEAgLTE3NSw3ICsxNjYsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9lbmQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiB7CiAgICAgQVNTRVJUKHJl
dHVyblZhbHVlR1BSICE9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBlbWl0TG9hZChjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMSwgcmVnVDApOwotICAgIHJlc3RvcmVSZXR1
cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFt
ZTo6cmV0dXJuUENPZmZzZXQoKSkpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
cmV0KCk7CiB9CiAKQEAgLTkyNyw2ICs5MTgsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9jYXRjaChJ
bnN0cnVjdGlvbiogY3VyCiAgICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fdm0pLCByZWdUMyk7CiAg
ICAgLy8gb3BlcmF0aW9uVGhyb3cgcmV0dXJucyB0aGUgY2FsbEZyYW1lIGZvciB0aGUgaGFuZGxl
ci4KICAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMywgVk06OmNhbGxGcmFtZUZvclRocm93T2Zmc2V0
KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNr
UG9pbnRlck9mZnNldEZvcihjb2RlQmxvY2soKSkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZy
YW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKwogICAgIC8vIE5vdyBzdG9yZSB0
aGUgZXhjZXB0aW9uIHJldHVybmVkIGJ5IG9wZXJhdGlvblRocm93LgogICAgIGxvYWQzMihBZGRy
ZXNzKHJlZ1QzLCBWTTo6ZXhjZXB0aW9uT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1
ZSwgdS5hc0JpdHMucGF5bG9hZCkpLCByZWdUMCk7CiAgICAgbG9hZDMyKEFkZHJlc3MocmVnVDMs
IFZNOjpleGNlcHRpb25PZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0
cy50YWcpKSwgcmVnVDEpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAi
SlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCIKICNpbmNs
dWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwuaCIKICNpbmNsdWRlICJTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0
ZXIuaCIKIApAQCAtNzMsNyArNzQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9lbmQoSW5zdHJ1Y3Rp
b24qIGN1cnJlCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQocmV0dXJuVmFsdWVHUFIgIT0gY2FsbEZy
YW1lUmVnaXN0ZXIpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCwgcmV0dXJuVmFsdWVHUFIpOwotICAgIHJlc3RvcmVSZXR1cm5BZGRy
ZXNzQmVmb3JlUmV0dXJuKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0
dXJuUENPZmZzZXQoKSkpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7
CiB9CiAKQEAgLTI2MiwxNCArMjYzLDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmV0KEluc3RydWN0
aW9uKiBjdXJyZQogICAgIC8vIFJldHVybiB0aGUgcmVzdWx0IGluICVlYXguCiAgICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZXR1cm5W
YWx1ZUdQUik7CiAKLSAgICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICBlbWl0R2V0
UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QxKTsKLQotICAgIC8vIFJlc3RvcmUg
b3VyIGNhbGxlcidzICJyIi4KLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVh
ZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKLQotICAgIC8vIFJldHVybi4KLSAgICByZXN0b3Jl
UmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMSk7CisgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQoKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQog
CkBAIC0yODUsMTQgKzI4MCw4IEBAIHZvaWQgSklUOjplbWl0X29wX3JldF9vYmplY3Rfb3JfdGhp
cyhJbnMKICAgICBsb2FkUHRyKEFkZHJlc3MocmV0dXJuVmFsdWVHUFIsIEpTQ2VsbDo6c3RydWN0
dXJlT2Zmc2V0KCkpLCByZWdUMik7CiAgICAgSnVtcCBub3RPYmplY3QgPSBlbWl0SnVtcElmTm90
T2JqZWN0KHJlZ1QyKTsKIAotICAgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIGVt
aXRHZXRSZXR1cm5QQ0Zyb21DYWxsRnJhbWVIZWFkZXJQdHIocmVnVDEpOwotCi0gICAgLy8gUmVz
dG9yZSBvdXIgY2FsbGVyJ3MgInIiLgotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOwotCiAgICAgLy8gUmV0dXJuLgotICAgIHJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QxKTsKKyAgICBlbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgIHJldCgpOwogCiAgICAgLy8gUmV0dXJuICd0aGlzJyBpbiAlZWF4LgpA
QCAtMzAwLDE0ICsyODksOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXRfb2JqZWN0X29yX3RoaXMo
SW5zCiAgICAgbm90T2JqZWN0LmxpbmsodGhpcyk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kLCByZXR1cm5WYWx1ZUdQUik7CiAKLSAg
ICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKHJlZ1QxKTsKLQotICAgIC8vIFJlc3RvcmUgb3VyIGNhbGxlcidzICJy
Ii4KLSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFt
ZVJlZ2lzdGVyKTsKLQogICAgIC8vIFJldHVybi4KLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0Jl
Zm9yZVJldHVybihyZWdUMSk7CisgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICByZXQo
KTsKIH0KIApAQCAtNjUwLDYgKzYzMyw5IEBAIHZvaWQgSklUOjplbWl0X29wX2NhdGNoKEluc3Ry
dWN0aW9uKiBjdXIKIHsKICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIobV92bSksIHJlZ1QzKTsKICAg
ICBsb2FkNjQoQWRkcmVzcyhyZWdUMywgVk06OmNhbGxGcmFtZUZvclRocm93T2Zmc2V0KCkpLCBj
YWxsRnJhbWVSZWdpc3Rlcik7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRl
ck9mZnNldEZvcihjb2RlQmxvY2soKSkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVn
aXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKwogICAgIGxvYWQ2NChBZGRyZXNzKHJlZ1Qz
LCBWTTo6ZXhjZXB0aW9uT2Zmc2V0KCkpLCByZWdUMCk7CiAgICAgc3RvcmU2NChUcnVzdGVkSW1t
NjQoSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSkpLCBBZGRyZXNzKHJlZ1QzLCBWTTo6ZXhjZXB0
aW9uT2Zmc2V0KCkpKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVj
dGlvblsxXS51Lm9wZXJhbmQpOwpAQCAtMTEwMywyMCArMTA4OSw4IEBAIHZvaWQgSklUOjplbWl0
X29wX2xvb3BfaGludChJbnN0cnVjdGlvbioKIHsKICAgICAvLyBFbWl0IHRoZSBKSVQgb3B0aW1p
emF0aW9uIGNoZWNrOiAKICAgICBpZiAoY2FuQmVPcHRpbWl6ZWQoKSkgewotICAgICAgICBpZiAo
T3B0aW9uczo6ZW5hYmxlT1NSRW50cnlJbkxvb3BzKCkpIHsKLSAgICAgICAgICAgIGFkZFNsb3dD
YXNlKGJyYW5jaEFkZDMyKFBvc2l0aXZlT3JaZXJvLCBUcnVzdGVkSW1tMzIoT3B0aW9uczo6ZXhl
Y3V0aW9uQ291bnRlckluY3JlbWVudEZvckxvb3AoKSksCi0gICAgICAgICAgICAgICAgQWJzb2x1
dGVBZGRyZXNzKG1fY29kZUJsb2NrLT5hZGRyZXNzT2ZKSVRFeGVjdXRlQ291bnRlcigpKSkpOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gQWRkIHdpdGggc2F0dXJhdGlvbi4KLSAg
ICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+YWRkcmVzc09mSklURXhl
Y3V0ZUNvdW50ZXIoKSksIHJlZ1QzKTsKLSAgICAgICAgICAgIGxvYWQzMihyZWdUMywgcmVnVDIp
OwotICAgICAgICAgICAgSnVtcCBkb250QWRkID0gYnJhbmNoMzIoCi0gICAgICAgICAgICAgICAg
R3JlYXRlclRoYW4sIHJlZ1QyLAotICAgICAgICAgICAgICAgIFRydXN0ZWRJbW0zMihzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSAtIE9wdGlvbnM6OmV4ZWN1dGlvbkNvdW50ZXJJ
bmNyZW1lbnRGb3JMb29wKCkpKTsKLSAgICAgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0zMihPcHRp
b25zOjpleGVjdXRpb25Db3VudGVySW5jcmVtZW50Rm9yTG9vcCgpKSwgcmVnVDIpOwotICAgICAg
ICAgICAgc3RvcmUzMihyZWdUMiwgcmVnVDMpOwotICAgICAgICAgICAgZG9udEFkZC5saW5rKHRo
aXMpOwotICAgICAgICB9CisgICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaEFkZDMyKFBvc2l0aXZl
T3JaZXJvLCBUcnVzdGVkSW1tMzIoT3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZv
ckxvb3AoKSksCisgICAgICAgICAgICBBYnNvbHV0ZUFkZHJlc3MobV9jb2RlQmxvY2stPmFkZHJl
c3NPZkpJVEV4ZWN1dGVDb3VudGVyKCkpKSk7CiAgICAgfQogCiAgICAgLy8gRW1pdCB0aGUgd2F0
Y2hkb2cgdGltZXIgY2hlY2s6CkBAIC0xMTI4LDExICsxMTAyLDEyIEBAIHZvaWQgSklUOjplbWl0
U2xvd19vcF9sb29wX2hpbnQoSW5zdHJ1Y3QKIHsKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAv
LyBFbWl0IHRoZSBzbG93IHBhdGggZm9yIHRoZSBKSVQgb3B0aW1pemF0aW9uIGNoZWNrOgotICAg
IGlmIChjYW5CZU9wdGltaXplZCgpICYmIE9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5SW5Mb29wcygp
KSB7CisgICAgaWYgKGNhbkJlT3B0aW1pemVkKCkpIHsKICAgICAgICAgbGlua1Nsb3dDYXNlKGl0
ZXIpOwogICAgICAgICAKICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25PcHRpbWl6ZSwg
bV9ieXRlY29kZU9mZnNldCk7CiAgICAgICAgIEp1bXAgbm9PcHRpbWl6ZWRFbnRyeSA9IGJyYW5j
aFRlc3RQdHIoWmVybywgcmV0dXJuVmFsdWVHUFIpOworICAgICAgICBtb3ZlKHJldHVyblZhbHVl
R1BSMiwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICBqdW1wKHJldHVyblZhbHVlR1BS
KTsKICAgICAgICAgbm9PcHRpbWl6ZWRFbnRyeS5saW5rKHRoaXMpOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMwLDEyICszMCwxMiBAQAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUg
IkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCi0jaW5j
bHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiREZHQ29tcGlsYXRpb25Nb2RlLmgi
CiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCiAjaW5jbHVkZSAiREZHT1NSRW50cnkuaCIKICNpbmNs
dWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiRXJyb3JI
YW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSG9z
dENhbGxSZXR1cm5WYWx1ZS5oIgogI2luY2x1ZGUgIkpJVC5oIgpAQCAtNzEsNyArNzEsNyBAQCB2
b2lkICogX1JldHVybkFkZHJlc3Modm9pZCk7CiAjZW5kaWYKIAogCi12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uU3RhY2tDaGVjayhFeGVjU3RhdGUqIGV4ZWMsIENvZGVCbG9jayogY29kZUJs
b2NrKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9y
KEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiB7CiAgICAgLy8gV2UgcGFz
cyBpbiBvdXIgb3duIGNvZGUgYmxvY2ssIGJlY2F1c2UgdGhlIGNhbGxmcmFtZSBoYXNuJ3QgYmVl
biBwb3B1bGF0ZWQuCiAgICAgVk0qIHZtID0gY29kZUJsb2NrLT52bSgpOwpAQCAtODAsMTEgKzgw
LDggQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0YWNrQ2hlY2soRQogICAgICAgICBj
YWxsZXJGcmFtZSA9IGV4ZWM7CiAKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsZXJGcmFtZSk7Ci0KLSAgICBKU1N0YWNrJiBzdGFjayA9IHZtLT5pbnRlcnByZXRlci0+
c3RhY2soKTsKLQotICAgIGlmIChVTkxJS0VMWSghc3RhY2suZ3JvdygmZXhlYy0+cmVnaXN0ZXJz
KClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoY29kZUJsb2NrLT5mcmFtZVJlZ2lzdGVyQ291bnQo
KSkub2Zmc2V0KCldKSkpCi0gICAgICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwg
Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZyYW1lKSk7CisgICAgRXJyb3JIYW5kbGlu
Z1Njb3BlIGVycm9yU2NvcGUoKnZtKTsKKyAgICB2bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJh
bWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsZXJGcmFtZSkpOwogfQogCiBpbnQzMl90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2soRXhlY1N0YXRlKiBleGVjKQpA
QCAtOTcsNyArOTQsNyBAQCBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5
CiAKICAgICBpbnQzMl90IG1pc3NpbmdBcmdDb3VudCA9IENvbW1vblNsb3dQYXRoczo6YXJpdHlD
aGVja0ZvcihleGVjLCAmc3RhY2ssIENvZGVGb3JDYWxsKTsKICAgICBpZiAobWlzc2luZ0FyZ0Nv
dW50IDwgMCkKLSAgICAgICAgdm0tPnRocm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVT
dGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUpKTsKKyAgICAgICAgdGhyb3dTdGFja092ZXJm
bG93RXJyb3IoY2FsbGVyRnJhbWUpOwogCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0K
QEAgLTExMiw3ICsxMDksNyBAQCBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29uc3Ry
dWN0CiAKICAgICBpbnQzMl90IG1pc3NpbmdBcmdDb3VudCA9IENvbW1vblNsb3dQYXRoczo6YXJp
dHlDaGVja0ZvcihleGVjLCAmc3RhY2ssIENvZGVGb3JDb25zdHJ1Y3QpOwogICAgIGlmIChtaXNz
aW5nQXJnQ291bnQgPCAwKQotICAgICAgICB2bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJhbWUs
IGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsZXJGcmFtZSkpOworICAgICAgICB0aHJvd1N0
YWNrT3ZlcmZsb3dFcnJvcihjYWxsZXJGcmFtZSk7CiAKICAgICByZXR1cm4gbWlzc2luZ0FyZ0Nv
dW50OwogfQpAQCAtNjEyLDE1ICs2MDksMTMgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkRpcmVjdFB1dEJ5VgogICAgIGRpcmVjdFB1dEJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJhc2VWYWx1
ZSksIHN1YnNjcmlwdCwgdmFsdWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjLCBFeGVjU3Rh
dGUqIGV4ZWNDYWxsZWUpCiB7Ci0gICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGV4ZWNDYWxs
ZWUtPmNhbGxlckZyYW1lKCk7Ci0gICAgQVNTRVJUKGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCkt
PmNvZGVCbG9jaygpLT5jb2RlVHlwZSgpICE9IEZ1bmN0aW9uQ29kZQotICAgICAgICB8fCAhZXhl
Y0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPm5lZWRzRnVsbFNjb3BlQ2hhaW4o
KQotICAgICAgICB8fCBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT51bmNoZWNrZWRSKGV4ZWND
YWxsZWUtPmNhbGxlckZyYW1lKCktPmNvZGVCbG9jaygpLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKS5v
ZmZzZXQoKSkuanNWYWx1ZSgpKTsKKyAgICBBU1NFUlQoZXhlYy0+Y29kZUJsb2NrKCktPmNvZGVU
eXBlKCkgIT0gRnVuY3Rpb25Db2RlCisgICAgICAgIHx8ICFleGVjLT5jb2RlQmxvY2soKS0+bmVl
ZHNGdWxsU2NvcGVDaGFpbigpCisgICAgICAgIHx8IGV4ZWMtPnVuY2hlY2tlZFIoZXhlYy0+Y29k
ZUJsb2NrKCktPmFjdGl2YXRpb25SZWdpc3RlcigpLm9mZnNldCgpKS5qc1ZhbHVlKCkpOwogCi0g
ICAgZXhlY0NhbGxlZS0+c2V0U2NvcGUoY2FsbGVyRnJhbWUtPnNjb3BlKCkpOwotICAgIGV4ZWND
YWxsZWUtPnNldFJldHVyblBDKHN0YXRpY19jYXN0PEluc3RydWN0aW9uKj4oT1VSX1JFVFVSTl9B
RERSRVNTKSk7CisgICAgZXhlY0NhbGxlZS0+c2V0U2NvcGUoZXhlYy0+c2NvcGUoKSk7CiAgICAg
ZXhlY0NhbGxlZS0+c2V0Q29kZUJsb2NrKDApOwogCiAgICAgaWYgKCFpc0hvc3RGdW5jdGlvbihl
eGVjQ2FsbGVlLT5jYWxsZWVBc1ZhbHVlKCksIGdsb2JhbEZ1bmNFdmFsKSkKQEAgLTY4NSw3ICs2
ODAsOCBAQCBzdGF0aWMgdm9pZCogaGFuZGxlSG9zdENhbGwoRXhlY1N0YXRlKiBlCiAgICAgcmV0
dXJuIHZtLT5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRv
cikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiB9CiAKLWlubGluZSBjaGFyKiBsaW5rRm9y
KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQoraW5s
aW5lIGNoYXIqIGxpbmtGb3IoCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7
CiAgICAgRXhlY1N0YXRlKiBleGVjID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKICAgICBW
TSogdm0gPSAmZXhlYy0+dm0oKTsKQEAgLTcwNCwzOCArNzAwLDUyIEBAIGlubGluZSBjaGFyKiBs
aW5rRm9yKEV4ZWNTdGF0ZSogZXhlY0NhbGwKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IDA7
CiAgICAgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0
Q2FsbExpbmtJbmZvKGV4ZWNDYWxsZWUtPnJldHVyblBDKCkpOwogICAgIGlmIChleGVjdXRhYmxl
LT5pc0hvc3RGdW5jdGlvbigpKQotICAgICAgICBjb2RlUHRyID0gZXhlY3V0YWJsZS0+Z2VuZXJh
dGVkSklUQ29kZUZvcihraW5kKS0+YWRkcmVzc0ZvckNhbGwoKTsKKyAgICAgICAgY29kZVB0ciA9
IGV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3IoKnZtLCBraW5kLCBNdXN0Q2hlY2tBcml0eSwgcmVn
aXN0ZXJzKTsKICAgICBlbHNlIHsKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlv
bkV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxl
KTsKICAgICAgICAgSlNPYmplY3QqIGVycm9yID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5wcmVwYXJl
Rm9yRXhlY3V0aW9uKGV4ZWNDYWxsZWUsIGNhbGxlZS0+c2NvcGUoKSwga2luZCk7CiAgICAgICAg
IGlmIChlcnJvcikgewotICAgICAgICAgICAgdm0tPnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0
ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CisgICAgICAgICAgICB0aHJvd1N0YWNrT3ZlcmZs
b3dFcnJvcihleGVjKTsKICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIq
Pih2bS0+Z2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1BhdGhHZW5lcmF0b3Ip
LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKICAgICAgICAgfQogICAgICAgICBjb2RlQmxv
Y2sgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvZGVCbG9ja0ZvcihraW5kKTsKKyAgICAgICAgQXJp
dHlDaGVja01vZGUgYXJpdHk7CiAgICAgICAgIGlmIChleGVjQ2FsbGVlLT5hcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcygpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2stPm51bVBhcmFt
ZXRlcnMoKSkgfHwgY2FsbExpbmtJbmZvLmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2FsbFZh
cmFyZ3MpCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0
ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9IE11
c3RDaGVja0FyaXR5OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rp
b25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2FsbCgp
OworICAgICAgICAgICAgYXJpdHkgPSBBcml0eUNoZWNrTm90UmVxdWlyZWQ7CisgICAgICAgIGNv
ZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3IoKnZtLCBraW5kLCBhcml0
eSwgcmVnaXN0ZXJzKTsKICAgICB9CiAgICAgaWYgKCFjYWxsTGlua0luZm8uc2Vlbk9uY2UoKSkK
ICAgICAgICAgY2FsbExpbmtJbmZvLnNldFNlZW4oKTsKICAgICBlbHNlCi0gICAgICAgIGxpbmtG
b3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBjb2RlQmxvY2ssIGNhbGxlZSwgY29kZVB0ciwg
a2luZCk7CisgICAgICAgIGxpbmtGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBjb2RlQmxv
Y2ssIGNhbGxlZSwgY29kZVB0ciwga2luZCwgcmVnaXN0ZXJzKTsKICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4oY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpKTsKIH0KIAogY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUp
CiB7Ci0gICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwpOworICAgIHJl
dHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkKTsKIH0KIAogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ29u
c3RydWN0KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICByZXR1cm4gbGlua0ZvcihleGVj
Q2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gbGlua0ZvcihleGVjQ2FsbGVl
LCBDb2RlRm9yQ29uc3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKK30K
KworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdz
KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3sKKyAgICByZXR1cm4gbGlua0ZvcihleGVjQ2FsbGVl
LCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKIH0KIAotaW5saW5lIGNoYXIq
IHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kIGtpbmQsIEpTQ2VsbComIGNhbGxlZUFzRnVuY3Rpb25DZWxsKQorY2hhciog
SklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3MoRXhl
Y1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUsIENv
ZGVGb3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK2lubGluZSBjaGFy
KiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKAorICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0
ZXJzLAorICAgIEpTQ2VsbComIGNhbGxlZUFzRnVuY3Rpb25DZWxsKQogewogICAgIEV4ZWNTdGF0
ZSogZXhlYyA9IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCk7CiAgICAgVk0qIHZtID0gJmV4ZWMt
PnZtKCk7CkBAIC03NTcsMTYgKzc2NywyMCBAQCBpbmxpbmUgY2hhciogdmlydHVhbEZvcldpdGhG
dW5jdGlvbihFeGVjCiAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
dm0tPmdldENUSVN0dWIodGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVXaXRo
QXJpdHlDaGVja0ZvcihraW5kKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oZXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcigKKyAgICAgICAg
KnZtLCBraW5kLCBNdXN0Q2hlY2tBcml0eSwgcmVnaXN0ZXJzKS5leGVjdXRhYmxlQWRkcmVzcygp
KTsKIH0KIAotaW5saW5lIGNoYXIqIHZpcnR1YWxGb3IoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCitpbmxpbmUgY2hhciogdmlydHVhbEZvcigKKyAg
ICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVn
aXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBKU0NlbGwqIGNhbGxlZUFz
RnVuY3Rpb25DZWxsSWdub3JlZDsKLSAgICByZXR1cm4gdmlydHVhbEZvcldpdGhGdW5jdGlvbihl
eGVjQ2FsbGVlLCBraW5kLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbElnbm9yZWQpOworICAgIHJldHVy
biB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIGtpbmQsIHJlZ2lzdGVycywgY2Fs
bGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVkKTsKIH0KIAotc3RhdGljIGJvb2wgYXR0ZW1wdFRvT3B0
aW1pemVDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIEpTQ2VsbCogY2FsbGVlQXNG
dW5jdGlvbkNlbGwsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQorc3RhdGljIGJvb2wgYXR0
ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbCgKKyAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMsIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlv
bkNlbGwsCisgICAgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiB7CiAgICAgaWYgKCFjYWxs
ZWVBc0Z1bmN0aW9uQ2VsbCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzgwLDcgKzc5NCwx
MCBAQCBzdGF0aWMgYm9vbCBhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAKICAgICBBU1NFUlQoY2FsbGVlLT5leGVjdXRhYmxlKCktPmhhc0pJ
VENvZGVGb3JDYWxsKCkpOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyID0gY2Fs
bGVlLT5leGVjdXRhYmxlKCktPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCktPmFkZHJlc3NGb3JD
YWxsKCk7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIgPQorICAgICAgICBjYWxs
ZWUtPmV4ZWN1dGFibGUoKS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+YWRkcmVzc0ZvckNh
bGwoCisgICAgICAgICAgICAqZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCkt
PnZtKCksIGNhbGxlZS0+ZXhlY3V0YWJsZSgpLAorICAgICAgICAgICAgQXJpdHlDaGVja05vdFJl
cXVpcmVkLCByZWdpc3RlcnMpOwogICAgIAogICAgIENvZGVCbG9jayogY29kZUJsb2NrOwogICAg
IGlmIChjYWxsZWUtPmV4ZWN1dGFibGUoKS0+aXNIb3N0RnVuY3Rpb24oKSkKQEAgLTc5Myw3ICs4
MTAsNyBAQCBzdGF0aWMgYm9vbCBhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsCiAgICAgCiAg
ICAgbGlua0Nsb3N1cmVDYWxsKAogICAgICAgICBleGVjQ2FsbGVlLCBjYWxsTGlua0luZm8sIGNv
ZGVCbG9jaywKLSAgICAgICAgY2FsbGVlLT5zdHJ1Y3R1cmUoKSwgY2FsbGVlLT5leGVjdXRhYmxl
KCksIGNvZGVQdHIpOworICAgICAgICBjYWxsZWUtPnN0cnVjdHVyZSgpLCBjYWxsZWUtPmV4ZWN1
dGFibGUoKSwgY29kZVB0ciwgcmVnaXN0ZXJzKTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
QEAgLTgwMSwyNSArODE4LDQ2IEBAIHN0YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXplQ2xvc3Vy
ZUNhbGwKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsKEV4ZWNT
dGF0ZSogZXhlY0NhbGxlZSkKIHsKICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsOwot
ICAgIGNoYXIqIHJlc3VsdCA9IHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwgQ29k
ZUZvckNhbGwsIGNhbGxlZUFzRnVuY3Rpb25DZWxsKTsKKyAgICBjaGFyKiByZXN1bHQgPSB2aXJ0
dWFsRm9yV2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNl
cnZhdGlvbk5vdFJlcXVpcmVkLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCk7CiAgICAgQ2FsbExpbmtJ
bmZvJiBjYWxsTGlua0luZm8gPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2so
KS0+Z2V0Q2FsbExpbmtJbmZvKGV4ZWNDYWxsZWUtPnJldHVyblBDKCkpOwogCi0gICAgaWYgKCFh
dHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKGV4ZWNDYWxsZWUsIGNhbGxlZUFzRnVuY3Rpb25D
ZWxsLCBjYWxsTGlua0luZm8pKQotICAgICAgICBsaW5rU2xvd0ZvcihleGVjQ2FsbGVlLCBjYWxs
TGlua0luZm8sIENvZGVGb3JDYWxsKTsKKyAgICBpZiAoIWF0dGVtcHRUb09wdGltaXplQ2xvc3Vy
ZUNhbGwoZXhlY0NhbGxlZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCwgY2FsbGVl
QXNGdW5jdGlvbkNlbGwsIGNhbGxMaW5rSW5mbykpCisgICAgICAgIGxpbmtTbG93Rm9yKGV4ZWND
YWxsZWUsIGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90
UmVxdWlyZWQpOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGNoYXIqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVmlydHVhbENhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogeyAgICAK
LSAgICByZXR1cm4gdmlydHVhbEZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCk7CisgICAgcmV0
dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTm90UmVxdWlyZWQpOwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1
YWxDb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewotICAgIHJldHVybiB2aXJ0dWFs
Rm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJldHVybiB2aXJ0dWFsRm9y
KGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVx
dWlyZWQpOwogfQogCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2Fs
bFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3sKKyAgICBKU0NlbGwq
IGNhbGxlZUFzRnVuY3Rpb25DZWxsOworICAgIGNoYXIqIHJlc3VsdCA9IHZpcnR1YWxGb3JXaXRo
RnVuY3Rpb24oZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycywg
Y2FsbGVlQXNGdW5jdGlvbkNlbGwpOworICAgIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvID0g
ZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmdldENhbGxMaW5rSW5mbyhl
eGVjQ2FsbGVlLT5yZXR1cm5QQygpKTsKKworICAgIGlmICghYXR0ZW1wdFRvT3B0aW1pemVDbG9z
dXJlQ2FsbChleGVjQ2FsbGVlLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMsIGNhbGxlZUFzRnVuY3Rp
b25DZWxsLCBjYWxsTGlua0luZm8pKQorICAgICAgICBsaW5rU2xvd0ZvcihleGVjQ2FsbGVlLCBj
YWxsTGlua0luZm8sIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworICAgIAor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmly
dHVhbENhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCit7ICAgIAor
ICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBNdXN0UHJlc2Vy
dmVSZWdpc3RlcnMpOworfQorCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxD
b25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCit7CisgICAg
cmV0dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0cnVjdCwgTXVzdFByZXNl
cnZlUmVnaXN0ZXJzKTsKK30KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFy
ZUxlc3MoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyKQogewpAQCAtOTc0LDcgKzEwMTIsNyBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uRGVidWcoRXhlY1N0CiB9CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLWNo
YXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBpbnQz
Ml90IGJ5dGVjb2RlSW5kZXgpCitTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKIHsK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIoJnZtLCBleGVjKTsKQEAgLTEwMjQsNyArMTA2Miw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAgICAgY29kZUJsb2NrLT51cGRhdGVBbGxQcmVkaWN0
aW9ucygpOwogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAgICAg
ZGF0YUxvZygiQ2hvb3Npbmcgbm90IHRvIG9wdGltaXplICIsICpjb2RlQmxvY2ssICIgeWV0LCBi
ZWNhdXNlIHRoZSB0aHJlc2hvbGQgaGFzbid0IGJlZW4gcmVhY2hlZC5cbiIpOwotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICB9CiAgICAg
CiAgICAgaWYgKGNvZGVCbG9jay0+bV9zaG91bGRBbHdheXNCZUlubGluZWQpIHsKQEAgLTEwMzIs
MTggKzEwNzAsMTkgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAog
ICAgICAgICBjb2RlQmxvY2stPm9wdGltaXplQWZ0ZXJXYXJtVXAoKTsKICAgICAgICAgaWYgKE9w
dGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAgIGRhdGFMb2coIkNob29zaW5nIG5vdCB0
byBvcHRpbWl6ZSAiLCAqY29kZUJsb2NrLCAiIHlldCwgYmVjYXVzZSBtX3Nob3VsZEFsd2F5c0Jl
SW5saW5lZCA9PSB0cnVlLlxuIik7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
ZW5jb2RlUmVzdWx0KDAsIDApOwogICAgIH0KIAogICAgIC8vIFdlIGNhbm5vdCBiZSBpbiB0aGUg
cHJvY2VzcyBvZiBhc3luY2hyb25vdXMgY29tcGlsYXRpb24gYW5kIGFsc28gaGF2ZSBhbiBvcHRp
bWl6ZWQKICAgICAvLyByZXBsYWNlbWVudC4KKyAgICBERkc6OldvcmtsaXN0KiB3b3JrbGlzdCA9
IERGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpOwogICAgIEFTU0VSVCgKLSAg
ICAgICAgIXZtLndvcmtsaXN0Ci0gICAgICAgIHx8ICEodm0ud29ya2xpc3QtPmNvbXBpbGF0aW9u
U3RhdGUoREZHOjpDb21waWxhdGlvbktleShjb2RlQmxvY2ssIERGRzo6REZHTW9kZSkpICE9IERG
Rzo6V29ya2xpc3Q6Ok5vdEtub3duCisgICAgICAgICF3b3JrbGlzdAorICAgICAgICB8fCAhKHdv
cmtsaXN0LT5jb21waWxhdGlvblN0YXRlKERGRzo6Q29tcGlsYXRpb25LZXkoY29kZUJsb2NrLCBE
Rkc6OkRGR01vZGUpKSAhPSBERkc6OldvcmtsaXN0OjpOb3RLbm93bgogICAgICAgICAmJiBjb2Rl
QmxvY2stPmhhc09wdGltaXplZFJlcGxhY2VtZW50KCkpKTsKIAogICAgIERGRzo6V29ya2xpc3Q6
OlN0YXRlIHdvcmtsaXN0U3RhdGU7Ci0gICAgaWYgKHZtLndvcmtsaXN0KSB7CisgICAgaWYgKHdv
cmtsaXN0KSB7CiAgICAgICAgIC8vIFRoZSBjYWxsIHRvIERGRzo6V29ya2xpc3Q6OmNvbXBsZXRl
QWxsUmVhZHlQbGFuc0ZvclZNKCkgd2lsbCBjb21wbGV0ZSBhbGwgcmVhZHkKICAgICAgICAgLy8g
KGkuZS4gY29tcGlsZWQpIGNvZGUgYmxvY2tzLiBCdXQgaWYgaXQgY29tcGxldGVzIG91cnMsIHdl
IGFsc28gbmVlZCB0byBrbm93CiAgICAgICAgIC8vIHdoYXQgdGhlIHJlc3VsdCB3YXMgc28gdGhh
dCB3ZSBkb24ndCBwbG93IGFoZWFkIGFuZCBhdHRlbXB0IE9TUiBvciBpbW1lZGlhdGUKQEAgLTEw
NjIsNyArMTEwMSw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgK
ICAgICAgICAgLy8gcHJvYmFibHkgYSB3YXN0ZSBvZiBtZW1vcnkuIE91ciBnb2FsIGhlcmUgaXMg
dG8gY29tcGxldGUgY29kZSBibG9ja3MgYXMgc29vbiBhcwogICAgICAgICAvLyBwb3NzaWJsZSBp
biBvcmRlciB0byBtaW5pbWl6ZSB0aGUgY2hhbmNlcyBvZiB1cyBleGVjdXRpbmcgYmFzZWxpbmUg
Y29kZSBhZnRlcgogICAgICAgICAvLyBvcHRpbWl6ZWQgY29kZSBpcyBhbHJlYWR5IGF2YWlsYWJs
ZS4KLSAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHZtLndvcmtsaXN0LT5jb21wbGV0ZUFsbFJlYWR5
UGxhbnNGb3JWTSgKKyAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0ZUFs
bFJlYWR5UGxhbnNGb3JWTSgKICAgICAgICAgICAgIHZtLCBERkc6OkNvbXBpbGF0aW9uS2V5KGNv
ZGVCbG9jaywgREZHOjpERkdNb2RlKSk7CiAgICAgfSBlbHNlCiAgICAgICAgIHdvcmtsaXN0U3Rh
dGUgPSBERkc6OldvcmtsaXN0OjpOb3RLbm93bjsKQEAgLTEwNzIsNyArMTExMSw3IEBAIGNoYXIq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAgICAgLy8gcmVwbGFjZW1l
bnQuCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxh
Y2VtZW50KCkpOwogICAgICAgICBjb2RlQmxvY2stPnNldE9wdGltaXphdGlvblRocmVzaG9sZEJh
c2VkT25Db21waWxhdGlvblJlc3VsdChDb21waWxhdGlvbkRlZmVycmVkKTsKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgfQogCiAgICAg
aWYgKHdvcmtsaXN0U3RhdGUgPT0gREZHOjpXb3JrbGlzdDo6Q29tcGlsZWQpIHsKQEAgLTEwODUs
NyArMTEyNCw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAg
ICAgICAgICAgIGNvZGVCbG9jay0+dXBkYXRlQWxsUHJlZGljdGlvbnMoKTsKICAgICAgICAgICAg
IGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ29k
ZSBibG9jayAiLCAqY29kZUJsb2NrLCAiIHdhcyBjb21waWxlZCBidXQgaXQgZG9lc24ndCBoYXZl
IGFuIG9wdGltaXplZCByZXBsYWNlbWVudC5cbiIpOwotICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxhY2VtZW50KCkpIHsKICAgICAgICAg
aWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKQEAgLTExMTAsNyArMTE0OSw3IEBAIGNoYXIqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAgICAgICAgICAgICAgICAgIigi
LCAqY29kZUJsb2NrLT5yZXBsYWNlbWVudCgpLCAiKSAoaW4gbG9vcCkuXG4iKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGNvZGVCbG9jay0+cmVwbGFjZW1lbnQoKS0+amV0dGlzb24oQ291
bnRSZW9wdGltaXphdGlvbik7Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJl
dHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAg
ICBpZiAoIWNvZGVCbG9jay0+c2hvdWxkT3B0aW1pemVOb3coKSkgewpAQCAtMTExOSw3ICsxMTU4
LDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICAg
ICAgICAgICAgICAiRGVsYXlpbmcgb3B0aW1pemF0aW9uIGZvciAiLCAqY29kZUJsb2NrLAogICAg
ICAgICAgICAgICAgICAgICAiIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50IHByb2ZpbGluZy5cbiIp
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1
cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKE9wdGlvbnM6
OnZlcmJvc2VPU1IoKSkKQEAgLTExNDcsMTIgKzExODYsMTEgQEAgY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25PcHRpbWl6ZShFeAogICAgICAgICB9CiAKICAgICAgICAgQ29tcGlsYXRpb25S
ZXN1bHQgcmVzdWx0ID0gREZHOjpjb21waWxlKAotICAgICAgICAgICAgdm0sIGNvZGVCbG9jay0+
bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgREZHOjpERkdNb2RlLCBieXRlY29kZUluZGV4LAotICAg
ICAgICAgICAgbXVzdEhhbmRsZVZhbHVlcywgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2s6OmNyZWF0ZSgpLAotICAgICAgICAgICAgdm0uZW5zdXJlV29ya2xpc3QoKSk7CisgICAg
ICAgICAgICB2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCAwLCBERkc6OkRG
R01vZGUsIGJ5dGVjb2RlSW5kZXgsCisgICAgICAgICAgICBtdXN0SGFuZGxlVmFsdWVzLCBKSVRU
b0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKCkpOwogICAgICAgICAKICAg
ICAgICAgaWYgKHJlc3VsdCAhPSBDb21waWxhdGlvblN1Y2Nlc3NmdWwpCi0gICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgfQog
ICAgIAogICAgIENvZGVCbG9jayogb3B0aW1pemVkQ29kZUJsb2NrID0gY29kZUJsb2NrLT5yZXBs
YWNlbWVudCgpOwpAQCAtMTE2Niw3ICsxMjA0LDggQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25PcHRpbWl6ZShFeAogICAgICAgICB9CiAKICAgICAgICAgY29kZUJsb2NrLT5vcHRpbWl6
ZVNvb24oKTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIqPihhZGRyZXNzKTsKKyAg
ICAgICAgQVNTRVJUKGV4ZWMtPmNvZGVCbG9jaygpID09IG9wdGltaXplZENvZGVCbG9jayk7Cisg
ICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoYWRkcmVzcywgZXhlYy0+dG9wT2ZGcmFtZSgpKTsK
ICAgICB9CiAKICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKSB7CkBAIC0xMTk1LDE0ICsx
MjM0LDE0IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXgKICAgICAg
ICAgICAgICAgICAqY29kZUJsb2NrLT5yZXBsYWNlbWVudCgpLCAiIChhZnRlciBPU1IgZmFpbCku
XG4iKTsKICAgICAgICAgfQogICAgICAgICBvcHRpbWl6ZWRDb2RlQmxvY2stPmpldHRpc29uKENv
dW50UmVvcHRpbWl6YXRpb24pOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVu
Y29kZVJlc3VsdCgwLCAwKTsKICAgICB9CiAKICAgICAvLyBPU1IgZmFpbGVkIHRoaXMgdGltZSwg
YnV0IGl0IG1pZ2h0IHN1Y2NlZWQgbmV4dCB0aW1lISBMZXQgdGhlIGNvZGUgcnVuIGEgYml0CiAg
ICAgLy8gbG9uZ2VyIGFuZCB0aGVuIHRyeSBhZ2Fpbi4KICAgICBjb2RlQmxvY2stPm9wdGltaXpl
QWZ0ZXJXYXJtVXAoKTsKICAgICAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gZW5jb2RlUmVz
dWx0KDAsIDApOwogfQogI2VuZGlmCiAKQEAgLTE1MzAsMTMgKzE1NjksMTMgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKHJlc3VsdCkpOwogfQogCi1DYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uU2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikKK0Nh
bGxGcmFtZSogSklUX09QRVJBVElPTiBvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgaW50MzJfdCBmaXJz
dEZyZWVSZWdpc3RlcikKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKICAgICBKU1N0YWNrKiBzdGFjayA9ICZl
eGVjLT5pbnRlcnByZXRlcigpLT5zdGFjaygpOwogICAgIEpTVmFsdWUgYXJndW1lbnRzID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVudHMpOwotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZy
YW1lID0gc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKGV4ZWMsIHN0YWNrLCBhcmd1bWVudHMs
IGZpcnN0RnJlZVJlZ2lzdGVyKTsKKyAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IHNpemVG
cmFtZUZvclZhcmFyZ3MoZXhlYywgc3RhY2ssIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIp
OwogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiB9CiAKQEAgLTE3MjksMTIgKzE3NjgsMTEgQEAg
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluaXRHbG9iYWxDbwogICAgIHBjWzFdLnUucmVn
aXN0ZXJQb2ludGVyLT5zZXQoKnZtLCBleGVjLT5jb2RlQmxvY2soKS0+Z2xvYmFsT2JqZWN0KCks
IHZhbHVlKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIo
RXhlY1N0YXRlKiBleGVjKQordm9pZCBKSVRfT1BFUkFUSU9OIGxvb2t1cEV4Y2VwdGlvbkhhbmRs
ZXIoVk0qIHZtLCBFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7
Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYywgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyOjpW
TUVudHJ5U2VudGluZWxPSyk7CiAKLSAgICBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlID0gZXhlYy0+
ZXhjZXB0aW9uKCk7CisgICAgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZSA9IHZtLT5leGNlcHRpb24o
KTsKICAgICBBU1NFUlQoZXhjZXB0aW9uVmFsdWUpOwogICAgIAogICAgIGdlbmVyaWNVbndpbmQo
dm0sIGV4ZWMsIGV4Y2VwdGlvblZhbHVlKTsKQEAgLTE3NjcsNyArMTgwNSw2IEBAIGFzbSAoCiAi
Lmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURF
X1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgIm1vdiAwKCVyYnApLCAlcmJwXG4iIC8v
IENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdiAlcmJwLCAlcmRpXG4iCiAg
ICAgImptcCAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNT
dGF0ZSkgIlxuIgogKTsKQEAgLTE3NzgsOCArMTgxNSwxMSBAQCBhc20gKAogIi5nbG9ibCAiIFNZ
TUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogSElERV9TWU1CT0woZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVy
blZhbHVlKSAiOiIgIlxuIgotICAgICJtb3YgMCglZWJwKSwgJWVicFxuIiAvLyBDYWxsZXJGcmFt
ZUFuZFBDOjpjYWxsZXJGcmFtZQotICAgICJtb3YgJWVicCwgNCglZXNwKVxuIgorICAgICJtb3Yg
KCVlc3ApLCAlZWF4XG4iCisgICAgInB1c2ggJWVicFxuIgorICAgICJsZWFsIC00KCVlc3ApLCAl
ZXNwXG4iCisgICAgInB1c2ggJWVicFxuIgorICAgICJwdXNoICVlYXhcbiIKICAgICAiam1wICIg
TE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4i
CiApOwogCkBAIC0xNzkyLDcgKzE4MzIsNiBAQCBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVy
blZhbHVlKSAiXG4iCiAiLnRodW1iIiAiXG4iCiAiLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5DX1BB
UkFNKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibGRyIHI3LCBbcjcsICMwXSIgIlxuIiAvLyBD
YWxsZXJGcmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3YgcjAsIHI3IiAiXG4iCiAgICAg
ImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUp
ICJcbiIKICk7CkBAIC0xODA0LDcgKzE4NDMsNiBAQCBhc20gKAogSElERV9TWU1CT0woZ2V0SG9z
dENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogSU5MSU5FX0FSTV9GVU5DVElPTihnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKQogU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxu
IgotICAgICJsZHIgcjExLCBbcjExLCAjMF0iICJcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2Fs
bGVyRnJhbWUKICAgICAibW92IHIwLCByMTEiICJcbiIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5D
RShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MTYs
NyArMTg1NCw2IEBAIGFzbSAoCiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKSAiXG4iCiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4i
CiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgImxk
dXIgeDI5LCBbeDI5LCAjMF0iICJcbiIKICAgICAgIm1vdiB4MCwgeDI5IiAiXG4iCiAgICAgICJi
ICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAi
XG4iCiApOwpAQCAtMTgyOCw3ICsxODY1LDYgQEAgYXNtICgKIEhJREVfU1lNQk9MKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1
ZSkgIjoiICJcbiIKICAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFs
dWVXaXRoRXhlY1N0YXRlKQotICAgICJsdyAkZnAsIDAoJGZwKSIgIlxuIiAvLyBDYWxsZXJGcmFt
ZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3ZlICRhMCwgJGZwIiAiXG4iCiAgICAgImIgIiBM
T0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIK
ICk7CkBAIC0xODM5LDcgKzE4NzUsNiBAQCBhc20gKAogIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkco
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogSElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIg
IlxuIgotICAgICJtb3YubCBAcjE0LCByMTQiICJcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2Fs
bGVyRnJhbWUKICAgICAibW92IHIxNCwgcjQiICJcbiIKICAgICAibW92LmwgMmYsICIgU0g0X1ND
UkFUQ0hfUkVHSVNURVIgIlxuIgogICAgICJicmFmICIgU0g0X1NDUkFUQ0hfUkVHSVNURVIgIlxu
IgpAQCAtMTg1Miw3ICsxODg3LDYgQEAgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKSAiOgogZXh0ZXJuICJDIiB7CiAgICAgX19kZWNsc3BlYyhuYWtlZCkgRW5jb2RlZEpTVmFs
dWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSgp
CiAgICAgewotICAgICAgICBfX2FzbSBtb3YgZWJwLCBbZWJwICsgMF07IC8vIENhbGxlckZyYW1l
QW5kUEM6OmNhbGxlckZyYW1lCiAgICAgICAgIF9fYXNtIG1vdiBbZXNwICsgNF0sIGVicDsKICAg
ICAgICAgX19hc20gam1wIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlCiAgICAg
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEpJVCkKIAogI2lu
Y2x1ZGUgIkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1
ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlND
SlNWYWx1ZS5oIgpAQCAtNzIsNiArNzMsNyBAQCBleHRlcm4gIkMiIHsKICAgICBQYzogSW5zdHJ1
Y3Rpb24qIGkuZS4gYnl0ZWNvZGUgUEMKICAgICBSOiBSZWdpc3RlcgogICAgIFM6IHNpemVfdAor
ICAgIFNwcnQ6IFNsb3dQYXRoUmV0dXJuVHlwZQogICAgIFNzaTogU3RydWN0dXJlU3R1YkluZm8q
CiAgICAgU3Q6IFN0cnVjdHVyZSoKICAgICBWOiB2b2lkCkBAIC05Miw2ICs5NCw3IEBAIHR5cGVk
ZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkoKIHR5cGVkZWYgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VDSSkoRXhlY1N0YXRlKiwgSlNDZWxs
KiwgU3RyaW5nSW1wbCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgq
Sl9KSVRPcGVyYXRpb25fRUNKKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSk7
CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9F
REEpKEV4ZWNTdGF0ZSosIGRvdWJsZSwgSlNBcnJheSopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUUpKEV4ZWNTdGF0ZSosIEV4ZWNTdGF0
ZSopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRp
b25fRUkpKEV4ZWNTdGF0ZSosIFN0cmluZ0ltcGwqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJh
dGlvbl9FSkEpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU0FycmF5Kik7CkBAIC0xMzMs
NiArMTM2LDcgQEAgdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcgogdHlw
ZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0aW9uX0VKSikoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgc2l6ZV90IEpJVF9P
UEVSQVRJT04gKCpTX0pJVE9wZXJhdGlvbl9FT0pzcykoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBK
U1N0cmluZyopOwogdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0aW9u
X0opKEVuY29kZWRKU1ZhbHVlKTsKK3R5cGVkZWYgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVS
QVRJT04gKCpTcHJ0X0pJVE9wZXJhdGlvbl9FWikoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiB0eXBl
ZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0UpKEV4ZWNTdGF0ZSopOwog
dHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQykoRXhlY1N0YXRl
KiwgSlNDZWxsKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9u
X0VDYikoRXhlY1N0YXRlKiwgQ29kZUJsb2NrKik7CkBAIC0xNzQsMTggKzE3OCwxNyBAQCB0eXBl
ZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhCiB0eXBlZGVmIGNoYXIqIEpJVF9P
UEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FU3RQUykoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwg
dm9pZCosIHNpemVfdCk7CiB0eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJh
dGlvbl9FU3RTUykoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgc2l6ZV90LCBzaXplX3QpOwogdHlw
ZWRlZiBjaGFyKiBKSVRfT1BFUkFUSU9OICgqUF9KSVRPcGVyYXRpb25fRVN0WikoRXhlY1N0YXRl
KiwgU3RydWN0dXJlKiwgaW50MzJfdCk7Ci10eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQ
X0pJVE9wZXJhdGlvbl9FWikoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiB0eXBlZGVmIGNoYXIqIEpJ
VF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FWlopKEV4ZWNTdGF0ZSosIGludDMyX3QsIGlu
dDMyX3QpOwogdHlwZWRlZiBTdHJpbmdJbXBsKiBKSVRfT1BFUkFUSU9OICgqSV9KSVRPcGVyYXRp
b25fRUpzcykoRXhlY1N0YXRlKiwgSlNTdHJpbmcqKTsKIHR5cGVkZWYgSlNTdHJpbmcqIEpJVF9P
UEVSQVRJT04gKCpKc3NfSklUT3BlcmF0aW9uX0VaKShFeGVjU3RhdGUqLCBpbnQzMl90KTsKIAog
Ly8gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBsb29rdXAgYW4gZXhjZXB0aW9uIGhhbmRlciwga2V5
ZWQgYnkgZmF1bHRMb2NhdGlvbiwgd2hpY2ggaXMKIC8vIHRoZSByZXR1cm4gbG9jYXRpb24gZnJv
bSBvbmUgb2YgdGhlIGNhbGxzIG91dCB0byBvbmUgb2YgdGhlIGhlbHBlciBvcGVyYXRpb25zIGFi
b3ZlLgotICAgIAotdm9pZCBKSVRfT1BFUkFUSU9OIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIoRXhl
Y1N0YXRlKikgV1RGX0lOVEVSTkFMOworCit2b2lkIEpJVF9PUEVSQVRJT04gbG9va3VwRXhjZXB0
aW9uSGFuZGxlcihWTSosIEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WTUhhbmRsZUV4Y2VwdGlvbihFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25TdGFja0NoZWNrKEV4ZWNTdGF0ZSosIENv
ZGVCbG9jayopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJv
d1N0YWNrT3ZlcmZsb3dFcnJvcihFeGVjU3RhdGUqLCBDb2RlQmxvY2sqKSBXVEZfSU5URVJOQUw7
CiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2soRXhlY1N0YXRl
KikgV1RGX0lOVEVSTkFMOwogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnN0cnVj
dEFyaXR5Q2hlY2soRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUsIFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CkBAIC0yMTMsMTIg
KzIxNiwxOCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlCiB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwog
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
IFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2Fs
bEV2YWwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwotY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25WaXJ0dWFsQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSosIEV4ZWNTdGF0ZSop
IFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGwoRXhl
Y1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5r
Q2xvc3VyZUNhbGwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25WaXJ0dWFsQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3QoRXhlY1N0YXRlKikgV1RGX0lO
VEVSTkFMOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ29uc3RydWN0KEV4ZWNT
dGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Nh
bGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzKEV4ZWNT
dGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVh
bENhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVncyhF
eGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxp
bmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CisK
IHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVMZXNzKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogc2l6ZV90IEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUxlc3NFcShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNvbXBhcmVHcmVhdGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwpAQCAtMjQyLDcgKzI1MSw3IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25UaHJvd1N0YXRpY0UKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25U
aHJvdyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkRlYnVnKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5B
TDsKICNpZiBFTkFCTEUoREZHX0pJVCkKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0
aW1pemUoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOworU2xvd1BhdGhSZXR1cm5U
eXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0YXRlKiwgaW50MzJfdCkg
V1RGX0lOVEVSTkFMOwogI2VuZGlmCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJ
bmRleChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUp
OwogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0yNjcsNyArMjc2LDcgQEAgdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblRlYXJPZmZBcmd1bQogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EZWxldGVCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIGNvbnN0
IElkZW50aWZpZXIqKSBXVEZfSU5URVJOQUw7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0UE5hbWVzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwogRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykgV1RGX0lOVEVSTkFMOwotQ2FsbEZy
YW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVBbmRBbGxvY0ZyYW1lRm9yVmFyYXJncyhF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGludDMyX3QgZmlyc3RGcmVlUmVn
aXN0ZXIpIFdURl9JTlRFUk5BTDsKK0NhbGxGcmFtZSogSklUX09QRVJBVElPTiBvcGVyYXRpb25T
aXplRnJhbWVGb3JWYXJhcmdzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywg
aW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikgV1RGX0lOVEVSTkFMOwogQ2FsbEZyYW1lKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkxvYWRWYXJhcmdzKEV4ZWNTdGF0ZSosIENhbGxGcmFtZSosIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzKSBXVEZfSU5U
RVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvT2JqZWN0KEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiAKQEAgLTI4Nyw2ICsyOTYs
NjggQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluaXRHbG9iYWxDbwogCiB9IC8vIGV4
dGVybiAiQyIKIAoraW5saW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uTGlua0ZvcigKKyAg
ICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSBy
ZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoK
KyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNl
cnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDYWxs
OworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVy
biBvcGVyYXRpb25MaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgc3dpdGNoIChyZWdp
c3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgor
ICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3Q7CisgICAgICAgIGNhc2Ug
TXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtD
b25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnczsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30K
KworaW5saW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uVmlydHVhbEZvcigKKyAgICBDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3Rl
cnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAg
ICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxDYWxsOwor
ICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiBv
cGVyYXRpb25WaXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgc3dpdGNoIChyZWdp
c3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgor
ICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3Q7CisgICAgICAgIGNh
c2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvblZp
cnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnczsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
MDsKK30KKworaW5saW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxs
Rm9yKFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChy
ZWdpc3RlcnMpIHsKKyAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6Cisg
ICAgICAgIHJldHVybiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGw7CisgICAgY2FzZSBNdXN0UHJl
c2VydmVSZWdpc3RlcnM6CisgICAgICAgIHJldHVybiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxU
aGF0UHJlc2VydmVzUmVnczsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBF
TkFCTEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC00ODIsNyArNDgyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lk
KEluc3RydWN0aW9uKgogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1f
Y29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3Bl
Y2lhbFJlZ2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3M6
OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgdHJ1ZSk7Cisg
ICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1Qx
LCByZWdUMCksIHRydWUpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBh
ZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdl
bik7CkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKEluc3Ry
dWN0aW9uKgogCiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJs
b2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJl
Z2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3M6OnBheWxv
YWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwKKyAgICAgICAgSlNWYWx1
ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwKICAg
ICAgICAgcmVnVDEsIHRydWUsIG1fY29kZUJsb2NrLT5lY21hTW9kZSgpLCBkaXJlY3QgPyBEaXJl
Y3QgOiBOb3REaXJlY3QpOwogICAgIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mu
Y3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTIwLDcgKzUyMCw3
IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChJbnN0cnVjdGlvbioKIAogICAgIEpJVEdl
dEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5
dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKLSAgICAgICAg
Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDAp
LCB0cnVlKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCks
IHRydWUpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2Fz
ZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7CkBAIC01
NjYsOCArNTY2LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKEluc3RydWN0aW9uKgog
CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2Rl
T3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygp
LAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVl
UmVncyhyZWdUMSksIHJlZ1QyLCB0cnVlLAotICAgICAgICBtX2NvZGVCbG9jay0+ZWNtYU1vZGUo
KSwgZGlyZWN0ID8gRGlyZWN0IDogTm90RGlyZWN0KTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVn
VDApLCBKU1ZhbHVlUmVncyhyZWdUMSksIHJlZ1QyLCB0cnVlLCBtX2NvZGVCbG9jay0+ZWNtYU1v
ZGUoKSwKKyAgICAgICAgZGlyZWN0ID8gRGlyZWN0IDogTm90RGlyZWN0KTsKICAgICAKICAgICBn
ZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRo
SnVtcCgpKTsKQEAgLTEwNzgsNyArMTA3OCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdl
dEJ5VmFsKEJ5VmFsSW4KICAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUsIGJ5VmFsSW5mby0+YmFk
VHlwZUp1bXAubGFiZWxBdE9mZnNldChieVZhbEluZm8tPmJhZFR5cGVKdW1wVG9Eb25lKSk7CiAg
ICAgCiAgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIo
Ci0gICAgICAgIHBhdGNoQnVmZmVyLAorICAgICAgICBtX2NvZGVCbG9jaywgcGF0Y2hCdWZmZXIs
CiAgICAgICAgICgiQmFzZWxpbmUgZ2V0X2J5X3ZhbCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50
ICVwIiwgdG9DU3RyaW5nKCptX2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVl
KCkpKTsKICAgICAKICAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIobV9jb2RlQmxvY2sp
OwpAQCAtMTE0MSwxMiArMTE0MSwxMiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVQdXRCeVZh
bChCeVZhbEluCiAgICAgYm9vbCBpc0RpcmVjdCA9IG1faW50ZXJwcmV0ZXItPmdldE9wY29kZUlE
KGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5vcGNvZGUpID09IG9wX3B1dF9ieV92YWxfZGlyZWN0Owog
ICAgIGlmICghaXNEaXJlY3QpIHsKICAgICAgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJ
TkFMSVpFX0NPREVfRk9SX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKKyAgICAgICAg
ICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAgICAgICgiQmFzZWxpbmUgcHV0
X2J5X3ZhbCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwgdG9DU3RyaW5nKCptX2NvZGVC
bG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKICAgICAgICAgCiAgICAgfSBl
bHNlIHsKICAgICAgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9S
X1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAgIG1fY29kZUJsb2Nr
LCBwYXRjaEJ1ZmZlciwKICAgICAgICAgICAgICgiQmFzZWxpbmUgcHV0X2J5X3ZhbF9kaXJlY3Qg
c3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHRvQ1N0cmluZygqbV9jb2RlQmxvY2spLmRh
dGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7CiAgICAgfQogICAgIFJlcGF0Y2hCdWZmZXIg
cmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJSb3V0aW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHViUm91dGluZS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE1MCwxMSArMTUw
LDggQEAgcHJvdGVjdGVkOgogfTsKIAogLy8gSGVscGVyIGZvciB0aGUgY3JlYXRpb24gb2Ygc2lt
cGxlIHN0dWIgcm91dGluZXMgdGhhdCBuZWVkIG5vIGhlbHAgZnJvbSB0aGUgR0MuCi0jZGVmaW5l
IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIocGF0Y2hCdWZmZXIsIGRhdGFMb2dGQXJndW1lbnRzKSBc
Ci0gICAgKGFkb3B0UmVmKG5ldyBKSVRTdHViUm91dGluZShGSU5BTElaRV9DT0RFKChwYXRjaEJ1
ZmZlciksIGRhdGFMb2dGQXJndW1lbnRzKSkpKQotCi0jZGVmaW5lIEZJTkFMSVpFX0NPREVfRk9S
X0RGR19TVFVCKHBhdGNoQnVmZmVyLCBkYXRhTG9nRkFyZ3VtZW50cykgXAotICAgIChhZG9wdFJl
ZihuZXcgSklUU3R1YlJvdXRpbmUoRklOQUxJWkVfREZHX0NPREUoKHBhdGNoQnVmZmVyKSwgZGF0
YUxvZ0ZBcmd1bWVudHMpKSkpCisjZGVmaW5lIEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoY29kZUJs
b2NrLCBwYXRjaEJ1ZmZlciwgZGF0YUxvZ0ZBcmd1bWVudHMpIFwKKyAgICAoYWRvcHRSZWYobmV3
IEpJVFN0dWJSb3V0aW5lKEZJTkFMSVpFX0NPREVfRk9SKChjb2RlQmxvY2spLCAocGF0Y2hCdWZm
ZXIpLCBkYXRhTG9nRkFyZ3VtZW50cykpKSkKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcs
MTQgKzM3LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShKSVQpCiAKICNpZiBPUyhX
SU5ET1dTKQotY2xhc3MgRXhlY1N0YXRlOwotY2xhc3MgUmVnaXN0ZXI7CiBzdHJ1Y3QgUHJvdG9D
YWxsRnJhbWU7CitjbGFzcyBWTTsKIAogZXh0ZXJuICJDIiB7Ci0gICAgRW5jb2RlZEpTVmFsdWUg
Y2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwgRXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwgUmVn
aXN0ZXIqKTsKLSAgICB2b2lkIHJldHVybkZyb21KYXZhU2NyaXB0KCk7Ci0gICAgRW5jb2RlZEpT
VmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCosIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxG
cmFtZSosIFJlZ2lzdGVyKik7CisgICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2
b2lkKiwgVk0qLCBQcm90b0NhbGxGcmFtZSopOworICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05h
dGl2ZUZ1bmN0aW9uKHZvaWQqLCBWTSosIFByb3RvQ2FsbEZyYW1lKik7CisgICAgdm9pZCBoYW5k
bGVVbmNhdWdodEV4Y2VwdGlvbigpOwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZDNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZDNjQuYXNtCShyZXZpc2lvbiAxNjI5NjEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzTVNWQzY0LmFzbQkod29ya2luZyBjb3B5
KQpAQCAtMSwyNTUgKzAsMCBAQAotOy8qCi07IENvcHlyaWdodCAoQykgMjAxMyBEaWdpYSBQbGMu
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotOwotOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLTsgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci07IGFyZSBtZXQ6Ci07IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci07ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLTsgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotOwotOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLTsgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLTsgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi07IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi07IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotOyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi07IFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotOyBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi07IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotOyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLTsgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLTsqLwotCi1FWFRF
Uk4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUgOiBuZWFyCi0KLVBVQkxJQyBj
YWxsVG9KYXZhU2NyaXB0Ci1QVUJMSUMgcmV0dXJuRnJvbUphdmFTY3JpcHQKLVBVQkxJQyBnZXRI
b3N0Q2FsbFJldHVyblZhbHVlCi0KLV9URVhUICAgU0VHTUVOVAotCi1jYWxsVG9KYXZhU2NyaXB0
IFBST0MKLSAgICA7OyBUaGlzIGZ1bmN0aW9uIGlzIGJlbGlldmVkIHRvIGJlIGFuIGFjY3VyYXRl
IGFkYXB0YXRpb24gb2YgdGhlIGFzc2VtYmx5IGNyZWF0ZWQgYnkgdGhlIGxsaW50IHN0dWIgb2Yg
dGhlCi0gICAgOzsgc2FtZSBuYW1lIHdpdGggY2hhbmdlcyBmb3IgYXJndW1lbnQgcmVnaXN0ZXIg
ZGlmZmVyZW5jZXMuCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3JzcF0KLSAgICBwdXNoIHJicAot
ICAgIG1vdiByYXgsIHJicCA7IFNhdmUgcHJldmlvdXMgZnJhbWUgcG9pbnRlcgotICAgIG1vdiBy
YnAsIHJzcAotICAgIHB1c2ggcjEyCi0gICAgcHVzaCByMTMKLSAgICBwdXNoIHIxNAotICAgIHB1
c2ggcjE1Ci0gICAgcHVzaCByYngKLSAgICBwdXNoIHJzaQotICAgIHB1c2ggcmRpCi0KLSAgICA7
IEpJVCBvcGVyYXRpb25zIGNhbiB1c2UgdXAgdG8gNiBhcmdzICg0IGluIHJlZ2lzdGVycyBhbmQg
MiBvbiB0aGUgc3RhY2spLgotICAgIDsgSW4gYWRkaXRpb24sIFg4Nl82NCBBQkkgc3BlY2lmaWVz
IHRoYXQgdGhlIHdvcnNlIGNhc2Ugc3RhY2sgYWxpZ25tZW50Ci0gICAgOyByZXF1aXJlbWVudCBp
cyAzMiBieXRlcy4gQmFzZWQgb24gdGhlc2UgZmFjdG9ycywgd2UgbmVlZCB0byBwYWQgdGhlIHN0
YWNrCi0gICAgOyBhbiBhZGRpdGlvbmFsIDI4aCBieXRlcy4KLSAgICBzdWIgcnNwLCAyOGgKLQot
ICAgIG1vdiByYnAsIHI5Ci0gICAgc3ViIHJicCwgNDAKLSAgICBtb3YgcXdvcmQgcHRyW3JicCAr
IDQwXSwgMAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMzJdLCByZHgKLQotICAgIG1vdiByYXgs
IHF3b3JkIHB0cltyZHhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAyNF0sIHJheAotICAgIG1v
diBxd29yZCBwdHJbcmJwICsgMTZdLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyA4XSwgcjEw
Ci0gICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLSAgICBtb3YgcmF4LCByYnAKLQotICAgIG1v
diBlYngsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIGFkZCByYngsIDYKLSAgICBzYWwgcmJ4LCAz
Ci0gICAgc3ViIHJicCwgcmJ4Ci0gICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLQotICAgIG1v
diByYXgsIDUKLQotY29weUhlYWRlckxvb3A6Ci0gICAgc3ViIHJheCwgMQotICAgIG1vdiByMTAs
IHF3b3JkIHB0cltyOCArIHJheCAqIDhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByYXggKiA4
ICsgMTZdLCByMTAKLSAgICB0ZXN0IHJheCwgcmF4Ci0gICAgam56IGNvcHlIZWFkZXJMb29wCi0K
LSAgICBtb3YgZWJ4LCBkd29yZCBwdHJbcjggKyAyNF0KLSAgICBzdWIgcmJ4LCAxCi0gICAgbW92
IHIxMGQsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIHN1YiByMTAsIDEKLSAgICBjbXAgcmJ4LCBy
MTAKLSAgICBqZSBjb3B5QXJncwotICAgIG1vdiByYXgsIDBhaAotCi1maWxsRXh0cmFBcmdzTG9v
cDoKLSAgICBzdWIgcjEwLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByMTAgKiA4ICsgNTZd
LCByYXgKLSAgICBjbXAgcmJ4LCByMTAKLSAgICBqbmUgZmlsbEV4dHJhQXJnc0xvb3AKLQotY29w
eUFyZ3M6Ci0gICAgbW92IHJheCwgcXdvcmQgcHRyW3I4ICsgNDhdCi0KLWNvcHlBcmdzTG9vcDoK
LSAgICB0ZXN0IGVieCwgZWJ4Ci0gICAganogY29weUFyZ3NEb25lCi0gICAgc3ViIGVieCwgMQot
ICAgIG1vdiByMTAsIHF3b3JkIHB0cltyYXggKyByYnggKiA4XQotICAgIG1vdiBxd29yZCBwdHJb
cmJwICsgcmJ4ICogOCArIDU2XSwgcjEwCi0gICAgam1wIGNvcHlBcmdzTG9vcAotCi1jb3B5QXJn
c0RvbmU6Ci0gICAgbW92IHF3b3JkIHB0cltyZHhdLCByYnAKLSAgICBtb3YgcjE0LCAwRkZGRjAw
MDAwMDAwMDAwMGgKLSAgICBtb3YgcjE1LCAwRkZGRjAwMDAwMDAwMDAwMmgKLSAgICBjYWxsIHJj
eAotICAgIGNtcCBxd29yZCBwdHJbcmJwICsgMTZdLCAxCi0gICAgamUgY2FsbGVlRnJhbWVQb3Bw
ZWQKLSAgICBtb3YgcmJwLCBxd29yZCBwdHJbcmJwXQotCi1jYWxsZWVGcmFtZVBvcHBlZDoKLSAg
ICBtb3YgcmJ4LCBxd29yZCBwdHJbcmJwICsgMzJdIDsgVk0udG9wQ2FsbEZyYW1lCi0gICAgbW92
IHIxMCwgcXdvcmQgcHRyW3JicCArIDI0XQotICAgIG1vdiBxd29yZCBwdHJbcmJ4XSwgcjEwCi0g
ICAgYWRkIHJzcCwgMjhoCi0gICAgcG9wIHJkaQotICAgIHBvcCByc2kKLSAgICBwb3AgcmJ4Ci0g
ICAgcG9wIHIxNQotICAgIHBvcCByMTQKLSAgICBwb3AgcjEzCi0gICAgcG9wIHIxMgotICAgIHBv
cCByYnAKLSAgICByZXQKLWNhbGxUb0phdmFTY3JpcHQgRU5EUAotCi1jYWxsVG9OYXRpdmVGdW5j
dGlvbiBQUk9DCi0gICAgOzsgVGhpcyBmdW5jdGlvbiBpcyBiZWxpZXZlZCB0byBiZSBhbiBhY2N1
cmF0ZSBhZGFwdGF0aW9uIG9mIHRoZSBhc3NlbWJseSBjcmVhdGVkIGJ5IHRoZSBsbGludCBzdHVi
IG9mIHRoZQotICAgIDs7IHNhbWUgbmFtZSB3aXRoIGNoYW5nZXMgZm9yIGFyZ3VtZW50IHJlZ2lz
dGVyIGRpZmZlcmVuY2VzLgotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyc3BdCi0gICAgcHVzaCBy
YnAKLSAgICBtb3YgcmF4LCByYnAgOyBTYXZlIHByZXZpb3VzIGZyYW1lIHBvaW50ZXIKLSAgICBt
b3YgcmJwLCByc3AKLSAgICBwdXNoIHIxMgotICAgIHB1c2ggcjEzCi0gICAgcHVzaCByMTQKLSAg
ICBwdXNoIHIxNQotICAgIHB1c2ggcmJ4Ci0gICAgcHVzaCByc2kKLSAgICBwdXNoIHJkaQotCi0g
ICAgOyBKSVQgb3BlcmF0aW9ucyBjYW4gdXNlIHVwIHRvIDYgYXJncyAoNCBpbiByZWdpc3RlcnMg
YW5kIDIgb24gdGhlIHN0YWNrKS4KLSAgICA7IEluIGFkZGl0aW9uLCBYODZfNjQgQUJJIHNwZWNp
ZmllcyB0aGF0IHRoZSB3b3JzZSBjYXNlIHN0YWNrIGFsaWdubWVudAotICAgIDsgcmVxdWlyZW1l
bnQgaXMgMzIgYnl0ZXMuIEJhc2VkIG9uIHRoZXNlIGZhY3RvcnMsIHdlIG5lZWQgdG8gcGFkIHRo
ZSBzdGFjawotICAgIDsgYW4gYWRkaXRpb25hbCAyOGggYnl0ZXMuCi0gICAgc3ViIHJzcCwgMjho
Ci0KLSAgICBtb3YgcmJwLCByOQotICAgIHN1YiByYnAsIDQwCi0gICAgbW92IHF3b3JkIHB0clty
YnAgKyA0MF0sIDAKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDMyXSwgcmR4Ci0KLSAgICBtb3Yg
cmF4LCBxd29yZCBwdHJbcmR4XQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMjRdLCByYXgKLSAg
ICBtb3YgcXdvcmQgcHRyW3JicCArIDE2XSwgMQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgOF0s
IHIxMAotICAgIG1vdiBxd29yZCBwdHJbcmJwXSwgcmF4Ci0gICAgbW92IHJheCwgcmJwCi0KLSAg
ICBtb3YgZWJ4LCBkd29yZCBwdHJbcjggKyA0MF0KLSAgICBhZGQgcmJ4LCA2Ci0gICAgc2FsIHJi
eCwgMwotICAgIHN1YiByYnAsIHJieAotICAgIG1vdiBxd29yZCBwdHJbcmJwXSwgcmF4Ci0KLSAg
ICBtb3YgcmF4LCA1Ci0KLWNvcHlIZWFkZXJMb29wOgotICAgIHN1YiByYXgsIDEKLSAgICBtb3Yg
cjEwLCBxd29yZCBwdHJbcjggKyByYXggKiA4XQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcmF4
ICogOCArIDE2XSwgcjEwCi0gICAgdGVzdCByYXgsIHJheAotICAgIGpueiBjb3B5SGVhZGVyTG9v
cAotCi0gICAgbW92IGVieCwgZHdvcmQgcHRyW3I4ICsgMjRdCi0gICAgc3ViIHJieCwgMQotICAg
IG1vdiByMTBkLCBkd29yZCBwdHJbcjggKyA0MF0KLSAgICBzdWIgcjEwLCAxCi0gICAgY21wIHJi
eCwgcjEwCi0gICAgamUgY29weUFyZ3MKLSAgICBtb3YgcmF4LCAwYWgKLQotZmlsbEV4dHJhQXJn
c0xvb3A6Ci0gICAgc3ViIHIxMCwgMQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcjEwICogOCAr
IDU2XSwgcmF4Ci0gICAgY21wIHJieCwgcjEwCi0gICAgam5lIGZpbGxFeHRyYUFyZ3NMb29wCi0K
LWNvcHlBcmdzOgotICAgIG1vdiByYXgsIHF3b3JkIHB0cltyOCArIDQ4XQotCi1jb3B5QXJnc0xv
b3A6Ci0gICAgdGVzdCByYngsIHJieAotICAgIGp6IGNvcHlBcmdzRG9uZQotICAgIHN1YiByYngs
IDEKLSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcmF4ICsgcmJ4ICogOF0KLSAgICBtb3YgcXdvcmQg
cHRyW3JicCArIHJieCAqIDggKyA1Nl0sIHIxMAotICAgIGptcCBjb3B5QXJnc0xvb3AKLQotY29w
eUFyZ3NEb25lOgotICAgIG1vdiBxd29yZCBwdHJbcmR4XSwgcmJwCi0gICAgbW92IHIxNCwgMEZG
RkYwMDAwMDAwMDAwMDBoCi0gICAgbW92IHIxNSwgMEZGRkYwMDAwMDAwMDAwMDJoCi0KLSAgICBt
b3YgcmF4LCByY3gKLSAgICBtb3YgcmN4LCByYnAKLSAgICBjYWxsIHJheAotCi0gICAgY21wIHF3
b3JkIHB0cltyYnAgKyAxNl0sIDEKLSAgICBqZSBjYWxsZWVGcmFtZVBvcHBlZAotICAgIG1vdiBy
YnAsIHF3b3JkIHB0cltyYnBdCi0KLWNhbGxlZUZyYW1lUG9wcGVkOgotICAgIG1vdiByYngsIHF3
b3JkIHB0cltyYnAgKyAzMl0gOyBWTS50b3BDYWxsRnJhbWUKLSAgICBtb3YgcjEwLCBxd29yZCBw
dHJbcmJwICsgMjRdCi0gICAgbW92IHF3b3JkIHB0cltyYnhdLCByMTAKLSAgICBhZGQgcnNwLCAy
OGgKLSAgICBwb3AgcmRpCi0gICAgcG9wIHJzaQotICAgIHBvcCByYngKLSAgICBwb3AgcjE1Ci0g
ICAgcG9wIHIxNAotICAgIHBvcCByMTMKLSAgICBwb3AgcjEyCi0gICAgcG9wIHJicAotICAgIHJl
dAotY2FsbFRvTmF0aXZlRnVuY3Rpb24gRU5EUAotCi1yZXR1cm5Gcm9tSmF2YVNjcmlwdCBQUk9D
Ci0gICAgYWRkIHJzcCwgMjhoCi0gICAgcG9wIHJkaQotICAgIHBvcCByc2kKLSAgICBwb3AgcmJ4
Ci0gICAgcG9wIHIxNQotICAgIHBvcCByMTQKLSAgICBwb3AgcjEzCi0gICAgcG9wIHIxMgotICAg
IHBvcCByYnAKLSAgICByZXQKLXJldHVybkZyb21KYXZhU2NyaXB0IEVORFAKLQkKLWdldEhvc3RD
YWxsUmV0dXJuVmFsdWUgUFJPQwotICAgIG1vdiByYnAsIFtyYnBdIDsgQ2FsbEZyYW1lCi0gICAg
bW92IHJjeCwgcmJwIDsgcmN4IGlzIGZpcnN0IGFyZ3VtZW50IHJlZ2lzdGVyIG9uIFdpbmRvd3MK
LSAgICBqbXAgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLWdldEhvc3RDYWxs
UmV0dXJuVmFsdWUgRU5EUAotCi1fVEVYVCAgIEVORFMKLQotRU5ECkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVic1g4Ni5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMCwy
MzAgKzIwMCw2IEBAIFNZTUJPTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUVuZCkKIAog
I2VuZGlmIC8vIENPTVBJTEVSKEdDQykKIAotI2lmIENPTVBJTEVSKE1TVkMpCi0KLWV4dGVybiAi
QyIgewotCi0gICAgLy8gRklYTUU6IFNpbmNlIFdpbmRvd3MgZG9lc24ndCB1c2UgdGhlIExMSW50
LCB3ZSBoYXZlIGlubGluZSBzdHVicyBoZXJlLgotICAgIC8vIFVudGlsIHRoZSBMTEludCBpcyBj
aGFuZ2VkIHRvIHN1cHBvcnQgV2luZG93cywgdGhlc2Ugc3R1YiBuZWVkcyB0byBiZSB1cGRhdGVk
LgotICAgIF9fZGVjbHNwZWMobmFrZWQpIEVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQo
dm9pZCogY29kZSwgRXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKQotICAg
IHsKLSAgICAgICAgX19hc20gewotICAgICAgICAgICAgbW92IGVkeCwgW2VzcF0KLSAgICAgICAg
ICAgIHB1c2ggZWJwOwotICAgICAgICAgICAgbW92IGVheCwgZWJwOwotICAgICAgICAgICAgbW92
IGVicCwgZXNwOwotICAgICAgICAgICAgcHVzaCBlc2k7Ci0gICAgICAgICAgICBwdXNoIGVkaTsK
LSAgICAgICAgICAgIHB1c2ggZWJ4OwotICAgICAgICAgICAgc3ViIGVzcCwgMHgxYzsKLSAgICAg
ICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlc3AgKyAweDM0XTsKLSAgICAgICAgICAgIG1vdiBl
c2ksIGR3b3JkIHB0cltlc3AgKyAweDM4XTsKLSAgICAgICAgICAgIG1vdiBlYnAsIGR3b3JkIHB0
cltlc3AgKyAweDNjXTsKLSAgICAgICAgICAgIHN1YiBlYnAsIDB4MjA7Ci0gICAgICAgICAgICBt
b3YgZHdvcmQgcHRyW2VicCArIDB4MjRdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltl
YnAgKyAweDIwXSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxY10sIDA7
Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MThdLCBlY3g7Ci0gICAgICAgICAg
ICBtb3YgZWJ4LCBbZWN4XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxNF0s
IDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MTBdLCBlYng7Ci0gICAgICAg
ICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4Y10sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQg
cHRyW2VicCArIDB4OF0sIDE7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4NF0s
IGVkeDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwXSwgZWF4OwotICAgICAgICAgICAg
bW92IGVheCwgZWJwOwotCi0gICAgICAgICAgICBtb3YgZWR4LCBkd29yZCBwdHJbZXNpICsgMHgy
OF07Ci0gICAgICAgICAgICBhZGQgZWR4LCA1OwotICAgICAgICAgICAgc2FsIGVkeCwgMzsKLSAg
ICAgICAgICAgIHN1YiBlYnAsIGVkeDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwXSwg
ZWF4OwotCi0gICAgICAgICAgICBtb3YgZWF4LCA1OwotCi0gICAgICAgIGNvcHlIZWFkZXJMb29w
OgotICAgICAgICAgICAgc3ViIGVheCwgMTsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0
cltlc2kgKyBlYXggKiA4XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgOFtlYnAgKyBlYXgg
KiA4XSwgZWN4OwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyIDRbZXNpICsgZWF4ICog
OF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDEyW2VicCArIGVheCAqIDhdLCBlY3g7Ci0g
ICAgICAgICAgICB0ZXN0IGVheCwgZWF4OwotICAgICAgICAgICAgam56IGNvcHlIZWFkZXJMb29w
OwotCi0gICAgICAgICAgICBtb3YgZWR4LCBkd29yZCBwdHJbZXNpICsgMHgxOF07Ci0gICAgICAg
ICAgICBzdWIgZWR4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzaSArIDB4
MjhdOwotICAgICAgICAgICAgc3ViIGVjeCwgMTsKLQotICAgICAgICAgICAgY21wIGVkeCwgZWN4
OwotICAgICAgICAgICAgamUgY29weUFyZ3M7Ci0KLSAgICAgICAgICAgIHhvciBlYXgsIGVheDsK
LSAgICAgICAgICAgIG1vdiBlYngsIC00OwotCi0gICAgICAgIGZpbGxFeHRyYUFyZ3NMb29wOgot
ICAgICAgICAgICAgc3ViIGVjeCwgMTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzMFtl
YnAgKyBlY3ggKiA4XSwgZWF4OyAgICAgICAgICAgIAotICAgICAgICAgICAgbW92IGR3b3JkIHB0
ciAweDM0W2VicCArIGVjeCAqIDhdLCBlYng7Ci0gICAgICAgICAgICBjbXAgZWR4LCBlY3g7Ci0g
ICAgICAgICAgICBqbmUgZmlsbEV4dHJhQXJnc0xvb3A7Ci0KLSAgICAgICAgY29weUFyZ3M6Ci0g
ICAgICAgICAgICBtb3YgZWF4LCBkd29yZCBwdHJbZXNpICsgMHgyY107Ci0KLSAgICAgICAgY29w
eUFyZ3NMb29wOgotICAgICAgICAgICAgdGVzdCBlZHgsIGVkeDsKLSAgICAgICAgICAgIGp6IGNv
cHlBcmdzRG9uZTsKLSAgICAgICAgICAgIHN1YiBlZHgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4
LCBkd29yZCBwdHIgMFtlYXggKyBlZHggKiA4XTsKLSAgICAgICAgICAgIG1vdiBlYngsIGR3b3Jk
IHB0ciA0W2VheCArIGVkeCAqIDhdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDMwW2Vi
cCArIGVkeCAqIDhdLCBlY3g7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzRbZWJwICsg
ZWR4ICogOF0sIGVieDsKLSAgICAgICAgICAgIGptcCBjb3B5QXJnc0xvb3A7Ci0KLSAgICAgICAg
Y29weUFyZ3NEb25lOgotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzcCArIDB4MzRd
OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlY3hdLCBlYnA7Ci0KLSAgICAgICAgICAgIGNh
bGwgZHdvcmQgcHRyW2VzcCArIDB4MzBdOwotCi0gICAgICAgICAgICBjbXAgZHdvcmQgcHRyW2Vi
cCArIDhdLCAxOwotICAgICAgICAgICAgamUgY2FsbGVlRnJhbWVQb3BwZWQ7Ci0gICAgICAgICAg
ICBtb3YgZWJwLCBkd29yZCBwdHJbZWJwXTsKLQotICAgICAgICBjYWxsZWVGcmFtZVBvcHBlZDoK
LSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0cltlYnAgKyAweDE4XTsKLSAgICAgICAgICAg
IG1vdiBlYngsIGR3b3JkIHB0cltlYnAgKyAweDEwXTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBw
dHJbZWN4XSwgZWJ4OwotCi0gICAgICAgICAgICBhZGQgZXNwLCAweDFjOwotICAgICAgICAgICAg
cG9wIGVieDsKLSAgICAgICAgICAgIHBvcCBlZGk7Ci0gICAgICAgICAgICBwb3AgZXNpOwotICAg
ICAgICAgICAgcG9wIGVicDsKLSAgICAgICAgICAgIHJldDsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIF9fZGVjbHNwZWMobmFrZWQpIHZvaWQgcmV0dXJuRnJvbUphdmFTY3JpcHQoKQotICAgIHsK
LSAgICAgICAgX19hc20gewotICAgICAgICAgICAgYWRkIGVzcCwgMHgxYzsKLSAgICAgICAgICAg
IHBvcCBlYng7Ci0gICAgICAgICAgICBwb3AgZWRpOwotICAgICAgICAgICAgcG9wIGVzaTsKLSAg
ICAgICAgICAgIHBvcCBlYnA7Ci0gICAgICAgICAgICByZXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICBfX2RlY2xzcGVjKG5ha2VkKSBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlv
bih2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopCi0g
ICAgewotICAgICAgICBfX2FzbSB7Ci0gICAgICAgICAgICBtb3YgZWR4LCBbZXNwXQotICAgICAg
ICAgICAgcHVzaCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWF4LCBlYnA7Ci0gICAgICAgICAgICBt
b3YgZWJwLCBlc3A7Ci0gICAgICAgICAgICBwdXNoIGVzaTsKLSAgICAgICAgICAgIHB1c2ggZWRp
OwotICAgICAgICAgICAgcHVzaCBlYng7Ci0gICAgICAgICAgICBzdWIgZXNwLCAweDFjOwotICAg
ICAgICAgICAgbW92IGVjeCwgW2VzcCArIDB4MzRdOwotICAgICAgICAgICAgbW92IGVzaSwgW2Vz
cCArIDB4MzhdOwotICAgICAgICAgICAgbW92IGVicCwgW2VzcCArIDB4M2NdOwotICAgICAgICAg
ICAgc3ViIGVicCwgMHgyMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgyNF0s
IDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MjBdLCAwOwotICAgICAgICAg
ICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDFjXSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBw
dHJbZWJwICsgMHgxOF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBlYngsIFtlY3hdOwotICAgICAg
ICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDE0XSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29y
ZCBwdHJbZWJwICsgMHgxMF0sIGVieDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsg
MHhjXSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHg4XSwgMTsKLSAgICAg
ICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHg0XSwgZWR4OwotICAgICAgICAgICAgbW92IGR3
b3JkIHB0cltlYnBdLCBlYXg7Ci0gICAgICAgICAgICBtb3YgZWF4LCBlYnA7Ci0KLSAgICAgICAg
ICAgIG1vdiBlZHgsIGR3b3JkIHB0cltlc2kgKyAweDI4XTsKLSAgICAgICAgICAgIGFkZCBlZHgs
IDU7Ci0gICAgICAgICAgICBzYWwgZWR4LCAzOwotICAgICAgICAgICAgc3ViIGVicCwgZWR4Owot
ICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnBdLCBlYXg7Ci0KLSAgICAgICAgICAgIG1vdiBl
YXgsIDU7Ci0KLSAgICAgICAgY29weUhlYWRlckxvb3A6Ci0gICAgICAgICAgICBzdWIgZWF4LCAx
OwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzaSArIGVheCAqIDhdOwotICAgICAg
ICAgICAgbW92IGR3b3JkIHB0ciA4W2VicCArIGVheCAqIDhdLCBlY3g7Ci0gICAgICAgICAgICBt
b3YgZWN4LCBkd29yZCBwdHIgNFtlc2kgKyBlYXggKiA4XTsKLSAgICAgICAgICAgIG1vdiBkd29y
ZCBwdHIgMTJbZWJwICsgZWF4ICogOF0sIGVjeDsKLSAgICAgICAgICAgIHRlc3QgZWF4LCBlYXg7
Ci0gICAgICAgICAgICBqbnogY29weUhlYWRlckxvb3A7Ci0KLSAgICAgICAgICAgIG1vdiBlZHgs
IGR3b3JkIHB0cltlc2kgKyAweDE4XTsKLSAgICAgICAgICAgIHN1YiBlZHgsIDE7Ci0gICAgICAg
ICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNpICsgMHgyOF07Ci0gICAgICAgICAgICBzdWIgZWN4
LCAxOwotCi0gICAgICAgICAgICBjbXAgZWR4LCBlY3g7Ci0gICAgICAgICAgICBqZSBjb3B5QXJn
czsKLQotICAgICAgICAgICAgeG9yIGVheCwgZWF4OwotICAgICAgICAgICAgbW92IGVieCwgLTQ7
Ci0KLSAgICAgICAgZmlsbEV4dHJhQXJnc0xvb3A6Ci0gICAgICAgICAgICBzdWIgZWN4LCAxOwot
ICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDMwW2VicCArIGVjeCAqIDhdLCBlYXg7ICAgICAg
ICAgICAgCi0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzRbZWJwICsgZWN4ICogOF0sIGVi
eDsKLSAgICAgICAgICAgIGNtcCBlZHgsIGVjeDsKLSAgICAgICAgICAgIGpuZSBmaWxsRXh0cmFB
cmdzTG9vcDsKLQotICAgICAgICBjb3B5QXJnczoKLSAgICAgICAgICAgIG1vdiBlYXgsIGR3b3Jk
IHB0cltlc2kgKyAweDJjXTsKLQotICAgICAgICBjb3B5QXJnc0xvb3A6Ci0gICAgICAgICAgICB0
ZXN0IGVkeCwgZWR4OwotICAgICAgICAgICAganogY29weUFyZ3NEb25lOwotICAgICAgICAgICAg
c3ViIGVkeCwgMTsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3b3JkIHB0ciAwW2VheCArIGVkeCAq
IDhdOwotICAgICAgICAgICAgbW92IGVieCwgZHdvcmQgcHRyIDRbZWF4ICsgZWR4ICogOF07Ci0g
ICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzBbZWJwICsgZWR4ICogOF0sIGVjeDsKLSAgICAg
ICAgICAgIG1vdiBkd29yZCBwdHIgMHgzNFtlYnAgKyBlZHggKiA4XSwgZWJ4OwotICAgICAgICAg
ICAgam1wIGNvcHlBcmdzTG9vcDsKLQotICAgICAgICBjb3B5QXJnc0RvbmU6Ci0gICAgICAgICAg
ICBtb3YgZWN4LCBkd29yZCBwdHJbZXNwICsgMHgzNF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQg
cHRyW2VjeF0sIGVicDsKLQotICAgICAgICAgICAgbW92IGVkaSwgZHdvcmQgcHRyW2VzcCArIDB4
MzBdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlc3AgKyAweDMwXSwgZWJwOwotICAgICAg
ICAgICAgbW92IGVjeCwgZWJwOwotICAgICAgICAgICAgY2FsbCBlZGk7Ci0KLSAgICAgICAgICAg
IGNtcCBkd29yZCBwdHJbZWJwICsgOF0sIDE7Ci0gICAgICAgICAgICBqZSBjYWxsZWVGcmFtZVBv
cHBlZDsKLSAgICAgICAgICAgIG1vdiBlYnAsIGR3b3JkIHB0cltlYnBdOwotCi0gICAgICAgIGNh
bGxlZUZyYW1lUG9wcGVkOgotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VicCArIDB4
MThdOwotICAgICAgICAgICAgbW92IGVieCwgZHdvcmQgcHRyW2VicCArIDB4MTBdOwotICAgICAg
ICAgICAgbW92IGR3b3JkIHB0cltlY3hdLCBlYng7Ci0KLSAgICAgICAgICAgIGFkZCBlc3AsIDB4
MWM7Ci0gICAgICAgICAgICBwb3AgZWJ4OwotICAgICAgICAgICAgcG9wIGVkaTsKLSAgICAgICAg
ICAgIHBvcCBlc2k7Ci0gICAgICAgICAgICBwb3AgZWJwOwotICAgICAgICAgICAgcmV0OwotICAg
ICAgICB9Ci0gICAgfQotfQotCi0jZW5kaWYgLy8gQ09NUElMRVIoTVNWQykKLQogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKSVRTdHVic1g4Nl9oCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUy
LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aQogI2VuZGlmCiAg
ICAgcmV0dXJuIGN0aVN0dWIodm0sIG5hdGl2ZUNhbGxHZW5lcmF0b3IpLmNvZGUoKTsKIH0KKwog
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZlQ29uc3RydWN0KFZNKiB2
bSkKIHsKICNpZiBFTkFCTEUoTExJTlQpCkBAIC02MSw2ICs2MiwxMiBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpCiAgICAgcmV0dXJuIGN0aVN0dWIodm0sIG5hdGl2
ZUNvbnN0cnVjdEdlbmVyYXRvcikuY29kZSgpOwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
SklUVGh1bmtzOjpjdGlOYXRpdmVUYWlsQ2FsbChWTSogdm0pCit7CisgICAgQVNTRVJUKHZtLT5j
YW5Vc2VKSVQoKSk7CisgICAgcmV0dXJuIGN0aVN0dWIodm0sIG5hdGl2ZVRhaWxDYWxsR2VuZXJh
dG9yKS5jb2RlKCk7Cit9CisKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0
dWIoVk0qIHZtLCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCiB7CiAgICAgTG9ja2VyIGxvY2tl
cihtX2xvY2spOwpAQCAtODAsNyArODcsMTIgQEAgTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtz
Ojpob3N0RnVuY3RpbwogICAgIGlmIChOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxl
ID0gbV9ob3N0RnVuY3Rpb25TdHViTWFwLT5nZXQoc3RkOjptYWtlX3BhaXIoZnVuY3Rpb24sIGNv
bnN0cnVjdG9yKSkpCiAgICAgICAgIHJldHVybiBuYXRpdmVFeGVjdXRhYmxlOwogCi0gICAgTmF0
aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0
ZSgqdm0sIEpJVDo6Y29tcGlsZUNUSU5hdGl2ZUNhbGwodm0sIGZ1bmN0aW9uKSwgZnVuY3Rpb24s
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2
ZUNvbnN0cnVjdCh2bSkpLCBjb25zdHJ1Y3RvciwgTm9JbnRyaW5zaWMpOworICAgIE5hdGl2ZUV4
ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUgPSBOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUoCisg
ICAgICAgICp2bSwKKyAgICAgICAgYWRvcHRSZWYobmV3IE5hdGl2ZUpJVENvZGUoSklUOjpjb21w
aWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVuY3Rpb24pLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSks
CisgICAgICAgIGZ1bmN0aW9uLAorICAgICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShN
YWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVD
b25zdHJ1Y3Qodm0pKSwgSklUQ29kZTo6SG9zdENhbGxUaHVuaykpLAorICAgICAgICBjb25zdHJ1
Y3RvciwgTm9JbnRyaW5zaWMpOwogICAgIHdlYWtBZGQoKm1faG9zdEZ1bmN0aW9uU3R1Yk1hcCwg
c3RkOjptYWtlX3BhaXIoZnVuY3Rpb24sIGNvbnN0cnVjdG9yKSwgV2VhazxOYXRpdmVFeGVjdXRh
YmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CiAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CiB9
CkBAIC05MiwxNiArMTA0LDE4IEBAIE5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1
bmN0aW8KICAgICBpZiAoTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9z
dEZ1bmN0aW9uU3R1Yk1hcC0+Z2V0KHN0ZDo6bWFrZV9wYWlyKGZ1bmN0aW9uLCAmY2FsbEhvc3RG
dW5jdGlvbkFzQ29uc3RydWN0b3IpKSkKICAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7
CiAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY29kZTsKKyAgICBSZWZQdHI8SklUQ29kZT4g
Zm9yQ2FsbDsKICAgICBpZiAoZ2VuZXJhdG9yKSB7Ci0gICAgICAgIGlmICh2bS0+Y2FuVXNlSklU
KCkpCi0gICAgICAgICAgICBjb2RlID0gZ2VuZXJhdG9yKHZtKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgY29kZSA9IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpOworICAgICAgICBpZiAodm0t
PmNhblVzZUpJVCgpKSB7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZW50cnkg
PSBnZW5lcmF0b3Iodm0pOworICAgICAgICAgICAgZm9yQ2FsbCA9IGFkb3B0UmVmKG5ldyBEaXJl
Y3RKSVRDb2RlKGVudHJ5LCBlbnRyeS5jb2RlKCksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsK
KyAgICAgICAgfQogICAgIH0gZWxzZQotICAgICAgICBjb2RlID0gSklUOjpjb21waWxlQ1RJTmF0
aXZlQ2FsbCh2bSwgZnVuY3Rpb24pOwotCi0gICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhl
Y3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqdm0sIGNvZGUsIGZ1bmN0aW9uLCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVD
b25zdHJ1Y3Qodm0pKSwgY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IsIGludHJpbnNpYyk7
CisgICAgICAgIGZvckNhbGwgPSBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShKSVQ6OmNvbXBp
bGVDVElOYXRpdmVDYWxsKHZtLCBmdW5jdGlvbiksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsK
KyAgICAKKyAgICBSZWZQdHI8SklUQ29kZT4gZm9yQ29uc3RydWN0ID0gYWRvcHRSZWYobmV3IE5h
dGl2ZUpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVS
ZWYoY3RpTmF0aXZlQ29uc3RydWN0KHZtKSksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsKKyAg
ICAKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0
YWJsZTo6Y3JlYXRlKCp2bSwgZm9yQ2FsbCwgZnVuY3Rpb24sIGZvckNvbnN0cnVjdCwgY2FsbEhv
c3RGdW5jdGlvbkFzQ29uc3RydWN0b3IsIGludHJpbnNpYyk7CiAgICAgd2Vha0FkZCgqbV9ob3N0
RnVuY3Rpb25TdHViTWFwLCBzdGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwgJmNhbGxIb3N0RnVuY3Rp
b25Bc0NvbnN0cnVjdG9yKSwgV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxl
KSk7CiAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFRodW5rcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUVGh1bmtzLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUVGh1bmtzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAg
cHVibGljOgogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGwoVk0qKTsK
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlQ29uc3RydWN0KFZNKik7CisgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZVRhaWxDYWxsKFZNKik7ICAgIAogCiAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIoVk0qLCBUaHVua0dlbmVyYXRvcik7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVy
R2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
Z2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVy
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMjMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIgorCisjaWYgRU5B
QkxFKEpJVCkKKworI2luY2x1ZGUgIkFzc2VtYmx5SGVscGVycy5oIgorI2luY2x1ZGUgIkxpbmtC
dWZmZXIuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgorCituYW1lc3BhY2UgSlNDIHsK
KworUmVnaXN0ZXJTZXQgcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpCit7CisgICAgUmVnaXN0ZXJTZXQg
Y2FsbGVlU2F2ZXMgPSBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpOworICAgIAor
ICAgIC8vIE5vIG5lZWQgdG8gcHJlc2VydmUgRlAgc2luY2UgdGhhdCBhbHdheXMgZ2V0cyBwcmVz
ZXJ2ZWQgYW55d2F5LgorICAgIGNhbGxlZVNhdmVzLmNsZWFyKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyKTsKKyAgICAKKyAgICByZXR1cm4gY2FsbGVlU2F2ZXM7Cit9CisKK3B0cmRpZmZfdCBy
ZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpCit7CisgICAgdW5zaWduZWQgbnVtYmVyT2ZDYWxs
ZWVTYXZlcyA9IHJlZ2lzdGVyc1RvUHJlc2VydmUoKS5udW1iZXJPZlNldFJlZ2lzdGVycygpOwor
ICAgIAorICAgIC8vIE5lZWQgdG8gcHJlc2VydmUgdGhlIG9sZCByZXR1cm4gUEMuCisgICAgdW5z
aWduZWQgbnVtYmVyT2ZWYWx1ZXNUb1NhdmUgPSBudW1iZXJPZkNhbGxlZVNhdmVzICsgMTsKKyAg
ICAKKyAgICAvLyBBbGlnbm1lbnQuIFByZXNlcnZlIHRoZSBzYW1lIGFsaWdubWVudCBpbnZhcmlh
bnRzIHRoYXQgdGhlIGNhbGxlciBpbXBvc2VkLgorICAgIHVuc2lnbmVkIG51bWJlck9mTmV3U3Rh
Y2tTbG90cyA9CisgICAgICAgIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVu
dFJlZ2lzdGVycygpLCBudW1iZXJPZlZhbHVlc1RvU2F2ZSk7CisgICAgCisgICAgcmV0dXJuIHNp
emVvZihSZWdpc3RlcikgKiBudW1iZXJPZk5ld1N0YWNrU2xvdHM7Cit9CisKK01hY3JvQXNzZW1i
bGVyQ29kZVJlZiBnZW5lcmF0ZVJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcihWTSYgdm0sIEV4
ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgdGFyZ2V0KQor
eworI2lmIEVOQUJMRShGVExfSklUKQorICAgIC8vIFdlIHNob3VsZG4ndCBldmVyIGJlIGdlbmVy
YXRpbmcgd3JhcHBlcnMgZm9yIG5hdGl2ZSBmdW5jdGlvbnMuCisgICAgUmVnaXN0ZXJTZXQgdG9T
YXZlID0gcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpOworICAgIHB0cmRpZmZfdCBvZmZzZXQgPSByZWdp
c3RlclByZXNlcnZhdGlvbk9mZnNldCgpOworICAgIAorICAgIEFzc2VtYmx5SGVscGVycyBqaXQo
JnZtLCAwKTsKKyAgICAKKyAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQ
UkluZm86OnJlZ1QxKTsKKyAgICBqaXQubG9hZDMyKAorICAgICAgICBBc3NlbWJseUhlbHBlcnM6
OkFkZHJlc3MoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyLAorICAgICAgICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxs
ZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCksCisg
ICAgICAgIEdQUkluZm86OnJlZ1QyKTsKKyAgICAKKyAgICAvLyBQbGFjZSB0aGUgc3RhY2sgcG9p
bnRlciB3aGVyZSB3ZSB3YW50IGl0IHRvIGJlLgorICAgIGppdC5zdWJQdHIoQXNzZW1ibHlIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIob2Zmc2V0KSwgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CisgICAgCisgICAgLy8gQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIHRoaW5ncyB3ZSB3
aWxsIGJlIGNvcHlpbmcuCisgICAgaml0LmFkZDMyKAorICAgICAgICBBc3NlbWJseUhlbHBlcnM6
OlRydXN0ZWRJbW0zMigKKyAgICAgICAgICAgIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUg
LSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSksCisgICAgICAgIEdQUkluZm86OnJlZ1Qy
KTsKKworICAgIEFTU0VSVCghdG9TYXZlLmdldChHUFJJbmZvOjpyZWdUNCkpOworICAgIGppdC5t
b3ZlKEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1Q0
KTsKKyAgICAKKyAgICBBc3NlbWJseUhlbHBlcnM6OkxhYmVsIGxvb3AgPSBqaXQubGFiZWwoKTsK
KyAgICBqaXQuc3ViMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIEdQUkluZm86
OnJlZ1QyKTsKKyAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZv
OjpyZWdUNCwgb2Zmc2V0KSwgR1BSSW5mbzo6cmVnVDApOworICAgIGppdC5zdG9yZTY0KEdQUklu
Zm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUNCk7CisgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBl
cnM6OlRydXN0ZWRJbW0zMihzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6cmVnVDQpOworICAg
IGppdC5icmFuY2hUZXN0MzIoQXNzZW1ibHlIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdU
MikubGlua1RvKGxvb3AsICZqaXQpOworCisgICAgLy8gQXQgdGhpcyBwb2ludCByZWdUNCArIG9m
ZnNldCBwb2ludHMgdG8gd2hlcmUgd2Ugc2F2ZSB0aGluZ3MuCisgICAgcHRyZGlmZl90IGN1cnJl
bnRPZmZzZXQgPSAwOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMSwgQXNzZW1ibHlI
ZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Q0LCBjdXJyZW50T2Zmc2V0KSk7CisgICAgCisg
ICAgZm9yIChHUFJSZWcgZ3ByID0gQXNzZW1ibHlIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGdw
ciA8PSBBc3NlbWJseUhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBncHIgPSBzdGF0aWNfY2FzdDxH
UFJSZWc+KGdwciArIDEpKSB7CisgICAgICAgIGlmICghdG9TYXZlLmdldChncHIpKQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVy
KTsKKyAgICAgICAgaml0LnN0b3JlNjQoZ3ByLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BS
SW5mbzo6cmVnVDQsIGN1cnJlbnRPZmZzZXQpKTsKKyAgICB9CisgICAgCisgICAgLy8gQXNzdW1l
IHRoYXQgdGhlcmUgYXJlbid0IGFueSBzYXZlZCBGUCByZWdpc3RlcnMuCisgICAgCisgICAgLy8g
UmVzdG9yZSB0aGUgdGFnIHJlZ2lzdGVycy4KKyAgICBqaXQubW92ZShBc3NlbWJseUhlbHBlcnM6
OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lz
dGVyKTsKKyAgICBqaXQuYWRkNjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoVGFnTWFz
ayAtIFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIEdQUklu
Zm86OnRhZ01hc2tSZWdpc3Rlcik7CisgICAgCisgICAgaml0Lm1vdmUoCisgICAgICAgIEFzc2Vt
Ymx5SGVscGVyczo6VHJ1c3RlZEltbVB0cigKKyAgICAgICAgICAgIHZtLmdldENUSVN0dWIocmVn
aXN0ZXJSZXN0b3JhdGlvblRodW5rR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KSksCisgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjApOworICAgIGppdC5yZXN0b3JlUmV0dXJu
QWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpub25BcmdHUFIwKTsKKyAgICBBc3NlbWJseUhl
bHBlcnM6Okp1bXAganVtcCA9IGppdC5qdW1wKCk7CisgICAgCisgICAgTGlua0J1ZmZlciBsaW5r
QnVmZmVyKHZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgIGxpbmtCdWZmZXIubGluayhq
dW1wLCBDb2RlTG9jYXRpb25MYWJlbCh0YXJnZXQpKTsKKworICAgIGlmIChPcHRpb25zOjp2ZXJi
b3NlRlRMVG9KU1RodW5rKCkpCisgICAgICAgIGRhdGFMb2coIk5lZWQgYSB0aHVuayBmb3IgY2Fs
bHMgZnJvbSBGVEwgdG8gbm9uLUZUTCB2ZXJzaW9uIG9mICIsICpleGVjdXRhYmxlLCAiXG4iKTsK
KyAgICAKKyAgICByZXR1cm4gRklOQUxJWkVfREZHX0NPREUobGlua0J1ZmZlciwgKCJSZWdpc3Rl
ciBwcmVzZXJ2YXRpb24gd3JhcHBlciBmb3IgJXMvJXMsICVwIiwgdG9DU3RyaW5nKGV4ZWN1dGFi
bGUtPmhhc2hGb3IoQ29kZUZvckNhbGwpKS5kYXRhKCksIHRvQ1N0cmluZyhleGVjdXRhYmxlLT5o
YXNoRm9yKENvZGVGb3JDb25zdHJ1Y3QpKS5kYXRhKCksIHRhcmdldC5leGVjdXRhYmxlQWRkcmVz
cygpKSk7CisjZWxzZSAvLyBFTkFCTEUoRlRMX0pJVCkKKyAgICBVTlVTRURfUEFSQU0odm0pOwor
ICAgIFVOVVNFRF9QQVJBTShleGVjdXRhYmxlKTsKKyAgICBVTlVTRURfUEFSQU0odGFyZ2V0KTsK
KyAgICAvLyBXZSBkb24ndCBzdXBwb3J0IG5vbi1GVEwgYnVpbGRzIGZvciB0d28gcmVhc29uczoK
KyAgICAvLyAtIEl0IGp1c3Qgc28gaGFwcGVucyB0aGF0IGN1cnJlbnRseSBvbmx5IHRoZSBGVEwg
Ym90dG9tcyBvdXQgaW4gdGhpcyBjb2RlLgorICAgIC8vIC0gVGhlIGNvZGUgYWJvdmUgdXNlcyA2
NC1iaXQgaW5zdHJ1Y3Rpb25zLiBJdCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGhhdmUgdG87IGl0IHdv
dWxkIGJlCisgICAgLy8gICBlYXN5IHRvIGNoYW5nZSBpdCBzbyB0aGF0IGl0IGRvZXNuJ3QuIEJ1
dCBvYnZpb3VzbHkgbWFraW5nIHRoYXQgY2hhbmdlIHdvdWxkIGJlIGEKKyAgICAvLyAgIHByZXJl
cXVpc2l0ZSB0byByZW1vdmluZyB0aGlzICNpZi4KKyAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZP
Uk0oKTsKKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7CisjZW5kaWYgLy8gRU5B
QkxFKEZUTF9KSVQpCit9CisKK3N0YXRpYyB2b2lkIGdlbmVyYXRlUmVnaXN0ZXJSZXN0b3JhdGlv
bihBc3NlbWJseUhlbHBlcnMmIGppdCkKK3sKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKyAgICBSZWdp
c3RlclNldCB0b1NhdmUgPSByZWdpc3RlcnNUb1ByZXNlcnZlKCk7CisgICAgcHRyZGlmZl90IG9m
ZnNldCA9IHJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KCk7CisgICAgCisgICAgQVNTRVJUKCF0
b1NhdmUuZ2V0KEdQUkluZm86OnJlZ1Q0KSk7CisKKyAgICAvLyBXZSBuZWVkIHRvIHBsYWNlIHRo
ZSBzdGFjayBwb2ludGVyIGJhY2sgdG8gd2hlcmUgdGhlIGNhbGxlciB0aG91Z2h0IHRoZXkgbGVm
dCBpdC4KKyAgICAvLyBCdXQgYWxzbywgaW4gb3JkZXIgdG8gcmVjb3ZlciB0aGUgcmVnaXN0ZXJz
LCB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IGJpZyB0aGUKKyAgICAvLyBhcmd1bWVudHMgYXJl
YSBpcy4KKyAgICAKKyAgICBqaXQubG9hZDMyKAorICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFk
ZHJlc3MoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LAorICAgICAgICAgICAgKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJG
cmFtZUFuZFBDU2l6ZSkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCksCisgICAg
ICAgIEdQUkluZm86OnJlZ1Q0KTsKKyAgICAKKyAgICBqaXQubW92ZShHUFJJbmZvOjpyZWdUNCwg
R1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5sc2hpZnQzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW0zMigzKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIAorICAgIGppdC5hZGRQdHIoQXNzZW1i
bHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIob2Zmc2V0KSwgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1Bv
aW50ZXJSZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMik7CisgICAgCisgICAgLy8gV2Ugc2F2ZWQgdGhp
bmdzIGF0OgorICAgIC8vCisgICAgLy8gICAgIGFkalNQICsgKEpTU3RhY2s6OkNhbGxGcmFtZUhl
YWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSArIE51bUFyZ3MpICogOAor
ICAgIC8vCisgICAgLy8gV2hlcmU6CisgICAgLy8KKyAgICAvLyAgICAgYWRqU1AgPSBvcmlnU1Ag
LSBvZmZzZXQKKyAgICAvLworICAgIC8vIHJlZ1QyIG5vdyBwb2ludHMgYXQ6CisgICAgLy8KKyAg
ICAvLyAgICAgb3JpZ1NQICsgTnVtQXJncyAqIDgKKyAgICAvLyAgID0gYWRqU1AgKyBvZmZzZXQg
KyBOdW1BcmdzICogOAorICAgIC8vIAorICAgIC8vIFNvIGlmIHdlIHN1YnRyYWN0IG9mZnNldCBh
bmQgdGhlbiBhZGQgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSBhbmQgc3VidHJhY3QKKyAg
ICAvLyBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgd2UnbGwgZ2V0IHRoZSB0aGluZyB3
ZSB3YW50LgorICAgIHB0cmRpZmZfdCBjdXJyZW50T2Zmc2V0ID0gLW9mZnNldCArIHNpemVvZihS
ZWdpc3RlcikgKiAoCisgICAgICAgIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0
YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSk7CisgICAgaml0LmxvYWRQdHIoQXNzZW1ibHlIZWxw
ZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QyLCBjdXJyZW50T2Zmc2V0KSwgR1BSSW5mbzo6cmVn
VDEpOworICAgIAorICAgIGZvciAoR1BSUmVnIGdwciA9IEFzc2VtYmx5SGVscGVyczo6Zmlyc3RS
ZWdpc3RlcigpOyBncHIgPD0gQXNzZW1ibHlIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgZ3ByID0g
c3RhdGljX2Nhc3Q8R1BSUmVnPihncHIgKyAxKSkgeworICAgICAgICBpZiAoIXRvU2F2ZS5nZXQo
Z3ByKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IHNp
emVvZihSZWdpc3Rlcik7CisgICAgICAgIGppdC5sb2FkNjQoQXNzZW1ibHlIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OnJlZ1QyLCBjdXJyZW50T2Zmc2V0KSwgZ3ByKTsKKyAgICB9CisgICAgCisg
ICAgLy8gVGh1bmtzIGxpa2UgdGhpcyByZWx5IG9uIHRoZSBBcmd1bWVudENvdW50IGJlaW5nIGlu
dGFjdC4gUGF5IGl0IGZvcndhcmQuCisgICAgaml0LnN0b3JlMzIoCisgICAgICAgIEdQUkluZm86
OnJlZ1Q0LAorICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCisgICAgICAgICAgICBB
c3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgKEpTU3Rh
Y2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgKiBzaXpl
b2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCkpOworICAgIAorICAgIGlmICghQVNTRVJUX0RJ
U0FCTEVEKSB7CisgICAgICAgIEFzc2VtYmx5SGVscGVyczo6SnVtcCBvayA9IGppdC5icmFuY2hQ
dHIoCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFib3ZlLCBHUFJJbmZvOjpyZWdUMSwg
QXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0YXRpY19jYXN0PHNpemVfdD4oMHgxMDAw
KSkpOworICAgICAgICBqaXQuYnJlYWtwb2ludCgpOworICAgICAgICBvay5saW5rKCZqaXQpOwor
ICAgIH0KKyAgICAKKyAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdUMSk7CisjZWxzZSAvLyBFTkFC
TEUoRlRMX0pJVCkKKyAgICBVTlVTRURfUEFSQU0oaml0KTsKKyAgICBVTlJFQUNIQUJMRV9GT1Jf
UExBVEZPUk0oKTsKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKK30KKworTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcihWTSogdm0pCit7Cisg
ICAgQXNzZW1ibHlIZWxwZXJzIGppdCh2bSwgMCk7CisgICAgZ2VuZXJhdGVSZWdpc3RlclJlc3Rv
cmF0aW9uKGppdCk7CisgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKCp2bSwgJmppdCwgR0xPQkFM
X1RIVU5LX0lEKTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCAoIlJlZ2lz
dGVyIHJlc3RvcmF0aW9uIHRodW5rIikpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2Vu
ZGlmIC8vIEVOQUJMRShKSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVn
aXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3Iu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvcl9oCisjZGVmaW5lIFJlZ2lzdGVy
UHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvcl9oCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5j
bHVkZSAiQXJpdHlDaGVja01vZGUuaCIKKyNpbmNsdWRlICJBc3NlbWJseUhlbHBlcnMuaCIKKyNp
bmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKKyNpbmNsdWRlICJWTS5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworUmVnaXN0ZXJTZXQgcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpOworCitwdHJk
aWZmX3QgcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKTsKKworTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIGdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKFZNJiwgRXhlY3V0YWJsZUJh
c2UqLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgdGFyZ2V0KTsKKworTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcihWTSopOworCit9IC8vIG5hbWVz
cGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNlbmRpZiAvLyBSZWdpc3RlclBy
ZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3JfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlcGF0Y2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTUxLDExICs1MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogLy8gdGhhdCB3b3VsZCBvcmRpbmFyaWx5
IGhhdmUgd2VsbC1rbm93biB2YWx1ZXM6CiAvLyAtIHRhZ1R5cGVOdW1iZXJSZWdpc3RlcgogLy8g
LSB0YWdNYXNrUmVnaXN0ZXIKLS8vIC0gY2FsbEZyYW1lUmVnaXN0ZXIgKioKLS8vCi0vLyBXZSBj
dXJyZW50bHkgb25seSB1c2UgdGhlIGNhbGxGcmFtZVJlZ2lzdGVyIGZvciBjbG9zdXJlIGNhbGwg
cGF0Y2hpbmcsIGFuZCB3ZSdyZSBub3QgZ29pbmcgdG8KLS8vIGdpdmUgdGhlIEZUTCBjbG9zdXJl
IGNhbGwgcGF0Y2hpbmcgc3VwcG9ydCB1bnRpbCB3ZSBzd2l0Y2ggdG8gdGhlIEMgc3RhY2sgLSBi
dXQgd2hlbiB3ZSBkbyB0aGF0LAotLy8gY2FsbEZyYW1lUmVnaXN0ZXIgd2lsbCBkaXNhcHBlYXIu
CiAKIHN0YXRpYyBGdW5jdGlvblB0ciByZWFkQ2FsbFRhcmdldChSZXBhdGNoQnVmZmVyJiByZXBh
dGNoQnVmZmVyLCBDb2RlTG9jYXRpb25DYWxsIGNhbGwpCiB7CkBAIC0yOTgsMjMgKzI5MywyMyBA
QCBzdGF0aWMgUHJvdG9DaGFpbkdlbmVyYXRpb25SZXN1bHQgZ2VuZXJhCiAjZW5kaWYKICAgICAg
ICAgfQogICAgIH0KKwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIG9wZXJhdGlvbkNhbGw7CiAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgaGFuZGxlckNhbGw7CiAgICAgRnVuY3Rpb25QdHIgb3Bl
cmF0aW9uRnVuY3Rpb247CiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzcywgZmFpbDsK
ICAgICBpZiAoaXNBY2Nlc3NvcikgewotICAgICAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIg
PSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLmNhbGxGcmFtZVJlZ2lzdGVyKTsK
ICAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVHZXR0ZXIoKSkgewotICAgICAgICAgICAgc3R1
YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3Rlciwgc2NyYXRjaEdQUiwgcmVzdWx0
R1BSKTsKKyAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHNj
cmF0Y2hHUFIsIHJlc3VsdEdQUik7CiAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IG9w
ZXJhdGlvbkNhbGxHZXR0ZXI7CiAgICAgICAgIH0gZWxzZSB7CiAjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgICAgIC8vIEVuY29kZWRKU1ZhbHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwotICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVS
ZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJvdG9PYmplY3QpLCBzY3Jh
dGNoR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgp
KSk7CisgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm90b09iamVjdCksIHNjcmF0Y2hHUFIsIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkpKTsKICAgICAgICAg
ICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0gRnVuY3Rpb25QdHIoc2xvdC5jdXN0b21HZXR0ZXIoKSk7
CiAjZWxzZQogICAgICAgICAgICAgc3R1YkppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKHByb3RvT2JqZWN0KSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICBzdHViSml0LnNl
dHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBzY3JhdGNoR1BSLAorICAgICAgICAgICAg
c3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoc2NyYXRjaEdQUiwKICAgICAgICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihGdW5jdGlvblB0cihzbG90LmN1
c3RvbUdldHRlcigpKS5leGVjdXRhYmxlQWRkcmVzcygpKSwKICAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSk7CiAgICAgICAg
ICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxDdXN0b21HZXR0ZXI7CkBAIC0z
NTAsOSArMzQ1LDEwIEBAIHN0YXRpYyBQcm90b0NoYWluR2VuZXJhdGlvblJlc3VsdCBnZW5lcmEK
ICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhvcGVyYXRpb25DYWxsLCBvcGVyYXRpb25GdW5jdGlv
bik7CiAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoaGFuZGxlckNhbGwsIGxvb2t1cEV4Y2VwdGlv
bkhhbmRsZXIpOwogICAgIH0KLSAgICBzdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX0RG
R19TVFVCKAotICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgKCJERkcgcHJvdG90eXBlIGNo
YWluIGFjY2VzcyBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICAKKyAgICBzdHVi
Um91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgIGV4ZWMtPmNvZGVCbG9j
aygpLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgKCJQcm90b3R5cGUgY2hhaW4gYWNjZXNzIHN0dWIg
Zm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgdG9DU3RyaW5nKCpleGVjLT5j
b2RlQmxvY2soKSkuZGF0YSgpLCBzdWNjZXNzTGFiZWwuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwog
ICAgIHJldHVybiBQcm90b0NoYWluR2VuZXJhdGlvblN1Y2NlZWRlZDsKIH0KQEAgLTQxMiw5ICs0
MDgsOSBAQCBzdGF0aWMgYm9vbCB0cnlDYWNoZUdldEJ5SUQoRXhlY1N0YXRlKiBlCiAgICAgICAg
IAogICAgICAgICBsaW5rUmVzdG9yZVNjcmF0Y2gocGF0Y2hCdWZmZXIsIG5lZWRUb1Jlc3RvcmVT
Y3JhdGNoLCBzdHViSW5mbywgc3VjY2VzcywgZmFpbCwgZmFpbHVyZUNhc2VzKTsKICAgICAgICAg
Ci0gICAgICAgIHN0dWJJbmZvLnN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfREZHX1NU
VUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgICAgICgiREZHIEdldEJ5SWQg
YXJyYXkgbGVuZ3RoIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAorICAgICAgICBzdHVi
SW5mby5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgICAgICBl
eGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisgICAgICAgICAgICAoIkdldEJ5SWQgYXJy
YXkgbGVuZ3RoIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgICAg
IHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwgc3R1YkluZm8uY2FsbFJldHVy
bkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoCiAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLnBh
dGNoLmRlbHRhQ2FsbFRvRG9uZSkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgICAgICAKQEAg
LTU3Miw3ICs1NjgsNiBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0
CiAgICAgICAgIAogICAgICAgICBzdHViSW5mby51LmdldEJ5SWRTZWxmTGlzdC5saXN0U2l6ZSsr
OwogICAgICAgICAKLSAgICAgICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gc3RhdGljX2Nh
c3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5jYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgIEdQ
UlJlZyBiYXNlR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5iYXNlR1BS
KTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBHUFJSZWcgcmVzdWx0VGFnR1BSID0g
c3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1ZVRhZ0dQUik7CkBAIC01OTYs
NiArNTkxLDEwIEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJRExpc3QoRXhlY1N0YXQKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzczsKICAgICAgICAgCiAgICAgICAgIGlm
IChzbG90LmlzQ2FjaGVhYmxlR2V0dGVyKCkgfHwgc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpKSB7
CisgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBjb2RlIHNob3VsZG4ndCBiZSBhc3N1bWluZyB0
aGF0IHRoZSB0b3Agb2Ygc3RhY2sgaXMgc2V0IHVwIGZvciBKU0MKKyAgICAgICAgICAgIC8vIEpJ
VC1zdHlsZSBDIGNhbGxzLCBzaW5jZSB3ZSBtYXkgYmUgY3VycmVudGx5IG9uIHRvcCBvZiBhbiBG
VEwgZnJhbWUuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI1NzExCisgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChzbG90LmlzQ2Fj
aGVhYmxlR2V0dGVyKCkpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBJ
bnZhbGlkR1BSUmVnKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoYmFzZUdQUiAhPSBzY3JhdGNo
R1BSKTsKQEAgLTYxMywxNiArNjEyLDE2IEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJRExp
c3QoRXhlY1N0YXQKICAgICAgICAgICAgICAgICAgICAgc3R1YkppdC5sb2FkMzIoTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3Moc2NyYXRjaEdQUiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2Uoc2xvdC5jYWNo
ZWRPZmZzZXQoKSkpLCBzY3JhdGNoR1BSKTsKICNlbmRpZgogICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBi
YXNlR1BSLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShiYXNlR1BSLCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBv
cGVyYXRpb25GdW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxHZXR0ZXI7CiAgICAgICAgICAgICB9IGVs
c2UgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICAgICAgLy8gRW5jb2RlZEpTVmFs
dWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgICAgICAgICAgICAg
c3R1YkppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgYmFzZUdQUiwgYmFzZUdQ
UiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CisgICAgICAg
ICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQUiwgYmFz
ZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CiAgICAg
ICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBGdW5jdGlvblB0cihzbG90LmN1c3RvbUdl
dHRlcigpKTsKICNlbHNlCi0gICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cygK
LSAgICAgICAgICAgICAgICAgICAgY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsCisgICAgICAg
ICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAgICAgICAg
ICAgICAgICAgIGJhc2VHUFIsCiAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tUHRyKEZ1bmN0aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpLAogICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cihpZGVudC5pbXBsKCkpKTsKICAgICAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9
IG9wZXJhdGlvbkNhbGxDdXN0b21HZXR0ZXI7CkBAIC02NDQsNyArNjQzLDcgQEAgc3RhdGljIGJv
b2wgdHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdAogI2VuZGlmCiAgICAgICAgICAgICBzdWNj
ZXNzID0gc3R1YkppdC5lbWl0RXhjZXB0aW9uQ2hlY2soQ0NhbGxIZWxwZXJzOjpJbnZlcnRlZEV4
Y2VwdGlvbkNoZWNrKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFy
Z3VtZW50c0V4ZWNTdGF0ZSgpOworICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cyhD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodm0pLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
cik7CiAgICAgICAgICAgICBoYW5kbGVyQ2FsbCA9IHN0dWJKaXQuY2FsbCgpOwogICAgICAgICAg
ICAgc3R1YkppdC5qdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CiAgICAgICAgIH0gZWxzZSB7CkBA
IC02ODQsOSArNjgzLDkgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3Rh
dAogICAgICAgICAKICAgICAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBzdHViUm91dGluZSA9
CiAgICAgICAgICAgICBjcmVhdGVKSVRTdHViUm91dGluZSgKLSAgICAgICAgICAgICAgICBGSU5B
TElaRV9ERkdfQ09ERSgKLSAgICAgICAgICAgICAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAg
ICAgICAgICAgICAgICgiREZHIEdldEJ5SWQgcG9seW1vcnBoaWMgbGlzdCBhY2Nlc3MgZm9yICVz
LCByZXR1cm4gcG9pbnQgJXAiLAorICAgICAgICAgICAgICAgIEZJTkFMSVpFX0NPREVfRk9SKAor
ICAgICAgICAgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisgICAg
ICAgICAgICAgICAgICAgICgiR2V0QnlJZCBwb2x5bW9ycGhpYyBsaXN0IGFjY2VzcyBmb3IgJXMs
IHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4
ZWMtPmNvZGVCbG9jaygpKS5kYXRhKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJl
bEF0T2Zmc2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLnBhdGNoLmRl
bHRhQ2FsbFRvRG9uZSkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpLAogICAgICAgICAgICAgICAgICp2
bSwKQEAgLTc3NSw3ICs3NzQsNyBAQCBzdGF0aWMgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBhcHBy
b3ByaWF0CiB9CiAKICNpZiBFTkFCTEUoR0dDKQotc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBjZWxs
LCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lz
dGVyLCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3ImIGFsbG9jYXRvcikKK3N0YXRpYyBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKENDYWxsSGVscGVycyYgaml0
LCBHUFJSZWcgY2VsbCwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIFNjcmF0Y2hS
ZWdpc3RlckFsbG9jYXRvciYgYWxsb2NhdG9yKQogewogICAgIEFTU0VSVChzY3JhdGNoMSAhPSBz
Y3JhdGNoMik7CiAgICAgV3JpdGVCYXJyaWVyQnVmZmVyKiB3cml0ZUJhcnJpZXJCdWZmZXIgPSAm
aml0LnZtKCktPmhlYXAud3JpdGVCYXJyaWVyQnVmZmVyKCk7CkBAIC04MDgsNyArODA3LDcgQEAg
c3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0ZQogICAgIGlmIChieXRlc1Rv
U3VidHJhY3QpCiAgICAgICAgIGppdC5zdWJQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MihieXRlc1RvU3VidHJhY3QpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIp
OyAKIAotICAgIGppdC5zZXR1cEFyZ3VtZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgY2VsbCk7Cisg
ICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShjZWxsKTsKICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsID0gaml0LmNhbGwoKTsKIAogICAgIGlmIChieXRlc1RvU3VidHJhY3Qp
CkBAIC04MjAsMTMgKzgxOSwxMyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgc3RvcmVU
b1dyaXRlCiAgICAgcmV0dXJuIGNhbGw7CiB9CiAKLXN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCB3cml0ZUJhcnJpZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBvd25lciwgR1BSUmVnIHNj
cmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwgU2NyYXRj
aFJlZ2lzdGVyQWxsb2NhdG9yJiBhbGxvY2F0b3IpCitzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgd3JpdGVCYXJyaWVyKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgb3duZXIsIEdQUlJlZyBz
Y3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyLCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3ImIGFsbG9j
YXRvcikKIHsKICAgICBBU1NFUlQob3duZXIgIT0gc2NyYXRjaDEpOwogICAgIEFTU0VSVChvd25l
ciAhPSBzY3JhdGNoMik7CiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkZWZpbml0ZWx5Tm90
TWFya2VkID0gREZHOjpTcGVjdWxhdGl2ZUpJVDo6Z2VuZXJpY1dyaXRlQmFycmllcihqaXQsIG93
bmVyLCBzY3JhdGNoMSwgc2NyYXRjaDIpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwg
PSBzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKGppdCwgb3duZXIsIHNjcmF0Y2gxLCBzY3JhdGNo
MiwgY2FsbEZyYW1lUmVnaXN0ZXIsIGFsbG9jYXRvcik7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbCA9IHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIoaml0LCBvd25lciwgc2NyYXRjaDEs
IHNjcmF0Y2gyLCBhbGxvY2F0b3IpOwogICAgIGRlZmluaXRlbHlOb3RNYXJrZWQubGluaygmaml0
KTsKICAgICByZXR1cm4gY2FsbDsKIH0KQEAgLTg0NCw5ICs4NDMsNiBAQCBzdGF0aWMgdm9pZCBl
bWl0UHV0UmVwbGFjZVN0dWIoCiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiYgc3R1YlJvdXRp
bmUpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0jaWYgRU5BQkxFKEdHQykKLSAgICBH
UFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBh
dGNoLmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSNlbmRpZgogICAgIEdQUlJlZyBiYXNlR1BSID0gc3Rh
dGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5iYXNlR1BSKTsKICNpZiBVU0UoSlNWQUxV
RTMyXzY0KQogICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1
YkluZm8ucGF0Y2gudmFsdWVUYWdHUFIpOwpAQCAtODkzLDcgKzg4OSw3IEBAIHN0YXRpYyB2b2lk
IGVtaXRQdXRSZXBsYWNlU3R1YigKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShHR0MpCi0gICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyT3BlcmF0aW9uID0gd3JpdGVCYXJyaWVy
KHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0Y2hHUFIxLCBzY3JhdGNoR1BSMiwgY2FsbEZyYW1lUmVn
aXN0ZXIsIGFsbG9jYXRvcik7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVy
T3BlcmF0aW9uID0gd3JpdGVCYXJyaWVyKHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0Y2hHUFIxLCBz
Y3JhdGNoR1BSMiwgYWxsb2NhdG9yKTsKICNlbmRpZgogICAgIAogICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIHN1Y2Nlc3M7CkBAIC05MTgsOSArOTE0LDkgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFJl
cGxhY2VTdHViKAogICAgIHBhdGNoQnVmZmVyLmxpbmsoc3VjY2Vzcywgc3R1YkluZm8uY2FsbFJl
dHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9Eb25l
KSk7CiAgICAgcGF0Y2hCdWZmZXIubGluayhmYWlsdXJlLCBmYWlsdXJlTGFiZWwpOwogICAgICAg
ICAgICAgCi0gICAgc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdfU1RVQigKLSAg
ICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICgiREZHIFB1dEJ5SWQgcmVwbGFjZSBzdHViIGZv
ciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICBzdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVf
Rk9SX1NUVUIoCisgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZlciwKKyAgICAg
ICAgKCJQdXRCeUlkIHJlcGxhY2Ugc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAg
ICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9jaygpKS5kYXRhKCksIHN0dWJJbmZvLmNh
bGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KAogICAgICAgICAgICAgICAgIHN0dWJJbmZv
LnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogfQpAQCAtOTQw
LDcgKzkzNiw2IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRUcmFuc2l0aW9uU3R1YigKIHsKICAgICBW
TSogdm0gPSAmZXhlYy0+dm0oKTsKIAotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IHN0
YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAg
IEdQUlJlZyBiYXNlR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5iYXNl
R1BSKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHN0
YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2gudmFsdWVUYWdHUFIpOwpAQCAtMTA2MCw3
ICsxMDU1LDcgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFRyYW5zaXRpb25TdHViKAogI2VuZGlmCiAg
ICAgCiAjaWYgRU5BQkxFKEdHQykKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJp
ZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJpZXIoc3R1YkppdCwgYmFzZUdQUiwgc2NyYXRjaEdQUjEs
IHNjcmF0Y2hHUFIyLCBjYWxsRnJhbWVSZWdpc3RlciwgYWxsb2NhdG9yKTsKKyAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJpZXIoc3R1Ykpp
dCwgYmFzZUdQUiwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBhbGxvY2F0b3IpOwogI2VuZGlm
CiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzczsKQEAgLTEwODYsOSArMTA4
MSw5IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRUcmFuc2l0aW9uU3R1YigKICAgICAgICAgU2NyYXRj
aEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6ZShhbGxvY2F0
b3IuZGVzaXJlZFNjcmF0Y2hCdWZmZXJTaXplKCkpOwogICAgICAgICBhbGxvY2F0b3IucHJlc2Vy
dmVVc2VkUmVnaXN0ZXJzVG9TY3JhdGNoQnVmZmVyKHN0dWJKaXQsIHNjcmF0Y2hCdWZmZXIsIHNj
cmF0Y2hHUFIxKTsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBzdHViSml0LnNldHVwQXJn
dW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbVB0cihzdHJ1Y3R1cmUpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHNsb3QuY2Fj
aGVkT2Zmc2V0KCkpLCB2YWx1ZUdQUik7CisgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0cnVj
dHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRPZmZzZXQoKSks
IHZhbHVlR1BSKTsKICNlbHNlCi0gICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZy
YW1lUmVnaXN0ZXIsIGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0cnVj
dHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRPZmZzZXQoKSks
IHZhbHVlR1BSLCB2YWx1ZVRhZ0dQUik7CisgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0cnVj
dHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRPZmZzZXQoKSks
IHZhbHVlR1BSLCB2YWx1ZVRhZ0dQUik7CiAjZW5kaWYKICAgICAgICAgb3BlcmF0aW9uQ2FsbCA9
IHN0dWJKaXQuY2FsbCgpOwogICAgICAgICBhbGxvY2F0b3IucmVzdG9yZVVzZWRSZWdpc3RlcnNG
cm9tU2NyYXRjaEJ1ZmZlcihzdHViSml0LCBzY3JhdGNoQnVmZmVyLCBzY3JhdGNoR1BSMSk7CkBA
IC0xMTExLDkgKzExMDYsOSBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0VHJhbnNpdGlvblN0dWIoCiAg
ICAgCiAgICAgc3R1YlJvdXRpbmUgPQogICAgICAgICBjcmVhdGVKSVRTdHViUm91dGluZSgKLSAg
ICAgICAgICAgIEZJTkFMSVpFX0RGR19DT0RFKAotICAgICAgICAgICAgICAgIHBhdGNoQnVmZmVy
LAotICAgICAgICAgICAgICAgICgiREZHIFB1dEJ5SWQgJXN0cmFuc2l0aW9uIHN0dWIgKCVwIC0+
ICVwKSBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCisgICAgICAgICAgICBGSU5BTElaRV9DT0RF
X0ZPUigKKyAgICAgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsCisg
ICAgICAgICAgICAgICAgKCJQdXRCeUlkICVzdHJhbnNpdGlvbiBzdHViICglcCAtPiAlcCkgZm9y
ICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUtPm91
dE9mTGluZUNhcGFjaXR5KCkgIT0gb2xkU3RydWN0dXJlLT5vdXRPZkxpbmVDYXBhY2l0eSgpID8g
InJlYWxsb2NhdGluZyAiIDogIiIsCiAgICAgICAgICAgICAgICAgICAgIG9sZFN0cnVjdHVyZSwg
c3RydWN0dXJlLAogICAgICAgICAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9j
aygpKS5kYXRhKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KApA
QCAtMTM5NCw5ICsxMzg5LDkgQEAgc3RhdGljIGJvb2wgdHJ5UmVwYXRjaEluKAogCiAgICAgICAg
IGxpbmtSZXN0b3JlU2NyYXRjaChwYXRjaEJ1ZmZlciwgbmVlZFRvUmVzdG9yZVNjcmF0Y2gsIHN1
Y2Nlc3MsIGZhaWwsIGZhaWx1cmVDYXNlcywgc3VjY2Vzc0xhYmVsLCBzbG93Q2FzZUxhYmVsKTsK
ICAgICAgICAgCi0gICAgICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfREZHX1NU
VUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgICAgICgiREZHIEluIChmb3Vu
ZCA9ICVzKSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICAgICAgc3R1YlJvdXRp
bmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICAgICAgZXhlYy0+Y29kZUJsb2Nr
KCksIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAgKCJJbiAoZm91bmQgPSAlcykgc3R1YiBmb3Ig
JXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICAgICAgd2FzRm91bmQgPyAieWVzIiA6
ICJubyIsIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwKICAgICAgICAgICAg
ICAgICBzdWNjZXNzTGFiZWwuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgIH0KQEAgLTE0MTks
MTcgKzE0MTQsMTkgQEAgdm9pZCByZXBhdGNoSW4oCiAgICAgcmVwYXRjaENhbGwoZXhlYy0+Y29k
ZUJsb2NrKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgb3BlcmF0aW9uSW4pOwogfQog
Ci1zdGF0aWMgdm9pZCBsaW5rU2xvd0ZvcihSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVyLCBW
TSogdm0sIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQpCitzdGF0aWMgdm9pZCBsaW5rU2xvd0ZvcigKKyAgICBSZXBhdGNoQnVmZmVyJiByZXBh
dGNoQnVmZmVyLCBWTSogdm0sIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLAorICAgIENvZGVT
cGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVy
cykKIHsKLSAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewotICAgICAgICByZXBhdGNoQnVm
ZmVyLnJlbGluayhjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1
Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwotICAgIHJlcGF0Y2hC
dWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRDVElT
dHViKHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICByZXBhdGNo
QnVmZmVyLnJlbGluaygKKyAgICAgICAgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwK
KyAgICAgICAgdm0tPmdldENUSVN0dWIodmlydHVhbFRodW5rR2VuZXJhdG9yRm9yKGtpbmQsIHJl
Z2lzdGVycykpLmNvZGUoKSk7CiB9CiAKLXZvaWQgbGlua0ZvcihFeGVjU3RhdGUqIGV4ZWMsIENh
bGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywgSlNG
dW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciwgQ29kZVNwZWNp
YWxpemF0aW9uS2luZCBraW5kKQordm9pZCBsaW5rRm9yKAorICAgIEV4ZWNTdGF0ZSogZXhlYywg
Q2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLAor
ICAgIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIsIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwKKyAgICBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUg
cmVnaXN0ZXJzKQogewogICAgIEFTU0VSVCghY2FsbExpbmtJbmZvLnN0dWIpOwogICAgIApAQCAt
MTQ0NSwzMSArMTQ0MiwzOCBAQCB2b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlu
a0luCiAgICAgQVNTRVJUKCFjYWxsTGlua0luZm8uaXNMaW5rZWQoKSk7CiAgICAgY2FsbExpbmtJ
bmZvLmNhbGxlZS5zZXQoZXhlYy0+Y2FsbGVyRnJhbWUoKS0+dm0oKSwgY2FsbExpbmtJbmZvLmhv
dFBhdGhCZWdpbiwgY2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVlKTsK
ICAgICBjYWxsTGlua0luZm8ubGFzdFNlZW5DYWxsZWUuc2V0KGV4ZWMtPmNhbGxlckZyYW1lKCkt
PnZtKCksIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7CisgICAg
aWYgKHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihjYWxsZXJDb2RlQmxvY2spKQorICAgICAgICBk
YXRhTG9nKCJMaW5raW5nIGNhbGwgaW4gIiwgKmNhbGxlckNvZGVCbG9jaywgIiBhdCAiLCBjYWxs
TGlua0luZm8uY29kZU9yaWdpbiwgIiB0byAiLCBwb2ludGVyRHVtcChjYWxsZWVDb2RlQmxvY2sp
LCAiLCBlbnRyeXBvaW50IGF0ICIsIGNvZGVQdHIsICJcbiIpOwogICAgIHJlcGF0Y2hCdWZmZXIu
cmVsaW5rKGNhbGxMaW5rSW5mby5ob3RQYXRoT3RoZXIsIGNvZGVQdHIpOwogICAgIAogICAgIGlm
IChjYWxsZWVDb2RlQmxvY2spCiAgICAgICAgIGNhbGxlZUNvZGVCbG9jay0+bGlua0luY29taW5n
Q2FsbChleGVjLT5jYWxsZXJGcmFtZSgpLCAmY2FsbExpbmtJbmZvKTsKICAgICAKICAgICBpZiAo
a2luZCA9PSBDb2RlRm9yQ2FsbCkgewotICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxs
TGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1YihsaW5rQ2xvc3VyZUNh
bGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmso
Y2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIobGlua0Nsb3N1
cmVDYWxsVGh1bmtHZW5lcmF0b3JGb3IocmVnaXN0ZXJzKSkuY29kZSgpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICAKICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsK
LSAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExpbmtJbmZvLCBDb2RlRm9y
Q29uc3RydWN0KTsKKyAgICBsaW5rU2xvd0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExpbmtJ
bmZvLCBDb2RlRm9yQ29uc3RydWN0LCByZWdpc3RlcnMpOwogfQogCi12b2lkIGxpbmtTbG93Rm9y
KEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVTcGVjaWFs
aXphdGlvbktpbmQga2luZCkKK3ZvaWQgbGlua1Nsb3dGb3IoCisgICAgRXhlY1N0YXRlKiBleGVj
LCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
LAorICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgQ29kZUJs
b2NrKiBjYWxsZXJDb2RlQmxvY2sgPSBleGVjLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKTsK
ICAgICBWTSogdm0gPSBjYWxsZXJDb2RlQmxvY2stPnZtKCk7CiAgICAgCiAgICAgUmVwYXRjaEJ1
ZmZlciByZXBhdGNoQnVmZmVyKGNhbGxlckNvZGVCbG9jayk7CiAgICAgCi0gICAgbGlua1Nsb3dG
b3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywga2luZCk7CisgICAgbGlua1Nsb3dG
b3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywga2luZCwgcmVnaXN0ZXJzKTsKIH0K
IAotdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNh
bGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNv
ZGVQdHIpCit2b2lkIGxpbmtDbG9zdXJlQ2FsbCgKKyAgICBFeGVjU3RhdGUqIGV4ZWMsIENhbGxM
aW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywKKyAgICBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUsIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjb2RlUHRyLAorICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdp
c3RlcnMpCiB7CiAgICAgQVNTRVJUKCFjYWxsTGlua0luZm8uc3R1Yik7CiAgICAgCkBAIC0xNDgy
LDYgKzE0ODYsMTUgQEAgdm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYQog
ICAgIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7CiAgICAgCisgICAgcHRy
ZGlmZl90IG9mZnNldFRvRnJhbWUgPSAtc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpOworCisgICAg
aWYgKCFBU1NFUlRfRElTQUJMRUQpIHsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG9rQXJn
dW1lbnRDb3VudCA9IHN0dWJKaXQuYnJhbmNoMzIoCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
OkJlbG93LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFj
azo6QXJndW1lbnRDb3VudCkgKyBvZmZzZXRUb0ZyYW1lICsgUGF5bG9hZE9mZnNldCksIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKDEwMDAwMDAwKSk7CisgICAgICAgIHN0dWJKaXQuYnJlYWtw
b2ludCgpOworICAgICAgICBva0FyZ3VtZW50Q291bnQubGluaygmc3R1YkppdCk7CisgICAgfQor
CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAvLyBXZSBjYW4gc2FmZWx5IGNsb2JiZXIgZXZlcnl0
aGluZyBleGNlcHQgdGhlIGNhbGxlZUdQUi4gV2UgY2FuJ3QgcmVseSBvbiB0YWdNYXNrUmVnaXN0
ZXIKICAgICAvLyBiZWluZyBzZXQuIFNvIHdlIGRvIHRoaXMgdGhlIGhhcmQgd2F5LgpAQCAtMTUw
NywxOCArMTUyMCwxOCBAQCB2b2lkIGxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIENh
CiAgICAgc3R1YkppdC5sb2FkUHRyKAogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY2Fs
bGVlR1BSLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNjb3BlQ2hhaW4oKSksCiAgICAgICAgIEdQUklu
Zm86OnJldHVyblZhbHVlR1BSKTsKLQorICAgIAogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3R1
YkppdC5zdG9yZTY0KAogICAgICAgICBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwKLSAgICAgICAg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNf
Y2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSkp
OworICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBK
U1N0YWNrOjpTY29wZUNoYWluKSArIG9mZnNldFRvRnJhbWUpKTsKICNlbHNlCiAgICAgc3R1Ykpp
dC5zdG9yZVB0cigKICAgICAgICAgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsCi0gICAgICAgIEND
YWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nh
c3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBP
QkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7
CisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpT
U3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0
b3IsIGFzQml0cy5wYXlsb2FkKSArIG9mZnNldFRvRnJhbWUpKTsKICAgICBzdHViSml0LnN0b3Jl
MzIoCiAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcp
LAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNj
b3BlQ2hhaW4pICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0
cy50YWcpKSk7CisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lz
dGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpICsgb2Zmc2V0VG9GcmFtZSkpOwogI2VuZGlmCiAgICAg
CiAgICAgQXNzZW1ibHlIZWxwZXJzOjpDYWxsIGNhbGwgPSBzdHViSml0Lm5lYXJDYWxsKCk7CkBA
IC0xNTI5LDIwICsxNTQyLDI0IEBAIHZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhl
YywgQ2EKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIHN0dWJKaXQubW92ZShDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgR1BSSW5mbzo6cmVnVDEpOwogI2Vu
ZGlmCi0gICAgc3R1YkppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihjYWxsTGlu
a0luZm8uY2FsbFJldHVybkxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBHUFJJbmZvOjpu
b25BcmdHUFIyKTsKLSAgICBzdHViSml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KEdQUkluZm86Om5vbkFyZ0dQUjIpOworICAgIHN0dWJKaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5leGVjdXRhYmxlQWRk
cmVzcygpKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIAorICAgIHN0dWJKaXQucmVzdG9yZVJldHVy
bkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6cmVnVDIpOwogICAgIEFzc2VtYmx5SGVscGVy
czo6SnVtcCBzbG93ID0gc3R1YkppdC5qdW1wKCk7CiAgICAgCiAgICAgTGlua0J1ZmZlciBwYXRj
aEJ1ZmZlcigqdm0sICZzdHViSml0LCBjYWxsZXJDb2RlQmxvY2spOwogICAgIAogICAgIHBhdGNo
QnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHIoY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygp
KSk7Ci0gICAgcGF0Y2hCdWZmZXIubGluayhkb25lLCBjYWxsTGlua0luZm8uY2FsbFJldHVybkxv
Y2F0aW9uLmxhYmVsQXRPZmZzZXQoMCkpOwotICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvdywgQ29k
ZUxvY2F0aW9uTGFiZWwodm0tPmdldENUSVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvciku
Y29kZSgpKSk7CisgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChjYWxsZXJDb2RlQmxv
Y2stPmppdFR5cGUoKSkpCisgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgY2FsbExpbmtJ
bmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KDApKTsKKyAgICBlbHNlCisgICAg
ICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgY2FsbExpbmtJbmZvLmhvdFBhdGhPdGhlci5sYWJl
bEF0T2Zmc2V0KDApKTsKKyAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3csIENvZGVMb2NhdGlvbkxh
YmVsKHZtLT5nZXRDVElTdHViKHZpcnR1YWxUaHVua0dlbmVyYXRvckZvcihDb2RlRm9yQ2FsbCwg
cmVnaXN0ZXJzKSkuY29kZSgpKSk7CiAgICAgCiAgICAgUmVmUHRyPENsb3N1cmVDYWxsU3R1YlJv
dXRpbmU+IHN0dWJSb3V0aW5lID0gYWRvcHRSZWYobmV3IENsb3N1cmVDYWxsU3R1YlJvdXRpbmUo
Ci0gICAgICAgIEZJTkFMSVpFX0RGR19DT0RFKAotICAgICAgICAgICAgcGF0Y2hCdWZmZXIsCi0g
ICAgICAgICAgICAoIkRGRyBjbG9zdXJlIGNhbGwgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAl
cCwgdGFyZ2V0ICVwICglcykiLAorICAgICAgICBGSU5BTElaRV9DT0RFX0ZPUigKKyAgICAgICAg
ICAgIGNhbGxlckNvZGVCbG9jaywgcGF0Y2hCdWZmZXIsCisgICAgICAgICAgICAoIkNsb3N1cmUg
Y2FsbCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwLCB0YXJnZXQgJXAgKCVzKSIsCiAgICAg
ICAgICAgICAgICAgdG9DU3RyaW5nKCpjYWxsZXJDb2RlQmxvY2spLmRhdGEoKSwgY2FsbExpbmtJ
bmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KDApLmV4ZWN1dGFibGVBZGRyZXNz
KCksCiAgICAgICAgICAgICAgICAgY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpLCB0b0NTdHJp
bmcocG9pbnRlckR1bXAoY2FsbGVlQ29kZUJsb2NrKSkuZGF0YSgpKSksCiAgICAgICAgICp2bSwg
Y2FsbGVyQ29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgc3RydWN0dXJlLCBleGVjdXRhYmxl
LCBjYWxsTGlua0luZm8uY29kZU9yaWdpbikpOwpAQCAtMTU1Miw3ICsxNTY5LDcgQEAgdm9pZCBs
aW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjLCBDYQogICAgIHJlcGF0Y2hCdWZmZXIucmVw
bGFjZVdpdGhKdW1wKAogICAgICAgICBSZXBhdGNoQnVmZmVyOjpzdGFydE9mQnJhbmNoUHRyV2l0
aFBhdGNoT25SZWdpc3RlcihjYWxsTGlua0luZm8uaG90UGF0aEJlZ2luKSwKICAgICAgICAgQ29k
ZUxvY2F0aW9uTGFiZWwoc3R1YlJvdXRpbmUtPmNvZGUoKS5jb2RlKCkpKTsKLSAgICBsaW5rU2xv
d0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ2FsbCk7CisgICAg
bGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywgQ29kZUZvckNhbGws
IHJlZ2lzdGVycyk7CiAgICAgCiAgICAgY2FsbExpbmtJbmZvLnN0dWIgPSBzdHViUm91dGluZS5y
ZWxlYXNlKCk7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2gu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAkocmV2
aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDkgKzQxLDkgQEAgdm9pZCBidWlsZEdldEJ5SURQcm90b0xpc3Qo
RXhlY1N0YXRlKiwgSgogdm9pZCByZXBhdGNoUHV0QnlJRChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBj
b25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1Yklu
Zm8mLCBQdXRLaW5kKTsKIHZvaWQgYnVpbGRQdXRCeUlkTGlzdChFeGVjU3RhdGUqLCBKU1ZhbHVl
LCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1
YkluZm8mLCBQdXRLaW5kKTsKIHZvaWQgcmVwYXRjaEluKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIGNv
bnN0IElkZW50aWZpZXImLCBib29sIHdhc0ZvdW5kLCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1
Y3R1cmVTdHViSW5mbyYpOwotdm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYs
IENvZGVCbG9jayosIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyLCBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKLXZvaWQgbGlua1Nsb3dGb3IoRXhlY1N0YXRlKiwgQ2Fs
bExpbmtJbmZvJiwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7Ci12b2lkIGxpbmtDbG9zdXJlQ2Fs
bChFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBFeGVj
dXRhYmxlQmFzZSosIE1hY3JvQXNzZW1ibGVyQ29kZVB0cik7Cit2b2lkIGxpbmtGb3IoRXhlY1N0
YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZSk7Cit2b2lkIGxpbmtTbG93Rm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYs
IENvZGVTcGVjaWFsaXphdGlvbktpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSk7Cit2b2lk
IGxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBT
dHJ1Y3R1cmUqLCBFeGVjdXRhYmxlQmFzZSosIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciwgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Nb2RlKTsKIHZvaWQgcmVzZXRHZXRCeUlEKFJlcGF0Y2hCdWZmZXImLCBT
dHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9pZCByZXNldFB1dEJ5SUQoUmVwYXRjaEJ1ZmZlciYsIFN0
cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lkIHJlc2V0SW4oUmVwYXRjaEJ1ZmZlciYsIFN0cnVjdHVy
ZVN0dWJJbmZvJik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVk
VGh1bmtKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNp
YWxpemVkVGh1bmtKSVQuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQx
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNwZWNpYWxpemVkVGh1bmtKSVQoVk0qIHZt
LCBpbnQgZXhwZWN0ZWRBcmdDb3VudCkKICAgICAgICAgICAgIDogSlNJbnRlcmZhY2VKSVQodm0p
CiAgICAgICAgIHsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgICAg
ICAgICAvLyBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIGV4cGVjdGVkIG51bWJlciBvZiBhcmd1bWVu
dHMKICAgICAgICAgICAgIG1fZmFpbHVyZXMuYXBwZW5kKGJyYW5jaDMyKE5vdEVxdWFsLCBwYXls
b2FkRm9yKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpLCBUcnVzdGVkSW1tMzIoZXhwZWN0ZWRBcmdD
b3VudCArIDEpKSk7CiAgICAgICAgIH0KQEAgLTQ4LDYgKzQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIGV4cGxpY2l0IFNwZWNpYWxpemVkVGh1bmtKSVQoVk0qIHZtKQogICAgICAgICAg
ICAgOiBKU0ludGVyZmFjZUpJVCh2bSkKICAgICAgICAgeworICAgICAgICAgICAgZW1pdEZ1bmN0
aW9uUHJvbG9ndWUoKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdm9pZCBsb2FkRG91
YmxlQXJndW1lbnQoaW50IGFyZ3VtZW50LCBGUFJlZ2lzdGVySUQgZHN0LCBSZWdpc3RlcklEIHNj
cmF0Y2gpCkBAIC05Nyw3ICs5OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAoc3JjICE9IHJlZ1QwKQogICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdU
MCk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxG
cmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQoKTsKICAgICAgICAg
fQogI2Vsc2UKQEAgLTEwNSw3ICsxMDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewog
ICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChwYXlsb2FkLCBwYXlsb2FkID09IHJlZ1QwKTsKICAg
ICAgICAgICAgIEFTU0VSVF9VTlVTRUQodGFnLCB0YWcgPT0gcmVnVDEpOwotICAgICAgICAgICAg
bG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1l
T2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtMTM2
LDcgKzEzOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbG93Tm9uWmVyby5saW5r
KHRoaXMpOwogICAgICAgICAgICAgaGlnaE5vblplcm8ubGluayh0aGlzKTsKICNlbmRpZgotICAg
ICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OmNh
bGxlckZyYW1lT2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAgICBlbWl0
RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KIApAQCAt
MTQ1LDcgKzE0Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgaWYgKHNyYyAhPSBy
ZWdUMCkKICAgICAgICAgICAgICAgICBtb3ZlKHNyYywgcmVnVDApOwogICAgICAgICAgICAgdGFn
UmV0dXJuQXNJbnQzMigpOwotICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJl
Z2lzdGVyLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rl
cik7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgcmV0
KCk7CiAgICAgICAgIH0KIApAQCAtMTU0LDcgKzE1Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgaWYgKHNyYyAhPSByZWdUMCkKICAgICAgICAgICAgICAgICBtb3ZlKHNyYywgcmVn
VDApOwogICAgICAgICAgICAgdGFnUmV0dXJuQXNKU0NlbGwoKTsKLSAgICAgICAgICAgIGxvYWRQ
dHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNl
dCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICAgICAgICAgICAgIHJldCgpOwogICAgICAgICB9CiAgICAgICAgIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgogI2luY2x1
ZGUgIkpTU3RhY2suaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5o
IgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJTcGVjaWFsaXplZFRodW5rSklU
LmgiCiAjaW5jbHVkZSA8d3RmL0lubGluZUFTTS5oPgpAQCAtNjYsMTAgKzY3LDcgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIHRocm93RXhjZXB0aW9uRnJvbQogICAgIC8vIGV2ZW4gdGhvdWdoIHdl
IHdvbid0IHVzZSBpdC4KICAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQ
UkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7CiAKLSAgICAvLyBUaGUgQ2FsbEZyYW1l
IHJlZ2lzdGVyIHBvaW50cyB0byB0aGUgKGZhaWxlZCkgY2FsbGVlIGZyYW1lLCBzbyB3ZSBuZWVk
IHRvIHBvcCBiYWNrIG9uZSBmcmFtZS4KLSAgICBqaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNh
bGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KLSAgICBqaXQu
c2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKKyAgICBqaXQuc2V0dXBBcmd1bWVudHMoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZtKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwog
ICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAg
ZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgaml0
LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCk7CkBAIC04MiwyOSArODAsMjggQEAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIHRocm93RXhjZXB0aW9uRnJvbQogc3RhdGljIHZvaWQgc2xvd1BhdGhGb3Io
CiAgICAgQ0NhbGxIZWxwZXJzJiBqaXQsIFZNKiB2bSwgUF9KSVRPcGVyYXRpb25fRSBzbG93UGF0
aEZ1bmN0aW9uKQogewotICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BS
SW5mbzo6bm9uQXJnR1BSMik7Ci0gICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5m
bzo6bm9uQXJnR1BSMik7Ci0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVy
KEdQUkluZm86Om5vbkFyZ0dQUjIpOworICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwog
ICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgJnZtLT50b3BDYWxs
RnJhbWUpOworICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAg
aml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBq
aXQuc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoYml0d2lzZV9jYXN0PHZvaWQqPihzbG93UGF0aEZ1bmN0aW9uKSksIEdQ
UkluZm86Om5vbkFyZ0dQUjApOwogICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUklu
Zm86Om5vbkFyZ0dQUjApOwogICAgIGppdC5jYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOworICAg
IGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgaml0LmFkZFB0cihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCks
IENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIAogICAgIC8vIFRoaXMg
c2xvdyBjYWxsIHdpbGwgcmV0dXJuIHRoZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUgZm9sbG93aW5n
OgogICAgIC8vIDEpIEV4Y2VwdGlvbiB0aHJvd2luZyB0aHVuay4KICAgICAvLyAyKSBIb3N0IGNh
bGwgcmV0dXJuIHZhbHVlIHJldHVybmVyIHRoaW5neS4KICAgICAvLyAzKSBUaGUgZnVuY3Rpb24g
dG8gY2FsbC4KLSAgICBqaXQuZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihH
UFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwotICAgIGppdC5lbWl0UHV0UmV0dXJu
UENUb0NhbGxGcmFtZUhlYWRlcihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoMCkpOwotICAg
IGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVy
bkdQUik7Ci0gICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86
Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7CiAgICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGpp
dCwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgIGppdC5qdW1wKEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKIH0KIAogc3RhdGlj
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rRm9yVGh1bmtHZW5lcmF0b3IoCi0gICAgVk0qIHZt
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgVk0qIHZtLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAg
ICAgLy8gVGhlIHJldHVybiBhZGRyZXNzIGlzIG9uIHRoZSBzdGFjayBvciBpbiB0aGUgbGluayBy
ZWdpc3Rlci4gV2Ugd2lsbCBoZW5jZQogICAgIC8vIHNhdmUgdGhlIHJldHVybiBhZGRyZXNzIHRv
IHRoZSBjYWxsIGZyYW1lIHdoaWxlIHdlIG1ha2UgYSBDKysgZnVuY3Rpb24gY2FsbApAQCAtMTE0
LDM4ICsxMTEsNTkgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rRm9yVGh1bgog
ICAgIAogICAgIENDYWxsSGVscGVycyBqaXQodm0pOwogICAgIAotICAgIHNsb3dQYXRoRm9yKGpp
dCwgdm0sIGtpbmQgPT0gQ29kZUZvckNhbGwgPyBvcGVyYXRpb25MaW5rQ2FsbCA6IG9wZXJhdGlv
bkxpbmtDb25zdHJ1Y3QpOworICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIG9wZXJhdGlvbkxpbmtG
b3Ioa2luZCwgcmVnaXN0ZXJzKSk7CiAgICAgCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigq
dm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7CiAgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUoCiAg
ICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAoIkxpbmsgJXMgc2xvdyBwYXRoIHRodW5rIiwg
a2luZCA9PSBDb2RlRm9yQ2FsbCA/ICJjYWxsIiA6ICJjb25zdHJ1Y3QiKSk7CisgICAgICAgICgi
TGluayAlcyVzIHNsb3cgcGF0aCB0aHVuayIsIGtpbmQgPT0gQ29kZUZvckNhbGwgPyAiY2FsbCIg
OiAiY29uc3RydWN0IiwgcmVnaXN0ZXJzID09IE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyA/ICIgdGhh
dCBwcmVzZXJ2ZXMgcmVnaXN0ZXJzIiA6ICIiKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbGlua0ZvclRo
dW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCk7CisgICAgcmV0dXJuIGxpbmtGb3JUaHVua0dl
bmVyYXRvcih2bSwgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQp
OwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9y
KFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9y
Q29uc3RydWN0KTsKKyAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9y
Q29uc3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAotLy8gRm9y
IGNsb3N1cmUgb3B0aW1pemF0aW9ucywgd2Ugb25seSBpbmNsdWRlIGNhbGxzLCBzaW5jZSBpZiB5
b3UncmUgdXNpbmcgY2xvc3VyZXMgZm9yCi0vLyBvYmplY3QgY29uc3RydWN0aW9uIHRoZW4geW91
J3JlIGdvaW5nIHRvIGxvc2UgYmlnIHRpbWUgYW55d2F5LgotTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKK01hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQorewor
ICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBNdXN0UHJl
c2VydmVSZWdpc3RlcnMpOworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVj
dFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBs
aW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJl
Z2lzdGVycyk7Cit9CisKK3N0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0Nsb3N1cmVD
YWxsRm9yVGh1bmtHZW5lcmF0b3IoCisgICAgVk0qIHZtLCBSZWdpc3RlclByZXNlcnZhdGlvbk1v
ZGUgcmVnaXN0ZXJzKQogewogICAgIENDYWxsSGVscGVycyBqaXQodm0pOwogICAgIAotICAgIHNs
b3dQYXRoRm9yKGppdCwgdm0sIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbCk7CisgICAgc2xvd1Bh
dGhGb3Ioaml0LCB2bSwgb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsRm9yKHJlZ2lzdGVycykpOwog
ICAgIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktf
SUQpOwotICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIkxpbmsgY2xvc3Vy
ZSBjYWxsIHNsb3cgcGF0aCB0aHVuayIpKTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRj
aEJ1ZmZlciwgKCJMaW5rIGNsb3N1cmUgY2FsbCAlcyBzbG93IHBhdGggdGh1bmsiLCByZWdpc3Rl
cnMgPT0gTXVzdFByZXNlcnZlUmVnaXN0ZXJzID8gIiB0aGF0IHByZXNlcnZlcyByZWdpc3RlcnMi
IDogIiIpKTsKK30KKworLy8gRm9yIGNsb3N1cmUgb3B0aW1pemF0aW9ucywgd2Ugb25seSBpbmNs
dWRlIGNhbGxzLCBzaW5jZSBpZiB5b3UncmUgdXNpbmcgY2xvc3VyZXMgZm9yCisvLyBvYmplY3Qg
Y29uc3RydWN0aW9uIHRoZW4geW91J3JlIGdvaW5nIHRvIGxvc2UgYmlnIHRpbWUgYW55d2F5Lgor
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKFZNKiB2
bSkKK3sKKyAgICByZXR1cm4gbGlua0Nsb3N1cmVDYWxsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgbGlua0Nsb3N1cmVDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSogdm0p
Cit7CisgICAgcmV0dXJuIGxpbmtDbG9zdXJlQ2FsbEZvclRodW5rR2VuZXJhdG9yKHZtLCBNdXN0
UHJlc2VydmVSZWdpc3RlcnMpOwogfQogCiBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZp
cnR1YWxGb3JUaHVua0dlbmVyYXRvcigKLSAgICBWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktp
bmQga2luZCkKKyAgICBWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICAvLyBUaGUgY2FsbGVlIGlzIGlu
IHJlZ1QwIChmb3IgSlNWQUxVRTMyXzY0LCB0aGUgdGFnIGlzIGluIHJlZ1QxKS4KICAgICAvLyBU
aGUgcmV0dXJuIGFkZHJlc3MgaXMgb24gdGhlIHN0YWNrLCBvciBpbiB0aGUgbGluayByZWdpc3Rl
ci4gV2Ugd2lsbCBoZW5jZQpAQCAtMTYwLDMzICsxNzgsMzQgQEAgc3RhdGljIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiB2aXJ0dWFsRm9yVAogICAgIC8vIHRoZSBERkcga25vd3MgdGhhdCB0aGUgdmFs
dWUgaXMgZGVmaW5pdGVseSBhIGNlbGwsIG9yIGRlZmluaXRlbHkgYSBmdW5jdGlvbi4KICAgICAK
ICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTY0KFRhZ01hc2spLCBHUFJJbmZvOjpyZWdUMik7CisgICAgCiAgICAgc2xvd0Nhc2UuYXBwZW5k
KAogICAgICAgICBqaXQuYnJhbmNoVGVzdDY0KAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpO
b25aZXJvLCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7CisgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vblplcm8sIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpy
ZWdUMikpOwogI2Vsc2UKICAgICBzbG93Q2FzZS5hcHBlbmQoCiAgICAgICAgIGppdC5icmFuY2gz
MigKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm90RXF1YWwsIEdQUkluZm86OnJlZ1QxLAog
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykp
KTsKICNlbmRpZgotICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZv
OjpyZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIEdQUkluZm86Om5vbkFyZ0dQUjIp
OworICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwg
SlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QyKTsKICAgICBzbG93Q2Fz
ZS5hcHBlbmQoCiAgICAgICAgIGppdC5icmFuY2hQdHIoCiAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6Ok5vdEVxdWFsLAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
Om5vbkFyZ0dQUjIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLAorICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QyLCBTdHJ1Y3R1cmU6OmNsYXNzSW5m
b09mZnNldCgpKSwKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihKU0Z1
bmN0aW9uOjppbmZvKCkpKSk7CiAgICAgCiAgICAgLy8gTm93IHdlIGtub3cgd2UgaGF2ZSBhIEpT
RnVuY3Rpb24uCiAgICAgCiAgICAgaml0LmxvYWRQdHIoCiAgICAgICAgIENDYWxsSGVscGVyczo6
QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkp
LAotICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIyKTsKLSAgICBzbG93Q2FzZS5hcHBlbmQoCi0g
ICAgICAgIGppdC5icmFuY2gzMigKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGVzc1RoYW4s
Ci0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCi0gICAgICAgICAgICAgICAgR1BS
SW5mbzo6bm9uQXJnR1BSMiwgRXhlY3V0YWJsZUJhc2U6Om9mZnNldE9mTnVtUGFyYW1ldGVyc0Zv
cihraW5kKSksCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSkpOwor
ICAgICAgICBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LmxvYWRQdHIoCisgICAgICAgIENDYWxs
SGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgICAgIEdQUkluZm86OnJlZ1QyLCBFeGVjdXRhYmxl
QmFzZTo6b2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCwgcmVnaXN0ZXJzKSks
CisgICAgICAgIEdQUkluZm86OnJlZ1QyKTsKKyAgICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5j
aFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMikpOwogICAgIAogICAg
IC8vIE5vdyB3ZSBrbm93IHRoYXQgd2UgaGF2ZSBhIENvZGVCbG9jaywgYW5kIHdlJ3JlIGNvbW1p
dHRlZCB0byBtYWtpbmcgYSBmYXN0CiAgICAgLy8gY2FsbC4KQEAgLTE5NSw2MiArMjE0LDYwIEBA
IHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbEZvclQKICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNjb3Bl
Q2hhaW4oKSksCiAgICAgICAgIEdQUkluZm86OnJlZ1QxKTsKICNpZiBVU0UoSlNWQUxVRTY0KQot
ICAgIGppdC5zdG9yZTY0KAotICAgICAgICBHUFJJbmZvOjpyZWdUMSwKLSAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKAotICAgICAgICAgICAgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIs
Ci0gICAgICAgICAgICBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICog
SlNTdGFjazo6U2NvcGVDaGFpbikpOworICAgIGppdC5lbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXJC
ZWZvcmVQcm9sb2d1ZShHUFJJbmZvOjpyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAjZWxz
ZQotICAgIGppdC5zdG9yZVB0cigKLSAgICAgICAgR1BSSW5mbzo6cmVnVDEsCi0gICAgICAgIEND
YWxsSGVscGVyczo6QWRkcmVzcygKLSAgICAgICAgICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIp
KSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKwotICAgICAgICAgICAgT0JKRUNUX09GRlNFVE9GKEVu
Y29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOwotICAgIGppdC5zdG9yZTMy
KAotICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwK
LSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKAotICAgICAgICAgICAgR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVv
ZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbiArCi0gICAgICAgICAgICBPQkpFQ1Rf
T0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpKTsKKyAgICBqaXQu
ZW1pdFB1dFBheWxvYWRUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKEdQUkluZm86OnJl
Z1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKKyAgICBqaXQuZW1pdFB1dFRhZ1RvQ2FsbEZyYW1l
SGVhZGVyQmVmb3JlUHJvbG9ndWUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
Q2VsbFRhZyksCisgICAgICAgIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogI2VuZGlmCiAgICAgCi0g
ICAgaml0LmxvYWRQdHIoCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpu
b25BcmdHUFIyLCBFeGVjdXRhYmxlQmFzZTo6b2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tG
b3Ioa2luZCkpLAotICAgICAgICBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgCiAgICAgLy8gTWFrZSBh
IHRhaWwgY2FsbC4gVGhpcyB3aWxsIHJldHVybiBiYWNrIHRvIEpJVCBjb2RlLgotICAgIGVtaXRQ
b2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86OnJlZ1QwKTsKLSAgICBqaXQuanVtcChHUFJJ
bmZvOjpyZWdUMCk7CisgICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6cmVn
VDIpOworICAgIGppdC5qdW1wKEdQUkluZm86OnJlZ1QyKTsKIAogICAgIHNsb3dDYXNlLmxpbmso
JmppdCk7CiAgICAgCiAgICAgLy8gSGVyZSB3ZSBkb24ndCBrbm93IGFueXRoaW5nLCBzbyByZXZl
cnQgdG8gdGhlIGZ1bGwgc2xvdyBwYXRoLgogICAgIAotICAgIHNsb3dQYXRoRm9yKGppdCwgdm0s
IGtpbmQgPT0gQ29kZUZvckNhbGwgPyBvcGVyYXRpb25WaXJ0dWFsQ2FsbCA6IG9wZXJhdGlvblZp
cnR1YWxDb25zdHJ1Y3QpOworICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIG9wZXJhdGlvblZpcnR1
YWxGb3Ioa2luZCwgcmVnaXN0ZXJzKSk7CiAgICAgCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZl
cigqdm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7CiAgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUo
CiAgICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAoIlZpcnR1YWwgJXMgc2xvdyBwYXRoIHRo
dW5rIiwga2luZCA9PSBDb2RlRm9yQ2FsbCA/ICJjYWxsIiA6ICJjb25zdHJ1Y3QiKSk7CisgICAg
ICAgICgiVmlydHVhbCAlcyVzIHNsb3cgcGF0aCB0aHVuayIsIGtpbmQgPT0gQ29kZUZvckNhbGwg
PyAiY2FsbCIgOiAiY29uc3RydWN0IiwgcmVnaXN0ZXJzID09IE11c3RQcmVzZXJ2ZVJlZ2lzdGVy
cyA/ICIgdGhhdCBwcmVzZXJ2ZXMgcmVnaXN0ZXJzIiA6ICIiKSk7CiB9CiAKIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiB2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1
cm4gdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCk7CisgICAgcmV0dXJu
IHZpcnR1YWxGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwsIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTm90UmVxdWlyZWQpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENv
bnN0cnVjdFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gdmlydHVhbEZvclRo
dW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gdmlydHVhbEZv
clRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkKTsKIH0KIAotc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVG
b3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCitNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgdmlydHVhbENhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9y
KFZNKiB2bSkKK3sKKyAgICByZXR1cm4gdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2Rl
Rm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKiB2
bSkKK3sKKyAgICByZXR1cm4gdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29u
c3RydWN0LCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitlbnVtIFRodW5rRW50cnlUeXBl
IHsgRW50ZXJWaWFDYWxsLCBFbnRlclZpYUp1bXAgfTsKKworc3RhdGljIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQsIFRodW5rRW50cnlUeXBlIGVudHJ5VHlwZSA9IEVudGVyVmlhQ2FsbCkKIHsKICAgICBp
bnQgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24gPSBOYXRpdmVFeGVjdXRhYmxlOjpvZmZzZXRP
Zk5hdGl2ZUZ1bmN0aW9uRm9yKGtpbmQpOwogICAgIAogICAgIEpTSW50ZXJmYWNlSklUIGppdCh2
bSk7Ci0gICAgCisKKyAgICBpZiAoZW50cnlUeXBlID09IEVudGVyVmlhQ2FsbCkKKyAgICAgICAg
aml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CisKICAgICBqaXQuZW1pdFB1dEltbWVkaWF0ZVRv
Q2FsbEZyYW1lSGVhZGVyKDAsIEpTU3RhY2s6OkNvZGVCbG9jayk7CiAgICAgaml0LnN0b3JlUHRy
KEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgJnZtLT50b3BDYWxsRnJhbWUpOwog
CkBAIC0yNjEsMjIgKzI3OCwxOCBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2
ZUZvckdlCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNj
b3BlQ2hhaW4sIEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsK
ICAgICBqaXQuZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVn
VDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogCi0gICAgaml0LnBlZWsoSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QxKTsKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QxKTsKLQogICAgIC8vIENhbGxpbmcgY29udmVudGlvbjogICAgICBmKGVj
eCwgZWR4LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0
ZSopOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgWDg2
UmVnaXN0ZXJzOjplY3gpOwogCi0gICAgaml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3Rl
ZEltbTMyKDE2IC0gc2l6ZW9mKHZvaWQqKSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNrIGFmdGVyIGNhbGwuCisgICAgaml0LnN1YlB0cihKU0lu
dGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBhZnRlciBwcm9sb2d1ZS4KIAogICAgIC8vIGNhbGwg
dGhlIGZ1bmN0aW9uCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3Rh
Y2s6OkNhbGxlZSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKICAgICBqaXQubG9hZFB0cihKU0lu
dGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTRnVuY3Rpb246Om9m
ZnNldE9mRXhlY3V0YWJsZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQubW92
ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rl
cik7IC8vIEVhZ2VybHkgcmVzdG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9h
ZGluZyBmcm9tIHN0YWNrLgogICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpT
SW50ZXJmYWNlSklUOjpyZWdUMSwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIAotICAg
IGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZih2b2lk
KikpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGppdC5hZGRQ
dHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKIAogI2VsaWYgQ1BVKFg4Nl82NCkKICAgICAvLyBMb2FkIGNhbGxl
ciBmcmFtZSdzIHNjb3BlIGNoYWluIGludG8gdGhpcyBjYWxsZnJhbWUgc28gdGhhdCB3aGF0ZXZl
ciB3ZSBjYWxsIGNhbgpAQCAtMjg0LDIzICsyOTcsMTUgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBuYXRpdmVGb3JHZQogICAgIGppdC5lbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZy
YW1lSGVhZGVyUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CiAgICAgaml0LmVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQuZW1pdFB1dENlbGxUb0NhbGxG
cmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwot
Ci0gICAgaml0LnBlZWsoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuZW1pdFB1dFJl
dHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLQogI2lmICFP
UyhXSU5ET1dTKQogICAgIC8vIENhbGxpbmcgY29udmVudGlvbjogICAgICBmKGVkaSwgZXNpLCBl
ZHgsIGVjeCwgLi4uKTsKICAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3Rh
dGUqKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIFg4
NlJlZ2lzdGVyczo6ZWRpKTsKIAotICAgIGppdC5zdWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0
ZWRJbW0zMigxNiAtIHNpemVvZihpbnQ2NF90KSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50
ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNrIGFmdGVyIGNhbGwuCi0KICAgICBqaXQuZW1pdEdl
dEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBYODZSZWdpc3RlcnM6OmVz
aSk7CiAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJz
Ojplc2ksIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgWDg2UmVnaXN0ZXJzOjpy
OSk7Ci0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6
Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lz
dGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBqaXQuY2FsbChKU0ludGVyZmFj
ZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5LCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlv
bikpOwogCi0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2IC0g
c2l6ZW9mKGludDY0X3QpKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
ICNlbHNlCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoZWN4LCBlZHgsIHI4LCBy
OSwgLi4uKTsKICAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsK
QEAgLTMxMSw3ICszMTYsNiBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZv
ckdlCiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2Fs
bGVlLCBYODZSZWdpc3RlcnM6OmVkeCk7CiAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6
OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplZHgsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJs
ZSgpKSwgWDg2UmVnaXN0ZXJzOjpyOSk7Ci0gICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QwLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3Rv
cmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAg
ICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5LCBleGVj
dXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwogCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJ
VDo6VHJ1c3RlZEltbTMyKDQgKiBzaXplb2YoaW50NjRfdCkgKyAxNiAtIHNpemVvZihpbnQ2NF90
KSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CkBAIC0zMzAsMjggKzMz
NCwxOCBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgaml0
LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIEpTSW50
ZXJmYWNlSklUOjpyZWdUMSwgQVJNNjRSZWdpc3RlcnM6OngzKTsKICAgICBqaXQuZW1pdFB1dENl
bGxUb0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTU3RhY2s6OlNjb3Bl
Q2hhaW4pOwogCi0gICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChKU0ludGVy
ZmFjZUpJVDo6cmVnVDMpOyAvLyBDYWxsZWUgcHJlc2VydmVkCi0gICAgaml0LmVtaXRQdXRSZXR1
cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEFSTTY0UmVnaXN0ZXJzOjpscik7Ci0KICAgICAvLyBIb3N0
IGZ1bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsKICAgICBqaXQubW92ZShKU0ludGVy
ZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp4MCk7CiAKICAgICBq
aXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBBUk02NFJl
Z2lzdGVyczo6eDEpOwogICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFS
TTY0UmVnaXN0ZXJzOjp4MSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBBUk02
NFJlZ2lzdGVyczo6eDIpOwotICAgIGppdC5tb3ZlKEFSTTY0UmVnaXN0ZXJzOjp4MywgSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBm
cmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAgaml0LmNhbGwo
SlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoQVJNNjRSZWdpc3RlcnM6OngyLCBleGVjdXRhYmxlT2Zm
c2V0VG9GdW5jdGlvbikpOwotCi0gICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0
dXJuKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7Ci0KICNlbGlmIENQVShBUk0pIHx8IENQVShTSDQp
IHx8IENQVShNSVBTKQogICAgIC8vIExvYWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50
byB0aGlzIGNhbGxmcmFtZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNhbGwgY2FuIGdldCB0byBpdHMg
Z2xvYmFsIGRhdGEuCiAgICAgaml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFk
ZXJQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBK
U0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5lbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVh
ZGVyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAKLSAgICBq
aXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7
IC8vIENhbGxlZSBwcmVzZXJ2ZWQKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVI
ZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLQogI2lmIENQVShNSVBTKQogICAgIC8vIEFs
bG9jYXRlIHN0YWNrIHNwYWNlIGZvciAodW51c2VkKSAxNiBieXRlcyAoOC1ieXRlIGFsaWduZWQp
IGZvciA0IGFyZ3VtZW50cy4KICAgICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVk
SW1tMzIoMTYpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMzYy
LDcgKzM1Niw2IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2UKICAg
ICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNl
SklUOjphcmd1bWVudEdQUjApOwogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVy
UHRyKEpTU3RhY2s6OkNhbGxlZSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMSk7Ci0gICAg
aml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1l
UmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJlZ2lzdGVyIHRvIGF2
b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRP
ZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CiAgICAgaml0LmNhbGwoSlNJ
bnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyLCBleGVjdXRhYmxlT2Zm
c2V0VG9GdW5jdGlvbikpOwogCkBAIC0zNzAsOCArMzYzLDYgQEAgc3RhdGljIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBuYXRpdmVGb3JHZQogICAgIC8vIFJlc3RvcmUgc3RhY2sgc3BhY2UKICAgICBq
aXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYpLCBKU0ludGVyZmFjZUpJ
VDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2VuZGlmCi0KLSAgICBqaXQucmVzdG9yZVJldHVy
bkFkZHJlc3NCZWZvcmVSZXR1cm4oSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICNlbHNlCiAjZXJy
b3IgIkpJVCBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0uIgogICAgIFVOVVNFRF9QQVJB
TShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbik7CkBAIC0zODksMjUgKzM4MCwyMSBAQCBzdGF0
aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlCiAgICAgICAgIEpTSW50ZXJmYWNl
SklUOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOwogI2VuZGlmCiAKKyAg
ICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAvLyBSZXR1cm4uCiAgICAgaml0LnJl
dCgpOwogCiAgICAgLy8gSGFuZGxlIGFuIGV4Y2VwdGlvbgogICAgIGV4Y2VwdGlvbkhhbmRsZXIu
bGluaygmaml0KTsKIAotICAgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIGppdC5w
cmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAg
ICAKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbVB0cigmdm0tPmV4Y2Vw
dGlvbkxvY2F0aW9uKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQuc3RvcmVQdHIo
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwotCiAgICAgaml0
LnN0b3JlUHRyKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgJnZtLT50b3BDYWxs
RnJhbWUpOwogCiAjaWYgQ1BVKFg4NikgJiYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBqaXQuYWRk
UHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoLTEyKSwgSlNJbnRlcmZhY2VKSVQ6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICBqaXQucHVzaChKU0ludGVyZmFjZUpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIpOworICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpT
SW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciksIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7
CisgICAgaml0LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICNlbHNlCi0gICAgaml0Lm1v
dmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6YXJn
dW1lbnRHUFIwKTsKKyAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRH
UFIwKTsKICNlbmRpZgogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tUHRy
KEZ1bmN0aW9uUHRyKG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKS52YWx1ZSgpKSwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwpA
QCAtNDE4LDcgKzQwNSw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9y
R2UKICAgICBqaXQuanVtcFRvRXhjZXB0aW9uSGFuZGxlcigpOwogCiAgICAgTGlua0J1ZmZlciBw
YXRjaEJ1ZmZlcigqdm0sICZqaXQsIEdMT0JBTF9USFVOS19JRCk7Ci0gICAgcmV0dXJuIEZJTkFM
SVpFX0NPREUocGF0Y2hCdWZmZXIsICgibmF0aXZlICVzIHRyYW1wb2xpbmUiLCB0b0NTdHJpbmco
a2luZCkuZGF0YSgpKSk7CisgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgi
bmF0aXZlICVzJXMgdHJhbXBvbGluZSIsIGVudHJ5VHlwZSA9PSBFbnRlclZpYUp1bXAgPyAiVGFp
bCAiIDogIiIsIHRvQ1N0cmluZyhraW5kKS5kYXRhKCkpKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIG5hdGl2ZUNhbGxHZW5lcmF0b3IoVk0qIHZtKQpAQCAtNDI2LDYgKzQxMywxMSBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlQ2FsbEdlbmVyYXRvCiAgICAgcmV0dXJuIG5hdGl2
ZUZvckdlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwpOwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgbmF0aXZlVGFpbENhbGxHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBuYXRpdmVG
b3JHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBFbnRlclZpYUp1bXApOworfQorCiBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbmF0aXZlQ29uc3RydWN0R2VuZXJhdG9yKFZNKiB2bSkKIHsKICAgICBy
ZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0KTsKQEAgLTQzNSwz
NCArNDI3LDQ2IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKIHsK
ICAgICBKU0ludGVyZmFjZUpJVCBqaXQodm0pOwogCi0gICAgLy8gV2UgZW50ZXIgd2l0aCBmaXh1
cCBjb3VudCBpbiByZWdUMAorICAgIC8vIFdlIGVudGVyIHdpdGggZml4dXAgY291bnQsIGluIGFs
aWduZWQgc3RhY2sgdW5pdHMsIGluIHJlZ1QwIGFuZCB0aGUgcmV0dXJuIHRodW5rIGluCisgICAg
Ly8gcmVnVDUuIFdlIHVzZSBWTTo6Y3VycmVudFJldHVyblRodW5rUEMgaW5zdGVhZCBvZiByZWdU
NSBvbiBYODYtMzIuCiAjaWYgVVNFKEpTVkFMVUU2NCkKICMgIGlmIENQVShYODZfNjQpCiAgICAg
aml0LnBvcChKU0ludGVyZmFjZUpJVDo6cmVnVDQpOwogIyAgZW5kaWYKKyAgICBqaXQubHNoaWZ0
MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihsb2dTdGFja0FsaWdubWVudFJlZ2lzdGVy
cygpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubmVnNjQoSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QwKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7Ci0gICAgaml0LmxvYWQzMihKU0ludGVyZmFjZUpJ
VDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFy
Z3VtZW50Q291bnQgKiA4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBqaXQubW92ZShK
U0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjpyZWdUNik7
CisgICAgaml0LmxvYWQzMihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzaXplb2YoUmVnaXN0
ZXIpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VK
SVQ6OlRydXN0ZWRJbW0zMihKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QyKTsKIAogICAgIC8vIE1vdmUgY3VycmVudCBmcmFtZSBkb3duIHJlZ1QwIG51
bWJlciBvZiBzbG90cwogICAgIEpTSW50ZXJmYWNlSklUOjpMYWJlbCBjb3B5TG9vcChqaXQubGFi
ZWwoKSk7Ci0gICAgaml0LmxvYWQ2NChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNl
SklUOjpyZWdUMSk7Ci0gICAgaml0LnN0b3JlNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBNYWNy
b0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwotICAgIGppdC5hZGRQdHIo
SlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsK
KyAgICBqaXQubG9hZDY0KEpTSW50ZXJmYWNlSklUOjpyZWdUNiwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QxKTsKKyAgICBqaXQuc3RvcmU2NChKU0ludGVyZmFjZUpJVDo6cmVnVDEsIE1hY3JvQXNzZW1i
bGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q2LCBKU0ludGVyZmFjZUpJVDo6cmVn
VDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CisgICAgaml0LmFkZFB0cihKU0ludGVy
ZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDYpOwogICAgIGpp
dC5icmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRy
dXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8oY29weUxvb3AsICZq
aXQpOwogCi0gICAgLy8gRmlsbCBpbiByZWdUMCBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVm
aW5lZAorICAgIC8vIEZpbGwgaW4gcmVnVDAgLSAxIG1pc3NpbmcgYXJnIHNsb3RzIHdpdGggdW5k
ZWZpbmVkCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDIpOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tNjQoVmFs
dWVVbmRlZmluZWQpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOworICAgIGppdC5hZGQzMihKU0lu
dGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAg
IEpTSW50ZXJmYWNlSklUOjpMYWJlbCBmaWxsVW5kZWZpbmVkTG9vcChqaXQubGFiZWwoKSk7Ci0g
ICAgaml0LnN0b3JlNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFz
ZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0lu
dGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6
OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKKyAgICBqaXQuc3RvcmU2
NChKU0ludGVyZmFjZUpJVDo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1Q2LCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpU
aW1lc0VpZ2h0KSk7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMy
KDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDYpOwogICAgIGppdC5icmFuY2hBZGQzMihNYWNyb0Fz
c2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QyKS5saW5rVG8oZmlsbFVuZGVmaW5lZExvb3AsICZqaXQpOwotCi0gICAg
Ly8gQWRqdXN0IGNhbGwgZnJhbWUgcmVnaXN0ZXIgdG8gYWNjb3VudCBmb3IgbWlzc2luZyBhcmdz
Ci0gICAgaml0LmxzaGlmdDY0KEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50
ZXJmYWNlSklUOjpyZWdUMCk7Ci0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDAs
IEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgCisgICAgLy8gQWRqdXN0
IGNhbGwgZnJhbWUgcmVnaXN0ZXIgYW5kIHN0YWNrIHBvaW50ZXIgdG8gYWNjb3VudCBmb3IgbWlz
c2luZyBhcmdzCisgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFj
ZUpJVDo6cmVnVDEpOworICAgIGppdC5sc2hpZnQ2NChKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZElt
bTMyKDMpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGpp
dC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworCisgICAgLy8gU2F2ZSB0aGUgb3JpZ2luYWwgcmV0dXJuIFBDLgorICAg
IGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxs
RnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSwgR1BSSW5mbzo6cmVn
VDEpOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJh
c2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDYsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJ
bnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKKyAgICAKKyAgICAvLyBJbnN0YWxsIHRoZSBuZXcg
cmV0dXJuIFBDLgorICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUNSwgSlNJbnRlcmZhY2VK
SVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6
OnJldHVyblBDT2Zmc2V0KCkpKTsKIAogIyAgaWYgQ1BVKFg4Nl82NCkKICAgICBqaXQucHVzaChK
U0ludGVyZmFjZUpJVDo6cmVnVDQpOwpAQCAtNDcyLDkgKzQ3NiwxMCBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgYXJpdHlGaXh1cChWTSogdm0pCiAjICBpZiBDUFUoWDg2KQogICAgIGppdC5wb3Ao
SlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsKICMgIGVuZGlmCisgICAgaml0LmxzaGlmdDMyKEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIobG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSksIEpT
SW50ZXJmYWNlSklUOjpyZWdUMCk7CiAgICAgaml0Lm5lZzMyKEpTSW50ZXJmYWNlSklUOjpyZWdU
MCk7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0lu
dGVyZmFjZUpJVDo6cmVnVDMpOwotICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJl
c3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENv
dW50ICogOCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CisgICAgaml0LmxvYWQzMihKU0ludGVy
ZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3Rh
Y2s6OkFyZ3VtZW50Q291bnQgKiBzaXplb2YoUmVnaXN0ZXIpKSwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QyKTsKICAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihKU1N0YWNr
OjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKIAogICAgIC8v
IE1vdmUgY3VycmVudCBmcmFtZSBkb3duIHJlZ1QwIG51bWJlciBvZiBzbG90cwpAQCAtNDg2LDgg
KzQ5MSw5IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKICAgICBq
aXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklU
OjpyZWdUMyk7CiAgICAgaml0LmJyYW5jaFN1YjMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpLmxp
bmtUbyhjb3B5TG9vcCwgJmppdCk7CiAKLSAgICAvLyBGaWxsIGluIHJlZ1QwIG1pc3NpbmcgYXJn
IHNsb3RzIHdpdGggdW5kZWZpbmVkCisgICAgLy8gRmlsbCBpbiByZWdUMCAtIDEgbWlzc2luZyBh
cmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVn
VDAsIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CisgICAgaml0LmFkZDMyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CiAgICAgSlNJbnRlcmZh
Y2VKSVQ6OkxhYmVsIGZpbGxVbmRlZmluZWRMb29wKGppdC5sYWJlbCgpKTsKICAgICBqaXQubW92
ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDApLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEp
OwogICAgIGppdC5zdG9yZTMyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6
OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwg
SlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKQEAgLTQ5NywxMCArNTAzLDI1IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKICAgICBqaXQuYWRkUHRyKEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAgICAg
aml0LmJyYW5jaEFkZDMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6
VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpLmxpbmtUbyhmaWxsVW5kZWZp
bmVkTG9vcCwgJmppdCk7CiAKLSAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciB0byBh
Y2NvdW50IGZvciBtaXNzaW5nIGFyZ3MKLSAgICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6
OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKLSAgICBqaXQuYWRkUHRy
KEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVy
KTsKLQorICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lzdGVyIGFuZCBzdGFjayBwb2ludGVy
IHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncworICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklU
OjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQubHNoaWZ0MzIoSlNJbnRl
cmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBq
aXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFt
ZVJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJbnRl
cmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgIC8vIFNhdmUgdGhlIG9yaWdp
bmFsIHJldHVybiBQQy4KKyAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhK
U0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZz
ZXQoKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEs
IE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CisgICAgCisgICAg
Ly8gSW5zdGFsbCB0aGUgbmV3IHJldHVybiBQQy4KKyAgICAvLyBGSVhNRTogSSBkb24ndCB0aGlu
ayBjdXJyZW50UmV0dXJuVGh1bmtQQyBpcyB1c2VkIGFuZCBzaG91bGQgYmUgZGVsZXRlZC4KKyMg
IGlmIDAKKyAgICBqaXQubG9hZFB0cigmdm0tPmN1cnJlbnRSZXR1cm5UaHVua1BDLCBHUFJJbmZv
OjpyZWdUMik7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QyLCBKU0ludGVyZmFjZUpJ
VDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6
cmV0dXJuUENPZmZzZXQoKSkpOworIyAgIGVsc2UKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6
cmVnVDUsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVS
ZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CisjICAgZW5kaWYKKyAgICAK
ICMgIGlmIENQVShYODYpCiAgICAgaml0LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsKICMg
IGVuZGlmCkBAIC01NTQsNyArNTc1LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2Rl
QXRUaHVua0dlbgogICAgIFNwZWNpYWxpemVkVGh1bmtKSVQgaml0KHZtLCAxKTsKICAgICBzdHJp
bmdDaGFyTG9hZChqaXQsIHZtKTsKICAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlO
YXRpdmVDYWxsKHZtKSwgImNoYXJDb2RlQXQiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZt
LT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiY2hhckNvZGVBdCIpOwogfQogCiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckF0VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtNTYz
LDcgKzU4NCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjaGFyQXRUaHVua0dlbmVyYXQKICAg
ICBzdHJpbmdDaGFyTG9hZChqaXQsIHZtKTsKICAgICBjaGFyVG9TdHJpbmcoaml0LCB2bSwgU3Bl
Y2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVj
aWFsaXplZFRodW5rSklUOjpyZWdUMSk7CiAgICAgaml0LnJldHVybkpTQ2VsbChTcGVjaWFsaXpl
ZFRodW5rSklUOjpyZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMt
PmN0aU5hdGl2ZUNhbGwodm0pLCAiY2hhckF0Iik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2
bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImNoYXJBdCIpOwogfQogCiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgZnJvbUNoYXJDb2RlVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAt
NTczLDcgKzU5NCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBmcm9tQ2hhckNvZGVUaHVua0cK
ICAgICBqaXQubG9hZEludDMyQXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAp
OwogICAgIGNoYXJUb1N0cmluZyhqaXQsIHZtLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwg
U3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QxKTsK
ICAgICBqaXQucmV0dXJuSlNDZWxsKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKLSAgICBy
ZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJmcm9t
Q2hhckNvZGUiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0
aXZlVGFpbENhbGwodm0pLCAiZnJvbUNoYXJDb2RlIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBzcXJ0VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtNTg1LDcgKzYwNiw3IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBzcXJ0VGh1bmtHZW5lcmF0b3IKICAgICBqaXQubG9hZERvdWJsZUFy
Z3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtK
SVQ6OnJlZ1QwKTsKICAgICBqaXQuc3FydERvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJl
Z1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKICAgICBqaXQucmV0dXJuRG91Ymxl
KFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUo
dm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgInNxcnQiKTsKKyAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAic3FydCIpOwog
fQogCiAKQEAgLTYxMSw3ICs2MzIsOSBAQCBkb3VibGUganNSb3VuZChkb3VibGUgZCkKICAgICAg
ICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAiXG4iIFwKICAgICAg
ICAgSElERV9TWU1CT0woZnVuY3Rpb24jI1RodW5rKSAiXG4iIFwKICAgICAgICAgU1lNQk9MX1NU
UklORyhmdW5jdGlvbiMjVGh1bmspICI6IiAiXG4iIFwKKyAgICAgICAgInB1c2hxICVyYXhcbiIg
XAogICAgICAgICAiY2FsbCAiIEdMT0JBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJcbiIgXAorICAg
ICAgICAicG9wcSAlcmN4XG4iIFwKICAgICAgICAgInJldFxuIiBcCiAgICAgKTtcCiAgICAgZXh0
ZXJuICJDIiB7IFwKQEAgLTYyNiwxMiArNjQ5LDEyIEBAIGRvdWJsZSBqc1JvdW5kKGRvdWJsZSBk
KQogICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMjVGh1bmspICJcbiIg
XAogICAgICAgICBISURFX1NZTUJPTChmdW5jdGlvbiMjVGh1bmspICJcbiIgXAogICAgICAgICBT
WU1CT0xfU1RSSU5HKGZ1bmN0aW9uIyNUaHVuaykgIjoiICJcbiIgXAotICAgICAgICAic3VibCAk
OCwgJWVzcFxuIiBcCisgICAgICAgICJzdWJsICQyMCwgJWVzcFxuIiBcCiAgICAgICAgICJtb3Zz
ZCAleG1tMCwgKCVlc3ApIFxuIiBcCiAgICAgICAgICJjYWxsICIgR0xPQkFMX1JFRkVSRU5DRShm
dW5jdGlvbikgIlxuIiBcCiAgICAgICAgICJmc3RwbCAoJWVzcCkgXG4iIFwKICAgICAgICAgIm1v
dnNkICglZXNwKSwgJXhtbTAgXG4iIFwKLSAgICAgICAgImFkZGwgJDgsICVlc3BcbiIgXAorICAg
ICAgICAiYWRkbCAkMjAsICVlc3BcbiIgXAogICAgICAgICAicmV0XG4iIFwKICAgICApO1wKICAg
ICBleHRlcm4gIkMiIHsgXApAQCAtNzMzLDcgKzc1Niw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBmbG9vclRodW5rR2VuZXJhdG8KICAgICBkb3VibGVSZXN1bHQubGluaygmaml0KTsKICAgICBq
aXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwogI2VuZGlmIC8v
IENQVShBUk02NCkKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0
aXZlQ2FsbCh2bSksICJmbG9vciIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0
dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJmbG9vciIpOwogfQogCiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgY2VpbFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTc1Niw3ICs3NzksNyBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY2VpbFRodW5rR2VuZXJhdG9yCiAgICAgaml0LnJldHVybklu
dDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBkb3VibGVSZXN1bHQubGluaygm
aml0KTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAp
OwotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZt
KSwgImNlaWwiKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0
aXZlVGFpbENhbGwodm0pLCAiY2VpbCIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcm91
bmRUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC03OTAsNyArODEzLDcgQEAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIHJvdW5kVGh1bmtHZW5lcmF0bwogICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFs
aXplZFRodW5rSklUOjpyZWdUMCk7CiAgICAgZG91YmxlUmVzdWx0LmxpbmsoJmppdCk7CiAgICAg
aml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKLSAgICByZXR1
cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJyb3VuZCIp
OworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2Fs
bCh2bSksICJyb3VuZCIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZXhwVGh1bmtHZW5l
cmF0b3IoVk0qIHZtKQpAQCAtODAzLDcgKzgyNiw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBl
eHBUaHVua0dlbmVyYXRvcigKICAgICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxp
emVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBq
aXQuY2FsbERvdWJsZVRvRG91YmxlUHJlc2VydmluZ1JldHVybihVbmFyeURvdWJsZU9wV3JhcHBl
cihleHApKTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVn
VDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxs
KHZtKSwgImV4cCIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlO
YXRpdmVUYWlsQ2FsbCh2bSksICJleHAiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxv
Z1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTgxNiw3ICs4MzksNyBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgbG9nVGh1bmtHZW5lcmF0b3IoCiAgICAgaml0LmxvYWREb3VibGVBcmd1bWVudCgw
LCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdU
MCk7CiAgICAgaml0LmNhbGxEb3VibGVUb0RvdWJsZVByZXNlcnZpbmdSZXR1cm4oVW5hcnlEb3Vi
bGVPcFdyYXBwZXIobG9nKSk7CiAgICAgaml0LnJldHVybkRvdWJsZShTcGVjaWFsaXplZFRodW5r
SklUOjpmcFJlZ1QwKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3Rp
TmF0aXZlQ2FsbCh2bSksICJsb2ciKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRT
dHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAibG9nIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBhYnNUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC04MzYsNyArODU5LDcgQEAgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIGFic1RodW5rR2VuZXJhdG9yKAogICAgIGppdC5sb2FkRG91Ymxl
QXJndW1lbnQoMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDApOwogICAgIGppdC5hYnNEb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBS
ZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSk7CiAgICAgaml0LnJldHVybkRvdWJs
ZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsKLSAgICByZXR1cm4gaml0LmZpbmFsaXpl
KHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJhYnMiKTsKKyAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiYWJzIik7CiB9
CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBwb3dUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC04
ODgsNyArOTExLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHBvd1RodW5rR2VuZXJhdG9yKAog
ICAgIH0gZWxzZQogICAgICAgICBqaXQuYXBwZW5kRmFpbHVyZShub25JbnRFeHBvbmVudCk7CiAK
LSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSks
ICJwb3ciKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZl
VGFpbENhbGwodm0pLCAicG93Iik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBpbXVsVGh1
bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtOTIxLDcgKzk0NCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBpbXVsVGh1bmtHZW5lcmF0b3IKICAgICB9IGVsc2UKICAgICAgICAgaml0LmFwcGVuZEZh
aWx1cmUobm9uSW50QXJnMUp1bXApOwogCi0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0
U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiaW11bCIpOworICAgIHJldHVybiBqaXQuZmluYWxp
emUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJpbXVsIik7CiB9CiAKIHN0
YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJyYXlJdGVyYXRvck5leHRUaHVua0dlbmVyYXRv
cihWTSogdm0sIEFycmF5SXRlcmF0aW9uS2luZCBraW5kKQpAQCAtOTYxLDcgKzk4NCw3IEBAIHN0
YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJyYXlJdGVyYXQKICAgICBpZiAoa2luZCA9PSBB
cnJheUl0ZXJhdGVLZXkpIHsKICAgICAgICAgaml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgQWRk
cmVzcyhTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUNCwgSlNBcnJheUl0ZXJhdG9yOjpvZmZzZXRP
Zk5leHRJbmRleCgpKSk7CiAgICAgICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5r
SklUOjpyZWdUMSk7Ci0gICAgICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5j
dGlOYXRpdmVDYWxsKHZtKSwgImFycmF5LWl0ZXJhdG9yLW5leHQta2V5Iik7CisgICAgICAgIHJl
dHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJh
cnJheS1pdGVyYXRvci1uZXh0LWtleSIpOwogICAgICAgICAKICAgICB9CiAgICAgQVNTRVJUKGtp
bmQgPT0gQXJyYXlJdGVyYXRlVmFsdWUpOwpAQCAtMTAxMiw3ICsxMDM1LDcgQEAgc3RhdGljIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJhdAogICAgIGppdC5hZGQzMihUcnVzdGVkSW1t
MzIoMSksIEFkZHJlc3MoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDQsIEpTQXJyYXlJdGVyYXRv
cjo6b2Zmc2V0T2ZOZXh0SW5kZXgoKSkpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6
ZWRUaHVua0pJVDo6ZnBSZWdUMCk7CiAgICAgCi0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+
aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiYXJyYXktaXRlcmF0b3ItbmV4dC12YWx1ZSIp
OworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2Fs
bCh2bSksICJhcnJheS1pdGVyYXRvci1uZXh0LXZhbHVlIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBhcnJheUl0ZXJhdG9yTmV4dEtleVRodW5rR2VuZXJhdG9yKFZNKiB2bSkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2lmbmRlZiBUaHVua0dlbmVyYXRvcnNf
aAogI2RlZmluZSBUaHVua0dlbmVyYXRvcnNfaAogCisjaW5jbHVkZSAiQ29kZVNwZWNpYWxpemF0
aW9uS2luZC5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIgogI2luY2x1
ZGUgIlRodW5rR2VuZXJhdG9yLmgiCiAKICNpZiBFTkFCTEUoSklUKQpAQCAtMzUsMTQgKzM3LDgy
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB0aHJvd0V4Y2VwdGlvbkZyb20KIAogTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVy
Q29kZVJlZiBsaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qKTsKK01h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dl
bmVyYXRvcihWTSopOworCitpbmxpbmUgVGh1bmtHZW5lcmF0b3IgbGlua1RodW5rR2VuZXJhdG9y
Rm9yKAorICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Nb2RlIHJlZ2lzdGVycykKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIENvZGVG
b3JDYWxsOgorICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gbGlua0NhbGxU
aHVua0dlbmVyYXRvcjsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAg
ICAgICAgICByZXR1cm4gbGlua0NhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAg
ICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZh
dGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIGxpbmtDb25zdHJ1Y3RUaHVua0dl
bmVyYXRvcjsKKyAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAg
ICByZXR1cm4gbGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3I7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5r
Q2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxp
bmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qKTsKKworaW5s
aW5lIFRodW5rR2VuZXJhdG9yIGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yRm9yKFJlZ2lz
dGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChyZWdpc3RlcnMp
IHsKKyAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgIHJl
dHVybiBsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcjsKKyAgICBjYXNlIE11c3RQcmVzZXJ2
ZVJlZ2lzdGVyczoKKyAgICAgICAgcmV0dXJuIGxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNS
ZWdzVGh1bmtHZW5lcmF0b3I7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIDA7Cit9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ2Fs
bFRodW5rR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENvbnN0
cnVjdFRodW5rR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbENh
bGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgdmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0q
KTsKKworaW5saW5lIFRodW5rR2VuZXJhdG9yIHZpcnR1YWxUaHVua0dlbmVyYXRvckZvcigKKyAg
ICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSBy
ZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoK
KyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNl
cnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIHZpcnR1YWxDYWxsVGh1bmtH
ZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAg
ICAgcmV0dXJuIHZpcnR1YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcjsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAg
ICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiB2aXJ0dWFsQ29uc3RydWN0VGh1bmtH
ZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAg
ICAgcmV0dXJuIHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9y
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
bmF0aXZlQ2FsbEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNv
bnN0cnVjdEdlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxD
YWxsR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSop
OwogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2hhckNvZGVBdFRodW5rR2VuZXJhdG9yKFZNKik7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuY3BwCShyZXZp
c2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIExMSW50IHsKIAog
dm9pZCBDTG9vcDo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgZXhlY3V0ZSgwLCBnZXRPcGNvZGUobGxp
bnRfdW51c2VkKSwgdHJ1ZSk7CisgICAgZXhlY3V0ZShsbGludF91bnVzZWQsIDAsIDAsIDAsIHRy
dWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBMTEludApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50Q0xvb3AuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRDTG9vcC5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2lu
Y2x1ZGUgIk9wY29kZS5oIgorI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogbmFtZXNwYWNlIExMSW50IHsKQEAgLTQwLDcgKzQxLDcgQEAgY29uc3QgT3Bjb2Rl
SUQgbGxpbnRfdW51c2VkID0gbGxpbnRfZW5kOwogY2xhc3MgQ0xvb3AgewogcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKLSAgICBzdGF0aWMgSlNWYWx1ZSBleGVjdXRlKENh
bGxGcmFtZSosIE9wY29kZSBlbnRyeU9wY29kZSwgYm9vbCBpc0luaXRpYWxpemF0aW9uUGFzcyA9
IGZhbHNlKTsKKyAgICBzdGF0aWMgSlNWYWx1ZSBleGVjdXRlKE9wY29kZUlEIGVudHJ5T3Bjb2Rl
SUQsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSosIFByb3RvQ2FsbEZyYW1lKiwgYm9vbCBp
c0luaXRpYWxpemF0aW9uUGFzcyA9IGZhbHNlKTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpMTEludApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJ
KHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERh
dGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW5zdHJ1
Y3Rpb24uaCIKICNpbmNsdWRlICJKU1Njb3BlLmgiCiAjaW5jbHVkZSAiTExJbnRDTG9vcC5oIgor
I2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3Bj
b2RlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKIApAQCAtODcsNiArODgsNyBAQCB2
b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICAgICBBU1NFUlQoSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSA9PSBDYWxsRnJhbWVIZWFkZXJTbG90cyk7CiAKICAgICBBU1NF
UlQoIUNhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSk7CisgICAgQVNTRVJUKEpTU3RhY2s6
OkNhbGxlckZyYW1lQW5kUENTaXplID09IChQdHJTaXplICogMikgLyBTbG90U2l6ZSk7CiAgICAg
QVNTRVJUKENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSA9PSBDYWxsRnJhbWU6OmNhbGxlckZy
YW1lT2Zmc2V0KCkgKyBQdHJTaXplKTsKICAgICBBU1NFUlQoSlNTdGFjazo6Q29kZUJsb2NrICog
c2l6ZW9mKFJlZ2lzdGVyKSA9PSBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkgKyBQdHJTaXpl
KTsKICAgICBBU1NFUlQoSlNTdGFjazo6U2NvcGVDaGFpbiAqIHNpemVvZihSZWdpc3RlcikgPT0g
SlNTdGFjazo6Q29kZUJsb2NrICogc2l6ZW9mKFJlZ2lzdGVyKSArIFNsb3RTaXplKTsKQEAgLTEy
Myw2ICsxMjUsMTMgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAg
QVNTRVJUKFZhbHVlVW5kZWZpbmVkID09IChUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRVbmRlZmlu
ZWQpKTsKICAgICBBU1NFUlQoVmFsdWVOdWxsID09IFRhZ0JpdFR5cGVPdGhlcik7CiAjZW5kaWYK
KyNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IEVOQUJMRShMTElOVF9DX0xPT1ApCisg
ICAgQVNTRVJUKCFtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCk7CisjZWxpZiBDUFUoQVJN
KSB8fCBDUFUoU0g0KQorICAgIEFTU0VSVChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9
PSAyNCk7CisjZWxpZiBDUFUoWDg2KSB8fCBDUFUoTUlQUykKKyAgICBBU1NFUlQobWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwgPT0gNDApOworI2VuZGlmCiAgICAgQVNTRVJUKFN0cmluZ1R5
cGUgPT0gNSk7CiAgICAgQVNTRVJUKE9iamVjdFR5cGUgPT0gMTcpOwogICAgIEFTU0VSVChGaW5h
bE9iamVjdFR5cGUgPT0gMTgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50RW50cnlwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50RW50cnlwb2ludC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw2ICszMyw4IEBACiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJMTEludFRodW5r
cy5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAj
aW5jbHVkZSAiVk0uaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CkBAIC00
NSwxNCArNDcsMTIgQEAgc3RhdGljIHZvaWQgc2V0RnVuY3Rpb25FbnRyeXBvaW50KFZNJiB2bQog
ICAgIGlmICh2bS5jYW5Vc2VKSVQoKSkgewogICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2Fs
bCkgewogICAgICAgICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICAgICAgICAg
IGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxs
RW50cnlUaHVua0dlbmVyYXRvciksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAg
ICAgICAgICAgICB2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ2FsbEFyaXR5Q2hlY2tUaHVua0dl
bmVyYXRvcikuY29kZSgpKTsKKyAgICAgICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklU
Q29kZSh2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ2FsbEVudHJ5VGh1bmtHZW5lcmF0b3IpLCB2
bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ2FsbEFyaXR5Q2hlY2tUaHVua0dlbmVyYXRvcikuY29k
ZSgpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwogICAg
ICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgICAgICBhZG9wdFJlZihuZXcgRGly
ZWN0SklUQ29kZSh2bS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ29uc3RydWN0RW50cnlUaHVua0dl
bmVyYXRvciksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAgICAgICAgIHZtLmdl
dENUSVN0dWIoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RBcml0eUNoZWNrVGh1bmtHZW5lcmF0b3IpLmNv
ZGUoKSk7CisgICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5nZXRDVElT
dHViKGZ1bmN0aW9uRm9yQ29uc3RydWN0RW50cnlUaHVua0dlbmVyYXRvciksIHZtLmdldENUSVN0
dWIoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RBcml0eUNoZWNrVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSwg
SklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNl
bmRpZiAvLyBFTkFCTEUoSklUKQpAQCAtNjAsMTQgKzYwLDEyIEBAIHN0YXRpYyB2b2lkIHNldEZ1
bmN0aW9uRW50cnlwb2ludChWTSYgdm0KICAgICBVTlVTRURfUEFSQU0odm0pOwogICAgIGlmIChr
aW5kID09IENvZGVGb3JDYWxsKSB7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAg
ICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJl
Zjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlKSwg
SklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlf
Y2hlY2spKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxs
X3Byb2xvZ3VlKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxp
bnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2spLCBKSVRDb2RlOjpJbnRlcnByZXRlclRo
dW5rKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVChraW5kID09IENvZGVG
b3JDb25zdHJ1Y3QpOwogICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRS
ZWYobmV3IERpcmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENv
ZGVSZWYobGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZSksIEpJVENvZGU6Oklu
dGVycHJldGVyVGh1bmspKSwKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVM
TEludENvZGVQdHIobGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjaykpOwor
ICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6
OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3Vl
KSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfZnVuY3Rp
b25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjayksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmsp
KSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldEV2YWxFbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2Nr
KiBjb2RlQmxvY2spCkBAIC03NSwxNiArNzMsMTQgQEAgc3RhdGljIHZvaWQgc2V0RXZhbEVudHJ5
cG9pbnQoVk0mIHZtLCBDbwogI2lmIEVOQUJMRShKSVQpCiAgICAgaWYgKHZtLmNhblVzZUpJVCgp
KSB7CiAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgICAgIGFkb3B0UmVm
KG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZXZhbEVudHJ5VGh1bmtHZW5lcmF0b3Ip
LCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIoKSk7CisgICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZSh2bS5n
ZXRDVElTdHViKGV2YWxFbnRyeVRodW5rR2VuZXJhdG9yKSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
KCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAogICAgIFVOVVNFRF9QQVJBTSh2bSk7CiAgICAgY29k
ZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShN
YWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9ldmFsX3Byb2xv
Z3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIoKSk7CisgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2V2YWxfcHJvbG9ndWUpLCBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKIH0K
IAogc3RhdGljIHZvaWQgc2V0UHJvZ3JhbUVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaykKQEAgLTkyLDE2ICs4OCwxNCBAQCBzdGF0aWMgdm9pZCBzZXRQcm9ncmFtRW50cnlw
b2ludChWTSYgdm0sCiAjaWYgRU5BQkxFKEpJVCkKICAgICBpZiAodm0uY2FuVXNlSklUKCkpIHsK
ICAgICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICAgICAgYWRvcHRSZWYobmV3
IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1Yihwcm9ncmFtRW50cnlUaHVua0dlbmVyYXRvciks
IEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0cigpKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdl
dENUSVN0dWIocHJvZ3JhbUVudHJ5VGh1bmtHZW5lcmF0b3IpLCBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKICAgICBj
b2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2Rl
KE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X3Byb2dyYW1f
cHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cigpKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfcHJvZ3JhbV9wcm9s
b2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5r
KSkpOwogfQogCiB2b2lkIHNldEVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9j
aykKQEAgLTEyMyw3ICsxMTcsOSBAQCB2b2lkIHNldEVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxv
Y2sqIGNvCiAKIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqIGNvZGVC
bG9jaykKIHsKLSAgICByZXR1cm4gY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsKKyAg
ICBBU1NFUlQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdp
c3RlcnMpID09IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVy
cygpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVy
cykpKTsKKworICAgIHJldHVybiByb3VuZExvY2FsUmVnaXN0ZXJDb3VudEZvckZyYW1lUG9pbnRl
ck9mZnNldChjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzICsgbWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGxJblJlZ2lzdGVycyk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpM
TEludApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJh
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
T2Zmc2V0c0V4dHJhY3Rvci5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJBcnJheVByb2ZpbGUuaCIKICNpbmNsdWRlICJD
b2RlQmxvY2suaCIKKyNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJEZWJ1
Z2dlci5oIgogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRlICJIZWFwLmgiCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPcGNvZGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPcGNvZGUuaAkocmV2aXNpb24gMTYy
OTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T3Bjb2RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwg
MjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDE4IEBACiAKICNkZWZpbmUgRk9SX0VBQ0hf
TExJTlRfTk9KSVRfTkFUSVZFX0hFTFBFUihtYWNybykgXAogICAgIG1hY3JvKGdldEhvc3RDYWxs
UmV0dXJuVmFsdWUsIDEpIFwKLSAgICBtYWNybyhyZXR1cm5Gcm9tSmF2YVNjcmlwdCwgMSkKKyAg
ICBtYWNybyhsbGludF9yZXR1cm5fdG9faG9zdCwgMSkgXAorICAgIG1hY3JvKGxsaW50X2NhbGxf
dG9famF2YXNjcmlwdCwgMSkgXAorICAgIG1hY3JvKGxsaW50X2NhbGxfdG9fbmF0aXZlX2Z1bmN0
aW9uLCAxKSBcCisgICAgbWFjcm8oaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24sIDEpIFwKKyAgICBc
CisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzEsIDEpIFwKKyAgICBt
YWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfMiwgMSkgXAorICAgIG1hY3JvKGxs
aW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc18zLCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2xv
b3BfZGlkX3JldHVybl9mcm9tX2pzXzQsIDEpIFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRf
cmV0dXJuX2Zyb21fanNfNSwgMSkgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5f
ZnJvbV9qc182LCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pz
XzcsIDEpIFwKIAogI2Vsc2UgLy8gIUVOQUJMRShMTElOVF9DX0xPT1ApCiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2lu
Y2x1ZGUgIkNvbW1vblNsb3dQYXRoc0V4Y2VwdGlvbnMuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRs
aW5nU2NvcGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJIb3N0Q2Fs
bFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKQEAgLTUxLDYgKzUyLDcg
QEAKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29u
c3RydWN0b3IuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiUHJvdG9DYWxs
RnJhbWUuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKICNpbmNsdWRl
IDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIApAQCAtODIsNyArODQsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIExMSW50IHsKICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChmaXJz
dCwgc2Vjb25kKTsgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAotI2RlZmluZSBMTElO
VF9FTkRfSU1QTCgpIExMSU5UX1JFVFVSTl9UV08ocGMsIGV4ZWMpCisjZGVmaW5lIExMSU5UX0VO
RF9JTVBMKCkgTExJTlRfUkVUVVJOX1RXTyhwYywgMCkKIAogI2RlZmluZSBMTElOVF9USFJPVyhl
eGNlcHRpb25Ub1Rocm93KSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICB2
bS50aHJvd0V4Y2VwdGlvbihleGVjLCBleGNlcHRpb25Ub1Rocm93KTsgICAgICAgICAgICAgICAg
XApAQCAtMTM3LDIyICsxMzksMjggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7
CiAjZGVmaW5lIExMSU5UX0NBTExfVEhST1coZXhlYywgZXhjZXB0aW9uVG9UaHJvdykgZG8geyAg
ICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEV4ZWNTdGF0ZSogX19jdF9leGVjID0gKGV4ZWMp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHZtLnRocm93RXhj
ZXB0aW9uKF9fY3RfZXhlYywgZXhjZXB0aW9uVG9UaHJvdyk7ICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgIExMSU5UX0NBTExfRU5EX0lNUEwoX19jdF9leGVjLCBjYWxsVG9UaHJvdyhfX2N0X2V4
ZWMpKTsgICAgICAgICBcCisgICAgICAgIExMSU5UX0NBTExfRU5EX0lNUEwoMCwgY2FsbFRvVGhy
b3coX19jdF9leGVjKSk7ICAgICAgICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAK
ICNkZWZpbmUgTExJTlRfQ0FMTF9DSEVDS19FWENFUFRJT04oZXhlYykgZG8geyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICAgICAgRXhlY1N0YXRlKiBfX2NjZV9leGVjID0gKGV4ZWMp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgaWYgKFVOTElLRUxZ
KHZtLmV4Y2VwdGlvbigpKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICAgICAgICAgIExMSU5UX0NBTExfRU5EX0lNUEwoX19jY2VfZXhlYywgY2FsbFRvVGhyb3coX19j
Y2VfZXhlYykpOyAgIFwKKyAgICAgICAgICAgIExMSU5UX0NBTExfRU5EX0lNUEwoMCwgY2FsbFRv
VGhyb3coX19jY2VfZXhlYykpOyAgICAgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAog
I2RlZmluZSBMTElOVF9DQUxMX1JFVFVSTihleGVjLCBjYWxsVGFyZ2V0KSBkbyB7ICAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgICAgICBFeGVjU3RhdGUqIF9fY3JfZXhlYyA9IChleGVjKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICB2b2lkKiBfX2NyX2Nh
bGxUYXJnZXQgPSAoY2FsbFRhcmdldCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
ICAgICBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihfX2NyX2V4ZWMtPmNhbGxlckZyYW1lKCkp
OyAgICAgICAgICAgXAorICAgICAgICBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihfX2NyX2V4
ZWMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBMTElOVF9DQUxMX0VORF9J
TVBMKF9fY3JfZXhlYywgX19jcl9jYWxsVGFyZ2V0KTsgICAgICAgICAgICAgICAgXAogICAgIH0g
d2hpbGUgKGZhbHNlKQogCisjZGVmaW5lIExMSU5UX1JFVFVSTl9DQUxMRUVfRlJBTUUoZXhlY0Nh
bGxlZSkgZG8geyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEV4ZWNTdGF0ZSogX19y
Y2ZfZXhlYyA9IChleGVjQ2FsbGVlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIExMSU5UX1JFVFVSTl9UV08ocGMsIF9fcmNmX2V4ZWMpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoZmFsc2UpCisgICAgCisKIGV4dGVybiAiQyIgU2xv
d1BhdGhSZXR1cm5UeXBlIGxsaW50X3RyYWNlX29wZXJhbmQoRXhlY1N0YXRlKiBleGVjLCBJbnN0
cnVjdGlvbiogcGMsIGludCBmcm9tV2hlcmUsIGludCBvcGVyYW5kKQogewogICAgIExMSU5UX0JF
R0lOKCk7CkBAIC0yNDIsNiArMjUwLDEwIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlKQog
ICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KHBjIC0gZXhlYy0+Y29kZUJsb2NrKCkt
Pmluc3RydWN0aW9ucygpLmJlZ2luKCkpLAogICAgICAgICAgICAgb3Bjb2RlTmFtZXNbZXhlYy0+
dm0oKS5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpXSwKICAgICAgICAg
ICAgIGV4ZWMtPnNjb3BlKCksIHBjKTsKKyAgICBpZiAoZXhlYy0+dm0oKS5pbnRlcnByZXRlci0+
Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpID09IG9wX2VudGVyKSB7CisgICAgICAgIGRhdGFM
b2dGKCJGcmFtZSB3aWxsIGV2ZW50dWFsbHkgcmV0dXJuIHRvICVwXG4iLCBleGVjLT5yZXR1cm5Q
QygpLnZhbHVlKCkpOworICAgICAgICAqYml0d2lzZV9jYXN0PHZvbGF0aWxlIGNoYXIqPihleGVj
LT5yZXR1cm5QQygpLnZhbHVlKCkpOworICAgIH0KICAgICBpZiAoZXhlYy0+dm0oKS5pbnRlcnBy
ZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpID09IG9wX3JldCkgewogICAgICAgICBk
YXRhTG9nRigiV2lsbCBiZSByZXR1cm5pbmcgdG8gJXBcbiIsIGV4ZWMtPnJldHVyblBDKCkudmFs
dWUoKSk7CiAgICAgICAgIGRhdGFMb2dGKCJUaGUgbmV3IGNmciB3aWxsIGJlICVwXG4iLCBleGVj
LT5jYWxsZXJGcmFtZSgpKTsKQEAgLTMyNSwxNSArMzM3LDE3IEBAIHN0YXRpYyBTbG93UGF0aFJl
dHVyblR5cGUgZW50cnlPU1IoRXhlY1MKICAgICAKICAgICBpZiAoIXNob3VsZEpJVChleGVjKSkg
ewogICAgICAgICBjb2RlQmxvY2stPmRvbnRKSVRBbnl0aW1lU29vbigpOwotICAgICAgICBMTElO
VF9SRVRVUk5fVFdPKDAsIGV4ZWMpOworICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIDApOwog
ICAgIH0KICAgICBpZiAoIWppdENvbXBpbGVBbmRTZXRIZXVyaXN0aWNzKGNvZGVCbG9jaywgZXhl
YykpCi0gICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgZXhlYyk7CisgICAgICAgIExMSU5UX1JF
VFVSTl9UV08oMCwgMCk7CiAgICAgCiAgICAgaWYgKGtpbmQgPT0gUHJvbG9ndWUpCi0gICAgICAg
IExMSU5UX1JFVFVSTl9UV08oY29kZUJsb2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNz
KCksIGV4ZWMpOworICAgICAgICBMTElOVF9SRVRVUk5fVFdPKGNvZGVCbG9jay0+aml0Q29kZSgp
LT5leGVjdXRhYmxlQWRkcmVzcygpLCAwKTsKICAgICBBU1NFUlQoa2luZCA9PSBBcml0eUNoZWNr
KTsKLSAgICBMTElOVF9SRVRVUk5fVFdPKGNvZGVCbG9jay0+aml0Q29kZVdpdGhBcml0eUNoZWNr
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwgZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RXTyhjb2Rl
QmxvY2stPmppdENvZGUoKS0+YWRkcmVzc0ZvckNhbGwoCisgICAgICAgICpjb2RlQmxvY2stPnZt
KCksIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIE11c3RDaGVja0FyaXR5LAorICAgICAg
ICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKS5leGVjdXRhYmxlQWRkcmVzcygpLCAw
KTsKIH0KICNlbHNlIC8vIEVOQUJMRShKSVQpCiBzdGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGVu
dHJ5T1NSKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24qLCBDb2RlQmxvY2sqIGNvZGVCbG9j
aywgY29uc3QgY2hhciosIEVudHJ5S2luZCkKQEAgLTM4MSwxMSArMzk1LDExIEBAIExMSU5UX1NM
T1dfUEFUSF9ERUNMKGxvb3Bfb3NyKQogICAgIAogICAgIGlmICghc2hvdWxkSklUKGV4ZWMpKSB7
CiAgICAgICAgIGNvZGVCbG9jay0+ZG9udEpJVEFueXRpbWVTb29uKCk7Ci0gICAgICAgIExMSU5U
X1JFVFVSTl9UV08oMCwgZXhlYyk7CisgICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgMCk7CiAg
ICAgfQogICAgIAogICAgIGlmICghaml0Q29tcGlsZUFuZFNldEhldXJpc3RpY3MoY29kZUJsb2Nr
LCBleGVjKSkKLSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICAgICAgTExJ
TlRfUkVUVVJOX1RXTygwLCAwKTsKICAgICAKICAgICBBU1NFUlQoY29kZUJsb2NrLT5qaXRUeXBl
KCkgPT0gSklUQ29kZTo6QmFzZWxpbmVKSVQpOwogICAgIApAQCAtMzk4LDEwICs0MTIsMTAgQEAg
TExJTlRfU0xPV19QQVRIX0RFQ0wobG9vcF9vc3IpCiAgICAgdm9pZCoganVtcFRhcmdldCA9IGNv
ZGVCbG9jay0+aml0Q29kZSgpLT5leGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KG1hcHBpbmctPm1f
bWFjaGluZUNvZGVPZmZzZXQpOwogICAgIEFTU0VSVChqdW1wVGFyZ2V0KTsKICAgICAKLSAgICBM
TElOVF9SRVRVUk5fVFdPKGp1bXBUYXJnZXQsIGV4ZWMpOworICAgIExMSU5UX1JFVFVSTl9UV08o
anVtcFRhcmdldCwgZXhlYy0+dG9wT2ZGcmFtZSgpKTsKICNlbHNlIC8vIEVOQUJMRShKSVQpCiAg
ICAgY29kZUJsb2NrLT5kb250SklUQW55dGltZVNvb24oKTsKLSAgICBMTElOVF9SRVRVUk5fVFdP
KDAsIGV4ZWMpOworICAgIExMSU5UX1JFVFVSTl9UV08oMCwgMCk7CiAjZW5kaWYgLy8gRU5BQkxF
KEpJVCkKIH0KIApAQCAtNDM3LDEzICs0NTEsMzQgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc3Rh
Y2tfY2hlY2spCiAgICAgZGF0YUxvZ0YoIk51bSB2YXJzID0gJXUuXG4iLCBleGVjLT5jb2RlQmxv
Y2soKS0+bV9udW1WYXJzKTsKICAgICBkYXRhTG9nRigiQ3VycmVudCBlbmQgaXMgYXQgJXAuXG4i
LCBleGVjLT52bSgpLmludGVycHJldGVyLT5zdGFjaygpLmVuZCgpKTsKICNlbmRpZgotICAgIEFT
U0VSVCghZXhlYy0+dm0oKS5pbnRlcnByZXRlci0+c3RhY2soKS5jb250YWluc0FkZHJlc3MoJmV4
ZWMtPnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGV4ZWMtPmNvZGVCbG9jaygp
LT5tX251bUNhbGxlZVJlZ2lzdGVycykub2Zmc2V0KCldKSk7Ci0gICAgaWYgKFVOTElLRUxZKCF2
bS5pbnRlcnByZXRlci0+c3RhY2soKS5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVn
aXN0ZXJGb3JMb2NhbChleGVjLT5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3RlcnMpLm9m
ZnNldCgpXSkpKSB7Ci0gICAgICAgIGV4ZWMgPSBleGVjLT5jYWxsZXJGcmFtZSgpOwotICAgICAg
ICBDb21tb25TbG93UGF0aHM6OmludGVycHJldGVyVGhyb3dJbkNhbGxlcihleGVjLCBjcmVhdGVT
dGFja092ZXJmbG93RXJyb3IoZXhlYykpOwotICAgICAgICBwYyA9IHJldHVyblRvVGhyb3dGb3JU
aHJvd25FeGNlcHRpb24oZXhlYyk7Ci0gICAgfQotICAgIExMSU5UX0VORF9JTVBMKCk7CisKKyAg
ICAvLyBUaGlzIHN0YWNrIGNoZWNrIGlzIGRvbmUgaW4gdGhlIHByb2xvZ3VlIGZvciBhIGZ1bmN0
aW9uIGNhbGwsIGFuZCB0aGUKKyAgICAvLyBDYWxsRnJhbWUgaXMgbm90IGNvbXBsZXRlbHkgc2V0
IHVwIHlldC4gRm9yIGV4YW1wbGUsIGlmIHRoZSBmcmFtZSBuZWVkcworICAgIC8vIGFuIGFjdGl2
YXRpb24gb2JqZWN0LCB0aGUgYWN0aXZhdGlvbiBvYmplY3Qgd2lsbCBvbmx5IGJlIHNldCB1cCBh
ZnRlcgorICAgIC8vIHdlIHN0YXJ0IGV4ZWN1dGluZyB0aGUgZnVuY3Rpb24uIElmIHdlIG5lZWQg
dG8gdGhyb3cgYSBTdGFja092ZXJmbG93RXJyb3IKKyAgICAvLyBoZXJlLCB0aGVuIHdlIG5lZWQg
dG8gdGVsbCB0aGUgcHJvbG9ndWUgdG8gc3RhcnQgdGhlIHN0YWNrIHVud2luZGluZyBmcm9tCisg
ICAgLy8gdGhlIGNhbGxlciBmcmFtZSAod2hpY2ggaXMgZnVsbHkgc2V0IHVwKSBpbnN0ZWFkLiBU
byBkbyB0aGF0LCB3ZSByZXR1cm4KKyAgICAvLyB0aGUgY2FsbGVyJ3MgQ2FsbEZyYW1lIGluIHRo
ZSBzZWNvbmQgcmV0dXJuIHZhbHVlLgorICAgIC8vCisgICAgLy8gSWYgdGhlIHN0YWNrIGNoZWNr
IHN1Y2NlZWRzIGFuZCB3ZSBkb24ndCBuZWVkIHRvIHRocm93IHRoZSBlcnJvciwgdGhlbgorICAg
IC8vIHdlJ2xsIHJldHVybiAwIGluc3RlYWQuIFRoZSBwcm9sb2d1ZSB3aWxsIGNoZWNrIGZvciBh
IG5vbi16ZXJvIHZhbHVlCisgICAgLy8gd2hlbiBkZXRlcm1pbmluZyB3aGV0aGVyIHRvIHNldCB0
aGUgY2FsbEZyYW1lIG9yIG5vdC4KKworICAgIC8vIEZvciBKSVQgZW5hYmxlZCBidWlsZHMgd2hp
Y2ggdXNlcyB0aGUgQyBzdGFjaywgdGhlIHN0YWNrIGlzIG5vdCBncm93YWJsZS4KKyAgICAvLyBI
ZW5jZSwgaWYgd2UgZ2V0IGhlcmUsIHRoZW4gd2Uga25vdyBhIHN0YWNrIG92ZXJmbG93IGlzIGlt
bWluZW50LiBTbywganVzdAorICAgIC8vIHRocm93IHRoZSBTdGFja092ZXJmbG93RXJyb3IgdW5j
b25kaXRpb25hbGx5LgorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgQVNTRVJUKCF2bS5p
bnRlcnByZXRlci0+c3RhY2soKS5jb250YWluc0FkZHJlc3MoZXhlYy0+dG9wT2ZGcmFtZSgpKSk7
CisgICAgaWYgKExJS0VMWSh2bS5pbnRlcnByZXRlci0+c3RhY2soKS5lbnN1cmVDYXBhY2l0eUZv
cihleGVjLT50b3BPZkZyYW1lKCkpKSkKKyAgICAgICAgTExJTlRfUkVUVVJOX1RXTyhwYywgMCk7
CisjZW5kaWYKKworICAgIGV4ZWMgPSBleGVjLT5jYWxsZXJGcmFtZSgpOworICAgIHZtLnRvcENh
bGxGcmFtZSA9IGV4ZWM7CisgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUodm0pOwor
ICAgIENvbW1vblNsb3dQYXRoczo6aW50ZXJwcmV0ZXJUaHJvd0luQ2FsbGVyKGV4ZWMsIGNyZWF0
ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CisgICAgcGMgPSByZXR1cm5Ub1Rocm93Rm9yVGhy
b3duRXhjZXB0aW9uKGV4ZWMpOworICAgIExMSU5UX1JFVFVSTl9UV08ocGMsIGV4ZWMpOwogfQog
CiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY3JlYXRlX2FjdGl2YXRpb24pCkBAIC0x
MDQ1LDcgKzEwODAsNyBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHNldFVwQ2FsbChFeGVj
CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHI7CiAgICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSAwOwogICAgIGlmIChleGVjdXRhYmxlLT5pc0hvc3RGdW5jdGlvbigpKQotICAgICAg
ICBjb2RlUHRyID0gZXhlY3V0YWJsZS0+aG9zdENvZGVFbnRyeUZvcihraW5kKTsKKyAgICAgICAg
Y29kZVB0ciA9IGV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3Iodm0sIGtpbmQsIE11c3RDaGVja0Fy
aXR5LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKICAgICBlbHNlIHsKICAgICAg
ICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxG
dW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlKTsKICAgICAgICAgSlNPYmplY3QqIGVycm9y
ID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5wcmVwYXJlRm9yRXhlY3V0aW9uKGV4ZWNDYWxsZWUsIGNh
bGxlZS0+c2NvcGUoKSwga2luZCk7CkBAIC0xMDUzLDEyICsxMDg4LDE2IEBAIGlubGluZSBTbG93
UGF0aFJldHVyblR5cGUgc2V0VXBDYWxsKEV4ZWMKICAgICAgICAgICAgIExMSU5UX0NBTExfVEhS
T1coZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKSwgZXJyb3IpOwogICAgICAgICBjb2RlQmxvY2sg
PSBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvZGVCbG9ja0ZvcihraW5kKTsKICAgICAgICAgQVNTRVJU
KGNvZGVCbG9jayk7CisgICAgICAgIEFyaXR5Q2hlY2tNb2RlIGFyaXR5OwogICAgICAgICBpZiAo
ZXhlY0NhbGxlZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSA8IHN0YXRpY19jYXN0PHNp
emVfdD4oY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKQotICAgICAgICAgICAgY29kZVB0ciA9
IGZ1bmN0aW9uRXhlY3V0YWJsZS0+anNDb2RlV2l0aEFyaXR5Q2hlY2tFbnRyeUZvcihraW5kKTsK
KyAgICAgICAgICAgIGFyaXR5ID0gTXVzdENoZWNrQXJpdHk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmpzQ29kZUVudHJ5Rm9yKGtpbmQp
OworICAgICAgICAgICAgYXJpdHkgPSBBcml0eUNoZWNrTm90UmVxdWlyZWQ7CisgICAgICAgIGNv
ZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3Iodm0sIGtpbmQsIGFyaXR5
LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKICAgICB9CiAgICAgCisgICAgQVNT
RVJUKCEhY29kZVB0cik7CisgICAgCiAgICAgaWYgKCFMTElOVF9BTFdBWVNfQUNDRVNTX1NMT1cg
JiYgY2FsbExpbmtJbmZvKSB7CiAgICAgICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlciA9IGV4ZWND
YWxsZWUtPmNhbGxlckZyYW1lKCk7CiAgICAgICAgIApAQCAtMTExMCwxOSArMTE0OSwxOSBAQCBM
TElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY29uc3RydWN0CiAgICAgcmV0dXJuIGdlbmVy
aWNDYWxsKGV4ZWMsIHBjLCBDb2RlRm9yQ29uc3RydWN0KTsKIH0KIAotTExJTlRfU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX3NpemVfYW5kX2FsbG9jX2ZyYW1lX2Zvcl92YXJhcmdzKQorTExJTlRf
U0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3NpemVfZnJhbWVfZm9yX3ZhcmFyZ3MpCiB7CiAgICAg
TExJTlRfQkVHSU4oKTsKICAgICAvLyBUaGlzIG5lZWRzIHRvOgogICAgIC8vIC0gU2V0IHVwIGEg
Y2FsbCBmcmFtZSB3aGlsZSByZXNwZWN0aW5nIHRoZSB2YXJpYWJsZSBhcmd1bWVudHMuCiAgICAg
Ci0gICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlID0gc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdz
KGV4ZWMsICZ2bS5pbnRlcnByZXRlci0+c3RhY2soKSwKKyAgICBFeGVjU3RhdGUqIGV4ZWNDYWxs
ZWUgPSBzaXplRnJhbWVGb3JWYXJhcmdzKGV4ZWMsICZ2bS5pbnRlcnByZXRlci0+c3RhY2soKSwK
ICAgICAgICAgTExJTlRfT1BfQyg0KS5qc1ZhbHVlKCksIHBjWzVdLnUub3BlcmFuZCk7CiAgICAg
TExJTlRfQ0FMTF9DSEVDS19FWENFUFRJT04oZXhlYyk7CiAgICAgCiAgICAgdm0ubmV3Q2FsbEZy
YW1lUmV0dXJuVmFsdWUgPSBleGVjQ2FsbGVlOwogCi0gICAgTExJTlRfRU5EKCk7CisgICAgTExJ
TlRfUkVUVVJOX0NBTExFRV9GUkFNRShleGVjQ2FsbGVlKTsKIH0KIAogTExJTlRfU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX2NhbGxfdmFyYXJncykKQEAgLTEzMTIsMTMgKzEzNTEsNiBAQCBMTElO
VF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHJvZmlsZV9kCiAgICAgTExJTlRfRU5EKCk7CiB9
CiAKLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHRocm93X2Zyb21fbmF0aXZlX2NhbGwpCi17Ci0gICAg
TExJTlRfQkVHSU4oKTsKLSAgICBBU1NFUlQodm0uZXhjZXB0aW9uKCkpOwotICAgIExMSU5UX0VO
RCgpOwotfQotCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaGFuZGxlX2V4Y2VwdGlv
bikKIHsKICAgICBMTElOVF9CRUdJTl9OT19TRVRfUEMoKTsKQEAgLTEzODgsNiArMTQyMCwyMyBA
QCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X3RvX3NjCiAgICAgTExJTlRfRU5E
KCk7CiB9CiAKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3Rocm93X3N0YWNr
X292ZXJmbG93X2Vycm9yKFZNKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvRnJhbWUpCit7Cisg
ICAgRXhlY1N0YXRlKiBleGVjID0gdm0tPnRvcENhbGxGcmFtZTsKKyAgICBpZiAoIWV4ZWMpCisg
ICAgICAgIGV4ZWMgPSBwcm90b0ZyYW1lLT5zY29wZSgpLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFs
RXhlYygpOworICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpOworICAgIHJldHVybiBl
bmNvZGVSZXN1bHQoMCwgMCk7Cit9CisKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorZXh0ZXJu
ICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfc3RhY2tfY2hlY2tfYXRfdm1fZW50cnkoVk0q
IHZtLCBSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKK3sKKyAgICBib29sIHN1Y2Nlc3MgPSB2bS0+
aW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IobmV3VG9wT2ZTdGFjayk7Cisg
ICAgcmV0dXJuIGVuY29kZVJlc3VsdChyZWludGVycHJldF9jYXN0PHZvaWQqPihzdWNjZXNzKSwg
MCk7Cit9CisjZW5kaWYKKwogZXh0ZXJuICJDIiB2b2lkIGxsaW50X3dyaXRlX2JhcnJpZXJfc2xv
dyhFeGVjU3RhdGUqLCBKU0NlbGwqIGNlbGwpCiB7CiAgICAgSGVhcDo6d3JpdGVCYXJyaWVyKGNl
bGwpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiwxMiArMzYsMTMgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKIHN0cnVjdCBJbnN0cnVjdGlvbjsKK3N0cnVjdCBQcm90
b0NhbGxGcmFtZTsKIAogbmFtZXNwYWNlIExMSW50IHsKIAogZXh0ZXJuICJDIiBTbG93UGF0aFJl
dHVyblR5cGUgbGxpbnRfdHJhY2Vfb3BlcmFuZChFeGVjU3RhdGUqLCBJbnN0cnVjdGlvbiosIGlu
dCBmcm9tV2hlcmUsIGludCBvcGVyYW5kKTsKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBl
IGxsaW50X3RyYWNlX3ZhbHVlKEV4ZWNTdGF0ZSosIEluc3RydWN0aW9uKiwgaW50IGZyb21XaGVy
ZSwgaW50IG9wZXJhbmQpOwotZXh0ZXJuICJDIiB2b2lkIGxsaW50X3dyaXRlX2JhcnJpZXJfc2xv
dyhFeGVjU3RhdGUqLCBKU0NlbGwqKTsKK2V4dGVybiAiQyIgdm9pZCBsbGludF93cml0ZV9iYXJy
aWVyX3Nsb3coRXhlY1N0YXRlKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogCiAjZGVmaW5lIExM
SU5UX1NMT1dfUEFUSF9ERUNMKG5hbWUpIFwKICAgICBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJu
VHlwZSBsbGludF8jI25hbWUoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiogcGMpCkBAIC0x
MDEsNyArMTAyLDcgQEAgTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZQog
TExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfZnVuY19leHApOwogTExJ
TlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jYWxsKTsKIExMSU5UX1NMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfY29uc3RydWN0KTsKLUxMSU5UX1NMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVfZm9yX3ZhcmFyZ3MpOworTExJ
TlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJhcmdz
KTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY2FsbF92YXJhcmdzKTsK
IExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY2FsbF9ldmFsKTsKIExMSU5U
X1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdGVhcl9vZmZfYWN0aXZhdGlvbik7CkBA
IC0xMTksMTEgKzEyMCwxNCBAQCBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRo
X2hhCiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2RlYnVnKTsKIExMSU5U
X1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwpOwogTExJ
TlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wcm9maWxlX2RpZF9jYWxsKTsKLUxM
SU5UX1NMT1dfUEFUSF9ISURERU5fREVDTCh0aHJvd19mcm9tX25hdGl2ZV9jYWxsKTsKIExMSU5U
X1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaGFuZGxlX2V4Y2VwdGlvbik7CiBMTElO
VF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Jlc29sdmVfc2NvcGUpOwogTExJTlRf
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfZnJvbV9zY29wZSk7CiBMTElOVF9T
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF90b19zY29wZSk7CitleHRlcm4gIkMi
IFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvcihWTSos
IFByb3RvQ2FsbEZyYW1lKikgV1RGX0lOVEVSTkFMOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1Ap
CitleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF9zdGFja19jaGVja19hdF92bV9l
bnRyeShWTSosIFJlZ2lzdGVyKikgV1RGX0lOVEVSTkFMOworI2VuZGlmCiAKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpMTEludAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRUaHVua3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFRodW5rcy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFRodW5rcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDU4ICs5NCwxNiBA
QCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcHJvZ3JhbUVudHJ5VGh1bmtHCiAKIC8vIE5vbi1KSVQg
KGkuZS4gQyBMb29wIExMSU5UKSBjYXNlOgogCi10eXBlZGVmIEpTVmFsdWUgKCpFeGVjdXRlQ29k
ZSkgKENhbGxGcmFtZSosIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzKTsKLQotdGVtcGxhdGU8RXhl
Y3V0ZUNvZGUgZXhlY3V0ZT4KLUVuY29kZWRKU1ZhbHVlIGRvQ2FsbFRvSmF2YVNjcmlwdCh2b2lk
KiBleGVjdXRhYmxlQWRkcmVzcywgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lKQorRW5j
b2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgVk0q
IHZtLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUpCiB7Ci0gICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSBwcm90b0NhbGxGcmFtZS0+Y29kZUJsb2NrKCk7Ci0gICAgSlNTY29wZSogc2Nv
cGUgPSBwcm90b0NhbGxGcmFtZS0+c2NvcGUoKTsKLSAgICBKU09iamVjdCogY2FsbGVlID0gcHJv
dG9DYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGludCBhcmdDb3VudEluY2x1ZGluZ1RoaXMgPSBw
cm90b0NhbGxGcmFtZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKTsKLSAgICBpbnQgYXJn
Q291bnQgPSBwcm90b0NhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpOwotICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gcHJvdG9DYWxsRnJhbWUtPnRoaXNWYWx1ZSgpOwotICAgIEpTU3RhY2smIHN0YWNr
ID0gc2NvcGUtPnZtKCktPmludGVycHJldGVyLT5zdGFjaygpOwotCi0gICAgQ2FsbEZyYW1lKiBu
ZXdDYWxsRnJhbWUgPSBzdGFjay5wdXNoRnJhbWUoY29kZUJsb2NrLCBzY29wZSwgYXJnQ291bnRJ
bmNsdWRpbmdUaGlzLCBjYWxsZWUpOwotICAgIGlmIChVTkxJS0VMWSghbmV3Q2FsbEZyYW1lKSkg
ewotICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc2NvcGUtPmdsb2JhbE9i
amVjdCgpOwotICAgICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4
ZWMoKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1N0YWNrT3ZlcmZsb3dF
cnJvcihleGVjKSk7Ci0gICAgfQotCi0gICAgLy8gU2V0IHRoZSBhcmd1bWVudHMgZm9yIHRoZSBj
YWxsZWU6Ci0gICAgbmV3Q2FsbEZyYW1lLT5zZXRUaGlzVmFsdWUodGhpc1ZhbHVlKTsKLSAgICBm
b3IgKGludCBpID0gMDsgaSA8IGFyZ0NvdW50OyArK2kpCi0gICAgICAgIG5ld0NhbGxGcmFtZS0+
c2V0QXJndW1lbnQoaSwgcHJvdG9DYWxsRnJhbWUtPmFyZ3VtZW50KGkpKTsKLQotICAgIEpTVmFs
dWUgcmVzdWx0ID0gZXhlY3V0ZShuZXdDYWxsRnJhbWUsIGV4ZWN1dGFibGVBZGRyZXNzKTsKLQot
ICAgIHN0YWNrLnBvcEZyYW1lKG5ld0NhbGxGcmFtZSk7Ci0KKyAgICBKU1ZhbHVlIHJlc3VsdCA9
IENMb29wOjpleGVjdXRlKGxsaW50X2NhbGxfdG9famF2YXNjcmlwdCwgZXhlY3V0YWJsZUFkZHJl
c3MsIHZtLCBwcm90b0NhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUgZXhlY3V0ZUpTKENhbGxGcmFtZSogbmV3
Q2FsbEZyYW1lLCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcykKLXsKLSAgICBPcGNvZGUgZW50cnlP
cGNvZGUgPSAqcmVpbnRlcnByZXRfY2FzdDxPcGNvZGUqPigmZXhlY3V0YWJsZUFkZHJlc3MpOwot
ICAgIHJldHVybiBDTG9vcDo6ZXhlY3V0ZShuZXdDYWxsRnJhbWUsIGVudHJ5T3Bjb2RlKTsKLX0K
LQotRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiBleGVjdXRhYmxlQWRkcmVz
cywgRXhlY1N0YXRlKiosIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSwgUmVnaXN0ZXIq
KQotewotICAgIHJldHVybiBkb0NhbGxUb0phdmFTY3JpcHQ8ZXhlY3V0ZUpTPihleGVjdXRhYmxl
QWRkcmVzcywgcHJvdG9DYWxsRnJhbWUpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUgZXhl
Y3V0ZU5hdGl2ZShDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgdm9pZCogZXhlY3V0YWJsZUFkZHJl
c3MpCitFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiBleGVjdXRhYmxl
QWRkcmVzcywgVk0qIHZtLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUpCiB7Ci0gICAg
TmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24gPSByZWludGVycHJldF9jYXN0PE5hdGl2ZUZ1bmN0aW9u
PihleGVjdXRhYmxlQWRkcmVzcyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZShmdW5jdGlv
bihuZXdDYWxsRnJhbWUpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rp
b24odm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSog
cHJvdG9DYWxsRnJhbWUsIFJlZ2lzdGVyKikKLXsKLSAgICByZXR1cm4gZG9DYWxsVG9KYXZhU2Ny
aXB0PGV4ZWN1dGVOYXRpdmU+KGV4ZWN1dGFibGVBZGRyZXNzLCBwcm90b0NhbGxGcmFtZSk7Cisg
ICAgSlNWYWx1ZSByZXN1bHQgPSBDTG9vcDo6ZXhlY3V0ZShsbGludF9jYWxsX3RvX25hdGl2ZV9m
dW5jdGlvbiwgZXhlY3V0YWJsZUFkZHJlc3MsIHZtLCBwcm90b0NhbGxGcmFtZSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5oCShyZXZpc2lv
biAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaAko
d29ya2luZyBjb3B5KQpAQCAtMzQsMTYgKzM0LDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1j
bGFzcyBFeGVjU3RhdGU7Ci1jbGFzcyBSZWdpc3RlcjsKIGNsYXNzIFZNOwogc3RydWN0IFByb3Rv
Q2FsbEZyYW1lOwogCiBleHRlcm4gIkMiIHsKLSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZh
U2NyaXB0KHZvaWQqLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOwot
ICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqLCBFeGVjU3RhdGUq
KiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOworICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxU
b0phdmFTY3JpcHQodm9pZCosIFZNKiwgUHJvdG9DYWxsRnJhbWUqKTsKKyAgICBFbmNvZGVkSlNW
YWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2b2lkKiwgVk0qLCBQcm90b0NhbGxGcmFtZSopOwog
I2lmIEVOQUJMRShKSVQpCi0gICAgdm9pZCByZXR1cm5Gcm9tSmF2YVNjcmlwdCgpOworICAgIHZv
aWQgaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24oKTsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbQkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0
IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTEwMiw5ICsxMDIsMTEgQEAgbWFjcm8gY0NhbGwyKGZ1bmN0aW9uLCBhcmcxLCBhcmcyKQog
ICAgICAgICBtb3ZlIGFyZzIsIGExCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBY
ODYKLSAgICAgICAgcG9rZSBhcmcxLCAwCi0gICAgICAgIHBva2UgYXJnMiwgMQorICAgICAgICBz
dWJwIDgsIHNwCisgICAgICAgIHB1c2ggYXJnMgorICAgICAgICBwdXNoIGFyZzEKICAgICAgICAg
Y2FsbCBmdW5jdGlvbgorICAgICAgICBhZGRwIDE2LCBzcAogICAgIGVsc2lmIFNINAogICAgICAg
ICBzZXRhcmdzIGFyZzEsIGFyZzIKICAgICAgICAgY2FsbCBmdW5jdGlvbgpAQCAtMTI0LDExICsx
MjYsMTIgQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLAogICAgICAg
ICBtb3ZlIGFyZzQsIGEzCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBYODYKLSAg
ICAgICAgcG9rZSBhcmcxLCAwCi0gICAgICAgIHBva2UgYXJnMiwgMQotICAgICAgICBwb2tlIGFy
ZzMsIDIKLSAgICAgICAgcG9rZSBhcmc0LCAzCisgICAgICAgIHB1c2ggYXJnNAorICAgICAgICBw
dXNoIGFyZzMKKyAgICAgICAgcHVzaCBhcmcyCisgICAgICAgIHB1c2ggYXJnMQogICAgICAgICBj
YWxsIGZ1bmN0aW9uCisgICAgICAgIGFkZHAgMTYsIHNwCiAgICAgZWxzaWYgU0g0CiAgICAgICAg
IHNldGFyZ3MgYXJnMSwgYXJnMiwgYXJnMywgYXJnNAogICAgICAgICBjYWxsIGZ1bmN0aW9uCkBA
IC0xNDIsODUgKzE0NSw0MiBAQCBlbmQKIG1hY3JvIGNhbGxTbG93UGF0aChzbG93UGF0aCkKICAg
ICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCiAgICAgbW92ZSB0MCwgUEMKLSAgICBtb3ZlIHQx
LCBjZnIKLWVuZAotCi1tYWNybyBmdW5jdGlvblByb2xvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAg
ICBpZiBYODYKLSAgICAgICAgcHVzaCBjZnIKLSAgICAgICAgbW92ZSBzcCwgY2ZyCi0gICAgZW5k
Ci0gICAgcHVzaENhbGxlZVNhdmVzCi0gICAgaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJ
VElPTkFMIG9yIE1JUFMKLSAgICAgICAgcHVzaCBjZnIKLSAgICAgICAgcHVzaCBscgotICAgIGVu
ZAotICAgIHN1YnAgZXh0cmFTdGFja1NwYWNlLCBzcAogZW5kCiAKLW1hY3JvIGZ1bmN0aW9uRXBp
bG9ndWUoZXh0cmFTdGFja1NwYWNlKQotICAgIGFkZHAgZXh0cmFTdGFja1NwYWNlLCBzcAotICAg
IGlmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTCi0gICAgICAgIHBv
cCBscgotICAgICAgICBwb3AgY2ZyCi0gICAgZW5kCi0gICAgcG9wQ2FsbGVlU2F2ZXMKK21hY3Jv
IGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCkKICAgICBpZiBYODYKLSAgICAgICAgcG9wIGNm
cgotICAgIGVuZAotZW5kCisgICAgICAgIGNvbnN0IGVudHJ5ID0gdDQKKyAgICAgICAgY29uc3Qg
dm0gPSB0MworICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IHQ1CiAKLW1hY3JvIGRvQ2Fs
bFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXR1cm4pCi0gICAgaWYgWDg2Ci0gICAgICAgIGNv
bnN0IGVudHJ5ID0gdDUKLSAgICAgICAgY29uc3Qgdm1Ub3BDYWxsRnJhbWUgPSB0MgotICAgICAg
ICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IHQ0Ci0KLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1Nw
YWNlID0gMjgKICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MAogICAgICAgICBjb25zdCBw
cmV2aW91c1BDID0gdDEKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MCAjIFNhbWUgYXMgcHJldmlv
dXNDRlIKICAgICAgICAgY29uc3QgdGVtcDIgPSB0MSAjIFNhbWUgYXMgcHJldmlvdXNQQwotICAg
ICAgICBjb25zdCB0ZW1wMyA9IHQyICMgc2FtZSBhcyB2bVRvcENhbGxGcmFtZQotICAgICAgICBj
b25zdCB0ZW1wNCA9IHQzCi0gICAgZWxzaWYgQVJNIG9yIEFSTXY3X1RSQURJVElPTkFMCi0gICAg
ICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm1Ub3BDYWxsRnJhbWUgPSBhMQot
ICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IGEyCi0gICAgICAgIGNvbnN0IHRvcE9mU3Rh
Y2sgPSBhMwotCi0gICAgICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDE2Ci0gICAgICAgIGNv
bnN0IHByZXZpb3VzQ0ZSID0gdDMKLSAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IGxyCi0gICAg
ICAgIGNvbnN0IHRlbXAxID0gdDMgIyBTYW1lIGFzIHByZXZpb3VzQ0ZSCi0gICAgICAgIGNvbnN0
IHRlbXAyID0gYTMgIyBTYW1lIGFzIHRvcE9mU3RhY2sKLSAgICAgICAgY29uc3QgdGVtcDMgPSB0
NAotICAgICAgICBjb25zdCB0ZW1wNCA9IHQ1Ci0gICAgZWxzaWYgQVJNdjcKKyAgICAgICAgY29u
c3QgdGVtcDMgPSB0MgorICAgICAgICBjb25zdCB0ZW1wNCA9IHQzICMgc2FtZSBhcyB2bQorICAg
IGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBDX0xPT1AKICAgICAg
ICAgY29uc3QgZW50cnkgPSBhMAotICAgICAgICBjb25zdCB2bVRvcENhbGxGcmFtZSA9IGExCisg
ICAgICAgIGNvbnN0IHZtID0gYTEKICAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSBhMgot
ICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gYTMKIAotICAgICAgICBjb25zdCBleHRyYVN0YWNr
U3BhY2UgPSAyOAogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQzCiAgICAgICAgIGNvbnN0
IHByZXZpb3VzUEMgPSBscgogICAgICAgICBjb25zdCB0ZW1wMSA9IHQzICMgU2FtZSBhcyBwcmV2
aW91c0NGUgotICAgICAgICBjb25zdCB0ZW1wMiA9IGEzICMgU2FtZSBhcyB0b3BPZlN0YWNrCi0g
ICAgICAgIGNvbnN0IHRlbXAzID0gdDQKLSAgICAgICAgY29uc3QgdGVtcDQgPSB0NQorICAgICAg
ICBjb25zdCB0ZW1wMiA9IHQ0CisgICAgICAgIGNvbnN0IHRlbXAzID0gdDUKKyAgICAgICAgY29u
c3QgdGVtcDQgPSB0NCAjIFNhbWUgYXMgdGVtcDIKICAgICBlbHNpZiBNSVBTCiAgICAgICAgIGNv
bnN0IGVudHJ5ID0gYTAKICAgICAgICAgY29uc3Qgdm1Ub3BDYWxsRnJhbWUgPSBhMQogICAgICAg
ICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IGEyCiAgICAgICAgIGNvbnN0IHRvcE9mU3RhY2sgPSBh
MwogCi0gICAgICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDM2CiAgICAgICAgIGNvbnN0IHBy
ZXZpb3VzQ0ZSID0gdDIKICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IGxyCiAgICAgICAgIGNv
bnN0IHRlbXAxID0gdDMKLSAgICAgICAgY29uc3QgdGVtcDIgPSB0NAotICAgICAgICBjb25zdCB0
ZW1wMyA9IHQ1CisgICAgICAgIGNvbnN0IHRlbXAyID0gdDUKKyAgICAgICAgY29uc3QgdGVtcDMg
PSB0NAogICAgICAgICBjb25zdCB0ZW1wNCA9IHQ2CiAgICAgZWxzaWYgU0g0CiAgICAgICAgIGNv
bnN0IGVudHJ5ID0gYTAKQEAgLTIyOCw3ICsxODgsNiBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3Jp
cHQobWFrZUNhbGwsIGRvUmV0CiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKICAg
ICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1Nw
YWNlID0gMjAKICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MwogICAgICAgICBjb25zdCBw
cmV2aW91c1BDID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MyAjIFNhbWUgYXMgcHJldmlv
dXNDRlIKQEAgLTIzNyw0OSArMTk2LDc4IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtl
Q2FsbCwgZG9SZXQKICAgICAgICAgY29uc3QgdGVtcDQgPSB0OQogICAgIGVuZAogCisgICAgY2Fs
bFRvSmF2YVNjcmlwdFByb2xvZ3VlKCkKKwogICAgIGlmIFg4NgotICAgICAgICBsb2FkcCBbc3Bd
LCBwcmV2aW91c1BDCi0gICAgICAgIG1vdmUgY2ZyLCBwcmV2aW91c0NGUgotICAgIGVuZAotICAg
IGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQotICAgIGlmIFg4NgotICAgICAgICBs
b2FkcCBleHRyYVN0YWNrU3BhY2UrMjBbc3BdLCBlbnRyeQotICAgICAgICBsb2FkcCBleHRyYVN0
YWNrU3BhY2UrMjRbc3BdLCB2bVRvcENhbGxGcmFtZQotICAgICAgICBsb2FkcCBleHRyYVN0YWNr
U3BhY2UrMjhbc3BdLCBwcm90b0NhbGxGcmFtZQotICAgICAgICBsb2FkcCBleHRyYVN0YWNrU3Bh
Y2UrMzJbc3BdLCBjZnIKKyAgICAgICAgbG9hZHAgMzZbc3BdLCB2bQorICAgICAgICBsb2FkcCAz
MltzcF0sIGVudHJ5CiAgICAgZWxzZQogICAgICAgICBtb3ZlIGNmciwgcHJldmlvdXNDRlIKLSAg
ICAgICAgbW92ZSB0b3BPZlN0YWNrLCBjZnIKICAgICBlbmQKIAotICAgIHN1YnAgKENhbGxGcmFt
ZUhlYWRlclNsb3RzLTEpKjgsIGNmcgotICAgIHN0b3JlcCAwLCBBcmd1bWVudENvdW50KzRbY2Zy
XQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAyLCAweGJhZDBkYzAxKQorCisg
ICAgIyBUaGUgc3RhY2sgcmVzZXJ2ZWQgem9uZSBlbnN1cmVzIHRoYXQgd2UgaGF2ZSBhZGVxdWF0
ZSBzcGFjZSBmb3IgdGhlCisgICAgIyBWTUVudHJ5U2VudGluZWxGcmFtZS4gUHJvY2VlZCB3aXRo
IGFsbG9jYXRpbmcgYW5kIGluaXRpYWxpemluZyB0aGUKKyAgICAjIHNlbnRpbmVsIGZyYW1lLgor
ICAgIG1vdmUgc3AsIGNmcgorICAgIHN1YnAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMgKiA4LCBjZnIK
ICAgICBzdG9yZXAgMCwgQXJndW1lbnRDb3VudFtjZnJdCi0gICAgc3RvcmVwIDAsIENhbGxlZSs0
W2Nmcl0KLSAgICBzdG9yZXAgdm1Ub3BDYWxsRnJhbWUsIENhbGxlZVtjZnJdCi0gICAgbG9hZHAg
W3ZtVG9wQ2FsbEZyYW1lXSwgdGVtcDQKLSAgICBzdG9yZXAgMCwgU2NvcGVDaGFpbis0W2Nmcl0K
LSAgICBzdG9yZXAgdGVtcDQsIFNjb3BlQ2hhaW5bY2ZyXQotICAgIHN0b3JlcCAwLCBDb2RlQmxv
Y2srNFtjZnJdCisgICAgc3RvcmVwIHZtLCBDYWxsZWVbY2ZyXQorICAgIGxvYWRwIFZNOjp0b3BD
YWxsRnJhbWVbdm1dLCB0ZW1wMgorICAgIHN0b3JlcCB0ZW1wMiwgU2NvcGVDaGFpbltjZnJdCiAg
ICAgc3RvcmVwIDEsIENvZGVCbG9ja1tjZnJdCisgICAgaWYgWDg2CisgICAgICAgIGxvYWRwIDI4
W3NwXSwgcHJldmlvdXNQQworICAgICAgICBsb2FkcCAyNFtzcF0sIHByZXZpb3VzQ0ZSCisgICAg
ZW5kCiAgICAgc3RvcmVwIHByZXZpb3VzUEMsIFJldHVyblBDW2Nmcl0KICAgICBzdG9yZXAgcHJl
dmlvdXNDRlIsIENhbGxlckZyYW1lW2Nmcl0KLSAgICBtb3ZlIGNmciwgdGVtcDEKKworICAgIGlm
IFg4NgorICAgICAgICBsb2FkcCA0MFtzcF0sIHByb3RvQ2FsbEZyYW1lCisgICAgZW5kCiAKICAg
ICBsb2FkaSBQcm90b0NhbGxGcmFtZTo6cGFkZGVkQXJnQ291bnRbcHJvdG9DYWxsRnJhbWVdLCB0
ZW1wMgogICAgIGFkZHAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMsIHRlbXAyLCB0ZW1wMgogICAgIGxz
aGlmdHAgMywgdGVtcDIKLSAgICBzdWJwIHRlbXAyLCBjZnIKLSAgICBzdG9yZXAgdGVtcDEsIENh
bGxlckZyYW1lW2Nmcl0KKyAgICBzdWJwIGNmciwgdGVtcDIsIHRlbXAxCisKKyAgICAjIEVuc3Vy
ZSB0aGF0IHdlIGhhdmUgZW5vdWdoIGFkZGl0aW9uYWwgc3RhY2sgY2FwYWNpdHkgZm9yIHRoZSBp
bmNvbWluZyBhcmdzLAorICAgICMgYW5kIHRoZSBmcmFtZSBmb3IgdGhlIEpTIGNvZGUgd2UncmUg
ZXhlY3V0aW5nLiBXZSBuZWVkIHRvIGRvIHRoaXMgY2hlY2sKKyAgICAjIGJlZm9yZSB3ZSBzdGFy
dCBjb3B5aW5nIHRoZSBhcmdzIGZyb20gdGhlIHByb3RvQ2FsbEZyYW1lIGJlbG93LgorICAgIGJw
YWVxIHRlbXAxLCBWTTo6bV9qc1N0YWNrTGltaXRbdm1dLCAuc3RhY2tIZWlnaHRPSworCisgICAg
c3VicCBjZnIsIDgsIHNwCisKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgbW92ZSBlbnRyeSwgdGVt
cDIKKyAgICAgICAgbW92ZSB2bSwgdGVtcDMKKyAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGggX2xs
aW50X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5LCB2bSwgdGVtcDEKKyAgICAgICAgYnBlcSB0MCwg
MCwgLnN0YWNrQ2hlY2tGYWlsZWQKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAgICAg
bW92ZSB0ZW1wMywgdm0KKyAgICAgICAgam1wIC5zdGFja0hlaWdodE9LCisKKy5zdGFja0NoZWNr
RmFpbGVkOgorICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQorICAgICAgICBtb3ZlIHRlbXAzLCB2
bQorICAgIGVuZAorCisgICAgY0NhbGwyKF9sbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJv
ciwgdm0sIHByb3RvQ2FsbEZyYW1lKQorICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisg
ICAgcmV0CiAKKy5zdGFja0hlaWdodE9LOgorICAgIG1vdmUgdGVtcDEsIHNwCiAgICAgbW92ZSA1
LCB0ZW1wMQogCiAuY29weUhlYWRlckxvb3A6CiAgICAgc3ViaSAxLCB0ZW1wMQotICAgIGxvYWRw
IFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgQ29k
ZUJsb2NrW2NmciwgdGVtcDEsIDhdCi0gICAgbG9hZHAgNFtwcm90b0NhbGxGcmFtZSwgdGVtcDEs
IDhdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgQ29kZUJsb2NrKzRbY2ZyLCB0ZW1wMSwgOF0K
KyAgICBsb2FkaSBUYWdPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKKyAg
ICBzdG9yZWkgdGVtcDMsIFRhZ09mZnNldCArIENvZGVCbG9ja1tzcCwgdGVtcDEsIDhdCisgICAg
bG9hZGkgUGF5bG9hZE9mZnNldFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMworICAg
IHN0b3JlaSB0ZW1wMywgUGF5bG9hZE9mZnNldCArIENvZGVCbG9ja1tzcCwgdGVtcDEsIDhdCiAg
ICAgYnRpbnogdGVtcDEsIC5jb3B5SGVhZGVyTG9vcAogCiAgICAgbG9hZGkgUHJvdG9DYWxsRnJh
bWU6OmFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVlW3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDIKQEAg
LTI4OCwxMiArMjc2LDEwIEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9S
ZXQKICAgICBzdWJpIDEsIHRlbXAzCiAKICAgICBiaWVxIHRlbXAyLCB0ZW1wMywgLmNvcHlBcmdz
Ci0gICAgbW92ZSAwLCB0ZW1wMQotICAgIG1vdmUgVW5kZWZpbmVkVGFnLCB0ZW1wNAogLmZpbGxF
eHRyYUFyZ3NMb29wOgogICAgIHN1YmkgMSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDEsIFRoaXNB
cmd1bWVudE9mZnNldCs4K1BheWxvYWRPZmZzZXRbY2ZyLCB0ZW1wMywgOF0KLSAgICBzdG9yZXAg
dGVtcDQsIFRoaXNBcmd1bWVudE9mZnNldCs4K1RhZ09mZnNldFtjZnIsIHRlbXAzLCA4XQorICAg
IHN0b3JlaSBVbmRlZmluZWRUYWcsIFRoaXNBcmd1bWVudE9mZnNldCArIDggKyBUYWdPZmZzZXRb
c3AsIHRlbXAzLCA4XQorICAgIHN0b3JlaSAwLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgUGF5
bG9hZE9mZnNldFtzcCwgdGVtcDMsIDhdCiAgICAgYmluZXEgdGVtcDIsIHRlbXAzLCAuZmlsbEV4
dHJhQXJnc0xvb3AKIAogLmNvcHlBcmdzOgpAQCAtMzAyLDUyICsyODgsODcgQEAgbWFjcm8gZG9D
YWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldAogLmNvcHlBcmdzTG9vcDoKICAgICBidGl6
IHRlbXAyLCAuY29weUFyZ3NEb25lCiAgICAgc3ViaSAxLCB0ZW1wMgotICAgIGxvYWRwIFBheWxv
YWRPZmZzZXRbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMKLSAgICBsb2FkcCBUYWdPZmZzZXRbdGVt
cDEsIHRlbXAyLCA4XSwgdGVtcDQKLSAgICBzdG9yZXAgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNl
dCs4K1BheWxvYWRPZmZzZXRbY2ZyLCB0ZW1wMiwgOF0KLSAgICBzdG9yZXAgdGVtcDQsIFRoaXNB
cmd1bWVudE9mZnNldCs4K1RhZ09mZnNldFtjZnIsIHRlbXAyLCA4XQorICAgIGxvYWRpIFRhZ09m
ZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMworICAgIHN0b3JlaSB0ZW1wMywgVGhpc0FyZ3Vt
ZW50T2Zmc2V0ICsgOCArIFRhZ09mZnNldFtzcCwgdGVtcDIsIDhdCisgICAgbG9hZGkgUGF5bG9h
ZE9mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMworICAgIHN0b3JlaSB0ZW1wMywgVGhpc0Fy
Z3VtZW50T2Zmc2V0ICsgOCArIFBheWxvYWRPZmZzZXRbc3AsIHRlbXAyLCA4XQogICAgIGptcCAu
Y29weUFyZ3NMb29wCiAKIC5jb3B5QXJnc0RvbmU6Ci0gICAgaWYgWDg2Ci0gICAgICAgIGxvYWRw
IGV4dHJhU3RhY2tTcGFjZSsyNFtzcF0sIHZtVG9wQ2FsbEZyYW1lCi0gICAgZW5kCi0gICAgc3Rv
cmVwIGNmciwgW3ZtVG9wQ2FsbEZyYW1lXQorICAgIHN0b3JlcCBzcCwgVk06OnRvcENhbGxGcmFt
ZVt2bV0KIAotICAgIG1ha2VDYWxsKGVudHJ5LCB0ZW1wMSkKKyAgICBtYWtlQ2FsbChlbnRyeSwg
dGVtcDEsIHRlbXAyKQogCiAgICAgYnBlcSBDb2RlQmxvY2tbY2ZyXSwgMSwgLmNhbGxlZUZyYW1l
UG9wcGVkCiAgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2ZyCiAKIC5jYWxsZWVGcmFtZVBv
cHBlZDoKLSAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGVtcDMgIyBWTS50b3BDYWxsRnJhbWUKLSAg
ICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHRlbXA0Ci0gICAgc3RvcmVwIHRlbXA0LCBbdGVtcDNd
CisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAzICMgVk0KKyAgICBsb2FkcCBTY29wZUNoYWlu
W2Nmcl0sIHRlbXA0ICMgcHJldmlvdXMgdG9wQ2FsbEZyYW1lCisgICAgc3RvcmVwIHRlbXA0LCBW
TTo6dG9wQ2FsbEZyYW1lW3RlbXAzXQogCi0gICAgZG9SZXR1cm4oZXh0cmFTdGFja1NwYWNlKQor
ICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisgICAgcmV0CiBlbmQKIAotbWFjcm8gbWFr
ZUphdmFTY3JpcHRDYWxsKGVudHJ5LCB0ZW1wKQotICAgIGNhbGwgZW50cnkKK21hY3JvIG1ha2VK
YXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCwgdW51c2VkKQorICAgIGFkZHAgQ2FsbGVyRnJhbWVB
bmRQQ1NpemUsIHNwCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4YmFkMGRj
MDIpCisgICAgaWYgQ19MT09QCisgICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rpb24gZW50cnkKKyAg
ICBlbHNlCisgICAgICAgIGNhbGwgZW50cnkKKyAgICBlbmQKKyAgICBjaGVja1N0YWNrUG9pbnRl
ckFsaWdubWVudCh0MiwgMHhiYWQwZGMwMykKKyAgICBzdWJwIENhbGxlckZyYW1lQW5kUENTaXpl
LCBzcAogZW5kCiAKLW1hY3JvIG1ha2VIb3N0RnVuY3Rpb25DYWxsKGVudHJ5LCB0ZW1wKQotICAg
IG1vdmUgZW50cnksIHRlbXAKLSAgICBpZiBYODYKLSAgICAgICAgIyBQdXQgY2ZyIG9uIHN0YWNr
IGFzIGFyZzAsIGFsc28gcHV0IGl0IGluIGVjeCBmb3IgImZhc3RjYWxsIiB0YXJnZXRzCi0gICAg
ICAgIHBva2UgY2ZyLCAwCi0gICAgICAgIG1vdmUgY2ZyLCB0MgorbWFjcm8gbWFrZUhvc3RGdW5j
dGlvbkNhbGwoZW50cnksIHRlbXAxLCB0ZW1wMikKKyAgICBtb3ZlIGVudHJ5LCB0ZW1wMQorICAg
IGlmIENfTE9PUAorICAgICAgICBtb3ZlIHNwLCBhMAorICAgICAgICBzdG9yZXAgY2ZyLCBbc3Bd
CisgICAgICAgIHN0b3JlcCBsciwgUHRyU2l6ZVtzcF0KKyAgICAgICAgY2xvb3BDYWxsTmF0aXZl
IHRlbXAxCiAgICAgZWxzZQotICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgaWYgWDg2Cisg
ICAgICAgICAgICAjIFB1dCBjYWxsZWUgZnJhbWUgcG9pbnRlciBvbiBzdGFjayBhcyBhcmcwLCBh
bHNvIHB1dCBpdCBpbiBlY3ggZm9yICJmYXN0Y2FsbCIgdGFyZ2V0cworICAgICAgICAgICAgbW92
ZSAwLCB0ZW1wMgorICAgICAgICAgICAgbW92ZSB0ZW1wMiwgNFtzcF0gIyBwdXQgMCBpbiBSZXR1
cm5QQworICAgICAgICAgICAgbW92ZSBjZnIsIFtzcF0gIyBwdXQgY2FsbGVyIGZyYW1lIHBvaW50
ZXIgaW50byBjYWxsZWUgZnJhbWUgc2luY2UgY2FsbGVlIHByb2xvZ3VlIGNhbid0CisgICAgICAg
ICAgICBtb3ZlIHNwLCB0MiAjIHQyIGlzIGVjeAorICAgICAgICAgICAgcHVzaCB0ZW1wMiAjIFB1
c2ggZHVtbXkgYXJnMQorICAgICAgICAgICAgcHVzaCB0MgorICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtb3ZlIHNwLCBhMAorICAgICAgICAgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwg
c3AKKyAgICAgICAgZW5kCisgICAgICAgIGNhbGwgdGVtcDEKKyAgICAgICAgaWYgWDg2CisgICAg
ICAgICAgICBhZGRwIDgsIHNwCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN1YnAgQ2FsbGVy
RnJhbWVBbmRQQ1NpemUsIHNwCisgICAgICAgIGVuZAogICAgIGVuZAotICAgIGNhbGwgdGVtcAog
ZW5kCiAKLW1hY3JvIGRvUmV0dXJuRnJvbUphdmFTY3JpcHQoZXh0cmFTdGFja1NwYWNlKQotX3Jl
dHVybkZyb21KYXZhU2NyaXB0OgotICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1NwYWNl
KQorX2hhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgorICAgIGxvYWRwIFNjb3BlQ2hhaW4gKyBQYXls
b2FkT2Zmc2V0W2Nmcl0sIHQzCisgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCisgICAgbG9h
ZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MworICAgIGxv
YWRwIFZNOjpjYWxsRnJhbWVGb3JUaHJvd1t0M10sIGNmcgorCisgICAgIyBTbyBmYXIsIHdlJ3Zl
IHVud291bmQgdGhlIHN0YWNrIHRvIHRoZSBmcmFtZSBqdXN0IGJlbG93IHRoZSBzZW50aW5lbCBm
cmFtZS4KKyAgICAjIFdlIG5lZWQgdG8gcG9wIHRvIHRoZSBzZW50aW5lbCBmcmFtZSBhbmQgZG8g
dGhlIG5lY2Vzc2FyeSBjbGVhbiB1cCBmb3IKKyAgICAjIHJldHVybmluZyB0byB0aGUgY2FsbGVy
IEMgZnJhbWUuCisgICAgbG9hZHAgQ2FsbGVyRnJhbWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIGNm
cgorCisgICAgbG9hZHAgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MyAjIFZNCisgICAg
bG9hZHAgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDUgIyBwcmV2aW91cyB0b3BD
YWxsRnJhbWUKKyAgICBzdG9yZXAgdDUsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCisKKyAgICBjYWxs
VG9KYXZhU2NyaXB0RXBpbG9ndWUoKQogICAgIHJldAotZW5kCiAKIG1hY3JvIGRvUmV0dXJuRnJv
bUhvc3RGdW5jdGlvbihleHRyYVN0YWNrU3BhY2UpCiAgICAgZnVuY3Rpb25FcGlsb2d1ZShleHRy
YVN0YWNrU3BhY2UpCkBAIC0zNzcsMTQgKzM5OCwxMiBAQCBlbmQKIG1hY3JvIGNhbGxDYWxsU2xv
d1BhdGgoc2xvd1BhdGgsIGFjdGlvbikKICAgICBzdG9yZXAgUEMsIEFyZ3VtZW50Q291bnQgKyBU
YWdPZmZzZXRbY2ZyXQogICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKLSAgICBtb3ZlIHQx
LCBjZnIKICAgICBhY3Rpb24odDApCiBlbmQKIAogbWFjcm8gY2FsbFdhdGNoZG9nVGltZXJIYW5k
bGVyKHRocm93SGFuZGxlcikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZz
ZXRbY2ZyXQogICAgIGNDYWxsMihfbGxpbnRfc2xvd19wYXRoX2hhbmRsZV93YXRjaGRvZ190aW1l
ciwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBidHBueiB0MCwgdGhyb3dIYW5kbGVy
CiAgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwogZW5kCkBAIC0z
OTUsOCArNDE0LDggQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgICAgICBt
YWNybyAoKQogICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0
W2Nmcl0KICAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCi0gICAg
ICAgICAgICBtb3ZlIHQxLCBjZnIKICAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisgICAg
ICAgICAgICBtb3ZlIHQxLCBzcAogICAgICAgICAgICAgam1wIHQwCiAgICAgICAgIC5yZWNvdmVy
OgogICAgICAgICAgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwpA
QCAtNTUzLDE4ICs1NzIsMzQgQEAgZW5kCiAjIEVudHJ5cG9pbnRzIGludG8gdGhlIGludGVycHJl
dGVyCiAKICMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBw
cm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCi1tYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxh
YmVsLCBzbG93X3BhdGgpCittYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93
UGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MAog
ICAgIGJpYWVxIHQwLCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVMYWJlbAot
ICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dfcGF0aCBoYXMgYSBz
aW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgotICAg
IGJ0aXogdDAsIC5pc0FyaXR5Rml4dXBOZWVkZWQKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwg
UEMpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+IG5v
IGVycm9yLCB0MCAhPSAwID0+IGVycm9yCisgICAgYnRpeiB0MCwgLm5vRXJyb3IKICAgICBtb3Zl
IHQxLCBjZnIgICAjIHQxIGNvbnRhaW5zIGNhbGxlciBmcmFtZQogICAgIGptcCBfbGxpbnRfdGhy
b3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogCi0uaXNBcml0eUZpeHVwTmVlZGVkOgorLm5v
RXJyb3I6CisgICAgIyB0MSBwb2ludHMgdG8gQXJpdHlDaGVja0RhdGEuCisgICAgbG9hZHAgQ29t
bW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6dGh1bmtUb0NhbGxbdDFdLCB0MgorICAgIGJ0
cHogdDIsIC5wcm9jZWVkSW5saW5lCisgICAgCisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpB
cml0eUNoZWNrRGF0YTo6cmV0dXJuUENbdDFdLCB0NQorICAgIGxvYWRwIENvbW1vblNsb3dQYXRo
czo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MAorICAgIGNhbGwgdDIK
KyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MAor
ICAgICAgICBsb2FkcCBbdDBdLCB0MAorICAgIGVuZAorICAgIGptcCAuY29udGludWUKKworLnBy
b2NlZWRJbmxpbmU6CisgICAgbG9hZGkgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6
cGFkZGVkU3RhY2tTcGFjZVt0MV0sIHQxCiAgICAgYnRpeiB0MSwgLmNvbnRpbnVlCiAKLSAgICAv
LyBNb3ZlIGZyYW1lIHVwICJ0MSIgc2xvdHMKKyAgICAvLyBNb3ZlIGZyYW1lIHVwICJ0MSAqIDIi
IHNsb3RzCisgICAgbHNoaWZ0cCAxLCB0MQogICAgIG5lZ2kgdDEKICAgICBtb3ZlIGNmciwgdDMK
ICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MgpAQCAtNTg5
LDYgKzYyNCw3IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3cKIAog
ICAgIGxzaGlmdHAgMywgdDEKICAgICBhZGRwIHQxLCBjZnIKKyAgICBhZGRwIHQxLCBzcAogLmNv
bnRpbnVlOgogICAgICMgUmVsb2FkIENvZGVCbG9jayBhbmQgUEMsIHNpbmNlIHRoZSBzbG93X3Bh
dGggY2xvYmJlcmVkIGl0LgogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQpAQCAtNTk2LDcg
KzYzMiw2IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3cKICAgICBq
bXAgZG9uZUxhYmVsCiBlbmQKIAotCiBtYWNybyBicmFuY2hJZkV4Y2VwdGlvbihsYWJlbCkKICAg
ICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQz
CkBAIC02MTEsNiArNjQ2LDcgQEAgZW5kCiAKIF9sbGludF9vcF9lbnRlcjoKICAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4ZGVhZDAwZTEp
CiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyICAgICAgICAgICAgICAgIC8vIHQyPENvZGVC
bG9jaz4gPSBjZnIuQ29kZUJsb2NrCiAgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bVZhcnNbdDJd
LCB0MiAgICAgIC8vIHQyPHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1fbnVtVmFycwogICAgIGJ0
aXogdDIsIC5vcEVudGVyRG9uZQpAQCAtMTkyMCwxMiArMTk1NiwxMSBAQCBtYWNybyBkb0NhbGwo
c2xvd1BhdGgpCiAgICAgc3RvcmVpIHQwLCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFt0M10K
ICAgICBsb2FkaSAxMltQQ10sIHQyCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFn
T2Zmc2V0W2Nmcl0KLSAgICBzdG9yZXAgY2ZyLCBDYWxsZXJGcmFtZVt0M10KICAgICBzdG9yZWkg
dDIsIEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W3QzXQogICAgIHN0b3JlaSBDZWxsVGFn
LCBDYWxsZWUgKyBUYWdPZmZzZXRbdDNdCiAgICAgc3RvcmVpIENlbGxUYWcsIFNjb3BlQ2hhaW4g
KyBUYWdPZmZzZXRbdDNdCi0gICAgbW92ZSB0MywgY2ZyCi0gICAgY2FsbFRhcmdldEZ1bmN0aW9u
KHQxKQorICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHQzCisgICAgY2FsbFRhcmdldEZ1
bmN0aW9uKHQxLCB0MykKIAogLm9wQ2FsbFNsb3c6CiAgICAgc2xvd1BhdGhGb3JDYWxsKHNsb3dQ
YXRoKQpAQCAtMjAzOSwxMCArMjA3NCwxMiBAQCBfbGxpbnRfb3BfY2F0Y2g6CiAgICAgIyB0aGUg
aW50ZXJwcmV0ZXIncyB0aHJvdyB0cmFtcG9saW5lIChzZWUgX2xsaW50X3Rocm93X3RyYW1wb2xp
bmUpLgogICAgICMgVGhlIHRocm93aW5nIGNvZGUgbXVzdCBoYXZlIGtub3duIHRoYXQgd2Ugd2Vy
ZSB0aHJvd2luZyB0byB0aGUgaW50ZXJwcmV0ZXIsCiAgICAgIyBhbmQgaGF2ZSBzZXQgVk06OnRh
cmdldEludGVycHJldGVyUENGb3JUaHJvdy4KLSAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQz
CisgICAgbG9hZHAgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDMKICAgICBhbmRw
IE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsg
V2Vha1NldDo6bV92bVt0M10sIHQzCiAgICAgbG9hZHAgVk06OmNhbGxGcmFtZUZvclRocm93W3Qz
XSwgY2ZyCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCisKICAgICBsb2FkaSBW
TTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93W3QzXSwgUEMKICAgICBsb2FkaSBWTTo6bV9l
eGNlcHRpb24gKyBQYXlsb2FkT2Zmc2V0W3QzXSwgdDAKICAgICBsb2FkaSBWTTo6bV9leGNlcHRp
b24gKyBUYWdPZmZzZXRbdDNdLCB0MQpAQCAtMjExNiw3NCArMjE1Myw2MiBAQCBfbGxpbnRfdGhy
b3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKIAogCiBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGlu
ZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKKworICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQog
ICAgIHN0b3JlcCAwLCBDb2RlQmxvY2tbY2ZyXQogICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0s
IHQwCiAgICAgbG9hZGkgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbdDBdLCB0MQogICAgIHN0
b3JlaSBDZWxsVGFnLCBTY29wZUNoYWluICsgVGFnT2Zmc2V0W2Nmcl0KICAgICBzdG9yZWkgdDEs
IFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0W2Nmcl0KICAgICBpZiBYODYKLSAgICAgICAgbG9h
ZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMK
LSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNd
LCB0MworICAgICAgICBzdWJwIDgsIHNwICMgYWxpZ24gc3RhY2sgcG9pbnRlcgorICAgICAgICBh
bmRwIE1hcmtlZEJsb2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vh
a1NldCArIFdlYWtTZXQ6Om1fdm1bdDFdLCB0MwogICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9w
Q2FsbEZyYW1lW3QzXQotICAgICAgICBwZWVrIDAsIHQxCi0gICAgICAgIHN0b3JlcCB0MSwgUmV0
dXJuUENbY2ZyXQogICAgICAgICBtb3ZlIGNmciwgdDIgICMgdDIgPSBlY3gKLSAgICAgICAgc3Vi
cCAxNiAtIDQsIHNwCisgICAgICAgIHN0b3JlcCB0MiwgW3NwXQogICAgICAgICBsb2FkaSBDYWxs
ZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1f
ZXhlY3V0YWJsZVt0MV0sIHQxCi0gICAgICAgIG1vdmUgdDAsIGNmcgorICAgICAgICBjaGVja1N0
YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKICAgICAgICAgY2FsbCBleGVjdXRh
YmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgYWRkcCAxNiAtIDQsIHNwCi0gICAgICAg
IGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ss
IHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3Zt
W3QzXSwgdDMKLSAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3Ig
TUlQUyBvciBTSDQKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwogICAgICAgICBh
bmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vh
a1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9w
Q2FsbEZyYW1lW3QzXQotICAgICAgICBtb3ZlIHQwLCB0MgotICAgICAgICBwcmVzZXJ2ZVJldHVy
bkFkZHJlc3NBZnRlckNhbGwodDMpCi0gICAgICAgIHN0b3JlcCB0MywgUmV0dXJuUENbY2ZyXQot
ICAgICAgICBtb3ZlIGNmciwgdDAKLSAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNl
dFtjZnJdLCB0MQotICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0
MQotICAgICAgICBtb3ZlIHQyLCBjZnIKKyAgICAgICAgYWRkcCA4LCBzcAorICAgIGVsc2lmIEFS
TSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBDX0xPT1Agb3IgTUlQUyBvciBTSDQK
KyAgICAgICAgc3VicCA4LCBzcCAjIGFsaWduIHN0YWNrIHBvaW50ZXIKKyAgICAgICAgIyB0MSBh
bHJlYWR5IGNvbnRhaW5zIHRoZSBTY29wZUNoYWluLgorICAgICAgICBhbmRwIE1hcmtlZEJsb2Nr
TWFzaywgdDEKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6
Om1fdm1bdDFdLCB0MQorICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QxXQog
ICAgICAgICBpZiBNSVBTIG9yIFNINAotICAgICAgICAgICAgbW92ZSB0MCwgYTAKKyAgICAgICAg
ICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICBlbHNlCisgICAgICAgICAgICBtb3ZlIGNmciwgdDAK
ICAgICAgICAgZW5kCi0gICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFd
Ci0gICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQotICAgICAgICBs
b2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0
MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0
M10sIHQzCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwg
dDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtl
ZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICAgICAgc3RvcmVw
IGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KLSAgICAgICAgbW92ZSB0MCwgdDIKLSAgICAgICAg
cHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAgICBzdG9yZXAgdDMsIFJl
dHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCiAgICAgICAgIGxvYWRpIENhbGxlZSAr
IFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKICAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVj
dXRhYmxlW3QxXSwgdDEKLSAgICAgICAgbW92ZSB0MiwgY2ZyCi0gICAgICAgIGNsb29wQ2FsbE5h
dGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgcmVzdG9yZVJldHVy
bkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCisgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25t
ZW50KHQzLCAweGRlYWQwMDAxKQorICAgICAgICBpZiBDX0xPT1AKKyAgICAgICAgICAgIGNsb29w
Q2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAgICAg
ZW5kCiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICAgICAgYW5kcCBNYXJr
ZWRCbG9ja01hc2ssIHQzCiAgICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBX
ZWFrU2V0OjptX3ZtW3QzXSwgdDMKKyAgICAgICAgYWRkcCA4LCBzcAogICAgIGVsc2UKICAgICAg
ICAgZXJyb3IKICAgICBlbmQKLSAgICBiaW5lcSBWTTo6bV9leGNlcHRpb24gKyBUYWdPZmZzZXRb
dDNdLCBFbXB0eVZhbHVlVGFnLCAuZXhjZXB0aW9uCisgICAgCisgICAgZnVuY3Rpb25FcGlsb2d1
ZSgpCisgICAgYmluZXEgVk06Om1fZXhjZXB0aW9uICsgVGFnT2Zmc2V0W3QzXSwgRW1wdHlWYWx1
ZVRhZywgLmhhbmRsZUV4Y2VwdGlvbgogICAgIHJldAotLmV4Y2VwdGlvbjoKLSAgICBwcmVzZXJ2
ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDEpICMgVGhpcyBpcyByZWFsbHkgb25seSBuZWVkZWQg
b24gWDg2Ci0gICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwotICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfdGhyb3dfZnJvbV9uYXRpdmVfY2FsbCkKKworLmhhbmRsZUV4
Y2VwdGlvbjoKKyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgIHJlc3Rv
cmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93
X3BhdGhfdHJhbXBvbGluZQogZW5kCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAxNjI5NjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDExLCAy
MDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTIsOSArNTIsMTAgQEAgbWFjcm8gZGlz
cGF0Y2hBZnRlckNhbGwoKQogZW5kCiAKIG1hY3JvIGNDYWxsMihmdW5jdGlvbiwgYXJnMSwgYXJn
MikKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0NCwgMHhiYWQwYzAwMikKICAgICBp
ZiBYODZfNjQKLSAgICAgICAgbW92ZSBhcmcxLCB0NQotICAgICAgICBtb3ZlIGFyZzIsIHQ0Cisg
ICAgICAgIG1vdmUgYXJnMSwgdDQKKyAgICAgICAgbW92ZSBhcmcyLCB0NQogICAgICAgICBjYWxs
IGZ1bmN0aW9uCiAgICAgZWxzaWYgQVJNNjQKICAgICAgICAgbW92ZSBhcmcxLCB0MApAQCAtNjks
OSArNzAsMTAgQEAgZW5kCiAKICMgVGhpcyBiYXJlbHkgd29ya3MuIGFyZzMgYW5kIGFyZzQgc2hv
dWxkIHByb2JhYmx5IGJlIGltbWVkaWF0ZXMuCiBtYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEs
IGFyZzIsIGFyZzMsIGFyZzQpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDQsIDB4
YmFkMGMwMDQpCiAgICAgaWYgWDg2XzY0Ci0gICAgICAgIG1vdmUgYXJnMSwgdDUKLSAgICAgICAg
bW92ZSBhcmcyLCB0NAorICAgICAgICBtb3ZlIGFyZzEsIHQ0CisgICAgICAgIG1vdmUgYXJnMiwg
dDUKICAgICAgICAgbW92ZSBhcmczLCB0MQogICAgICAgICBtb3ZlIGFyZzQsIHQyCiAgICAgICAg
IGNhbGwgZnVuY3Rpb24KQEAgLTg4LDY2ICs5MCw0OSBAQCBtYWNybyBjQ2FsbDQoZnVuY3Rpb24s
IGFyZzEsIGFyZzIsIGFyZzMsCiAgICAgZW5kCiBlbmQKIAotbWFjcm8gZnVuY3Rpb25Qcm9sb2d1
ZShleHRyYVN0YWNrU3BhY2UpCittYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwpCiAg
ICAgaWYgWDg2XzY0Ci0gICAgICAgIHB1c2ggY2ZyCi0gICAgICAgIG1vdmUgc3AsIGNmcgotICAg
IGVsc2lmIEFSTTY0Ci0gICAgICAgIHB1c2hMUkFuZEZQCi0gICAgZW5kCi0gICAgcHVzaENhbGxl
ZVNhdmVzCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIHN1YnAgZXh0cmFTdGFja1NwYWNlLCBzcAot
ICAgIGVuZAotZW5kCi0KLW1hY3JvIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1NwYWNlKQot
ICAgIGlmIFg4Nl82NAotICAgICAgICBhZGRwIGV4dHJhU3RhY2tTcGFjZSwgc3AKLSAgICBlbmQK
LSAgICBwb3BDYWxsZWVTYXZlcwotICAgIGlmIFg4Nl82NAotICAgICAgICBwb3AgY2ZyCi0gICAg
ZWxzaWYgQVJNNjQKLSAgICAgICAgcG9wTFJBbmRGUAotICAgIGVuZAotZW5kCi0KLW1hY3JvIGRv
Q2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9SZXR1cm4pCi0gICAgaWYgWDg2XzY0Ci0gICAg
ICAgIGNvbnN0IGVudHJ5ID0gdDUKLSAgICAgICAgY29uc3Qgdm1Ub3BDYWxsRnJhbWUgPSB0NAor
ICAgICAgICBjb25zdCBlbnRyeSA9IHQ0CisgICAgICAgIGNvbnN0IHZtID0gdDUKICAgICAgICAg
Y29uc3QgcHJvdG9DYWxsRnJhbWUgPSB0MQotICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gdDIK
IAotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSA4CiAgICAgICAgIGNvbnN0IHByZXZp
b3VzQ0ZSID0gdDAKICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9IHQ2CiAgICAgICAgIGNvbnN0
IHRlbXAxID0gdDAKICAgICAgICAgY29uc3QgdGVtcDIgPSB0MwogICAgICAgICBjb25zdCB0ZW1w
MyA9IHQ2Ci0gICAgZWxzaWYgQVJNNjQKKyAgICBlbHNpZiBBUk02NCBvciBDX0xPT1AKICAgICAg
ICAgY29uc3QgZW50cnkgPSBhMAotICAgICAgICBjb25zdCB2bVRvcENhbGxGcmFtZSA9IGExCisg
ICAgICAgIGNvbnN0IHZtID0gYTEKICAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSBhMgot
ICAgICAgICBjb25zdCB0b3BPZlN0YWNrID0gYTMKIAotICAgICAgICBjb25zdCBleHRyYVN0YWNr
U3BhY2UgPSAwCi0gICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDQKKyAgICAgICAgY29uc3Qg
cHJldmlvdXNDRlIgPSB0NQogICAgICAgICBjb25zdCBwcmV2aW91c1BDID0gbHIKICAgICAgICAg
Y29uc3QgdGVtcDEgPSB0MwotICAgICAgICBjb25zdCB0ZW1wMiA9IHQ1CisgICAgICAgIGNvbnN0
IHRlbXAyID0gdDQKICAgICAgICAgY29uc3QgdGVtcDMgPSB0NgogICAgIGVuZAogCi0gICAgZnVu
Y3Rpb25Qcm9sb2d1ZShleHRyYVN0YWNrU3BhY2UpCisgICAgY2FsbFRvSmF2YVNjcmlwdFByb2xv
Z3VlKCkKKworICAgIGlmIFg4Nl82NAorICAgICAgICBsb2FkcCA3Kjhbc3BdLCBwcmV2aW91c1BD
CisgICAgICAgIG1vdmUgNio4W3NwXSwgcHJldmlvdXNDRlIKKyAgICBlbHNpZiBBUk02NAorICAg
ICAgICBtb3ZlIGNmciwgcHJldmlvdXNDRlIKKyAgICBlbmQKKworICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KHRlbXAyLCAweGJhZDBkYzAxKQogCi0gICAgbW92ZSB0b3BPZlN0YWNrLCBj
ZnIKLSAgICBzdWJwIChDYWxsRnJhbWVIZWFkZXJTbG90cy0xKSo4LCBjZnIKKyAgICAjIFRoZSBz
dGFjayByZXNlcnZlZCB6b25lIGVuc3VyZXMgdGhhdCB3ZSBoYXZlIGFkZXF1YXRlIHNwYWNlIGZv
ciB0aGUKKyAgICAjIFZNRW50cnlTZW50aW5lbEZyYW1lLiBQcm9jZWVkIHdpdGggYWxsb2NhdGlu
ZyBhbmQgaW5pdGlhbGl6aW5nIHRoZQorICAgICMgc2VudGluZWwgZnJhbWUuCisgICAgbW92ZSBz
cCwgY2ZyCisgICAgc3VicCBDYWxsRnJhbWVIZWFkZXJTbG90cyAqIDgsIGNmcgogICAgIHN0b3Jl
cCAwLCBBcmd1bWVudENvdW50W2Nmcl0KLSAgICBzdG9yZXAgdm1Ub3BDYWxsRnJhbWUsIENhbGxl
ZVtjZnJdCi0gICAgbG9hZHAgW3ZtVG9wQ2FsbEZyYW1lXSwgdGVtcDEKLSAgICBzdG9yZXAgdGVt
cDEsIFNjb3BlQ2hhaW5bY2ZyXQorICAgIHN0b3JlcCB2bSwgQ2FsbGVlW2Nmcl0KKyAgICBsb2Fk
cCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXSwgdGVtcDIKKyAgICBzdG9yZXAgdGVtcDIsIFNjb3BlQ2hh
aW5bY2ZyXQogICAgIHN0b3JlcCAxLCBDb2RlQmxvY2tbY2ZyXQogICAgIGlmIFg4Nl82NAogICAg
ICAgICBsb2FkcCA3Kjhbc3BdLCBwcmV2aW91c1BDCkBAIC0xNTUsMjAgKzE0MCw0NSBAQCBtYWNy
byBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0CiAgICAgZW5kCiAgICAgc3RvcmVw
IHByZXZpb3VzUEMsIFJldHVyblBDW2Nmcl0KICAgICBzdG9yZXAgcHJldmlvdXNDRlIsIENhbGxl
ckZyYW1lW2Nmcl0KLSAgICBtb3ZlIGNmciwgdGVtcDEKIAogICAgIGxvYWRpIFByb3RvQ2FsbEZy
YW1lOjpwYWRkZWRBcmdDb3VudFtwcm90b0NhbGxGcmFtZV0sIHRlbXAyCiAgICAgYWRkcCBDYWxs
RnJhbWVIZWFkZXJTbG90cywgdGVtcDIsIHRlbXAyCiAgICAgbHNoaWZ0cCAzLCB0ZW1wMgotICAg
IHN1YnAgdGVtcDIsIGNmcgotICAgIHN0b3JlcCB0ZW1wMSwgQ2FsbGVyRnJhbWVbY2ZyXQorICAg
IHN1YnAgY2ZyLCB0ZW1wMiwgdGVtcDEKIAorICAgICMgRW5zdXJlIHRoYXQgd2UgaGF2ZSBlbm91
Z2ggYWRkaXRpb25hbCBzdGFjayBjYXBhY2l0eSBmb3IgdGhlIGluY29taW5nIGFyZ3MsCisgICAg
IyBhbmQgdGhlIGZyYW1lIGZvciB0aGUgSlMgY29kZSB3ZSdyZSBleGVjdXRpbmcuIFdlIG5lZWQg
dG8gZG8gdGhpcyBjaGVjaworICAgICMgYmVmb3JlIHdlIHN0YXJ0IGNvcHlpbmcgdGhlIGFyZ3Mg
ZnJvbSB0aGUgcHJvdG9DYWxsRnJhbWUgYmVsb3cuCisgICAgYnBhZXEgdGVtcDEsIFZNOjptX2pz
U3RhY2tMaW1pdFt2bV0sIC5zdGFja0hlaWdodE9LCisKKyAgICBtb3ZlIGNmciwgc3AKKworICAg
IGlmIENfTE9PUAorICAgICAgICBtb3ZlIGVudHJ5LCB0ZW1wMgorICAgICAgICBtb3ZlIHZtLCB0
ZW1wMworICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBfbGxpbnRfc3RhY2tfY2hlY2tfYXRfdm1f
ZW50cnksIHZtLCB0ZW1wMQorICAgICAgICBicGVxIHQwLCAwLCAuc3RhY2tDaGVja0ZhaWxlZAor
ICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQorICAgICAgICBtb3ZlIHRlbXAzLCB2bQorICAgICAg
ICBqbXAgLnN0YWNrSGVpZ2h0T0sKKworLnN0YWNrQ2hlY2tGYWlsZWQ6CisgICAgICAgIG1vdmUg
dGVtcDIsIGVudHJ5CisgICAgICAgIG1vdmUgdGVtcDMsIHZtCisgICAgZW5kCisKKyAgICBjQ2Fs
bDIoX2xsaW50X3Rocm93X3N0YWNrX292ZXJmbG93X2Vycm9yLCB2bSwgcHJvdG9DYWxsRnJhbWUp
CisgICAgY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkKKyAgICByZXQKKworLnN0YWNrSGVpZ2h0
T0s6CisgICAgbW92ZSB0ZW1wMSwgc3AKICAgICBtb3ZlIDUsIHRlbXAxCiAKIC5jb3B5SGVhZGVy
TG9vcDoKICAgICBzdWJpIDEsIHRlbXAxCi0gICAgbG9hZHAgW3Byb3RvQ2FsbEZyYW1lLCB0ZW1w
MSwgOF0sIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAzLCBDb2RlQmxvY2tbY2ZyLCB0ZW1wMSwgOF0K
KyAgICBsb2FkcSBbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKKyAgICBzdG9yZXEg
dGVtcDMsIENvZGVCbG9ja1tzcCwgdGVtcDEsIDhdCiAgICAgYnRpbnogdGVtcDEsIC5jb3B5SGVh
ZGVyTG9vcAogCiAgICAgbG9hZGkgUHJvdG9DYWxsRnJhbWU6OmFyZ0NvdW50QW5kQ29kZU9yaWdp
blZhbHVlW3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDIKQEAgLTE4MCw3ICsxOTAsNyBAQCBtYWNybyBk
b0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0CiAgICAgbW92ZSBWYWx1ZVVuZGVmaW5l
ZCwgdGVtcDEKIC5maWxsRXh0cmFBcmdzTG9vcDoKICAgICBzdWJpIDEsIHRlbXAzCi0gICAgc3Rv
cmVwIHRlbXAxLCBUaGlzQXJndW1lbnRPZmZzZXQrOFtjZnIsIHRlbXAzLCA4XQorICAgIHN0b3Jl
cSB0ZW1wMSwgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOFtzcCwgdGVtcDMsIDhdCiAgICAgYmluZXEg
dGVtcDIsIHRlbXAzLCAuZmlsbEV4dHJhQXJnc0xvb3AKIAogLmNvcHlBcmdzOgpAQCAtMTg5LDUz
ICsxOTksOTcgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldAogLmNv
cHlBcmdzTG9vcDoKICAgICBidGl6IHRlbXAyLCAuY29weUFyZ3NEb25lCiAgICAgc3ViaSAxLCB0
ZW1wMgotICAgIGxvYWRwIFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1w
MywgVGhpc0FyZ3VtZW50T2Zmc2V0KzhbY2ZyLCB0ZW1wMiwgOF0KKyAgICBsb2FkcSBbdGVtcDEs
IHRlbXAyLCA4XSwgdGVtcDMKKyAgICBzdG9yZXEgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNldCAr
IDhbc3AsIHRlbXAyLCA4XQogICAgIGptcCAuY29weUFyZ3NMb29wCiAKIC5jb3B5QXJnc0RvbmU6
Ci0gICAgc3RvcmVwIGNmciwgW3ZtVG9wQ2FsbEZyYW1lXQorICAgIGlmIEFSTTY0CisgICAgICAg
IG1vdmUgc3AsIHRlbXAyCisgICAgICAgIHN0b3JlcCB0ZW1wMiwgVk06OnRvcENhbGxGcmFtZVt2
bV0KKyAgICBlbHNlCisgICAgICAgIHN0b3JlcCBzcCwgVk06OnRvcENhbGxGcmFtZVt2bV0KKyAg
ICBlbmQKIAogICAgIG1vdmUgMHhmZmZmMDAwMDAwMDAwMDAwLCBjc3IxCiAgICAgYWRkcCAyLCBj
c3IxLCBjc3IyCiAKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMywgMHhiYWQw
ZGMwMikKKwogICAgIG1ha2VDYWxsKGVudHJ5LCB0ZW1wMSkKIAorICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KHRlbXAzLCAweGJhZDBkYzAzKQorCiAgICAgYnBlcSBDb2RlQmxvY2tbY2Zy
XSwgMSwgLmNhbGxlZUZyYW1lUG9wcGVkCiAgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2Zy
CiAKIC5jYWxsZWVGcmFtZVBvcHBlZDoKLSAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGVtcDIgIyBW
TS50b3BDYWxsRnJhbWUKLSAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHRlbXAzCi0gICAgc3Rv
cmVwIHRlbXAzLCBbdGVtcDJdCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAyICMgVk0KKyAg
ICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHRlbXAzICMgcHJldmlvdXMgdG9wQ2FsbEZyYW1lCisg
ICAgc3RvcmVwIHRlbXAzLCBWTTo6dG9wQ2FsbEZyYW1lW3RlbXAyXQorCisgICAgY2hlY2tTdGFj
a1BvaW50ZXJBbGlnbm1lbnQodGVtcDMsIDB4YmFkMGRjMDQpCiAKLSAgICBkb1JldHVybihleHRy
YVN0YWNrU3BhY2UpCisgICAgaWYgWDg2XzY0CisgICAgICAgIHBvcCB0NQorICAgIGVuZAorICAg
IGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisKKyAgICByZXQKIGVuZAogCisKIG1hY3JvIG1h
a2VKYXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCkKLSAgICBjYWxsIGVudHJ5CisgICAgYWRkcCAx
Niwgc3AKKyAgICBpZiBDX0xPT1AKKyAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBlbnRyeQor
ICAgIGVsc2UKKyAgICAgICAgY2FsbCBlbnRyeQorICAgIGVuZAorICAgIHN1YnAgMTYsIHNwCiBl
bmQKIAorCiBtYWNybyBtYWtlSG9zdEZ1bmN0aW9uQ2FsbChlbnRyeSwgdGVtcCkKICAgICBtb3Zl
IGVudHJ5LCB0ZW1wCiAgICAgaWYgWDg2XzY0Ci0gICAgICAgIG1vdmUgY2ZyLCB0NQorICAgICAg
ICBtb3ZlIHNwLCB0NAogICAgIGVsc2lmIEFSTTY0IG9yIENfTE9PUAotICAgICAgICBtb3ZlIGNm
ciwgYTAKKyAgICAgICAgbW92ZSBzcCwgYTAKKyAgICBlbmQKKyAgICBpZiBDX0xPT1AKKyAgICAg
ICAgc3RvcmVwIGNmciwgW3NwXQorICAgICAgICBzdG9yZXAgbHIsIDhbc3BdCisgICAgICAgIGNs
b29wQ2FsbE5hdGl2ZSB0ZW1wCisgICAgZWxzZQorICAgICAgICBhZGRwIDE2LCBzcCAKKyAgICAg
ICAgY2FsbCB0ZW1wCisgICAgICAgIHN1YnAgMTYsIHNwCiAgICAgZW5kCi0gICAgY2FsbCB0ZW1w
CiBlbmQKIAotbWFjcm8gZG9SZXR1cm5Gcm9tSmF2YVNjcmlwdChleHRyYVN0YWNrU3BhY2UpCi1f
cmV0dXJuRnJvbUphdmFTY3JpcHQ6Ci0gICAgZnVuY3Rpb25FcGlsb2d1ZShleHRyYVN0YWNrU3Bh
Y2UpCi0gICAgcmV0Ci1lbmQKIAotbWFjcm8gZG9SZXR1cm5Gcm9tSG9zdEZ1bmN0aW9uKGV4dHJh
U3RhY2tTcGFjZSkKLSAgICBmdW5jdGlvbkVwaWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKK19oYW5k
bGVVbmNhdWdodEV4Y2VwdGlvbjoKKyAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCisgICAg
YW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCisgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1Nl
dCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MworICAgIGxvYWRwIFZNOjpjYWxsRnJhbWVGb3JUaHJv
d1t0M10sIGNmcgorCisgICAgIyBTbyBmYXIsIHdlJ3ZlIHVud291bmQgdGhlIHN0YWNrIHRvIHRo
ZSBmcmFtZSBqdXN0IGJlbG93IHRoZSBzZW50aW5lbCBmcmFtZSwgZXhjZXB0CisgICAgIyBpbiB0
aGUgY2FzZSBvZiBzdGFjayBvdmVyZmxvdyBpbiB0aGUgZmlyc3QgZnVuY3Rpb24gY2FsbGVkIGZy
b20gY2FsbFRvSmF2YVNjcmlwdC4KKyAgICAjIENoZWNrIGlmIHdlIG5lZWQgdG8gcG9wIHRvIHRo
ZSBzZW50aW5lbCBmcmFtZSBhbmQgZG8gdGhlIG5lY2Vzc2FyeSBjbGVhbiB1cCBmb3IKKyAgICAj
IHJldHVybmluZyB0byB0aGUgY2FsbGVyIEMgZnJhbWUuCisgICAgYnBlcSBDb2RlQmxvY2tbY2Zy
XSwgMSwgLmhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uQWxyZWFkeUlzU2VudGluZWwKKyAgICBsb2Fk
cCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIKKy5oYW5kbGVVbmNhdWdodEV4Y2VwdGlvbkFscmVhZHlJ
c1NlbnRpbmVsOgorCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQzICMgVk0KKyAgICBsb2FkcCBT
Y29wZUNoYWluW2Nmcl0sIHQ1ICMgcHJldmlvdXMgdG9wQ2FsbEZyYW1lCisgICAgc3RvcmVwIHQ1
LCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorCisgICAgY2FsbFRvSmF2YVNjcmlwdEVwaWxvZ3VlKCkK
ICAgICByZXQKLWVuZAorCiAKIG1hY3JvIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKICAgICBsZWFw
IFtQQiwgUEMsIDhdLCBQQwpAQCAtMjQ0LDcgKzI5OCw2IEBAIGVuZAogCiBtYWNybyByZXN0b3Jl
U3RhdGVBZnRlckNDYWxsKCkKICAgICBtb3ZlIHQwLCBQQwotICAgIG1vdmUgdDEsIGNmcgogICAg
IG1vdmUgdDMsIFBCCiAgICAgc3VicCBQQiwgUEMKICAgICByc2hpZnRwIDMsIFBDCkBAIC0yNzMs
NyArMzI2LDYgQEAgbWFjcm8gY2FsbENhbGxTbG93UGF0aChzbG93UGF0aCwgYWN0aW9uKQogICAg
IHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCiAgICAgcHJlcGFyZVN0
YXRlRm9yQ0NhbGwoKQogICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKLSAgICBtb3ZlIHQx
LCBjZnIKICAgICBhY3Rpb24odDApCiBlbmQKIApAQCAtMjgxLDcgKzMzMyw2IEBAIG1hY3JvIGNh
bGxXYXRjaGRvZ1RpbWVySGFuZGxlcih0aHJvd0hhbmQKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50
Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKICAgICBj
Q2FsbDIoX2xsaW50X3Nsb3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIsIGNmciwgUEMpCi0g
ICAgbW92ZSB0MSwgY2ZyCiAgICAgYnRwbnogdDAsIHRocm93SGFuZGxlcgogICAgIG1vdmUgdDMs
IFBCCiAgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwpAQCAtMjk0
LDggKzM0NSw4IEBAIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKICAgICAgICAgICAg
IHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCiAgICAgICAgICAgICBw
cmVwYXJlU3RhdGVGb3JDQ2FsbCgpCiAgICAgICAgICAgICBjQ2FsbDIoX2xsaW50X2xvb3Bfb3Ny
LCBjZnIsIFBDKQotICAgICAgICAgICAgbW92ZSB0MSwgY2ZyCiAgICAgICAgICAgICBidHB6IHQw
LCAucmVjb3ZlcgorICAgICAgICAgICAgbW92ZSB0MSwgc3AKICAgICAgICAgICAgIGptcCB0MAog
ICAgICAgICAucmVjb3ZlcjoKICAgICAgICAgICAgIG1vdmUgdDMsIFBCCkBAIC0zODcsMTkgKzQz
OCwzNSBAQCBlbmQKICMgRW50cnlwb2ludHMgaW50byB0aGUgaW50ZXJwcmV0ZXIuCiAKICMgRXhw
ZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1ZSgpIGxl
YXZlcyBiZWhpbmQuCi1tYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93X3Bh
dGgpCittYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93UGF0aCkKICAgICBs
b2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MAogICAgIGJpYWVxIHQw
LCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVMYWJlbAogICAgIHByZXBhcmVT
dGF0ZUZvckNDYWxsKCkKLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKSAgICMgVGhpcyBz
bG93X3BhdGggaGFzIGEgc2ltcGxlIHByb3RvY29sOiB0MCA9IDAgPT4gbm8gZXJyb3IsIHQwICE9
IDAgPT4gZXJyb3IKLSAgICBidGl6IHQwLCAuaXNBcml0eUZpeHVwTmVlZGVkCisgICAgY0NhbGwy
KHNsb3dQYXRoLCBjZnIsIFBDKSAgICMgVGhpcyBzbG93UGF0aCBoYXMgdGhlIHByb3RvY29sOiB0
MCA9IDAgPT4gbm8gZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IKKyAgICBidGl6IHQwLCAubm9FcnJv
cgogICAgIG1vdmUgdDEsIGNmciAgICMgdDEgY29udGFpbnMgY2FsbGVyIGZyYW1lCiAgICAgam1w
IF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCiAKLS5pc0FyaXR5Rml4dXBO
ZWVkZWQ6Cisubm9FcnJvcjoKKyAgICAjIHQxIHBvaW50cyB0byBBcml0eUNoZWNrRGF0YS4KKyAg
ICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjp0aHVua1RvQ2FsbFt0MV0s
IHQyCisgICAgYnRweiB0MiwgLnByb2NlZWRJbmxpbmUKKyAgICAKKyAgICBsb2FkcCBDb21tb25T
bG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpyZXR1cm5QQ1t0MV0sIHQ1CisgICAgbG9hZHAgQ29t
bW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cGFkZGVkU3RhY2tTcGFjZVt0MV0sIHQwCisg
ICAgY2FsbCB0MgorICAgIGlmIEFTU0VSVF9FTkFCTEVECisgICAgICAgIGxvYWRwIFJldHVyblBD
W2Nmcl0sIHQwCisgICAgICAgIGxvYWRwIFt0MF0sIHQwCisgICAgZW5kCisgICAgam1wIC5jb250
aW51ZQorCisucHJvY2VlZElubGluZToKKyAgICBsb2FkaSBDb21tb25TbG93UGF0aHM6OkFyaXR5
Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3QxXSwgdDEKICAgICBidGl6IHQxLCAuY29udGlu
dWUKIAotICAgIC8vIE1vdmUgZnJhbWUgdXAgInQxIiBzbG90cworICAgIC8vIE1vdmUgZnJhbWUg
dXAgInQxICogMiIgc2xvdHMKKyAgICBsc2hpZnRwIDEsIHQxCiAgICAgbmVncSB0MQogICAgIG1v
dmUgY2ZyLCB0MwogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50W2Nmcl0s
IHQyCkBAIC00MjAsNiArNDg3LDcgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJl
bCwgc2xvdwogCiAgICAgbHNoaWZ0cCAzLCB0MQogICAgIGFkZHAgdDEsIGNmcgorICAgIGFkZHAg
dDEsIHNwCiAKIC5jb250aW51ZToKICAgICAjIFJlbG9hZCBDb2RlQmxvY2sgYW5kIHJlc2V0IFBD
LCBzaW5jZSB0aGUgc2xvd19wYXRoIGNsb2JiZXJlZCB0aGVtLgpAQCAtNDI5LDcgKzQ5Nyw2IEBA
IG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3cKICAgICBqbXAgZG9uZUxh
YmVsCiBlbmQKIAotCiBtYWNybyBicmFuY2hJZkV4Y2VwdGlvbihsYWJlbCkKICAgICBsb2FkcCBT
Y29wZUNoYWluW2Nmcl0sIHQzCiAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCkBAIC00NDQs
NiArNTExLDcgQEAgZW5kCiAKIF9sbGludF9vcF9lbnRlcjoKICAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4ZGVhZDAwZTEpCiAgICAgbG9h
ZHAgQ29kZUJsb2NrW2Nmcl0sIHQyICAgICAgICAgICAgICAgIC8vIHQyPENvZGVCbG9jaz4gPSBj
ZnIuQ29kZUJsb2NrCiAgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bVZhcnNbdDJdLCB0MiAgICAg
IC8vIHQyPHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1fbnVtVmFycwogICAgIGJ0aXogdDIsIC5v
cEVudGVyRG9uZQpAQCAtMTcxNywxMCArMTc4NSw5IEBAIG1hY3JvIGRvQ2FsbChzbG93UGF0aCkK
ICAgICBzdG9yZXEgdDAsIFNjb3BlQ2hhaW5bdDNdCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9u
KDMsIHQyKQogICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCi0g
ICAgc3RvcmVxIGNmciwgQ2FsbGVyRnJhbWVbdDNdCiAgICAgc3RvcmVpIHQyLCBBcmd1bWVudENv
dW50ICsgUGF5bG9hZE9mZnNldFt0M10KLSAgICBtb3ZlIHQzLCBjZnIKLSAgICBjYWxsVGFyZ2V0
RnVuY3Rpb24odDEpCisgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgdDMKKyAgICBjYWxs
VGFyZ2V0RnVuY3Rpb24odDEsIHQzKQogCiAub3BDYWxsU2xvdzoKICAgICBzbG93UGF0aEZvckNh
bGwoc2xvd1BhdGgpCkBAIC0xODQwLDYgKzE5MDcsOCBAQCBfbGxpbnRfb3BfY2F0Y2g6CiAgICAg
YW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1Nl
dCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwogICAgIGxvYWRwIFZNOjpjYWxsRnJhbWVGb3JUaHJv
d1t0M10sIGNmcgorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQorCiAgICAgbG9h
ZHAgQ29kZUJsb2NrW2Nmcl0sIFBCCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9u
c1tQQl0sIFBCCiAgICAgbG9hZHAgVk06OnRhcmdldEludGVycHJldGVyUENGb3JUaHJvd1t0M10s
IFBDCkBAIC0xODc5LDYgKzE5NDgsOCBAQCBfbGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBv
bGluZToKIAogCiBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9G
dW5jdGlvbikKKworICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQogICAgIHN0b3JlcCAwLCBDb2RlQmxv
Y2tbY2ZyXQogICAgIGlmIFg4Nl82NAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQw
CkBAIC0xODg4LDE5ICsxOTU5LDE1IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1
dGFibGVPZmYKICAgICAgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgdDAKICAgICAgICAgbG9h
ZHEgU2NvcGVDaGFpblt0MF0sIHQxCiAgICAgICAgIHN0b3JlcSB0MSwgU2NvcGVDaGFpbltjZnJd
Ci0gICAgICAgIHBlZWsgMCwgdDEKLSAgICAgICAgc3RvcmVwIHQxLCBSZXR1cm5QQ1tjZnJdCi0g
ICAgICAgIG1vdmUgY2ZyLCB0NSAgIyB0NSA9IHJkaQotICAgICAgICBzdWJwIDE2IC0gOCwgc3AK
LSAgICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQ0ICMgdDQgPSByc2kKLSAgICAgICAgbG9hZHAg
SlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Q0XSwgdDEKLSAgICAgICAgbW92ZSB0MCwgY2ZyICMg
UmVzdG9yZSBjZnIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrCisgICAgICAgIG1vdmUgY2Zy
LCB0NCAgIyB0NCA9IHJkaQorICAgICAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDUgIyB0NSA9IHJz
aQorICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDVdLCB0MQorICAgICAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKICAgICAgICAgY2Fs
bCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgYWRkcCAxNiAtIDgsIHNw
CiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICAgICAgYW5kcCBNYXJrZWRC
bG9ja01hc2ssIHQzCiAgICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFr
U2V0OjptX3ZtW3QzXSwgdDMKLSAgICBlbHNpZiBBUk02NAorICAgIGVsc2lmIEFSTTY0IG9yIENf
TE9PUAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQwCiAgICAgICAgIGFuZHAgTWFy
a2VkQmxvY2tNYXNrLCB0MAogICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsg
V2Vha1NldDo6bV92bVt0MF0sIHQwCkBAIC0xOTE0LDMwICsxOTgxLDExIEBAIG1hY3JvIG5hdGl2
ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmYKICAgICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0s
IHQxCiAgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCiAgICAg
ICAgIG1vdmUgdDIsIGNmciAjIFJlc3RvcmUgY2ZyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFj
awotICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotICAgICAgICBy
ZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKLSAgICAgICAgbG9hZHAgU2NvcGVD
aGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKLSAgICAgICAg
bG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAg
IGVsc2lmIENfTE9PUAotICAgICAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCB0MAotICAgICAg
ICBsb2FkcCBTY29wZUNoYWluW3QwXSwgdDEKLSAgICAgICAgc3RvcmVwIHQxLCBTY29wZUNoYWlu
W2Nmcl0KLQotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAg
TWFya2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0
ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxs
RnJhbWVbdDNdCi0KLSAgICAgICAgbW92ZSB0MCwgdDIKLSAgICAgICAgcHJlc2VydmVSZXR1cm5B
ZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAgICBzdG9yZXAgdDMsIFJldHVyblBDW2Nmcl0KLSAg
ICAgICAgbW92ZSBjZnIsIHQwCi0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MQotICAgICAg
ICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQotICAgICAgICBtb3ZlIHQy
LCBjZnIKLSAgICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9u
W3QxXQotCisgICAgICAgIGlmIENfTE9PUAorICAgICAgICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAgICAgICBlbHNlCisgICAgICAgICAgICBj
YWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAgICAgICBlbmQKICAgICAgICAg
cmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCiAgICAgICAgIGxvYWRwIFNjb3Bl
Q2hhaW5bY2ZyXSwgdDMKICAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCkBAIC0xOTQ2
LDE2ICsxOTk0LDE0IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmYK
ICAgICAgICAgZXJyb3IKICAgICBlbmQKIAotICAgIGJ0cW56IFZNOjptX2V4Y2VwdGlvblt0M10s
IC5leGNlcHRpb24KKyAgICBmdW5jdGlvbkVwaWxvZ3VlKCkKKworICAgIGJ0cW56IFZNOjptX2V4
Y2VwdGlvblt0M10sIC5oYW5kbGVFeGNlcHRpb24KICAgICByZXQKLS5leGNlcHRpb246Ci0gICAg
cHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQxKSAjIFRoaXMgaXMgcmVhbGx5IG9ubHkg
bmVlZGVkIG9uIFg4Nl82NAotICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2Zy
XSwgUEMKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIKLSAgICBsb2FkcCBDb2RlQmxvY2s6
Om1fdm1bUEJdLCB0MAotICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbUEJdLCBQ
QgotICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDBdCi0gICAgY2FsbFNsb3dQYXRo
KF9sbGludF90aHJvd19mcm9tX25hdGl2ZV9jYWxsKQorCisuaGFuZGxlRXhjZXB0aW9uOgorICAg
IHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCisgICAgcmVzdG9yZVN0YWNrUG9pbnRl
ckFmdGVyQ2FsbCgpCiAgICAgam1wIF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9s
aW5lCiBlbmQKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBA
IC0zOCw5ICszOCwxMiBAQCBjb25zdCBDYWxsRnJhbWVIZWFkZXJTbG90cyA9IDYKIGVsc2UKIGNv
bnN0IFB0clNpemUgPSA0CiBjb25zdCBDYWxsRnJhbWVIZWFkZXJTbG90cyA9IDUKK2NvbnN0IENh
bGxGcmFtZUFsaWduU2xvdHMgPSAxCiBlbmQKIGNvbnN0IFNsb3RTaXplID0gOAogCitjb25zdCBD
YWxsZXJGcmFtZUFuZFBDU2l6ZSA9IDIgKiBQdHJTaXplCisKIGNvbnN0IENhbGxlckZyYW1lID0g
MAogY29uc3QgUmV0dXJuUEMgPSBDYWxsZXJGcmFtZSArIFB0clNpemUKIGNvbnN0IENvZGVCbG9j
ayA9IFJldHVyblBDICsgUHRyU2l6ZQpAQCAtNzEsNiArNzQsMTYgQEAgY29uc3QgRGVsZXRlZFZh
bHVlVGFnID0gLTcKIGNvbnN0IExvd2VzdFRhZyA9IERlbGV0ZWRWYWx1ZVRhZwogZW5kCiAKK2lm
IFg4Nl82NCBvciBBUk02NCBvciBDX0xPT1AKK2NvbnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsID0gMAorZWxzaWYgQVJNIG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIEFSTXY3IG9yIFNI
NAorY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAyNAorZWxzaWYgWDg2Citj
b25zdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDQwCitlbHNpZiBNSVBTCitjb25z
dCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDQwCitlbmQKKwogIyBXYXRjaHBvaW50
IHN0YXRlcwogY29uc3QgQ2xlYXJXYXRjaHBvaW50ID0gMAogY29uc3QgSXNXYXRjaGVkID0gMQpA
QCAtODUsNyArOTgsNyBAQCBpZiBKU1ZBTFVFNjQKICAgICAjICAgdG8gQyBmdW5jdGlvbnMuCiAg
ICAgIyAtIEMgY2FsbHMgYXJlIHN0aWxsIGdpdmVuIHRoZSBJbnN0cnVjdGlvbiogcmF0aGVyIHRo
YW4gdGhlIFBDIGluZGV4LgogICAgICMgICBUaGlzIHJlcXVpcmVzIGFuIGFkZCBiZWZvcmUgdGhl
IGNhbGwsIGFuZCBhIHN1YiBhZnRlci4KLSAgICBjb25zdCBQQyA9IHQ0CisgICAgY29uc3QgUEMg
PSB0NQogICAgIGNvbnN0IFBCID0gdDYKICAgICBjb25zdCB0YWdUeXBlTnVtYmVyID0gY3NyMQog
ICAgIGNvbnN0IHRhZ01hc2sgPSBjc3IyCkBAIC0xMDMsNyArMTE2LDcgQEAgaWYgSlNWQUxVRTY0
CiAgICAgZW5kCiAKIGVsc2UKLSAgICBjb25zdCBQQyA9IHQ0CisgICAgY29uc3QgUEMgPSB0NQog
ICAgIG1hY3JvIGxvYWRpc0Zyb21JbnN0cnVjdGlvbihvZmZzZXQsIGRlc3QpCiAgICAgICAgIGxv
YWRpcyBvZmZzZXQgKiA0W1BDXSwgZGVzdAogICAgIGVuZApAQCAtMjEwLDYgKzIyMyw1MiBAQCBt
YWNybyBhc3NlcnQoYXNzZXJ0aW9uKQogICAgIGVuZAogZW5kCiAKK21hY3JvIGNoZWNrU3RhY2tQ
b2ludGVyQWxpZ25tZW50KHRlbXBSZWcsIGxvY2F0aW9uKQorICAgIGlmIEFSTTY0IG9yIENfTE9P
UAorICAgICAgICAjIEFSTTY0IHdpbGwgY2hlY2sgZm9yIHVzIQorICAgICAgICAjIENfTE9PUCBk
b2VzIG5vdCBuZWVkIHRoZSBhbGlnbm1lbnQsIGFuZCBjYW4gdXNlIGEgbGl0dGxlIHBlcmYKKyAg
ICAgICAgIyBpbXByb3ZlbWVudCBmcm9tIGF2b2lkaW5nIHVzZWxlc3Mgd29yay4KKyAgICBlbHNl
CisgICAgICAgIGlmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTAorICAgICAgICAg
ICAgIyBBUk0gY2FuJ3QgZG8gbG9naWNhbCBvcHMgd2l0aCB0aGUgc3AgYXMgYSBzb3VyY2UKKyAg
ICAgICAgICAgIG1vdmUgc3AsIHRlbXBSZWcKKyAgICAgICAgICAgIGFuZHAgMHhmLCB0ZW1wUmVn
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFuZHAgc3AsIDB4ZiwgdGVtcFJlZworICAgICAg
ICBlbmQKKyAgICAgICAgYnRweiB0ZW1wUmVnLCAuc3RhY2tQb2ludGVyT2theQorICAgICAgICBt
b3ZlIGxvY2F0aW9uLCB0ZW1wUmVnCisgICAgICAgIGJyZWFrCisgICAgLnN0YWNrUG9pbnRlck9r
YXk6CisgICAgZW5kCitlbmQKKworbWFjcm8gcHJlc2VydmVDYWxsZXJQQ0FuZENGUigpCisgICAg
aWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTIG9y
IFNINAorICAgICAgICBwdXNoIGxyCisgICAgICAgIHB1c2ggY2ZyCisgICAgZWxzaWYgWDg2IG9y
IFg4Nl82NAorICAgICAgICBwdXNoIGNmcgorICAgIGVsc2lmIEFSTTY0CisgICAgICAgIHB1c2hM
UkFuZEZQCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIG1vdmUgc3AsIGNm
cgorZW5kCisKK21hY3JvIHJlc3RvcmVDYWxsZXJQQ0FuZENGUigpCisgICAgbW92ZSBjZnIsIHNw
CisgICAgaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBN
SVBTIG9yIFNINAorICAgICAgICBwb3AgY2ZyCisgICAgICAgIHBvcCBscgorICAgIGVsc2lmIFg4
NiBvciBYODZfNjQKKyAgICAgICAgcG9wIGNmcgorICAgIGVsc2lmIEFSTTY0CisgICAgICAgIHBv
cExSQW5kRlAKKyAgICBlbmQKK2VuZAorCiBtYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRl
ckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKICAgICBpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3
IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIEFSTTY0IG9yIE1JUFMgb3IgU0g0CiAgICAgICAgICMg
SW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2VydmluZyB0aGUgYnl0ZWNvZGUgdlBDLgpA
QCAtMjMyLDMxICsyOTEsMTIyIEBAIG1hY3JvIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0
dXJuKHMKICAgICBlbmQKIGVuZAogCittYWNybyBmdW5jdGlvblByb2xvZ3VlKCkKKyAgICBpZiBY
ODYgb3IgWDg2XzY0CisgICAgICAgIHB1c2ggY2ZyCisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAg
cHVzaExSQW5kRlAKKyAgICBlbHNpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RS
QURJVElPTkFMIG9yIE1JUFMKKyAgICAgICAgcHVzaCBscgorICAgICAgICBwdXNoIGNmcgorICAg
IGVuZAorICAgIG1vdmUgc3AsIGNmcgorZW5kCisKK21hY3JvIGZ1bmN0aW9uRXBpbG9ndWUoKQor
ICAgIGlmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcG9wIGNmcgorICAgIGVsc2lmIEFSTTY0Cisg
ICAgICAgIHBvcExSQW5kRlAKKyAgICBlbHNpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFS
TXY3X1RSQURJVElPTkFMIG9yIE1JUFMKKyAgICAgICAgcG9wIGNmcgorICAgICAgICBwb3AgbHIK
KyAgICBlbmQKK2VuZAorCittYWNybyBjYWxsVG9KYXZhU2NyaXB0UHJvbG9ndWUoKQorICAgIGlm
IFg4Nl82NAorICAgICAgICBwdXNoIGNmcgorICAgICAgICBwdXNoIHQwCisgICAgZWxzaWYgWDg2
CisgICAgICAgIHB1c2ggY2ZyCisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAgcHVzaExSQW5kRlAK
KyAgICBlbHNpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9y
IE1JUFMKKyAgICAgICAgcHVzaCBscgorICAgICAgICBwdXNoIGNmcgorICAgIGVuZAorICAgIHB1
c2hDYWxsZWVTYXZlcworICAgIGlmIFg4NgorICAgICAgICBzdWJwIDEyLCBzcAorICAgIGVsc2lm
IEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTAorICAgICAgICBzdWJwIDQsIHNwCisg
ICAgICAgIG1vdmUgc3AsIHQ0CisgICAgICAgIGNscmJwIHQ0LCAweGYsIHQ1CisgICAgICAgIG1v
dmUgdDUsIHNwCisgICAgICAgIHN0b3JlcCB0NCwgW3NwXQorICAgIGVuZAorZW5kCisKK21hY3Jv
IGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisgICAgYWRkcCBDYWxsRnJhbWVIZWFkZXJTbG90
cyAqIDgsIGNmciwgc3AKKyAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIKKworICAgIGlm
IFg4NgorICAgICAgICBhZGRwIDEyLCBzcAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12
N19UUkFESVRJT05BTAorICAgICAgICBwb3AgdDQKKyAgICAgICAgbW92ZSB0NCwgc3AKKyAgICAg
ICAgYWRkcCA0LCBzcAorICAgIGVuZAorCisgICAgcG9wQ2FsbGVlU2F2ZXMKKyAgICBpZiBYODZf
NjQKKyAgICAgICAgcG9wIHQyCisgICAgICAgIHBvcCBjZnIKKyAgICBlbHNpZiBYODYKKyAgICAg
ICAgcG9wIGNmcgorICAgIGVsc2lmIEFSTTY0CisgICAgICAgIHBvcExSQW5kRlAKKyAgICBlbHNp
ZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKKyAg
ICAgICAgcG9wIGNmcgorICAgICAgICBwb3AgbHIKKyAgICBlbmQKK2VuZAorCittYWNybyBtb3Zl
U3RhY2tQb2ludGVyRm9yQ29kZUJsb2NrKGNvZGVCbG9jaywgc2NyYXRjaCkKKyAgICBsb2FkaSBD
b2RlQmxvY2s6Om1fbnVtQ2FsbGVlUmVnaXN0ZXJzW2NvZGVCbG9ja10sIHNjcmF0Y2gKKyAgICBs
c2hpZnRwIDMsIHNjcmF0Y2gKKyAgICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
LCBzY3JhdGNoCisgICAgc3VicCBjZnIsIHNjcmF0Y2gsIHNwCitlbmQKKworbWFjcm8gcmVzdG9y
ZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCisg
ICAgbW92ZVN0YWNrUG9pbnRlckZvckNvZGVCbG9jayh0MiwgdDQpCitlbmQKKwogbWFjcm8gdHJh
Y2VFeGVjdXRpb24oKQogICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCiAgICAgICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfdHJhY2UpCiAgICAgZW5kCiBlbmQKIAotbWFjcm8gY2FsbFRhcmdldEZ1bmN0
aW9uKGNhbGxMaW5rSW5mbykKK21hY3JvIGNhbGxUYXJnZXRGdW5jdGlvbihjYWxsTGlua0luZm8s
IGNhbGxlZUZyYW1lUHRyKQorICAgIG1vdmUgY2FsbGVlRnJhbWVQdHIsIHNwCiAgICAgaWYgQ19M
T09QCiAgICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rpb24gTExJbnRDYWxsTGlua0luZm86Om1hY2hp
bmVDb2RlVGFyZ2V0W2NhbGxMaW5rSW5mb10KICAgICBlbHNlCiAgICAgICAgIGNhbGwgTExJbnRD
YWxsTGlua0luZm86Om1hY2hpbmVDb2RlVGFyZ2V0W2NhbGxMaW5rSW5mb10KLSAgICAgICAgZGlz
cGF0Y2hBZnRlckNhbGwoKQogICAgIGVuZAorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNh
bGwoKQorICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKIGVuZAogCiBtYWNybyBzbG93UGF0aEZvckNh
bGwoc2xvd1BhdGgpCiAgICAgY2FsbENhbGxTbG93UGF0aCgKICAgICAgICAgc2xvd1BhdGgsCiAg
ICAgICAgIG1hY3JvIChjYWxsZWUpCisgICAgICAgICAgICBidHB6IHQxLCAuZG9udFVwZGF0ZVNQ
CisgICAgICAgICAgICBhZGRwIENhbGxlckZyYW1lQW5kUENTaXplLCB0MSwgc3AKKyAgICAgICAg
LmRvbnRVcGRhdGVTUDoKICAgICAgICAgICAgIGlmIENfTE9PUAogICAgICAgICAgICAgICAgIGNs
b29wQ2FsbEpTRnVuY3Rpb24gY2FsbGVlCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgY2FsbCBjYWxsZWUKLSAgICAgICAgICAgICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAgICAg
ICAgICAgICBlbmQKKyAgICAgICAgICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQor
ICAgICAgICAgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQogICAgICAgICBlbmQpCiBlbmQKIApAQCAt
MzI1LDI2ICs0NzUsNDggQEAgZW5kCiAjIERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQgdG8g
ZXhlY3V0ZSBjb2RlLiBTZXRzIHVwIHRoZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoKICMgaW4g
dDEuIE1heSBhbHNvIHRyaWdnZXIgcHJvbG9ndWUgZW50cnkgT1NSLgogbWFjcm8gcHJvbG9ndWUo
Y29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQ
YXRoKQotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKLSAgICAKICAgICAj
IFNldCB1cCB0aGUgY2FsbCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KLSAgICBz
dG9yZXAgdDIsIFJldHVyblBDW2Nmcl0KKyAgICBwcmVzZXJ2ZUNhbGxlclBDQW5kQ0ZSKCkKKwog
ICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCisgICAgICAgIHN1YnAgbWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwsIHNwCiAgICAgICAgIGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQorICAg
ICAgICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCBzcAogICAgIGVuZAogICAg
IGNvZGVCbG9ja0dldHRlcih0MSkKK2lmIENfTE9PUAorZWxzZQogICAgIGJhZGRpcyA1LCBDb2Rl
QmxvY2s6Om1fbGxpbnRFeGVjdXRlQ291bnRlciArIEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRl
clt0MV0sIC5jb250aW51ZQotICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykKLSAgICBt
b3ZlIHQxLCBjZnIKKyAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRo
LCBjZnIsIFBDKQorICAgIGVsc2UKKyAgICAgICAgIyBXZSBhcmUgYWZ0ZXIgdGhlIGZ1bmN0aW9u
IHByb2xvZ3VlLCBidXQgYmVmb3JlIHdlIGhhdmUgc2V0IHVwIHNwIGZyb20gdGhlIENvZGVCbG9j
ay4KKyAgICAgICAgIyBUZW1wb3JhcmlseSBhbGlnbiBzdGFjayBwb2ludGVyIGZvciB0aGlzIGNh
bGwuCisgICAgICAgIHN1YnAgOCwgc3AKKyAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIs
IFBDKQorICAgICAgICBhZGRwIDgsIHNwCisgICAgZW5kCiAgICAgYnRweiB0MCwgLnJlY292ZXIK
LSAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVm
b3JlUmV0dXJuKHQyKQorICAgIG1vdmUgY2ZyLCBzcCAjIHJlc3RvcmUgdGhlIHByZXZpb3VzIHNw
CisgICAgIyBwb3AgdGhlIGNhbGxlckZyYW1lIHNpbmNlIHdlIHdpbGwganVtcCB0byBhIGZ1bmN0
aW9uIHRoYXQgd2FudHMgdG8gc2F2ZSBpdAorICAgIGlmIEFSTTY0CisgICAgICAgIHBvcExSQW5k
RlAKKyAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUyBv
ciBTSDQKKyAgICAgICAgcG9wIGNmcgorICAgICAgICBwb3AgbHIKKyAgICBlbHNlCisgICAgICAg
IHBvcCBjZnIKKyAgICBlbmQKICAgICBqbXAgdDAKIC5yZWNvdmVyOgogICAgIGNvZGVCbG9ja0dl
dHRlcih0MSkKIC5jb250aW51ZToKK2VuZAorCiAgICAgY29kZUJsb2NrU2V0dGVyKHQxKQogICAg
IAorICAgIG1vdmVTdGFja1BvaW50ZXJGb3JDb2RlQmxvY2sodDEsIHQyKQorCiAgICAgIyBTZXQg
dXAgdGhlIFBDLgogICAgIGlmIEpTVkFMVUU2NAogICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1f
aW5zdHJ1Y3Rpb25zW3QxXSwgUEIKQEAgLTM4OSwxNCArNTYxLDE2IEBAIG1hY3JvIGZ1bmN0aW9u
SW5pdGlhbGl6YXRpb24ocHJvZmlsZUFyZ1MKICAgICAgICAgCiAgICAgIyBDaGVjayBzdGFjayBo
ZWlnaHQuCiAgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVyc1t0MV0sIHQw
Ci0gICAgYWRkaSAxLCB0MCAjIEFjY291bnQgdGhhdCBsb2NhbDAgZ29lcyBhdCBzbG90IC0xCiAg
ICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW3QxXSwgdDIKICAgICBsc2hpZnRwIDMsIHQwCisgICAg
YWRkaSBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgdDAKICAgICBzdWJwIGNmciwgdDAs
IHQwCiAgICAgYnBiZXEgVk06Om1fanNTdGFja0xpbWl0W3QyXSwgdDAsIC5zdGFja0hlaWdodE9L
CiAKICAgICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBuZWVkIHRvIGNhbGwgYSBzbG93
X3BhdGguCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zdGFja19jaGVjaykKKyAgICBicGVxIHQx
LCAwLCAuc3RhY2tIZWlnaHRPSworICAgIG1vdmUgdDEsIGNmcgogLnN0YWNrSGVpZ2h0T0s6CiBl
bmQKIApAQCAtNDIzLDI1ICs1OTcsNjkgQEAgbWFjcm8gYWxsb2NhdGVKU09iamVjdChhbGxvY2F0
b3IsIHN0cnVjdAogZW5kCiAKIG1hY3JvIGRvUmV0dXJuKCkKLSAgICBsb2FkcCBSZXR1cm5QQ1tj
ZnJdLCB0MgotICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgotICAgIHJlc3RvcmVSZXR1
cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQorICAgIHJlc3RvcmVDYWxsZXJQQ0FuZENGUigpCiAg
ICAgcmV0CiBlbmQKIAotaWYgQ19MT09QCi1lbHNlCiAjIHN0dWIgdG8gY2FsbCBpbnRvIEphdmFT
Y3JpcHQgb3IgTmF0aXZlIGZ1bmN0aW9ucwotIyBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2Ny
aXB0KHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtLCBQcm90b0NhbGxGcmFtZSogcHJvdG9GcmFt
ZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCi0jIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1
bmN0aW9uKHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtLCBQcm90b0NhbGxGcmFtZSogcHJvdG9G
cmFtZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCisjIEVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFT
Y3JpcHQodm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm1Ub3BDYWxsRnJhbWUsIFByb3RvQ2FsbEZy
YW1lKiBwcm90b0ZyYW1lKQorIyBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9OYXRpdmVGdW5jdGlvbih2
b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2bVRvcENhbGxGcmFtZSwgUHJvdG9DYWxsRnJhbWUqIHBy
b3RvRnJhbWUpCiAjIE5vdGUsIGlmIHRoZXNlIHN0dWJzIG9yIG9uZSBvZiB0aGVpciByZWxhdGVk
IG1hY3JvcyBhcmUgY2hhbmdlZCwgbWFrZSB0aGUKICMgZXF1aXZhbGVudCBjaGFuZ2VzIGluIGpp
dC9KSVRTdHVic1g4Ni5oIGFuZC9vciBqaXQvSklUU3R1YnNNU1ZDNjQuYXNtCisKK2lmIENfTE9P
UAorX2xsaW50X2NhbGxfdG9famF2YXNjcmlwdDoKK2Vsc2UKIF9jYWxsVG9KYXZhU2NyaXB0Ogot
ICAgIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlSmF2YVNjcmlwdENhbGwsIGRvUmV0dXJuRnJvbUph
dmFTY3JpcHQpCitlbmQKKyAgICBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUphdmFTY3JpcHRDYWxs
KQorCiAKK2lmIENfTE9PUAorX2xsaW50X2NhbGxfdG9fbmF0aXZlX2Z1bmN0aW9uOgorZWxzZQog
X2NhbGxUb05hdGl2ZUZ1bmN0aW9uOgotICAgIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlSG9zdEZ1
bmN0aW9uQ2FsbCwgZG9SZXR1cm5Gcm9tSG9zdEZ1bmN0aW9uKQogZW5kCisgICAgZG9DYWxsVG9K
YXZhU2NyaXB0KG1ha2VIb3N0RnVuY3Rpb25DYWxsKQorCisKK2lmIENfTE9PUAorZWxzZQorIyB2
b2lkIHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qIHZtKQorX3Nhbml0aXplU3RhY2tGb3JWTUlt
cGw6CisgICAgaWYgWDg2XzY0CisgICAgICAgIGNvbnN0IHZtID0gdDQKKyAgICAgICAgY29uc3Qg
YWRkcmVzcyA9IHQxCisgICAgICAgIGNvbnN0IHplcm9WYWx1ZSA9IHQwCisgICAgZWxzaWYgWDg2
CisgICAgICAgIGNvbnN0IHZtID0gdDIKKyAgICAgICAgY29uc3QgYWRkcmVzcyA9IHQxCisgICAg
ICAgIGNvbnN0IHplcm9WYWx1ZSA9IHQwCisgICAgZWxzZQorICAgICAgICBjb25zdCB2bSA9IGEw
CisgICAgICAgIGNvbnN0IGFkZHJlc3MgPSB0MQorICAgICAgICBjb25zdCB6ZXJvVmFsdWUgPSB0
MgorICAgIGVuZAorCisgICAgaWYgWDg2CisgICAgICAgIGxvYWRwIDRbc3BdLCB2bQorICAgIGVu
ZAorCisgICAgbG9hZHAgVk06Om1fbGFzdFN0YWNrVG9wW3ZtXSwgYWRkcmVzcworICAgIGJwYmVx
IHNwLCBhZGRyZXNzLCAuemVyb0ZpbGxEb25lCisKKyAgICBtb3ZlIDAsIHplcm9WYWx1ZQorLnpl
cm9GaWxsTG9vcDoKKyAgICBzdG9yZXAgemVyb1ZhbHVlLCBbYWRkcmVzc10KKyAgICBhZGRwIFB0
clNpemUsIGFkZHJlc3MKKyAgICBicGEgc3AsIGFkZHJlc3MsIC56ZXJvRmlsbExvb3AKKworLnpl
cm9GaWxsRG9uZToKKyAgICBtb3ZlIHNwLCBhZGRyZXNzCisgICAgc3RvcmVwIGFkZHJlc3MsIFZN
OjptX2xhc3RTdGFja1RvcFt2bV0KKyAgICByZXQKK2VuZAorCiAKICMgSW5kaWNhdGUgdGhlIGJl
Z2lubmluZyBvZiBMTEludC4KIF9sbGludF9iZWdpbjoKQEAgLTczMSw4ICs5NDksMTUgQEAgX2xs
aW50X29wX2NvbnN0cnVjdDoKIAogX2xsaW50X29wX2NhbGxfdmFyYXJnczoKICAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfc2l6ZV9hbmRfYWxs
b2NfZnJhbWVfZm9yX3ZhcmFyZ3MpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
c2l6ZV9mcmFtZV9mb3JfdmFyYXJncykKICAgICBicmFuY2hJZkV4Y2VwdGlvbihfbGxpbnRfdGhy
b3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZSkKKyAgICAjIGNhbGxlZUZyYW1lIGluIHQxCisg
ICAgaWYgSlNWQUxVRTY0CisgICAgICAgIG1vdmUgdDEsIHNwCisgICAgZWxzZQorICAgICAgICAj
IFRoZSBjYWxsZWVGcmFtZSBpcyBub3Qgc3RhY2sgYWxpZ25lZCwgbW92ZSBkb3duIGJ5IENhbGxl
ckZyYW1lQW5kUENTaXplIHRvIGFsaWduCisgICAgICAgIHN1YnAgdDEsIENhbGxlckZyYW1lQW5k
UENTaXplLCBzcAorICAgIGVuZAogICAgIHNsb3dQYXRoRm9yQ2FsbChfbGxpbnRfc2xvd19wYXRo
X2NhbGxfdmFyYXJncykKIAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTkwLDYgKzkwLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6OkxMSW50OwogI2RlZmlu
ZSBPRkZMSU5FX0FTTV9CRUdJTgogI2RlZmluZSBPRkZMSU5FX0FTTV9FTkQKIAorI2lmIEVOQUJM
RShPUENPREVfVFJBQ0lORykKKyNkZWZpbmUgVFJBQ0VfT1BDT0RFKG9wY29kZSkgZGF0YUxvZ0Yo
IiAgIG9wICVzXG4iLCAjb3Bjb2RlKQorI2Vsc2UKKyNkZWZpbmUgVFJBQ0VfT1BDT0RFKG9wY29k
ZSkKKyNlbmRpZgorCiAvLyBUbyBrZWVwIGNvbXBpbGVycyBoYXBweSBpbiBjYXNlIG9mIHVudXNl
ZCBsYWJlbHMsIGZvcmNlIHVzYWdlIG9mIHRoZSBsYWJlbDoKICNkZWZpbmUgVVNFX0xBQkVMKGxh
YmVsKSBcCiAgICAgZG8geyBcCkBAIC05Nyw3ICsxMDMsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OjpMTEludDsKICAgICAgICAgICAgIGdvdG8gbGFiZWw7IFwKICAgICB9IHdoaWxlIChmYWxzZSkK
IAotI2RlZmluZSBPRkZMSU5FX0FTTV9PUENPREVfTEFCRUwob3Bjb2RlKSBERUZJTkVfT1BDT0RF
KG9wY29kZSkgVVNFX0xBQkVMKG9wY29kZSk7CisjZGVmaW5lIE9GRkxJTkVfQVNNX09QQ09ERV9M
QUJFTChvcGNvZGUpIERFRklORV9PUENPREUob3Bjb2RlKSBVU0VfTEFCRUwob3Bjb2RlKTsgVFJB
Q0VfT1BDT0RFKG9wY29kZSk7CiAKICNpZiBFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQog
I2RlZmluZSBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKGxhYmVsKSAgbGFiZWw6IFVTRV9MQUJFTChs
YWJlbCk7CkBAIC0yMTIsMTAgKzIxOCwxNCBAQCBzdHJ1Y3QgQ0xvb3BSZWdpc3RlciB7CiAjZW5k
aWYgLy8gIUNQVShCSUdfRU5ESUFOKQogI2VuZGlmIC8vICFVU0UoSlNWQUxVRTY0KQogCisgICAg
ICAgIGludHB0cl90KiBpcDsKICAgICAgICAgaW50OF90KiBpOHA7CiAgICAgICAgIHZvaWQqIHZw
OworICAgICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZTsKICAgICAgICAgRXhlY1N0YXRlKiBleGVj
U3RhdGU7CiAgICAgICAgIHZvaWQqIGluc3RydWN0aW9uOworICAgICAgICBWTSogdm07CisgICAg
ICAgIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZTsKICAgICAgICAgTmF0aXZlRnVuY3Rp
b24gbmF0aXZlRnVuYzsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBpbnQ2NF90IGk2NDsK
QEAgLTIyNiw2ICsyMzYsMTIgQEAgc3RydWN0IENMb29wUmVnaXN0ZXIgewogICAgICAgICBPcGNv
ZGUgb3Bjb2RlOwogICAgIH07CiAKKyAgICBvcGVyYXRvciBFeGVjU3RhdGUqKCkgeyByZXR1cm4g
ZXhlY1N0YXRlOyB9CisgICAgb3BlcmF0b3IgSW5zdHJ1Y3Rpb24qKCkgeyByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxJbnN0cnVjdGlvbio+KGluc3RydWN0aW9uKTsgfQorICAgIG9wZXJhdG9yIFZN
KigpIHsgcmV0dXJuIHZtOyB9CisgICAgb3BlcmF0b3IgUHJvdG9DYWxsRnJhbWUqKCkgeyByZXR1
cm4gcHJvdG9DYWxsRnJhbWU7IH0KKyAgICBvcGVyYXRvciBSZWdpc3RlciooKSB7IHJldHVybiBy
ZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4odnApOyB9CisKICNpZiBVU0UoSlNWQUxVRTY0KQog
ICAgIGlubGluZSB2b2lkIGNsZWFySGlnaFdvcmQoKSB7IGkzMnBhZGRpbmcgPSAwOyB9CiAjZWxz
ZQpAQCAtMjM3LDcgKzI1Myw3IEBAIHN0cnVjdCBDTG9vcFJlZ2lzdGVyIHsKIC8vIFRoZSBsbGlu
dCBDKysgaW50ZXJwcmV0ZXIgbG9vcDoKIC8vCiAKLUpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIE9wY29kZSBlbnRyeU9wY29kZSwgYm9vbCBpc0luaXRpYWxpemF0
aW9uUGFzcykKK0pTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoT3Bjb2RlSUQgZW50cnlPcGNvZGVJRCwg
dm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZNKiB2bSwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2Fs
bEZyYW1lLCBib29sIGlzSW5pdGlhbGl6YXRpb25QYXNzKQogewogICAgICNkZWZpbmUgQ0FTVCBy
ZWludGVycHJldF9jYXN0CiAgICAgI2RlZmluZSBTSUdOX0JJVDMyKHgpICgoeCkgJiAweDgwMDAw
MDAwKQpAQCAtMjcyLDggKzI4OCw2IEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZyYW1l
KiBjYWxsRnIKICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICB9CiAKLSAgICBBU1NFUlQo
Y2FsbEZyYW1lLT52bSgpLnRvcENhbGxGcmFtZSA9PSBjYWxsRnJhbWUpOwotCiAgICAgLy8gRGVm
aW5lIHRoZSBwc2V1ZG8gcmVnaXN0ZXJzIHVzZWQgYnkgdGhlIExMSU5UIEMgTG9vcCBiYWNrZW5k
OgogICAgIEFTU0VSVChzaXplb2YoQ0xvb3BSZWdpc3RlcikgPT0gc2l6ZW9mKGludHB0cl90KSk7
CiAKQEAgLTMwOCw2OSArMzIyLDY2IEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZyYW1l
KiBjYWxsRnIKICAgICAvLyAyLiAzMiBiaXQgcmVzdWx0IHZhbHVlcyB3aWxsIGJlIGluIHRoZSBs
b3cgMzItYml0IG9mIHQwLgogICAgIC8vIDMuIDY0IGJpdCByZXN1bHQgdmFsdWVzIHdpbGwgYmUg
aW4gdDAuCiAKLSAgICBDTG9vcFJlZ2lzdGVyIHQwLCB0MSwgdDIsIHQzOworICAgIENMb29wUmVn
aXN0ZXIgdDAsIHQxLCB0MiwgdDMsIHQ1LCBzcCwgY2ZyLCBsciwgcGM7CiAjaWYgVVNFKEpTVkFM
VUU2NCkKLSAgICBDTG9vcFJlZ2lzdGVyIHJCYXNlUEMsIHRhZ1R5cGVOdW1iZXIsIHRhZ01hc2s7
CisgICAgQ0xvb3BSZWdpc3RlciBwY0Jhc2UsIHRhZ1R5cGVOdW1iZXIsIHRhZ01hc2s7CiAjZW5k
aWYKLSAgICBDTG9vcFJlZ2lzdGVyIHJSZXRWUEM7CiAgICAgQ0xvb3BEb3VibGVSZWdpc3RlciBk
MCwgZDE7CiAKLSAgICAvLyBLZWVwIHRoZSBjb21waWxlciBoYXBweS4gV2UgZG9uJ3QgcmVhbGx5
IG5lZWQgdGhpcywgYnV0IHRoZSBjb21waWxlcgotICAgIC8vIHdpbGwgY29tcGxhaW4uIFRoaXMg
bWFrZXMgdGhlIHdhcm5pbmcgZ28gYXdheS4KLSAgICB0MC5pID0gMDsKLSAgICB0MS5pID0gMDsK
LQotICAgIFZNKiB2bSA9ICZjYWxsRnJhbWUtPnZtKCk7Ci0KLSAgICBDb2RlQmxvY2sqIGNvZGVC
bG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7Ci0gICAgSW5zdHJ1Y3Rpb24qIHZQQzsKLQot
ICAgIC8vIHJQQyBpcyBhbiBhbGlhcyBmb3IgdlBDLiBTZXQgdXAgdGhlIGFsaWFzOgotICAgIENM
b29wUmVnaXN0ZXImIHJQQyA9ICpDQVNUPENMb29wUmVnaXN0ZXIqPigmdlBDKTsKKyAgICBsci5v
cGNvZGUgPSBnZXRPcGNvZGUobGxpbnRfcmV0dXJuX3RvX2hvc3QpOworICAgIHNwLnZwID0gdm0t
PmludGVycHJldGVyLT5zdGFjaygpLnRvcE9mU3RhY2soKSArIDE7CisgICAgY2ZyLmNhbGxGcmFt
ZSA9IHZtLT50b3BDYWxsRnJhbWU7CisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQqIHN0YXJ0U1Ag
PSBzcC52cDsKKyAgICBDYWxsRnJhbWUqIHN0YXJ0Q0ZSID0gY2ZyLmNhbGxGcmFtZTsKKyNlbmRp
ZgogCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICB2UEMgPSBjb2RlQmxvY2stPmluc3RydWN0
aW9ucygpLmJlZ2luKCk7Ci0jZWxzZSAvLyBVU0UoSlNWQUxVRTY0KQotICAgIHZQQyA9IDA7Ci0g
ICAgckJhc2VQQy52cCA9IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKKyAgICAv
LyBJbml0aWFsaXplIHRoZSBpbmNvbWluZyBhcmdzIGZvciBkb0NhbGxUb0phdmFTY3JpcHQ6Cisg
ICAgdDAudnAgPSBleGVjdXRhYmxlQWRkcmVzczsKKyAgICB0MS52bSA9IHZtOworICAgIHQyLnBy
b3RvQ2FsbEZyYW1lID0gcHJvdG9DYWxsRnJhbWU7CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAg
IC8vIEZvciB0aGUgQVNNIGxsaW50LCBKSVRTdHVicyB0YWtlcyBjYXJlIG9mIHRoaXMgaW5pdGlh
bGl6YXRpb24uIFdlIGRvCiAgICAgLy8gaXQgZXhwbGljaXRseSBoZXJlIGZvciB0aGUgQyBsb29w
OgogICAgIHRhZ1R5cGVOdW1iZXIuaSA9IDB4RkZGRjAwMDAwMDAwMDAwMDsKICAgICB0YWdNYXNr
LmkgPSAweEZGRkYwMDAwMDAwMDAwMDI7CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIAotICAg
IC8vIGNmciBpcyBhbiBhbGlhcyBmb3IgY2FsbEZyYW1lLiBTZXQgdXAgdGhpcyBhbGlhczoKLSAg
ICBDTG9vcFJlZ2lzdGVyJiBjZnIgPSAqQ0FTVDxDTG9vcFJlZ2lzdGVyKj4oJmNhbGxGcmFtZSk7
Ci0KLSAgICAvLyBTaW11bGF0ZSBhIG5hdGl2ZSByZXR1cm4gUEMgd2hpY2ggc2hvdWxkIG5ldmVy
IGJlIHVzZWQ6Ci0gICAgclJldFZQQy5pID0gMHhiYmFkYmVlZjsKLQogICAgIC8vIEludGVycHJl
dGVyIHZhcmlhYmxlcyBmb3IgdmFsdWUgcGFzc2luZyBiZXR3ZWVuIG9wY29kZXMgYW5kL29yIGhl
bHBlcnM6CiAgICAgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuYyA9IDA7CiAgICAgSlNWYWx1ZSBm
dW5jdGlvblJldHVyblZhbHVlOwotICAgIE9wY29kZSBvcGNvZGU7CisgICAgT3Bjb2RlIG9wY29k
ZSA9IGdldE9wY29kZShlbnRyeU9wY29kZUlEKTsKIAotICAgIG9wY29kZSA9IGVudHJ5T3Bjb2Rl
OworI2RlZmluZSBQVVNIKGNsb29wUmVnKSBcCisgICAgZG8geyBcCisgICAgICAgIHNwLmlwLS07
IFwKKyAgICAgICAgKnNwLmlwID0gY2xvb3BSZWcuaTsgXAorICAgIH0gd2hpbGUgKGZhbHNlKQor
CisjZGVmaW5lIFBPUChjbG9vcFJlZykgXAorICAgIGRvIHsgXAorICAgICAgICBjbG9vcFJlZy5p
ID0gKnNwLmlwOyBcCisgICAgICAgIHNwLmlwKys7IFwKKyAgICB9IHdoaWxlIChmYWxzZSkKKwor
I2lmIEVOQUJMRShPUENPREVfU1RBVFMpCisjZGVmaW5lIFJFQ09SRF9PUENPREVfU1RBVFMoX19v
cGNvZGUpIE9wY29kZVN0YXRzOjpyZWNvcmRJbnN0cnVjdGlvbihfX29wY29kZSkKKyNlbHNlCisj
ZGVmaW5lIFJFQ09SRF9PUENPREVfU1RBVFMoX19vcGNvZGUpCisjZW5kaWYKIAotICAgICNpZiBF
TkFCTEUoT1BDT0RFX1NUQVRTKQotICAgICAgICAjZGVmaW5lIFJFQ09SRF9PUENPREVfU1RBVFMo
X19vcGNvZGUpIFwKLSAgICAgICAgICAgIE9wY29kZVN0YXRzOjpyZWNvcmRJbnN0cnVjdGlvbihf
X29wY29kZSkKLSAgICAjZWxzZQotICAgICAgICAjZGVmaW5lIFJFQ09SRF9PUENPREVfU1RBVFMo
X19vcGNvZGUpCi0gICAgI2VuZGlmCi0KLSAgICAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAg
ICAgI2RlZmluZSBGRVRDSF9PUENPREUoKSB2UEMtPnUub3Bjb2RlCi0gICAgI2Vsc2UgLy8gVVNF
KEpTVkFMVUU2NCkKLSAgICAgICAgI2RlZmluZSBGRVRDSF9PUENPREUoKSAqYml0d2lzZV9jYXN0
PE9wY29kZSo+KHJCYXNlUEMuaThwICsgclBDLmkgKiA4KQotICAgICNlbmRpZiAvLyBVU0UoSlNW
QUxVRTY0KQotCi0gICAgI2RlZmluZSBORVhUX0lOU1RSVUNUSU9OKCkgXAotICAgICAgICBkbyB7
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIG9wY29kZSA9IEZFVENIX09Q
Q09ERSgpOyBcCi0gICAgICAgICAgICBESVNQQVRDSF9PUENPREUoKTsgICAgICAgXAotICAgICAg
ICB9IHdoaWxlIChmYWxzZSkKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2RlZmluZSBGRVRDSF9P
UENPREUoKSBwYy5vcGNvZGUKKyNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpCisjZGVmaW5lIEZFVENI
X09QQ09ERSgpICpiaXR3aXNlX2Nhc3Q8T3Bjb2RlKj4ocGNCYXNlLmk4cCArIHBjLmkgKiA4KQor
I2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCisKKyNkZWZpbmUgTkVYVF9JTlNUUlVDVElPTigpIFwK
KyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgb3Bjb2RlID0gRkVU
Q0hfT1BDT0RFKCk7IFwKKyAgICAgICAgRElTUEFUQ0hfT1BDT0RFKCk7ICAgICAgIFwKKyAgICB9
IHdoaWxlIChmYWxzZSkKIAogI2lmIEVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAKQEAg
LTQxMiwxNCArNDIzLDIyIEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxs
RnIKIAogICAgICAgICAjaW5jbHVkZSAiTExJbnRBc3NlbWJseS5oIgogCisgICAgICAgIE9GRkxJ
TkVfQVNNX0dMVUVfTEFCRUwobGxpbnRfcmV0dXJuX3RvX2hvc3QpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIEFTU0VSVChzdGFydFNQID09IHNwLnZwKTsKKyAgICAgICAgICAgIEFTU0VSVChzdGFy
dENGUiA9PSBjZnIuY2FsbEZyYW1lKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWUodDEuaSwgdDAuaSk7IC8vIHJldHVybmluZyBKU1ZhbHVlKHRhZywg
cGF5bG9hZCk7CisjZWxzZQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh0MC5l
bmNvZGVkSlNWYWx1ZSk7CisjZW5kaWYKKyAgICAgICAgfQorCiAgICAgICAgIC8vIEluIHRoZSBB
U00gbGxpbnQsIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUoKSBpcyBhIHBpZWNlIG9mIGdsdWUKLSAg
ICAgICAgLy8gZnVuY3Rpb24gcHJvdmlkZWQgYnkgdGhlIEpJVCAoc2VlIGRmZy9ERkdPcGVyYXRp
b25zLmNwcCkuCisgICAgICAgIC8vIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5IHRoZSBKSVQgKHNlZSBq
aXQvSklUT3BlcmF0aW9ucy5jcHApLgogICAgICAgICAvLyBXZSBzaW11bGF0ZSBpdCBoZXJlIHdp
dGggYSBwc2VkdW8tb3Bjb2RlIGhhbmRsZXIuCiAgICAgICAgIE9GRkxJTkVfQVNNX0dMVUVfTEFC
RUwoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkKICAgICAgICAgewotICAgICAgICAgICAgLy8gVGhl
IEFTTSBwYXJ0IHBvcHMgdGhlIGZyYW1lOgotICAgICAgICAgICAgY2FsbEZyYW1lID0gY2FsbEZy
YW1lLT5jYWxsZXJGcmFtZSgpOwotCiAgICAgICAgICAgICAvLyBUaGUgcGFydCBpbiBnZXRIb3N0
Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSgpOgogICAgICAgICAgICAgSlNWYWx1ZSByZXN1
bHQgPSB2bS0+aG9zdENhbGxSZXR1cm5WYWx1ZTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpAQCAt
NDI4LDEyICs0NDcsOCBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZy
CiAjZWxzZQogICAgICAgICAgICAgdDAuZW5jb2RlZEpTVmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKICNlbmRpZgotICAgICAgICAgICAgZ290byBkb1JldHVybkhlbHBlcjsKLSAgICAg
ICAgfQotCi0gICAgICAgIE9GRkxJTkVfQVNNX0dMVUVfTEFCRUwocmV0dXJuRnJvbUphdmFTY3Jp
cHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB2bS0+ZXhjZXB0aW9uKCk7CisgICAg
ICAgICAgICBvcGNvZGUgPSBsci5vcGNvZGU7CisgICAgICAgICAgICBESVNQQVRDSF9PUENPREUo
KTsKICAgICAgICAgfQogCiAjaWYgIUVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCkBAIC00
NDMsNTUgKzQ1OCw2IEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnIK
IAogICAgIH0gLy8gRU5EIGJ5dGVjb2RlIGhhbmRsZXIgY2FzZXMuCiAKLSAgICAvLz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotICAgIC8vIEJ5dGVjb2RlIGhlbHBlcnM6Ci0KLSAgICBkb1JldHVybkhlbHBlcjog
ewotICAgICAgICBBU1NFUlQoISFjYWxsRnJhbWUpOwotICAgICAgICBpZiAoY2FsbEZyYW1lLT5p
c1ZNRW50cnlTZW50aW5lbCgpKSB7Ci0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlKHQxLmksIHQwLmkpOyAvLyByZXR1cm5pbmcgSlNWYWx1ZSh0YWcsIHBh
eWxvYWQpOwotI2Vsc2UKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodDAuZW5j
b2RlZEpTVmFsdWUpOwotI2VuZGlmCi0gICAgICAgIH0KLQotICAgICAgICAvLyBUaGUgbm9ybWFs
IEFTTSBsbGludCBjYWxsIGltcGxlbWVudGF0aW9uIHJldHVybnMgdG8gdGhlIGNhbGxlciBhcwot
ICAgICAgICAvLyByZWNvcmRlZCBpbiByUmV0VlBDLCBhbmQgdGhlIGNhbGxlciB3b3VsZCBmZXRj
aCB0aGUgcmV0dXJuIGFkZHJlc3MKLSAgICAgICAgLy8gZnJvbSBBcmd1bWVudENvdW50LnRhZygp
IChzZWUgdGhlIGRpc3BhdGNoQWZ0ZXJDYWxsKCkgbWFjcm8gdXNlZCBpbgotICAgICAgICAvLyB0
aGUgY2FsbFRhcmdldEZ1bmN0aW9uKCkgbWFjcm8gaW4gdGhlIGxsaW50IGFzbSBmaWxlcykuCi0g
ICAgICAgIC8vCi0gICAgICAgIC8vIEZvciB0aGUgQyBsb29wLCB3ZSBkb24ndCBoYXZlIHRoZSBK
SVQgc3R1YiB0byBkbyB0aGlzIHdvcmsgZm9yIHVzLiBTbywKLSAgICAgICAgLy8gd2UganVtcCB0
byBsbGludF9nZW5lcmljX3JldHVybl9wb2ludC4KLQotICAgICAgICB2UEMgPSBjYWxsRnJhbWUt
PmN1cnJlbnRWUEMoKTsKLQotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIC8vIEJhc2VkIG9u
IExvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20ncyBkaXNwYXRjaEFmdGVyQ2FsbCgpOgotCi0gICAg
ICAgIC8vIFdoZW4gcmV0dXJuaW5nIGZyb20gYSBuYXRpdmUgdHJhbXBvbGluZSBjYWxsLCB1bmxp
a2UgdGhlIGFzc2VtYmx5Ci0gICAgICAgIC8vIExMSW50LCB3ZSBjYW4ndCBzaW1wbHkgcmV0dXJu
IHRvIHRoZSBjYWxsZXIuIEluIG91ciBjYXNlLCB3ZSBncmFiCi0gICAgICAgIC8vIHRoZSBjYWxs
ZXIncyBWUEMgYW5kIHJlc3VtZSBleGVjdXRpb24gdGhlcmUuIEhvd2V2ZXIsIHRoZSBjYWxsZXIn
cwotICAgICAgICAvLyBWUEMgcmV0dXJuZWQgYnkgY2FsbEZyYW1lLT5jdXJyZW50VlBDKCkgaXMg
aW4gdGhlIGZvcm0gb2YgdGhlIHJlYWwKLSAgICAgICAgLy8gYWRkcmVzcyBvZiB0aGUgdGFyZ2V0
IGJ5dGVjb2RlLCBidXQgdGhlIDY0LWJpdCBsbGludCBleHBlY3RzIHRoZQotICAgICAgICAvLyBW
UEMgdG8gYmUgYSBieXRlY29kZSBvZmZzZXQuIEhlbmNlLCB3ZSBuZWVkIHRvIG1hcCBpdCBiYWNr
IHRvIGEKLSAgICAgICAgLy8gYnl0ZWNvZGUgb2Zmc2V0IGJlZm9yZSB3ZSBkaXNwYXRjaCB2aWEg
dGhlIHVzdWFsIGRpc3BhdGNoIG1lY2hhbmlzbQotICAgICAgICAvLyBpLmUuIE5FWFRfSU5TVFJV
Q1RJT04oKToKLQotICAgICAgICBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwot
ICAgICAgICBBU1NFUlQoY29kZUJsb2NrKTsKLSAgICAgICAgclBDLnZwID0gY2FsbEZyYW1lLT5j
dXJyZW50VlBDKCk7Ci0gICAgICAgIHJQQy5pID0gclBDLmk4cCAtIHJlaW50ZXJwcmV0X2Nhc3Q8
aW50OF90Kj4oY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKTsKLSAgICAgICAgclBD
LmkgPj49IDM7Ci0KLSAgICAgICAgckJhc2VQQy52cCA9IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25z
KCkuYmVnaW4oKTsKLSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQotCi0gICAgICAgIGdvdG8gbGxp
bnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQ7Ci0KLSAgICB9IC8vIEVORCBkb1JldHVybkhlbHBlci4K
LQotCiAjaWYgRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKICAgICAvLyBLZWVwIHRoZSBj
b21waWxlciBoYXBweSBzbyB0aGF0IGl0IGRvZXNuJ3QgY29tcGxhaW4gYWJvdXQgdW51c2VkCiAg
ICAgLy8gbGFiZWxzIGZvciB0aGUgTExJbnQgdHJhbXBvbGluZSBnbHVlLiBUaGUgbGFiZWxzIGFy
ZSBhdXRvbWF0aWNhbGx5CkBAIC01MjMsMTIgKzQ4OSwxMiBAQCBKU1ZhbHVlIENMb29wOjpleGVj
dXRlKENhbGxGcmFtZSogY2FsbEZyCiAKIC8vIFRoZXNlIGFyZSBmb3IgYnVpbGRpbmcgYW4gaW50
ZXJwcmV0ZXIgZnJvbSBnZW5lcmF0ZWQgYXNzZW1ibHkgY29kZToKICNpZiBDUFUoWDg2XzY0KSAm
JiBDT01QSUxFUihDTEFORykKLSNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4gICBhc20gKCBcCisj
ZGVmaW5lIE9GRkxJTkVfQVNNX0JFR0lOICAgYXNtICggICAgICAgICAgICAgICAgXAogICAgICIu
Y2ZpX3N0YXJ0cHJvY1xuIgogCi0jZGVmaW5lIE9GRkxJTkVfQVNNX0VORCAgICAgXAotICAgICIu
Y2ZpX2VuZHByb2NcbiIgXAotKTsKKyNkZWZpbmUgT0ZGTElORV9BU01fRU5EICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgIi5jZmlfZW5kcHJvY1xuIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAjZWxzZQogI2RlZmlu
ZSBPRkZMSU5FX0FTTV9CRUdJTiAgIGFzbSAoCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0VORCAgICAg
KTsKQEAgLTU1MSw5ICs1MTcsOSBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFtZSog
Y2FsbEZyCiAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcobGFiZWwpICJcbiIgICAgICAgICBc
CiAgICAgSElERV9TWU1CT0wobGFiZWwpICJcbiIgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
U1lNQk9MX1NUUklORyhsYWJlbCkgIjpcbiIgICAgICAgICAgICAgICAgICBcCi0gICAgIi5jZmlf
ZGVmX2NmYSByYnAsIDBcbiIgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIi5jZmlfb2Zmc2V0
IDE2LCA4XG4iICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIi5jZmlfb2Zmc2V0IDYsIDBc
biIKKyAgICAiLmNmaV9kZWZfY2ZhX29mZnNldCAxNlxuIiAgICAgICAgICAgICAgICAgIFwKKyAg
ICAiLmNmaV9vZmZzZXQgJXJicCwgLTE2XG4iICAgICAgICAgICAgICAgICAgIFwKKyAgICAiLmNm
aV9kZWZfY2ZhX3JlZ2lzdGVyIHJicFxuIgogI2Vsc2UKICNkZWZpbmUgT0ZGTElORV9BU01fR0xP
QkFMX0xBQkVMKGxhYmVsKSAgICAgICAgIFwKICAgICAiLnRleHRcbiIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbHZtL2xp
YnJhcnkvTExWTUV4cG9ydHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbHZtL2xpYnJhcnkvTExWTUV4cG9ydHMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDIsNiArNDIsMTAgQEAgZXh0ZXJuICJDIiBKU0M6OkxMVk1BUEkqIGluaXRpYWxp
emVBbmRHZQogICAgIGdfbGx2bVRyYXBDYWxsYmFjayA9IGNhbGxiYWNrOwogICAgIAogICAgIExM
Vk1JbnN0YWxsRmF0YWxFcnJvckhhbmRsZXIobGx2bUNyYXNoKTsKKworICAgIGlmICghTExWTVN0
YXJ0TXVsdGl0aHJlYWRlZCgpKQorICAgICAgICBjYWxsYmFjaygiQ291bGQgbm90IHN0YXJ0IExM
Vk0gbXVsdGl0aHJlYWRpbmciKTsKKyAgICAKICAgICBMTFZNTGlua0luTUNKSVQoKTsKICAgICBM
TFZNSW5pdGlhbGl6ZU5hdGl2ZVRhcmdldCgpOwogICAgIExMVk1Jbml0aWFsaXplWDg2QXNtUHJp
bnRlcigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIJ
KHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Fy
bTY0LnJiCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNCArNDAsMTQgQEAgcmVxdWlyZSAicmlzYyIK
ICMgIHgxICA9PiB0MSwgYTEsIHIxCiAjICB4MiAgPT4gdDIsIGEyCiAjICB4MyAgPT4gYTMKKyMg
IHg1ICA9PiB0NQorIyAgeDYgID0+IHQ2CiAjICB4OSAgPT4gKG5vbkFyZ0dQUjEgaW4gYmFzZWxp
bmUpCi0jIHgxMCAgPT4gdDQgKHVudXNlZCBpbiBiYXNlbGluZSkKLSMgeDExICA9PiB0NSAodW51
c2VkIGluIGJhc2VsaW5lKQotIyB4MTIgID0+IHQ2ICh1bnVzZWQgaW4gYmFzZWxpbmUpCiAjIHgx
MyAgPT4gc2NyYXRjaCAodW51c2VkIGluIGJhc2VsaW5lKQogIyB4MTYgID0+IHNjcmF0Y2gKICMg
eDE3ICA9PiBzY3JhdGNoCiAjIHgyMyAgPT4gdDMKKyMgeDI0ICA9PiB0NAogIyB4MjcgID0+IGNz
cjEgKHRhZ1R5cGVOdW1iZXIpCiAjIHgyOCAgPT4gY3NyMiAodGFnTWFzaykKICMgeDI5ICA9PiBj
ZnIKQEAgLTExMywxMSArMTEzLDExIEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgd2hlbiAn
dDMnCiAgICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gyMycsIGtpbmQpCiAgICAgICAgIHdoZW4g
J3Q0JwotICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4MTAnLCBraW5kKQorICAgICAgICAgICAg
YXJtNjRHUFJOYW1lKCd4MjQnLCBraW5kKQogICAgICAgICB3aGVuICd0NScKLSAgICAgICAgICAg
IGFybTY0R1BSTmFtZSgneDExJywga2luZCkKKyAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDUn
LCBraW5kKQogICAgICAgICB3aGVuICd0NicKLSAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDEy
Jywga2luZCkKKyAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDYnLCBraW5kKQogICAgICAgICB3
aGVuICdjZnInCiAgICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gyOScsIGtpbmQpCiAgICAgICAg
IHdoZW4gJ2NzcjEnCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0u
cmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJi
CShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
cm0ucmIJKHdvcmtpbmcgY29weSkKQEAgLTYwMSw2ICs2MDEsOCBAQCBjbGFzcyBJbnN0cnVjdGlv
bgogICAgICAgICAgICAgJGFzbS5wdXRzICJzbXVsbCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAgICAgICB3aGVuICJtZW1mZW5jZSIKICAgICAg
ICAgICAgICRhc20ucHV0cyAiZG1iIHN5IgorICAgICAgICB3aGVuICJjbHJicCIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiYmljICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIGxvd2VyRGVmYXVsdAogICAgICAgICBlbmQKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Nsb29wLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Nsb29wLnJiCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgkod29ya2luZyBjb3B5KQpAQCAt
MSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjgsMzQgKzY4LDIy
IEBAIENfTE9PUF9TQ1JBVENIX0ZQUiA9IFNwZWNpYWxSZWdpc3Rlci5uZXcKIGNsYXNzIFJlZ2lz
dGVySUQKICAgICBkZWYgY2xEdW1wCiAgICAgICAgIGNhc2UgbmFtZQotICAgICAgICB3aGVuICJh
MCIKLSAgICAgICAgICAgICJhMCIKLSAgICAgICAgd2hlbiAiYTEiCi0gICAgICAgICAgICAiYTEi
Ci0gICAgICAgIHdoZW4gImEyIgotICAgICAgICAgICAgImEyIgotICAgICAgICB3aGVuICJhMyIK
LSAgICAgICAgICAgICJhMyIKLSAgICAgICAgd2hlbiAiYTQiCi0gICAgICAgICAgICAiYTQiCi0g
ICAgICAgIHdoZW4gImE1IgotICAgICAgICAgICAgImE1IgotICAgICAgICB3aGVuICJhNiIKLSAg
ICAgICAgICAgICJhNiIKLSAgICAgICAgd2hlbiAiYTYiCi0gICAgICAgICAgICAiYTYiCi0gICAg
ICAgIHdoZW4gInQwIgorICAgICAgICAjIFRoZSBjbG9vcCBpcyBtb2RlbGxlZCBvbiB0aGUgQVJN
IGltcGxlbWVudGF0aW9uLiBIZW5jZSwgdGhlIGEwLWEzCisgICAgICAgICMgcmVnaXN0ZXJzIGFy
ZSBhbGlhc2VzIGZvciByMC1yMyBpLmUuIHQwLXQzIGluIG91ciBjYXNlLgorICAgICAgICB3aGVu
ICJ0MCIsICJhMCIKICAgICAgICAgICAgICJ0MCIKLSAgICAgICAgd2hlbiAidDEiCisgICAgICAg
IHdoZW4gInQxIiwgImExIgogICAgICAgICAgICAgInQxIgotICAgICAgICB3aGVuICJ0MiIKKyAg
ICAgICAgd2hlbiAidDIiLCAiYTIiCiAgICAgICAgICAgICAidDIiCi0gICAgICAgIHdoZW4gInQz
IgorICAgICAgICB3aGVuICJ0MyIsICJhMyIKICAgICAgICAgICAgICJ0MyIKICAgICAgICAgd2hl
biAidDQiCi0gICAgICAgICAgICAiclBDIgorICAgICAgICAgICAgInBjIgorICAgICAgICB3aGVu
ICJ0NSIKKyAgICAgICAgICAgICJ0NSIKICAgICAgICAgd2hlbiAidDYiCi0gICAgICAgICAgICAi
ckJhc2VQQyIKKyAgICAgICAgICAgICJwY0Jhc2UiCiAgICAgICAgIHdoZW4gImNzcjEiCiAgICAg
ICAgICAgICAidGFnVHlwZU51bWJlciIKICAgICAgICAgd2hlbiAiY3NyMiIKQEAgLTEwMyw3ICs5
MSw3IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgd2hlbiAiY2ZyIgogICAgICAgICAgICAg
ImNmciIKICAgICAgICAgd2hlbiAibHIiCi0gICAgICAgICAgICAiclJldFZQQyIKKyAgICAgICAg
ICAgICJsciIKICAgICAgICAgd2hlbiAic3AiCiAgICAgICAgICAgICAic3AiCiAgICAgICAgIGVs
c2UKQEAgLTU1NSwxNCArNTQzLDE0IEBAIGVuZAogIyBvcGVyYW5kczogY2FsbFRhcmdldCwgY3Vy
cmVudEZyYW1lLCBjdXJyZW50UEMKIGRlZiBjbG9vcEVtaXRDYWxsU2xvd1BhdGgob3BlcmFuZHMp
CiAgICAgJGFzbS5wdXRjICJ7IgotICAgICRhc20ucHV0YyAiICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IENBU1Q8RXhlY1N0YXRlKj4oI3tvcGVyYW5kc1sxXS5jbFZhbHVlKDp2b2lkUHRyKX0pOyIKLSAg
ICAkYXNtLnB1dGMgIiAgICBJbnN0cnVjdGlvbiogcGMgPSBDQVNUPEluc3RydWN0aW9uKj4oI3tv
cGVyYW5kc1syXS5jbFZhbHVlKDp2b2lkUHRyKX0pOyIKLSAgICAkYXNtLnB1dGMgIiAgICBTbG93
UGF0aFJldHVyblR5cGUgcmVzdWx0ID0gI3tvcGVyYW5kc1swXS5jTGFiZWx9KGV4ZWMsIHBjKTsi
Ci0gICAgJGFzbS5wdXRjICIgICAgZGVjb2RlUmVzdWx0KHJlc3VsdCwgdDAuaW5zdHJ1Y3Rpb24s
IHQxLnZwKTsiCisgICAgJGFzbS5wdXRjICIgICAgU2xvd1BhdGhSZXR1cm5UeXBlIHJlc3VsdCA9
ICN7b3BlcmFuZHNbMF0uY0xhYmVsfSgje29wZXJhbmRzWzFdLmNsRHVtcH0sICN7b3BlcmFuZHNb
Ml0uY2xEdW1wfSk7IgorICAgICRhc20ucHV0YyAiICAgIGRlY29kZVJlc3VsdChyZXN1bHQsIHQw
LnZwLCB0MS52cCk7IgogICAgICRhc20ucHV0YyAifSIKIGVuZAogCiBjbGFzcyBJbnN0cnVjdGlv
bgorICAgIEBAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3VudGVyID0gMAorCiAgICAgZGVmIGxvd2Vy
Q19MT09QCiAgICAgICAgICRhc20uY29kZU9yaWdpbiBjb2RlT3JpZ2luU3RyaW5nIGlmICRlbmFi
bGVDb2RlT3JpZ2luQ29tbWVudHMKICAgICAgICAgJGFzbS5hbm5vdGF0aW9uIGFubm90YXRpb24g
aWYgJGVuYWJsZUluc3RyQW5ub3RhdGlvbnMgJiYgKG9wY29kZSAhPSAiY2xvb3BEbyIpCkBAIC04
NzYsNyArODY0LDggQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAiYnJlYWsiCiAg
ICAgICAgICAgICAkYXNtLnB1dGMgIkNSQVNIKCk7IC8vIGJyZWFrIGluc3RydWN0aW9uIG5vdCBp
bXBsZW1lbnRlZC4iCiAgICAgICAgIHdoZW4gInJldCIKLSAgICAgICAgICAgICRhc20ucHV0YyAi
Z290byBkb1JldHVybkhlbHBlcjsiCisgICAgICAgICAgICAkYXNtLnB1dGMgIm9wY29kZSA9IGxy
Lm9wY29kZTsiCisgICAgICAgICAgICAkYXNtLnB1dGMgIkRJU1BBVENIX09QQ09ERSgpOyIKIAog
ICAgICAgICB3aGVuICJjYmVxIgogICAgICAgICAgICAgY2xvb3BFbWl0Q29tcGFyZUFuZFNldChv
cGVyYW5kcywgOnVpbnQ4LCAiPT0iKQpAQCAtMTA5Nyw2ICsxMDg2LDEyIEBAIGNsYXNzIEluc3Ry
dWN0aW9uCiAgICAgICAgICAgICBjbG9vcEVtaXRPcEFuZEJyYW5jaChvcGVyYW5kcywgInwiLCA6
aW50MzIsICIhPSAwIikKICAgICAgICAgICAgIAogICAgICAgICB3aGVuICJtZW1mZW5jZSIKKwor
ICAgICAgICB3aGVuICJwdXNoIgorICAgICAgICAgICAgJGFzbS5wdXRjICJQVVNIKCN7b3BlcmFu
ZHNbMF0uY2xEdW1wfSk7IgorICAgICAgICB3aGVuICJwb3AiCisgICAgICAgICAgICAkYXNtLnB1
dGMgIlBPUCgje29wZXJhbmRzWzBdLmNsRHVtcH0pOyIKKwogICAgICAgICB3aGVuICJwdXNoQ2Fs
bGVlU2F2ZXMiCiAgICAgICAgIHdoZW4gInBvcENhbGxlZVNhdmVzIgogCkBAIC0xMTEzLDggKzEx
MDgsMTEgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgIyB1c2Ugb2YgdGhlIGNhbGwgaW5z
dHJ1Y3Rpb24uIEluc3RlYWQsIHdlIGp1c3QgaW1wbGVtZW50IEpTIGNhbGxzCiAgICAgICAgICMg
YXMgYW4gb3Bjb2RlIGRpc3BhdGNoLgogICAgICAgICB3aGVuICJjbG9vcENhbGxKU0Z1bmN0aW9u
IgorICAgICAgICAgICAgQEBkaWRSZXR1cm5Gcm9tSlNMYWJlbENvdW50ZXIgKz0gMQorICAgICAg
ICAgICAgJGFzbS5wdXRjICJsci5vcGNvZGUgPSBnZXRPcGNvZGUobGxpbnRfY2xvb3BfZGlkX3Jl
dHVybl9mcm9tX2pzXyN7QEBkaWRSZXR1cm5Gcm9tSlNMYWJlbENvdW50ZXJ9KTsiCiAgICAgICAg
ICAgICAkYXNtLnB1dGMgIm9wY29kZSA9ICN7b3BlcmFuZHNbMF0uY2xWYWx1ZSg6b3Bjb2RlKX07
IgogICAgICAgICAgICAgJGFzbS5wdXRjICJESVNQQVRDSF9PUENPREUoKTsiCisgICAgICAgICAg
ICAkYXNtLnB1dHNMYWJlbCgibGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXyN7QEBkaWRS
ZXR1cm5Gcm9tSlNMYWJlbENvdW50ZXJ9IikKIAogICAgICAgICAjIFdlIGNhbid0IGRvIGdlbmVy
aWMgZnVuY3Rpb24gY2FsbHMgd2l0aCBhbiBhcmJpdHJhcnkgc2V0IG9mIGFyZ3MsIGJ1dAogICAg
ICAgICAjIGZvcnR1bmF0ZWx5IHdlIGRvbid0IGhhdmUgdG8gaGVyZS4gQWxsIG5hdGl2ZSBmdW5j
dGlvbiBjYWxscyBhbHdheXMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L2luc3RydWN0aW9ucy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9pbnN0cnVjdGlvbnMucmIJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkod29ya2luZyBjb3B5KQpAQCAt
MjU4LDYgKzI1OCwxMSBAQCBYODZfSU5TVFJVQ1RJT05TID0KICAgICAgImlkaXZpIgogICAgIF0K
IAorQVJNX0lOU1RSVUNUSU9OUyA9CisgICAgWworICAgICAiY2xyYnAiCisgICAgXQorCiBBUk02
NF9JTlNUUlVDVElPTlMgPQogICAgIFsKICAgICAgInBvcExSQW5kRlAiLCAgICMgQVJNNjQgcmVx
dWlyZXMgcmVnaXN0ZXJzIHRvIGJlIHB1c2hlZCBhbmQgcG9wcGVkIGluIHBhaXJzLApAQCAtMzEz
LDcgKzMxOCw3IEBAIENYWF9JTlNUUlVDVElPTlMgPQogICAgICAiY2xvb3BEbyIsICAgICAgICAg
ICAgICAjIG5vIG9wZXJhbmRzCiAgICAgXQogCi1JTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVD
VElPTlMgKyBYODZfSU5TVFJVQ1RJT05TICsgQVJNNjRfSU5TVFJVQ1RJT05TICsgUklTQ19JTlNU
UlVDVElPTlMgKyBNSVBTX0lOU1RSVUNUSU9OUyArIFNINF9JTlNUUlVDVElPTlMgKyBDWFhfSU5T
VFJVQ1RJT05TCitJTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElPTlMgKyBYODZfSU5TVFJV
Q1RJT05TICsgQVJNX0lOU1RSVUNUSU9OUyArIEFSTTY0X0lOU1RSVUNUSU9OUyArIFJJU0NfSU5T
VFJVQ1RJT05TICsgTUlQU19JTlNUUlVDVElPTlMgKyBTSDRfSU5TVFJVQ1RJT05TICsgQ1hYX0lO
U1RSVUNUSU9OUwogCiBJTlNUUlVDVElPTl9QQVRURVJOID0gUmVnZXhwLm5ldygnXFxBKCgnICsg
SU5TVFJVQ1RJT05TLmpvaW4oJyl8KCcpICsgJykpXFxaJykKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xNTAsMTUg
KzE1MCwxNSBAQCBjbGFzcyBSZWdpc3RlcklECiAgICAgICAgIHdoZW4gInQ0IgogICAgICAgICAg
ICAgY2FzZSBraW5kCiAgICAgICAgICAgICB3aGVuIDpieXRlCi0gICAgICAgICAgICAgICAgIiVz
aWwiCisgICAgICAgICAgICAgICAgIiVkaWwiCiAgICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAg
ICAgICAgICAgICAgIiVzaSIKKyAgICAgICAgICAgICAgICAiJWRpIgogICAgICAgICAgICAgd2hl
biA6aW50Ci0gICAgICAgICAgICAgICAgIiVlc2kiCisgICAgICAgICAgICAgICAgIiVlZGkiCiAg
ICAgICAgICAgICB3aGVuIDpwdHIKLSAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcnNpIiA6ICIl
ZXNpIgorICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVyZGkiIDogIiVlZGkiCiAgICAgICAgICAg
ICB3aGVuIDpxdWFkCi0gICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJzaSIgOiByYWlzZQorICAg
ICAgICAgICAgICAgIGlzWDY0ID8gIiVyZGkiIDogcmFpc2UKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgZW5kCkBAIC0yMDYsMTUgKzIwNiwxNSBA
QCBjbGFzcyBSZWdpc3RlcklECiAgICAgICAgIHdoZW4gInQ1IgogICAgICAgICAgICAgY2FzZSBr
aW5kCiAgICAgICAgICAgICB3aGVuIDpieXRlCi0gICAgICAgICAgICAgICAgIiVkaWwiCisgICAg
ICAgICAgICAgICAgIiVzaWwiCiAgICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAgICAgICAgICAg
ICAgIiVkaSIKKyAgICAgICAgICAgICAgICAiJXNpIgogICAgICAgICAgICAgd2hlbiA6aW50Ci0g
ICAgICAgICAgICAgICAgIiVlZGkiCisgICAgICAgICAgICAgICAgIiVlc2kiCiAgICAgICAgICAg
ICB3aGVuIDpwdHIKLSAgICAgICAgICAgICAgICBpc1g2NCA/ICIlcmRpIiA6ICIlZWRpIgorICAg
ICAgICAgICAgICAgIGlzWDY0ID8gIiVyc2kiIDogIiVlc2kiCiAgICAgICAgICAgICB3aGVuIDpx
dWFkCi0gICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJkaSIgOiByYWlzZQorICAgICAgICAgICAg
ICAgIGlzWDY0ID8gIiVyc2kiIDogcmFpc2UKICAgICAgICAgICAgIGVuZAogICAgICAgICB3aGVu
ICJ0NiIKICAgICAgICAgICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4
NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBQYXJzZXJFcnJvcl9oCiAKICNpbmNsdWRlICJFcnJv
ci5oIgorI2luY2x1ZGUgIkVycm9ySGFuZGxpbmdTY29wZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bkhlbHBlcnMuaCIKICNpbmNsdWRlICJQYXJzZXJUb2tlbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KQEAgLTk0LDggKzk1LDEwIEBAIHN0cnVjdCBQYXJzZXJFcnJvciB7CiAg
ICAgICAgICAgICByZXR1cm4gYWRkRXJyb3JJbmZvKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygp
LCBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsIG1fbWVzc2FnZSksIG1fbGluZSwgc291
cmNlKTsKICAgICAgICAgY2FzZSBFdmFsRXJyb3I6CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRl
U3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCBtX21lc3NhZ2UpOwotICAgICAgICBjYXNlIFN0YWNr
T3ZlcmZsb3c6CisgICAgICAgIGNhc2UgU3RhY2tPdmVyZmxvdzogeworICAgICAgICAgICAgRXJy
b3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICAgICAg
ICAgIHJldHVybiBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZ2xvYmFsT2JqZWN0KTsKKyAgICAg
ICAgfQogICAgICAgICBjYXNlIE91dE9mTWVtb3J5OgogICAgICAgICAgICAgcmV0dXJuIGNyZWF0
ZU91dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9u
LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Nyw2
ICs2NywxMSBAQCB2b2lkIENvbXBpbGF0aW9uOjphZGREZXNjcmlwdGlvbihjb25zdCBDCiAgICAg
bV9kZXNjcmlwdGlvbnMuYXBwZW5kKGNvbXBpbGVkQnl0ZWNvZGUpOwogfQogCit2b2lkIENvbXBp
bGF0aW9uOjphZGREZXNjcmlwdGlvbihjb25zdCBPcmlnaW5TdGFjayYgc3RhY2ssIGNvbnN0IENT
dHJpbmcmIGRlc2NyaXB0aW9uKQoreworICAgIGFkZERlc2NyaXB0aW9uKENvbXBpbGVkQnl0ZWNv
ZGUoc3RhY2ssIGRlc2NyaXB0aW9uKSk7Cit9CisKIEV4ZWN1dGlvbkNvdW50ZXIqIENvbXBpbGF0
aW9uOjpleGVjdXRpb25Db3VudGVyRm9yKGNvbnN0IE9yaWdpblN0YWNrJiBvcmlnaW4pCiB7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEV4ZWN1dGlvbkNvdW50ZXI+JiBjb3VudGVyID0gbV9jb3VudGVy
cy5hZGQob3JpZ2luLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmgJKHJl
dmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
ckNvbXBpbGF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYzLDYgKzYzLDcgQEAg
cHVibGljOgogICAgIENvbXBpbGF0aW9uS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5k
OyB9CiAgICAgCiAgICAgdm9pZCBhZGREZXNjcmlwdGlvbihjb25zdCBDb21waWxlZEJ5dGVjb2Rl
Jik7CisgICAgdm9pZCBhZGREZXNjcmlwdGlvbihjb25zdCBPcmlnaW5TdGFjayYsIGNvbnN0IENT
dHJpbmcmIGRlc2NyaXB0aW9uKTsKICAgICBFeGVjdXRpb25Db3VudGVyKiBleGVjdXRpb25Db3Vu
dGVyRm9yKGNvbnN0IE9yaWdpblN0YWNrJik7CiAgICAgdm9pZCBhZGRPU1JFeGl0U2l0ZShjb25z
dCBWZWN0b3I8Y29uc3Qgdm9pZCo+JiBjb2RlQWRkcmVzc2VzKTsKICAgICBPU1JFeGl0KiBhZGRP
U1JFeGl0KHVuc2lnbmVkIGlkLCBjb25zdCBPcmlnaW5TdGFjayYsIEV4aXRLaW5kLCBib29sIGlz
V2F0Y2hwb2ludCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJDb21waWxhdGlvbktpbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2luZC5jcHAJKHJldmlzaW9uIDE2Mjk2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2lu
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQyLDYgKzQyLDEyIEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQ
cmludFN0cmVhbSYgb3V0LCBKU0MKICAgICBjYXNlIEpTQzo6UHJvZmlsZXI6OkRGRzoKICAgICAg
ICAgb3V0LnByaW50KCJERkciKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQcm9m
aWxlcjo6RlRMOgorICAgICAgICBvdXQucHJpbnQoIkZUTCIpOworICAgICAgICByZXR1cm47Cisg
ICAgY2FzZSBKU0M6OlByb2ZpbGVyOjpGVExGb3JPU1JFbnRyeToKKyAgICAgICAgb3V0LnByaW50
KCJGVExGb3JPU1JFbnRyeSIpOworICAgICAgICByZXR1cm47CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgQ1JBU0goKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgJKHJldmlz
aW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNv
bXBpbGF0aW9uS2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw5IEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewogZW51bSBDb21waWxhdGlvbktpbmQgewogICAgIExM
SW50LAogICAgIEJhc2VsaW5lLAotICAgIERGRworICAgIERGRywKKyAgICBGVEwsCisgICAgRlRM
Rm9yT1NSRW50cnkKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpQcm9maWxlcgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJpdHlDaGVja01vZGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcml0eUNoZWNrTW9kZS5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJpdHlDaGVja01vZGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQXJpdHlDaGVja01vZGVfaAorI2RlZmlu
ZSBBcml0eUNoZWNrTW9kZV9oCisKK25hbWVzcGFjZSBKU0MgeworCitlbnVtIEFyaXR5Q2hlY2tN
b2RlIHsKKyAgICBBcml0eUNoZWNrTm90UmVxdWlyZWQsCisgICAgTXVzdENoZWNrQXJpdHkKK307
CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gQXJpdHlDaGVja01vZGVfaAorCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI5LDEwICsyOSwxMiBAQAogI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKIAog
I2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1
bmtzLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNhbGxGcmFt
ZS5oIgogI2luY2x1ZGUgIkNvZGVQcm9maWxpbmcuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0
aHNFeGNlcHRpb25zLmgiCisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVk
ZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSG9zdENhbGxSZXR1cm5WYWx1ZS5oIgogI2lu
Y2x1ZGUgIkludGVycHJldGVyLmgiCkBAIC0xNjEsMjggKzE2Myw0NyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgQ0FMTF9FTkRfSU1QTChjckV4ZWMsIGNyQ2FsbFRhcmdldCk7ICAgICAgICAg
ICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAorc3RhdGljIENvbW1vblNsb3dQYXRoczo6
QXJpdHlDaGVja0RhdGEqIHNldHVwQXJpdHlDaGVja0RhdGEoVk0mIHZtLCBpbnQgc2xvdHNUb0Fk
ZCkKK3sKKyAgICBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhKiByZXN1bHQgPSB2bS5h
cml0eUNoZWNrRGF0YS5nZXQoKTsKKyAgICByZXN1bHQtPnBhZGRlZFN0YWNrU3BhY2UgPSBzbG90
c1RvQWRkOworI2lmIEVOQUJMRShKSVQpCisgICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CisgICAg
ICAgIHJlc3VsdC0+dGh1bmtUb0NhbGwgPSB2bS5nZXRDVElTdHViKGFyaXR5Rml4dXApLmNvZGUo
KS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgICAgICByZXN1bHQtPnJldHVyblBDID0gdm0uYXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MtPnJldHVyblBDRm9yKHZtLCBzbG90c1RvQWRkICogc3Rh
Y2tBbGlnbm1lbnRSZWdpc3RlcnMoKSkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICB9IGVsc2UK
KyNlbmRpZgorICAgIHsKKyAgICAgICAgcmVzdWx0LT50aHVua1RvQ2FsbCA9IDA7CisgICAgICAg
IHJlc3VsdC0+cmV0dXJuUEMgPSAwOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBT
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF9hcml0eUNoZWNrKQogewogICAgIEJFR0lOKCk7
Ci0gICAgaW50IFNsb3RzVG9BZGQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IoZXhl
YywgJnZtLmludGVycHJldGVyLT5zdGFjaygpLCBDb2RlRm9yQ2FsbCk7Ci0gICAgaWYgKFNsb3Rz
VG9BZGQgPCAwKSB7CisgICAgaW50IHNsb3RzVG9BZGQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5
Q2hlY2tGb3IoZXhlYywgJnZtLmludGVycHJldGVyLT5zdGFjaygpLCBDb2RlRm9yQ2FsbCk7Cisg
ICAgaWYgKHNsb3RzVG9BZGQgPCAwKSB7CiAgICAgICAgIGV4ZWMgPSBleGVjLT5jYWxsZXJGcmFt
ZSgpOworICAgICAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZShleGVjLT52bSgpKTsK
ICAgICAgICAgQ29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywg
Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKICAgICAgICAgUkVUVVJOX1RXTyhiaXR3
aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSkpLCBleGVjKTsKICAgICB9
Ci0gICAgUkVUVVJOX1RXTygwLCByZWludGVycHJldF9jYXN0PEV4ZWNTdGF0ZSo+KFNsb3RzVG9B
ZGQpKTsKKyAgICBSRVRVUk5fVFdPKDAsIHNldHVwQXJpdHlDaGVja0RhdGEodm0sIHNsb3RzVG9B
ZGQpKTsKIH0KIAogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2NvbnN0cnVjdF9hcml0eUNoZWNr
KQogewogICAgIEJFR0lOKCk7Ci0gICAgaW50IFNsb3RzVG9BZGQgPSBDb21tb25TbG93UGF0aHM6
OmFyaXR5Q2hlY2tGb3IoZXhlYywgJnZtLmludGVycHJldGVyLT5zdGFjaygpLCBDb2RlRm9yQ29u
c3RydWN0KTsKLSAgICBpZiAoU2xvdHNUb0FkZCA8IDApIHsKKyAgICBpbnQgc2xvdHNUb0FkZCA9
IENvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0
YWNrKCksIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIGlmIChzbG90c1RvQWRkIDwgMCkgewogICAg
ICAgICBleGVjID0gZXhlYy0+Y2FsbGVyRnJhbWUoKTsKKyAgICAgICAgRXJyb3JIYW5kbGluZ1Nj
b3BlIGVycm9yU2NvcGUoZXhlYy0+dm0oKSk7CiAgICAgICAgIENvbW1vblNsb3dQYXRoczo6aW50
ZXJwcmV0ZXJUaHJvd0luQ2FsbGVyKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVj
KSk7CiAgICAgICAgIFJFVFVSTl9UV08oYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1
aW50cHRyX3Q+KDEpKSwgZXhlYyk7CiAgICAgfQotICAgIFJFVFVSTl9UV08oMCwgcmVpbnRlcnBy
ZXRfY2FzdDxFeGVjU3RhdGUqPihTbG90c1RvQWRkKSk7CisgICAgUkVUVVJOX1RXTygwLCBzZXR1
cEFyaXR5Q2hlY2tEYXRhKHZtLCBzbG90c1RvQWRkKSk7CiB9CiAKIFNMT1dfUEFUSF9ERUNMKHNs
b3dfcGF0aF90b3VjaF9lbnRyeSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vblNsb3dQYXRocy5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAkod29ya2luZyBjb3B5KQpAQCAt
NDksNiArNDksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBDb21tb25TbG93UGF0
aHMgewogCitzdHJ1Y3QgQXJpdHlDaGVja0RhdGEgeworICAgIHVuc2lnbmVkIHBhZGRlZFN0YWNr
U3BhY2U7CisgICAgdm9pZCogdGh1bmtUb0NhbGw7CisgICAgdm9pZCogcmV0dXJuUEM7Cit9Owor
CiBBTFdBWVNfSU5MSU5FIGludCBhcml0eUNoZWNrRm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNTdGFj
ayogc3RhY2ssIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsKICAgICBKU0Z1bmN0aW9u
KiBjYWxsZWUgPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KGV4ZWMtPmNhbGxlZSgpKTsKQEAgLTU4LDE4
ICs2NCwxMiBAQCBBTFdBWVNfSU5MSU5FIGludCBhcml0eUNoZWNrRm9yKEV4ZWNTdGF0CiAgICAg
CiAgICAgQVNTRVJUKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzIDwgbmV3Q29kZUJsb2NrLT5u
dW1QYXJhbWV0ZXJzKCkpOwogICAgIGludCBtaXNzaW5nQXJndW1lbnRDb3VudCA9IG5ld0NvZGVC
bG9jay0+bnVtUGFyYW1ldGVycygpIC0gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXM7Ci0gICAg
aW50IHBhZGRlZE1pc3NpbmdBcmd1bWVudENvdW50ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9m
KHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIG1pc3NpbmdBcmd1bWVudENvdW50KTsKKyAgICBp
bnQgbmVlZGVkU3RhY2tTcGFjZSA9IG1pc3NpbmdBcmd1bWVudENvdW50ICsgMTsgLy8gQWxsb3cg
c3BhY2UgdG8gc2F2ZSB0aGUgb3JpZ2luYWwgcmV0dXJuIFBDLgorICAgIGludCBwYWRkZWRTdGFj
a1NwYWNlID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJz
KCksIG5lZWRlZFN0YWNrU3BhY2UpOwogCi0jaWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNL
KQotICAgIGlmICghc3RhY2stPmdyb3coZXhlYy0+cmVnaXN0ZXJzKCkgLSBwYWRkZWRNaXNzaW5n
QXJndW1lbnRDb3VudCkpCisgICAgaWYgKCFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IoZXhlYy0+
cmVnaXN0ZXJzKCkgLSBwYWRkZWRTdGFja1NwYWNlKSkKICAgICAgICAgcmV0dXJuIC0xOwotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0oc3RhY2spOwotICAgIGlmICghZXhlYy0+dm0oKS5pc1NhZmVU
b1JlY3Vyc2UocGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291bnQgKiBzaXplb2YoUmVnaXN0ZXIpKSkK
LSAgICAgICAgcmV0dXJuIC0xOwotI2VuZGlmIC8vIFVTRShTRVBBUkFURV9DX0FORF9KU19TVEFD
SykKLQotICAgIHJldHVybiBwYWRkZWRNaXNzaW5nQXJndW1lbnRDb3VudDsKKyAgICByZXR1cm4g
cGFkZGVkU3RhY2tTcGFjZSAvIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCk7CiB9CiAKIGlubGlu
ZSBib29sIG9wSW4oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHByb3BOYW1lLCBKU1ZhbHVlIGJh
c2VWYWwpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5n
U2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySGFuZGxpbmdTY29wZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkVycm9ySGFuZGxpbmdTY29wZS5oIgorCisj
aW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcHRpb25zLmgiCisjaW5jbHVkZSAi
Vk0uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK0Vycm9ySGFuZGxpbmdTY29wZTo6RXJyb3JIYW5k
bGluZ1Njb3BlKFZNJiB2bSkKKyAgICA6IG1fdm0odm0pCit7CisgICAgaWYgKCFtX3ZtLnN0YWNr
UG9pbnRlckF0Vk1FbnRyeSkKKyAgICAgICAgbV92bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSB0
aGlzOworICAgIHNpemVfdCBuZXdSZXNlcnZlZFpvbmVTaXplID0gT3B0aW9uczo6ZXJyb3JNb2Rl
UmVzZXJ2ZWRab25lU2l6ZSgpOworICAgIG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplID0gbV92bS51
cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUobmV3UmVzZXJ2ZWRab25lU2l6ZSk7
CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBtX3ZtLmludGVycHJldGVyLT5zdGFjaygp
LnNldFJlc2VydmVkWm9uZVNpemUobmV3UmVzZXJ2ZWRab25lU2l6ZSk7CisjZW5kaWYKK30KKwor
RXJyb3JIYW5kbGluZ1Njb3BlOjp+RXJyb3JIYW5kbGluZ1Njb3BlKCkKK3sKKyAgICBpZiAobV92
bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPT0gdGhpcykKKyAgICAgICAgbV92bS5zdGFja1BvaW50
ZXJBdFZNRW50cnkgPSBudWxscHRyOworICAgIG1fdm0udXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNl
cnZlZFpvbmVTaXplKG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplKTsKKyNpZiBFTkFCTEUoTExJTlRf
Q19MT09QKQorICAgIG1fdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCkuc2V0UmVzZXJ2ZWRab25lU2l6
ZShtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2Nv
cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckhh
bmRsaW5nU2NvcGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBF
cnJvckhhbmRsaW5nU2NvcGVfaAorI2RlZmluZSBFcnJvckhhbmRsaW5nU2NvcGVfaAorCituYW1l
c3BhY2UgSlNDIHsKKworY2xhc3MgVk07CisKK2NsYXNzIEVycm9ySGFuZGxpbmdTY29wZSB7Citw
dWJsaWM6CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgRXJyb3JIYW5kbGluZ1Njb3BlKFZNJik7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgfkVycm9ySGFuZGxpbmdTY29wZSgpOworcHJpdmF0ZToKKyAg
ICBWTSYgbV92bTsKKyAgICBzaXplX3QgbV9zYXZlZFJlc2VydmVkWm9uZVNpemU7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVycm9ySGFuZGxpbmdTY29wZV9oCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGNlcHRpb25IZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAog
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCisjaW5jbHVk
ZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVkZSAiRXJyb3JJbnN0YW5jZS5oIgogI2lu
Y2x1ZGUgIkpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIK
QEAgLTE2MCwxNCArMTYxLDE2IEBAIEpTT2JqZWN0KiB0aHJvd091dE9mTWVtb3J5RXJyb3IoRXhl
Y1N0YXQKIAogSlNPYmplY3QqIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBJbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGUgbW9kZShleGVjKTsKLSAg
ICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVTdGFja092ZXJm
bG93RXJyb3IoZXhlYykpOworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgRXJyb3JIYW5k
bGluZ1Njb3BlIGVycm9yU2NvcGUodm0pOworICAgIHJldHVybiB2bS50aHJvd0V4Y2VwdGlvbihl
eGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOwogfQogCiBKU09iamVjdCogdGhy
b3dUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBJ
bnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGUgbW9kZShleGVjKTsKLSAgICByZXR1cm4gZXhl
Yy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVUZXJtaW5hdGVkRXhlY3V0aW9uRXhj
ZXB0aW9uKCZleGVjLT52bSgpKSk7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBFcnJv
ckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZSh2bSk7CisgICAgcmV0dXJuIHZtLnRocm93RXhjZXB0
aW9uKGV4ZWMsIGNyZWF0ZVRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oJnZtKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiTExJbnRFbnRyeXBvaW50LmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlBhcnNlci5oIgorI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogCkBAIC0xMTgsMTIgKzExOSwxNCBAQCB2b2lkIFNjcmlwdEV4ZWN1dGFibGU6Omluc3RhbGxD
b2RlKENvZGVCCiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBDb2RlRm9yQ2FsbDoKICAg
ICAgICAgbV9qaXRDb2RlRm9yQ2FsbCA9IGdlbmVyaWNDb2RlQmxvY2stPmppdENvZGUoKTsKLSAg
ICAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0gZ2VuZXJpY0NvZGVCbG9jay0+
aml0Q29kZVdpdGhBcml0eUNoZWNrKCk7CisgICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJp
dHlDaGVjayA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOworICAgICAgICBtX2ppdENvZGVGb3JD
YWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIo
KTsKICAgICAgICAgbV9udW1QYXJhbWV0ZXJzRm9yQ2FsbCA9IGdlbmVyaWNDb2RlQmxvY2stPm51
bVBhcmFtZXRlcnMoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0
OgogICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3QgPSBnZW5lcmljQ29kZUJsb2NrLT5qaXRD
b2RlKCk7Ci0gICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrID0gZ2Vu
ZXJpY0NvZGVCbG9jay0+aml0Q29kZVdpdGhBcml0eUNoZWNrKCk7CisgICAgICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7Cisg
ICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdz
ID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgICAgIG1fbnVtUGFyYW1ldGVyc0ZvckNv
bnN0cnVjdCA9IGdlbmVyaWNDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQpAQCAtMTMzLDcgKzEzNiw2IEBAIHZvaWQgU2NyaXB0RXhlY3V0YWJsZTo6aW5z
dGFsbENvZGUoQ29kZUIKICAgICAgICAgUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBq
c0Nhc3Q8UHJvZ3JhbUV4ZWN1dGFibGUqPih0aGlzKTsKICAgICAgICAgUHJvZ3JhbUNvZGVCbG9j
ayogY29kZUJsb2NrID0gc3RhdGljX2Nhc3Q8UHJvZ3JhbUNvZGVCbG9jayo+KGdlbmVyaWNDb2Rl
QmxvY2spOwogICAgICAgICAKLSAgICAgICAgQVNTRVJUKCFjb2RlQmxvY2stPmppdENvZGVXaXRo
QXJpdHlDaGVjaygpKTsKICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNhbGwpOwogICAg
ICAgICAKICAgICAgICAgb2xkQ29kZUJsb2NrID0gZXhlY3V0YWJsZS0+bV9wcm9ncmFtQ29kZUJs
b2NrOwpAQCAtMTQ1LDcgKzE0Nyw2IEBAIHZvaWQgU2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENv
ZGUoQ29kZUIKICAgICAgICAgRXZhbEV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBqc0Nhc3Q8RXZh
bEV4ZWN1dGFibGUqPih0aGlzKTsKICAgICAgICAgRXZhbENvZGVCbG9jayogY29kZUJsb2NrID0g
c3RhdGljX2Nhc3Q8RXZhbENvZGVCbG9jayo+KGdlbmVyaWNDb2RlQmxvY2spOwogICAgICAgICAK
LSAgICAgICAgQVNTRVJUKCFjb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpKTsKICAg
ICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNhbGwpOwogICAgICAgICAKICAgICAgICAgb2xk
Q29kZUJsb2NrID0gZXhlY3V0YWJsZS0+bV9ldmFsQ29kZUJsb2NrOwpAQCAtNjEwLDYgKzYxMSw0
NiBAQCBTdHJpbmcgRnVuY3Rpb25FeGVjdXRhYmxlOjpwYXJhbVN0cmluZygpCiAgICAgcmV0dXJu
IG1fdW5saW5rZWRFeGVjdXRhYmxlLT5wYXJhbVN0cmluZygpOwogfQogCit2b2lkIEV4ZWN1dGFi
bGVCYXNlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgRXhlY3V0YWJsZUJh
c2UqIHJlYWxUaGlzID0gY29uc3RfY2FzdDxFeGVjdXRhYmxlQmFzZSo+KHRoaXMpOworICAgIAor
ICAgIGlmIChjbGFzc0luZm8oKSA9PSBOYXRpdmVFeGVjdXRhYmxlOjppbmZvKCkpIHsKKyAgICAg
ICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlID0ganNDYXN0PE5hdGl2ZUV4ZWN1dGFibGUqPihy
ZWFsVGhpcyk7CisgICAgICAgIG91dC5wcmludCgiTmF0aXZlRXhlY3V0YWJsZToiLCBSYXdQb2lu
dGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4obmF0aXZlLT5mdW5jdGlvbigpKSksICIvIiwgUmF3UG9p
bnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KG5hdGl2ZS0+Y29uc3RydWN0b3IoKSkpKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBpZiAoY2xhc3NJbmZvKCkgPT0gRXZhbEV4ZWN1
dGFibGU6OmluZm8oKSkgeworICAgICAgICBFdmFsRXhlY3V0YWJsZSogZXZhbCA9IGpzQ2FzdDxF
dmFsRXhlY3V0YWJsZSo+KHJlYWxUaGlzKTsKKyAgICAgICAgaWYgKENvZGVCbG9jayogY29kZUJs
b2NrID0gZXZhbC0+Y29kZUJsb2NrKCkpCisgICAgICAgICAgICBvdXQucHJpbnQoKmNvZGVCbG9j
ayk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludCgiRXZhbEV4ZWN1dGFibGUg
dy9vIENvZGVCbG9jayIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmIChj
bGFzc0luZm8oKSA9PSBQcm9ncmFtRXhlY3V0YWJsZTo6aW5mbygpKSB7CisgICAgICAgIFByb2dy
YW1FeGVjdXRhYmxlKiBldmFsID0ganNDYXN0PFByb2dyYW1FeGVjdXRhYmxlKj4ocmVhbFRoaXMp
OworICAgICAgICBpZiAoQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBldmFsLT5jb2RlQmxvY2soKSkK
KyAgICAgICAgICAgIG91dC5wcmludCgqY29kZUJsb2NrKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgb3V0LnByaW50KCJQcm9ncmFtRXhlY3V0YWJsZSB3L28gQ29kZUJsb2NrIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlv
biA9IGpzQ2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihyZWFsVGhpcyk7CisgICAgaWYgKCFmdW5j
dGlvbi0+ZWl0aGVyQ29kZUJsb2NrKCkpCisgICAgICAgIG91dC5wcmludCgiRnVuY3Rpb25FeGVj
dXRhYmxlIHcvbyBDb2RlQmxvY2siKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQ29tbWFQcmludGVy
IGNvbW1hKCIvIik7CisgICAgICAgIGlmIChmdW5jdGlvbi0+Y29kZUJsb2NrRm9yQ2FsbCgpKQor
ICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAqZnVuY3Rpb24tPmNvZGVCbG9ja0ZvckNhbGwo
KSk7CisgICAgICAgIGlmIChmdW5jdGlvbi0+Y29kZUJsb2NrRm9yQ29uc3RydWN0KCkpCisgICAg
ICAgICAgICBvdXQucHJpbnQoY29tbWEsICpmdW5jdGlvbi0+Y29kZUJsb2NrRm9yQ29uc3RydWN0
KCkpOworICAgIH0KK30KKwogQ29kZUJsb2NrSGFzaCBFeGVjdXRhYmxlQmFzZTo6aGFzaEZvcihD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpIGNvbnN0CiB7CiAgICAgaWYgKHRoaXMtPmNsYXNz
SW5mbygpID09IE5hdGl2ZUV4ZWN1dGFibGU6OmluZm8oKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MjYsNiArMjYsNyBAQAogI2lmbmRlZiBFeGVjdXRhYmxlX2gKICNkZWZpbmUgRXhlY3V0YWJsZV9o
CiAKKyNpbmNsdWRlICJBcml0eUNoZWNrTW9kZS5oIgogI2luY2x1ZGUgIkNhbGxEYXRhLmgiCiAj
aW5jbHVkZSAiQ29kZUJsb2NrSGFzaC5oIgogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktp
bmQuaCIKQEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIlJl
Z2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogI2lu
Y2x1ZGUgIlNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgpAQCAt
MTQ0LDM3ICsxNDYsOTQgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9y
Q29uc3RydWN0KTsKICAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3Qo
KTsKICAgICB9Ci0KLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZ2VuZXJhdGVkSklUQ29kZUZv
ckNhbGxXaXRoQXJpdHlDaGVjaygpCi0gICAgewotICAgICAgICBBU1NFUlQobV9qaXRDb2RlRm9y
Q2FsbCk7Ci0gICAgICAgIEFTU0VSVChtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2spOwot
ICAgICAgICByZXR1cm4gbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrOwotICAgIH0KLQot
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBnZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0V2l0
aEFyaXR5Q2hlY2soKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1faml0Q29kZUZvckNvbnN0cnVj
dCk7Ci0gICAgICAgIEFTU0VSVChtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayk7
Ci0gICAgICAgIHJldHVybiBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjazsKLSAg
ICB9Ci0gICAgICAgIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBnZW5lcmF0ZWRKSVRDb2Rl
V2l0aEFyaXR5Q2hlY2tGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQotICAgIHsKLSAg
ICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCi0gICAgICAgICAgICByZXR1cm4gZ2VuZXJh
dGVkSklUQ29kZUZvckNhbGxXaXRoQXJpdHlDaGVjaygpOwotICAgICAgICBBU1NFUlQoa2luZCA9
PSBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVGb3JD
b25zdHJ1Y3RXaXRoQXJpdHlDaGVjaygpOwotICAgIH0KLSAgICAgICAgCi0gICAgc3RhdGljIHB0
cmRpZmZfdCBvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQpCisgICAgCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGVudHJ5cG9pbnRG
b3IoCisgICAgICAgIFZNJiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBBcml0eUNo
ZWNrTW9kZSBhcml0eSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKICAgICB7
Ci0gICAgICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKQotICAgICAgICAgICAgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNo
ZWNrKTsKLSAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgICAg
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNvbnN0
cnVjdFdpdGhBcml0eUNoZWNrKTsKKyAgICAgICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhIGNhY2hl
ZCByZXN1bHQuIFdlIG9ubHkgaGF2ZSBpdCBmb3IgYXJpdHkgY2hlY2sgYmVjYXVzZSB3ZSB1c2Ug
dGhlCisgICAgICAgIC8vIG5vLWFyaXR5IGVudHJ5cG9pbnQgaW4gbm9uLXZpcnR1YWwgY2FsbHMs
IHdoaWNoIHdpbGwgImNhY2hlIiB0aGlzIHZhbHVlIGRpcmVjdGx5IGluCisgICAgICAgIC8vIG1h
Y2hpbmUgY29kZS4KKyAgICAgICAgaWYgKGFyaXR5ID09IE11c3RDaGVja0FyaXR5KSB7CisgICAg
ICAgICAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICAgICAgICAgIGNhc2UgQ29kZUZvckNhbGw6Cisg
ICAgICAgICAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgICAgICAgICBjYXNl
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgICAgIGlm
IChNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcmVzdWx0ID0gbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0
eUNoZWNrKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdp
c3RlcnM6CisgICAgICAgICAgICAgICAgICAgIGlmIChNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcmVz
dWx0ID0gbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0OgorICAgICAgICAgICAgICAgIHN3aXRjaCAocmVn
aXN0ZXJzKSB7CisgICAgICAgICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJl
cXVpcmVkOgorICAgICAgICAgICAgICAgICAgICBpZiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJl
c3VsdCA9IG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICAg
ICAgICAgIGlmIChNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcmVzdWx0ID0gbV9qaXRDb2RlRm9yQ29u
c3RydWN0V2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MpCisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJlc3VsdCA9CisgICAgICAgICAgICBn
ZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2FsbCh2bSwgdGhpcywgYXJpdHks
IHJlZ2lzdGVycyk7CisgICAgICAgIGlmIChhcml0eSA9PSBNdXN0Q2hlY2tBcml0eSkgeworICAg
ICAgICAgICAgLy8gQ2FjaGUgdGhlIHJlc3VsdDsgdGhpcyBpcyBuZWNlc3NhcnkgZm9yIHRoZSBK
SVQncyB2aXJ0dWFsIGNhbGwgb3B0aW1pemF0aW9ucy4KKyAgICAgICAgICAgIHN3aXRjaCAoa2lu
ZCkgeworICAgICAgICAgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgICAgICAgICBzd2l0
Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgICAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhB
cml0eUNoZWNrID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgICAgICAgICAg
bV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzID0gcmVzdWx0Owor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAg
ICAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAg
ICAgICAgICAgICAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2tBbmRQ
cmVzZXJ2ZVJlZ3MgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHN0YXRpYyBwdHJkaWZm
X3Qgb2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3IoCisgICAgICAgIENvZGVTcGVjaWFs
aXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKKyAg
ICB7CisgICAgICAgIHN3aXRjaCAoa2luZCkgeworICAgICAgICBjYXNlIENvZGVGb3JDYWxsOgor
ICAgICAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgICAgIGNhc2UgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgICAgICByZXR1cm4gT0JKRUNU
X09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sp
OworICAgICAgICAgICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
Y2FzZSBDb2RlRm9yQ29uc3RydWN0OgorICAgICAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsK
KyAgICAgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENv
ZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayk7CisgICAgICAgICAgICBjYXNlIE11c3RQcmVz
ZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4
ZWN1dGFibGVCYXNlLCBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNl
cnZlUmVncyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgICAgICAKKyAg
ICAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mTnVtUGFyYW1ldGVyc0ZvcihDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQpCiAgICAgewogICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9y
Q2FsbCkKQEAgLTIxMCwyMiArMjY5LDkgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIGlu
dHJpbnNpYygpOwogICAgICAgICByZXR1cm4gTm9JbnRyaW5zaWM7CiAgICAgfQorICAgIAorICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgICAgICAKLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgaG9zdENvZGVFbnRyeUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQp
Ci0gICAgewotICAgICAgICByZXR1cm4gZ2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS0+YWRkcmVz
c0ZvckNhbGwoKTsKLSAgICB9Ci0KLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIganNDb2RlRW50
cnlGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGdlbmVyYXRlZEpJVENvZGVGb3Ioa2luZCktPmFkZHJlc3NGb3JDYWxsKCk7Ci0gICAgfQotCi0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGpzQ29kZVdpdGhBcml0eUNoZWNrRW50cnlGb3IoQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRl
ZEpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5kKTsKLSAgICB9Ci0KIHByb3RlY3RlZDoKICAg
ICBFeGVjdXRhYmxlQmFzZSogbV9wcmV2OwogICAgIEV4ZWN1dGFibGVCYXNlKiBtX25leHQ7CkBA
IC0yMzQsNiArMjgwLDggQEAgcHJvdGVjdGVkOgogICAgIFJlZlB0cjxKSVRDb2RlPiBtX2ppdENv
ZGVGb3JDb25zdHJ1Y3Q7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1faml0Q29kZUZvckNh
bGxXaXRoQXJpdHlDaGVjazsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlRm9y
Q29uc3RydWN0V2l0aEFyaXR5Q2hlY2s7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1faml0
Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVnczsKKyAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2
ZVJlZ3M7CiB9OwogCiBjbGFzcyBOYXRpdmVFeGVjdXRhYmxlIDogcHVibGljIEV4ZWN1dGFibGVC
YXNlIHsKQEAgLTI0MiwxNCArMjkwLDExIEBAIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGUgOiBwdWJs
aWMgRXhlY3V0YWIKIHB1YmxpYzoKICAgICB0eXBlZGVmIEV4ZWN1dGFibGVCYXNlIEJhc2U7CiAK
LSAgICBzdGF0aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKFZNJiB2bSwgTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIGNhbGxUaHVuaywgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBjb25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IsIElu
dHJpbnNpYyBpbnRyaW5zaWMpCisgICAgc3RhdGljIE5hdGl2ZUV4ZWN1dGFibGUqIGNyZWF0ZShW
TSYgdm0sIFBhc3NSZWZQdHI8SklUQ29kZT4gY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlvbiBmdW5j
dGlvbiwgUGFzc1JlZlB0cjxKSVRDb2RlPiBjb25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24g
Y29uc3RydWN0b3IsIEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgewogICAgICAgICBOYXRpdmVF
eGVjdXRhYmxlKiBleGVjdXRhYmxlOwogICAgICAgICBleGVjdXRhYmxlID0gbmV3IChOb3ROdWxs
LCBhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4odm0uaGVhcCkpIE5hdGl2ZUV4ZWN1dGFi
bGUodm0sIGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7Ci0gICAgICAgIGlmICghY2FsbFRodW5rKQot
ICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24odm0sIDAsIDAsIGludHJpbnNp
Yyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9u
KHZtLCBKSVRDb2RlOjpob3N0RnVuY3Rpb24oY2FsbFRodW5rKSwgSklUQ29kZTo6aG9zdEZ1bmN0
aW9uKGNvbnN0cnVjdFRodW5rKSwgaW50cmluc2ljKTsKKyAgICAgICAgZXhlY3V0YWJsZS0+Zmlu
aXNoQ3JlYXRpb24odm0sIGNhbGxUaHVuaywgY29uc3RydWN0VGh1bmssIGludHJpbnNpYyk7CiAg
ICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgIH0KIApAQCAtMjg4LDggKzMzMyw2IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSwgUGFzc1JlZlB0cjxKSVRD
b2RlPiBjYWxsVGh1bmssIFBhc3NSZWZQdHI8SklUQ29kZT4gY29uc3RydWN0VGh1bmssIEludHJp
bnNpYyBpbnRyaW5zaWMpCiAgICAgewogICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
Ci0gICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayA9IGNhbGxUaHVuayA/IGNh
bGxUaHVuay0+YWRkcmVzc0ZvckNhbGwoKSA6IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOwotICAg
ICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IGNvbnN0cnVjdFRodW5r
ID8gY29uc3RydWN0VGh1bmstPmFkZHJlc3NGb3JDYWxsKCkgOiBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIoKTsKICAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbCA9IGNhbGxUaHVuazsKICAgICAgICAgbV9q
aXRDb2RlRm9yQ29uc3RydWN0ID0gY29uc3RydWN0VGh1bms7CiAgICAgICAgIG1faW50cmluc2lj
ID0gaW50cmluc2ljOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNW
YWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWUuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05Nyw2ICs5Nyw5IEBAIHVuaW9uIEVu
Y29kZWRWYWx1ZURlc2NyaXB0b3IgewogI2VuZGlmCiB9OwogCisjZGVmaW5lIFRhZ09mZnNldCAo
T0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKQorI2Rl
ZmluZSBQYXlsb2FkT2Zmc2V0IChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnBheWxvYWQpKQorCiBlbnVtIFdoaWNoVmFsdWVXb3JkIHsKICAgICBUYWdXb3Jk
LAogICAgIFBheWxvYWRXb3JkCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0xvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MCw2ICsyOTAsMTAgQEAgSlNMb2Nr
OjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxMb2NrcyhFeGVjUwogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBTcGluTG9ja0hvbGRlciBob2xkZXIoJnNwaW5Mb2NrKTsKICNlbmRpZgorICAgIG1fc2F2ZWRS
ZXNlcnZlZFpvbmVTaXplID0gbV92bS0+cmVzZXJ2ZWRab25lU2l6ZSgpOworICAgIG1fc2F2ZWRT
dGFja1BvaW50ZXJBdFZNRW50cnkgPSBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnk7CisgICAg
bV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbnVsbHB0cjsKKwogICAgIGlmIChhbHdheXNE
cm9wTG9ja3MpCiAgICAgICAgIG1fbG9ja0NvdW50ID0gbV92bS0+YXBpTG9jaygpLmRyb3BBbGxM
b2Nrc1VuY29uZGl0aW9uYWxseShzcGluTG9jayk7CiAgICAgZWxzZQpAQCAtMzA2LDYgKzMxMCwx
MCBAQCBKU0xvY2s6OkRyb3BBbGxMb2Nrczo6RHJvcEFsbExvY2tzKFZNKiB2CiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2spOwogI2VuZGlmCisg
ICAgbV9zYXZlZFJlc2VydmVkWm9uZVNpemUgPSBtX3ZtLT5yZXNlcnZlZFpvbmVTaXplKCk7Cisg
ICAgbV9zYXZlZFN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1F
bnRyeTsKKyAgICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBudWxscHRyOworCiAgICAg
aWYgKGFsd2F5c0Ryb3BMb2NrcykKICAgICAgICAgbV9sb2NrQ291bnQgPSBtX3ZtLT5hcGlMb2Nr
KCkuZHJvcEFsbExvY2tzVW5jb25kaXRpb25hbGx5KHNwaW5Mb2NrKTsKICAgICBlbHNlCkBAIC0z
MjEsNiArMzI5LDkgQEAgSlNMb2NrOjpEcm9wQWxsTG9ja3M6On5Ecm9wQWxsTG9ja3MoKQogICAg
IFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2spOwogI2VuZGlmCiAgICAgbV92bS0+YXBp
TG9jaygpLmdyYWJBbGxMb2NrcyhtX2xvY2tDb3VudCwgc3BpbkxvY2spOworCisgICAgbV92bS0+
c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbV9zYXZlZFN0YWNrUG9pbnRlckF0Vk1FbnRyeTsKKyAg
ICBtX3ZtLT51cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUobV9zYXZlZFJlc2Vy
dmVkWm9uZVNpemUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAkod29ya2luZyBjb3B5KQpAQCAtOTUsMTAgKzk1
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBj
dXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpOwogCi0gICAgICAgIHVuc2lnbmVkIGRyb3BBbGxM
b2NrcyhTcGluTG9jayYpOwotICAgICAgICB1bnNpZ25lZCBkcm9wQWxsTG9ja3NVbmNvbmRpdGlv
bmFsbHkoU3BpbkxvY2smKTsKLSAgICAgICAgdm9pZCBncmFiQWxsTG9ja3ModW5zaWduZWQgbG9j
a0NvdW50LCBTcGluTG9jayYpOwotCiAgICAgICAgIHZvaWQgd2lsbERlc3Ryb3lWTShWTSopOwog
CiAgICAgICAgIGNsYXNzIERyb3BBbGxMb2NrcyB7CkBAIC0xMTQsOSArMTEwLDE1IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBwcml2YXRlOgogICAgICAgICAgICAgaW50cHRyX3QgbV9sb2Nr
Q291bnQ7CiAgICAgICAgICAgICBSZWZQdHI8Vk0+IG1fdm07CisgICAgICAgICAgICBzaXplX3Qg
bV9zYXZlZFJlc2VydmVkWm9uZVNpemU7CisgICAgICAgICAgICB2b2lkKiBtX3NhdmVkU3RhY2tQ
b2ludGVyQXRWTUVudHJ5OwogICAgICAgICB9OwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgdW5z
aWduZWQgZHJvcEFsbExvY2tzKFNwaW5Mb2NrJik7CisgICAgICAgIHVuc2lnbmVkIGRyb3BBbGxM
b2Nrc1VuY29uZGl0aW9uYWxseShTcGluTG9jayYpOworICAgICAgICB2b2lkIGdyYWJBbGxMb2Nr
cyh1bnNpZ25lZCBsb2NrQ291bnQsIFNwaW5Mb2NrJik7CisKICAgICAgICAgU3BpbkxvY2sgbV9z
cGluTG9jazsKICAgICAgICAgTXV0ZXggbV9sb2NrOwogICAgICAgICBUaHJlYWRJZGVudGlmaWVy
IG1fb3duZXJUaHJlYWQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NCw3ICs2NTQsNyBA
QCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgICAgICAg
ICAgQVNTRVJUKGluVmFsdWUuaXNPYmplY3QoKSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGlz
SlNBcnJheShhc09iamVjdChpblZhbHVlKSkgfHwgYXNPYmplY3QoaW5WYWx1ZSktPmluaGVyaXRz
KEpTQXJyYXk6OmluZm8oKSkpOwogICAgICAgICAgICAgICAgIGlmIChvYmplY3RTdGFjay5zaXpl
KCkgKyBhcnJheVN0YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24pCi0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBtX2V4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24obV9leGVjLCBj
cmVhdGVTdGFja092ZXJmbG93RXJyb3IobV9leGVjKSk7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpOwogCiAgICAgICAgICAgICAgICAg
SlNBcnJheSogYXJyYXkgPSBhc0FycmF5KGluVmFsdWUpOwogICAgICAgICAgICAgICAgIGFycmF5
U3RhY2sucHVzaChhcnJheSk7CkBAIC03MDUsNyArNzA1LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFs
dWUgV2Fsa2VyOjp3YWxrKEpTVmFsdQogICAgICAgICAgICAgICAgIEFTU0VSVChpblZhbHVlLmlz
T2JqZWN0KCkpOwogICAgICAgICAgICAgICAgIEFTU0VSVCghaXNKU0FycmF5KGFzT2JqZWN0KGlu
VmFsdWUpKSAmJiAhYXNPYmplY3QoaW5WYWx1ZSktPmluaGVyaXRzKEpTQXJyYXk6OmluZm8oKSkp
OwogICAgICAgICAgICAgICAgIGlmIChvYmplY3RTdGFjay5zaXplKCkgKyBhcnJheVN0YWNrLnNp
emUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24pCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBtX2V4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24obV9leGVjLCBjcmVhdGVTdGFja092ZXJmbG93
RXJyb3IobV9leGVjKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1N0YWNrT3Zl
cmZsb3dFcnJvcihtX2V4ZWMpOwogCiAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9
IGFzT2JqZWN0KGluVmFsdWUpOwogICAgICAgICAgICAgICAgIG9iamVjdFN0YWNrLnB1c2gob2Jq
ZWN0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCShy
ZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPGxpbWl0cz4K
ICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYv
RGF0YUxvZy5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L1BhZ2VCbG9jay5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTE3NSw2ICsx
NzYsNDUgQEAgY29uc3QgT3B0aW9uczo6RW50cnlJbmZvIE9wdGlvbnM6OnNfb3B0aQogI3VuZGVm
IEZPUl9FQUNIX09QVElPTgogfTsKIAorc3RhdGljIHZvaWQgcmVjb21wdXRlRGVwZW5kZW50T3B0
aW9ucygpCit7CisjaWYgIUVOQUJMRShKSVQpCisgICAgT3B0aW9uczo6dXNlSklUKCkgPSBmYWxz
ZTsKKyAgICBPcHRpb25zOjp1c2VERkdKSVQoKSA9IGZhbHNlOworI2VuZGlmCisjaWYgIUVOQUJM
RShZQVJSX0pJVCkKKyAgICBPcHRpb25zOjp1c2VSZWdFeHBKSVQoKSA9IGZhbHNlOworI2VuZGlm
CisgICAgCisgICAgaWYgKE9wdGlvbnM6OnNob3dEaXNhc3NlbWJseSgpCisgICAgICAgIHx8IE9w
dGlvbnM6OnNob3dERkdEaXNhc3NlbWJseSgpCisgICAgICAgIHx8IE9wdGlvbnM6OmR1bXBCeXRl
Y29kZUF0REZHVGltZSgpCisgICAgICAgIHx8IE9wdGlvbnM6OmR1bXBHcmFwaEF0RWFjaFBoYXNl
KCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkKKyAgICAgICAgfHwg
T3B0aW9uczo6bG9nQ29tcGlsYXRpb25DaGFuZ2VzKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmFs
aWRhdGVHcmFwaCgpCisgICAgICAgIHx8IE9wdGlvbnM6OnZhbGlkYXRlR3JhcGhBdEVhY2hQaGFz
ZSgpCisgICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKQorICAgICAgICB8fCBPcHRpb25z
Ojp2ZXJib3NlQ29tcGlsYXRpb25RdWV1ZSgpCisgICAgICAgIHx8IE9wdGlvbnM6OnJlcG9ydENv
bXBpbGVUaW1lcygpCisgICAgICAgIHx8IE9wdGlvbnM6OnJlcG9ydEZUTENvbXBpbGVUaW1lcygp
CisgICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDRkEoKQorICAgICAgICB8fCBPcHRpb25zOjp2
ZXJib3NlRlRMRmFpbHVyZSgpKQorICAgICAgICBPcHRpb25zOjphbHdheXNDb21wdXRlSGFzaCgp
ID0gdHJ1ZTsKKyAgICAKKyAgICAvLyBDb21wdXRlIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSBy
ZW9wdGltaXphdGlvbiByZXRyeSBjb3VudGVyLiBUaGlzIGlzIHNpbXBseQorICAgIC8vIHRoZSBs
YXJnZXN0IHZhbHVlIGF0IHdoaWNoIHdlIGRvbid0IG92ZXJmbG93IHRoZSBleGVjdXRlIGNvdW50
ZXIsIHdoZW4gdXNpbmcgaXQKKyAgICAvLyB0byBsZWZ0LXNoaWZ0IHRoZSBleGVjdXRpb24gY291
bnRlciBieSB0aGlzIGFtb3VudC4gQ3VycmVudGx5IHRoZSB2YWx1ZSBlbmRzCisgICAgLy8gdXAg
YmVpbmcgMTgsIHNvIHRoaXMgbG9vcCBpcyBub3Qgc28gdGVycmlibGU7IGl0IHByb2JhYmx5IHRh
a2VzIHVwIH4xMDAgY3ljbGVzCisgICAgLy8gdG90YWwgb24gYSAzMi1iaXQgcHJvY2Vzc29yLgor
ICAgIE9wdGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkgPSAwOworICAgIHdo
aWxlICgoc3RhdGljX2Nhc3Q8aW50NjRfdD4oT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVB
ZnRlckxvbmdXYXJtVXAoKSkgPDwgKE9wdGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVy
TWF4KCkgKyAxKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxp
bnQzMl90Pjo6bWF4KCkpKQorICAgICAgICBPcHRpb25zOjpyZW9wdGltaXphdGlvblJldHJ5Q291
bnRlck1heCgpKys7CisKKyAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGludDY0X3Q+KE9wdGlvbnM6
OnRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IE9wdGlvbnM6OnJlb3B0
aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkpID4gMCk7CisgICAgQVNTRVJUKChzdGF0aWNfY2Fz
dDxpbnQ2NF90PihPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgp
KSA8PCBPcHRpb25zOjpyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpKSA8PSBzdGF0aWNf
Y2FzdDxpbnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSkpOworfQor
CiB2b2lkIE9wdGlvbnM6OmluaXRpYWxpemUoKQogewogICAgIC8vIEluaXRpYWxpemUgZWFjaCBv
ZiB0aGUgb3B0aW9ucyB3aXRoIHRoZWlyIGRlZmF1bHQgdmFsdWVzOgpAQCAtMjA0LDMwICsyNDQs
MTIgQEAgdm9pZCBPcHRpb25zOjppbml0aWFsaXplKCkKICAgICA7IC8vIERlY29uZnVzZSBlZGl0
b3JzIHRoYXQgZG8gYXV0byBpbmRlbnRhdGlvbgogI2VuZGlmCiAgICAgCi0jaWYgIUVOQUJMRShK
SVQpCi0gICAgdXNlSklUKCkgPSBmYWxzZTsKLSAgICB1c2VERkdKSVQoKSA9IGZhbHNlOwotI2Vu
ZGlmCi0jaWYgIUVOQUJMRShZQVJSX0pJVCkKLSAgICB1c2VSZWdFeHBKSVQoKSA9IGZhbHNlOwot
I2VuZGlmCisgICAgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygpOwogCiAgICAgLy8gRG8gcmFu
Z2UgY2hlY2tzIHdoZXJlIG5lZWRlZCBhbmQgbWFrZSBjb3JyZWN0aW9ucyB0byB0aGUgb3B0aW9u
czoKLSAgICBBU1NFUlQodGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSA+PSB0
aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkpOwotICAgIEFTU0VSVCh0aHJlc2hvbGRG
b3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkgPj0gdGhyZXNob2xkRm9yT3B0aW1pemVTb29uKCkpOwot
ICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkgPj0gMCk7Ci0KLSAg
ICAvLyBDb21wdXRlIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSByZW9wdGltaXphdGlvbiByZXRy
eSBjb3VudGVyLiBUaGlzIGlzIHNpbXBseQotICAgIC8vIHRoZSBsYXJnZXN0IHZhbHVlIGF0IHdo
aWNoIHdlIGRvbid0IG92ZXJmbG93IHRoZSBleGVjdXRlIGNvdW50ZXIsIHdoZW4gdXNpbmcgaXQK
LSAgICAvLyB0byBsZWZ0LXNoaWZ0IHRoZSBleGVjdXRpb24gY291bnRlciBieSB0aGlzIGFtb3Vu
dC4gQ3VycmVudGx5IHRoZSB2YWx1ZSBlbmRzCi0gICAgLy8gdXAgYmVpbmcgMTgsIHNvIHRoaXMg
bG9vcCBpcyBub3Qgc28gdGVycmlibGU7IGl0IHByb2JhYmx5IHRha2VzIHVwIH4xMDAgY3ljbGVz
Ci0gICAgLy8gdG90YWwgb24gYSAzMi1iaXQgcHJvY2Vzc29yLgotICAgIHJlb3B0aW1pemF0aW9u
UmV0cnlDb3VudGVyTWF4KCkgPSAwOwotICAgIHdoaWxlICgoc3RhdGljX2Nhc3Q8aW50NjRfdD4o
dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgKHJlb3B0aW1pemF0aW9u
UmV0cnlDb3VudGVyTWF4KCkgKyAxKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1l
cmljX2xpbWl0czxpbnQzMj46Om1heCgpKSkKLSAgICAgICAgcmVvcHRpbWl6YXRpb25SZXRyeUNv
dW50ZXJNYXgoKSsrOwotCi0gICAgQVNTRVJUKChzdGF0aWNfY2FzdDxpbnQ2NF90Pih0aHJlc2hv
bGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCByZW9wdGltaXphdGlvblJldHJ5Q291
bnRlck1heCgpKSA+IDApOwotICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8aW50NjRfdD4odGhyZXNo
b2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgcmVvcHRpbWl6YXRpb25SZXRyeUNv
dW50ZXJNYXgoKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxp
bnQzMj46Om1heCgpKSk7CisgICAgQVNTRVJUKE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXpl
QWZ0ZXJMb25nV2FybVVwKCkgPj0gT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldh
cm1VcCgpKTsKKyAgICBBU1NFUlQoT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldh
cm1VcCgpID49IE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXplU29vbigpKTsKKyAgICBBU1NF
UlQoT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgpID49IDApOwogfQog
CiAvLyBQYXJzZXMgYSBzaW5nbGUgY29tbWFuZCBsaW5lIG9wdGlvbiBpbiB0aGUgZm9ybWF0ICI8
b3B0aW9uTmFtZT49PHZhbHVlPiIKQEAgLTI1MSw2ICsyNzMsNyBAQCBib29sIE9wdGlvbnM6OnNl
dE9wdGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgICAgIGJvb2wgc3VjY2VzcyA9IHBhcnNlKHZh
bHVlU3RyLCB2YWx1ZSk7ICAgICAgICAgIFwKICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgbmFtZV8oKSA9IHZhbHVl
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZWNvbXB1dGVEZXBl
bmRlbnRPcHRpb25zKCk7ICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHJldHVybiB0cnVl
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICB9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHJldHVybiBmYWxz
ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTI1OSw3ICsyODIsNyBA
QCBib29sIE9wdGlvbnM6OnNldE9wdGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgSlNDX09QVElP
TlMoRk9SX0VBQ0hfT1BUSU9OKQogI3VuZGVmIEZPUl9FQUNIX09QVElPTgogCi0gICAgICAgIHJl
dHVybiBmYWxzZTsgLy8gTm8gb3B0aW9uIG1hdGNoZWQuCisgICAgcmV0dXJuIGZhbHNlOyAvLyBO
byBvcHRpb24gbWF0Y2hlZC4KIH0KIAogdm9pZCBPcHRpb25zOjpkdW1wQWxsT3B0aW9ucyhGSUxF
KiBzdHJlYW0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShy
ZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgogI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1
ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApAQCAtOTQsNiArOTUsMTAgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5n
ZTsKICAgICB2KGJvb2wsIHVzZURGR0pJVCwgdHJ1ZSkgXAogICAgIHYoYm9vbCwgdXNlUmVnRXhw
SklULCB0cnVlKSBcCiAgICAgXAorICAgIHYodW5zaWduZWQsIG1heFBlclRocmVhZFN0YWNrVXNh
Z2UsIDQgKiBNQikgXAorICAgIHYodW5zaWduZWQsIHJlc2VydmVkWm9uZVNpemUsIDEyOCAqIEtC
KSBcCisgICAgdih1bnNpZ25lZCwgZXJyb3JNb2RlUmVzZXJ2ZWRab25lU2l6ZSwgNjQgKiBLQikg
XAorICAgIFwKICAgICB2KGJvb2wsIGNyYXNoSWZDYW50QWxsb2NhdGVKSVRNZW1vcnksIGZhbHNl
KSBcCiAgICAgXAogICAgIHYoYm9vbCwgZm9yY2VERkdDb2RlQmxvY2tMaXZlbmVzcywgZmFsc2Up
IFwKQEAgLTExOCwxMSArMTIzLDE5IEBAIHR5cGVkZWYgT3B0aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7
CiAgICAgdihib29sLCB2ZXJib3NlQ2FsbExpbmssIGZhbHNlKSBcCiAgICAgdihib29sLCB2ZXJi
b3NlQ29tcGlsYXRpb25RdWV1ZSwgZmFsc2UpIFwKICAgICB2KGJvb2wsIHJlcG9ydENvbXBpbGVU
aW1lcywgZmFsc2UpIFwKKyAgICB2KGJvb2wsIHJlcG9ydEZUTENvbXBpbGVUaW1lcywgZmFsc2Up
IFwKICAgICB2KGJvb2wsIHZlcmJvc2VDRkEsIGZhbHNlKSBcCisgICAgdihib29sLCB2ZXJib3Nl
RlRMVG9KU1RodW5rLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgdmVyYm9zZUZUTEZhaWx1cmUsIGZh
bHNlKSBcCisgICAgdihib29sLCBhbHdheXNDb21wdXRlSGFzaCwgZmFsc2UpIFwKKyAgICB2KGJv
b2wsIHRlc3RUaGVGVEwsIGZhbHNlKSBcCisgICAgdihib29sLCB2ZXJib3NlU2FuaXRpemVTdGFj
aywgZmFsc2UpIFwKICAgICBcCi0gICAgdihib29sLCBlbmFibGVPU1JFbnRyeUluTG9vcHMsIHRy
dWUpIFwKKyAgICB2KGJvb2wsIGVuYWJsZU9TUkVudHJ5VG9ERkcsIHRydWUpIFwKKyAgICB2KGJv
b2wsIGVuYWJsZU9TUkVudHJ5VG9GVEwsIHRydWUpIFwKICAgICBcCiAgICAgdihib29sLCB1c2VF
eHBlcmltZW50YWxGVEwsIGZhbHNlKSBcCisgICAgdihib29sLCBlbmFibGVFeHBlcmltZW50YWxG
VExDb3ZlcmFnZSwgZmFsc2UpIFwKICAgICB2KGJvb2wsIHVzZUZUTFRCQUEsIHRydWUpIFwKICAg
ICB2KGJvb2wsIGVuYWJsZUxMVk1GYXN0SVNlbCwgZmFsc2UpIFwKICAgICB2KGJvb2wsIHVzZUxM
Vk1TbWFsbENvZGVNb2RlbCwgZmFsc2UpIFwKQEAgLTEzNCwxMCArMTQ3LDEyIEBAIHR5cGVkZWYg
T3B0aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7CiAgICAgdih1bnNpZ25lZCwgbGx2bUJhY2tlbmRPcHRp
bWl6YXRpb25MZXZlbCwgMikgXAogICAgIHYodW5zaWduZWQsIGxsdm1PcHRpbWl6YXRpb25MZXZl
bCwgMikgXAogICAgIHYodW5zaWduZWQsIGxsdm1TaXplTGV2ZWwsIDApIFwKKyAgICB2KGJvb2ws
IGxsdm1EaXNhbGxvd0FWWCwgdHJ1ZSkgXAogICAgIHYoYm9vbCwgZnRsQ3Jhc2hlcywgZmFsc2Up
IC8qIGZvb2wtcHJvb2Ygd2F5IG9mIGNoZWNraW5nIHRoYXQgeW91IGVuZGVkIHVwIGluIHRoZSBG
VEwuIDstKSAqL1wKICAgICBcCiAgICAgdihib29sLCBlbmFibGVDb25jdXJyZW50SklULCB0cnVl
KSBcCi0gICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZDb21waWxlclRocmVhZHMsIGNvbXB1dGVOdW1i
ZXJPZldvcmtlclRocmVhZHMoMikgLSAxKSBcCisgICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZERkdD
b21waWxlclRocmVhZHMsIGNvbXB1dGVOdW1iZXJPZldvcmtlclRocmVhZHMoMikgLSAxKSBcCisg
ICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMsIGNvbXB1dGVOdW1iZXJP
ZldvcmtlclRocmVhZHMoOCkgLSAxKSBcCiAgICAgXAogICAgIHYoYm9vbCwgZW5hYmxlUHJvZmls
ZXIsIGZhbHNlKSBcCiAgICAgXApAQCAtMTQ2LDYgKzE2MSw4IEBAIHR5cGVkZWYgT3B0aW9uUmFu
Z2Ugb3B0aW9uUmFuZ2U7CiAgICAgXAogICAgIHYoYm9vbCwgZW5hYmxlQXJjaGl0ZWN0dXJlU3Bl
Y2lmaWNPcHRpbWl6YXRpb25zLCB0cnVlKSBcCiAgICAgXAorICAgIHYoYm9vbCwgYnJlYWtPblRo
cm93LCBmYWxzZSkgXAorICAgIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtT3B0aW1pemF0aW9u
Q2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwgMTAwMDApIFwKICAgICBcCiAgICAgdih1bnNpZ25l
ZCwgbWF4aW11bUZ1bmN0aW9uRm9yQ2FsbElubGluZUNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQs
IDE4MCkgXApAQCAtMTU0LDYgKzE3MSwxMiBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJh
bmdlOwogICAgIFwKICAgICAvKiBEZXB0aCBvZiBpbmxpbmUgc3RhY2ssIHNvIDEgPSBubyBpbmxp
bmluZywgMiA9IG9uZSBsZXZlbCwgZXRjLiAqLyBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUlu
bGluaW5nRGVwdGgsIDUpIFwKKyAgICB2KHVuc2lnbmVkLCBtYXhpbXVtSW5saW5pbmdSZWN1cnNp
b24sIDIpIFwKKyAgICB2KHVuc2lnbmVkLCBtYXhpbXVtSW5saW5pbmdEZXB0aEZvck11c3RJbmxp
bmUsIDcpIFwKKyAgICB2KHVuc2lnbmVkLCBtYXhpbXVtSW5saW5pbmdSZWN1cnNpb25Gb3JNdXN0
SW5saW5lLCAzKSBcCisgICAgXAorICAgIHYoYm9vbCwgZW5hYmxlUG9seXZhcmlhbnRDYWxsSW5s
aW5pbmcsIHRydWUpIFwKKyAgICB2KGJvb2wsIGVuYWJsZVBvbHl2YXJpYW50QnlJZElubGluaW5n
LCB0cnVlKSBcCiAgICAgXAogICAgIHYodW5zaWduZWQsIG1heGltdW1CaW5hcnlTdHJpbmdTd2l0
Y2hDYXNlTGVuZ3RoLCA1MCkgXAogICAgIHYodW5zaWduZWQsIG1heGltdW1CaW5hcnlTdHJpbmdT
d2l0Y2hUb3RhbExlbmd0aCwgMjAwMCkgXApAQCAtMjEwLDYgKzIzMyw3IEBAIHR5cGVkZWYgT3B0
aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7CiAgICAgdihib29sLCBzaG93T2JqZWN0U3RhdGlzdGljcywg
ZmFsc2UpIFwKICAgICBcCiAgICAgdihib29sLCBsb2dHQywgZmFsc2UpIFwKKyAgICB2KGJvb2ws
IGRpc2FibGVHQywgZmFsc2UpIFwKICAgICB2KHVuc2lnbmVkLCBnY01heEhlYXBTaXplLCAwKSBc
CiAgICAgdihib29sLCByZWNvcmRHQ1BhdXNlVGltZXMsIGZhbHNlKSBcCiAgICAgdihib29sLCBs
b2dIZWFwU3RhdGlzdGljc0F0RXhpdCwgZmFsc2UpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZWdpc3RlclByZXNl
cnZhdGlvbk1vZGVfaAorI2RlZmluZSBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGVfaAorCituYW1l
c3BhY2UgSlNDIHsKKworZW51bSBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgeworICAgIFJlZ2lz
dGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQsCisgICAgTXVzdFByZXNlcnZlUmVnaXN0ZXJzCit9
OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIFJlZ2lzdGVyUHJlc2VydmF0aW9u
TW9kZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrQWxpZ25t
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tB
bGlnbm1lbnQuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RhY2tBbGlnbm1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAog
I2RlZmluZSBTdGFja0FsaWdubWVudF9oCiAKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCisjaW5j
bHVkZSAiSlNTdGFjay5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewogCkBAIC0zOCw2ICs0MCwyNSBAQCBpbmxpbmUgdW5zaWduZWQgc3RhY2tBbGlnbm1l
bnRSZWdpc3RlcnMoCiAgICAgcmV0dXJuIHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSAvIHNpemVvZihF
bmNvZGVkSlNWYWx1ZSk7CiB9CiAKKy8vIEFsaWduIGFyZ3VtZW50IGNvdW50IHRha2luZyBpbnRv
IGFjY291bnQgdGhlIENhbGxGcmFtZUhlYWRlclNpemUgbWF5IGJlCisvLyBhbiAidW5hbGlnbmVk
IiBjb3VudCBvZiByZWdpc3RlcnMuCitpbmxpbmUgdW5zaWduZWQgcm91bmRBcmd1bWVudENvdW50
VG9BbGlnbkZyYW1lKHVuc2lnbmVkIGFyZ3VtZW50Q291bnQpCit7CisgICAgcmV0dXJuIFdURjo6
cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBhcmd1bWVudENv
dW50ICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSkgLSBKU1N0YWNrOjpDYWxsRnJhbWVI
ZWFkZXJTaXplOworfQorCisvLyBBbGlnbiBsb2NhbCByZWdpc3RlciBjb3VudCB0byBtYWtlIHRo
ZSBsYXN0IGxvY2FsIGVuZCBvbiBhIHN0YWNrIGFsaWduZWQgYWRkcmVzcyBnaXZlbiB0aGUKKy8v
IENhbGxGcmFtZSBpcyBhdCBhbiBhZGRyZXNzIHRoYXQgaXMgc3RhY2sgYWxpZ25lZCBtaW51cyBK
U1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZQoraW5saW5lIHVuc2lnbmVkIHJvdW5kTG9jYWxS
ZWdpc3RlckNvdW50Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KHVuc2lnbmVkIGxvY2FsUmVnaXN0ZXJD
b3VudCkKK3sKKyAgICByZXR1cm4gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25t
ZW50UmVnaXN0ZXJzKCksIGxvY2FsUmVnaXN0ZXJDb3VudCArIEpTU3RhY2s6OkNhbGxlckZyYW1l
QW5kUENTaXplKSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplOworfQorCitpbmxpbmUg
dW5zaWduZWQgbG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKQoreworICAgIHJldHVybiBXVEY6
OmZhc3RMb2cyKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKIAogI2VuZGlmIC8vIFN0YWNrQWxpZ25tZW50X2gKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3Bw
CShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdSZWN1cnNpb25DaGVja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogSlNWYWx1ZSBTdHJpbmdSZWN1cnNpb25DaGVja2VyOjp0aHJvd1N0
YWNrT3ZlcmZsb3dFcnJvcigpCiB7Ci0gICAgcmV0dXJuIG1fZXhlYy0+dm0oKS50aHJvd0V4Y2Vw
dGlvbihtX2V4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpKTsKKyAgICByZXR1
cm4gSlNDOjp0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpOwogfQogCiBKU1ZhbHVlIFN0
cmluZ1JlY3Vyc2lvbkNoZWNrZXI6OmVtcHR5U3RyaW5nKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTA0OCw4ICsxMDQ4LDEzIEBAIHZvaWQgU3RydWN0dXJlOjpkdW1wKFByaW50U3RyZWFtJiBv
dXQpIGMKICAgICBpZiAodGFibGUpIHsKICAgICAgICAgUHJvcGVydHlUYWJsZTo6aXRlcmF0b3Ig
aXRlciA9IHRhYmxlLT5iZWdpbigpOwogICAgICAgICBQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBl
bmQgPSB0YWJsZS0+ZW5kKCk7Ci0gICAgICAgIGZvciAoOyBpdGVyICE9IGVuZDsgKytpdGVyKQor
ICAgICAgICBmb3IgKDsgaXRlciAhPSBlbmQ7ICsraXRlcikgewogICAgICAgICAgICAgb3V0LnBy
aW50KGNvbW1hLCBpdGVyLT5rZXksICI6Iiwgc3RhdGljX2Nhc3Q8aW50PihpdGVyLT5vZmZzZXQp
KTsKKyAgICAgICAgICAgIGlmIChpdGVyLT5zcGVjaWZpY1ZhbHVlKSB7CisgICAgICAgICAgICAg
ICAgRHVtcENvbnRleHQgZHVtbXlDb250ZXh0OworICAgICAgICAgICAgICAgIG91dC5wcmludCgi
PT4iLCBSYXdQb2ludGVyKGl0ZXItPnNwZWNpZmljVmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3RydWN0dXJlLT5tX2xvY2sudW5sb2Nr
KCk7CiAgICAgfQpAQCAtMTA1OSw2ICsxMDY0LDEwIEBAIHZvaWQgU3RydWN0dXJlOjpkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGMKICAgICAgICAgaWYgKCFzdHJ1Y3R1cmUtPm1fbmFtZUluUHJldmlv
dXMpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCBzdHJ1
Y3R1cmUtPm1fbmFtZUluUHJldmlvdXMuZ2V0KCksICI6Iiwgc3RhdGljX2Nhc3Q8aW50PihzdHJ1
Y3R1cmUtPm1fb2Zmc2V0KSk7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPm1fc3BlY2lmaWNWYWx1
ZUluUHJldmlvdXMpIHsKKyAgICAgICAgICAgIER1bXBDb250ZXh0IGR1bW15Q29udGV4dDsKKyAg
ICAgICAgICAgIG91dC5wcmludCgiPT4iLCBSYXdQb2ludGVyKHN0cnVjdHVyZS0+bV9zcGVjaWZp
Y1ZhbHVlSW5QcmV2aW91cy5nZXQoKSkpOworICAgICAgICB9CiAgICAgfQogICAgIAogICAgIG91
dC5wcmludCgifSwgIiwgSW5kZXhpbmdUeXBlRHVtcChpbmRleGluZ1R5cGUoKSkpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkocmV2aXNpb24gMTYyOTYxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSwgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEsIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMCwxMSArMzAsMTMgQEAKICNpbmNsdWRlICJWTS5oIgogCiAjaW5j
bHVkZSAiQXJnTGlzdC5oIgorI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgi
CiAjaW5jbHVkZSAiQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50LmgiCiAjaW5jbHVkZSAi
Q2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNv
ZGVDYWNoZS5oIgogI2luY2x1ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCisjaW5jbHVkZSAiQ29t
bW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiREZHTG9uZ0xpdmVkU3RhdGUuaCIKICNpbmNsdWRl
ICJERkdXb3JrbGlzdC5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyQWN0aXZhdGlvbi5oIgpAQCAtNDks
NiArNTEsNyBAQAogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJbmNyZW1lbnRh
bFN3ZWVwZXIuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIkpJVENvZGUu
aCIKICNpbmNsdWRlICJKU0FQSVZhbHVlV3JhcHBlci5oIgogI2luY2x1ZGUgIkpTQWN0aXZhdGlv
bi5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKQEAgLTE2Niw2ICsxNjksNyBAQCBWTTo6Vk0oVk1U
eXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCB2bVR5cGUodm1UeXBlKQogICAg
ICwgY2xpZW50RGF0YSgwKQogICAgICwgdG9wQ2FsbEZyYW1lKENhbGxGcmFtZTo6bm9DYWxsZXIo
KSkKKyAgICAsIHN0YWNrUG9pbnRlckF0Vk1FbnRyeSgwKQogICAgICwgYXJyYXlDb25zdHJ1Y3Rv
clRhYmxlKGFkb3B0UHRyKG5ldyBIYXNoVGFibGUoSlNDOjphcnJheUNvbnN0cnVjdG9yVGFibGUp
KSkKICAgICAsIGFycmF5UHJvdG90eXBlVGFibGUoYWRvcHRQdHIobmV3IEhhc2hUYWJsZShKU0M6
OmFycmF5UHJvdG90eXBlVGFibGUpKSkKICAgICAsIGJvb2xlYW5Qcm90b3R5cGVUYWJsZShhZG9w
dFB0cihuZXcgSGFzaFRhYmxlKEpTQzo6Ym9vbGVhblByb3RvdHlwZVRhYmxlKSkpCkBAIC0yMTYs
NyArMjIwLDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAg
ICwgbV9pbml0aWFsaXppbmdPYmplY3RDbGFzcygwKQogI2VuZGlmCiAgICAgLCBtX3N0YWNrTGlt
aXQoMCkKLSNpZiBVU0UoU0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0spCisjaWYgRU5BQkxFKExMSU5U
X0NfTE9PUCkKICAgICAsIG1fanNTdGFja0xpbWl0KDApCiAjZW5kaWYKICAgICAsIG1faW5EZWZp
bmVPd25Qcm9wZXJ0eShmYWxzZSkKQEAgLTIyNSw3ICsyMjksMTEgQEAgVk06OlZNKFZNVHlwZSB2
bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogewogICAgIGludGVycHJldGVyID0gbmV3IEludGVy
cHJldGVyKCp0aGlzKTsKICAgICBTdGFja0JvdW5kcyBzdGFjayA9IHd0ZlRocmVhZERhdGEoKS5z
dGFjaygpOwotICAgIHNldFN0YWNrTGltaXQoc3RhY2sucmVjdXJzaW9uTGltaXQoKSk7CisgICAg
dXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKE9wdGlvbnM6OnJlc2VydmVkWm9u
ZVNpemUoKSk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBpbnRlcnByZXRlci0+c3Rh
Y2soKS5zZXRSZXNlcnZlZFpvbmVTaXplKE9wdGlvbnM6OnJlc2VydmVkWm9uZVNpemUoKSk7Cisj
ZW5kaWYKKyAgICBzZXRMYXN0U3RhY2tUb3Aoc3RhY2sub3JpZ2luKCkpOwogCiAgICAgLy8gTmVl
ZCB0byBiZSBjYXJlZnVsIHRvIGtlZXAgZXZlcnl0aGluZyBjb25zaXN0ZW50IGhlcmUKICAgICBK
U0xvY2tIb2xkZXIgbG9jayh0aGlzKTsKQEAgLTI2Nyw3ICsyNzUsOSBAQCBWTTo6Vk0oVk1UeXBl
IHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAKICNpZiBFTkFCTEUoSklUKQogICAgIGppdFN0
dWJzID0gYWRvcHRQdHIobmV3IEpJVFRodW5rcygpKTsKKyAgICBhcml0eUNoZWNrRmFpbFJldHVy
blRodW5rcyA9IHN0ZDo6bWFrZV91bmlxdWU8QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M+KCk7
CiAjZW5kaWYKKyAgICBhcml0eUNoZWNrRGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8Q29tbW9uU2xv
d1BhdGhzOjpBcml0eUNoZWNrRGF0YT4oKTsKIAogI2lmIEVOQUJMRShGVExfSklUKQogICAgIGZ0
bFRodW5rcyA9IHN0ZDo6bWFrZV91bmlxdWU8RlRMOjpUaHVua3M+KCk7CkBAIC0yODAsNyArMjkw
LDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogI2VuZGlmCiAK
ICAgICBoZWFwLm5vdGlmeUlzU2FmZVRvQ29sbGVjdCgpOwotCisgICAgCiAgICAgTExJbnQ6OkRh
dGE6OnBlcmZvcm1Bc3NlcnRpb25zKCp0aGlzKTsKICAgICAKICAgICBpZiAoT3B0aW9uczo6ZW5h
YmxlUHJvZmlsZXIoKSkgewpAQCAtMzA2LDYgKzMxNiwxNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlw
ZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgbV90eXBlZEFycmF5Q29udHJvbGxlciA9IGFkb3B0
UmVmKG5ldyBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcigpKTsKIH0KIAorI2lmIEVOQUJMRShE
RkdfSklUKQorc3RhdGljIHZvaWQgY2xlYW5Xb3JrbGlzdChWTSYgdm0sIERGRzo6V29ya2xpc3Qq
IHdvcmtsaXN0KQoreworICAgIGlmICghd29ya2xpc3QpCisgICAgICAgIHJldHVybjsKKyAgICB3
b3JrbGlzdC0+d2FpdFVudGlsQWxsUGxhbnNGb3JWTUFyZVJlYWR5KHZtKTsKKyAgICB3b3JrbGlz
dC0+cmVtb3ZlQWxsUmVhZHlQbGFuc0ZvclZNKHZtKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoREZH
X0pJVCkKKwogVk06On5WTSgpCiB7CiAgICAgLy8gTmV2ZXIgR0MsIGV2ZXIgYWdhaW4uCkBAIC0z
MTQsMTAgKzMzNCw4IEBAIFZNOjp+Vk0oKQogI2lmIEVOQUJMRShERkdfSklUKQogICAgIC8vIE1h
a2Ugc3VyZSBjb25jdXJyZW50IGNvbXBpbGF0aW9ucyBhcmUgZG9uZSwgYnV0IGRvbid0IGluc3Rh
bGwgdGhlbSwgc2luY2UgdGhlcmUgaXMKICAgICAvLyBubyBwb2ludCB0byBkb2luZyBzby4KLSAg
ICBpZiAod29ya2xpc3QpIHsKLSAgICAgICAgd29ya2xpc3QtPndhaXRVbnRpbEFsbFBsYW5zRm9y
Vk1BcmVSZWFkeSgqdGhpcyk7Ci0gICAgICAgIHdvcmtsaXN0LT5yZW1vdmVBbGxSZWFkeVBsYW5z
Rm9yVk0oKnRoaXMpOwotICAgIH0KKyAgICBjbGVhbldvcmtsaXN0KCp0aGlzLCBERkc6OmV4aXN0
aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKSk7CisgICAgY2xlYW5Xb3JrbGlzdCgqdGhpcywg
REZHOjpleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkpOwogI2VuZGlmIC8vIEVOQUJM
RShERkdfSklUKQogICAgIAogICAgIC8vIENsZWFyIHRoaXMgZmlyc3QgdG8gZW5zdXJlIHRoYXQg
bm9ib2R5IHRyaWVzIHRvIHJlbW92ZSB0aGVtc2VsdmVzIGZyb20gaXQuCkBAIC00NjEsOCArNDc5
LDggQEAgTmF0aXZlRXhlY3V0YWJsZSogVk06OmdldEhvc3RGdW5jdGlvbihOYQogTmF0aXZlRXhl
Y3V0YWJsZSogVk06OmdldEhvc3RGdW5jdGlvbihOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0
aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUV4ZWN1dGFibGU6
OmNyZWF0ZSgqdGhpcywKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTElu
dENvZGVSZWYobGxpbnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZSksIGZ1bmN0aW9uLAotICAgICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9uYXRpdmVf
Y29uc3RydWN0X3RyYW1wb2xpbmUpLCBjb25zdHJ1Y3RvciwKKyAgICAgICAgYWRvcHRSZWYobmV3
IE5hdGl2ZUpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYo
bGxpbnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZSksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKSwg
ZnVuY3Rpb24sCisgICAgICAgIGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2RlKE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJh
bXBvbGluZSksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKSwgY29uc3RydWN0b3IsCiAgICAgICAg
IE5vSW50cmluc2ljKTsKIH0KIApAQCAtNDkwLDE0ICs1MDgsMjEgQEAgdm9pZCBWTTo6c3RvcFNh
bXBsaW5nKCkKICAgICBpbnRlcnByZXRlci0+c3RvcFNhbXBsaW5nKCk7CiB9CiAKLXZvaWQgVk06
OnByZXBhcmVUb0Rpc2NhcmRDb2RlKCkKLXsKICNpZiBFTkFCTEUoREZHX0pJVCkKK3N0YXRpYyB2
b2lkIHByZXBhcmVUb0Rpc2NhcmRDb2RlRm9yKFZNJiB2bSwgREZHOjpXb3JrbGlzdCogd29ya2xp
c3QpCit7CiAgICAgaWYgKCF3b3JrbGlzdCkKICAgICAgICAgcmV0dXJuOwotICAgIAotICAgIHdv
cmtsaXN0LT5jb21wbGV0ZUFsbFBsYW5zRm9yVk0oKnRoaXMpOwotI2VuZGlmCisgICAgd29ya2xp
c3QtPmNvbXBsZXRlQWxsUGxhbnNGb3JWTSh2bSk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKERGR19K
SVQpCisKK3ZvaWQgVk06OnByZXBhcmVUb0Rpc2NhcmRDb2RlKCkKK3sKKyNpZiBFTkFCTEUoREZH
X0pJVCkKKyAgICBwcmVwYXJlVG9EaXNjYXJkQ29kZUZvcigqdGhpcywgREZHOjpleGlzdGluZ0ds
b2JhbERGR1dvcmtsaXN0T3JOdWxsKCkpOworICAgIHByZXBhcmVUb0Rpc2NhcmRDb2RlRm9yKCp0
aGlzLCBERkc6OmV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKSk7CisjZW5kaWYgLy8g
RU5BQkxFKERGR19KSVQpCiB9CiAKIHZvaWQgVk06OmRpc2NhcmRBbGxDb2RlKCkKQEAgLTYzMiw2
ICs2NTcsMTEgQEAgc3RhdGljIHZvaWQgYXBwZW5kU291cmNlVG9FcnJvcihDYWxsRnJhbQogICAg
IAogSlNWYWx1ZSBWTTo6dGhyb3dFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGVy
cm9yKQogeworICAgIGlmIChPcHRpb25zOjpicmVha09uVGhyb3coKSkgeworICAgICAgICBkYXRh
TG9nKCJJbiBjYWxsIGZyYW1lICIsIFJhd1BvaW50ZXIoZXhlYyksICIgZm9yIGNvZGUgYmxvY2sg
IiwgKmV4ZWMtPmNvZGVCbG9jaygpLCAiXG4iKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9Cisg
ICAgCiAgICAgQVNTRVJUKGV4ZWMgPT0gdG9wQ2FsbEZyYW1lIHx8IGV4ZWMgPT0gZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCkgfHwgZXhlYyA9PSBleGVjLT52bUVudHJ5
R2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSk7CiAgICAgCiAgICAgVmVjdG9yPFN0YWNrRnJh
bWU+IHN0YWNrVHJhY2U7CkBAIC03MDYsNiArNzM2LDI0IEBAIHZvaWQgVk06OiBjbGVhckV4Y2Vw
dGlvblN0YWNrKCkKICAgICBtX2V4Y2VwdGlvblN0YWNrID0gUmVmQ291bnRlZEFycmF5PFN0YWNr
RnJhbWU+KCk7CiB9CiAKK3NpemVfdCBWTTo6dXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpv
bmVTaXplKHNpemVfdCByZXNlcnZlZFpvbmVTaXplKQoreworICAgIHNpemVfdCBvbGRSZXNlcnZl
ZFpvbmVTaXplID0gbV9yZXNlcnZlZFpvbmVTaXplOworICAgIG1fcmVzZXJ2ZWRab25lU2l6ZSA9
IHJlc2VydmVkWm9uZVNpemU7CisKKyAgICB2b2lkKiBzdGFja0xpbWl0OworICAgIGlmIChzdGFj
a1BvaW50ZXJBdFZNRW50cnkpIHsKKyAgICAgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFj
aygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOworICAgICAgICBjaGFyKiBzdGFydE9mU3RhY2sgPSBy
ZWludGVycHJldF9jYXN0PGNoYXIqPihzdGFja1BvaW50ZXJBdFZNRW50cnkpOworICAgICAgICBj
aGFyKiBkZXNpcmVkU3RhY2tMaW1pdCA9IHN0YXJ0T2ZTdGFjayAtIE9wdGlvbnM6Om1heFBlclRo
cmVhZFN0YWNrVXNhZ2UoKSArIHJlc2VydmVkWm9uZVNpemU7CisgICAgICAgIHN0YWNrTGltaXQg
PSB3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5yZWN1cnNpb25MaW1pdChyZXNlcnZlZFpvbmVTaXpl
LCBkZXNpcmVkU3RhY2tMaW1pdCk7CisgICAgfSBlbHNlCisgICAgICAgIHN0YWNrTGltaXQgPSB3
dGZUaHJlYWREYXRhKCkuc3RhY2soKS5yZWN1cnNpb25MaW1pdChyZXNlcnZlZFpvbmVTaXplKTsK
KworICAgIHNldFN0YWNrTGltaXQoc3RhY2tMaW1pdCk7CisgICAgcmV0dXJuIG9sZFJlc2VydmVk
Wm9uZVNpemU7Cit9CisKIHZvaWQgcmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoVk0mIHZtKQogewog
ICAgIHZtLnJlbGVhc2VFeGVjdXRhYmxlTWVtb3J5KCk7CkBAIC03MjIsMTYgKzc3MCwxOSBAQCB2
b2lkIFZNOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2CiAgICAgICAgIH0KICAgICB9
CiB9CisjZW5kaWYKIAotREZHOjpXb3JrbGlzdCogVk06OmVuc3VyZVdvcmtsaXN0KCkKK3ZvaWQg
bG9nU2FuaXRpemVTdGFjayhWTSogdm0pCiB7Ci0gICAgaWYgKCFERkc6OmVuYWJsZUNvbmN1cnJl
bnRKSVQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKCF3b3JrbGlzdCkKLSAgICAgICAg
d29ya2xpc3QgPSBERkc6Omdsb2JhbFdvcmtsaXN0KCk7Ci0gICAgcmV0dXJuIHdvcmtsaXN0Lmdl
dCgpOworICAgIGlmIChPcHRpb25zOjp2ZXJib3NlU2FuaXRpemVTdGFjaygpICYmIHZtLT50b3BD
YWxsRnJhbWUpIHsKKyAgICAgICAgaW50IGR1bW15OworICAgICAgICBkYXRhTG9nKAorICAgICAg
ICAgICAgIlNhbml0aXppbmcgc3RhY2sgd2l0aCB0b3AgY2FsbCBmcmFtZSBhdCAiLCBSYXdQb2lu
dGVyKHZtLT50b3BDYWxsRnJhbWUpLAorICAgICAgICAgICAgIiwgY3VycmVudCBzdGFjayBwb2lu
dGVyIGF0ICIsIFJhd1BvaW50ZXIoJmR1bW15KSwgIiwgaW4gIiwKKyAgICAgICAgICAgIHBvaW50
ZXJEdW1wKHZtLT50b3BDYWxsRnJhbWUtPmNvZGVCbG9jaygpKSwgIiBhbmQgbGFzdCBjb2RlIG9y
aWdpbiA9ICIsCisgICAgICAgICAgICB2bS0+dG9wQ2FsbEZyYW1lLT5jb2RlT3JpZ2luKCksICJc
biIpOworICAgIH0KIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKFJFR0VYUF9UUkFDSU5HKQogdm9p
ZCBWTTo6YWRkUmVnRXhwVG9UcmFjZShSZWdFeHAqIHJlZ0V4cCkKQEAgLTc5OSw0ICs4NTAsMTQg
QEAgdm9pZCBWTTo6c2V0RW5hYmxlZFByb2ZpbGVyKExlZ2FjeVByb2ZpbAogICAgIH0KIH0KIAor
dm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk0oVk0qIHZtKQoreworICAgIGxvZ1Nhbml0aXplU3RhY2so
dm0pOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgdm0tPmludGVycHJldGVyLT5zdGFj
aygpLnNhbml0aXplU3RhY2soKTsKKyNlbHNlCisgICAgc2FuaXRpemVTdGFja0ZvclZNSW1wbCh2
bSk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDcgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKKyAgICBjbGFzcyBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rczsKICAgICBj
bGFzcyBDb2RlQmxvY2s7CiAgICAgY2xhc3MgQ29kZUNhY2hlOwogICAgIGNsYXNzIENvbW1vbklk
ZW50aWZpZXJzOwpAQCAtMTAzLDcgKzEwNCw2IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJM
RShERkdfSklUKQogICAgIG5hbWVzcGFjZSBERkcgewogICAgIGNsYXNzIExvbmdMaXZlZFN0YXRl
OwotICAgIGNsYXNzIFdvcmtsaXN0OwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkK
ICNpZiBFTkFCTEUoRlRMX0pJVCkKQEAgLTExMSw2ICsxMTEsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICBjbGFzcyBUaHVua3M7CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorICAg
IG5hbWVzcGFjZSBDb21tb25TbG93UGF0aHMgeworICAgIHN0cnVjdCBBcml0eUNoZWNrRGF0YTsK
KyAgICB9CiAKICAgICBzdHJ1Y3QgSGFzaFRhYmxlOwogICAgIHN0cnVjdCBJbnN0cnVjdGlvbjsK
QEAgLTIwNCwxMCArMjA3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdm9pZCBtYWtl
VXNhYmxlRnJvbU11bHRpcGxlVGhyZWFkcygpIHsgaGVhcC5tYWNoaW5lVGhyZWFkcygpLm1ha2VV
c2FibGVGcm9tTXVsdGlwbGVUaHJlYWRzKCk7IH0KICAgICAgICAgCi0jaWYgRU5BQkxFKERGR19K
SVQpCi0gICAgICAgIERGRzo6V29ya2xpc3QqIGVuc3VyZVdvcmtsaXN0KCk7Ci0jZW5kaWYgLy8g
RU5BQkxFKERGR19KSVQpCi0KICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8SlNMb2NrPiBt
X2FwaUxvY2s7CiAKQEAgLTIyNCwxMiArMjIzLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAgICAgT3duUHRyPERGRzo6TG9uZ0xpdmVkU3Rh
dGU+IGRmZ1N0YXRlOwotICAgICAgICBSZWZQdHI8REZHOjpXb3JrbGlzdD4gd29ya2xpc3Q7CiAj
ZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAKICAgICAgICAgVk1UeXBlIHZtVHlwZTsKICAgICAg
ICAgQ2xpZW50RGF0YSogY2xpZW50RGF0YTsKICAgICAgICAgRXhlY1N0YXRlKiB0b3BDYWxsRnJh
bWU7CisgICAgICAgIHZvaWQqIHN0YWNrUG9pbnRlckF0Vk1FbnRyeTsKICAgICAgICAgV2F0Y2hk
b2cgd2F0Y2hkb2c7CiAKICAgICAgICAgY29uc3QgT3duUHRyPGNvbnN0IEhhc2hUYWJsZT4gYXJy
YXlDb25zdHJ1Y3RvclRhYmxlOwpAQCAtMzQwLDcgKzMzOSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgICAgIHJldHVybiBqaXRTdHVicy0+Y3RpU3R1Yih0aGlzLCBnZW5lcmF0b3IpOwog
ICAgICAgICB9CiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGdldEhvc3RGdW5jdGlvbihOYXRp
dmVGdW5jdGlvbiwgSW50cmluc2ljKTsKLSNlbmRpZgorICAgICAgICAKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzPiBhcml0eUNoZWNrRmFpbFJldHVy
blRodW5rczsKKyNpZiBDUFUoWDg2KQorICAgICAgICB2b2lkKiBjdXJyZW50UmV0dXJuVGh1bmtQ
QzsKKyNlbmRpZiAvLyBDUFUoWDg2KQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhPiBhcml0eUNoZWNr
RGF0YTsKICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEZUTDo6
VGh1bmtzPiBmdGxUaHVua3M7CiAjZW5kaWYKQEAgLTM3MiwxMiArMzc3LDE2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIHRocm93RXhjZXB0aW9u
KEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBKU09iamVj
dCogdGhyb3dFeGNlcHRpb24oRXhlY1N0YXRlKiwgSlNPYmplY3QqKTsKICAgICAgICAgCisgICAg
ICAgIHNpemVfdCByZXNlcnZlZFpvbmVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZXNlcnZlZFpv
bmVTaXplOyB9CisgICAgICAgIHNpemVfdCB1cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9u
ZVNpemUoc2l6ZV90IHJlc2VydmVkWm9uZVNpemUpOworCiAgICAgICAgIHZvaWQqKiBhZGRyZXNz
T2ZKU1N0YWNrTGltaXQoKSB7IHJldHVybiAmbV9qc1N0YWNrTGltaXQ7IH0KKyNpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQogICAgICAgICB2b2lkKiBqc1N0YWNrTGltaXQoKSB7IHJldHVybiBtX2pz
U3RhY2tMaW1pdDsgfQogICAgICAgICB2b2lkIHNldEpTU3RhY2tMaW1pdCh2b2lkKiBsaW1pdCkg
eyBtX2pzU3RhY2tMaW1pdCA9IGxpbWl0OyB9Ci0KKyNlbmRpZgogICAgICAgICB2b2lkKiBzdGFj
a0xpbWl0KCkgeyByZXR1cm4gbV9zdGFja0xpbWl0OyB9Ci0gICAgICAgIHZvaWQgc2V0U3RhY2tM
aW1pdCh2b2lkKiBsaW1pdCkgeyBtX3N0YWNrTGltaXQgPSBsaW1pdDsgfQorCiAgICAgICAgIGJv
b2wgaXNTYWZlVG9SZWN1cnNlKHNpemVfdCBuZWVkZWRTdGFja0luQnl0ZXMgPSAwKSBjb25zdAog
ICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNH
cm93aW5nRG93bndhcmQoKSk7CkBAIC0zODYsMTAgKzM5NSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgICAgIHJldHVybiBjdXJyID49IGxpbWl0ICYmIHN0YXRpY19jYXN0PHNpemVfdD4o
Y3VyciAtIGxpbWl0KSA+PSBuZWVkZWRTdGFja0luQnl0ZXM7CiAgICAgICAgIH0KIAorICAgICAg
ICB2b2lkKiBsYXN0U3RhY2tUb3AoKSB7IHJldHVybiBtX2xhc3RTdGFja1RvcDsgfQorICAgICAg
ICB2b2lkIHNldExhc3RTdGFja1RvcCh2b2lkKiBsYXN0U3RhY2tUb3ApIHsgbV9sYXN0U3RhY2tU
b3AgPSBsYXN0U3RhY2tUb3A7IH0KKwogICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNvbnN0IGpz
QXJyYXlDbGFzc0luZm87CiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY29uc3QganNGaW5hbE9i
amVjdENsYXNzSW5mbzsKIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIGV4Y2VwdGlvbkxvY2F0
aW9uOwogICAgICAgICBKU1ZhbHVlIGhvc3RDYWxsUmV0dXJuVmFsdWU7CiAgICAgICAgIEV4ZWNT
dGF0ZSogbmV3Q2FsbEZyYW1lUmV0dXJuVmFsdWU7CiAgICAgICAgIEV4ZWNTdGF0ZSogY2FsbEZy
YW1lRm9yVGhyb3c7CkBAIC00MTIsNyArNDIzLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICAgICAgLy8gbWF4KHNjcmF0Y2ggYnVmZmVyIHNpemUpICogNC4KICAgICAgICAgICAgICAg
ICBzaXplT2ZMYXN0U2NyYXRjaEJ1ZmZlciA9IHNpemUgKiAyOwogCi0gICAgICAgICAgICAgICAg
c2NyYXRjaEJ1ZmZlcnMuYXBwZW5kKFNjcmF0Y2hCdWZmZXI6OmNyZWF0ZShzaXplT2ZMYXN0U2Ny
YXRjaEJ1ZmZlcikpOworICAgICAgICAgICAgICAgIFNjcmF0Y2hCdWZmZXIqIG5ld0J1ZmZlciA9
IFNjcmF0Y2hCdWZmZXI6OmNyZWF0ZShzaXplT2ZMYXN0U2NyYXRjaEJ1ZmZlcik7CisgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQobmV3QnVmZmVyKTsKKyAgICAgICAgICAgICAgICBzY3Jh
dGNoQnVmZmVycy5hcHBlbmQobmV3QnVmZmVyKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgU2NyYXRjaEJ1ZmZlciogcmVzdWx0ID0gc2NyYXRjaEJ1ZmZlcnMubGFzdCgpOwpAQCAtNDkz
LDYgKzUwNiw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBWTShWTVR5cGUsIEhlYXBUeXBl
KTsKICAgICAgICAgc3RhdGljIFZNKiYgc2hhcmVkSW5zdGFuY2VJbnRlcm5hbCgpOwogICAgICAg
ICB2b2lkIGNyZWF0ZU5hdGl2ZVRodW5rKCk7CisKKyAgICAgICAgdm9pZCBzZXRTdGFja0xpbWl0
KHZvaWQqIGxpbWl0KSB7IG1fc3RhY2tMaW1pdCA9IGxpbWl0OyB9CisKICNpZiBFTkFCTEUoQVNT
RU1CTEVSKQogICAgICAgICBib29sIG1fY2FuVXNlQXNzZW1ibGVyOwogI2VuZGlmCkBAIC01MDUs
OCArNTIxLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCiAg
ICAgICAgIGNvbnN0IENsYXNzSW5mbyogbV9pbml0aWFsaXppbmdPYmplY3RDbGFzczsKICNlbmRp
ZgotCi0jaWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQorICAgICAgICBzaXplX3QgbV9y
ZXNlcnZlZFpvbmVTaXplOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgICAgIHN0cnVj
dCB7CiAgICAgICAgICAgICB2b2lkKiBtX3N0YWNrTGltaXQ7CiAgICAgICAgICAgICB2b2lkKiBt
X2pzU3RhY2tMaW1pdDsKQEAgLTUxNyw2ICs1MzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIHZvaWQqIG1fanNTdGFja0xpbWl0OwogICAgICAgICB9OwogI2VuZGlmCisgICAgICAg
IHZvaWQqIG1fbGFzdFN0YWNrVG9wOwogICAgICAgICBKU1ZhbHVlIG1fZXhjZXB0aW9uOwogICAg
ICAgICBib29sIG1faW5EZWZpbmVPd25Qcm9wZXJ0eTsKICAgICAgICAgT3duUHRyPENvZGVDYWNo
ZT4gbV9jb2RlQ2FjaGU7CkBAIC01NDQsNiArNTYxLDEzIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICByZXR1cm4gJm1fdm0tPmhlYXA7CiAgICAgfQogCisjaWYgIUVOQUJMRShMTElOVF9DX0xP
T1ApCisgICAgZXh0ZXJuICJDIiB2b2lkIHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qKTsKKyNl
bmRpZgorCisgICAgdm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk0oVk0qKTsKKyAgICB2b2lkIGxvZ1Nh
bml0aXplU3RhY2soVk0qKTsKKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBWTV9o
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5j
cHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
RW50cnlTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJW
TUVudHJ5U2NvcGUuaCIKIAogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCisjaW5jbHVkZSAiT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVkZSA8d3RmL1N0YWNrQm91bmRzLmg+CiAKQEAg
LTM0LDEyICszNSwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogVk1FbnRyeVNjb3BlOjpWTUVudHJ5
U2NvcGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIDogbV92bSh2
bSkKLSAgICAsIG1fc3RhY2sod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkpCiAgICAgLCBtX2dsb2Jh
bE9iamVjdChnbG9iYWxPYmplY3QpCi0gICAgLCBtX3ByZXYodm0uZW50cnlTY29wZSkKLSAgICAs
IG1fcHJldlN0YWNrTGltaXQodm0uc3RhY2tMaW1pdCgpKQogICAgICwgbV9yZWNvbXBpbGF0aW9u
TmVlZGVkKGZhbHNlKQogeworICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dy
b3dpbmdEb3dud2FyZCgpKTsKICAgICBpZiAoIXZtLmVudHJ5U2NvcGUpIHsKICNpZiBFTkFCTEUo
QVNTRU1CTEVSKQogICAgICAgICBpZiAoRXhlY3V0YWJsZUFsbG9jYXRvcjo6dW5kZXJNZW1vcnlQ
cmVzc3VyZSgpKQpAQCAtNTEsMTcgKzUwLDI0IEBAIFZNRW50cnlTY29wZTo6Vk1FbnRyeVNjb3Bl
KFZNJiB2bSwgSlNHbG8KICAgICAgICAgLy8gb2JzZXJ2ZSB0aW1lIHhvbmUgY2hhbmdlcy4KICAg
ICAgICAgdm0ucmVzZXREYXRlQ2FjaGUoKTsKICAgICB9Ci0gICAgLy8gQ2xlYXIgdGhlIGV4Y2Vw
dGlvbiBzdGFjayBiZXR3ZWVuIGVudHJpZXMKLSAgICB2bS5jbGVhckV4Y2VwdGlvblN0YWNrKCk7
CiAKLSAgICB2b2lkKiBsaW1pdCA9IG1fc3RhY2sucmVjdXJzaW9uTGltaXQocmVxdWlyZWRDYXBh
Y2l0eSgpKTsKLSAgICB2bS5zZXRTdGFja0xpbWl0KGxpbWl0KTsKKyAgICBpZiAoIXZtLnN0YWNr
UG9pbnRlckF0Vk1FbnRyeSkgeworICAgICAgICB2bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSB0
aGlzOworICAgICAgICBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSA9IHZtLnVwZGF0ZVN0YWNrTGlt
aXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShPcHRpb25zOjpyZXNlcnZlZFpvbmVTaXplKCkpOworICAg
IH0KKworICAgIC8vIENsZWFyIHRoZSBjYXB0dXJlZCBleGNlcHRpb24gc3RhY2sgYmV0d2VlbiBl
bnRyaWVzCisgICAgdm0uY2xlYXJFeGNlcHRpb25TdGFjaygpOwogfQogCiBWTUVudHJ5U2NvcGU6
On5WTUVudHJ5U2NvcGUoKQogewotICAgIG1fdm0uZW50cnlTY29wZSA9IG1fcHJldjsKLSAgICBt
X3ZtLnNldFN0YWNrTGltaXQobV9wcmV2U3RhY2tMaW1pdCk7CisgICAgaWYgKG1fdm0uZW50cnlT
Y29wZSA9PSB0aGlzKQorICAgICAgICBtX3ZtLmVudHJ5U2NvcGUgPSBudWxscHRyOworICAgIGlm
IChtX3ZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9PSB0aGlzKSB7CisgICAgICAgIG1fdm0uc3Rh
Y2tQb2ludGVyQXRWTUVudHJ5ID0gbnVsbHB0cjsKKyAgICAgICAgbV92bS51cGRhdGVTdGFja0xp
bWl0V2l0aFJlc2VydmVkWm9uZVNpemUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOworICAgIH0K
IAogICAgIGlmIChtX3JlY29tcGlsYXRpb25OZWVkZWQpIHsKICAgICAgICAgaWYgKG1fdm0uZW50
cnlTY29wZSkKQEAgLTczLDIzICs3OSw0IEBAIFZNRW50cnlTY29wZTo6flZNRW50cnlTY29wZSgp
CiAgICAgfQogfQogCi1zaXplX3QgVk1FbnRyeVNjb3BlOjpyZXF1aXJlZENhcGFjaXR5KCkgY29u
c3QKLXsKLSAgICBJbnRlcnByZXRlciogaW50ZXJwcmV0ZXIgPSBtX3ZtLmludGVycHJldGVyOwot
Ci0gICAgLy8gV2UgcmVxdWlyZSBhIHNtYWxsZXIgc3RhY2sgYnVkZ2V0IGZvciB0aGUgZXJyb3Ig
c3RhY2suIFRoaXMgaXMgdG8gYWxsb3cKLSAgICAvLyBzb21lIG1pbmltYWwgSlMgZXhlY3V0aW9u
IHRvIHByb2NlZWQgYW5kIGRvIHRoZSB3b3JrIG9mIHRocm93aW5nIGEgc3RhY2sKLSAgICAvLyBv
dmVyZmxvdyBlcnJvciBpZiBuZWVkZWQuIEluIGNvbnRyYXN0LCBhcmJpdHJhcnkgSlMgY29kZSB3
aWxsIHJlcXVpcmUgdGhlCi0gICAgLy8gbW9yZSBnZW5lcm91cyBzdGFjayBidWRnZXQgaW4gb3Jk
ZXIgdG8gcHJvY2VlZC4KLSAgICAvLwotICAgIC8vIFRoZXNlIHNpemVzIHdlcmUgZGVyaXZlZCBm
cm9tIHRoZSBzdGFjayB1c2FnZSBvZiBhIG51bWJlciBvZiBzaXRlcyB3aGVuCi0gICAgLy8gbGF5
b3V0IG9jY3VycyB3aGVuIHdlJ3ZlIGFscmVhZHkgY29uc3VtZWQgbW9zdCBvZiB0aGUgQyBzdGFj
ay4KLSAgICBjb25zdCBzaXplX3QgcmVxdWlyZWRTdGFjayA9IDEyOCAqIEtCOwotICAgIGNvbnN0
IHNpemVfdCBlcnJvck1vZGVSZXF1aXJlZFN0YWNrID0gNjQgKiBLQjsKLQotICAgIHNpemVfdCBy
ZXF1aXJlZENhcGFjaXR5ID0gaW50ZXJwcmV0ZXItPmlzSW5FcnJvckhhbmRsaW5nTW9kZSgpID8g
ZXJyb3JNb2RlUmVxdWlyZWRTdGFjayA6IHJlcXVpcmVkU3RhY2s7Ci0gICAgUkVMRUFTRV9BU1NF
UlQobV9zdGFjay5zaXplKCkgPj0gcmVxdWlyZWRDYXBhY2l0eSk7Ci0gICAgcmV0dXJuIHJlcXVp
cmVkQ2FwYWNpdHk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC00NSwxNiArNDUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVjb21waWxhdGlvbk5l
ZWRlZChib29sIHJlY29tcGlsZU5lZWRlZCkgeyBtX3JlY29tcGlsYXRpb25OZWVkZWQgPSByZWNv
bXBpbGVOZWVkZWQ7IH0KIAogcHJpdmF0ZToKLSAgICBzaXplX3QgcmVxdWlyZWRDYXBhY2l0eSgp
IGNvbnN0OwotCiAgICAgVk0mIG1fdm07CiAgICAgU3RhY2tTdGF0czo6Q2hlY2tQb2ludCBtX3N0
YWNrQ2hlY2tQb2ludDsKLSAgICBTdGFja0JvdW5kcyBtX3N0YWNrOwogICAgIEpTR2xvYmFsT2Jq
ZWN0KiBtX2dsb2JhbE9iamVjdDsKLQotICAgIC8vIG1fcHJldiBhbmQgbV9wcmV2U3RhY2tMaW1p
dCBtYXkgYmVsb25nIHRvIGEgZGlmZmVyZW50IHRocmVhZCdzIHN0YWNrLgotICAgIFZNRW50cnlT
Y29wZSogbV9wcmV2OwotICAgIHZvaWQqIG1fcHJldlN0YWNrTGltaXQ7CisgICAgc2l6ZV90IG1f
c2F2ZWRSZXNlcnZlZFpvbmVTaXplOwogICAgIGJvb2wgbV9yZWNvbXBpbGF0aW9uTmVlZGVkOwog
fTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtY29uc3Rh
bnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9hZGQtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1jb25zdGFu
dC1vdmVyZmxvdy1yZWNvdmVyeS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitm
dW5jdGlvbiBmb28oYSkgeworICAgIHJldHVybiBhLmYgKyAyMDAwMDAwMDAwOworfQorCitub0lu
bGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFy
IHJlc3VsdCA9IGZvbyh7ZjoxfSk7CisgICAgaWYgKHJlc3VsdCAhPSAyMDAwMDAwMDAxKQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1
bHQgPSBmb28oe2Y6MjAwMDAwMDAwMH0pOworaWYgKHJlc3VsdCAhPSA0MDAwMDAwMDAwKQorICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWludDUyLWNvbnN0YW50LW92ZXJmbG93LXJlY292
ZXJ5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
YWRkLWludDUyLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQtb3Zl
cmZsb3ctcmVjb3ZlcnkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rp
b24gZm9vKGEpIHsKKyAgICByZXR1cm4gYSAqIDIwOTcxNDQgKyAxMDczNzQ1OTIwOworfQorCitu
b0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAg
dmFyIHJlc3VsdCA9IGZvbygxMDczNzM2MzgzKTsKKyAgICBpZiAocmVzdWx0ICE9IDIyNTE3ODA4
ODY5MzYwNzIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
K30KKwordmFyIHJlc3VsdCA9IGZvbygxMDczNzQ1OTE5KTsKK2lmIChyZXN1bHQgIT0gMjI1MTgw
MDg4NTMwMTI1NikKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1sYXJnZS1j
b25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1sYXJnZS1jb25zdGFudC1vdmVyZmxvdy1y
ZWNvdmVyeS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvYWRkLWludDUyLWxhcmdlLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgcmV0dXJu
IGEgKiAyMDk3MTQ0ICsgMTAwMDAwMDAwMDA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDEwNzM3
NDExNTEpOworICAgIGlmIChyZXN1bHQgIT0gMjI1MTc5OTgxMjM3Mjc0NCkKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9v
KDEwNzM3NDExNTIpOworaWYgKHJlc3VsdCAhPSAyMjUxNzk5ODE0NDY5ODg4KQorICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvYWRkLW92ZXJmbG93LXJlY292ZXJ5LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLW92ZXJmbG93LXJlY292ZXJ5
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9h
ZGQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAor
ZnVuY3Rpb24gZm9vKGEsIGIpIHsKKyAgICByZXR1cm4gYS5mICsgYi5mOworfQorCitub0lubGlu
ZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJl
c3VsdCA9IGZvbyh7ZjoxfSwge2Y6Mn0pOworICAgIGlmIChyZXN1bHQgIT0gMykKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0g
Zm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSk7CitpZiAocmVzdWx0ICE9IDQwMDAw
MDAwMDApCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtc21hbGwtY29uc3RhbnQtb3Zl
cmZsb3ctcmVjb3ZlcnkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9hZGQtc21hbGwtY29uc3RhbnQtb3ZlcmZsb3ctcmVjb3ZlcnkuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1zbWFsbC1j
b25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1
IEBACitmdW5jdGlvbiBmb28oYSkgeworICAgIHJldHVybiBhLmYgKyAxMDAwOworfQorCitub0lu
bGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFy
IHJlc3VsdCA9IGZvbyh7ZjoxfSk7CisgICAgaWYgKHJlc3VsdCAhPSAxMDAxKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBm
b28oe2Y6MjE0NzQ4MzE0OH0pOworaWYgKHJlc3VsdCAhPSAyMTQ3NDg0MTQ4KQorICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FycmF5LXB1c2guanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FycmF5LXB1c2guanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rpb24gZm9vKCkgeworICAgIHZhciBhcnJheSA9
IFtdOworICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQyOyAr
K2kpCisgICAgICAgIHJlc3VsdC5wdXNoKGFycmF5LnB1c2goNyAtIGkpKTsKKyAgICByZXR1cm4g
W2FycmF5LCByZXN1bHRdOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChyZXN1
bHRbMF0udG9TdHJpbmcoKSAhPSAiNyw2LDUsNCwzLDIsMSwwLC0xLC0yLC0zLC00LC01LC02LC03
LC04LC05LC0xMCwtMTEsLTEyLC0xMywtMTQsLTE1LC0xNiwtMTcsLTE4LC0xOSwtMjAsLTIxLC0y
MiwtMjMsLTI0LC0yNSwtMjYsLTI3LC0yOCwtMjksLTMwLC0zMSwtMzIsLTMzLC0zNCIpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIGFycmF5OiAiICsgcmVzdWx0WzBdOworICAgIGlmIChyZXN1
bHRbMV0udG9TdHJpbmcoKSAhPSAiMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUs
MTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQs
MzUsMzYsMzcsMzgsMzksNDAsNDEsNDIiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBhcnJh
eTogIiArIHJlc3VsdFsxXTsKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9lbXB0eS1mdW5jdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2VtcHR5LWZ1bmN0aW9uLmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9lbXB0eS1mdW5jdGlvbi5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiBmb28oKSB7IH0KKworbm9JbmxpbmUo
Zm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1
bHQgPSBmb28oKTsKKyAgICBpZiAocmVzdWx0ICE9PSB2b2lkIDApCisgICAgICAgIHRocm93ICJZ
b3UgYnJva2UgSlNDIHNvIGhhcmQgdGhhdCBldmVuIHRoZSBlbXB0eSBmdW5jdGlvbiBkb2Vzbid0
IHdvcms6ICIgKyByZXN1bHQ7Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQzMi10by1kb3VibGUuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDMyLXRvLWRvdWJs
ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZXhpdC1hZnRlci1pbnQzMi10by1kb3VibGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
NSBAQAorZnVuY3Rpb24gZm9vKHgsIG8pIHsKKyAgICByZXR1cm4gby5mICsgeDsKK30KKworbm9J
bmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZh
ciByZXN1bHQgPSBmb28oNDIuNSwge2Y6NX0pOworICAgIGlmIChyZXN1bHQgIT0gNDcuNSkKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgcmVz
dWx0ID0gZm9vKCI0MiIsIHtmOjV9KTsKK2lmIChyZXN1bHQgIT0gIjU0MiIpCisgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLWRvdWJsZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTIt
dG8tZG91YmxlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLWRvdWJsZS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE2IEBACitmdW5jdGlvbiBmb28oYSwgYiwgYykgeworICAgIHJldHVybiBhLmYgKyBi
LmYgKyBjLmY7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAw
MDAwMDAwfSwge2Y6MC41fSk7CisgICAgaWYgKHJlc3VsdCAhPSA0MDAwMDAwMDAwLjUpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3Vs
dCA9IGZvbyh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAwMDAwMDAwMH0sIHtmOiI0MiJ9KTsKK2lmIChy
ZXN1bHQgIT0gIjQwMDAwMDAwMDA0MiIpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4
aXQtYWZ0ZXItaW50NTItdG8tdmFsdWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWlu
dDUyLXRvLXZhbHVlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9u
IGZvbyhhLCBiLCBjKSB7CisgICAgYy5mLmYgPSBhLmYgKyBiLmY7Cit9CisKK25vSW5saW5lKGZv
byk7CisKK3ZhciBjb3VudGVyID0gMDsKK2Z1bmN0aW9uIG1ha2VXZWlyZE9iamVjdCgpIHsKKyAg
ICB2YXIgcmVzdWx0ID0ge307CisgICAgcmVzdWx0WyJibGFoIiArIChjb3VudGVyKyspXSA9IDQy
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyAr
K2kpIHsKKyAgICB2YXIgbyA9IG1ha2VXZWlyZE9iamVjdCgpOworICAgIGZvbyh7ZjoyMDAwMDAw
MDAwfSwge2Y6MjAwMDAwMDAwMH0sIHtmOm99KTsKKyAgICBpZiAoby5mICE9IDQwMDAwMDAwMDAp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFy
IHRoaW5neTsKK051bWJlci5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXygiZiIsIGZ1bmN0aW9u
KHZhbHVlKSB7IHRoaW5neSA9IHZhbHVlOyB9KTsKK2Zvbyh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAw
MDAwMDAwMH0sIHtmOjQyfSk7CitpZiAodGhpbmd5ICE9IDQwMDAwMDAwMDApCisgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgdGhpbmd5OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWxsdm0tZm9sZHMtbGFyZ2UtaW50LWNvbnN0YW50
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhp
dC1hZnRlci1sbHZtLWZvbGRzLWxhcmdlLWludC1jb25zdGFudC5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1sbHZtLWZvbGRz
LWxhcmdlLWludC1jb25zdGFudC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitm
dW5jdGlvbiBmb28obywgaW8pIHsKKyAgICB2YXIgaSA9IGlvLmY7CisgICAgaWYgKGkgIT0gOTIx
NjApCisgICAgICAgIG8uZyA9IDQyOworICAgIHJldHVybiBvLmYuZiArIGk7Cit9CisKK25vSW5s
aW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIg
cmVzdWx0ID0gZm9vKHtmOntmOjQyfX0sIHtmOjkyMTYwfSk7CisgICAgaWYgKHJlc3VsdCAhPSA5
MjIwMikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQor
Cit2YXIgcmVzdWx0ID0gZm9vKHtmOntnOjIwLCBmOjIxfX0sIHtmOjkyMTYwfSk7CitpZiAocmVz
dWx0ICE9IDkyMTgxKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1mcm9tLWZ0bC13
aXRoLWFyaXR5LWNoZWNrLWZhaWwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9leGl0LWZyb20tZnRsLXdpdGgtYXJpdHktY2hlY2stZmFpbC5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1m
cm9tLWZ0bC13aXRoLWFyaXR5LWNoZWNrLWZhaWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxOCBAQAorZnVuY3Rpb24gZm9vKG8sIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGopIHsK
KyAgICByZXR1cm4gby5mOworfQorCitmdW5jdGlvbiBiYXIobykgeworICAgIHJldHVybiBmb28o
byk7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShiYXIpOworCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwMDsgKytpKQorICAgIGJhcih7Zjo0Mn0pOworCit2YXIgcmVzdWx0ID0gYmFy
KHtnOjI0LCBmOjQzfSk7CitpZiAocmVzdWx0ICE9IDQzKQorICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9mdGwtYXJpdGhjb3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhjb3MuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aGNvcy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBNYXRoLmNv
cyh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFyIGogPSAwOworZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDA7ICsraSkKKyAgICBqID0gZm9vKGkpOworCitpZiAoLTAuNTA5ODc1MzcyNDE3
OTAwOSAhPSBqKXsKKyAgICB0aHJvdyAiRXJyb3IiCit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNpbi5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNpbi5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc2luLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0
dXJuIE1hdGguc2luKHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgaiA9IDA7Citmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIGogPSBmb28oaSk7CisKK2lmICgwLjg2
MDI0ODI4MDc4OTc0MiAhPSBqKXsKKyAgICB0aHJvdyAiRXJyb3IiCit9CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhzcXJ0LmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJp
dGhzcXJ0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4
KSB7CisgICAgcmV0dXJuIE1hdGguc3FydCh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFy
IGogPSAwOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAgICBqID0gZm9vKGkp
OworCitpZiAoIDMxNi4yMjYxODQ4NzQwNTUgIT0gail7CisgICAgdGhyb3cgIkVycm9yIgorfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXRi
eWlkLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9mdGwtcHV0YnlpZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACisKK09iamVj
dC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXygiciIsIGZ1bmN0aW9uKHZhbCl7IG8gPSB2YWwg
fSkKKworZnVuY3Rpb24gZm9vKHgpeworICAgIHZhciBuID0geyB9CisgICAgbi5yID0geDsKK30K
Kworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKKyAg
ICBmb28oaSk7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRs
LXB1dGJ5aWRkaXJlY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVjdC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWRkaXJlY3QuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gZm9vKHgpeworICAgIHJldHVybiB7IDAg
OiAxICwgYSA6IHggfQorfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDsgKytpKQorICAgIG8gPSBmb28oaSk7CisKK2lmIChvLmEgIT0gOTk5OTkgfHwgb1sw
XSAhPSAxKQorICAgIHRocm93ICJFcnJvciIKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9mdGwtdG8tZnRsLWFyaXR5LWZpeHVwLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXRvLWZ0bC1hcml0eS1maXh1cC5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRs
LXRvLWZ0bC1hcml0eS1maXh1cC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACitm
dW5jdGlvbiBmb28oYSwgYiwgYykgeworICAgIHJldHVybiAoYXwwKSArIChifDApICsgKGN8MCk7
Cit9CisKK2Z1bmN0aW9uIGJhcihvKSB7CisgICAgLy8gU2F2ZSBhIGJ1bmNoIG9mIHN0YXRlIGlu
IGxvY2FsIHZhcmlhYmxlcy4KKyAgICB2YXIgYSA9IG8uZjsKKyAgICB2YXIgYiA9IG8uZzsKKyAg
ICB2YXIgYyA9IG8uaDsKKyAgICB2YXIgZCA9IG8uaTsKKyAgICB2YXIgZSA9IG8uajsKKyAgICB2
YXIgZiA9IG8uazsKKyAgICB2YXIgZyA9IG8ubDsKKyAgICAvLyBNYWtlIGEgY2FsbCB0aGF0IHdp
bGwgYmUgc3ViamVjdCB0byBhcml0eSBmaXh1cCBhbmQgdGhlbiB1c2UgdGhlIHNhdmVkIHN0YXRl
LiBXZSdyZQorICAgIC8vIGNvdW50aW5nIG9uIExMVk0gdG8gcHV0IHRob3NlIHZhcmlhYmxlcyBp
biBjYWxsZWUtc2F2ZXMsIHNpbmNlIHRoYXQncyBwcmV0dHkgbXVjaCB0aGUKKyAgICAvLyBvbmx5
IHNlbnNpYmxlIGNob2ljZS4KKyAgICByZXR1cm4gZm9vKDQyKSArIGEgKyBiICsgYyArIGQgKyBl
ICsgZiArIGc7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShiYXIpOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgLy8gQ2FsbCBiYXIoKSBpbiBzdWNoIGEg
d2F5IHRoYXQgYWxsIG9mIHRob3NlIGNhbGxlZS1zYXZlIHZhcmlhYmxlcyBoYXZlIGZhaXJseSB1
bmlxdWUKKyAgICAvLyBsb29raW5nIHZhbHVlcywgdG8gbWF4aW1pemUgdGhlIGNoYW5jZXMgb2Yg
Zm9vKCkgY2xvYmJlcmluZyB0aGVtIGluIGEgcmVjb2duaXphYmxlCisgICAgLy8gd2F5LgorICAg
IHZhciByZXN1bHQgPSBiYXIoeworICAgICAgICBmOmkgKiAzLCBnOmkgLSAxLCBoOihpIC8gMil8
MCwgaTotaSwgajoxMyArICgoaSAvIDUpfDApLCBrOjE0IC0gKChpIC8gNil8MCksCisgICAgICAg
IGw6MSAtIGl9KTsKKyAgICAKKyAgICB2YXIgZXhwZWN0ZWQgPSA0MiArIGkgKiAzICsgaSAtIDEg
KyAoKGkgLyAyKXwwKSAtIGkgKyAxMyArICgoaSAvIDUpfDApICsgMTQgLQorICAgICAgICAoKGkg
LyA2KXwwKSArIDEgLSBpOworICAgIAorICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWQpCisgICAg
ICAgIHRocm93ICJFcnJvcjogZm9yIGl0ZXJhdGlvbiAiICsgaSArICIgZXhwZWN0ZWQgIiArIGV4
cGVjdGVkICsgIiBidXQgZ290ICIgKyByZXN1bHQ7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLWdldHRlci10aHJvdWdoLW9w
dGltaXplZC1jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNv
ZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2dldC1ieS1pZC10aHJvdy1mcm9tLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0
dXJuIG8uZiArIDE7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciBzaG91bGRUaHJvdyA9IGZh
bHNlOworCitmdW5jdGlvbiBtYWtlV2l0aEdldHRlcigpIHsKKyAgICB2YXIgbyA9IHt9OworICAg
IG8uX19kZWZpbmVHZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoc2hvdWxk
VGhyb3cpCisgICAgICAgICAgICB0aHJvdyAiaGVsbG8iOworICAgICAgICByZXR1cm4gNDI7Cisg
ICAgfSk7CisgICAgcmV0dXJuIG87Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyAr
K2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjIzfSk7CisgICAgaWYgKHJlc3VsdCAhPSAy
NCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJl
c3VsdCA9IGZvbyhtYWtlV2l0aEdldHRlcigpKTsKKyAgICBpZiAocmVzdWx0ICE9IDQzKQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciBkaWRU
aHJvdzsKK3RyeSB7CisgICAgc2hvdWxkVGhyb3cgPSB0cnVlOworICAgIGZvbyhtYWtlV2l0aEdl
dHRlcigpKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRU
aHJvdyAhPSAiaGVsbG8iKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3
IHdyb25nIGV4Y2VwdGlvbjogIiArIGRpZFRocm93OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVjdGVkLWdldHRlci10
aHJvdWdoLW9wdGltaXplZC1jb2RlLXRoYXQtZG9lcy1ub3QtZXhpdC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9t
LXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUtdGhhdC1kb2VzLW5vdC1l
eGl0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVjdGVkLWdldHRlci10aHJvdWdoLW9wdGltaXpl
ZC1jb2RlLXRoYXQtZG9lcy1ub3QtZXhpdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM1
IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvLmY7Cit9CisKK25vSW5saW5lKGZv
byk7CisKK2Z1bmN0aW9uIG1ha2VXaXRoR2V0dGVyKCkgeworICAgIHZhciBvID0ge307CisgICAg
by5fX2RlZmluZUdldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHRocm93ICJoZWxs
byI7CisgICAgfSk7CisgICAgcmV0dXJuIG87Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjIzfSk7CisgICAgaWYgKHJlc3Vs
dCAhPSAyMykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
ICAgIHJlc3VsdCA9IGZvbyh7ZzoxMiwgZjoxM30pOworICAgIGlmIChyZXN1bHQgIT0gMTMpCisg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQg
PSBmb28oe2c6MTIsIGg6MTMsIGY6MTR9KTsKKyAgICBpZiAocmVzdWx0ICE9IDE0KQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciBkaWRUaHJv
dzsKK3RyeSB7CisgICAgZm9vKG1ha2VXaXRoR2V0dGVyKCkpOworfSBjYXRjaCAoZSkgeworICAg
IGRpZFRocm93ID0gZTsKK30KKworaWYgKGRpZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cg
IkVycm9yOiBkaWRuJ3QgdGhyb3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhy
b3c7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10
aHJvdy1mcm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQt
dGhyb3ctZnJvbS11bmV4cGVjdGVkLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnkt
aWQtdGhyb3ctZnJvbS11bmV4cGVjdGVkLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAg
cmV0dXJuIG8uZiArIDE7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIG1ha2VXaXRo
R2V0dGVyKCkgeworICAgIHZhciBvID0ge307CisgICAgby5fX2RlZmluZUdldHRlcl9fKCJmIiwg
ZnVuY3Rpb24oKSB7CisgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgfSk7CisgICAgcmV0dXJu
IG87Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVz
dWx0ID0gZm9vKHtmOjIzfSk7CisgICAgaWYgKHJlc3VsdCAhPSAyNCkKKyAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7ZzoxMiwg
ZjoxM30pOworICAgIGlmIChyZXN1bHQgIT0gMTQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28oe2c6MTIsIGg6MTMsIGY6MTR9
KTsKKyAgICBpZiAocmVzdWx0ICE9IDE1KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgZm9vKG1ha2VX
aXRoR2V0dGVyKCkpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30KKworaWYg
KGRpZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhyb3cgb3Ig
dGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2ljLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pYy10aHJv
dy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pYy10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjkgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAg
cmV0dXJuIG8uZiArIDE7Cit9CisKK051bWJlci5wcm90b3R5cGUuZiA9IDQyOworCitub0lubGlu
ZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJl
c3VsdCA9IGZvbygyMyk7CisgICAgaWYgKHJlc3VsdCAhPSA0MykKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7ZjoyNX0pOwor
ICAgIGlmIChyZXN1bHQgIT0gMjYpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28oe2c6MTIsIGY6MTN9KTsKKyAgICBpZiAocmVz
dWx0ICE9IDE0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgZm9vKHZvaWQgMCk7Cit9IGNhdGNoIChl
KSB7CisgICAgZGlkVGhyb3cgPSBlOworfQorCitpZiAoIWRpZFRocm93IHx8IGRpZFRocm93LnRv
U3RyaW5nKCkuaW5kZXhPZigiVHlwZUVycm9yOiIpICE9IDApCisgICAgdGhyb3cgIkVycm9yOiBk
aWRuJ3QgdGhyb3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1jYWxsLXZhcmFyZ3Mt
YW5kLWNhbGwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLWFuZC1jYWxsLmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLWFuZC1j
YWxsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyhhLCBi
KSB7CisgICAgcmV0dXJuIGJhcihhLCBiKTsKK30KKworZnVuY3Rpb24gYmFyKGEsIGIpIHsKKyAg
ICB2YXIgeCA9IGJhei5hcHBseShudWxsLCBhcmd1bWVudHMpOworICAgIHZhciB5ID0gYmF6KGEs
IGIpCisgICAgcmV0dXJuIHggKyB5ICogMzsKK30KKworZnVuY3Rpb24gYmF6KGEsIGIpIHsKKyAg
ICByZXR1cm4gYSArIGIgKiAyOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyg3LCAxMSk7CisgICAg
aWYgKHJlc3VsdCAhPSAxMTYpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyg1LCAyMTQ3NDgzNjQ2KTsKK2lmIChyZXN1
bHQgIT0gMTcxNzk4NjkxODgpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVz
dWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2Fs
bC12YXJhcmdzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvaW5saW5lLWNhbGwtdmFyYXJncy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFyYXJncy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDIzIEBACitmdW5jdGlvbiBmb28oYSwgYikgeworICAgIHJldHVybiBi
YXIoYSwgYik7Cit9CisKK2Z1bmN0aW9uIGJhcihhLCBiKSB7CisgICAgcmV0dXJuIGJhei5hcHBs
eShudWxsLCBhcmd1bWVudHMpOworfQorCitmdW5jdGlvbiBiYXooYSwgYikgeworICAgIHJldHVy
biBhICsgYiAqIDI7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKDcsIDExKTsKKyAgICBpZiAocmVz
dWx0ICE9IDI5KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
Cit9CisKK3ZhciByZXN1bHQgPSBmb28oNSwgMjE0NzQ4MzY0Nik7CitpZiAocmVzdWx0ICE9IDQy
OTQ5NjcyOTcpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxs
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5s
aW5lLWNsb3N1cmUtY2FsbC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNsb3N1cmUtY2FsbC5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE2IEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBmdW5jdGlvbih5KSB7
IHJldHVybiB4ICsgeTsgfQorfQorCitmdW5jdGlvbiBiYXIoYSwgYikgeworICAgIHJldHVybiBm
b28oYSkoYik7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShiYXIpOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGJhcihpLCBpICsg
MSk7CisgICAgaWYgKHJlc3VsdCAhPSBpICogMiArIDEpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdCBmb3IgIiArIGkgKyAiOiAiICsgcmVzdWx0OworfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWFuZC1vdXQtb2Yt
Ym91bmRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1hbmQtb3V0LW9mLWJvdW5kcy5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1p
bi1hbmQtb3V0LW9mLWJvdW5kcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitm
dW5jdGlvbiBmb28oYSkgeworICAgIGFbNDJdID0gOTUwMTA7Cit9CisKK25vSW5saW5lKGZvbyk7
CisKK2Z1bmN0aW9uIHRlc3QobGVuZ3RoLCBleHBlY3RlZCkgeworICAgIHZhciBhID0gbmV3IElu
dDE2QXJyYXkobGVuZ3RoKTsKKyAgICBmb28oYSk7CisgICAgdmFyIHJlc3VsdCA9IGFbNDJdOwor
ICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHZh
bHVlIGF0IGFbNDJdOiAiICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
MDsgKytpKSB7CisgICAgdGVzdCgxMCwgdm9pZCAwKTsKKyAgICB0ZXN0KDEwMCwgMjk0NzQpOwor
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnkt
dmFsLWluLWJvdW5kcy10aGVuLWV4aXQtb3V0LW9mLWJvdW5kcy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtaW4tYm91
bmRzLXRoZW4tZXhpdC1vdXQtb2YtYm91bmRzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWJvdW5kcy10aGVu
LWV4aXQtb3V0LW9mLWJvdW5kcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitm
dW5jdGlvbiBmb28oYSkgeworICAgIGFbNDJdID0gOTUwMTA7Cit9CisKK25vSW5saW5lKGZvbyk7
CisKK2Z1bmN0aW9uIHRlc3QobGVuZ3RoLCBleHBlY3RlZCkgeworICAgIHZhciBhID0gbmV3IElu
dDE2QXJyYXkobGVuZ3RoKTsKKyAgICBmb28oYSk7CisgICAgdmFyIHJlc3VsdCA9IGFbNDJdOwor
ICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHZh
bHVlIGF0IGFbNDJdOiAiICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
MDsgKytpKQorICAgIHRlc3QoMTAwLCAyOTQ3NCk7CisKK3Rlc3QoMTAsIHZvaWQgMCk7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1v
dXQtb2YtYm91bmRzLWJvdW5kcy10aGVuLWRvLWluLWJvdW5kcy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0LW9m
LWJvdW5kcy1ib3VuZHMtdGhlbi1kby1pbi1ib3VuZHMuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0LW9mLWJv
dW5kcy1ib3VuZHMtdGhlbi1kby1pbi1ib3VuZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxOSBAQAorZnVuY3Rpb24gZm9vKGEpIHsKKyAgICBhWzQyXSA9IDk1MDEwOworfQorCitub0lu
bGluZShmb28pOworCitmdW5jdGlvbiB0ZXN0KGxlbmd0aCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIg
YSA9IG5ldyBJbnQxNkFycmF5KGxlbmd0aCk7CisgICAgZm9vKGEpOworICAgIHZhciByZXN1bHQg
PSBhWzQyXTsKKyAgICBpZiAocmVzdWx0ICE9IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCB2YWx1ZSBhdCBhWzQyXTogIiArIHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDA7ICsraSkKKyAgICB0ZXN0KDEwLCB2b2lkIDApOworCit0ZXN0KDEwMCwgMjk0
NzQpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludmFsaWRh
dGlvbi1wb2ludC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2ludmFsaWRhdGlvbi1wb2ludC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW52YWxpZGF0aW9uLXBvaW50LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjQgQEAKK2Z1bmN0aW9uIGZvbyhvLCBwKSB7CisgICAgcG9zc2libHlE
b0JhZFRoaW5ncyhwKTsKKyAgICByZXR1cm4gby5mKCk7Cit9Citub0lubGluZShmb28pOworCitm
dW5jdGlvbiBUaGluZ3koKSB7IH0KK1RoaW5neS5wcm90b3R5cGUuZiA9IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gNDI7IH0KKworZnVuY3Rpb24gcG9zc2libHlEb0JhZFRoaW5ncyhwKSB7CisgICAgaWYg
KHApCisgICAgICAgIFRoaW5neS5wcm90b3R5cGUuZiA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMjQ7
IH0KK30KK25vSW5saW5lKHBvc3NpYmx5RG9CYWRUaGluZ3MpOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgVGhpbmd5KCksIGZh
bHNlKTsKKyAgICBpZiAocmVzdWx0ICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28obmV3IFRoaW5neSgpLCB0
cnVlKTsKK2lmIChyZXN1bHQgIT0gMjQpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYWtl
LXJvcGUtMi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL21ha2Utcm9wZS0yLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9tYWtlLXJvcGUtMi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2
IEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiAiaGVsbG8iICsgeDsKK30KKworbm9J
bmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZh
ciByZXN1bHQgPSBmb28oIiB3b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJp
bmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJo
ZWxsbyB3b3JsZCIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYWtlLXJv
cGUtMy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L21ha2Utcm9wZS0zLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9tYWtlLXJvcGUtMy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBA
CitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiAiaGVsbG8iICsgeCArICIhISI7Cit9CisK
K25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAg
ICB2YXIgcmVzdWx0ID0gZm9vKCIgd29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAi
c3RyaW5nIikgeworICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQgdHlwZTogIiArIHJlc3VsdDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAh
PSAiaGVsbG8gd29ybGQhISIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9u
ZXctYXJyYXktc3RvcmFnZS1hcnJheS13aXRoLXNpemUuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktc3RvcmFnZS1hcnJheS13aXRo
LXNpemUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL25ldy1hcnJheS1zdG9yYWdlLWFycmF5LXdpdGgtc2l6ZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDIzIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJyYXko
eCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAgIHZh
ciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBzYXdU
aGluZ3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3VGhp
bmdzID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFy
cmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAiNDIuNSI7
CisgICAgaWYgKHJlc3VsdFswXSAhPSAiNDIuNSIpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJy
YXkgaXMgaW4gd2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDEwMDAwMDApOworfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktd2l0aC1zaXplLXdpdGgtYmFkLXRp
bWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9u
ZXctYXJyYXktd2l0aC1zaXplLXdpdGgtYmFkLXRpbWUuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS13aXRoLXNpemUtd2l0aC1i
YWQtdGltZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACitmdW5jdGlvbiBmb28o
eCkgeworICAgIHJldHVybiBuZXcgQXJyYXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3Zh
ciBwb2tlOworQXJyYXkucHJvdG90eXBlLl9fZGVmaW5lU2V0dGVyX18oIjEiLCBmdW5jdGlvbigp
IHsKKyAgICBwb2tlID0gInBva2UiOworfSk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAg
IHZhciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBz
YXdUaGluZ3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkgeworICAgICAgICBp
ZiAocyAhPSAiMSIpCisgICAgICAgICAgICBzYXdUaGluZ3MgPSB0cnVlOworICAgIH0KKyAgICBp
ZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIGJhZCBzdGF0
ZTogIiArIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAiNDIuNSI7CisgICAgaWYgKHJlc3VsdFsw
XSAhPSAiNDIuNSIpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gd2llcmQgc3Rh
dGU6ICIgKyByZXN1bHQ7CisgICAgcG9rZSA9IG51bGw7CisgICAgcmVzdWx0WzFdID0gNDI7Cisg
ICAgaWYgKHBva2UgIT0gInBva2UiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IHNldHRlciBub3Qg
Y2FsbGVkLiI7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB0
ZXN0KDQyKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3
LWNvbnRpZ3VvdXMtYXJyYXktd2l0aC1zaXplLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWNvbnRpZ3VvdXMtYXJyYXktd2l0aC1zaXplLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXct
Y29udGlndW91cy1hcnJheS13aXRoLXNpemUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
MSBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gbmV3IEFycmF5KHgpOworfQorCitu
b0lubGluZShmb28pOworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVzdWx0ID0g
Zm9vKHNpemUpOworICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUpIHsKKyAgICAgICAgcHJp
bnQoIkdvdCBhIHdlaXJkIGxlbmd0aDogIiArIHJlc3VsdC5sZW5ndGgpOworICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgfQorICAgIHZhciBzYXdUaGlu
Z3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3VGhpbmdz
ID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKSB7CisgICAgICAgIHByaW50KCJTYXcgdGhpbmdz
ISIpOworICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJl
c3VsdDsKKyAgICB9CisgICAgcmVzdWx0WzBdID0gIjQyLjUiOworICAgIGlmIChyZXN1bHRbMF0g
IT0gIjQyLjUiKSB7CisgICAgICAgIHByaW50KCJEaWRuJ3Qgc3RvcmUgd2hhdCBJIHRob3VnaHQg
SSBzdG9yZWQuIik7CisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gd2llcmQgc3Rh
dGU6ICIgKyByZXN1bHQ7CisgICAgfQorfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdGVzdCgwKTsKKyAgICB0ZXN0KDEpOworICAgIHRlc3QoNDIpOworfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctZG91YmxlLWFycmF5LXdp
dGgtc2l6ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL25ldy1kb3VibGUtYXJyYXktd2l0aC1zaXplLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctZG91YmxlLWFycmF5LXdpdGgtc2l6ZS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiBmb28oeCkgeworICAg
IHJldHVybiBuZXcgQXJyYXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRl
c3Qoc2l6ZSkgeworICAgIHZhciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5s
ZW5ndGggIT0gc2l6ZSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVz
dWx0OworICAgIHZhciBzYXdUaGluZ3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3Vs
dCkKKyAgICAgICAgc2F3VGhpbmdzID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSA0Mi41OworICAgIGlmIChyZXN1bHRbMF0gIT0gNDIuNSkKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBhcnJheSBpcyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKK30KKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMCk7CisgICAgdGVzdCgx
KTsKKyAgICB0ZXN0KDQyKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbmV3LWludDMyLWFycmF5LXdpdGgtc2l6ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1pbnQzMi1hcnJheS13aXRoLXNpemUuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1p
bnQzMi1hcnJheS13aXRoLXNpemUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNSBAQAor
ZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gbmV3IEFycmF5KHgpOworfQorCitub0lubGlu
ZShmb28pOworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHNp
emUpOworICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgc2F3VGhpbmdzID0gZmFsc2U7Cisg
ICAgZm9yICh2YXIgcyBpbiByZXN1bHQpCisgICAgICAgIHNhd1RoaW5ncyA9IHRydWU7CisgICAg
aWYgKHNhd1RoaW5ncykKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiBiYWQgc3Rh
dGU6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gNDI7CisgICAgaWYgKHJlc3VsdFswXSAh
PSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiB3aWVyZCBzdGF0ZTogIiAr
IHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRl
c3QoMCk7CisgICAgdGVzdCgxKTsKKyAgICB0ZXN0KDQyKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LXVuZGVjaWRlZC1hcnJheS13aXRoLXNpemUuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdW5k
ZWNpZGVkLWFycmF5LXdpdGgtc2l6ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LXVuZGVjaWRlZC1hcnJheS13aXRoLXNpemUuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyMiBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1
cm4gbmV3IEFycmF5KHgpOworfQorCitub0lubGluZShmb28pOworCitmdW5jdGlvbiB0ZXN0KHNp
emUpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHNpemUpOworICAgIGlmIChyZXN1bHQubGVuZ3Ro
ICE9IHNpemUpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
KyAgICB2YXIgc2F3VGhpbmdzID0gZmFsc2U7CisgICAgZm9yICh2YXIgcyBpbiByZXN1bHQpCisg
ICAgICAgIHNhd1RoaW5ncyA9IHRydWU7CisgICAgaWYgKHNhd1RoaW5ncykKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBhcnJheSBpcyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3QoMSk7
CisgICAgdGVzdCg0Mik7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL25vdC1jZWxsLXVzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL25vdC1jZWxsLXVzZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvbm90LWNlbGwtdXNlLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMjkgQEAKK2Z1bmN0aW9uIGZvbyhhLCBiLCBjKSB7CisgICAgcmV0dXJuIChhfDAp
ICsgKGJ8MCkgKyAoY3wwKTsKK30KKworZnVuY3Rpb24gYmFyKG8pIHsKKyAgICB2YXIgYSA9IG8u
ZjsKKyAgICB2YXIgYiA9IG8uZzsKKyAgICB2YXIgYyA9IG8uaDsKKyAgICB2YXIgZCA9IG8uaTsK
KyAgICB2YXIgZSA9IG8uajsKKyAgICB2YXIgZiA9IG8uazsKKyAgICB2YXIgZyA9IG8ubDsKKyAg
ICByZXR1cm4gZm9vKDQyLCB2b2lkIDAsIHZvaWQgMCkgKyBhICsgYiArIGMgKyBkICsgZSArIGYg
KyBnOworfQorCitub0lubGluZShmb28pOworbm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBiYXIoeworICAgICAgICBm
OmkgKiAzLCBnOmkgLSAxLCBoOihpIC8gMil8MCwgaTotaSwgajoxMyArICgoaSAvIDUpfDApLCBr
OjE0IC0gKChpIC8gNil8MCksCisgICAgICAgIGw6MSAtIGl9KTsKKyAgICAKKyAgICB2YXIgZXhw
ZWN0ZWQgPSA0MiArIGkgKiAzICsgaSAtIDEgKyAoKGkgLyAyKXwwKSAtIGkgKyAxMyArICgoaSAv
IDUpfDApICsgMTQgLQorICAgICAgICAoKGkgLyA2KXwwKSArIDEgLSBpOworICAgIAorICAgIGlm
IChyZXN1bHQgIT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93ICJFcnJvcjogZm9yIGl0ZXJhdGlv
biAiICsgaSArICIgZXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIiBidXQgZ290ICIgKyByZXN1bHQ7
Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC10
aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLXRocm93LXRocm91Z2gtb3B0aW1pemVk
LWNvZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3B1dC1ieS1pZC10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMzMgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgInVzZSBzdHJpY3Qi
OworICAgIG8uZiA9IDQyOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBmb28obyk7CisgICAgaWYg
KG8uZiAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOwor
ICAgIG8gPSB7ZjoyM307CisgICAgZm9vKG8pOworICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIG8uZjsKKyAgICBvID0ge2c6MTJ9OworICAg
IGZvbyhvKTsKKyAgICBpZiAoby5mICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyBvLmY7Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgdmFyIG8gPSB7
fTsKKyAgICBPYmplY3QuZnJlZXplKG8pOworICAgIGZvbyhvKTsKK30gY2F0Y2ggKGUpIHsKKyAg
ICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmICghZGlkVGhyb3cgfHwgZGlkVGhyb3cudG9TdHJpbmco
KS5pbmRleE9mKCJUeXBlRXJyb3I6IikgIT0gMCkKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0
aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVjdXJzZS1pbmZpbml0ZWx5LW9uLWdldHRl
ci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Jl
Y3Vyc2UtaW5maW5pdGVseS1vbi1nZXR0ZXIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlY3Vyc2UtaW5maW5pdGVseS1vbi1nZXR0ZXIuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7
ICsraSkgeworICAgIHZhciBvID0ge307CisgICAgby5fX2RlZmluZUdldHRlcl9fKCJmIiwgZnVu
Y3Rpb24oKSB7CisgICAgICAgIHJldHVybiBvLmY7CisgICAgfSk7CisgICAgdmFyIGRpZFRocm93
OworICAgIHZhciByZXN1bHQ7CisgICAgcmVzdWx0ID0gIm5vdCBzZXQiOworICAgIHRyeSB7Cisg
ICAgICAgIHJlc3VsdCA9IG8uZjsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGRpZFRocm93
ID0gZTsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAibm90IHNldCIpCisgICAgICAgIHRocm93
ICJEaWQgc2V0IHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICBpZiAoIWRpZFRocm93IHx8IGRpZFRo
cm93LnRvU3RyaW5nKCkuaW5kZXhPZigiUmFuZ2VFcnJvciIpICE9IDApCisgICAgICAgIHRocm93
ICJCYWQgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVwZWF0ZWQtYXJpdHktY2hlY2stZmFpbC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlcGVhdGVkLWFyaXR5
LWNoZWNrLWZhaWwuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3JlcGVhdGVkLWFyaXR5LWNoZWNrLWZhaWwuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw4IEBACitmdW5jdGlvbiBiYXIoYSxiLGMsZCxlLGYsZyxoLGksaixrKSB7Cit9CisK
K25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDA7ICsraSkKKyAg
ICBiYXIoKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9ydW50
aW1lLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9ydW50aW1lLXRocm93LXRocm91Z2gtb3B0aW1p
emVkLWNvZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3J1bnRpbWUtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDMzIEBACitmdW5jdGlvbiBmb28oYSwgcykgeworICAgIHJldHVybiBh
W3NdICsgMTsKK30KKwordmFyIHNob3VsZFRocm93ID0gZmFsc2U7CitmdW5jdGlvbiBiYXIoKSB7
CisgICAgaWYgKHNob3VsZFRocm93KQorICAgICAgICB0aHJvdyAiaGVsbG8iOworICAgIHJldHVy
biA0MjsKK30KKwordmFyIGEgPSB7fTsKK2EuX19kZWZpbmVHZXR0ZXJfXygiYmFyIiwgYmFyKTsK
Kworbm9JbmxpbmUoZm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGEsICJiYXIiKTsKKyAgICBpZiAo
cmVzdWx0ICE9IDQzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgc2hvdWxkVGhyb3cgPSB0cnVlOwor
ICAgIGZvbyhhLCAiYmFyIik7Cit9IGNhdGNoIChlKSB7CisgICAgZGlkVGhyb3cgPSBlOworfQor
CitpZiAoZGlkVGhyb3cgIT0gImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJv
dyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWNhbGwtaW5saW5p
bmctZXhhbXBsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1jYWxsLWlubGluaW5nLWV4YW1wbGUuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5
dmFyaWFudC1jYWxsLWlubGluaW5nLWV4YW1wbGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzMiBAQAorZnVuY3Rpb24gZm9vKGJheikgeworICAgIHJldHVybiBiYXIoYmF6KTsKK30KKwor
ZnVuY3Rpb24gZnV6eihiYXopIHsKKyAgICByZXR1cm4gYmFyKGJheik7Cit9CisKK2Z1bmN0aW9u
IGJhcihiYXopIHsKKyAgICByZXR1cm4gYmF6KCk7Cit9CisKK2Z1bmN0aW9uIGJhejEoKSB7Cisg
ICAgcmV0dXJuIDQyOworfQorCitmdW5jdGlvbiBiYXoyKCkgeworICAgIHJldHVybiAyNDsKK30K
Kworbm9JbmxpbmUoZm9vKTsKK25vSW5saW5lKGZ1enopOworCitmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhiYXoxKTsKKyAgICBpZiAocmVz
dWx0ICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
CisgICAgdmFyIHJlc3VsdCA9IGZ1enooYmF6Mik7CisgICAgaWYgKHJlc3VsdCAhPSAyNCkKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1nZXQt
YnktaWQtaW5saW5pbmctZXhhbXBsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1nZXQtYnktaWQtaW5saW5pbmct
ZXhhbXBsZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWdldC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0
dXJuIGJhcihvKTsKK30KKworZnVuY3Rpb24gZnV6eihvKSB7CisgICAgcmV0dXJuIGJhcihvKTsK
K30KKworZnVuY3Rpb24gYmFyKG8pIHsKKyAgICByZXR1cm4gby5mOworfQorCitub0lubGluZShm
b28pOworbm9JbmxpbmUoZnV6eik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kp
IHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjQyfSk7CisgICAgaWYgKHJlc3VsdCAhPSA0MikK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBy
ZXN1bHQgPSBmdXp6KHtnOjIzLCBmOjI0fSk7CisgICAgaWYgKHJlc3VsdCAhPSAyNCkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1wdXQtYnkt
aWQtaW5saW5pbmctZXhhbXBsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1wdXQtYnktaWQtaW5saW5pbmctZXhh
bXBsZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3Mvc2ltcGxlLXBvbHl2YXJpYW50LXB1dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjYgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgYmFyKG8p
OworfQorCitmdW5jdGlvbiBmdXp6KG8pIHsKKyAgICBiYXIobyk7Cit9CisKK2Z1bmN0aW9uIGJh
cihvKSB7CisgICAgby5mID0gNDI7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShmdXp6
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBvID0ge307
CisgICAgZm9vKG8pOworICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIG8uZjsKKyAgICBvID0ge2Y6MjN9OworICAgIHZhciByZXN1bHQgPSBm
dXp6KG8pOworICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJl
c3VsdDogIiArIG8uZjsKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy90aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29k
ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
dGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDMwIEBACitmdW5jdGlvbiBmb28oZikgeworICAgIHJldHVybiBmKDEpICsgMTsKK30KKwordmFy
IHNob3VsZFRocm93ID0gZmFsc2U7CitmdW5jdGlvbiBiYXIoeCkgeworICAgIGlmIChzaG91bGRU
aHJvdykKKyAgICAgICAgdGhyb3cgImhlbGxvIjsKKyAgICByZXR1cm4gNDIgLSB4OworfQorCitu
b0lubGluZShmb28pOworbm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oYmFyKTsKKyAgICBpZiAocmVzdWx0ICE9
IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisK
K3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgc2hvdWxkVGhyb3cgPSB0cnVlOworICAgIGZvbyhi
YXIpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30KKworaWYgKGRpZFRocm93
ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhyb3cgb3IgdGhyZXcgd3Jv
bmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3Qtb3Itc3RyaW5nLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVj
dC1vci1zdHJpbmcuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3RvLXN0cmluZy1vbi1vYmplY3Qtb3Itc3RyaW5nLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjcgQEAKK2Z1bmN0aW9uIEZvbygpIHsgfQorCitGb28ucHJvdG90eXBlLnRv
U3RyaW5nID0gZnVuY3Rpb24oKSB7IHJldHVybiAiaGVsbG8iIH07CisKK2Z1bmN0aW9uIGZvbyhv
KSB7CisgICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28obmV3IEZv
bygpKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNj
cmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmlu
ZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIAorICAgIHJlc3VsdCA9IGZvbygid29y
bGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAgICBkZXNj
cmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24ndCBhIHN0cmlu
ZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIndvcmxkIikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3Ry
aW5nLW9uLW9iamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlv
biBGb28oKSB7IH0KKworRm9vLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyByZXR1
cm4gImhlbGxvIiB9OworCitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBTdHJpbmcobyk7
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kp
IHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBGb28oKSk7CisgICAgaWYgKHR5cGVvZiByZXN1
bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhy
b3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0
ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5n
LW9uLXN0cmluZy1vYmplY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9iamVjdC5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmlu
Zy1vYmplY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9v
KG8pIHsKKyAgICByZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGluZShmb28pOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcg
U3RyaW5nKCJoZWxsbyIpKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgewor
ICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBp
c24ndCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gImhlbGxvIikKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmlu
Zy1vYmplY3QtdGhlbi1vYmplY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QtdGhl
bi1vYmplY3QuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5nLW9iamVjdC10aGVuLW9iamVjdC5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM1IEBACitmdW5jdGlvbiBmb28obykgeworICAg
IHJldHVybiBTdHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBTdHJpbmcoImhl
bGxvIikpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRl
c2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3Ry
aW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8iKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgCisgICAgcmVzdWx0ID0gZm9vKCJ3
b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRl
c2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3Ry
aW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAid29ybGQiKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIEZvbygpIHsgfQor
CitGb28ucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHJldHVybiAiaGVsbG8iIH07
CisKK3ZhciByZXN1bHQgPSBmb28obmV3IEZvbygpKTsKK2lmICh0eXBlb2YgcmVzdWx0ICE9ICJz
dHJpbmciKSB7CisgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICB0aHJvdyAiRXJyb3I6IHJlc3Vs
dCBpc24ndCBhIHN0cmluZyI7Cit9CitpZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJp
bmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb3Itc3RyaW5n
LW9iamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACitmdW5jdGlvbiBmb28o
bykgeworICAgIHJldHVybiBTdHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBT
dHJpbmcoImhlbGxvIikpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7Cisg
ICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlz
bid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8iKQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgCisgICAgcmVzdWx0
ID0gZm9vKCJ3b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7Cisg
ICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlz
bid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAid29ybGQiKQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS1vci1zdHJpbmcu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1z
dHJpbmctb24tdmFsdWUtb3Itc3RyaW5nLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tdmFsdWUtb3Itc3RyaW5nLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0
dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oNDIpOworICAgIGlmICh0eXBl
b2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAg
ICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYg
KHJlc3VsdCAhPSAiNDIiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7CisgICAgCisgICAgcmVzdWx0ID0gZm9vKCJ3b3JsZCIpOworICAgIGlmICh0eXBlb2Yg
cmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAg
IHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJl
c3VsdCAhPSAid29ybGQiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7Cit9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0
cmluZy1vbi12YWx1ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIFN0
cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oNDIpOworICAgIGlmICh0eXBlb2YgcmVz
dWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRo
cm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3Vs
dCAhPSAiNDIiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
Cit9CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTYxKQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxNC0wMS0yOCAgTWljaGFlbCBTYWJvZmYg
IDxtc2Fib2ZmQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSB0aGUganNDU3RhY2sgYnJhbmNo
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2Vz
IGZyb20gaHR0cDovL3N2bi53ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0L2JyYW5jaGVzL2pz
Q1N0YWNrCisKIDIwMTQtMDEtMjggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBBY3R1YWxseSB0dXJuIHN0YWNrIHN0YXRzIGJhY2sgb2ZmLgpJbmRleDog
U291cmNlL1dURi93dGYvQmFnVG9IYXNoTWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvQmFnVG9IYXNoTWFwLmgJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9XVEYvd3RmL0Jh
Z1RvSGFzaE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw4ICszMiw4IEBACiAKIG5hbWVzcGFjZSBX
VEYgewogCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbGVtZW50VHlwZSwgdHlwZW5hbWUgS2V5VHlwZSwg
dHlwZW5hbWUgS2V5R2V0dGVyRnVuY3Rvcj4KLXZvaWQgdG9IYXNoTWFwKEJhZzxFbGVtZW50VHlw
ZT4mIGJhZywgS2V5R2V0dGVyRnVuY3RvciYgZ2V0S2V5LCBIYXNoTWFwPEtleVR5cGUsIEVsZW1l
bnRUeXBlKj4mIHJlc3VsdCkKK3RlbXBsYXRlPHR5cGVuYW1lIEVsZW1lbnRUeXBlLCB0eXBlbmFt
ZSBLZXlUeXBlLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlHZXR0ZXJGdW5jdG9yPgor
dm9pZCB0b0hhc2hNYXAoQmFnPEVsZW1lbnRUeXBlPiYgYmFnLCBLZXlHZXR0ZXJGdW5jdG9yJiBn
ZXRLZXksIEhhc2hNYXA8S2V5VHlwZSwgRWxlbWVudFR5cGUqLCBIYXNoQXJnPiYgcmVzdWx0KQog
ewogICAgIGZvciAodHlwZW5hbWUgQmFnPEVsZW1lbnRUeXBlPjo6aXRlcmF0b3IgaXRlciA9IGJh
Zy5iZWdpbigpOyAhIWl0ZXI7ICsraXRlcikgewogICAgICAgICBFbGVtZW50VHlwZSogZWxlbWVu
dCA9ICppdGVyOwpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NjAsMTIgKzY2MCwxMiBAQAog
I2RlZmluZSBFTkFCTEVfSklUIDAKICNlbmRpZgogCi0vKiBUaGUgSklUIGlzIGVuYWJsZWQgYnkg
ZGVmYXVsdCBvbiBhbGwgeDg2LCB4ODYtNjQsIEFSTSAmIE1JUFMgcGxhdGZvcm1zIGV4Y2VwdCBX
aW42NC4gKi8KKy8qIFRoZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9uIGFsbCB4ODYsIHg4
Ni02NCwgQVJNICYgTUlQUyBwbGF0Zm9ybXMgZXhjZXB0IFdpbmRvd3MuICovCiAjaWYgIWRlZmlu
ZWQoRU5BQkxFX0pJVCkgXAogICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUo
QVJNKSB8fCBDUFUoQVJNNjQpIHx8IENQVShNSVBTKSkgXAogICAgICYmIChPUyhEQVJXSU4pIHx8
ICFDT01QSUxFUihHQ0MpIHx8IEdDQ19WRVJTSU9OX0FUX0xFQVNUKDQsIDEsIDApKSBcCiAgICAg
JiYgIU9TKFdJTkNFKSBcCi0gICAgJiYgIShPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KSkKKyAg
ICAmJiAhT1MoV0lORE9XUykKICNkZWZpbmUgRU5BQkxFX0pJVCAxCiAjZW5kaWYKIApAQCAtODM1
LDE0ICs4MzUsNiBAQAogI2VuZGlmCiAjZW5kaWYKIAotLyogRklYTUU6IFdlIGN1cnJlbnRseSB1
bmNvbmRpdGlvbmFsbHkgdXNlIHNwZWFyYXRlIHN0YWNrcy4gV2hlbiB3ZSBzd2l0Y2ggdG8gdXNp
bmcgdGhlCi0gICBDIHN0YWNrIGZvciBKUyBmcmFtZXMsIHdlJ2xsIG5lZWQgdG8gbWFrZSB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbmFsIG9uIEVOQUJMRShMTElOVF9DTE9PUCkKLSAgIG9ubHkuCi0q
LwotI2lmIEVOQUJMRShMTElOVF9DTE9PUCkgfHwgMQotI2RlZmluZSBXVEZfVVNFX1NFUEFSQVRF
X0NfQU5EX0pTX1NUQUNLIDEKLSNlbmRpZgotCiAvKiBQaWNrIHdoaWNoIGFsbG9jYXRvciB0byB1
c2U7IHdlIG9ubHkgbmVlZCBhbiBleGVjdXRhYmxlIGFsbG9jYXRvciBpZiB0aGUgYXNzZW1ibGVy
IGlzIGNvbXBpbGVkIGluLgogICAgT24geDg2LTY0IHdlIHVzZSBhIHNpbmdsZSBmaXhlZCBtbWFw
LCBvbiBvdGhlciBwbGF0Zm9ybXMgd2UgbW1hcCBvbiBkZW1hbmQuICovCiAjaWYgRU5BQkxFKEFT
U0VNQkxFUikKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1N0YWNrQm91bmRzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaAkocmV2aXNpb24gMTYyOTYxKQorKysgU291
cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBA
QAogI2lmbmRlZiBTdGFja0JvdW5kc19oCiAjZGVmaW5lIFN0YWNrQm91bmRzX2gKIAorI2luY2x1
ZGUgPGFsZ29yaXRobT4KKwogbmFtZXNwYWNlIFdURiB7CiAKIGNsYXNzIFN0YWNrQm91bmRzIHsK
QEAgLTY3LDYgKzY5LDE3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNo
YXIqPihtX2JvdW5kKSAtIG1pbkF2YWlsYWJsZURlbHRhOwogICAgIH0KIAorICAgIHZvaWQqIHJl
Y3Vyc2lvbkxpbWl0KHNpemVfdCBob3N0Wm9uZVNpemUsIHZvaWQqIGRlc2lyZWRMaW1pdCkgY29u
c3QKKyAgICB7CisgICAgICAgIGNoZWNrQ29uc2lzdGVuY3koKTsKKyAgICAgICAgaWYgKGlzR3Jv
d2luZ0Rvd253YXJkKCkpIHsKKyAgICAgICAgICAgIGNoYXIqIGVuZE9mU3RhY2tXaXRoSG9zdFpv
bmUgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2JvdW5kKSArIGhvc3Rab25lU2l6ZTsKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om1heChkZXNpcmVkTGltaXQsIHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KGVuZE9mU3RhY2tXaXRoSG9zdFpvbmUpKTsKKyAgICAgICAgfQorICAgICAgICBjaGFy
KiBlbmRPZlN0YWNrV2l0aEhvc3Rab25lID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9ib3Vu
ZCkgLSBob3N0Wm9uZVNpemU7CisgICAgICAgIHJldHVybiBzdGQ6Om1pbihkZXNpcmVkTGltaXQs
IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGVuZE9mU3RhY2tXaXRoSG9zdFpvbmUpKTsKKyAgICB9
CisKICAgICBib29sIGlzR3Jvd2luZ0Rvd253YXJkKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFT
U0VSVChtX29yaWdpbiAmJiBtX2JvdW5kKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Mjk2
MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEyIEBACisyMDE0LTAxLTI4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgor
CisgICAgICAgIE1lcmdlIHRoZSBqc0NTdGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZXMgZnJvbSBodHRwOi8vc3ZuLndlYmtp
dC5vcmcvcmVwb3NpdG9yeS93ZWJraXQvYnJhbmNoZXMvanNDU3RhY2sKKwogMjAxNC0wMS0yOCAg
VmlhdGNoZXNsYXYgT3N0YXBlbmtvICA8c2wub3N0YXBlbmtvQHNhbXN1bmcuY29tPgogCiAgICAg
ICAgIFN0aWNreSBwb3NpdGlvbmluZyBpcyBicm9rZW4gZm9yIHRhYmxlIHJvd3MKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3Bl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGlt
ZS9FcnJvckhhbmRsaW5nU2NvcGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0Vycm9ySGFuZGxpbmdTY29w
ZV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0Vycm9ySGFuZGxpbmdTY29wZV9oCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvRXJyb3JIYW5kbGluZ1Njb3BlLmg+CisjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkocmV2aXNpb24g
MTYyOTYxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTg1MTIsNiArMTg1MTIsNyBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxDb25zdHJ1Y3REYXRhLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXERh
dGVJbnN0YW5jZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hl
YWRlcnNccnVudGltZVxFcnJvci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcRXJyb3JQcm90b3R5
cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1
bnRpbWVcRXhjZXB0aW9uSGVscGVycy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxFeGVjdXRhYmxlLmgiIC8+CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCShyZXZpc2lvbiAxNjI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTEyNTEwLDYgKzEyNTEw
LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRp
bWVcRXJyb3IuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndh
cmRpbmdIZWFkZXJzXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiPgorICAgICAgPEZpbHRl
cj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9y
UHJvdG90eXBlLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9G
aWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDE2Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5
LDcgQEAKICNpbmNsdWRlIDxpbnRlcnByZXRlci9JbnRlcnByZXRlci5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvRGF0ZUluc3RhbmNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FeGNl
cHRpb25IZWxwZXJzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTE1NCw3ICsxNTUsNyBAQCB2b2lkIHJlcG9ydEV4Y2Vw
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTCiAgICAgaWYgKGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4
Y2VwdGlvbihleGNlcHRpb24pKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRlcnByZXRlcjo6
RXJyb3JIYW5kbGluZ01vZGUgbW9kZShleGVjKTsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJy
b3JTY29wZShleGVjLT52bSgpKTsKIAogICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxT
dGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbiwg
U2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKSk7CiAgICAgZXhlYy0+
Y2xlYXJFeGNlcHRpb24oKTsKSW5kZXg6IFRvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxlci1v
dXRwdXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9kaXNwbGF5LXByb2ZpbGVyLW91dHB1
dAkocmV2aXNpb24gMTYyOTYxKQorKysgVG9vbHMvU2NyaXB0cy9kaXNwbGF5LXByb2ZpbGVyLW91
dHB1dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKICMhL3Vzci9iaW4vZW52IHJ1YnkK
IAotIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MzcsNyArNDM3
LDExIEBAICRjb21waWxhdGlvbnMgPSAkanNvblsiY29tcGlsYXRpb25zIl0ubWEKICAgICB8IHN1
Ykpzb24gfAogICAgIENvbXBpbGF0aW9uLm5ldyhzdWJKc29uKQogfQotJGVuZ2luZXMgPSBbIkJh
c2VsaW5lIiwgIkRGRyJdCiskZW5naW5lcyA9IFsiQmFzZWxpbmUiLCAiREZHIiwgIkZUTCIsICJG
VExGb3JPU1JFbnRyeSJdCisKK2RlZiBpc09wdGltaXppbmcoZW5naW5lKQorICAgIGVuZ2luZSA9
PSAiREZHIiBvciBlbmdpbmUgPT0gIkZUTCIgb3IgZW5naW5lID09ICJGVExGb3JPU1JFbnRyeSIK
K2VuZAogCiAkc2hvd0NvdW50cyA9IHRydWUKICRzb3J0TW9kZSA9IDp0aW1lCkBAIC01NzIsOSAr
NTc2LDkgQEAgZGVmIHN1bW1hcnkobW9kZSkKICAgICBpZiBtb2RlID09IDpmdWxsCiAgICAgICAg
IHByaW50KCIgIiArICgiICIgKiBpbnN0cnVjdGlvbkNvdW50Q29scykpCiAgICAgZW5kCi0gICAg
cHJpbnQoIiAiICsgY2VudGVyKCJCYXNlL0RGRyIsIGNvdW50Q29scykpCisgICAgcHJpbnQoIiAi
ICsgY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgY291bnRDb2xzKSkKICAgICBpZiBtb2Rl
ID09IDpmdWxsCi0gICAgICAgIHByaW50KCIgIiArIGNlbnRlcigiQmFzZS9ERkciLCBtYWNoaW5l
Q291bnRDb2xzKSkKKyAgICAgICAgcHJpbnQoIiAiICsgY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRM
T1NSIiwgbWFjaGluZUNvdW50Q29scykpCiAgICAgICAgIHByaW50KCIgIiArICgiICIgKiBjb21w
aWxhdGlvbnNDb2xzKSkKICAgICAgICAgcHJpbnQoIiAiICsgY2VudGVyKCJTcmMvVG90YWwiLCBp
bmxpbmVzQ29scykpCiAgICAgICAgIHByaW50KCIgIiArICgiICIgKiBleGl0Q291bnRDb2xzKSkK
QEAgLTY3NCw3ICs2NzgsNyBAQCBkZWYgZXhlY3V0ZUNvbW1hbmQoKmNvbW1hbmRBcnJheSkKICAg
ICAgICAgICAgIGlmICRzaG93Q291bnRzCiAgICAgICAgICAgICAgICAgcHV0cyhjZW50ZXIoIlNv
dXJjZSBDb3VudHMiLCBjb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJNYWNoaW5lIENvdW50cyIs
IG1hY2hpbmVDb2xzKSArCiAgICAgICAgICAgICAgICAgICAgICAoIiAiICogcGFkKSArIGNlbnRl
cigiQnl0ZWNvZGUgZm9yICN7Ynl0ZWNvZGVzfSIsIHNjcmVlbldpZHRoIC0gcGFkIC0gY291bnRD
b2xzIC0gMSAtIG1hY2hpbmVDb2xzKSkKLSAgICAgICAgICAgICAgICBwdXRzKGNlbnRlcigiQmFz
ZS9ERkciLCBjb3VudENvbHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RGRyIsIGNvdW50Q29scykp
CisgICAgICAgICAgICAgICAgcHV0cyhjZW50ZXIoIkJhc2UvREZHL0ZUTC9GVExPU1IiLCBjb3Vu
dENvbHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgY291bnRDb2xzKSkK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBwdXRzKCJCeXRlY29kZSBmb3IgI3ti
eXRlY29kZXN9OiIpCiAgICAgICAgICAgICBlbmQKQEAgLTg5NCw3ICs4OTgsNyBAQCBkZWYgZXhl
Y3V0ZUNvbW1hbmQoKmNvbW1hbmRBcnJheSkKICAgICAgICAgICAgIHB1dHMoIkNvbXBpbGF0aW9u
ICN7Y29tcGlsYXRpb259OiIpCiAgICAgICAgICAgICBpZiAkc2hvd0NvdW50cwogICAgICAgICAg
ICAgICAgIHB1dHMoY2VudGVyKCJBY3R1YWwgQ291bnRzIiwgYWN0dWFsQ291bnRDb2xzKSArICIg
IiArIGNlbnRlcigiU291cmNlIENvdW50cyIsIHNvdXJjZUNvdW50Q29scykgKyAiICIgKyBjZW50
ZXIoIkRpc2Fzc2VtYmx5IGluICN7Y29tcGlsYXRpb24uZW5naW5lfSIsIHNjcmVlbldpZHRoIC0g
MSAtIHNvdXJjZUNvdW50Q29scyAtIDEgLSBhY3R1YWxDb3VudENvbHMpKQotICAgICAgICAgICAg
ICAgIHB1dHMoKCIgIiAqIGFjdHVhbENvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJhc2UvREZH
Iiwgc291cmNlQ291bnRDb2xzKSkKKyAgICAgICAgICAgICAgICBwdXRzKCgiICIgKiBhY3R1YWxD
b3VudENvbHMpICsgIiAiICsgY2VudGVyKCJCYXNlL0RGRy9GVEwvRlRMT1NSIiwgc291cmNlQ291
bnRDb2xzKSkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBwdXRzKCJEaXNhc3Nl
bWJseSBpbiAje2NvbXBpbGF0aW9uLmVuZ2luZX0iKQogICAgICAgICAgICAgZW5kCkBAIC05MDUs
MTEgKzkwOSwxNSBAQCBkZWYgZXhlY3V0ZUNvbW1hbmQoKmNvbW1hbmRBcnJheSkKICAgICAgICAg
ICAgICAgICB8IGRlc2NyaXB0aW9uIHwKICAgICAgICAgICAgICAgICAjIEZJWE1FOiBXZSBzaG91
bGQgaGF2ZSBhIGJldHRlciB3YXkgb2YgZGV0ZWN0aW5nIHRoaW5ncyBsaWtlIENvdW50RXhlY3V0
aW9uIG5vZGVzCiAgICAgICAgICAgICAgICAgIyBhbmQgc2xvdyBwYXRoIGVudHJpZXMgaW4gdGhl
IGJhc2VsaW5lIEpJVC4KLSAgICAgICAgICAgICAgICBpZiBkZXNjcmlwdGlvbi5kZXNjcmlwdGlv
biA9fiAvQ291bnRFeGVjdXRpb25cKC8gYW5kIGNvbXBpbGF0aW9uLmVuZ2luZSA9PSAiREZHIgor
ICAgICAgICAgICAgICAgIGlmIGRlc2NyaXB0aW9uLmRlc2NyaXB0aW9uID1+IC9Db3VudEV4ZWN1
dGlvblwoLyBhbmQgaXNPcHRpbWl6aW5nKGNvbXBpbGF0aW9uLmVuZ2luZSkKICAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlCiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgICAgICBzaG91bGRTaG93ID0gdHJ1ZQogICAgICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgICAgIGlmIG5vdCBkZXNjcmlwdGlvbi5vcmlnaW4uZW1wdHk/IGFuZCBub3QgZGVz
Y3JpcHRpb24ub3JpZ2luWy0xXQorICAgICAgICAgICAgICAgICAgICBwIGRlc2NyaXB0aW9uLm9y
aWdpbgorICAgICAgICAgICAgICAgICAgICBwIGRlc2NyaXB0aW9uLmRlc2NyaXB0aW9uCisgICAg
ICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24ub3JpZ2luLmVt
cHR5PyBvciBub3QgZGVzY3JpcHRpb24ub3JpZ2luWy0xXS5zaG91bGRIYXZlQ291bnRzPyBvciAo
Y29tcGlsYXRpb24uZW5naW5lID09ICJCYXNlbGluZSIgYW5kIGRlc2NyaXB0aW9uLmRlc2NyaXB0
aW9uID1+IC9eXHMqXChTXCkvKQogICAgICAgICAgICAgICAgICAgICBhY3R1YWxDb3VudHNTdHJp
bmcgPSAiIgogICAgICAgICAgICAgICAgICAgICBzb3VyY2VDb3VudHNTdHJpbmcgPSAiIgpJbmRl
eDogVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCShyZXZpc2lvbiAxNjI5NjEpCisrKyBUb29s
cy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiAr
MTgwLDggQEAgJG51bUZhaWx1cmVzID0gMAogCiBFQUdFUl9PUFRJT05TID0gWyItLXRocmVzaG9s
ZEZvckpJVEFmdGVyV2FybVVwPTEwIiwgIi0tdGhyZXNob2xkRm9ySklUU29vbj0xMCIsICItLXRo
cmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXA9MjAiLCAiLS10aHJlc2hvbGRGb3JPcHRpbWl6
ZUFmdGVyTG9uZ1dhcm1VcD0yMCIsICItLXRocmVzaG9sZEZvck9wdGltaXplU29vbj0yMCIsICIt
LXRocmVzaG9sZEZvckZUTE9wdGltaXplQWZ0ZXJXYXJtVXA9MjAiLCAiLS10aHJlc2hvbGRGb3JG
VExPcHRpbWl6ZVNvb249MjAiXQogCitGVExfT1BUSU9OUyA9IFsiLS11c2VFeHBlcmltZW50YWxG
VEw9dHJ1ZSIsICItLWVuYWJsZUV4cGVyaW1lbnRhbEZUTENvdmVyYWdlPXRydWUiXQorCiAkcnVu
bGlzdCA9IFtdCiAKIGRlZiBmcmFtZXdvcmtGcm9tSlNDUGF0aChqc2NQYXRoKQpAQCAtNTMyLDE5
ICs1MzQsMTkgQEAgZGVmIHJ1bk5vQ0pJVFZhbGlkYXRlUGhhc2VzCiBlbmQKIAogZGVmIHJ1bkRl
ZmF1bHRGVEwKLSAgICBydW4oImRlZmF1bHQtZnRsIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRy
dWUiKQorICAgIHJ1bigiZGVmYXVsdC1mdGwiLCAqRlRMX09QVElPTlMpCiBlbmQKIAogZGVmIHJ1
bkZUTE5vQ0pJVAotICAgIHJ1bigiZnRsLW5vLWNqaXQiLCAiLS1lbmFibGVDb25jdXJyZW50SklU
PWZhbHNlIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiKQorICAgIHJ1bigiZnRsLW5vLWNq
aXQiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgKkZUTF9PUFRJT05TKQogZW5kCiAK
IGRlZiBydW5GVExOb0NKSVRWYWxpZGF0ZQotICAgIHJ1bigiZnRsLW5vLWNqaXQtdmFsaWRhdGUi
LCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRy
dWUiLCAiLS12YWxpZGF0ZUdyYXBoPXRydWUiKQorICAgIHJ1bigiZnRsLW5vLWNqaXQtdmFsaWRh
dGUiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVHcmFwaD10cnVl
IiwgKkZUTF9PUFRJT05TKQogZW5kCiAKIGRlZiBydW5GVExOb0NKSVRPU1JWYWxpZGF0aW9uCi0g
ICAgcnVuKCJmdGwtbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLWVuYWJsZUNvbmN1cnJlbnRK
SVQ9ZmFsc2UiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIsICItLXZhbGlkYXRlRlRMT1NS
RXhpdExpdmVuZXNzPXRydWUiKQorICAgIHJ1bigiZnRsLW5vLWNqaXQtb3NyLXZhbGlkYXRpb24i
LCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVGVExPU1JFeGl0TGl2
ZW5lc3M9dHJ1ZSIsICpGVExfT1BUSU9OUykKIGVuZAogCiBkZWYgcnVuREZHRWFnZXIKQEAgLTU1
NiwxNSArNTU4LDE1IEBAIGRlZiBydW5ERkdFYWdlck5vQ0pJVFZhbGlkYXRlCiBlbmQKIAogZGVm
IHJ1bkZUTEVhZ2VyCi0gICAgcnVuKCJmdGwtZWFnZXIiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9
dHJ1ZSIsICpFQUdFUl9PUFRJT05TKQorICAgIHJ1bigiZnRsLWVhZ2VyIiwgKihGVExfT1BUSU9O
UyArIEVBR0VSX09QVElPTlMpKQogZW5kCiAKIGRlZiBydW5GVExFYWdlck5vQ0pJVFZhbGlkYXRl
Ci0gICAgcnVuKCJmdGwtZWFnZXItbm8tY2ppdCIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVl
IiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIs
ICpFQUdFUl9PUFRJT05TKQorICAgIHJ1bigiZnRsLWVhZ2VyLW5vLWNqaXQiLCAiLS1lbmFibGVD
b25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVHcmFwaD10cnVlIiwgKihGVExfT1BUSU9O
UyArIEVBR0VSX09QVElPTlMpKQogZW5kCiAKIGRlZiBydW5GVExFYWdlck5vQ0pJVE9TUlZhbGlk
YXRpb24KLSAgICBydW4oImZ0bC1lYWdlci1uby1jaml0LW9zci12YWxpZGF0aW9uIiwgIi0tdXNl
RXhwZXJpbWVudGFsRlRMPXRydWUiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0t
dmFsaWRhdGVGVExPU1JFeGl0TGl2ZW5lc3M9dHJ1ZSIsICpFQUdFUl9PUFRJT05TKQorICAgIHJ1
bigiZnRsLWVhZ2VyLW5vLWNqaXQtb3NyLXZhbGlkYXRpb24iLCAiLS1lbmFibGVDb25jdXJyZW50
SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVGVExPU1JFeGl0TGl2ZW5lc3M9dHJ1ZSIsICooRlRMX09Q
VElPTlMgKyBFQUdFUl9PUFRJT05TKSkKIGVuZAogCiBkZWYgcnVuQWx3YXlzVHJpZ2dlckNvcHlQ
aGFzZQpAQCAtNjQ2LDEzICs2NDgsMzQgQEAgZGVmIHJ1bkxheW91dFRlc3RERkdFYWdlck5vQ0pJ
VAogICAgIHJ1bkxheW91dFRlc3QoImRmZy1lYWdlci1uby1jaml0IiwgIi0tZW5hYmxlQ29uY3Vy
cmVudEpJVD1mYWxzZSIsICpFQUdFUl9PUFRJT05TKQogZW5kCiAKLWRlZiBkZWZhdWx0UnVuTGF5
b3V0VGVzdAorZGVmIHJ1bkxheW91dFRlc3REZWZhdWx0RlRMCisgICAgcnVuTGF5b3V0VGVzdCgi
ZnRsIiwgIi0tdGVzdFRoZUZUTD10cnVlIiwgKkZUTF9PUFRJT05TKQorZW5kCisKK2RlZiBydW5M
YXlvdXRUZXN0RlRMTm9DSklUCisgICAgcnVuTGF5b3V0VGVzdCgiZnRsLW5vLWNqaXQiLCAiLS10
ZXN0VGhlRlRMPXRydWUiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgKkZUTF9PUFRJ
T05TKQorZW5kCisKK2RlZiBydW5MYXlvdXRUZXN0RlRMRWFnZXJOb0NKSVQKKyAgICBydW5MYXlv
dXRUZXN0KCJmdGwtZWFnZXItbm8tY2ppdCIsICItLXRlc3RUaGVGVEw9dHJ1ZSIsICItLWVuYWJs
ZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgRUFHRVJfT1BUSU9OUykpCitl
bmQKKworZGVmIG5vRlRMUnVuTGF5b3V0VGVzdAogICAgIHJ1bkxheW91dFRlc3REZWZhdWx0CiAg
ICAgcnVuTGF5b3V0VGVzdE5vTExJbnQKICAgICBydW5MYXlvdXRUZXN0Tm9DSklUCiAgICAgcnVu
TGF5b3V0VGVzdERGR0VhZ2VyTm9DSklUCiBlbmQKIAorZGVmIGRlZmF1bHRSdW5MYXlvdXRUZXN0
CisgICAgbm9GVExSdW5MYXlvdXRUZXN0CisgICAgaWYgJGVuYWJsZUZUTAorICAgICAgICBydW5M
YXlvdXRUZXN0RGVmYXVsdEZUTAorICAgICAgICBydW5MYXlvdXRUZXN0RlRMTm9DSklUCisgICAg
ICAgIHJ1bkxheW91dFRlc3RGVExFYWdlck5vQ0pJVAorICAgIGVuZAorZW5kCisKIGRlZiBwcmVw
YXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGV4dHJhRmlsZXMsIGRlc3RpbmF0aW9uKQogICAgIERpci5j
aGRpcigkb3V0cHV0RGlyKSB7CiAgICAgICAgIGV4dHJhRmlsZXMuZWFjaCB7CkBAIC03MDYsNiAr
NzI5LDEwIEBAIGRlZiBydW5Nb3ppbGxhVGVzdERlZmF1bHQobW9kZSwgKmV4dHJhRmkKICAgICBy
dW5Nb3ppbGxhVGVzdChuaWwsIG1vZGUsIGV4dHJhRmlsZXMpCiBlbmQKIAorZGVmIHJ1bk1vemls
bGFUZXN0RGVmYXVsdEZUTChtb2RlLCAqZXh0cmFGaWxlcykKKyAgICBydW5Nb3ppbGxhVGVzdCgi
ZnRsIiwgbW9kZSwgZXh0cmFGaWxlcywgKkZUTF9PUFRJT05TKQorZW5kCisKIGRlZiBydW5Nb3pp
bGxhVGVzdExMSW50KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0KCJsbGlu
dCIsIG1vZGUsIGV4dHJhRmlsZXMsICItLXVzZUpJVD1mYWxzZSIpCiBlbmQKQEAgLTcxOCwxMSAr
NzQ1LDE5IEBAIGRlZiBydW5Nb3ppbGxhVGVzdERGR0VhZ2VyTm9DSklUVmFsaWRhdGUKICAgICBy
dW5Nb3ppbGxhVGVzdCgiZGZnLWVhZ2VyLW5vLWNqaXQtdmFsaWRhdGUtcGhhc2VzIiwgbW9kZSwg
ZXh0cmFGaWxlcywgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlQnl0
ZWNvZGU9dHJ1ZSIsICItLXZhbGlkYXRlR3JhcGhBdEVhY2hQaGFzZT10cnVlIiwgKkVBR0VSX09Q
VElPTlMpCiBlbmQKIAorZGVmIHJ1bk1vemlsbGFUZXN0RlRMRWFnZXJOb0NKSVRWYWxpZGF0ZVBo
YXNlcyhtb2RlLCAqZXh0cmFGaWxlcykKKyAgICBydW5Nb3ppbGxhVGVzdCgiZnRsLWVhZ2VyLW5v
LWNqaXQtdmFsaWRhdGUtcGhhc2VzIiwgbW9kZSwgZXh0cmFGaWxlcywgIi0tZW5hYmxlQ29uY3Vy
cmVudEpJVD1mYWxzZSIsICItLXZhbGlkYXRlQnl0ZWNvZGU9dHJ1ZSIsICItLXZhbGlkYXRlR3Jh
cGhBdEVhY2hQaGFzZT10cnVlIiwgKihGVExfT1BUSU9OUyArIEVBR0VSX09QVElPTlMpKQorZW5k
CisKIGRlZiBkZWZhdWx0UnVuTW96aWxsYVRlc3QobW9kZSwgKmV4dHJhRmlsZXMpCiAgICAgcnVu
TW96aWxsYVRlc3REZWZhdWx0KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0
TExJbnQobW9kZSwgKmV4dHJhRmlsZXMpCiAgICAgcnVuTW96aWxsYVRlc3RCYXNlbGluZUpJVCht
b2RlLCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3ppbGxhVGVzdERGR0VhZ2VyTm9DSklUVmFsaWRh
dGVQaGFzZXMobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgaWYgJGVuYWJsZUZUTAorICAgICAgICBy
dW5Nb3ppbGxhVGVzdERlZmF1bHRGVEwobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgICAgIHJ1bk1v
emlsbGFUZXN0RlRMRWFnZXJOb0NKSVRWYWxpZGF0ZVBoYXNlcyhtb2RlLCAqZXh0cmFGaWxlcykK
KyAgICBlbmQKIGVuZAogCiBkZWYgc2tpcApJbmRleDogTGF5b3V0VGVzdHMvanMvbGFyZ2UtZXhw
cmVzc2lvbnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2xhcmdl
LWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTYyOTYxKQorKysgTGF5b3V0VGVz
dHMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01
LDcgKzUsNiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIFBB
U1MgZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMCkpIGlzIHJlcGVh
dGVkU3RyaW5nKCJhIiwgMTAwKQogUEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVy
QSIsICIrIiwgMTAwMCkpIGlzIHJlcGVhdGVkU3RyaW5nKCJhIiwgMTAwMCkKLVBBU1MgZXZhbChy
ZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMDAwKSkgaXMgcmVwZWF0ZWRTdHJp
bmcoImEiLCAxMDAwMCkKIFBBU1MgZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAi
KyIsIDEwMDAwMCkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogT3V0IG9mIG1lbW9yeS4KIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zdGVwYW5vdl9jb250YWluZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTYyOTYxKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdGVwYW5vdl9jb250YWluZXItZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9zdGVw
YW5vdl9jb250YWluZXIKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8g
ZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFp
bmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdGVwYW5vdl9j
b250YWluZXIuaHRtbAkocmV2aXNpb24gMTYyOTYxKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zdGVwYW5vdl9jb250YWluZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBA
Ci08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdGVwYW5vdl9jb250
YWluZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvc3RlcGFub3ZfY29udGFpbmVyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcwko
cmV2aXNpb24gMTYyOTYxKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
c3RlcGFub3ZfY29udGFpbmVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY0MDQgKzAsMCBAQAot
Ly9AIHNsb3chCi0vL0AgcnVuRGVmYXVsdAotLy9AIHJ1bkRlZmF1bHRGVEwgaWYgJGVuYWJsZUZU
TAotCi0vLyBOb3RlOiBGb3IgbWF4aW11bS1zcGVlZCBjb2RlLCBzZWUgIk9wdGltaXppbmcgQ29k
ZSIgb24gdGhlIEVtc2NyaXB0ZW4gd2lraSwgaHR0cHM6Ly9naXRodWIuY29tL2tyaXBrZW4vZW1z
Y3JpcHRlbi93aWtpL09wdGltaXppbmctQ29kZQotLy8gTm90ZTogU29tZSBFbXNjcmlwdGVuIHNl
dHRpbmdzIG1heSBsaW1pdCB0aGUgc3BlZWQgb2YgdGhlIGdlbmVyYXRlZCBjb2RlLgotLy8gVGhl
IE1vZHVsZSBvYmplY3Q6IE91ciBpbnRlcmZhY2UgdG8gdGhlIG91dHNpZGUgd29ybGQuIFdlIGlt
cG9ydAotLy8gYW5kIGV4cG9ydCB2YWx1ZXMgb24gaXQsIGFuZCBkbyB0aGUgd29yayB0byBnZXQg
dGhhdCB0aHJvdWdoCi0vLyBjbG9zdXJlIGNvbXBpbGVyIGlmIG5lY2Vzc2FyeS4gVGhlcmUgYXJl
IHZhcmlvdXMgd2F5cyBNb2R1bGUgY2FuIGJlIHVzZWQ6Ci0vLyAxLiBOb3QgZGVmaW5lZC4gV2Ug
Y3JlYXRlIGl0IGhlcmUKLS8vIDIuIEEgZnVuY3Rpb24gcGFyYW1ldGVyLCBmdW5jdGlvbihNb2R1
bGUpIHsgLi5nZW5lcmF0ZWQgY29kZS4uIH0KLS8vIDMuIHByZS1ydW4gYXBwZW5kZWQgaXQsIHZh
ciBNb2R1bGUgPSB7fTsgLi5nZW5lcmF0ZWQgY29kZS4uCi0vLyA0LiBFeHRlcm5hbCBzY3JpcHQg
dGFnIGRlZmluZXMgdmFyIE1vZHVsZS4KLS8vIFdlIG5lZWQgdG8gZG8gYW4gZXZhbCBpbiBvcmRl
ciB0byBoYW5kbGUgdGhlIGNsb3N1cmUgY29tcGlsZXIKLS8vIGNhc2UsIHdoZXJlIHRoaXMgY29k
ZSBoZXJlIGlzIG1pbmlmaWVkIGJ1dCBNb2R1bGUgd2FzIGRlZmluZWQKLS8vIGVsc2V3aGVyZSAo
ZS5nLiBjYXNlIDQgYWJvdmUpLiBXZSBhbHNvIG5lZWQgdG8gY2hlY2sgaWYgTW9kdWxlCi0vLyBh
bHJlYWR5IGV4aXN0cyAoZS5nLiBjYXNlIDMgYWJvdmUpLgotLy8gTm90ZSB0aGF0IGlmIHlvdSB3
YW50IHRvIHJ1biBjbG9zdXJlLCBhbmQgYWxzbyB0byB1c2UgTW9kdWxlCi0vLyBhZnRlciB0aGUg
Z2VuZXJhdGVkIGNvZGUsIHlvdSB3aWxsIG5lZWQgdG8gZGVmaW5lICAgdmFyIE1vZHVsZSA9IHt9
OwotLy8gYmVmb3JlIHRoZSBjb2RlLiBUaGVuIHRoYXQgb2JqZWN0IHdpbGwgYmUgdXNlZCBpbiB0
aGUgY29kZSwgYW5kIHlvdQotLy8gY2FuIGNvbnRpbnVlIHRvIHVzZSBNb2R1bGUgYWZ0ZXJ3YXJk
cyBhcyB3ZWxsLgotdmFyIE1vZHVsZTsKLWlmICghTW9kdWxlKSBNb2R1bGUgPSBldmFsKCcoZnVu
Y3Rpb24oKSB7IHRyeSB7IHJldHVybiBNb2R1bGUgfHwge30gfSBjYXRjaChlKSB7IHJldHVybiB7
fSB9IH0pKCknKTsKLS8vIFNvbWV0aW1lcyBhbiBleGlzdGluZyBNb2R1bGUgb2JqZWN0IGV4aXN0
cyB3aXRoIHByb3BlcnRpZXMKLS8vIG1lYW50IHRvIG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCBtb2R1
bGUgZnVuY3Rpb25hbGl0eS4gSGVyZQotLy8gd2UgY29sbGVjdCB0aG9zZSBwcm9wZXJ0aWVzIGFu
ZCByZWFwcGx5IF9hZnRlcl8gd2UgY29uZmlndXJlCi0vLyB0aGUgY3VycmVudCBlbnZpcm9ubWVu
dCdzIGRlZmF1bHRzIHRvIGF2b2lkIGhhdmluZyB0byBiZSBzbwotLy8gZGVmZW5zaXZlIGR1cmlu
ZyBpbml0aWFsaXphdGlvbi4KLXZhciBtb2R1bGVPdmVycmlkZXMgPSB7fTsKLWZvciAodmFyIGtl
eSBpbiBNb2R1bGUpIHsKLSAgaWYgKE1vZHVsZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7Ci0gICAg
bW9kdWxlT3ZlcnJpZGVzW2tleV0gPSBNb2R1bGVba2V5XTsKLSAgfQotfQotLy8gVGhlIGVudmly
b25tZW50IHNldHVwIGNvZGUgYmVsb3cgaXMgY3VzdG9taXplZCB0byB1c2UgTW9kdWxlLgotLy8g
KioqIEVudmlyb25tZW50IHNldHVwIGNvZGUgKioqCi12YXIgRU5WSVJPTk1FTlRfSVNfTk9ERSA9
IHR5cGVvZiBwcm9jZXNzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0
aW9uJzsKLXZhciBFTlZJUk9OTUVOVF9JU19XRUIgPSB0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0
JzsKLXZhciBFTlZJUk9OTUVOVF9JU19XT1JLRVIgPSB0eXBlb2YgaW1wb3J0U2NyaXB0cyA9PT0g
J2Z1bmN0aW9uJzsKLXZhciBFTlZJUk9OTUVOVF9JU19TSEVMTCA9ICFFTlZJUk9OTUVOVF9JU19X
RUIgJiYgIUVOVklST05NRU5UX0lTX05PREUgJiYgIUVOVklST05NRU5UX0lTX1dPUktFUjsKLWlm
IChFTlZJUk9OTUVOVF9JU19OT0RFKSB7Ci0gIC8vIEV4cG9zZSBmdW5jdGlvbmFsaXR5IGluIHRo
ZSBzYW1lIHNpbXBsZSB3YXkgdGhhdCB0aGUgc2hlbGxzIHdvcmsKLSAgLy8gTm90ZSB0aGF0IHdl
IHBvbGx1dGUgdGhlIGdsb2JhbCBuYW1lc3BhY2UgaGVyZSwgb3RoZXJ3aXNlIHdlIGJyZWFrIGlu
IG5vZGUKLSAgTW9kdWxlWydwcmludCddID0gZnVuY3Rpb24oeCkgewotICAgIHByb2Nlc3NbJ3N0
ZG91dCddLndyaXRlKHggKyAnXG4nKTsKLSAgfTsKLSAgTW9kdWxlWydwcmludEVyciddID0gZnVu
Y3Rpb24oeCkgewotICAgIHByb2Nlc3NbJ3N0ZGVyciddLndyaXRlKHggKyAnXG4nKTsKLSAgfTsK
LSAgdmFyIG5vZGVGUyA9IHJlcXVpcmUoJ2ZzJyk7Ci0gIHZhciBub2RlUGF0aCA9IHJlcXVpcmUo
J3BhdGgnKTsKLSAgTW9kdWxlWydyZWFkJ10gPSBmdW5jdGlvbihmaWxlbmFtZSwgYmluYXJ5KSB7
Ci0gICAgZmlsZW5hbWUgPSBub2RlUGF0aFsnbm9ybWFsaXplJ10oZmlsZW5hbWUpOwotICAgIHZh
ciByZXQgPSBub2RlRlNbJ3JlYWRGaWxlU3luYyddKGZpbGVuYW1lKTsKLSAgICAvLyBUaGUgcGF0
aCBpcyBhYnNvbHV0ZSBpZiB0aGUgbm9ybWFsaXplZCB2ZXJzaW9uIGlzIHRoZSBzYW1lIGFzIHRo
ZSByZXNvbHZlZC4KLSAgICBpZiAoIXJldCAmJiBmaWxlbmFtZSAhPSBub2RlUGF0aFsncmVzb2x2
ZSddKGZpbGVuYW1lKSkgewotICAgICAgZmlsZW5hbWUgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAn
Li4nLCAnc3JjJywgZmlsZW5hbWUpOwotICAgICAgcmV0ID0gbm9kZUZTWydyZWFkRmlsZVN5bmMn
XShmaWxlbmFtZSk7Ci0gICAgfQotICAgIGlmIChyZXQgJiYgIWJpbmFyeSkgcmV0ID0gcmV0LnRv
U3RyaW5nKCk7Ci0gICAgcmV0dXJuIHJldDsKLSAgfTsKLSAgTW9kdWxlWydyZWFkQmluYXJ5J10g
PSBmdW5jdGlvbihmaWxlbmFtZSkgeyByZXR1cm4gTW9kdWxlWydyZWFkJ10oZmlsZW5hbWUsIHRy
dWUpIH07Ci0gIE1vZHVsZVsnbG9hZCddID0gZnVuY3Rpb24oZikgewotICAgIGdsb2JhbEV2YWwo
cmVhZChmKSk7Ci0gIH07Ci0gIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBwcm9jZXNzWydhcmd2J10u
c2xpY2UoMik7Ci0gIG1vZHVsZS5leHBvcnRzID0gTW9kdWxlOwotfQotZWxzZSBpZiAoRU5WSVJP
Tk1FTlRfSVNfU0hFTEwpIHsKLSAgTW9kdWxlWydwcmludCddID0gcHJpbnQ7Ci0gIGlmICh0eXBl
b2YgcHJpbnRFcnIgIT0gJ3VuZGVmaW5lZCcpIE1vZHVsZVsncHJpbnRFcnInXSA9IHByaW50RXJy
OyAvLyBub3QgcHJlc2VudCBpbiB2OCBvciBvbGRlciBzbQotICBpZiAodHlwZW9mIHJlYWQgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICBNb2R1bGVbJ3JlYWQnXSA9IHJlYWQ7Ci0gIH0gZWxzZSB7Ci0g
ICAgTW9kdWxlWydyZWFkJ10gPSBmdW5jdGlvbigpIHsgdGhyb3cgJ25vIHJlYWQoKSBhdmFpbGFi
bGUgKGpzYz8pJyB9OwotICB9Ci0gIE1vZHVsZVsncmVhZEJpbmFyeSddID0gZnVuY3Rpb24oZikg
ewotICAgIHJldHVybiByZWFkKGYsICdiaW5hcnknKTsKLSAgfTsKLSAgaWYgKHR5cGVvZiBzY3Jp
cHRBcmdzICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgTW9kdWxlWydhcmd1bWVudHMnXSA9IHNjcmlw
dEFyZ3M7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIGFyZ3VtZW50cyAhPSAndW5kZWZpbmVkJykgewot
ICAgIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBhcmd1bWVudHM7Ci0gIH0KLSAgdGhpc1snTW9kdWxl
J10gPSBNb2R1bGU7Ci19Ci1lbHNlIGlmIChFTlZJUk9OTUVOVF9JU19XRUIgfHwgRU5WSVJPTk1F
TlRfSVNfV09SS0VSKSB7Ci0gIE1vZHVsZVsncmVhZCddID0gZnVuY3Rpb24odXJsKSB7Ci0gICAg
dmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHhoci5vcGVuKCdHRVQnLCB1cmws
IGZhbHNlKTsKLSAgICB4aHIuc2VuZChudWxsKTsKLSAgICByZXR1cm4geGhyLnJlc3BvbnNlVGV4
dDsKLSAgfTsKLSAgaWYgKHR5cGVvZiBhcmd1bWVudHMgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBN
b2R1bGVbJ2FyZ3VtZW50cyddID0gYXJndW1lbnRzOwotICB9Ci0gIGlmIChFTlZJUk9OTUVOVF9J
U19XRUIpIHsKLSAgICBNb2R1bGVbJ3ByaW50J10gPSBmdW5jdGlvbih4KSB7Ci0gICAgICBjb25z
b2xlLmxvZyh4KTsKLSAgICB9OwotICAgIE1vZHVsZVsncHJpbnRFcnInXSA9IGZ1bmN0aW9uKHgp
IHsKLSAgICAgIGNvbnNvbGUubG9nKHgpOwotICAgIH07Ci0gICAgdGhpc1snTW9kdWxlJ10gPSBN
b2R1bGU7Ci0gIH0gZWxzZSBpZiAoRU5WSVJPTk1FTlRfSVNfV09SS0VSKSB7Ci0gICAgLy8gV2Ug
Y2FuIGRvIHZlcnkgbGl0dGxlIGhlcmUuLi4KLSAgICB2YXIgVFJZX1VTRV9EVU1QID0gZmFsc2U7
Ci0gICAgTW9kdWxlWydwcmludCddID0gKFRSWV9VU0VfRFVNUCAmJiAodHlwZW9mKGR1bXApICE9
PSAidW5kZWZpbmVkIikgPyAoZnVuY3Rpb24oeCkgewotICAgICAgZHVtcCh4KTsKLSAgICB9KSA6
IChmdW5jdGlvbih4KSB7Ci0gICAgICAvLyBzZWxmLnBvc3RNZXNzYWdlKHgpOyAvLyBlbmFibGUg
dGhpcyBpZiB5b3Ugd2FudCBzdGRvdXQgdG8gYmUgc2VudCBhcyBtZXNzYWdlcwotICAgIH0pKTsK
LSAgICBNb2R1bGVbJ2xvYWQnXSA9IGltcG9ydFNjcmlwdHM7Ci0gIH0KLX0KLWVsc2UgewotICAv
LyBVbnJlYWNoYWJsZSBiZWNhdXNlIFNIRUxMIGlzIGRlcGVuZGFudCBvbiB0aGUgb3RoZXJzCi0g
IHRocm93ICdVbmtub3duIHJ1bnRpbWUgZW52aXJvbm1lbnQuIFdoZXJlIGFyZSB3ZT8nOwotfQot
ZnVuY3Rpb24gZ2xvYmFsRXZhbCh4KSB7Ci0gIGV2YWwuY2FsbChudWxsLCB4KTsKLX0KLWlmICgh
TW9kdWxlWydsb2FkJ10gPT0gJ3VuZGVmaW5lZCcgJiYgTW9kdWxlWydyZWFkJ10pIHsKLSAgTW9k
dWxlWydsb2FkJ10gPSBmdW5jdGlvbihmKSB7Ci0gICAgZ2xvYmFsRXZhbChNb2R1bGVbJ3JlYWQn
XShmKSk7Ci0gIH07Ci19Ci1pZiAoIU1vZHVsZVsncHJpbnQnXSkgewotICBNb2R1bGVbJ3ByaW50
J10gPSBmdW5jdGlvbigpe307Ci19Ci1pZiAoIU1vZHVsZVsncHJpbnRFcnInXSkgewotICBNb2R1
bGVbJ3ByaW50RXJyJ10gPSBNb2R1bGVbJ3ByaW50J107Ci19Ci1pZiAoIU1vZHVsZVsnYXJndW1l
bnRzJ10pIHsKLSAgTW9kdWxlWydhcmd1bWVudHMnXSA9IFtdOwotfQotLy8gKioqIEVudmlyb25t
ZW50IHNldHVwIGNvZGUgKioqCi0vLyBDbG9zdXJlIGhlbHBlcnMKLU1vZHVsZS5wcmludCA9IE1v
ZHVsZVsncHJpbnQnXTsKLU1vZHVsZS5wcmludEVyciA9IE1vZHVsZVsncHJpbnRFcnInXTsKLS8v
IENhbGxiYWNrcwotTW9kdWxlWydwcmVSdW4nXSA9IFtdOwotTW9kdWxlWydwb3N0UnVuJ10gPSBb
XTsKLS8vIE1lcmdlIGJhY2sgaW4gdGhlIG92ZXJyaWRlcwotZm9yICh2YXIga2V5IGluIG1vZHVs
ZU92ZXJyaWRlcykgewotICBpZiAobW9kdWxlT3ZlcnJpZGVzLmhhc093blByb3BlcnR5KGtleSkp
IHsKLSAgICBNb2R1bGVba2V5XSA9IG1vZHVsZU92ZXJyaWRlc1trZXldOwotICB9Ci19Ci0vLyA9
PT0gQXV0by1nZW5lcmF0ZWQgcHJlYW1ibGUgbGlicmFyeSBzdHVmZiA9PT0KLS8vPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8gUnVudGltZSBjb2RlIHNoYXJlZCB3
aXRoIGNvbXBpbGVyCi0vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LXZhciBSdW50aW1lID0gewotICBzdGFja1NhdmU6IGZ1bmN0aW9uICgpIHsKLSAgICByZXR1cm4g
U1RBQ0tUT1A7Ci0gIH0sCi0gIHN0YWNrUmVzdG9yZTogZnVuY3Rpb24gKHN0YWNrVG9wKSB7Ci0g
ICAgU1RBQ0tUT1AgPSBzdGFja1RvcDsKLSAgfSwKLSAgZm9yY2VBbGlnbjogZnVuY3Rpb24gKHRh
cmdldCwgcXVhbnR1bSkgewotICAgIHF1YW50dW0gPSBxdWFudHVtIHx8IDQ7Ci0gICAgaWYgKHF1
YW50dW0gPT0gMSkgcmV0dXJuIHRhcmdldDsKLSAgICBpZiAoaXNOdW1iZXIodGFyZ2V0KSAmJiBp
c051bWJlcihxdWFudHVtKSkgewotICAgICAgcmV0dXJuIE1hdGguY2VpbCh0YXJnZXQvcXVhbnR1
bSkqcXVhbnR1bTsKLSAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKHF1YW50dW0pICYmIGlzUG93ZXJP
ZlR3byhxdWFudHVtKSkgewotICAgICAgdmFyIGxvZ2cgPSBsb2cyKHF1YW50dW0pOwotICAgICAg
cmV0dXJuICcoKCgoJyArdGFyZ2V0ICsgJykrJyArIChxdWFudHVtLTEpICsgJyk+PicgKyBsb2dn
ICsgJyk8PCcgKyBsb2dnICsgJyknOwotICAgIH0KLSAgICByZXR1cm4gJ01hdGguY2VpbCgoJyAr
IHRhcmdldCArICcpLycgKyBxdWFudHVtICsgJykqJyArIHF1YW50dW07Ci0gIH0sCi0gIGlzTnVt
YmVyVHlwZTogZnVuY3Rpb24gKHR5cGUpIHsKLSAgICByZXR1cm4gdHlwZSBpbiBSdW50aW1lLklO
VF9UWVBFUyB8fCB0eXBlIGluIFJ1bnRpbWUuRkxPQVRfVFlQRVM7Ci0gIH0sCi0gIGlzUG9pbnRl
clR5cGU6IGZ1bmN0aW9uIGlzUG9pbnRlclR5cGUodHlwZSkgewotICByZXR1cm4gdHlwZVt0eXBl
Lmxlbmd0aC0xXSA9PSAnKic7Ci19LAotICBpc1N0cnVjdFR5cGU6IGZ1bmN0aW9uIGlzU3RydWN0
VHlwZSh0eXBlKSB7Ci0gIGlmIChpc1BvaW50ZXJUeXBlKHR5cGUpKSByZXR1cm4gZmFsc2U7Ci0g
IGlmIChpc0FycmF5VHlwZSh0eXBlKSkgcmV0dXJuIHRydWU7Ci0gIGlmICgvPD97ID9bXn1dKiA/
fT4/Ly50ZXN0KHR5cGUpKSByZXR1cm4gdHJ1ZTsgLy8geyBpMzIsIGk4IH0gZXRjLiAtIGFub255
bW91cyBzdHJ1Y3QgdHlwZXMKLSAgLy8gU2VlIGNvbW1lbnQgaW4gaXNTdHJ1Y3RQb2ludGVyVHlw
ZSgpCi0gIHJldHVybiB0eXBlWzBdID09ICclJzsKLX0sCi0gIElOVF9UWVBFUzogeyJpMSI6MCwi
aTgiOjAsImkxNiI6MCwiaTMyIjowLCJpNjQiOjB9LAotICBGTE9BVF9UWVBFUzogeyJmbG9hdCI6
MCwiZG91YmxlIjowfSwKLSAgb3I2NDogZnVuY3Rpb24gKHgsIHkpIHsKLSAgICB2YXIgbCA9ICh4
IHwgMCkgfCAoeSB8IDApOwotICAgIHZhciBoID0gKE1hdGgucm91bmQoeCAvIDQyOTQ5NjcyOTYp
IHwgTWF0aC5yb3VuZCh5IC8gNDI5NDk2NzI5NikpICogNDI5NDk2NzI5NjsKLSAgICByZXR1cm4g
bCArIGg7Ci0gIH0sCi0gIGFuZDY0OiBmdW5jdGlvbiAoeCwgeSkgewotICAgIHZhciBsID0gKHgg
fCAwKSAmICh5IHwgMCk7Ci0gICAgdmFyIGggPSAoTWF0aC5yb3VuZCh4IC8gNDI5NDk2NzI5Nikg
JiBNYXRoLnJvdW5kKHkgLyA0Mjk0OTY3Mjk2KSkgKiA0Mjk0OTY3Mjk2OwotICAgIHJldHVybiBs
ICsgaDsKLSAgfSwKLSAgeG9yNjQ6IGZ1bmN0aW9uICh4LCB5KSB7Ci0gICAgdmFyIGwgPSAoeCB8
IDApIF4gKHkgfCAwKTsKLSAgICB2YXIgaCA9IChNYXRoLnJvdW5kKHggLyA0Mjk0OTY3Mjk2KSBe
IE1hdGgucm91bmQoeSAvIDQyOTQ5NjcyOTYpKSAqIDQyOTQ5NjcyOTY7Ci0gICAgcmV0dXJuIGwg
KyBoOwotICB9LAotICBnZXROYXRpdmVUeXBlU2l6ZTogZnVuY3Rpb24gKHR5cGUsIHF1YW50dW1T
aXplKSB7Ci0gICAgaWYgKFJ1bnRpbWUuUVVBTlRVTV9TSVpFID09IDEpIHJldHVybiAxOwotICAg
IHZhciBzaXplID0gewotICAgICAgJyVpMSc6IDEsCi0gICAgICAnJWk4JzogMSwKLSAgICAgICcl
aTE2JzogMiwKLSAgICAgICclaTMyJzogNCwKLSAgICAgICclaTY0JzogOCwKLSAgICAgICIlZmxv
YXQiOiA0LAotICAgICAgIiVkb3VibGUiOiA4Ci0gICAgfVsnJScrdHlwZV07IC8vIGFkZCAnJScg
c2luY2UgZmxvYXQgYW5kIGRvdWJsZSBjb25mdXNlIENsb3N1cmUgY29tcGlsZXIgYXMga2V5cywg
YW5kIGFsc28gc3BpZGVybW9ua2V5IGFzIGEgY29tcGlsZXIgd2lsbCByZW1vdmUgJ3MgZnJvbSAn
X2k4JyBldGMKLSAgICBpZiAoIXNpemUpIHsKLSAgICAgIGlmICh0eXBlLmNoYXJBdCh0eXBlLmxl
bmd0aC0xKSA9PSAnKicpIHsKLSAgICAgICAgc2l6ZSA9IFJ1bnRpbWUuUVVBTlRVTV9TSVpFOyAv
LyBBIHBvaW50ZXIKLSAgICAgIH0gZWxzZSBpZiAodHlwZVswXSA9PSAnaScpIHsKLSAgICAgICAg
dmFyIGJpdHMgPSBwYXJzZUludCh0eXBlLnN1YnN0cigxKSk7Ci0gICAgICAgIGFzc2VydChiaXRz
ICUgOCA9PSAwKTsKLSAgICAgICAgc2l6ZSA9IGJpdHMvODsKLSAgICAgIH0KLSAgICB9Ci0gICAg
cmV0dXJuIHNpemU7Ci0gIH0sCi0gIGdldE5hdGl2ZUZpZWxkU2l6ZTogZnVuY3Rpb24gKHR5cGUp
IHsKLSAgICByZXR1cm4gTWF0aC5tYXgoUnVudGltZS5nZXROYXRpdmVUeXBlU2l6ZSh0eXBlKSwg
UnVudGltZS5RVUFOVFVNX1NJWkUpOwotICB9LAotICBkZWR1cDogZnVuY3Rpb24gZGVkdXAoaXRl
bXMsIGlkZW50KSB7Ci0gIHZhciBzZWVuID0ge307Ci0gIGlmIChpZGVudCkgewotICAgIHJldHVy
biBpdGVtcy5maWx0ZXIoZnVuY3Rpb24oaXRlbSkgewotICAgICAgaWYgKHNlZW5baXRlbVtpZGVu
dF1dKSByZXR1cm4gZmFsc2U7Ci0gICAgICBzZWVuW2l0ZW1baWRlbnRdXSA9IHRydWU7Ci0gICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICB9KTsKLSAgfSBlbHNlIHsKLSAgICByZXR1cm4gaXRlbXMuZmls
dGVyKGZ1bmN0aW9uKGl0ZW0pIHsKLSAgICAgIGlmIChzZWVuW2l0ZW1dKSByZXR1cm4gZmFsc2U7
Ci0gICAgICBzZWVuW2l0ZW1dID0gdHJ1ZTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0pOwot
ICB9Ci19LAotICBzZXQ6IGZ1bmN0aW9uIHNldCgpIHsKLSAgdmFyIGFyZ3MgPSB0eXBlb2YgYXJn
dW1lbnRzWzBdID09PSAnb2JqZWN0JyA/IGFyZ3VtZW50c1swXSA6IGFyZ3VtZW50czsKLSAgdmFy
IHJldCA9IHt9OwotICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHsKLSAg
ICByZXRbYXJnc1tpXV0gPSAwOwotICB9Ci0gIHJldHVybiByZXQ7Ci19LAotICBTVEFDS19BTElH
TjogOCwKLSAgZ2V0QWxpZ25TaXplOiBmdW5jdGlvbiAodHlwZSwgc2l6ZSwgdmFyYXJnKSB7Ci0g
ICAgLy8gd2UgYWxpZ24gaTY0cyBhbmQgZG91YmxlcyBvbiA2NC1iaXQgYm91bmRhcmllcywgdW5s
aWtlIHg4NgotICAgIGlmICh0eXBlID09ICdpNjQnIHx8IHR5cGUgPT0gJ2RvdWJsZScgfHwgdmFy
YXJnKSByZXR1cm4gODsKLSAgICBpZiAoIXR5cGUpIHJldHVybiBNYXRoLm1pbihzaXplLCA4KTsg
Ly8gYWxpZ24gc3RydWN0dXJlcyBpbnRlcm5hbGx5IHRvIDY0IGJpdHMKLSAgICByZXR1cm4gTWF0
aC5taW4oc2l6ZSB8fCAodHlwZSA/IFJ1bnRpbWUuZ2V0TmF0aXZlRmllbGRTaXplKHR5cGUpIDog
MCksIFJ1bnRpbWUuUVVBTlRVTV9TSVpFKTsKLSAgfSwKLSAgY2FsY3VsYXRlU3RydWN0QWxpZ25t
ZW50OiBmdW5jdGlvbiBjYWxjdWxhdGVTdHJ1Y3RBbGlnbm1lbnQodHlwZSkgewotICAgIHR5cGUu
ZmxhdFNpemUgPSAwOwotICAgIHR5cGUuYWxpZ25TaXplID0gMDsKLSAgICB2YXIgZGlmZnMgPSBb
XTsKLSAgICB2YXIgcHJldiA9IC0xOwotICAgIHZhciBpbmRleCA9IDA7Ci0gICAgdHlwZS5mbGF0
SW5kZXhlcyA9IHR5cGUuZmllbGRzLm1hcChmdW5jdGlvbihmaWVsZCkgewotICAgICAgaW5kZXgr
KzsKLSAgICAgIHZhciBzaXplLCBhbGlnblNpemU7Ci0gICAgICBpZiAoUnVudGltZS5pc051bWJl
clR5cGUoZmllbGQpIHx8IFJ1bnRpbWUuaXNQb2ludGVyVHlwZShmaWVsZCkpIHsKLSAgICAgICAg
c2l6ZSA9IFJ1bnRpbWUuZ2V0TmF0aXZlVHlwZVNpemUoZmllbGQpOyAvLyBwYWNrIGNoYXI7IGNo
YXI7IGluIHN0cnVjdHMsIGFsc28gY2hhcltYXXMuCi0gICAgICAgIGFsaWduU2l6ZSA9IFJ1bnRp
bWUuZ2V0QWxpZ25TaXplKGZpZWxkLCBzaXplKTsKLSAgICAgIH0gZWxzZSBpZiAoUnVudGltZS5p
c1N0cnVjdFR5cGUoZmllbGQpKSB7Ci0gICAgICAgIGlmIChmaWVsZFsxXSA9PT0gJzAnKSB7Ci0g
ICAgICAgICAgLy8gdGhpcyBpcyBbMCB4IHNvbWV0aGluZ10uIFdoZW4gaW5zaWRlIGFub3RoZXIg
c3RydWN0dXJlIGxpa2UgaGVyZSwgaXQgbXVzdCBiZSBhdCB0aGUgZW5kLAotICAgICAgICAgIC8v
IGFuZCBpdCBhZGRzIG5vIHNpemUKLSAgICAgICAgICAvLyBYWFggdGhpcyBoYXBwZW5zIGluIGph
dmEtbmJvZHkgZm9yIGV4YW1wbGUuLi4gYXNzZXJ0KGluZGV4ID09PSB0eXBlLmZpZWxkcy5sZW5n
dGgsICd6ZXJvLWxlbmd0aCBpbiB0aGUgbWlkZGxlIScpOwotICAgICAgICAgIHNpemUgPSAwOwot
ICAgICAgICAgIGFsaWduU2l6ZSA9IHR5cGUuYWxpZ25TaXplIHx8IFFVQU5UVU1fU0laRTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBzaXplID0gVHlwZXMudHlwZXNbZmllbGRdLmZsYXRT
aXplOwotICAgICAgICAgIGFsaWduU2l6ZSA9IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKG51bGwsIFR5
cGVzLnR5cGVzW2ZpZWxkXS5hbGlnblNpemUpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgaWYg
KGZpZWxkWzBdID09ICdiJykgewotICAgICAgICAvLyBiTiwgbGFyZ2UgbnVtYmVyIGZpZWxkLCBs
aWtlIGEgW04geCBpOF0KLSAgICAgICAgc2l6ZSA9IGZpZWxkLnN1YnN0cigxKXwwOwotICAgICAg
ICBhbGlnblNpemUgPSAxOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhyb3cgJ1VuY2xlYXIg
dHlwZSBpbiBzdHJ1Y3Q6ICcgKyBmaWVsZCArICcsIGluICcgKyB0eXBlLm5hbWVfICsgJyA6OiAn
ICsgZHVtcChUeXBlcy50eXBlc1t0eXBlLm5hbWVfXSk7Ci0gICAgICB9Ci0gICAgICBpZiAodHlw
ZS5wYWNrZWQpIGFsaWduU2l6ZSA9IDE7Ci0gICAgICB0eXBlLmFsaWduU2l6ZSA9IE1hdGgubWF4
KHR5cGUuYWxpZ25TaXplLCBhbGlnblNpemUpOwotICAgICAgdmFyIGN1cnIgPSBSdW50aW1lLmFs
aWduTWVtb3J5KHR5cGUuZmxhdFNpemUsIGFsaWduU2l6ZSk7IC8vIGlmIG5lY2Vzc2FyeSwgcGxh
Y2UgdGhpcyBvbiBhbGlnbmVkIG1lbW9yeQotICAgICAgdHlwZS5mbGF0U2l6ZSA9IGN1cnIgKyBz
aXplOwotICAgICAgaWYgKHByZXYgPj0gMCkgewotICAgICAgICBkaWZmcy5wdXNoKGN1cnItcHJl
dik7Ci0gICAgICB9Ci0gICAgICBwcmV2ID0gY3VycjsKLSAgICAgIHJldHVybiBjdXJyOwotICAg
IH0pOwotICAgIHR5cGUuZmxhdFNpemUgPSBSdW50aW1lLmFsaWduTWVtb3J5KHR5cGUuZmxhdFNp
emUsIHR5cGUuYWxpZ25TaXplKTsKLSAgICBpZiAoZGlmZnMubGVuZ3RoID09IDApIHsKLSAgICAg
IHR5cGUuZmxhdEZhY3RvciA9IHR5cGUuZmxhdFNpemU7Ci0gICAgfSBlbHNlIGlmIChSdW50aW1l
LmRlZHVwKGRpZmZzKS5sZW5ndGggPT0gMSkgewotICAgICAgdHlwZS5mbGF0RmFjdG9yID0gZGlm
ZnNbMF07Ci0gICAgfQotICAgIHR5cGUubmVlZHNGbGF0dGVuaW5nID0gKHR5cGUuZmxhdEZhY3Rv
ciAhPSAxKTsKLSAgICByZXR1cm4gdHlwZS5mbGF0SW5kZXhlczsKLSAgfSwKLSAgZ2VuZXJhdGVT
dHJ1Y3RJbmZvOiBmdW5jdGlvbiAoc3RydWN0LCB0eXBlTmFtZSwgb2Zmc2V0KSB7Ci0gICAgdmFy
IHR5cGUsIGFsaWdubWVudDsKLSAgICBpZiAodHlwZU5hbWUpIHsKLSAgICAgIG9mZnNldCA9IG9m
ZnNldCB8fCAwOwotICAgICAgdHlwZSA9ICh0eXBlb2YgVHlwZXMgPT09ICd1bmRlZmluZWQnID8g
UnVudGltZS50eXBlSW5mbyA6IFR5cGVzLnR5cGVzKVt0eXBlTmFtZV07Ci0gICAgICBpZiAoIXR5
cGUpIHJldHVybiBudWxsOwotICAgICAgaWYgKHR5cGUuZmllbGRzLmxlbmd0aCAhPSBzdHJ1Y3Qu
bGVuZ3RoKSB7Ci0gICAgICAgIHByaW50RXJyKCdOdW1iZXIgb2YgbmFtZWQgZmllbGRzIG11c3Qg
bWF0Y2ggdGhlIHR5cGUgZm9yICcgKyB0eXBlTmFtZSArICc6IHBvc3NpYmx5IGR1cGxpY2F0ZSBz
dHJ1Y3QgbmFtZXMuIENhbm5vdCByZXR1cm4gc3RydWN0SW5mbycpOwotICAgICAgICByZXR1cm4g
bnVsbDsKLSAgICAgIH0KLSAgICAgIGFsaWdubWVudCA9IHR5cGUuZmxhdEluZGV4ZXM7Ci0gICAg
fSBlbHNlIHsKLSAgICAgIHZhciB0eXBlID0geyBmaWVsZHM6IHN0cnVjdC5tYXAoZnVuY3Rpb24o
aXRlbSkgeyByZXR1cm4gaXRlbVswXSB9KSB9OwotICAgICAgYWxpZ25tZW50ID0gUnVudGltZS5j
YWxjdWxhdGVTdHJ1Y3RBbGlnbm1lbnQodHlwZSk7Ci0gICAgfQotICAgIHZhciByZXQgPSB7Ci0g
ICAgICBfX3NpemVfXzogdHlwZS5mbGF0U2l6ZQotICAgIH07Ci0gICAgaWYgKHR5cGVOYW1lKSB7
Ci0gICAgICBzdHJ1Y3QuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpKSB7Ci0gICAgICAgIGlmICh0
eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICByZXRbaXRlbV0gPSBhbGlnbm1l
bnRbaV0gKyBvZmZzZXQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgLy8gZW1iZWRkZWQg
c3RydWN0Ci0gICAgICAgICAgdmFyIGtleTsKLSAgICAgICAgICBmb3IgKHZhciBrIGluIGl0ZW0p
IGtleSA9IGs7Ci0gICAgICAgICAgcmV0W2tleV0gPSBSdW50aW1lLmdlbmVyYXRlU3RydWN0SW5m
byhpdGVtW2tleV0sIHR5cGUuZmllbGRzW2ldLCBhbGlnbm1lbnRbaV0pOwotICAgICAgICB9Ci0g
ICAgICB9KTsKLSAgICB9IGVsc2UgewotICAgICAgc3RydWN0LmZvckVhY2goZnVuY3Rpb24oaXRl
bSwgaSkgewotICAgICAgICByZXRbaXRlbVsxXV0gPSBhbGlnbm1lbnRbaV07Ci0gICAgICB9KTsK
LSAgICB9Ci0gICAgcmV0dXJuIHJldDsKLSAgfSwKLSAgZHluQ2FsbDogZnVuY3Rpb24gKHNpZywg
cHRyLCBhcmdzKSB7Ci0gICAgaWYgKGFyZ3MgJiYgYXJncy5sZW5ndGgpIHsKLSAgICAgIGlmICgh
YXJncy5zcGxpY2UpIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmdzKTsKLSAg
ICAgIGFyZ3Muc3BsaWNlKDAsIDAsIHB0cik7Ci0gICAgICByZXR1cm4gTW9kdWxlWydkeW5DYWxs
XycgKyBzaWddLmFwcGx5KG51bGwsIGFyZ3MpOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4g
TW9kdWxlWydkeW5DYWxsXycgKyBzaWddLmNhbGwobnVsbCwgcHRyKTsKLSAgICB9Ci0gIH0sCi0g
IGZ1bmN0aW9uUG9pbnRlcnM6IFtdLAotICBhZGRGdW5jdGlvbjogZnVuY3Rpb24gKGZ1bmMpIHsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IFJ1bnRpbWUuZnVuY3Rpb25Qb2ludGVycy5sZW5ndGg7
IGkrKykgewotICAgICAgaWYgKCFSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnNbaV0pIHsKLSAgICAg
ICAgUnVudGltZS5mdW5jdGlvblBvaW50ZXJzW2ldID0gZnVuYzsKLSAgICAgICAgcmV0dXJuIDIg
KyAyKmk7Ci0gICAgICB9Ci0gICAgfQotICAgIHRocm93ICdGaW5pc2hlZCB1cCBhbGwgcmVzZXJ2
ZWQgZnVuY3Rpb24gcG9pbnRlcnMuIFVzZSBhIGhpZ2hlciB2YWx1ZSBmb3IgUkVTRVJWRURfRlVO
Q1RJT05fUE9JTlRFUlMuJzsKLSAgfSwKLSAgcmVtb3ZlRnVuY3Rpb246IGZ1bmN0aW9uIChpbmRl
eCkgewotICAgIFJ1bnRpbWUuZnVuY3Rpb25Qb2ludGVyc1soaW5kZXgtMikvMl0gPSBudWxsOwot
ICB9LAotICB3YXJuT25jZTogZnVuY3Rpb24gKHRleHQpIHsKLSAgICBpZiAoIVJ1bnRpbWUud2Fy
bk9uY2Uuc2hvd24pIFJ1bnRpbWUud2Fybk9uY2Uuc2hvd24gPSB7fTsKLSAgICBpZiAoIVJ1bnRp
bWUud2Fybk9uY2Uuc2hvd25bdGV4dF0pIHsKLSAgICAgIFJ1bnRpbWUud2Fybk9uY2Uuc2hvd25b
dGV4dF0gPSAxOwotICAgICAgTW9kdWxlLnByaW50RXJyKHRleHQpOwotICAgIH0KLSAgfSwKLSAg
ZnVuY1dyYXBwZXJzOiB7fSwKLSAgZ2V0RnVuY1dyYXBwZXI6IGZ1bmN0aW9uIChmdW5jLCBzaWcp
IHsKLSAgICBhc3NlcnQoc2lnKTsKLSAgICBpZiAoIVJ1bnRpbWUuZnVuY1dyYXBwZXJzW2Z1bmNd
KSB7Ci0gICAgICBSdW50aW1lLmZ1bmNXcmFwcGVyc1tmdW5jXSA9IGZ1bmN0aW9uKCkgewotICAg
ICAgICByZXR1cm4gUnVudGltZS5keW5DYWxsKHNpZywgZnVuYywgYXJndW1lbnRzKTsKLSAgICAg
IH07Ci0gICAgfQotICAgIHJldHVybiBSdW50aW1lLmZ1bmNXcmFwcGVyc1tmdW5jXTsKLSAgfSwK
LSAgVVRGOFByb2Nlc3NvcjogZnVuY3Rpb24gKCkgewotICAgIHZhciBidWZmZXIgPSBbXTsKLSAg
ICB2YXIgbmVlZGVkID0gMDsKLSAgICB0aGlzLnByb2Nlc3NDQ2hhciA9IGZ1bmN0aW9uIChjb2Rl
KSB7Ci0gICAgICBjb2RlID0gY29kZSAmIDB4RkY7Ci0gICAgICBpZiAoYnVmZmVyLmxlbmd0aCA9
PSAwKSB7Ci0gICAgICAgIGlmICgoY29kZSAmIDB4ODApID09IDB4MDApIHsgICAgICAgIC8vIDB4
eHh4eHh4Ci0gICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgYnVmZmVyLnB1c2goY29kZSk7Ci0gICAgICAgIGlmICgoY29kZSAmIDB4
RTApID09IDB4QzApIHsgICAgICAgIC8vIDExMHh4eHh4Ci0gICAgICAgICAgbmVlZGVkID0gMTsK
LSAgICAgICAgfSBlbHNlIGlmICgoY29kZSAmIDB4RjApID09IDB4RTApIHsgLy8gMTExMHh4eHgK
LSAgICAgICAgICBuZWVkZWQgPSAyOwotICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAxMTExMHh4eAotICAgICAgICAgIG5lZWRlZCA9IDM7Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuICcnOwotICAgICAgfQotICAgICAgaWYgKG5lZWRlZCkgewotICAgICAg
ICBidWZmZXIucHVzaChjb2RlKTsKLSAgICAgICAgbmVlZGVkLS07Ci0gICAgICAgIGlmIChuZWVk
ZWQgPiAwKSByZXR1cm4gJyc7Ci0gICAgICB9Ci0gICAgICB2YXIgYzEgPSBidWZmZXJbMF07Ci0g
ICAgICB2YXIgYzIgPSBidWZmZXJbMV07Ci0gICAgICB2YXIgYzMgPSBidWZmZXJbMl07Ci0gICAg
ICB2YXIgYzQgPSBidWZmZXJbM107Ci0gICAgICB2YXIgcmV0OwotICAgICAgaWYgKGJ1ZmZlci5s
ZW5ndGggPT0gMikgewotICAgICAgICByZXQgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYzEgJiAw
eDFGKSA8PCA2KSAgfCAoYzIgJiAweDNGKSk7Ci0gICAgICB9IGVsc2UgaWYgKGJ1ZmZlci5sZW5n
dGggPT0gMykgewotICAgICAgICByZXQgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYzEgJiAweDBG
KSA8PCAxMikgfCAoKGMyICYgMHgzRikgPDwgNikgIHwgKGMzICYgMHgzRikpOwotICAgICAgfSBl
bHNlIHsKLSAgICAgICAgLy8gaHR0cDovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvamF2YXNjcmlw
dC1lbmNvZGluZyNzdXJyb2dhdGUtZm9ybXVsYWUKLSAgICAgICAgdmFyIGNvZGVQb2ludCA9ICgo
YzEgJiAweDA3KSA8PCAxOCkgfCAoKGMyICYgMHgzRikgPDwgMTIpIHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICgoYzMgJiAweDNGKSA8PCA2KSAgfCAoYzQgJiAweDNGKTsKLSAgICAgICAgcmV0
ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgKLSAgICAgICAgICBNYXRoLmZsb29yKChjb2RlUG9pbnQg
LSAweDEwMDAwKSAvIDB4NDAwKSArIDB4RDgwMCwKLSAgICAgICAgICAoY29kZVBvaW50IC0gMHgx
MDAwMCkgJSAweDQwMCArIDB4REMwMCk7Ci0gICAgICB9Ci0gICAgICBidWZmZXIubGVuZ3RoID0g
MDsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotICAgIHRoaXMucHJvY2Vzc0pTU3RyaW5nID0g
ZnVuY3Rpb24oc3RyaW5nKSB7Ci0gICAgICBzdHJpbmcgPSB1bmVzY2FwZShlbmNvZGVVUklDb21w
b25lbnQoc3RyaW5nKSk7Ci0gICAgICB2YXIgcmV0ID0gW107Ci0gICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykgewotICAgICAgICByZXQucHVzaChzdHJpbmcuY2hh
ckNvZGVBdChpKSk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgfSwKLSAg
c3RhY2tBbGxvYzogZnVuY3Rpb24gKHNpemUpIHsgdmFyIHJldCA9IFNUQUNLVE9QO1NUQUNLVE9Q
ID0gKFNUQUNLVE9QICsgc2l6ZSl8MDtTVEFDS1RPUCA9ICgoKChTVEFDS1RPUCkrNyk+PjMpPDwz
KTsgcmV0dXJuIHJldDsgfSwKLSAgc3RhdGljQWxsb2M6IGZ1bmN0aW9uIChzaXplKSB7IHZhciBy
ZXQgPSBTVEFUSUNUT1A7U1RBVElDVE9QID0gKFNUQVRJQ1RPUCArIHNpemUpfDA7U1RBVElDVE9Q
ID0gKCgoKFNUQVRJQ1RPUCkrNyk+PjMpPDwzKTsgcmV0dXJuIHJldDsgfSwKLSAgZHluYW1pY0Fs
bG9jOiBmdW5jdGlvbiAoc2l6ZSkgeyB2YXIgcmV0ID0gRFlOQU1JQ1RPUDtEWU5BTUlDVE9QID0g
KERZTkFNSUNUT1AgKyBzaXplKXwwO0RZTkFNSUNUT1AgPSAoKCgoRFlOQU1JQ1RPUCkrNyk+PjMp
PDwzKTsgaWYgKERZTkFNSUNUT1AgPj0gVE9UQUxfTUVNT1JZKSBlbmxhcmdlTWVtb3J5KCk7OyBy
ZXR1cm4gcmV0OyB9LAotICBhbGlnbk1lbW9yeTogZnVuY3Rpb24gKHNpemUscXVhbnR1bSkgeyB2
YXIgcmV0ID0gc2l6ZSA9IE1hdGguY2VpbCgoc2l6ZSkvKHF1YW50dW0gPyBxdWFudHVtIDogOCkp
KihxdWFudHVtID8gcXVhbnR1bSA6IDgpOyByZXR1cm4gcmV0OyB9LAotICBtYWtlQmlnSW50OiBm
dW5jdGlvbiAobG93LGhpZ2gsdW5zaWduZWQpIHsgdmFyIHJldCA9ICh1bnNpZ25lZCA/ICgoKygo
KGxvdyk+Pj4oMCkpKSkrKCgrKCgoaGlnaCk+Pj4oMCkpKSkqKCsoNDI5NDk2NzI5NikpKSkgOiAo
KCsoKChsb3cpPj4+KDApKSkpKygoKygoKGhpZ2gpfCgwKSkpKSooKyg0Mjk0OTY3Mjk2KSkpKSk7
IHJldHVybiByZXQ7IH0sCi0gIEdMT0JBTF9CQVNFOiA4LAotICBRVUFOVFVNX1NJWkU6IDQsCi0g
IF9fZHVtbXlfXzogMAotfQotLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0vLyBSdW50aW1lIGVzc2VudGlhbHMKLS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotdmFyIF9fVEhSRVdfXyA9IDA7IC8vIFVzZWQgaW4gY2hlY2tpbmcgZm9y
IHRocm93biBleGNlcHRpb25zLgotdmFyIEFCT1JUID0gZmFsc2U7IC8vIHdoZXRoZXIgd2UgYXJl
IHF1aXR0aW5nIHRoZSBhcHBsaWNhdGlvbi4gbm8gY29kZSBzaG91bGQgcnVuIGFmdGVyIHRoaXMu
IHNldCBpbiBleGl0KCkgYW5kIGFib3J0KCkKLXZhciBFWElUU1RBVFVTID0gMDsKLXZhciB1bmRl
ZiA9IDA7Ci0vLyB0ZW1wSW50IGlzIHVzZWQgZm9yIDMyLWJpdCBzaWduZWQgdmFsdWVzIG9yIHNt
YWxsZXIuIHRlbXBCaWdJbnQgaXMgdXNlZAotLy8gZm9yIDMyLWJpdCB1bnNpZ25lZCB2YWx1ZXMg
b3IgbW9yZSB0aGFuIDMyIGJpdHMuIFRPRE86IGF1ZGl0IGFsbCB1c2VzIG9mIHRlbXBJbnQKLXZh
ciB0ZW1wVmFsdWUsIHRlbXBJbnQsIHRlbXBCaWdJbnQsIHRlbXBJbnQyLCB0ZW1wQmlnSW50Miwg
dGVtcFBhaXIsIHRlbXBCaWdJbnRJLCB0ZW1wQmlnSW50UiwgdGVtcEJpZ0ludFMsIHRlbXBCaWdJ
bnRQLCB0ZW1wQmlnSW50RDsKLXZhciB0ZW1wSTY0LCB0ZW1wSTY0YjsKLXZhciB0ZW1wUmV0MCwg
dGVtcFJldDEsIHRlbXBSZXQyLCB0ZW1wUmV0MywgdGVtcFJldDQsIHRlbXBSZXQ1LCB0ZW1wUmV0
NiwgdGVtcFJldDcsIHRlbXBSZXQ4LCB0ZW1wUmV0OTsKLWZ1bmN0aW9uIGFzc2VydChjb25kaXRp
b24sIHRleHQpIHsKLSAgaWYgKCFjb25kaXRpb24pIHsKLSAgICBhYm9ydCgnQXNzZXJ0aW9uIGZh
aWxlZDogJyArIHRleHQpOwotICB9Ci19Ci12YXIgZ2xvYmFsU2NvcGUgPSB0aGlzOwotLy8gQyBj
YWxsaW5nIGludGVyZmFjZS4gQSBjb252ZW5pZW50IHdheSB0byBjYWxsIEMgZnVuY3Rpb25zIChp
biBDIGZpbGVzLCBvcgotLy8gZGVmaW5lZCB3aXRoIGV4dGVybiAiQyIpLgotLy8KLS8vIE5vdGU6
IExMVk0gb3B0aW1pemF0aW9ucyBjYW4gaW5saW5lIGFuZCByZW1vdmUgZnVuY3Rpb25zLCBhZnRl
ciB3aGljaCB5b3Ugd2lsbCBub3QgYmUKLS8vICAgICAgIGFibGUgdG8gY2FsbCB0aGVtLiBDbG9z
dXJlIGNhbiBhbHNvIGRvIHNvLiBUbyBhdm9pZCB0aGF0LCBhZGQgeW91ciBmdW5jdGlvbiB0bwot
Ly8gICAgICAgdGhlIGV4cG9ydHMgdXNpbmcgc29tZXRoaW5nIGxpa2UKLS8vCi0vLyAgICAgICAg
IC1zIEVYUE9SVEVEX0ZVTkNUSU9OUz0nWyJfbWFpbiIsICJfbXlmdW5jIl0nCi0vLwotLy8gQHBh
cmFtIGlkZW50ICAgICAgVGhlIG5hbWUgb2YgdGhlIEMgZnVuY3Rpb24gKG5vdGUgdGhhdCBDKysg
ZnVuY3Rpb25zIHdpbGwgYmUgbmFtZS1tYW5nbGVkIC0gdXNlIGV4dGVybiAiQyIpCi0vLyBAcGFy
YW0gcmV0dXJuVHlwZSBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGZ1bmN0aW9uLCBvbmUgb2YgdGhl
IEpTIHR5cGVzICdudW1iZXInLCAnc3RyaW5nJyBvciAnYXJyYXknICh1c2UgJ251bWJlcicgZm9y
IGFueSBDIHBvaW50ZXIsIGFuZAotLy8gICAgICAgICAgICAgICAgICAgJ2FycmF5JyBmb3IgSmF2
YVNjcmlwdCBhcnJheXMgYW5kIHR5cGVkIGFycmF5czsgbm90ZSB0aGF0IGFycmF5cyBhcmUgOC1i
aXQpLgotLy8gQHBhcmFtIGFyZ1R5cGVzICAgQW4gYXJyYXkgb2YgdGhlIHR5cGVzIG9mIGFyZ3Vt
ZW50cyBmb3IgdGhlIGZ1bmN0aW9uIChpZiB0aGVyZSBhcmUgbm8gYXJndW1lbnRzLCB0aGlzIGNh
biBiZSBvbW1pdHRlZCkuIFR5cGVzIGFyZSBhcyBpbiByZXR1cm5UeXBlLAotLy8gICAgICAgICAg
ICAgICAgICAgZXhjZXB0IHRoYXQgJ2FycmF5JyBpcyBub3QgcG9zc2libGUgKHRoZXJlIGlzIG5v
IHdheSBmb3IgdXMgdG8ga25vdyB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSkKLS8vIEBwYXJhbSBh
cmdzICAgICAgIEFuIGFycmF5IG9mIHRoZSBhcmd1bWVudHMgdG8gdGhlIGZ1bmN0aW9uLCBhcyBu
YXRpdmUgSlMgdmFsdWVzIChhcyBpbiByZXR1cm5UeXBlKQotLy8gICAgICAgICAgICAgICAgICAg
Tm90ZSB0aGF0IHN0cmluZyBhcmd1bWVudHMgd2lsbCBiZSBzdG9yZWQgb24gdGhlIHN0YWNrICh0
aGUgSlMgc3RyaW5nIHdpbGwgYmVjb21lIGEgQyBzdHJpbmcgb24gdGhlIHN0YWNrKS4KLS8vIEBy
ZXR1cm4gICAgICAgICAgIFRoZSByZXR1cm4gdmFsdWUsIGFzIGEgbmF0aXZlIEpTIHZhbHVlIChh
cyBpbiByZXR1cm5UeXBlKQotZnVuY3Rpb24gY2NhbGwoaWRlbnQsIHJldHVyblR5cGUsIGFyZ1R5
cGVzLCBhcmdzKSB7Ci0gIHJldHVybiBjY2FsbEZ1bmMoZ2V0Q0Z1bmMoaWRlbnQpLCByZXR1cm5U
eXBlLCBhcmdUeXBlcywgYXJncyk7Ci19Ci1Nb2R1bGVbImNjYWxsIl0gPSBjY2FsbDsKLS8vIFJl
dHVybnMgdGhlIEMgZnVuY3Rpb24gd2l0aCBhIHNwZWNpZmllZCBpZGVudGlmaWVyIChmb3IgQysr
LCB5b3UgbmVlZCB0byBkbyBtYW51YWwgbmFtZSBtYW5nbGluZykKLWZ1bmN0aW9uIGdldENGdW5j
KGlkZW50KSB7Ci0gIHRyeSB7Ci0gICAgdmFyIGZ1bmMgPSBNb2R1bGVbJ18nICsgaWRlbnRdOyAv
LyBjbG9zdXJlIGV4cG9ydGVkIGZ1bmN0aW9uCi0gICAgaWYgKCFmdW5jKSBmdW5jID0gZXZhbCgn
XycgKyBpZGVudCk7IC8vIGV4cGxpY2l0IGxvb2t1cAotICB9IGNhdGNoKGUpIHsKLSAgfQotICBh
c3NlcnQoZnVuYywgJ0Nhbm5vdCBjYWxsIHVua25vd24gZnVuY3Rpb24gJyArIGlkZW50ICsgJyAo
cGVyaGFwcyBMTFZNIG9wdGltaXphdGlvbnMgb3IgY2xvc3VyZSByZW1vdmVkIGl0PyknKTsKLSAg
cmV0dXJuIGZ1bmM7Ci19Ci0vLyBJbnRlcm5hbCBmdW5jdGlvbiB0aGF0IGRvZXMgYSBDIGNhbGwg
dXNpbmcgYSBmdW5jdGlvbiwgbm90IGFuIGlkZW50aWZpZXIKLWZ1bmN0aW9uIGNjYWxsRnVuYyhm
dW5jLCByZXR1cm5UeXBlLCBhcmdUeXBlcywgYXJncykgewotICB2YXIgc3RhY2sgPSAwOwotICBm
dW5jdGlvbiB0b0ModmFsdWUsIHR5cGUpIHsKLSAgICBpZiAodHlwZSA9PSAnc3RyaW5nJykgewot
ICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUg
PT09IDApIHJldHVybiAwOyAvLyBudWxsIHN0cmluZwotICAgICAgaWYgKCFzdGFjaykgc3RhY2sg
PSBSdW50aW1lLnN0YWNrU2F2ZSgpOwotICAgICAgdmFyIHJldCA9IFJ1bnRpbWUuc3RhY2tBbGxv
Yyh2YWx1ZS5sZW5ndGgrMSk7Ci0gICAgICB3cml0ZVN0cmluZ1RvTWVtb3J5KHZhbHVlLCByZXQp
OwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2FycmF5Jykgewot
ICAgICAgaWYgKCFzdGFjaykgc3RhY2sgPSBSdW50aW1lLnN0YWNrU2F2ZSgpOwotICAgICAgdmFy
IHJldCA9IFJ1bnRpbWUuc3RhY2tBbGxvYyh2YWx1ZS5sZW5ndGgpOwotICAgICAgd3JpdGVBcnJh
eVRvTWVtb3J5KHZhbHVlLCByZXQpOwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gICAgcmV0
dXJuIHZhbHVlOwotICB9Ci0gIGZ1bmN0aW9uIGZyb21DKHZhbHVlLCB0eXBlKSB7Ci0gICAgaWYg
KHR5cGUgPT0gJ3N0cmluZycpIHsKLSAgICAgIHJldHVybiBQb2ludGVyX3N0cmluZ2lmeSh2YWx1
ZSk7Ci0gICAgfQotICAgIGFzc2VydCh0eXBlICE9ICdhcnJheScpOwotICAgIHJldHVybiB2YWx1
ZTsKLSAgfQotICB2YXIgaSA9IDA7Ci0gIHZhciBjQXJncyA9IGFyZ3MgPyBhcmdzLm1hcChmdW5j
dGlvbihhcmcpIHsKLSAgICByZXR1cm4gdG9DKGFyZywgYXJnVHlwZXNbaSsrXSk7Ci0gIH0pIDog
W107Ci0gIHZhciByZXQgPSBmcm9tQyhmdW5jLmFwcGx5KG51bGwsIGNBcmdzKSwgcmV0dXJuVHlw
ZSk7Ci0gIGlmIChzdGFjaykgUnVudGltZS5zdGFja1Jlc3RvcmUoc3RhY2spOwotICByZXR1cm4g
cmV0OwotfQotLy8gUmV0dXJucyBhIG5hdGl2ZSBKUyB3cmFwcGVyIGZvciBhIEMgZnVuY3Rpb24u
IFRoaXMgaXMgc2ltaWxhciB0byBjY2FsbCwgYnV0Ci0vLyByZXR1cm5zIGEgZnVuY3Rpb24geW91
IGNhbiBjYWxsIHJlcGVhdGVkbHkgaW4gYSBub3JtYWwgd2F5LiBGb3IgZXhhbXBsZToKLS8vCi0v
LyAgIHZhciBteV9mdW5jdGlvbiA9IGN3cmFwKCdteV9jX2Z1bmN0aW9uJywgJ251bWJlcicsIFsn
bnVtYmVyJywgJ251bWJlciddKTsKLS8vICAgYWxlcnQobXlfZnVuY3Rpb24oNSwgMjIpKTsKLS8v
ICAgYWxlcnQobXlfZnVuY3Rpb24oOTksIDEyKSk7Ci0vLwotZnVuY3Rpb24gY3dyYXAoaWRlbnQs
IHJldHVyblR5cGUsIGFyZ1R5cGVzKSB7Ci0gIHZhciBmdW5jID0gZ2V0Q0Z1bmMoaWRlbnQpOwot
ICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGNjYWxsRnVuYyhmdW5jLCByZXR1cm5U
eXBlLCBhcmdUeXBlcywgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7Ci0g
IH0KLX0KLU1vZHVsZVsiY3dyYXAiXSA9IGN3cmFwOwotLy8gU2V0cyBhIHZhbHVlIGluIG1lbW9y
eSBpbiBhIGR5bmFtaWMgd2F5IGF0IHJ1bi10aW1lLiBVc2VzIHRoZQotLy8gdHlwZSBkYXRhLiBU
aGlzIGlzIHRoZSBzYW1lIGFzIG1ha2VTZXRWYWx1ZSwgZXhjZXB0IHRoYXQKLS8vIG1ha2VTZXRW
YWx1ZSBpcyBkb25lIGF0IGNvbXBpbGUtdGltZSBhbmQgZ2VuZXJhdGVzIHRoZSBuZWVkZWQKLS8v
IGNvZGUgdGhlbiwgd2hlcmVhcyB0aGlzIGZ1bmN0aW9uIHBpY2tzIHRoZSByaWdodCBjb2RlIGF0
Ci0vLyBydW4tdGltZS4KLS8vIE5vdGUgdGhhdCBzZXRWYWx1ZSBhbmQgZ2V0VmFsdWUgb25seSBk
byAqYWxpZ25lZCogd3JpdGVzIGFuZCByZWFkcyEKLS8vIE5vdGUgdGhhdCBjY2FsbCB1c2VzIEpT
IHR5cGVzIGFzIGZvciBkZWZpbmluZyB0eXBlcywgd2hpbGUgc2V0VmFsdWUgYW5kCi0vLyBnZXRW
YWx1ZSBuZWVkIExMVk0gdHlwZXMgKCdpOCcsICdpMzInKSAtIHRoaXMgaXMgYSBsb3dlci1sZXZl
bCBvcGVyYXRpb24KLWZ1bmN0aW9uIHNldFZhbHVlKHB0ciwgdmFsdWUsIHR5cGUsIG5vU2FmZSkg
ewotICB0eXBlID0gdHlwZSB8fCAnaTgnOwotICBpZiAodHlwZS5jaGFyQXQodHlwZS5sZW5ndGgt
MSkgPT09ICcqJykgdHlwZSA9ICdpMzInOyAvLyBwb2ludGVycyBhcmUgMzItYml0Ci0gICAgc3dp
dGNoKHR5cGUpIHsKLSAgICAgIGNhc2UgJ2kxJzogSEVBUDhbKHB0cildPXZhbHVlOyBicmVhazsK
LSAgICAgIGNhc2UgJ2k4JzogSEVBUDhbKHB0cildPXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2Ug
J2kxNic6IEhFQVAxNlsoKHB0cik+PjEpXT12YWx1ZTsgYnJlYWs7Ci0gICAgICBjYXNlICdpMzIn
OiBIRUFQMzJbKChwdHIpPj4yKV09dmFsdWU7IGJyZWFrOwotICAgICAgY2FzZSAnaTY0JzogKHRl
bXBJNjQgPSBbdmFsdWU+Pj4wLCh0ZW1wRG91YmxlPXZhbHVlLCgrKE1hdGguYWJzKHRlbXBEb3Vi
bGUpKSkgPj0gKCsoMSkpID8gKHRlbXBEb3VibGUgPiAoKygwKSkgPyAoKE1hdGgubWluKCgrKE1h
dGguZmxvb3IoKHRlbXBEb3VibGUpLygrKDQyOTQ5NjcyOTYpKSkpKSwgKCsoNDI5NDk2NzI5NSkp
KSl8MCk+Pj4wIDogKH5+KCgrKE1hdGguY2VpbCgodGVtcERvdWJsZSAtICsoKCh+fih0ZW1wRG91
YmxlKSkpPj4+MCkpLygrKDQyOTQ5NjcyOTYpKSkpKSkpPj4+MCkgOiAwKV0sSEVBUDMyWygocHRy
KT4+MildPXRlbXBJNjRbMF0sSEVBUDMyWygoKHB0cikrKDQpKT4+MildPXRlbXBJNjRbMV0pOyBi
cmVhazsKLSAgICAgIGNhc2UgJ2Zsb2F0JzogSEVBUEYzMlsoKHB0cik+PjIpXT12YWx1ZTsgYnJl
YWs7Ci0gICAgICBjYXNlICdkb3VibGUnOiBIRUFQRjY0WygocHRyKT4+MyldPXZhbHVlOyBicmVh
azsKLSAgICAgIGRlZmF1bHQ6IGFib3J0KCdpbnZhbGlkIHR5cGUgZm9yIHNldFZhbHVlOiAnICsg
dHlwZSk7Ci0gICAgfQotfQotTW9kdWxlWydzZXRWYWx1ZSddID0gc2V0VmFsdWU7Ci0vLyBQYXJh
bGxlbCB0byBzZXRWYWx1ZS4KLWZ1bmN0aW9uIGdldFZhbHVlKHB0ciwgdHlwZSwgbm9TYWZlKSB7
Ci0gIHR5cGUgPSB0eXBlIHx8ICdpOCc7Ci0gIGlmICh0eXBlLmNoYXJBdCh0eXBlLmxlbmd0aC0x
KSA9PT0gJyonKSB0eXBlID0gJ2kzMic7IC8vIHBvaW50ZXJzIGFyZSAzMi1iaXQKLSAgICBzd2l0
Y2godHlwZSkgewotICAgICAgY2FzZSAnaTEnOiByZXR1cm4gSEVBUDhbKHB0cildOwotICAgICAg
Y2FzZSAnaTgnOiByZXR1cm4gSEVBUDhbKHB0cildOwotICAgICAgY2FzZSAnaTE2JzogcmV0dXJu
IEhFQVAxNlsoKHB0cik+PjEpXTsKLSAgICAgIGNhc2UgJ2kzMic6IHJldHVybiBIRUFQMzJbKChw
dHIpPj4yKV07Ci0gICAgICBjYXNlICdpNjQnOiByZXR1cm4gSEVBUDMyWygocHRyKT4+MildOwot
ICAgICAgY2FzZSAnZmxvYXQnOiByZXR1cm4gSEVBUEYzMlsoKHB0cik+PjIpXTsKLSAgICAgIGNh
c2UgJ2RvdWJsZSc6IHJldHVybiBIRUFQRjY0WygocHRyKT4+MyldOwotICAgICAgZGVmYXVsdDog
YWJvcnQoJ2ludmFsaWQgdHlwZSBmb3Igc2V0VmFsdWU6ICcgKyB0eXBlKTsKLSAgICB9Ci0gIHJl
dHVybiBudWxsOwotfQotTW9kdWxlWydnZXRWYWx1ZSddID0gZ2V0VmFsdWU7Ci12YXIgQUxMT0Nf
Tk9STUFMID0gMDsgLy8gVHJpZXMgdG8gdXNlIF9tYWxsb2MoKQotdmFyIEFMTE9DX1NUQUNLID0g
MTsgLy8gTGl2ZXMgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY3VycmVudCBmdW5jdGlvbiBjYWxs
Ci12YXIgQUxMT0NfU1RBVElDID0gMjsgLy8gQ2Fubm90IGJlIGZyZWVkCi12YXIgQUxMT0NfRFlO
QU1JQyA9IDM7IC8vIENhbm5vdCBiZSBmcmVlZCBleGNlcHQgdGhyb3VnaCBzYnJrCi12YXIgQUxM
T0NfTk9ORSA9IDQ7IC8vIERvIG5vdCBhbGxvY2F0ZQotTW9kdWxlWydBTExPQ19OT1JNQUwnXSA9
IEFMTE9DX05PUk1BTDsKLU1vZHVsZVsnQUxMT0NfU1RBQ0snXSA9IEFMTE9DX1NUQUNLOwotTW9k
dWxlWydBTExPQ19TVEFUSUMnXSA9IEFMTE9DX1NUQVRJQzsKLU1vZHVsZVsnQUxMT0NfRFlOQU1J
QyddID0gQUxMT0NfRFlOQU1JQzsKLU1vZHVsZVsnQUxMT0NfTk9ORSddID0gQUxMT0NfTk9ORTsK
LS8vIGFsbG9jYXRlKCk6IFRoaXMgaXMgZm9yIGludGVybmFsIHVzZS4gWW91IGNhbiB1c2UgaXQg
eW91cnNlbGYgYXMgd2VsbCwgYnV0IHRoZSBpbnRlcmZhY2UKLS8vICAgICAgICAgICAgIGlzIGEg
bGl0dGxlIHRyaWNreSAoc2VlIGRvY3MgcmlnaHQgYmVsb3cpLiBUaGUgcmVhc29uIGlzIHRoYXQg
aXQgaXMgb3B0aW1pemVkCi0vLyAgICAgICAgICAgICBmb3IgbXVsdGlwbGUgc3ludGF4ZXMgdG8g
c2F2ZSBzcGFjZSBpbiBnZW5lcmF0ZWQgY29kZS4gU28geW91IHNob3VsZAotLy8gICAgICAgICAg
ICAgbm9ybWFsbHkgbm90IHVzZSBhbGxvY2F0ZSgpLCBhbmQgaW5zdGVhZCBhbGxvY2F0ZSBtZW1v
cnkgdXNpbmcgX21hbGxvYygpLAotLy8gICAgICAgICAgICAgaW5pdGlhbGl6ZSBpdCB3aXRoIHNl
dFZhbHVlKCksIGFuZCBzbyBmb3J0aC4KLS8vIEBzbGFiOiBBbiBhcnJheSBvZiBkYXRhLCBvciBh
IG51bWJlci4gSWYgYSBudW1iZXIsIHRoZW4gdGhlIHNpemUgb2YgdGhlIGJsb2NrIHRvIGFsbG9j
YXRlLAotLy8gICAgICAgIGluICpieXRlcyogKG5vdGUgdGhhdCB0aGlzIGlzIHNvbWV0aW1lcyBj
b25mdXNpbmc6IHRoZSBuZXh0IHBhcmFtZXRlciBkb2VzIG5vdAotLy8gICAgICAgIGFmZmVjdCB0
aGlzISkKLS8vIEB0eXBlczogRWl0aGVyIGFuIGFycmF5IG9mIHR5cGVzLCBvbmUgZm9yIGVhY2gg
Ynl0ZSAob3IgMCBpZiBubyB0eXBlIGF0IHRoYXQgcG9zaXRpb24pLAotLy8gICAgICAgICBvciBh
IHNpbmdsZSB0eXBlIHdoaWNoIGlzIHVzZWQgZm9yIHRoZSBlbnRpcmUgYmxvY2suIFRoaXMgb25s
eSBtYXR0ZXJzIGlmIHRoZXJlCi0vLyAgICAgICAgIGlzIGluaXRpYWwgZGF0YSAtIGlmIEBzbGFi
IGlzIGEgbnVtYmVyLCB0aGVuIHRoaXMgZG9lcyBub3QgbWF0dGVyIGF0IGFsbCBhbmQgaXMKLS8v
ICAgICAgICAgaWdub3JlZC4KLS8vIEBhbGxvY2F0b3I6IEhvdyB0byBhbGxvY2F0ZSBtZW1vcnks
IHNlZSBBTExPQ18qCi1mdW5jdGlvbiBhbGxvY2F0ZShzbGFiLCB0eXBlcywgYWxsb2NhdG9yLCBw
dHIpIHsKLSAgdmFyIHplcm9pbml0LCBzaXplOwotICBpZiAodHlwZW9mIHNsYWIgPT09ICdudW1i
ZXInKSB7Ci0gICAgemVyb2luaXQgPSB0cnVlOwotICAgIHNpemUgPSBzbGFiOwotICB9IGVsc2Ug
ewotICAgIHplcm9pbml0ID0gZmFsc2U7Ci0gICAgc2l6ZSA9IHNsYWIubGVuZ3RoOwotICB9Ci0g
IHZhciBzaW5nbGVUeXBlID0gdHlwZW9mIHR5cGVzID09PSAnc3RyaW5nJyA/IHR5cGVzIDogbnVs
bDsKLSAgdmFyIHJldDsKLSAgaWYgKGFsbG9jYXRvciA9PSBBTExPQ19OT05FKSB7Ci0gICAgcmV0
ID0gcHRyOwotICB9IGVsc2UgewotICAgIHJldCA9IFtfbWFsbG9jLCBSdW50aW1lLnN0YWNrQWxs
b2MsIFJ1bnRpbWUuc3RhdGljQWxsb2MsIFJ1bnRpbWUuZHluYW1pY0FsbG9jXVthbGxvY2F0b3Ig
PT09IHVuZGVmaW5lZCA/IEFMTE9DX1NUQVRJQyA6IGFsbG9jYXRvcl0oTWF0aC5tYXgoc2l6ZSwg
c2luZ2xlVHlwZSA/IDEgOiB0eXBlcy5sZW5ndGgpKTsKLSAgfQotICBpZiAoemVyb2luaXQpIHsK
LSAgICB2YXIgcHRyID0gcmV0LCBzdG9wOwotICAgIGFzc2VydCgocmV0ICYgMykgPT0gMCk7Ci0g
ICAgc3RvcCA9IHJldCArIChzaXplICYgfjMpOwotICAgIGZvciAoOyBwdHIgPCBzdG9wOyBwdHIg
Kz0gNCkgewotICAgICAgSEVBUDMyWygocHRyKT4+MildPTA7Ci0gICAgfQotICAgIHN0b3AgPSBy
ZXQgKyBzaXplOwotICAgIHdoaWxlIChwdHIgPCBzdG9wKSB7Ci0gICAgICBIRUFQOFsoKHB0cisr
KXwwKV09MDsKLSAgICB9Ci0gICAgcmV0dXJuIHJldDsKLSAgfQotICBpZiAoc2luZ2xlVHlwZSA9
PT0gJ2k4JykgewotICAgIGlmIChzbGFiLnN1YmFycmF5IHx8IHNsYWIuc2xpY2UpIHsKLSAgICAg
IEhFQVBVOC5zZXQoc2xhYiwgcmV0KTsKLSAgICB9IGVsc2UgewotICAgICAgSEVBUFU4LnNldChu
ZXcgVWludDhBcnJheShzbGFiKSwgcmV0KTsKLSAgICB9Ci0gICAgcmV0dXJuIHJldDsKLSAgfQot
ICB2YXIgaSA9IDAsIHR5cGUsIHR5cGVTaXplLCBwcmV2aW91c1R5cGU7Ci0gIHdoaWxlIChpIDwg
c2l6ZSkgewotICAgIHZhciBjdXJyID0gc2xhYltpXTsKLSAgICBpZiAodHlwZW9mIGN1cnIgPT09
ICdmdW5jdGlvbicpIHsKLSAgICAgIGN1cnIgPSBSdW50aW1lLmdldEZ1bmN0aW9uSW5kZXgoY3Vy
cik7Ci0gICAgfQotICAgIHR5cGUgPSBzaW5nbGVUeXBlIHx8IHR5cGVzW2ldOwotICAgIGlmICh0
eXBlID09PSAwKSB7Ci0gICAgICBpKys7Ci0gICAgICBjb250aW51ZTsKLSAgICB9Ci0gICAgaWYg
KHR5cGUgPT0gJ2k2NCcpIHR5cGUgPSAnaTMyJzsgLy8gc3BlY2lhbCBjYXNlOiB3ZSBoYXZlIG9u
ZSBpMzIgaGVyZSwgYW5kIG9uZSBpMzIgbGF0ZXIKLSAgICBzZXRWYWx1ZShyZXQraSwgY3Vyciwg
dHlwZSk7Ci0gICAgLy8gbm8gbmVlZCB0byBsb29rIHVwIHNpemUgdW5sZXNzIHR5cGUgY2hhbmdl
cywgc28gY2FjaGUgaXQKLSAgICBpZiAocHJldmlvdXNUeXBlICE9PSB0eXBlKSB7Ci0gICAgICB0
eXBlU2l6ZSA9IFJ1bnRpbWUuZ2V0TmF0aXZlVHlwZVNpemUodHlwZSk7Ci0gICAgICBwcmV2aW91
c1R5cGUgPSB0eXBlOwotICAgIH0KLSAgICBpICs9IHR5cGVTaXplOwotICB9Ci0gIHJldHVybiBy
ZXQ7Ci19Ci1Nb2R1bGVbJ2FsbG9jYXRlJ10gPSBhbGxvY2F0ZTsKLWZ1bmN0aW9uIFBvaW50ZXJf
c3RyaW5naWZ5KHB0ciwgLyogb3B0aW9uYWwgKi8gbGVuZ3RoKSB7Ci0gIC8vIFRPRE86IHVzZSBU
ZXh0RGVjb2RlcgotICAvLyBGaW5kIHRoZSBsZW5ndGgsIGFuZCBjaGVjayBmb3IgVVRGIHdoaWxl
IGRvaW5nIHNvCi0gIHZhciBoYXNVdGYgPSBmYWxzZTsKLSAgdmFyIHQ7Ci0gIHZhciBpID0gMDsK
LSAgd2hpbGUgKDEpIHsKLSAgICB0ID0gSEVBUFU4WygoKHB0cikrKGkpKXwwKV07Ci0gICAgaWYg
KHQgPj0gMTI4KSBoYXNVdGYgPSB0cnVlOwotICAgIGVsc2UgaWYgKHQgPT0gMCAmJiAhbGVuZ3Ro
KSBicmVhazsKLSAgICBpKys7Ci0gICAgaWYgKGxlbmd0aCAmJiBpID09IGxlbmd0aCkgYnJlYWs7
Ci0gIH0KLSAgaWYgKCFsZW5ndGgpIGxlbmd0aCA9IGk7Ci0gIHZhciByZXQgPSAnJzsKLSAgaWYg
KCFoYXNVdGYpIHsKLSAgICB2YXIgTUFYX0NIVU5LID0gMTAyNDsgLy8gc3BsaXQgdXAgaW50byBj
aHVua3MsIGJlY2F1c2UgLmFwcGx5IG9uIGEgaHVnZSBzdHJpbmcgY2FuIG92ZXJmbG93IHRoZSBz
dGFjawotICAgIHZhciBjdXJyOwotICAgIHdoaWxlIChsZW5ndGggPiAwKSB7Ci0gICAgICBjdXJy
ID0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsIEhFQVBVOC5zdWJhcnJheShwdHIs
IHB0ciArIE1hdGgubWluKGxlbmd0aCwgTUFYX0NIVU5LKSkpOwotICAgICAgcmV0ID0gcmV0ID8g
cmV0ICsgY3VyciA6IGN1cnI7Ci0gICAgICBwdHIgKz0gTUFYX0NIVU5LOwotICAgICAgbGVuZ3Ro
IC09IE1BWF9DSFVOSzsKLSAgICB9Ci0gICAgcmV0dXJuIHJldDsKLSAgfQotICB2YXIgdXRmOCA9
IG5ldyBSdW50aW1lLlVURjhQcm9jZXNzb3IoKTsKLSAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsg
aSsrKSB7Ci0gICAgdCA9IEhFQVBVOFsoKChwdHIpKyhpKSl8MCldOwotICAgIHJldCArPSB1dGY4
LnByb2Nlc3NDQ2hhcih0KTsKLSAgfQotICByZXR1cm4gcmV0OwotfQotTW9kdWxlWydQb2ludGVy
X3N0cmluZ2lmeSddID0gUG9pbnRlcl9zdHJpbmdpZnk7Ci0vLyBNZW1vcnkgbWFuYWdlbWVudAot
dmFyIFBBR0VfU0laRSA9IDQwOTY7Ci1mdW5jdGlvbiBhbGlnbk1lbW9yeVBhZ2UoeCkgewotICBy
ZXR1cm4gKCh4KzQwOTUpPj4xMik8PDEyOwotfQotdmFyIEhFQVA7Ci12YXIgSEVBUDgsIEhFQVBV
OCwgSEVBUDE2LCBIRUFQVTE2LCBIRUFQMzIsIEhFQVBVMzIsIEhFQVBGMzIsIEhFQVBGNjQ7Ci12
YXIgU1RBVElDX0JBU0UgPSAwLCBTVEFUSUNUT1AgPSAwLCBzdGF0aWNTZWFsZWQgPSBmYWxzZTsg
Ly8gc3RhdGljIGFyZWEKLXZhciBTVEFDS19CQVNFID0gMCwgU1RBQ0tUT1AgPSAwLCBTVEFDS19N
QVggPSAwOyAvLyBzdGFjayBhcmVhCi12YXIgRFlOQU1JQ19CQVNFID0gMCwgRFlOQU1JQ1RPUCA9
IDA7IC8vIGR5bmFtaWMgYXJlYSBoYW5kbGVkIGJ5IHNicmsKLWZ1bmN0aW9uIGVubGFyZ2VNZW1v
cnkoKSB7Ci0gIGFib3J0KCdDYW5ub3QgZW5sYXJnZSBtZW1vcnkgYXJyYXlzIGluIGFzbS5qcy4g
RWl0aGVyICgxKSBjb21waWxlIHdpdGggLXMgVE9UQUxfTUVNT1JZPVggd2l0aCBYIGhpZ2hlciB0
aGFuIHRoZSBjdXJyZW50IHZhbHVlLCBvciAoMikgc2V0IE1vZHVsZS5UT1RBTF9NRU1PUlkgYmVm
b3JlIHRoZSBwcm9ncmFtIHJ1bnMuJyk7Ci19Ci12YXIgVE9UQUxfU1RBQ0sgPSBNb2R1bGVbJ1RP
VEFMX1NUQUNLJ10gfHwgNTI0Mjg4MDsKLXZhciBUT1RBTF9NRU1PUlkgPSBNb2R1bGVbJ1RPVEFM
X01FTU9SWSddIHx8IDE2Nzc3MjE2OwotdmFyIEZBU1RfTUVNT1JZID0gTW9kdWxlWydGQVNUX01F
TU9SWSddIHx8IDIwOTcxNTI7Ci0vLyBJbml0aWFsaXplIHRoZSBydW50aW1lJ3MgbWVtb3J5Ci0v
LyBjaGVjayBmb3IgZnVsbCBlbmdpbmUgc3VwcG9ydCAodXNlIHN0cmluZyAnc3ViYXJyYXknIHRv
IGF2b2lkIGNsb3N1cmUgY29tcGlsZXIgY29uZnVzaW9uKQotYXNzZXJ0KCEhSW50MzJBcnJheSAm
JiAhIUZsb2F0NjRBcnJheSAmJiAhIShuZXcgSW50MzJBcnJheSgxKVsnc3ViYXJyYXknXSkgJiYg
ISEobmV3IEludDMyQXJyYXkoMSlbJ3NldCddKSwKLSAgICAgICAnQ2Fubm90IGZhbGxiYWNrIHRv
IG5vbi10eXBlZCBhcnJheSBjYXNlOiBDb2RlIGlzIHRvbyBzcGVjaWFsaXplZCcpOwotdmFyIGJ1
ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihUT1RBTF9NRU1PUlkpOwotSEVBUDggPSBuZXcgSW50OEFy
cmF5KGJ1ZmZlcik7Ci1IRUFQMTYgPSBuZXcgSW50MTZBcnJheShidWZmZXIpOwotSEVBUDMyID0g
bmV3IEludDMyQXJyYXkoYnVmZmVyKTsKLUhFQVBVOCA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7
Ci1IRUFQVTE2ID0gbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcik7Ci1IRUFQVTMyID0gbmV3IFVpbnQz
MkFycmF5KGJ1ZmZlcik7Ci1IRUFQRjMyID0gbmV3IEZsb2F0MzJBcnJheShidWZmZXIpOwotSEVB
UEY2NCA9IG5ldyBGbG9hdDY0QXJyYXkoYnVmZmVyKTsKLS8vIEVuZGlhbm5lc3MgY2hlY2sgKG5v
dGU6IGFzc3VtZXMgY29tcGlsZXIgYXJjaCB3YXMgbGl0dGxlLWVuZGlhbikKLUhFQVAzMlswXSA9
IDI1NTsKLWFzc2VydChIRUFQVThbMF0gPT09IDI1NSAmJiBIRUFQVThbM10gPT09IDAsICdUeXBl
ZCBhcnJheXMgMiBtdXN0IGJlIHJ1biBvbiBhIGxpdHRsZS1lbmRpYW4gc3lzdGVtJyk7Ci1Nb2R1
bGVbJ0hFQVAnXSA9IEhFQVA7Ci1Nb2R1bGVbJ0hFQVA4J10gPSBIRUFQODsKLU1vZHVsZVsnSEVB
UDE2J10gPSBIRUFQMTY7Ci1Nb2R1bGVbJ0hFQVAzMiddID0gSEVBUDMyOwotTW9kdWxlWydIRUFQ
VTgnXSA9IEhFQVBVODsKLU1vZHVsZVsnSEVBUFUxNiddID0gSEVBUFUxNjsKLU1vZHVsZVsnSEVB
UFUzMiddID0gSEVBUFUzMjsKLU1vZHVsZVsnSEVBUEYzMiddID0gSEVBUEYzMjsKLU1vZHVsZVsn
SEVBUEY2NCddID0gSEVBUEY2NDsKLWZ1bmN0aW9uIGNhbGxSdW50aW1lQ2FsbGJhY2tzKGNhbGxi
YWNrcykgewotICB3aGlsZShjYWxsYmFja3MubGVuZ3RoID4gMCkgewotICAgIHZhciBjYWxsYmFj
ayA9IGNhbGxiYWNrcy5zaGlmdCgpOwotICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT0gJ2Z1bmN0
aW9uJykgewotICAgICAgY2FsbGJhY2soKTsKLSAgICAgIGNvbnRpbnVlOwotICAgIH0KLSAgICB2
YXIgZnVuYyA9IGNhbGxiYWNrLmZ1bmM7Ci0gICAgaWYgKHR5cGVvZiBmdW5jID09PSAnbnVtYmVy
JykgewotICAgICAgaWYgKGNhbGxiYWNrLmFyZyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIFJ1
bnRpbWUuZHluQ2FsbCgndicsIGZ1bmMpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgUnVudGlt
ZS5keW5DYWxsKCd2aScsIGZ1bmMsIFtjYWxsYmFjay5hcmddKTsKLSAgICAgIH0KLSAgICB9IGVs
c2UgewotICAgICAgZnVuYyhjYWxsYmFjay5hcmcgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBjYWxs
YmFjay5hcmcpOwotICAgIH0KLSAgfQotfQotdmFyIF9fQVRQUkVSVU5fXyAgPSBbXTsgLy8gZnVu
Y3Rpb25zIGNhbGxlZCBiZWZvcmUgdGhlIHJ1bnRpbWUgaXMgaW5pdGlhbGl6ZWQKLXZhciBfX0FU
SU5JVF9fICAgID0gW107IC8vIGZ1bmN0aW9ucyBjYWxsZWQgZHVyaW5nIHN0YXJ0dXAKLXZhciBf
X0FUTUFJTl9fICAgID0gW107IC8vIGZ1bmN0aW9ucyBjYWxsZWQgd2hlbiBtYWluKCkgaXMgdG8g
YmUgcnVuCi12YXIgX19BVEVYSVRfXyAgICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIGR1cmlu
ZyBzaHV0ZG93bgotdmFyIF9fQVRQT1NUUlVOX18gPSBbXTsgLy8gZnVuY3Rpb25zIGNhbGxlZCBh
ZnRlciB0aGUgcnVudGltZSBoYXMgZXhpdGVkCi12YXIgcnVudGltZUluaXRpYWxpemVkID0gZmFs
c2U7Ci1mdW5jdGlvbiBwcmVSdW4oKSB7Ci0gIC8vIGNvbXBhdGliaWxpdHkgLSBtZXJnZSBpbiBh
bnl0aGluZyBmcm9tIE1vZHVsZVsncHJlUnVuJ10gYXQgdGhpcyB0aW1lCi0gIGlmIChNb2R1bGVb
J3ByZVJ1biddKSB7Ci0gICAgaWYgKHR5cGVvZiBNb2R1bGVbJ3ByZVJ1biddID09ICdmdW5jdGlv
bicpIE1vZHVsZVsncHJlUnVuJ10gPSBbTW9kdWxlWydwcmVSdW4nXV07Ci0gICAgd2hpbGUgKE1v
ZHVsZVsncHJlUnVuJ10ubGVuZ3RoKSB7Ci0gICAgICBhZGRPblByZVJ1bihNb2R1bGVbJ3ByZVJ1
biddLnNoaWZ0KCkpOwotICAgIH0KLSAgfQotICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUUFJF
UlVOX18pOwotfQotZnVuY3Rpb24gZW5zdXJlSW5pdFJ1bnRpbWUoKSB7Ci0gIGlmIChydW50aW1l
SW5pdGlhbGl6ZWQpIHJldHVybjsKLSAgcnVudGltZUluaXRpYWxpemVkID0gdHJ1ZTsKLSAgY2Fs
bFJ1bnRpbWVDYWxsYmFja3MoX19BVElOSVRfXyk7Ci19Ci1mdW5jdGlvbiBwcmVNYWluKCkgewot
ICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUTUFJTl9fKTsKLX0KLWZ1bmN0aW9uIGV4aXRSdW50
aW1lKCkgewotICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FURVhJVF9fKTsKLX0KLWZ1bmN0aW9u
IHBvc3RSdW4oKSB7Ci0gIC8vIGNvbXBhdGliaWxpdHkgLSBtZXJnZSBpbiBhbnl0aGluZyBmcm9t
IE1vZHVsZVsncG9zdFJ1biddIGF0IHRoaXMgdGltZQotICBpZiAoTW9kdWxlWydwb3N0UnVuJ10p
IHsKLSAgICBpZiAodHlwZW9mIE1vZHVsZVsncG9zdFJ1biddID09ICdmdW5jdGlvbicpIE1vZHVs
ZVsncG9zdFJ1biddID0gW01vZHVsZVsncG9zdFJ1biddXTsKLSAgICB3aGlsZSAoTW9kdWxlWydw
b3N0UnVuJ10ubGVuZ3RoKSB7Ci0gICAgICBhZGRPblBvc3RSdW4oTW9kdWxlWydwb3N0UnVuJ10u
c2hpZnQoKSk7Ci0gICAgfQotICB9Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRQT1NUUlVO
X18pOwotfQotZnVuY3Rpb24gYWRkT25QcmVSdW4oY2IpIHsKLSAgX19BVFBSRVJVTl9fLnVuc2hp
ZnQoY2IpOwotfQotTW9kdWxlWydhZGRPblByZVJ1biddID0gTW9kdWxlLmFkZE9uUHJlUnVuID0g
YWRkT25QcmVSdW47Ci1mdW5jdGlvbiBhZGRPbkluaXQoY2IpIHsKLSAgX19BVElOSVRfXy51bnNo
aWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25Jbml0J10gPSBNb2R1bGUuYWRkT25Jbml0ID0gYWRk
T25Jbml0OwotZnVuY3Rpb24gYWRkT25QcmVNYWluKGNiKSB7Ci0gIF9fQVRNQUlOX18udW5zaGlm
dChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uUHJlTWFpbiddID0gTW9kdWxlLmFkZE9uUHJlTWFpbiA9
IGFkZE9uUHJlTWFpbjsKLWZ1bmN0aW9uIGFkZE9uRXhpdChjYikgewotICBfX0FURVhJVF9fLnVu
c2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPbkV4aXQnXSA9IE1vZHVsZS5hZGRPbkV4aXQgPSBh
ZGRPbkV4aXQ7Ci1mdW5jdGlvbiBhZGRPblBvc3RSdW4oY2IpIHsKLSAgX19BVFBPU1RSVU5fXy51
bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25Qb3N0UnVuJ10gPSBNb2R1bGUuYWRkT25Qb3N0
UnVuID0gYWRkT25Qb3N0UnVuOwotLy8gVG9vbHMKLS8vIFRoaXMgcHJvY2Vzc2VzIGEgSlMgc3Ry
aW5nIGludG8gYSBDLWxpbmUgYXJyYXkgb2YgbnVtYmVycywgMC10ZXJtaW5hdGVkLgotLy8gRm9y
IExMVk0tb3JpZ2luYXRpbmcgc3RyaW5ncywgc2VlIHBhcnNlci5qczpwYXJzZUxMVk1TdHJpbmcg
ZnVuY3Rpb24KLWZ1bmN0aW9uIGludEFycmF5RnJvbVN0cmluZyhzdHJpbmd5LCBkb250QWRkTnVs
bCwgbGVuZ3RoIC8qIG9wdGlvbmFsICovKSB7Ci0gIHZhciByZXQgPSAobmV3IFJ1bnRpbWUuVVRG
OFByb2Nlc3NvcigpKS5wcm9jZXNzSlNTdHJpbmcoc3RyaW5neSk7Ci0gIGlmIChsZW5ndGgpIHsK
LSAgICByZXQubGVuZ3RoID0gbGVuZ3RoOwotICB9Ci0gIGlmICghZG9udEFkZE51bGwpIHsKLSAg
ICByZXQucHVzaCgwKTsKLSAgfQotICByZXR1cm4gcmV0OwotfQotTW9kdWxlWydpbnRBcnJheUZy
b21TdHJpbmcnXSA9IGludEFycmF5RnJvbVN0cmluZzsKLWZ1bmN0aW9uIGludEFycmF5VG9TdHJp
bmcoYXJyYXkpIHsKLSAgdmFyIHJldCA9IFtdOwotICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5
Lmxlbmd0aDsgaSsrKSB7Ci0gICAgdmFyIGNociA9IGFycmF5W2ldOwotICAgIGlmIChjaHIgPiAw
eEZGKSB7Ci0gICAgICBjaHIgJj0gMHhGRjsKLSAgICB9Ci0gICAgcmV0LnB1c2goU3RyaW5nLmZy
b21DaGFyQ29kZShjaHIpKTsKLSAgfQotICByZXR1cm4gcmV0LmpvaW4oJycpOwotfQotTW9kdWxl
WydpbnRBcnJheVRvU3RyaW5nJ10gPSBpbnRBcnJheVRvU3RyaW5nOwotLy8gV3JpdGUgYSBKYXZh
c2NyaXB0IGFycmF5IHRvIHNvbWV3aGVyZSBpbiB0aGUgaGVhcAotZnVuY3Rpb24gd3JpdGVTdHJp
bmdUb01lbW9yeShzdHJpbmcsIGJ1ZmZlciwgZG9udEFkZE51bGwpIHsKLSAgdmFyIGFycmF5ID0g
aW50QXJyYXlGcm9tU3RyaW5nKHN0cmluZywgZG9udEFkZE51bGwpOwotICB2YXIgaSA9IDA7Ci0g
IHdoaWxlIChpIDwgYXJyYXkubGVuZ3RoKSB7Ci0gICAgdmFyIGNociA9IGFycmF5W2ldOwotICAg
IEhFQVA4WygoKGJ1ZmZlcikrKGkpKXwwKV09Y2hyCi0gICAgaSA9IGkgKyAxOwotICB9Ci19Ci1N
b2R1bGVbJ3dyaXRlU3RyaW5nVG9NZW1vcnknXSA9IHdyaXRlU3RyaW5nVG9NZW1vcnk7Ci1mdW5j
dGlvbiB3cml0ZUFycmF5VG9NZW1vcnkoYXJyYXksIGJ1ZmZlcikgewotICBmb3IgKHZhciBpID0g
MDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7Ci0gICAgSEVBUDhbKCgoYnVmZmVyKSsoaSkpfDAp
XT1hcnJheVtpXTsKLSAgfQotfQotTW9kdWxlWyd3cml0ZUFycmF5VG9NZW1vcnknXSA9IHdyaXRl
QXJyYXlUb01lbW9yeTsKLWZ1bmN0aW9uIHVuU2lnbih2YWx1ZSwgYml0cywgaWdub3JlLCBzaWcp
IHsKLSAgaWYgKHZhbHVlID49IDApIHsKLSAgICByZXR1cm4gdmFsdWU7Ci0gIH0KLSAgcmV0dXJu
IGJpdHMgPD0gMzIgPyAyKk1hdGguYWJzKDEgPDwgKGJpdHMtMSkpICsgdmFsdWUgLy8gTmVlZCBz
b21lIHRyaWNrZXJ5LCBzaW5jZSBpZiBiaXRzID09IDMyLCB3ZSBhcmUgcmlnaHQgYXQgdGhlIGxp
bWl0IG9mIHRoZSBiaXRzIEpTIHVzZXMgaW4gYml0c2hpZnRzCi0gICAgICAgICAgICAgICAgICAg
IDogTWF0aC5wb3coMiwgYml0cykgICAgICAgICArIHZhbHVlOwotfQotZnVuY3Rpb24gcmVTaWdu
KHZhbHVlLCBiaXRzLCBpZ25vcmUsIHNpZykgewotICBpZiAodmFsdWUgPD0gMCkgewotICAgIHJl
dHVybiB2YWx1ZTsKLSAgfQotICB2YXIgaGFsZiA9IGJpdHMgPD0gMzIgPyBNYXRoLmFicygxIDw8
IChiaXRzLTEpKSAvLyBhYnMgaXMgbmVlZGVkIGlmIGJpdHMgPT0gMzIKLSAgICAgICAgICAgICAg
ICAgICAgICAgIDogTWF0aC5wb3coMiwgYml0cy0xKTsKLSAgaWYgKHZhbHVlID49IGhhbGYgJiYg
KGJpdHMgPD0gMzIgfHwgdmFsdWUgPiBoYWxmKSkgeyAvLyBmb3IgaHVnZSB2YWx1ZXMsIHdlIGNh
biBoaXQgdGhlIHByZWNpc2lvbiBsaW1pdCBhbmQgYWx3YXlzIGdldCB0cnVlIGhlcmUuIHNvIGRv
bid0IGRvIHRoYXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBidXQsIGluIGdlbmVyYWwgdGhlcmUgaXMgbm8gcGVyZmVjdCBzb2x1dGlv
biBoZXJlLiBXaXRoIDY0LWJpdCBpbnRzLCB3ZSBnZXQgcm91bmRpbmcgYW5kIGVycm9ycwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRP
RE86IEluIGk2NCBtb2RlIDEsIHJlc2lnbiB0aGUgdHdvIHBhcnRzIHNlcGFyYXRlbHkgYW5kIHNh
ZmVseQotICAgIHZhbHVlID0gLTIqaGFsZiArIHZhbHVlOyAvLyBDYW5ub3QgYml0c2hpZnQgaGFs
ZiwgYXMgaXQgbWF5IGJlIGF0IHRoZSBsaW1pdCBvZiB0aGUgYml0cyBKUyB1c2VzIGluIGJpdHNo
aWZ0cwotICB9Ci0gIHJldHVybiB2YWx1ZTsKLX0KLWlmICghTWF0aFsnaW11bCddKSBNYXRoWydp
bXVsJ10gPSBmdW5jdGlvbihhLCBiKSB7Ci0gIHZhciBhaCAgPSBhID4+PiAxNjsKLSAgdmFyIGFs
ID0gYSAmIDB4ZmZmZjsKLSAgdmFyIGJoICA9IGIgPj4+IDE2OwotICB2YXIgYmwgPSBiICYgMHhm
ZmZmOwotICByZXR1cm4gKGFsKmJsICsgKChhaCpibCArIGFsKmJoKSA8PCAxNikpfDA7Ci19Owot
TWF0aC5pbXVsID0gTWF0aFsnaW11bCddOwotLy8gQSBjb3VudGVyIG9mIGRlcGVuZGVuY2llcyBm
b3IgY2FsbGluZyBydW4oKS4gSWYgd2UgbmVlZCB0bwotLy8gZG8gYXN5bmNocm9ub3VzIHdvcmsg
YmVmb3JlIHJ1bm5pbmcsIGluY3JlbWVudCB0aGlzIGFuZAotLy8gZGVjcmVtZW50IGl0LiBJbmNy
ZW1lbnRpbmcgbXVzdCBoYXBwZW4gaW4gYSBwbGFjZSBsaWtlCi0vLyBQUkVfUlVOX0FERElUSU9O
UyAodXNlZCBieSBlbWNjIHRvIGFkZCBmaWxlIHByZWxvYWRpbmcpLgotLy8gTm90ZSB0aGF0IHlv
dSBjYW4gYWRkIGRlcGVuZGVuY2llcyBpbiBwcmVSdW4sIGV2ZW4gdGhvdWdoCi0vLyBpdCBoYXBw
ZW5zIHJpZ2h0IGJlZm9yZSBydW4gLSBydW4gd2lsbCBiZSBwb3N0cG9uZWQgdW50aWwKLS8vIHRo
ZSBkZXBlbmRlbmNpZXMgYXJlIG1ldC4KLXZhciBydW5EZXBlbmRlbmNpZXMgPSAwOwotdmFyIHJ1
bkRlcGVuZGVuY3lUcmFja2luZyA9IHt9OwotdmFyIGNhbGxlZEluaXQgPSBmYWxzZSwgY2FsbGVk
UnVuID0gZmFsc2U7Ci12YXIgcnVuRGVwZW5kZW5jeVdhdGNoZXIgPSBudWxsOwotZnVuY3Rpb24g
YWRkUnVuRGVwZW5kZW5jeShpZCkgewotICBydW5EZXBlbmRlbmNpZXMrKzsKLSAgaWYgKE1vZHVs
ZVsnbW9uaXRvclJ1bkRlcGVuZGVuY2llcyddKSB7Ci0gICAgTW9kdWxlWydtb25pdG9yUnVuRGVw
ZW5kZW5jaWVzJ10ocnVuRGVwZW5kZW5jaWVzKTsKLSAgfQotICBpZiAoaWQpIHsKLSAgICBhc3Nl
cnQoIXJ1bkRlcGVuZGVuY3lUcmFja2luZ1tpZF0pOwotICAgIHJ1bkRlcGVuZGVuY3lUcmFja2lu
Z1tpZF0gPSAxOwotICB9IGVsc2UgewotICAgIE1vZHVsZS5wcmludEVycignd2FybmluZzogcnVu
IGRlcGVuZGVuY3kgYWRkZWQgd2l0aG91dCBJRCcpOwotICB9Ci19Ci1Nb2R1bGVbJ2FkZFJ1bkRl
cGVuZGVuY3knXSA9IGFkZFJ1bkRlcGVuZGVuY3k7Ci1mdW5jdGlvbiByZW1vdmVSdW5EZXBlbmRl
bmN5KGlkKSB7Ci0gIHJ1bkRlcGVuZGVuY2llcy0tOwotICBpZiAoTW9kdWxlWydtb25pdG9yUnVu
RGVwZW5kZW5jaWVzJ10pIHsKLSAgICBNb2R1bGVbJ21vbml0b3JSdW5EZXBlbmRlbmNpZXMnXShy
dW5EZXBlbmRlbmNpZXMpOwotICB9Ci0gIGlmIChpZCkgewotICAgIGFzc2VydChydW5EZXBlbmRl
bmN5VHJhY2tpbmdbaWRdKTsKLSAgICBkZWxldGUgcnVuRGVwZW5kZW5jeVRyYWNraW5nW2lkXTsK
LSAgfSBlbHNlIHsKLSAgICBNb2R1bGUucHJpbnRFcnIoJ3dhcm5pbmc6IHJ1biBkZXBlbmRlbmN5
IHJlbW92ZWQgd2l0aG91dCBJRCcpOwotICB9Ci0gIGlmIChydW5EZXBlbmRlbmNpZXMgPT0gMCkg
ewotICAgIGlmIChydW5EZXBlbmRlbmN5V2F0Y2hlciAhPT0gbnVsbCkgewotICAgICAgY2xlYXJJ
bnRlcnZhbChydW5EZXBlbmRlbmN5V2F0Y2hlcik7Ci0gICAgICBydW5EZXBlbmRlbmN5V2F0Y2hl
ciA9IG51bGw7Ci0gICAgfSAKLSAgICAvLyBJZiBydW4gaGFzIG5ldmVyIGJlZW4gY2FsbGVkLCBh
bmQgd2Ugc2hvdWxkIGNhbGwgcnVuIChJTlZPS0VfUlVOIGlzIHRydWUsIGFuZCBNb2R1bGUubm9J
bml0aWFsUnVuIGlzIG5vdCBmYWxzZSkKLSAgICBpZiAoIWNhbGxlZFJ1biAmJiBzaG91bGRSdW5O
b3cpIHJ1bigpOwotICB9Ci19Ci1Nb2R1bGVbJ3JlbW92ZVJ1bkRlcGVuZGVuY3knXSA9IHJlbW92
ZVJ1bkRlcGVuZGVuY3k7Ci1Nb2R1bGVbInByZWxvYWRlZEltYWdlcyJdID0ge307IC8vIG1hcHMg
dXJsIHRvIGltYWdlIGRhdGEKLU1vZHVsZVsicHJlbG9hZGVkQXVkaW9zIl0gPSB7fTsgLy8gbWFw
cyB1cmwgdG8gYXVkaW8gZGF0YQotZnVuY3Rpb24gbG9hZE1lbW9yeUluaXRpYWxpemVyKGZpbGVu
YW1lKSB7Ci0gIGZ1bmN0aW9uIGFwcGx5RGF0YShkYXRhKSB7Ci0gICAgSEVBUFU4LnNldChkYXRh
LCBTVEFUSUNfQkFTRSk7Ci0gIH0KLSAgLy8gYWx3YXlzIGRvIHRoaXMgYXN5bmNocm9ub3VzbHks
IHRvIGtlZXAgc2hlbGwgYW5kIHdlYiBhcyBzaW1pbGFyIGFzIHBvc3NpYmxlCi0gIGFkZE9uUHJl
UnVuKGZ1bmN0aW9uKCkgewotICAgIGlmIChFTlZJUk9OTUVOVF9JU19OT0RFIHx8IEVOVklST05N
RU5UX0lTX1NIRUxMKSB7Ci0gICAgICBhcHBseURhdGEoTW9kdWxlWydyZWFkQmluYXJ5J10oZmls
ZW5hbWUpKTsKLSAgICB9IGVsc2UgewotICAgICAgQnJvd3Nlci5hc3luY0xvYWQoZmlsZW5hbWUs
IGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgYXBwbHlEYXRhKGRhdGEpOwotICAgICAgfSwgZnVu
Y3Rpb24oZGF0YSkgewotICAgICAgICB0aHJvdyAnY291bGQgbm90IGxvYWQgbWVtb3J5IGluaXRp
YWxpemVyICcgKyBmaWxlbmFtZTsKLSAgICAgIH0pOwotICAgIH0KLSAgfSk7Ci19Ci0vLyA9PT0g
Qm9keSA9PT0KLVNUQVRJQ19CQVNFID0gODsKLVNUQVRJQ1RPUCA9IFNUQVRJQ19CQVNFICsgMTYz
OTI7Ci12YXIgX3N0ZG91dDsKLXZhciBfc3RkaW47Ci12YXIgX3N0ZGVycjsKLS8qIGdsb2JhbCBp
bml0aWFsaXplcnMgKi8gX19BVElOSVRfXy5wdXNoKHsgZnVuYzogZnVuY3Rpb24oKSB7IHJ1blBv
c3RTZXRzKCkgfSB9LHsgZnVuYzogZnVuY3Rpb24oKSB7IF9fR0xPQkFMX19JX2EoKSB9IH0seyBm
dW5jOiBmdW5jdGlvbigpIHsgX19HTE9CQUxfX0lfYTgoKSB9IH0pOwotdmFyIF9fX2ZzbXU4Owot
dmFyIF9fX2Rzb19oYW5kbGU7Ci12YXIgX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5
cGVfaW5mb0U7Ci12YXIgX19aVFZOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0U7Ci12
YXIgX19aTlN0M19fMTEyX19yc19kZWZhdWx0RDFFdjsKLXZhciBfX1pOU3QxM3J1bnRpbWVfZXJy
b3JDMUVQS2M7Ci12YXIgX19aTlN0MTNydW50aW1lX2Vycm9yRDFFdjsKLXZhciBfX1pOU3QxMmxl
bmd0aF9lcnJvckQxRXY7Ci12YXIgX19aTlN0M19fMTZsb2NhbGVDMUV2OwotdmFyIF9fWk5TdDNf
XzE2bG9jYWxlQzFFUktTMF87Ci12YXIgX19aTlN0M19fMTZsb2NhbGVEMUV2OwotdmFyIF9fWk5T
dDhiYWRfY2FzdEMxRXY7Ci12YXIgX19aTlN0OGJhZF9jYXN0RDFFdjsKLXZhciBfc3Rkb3V0ID0g
X3N0ZG91dD1hbGxvY2F0ZShbMCwwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RBVElDKTsK
LXZhciBfc3RkaW4gPSBfc3RkaW49YWxsb2NhdGUoWzAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFM
TE9DX1NUQVRJQyk7Ci12YXIgX3N0ZGVyciA9IF9zdGRlcnI9YWxsb2NhdGUoWzAsMCwwLDAsMCww
LDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci1fX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xh
c3NfdHlwZV9pbmZvRT1hbGxvY2F0ZShbMCwwLDAsMCwyMDAsMzcsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOwotX19aVFZOMTBfX2N4eGFiaXYxMTdfX2Ns
YXNzX3R5cGVfaW5mb0U9YWxsb2NhdGUoWzAsMCwwLDAsMjE2LDM3LDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLS8qIG1lbW9yeSBpbml0aWFsaXplciAq
LyBhbGxvY2F0ZShbMCwwLDAsMCwwLDAsMzYsNjQsMCwwLDAsMCwwLDAsODksNjQsMCwwLDAsMCww
LDEzNiwxOTUsNjQsMCwwLDAsMCwxMzIsMjE1LDE1MSw2NSwwLDEyOCwyMjQsNTUsMTIxLDE5NSw2
NSw2NywyMywxMTAsNSwxODEsMTgxLDE4NCwxNDcsNzAsMjQ1LDI0OSw2MywyMzMsMyw3OSw1Niw3
Nyw1MCwyOSw0OCwyNDksNzIsMTE5LDEzMCw5MCw2MCwxOTEsMTE1LDEyNywyMjEsNzksMjEsMTE3
LDc0LDExNywxMDgsMCwwLDAsMCwwLDc0LDExNywxMTAsMCwwLDAsMCwwLDY1LDExMiwxMTQsMCww
LDAsMCwwLDc3LDk3LDExNCwwLDAsMCwwLDAsNzAsMTAxLDk4LDAsMCwwLDAsMCw3NCw5NywxMTAs
MCwwLDAsMCwwLDY4LDEwMSw5OSwxMDEsMTA5LDk4LDEwMSwxMTQsMCwwLDAsMCwwLDAsMCwwLDc4
LDExMSwxMTgsMTAxLDEwOSw5OCwxMDEsMTE0LDAsMCwwLDAsMCwwLDAsMCw3OSw5OSwxMTYsMTEx
LDk4LDEwMSwxMTQsMCw4MywxMDEsMTEyLDExNiwxMDEsMTA5LDk4LDEwMSwxMTQsMCwwLDAsMCww
LDAsMCwxMTcsMTEwLDExNSwxMTcsMTEyLDExMiwxMTEsMTE0LDExNiwxMDEsMTAwLDMyLDEwOCwx
MTEsOTksOTcsMTA4LDEwMSwzMiwxMDIsMTExLDExNCwzMiwxMTUsMTE2LDk3LDExMCwxMDAsOTcs
MTE0LDEwMCwzMiwxMDUsMTEwLDExMiwxMTcsMTE2LDAsMCwwLDY1LDExNywxMDMsMTE3LDExNSwx
MTYsMCwwLDc0LDExNywxMDgsMTIxLDAsMCwwLDAsNzQsMTE3LDExMCwxMDEsMCwwLDAsMCw3Nyw5
NywxMjEsMCwwLDAsMCwwLDY1LDExMiwxMTQsMTA1LDEwOCwwLDAsMCw3Nyw5NywxMTQsOTksMTA0
LDAsMCwwLDcwLDEwMSw5OCwxMTQsMTE3LDk3LDExNCwxMjEsMCwwLDAsMCwwLDAsMCwwLDc0LDk3
LDExMCwxMTcsOTcsMTE0LDEyMSwwLDY4LDAsMCwwLDEwMSwwLDAsMCw5OSwwLDAsMCwwLDAsMCww
LDc4LDAsMCwwLDExMSwwLDAsMCwxMTgsMCwwLDAsMCwwLDAsMCw3OSwwLDAsMCw5OSwwLDAsMCwx
MTYsMCwwLDAsMCwwLDAsMCw4MywwLDAsMCwxMDEsMCwwLDAsMTEyLDAsMCwwLDAsMCwwLDAsOTgs
OTcsMTE1LDEwNSw5OSw5NSwxMTUsMTE2LDExNCwxMDUsMTEwLDEwMywwLDAsMCwwLDY1LDAsMCww
LDExNywwLDAsMCwxMDMsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCwxMTcsMCwwLDAsMTA4LDAsMCww
LDAsMCwwLDAsNzQsMCwwLDAsMTE3LDAsMCwwLDExMCwwLDAsMCwwLDAsMCwwLDc3LDAsMCwwLDk3
LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDY1LDAsMCwwLDExMiwwLDAsMCwxMTQsMCwwLDAsMCww
LDAsMCw3NywwLDAsMCw5NywwLDAsMCwxMTQsMCwwLDAsMCwwLDAsMCw3MCwwLDAsMCwxMDEsMCww
LDAsOTgsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCw5NywwLDAsMCwxMTAsMCwwLDAsMCwwLDAsMCw2
OCwwLDAsMCwxMDEsMCwwLDAsOTksMCwwLDAsMTAxLDAsMCwwLDEwOSwwLDAsMCw5OCwwLDAsMCwx
MDEsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3OCwwLDAsMCwxMTEsMCwwLDAsMTE4
LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAsOTgsMCwwLDAsMTAxLDAsMCwwLDExNCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsNzksMCwwLDAsOTksMCwwLDAsMTE2LDAsMCwwLDExMSwwLDAsMCw5OCww
LDAsMCwxMDEsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsODMsMCwwLDAsMTAxLDAsMCwwLDExMiww
LDAsMCwxMTYsMCwwLDAsMTAxLDAsMCwwLDEwOSwwLDAsMCw5OCwwLDAsMCwxMDEsMCwwLDAsMTE0
LDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAsMTE3LDAsMCwwLDEwMywwLDAsMCwxMTcsMCwwLDAsMTE1
LDAsMCwwLDExNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsMTE3LDAsMCwwLDEwOCww
LDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNywwLDAsMCwxMTAsMCww
LDAsMTAxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCwxMTIsMCwwLDAsMTE0LDAsMCww
LDEwNSwwLDAsMCwxMDgsMCwwLDAsMCwwLDAsMCw3NywwLDAsMCw5NywwLDAsMCwxMTQsMCwwLDAs
OTksMCwwLDAsMTA0LDAsMCwwLDAsMCwwLDAsNzAsMCwwLDAsMTAxLDAsMCwwLDk4LDAsMCwwLDEx
NCwwLDAsMCwxMTcsMCwwLDAsOTcsMCwwLDAsMTE0LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsNzQsMCwwLDAsOTcsMCwwLDAsMTEwLDAsMCwwLDExNywwLDAsMCw5NywwLDAsMCwxMTQs
MCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsODAsNzcsMCwwLDAsMCwwLDAsNjUsNzcsMCwwLDAsMCww
LDAsODAsMCwwLDAsNzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY1LDAsMCwwLDc3LDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwxMDgsMTExLDk5LDk3LDEwOCwxMDEsMzIsMTEwLDExMSwxMTYsMzIsMTE1
LDExNywxMTIsMTEyLDExMSwxMTQsMTE2LDEwMSwxMDAsMCwwLDAsMCwzNywwLDAsMCw3MywwLDAs
MCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw4MywwLDAsMCwz
MiwwLDAsMCwzNywwLDAsMCwxMTIsMCwwLDAsMCwwLDAsMCwzNyw3Myw1OCwzNyw3Nyw1OCwzNyw4
MywzMiwzNywxMTIsMCwwLDAsMCwwLDM3LDAsMCwwLDk3LDAsMCwwLDMyLDAsMCwwLDM3LDAsMCww
LDk4LDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDEwMCwwLDAsMCwzMiwwLDAsMCwzNywwLDAsMCw3
MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw4Myww
LDAsMCwzMiwwLDAsMCwzNywwLDAsMCw4OSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzcsOTcsMzIs
MzcsOTgsMzIsMzcsMTAwLDMyLDM3LDcyLDU4LDM3LDc3LDU4LDM3LDgzLDMyLDM3LDg5LDAsMCww
LDAsMzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAs
MzcsMCwwLDAsODMsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM3LDcyLDU4LDM3LDc3LDU4LDM3LDgz
LDAsMCwwLDAsMCwwLDAsMCwxMTUsMTE2LDEwMCw1OCw1OCw5OCw5NywxMDAsOTUsOTcsMTA4LDEw
OCwxMTEsOTksMCwwLDM3LDAsMCwwLDEwOSwwLDAsMCw0NywwLDAsMCwzNywwLDAsMCwxMDAsMCww
LDAsNDcsMCwwLDAsMzcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNywxMDksNDcs
MzcsMTAwLDQ3LDM3LDEyMSwwLDAsMCwwLDAsMCwwLDAsMTAyLDAsMCwwLDk3LDAsMCwwLDEwOCww
LDAsMCwxMTUsMCwwLDAsMTAxLDAsMCwwLDAsMCwwLDAsMTAyLDk3LDEwOCwxMTUsMTAxLDAsMCww
LDExNiwwLDAsMCwxMTQsMCwwLDAsMTE3LDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MTE2LDExNCwxMTcsMTAxLDAsMCwwLDAsNTgsMzIsMCwwLDAsMCwwLDAsMTA1LDExMSwxMTUsOTUs
OTgsOTcsMTE1LDEwMSw1OCw1OCw5OSwxMDgsMTAxLDk3LDExNCwwLDM3LDExMiwwLDAsMCwwLDAs
MCwxMTUsMTE2LDEwMCw1OCw1OCw5OCw5NywxMDAsOTUsOTksOTcsMTE1LDExNiwwLDAsMCw2Nyww
LDAsMCwwLDAsMCwwLDExOCwxMDEsOTksMTE2LDExMSwxMTQsMCwwLDM3LDQ2LDQ4LDc2LDEwMiww
LDAsMCwxMDksMTExLDExMCwxMDEsMTIxLDk1LDEwMywxMDEsMTE2LDMyLDEwMSwxMTQsMTE0LDEx
MSwxMTQsMCw4Myw5NywxMTYsMCwwLDAsMCwwLDcwLDExNCwxMDUsMCwwLDAsMCwwLDg0LDEwNCwx
MTcsMCwwLDAsMCwwLDM3LDc2LDEwMiwwLDAsMCwwLDAsMTA1LDExMSwxMTUsMTE2LDExNCwxMDEs
OTcsMTA5LDAsMCwwLDAsMCwwLDAsMCw4NywxMDEsMTAwLDAsMCwwLDAsMCw4NCwxMTcsMTAxLDAs
MCwwLDAsMCw3NywxMTEsMTEwLDAsMCwwLDAsMCw4MywxMTcsMTEwLDAsMCwwLDAsMCw4Myw5Nywx
MTYsMTE3LDExNCwxMDAsOTcsMTIxLDAsMCwwLDAsMCwwLDAsMCw3MCwxMTQsMTA1LDEwMCw5Nywx
MjEsMCwwLDg0LDEwNCwxMTcsMTE0LDExNSwxMDAsOTcsMTIxLDAsMCwwLDAsMCwwLDAsMCw4Nywx
MDEsMTAwLDExMCwxMDEsMTE1LDEwMCw5NywxMjEsMCwwLDAsMCwwLDAsMCw4NCwxMTcsMTAxLDEx
NSwxMDAsOTcsMTIxLDAsNzcsMTExLDExMCwxMDAsOTcsMTIxLDAsMCw4MywxMTcsMTEwLDEwMCw5
NywxMjEsMCwwLDgzLDAsMCwwLDk3LDAsMCwwLDExNiwwLDAsMCwwLDAsMCwwLDcwLDAsMCwwLDEx
NCwwLDAsMCwxMDUsMCwwLDAsMCwwLDAsMCw4NCwwLDAsMCwxMDQsMCwwLDAsMTE3LDAsMCwwLDAs
MCwwLDAsODcsMCwwLDAsMTAxLDAsMCwwLDEwMCwwLDAsMCwwLDAsMCwwLDg0LDAsMCwwLDExNyww
LDAsMCwxMDEsMCwwLDAsMCwwLDAsMCw3NywwLDAsMCwxMTEsMCwwLDAsMTEwLDAsMCwwLDAsMCww
LDAsMTE3LDExMCwxMTUsMTEyLDEwMSw5OSwxMDUsMTAyLDEwNSwxMDEsMTAwLDMyLDEwNSwxMTEs
MTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5NSw5OSw5NywxMTYsMTAxLDEwMywxMTEsMTE0LDEyMSwz
MiwxMDEsMTE0LDExNCwxMTEsMTE0LDAsMCwwLDAsMCw4MywwLDAsMCwxMTcsMCwwLDAsMTEwLDAs
MCwwLDAsMCwwLDAsODMsMCwwLDAsOTcsMCwwLDAsMTE2LDAsMCwwLDExNywwLDAsMCwxMTQsMCww
LDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzAsMCwwLDAs
MTE0LDAsMCwwLDEwNSwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCw4NCwwLDAsMCwxMDQsMCwwLDAsMTE3LDAsMCwwLDExNCwwLDAsMCwxMTUsMCwwLDAs
MTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODcsMCwwLDAsMTAx
LDAsMCwwLDEwMCwwLDAsMCwxMTAsMCwwLDAsMTAxLDAsMCwwLDExNSwwLDAsMCwxMDAsMCwwLDAs
OTcsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTE3LDAsMCwwLDEwMSwwLDAsMCwx
MTUsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDc3LDAsMCwwLDEx
MSwwLDAsMCwxMTAsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsODMsMCwwLDAsMTE3LDAsMCwwLDExMCwwLDAsMCwxMDAsMCwwLDAsOTcsMCwwLDAsMTIx
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2OCwxMDEsOTksMCwwLDAsMCwwLDc4LDExMSwxMTgsMCww
LDAsMCwwLDc5LDk5LDExNiwwLDAsMCwwLDAsODMsMTAxLDExMiwwLDAsMCwwLDAsNjUsMTE3LDEw
MywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1NywwLDAsMCwwLDAsMCw0OCw0OSw1
MCw1MSw1Miw1Myw1NCw1NSw1Niw1NywwLDAsMCwwLDAsMCwzNywwLDAsMCw4OSwwLDAsMCw0NSww
LDAsMCwzNywwLDAsMCwxMDksMCwwLDAsNDUsMCwwLDAsMzcsMCwwLDAsMTAwLDAsMCwwLDM3LDAs
MCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDU4LDAsMCwwLDM3LDAsMCww
LDgzLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCwwLDAs
MCwwLDAsMzcsMCwwLDAsNzMsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCww
LDAsMzcsMCwwLDAsODMsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsMTEyLDAsMCwwLDAsMCwwLDAs
MzcsMCwwLDAsMTA5LDAsMCwwLDQ3LDAsMCwwLDM3LDAsMCwwLDEwMCwwLDAsMCw0NywwLDAsMCwz
NywwLDAsMCwxMjEsMCwwLDAsMzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcs
MCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsODMsMCwwLDAsMzcsNzIsNTgsMzcsNzcsNTgsMzcsODMs
MzcsNzIsNTgsMzcsNzcsMCwwLDAsMzcsNzMsNTgsMzcsNzcsNTgsMzcsODMsMzIsMzcsMTEyLDAs
MCwwLDAsMCwzNyw4OSw0NSwzNywxMDksNDUsMzcsMTAwLDM3LDEwOSw0NywzNywxMDAsNDcsMzcs
MTIxLDM3LDcyLDU4LDM3LDc3LDU4LDM3LDgzLDM3LDAsMCwwLDAsMCwwLDAsMzcsMTEyLDAsMCww
LDAsMCwwLDAsMCwwLDAsMjI0LDMxLDAsMCwzMCwwLDAsMCwxMTYsMCwwLDAsOTgsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNDAsMzEsMCwwLDE5NiwwLDAsMCwxNjQsMCww
LDAsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDMyLDAsMCw3MCww
LDAsMCw2LDEsMCwwLDM4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYs
MzIsMCwwLDk0LDAsMCwwLDgsMCwwLDAsMTEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMzIsMzIsMCwwLDk0LDAsMCwwLDIwLDAsMCwwLDExMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDU2LDMyLDAsMCwxNjgsMCwwLDAsODQsMCwwLDAsNDgsMCww
LDAsMiwwLDAsMCw4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODgsMzIs
MCwwLDIzMCwwLDAsMCwxODYsMCwwLDAsNDgsMCwwLDAsNCwwLDAsMCwxNCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyMCwzMiwwLDAsMTYyLDAsMCwwLDE4OCwwLDAsMCw0
OCwwLDAsMCw4LDAsMCwwLDEyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MTUyLDMyLDAsMCwyNTQsMCwwLDAsMTQwLDAsMCwwLDQ4LDAsMCwwLDYsMCwwLDAsMTAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw1NiwzMywwLDAsMjUyLDAsMCwwLDE2LDAs
MCwwLDQ4LDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODgsMzMsMCwwLDE2
MCwwLDAsMCwxMDgsMCwwLDAsNDgsMCwwLDAsNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwxMjAsMzMsMCwwLDM4LDAsMCwwLDExMCwwLDAsMCw0OCwwLDAsMCwxMjAsMCwwLDAsNCwwLDAs
MCwzMiwwLDAsMCw2LDAsMCwwLDIwLDAsMCwwLDU2LDAsMCwwLDIsMCwwLDAsMjQ4LDI1NSwyNTUs
MjU1LDEyMCwzMywwLDAsMjIsMCwwLDAsOCwwLDAsMCwzMiwwLDAsMCwxMiwwLDAsMCwyLDAsMCww
LDMwLDAsMCwwLDEyNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2MCwz
MywwLDAsMjQyLDAsMCwwLDIyMiwwLDAsMCw0OCwwLDAsMCwyMCwwLDAsMCwxNiwwLDAsMCw2MCww
LDAsMCwyNiwwLDAsMCwxOCwwLDAsMCwyLDAsMCwwLDQsMCwwLDAsMjQ4LDI1NSwyNTUsMjU1LDE2
MCwzMywwLDAsNzAsMCwwLDAsMTA0LDAsMCwwLDExNiwwLDAsMCwxMjIsMCwwLDAsNjQsMCwwLDAs
NDQsMCwwLDAsNTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMDAsMzMs
MCwwLDc4LDAsMCwwLDE5MCwwLDAsMCw0OCwwLDAsMCw0OCwwLDAsMCw0MCwwLDAsMCw4LDAsMCww
LDM4LDAsMCwwLDQ4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIxNiwzMywwLDAsNTgs
MCwwLDAsNjQsMCwwLDAsNDgsMCwwLDAsNDIsMCwwLDAsODQsMCwwLDAsMTIsMCwwLDAsNTQsMCww
LDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMzIsMzMsMCwwLDI0NiwwLDAsMCwy
LDAsMCwwLDQ4LDAsMCwwLDI0LDAsMCwwLDMwLDAsMCwwLDY0LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDgsMzQsMCwwLDQ2LDAsMCwwLDIwOCwwLDAsMCw0OCwwLDAsMCwzNiwwLDAsMCwx
NCwwLDAsMCwxNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw0MCwzNCwwLDAsMjEwLDAs
MCwwLDExMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw0OCwzNCwwLDAsMjgsMCwwLDAs
MTM4LDAsMCwwLDM4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMzQs
MCwwLDYsMCwwLDAsMTc0LDAsMCwwLDQ4LDAsMCwwLDgsMCwwLDAsNiwwLDAsMCwxMiwwLDAsMCw0
LDAsMCwwLDEwLDAsMCwwLDQsMCwwLDAsMiwwLDAsMCwxMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDk2LDM0LDAsMCw5OCwwLDAsMCwxOCwwLDAsMCw0OCwwLDAsMCwyMCww
LDAsMCwyNCwwLDAsMCwzNCwwLDAsMCwyMiwwLDAsMCwyMiwwLDAsMCw4LDAsMCwwLDYsMCwwLDAs
MTgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjgsMzQsMCwwLDQwLDAs
MCwwLDI0LDAsMCwwLDQ4LDAsMCwwLDQ4LDAsMCwwLDQ2LDAsMCwwLDM4LDAsMCwwLDQwLDAsMCww
LDMwLDAsMCwwLDQ0LDAsMCwwLDM2LDAsMCwwLDU0LDAsMCwwLDUyLDAsMCwwLDUwLDAsMCwwLDI0
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2MCwzNCwwLDAsNTIsMCwwLDAsNCwwLDAs
MCw0OCwwLDAsMCw3NiwwLDAsMCw3MCwwLDAsMCw2NCwwLDAsMCw2NiwwLDAsMCw1OCwwLDAsMCw2
OCwwLDAsMCw2MiwwLDAsMCwyOCwwLDAsMCw3NCwwLDAsMCw3MiwwLDAsMCw0MiwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwxOTIsMzQsMCwwLDc0LDAsMCwwLDkyLDAsMCwwLDQ4LDAsMCww
LDE2LDAsMCwwLDEyLDAsMCwwLDEyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIwOCwz
NCwwLDAsMjYsMCwwLDAsMTc2LDAsMCwwLDQ4LDAsMCwwLDIyLDAsMCwwLDE0LDAsMCwwLDIsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjI0LDM0LDAsMCwyMjgsMCwwLDAsMTMwLDAsMCww
LDQ4LDAsMCwwLDE0LDAsMCwwLDQsMCwwLDAsMjAsMCwwLDAsMTYsMCwwLDAsNjIsMCwwLDAsNCww
LDAsMCw3NiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM1LDAsMCwxODAsMCwwLDAs
NjAsMCwwLDAsNDgsMCwwLDAsMiwwLDAsMCw4LDAsMCwwLDgsMCwwLDAsMTA2LDAsMCwwLDk2LDAs
MCwwLDE4LDAsMCwwLDk0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDMyLDM1LDAsMCwx
ODAsMCwwLDAsMTMyLDAsMCwwLDQ4LDAsMCwwLDE2LDAsMCwwLDYsMCwwLDAsMiwwLDAsMCwxMjYs
MCwwLDAsNDYsMCwwLDAsMTIsMCwwLDAsMTgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
NjQsMzUsMCwwLDE4MCwwLDAsMCwxNTIsMCwwLDAsNDgsMCwwLDAsMTAsMCwwLDAsMTIsMCwwLDAs
MjQsMCwwLDAsMzQsMCwwLDAsNzQsMCwwLDAsNiwwLDAsMCw2NiwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCw5NiwzNSwwLDAsMTgwLDAsMCwwLDM0LDAsMCwwLDQ4LDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTEyLDM1LDAsMCw1NiwwLDAsMCwxNTYsMCwwLDAsNDgs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjgsMzUsMCwwLDE4MCwwLDAs
MCw4MCwwLDAsMCw0OCwwLDAsMCwyMCwwLDAsMCwyLDAsMCwwLDQsMCwwLDAsMTAsMCwwLDAsMTYs
MCwwLDAsMjgsMCwwLDAsMjIsMCwwLDAsNiwwLDAsMCw2LDAsMCwwLDgsMCwwLDAsMTAsMCwwLDAs
MTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjAsMzUsMCwwLDQsMSww
LDAsMzYsMCwwLDAsNDgsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDE4LDAsMCwwLDM0LDAsMCwwLDgs
MCwwLDAsNiwwLDAsMCwyNiwwLDAsMCwxNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDIwOCwzNSwwLDAsNjYsMCwwLDAsMjE4LDAsMCwwLDc4LDAsMCwwLDIsMCwwLDAsMTQs
MCwwLDAsMzIsMCwwLDAsNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIy
NCwzNSwwLDAsMTgwLDAsMCwwLDg2LDAsMCwwLDQ4LDAsMCwwLDEwLDAsMCwwLDEyLDAsMCwwLDI0
LDAsMCwwLDM0LDAsMCwwLDc0LDAsMCwwLDYsMCwwLDAsNjYsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMjQwLDM1LDAsMCwxODAsMCwwLDAsMjM4LDAsMCwwLDQ4LDAsMCwwLDEwLDAsMCww
LDEyLDAsMCwwLDI0LDAsMCwwLDM0LDAsMCwwLDc0LDAsMCwwLDYsMCwwLDAsNjYsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNiwwLDAsMTI2LDAsMCwwLDIzNCwwLDAsMCwxNiwwLDAs
MCwyMiwwLDAsMCwxNiwwLDAsMCwxMCwwLDAsMCw4OCwwLDAsMCwxMDAsMCwwLDAsMzAsMCwwLDAs
MjgsMCwwLDAsMjYsMCwwLDAsMjgsMCwwLDAsNDAsMCwwLDAsMjAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsOCwzNiwwLDAsMTAsMCwwLDAsMTE4LDAsMCwwLDU4LDAsMCwwLDM4LDAsMCww
LDI4LDAsMCwwLDYsMCwwLDAsNTAsMCwwLDAsODYsMCwwLDAsMTgsMCwwLDAsNiwwLDAsMCwxMCww
LDAsMCwyNCwwLDAsMCwxNiwwLDAsMCwxMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwx
NiwzNiwwLDAsMTAwLDAsMCwwLDE5NCwwLDAsMCwyLDAsMCwwLDIsMCwwLDAsMTQsMCwwLDAsMzIs
MCwwLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw0LDAsMCwwLDAsMCwwLDAsNTYs
MzYsMCwwLDQ0LDAsMCwwLDIwNiwwLDAsMCwyNTIsMjU1LDI1NSwyNTUsMjUyLDI1NSwyNTUsMjU1
LDU2LDM2LDAsMCwxNDYsMCwwLDAsMTI0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw0LDAsMCwwLDAs
MCwwLDAsODAsMzYsMCwwLDIxMiwwLDAsMCwyMzYsMCwwLDAsMjUyLDI1NSwyNTUsMjU1LDI1Miwy
NTUsMjU1LDI1NSw4MCwzNiwwLDAsMTA2LDAsMCwwLDIwMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
OCwwLDAsMCwwLDAsMCwwLDEwNCwzNiwwLDAsODgsMCwwLDAsOCwxLDAsMCwyNDgsMjU1LDI1NSwy
NTUsMjQ4LDI1NSwyNTUsMjU1LDEwNCwzNiwwLDAsMTgyLDAsMCwwLDIzMiwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsOCwwLDAsMCwwLDAsMCwwLDEyOCwzNiwwLDAsMTA0LDAsMCwwLDIwNCwwLDAsMCwy
NDgsMjU1LDI1NSwyNTUsMjQ4LDI1NSwyNTUsMjU1LDEyOCwzNiwwLDAsMTM2LDAsMCwwLDUwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE1MiwzNiwwLDAsMjAyLDAsMCwwLDE4NCwwLDAs
MCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE5MiwzNiwwLDAsMjQ4
LDAsMCwwLDIyNiwwLDAsMCw0LDAsMCwwLDIyLDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDU4LDAs
MCwwLDEwMCwwLDAsMCwzMCwwLDAsMCwyOCwwLDAsMCwyNiwwLDAsMCwyOCwwLDAsMCw0MCwwLDAs
MCwyNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMDgsMzYsMCwwLDE1NCwwLDAsMCwx
NzgsMCwwLDAsMzQsMCwwLDAsMzgsMCwwLDAsMjgsMCwwLDAsNiwwLDAsMCw5MCwwLDAsMCw4Niww
LDAsMCwxOCwwLDAsMCw2LDAsMCwwLDEwLDAsMCwwLDI0LDAsMCwwLDE2LDAsMCwwLDE0LDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzcsMCwwLDIyMCwwLDAsMCwxNDQsMCwwLDAsNDgs
MCwwLDAsNjgsMCwwLDAsMTE4LDAsMCwwLDQwLDAsMCwwLDgwLDAsMCwwLDYsMCwwLDAsMjgsMCww
LDAsNTIsMCwwLDAsMjAsMCwwLDAsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzIs
MzcsMCwwLDEwMiwwLDAsMCw1NCwwLDAsMCw0OCwwLDAsMCwxMTIsMCwwLDAsNCwwLDAsMCw2Niww
LDAsMCw3NCwwLDAsMCw3NiwwLDAsMCwyMiwwLDAsMCwxMTQsMCwwLDAsNTAsMCwwLDAsMTAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMzcsMCwwLDIyNCwwLDAsMCwxMTQsMCwwLDAs
NDgsMCwwLDAsMTQsMCwwLDAsNjAsMCwwLDAsNDYsMCwwLDAsNDIsMCwwLDAsNzgsMCwwLDAsNTIs
MCwwLDAsOTIsMCwwLDAsNTYsMCwwLDAsMzIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
OTYsMzcsMCwwLDc2LDAsMCwwLDE3MiwwLDAsMCw0OCwwLDAsMCwxMDIsMCwwLDAsMTA4LDAsMCww
LDI2LDAsMCwwLDcyLDAsMCwwLDI0LDAsMCwwLDE4LDAsMCwwLDgwLDAsMCwwLDcwLDAsMCwwLDY4
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE1MiwzNywwLDAsOTAsMCwwLDAsNjgsMCww
LDAsNjIsMCwwLDAsMjIsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsODgsMCwwLDAsMTAwLDAsMCww
LDMwLDAsMCwwLDcyLDAsMCwwLDgyLDAsMCwwLDEyLDAsMCwwLDQwLDAsMCwwLDIwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2OCwzNywwLDAsMTQsMCwwLDAsMjE0LDAsMCwwLDYwLDAs
MCwwLDM4LDAsMCwwLDI4LDAsMCwwLDYsMCwwLDAsNTAsMCwwLDAsODYsMCwwLDAsMTgsMCwwLDAs
NTYsMCwwLDAsMjQsMCwwLDAsNCwwLDAsMCwxNiwwLDAsMCwxMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwxODQsMzcsMCwwLDI1MCwwLDAsMCwxOTgsMCwwLDAsNjIsMCwwLDAsMTUwLDAs
MCwwLDgsMCwwLDAsMiwwLDAsMCw2LDAsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgzLDEx
Niw1NywxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDAsMCwwLDAsODMsMTE2LDU3
LDEwMSwxMjAsOTksMTAxLDExMiwxMTYsMTA1LDExMSwxMTAsMCwwLDAsMCw4MywxMTYsNTcsOTgs
OTcsMTAwLDk1LDk3LDEwOCwxMDgsMTExLDk5LDAsMCwwLDAsODMsMTE2LDU2LDk4LDk3LDEwMCw5
NSw5OSw5NywxMTUsMTE2LDAsMCwwLDAsMCw4MywxMTYsNDksNTEsMTE0LDExNywxMTAsMTE2LDEw
NSwxMDksMTAxLDk1LDEwMSwxMTQsMTE0LDExMSwxMTQsMCwwLDAsMCwwLDAsMCw4MywxMTYsNDks
NTAsMTA4LDEwMSwxMTAsMTAzLDExNiwxMDQsOTUsMTAxLDExNCwxMTQsMTExLDExNCwwLDAsMCww
LDAsMCwwLDAsODMsMTE2LDQ5LDQ5LDEwOCwxMTEsMTAzLDEwNSw5OSw5NSwxMDEsMTE0LDExNCwx
MTEsMTE0LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDExNiwxMDUsMTA5LDEwMSw5NSw5OCw5
NywxMTUsMTAxLDY5LDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMDksMTEx
LDExMCwxMDEsMTIxLDk1LDExMiwxMTcsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMTEsMTE1
LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYs
MTExLDExNCw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3
LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNTcsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMTIsMTE3LDExNiw3Myw5OSw3OCw4
Myw5NSw0OSw1NywxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwx
MTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcs
MTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksNjksNjksMCww
LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTAzLDEw
MSwxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4
LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDExOSw3OCw4Myw5
NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5
LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMDksMTExLDEx
MCwxMDEsMTIxLDk1LDEwMywxMDEsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2
LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEs
MTE0LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUs
MTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUs
NDksNTcsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMDUsMTExLDExNSw3MywxMTksNzgsODMsOTUsNDks
NDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2
OSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5OCw5NywxMTUsMTA1
LDk5LDk1LDEwNSwxMTEsMTE1LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUs
MTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5NSw5NSwxMTAsMTE3LDEwOSw5NSwxMTIsMTE3LDExNiw3
MywxMTksNjksNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDk1LDk1LDExMCwxMTcs
MTA5LDk1LDExMiwxMTcsMTE2LDczLDk5LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw1Nyw5NSw5NSwxMTAsMTE3LDEwOSw5NSwxMDMsMTAxLDExNiw3MywxMTksNjksNjksMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDk1LDk1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2
LDczLDk5LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMTYsMTA1LDEwOSwx
MDEsOTUsMTEyLDExNywxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwx
MDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDcz
LDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwx
MTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDU2LDExNiwxMDUsMTA5LDEwMSw5NSwxMTIsMTE3LDExNiw3Myw5OSw3OCw4Myw5NSw0OSw1Nywx
MTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5
NywxMTYsMTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwx
MTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksNjksNjksMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNTYsMTE2LDEwNSwxMDksMTAxLDk1LDEwMywxMDEsMTE2LDczLDExOSw3
OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEw
NSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0
LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2
OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMTYsMTA1LDEwOSwxMDEsOTUsMTAz
LDEwMSwxMTYsNzMsOTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDks
OTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMs
OTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5
LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDExMCwxMTcs
MTA5LDExMiwxMTcsMTEwLDk5LDExNiw3MywxMTksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNTYsMTEwLDExNywxMDksMTEyLDExNywxMTAsOTksMTE2LDczLDk5LDY5LDY5LDAs
MCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAx
LDExNSw3MywxMTksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTA5LDEw
MSwxMTUsMTE1LDk3LDEwMywxMDEsMTE1LDczLDk5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUx
LDk1LDk1LDQ5LDU2LDEwNSwxMTEsMTE1LDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCwwLDAs
MCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTA1LDExMSwxMTUsOTUsOTgsOTcsMTE1LDEwMSw1
NSwxMDIsOTcsMTA1LDEwOCwxMTcsMTE0LDEwMSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1
MSw5NSw5NSw0OSw1NSwxMTAsMTE3LDEwOSw5NSwxMTIsMTE3LDExNiw3MywxMTksNzgsODMsOTUs
NDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEw
MSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQs
OTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAs
MCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSwxMTAsMTE3LDEwOSw5NSwxMTIsMTE3LDExNiw3
Myw5OSw3OCw4Myw5NSw0OSw1NywxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAy
LDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5
OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjks
NjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSwxMTAsMTE3LDEwOSw5NSwx
MDMsMTAxLDExNiw3MywxMTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYsMTE0LDEwMSw5Nywx
MDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4
LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Mywx
MTksNjksNjksNjksNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSwx
MTAsMTE3LDEwOSw5NSwxMDMsMTAxLDExNiw3Myw5OSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDEx
NiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTEx
LDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1
LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5
NSw5NSw0OSw1NSw5OSwxMTEsMTA4LDEwOCw5NywxMTYsMTAxLDczLDExOSw2OSw2OSwwLDAsMCww
LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDk5LDExMSwxMDgsMTA4LDk3LDExNiwxMDEsNzMs
OTksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSw5OSwxMTEsMTAwLDEw
MSw5OSwxMTgsMTE2LDczLDExOSw5OSw0OSw0OCw5NSwxMDksOTgsMTE1LDExNiw5NywxMTYsMTAx
LDk1LDExNiw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU1LDk5
LDExMSwxMDAsMTAxLDk5LDExOCwxMTYsNzMsOTksOTksNDksNDgsOTUsMTA5LDk4LDExNSwxMTYs
OTcsMTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5
NSw0OSw1NSw5OSwxMTEsMTAwLDEwMSw5OSwxMTgsMTE2LDczLDY4LDExNSw5OSw0OSw0OCw5NSwx
MDksOTgsMTE1LDExNiw5NywxMTYsMTAxLDk1LDExNiw2OSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgz
LDExNiw1MSw5NSw5NSw0OSw1NSw5OSwxMTEsMTAwLDEwMSw5OSwxMTgsMTE2LDczLDY4LDEwNSw5
OSw0OSw0OCw5NSwxMDksOTgsMTE1LDExNiw5NywxMTYsMTAxLDk1LDExNiw2OSw2OSwwLDAsMCww
LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NCwxMDgsMTExLDk5LDk3LDEwOCwxMDEsNTMs
MTAyLDk3LDk5LDEwMSwxMTYsNjksMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU0LDEwOCwx
MTEsOTksOTcsMTA4LDEwMSw1Myw5NSw5NSwxMDUsMTA5LDExMiw2OSwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNTMsOTksMTE2LDEyMSwxMTIsMTAxLDczLDExOSw2OSw2OSwwLDAsMCwwLDAs
MCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Myw5OSwxMTYsMTIxLDExMiwxMDEsNzMsOTksNjks
NjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTAsNDgsOTUsOTUsMTE2LDEw
NSwxMDksMTAxLDk1LDEwMywxMDEsMTE2LDk1LDk5LDk1LDExNSwxMTYsMTExLDExNCw5NywxMDMs
MTAxLDczLDExOSw2OSw2OSwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1MCw0
OCw5NSw5NSwxMTYsMTA1LDEwOSwxMDEsOTUsMTAzLDEwMSwxMTYsOTUsOTksOTUsMTE1LDExNiwx
MTEsMTE0LDk3LDEwMywxMDEsNzMsOTksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNDksNTcsOTUsOTUsMTA1LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk1LDk5
LDk3LDExNiwxMDEsMTAzLDExMSwxMTQsMTIxLDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw0OSw1NSw5NSw5NSwxMTksMTA1LDEwMCwxMDEsMTEwLDk1LDEwMiwxMTQsMTExLDEwOSw5NSwx
MTcsMTE2LDEwMiw1Niw3Myw3NiwxMDYsNTEsNTAsNjksNjksNjksMCwwLDAsMCwwLDAsNzgsODMs
MTE2LDUxLDk1LDk1LDQ5LDQ5LDU0LDk1LDk1LDExMCw5NywxMTQsMTE0LDExMSwxMTksOTUsMTE2
LDExMSw5NSwxMTcsMTE2LDEwMiw1Niw3Myw3NiwxMDYsNTEsNTAsNjksNjksNjksMCwwLDAsMCww
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTMsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMTUs
MTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEw
NCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksMCww
LDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1Myw5OCw5NywxMTUsMTA1LDk5
LDk1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw3Myw5OSw3OCw4Myw5NSw0OSw0
OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjks
NjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MiwxMDEsMTE0LDEx
NCwxMTEsMTE0LDk1LDk5LDk3LDExNiwxMDEsMTAzLDExMSwxMTQsMTIxLDY5LDAsMCwwLDAsMCww
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTIsOTUsOTUsMTE1LDEwNCw5NywxMTQsMTAx
LDEwMCw5NSw5OSwxMTEsMTE3LDExMCwxMTYsNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1
MSw5NSw5NSw0OSw0OSw1Miw5NSw5NSwxMTAsMTE3LDEwOSw5NSwxMTIsMTE3LDExNiw5NSw5OCw5
NywxMTUsMTAxLDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTIs
OTUsOTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAs
MCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUxLDEwOSwxMDEsMTE1LDExNSw5
NywxMDMsMTAxLDExNSw5NSw5OCw5NywxMTUsMTAxLDY5LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDQ5LDUxLDk4LDk3LDExNSwxMDUsOTksOTUsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksNzMs
MTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDEx
NSw3MywxMTksNjksNjksNjksNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSw5OCw5
NywxMTUsMTA1LDk5LDk1LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDczLDk5LDc4LDgzLDk1
LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2
OSw2OSw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUxLDk4LDk3LDExNSwxMDUsOTks
OTUsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEw
NCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksMCww
LDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSw5OCw5NywxMTUsMTA1LDk5LDk1LDEwNSwxMTUs
MTE2LDExNCwxMDEsOTcsMTA5LDczLDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUs
MTE2LDExNCw5NywxMDUsMTE2LDExNSw3Myw5OSw2OSw2OSw2OSw2OSwwLDAsNzgsODMsMTE2LDUx
LDk1LDk1LDQ5LDQ5LDUwLDExNSwxMjEsMTE1LDExNiwxMDEsMTA5LDk1LDEwMSwxMTQsMTE0LDEx
MSwxMTQsNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MCw5OSwxMTEsMTAwLDEwMSw5
OSwxMTgsMTE2LDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0
OSw1MCw5NSw5NSwxMDAsMTExLDk1LDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDY5LDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTE1LDExNiwxMDAsMTExLDExNywxMTYs
OTgsMTE3LDEwMiw3MywxMTksNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5
NSw0OSw0OSw0OSw5NSw5NSwxMTUsMTE2LDEwMCwxMTEsMTE3LDExNiw5OCwxMTcsMTAyLDczLDk5
LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUs
MTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMTIsMTE3LDExNiw3MywxMTksNjksNjksMCwwLDAsMCww
LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OSw5NSw5NSwxMDksMTExLDExMCwxMDEs
MTIxLDk1LDExMiwxMTcsMTE2LDczLDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDEx
Niw3MywxMTksNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0
OSw5NSw5NSwxMDksMTExLDExMCwxMDEsMTIxLDk1LDEwMywxMDEsMTE2LDczLDk5LDY5LDY5LDAs
MCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsMTA5LDExMSwxMTAsMTAx
LDEyMSwxMTIsMTE3LDExMCw5OSwxMTYsNzMsMTE5LDc2LDk4LDQ5LDY5LDY5LDY5LDAsMCwwLDAs
MCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsMTA5LDExMSwxMTAsMTAxLDEyMSwxMTIsMTE3
LDExMCw5OSwxMTYsNzMsMTE5LDc2LDk4LDQ4LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNDksNDgsMTA5LDExMSwxMTAsMTAxLDEyMSwxMTIsMTE3LDExMCw5OSwxMTYs
NzMsOTksNzYsOTgsNDksNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0
OSw0OCwxMDksMTExLDExMCwxMDEsMTIxLDExMiwxMTcsMTEwLDk5LDExNiw3Myw5OSw3Niw5OCw0
OCw2OSw2OSw2OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEs
MTEwLDEwMSwxMjEsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5
NSw0OSw0OSw0OCw5OSwxMTYsMTIxLDExMiwxMDEsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCww
LDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0OCw5NSw5NSwxMTYsMTA1LDEwOSwxMDEsOTUsMTEy
LDExNywxMTYsNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsOTUsOTUsMTE1
LDExNiwxMDAsMTA1LDExMCw5OCwxMTcsMTAyLDczLDExOSw2OSw2OSwwLDc4LDgzLDExNiw1MSw5
NSw5NSw0OSw0OSw0OCw5NSw5NSwxMTUsMTE2LDEwMCwxMDUsMTEwLDk4LDExNywxMDIsNzMsOTks
NjksNjksMCw3OCw0OSw0OCw5NSw5NSw5OSwxMjAsMTIwLDk3LDk4LDEwNSwxMTgsNDksNTAsNDks
OTUsOTUsMTE4LDEwOSwxMDUsOTUsOTksMTA4LDk3LDExNSwxMTUsOTUsMTE2LDEyMSwxMTIsMTAx
LDk1LDEwNSwxMTAsMTAyLDExMSw2OSwwLDAsMCw3OCw0OSw0OCw5NSw5NSw5OSwxMjAsMTIwLDk3
LDk4LDEwNSwxMTgsNDksNTAsNDgsOTUsOTUsMTE1LDEwNSw5NSw5OSwxMDgsOTcsMTE1LDExNSw5
NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDY5LDAsMCwwLDAsNzgsNDksNDgs
OTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5LDQ5LDU1LDk1LDk1LDk5LDEwOCw5Nywx
MTUsMTE1LDk1LDExNiwxMjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEsNjksMCwwLDAsMCww
LDAsMCw3OCw0OSw0OCw5NSw5NSw5OSwxMjAsMTIwLDk3LDk4LDEwNSwxMTgsNDksNDksNTQsOTUs
OTUsMTE1LDEwNCwxMDUsMTA5LDk1LDExNiwxMjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEs
NjksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDAsMjAsMCwwLDAsMCwwLDAsNTYsMjAsMCwwLDAs
MCwwLDAsNzIsMjAsMCwwLDIxNiwzMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDg4LDIwLDAsMCwyMTYs
MzEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMDQsMjAsMCwwLDIxNiwzMSwwLDAsMCwwLDAsMCwwLDAs
MCwwLDEyOCwyMCwwLDAsMzIsMzIsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMjAsMCwwLDIxNiwz
MSwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2OCwyMCwwLDAsMCwyMCwwLDAsMTkyLDIwLDAsMCwwLDAs
MCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMjI0LDM2LDAsMCwwLDAsMCwwLDAsMjAsMCww
LDgsMjEsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwyMzIsMzYsMCwwLDAs
MCwwLDAsMCwyMCwwLDAsODAsMjEsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAs
MCwyNDAsMzYsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTUyLDIxLDAsMCwwLDAsMCwwLDIsMCwwLDAs
OTYsMzUsMCwwLDIsMCwwLDAsMjQ4LDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMjI0LDIxLDAsMCw0
MCwzNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDE2LDIyLDAsMCw0MCwzNCwwLDAsMCwwLDAsMCwwLDIw
LDAsMCw2NCwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDMyLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCww
LDg4LDIyLDAsMCwwLDAsMCwwLDEsMCwwLDAsMzIsMzYsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTEy
LDIyLDAsMCwwLDAsMCwwLDEsMCwwLDAsNDAsMzYsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTM2LDIy
LDAsMCwwLDAsMCwwLDEsMCwwLDAsNDAsMzYsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTYwLDIyLDAs
MCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTQ0LDM3LDAsMCwwLDgsMCwwLDAs
MjAsMCwwLDIzMiwyMiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE0NCwz
NywwLDAsMCw4LDAsMCwwLDIwLDAsMCw0OCwyMywwLDAsMCwwLDAsMCwzLDAsMCwwLDk2LDM1LDAs
MCwyLDAsMCwwLDQ4LDMyLDAsMCwyLDAsMCwwLDE5MiwzNSwwLDAsMCw4LDAsMCwwLDIwLDAsMCwx
MjAsMjMsMCwwLDAsMCwwLDAsMywwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCw0OCwzMiwwLDAsMiww
LDAsMCwyMDAsMzUsMCwwLDAsOCwwLDAsMCwwLDAsMCwxOTIsMjMsMCwwLDk2LDM1LDAsMCwwLDAs
MCwwLDAsMCwwLDAsMjE2LDIzLDAsMCw5NiwzNSwwLDAsMCwwLDAsMCwwLDIwLDAsMCwyNDAsMjMs
MCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCw0OCwzNiwwLDAsMiwwLDAsMCww
LDIwLDAsMCw4LDI0LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgsMzYs
MCwwLDIsMCwwLDAsMCwwLDAsMCwzMiwyNCwwLDAsMCwwLDAsMCw1NiwyNCwwLDAsMTUyLDM2LDAs
MCwwLDAsMCwwLDAsMjAsMCwwLDg4LDI0LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIs
MCwwLDAsMjE2LDMyLDAsMCwwLDAsMCwwLDAsMjAsMCwwLDE2MCwyNCwwLDAsMCwwLDAsMCwyLDAs
MCwwLDk2LDM1LDAsMCwyLDAsMCwwLDI0MCwzMiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwyMzIsMjQs
MCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCw4LDMzLDAsMCwwLDAsMCwwLDAs
MjAsMCwwLDQ4LDI1LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMzIsMzMs
MCwwLDAsMCwwLDAsMCwwLDAsMCwxMjAsMjUsMCwwLDk2LDM1LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MTQ0LDI1LDAsMCw5NiwzNSwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxNjgsMjUsMCwwLDAsMCwwLDAs
MiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMjA4
LDI1LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTY4LDM2LDAsMCwyLDAs
MCwwLDAsMjAsMCwwLDI0OCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCww
LDE2OCwzNiwwLDAsMiwwLDAsMCwwLDIwLDAsMCwzMiwyNiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2
LDM1LDAsMCwyLDAsMCwwLDE2OCwzNiwwLDAsMiwwLDAsMCwwLDAsMCwwLDcyLDI2LDAsMCwyNCwz
NiwwLDAsMCwwLDAsMCwwLDAsMCwwLDk2LDI2LDAsMCw5NiwzNSwwLDAsMCwwLDAsMCwwLDIwLDAs
MCwxMjAsMjYsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxMzYsMzcsMCww
LDIsMCwwLDAsMCwyMCwwLDAsMTQ0LDI2LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIs
MCwwLDAsMTM2LDM3LDAsMCwyLDAsMCwwLDAsMCwwLDAsMTY4LDI2LDAsMCwwLDAsMCwwLDIwOCwy
NiwwLDAsMCwwLDAsMCwyNDgsMjYsMCwwLDE3NiwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0LDI3
LDAsMCw2NCwzNSwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDI3LDAsMCw2NCwzNSwwLDAsMCwwLDAs
MCwwLDAsMCwwLDEwNCwyNywwLDAsMCwwLDAsMCwxNjAsMjcsMCwwLDAsMCwwLDAsMjE2LDI3LDAs
MCwwLDAsMCwwLDI0OCwyNywwLDAsMCwwLDAsMCwyNCwyOCwwLDAsMCwwLDAsMCw1NiwyOCwwLDAs
MCwwLDAsMCw4OCwyOCwwLDAsMCwyMCwwLDAsMTEyLDI4LDAsMCwwLDAsMCwwLDEsMCwwLDAsMTg0
LDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMjAsMCwwLDE2MCwyOCwwLDAsMCwwLDAsMCwxLDAsMCww
LDIwMCwzMiwwLDAsMywyNDQsMjU1LDI1NSwwLDIwLDAsMCwyMDgsMjgsMCwwLDAsMCwwLDAsMSww
LDAsMCwxODQsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwyMCwwLDAsMCwyOSwwLDAsMCwwLDAsMCwx
LDAsMCwwLDIwMCwzMiwwLDAsMywyNDQsMjU1LDI1NSwwLDAsMCwwLDQ4LDI5LDAsMCwwLDMyLDAs
MCwwLDAsMCwwLDAsMCwwLDAsNzIsMjksMCwwLDAsMCwwLDAsOTYsMjksMCwwLDE2LDM2LDAsMCww
LDAsMCwwLDAsMCwwLDAsMTIwLDI5LDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDI5
LDAsMCw4LDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTg0LDI5LDAsMCwwLDAsMCwwLDIxNiwyOSww
LDAsMCwwLDAsMCwyNDgsMjksMCwwLDAsMCwwLDAsMjQsMzAsMCwwLDAsMjAsMCwwLDU2LDMwLDAs
MCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTI4LDM3LDAsMCwyLDAsMCwwLDAs
MjAsMCwwLDg4LDMwLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTI4LDM3
LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDEyMCwzMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAs
MCwyLDAsMCwwLDEyOCwzNywwLDAsMiwwLDAsMCwwLDIwLDAsMCwxNTIsMzAsMCwwLDAsMCwwLDAs
MiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxMjgsMzcsMCwwLDIsMCwwLDAsMCwwLDAsMCwxODQs
MzAsMCwwLDAsMCwwLDAsMjA4LDMwLDAsMCwwLDAsMCwwLDIzMiwzMCwwLDAsMCwwLDAsMCwwLDMx
LDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQsMzEsMCwwLDgsMzYsMCwwLDAsMCwwLDAs
MCwwLDAsMCw0OCwzMSwwLDAsMjE2LDM3LDAsMCwwLDAsMCwwLDAsMCwwLDAsODgsMzEsMCwwLDIx
NiwzNywwLDAsMCwwLDAsMCwwLDAsMCwwLDEyOCwzMSwwLDAsMjMyLDM3LDAsMCwwLDAsMCwwLDAs
MCwwLDAsMTY4LDMxLDAsMCwyMDgsMzEsMCwwLDAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1LDAsMCww
LDAsMjU1LDI1NSwyNTUsMjU1LDAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1LDAsMCwwLDAsNDgsNDks
NTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsOTcsOTgsOTksMTAwLDEwMSwxMDIsNjUsNjYsNjcsNjgs
NjksNzAsMTIwLDg4LDQzLDQ1LDExMiw4MCwxMDUsNzMsMTEwLDc4LDAsMCwwLDAsMCwwLDAsMF0s
ICJpOCIsIEFMTE9DX05PTkUsIFJ1bnRpbWUuR0xPQkFMX0JBU0UpCi12YXIgdGVtcERvdWJsZVB0
ciA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkoYWxsb2NhdGUoMTIsICJpOCIsIEFMTE9DX1NUQVRJQyks
IDgpOwotYXNzZXJ0KHRlbXBEb3VibGVQdHIgJSA4ID09IDApOwotZnVuY3Rpb24gY29weVRlbXBG
bG9hdChwdHIpIHsgLy8gZnVuY3Rpb25zLCBiZWNhdXNlIGlubGluaW5nIHRoaXMgY29kZSBpbmNy
ZWFzZXMgY29kZSBzaXplIHRvbyBtdWNoCi0gIEhFQVA4W3RlbXBEb3VibGVQdHJdID0gSEVBUDhb
cHRyXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cisxXSA9IEhFQVA4W3B0cisxXTsKLSAgSEVBUDhb
dGVtcERvdWJsZVB0cisyXSA9IEhFQVA4W3B0cisyXTsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cisz
XSA9IEhFQVA4W3B0ciszXTsKLX0KLWZ1bmN0aW9uIGNvcHlUZW1wRG91YmxlKHB0cikgewotICBI
RUFQOFt0ZW1wRG91YmxlUHRyXSA9IEhFQVA4W3B0cl07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIr
MV0gPSBIRUFQOFtwdHIrMV07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrMl0gPSBIRUFQOFtwdHIr
Ml07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrM10gPSBIRUFQOFtwdHIrM107Ci0gIEhFQVA4W3Rl
bXBEb3VibGVQdHIrNF0gPSBIRUFQOFtwdHIrNF07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrNV0g
PSBIRUFQOFtwdHIrNV07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrNl0gPSBIRUFQOFtwdHIrNl07
Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrN10gPSBIRUFQOFtwdHIrN107Ci19Ci0gIGZ1bmN0aW9u
IF9hdGV4aXQoZnVuYywgYXJnKSB7Ci0gICAgICBfX0FURVhJVF9fLnVuc2hpZnQoeyBmdW5jOiBm
dW5jLCBhcmc6IGFyZyB9KTsKLSAgICB9dmFyIF9fX2N4YV9hdGV4aXQ9X2F0ZXhpdDsKLSAgZnVu
Y3Rpb24gX2xsdm1fdW11bF93aXRoX292ZXJmbG93X2kzMih4LCB5KSB7Ci0gICAgICB4ID0geD4+
PjA7Ci0gICAgICB5ID0geT4+PjA7Ci0gICAgICByZXR1cm4gKChhc21bInNldFRlbXBSZXQwIl0o
eCp5ID4gNDI5NDk2NzI5NSksKHgqeSk+Pj4wKXwwKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2d4
eF9wZXJzb25hbGl0eV92MCgpIHsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fZXhpdChzdGF0dXMpIHsK
LSAgICAgIC8vIHZvaWQgX2V4aXQoaW50IHN0YXR1cyk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5v
cGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9leGl0Lmh0bWwKLSAg
ICAgIE1vZHVsZS5wcmludCgnZXhpdCgnICsgc3RhdHVzICsgJykgY2FsbGVkJyk7Ci0gICAgICBN
b2R1bGVbJ2V4aXQnXShzdGF0dXMpOwotICAgIH1mdW5jdGlvbiBfZXhpdChzdGF0dXMpIHsKLSAg
ICAgIF9fZXhpdChzdGF0dXMpOwotICAgIH1mdW5jdGlvbiBfX1pTdDl0ZXJtaW5hdGV2KCkgewot
ICAgICAgX2V4aXQoLTEyMzQpOwotICAgIH0KLSAgTW9kdWxlWyJfbWVtY3B5Il0gPSBfbWVtY3B5
O3ZhciBfbGx2bV9tZW1jcHlfcDBpOF9wMGk4X2kzMj1fbWVtY3B5OwotICB2YXIgX2xvZz1NYXRo
LmxvZzsKLSAgdmFyIF9mbG9vcj1NYXRoLmZsb29yOwotICB2YXIgY3Rsel9pOCA9IGFsbG9jYXRl
KFs4LDcsNiw2LDUsNSw1LDUsNCw0LDQsNCw0LDQsNCw0LDMsMywzLDMsMywzLDMsMywzLDMsMywz
LDMsMywzLDMsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIs
MiwyLDIsMiwyLDIsMiwyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
XSwgImk4IiwgQUxMT0NfU1RBVElDKTsgCi0gIE1vZHVsZVsiX2xsdm1fY3Rsel9pMzIiXSA9IF9s
bHZtX2N0bHpfaTMyOwotICBmdW5jdGlvbiBfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udigpIHsg
Ly8gc3RkOjp1bmNhdWdodF9leGNlcHRpb24oKQotICAgICAgcmV0dXJuICEhX19aU3QxOHVuY2F1
Z2h0X2V4Y2VwdGlvbnYudW5jYXVnaHRfZXhjZXB0aW9uOwotICAgIH1mdW5jdGlvbiBfX19jeGFf
YmVnaW5fY2F0Y2gocHRyKSB7Ci0gICAgICBfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udi51bmNh
dWdodF9leGNlcHRpb24tLTsKLSAgICAgIHJldHVybiBwdHI7Ci0gICAgfQotICBmdW5jdGlvbiBf
bGx2bV9laF9leGNlcHRpb24oKSB7Ci0gICAgICByZXR1cm4gSEVBUDMyWygoX2xsdm1fZWhfZXhj
ZXB0aW9uLmJ1Zik+PjIpXTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4YV9mcmVlX2V4Y2VwdGlv
bihwdHIpIHsKLSAgICAgIHRyeSB7Ci0gICAgICAgIHJldHVybiBfZnJlZShwdHIpOwotICAgICAg
fSBjYXRjaChlKSB7IC8vIFhYWCBGSVhNRQotICAgICAgfQotICAgIH1mdW5jdGlvbiBfX19jeGFf
ZW5kX2NhdGNoKCkgewotICAgICAgaWYgKF9fX2N4YV9lbmRfY2F0Y2gucmV0aHJvd24pIHsKLSAg
ICAgICAgX19fY3hhX2VuZF9jYXRjaC5yZXRocm93biA9IGZhbHNlOwotICAgICAgICByZXR1cm47
Ci0gICAgICB9Ci0gICAgICAvLyBDbGVhciBzdGF0ZSBmbGFnLgotICAgICAgYXNtWydzZXRUaHJl
dyddKDApOwotICAgICAgLy8gQ2xlYXIgdHlwZS4KLSAgICAgIEhFQVAzMlsoKChfbGx2bV9laF9l
eGNlcHRpb24uYnVmKSsoNCkpPj4yKV09MAotICAgICAgLy8gQ2FsbCBkZXN0cnVjdG9yIGlmIG9u
ZSBpcyByZWdpc3RlcmVkIHRoZW4gY2xlYXIgaXQuCi0gICAgICB2YXIgcHRyID0gSEVBUDMyWygo
X2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXTsKLSAgICAgIHZhciBkZXN0cnVjdG9yID0gSEVB
UDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg4KSk+PjIpXTsKLSAgICAgIGlmIChkZXN0
cnVjdG9yKSB7Ci0gICAgICAgIFJ1bnRpbWUuZHluQ2FsbCgndmknLCBkZXN0cnVjdG9yLCBbcHRy
XSk7Ci0gICAgICAgIEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoOCkpPj4yKV09
MAotICAgICAgfQotICAgICAgLy8gRnJlZSBwdHIgaWYgaXQgaXNuJ3QgbnVsbC4KLSAgICAgIGlm
IChwdHIpIHsKLSAgICAgICAgX19fY3hhX2ZyZWVfZXhjZXB0aW9uKHB0cik7Ci0gICAgICAgIEhF
QVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV09MAotICAgICAgfQotICAgIH1mdW5j
dGlvbiBfX19jeGFfcmV0aHJvdygpIHsKLSAgICAgIF9fX2N4YV9lbmRfY2F0Y2gucmV0aHJvd24g
PSB0cnVlOwotICAgICAgdGhyb3cgSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIp
XSArICIgLSBFeGNlcHRpb24gY2F0Y2hpbmcgaXMgZGlzYWJsZWQsIHRoaXMgZXhjZXB0aW9uIGNh
bm5vdCBiZSBjYXVnaHQuIENvbXBpbGUgd2l0aCAtcyBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElO
Rz0wIG9yIERJU0FCTEVfRVhDRVBUSU9OX0NBVENISU5HPTIgdG8gY2F0Y2guIjs7Ci0gICAgfQot
ICBNb2R1bGVbIl9tZW1tb3ZlIl0gPSBfbWVtbW92ZTt2YXIgX2xsdm1fbWVtbW92ZV9wMGk4X3Aw
aThfaTMyPV9tZW1tb3ZlOwotICBNb2R1bGVbIl9tZW1zZXQiXSA9IF9tZW1zZXQ7dmFyIF9sbHZt
X21lbXNldF9wMGk4X2k2ND1fbWVtc2V0OwotICBmdW5jdGlvbiBfbGx2bV9saWZldGltZV9zdGFy
dCgpIHt9Ci0gIGZ1bmN0aW9uIF9sbHZtX2xpZmV0aW1lX2VuZCgpIHt9Ci0gIGZ1bmN0aW9uIF9w
dGhyZWFkX211dGV4X2xvY2soKSB7fQotICBmdW5jdGlvbiBfcHRocmVhZF9tdXRleF91bmxvY2so
KSB7fQotICBmdW5jdGlvbiBfX19jeGFfZ3VhcmRfYWNxdWlyZSh2YXJpYWJsZSkgewotICAgICAg
aWYgKCFIRUFQOFsodmFyaWFibGUpXSkgeyAvLyBpZ25vcmUgU0FGRV9IRUFQIHN0dWZmIGJlY2F1
c2UgbGx2bSBtaXhlcyBpNjQgYW5kIGk4IGhlcmUKLSAgICAgICAgSEVBUDhbKHZhcmlhYmxlKV09
MTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0g
IGZ1bmN0aW9uIF9fX2N4YV9ndWFyZF9yZWxlYXNlKCkge30KLSAgZnVuY3Rpb24gX3B0aHJlYWRf
Y29uZF9icm9hZGNhc3QoKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9w
dGhyZWFkX2NvbmRfd2FpdCgpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAgZnVuY3Rpb24g
X19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbihzaXplKSB7Ci0gICAgICByZXR1cm4gX21hbGxvYyhz
aXplKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4YV9pc19udW1iZXJfdHlwZSh0eXBlKSB7Ci0g
ICAgICB2YXIgaXNOdW1iZXIgPSBmYWxzZTsKLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJ
aSkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0g
X19aVElqKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlw
ZSA9PSBfX1pUSWwpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlm
ICh0eXBlID09IF9fWlRJbSkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5
IHsgaWYgKHR5cGUgPT0gX19aVEl4KSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAg
ICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSXkpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30K
LSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJZikgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2go
ZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVElkKSBpc051bWJlciA9IHRydWUgfSBj
YXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWUpIGlzTnVtYmVyID0gdHJ1
ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJYykgaXNOdW1iZXIg
PSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVElhKSBpc051
bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWgp
IGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9f
WlRJcykgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUg
PT0gX19aVEl0KSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICByZXR1cm4gaXNO
dW1iZXI7Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV9kb2VzX2luaGVyaXQoZGVmaW5pdGVUeXBlLCBw
b3NzaWJpbGl0eVR5cGUsIHBvc3NpYmlsaXR5KSB7Ci0gICAgICBpZiAocG9zc2liaWxpdHkgPT0g
MCkgcmV0dXJuIGZhbHNlOwotICAgICAgaWYgKHBvc3NpYmlsaXR5VHlwZSA9PSAwIHx8IHBvc3Np
YmlsaXR5VHlwZSA9PSBkZWZpbml0ZVR5cGUpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
dmFyIHBvc3NpYmlsaXR5X3R5cGVfaW5mbzsKLSAgICAgIGlmIChfX19jeGFfaXNfbnVtYmVyX3R5
cGUocG9zc2liaWxpdHlUeXBlKSkgewotICAgICAgICBwb3NzaWJpbGl0eV90eXBlX2luZm8gPSBw
b3NzaWJpbGl0eVR5cGU7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB2YXIgcG9zc2liaWxpdHlf
dHlwZV9pbmZvQWRkciA9IEhFQVAzMlsoKHBvc3NpYmlsaXR5VHlwZSk+PjIpXSAtIDg7Ci0gICAg
ICAgIHBvc3NpYmlsaXR5X3R5cGVfaW5mbyA9IEhFQVAzMlsoKHBvc3NpYmlsaXR5X3R5cGVfaW5m
b0FkZHIpPj4yKV07Ci0gICAgICB9Ci0gICAgICBzd2l0Y2ggKHBvc3NpYmlsaXR5X3R5cGVfaW5m
bykgewotICAgICAgY2FzZSAwOiAvLyBwb3NzaWJpbGl0eSBpcyBhIHBvaW50ZXIKLSAgICAgICAg
Ly8gU2VlIGlmIGRlZmluaXRlIHR5cGUgaXMgYSBwb2ludGVyCi0gICAgICAgIHZhciBkZWZpbml0
ZV90eXBlX2luZm9BZGRyID0gSEVBUDMyWygoZGVmaW5pdGVUeXBlKT4+MildIC0gODsKLSAgICAg
ICAgdmFyIGRlZmluaXRlX3R5cGVfaW5mbyA9IEhFQVAzMlsoKGRlZmluaXRlX3R5cGVfaW5mb0Fk
ZHIpPj4yKV07Ci0gICAgICAgIGlmIChkZWZpbml0ZV90eXBlX2luZm8gPT0gMCkgewotICAgICAg
ICAgIC8vIEFsc28gYSBwb2ludGVyOyBjb21wYXJlIGJhc2UgdHlwZXMgb2YgcG9pbnRlcnMKLSAg
ICAgICAgICB2YXIgZGVmUG9pbnRlckJhc2VBZGRyID0gZGVmaW5pdGVUeXBlKzg7Ci0gICAgICAg
ICAgdmFyIGRlZlBvaW50ZXJCYXNlVHlwZSA9IEhFQVAzMlsoKGRlZlBvaW50ZXJCYXNlQWRkcik+
PjIpXTsKLSAgICAgICAgICB2YXIgcG9zc1BvaW50ZXJCYXNlQWRkciA9IHBvc3NpYmlsaXR5VHlw
ZSs4OwotICAgICAgICAgIHZhciBwb3NzUG9pbnRlckJhc2VUeXBlID0gSEVBUDMyWygocG9zc1Bv
aW50ZXJCYXNlQWRkcik+PjIpXTsKLSAgICAgICAgICByZXR1cm4gX19fY3hhX2RvZXNfaW5oZXJp
dChkZWZQb2ludGVyQmFzZVR5cGUsIHBvc3NQb2ludGVyQmFzZVR5cGUsIHBvc3NpYmlsaXR5KTsK
LSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBvbmUgcG9pbnRlciBh
bmQgb25lIG5vbi1wb2ludGVyCi0gICAgICBjYXNlIDE6IC8vIGNsYXNzIHdpdGggbm8gYmFzZSBj
bGFzcwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICBjYXNlIDI6IC8vIGNsYXNzIHdpdGgg
YmFzZSBjbGFzcwotICAgICAgICB2YXIgcGFyZW50VHlwZUFkZHIgPSBwb3NzaWJpbGl0eVR5cGUg
KyA4OwotICAgICAgICB2YXIgcGFyZW50VHlwZSA9IEhFQVAzMlsoKHBhcmVudFR5cGVBZGRyKT4+
MildOwotICAgICAgICByZXR1cm4gX19fY3hhX2RvZXNfaW5oZXJpdChkZWZpbml0ZVR5cGUsIHBh
cmVudFR5cGUsIHBvc3NpYmlsaXR5KTsKLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBm
YWxzZTsgLy8gc29tZSB1bmVuY291bnRlcmVkIHR5cGUKLSAgICAgIH0KLSAgICB9Ci0gIGZ1bmN0
aW9uIF9fX3Jlc3VtZUV4Y2VwdGlvbihwdHIpIHsKLSAgICAgIGlmIChIRUFQMzJbKChfbGx2bV9l
aF9leGNlcHRpb24uYnVmKT4+MildID09IDApIEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5i
dWYpPj4yKV09cHRyOwotICAgICAgdGhyb3cgcHRyICsgIiAtIEV4Y2VwdGlvbiBjYXRjaGluZyBp
cyBkaXNhYmxlZCwgdGhpcyBleGNlcHRpb24gY2Fubm90IGJlIGNhdWdodC4gQ29tcGlsZSB3aXRo
IC1zIERJU0FCTEVfRVhDRVBUSU9OX0NBVENISU5HPTAgb3IgRElTQUJMRV9FWENFUFRJT05fQ0FU
Q0hJTkc9MiB0byBjYXRjaC4iOzsKLSAgICB9ZnVuY3Rpb24gX19fY3hhX2ZpbmRfbWF0Y2hpbmdf
Y2F0Y2godGhyb3duLCB0aHJvd250eXBlKSB7Ci0gICAgICBpZiAodGhyb3duID09IC0xKSB0aHJv
d24gPSBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildOwotICAgICAgaWYgKHRo
cm93bnR5cGUgPT0gLTEpIHRocm93bnR5cGUgPSBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9u
LmJ1ZikrKDQpKT4+MildOwotICAgICAgdmFyIHR5cGVBcnJheSA9IEFycmF5LnByb3RvdHlwZS5z
bGljZS5jYWxsKGFyZ3VtZW50cywgMik7Ci0gICAgICAvLyBJZiB0aHJvd250eXBlIGlzIGEgcG9p
bnRlciwgdGhpcyBtZWFucyBhIHBvaW50ZXIgaGFzIGJlZW4KLSAgICAgIC8vIHRocm93bi4gV2hl
biBhIHBvaW50ZXIgaXMgdGhyb3duLCBhY3R1YWxseSB3aGF0J3MgdGhyb3duCi0gICAgICAvLyBp
cyBhIHBvaW50ZXIgdG8gdGhlIHBvaW50ZXIuIFdlJ2xsIGRlcmVmZXJlbmNlIGl0LgotICAgICAg
aWYgKHRocm93bnR5cGUgIT0gMCAmJiAhX19fY3hhX2lzX251bWJlcl90eXBlKHRocm93bnR5cGUp
KSB7Ci0gICAgICAgIHZhciB0aHJvd250eXBlSW5mb0FkZHI9IEhFQVAzMlsoKHRocm93bnR5cGUp
Pj4yKV0gLSA4OwotICAgICAgICB2YXIgdGhyb3dudHlwZUluZm89IEhFQVAzMlsoKHRocm93bnR5
cGVJbmZvQWRkcik+PjIpXTsKLSAgICAgICAgaWYgKHRocm93bnR5cGVJbmZvID09IDApCi0gICAg
ICAgICAgdGhyb3duID0gSEVBUDMyWygodGhyb3duKT4+MildOwotICAgICAgfQotICAgICAgLy8g
VGhlIGRpZmZlcmVudCBjYXRjaCBibG9ja3MgYXJlIGRlbm90ZWQgYnkgZGlmZmVyZW50IHR5cGVz
LgotICAgICAgLy8gRHVlIHRvIGluaGVyaXRhbmNlLCB0aG9zZSB0eXBlcyBtYXkgbm90IHByZWNp
c2VseSBtYXRjaCB0aGUKLSAgICAgIC8vIHR5cGUgb2YgdGhlIHRocm93biBvYmplY3QuIEZpbmQg
b25lIHdoaWNoIG1hdGNoZXMsIGFuZAotICAgICAgLy8gcmV0dXJuIHRoZSB0eXBlIG9mIHRoZSBj
YXRjaCBibG9jayB3aGljaCBzaG91bGQgYmUgY2FsbGVkLgotICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0eXBlQXJyYXkubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKF9fX2N4YV9kb2VzX2lu
aGVyaXQodHlwZUFycmF5W2ldLCB0aHJvd250eXBlLCB0aHJvd24pKQotICAgICAgICAgIHJldHVy
biAoKGFzbVsic2V0VGVtcFJldDAiXSh0eXBlQXJyYXlbaV0pLHRocm93bil8MCk7Ci0gICAgICB9
Ci0gICAgICAvLyBTaG91bGRuJ3QgaGFwcGVuIHVubGVzcyB3ZSBoYXZlIGJvZ3VzIGRhdGEgaW4g
dHlwZUFycmF5Ci0gICAgICAvLyBvciBlbmNvdW50ZXIgYSB0eXBlIGZvciB3aGljaCBlbXNjcmlw
dGVuIGRvZXNuJ3QgaGF2ZSBzdWl0YWJsZQotICAgICAgLy8gdHlwZWluZm8gZGVmaW5lZC4gQmVz
dC1lZmZvcnRzIG1hdGNoIGp1c3QgaW4gY2FzZS4KLSAgICAgIHJldHVybiAoKGFzbVsic2V0VGVt
cFJldDAiXSh0aHJvd250eXBlKSx0aHJvd24pfDApOwotICAgIH1mdW5jdGlvbiBfX19jeGFfdGhy
b3cocHRyLCB0eXBlLCBkZXN0cnVjdG9yKSB7Ci0gICAgICBpZiAoIV9fX2N4YV90aHJvdy5pbml0
aWFsaXplZCkgewotICAgICAgICB0cnkgewotICAgICAgICAgIEhFQVAzMlsoKF9fWlRWTjEwX19j
eHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UpPj4yKV09MDsgLy8gV29ya2Fyb3VuZCBmb3Ig
bGliY3h4YWJpIGludGVncmF0aW9uIGJ1ZwotICAgICAgICB9IGNhdGNoKGUpe30KLSAgICAgICAg
dHJ5IHsKLSAgICAgICAgICBIRUFQMzJbKChfX1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlw
ZV9pbmZvRSk+PjIpXT0xOyAvLyBXb3JrYXJvdW5kIGZvciBsaWJjeHhhYmkgaW50ZWdyYXRpb24g
YnVnCi0gICAgICAgIH0gY2F0Y2goZSl7fQotICAgICAgICB0cnkgewotICAgICAgICAgIEhFQVAz
MlsoKF9fWlRWTjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FKT4+MildPTI7IC8v
IFdvcmthcm91bmQgZm9yIGxpYmN4eGFiaSBpbnRlZ3JhdGlvbiBidWcKLSAgICAgICAgfSBjYXRj
aChlKXt9Ci0gICAgICAgIF9fX2N4YV90aHJvdy5pbml0aWFsaXplZCA9IHRydWU7Ci0gICAgICB9
Ci0gICAgICBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildPXB0cgotICAgICAg
SEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg0KSk+PjIpXT10eXBlCi0gICAgICBI
RUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDgpKT4+MildPWRlc3RydWN0b3IKLSAg
ICAgIGlmICghKCJ1bmNhdWdodF9leGNlcHRpb24iIGluIF9fWlN0MTh1bmNhdWdodF9leGNlcHRp
b252KSkgewotICAgICAgICBfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udi51bmNhdWdodF9leGNl
cHRpb24gPSAxOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2Vw
dGlvbnYudW5jYXVnaHRfZXhjZXB0aW9uKys7Ci0gICAgICB9Ci0gICAgICB0aHJvdyBwdHIgKyAi
IC0gRXhjZXB0aW9uIGNhdGNoaW5nIGlzIGRpc2FibGVkLCB0aGlzIGV4Y2VwdGlvbiBjYW5ub3Qg
YmUgY2F1Z2h0LiBDb21waWxlIHdpdGggLXMgRElTQUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MCBv
ciBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0yIHRvIGNhdGNoLiI7OwotICAgIH0KLSAgdmFy
IEVSUk5PX0NPREVTPXtFUEVSTToxLEVOT0VOVDoyLEVTUkNIOjMsRUlOVFI6NCxFSU86NSxFTlhJ
Tzo2LEUyQklHOjcsRU5PRVhFQzo4LEVCQURGOjksRUNISUxEOjEwLEVBR0FJTjoxMSxFV09VTERC
TE9DSzoxMSxFTk9NRU06MTIsRUFDQ0VTOjEzLEVGQVVMVDoxNCxFTk9UQkxLOjE1LEVCVVNZOjE2
LEVFWElTVDoxNyxFWERFVjoxOCxFTk9ERVY6MTksRU5PVERJUjoyMCxFSVNESVI6MjEsRUlOVkFM
OjIyLEVORklMRToyMyxFTUZJTEU6MjQsRU5PVFRZOjI1LEVUWFRCU1k6MjYsRUZCSUc6MjcsRU5P
U1BDOjI4LEVTUElQRToyOSxFUk9GUzozMCxFTUxJTks6MzEsRVBJUEU6MzIsRURPTTozMyxFUkFO
R0U6MzQsRU5PTVNHOjM1LEVJRFJNOjM2LEVDSFJORzozNyxFTDJOU1lOQzozOCxFTDNITFQ6Mzks
RUwzUlNUOjQwLEVMTlJORzo0MSxFVU5BVENIOjQyLEVOT0NTSTo0MyxFTDJITFQ6NDQsRURFQURM
Szo0NSxFTk9MQ0s6NDYsRUJBREU6NTAsRUJBRFI6NTEsRVhGVUxMOjUyLEVOT0FOTzo1MyxFQkFE
UlFDOjU0LEVCQURTTFQ6NTUsRURFQURMT0NLOjU2LEVCRk9OVDo1NyxFTk9TVFI6NjAsRU5PREFU
QTo2MSxFVElNRTo2MixFTk9TUjo2MyxFTk9ORVQ6NjQsRU5PUEtHOjY1LEVSRU1PVEU6NjYsRU5P
TElOSzo2NyxFQURWOjY4LEVTUk1OVDo2OSxFQ09NTTo3MCxFUFJPVE86NzEsRU1VTFRJSE9QOjc0
LEVET1RET1Q6NzYsRUJBRE1TRzo3NyxFTk9UVU5JUTo4MCxFQkFERkQ6ODEsRVJFTUNIRzo4MixF
TElCQUNDOjgzLEVMSUJCQUQ6ODQsRUxJQlNDTjo4NSxFTElCTUFYOjg2LEVMSUJFWEVDOjg3LEVO
T1NZUzo4OCxFTk9URU1QVFk6OTAsRU5BTUVUT09MT05HOjkxLEVMT09QOjkyLEVPUE5PVFNVUFA6
OTUsRVBGTk9TVVBQT1JUOjk2LEVDT05OUkVTRVQ6MTA0LEVOT0JVRlM6MTA1LEVBRk5PU1VQUE9S
VDoxMDYsRVBST1RPVFlQRToxMDcsRU5PVFNPQ0s6MTA4LEVOT1BST1RPT1BUOjEwOSxFU0hVVERP
V046MTEwLEVDT05OUkVGVVNFRDoxMTEsRUFERFJJTlVTRToxMTIsRUNPTk5BQk9SVEVEOjExMyxF
TkVUVU5SRUFDSDoxMTQsRU5FVERPV046MTE1LEVUSU1FRE9VVDoxMTYsRUhPU1RET1dOOjExNyxF
SE9TVFVOUkVBQ0g6MTE4LEVJTlBST0dSRVNTOjExOSxFQUxSRUFEWToxMjAsRURFU1RBRERSUkVR
OjEyMSxFTVNHU0laRToxMjIsRVBST1RPTk9TVVBQT1JUOjEyMyxFU09DS1ROT1NVUFBPUlQ6MTI0
LEVBRERSTk9UQVZBSUw6MTI1LEVORVRSRVNFVDoxMjYsRUlTQ09OTjoxMjcsRU5PVENPTk46MTI4
LEVUT09NQU5ZUkVGUzoxMjksRVVTRVJTOjEzMSxFRFFVT1Q6MTMyLEVTVEFMRToxMzMsRU5PVFNV
UDoxMzQsRU5PTUVESVVNOjEzNSxFSUxTRVE6MTM4LEVPVkVSRkxPVzoxMzksRUNBTkNFTEVEOjE0
MCxFTk9UUkVDT1ZFUkFCTEU6MTQxLEVPV05FUkRFQUQ6MTQyLEVTVFJQSVBFOjE0M307Ci0gIHZh
ciBFUlJOT19NRVNTQUdFUz17MDoiU3VjY2VzcyIsMToiTm90IHN1cGVyLXVzZXIiLDI6Ik5vIHN1
Y2ggZmlsZSBvciBkaXJlY3RvcnkiLDM6Ik5vIHN1Y2ggcHJvY2VzcyIsNDoiSW50ZXJydXB0ZWQg
c3lzdGVtIGNhbGwiLDU6IkkvTyBlcnJvciIsNjoiTm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcyIs
NzoiQXJnIGxpc3QgdG9vIGxvbmciLDg6IkV4ZWMgZm9ybWF0IGVycm9yIiw5OiJCYWQgZmlsZSBu
dW1iZXIiLDEwOiJObyBjaGlsZHJlbiIsMTE6Ik5vIG1vcmUgcHJvY2Vzc2VzIiwxMjoiTm90IGVu
b3VnaCBjb3JlIiwxMzoiUGVybWlzc2lvbiBkZW5pZWQiLDE0OiJCYWQgYWRkcmVzcyIsMTU6IkJs
b2NrIGRldmljZSByZXF1aXJlZCIsMTY6Ik1vdW50IGRldmljZSBidXN5IiwxNzoiRmlsZSBleGlz
dHMiLDE4OiJDcm9zcy1kZXZpY2UgbGluayIsMTk6Ik5vIHN1Y2ggZGV2aWNlIiwyMDoiTm90IGEg
ZGlyZWN0b3J5IiwyMToiSXMgYSBkaXJlY3RvcnkiLDIyOiJJbnZhbGlkIGFyZ3VtZW50IiwyMzoi
VG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0iLDI0OiJUb28gbWFueSBvcGVuIGZpbGVzIiwy
NToiTm90IGEgdHlwZXdyaXRlciIsMjY6IlRleHQgZmlsZSBidXN5IiwyNzoiRmlsZSB0b28gbGFy
Z2UiLDI4OiJObyBzcGFjZSBsZWZ0IG9uIGRldmljZSIsMjk6IklsbGVnYWwgc2VlayIsMzA6IlJl
YWQgb25seSBmaWxlIHN5c3RlbSIsMzE6IlRvbyBtYW55IGxpbmtzIiwzMjoiQnJva2VuIHBpcGUi
LDMzOiJNYXRoIGFyZyBvdXQgb2YgZG9tYWluIG9mIGZ1bmMiLDM0OiJNYXRoIHJlc3VsdCBub3Qg
cmVwcmVzZW50YWJsZSIsMzU6Ik5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlIiwzNjoiSWRlbnRp
ZmllciByZW1vdmVkIiwzNzoiQ2hhbm5lbCBudW1iZXIgb3V0IG9mIHJhbmdlIiwzODoiTGV2ZWwg
MiBub3Qgc3luY2hyb25pemVkIiwzOToiTGV2ZWwgMyBoYWx0ZWQiLDQwOiJMZXZlbCAzIHJlc2V0
Iiw0MToiTGluayBudW1iZXIgb3V0IG9mIHJhbmdlIiw0MjoiUHJvdG9jb2wgZHJpdmVyIG5vdCBh
dHRhY2hlZCIsNDM6Ik5vIENTSSBzdHJ1Y3R1cmUgYXZhaWxhYmxlIiw0NDoiTGV2ZWwgMiBoYWx0
ZWQiLDQ1OiJEZWFkbG9jayBjb25kaXRpb24iLDQ2OiJObyByZWNvcmQgbG9ja3MgYXZhaWxhYmxl
Iiw1MDoiSW52YWxpZCBleGNoYW5nZSIsNTE6IkludmFsaWQgcmVxdWVzdCBkZXNjcmlwdG9yIiw1
MjoiRXhjaGFuZ2UgZnVsbCIsNTM6Ik5vIGFub2RlIiw1NDoiSW52YWxpZCByZXF1ZXN0IGNvZGUi
LDU1OiJJbnZhbGlkIHNsb3QiLDU2OiJGaWxlIGxvY2tpbmcgZGVhZGxvY2sgZXJyb3IiLDU3OiJC
YWQgZm9udCBmaWxlIGZtdCIsNjA6IkRldmljZSBub3QgYSBzdHJlYW0iLDYxOiJObyBkYXRhIChm
b3Igbm8gZGVsYXkgaW8pIiw2MjoiVGltZXIgZXhwaXJlZCIsNjM6Ik91dCBvZiBzdHJlYW1zIHJl
c291cmNlcyIsNjQ6Ik1hY2hpbmUgaXMgbm90IG9uIHRoZSBuZXR3b3JrIiw2NToiUGFja2FnZSBu
b3QgaW5zdGFsbGVkIiw2NjoiVGhlIG9iamVjdCBpcyByZW1vdGUiLDY3OiJUaGUgbGluayBoYXMg
YmVlbiBzZXZlcmVkIiw2ODoiQWR2ZXJ0aXNlIGVycm9yIiw2OToiU3Jtb3VudCBlcnJvciIsNzA6
IkNvbW11bmljYXRpb24gZXJyb3Igb24gc2VuZCIsNzE6IlByb3RvY29sIGVycm9yIiw3NDoiTXVs
dGlob3AgYXR0ZW1wdGVkIiw3NjoiQ3Jvc3MgbW91bnQgcG9pbnQgKG5vdCByZWFsbHkgZXJyb3Ip
Iiw3NzoiVHJ5aW5nIHRvIHJlYWQgdW5yZWFkYWJsZSBtZXNzYWdlIiw4MDoiR2l2ZW4gbG9nLiBu
YW1lIG5vdCB1bmlxdWUiLDgxOiJmLmQuIGludmFsaWQgZm9yIHRoaXMgb3BlcmF0aW9uIiw4Mjoi
UmVtb3RlIGFkZHJlc3MgY2hhbmdlZCIsODM6IkNhbiAgIGFjY2VzcyBhIG5lZWRlZCBzaGFyZWQg
bGliIiw4NDoiQWNjZXNzaW5nIGEgY29ycnVwdGVkIHNoYXJlZCBsaWIiLDg1OiIubGliIHNlY3Rp
b24gaW4gYS5vdXQgY29ycnVwdGVkIiw4NjoiQXR0ZW1wdGluZyB0byBsaW5rIGluIHRvbyBtYW55
IGxpYnMiLDg3OiJBdHRlbXB0aW5nIHRvIGV4ZWMgYSBzaGFyZWQgbGlicmFyeSIsODg6IkZ1bmN0
aW9uIG5vdCBpbXBsZW1lbnRlZCIsOTA6IkRpcmVjdG9yeSBub3QgZW1wdHkiLDkxOiJGaWxlIG9y
IHBhdGggbmFtZSB0b28gbG9uZyIsOTI6IlRvbyBtYW55IHN5bWJvbGljIGxpbmtzIiw5NToiT3Bl
cmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdHJhbnNwb3J0IGVuZHBvaW50Iiw5NjoiUHJvdG9jb2wg
ZmFtaWx5IG5vdCBzdXBwb3J0ZWQiLDEwNDoiQ29ubmVjdGlvbiByZXNldCBieSBwZWVyIiwxMDU6
Ik5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUiLDEwNjoiQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBv
cnRlZCBieSBwcm90b2NvbCBmYW1pbHkiLDEwNzoiUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29j
a2V0IiwxMDg6IlNvY2tldCBvcGVyYXRpb24gb24gbm9uLXNvY2tldCIsMTA5OiJQcm90b2NvbCBu
b3QgYXZhaWxhYmxlIiwxMTA6IkNhbid0IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duIiwxMTE6
IkNvbm5lY3Rpb24gcmVmdXNlZCIsMTEyOiJBZGRyZXNzIGFscmVhZHkgaW4gdXNlIiwxMTM6IkNv
bm5lY3Rpb24gYWJvcnRlZCIsMTE0OiJOZXR3b3JrIGlzIHVucmVhY2hhYmxlIiwxMTU6Ik5ldHdv
cmsgaW50ZXJmYWNlIGlzIG5vdCBjb25maWd1cmVkIiwxMTY6IkNvbm5lY3Rpb24gdGltZWQgb3V0
IiwxMTc6Ikhvc3QgaXMgZG93biIsMTE4OiJIb3N0IGlzIHVucmVhY2hhYmxlIiwxMTk6IkNvbm5l
Y3Rpb24gYWxyZWFkeSBpbiBwcm9ncmVzcyIsMTIwOiJTb2NrZXQgYWxyZWFkeSBjb25uZWN0ZWQi
LDEyMToiRGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZCIsMTIyOiJNZXNzYWdlIHRvbyBsb25n
IiwxMjM6IlVua25vd24gcHJvdG9jb2wiLDEyNDoiU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZCIs
MTI1OiJBZGRyZXNzIG5vdCBhdmFpbGFibGUiLDEyNjoiQ29ubmVjdGlvbiByZXNldCBieSBuZXR3
b3JrIiwxMjc6IlNvY2tldCBpcyBhbHJlYWR5IGNvbm5lY3RlZCIsMTI4OiJTb2NrZXQgaXMgbm90
IGNvbm5lY3RlZCIsMTI5OiJUb28gbWFueSByZWZlcmVuY2VzIiwxMzE6IlRvbyBtYW55IHVzZXJz
IiwxMzI6IlF1b3RhIGV4Y2VlZGVkIiwxMzM6IlN0YWxlIGZpbGUgaGFuZGxlIiwxMzQ6Ik5vdCBz
dXBwb3J0ZWQiLDEzNToiTm8gbWVkaXVtIChpbiB0YXBlIGRyaXZlKSIsMTM4OiJJbGxlZ2FsIGJ5
dGUgc2VxdWVuY2UiLDEzOToiVmFsdWUgdG9vIGxhcmdlIGZvciBkZWZpbmVkIGRhdGEgdHlwZSIs
MTQwOiJPcGVyYXRpb24gY2FuY2VsZWQiLDE0MToiU3RhdGUgbm90IHJlY292ZXJhYmxlIiwxNDI6
IlByZXZpb3VzIG93bmVyIGRpZWQiLDE0MzoiU3RyZWFtcyBwaXBlIGVycm9yIn07Ci0gIHZhciBf
X19lcnJub19zdGF0ZT0wO2Z1bmN0aW9uIF9fX3NldEVyck5vKHZhbHVlKSB7Ci0gICAgICAvLyBG
b3IgY29udmVuaWVudCBzZXR0aW5nIGFuZCByZXR1cm5pbmcgb2YgZXJybm8uCi0gICAgICBIRUFQ
MzJbKChfX19lcnJub19zdGF0ZSk+PjIpXT12YWx1ZQotICAgICAgcmV0dXJuIHZhbHVlOwotICAg
IH0KLSAgdmFyIFZGUz11bmRlZmluZWQ7Ci0gIHZhciBQQVRIPXtzcGxpdFBhdGg6ZnVuY3Rpb24g
KGZpbGVuYW1lKSB7Ci0gICAgICAgIHZhciBzcGxpdFBhdGhSZSA9IC9eKFwvP3wpKFtcc1xTXSo/
KSgoPzpcLnsxLDJ9fFteXC9dKz98KShcLlteLlwvXSp8KSkoPzpbXC9dKikkLzsKLSAgICAgICAg
cmV0dXJuIHNwbGl0UGF0aFJlLmV4ZWMoZmlsZW5hbWUpLnNsaWNlKDEpOwotICAgICAgfSxub3Jt
YWxpemVBcnJheTpmdW5jdGlvbiAocGFydHMsIGFsbG93QWJvdmVSb290KSB7Ci0gICAgICAgIC8v
IGlmIHRoZSBwYXRoIHRyaWVzIHRvIGdvIGFib3ZlIHRoZSByb290LCBgdXBgIGVuZHMgdXAgPiAw
Ci0gICAgICAgIHZhciB1cCA9IDA7Ci0gICAgICAgIGZvciAodmFyIGkgPSBwYXJ0cy5sZW5ndGgg
LSAxOyBpID49IDA7IGktLSkgewotICAgICAgICAgIHZhciBsYXN0ID0gcGFydHNbaV07Ci0gICAg
ICAgICAgaWYgKGxhc3QgPT09ICcuJykgewotICAgICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEp
OwotICAgICAgICAgIH0gZWxzZSBpZiAobGFzdCA9PT0gJy4uJykgewotICAgICAgICAgICAgcGFy
dHMuc3BsaWNlKGksIDEpOwotICAgICAgICAgICAgdXArKzsKLSAgICAgICAgICB9IGVsc2UgaWYg
KHVwKSB7Ci0gICAgICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMSk7Ci0gICAgICAgICAgICB1cC0t
OwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAvLyBpZiB0aGUgcGF0aCBpcyBhbGxv
d2VkIHRvIGdvIGFib3ZlIHRoZSByb290LCByZXN0b3JlIGxlYWRpbmcgLi5zCi0gICAgICAgIGlm
IChhbGxvd0Fib3ZlUm9vdCkgewotICAgICAgICAgIGZvciAoOyB1cC0tOyB1cCkgewotICAgICAg
ICAgICAgcGFydHMudW5zaGlmdCgnLi4nKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHBhcnRzOwotICAgICAgfSxub3JtYWxpemU6ZnVuY3Rpb24gKHBhdGgpIHsKLSAg
ICAgICAgdmFyIGlzQWJzb2x1dGUgPSBwYXRoLmNoYXJBdCgwKSA9PT0gJy8nLAotICAgICAgICAg
ICAgdHJhaWxpbmdTbGFzaCA9IHBhdGguc3Vic3RyKC0xKSA9PT0gJy8nOwotICAgICAgICAvLyBO
b3JtYWxpemUgdGhlIHBhdGgKLSAgICAgICAgcGF0aCA9IFBBVEgubm9ybWFsaXplQXJyYXkocGF0
aC5zcGxpdCgnLycpLmZpbHRlcihmdW5jdGlvbihwKSB7Ci0gICAgICAgICAgcmV0dXJuICEhcDsK
LSAgICAgICAgfSksICFpc0Fic29sdXRlKS5qb2luKCcvJyk7Ci0gICAgICAgIGlmICghcGF0aCAm
JiAhaXNBYnNvbHV0ZSkgewotICAgICAgICAgIHBhdGggPSAnLic7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKHBhdGggJiYgdHJhaWxpbmdTbGFzaCkgewotICAgICAgICAgIHBhdGggKz0gJy8nOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiAoaXNBYnNvbHV0ZSA/ICcvJyA6ICcnKSArIHBhdGg7
Ci0gICAgICB9LGRpcm5hbWU6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgdmFyIHJlc3VsdCA9
IFBBVEguc3BsaXRQYXRoKHBhdGgpLAotICAgICAgICAgICAgcm9vdCA9IHJlc3VsdFswXSwKLSAg
ICAgICAgICAgIGRpciA9IHJlc3VsdFsxXTsKLSAgICAgICAgaWYgKCFyb290ICYmICFkaXIpIHsK
LSAgICAgICAgICAvLyBObyBkaXJuYW1lIHdoYXRzb2V2ZXIKLSAgICAgICAgICByZXR1cm4gJy4n
OwotICAgICAgICB9Ci0gICAgICAgIGlmIChkaXIpIHsKLSAgICAgICAgICAvLyBJdCBoYXMgYSBk
aXJuYW1lLCBzdHJpcCB0cmFpbGluZyBzbGFzaAotICAgICAgICAgIGRpciA9IGRpci5zdWJzdHIo
MCwgZGlyLmxlbmd0aCAtIDEpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByb290ICsgZGly
OwotICAgICAgfSxiYXNlbmFtZTpmdW5jdGlvbiAocGF0aCwgZXh0KSB7Ci0gICAgICAgIC8vIEVN
U0NSSVBURU4gcmV0dXJuICcvJycgZm9yICcvJywgbm90IGFuIGVtcHR5IHN0cmluZwotICAgICAg
ICBpZiAocGF0aCA9PT0gJy8nKSByZXR1cm4gJy8nOwotICAgICAgICB2YXIgZiA9IFBBVEguc3Bs
aXRQYXRoKHBhdGgpWzJdOwotICAgICAgICBpZiAoZXh0ICYmIGYuc3Vic3RyKC0xICogZXh0Lmxl
bmd0aCkgPT09IGV4dCkgewotICAgICAgICAgIGYgPSBmLnN1YnN0cigwLCBmLmxlbmd0aCAtIGV4
dC5sZW5ndGgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmOwotICAgICAgfSxqb2luOmZ1
bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIHBhdGhzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNh
bGwoYXJndW1lbnRzLCAwKTsKLSAgICAgICAgcmV0dXJuIFBBVEgubm9ybWFsaXplKHBhdGhzLmZp
bHRlcihmdW5jdGlvbihwLCBpbmRleCkgewotICAgICAgICAgIGlmICh0eXBlb2YgcCAhPT0gJ3N0
cmluZycpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyB0byBw
YXRoLmpvaW4gbXVzdCBiZSBzdHJpbmdzJyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVy
biBwOwotICAgICAgICB9KS5qb2luKCcvJykpOwotICAgICAgfSxyZXNvbHZlOmZ1bmN0aW9uICgp
IHsKLSAgICAgICAgdmFyIHJlc29sdmVkUGF0aCA9ICcnLAotICAgICAgICAgIHJlc29sdmVkQWJz
b2x1dGUgPSBmYWxzZTsKLSAgICAgICAgZm9yICh2YXIgaSA9IGFyZ3VtZW50cy5sZW5ndGggLSAx
OyBpID49IC0xICYmICFyZXNvbHZlZEFic29sdXRlOyBpLS0pIHsKLSAgICAgICAgICB2YXIgcGF0
aCA9IChpID49IDApID8gYXJndW1lbnRzW2ldIDogRlMuY3dkKCk7Ci0gICAgICAgICAgLy8gU2tp
cCBlbXB0eSBhbmQgaW52YWxpZCBlbnRyaWVzCi0gICAgICAgICAgaWYgKHR5cGVvZiBwYXRoICE9
PSAnc3RyaW5nJykgewotICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRz
IHRvIHBhdGgucmVzb2x2ZSBtdXN0IGJlIHN0cmluZ3MnKTsKLSAgICAgICAgICB9IGVsc2UgaWYg
KCFwYXRoKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAg
cmVzb2x2ZWRQYXRoID0gcGF0aCArICcvJyArIHJlc29sdmVkUGF0aDsKLSAgICAgICAgICByZXNv
bHZlZEFic29sdXRlID0gcGF0aC5jaGFyQXQoMCkgPT09ICcvJzsKLSAgICAgICAgfQotICAgICAg
ICAvLyBBdCB0aGlzIHBvaW50IHRoZSBwYXRoIHNob3VsZCBiZSByZXNvbHZlZCB0byBhIGZ1bGwg
YWJzb2x1dGUgcGF0aCwgYnV0Ci0gICAgICAgIC8vIGhhbmRsZSByZWxhdGl2ZSBwYXRocyB0byBi
ZSBzYWZlIChtaWdodCBoYXBwZW4gd2hlbiBwcm9jZXNzLmN3ZCgpIGZhaWxzKQotICAgICAgICBy
ZXNvbHZlZFBhdGggPSBQQVRILm5vcm1hbGl6ZUFycmF5KHJlc29sdmVkUGF0aC5zcGxpdCgnLycp
LmZpbHRlcihmdW5jdGlvbihwKSB7Ci0gICAgICAgICAgcmV0dXJuICEhcDsKLSAgICAgICAgfSks
ICFyZXNvbHZlZEFic29sdXRlKS5qb2luKCcvJyk7Ci0gICAgICAgIHJldHVybiAoKHJlc29sdmVk
QWJzb2x1dGUgPyAnLycgOiAnJykgKyByZXNvbHZlZFBhdGgpIHx8ICcuJzsKLSAgICAgIH0scmVs
YXRpdmU6ZnVuY3Rpb24gKGZyb20sIHRvKSB7Ci0gICAgICAgIGZyb20gPSBQQVRILnJlc29sdmUo
ZnJvbSkuc3Vic3RyKDEpOwotICAgICAgICB0byA9IFBBVEgucmVzb2x2ZSh0bykuc3Vic3RyKDEp
OwotICAgICAgICBmdW5jdGlvbiB0cmltKGFycikgewotICAgICAgICAgIHZhciBzdGFydCA9IDA7
Ci0gICAgICAgICAgZm9yICg7IHN0YXJ0IDwgYXJyLmxlbmd0aDsgc3RhcnQrKykgewotICAgICAg
ICAgICAgaWYgKGFycltzdGFydF0gIT09ICcnKSBicmVhazsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgdmFyIGVuZCA9IGFyci5sZW5ndGggLSAxOwotICAgICAgICAgIGZvciAoOyBlbmQgPj0gMDsg
ZW5kLS0pIHsKLSAgICAgICAgICAgIGlmIChhcnJbZW5kXSAhPT0gJycpIGJyZWFrOwotICAgICAg
ICAgIH0KLSAgICAgICAgICBpZiAoc3RhcnQgPiBlbmQpIHJldHVybiBbXTsKLSAgICAgICAgICBy
ZXR1cm4gYXJyLnNsaWNlKHN0YXJ0LCBlbmQgLSBzdGFydCArIDEpOwotICAgICAgICB9Ci0gICAg
ICAgIHZhciBmcm9tUGFydHMgPSB0cmltKGZyb20uc3BsaXQoJy8nKSk7Ci0gICAgICAgIHZhciB0
b1BhcnRzID0gdHJpbSh0by5zcGxpdCgnLycpKTsKLSAgICAgICAgdmFyIGxlbmd0aCA9IE1hdGgu
bWluKGZyb21QYXJ0cy5sZW5ndGgsIHRvUGFydHMubGVuZ3RoKTsKLSAgICAgICAgdmFyIHNhbWVQ
YXJ0c0xlbmd0aCA9IGxlbmd0aDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7
IGkrKykgewotICAgICAgICAgIGlmIChmcm9tUGFydHNbaV0gIT09IHRvUGFydHNbaV0pIHsKLSAg
ICAgICAgICAgIHNhbWVQYXJ0c0xlbmd0aCA9IGk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG91dHB1dFBhcnRzID0gW107Ci0gICAgICAg
IGZvciAodmFyIGkgPSBzYW1lUGFydHNMZW5ndGg7IGkgPCBmcm9tUGFydHMubGVuZ3RoOyBpKysp
IHsKLSAgICAgICAgICBvdXRwdXRQYXJ0cy5wdXNoKCcuLicpOwotICAgICAgICB9Ci0gICAgICAg
IG91dHB1dFBhcnRzID0gb3V0cHV0UGFydHMuY29uY2F0KHRvUGFydHMuc2xpY2Uoc2FtZVBhcnRz
TGVuZ3RoKSk7Ci0gICAgICAgIHJldHVybiBvdXRwdXRQYXJ0cy5qb2luKCcvJyk7Ci0gICAgICB9
fTsKLSAgdmFyIFRUWT17dHR5czpbXSxyZWdpc3RlcjpmdW5jdGlvbiAoZGV2LCBvcHMpIHsKLSAg
ICAgICAgVFRZLnR0eXNbZGV2XSA9IHsgaW5wdXQ6IFtdLCBvdXRwdXQ6IFtdLCBvcHM6IG9wcyB9
OwotICAgICAgICBGUy5yZWdpc3RlckRldmljZShkZXYsIFRUWS5zdHJlYW1fb3BzKTsKLSAgICAg
IH0sc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbiAoc3RyZWFtKSB7Ci0gICAgICAgICAgLy8gdGhp
cyB3b3VsZG4ndCBiZSByZXF1aXJlZCBpZiB0aGUgbGlicmFyeSB3YXNuJ3QgZXZhbCdkIGF0IGZp
cnN0Li4uCi0gICAgICAgICAgaWYgKCFUVFkudXRmOCkgewotICAgICAgICAgICAgVFRZLnV0Zjgg
PSBuZXcgUnVudGltZS5VVEY4UHJvY2Vzc29yKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZh
ciB0dHkgPSBUVFkudHR5c1tzdHJlYW0ubm9kZS5yZGV2XTsKLSAgICAgICAgICBpZiAoIXR0eSkg
ewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PREVW
KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgc3RyZWFtLnR0eSA9IHR0eTsKLSAgICAgICAgICBz
dHJlYW0uc2Vla2FibGUgPSBmYWxzZTsKLSAgICAgICAgfSxjbG9zZTpmdW5jdGlvbiAoc3RyZWFt
KSB7Ci0gICAgICAgICAgLy8gZmx1c2ggYW55IHBlbmRpbmcgbGluZSBkYXRhCi0gICAgICAgICAg
aWYgKHN0cmVhbS50dHkub3V0cHV0Lmxlbmd0aCkgewotICAgICAgICAgICAgc3RyZWFtLnR0eS5v
cHMucHV0X2NoYXIoc3RyZWFtLnR0eSwgMTApOwotICAgICAgICAgIH0KLSAgICAgICAgfSxyZWFk
OmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvcyAvKiBpZ25vcmVk
ICovKSB7Ci0gICAgICAgICAgaWYgKCFzdHJlYW0udHR5IHx8ICFzdHJlYW0udHR5Lm9wcy5nZXRf
Y2hhcikgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RU5YSU8pOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgYnl0ZXNSZWFkID0gMDsKLSAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIg
cmVzdWx0OwotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgcmVzdWx0ID0gc3RyZWFt
LnR0eS5vcHMuZ2V0X2NoYXIoc3RyZWFtLnR0eSk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7
Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQgJiYg
Ynl0ZXNSZWFkID09PSAwKSB7Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9y
KEVSUk5PX0NPREVTLkVBR0FJTik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocmVz
dWx0ID09PSBudWxsIHx8IHJlc3VsdCA9PT0gdW5kZWZpbmVkKSBicmVhazsKLSAgICAgICAgICAg
IGJ5dGVzUmVhZCsrOwotICAgICAgICAgICAgYnVmZmVyW29mZnNldCtpXSA9IHJlc3VsdDsKLSAg
ICAgICAgICB9Ci0gICAgICAgICAgaWYgKGJ5dGVzUmVhZCkgewotICAgICAgICAgICAgc3RyZWFt
Lm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0
dXJuIGJ5dGVzUmVhZDsKLSAgICAgICAgfSx3cml0ZTpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIs
IG9mZnNldCwgbGVuZ3RoLCBwb3MpIHsKLSAgICAgICAgICBpZiAoIXN0cmVhbS50dHkgfHwgIXN0
cmVhbS50dHkub3BzLnB1dF9jaGFyKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FTlhJTyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAg
ICAgIHN0cmVhbS50dHkub3BzLnB1dF9jaGFyKHN0cmVhbS50dHksIGJ1ZmZlcltvZmZzZXQraV0p
OwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMu
RXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0K
LSAgICAgICAgICBpZiAobGVuZ3RoKSB7Ci0gICAgICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3Rh
bXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gaTsKLSAgICAg
ICAgfX0sZGVmYXVsdF90dHlfb3BzOntnZXRfY2hhcjpmdW5jdGlvbiAodHR5KSB7Ci0gICAgICAg
ICAgaWYgKCF0dHkuaW5wdXQubGVuZ3RoKSB7Ci0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gbnVs
bDsKLSAgICAgICAgICAgIGlmIChFTlZJUk9OTUVOVF9JU19OT0RFKSB7Ci0gICAgICAgICAgICAg
IGlmIChwcm9jZXNzLnN0ZGluLmRlc3Ryb3llZCkgewotICAgICAgICAgICAgICAgIHJldHVybiB1
bmRlZmluZWQ7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgcmVzdWx0ID0gcHJvY2Vz
cy5zdGRpbi5yZWFkKCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgIT0g
J3VuZGVmaW5lZCcgJiYKLSAgICAgICAgICAgICAgdHlwZW9mIHdpbmRvdy5wcm9tcHQgPT0gJ2Z1
bmN0aW9uJykgewotICAgICAgICAgICAgICAvLyBCcm93c2VyLgotICAgICAgICAgICAgICByZXN1
bHQgPSB3aW5kb3cucHJvbXB0KCdJbnB1dDogJyk7ICAvLyByZXR1cm5zIG51bGwgb24gY2FuY2Vs
Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQgKz0gJ1xuJzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmICh0
eXBlb2YgcmVhZGxpbmUgPT0gJ2Z1bmN0aW9uJykgewotICAgICAgICAgICAgICAvLyBDb21tYW5k
IGxpbmUuCi0gICAgICAgICAgICAgIHJlc3VsdCA9IHJlYWRsaW5lKCk7Ci0gICAgICAgICAgICAg
IGlmIChyZXN1bHQgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ1xuJzsK
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCFyZXN1bHQp
IHsKLSAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB0dHkuaW5wdXQgPSBpbnRBcnJheUZyb21TdHJpbmcocmVzdWx0LCB0cnVlKTsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgcmV0dXJuIHR0eS5pbnB1dC5zaGlmdCgpOwotICAgICAgICB9LHB1dF9j
aGFyOmZ1bmN0aW9uICh0dHksIHZhbCkgewotICAgICAgICAgIGlmICh2YWwgPT09IG51bGwgfHwg
dmFsID09PSAxMCkgewotICAgICAgICAgICAgTW9kdWxlWydwcmludCddKHR0eS5vdXRwdXQuam9p
bignJykpOwotICAgICAgICAgICAgdHR5Lm91dHB1dCA9IFtdOwotICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICB0dHkub3V0cHV0LnB1c2goVFRZLnV0ZjgucHJvY2Vzc0NDaGFyKHZhbCkp
OwotICAgICAgICAgIH0KLSAgICAgICAgfX0sZGVmYXVsdF90dHkxX29wczp7cHV0X2NoYXI6ZnVu
Y3Rpb24gKHR0eSwgdmFsKSB7Ci0gICAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09
IDEwKSB7Ci0gICAgICAgICAgICBNb2R1bGVbJ3ByaW50RXJyJ10odHR5Lm91dHB1dC5qb2luKCcn
KSk7Ci0gICAgICAgICAgICB0dHkub3V0cHV0ID0gW107Ci0gICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIHR0eS5vdXRwdXQucHVzaChUVFkudXRmOC5wcm9jZXNzQ0NoYXIodmFsKSk7Ci0g
ICAgICAgICAgfQotICAgICAgICB9fX07Ci0gIHZhciBNRU1GUz17bW91bnQ6ZnVuY3Rpb24gKG1v
dW50KSB7Ci0gICAgICAgIHJldHVybiBNRU1GUy5jcmVhdGVfbm9kZShudWxsLCAnLycsIDAwNDAw
MDAgfCAwNzc3LCAwKTsKLSAgICAgIH0sY3JlYXRlX25vZGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFt
ZSwgbW9kZSwgZGV2KSB7Ci0gICAgICAgIGlmIChGUy5pc0Jsa2Rldihtb2RlKSB8fCBGUy5pc0ZJ
Rk8obW9kZSkpIHsKLSAgICAgICAgICAvLyBubyBzdXBwb3J0ZWQKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAg
dmFyIG5vZGUgPSBGUy5jcmVhdGVOb2RlKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KTsKLSAgICAg
ICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBub2RlLm5vZGVfb3BzID0g
ewotICAgICAgICAgICAgZ2V0YXR0cjogTUVNRlMubm9kZV9vcHMuZ2V0YXR0ciwKLSAgICAgICAg
ICAgIHNldGF0dHI6IE1FTUZTLm5vZGVfb3BzLnNldGF0dHIsCi0gICAgICAgICAgICBsb29rdXA6
IE1FTUZTLm5vZGVfb3BzLmxvb2t1cCwKLSAgICAgICAgICAgIG1rbm9kOiBNRU1GUy5ub2RlX29w
cy5ta25vZCwKLSAgICAgICAgICAgIG1rbm9kOiBNRU1GUy5ub2RlX29wcy5ta25vZCwKLSAgICAg
ICAgICAgIHJlbmFtZTogTUVNRlMubm9kZV9vcHMucmVuYW1lLAotICAgICAgICAgICAgdW5saW5r
OiBNRU1GUy5ub2RlX29wcy51bmxpbmssCi0gICAgICAgICAgICBybWRpcjogTUVNRlMubm9kZV9v
cHMucm1kaXIsCi0gICAgICAgICAgICByZWFkZGlyOiBNRU1GUy5ub2RlX29wcy5yZWFkZGlyLAot
ICAgICAgICAgICAgc3ltbGluazogTUVNRlMubm9kZV9vcHMuc3ltbGluawotICAgICAgICAgIH07
Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gewotICAgICAgICAgICAgbGxzZWVrOiBNRU1G
Uy5zdHJlYW1fb3BzLmxsc2VlawotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5jb250ZW50
cyA9IHt9OwotICAgICAgICB9IGVsc2UgaWYgKEZTLmlzRmlsZShub2RlLm1vZGUpKSB7Ci0gICAg
ICAgICAgbm9kZS5ub2RlX29wcyA9IHsKLSAgICAgICAgICAgIGdldGF0dHI6IE1FTUZTLm5vZGVf
b3BzLmdldGF0dHIsCi0gICAgICAgICAgICBzZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5zZXRhdHRy
Ci0gICAgICAgICAgfTsKLSAgICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSB7Ci0gICAgICAgICAg
ICBsbHNlZWs6IE1FTUZTLnN0cmVhbV9vcHMubGxzZWVrLAotICAgICAgICAgICAgcmVhZDogTUVN
RlMuc3RyZWFtX29wcy5yZWFkLAotICAgICAgICAgICAgd3JpdGU6IE1FTUZTLnN0cmVhbV9vcHMu
d3JpdGUsCi0gICAgICAgICAgICBhbGxvY2F0ZTogTUVNRlMuc3RyZWFtX29wcy5hbGxvY2F0ZSwK
LSAgICAgICAgICAgIG1tYXA6IE1FTUZTLnN0cmVhbV9vcHMubW1hcAotICAgICAgICAgIH07Ci0g
ICAgICAgICAgbm9kZS5jb250ZW50cyA9IFtdOwotICAgICAgICB9IGVsc2UgaWYgKEZTLmlzTGlu
ayhub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgbm9kZS5ub2RlX29wcyA9IHsKLSAgICAgICAgICAg
IGdldGF0dHI6IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIsCi0gICAgICAgICAgICBzZXRhdHRyOiBN
RU1GUy5ub2RlX29wcy5zZXRhdHRyLAotICAgICAgICAgICAgcmVhZGxpbms6IE1FTUZTLm5vZGVf
b3BzLnJlYWRsaW5rCi0gICAgICAgICAgfTsKLSAgICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSB7
fTsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0NocmRldihub2RlLm1vZGUpKSB7Ci0gICAgICAg
ICAgbm9kZS5ub2RlX29wcyA9IHsKLSAgICAgICAgICAgIGdldGF0dHI6IE1FTUZTLm5vZGVfb3Bz
LmdldGF0dHIsCi0gICAgICAgICAgICBzZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5zZXRhdHRyCi0g
ICAgICAgICAgfTsKLSAgICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSBGUy5jaHJkZXZfc3RyZWFt
X29wczsKLSAgICAgICAgfQotICAgICAgICBub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0g
ICAgICAgIC8vIGFkZCB0aGUgbmV3IG5vZGUgdG8gdGhlIHBhcmVudAotICAgICAgICBpZiAocGFy
ZW50KSB7Ci0gICAgICAgICAgcGFyZW50LmNvbnRlbnRzW25hbWVdID0gbm9kZTsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgIH0sbm9kZV9vcHM6e2dldGF0dHI6ZnVuY3Rp
b24gKG5vZGUpIHsKLSAgICAgICAgICB2YXIgYXR0ciA9IHt9OwotICAgICAgICAgIC8vIGRldmlj
ZSBudW1iZXJzIHJldXNlIGlub2RlIG51bWJlcnMuCi0gICAgICAgICAgYXR0ci5kZXYgPSBGUy5p
c0NocmRldihub2RlLm1vZGUpID8gbm9kZS5pZCA6IDE7Ci0gICAgICAgICAgYXR0ci5pbm8gPSBu
b2RlLmlkOwotICAgICAgICAgIGF0dHIubW9kZSA9IG5vZGUubW9kZTsKLSAgICAgICAgICBhdHRy
Lm5saW5rID0gMTsKLSAgICAgICAgICBhdHRyLnVpZCA9IDA7Ci0gICAgICAgICAgYXR0ci5naWQg
PSAwOwotICAgICAgICAgIGF0dHIucmRldiA9IG5vZGUucmRldjsKLSAgICAgICAgICBpZiAoRlMu
aXNEaXIobm9kZS5tb2RlKSkgewotICAgICAgICAgICAgYXR0ci5zaXplID0gNDA5NjsKLSAgICAg
ICAgICB9IGVsc2UgaWYgKEZTLmlzRmlsZShub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICBhdHRy
LnNpemUgPSBub2RlLmNvbnRlbnRzLmxlbmd0aDsKLSAgICAgICAgICB9IGVsc2UgaWYgKEZTLmlz
TGluayhub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgICBhdHRyLnNpemUgPSBub2RlLmxpbmsubGVu
Z3RoOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdHRyLnNpemUgPSAwOwotICAg
ICAgICAgIH0KLSAgICAgICAgICBhdHRyLmF0aW1lID0gbmV3IERhdGUobm9kZS50aW1lc3RhbXAp
OwotICAgICAgICAgIGF0dHIubXRpbWUgPSBuZXcgRGF0ZShub2RlLnRpbWVzdGFtcCk7Ci0gICAg
ICAgICAgYXR0ci5jdGltZSA9IG5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTsKLSAgICAgICAgICAv
LyBOT1RFOiBJbiBvdXIgaW1wbGVtZW50YXRpb24sIHN0X2Jsb2NrcyA9IE1hdGguY2VpbChzdF9z
aXplL3N0X2Jsa3NpemUpLAotICAgICAgICAgIC8vICAgICAgIGJ1dCB0aGlzIGlzIG5vdCByZXF1
aXJlZCBieSB0aGUgc3RhbmRhcmQuCi0gICAgICAgICAgYXR0ci5ibGtzaXplID0gNDA5NjsKLSAg
ICAgICAgICBhdHRyLmJsb2NrcyA9IE1hdGguY2VpbChhdHRyLnNpemUgLyBhdHRyLmJsa3NpemUp
OwotICAgICAgICAgIHJldHVybiBhdHRyOwotICAgICAgICB9LHNldGF0dHI6ZnVuY3Rpb24gKG5v
ZGUsIGF0dHIpIHsKLSAgICAgICAgICBpZiAoYXR0ci5tb2RlICE9PSB1bmRlZmluZWQpIHsKLSAg
ICAgICAgICAgIG5vZGUubW9kZSA9IGF0dHIubW9kZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAg
aWYgKGF0dHIudGltZXN0YW1wICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIG5vZGUudGlt
ZXN0YW1wID0gYXR0ci50aW1lc3RhbXA7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChhdHRy
LnNpemUgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgdmFyIGNvbnRlbnRzID0gbm9kZS5j
b250ZW50czsKLSAgICAgICAgICAgIGlmIChhdHRyLnNpemUgPCBjb250ZW50cy5sZW5ndGgpIGNv
bnRlbnRzLmxlbmd0aCA9IGF0dHIuc2l6ZTsKLSAgICAgICAgICAgIGVsc2Ugd2hpbGUgKGF0dHIu
c2l6ZSA+IGNvbnRlbnRzLmxlbmd0aCkgY29udGVudHMucHVzaCgwKTsKLSAgICAgICAgICB9Ci0g
ICAgICAgIH0sbG9va3VwOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUpIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9FTlQpOwotICAgICAgICB9LG1rbm9k
OmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIG1vZGUsIGRldikgewotICAgICAgICAgIHJldHVybiBN
RU1GUy5jcmVhdGVfbm9kZShwYXJlbnQsIG5hbWUsIG1vZGUsIGRldik7Ci0gICAgICAgIH0scmVu
YW1lOmZ1bmN0aW9uIChvbGRfbm9kZSwgbmV3X2RpciwgbmV3X25hbWUpIHsKLSAgICAgICAgICAv
LyBpZiB3ZSdyZSBvdmVyd3JpdGluZyBhIGRpcmVjdG9yeSBhdCBuZXdfbmFtZSwgbWFrZSBzdXJl
IGl0J3MgZW1wdHkuCi0gICAgICAgICAgaWYgKEZTLmlzRGlyKG9sZF9ub2RlLm1vZGUpKSB7Ci0g
ICAgICAgICAgICB2YXIgbmV3X25vZGU7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAg
ICBuZXdfbm9kZSA9IEZTLmxvb2t1cE5vZGUobmV3X2RpciwgbmV3X25hbWUpOwotICAgICAgICAg
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG5ld19ub2Rl
KSB7Ci0gICAgICAgICAgICAgIGZvciAodmFyIGkgaW4gbmV3X25vZGUuY29udGVudHMpIHsKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9URU1Q
VFkpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAg
ICAgIC8vIGRvIHRoZSBpbnRlcm5hbCByZXdpcmluZwotICAgICAgICAgIGRlbGV0ZSBvbGRfbm9k
ZS5wYXJlbnQuY29udGVudHNbb2xkX25vZGUubmFtZV07Ci0gICAgICAgICAgb2xkX25vZGUubmFt
ZSA9IG5ld19uYW1lOwotICAgICAgICAgIG5ld19kaXIuY29udGVudHNbbmV3X25hbWVdID0gb2xk
X25vZGU7Ci0gICAgICAgIH0sdW5saW5rOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUpIHsKLSAgICAg
ICAgICBkZWxldGUgcGFyZW50LmNvbnRlbnRzW25hbWVdOwotICAgICAgICB9LHJtZGlyOmZ1bmN0
aW9uIChwYXJlbnQsIG5hbWUpIHsKLSAgICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUo
cGFyZW50LCBuYW1lKTsKLSAgICAgICAgICBmb3IgKHZhciBpIGluIG5vZGUuY29udGVudHMpIHsK
LSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RFTVBU
WSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGRlbGV0ZSBwYXJlbnQuY29udGVudHNbbmFtZV07
Ci0gICAgICAgIH0scmVhZGRpcjpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICAgIHZhciBlbnRy
aWVzID0gWycuJywgJy4uJ10KLSAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gbm9kZS5jb250ZW50
cykgewotICAgICAgICAgICAgaWYgKCFub2RlLmNvbnRlbnRzLmhhc093blByb3BlcnR5KGtleSkp
IHsKLSAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBl
bnRyaWVzLnB1c2goa2V5KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGVudHJpZXM7
Ci0gICAgICAgIH0sc3ltbGluazpmdW5jdGlvbiAocGFyZW50LCBuZXduYW1lLCBvbGRwYXRoKSB7
Ci0gICAgICAgICAgdmFyIG5vZGUgPSBNRU1GUy5jcmVhdGVfbm9kZShwYXJlbnQsIG5ld25hbWUs
IDA3NzcgfCAwMTIwMDAwLCAwKTsKLSAgICAgICAgICBub2RlLmxpbmsgPSBvbGRwYXRoOwotICAg
ICAgICAgIHJldHVybiBub2RlOwotICAgICAgICB9LHJlYWRsaW5rOmZ1bmN0aW9uIChub2RlKSB7
Ci0gICAgICAgICAgaWYgKCFGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgcmV0dXJuIG5vZGUubGluazsKLSAgICAgICAgfX0sc3RyZWFtX29wczp7cmVhZDpm
dW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewotICAg
ICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwotICAgICAgICAgIHZh
ciBzaXplID0gTWF0aC5taW4oY29udGVudHMubGVuZ3RoIC0gcG9zaXRpb24sIGxlbmd0aCk7Ci0g
ICAgICAgICAgaWYgKGNvbnRlbnRzLnN1YmFycmF5KSB7IC8vIHR5cGVkIGFycmF5Ci0gICAgICAg
ICAgICBidWZmZXIuc2V0KGNvbnRlbnRzLnN1YmFycmF5KHBvc2l0aW9uLCBwb3NpdGlvbiArIHNp
emUpLCBvZmZzZXQpOwotICAgICAgICAgIH0gZWxzZQotICAgICAgICAgIHsKLSAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltv
ZmZzZXQgKyBpXSA9IGNvbnRlbnRzW3Bvc2l0aW9uICsgaV07Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgfQotICAgICAgICAgIHJldHVybiBzaXplOwotICAgICAgICB9LHdyaXRlOmZ1bmN0aW9u
IChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgICAg
dmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7Ci0gICAgICAgICAgd2hpbGUgKGNv
bnRlbnRzLmxlbmd0aCA8IHBvc2l0aW9uKSBjb250ZW50cy5wdXNoKDApOwotICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIGNvbnRlbnRzW3Bv
c2l0aW9uICsgaV0gPSBidWZmZXJbb2Zmc2V0ICsgaV07Ci0gICAgICAgICAgfQotICAgICAgICAg
IHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgICAgcmV0dXJuIGxl
bmd0aDsKLSAgICAgICAgfSxsbHNlZWs6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCB3aGVuY2Up
IHsKLSAgICAgICAgICB2YXIgcG9zaXRpb24gPSBvZmZzZXQ7Ci0gICAgICAgICAgaWYgKHdoZW5j
ZSA9PT0gMSkgeyAgLy8gU0VFS19DVVIuCi0gICAgICAgICAgICBwb3NpdGlvbiArPSBzdHJlYW0u
cG9zaXRpb247Ci0gICAgICAgICAgfSBlbHNlIGlmICh3aGVuY2UgPT09IDIpIHsgIC8vIFNFRUtf
RU5ELgotICAgICAgICAgICAgaWYgKEZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSkgewotICAg
ICAgICAgICAgICBwb3NpdGlvbiArPSBzdHJlYW0ubm9kZS5jb250ZW50cy5sZW5ndGg7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChwb3NpdGlvbiA8IDApIHsKLSAg
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0g
ICAgICAgICAgfQotICAgICAgICAgIHN0cmVhbS51bmdvdHRlbiA9IFtdOwotICAgICAgICAgIHN0
cmVhbS5wb3NpdGlvbiA9IHBvc2l0aW9uOwotICAgICAgICAgIHJldHVybiBwb3NpdGlvbjsKLSAg
ICAgICAgfSxhbGxvY2F0ZTpmdW5jdGlvbiAoc3RyZWFtLCBvZmZzZXQsIGxlbmd0aCkgewotICAg
ICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwotICAgICAgICAgIHZh
ciBsaW1pdCA9IG9mZnNldCArIGxlbmd0aDsKLSAgICAgICAgICB3aGlsZSAobGltaXQgPiBjb250
ZW50cy5sZW5ndGgpIGNvbnRlbnRzLnB1c2goMCk7Ci0gICAgICAgIH0sbW1hcDpmdW5jdGlvbiAo
c3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbiwgcHJvdCwgZmxhZ3MpIHsK
LSAgICAgICAgICBpZiAoIUZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSkgewotICAgICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PREVWKTsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgdmFyIHB0cjsKLSAgICAgICAgICB2YXIgYWxsb2NhdGVkOwotICAgICAg
ICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwotICAgICAgICAgIC8vIE9u
bHkgbWFrZSBhIG5ldyBjb3B5IHdoZW4gTUFQX1BSSVZBVEUgaXMgc3BlY2lmaWVkLgotICAgICAg
ICAgIGlmICghKGZsYWdzICYgMHgwMikpIHsKLSAgICAgICAgICAgIC8vIFdlIGNhbid0IGVtdWxh
dGUgTUFQX1NIQVJFRCB3aGVuIHRoZSBmaWxlIGlzIG5vdCBiYWNrZWQgYnkgdGhlIGJ1ZmZlcgot
ICAgICAgICAgICAgLy8gd2UncmUgbWFwcGluZyB0byAoZS5nLiB0aGUgSEVBUCBidWZmZXIpLgot
ICAgICAgICAgICAgYXNzZXJ0KGNvbnRlbnRzLmJ1ZmZlciA9PT0gYnVmZmVyIHx8IGNvbnRlbnRz
LmJ1ZmZlciA9PT0gYnVmZmVyLmJ1ZmZlcik7Ci0gICAgICAgICAgICBhbGxvY2F0ZWQgPSBmYWxz
ZTsKLSAgICAgICAgICAgIHB0ciA9IGNvbnRlbnRzLmJ5dGVPZmZzZXQ7Ci0gICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIC8vIFRyeSB0byBhdm9pZCB1bm5lY2Vzc2FyeSBzbGljZXMuCi0g
ICAgICAgICAgICBpZiAocG9zaXRpb24gPiAwIHx8IHBvc2l0aW9uICsgbGVuZ3RoIDwgY29udGVu
dHMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgIGlmIChjb250ZW50cy5zdWJhcnJheSkgewotICAg
ICAgICAgICAgICAgIGNvbnRlbnRzID0gY29udGVudHMuc3ViYXJyYXkocG9zaXRpb24sIHBvc2l0
aW9uICsgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBj
b250ZW50cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGNvbnRlbnRzLCBwb3NpdGlvbiwg
cG9zaXRpb24gKyBsZW5ndGgpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBhbGxvY2F0ZWQgPSB0cnVlOwotICAgICAgICAgICAgcHRyID0gX21hbGxvYyhsZW5n
dGgpOwotICAgICAgICAgICAgaWYgKCFwdHIpIHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PTUVNKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGJ1ZmZlci5zZXQoY29udGVudHMsIHB0cik7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJl
dHVybiB7IHB0cjogcHRyLCBhbGxvY2F0ZWQ6IGFsbG9jYXRlZCB9OwotICAgICAgICB9fX07Ci0g
IHZhciBfc3RkaW49YWxsb2NhdGUoMSwgImkzMioiLCBBTExPQ19TVEFUSUMpOwotICB2YXIgX3N0
ZG91dD1hbGxvY2F0ZSgxLCAiaTMyKiIsIEFMTE9DX1NUQVRJQyk7Ci0gIHZhciBfc3RkZXJyPWFs
bG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElDKTsKLSAgZnVuY3Rpb24gX2ZmbHVzaChzdHJl
YW0pIHsKLSAgICAgIC8vIGludCBmZmx1c2goRklMRSAqc3RyZWFtKTsKLSAgICAgIC8vIGh0dHA6
Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL2ZmbHVz
aC5odG1sCi0gICAgICAvLyB3ZSBkb24ndCBjdXJyZW50bHkgcGVyZm9ybSBhbnkgdXNlci1zcGFj
ZSBidWZmZXJpbmcgb2YgZGF0YQotICAgIH12YXIgRlM9e3Jvb3Q6bnVsbCxub2RlczpbbnVsbF0s
ZGV2aWNlczpbbnVsbF0sc3RyZWFtczpbbnVsbF0sbmV4dElub2RlOjEsbmFtZV90YWJsZTpudWxs
LGN1cnJlbnRQYXRoOiIvIixpbml0aWFsaXplZDpmYWxzZSxpZ25vcmVQZXJtaXNzaW9uczp0cnVl
LEVycm5vRXJyb3I6ZnVuY3Rpb24gRXJybm9FcnJvcihlcnJubykgewotICAgICAgICAgIHRoaXMu
ZXJybm8gPSBlcnJubzsKLSAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gRVJSTk9fQ09ERVMpIHsK
LSAgICAgICAgICAgIGlmIChFUlJOT19DT0RFU1trZXldID09PSBlcnJubykgewotICAgICAgICAg
ICAgICB0aGlzLmNvZGUgPSBrZXk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
fQotICAgICAgICAgIH0KLSAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSBFUlJOT19NRVNTQUdFU1tl
cnJub107Ci0gICAgICAgIH0saGFuZGxlRlNFcnJvcjpmdW5jdGlvbiAoZSkgewotICAgICAgICBp
ZiAoIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIHRocm93IGUgKyAnIDogJyArIG5ldyBF
cnJvcigpLnN0YWNrOwotICAgICAgICByZXR1cm4gX19fc2V0RXJyTm8oZS5lcnJubyk7Ci0gICAg
ICB9LGhhc2hOYW1lOmZ1bmN0aW9uIChwYXJlbnRpZCwgbmFtZSkgewotICAgICAgICB2YXIgaGFz
aCA9IDA7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKykgewot
ICAgICAgICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoICsgbmFtZS5jaGFyQ29kZUF0KGkp
KSB8IDA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuICgocGFyZW50aWQgKyBoYXNoKSA+Pj4g
MCkgJSBGUy5uYW1lX3RhYmxlLmxlbmd0aDsKLSAgICAgIH0saGFzaEFkZE5vZGU6ZnVuY3Rpb24g
KG5vZGUpIHsKLSAgICAgICAgdmFyIGhhc2ggPSBGUy5oYXNoTmFtZShub2RlLnBhcmVudC5pZCwg
bm9kZS5uYW1lKTsKLSAgICAgICAgbm9kZS5uYW1lX25leHQgPSBGUy5uYW1lX3RhYmxlW2hhc2hd
OwotICAgICAgICBGUy5uYW1lX3RhYmxlW2hhc2hdID0gbm9kZTsKLSAgICAgIH0saGFzaFJlbW92
ZU5vZGU6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgdmFyIGhhc2ggPSBGUy5oYXNoTmFtZShu
b2RlLnBhcmVudC5pZCwgbm9kZS5uYW1lKTsKLSAgICAgICAgaWYgKEZTLm5hbWVfdGFibGVbaGFz
aF0gPT09IG5vZGUpIHsKLSAgICAgICAgICBGUy5uYW1lX3RhYmxlW2hhc2hdID0gbm9kZS5uYW1l
X25leHQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdmFyIGN1cnJlbnQgPSBGUy5uYW1l
X3RhYmxlW2hhc2hdOwotICAgICAgICAgIHdoaWxlIChjdXJyZW50KSB7Ci0gICAgICAgICAgICBp
ZiAoY3VycmVudC5uYW1lX25leHQgPT09IG5vZGUpIHsKLSAgICAgICAgICAgICAgY3VycmVudC5u
YW1lX25leHQgPSBub2RlLm5hbWVfbmV4dDsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5uYW1lX25leHQ7Ci0gICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICB9LGxvb2t1cE5vZGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFt
ZSkgewotICAgICAgICB2YXIgZXJyID0gRlMubWF5TG9va3VwKHBhcmVudCk7Ci0gICAgICAgIGlm
IChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAg
ICB9Ci0gICAgICAgIHZhciBoYXNoID0gRlMuaGFzaE5hbWUocGFyZW50LmlkLCBuYW1lKTsKLSAg
ICAgICAgZm9yICh2YXIgbm9kZSA9IEZTLm5hbWVfdGFibGVbaGFzaF07IG5vZGU7IG5vZGUgPSBu
b2RlLm5hbWVfbmV4dCkgewotICAgICAgICAgIGlmIChub2RlLnBhcmVudC5pZCA9PT0gcGFyZW50
LmlkICYmIG5vZGUubmFtZSA9PT0gbmFtZSkgewotICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0g
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIC8vIGlmIHdlIGZhaWxlZCB0byBmaW5kIGl0
IGluIHRoZSBjYWNoZSwgY2FsbCBpbnRvIHRoZSBWRlMKLSAgICAgICAgcmV0dXJuIEZTLmxvb2t1
cChwYXJlbnQsIG5hbWUpOwotICAgICAgfSxjcmVhdGVOb2RlOmZ1bmN0aW9uIChwYXJlbnQsIG5h
bWUsIG1vZGUsIHJkZXYpIHsKLSAgICAgICAgdmFyIG5vZGUgPSB7Ci0gICAgICAgICAgaWQ6IEZT
Lm5leHRJbm9kZSsrLAotICAgICAgICAgIG5hbWU6IG5hbWUsCi0gICAgICAgICAgbW9kZTogbW9k
ZSwKLSAgICAgICAgICBub2RlX29wczoge30sCi0gICAgICAgICAgc3RyZWFtX29wczoge30sCi0g
ICAgICAgICAgcmRldjogcmRldiwKLSAgICAgICAgICBwYXJlbnQ6IG51bGwsCi0gICAgICAgICAg
bW91bnQ6IG51bGwKLSAgICAgICAgfTsKLSAgICAgICAgaWYgKCFwYXJlbnQpIHsKLSAgICAgICAg
ICBwYXJlbnQgPSBub2RlOyAgLy8gcm9vdCBub2RlIHNldHMgcGFyZW50IHRvIGl0c2VsZgotICAg
ICAgICB9Ci0gICAgICAgIG5vZGUucGFyZW50ID0gcGFyZW50OwotICAgICAgICBub2RlLm1vdW50
ID0gcGFyZW50Lm1vdW50OwotICAgICAgICAvLyBjb21wYXRpYmlsaXR5Ci0gICAgICAgIHZhciBy
ZWFkTW9kZSA9IDI5MiB8IDczOwotICAgICAgICB2YXIgd3JpdGVNb2RlID0gMTQ2OwotICAgICAg
ICAvLyBOT1RFIHdlIG11c3QgdXNlIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIGluc3RlYWQgb2Yg
aW5kaXZpZHVhbCBjYWxscyB0bwotICAgICAgICAvLyBPYmplY3QuZGVmaW5lUHJvcGVydHkgaW4g
b3JkZXIgdG8gbWFrZSBjbG9zdXJlIGNvbXBpbGVyIGhhcHB5Ci0gICAgICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0aWVzKG5vZGUsIHsKLSAgICAgICAgICByZWFkOiB7Ci0gICAgICAgICAgICBnZXQ6
IGZ1bmN0aW9uKCkgeyByZXR1cm4gKG5vZGUubW9kZSAmIHJlYWRNb2RlKSA9PT0gcmVhZE1vZGU7
IH0sCi0gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbCkgeyB2YWwgPyBub2RlLm1vZGUgfD0g
cmVhZE1vZGUgOiBub2RlLm1vZGUgJj0gfnJlYWRNb2RlOyB9Ci0gICAgICAgICAgfSwKLSAgICAg
ICAgICB3cml0ZTogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChub2Rl
Lm1vZGUgJiB3cml0ZU1vZGUpID09PSB3cml0ZU1vZGU7IH0sCi0gICAgICAgICAgICBzZXQ6IGZ1
bmN0aW9uKHZhbCkgeyB2YWwgPyBub2RlLm1vZGUgfD0gd3JpdGVNb2RlIDogbm9kZS5tb2RlICY9
IH53cml0ZU1vZGU7IH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGlzRm9sZGVyOiB7Ci0gICAg
ICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gRlMuaXNEaXIobm9kZS5tb2RlKTsgfSwK
LSAgICAgICAgICB9LAotICAgICAgICAgIGlzRGV2aWNlOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1
bmN0aW9uKCkgeyByZXR1cm4gRlMuaXNDaHJkZXYobm9kZS5tb2RlKTsgfSwKLSAgICAgICAgICB9
LAotICAgICAgICB9KTsKLSAgICAgICAgRlMuaGFzaEFkZE5vZGUobm9kZSk7Ci0gICAgICAgIHJl
dHVybiBub2RlOwotICAgICAgfSxkZXN0cm95Tm9kZTpmdW5jdGlvbiAobm9kZSkgewotICAgICAg
ICBGUy5oYXNoUmVtb3ZlTm9kZShub2RlKTsKLSAgICAgIH0saXNSb290OmZ1bmN0aW9uIChub2Rl
KSB7Ci0gICAgICAgIHJldHVybiBub2RlID09PSBub2RlLnBhcmVudDsKLSAgICAgIH0saXNNb3Vu
dHBvaW50OmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHJldHVybiBub2RlLm1vdW50ZWQ7Ci0g
ICAgICB9LGlzRmlsZTpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAw
MTcwMDAwKSA9PT0gMDEwMDAwMDsKLSAgICAgIH0saXNEaXI6ZnVuY3Rpb24gKG1vZGUpIHsKLSAg
ICAgICAgcmV0dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAwNDAwMDA7Ci0gICAgICB9LGlzTGlu
azpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9PT0g
MDEyMDAwMDsKLSAgICAgIH0saXNDaHJkZXY6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0
dXJuIChtb2RlICYgMDE3MDAwMCkgPT09IDAwMjAwMDA7Ci0gICAgICB9LGlzQmxrZGV2OmZ1bmN0
aW9uIChtb2RlKSB7Ci0gICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDYwMDAw
OwotICAgICAgfSxpc0ZJRk86ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2Rl
ICYgMDE3MDAwMCkgPT09IDAwMTAwMDA7Ci0gICAgICB9LGN3ZDpmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIHJldHVybiBGUy5jdXJyZW50UGF0aDsKLSAgICAgIH0sbG9va3VwUGF0aDpmdW5jdGlvbiAo
cGF0aCwgb3B0cykgewotICAgICAgICBwYXRoID0gUEFUSC5yZXNvbHZlKEZTLmN1cnJlbnRQYXRo
LCBwYXRoKTsKLSAgICAgICAgb3B0cyA9IG9wdHMgfHwgeyByZWN1cnNlX2NvdW50OiAwIH07Ci0g
ICAgICAgIGlmIChvcHRzLnJlY3Vyc2VfY291bnQgPiA4KSB7ICAvLyBtYXggcmVjdXJzaXZlIGxv
b2t1cCBvZiA4Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RUxPT1ApOwotICAgICAgICB9Ci0gICAgICAgIC8vIHNwbGl0IHRoZSBwYXRoCi0gICAgICAgIHZh
ciBwYXJ0cyA9IFBBVEgubm9ybWFsaXplQXJyYXkocGF0aC5zcGxpdCgnLycpLmZpbHRlcihmdW5j
dGlvbihwKSB7Ci0gICAgICAgICAgcmV0dXJuICEhcDsKLSAgICAgICAgfSksIGZhbHNlKTsKLSAg
ICAgICAgLy8gc3RhcnQgYXQgdGhlIHJvb3QKLSAgICAgICAgdmFyIGN1cnJlbnQgPSBGUy5yb290
OwotICAgICAgICB2YXIgY3VycmVudF9wYXRoID0gJy8nOwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIGlzbGFzdCA9IChpID09
PSBwYXJ0cy5sZW5ndGgtMSk7Ci0gICAgICAgICAgaWYgKGlzbGFzdCAmJiBvcHRzLnBhcmVudCkg
ewotICAgICAgICAgICAgLy8gc3RvcCByZXNvbHZpbmcKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgIH0KLSAgICAgICAgICBjdXJyZW50ID0gRlMubG9va3VwTm9kZShjdXJyZW50LCBwYXJ0
c1tpXSk7Ci0gICAgICAgICAgY3VycmVudF9wYXRoID0gUEFUSC5qb2luKGN1cnJlbnRfcGF0aCwg
cGFydHNbaV0pOwotICAgICAgICAgIC8vIGp1bXAgdG8gdGhlIG1vdW50J3Mgcm9vdCBub2RlIGlm
IHRoaXMgaXMgYSBtb3VudHBvaW50Ci0gICAgICAgICAgaWYgKEZTLmlzTW91bnRwb2ludChjdXJy
ZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubW91bnQucm9vdDsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgLy8gZm9sbG93IHN5bWxpbmtzCi0gICAgICAgICAgLy8gYnkgZGVm
YXVsdCwgbG9va3VwUGF0aCB3aWxsIG5vdCBmb2xsb3cgYSBzeW1saW5rIGlmIGl0IGlzIHRoZSBm
aW5hbCBwYXRoIGNvbXBvbmVudC4KLSAgICAgICAgICAvLyBzZXR0aW5nIG9wdHMuZm9sbG93ID0g
dHJ1ZSB3aWxsIG92ZXJyaWRlIHRoaXMgYmVoYXZpb3IuCi0gICAgICAgICAgaWYgKCFpc2xhc3Qg
fHwgb3B0cy5mb2xsb3cpIHsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgICAg
ICB3aGlsZSAoRlMuaXNMaW5rKGN1cnJlbnQubW9kZSkpIHsKLSAgICAgICAgICAgICAgdmFyIGxp
bmsgPSBGUy5yZWFkbGluayhjdXJyZW50X3BhdGgpOwotICAgICAgICAgICAgICBjdXJyZW50X3Bh
dGggPSBQQVRILnJlc29sdmUoUEFUSC5kaXJuYW1lKGN1cnJlbnRfcGF0aCksIGxpbmspOwotICAg
ICAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChjdXJyZW50X3BhdGgsIHsgcmVj
dXJzZV9jb3VudDogb3B0cy5yZWN1cnNlX2NvdW50IH0pOwotICAgICAgICAgICAgICBjdXJyZW50
ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgICAgIGlmIChjb3VudCsrID4gNDApIHsgIC8vIGxp
bWl0IG1heCBjb25zZWN1dGl2ZSBzeW1saW5rcyB0byA0MCAoU1lNTE9PUF9NQVgpLgotICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVMT09QKTsKLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4geyBwYXRoOiBjdXJyZW50X3BhdGgsIG5vZGU6IGN1cnJlbnQgfTsKLSAgICAg
IH0sZ2V0UGF0aDpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICB2YXIgcGF0aDsKLSAgICAgICAg
d2hpbGUgKHRydWUpIHsKLSAgICAgICAgICBpZiAoRlMuaXNSb290KG5vZGUpKSB7Ci0gICAgICAg
ICAgICByZXR1cm4gcGF0aCA/IFBBVEguam9pbihub2RlLm1vdW50Lm1vdW50cG9pbnQsIHBhdGgp
IDogbm9kZS5tb3VudC5tb3VudHBvaW50OwotICAgICAgICAgIH0KLSAgICAgICAgICBwYXRoID0g
cGF0aCA/IFBBVEguam9pbihub2RlLm5hbWUsIHBhdGgpIDogbm9kZS5uYW1lOwotICAgICAgICAg
IG5vZGUgPSBub2RlLnBhcmVudDsKLSAgICAgICAgfQotICAgICAgfSxmbGFnTW9kZXM6eyJyIjow
LCJycyI6ODE5MiwicisiOjIsInciOjE1MzcsInd4IjozNTg1LCJ4dyI6MzU4NSwidysiOjE1Mzgs
Ind4KyI6MzU4NiwieHcrIjozNTg2LCJhIjo1MjEsImF4IjoyNTY5LCJ4YSI6MjU2OSwiYSsiOjUy
MiwiYXgrIjoyNTcwLCJ4YSsiOjI1NzB9LG1vZGVTdHJpbmdUb0ZsYWdzOmZ1bmN0aW9uIChzdHIp
IHsKLSAgICAgICAgdmFyIGZsYWdzID0gRlMuZmxhZ01vZGVzW3N0cl07Ci0gICAgICAgIGlmICh0
eXBlb2YgZmxhZ3MgPT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdVbmtub3duIGZpbGUgb3BlbiBtb2RlOiAnICsgc3RyKTsKLSAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gZmxhZ3M7Ci0gICAgICB9LGZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nOmZ1bmN0aW9uIChm
bGFnKSB7Ci0gICAgICAgIHZhciBhY2Ntb2RlID0gZmxhZyAmIDM7Ci0gICAgICAgIHZhciBwZXJt
cyA9IFsncicsICd3JywgJ3J3J11bYWNjbW9kZV07Ci0gICAgICAgIGlmICgoZmxhZyAmIDEwMjQp
KSB7Ci0gICAgICAgICAgcGVybXMgKz0gJ3cnOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBw
ZXJtczsKLSAgICAgIH0sbm9kZVBlcm1pc3Npb25zOmZ1bmN0aW9uIChub2RlLCBwZXJtcykgewot
ICAgICAgICBpZiAoRlMuaWdub3JlUGVybWlzc2lvbnMpIHsKLSAgICAgICAgICByZXR1cm4gMDsK
LSAgICAgICAgfQotICAgICAgICAvLyByZXR1cm4gMCBpZiBhbnkgdXNlciwgZ3JvdXAgb3Igb3du
ZXIgYml0cyBhcmUgc2V0LgotICAgICAgICBpZiAocGVybXMuaW5kZXhPZigncicpICE9PSAtMSAm
JiAhKG5vZGUubW9kZSAmIDI5MikpIHsKLSAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUFD
Q0VTOwotICAgICAgICB9IGVsc2UgaWYgKHBlcm1zLmluZGV4T2YoJ3cnKSAhPT0gLTEgJiYgIShu
b2RlLm1vZGUgJiAxNDYpKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVBQ0NFUzsK
LSAgICAgICAgfSBlbHNlIGlmIChwZXJtcy5pbmRleE9mKCd4JykgIT09IC0xICYmICEobm9kZS5t
b2RlICYgNzMpKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVBQ0NFUzsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICAgIH0sbWF5TG9va3VwOmZ1bmN0aW9uIChkaXIp
IHsKLSAgICAgICAgcmV0dXJuIEZTLm5vZGVQZXJtaXNzaW9ucyhkaXIsICd4Jyk7Ci0gICAgICB9
LG1heU1rbm9kOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHN3aXRjaCAobW9kZSAmIDAxNzAw
MDApIHsKLSAgICAgICAgICBjYXNlIDAxMDAwMDA6Ci0gICAgICAgICAgY2FzZSAwMDIwMDAwOgot
ICAgICAgICAgIGNhc2UgMDA2MDAwMDoKLSAgICAgICAgICBjYXNlIDAwMTAwMDA6Ci0gICAgICAg
ICAgY2FzZSAwMTQwMDAwOgotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FSU5WQUw7Ci0gICAgICAgIH0KLSAg
ICAgIH0sbWF5Q3JlYXRlOmZ1bmN0aW9uIChkaXIsIG5hbWUpIHsKLSAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUoZGlyLCBuYW1lKTsKLSAgICAgICAgICBy
ZXR1cm4gRVJSTk9fQ09ERVMuRUVYSVNUOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIEZTLm5vZGVQZXJtaXNzaW9ucyhkaXIsICd3eCcpOwotICAgICAg
fSxtYXlEZWxldGU6ZnVuY3Rpb24gKGRpciwgbmFtZSwgaXNkaXIpIHsKLSAgICAgICAgdmFyIG5v
ZGU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbm9kZSA9IEZTLmxvb2t1cE5vZGUoZGlyLCBu
YW1lKTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHJldHVybiBlLmVycm5vOwot
ICAgICAgICB9Ci0gICAgICAgIHZhciBlcnIgPSBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAnd3gn
KTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHJldHVybiBlcnI7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKGlzZGlyKSB7Ci0gICAgICAgICAgaWYgKCFGUy5pc0Rpcihub2RlLm1vZGUp
KSB7Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRU5PVERJUjsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgaWYgKEZTLmlzUm9vdChub2RlKSB8fCBGUy5nZXRQYXRoKG5vZGUpID09PSBG
Uy5jdXJyZW50UGF0aCkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVCVVNZOwot
ICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBpZiAoRlMuaXNEaXIobm9k
ZS5tb2RlKSkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVJU0RJUjsKLSAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9LG1heU9wZW46ZnVu
Y3Rpb24gKG5vZGUsIGZsYWdzKSB7Ci0gICAgICAgIGlmICghbm9kZSkgewotICAgICAgICAgIHJl
dHVybiBFUlJOT19DT0RFUy5FTk9FTlQ7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKEZTLmlzTGlu
ayhub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVMT09QOwotICAg
ICAgICB9IGVsc2UgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBpZiAoKGZs
YWdzICYgMykgIT09IDAgfHwgIC8vIG9wZW5pbmcgZm9yIHdyaXRlCi0gICAgICAgICAgICAgIChm
bGFncyAmIDEwMjQpKSB7Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUlTRElSOwot
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gRlMubm9kZVBlcm1pc3Npb25z
KG5vZGUsIEZTLmZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nKGZsYWdzKSk7Ci0gICAgICB9LGNocmRl
dl9zdHJlYW1fb3BzOntvcGVuOmZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICAgICAgICB2YXIgZGV2
aWNlID0gRlMuZ2V0RGV2aWNlKHN0cmVhbS5ub2RlLnJkZXYpOwotICAgICAgICAgIC8vIG92ZXJy
aWRlIG5vZGUncyBzdHJlYW0gb3BzIHdpdGggdGhlIGRldmljZSdzCi0gICAgICAgICAgc3RyZWFt
LnN0cmVhbV9vcHMgPSBkZXZpY2Uuc3RyZWFtX29wczsKLSAgICAgICAgICAvLyBmb3J3YXJkIHRo
ZSBvcGVuIGNhbGwKLSAgICAgICAgICBpZiAoc3RyZWFtLnN0cmVhbV9vcHMub3BlbikgewotICAg
ICAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMub3BlbihzdHJlYW0pOwotICAgICAgICAgIH0KLSAg
ICAgICAgfSxsbHNlZWs6ZnVuY3Rpb24gKCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSk7Ci0gICAgICAgIH19LG1ham9yOmZ1bmN0aW9uIChk
ZXYpIHsKLSAgICAgICAgcmV0dXJuICgoZGV2KSA+PiA4KTsKLSAgICAgIH0sbWlub3I6ZnVuY3Rp
b24gKGRldikgewotICAgICAgICByZXR1cm4gKChkZXYpICYgMHhmZik7Ci0gICAgICB9LG1ha2Vk
ZXY6ZnVuY3Rpb24gKG1hLCBtaSkgewotICAgICAgICByZXR1cm4gKChtYSkgPDwgOCB8IChtaSkp
OwotICAgICAgfSxyZWdpc3RlckRldmljZTpmdW5jdGlvbiAoZGV2LCBvcHMpIHsKLSAgICAgICAg
RlMuZGV2aWNlc1tkZXZdID0geyBzdHJlYW1fb3BzOiBvcHMgfTsKLSAgICAgIH0sZ2V0RGV2aWNl
OmZ1bmN0aW9uIChkZXYpIHsKLSAgICAgICAgcmV0dXJuIEZTLmRldmljZXNbZGV2XTsKLSAgICAg
IH0sTUFYX09QRU5fRkRTOjQwOTYsbmV4dGZkOmZ1bmN0aW9uIChmZF9zdGFydCwgZmRfZW5kKSB7
Ci0gICAgICAgIGZkX3N0YXJ0ID0gZmRfc3RhcnQgfHwgMTsKLSAgICAgICAgZmRfZW5kID0gZmRf
ZW5kIHx8IEZTLk1BWF9PUEVOX0ZEUzsKLSAgICAgICAgZm9yICh2YXIgZmQgPSBmZF9zdGFydDsg
ZmQgPD0gZmRfZW5kOyBmZCsrKSB7Ci0gICAgICAgICAgaWYgKCFGUy5zdHJlYW1zW2ZkXSkgewot
ICAgICAgICAgICAgcmV0dXJuIGZkOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTUZJTEUpOwotICAgICAgfSxnZXRT
dHJlYW06ZnVuY3Rpb24gKGZkKSB7Ci0gICAgICAgIHJldHVybiBGUy5zdHJlYW1zW2ZkXTsKLSAg
ICAgIH0sY3JlYXRlU3RyZWFtOmZ1bmN0aW9uIChzdHJlYW0sIGZkX3N0YXJ0LCBmZF9lbmQpIHsK
LSAgICAgICAgdmFyIGZkID0gRlMubmV4dGZkKGZkX3N0YXJ0LCBmZF9lbmQpOwotICAgICAgICBz
dHJlYW0uZmQgPSBmZDsKLSAgICAgICAgLy8gY29tcGF0aWJpbGl0eQotICAgICAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydGllcyhzdHJlYW0sIHsKLSAgICAgICAgICBvYmplY3Q6IHsKLSAgICAgICAg
ICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBzdHJlYW0ubm9kZTsgfSwKLSAgICAgICAgICAg
IHNldDogZnVuY3Rpb24odmFsKSB7IHN0cmVhbS5ub2RlID0gdmFsOyB9Ci0gICAgICAgICAgfSwK
LSAgICAgICAgICBpc1JlYWQ6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVy
biAoc3RyZWFtLmZsYWdzICYgMykgIT09IDE7IH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGlz
V3JpdGU6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiAoc3RyZWFtLmZs
YWdzICYgMykgIT09IDA7IH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGlzQXBwZW5kOiB7Ci0g
ICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gKHN0cmVhbS5mbGFncyAmIDgpOyB9
Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgRlMuc3RyZWFtc1tmZF0gPSBzdHJl
YW07Ci0gICAgICAgIHJldHVybiBzdHJlYW07Ci0gICAgICB9LGNsb3NlU3RyZWFtOmZ1bmN0aW9u
IChmZCkgewotICAgICAgICBGUy5zdHJlYW1zW2ZkXSA9IG51bGw7Ci0gICAgICB9LGdldE1vZGU6
ZnVuY3Rpb24gKGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIHZhciBtb2RlID0gMDsKLSAg
ICAgICAgaWYgKGNhblJlYWQpIG1vZGUgfD0gMjkyIHwgNzM7Ci0gICAgICAgIGlmIChjYW5Xcml0
ZSkgbW9kZSB8PSAxNDY7Ci0gICAgICAgIHJldHVybiBtb2RlOwotICAgICAgfSxqb2luUGF0aDpm
dW5jdGlvbiAocGFydHMsIGZvcmNlUmVsYXRpdmUpIHsKLSAgICAgICAgdmFyIHBhdGggPSBQQVRI
LmpvaW4uYXBwbHkobnVsbCwgcGFydHMpOwotICAgICAgICBpZiAoZm9yY2VSZWxhdGl2ZSAmJiBw
YXRoWzBdID09ICcvJykgcGF0aCA9IHBhdGguc3Vic3RyKDEpOwotICAgICAgICByZXR1cm4gcGF0
aDsKLSAgICAgIH0sYWJzb2x1dGVQYXRoOmZ1bmN0aW9uIChyZWxhdGl2ZSwgYmFzZSkgewotICAg
ICAgICByZXR1cm4gUEFUSC5yZXNvbHZlKGJhc2UsIHJlbGF0aXZlKTsKLSAgICAgIH0sc3RhbmRh
cmRpemVQYXRoOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHJldHVybiBQQVRILm5vcm1hbGl6
ZShwYXRoKTsKLSAgICAgIH0sZmluZE9iamVjdDpmdW5jdGlvbiAocGF0aCwgZG9udFJlc29sdmVM
YXN0TGluaykgewotICAgICAgICB2YXIgcmV0ID0gRlMuYW5hbHl6ZVBhdGgocGF0aCwgZG9udFJl
c29sdmVMYXN0TGluayk7Ci0gICAgICAgIGlmIChyZXQuZXhpc3RzKSB7Ci0gICAgICAgICAgcmV0
dXJuIHJldC5vYmplY3Q7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgX19fc2V0RXJyTm8o
cmV0LmVycm9yKTsKLSAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotICAgICAgfSxh
bmFseXplUGF0aDpmdW5jdGlvbiAocGF0aCwgZG9udFJlc29sdmVMYXN0TGluaykgewotICAgICAg
ICAvLyBvcGVyYXRlIGZyb20gd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSBzeW1saW5rJ3MgdGFy
Z2V0Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgo
cGF0aCwgeyBmb2xsb3c6ICFkb250UmVzb2x2ZUxhc3RMaW5rIH0pOwotICAgICAgICAgIHBhdGgg
PSBsb29rdXAucGF0aDsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICB9Ci0gICAgICAg
IHZhciByZXQgPSB7Ci0gICAgICAgICAgaXNSb290OiBmYWxzZSwgZXhpc3RzOiBmYWxzZSwgZXJy
b3I6IDAsIG5hbWU6IG51bGwsIHBhdGg6IG51bGwsIG9iamVjdDogbnVsbCwKLSAgICAgICAgICBw
YXJlbnRFeGlzdHM6IGZhbHNlLCBwYXJlbnRQYXRoOiBudWxsLCBwYXJlbnRPYmplY3Q6IG51bGwK
LSAgICAgICAgfTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9v
a3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAgICAgICByZXQucGFyZW50RXhp
c3RzID0gdHJ1ZTsKLSAgICAgICAgICByZXQucGFyZW50UGF0aCA9IGxvb2t1cC5wYXRoOwotICAg
ICAgICAgIHJldC5wYXJlbnRPYmplY3QgPSBsb29rdXAubm9kZTsKLSAgICAgICAgICByZXQubmFt
ZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7Ci0gICAgICAgICAgbG9va3VwID0gRlMubG9va3VwUGF0
aChwYXRoLCB7IGZvbGxvdzogIWRvbnRSZXNvbHZlTGFzdExpbmsgfSk7Ci0gICAgICAgICAgcmV0
LmV4aXN0cyA9IHRydWU7Ci0gICAgICAgICAgcmV0LnBhdGggPSBsb29rdXAucGF0aDsKLSAgICAg
ICAgICByZXQub2JqZWN0ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgcmV0Lm5hbWUgPSBsb29r
dXAubm9kZS5uYW1lOwotICAgICAgICAgIHJldC5pc1Jvb3QgPSBsb29rdXAucGF0aCA9PT0gJy8n
OwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgcmV0LmVycm9yID0gZS5lcnJubzsK
LSAgICAgICAgfTsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgIH0sY3JlYXRlRm9sZGVyOmZ1
bmN0aW9uIChwYXJlbnQsIG5hbWUsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIHZhciBw
YXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50IDogRlMu
Z2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgdmFyIG1vZGUgPSBGUy5nZXRNb2RlKGNh
blJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgcmV0dXJuIEZTLm1rZGlyKHBhdGgsIG1vZGUpOwot
ICAgICAgfSxjcmVhdGVQYXRoOmZ1bmN0aW9uIChwYXJlbnQsIHBhdGgsIGNhblJlYWQsIGNhbldy
aXRlKSB7Ci0gICAgICAgIHBhcmVudCA9IHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFy
ZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpOwotICAgICAgICB2YXIgcGFydHMgPSBwYXRoLnNwbGl0
KCcvJykucmV2ZXJzZSgpOwotICAgICAgICB3aGlsZSAocGFydHMubGVuZ3RoKSB7Ci0gICAgICAg
ICAgdmFyIHBhcnQgPSBwYXJ0cy5wb3AoKTsKLSAgICAgICAgICBpZiAoIXBhcnQpIGNvbnRpbnVl
OwotICAgICAgICAgIHZhciBjdXJyZW50ID0gUEFUSC5qb2luKHBhcmVudCwgcGFydCk7Ci0gICAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgIEZTLm1rZGlyKGN1cnJlbnQsIDA3NzcpOwotICAgICAg
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIC8vIGlnbm9yZSBFRVhJU1QKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgcGFyZW50ID0gY3VycmVudDsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gY3VycmVudDsKLSAgICAgIH0sY3JlYXRlRmlsZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBw
cm9wZXJ0aWVzLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgcGF0aCA9IFBBVEgu
am9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFy
ZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2RlID0gRlMuZ2V0TW9kZShjYW5SZWFkLCBjYW5X
cml0ZSk7Ci0gICAgICAgIHJldHVybiBGUy5jcmVhdGUocGF0aCwgbW9kZSk7Ci0gICAgICB9LGNy
ZWF0ZURhdGFGaWxlOmZ1bmN0aW9uIChwYXJlbnQsIG5hbWUsIGRhdGEsIGNhblJlYWQsIGNhbldy
aXRlKSB7Ci0gICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdz
dHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgdmFy
IG1vZGUgPSBGUy5nZXRNb2RlKGNhblJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgdmFyIG5vZGUg
PSBGUy5jcmVhdGUocGF0aCwgbW9kZSk7Ci0gICAgICAgIGlmIChkYXRhKSB7Ci0gICAgICAgICAg
aWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykgewotICAgICAgICAgICAgdmFyIGFyciA9IG5l
dyBBcnJheShkYXRhLmxlbmd0aCk7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0g
ZGF0YS5sZW5ndGg7IGkgPCBsZW47ICsraSkgYXJyW2ldID0gZGF0YS5jaGFyQ29kZUF0KGkpOwot
ICAgICAgICAgICAgZGF0YSA9IGFycjsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gbWFrZSBz
dXJlIHdlIGNhbiB3cml0ZSB0byB0aGUgZmlsZQotICAgICAgICAgIEZTLmNobW9kKHBhdGgsIG1v
ZGUgfCAxNDYpOwotICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5vcGVuKHBhdGgsICd3Jyk7Ci0g
ICAgICAgICAgRlMud3JpdGUoc3RyZWFtLCBkYXRhLCAwLCBkYXRhLmxlbmd0aCwgMCk7Ci0gICAg
ICAgICAgRlMuY2xvc2Uoc3RyZWFtKTsKLSAgICAgICAgICBGUy5jaG1vZChwYXRoLCBtb2RlKTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgIH0sY3JlYXRlRGV2aWNlOmZ1
bmN0aW9uIChwYXJlbnQsIG5hbWUsIGlucHV0LCBvdXRwdXQpIHsKLSAgICAgICAgdmFyIHBhdGgg
PSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBGUy5nZXRQ
YXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICB2YXIgbW9kZSA9IGlucHV0ICYmIG91dHB1dCA/
IDA3NzcgOiAoaW5wdXQgPyAwMzMzIDogMDU1NSk7Ci0gICAgICAgIGlmICghRlMuY3JlYXRlRGV2
aWNlLm1ham9yKSBGUy5jcmVhdGVEZXZpY2UubWFqb3IgPSA2NDsKLSAgICAgICAgdmFyIGRldiA9
IEZTLm1ha2VkZXYoRlMuY3JlYXRlRGV2aWNlLm1ham9yKyssIDApOwotICAgICAgICAvLyBDcmVh
dGUgYSBmYWtlIGRldmljZSB0aGF0IGEgc2V0IG9mIHN0cmVhbSBvcHMgdG8gZW11bGF0ZQotICAg
ICAgICAvLyB0aGUgb2xkIGJlaGF2aW9yLgotICAgICAgICBGUy5yZWdpc3RlckRldmljZShkZXYs
IHsKLSAgICAgICAgICBvcGVuOiBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICAgICAgICAgIHN0cmVh
bS5zZWVrYWJsZSA9IGZhbHNlOwotICAgICAgICAgIH0sCi0gICAgICAgICAgY2xvc2U6IGZ1bmN0
aW9uKHN0cmVhbSkgewotICAgICAgICAgICAgLy8gZmx1c2ggYW55IHBlbmRpbmcgbGluZSBkYXRh
Ci0gICAgICAgICAgICBpZiAob3V0cHV0ICYmIG91dHB1dC5idWZmZXIgJiYgb3V0cHV0LmJ1ZmZl
ci5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgb3V0cHV0KDEwKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICB9LAotICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZz
ZXQsIGxlbmd0aCwgcG9zIC8qIGlnbm9yZWQgKi8pIHsKLSAgICAgICAgICAgIHZhciBieXRlc1Jl
YWQgPSAwOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewot
ICAgICAgICAgICAgICB2YXIgcmVzdWx0OwotICAgICAgICAgICAgICB0cnkgewotICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IGlucHV0KCk7Ci0gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwot
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCAm
JiBieXRlc1JlYWQgPT09IDApIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FQUdBSU4pOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQpIGJyZWFrOwotICAg
ICAgICAgICAgICBieXRlc1JlYWQrKzsKLSAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCtpXSA9
IHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChieXRlc1JlYWQpIHsKLSAg
ICAgICAgICAgICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHJldHVybiBieXRlc1JlYWQ7Ci0gICAgICAgICAgfSwKLSAgICAg
ICAgICB3cml0ZTogZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3Mp
IHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBvdXRwdXQoYnVmZmVyW29mZnNldCtpXSk7
Ci0gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAobGVuZ3RoKSB7Ci0gICAgICAgICAgICAgIHN0cmVhbS5u
b2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZXR1cm4gaTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm4gRlMubWtk
ZXYocGF0aCwgbW9kZSwgZGV2KTsKLSAgICAgIH0sY3JlYXRlTGluazpmdW5jdGlvbiAocGFyZW50
LCBuYW1lLCB0YXJnZXQsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIHZhciBwYXRoID0g
UEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50IDogRlMuZ2V0UGF0
aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgcmV0dXJuIEZTLnN5bWxpbmsodGFyZ2V0LCBwYXRo
KTsKLSAgICAgIH0sZm9yY2VMb2FkRmlsZTpmdW5jdGlvbiAob2JqKSB7Ci0gICAgICAgIGlmIChv
YmouaXNEZXZpY2UgfHwgb2JqLmlzRm9sZGVyIHx8IG9iai5saW5rIHx8IG9iai5jb250ZW50cykg
cmV0dXJuIHRydWU7Ci0gICAgICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgaWYgKHR5
cGVvZiBYTUxIdHRwUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkxhenkgbG9hZGluZyBzaG91bGQgaGF2ZSBiZWVuIHBlcmZvcm1lZCAoY29udGVu
dHMgc2V0KSBpbiBjcmVhdGVMYXp5RmlsZSwgYnV0IGl0IHdhcyBub3QuIExhenkgbG9hZGluZyBv
bmx5IHdvcmtzIGluIHdlYiB3b3JrZXJzLiBVc2UgLS1lbWJlZC1maWxlIG9yIC0tcHJlbG9hZC1m
aWxlIGluIGVtY2Mgb24gdGhlIG1haW4gdGhyZWFkLiIpOwotICAgICAgICB9IGVsc2UgaWYgKE1v
ZHVsZVsncmVhZCddKSB7Ci0gICAgICAgICAgLy8gQ29tbWFuZC1saW5lLgotICAgICAgICAgIHRy
eSB7Ci0gICAgICAgICAgICAvLyBXQVJOSU5HOiBDYW4ndCByZWFkIGJpbmFyeSBmaWxlcyBpbiBW
OCdzIGQ4IG9yIHRyYWNlbW9ua2V5J3MganMsIGFzCi0gICAgICAgICAgICAvLyAgICAgICAgICBy
ZWFkKCkgd2lsbCB0cnkgdG8gcGFyc2UgVVRGOC4KLSAgICAgICAgICAgIG9iai5jb250ZW50cyA9
IGludEFycmF5RnJvbVN0cmluZyhNb2R1bGVbJ3JlYWQnXShvYmoudXJsKSwgdHJ1ZSk7Ci0gICAg
ICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgICAg
ICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5v
dCBsb2FkIHdpdGhvdXQgcmVhZCgpIG9yIFhNTEh0dHBSZXF1ZXN0LicpOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICghc3VjY2VzcykgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAg
ICAgcmV0dXJuIHN1Y2Nlc3M7Ci0gICAgICB9LGNyZWF0ZUxhenlGaWxlOmZ1bmN0aW9uIChwYXJl
bnQsIG5hbWUsIHVybCwgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgaWYgKHR5cGVvZiBY
TUxIdHRwUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICBpZiAoIUVOVklST05N
RU5UX0lTX1dPUktFUikgdGhyb3cgJ0Nhbm5vdCBkbyBzeW5jaHJvbm91cyBiaW5hcnkgWEhScyBv
dXRzaWRlIHdlYndvcmtlcnMgaW4gbW9kZXJuIGJyb3dzZXJzLiBVc2UgLS1lbWJlZC1maWxlIG9y
IC0tcHJlbG9hZC1maWxlIGluIGVtY2MnOwotICAgICAgICAgIC8vIExhenkgY2h1bmtlZCBVaW50
OEFycmF5IChpbXBsZW1lbnRzIGdldCBhbmQgbGVuZ3RoIGZyb20gVWludDhBcnJheSkuIEFjdHVh
bCBnZXR0aW5nIGlzIGFic3RyYWN0ZWQgYXdheSBmb3IgZXZlbnR1YWwgcmV1c2UuCi0gICAgICAg
ICAgdmFyIExhenlVaW50OEFycmF5ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0aGlzLmxl
bmd0aEtub3duID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLmNodW5rcyA9IFtdOyAvLyBMb2Fk
ZWQgY2h1bmtzLiBJbmRleCBpcyB0aGUgY2h1bmsgbnVtYmVyCi0gICAgICAgICAgfQotICAgICAg
ICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihpZHgpIHsKLSAgICAg
ICAgICAgIGlmIChpZHggPiB0aGlzLmxlbmd0aC0xIHx8IGlkeCA8IDApIHsKLSAgICAgICAgICAg
ICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZhciBjaHVu
a09mZnNldCA9IGlkeCAlIHRoaXMuY2h1bmtTaXplOwotICAgICAgICAgICAgdmFyIGNodW5rTnVt
ID0gTWF0aC5mbG9vcihpZHggLyB0aGlzLmNodW5rU2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm4g
dGhpcy5nZXR0ZXIoY2h1bmtOdW0pW2NodW5rT2Zmc2V0XTsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgTGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLnNldERhdGFHZXR0ZXIgPSBmdW5jdGlvbihnZXR0
ZXIpIHsKLSAgICAgICAgICAgIHRoaXMuZ2V0dGVyID0gZ2V0dGVyOwotICAgICAgICAgIH0KLSAg
ICAgICAgICBMYXp5VWludDhBcnJheS5wcm90b3R5cGUuY2FjaGVMZW5ndGggPSBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgLy8gRmluZCBsZW5ndGgKLSAgICAgICAgICAgICAgdmFyIHhociA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgICAgICAgICAgICB4aHIub3BlbignSEVBRCcsIHVy
bCwgZmFsc2UpOwotICAgICAgICAgICAgICB4aHIuc2VuZChudWxsKTsKLSAgICAgICAgICAgICAg
aWYgKCEoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCB8fCB4aHIuc3RhdHVz
ID09PSAzMDQpKSB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgIiArIHVybCArICIuIFN0
YXR1czogIiArIHhoci5zdGF0dXMpOwotICAgICAgICAgICAgICB2YXIgZGF0YWxlbmd0aCA9IE51
bWJlcih4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtbGVuZ3RoIikpOwotICAgICAgICAg
ICAgICB2YXIgaGVhZGVyOwotICAgICAgICAgICAgICB2YXIgaGFzQnl0ZVNlcnZpbmcgPSAoaGVh
ZGVyID0geGhyLmdldFJlc3BvbnNlSGVhZGVyKCJBY2NlcHQtUmFuZ2VzIikpICYmIGhlYWRlciA9
PT0gImJ5dGVzIjsKLSAgICAgICAgICAgICAgdmFyIGNodW5rU2l6ZSA9IDEwMjQqMTAyNDsgLy8g
Q2h1bmsgc2l6ZSBpbiBieXRlcwotICAgICAgICAgICAgICBpZiAoIWhhc0J5dGVTZXJ2aW5nKSBj
aHVua1NpemUgPSBkYXRhbGVuZ3RoOwotICAgICAgICAgICAgICAvLyBGdW5jdGlvbiB0byBnZXQg
YSByYW5nZSBmcm9tIHRoZSByZW1vdGUgVVJMLgotICAgICAgICAgICAgICB2YXIgZG9YSFIgPSAo
ZnVuY3Rpb24oZnJvbSwgdG8pIHsKLSAgICAgICAgICAgICAgICBpZiAoZnJvbSA+IHRvKSB0aHJv
dyBuZXcgRXJyb3IoImludmFsaWQgcmFuZ2UgKCIgKyBmcm9tICsgIiwgIiArIHRvICsgIikgb3Ig
bm8gYnl0ZXMgcmVxdWVzdGVkISIpOwotICAgICAgICAgICAgICAgIGlmICh0byA+IGRhdGFsZW5n
dGgtMSkgdGhyb3cgbmV3IEVycm9yKCJvbmx5ICIgKyBkYXRhbGVuZ3RoICsgIiBieXRlcyBhdmFp
bGFibGUhIHByb2dyYW1tZXIgZXJyb3IhIik7Ci0gICAgICAgICAgICAgICAgLy8gVE9ETzogVXNl
IG1velJlc3BvbnNlQXJyYXlCdWZmZXIsIHJlc3BvbnNlU3RyZWFtLCBldGMuIGlmIGF2YWlsYWJs
ZS4KLSAgICAgICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAg
ICAgICAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2UpOwotICAgICAgICAgICAgICAg
IGlmIChkYXRhbGVuZ3RoICE9PSBjaHVua1NpemUpIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJSYW5n
ZSIsICJieXRlcz0iICsgZnJvbSArICItIiArIHRvKTsKLSAgICAgICAgICAgICAgICAvLyBTb21l
IGhpbnRzIHRvIHRoZSBicm93c2VyIHRoYXQgd2Ugd2FudCBiaW5hcnkgZGF0YS4KLSAgICAgICAg
ICAgICAgICBpZiAodHlwZW9mIFVpbnQ4QXJyYXkgIT0gJ3VuZGVmaW5lZCcpIHhoci5yZXNwb25z
ZVR5cGUgPSAnYXJyYXlidWZmZXInOwotICAgICAgICAgICAgICAgIGlmICh4aHIub3ZlcnJpZGVN
aW1lVHlwZSkgewotICAgICAgICAgICAgICAgICAgeGhyLm92ZXJyaWRlTWltZVR5cGUoJ3RleHQv
cGxhaW47IGNoYXJzZXQ9eC11c2VyLWRlZmluZWQnKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgICAgICAgICAgICAgaWYgKCEoeGhyLnN0
YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCB8fCB4aHIuc3RhdHVzID09PSAzMDQpKSB0
aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgIiArIHVybCArICIuIFN0YXR1czogIiArIHho
ci5zdGF0dXMpOwotICAgICAgICAgICAgICAgIGlmICh4aHIucmVzcG9uc2UgIT09IHVuZGVmaW5l
ZCkgewotICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHhoci5yZXNwb25z
ZSB8fCBbXSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHJl
dHVybiBpbnRBcnJheUZyb21TdHJpbmcoeGhyLnJlc3BvbnNlVGV4dCB8fCAnJywgdHJ1ZSk7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgdmFyIGxh
enlBcnJheSA9IHRoaXM7Ci0gICAgICAgICAgICAgIGxhenlBcnJheS5zZXREYXRhR2V0dGVyKGZ1
bmN0aW9uKGNodW5rTnVtKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHN0YXJ0ID0gY2h1bmtOdW0g
KiBjaHVua1NpemU7Ci0gICAgICAgICAgICAgICAgdmFyIGVuZCA9IChjaHVua051bSsxKSAqIGNo
dW5rU2l6ZSAtIDE7IC8vIGluY2x1ZGluZyB0aGlzIGJ5dGUKLSAgICAgICAgICAgICAgICBlbmQg
PSBNYXRoLm1pbihlbmQsIGRhdGFsZW5ndGgtMSk7IC8vIGlmIGRhdGFsZW5ndGgtMSBpcyBzZWxl
Y3RlZCwgdGhpcyBpcyB0aGUgbGFzdCBibG9jawotICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yo
bGF6eUFycmF5LmNodW5rc1tjaHVua051bV0pID09PSAidW5kZWZpbmVkIikgewotICAgICAgICAg
ICAgICAgICAgbGF6eUFycmF5LmNodW5rc1tjaHVua051bV0gPSBkb1hIUihzdGFydCwgZW5kKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihsYXp5QXJyYXku
Y2h1bmtzW2NodW5rTnVtXSkgPT09ICJ1bmRlZmluZWQiKSB0aHJvdyBuZXcgRXJyb3IoImRvWEhS
IGZhaWxlZCEiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbGF6eUFycmF5LmNodW5rc1tjaHVu
a051bV07Ci0gICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICB0aGlzLl9sZW5ndGggPSBk
YXRhbGVuZ3RoOwotICAgICAgICAgICAgICB0aGlzLl9jaHVua1NpemUgPSBjaHVua1NpemU7Ci0g
ICAgICAgICAgICAgIHRoaXMubGVuZ3RoS25vd24gPSB0cnVlOwotICAgICAgICAgIH0KLSAgICAg
ICAgICB2YXIgbGF6eUFycmF5ID0gbmV3IExhenlVaW50OEFycmF5KCk7Ci0gICAgICAgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KGxhenlBcnJheSwgImxlbmd0aCIsIHsKLSAgICAgICAgICAgICAg
Z2V0OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLmxlbmd0aEtub3du
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxlbmd0aCgpOwotICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xlbmd0aDsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgIH0pOwotICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShsYXp5QXJyYXksICJjaHVua1NpemUiLCB7Ci0gICAgICAgICAgICAgIGdldDogZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgICAgICBpZighdGhpcy5sZW5ndGhLbm93bikgewotICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMuY2FjaGVMZW5ndGgoKTsKLSAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jaHVua1NpemU7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICB9KTsKLSAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHsgaXNEZXZpY2U6IGZh
bHNlLCBjb250ZW50czogbGF6eUFycmF5IH07Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
dmFyIHByb3BlcnRpZXMgPSB7IGlzRGV2aWNlOiBmYWxzZSwgdXJsOiB1cmwgfTsKLSAgICAgICAg
fQotICAgICAgICB2YXIgbm9kZSA9IEZTLmNyZWF0ZUZpbGUocGFyZW50LCBuYW1lLCBwcm9wZXJ0
aWVzLCBjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgIC8vIFRoaXMgaXMgYSB0b3RhbCBoYWNr
LCBidXQgSSB3YW50IHRvIGdldCB0aGlzIGxhenkgZmlsZSBjb2RlIG91dCBvZiB0aGUKLSAgICAg
ICAgLy8gY29yZSBvZiBNRU1GUy4gSWYgd2Ugd2FudCB0byBrZWVwIHRoaXMgbGF6eSBmaWxlIGNv
bmNlcHQgSSBmZWVsIGl0IHNob3VsZAotICAgICAgICAvLyBiZSBpdHMgb3duIHRoaW4gTEFaWUZT
IHByb3h5aW5nIGNhbGxzIHRvIE1FTUZTLgotICAgICAgICBpZiAocHJvcGVydGllcy5jb250ZW50
cykgewotICAgICAgICAgIG5vZGUuY29udGVudHMgPSBwcm9wZXJ0aWVzLmNvbnRlbnRzOwotICAg
ICAgICB9IGVsc2UgaWYgKHByb3BlcnRpZXMudXJsKSB7Ci0gICAgICAgICAgbm9kZS5jb250ZW50
cyA9IG51bGw7Ci0gICAgICAgICAgbm9kZS51cmwgPSBwcm9wZXJ0aWVzLnVybDsKLSAgICAgICAg
fQotICAgICAgICAvLyBvdmVycmlkZSBlYWNoIHN0cmVhbSBvcCB3aXRoIG9uZSB0aGF0IHRyaWVz
IHRvIGZvcmNlIGxvYWQgdGhlIGxhenkgZmlsZSBmaXJzdAotICAgICAgICB2YXIgc3RyZWFtX29w
cyA9IHt9OwotICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG5vZGUuc3RyZWFtX29wcyk7
Ci0gICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHsKLSAgICAgICAgICB2YXIgZm4g
PSBub2RlLnN0cmVhbV9vcHNba2V5XTsKLSAgICAgICAgICBzdHJlYW1fb3BzW2tleV0gPSBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIGlmICghRlMuZm9yY2VMb2FkRmlsZShub2RlKSkgewotICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7
Ci0gICAgICAgICAgfTsKLSAgICAgICAgfSk7Ci0gICAgICAgIC8vIHVzZSBhIGN1c3RvbSByZWFk
IGZ1bmN0aW9uCi0gICAgICAgIHN0cmVhbV9vcHMucmVhZCA9IGZ1bmN0aW9uKHN0cmVhbSwgYnVm
ZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKLSAgICAgICAgICBpZiAoIUZTLmZvcmNl
TG9hZEZpbGUobm9kZSkpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVJTyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0
cmVhbS5ub2RlLmNvbnRlbnRzOwotICAgICAgICAgIHZhciBzaXplID0gTWF0aC5taW4oY29udGVu
dHMubGVuZ3RoIC0gcG9zaXRpb24sIGxlbmd0aCk7Ci0gICAgICAgICAgaWYgKGNvbnRlbnRzLnNs
aWNlKSB7IC8vIG5vcm1hbCBhcnJheQotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBz
aXplOyBpKyspIHsKLSAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIGldID0gY29udGVudHNb
cG9zaXRpb24gKyBpXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsgLy8gTGF6eVVpbnQ4QXJyYXkg
ZnJvbSBzeW5jIGJpbmFyeSBYSFIKLSAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIGldID0g
Y29udGVudHMuZ2V0KHBvc2l0aW9uICsgaSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQot
ICAgICAgICAgIHJldHVybiBzaXplOwotICAgICAgICB9OwotICAgICAgICBub2RlLnN0cmVhbV9v
cHMgPSBzdHJlYW1fb3BzOwotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgIH0sY3JlYXRlUHJl
bG9hZGVkRmlsZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCB1cmwsIGNhblJlYWQsIGNhbldyaXRl
LCBvbmxvYWQsIG9uZXJyb3IsIGRvbnRDcmVhdGVGaWxlKSB7Ci0gICAgICAgIEJyb3dzZXIuaW5p
dCgpOwotICAgICAgICAvLyBUT0RPIHdlIHNob3VsZCBhbGxvdyBwZW9wbGUgdG8ganVzdCBwYXNz
IGluIGEgY29tcGxldGUgZmlsZW5hbWUgaW5zdGVhZAotICAgICAgICAvLyBvZiBwYXJlbnQgYW5k
IG5hbWUgYmVpbmcgdGhhdCB3ZSBqdXN0IGpvaW4gdGhlbSBhbnl3YXlzCi0gICAgICAgIHZhciBm
dWxsbmFtZSA9IFBBVEgucmVzb2x2ZShQQVRILmpvaW4ocGFyZW50LCBuYW1lKSk7Ci0gICAgICAg
IGZ1bmN0aW9uIHByb2Nlc3NEYXRhKGJ5dGVBcnJheSkgewotICAgICAgICAgIGZ1bmN0aW9uIGZp
bmlzaChieXRlQXJyYXkpIHsKLSAgICAgICAgICAgIGlmICghZG9udENyZWF0ZUZpbGUpIHsKLSAg
ICAgICAgICAgICAgRlMuY3JlYXRlRGF0YUZpbGUocGFyZW50LCBuYW1lLCBieXRlQXJyYXksIGNh
blJlYWQsIGNhbldyaXRlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChvbmxvYWQp
IG9ubG9hZCgpOwotICAgICAgICAgICAgcmVtb3ZlUnVuRGVwZW5kZW5jeSgnY3AgJyArIGZ1bGxu
YW1lKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGhhbmRsZWQgPSBmYWxzZTsKLSAgICAg
ICAgICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10uZm9yRWFjaChmdW5jdGlvbihwbHVnaW4pIHsK
LSAgICAgICAgICAgIGlmIChoYW5kbGVkKSByZXR1cm47Ci0gICAgICAgICAgICBpZiAocGx1Z2lu
WydjYW5IYW5kbGUnXShmdWxsbmFtZSkpIHsKLSAgICAgICAgICAgICAgcGx1Z2luWydoYW5kbGUn
XShieXRlQXJyYXksIGZ1bGxuYW1lLCBmaW5pc2gsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7Ci0gICAgICAgICAgICAgICAgcmVtb3ZlUnVuRGVw
ZW5kZW5jeSgnY3AgJyArIGZ1bGxuYW1lKTsKLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgIGhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0pOwotICAgICAg
ICAgIGlmICghaGFuZGxlZCkgZmluaXNoKGJ5dGVBcnJheSk7Ci0gICAgICAgIH0KLSAgICAgICAg
YWRkUnVuRGVwZW5kZW5jeSgnY3AgJyArIGZ1bGxuYW1lKTsKLSAgICAgICAgaWYgKHR5cGVvZiB1
cmwgPT0gJ3N0cmluZycpIHsKLSAgICAgICAgICBCcm93c2VyLmFzeW5jTG9hZCh1cmwsIGZ1bmN0
aW9uKGJ5dGVBcnJheSkgewotICAgICAgICAgICAgcHJvY2Vzc0RhdGEoYnl0ZUFycmF5KTsKLSAg
ICAgICAgICB9LCBvbmVycm9yKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBwcm9jZXNz
RGF0YSh1cmwpOwotICAgICAgICB9Ci0gICAgICB9LGNyZWF0ZURlZmF1bHREaXJlY3Rvcmllczpm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIEZTLm1rZGlyKCcvdG1wJywgMDc3Nyk7Ci0gICAgICB9LGNy
ZWF0ZURlZmF1bHREZXZpY2VzOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgLy8gY3JlYXRlIC9kZXYK
LSAgICAgICAgRlMubWtkaXIoJy9kZXYnLCAwNzc3KTsKLSAgICAgICAgLy8gc2V0dXAgL2Rldi9u
dWxsCi0gICAgICAgIEZTLnJlZ2lzdGVyRGV2aWNlKEZTLm1ha2VkZXYoMSwgMyksIHsKLSAgICAg
ICAgICByZWFkOiBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH0sCi0gICAgICAgICAgd3JpdGU6IGZ1
bmN0aW9uKCkgeyByZXR1cm4gMDsgfQotICAgICAgICB9KTsKLSAgICAgICAgRlMubWtkZXYoJy9k
ZXYvbnVsbCcsIDA2NjYsIEZTLm1ha2VkZXYoMSwgMykpOwotICAgICAgICAvLyBzZXR1cCAvZGV2
L3R0eSBhbmQgL2Rldi90dHkxCi0gICAgICAgIC8vIHN0ZGVyciBuZWVkcyB0byBwcmludCBvdXRw
dXQgdXNpbmcgTW9kdWxlWydwcmludEVyciddCi0gICAgICAgIC8vIHNvIHdlIHJlZ2lzdGVyIGEg
c2Vjb25kIHR0eSBqdXN0IGZvciBpdC4KLSAgICAgICAgVFRZLnJlZ2lzdGVyKEZTLm1ha2VkZXYo
NSwgMCksIFRUWS5kZWZhdWx0X3R0eV9vcHMpOwotICAgICAgICBUVFkucmVnaXN0ZXIoRlMubWFr
ZWRldig2LCAwKSwgVFRZLmRlZmF1bHRfdHR5MV9vcHMpOwotICAgICAgICBGUy5ta2RldignL2Rl
di90dHknLCAwNjY2LCBGUy5tYWtlZGV2KDUsIDApKTsKLSAgICAgICAgRlMubWtkZXYoJy9kZXYv
dHR5MScsIDA2NjYsIEZTLm1ha2VkZXYoNiwgMCkpOwotICAgICAgICAvLyB3ZSdyZSBub3QgZ29p
bmcgdG8gZW11bGF0ZSB0aGUgYWN0dWFsIHNobSBkZXZpY2UsCi0gICAgICAgIC8vIGp1c3QgY3Jl
YXRlIHRoZSB0bXAgZGlycyB0aGF0IHJlc2lkZSBpbiBpdCBjb21tb25seQotICAgICAgICBGUy5t
a2RpcignL2Rldi9zaG0nLCAwNzc3KTsKLSAgICAgICAgRlMubWtkaXIoJy9kZXYvc2htL3RtcCcs
IDA3NzcpOwotICAgICAgfSxjcmVhdGVTdGFuZGFyZFN0cmVhbXM6ZnVuY3Rpb24gKCkgewotICAg
ICAgICAvLyBUT0RPIGRlcHJlY2F0ZSB0aGUgb2xkIGZ1bmN0aW9uYWxpdHkgb2YgYSBzaW5nbGUK
LSAgICAgICAgLy8gaW5wdXQgLyBvdXRwdXQgY2FsbGJhY2sgYW5kIHRoYXQgdXRpbGl6ZXMgRlMu
Y3JlYXRlRGV2aWNlCi0gICAgICAgIC8vIGFuZCBpbnN0ZWFkIHJlcXVpcmUgYSB1bmlxdWUgc2V0
IG9mIHN0cmVhbSBvcHMKLSAgICAgICAgLy8gYnkgZGVmYXVsdCwgd2Ugc3ltbGluayB0aGUgc3Rh
bmRhcmQgc3RyZWFtcyB0byB0aGUKLSAgICAgICAgLy8gZGVmYXVsdCB0dHkgZGV2aWNlcy4gaG93
ZXZlciwgaWYgdGhlIHN0YW5kYXJkIHN0cmVhbXMKLSAgICAgICAgLy8gaGF2ZSBiZWVuIG92ZXJ3
cml0dGVuIHdlIGNyZWF0ZSBhIHVuaXF1ZSBkZXZpY2UgZm9yCi0gICAgICAgIC8vIHRoZW0gaW5z
dGVhZC4KLSAgICAgICAgaWYgKE1vZHVsZVsnc3RkaW4nXSkgewotICAgICAgICAgIEZTLmNyZWF0
ZURldmljZSgnL2RldicsICdzdGRpbicsIE1vZHVsZVsnc3RkaW4nXSk7Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgRlMuc3ltbGluaygnL2Rldi90dHknLCAnL2Rldi9zdGRpbicpOwotICAg
ICAgICB9Ci0gICAgICAgIGlmIChNb2R1bGVbJ3N0ZG91dCddKSB7Ci0gICAgICAgICAgRlMuY3Jl
YXRlRGV2aWNlKCcvZGV2JywgJ3N0ZG91dCcsIG51bGwsIE1vZHVsZVsnc3Rkb3V0J10pOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5bWxpbmsoJy9kZXYvdHR5JywgJy9kZXYvc3Rk
b3V0Jyk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKE1vZHVsZVsnc3RkZXJyJ10pIHsKLSAgICAg
ICAgICBGUy5jcmVhdGVEZXZpY2UoJy9kZXYnLCAnc3RkZXJyJywgbnVsbCwgTW9kdWxlWydzdGRl
cnInXSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgRlMuc3ltbGluaygnL2Rldi90dHkx
JywgJy9kZXYvc3RkZXJyJyk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gb3BlbiBkZWZhdWx0IHN0
cmVhbXMgZm9yIHRoZSBzdGRpbiwgc3Rkb3V0IGFuZCBzdGRlcnIgZGV2aWNlcwotICAgICAgICB2
YXIgc3RkaW4gPSBGUy5vcGVuKCcvZGV2L3N0ZGluJywgJ3InKTsKLSAgICAgICAgSEVBUDMyWygo
X3N0ZGluKT4+MildPXN0ZGluLmZkOwotICAgICAgICBhc3NlcnQoc3RkaW4uZmQgPT09IDEsICdp
bnZhbGlkIGhhbmRsZSBmb3Igc3RkaW4gKCcgKyBzdGRpbi5mZCArICcpJyk7Ci0gICAgICAgIHZh
ciBzdGRvdXQgPSBGUy5vcGVuKCcvZGV2L3N0ZG91dCcsICd3Jyk7Ci0gICAgICAgIEhFQVAzMlso
KF9zdGRvdXQpPj4yKV09c3Rkb3V0LmZkOwotICAgICAgICBhc3NlcnQoc3Rkb3V0LmZkID09PSAy
LCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0ZG91dCAoJyArIHN0ZG91dC5mZCArICcpJyk7Ci0gICAg
ICAgIHZhciBzdGRlcnIgPSBGUy5vcGVuKCcvZGV2L3N0ZGVycicsICd3Jyk7Ci0gICAgICAgIEhF
QVAzMlsoKF9zdGRlcnIpPj4yKV09c3RkZXJyLmZkOwotICAgICAgICBhc3NlcnQoc3RkZXJyLmZk
ID09PSAzLCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0ZGVyciAoJyArIHN0ZGVyci5mZCArICcpJyk7
Ci0gICAgICB9LHN0YXRpY0luaXQ6ZnVuY3Rpb24gKCkgewotICAgICAgICBGUy5uYW1lX3RhYmxl
ID0gbmV3IEFycmF5KDQwOTYpOwotICAgICAgICBGUy5yb290ID0gRlMuY3JlYXRlTm9kZShudWxs
LCAnLycsIDAwNDAwMDAgfCAwNzc3LCAwKTsKLSAgICAgICAgRlMubW91bnQoTUVNRlMsIHt9LCAn
LycpOwotICAgICAgICBGUy5jcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXMoKTsKLSAgICAgICAgRlMu
Y3JlYXRlRGVmYXVsdERldmljZXMoKTsKLSAgICAgIH0saW5pdDpmdW5jdGlvbiAoaW5wdXQsIG91
dHB1dCwgZXJyb3IpIHsKLSAgICAgICAgYXNzZXJ0KCFGUy5pbml0LmluaXRpYWxpemVkLCAnRlMu
aW5pdCB3YXMgcHJldmlvdXNseSBjYWxsZWQuIElmIHlvdSB3YW50IHRvIGluaXRpYWxpemUgbGF0
ZXIgd2l0aCBjdXN0b20gcGFyYW1ldGVycywgcmVtb3ZlIGFueSBlYXJsaWVyIGNhbGxzIChub3Rl
IHRoYXQgb25lIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBjb2RlKScp
OwotICAgICAgICBGUy5pbml0LmluaXRpYWxpemVkID0gdHJ1ZTsKLSAgICAgICAgLy8gQWxsb3cg
TW9kdWxlLnN0ZGluIGV0Yy4gdG8gcHJvdmlkZSBkZWZhdWx0cywgaWYgbm9uZSBleHBsaWNpdGx5
IHBhc3NlZCB0byB1cyBoZXJlCi0gICAgICAgIE1vZHVsZVsnc3RkaW4nXSA9IGlucHV0IHx8IE1v
ZHVsZVsnc3RkaW4nXTsKLSAgICAgICAgTW9kdWxlWydzdGRvdXQnXSA9IG91dHB1dCB8fCBNb2R1
bGVbJ3N0ZG91dCddOwotICAgICAgICBNb2R1bGVbJ3N0ZGVyciddID0gZXJyb3IgfHwgTW9kdWxl
WydzdGRlcnInXTsKLSAgICAgICAgRlMuY3JlYXRlU3RhbmRhcmRTdHJlYW1zKCk7Ci0gICAgICB9
LHF1aXQ6ZnVuY3Rpb24gKCkgewotICAgICAgICBGUy5pbml0LmluaXRpYWxpemVkID0gZmFsc2U7
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgRlMuc3RyZWFtcy5sZW5ndGg7IGkrKykgewot
ICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5zdHJlYW1zW2ldOwotICAgICAgICAgIGlmICghc3Ry
ZWFtKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgRlMu
Y2xvc2Uoc3RyZWFtKTsKLSAgICAgICAgfQotICAgICAgfSxtb3VudDpmdW5jdGlvbiAodHlwZSwg
b3B0cywgbW91bnRwb2ludCkgewotICAgICAgICB2YXIgbW91bnQgPSB7Ci0gICAgICAgICAgdHlw
ZTogdHlwZSwKLSAgICAgICAgICBvcHRzOiBvcHRzLAotICAgICAgICAgIG1vdW50cG9pbnQ6IG1v
dW50cG9pbnQsCi0gICAgICAgICAgcm9vdDogbnVsbAotICAgICAgICB9OwotICAgICAgICB2YXIg
bG9va3VwOwotICAgICAgICBpZiAobW91bnRwb2ludCkgewotICAgICAgICAgIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgobW91bnRwb2ludCwgeyBmb2xsb3c6IGZhbHNlIH0pOwotICAgICAgICB9Ci0g
ICAgICAgIC8vIGNyZWF0ZSBhIHJvb3Qgbm9kZSBmb3IgdGhlIGZzCi0gICAgICAgIHZhciByb290
ID0gdHlwZS5tb3VudChtb3VudCk7Ci0gICAgICAgIHJvb3QubW91bnQgPSBtb3VudDsKLSAgICAg
ICAgbW91bnQucm9vdCA9IHJvb3Q7Ci0gICAgICAgIC8vIGFzc2lnbiB0aGUgbW91bnQgaW5mbyB0
byB0aGUgbW91bnRwb2ludCdzIG5vZGUKLSAgICAgICAgaWYgKGxvb2t1cCkgewotICAgICAgICAg
IGxvb2t1cC5ub2RlLm1vdW50ID0gbW91bnQ7Ci0gICAgICAgICAgbG9va3VwLm5vZGUubW91bnRl
ZCA9IHRydWU7Ci0gICAgICAgICAgLy8gY29tcGF0aWJpbGl0eSB1cGRhdGUgRlMucm9vdCBpZiB3
ZSBtb3VudCB0byAvCi0gICAgICAgICAgaWYgKG1vdW50cG9pbnQgPT09ICcvJykgewotICAgICAg
ICAgICAgRlMucm9vdCA9IG1vdW50LnJvb3Q7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiByb290OwotICAgICAgfSxsb29rdXA6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSkg
ewotICAgICAgICByZXR1cm4gcGFyZW50Lm5vZGVfb3BzLmxvb2t1cChwYXJlbnQsIG5hbWUpOwot
ICAgICAgfSxta25vZDpmdW5jdGlvbiAocGF0aCwgbW9kZSwgZGV2KSB7Ci0gICAgICAgIHZhciBs
b29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgcGFyZW50OiB0cnVlIH0pOwotICAgICAgICB2
YXIgcGFyZW50ID0gbG9va3VwLm5vZGU7Ci0gICAgICAgIHZhciBuYW1lID0gUEFUSC5iYXNlbmFt
ZShwYXRoKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heUNyZWF0ZShwYXJlbnQsIG5hbWUpOwot
ICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJy
KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBhcmVudC5ub2RlX29wcy5ta25vZCkgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gcGFyZW50Lm5vZGVfb3BzLm1rbm9kKHBhcmVudCwgbmFtZSwg
bW9kZSwgZGV2KTsKLSAgICAgIH0sY3JlYXRlOmZ1bmN0aW9uIChwYXRoLCBtb2RlKSB7Ci0gICAg
ICAgIG1vZGUgJj0gNDA5NTsKLSAgICAgICAgbW9kZSB8PSAwMTAwMDAwOwotICAgICAgICByZXR1
cm4gRlMubWtub2QocGF0aCwgbW9kZSwgMCk7Ci0gICAgICB9LG1rZGlyOmZ1bmN0aW9uIChwYXRo
LCBtb2RlKSB7Ci0gICAgICAgIG1vZGUgJj0gNTExIHwgMDAwMTAwMDsKLSAgICAgICAgbW9kZSB8
PSAwMDQwMDAwOwotICAgICAgICByZXR1cm4gRlMubWtub2QocGF0aCwgbW9kZSwgMCk7Ci0gICAg
ICB9LG1rZGV2OmZ1bmN0aW9uIChwYXRoLCBtb2RlLCBkZXYpIHsKLSAgICAgICAgbW9kZSB8PSAw
MDIwMDAwOwotICAgICAgICByZXR1cm4gRlMubWtub2QocGF0aCwgbW9kZSwgZGV2KTsKLSAgICAg
IH0sc3ltbGluazpmdW5jdGlvbiAob2xkcGF0aCwgbmV3cGF0aCkgewotICAgICAgICB2YXIgbG9v
a3VwID0gRlMubG9va3VwUGF0aChuZXdwYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAgICAg
dmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICB2YXIgbmV3bmFtZSA9IFBBVEguYmFz
ZW5hbWUobmV3cGF0aCk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlDcmVhdGUocGFyZW50LCBu
ZXduYW1lKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFwYXJlbnQubm9kZV9vcHMuc3lt
bGluaykgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQ
RVJNKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcGFyZW50Lm5vZGVfb3BzLnN5bWxpbmso
cGFyZW50LCBuZXduYW1lLCBvbGRwYXRoKTsKLSAgICAgIH0scmVuYW1lOmZ1bmN0aW9uIChvbGRf
cGF0aCwgbmV3X3BhdGgpIHsKLSAgICAgICAgdmFyIG9sZF9kaXJuYW1lID0gUEFUSC5kaXJuYW1l
KG9sZF9wYXRoKTsKLSAgICAgICAgdmFyIG5ld19kaXJuYW1lID0gUEFUSC5kaXJuYW1lKG5ld19w
YXRoKTsKLSAgICAgICAgdmFyIG9sZF9uYW1lID0gUEFUSC5iYXNlbmFtZShvbGRfcGF0aCk7Ci0g
ICAgICAgIHZhciBuZXdfbmFtZSA9IFBBVEguYmFzZW5hbWUobmV3X3BhdGgpOwotICAgICAgICAv
LyBwYXJlbnRzIG11c3QgZXhpc3QKLSAgICAgICAgdmFyIGxvb2t1cCwgb2xkX2RpciwgbmV3X2Rp
cjsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBsb29rdXAgPSBGUy5sb29rdXBQYXRoKG9sZF9w
YXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAgICAgICBvbGRfZGlyID0gbG9va3VwLm5vZGU7
Ci0gICAgICAgICAgbG9va3VwID0gRlMubG9va3VwUGF0aChuZXdfcGF0aCwgeyBwYXJlbnQ6IHRy
dWUgfSk7Ci0gICAgICAgICAgbmV3X2RpciA9IGxvb2t1cC5ub2RlOwotICAgICAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJV
U1kpOwotICAgICAgICB9Ci0gICAgICAgIC8vIG5lZWQgdG8gYmUgcGFydCBvZiB0aGUgc2FtZSBt
b3VudAotICAgICAgICBpZiAob2xkX2Rpci5tb3VudCAhPT0gbmV3X2Rpci5tb3VudCkgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVYREVWKTsKLSAgICAg
ICAgfQotICAgICAgICAvLyBzb3VyY2UgbXVzdCBleGlzdAotICAgICAgICB2YXIgb2xkX25vZGUg
PSBGUy5sb29rdXBOb2RlKG9sZF9kaXIsIG9sZF9uYW1lKTsKLSAgICAgICAgLy8gb2xkIHBhdGgg
c2hvdWxkIG5vdCBiZSBhbiBhbmNlc3RvciBvZiB0aGUgbmV3IHBhdGgKLSAgICAgICAgdmFyIHJl
bGF0aXZlID0gUEFUSC5yZWxhdGl2ZShvbGRfcGF0aCwgbmV3X2Rpcm5hbWUpOwotICAgICAgICBp
ZiAocmVsYXRpdmUuY2hhckF0KDApICE9PSAnLicpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMu
RXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIC8vIG5l
dyBwYXRoIHNob3VsZCBub3QgYmUgYW4gYW5jZXN0b3Igb2YgdGhlIG9sZCBwYXRoCi0gICAgICAg
IHJlbGF0aXZlID0gUEFUSC5yZWxhdGl2ZShuZXdfcGF0aCwgb2xkX2Rpcm5hbWUpOwotICAgICAg
ICBpZiAocmVsYXRpdmUuY2hhckF0KDApICE9PSAnLicpIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9URU1QVFkpOwotICAgICAgICB9Ci0gICAgICAg
IC8vIHNlZSBpZiB0aGUgbmV3IHBhdGggYWxyZWFkeSBleGlzdHMKLSAgICAgICAgdmFyIG5ld19u
b2RlOwotICAgICAgICB0cnkgewotICAgICAgICAgIG5ld19ub2RlID0gRlMubG9va3VwTm9kZShu
ZXdfZGlyLCBuZXdfbmFtZSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAvLyBu
b3QgZmF0YWwKLSAgICAgICAgfQotICAgICAgICAvLyBlYXJseSBvdXQgaWYgbm90aGluZyBuZWVk
cyB0byBjaGFuZ2UKLSAgICAgICAgaWYgKG9sZF9ub2RlID09PSBuZXdfbm9kZSkgewotICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAvLyB3ZSdsbCBuZWVkIHRvIGRlbGV0ZSB0
aGUgb2xkIGVudHJ5Ci0gICAgICAgIHZhciBpc2RpciA9IEZTLmlzRGlyKG9sZF9ub2RlLm1vZGUp
OwotICAgICAgICB2YXIgZXJyID0gRlMubWF5RGVsZXRlKG9sZF9kaXIsIG9sZF9uYW1lLCBpc2Rp
cik7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIC8vIG5lZWQgZGVsZXRlIHBlcm1pc3Npb25zIGlm
IHdlJ2xsIGJlIG92ZXJ3cml0aW5nLgotICAgICAgICAvLyBuZWVkIGNyZWF0ZSBwZXJtaXNzaW9u
cyBpZiBuZXcgZG9lc24ndCBhbHJlYWR5IGV4aXN0LgotICAgICAgICBlcnIgPSBuZXdfbm9kZSA/
Ci0gICAgICAgICAgRlMubWF5RGVsZXRlKG5ld19kaXIsIG5ld19uYW1lLCBpc2RpcikgOgotICAg
ICAgICAgIEZTLm1heUNyZWF0ZShuZXdfZGlyLCBuZXdfbmFtZSk7Ci0gICAgICAgIGlmIChlcnIp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICghb2xkX2Rpci5ub2RlX29wcy5yZW5hbWUpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKEZTLmlzTW91bnRwb2ludChvbGRfbm9kZSkgfHwgKG5ld19ub2RlICYmIEZTLmlzTW91bnRw
b2ludChuZXdfbm9kZSkpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRUJVU1kpOwotICAgICAgICB9Ci0gICAgICAgIC8vIGlmIHdlIGFyZSBnb2luZyB0
byBjaGFuZ2UgdGhlIHBhcmVudCwgY2hlY2sgd3JpdGUgcGVybWlzc2lvbnMKLSAgICAgICAgaWYg
KG5ld19kaXIgIT09IG9sZF9kaXIpIHsKLSAgICAgICAgICBlcnIgPSBGUy5ub2RlUGVybWlzc2lv
bnMob2xkX2RpciwgJ3cnKTsKLSAgICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICAvLyByZW1vdmUgdGhlIG5vZGUgZnJvbSB0aGUgbG9va3VwIGhhc2gKLSAgICAgICAgRlMuaGFz
aFJlbW92ZU5vZGUob2xkX25vZGUpOwotICAgICAgICAvLyBkbyB0aGUgdW5kZXJseWluZyBmcyBy
ZW5hbWUKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBvbGRfZGlyLm5vZGVfb3BzLnJlbmFtZShv
bGRfbm9kZSwgbmV3X2RpciwgbmV3X25hbWUpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAg
ICAgICAgdGhyb3cgZTsKLSAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgICAvLyBhZGQgdGhl
IG5vZGUgYmFjayB0byB0aGUgaGFzaCAoaW4gY2FzZSBub2RlX29wcy5yZW5hbWUKLSAgICAgICAg
ICAvLyBjaGFuZ2VkIGl0cyBuYW1lKQotICAgICAgICAgIEZTLmhhc2hBZGROb2RlKG9sZF9ub2Rl
KTsKLSAgICAgICAgfQotICAgICAgfSxybWRpcjpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICB2
YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAg
ICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICB2YXIgbmFtZSA9IFBBVEguYmFz
ZW5hbWUocGF0aCk7Ci0gICAgICAgIHZhciBub2RlID0gRlMubG9va3VwTm9kZShwYXJlbnQsIG5h
bWUpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5RGVsZXRlKHBhcmVudCwgbmFtZSwgdHJ1ZSk7
Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihl
cnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghcGFyZW50Lm5vZGVfb3BzLnJtZGlyKSB7Ci0g
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAg
ICAgICB9Ci0gICAgICAgIGlmIChGUy5pc01vdW50cG9pbnQobm9kZSkpIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcGFyZW50Lm5vZGVfb3BzLnJtZGlyKHBhcmVudCwgbmFtZSk7Ci0gICAgICAgIEZTLmRl
c3Ryb3lOb2RlKG5vZGUpOwotICAgICAgfSxyZWFkZGlyOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAg
ICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiB0cnVlIH0pOwot
ICAgICAgICB2YXIgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAgICBpZiAoIW5vZGUubm9kZV9v
cHMucmVhZGRpcikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVOT1RESVIpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlLm5vZGVfb3BzLnJl
YWRkaXIobm9kZSk7Ci0gICAgICB9LHVubGluazpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICB2
YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsKLSAgICAg
ICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICB2YXIgbmFtZSA9IFBBVEguYmFz
ZW5hbWUocGF0aCk7Ci0gICAgICAgIHZhciBub2RlID0gRlMubG9va3VwTm9kZShwYXJlbnQsIG5h
bWUpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5RGVsZXRlKHBhcmVudCwgbmFtZSwgZmFsc2Up
OwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgLy8gUE9TSVggc2F5cyB1bmxpbmsgc2hv
dWxkIHNldCBFUEVSTSwgbm90IEVJU0RJUgotICAgICAgICAgIGlmIChlcnIgPT09IEVSUk5PX0NP
REVTLkVJU0RJUikgZXJyID0gRVJSTk9fQ09ERVMuRVBFUk07Ci0gICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBhcmVudC5ub2Rl
X29wcy51bmxpbmspIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKEZTLmlzTW91bnRwb2ludChub2Rl
KSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZ
KTsKLSAgICAgICAgfQotICAgICAgICBwYXJlbnQubm9kZV9vcHMudW5saW5rKHBhcmVudCwgbmFt
ZSk7Ci0gICAgICAgIEZTLmRlc3Ryb3lOb2RlKG5vZGUpOwotICAgICAgfSxyZWFkbGluazpmdW5j
dGlvbiAocGF0aCkgewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7
IGZvbGxvdzogZmFsc2UgfSk7Ci0gICAgICAgIHZhciBsaW5rID0gbG9va3VwLm5vZGU7Ci0gICAg
ICAgIGlmICghbGluay5ub2RlX29wcy5yZWFkbGluaykgewotICAgICAgICAgIHRocm93IG5ldyBG
Uy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIGxpbmsubm9kZV9vcHMucmVhZGxpbmsobGluayk7Ci0gICAgICB9LHN0YXQ6ZnVuY3Rpb24g
KHBhdGgsIGRvbnRGb2xsb3cpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgo
cGF0aCwgeyBmb2xsb3c6ICFkb250Rm9sbG93IH0pOwotICAgICAgICB2YXIgbm9kZSA9IGxvb2t1
cC5ub2RlOwotICAgICAgICBpZiAoIW5vZGUubm9kZV9vcHMuZ2V0YXR0cikgewotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gbm9kZS5ub2RlX29wcy5nZXRhdHRyKG5vZGUpOwotICAgICAgfSxsc3Rh
dDpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICByZXR1cm4gRlMuc3RhdChwYXRoLCB0cnVlKTsK
LSAgICAgIH0sY2htb2Q6ZnVuY3Rpb24gKHBhdGgsIG1vZGUsIGRvbnRGb2xsb3cpIHsKLSAgICAg
ICAgdmFyIG5vZGU7Ci0gICAgICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHsKLSAg
ICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogIWRvbnRG
b2xsb3cgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgIG5vZGUgPSBwYXRoOwotICAgICAgICB9Ci0gICAgICAgIGlmICghbm9kZS5u
b2RlX29wcy5zZXRhdHRyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUubm9kZV9vcHMuc2V0YXR0
cihub2RlLCB7Ci0gICAgICAgICAgbW9kZTogKG1vZGUgJiA0MDk1KSB8IChub2RlLm1vZGUgJiB+
NDA5NSksCi0gICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpCi0gICAgICAgIH0pOwotICAg
ICAgfSxsY2htb2Q6ZnVuY3Rpb24gKHBhdGgsIG1vZGUpIHsKLSAgICAgICAgRlMuY2htb2QocGF0
aCwgbW9kZSwgdHJ1ZSk7Ci0gICAgICB9LGZjaG1vZDpmdW5jdGlvbiAoZmQsIG1vZGUpIHsKLSAg
ICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICAgIGlmICghc3RyZWFt
KSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYp
OwotICAgICAgICB9Ci0gICAgICAgIEZTLmNobW9kKHN0cmVhbS5ub2RlLCBtb2RlKTsKLSAgICAg
IH0sY2hvd246ZnVuY3Rpb24gKHBhdGgsIHVpZCwgZ2lkLCBkb250Rm9sbG93KSB7Ci0gICAgICAg
IHZhciBub2RlOwotICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSB7Ci0gICAg
ICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250Rm9s
bG93IH0pOwotICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICBub2RlID0gcGF0aDsKLSAgICAgICAgfQotICAgICAgICBpZiAoIW5vZGUubm9k
ZV9vcHMuc2V0YXR0cikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICBub2RlLm5vZGVfb3BzLnNldGF0dHIo
bm9kZSwgewotICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKQotICAgICAgICAgIC8vIHdl
IGlnbm9yZSB0aGUgdWlkIC8gZ2lkIGZvciBub3cKLSAgICAgICAgfSk7Ci0gICAgICB9LGxjaG93
bjpmdW5jdGlvbiAocGF0aCwgdWlkLCBnaWQpIHsKLSAgICAgICAgRlMuY2hvd24ocGF0aCwgdWlk
LCBnaWQsIHRydWUpOwotICAgICAgfSxmY2hvd246ZnVuY3Rpb24gKGZkLCB1aWQsIGdpZCkgewot
ICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAgICAgaWYgKCFzdHJl
YW0pIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFE
Rik7Ci0gICAgICAgIH0KLSAgICAgICAgRlMuY2hvd24oc3RyZWFtLm5vZGUsIHVpZCwgZ2lkKTsK
LSAgICAgIH0sdHJ1bmNhdGU6ZnVuY3Rpb24gKHBhdGgsIGxlbikgewotICAgICAgICBpZiAobGVu
IDwgMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJ
TlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG5vZGU7Ci0gICAgICAgIGlmICh0eXBlb2Yg
cGF0aCA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0
aChwYXRoLCB7IGZvbGxvdzogdHJ1ZSB9KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgbm9kZSA9IHBhdGg7Ci0gICAgICAgIH0KLSAg
ICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLnNldGF0dHIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FSVNESVIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghRlMuaXNGaWxl
KG5vZGUubW9kZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBlcnIgPSBGUy5ub2RlUGVybWlz
c2lvbnMobm9kZSwgJ3cnKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5l
dyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS5ub2RlX29wcy5z
ZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICBzaXplOiBsZW4sCi0gICAgICAgICAgdGltZXN0YW1w
OiBEYXRlLm5vdygpCi0gICAgICAgIH0pOwotICAgICAgfSxmdHJ1bmNhdGU6ZnVuY3Rpb24gKGZk
LCBsZW4pIHsKLSAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICAg
IGlmICghc3RyZWFtKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykg
PT09IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
SU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIEZTLnRydW5jYXRlKHN0cmVhbS5ub2RlLCBsZW4p
OwotICAgICAgfSx1dGltZTpmdW5jdGlvbiAocGF0aCwgYXRpbWUsIG10aW1lKSB7Ci0gICAgICAg
IHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiB0cnVlIH0pOwotICAg
ICAgICB2YXIgbm9kZSA9IGxvb2t1cC5ub2RlOwotICAgICAgICBub2RlLm5vZGVfb3BzLnNldGF0
dHIobm9kZSwgewotICAgICAgICAgIHRpbWVzdGFtcDogTWF0aC5tYXgoYXRpbWUsIG10aW1lKQot
ICAgICAgICB9KTsKLSAgICAgIH0sb3BlbjpmdW5jdGlvbiAocGF0aCwgZmxhZ3MsIG1vZGUsIGZk
X3N0YXJ0LCBmZF9lbmQpIHsKLSAgICAgICAgcGF0aCA9IFBBVEgubm9ybWFsaXplKHBhdGgpOwot
ICAgICAgICBmbGFncyA9IHR5cGVvZiBmbGFncyA9PT0gJ3N0cmluZycgPyBGUy5tb2RlU3RyaW5n
VG9GbGFncyhmbGFncykgOiBmbGFnczsKLSAgICAgICAgbW9kZSA9IHR5cGVvZiBtb2RlID09PSAn
dW5kZWZpbmVkJyA/IDA2NjYgOiBtb2RlOwotICAgICAgICBpZiAoKGZsYWdzICYgNTEyKSkgewot
ICAgICAgICAgIG1vZGUgPSAobW9kZSAmIDQwOTUpIHwgMDEwMDAwMDsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICBtb2RlID0gMDsKLSAgICAgICAgfQotICAgICAgICB2YXIgbm9kZTsKLSAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7
Ci0gICAgICAgICAgICBmb2xsb3c6ICEoZmxhZ3MgJiAwMjAwMDAwKQotICAgICAgICAgIH0pOwot
ICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgICBwYXRoID0gbG9va3VwLnBh
dGg7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAvLyBpZ25vcmUKLSAgICAgICAg
fQotICAgICAgICAvLyBwZXJoYXBzIHdlIG5lZWQgdG8gY3JlYXRlIHRoZSBub2RlCi0gICAgICAg
IGlmICgoZmxhZ3MgJiA1MTIpKSB7Ci0gICAgICAgICAgaWYgKG5vZGUpIHsKLSAgICAgICAgICAg
IC8vIGlmIE9fQ1JFQVQgYW5kIE9fRVhDTCBhcmUgc2V0LCBlcnJvciBvdXQgaWYgdGhlIG5vZGUg
YWxyZWFkeSBleGlzdHMKLSAgICAgICAgICAgIGlmICgoZmxhZ3MgJiAyMDQ4KSkgewotICAgICAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FRVhJU1QpOwotICAg
ICAgICAgICAgfQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBub2RlIGRvZXNu
J3QgZXhpc3QsIHRyeSB0byBjcmVhdGUgaXQKLSAgICAgICAgICAgIG5vZGUgPSBGUy5ta25vZChw
YXRoLCBtb2RlLCAwKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFub2Rl
KSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5U
KTsKLSAgICAgICAgfQotICAgICAgICAvLyBjYW4ndCB0cnVuY2F0ZSBhIGRldmljZQotICAgICAg
ICBpZiAoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSkgewotICAgICAgICAgIGZsYWdzICY9IH4xMDI0
OwotICAgICAgICB9Ci0gICAgICAgIC8vIGNoZWNrIHBlcm1pc3Npb25zCi0gICAgICAgIHZhciBl
cnIgPSBGUy5tYXlPcGVuKG5vZGUsIGZsYWdzKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgLy8g
ZG8gdHJ1bmNhdGlvbiBpZiBuZWNlc3NhcnkKLSAgICAgICAgaWYgKChmbGFncyAmIDEwMjQpKSB7
Ci0gICAgICAgICAgRlMudHJ1bmNhdGUobm9kZSwgMCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8g
cmVnaXN0ZXIgdGhlIHN0cmVhbSB3aXRoIHRoZSBmaWxlc3lzdGVtCi0gICAgICAgIHZhciBzdHJl
YW0gPSBGUy5jcmVhdGVTdHJlYW0oewotICAgICAgICAgIHBhdGg6IHBhdGgsCi0gICAgICAgICAg
bm9kZTogbm9kZSwKLSAgICAgICAgICBmbGFnczogZmxhZ3MsCi0gICAgICAgICAgc2Vla2FibGU6
IHRydWUsCi0gICAgICAgICAgcG9zaXRpb246IDAsCi0gICAgICAgICAgc3RyZWFtX29wczogbm9k
ZS5zdHJlYW1fb3BzLAotICAgICAgICAgIC8vIHVzZWQgYnkgdGhlIGZpbGUgZmFtaWx5IGxpYmMg
Y2FsbHMgKGZvcGVuLCBmd3JpdGUsIGZlcnJvciwgZXRjLikKLSAgICAgICAgICB1bmdvdHRlbjog
W10sCi0gICAgICAgICAgZXJyb3I6IGZhbHNlCi0gICAgICAgIH0sIGZkX3N0YXJ0LCBmZF9lbmQp
OwotICAgICAgICAvLyBjYWxsIHRoZSBuZXcgc3RyZWFtJ3Mgb3BlbiBmdW5jdGlvbgotICAgICAg
ICBpZiAoc3RyZWFtLnN0cmVhbV9vcHMub3BlbikgewotICAgICAgICAgIHN0cmVhbS5zdHJlYW1f
b3BzLm9wZW4oc3RyZWFtKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gc3RyZWFtOwotICAg
ICAgfSxjbG9zZTpmdW5jdGlvbiAoc3RyZWFtKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAg
aWYgKHN0cmVhbS5zdHJlYW1fb3BzLmNsb3NlKSB7Ci0gICAgICAgICAgICBzdHJlYW0uc3RyZWFt
X29wcy5jbG9zZShzdHJlYW0pOwotICAgICAgICAgIH0KLSAgICAgICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgRlMuY2xv
c2VTdHJlYW0oc3RyZWFtLmZkKTsKLSAgICAgICAgfQotICAgICAgfSxsbHNlZWs6ZnVuY3Rpb24g
KHN0cmVhbSwgb2Zmc2V0LCB3aGVuY2UpIHsKLSAgICAgICAgaWYgKCFzdHJlYW0uc2Vla2FibGUg
fHwgIXN0cmVhbS5zdHJlYW1fb3BzLmxsc2VlaykgewotICAgICAgICAgIHRocm93IG5ldyBGUy5F
cnJub0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHN0cmVhbS5zdHJlYW1fb3BzLmxsc2VlayhzdHJlYW0sIG9mZnNldCwgd2hlbmNlKTsKLSAgICAg
IH0scmVhZDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlv
bikgewotICAgICAgICBpZiAobGVuZ3RoIDwgMCB8fCBwb3NpdGlvbiA8IDApIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9
Ci0gICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDEpIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKEZTLmlzRGlyKHN0cmVhbS5ub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlTRElSKTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoIXN0cmVhbS5zdHJlYW1fb3BzLnJlYWQpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBzZWVr
aW5nID0gdHJ1ZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwb3NpdGlvbiA9PT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgICBwb3NpdGlvbiA9IHN0cmVhbS5wb3NpdGlvbjsKLSAgICAgICAgICBzZWVr
aW5nID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXN0cmVhbS5zZWVrYWJsZSkgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgdmFyIGJ5dGVzUmVhZCA9IHN0cmVhbS5zdHJlYW1fb3BzLnJlYWQoc3Ry
ZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbik7Ci0gICAgICAgIGlmICghc2Vl
a2luZykgc3RyZWFtLnBvc2l0aW9uICs9IGJ5dGVzUmVhZDsKLSAgICAgICAgcmV0dXJuIGJ5dGVz
UmVhZDsKLSAgICAgIH0sd3JpdGU6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxl
bmd0aCwgcG9zaXRpb24pIHsKLSAgICAgICAgaWYgKGxlbmd0aCA8IDAgfHwgcG9zaXRpb24gPCAw
KSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFM
KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAwKSB7Ci0g
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAg
ICAgICB9Ci0gICAgICAgIGlmIChGUy5pc0RpcihzdHJlYW0ubm9kZS5tb2RlKSkgewotICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJUik7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy53cml0ZSkgewotICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgdmFyIHNlZWtpbmcgPSB0cnVlOwotICAgICAgICBpZiAodHlwZW9mIHBvc2l0aW9uID09
PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIHBvc2l0aW9uID0gc3RyZWFtLnBvc2l0aW9uOwot
ICAgICAgICAgIHNlZWtpbmcgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIGlmICghc3RyZWFtLnNl
ZWthYmxlKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RVNQSVBFKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoc3RyZWFtLmZsYWdzICYgOCkgewotICAg
ICAgICAgIC8vIHNlZWsgdG8gdGhlIGVuZCBiZWZvcmUgd3JpdGluZyBpbiBhcHBlbmQgbW9kZQot
ICAgICAgICAgIEZTLmxsc2VlayhzdHJlYW0sIDAsIDIpOwotICAgICAgICB9Ci0gICAgICAgIHZh
ciBieXRlc1dyaXR0ZW4gPSBzdHJlYW0uc3RyZWFtX29wcy53cml0ZShzdHJlYW0sIGJ1ZmZlciwg
b2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKTsKLSAgICAgICAgaWYgKCFzZWVraW5nKSBzdHJlYW0u
cG9zaXRpb24gKz0gYnl0ZXNXcml0dGVuOwotICAgICAgICByZXR1cm4gYnl0ZXNXcml0dGVuOwot
ICAgICAgfSxhbGxvY2F0ZTpmdW5jdGlvbiAoc3RyZWFtLCBvZmZzZXQsIGxlbmd0aCkgewotICAg
ICAgICBpZiAob2Zmc2V0IDwgMCB8fCBsZW5ndGggPD0gMCkgewotICAgICAgICAgIHRocm93IG5l
dyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9PT0gMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5F
cnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIUZT
LmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSAmJiAhRlMuaXNEaXIobm9kZS5tb2RlKSkgewotICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVik7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy5hbGxvY2F0ZSkgewotICAgICAg
ICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVPUE5PVFNVUFApOwotICAg
ICAgICB9Ci0gICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLmFsbG9jYXRlKHN0cmVhbSwgb2Zmc2V0
LCBsZW5ndGgpOwotICAgICAgfSxtbWFwOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0
LCBsZW5ndGgsIHBvc2l0aW9uLCBwcm90LCBmbGFncykgewotICAgICAgICAvLyBUT0RPIGlmIFBS
T1QgaXMgUFJPVF9XUklURSwgbWFrZSBzdXJlIHdlIGhhdmUgd3JpdGUgYWNjZXNzCi0gICAgICAg
IGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDEpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMu
RXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUNDRVMpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgh
c3RyZWFtLnN0cmVhbV9vcHMubW1hcCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5lcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVOT0RFVik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN0cmVh
bS5zdHJlYW1fb3BzLm1tYXAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlv
biwgcHJvdCwgZmxhZ3MpOwotICAgICAgfX07Ci0gIGZ1bmN0aW9uIF9zZW5kKGZkLCBidWYsIGxl
biwgZmxhZ3MpIHsKLSAgICAgIHZhciBpbmZvID0gRlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAgIGlm
ICghaW5mbykgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAg
ICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIGlmIChpbmZvLnNvY2tldC5yZWFkeVN0YXRl
ID09PSBXZWJTb2NrZXQuQ0xPU0lORyB8fCBpbmZvLnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJT
b2NrZXQuQ0xPU0VEKSB7Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVOT1RDT05O
KTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfSBlbHNlIGlmIChpbmZvLnNvY2tldC5yZWFk
eVN0YXRlID09PSBXZWJTb2NrZXQuQ09OTkVDVElORykgewotICAgICAgICBfX19zZXRFcnJObyhF
UlJOT19DT0RFUy5FQUdBSU4pOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICBp
bmZvLnNlbmRlcihIRUFQVTguc3ViYXJyYXkoYnVmLCBidWYrbGVuKSk7Ci0gICAgICByZXR1cm4g
bGVuOwotICAgIH0KLSAgZnVuY3Rpb24gX3B3cml0ZShmaWxkZXMsIGJ1ZiwgbmJ5dGUsIG9mZnNl
dCkgewotICAgICAgLy8gc3NpemVfdCBwd3JpdGUoaW50IGZpbGRlcywgY29uc3Qgdm9pZCAqYnVm
LCBzaXplX3QgbmJ5dGUsIG9mZl90IG9mZnNldCk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVu
Z3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy93cml0ZS5odG1sCi0gICAg
ICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7Ci0gICAgICBpZiAoIXN0cmVhbSkg
ewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVy
biAtMTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAgICAgIHZhciBzbGFiID0gSEVBUDg7Ci0g
ICAgICAgIHJldHVybiBGUy53cml0ZShzdHJlYW0sIHNsYWIsIGJ1ZiwgbmJ5dGUsIG9mZnNldCk7
Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEZTLmhhbmRsZUZTRXJyb3IoZSk7Ci0gICAg
ICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24gX3dyaXRlKGZpbGRlcywgYnVm
LCBuYnl0ZSkgewotICAgICAgLy8gc3NpemVfdCB3cml0ZShpbnQgZmlsZGVzLCBjb25zdCB2b2lk
ICpidWYsIHNpemVfdCBuYnl0ZSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3Jn
L29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy93cml0ZS5odG1sCi0gICAgICB2YXIgc3Ry
ZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7Ci0gICAgICBpZiAoIXN0cmVhbSkgewotICAgICAg
ICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAg
ICAgIH0KLSAgICAgIGlmIChzdHJlYW0gJiYgKCdzb2NrZXQnIGluIHN0cmVhbSkpIHsKLSAgICAg
ICAgcmV0dXJuIF9zZW5kKGZpbGRlcywgYnVmLCBuYnl0ZSwgMCk7Ci0gICAgICB9Ci0gICAgICB0
cnkgewotICAgICAgICB2YXIgc2xhYiA9IEhFQVA4OwotICAgICAgICByZXR1cm4gRlMud3JpdGUo
c3RyZWFtLCBzbGFiLCBidWYsIG5ieXRlKTsKLSAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
RlMuaGFuZGxlRlNFcnJvcihlKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgIH1m
dW5jdGlvbiBfZndyaXRlKHB0ciwgc2l6ZSwgbml0ZW1zLCBzdHJlYW0pIHsKLSAgICAgIC8vIHNp
emVfdCBmd3JpdGUoY29uc3Qgdm9pZCAqcmVzdHJpY3QgcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90
IG5pdGVtcywgRklMRSAqcmVzdHJpY3Qgc3RyZWFtKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9w
ZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL2Z3cml0ZS5odG1sCi0g
ICAgICB2YXIgYnl0ZXNUb1dyaXRlID0gbml0ZW1zICogc2l6ZTsKLSAgICAgIGlmIChieXRlc1Rv
V3JpdGUgPT0gMCkgcmV0dXJuIDA7Ci0gICAgICB2YXIgYnl0ZXNXcml0dGVuID0gX3dyaXRlKHN0
cmVhbSwgcHRyLCBieXRlc1RvV3JpdGUpOwotICAgICAgaWYgKGJ5dGVzV3JpdHRlbiA9PSAtMSkg
ewotICAgICAgICB2YXIgc3RyZWFtT2JqID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7Ci0gICAgICAg
IGlmIChzdHJlYW1PYmopIHN0cmVhbU9iai5lcnJvciA9IHRydWU7Ci0gICAgICAgIHJldHVybiAw
OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoYnl0ZXNXcml0dGVu
IC8gc2l6ZSk7Ci0gICAgICB9Ci0gICAgfQotICBmdW5jdGlvbiBfdW5nZXRjKGMsIHN0cmVhbSkg
ewotICAgICAgLy8gaW50IHVuZ2V0YyhpbnQgYywgRklMRSAqc3RyZWFtKTsKLSAgICAgIC8vIGh0
dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3Vu
Z2V0Yy5odG1sCi0gICAgICBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oc3RyZWFtKTsKLSAgICAgIGlm
ICghc3RyZWFtKSB7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIGlmIChjID09
PSAtMSkgewotICAgICAgICAvLyBkbyBub3RoaW5nIGZvciBFT0YgY2hhcmFjdGVyCi0gICAgICAg
IHJldHVybiBjOwotICAgICAgfQotICAgICAgYyA9IHVuU2lnbihjICYgMHhGRik7Ci0gICAgICBz
dHJlYW0udW5nb3R0ZW4ucHVzaChjKTsKLSAgICAgIHN0cmVhbS5lb2YgPSBmYWxzZTsKLSAgICAg
IHJldHVybiBjOwotICAgIH0KLSAgZnVuY3Rpb24gX3JlY3YoZmQsIGJ1ZiwgbGVuLCBmbGFncykg
ewotICAgICAgdmFyIGluZm8gPSBGUy5nZXRTdHJlYW0oZmQpOwotICAgICAgaWYgKCFpbmZvKSB7
Ci0gICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0dXJu
IC0xOwotICAgICAgfQotICAgICAgaWYgKCFpbmZvLmhhc0RhdGEoKSkgewotICAgICAgICBpZiAo
aW5mby5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNMT1NJTkcgfHwgaW5mby5zb2Nr
ZXQucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNMT1NFRCkgewotICAgICAgICAgIC8vIHNvY2tl
dCBoYXMgY2xvc2VkCi0gICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgLy8gZWxzZSwgb3VyIHNvY2tldCBpcyBpbiBhIHZhbGlkIHN0YXRlIGJ1dCB0cnVseSBo
YXMgbm90aGluZyBhdmFpbGFibGUKLSAgICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5F
QUdBSU4pOwotICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAg
dmFyIGJ1ZmZlciA9IGluZm8uaW5RdWV1ZS5zaGlmdCgpOwotICAgICAgaWYgKGxlbiA8IGJ1ZmZl
ci5sZW5ndGgpIHsKLSAgICAgICAgaWYgKGluZm8uc3RyZWFtKSB7Ci0gICAgICAgICAgLy8gVGhp
cyBpcyB0Y3AgKHJlbGlhYmxlKSwgc28gaWYgbm90IGFsbCB3YXMgcmVhZCwga2VlcCBpdAotICAg
ICAgICAgIGluZm8uaW5RdWV1ZS51bnNoaWZ0KGJ1ZmZlci5zdWJhcnJheShsZW4pKTsKLSAgICAg
ICAgfQotICAgICAgICBidWZmZXIgPSBidWZmZXIuc3ViYXJyYXkoMCwgbGVuKTsKLSAgICAgIH0K
LSAgICAgIEhFQVBVOC5zZXQoYnVmZmVyLCBidWYpOwotICAgICAgcmV0dXJuIGJ1ZmZlci5sZW5n
dGg7Ci0gICAgfQotICBmdW5jdGlvbiBfcHJlYWQoZmlsZGVzLCBidWYsIG5ieXRlLCBvZmZzZXQp
IHsKLSAgICAgIC8vIHNzaXplX3QgcHJlYWQoaW50IGZpbGRlcywgdm9pZCAqYnVmLCBzaXplX3Qg
bmJ5dGUsIG9mZl90IG9mZnNldCk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3Jn
L29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9yZWFkLmh0bWwKLSAgICAgIHZhciBzdHJl
YW0gPSBGUy5nZXRTdHJlYW0oZmlsZGVzKTsKLSAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAg
IF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAg
ICAgfQotICAgICAgdHJ5IHsKLSAgICAgICAgdmFyIHNsYWIgPSBIRUFQODsKLSAgICAgICAgcmV0
dXJuIEZTLnJlYWQoc3RyZWFtLCBzbGFiLCBidWYsIG5ieXRlLCBvZmZzZXQpOwotICAgICAgfSBj
YXRjaCAoZSkgewotICAgICAgICBGUy5oYW5kbGVGU0Vycm9yKGUpOwotICAgICAgICByZXR1cm4g
LTE7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF9yZWFkKGZpbGRlcywgYnVmLCBuYnl0ZSkgewot
ICAgICAgLy8gc3NpemVfdCByZWFkKGludCBmaWxkZXMsIHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRl
KTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUz
OTkvZnVuY3Rpb25zL3JlYWQuaHRtbAotICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShm
aWxkZXMpOwotICAgICAgaWYgKCFzdHJlYW0pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9f
Q09ERVMuRUJBREYpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoc3Ry
ZWFtICYmICgnc29ja2V0JyBpbiBzdHJlYW0pKSB7Ci0gICAgICAgIHJldHVybiBfcmVjdihmaWxk
ZXMsIGJ1ZiwgbmJ5dGUsIDApOwotICAgICAgfQotICAgICAgdHJ5IHsKLSAgICAgICAgdmFyIHNs
YWIgPSBIRUFQODsKLSAgICAgICAgcmV0dXJuIEZTLnJlYWQoc3RyZWFtLCBzbGFiLCBidWYsIG5i
eXRlKTsKLSAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgRlMuaGFuZGxlRlNFcnJvcihlKTsK
LSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgIH1mdW5jdGlvbiBfZnJlYWQocHRyLCBz
aXplLCBuaXRlbXMsIHN0cmVhbSkgewotICAgICAgLy8gc2l6ZV90IGZyZWFkKHZvaWQgKnJlc3Ry
aWN0IHB0ciwgc2l6ZV90IHNpemUsIHNpemVfdCBuaXRlbXMsIEZJTEUgKnJlc3RyaWN0IHN0cmVh
bSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1
Mzk5L2Z1bmN0aW9ucy9mcmVhZC5odG1sCi0gICAgICB2YXIgYnl0ZXNUb1JlYWQgPSBuaXRlbXMg
KiBzaXplOwotICAgICAgaWYgKGJ5dGVzVG9SZWFkID09IDApIHsKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgICB9Ci0gICAgICB2YXIgYnl0ZXNSZWFkID0gMDsKLSAgICAgIHZhciBzdHJlYW1PYmog
PSBGUy5nZXRTdHJlYW0oc3RyZWFtKTsKLSAgICAgIHdoaWxlIChzdHJlYW1PYmoudW5nb3R0ZW4u
bGVuZ3RoICYmIGJ5dGVzVG9SZWFkID4gMCkgewotICAgICAgICBIRUFQOFsoKHB0cisrKXwwKV09
c3RyZWFtT2JqLnVuZ290dGVuLnBvcCgpCi0gICAgICAgIGJ5dGVzVG9SZWFkLS07Ci0gICAgICAg
IGJ5dGVzUmVhZCsrOwotICAgICAgfQotICAgICAgdmFyIGVyciA9IF9yZWFkKHN0cmVhbSwgcHRy
LCBieXRlc1RvUmVhZCk7Ci0gICAgICBpZiAoZXJyID09IC0xKSB7Ci0gICAgICAgIGlmIChzdHJl
YW1PYmopIHN0cmVhbU9iai5lcnJvciA9IHRydWU7Ci0gICAgICAgIHJldHVybiAwOwotICAgICAg
fQotICAgICAgYnl0ZXNSZWFkICs9IGVycjsKLSAgICAgIGlmIChieXRlc1JlYWQgPCBieXRlc1Rv
UmVhZCkgc3RyZWFtT2JqLmVvZiA9IHRydWU7Ci0gICAgICByZXR1cm4gTWF0aC5mbG9vcihieXRl
c1JlYWQgLyBzaXplKTsKLSAgICB9ZnVuY3Rpb24gX2ZnZXRjKHN0cmVhbSkgewotICAgICAgLy8g
aW50IGZnZXRjKEZJTEUgKnN0cmVhbSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAu
b3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9mZ2V0Yy5odG1sCi0gICAgICB2YXIg
c3RyZWFtT2JqID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7Ci0gICAgICBpZiAoIXN0cmVhbU9iaikg
cmV0dXJuIC0xOwotICAgICAgaWYgKHN0cmVhbU9iai5lb2YgfHwgc3RyZWFtT2JqLmVycm9yKSBy
ZXR1cm4gLTE7Ci0gICAgICB2YXIgcmV0ID0gX2ZyZWFkKF9mZ2V0Yy5yZXQsIDEsIDEsIHN0cmVh
bSk7Ci0gICAgICBpZiAocmV0ID09IDApIHsKLSAgICAgICAgc3RyZWFtT2JqLmVvZiA9IHRydWU7
Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0gZWxzZSBpZiAocmV0ID09IC0xKSB7Ci0gICAg
ICAgIHN0cmVhbU9iai5lcnJvciA9IHRydWU7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHJldHVybiBIRUFQVThbKChfZmdldGMucmV0KXwwKV07Ci0gICAgICB9
Ci0gICAgfXZhciBfZ2V0Yz1fZmdldGM7Ci0gIGZ1bmN0aW9uIF9fX2N4YV9wdXJlX3ZpcnR1YWwo
KSB7Ci0gICAgICBBQk9SVCA9IHRydWU7Ci0gICAgICB0aHJvdyAnUHVyZSB2aXJ0dWFsIGZ1bmN0
aW9uIGNhbGxlZCEnOwotICAgIH0KLSAgZnVuY3Rpb24gX19fZXJybm9fbG9jYXRpb24oKSB7Ci0g
ICAgICByZXR1cm4gX19fZXJybm9fc3RhdGU7Ci0gICAgfXZhciBfX19lcnJubz1fX19lcnJub19s
b2NhdGlvbjsKLSAgdmFyIF9sbHZtX21lbXNldF9wMGk4X2kzMj1fbWVtc2V0OwotICBNb2R1bGVb
Il9zdHJsZW4iXSA9IF9zdHJsZW47Ci0gIGZ1bmN0aW9uIF9zdHJlcnJvcl9yKGVycm51bSwgc3Ry
ZXJyYnVmLCBidWZsZW4pIHsKLSAgICAgIGlmIChlcnJudW0gaW4gRVJSTk9fTUVTU0FHRVMpIHsK
LSAgICAgICAgaWYgKEVSUk5PX01FU1NBR0VTW2Vycm51bV0ubGVuZ3RoID4gYnVmbGVuIC0gMSkg
ewotICAgICAgICAgIHJldHVybiBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FUkFOR0UpOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgIHZhciBtc2cgPSBFUlJOT19NRVNTQUdFU1tlcnJudW1d
OwotICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXNnLmxlbmd0aDsgaSsrKSB7Ci0gICAg
ICAgICAgICBIRUFQOFsoKChzdHJlcnJidWYpKyhpKSl8MCldPW1zZy5jaGFyQ29kZUF0KGkpCi0g
ICAgICAgICAgfQotICAgICAgICAgIEhFQVA4WygoKHN0cmVycmJ1ZikrKGkpKXwwKV09MAotICAg
ICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1
cm4gX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgIH0KLSAgICB9ZnVuY3Rp
b24gX3N0cmVycm9yKGVycm51bSkgewotICAgICAgaWYgKCFfc3RyZXJyb3IuYnVmZmVyKSBfc3Ry
ZXJyb3IuYnVmZmVyID0gX21hbGxvYygyNTYpOwotICAgICAgX3N0cmVycm9yX3IoZXJybnVtLCBf
c3RyZXJyb3IuYnVmZmVyLCAyNTYpOwotICAgICAgcmV0dXJuIF9zdHJlcnJvci5idWZmZXI7Ci0g
ICAgfQotICBmdW5jdGlvbiBfYWJvcnQoKSB7Ci0gICAgICBNb2R1bGVbJ2Fib3J0J10oKTsKLSAg
ICB9Ci0gIGZ1bmN0aW9uIF9fcmVhbGx5TmVnYXRpdmUoeCkgewotICAgICAgcmV0dXJuIHggPCAw
IHx8ICh4ID09PSAwICYmICgxL3gpID09PSAtSW5maW5pdHkpOwotICAgIH1mdW5jdGlvbiBfX2Zv
cm1hdFN0cmluZyhmb3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAgIHZhciB0ZXh0SW5kZXggPSBmb3Jt
YXQ7Ci0gICAgICB2YXIgYXJnSW5kZXggPSAwOwotICAgICAgZnVuY3Rpb24gZ2V0TmV4dEFyZyh0
eXBlKSB7Ci0gICAgICAgIC8vIE5PVEU6IEV4cGxpY2l0bHkgaWdub3JpbmcgdHlwZSBzYWZldHku
IE90aGVyd2lzZSB0aGlzIGZhaWxzOgotICAgICAgICAvLyAgICAgICBpbnQgeCA9IDQ7IHByaW50
ZigiJWNcbiIsIChjaGFyKXgpOwotICAgICAgICB2YXIgcmV0OwotICAgICAgICBpZiAodHlwZSA9
PT0gJ2RvdWJsZScpIHsKLSAgICAgICAgICByZXQgPSBIRUFQRjY0WygoKHZhcmFyZ3MpKyhhcmdJ
bmRleCkpPj4zKV07Ci0gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnaTY0JykgewotICAgICAg
ICAgIHJldCA9IFtIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+PjIpXSwKLSAgICAgICAg
ICAgICAgICAgSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCs4KSk+PjIpXV07Ci0gICAgICAg
ICAgYXJnSW5kZXggKz0gODsgLy8gZWFjaCAzMi1iaXQgY2h1bmsgaXMgaW4gYSA2NC1iaXQgYmxv
Y2sKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0eXBlID0gJ2kzMic7IC8vIHZhcmFyZ3Mg
YXJlIGFsd2F5cyBpMzIsIGk2NCwgb3IgZG91YmxlCi0gICAgICAgICAgcmV0ID0gSEVBUDMyWygo
KHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07Ci0gICAgICAgIH0KLSAgICAgICAgYXJnSW5kZXgg
Kz0gTWF0aC5tYXgoUnVudGltZS5nZXROYXRpdmVGaWVsZFNpemUodHlwZSksIFJ1bnRpbWUuZ2V0
QWxpZ25TaXplKHR5cGUsIG51bGwsIHRydWUpKTsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICAg
IH0KLSAgICAgIHZhciByZXQgPSBbXTsKLSAgICAgIHZhciBjdXJyLCBuZXh0LCBjdXJyQXJnOwot
ICAgICAgd2hpbGUoMSkgewotICAgICAgICB2YXIgc3RhcnRUZXh0SW5kZXggPSB0ZXh0SW5kZXg7
Ci0gICAgICAgIGN1cnIgPSBIRUFQOFsodGV4dEluZGV4KV07Ci0gICAgICAgIGlmIChjdXJyID09
PSAwKSBicmVhazsKLSAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAg
ICAgICAgaWYgKGN1cnIgPT0gMzcpIHsKLSAgICAgICAgICAvLyBIYW5kbGUgZmxhZ3MuCi0gICAg
ICAgICAgdmFyIGZsYWdBbHdheXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICB2YXIgZmxhZ0xl
ZnRBbGlnbiA9IGZhbHNlOwotICAgICAgICAgIHZhciBmbGFnQWx0ZXJuYXRpdmUgPSBmYWxzZTsK
LSAgICAgICAgICB2YXIgZmxhZ1plcm9QYWQgPSBmYWxzZTsKLSAgICAgICAgICBmbGFnc0xvb3A6
IHdoaWxlICgxKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKG5leHQpIHsKLSAgICAgICAgICAgICAg
Y2FzZSA0MzoKLSAgICAgICAgICAgICAgICBmbGFnQWx3YXlzU2lnbmVkID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgY2FzZSA0NToKLSAgICAgICAgICAgICAg
ICBmbGFnTGVmdEFsaWduID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgY2FzZSAzNToKLSAgICAgICAgICAgICAgICBmbGFnQWx0ZXJuYXRpdmUgPSB0cnVlOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICBjYXNlIDQ4OgotICAgICAgICAg
ICAgICAgIGlmIChmbGFnWmVyb1BhZCkgewotICAgICAgICAgICAgICAgICAgYnJlYWsgZmxhZ3NM
b29wOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBmbGFnWmVy
b1BhZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgYnJlYWsgZmxhZ3NMb29w
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICBu
ZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgIH0KLSAgICAgICAgICAv
LyBIYW5kbGUgd2lkdGguCi0gICAgICAgICAgdmFyIHdpZHRoID0gMDsKLSAgICAgICAgICBpZiAo
bmV4dCA9PSA0MikgewotICAgICAgICAgICAgd2lkdGggPSBnZXROZXh0QXJnKCdpMzInKTsKLSAg
ICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dElu
ZGV4KzEpfDApXTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgd2hpbGUgKG5leHQg
Pj0gNDggJiYgbmV4dCA8PSA1NykgewotICAgICAgICAgICAgICB3aWR0aCA9IHdpZHRoICogMTAg
KyAobmV4dCAtIDQ4KTsKLSAgICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICAg
IG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgfQotICAgICAgICAgIC8vIEhhbmRsZSBwcmVjaXNpb24uCi0gICAgICAgICAgdmFyIHByZWNp
c2lvblNldCA9IGZhbHNlOwotICAgICAgICAgIGlmIChuZXh0ID09IDQ2KSB7Ci0gICAgICAgICAg
ICB2YXIgcHJlY2lzaW9uID0gMDsKLSAgICAgICAgICAgIHByZWNpc2lvblNldCA9IHRydWU7Ci0g
ICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJ
bmRleCsxKXwwKV07Ci0gICAgICAgICAgICBpZiAobmV4dCA9PSA0MikgewotICAgICAgICAgICAg
ICBwcmVjaXNpb24gPSBnZXROZXh0QXJnKCdpMzInKTsKLSAgICAgICAgICAgICAgdGV4dEluZGV4
Kys7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICB3aGlsZSgxKSB7Ci0gICAg
ICAgICAgICAgICAgdmFyIHByZWNpc2lvbkNociA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsK
LSAgICAgICAgICAgICAgICBpZiAocHJlY2lzaW9uQ2hyIDwgNDggfHwKLSAgICAgICAgICAgICAg
ICAgICAgcHJlY2lzaW9uQ2hyID4gNTcpIGJyZWFrOwotICAgICAgICAgICAgICAgIHByZWNpc2lv
biA9IHByZWNpc2lvbiAqIDEwICsgKHByZWNpc2lvbkNociAtIDQ4KTsKLSAgICAgICAgICAgICAg
ICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgdmFyIHByZWNpc2lvbiA9IDY7IC8vIFN0YW5kYXJkIGRlZmF1bHQuCi0gICAg
ICAgICAgfQotICAgICAgICAgIC8vIEhhbmRsZSBpbnRlZ2VyIHNpemVzLiBXQVJOSU5HOiBUaGVz
ZSBhc3N1bWUgYSAzMi1iaXQgYXJjaGl0ZWN0dXJlIQotICAgICAgICAgIHZhciBhcmdTaXplOwot
ICAgICAgICAgIHN3aXRjaCAoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSkgewotICAgICAgICAg
ICAgY2FzZSAnaCc6Ci0gICAgICAgICAgICAgIHZhciBuZXh0TmV4dCA9IEhFQVA4WygodGV4dElu
ZGV4KzIpfDApXTsKLSAgICAgICAgICAgICAgaWYgKG5leHROZXh0ID09IDEwNCkgewotICAgICAg
ICAgICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgICAgIGFyZ1NpemUgPSAxOyAvLyBj
aGFyIChhY3R1YWxseSBpMzIgaW4gdmFyYXJncykKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBhcmdTaXplID0gMjsgLy8gc2hvcnQgKGFjdHVhbGx5IGkzMiBpbiB2YXJh
cmdzKQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSAnbCc6Ci0gICAgICAgICAgICAgIHZhciBuZXh0TmV4dCA9IEhFQVA4WygodGV4dEluZGV4
KzIpfDApXTsKLSAgICAgICAgICAgICAgaWYgKG5leHROZXh0ID09IDEwOCkgewotICAgICAgICAg
ICAgICAgIHRleHRJbmRleCsrOwotICAgICAgICAgICAgICAgIGFyZ1NpemUgPSA4OyAvLyBsb25n
IGxvbmcKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhcmdTaXplID0g
NDsgLy8gbG9uZwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgY2FzZSAnTCc6IC8vIGxvbmcgbG9uZwotICAgICAgICAgICAgY2FzZSAncSc6IC8vIGlu
dDY0X3QKLSAgICAgICAgICAgIGNhc2UgJ2onOiAvLyBpbnRtYXhfdAotICAgICAgICAgICAgICBh
cmdTaXplID0gODsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICd6Jzog
Ly8gc2l6ZV90Ci0gICAgICAgICAgICBjYXNlICd0JzogLy8gcHRyZGlmZl90Ci0gICAgICAgICAg
ICBjYXNlICdJJzogLy8gc2lnbmVkIHB0cmRpZmZfdCBvciB1bnNpZ25lZCBzaXplX3QKLSAgICAg
ICAgICAgICAgYXJnU2l6ZSA9IDQ7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgICAgYXJnU2l6ZSA9IG51bGw7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIGlmIChhcmdTaXplKSB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICBuZXh0ID0gSEVBUDhb
KCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgIC8vIEhhbmRsZSB0eXBlIHNwZWNpZmllci4K
LSAgICAgICAgICBzd2l0Y2ggKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpIHsKLSAgICAgICAg
ICAgIGNhc2UgJ2QnOiBjYXNlICdpJzogY2FzZSAndSc6IGNhc2UgJ28nOiBjYXNlICd4JzogY2Fz
ZSAnWCc6IGNhc2UgJ3AnOiB7Ci0gICAgICAgICAgICAgIC8vIEludGVnZXIuCi0gICAgICAgICAg
ICAgIHZhciBzaWduZWQgPSBuZXh0ID09IDEwMCB8fCBuZXh0ID09IDEwNTsKLSAgICAgICAgICAg
ICAgYXJnU2l6ZSA9IGFyZ1NpemUgfHwgNDsKLSAgICAgICAgICAgICAgdmFyIGN1cnJBcmcgPSBn
ZXROZXh0QXJnKCdpJyArIChhcmdTaXplICogOCkpOwotICAgICAgICAgICAgICB2YXIgb3JpZ0Fy
ZyA9IGN1cnJBcmc7Ci0gICAgICAgICAgICAgIHZhciBhcmdUZXh0OwotICAgICAgICAgICAgICAv
LyBGbGF0dGVuIGk2NC0xIFtsb3csIGhpZ2hdIGludG8gYSAoc2xpZ2h0bHkgcm91bmRlZCkgZG91
YmxlCi0gICAgICAgICAgICAgIGlmIChhcmdTaXplID09IDgpIHsKLSAgICAgICAgICAgICAgICBj
dXJyQXJnID0gUnVudGltZS5tYWtlQmlnSW50KGN1cnJBcmdbMF0sIGN1cnJBcmdbMV0sIG5leHQg
PT0gMTE3KTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBUcnVuY2F0ZSB0byBy
ZXF1ZXN0ZWQgc2l6ZS4KLSAgICAgICAgICAgICAgaWYgKGFyZ1NpemUgPD0gNCkgewotICAgICAg
ICAgICAgICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDI1NiwgYXJnU2l6ZSkgLSAxOwotICAgICAg
ICAgICAgICAgIGN1cnJBcmcgPSAoc2lnbmVkID8gcmVTaWduIDogdW5TaWduKShjdXJyQXJnICYg
bGltaXQsIGFyZ1NpemUgKiA4KTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBG
b3JtYXQgdGhlIG51bWJlci4KLSAgICAgICAgICAgICAgdmFyIGN1cnJBYnNBcmcgPSBNYXRoLmFi
cyhjdXJyQXJnKTsKLSAgICAgICAgICAgICAgdmFyIHByZWZpeCA9ICcnOwotICAgICAgICAgICAg
ICBpZiAobmV4dCA9PSAxMDAgfHwgbmV4dCA9PSAxMDUpIHsKLSAgICAgICAgICAgICAgICBpZiAo
YXJnU2l6ZSA9PSA4ICYmIGk2NE1hdGgpIGFyZ1RleHQgPSBpNjRNYXRoLnN0cmluZ2lmeShvcmln
QXJnWzBdLCBvcmlnQXJnWzFdLCBudWxsKTsgZWxzZQotICAgICAgICAgICAgICAgIGFyZ1RleHQg
PSByZVNpZ24oY3VyckFyZywgOCAqIGFyZ1NpemUsIDEpLnRvU3RyaW5nKDEwKTsKLSAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChuZXh0ID09IDExNykgewotICAgICAgICAgICAgICAgIGlmIChhcmdT
aXplID09IDggJiYgaTY0TWF0aCkgYXJnVGV4dCA9IGk2NE1hdGguc3RyaW5naWZ5KG9yaWdBcmdb
MF0sIG9yaWdBcmdbMV0sIHRydWUpOyBlbHNlCi0gICAgICAgICAgICAgICAgYXJnVGV4dCA9IHVu
U2lnbihjdXJyQXJnLCA4ICogYXJnU2l6ZSwgMSkudG9TdHJpbmcoMTApOwotICAgICAgICAgICAg
ICAgIGN1cnJBcmcgPSBNYXRoLmFicyhjdXJyQXJnKTsKLSAgICAgICAgICAgICAgfSBlbHNlIGlm
IChuZXh0ID09IDExMSkgewotICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAoZmxhZ0FsdGVybmF0
aXZlID8gJzAnIDogJycpICsgY3VyckFic0FyZy50b1N0cmluZyg4KTsKLSAgICAgICAgICAgICAg
fSBlbHNlIGlmIChuZXh0ID09IDEyMCB8fCBuZXh0ID09IDg4KSB7Ci0gICAgICAgICAgICAgICAg
cHJlZml4ID0gKGZsYWdBbHRlcm5hdGl2ZSAmJiBjdXJyQXJnICE9IDApID8gJzB4JyA6ICcnOwot
ICAgICAgICAgICAgICAgIGlmIChhcmdTaXplID09IDggJiYgaTY0TWF0aCkgewotICAgICAgICAg
ICAgICAgICAgaWYgKG9yaWdBcmdbMV0pIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9
IChvcmlnQXJnWzFdPj4+MCkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAgICAgICAgICB2YXIg
bG93ZXIgPSAob3JpZ0FyZ1swXT4+PjApLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAgICAgICAg
ICAgd2hpbGUgKGxvd2VyLmxlbmd0aCA8IDgpIGxvd2VyID0gJzAnICsgbG93ZXI7Ci0gICAgICAg
ICAgICAgICAgICAgIGFyZ1RleHQgKz0gbG93ZXI7Ci0gICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKG9yaWdBcmdbMF0+Pj4wKS50b1N0cmlu
ZygxNik7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICAgICAgaWYgKGN1cnJBcmcgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAvLyBSZXBy
ZXNlbnQgbmVnYXRpdmUgbnVtYmVycyBpbiBoZXggYXMgMidzIGNvbXBsZW1lbnQuCi0gICAgICAg
ICAgICAgICAgICBjdXJyQXJnID0gLWN1cnJBcmc7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0
ID0gKGN1cnJBYnNBcmcgLSAxKS50b1N0cmluZygxNik7Ci0gICAgICAgICAgICAgICAgICB2YXIg
YnVmZmVyID0gW107Ci0gICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ1Rl
eHQubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgYnVmZmVyLnB1c2goKDB4RiAt
IHBhcnNlSW50KGFyZ1RleHRbaV0sIDE2KSkudG9TdHJpbmcoMTYpKTsKLSAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBidWZmZXIuam9pbignJyk7Ci0gICAg
ICAgICAgICAgICAgICB3aGlsZSAoYXJnVGV4dC5sZW5ndGggPCBhcmdTaXplICogMikgYXJnVGV4
dCA9ICdmJyArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgIGFyZ1RleHQgPSBjdXJyQWJzQXJnLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgaWYgKG5leHQgPT0gODgpIHsKLSAgICAgICAgICAgICAgICAg
IHByZWZpeCA9IHByZWZpeC50b1VwcGVyQ2FzZSgpOwotICAgICAgICAgICAgICAgICAgYXJnVGV4
dCA9IGFyZ1RleHQudG9VcHBlckNhc2UoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMTIpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3VyckFi
c0FyZyA9PT0gMCkgewotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICcobmlsKSc7Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIHByZWZpeCA9ICcweCc7Ci0g
ICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gY3VyckFic0FyZy50b1N0cmluZygxNik7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmIChwcmVjaXNp
b25TZXQpIHsKLSAgICAgICAgICAgICAgICB3aGlsZSAoYXJnVGV4dC5sZW5ndGggPCBwcmVjaXNp
b24pIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnMCcgKyBhcmdUZXh0OwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBBZGQgc2lnbiBp
ZiBuZWVkZWQKLSAgICAgICAgICAgICAgaWYgKGZsYWdBbHdheXNTaWduZWQpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoY3VyckFyZyA8IDApIHsKLSAgICAgICAgICAgICAgICAgIHByZWZpeCA9ICct
JyArIHByZWZpeDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
cHJlZml4ID0gJysnICsgcHJlZml4OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAvLyBBZGQgcGFkZGluZy4KLSAgICAgICAgICAgICAgd2hpbGUgKHBy
ZWZpeC5sZW5ndGggKyBhcmdUZXh0Lmxlbmd0aCA8IHdpZHRoKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGZsYWdMZWZ0QWxpZ24pIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgKz0gJyAnOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBpZiAoZmxhZ1plcm9Q
YWQpIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICcwJyArIGFyZ1RleHQ7Ci0gICAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwcmVmaXggPSAnICcg
KyBwcmVmaXg7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgIC8vIEluc2VydCB0aGUgcmVzdWx0IGludG8gdGhlIGJ1
ZmZlci4KLSAgICAgICAgICAgICAgYXJnVGV4dCA9IHByZWZpeCArIGFyZ1RleHQ7Ci0gICAgICAg
ICAgICAgIGFyZ1RleHQuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24oY2hyKSB7Ci0gICAgICAg
ICAgICAgICAgcmV0LnB1c2goY2hyLmNoYXJDb2RlQXQoMCkpOwotICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlICdm
JzogY2FzZSAnRic6IGNhc2UgJ2UnOiBjYXNlICdFJzogY2FzZSAnZyc6IGNhc2UgJ0cnOiB7Ci0g
ICAgICAgICAgICAgIC8vIEZsb2F0LgotICAgICAgICAgICAgICB2YXIgY3VyckFyZyA9IGdldE5l
eHRBcmcoJ2RvdWJsZScpOwotICAgICAgICAgICAgICB2YXIgYXJnVGV4dDsKLSAgICAgICAgICAg
ICAgaWYgKGlzTmFOKGN1cnJBcmcpKSB7Ci0gICAgICAgICAgICAgICAgYXJnVGV4dCA9ICduYW4n
OwotICAgICAgICAgICAgICAgIGZsYWdaZXJvUGFkID0gZmFsc2U7Ci0gICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoIWlzRmluaXRlKGN1cnJBcmcpKSB7Ci0gICAgICAgICAgICAgICAgYXJnVGV4dCA9
IChjdXJyQXJnIDwgMCA/ICctJyA6ICcnKSArICdpbmYnOwotICAgICAgICAgICAgICAgIGZsYWda
ZXJvUGFkID0gZmFsc2U7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
dmFyIGlzR2VuZXJhbCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHZhciBlZmZlY3RpdmVQcmVj
aXNpb24gPSBNYXRoLm1pbihwcmVjaXNpb24sIDIwKTsKLSAgICAgICAgICAgICAgICAvLyBDb252
ZXJ0IGcvRyB0byBmL0Ygb3IgZS9FLCBhcyBwZXI6Ci0gICAgICAgICAgICAgICAgLy8gaHR0cDov
L3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzk2OTk5MTk3OTkvZnVuY3Rpb25zL3ByaW50
Zi5odG1sCi0gICAgICAgICAgICAgICAgaWYgKG5leHQgPT0gMTAzIHx8IG5leHQgPT0gNzEpIHsK
LSAgICAgICAgICAgICAgICAgIGlzR2VuZXJhbCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICBw
cmVjaXNpb24gPSBwcmVjaXNpb24gfHwgMTsKLSAgICAgICAgICAgICAgICAgIHZhciBleHBvbmVu
dCA9IHBhcnNlSW50KGN1cnJBcmcudG9FeHBvbmVudGlhbChlZmZlY3RpdmVQcmVjaXNpb24pLnNw
bGl0KCdlJylbMV0sIDEwKTsKLSAgICAgICAgICAgICAgICAgIGlmIChwcmVjaXNpb24gPiBleHBv
bmVudCAmJiBleHBvbmVudCA+PSAtNCkgewotICAgICAgICAgICAgICAgICAgICBuZXh0ID0gKChu
ZXh0ID09IDEwMykgPyAnZicgOiAnRicpLmNoYXJDb2RlQXQoMCk7Ci0gICAgICAgICAgICAgICAg
ICAgIHByZWNpc2lvbiAtPSBleHBvbmVudCArIDE7Ci0gICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICBuZXh0ID0gKChuZXh0ID09IDEwMykgPyAnZScgOiAnRScp
LmNoYXJDb2RlQXQoMCk7Ci0gICAgICAgICAgICAgICAgICAgIHByZWNpc2lvbi0tOwotICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgZWZmZWN0aXZlUHJlY2lzaW9uID0gTWF0
aC5taW4ocHJlY2lzaW9uLCAyMCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IGlmIChuZXh0ID09IDEwMSB8fCBuZXh0ID09IDY5KSB7Ci0gICAgICAgICAgICAgICAgICBhcmdU
ZXh0ID0gY3VyckFyZy50b0V4cG9uZW50aWFsKGVmZmVjdGl2ZVByZWNpc2lvbik7Ci0gICAgICAg
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGV4cG9uZW50IGhhcyBhdCBsZWFzdCAyIGRpZ2l0
cy4KLSAgICAgICAgICAgICAgICAgIGlmICgvW2VFXVstK11cZCQvLnRlc3QoYXJnVGV4dCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGFyZ1RleHQuc2xpY2UoMCwgLTEpICsgJzAn
ICsgYXJnVGV4dC5zbGljZSgtMSk7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlIGlmIChuZXh0ID09IDEwMiB8fCBuZXh0ID09IDcwKSB7Ci0gICAgICAgICAgICAg
ICAgICBhcmdUZXh0ID0gY3VyckFyZy50b0ZpeGVkKGVmZmVjdGl2ZVByZWNpc2lvbik7Ci0gICAg
ICAgICAgICAgICAgICBpZiAoY3VyckFyZyA9PT0gMCAmJiBfX3JlYWxseU5lZ2F0aXZlKGN1cnJB
cmcpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnLScgKyBhcmdUZXh0OwotICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YXIg
cGFydHMgPSBhcmdUZXh0LnNwbGl0KCdlJyk7Ci0gICAgICAgICAgICAgICAgaWYgKGlzR2VuZXJh
bCAmJiAhZmxhZ0FsdGVybmF0aXZlKSB7Ci0gICAgICAgICAgICAgICAgICAvLyBEaXNjYXJkIHRy
YWlsaW5nIHplcm9zIGFuZCBwZXJpb2RzLgotICAgICAgICAgICAgICAgICAgd2hpbGUgKHBhcnRz
WzBdLmxlbmd0aCA+IDEgJiYgcGFydHNbMF0uaW5kZXhPZignLicpICE9IC0xICYmCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgKHBhcnRzWzBdLnNsaWNlKC0xKSA9PSAnMCcgfHwgcGFydHNbMF0u
c2xpY2UoLTEpID09ICcuJykpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFydHNbMF0gPSBwYXJ0
c1swXS5zbGljZSgwLCAtMSk7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGEgcGVyaW9k
IGluIGFsdGVybmF0aXZlIG1vZGUuCi0gICAgICAgICAgICAgICAgICBpZiAoZmxhZ0FsdGVybmF0
aXZlICYmIGFyZ1RleHQuaW5kZXhPZignLicpID09IC0xKSBwYXJ0c1swXSArPSAnLic7Ci0gICAg
ICAgICAgICAgICAgICAvLyBaZXJvIHBhZCB1bnRpbCByZXF1aXJlZCBwcmVjaXNpb24uCi0gICAg
ICAgICAgICAgICAgICB3aGlsZSAocHJlY2lzaW9uID4gZWZmZWN0aXZlUHJlY2lzaW9uKyspIHBh
cnRzWzBdICs9ICcwJzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYXJnVGV4
dCA9IHBhcnRzWzBdICsgKHBhcnRzLmxlbmd0aCA+IDEgPyAnZScgKyBwYXJ0c1sxXSA6ICcnKTsK
LSAgICAgICAgICAgICAgICAvLyBDYXBpdGFsaXplICdFJyBpZiBuZWVkZWQuCi0gICAgICAgICAg
ICAgICAgaWYgKG5leHQgPT0gNjkpIGFyZ1RleHQgPSBhcmdUZXh0LnRvVXBwZXJDYXNlKCk7Ci0g
ICAgICAgICAgICAgICAgLy8gQWRkIHNpZ24uCi0gICAgICAgICAgICAgICAgaWYgKGZsYWdBbHdh
eXNTaWduZWQgJiYgY3VyckFyZyA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0g
JysnICsgYXJnVGV4dDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgLy8gQWRkIHBhZGRpbmcuCi0gICAgICAgICAgICAgIHdoaWxlIChhcmdUZXh0Lmxl
bmd0aCA8IHdpZHRoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZsYWdMZWZ0QWxpZ24pIHsKLSAg
ICAgICAgICAgICAgICAgIGFyZ1RleHQgKz0gJyAnOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICBpZiAoZmxhZ1plcm9QYWQgJiYgKGFyZ1RleHRbMF0gPT0gJy0n
IHx8IGFyZ1RleHRbMF0gPT0gJysnKSkgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0g
YXJnVGV4dFswXSArICcwJyArIGFyZ1RleHQuc2xpY2UoMSk7Ci0gICAgICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKGZsYWdaZXJvUGFkID8gJzAn
IDogJyAnKSArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIC8vIEFkanVzdCBjYXNlLgotICAgICAg
ICAgICAgICBpZiAobmV4dCA8IDk3KSBhcmdUZXh0ID0gYXJnVGV4dC50b1VwcGVyQ2FzZSgpOwot
ICAgICAgICAgICAgICAvLyBJbnNlcnQgdGhlIHJlc3VsdCBpbnRvIHRoZSBidWZmZXIuCi0gICAg
ICAgICAgICAgIGFyZ1RleHQuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24oY2hyKSB7Ci0gICAg
ICAgICAgICAgICAgcmV0LnB1c2goY2hyLmNoYXJDb2RlQXQoMCkpOwotICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNl
ICdzJzogewotICAgICAgICAgICAgICAvLyBTdHJpbmcuCi0gICAgICAgICAgICAgIHZhciBhcmcg
PSBnZXROZXh0QXJnKCdpOConKTsKLSAgICAgICAgICAgICAgdmFyIGFyZ0xlbmd0aCA9IGFyZyA/
IF9zdHJsZW4oYXJnKSA6ICcobnVsbCknLmxlbmd0aDsKLSAgICAgICAgICAgICAgaWYgKHByZWNp
c2lvblNldCkgYXJnTGVuZ3RoID0gTWF0aC5taW4oYXJnTGVuZ3RoLCBwcmVjaXNpb24pOwotICAg
ICAgICAgICAgICBpZiAoIWZsYWdMZWZ0QWxpZ24pIHsKLSAgICAgICAgICAgICAgICB3aGlsZSAo
YXJnTGVuZ3RoIDwgd2lkdGgtLSkgewotICAgICAgICAgICAgICAgICAgcmV0LnB1c2goMzIpOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAoYXJn
KSB7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdMZW5ndGg7IGkrKykg
ewotICAgICAgICAgICAgICAgICAgcmV0LnB1c2goSEVBUFU4WygoYXJnKyspfDApXSk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJl
dCA9IHJldC5jb25jYXQoaW50QXJyYXlGcm9tU3RyaW5nKCcobnVsbCknLnN1YnN0cigwLCBhcmdM
ZW5ndGgpLCB0cnVlKSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKGZsYWdM
ZWZ0QWxpZ24pIHsKLSAgICAgICAgICAgICAgICB3aGlsZSAoYXJnTGVuZ3RoIDwgd2lkdGgtLSkg
ewotICAgICAgICAgICAgICAgICAgcmV0LnB1c2goMzIpOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGNhc2UgJ2MnOiB7Ci0gICAgICAgICAgICAgIC8vIENoYXJhY3Rlci4KLSAgICAgICAg
ICAgICAgaWYgKGZsYWdMZWZ0QWxpZ24pIHJldC5wdXNoKGdldE5leHRBcmcoJ2k4JykpOwotICAg
ICAgICAgICAgICB3aGlsZSAoLS13aWR0aCA+IDApIHsKLSAgICAgICAgICAgICAgICByZXQucHVz
aCgzMik7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKCFmbGFnTGVmdEFsaWdu
KSByZXQucHVzaChnZXROZXh0QXJnKCdpOCcpKTsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlICduJzogewotICAgICAgICAgICAgICAvLyBXcml0
ZSB0aGUgbGVuZ3RoIHdyaXR0ZW4gc28gZmFyIHRvIHRoZSBuZXh0IHBhcmFtZXRlci4KLSAgICAg
ICAgICAgICAgdmFyIHB0ciA9IGdldE5leHRBcmcoJ2kzMionKTsKLSAgICAgICAgICAgICAgSEVB
UDMyWygocHRyKT4+MildPXJldC5sZW5ndGgKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBjYXNlICclJzogewotICAgICAgICAgICAgICAvLyBMaXRlcmFs
IHBlcmNlbnQgc2lnbi4KLSAgICAgICAgICAgICAgcmV0LnB1c2goY3Vycik7Ci0gICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZGVmYXVsdDogewotICAgICAg
ICAgICAgICAvLyBVbmtub3duIHNwZWNpZmllcnMgcmVtYWluIHVudG91Y2hlZC4KLSAgICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IHN0YXJ0VGV4dEluZGV4OyBpIDwgdGV4dEluZGV4ICsgMjsgaSsr
KSB7Ci0gICAgICAgICAgICAgICAgcmV0LnB1c2goSEVBUDhbKGkpXSk7Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgdGV4dEluZGV4ICs9IDI7
Ci0gICAgICAgICAgLy8gVE9ETzogU3VwcG9ydCBhL0EgKGhleCBmbG9hdCkgYW5kIG0gKGxhc3Qg
ZXJyb3IpIHNwZWNpZmllcnMuCi0gICAgICAgICAgLy8gVE9ETzogU3VwcG9ydCAlMSR7c3BlY2lm
aWVyfSBmb3IgYXJnIHNlbGVjdGlvbi4KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXQu
cHVzaChjdXJyKTsKLSAgICAgICAgICB0ZXh0SW5kZXggKz0gMTsKLSAgICAgICAgfQotICAgICAg
fQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9ZnVuY3Rpb24gX3NucHJpbnRmKHMsIG4sIGZvcm1h
dCwgdmFyYXJncykgewotICAgICAgLy8gaW50IHNucHJpbnRmKGNoYXIgKnJlc3RyaWN0IHMsIHNp
emVfdCBuLCBjb25zdCBjaGFyICpyZXN0cmljdCBmb3JtYXQsIC4uLik7Ci0gICAgICAvLyBodHRw
Oi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9wcmlu
dGYuaHRtbAotICAgICAgdmFyIHJlc3VsdCA9IF9fZm9ybWF0U3RyaW5nKGZvcm1hdCwgdmFyYXJn
cyk7Ci0gICAgICB2YXIgbGltaXQgPSAobiA9PT0gdW5kZWZpbmVkKSA/IHJlc3VsdC5sZW5ndGgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogTWF0aC5taW4ocmVzdWx0Lmxl
bmd0aCwgTWF0aC5tYXgobiAtIDEsIDApKTsKLSAgICAgIGlmIChzIDwgMCkgewotICAgICAgICBz
ID0gLXM7Ci0gICAgICAgIHZhciBidWYgPSBfbWFsbG9jKGxpbWl0KzEpOwotICAgICAgICBIRUFQ
MzJbKChzKT4+MildPWJ1ZjsKLSAgICAgICAgcyA9IGJ1ZjsKLSAgICAgIH0KLSAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbGltaXQ7IGkrKykgewotICAgICAgICBIRUFQOFsoKChzKSsoaSkpfDAp
XT1yZXN1bHRbaV07Ci0gICAgICB9Ci0gICAgICBpZiAobGltaXQgPCBuIHx8IChuID09PSB1bmRl
ZmluZWQpKSBIRUFQOFsoKChzKSsoaSkpfDApXT0wOwotICAgICAgcmV0dXJuIHJlc3VsdC5sZW5n
dGg7Ci0gICAgfQotICBmdW5jdGlvbiBfc3lzY29uZihuYW1lKSB7Ci0gICAgICAvLyBsb25nIHN5
c2NvbmYoaW50IG5hbWUpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxp
bmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvc3lzY29uZi5odG1sCi0gICAgICBzd2l0Y2gobmFt
ZSkgewotICAgICAgICBjYXNlIDg6IHJldHVybiBQQUdFX1NJWkU7Ci0gICAgICAgIGNhc2UgNTQ6
Ci0gICAgICAgIGNhc2UgNTY6Ci0gICAgICAgIGNhc2UgMjE6Ci0gICAgICAgIGNhc2UgNjE6Ci0g
ICAgICAgIGNhc2UgNjM6Ci0gICAgICAgIGNhc2UgMjI6Ci0gICAgICAgIGNhc2UgNjc6Ci0gICAg
ICAgIGNhc2UgMjM6Ci0gICAgICAgIGNhc2UgMjQ6Ci0gICAgICAgIGNhc2UgMjU6Ci0gICAgICAg
IGNhc2UgMjY6Ci0gICAgICAgIGNhc2UgMjc6Ci0gICAgICAgIGNhc2UgNjk6Ci0gICAgICAgIGNh
c2UgMjg6Ci0gICAgICAgIGNhc2UgMTAxOgotICAgICAgICBjYXNlIDcwOgotICAgICAgICBjYXNl
IDcxOgotICAgICAgICBjYXNlIDI5OgotICAgICAgICBjYXNlIDMwOgotICAgICAgICBjYXNlIDE5
OToKLSAgICAgICAgY2FzZSA3NToKLSAgICAgICAgY2FzZSA3NjoKLSAgICAgICAgY2FzZSAzMjoK
LSAgICAgICAgY2FzZSA0MzoKLSAgICAgICAgY2FzZSA0NDoKLSAgICAgICAgY2FzZSA4MDoKLSAg
ICAgICAgY2FzZSA0NjoKLSAgICAgICAgY2FzZSA0NzoKLSAgICAgICAgY2FzZSA0NToKLSAgICAg
ICAgY2FzZSA0ODoKLSAgICAgICAgY2FzZSA0OToKLSAgICAgICAgY2FzZSA0MjoKLSAgICAgICAg
Y2FzZSA4MjoKLSAgICAgICAgY2FzZSAzMzoKLSAgICAgICAgY2FzZSA3OgotICAgICAgICBjYXNl
IDEwODoKLSAgICAgICAgY2FzZSAxMDk6Ci0gICAgICAgIGNhc2UgMTA3OgotICAgICAgICBjYXNl
IDExMjoKLSAgICAgICAgY2FzZSAxMTk6Ci0gICAgICAgIGNhc2UgMTIxOgotICAgICAgICAgIHJl
dHVybiAyMDA4MDk7Ci0gICAgICAgIGNhc2UgMTM6Ci0gICAgICAgIGNhc2UgMTA0OgotICAgICAg
ICBjYXNlIDk0OgotICAgICAgICBjYXNlIDk1OgotICAgICAgICBjYXNlIDM0OgotICAgICAgICBj
YXNlIDM1OgotICAgICAgICBjYXNlIDc3OgotICAgICAgICBjYXNlIDgxOgotICAgICAgICBjYXNl
IDgzOgotICAgICAgICBjYXNlIDg0OgotICAgICAgICBjYXNlIDg1OgotICAgICAgICBjYXNlIDg2
OgotICAgICAgICBjYXNlIDg3OgotICAgICAgICBjYXNlIDg4OgotICAgICAgICBjYXNlIDg5Ogot
ICAgICAgICBjYXNlIDkwOgotICAgICAgICBjYXNlIDkxOgotICAgICAgICBjYXNlIDk0OgotICAg
ICAgICBjYXNlIDk1OgotICAgICAgICBjYXNlIDExMDoKLSAgICAgICAgY2FzZSAxMTE6Ci0gICAg
ICAgIGNhc2UgMTEzOgotICAgICAgICBjYXNlIDExNDoKLSAgICAgICAgY2FzZSAxMTU6Ci0gICAg
ICAgIGNhc2UgMTE2OgotICAgICAgICBjYXNlIDExNzoKLSAgICAgICAgY2FzZSAxMTg6Ci0gICAg
ICAgIGNhc2UgMTIwOgotICAgICAgICBjYXNlIDQwOgotICAgICAgICBjYXNlIDE2OgotICAgICAg
ICBjYXNlIDc5OgotICAgICAgICBjYXNlIDE5OgotICAgICAgICAgIHJldHVybiAtMTsKLSAgICAg
ICAgY2FzZSA5MjoKLSAgICAgICAgY2FzZSA5MzoKLSAgICAgICAgY2FzZSA1OgotICAgICAgICBj
YXNlIDcyOgotICAgICAgICBjYXNlIDY6Ci0gICAgICAgIGNhc2UgNzQ6Ci0gICAgICAgIGNhc2Ug
OTI6Ci0gICAgICAgIGNhc2UgOTM6Ci0gICAgICAgIGNhc2UgOTY6Ci0gICAgICAgIGNhc2UgOTc6
Ci0gICAgICAgIGNhc2UgOTg6Ci0gICAgICAgIGNhc2UgOTk6Ci0gICAgICAgIGNhc2UgMTAyOgot
ICAgICAgICBjYXNlIDEwMzoKLSAgICAgICAgY2FzZSAxMDU6Ci0gICAgICAgICAgcmV0dXJuIDE7
Ci0gICAgICAgIGNhc2UgMzg6Ci0gICAgICAgIGNhc2UgNjY6Ci0gICAgICAgIGNhc2UgNTA6Ci0g
ICAgICAgIGNhc2UgNTE6Ci0gICAgICAgIGNhc2UgNDoKLSAgICAgICAgICByZXR1cm4gMTAyNDsK
LSAgICAgICAgY2FzZSAxNToKLSAgICAgICAgY2FzZSA2NDoKLSAgICAgICAgY2FzZSA0MToKLSAg
ICAgICAgICByZXR1cm4gMzI7Ci0gICAgICAgIGNhc2UgNTU6Ci0gICAgICAgIGNhc2UgMzc6Ci0g
ICAgICAgIGNhc2UgMTc6Ci0gICAgICAgICAgcmV0dXJuIDIxNDc0ODM2NDc7Ci0gICAgICAgIGNh
c2UgMTg6Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICByZXR1cm4gNDc4Mzk7Ci0gICAgICAg
IGNhc2UgNTk6Ci0gICAgICAgIGNhc2UgNTc6Ci0gICAgICAgICAgcmV0dXJuIDk5OwotICAgICAg
ICBjYXNlIDY4OgotICAgICAgICBjYXNlIDU4OgotICAgICAgICAgIHJldHVybiAyMDQ4OwotICAg
ICAgICBjYXNlIDA6IHJldHVybiAyMDk3MTUyOwotICAgICAgICBjYXNlIDM6IHJldHVybiA2NTUz
NjsKLSAgICAgICAgY2FzZSAxNDogcmV0dXJuIDMyNzY4OwotICAgICAgICBjYXNlIDczOiByZXR1
cm4gMzI3Njc7Ci0gICAgICAgIGNhc2UgMzk6IHJldHVybiAxNjM4NDsKLSAgICAgICAgY2FzZSA2
MDogcmV0dXJuIDEwMDA7Ci0gICAgICAgIGNhc2UgMTA2OiByZXR1cm4gNzAwOwotICAgICAgICBj
YXNlIDUyOiByZXR1cm4gMjU2OwotICAgICAgICBjYXNlIDYyOiByZXR1cm4gMjU1OwotICAgICAg
ICBjYXNlIDI6IHJldHVybiAxMDA7Ci0gICAgICAgIGNhc2UgNjU6IHJldHVybiA2NDsKLSAgICAg
ICAgY2FzZSAzNjogcmV0dXJuIDIwOwotICAgICAgICBjYXNlIDEwMDogcmV0dXJuIDE2OwotICAg
ICAgICBjYXNlIDIwOiByZXR1cm4gNjsKLSAgICAgICAgY2FzZSA1MzogcmV0dXJuIDQ7Ci0gICAg
ICAgIGNhc2UgMTA6IHJldHVybiAxOwotICAgICAgfQotICAgICAgX19fc2V0RXJyTm8oRVJSTk9f
Q09ERVMuRUlOVkFMKTsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4
YV9ndWFyZF9hYm9ydCgpIHt9Ci0gIGZ1bmN0aW9uIF9pc3hkaWdpdChjaHIpIHsKLSAgICAgIHJl
dHVybiAoY2hyID49IDQ4ICYmIGNociA8PSA1NykgfHwKLSAgICAgICAgICAgICAoY2hyID49IDk3
ICYmIGNociA8PSAxMDIpIHx8Ci0gICAgICAgICAgICAgKGNociA+PSA2NSAmJiBjaHIgPD0gNzAp
OwotICAgIH12YXIgX2lzeGRpZ2l0X2w9X2lzeGRpZ2l0OwotICBmdW5jdGlvbiBfaXNkaWdpdChj
aHIpIHsKLSAgICAgIHJldHVybiBjaHIgPj0gNDggJiYgY2hyIDw9IDU3OwotICAgIH12YXIgX2lz
ZGlnaXRfbD1faXNkaWdpdDsKLSAgZnVuY3Rpb24gX19pc0Zsb2F0KHRleHQpIHsKLSAgICAgIHJl
dHVybiAhISgvXlsrLV0/WzAtOV0qXC4/WzAtOV0rKFtlRV1bKy1dP1swLTldKyk/JC8uZXhlYyh0
ZXh0KSk7Ci0gICAgfWZ1bmN0aW9uIF9fc2NhblN0cmluZyhmb3JtYXQsIGdldCwgdW5nZXQsIHZh
cmFyZ3MpIHsKLSAgICAgIGlmICghX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpIHsKLSAgICAgICAg
X19zY2FuU3RyaW5nLndoaXRlU3BhY2UgPSB7fTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRl
U3BhY2VbMzJdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbOV0gPSAxOwot
ICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsxMF0gPSAxOwotICAgICAgICBfX3NjYW5T
dHJpbmcud2hpdGVTcGFjZVsxMV0gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFj
ZVsxMl0gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsxM10gPSAxOwotICAg
ICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsnICddID0gMTsKLSAgICAgICAgX19zY2FuU3Ry
aW5nLndoaXRlU3BhY2VbJ1x0J10gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFj
ZVsnXG4nXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcdiddID0gMTsK
LSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJ1xmJ10gPSAxOwotICAgICAgICBfX3Nj
YW5TdHJpbmcud2hpdGVTcGFjZVsnXHInXSA9IDE7Ci0gICAgICB9Ci0gICAgICAvLyBTdXBwb3J0
cyAleCwgJTR4LCAlZC4lZCwgJWxsZCwgJXMsICVmLCAlbGYuCi0gICAgICAvLyBUT0RPOiBTdXBw
b3J0IGFsbCBmb3JtYXQgc3BlY2lmaWVycy4KLSAgICAgIGZvcm1hdCA9IFBvaW50ZXJfc3RyaW5n
aWZ5KGZvcm1hdCk7Ci0gICAgICB2YXIgc29GYXIgPSAwOwotICAgICAgaWYgKGZvcm1hdC5pbmRl
eE9mKCclbicpID49IDApIHsKLSAgICAgICAgLy8gbmVlZCB0byB0cmFjayBzb0ZhcgotICAgICAg
ICB2YXIgX2dldCA9IGdldDsKLSAgICAgICAgZ2V0ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
c29GYXIrKzsKLSAgICAgICAgICByZXR1cm4gX2dldCgpOwotICAgICAgICB9Ci0gICAgICAgIHZh
ciBfdW5nZXQgPSB1bmdldDsKLSAgICAgICAgdW5nZXQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICBzb0Zhci0tOwotICAgICAgICAgIHJldHVybiBfdW5nZXQoKTsKLSAgICAgICAgfQotICAgICAg
fQotICAgICAgdmFyIGZvcm1hdEluZGV4ID0gMDsKLSAgICAgIHZhciBhcmdzaSA9IDA7Ci0gICAg
ICB2YXIgZmllbGRzID0gMDsKLSAgICAgIHZhciBhcmdJbmRleCA9IDA7Ci0gICAgICB2YXIgbmV4
dDsKLSAgICAgIG1haW5Mb29wOgotICAgICAgZm9yICh2YXIgZm9ybWF0SW5kZXggPSAwOyBmb3Jt
YXRJbmRleCA8IGZvcm1hdC5sZW5ndGg7KSB7Ci0gICAgICAgIGlmIChmb3JtYXRbZm9ybWF0SW5k
ZXhdID09PSAnJScgJiYgZm9ybWF0W2Zvcm1hdEluZGV4KzFdID09ICduJykgewotICAgICAgICAg
IHZhciBhcmdQdHIgPSBIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+PjIpXTsKLSAgICAg
ICAgICBhcmdJbmRleCArPSBSdW50aW1lLmdldEFsaWduU2l6ZSgndm9pZConLCBudWxsLCB0cnVl
KTsKLSAgICAgICAgICBIRUFQMzJbKChhcmdQdHIpPj4yKV09c29GYXI7Ci0gICAgICAgICAgZm9y
bWF0SW5kZXggKz0gMjsKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoZm9ybWF0W2Zvcm1hdEluZGV4XSA9PT0gJyUnKSB7Ci0gICAgICAgICAgdmFyIG5leHRDID0g
Zm9ybWF0LmluZGV4T2YoJ2MnLCBmb3JtYXRJbmRleCsxKTsKLSAgICAgICAgICBpZiAobmV4dEMg
PiAwKSB7Ci0gICAgICAgICAgICB2YXIgbWF4eCA9IDE7Ci0gICAgICAgICAgICBpZiAobmV4dEMg
PiBmb3JtYXRJbmRleCsxKSB7Ci0gICAgICAgICAgICAgIHZhciBzdWIgPSBmb3JtYXQuc3Vic3Ry
aW5nKGZvcm1hdEluZGV4KzEsIG5leHRDKQotICAgICAgICAgICAgICBtYXh4ID0gcGFyc2VJbnQo
c3ViKTsKLSAgICAgICAgICAgICAgaWYgKG1heHggIT0gc3ViKSBtYXh4ID0gMDsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmIChtYXh4KSB7Ci0gICAgICAgICAgICAgIHZhciBhcmdQdHIg
PSBIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+PjIpXTsKLSAgICAgICAgICAgICAgYXJn
SW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywgbnVsbCwgdHJ1ZSk7Ci0gICAg
ICAgICAgICAgIGZpZWxkcysrOwotICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1h
eHg7IGkrKykgewotICAgICAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICAgICAg
ICBIRUFQOFsoKGFyZ1B0cisrKXwwKV09bmV4dDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICBmb3JtYXRJbmRleCArPSBuZXh0QyAtIGZvcm1hdEluZGV4ICsgMTsKLSAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICAgIC8vIHJlbW92ZSB3aGl0ZXNwYWNlCi0gICAgICAgIHdoaWxlICgxKSB7Ci0gICAgICAgICAg
bmV4dCA9IGdldCgpOwotICAgICAgICAgIGlmIChuZXh0ID09IDApIHJldHVybiBmaWVsZHM7Ci0g
ICAgICAgICAgaWYgKCEobmV4dCBpbiBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZSkpIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICAgIHVuZ2V0KCk7Ci0gICAgICAgIGlmIChmb3JtYXRbZm9ybWF0SW5k
ZXhdID09PSAnJScpIHsKLSAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgIHZhciBz
dXBwcmVzc0Fzc2lnbm1lbnQgPSBmYWxzZTsKLSAgICAgICAgICBpZiAoZm9ybWF0W2Zvcm1hdElu
ZGV4XSA9PSAnKicpIHsKLSAgICAgICAgICAgIHN1cHByZXNzQXNzaWdubWVudCA9IHRydWU7Ci0g
ICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgbWF4
U3BlY2lmaWVyU3RhcnQgPSBmb3JtYXRJbmRleDsKLSAgICAgICAgICB3aGlsZSAoZm9ybWF0W2Zv
cm1hdEluZGV4XS5jaGFyQ29kZUF0KDApID49IDQ4ICYmCi0gICAgICAgICAgICAgICAgIGZvcm1h
dFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSA8PSA1NykgewotICAgICAgICAgICAgZm9ybWF0
SW5kZXgrKzsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIG1heF87Ci0gICAgICAgICAgaWYg
KGZvcm1hdEluZGV4ICE9IG1heFNwZWNpZmllclN0YXJ0KSB7Ci0gICAgICAgICAgICBtYXhfID0g
cGFyc2VJbnQoZm9ybWF0LnNsaWNlKG1heFNwZWNpZmllclN0YXJ0LCBmb3JtYXRJbmRleCksIDEw
KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGxvbmdfID0gZmFsc2U7Ci0gICAgICAgICAg
dmFyIGhhbGYgPSBmYWxzZTsKLSAgICAgICAgICB2YXIgbG9uZ0xvbmcgPSBmYWxzZTsKLSAgICAg
ICAgICBpZiAoZm9ybWF0W2Zvcm1hdEluZGV4XSA9PSAnbCcpIHsKLSAgICAgICAgICAgIGxvbmdf
ID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgICBpZiAoZm9y
bWF0W2Zvcm1hdEluZGV4XSA9PSAnbCcpIHsKLSAgICAgICAgICAgICAgbG9uZ0xvbmcgPSB0cnVl
OwotICAgICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgICAgfQotICAgICAgICAg
IH0gZWxzZSBpZiAoZm9ybWF0W2Zvcm1hdEluZGV4XSA9PSAnaCcpIHsKLSAgICAgICAgICAgIGhh
bGYgPSB0cnVlOwotICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICB9Ci0gICAg
ICAgICAgdmFyIHR5cGUgPSBmb3JtYXRbZm9ybWF0SW5kZXhdOwotICAgICAgICAgIGZvcm1hdElu
ZGV4Kys7Ci0gICAgICAgICAgdmFyIGN1cnIgPSAwOwotICAgICAgICAgIHZhciBidWZmZXIgPSBb
XTsKLSAgICAgICAgICAvLyBSZWFkIGNoYXJhY3RlcnMgYWNjb3JkaW5nIHRvIHRoZSBmb3JtYXQu
IGZsb2F0cyBhcmUgdHJpY2tpZXIsIHRoZXkgbWF5IGJlIGluIGFuIHVuZmxvYXQgc3RhdGUgaW4g
dGhlIG1pZGRsZSwgdGhlbiBiZSBhIHZhbGlkIGZsb2F0IGxhdGVyCi0gICAgICAgICAgaWYgKHR5
cGUgPT0gJ2YnIHx8IHR5cGUgPT0gJ2UnIHx8IHR5cGUgPT0gJ2cnIHx8Ci0gICAgICAgICAgICAg
IHR5cGUgPT0gJ0YnIHx8IHR5cGUgPT0gJ0UnIHx8IHR5cGUgPT0gJ0cnKSB7Ci0gICAgICAgICAg
ICB2YXIgbGFzdCA9IDA7Ci0gICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgICB3
aGlsZSAobmV4dCA+IDApIHsKLSAgICAgICAgICAgICAgYnVmZmVyLnB1c2goU3RyaW5nLmZyb21D
aGFyQ29kZShuZXh0KSk7Ci0gICAgICAgICAgICAgIGlmIChfX2lzRmxvYXQoYnVmZmVyLmpvaW4o
JycpKSkgewotICAgICAgICAgICAgICAgIGxhc3QgPSBidWZmZXIubGVuZ3RoOwotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmZmVyLmxlbmd0aCAtIGxhc3QgKyAxOyBpKysp
IHsKLSAgICAgICAgICAgICAgdW5nZXQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJ1
ZmZlci5sZW5ndGggPSBsYXN0OwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBuZXh0
ID0gZ2V0KCk7Ci0gICAgICAgICAgICB2YXIgZmlyc3QgPSB0cnVlOwotICAgICAgICAgICAgd2hp
bGUgKChjdXJyIDwgbWF4XyB8fCBpc05hTihtYXhfKSkgJiYgbmV4dCA+IDApIHsKLSAgICAgICAg
ICAgICAgaWYgKCEobmV4dCBpbiBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZSkgJiYgLy8gc3RvcCBv
biB3aGl0ZXNwYWNlCi0gICAgICAgICAgICAgICAgICAodHlwZSA9PSAncycgfHwKLSAgICAgICAg
ICAgICAgICAgICAoKHR5cGUgPT09ICdkJyB8fCB0eXBlID09ICd1JyB8fCB0eXBlID09ICdpJykg
JiYgKChuZXh0ID49IDQ4ICYmIG5leHQgPD0gNTcpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlyc3QgJiYg
bmV4dCA9PSA0NSkpKSB8fAotICAgICAgICAgICAgICAgICAgICgodHlwZSA9PT0gJ3gnIHx8IHR5
cGUgPT09ICdYJykgJiYgKG5leHQgPj0gNDggJiYgbmV4dCA8PSA1NyB8fAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPj0gOTcgJiYgbmV4dCA8PSAxMDIgfHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0ID49IDY1ICYmIG5leHQgPD0g
NzApKSkgJiYKLSAgICAgICAgICAgICAgICAgIChmb3JtYXRJbmRleCA+PSBmb3JtYXQubGVuZ3Ro
IHx8IG5leHQgIT09IGZvcm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSkpIHsgLy8gU3Rv
cCB3aGVuIHdlIHJlYWQgc29tZXRoaW5nIHRoYXQgaXMgY29taW5nIHVwCi0gICAgICAgICAgICAg
ICAgYnVmZmVyLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSk7Ci0gICAgICAgICAgICAg
ICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgICAgICAgIGN1cnIrKzsKLSAgICAgICAgICAgICAg
ICBmaXJzdCA9IGZhbHNlOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1bmdl
dCgpOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCA9PT0gMCkgcmV0
dXJuIDA7ICAvLyBGYWlsdXJlLgotICAgICAgICAgIGlmIChzdXBwcmVzc0Fzc2lnbm1lbnQpIGNv
bnRpbnVlOwotICAgICAgICAgIHZhciB0ZXh0ID0gYnVmZmVyLmpvaW4oJycpOwotICAgICAgICAg
IHZhciBhcmdQdHIgPSBIRUFQMzJbKCgodmFyYXJncykrKGFyZ0luZGV4KSk+PjIpXTsKLSAgICAg
ICAgICBhcmdJbmRleCArPSBSdW50aW1lLmdldEFsaWduU2l6ZSgndm9pZConLCBudWxsLCB0cnVl
KTsKLSAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgJ2QnOiBjYXNl
ICd1JzogY2FzZSAnaSc6Ci0gICAgICAgICAgICAgIGlmIChoYWxmKSB7Ci0gICAgICAgICAgICAg
ICAgSEVBUDE2WygoYXJnUHRyKT4+MSldPXBhcnNlSW50KHRleHQsIDEwKTsKLSAgICAgICAgICAg
ICAgfSBlbHNlIGlmIChsb25nTG9uZykgewotICAgICAgICAgICAgICAgICh0ZW1wSTY0ID0gW3Bh
cnNlSW50KHRleHQsIDEwKT4+PjAsKHRlbXBEb3VibGU9cGFyc2VJbnQodGV4dCwgMTApLCgrKE1h
dGguYWJzKHRlbXBEb3VibGUpKSkgPj0gKCsoMSkpID8gKHRlbXBEb3VibGUgPiAoKygwKSkgPyAo
KE1hdGgubWluKCgrKE1hdGguZmxvb3IoKHRlbXBEb3VibGUpLygrKDQyOTQ5NjcyOTYpKSkpKSwg
KCsoNDI5NDk2NzI5NSkpKSl8MCk+Pj4wIDogKH5+KCgrKE1hdGguY2VpbCgodGVtcERvdWJsZSAt
ICsoKCh+fih0ZW1wRG91YmxlKSkpPj4+MCkpLygrKDQyOTQ5NjcyOTYpKSkpKSkpPj4+MCkgOiAw
KV0sSEVBUDMyWygoYXJnUHRyKT4+MildPXRlbXBJNjRbMF0sSEVBUDMyWygoKGFyZ1B0cikrKDQp
KT4+MildPXRlbXBJNjRbMV0pOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIEhFQVAzMlsoKGFyZ1B0cik+PjIpXT1wYXJzZUludCh0ZXh0LCAxMCk7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdYJzoKLSAgICAg
ICAgICAgIGNhc2UgJ3gnOgotICAgICAgICAgICAgICBIRUFQMzJbKChhcmdQdHIpPj4yKV09cGFy
c2VJbnQodGV4dCwgMTYpCi0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAn
Ric6Ci0gICAgICAgICAgICBjYXNlICdmJzoKLSAgICAgICAgICAgIGNhc2UgJ0UnOgotICAgICAg
ICAgICAgY2FzZSAnZSc6Ci0gICAgICAgICAgICBjYXNlICdHJzoKLSAgICAgICAgICAgIGNhc2Ug
J2cnOgotICAgICAgICAgICAgY2FzZSAnRSc6Ci0gICAgICAgICAgICAgIC8vIGZhbGx0aHJvdWdo
IGludGVuZGVkCi0gICAgICAgICAgICAgIGlmIChsb25nXykgewotICAgICAgICAgICAgICAgIEhF
QVBGNjRbKChhcmdQdHIpPj4zKV09cGFyc2VGbG9hdCh0ZXh0KQotICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIEhFQVBGMzJbKChhcmdQdHIpPj4yKV09cGFyc2VGbG9hdCh0
ZXh0KQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSAncyc6Ci0gICAgICAgICAgICAgIHZhciBhcnJheSA9IGludEFycmF5RnJvbVN0cmluZyh0
ZXh0KTsKLSAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhcnJheS5sZW5ndGg7IGor
KykgewotICAgICAgICAgICAgICAgIEhFQVA4WygoKGFyZ1B0cikrKGopKXwwKV09YXJyYXlbal0K
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9Ci0gICAg
ICAgICAgZmllbGRzKys7Ci0gICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0W2Zvcm1hdEluZGV4XSBp
biBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZSkgewotICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAg
ICAgICAgICB3aGlsZSAobmV4dCBpbiBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZSkgewotICAgICAg
ICAgICAgaWYgKG5leHQgPD0gMCkgYnJlYWsgbWFpbkxvb3A7ICAvLyBFbmQgb2YgaW5wdXQuCi0g
ICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHVuZ2V0KG5l
eHQpOwotICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgLy8gTm90IGEgc3BlY2lmaWVyLgotICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAg
ICBpZiAoZm9ybWF0W2Zvcm1hdEluZGV4XS5jaGFyQ29kZUF0KDApICE9PSBuZXh0KSB7Ci0gICAg
ICAgICAgICB1bmdldChuZXh0KTsKLSAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOwotICAgICAg
ICAgIH0KLSAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAg
ICByZXR1cm4gZmllbGRzOwotICAgIH1mdW5jdGlvbiBfc3NjYW5mKHMsIGZvcm1hdCwgdmFyYXJn
cykgewotICAgICAgLy8gaW50IHNzY2FuZihjb25zdCBjaGFyICpyZXN0cmljdCBzLCBjb25zdCBj
aGFyICpyZXN0cmljdCBmb3JtYXQsIC4uLiApOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdy
b3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvc2NhbmYuaHRtbAotICAgICAg
dmFyIGluZGV4ID0gMDsKLSAgICAgIHZhciBnZXQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIEhFQVA4
WygoKHMpKyhpbmRleCsrKSl8MCldOyB9OwotICAgICAgdmFyIHVuZ2V0ID0gZnVuY3Rpb24oKSB7
IGluZGV4LS07IH07Ci0gICAgICByZXR1cm4gX19zY2FuU3RyaW5nKGZvcm1hdCwgZ2V0LCB1bmdl
dCwgdmFyYXJncyk7Ci0gICAgfQotICBmdW5jdGlvbiBfX1o3Y2F0b3BlblBLY2koKSB7IHRocm93
ICdjYXRvcGVuIG5vdCBpbXBsZW1lbnRlZCcgfQotICBmdW5jdGlvbiBfX1o3Y2F0Z2V0c1A4X25s
X2NhdGRpaVBLYygpIHsgdGhyb3cgJ2NhdGdldHMgbm90IGltcGxlbWVudGVkJyB9Ci0gIGZ1bmN0
aW9uIF9fWjhjYXRjbG9zZVA4X25sX2NhdGQoKSB7IHRocm93ICdjYXRjbG9zZSBub3QgaW1wbGVt
ZW50ZWQnIH0KLSAgZnVuY3Rpb24gX25ld2xvY2FsZShtYXNrLCBsb2NhbGUsIGJhc2UpIHsKLSAg
ICAgIHJldHVybiAwOwotICAgIH0KLSAgZnVuY3Rpb24gX2ZyZWVsb2NhbGUobG9jYWxlKSB7fQot
ICBmdW5jdGlvbiBfX19jdHlwZV9iX2xvYygpIHsKLSAgICAgIC8vIGh0dHA6Ly9yZWZzcGVjcy5m
cmVlc3RhbmRhcmRzLm9yZy9MU0JfMy4wLjAvTFNCLUNvcmUtZ2VuZXJpYy9MU0ItQ29yZS1nZW5l
cmljL2Jhc2VsaWItLS1jdHlwZS1iLWxvYy5odG1sCi0gICAgICB2YXIgbWUgPSBfX19jdHlwZV9i
X2xvYzsKLSAgICAgIGlmICghbWUucmV0KSB7Ci0gICAgICAgIHZhciB2YWx1ZXMgPSBbCi0gICAg
ICAgICAgMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLAotICAgICAgICAgIDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAgICAwLDAsMCwwLDAsMCwwLDAsMCww
LDIsMiwyLDIsMiwyLDIsMiwyLDgxOTUsODE5NCw4MTk0LDgxOTQsODE5NCwyLDIsMiwyLDIsMiwy
LDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyNDU3Nyw0OTE1Niw0OTE1Niw0OTE1NiwKLSAgICAgICAg
ICA0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0
OTE1Niw0OTE1Niw0OTE1Niw1NTMwNCw1NTMwNCw1NTMwNCw1NTMwNCw1NTMwNCw1NTMwNCw1NTMw
NCw1NTMwNCwKLSAgICAgICAgICA1NTMwNCw1NTMwNCw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0
OTE1Niw0OTE1Niw0OTE1Niw1NDUzNiw1NDUzNiw1NDUzNiw1NDUzNiw1NDUzNiw1NDUzNiw1MDQ0
MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCwKLSAgICAgICAgICA1MDQ0MCw1MDQ0MCw1MDQ0MCw1
MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0MCw1MDQ0
MCw1MDQ0MCw1MDQ0MCw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1NiwKLSAgICAgICAgICA0
OTE1Niw1NDc5Miw1NDc5Miw1NDc5Miw1NDc5Miw1NDc5Miw1NDc5Miw1MDY5Niw1MDY5Niw1MDY5
Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1
MDY5NiwKLSAgICAgICAgICA1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5Niw1MDY5
Niw0OTE1Niw0OTE1Niw0OTE1Niw0OTE1NiwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsCi0gICAgICAgICAgMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLAotICAgICAgICAgIDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMAotICAgICAgICBdOwotICAgICAgICB2YXIgaTE2c2l6ZSA9
IDI7Ci0gICAgICAgIHZhciBhcnIgPSBfbWFsbG9jKHZhbHVlcy5sZW5ndGggKiBpMTZzaXplKTsK
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICBIRUFQMTZbKCgoYXJyKSsoaSAqIGkxNnNpemUpKT4+MSldPXZhbHVlc1tpXQotICAgICAg
ICB9Ci0gICAgICAgIG1lLnJldCA9IGFsbG9jYXRlKFthcnIgKyAxMjggKiBpMTZzaXplXSwgJ2kx
NionLCBBTExPQ19OT1JNQUwpOwotICAgICAgfQotICAgICAgcmV0dXJuIG1lLnJldDsKLSAgICB9
Ci0gIGZ1bmN0aW9uIF9fX2N0eXBlX3RvbG93ZXJfbG9jKCkgewotICAgICAgLy8gaHR0cDovL3Jl
ZnNwZWNzLmZyZWVzdGFuZGFyZHMub3JnL0xTQl8zLjEuMS9MU0ItQ29yZS1nZW5lcmljL0xTQi1D
b3JlLWdlbmVyaWMvbGlidXRpbC0tLWN0eXBlLXRvbG93ZXItbG9jLmh0bWwKLSAgICAgIHZhciBt
ZSA9IF9fX2N0eXBlX3RvbG93ZXJfbG9jOwotICAgICAgaWYgKCFtZS5yZXQpIHsKLSAgICAgICAg
dmFyIHZhbHVlcyA9IFsKLSAgICAgICAgICAxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1
LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDks
MTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywKLSAgICAgICAgICAxNTgsMTU5LDE2MCwx
NjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzMsMTc0LDE3
NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywKLSAgICAg
ICAgICAxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAs
MjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwy
MTUsMjE2LDIxNywKLSAgICAgICAgICAyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIy
NiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjQw
LDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywKLSAgICAgICAgICAyNDgsMjQ5LDI1MCwyNTEs
MjUyLDI1MywyNTQsLTEsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwx
NywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwKLSAgICAgICAg
ICAzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1
MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw5Nyw5OCw5OSwxMDAsMTAx
LDEwMiwxMDMsCi0gICAgICAgICAgMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIs
MTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDkxLDkyLDkzLDk0LDk1LDk2
LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywKLSAgICAgICAgICAxMDQsMTA1LDEwNiwxMDcsMTA4
LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIs
MTIzLDEyNCwxMjUsMTI2LDEyNywxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywKLSAgICAgICAgICAx
MzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0
OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwxNjEsMTYy
LDE2MywKLSAgICAgICAgICAxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzMs
MTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4Nywx
ODgsMTg5LDE5MCwxOTEsMTkyLDE5MywKLSAgICAgICAgICAxOTQsMTk1LDE5NiwxOTcsMTk4LDE5
OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEz
LDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywKLSAgICAgICAgICAyMjQs
MjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwy
MzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1
MywKLSAgICAgICAgICAyNTQsMjU1Ci0gICAgICAgIF07Ci0gICAgICAgIHZhciBpMzJzaXplID0g
NDsKLSAgICAgICAgdmFyIGFyciA9IF9tYWxsb2ModmFsdWVzLmxlbmd0aCAqIGkzMnNpemUpOwot
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewotICAgICAg
ICAgIEhFQVAzMlsoKChhcnIpKyhpICogaTMyc2l6ZSkpPj4yKV09dmFsdWVzW2ldCi0gICAgICAg
IH0KLSAgICAgICAgbWUucmV0ID0gYWxsb2NhdGUoW2FyciArIDEyOCAqIGkzMnNpemVdLCAnaTMy
KicsIEFMTE9DX05PUk1BTCk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbWUucmV0OwotICAgIH0K
LSAgZnVuY3Rpb24gX19fY3R5cGVfdG91cHBlcl9sb2MoKSB7Ci0gICAgICAvLyBodHRwOi8vcmVm
c3BlY3MuZnJlZXN0YW5kYXJkcy5vcmcvTFNCXzMuMS4xL0xTQi1Db3JlLWdlbmVyaWMvTFNCLUNv
cmUtZ2VuZXJpYy9saWJ1dGlsLS0tY3R5cGUtdG91cHBlci1sb2MuaHRtbAotICAgICAgdmFyIG1l
ID0gX19fY3R5cGVfdG91cHBlcl9sb2M7Ci0gICAgICBpZiAoIW1lLnJldCkgewotICAgICAgICB2
YXIgdmFsdWVzID0gWwotICAgICAgICAgIDEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUs
MTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwx
NTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LAotICAgICAgICAgIDE1OCwxNTksMTYwLDE2
MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1
LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LAotICAgICAg
ICAgIDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwy
MDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIx
NSwyMTYsMjE3LAotICAgICAgICAgIDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2
LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAs
MjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LAotICAgICAgICAgIDI0OCwyNDksMjUwLDI1MSwy
NTIsMjUzLDI1NCwtMSwwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3
LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLAotICAgICAgICAg
IDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUx
LDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDY1LDY2LDY3LDY4LDY5LDcw
LDcxLDcyLAotICAgICAgICAgIDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LDg1
LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDY1LDY2LDY3LDY4LDY5LDcwLDcxLDcy
LDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLAotICAgICAgICAgIDgxLDgyLDgzLDg0LDg1LDg2LDg3
LDg4LDg5LDkwLDEyMywxMjQsMTI1LDEyNiwxMjcsMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0
LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwKLSAgICAgICAgICAxNDUs
MTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwx
NjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTczLDE3
NCwKLSAgICAgICAgICAxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1
LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTks
MjAwLDIwMSwyMDIsMjAzLDIwNCwKLSAgICAgICAgICAyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwy
MTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIy
NSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwKLSAgICAgICAgICAyMzUsMjM2
LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAs
MjUxLDI1MiwyNTMsMjU0LDI1NQotICAgICAgICBdOwotICAgICAgICB2YXIgaTMyc2l6ZSA9IDQ7
Ci0gICAgICAgIHZhciBhcnIgPSBfbWFsbG9jKHZhbHVlcy5sZW5ndGggKiBpMzJzaXplKTsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAg
ICBIRUFQMzJbKCgoYXJyKSsoaSAqIGkzMnNpemUpKT4+MildPXZhbHVlc1tpXQotICAgICAgICB9
Ci0gICAgICAgIG1lLnJldCA9IGFsbG9jYXRlKFthcnIgKyAxMjggKiBpMzJzaXplXSwgJ2kzMion
LCBBTExPQ19OT1JNQUwpOwotICAgICAgfQotICAgICAgcmV0dXJuIG1lLnJldDsKLSAgICB9Ci0g
IHZhciBfX190bV9zdHJ1Y3RfbGF5b3V0PXtfX3NpemVfXzo0NCx0bV9zZWM6MCx0bV9taW46NCx0
bV9ob3VyOjgsdG1fbWRheToxMix0bV9tb246MTYsdG1feWVhcjoyMCx0bV93ZGF5OjI0LHRtX3lk
YXk6MjgsdG1faXNkc3Q6MzIsdG1fZ210b2ZmOjM2LHRtX3pvbmU6NDB9OwotICBmdW5jdGlvbiBf
X2lzTGVhcFllYXIoeWVhcikgewotICAgICAgICByZXR1cm4geWVhciU0ID09PSAwICYmICh5ZWFy
JTEwMCAhPT0gMCB8fCB5ZWFyJTQwMCA9PT0gMCk7Ci0gICAgfQotICBmdW5jdGlvbiBfX2FycmF5
U3VtKGFycmF5LCBpbmRleCkgewotICAgICAgdmFyIHN1bSA9IDA7Ci0gICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8PSBpbmRleDsgc3VtICs9IGFycmF5W2krK10pOwotICAgICAgcmV0dXJuIHN1bTsK
LSAgICB9Ci0gIHZhciBfX01PTlRIX0RBWVNfTEVBUD1bMzEsMjksMzEsMzAsMzEsMzAsMzEsMzEs
MzAsMzEsMzAsMzFdOwotICB2YXIgX19NT05USF9EQVlTX1JFR1VMQVI9WzMxLDI4LDMxLDMwLDMx
LDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtmdW5jdGlvbiBfX2FkZERheXMoZGF0ZSwgZGF5cykgewot
ICAgICAgdmFyIG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7Ci0gICAgICB3aGls
ZShkYXlzID4gMCkgewotICAgICAgICB2YXIgbGVhcCA9IF9faXNMZWFwWWVhcihuZXdEYXRlLmdl
dEZ1bGxZZWFyKCkpOwotICAgICAgICB2YXIgY3VycmVudE1vbnRoID0gbmV3RGF0ZS5nZXRNb250
aCgpOwotICAgICAgICB2YXIgZGF5c0luQ3VycmVudE1vbnRoID0gKGxlYXAgPyBfX01PTlRIX0RB
WVNfTEVBUCA6IF9fTU9OVEhfREFZU19SRUdVTEFSKVtjdXJyZW50TW9udGhdOwotICAgICAgICBp
ZiAoZGF5cyA+IGRheXNJbkN1cnJlbnRNb250aC1uZXdEYXRlLmdldERhdGUoKSkgewotICAgICAg
ICAgIC8vIHdlIHNwaWxsIG92ZXIgdG8gbmV4dCBtb250aAotICAgICAgICAgIGRheXMgLT0gKGRh
eXNJbkN1cnJlbnRNb250aC1uZXdEYXRlLmdldERhdGUoKSsxKTsKLSAgICAgICAgICBuZXdEYXRl
LnNldERhdGUoMSk7Ci0gICAgICAgICAgaWYgKGN1cnJlbnRNb250aCA8IDExKSB7Ci0gICAgICAg
ICAgICBuZXdEYXRlLnNldE1vbnRoKGN1cnJlbnRNb250aCsxKQotICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBuZXdEYXRlLnNldE1vbnRoKDApOwotICAgICAgICAgICAgbmV3RGF0ZS5z
ZXRGdWxsWWVhcihuZXdEYXRlLmdldEZ1bGxZZWFyKCkrMSk7Ci0gICAgICAgICAgfQotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgIC8vIHdlIHN0YXkgaW4gY3VycmVudCBtb250aCAKLSAgICAg
ICAgICBuZXdEYXRlLnNldERhdGUobmV3RGF0ZS5nZXREYXRlKCkrZGF5cyk7Ci0gICAgICAgICAg
cmV0dXJuIG5ld0RhdGU7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiBuZXdEYXRl
OwotICAgIH1mdW5jdGlvbiBfc3RyZnRpbWUocywgbWF4c2l6ZSwgZm9ybWF0LCB0bSkgewotICAg
ICAgLy8gc2l6ZV90IHN0cmZ0aW1lKGNoYXIgKnJlc3RyaWN0IHMsIHNpemVfdCBtYXhzaXplLCBj
b25zdCBjaGFyICpyZXN0cmljdCBmb3JtYXQsIGNvbnN0IHN0cnVjdCB0bSAqcmVzdHJpY3QgdGlt
ZXB0cik7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA5
Njk1Mzk5L2Z1bmN0aW9ucy9zdHJmdGltZS5odG1sCi0gICAgICB2YXIgZGF0ZSA9IHsKLSAgICAg
ICAgdG1fc2VjOiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX3NlYykpPj4y
KV0sCi0gICAgICAgIHRtX21pbjogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50
bV9taW4pKT4+MildLAotICAgICAgICB0bV9ob3VyOiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1
Y3RfbGF5b3V0LnRtX2hvdXIpKT4+MildLAotICAgICAgICB0bV9tZGF5OiBIRUFQMzJbKCgodG0p
KyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX21kYXkpKT4+MildLAotICAgICAgICB0bV9tb246IEhF
QVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1fbW9uKSk+PjIpXSwKLSAgICAgICAg
dG1feWVhcjogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV95ZWFyKSk+PjIp
XSwKLSAgICAgICAgdG1fd2RheTogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50
bV93ZGF5KSk+PjIpXSwKLSAgICAgICAgdG1feWRheTogSEVBUDMyWygoKHRtKSsoX19fdG1fc3Ry
dWN0X2xheW91dC50bV95ZGF5KSk+PjIpXSwKLSAgICAgICAgdG1faXNkc3Q6IEhFQVAzMlsoKCh0
bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1faXNkc3QpKT4+MildCi0gICAgICB9OwotICAgICAg
dmFyIHBhdHRlcm4gPSBQb2ludGVyX3N0cmluZ2lmeShmb3JtYXQpOwotICAgICAgLy8gZXhwYW5k
IGZvcm1hdAotICAgICAgdmFyIEVYUEFOU0lPTl9SVUxFU18xID0gewotICAgICAgICAnJWMnOiAn
JWEgJWIgJWQgJUg6JU06JVMgJVknLCAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIGxvY2FsZSdzIGFw
cHJvcHJpYXRlIGRhdGUgYW5kIHRpbWUgcmVwcmVzZW50YXRpb24gLSBlLmcuLCBNb24gQXVnICAz
IDE0OjAyOjAxIDIwMTMKLSAgICAgICAgJyVEJzogJyVtLyVkLyV5JywgICAgICAgICAgICAgICAg
IC8vIEVxdWl2YWxlbnQgdG8gJW0gLyAlZCAvICV5Ci0gICAgICAgICclRic6ICclWS0lbS0lZCcs
ICAgICAgICAgICAgICAgICAvLyBFcXVpdmFsZW50IHRvICVZIC0gJW0gLSAlZAotICAgICAgICAn
JWgnOiAnJWInLCAgICAgICAgICAgICAgICAgICAgICAgLy8gRXF1aXZhbGVudCB0byAlYgotICAg
ICAgICAnJXInOiAnJUk6JU06JVMgJXAnLCAgICAgICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhl
IHRpbWUgaW4gYS5tLiBhbmQgcC5tLiBub3RhdGlvbgotICAgICAgICAnJVInOiAnJUg6JU0nLCAg
ICAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHRpbWUgaW4gMjQtaG91ciBub3Rh
dGlvbgotICAgICAgICAnJVQnOiAnJUg6JU06JVMnLCAgICAgICAgICAgICAgICAgLy8gUmVwbGFj
ZWQgYnkgdGhlIHRpbWUKLSAgICAgICAgJyV4JzogJyVtLyVkLyV5JywgICAgICAgICAgICAgICAg
IC8vIFJlcGxhY2VkIGJ5IHRoZSBsb2NhbGUncyBhcHByb3ByaWF0ZSBkYXRlIHJlcHJlc2VudGF0
aW9uCi0gICAgICAgICclWCc6ICclSDolTTolUycsICAgICAgICAgICAgICAgICAvLyBSZXBsYWNl
ZCBieSB0aGUgbG9jYWxlJ3MgYXBwcm9wcmlhdGUgZGF0ZSByZXByZXNlbnRhdGlvbgotICAgICAg
fTsKLSAgICAgIGZvciAodmFyIHJ1bGUgaW4gRVhQQU5TSU9OX1JVTEVTXzEpIHsKLSAgICAgICAg
cGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZShuZXcgUmVnRXhwKHJ1bGUsICdnJyksIEVYUEFOU0lP
Tl9SVUxFU18xW3J1bGVdKTsKLSAgICAgIH0KLSAgICAgIHZhciBXRUVLREFZUyA9IFsnU3VuZGF5
JywgJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXkn
LCAnU2F0dXJkYXknXTsKLSAgICAgIHZhciBNT05USFMgPSBbJ0phbnVhcnknLCAnRmVicnVhcnkn
LCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2Vw
dGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXTsKLSAgICAgIHZhciBs
ZWFkaW5nU29tZXRoaW5nID0gZnVuY3Rpb24odmFsdWUsIGRpZ2l0cywgY2hhcmFjdGVyKSB7Ci0g
ICAgICAgIHZhciBzdHIgPSB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID8gdmFsdWUudG9TdHJp
bmcoKSA6ICh2YWx1ZSB8fCAnJyk7Ci0gICAgICAgIHdoaWxlIChzdHIubGVuZ3RoIDwgZGlnaXRz
KSB7Ci0gICAgICAgICAgc3RyID0gY2hhcmFjdGVyWzBdK3N0cjsKLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gc3RyOwotICAgICAgfTsKLSAgICAgIHZhciBsZWFkaW5nTnVsbHMgPSBmdW5jdGlv
bih2YWx1ZSwgZGlnaXRzKSB7Ci0gICAgICAgIHJldHVybiBsZWFkaW5nU29tZXRoaW5nKHZhbHVl
LCBkaWdpdHMsICcwJyk7Ci0gICAgICB9OwotICAgICAgdmFyIGNvbXBhcmVCeURheSA9IGZ1bmN0
aW9uKGRhdGUxLCBkYXRlMikgewotICAgICAgICB2YXIgc2duID0gZnVuY3Rpb24odmFsdWUpIHsK
LSAgICAgICAgICByZXR1cm4gdmFsdWUgPCAwID8gLTEgOiAodmFsdWUgPiAwID8gMSA6IDApOwot
ICAgICAgICB9OwotICAgICAgICB2YXIgY29tcGFyZTsKLSAgICAgICAgaWYgKChjb21wYXJlID0g
c2duKGRhdGUxLmdldEZ1bGxZZWFyKCktZGF0ZTIuZ2V0RnVsbFllYXIoKSkpID09PSAwKSB7Ci0g
ICAgICAgICAgaWYgKChjb21wYXJlID0gc2duKGRhdGUxLmdldE1vbnRoKCktZGF0ZTIuZ2V0TW9u
dGgoKSkpID09PSAwKSB7Ci0gICAgICAgICAgICBjb21wYXJlID0gc2duKGRhdGUxLmdldERhdGUo
KS1kYXRlMi5nZXREYXRlKCkpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gY29tcGFyZTsKLSAgICAgIH07Ci0gICAgICB2YXIgZ2V0Rmlyc3RXZWVrU3RhcnREYXRlID0g
ZnVuY3Rpb24oamFuRm91cnRoKSB7Ci0gICAgICAgICAgc3dpdGNoIChqYW5Gb3VydGguZ2V0RGF5
KCkpIHsKLSAgICAgICAgICAgIGNhc2UgMDogLy8gU3VuZGF5Ci0gICAgICAgICAgICAgIHJldHVy
biBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKS0xLCAxMSwgMjkpOwotICAgICAgICAg
ICAgY2FzZSAxOiAvLyBNb25kYXkKLSAgICAgICAgICAgICAgcmV0dXJuIGphbkZvdXJ0aDsKLSAg
ICAgICAgICAgIGNhc2UgMjogLy8gVHVlc2RheQotICAgICAgICAgICAgICByZXR1cm4gbmV3IERh
dGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCksIDAsIDMpOwotICAgICAgICAgICAgY2FzZSAzOiAv
LyBXZWRuZXNkYXkKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRG
dWxsWWVhcigpLCAwLCAyKTsKLSAgICAgICAgICAgIGNhc2UgNDogLy8gVGh1cnNkYXkKLSAgICAg
ICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLCAwLCAxKTsK
LSAgICAgICAgICAgIGNhc2UgNTogLy8gRnJpZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcg
RGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKS0xLCAxMSwgMzEpOwotICAgICAgICAgICAgY2Fz
ZSA2OiAvLyBTYXR1cmRheQotICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoamFuRm91cnRo
LmdldEZ1bGxZZWFyKCktMSwgMTEsIDMwKTsKLSAgICAgICAgICB9Ci0gICAgICB9OwotICAgICAg
dmFyIGdldFdlZWtCYXNlZFllYXIgPSBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgdmFyIHRo
aXNEYXRlID0gX19hZGREYXlzKG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCAwLCAxKSwgZGF0
ZS50bV95ZGF5KTsKLSAgICAgICAgICB2YXIgamFuRm91cnRoVGhpc1llYXIgPSBuZXcgRGF0ZSh0
aGlzRGF0ZS5nZXRGdWxsWWVhcigpLCAwLCA0KTsKLSAgICAgICAgICB2YXIgamFuRm91cnRoTmV4
dFllYXIgPSBuZXcgRGF0ZSh0aGlzRGF0ZS5nZXRGdWxsWWVhcigpKzEsIDAsIDQpOwotICAgICAg
ICAgIHZhciBmaXJzdFdlZWtTdGFydFRoaXNZZWFyID0gZ2V0Rmlyc3RXZWVrU3RhcnREYXRlKGph
bkZvdXJ0aFRoaXNZZWFyKTsKLSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3RhcnROZXh0WWVhciA9
IGdldEZpcnN0V2Vla1N0YXJ0RGF0ZShqYW5Gb3VydGhOZXh0WWVhcik7Ci0gICAgICAgICAgaWYg
KGNvbXBhcmVCeURheShmaXJzdFdlZWtTdGFydFRoaXNZZWFyLCB0aGlzRGF0ZSkgPD0gMCkgewot
ICAgICAgICAgICAgLy8gdGhpcyBkYXRlIGlzIGFmdGVyIHRoZSBzdGFydCBvZiB0aGUgZmlyc3Qg
d2VlayBvZiB0aGlzIHllYXIKLSAgICAgICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RXZWVr
U3RhcnROZXh0WWVhciwgdGhpc0RhdGUpIDw9IDApIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHRo
aXNEYXRlLmdldEZ1bGxZZWFyKCkrMTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgIHJldHVybiB0aGlzRGF0ZS5nZXRGdWxsWWVhcigpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgIH0gZWxzZSB7IAotICAgICAgICAgICAgcmV0dXJuIHRoaXNEYXRlLmdldEZ1bGxZZWFyKCkt
MTsKLSAgICAgICAgICB9Ci0gICAgICB9OwotICAgICAgdmFyIEVYUEFOU0lPTl9SVUxFU18yID0g
ewotICAgICAgICAnJWEnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIFdFRUtE
QVlTW2RhdGUudG1fd2RheV0uc3Vic3RyaW5nKDAsMyk7Ci0gICAgICAgIH0sCi0gICAgICAgICcl
QSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gV0VFS0RBWVNbZGF0ZS50bV93
ZGF5XTsKLSAgICAgICAgfSwKLSAgICAgICAgJyViJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAg
ICAgIHJldHVybiBNT05USFNbZGF0ZS50bV9tb25dLnN1YnN0cmluZygwLDMpOwotICAgICAgICB9
LAotICAgICAgICAnJUInOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIE1PTlRI
U1tkYXRlLnRtX21vbl07Ci0gICAgICAgIH0sCi0gICAgICAgICclQyc6IGZ1bmN0aW9uKGRhdGUp
IHsKLSAgICAgICAgICB2YXIgeWVhciA9IGRhdGUudG1feWVhcisxOTAwOwotICAgICAgICAgIHJl
dHVybiBsZWFkaW5nTnVsbHMoTWF0aC5mbG9vcih5ZWFyLzEwMCksMik7Ci0gICAgICAgIH0sCi0g
ICAgICAgICclZCc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gbGVhZGluZ051
bGxzKGRhdGUudG1fbWRheSwgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICclZSc6IGZ1bmN0aW9u
KGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gbGVhZGluZ1NvbWV0aGluZyhkYXRlLnRtX21kYXks
IDIsICcgJyk7Ci0gICAgICAgIH0sCi0gICAgICAgICclZyc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAg
ICAgICAgICAvLyAlZywgJUcsIGFuZCAlViBnaXZlIHZhbHVlcyBhY2NvcmRpbmcgdG8gdGhlIElT
TyA4NjAxOjIwMDAgc3RhbmRhcmQgd2Vlay1iYXNlZCB5ZWFyLiAKLSAgICAgICAgICAvLyBJbiB0
aGlzIHN5c3RlbSwgd2Vla3MgYmVnaW4gb24gYSBNb25kYXkgYW5kIHdlZWsgMSBvZiB0aGUgeWVh
ciBpcyB0aGUgd2VlayB0aGF0IGluY2x1ZGVzIAotICAgICAgICAgIC8vIEphbnVhcnkgNHRoLCB3
aGljaCBpcyBhbHNvIHRoZSB3ZWVrIHRoYXQgaW5jbHVkZXMgdGhlIGZpcnN0IFRodXJzZGF5IG9m
IHRoZSB5ZWFyLCBhbmQgCi0gICAgICAgICAgLy8gaXMgYWxzbyB0aGUgZmlyc3Qgd2VlayB0aGF0
IGNvbnRhaW5zIGF0IGxlYXN0IGZvdXIgZGF5cyBpbiB0aGUgeWVhci4gCi0gICAgICAgICAgLy8g
SWYgdGhlIGZpcnN0IE1vbmRheSBvZiBKYW51YXJ5IGlzIHRoZSAybmQsIDNyZCwgb3IgNHRoLCB0
aGUgcHJlY2VkaW5nIGRheXMgYXJlIHBhcnQgb2YgCi0gICAgICAgICAgLy8gdGhlIGxhc3Qgd2Vl
ayBvZiB0aGUgcHJlY2VkaW5nIHllYXI7IHRodXMsIGZvciBTYXR1cmRheSAybmQgSmFudWFyeSAx
OTk5LCAKLSAgICAgICAgICAvLyAlRyBpcyByZXBsYWNlZCBieSAxOTk4IGFuZCAlViBpcyByZXBs
YWNlZCBieSA1My4gSWYgRGVjZW1iZXIgMjl0aCwgMzB0aCwgCi0gICAgICAgICAgLy8gb3IgMzFz
dCBpcyBhIE1vbmRheSwgaXQgYW5kIGFueSBmb2xsb3dpbmcgZGF5cyBhcmUgcGFydCBvZiB3ZWVr
IDEgb2YgdGhlIGZvbGxvd2luZyB5ZWFyLiAKLSAgICAgICAgICAvLyBUaHVzLCBmb3IgVHVlc2Rh
eSAzMHRoIERlY2VtYmVyIDE5OTcsICVHIGlzIHJlcGxhY2VkIGJ5IDE5OTggYW5kICVWIGlzIHJl
cGxhY2VkIGJ5IDAxLgotICAgICAgICAgIHJldHVybiBnZXRXZWVrQmFzZWRZZWFyKGRhdGUpLnRv
U3RyaW5nKCkuc3Vic3RyaW5nKDIpOwotICAgICAgICB9LAotICAgICAgICAnJUcnOiBmdW5jdGlv
bihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGdldFdlZWtCYXNlZFllYXIoZGF0ZSk7Ci0gICAg
ICAgIH0sCi0gICAgICAgICclSCc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4g
bGVhZGluZ051bGxzKGRhdGUudG1faG91ciwgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICclSSc6
IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKGRhdGUudG1f
aG91ciA8IDEzID8gZGF0ZS50bV9ob3VyIDogZGF0ZS50bV9ob3VyLTEyLCAyKTsKLSAgICAgICAg
fSwKLSAgICAgICAgJyVqJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIERheSBvZiB0
aGUgeWVhciAoMDAxLTM2NikKLSAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKGRhdGUudG1f
bWRheStfX2FycmF5U3VtKF9faXNMZWFwWWVhcihkYXRlLnRtX3llYXIrMTkwMCkgPyBfX01PTlRI
X0RBWVNfTEVBUCA6IF9fTU9OVEhfREFZU19SRUdVTEFSLCBkYXRlLnRtX21vbi0xKSwgMyk7Ci0g
ICAgICAgIH0sCi0gICAgICAgICclbSc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1
cm4gbGVhZGluZ051bGxzKGRhdGUudG1fbW9uKzEsIDIpOwotICAgICAgICB9LAotICAgICAgICAn
JU0nOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRl
LnRtX21pbiwgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICclbic6IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIHJldHVybiAnXG4nOwotICAgICAgICB9LAotICAgICAgICAnJXAnOiBmdW5jdGlvbihk
YXRlKSB7Ci0gICAgICAgICAgaWYgKGRhdGUudG1faG91ciA+IDAgJiYgZGF0ZS50bV9ob3VyIDwg
MTMpIHsKLSAgICAgICAgICAgIHJldHVybiAnQU0nOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICByZXR1cm4gJ1BNJzsKLSAgICAgICAgICB9Ci0gICAgICAgIH0sCi0gICAgICAgICcl
Uyc6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKGRhdGUu
dG1fc2VjLCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyV0JzogZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgcmV0dXJuICdcdCc7Ci0gICAgICAgIH0sCi0gICAgICAgICcldSc6IGZ1bmN0aW9uKGRh
dGUpIHsKLSAgICAgICAgICB2YXIgZGF5ID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIGRh
dGUudG1fbW9uKzEsIGRhdGUudG1fbWRheSwgMCwgMCwgMCwgMCk7Ci0gICAgICAgICAgcmV0dXJu
IGRheS5nZXREYXkoKSB8fCA3OwotICAgICAgICB9LAotICAgICAgICAnJVUnOiBmdW5jdGlvbihk
YXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHdlZWsgbnVtYmVyIG9mIHRoZSB5
ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAwLDUzXS4gCi0gICAgICAgICAgLy8gVGhlIGZpcnN0
IFN1bmRheSBvZiBKYW51YXJ5IGlzIHRoZSBmaXJzdCBkYXkgb2Ygd2VlayAxOyAKLSAgICAgICAg
ICAvLyBkYXlzIGluIHRoZSBuZXcgeWVhciBiZWZvcmUgdGhpcyBhcmUgaW4gd2VlayAwLiBbIHRt
X3llYXIsIHRtX3dkYXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZpcnN0ID0gbmV3IERh
dGUoZGF0ZS50bV95ZWFyKzE5MDAsIDAsIDEpOwotICAgICAgICAgIHZhciBmaXJzdFN1bmRheSA9
IGphbkZpcnN0LmdldERheSgpID09PSAwID8gamFuRmlyc3QgOiBfX2FkZERheXMoamFuRmlyc3Qs
IDctamFuRmlyc3QuZ2V0RGF5KCkpOwotICAgICAgICAgIHZhciBlbmREYXRlID0gbmV3IERhdGUo
ZGF0ZS50bV95ZWFyKzE5MDAsIGRhdGUudG1fbW9uLCBkYXRlLnRtX21kYXkpOwotICAgICAgICAg
IC8vIGlzIHRhcmdldCBkYXRlIGFmdGVyIHRoZSBmaXJzdCBTdW5kYXk/Ci0gICAgICAgICAgaWYg
KGNvbXBhcmVCeURheShmaXJzdFN1bmRheSwgZW5kRGF0ZSkgPCAwKSB7Ci0gICAgICAgICAgICAv
LyBjYWxjdWxhdGUgZGlmZmVyZW5jZSBpbiBkYXlzIGJldHdlZW4gZmlyc3QgU3VuZGF5IGFuZCBl
bmREYXRlCi0gICAgICAgICAgICB2YXIgZmVicnVhcnlGaXJzdFVudGlsRW5kTW9udGggPSBfX2Fy
cmF5U3VtKF9faXNMZWFwWWVhcihlbmREYXRlLmdldEZ1bGxZZWFyKCkpID8gX19NT05USF9EQVlT
X0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZW5kRGF0ZS5nZXRNb250aCgpLTEpLTMxOwot
ICAgICAgICAgICAgdmFyIGZpcnN0U3VuZGF5VW50aWxFbmRKYW51YXJ5ID0gMzEtZmlyc3RTdW5k
YXkuZ2V0RGF0ZSgpOwotICAgICAgICAgICAgdmFyIGRheXMgPSBmaXJzdFN1bmRheVVudGlsRW5k
SmFudWFyeStmZWJydWFyeUZpcnN0VW50aWxFbmRNb250aCtlbmREYXRlLmdldERhdGUoKTsKLSAg
ICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5jZWlsKGRheXMvNyksIDIpOwotICAg
ICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gY29tcGFyZUJ5RGF5KGZpcnN0U3VuZGF5LCBqYW5G
aXJzdCkgPT09IDAgPyAnMDEnOiAnMDAnOwotICAgICAgICB9LAotICAgICAgICAnJVYnOiBmdW5j
dGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHdlZWsgbnVtYmVyIG9m
IHRoZSB5ZWFyIChNb25kYXkgYXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaykgCi0gICAgICAg
ICAgLy8gYXMgYSBkZWNpbWFsIG51bWJlciBbMDEsNTNdLiBJZiB0aGUgd2VlayBjb250YWluaW5n
IDEgSmFudWFyeSBoYXMgZm91ciAKLSAgICAgICAgICAvLyBvciBtb3JlIGRheXMgaW4gdGhlIG5l
dyB5ZWFyLCB0aGVuIGl0IGlzIGNvbnNpZGVyZWQgd2VlayAxLiAKLSAgICAgICAgICAvLyBPdGhl
cndpc2UsIGl0IGlzIHRoZSBsYXN0IHdlZWsgb2YgdGhlIHByZXZpb3VzIHllYXIsIGFuZCB0aGUg
bmV4dCB3ZWVrIGlzIHdlZWsgMS4gCi0gICAgICAgICAgLy8gQm90aCBKYW51YXJ5IDR0aCBhbmQg
dGhlIGZpcnN0IFRodXJzZGF5IG9mIEphbnVhcnkgYXJlIGFsd2F5cyBpbiB3ZWVrIDEuIFsgdG1f
eWVhciwgdG1fd2RheSwgdG1feWRheV0KLSAgICAgICAgICB2YXIgamFuRm91cnRoVGhpc1llYXIg
PSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgMCwgNCk7Ci0gICAgICAgICAgdmFyIGphbkZv
dXJ0aE5leHRZZWFyID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDEsIDAsIDQpOwotICAgICAg
ICAgIHZhciBmaXJzdFdlZWtTdGFydFRoaXNZZWFyID0gZ2V0Rmlyc3RXZWVrU3RhcnREYXRlKGph
bkZvdXJ0aFRoaXNZZWFyKTsKLSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3RhcnROZXh0WWVhciA9
IGdldEZpcnN0V2Vla1N0YXJ0RGF0ZShqYW5Gb3VydGhOZXh0WWVhcik7Ci0gICAgICAgICAgdmFy
IGVuZERhdGUgPSBfX2FkZERheXMobmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIDAsIDEpLCBk
YXRlLnRtX3lkYXkpOwotICAgICAgICAgIGlmIChjb21wYXJlQnlEYXkoZW5kRGF0ZSwgZmlyc3RX
ZWVrU3RhcnRUaGlzWWVhcikgPCAwKSB7Ci0gICAgICAgICAgICAvLyBpZiBnaXZlbiBkYXRlIGlz
IGJlZm9yZSB0aGlzIHllYXJzIGZpcnN0IHdlZWssIHRoZW4gaXQgYmVsb25ncyB0byB0aGUgNTNy
ZCB3ZWVrIG9mIGxhc3QgeWVhcgotICAgICAgICAgICAgcmV0dXJuICc1Myc7Ci0gICAgICAgICAg
fSAKLSAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGZpcnN0V2Vla1N0YXJ0TmV4dFllYXIsIGVu
ZERhdGUpIDw9IDApIHsKLSAgICAgICAgICAgIC8vIGlmIGdpdmVuIGRhdGUgaXMgYWZ0ZXIgbmV4
dCB5ZWFycyBmaXJzdCB3ZWVrLCB0aGVuIGl0IGJlbG9uZ3MgdG8gdGhlIDAxdGggd2VlayBvZiBu
ZXh0IHllYXIKLSAgICAgICAgICAgIHJldHVybiAnMDEnOwotICAgICAgICAgIH0KLSAgICAgICAg
ICAvLyBnaXZlbiBkYXRlIGlzIGluIGJldHdlZW4gQ1cgMDEuLjUzIG9mIHRoaXMgY2FsZW5kYXIg
eWVhcgotICAgICAgICAgIHZhciBkYXlzRGlmZmVyZW5jZTsKLSAgICAgICAgICBpZiAoZmlyc3RX
ZWVrU3RhcnRUaGlzWWVhci5nZXRGdWxsWWVhcigpIDwgZGF0ZS50bV95ZWFyKzE5MDApIHsKLSAg
ICAgICAgICAgIC8vIGZpcnN0IENXIG9mIHRoaXMgeWVhciBzdGFydHMgbGFzdCB5ZWFyCi0gICAg
ICAgICAgICBkYXlzRGlmZmVyZW5jZSA9IGRhdGUudG1feWRheSszMi1maXJzdFdlZWtTdGFydFRo
aXNZZWFyLmdldERhdGUoKQotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBmaXJz
dCBDVyBvZiB0aGlzIHllYXIgc3RhcnRzIHRoaXMgeWVhcgotICAgICAgICAgICAgZGF5c0RpZmZl
cmVuY2UgPSBkYXRlLnRtX3lkYXkrMS1maXJzdFdlZWtTdGFydFRoaXNZZWFyLmdldERhdGUoKTsK
LSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhNYXRoLmNlaWwoZGF5
c0RpZmZlcmVuY2UvNyksIDIpOwotICAgICAgICB9LAotICAgICAgICAnJXcnOiBmdW5jdGlvbihk
YXRlKSB7Ci0gICAgICAgICAgdmFyIGRheSA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCBk
YXRlLnRtX21vbisxLCBkYXRlLnRtX21kYXksIDAsIDAsIDAsIDApOwotICAgICAgICAgIHJldHVy
biBkYXkuZ2V0RGF5KCk7Ci0gICAgICAgIH0sCi0gICAgICAgICclVyc6IGZ1bmN0aW9uKGRhdGUp
IHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgd2VlayBudW1iZXIgb2YgdGhlIHllYXIg
YXMgYSBkZWNpbWFsIG51bWJlciBbMDAsNTNdLiAKLSAgICAgICAgICAvLyBUaGUgZmlyc3QgTW9u
ZGF5IG9mIEphbnVhcnkgaXMgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIDE7IAotICAgICAgICAgIC8v
IGRheXMgaW4gdGhlIG5ldyB5ZWFyIGJlZm9yZSB0aGlzIGFyZSBpbiB3ZWVrIDAuIFsgdG1feWVh
ciwgdG1fd2RheSwgdG1feWRheV0KLSAgICAgICAgICB2YXIgamFuRmlyc3QgPSBuZXcgRGF0ZShk
YXRlLnRtX3llYXIsIDAsIDEpOwotICAgICAgICAgIHZhciBmaXJzdE1vbmRheSA9IGphbkZpcnN0
LmdldERheSgpID09PSAxID8gamFuRmlyc3QgOiBfX2FkZERheXMoamFuRmlyc3QsIGphbkZpcnN0
LmdldERheSgpID09PSAwID8gMSA6IDctamFuRmlyc3QuZ2V0RGF5KCkrMSk7Ci0gICAgICAgICAg
dmFyIGVuZERhdGUgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwgZGF0ZS50bV9tb24sIGRh
dGUudG1fbWRheSk7Ci0gICAgICAgICAgLy8gaXMgdGFyZ2V0IGRhdGUgYWZ0ZXIgdGhlIGZpcnN0
IE1vbmRheT8KLSAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGZpcnN0TW9uZGF5LCBlbmREYXRl
KSA8IDApIHsKLSAgICAgICAgICAgIHZhciBmZWJydWFyeUZpcnN0VW50aWxFbmRNb250aCA9IF9f
YXJyYXlTdW0oX19pc0xlYXBZZWFyKGVuZERhdGUuZ2V0RnVsbFllYXIoKSkgPyBfX01PTlRIX0RB
WVNfTEVBUCA6IF9fTU9OVEhfREFZU19SRUdVTEFSLCBlbmREYXRlLmdldE1vbnRoKCktMSktMzE7
Ci0gICAgICAgICAgICB2YXIgZmlyc3RNb25kYXlVbnRpbEVuZEphbnVhcnkgPSAzMS1maXJzdE1v
bmRheS5nZXREYXRlKCk7Ci0gICAgICAgICAgICB2YXIgZGF5cyA9IGZpcnN0TW9uZGF5VW50aWxF
bmRKYW51YXJ5K2ZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRoK2VuZERhdGUuZ2V0RGF0ZSgpOwot
ICAgICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhNYXRoLmNlaWwoZGF5cy83KSwgMik7Ci0g
ICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBjb21wYXJlQnlEYXkoZmlyc3RNb25kYXksIGph
bkZpcnN0KSA9PT0gMCA/ICcwMSc6ICcwMCc7Ci0gICAgICAgIH0sCi0gICAgICAgICcleSc6IGZ1
bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgbGFzdCB0d28gZGln
aXRzIG9mIHRoZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAwLDk5XS4gWyB0bV95ZWFyXQot
ICAgICAgICAgIHJldHVybiAoZGF0ZS50bV95ZWFyKzE5MDApLnRvU3RyaW5nKCkuc3Vic3RyaW5n
KDIpOwotICAgICAgICB9LAotICAgICAgICAnJVknOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAg
ICAgLy8gUmVwbGFjZWQgYnkgdGhlIHllYXIgYXMgYSBkZWNpbWFsIG51bWJlciAoZm9yIGV4YW1w
bGUsIDE5OTcpLiBbIHRtX3llYXJdCi0gICAgICAgICAgcmV0dXJuIGRhdGUudG1feWVhcisxOTAw
OwotICAgICAgICB9LAotICAgICAgICAnJXonOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAg
Ly8gUmVwbGFjZWQgYnkgdGhlIG9mZnNldCBmcm9tIFVUQyBpbiB0aGUgSVNPIDg2MDE6MjAwMCBz
dGFuZGFyZCBmb3JtYXQgKCAraGhtbSBvciAtaGhtbSApLAotICAgICAgICAgIC8vIG9yIGJ5IG5v
IGNoYXJhY3RlcnMgaWYgbm8gdGltZXpvbmUgaXMgZGV0ZXJtaW5hYmxlLiAKLSAgICAgICAgICAv
LyBGb3IgZXhhbXBsZSwgIi0wNDMwIiBtZWFucyA0IGhvdXJzIDMwIG1pbnV0ZXMgYmVoaW5kIFVU
QyAod2VzdCBvZiBHcmVlbndpY2gpLiAKLSAgICAgICAgICAvLyBJZiB0bV9pc2RzdCBpcyB6ZXJv
LCB0aGUgc3RhbmRhcmQgdGltZSBvZmZzZXQgaXMgdXNlZC4gCi0gICAgICAgICAgLy8gSWYgdG1f
aXNkc3QgaXMgZ3JlYXRlciB0aGFuIHplcm8sIHRoZSBkYXlsaWdodCBzYXZpbmdzIHRpbWUgb2Zm
c2V0IGlzIHVzZWQuIAotICAgICAgICAgIC8vIElmIHRtX2lzZHN0IGlzIG5lZ2F0aXZlLCBubyBj
aGFyYWN0ZXJzIGFyZSByZXR1cm5lZC4gCi0gICAgICAgICAgLy8gRklYTUU6IHdlIGNhbm5vdCBk
ZXRlcm1pbmUgdGltZSB6b25lIChvciBjYW4gd2U/KQotICAgICAgICAgIHJldHVybiAnJzsKLSAg
ICAgICAgfSwKLSAgICAgICAgJyVaJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJl
cGxhY2VkIGJ5IHRoZSB0aW1lem9uZSBuYW1lIG9yIGFiYnJldmlhdGlvbiwgb3IgYnkgbm8gYnl0
ZXMgaWYgbm8gdGltZXpvbmUgaW5mb3JtYXRpb24gZXhpc3RzLiBbIHRtX2lzZHN0XQotICAgICAg
ICAgIC8vIEZJWE1FOiB3ZSBjYW5ub3QgZGV0ZXJtaW5lIHRpbWUgem9uZSAob3IgY2FuIHdlPykK
LSAgICAgICAgICByZXR1cm4gJyc7Ci0gICAgICAgIH0sCi0gICAgICAgICclJSc6IGZ1bmN0aW9u
KCkgewotICAgICAgICAgIHJldHVybiAnJSc7Ci0gICAgICAgIH0KLSAgICAgIH07Ci0gICAgICBm
b3IgKHZhciBydWxlIGluIEVYUEFOU0lPTl9SVUxFU18yKSB7Ci0gICAgICAgIGlmIChwYXR0ZXJu
LmluZGV4T2YocnVsZSkgPj0gMCkgewotICAgICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxh
Y2UobmV3IFJlZ0V4cChydWxlLCAnZycpLCBFWFBBTlNJT05fUlVMRVNfMltydWxlXShkYXRlKSk7
Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHZhciBieXRlcyA9IGludEFycmF5RnJvbVN0cmlu
ZyhwYXR0ZXJuLCBmYWxzZSk7Ci0gICAgICBpZiAoYnl0ZXMubGVuZ3RoID4gbWF4c2l6ZSkgewot
ICAgICAgICByZXR1cm4gMDsKLSAgICAgIH0gCi0gICAgICB3cml0ZUFycmF5VG9NZW1vcnkoYnl0
ZXMsIHMpOwotICAgICAgcmV0dXJuIGJ5dGVzLmxlbmd0aC0xOwotICAgIH12YXIgX3N0cmZ0aW1l
X2w9X3N0cmZ0aW1lOwotICBmdW5jdGlvbiBfaXNzcGFjZShjaHIpIHsKLSAgICAgIHJldHVybiAo
Y2hyID09IDMyKSB8fCAoY2hyID49IDkgJiYgY2hyIDw9IDEzKTsKLSAgICB9Ci0gIGZ1bmN0aW9u
IF9fcGFyc2VJbnQ2NChzdHIsIGVuZHB0ciwgYmFzZSwgbWluLCBtYXgsIHVuc2lnbikgewotICAg
ICAgdmFyIGlzTmVnYXRpdmUgPSBmYWxzZTsKLSAgICAgIC8vIFNraXAgc3BhY2UuCi0gICAgICB3
aGlsZSAoX2lzc3BhY2UoSEVBUDhbKHN0cildKSkgc3RyKys7Ci0gICAgICAvLyBDaGVjayBmb3Ig
YSBwbHVzL21pbnVzIHNpZ24uCi0gICAgICBpZiAoSEVBUDhbKHN0cildID09IDQ1KSB7Ci0gICAg
ICAgIHN0cisrOwotICAgICAgICBpc05lZ2F0aXZlID0gdHJ1ZTsKLSAgICAgIH0gZWxzZSBpZiAo
SEVBUDhbKHN0cildID09IDQzKSB7Ci0gICAgICAgIHN0cisrOwotICAgICAgfQotICAgICAgLy8g
RmluZCBiYXNlLgotICAgICAgdmFyIG9rID0gZmFsc2U7Ci0gICAgICB2YXIgZmluYWxCYXNlID0g
YmFzZTsKLSAgICAgIGlmICghZmluYWxCYXNlKSB7Ci0gICAgICAgIGlmIChIRUFQOFsoc3RyKV0g
PT0gNDgpIHsKLSAgICAgICAgICBpZiAoSEVBUDhbKChzdHIrMSl8MCldID09IDEyMCB8fAotICAg
ICAgICAgICAgICBIRUFQOFsoKHN0cisxKXwwKV0gPT0gODgpIHsKLSAgICAgICAgICAgIGZpbmFs
QmFzZSA9IDE2OwotICAgICAgICAgICAgc3RyICs9IDI7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGZpbmFsQmFzZSA9IDg7Ci0gICAgICAgICAgICBvayA9IHRydWU7IC8vIHdlIHNh
dyBhbiBpbml0aWFsIHplcm8sIHBlcmhhcHMgdGhlIGVudGlyZSB0aGluZyBpcyBqdXN0ICIwIgot
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSBlbHNlIGlmIChmaW5hbEJhc2U9PTE2KSB7
Ci0gICAgICAgIGlmIChIRUFQOFsoc3RyKV0gPT0gNDgpIHsKLSAgICAgICAgICBpZiAoSEVBUDhb
KChzdHIrMSl8MCldID09IDEyMCB8fAotICAgICAgICAgICAgICBIRUFQOFsoKHN0cisxKXwwKV0g
PT0gODgpIHsKLSAgICAgICAgICAgIHN0ciArPSAyOwotICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgfQotICAgICAgaWYgKCFmaW5hbEJhc2UpIGZpbmFsQmFzZSA9IDEwOwotICAgICAgc3Rh
cnQgPSBzdHI7Ci0gICAgICAvLyBHZXQgZGlnaXRzLgotICAgICAgdmFyIGNocjsKLSAgICAgIHdo
aWxlICgoY2hyID0gSEVBUDhbKHN0cildKSAhPSAwKSB7Ci0gICAgICAgIHZhciBkaWdpdCA9IHBh
cnNlSW50KFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyKSwgZmluYWxCYXNlKTsKLSAgICAgICAgaWYg
KGlzTmFOKGRpZ2l0KSkgewotICAgICAgICAgIGJyZWFrOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgIHN0cisrOwotICAgICAgICAgIG9rID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgfQot
ICAgICAgaWYgKCFvaykgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FSU5WQUwp
OwotICAgICAgICByZXR1cm4gKChhc21bInNldFRlbXBSZXQwIl0oMCksMCl8MCk7Ci0gICAgICB9
Ci0gICAgICAvLyBTZXQgZW5kIHBvaW50ZXIuCi0gICAgICBpZiAoZW5kcHRyKSB7Ci0gICAgICAg
IEhFQVAzMlsoKGVuZHB0cik+PjIpXT1zdHIKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAgICAg
IHZhciBudW1iZXJTdHJpbmcgPSBpc05lZ2F0aXZlID8gJy0nK1BvaW50ZXJfc3RyaW5naWZ5KHN0
YXJ0LCBzdHIgLSBzdGFydCkgOiBQb2ludGVyX3N0cmluZ2lmeShzdGFydCwgc3RyIC0gc3RhcnQp
OwotICAgICAgICBpNjRNYXRoLmZyb21TdHJpbmcobnVtYmVyU3RyaW5nLCBmaW5hbEJhc2UsIG1p
biwgbWF4LCB1bnNpZ24pOwotICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIF9fX3NldEVyck5v
KEVSUk5PX0NPREVTLkVSQU5HRSk7IC8vIG5vdCBxdWl0ZSBjb3JyZWN0Ci0gICAgICB9Ci0gICAg
ICByZXR1cm4gKChhc21bInNldFRlbXBSZXQwIl0oKChIRUFQMzJbKCgodGVtcERvdWJsZVB0cikr
KDQpKT4+MildKXwwKSksKChIRUFQMzJbKCh0ZW1wRG91YmxlUHRyKT4+MildKXwwKSl8MCk7Ci0g
ICAgfWZ1bmN0aW9uIF9zdHJ0b3VsbChzdHIsIGVuZHB0ciwgYmFzZSkgewotICAgICAgcmV0dXJu
IF9fcGFyc2VJbnQ2NChzdHIsIGVuZHB0ciwgYmFzZSwgMCwgJzE4NDQ2NzQ0MDczNzA5NTUxNjE1
JywgdHJ1ZSk7ICAvLyBVTE9OR19NQVguCi0gICAgfXZhciBfc3RydG91bGxfbD1fc3RydG91bGw7
Ci0gIGZ1bmN0aW9uIF9zdHJ0b2xsKHN0ciwgZW5kcHRyLCBiYXNlKSB7Ci0gICAgICByZXR1cm4g
X19wYXJzZUludDY0KHN0ciwgZW5kcHRyLCBiYXNlLCAnLTkyMjMzNzIwMzY4NTQ3NzU4MDgnLCAn
OTIyMzM3MjAzNjg1NDc3NTgwNycpOyAgLy8gTExPTkdfTUlOLCBMTE9OR19NQVguCi0gICAgfXZh
ciBfc3RydG9sbF9sPV9zdHJ0b2xsOwotICBmdW5jdGlvbiBfdXNlbG9jYWxlKGxvY2FsZSkgewot
ICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICBmdW5jdGlvbiBfX19sb2NhbGVfbWJfY3VyX21heCgp
IHsgdGhyb3cgJ19fbG9jYWxlX21iX2N1cl9tYXggbm90IGltcGxlbWVudGVkJyB9Ci0gIHZhciBf
bGx2bV92YV9zdGFydD11bmRlZmluZWQ7Ci0gIGZ1bmN0aW9uIF9zcHJpbnRmKHMsIGZvcm1hdCwg
dmFyYXJncykgewotICAgICAgLy8gaW50IHNwcmludGYoY2hhciAqcmVzdHJpY3QgcywgY29uc3Qg
Y2hhciAqcmVzdHJpY3QgZm9ybWF0LCAuLi4pOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdy
b3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvcHJpbnRmLmh0bWwKLSAgICAg
IHJldHVybiBfc25wcmludGYocywgdW5kZWZpbmVkLCBmb3JtYXQsIHZhcmFyZ3MpOwotICAgIH1m
dW5jdGlvbiBfYXNwcmludGYocywgZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAgICByZXR1cm4gX3Nw
cmludGYoLXMsIGZvcm1hdCwgdmFyYXJncyk7Ci0gICAgfWZ1bmN0aW9uIF92YXNwcmludGYocywg
Zm9ybWF0LCB2YV9hcmcpIHsKLSAgICAgIHJldHVybiBfYXNwcmludGYocywgZm9ybWF0LCBIRUFQ
MzJbKCh2YV9hcmcpPj4yKV0pOwotICAgIH0KLSAgZnVuY3Rpb24gX2xsdm1fdmFfZW5kKCkge30K
LSAgZnVuY3Rpb24gX3ZzbnByaW50ZihzLCBuLCBmb3JtYXQsIHZhX2FyZykgewotICAgICAgcmV0
dXJuIF9zbnByaW50ZihzLCBuLCBmb3JtYXQsIEhFQVAzMlsoKHZhX2FyZyk+PjIpXSk7Ci0gICAg
fQotICBmdW5jdGlvbiBfdnNzY2FuZihzLCBmb3JtYXQsIHZhX2FyZykgewotICAgICAgcmV0dXJu
IF9zc2NhbmYocywgZm9ybWF0LCBIRUFQMzJbKCh2YV9hcmcpPj4yKV0pOwotICAgIH0KLSAgZnVu
Y3Rpb24gX3NicmsoYnl0ZXMpIHsKLSAgICAgIC8vIEltcGxlbWVudCBhIExpbnV4LWxpa2UgJ21l
bW9yeSBhcmVhJyBmb3Igb3VyICdwcm9jZXNzJy4KLSAgICAgIC8vIENoYW5nZXMgdGhlIHNpemUg
b2YgdGhlIG1lbW9yeSBhcmVhIGJ5IHxieXRlc3w7IHJldHVybnMgdGhlCi0gICAgICAvLyBhZGRy
ZXNzIG9mIHRoZSBwcmV2aW91cyB0b3AgKCdicmVhaycpIG9mIHRoZSBtZW1vcnkgYXJlYQotICAg
ICAgLy8gV2UgY29udHJvbCB0aGUgImR5bmFtaWMiIG1lbW9yeSAtIERZTkFNSUNfQkFTRSB0byBE
WU5BTUlDVE9QCi0gICAgICB2YXIgc2VsZiA9IF9zYnJrOwotICAgICAgaWYgKCFzZWxmLmNhbGxl
ZCkgewotICAgICAgICBEWU5BTUlDVE9QID0gYWxpZ25NZW1vcnlQYWdlKERZTkFNSUNUT1ApOyAv
LyBtYWtlIHN1cmUgd2Ugc3RhcnQgb3V0IGFsaWduZWQKLSAgICAgICAgc2VsZi5jYWxsZWQgPSB0
cnVlOwotICAgICAgICBhc3NlcnQoUnVudGltZS5keW5hbWljQWxsb2MpOwotICAgICAgICBzZWxm
LmFsbG9jID0gUnVudGltZS5keW5hbWljQWxsb2M7Ci0gICAgICAgIFJ1bnRpbWUuZHluYW1pY0Fs
bG9jID0gZnVuY3Rpb24oKSB7IGFib3J0KCdjYW5ub3QgZHluYW1pY2FsbHkgYWxsb2NhdGUsIHNi
cmsgbm93IGhhcyBjb250cm9sJykgfTsKLSAgICAgIH0KLSAgICAgIHZhciByZXQgPSBEWU5BTUlD
VE9QOwotICAgICAgaWYgKGJ5dGVzICE9IDApIHNlbGYuYWxsb2MoYnl0ZXMpOwotICAgICAgcmV0
dXJuIHJldDsgIC8vIFByZXZpb3VzIGJyZWFrIGxvY2F0aW9uLgotICAgIH0KLSAgZnVuY3Rpb24g
X3RpbWUocHRyKSB7Ci0gICAgICB2YXIgcmV0ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpLzEwMDAp
OwotICAgICAgaWYgKHB0cikgewotICAgICAgICBIRUFQMzJbKChwdHIpPj4yKV09cmV0Ci0gICAg
ICB9Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgZnVuY3Rpb24gX19fY3hhX2NhbGxfdW5l
eHBlY3RlZChleGNlcHRpb24pIHsKLSAgICAgIE1vZHVsZS5wcmludEVycignVW5leHBlY3RlZCBl
eGNlcHRpb24gdGhyb3duLCB0aGlzIGlzIG5vdCBwcm9wZXJseSBzdXBwb3J0ZWQgLSBhYm9ydGlu
ZycpOwotICAgICAgQUJPUlQgPSB0cnVlOwotICAgICAgdGhyb3cgZXhjZXB0aW9uOwotICAgIH0K
LSAgdmFyIEJyb3dzZXI9e21haW5Mb29wOntzY2hlZHVsZXI6bnVsbCxzaG91bGRQYXVzZTpmYWxz
ZSxwYXVzZWQ6ZmFsc2UscXVldWU6W10scGF1c2U6ZnVuY3Rpb24gKCkgewotICAgICAgICAgIEJy
b3dzZXIubWFpbkxvb3Auc2hvdWxkUGF1c2UgPSB0cnVlOwotICAgICAgICB9LHJlc3VtZTpmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgaWYgKEJyb3dzZXIubWFpbkxvb3AucGF1c2VkKSB7Ci0gICAg
ICAgICAgICBCcm93c2VyLm1haW5Mb29wLnBhdXNlZCA9IGZhbHNlOwotICAgICAgICAgICAgQnJv
d3Nlci5tYWluTG9vcC5zY2hlZHVsZXIoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgQnJvd3Nl
ci5tYWluTG9vcC5zaG91bGRQYXVzZSA9IGZhbHNlOwotICAgICAgICB9LHVwZGF0ZVN0YXR1czpm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgaWYgKE1vZHVsZVsnc2V0U3RhdHVzJ10pIHsKLSAgICAg
ICAgICAgIHZhciBtZXNzYWdlID0gTW9kdWxlWydzdGF0dXNNZXNzYWdlJ10gfHwgJ1BsZWFzZSB3
YWl0Li4uJzsKLSAgICAgICAgICAgIHZhciByZW1haW5pbmcgPSBCcm93c2VyLm1haW5Mb29wLnJl
bWFpbmluZ0Jsb2NrZXJzOwotICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0gQnJvd3Nlci5tYWlu
TG9vcC5leHBlY3RlZEJsb2NrZXJzOwotICAgICAgICAgICAgaWYgKHJlbWFpbmluZykgewotICAg
ICAgICAgICAgICBpZiAocmVtYWluaW5nIDwgZXhwZWN0ZWQpIHsKLSAgICAgICAgICAgICAgICBN
b2R1bGVbJ3NldFN0YXR1cyddKG1lc3NhZ2UgKyAnICgnICsgKGV4cGVjdGVkIC0gcmVtYWluaW5n
KSArICcvJyArIGV4cGVjdGVkICsgJyknKTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBNb2R1bGVbJ3NldFN0YXR1cyddKG1lc3NhZ2UpOwotICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBNb2R1bGVbJ3NldFN0YXR1cydd
KCcnKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH19LGlzRnVsbFNjcmVl
bjpmYWxzZSxwb2ludGVyTG9jazpmYWxzZSxtb2R1bGVDb250ZXh0Q3JlYXRlZENhbGxiYWNrczpb
XSx3b3JrZXJzOltdLGluaXQ6ZnVuY3Rpb24gKCkgewotICAgICAgICBpZiAoIU1vZHVsZVsicHJl
bG9hZFBsdWdpbnMiXSkgTW9kdWxlWyJwcmVsb2FkUGx1Z2lucyJdID0gW107IC8vIG5lZWRzIHRv
IGV4aXN0IGV2ZW4gaW4gd29ya2VycwotICAgICAgICBpZiAoQnJvd3Nlci5pbml0dGVkIHx8IEVO
VklST05NRU5UX0lTX1dPUktFUikgcmV0dXJuOwotICAgICAgICBCcm93c2VyLmluaXR0ZWQgPSB0
cnVlOwotICAgICAgICB0cnkgewotICAgICAgICAgIG5ldyBCbG9iKCk7Ci0gICAgICAgICAgQnJv
d3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPSB0cnVlOwotICAgICAgICB9IGNhdGNoKGUpIHsKLSAg
ICAgICAgICBCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvciA9IGZhbHNlOwotICAgICAgICAgIGNv
bnNvbGUubG9nKCJ3YXJuaW5nOiBubyBibG9iIGNvbnN0cnVjdG9yLCBjYW5ub3QgY3JlYXRlIGJs
b2JzIHdpdGggbWltZXR5cGVzIik7Ci0gICAgICAgIH0KLSAgICAgICAgQnJvd3Nlci5CbG9iQnVp
bGRlciA9IHR5cGVvZiBNb3pCbG9iQnVpbGRlciAhPSAidW5kZWZpbmVkIiA/IE1vekJsb2JCdWls
ZGVyIDogKHR5cGVvZiBXZWJLaXRCbG9iQnVpbGRlciAhPSAidW5kZWZpbmVkIiA/IFdlYktpdEJs
b2JCdWlsZGVyIDogKCFCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvciA/IGNvbnNvbGUubG9nKCJ3
YXJuaW5nOiBubyBCbG9iQnVpbGRlciIpIDogbnVsbCkpOwotICAgICAgICBCcm93c2VyLlVSTE9i
amVjdCA9IHR5cGVvZiB3aW5kb3cgIT0gInVuZGVmaW5lZCIgPyAod2luZG93LlVSTCA/IHdpbmRv
dy5VUkwgOiB3aW5kb3cud2Via2l0VVJMKSA6IHVuZGVmaW5lZDsKLSAgICAgICAgaWYgKCFNb2R1
bGUubm9JbWFnZURlY29kaW5nICYmIHR5cGVvZiBCcm93c2VyLlVSTE9iamVjdCA9PT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgICBjb25zb2xlLmxvZygid2FybmluZzogQnJvd3NlciBkb2VzIG5v
dCBzdXBwb3J0IGNyZWF0aW5nIG9iamVjdCBVUkxzLiBCdWlsdC1pbiBicm93c2VyIGltYWdlIGRl
Y29kaW5nIHdpbGwgbm90IGJlIGF2YWlsYWJsZS4iKTsKLSAgICAgICAgICBNb2R1bGUubm9JbWFn
ZURlY29kaW5nID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICAvLyBTdXBwb3J0IGZvciBwbHVn
aW5zIHRoYXQgY2FuIHByb2Nlc3MgcHJlbG9hZGVkIGZpbGVzLiBZb3UgY2FuIGFkZCBtb3JlIG9m
IHRoZXNlIHRvCi0gICAgICAgIC8vIHlvdXIgYXBwIGJ5IGNyZWF0aW5nIGFuZCBhcHBlbmRpbmcg
dG8gTW9kdWxlLnByZWxvYWRQbHVnaW5zLgotICAgICAgICAvLwotICAgICAgICAvLyBFYWNoIHBs
dWdpbiBpcyBhc2tlZCBpZiBpdCBjYW4gaGFuZGxlIGEgZmlsZSBiYXNlZCBvbiB0aGUgZmlsZSdz
IG5hbWUuIElmIGl0IGNhbiwKLSAgICAgICAgLy8gaXQgaXMgZ2l2ZW4gdGhlIGZpbGUncyByYXcg
ZGF0YS4gV2hlbiBpdCBpcyBkb25lLCBpdCBjYWxscyBhIGNhbGxiYWNrIHdpdGggdGhlIGZpbGUn
cwotICAgICAgICAvLyAocG9zc2libHkgbW9kaWZpZWQpIGRhdGEuIEZvciBleGFtcGxlLCBhIHBs
dWdpbiBtaWdodCBkZWNvbXByZXNzIGEgZmlsZSwgb3IgaXQKLSAgICAgICAgLy8gbWlnaHQgY3Jl
YXRlIHNvbWUgc2lkZSBkYXRhIHN0cnVjdHVyZSBmb3IgdXNlIGxhdGVyIChsaWtlIGFuIEltYWdl
IGVsZW1lbnQsIGV0Yy4pLgotICAgICAgICB2YXIgaW1hZ2VQbHVnaW4gPSB7fTsKLSAgICAgICAg
aW1hZ2VQbHVnaW5bJ2NhbkhhbmRsZSddID0gZnVuY3Rpb24obmFtZSkgewotICAgICAgICAgIHJl
dHVybiAhTW9kdWxlLm5vSW1hZ2VEZWNvZGluZyAmJiAvXC4oanBnfGpwZWd8cG5nfGJtcCkkL2ku
dGVzdChuYW1lKTsKLSAgICAgICAgfTsKLSAgICAgICAgaW1hZ2VQbHVnaW5bJ2hhbmRsZSddID0g
ZnVuY3Rpb24oYnl0ZUFycmF5LCBuYW1lLCBvbmxvYWQsIG9uZXJyb3IpIHsKLSAgICAgICAgICB2
YXIgYiA9IG51bGw7Ci0gICAgICAgICAgaWYgKEJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yKSB7
Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICBiID0gbmV3IEJsb2IoW2J5dGVBcnJh
eV0sIHsgdHlwZTogQnJvd3Nlci5nZXRNaW1ldHlwZShuYW1lKSB9KTsKLSAgICAgICAgICAgICAg
aWYgKGIuc2l6ZSAhPT0gYnl0ZUFycmF5Lmxlbmd0aCkgeyAvLyBTYWZhcmkgYnVnICMxMTg2MzAK
LSAgICAgICAgICAgICAgICAvLyBTYWZhcmkncyBCbG9iIGNhbiBvbmx5IHRha2UgYW4gQXJyYXlC
dWZmZXIKLSAgICAgICAgICAgICAgICBiID0gbmV3IEJsb2IoWyhuZXcgVWludDhBcnJheShieXRl
QXJyYXkpKS5idWZmZXJdLCB7IHR5cGU6IEJyb3dzZXIuZ2V0TWltZXR5cGUobmFtZSkgfSk7Ci0g
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICAgICAgICBS
dW50aW1lLndhcm5PbmNlKCdCbG9iIGNvbnN0cnVjdG9yIHByZXNlbnQgYnV0IGZhaWxzOiAnICsg
ZSArICc7IGZhbGxpbmcgYmFjayB0byBibG9iIGJ1aWxkZXInKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICB9Ci0gICAgICAgICAgaWYgKCFiKSB7Ci0gICAgICAgICAgICB2YXIgYmIgPSBuZXcg
QnJvd3Nlci5CbG9iQnVpbGRlcigpOwotICAgICAgICAgICAgYmIuYXBwZW5kKChuZXcgVWludDhB
cnJheShieXRlQXJyYXkpKS5idWZmZXIpOyAvLyB3ZSBuZWVkIHRvIHBhc3MgYSBidWZmZXIsIGFu
ZCBtdXN0IGNvcHkgdGhlIGFycmF5IHRvIGdldCB0aGUgcmlnaHQgZGF0YSByYW5nZQotICAgICAg
ICAgICAgYiA9IGJiLmdldEJsb2IoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIHVybCA9
IEJyb3dzZXIuVVJMT2JqZWN0LmNyZWF0ZU9iamVjdFVSTChiKTsKLSAgICAgICAgICB2YXIgaW1n
ID0gbmV3IEltYWdlKCk7Ci0gICAgICAgICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgYXNzZXJ0KGltZy5jb21wbGV0ZSwgJ0ltYWdlICcgKyBuYW1lICsgJyBjb3VsZCBu
b3QgYmUgZGVjb2RlZCcpOwotICAgICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2NhbnZhcycpOwotICAgICAgICAgICAgY2FudmFzLndpZHRoID0gaW1nLndpZHRo
OwotICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IGltZy5oZWlnaHQ7Ci0gICAgICAgICAgICB2
YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7Ci0gICAgICAgICAgICBjdHguZHJhd0lt
YWdlKGltZywgMCwgMCk7Ci0gICAgICAgICAgICBNb2R1bGVbInByZWxvYWRlZEltYWdlcyJdW25h
bWVdID0gY2FudmFzOwotICAgICAgICAgICAgQnJvd3Nlci5VUkxPYmplY3QucmV2b2tlT2JqZWN0
VVJMKHVybCk7Ci0gICAgICAgICAgICBpZiAob25sb2FkKSBvbmxvYWQoYnl0ZUFycmF5KTsKLSAg
ICAgICAgICB9OwotICAgICAgICAgIGltZy5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICAgIGNvbnNvbGUubG9nKCdJbWFnZSAnICsgdXJsICsgJyBjb3VsZCBub3QgYmUgZGVj
b2RlZCcpOwotICAgICAgICAgICAgaWYgKG9uZXJyb3IpIG9uZXJyb3IoKTsKLSAgICAgICAgICB9
OwotICAgICAgICAgIGltZy5zcmMgPSB1cmw7Ci0gICAgICAgIH07Ci0gICAgICAgIE1vZHVsZVsn
cHJlbG9hZFBsdWdpbnMnXS5wdXNoKGltYWdlUGx1Z2luKTsKLSAgICAgICAgdmFyIGF1ZGlvUGx1
Z2luID0ge307Ci0gICAgICAgIGF1ZGlvUGx1Z2luWydjYW5IYW5kbGUnXSA9IGZ1bmN0aW9uKG5h
bWUpIHsKLSAgICAgICAgICByZXR1cm4gIU1vZHVsZS5ub0F1ZGlvRGVjb2RpbmcgJiYgbmFtZS5z
dWJzdHIoLTQpIGluIHsgJy5vZ2cnOiAxLCAnLndhdic6IDEsICcubXAzJzogMSB9OwotICAgICAg
ICB9OwotICAgICAgICBhdWRpb1BsdWdpblsnaGFuZGxlJ10gPSBmdW5jdGlvbihieXRlQXJyYXks
IG5hbWUsIG9ubG9hZCwgb25lcnJvcikgewotICAgICAgICAgIHZhciBkb25lID0gZmFsc2U7Ci0g
ICAgICAgICAgZnVuY3Rpb24gZmluaXNoKGF1ZGlvKSB7Ci0gICAgICAgICAgICBpZiAoZG9uZSkg
cmV0dXJuOwotICAgICAgICAgICAgZG9uZSA9IHRydWU7Ci0gICAgICAgICAgICBNb2R1bGVbInBy
ZWxvYWRlZEF1ZGlvcyJdW25hbWVdID0gYXVkaW87Ci0gICAgICAgICAgICBpZiAob25sb2FkKSBv
bmxvYWQoYnl0ZUFycmF5KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgZnVuY3Rpb24gZmFpbCgp
IHsKLSAgICAgICAgICAgIGlmIChkb25lKSByZXR1cm47Ci0gICAgICAgICAgICBkb25lID0gdHJ1
ZTsKLSAgICAgICAgICAgIE1vZHVsZVsicHJlbG9hZGVkQXVkaW9zIl1bbmFtZV0gPSBuZXcgQXVk
aW8oKTsgLy8gZW1wdHkgc2hpbQotICAgICAgICAgICAgaWYgKG9uZXJyb3IpIG9uZXJyb3IoKTsK
LSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKEJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yKSB7
Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICB2YXIgYiA9IG5ldyBCbG9iKFtieXRl
QXJyYXldLCB7IHR5cGU6IEJyb3dzZXIuZ2V0TWltZXR5cGUobmFtZSkgfSk7Ci0gICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHZhciB1cmwgPSBCcm93c2VyLlVSTE9iamVjdC5jcmVhdGVPYmplY3RV
UkwoYik7IC8vIFhYWCB3ZSBuZXZlciByZXZva2UgdGhpcyEKLSAgICAgICAgICAgIHZhciBhdWRp
byA9IG5ldyBBdWRpbygpOwotICAgICAgICAgICAgYXVkaW8uYWRkRXZlbnRMaXN0ZW5lcignY2Fu
cGxheXRocm91Z2gnLCBmdW5jdGlvbigpIHsgZmluaXNoKGF1ZGlvKSB9LCBmYWxzZSk7IC8vIHVz
ZSBhZGRFdmVudExpc3RlbmVyIGR1ZSB0byBjaHJvbWl1bSBidWcgMTI0OTI2Ci0gICAgICAgICAg
ICBhdWRpby5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgICAgaWYgKGRv
bmUpIHJldHVybjsKLSAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3dhcm5pbmc6IGJyb3dzZXIg
Y291bGQgbm90IGZ1bGx5IGRlY29kZSBhdWRpbyAnICsgbmFtZSArICcsIHRyeWluZyBzbG93ZXIg
YmFzZTY0IGFwcHJvYWNoJyk7Ci0gICAgICAgICAgICAgIGZ1bmN0aW9uIGVuY29kZTY0KGRhdGEp
IHsKLSAgICAgICAgICAgICAgICB2YXIgQkFTRSA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZ
WmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJzsKLSAgICAgICAgICAgICAg
ICB2YXIgUEFEID0gJz0nOwotICAgICAgICAgICAgICAgIHZhciByZXQgPSAnJzsKLSAgICAgICAg
ICAgICAgICB2YXIgbGVmdGNoYXIgPSAwOwotICAgICAgICAgICAgICAgIHZhciBsZWZ0Yml0cyA9
IDA7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICAgICAgICAgICBsZWZ0Y2hhciA9IChsZWZ0Y2hhciA8PCA4KSB8IGRhdGFb
aV07Ci0gICAgICAgICAgICAgICAgICBsZWZ0Yml0cyArPSA4OwotICAgICAgICAgICAgICAgICAg
d2hpbGUgKGxlZnRiaXRzID49IDYpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnIgPSAo
bGVmdGNoYXIgPj4gKGxlZnRiaXRzLTYpKSAmIDB4M2Y7Ci0gICAgICAgICAgICAgICAgICAgIGxl
ZnRiaXRzIC09IDY7Ci0gICAgICAgICAgICAgICAgICAgIHJldCArPSBCQVNFW2N1cnJdOwotICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAo
bGVmdGJpdHMgPT0gMikgewotICAgICAgICAgICAgICAgICAgcmV0ICs9IEJBU0VbKGxlZnRjaGFy
JjMpIDw8IDRdOwotICAgICAgICAgICAgICAgICAgcmV0ICs9IFBBRCArIFBBRDsKLSAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKGxlZnRiaXRzID09IDQpIHsKLSAgICAgICAgICAgICAgICAgIHJl
dCArPSBCQVNFWyhsZWZ0Y2hhciYweGYpIDw8IDJdOwotICAgICAgICAgICAgICAgICAgcmV0ICs9
IFBBRDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICBhdWRpby5zcmMgPSAnZGF0YTphdWRpby94LScg
KyBuYW1lLnN1YnN0cigtMykgKyAnO2Jhc2U2NCwnICsgZW5jb2RlNjQoYnl0ZUFycmF5KTsKLSAg
ICAgICAgICAgICAgZmluaXNoKGF1ZGlvKTsgLy8gd2UgZG9uJ3Qgd2FpdCBmb3IgY29uZmlybWF0
aW9uIHRoaXMgd29ya2VkIC0gYnV0IGl0J3Mgd29ydGggdHJ5aW5nCi0gICAgICAgICAgICB9Owot
ICAgICAgICAgICAgYXVkaW8uc3JjID0gdXJsOwotICAgICAgICAgICAgLy8gd29ya2Fyb3VuZCBm
b3IgY2hyb21lIGJ1ZyAxMjQ5MjYgLSB3ZSBkbyBub3QgYWx3YXlzIGdldCBvbmNhbnBsYXl0aHJv
dWdoIG9yIG9uZXJyb3IKLSAgICAgICAgICAgIEJyb3dzZXIuc2FmZVNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgIGZpbmlzaChhdWRpbyk7IC8vIHRyeSB0byB1c2UgaXQgZXZl
biB0aG91Z2ggaXQgaXMgbm90IG5lY2Vzc2FyaWx5IHJlYWR5IHRvIHBsYXkKLSAgICAgICAgICAg
IH0sIDEwMDAwKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIGZhaWwo
KTsKLSAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIE1vZHVsZVsncHJlbG9hZFBsdWdp
bnMnXS5wdXNoKGF1ZGlvUGx1Z2luKTsKLSAgICAgICAgLy8gQ2FudmFzIGV2ZW50IHNldHVwCi0g
ICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBjYW52YXMucmVx
dWVzdFBvaW50ZXJMb2NrID0gY2FudmFzWydyZXF1ZXN0UG9pbnRlckxvY2snXSB8fAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzWydtb3pSZXF1ZXN0UG9pbnRlckxv
Y2snXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzWyd3ZWJr
aXRSZXF1ZXN0UG9pbnRlckxvY2snXTsKLSAgICAgICAgY2FudmFzLmV4aXRQb2ludGVyTG9jayA9
IGRvY3VtZW50WydleGl0UG9pbnRlckxvY2snXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnRbJ21vekV4aXRQb2ludGVyTG9jayddIHx8Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFsnd2Via2l0RXhpdFBvaW50ZXJMb2NrJ10gfHwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCl7fTsgLy8gbm8tb3Ag
aWYgZnVuY3Rpb24gZG9lcyBub3QgZXhpc3QKLSAgICAgICAgY2FudmFzLmV4aXRQb2ludGVyTG9j
ayA9IGNhbnZhcy5leGl0UG9pbnRlckxvY2suYmluZChkb2N1bWVudCk7Ci0gICAgICAgIGZ1bmN0
aW9uIHBvaW50ZXJMb2NrQ2hhbmdlKCkgewotICAgICAgICAgIEJyb3dzZXIucG9pbnRlckxvY2sg
PSBkb2N1bWVudFsncG9pbnRlckxvY2tFbGVtZW50J10gPT09IGNhbnZhcyB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFsnbW96UG9pbnRlckxvY2tFbGVtZW50J10g
PT09IGNhbnZhcyB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFsn
d2Via2l0UG9pbnRlckxvY2tFbGVtZW50J10gPT09IGNhbnZhczsKLSAgICAgICAgfQotICAgICAg
ICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybG9ja2NoYW5nZScsIHBvaW50ZXJM
b2NrQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21v
enBvaW50ZXJsb2NrY2hhbmdlJywgcG9pbnRlckxvY2tDaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAg
ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cG9pbnRlcmxvY2tjaGFuZ2UnLCBwb2lu
dGVyTG9ja0NoYW5nZSwgZmFsc2UpOwotICAgICAgICBpZiAoTW9kdWxlWydlbGVtZW50UG9pbnRl
ckxvY2snXSkgewotICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1
bmN0aW9uKGV2KSB7Ci0gICAgICAgICAgICBpZiAoIUJyb3dzZXIucG9pbnRlckxvY2sgJiYgY2Fu
dmFzLnJlcXVlc3RQb2ludGVyTG9jaykgewotICAgICAgICAgICAgICBjYW52YXMucmVxdWVzdFBv
aW50ZXJMb2NrKCk7Ci0gICAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfSwgZmFsc2UpOwotICAgICAgICB9Ci0gICAgICB9LGNyZWF0ZUNv
bnRleHQ6ZnVuY3Rpb24gKGNhbnZhcywgdXNlV2ViR0wsIHNldEluTW9kdWxlKSB7Ci0gICAgICAg
IHZhciBjdHg7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgaWYgKHVzZVdlYkdMKSB7Ci0gICAg
ICAgICAgICBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnZXhwZXJpbWVudGFsLXdlYmdsJywgewot
ICAgICAgICAgICAgICBhbHBoYTogZmFsc2UKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgaWYgKCFjdHgpIHRocm93ICc6KCc7Ci0gICAgICAgIH0gY2F0Y2gg
KGUpIHsKLSAgICAgICAgICBNb2R1bGUucHJpbnQoJ0NvdWxkIG5vdCBjcmVhdGUgY2FudmFzIC0g
JyArIGUpOwotICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0gICAgICAgIGlmICh1
c2VXZWJHTCkgewotICAgICAgICAgIC8vIFNldCB0aGUgYmFja2dyb3VuZCBvZiB0aGUgV2ViR0wg
Y2FudmFzIHRvIGJsYWNrCi0gICAgICAgICAgY2FudmFzLnN0eWxlLmJhY2tncm91bmRDb2xvciA9
ICJibGFjayI7Ci0gICAgICAgICAgLy8gV2FybiBvbiBjb250ZXh0IGxvc3MKLSAgICAgICAgICBj
YW52YXMuYWRkRXZlbnRMaXN0ZW5lcignd2ViZ2xjb250ZXh0bG9zdCcsIGZ1bmN0aW9uKGV2ZW50
KSB7Ci0gICAgICAgICAgICBhbGVydCgnV2ViR0wgY29udGV4dCBsb3N0LiBZb3Ugd2lsbCBuZWVk
IHRvIHJlbG9hZCB0aGUgcGFnZS4nKTsKLSAgICAgICAgICB9LCBmYWxzZSk7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKHNldEluTW9kdWxlKSB7Ci0gICAgICAgICAgTW9kdWxlLmN0eCA9IGN0eDsK
LSAgICAgICAgICBNb2R1bGUudXNlV2ViR0wgPSB1c2VXZWJHTDsKLSAgICAgICAgICBCcm93c2Vy
Lm1vZHVsZUNvbnRleHRDcmVhdGVkQ2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24oY2FsbGJhY2sp
IHsgY2FsbGJhY2soKSB9KTsKLSAgICAgICAgICBCcm93c2VyLmluaXQoKTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gY3R4OwotICAgICAgfSxkZXN0cm95Q29udGV4dDpmdW5jdGlvbiAoY2Fu
dmFzLCB1c2VXZWJHTCwgc2V0SW5Nb2R1bGUpIHt9LGZ1bGxTY3JlZW5IYW5kbGVyc0luc3RhbGxl
ZDpmYWxzZSxsb2NrUG9pbnRlcjp1bmRlZmluZWQscmVzaXplQ2FudmFzOnVuZGVmaW5lZCxyZXF1
ZXN0RnVsbFNjcmVlbjpmdW5jdGlvbiAobG9ja1BvaW50ZXIsIHJlc2l6ZUNhbnZhcykgewotICAg
ICAgICBCcm93c2VyLmxvY2tQb2ludGVyID0gbG9ja1BvaW50ZXI7Ci0gICAgICAgIEJyb3dzZXIu
cmVzaXplQ2FudmFzID0gcmVzaXplQ2FudmFzOwotICAgICAgICBpZiAodHlwZW9mIEJyb3dzZXIu
bG9ja1BvaW50ZXIgPT09ICd1bmRlZmluZWQnKSBCcm93c2VyLmxvY2tQb2ludGVyID0gdHJ1ZTsK
LSAgICAgICAgaWYgKHR5cGVvZiBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9PT0gJ3VuZGVmaW5lZCcp
IEJyb3dzZXIucmVzaXplQ2FudmFzID0gZmFsc2U7Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1
bGVbJ2NhbnZhcyddOwotICAgICAgICBmdW5jdGlvbiBmdWxsU2NyZWVuQ2hhbmdlKCkgewotICAg
ICAgICAgIEJyb3dzZXIuaXNGdWxsU2NyZWVuID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKChkb2N1
bWVudFsnd2Via2l0RnVsbFNjcmVlbkVsZW1lbnQnXSB8fCBkb2N1bWVudFsnd2Via2l0RnVsbHNj
cmVlbkVsZW1lbnQnXSB8fAotICAgICAgICAgICAgICAgZG9jdW1lbnRbJ21vekZ1bGxTY3JlZW5F
bGVtZW50J10gfHwgZG9jdW1lbnRbJ21vekZ1bGxzY3JlZW5FbGVtZW50J10gfHwKLSAgICAgICAg
ICAgICAgIGRvY3VtZW50WydmdWxsU2NyZWVuRWxlbWVudCddIHx8IGRvY3VtZW50WydmdWxsc2Ny
ZWVuRWxlbWVudCddKSA9PT0gY2FudmFzKSB7Ci0gICAgICAgICAgICBjYW52YXMuY2FuY2VsRnVs
bFNjcmVlbiA9IGRvY3VtZW50WydjYW5jZWxGdWxsU2NyZWVuJ10gfHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ21vekNhbmNlbEZ1bGxTY3JlZW4nXSB8
fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFsnd2Via2l0
Q2FuY2VsRnVsbFNjcmVlbiddOwotICAgICAgICAgICAgY2FudmFzLmNhbmNlbEZ1bGxTY3JlZW4g
PSBjYW52YXMuY2FuY2VsRnVsbFNjcmVlbi5iaW5kKGRvY3VtZW50KTsKLSAgICAgICAgICAgIGlm
IChCcm93c2VyLmxvY2tQb2ludGVyKSBjYW52YXMucmVxdWVzdFBvaW50ZXJMb2NrKCk7Ci0gICAg
ICAgICAgICBCcm93c2VyLmlzRnVsbFNjcmVlbiA9IHRydWU7Ci0gICAgICAgICAgICBpZiAoQnJv
d3Nlci5yZXNpemVDYW52YXMpIEJyb3dzZXIuc2V0RnVsbFNjcmVlbkNhbnZhc1NpemUoKTsKLSAg
ICAgICAgICB9IGVsc2UgaWYgKEJyb3dzZXIucmVzaXplQ2FudmFzKXsKLSAgICAgICAgICAgIEJy
b3dzZXIuc2V0V2luZG93ZWRDYW52YXNTaXplKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlm
IChNb2R1bGVbJ29uRnVsbFNjcmVlbiddKSBNb2R1bGVbJ29uRnVsbFNjcmVlbiddKEJyb3dzZXIu
aXNGdWxsU2NyZWVuKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIUJyb3dzZXIuZnVsbFNjcmVl
bkhhbmRsZXJzSW5zdGFsbGVkKSB7Ci0gICAgICAgICAgQnJvd3Nlci5mdWxsU2NyZWVuSGFuZGxl
cnNJbnN0YWxsZWQgPSB0cnVlOwotICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo
J2Z1bGxzY3JlZW5jaGFuZ2UnLCBmdWxsU2NyZWVuQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgICAg
ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW96ZnVsbHNjcmVlbmNoYW5nZScsIGZ1bGxTY3Jl
ZW5DaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3
ZWJraXRmdWxsc2NyZWVuY2hhbmdlJywgZnVsbFNjcmVlbkNoYW5nZSwgZmFsc2UpOwotICAgICAg
ICB9Ci0gICAgICAgIGNhbnZhcy5yZXF1ZXN0RnVsbFNjcmVlbiA9IGNhbnZhc1sncmVxdWVzdEZ1
bGxTY3JlZW4nXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXNb
J21velJlcXVlc3RGdWxsU2NyZWVuJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNhbnZhc1snd2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4nXSA/IGZ1bmN0aW9uKCkgeyBj
YW52YXNbJ3dlYmtpdFJlcXVlc3RGdWxsU2NyZWVuJ10oRWxlbWVudFsnQUxMT1dfS0VZQk9BUkRf
SU5QVVQnXSkgfSA6IG51bGwpOwotICAgICAgICBjYW52YXMucmVxdWVzdEZ1bGxTY3JlZW4oKTsK
LSAgICAgIH0scmVxdWVzdEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uIChmdW5jKSB7Ci0gICAgICAg
IGlmICghd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSkgewotICAgICAgICAgIHdpbmRvdy5y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB3aW5kb3dbJ3JlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1snbW96UmVx
dWVzdEFuaW1hdGlvbkZyYW1lJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2luZG93Wyd3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXSB8fAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ21zUmVxdWVzdEFuaW1h
dGlvbkZyYW1lJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2luZG93WydvUmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10gfHwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2luZG93WydzZXRUaW1lb3V0J107Ci0gICAgICAgIH0KLSAg
ICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jKTsKLSAgICAgIH0sc2FmZUNh
bGxiYWNrOmZ1bmN0aW9uIChmdW5jKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICBpZiAoIUFCT1JUKSByZXR1cm4gZnVuYy5hcHBseShudWxsLCBhcmd1bWVudHMpOwot
ICAgICAgICB9OwotICAgICAgfSxzYWZlUmVxdWVzdEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uIChm
dW5jKSB7Ci0gICAgICAgIHJldHVybiBCcm93c2VyLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5j
dGlvbigpIHsKLSAgICAgICAgICBpZiAoIUFCT1JUKSBmdW5jKCk7Ci0gICAgICAgIH0pOwotICAg
ICAgfSxzYWZlU2V0VGltZW91dDpmdW5jdGlvbiAoZnVuYywgdGltZW91dCkgewotICAgICAgICBy
ZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICBpZiAoIUFCT1JUKSBmdW5j
KCk7Ci0gICAgICAgIH0sIHRpbWVvdXQpOwotICAgICAgfSxzYWZlU2V0SW50ZXJ2YWw6ZnVuY3Rp
b24gKGZ1bmMsIHRpbWVvdXQpIHsKLSAgICAgICAgcmV0dXJuIHNldEludGVydmFsKGZ1bmN0aW9u
KCkgewotICAgICAgICAgIGlmICghQUJPUlQpIGZ1bmMoKTsKLSAgICAgICAgfSwgdGltZW91dCk7
Ci0gICAgICB9LGdldE1pbWV0eXBlOmZ1bmN0aW9uIChuYW1lKSB7Ci0gICAgICAgIHJldHVybiB7
Ci0gICAgICAgICAgJ2pwZyc6ICdpbWFnZS9qcGVnJywKLSAgICAgICAgICAnanBlZyc6ICdpbWFn
ZS9qcGVnJywKLSAgICAgICAgICAncG5nJzogJ2ltYWdlL3BuZycsCi0gICAgICAgICAgJ2JtcCc6
ICdpbWFnZS9ibXAnLAotICAgICAgICAgICdvZ2cnOiAnYXVkaW8vb2dnJywKLSAgICAgICAgICAn
d2F2JzogJ2F1ZGlvL3dhdicsCi0gICAgICAgICAgJ21wMyc6ICdhdWRpby9tcGVnJwotICAgICAg
ICB9W25hbWUuc3Vic3RyKG5hbWUubGFzdEluZGV4T2YoJy4nKSsxKV07Ci0gICAgICB9LGdldFVz
ZXJNZWRpYTpmdW5jdGlvbiAoZnVuYykgewotICAgICAgICBpZighd2luZG93LmdldFVzZXJNZWRp
YSkgewotICAgICAgICAgIHdpbmRvdy5nZXRVc2VyTWVkaWEgPSBuYXZpZ2F0b3JbJ2dldFVzZXJN
ZWRpYSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvclsnbW96
R2V0VXNlck1lZGlhJ107Ci0gICAgICAgIH0KLSAgICAgICAgd2luZG93LmdldFVzZXJNZWRpYShm
dW5jKTsKLSAgICAgIH0sZ2V0TW92ZW1lbnRYOmZ1bmN0aW9uIChldmVudCkgewotICAgICAgICBy
ZXR1cm4gZXZlbnRbJ21vdmVtZW50WCddIHx8Ci0gICAgICAgICAgICAgICBldmVudFsnbW96TW92
ZW1lbnRYJ10gfHwKLSAgICAgICAgICAgICAgIGV2ZW50Wyd3ZWJraXRNb3ZlbWVudFgnXSB8fAot
ICAgICAgICAgICAgICAgMDsKLSAgICAgIH0sZ2V0TW92ZW1lbnRZOmZ1bmN0aW9uIChldmVudCkg
ewotICAgICAgICByZXR1cm4gZXZlbnRbJ21vdmVtZW50WSddIHx8Ci0gICAgICAgICAgICAgICBl
dmVudFsnbW96TW92ZW1lbnRZJ10gfHwKLSAgICAgICAgICAgICAgIGV2ZW50Wyd3ZWJraXRNb3Zl
bWVudFknXSB8fAotICAgICAgICAgICAgICAgMDsKLSAgICAgIH0sbW91c2VYOjAsbW91c2VZOjAs
bW91c2VNb3ZlbWVudFg6MCxtb3VzZU1vdmVtZW50WTowLGNhbGN1bGF0ZU1vdXNlRXZlbnQ6ZnVu
Y3Rpb24gKGV2ZW50KSB7IC8vIGV2ZW50IHNob3VsZCBiZSBtb3VzZW1vdmUsIG1vdXNlZG93biBv
ciBtb3VzZXVwCi0gICAgICAgIGlmIChCcm93c2VyLnBvaW50ZXJMb2NrKSB7Ci0gICAgICAgICAg
Ly8gV2hlbiB0aGUgcG9pbnRlciBpcyBsb2NrZWQsIGNhbGN1bGF0ZSB0aGUgY29vcmRpbmF0ZXMK
LSAgICAgICAgICAvLyBiYXNlZCBvbiB0aGUgbW92ZW1lbnQgb2YgdGhlIG1vdXNlLgotICAgICAg
ICAgIC8vIFdvcmthcm91bmQgZm9yIEZpcmVmb3ggYnVnIDc2NDQ5OAotICAgICAgICAgIGlmIChl
dmVudC50eXBlICE9ICdtb3VzZW1vdmUnICYmCi0gICAgICAgICAgICAgICgnbW96TW92ZW1lbnRY
JyBpbiBldmVudCkpIHsKLSAgICAgICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFggPSBCcm93
c2VyLm1vdXNlTW92ZW1lbnRZID0gMDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
QnJvd3Nlci5tb3VzZU1vdmVtZW50WCA9IEJyb3dzZXIuZ2V0TW92ZW1lbnRYKGV2ZW50KTsKLSAg
ICAgICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFkgPSBCcm93c2VyLmdldE1vdmVtZW50WShl
dmVudCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIGNoZWNrIGlmIFNETCBpcyBhdmFpbGFi
bGUKLSAgICAgICAgICBpZiAodHlwZW9mIFNETCAhPSAidW5kZWZpbmVkIikgewotICAgICAgICAg
IAlCcm93c2VyLm1vdXNlWCA9IFNETC5tb3VzZVggKyBCcm93c2VyLm1vdXNlTW92ZW1lbnRYOwot
ICAgICAgICAgIAlCcm93c2VyLm1vdXNlWSA9IFNETC5tb3VzZVkgKyBCcm93c2VyLm1vdXNlTW92
ZW1lbnRZOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgCS8vIGp1c3QgYWRkIHRoZSBt
b3VzZSBkZWx0YSB0byB0aGUgY3VycmVudCBhYnNvbHV0IG1vdXNlIHBvc2l0aW9uCi0gICAgICAg
ICAgCS8vIEZJWE1FOiBpZGVhbGx5IHRoaXMgc2hvdWxkIGJlIGNsYW1wZWQgYWdhaW5zdCB0aGUg
Y2FudmFzIHNpemUgYW5kIHplcm8KLSAgICAgICAgICAJQnJvd3Nlci5tb3VzZVggKz0gQnJvd3Nl
ci5tb3VzZU1vdmVtZW50WDsKLSAgICAgICAgICAJQnJvd3Nlci5tb3VzZVkgKz0gQnJvd3Nlci5t
b3VzZU1vdmVtZW50WTsKLSAgICAgICAgICB9ICAgICAgICAKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAvLyBPdGhlcndpc2UsIGNhbGN1bGF0ZSB0aGUgbW92ZW1lbnQgYmFzZWQgb24gdGhl
IGNoYW5nZXMKLSAgICAgICAgICAvLyBpbiB0aGUgY29vcmRpbmF0ZXMuCi0gICAgICAgICAgdmFy
IHJlY3QgPSBNb2R1bGVbImNhbnZhcyJdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAg
ICAgIHZhciB4LCB5OwotICAgICAgICAgIGlmIChldmVudC50eXBlID09ICd0b3VjaHN0YXJ0JyB8
fAotICAgICAgICAgICAgICBldmVudC50eXBlID09ICd0b3VjaGVuZCcgfHwKLSAgICAgICAgICAg
ICAgZXZlbnQudHlwZSA9PSAndG91Y2htb3ZlJykgewotICAgICAgICAgICAgdmFyIHQgPSBldmVu
dC50b3VjaGVzLml0ZW0oMCk7Ci0gICAgICAgICAgICBpZiAodCkgewotICAgICAgICAgICAgICB4
ID0gdC5wYWdlWCAtICh3aW5kb3cuc2Nyb2xsWCArIHJlY3QubGVmdCk7Ci0gICAgICAgICAgICAg
IHkgPSB0LnBhZ2VZIC0gKHdpbmRvdy5zY3JvbGxZICsgcmVjdC50b3ApOwotICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICB4ID0gZXZlbnQucGFnZVggLSAod2luZG93LnNjcm9sbFgg
KyByZWN0LmxlZnQpOwotICAgICAgICAgICAgeSA9IGV2ZW50LnBhZ2VZIC0gKHdpbmRvdy5zY3Jv
bGxZICsgcmVjdC50b3ApOwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyB0aGUgY2FudmFzIG1p
Z2h0IGJlIENTUy1zY2FsZWQgY29tcGFyZWQgdG8gaXRzIGJhY2tidWZmZXI7Ci0gICAgICAgICAg
Ly8gU0RMLXVzaW5nIGNvbnRlbnQgd2lsbCB3YW50IG1vdXNlIGNvb3JkaW5hdGVzIGluIHRlcm1z
Ci0gICAgICAgICAgLy8gb2YgYmFja2J1ZmZlciB1bml0cy4KLSAgICAgICAgICB2YXIgY3cgPSBN
b2R1bGVbImNhbnZhcyJdLndpZHRoOwotICAgICAgICAgIHZhciBjaCA9IE1vZHVsZVsiY2FudmFz
Il0uaGVpZ2h0OwotICAgICAgICAgIHggPSB4ICogKGN3IC8gcmVjdC53aWR0aCk7Ci0gICAgICAg
ICAgeSA9IHkgKiAoY2ggLyByZWN0LmhlaWdodCk7Ci0gICAgICAgICAgQnJvd3Nlci5tb3VzZU1v
dmVtZW50WCA9IHggLSBCcm93c2VyLm1vdXNlWDsKLSAgICAgICAgICBCcm93c2VyLm1vdXNlTW92
ZW1lbnRZID0geSAtIEJyb3dzZXIubW91c2VZOwotICAgICAgICAgIEJyb3dzZXIubW91c2VYID0g
eDsKLSAgICAgICAgICBCcm93c2VyLm1vdXNlWSA9IHk7Ci0gICAgICAgIH0KLSAgICAgIH0seGhy
TG9hZDpmdW5jdGlvbiAodXJsLCBvbmxvYWQsIG9uZXJyb3IpIHsKLSAgICAgICAgdmFyIHhociA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgICAgICB4aHIub3BlbignR0VUJywgdXJsLCB0cnVl
KTsKLSAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcic7Ci0gICAgICAgIHho
ci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PSAyMDAg
fHwgKHhoci5zdGF0dXMgPT0gMCAmJiB4aHIucmVzcG9uc2UpKSB7IC8vIGZpbGUgVVJMcyBjYW4g
cmV0dXJuIDAKLSAgICAgICAgICAgIG9ubG9hZCh4aHIucmVzcG9uc2UpOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBvbmVycm9yKCk7Ci0gICAgICAgICAgfQotICAgICAgICB9Owot
ICAgICAgICB4aHIub25lcnJvciA9IG9uZXJyb3I7Ci0gICAgICAgIHhoci5zZW5kKG51bGwpOwot
ICAgICAgfSxhc3luY0xvYWQ6ZnVuY3Rpb24gKHVybCwgb25sb2FkLCBvbmVycm9yLCBub1J1bkRl
cCkgewotICAgICAgICBCcm93c2VyLnhockxvYWQodXJsLCBmdW5jdGlvbihhcnJheUJ1ZmZlcikg
ewotICAgICAgICAgIGFzc2VydChhcnJheUJ1ZmZlciwgJ0xvYWRpbmcgZGF0YSBmaWxlICInICsg
dXJsICsgJyIgZmFpbGVkIChubyBhcnJheUJ1ZmZlcikuJyk7Ci0gICAgICAgICAgb25sb2FkKG5l
dyBVaW50OEFycmF5KGFycmF5QnVmZmVyKSk7Ci0gICAgICAgICAgaWYgKCFub1J1bkRlcCkgcmVt
b3ZlUnVuRGVwZW5kZW5jeSgnYWwgJyArIHVybCk7Ci0gICAgICAgIH0sIGZ1bmN0aW9uKGV2ZW50
KSB7Ci0gICAgICAgICAgaWYgKG9uZXJyb3IpIHsKLSAgICAgICAgICAgIG9uZXJyb3IoKTsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhyb3cgJ0xvYWRpbmcgZGF0YSBmaWxlICIn
ICsgdXJsICsgJyIgZmFpbGVkLic7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAg
aWYgKCFub1J1bkRlcCkgYWRkUnVuRGVwZW5kZW5jeSgnYWwgJyArIHVybCk7Ci0gICAgICB9LHJl
c2l6ZUxpc3RlbmVyczpbXSx1cGRhdGVSZXNpemVMaXN0ZW5lcnM6ZnVuY3Rpb24gKCkgewotICAg
ICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgQnJvd3Nlci5yZXNp
emVMaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbihsaXN0ZW5lcikgewotICAgICAgICAgIGxpc3Rl
bmVyKGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Ci0gICAgICAgIH0pOwotICAgICAgfSxz
ZXRDYW52YXNTaXplOmZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0LCBub1VwZGF0ZXMpIHsKLSAgICAg
ICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIGNhbnZhcy53aWR0aCA9
IHdpZHRoOwotICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0OwotICAgICAgICBpZiAoIW5v
VXBkYXRlcykgQnJvd3Nlci51cGRhdGVSZXNpemVMaXN0ZW5lcnMoKTsKLSAgICAgIH0sd2luZG93
ZWRXaWR0aDowLHdpbmRvd2VkSGVpZ2h0OjAsc2V0RnVsbFNjcmVlbkNhbnZhc1NpemU6ZnVuY3Rp
b24gKCkgewotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAg
dGhpcy53aW5kb3dlZFdpZHRoID0gY2FudmFzLndpZHRoOwotICAgICAgICB0aGlzLndpbmRvd2Vk
SGVpZ2h0ID0gY2FudmFzLmhlaWdodDsKLSAgICAgICAgY2FudmFzLndpZHRoID0gc2NyZWVuLndp
ZHRoOwotICAgICAgICBjYW52YXMuaGVpZ2h0ID0gc2NyZWVuLmhlaWdodDsKLSAgICAgICAgLy8g
Y2hlY2sgaWYgU0RMIGlzIGF2YWlsYWJsZSAgIAotICAgICAgICBpZiAodHlwZW9mIFNETCAhPSAi
dW5kZWZpbmVkIikgewotICAgICAgICAJdmFyIGZsYWdzID0gSEVBUFUzMlsoKFNETC5zY3JlZW4r
UnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXTsKLSAgICAgICAgCWZsYWdzID0gZmxhZ3MgfCAw
eDAwODAwMDAwOyAvLyBzZXQgU0RMX0ZVTExTQ1JFRU4gZmxhZwotICAgICAgICAJSEVBUDMyWygo
U0RMLnNjcmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+MildPWZsYWdzCi0gICAgICAgIH0K
LSAgICAgICAgQnJvd3Nlci51cGRhdGVSZXNpemVMaXN0ZW5lcnMoKTsKLSAgICAgIH0sc2V0V2lu
ZG93ZWRDYW52YXNTaXplOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVs
ZVsnY2FudmFzJ107Ci0gICAgICAgIGNhbnZhcy53aWR0aCA9IHRoaXMud2luZG93ZWRXaWR0aDsK
LSAgICAgICAgY2FudmFzLmhlaWdodCA9IHRoaXMud2luZG93ZWRIZWlnaHQ7Ci0gICAgICAgIC8v
IGNoZWNrIGlmIFNETCBpcyBhdmFpbGFibGUgICAgICAgCi0gICAgICAgIGlmICh0eXBlb2YgU0RM
ICE9ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgIAl2YXIgZmxhZ3MgPSBIRUFQVTMyWygoU0RMLnNj
cmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+MildOwotICAgICAgICAJZmxhZ3MgPSBmbGFn
cyAmIH4weDAwODAwMDAwOyAvLyBjbGVhciBTRExfRlVMTFNDUkVFTiBmbGFnCi0gICAgICAgIAlI
RUFQMzJbKChTREwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV09ZmxhZ3MKLSAg
ICAgICAgfQotICAgICAgICBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVycygpOwotICAgICAg
fX07Ci1fbGx2bV9laF9leGNlcHRpb24uYnVmID0gYWxsb2NhdGUoMTIsICJ2b2lkKiIsIEFMTE9D
X1NUQVRJQyk7Ci1GUy5zdGF0aWNJbml0KCk7X19BVElOSVRfXy51bnNoaWZ0KHsgZnVuYzogZnVu
Y3Rpb24oKSB7IGlmICghTW9kdWxlWyJub0ZTSW5pdCJdICYmICFGUy5pbml0LmluaXRpYWxpemVk
KSBGUy5pbml0KCkgfSB9KTtfX0FUTUFJTl9fLnB1c2goeyBmdW5jOiBmdW5jdGlvbigpIHsgRlMu
aWdub3JlUGVybWlzc2lvbnMgPSBmYWxzZSB9IH0pO19fQVRFWElUX18ucHVzaCh7IGZ1bmM6IGZ1
bmN0aW9uKCkgeyBGUy5xdWl0KCkgfSB9KTtNb2R1bGVbIkZTX2NyZWF0ZUZvbGRlciJdID0gRlMu
Y3JlYXRlRm9sZGVyO01vZHVsZVsiRlNfY3JlYXRlUGF0aCJdID0gRlMuY3JlYXRlUGF0aDtNb2R1
bGVbIkZTX2NyZWF0ZURhdGFGaWxlIl0gPSBGUy5jcmVhdGVEYXRhRmlsZTtNb2R1bGVbIkZTX2Ny
ZWF0ZVByZWxvYWRlZEZpbGUiXSA9IEZTLmNyZWF0ZVByZWxvYWRlZEZpbGU7TW9kdWxlWyJGU19j
cmVhdGVMYXp5RmlsZSJdID0gRlMuY3JlYXRlTGF6eUZpbGU7TW9kdWxlWyJGU19jcmVhdGVMaW5r
Il0gPSBGUy5jcmVhdGVMaW5rO01vZHVsZVsiRlNfY3JlYXRlRGV2aWNlIl0gPSBGUy5jcmVhdGVE
ZXZpY2U7Ci1fX19lcnJub19zdGF0ZSA9IFJ1bnRpbWUuc3RhdGljQWxsb2MoNCk7IEhFQVAzMlso
KF9fX2Vycm5vX3N0YXRlKT4+MildPTA7Ci1fZmdldGMucmV0ID0gYWxsb2NhdGUoWzBdLCAiaTgi
LCBBTExPQ19TVEFUSUMpOwotTW9kdWxlWyJyZXF1ZXN0RnVsbFNjcmVlbiJdID0gZnVuY3Rpb24o
bG9ja1BvaW50ZXIsIHJlc2l6ZUNhbnZhcykgeyBCcm93c2VyLnJlcXVlc3RGdWxsU2NyZWVuKGxv
Y2tQb2ludGVyLCByZXNpemVDYW52YXMpIH07Ci0gIE1vZHVsZVsicmVxdWVzdEFuaW1hdGlvbkZy
YW1lIl0gPSBmdW5jdGlvbihmdW5jKSB7IEJyb3dzZXIucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1
bmMpIH07Ci0gIE1vZHVsZVsic2V0Q2FudmFzU2l6ZSJdID0gZnVuY3Rpb24od2lkdGgsIGhlaWdo
dCwgbm9VcGRhdGVzKSB7IEJyb3dzZXIuc2V0Q2FudmFzU2l6ZSh3aWR0aCwgaGVpZ2h0LCBub1Vw
ZGF0ZXMpIH07Ci0gIE1vZHVsZVsicGF1c2VNYWluTG9vcCJdID0gZnVuY3Rpb24oKSB7IEJyb3dz
ZXIubWFpbkxvb3AucGF1c2UoKSB9OwotICBNb2R1bGVbInJlc3VtZU1haW5Mb29wIl0gPSBmdW5j
dGlvbigpIHsgQnJvd3Nlci5tYWluTG9vcC5yZXN1bWUoKSB9OwotICBNb2R1bGVbImdldFVzZXJN
ZWRpYSJdID0gZnVuY3Rpb24oKSB7IEJyb3dzZXIuZ2V0VXNlck1lZGlhKCkgfQotU1RBQ0tfQkFT
RSA9IFNUQUNLVE9QID0gUnVudGltZS5hbGlnbk1lbW9yeShTVEFUSUNUT1ApOwotc3RhdGljU2Vh
bGVkID0gdHJ1ZTsgLy8gc2VhbCB0aGUgc3RhdGljIHBvcnRpb24gb2YgbWVtb3J5Ci1TVEFDS19N
QVggPSBTVEFDS19CQVNFICsgNTI0Mjg4MDsKLURZTkFNSUNfQkFTRSA9IERZTkFNSUNUT1AgPSBS
dW50aW1lLmFsaWduTWVtb3J5KFNUQUNLX01BWCk7Ci1hc3NlcnQoRFlOQU1JQ19CQVNFIDwgVE9U
QUxfTUVNT1JZKTsgLy8gU3RhY2sgbXVzdCBmaXQgaW4gVE9UQUxfTUVNT1JZOyBhbGxvY2F0aW9u
cyBmcm9tIGhlcmUgb24gbWF5IGVubGFyZ2UgVE9UQUxfTUVNT1JZCi0gdmFyIGN0dHpfaTggPSBh
bGxvY2F0ZShbOCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAs
MywwLDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwy
LDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw2LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQs
MCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiww
LDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDcsMCwxLDAsMiwwLDEsMCwzLDAs
MSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwx
LDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNiwwLDEs
MCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSww
LDUsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAs
MiwwLDEsMF0sICJpOCIsIEFMTE9DX0RZTkFNSUMpOwotdmFyIE1hdGhfbWluID0gTWF0aC5taW47
Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1KSB7Ci0gIHRyeSB7
Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaSJdKGluZGV4LGExLGEyLGEzLGE0LGE1KTsKLSAg
fSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9u
Z2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5j
dGlvbiBpbnZva2VfdmlpaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcpIHsKLSAgdHJ5
IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxhNSxh
NixhNyk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYg
ZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAg
fQotfQotZnVuY3Rpb24gaW52b2tlX3ZpKGluZGV4LGExKSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxl
WyJkeW5DYWxsX3ZpIl0oaW5kZXgsYTEpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9m
IGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNl
dFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWkoaW5kZXgsYTEsYTIp
IHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmlpIl0oaW5kZXgsYTEsYTIpOwotICB9
IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25n
am1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0
aW9uIGludm9rZV9paWkoaW5kZXgsYTEsYTIpIHsKLSAgdHJ5IHsKLSAgICByZXR1cm4gTW9kdWxl
WyJkeW5DYWxsX2lpaSJdKGluZGV4LGExLGEyKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5
cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNt
WyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfaWlpaWlpKGluZGV4
LGExLGEyLGEzLGE0LGE1KSB7Ci0gIHRyeSB7Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9p
aWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxhNSk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0
eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFz
bVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lpKGluZGV4LGEx
KSB7Ci0gIHRyeSB7Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paSJdKGluZGV4LGExKTsK
LSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAn
bG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1m
dW5jdGlvbiBpbnZva2VfaWlpaShpbmRleCxhMSxhMixhMykgewotICB0cnkgewotICAgIHJldHVy
biBNb2R1bGVbImR5bkNhbGxfaWlpaSJdKGluZGV4LGExLGEyLGEzKTsKLSAgfSBjYXRjaChlKSB7
Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93
IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2Vf
dmlpaWlpZihpbmRleCxhMSxhMixhMyxhNCxhNSxhNikgewotICB0cnkgewotICAgIE1vZHVsZVsi
ZHluQ2FsbF92aWlpaWlmIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYpOwotICB9IGNhdGNoKGUp
IHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhy
b3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9r
ZV92aWlpKGluZGV4LGExLGEyLGEzKSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3Zp
aWkiXShpbmRleCxhMSxhMixhMyk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAh
PT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhy
ZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpaShpbmRleCxhMSxh
MixhMyxhNCxhNSxhNixhNyxhOCkgewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlp
aWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCk7Ci0gIH0gY2F0Y2goZSkgewot
ICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBl
OwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3Yo
aW5kZXgpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdiJdKGluZGV4KTsKLSAgfSBj
YXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2pt
cCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlv
biBpbnZva2VfaWlpaWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4KSB7Ci0gIHRy
eSB7Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWkiXShpbmRleCxhMSxhMixh
MyxhNCxhNSxhNixhNyxhOCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0g
J251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXci
XSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpaWkoaW5kZXgsYTEsYTIs
YTMsYTQsYTUsYTYsYTcsYTgsYTkpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5bkNhbGxfdmlp
aWlpaWlpaSJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4LGE5KTsKLSAgfSBjYXRjaChl
KSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRo
cm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZv
a2VfdmlpaWlpaWYoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcpIHsKLSAgdHJ5IHsKLSAgICBN
b2R1bGVbImR5bkNhbGxfdmlpaWlpaWYiXShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyk7Ci0g
IH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xv
bmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVu
Y3Rpb24gaW52b2tlX3ZpaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYpIHsKLSAgdHJ5IHsK
LSAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaSJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KTsK
LSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAn
bG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1m
dW5jdGlvbiBpbnZva2VfaWlpaWkoaW5kZXgsYTEsYTIsYTMsYTQpIHsKLSAgdHJ5IHsKLSAgICBy
ZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQpOwotICB9IGNh
dGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1w
JykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9u
IGludm9rZV92aWlpaShpbmRleCxhMSxhMixhMyxhNCkgewotICB0cnkgewotICAgIE1vZHVsZVsi
ZHluQ2FsbF92aWlpaSJdKGluZGV4LGExLGEyLGEzLGE0KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAg
aWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0g
ICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBhc21QcmludEludCh4
LCB5KSB7Ci0gIE1vZHVsZS5wcmludCgnaW50ICcgKyB4ICsgJywnICsgeSk7Ly8gKyAnICcgKyBu
ZXcgRXJyb3IoKS5zdGFjayk7Ci19Ci1mdW5jdGlvbiBhc21QcmludEZsb2F0KHgsIHkpIHsKLSAg
TW9kdWxlLnByaW50KCdmbG9hdCAnICsgeCArICcsJyArIHkpOy8vICsgJyAnICsgbmV3IEVycm9y
KCkuc3RhY2spOwotfQotLy8gRU1TQ1JJUFRFTl9TVEFSVF9BU00KLXZhciBhc209KGZ1bmN0aW9u
KGdsb2JhbCxlbnYsYnVmZmVyKXsidXNlIGFzbSI7dmFyIGE9bmV3IGdsb2JhbC5JbnQ4QXJyYXko
YnVmZmVyKTt2YXIgYj1uZXcgZ2xvYmFsLkludDE2QXJyYXkoYnVmZmVyKTt2YXIgYz1uZXcgZ2xv
YmFsLkludDMyQXJyYXkoYnVmZmVyKTt2YXIgZD1uZXcgZ2xvYmFsLlVpbnQ4QXJyYXkoYnVmZmVy
KTt2YXIgZT1uZXcgZ2xvYmFsLlVpbnQxNkFycmF5KGJ1ZmZlcik7dmFyIGY9bmV3IGdsb2JhbC5V
aW50MzJBcnJheShidWZmZXIpO3ZhciBnPW5ldyBnbG9iYWwuRmxvYXQzMkFycmF5KGJ1ZmZlcik7
dmFyIGg9bmV3IGdsb2JhbC5GbG9hdDY0QXJyYXkoYnVmZmVyKTt2YXIgaT1lbnYuU1RBQ0tUT1B8
MDt2YXIgaj1lbnYuU1RBQ0tfTUFYfDA7dmFyIGs9ZW52LnRlbXBEb3VibGVQdHJ8MDt2YXIgbD1l
bnYuQUJPUlR8MDt2YXIgbT1lbnYuY3R0el9pOHwwO3ZhciBuPWVudi5jdGx6X2k4fDA7dmFyIG89
ZW52Ll9zdGRpbnwwO3ZhciBwPWVudi5fX1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9p
bmZvRXwwO3ZhciBxPWVudi5fX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZv
RXwwO3ZhciByPWVudi5fc3RkZXJyfDA7dmFyIHM9ZW52Ll9fX2ZzbXU4fDA7dmFyIHQ9ZW52Ll9z
dGRvdXR8MDt2YXIgdT1lbnYuX19fZHNvX2hhbmRsZXwwO3ZhciB2PStlbnYuTmFOO3ZhciB3PStl
bnYuSW5maW5pdHk7dmFyIHg9MDt2YXIgeT0wO3ZhciB6PTA7dmFyIEE9MDt2YXIgQj0wLEM9MCxE
PTAsRT0wLEY9MC4wLEc9MCxIPTAsST0wLEo9MC4wO3ZhciBLPTA7dmFyIEw9MDt2YXIgTT0wO3Zh
ciBOPTA7dmFyIE89MDt2YXIgUD0wO3ZhciBRPTA7dmFyIFI9MDt2YXIgUz0wO3ZhciBUPTA7dmFy
IFU9Z2xvYmFsLk1hdGguZmxvb3I7dmFyIFY9Z2xvYmFsLk1hdGguYWJzO3ZhciBXPWdsb2JhbC5N
YXRoLnNxcnQ7dmFyIFg9Z2xvYmFsLk1hdGgucG93O3ZhciBZPWdsb2JhbC5NYXRoLmNvczt2YXIg
Wj1nbG9iYWwuTWF0aC5zaW47dmFyIF89Z2xvYmFsLk1hdGgudGFuO3ZhciAkPWdsb2JhbC5NYXRo
LmFjb3M7dmFyIGFhPWdsb2JhbC5NYXRoLmFzaW47dmFyIGFiPWdsb2JhbC5NYXRoLmF0YW47dmFy
IGFjPWdsb2JhbC5NYXRoLmF0YW4yO3ZhciBhZD1nbG9iYWwuTWF0aC5leHA7dmFyIGFlPWdsb2Jh
bC5NYXRoLmxvZzt2YXIgYWY9Z2xvYmFsLk1hdGguY2VpbDt2YXIgYWc9Z2xvYmFsLk1hdGguaW11
bDt2YXIgYWg9ZW52LmFib3J0O3ZhciBhaT1lbnYuYXNzZXJ0O3ZhciBhaj1lbnYuYXNtUHJpbnRJ
bnQ7dmFyIGFrPWVudi5hc21QcmludEZsb2F0O3ZhciBhbD1lbnYubWluO3ZhciBhbT1lbnYuaW52
b2tlX3ZpaWlpaTt2YXIgYW49ZW52Lmludm9rZV92aWlpaWlpaTt2YXIgYW89ZW52Lmludm9rZV92
aTt2YXIgYXA9ZW52Lmludm9rZV92aWk7dmFyIGFxPWVudi5pbnZva2VfaWlpO3ZhciBhcj1lbnYu
aW52b2tlX2lpaWlpaTt2YXIgYXM9ZW52Lmludm9rZV9paTt2YXIgYXQ9ZW52Lmludm9rZV9paWlp
O3ZhciBhdT1lbnYuaW52b2tlX3ZpaWlpaWY7dmFyIGF2PWVudi5pbnZva2VfdmlpaTt2YXIgYXc9
ZW52Lmludm9rZV92aWlpaWlpaWk7dmFyIGF4PWVudi5pbnZva2Vfdjt2YXIgYXk9ZW52Lmludm9r
ZV9paWlpaWlpaWk7dmFyIGF6PWVudi5pbnZva2VfdmlpaWlpaWlpaTt2YXIgYUE9ZW52Lmludm9r
ZV92aWlpaWlpZjt2YXIgYUI9ZW52Lmludm9rZV92aWlpaWlpO3ZhciBhQz1lbnYuaW52b2tlX2lp
aWlpO3ZhciBhRD1lbnYuaW52b2tlX3ZpaWlpO3ZhciBhRT1lbnYuX2xsdm1fbGlmZXRpbWVfZW5k
O3ZhciBhRj1lbnYuX19zY2FuU3RyaW5nO3ZhciBhRz1lbnYuX3B0aHJlYWRfbXV0ZXhfbG9jazt2
YXIgYUg9ZW52Ll9fX2N4YV9lbmRfY2F0Y2g7dmFyIGFJPWVudi5fc3RydG91bGw7dmFyIGFKPWVu
di5fX2lzRmxvYXQ7dmFyIGFLPWVudi5fZmZsdXNoO3ZhciBhTD1lbnYuX19pc0xlYXBZZWFyO3Zh
ciBhTT1lbnYuX2Z3cml0ZTt2YXIgYU49ZW52Ll9zZW5kO3ZhciBhTz1lbnYuX2xsdm1fdW11bF93
aXRoX292ZXJmbG93X2kzMjt2YXIgYVA9ZW52Ll9pc3NwYWNlO3ZhciBhUT1lbnYuX3JlYWQ7dmFy
IGFSPWVudi5fX19jeGFfZ3VhcmRfYWJvcnQ7dmFyIGFTPWVudi5fbmV3bG9jYWxlO3ZhciBhVD1l
bnYuX19fZ3h4X3BlcnNvbmFsaXR5X3YwO3ZhciBhVT1lbnYuX3B0aHJlYWRfY29uZF93YWl0O3Zh
ciBhVj1lbnYuX19fY3hhX3JldGhyb3c7dmFyIGFXPWVudi5fX19yZXN1bWVFeGNlcHRpb247dmFy
IGFYPWVudi5fbGx2bV92YV9lbmQ7dmFyIGFZPWVudi5fdnNzY2FuZjt2YXIgYVo9ZW52Ll9zbnBy
aW50Zjt2YXIgYV89ZW52Ll9mZ2V0Yzt2YXIgYSQ9ZW52Ll9hdGV4aXQ7dmFyIGEwPWVudi5fX19j
eGFfZnJlZV9leGNlcHRpb247dmFyIGExPWVudi5fX1o4Y2F0Y2xvc2VQOF9ubF9jYXRkO3ZhciBh
Mj1lbnYuX19fc2V0RXJyTm87dmFyIGEzPWVudi5faXN4ZGlnaXQ7dmFyIGE0PWVudi5fZXhpdDt2
YXIgYTU9ZW52Ll9zcHJpbnRmO3ZhciBhNj1lbnYuX19fY3R5cGVfYl9sb2M7dmFyIGE3PWVudi5f
ZnJlZWxvY2FsZTt2YXIgYTg9ZW52Ll9fWjdjYXRvcGVuUEtjaTt2YXIgYTk9ZW52Ll9hc3ByaW50
Zjt2YXIgYmE9ZW52Ll9fX2N4YV9pc19udW1iZXJfdHlwZTt2YXIgYmI9ZW52Ll9fX2N4YV9kb2Vz
X2luaGVyaXQ7dmFyIGJjPWVudi5fX19jeGFfZ3VhcmRfYWNxdWlyZTt2YXIgYmQ9ZW52Ll9fX2xv
Y2FsZV9tYl9jdXJfbWF4O3ZhciBiZT1lbnYuX19fY3hhX2JlZ2luX2NhdGNoO3ZhciBiZj1lbnYu
X3JlY3Y7dmFyIGJnPWVudi5fX3BhcnNlSW50NjQ7dmFyIGJoPWVudi5fX1pTdDE4dW5jYXVnaHRf
ZXhjZXB0aW9udjt2YXIgYmk9ZW52Ll9fX2N4YV9jYWxsX3VuZXhwZWN0ZWQ7dmFyIGJqPWVudi5f
X2V4aXQ7dmFyIGJrPWVudi5fc3RyZnRpbWU7dmFyIGJsPWVudi5fX19jeGFfdGhyb3c7dmFyIGJt
PWVudi5fbGx2bV9laF9leGNlcHRpb247dmFyIGJuPWVudi5fcHJlYWQ7dmFyIGJvPWVudi5fX2Fy
cmF5U3VtO3ZhciBicD1lbnYuX2xvZzt2YXIgYnE9ZW52Ll9fX2N4YV9maW5kX21hdGNoaW5nX2Nh
dGNoO3ZhciBicj1lbnYuX19mb3JtYXRTdHJpbmc7dmFyIGJzPWVudi5fcHRocmVhZF9jb25kX2Jy
b2FkY2FzdDt2YXIgYnQ9ZW52Ll9fWlN0OXRlcm1pbmF0ZXY7dmFyIGJ1PWVudi5fcHRocmVhZF9t
dXRleF91bmxvY2s7dmFyIGJ2PWVudi5fc2Jyazt2YXIgYnc9ZW52Ll9fX2Vycm5vX2xvY2F0aW9u
O3ZhciBieD1lbnYuX3N0cmVycm9yO3ZhciBieT1lbnYuX2xsdm1fbGlmZXRpbWVfc3RhcnQ7dmFy
IGJ6PWVudi5fX19jeGFfZ3VhcmRfcmVsZWFzZTt2YXIgYkE9ZW52Ll91bmdldGM7dmFyIGJCPWVu
di5fdXNlbG9jYWxlO3ZhciBiQz1lbnYuX3ZzbnByaW50Zjt2YXIgYkQ9ZW52Ll9zc2NhbmY7dmFy
IGJFPWVudi5fc3lzY29uZjt2YXIgYkY9ZW52Ll9mcmVhZDt2YXIgYkc9ZW52Ll9hYm9ydDt2YXIg
Ykg9ZW52Ll9pc2RpZ2l0O3ZhciBiST1lbnYuX3N0cnRvbGw7dmFyIGJKPWVudi5fX2FkZERheXM7
dmFyIGJLPWVudi5fZmxvb3I7dmFyIGJMPWVudi5fX3JlYWxseU5lZ2F0aXZlO3ZhciBiTT1lbnYu
X19aN2NhdGdldHNQOF9ubF9jYXRkaWlQS2M7dmFyIGJOPWVudi5fd3JpdGU7dmFyIGJPPWVudi5f
X19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uO3ZhciBiUD1lbnYuX19fY3hhX3B1cmVfdmlydHVhbDt2
YXIgYlE9ZW52Ll92YXNwcmludGY7dmFyIGJSPWVudi5fX19jdHlwZV90b3VwcGVyX2xvYzt2YXIg
YlM9ZW52Ll9fX2N0eXBlX3RvbG93ZXJfbG9jO3ZhciBiVD1lbnYuX3B3cml0ZTt2YXIgYlU9ZW52
Ll9zdHJlcnJvcl9yO3ZhciBiVj1lbnYuX3RpbWU7Ci0vLyBFTVNDUklQVEVOX1NUQVJUX0ZVTkNT
Ci1mdW5jdGlvbiBjYyhhKXthPWF8MDt2YXIgYj0wO2I9aTtpPWkrYXwwO2k9aSs3Pj4zPDwzO3Jl
dHVybiBifDB9ZnVuY3Rpb24gY2QoKXtyZXR1cm4gaXwwfWZ1bmN0aW9uIGNlKGEpe2E9YXwwO2k9
YX1mdW5jdGlvbiBjZihhLGIpe2E9YXwwO2I9YnwwO2lmKCh4fDApPT0wKXt4PWE7eT1ifX1mdW5j
dGlvbiBjZyhiKXtiPWJ8MDthW2tdPWFbYl07YVtrKzF8MF09YVtiKzF8MF07YVtrKzJ8MF09YVti
KzJ8MF07YVtrKzN8MF09YVtiKzN8MF19ZnVuY3Rpb24gY2goYil7Yj1ifDA7YVtrXT1hW2JdO2Fb
aysxfDBdPWFbYisxfDBdO2FbaysyfDBdPWFbYisyfDBdO2FbayszfDBdPWFbYiszfDBdO2Fbays0
fDBdPWFbYis0fDBdO2Fbays1fDBdPWFbYis1fDBdO2Fbays2fDBdPWFbYis2fDBdO2Fbays3fDBd
PWFbYis3fDBdfWZ1bmN0aW9uIGNpKGEpe2E9YXwwO0s9YX1mdW5jdGlvbiBjaihhKXthPWF8MDtM
PWF9ZnVuY3Rpb24gY2soYSl7YT1hfDA7TT1hfWZ1bmN0aW9uIGNsKGEpe2E9YXwwO049YX1mdW5j
dGlvbiBjbShhKXthPWF8MDtPPWF9ZnVuY3Rpb24gY24oYSl7YT1hfDA7UD1hfWZ1bmN0aW9uIGNv
KGEpe2E9YXwwO1E9YX1mdW5jdGlvbiBjcChhKXthPWF8MDtSPWF9ZnVuY3Rpb24gY3EoYSl7YT1h
fDA7Uz1hfWZ1bmN0aW9uIGNyKGEpe2E9YXwwO1Q9YX1mdW5jdGlvbiBjcygpe2NbcSs4Pj4yXT0y
NTA7Y1txKzEyPj4yXT0xMjg7Y1txKzE2Pj4yXT02MjtjW3ErMjA+PjJdPTE1MDtjW3ErMjQ+PjJd
PTg7Y1txKzI4Pj4yXT0xMDtjW3ErMzI+PjJdPTI7Y1txKzM2Pj4yXT0yO2NbcCs4Pj4yXT0yNTA7
Y1twKzEyPj4yXT0yNDQ7Y1twKzE2Pj4yXT02MjtjW3ArMjA+PjJdPTE1MDtjW3ArMjQ+PjJdPTg7
Y1twKzI4Pj4yXT0yNjtjW3ArMzI+PjJdPTQ7Y1twKzM2Pj4yXT04O2NbMjAzNl09cCs4O2NbMjAz
OF09cCs4O2NbMjA0MF09cSs4O2NbMjA0NF09cSs4O2NbMjA0OF09cSs4O2NbMjA1Ml09cSs4O2Nb
MjA1Nl09cSs4O2NbMjA2MF09cCs4O2NbMjA5NF09cSs4O2NbMjA5OF09cSs4O2NbMjE2Ml09cSs4
O2NbMjE2Nl09cSs4O2NbMjE4Nl09cCs4O2NbMjE4OF09cSs4O2NbMjIyNF09cSs4O2NbMjIyOF09
cSs4O2NbMjI2NF09cSs4O2NbMjI2OF09cSs4O2NbMjI4OF09cCs4O2NbMjI5MF09cCs4O2NbMjI5
Ml09cSs4O2NbMjI5Nl09cSs4O2NbMjMwMF09cSs4O2NbMjMwNF09cCs4O2NbMjMwNl09cCs4O2Nb
MjMwOF09cCs4O2NbMjMxMF09cCs4O2NbMjMxMl09cCs4O2NbMjMxNF09cCs4O2NbMjMxNl09cCs4
O2NbMjM0Ml09cSs4O2NbMjM0Nl09cCs4O2NbMjM0OF09cSs4O2NbMjM1Ml09cSs4O2NbMjM1Nl09
cSs4O2NbMjM2MF09cCs4O2NbMjM2Ml09cCs4O2NbMjM2NF09cCs4O2NbMjM2Nl09cCs4O2NbMjQw
MF09cCs4O2NbMjQwMl09cCs4O2NbMjQwNF09cCs4O2NbMjQwNl09cSs4O2NbMjQxMF09cSs4O2Nb
MjQxNF09cSs4O2NbMjQxOF09cSs4O2NbMjQyMl09cSs4O2NbMjQyNl09cSs4fWZ1bmN0aW9uIGN0
KGEpe2E9YXwwO3ZhciBiPTAsZD0wO2I9Y1thPj4yXXwwO2lmKChifDApPT0wKXtyZXR1cm59ZD1h
KzR8MDthPWNbZD4+Ml18MDtpZigoYnwwKSE9KGF8MCkpe2NbZD4+Ml09YSsofigoYS04KygtYnww
KXwwKT4+PjMpPDwzKX1rUyhiKTtyZXR1cm59ZnVuY3Rpb24gY3UoYSxiLGQpe2E9YXwwO2I9Ynww
O2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAuMCx3PTAseD0wLHk9MC4wLHo9MC4wO2Q9aTtpPWkrMjR8MDtlPWR8
MDtmPWQrOHwwO2c9ZnwwO2NbZz4+Ml09MDtqPWYrNHwwO2Nbaj4+Ml09MDtrPWYrOHwwO2Nbaz4+
Ml09MDtsPWItYXwwO209bD4+Mztkb3tpZigobXwwKT09MCl7bj0wO289MH1lbHNle2lmKG0+Pj4w
PjUzNjg3MDkxMSl7aXIoZil9cD1rTyhsKXwwO2Nbaj4+Ml09cDtjW2c+PjJdPXA7Y1trPj4yXT1w
KyhtPDwzKTtpZigoYXwwKT09KGJ8MCkpe249cDtvPXA7YnJlYWt9ZWxzZXtxPWE7cj1wfWRve2lm
KChyfDApPT0wKXtzPTB9ZWxzZXtoW3I+PjNdPStoW3E+PjNdO3M9Y1tqPj4yXXwwfXI9cys4fDA7
Y1tqPj4yXT1yO3E9cSs4fDA7fXdoaWxlKChxfDApIT0oYnwwKSk7bj1jW2c+PjJdfDA7bz1yfX13
aGlsZSgwKTtjVShuLG8sZSk7ZT1jW2c+PjJdfDA7bz1jW2o+PjJdfDA7TDIzOmRve2lmKChlfDAp
PT0ob3wwKSl7dD1lfWVsc2V7bj1lO3doaWxlKDEpe3U9bis4fDA7aWYoKHV8MCk9PShvfDApKXt0
PWU7YnJlYWsgTDIzfXY9K2hbbj4+M107aWYodj09K2hbdT4+M10pe2JyZWFrfWVsc2V7bj11fX1p
ZigobnwwKT09KG98MCkpe3Q9ZTticmVha31lbHNle3c9dTt4PW47eT12fUwyODp3aGlsZSgxKXty
PXc7ZG97cj1yKzh8MDtpZigocnwwKT09KG98MCkpe2JyZWFrIEwyOH16PStoW3I+PjNdO313aGls
ZSh5PT16KTtiPXgrOHwwO2hbYj4+M109ejt3PXI7eD1iO3k9en10PWNbZz4+Ml18MH19d2hpbGUo
MCk7aWYoKHR8MCk9PTApe2k9ZDtyZXR1cm59Zz1jW2o+PjJdfDA7aWYoKHR8MCkhPShnfDApKXtj
W2o+PjJdPWcrKH4oKGctOCsoLXR8MCl8MCk+Pj4zKTw8Myl9a1ModCk7aT1kO3JldHVybn1mdW5j
dGlvbiBjdihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAuMCx4PTAuMCx5
PTAsej0wLjA7ZD1pO2k9aSsyNHwwO2U9ZHwwO2Y9ZCs4fDA7Zz1mfDA7Y1tnPj4yXT0wO2o9Zis0
fDA7Y1tqPj4yXT0wO2s9Zis4fDA7Y1trPj4yXT0wO2w9Yi1hfDA7bT1sPj4zO2Rve2lmKChtfDAp
PT0wKXtuPTA7bz0wfWVsc2V7aWYobT4+PjA+NTM2ODcwOTExKXtpcihmKX1wPWtPKGwpfDA7Y1tq
Pj4yXT1wO2NbZz4+Ml09cDtjW2s+PjJdPXArKG08PDMpO2lmKChhfDApPT0oYnwwKSl7bj1wO289
cDticmVha31lbHNle3E9YTtyPXB9ZG97aWYoKHJ8MCk9PTApe3M9MH1lbHNle2hbcj4+M109K2hb
cT4+M107cz1jW2o+PjJdfDB9cj1zKzh8MDtjW2o+PjJdPXI7cT1xKzh8MDt9d2hpbGUoKHF8MCkh
PShifDApKTtuPWNbZz4+Ml18MDtvPXJ9fXdoaWxlKDApO2NVKG4sbyxlKTtlPWNbZz4+Ml18MDtv
PWNbaj4+Ml18MDtMNTg6ZG97aWYoKGV8MCk9PShvfDApKXt0PWU7dT02Mn1lbHNle249ZTt3aGls
ZSgxKXtyPW4rOHwwO2lmKChyfDApPT0ob3wwKSl7dj1lO2JyZWFrIEw1OH1pZigraFtuPj4zXT09
K2hbcj4+M10pe3Q9bjt1PTYyO2JyZWFrfWVsc2V7bj1yfX19fXdoaWxlKDApO2Rve2lmKCh1fDAp
PT02Mil7aWYoKHR8MCk9PShvfDApKXt2PWU7YnJlYWt9bj10KzE2fDA7aWYoKG58MCk9PShvfDAp
KXt2PWU7YnJlYWt9cj1uO249dDt3PStoW3Q+PjNdO3doaWxlKDEpe3g9K2hbcj4+M107aWYodz09
eCl7eT1uO3o9d31lbHNle2I9bis4fDA7aFtiPj4zXT14O3k9Yjt6PXh9Yj1yKzh8MDtpZigoYnww
KT09KG98MCkpe2JyZWFrfWVsc2V7cj1iO249eTt3PXp9fXY9Y1tnPj4yXXwwfX13aGlsZSgwKTtp
ZigodnwwKT09MCl7aT1kO3JldHVybn1nPWNbaj4+Ml18MDtpZigodnwwKSE9KGd8MCkpe2Nbaj4+
Ml09ZysofigoZy04KygtdnwwKXwwKT4+PjMpPDwzKX1rUyh2KTtpPWQ7cmV0dXJufWZ1bmN0aW9u
IGN3KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxB
PTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89
MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9
MCxhYj0wO2Q9aTtpPWkrOHwwO2U9ZHwwO2Y9ZTtnPWk7aT1pKzh8MDtqPWc7az1pO2k9aSsxfDA7
aT1pKzc+PjM8PDM7bD1pO2k9aSs4fDA7bT1pO2k9aSs4fDA7bj1pO2k9aSsxfDA7aT1pKzc+PjM8
PDM7bz1pO2k9aSsyNHwwO3A9aTtpPWkrOHwwO3E9aTtpPWkrOHwwO3I9YjtzPXItYT4+MztoW3A+
PjNdPTAuMDt0PW98MDt1PW8rNHwwO3Y9bys4fDA7ayQob3wwLDAsMjQpO2Rve2lmKChzfDApPT0w
KXt3PTA7eD1vKzE2fDA7eT0wO3o9MDtBPTA7Qj0wfWVsc2V7Y08obyxzLHApO0M9Y1t1Pj4yXXww
O0Q9bysxNnwwO0U9Y1tEPj4yXXwwO0Y9Y1t2Pj4yXXwwO0c9QysoRT4+Pjk8PDIpfDA7aWYoKEZ8
MCk9PShDfDApKXt3PTA7eD1EO3k9Rjt6PUU7QT1DO0I9RzticmVha313PShjW0c+PjJdfDApKygo
RSY1MTEpPDwzKXwwO3g9RDt5PUY7ej1FO0E9QztCPUd9fXdoaWxlKDApO2lmKChhfDApPT0oYnww
KSl7SD1BO0k9ejtKPXl9ZWxzZXt5PWE7YT13O3c9Qjt3aGlsZSgxKXtCPWE7ej0oY1t3Pj4yXXww
KSs0MDk2LUI+PjM7QT15O3A9ci1BPj4zO2lmKChwfDApPih6fDApKXtLPXkrKHo8PDMpfDA7TD16
fWVsc2V7Sz1iO0w9cH1rXyhhfDAseXwwLEstQXwwKTtkb3tpZigoTHwwKT09MCl7TT1hO049d31l
bHNle0E9KEItKGNbdz4+Ml18MCk+PjMpK0x8MDtpZigoQXwwKT4wKXtwPXcrKCgoQXwwKS81MTJ8
MCk8PDIpfDA7TT0oY1twPj4yXXwwKSsoKChBfDApJTUxMnwwKTw8Myl8MDtOPXA7YnJlYWt9ZWxz
ZXtwPTUxMS1BfDA7QT13KygoKHB8MCkvLTUxMnwwKTw8Mil8MDtNPShjW0E+PjJdfDApKyg1MTEt
KChwfDApJTUxMnwwKTw8Myl8MDtOPUE7YnJlYWt9fX13aGlsZSgwKTtpZigoS3wwKT09KGJ8MCkp
e2JyZWFrfWVsc2V7eT1LO2E9TTt3PU59fUg9Y1t1Pj4yXXwwO0k9Y1t4Pj4yXXwwO0o9Y1t2Pj4y
XXwwfU49SCsoST4+Pjk8PDIpfDA7aWYoKEp8MCk9PShIfDApKXtKPW8rMjB8MDtPPTA7UD0wO1E9
MDtSPTA7Uz1KO1Q9SCsoKEkrKGNbSj4+Ml18MCl8MCk+Pj45PDwyKXwwfWVsc2V7Sj1vKzIwfDA7
bz1JKyhjW0o+PjJdfDApfDA7dz1IKyhvPj4+OTw8Mil8MDtPPShjW3c+PjJdfDApKygobyY1MTEp
PDwzKXwwO1A9MDtRPShjW04+PjJdfDApKygoSSY1MTEpPDwzKXwwO1I9MDtTPUo7VD13fWNbbD4+
Ml09UnxOO2NbbCs0Pj4yXT1RO2NbbT4+Ml09UHxUO2NbbSs0Pj4yXT1PO2NLKGwsbSxuKTtuPWNb
dT4+Ml18MDttPWNbeD4+Ml18MDtsPW4rKG0+Pj45PDwyKXwwO2lmKChjW3Y+PjJdfDApPT0obnww
KSl7VT0wO1Y9MDtXPTA7WD0wO1k9bisoKG0rKGNbUz4+Ml18MCl8MCk+Pj45PDwyKXwwfWVsc2V7
Tz1tKyhjW1M+PjJdfDApfDA7VD1uKyhPPj4+OTw8Mil8MDtVPShjW1Q+PjJdfDApKygoTyY1MTEp
PDwzKXwwO1Y9MDtXPShjW2w+PjJdfDApKygobSY1MTEpPDwzKXwwO1g9MDtZPVR9Y1tlPj4yXT1Y
fGw7Y1tlKzQ+PjJdPVc7Y1tnPj4yXT1WfFk7Y1tnKzQ+PjJdPVU7Y0kocSxmLGosayk7az1jW3U+
PjJdfDA7aj1jW3g+PjJdfDA7Zj1rKyhqPj4+OTw8Mil8MDtxPWNbdj4+Ml18MDtpZigocXwwKT09
KGt8MCkpe1o9MDtfPTB9ZWxzZXtVPShjW1M+PjJdfDApK2p8MDtaPShjW2srKFU+Pj45PDwyKT4+
Ml18MCkrKChVJjUxMSk8PDMpfDA7Xz0oY1tmPj4yXXwwKSsoKGomNTExKTw8Myl8MH1qPWY7Zj1f
O0wxMTI6d2hpbGUoMSl7Xz1mO2Rve2lmKChffDApPT0oWnwwKSl7YnJlYWsgTDExMn1fPV8rOHww
O313aGlsZSgoXy0oY1tqPj4yXXwwKXwwKSE9NDA5Nik7Xz1qKzR8MDtqPV87Zj1jW18+PjJdfDB9
Y1tTPj4yXT0wO1M9cS1rPj4yO2lmKFM+Pj4wPjIpe2Y9azt3aGlsZSgxKXtrUyhjW2Y+PjJdfDAp
O2o9KGNbdT4+Ml18MCkrNHwwO2NbdT4+Ml09ajtaPWNbdj4+Ml18MDtfPVotaj4+MjtpZihfPj4+
MD4yKXtmPWp9ZWxzZXskPV87YWE9ajthYj1aO2JyZWFrfX19ZWxzZXskPVM7YWE9azthYj1xfXN3
aXRjaCgkfDApe2Nhc2UgMTp7Y1t4Pj4yXT0yNTY7YnJlYWt9O2Nhc2UgMjp7Y1t4Pj4yXT01MTI7
YnJlYWt9O2RlZmF1bHQ6e319ZG97aWYoKGFhfDApIT0oYWJ8MCkpe3g9YWE7ZG97a1MoY1t4Pj4y
XXwwKTt4PXgrNHwwO313aGlsZSgoeHwwKSE9KGFifDApKTt4PWNbdT4+Ml18MDskPWNbdj4+Ml18
MDtpZigoeHwwKT09KCR8MCkpe2JyZWFrfWNbdj4+Ml09JCsofigoJC00KygteHwwKXwwKT4+PjIp
PDwyKX19d2hpbGUoMCk7dj1jW3Q+PjJdfDA7aWYoKHZ8MCk9PTApe2k9ZDtyZXR1cm59a1Modik7
aT1kO3JldHVybn1mdW5jdGlvbiBjeChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLjAseT0wLHo9MDtkPWk7aT1pKzQ4fDA7ZT1kfDA7Zj1kKzh8MDtnPWQrMTZ8MDtq
PWQrMjR8MDtrPWQrMzJ8MDtsPWt8MDttPWs7Y1tsPj4yXT1tO249ays0fDA7Y1tuPj4yXT1tO289
ays4fDA7Y1tvPj4yXT0wO2lmKChhfDApPT0oYnwwKSl7cD1tO3E9MH1lbHNle2s9YTthPW07cj0w
O3doaWxlKDEpe3M9a08oMTYpfDA7dD1zO3U9cys4fDA7aWYoKHV8MCkhPTApe2hbdT4+M109K2hb
az4+M119Y1thKzQ+PjJdPXQ7Y1tzPj4yXT1jW2w+PjJdO2NbbD4+Ml09dDtjW3MrND4+Ml09bTt2
PShjW28+PjJdfDApKzF8MDtjW28+PjJdPXY7cz1rKzh8MDtpZigoc3wwKT09KGJ8MCkpe2JyZWFr
fWVsc2V7az1zO2E9dDtyPXZ9fXA9Y1tuPj4yXXwwO3E9dn1jW2U+PjJdPXA7Y1tmPj4yXT1tO2NK
KGcsZSxmLHEsaik7aj1jW24+PjJdfDA7aWYoKGp8MCkhPShtfDApKXtxPWo7d2hpbGUoMSl7aj1j
W3ErND4+Ml18MDtMMTUwOmRve2lmKChqfDApPT0obXwwKSl7dz1tfWVsc2V7eD0raFtxKzg+PjNd
O2Y9ajt3aGlsZSgxKXtpZih4IT0raFtmKzg+PjNdKXt3PWY7YnJlYWsgTDE1MH1lPWNbZis0Pj4y
XXwwO2lmKChlfDApPT0obXwwKSl7dz1tO2JyZWFrfWVsc2V7Zj1lfX19fXdoaWxlKDApO2lmKChq
fDApPT0od3wwKSl7eT1qfWVsc2V7Zj0oY1t3Pj4yXXwwKSs0fDA7ZT1qfDA7Y1soY1tlPj4yXXww
KSs0Pj4yXT1jW2Y+PjJdO2NbY1tmPj4yXT4+Ml09Y1tlPj4yXTtlPWo7d2hpbGUoMSl7Zj1jW2Ur
ND4+Ml18MDtjW28+PjJdPShjW28+PjJdfDApLTE7a1MoZSk7aWYoKGZ8MCk9PSh3fDApKXt5PXc7
YnJlYWt9ZWxzZXtlPWZ9fX1pZigoeXwwKT09KG18MCkpe2JyZWFrfWVsc2V7cT15fX19aWYoKGNb
bz4+Ml18MCk9PTApe2k9ZDtyZXR1cm59eT1jW24+PjJdfDA7bj0oY1tsPj4yXXwwKSs0fDA7bD15
fDA7Y1soY1tsPj4yXXwwKSs0Pj4yXT1jW24+PjJdO2NbY1tuPj4yXT4+Ml09Y1tsPj4yXTtjW28+
PjJdPTA7aWYoKHl8MCk9PShtfDApKXtpPWQ7cmV0dXJufWVsc2V7ej15fXdoaWxlKDEpe3k9Y1t6
KzQ+PjJdfDA7a1Moeik7aWYoKHl8MCk9PShtfDApKXticmVha31lbHNle3o9eX19aT1kO3JldHVy
bn1mdW5jdGlvbiBjeShhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTA7ZD1pO2k9aSszMnwwO2U9
ZHwwO2Y9ZCs4fDA7Zz1kKzE2fDA7aj1nfDA7az1nKzR8MDtjW2s+PjJdPTA7bD1nKzh8MDtjW2w+
PjJdPTA7bT1rO2s9Z3wwO2Nbaz4+Ml09bTtpZigoYXwwKT09KGJ8MCkpe249MDtjRShqLG4pO2k9
ZDtyZXR1cm59bz1mfDA7cD1nKzR8MDtnPWE7ZG97Y1tvPj4yXT1tO2E9Y0goaixmLGUsZyl8MDtp
ZigoY1thPj4yXXwwKT09MCl7cT1rTygyNCl8MDtyPXErMTZ8MDtpZigocnwwKSE9MCl7aFtyPj4z
XT0raFtnPj4zXX1yPWNbZT4+Ml18MDtzPXE7Y1txPj4yXT0wO2NbcSs0Pj4yXT0wO2NbcSs4Pj4y
XT1yO2NbYT4+Ml09cztyPWNbY1trPj4yXT4+Ml18MDtpZigocnwwKT09MCl7dD1zfWVsc2V7Y1tr
Pj4yXT1yO3Q9Y1thPj4yXXwwfWNHKGNbcD4+Ml18MCx0KTtjW2w+PjJdPShjW2w+PjJdfDApKzF9
Zz1nKzh8MDt9d2hpbGUoKGd8MCkhPShifDApKTtuPWNbcD4+Ml18MDtjRShqLG4pO2k9ZDtyZXR1
cm59ZnVuY3Rpb24gY3ooYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MDtkPWk7aT1pKzMyfDA7ZT1kfDA7
Zj1kKzh8MDtnPWQrMTZ8MDtqPWd8MDtrPWcrNHwwO2Nbaz4+Ml09MDtsPWcrOHwwO2NbbD4+Ml09
MDttPWs7bj1nfDA7Y1tuPj4yXT1tO2Rve2lmKChhfDApIT0oYnwwKSl7bz1mfDA7cD1nKzR8MDtx
PWE7ZG97Y1tvPj4yXT1tO3I9Y0MoaixmLGUscSl8MDtzPWtPKDI0KXwwO3Q9cysxNnwwO2lmKCh0
fDApIT0wKXtoW3Q+PjNdPStoW3E+PjNdfXQ9Y1tlPj4yXXwwO3U9cztjW3M+PjJdPTA7Y1tzKzQ+
PjJdPTA7Y1tzKzg+PjJdPXQ7Y1tyPj4yXT11O3Q9Y1tjW24+PjJdPj4yXXwwO2lmKCh0fDApPT0w
KXt2PXV9ZWxzZXtjW24+PjJdPXQ7dj1jW3I+PjJdfDB9Y0coY1twPj4yXXwwLHYpO2NbbD4+Ml09
KGNbbD4+Ml18MCkrMTtxPXErOHwwO313aGlsZSgocXwwKSE9KGJ8MCkpO3E9Y1tuPj4yXXwwO2lm
KChxfDApPT0obXwwKSl7YnJlYWt9cD1rO289Zys0fDA7cj1xO0wyMDI6d2hpbGUoMSl7cT1yfDA7
dD1yKzR8MDt1PXIrMTZ8MDt3aGlsZSgxKXt3PWNbdD4+Ml18MDtpZigod3wwKT09MCl7cz1xO3do
aWxlKDEpe3g9Y1tzKzg+PjJdfDA7aWYoKHN8MCk9PShjW3g+PjJdfDApKXt5PXg7YnJlYWt9ZWxz
ZXtzPXh9fX1lbHNle3M9dzt3aGlsZSgxKXt4PWNbcz4+Ml18MDtpZigoeHwwKT09MCl7eT1zO2Jy
ZWFrfWVsc2V7cz14fX19cz15O2lmKCh5fDApPT0ocHwwKSl7ej1vO0E9MjEzO2JyZWFrIEwyMDJ9
aWYoK2hbdT4+M10hPStoW3krMTY+PjNdKXticmVha314PWNbeSs0Pj4yXXwwO2lmKCh4fDApPT0w
KXtCPXk7d2hpbGUoMSl7Qz1jW0IrOD4+Ml18MDtpZigoQnwwKT09KGNbQz4+Ml18MCkpe0Q9Qzti
cmVha31lbHNle0I9Q319fWVsc2V7Qj14O3doaWxlKDEpe0M9Y1tCPj4yXXwwO2lmKChDfDApPT0w
KXtEPUI7YnJlYWt9ZWxzZXtCPUN9fX1pZigoY1tuPj4yXXwwKT09KHN8MCkpe2Nbbj4+Ml09RH1j
W2w+PjJdPShjW2w+PjJdfDApLTE7Y0IoY1tvPj4yXXwwLHkpO2tTKHkpfWlmKCh3fDApPT0wKXt1
PXE7d2hpbGUoMSl7dD1jW3UrOD4+Ml18MDtpZigodXwwKT09KGNbdD4+Ml18MCkpe0U9dDticmVh
a31lbHNle3U9dH19fWVsc2V7dT13O3doaWxlKDEpe3E9Y1t1Pj4yXXwwO2lmKChxfDApPT0wKXtF
PXU7YnJlYWt9ZWxzZXt1PXF9fX1pZigoRXwwKT09KHB8MCkpe3o9bztBPTIxNDticmVha31lbHNl
e3I9RX19aWYoKEF8MCk9PTIxNCl7Rj1jW3o+PjJdfDA7Rz1GO2NFKGosRyk7aT1kO3JldHVybn1l
bHNlIGlmKChBfDApPT0yMTMpe0Y9Y1t6Pj4yXXwwO0c9RjtjRShqLEcpO2k9ZDtyZXR1cm59fX13
aGlsZSgwKTt6PWcrNHwwO0Y9Y1t6Pj4yXXwwO0c9RjtjRShqLEcpO2k9ZDtyZXR1cm59ZnVuY3Rp
b24gY0EoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MC4wLGc9MCxqPTAsaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLjAseD0wLHk9MCx6PTAuMCxB
PTAsQj0wLjAsQz0wLEQ9MCxFPTAsRj0wLjAsRz0wLEg9MCxJPTAuMCxKPTAuMCxMPTAsTT0wLE49
MCxPPTAsUD0wO2I9aTtpPWkrMjR8MDtkPWJ8MDtlPWIrOHwwO2Y9KyhhfDApO2c9fn4rVSgrKDE5
OTMxNTY4LjU2OTMyNDE3My8oZiooK2FlKCtmKS8uNjkzMTQ3MTgwNTU5OTQ1MykpKSk7aj1hPDwx
O2s9Y1syNDQ2XXwwO2w9Y1syNDQ3XXwwO2lmKChrfDApIT0obHwwKSl7Y1syNDQ3XT1sKyh+KChs
LTgrKC1rfDApfDApPj4+Myk8PDMpfWs9ZXwwO2Nbaz4+Ml09MDtsPWUrNHwwO2NbbD4+Ml09MDtt
PWUrOHwwO2NbbT4+Ml09MDtpZigoanwwKT09MCl7bj0wfWVsc2V7aWYoaj4+PjA+NTM2ODcwOTEx
KXtpcihlKX1lPWtPKGE8PDQpfDA7Y1tsPj4yXT1lO2Nbaz4+Ml09ZTtjW20+PjJdPWUrKGo8PDMp
O209ajtvPWU7ZG97aWYoKG98MCk9PTApe3A9MH1lbHNle2hbbz4+M109MC4wO3A9Y1tsPj4yXXww
fW89cCs4fDA7Y1tsPj4yXT1vO209bS0xfDA7fXdoaWxlKChtfDApIT0wKTtuPWNbaz4+Ml18MH1t
PW4rKGo8PDMpfDA7bz1uKyhhPDwzKXwwO2lmKChhfDApIT0wKXtwPW47Zj0wLjA7d2hpbGUoMSl7
ZT1wKzh8MDtoW3A+PjNdPWY7aWYoKGV8MCk9PShvfDApKXticmVha31lbHNle3A9ZTtmPWYrMS4w
fX19aWYoKGp8MCkhPShhfDApKXtqPW87Zj0wLjA7d2hpbGUoMSl7bz1qKzh8MDtoW2o+PjNdPWY7
aWYoKG98MCk9PShtfDApKXticmVha31lbHNle2o9bztmPWYrMS4wfX19Y0YobixtKTtpZigoZ3ww
KT4wKXtqPWE8PDQ7YT1qPj4zO289YU8oYXwwLDgpfDA7cD1uO2lmKEspe2U9Zzt3aGlsZSgxKXtx
PWUtMXwwO3I9a1AoLTEpfDA7cz1yO2tZKHJ8MCxwfDAsail8MDt0PXMrKGE8PDMpfDA7Y1Uocyx0
LGQpO0wyNjg6ZG97aWYoKHN8MCkhPSh0fDApKXt1PXM7d2hpbGUoMSl7dj11Kzh8MDtpZigodnww
KT09KHR8MCkpe2JyZWFrIEwyNjh9dz0raFt1Pj4zXTtpZih3PT0raFt2Pj4zXSl7YnJlYWt9ZWxz
ZXt1PXZ9fWlmKCh1fDApPT0odHwwKSl7YnJlYWt9ZWxzZXt4PXY7eT11O3o9d313aGlsZSgxKXtB
PXg7ZG97QT1BKzh8MDtpZigoQXwwKT09KHR8MCkpe2JyZWFrIEwyNjh9Qj0raFtBPj4zXTt9d2hp
bGUoej09Qik7Qz15Kzh8MDtoW0M+PjNdPUI7eD1BO3k9Qzt6PUJ9fX13aGlsZSgwKTtpZigocnww
KSE9MCl7a1Qocil9aWYoKHF8MCk+MCl7ZT1xfWVsc2V7RD1nO2JyZWFrfX19ZWxzZXtlPWc7d2hp
bGUoMSl7eT1lLTF8MDt4PWtQKG8pfDA7dj14O2tZKHh8MCxwfDAsail8MDt0PXYrKGE8PDMpfDA7
Y1Uodix0LGQpO0wyODc6ZG97aWYoKHZ8MCkhPSh0fDApKXtzPXY7d2hpbGUoMSl7RT1zKzh8MDtp
ZigoRXwwKT09KHR8MCkpe2JyZWFrIEwyODd9Rj0raFtzPj4zXTtpZihGPT0raFtFPj4zXSl7YnJl
YWt9ZWxzZXtzPUV9fWlmKChzfDApPT0odHwwKSl7YnJlYWt9ZWxzZXtHPUU7SD1zO0k9Rn13aGls
ZSgxKXt1PUc7ZG97dT11Kzh8MDtpZigodXwwKT09KHR8MCkpe2JyZWFrIEwyODd9Sj0raFt1Pj4z
XTt9d2hpbGUoST09Sik7QT1IKzh8MDtoW0E+PjNdPUo7Rz11O0g9QTtJPUp9fX13aGlsZSgwKTtp
ZigoeHwwKSE9MCl7a1QoeCl9aWYoKHl8MCk+MCl7ZT15fWVsc2V7RD1nO2JyZWFrfX19d2hpbGUo
MSl7ZT1ELTF8MDtjdShuLG0sZSk7aWYoKGV8MCk+MCl7RD1lfWVsc2V7TD1nO2JyZWFrfX13aGls
ZSgxKXtEPUwtMXwwO2N2KG4sbSxEKTtpZigoRHwwKT4wKXtMPUR9ZWxzZXtNPWc7YnJlYWt9fXdo
aWxlKDEpe0w9TS0xfDA7Y3cobixtLEwpO2lmKChMfDApPjApe009TH1lbHNle049ZzticmVha319
d2hpbGUoMSl7TT1OLTF8MDtjeChuLG0sTSk7aWYoKE18MCk+MCl7Tj1NfWVsc2V7Tz1nO2JyZWFr
fX13aGlsZSgxKXtOPU8tMXwwO2N5KG4sbSxOKTtpZigoTnwwKT4wKXtPPU59ZWxzZXtQPWc7YnJl
YWt9fWRve1A9UC0xfDA7Y3oobixtLFApO313aGlsZSgoUHwwKT4wKX1QPWNbaz4+Ml18MDtpZigo
UHwwKT09MCl7aT1iO3JldHVybn1rPWNbbD4+Ml18MDtpZigoUHwwKSE9KGt8MCkpe2NbbD4+Ml09
aysofigoay04KygtUHwwKXwwKT4+PjMpPDwzKX1rUyhQKTtpPWI7cmV0dXJufWZ1bmN0aW9uIGNC
KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAs
Qj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZT1kfDA7Zj1jW2U+PjJdfDA7ZG97
aWYoKGZ8MCk9PTApe2c9ZDtoPTMwMX1lbHNle2k9Y1tkKzQ+PjJdfDA7aWYoKGl8MCk9PTApe2o9
ZjtrPWQ7bD1kfDA7aD0zMDM7YnJlYWt9ZWxzZXttPWk7d2hpbGUoMSl7aT1jW20+PjJdfDA7aWYo
KGl8MCk9PTApe2c9bTtoPTMwMTticmVha31lbHNle209aX19fX19d2hpbGUoMCk7ZG97aWYoKGh8
MCk9PTMwMSl7Zj1nfDA7bT1jW2crND4+Ml18MDtpZigobXwwKSE9MCl7aj1tO2s9ZztsPWY7aD0z
MDM7YnJlYWt9bj0wO289MDtwPWcrOHwwO3E9ZztyPWZ9fXdoaWxlKDApO2lmKChofDApPT0zMDMp
e2c9ays4fDA7Y1tqKzg+PjJdPWNbZz4+Ml07bj1qO289MTtwPWc7cT1rO3I9bH1sPWNbcD4+Ml18
MDtrPWx8MDtkb3tpZigocXwwKT09KGNbaz4+Ml18MCkpe2Nbaz4+Ml09bjtpZigocXwwKT09KGJ8
MCkpe3M9bjt0PTA7YnJlYWt9cz1iO3Q9Y1soY1twPj4yXXwwKSs0Pj4yXXwwfWVsc2V7Y1tsKzQ+
PjJdPW47cz1iO3Q9Y1tjW3A+PjJdPj4yXXwwfX13aGlsZSgwKTtiPXErMTJ8MDtsPShhW2JdJjEp
PT0wO2lmKChxfDApPT0oZHwwKSl7dT1zfWVsc2V7az1kKzh8MDtnPWNbaz4+Ml18MDtjW3A+PjJd
PWc7aWYoKGNbY1trPj4yXT4+Ml18MCk9PShkfDApKXtjW2c+PjJdPXF9ZWxzZXtjW2crND4+Ml09
cX1nPWNbZT4+Ml18MDtjW3I+PjJdPWc7Y1tnKzg+PjJdPXE7Zz1jW2QrND4+Ml18MDtjW3ErND4+
Ml09ZztpZigoZ3wwKSE9MCl7Y1tnKzg+PjJdPXF9YVtiXT1hW2QrMTJ8MF0mMTt1PShzfDApPT0o
ZHwwKT9xOnN9aWYobHwodXwwKT09MCl7cmV0dXJufWlmKG8pe2FbbisxMnwwXT0xO3JldHVybn1l
bHNle3Y9dTt3PXR9d2hpbGUoMSl7dD13Kzh8MDt1PWNbdD4+Ml18MDtuPXcrMTJ8MDtvPShhW25d
JjEpIT0wO2lmKCh3fDApPT0oY1t1Pj4yXXwwKSl7aWYobyl7eD12O3k9d31lbHNle2Fbbl09MTth
W3UrMTJ8MF09MDtsPWNbdD4+Ml18MDtzPWx8MDtxPWNbcz4+Ml18MDtkPXErNHwwO2I9Y1tkPj4y
XXwwO2Nbcz4+Ml09YjtpZigoYnwwKSE9MCl7Y1tiKzg+PjJdPWx9Yj1sKzh8MDtjW3ErOD4+Ml09
Y1tiPj4yXTtzPWNbYj4+Ml18MDtnPXN8MDtpZigoY1tnPj4yXXwwKT09KGx8MCkpe2NbZz4+Ml09
cX1lbHNle2Nbcys0Pj4yXT1xfWNbZD4+Ml09bDtjW2I+PjJdPXE7cT1jW3crND4+Ml18MDt4PSh2
fDApPT0ocXwwKT93OnY7eT1jW3E+PjJdfDB9ej1jW3k+PjJdfDA7QT0oenwwKT09MDtpZighQSl7
aWYoKGFbeisxMnwwXSYxKT09MCl7aD0zNjU7YnJlYWt9fXE9Y1t5KzQ+PjJdfDA7aWYoKHF8MCkh
PTApe2lmKChhW3ErMTJ8MF0mMSk9PTApe2g9MzY0O2JyZWFrfX1hW3krMTJ8MF09MDtxPWNbeSs4
Pj4yXXwwO0I9cSsxMnwwO2lmKChhW0JdJjEpPT0wfChxfDApPT0oeHwwKSl7aD0zNjE7YnJlYWt9
Yj1jW3ErOD4+Ml18MDtsPWNbYj4+Ml18MDtpZigocXwwKSE9KGx8MCkpe3Y9eDt3PWw7Y29udGlu
dWV9dj14O3c9Y1tiKzQ+PjJdfDA7Y29udGludWV9aWYobyl7Qz12O0Q9d31lbHNle2Fbbl09MTth
W3UrMTJ8MF09MDt1PWNbdD4+Ml18MDt0PXUrNHwwO249Y1t0Pj4yXXwwO289bnwwO2I9Y1tvPj4y
XXwwO2NbdD4+Ml09YjtpZigoYnwwKSE9MCl7Y1tiKzg+PjJdPXV9Yj11Kzh8MDtjW24rOD4+Ml09
Y1tiPj4yXTt0PWNbYj4+Ml18MDtsPXR8MDtpZigoY1tsPj4yXXwwKT09KHV8MCkpe2NbbD4+Ml09
bn1lbHNle2NbdCs0Pj4yXT1ufWNbbz4+Ml09dTtjW2I+PjJdPW47bj1jW3c+PjJdfDA7Qz0odnww
KT09KG58MCk/dzp2O0Q9Y1tuKzQ+PjJdfDB9RT1EfDA7Rj1jW0U+PjJdfDA7aWYoKEZ8MCkhPTAp
e2lmKChhW0YrMTJ8MF0mMSk9PTApe2g9MzM1O2JyZWFrfX1uPWNbRCs0Pj4yXXwwO2lmKChufDAp
IT0wKXtpZigoYVtuKzEyfDBdJjEpPT0wKXtHPW47aD0zMzY7YnJlYWt9fWFbRCsxMnwwXT0wO249
Y1tEKzg+PjJdfDA7aWYoKG58MCk9PShDfDApKXtIPUM7aD0zMzI7YnJlYWt9aWYoKGFbbisxMnww
XSYxKT09MCl7SD1uO2g9MzMyO2JyZWFrfWI9Y1tuKzg+PjJdfDA7dT1jW2I+PjJdfDA7aWYoKG58
MCkhPSh1fDApKXt2PUM7dz11O2NvbnRpbnVlfXY9Qzt3PWNbYis0Pj4yXXwwfWlmKChofDApPT0z
MzIpe2FbSCsxMnwwXT0xO3JldHVybn1lbHNlIGlmKChofDApPT0zMzUpe0g9Y1tEKzQ+PjJdfDA7
aWYoKEh8MCk9PTApe2g9MzM3fWVsc2V7Rz1IO2g9MzM2fX1lbHNlIGlmKChofDApPT0zNjEpe2Fb
Ql09MTtyZXR1cm59ZWxzZSBpZigoaHwwKT09MzY0KXtpZihBKXtoPTM2Nn1lbHNle2g9MzY1fX1p
ZigoaHwwKT09MzM2KXtpZigoYVtHKzEyfDBdJjEpPT0wKXtJPUQ7aD0zNDN9ZWxzZXtoPTMzN319
ZWxzZSBpZigoaHwwKT09MzY1KXtpZigoYVt6KzEyfDBdJjEpPT0wKXtKPXk7aD0zNzJ9ZWxzZXto
PTM2Nn19aWYoKGh8MCk9PTMzNyl7YVtGKzEyfDBdPTE7YVtEKzEyfDBdPTA7Rj1jW0U+PjJdfDA7
ej1GKzR8MDtHPWNbej4+Ml18MDtjW0U+PjJdPUc7aWYoKEd8MCkhPTApe2NbRys4Pj4yXT1EfUc9
RCs4fDA7Y1tGKzg+PjJdPWNbRz4+Ml07RT1jW0c+PjJdfDA7QT1FfDA7aWYoKGNbQT4+Ml18MCk9
PShEfDApKXtjW0E+PjJdPUZ9ZWxzZXtjW0UrND4+Ml09Rn1jW3o+PjJdPUQ7Y1tHPj4yXT1GO0k9
RjtoPTM0M31lbHNlIGlmKChofDApPT0zNjYpe0Y9eSs0fDA7YVsoY1tGPj4yXXwwKSsxMnwwXT0x
O2FbeSsxMnwwXT0wO0c9Y1tGPj4yXXwwO0Q9R3wwO3o9Y1tEPj4yXXwwO2NbRj4+Ml09ejtpZigo
enwwKSE9MCl7Y1t6Kzg+PjJdPXl9ej15Kzh8MDtjW0crOD4+Ml09Y1t6Pj4yXTtGPWNbej4+Ml18
MDtFPUZ8MDtpZigoY1tFPj4yXXwwKT09KHl8MCkpe2NbRT4+Ml09R31lbHNle2NbRis0Pj4yXT1H
fWNbRD4+Ml09eTtjW3o+PjJdPUc7Sj1HO2g9MzcyfWlmKChofDApPT0zNDMpe0c9SSs4fDA7ej0o
Y1tHPj4yXXwwKSsxMnwwO2FbSSsxMnwwXT1hW3pdJjE7YVt6XT0xO2FbKGNbSSs0Pj4yXXwwKSsx
MnwwXT0xO0k9Y1tHPj4yXXwwO0c9SSs0fDA7ej1jW0c+PjJdfDA7eT16fDA7RD1jW3k+PjJdfDA7
Y1tHPj4yXT1EO2lmKChEfDApIT0wKXtjW0QrOD4+Ml09SX1EPUkrOHwwO2Nbeis4Pj4yXT1jW0Q+
PjJdO0c9Y1tEPj4yXXwwO0Y9R3wwO2lmKChjW0Y+PjJdfDApPT0oSXwwKSl7Y1tGPj4yXT16fWVs
c2V7Y1tHKzQ+PjJdPXp9Y1t5Pj4yXT1JO2NbRD4+Ml09ejtyZXR1cm59ZWxzZSBpZigoaHwwKT09
MzcyKXtoPUorOHwwO3o9KGNbaD4+Ml18MCkrMTJ8MDthW0orMTJ8MF09YVt6XSYxO2Fbel09MTth
WyhjW0o+PjJdfDApKzEyfDBdPTE7Sj1jW2g+PjJdfDA7aD1KfDA7ej1jW2g+PjJdfDA7RD16KzR8
MDtJPWNbRD4+Ml18MDtjW2g+PjJdPUk7aWYoKEl8MCkhPTApe2NbSSs4Pj4yXT1KfUk9Sis4fDA7
Y1t6Kzg+PjJdPWNbST4+Ml07aD1jW0k+PjJdfDA7eT1ofDA7aWYoKGNbeT4+Ml18MCk9PShKfDAp
KXtjW3k+PjJdPXp9ZWxzZXtjW2grND4+Ml09en1jW0Q+PjJdPUo7Y1tJPj4yXT16O3JldHVybn19
ZnVuY3Rpb24gY0MoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAs
aj0wLGs9MC4wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTA7Zj1p
O2c9YjtiPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2I+PjJdPWNbZz4+Ml07Zz1hKzR8MDtqPWNb
Yj4+Ml18MDtkb3tpZigoanwwKSE9KGd8MCkpe2s9K2hbZT4+M107aWYoK2hbaisxNj4+M10+PWsp
e2JyZWFrfWI9Z3wwO2w9Y1tiPj4yXXwwO2lmKChsfDApPT0wKXtjW2Q+PjJdPWc7bT1iO2k9Zjty
ZXR1cm4gbXwwfWVsc2V7bj1sfXdoaWxlKDEpe2lmKCtoW24rMTY+PjNdPGspe289bis0fDA7bD1j
W28+PjJdfDA7aWYoKGx8MCk9PTApe3A9NDA2O2JyZWFrfWVsc2V7bj1sO2NvbnRpbnVlfX1lbHNl
e3E9bnwwO2w9Y1txPj4yXXwwO2lmKChsfDApPT0wKXtwPTQwODticmVha31lbHNle249bDtjb250
aW51ZX19fWlmKChwfDApPT00MDgpe2NbZD4+Ml09bjttPXE7aT1mO3JldHVybiBtfDB9ZWxzZSBp
ZigocHwwKT09NDA2KXtjW2Q+PjJdPW47bT1vO2k9ZjtyZXR1cm4gbXwwfX19d2hpbGUoMCk7bz1j
W2o+PjJdfDA7ZG97aWYoKGp8MCk9PShjW2E+PjJdfDApKXtyPWp9ZWxzZXtpZigob3wwKT09MCl7
bj1qfDA7d2hpbGUoMSl7cT1jW24rOD4+Ml18MDtpZigobnwwKT09KGNbcT4+Ml18MCkpe249cX1l
bHNle3M9cTticmVha319fWVsc2V7bj1vO3doaWxlKDEpe3E9Y1tuKzQ+PjJdfDA7aWYoKHF8MCk9
PTApe3M9bjticmVha31lbHNle249cX19fWs9K2hbZT4+M107aWYoaz49K2hbcysxNj4+M10pe3I9
czticmVha31uPWd8MDtxPWNbbj4+Ml18MDtpZigocXwwKT09MCl7Y1tkPj4yXT1nO209bjtpPWY7
cmV0dXJuIG18MH1lbHNle3Q9cX13aGlsZSgxKXtpZihrPCtoW3QrMTY+PjNdKXt1PXR8MDtxPWNb
dT4+Ml18MDtpZigocXwwKT09MCl7cD0zOTk7YnJlYWt9ZWxzZXt0PXE7Y29udGludWV9fWVsc2V7
dj10KzR8MDtxPWNbdj4+Ml18MDtpZigocXwwKT09MCl7cD00MDE7YnJlYWt9ZWxzZXt0PXE7Y29u
dGludWV9fX1pZigocHwwKT09Mzk5KXtjW2Q+PjJdPXQ7bT11O2k9ZjtyZXR1cm4gbXwwfWVsc2Ug
aWYoKHB8MCk9PTQwMSl7Y1tkPj4yXT10O209djtpPWY7cmV0dXJuIG18MH19fXdoaWxlKDApO2lm
KChvfDApPT0wKXtjW2Q+PjJdPWo7bT1qfDA7aT1mO3JldHVybiBtfDB9ZWxzZXtjW2Q+PjJdPXI7
bT1yKzR8MDtpPWY7cmV0dXJuIG18MH1yZXR1cm4gMH1mdW5jdGlvbiBjRCgpe2NBKDFlNSk7cmV0
dXJuIDB9ZnVuY3Rpb24gY0UoYSxiKXthPWF8MDtiPWJ8MDtpZigoYnwwKT09MCl7cmV0dXJufWVs
c2V7Y0UoYSxjW2I+PjJdfDApO2NFKGEsY1tiKzQ+PjJdfDApO2tTKGIpO3JldHVybn19ZnVuY3Rp
b24gY0YoYSxiKXthPWF8MDtiPWJ8MDt2YXIgYz0wLGQ9MCxlPTAsZj0wLGc9MCxqPTAsaz0wLGw9
MCxtPTAuMDtjPWk7aT1pKzh8MDtkPWN8MDtlPWItYXwwO2lmKChlfDApPD04KXtpPWM7cmV0dXJu
fWNZKGQpO2Y9Yi04fDA7aWYoZj4+PjA+YT4+PjApe2I9YTthPWU+PjM7d2hpbGUoMSl7ZT1hLTF8
MDtkb3tpZigoZXwwKSE9MCl7aWYoKGF8MCk9PTApe2c9Y1goZCl8MH1lbHNle2o9MzItKGtaKGF8
MCl8MCl8MDtrPSgoKC0xPj4+KCgzMy1qfDApPj4+MCkmYXwwKT09MCk8PDMxPj4zMSkranwwO2o9
KGs+Pj4wKS8oKCgoayYzMXwwKSE9MCkrKGs+Pj41KXwwKT4+PjApfDA7aWYoKGp8MCk9PTApe2w9
MH1lbHNle2w9LTE+Pj4oKDMyLWp8MCk+Pj4wKX13aGlsZSgxKXtqPShjWChkKXwwKSZsO2lmKGo+
Pj4wPGE+Pj4wKXtnPWo7YnJlYWt9fX1pZigoZ3wwKT09MCl7YnJlYWt9aj1iKyhnPDwzKXwwO209
K2hbYj4+M107aFtiPj4zXT0raFtqPj4zXTtoW2o+PjNdPW19fXdoaWxlKDApO2o9Yis4fDA7aWYo
aj4+PjA8Zj4+PjApe2I9ajthPWV9ZWxzZXticmVha319fWNXKGQpO2k9YztyZXR1cm59ZnVuY3Rp
b24gY0coYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7ZT0oZHwwKT09KGJ8MCk7YVtkKzEyfDBdPWUm
MTtpZihlKXtyZXR1cm59ZWxzZXtmPWR9d2hpbGUoMSl7Zz1mKzh8MDtoPWNbZz4+Ml18MDtkPWgr
MTJ8MDtpZigoYVtkXSYxKSE9MCl7aT00ODc7YnJlYWt9aj1oKzh8MDtrPWNbaj4+Ml18MDtlPWNb
az4+Ml18MDtpZigoaHwwKT09KGV8MCkpe2w9Y1trKzQ+PjJdfDA7aWYoKGx8MCk9PTApe2k9NDUy
O2JyZWFrfW09bCsxMnwwO2lmKChhW21dJjEpIT0wKXtpPTQ1MjticmVha31hW2RdPTE7YVtrKzEy
fDBdPShrfDApPT0oYnwwKXwwO2FbbV09MX1lbHNle2lmKChlfDApPT0wKXtpPTQ2OTticmVha31t
PWUrMTJ8MDtpZigoYVttXSYxKSE9MCl7aT00Njk7YnJlYWt9YVtkXT0xO2FbaysxMnwwXT0oa3ww
KT09KGJ8MCl8MDthW21dPTF9aWYoKGt8MCk9PShifDApKXtpPTQ4NDticmVha31lbHNle2Y9a319
aWYoKGl8MCk9PTQ2OSl7Yj1ofDA7aWYoKGZ8MCk9PShjW2I+PjJdfDApKXttPWYrNHwwO2Q9Y1tt
Pj4yXXwwO2NbYj4+Ml09ZDtpZigoZHwwKT09MCl7bj1rfWVsc2V7Y1tkKzg+PjJdPWg7bj1jW2o+
PjJdfDB9Y1tnPj4yXT1uO249Y1tqPj4yXXwwO2Q9bnwwO2lmKChjW2Q+PjJdfDApPT0oaHwwKSl7
Y1tkPj4yXT1mfWVsc2V7Y1tuKzQ+PjJdPWZ9Y1ttPj4yXT1oO2Nbaj4+Ml09ZjtvPWY7cD1jW2c+
PjJdfDB9ZWxzZXtvPWg7cD1rfWFbbysxMnwwXT0xO2FbcCsxMnwwXT0wO289cCs0fDA7Zz1jW28+
PjJdfDA7bT1nfDA7bj1jW20+PjJdfDA7Y1tvPj4yXT1uO2lmKChufDApIT0wKXtjW24rOD4+Ml09
cH1uPXArOHwwO2NbZys4Pj4yXT1jW24+PjJdO289Y1tuPj4yXXwwO2Q9b3wwO2lmKChjW2Q+PjJd
fDApPT0ocHwwKSl7Y1tkPj4yXT1nfWVsc2V7Y1tvKzQ+PjJdPWd9Y1ttPj4yXT1wO2Nbbj4+Ml09
ZztyZXR1cm59ZWxzZSBpZigoaXwwKT09NDg0KXtyZXR1cm59ZWxzZSBpZigoaXwwKT09NDg3KXty
ZXR1cm59ZWxzZSBpZigoaXwwKT09NDUyKXtpZigoZnwwKT09KGNbaD4+Ml18MCkpe3E9aDtyPWt9
ZWxzZXtmPWgrNHwwO2k9Y1tmPj4yXXwwO2c9aXwwO249Y1tnPj4yXXwwO2NbZj4+Ml09bjtpZigo
bnwwKT09MCl7cz1rfWVsc2V7Y1tuKzg+PjJdPWg7cz1jW2o+PjJdfDB9bj1pKzh8MDtjW24+PjJd
PXM7cz1jW2o+PjJdfDA7az1zfDA7aWYoKGNbaz4+Ml18MCk9PShofDApKXtjW2s+PjJdPWl9ZWxz
ZXtjW3MrND4+Ml09aX1jW2c+PjJdPWg7Y1tqPj4yXT1pO3E9aTtyPWNbbj4+Ml18MH1hW3ErMTJ8
MF09MTthW3IrMTJ8MF09MDtxPXJ8MDtuPWNbcT4+Ml18MDtpPW4rNHwwO2o9Y1tpPj4yXXwwO2Nb
cT4+Ml09ajtpZigoanwwKSE9MCl7Y1tqKzg+PjJdPXJ9aj1yKzh8MDtjW24rOD4+Ml09Y1tqPj4y
XTtxPWNbaj4+Ml18MDtoPXF8MDtpZigoY1toPj4yXXwwKT09KHJ8MCkpe2NbaD4+Ml09bn1lbHNl
e2NbcSs0Pj4yXT1ufWNbaT4+Ml09cjtjW2o+PjJdPW47cmV0dXJufX1mdW5jdGlvbiBjSChhLGIs
ZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxqPTAsaz0wLjAsbD0wLjAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxB
PTA7Zj1pO2c9YjtiPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2I+PjJdPWNbZz4+Ml07Zz1hKzR8
MDtqPWNbYj4+Ml18MDtkb3tpZigoanwwKSE9KGd8MCkpe2s9K2hbZT4+M107bD0raFtqKzE2Pj4z
XTtpZihrPGwpe2JyZWFrfWlmKGw+PWspe2NbZD4+Ml09ajttPWQ7aT1mO3JldHVybiBtfDB9Yj1q
KzR8MDtuPWNbYj4+Ml18MDtvPShufDApPT0wO2lmKG8pe3A9anwwO3doaWxlKDEpe3E9Y1twKzg+
PjJdfDA7aWYoKHB8MCk9PShjW3E+PjJdfDApKXtyPXE7YnJlYWt9ZWxzZXtwPXF9fX1lbHNle3A9
bjt3aGlsZSgxKXtxPWNbcD4+Ml18MDtpZigocXwwKT09MCl7cj1wO2JyZWFrfWVsc2V7cD1xfX19
cD1nO2Rve2lmKChyfDApIT0ocHwwKSl7aWYoazwraFtyKzE2Pj4zXSl7YnJlYWt9bj1nfDA7cT1j
W24+PjJdfDA7aWYoKHF8MCk9PTApe2NbZD4+Ml09cDttPW47aT1mO3JldHVybiBtfDB9ZWxzZXtz
PXF9d2hpbGUoMSl7bD0raFtzKzE2Pj4zXTtpZihrPGwpe3Q9c3wwO3E9Y1t0Pj4yXXwwO2lmKChx
fDApPT0wKXt1PTUyMTticmVha31lbHNle3M9cTtjb250aW51ZX19aWYobD49ayl7dT01MjU7YnJl
YWt9dj1zKzR8MDtxPWNbdj4+Ml18MDtpZigocXwwKT09MCl7dT01MjQ7YnJlYWt9ZWxzZXtzPXF9
fWlmKCh1fDApPT01MjEpe2NbZD4+Ml09czttPXQ7aT1mO3JldHVybiBtfDB9ZWxzZSBpZigodXww
KT09NTI0KXtjW2Q+PjJdPXM7bT12O2k9ZjtyZXR1cm4gbXwwfWVsc2UgaWYoKHV8MCk9PTUyNSl7
Y1tkPj4yXT1zO209ZDtpPWY7cmV0dXJuIG18MH19fXdoaWxlKDApO2lmKG8pe2NbZD4+Ml09ajtt
PWI7aT1mO3JldHVybiBtfDB9ZWxzZXtjW2Q+PjJdPXI7bT1yfDA7aT1mO3JldHVybiBtfDB9fX13
aGlsZSgwKTtyPWNbaj4+Ml18MDtkb3tpZigoanwwKT09KGNbYT4+Ml18MCkpe3c9an1lbHNle2lm
KChyfDApPT0wKXtzPWp8MDt3aGlsZSgxKXt2PWNbcys4Pj4yXXwwO2lmKChzfDApPT0oY1t2Pj4y
XXwwKSl7cz12fWVsc2V7eD12O2JyZWFrfX19ZWxzZXtzPXI7d2hpbGUoMSl7Yj1jW3MrND4+Ml18
MDtpZigoYnwwKT09MCl7eD1zO2JyZWFrfWVsc2V7cz1ifX19az0raFtlPj4zXTtpZigraFt4KzE2
Pj4zXTxrKXt3PXg7YnJlYWt9cz1nfDA7Yj1jW3M+PjJdfDA7aWYoKGJ8MCk9PTApe2NbZD4+Ml09
ZzttPXM7aT1mO3JldHVybiBtfDB9ZWxzZXt5PWJ9d2hpbGUoMSl7bD0raFt5KzE2Pj4zXTtpZihr
PGwpe3o9eXwwO2I9Y1t6Pj4yXXwwO2lmKChifDApPT0wKXt1PTUwMjticmVha31lbHNle3k9Yjtj
b250aW51ZX19aWYobD49ayl7dT01MDY7YnJlYWt9QT15KzR8MDtiPWNbQT4+Ml18MDtpZigoYnww
KT09MCl7dT01MDU7YnJlYWt9ZWxzZXt5PWJ9fWlmKCh1fDApPT01MDUpe2NbZD4+Ml09eTttPUE7
aT1mO3JldHVybiBtfDB9ZWxzZSBpZigodXwwKT09NTA2KXtjW2Q+PjJdPXk7bT1kO2k9ZjtyZXR1
cm4gbXwwfWVsc2UgaWYoKHV8MCk9PTUwMil7Y1tkPj4yXT15O209ejtpPWY7cmV0dXJuIG18MH19
fXdoaWxlKDApO2lmKChyfDApPT0wKXtjW2Q+PjJdPWo7bT1qfDA7aT1mO3JldHVybiBtfDB9ZWxz
ZXtjW2Q+PjJdPXc7bT13KzR8MDtpPWY7cmV0dXJuIG18MH1yZXR1cm4gMH1mdW5jdGlvbiBjSShi
LGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLjAsSD0wLEk9MDtnPWk7aj1kO2Q9aTtpPWkrOHwwO2NbZD4+
Ml09Y1tqPj4yXTtjW2QrND4+Ml09Y1tqKzQ+PjJdO2o9ZTtlPWk7aT1pKzh8MDtjW2U+PjJdPWNb
aj4+Ml07Y1tlKzQ+PjJdPWNbais0Pj4yXTtqPWY7Zj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7YVtm
XT1hW2pdfDA7aj1kfDA7Zj1kKzR8MDtrPWNbZj4+Ml18MDtsPWNbZT4+Ml18MDttPWNbZSs0Pj4y
XXwwO0w2NTU6ZG97aWYoKGt8MCk9PShtfDApKXtuPWs7bz1sO3A9NTQ5fWVsc2V7ZT1jW2o+PjJd
fDA7cT1lO3I9aztzPWNbZT4+Ml18MDt3aGlsZSgxKXtlPXIrOHwwO2lmKChlLXN8MCk9PTQwOTYp
e3Q9cSs0fDA7dT1jW3Q+PjJdfDA7dj10O3c9dTt4PXV9ZWxzZXt2PXE7dz1lO3g9c31pZigod3ww
KT09KG18MCkpe2JyZWFrfWlmKCtoW3I+PjNdPT0raFt3Pj4zXSl7bj1yO289cTtwPTU0OTticmVh
ayBMNjU1fWVsc2V7cT12O3I9dztzPXh9fWNbaj4+Ml09bDtjW2Y+PjJdPW19fXdoaWxlKDApO2Rv
e2lmKChwfDApPT01NDkpe2Nbaj4+Ml09bztjW2Y+PjJdPW47aWYoKG58MCk9PShtfDApKXticmVh
a31sPW4rOHwwO3g9Y1tvPj4yXXwwO2lmKChsLXh8MCk9PTQwOTYpe3c9bys0fDA7dj1jW3c+PjJd
fDA7eT13O3o9djtBPXY7Qj1uO0M9b31lbHNle3k9bzt6PWw7QT14O0I9bjtDPW99d2hpbGUoMSl7
eD16Kzh8MDtpZigoeC1BfDApPT00MDk2KXtsPXkrNHwwO3Y9Y1tsPj4yXXwwO0Q9bDtFPXY7Rj12
fWVsc2V7RD15O0U9eDtGPUF9aWYoKEV8MCk9PShtfDApKXticmVha31HPStoW0U+PjNdO2lmKCto
W0I+PjNdPT1HKXt5PUQ7ej1FO0E9RjtCPUI7Qz1DO2NvbnRpbnVlfXg9Qis4fDA7Y1tmPj4yXT14
O2lmKCh4LShjW0M+PjJdfDApfDApPT00MDk2KXt2PUMrNHwwO2Nbaj4+Ml09djtsPWNbdj4+Ml18
MDtjW2Y+PjJdPWw7SD12O0k9bH1lbHNle0g9QztJPXh9aFtJPj4zXT1HO3k9RDt6PUU7QT1jW0Q+
PjJdfDA7Qj1JO0M9SH14PUIrOHwwO2NbZj4+Ml09eDtpZigoeC0oY1tDPj4yXXwwKXwwKSE9NDA5
Nil7YnJlYWt9eD1DKzR8MDtjW2o+PjJdPXg7Y1tmPj4yXT1jW3g+PjJdfX13aGlsZSgwKTtmPWQ7
ZD1iO2I9Y1tmKzQ+PjJdfDA7Y1tkPj4yXT1jW2Y+PjJdO2NbZCs0Pj4yXT1iO2k9ZztyZXR1cm59
ZnVuY3Rpb24gY0ooYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIg
Zz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAuMCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MC4wLEQ9MDtnPWk7aT1pKzQ4fDA7aj1iO2I9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbYj4+Ml09Y1tqPj4yXTtqPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Y1tkPj4yXT1jW2o+PjJdO2o9Z3wwO2s9Zys4fDA7bD1nKzE2fDA7bT1nKzI0fDA7bj1n
KzMyfDA7bz1nKzQwfDA7c3dpdGNoKGV8MCl7Y2FzZSAyOntwPWR8MDtxPWNbY1twPj4yXT4+Ml18
MDtjW3A+PjJdPXE7cD1jW2I+PjJdfDA7aWYoK2hbcSs4Pj4zXTwraFtwKzg+PjNdKXtyPXErNHww
O3M9cXwwO2NbKGNbcz4+Ml18MCkrND4+Ml09Y1tyPj4yXTtjW2Nbcj4+Ml0+PjJdPWNbcz4+Ml07
dD1wfDA7Y1soY1t0Pj4yXXwwKSs0Pj4yXT1xO2Nbcz4+Ml09Y1t0Pj4yXTtjW3Q+PjJdPXE7Y1ty
Pj4yXT1wO2NbYT4+Ml09cTtpPWc7cmV0dXJufWVsc2V7Y1thPj4yXT1wO2k9ZztyZXR1cm59YnJl
YWt9O2Nhc2UgMDpjYXNlIDE6e2NbYT4+Ml09Y1tiPj4yXTtpPWc7cmV0dXJufTtkZWZhdWx0Ontw
PWU+Pj4xO3E9YnwwO2I9Y1txPj4yXXwwO2lmKChwfDApPT0wKXt1PWJ9ZWxzZXtyPXA7dD1iO3do
aWxlKDEpe3M9ci0xfDA7dj1jW3QrND4+Ml18MDtpZigoc3wwKT4wKXtyPXM7dD12fWVsc2V7dT12
O2JyZWFrfX19Y1trPj4yXT1iO2NbbD4+Ml09dTtjSihqLGssbCxwLGYpO2w9Y1tqPj4yXXwwO2Nb
cT4+Ml09bDtjW24+PjJdPXU7dT1kfDA7ZD1jW3U+PjJdfDA7Y1tvPj4yXT1kO2NKKG0sbixvLGUt
cHwwLGYpO2Y9Y1ttPj4yXXwwO3c9K2hbbCs4Pj4zXTtpZigraFtmKzg+PjNdPHcpe209Y1tmKzQ+
PjJdfDA7TDY5Nzpkb3tpZigobXwwKT09KGR8MCkpe3g9ZH1lbHNle3A9bTt3aGlsZSgxKXtpZigr
aFtwKzg+PjNdPj13KXt4PXA7YnJlYWsgTDY5N31lPWNbcCs0Pj4yXXwwO2lmKChlfDApPT0oZHww
KSl7eD1kO2JyZWFrfWVsc2V7cD1lfX19fXdoaWxlKDApO209Y1t4Pj4yXXwwO3A9bSs0fDA7ZT1m
fDA7Y1soY1tlPj4yXXwwKSs0Pj4yXT1jW3A+PjJdO2NbY1twPj4yXT4+Ml09Y1tlPj4yXTtvPWNb
bCs0Pj4yXXwwO249bHwwO2NbKGNbbj4+Ml18MCkrND4+Ml09ZjtjW2U+PjJdPWNbbj4+Ml07Y1tu
Pj4yXT1tO2NbcD4+Ml09bDt5PWY7ej14O0E9b31lbHNle3k9bDt6PWY7QT1jW2wrND4+Ml18MH1j
W3E+PjJdPUE7TDcwNDpkb3tpZigoQXwwKSE9KHp8MCkpe2w9ejtmPXo7bz1BO3g9ZDt3aGlsZSgx
KXtwPWwrOHwwO2lmKChsfDApPT0oeHwwKSl7YnJlYWsgTDcwNH1lbHNle0I9b313aGlsZSgxKXtD
PStoW0IrOD4+M107aWYoK2hbcD4+M108Qyl7YnJlYWt9bT1jW0IrND4+Ml18MDtjW3E+PjJdPW07
aWYoKG18MCk9PShmfDApKXticmVhayBMNzA0fWVsc2V7Qj1tfX1wPWNbbCs0Pj4yXXwwO0w3MTE6
ZG97aWYoKHB8MCk9PSh4fDApKXtEPXh9ZWxzZXttPXA7d2hpbGUoMSl7aWYoK2hbbSs4Pj4zXT49
Qyl7RD1tO2JyZWFrIEw3MTF9bj1jW20rND4+Ml18MDtpZigobnwwKT09KHh8MCkpe0Q9eDticmVh
a31lbHNle209bn19fX13aGlsZSgwKTtwPWNbRD4+Ml18MDttPXArNHwwO249bHwwO2NbKGNbbj4+
Ml18MCkrND4+Ml09Y1ttPj4yXTtjW2NbbT4+Ml0+PjJdPWNbbj4+Ml07ZT1jW0IrND4+Ml18MDtq
PShmfDApPT0obHwwKT9EOmY7az1CfDA7Y1soY1trPj4yXXwwKSs0Pj4yXT1sO2Nbbj4+Ml09Y1tr
Pj4yXTtjW2s+PjJdPXA7Y1ttPj4yXT1CO2NbcT4+Ml09ZTtpZigoZXwwKT09KGp8MCkpe2JyZWFr
IEw3MDR9bD1EO2Y9ajtvPWU7eD1jW3U+PjJdfDB9fX13aGlsZSgwKTtjW2E+PjJdPXk7aT1nO3Jl
dHVybn19fWZ1bmN0aW9uIGNLKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxn
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0w
LEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAs
Wj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAs
YWo9MCxhaz0wLGFsPTAsYW09MCxhbj0wLGFvPTAsYXA9MCxhcT0wLGFyPTAsYXM9MCxhdD0wLGF1
PTAsYXY9MCxhdz0wLGF4PTAsYXk9MCxhej0wLGFBPTAsYUI9MCxhQz0wLGFEPTAsYUU9MCxhRj0w
LGFHPTAuMCxhSD0wLjAsYUk9MC4wLGFKPTAuMCxhSz0wLjAsYUw9MCxhTT0wLGFOPTAsYU89MCxh
UD0wLGFRPTAsYVI9MCxhUz0wLjAsYVQ9MCxhVT0wLGFWPTAsYVc9MCxhWD0wLGFZPTAsYVo9MCxh
Xz0wLGEkPTAsYTA9MC4wLGExPTAsYTI9MCxhMz0wLGE0PTAsYTU9MCxhNj0wLGE3PTAsYTg9MC4w
LGE5PTAsYmE9MCxiYj0wLGJjPTAsYmQ9MC4wLGJlPTAsYmY9MCxiZz0wLGJoPTAsYmk9MCxiaj0w
LGJrPTAsYmw9MCxibT0wLGJuPTAsYm89MCxicD0wLGJxPTAsYnI9MCxicz0wLGJ0PTAsYnU9MC4w
LGJ2PTAsYnc9MCxieD0wLGJ5PTAsYno9MC4wLGJBPTAsYkI9MCxiQz0wLGJEPTAsYkU9MCxiRj0w
LGJHPTAsYkg9MCxiST0wLGJKPTAsYks9MCxiTD0wLGJNPTAsYk49MCxiTz0wLGJQPTAsYlE9MC4w
LGJSPTAsYlM9MCxiVD0wO2U9aTtpPWkrOHwwO2Y9YTthPWk7aT1pKzh8MDtjW2E+PjJdPWNbZj4+
Ml07Y1thKzQ+PjJdPWNbZis0Pj4yXTtmPWI7Yj1pO2k9aSs4fDA7Y1tiPj4yXT1jW2Y+PjJdO2Nb
Yis0Pj4yXT1jW2YrND4+Ml07Zj1lfDA7Zz1mO2o9aTtpPWkrOHwwO2s9ajtsPWk7aT1pKzh8MDtt
PWw7bj1pO2k9aSs4fDA7bz1uO3A9aTtpPWkrOHwwO3E9cDtyPWk7aT1pKzh8MDtzPXI7dD1pO2k9
aSs4fDA7dT10O3Y9aTtpPWkrOHwwO3c9djt4PWk7aT1pKzh8MDt5PXg7ej1pO2k9aSs4fDA7QT1p
O2k9aSs4fDA7Qj1pO2k9aSs4fDA7Qz1pO2k9aSs4fDA7RD1DO0U9aTtpPWkrOHwwO0Y9aTtpPWkr
OHwwO0c9aTtpPWkrOHwwO0g9RztJPWk7aT1pKzh8MDtKPUk7Sz1pO2k9aSs4fDA7TD1pO2k9aSs4
fDA7TT1pO2k9aSs4fDA7Tj1NO089Yis0fDA7UD1jW08+PjJdfDA7UT1hKzR8MDtSPWNbUT4+Ml18
MDtpZigoUHwwKT09KFJ8MCkpe2k9ZTtyZXR1cm59Uz1ifDA7VD1hfDA7VT1hO2E9eSs0fDA7Vj14
O1c9enwwO1g9eis0fDA7WT1BfDA7Wj1BKzR8MDtfPUJ8MDskPUIrNHwwO2FhPUV8MDthYj1FKzR8
MDthYz1GfDA7YWQ9Ris0fDA7YWU9YjtiPUt8MDthZj1LKzR8MDthZz1MfDA7YWg9TCs0fDA7YWk9
UDtQPVI7TDcyNTp3aGlsZSgxKXthaj1jW1M+PjJdfDA7Uj1jW1Q+PjJdfDA7YWs9Y1thaj4+Ml18
MDthbD1jW1I+PjJdfDA7YW09UC1hbD4+Mzthbj0oYWktYWs+PjMpKyhhai1SPDw3KS1hbXwwO3N3
aXRjaChhbnwwKXtjYXNlIDU6e2FvPTYzMDticmVhayBMNzI1O2JyZWFrfTtjYXNlIDQ6e2FvPTYx
MDticmVhayBMNzI1O2JyZWFrfTtjYXNlIDI6e2FvPTU5MzticmVhayBMNzI1O2JyZWFrfTtjYXNl
IDM6e2FvPTU5NzticmVhayBMNzI1O2JyZWFrfTtjYXNlIDA6Y2FzZSAxOnthbz03NjA7YnJlYWsg
TDcyNTticmVha307ZGVmYXVsdDp7fX1pZigoYW58MCk8MzEpe2FvPTY0MzticmVha31pZigoYWl8
MCk9PShha3wwKSl7YXA9YWotNHwwO2FxPWFwO2FyPShjW2FwPj4yXXwwKSs0MDk2fDB9ZWxzZXth
cT1hajthcj1haX1hcD1hci04fDA7YXM9KGFufDApLzJ8MDthdD0oYW4rMXwwKT4+PjA+Mjtkb3tp
ZigoYW58MCk+OTk5KXtkb3tpZihhdCl7YXU9YW0rYXN8MDtpZigoYXV8MCk+MCl7YXY9UisoKChh
dXwwKS81MTJ8MCk8PDIpfDA7YXc9Y1thdj4+Ml18MDtheD1hdysoKChhdXwwKSU1MTJ8MCk8PDMp
fDA7YXk9YXY7YXo9YXc7YnJlYWt9ZWxzZXthdz01MTEtYXV8MDthdT1SKygoKGF3fDApLy01MTJ8
MCk8PDIpfDA7YXY9Y1thdT4+Ml18MDtheD1hdisoNTExLSgoYXd8MCklNTEyfDApPDwzKXwwO2F5
PWF1O2F6PWF2O2JyZWFrfX1lbHNle2F4PVA7YXk9Ujthej1hbH19d2hpbGUoMCk7YXY9KGFufDAp
LzR8MDthdT1jW1U+PjJdfDA7YXc9Y1tVKzQ+PjJdfDA7Y1t2Pj4yXT1hdTtjW3YrND4+Ml09YXc7
Y1t4Pj4yXT1hdTtjW3grND4+Ml09YXc7YUE9KGFuKzN8MCk+Pj4wPjY7YUI9YXU7ZG97aWYoYUEp
e2F1PShhdy0oY1thQj4+Ml18MCk+PjMpK2F2fDA7aWYoKGF1fDApPjApe2FDPWFCKygoKGF1fDAp
LzUxMnwwKTw8Mil8MDtjW1Y+PjJdPWFDO2NbYT4+Ml09KGNbYUM+PjJdfDApKygoKGF1fDApJTUx
MnwwKTw8Myk7Y1tXPj4yXT1heTtjW1g+PjJdPWF4O2NbWT4+Ml09YXk7Y1taPj4yXT1heDtpZigh
YUEpe2JyZWFrfX1lbHNle2FDPTUxMS1hdXwwO2F1PWFCKygoKGFDfDApLy01MTJ8MCk8PDIpfDA7
Y1tWPj4yXT1hdTtjW2E+PjJdPShjW2F1Pj4yXXwwKSsoNTExLSgoYUN8MCklNTEyfDApPDwzKTtj
W1c+PjJdPWF5O2NbWD4+Ml09YXg7Y1tZPj4yXT1heTtjW1o+PjJdPWF4fWFDPShheC1hej4+Mykr
YXZ8MDtpZigoYUN8MCk+MCl7YXU9YXkrKCgoYUN8MCkvNTEyfDApPDwyKXwwO2NbWT4+Ml09YXU7
Y1taPj4yXT0oY1thdT4+Ml18MCkrKCgoYUN8MCklNTEyfDApPDwzKTticmVha31lbHNle2F1PTUx
MS1hQ3wwO2FDPWF5KygoKGF1fDApLy01MTJ8MCk8PDIpfDA7Y1tZPj4yXT1hQztjW1o+PjJdPShj
W2FDPj4yXXwwKSsoNTExLSgoYXV8MCklNTEyfDApPDwzKTticmVha319ZWxzZXtjW1c+PjJdPWF5
O2NbWD4+Ml09YXg7Y1tZPj4yXT1heTtjW1o+PjJdPWF4fX13aGlsZSgwKTtjW18+PjJdPWFxO2Nb
JD4+Ml09YXA7YUQ9Y0wodyx5LHosQSxCLDApfDA7YUU9YXh9ZWxzZXtkb3tpZihhdCl7YXY9YW0r
YXN8MDtpZigoYXZ8MCk+MCl7YUY9KGNbUisoKChhdnwwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChh
dnwwKSU1MTJ8MCk8PDMpfDA7YnJlYWt9ZWxzZXthQj01MTEtYXZ8MDthRj0oY1tSKygoKGFCfDAp
Ly01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgoYUJ8MCklNTEyfDApPDwzKXwwO2JyZWFrfX1lbHNl
e2FGPVB9fXdoaWxlKDApO2FCPWNbVSs0Pj4yXXwwO2FHPStoW2FGPj4zXTthSD0raFthQj4+M107
YUk9K2hbYXA+PjNdO2F2PWFJPGFHO2lmKGFHPj1hSCl7aWYoIWF2KXthRD0wO2FFPWFGO2JyZWFr
fWhbYUY+PjNdPWFJO2hbYXA+PjNdPWFHO2FKPStoW2FGPj4zXTthSz0raFthQj4+M107aWYoYUo+
PWFLKXthRD0xO2FFPWFGO2JyZWFrfWhbYUI+PjNdPWFKO2hbYUY+PjNdPWFLO2FEPTI7YUU9YUY7
YnJlYWt9aWYoYXYpe2hbYUI+PjNdPWFJO2hbYXA+PjNdPWFIO2FEPTE7YUU9YUY7YnJlYWt9aFth
Qj4+M109YUc7aFthRj4+M109YUg7YUc9K2hbYXA+PjNdO2lmKGFHPj1hSCl7YUQ9MTthRT1hRjti
cmVha31oW2FGPj4zXT1hRztoW2FwPj4zXT1hSDthRD0yO2FFPWFGfX13aGlsZSgwKTtSPWNbVD4+
Ml18MDthcz1jW1E+PjJdfDA7YUg9K2hbYXM+PjNdO2FHPStoW2FFPj4zXTtkb3tpZihhSDxhRyl7
YUw9YUQ7YU09YXE7YU49YXA7YW89NzA3fWVsc2V7YW09YXE7YXQ9YXA7YW49Y1thcT4+Ml18MDt3
aGlsZSgxKXtpZigoYXR8MCk9PShhbnwwKSl7YWw9YW0tNHwwO2FCPWNbYWw+PjJdfDA7YU89YWw7
YVA9YUIrNDA5NnwwO2FRPWFCfWVsc2V7YU89YW07YVA9YXQ7YVE9YW59YVI9YVAtOHwwO2lmKChh
c3wwKT09KGFSfDApKXticmVha31hUz0raFthUj4+M107aWYoYVM8YUcpe2FvPTcwNjticmVha31l
bHNle2FtPWFPO2F0PWFSO2FuPWFRfX1pZigoYW98MCk9PTcwNil7YW89MDtoW2FzPj4zXT1hUzto
W2FSPj4zXT1hSDthTD1hRCsxfDA7YU09YU87YU49YVI7YW89NzA3O2JyZWFrfWFuPWFzKzh8MDth
dD1jW1I+PjJdfDA7aWYoKGFuLWF0fDApPT00MDk2KXthbT1SKzR8MDthQj1jW2FtPj4yXXwwO2FU
PWFCO2FVPWFtO2FWPWFCfWVsc2V7YVQ9YW47YVU9UjthVj1hdH1hdD1jW1M+PjJdfDA7YW49Y1tP
Pj4yXXwwO2lmKChhbnwwKT09KGNbYXQ+PjJdfDApKXthQj1hdC00fDA7YVc9YUI7YVg9KGNbYUI+
PjJdfDApKzQwOTZ8MH1lbHNle2FXPWF0O2FYPWFufWFuPWFYLTh8MDthST0raFthbj4+M107ZG97
aWYoYUg8YUkpe2FZPWFUO2FaPWFVO2FfPWFWfWVsc2V7YXQ9YVQ7YUI9YVU7YW09YVY7TDc4Njp3
aGlsZSgxKXthJD1hdDt3aGlsZSgxKXtpZigoYSR8MCk9PShhbnwwKSl7YW89NzY3O2JyZWFrIEw3
MjV9YTA9K2hbYSQ+PjNdO2lmKGFIPGEwKXticmVhayBMNzg2fWFsPWEkKzh8MDtpZigoYWwtYW18
MCk9PTQwOTYpe2JyZWFrfWVsc2V7YSQ9YWx9fWFsPWFCKzR8MDthdj1jW2FsPj4yXXwwO2F0PWF2
O2FCPWFsO2FtPWF2fWhbYSQ+PjNdPWFJO2hbYW4+PjNdPWEwO2FtPWEkKzh8MDthdD1jW2FCPj4y
XXwwO2lmKChhbS1hdHwwKSE9NDA5Nil7YVk9YW07YVo9YUI7YV89YXQ7YnJlYWt9YXQ9YUIrNHww
O2FtPWNbYXQ+PjJdfDA7YVk9YW07YVo9YXQ7YV89YW19fXdoaWxlKDApO2lmKChhWXwwKT09KGFu
fDApKXthbz03Njg7YnJlYWsgTDcyNX1lbHNle2ExPWFZO2EyPWFaO2EzPWFXO2E0PWFuO2E1PWFf
fXdoaWxlKDEpe2FJPStoW2NbUT4+Ml0+PjNdO2FtPWExO2E2PWEyO2F0PWE1O0w3OTg6d2hpbGUo
MSl7YTc9YW07d2hpbGUoMSl7YTg9K2hbYTc+PjNdO2lmKGFJPGE4KXticmVhayBMNzk4fWF2PWE3
Kzh8MDtpZigoYXYtYXR8MCk9PTQwOTYpe2JyZWFrfWVsc2V7YTc9YXZ9fWF2PWE2KzR8MDthbD1j
W2F2Pj4yXXwwO2FtPWFsO2E2PWF2O2F0PWFsfWF0PWEzO2FtPWE0O2FCPWNbYTM+PjJdfDA7d2hp
bGUoMSl7aWYoKGFtfDApPT0oYUJ8MCkpe2FsPWF0LTR8MDthdj1jW2FsPj4yXXwwO2E5PWFsO2Jh
PWF2KzQwOTZ8MDtiYj1hdn1lbHNle2E5PWF0O2JhPWFtO2JiPWFCfWJjPWJhLTh8MDtiZD0raFti
Yz4+M107aWYoYUk8YmQpe2F0PWE5O2FtPWJjO2FCPWJifWVsc2V7YnJlYWt9fWlmKGE2Pj4+MD49
YTk+Pj4wKXtpZihhNz4+PjA+PWJjPj4+MHwoYTZ8MCkhPShhOXwwKSl7YnJlYWt9fWhbYTc+PjNd
PWJkO2hbYmM+PjNdPWE4O2FCPWE3Kzh8MDthbT1jW2E2Pj4yXXwwO2lmKChhQi1hbXwwKSE9NDA5
Nil7YTE9YUI7YTI9YTY7YTM9YTk7YTQ9YmM7YTU9YW07Y29udGludWV9YW09YTYrNHwwO2FCPWNb
YW0+PjJdfDA7YTE9YUI7YTI9YW07YTM9YTk7YTQ9YmM7YTU9YUJ9Y1tUPj4yXT1hNjtjW1E+PjJd
PWE3O2JlPWE3fX13aGlsZSgwKTtMODE2OmRve2lmKChhb3wwKT09NzA3KXthbz0wO2FwPWFzKzh8
MDthbj1jW1I+PjJdfDA7aWYoKGFwLWFufDApPT00MDk2KXthQj1SKzR8MDthbT1jW2FCPj4yXXww
O2JmPWFtO2JnPWFCO2JoPWFtfWVsc2V7YmY9YXA7Ymc9UjtiaD1hbn1pZihiZz4+PjA8YU0+Pj4w
KXtiaT1hTDtiaj1iZjtiaz1iZztibD1hRTtibT1hTTtibj1hTjtibz1iaDthbz03MTF9ZWxzZXtp
ZigoYmd8MCk9PShhTXwwKSZiZj4+PjA8YU4+Pj4wKXtiaT1hTDtiaj1iZjtiaz1iZztibD1hRTti
bT1hTTtibj1hTjtibz1iaDthbz03MTF9ZWxzZXticD1hTDticT1iZjticj1iZzticz1hRX19TDgy
Mzpkb3tpZigoYW98MCk9PTcxMSl7d2hpbGUoMSl7YW89MDthSD0raFtibD4+M107YW49Ymo7YXA9
Yms7YW09Ym87TDgyNjp3aGlsZSgxKXtidD1hbjt3aGlsZSgxKXtidT0raFtidD4+M107aWYoYnU+
PWFIKXticmVhayBMODI2fWFCPWJ0Kzh8MDtpZigoYUItYW18MCk9PTQwOTYpe2JyZWFrfWVsc2V7
YnQ9YUJ9fWFCPWFwKzR8MDthdD1jW2FCPj4yXXwwO2FuPWF0O2FwPWFCO2FtPWF0fWFtPWJtO2Fu
PWJuO2F0PWNbYm0+PjJdfDA7d2hpbGUoMSl7aWYoKGFufDApPT0oYXR8MCkpe2FCPWFtLTR8MDth
dj1jW2FCPj4yXXwwO2J2PWFCO2J3PWF2KzQwOTZ8MDtieD1hdn1lbHNle2J2PWFtO2J3PWFuO2J4
PWF0fWJ5PWJ3LTh8MDtiej0raFtieT4+M107aWYoYno+PWFIKXthbT1idjthbj1ieTthdD1ieH1l
bHNle2JyZWFrfX1pZihidj4+PjA8YXA+Pj4wKXticD1iaTticT1idDticj1hcDticz1ibDticmVh
ayBMODIzfWlmKChidnwwKT09KGFwfDApJmJ5Pj4+MDxidD4+PjApe2JwPWJpO2JxPWJ0O2JyPWFw
O2JzPWJsO2JyZWFrIEw4MjN9aFtidD4+M109Yno7aFtieT4+M109YnU7YXQ9YmkrMXwwO2FuPShi
bHwwKT09KGJ0fDApP2J5OmJsO2FtPWJ0Kzh8MDthdj1jW2FwPj4yXXwwO2lmKChhbS1hdnwwKSE9
NDA5Nil7Ymk9YXQ7Ymo9YW07Yms9YXA7Ymw9YW47Ym09YnY7Ym49Ynk7Ym89YXY7YW89NzExO2Nv
bnRpbnVlfWF2PWFwKzR8MDthbT1jW2F2Pj4yXXwwO2JpPWF0O2JqPWFtO2JrPWF2O2JsPWFuO2Jt
PWJ2O2JuPWJ5O2JvPWFtO2FvPTcxMX19fXdoaWxlKDApO2Rve2lmKChicXwwKT09KGJzfDApKXti
QT1icH1lbHNle2FIPStoW2JzPj4zXTthRz0raFticT4+M107aWYoYUg+PWFHKXtiQT1icDticmVh
a31oW2JxPj4zXT1hSDtoW2JzPj4zXT1hRztiQT1icCsxfDB9fXdoaWxlKDApO2Rve2lmKChiQXww
KT09MCl7YW09Y1tVKzQ+PjJdfDA7Y1tDPj4yXT1jW1U+PjJdO2NbQys0Pj4yXT1hbTtjW2FhPj4y
XT1icjtjW2FiPj4yXT1icTthbT1jTihELEUsMCl8MDtjW2FjPj4yXT1icjtjW2FkPj4yXT1icTth
bj1icS0oY1ticj4+Ml18MCk+PjM7YXY9YW4rMXwwO2lmKChhdnwwKT4wKXthdD1icisoKChhdnww
KS81MTJ8MCk8PDIpfDA7Y1thYz4+Ml09YXQ7YkI9KGNbYXQ+PjJdfDApKygoKGF2fDApJTUxMnww
KTw8Myl8MH1lbHNle2F2PTUxMC1hbnwwO2FuPWJyKygoKGF2fDApLy01MTJ8MCk8PDIpfDA7Y1th
Yz4+Ml09YW47YkI9KGNbYW4+PjJdfDApKyg1MTEtKChhdnwwKSU1MTJ8MCk8PDMpfDB9Y1thZD4+
Ml09YkI7YXY9Y1thZSs0Pj4yXXwwO2NbRz4+Ml09Y1thZT4+Ml07Y1tHKzQ+PjJdPWF2O2lmKGNO
KEYsSCwwKXwwKXtpZihhbSl7YW89NzcwO2JyZWFrIEw3MjV9Y1tTPj4yXT1icjtjW08+PjJdPWJx
O2JlPWNbUT4+Ml18MDticmVhayBMODE2fWlmKCFhbSl7YnJlYWt9YW09YnErOHwwO2lmKChhbS0o
Y1ticj4+Ml18MCl8MCk9PTQwOTYpe2F2PWJyKzR8MDtiQz1jW2F2Pj4yXXwwO2JEPWF2fWVsc2V7
YkM9YW07YkQ9YnJ9Y1tUPj4yXT1iRDtjW1E+PjJdPWJDO2JlPWJDO2JyZWFrIEw4MTZ9fXdoaWxl
KDApO2FtPWNbUT4+Ml18MDtpZigoYnF8MCk9PShhbXwwKSl7YkU9MH1lbHNle2F2PWNbVD4+Ml18
MDtiRT0oYnEtKGNbYnI+PjJdfDApPj4zKSsoYnItYXY8PDcpLShhbS0oY1thdj4+Ml18MCk+PjMp
fDB9YXY9Y1tPPj4yXXwwO2lmKChhdnwwKT09KGJxfDApKXtiRj0wfWVsc2V7YW49Y1tTPj4yXXww
O2JGPShhdi0oY1thbj4+Ml18MCk+PjMpKyhhbi1icjw8NyktKGJxLShjW2JyPj4yXXwwKT4+Myl8
MH1pZigoYkV8MCk8KGJGfDApKXthbj1jW1UrND4+Ml18MDtjW0k+PjJdPWNbVT4+Ml07Y1tJKzQ+
PjJdPWFuO2NbYj4+Ml09YnI7Y1thZj4+Ml09YnE7Y0soSixLLGQpO2FuPWJxKzh8MDtpZigoYW4t
KGNbYnI+PjJdfDApfDApPT00MDk2KXthdj1icis0fDA7Ykc9Y1thdj4+Ml18MDtiSD1hdn1lbHNl
e2JHPWFuO2JIPWJyfWNbVD4+Ml09Ykg7Y1tRPj4yXT1iRztiZT1iRzticmVha31jW2FnPj4yXT1i
cjtjW2FoPj4yXT1icTthbj1icS0oY1ticj4+Ml18MCk+PjM7YXY9YW4rMXwwO2lmKChhdnwwKT4w
KXthdD1icisoKChhdnwwKS81MTJ8MCk8PDIpfDA7Y1thZz4+Ml09YXQ7Ykk9KGNbYXQ+PjJdfDAp
KygoKGF2fDApJTUxMnwwKTw8Myl8MH1lbHNle2F2PTUxMC1hbnwwO2FuPWJyKygoKGF2fDApLy01
MTJ8MCk8PDIpfDA7Y1thZz4+Ml09YW47Ykk9KGNbYW4+PjJdfDApKyg1MTEtKChhdnwwKSU1MTJ8
MCk8PDMpfDB9Y1thaD4+Ml09Ykk7YXY9Y1thZSs0Pj4yXXwwO2NbTT4+Ml09Y1thZT4+Ml07Y1tN
KzQ+PjJdPWF2O2NLKEwsTixkKTtjW1M+PjJdPWJyO2NbTz4+Ml09YnE7YmU9YW19fXdoaWxlKDAp
O1I9Y1tPPj4yXXwwO2lmKChSfDApPT0oYmV8MCkpe2FvPTc2OTticmVha31lbHNle2FpPVI7UD1i
ZX19aWYoKGFvfDApPT02MzApe2JlPWNbVT4+Ml18MDticT1jW1UrND4+Ml18MDtjW2Y+PjJdPWJl
O2NbZis0Pj4yXT1icTtjW2o+PjJdPWJlO2Nbais0Pj4yXT1icTtmPWJxO2JyPWo7aj1iZTtkPWYt
KGNbaj4+Ml18MCk+PjM7Tj1kKzF8MDtpZigoTnwwKT4wKXtMPWorKCgoTnwwKS81MTJ8MCk8PDIp
fDA7Y1ticj4+Ml09TDtiSj0oY1tMPj4yXXwwKSsoKChOfDApJTUxMnwwKTw8Myl8MH1lbHNle049
NTEwLWR8MDtkPWorKCgoTnwwKS8tNTEyfDApPDwyKXwwO2NbYnI+PjJdPWQ7Yko9KGNbZD4+Ml18
MCkrKDUxMS0oKE58MCklNTEyfDApPDwzKXwwfWNbays0Pj4yXT1iSjtjW2w+PjJdPWJlO2NbbCs0
Pj4yXT1icTtiSj1sO2w9Zi0oY1tqPj4yXXwwKT4+MztOPWwrMnwwO2lmKChOfDApPjApe2Q9aiso
KChOfDApLzUxMnwwKTw8Mil8MDtjW2JKPj4yXT1kO2JLPShjW2Q+PjJdfDApKygoKE58MCklNTEy
fDApPDwzKXwwfWVsc2V7Tj01MDktbHwwO2w9aisoKChOfDApLy01MTJ8MCk8PDIpfDA7Y1tiSj4+
Ml09bDtiSz0oY1tsPj4yXXwwKSsoNTExLSgoTnwwKSU1MTJ8MCk8PDMpfDB9Y1ttKzQ+PjJdPWJL
O2Nbbj4+Ml09YmU7Y1tuKzQ+PjJdPWJxO2JxPW47bj1mLShjW2o+PjJdfDApPj4zO2Y9biszfDA7
aWYoKGZ8MCk+MCl7YmU9aisoKChmfDApLzUxMnwwKTw8Mil8MDtjW2JxPj4yXT1iZTtiTD0oY1ti
ZT4+Ml18MCkrKCgoZnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtmPTUwOC1ufDA7bj1qKygoKGZ8MCkv
LTUxMnwwKTw8Mil8MDtjW2JxPj4yXT1uO2JMPShjW24+PjJdfDApKyg1MTEtKChmfDApJTUxMnww
KTw8Myl8MH1jW28rND4+Ml09Ykw7aWYoKGFpfDApPT0oYWt8MCkpe2JMPWFqLTR8MDtjW1M+PjJd
PWJMO2Y9KGNbYkw+PjJdfDApKzQwOTZ8MDtjW08+PjJdPWY7Yk09Zn1lbHNle2JNPWFpfWNbTz4+
Ml09Yk0tODtiTT1jW2FlKzQ+PjJdfDA7Y1twPj4yXT1jW2FlPj4yXTtjW3ArND4+Ml09Yk07Y0wo
ZyxrLG0sbyxxLDApfDA7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NjEwKXtxPWNbVT4+Ml18
MDtvPWNbVSs0Pj4yXXwwO209bztrPW8tKGNbcT4+Ml18MCk+PjM7bz1rKzF8MDtpZigob3wwKT4w
KXtiTj0oY1txKygoKG98MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgob3wwKSU1MTJ8MCk8PDMpfDB9
ZWxzZXtvPTUxMC1rfDA7Yk49KGNbcSsoKChvfDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgo
b3wwKSU1MTJ8MCk8PDMpfDB9bz1rKzJ8MDtpZigob3wwKT4wKXtiTz0oY1txKygoKG98MCkvNTEy
fDApPDwyKT4+Ml18MCkrKCgob3wwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtvPTUwOS1rfDA7Yk89KGNb
cSsoKChvfDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgob3wwKSU1MTJ8MCk8PDMpfDB9aWYo
KGFpfDApPT0oYWt8MCkpe289YWotNHwwO2NbUz4+Ml09bztxPShjW28+PjJdfDApKzQwOTZ8MDtj
W08+PjJdPXE7YlA9cX1lbHNle2JQPWFpfWNbTz4+Ml09YlAtODtiUD1jW2FlKzQ+PjJdfDA7YnU9
K2hbYk4+PjNdO2J6PStoW20+PjNdO2E4PStoW2JPPj4zXTtxPWE4PGJ1O2Rve2lmKGJ1PGJ6KXtp
ZihxKXtoW20+PjNdPWE4O2hbYk8+PjNdPWJ6O2JRPWJ6O2JyZWFrfWhbbT4+M109YnU7aFtiTj4+
M109Yno7YmQ9K2hbYk8+PjNdO2lmKGJkPj1ieil7YlE9YmQ7YnJlYWt9aFtiTj4+M109YmQ7aFti
Tz4+M109Yno7YlE9Ynp9ZWxzZXtpZighcSl7YlE9YTg7YnJlYWt9aFtiTj4+M109YTg7aFtiTz4+
M109YnU7YmQ9K2hbYk4+PjNdO2EwPStoW20+PjNdO2lmKGJkPj1hMCl7YlE9YnU7YnJlYWt9aFtt
Pj4zXT1iZDtoW2JOPj4zXT1hMDtiUT0raFtiTz4+M119fXdoaWxlKDApO2J1PStoW2JQPj4zXTtp
ZihidT49YlEpe2k9ZTtyZXR1cm59aFtiTz4+M109YnU7aFtiUD4+M109YlE7YlE9K2hbYk8+PjNd
O2J1PStoW2JOPj4zXTtpZihiUT49YnUpe2k9ZTtyZXR1cm59aFtiTj4+M109YlE7aFtiTz4+M109
YnU7YnU9K2hbYk4+PjNdO2JRPStoW20+PjNdO2lmKGJ1Pj1iUSl7aT1lO3JldHVybn1oW20+PjNd
PWJ1O2hbYk4+PjNdPWJRO2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTY0Myl7Yk49Y1tVKzQ+
PjJdfDA7Y1tyPj4yXT1jW1U+PjJdO2Nbcis0Pj4yXT1iTjtiTj1jW2FlKzQ+PjJdfDA7Y1t0Pj4y
XT1jW2FlPj4yXTtjW3QrND4+Ml09Yk47Y00ocyx1LDApO2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98
MCk9PTU5Myl7aWYoKGFpfDApPT0oYWt8MCkpe3U9YWotNHwwO2NbUz4+Ml09dTtzPShjW3U+PjJd
fDApKzQwOTZ8MDtjW08+PjJdPXM7YlI9c31lbHNle2JSPWFpfXM9YlItOHwwO2NbTz4+Ml09czti
UT0raFtzPj4zXTtidT0raFtQPj4zXTtpZihiUT49YnUpe2k9ZTtyZXR1cm59aFtQPj4zXT1iUTto
W3M+PjNdPWJ1O2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTU5Nyl7cz1jW1U+PjJdfDA7UD1j
W1UrND4+Ml18MDtVPVA7YlI9UC0oY1tzPj4yXXwwKT4+MztQPWJSKzF8MDtpZigoUHwwKT4wKXti
Uz0oY1tzKygoKFB8MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgoUHwwKSU1MTJ8MCk8PDMpfDB9ZWxz
ZXtQPTUxMC1iUnwwO2JTPShjW3MrKCgoUHwwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKFB8
MCklNTEyfDApPDwzKXwwfWlmKChhaXwwKT09KGFrfDApKXthaz1hai00fDA7Y1tTPj4yXT1haztT
PShjW2FrPj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1TO2JUPVN9ZWxzZXtiVD1haX1jW08+PjJdPWJU
LTg7YlQ9Y1thZSs0Pj4yXXwwO2J1PStoW2JTPj4zXTtiUT0raFtVPj4zXTthOD0raFtiVD4+M107
YWU9YTg8YnU7aWYoYnU+PWJRKXtpZighYWUpe2k9ZTtyZXR1cm59aFtiUz4+M109YTg7aFtiVD4+
M109YnU7Yno9K2hbYlM+PjNdO2EwPStoW1U+PjNdO2lmKGJ6Pj1hMCl7aT1lO3JldHVybn1oW1U+
PjNdPWJ6O2hbYlM+PjNdPWEwO2k9ZTtyZXR1cm59aWYoYWUpe2hbVT4+M109YTg7aFtiVD4+M109
YlE7aT1lO3JldHVybn1oW1U+PjNdPWJ1O2hbYlM+PjNdPWJRO2J1PStoW2JUPj4zXTtpZihidT49
YlEpe2k9ZTtyZXR1cm59aFtiUz4+M109YnU7aFtiVD4+M109YlE7aT1lO3JldHVybn1lbHNlIGlm
KChhb3wwKT09NzYwKXtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT03Njcpe2k9ZTtyZXR1cm59
ZWxzZSBpZigoYW98MCk9PTc2OCl7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzY5KXtpPWU7
cmV0dXJufWVsc2UgaWYoKGFvfDApPT03NzApe2k9ZTtyZXR1cm59fWZ1bmN0aW9uIGNMKGEsYixk
LGUsZixnKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaj0wLGs9MCxs
PTAsbT0wLG49MC4wLG89MC4wLHA9MC4wLHE9MCxyPTAscz0wLjAsdD0wLjAsdT0wLjAsdj0wLHc9
MDtnPWk7aj1hO2E9aTtpPWkrOHwwO2NbYT4+Ml09Y1tqPj4yXTtjW2ErND4+Ml09Y1tqKzQ+PjJd
O2o9YjtiPWk7aT1pKzh8MDtjW2I+PjJdPWNbaj4+Ml07Y1tiKzQ+PjJdPWNbais0Pj4yXTtqPWQ7
ZD1pO2k9aSs4fDA7Y1tkPj4yXT1jW2o+PjJdO2NbZCs0Pj4yXT1jW2orND4+Ml07aj1lO2U9aTtp
PWkrOHwwO2NbZT4+Ml09Y1tqPj4yXTtjW2UrND4+Ml09Y1tqKzQ+PjJdO2o9ZjtmPWk7aT1pKzh8
MDtjW2Y+PjJdPWNbaj4+Ml07Y1tmKzQ+PjJdPWNbais0Pj4yXTtqPWNbYSs0Pj4yXXwwO2s9Y1ti
KzQ+PjJdfDA7bD1jW2QrND4+Ml18MDttPWNbZSs0Pj4yXXwwO249K2hbaz4+M107bz0raFtqPj4z
XTtwPStoW2w+PjNdO3E9cDxuO2Rve2lmKG48byl7aWYocSl7aFtqPj4zXT1wO2hbbD4+M109bzty
PTE7cz1vO2JyZWFrfWhbaj4+M109bjtoW2s+PjNdPW87dD0raFtsPj4zXTtpZih0Pj1vKXtyPTE7
cz10O2JyZWFrfWhbaz4+M109dDtoW2w+PjNdPW87cj0yO3M9b31lbHNle2lmKCFxKXtyPTA7cz1w
O2JyZWFrfWhbaz4+M109cDtoW2w+PjNdPW47dD0raFtrPj4zXTt1PStoW2o+PjNdO2lmKHQ+PXUp
e3I9MTtzPW47YnJlYWt9aFtqPj4zXT10O2hbaz4+M109dTtyPTI7cz0raFtsPj4zXX19d2hpbGUo
MCk7bj0raFttPj4zXTtkb3tpZihuPHMpe2hbbD4+M109bjtoW20+PjNdPXM7cD0raFtsPj4zXTtv
PStoW2s+PjNdO2lmKHA+PW8pe3Y9cisxfDA7YnJlYWt9aFtrPj4zXT1wO2hbbD4+M109bztvPSto
W2s+PjNdO3A9K2hbaj4+M107aWYobz49cCl7dj1yKzJ8MDticmVha31oW2o+PjNdPW87aFtrPj4z
XT1wO3Y9ciszfDB9ZWxzZXt2PXJ9fXdoaWxlKDApO3I9Y1tmKzQ+PjJdfDA7Zj1jW2UrND4+Ml18
MDtzPStoW3I+PjNdO249K2hbZj4+M107aWYocz49bil7dz12O2k9ZztyZXR1cm4gd3wwfWhbZj4+
M109cztoW3I+PjNdPW47cj1jW2QrND4+Ml18MDtuPStoW2Y+PjNdO3M9K2hbcj4+M107aWYobj49
cyl7dz12KzF8MDtpPWc7cmV0dXJuIHd8MH1oW3I+PjNdPW47aFtmPj4zXT1zO2Y9Y1tiKzQ+PjJd
fDA7cz0raFtyPj4zXTtuPStoW2Y+PjNdO2lmKHM+PW4pe3c9disyfDA7aT1nO3JldHVybiB3fDB9
aFtmPj4zXT1zO2hbcj4+M109bjtyPWNbYSs0Pj4yXXwwO249K2hbZj4+M107cz0raFtyPj4zXTtp
ZihuPj1zKXt3PXYrM3wwO2k9ZztyZXR1cm4gd3wwfWhbcj4+M109bjtoW2Y+PjNdPXM7dz12KzR8
MDtpPWc7cmV0dXJuIHd8MH1mdW5jdGlvbiBjTShhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFy
IGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLjAscD0wLjAscT0wLjAscj0wLjAs
cz0wLjAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtkPWk7ZT1hO2E9aTtpPWkrOHww
O2NbYT4+Ml09Y1tlPj4yXTtjW2ErND4+Ml09Y1tlKzQ+PjJdO2U9YjtiPWk7aT1pKzh8MDtjW2I+
PjJdPWNbZT4+Ml07Y1tiKzQ+PjJdPWNbZSs0Pj4yXTtlPWNbYT4+Ml18MDtmPWErNHwwO2c9KGNb
Zj4+Ml18MCktKGNbZT4+Ml18MCk+PjM7aj1nKzJ8MDtpZigoanwwKT4wKXtrPWUrKCgoanwwKS81
MTJ8MCk8PDIpfDA7bD0oY1trPj4yXXwwKSsoKChqfDApJTUxMnwwKTw8Myl8MDttPWt9ZWxzZXtr
PTUwOS1nfDA7Zz1lKygoKGt8MCkvLTUxMnwwKTw8Mil8MDtsPShjW2c+PjJdfDApKyg1MTEtKChr
fDApJTUxMnwwKTw8Myl8MDttPWd9Zz1hO2E9Y1tnPj4yXXwwO2s9Y1tnKzQ+PjJdfDA7Zz1rO2U9
ay0oY1thPj4yXXwwKT4+MztrPWUrMXwwO2lmKChrfDApPjApe249KGNbYSsoKChrfDApLzUxMnww
KTw8Mik+PjJdfDApKygoKGt8MCklNTEyfDApPDwzKXwwfWVsc2V7az01MTAtZXwwO249KGNbYSso
KChrfDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgoa3wwKSU1MTJ8MCk8PDMpfDB9bz0raFtu
Pj4zXTtwPStoW2c+PjNdO3E9K2hbbD4+M107az1xPG87ZG97aWYobzxwKXtpZihrKXtoW2c+PjNd
PXE7aFtsPj4zXT1wO2JyZWFrfWhbZz4+M109bztoW24+PjNdPXA7cj0raFtsPj4zXTtpZihyPj1w
KXticmVha31oW24+PjNdPXI7aFtsPj4zXT1wfWVsc2V7aWYoIWspe2JyZWFrfWhbbj4+M109cTto
W2w+PjNdPW87cj0raFtuPj4zXTtzPStoW2c+PjNdO2lmKHI+PXMpe2JyZWFrfWhbZz4+M109cjto
W24+PjNdPXN9fXdoaWxlKDApO249bC0oY1ttPj4yXXwwKT4+MztnPW4rMXwwO2lmKChnfDApPjAp
e2s9bSsoKChnfDApLzUxMnwwKTw8Mil8MDthPWNbaz4+Ml18MDt0PWs7dT1hKygoKGd8MCklNTEy
fDApPDwzKXwwO3Y9YX1lbHNle2E9NTEwLW58MDtuPW0rKCgoYXwwKS8tNTEyfDApPDwyKXwwO2c9
Y1tuPj4yXXwwO3Q9bjt1PWcrKDUxMS0oKGF8MCklNTEyfDApPDwzKXwwO3Y9Z31nPWIrNHwwO2I9
bDtsPXQ7dD11O3U9bTttPXY7TDEwMjI6d2hpbGUoMSl7dj1iO2E9dDtuPXU7az1tO3doaWxlKDEp
e2lmKChhfDApPT0oY1tnPj4yXXwwKSl7YnJlYWsgTDEwMjJ9bz0raFthPj4zXTtxPStoW3Y+PjNd
O2lmKG88cSl7ZT1uO2o9djt3PWE7cD1xO3doaWxlKDEpe2hbdz4+M109cDtpZigoanwwKT09KGNb
Zj4+Ml18MCkpe2JyZWFrfWlmKChqfDApPT0oY1tlPj4yXXwwKSl7eD1lLTR8MDt5PXg7ej0oY1t4
Pj4yXXwwKSs0MDk2fDB9ZWxzZXt5PWU7ej1qfXg9ei04fDA7cT0raFt4Pj4zXTtpZihvPHEpe2U9
eTt3PWo7aj14O3A9cX1lbHNle2JyZWFrfX1oW2o+PjNdPW87QT1jW2w+PjJdfDB9ZWxzZXtBPWt9
dz1hKzh8MDtpZigody1BfDApPT00MDk2KXticmVha31lbHNle3Y9YTthPXc7bj1sO2s9QX19az1s
KzR8MDtuPWNbaz4+Ml18MDtiPWE7dT1sO2w9azt0PW47bT1ufWk9ZDtyZXR1cm59ZnVuY3Rpb24g
Y04oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MC4wLEU9MC4wLEY9MCxHPTAsSD0wLjAsST0wLjAsSj0wLjAsSz0wLEw9MCxN
PTAsTj0wLjAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAs
Xz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MDtkPWk7aT1pKzh8MDtlPWE7YT1p
O2k9aSs4fDA7Y1thPj4yXT1jW2U+PjJdO2NbYSs0Pj4yXT1jW2UrND4+Ml07ZT1iO2I9aTtpPWkr
OHwwO2NbYj4+Ml09Y1tlPj4yXTtjW2IrND4+Ml09Y1tlKzQ+PjJdO2U9ZHwwO2Y9ZTtnPWk7aT1p
Kzh8MDtqPWc7az1pO2k9aSs4fDA7bD1rO209aTtpPWkrOHwwO249bTtvPWk7aT1pKzh8MDtwPW87
cT1iKzR8MDtyPWNbcT4+Ml18MDtzPWErNHwwO3Q9Y1tzPj4yXXwwO2lmKChyfDApPT0odHwwKSl7
dT0xO2k9ZDtyZXR1cm4gdXwwfXY9YnwwO3c9Y1t2Pj4yXXwwO3g9Y1thPj4yXXwwO3k9Y1t3Pj4y
XXwwO3o9dC0oY1t4Pj4yXXwwKT4+Mztzd2l0Y2goKHIteT4+MykrKHcteDw8NyktenwwKXtjYXNl
IDI6e2lmKChyfDApPT0oeXwwKSl7QT13LTR8MDtjW3Y+PjJdPUE7Qj0oY1tBPj4yXXwwKSs0MDk2
fDA7Y1txPj4yXT1CO0M9Qn1lbHNle0M9cn1CPUMtOHwwO2NbcT4+Ml09QjtEPStoW0I+PjNdO0U9
K2hbdD4+M107aWYoRD49RSl7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbdD4+M109RDtoW0I+PjNdPUU7
dT0xO2k9ZDtyZXR1cm4gdXwwfTtjYXNlIDA6Y2FzZSAxOnt1PTE7aT1kO3JldHVybiB1fDB9O2Nh
c2UgMzp7Qj1hO3Q9Y1tCPj4yXXwwO0M9Y1tCKzQ+PjJdfDA7Qj1DO0E9Qy0oY1t0Pj4yXXwwKT4+
MztDPUErMXwwO2lmKChDfDApPjApe0Y9KGNbdCsoKChDfDApLzUxMnwwKTw8Mik+PjJdfDApKygo
KEN8MCklNTEyfDApPDwzKXwwfWVsc2V7Qz01MTAtQXwwO0Y9KGNbdCsoKChDfDApLy01MTJ8MCk8
PDIpPj4yXXwwKSsoNTExLSgoQ3wwKSU1MTJ8MCk8PDMpfDB9aWYoKHJ8MCk9PSh5fDApKXtDPXct
NHwwO2Nbdj4+Ml09Qzt0PShjW0M+PjJdfDApKzQwOTZ8MDtjW3E+PjJdPXQ7Rz10fWVsc2V7Rz1y
fWNbcT4+Ml09Ry04O0c9Y1tiKzQ+PjJdfDA7RT0raFtGPj4zXTtEPStoW0I+PjNdO0g9K2hbRz4+
M107dD1IPEU7aWYoRT49RCl7aWYoIXQpe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0Y+PjNdPUg7aFtH
Pj4zXT1FO0k9K2hbRj4+M107Sj0raFtCPj4zXTtpZihJPj1KKXt1PTE7aT1kO3JldHVybiB1fDB9
aFtCPj4zXT1JO2hbRj4+M109Sjt1PTE7aT1kO3JldHVybiB1fDB9aWYodCl7aFtCPj4zXT1IO2hb
Rz4+M109RDt1PTE7aT1kO3JldHVybiB1fDB9aFtCPj4zXT1FO2hbRj4+M109RDtFPStoW0c+PjNd
O2lmKEU+PUQpe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0Y+PjNdPUU7aFtHPj4zXT1EO3U9MTtpPWQ7
cmV0dXJuIHV8MH07Y2FzZSA0OntHPWE7Rj1jW0c+PjJdfDA7Qj1jW0crND4+Ml18MDtHPUI7dD1C
LShjW0Y+PjJdfDApPj4zO0I9dCsxfDA7aWYoKEJ8MCk+MCl7Sz0oY1tGKygoKEJ8MCkvNTEyfDAp
PDwyKT4+Ml18MCkrKCgoQnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtCPTUxMC10fDA7Sz0oY1tGKygo
KEJ8MCkvLTUxMnwwKTw8Mik+PjJdfDApKyg1MTEtKChCfDApJTUxMnwwKTw8Myl8MH1CPXQrMnww
O2lmKChCfDApPjApe0w9KGNbRisoKChCfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKEJ8MCklNTEy
fDApPDwzKXwwfWVsc2V7Qj01MDktdHwwO0w9KGNbRisoKChCfDApLy01MTJ8MCk8PDIpPj4yXXww
KSsoNTExLSgoQnwwKSU1MTJ8MCk8PDMpfDB9aWYoKHJ8MCk9PSh5fDApKXtCPXctNHwwO2Nbdj4+
Ml09QjtGPShjW0I+PjJdfDApKzQwOTZ8MDtjW3E+PjJdPUY7TT1GfWVsc2V7TT1yfWNbcT4+Ml09
TS04O009Y1tiKzQ+PjJdfDA7RD0raFtLPj4zXTtFPStoW0c+PjNdO0g9K2hbTD4+M107Rj1IPEQ7
ZG97aWYoRDxFKXtpZihGKXtoW0c+PjNdPUg7aFtMPj4zXT1FO049RTticmVha31oW0c+PjNdPUQ7
aFtLPj4zXT1FO0o9K2hbTD4+M107aWYoSj49RSl7Tj1KO2JyZWFrfWhbSz4+M109SjtoW0w+PjNd
PUU7Tj1FfWVsc2V7aWYoIUYpe049SDticmVha31oW0s+PjNdPUg7aFtMPj4zXT1EO0o9K2hbSz4+
M107ST0raFtHPj4zXTtpZihKPj1JKXtOPUQ7YnJlYWt9aFtHPj4zXT1KO2hbSz4+M109STtOPSto
W0w+PjNdfX13aGlsZSgwKTtEPStoW00+PjNdO2lmKEQ+PU4pe3U9MTtpPWQ7cmV0dXJuIHV8MH1o
W0w+PjNdPUQ7aFtNPj4zXT1OO049K2hbTD4+M107RD0raFtLPj4zXTtpZihOPj1EKXt1PTE7aT1k
O3JldHVybiB1fDB9aFtLPj4zXT1OO2hbTD4+M109RDtEPStoW0s+PjNdO049K2hbRz4+M107aWYo
RD49Til7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbRz4+M109RDtoW0s+PjNdPU47dT0xO2k9ZDtyZXR1
cm4gdXwwfTtjYXNlIDU6e0s9YTtHPWNbSz4+Ml18MDtMPWNbSys0Pj4yXXwwO2NbZT4+Ml09Rztj
W2UrND4+Ml09TDtjW2c+PjJdPUc7Y1tnKzQ+PjJdPUw7ZT1MO0s9ZztnPUc7TT1lLShjW2c+PjJd
fDApPj4zO0Y9TSsxfDA7aWYoKEZ8MCk+MCl7Qj1nKygoKEZ8MCkvNTEyfDApPDwyKXwwO2NbSz4+
Ml09QjtPPShjW0I+PjJdfDApKygoKEZ8MCklNTEyfDApPDwzKXwwfWVsc2V7Rj01MTAtTXwwO009
ZysoKChGfDApLy01MTJ8MCk8PDIpfDA7Y1tLPj4yXT1NO089KGNbTT4+Ml18MCkrKDUxMS0oKEZ8
MCklNTEyfDApPDwzKXwwfWNbais0Pj4yXT1PO2Nbaz4+Ml09RztjW2srND4+Ml09TDtPPWs7az1l
LShjW2c+PjJdfDApPj4zO0Y9aysyfDA7aWYoKEZ8MCk+MCl7TT1nKygoKEZ8MCkvNTEyfDApPDwy
KXwwO2NbTz4+Ml09TTtQPShjW00+PjJdfDApKygoKEZ8MCklNTEyfDApPDwzKXwwfWVsc2V7Rj01
MDkta3wwO2s9ZysoKChGfDApLy01MTJ8MCk8PDIpfDA7Y1tPPj4yXT1rO1A9KGNbaz4+Ml18MCkr
KDUxMS0oKEZ8MCklNTEyfDApPDwzKXwwfWNbbCs0Pj4yXT1QO2NbbT4+Ml09RztjW20rND4+Ml09
TDtMPW07bT1lLShjW2c+PjJdfDApPj4zO2U9bSszfDA7aWYoKGV8MCk+MCl7Rz1nKygoKGV8MCkv
NTEyfDApPDwyKXwwO2NbTD4+Ml09RztRPShjW0c+PjJdfDApKygoKGV8MCklNTEyfDApPDwzKXww
fWVsc2V7ZT01MDgtbXwwO209ZysoKChlfDApLy01MTJ8MCk8PDIpfDA7Y1tMPj4yXT1tO1E9KGNb
bT4+Ml18MCkrKDUxMS0oKGV8MCklNTEyfDApPDwzKXwwfWNbbis0Pj4yXT1RO2lmKChyfDApPT0o
eXwwKSl7eT13LTR8MDtjW3Y+PjJdPXk7dj0oY1t5Pj4yXXwwKSs0MDk2fDA7Y1txPj4yXT12O1I9
dn1lbHNle1I9cn1jW3E+PjJdPVItODtSPWI7Yj1jW1IrND4+Ml18MDtjW28+PjJdPWNbUj4+Ml07
Y1tvKzQ+PjJdPWI7Y0woZixqLGwsbixwLDApfDA7dT0xO2k9ZDtyZXR1cm4gdXwwfTtkZWZhdWx0
OntwPXorMnwwO2lmKChwfDApPjApe249eCsoKChwfDApLzUxMnwwKTw8Mil8MDtTPW47VD0oY1tu
Pj4yXXwwKSsoKChwfDApJTUxMnwwKTw8Myl8MH1lbHNle3A9NTA5LXp8MDt6PXgrKCgocHwwKS8t
NTEyfDApPDwyKXwwO1M9ejtUPShjW3o+PjJdfDApKyg1MTEtKChwfDApJTUxMnwwKTw8Myl8MH1w
PWE7YT1jW3A+PjJdfDA7ej1jW3ArND4+Ml18MDtwPXo7eD16LShjW2E+PjJdfDApPj4zO3o9eCsx
fDA7aWYoKHp8MCk+MCl7VT0oY1thKygoKHp8MCkvNTEyfDApPDwyKT4+Ml18MCkrKCgoenwwKSU1
MTJ8MCk8PDMpfDB9ZWxzZXt6PTUxMC14fDA7VT0oY1thKygoKHp8MCkvLTUxMnwwKTw8Mik+PjJd
fDApKyg1MTEtKCh6fDApJTUxMnwwKTw8Myl8MH1OPStoW1U+PjNdO0Q9K2hbcD4+M107SD0raFtU
Pj4zXTt6PUg8Tjtkb3tpZihOPEQpe2lmKHope2hbcD4+M109SDtoW1Q+PjNdPUQ7YnJlYWt9aFtw
Pj4zXT1OO2hbVT4+M109RDtFPStoW1Q+PjNdO2lmKEU+PUQpe2JyZWFrfWhbVT4+M109RTtoW1Q+
PjNdPUR9ZWxzZXtpZigheil7YnJlYWt9aFtVPj4zXT1IO2hbVD4+M109TjtFPStoW1U+PjNdO0k9
K2hbcD4+M107aWYoRT49SSl7YnJlYWt9aFtwPj4zXT1FO2hbVT4+M109SX19d2hpbGUoMCk7VT1U
LShjW1M+PjJdfDApPj4zO3A9VSsxfDA7aWYoKHB8MCk+MCl7ej1TKygoKHB8MCkvNTEyfDApPDwy
KXwwO2E9Y1t6Pj4yXXwwO1Y9MDtXPWErKCgocHwwKSU1MTJ8MCk8PDMpfDA7WD16O1k9UztaPVQ7
Xz1hfWVsc2V7YT01MTAtVXwwO1U9UysoKChhfDApLy01MTJ8MCk8PDIpfDA7ej1jW1U+PjJdfDA7
Vj0wO1c9eisoNTExLSgoYXwwKSU1MTJ8MCk8PDMpfDA7WD1VO1k9UztaPVQ7Xz16fUwxMDY1Ondo
aWxlKDEpe3o9VjskPVc7VD1ZO1M9WjtVPV87d2hpbGUoMSl7aWYoKCR8MCk9PShjW3E+PjJdfDAp
KXt1PTE7YWE9OTA2O2JyZWFrIEwxMDY1fU49K2hbJD4+M107SD0raFtTPj4zXTtpZihOPEgpe2E9
VDtwPVM7eD0kO0Q9SDt3aGlsZSgxKXtoW3g+PjNdPUQ7aWYoKHB8MCk9PShjW3M+PjJdfDApKXti
cmVha31pZigocHwwKT09KGNbYT4+Ml18MCkpe249YS00fDA7YWI9bjthYz0oY1tuPj4yXXwwKSs0
MDk2fDB9ZWxzZXthYj1hO2FjPXB9bj1hYy04fDA7SD0raFtuPj4zXTtpZihOPEgpe2E9YWI7eD1w
O3A9bjtEPUh9ZWxzZXticmVha319aFtwPj4zXT1OO3g9eisxfDA7aWYoKHh8MCk9PTgpe2JyZWFr
IEwxMDY1fWFkPXg7YWU9Y1tYPj4yXXwwfWVsc2V7YWQ9ejthZT1VfXg9JCs4fDA7aWYoKHgtYWV8
MCk9PTQwOTYpe2JyZWFrfWVsc2V7ej1hZDtTPSQ7JD14O1Q9WDtVPWFlfX1VPVgrNHwwO1Q9Y1tV
Pj4yXXwwO1Y9YWQ7Vz1UO1k9WDtYPVU7Wj0kO189VH1pZigoYWF8MCk9PTkwNil7aT1kO3JldHVy
biB1fDB9YWE9JCs4fDA7aWYoKGFhLShjW1g+PjJdfDApfDApPT00MDk2KXthZj1jW1grND4+Ml18
MH1lbHNle2FmPWFhfXU9KGFmfDApPT0oY1txPj4yXXwwKTtpPWQ7cmV0dXJuIHV8MH19cmV0dXJu
IDB9ZnVuY3Rpb24gY08oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxp
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wO2U9YSs4fDA7Zj1jW2U+PjJdfDA7Zz1hKzR8MDtpPWNbZz4+Ml18MDtpZigoZnww
KT09KGl8MCkpe2o9MH1lbHNle2o9KGYtaTw8NyktMXwwfWs9YSsxNnwwO2w9Y1trPj4yXXwwO209
YSsyMHwwO249Y1ttPj4yXXwwO289ai1sLW58MDtpZihvPj4+MDxiPj4+MCl7Y1EoYSxiLW98MCk7
cD1jW20+PjJdfDA7cT1jW2s+PjJdfDA7cj1jW2c+PjJdfDA7cz1jW2U+PjJdfDB9ZWxzZXtwPW47
cT1sO3I9aTtzPWZ9Zj1xK3B8MDtwPXIrKGY+Pj45PDwyKXwwO2lmKChzfDApPT0ocnwwKSl7dD0w
fWVsc2V7dD0oY1twPj4yXXwwKSsoKGYmNTExKTw8Myl8MH1pZigoYnwwKT09MCl7cmV0dXJufWVs
c2V7dT10O3Y9cDt3PWJ9d2hpbGUoMSl7aWYoKHV8MCkhPTApe2hbdT4+M109K2hbZD4+M119Yj13
LTF8MDtwPXUrOHwwO2lmKChwLShjW3Y+PjJdfDApfDApPT00MDk2KXt0PXYrNHwwO3g9dDt5PWNb
dD4+Ml18MH1lbHNle3g9djt5PXB9Y1ttPj4yXT0oY1ttPj4yXXwwKSsxO2lmKChifDApPT0wKXti
cmVha31lbHNle3U9eTt2PXg7dz1ifX1yZXR1cm59ZnVuY3Rpb24gY1AoYSxiKXthPWF8MDtiPWJ8
MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MDtkPWErNHwwO2U9Y1tkPj4yXXwwO2Y9YXwwO2Rve2lmKChlfDApPT0o
Y1tmPj4yXXwwKSl7Zz1hKzh8MDtoPWNbZz4+Ml18MDtpPWErMTJ8MDtqPWNbaT4+Ml18MDtrPWo7
aWYoaD4+PjA8aj4+PjApe2o9aDtsPSgoay1qPj4yKSsxfDApLzJ8MDttPWotZXwwO2o9aCsobC0o
bT4+Mik8PDIpfDA7a18oanwwLGV8MCxtfDApO2NbZD4+Ml09ajtjW2c+PjJdPShjW2c+PjJdfDAp
KyhsPDwyKTtuPWo7YnJlYWt9aj1rLWU+PjE7az0oanwwKT09MD8xOmo7aj1rTyhrPDwyKXwwO2w9
aisoKGsrM3wwKT4+PjI8PDIpfDA7bT1qKyhrPDwyKXwwO2lmKChlfDApPT0oaHwwKSl7bz1sO3A9
ZX1lbHNle2s9ZTtxPWw7ZG97aWYoKHF8MCk9PTApe3I9MH1lbHNle2NbcT4+Ml09Y1trPj4yXTty
PXF9cT1yKzR8MDtrPWsrNHwwO313aGlsZSgoa3wwKSE9KGh8MCkpO289cTtwPWNbZj4+Ml18MH1j
W2Y+PjJdPWo7Y1tkPj4yXT1sO2NbZz4+Ml09bztjW2k+PjJdPW07aWYoKHB8MCk9PTApe249bDti
cmVha31rUyhwKTtuPWNbZD4+Ml18MH1lbHNle249ZX19d2hpbGUoMCk7ZT1uLTR8MDtpZigoZXww
KT09MCl7cz1uO3Q9cy00fDA7Y1tkPj4yXT10O3JldHVybn1jW2U+PjJdPWNbYj4+Ml07cz1jW2Q+
PjJdfDA7dD1zLTR8MDtjW2Q+PjJdPXQ7cmV0dXJufWZ1bmN0aW9uIGNRKGEsYil7YT1hfDA7Yj1i
fDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxh
ZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wO2Q9aTtpPWkrMzJ8MDtlPWR8MDtmPWQr
OHwwO2c9YXwwO2g9YSs4fDA7aj1jW2g+PjJdfDA7az1hKzR8MDtsPWNbaz4+Ml18MDttPSgoanww
KT09KGx8MCkpK2J8MDtiPSgobSY1MTF8MCkhPTApKyhtPj4+OSl8MDttPWErMTZ8MDtuPWNbbT4+
Ml18MDtvPW4+Pj45O3A9Yj4+PjA8bz4+PjA/YjpvO3E9Yi1wfDA7aWYoKGJ8MCk9PShwfDApKXtj
W20+PjJdPW4tKGI8PDkpO2lmKChifDApPT0wKXtpPWQ7cmV0dXJufW49YSsxMnwwO3I9YXwwO3M9
Yjt0PWo7dT1sO3doaWxlKDEpe3Y9Y1t1Pj4yXXwwO3c9dSs0fDA7Y1trPj4yXT13O2Rve2lmKCh0
fDApPT0oY1tuPj4yXXwwKSl7eD1jW3I+PjJdfDA7aWYodz4+PjA+eD4+PjApe3k9dzt6PSgoeS14
Pj4yKSsxfDApLy0yfDA7QT16KzF8MDtCPXQteXwwO2tfKHUrKEE8PDIpfDAsd3wwLEJ8MCk7eT11
KyhBKyhCPj4yKTw8Mil8MDtjW2g+PjJdPXk7Y1trPj4yXT0oY1trPj4yXXwwKSsoejw8Mik7Qz15
O2JyZWFrfXk9dC14Pj4xO3o9KHl8MCk9PTA/MTp5O3k9a08oejw8Mil8MDtCPXkrKHo+Pj4yPDwy
KXwwO0E9eSsoejw8Mil8MDtpZigod3wwKT09KHR8MCkpe0Q9QjtFPXh9ZWxzZXt4PXc7ej1CO2Rv
e2lmKCh6fDApPT0wKXtGPTB9ZWxzZXtjW3o+PjJdPWNbeD4+Ml07Rj16fXo9Ris0fDA7eD14KzR8
MDt9d2hpbGUoKHh8MCkhPSh0fDApKTtEPXo7RT1jW3I+PjJdfDB9Y1tyPj4yXT15O2Nbaz4+Ml09
QjtjW2g+PjJdPUQ7Y1tuPj4yXT1BO2lmKChFfDApPT0wKXtDPUQ7YnJlYWt9a1MoRSk7Qz1jW2g+
PjJdfDB9ZWxzZXtDPXR9fXdoaWxlKDApO2lmKChDfDApPT0wKXtHPTB9ZWxzZXtjW0M+PjJdPXY7
Rz1jW2g+PjJdfDB9dz1HKzR8MDtjW2g+PjJdPXc7eD1zLTF8MDtpZigoeHwwKT09MCl7YnJlYWt9
cz14O3Q9dzt1PWNbaz4+Ml18MH1pPWQ7cmV0dXJufXU9YSsxMnwwO3Q9dXwwO3M9Y1t0Pj4yXXww
O0c9YXwwO2E9cy0oY1tHPj4yXXwwKXwwO0M9ai1sPj4yO2lmKHE+Pj4wPD0oKGE+PjIpLUN8MCk+
Pj4wKXtsPXE7RT1qO2o9czt3aGlsZSgxKXtpZigoanwwKT09KEV8MCkpe0g9OTcxO2JyZWFrfXM9
a08oNDA5Nil8MDtpZigoRXwwKT09MCl7ST0wfWVsc2V7Y1tFPj4yXT1zO0k9Y1toPj4yXXwwfXM9
SSs0fDA7Y1toPj4yXT1zO0Q9bC0xfDA7aWYoKER8MCk9PTApe0o9cztIPTk3MjticmVha31sPUQ7
RT1zO2o9Y1t0Pj4yXXwwfWRve2lmKChIfDApPT05NzEpe2lmKChsfDApPT0wKXtKPWo7SD05NzI7
YnJlYWt9RT1+bztJPX5iO3M9RT4+PjA+ST4+PjA/RTpJO0k9bDtkb3tjW2U+PjJdPWtPKDQwOTYp
fDA7Y1AoZyxlKTtJPUktMXwwO0s9Y1toPj4yXXwwO0w9KGNbbT4+Ml18MCkrNTEyLSgoSy0oY1tr
Pj4yXXwwKXwwKT09NCl8MDtjW20+PjJdPUw7fXdoaWxlKChJfDApIT0wKTtNPWwtMS1zfDA7Tj1L
O089TH19d2hpbGUoMCk7aWYoKEh8MCk9PTk3Mil7TT1wO049SjtPPWNbbT4+Ml18MH1jW20+PjJd
PU8tKE08PDkpO2lmKChNfDApPT0wKXtpPWQ7cmV0dXJufWVsc2V7UD1NO1E9Tn1kb3tOPWNbaz4+
Ml18MDtNPWNbTj4+Ml18MDtPPU4rNHwwO2Nbaz4+Ml09Tztkb3tpZigoUXwwKT09KGNbdD4+Ml18
MCkpe0o9Y1tHPj4yXXwwO2lmKE8+Pj4wPko+Pj4wKXtIPU87TD0oKEgtSj4+MikrMXwwKS8tMnww
O0s9TCsxfDA7bD1RLUh8MDtrXyhOKyhLPDwyKXwwLE98MCxsfDApO0g9TisoSysobD4+Mik8PDIp
fDA7Y1toPj4yXT1IO2Nbaz4+Ml09KGNbaz4+Ml18MCkrKEw8PDIpO1I9SDticmVha31IPVEtSj4+
MTtMPShIfDApPT0wPzE6SDtIPWtPKEw8PDIpfDA7bD1IKyhMPj4+Mjw8Mil8MDtLPUgrKEw8PDIp
fDA7aWYoKE98MCk9PShRfDApKXtTPWw7VD1KfWVsc2V7Sj1PO0w9bDtkb3tpZigoTHwwKT09MCl7
VT0wfWVsc2V7Y1tMPj4yXT1jW0o+PjJdO1U9TH1MPVUrNHwwO0o9Sis0fDA7fXdoaWxlKChKfDAp
IT0oUXwwKSk7Uz1MO1Q9Y1tHPj4yXXwwfWNbRz4+Ml09SDtjW2s+PjJdPWw7Y1toPj4yXT1TO2Nb
dD4+Ml09SztpZigoVHwwKT09MCl7Uj1TO2JyZWFrfWtTKFQpO1I9Y1toPj4yXXwwfWVsc2V7Uj1R
fX13aGlsZSgwKTtpZigoUnwwKT09MCl7Vj0wfWVsc2V7Y1tSPj4yXT1NO1Y9Y1toPj4yXXwwfVE9
Vis0fDA7Y1toPj4yXT1RO1A9UC0xfDA7fXdoaWxlKChQfDApIT0wKTtpPWQ7cmV0dXJufVA9cDw8
OTtRPWE+PjE7YT1xK0N8MDtWPVE+Pj4wPGE+Pj4wP2E6UTtRPWYrMTJ8MDtjW1E+PjJdPTA7Y1tm
KzE2Pj4yXT11O2lmKChWfDApPT0wKXtXPTB9ZWxzZXtXPWtPKFY8PDIpfDB9dT1mfDA7Y1t1Pj4y
XT1XO2E9VysoQy1wPDwyKXwwO0M9Zis4fDA7Y1tDPj4yXT1hO1I9Zis0fDA7Y1tSPj4yXT1hO1Q9
VysoVjw8Mil8MDtjW1E+PjJdPVQ7Vj1xO3E9VztXPWE7Uz1UO1Q9YTt3aGlsZSgxKXthPWtPKDQw
OTYpfDA7ZG97aWYoKFd8MCk9PShTfDApKXtpZihUPj4+MD5xPj4+MCl7VT1UO089KChVLXE+PjIp
KzF8MCkvLTJ8MDtOPVMtVXwwO2tfKFQrKE88PDIpfDAsVHwwLE58MCk7VT1UKyhPKyhOPj4yKTw8
Mil8MDtjW0M+PjJdPVU7Tj0oY1tSPj4yXXwwKSsoTzw8Mil8MDtjW1I+PjJdPU47WD1VO1k9Uzta
PXE7Xz1OO2JyZWFrfU49Uy1xPj4xO1U9KE58MCk9PTA/MTpOO049a08oVTw8Mil8MDtPPU4rKFU+
Pj4yPDwyKXwwO3M9TisoVTw8Mil8MDtpZigoVHwwKT09KFN8MCkpeyQ9TzthYT1xfWVsc2V7VT1U
O0o9Tztkb3tpZigoSnwwKT09MCl7YWI9MH1lbHNle2NbSj4+Ml09Y1tVPj4yXTthYj1KfUo9YWIr
NHwwO1U9VSs0fDA7fXdoaWxlKChVfDApIT0oU3wwKSk7JD1KO2FhPWNbdT4+Ml18MH1jW3U+PjJd
PU47Y1tSPj4yXT1PO2NbQz4+Ml09JDtjW1E+PjJdPXM7aWYoKGFhfDApPT0wKXtYPSQ7WT1zO1o9
TjtfPU87YnJlYWt9a1MoYWEpO1g9JDtZPXM7Wj1OO189T31lbHNle1g9VztZPVM7Wj1xO189VH19
d2hpbGUoMCk7aWYoKFh8MCk9PTApe2FjPTB9ZWxzZXtjW1g+PjJdPWE7YWM9Y1tDPj4yXXwwfWFk
PWFjKzR8MDtjW0M+PjJdPWFkO009Vi0xfDA7aWYoKE18MCk9PTApe2JyZWFrfWVsc2V7Vj1NO3E9
WjtXPWFkO1M9WTtUPV99fWlmKChwfDApIT0wKXtfPXA7cD1jW2s+PjJdfDA7VD1hZDthZD1ZO1k9
Wjt3aGlsZSgxKXtkb3tpZigoVHwwKT09KGFkfDApKXtaPWNbUj4+Ml18MDtpZihaPj4+MD5ZPj4+
MCl7Uz1aO1c9KChTLVk+PjIpKzF8MCkvLTJ8MDtxPVorKFc8PDIpfDA7Vj1hZC1TfDA7a18ocXww
LFp8MCxWfDApO1M9WisoVysoVj4+Mik8PDIpfDA7Y1tDPj4yXT1TO2NbUj4+Ml09cTthZT1TO2Fm
PWFkO2FnPVk7YnJlYWt9Uz1hZC1ZPj4xO3E9KFN8MCk9PTA/MTpTO1M9a08ocTw8Mil8MDtWPVMr
KHE+Pj4yPDwyKXwwO1c9UysocTw8Mil8MDtpZigoWnwwKT09KGFkfDApKXthaD1WO2FpPVl9ZWxz
ZXtxPVo7Wj1WO2Rve2lmKChafDApPT0wKXthaj0wfWVsc2V7Y1taPj4yXT1jW3E+PjJdO2FqPVp9
Wj1hais0fDA7cT1xKzR8MDt9d2hpbGUoKHF8MCkhPShhZHwwKSk7YWg9WjthaT1jW3U+PjJdfDB9
Y1t1Pj4yXT1TO2NbUj4+Ml09VjtjW0M+PjJdPWFoO2NbUT4+Ml09VztpZigoYWl8MCk9PTApe2Fl
PWFoO2FmPVc7YWc9UzticmVha31rUyhhaSk7YWU9YWg7YWY9VzthZz1TfWVsc2V7YWU9VDthZj1h
ZDthZz1ZfX13aGlsZSgwKTtpZigoYWV8MCk9PTApe2FrPTB9ZWxzZXtjW2FlPj4yXT1jW3A+PjJd
O2FrPWNbQz4+Ml18MH1hPWFrKzR8MDtjW0M+PjJdPWE7cT0oY1trPj4yXXwwKSs0fDA7Y1trPj4y
XT1xO089Xy0xfDA7aWYoKE98MCk9PTApe2JyZWFrfWVsc2V7Xz1PO3A9cTtUPWE7YWQ9YWY7WT1h
Z319fWFnPWNbaD4+Ml18MDt3aGlsZSgxKXtpZigoYWd8MCk9PShjW2s+PjJdfDApKXticmVha31Z
PWFnLTR8MDtjUyhmLFkpO2FnPVl9Zj1jW0c+PjJdfDA7Y1tHPj4yXT1jW3U+PjJdO2NbdT4+Ml09
ZjtjW2s+PjJdPWNbUj4+Ml07Y1tSPj4yXT1hZztSPWNbaD4+Ml18MDtjW2g+PjJdPWNbQz4+Ml07
Y1tDPj4yXT1SO2g9Y1t0Pj4yXXwwO2NbdD4+Ml09Y1tRPj4yXTtjW1E+PjJdPWg7Y1ttPj4yXT0o
Y1ttPj4yXXwwKS1QO2lmKChhZ3wwKSE9KFJ8MCkpe2NbQz4+Ml09UisofigoUi00KygtYWd8MCl8
MCk+Pj4yKTw8Mil9aWYoKGZ8MCk9PTApe2k9ZDtyZXR1cm59a1MoZik7aT1kO3JldHVybn1mdW5j
dGlvbiBjUihhLGIsYyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
dmFyIGc9MC4wLGk9MC4wLGo9MC4wLGs9MCxsPTAuMCxtPTAuMCxuPTAuMCxvPTAscD0wO2c9K2hb
Yj4+M107aT0raFthPj4zXTtqPStoW2M+PjNdO2Y9ajxnO2Rve2lmKGc8aSl7aWYoZil7aFthPj4z
XT1qO2hbYz4+M109aTtrPTE7bD1pO2JyZWFrfWhbYT4+M109ZztoW2I+PjNdPWk7bT0raFtjPj4z
XTtpZihtPj1pKXtrPTE7bD1tO2JyZWFrfWhbYj4+M109bTtoW2M+PjNdPWk7az0yO2w9aX1lbHNl
e2lmKCFmKXtrPTA7bD1qO2JyZWFrfWhbYj4+M109ajtoW2M+PjNdPWc7bT0raFtiPj4zXTtuPSto
W2E+PjNdO2lmKG0+PW4pe2s9MTtsPWc7YnJlYWt9aFthPj4zXT1tO2hbYj4+M109bjtrPTI7bD0r
aFtjPj4zXX19d2hpbGUoMCk7Zz0raFtkPj4zXTtkb3tpZihnPGwpe2hbYz4+M109ZztoW2Q+PjNd
PWw7aj0raFtjPj4zXTtpPStoW2I+PjNdO2lmKGo+PWkpe289aysxfDA7YnJlYWt9aFtiPj4zXT1q
O2hbYz4+M109aTtpPStoW2I+PjNdO2o9K2hbYT4+M107aWYoaTxqKXtoW2E+PjNdPWk7aFtiPj4z
XT1qO289ayszfDA7YnJlYWt9ZWxzZXtvPWsrMnwwO2JyZWFrfX1lbHNle289a319d2hpbGUoMCk7
bD0raFtlPj4zXTtnPStoW2Q+PjNdO2lmKGw+PWcpe3A9bztyZXR1cm4gcHwwfWhbZD4+M109bDto
W2U+PjNdPWc7Zz0raFtkPj4zXTtsPStoW2M+PjNdO2lmKGc+PWwpe3A9bysxfDA7cmV0dXJuIHB8
MH1oW2M+PjNdPWc7aFtkPj4zXT1sO2w9K2hbYz4+M107Zz0raFtiPj4zXTtpZihsPj1nKXtwPW8r
MnwwO3JldHVybiBwfDB9aFtiPj4zXT1sO2hbYz4+M109ZztnPStoW2I+PjNdO2w9K2hbYT4+M107
aWYoZz49bCl7cD1vKzN8MDtyZXR1cm4gcHwwfWhbYT4+M109ZztoW2I+PjNdPWw7cD1vKzR8MDty
ZXR1cm4gcHwwfWZ1bmN0aW9uIGNTKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9
MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTA7ZD1h
KzR8MDtlPWNbZD4+Ml18MDtmPWF8MDtkb3tpZigoZXwwKT09KGNbZj4+Ml18MCkpe2c9YSs4fDA7
aD1jW2c+PjJdfDA7aT1hKzEyfDA7aj1jW2k+PjJdfDA7az1qO2lmKGg+Pj4wPGo+Pj4wKXtqPWg7
bD0oKGstaj4+MikrMXwwKS8yfDA7bT1qLWV8MDtqPWgrKGwtKG0+PjIpPDwyKXwwO2tfKGp8MCxl
fDAsbXwwKTtjW2Q+PjJdPWo7Y1tnPj4yXT0oY1tnPj4yXXwwKSsobDw8Mik7bj1qO2JyZWFrfWo9
ay1lPj4xO2s9KGp8MCk9PTA/MTpqO2o9a08oazw8Mil8MDtsPWorKChrKzN8MCk+Pj4yPDwyKXww
O209aisoazw8Mil8MDtpZigoZXwwKT09KGh8MCkpe289bDtwPWV9ZWxzZXtrPWU7cT1sO2Rve2lm
KChxfDApPT0wKXtyPTB9ZWxzZXtjW3E+PjJdPWNbaz4+Ml07cj1xfXE9cis0fDA7az1rKzR8MDt9
d2hpbGUoKGt8MCkhPShofDApKTtvPXE7cD1jW2Y+PjJdfDB9Y1tmPj4yXT1qO2NbZD4+Ml09bDtj
W2c+PjJdPW87Y1tpPj4yXT1tO2lmKChwfDApPT0wKXtuPWw7YnJlYWt9a1MocCk7bj1jW2Q+PjJd
fDB9ZWxzZXtuPWV9fXdoaWxlKDApO2U9bi00fDA7aWYoKGV8MCk9PTApe3M9bjt0PXMtNHwwO2Nb
ZD4+Ml09dDtyZXR1cm59Y1tlPj4yXT1jW2I+PjJdO3M9Y1tkPj4yXXwwO3Q9cy00fDA7Y1tkPj4y
XT10O3JldHVybn1mdW5jdGlvbiBjVCgpe2NbMjQ0Nl09MDtjWzI0NDddPTA7Y1syNDQ4XT0wO2Ek
KDcyLDk3ODQsdXwwKXwwO3JldHVybn1mdW5jdGlvbiBjVShhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1j
fDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLjAs
cT0wLjAscj0wLjAscz0wLjAsdD0wLjAsdT0wLHY9MCx3PTAseD0wLjAseT0wLHo9MC4wLEE9MCxC
PTAsQz0wLEQ9MC4wLEU9MCxGPTAsRz0wLjAsSD0wLEk9MCxKPTAsSz0wLjAsTD0wLE09MCxOPTAu
MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MC4wLFU9MCxWPTAsVz0wLjAsWD0wLFk9MC4wO2Q9YTth
PWI7TDEzOTc6d2hpbGUoMSl7Yj1hO2U9YS04fDA7Zj1kO0wxMzk5OndoaWxlKDEpe2c9ZjtpPWIt
Z3wwO2o9aT4+Mztzd2l0Y2goanwwKXtjYXNlIDM6e2s9MTEwMjticmVhayBMMTM5NzticmVha307
Y2FzZSA1OntrPTExMjI7YnJlYWsgTDEzOTc7YnJlYWt9O2Nhc2UgMjp7az0xMTAwO2JyZWFrIEwx
Mzk3O2JyZWFrfTtjYXNlIDA6Y2FzZSAxOntrPTExODU7YnJlYWsgTDEzOTc7YnJlYWt9O2Nhc2Ug
NDp7az0xMTEwO2JyZWFrIEwxMzk3O2JyZWFrfTtkZWZhdWx0Ont9fWlmKChpfDApPDI0OCl7az0x
MTI0O2JyZWFrIEwxMzk3fWw9KGp8MCkvMnwwO209ZisobDw8Myl8MDtkb3tpZigoaXwwKT43OTky
KXtuPShqfDApLzR8MDtvPWNSKGYsZisobjw8Myl8MCxtLGYrKG4rbDw8Myl8MCxlLDApfDB9ZWxz
ZXtwPStoW20+PjNdO3E9K2hbZj4+M107cj0raFtlPj4zXTtuPXI8cDtpZihwPj1xKXtpZighbil7
bz0wO2JyZWFrfWhbbT4+M109cjtoW2U+PjNdPXA7cz0raFttPj4zXTt0PStoW2Y+PjNdO2lmKHM+
PXQpe289MTticmVha31oW2Y+PjNdPXM7aFttPj4zXT10O289MjticmVha31pZihuKXtoW2Y+PjNd
PXI7aFtlPj4zXT1xO289MTticmVha31oW2Y+PjNdPXA7aFttPj4zXT1xO3A9K2hbZT4+M107aWYo
cD49cSl7bz0xO2JyZWFrfWhbbT4+M109cDtoW2U+PjNdPXE7bz0yfX13aGlsZSgwKTtxPStoW2Y+
PjNdO3A9K2hbbT4+M107ZG97aWYocTxwKXt1PWU7dj1vfWVsc2V7bD1lO3doaWxlKDEpe3c9bC04
fDA7aWYoKGZ8MCk9PSh3fDApKXticmVha314PStoW3c+PjNdO2lmKHg8cCl7az0xMTYyO2JyZWFr
fWVsc2V7bD13fX1pZigoa3wwKT09MTE2Mil7az0wO2hbZj4+M109eDtoW3c+PjNdPXE7dT13O3Y9
bysxfDA7YnJlYWt9bD1mKzh8MDtyPStoW2U+PjNdO2lmKHE8cil7eT1sfWVsc2V7aj1sO3doaWxl
KDEpe2lmKChqfDApPT0oZXwwKSl7az0xMTk3O2JyZWFrIEwxMzk3fXo9K2hbaj4+M107QT1qKzh8
MDtpZihxPHope2JyZWFrfWVsc2V7aj1BfX1oW2o+PjNdPXI7aFtlPj4zXT16O3k9QX1pZigoeXww
KT09KGV8MCkpe2s9MTE5MjticmVhayBMMTM5N31lbHNle0I9ZTtDPXl9d2hpbGUoMSl7dD0raFtm
Pj4zXTtsPUM7d2hpbGUoMSl7RD0raFtsPj4zXTtFPWwrOHwwO2lmKHQ+PUQpe2w9RX1lbHNle0Y9
QjticmVha319ZG97Rj1GLTh8MDtHPStoW0Y+PjNdO313aGlsZSh0PEcpO2lmKGw+Pj4wPj1GPj4+
MCl7Zj1sO2NvbnRpbnVlIEwxMzk5fWhbbD4+M109RztoW0Y+PjNdPUQ7Qj1GO0M9RX19fXdoaWxl
KDApO2o9Zis4fDA7TDE0Mzg6ZG97aWYoaj4+PjA8dT4+PjApe2k9dTtuPWo7SD12O0k9bTt3aGls
ZSgxKXtxPStoW0k+PjNdO0o9bjt3aGlsZSgxKXtLPStoW0o+PjNdO0w9Sis4fDA7aWYoSzxxKXtK
PUx9ZWxzZXtNPWk7YnJlYWt9fWRve009TS04fDA7Tj0raFtNPj4zXTt9d2hpbGUoTj49cSk7aWYo
Sj4+PjA+TT4+PjApe089SjtQPUg7UT1JO2JyZWFrIEwxNDM4fWhbSj4+M109TjtoW00+PjNdPUs7
aT1NO249TDtIPUgrMXwwO0k9KEl8MCk9PShKfDApP006SX19ZWxzZXtPPWo7UD12O1E9bX19d2hp
bGUoMCk7ZG97aWYoKE98MCk9PShRfDApKXtSPVB9ZWxzZXtxPStoW1E+PjNdO3A9K2hbTz4+M107
aWYocT49cCl7Uj1QO2JyZWFrfWhbTz4+M109cTtoW1E+PjNdPXA7Uj1QKzF8MH19d2hpbGUoMCk7
aWYoKFJ8MCk9PTApe1M9Y1YoZixPLDApfDA7bT1PKzh8MDtpZihjVihtLGEsMCl8MCl7az0xMTc0
O2JyZWFrfWlmKFMpe2Y9bTtjb250aW51ZX19bT1PO2lmKChtLWd8MCk+PShiLW18MCkpe2s9MTE3
ODticmVha31jVShmLE8sYyk7Zj1PKzh8MH1pZigoa3wwKT09MTE3NCl7az0wO2lmKFMpe2s9MTE4
NjticmVha31lbHNle2Q9ZjthPU87Y29udGludWV9fWVsc2UgaWYoKGt8MCk9PTExNzgpe2s9MDtj
VShPKzh8MCxhLGMpO2Q9ZjthPU87Y29udGludWV9fWlmKChrfDApPT0xMTAyKXtPPWYrOHwwO0s9
K2hbTz4+M107Tj0raFtmPj4zXTtEPStoW2U+PjNdO2Q9RDxLO2lmKEs+PU4pe2lmKCFkKXtyZXR1
cm59aFtPPj4zXT1EO2hbZT4+M109SztHPStoW08+PjNdO3o9K2hbZj4+M107aWYoRz49eil7cmV0
dXJufWhbZj4+M109RztoW08+PjNdPXo7cmV0dXJufWlmKGQpe2hbZj4+M109RDtoW2U+PjNdPU47
cmV0dXJufWhbZj4+M109SztoW08+PjNdPU47Sz0raFtlPj4zXTtpZihLPj1OKXtyZXR1cm59aFtP
Pj4zXT1LO2hbZT4+M109TjtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTEyMil7Y1IoZixmKzh8MCxm
KzE2fDAsZisyNHwwLGUsMCl8MDtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTEyNCl7Tz1mKzE2fDA7
ZD1mKzh8MDtOPStoW2Q+PjNdO0s9K2hbZj4+M107RD0raFtPPj4zXTtjPUQ8Tjtkb3tpZihOPEsp
e2lmKGMpe2hbZj4+M109RDtoW08+PjNdPUs7VD1LO2JyZWFrfWhbZj4+M109TjtoW2Q+PjNdPUs7
aWYoRD49Syl7VD1EO2JyZWFrfWhbZD4+M109RDtoW08+PjNdPUs7VD1LfWVsc2V7aWYoIWMpe1Q9
RDticmVha31oW2Q+PjNdPUQ7aFtPPj4zXT1OO2lmKEQ+PUspe1Q9TjticmVha31oW2Y+PjNdPUQ7
aFtkPj4zXT1LO1Q9Tn19d2hpbGUoMCk7ZD1mKzI0fDA7aWYoKGR8MCk9PShhfDApKXtyZXR1cm59
ZWxzZXtVPU87Vj1kO1c9VH13aGlsZSgxKXtUPStoW1Y+PjNdO2lmKFQ8Vyl7ZD1VO089VjtOPVc7
d2hpbGUoMSl7aFtPPj4zXT1OO2lmKChkfDApPT0oZnwwKSl7WD1mO2JyZWFrfWM9ZC04fDA7Sz0r
aFtjPj4zXTtpZihUPEspe089ZDtkPWM7Tj1LfWVsc2V7WD1kO2JyZWFrfX1oW1g+PjNdPVR9ZD1W
Kzh8MDtpZigoZHwwKT09KGF8MCkpe2JyZWFrfU49K2hbVj4+M107VT1WO1Y9ZDtXPU59cmV0dXJu
fWVsc2UgaWYoKGt8MCk9PTExOTcpe3JldHVybn1lbHNlIGlmKChrfDApPT0xMTAwKXtXPStoW2U+
PjNdO049K2hbZj4+M107aWYoVz49Til7cmV0dXJufWhbZj4+M109VztoW2U+PjNdPU47cmV0dXJu
fWVsc2UgaWYoKGt8MCk9PTExODUpe3JldHVybn1lbHNlIGlmKChrfDApPT0xMTg2KXtyZXR1cm59
ZWxzZSBpZigoa3wwKT09MTE5Mil7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMTApe2s9Zis4fDA7
Vj1mKzE2fDA7Tj0raFtrPj4zXTtXPStoW2Y+PjNdO0s9K2hbVj4+M107VT1LPE47ZG97aWYoTjxX
KXtpZihVKXtoW2Y+PjNdPUs7aFtWPj4zXT1XO1k9VzticmVha31oW2Y+PjNdPU47aFtrPj4zXT1X
O2lmKEs+PVcpe1k9SzticmVha31oW2s+PjNdPUs7aFtWPj4zXT1XO1k9V31lbHNle2lmKCFVKXtZ
PUs7YnJlYWt9aFtrPj4zXT1LO2hbVj4+M109TjtpZihLPj1XKXtZPU47YnJlYWt9aFtmPj4zXT1L
O2hbaz4+M109VztZPU59fXdoaWxlKDApO049K2hbZT4+M107aWYoTj49WSl7cmV0dXJufWhbVj4+
M109TjtoW2U+PjNdPVk7WT0raFtWPj4zXTtOPStoW2s+PjNdO2lmKFk+PU4pe3JldHVybn1oW2s+
PjNdPVk7aFtWPj4zXT1OO049K2hbZj4+M107aWYoWT49Til7cmV0dXJufWhbZj4+M109WTtoW2s+
PjNdPU47cmV0dXJufX1mdW5jdGlvbiBjVihhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7dmFyIGQ9
MCxlPTAsZj0wLjAsZz0wLjAsaT0wLjAsaj0wLGs9MC4wLGw9MC4wLG09MCxuPTAuMCxvPTAuMCxw
PTAscT0wLHI9MCxzPTAuMCx0PTAsdT0wLHY9MDtzd2l0Y2goYi1hPj4zfDApe2Nhc2UgMDpjYXNl
IDE6e2Q9MTtyZXR1cm4gZHwwfTtjYXNlIDM6e2M9YSs4fDA7ZT1iLTh8MDtmPStoW2M+PjNdO2c9
K2hbYT4+M107aT0raFtlPj4zXTtqPWk8ZjtpZihmPj1nKXtpZighail7ZD0xO3JldHVybiBkfDB9
aFtjPj4zXT1pO2hbZT4+M109ZjtrPStoW2M+PjNdO2w9K2hbYT4+M107aWYoaz49bCl7ZD0xO3Jl
dHVybiBkfDB9aFthPj4zXT1rO2hbYz4+M109bDtkPTE7cmV0dXJuIGR8MH1pZihqKXtoW2E+PjNd
PWk7aFtlPj4zXT1nO2Q9MTtyZXR1cm4gZHwwfWhbYT4+M109ZjtoW2M+PjNdPWc7Zj0raFtlPj4z
XTtpZihmPj1nKXtkPTE7cmV0dXJuIGR8MH1oW2M+PjNdPWY7aFtlPj4zXT1nO2Q9MTtyZXR1cm4g
ZHwwfTtjYXNlIDI6e2U9Yi04fDA7Zz0raFtlPj4zXTtmPStoW2E+PjNdO2lmKGc+PWYpe2Q9MTty
ZXR1cm4gZHwwfWhbYT4+M109ZztoW2U+PjNdPWY7ZD0xO3JldHVybiBkfDB9O2Nhc2UgNDp7ZT1h
Kzh8MDtjPWErMTZ8MDtqPWItOHwwO2Y9K2hbZT4+M107Zz0raFthPj4zXTtpPStoW2M+PjNdO209
aTxmO2Rve2lmKGY8Zyl7aWYobSl7aFthPj4zXT1pO2hbYz4+M109ZztuPWc7YnJlYWt9aFthPj4z
XT1mO2hbZT4+M109ZztpZihpPj1nKXtuPWk7YnJlYWt9aFtlPj4zXT1pO2hbYz4+M109ZztuPWd9
ZWxzZXtpZighbSl7bj1pO2JyZWFrfWhbZT4+M109aTtoW2M+PjNdPWY7aWYoaT49Zyl7bj1mO2Jy
ZWFrfWhbYT4+M109aTtoW2U+PjNdPWc7bj1mfX13aGlsZSgwKTtmPStoW2o+PjNdO2lmKGY+PW4p
e2Q9MTtyZXR1cm4gZHwwfWhbYz4+M109ZjtoW2o+PjNdPW47bj0raFtjPj4zXTtmPStoW2U+PjNd
O2lmKG4+PWYpe2Q9MTtyZXR1cm4gZHwwfWhbZT4+M109bjtoW2M+PjNdPWY7Zj0raFthPj4zXTtp
ZihuPj1mKXtkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPW47aFtlPj4zXT1mO2Q9MTtyZXR1cm4gZHww
fTtjYXNlIDU6e2NSKGEsYSs4fDAsYSsxNnwwLGErMjR8MCxiLTh8MCwwKXwwO2Q9MTtyZXR1cm4g
ZHwwfTtkZWZhdWx0OntlPWErMTZ8MDtjPWErOHwwO2Y9K2hbYz4+M107bj0raFthPj4zXTtnPSto
W2U+PjNdO2o9ZzxmO2Rve2lmKGY8bil7aWYoail7aFthPj4zXT1nO2hbZT4+M109bjtvPW47YnJl
YWt9aFthPj4zXT1mO2hbYz4+M109bjtpZihnPj1uKXtvPWc7YnJlYWt9aFtjPj4zXT1nO2hbZT4+
M109bjtvPW59ZWxzZXtpZighail7bz1nO2JyZWFrfWhbYz4+M109ZztoW2U+PjNdPWY7aWYoZz49
bil7bz1mO2JyZWFrfWhbYT4+M109ZztoW2M+PjNdPW47bz1mfX13aGlsZSgwKTtjPWErMjR8MDtp
ZigoY3wwKT09KGJ8MCkpe2Q9MTtyZXR1cm4gZHwwfWVsc2V7cD1lO3E9MDtyPWM7cz1vfXdoaWxl
KDEpe289K2hbcj4+M107aWYobzxzKXtjPXA7ZT1yO2Y9czt3aGlsZSgxKXtoW2U+PjNdPWY7aWYo
KGN8MCk9PShhfDApKXt0PWE7YnJlYWt9aj1jLTh8MDtuPStoW2o+PjNdO2lmKG88bil7ZT1jO2M9
ajtmPW59ZWxzZXt0PWM7YnJlYWt9fWhbdD4+M109bztjPXErMXwwO2lmKChjfDApPT04KXticmVh
a31lbHNle3U9Y319ZWxzZXt1PXF9Yz1yKzh8MDtpZigoY3wwKT09KGJ8MCkpe2Q9MTt2PTEyNTY7
YnJlYWt9Zj0raFtyPj4zXTtwPXI7cT11O3I9YztzPWZ9aWYoKHZ8MCk9PTEyNTYpe3JldHVybiBk
fDB9ZD0ocis4fDApPT0oYnwwKTtyZXR1cm4gZHwwfX1yZXR1cm4gMH1mdW5jdGlvbiBjVyhhKXth
PWF8MDt2YXIgYj0wO2E9KGNbNDAzOF18MCktMXwwO2NbNDAzOF09YTtpZigoYXwwKSE9MCl7cmV0
dXJufWI7cmV0dXJufWZ1bmN0aW9uIGNYKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MDtkb3tpZigo
YVsxNjI4MF18MCk9PTApe2lmKChiYygxNjI4MCl8MCk9PTApe2JyZWFrfWNbMjk2Ml09NTQ4OTti
PTE7ZD01NDg5O2Rve2Q9KGFnKGQ+Pj4zMF5kLDE4MTI0MzMyNTMpfDApK2J8MDtjWzExODQ4Kyhi
PDwyKT4+Ml09ZDtiPWIrMXwwO313aGlsZShiPj4+MDw2MjQpO2NbMzU4Nl09MH19d2hpbGUoMCk7
Yj1jWzM1ODZdfDA7ZD0oKGIrMXwwKT4+PjApJTYyNHwwO2U9MTE4NDgrKGI8PDIpfDA7Zj1jWzEx
ODQ4KyhkPDwyKT4+Ml18MDtjW2U+PjJdPS0oZiYxKSYtMTcyNzQ4MzY4MV5jWzExODQ4KygoKChi
KzM5N3wwKT4+PjApJTYyNHwwKTw8Mik+PjJdXihmJjIxNDc0ODM2NDZ8Y1tlPj4yXSYtMjE0NzQ4
MzY0OCk+Pj4xO2U9Y1sxMTg0OCsoY1szNTg2XTw8Mik+PjJdfDA7Zj1lPj4+MTFeZTtjWzM1ODZd
PWQ7ZD1mPDw3Ji0xNjU4MDM4NjU2XmY7Zj1kPDwxNSYtMjcyMjM2NTQ0XmQ7cmV0dXJuIGY+Pj4x
OF5mfDB9ZnVuY3Rpb24gY1koYSl7YT1hfDA7dmFyIGI9MDtiO2NbNDAzOF09MTtyZXR1cm59ZnVu
Y3Rpb24gY1ooYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTA7Yj1p
O2k9aSszMnwwO2Q9YnwwO2U9Yis4fDA7Zj1iKzE2fDA7Zz1iKzI0fDA7ZHEoMTUxMzYsY1tvPj4y
XXwwLDE1MTkyKTtjWzQwMTRdPTQ1MDA7Y1s0MDE2XT00NTIwO2NbNDAxNV09MDtoPWNbMTEyMl18
MDtlaygxNjA1NitofDAsMTUxMzYpO2NbaCsxNjEyOD4+Ml09MDtjW2grMTYxMzI+PjJdPS0xO2g9
Y1t0Pj4yXXwwO2VwKDE1MDQwKTtjWzM3NjBdPTQ2NDg7Y1szNzY4XT1oO2lOKGcsMTUwNDQpO2g9
aVgoZywxNTM5Mil8MDtqPWg7aU8oZyk7Y1szNzY5XT1qO2NbMzc3MF09MTUyMDA7YVsxNTA4NF09
KGIwW2NbKGNbaD4+Ml18MCkrMjg+PjJdJjEyN10oail8MCkmMTtjWzM5NDhdPTQ0MDQ7Y1szOTQ5
XT00NDI0O2o9Y1sxMDk4XXwwO2VrKDE1NzkyK2p8MCwxNTA0MCk7aD1qKzcyfDA7Y1sxNTc5Mito
Pj4yXT0wO2c9ais3NnwwO2NbMTU3OTIrZz4+Ml09LTE7az1jW3I+PjJdfDA7ZXAoMTUwODgpO2Nb
Mzc3Ml09NDY0ODtjWzM3ODBdPWs7aU4oZiwxNTA5Mik7az1pWChmLDE1MzkyKXwwO2w9aztpTyhm
KTtjWzM3ODFdPWw7Y1szNzgyXT0xNTIwODthWzE1MTMyXT0oYjBbY1soY1trPj4yXXwwKSsyOD4+
Ml0mMTI3XShsKXwwKSYxO2NbMzk5Ml09NDQwNDtjWzM5OTNdPTQ0MjQ7ZWsoMTU5NjgranwwLDE1
MDg4KTtjWzE1OTY4K2g+PjJdPTA7Y1sxNTk2OCtnPj4yXT0tMTtsPWNbKGNbKGNbMzk5Ml18MCkt
MTI+PjJdfDApKzE1OTkyPj4yXXwwO2NbMzk3MF09NDQwNDtjWzM5NzFdPTQ0MjQ7ZWsoMTU4ODAr
anwwLGwpO2NbMTU4ODAraD4+Ml09MDtjWzE1ODgwK2c+PjJdPS0xO2NbKGNbKGNbNDAxNF18MCkt
MTI+PjJdfDApKzE2MTI4Pj4yXT0xNTc5MjtnPShjWyhjWzM5OTJdfDApLTEyPj4yXXwwKSsxNTk3
MnwwO2NbZz4+Ml09Y1tnPj4yXXw4MTkyO2NbKGNbKGNbMzk5Ml18MCktMTI+PjJdfDApKzE2MDQw
Pj4yXT0xNTc5MjtjMygxNDk4NCxjW28+PjJdfDAsMTUyMTYpO2NbMzkyNl09NDQ1MjtjWzM5Mjhd
PTQ0NzI7Y1szOTI3XT0wO2c9Y1sxMTEwXXwwO2VrKDE1NzA0K2d8MCwxNDk4NCk7Y1tnKzE1Nzc2
Pj4yXT0wO2NbZysxNTc4MD4+Ml09LTE7Zz1jW3Q+PjJdfDA7ZXcoMTQ4ODgpO2NbMzcyMl09NDU3
NjtjWzM3MzBdPWc7aU4oZSwxNDg5Mik7Zz1pWChlLDE1Mzg0KXwwO2g9ZztpTyhlKTtjWzM3MzFd
PWg7Y1szNzMyXT0xNTIyNDthWzE0OTMyXT0oYjBbY1soY1tnPj4yXXwwKSsyOD4+Ml0mMTI3XSho
KXwwKSYxO2NbMzg1Nl09NDM1NjtjWzM4NTddPTQzNzY7aD1jWzEwODZdfDA7ZWsoMTU0MjQraHww
LDE0ODg4KTtnPWgrNzJ8MDtjWzE1NDI0K2c+PjJdPTA7ZT1oKzc2fDA7Y1sxNTQyNCtlPj4yXT0t
MTtsPWNbcj4+Ml18MDtldygxNDkzNik7Y1szNzM0XT00NTc2O2NbMzc0Ml09bDtpTihkLDE0OTQw
KTtsPWlYKGQsMTUzODQpfDA7aj1sO2lPKGQpO2NbMzc0M109ajtjWzM3NDRdPTE1MjMyO2FbMTQ5
ODBdPShiMFtjWyhjW2w+PjJdfDApKzI4Pj4yXSYxMjddKGopfDApJjE7Y1szOTAwXT00MzU2O2Nb
MzkwMV09NDM3NjtlaygxNTYwMCtofDAsMTQ5MzYpO2NbMTU2MDArZz4+Ml09MDtjWzE1NjAwK2U+
PjJdPS0xO2o9Y1soY1soY1szOTAwXXwwKS0xMj4+Ml18MCkrMTU2MjQ+PjJdfDA7Y1szODc4XT00
MzU2O2NbMzg3OV09NDM3NjtlaygxNTUxMitofDAsaik7Y1sxNTUxMitnPj4yXT0wO2NbMTU1MTIr
ZT4+Ml09LTE7Y1soY1soY1szOTI2XXwwKS0xMj4+Ml18MCkrMTU3NzY+PjJdPTE1NDI0O2U9KGNb
KGNbMzkwMF18MCktMTI+PjJdfDApKzE1NjA0fDA7Y1tlPj4yXT1jW2U+PjJdfDgxOTI7Y1soY1so
Y1szOTAwXXwwKS0xMj4+Ml18MCkrMTU2NzI+PjJdPTE1NDI0O2k9YjtyZXR1cm59ZnVuY3Rpb24g
Y18oYSl7YT1hfDA7ZXYoYXwwKTtyZXR1cm59ZnVuY3Rpb24gYyQoYSl7YT1hfDA7ZXYoYXwwKTtr
UyhhKTtyZXR1cm59ZnVuY3Rpb24gYzAoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wO2IwW2NbKGNb
Yj4+Ml18MCkrMjQ+PjJdJjEyN10oYil8MDtlPWlYKGQsMTUzODQpfDA7ZD1lO2NbYiszNj4+Ml09
ZDthW2IrNDR8MF09KGIwW2NbKGNbZT4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtyZXR1cm59
ZnVuY3Rpb24gYzEoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAs
bD0wLG09MCxuPTA7Yj1pO2k9aSsxNnwwO2Q9YnwwO2U9Yis4fDA7Zj1hKzM2fDA7Zz1hKzQwfDA7
aD1kfDA7aj1kKzh8MDtrPWQ7ZD1hKzMyfDA7TDE2NDI6d2hpbGUoMSl7YT1jW2Y+PjJdfDA7bD1i
JFtjWyhjW2E+PjJdfDApKzIwPj4yXSYzMV0oYSxjW2c+PjJdfDAsaCxqLGUpfDA7YT0oY1tlPj4y
XXwwKS1rfDA7aWYoKGFNKGh8MCwxLGF8MCxjW2Q+PjJdfDApfDApIT0oYXwwKSl7bT0tMTtuPTEz
MDQ7YnJlYWt9c3dpdGNoKGx8MCl7Y2FzZSAyOnttPS0xO249MTMwNTticmVhayBMMTY0MjticmVh
a307Y2FzZSAxOnticmVha307ZGVmYXVsdDp7bj0xMzAxO2JyZWFrIEwxNjQyfX19aWYoKG58MCk9
PTEzMDQpe2k9YjtyZXR1cm4gbXwwfWVsc2UgaWYoKG58MCk9PTEzMDUpe2k9YjtyZXR1cm4gbXww
fWVsc2UgaWYoKG58MCk9PTEzMDEpe209KChhSyhjW2Q+PjJdfDApfDApIT0wKTw8MzE+PjMxO2k9
YjtyZXR1cm4gbXwwfXJldHVybiAwfWZ1bmN0aW9uIGMyKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtnPWUrOHwwO2g9ZSsxNnwwO2o9ZSsyNHww
O2s9KGR8MCk9PS0xO0wxNjUxOmRve2lmKCFrKXtjW2c+PjJdPWQ7aWYoKGFbYis0NHwwXSYxKSE9
MCl7aWYoKGFNKGd8MCw0LDEsY1tiKzMyPj4yXXwwKXwwKT09MSl7YnJlYWt9ZWxzZXtsPS0xfWk9
ZTtyZXR1cm4gbHwwfW09ZnwwO2NbaD4+Ml09bTtuPWcrNHwwO289YiszNnwwO3A9Yis0MHwwO3E9
Zis4fDA7cj1mO3M9YiszMnwwO3Q9Zzt3aGlsZSgxKXt1PWNbbz4+Ml18MDt2PWI2W2NbKGNbdT4+
Ml18MCkrMTI+PjJdJjMxXSh1LGNbcD4+Ml18MCx0LG4saixtLHEsaCl8MDtpZigoY1tqPj4yXXww
KT09KHR8MCkpe2w9LTE7dz0xMzIwO2JyZWFrfWlmKCh2fDApPT0zKXt3PTEzMTI7YnJlYWt9dT0o
dnwwKT09MTtpZih2Pj4+MD49Mil7bD0tMTt3PTEzMjI7YnJlYWt9dj0oY1toPj4yXXwwKS1yfDA7
aWYoKGFNKG18MCwxLHZ8MCxjW3M+PjJdfDApfDApIT0odnwwKSl7bD0tMTt3PTEzMjE7YnJlYWt9
aWYodSl7dD11P2Nbaj4+Ml18MDp0fWVsc2V7YnJlYWsgTDE2NTF9fWlmKCh3fDApPT0xMzIxKXtp
PWU7cmV0dXJuIGx8MH1lbHNlIGlmKCh3fDApPT0xMzIyKXtpPWU7cmV0dXJuIGx8MH1lbHNlIGlm
KCh3fDApPT0xMzEyKXtpZigoYU0odHwwLDEsMSxjW3M+PjJdfDApfDApPT0xKXticmVha31lbHNl
e2w9LTF9aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTMyMCl7aT1lO3JldHVybiBsfDB9
fX13aGlsZSgwKTtsPWs/MDpkO2k9ZTtyZXR1cm4gbHwwfWZ1bmN0aW9uIGMzKGIsZCxlKXtiPWJ8
MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaj0wO2Y9aTtpPWkrOHwwO2c9ZnwwO2V3KGJ8
MCk7Y1tiPj4yXT00OTc2O2NbYiszMj4+Ml09ZDtjW2IrNDA+PjJdPWU7Y1tiKzQ4Pj4yXT0tMTth
W2IrNTJ8MF09MDtpTihnLGIrNHwwKTtlPWlYKGcsMTUzODQpfDA7ZD1lO2g9YiszNnwwO2NbaD4+
Ml09ZDtqPWIrNDR8MDtjW2o+PjJdPWIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZCl8MDtk
PWNbaD4+Ml18MDthW2IrNTN8MF09KGIwW2NbKGNbZD4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkm
MTtpZigoY1tqPj4yXXwwKTw9OCl7aU8oZyk7aT1mO3JldHVybn1oVigxODQpO2lPKGcpO2k9Zjty
ZXR1cm59ZnVuY3Rpb24gYzQoYSl7YT1hfDA7ZXYoYXwwKTtyZXR1cm59ZnVuY3Rpb24gYzUoYSl7
YT1hfDA7ZXYoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gYzYoYixkKXtiPWJ8MDtkPWR8MDt2
YXIgZT0wLGY9MCxnPTA7ZT1pWChkLDE1Mzg0KXwwO2Q9ZTtmPWIrMzZ8MDtjW2Y+PjJdPWQ7Zz1i
KzQ0fDA7Y1tnPj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGQpfDA7ZD1jW2Y+PjJd
fDA7YVtiKzUzfDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7aWYoKGNb
Zz4+Ml18MCk8PTgpe3JldHVybn1oVigxODQpO3JldHVybn1mdW5jdGlvbiBjNyhhKXthPWF8MDty
ZXR1cm4gZGEoYSwwKXwwfWZ1bmN0aW9uIGM4KGEpe2E9YXwwO3JldHVybiBkYShhLDEpfDB9ZnVu
Y3Rpb24gYzkoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtnPWUrOHwwO2g9ZSsx
NnwwO2o9ZSsyNHwwO2s9Yis1MnwwO2w9KGFba10mMSkhPTA7aWYoKGR8MCk9PS0xKXtpZihsKXtt
PS0xO2k9ZTtyZXR1cm4gbXwwfW49Y1tiKzQ4Pj4yXXwwO2Fba109KG58MCkhPS0xfDA7bT1uO2k9
ZTtyZXR1cm4gbXwwfW49Yis0OHwwO0wxNjk0OmRve2lmKGwpe2NbaD4+Ml09Y1tuPj4yXTtvPWNb
YiszNj4+Ml18MDtwPWZ8MDtzd2l0Y2goYjZbY1soY1tvPj4yXXwwKSsxMj4+Ml0mMzFdKG8sY1ti
KzQwPj4yXXwwLGgsaCs0fDAsaixwLGYrOHwwLGcpfDApe2Nhc2UgMjpjYXNlIDE6e209LTE7aT1l
O3JldHVybiBtfDB9O2Nhc2UgMzp7YVtwXT1jW24+PjJdJjI1NTtjW2c+PjJdPWYrMTticmVha307
ZGVmYXVsdDp7fX1vPWIrMzJ8MDt3aGlsZSgxKXtxPWNbZz4+Ml18MDtpZihxPj4+MDw9cD4+PjAp
e2JyZWFrIEwxNjk0fXI9cS0xfDA7Y1tnPj4yXT1yO2lmKChiQShhW3JdfDAsY1tvPj4yXXwwKXww
KT09LTEpe209LTE7YnJlYWt9fWk9ZTtyZXR1cm4gbXwwfX13aGlsZSgwKTtjW24+PjJdPWQ7YVtr
XT0xO209ZDtpPWU7cmV0dXJuIG18MH1mdW5jdGlvbiBkYShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtnPWUrOHwwO2g9ZSsxNnww
O2o9ZSsyNHwwO2s9Yis1MnwwO2lmKChhW2tdJjEpIT0wKXtsPWIrNDh8MDttPWNbbD4+Ml18MDtp
ZighZCl7bj1tO2k9ZTtyZXR1cm4gbnwwfWNbbD4+Ml09LTE7YVtrXT0wO249bTtpPWU7cmV0dXJu
IG58MH1tPWNbYis0ND4+Ml18MDtrPShtfDApPjE/bToxO0wxNzE0OmRve2lmKChrfDApPjApe209
YiszMnwwO2w9MDt3aGlsZSgxKXtvPWFfKGNbbT4+Ml18MCl8MDtpZigob3wwKT09LTEpe249LTE7
YnJlYWt9YVtmK2x8MF09byYyNTU7bD1sKzF8MDtpZigobHwwKT49KGt8MCkpe2JyZWFrIEwxNzE0
fX1pPWU7cmV0dXJuIG58MH19d2hpbGUoMCk7TDE3MjE6ZG97aWYoKGFbYis1M3wwXSYxKT09MCl7
bD1iKzQwfDA7bT1iKzM2fDA7bz1mfDA7cD1nKzR8MDtxPWIrMzJ8MDtyPWs7TDE3MjM6d2hpbGUo
MSl7cz1jW2w+PjJdfDA7dD1zO3U9Y1t0Pj4yXXwwO3Y9Y1t0KzQ+PjJdfDA7dD1jW20+PjJdfDA7
dz1mK3J8MDtzd2l0Y2goYjZbY1soY1t0Pj4yXXwwKSsxNj4+Ml0mMzFdKHQscyxvLHcsaCxnLHAs
ail8MCl7Y2FzZSAxOnticmVha307Y2FzZSAyOntuPS0xO3g9MTM4MDticmVhayBMMTcyMzticmVh
a307Y2FzZSAzOnt4PTEzNjk7YnJlYWsgTDE3MjM7YnJlYWt9O2RlZmF1bHQ6e3k9cjticmVhayBM
MTcyMX19cz1jW2w+PjJdfDA7Y1tzPj4yXT11O2Nbcys0Pj4yXT12O2lmKChyfDApPT04KXtuPS0x
O3g9MTM3OTticmVha312PWFfKGNbcT4+Ml18MCl8MDtpZigodnwwKT09LTEpe249LTE7eD0xMzg1
O2JyZWFrfWFbd109diYyNTU7cj1yKzF8MH1pZigoeHwwKT09MTM3OSl7aT1lO3JldHVybiBufDB9
ZWxzZSBpZigoeHwwKT09MTM4MCl7aT1lO3JldHVybiBufDB9ZWxzZSBpZigoeHwwKT09MTM4NSl7
aT1lO3JldHVybiBufDB9ZWxzZSBpZigoeHwwKT09MTM2OSl7Y1tnPj4yXT1hW29dfDA7eT1yO2Jy
ZWFrfX1lbHNle2NbZz4+Ml09YVtmfDBdfDA7eT1rfX13aGlsZSgwKTtpZihkKXtkPWNbZz4+Ml18
MDtjW2IrNDg+PjJdPWQ7bj1kO2k9ZTtyZXR1cm4gbnwwfWQ9YiszMnwwO2I9eTt3aGlsZSgxKXtp
ZigoYnwwKTw9MCl7YnJlYWt9eT1iLTF8MDtpZigoYkEoYVtmK3l8MF18MCxjW2Q+PjJdfDApfDAp
PT0tMSl7bj0tMTt4PTEzODI7YnJlYWt9ZWxzZXtiPXl9fWlmKCh4fDApPT0xMzgyKXtpPWU7cmV0
dXJuIG58MH1uPWNbZz4+Ml18MDtpPWU7cmV0dXJuIG58MH1mdW5jdGlvbiBkYihhKXthPWF8MDtl
byhhfDApO3JldHVybn1mdW5jdGlvbiBkYyhhKXthPWF8MDtlbyhhfDApO2tTKGEpO3JldHVybn1m
dW5jdGlvbiBkZChhKXthPWF8MDtmZygxNTc5Mil8MDtmZygxNTg4MCl8MDtmaCgxNTQyNCl8MDtm
aCgxNTUxMil8MDtyZXR1cm59ZnVuY3Rpb24gZGUoYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGRm
KGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBkZyhhKXthPWF8MDt2YXIgYj0wO2I9YSs0fDA7ST1j
W2I+PjJdfDAsY1tiPj4yXT1JKzEsSTtyZXR1cm59ZnVuY3Rpb24gZGgoYSl7YT1hfDA7cmV0dXJu
IGNbYSs0Pj4yXXwwfWZ1bmN0aW9uIGRpKGEpe2E9YXwwO3JldHVybiBjW2ErND4+Ml18MH1mdW5j
dGlvbiBkaihhKXthPWF8MDtjW2E+PjJdPTQzMDQ7cmV0dXJufWZ1bmN0aW9uIGRrKGEsYixkKXth
PWF8MDtiPWJ8MDtkPWR8MDtjW2E+PjJdPWQ7Y1thKzQ+PjJdPWI7cmV0dXJufWZ1bmN0aW9uIGRs
KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wO2lmKChjW2IrND4+Ml18MCkhPShhfDAp
KXtlPTA7cmV0dXJuIGV8MH1lPShjW2I+PjJdfDApPT0oZHwwKTtyZXR1cm4gZXwwfWZ1bmN0aW9u
IGRtKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MDtiMFtjWyhjW2I+PjJdfDApKzI0Pj4yXSYxMjdd
KGIpfDA7ZT1pWChkLDE1MzkyKXwwO2Q9ZTtjW2IrMzY+PjJdPWQ7YVtiKzQ0fDBdPShiMFtjWyhj
W2U+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7cmV0dXJufWZ1bmN0aW9uIGRuKGEpe2E9YXww
O3ZhciBiPTAsZD0wLGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2I9aTtpPWkr
MTZ8MDtkPWJ8MDtlPWIrOHwwO2Y9YSszNnwwO2c9YSs0MHwwO2g9ZHwwO2o9ZCs4fDA7az1kO2Q9
YSszMnwwO0wxNzY3OndoaWxlKDEpe2E9Y1tmPj4yXXwwO2w9YiRbY1soY1thPj4yXXwwKSsyMD4+
Ml0mMzFdKGEsY1tnPj4yXXwwLGgsaixlKXwwO2E9KGNbZT4+Ml18MCkta3wwO2lmKChhTShofDAs
MSxhfDAsY1tkPj4yXXwwKXwwKSE9KGF8MCkpe209LTE7bj0xNDE0O2JyZWFrfXN3aXRjaChsfDAp
e2Nhc2UgMjp7bT0tMTtuPTE0MTU7YnJlYWsgTDE3Njc7YnJlYWt9O2Nhc2UgMTp7YnJlYWt9O2Rl
ZmF1bHQ6e249MTQxMTticmVhayBMMTc2N319fWlmKChufDApPT0xNDE1KXtpPWI7cmV0dXJuIG18
MH1lbHNlIGlmKChufDApPT0xNDExKXttPSgoYUsoY1tkPj4yXXwwKXwwKSE9MCk8PDMxPj4zMTtp
PWI7cmV0dXJuIG18MH1lbHNlIGlmKChufDApPT0xNDE0KXtpPWI7cmV0dXJuIG18MH1yZXR1cm4g
MH1mdW5jdGlvbiBkcChiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MDtlPWk7aT1p
KzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUrMTZ8MDtqPWUrMjR8MDtrPShkfDApPT0tMTtMMTc3Njpk
b3tpZighayl7YVtnXT1kJjI1NTtpZigoYVtiKzQ0fDBdJjEpIT0wKXtpZigoYU0oZ3wwLDEsMSxj
W2IrMzI+PjJdfDApfDApPT0xKXticmVha31lbHNle2w9LTF9aT1lO3JldHVybiBsfDB9bT1mfDA7
Y1toPj4yXT1tO249ZysxfDA7bz1iKzM2fDA7cD1iKzQwfDA7cT1mKzh8MDtyPWY7cz1iKzMyfDA7
dD1nO3doaWxlKDEpe3U9Y1tvPj4yXXwwO3Y9YjZbY1soY1t1Pj4yXXwwKSsxMj4+Ml0mMzFdKHUs
Y1twPj4yXXwwLHQsbixqLG0scSxoKXwwO2lmKChjW2o+PjJdfDApPT0odHwwKSl7bD0tMTt3PTE0
MzM7YnJlYWt9aWYoKHZ8MCk9PTMpe3c9MTQyMjticmVha311PSh2fDApPT0xO2lmKHY+Pj4wPj0y
KXtsPS0xO3c9MTQzMjticmVha312PShjW2g+PjJdfDApLXJ8MDtpZigoYU0obXwwLDEsdnwwLGNb
cz4+Ml18MCl8MCkhPSh2fDApKXtsPS0xO3c9MTQzMDticmVha31pZih1KXt0PXU/Y1tqPj4yXXww
OnR9ZWxzZXticmVhayBMMTc3Nn19aWYoKHd8MCk9PTE0MzApe2k9ZTtyZXR1cm4gbHwwfWVsc2Ug
aWYoKHd8MCk9PTE0MjIpe2lmKChhTSh0fDAsMSwxLGNbcz4+Ml18MCl8MCk9PTEpe2JyZWFrfWVs
c2V7bD0tMX1pPWU7cmV0dXJuIGx8MH1lbHNlIGlmKCh3fDApPT0xNDMyKXtpPWU7cmV0dXJuIGx8
MH1lbHNlIGlmKCh3fDApPT0xNDMzKXtpPWU7cmV0dXJuIGx8MH19fXdoaWxlKDApO2w9az8wOmQ7
aT1lO3JldHVybiBsfDB9ZnVuY3Rpb24gZHEoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBm
PTAsZz0wLGg9MCxqPTA7Zj1pO2k9aSs4fDA7Zz1mfDA7ZXAoYnwwKTtjW2I+PjJdPTUwNDg7Y1ti
KzMyPj4yXT1kO2NbYis0MD4+Ml09ZTtjW2IrNDg+PjJdPS0xO2FbYis1MnwwXT0wO2lOKGcsYis0
fDApO2U9aVgoZywxNTM5Mil8MDtkPWU7aD1iKzM2fDA7Y1toPj4yXT1kO2o9Yis0NHwwO2Nbaj4+
Ml09YjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShkKXwwO2Q9Y1toPj4yXXwwO2FbYis1M3ww
XT0oYjBbY1soY1tkPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO2lmKChjW2o+PjJdfDApPD04
KXtpTyhnKTtpPWY7cmV0dXJufWhWKDE4NCk7aU8oZyk7aT1mO3JldHVybn1mdW5jdGlvbiBkcihh
KXthPWF8MDtlbyhhfDApO3JldHVybn1mdW5jdGlvbiBkcyhhKXthPWF8MDtlbyhhfDApO2tTKGEp
O3JldHVybn1mdW5jdGlvbiBkdChiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MDtlPWlY
KGQsMTUzOTIpfDA7ZD1lO2Y9YiszNnwwO2NbZj4+Ml09ZDtnPWIrNDR8MDtjW2c+PjJdPWIwW2Nb
KGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZCl8MDtkPWNbZj4+Ml18MDthW2IrNTN8MF09KGIwW2Nb
KGNbZD4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtpZigoY1tnPj4yXXwwKTw9OCl7cmV0dXJu
fWhWKDE4NCk7cmV0dXJufWZ1bmN0aW9uIGR1KGEpe2E9YXwwO3JldHVybiBkeChhLDApfDB9ZnVu
Y3Rpb24gZHYoYSl7YT1hfDA7cmV0dXJuIGR4KGEsMSl8MH1mdW5jdGlvbiBkdyhiLGQpe2I9Ynww
O2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1lKzI0fDA7az1iKzUy
fDA7bD0oYVtrXSYxKSE9MDtpZigoZHwwKT09LTEpe2lmKGwpe209LTE7aT1lO3JldHVybiBtfDB9
bj1jW2IrNDg+PjJdfDA7YVtrXT0obnwwKSE9LTF8MDttPW47aT1lO3JldHVybiBtfDB9bj1iKzQ4
fDA7TDE4MTk6ZG97aWYobCl7YVtoXT1jW24+PjJdJjI1NTtvPWNbYiszNj4+Ml18MDtwPWZ8MDtz
d2l0Y2goYjZbY1soY1tvPj4yXXwwKSsxMj4+Ml0mMzFdKG8sY1tiKzQwPj4yXXwwLGgsaCsxfDAs
aixwLGYrOHwwLGcpfDApe2Nhc2UgMzp7YVtwXT1jW24+PjJdJjI1NTtjW2c+PjJdPWYrMTticmVh
a307Y2FzZSAyOmNhc2UgMTp7bT0tMTtpPWU7cmV0dXJuIG18MH07ZGVmYXVsdDp7fX1vPWIrMzJ8
MDt3aGlsZSgxKXtxPWNbZz4+Ml18MDtpZihxPj4+MDw9cD4+PjApe2JyZWFrIEwxODE5fXI9cS0x
fDA7Y1tnPj4yXT1yO2lmKChiQShhW3JdfDAsY1tvPj4yXXwwKXwwKT09LTEpe209LTE7YnJlYWt9
fWk9ZTtyZXR1cm4gbXwwfX13aGlsZSgwKTtjW24+PjJdPWQ7YVtrXT0xO209ZDtpPWU7cmV0dXJu
IG18MH1mdW5jdGlvbiBkeChiLGUpe2I9YnwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MDtmPWk7aT1pKzMyfDA7Zz1mfDA7aD1mKzh8MDtqPWYrMTZ8MDtrPWYrMjR8MDtsPWIr
NTJ8MDtpZigoYVtsXSYxKSE9MCl7bT1iKzQ4fDA7bj1jW20+PjJdfDA7aWYoIWUpe289bjtpPWY7
cmV0dXJuIG98MH1jW20+PjJdPS0xO2FbbF09MDtvPW47aT1mO3JldHVybiBvfDB9bj1jW2IrNDQ+
PjJdfDA7bD0obnwwKT4xP246MTtMMTgzOTpkb3tpZigobHwwKT4wKXtuPWIrMzJ8MDttPTA7d2hp
bGUoMSl7cD1hXyhjW24+PjJdfDApfDA7aWYoKHB8MCk9PS0xKXtvPS0xO2JyZWFrfWFbZyttfDBd
PXAmMjU1O209bSsxfDA7aWYoKG18MCk+PShsfDApKXticmVhayBMMTgzOX19aT1mO3JldHVybiBv
fDB9fXdoaWxlKDApO0wxODQ2OmRve2lmKChhW2IrNTN8MF0mMSk9PTApe209Yis0MHwwO249Yisz
NnwwO3A9Z3wwO3E9aCsxfDA7cj1iKzMyfDA7cz1sO0wxODQ4OndoaWxlKDEpe3Q9Y1ttPj4yXXww
O3U9dDt2PWNbdT4+Ml18MDt3PWNbdSs0Pj4yXXwwO3U9Y1tuPj4yXXwwO3g9ZytzfDA7c3dpdGNo
KGI2W2NbKGNbdT4+Ml18MCkrMTY+PjJdJjMxXSh1LHQscCx4LGosaCxxLGspfDApe2Nhc2UgMTp7
YnJlYWt9O2Nhc2UgMjp7bz0tMTt5PTE0OTA7YnJlYWsgTDE4NDg7YnJlYWt9O2Nhc2UgMzp7eT0x
NDc5O2JyZWFrIEwxODQ4O2JyZWFrfTtkZWZhdWx0Ont6PXM7YnJlYWsgTDE4NDZ9fXQ9Y1ttPj4y
XXwwO2NbdD4+Ml09djtjW3QrND4+Ml09dztpZigoc3wwKT09OCl7bz0tMTt5PTE0OTE7YnJlYWt9
dz1hXyhjW3I+PjJdfDApfDA7aWYoKHd8MCk9PS0xKXtvPS0xO3k9MTQ5NTticmVha31hW3hdPXcm
MjU1O3M9cysxfDB9aWYoKHl8MCk9PTE0OTApe2k9ZjtyZXR1cm4gb3wwfWVsc2UgaWYoKHl8MCk9
PTE0OTUpe2k9ZjtyZXR1cm4gb3wwfWVsc2UgaWYoKHl8MCk9PTE0Nzkpe2FbaF09YVtwXXwwO3o9
czticmVha31lbHNlIGlmKCh5fDApPT0xNDkxKXtpPWY7cmV0dXJuIG98MH19ZWxzZXthW2hdPWFb
Z3wwXXwwO3o9bH19d2hpbGUoMCk7ZG97aWYoZSl7bD1hW2hdfDA7Y1tiKzQ4Pj4yXT1sJjI1NTtB
PWx9ZWxzZXtsPWIrMzJ8MDtrPXo7d2hpbGUoMSl7aWYoKGt8MCk8PTApe3k9MTQ4NjticmVha31q
PWstMXwwO2lmKChiQShkW2cranwwXXwwfDAsY1tsPj4yXXwwKXwwKT09LTEpe289LTE7eT0xNDk0
O2JyZWFrfWVsc2V7az1qfX1pZigoeXwwKT09MTQ4Nil7QT1hW2hdfDA7YnJlYWt9ZWxzZSBpZigo
eXwwKT09MTQ5NCl7aT1mO3JldHVybiBvfDB9fX13aGlsZSgwKTtvPUEmMjU1O2k9ZjtyZXR1cm4g
b3wwfWZ1bmN0aW9uIGR5KCl7Y1ooMCk7YSQoMTQyLDE2MTQ0fDAsdXwwKXwwO3JldHVybn1mdW5j
dGlvbiBkeihhKXthPWF8MDt2YXIgYj0wLGQ9MDtiPWErNHwwO2lmKCgoST1jW2I+PjJdfDAsY1ti
Pj4yXT1JKyAtMSxJKXwwKSE9MCl7ZD0wO3JldHVybiBkfDB9YllbY1soY1thPj4yXXwwKSs4Pj4y
XSY1MTFdKGEpO2Q9MTtyZXR1cm4gZHwwfWZ1bmN0aW9uIGRBKGEsYil7YT1hfDA7Yj1ifDA7dmFy
IGQ9MCxlPTAsZj0wO2NbYT4+Ml09MjUzNjtkPWErNHwwO2lmKChkfDApPT0wKXtyZXR1cm59YT1r
MChifDApfDA7ZT1hKzF8MDtmPWtQKGErMTN8MCl8MDtjW2YrND4+Ml09YTtjW2Y+PjJdPWE7YT1m
KzEyfDA7Y1tkPj4yXT1hO2NbZis4Pj4yXT0wO2tZKGF8MCxifDAsZSl8MDtyZXR1cm59ZnVuY3Rp
b24gZEIoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2NbYT4+Ml09MjUzNjtiPWErNHwwO2Q9KGNb
Yj4+Ml18MCktNHwwO2lmKCgoST1jW2Q+PjJdfDAsY1tkPj4yXT1JKyAtMSxJKS0xfDApPj0wKXtl
PWE7a1MoZSk7cmV0dXJufWQ9KGNbYj4+Ml18MCktMTJ8MDtpZigoZHwwKT09MCl7ZT1hO2tTKGUp
O3JldHVybn1rVChkKTtlPWE7a1MoZSk7cmV0dXJufWZ1bmN0aW9uIGRDKGEpe2E9YXwwO3ZhciBi
PTA7Y1thPj4yXT0yNTM2O2I9YSs0fDA7YT0oY1tiPj4yXXwwKS00fDA7aWYoKChJPWNbYT4+Ml18
MCxjW2E+PjJdPUkrIC0xLEkpLTF8MCk+PTApe3JldHVybn1hPShjW2I+PjJdfDApLTEyfDA7aWYo
KGF8MCk9PTApe3JldHVybn1rVChhKTtyZXR1cm59ZnVuY3Rpb24gZEQoYixkKXtiPWJ8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTA7Y1tiPj4yXT0yNDcyO2U9Yis0fDA7aWYoKGV8MCk9PTApe3JldHVy
bn1pZigoYVtkXSYxKT09MCl7Zj1kKzF8MH1lbHNle2Y9Y1tkKzg+PjJdfDB9ZD1rMChmfDApfDA7
Yj1kKzF8MDtnPWtQKGQrMTN8MCl8MDtjW2crND4+Ml09ZDtjW2c+PjJdPWQ7ZD1nKzEyfDA7Y1tl
Pj4yXT1kO2NbZys4Pj4yXT0wO2tZKGR8MCxmfDAsYil8MDtyZXR1cm59ZnVuY3Rpb24gZEUoYSxi
KXthPWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTA7Y1thPj4yXT0yNDcyO2Q9YSs0fDA7aWYoKGR8
MCk9PTApe3JldHVybn1hPWswKGJ8MCl8MDtlPWErMXwwO2Y9a1AoYSsxM3wwKXwwO2NbZis0Pj4y
XT1hO2NbZj4+Ml09YTthPWYrMTJ8MDtjW2Q+PjJdPWE7Y1tmKzg+PjJdPTA7a1koYXwwLGJ8MCxl
KXwwO3JldHVybn1mdW5jdGlvbiBkRihhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTA7Y1thPj4yXT0y
NDcyO2I9YSs0fDA7ZD0oY1tiPj4yXXwwKS00fDA7aWYoKChJPWNbZD4+Ml18MCxjW2Q+PjJdPUkr
IC0xLEkpLTF8MCk+PTApe2U9YTtrUyhlKTtyZXR1cm59ZD0oY1tiPj4yXXwwKS0xMnwwO2lmKChk
fDApPT0wKXtlPWE7a1MoZSk7cmV0dXJufWtUKGQpO2U9YTtrUyhlKTtyZXR1cm59ZnVuY3Rpb24g
ZEcoYSl7YT1hfDA7dmFyIGI9MDtjW2E+PjJdPTI0NzI7Yj1hKzR8MDthPShjW2I+PjJdfDApLTR8
MDtpZigoKEk9Y1thPj4yXXwwLGNbYT4+Ml09SSsgLTEsSSktMXwwKT49MCl7cmV0dXJufWE9KGNb
Yj4+Ml18MCktMTJ8MDtpZigoYXwwKT09MCl7cmV0dXJufWtUKGEpO3JldHVybn1mdW5jdGlvbiBk
SChhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTA7Y1thPj4yXT0yNTM2O2I9YSs0fDA7ZD0oY1tiPj4y
XXwwKS00fDA7aWYoKChJPWNbZD4+Ml18MCxjW2Q+PjJdPUkrIC0xLEkpLTF8MCk+PTApe2U9YTtr
UyhlKTtyZXR1cm59ZD0oY1tiPj4yXXwwKS0xMnwwO2lmKChkfDApPT0wKXtlPWE7a1MoZSk7cmV0
dXJufWtUKGQpO2U9YTtrUyhlKTtyZXR1cm59ZnVuY3Rpb24gZEkoYSl7YT1hfDA7a1MoYSk7cmV0
dXJufWZ1bmN0aW9uIGRKKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7
ZT1pO2k9aSs4fDA7Zj1lfDA7YjNbY1soY1thPj4yXXwwKSsxMj4+Ml0mN10oZixhLGIpO2lmKChj
W2YrND4+Ml18MCkhPShjW2QrND4+Ml18MCkpe2c9MDtpPWU7cmV0dXJuIGd8MH1nPShjW2Y+PjJd
fDApPT0oY1tkPj4yXXwwKTtpPWU7cmV0dXJuIGd8MH1mdW5jdGlvbiBkSyhhLGIsYyl7YT1hfDA7
Yj1ifDA7Yz1jfDA7Yj1ieChjfDApfDA7ZFooYSxiLGswKGJ8MCl8MCk7cmV0dXJufWZ1bmN0aW9u
IGRMKGIsZSxmKXtiPWJ8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MDtnPWk7aD1mO2o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztrPWV8
MDtsPWNbaz4+Ml18MDtpZigobHwwKT09MCl7bT1iO2NbbT4+Ml09Y1toPj4yXTtjW20rND4+Ml09
Y1toKzQ+PjJdO2NbbSs4Pj4yXT1jW2grOD4+Ml07ayQoaHwwLDAsMTIpO2k9ZztyZXR1cm59bj1k
W2hdfDA7aWYoKG4mMXwwKT09MCl7bz1uPj4+MX1lbHNle289Y1tmKzQ+PjJdfDB9aWYoKG98MCk9
PTApe3A9bH1lbHNle2RUKGYsMTI5Nil8MDtwPWNbaz4+Ml18MH1rPWNbZSs0Pj4yXXwwO2IzW2Nb
KGNbaz4+Ml18MCkrMjQ+PjJdJjddKGosayxwKTtwPWFbal18MDtpZigocCYxKT09MCl7cT1qKzF8
MH1lbHNle3E9Y1tqKzg+PjJdfDB9az1wJjI1NTtpZigoayYxfDApPT0wKXtyPWs+Pj4xfWVsc2V7
cj1jW2orND4+Ml18MH1kVihmLHEscil8MDtkUChqKTttPWI7Y1ttPj4yXT1jW2g+PjJdO2NbbSs0
Pj4yXT1jW2grND4+Ml07Y1ttKzg+PjJdPWNbaCs4Pj4yXTtrJChofDAsMCwxMik7aT1nO3JldHVy
bn1mdW5jdGlvbiBkTShhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2U9
aTtpPWkrMzJ8MDtmPWI7Yj1pO2k9aSs4fDA7Y1tiPj4yXT1jW2Y+PjJdO2NbYis0Pj4yXT1jW2Yr
ND4+Ml07Zj1lfDA7Zz1lKzE2fDA7ZFooZyxkLGswKGR8MCl8MCk7ZEwoZixiLGcpO2REKGF8MCxm
KTtkUChmKTtkUChnKTtjW2E+PjJdPTQ1NDQ7Zz1iO2I9YSs4fDA7YT1jW2crND4+Ml18MDtjW2I+
PjJdPWNbZz4+Ml07Y1tiKzQ+PjJdPWE7aT1lO3JldHVybn1mdW5jdGlvbiBkTihhKXthPWF8MDtk
RyhhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBkTyhhKXthPWF8MDtkRyhhfDApO3JldHVybn1m
dW5jdGlvbiBkUChiKXtiPWJ8MDtpZigoYVtiXSYxKT09MCl7cmV0dXJufWtTKGNbYis4Pj4yXXww
KTtyZXR1cm59ZnVuY3Rpb24gZFEoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0w
LGk9MCxqPTAsaz0wLGw9MDtlPWswKGR8MCl8MDtmPWI7Zz1iO2g9YVtnXXwwO2lmKChoJjEpPT0w
KXtpPTEwO2o9aH1lbHNle2g9Y1tiPj4yXXwwO2k9KGgmLTIpLTF8MDtqPWgmMjU1fWlmKGk+Pj4w
PGU+Pj4wKXtoPWomMjU1O2lmKChoJjF8MCk9PTApe2s9aD4+PjF9ZWxzZXtrPWNbYis0Pj4yXXww
fWQwKGIsaSxlLWl8MCxrLDAsayxlLGQpO3JldHVybiBifDB9aWYoKGomMSk9PTApe2w9ZisxfDB9
ZWxzZXtsPWNbYis4Pj4yXXwwfWtfKGx8MCxkfDAsZXwwKTthW2wrZXwwXT0wO2lmKChhW2ddJjEp
PT0wKXthW2ddPWU8PDEmMjU1O3JldHVybiBifDB9ZWxzZXtjW2IrND4+Ml09ZTtyZXR1cm4gYnww
fXJldHVybiAwfWZ1bmN0aW9uIGRSKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9
MCxoPTAsaT0wO2Y9YjtnPWFbZl18MDtoPWcmMjU1O2lmKChoJjF8MCk9PTApe2k9aD4+PjF9ZWxz
ZXtpPWNbYis0Pj4yXXwwfWlmKGk+Pj4wPGQ+Pj4wKXtoPWQtaXwwO2RTKGIsaCxlKXwwO3JldHVy
bn1pZigoZyYxKT09MCl7YVtiKzErZHwwXT0wO2FbZl09ZDw8MSYyNTU7cmV0dXJufWVsc2V7YVso
Y1tiKzg+PjJdfDApK2R8MF09MDtjW2IrND4+Ml09ZDtyZXR1cm59fWZ1bmN0aW9uIGRTKGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO2lmKChk
fDApPT0wKXtyZXR1cm4gYnwwfWY9YjtnPWFbZl18MDtpZigoZyYxKT09MCl7aD0xMDtpPWd9ZWxz
ZXtnPWNbYj4+Ml18MDtoPShnJi0yKS0xfDA7aT1nJjI1NX1nPWkmMjU1O2lmKChnJjF8MCk9PTAp
e2o9Zz4+PjF9ZWxzZXtqPWNbYis0Pj4yXXwwfWlmKChoLWp8MCk+Pj4wPGQ+Pj4wKXtkMShiLGgs
ZC1oK2p8MCxqLGosMCwwKTtrPWFbZl18MH1lbHNle2s9aX1pZigoayYxKT09MCl7bD1iKzF8MH1l
bHNle2w9Y1tiKzg+PjJdfDB9ayQobCtqfDAsZXwwLGR8MCk7ZT1qK2R8MDtpZigoYVtmXSYxKT09
MCl7YVtmXT1lPDwxJjI1NX1lbHNle2NbYis0Pj4yXT1lfWFbbCtlfDBdPTA7cmV0dXJuIGJ8MH1m
dW5jdGlvbiBkVChhLGIpe2E9YXwwO2I9YnwwO3JldHVybiBkVihhLGIsazAoYnwwKXwwKXwwfWZ1
bmN0aW9uIGRVKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9
MCxsPTAsbT0wO2U9YjtmPWFbZV18MDtpZigoZiYxKT09MCl7Zz0oZiYyNTUpPj4+MTtoPTEwfWVs
c2V7Zz1jW2IrND4+Ml18MDtoPShjW2I+PjJdJi0yKS0xfDB9aWYoKGd8MCk9PShofDApKXtkMShi
LGgsMSxoLGgsMCwwKTtpPWFbZV18MH1lbHNle2k9Zn1pZigoaSYxKT09MCl7YVtlXT0oZzw8MSkr
MiYyNTU7aj1iKzF8MDtrPWcrMXwwO2w9aitnfDA7YVtsXT1kO209aitrfDA7YVttXT0wO3JldHVy
bn1lbHNle2U9Y1tiKzg+PjJdfDA7aT1nKzF8MDtjW2IrND4+Ml09aTtqPWU7az1pO2w9aitnfDA7
YVtsXT1kO209aitrfDA7YVttXT0wO3JldHVybn19ZnVuY3Rpb24gZFYoYixkLGUpe2I9YnwwO2Q9
ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MDtmPWI7Zz1hW2ZdfDA7aWYoKGcm
MSk9PTApe2g9MTA7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9ZyYyNTV9Zz1p
JjI1NTtpZigoZyYxfDApPT0wKXtqPWc+Pj4xfWVsc2V7aj1jW2IrND4+Ml18MH1pZigoaC1qfDAp
Pj4+MDxlPj4+MCl7ZDAoYixoLGUtaCtqfDAsaixqLDAsZSxkKTtyZXR1cm4gYnwwfWlmKChlfDAp
PT0wKXtyZXR1cm4gYnwwfWlmKChpJjEpPT0wKXtrPWIrMXwwfWVsc2V7az1jW2IrOD4+Ml18MH1p
PWsranwwO2tZKGl8MCxkfDAsZSl8MDtkPWorZXwwO2lmKChhW2ZdJjEpPT0wKXthW2ZdPWQ8PDEm
MjU1fWVsc2V7Y1tiKzQ+PjJdPWR9YVtrK2R8MF09MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGRXKGEs
YixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MDtlO2lmKChjW2E+
PjJdfDApPT0xKXtkb3thVSg5NzM2LDk3MjgpfDA7fXdoaWxlKChjW2E+PjJdfDApPT0xKX1pZigo
Y1thPj4yXXwwKSE9MCl7ZjtyZXR1cm59Y1thPj4yXT0xO2c7YllbZCY1MTFdKGIpO2g7Y1thPj4y
XT0tMTtpO2JzKDk3MzYpfDA7cmV0dXJufWZ1bmN0aW9uIGRYKGEpe2E9YXwwO2E9Yk8oOCl8MDtk
QShhLDM2MCk7Y1thPj4yXT0yNTA0O2JsKGF8MCw4MjA4LDMyKX1mdW5jdGlvbiBkWShiLGQpe2I9
YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTA7ZT1kO2lmKChhW2VdJjEpPT0wKXtmPWI7Y1tm
Pj4yXT1jW2U+PjJdO2NbZis0Pj4yXT1jW2UrND4+Ml07Y1tmKzg+PjJdPWNbZSs4Pj4yXTtyZXR1
cm59ZT1jW2QrOD4+Ml18MDtmPWNbZCs0Pj4yXXwwO2lmKChmfDApPT0tMSl7ZFgoMCl9aWYoZj4+
PjA8MTEpe2FbYl09Zjw8MSYyNTU7Zz1iKzF8MH1lbHNle2Q9ZisxNiYtMTY7aD1rTyhkKXwwO2Nb
Yis4Pj4yXT1oO2NbYj4+Ml09ZHwxO2NbYis0Pj4yXT1mO2c9aH1rWShnfDAsZXwwLGYpfDA7YVtn
K2Z8MF09MDtyZXR1cm59ZnVuY3Rpb24gZFooYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBm
PTAsZz0wLGg9MCxpPTA7aWYoKGV8MCk9PS0xKXtkWCgwKX1pZihlPj4+MDwxMSl7YVtiXT1lPDwx
JjI1NTtmPWIrMXwwO2tZKGZ8MCxkfDAsZSl8MDtnPWYrZXwwO2FbZ109MDtyZXR1cm59ZWxzZXto
PWUrMTYmLTE2O2k9a08oaCl8MDtjW2IrOD4+Ml09aTtjW2I+PjJdPWh8MTtjW2IrND4+Ml09ZTtm
PWk7a1koZnwwLGR8MCxlKXwwO2c9ZitlfDA7YVtnXT0wO3JldHVybn19ZnVuY3Rpb24gZF8oYixk
LGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtpZigoZHwwKT09LTEpe2RYKDAp
fWlmKGQ+Pj4wPDExKXthW2JdPWQ8PDEmMjU1O2Y9YisxfDB9ZWxzZXtnPWQrMTYmLTE2O2g9a08o
Zyl8MDtjW2IrOD4+Ml09aDtjW2I+PjJdPWd8MTtjW2IrND4+Ml09ZDtmPWh9ayQoZnwwLGV8MCxk
fDApO2FbZitkfDBdPTA7cmV0dXJufWZ1bmN0aW9uIGQkKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7aWYo
KGR8MCk9PS0xKXtkWCgwKX1lPWI7Zj1iO2c9YVtmXXwwO2lmKChnJjEpPT0wKXtoPTEwO2k9Z31l
bHNle2c9Y1tiPj4yXXwwO2g9KGcmLTIpLTF8MDtpPWcmMjU1fWc9aSYyNTU7aWYoKGcmMXwwKT09
MCl7aj1nPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9Zz1qPj4+MD5kPj4+MD9qOmQ7aWYoZz4+PjA8
MTEpe2s9MTF9ZWxzZXtrPWcrMTYmLTE2fWc9ay0xfDA7aWYoKGd8MCk9PShofDApKXtyZXR1cm59
aWYoKGd8MCk9PTEwKXtsPWUrMXwwO209Y1tiKzg+PjJdfDA7bj0xO289MH1lbHNle2lmKGc+Pj4w
Pmg+Pj4wKXtwPWtPKGspfDB9ZWxzZXtwPWtPKGspfDB9aD1pJjE7aWYoaDw8MjQ+PjI0PT0wKXtx
PWUrMXwwfWVsc2V7cT1jW2IrOD4+Ml18MH1sPXA7bT1xO249aDw8MjQ+PjI0IT0wO289MX1oPWkm
MjU1O2lmKChoJjF8MCk9PTApe3I9aD4+PjF9ZWxzZXtyPWNbYis0Pj4yXXwwfWg9cisxfDA7a1ko
bHwwLG18MCxoKXwwO2lmKG4pe2tTKG0pfWlmKG8pe2NbYj4+Ml09a3wxO2NbYis0Pj4yXT1qO2Nb
Yis4Pj4yXT1sO3JldHVybn1lbHNle2FbZl09ajw8MSYyNTU7cmV0dXJufX1mdW5jdGlvbiBkMChi
LGQsZSxmLGcsaCxpLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXww
O2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2lm
KCgtMy1kfDApPj4+MDxlPj4+MCl7ZFgoMCl9aWYoKGFbYl0mMSk9PTApe2s9YisxfDB9ZWxzZXtr
PWNbYis4Pj4yXXwwfWRve2lmKGQ+Pj4wPDIxNDc0ODM2MzEpe2w9ZStkfDA7bT1kPDwxO249bD4+
PjA8bT4+PjA/bTpsO2lmKG4+Pj4wPDExKXtvPTExO2JyZWFrfW89bisxNiYtMTZ9ZWxzZXtvPS0y
fX13aGlsZSgwKTtlPWtPKG8pfDA7aWYoKGd8MCkhPTApe2tZKGV8MCxrfDAsZyl8MH1pZigoaXww
KSE9MCl7bj1lK2d8MDtrWShufDAsanwwLGkpfDB9aj1mLWh8MDtpZigoanwwKSE9KGd8MCkpe2Y9
ai1nfDA7bj1lKyhpK2cpfDA7bD1rKyhoK2cpfDA7a1kobnwwLGx8MCxmKXwwfWlmKChkfDApPT0x
MCl7cD1iKzh8MDtjW3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1iKzR8
MDtjW3Q+PjJdPXM7dT1lK3N8MDthW3VdPTA7cmV0dXJufWtTKGspO3A9Yis4fDA7Y1twPj4yXT1l
O3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtzPWoraXwwO3Q9Yis0fDA7Y1t0Pj4yXT1zO3U9ZStzfDA7
YVt1XT0wO3JldHVybn1mdW5jdGlvbiBkMShiLGQsZSxmLGcsaCxpKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MDtpZigoLTMtZHwwKT4+PjA8ZT4+PjApe2RYKDApfWlmKChhW2JdJjEpPT0wKXtqPWIrMXww
fWVsc2V7aj1jW2IrOD4+Ml18MH1kb3tpZihkPj4+MDwyMTQ3NDgzNjMxKXtrPWUrZHwwO2w9ZDw8
MTttPWs+Pj4wPGw+Pj4wP2w6aztpZihtPj4+MDwxMSl7bj0xMTticmVha31uPW0rMTYmLTE2fWVs
c2V7bj0tMn19d2hpbGUoMCk7ZT1rTyhuKXwwO2lmKChnfDApIT0wKXtrWShlfDAsanwwLGcpfDB9
bT1mLWh8MDtpZigobXwwKSE9KGd8MCkpe2Y9bS1nfDA7bT1lKyhpK2cpfDA7aT1qKyhoK2cpfDA7
a1kobXwwLGl8MCxmKXwwfWlmKChkfDApPT0xMCl7bz1iKzh8MDtjW28+PjJdPWU7cD1ufDE7cT1i
fDA7Y1txPj4yXT1wO3JldHVybn1rUyhqKTtvPWIrOHwwO2Nbbz4+Ml09ZTtwPW58MTtxPWJ8MDtj
W3E+PjJdPXA7cmV0dXJufWZ1bmN0aW9uIGQyKGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJufWZ1bmN0
aW9uIGQzKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDtyZXR1cm4gYXwwfWZ1bmN0aW9uIGQ0KGEp
e2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGQ1KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGQ2
KGEpe2E9YXwwO3JldHVybi0xfDB9ZnVuY3Rpb24gZDcoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4t
MXwwfWZ1bmN0aW9uIGQ4KGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBkOShh
LGIpe2E9YXwwO2I9YnwwO3JldHVybn1mdW5jdGlvbiBlYShhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1j
fDA7cmV0dXJuIGF8MH1mdW5jdGlvbiBlYihhLGIsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7Zz1hO2NbZz4+Ml09MDtjW2crND4+Ml09MDtnPWErOHwwO2NbZz4+
Ml09LTE7Y1tnKzQ+PjJdPS0xO3JldHVybn1mdW5jdGlvbiBlYyhhLGIsZCxlKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtlPWk7Yj1kO2Q9aTtpPWkrMTZ8MDtjW2Q+PjJdPWNbYj4+Ml07Y1tkKzQ+
PjJdPWNbYis0Pj4yXTtjW2QrOD4+Ml09Y1tiKzg+PjJdO2NbZCsxMj4+Ml09Y1tiKzEyPj4yXTti
PWE7Y1tiPj4yXT0wO2NbYis0Pj4yXT0wO2I9YSs4fDA7Y1tiPj4yXT0tMTtjW2IrND4+Ml09LTE7
aT1lO3JldHVybn1mdW5jdGlvbiBlZChhLGIsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7Zz1hO2NbZz4+Ml09MDtjW2crND4+Ml09MDtnPWErOHwwO2NbZz4+Ml09
LTE7Y1tnKzQ+PjJdPS0xO3JldHVybn1mdW5jdGlvbiBlZShiKXtiPWJ8MDtpZigoYVtiXSYxKT09
MCl7cmV0dXJufWtTKGNbYis4Pj4yXXwwKTtyZXR1cm59ZnVuY3Rpb24gZWYoYSxiKXthPWF8MDti
PWJ8MDtyZXR1cm4gZWcoYSxiLGttKGIpfDApfDB9ZnVuY3Rpb24gZWcoYixkLGUpe2I9YnwwO2Q9
ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MDtmPWI7Zz1hW2ZdfDA7aWYoKGcm
MSk9PTApe2g9MTtpPWd9ZWxzZXtnPWNbYj4+Ml18MDtoPShnJi0yKS0xfDA7aT1nJjI1NX1pZiho
Pj4+MDxlPj4+MCl7Zz1pJjI1NTtpZigoZyYxfDApPT0wKXtqPWc+Pj4xfWVsc2V7aj1jW2IrND4+
Ml18MH1lQShiLGgsZS1ofDAsaiwwLGosZSxkKTtyZXR1cm4gYnwwfWlmKChpJjEpPT0wKXtrPWIr
NHwwfWVsc2V7az1jW2IrOD4+Ml18MH1rbyhrLGQsZSl8MDtjW2srKGU8PDIpPj4yXT0wO2lmKChh
W2ZdJjEpPT0wKXthW2ZdPWU8PDEmMjU1O3JldHVybiBifDB9ZWxzZXtjW2IrND4+Ml09ZTtyZXR1
cm4gYnwwfXJldHVybiAwfWZ1bmN0aW9uIGVoKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAs
Zz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wO2U9YjtmPWFbZV18MDtpZigoZiYxKT09MCl7Zz0o
ZiYyNTUpPj4+MTtoPTF9ZWxzZXtnPWNbYis0Pj4yXXwwO2g9KGNbYj4+Ml0mLTIpLTF8MH1pZigo
Z3wwKT09KGh8MCkpe2VCKGIsaCwxLGgsaCwwLDApO2k9YVtlXXwwfWVsc2V7aT1mfWlmKChpJjEp
PT0wKXthW2VdPShnPDwxKSsyJjI1NTtqPWIrNHwwO2s9ZysxfDA7bD1qKyhnPDwyKXwwO2NbbD4+
Ml09ZDttPWorKGs8PDIpfDA7Y1ttPj4yXT0wO3JldHVybn1lbHNle2U9Y1tiKzg+PjJdfDA7aT1n
KzF8MDtjW2IrND4+Ml09aTtqPWU7az1pO2w9aisoZzw8Mil8MDtjW2w+PjJdPWQ7bT1qKyhrPDwy
KXwwO2NbbT4+Ml09MDtyZXR1cm59fWZ1bmN0aW9uIGVpKGEpe2E9YXwwO2VEKGF8MCk7cmV0dXJu
fWZ1bmN0aW9uIGVqKGEsYil7YT1hfDA7Yj1ifDA7aU4oYSxiKzI4fDApO3JldHVybn1mdW5jdGlv
biBlayhhLGIpe2E9YXwwO2I9YnwwO2NbYSsyND4+Ml09YjtjW2ErMTY+PjJdPShifDApPT0wO2Nb
YSsyMD4+Ml09MDtjW2ErND4+Ml09NDA5ODtjW2ErMTI+PjJdPTA7Y1thKzg+PjJdPTY7Yj1hKzI4
fDA7ayQoYSszMnwwLDAsNDApO2lmKChifDApPT0wKXtyZXR1cm59aVcoYik7cmV0dXJufWZ1bmN0
aW9uIGVsKGEpe2E9YXwwO2VEKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGVtKGEpe2E9YXwwO2NbYT4+
Ml09NDIzMjtpTyhhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVuKGEpe2E9YXwwO2NbYT4+
Ml09NDIzMjtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGVvKGEpe2E9YXwwO2NbYT4+Ml09NDIz
MjtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGVwKGEpe2E9YXwwO2NbYT4+Ml09NDIzMjtpVyhh
KzR8MCk7ayQoYSs4fDAsMCwyNCk7cmV0dXJufWZ1bmN0aW9uIGVxKGIsZCxlKXtiPWJ8MDtkPWR8
MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MDtmPWI7aWYoKGV8MCk8
PTApe2c9MDtyZXR1cm4gZ3wwfWg9YisxMnwwO2k9YisxNnwwO2o9ZDtkPTA7d2hpbGUoMSl7az1j
W2g+PjJdfDA7aWYoaz4+PjA8KGNbaT4+Ml18MCk+Pj4wKXtjW2g+PjJdPWsrMTtsPWFba118MH1l
bHNle2s9YjBbY1soY1tmPj4yXXwwKSs0MD4+Ml0mMTI3XShiKXwwO2lmKChrfDApPT0tMSl7Zz1k
O209MTg1NDticmVha31sPWsmMjU1fWFbal09bDtrPWQrMXwwO2lmKChrfDApPChlfDApKXtqPWor
MXwwO2Q9a31lbHNle2c9azttPTE4NTY7YnJlYWt9fWlmKChtfDApPT0xODU0KXtyZXR1cm4gZ3ww
fWVsc2UgaWYoKG18MCk9PTE4NTYpe3JldHVybiBnfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZXIoYSl7
YT1hfDA7dmFyIGI9MCxlPTA7aWYoKGIwW2NbKGNbYT4+Ml18MCkrMzY+PjJdJjEyN10oYSl8MCk9
PS0xKXtiPS0xO3JldHVybiBifDB9ZT1hKzEyfDA7YT1jW2U+PjJdfDA7Y1tlPj4yXT1hKzE7Yj1k
W2FdfDA7cmV0dXJuIGJ8MH1mdW5jdGlvbiBlcyhiLGUsZil7Yj1ifDA7ZT1lfDA7Zj1mfDA7dmFy
IGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTA7Zz1iO2lmKChmfDApPD0wKXtoPTA7cmV0
dXJuIGh8MH1pPWIrMjR8MDtqPWIrMjh8MDtrPTA7bD1lO3doaWxlKDEpe2U9Y1tpPj4yXXwwO2lm
KGU+Pj4wPChjW2o+PjJdfDApPj4+MCl7bT1hW2xdfDA7Y1tpPj4yXT1lKzE7YVtlXT1tfWVsc2V7
aWYoKGJfW2NbKGNbZz4+Ml18MCkrNTI+PjJdJjMxXShiLGRbbF18MCl8MCk9PS0xKXtoPWs7bj0x
ODY5O2JyZWFrfX1tPWsrMXwwO2lmKChtfDApPChmfDApKXtrPW07bD1sKzF8MH1lbHNle2g9bTtu
PTE4NzE7YnJlYWt9fWlmKChufDApPT0xODY5KXtyZXR1cm4gaHwwfWVsc2UgaWYoKG58MCk9PTE4
NzEpe3JldHVybiBofDB9cmV0dXJuIDB9ZnVuY3Rpb24gZXQoYSl7YT1hfDA7Y1thPj4yXT00MTYw
O2lPKGErNHwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZXUoYSl7YT1hfDA7Y1thPj4yXT00MTYw
O2lPKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZXYoYSl7YT1hfDA7Y1thPj4yXT00MTYwO2lPKGEr
NHwwKTtyZXR1cm59ZnVuY3Rpb24gZXcoYSl7YT1hfDA7Y1thPj4yXT00MTYwO2lXKGErNHwwKTtr
JChhKzh8MCwwLDI0KTtyZXR1cm59ZnVuY3Rpb24gZXgoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXww
O3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wO2lmKGU+Pj4wPjEwNzM3NDE4MjIpe2RYKDApfWlmKGU+
Pj4wPDIpe2FbYl09ZTw8MSYyNTU7Zj1iKzR8MDtnPWtuKGYsZCxlKXwwO2g9ZisoZTw8Mil8MDtj
W2g+PjJdPTA7cmV0dXJufWVsc2V7aT1lKzQmLTQ7aj1rTyhpPDwyKXwwO2NbYis4Pj4yXT1qO2Nb
Yj4+Ml09aXwxO2NbYis0Pj4yXT1lO2Y9ajtnPWtuKGYsZCxlKXwwO2g9ZisoZTw8Mil8MDtjW2g+
PjJdPTA7cmV0dXJufX1mdW5jdGlvbiBleShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9
MCxnPTAsaD0wLGk9MCxqPTA7aWYoZD4+PjA+MTA3Mzc0MTgyMil7ZFgoMCl9aWYoZD4+PjA8Mil7
YVtiXT1kPDwxJjI1NTtmPWIrNHwwO2c9a3AoZixlLGQpfDA7aD1mKyhkPDwyKXwwO2NbaD4+Ml09
MDtyZXR1cm59ZWxzZXtpPWQrNCYtNDtqPWtPKGk8PDIpfDA7Y1tiKzg+PjJdPWo7Y1tiPj4yXT1p
fDE7Y1tiKzQ+PjJdPWQ7Zj1qO2c9a3AoZixlLGQpfDA7aD1mKyhkPDwyKXwwO2NbaD4+Ml09MDty
ZXR1cm59fWZ1bmN0aW9uIGV6KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxp
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MDtpZihkPj4+MD4xMDczNzQxODIyKXtk
WCgwKX1lPWI7Zj1hW2VdfDA7aWYoKGYmMSk9PTApe2c9MTtoPWZ9ZWxzZXtmPWNbYj4+Ml18MDtn
PShmJi0yKS0xfDA7aD1mJjI1NX1mPWgmMjU1O2lmKChmJjF8MCk9PTApe2k9Zj4+PjF9ZWxzZXtp
PWNbYis0Pj4yXXwwfWY9aT4+PjA+ZD4+PjA/aTpkO2lmKGY+Pj4wPDIpe2o9Mn1lbHNle2o9Zis0
Ji00fWY9ai0xfDA7aWYoKGZ8MCk9PShnfDApKXtyZXR1cm59aWYoKGZ8MCk9PTEpe2s9Yis0fDA7
bD1jW2IrOD4+Ml18MDttPTE7bj0wfWVsc2V7ZD1qPDwyO2lmKGY+Pj4wPmc+Pj4wKXtvPWtPKGQp
fDB9ZWxzZXtvPWtPKGQpfDB9ZD1oJjE7aWYoZDw8MjQ+PjI0PT0wKXtwPWIrNHwwfWVsc2V7cD1j
W2IrOD4+Ml18MH1rPW87bD1wO209ZDw8MjQ+PjI0IT0wO249MX1kPWs7az1oJjI1NTtpZigoayYx
fDApPT0wKXtxPWs+Pj4xfWVsc2V7cT1jW2IrND4+Ml18MH1rbihkLGwscSsxfDApfDA7aWYobSl7
a1MobCl9aWYobil7Y1tiPj4yXT1qfDE7Y1tiKzQ+PjJdPWk7Y1tiKzg+PjJdPWQ7cmV0dXJufWVs
c2V7YVtlXT1pPDwxJjI1NTtyZXR1cm59fWZ1bmN0aW9uIGVBKGIsZCxlLGYsZyxoLGksail7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7dmFyIGs9MCxsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7aWYoKDEwNzM3NDE4MjEtZHwwKT4+
PjA8ZT4+PjApe2RYKDApfWlmKChhW2JdJjEpPT0wKXtrPWIrNHwwfWVsc2V7az1jW2IrOD4+Ml18
MH1kb3tpZihkPj4+MDw1MzY4NzA4OTUpe2w9ZStkfDA7bT1kPDwxO249bD4+PjA8bT4+PjA/bTps
O2lmKG4+Pj4wPDIpe289MjticmVha31vPW4rNCYtNH1lbHNle289MTA3Mzc0MTgyMn19d2hpbGUo
MCk7ZT1rTyhvPDwyKXwwO2lmKChnfDApIT0wKXtrbihlLGssZyl8MH1pZigoaXwwKSE9MCl7bj1l
KyhnPDwyKXwwO2tuKG4saixpKXwwfWo9Zi1ofDA7aWYoKGp8MCkhPShnfDApKXtmPWotZ3wwO249
ZSsoaStnPDwyKXwwO2w9aysoaCtnPDwyKXwwO2tuKG4sbCxmKXwwfWlmKChkfDApPT0xKXtwPWIr
OHwwO2NbcD4+Ml09ZTtxPW98MTtyPWJ8MDtjW3I+PjJdPXE7cz1qK2l8MDt0PWIrNHwwO2NbdD4+
Ml09czt1PWUrKHM8PDIpfDA7Y1t1Pj4yXT0wO3JldHVybn1rUyhrKTtwPWIrOHwwO2NbcD4+Ml09
ZTtxPW98MTtyPWJ8MDtjW3I+PjJdPXE7cz1qK2l8MDt0PWIrNHwwO2NbdD4+Ml09czt1PWUrKHM8
PDIpfDA7Y1t1Pj4yXT0wO3JldHVybn1mdW5jdGlvbiBlQihiLGQsZSxmLGcsaCxpKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MDtpZigoMTA3Mzc0MTgyMS1kfDApPj4+MDxlPj4+MCl7ZFgoMCl9aWYoKGFb
Yl0mMSk9PTApe2o9Yis0fDB9ZWxzZXtqPWNbYis4Pj4yXXwwfWRve2lmKGQ+Pj4wPDUzNjg3MDg5
NSl7az1lK2R8MDtsPWQ8PDE7bT1rPj4+MDxsPj4+MD9sOms7aWYobT4+PjA8Mil7bj0yO2JyZWFr
fW49bSs0Ji00fWVsc2V7bj0xMDczNzQxODIyfX13aGlsZSgwKTtlPWtPKG48PDIpfDA7aWYoKGd8
MCkhPTApe2tuKGUsaixnKXwwfW09Zi1ofDA7aWYoKG18MCkhPShnfDApKXtmPW0tZ3wwO209ZSso
aStnPDwyKXwwO2k9aisoaCtnPDwyKXwwO2tuKG0saSxmKXwwfWlmKChkfDApPT0xKXtvPWIrOHww
O2Nbbz4+Ml09ZTtwPW58MTtxPWJ8MDtjW3E+PjJdPXA7cmV0dXJufWtTKGopO289Yis4fDA7Y1tv
Pj4yXT1lO3A9bnwxO3E9YnwwO2NbcT4+Ml09cDtyZXR1cm59ZnVuY3Rpb24gZUMoYixkKXtiPWJ8
MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7ZT1pO2k9aSs4fDA7Zj1lfDA7Zz0oY1tiKzI0Pj4yXXww
KT09MDtpZihnKXtjW2IrMTY+PjJdPWR8MX1lbHNle2NbYisxNj4+Ml09ZH1pZigoKGcmMXxkKSZj
W2IrMjA+PjJdfDApPT0wKXtpPWU7cmV0dXJufWU9Yk8oMTYpfDA7ZG97aWYoKGFbMTYyNzJdfDAp
PT0wKXtpZigoYmMoMTYyNzIpfDApPT0wKXticmVha31kaigxMTg0MCk7Y1syOTYwXT00ZTM7YSQo
NjYsMTE4NDAsdXwwKXwwfX13aGlsZSgwKTtiPWszKDExODQwLDAsMzIpfDA7ZD1LO2NbZj4+Ml09
YiYwfDE7Y1tmKzQ+PjJdPWR8MDtkTShlLGYsMTMwNCk7Y1tlPj4yXT0zMTg0O2JsKGV8MCw4NzUy
LDI4KX1mdW5jdGlvbiBlRChhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wO2NbYT4+Ml09MzE2
MDtiPWNbYSs0MD4+Ml18MDtkPWErMzJ8MDtlPWErMzZ8MDtpZigoYnwwKSE9MCl7Zj1iO2Rve2Y9
Zi0xfDA7YjNbY1soY1tkPj4yXXwwKSsoZjw8Mik+PjJdJjddKDAsYSxjWyhjW2U+PjJdfDApKyhm
PDwyKT4+Ml18MCk7fXdoaWxlKChmfDApIT0wKX1pTyhhKzI4fDApO2tLKGNbZD4+Ml18MCk7a0so
Y1tlPj4yXXwwKTtrSyhjW2ErNDg+PjJdfDApO2tLKGNbYSs2MD4+Ml18MCk7cmV0dXJufWZ1bmN0
aW9uIGVFKGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGVGKGEpe2E9YXwwO3JldHVybiAwfWZ1
bmN0aW9uIGVHKGEpe2E9YXwwO3JldHVybi0xfDB9ZnVuY3Rpb24gZUgoYSxiKXthPWF8MDtiPWJ8
MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGVJKGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJuLTF8MH1mdW5j
dGlvbiBlSihhKXthPWF8MDtyZXR1cm4gMTQxNnwwfWZ1bmN0aW9uIGVLKGEsYixkLGUpe2E9YXww
O2I9YnwwO2Q9ZHwwO2U9ZXwwO2U9aTtiPWQ7ZD1pO2k9aSsxNnwwO2NbZD4+Ml09Y1tiPj4yXTtj
W2QrND4+Ml09Y1tiKzQ+PjJdO2NbZCs4Pj4yXT1jW2IrOD4+Ml07Y1tkKzEyPj4yXT1jW2IrMTI+
PjJdO2I9YTtjW2I+PjJdPTA7Y1tiKzQ+PjJdPTA7Yj1hKzh8MDtjW2I+PjJdPS0xO2NbYis0Pj4y
XT0tMTtpPWU7cmV0dXJufWZ1bmN0aW9uIGVMKGIsYyxkLGUsZil7Yj1ifDA7Yz1jfDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO0wyNDM3OmRve2lmKChlfDAp
PT0oZnwwKSl7Zz1jfWVsc2V7Yj1jO2g9ZTt3aGlsZSgxKXtpZigoYnwwKT09KGR8MCkpe2k9LTE7
aj0xOTkwO2JyZWFrfWs9YVtiXXwwO2w9YVtoXXwwO2lmKGs8PDI0Pj4yNDxsPDwyND4+MjQpe2k9
LTE7aj0xOTkzO2JyZWFrfWlmKGw8PDI0Pj4yNDxrPDwyND4+MjQpe2k9MTtqPTE5OTI7YnJlYWt9
az1iKzF8MDtsPWgrMXwwO2lmKChsfDApPT0oZnwwKSl7Zz1rO2JyZWFrIEwyNDM3fWVsc2V7Yj1r
O2g9bH19aWYoKGp8MCk9PTE5OTMpe3JldHVybiBpfDB9ZWxzZSBpZigoanwwKT09MTk5Mil7cmV0
dXJuIGl8MH1lbHNlIGlmKChqfDApPT0xOTkwKXtyZXR1cm4gaXwwfX19d2hpbGUoMCk7aT0oZ3ww
KSE9KGR8MCl8MDtyZXR1cm4gaXwwfWZ1bmN0aW9uIGVNKGIsYyxkKXtiPWJ8MDtjPWN8MDtkPWR8
MDt2YXIgZT0wLGY9MCxnPTAsaD0wO2lmKChjfDApPT0oZHwwKSl7ZT0wO3JldHVybiBlfDB9ZWxz
ZXtmPWM7Zz0wfXdoaWxlKDEpe2M9KGFbZl18MCkrKGc8PDQpfDA7Yj1jJi0yNjg0MzU0NTY7aD0o
Yj4+PjI0fGIpXmM7Yz1mKzF8MDtpZigoY3wwKT09KGR8MCkpe2U9aDticmVha31lbHNle2Y9Yztn
PWh9fXJldHVybiBlfDB9ZnVuY3Rpb24gZU4oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO2U9YTtpZigoZHwwKTw9MCl7Zj0wO3JldHVy
biBmfDB9Zz1hKzEyfDA7aD1hKzE2fDA7aT1iO2I9MDt3aGlsZSgxKXtqPWNbZz4+Ml18MDtpZihq
Pj4+MDwoY1toPj4yXXwwKT4+PjApe2NbZz4+Ml09ais0O2s9Y1tqPj4yXXwwfWVsc2V7aj1iMFtj
WyhjW2U+PjJdfDApKzQwPj4yXSYxMjddKGEpfDA7aWYoKGp8MCk9PS0xKXtmPWI7bD0yMDA3O2Jy
ZWFrfWVsc2V7az1qfX1jW2k+PjJdPWs7aj1iKzF8MDtpZigoanwwKTwoZHwwKSl7aT1pKzR8MDti
PWp9ZWxzZXtmPWo7bD0yMDA4O2JyZWFrfX1pZigobHwwKT09MjAwOCl7cmV0dXJuIGZ8MH1lbHNl
IGlmKChsfDApPT0yMDA3KXtyZXR1cm4gZnwwfXJldHVybiAwfWZ1bmN0aW9uIGVPKGEpe2E9YXww
O3ZhciBiPTAsZD0wO2lmKChiMFtjWyhjW2E+PjJdfDApKzM2Pj4yXSYxMjddKGEpfDApPT0tMSl7
Yj0tMTtyZXR1cm4gYnwwfWQ9YSsxMnwwO2E9Y1tkPj4yXXwwO2NbZD4+Ml09YSs0O2I9Y1thPj4y
XXwwO3JldHVybiBifDB9ZnVuY3Rpb24gZVAoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO2U9YTtpZigoZHwwKTw9MCl7Zj0wO3JldHVy
biBmfDB9Zz1hKzI0fDA7aD1hKzI4fDA7aT0wO2o9Yjt3aGlsZSgxKXtiPWNbZz4+Ml18MDtpZihi
Pj4+MDwoY1toPj4yXXwwKT4+PjApe2s9Y1tqPj4yXXwwO2NbZz4+Ml09Yis0O2NbYj4+Ml09a31l
bHNle2lmKChiX1tjWyhjW2U+PjJdfDApKzUyPj4yXSYzMV0oYSxjW2o+PjJdfDApfDApPT0tMSl7
Zj1pO2w9MjAyMzticmVha319az1pKzF8MDtpZigoa3wwKTwoZHwwKSl7aT1rO2o9ais0fDB9ZWxz
ZXtmPWs7bD0yMDIyO2JyZWFrfX1pZigobHwwKT09MjAyMyl7cmV0dXJuIGZ8MH1lbHNlIGlmKChs
fDApPT0yMDIyKXtyZXR1cm4gZnwwfXJldHVybiAwfWZ1bmN0aW9uIGVRKGEpe2E9YXwwO2VEKGEr
OHwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZVIoYSl7YT1hfDA7ZUQoYSs4fDApO3JldHVybn1m
dW5jdGlvbiBlUyhhKXthPWF8MDt2YXIgYj0wLGQ9MDtiPWE7ZD1jWyhjW2E+PjJdfDApLTEyPj4y
XXwwO2VEKGIrKGQrOCl8MCk7a1MoYitkfDApO3JldHVybn1mdW5jdGlvbiBlVChhKXthPWF8MDtl
RChhKygoY1soY1thPj4yXXwwKS0xMj4+Ml18MCkrOCl8MCk7cmV0dXJufWZ1bmN0aW9uIGVVKGEp
e2E9YXwwO2VEKGErOHwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZVYoYSl7YT1hfDA7ZUQoYSs4
fDApO3JldHVybn1mdW5jdGlvbiBlVyhhKXthPWF8MDt2YXIgYj0wLGQ9MDtiPWE7ZD1jWyhjW2E+
PjJdfDApLTEyPj4yXXwwO2VEKGIrKGQrOCl8MCk7a1MoYitkfDApO3JldHVybn1mdW5jdGlvbiBl
WChhKXthPWF8MDtlRChhKygoY1soY1thPj4yXXwwKS0xMj4+Ml18MCkrOCl8MCk7cmV0dXJufWZ1
bmN0aW9uIGVZKGEpe2E9YXwwO2VEKGErNHwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZVooYSl7
YT1hfDA7ZUQoYSs0fDApO3JldHVybn1mdW5jdGlvbiBlXyhhKXthPWF8MDt2YXIgYj0wLGQ9MDti
PWE7ZD1jWyhjW2E+PjJdfDApLTEyPj4yXXwwO2VEKGIrKGQrNCl8MCk7a1MoYitkfDApO3JldHVy
bn1mdW5jdGlvbiBlJChhKXthPWF8MDtlRChhKygoY1soY1thPj4yXXwwKS0xMj4+Ml18MCkrNCl8
MCk7cmV0dXJufWZ1bmN0aW9uIGUwKGEpe2E9YXwwO2VEKGErNHwwKTtrUyhhKTtyZXR1cm59ZnVu
Y3Rpb24gZTEoYSl7YT1hfDA7ZUQoYSs0fDApO3JldHVybn1mdW5jdGlvbiBlMihhKXthPWF8MDt2
YXIgYj0wLGQ9MDtiPWE7ZD1jWyhjW2E+PjJdfDApLTEyPj4yXXwwO2VEKGIrKGQrNCl8MCk7a1Mo
YitkfDApO3JldHVybn1mdW5jdGlvbiBlMyhhKXthPWF8MDtlRChhKygoY1soY1thPj4yXXwwKS0x
Mj4+Ml18MCkrNCl8MCk7cmV0dXJufWZ1bmN0aW9uIGU0KGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8
MDtpZigoY3wwKT09MSl7ZFooYSwxNjQwLDM1KTtyZXR1cm59ZWxzZXtkSyhhLGJ8MCxjKTtyZXR1
cm59fWZ1bmN0aW9uIGU1KGEpe2E9YXwwO2RmKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGU2KGEpe2E9
YXwwO2RPKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGU3KGEpe2E9YXwwO2RPKGF8MCk7cmV0
dXJufWZ1bmN0aW9uIGU4KGEpe2E9YXwwO2VEKGEpO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlOShh
KXthPWF8MDtkZihhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBmYShhKXthPWF8MDtkZShhfDAp
O2tTKGEpO3JldHVybn1mdW5jdGlvbiBmYihhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlv
biBmYyhhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBmZChiLGQsZSxmKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MDtkPWU7Zz1mLWR8MDtkb3tp
ZigoZ3wwKT09LTEpe2RYKGIpO2g9MjA1OH1lbHNle2lmKGc+Pj4wPj0xMSl7aD0yMDU4O2JyZWFr
fWFbYl09Zzw8MSYyNTU7aT1iKzF8MH19d2hpbGUoMCk7aWYoKGh8MCk9PTIwNTgpe2g9ZysxNiYt
MTY7aj1rTyhoKXwwO2NbYis4Pj4yXT1qO2NbYj4+Ml09aHwxO2NbYis0Pj4yXT1nO2k9an1pZigo
ZXwwKT09KGZ8MCkpe2s9aTthW2tdPTA7cmV0dXJufWo9ZisoLWR8MCl8MDtkPWk7Zz1lO3doaWxl
KDEpe2FbZF09YVtnXXwwO2U9ZysxfDA7aWYoKGV8MCk9PShmfDApKXticmVha31lbHNle2Q9ZCsx
fDA7Zz1lfX1rPWkranwwO2Fba109MDtyZXR1cm59ZnVuY3Rpb24gZmUoYSl7YT1hfDA7ZGUoYXww
KTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZmYoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rp
b24gZmcoYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MDtkPWk7aT1pKzh8
MDtlPWR8MDtmPWI7Zz1jWyhjW2Y+PjJdfDApLTEyPj4yXXwwO2g9YjtpZigoY1toKyhnKzI0KT4+
Ml18MCk9PTApe2k9ZDtyZXR1cm4gYnwwfWo9ZXwwO2Fbal09MDtjW2UrND4+Ml09Yjtkb3tpZigo
Y1toKyhnKzE2KT4+Ml18MCk9PTApe2s9Y1toKyhnKzcyKT4+Ml18MDtpZigoa3wwKSE9MCl7Zmco
ayl8MH1hW2pdPTE7az1jW2grKChjWyhjW2Y+PjJdfDApLTEyPj4yXXwwKSsyNCk+PjJdfDA7aWYo
KGIwW2NbKGNbaz4+Ml18MCkrMjQ+PjJdJjEyN10oayl8MCkhPS0xKXticmVha31rPWNbKGNbZj4+
Ml18MCktMTI+PjJdfDA7ZUMoaCtrfDAsY1toKyhrKzE2KT4+Ml18MSl9fXdoaWxlKDApO2ZpKGUp
O2k9ZDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGZoKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAs
aD0wLGo9MCxrPTA7ZD1pO2k9aSs4fDA7ZT1kfDA7Zj1iO2c9Y1soY1tmPj4yXXwwKS0xMj4+Ml18
MDtoPWI7aWYoKGNbaCsoZysyNCk+PjJdfDApPT0wKXtpPWQ7cmV0dXJuIGJ8MH1qPWV8MDthW2pd
PTA7Y1tlKzQ+PjJdPWI7ZG97aWYoKGNbaCsoZysxNik+PjJdfDApPT0wKXtrPWNbaCsoZys3Mik+
PjJdfDA7aWYoKGt8MCkhPTApe2ZoKGspfDB9YVtqXT0xO2s9Y1toKygoY1soY1tmPj4yXXwwKS0x
Mj4+Ml18MCkrMjQpPj4yXXwwO2lmKChiMFtjWyhjW2s+PjJdfDApKzI0Pj4yXSYxMjddKGspfDAp
IT0tMSl7YnJlYWt9az1jWyhjW2Y+PjJdfDApLTEyPj4yXXwwO2VDKGgra3wwLGNbaCsoaysxNik+
PjJdfDEpfX13aGlsZSgwKTtmaihlKTtpPWQ7cmV0dXJuIGJ8MH1mdW5jdGlvbiBmaShhKXthPWF8
MDt2YXIgYj0wLGQ9MCxlPTA7Yj1hKzR8MDthPWNbYj4+Ml18MDtkPWNbKGNbYT4+Ml18MCktMTI+
PjJdfDA7ZT1hO2lmKChjW2UrKGQrMjQpPj4yXXwwKT09MCl7cmV0dXJufWlmKChjW2UrKGQrMTYp
Pj4yXXwwKSE9MCl7cmV0dXJufWlmKChjW2UrKGQrNCk+PjJdJjgxOTJ8MCk9PTApe3JldHVybn1p
ZihiaCgpfDApe3JldHVybn1kPWNbYj4+Ml18MDtlPWNbZCsoKGNbKGNbZD4+Ml18MCktMTI+PjJd
fDApKzI0KT4+Ml18MDtpZigoYjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShlKXwwKSE9LTEp
e3JldHVybn1lPWNbYj4+Ml18MDtiPWNbKGNbZT4+Ml18MCktMTI+PjJdfDA7ZD1lO2VDKGQrYnww
LGNbZCsoYisxNik+PjJdfDEpO3JldHVybn1mdW5jdGlvbiBmaihhKXthPWF8MDt2YXIgYj0wLGQ9
MCxlPTA7Yj1hKzR8MDthPWNbYj4+Ml18MDtkPWNbKGNbYT4+Ml18MCktMTI+PjJdfDA7ZT1hO2lm
KChjW2UrKGQrMjQpPj4yXXwwKT09MCl7cmV0dXJufWlmKChjW2UrKGQrMTYpPj4yXXwwKSE9MCl7
cmV0dXJufWlmKChjW2UrKGQrNCk+PjJdJjgxOTJ8MCk9PTApe3JldHVybn1pZihiaCgpfDApe3Jl
dHVybn1kPWNbYj4+Ml18MDtlPWNbZCsoKGNbKGNbZD4+Ml18MCktMTI+PjJdfDApKzI0KT4+Ml18
MDtpZigoYjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShlKXwwKSE9LTEpe3JldHVybn1lPWNb
Yj4+Ml18MDtiPWNbKGNbZT4+Ml18MCktMTI+PjJdfDA7ZD1lO2VDKGQrYnwwLGNbZCsoYisxNik+
PjJdfDEpO3JldHVybn1mdW5jdGlvbiBmayhhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtMMjU5Njpkb3tpZigoZXwwKT09
KGZ8MCkpe2c9Yn1lbHNle2E9YjtoPWU7d2hpbGUoMSl7aWYoKGF8MCk9PShkfDApKXtpPS0xO2o9
MjE0NzticmVha31rPWNbYT4+Ml18MDtsPWNbaD4+Ml18MDtpZigoa3wwKTwobHwwKSl7aT0tMTtq
PTIxNTA7YnJlYWt9aWYoKGx8MCk8KGt8MCkpe2k9MTtqPTIxNDg7YnJlYWt9az1hKzR8MDtsPWgr
NHwwO2lmKChsfDApPT0oZnwwKSl7Zz1rO2JyZWFrIEwyNTk2fWVsc2V7YT1rO2g9bH19aWYoKGp8
MCk9PTIxNDgpe3JldHVybiBpfDB9ZWxzZSBpZigoanwwKT09MjE0Nyl7cmV0dXJuIGl8MH1lbHNl
IGlmKChqfDApPT0yMTUwKXtyZXR1cm4gaXwwfX19d2hpbGUoMCk7aT0oZ3wwKSE9KGR8MCl8MDty
ZXR1cm4gaXwwfWZ1bmN0aW9uIGZsKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9
MCxnPTAsaD0wO2lmKChifDApPT0oZHwwKSl7ZT0wO3JldHVybiBlfDB9ZWxzZXtmPWI7Zz0wfXdo
aWxlKDEpe2I9KGNbZj4+Ml18MCkrKGc8PDQpfDA7YT1iJi0yNjg0MzU0NTY7aD0oYT4+PjI0fGEp
XmI7Yj1mKzR8MDtpZigoYnwwKT09KGR8MCkpe2U9aDticmVha31lbHNle2Y9YjtnPWh9fXJldHVy
biBlfDB9ZnVuY3Rpb24gZm0oYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9
MCxoPTAsaT0wLGo9MCxrPTA7ZD1lO2c9Zi1kfDA7aD1nPj4yO2lmKGg+Pj4wPjEwNzM3NDE4MjIp
e2RYKGIpfWlmKGg+Pj4wPDIpe2FbYl09Zz4+PjEmMjU1O2k9Yis0fDB9ZWxzZXtnPWgrNCYtNDtq
PWtPKGc8PDIpfDA7Y1tiKzg+PjJdPWo7Y1tiPj4yXT1nfDE7Y1tiKzQ+PjJdPWg7aT1qfWlmKChl
fDApPT0oZnwwKSl7az1pO2Nbaz4+Ml09MDtyZXR1cm59aj0oZi00KygtZHwwKXwwKT4+PjI7ZD1p
O2g9ZTt3aGlsZSgxKXtjW2Q+PjJdPWNbaD4+Ml07ZT1oKzR8MDtpZigoZXwwKT09KGZ8MCkpe2Jy
ZWFrfWVsc2V7ZD1kKzR8MDtoPWV9fWs9aSsoaisxPDwyKXwwO2Nbaz4+Ml09MDtyZXR1cm59ZnVu
Y3Rpb24gZm4oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZm8oYSl7YT1h
fDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZnAoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7az1pO2k9aSsxMTJ8
MDtsPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1rfDA7bT1rKzE2fDA7bj1rKzMyfDA7
bz1rKzQwfDA7cD1rKzQ4fDA7cT1rKzU2fDA7cj1rKzY0fDA7cz1rKzcyfDA7dD1rKzgwfDA7dT1r
KzEwNHwwO2lmKChjW2crND4+Ml0mMXwwKT09MCl7Y1tuPj4yXT0tMTt2PWNbKGNbZD4+Ml18MCkr
MTY+PjJdfDA7dz1lfDA7Y1twPj4yXT1jW3c+PjJdO2NbcT4+Ml09Y1tmPj4yXTtiWFt2JjEyN10o
byxkLHAscSxnLGgsbik7cT1jW28+PjJdfDA7Y1t3Pj4yXT1xO3N3aXRjaChjW24+PjJdfDApe2Nh
c2UgMTp7YVtqXT0xO2JyZWFrfTtjYXNlIDA6e2Fbal09MDticmVha307ZGVmYXVsdDp7YVtqXT0x
O2NbaD4+Ml09NH19Y1tiPj4yXT1xO2k9aztyZXR1cm59ZWoocixnKTtxPXJ8MDtyPWNbcT4+Ml18
MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbT4+Ml09MTU2OTY7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4y
XT0wO2RXKDE1Njk2LG0sOTYpfW09KGNbMzkyNV18MCktMXwwO249Y1tyKzg+PjJdfDA7ZG97aWYo
KGNbcisxMj4+Ml18MCktbj4+Mj4+PjA+bT4+PjApe3c9Y1tuKyhtPDwyKT4+Ml18MDtpZigod3ww
KT09MCl7YnJlYWt9bz13O3c9Y1txPj4yXXwwO2R6KHcpfDA7ZWoocyxnKTt3PXN8MDtwPWNbdz4+
Ml18MDtpZigoY1szODI4XXwwKSE9LTEpe2NbbD4+Ml09MTUzMTI7Y1tsKzQ+PjJdPTEyO2NbbCs4
Pj4yXT0wO2RXKDE1MzEyLGwsOTYpfWQ9KGNbMzgyOV18MCktMXwwO3Y9Y1twKzg+PjJdfDA7ZG97
aWYoKGNbcCsxMj4+Ml18MCktdj4+Mj4+PjA+ZD4+PjApe3g9Y1t2KyhkPDwyKT4+Ml18MDtpZigo
eHwwKT09MCl7YnJlYWt9eT14O3o9Y1t3Pj4yXXwwO2R6KHopfDA7ej10fDA7QT14O2JaW2NbKGNb
QT4+Ml18MCkrMjQ+PjJdJjEyN10oeix5KTtiWltjWyhjW0E+PjJdfDApKzI4Pj4yXSYxMjddKHQr
MTJ8MCx5KTtjW3U+PjJdPWNbZj4+Ml07YVtqXT0oZnEoZSx1LHosdCsyNHwwLG8saCwxKXwwKT09
KHp8MCl8MDtjW2I+PjJdPWNbZT4+Ml07ZFAodCsxMnwwKTtkUCh0fDApO2k9aztyZXR1cm59fXdo
aWxlKDApO289Yk8oNCl8MDtrcShvKTtibChvfDAsODE3NiwxMzQpfX13aGlsZSgwKTtrPWJPKDQp
fDA7a3Eoayk7Ymwoa3wwLDgxNzYsMTM0KX1mdW5jdGlvbiBmcShiLGUsZixnLGgsaixrKXtiPWJ8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxS
PTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTA7bD1pO2k9aSsx
MDR8MDttPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW20+PjJdO209KGctZnww
KS8xMnwwO249bHwwO2Rve2lmKG0+Pj4wPjEwMCl7bz1rSihtKXwwO2lmKChvfDApIT0wKXtwPW87
cT1vO2JyZWFrfWtYKCk7cD0wO3E9MH1lbHNle3A9bjtxPTB9fXdoaWxlKDApO249KGZ8MCk9PShn
fDApO2lmKG4pe3I9bTtzPTB9ZWxzZXtvPW07bT0wO3Q9cDt1PWY7d2hpbGUoMSl7dj1kW3VdfDA7
aWYoKHYmMXwwKT09MCl7dz12Pj4+MX1lbHNle3c9Y1t1KzQ+PjJdfDB9aWYoKHd8MCk9PTApe2Fb
dF09Mjt4PW0rMXwwO3k9by0xfDB9ZWxzZXthW3RdPTE7eD1tO3k9b312PXUrMTJ8MDtpZigodnww
KT09KGd8MCkpe3I9eTtzPXg7YnJlYWt9ZWxzZXtvPXk7bT14O3Q9dCsxfDA7dT12fX19dT1ifDA7
Yj1lfDA7ZT1oO3Q9MDt4PXM7cz1yO3doaWxlKDEpe3I9Y1t1Pj4yXXwwO2Rve2lmKChyfDApPT0w
KXt6PTB9ZWxzZXtpZigoY1tyKzEyPj4yXXwwKSE9KGNbcisxNj4+Ml18MCkpe3o9cjticmVha31p
ZigoYjBbY1soY1tyPj4yXXwwKSszNj4+Ml0mMTI3XShyKXwwKT09LTEpe2NbdT4+Ml09MDt6PTA7
YnJlYWt9ZWxzZXt6PWNbdT4+Ml18MDticmVha319fXdoaWxlKDApO3I9KHp8MCk9PTA7bT1jW2I+
PjJdfDA7aWYoKG18MCk9PTApe0E9ejtCPTB9ZWxzZXtkb3tpZigoY1ttKzEyPj4yXXwwKT09KGNb
bSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW20+PjJdfDApKzM2Pj4yXSYxMjddKG0pfDApIT0tMSl7
Qz1tO2JyZWFrfWNbYj4+Ml09MDtDPTB9ZWxzZXtDPW19fXdoaWxlKDApO0E9Y1t1Pj4yXXwwO0I9
Q31EPShCfDApPT0wO2lmKCEoKHJeRCkmKHN8MCkhPTApKXticmVha31tPWNbQSsxMj4+Ml18MDtp
ZigobXwwKT09KGNbQSsxNj4+Ml18MCkpe0U9KGIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10o
QSl8MCkmMjU1fWVsc2V7RT1hW21dfDB9aWYoayl7Rj1FfWVsc2V7Rj1iX1tjWyhjW2U+PjJdfDAp
KzEyPj4yXSYzMV0oaCxFKXwwfWRve2lmKG4pe0c9eDtIPXN9ZWxzZXttPXQrMXwwO0wyNzA3OmRv
e2lmKGspe3k9cztvPXg7dz1wO3Y9MDtJPWY7d2hpbGUoMSl7ZG97aWYoKGFbd118MCk9PTEpe0o9
STtpZigoYVtKXSYxKT09MCl7Sz1JKzF8MH1lbHNle0s9Y1tJKzg+PjJdfDB9aWYoRjw8MjQ+PjI0
IT0oYVtLK3R8MF18MCkpe2Fbd109MDtMPXY7TT1vO049eS0xfDA7YnJlYWt9Tz1kW0pdfDA7aWYo
KE8mMXwwKT09MCl7UD1PPj4+MX1lbHNle1A9Y1tJKzQ+PjJdfDB9aWYoKFB8MCkhPShtfDApKXtM
PTE7TT1vO049eTticmVha31hW3ddPTI7TD0xO009bysxfDA7Tj15LTF8MH1lbHNle0w9djtNPW87
Tj15fX13aGlsZSgwKTtPPUkrMTJ8MDtpZigoT3wwKT09KGd8MCkpe1E9TjtSPU07Uz1MO2JyZWFr
IEwyNzA3fXk9TjtvPU07dz13KzF8MDt2PUw7ST1PfX1lbHNle0k9czt2PXg7dz1wO289MDt5PWY7
d2hpbGUoMSl7ZG97aWYoKGFbd118MCk9PTEpe089eTtpZigoYVtPXSYxKT09MCl7VD15KzF8MH1l
bHNle1Q9Y1t5Kzg+PjJdfDB9aWYoRjw8MjQ+PjI0IT0oYl9bY1soY1tlPj4yXXwwKSsxMj4+Ml0m
MzFdKGgsYVtUK3R8MF18MCl8MCk8PDI0Pj4yNCl7YVt3XT0wO1U9bztWPXY7Vz1JLTF8MDticmVh
a31KPWRbT118MDtpZigoSiYxfDApPT0wKXtYPUo+Pj4xfWVsc2V7WD1jW3krND4+Ml18MH1pZigo
WHwwKSE9KG18MCkpe1U9MTtWPXY7Vz1JO2JyZWFrfWFbd109MjtVPTE7Vj12KzF8MDtXPUktMXww
fWVsc2V7VT1vO1Y9djtXPUl9fXdoaWxlKDApO0o9eSsxMnwwO2lmKChKfDApPT0oZ3wwKSl7UT1X
O1I9VjtTPVU7YnJlYWsgTDI3MDd9ST1XO3Y9Vjt3PXcrMXwwO289VTt5PUp9fX13aGlsZSgwKTtp
ZighUyl7Rz1SO0g9UTticmVha31tPWNbdT4+Ml18MDt5PW0rMTJ8MDtvPWNbeT4+Ml18MDtpZigo
b3wwKT09KGNbbSsxNj4+Ml18MCkpe3c9Y1soY1ttPj4yXXwwKSs0MD4+Ml18MDtiMFt3JjEyN10o
bSl8MH1lbHNle2NbeT4+Ml09bysxfWlmKChSK1F8MCk+Pj4wPDJ8bil7Rz1SO0g9UTticmVha31v
PXQrMXwwO3k9UjttPXA7dz1mO3doaWxlKDEpe2Rve2lmKChhW21dfDApPT0yKXt2PWRbd118MDtp
ZigodiYxfDApPT0wKXtZPXY+Pj4xfWVsc2V7WT1jW3crND4+Ml18MH1pZigoWXwwKT09KG98MCkp
e1o9eTticmVha31hW21dPTA7Wj15LTF8MH1lbHNle1o9eX19d2hpbGUoMCk7dj13KzEyfDA7aWYo
KHZ8MCk9PShnfDApKXtHPVo7SD1RO2JyZWFrfWVsc2V7eT1aO209bSsxfDA7dz12fX19fXdoaWxl
KDApO3Q9dCsxfDA7eD1HO3M9SH1kb3tpZigoQXwwKT09MCl7Xz0wfWVsc2V7aWYoKGNbQSsxMj4+
Ml18MCkhPShjW0ErMTY+PjJdfDApKXtfPUE7YnJlYWt9aWYoKGIwW2NbKGNbQT4+Ml18MCkrMzY+
PjJdJjEyN10oQSl8MCk9PS0xKXtjW3U+PjJdPTA7Xz0wO2JyZWFrfWVsc2V7Xz1jW3U+PjJdfDA7
YnJlYWt9fX13aGlsZSgwKTt1PShffDApPT0wO2Rve2lmKEQpeyQ9MjI5M31lbHNle2lmKChjW0Ir
MTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7aWYodSl7YnJlYWt9ZWxzZXskPTIyOTU7YnJlYWt9
fWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApPT0tMSl7Y1tiPj4yXT0wOyQ9
MjI5MzticmVha31lbHNle2lmKHVeKEJ8MCk9PTApe2JyZWFrfWVsc2V7JD0yMjk1O2JyZWFrfX19
fXdoaWxlKDApO2lmKCgkfDApPT0yMjkzKXtpZih1KXskPTIyOTV9fWlmKCgkfDApPT0yMjk1KXtj
W2o+PjJdPWNbaj4+Ml18Mn1MMjc4Njpkb3tpZihuKXskPTIzMDB9ZWxzZXt1PWY7Qj1wO3doaWxl
KDEpe2lmKChhW0JdfDApPT0yKXthYT11O2JyZWFrIEwyNzg2fWI9dSsxMnwwO2lmKChifDApPT0o
Z3wwKSl7JD0yMzAwO2JyZWFrIEwyNzg2fXU9YjtCPUIrMXwwfX19d2hpbGUoMCk7aWYoKCR8MCk9
PTIzMDApe2Nbaj4+Ml09Y1tqPj4yXXw0O2FhPWd9aWYoKHF8MCk9PTApe2k9bDtyZXR1cm4gYWF8
MH1rSyhxKTtpPWw7cmV0dXJuIGFhfDB9ZnVuY3Rpb24gZnIoYixlLGYsZyxoLGosayl7Yj1ifDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9
MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0w
LFM9MCxUPTAsVT0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tm
Pj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07
bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9
aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDY0Ont0PTg7YnJlYWt9O2Nhc2UgODp7dD0x
NjticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2Z4KG0saCx1
LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3
PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+
Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7
QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wyODA5OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtC
PTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+Ml18MCkpe0I9dzticmVha31pZigo
YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9LTEpe0I9dzticmVha31jW2g+PjJd
PTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4yXXwwO2Rve2lmKChEfDApPT0wKXtF
PTIzMjd9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsxNj4+Ml18MCkpe2lmKEMpe0Y9RDtH
PTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMjgwOX19aWYoKGIwW2NbKGNbRD4+Ml18
MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7RT0yMzI3O2JyZWFrfWVsc2V7Sz0o
RHwwKT09MDtpZihDXkspe0Y9RDtHPUs7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9SzticmVhayBMMjgw
OX19fX13aGlsZSgwKTtpZigoRXwwKT09MjMyNyl7RT0wO2lmKEMpe0g9bDtJPTA7Sj0xO2JyZWFr
fWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7Sz0oRCYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDAp
PT0oKEs/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoSyl7TD1EPj4+MTtNPUQ+Pj4xfWVsc2V7RD1j
W3o+PjJdfDA7TD1EO009RH1kUihuLEw8PDEsMCk7aWYoKGFbb10mMSk9PTApe049MTB9ZWxzZXtO
PShjW2c+PjJdJi0yKS0xfDB9ZFIobixOLDApO2lmKChhW29dJjEpPT0wKXtPPXh9ZWxzZXtPPWNb
eT4+Ml18MH1jW3A+PjJdPU8rTTtQPU99ZWxzZXtQPWx9RD1CKzEyfDA7Sz1jW0Q+PjJdfDA7UT1C
KzE2fDA7aWYoKEt8MCk9PShjW1E+PjJdfDApKXtSPShiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYx
MjddKEIpfDApJjI1NX1lbHNle1I9YVtLXXwwfWlmKChmcyhSLHQsUCxwLHMsQSxtLHYscix1KXww
KSE9MCl7SD1QO0k9RjtKPUc7YnJlYWt9Sz1jW0Q+PjJdfDA7aWYoKEt8MCk9PShjW1E+PjJdfDAp
KXtRPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUSYxMjddKEIpfDA7bD1QO3c9Qjtjb250aW51
ZX1lbHNle2NbRD4+Ml09SysxO2w9UDt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9
PTApe1M9dz4+PjF9ZWxzZXtTPWNbbSs0Pj4yXXwwfWRve2lmKChTfDApIT0wKXt3PWNbcj4+Ml18
MDtpZigody1xfDApPj0xNjApe2JyZWFrfVA9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09
UH19d2hpbGUoMCk7Y1trPj4yXT1mdShILGNbcD4+Ml18MCxqLHQpfDA7ZnQobSx2LGNbcj4+Ml18
MCxqKTtkb3tpZihDKXtUPTB9ZWxzZXtpZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkp
e1Q9QjticmVha31pZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSE9LTEpe1Q9
QjticmVha31jW2g+PjJdPTA7VD0wfX13aGlsZSgwKTtoPShUfDApPT0wO0wyODY5OmRve2lmKEop
e0U9MjM2OH1lbHNle2Rve2lmKChjW0krMTI+PjJdfDApPT0oY1tJKzE2Pj4yXXwwKSl7aWYoKGIw
W2NbKGNbST4+Ml18MCkrMzY+PjJdJjEyN10oSSl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7RT0y
MzY4O2JyZWFrIEwyODY5fX13aGlsZSgwKTtpZighKGheKEl8MCk9PTApKXticmVha31VPWJ8MDtj
W1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEV8MCk9PTIz
Njgpe2lmKGgpe2JyZWFrfVU9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtVPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1l
O3JldHVybn1mdW5jdGlvbiBmcyhiLGUsZixnLGgsaSxqLGssbCxtKXtiPWJ8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxw
PTAscT0wLHI9MCxzPTA7bj1jW2c+PjJdfDA7bz0obnwwKT09KGZ8MCk7ZG97aWYobyl7cD0oYVtt
KzI0fDBdfDApPT1iPDwyND4+MjQ7aWYoIXApe2lmKChhW20rMjV8MF18MCkhPWI8PDI0Pj4yNCl7
YnJlYWt9fWNbZz4+Ml09ZisxO2FbZl09cD80Mzo0NTtjW2g+PjJdPTA7cT0wO3JldHVybiBxfDB9
fXdoaWxlKDApO3A9ZFtqXXwwO2lmKChwJjF8MCk9PTApe3I9cD4+PjF9ZWxzZXtyPWNbais0Pj4y
XXwwfWlmKChyfDApIT0wJmI8PDI0Pj4yND09aTw8MjQ+PjI0KXtpPWNbbD4+Ml18MDtpZigoaS1r
fDApPj0xNjApe3E9MDtyZXR1cm4gcXwwfWs9Y1toPj4yXXwwO2NbbD4+Ml09aSs0O2NbaT4+Ml09
aztjW2g+PjJdPTA7cT0wO3JldHVybiBxfDB9az1tKzI2fDA7aT1tO3doaWxlKDEpe2lmKChpfDAp
PT0oa3wwKSl7cz1rO2JyZWFrfWlmKChhW2ldfDApPT1iPDwyND4+MjQpe3M9aTticmVha31lbHNl
e2k9aSsxfDB9fWk9cy1tfDA7aWYoKGl8MCk+MjMpe3E9LTE7cmV0dXJuIHF8MH1MMjkwODpkb3tz
d2l0Y2goZXwwKXtjYXNlIDg6Y2FzZSAxMDp7aWYoKGl8MCk8KGV8MCkpe2JyZWFrIEwyOTA4fWVs
c2V7cT0tMX1yZXR1cm4gcXwwfTtjYXNlIDE2OntpZigoaXwwKTwyMil7YnJlYWsgTDI5MDh9aWYo
byl7cT0tMTtyZXR1cm4gcXwwfWlmKChuLWZ8MCk+PTMpe3E9LTE7cmV0dXJuIHF8MH1pZigoYVtu
LTF8MF18MCkhPTQ4KXtxPS0xO3JldHVybiBxfDB9Y1toPj4yXT0wO209YVs5NzQ0K2l8MF18MDtz
PWNbZz4+Ml18MDtjW2c+PjJdPXMrMTthW3NdPW07cT0wO3JldHVybiBxfDB9O2RlZmF1bHQ6e319
fXdoaWxlKDApO2Y9YVs5NzQ0K2l8MF18MDtjW2c+PjJdPW4rMTthW25dPWY7Y1toPj4yXT0oY1to
Pj4yXXwwKSsxO3E9MDtyZXR1cm4gcXwwfWZ1bmN0aW9uIGZ0KGIsZCxlLGYpe2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MDtnPWI7aD1iO2k9YVtoXXwwO2o9aSYyNTU7aWYoKGomMXwwKT09
MCl7az1qPj4+MX1lbHNle2s9Y1tiKzQ+PjJdfDB9aWYoKGt8MCk9PTApe3JldHVybn1kb3tpZigo
ZHwwKT09KGV8MCkpe2w9aX1lbHNle2s9ZS00fDA7aWYoaz4+PjA+ZD4+PjApe209ZDtuPWt9ZWxz
ZXtsPWk7YnJlYWt9ZG97az1jW20+PjJdfDA7Y1ttPj4yXT1jW24+PjJdO2Nbbj4+Ml09azttPW0r
NHwwO249bi00fDA7fXdoaWxlKG0+Pj4wPG4+Pj4wKTtsPWFbaF18MH19d2hpbGUoMCk7aWYoKGwm
MSk9PTApe289ZysxfDB9ZWxzZXtvPWNbYis4Pj4yXXwwfWc9bCYyNTU7aWYoKGcmMXwwKT09MCl7
cD1nPj4+MX1lbHNle3A9Y1tiKzQ+PjJdfDB9Yj1lLTR8MDtlPWFbb118MDtnPWU8PDI0Pj4yNDts
PWU8PDI0Pj4yNDwxfGU8PDI0Pj4yND09MTI3O0wyOTQ3OmRve2lmKGI+Pj4wPmQ+Pj4wKXtlPW8r
cHwwO2g9bztuPWQ7bT1nO2k9bDt3aGlsZSgxKXtpZighaSl7aWYoKG18MCkhPShjW24+PjJdfDAp
KXticmVha319az0oZS1ofDApPjE/aCsxfDA6aDtqPW4rNHwwO3E9YVtrXXwwO3I9cTw8MjQ+PjI0
O3M9cTw8MjQ+PjI0PDF8cTw8MjQ+PjI0PT0xMjc7aWYoaj4+PjA8Yj4+PjApe2g9aztuPWo7bT1y
O2k9c31lbHNle3Q9cjt1PXM7YnJlYWsgTDI5NDd9fWNbZj4+Ml09NDtyZXR1cm59ZWxzZXt0PWc7
dT1sfX13aGlsZSgwKTtpZih1KXtyZXR1cm59dT1jW2I+PjJdfDA7aWYoISh0Pj4+MDx1Pj4+MHwo
dXwwKT09MCkpe3JldHVybn1jW2Y+PjJdPTQ7cmV0dXJufWZ1bmN0aW9uIGZ1KGIsZCxlLGYpe2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wO2c9aTtpPWkrOHww
O2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1rPWNb
KGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O2w9YkkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXwwO2Y9SztiPWNbKGJ3KCl8MCk+PjJdfDA7aWYo
KGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWt9aWYoKGNbaD4+Ml18MCkhPShkfDApKXtjW2U+PjJd
PTQ7aj0wO2k9ZztyZXR1cm4ganwwfWQ9LTE7aD0wO2lmKChifDApPT0zNHwoKGZ8MCk8KGR8MCl8
KGZ8MCk9PShkfDApJmw+Pj4wPC0yMTQ3NDgzNjQ4Pj4+MCl8KChmfDApPihofDApfChmfDApPT0o
aHwwKSZsPj4+MD4yMTQ3NDgzNjQ3Pj4+MCkpe2NbZT4+Ml09NDtlPTA7aj0oZnwwKT4oZXwwKXwo
ZnwwKT09KGV8MCkmbD4+PjA+MD4+PjA/MjE0NzQ4MzY0NzotMjE0NzQ4MzY0ODtpPWc7cmV0dXJu
IGp8MH1lbHNle2o9bDtpPWc7cmV0dXJuIGp8MH1yZXR1cm4gMH1mdW5jdGlvbiBmdihiLGUsZixn
LGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89MCxQ
PTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTA7ZT1pO2k9aSs3MnwwO2w9ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zz4+Ml09Y1tsPj4yXTtsPWUrMzJ8MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47cD1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0xNjticmVh
a307Y2FzZSA2NDp7dD04O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307ZGVmYXVsdDp7dD0xMH19
dT1lfDA7ZngobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEp
PT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1o
KzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7
Zz1ufDA7ej1uKzR8MDtBPWFbbF18MDtsPXc7dz1jW2g+PjJdfDA7TDI5OTc6d2hpbGUoMSl7ZG97
aWYoKHd8MCk9PTApe0I9MH1lbHNle2lmKChjW3crMTI+PjJdfDApIT0oY1t3KzE2Pj4yXXwwKSl7
Qj13O2JyZWFrfWlmKChiMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDApIT0tMSl7Qj13
O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1jW2Y+PjJdfDA7ZG97
aWYoKER8MCk9PTApe0U9MjQ3Nn1lbHNle2lmKChjW0QrMTI+PjJdfDApIT0oY1tEKzE2Pj4yXXww
KSl7aWYoQyl7Rj1EO0c9MDticmVha31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFrIEwyOTk3fX1pZigo
YjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+Ml09MDtFPTI0NzY7
YnJlYWt9ZWxzZXtMPShEfDApPT0wO2lmKENeTCl7Rj1EO0c9TDticmVha31lbHNle0g9bDtJPUQ7
Sj1MO2JyZWFrIEwyOTk3fX19fXdoaWxlKDApO2lmKChFfDApPT0yNDc2KXtFPTA7aWYoQyl7SD1s
O0k9MDtKPTE7YnJlYWt9ZWxzZXtGPTA7Rz0xfX1EPWRbb118MDtMPShEJjF8MCk9PTA7aWYoKChj
W3A+PjJdfDApLWx8MCk9PSgoTD9EPj4+MTpjW3o+PjJdfDApfDApKXtpZihMKXtNPUQ+Pj4xO049
RD4+PjF9ZWxzZXtEPWNbej4+Ml18MDtNPUQ7Tj1EfWRSKG4sTTw8MSwwKTtpZigoYVtvXSYxKT09
MCl7Tz0xMH1lbHNle089KGNbZz4+Ml0mLTIpLTF8MH1kUihuLE8sMCk7aWYoKGFbb10mMSk9PTAp
e1A9eH1lbHNle1A9Y1t5Pj4yXXwwfWNbcD4+Ml09UCtOO1E9UH1lbHNle1E9bH1EPUIrMTJ8MDtM
PWNbRD4+Ml18MDtSPUIrMTZ8MDtpZigoTHwwKT09KGNbUj4+Ml18MCkpe1M9KGIwW2NbKGNbQj4+
Ml18MCkrMzY+PjJdJjEyN10oQil8MCkmMjU1fWVsc2V7Uz1hW0xdfDB9aWYoKGZzKFMsdCxRLHAs
cyxBLG0sdixyLHUpfDApIT0wKXtIPVE7ST1GO0o9RzticmVha31MPWNbRD4+Ml18MDtpZigoTHww
KT09KGNbUj4+Ml18MCkpe1I9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtSJjEyN10oQil8MDts
PVE7dz1CO2NvbnRpbnVlfWVsc2V7Y1tEPj4yXT1MKzE7bD1RO3c9Qjtjb250aW51ZX19dz1kW21d
fDA7aWYoKHcmMXwwKT09MCl7VD13Pj4+MX1lbHNle1Q9Y1ttKzQ+PjJdfDB9ZG97aWYoKFR8MCkh
PTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9UT1jW3M+PjJdfDA7Y1tyPj4y
XT13KzQ7Y1t3Pj4yXT1RfX13aGlsZSgwKTtzPWZ3KEgsY1twPj4yXXwwLGosdCl8MDtjW2s+PjJd
PXM7Y1trKzQ+PjJdPUs7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihDKXtVPTB9ZWxzZXtpZigo
Y1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe1U9QjticmVha31pZigoYjBbY1soY1tCPj4y
XXwwKSszNj4+Ml0mMTI3XShCKXwwKSE9LTEpe1U9QjticmVha31jW2g+PjJdPTA7VT0wfX13aGls
ZSgwKTtoPShVfDApPT0wO0wzMDU3OmRve2lmKEope0U9MjUxN31lbHNle2Rve2lmKChjW0krMTI+
PjJdfDApPT0oY1tJKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbST4+Ml18MCkrMzY+PjJdJjEyN10o
SSl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7RT0yNTE3O2JyZWFrIEwzMDU3fX13aGlsZSgwKTtp
ZighKGheKEl8MCk9PTApKXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3Jl
dHVybn19d2hpbGUoMCk7ZG97aWYoKEV8MCk9PTI1MTcpe2lmKGgpe2JyZWFrfVY9YnwwO2NbVj4+
Ml09VTtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtW
PWJ8MDtjW1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmdyhiLGQsZSxm
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTA7Zz1p
O2k9aSs4fDA7aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0wO2s9MDtpPWc7cmV0
dXJuKEs9aixrKXwwfWw9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChh
WzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEz
NDQsMCl8MH19d2hpbGUoMCk7bT1iSShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9Y1so
YncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09bH1pZigoY1toPj4yXXww
KSE9KGR8MCkpe2NbZT4+Ml09NDtqPTA7az0wO2k9ZztyZXR1cm4oSz1qLGspfDB9aWYoKGJ8MCkh
PTM0KXtqPWY7az1tO2k9ZztyZXR1cm4oSz1qLGspfDB9Y1tlPj4yXT00O2U9MDtiPShmfDApPihl
fDApfChmfDApPT0oZXwwKSZtPj4+MD4wPj4+MDtqPWI/MjE0NzQ4MzY0NzotMjE0NzQ4MzY0ODtr
PWI/LTE6MDtpPWc7cmV0dXJuKEs9aixrKXwwfWZ1bmN0aW9uIGZ4KGIsZCxlLGYpe2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTA7Zz1pO2k9aSs0MHwwO2g9Z3wwO2o9ZysxNnwwO2s9ZyszMnwwO2VqKGssZCk7ZD1rfDA7az1j
W2Q+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2o+PjJdPTE1Njk2O2Nbais0Pj4yXT0xMjtj
W2orOD4+Ml09MDtkVygxNTY5NixqLDk2KX1qPShjWzM5MjVdfDApLTF8MDtsPWNbays4Pj4yXXww
O2Rve2lmKChjW2srMTI+PjJdfDApLWw+PjI+Pj4wPmo+Pj4wKXttPWNbbCsoajw8Mik+PjJdfDA7
aWYoKG18MCk9PTApe2JyZWFrfW49bTtvPWNbKGNbbT4+Ml18MCkrMzI+PjJdfDA7Y2FbbyYxNV0o
biw5NzQ0LDk3NzAsZSl8MDtuPWNbZD4+Ml18MDtpZigoY1szODI4XXwwKSE9LTEpe2NbaD4+Ml09
MTUzMTI7Y1toKzQ+PjJdPTEyO2NbaCs4Pj4yXT0wO2RXKDE1MzEyLGgsOTYpfW89KGNbMzgyOV18
MCktMXwwO209Y1tuKzg+PjJdfDA7ZG97aWYoKGNbbisxMj4+Ml18MCktbT4+Mj4+PjA+bz4+PjAp
e3A9Y1ttKyhvPDwyKT4+Ml18MDtpZigocHwwKT09MCl7YnJlYWt9cT1wO2FbZl09YjBbY1soY1tw
Pj4yXXwwKSsxNj4+Ml0mMTI3XShxKXwwO2JaW2NbKGNbcD4+Ml18MCkrMjA+PjJdJjEyN10oYixx
KTtxPWNbZD4+Ml18MDtkeihxKXwwO2k9ZztyZXR1cm59fXdoaWxlKDApO289Yk8oNCl8MDtrcShv
KTtibChvfDAsODE3NiwxMzQpfX13aGlsZSgwKTtnPWJPKDQpfDA7a3EoZyk7YmwoZ3wwLDgxNzYs
MTM0KX1mdW5jdGlvbiBmeShlLGYsZyxoLGosayxsKXtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtq
PWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxK
PTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTA7Zj1pO2k9
aSs3MnwwO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1oO2g9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbaD4+Ml09Y1ttPj4yXTttPWYrMzJ8MDtuPWYrNDB8MDtv
PWYrNTZ8MDtwPW87cT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cj1pO2k9aSsxNjB8MDtzPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8Mzt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1tqKzQ+PjJd
Jjc0fDApe2Nhc2UgMDp7dT0wO2JyZWFrfTtjYXNlIDg6e3U9MTY7YnJlYWt9O2Nhc2UgNjQ6e3U9
ODticmVha307ZGVmYXVsdDp7dT0xMH19dj1mfDA7ZngobixqLHYsbSk7ayQocHwwLDAsMTIpO2o9
bztkUihvLDEwLDApO2lmKChhW3BdJjEpPT0wKXt3PWorMXwwO3g9dzt5PXc7ej1vKzh8MH1lbHNl
e3c9bys4fDA7eD1jW3c+PjJdfDA7eT1qKzF8MDt6PXd9Y1txPj4yXT14O3c9cnwwO2Nbcz4+Ml09
dztjW3Q+PjJdPTA7aj1nfDA7Zz1ofDA7aD1vfDA7QT1vKzR8MDtCPWFbbV18MDttPXg7eD1jW2o+
PjJdfDA7TDMxMjI6d2hpbGUoMSl7ZG97aWYoKHh8MCk9PTApe0M9MH1lbHNle2lmKChjW3grMTI+
PjJdfDApIT0oY1t4KzE2Pj4yXXwwKSl7Qz14O2JyZWFrfWlmKChiMFtjWyhjW3g+PjJdfDApKzM2
Pj4yXSYxMjddKHgpfDApIT0tMSl7Qz14O2JyZWFrfWNbaj4+Ml09MDtDPTB9fXdoaWxlKDApO0Q9
KEN8MCk9PTA7RT1jW2c+PjJdfDA7ZG97aWYoKEV8MCk9PTApe0Y9MjU3OX1lbHNle2lmKChjW0Ur
MTI+PjJdfDApIT0oY1tFKzE2Pj4yXXwwKSl7aWYoRCl7Rz1FO0g9MDticmVha31lbHNle0k9bTtK
PUU7Sz0wO2JyZWFrIEwzMTIyfX1pZigoYjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXww
KT09LTEpe2NbZz4+Ml09MDtGPTI1Nzk7YnJlYWt9ZWxzZXtMPShFfDApPT0wO2lmKEReTCl7Rz1F
O0g9TDticmVha31lbHNle0k9bTtKPUU7Sz1MO2JyZWFrIEwzMTIyfX19fXdoaWxlKDApO2lmKChG
fDApPT0yNTc5KXtGPTA7aWYoRCl7ST1tO0o9MDtLPTE7YnJlYWt9ZWxzZXtHPTA7SD0xfX1FPWRb
cF18MDtMPShFJjF8MCk9PTA7aWYoKChjW3E+PjJdfDApLW18MCk9PSgoTD9FPj4+MTpjW0E+PjJd
fDApfDApKXtpZihMKXtNPUU+Pj4xO049RT4+PjF9ZWxzZXtFPWNbQT4+Ml18MDtNPUU7Tj1FfWRS
KG8sTTw8MSwwKTtpZigoYVtwXSYxKT09MCl7Tz0xMH1lbHNle089KGNbaD4+Ml0mLTIpLTF8MH1k
UihvLE8sMCk7aWYoKGFbcF0mMSk9PTApe1A9eX1lbHNle1A9Y1t6Pj4yXXwwfWNbcT4+Ml09UCtO
O1E9UH1lbHNle1E9bX1FPUMrMTJ8MDtMPWNbRT4+Ml18MDtSPUMrMTZ8MDtpZigoTHwwKT09KGNb
Uj4+Ml18MCkpe1M9KGIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MCkmMjU1fWVsc2V7
Uz1hW0xdfDB9aWYoKGZzKFMsdSxRLHEsdCxCLG4sdyxzLHYpfDApIT0wKXtJPVE7Sj1HO0s9SDti
cmVha31MPWNbRT4+Ml18MDtpZigoTHwwKT09KGNbUj4+Ml18MCkpe1I9Y1soY1tDPj4yXXwwKSs0
MD4+Ml18MDtiMFtSJjEyN10oQyl8MDttPVE7eD1DO2NvbnRpbnVlfWVsc2V7Y1tFPj4yXT1MKzE7
bT1RO3g9Qztjb250aW51ZX19eD1kW25dfDA7aWYoKHgmMXwwKT09MCl7VD14Pj4+MX1lbHNle1Q9
Y1tuKzQ+PjJdfDB9ZG97aWYoKFR8MCkhPTApe3g9Y1tzPj4yXXwwO2lmKCh4LXJ8MCk+PTE2MCl7
YnJlYWt9UT1jW3Q+PjJdfDA7Y1tzPj4yXT14KzQ7Y1t4Pj4yXT1RfX13aGlsZSgwKTtiW2w+PjFd
PWZ6KEksY1txPj4yXXwwLGssdSl8MDtmdChuLHcsY1tzPj4yXXwwLGspO2Rve2lmKEQpe1U9MH1l
bHNle2lmKChjW0MrMTI+PjJdfDApIT0oY1tDKzE2Pj4yXXwwKSl7VT1DO2JyZWFrfWlmKChiMFtj
WyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDApIT0tMSl7VT1DO2JyZWFrfWNbaj4+Ml09MDtV
PTB9fXdoaWxlKDApO2o9KFV8MCk9PTA7TDMxODI6ZG97aWYoSyl7Rj0yNjIwfWVsc2V7ZG97aWYo
KGNbSisxMj4+Ml18MCk9PShjW0orMTY+PjJdfDApKXtpZigoYjBbY1soY1tKPj4yXXwwKSszNj4+
Ml0mMTI3XShKKXwwKSE9LTEpe2JyZWFrfWNbZz4+Ml09MDtGPTI2MjA7YnJlYWsgTDMxODJ9fXdo
aWxlKDApO2lmKCEoal4oSnwwKT09MCkpe2JyZWFrfVY9ZXwwO2NbVj4+Ml09VTtkUChvKTtkUChu
KTtpPWY7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRnwwKT09MjYyMCl7aWYoail7YnJlYWt9Vj1l
fDA7Y1tWPj4yXT1VO2RQKG8pO2RQKG4pO2k9ZjtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1tr
Pj4yXXwyO1Y9ZXwwO2NbVj4+Ml09VTtkUChvKTtkUChuKTtpPWY7cmV0dXJufWZ1bmN0aW9uIGZ6
KGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0w
O2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0
dXJuIGp8MH1pZigoYVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9az1j
WyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTtsPWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDApPj4yXXwwO2lm
KChifDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4y
XT00O2o9MDtpPWc7cmV0dXJuIGp8MH1kPTA7aWYoKGJ8MCk9PTM0fChmPj4+MD5kPj4+MHxmPj4+
MD09ZD4+PjAmbD4+PjA+NjU1MzU+Pj4wKSl7Y1tlPj4yXT00O2o9LTE7aT1nO3JldHVybiBqfDB9
ZWxzZXtqPWwmNjU1MzU7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZkEoYixlLGYs
ZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0w
LEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAs
Tz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2c+PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDY0Ont0PTg7YnJl
YWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDg6e3Q9MTY7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9
fXU9ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYx
KT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9
aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3ww
O2c9bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wzMjMyOndoaWxlKDEpe2Rv
e2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+Ml18MCkp
e0I9dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9LTEpe0I9
dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4yXXwwO2Rv
e2lmKChEfDApPT0wKXtFPTI2Njl9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsxNj4+Ml18
MCkpe2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMzIzMn19aWYo
KGIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7RT0yNjY5
O2JyZWFrfWVsc2V7Sz0oRHwwKT09MDtpZihDXkspe0Y9RDtHPUs7YnJlYWt9ZWxzZXtIPWw7ST1E
O0o9SzticmVhayBMMzIzMn19fX13aGlsZSgwKTtpZigoRXwwKT09MjY2OSl7RT0wO2lmKEMpe0g9
bDtJPTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7Sz0oRCYxfDApPT0wO2lmKCgo
Y1twPj4yXXwwKS1sfDApPT0oKEs/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoSyl7TD1EPj4+MTtN
PUQ+Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TD1EO009RH1kUihuLEw8PDEsMCk7aWYoKGFbb10mMSk9
PTApe049MTB9ZWxzZXtOPShjW2c+PjJdJi0yKS0xfDB9ZFIobixOLDApO2lmKChhW29dJjEpPT0w
KXtPPXh9ZWxzZXtPPWNbeT4+Ml18MH1jW3A+PjJdPU8rTTtQPU99ZWxzZXtQPWx9RD1CKzEyfDA7
Sz1jW0Q+PjJdfDA7UT1CKzE2fDA7aWYoKEt8MCk9PShjW1E+PjJdfDApKXtSPShiMFtjWyhjW0I+
PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1I9YVtLXXwwfWlmKChmcyhSLHQsUCxw
LHMsQSxtLHYscix1KXwwKSE9MCl7SD1QO0k9RjtKPUc7YnJlYWt9Sz1jW0Q+PjJdfDA7aWYoKEt8
MCk9PShjW1E+PjJdfDApKXtRPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUSYxMjddKEIpfDA7
bD1QO3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09SysxO2w9UDt3PUI7Y29udGludWV9fXc9ZFtt
XXwwO2lmKCh3JjF8MCk9PTApe1M9dz4+PjF9ZWxzZXtTPWNbbSs0Pj4yXXwwfWRve2lmKChTfDAp
IT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVA9Y1tzPj4yXXwwO2Nbcj4+
Ml09dys0O2Nbdz4+Ml09UH19d2hpbGUoMCk7Y1trPj4yXT1mQihILGNbcD4+Ml18MCxqLHQpfDA7
ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihDKXtUPTB9ZWxzZXtpZigoY1tCKzEyPj4yXXwwKSE9
KGNbQisxNj4+Ml18MCkpe1Q9QjticmVha31pZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3
XShCKXwwKSE9LTEpe1Q9QjticmVha31jW2g+PjJdPTA7VD0wfX13aGlsZSgwKTtoPShUfDApPT0w
O0wzMjkyOmRve2lmKEope0U9MjcxMH1lbHNle2Rve2lmKChjW0krMTI+PjJdfDApPT0oY1tJKzE2
Pj4yXXwwKSl7aWYoKGIwW2NbKGNbST4+Ml18MCkrMzY+PjJdJjEyN10oSSl8MCkhPS0xKXticmVh
a31jW2Y+PjJdPTA7RT0yNzEwO2JyZWFrIEwzMjkyfX13aGlsZSgwKTtpZighKGheKEl8MCk9PTAp
KXticmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7
ZG97aWYoKEV8MCk9PTI3MTApe2lmKGgpe2JyZWFrfVU9YnwwO2NbVT4+Ml09VDtkUChuKTtkUCht
KTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtVPWJ8MDtjW1U+PjJdPVQ7
ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmQihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtl
PWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MDtnPWk7aT1pKzh8MDtoPWd8MDtpZigo
YnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9aWYoKGFbYl18MCk9PTQ1
KXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWs9Y1soYncoKXwwKT4+Ml18MDtjWyhidygp
fDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJl
YWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1hSShifDAsaHwwLGZ8MCxjWzI5
NThdfDApfDA7Zj1LO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+
Ml09a31pZigoY1toPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9
ZD0wO2lmKChifDApPT0zNHwoZj4+PjA+ZD4+PjB8Zj4+PjA9PWQ+Pj4wJmw+Pj4wPi0xPj4+MCkp
e2NbZT4+Ml09NDtqPS0xO2k9ZztyZXR1cm4ganwwfWVsc2V7aj1sO2k9ZztyZXR1cm4ganwwfXJl
dHVybiAwfWZ1bmN0aW9uIGZDKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtlPWk7
aT1pKzcyfDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7
Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHww
O249ZSs1NnwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+
Ml0mNzR8MCl7Y2FzZSAwOnt0PTA7YnJlYWt9O2Nhc2UgODp7dD0xNjticmVha307Y2FzZSA2NDp7
dD04O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7
aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVs
c2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4y
XT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNb
aD4+Ml18MDtMMzM0Mjp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysx
Mj4+Ml18MCkhPShjW3crMTY+PjJdfDApKXtCPXc7YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkr
MzY+PjJdJjEyN10odyl8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7
Qz0oQnwwKT09MDtEPWNbZj4+Ml18MDtkb3tpZigoRHwwKT09MCl7RT0yNzU5fWVsc2V7aWYoKGNb
RCsxMj4+Ml18MCkhPShjW0QrMTY+PjJdfDApKXtpZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1s
O0k9RDtKPTA7YnJlYWsgTDMzNDJ9fWlmKChiMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQp
fDApPT0tMSl7Y1tmPj4yXT0wO0U9Mjc1OTticmVha31lbHNle0s9KER8MCk9PTA7aWYoQ15LKXtG
PUQ7Rz1LO2JyZWFrfWVsc2V7SD1sO0k9RDtKPUs7YnJlYWsgTDMzNDJ9fX19d2hpbGUoMCk7aWYo
KEV8MCk9PTI3NTkpe0U9MDtpZihDKXtIPWw7ST0wO0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9
ZFtvXXwwO0s9KEQmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChLP0Q+Pj4xOmNbej4+
Ml18MCl8MCkpe2lmKEspe0w9RD4+PjE7TT1EPj4+MX1lbHNle0Q9Y1t6Pj4yXXwwO0w9RDtNPUR9
ZFIobixMPDwxLDApO2lmKChhW29dJjEpPT0wKXtOPTEwfWVsc2V7Tj0oY1tnPj4yXSYtMiktMXww
fWRSKG4sTiwwKTtpZigoYVtvXSYxKT09MCl7Tz14fWVsc2V7Tz1jW3k+PjJdfDB9Y1twPj4yXT1P
K007UD1PfWVsc2V7UD1sfUQ9QisxMnwwO0s9Y1tEPj4yXXwwO1E9QisxNnwwO2lmKChLfDApPT0o
Y1tRPj4yXXwwKSl7Uj0oYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxz
ZXtSPWFbS118MH1pZigoZnMoUix0LFAscCxzLEEsbSx2LHIsdSl8MCkhPTApe0g9UDtJPUY7Sj1H
O2JyZWFrfUs9Y1tEPj4yXXwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7UT1jWyhjW0I+PjJdfDAp
KzQwPj4yXXwwO2IwW1EmMTI3XShCKXwwO2w9UDt3PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUsr
MTtsPVA7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtTPXc+Pj4xfWVsc2V7
Uz1jW20rND4+Ml18MH1kb3tpZigoU3wwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYw
KXticmVha31QPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVB9fXdoaWxlKDApO2Nbaz4+
Ml09ZkQoSCxjW3A+PjJdfDAsaix0KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VD0w
fWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtUPUI7YnJlYWt9aWYoKGIw
W2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtUPUI7YnJlYWt9Y1toPj4yXT0w
O1Q9MH19d2hpbGUoMCk7aD0oVHwwKT09MDtMMzQwMjpkb3tpZihKKXtFPTI4MDB9ZWxzZXtkb3tp
ZigoY1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2
Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjgwMDticmVhayBMMzQwMn19
d2hpbGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQ
KG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChFfDApPT0yODAwKXtpZihoKXticmVha31V
PWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1j
W2o+PjJdfDI7VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24g
ZkQoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxs
PTA7Zz1pO2k9aSs4fDA7aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9Zzty
ZXR1cm4ganwwfWlmKChhW2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1r
PWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTAp
e2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxl
KDApO2w9YUkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXwwO2Y9SztiPWNbKGJ3KCl8MCk+PjJdfDA7
aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWt9aWYoKGNbaD4+Ml18MCkhPShkfDApKXtjW2U+
PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWQ9MDtpZigoYnwwKT09MzR8KGY+Pj4wPmQ+Pj4wfGY+
Pj4wPT1kPj4+MCZsPj4+MD4tMT4+PjApKXtjW2U+PjJdPTQ7aj0tMTtpPWc7cmV0dXJuIGp8MH1l
bHNle2o9bDtpPWc7cmV0dXJuIGp8MH1yZXR1cm4gMH1mdW5jdGlvbiBmRShiLGUsZixnLGgsaixr
KXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0w
LFI9MCxTPTAsVD0wLFU9MCxWPTA7ZT1pO2k9aSs3MnwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09
Y1tsPj4yXTtsPWUrMzJ8MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0xNjticmVha307Y2Fz
ZSAwOnt0PTA7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7
ZngobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2
PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5
PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7
ej1uKzR8MDtBPWFbbF18MDtsPXc7dz1jW2g+PjJdfDA7TDM0NTI6d2hpbGUoMSl7ZG97aWYoKHd8
MCk9PTApe0I9MH1lbHNle2lmKChjW3crMTI+PjJdfDApIT0oY1t3KzE2Pj4yXXwwKSl7Qj13O2Jy
ZWFrfWlmKChiMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDApIT0tMSl7Qj13O2JyZWFr
fWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1jW2Y+PjJdfDA7ZG97aWYoKER8
MCk9PTApe0U9Mjg0OX1lbHNle2lmKChjW0QrMTI+PjJdfDApIT0oY1tEKzE2Pj4yXXwwKSl7aWYo
Qyl7Rj1EO0c9MDticmVha31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFrIEwzNDUyfX1pZigoYjBbY1so
Y1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+Ml09MDtFPTI4NDk7YnJlYWt9
ZWxzZXtMPShEfDApPT0wO2lmKENeTCl7Rj1EO0c9TDticmVha31lbHNle0g9bDtJPUQ7Sj1MO2Jy
ZWFrIEwzNDUyfX19fXdoaWxlKDApO2lmKChFfDApPT0yODQ5KXtFPTA7aWYoQyl7SD1sO0k9MDtK
PTE7YnJlYWt9ZWxzZXtGPTA7Rz0xfX1EPWRbb118MDtMPShEJjF8MCk9PTA7aWYoKChjW3A+PjJd
fDApLWx8MCk9PSgoTD9EPj4+MTpjW3o+PjJdfDApfDApKXtpZihMKXtNPUQ+Pj4xO049RD4+PjF9
ZWxzZXtEPWNbej4+Ml18MDtNPUQ7Tj1EfWRSKG4sTTw8MSwwKTtpZigoYVtvXSYxKT09MCl7Tz0x
MH1lbHNle089KGNbZz4+Ml0mLTIpLTF8MH1kUihuLE8sMCk7aWYoKGFbb10mMSk9PTApe1A9eH1l
bHNle1A9Y1t5Pj4yXXwwfWNbcD4+Ml09UCtOO1E9UH1lbHNle1E9bH1EPUIrMTJ8MDtMPWNbRD4+
Ml18MDtSPUIrMTZ8MDtpZigoTHwwKT09KGNbUj4+Ml18MCkpe1M9KGIwW2NbKGNbQj4+Ml18MCkr
MzY+PjJdJjEyN10oQil8MCkmMjU1fWVsc2V7Uz1hW0xdfDB9aWYoKGZzKFMsdCxRLHAscyxBLG0s
dixyLHUpfDApIT0wKXtIPVE7ST1GO0o9RzticmVha31MPWNbRD4+Ml18MDtpZigoTHwwKT09KGNb
Uj4+Ml18MCkpe1I9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtSJjEyN10oQil8MDtsPVE7dz1C
O2NvbnRpbnVlfWVsc2V7Y1tEPj4yXT1MKzE7bD1RO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYo
KHcmMXwwKT09MCl7VD13Pj4+MX1lbHNle1Q9Y1ttKzQ+PjJdfDB9ZG97aWYoKFR8MCkhPTApe3c9
Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9UT1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7
Y1t3Pj4yXT1RfX13aGlsZSgwKTtzPWZGKEgsY1twPj4yXXwwLGosdCl8MDtjW2s+PjJdPXM7Y1tr
KzQ+PjJdPUs7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihDKXtVPTB9ZWxzZXtpZigoY1tCKzEy
Pj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe1U9QjticmVha31pZigoYjBbY1soY1tCPj4yXXwwKSsz
Nj4+Ml0mMTI3XShCKXwwKSE9LTEpe1U9QjticmVha31jW2g+PjJdPTA7VT0wfX13aGlsZSgwKTto
PShVfDApPT0wO0wzNTEyOmRve2lmKEope0U9Mjg5MH1lbHNle2Rve2lmKChjW0krMTI+PjJdfDAp
PT0oY1tJKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbST4+Ml18MCkrMzY+PjJdJjEyN10oSSl8MCkh
PS0xKXticmVha31jW2Y+PjJdPTA7RT0yODkwO2JyZWFrIEwzNTEyfX13aGlsZSgwKTtpZighKGhe
KEl8MCk9PTApKXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn19
d2hpbGUoMCk7ZG97aWYoKEV8MCk9PTI4OTApe2lmKGgpe2JyZWFrfVY9YnwwO2NbVj4+Ml09VTtk
UChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtWPWJ8MDtj
W1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmRihiLGQsZSxmKXtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MDtn
PWk7aT1pKzh8MDtoPWd8MDtkb3tpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7az0wfWVs
c2V7aWYoKGFbYl18MCk9PTQ1KXtjW2U+PjJdPTQ7aj0wO2s9MDticmVha31sPWNbKGJ3KCl8MCk+
PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2
NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO209YUkoYnww
LGh8MCxmfDAsY1syOTU4XXwwKXwwO249SztvPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKG98MCk9PTAp
e2NbKGJ3KCl8MCk+PjJdPWx9aWYoKGNbaD4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0wO2s9
MDticmVha31pZigob3wwKSE9MzQpe2o9bjtrPW07YnJlYWt9Y1tlPj4yXT00O2o9LTE7az0tMX19
d2hpbGUoMCk7aT1nO3JldHVybihLPWosayl8MH1mdW5jdGlvbiBmRyhiLGUsZixnLGgsaSxqLGss
bCxtLG4sbyl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7
bD1sfDA7bT1tfDA7bj1ufDA7bz1vfDA7dmFyIHA9MCxxPTAscj0wLHM9MCx0PTA7aWYoYjw8MjQ+
PjI0PT1pPDwyND4+MjQpe2lmKChhW2VdJjEpPT0wKXtwPS0xO3JldHVybiBwfDB9YVtlXT0wO2k9
Y1toPj4yXXwwO2NbaD4+Ml09aSsxO2FbaV09NDY7aT1kW2tdfDA7aWYoKGkmMXwwKT09MCl7cT1p
Pj4+MX1lbHNle3E9Y1trKzQ+PjJdfDB9aWYoKHF8MCk9PTApe3A9MDtyZXR1cm4gcHwwfXE9Y1tt
Pj4yXXwwO2lmKChxLWx8MCk+PTE2MCl7cD0wO3JldHVybiBwfDB9aT1jW24+PjJdfDA7Y1ttPj4y
XT1xKzQ7Y1txPj4yXT1pO3A9MDtyZXR1cm4gcHwwfWRve2lmKGI8PDI0Pj4yND09ajw8MjQ+PjI0
KXtpPWRba118MDtpZigoaSYxfDApPT0wKXtyPWk+Pj4xfWVsc2V7cj1jW2srND4+Ml18MH1pZigo
cnwwKT09MCl7YnJlYWt9aWYoKGFbZV0mMSk9PTApe3A9LTE7cmV0dXJuIHB8MH1pPWNbbT4+Ml18
MDtpZigoaS1sfDApPj0xNjApe3A9MDtyZXR1cm4gcHwwfXE9Y1tuPj4yXXwwO2NbbT4+Ml09aSs0
O2NbaT4+Ml09cTtjW24+PjJdPTA7cD0wO3JldHVybiBwfDB9fXdoaWxlKDApO3I9byszMnwwO2o9
bzt3aGlsZSgxKXtpZigoanwwKT09KHJ8MCkpe3M9cjticmVha31pZigoYVtqXXwwKT09Yjw8MjQ+
PjI0KXtzPWo7YnJlYWt9ZWxzZXtqPWorMXwwfX1qPXMtb3wwO2lmKChqfDApPjMxKXtwPS0xO3Jl
dHVybiBwfDB9bz1hWzk3NDQranwwXXwwO3N3aXRjaChqfDApe2Nhc2UgMjU6Y2FzZSAyNDp7cz1j
W2g+PjJdfDA7ZG97aWYoKHN8MCkhPShnfDApKXtpZigoYVtzLTF8MF0mOTV8MCk9PShhW2ZdJjEy
N3wwKSl7YnJlYWt9ZWxzZXtwPS0xfXJldHVybiBwfDB9fXdoaWxlKDApO2NbaD4+Ml09cysxO2Fb
c109bztwPTA7cmV0dXJuIHB8MH07Y2FzZSAyMjpjYXNlIDIzOnthW2ZdPTgwO3M9Y1toPj4yXXww
O2NbaD4+Ml09cysxO2Fbc109bztwPTA7cmV0dXJuIHB8MH07ZGVmYXVsdDp7cz1hW2ZdfDA7ZG97
aWYoKG8mOTV8MCk9PShzPDwyND4+MjR8MCkpe2FbZl09c3wtMTI4O2lmKChhW2VdJjEpPT0wKXti
cmVha31hW2VdPTA7Zz1kW2tdfDA7aWYoKGcmMXwwKT09MCl7dD1nPj4+MX1lbHNle3Q9Y1trKzQ+
PjJdfDB9aWYoKHR8MCk9PTApe2JyZWFrfWc9Y1ttPj4yXXwwO2lmKChnLWx8MCk+PTE2MCl7YnJl
YWt9Yj1jW24+PjJdfDA7Y1ttPj4yXT1nKzQ7Y1tnPj4yXT1ifX13aGlsZSgwKTttPWNbaD4+Ml18
MDtjW2g+PjJdPW0rMTthW21dPW87aWYoKGp8MCk+MjEpe3A9MDtyZXR1cm4gcHwwfWNbbj4+Ml09
KGNbbj4+Ml18MCkrMTtwPTA7cmV0dXJuIHB8MH19cmV0dXJuIDB9ZnVuY3Rpb24gZkgoYixlLGYs
aCxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAs
UD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTA7ZT1pO2k9aSs4MHwwO209ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1oO2g9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbaD4+Ml09Y1ttPj4yXTttPWUrMzJ8MDtuPWUrNDB8MDtvPWUrNDh8MDtwPWUrNjR8
MDtxPXA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSsxNjB8MDt0PWk7aT1pKzR8MDtp
PWkrNz4+Mzw8Mzt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PWk7aT1pKzF8MDtpPWkrNz4+Mzw8
Mzt3PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt4PWV8MDtmSihvLGoseCxtLG4pO2skKHF8MCwwLDEy
KTtqPXA7ZFIocCwxMCwwKTtpZigoYVtxXSYxKT09MCl7eT1qKzF8MDt6PXk7QT15O0I9cCs4fDB9
ZWxzZXt5PXArOHwwO3o9Y1t5Pj4yXXwwO0E9aisxfDA7Qj15fWNbcj4+Ml09ejt5PXN8MDtjW3Q+
PjJdPXk7Y1t1Pj4yXT0wO2Fbdl09MTthW3ddPTY5O2o9ZnwwO2Y9aHwwO2g9cHwwO0M9cCs0fDA7
RD1hW21dfDA7bT1hW25dfDA7bj16O3o9Y1tqPj4yXXwwO0wzNjE1OndoaWxlKDEpe2Rve2lmKCh6
fDApPT0wKXtFPTB9ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9KGNbeisxNj4+Ml18MCkpe0U9ejti
cmVha31pZigoYjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwKSE9LTEpe0U9ejticmVh
a31jW2o+PjJdPTA7RT0wfX13aGlsZSgwKTtGPShFfDApPT0wO0c9Y1tmPj4yXXwwO2Rve2lmKChH
fDApPT0wKXtIPTI5Nzh9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe2lm
KEYpe0k9RztKPTA7YnJlYWt9ZWxzZXtLPW47TD1HO009MDticmVhayBMMzYxNX19aWYoKGIwW2Nb
KGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCk9PS0xKXtjW2Y+PjJdPTA7SD0yOTc4O2JyZWFr
fWVsc2V7Tj0oR3wwKT09MDtpZihGXk4pe0k9RztKPU47YnJlYWt9ZWxzZXtLPW47TD1HO009Tjti
cmVhayBMMzYxNX19fX13aGlsZSgwKTtpZigoSHwwKT09Mjk3OCl7SD0wO2lmKEYpe0s9bjtMPTA7
TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Rz1kW3FdfDA7Tj0oRyYxfDApPT0wO2lmKCgoY1tyPj4y
XXwwKS1ufDApPT0oKE4/Rz4+PjE6Y1tDPj4yXXwwKXwwKSl7aWYoTil7Tz1HPj4+MTtQPUc+Pj4x
fWVsc2V7Rz1jW0M+PjJdfDA7Tz1HO1A9R31kUihwLE88PDEsMCk7aWYoKGFbcV0mMSk9PTApe1E9
MTB9ZWxzZXtRPShjW2g+PjJdJi0yKS0xfDB9ZFIocCxRLDApO2lmKChhW3FdJjEpPT0wKXtSPUF9
ZWxzZXtSPWNbQj4+Ml18MH1jW3I+PjJdPVIrUDtTPVJ9ZWxzZXtTPW59Rz1FKzEyfDA7Tj1jW0c+
PjJdfDA7VD1FKzE2fDA7aWYoKE58MCk9PShjW1Q+PjJdfDApKXtVPShiMFtjWyhjW0U+PjJdfDAp
KzM2Pj4yXSYxMjddKEUpfDApJjI1NX1lbHNle1U9YVtOXXwwfWlmKChmRyhVLHYsdyxTLHIsRCxt
LG8seSx0LHUseCl8MCkhPTApe0s9UztMPUk7TT1KO2JyZWFrfU49Y1tHPj4yXXwwO2lmKChOfDAp
PT0oY1tUPj4yXXwwKSl7VD1jWyhjW0U+PjJdfDApKzQwPj4yXXwwO2IwW1QmMTI3XShFKXwwO249
Uzt6PUU7Y29udGludWV9ZWxzZXtjW0c+PjJdPU4rMTtuPVM7ej1FO2NvbnRpbnVlfX16PWRbb118
MDtpZigoeiYxfDApPT0wKXtWPXo+Pj4xfWVsc2V7Vj1jW28rND4+Ml18MH1kb3tpZigoVnwwKSE9
MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7YnJl
YWt9Uz1jW3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6Pj4yXT1TfX13aGlsZSgwKTtnW2w+PjJdPStm
SShLLGNbcj4+Ml18MCxrKTtmdChvLHksY1t0Pj4yXXwwLGspO2Rve2lmKEYpe1c9MH1lbHNle2lm
KChjW0UrMTI+PjJdfDApIT0oY1tFKzE2Pj4yXXwwKSl7Vz1FO2JyZWFrfWlmKChiMFtjWyhjW0U+
PjJdfDApKzM2Pj4yXSYxMjddKEUpfDApIT0tMSl7Vz1FO2JyZWFrfWNbaj4+Ml09MDtXPTB9fXdo
aWxlKDApO2o9KFd8MCk9PTA7TDM2NzY6ZG97aWYoTSl7SD0zMDIwfWVsc2V7ZG97aWYoKGNbTCsx
Mj4+Ml18MCk9PShjW0wrMTY+PjJdfDApKXtpZigoYjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3
XShMKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtIPTMwMjA7YnJlYWsgTDM2NzZ9fXdoaWxlKDAp
O2lmKCEoal4oTHwwKT09MCkpe2JyZWFrfVg9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7
cmV0dXJufX13aGlsZSgwKTtkb3tpZigoSHwwKT09MzAyMCl7aWYoail7YnJlYWt9WD1ifDA7Y1tY
Pj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwy
O1g9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZJKGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAuMCxqPTAsaz0wLjA7Zj1pO2k9aSs4
fDA7Zz1mfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVybitofWo9
Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7
aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUo
MCk7az0ra1coYixnLGNbMjk1OF18MCk7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0wKXtj
WyhidygpfDApPj4yXT1qfWlmKChjW2c+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9
ZjtyZXR1cm4raH1pZigoYnwwKT09MzQpe2NbZT4+Ml09NH1oPWs7aT1mO3JldHVybitofWZ1bmN0
aW9uIGZKKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7aD1pO2k9aSs0MHwwO2o9aHww
O2s9aCsxNnwwO2w9aCszMnwwO2VqKGwsZCk7ZD1sfDA7bD1jW2Q+PjJdfDA7aWYoKGNbMzkyNF18
MCkhPS0xKXtjW2s+PjJdPTE1Njk2O2Nbays0Pj4yXT0xMjtjW2srOD4+Ml09MDtkVygxNTY5Nixr
LDk2KX1rPShjWzM5MjVdfDApLTF8MDttPWNbbCs4Pj4yXXwwO2Rve2lmKChjW2wrMTI+PjJdfDAp
LW0+PjI+Pj4wPms+Pj4wKXtuPWNbbSsoazw8Mik+PjJdfDA7aWYoKG58MCk9PTApe2JyZWFrfW89
bjtwPWNbKGNbbj4+Ml18MCkrMzI+PjJdfDA7Y2FbcCYxNV0obyw5NzQ0LDk3NzYsZSl8MDtvPWNb
ZD4+Ml18MDtpZigoY1szODI4XXwwKSE9LTEpe2Nbaj4+Ml09MTUzMTI7Y1tqKzQ+PjJdPTEyO2Nb
ais4Pj4yXT0wO2RXKDE1MzEyLGosOTYpfXA9KGNbMzgyOV18MCktMXwwO249Y1tvKzg+PjJdfDA7
ZG97aWYoKGNbbysxMj4+Ml18MCktbj4+Mj4+PjA+cD4+PjApe3E9Y1tuKyhwPDwyKT4+Ml18MDtp
ZigocXwwKT09MCl7YnJlYWt9cj1xO3M9cTthW2ZdPWIwW2NbKGNbcz4+Ml18MCkrMTI+PjJdJjEy
N10ocil8MDthW2ddPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10ocil8MDtiWltjWyhjW3E+
PjJdfDApKzIwPj4yXSYxMjddKGIscik7cj1jW2Q+PjJdfDA7ZHoocil8MDtpPWg7cmV0dXJufX13
aGlsZSgwKTtwPWJPKDQpfDA7a3EocCk7YmwocHwwLDgxNzYsMTM0KX19d2hpbGUoMCk7aD1iTyg0
KXwwO2txKGgpO2JsKGh8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZksoYixlLGYsZyxqLGssbCl7Yj1i
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9
MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0w
LEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAs
Uz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTA7ZT1pO2k9aSs4MHwwO209ZjtmPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+
Ml09Y1ttPj4yXTttPWUrMzJ8MDtuPWUrNDB8MDtvPWUrNDh8MDtwPWUrNjR8MDtxPXA7cj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSsxNjB8MDt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt1
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt3PWk7aT1pKzF8
MDtpPWkrNz4+Mzw8Mzt4PWV8MDtmSihvLGoseCxtLG4pO2skKHF8MCwwLDEyKTtqPXA7ZFIocCwx
MCwwKTtpZigoYVtxXSYxKT09MCl7eT1qKzF8MDt6PXk7QT15O0I9cCs4fDB9ZWxzZXt5PXArOHww
O3o9Y1t5Pj4yXXwwO0E9aisxfDA7Qj15fWNbcj4+Ml09ejt5PXN8MDtjW3Q+PjJdPXk7Y1t1Pj4y
XT0wO2Fbdl09MTthW3ddPTY5O2o9ZnwwO2Y9Z3wwO2c9cHwwO0M9cCs0fDA7RD1hW21dfDA7bT1h
W25dfDA7bj16O3o9Y1tqPj4yXXwwO0wzNzM3OndoaWxlKDEpe2Rve2lmKCh6fDApPT0wKXtFPTB9
ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9KGNbeisxNj4+Ml18MCkpe0U9ejticmVha31pZigoYjBb
Y1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwKSE9LTEpe0U9ejticmVha31jW2o+PjJdPTA7
RT0wfX13aGlsZSgwKTtGPShFfDApPT0wO0c9Y1tmPj4yXXwwO2Rve2lmKChHfDApPT0wKXtIPTMw
Nzl9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe2lmKEYpe0k9RztKPTA7
YnJlYWt9ZWxzZXtLPW47TD1HO009MDticmVhayBMMzczN319aWYoKGIwW2NbKGNbRz4+Ml18MCkr
MzY+PjJdJjEyN10oRyl8MCk9PS0xKXtjW2Y+PjJdPTA7SD0zMDc5O2JyZWFrfWVsc2V7Tj0oR3ww
KT09MDtpZihGXk4pe0k9RztKPU47YnJlYWt9ZWxzZXtLPW47TD1HO009TjticmVhayBMMzczN319
fX13aGlsZSgwKTtpZigoSHwwKT09MzA3OSl7SD0wO2lmKEYpe0s9bjtMPTA7TT0xO2JyZWFrfWVs
c2V7ST0wO0o9MX19Rz1kW3FdfDA7Tj0oRyYxfDApPT0wO2lmKCgoY1tyPj4yXXwwKS1ufDApPT0o
KE4/Rz4+PjE6Y1tDPj4yXXwwKXwwKSl7aWYoTil7Tz1HPj4+MTtQPUc+Pj4xfWVsc2V7Rz1jW0M+
PjJdfDA7Tz1HO1A9R31kUihwLE88PDEsMCk7aWYoKGFbcV0mMSk9PTApe1E9MTB9ZWxzZXtRPShj
W2c+PjJdJi0yKS0xfDB9ZFIocCxRLDApO2lmKChhW3FdJjEpPT0wKXtSPUF9ZWxzZXtSPWNbQj4+
Ml18MH1jW3I+PjJdPVIrUDtTPVJ9ZWxzZXtTPW59Rz1FKzEyfDA7Tj1jW0c+PjJdfDA7VD1FKzE2
fDA7aWYoKE58MCk9PShjW1Q+PjJdfDApKXtVPShiMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjdd
KEUpfDApJjI1NX1lbHNle1U9YVtOXXwwfWlmKChmRyhVLHYsdyxTLHIsRCxtLG8seSx0LHUseCl8
MCkhPTApe0s9UztMPUk7TT1KO2JyZWFrfU49Y1tHPj4yXXwwO2lmKChOfDApPT0oY1tUPj4yXXww
KSl7VD1jWyhjW0U+PjJdfDApKzQwPj4yXXwwO2IwW1QmMTI3XShFKXwwO249Uzt6PUU7Y29udGlu
dWV9ZWxzZXtjW0c+PjJdPU4rMTtuPVM7ej1FO2NvbnRpbnVlfX16PWRbb118MDtpZigoeiYxfDAp
PT0wKXtWPXo+Pj4xfWVsc2V7Vj1jW28rND4+Ml18MH1kb3tpZigoVnwwKSE9MCl7aWYoKGFbdl0m
MSk9PTApe2JyZWFrfXo9Y1t0Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7YnJlYWt9Uz1jW3U+PjJd
fDA7Y1t0Pj4yXT16KzQ7Y1t6Pj4yXT1TfX13aGlsZSgwKTtoW2w+PjNdPStmTChLLGNbcj4+Ml18
MCxrKTtmdChvLHksY1t0Pj4yXXwwLGspO2Rve2lmKEYpe1c9MH1lbHNle2lmKChjW0UrMTI+PjJd
fDApIT0oY1tFKzE2Pj4yXXwwKSl7Vz1FO2JyZWFrfWlmKChiMFtjWyhjW0U+PjJdfDApKzM2Pj4y
XSYxMjddKEUpfDApIT0tMSl7Vz1FO2JyZWFrfWNbaj4+Ml09MDtXPTB9fXdoaWxlKDApO2o9KFd8
MCk9PTA7TDM3OTg6ZG97aWYoTSl7SD0zMTIxfWVsc2V7ZG97aWYoKGNbTCsxMj4+Ml18MCk9PShj
W0wrMTY+PjJdfDApKXtpZigoYjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3XShMKXwwKSE9LTEp
e2JyZWFrfWNbZj4+Ml09MDtIPTMxMjE7YnJlYWsgTDM3OTh9fXdoaWxlKDApO2lmKCEoal4oTHww
KT09MCkpe2JyZWFrfVg9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGls
ZSgwKTtkb3tpZigoSHwwKT09MzEyMSl7aWYoail7YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHAp
O2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwyO1g9YnwwO2NbWD4+
Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZMKGIsZCxlKXtiPWJ8MDtkPWR8
MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAuMCxqPTAsaz0wLjA7Zj1pO2k9aSs4fDA7Zz1mfDA7aWYo
KGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVybitofWo9Y1soYncoKXwwKT4+
Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0
KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7az0ra1coYixn
LGNbMjk1OF18MCk7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4y
XT1qfWlmKChjW2c+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9ZjtyZXR1cm4raH1p
ZigoYnwwKSE9MzQpe2g9aztpPWY7cmV0dXJuK2h9Y1tlPj4yXT00O2g9aztpPWY7cmV0dXJuK2h9
ZnVuY3Rpb24gZk0oYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7
az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9
MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTA7ZT1p
O2k9aSs4MHwwO209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1n
O2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1ttPj4yXTttPWUrMzJ8MDtuPWUrNDB8
MDtvPWUrNDh8MDtwPWUrNjR8MDtxPXA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSsx
NjB8MDt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PWk7
aT1pKzF8MDtpPWkrNz4+Mzw8Mzt3PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt4PWV8MDtmSihvLGos
eCxtLG4pO2skKHF8MCwwLDEyKTtqPXA7ZFIocCwxMCwwKTtpZigoYVtxXSYxKT09MCl7eT1qKzF8
MDt6PXk7QT15O0I9cCs4fDB9ZWxzZXt5PXArOHwwO3o9Y1t5Pj4yXXwwO0E9aisxfDA7Qj15fWNb
cj4+Ml09ejt5PXN8MDtjW3Q+PjJdPXk7Y1t1Pj4yXT0wO2Fbdl09MTthW3ddPTY5O2o9ZnwwO2Y9
Z3wwO2c9cHwwO0M9cCs0fDA7RD1hW21dfDA7bT1hW25dfDA7bj16O3o9Y1tqPj4yXXwwO0w2Ondo
aWxlKDEpe2Rve2lmKCh6fDApPT0wKXtFPTB9ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9KGNbeisx
Nj4+Ml18MCkpe0U9ejticmVha31pZigoYjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXww
KSE9LTEpe0U9ejticmVha31jW2o+PjJdPTA7RT0wfX13aGlsZSgwKTtGPShFfDApPT0wO0c9Y1tm
Pj4yXXwwO2Rve2lmKChHfDApPT0wKXtIPTE3fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0cr
MTY+PjJdfDApKXtpZihGKXtJPUc7Sj0wO2JyZWFrfWVsc2V7Sz1uO0w9RztNPTA7YnJlYWsgTDZ9
fWlmKChiMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1tmPj4yXT0wO0g9
MTc7YnJlYWt9ZWxzZXtOPShHfDApPT0wO2lmKEZeTil7ST1HO0o9TjticmVha31lbHNle0s9bjtM
PUc7TT1OO2JyZWFrIEw2fX19fXdoaWxlKDApO2lmKChIfDApPT0xNyl7SD0wO2lmKEYpe0s9bjtM
PTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Rz1kW3FdfDA7Tj0oRyYxfDApPT0wO2lmKCgoY1ty
Pj4yXXwwKS1ufDApPT0oKE4/Rz4+PjE6Y1tDPj4yXXwwKXwwKSl7aWYoTil7Tz1HPj4+MTtQPUc+
Pj4xfWVsc2V7Rz1jW0M+PjJdfDA7Tz1HO1A9R31kUihwLE88PDEsMCk7aWYoKGFbcV0mMSk9PTAp
e1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIocCxRLDApO2lmKChhW3FdJjEpPT0wKXtS
PUF9ZWxzZXtSPWNbQj4+Ml18MH1jW3I+PjJdPVIrUDtTPVJ9ZWxzZXtTPW59Rz1FKzEyfDA7Tj1j
W0c+PjJdfDA7VD1FKzE2fDA7aWYoKE58MCk9PShjW1Q+PjJdfDApKXtVPShiMFtjWyhjW0U+PjJd
fDApKzM2Pj4yXSYxMjddKEUpfDApJjI1NX1lbHNle1U9YVtOXXwwfWlmKChmRyhVLHYsdyxTLHIs
RCxtLG8seSx0LHUseCl8MCkhPTApe0s9UztMPUk7TT1KO2JyZWFrfU49Y1tHPj4yXXwwO2lmKChO
fDApPT0oY1tUPj4yXXwwKSl7VD1jWyhjW0U+PjJdfDApKzQwPj4yXXwwO2IwW1QmMTI3XShFKXww
O249Uzt6PUU7Y29udGludWV9ZWxzZXtjW0c+PjJdPU4rMTtuPVM7ej1FO2NvbnRpbnVlfX16PWRb
b118MDtpZigoeiYxfDApPT0wKXtWPXo+Pj4xfWVsc2V7Vj1jW28rND4+Ml18MH1kb3tpZigoVnww
KSE9MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7
YnJlYWt9Uz1jW3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6Pj4yXT1TfX13aGlsZSgwKTtoW2w+PjNd
PStmTihLLGNbcj4+Ml18MCxrKTtmdChvLHksY1t0Pj4yXXwwLGspO2Rve2lmKEYpe1c9MH1lbHNl
e2lmKChjW0UrMTI+PjJdfDApIT0oY1tFKzE2Pj4yXXwwKSl7Vz1FO2JyZWFrfWlmKChiMFtjWyhj
W0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDApIT0tMSl7Vz1FO2JyZWFrfWNbaj4+Ml09MDtXPTB9
fXdoaWxlKDApO2o9KFd8MCk9PTA7TDY3OmRve2lmKE0pe0g9NTl9ZWxzZXtkb3tpZigoY1tMKzEy
Pj4yXXwwKT09KGNbTCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYxMjdd
KEwpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0g9NTk7YnJlYWsgTDY3fX13aGlsZSgwKTtpZigh
KGpeKEx8MCk9PTApKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVy
bn19d2hpbGUoMCk7ZG97aWYoKEh8MCk9PTU5KXtpZihqKXticmVha31YPWJ8MDtjW1g+PjJdPVc7
ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7WD1ifDA7
Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZk4oYixkLGUpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MC4wLGo9MCxrPTAuMDtmPWk7aT1pKzh8MDtnPWZ8
MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7cmV0dXJuK2h9aj1jWyhidygp
fDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMo
MTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtrPStr
VyhiLGcsY1syOTU4XXwwKTtiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8
MCk+PjJdPWp9aWYoKGNbZz4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVy
bitofWlmKChifDApIT0zNCl7aD1rO2k9ZjtyZXR1cm4raH1jW2U+PjJdPTQ7aD1rO2k9ZjtyZXR1
cm4raH1mdW5jdGlvbiBmTyhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBm
UChhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBmUShiLGUsZixnLGgsaixrKXtiPWJ8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxS
PTAsUz0wLFQ9MCxVPTAsVj0wO2U9aTtpPWkrNjR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNb
bD4+Ml07bD1lfDA7bT1lKzE2fDA7bj1lKzQ4fDA7bz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cD1p
O2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3I9aTtpPWkrMTYw
fDA7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ayQobnww
LDAsMTIpO3U9cDtlaihvLGgpO2g9b3wwO289Y1toPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7
Y1tsPj4yXT0xNTY5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0o
Y1szOTI1XXwwKS0xfDA7dj1jW28rOD4+Ml18MDtkb3tpZigoY1tvKzEyPj4yXXwwKS12Pj4yPj4+
MD5sPj4+MCl7dz1jW3YrKGw8PDIpPj4yXXwwO2lmKCh3fDApPT0wKXticmVha314PXc7eT1tfDA7
ej1jWyhjW3c+PjJdfDApKzMyPj4yXXwwO2NhW3omMTVdKHgsOTc0NCw5NzcwLHkpfDA7eD1jW2g+
PjJdfDA7ZHooeCl8MDtrJCh1fDAsMCwxMik7eD1wO2RSKHAsMTAsMCk7aWYoKGFbdV0mMSk9PTAp
e3o9eCsxfDA7QT16O0I9ejtDPXArOHwwfWVsc2V7ej1wKzh8MDtBPWNbej4+Ml18MDtCPXgrMXww
O0M9en1jW3E+PjJdPUE7ej1yfDA7Y1tzPj4yXT16O2NbdD4+Ml09MDt4PWZ8MDt3PWd8MDtEPXB8
MDtFPXArNHwwO0Y9QTtHPWNbeD4+Ml18MDtMMTE3OndoaWxlKDEpe2Rve2lmKChHfDApPT0wKXtI
PTB9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe0g9RzticmVha31pZigo
YjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKSE9LTEpe0g9RzticmVha31jW3g+PjJd
PTA7SD0wfX13aGlsZSgwKTtJPShIfDApPT0wO0o9Y1t3Pj4yXXwwO2Rve2lmKChKfDApPT0wKXtL
PTExMH1lbHNle2lmKChjW0orMTI+PjJdfDApIT0oY1tKKzE2Pj4yXXwwKSl7aWYoSSl7YnJlYWt9
ZWxzZXtMPUY7YnJlYWsgTDExN319aWYoKGIwW2NbKGNbSj4+Ml18MCkrMzY+PjJdJjEyN10oSil8
MCk9PS0xKXtjW3c+PjJdPTA7Sz0xMTA7YnJlYWt9ZWxzZXtpZihJXihKfDApPT0wKXticmVha31l
bHNle0w9RjticmVhayBMMTE3fX19fXdoaWxlKDApO2lmKChLfDApPT0xMTApe0s9MDtpZihJKXtM
PUY7YnJlYWt9fUo9ZFt1XXwwO009KEomMXwwKT09MDtpZigoKGNbcT4+Ml18MCktRnwwKT09KChN
P0o+Pj4xOmNbRT4+Ml18MCl8MCkpe2lmKE0pe049Sj4+PjE7Tz1KPj4+MX1lbHNle0o9Y1tFPj4y
XXwwO049SjtPPUp9ZFIocCxOPDwxLDApO2lmKChhW3VdJjEpPT0wKXtQPTEwfWVsc2V7UD0oY1tE
Pj4yXSYtMiktMXwwfWRSKHAsUCwwKTtpZigoYVt1XSYxKT09MCl7UT1CfWVsc2V7UT1jW0M+PjJd
fDB9Y1txPj4yXT1RK087Uj1RfWVsc2V7Uj1GfUo9SCsxMnwwO009Y1tKPj4yXXwwO1M9SCsxNnww
O2lmKChNfDApPT0oY1tTPj4yXXwwKSl7VD0oYjBbY1soY1tIPj4yXXwwKSszNj4+Ml0mMTI3XShI
KXwwKSYyNTV9ZWxzZXtUPWFbTV18MH1pZigoZnMoVCwxNixSLHEsdCwwLG4seixzLHkpfDApIT0w
KXtMPVI7YnJlYWt9TT1jW0o+PjJdfDA7aWYoKE18MCk9PShjW1M+PjJdfDApKXtTPWNbKGNbSD4+
Ml18MCkrNDA+PjJdfDA7YjBbUyYxMjddKEgpfDA7Rj1SO0c9SDtjb250aW51ZX1lbHNle2NbSj4+
Ml09TSsxO0Y9UjtHPUg7Y29udGludWV9fWFbTCszfDBdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0w
KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGls
ZSgwKTtHPWZSKEwsY1syOTU4XXwwLDEzMjAsKEY9aSxpPWkrOHwwLGNbRj4+Ml09ayxGKXwwKXww
O2k9RjtpZigoR3wwKSE9MSl7Y1tqPj4yXT00fUc9Y1t4Pj4yXXwwO2Rve2lmKChHfDApPT0wKXtV
PTB9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe1U9RzticmVha31pZigo
YjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKSE9LTEpe1U9RzticmVha31jW3g+PjJd
PTA7VT0wfX13aGlsZSgwKTt4PShVfDApPT0wO0c9Y1t3Pj4yXXwwO2Rve2lmKChHfDApPT0wKXtL
PTE1NX1lbHNle2lmKChjW0crMTI+PjJdfDApIT0oY1tHKzE2Pj4yXXwwKSl7aWYoIXgpe2JyZWFr
fVY9YnwwO2NbVj4+Ml09VTtkUChwKTtkUChuKTtpPWU7cmV0dXJufWlmKChiMFtjWyhjW0c+PjJd
fDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1t3Pj4yXT0wO0s9MTU1O2JyZWFrfWlmKCEoeF4o
R3wwKT09MCkpe2JyZWFrfVY9YnwwO2NbVj4+Ml09VTtkUChwKTtkUChuKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtkb3tpZigoS3wwKT09MTU1KXtpZih4KXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAo
cCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7Vj1ifDA7Y1tW
Pj4yXT1VO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtrcShlKTti
bChlfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZSKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9
ZXwwO3ZhciBmPTAsZz0wLGg9MDtmPWk7aT1pKzE2fDA7Zz1mfDA7aD1nO2NbaD4+Ml09ZTtjW2gr
ND4+Ml09MDtoPWJCKGJ8MCl8MDtiPWFZKGF8MCxkfDAsZ3wwKXwwO2lmKChofDApPT0wKXtpPWY7
cmV0dXJuIGJ8MH1iQihofDApfDA7aT1mO3JldHVybiBifDB9ZnVuY3Rpb24gZlMoYixlLGYsZyxo
LGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0w
LFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0w
LGFiPTAsYWM9MCxhZD0wO2w9aTtpPWkrMTA0fDA7bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZT4+Ml09Y1ttPj4yXTttPShnLWZ8MCkvMTJ8MDtuPWx8MDtkb3tpZihtPj4+MD4xMDApe289
a0oobSl8MDtpZigob3wwKSE9MCl7cD1vO3E9bzticmVha31rWCgpO3A9MDtxPTB9ZWxzZXtwPW47
cT0wfX13aGlsZSgwKTtuPShmfDApPT0oZ3wwKTtpZihuKXtyPW07cz0wfWVsc2V7bz1tO209MDt0
PXA7dT1mO3doaWxlKDEpe3Y9ZFt1XXwwO2lmKCh2JjF8MCk9PTApe3c9dj4+PjF9ZWxzZXt3PWNb
dSs0Pj4yXXwwfWlmKCh3fDApPT0wKXthW3RdPTI7eD1tKzF8MDt5PW8tMXwwfWVsc2V7YVt0XT0x
O3g9bTt5PW99dj11KzEyfDA7aWYoKHZ8MCk9PShnfDApKXtyPXk7cz14O2JyZWFrfWVsc2V7bz15
O209eDt0PXQrMXwwO3U9dn19fXU9YnwwO2I9ZXwwO2U9aDt0PTA7eD1zO3M9cjt3aGlsZSgxKXty
PWNbdT4+Ml18MDtkb3tpZigocnwwKT09MCl7ej0wfWVsc2V7bT1jW3IrMTI+PjJdfDA7aWYoKG18
MCk9PShjW3IrMTY+PjJdfDApKXtBPWIwW2NbKGNbcj4+Ml18MCkrMzY+PjJdJjEyN10ocil8MH1l
bHNle0E9Y1ttPj4yXXwwfWlmKChBfDApPT0tMSl7Y1t1Pj4yXT0wO3o9MDticmVha31lbHNle3o9
Y1t1Pj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7cj0oenwwKT09MDttPWNbYj4+Ml18MDtpZigobXww
KT09MCl7Qj16O0M9MH1lbHNle3k9Y1ttKzEyPj4yXXwwO2lmKCh5fDApPT0oY1ttKzE2Pj4yXXww
KSl7RD1iMFtjWyhjW20+PjJdfDApKzM2Pj4yXSYxMjddKG0pfDB9ZWxzZXtEPWNbeT4+Ml18MH1p
ZigoRHwwKT09LTEpe2NbYj4+Ml09MDtFPTB9ZWxzZXtFPW19Qj1jW3U+PjJdfDA7Qz1FfUY9KEN8
MCk9PTA7aWYoISgocl5GKSYoc3wwKSE9MCkpe2JyZWFrfXI9Y1tCKzEyPj4yXXwwO2lmKChyfDAp
PT0oY1tCKzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxz
ZXtHPWNbcj4+Ml18MH1pZihrKXtIPUd9ZWxzZXtIPWJfW2NbKGNbZT4+Ml18MCkrMjg+PjJdJjMx
XShoLEcpfDB9ZG97aWYobil7ST14O0o9c31lbHNle3I9dCsxfDA7TDI0OTpkb3tpZihrKXttPXM7
eT14O289cDt3PTA7dj1mO3doaWxlKDEpe2Rve2lmKChhW29dfDApPT0xKXtLPXY7aWYoKGFbS10m
MSk9PTApe0w9dis0fDB9ZWxzZXtMPWNbdis4Pj4yXXwwfWlmKChIfDApIT0oY1tMKyh0PDwyKT4+
Ml18MCkpe2Fbb109MDtNPXc7Tj15O089bS0xfDA7YnJlYWt9UD1kW0tdfDA7aWYoKFAmMXwwKT09
MCl7UT1QPj4+MX1lbHNle1E9Y1t2KzQ+PjJdfDB9aWYoKFF8MCkhPShyfDApKXtNPTE7Tj15O089
bTticmVha31hW29dPTI7TT0xO049eSsxfDA7Tz1tLTF8MH1lbHNle009dztOPXk7Tz1tfX13aGls
ZSgwKTtQPXYrMTJ8MDtpZigoUHwwKT09KGd8MCkpe1I9TztTPU47VD1NO2JyZWFrIEwyNDl9bT1P
O3k9TjtvPW8rMXwwO3c9TTt2PVB9fWVsc2V7dj1zO3c9eDtvPXA7eT0wO209Zjt3aGlsZSgxKXtk
b3tpZigoYVtvXXwwKT09MSl7UD1tO2lmKChhW1BdJjEpPT0wKXtVPW0rNHwwfWVsc2V7VT1jW20r
OD4+Ml18MH1pZigoSHwwKSE9KGJfW2NbKGNbZT4+Ml18MCkrMjg+PjJdJjMxXShoLGNbVSsodDw8
Mik+PjJdfDApfDApKXthW29dPTA7Vj15O1c9dztYPXYtMXwwO2JyZWFrfUs9ZFtQXXwwO2lmKChL
JjF8MCk9PTApe1k9Sz4+PjF9ZWxzZXtZPWNbbSs0Pj4yXXwwfWlmKChZfDApIT0ocnwwKSl7Vj0x
O1c9dztYPXY7YnJlYWt9YVtvXT0yO1Y9MTtXPXcrMXwwO1g9di0xfDB9ZWxzZXtWPXk7Vz13O1g9
dn19d2hpbGUoMCk7Sz1tKzEyfDA7aWYoKEt8MCk9PShnfDApKXtSPVg7Uz1XO1Q9VjticmVhayBM
MjQ5fXY9WDt3PVc7bz1vKzF8MDt5PVY7bT1LfX19d2hpbGUoMCk7aWYoIVQpe0k9UztKPVI7YnJl
YWt9cj1jW3U+PjJdfDA7bT1yKzEyfDA7eT1jW20+PjJdfDA7aWYoKHl8MCk9PShjW3IrMTY+PjJd
fDApKXtvPWNbKGNbcj4+Ml18MCkrNDA+PjJdfDA7YjBbbyYxMjddKHIpfDB9ZWxzZXtjW20+PjJd
PXkrNH1pZigoUytSfDApPj4+MDwyfG4pe0k9UztKPVI7YnJlYWt9eT10KzF8MDttPVM7cj1wO289
Zjt3aGlsZSgxKXtkb3tpZigoYVtyXXwwKT09Mil7dz1kW29dfDA7aWYoKHcmMXwwKT09MCl7Wj13
Pj4+MX1lbHNle1o9Y1tvKzQ+PjJdfDB9aWYoKFp8MCk9PSh5fDApKXtfPW07YnJlYWt9YVtyXT0w
O189bS0xfDB9ZWxzZXtfPW19fXdoaWxlKDApO3c9bysxMnwwO2lmKCh3fDApPT0oZ3wwKSl7ST1f
O0o9UjticmVha31lbHNle209XztyPXIrMXwwO289d319fX13aGlsZSgwKTt0PXQrMXwwO3g9STtz
PUp9ZG97aWYoKEJ8MCk9PTApeyQ9MX1lbHNle0o9Y1tCKzEyPj4yXXwwO2lmKChKfDApPT0oY1tC
KzE2Pj4yXXwwKSl7YWE9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7YWE9
Y1tKPj4yXXwwfWlmKChhYXwwKT09LTEpe2NbdT4+Ml09MDskPTE7YnJlYWt9ZWxzZXskPShjW3U+
PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7ZG97aWYoRil7YWI9MjY0fWVsc2V7dT1jW0MrMTI+
PjJdfDA7aWYoKHV8MCk9PShjW0MrMTY+PjJdfDApKXthYz1iMFtjWyhjW0M+PjJdfDApKzM2Pj4y
XSYxMjddKEMpfDB9ZWxzZXthYz1jW3U+PjJdfDB9aWYoKGFjfDApPT0tMSl7Y1tiPj4yXT0wO2Fi
PTI2NDticmVha31lbHNle2lmKCReKEN8MCk9PTApe2JyZWFrfWVsc2V7YWI9MjY2O2JyZWFrfX19
fXdoaWxlKDApO2lmKChhYnwwKT09MjY0KXtpZigkKXthYj0yNjZ9fWlmKChhYnwwKT09MjY2KXtj
W2o+PjJdPWNbaj4+Ml18Mn1MMzMwOmRve2lmKG4pe2FiPTI3MX1lbHNleyQ9ZjtDPXA7d2hpbGUo
MSl7aWYoKGFbQ118MCk9PTIpe2FkPSQ7YnJlYWsgTDMzMH1iPSQrMTJ8MDtpZigoYnwwKT09KGd8
MCkpe2FiPTI3MTticmVhayBMMzMwfSQ9YjtDPUMrMXwwfX19d2hpbGUoMCk7aWYoKGFifDApPT0y
NzEpe2Nbaj4+Ml09Y1tqPj4yXXw0O2FkPWd9aWYoKHF8MCk9PTApe2k9bDtyZXR1cm4gYWR8MH1r
SyhxKTtpPWw7cmV0dXJuIGFkfDB9ZnVuY3Rpb24gZlQoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7az1pO2k9aSsx
MTJ8MDtsPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1rfDA7bT1rKzE2fDA7bj1rKzMy
fDA7bz1rKzQwfDA7cD1rKzQ4fDA7cT1rKzU2fDA7cj1rKzY0fDA7cz1rKzcyfDA7dD1rKzgwfDA7
dT1rKzEwNHwwO2lmKChjW2crND4+Ml0mMXwwKT09MCl7Y1tuPj4yXT0tMTt2PWNbKGNbZD4+Ml18
MCkrMTY+PjJdfDA7dz1lfDA7Y1twPj4yXT1jW3c+PjJdO2NbcT4+Ml09Y1tmPj4yXTtiWFt2JjEy
N10obyxkLHAscSxnLGgsbik7cT1jW28+PjJdfDA7Y1t3Pj4yXT1xO3N3aXRjaChjW24+PjJdfDAp
e2Nhc2UgMTp7YVtqXT0xO2JyZWFrfTtjYXNlIDA6e2Fbal09MDticmVha307ZGVmYXVsdDp7YVtq
XT0xO2NbaD4+Ml09NH19Y1tiPj4yXT1xO2k9aztyZXR1cm59ZWoocixnKTtxPXJ8MDtyPWNbcT4+
Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+PjJdPTEyO2NbbSs4
Pj4yXT0wO2RXKDE1Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO249Y1tyKzg+PjJdfDA7ZG97
aWYoKGNbcisxMj4+Ml18MCktbj4+Mj4+PjA+bT4+PjApe3c9Y1tuKyhtPDwyKT4+Ml18MDtpZigo
d3wwKT09MCl7YnJlYWt9bz13O3c9Y1txPj4yXXwwO2R6KHcpfDA7ZWoocyxnKTt3PXN8MDtwPWNb
dz4+Ml18MDtpZigoY1szODI2XXwwKSE9LTEpe2NbbD4+Ml09MTUzMDQ7Y1tsKzQ+PjJdPTEyO2Nb
bCs4Pj4yXT0wO2RXKDE1MzA0LGwsOTYpfWQ9KGNbMzgyN118MCktMXwwO3Y9Y1twKzg+PjJdfDA7
ZG97aWYoKGNbcCsxMj4+Ml18MCktdj4+Mj4+PjA+ZD4+PjApe3g9Y1t2KyhkPDwyKT4+Ml18MDtp
ZigoeHwwKT09MCl7YnJlYWt9eT14O3o9Y1t3Pj4yXXwwO2R6KHopfDA7ej10fDA7QT14O2JaW2Nb
KGNbQT4+Ml18MCkrMjQ+PjJdJjEyN10oeix5KTtiWltjWyhjW0E+PjJdfDApKzI4Pj4yXSYxMjdd
KHQrMTJ8MCx5KTtjW3U+PjJdPWNbZj4+Ml07YVtqXT0oZlMoZSx1LHosdCsyNHwwLG8saCwxKXww
KT09KHp8MCl8MDtjW2I+PjJdPWNbZT4+Ml07ZWUodCsxMnwwKTtlZSh0fDApO2k9aztyZXR1cm59
fXdoaWxlKDApO289Yk8oNCl8MDtrcShvKTtibChvfDAsODE3NiwxMzQpfX13aGlsZSgwKTtrPWJP
KDQpfDA7a3Eoayk7Ymwoa3wwLDgxNzYsMTM0KX1mdW5jdGlvbiBmVShiLGUsZixnLGgsaSxqLGss
bCxtKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8
MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7bj1jW2c+PjJdfDA7bz0obnwwKT09
KGZ8MCk7ZG97aWYobyl7cD0oY1ttKzk2Pj4yXXwwKT09KGJ8MCk7aWYoIXApe2lmKChjW20rMTAw
Pj4yXXwwKSE9KGJ8MCkpe2JyZWFrfX1jW2c+PjJdPWYrMTthW2ZdPXA/NDM6NDU7Y1toPj4yXT0w
O3E9MDtyZXR1cm4gcXwwfX13aGlsZSgwKTtwPWRbal18MDtpZigocCYxfDApPT0wKXtyPXA+Pj4x
fWVsc2V7cj1jW2orND4+Ml18MH1pZigocnwwKSE9MCYoYnwwKT09KGl8MCkpe2k9Y1tsPj4yXXww
O2lmKChpLWt8MCk+PTE2MCl7cT0wO3JldHVybiBxfDB9az1jW2g+PjJdfDA7Y1tsPj4yXT1pKzQ7
Y1tpPj4yXT1rO2NbaD4+Ml09MDtxPTA7cmV0dXJuIHF8MH1rPW0rMTA0fDA7aT1tO3doaWxlKDEp
e2lmKChpfDApPT0oa3wwKSl7cz1rO2JyZWFrfWlmKChjW2k+PjJdfDApPT0oYnwwKSl7cz1pO2Jy
ZWFrfWVsc2V7aT1pKzR8MH19aT1zLW18MDttPWk+PjI7aWYoKGl8MCk+OTIpe3E9LTE7cmV0dXJu
IHF8MH1MMzk4OmRve3N3aXRjaChlfDApe2Nhc2UgODpjYXNlIDEwOntpZigobXwwKTwoZXwwKSl7
YnJlYWsgTDM5OH1lbHNle3E9LTF9cmV0dXJuIHF8MH07Y2FzZSAxNjp7aWYoKGl8MCk8ODgpe2Jy
ZWFrIEwzOTh9aWYobyl7cT0tMTtyZXR1cm4gcXwwfWlmKChuLWZ8MCk+PTMpe3E9LTE7cmV0dXJu
IHF8MH1pZigoYVtuLTF8MF18MCkhPTQ4KXtxPS0xO3JldHVybiBxfDB9Y1toPj4yXT0wO3M9YVs5
NzQ0K218MF18MDtiPWNbZz4+Ml18MDtjW2c+PjJdPWIrMTthW2JdPXM7cT0wO3JldHVybiBxfDB9
O2RlZmF1bHQ6e319fXdoaWxlKDApO2Y9YVs5NzQ0K218MF18MDtjW2c+PjJdPW4rMTthW25dPWY7
Y1toPj4yXT0oY1toPj4yXXwwKSsxO3E9MDtyZXR1cm4gcXwwfWZ1bmN0aW9uIGZWKGIsZSxmLGcs
aCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxB
PTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89
MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTA7ZT1pO2k9aSsxNDR8MDts
PWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtuPWUrMTI4
fDA7bz1uO3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHww
KXtjYXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJl
YWt9O2RlZmF1bHQ6e3Q9MTB9fXU9ZXwwO2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIo
biwxMCwwKTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4r
OHwwO3c9Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tz
Pj4yXT0wO2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9Y1toPj4y
XXwwO0w0MjY6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEyPj4yXXww
O2lmKChDfDApPT0oY1t3KzE2Pj4yXXwwKSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjdd
KHcpfDB9ZWxzZXtEPWNbQz4+Ml18MH1pZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7
Qj0wfX13aGlsZSgwKTtFPShCfDApPT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0wKXtGPTM2
M31lbHNle0c9Y1tDKzEyPj4yXXwwO2lmKChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1iMFtjWyhj
W0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHwwKT09LTEp
e2NbZj4+Ml09MDtGPTM2MzticmVha31lbHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7Sj1HO2Jy
ZWFrfWVsc2V7Sz1sO0w9QztNPUc7YnJlYWsgTDQyNn19fX13aGlsZSgwKTtpZigoRnwwKT09MzYz
KXtGPTA7aWYoRSl7Sz1sO0w9MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118MDtHPShD
JjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDApfDApKXtp
ZihHKXtOPUM+Pj4xO089Qz4+PjF9ZWxzZXtDPWNbej4+Ml18MDtOPUM7Tz1DfWRSKG4sTjw8MSww
KTtpZigoYVtvXSYxKT09MCl7UD0xMH1lbHNle1A9KGNbZz4+Ml0mLTIpLTF8MH1kUihuLFAsMCk7
aWYoKGFbb10mMSk9PTApe1E9eH1lbHNle1E9Y1t5Pj4yXXwwfWNbcD4+Ml09UStPO1I9UX1lbHNl
e1I9bH1DPUIrMTJ8MDtHPWNbQz4+Ml18MDtTPUIrMTZ8MDtpZigoR3wwKT09KGNbUz4+Ml18MCkp
e1Q9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7VD1jW0c+PjJdfDB9aWYo
KGZVKFQsdCxSLHAscyxBLG0sdixyLHUpfDApIT0wKXtLPVI7TD1JO009SjticmVha31HPWNbQz4+
Ml18MDtpZigoR3wwKT09KGNbUz4+Ml18MCkpe1M9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtT
JjEyN10oQil8MDtsPVI7dz1CO2NvbnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1SO3c9Qjtjb250
aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7VT13Pj4+MX1lbHNle1U9Y1ttKzQ+PjJdfDB9
ZG97aWYoKFV8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9Uj1jW3M+
PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1SfX13aGlsZSgwKTtjW2s+PjJdPWZ1KEssY1twPj4y
XXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rve2lmKEUpe1Y9MH1lbHNle3I9Y1tCKzEy
Pj4yXXwwO2lmKChyfDApPT0oY1tCKzE2Pj4yXXwwKSl7Vz1iMFtjWyhjW0I+PjJdfDApKzM2Pj4y
XSYxMjddKEIpfDB9ZWxzZXtXPWNbcj4+Ml18MH1pZigoV3wwKSE9LTEpe1Y9QjticmVha31jW2g+
PjJdPTA7Vj0wfX13aGlsZSgwKTtoPShWfDApPT0wO2Rve2lmKE0pe0Y9NDA1fWVsc2V7Qj1jW0wr
MTI+PjJdfDA7aWYoKEJ8MCk9PShjW0wrMTY+PjJdfDApKXtYPWIwW2NbKGNbTD4+Ml18MCkrMzY+
PjJdJjEyN10oTCl8MH1lbHNle1g9Y1tCPj4yXXwwfWlmKChYfDApPT0tMSl7Y1tmPj4yXT0wO0Y9
NDA1O2JyZWFrfWlmKCEoaF4oTHwwKT09MCkpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChuKTtk
UChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRnwwKT09NDA1KXtpZihoKXticmVha31Z
PWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1j
W2o+PjJdfDI7WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24g
ZlcoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MDtmPWk7aT1pKzQwfDA7Zz1mfDA7aD1mKzE2fDA7aj1mKzMy
fDA7ZWooaixiKTtiPWp8MDtqPWNbYj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbaD4+Ml09
MTU2ODg7Y1toKzQ+PjJdPTEyO2NbaCs4Pj4yXT0wO2RXKDE1Njg4LGgsOTYpfWg9KGNbMzkyM118
MCktMXwwO2s9Y1tqKzg+PjJdfDA7ZG97aWYoKGNbaisxMj4+Ml18MCktaz4+Mj4+PjA+aD4+PjAp
e2w9Y1trKyhoPDwyKT4+Ml18MDtpZigobHwwKT09MCl7YnJlYWt9bT1sO249Y1soY1tsPj4yXXww
KSs0OD4+Ml18MDtjYVtuJjE1XShtLDk3NDQsOTc3MCxkKXwwO209Y1tiPj4yXXwwO2lmKChjWzM4
MjZdfDApIT0tMSl7Y1tnPj4yXT0xNTMwNDtjW2crND4+Ml09MTI7Y1tnKzg+PjJdPTA7ZFcoMTUz
MDQsZyw5Nil9bj0oY1szODI3XXwwKS0xfDA7bD1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4y
XXwwKS1sPj4yPj4+MD5uPj4+MCl7bz1jW2wrKG48PDIpPj4yXXwwO2lmKChvfDApPT0wKXticmVh
a31wPW87Y1tlPj4yXT1iMFtjWyhjW28+PjJdfDApKzE2Pj4yXSYxMjddKHApfDA7YlpbY1soY1tv
Pj4yXXwwKSsyMD4+Ml0mMTI3XShhLHApO3A9Y1tiPj4yXXwwO2R6KHApfDA7aT1mO3JldHVybn19
d2hpbGUoMCk7bj1iTyg0KXwwO2txKG4pO2JsKG58MCw4MTc2LDEzNCl9fXdoaWxlKDApO2Y9Yk8o
NCl8MDtrcShmKTtibChmfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZYKGIsZSxmLGcsaCxqLGspe2I9
YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0w
LFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTA7ZT1pO2k9aSsxNDR8MDtsPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtuPWUrMTI4fDA7bz1uO3A9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6
e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1
bHQ6e3Q9MTB9fXU9ZXwwO2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtp
ZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2
Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9
ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9Y1toPj4yXXwwO0w1MzU6
d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEyPj4yXXwwO2lmKChDfDAp
PT0oY1t3KzE2Pj4yXXwwKSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDB9ZWxz
ZXtEPWNbQz4+Ml18MH1pZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGls
ZSgwKTtFPShCfDApPT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0wKXtGPTQ1MH1lbHNle0c9
Y1tDKzEyPj4yXXwwO2lmKChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1iMFtjWyhjW0M+PjJdfDAp
KzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHwwKT09LTEpe2NbZj4+Ml09
MDtGPTQ1MDticmVha31lbHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7Sj1HO2JyZWFrfWVsc2V7
TD1sO009QztOPUc7YnJlYWsgTDUzNX19fX13aGlsZSgwKTtpZigoRnwwKT09NDUwKXtGPTA7aWYo
RSl7TD1sO009MDtOPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118MDtHPShDJjF8MCk9PTA7
aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDApfDApKXtpZihHKXtPPUM+
Pj4xO1A9Qz4+PjF9ZWxzZXtDPWNbej4+Ml18MDtPPUM7UD1DfWRSKG4sTzw8MSwwKTtpZigoYVtv
XSYxKT09MCl7UT0xMH1lbHNle1E9KGNbZz4+Ml0mLTIpLTF8MH1kUihuLFEsMCk7aWYoKGFbb10m
MSk9PTApe1I9eH1lbHNle1I9Y1t5Pj4yXXwwfWNbcD4+Ml09UitQO1M9Un1lbHNle1M9bH1DPUIr
MTJ8MDtHPWNbQz4+Ml18MDtUPUIrMTZ8MDtpZigoR3wwKT09KGNbVD4+Ml18MCkpe1U9YjBbY1so
Y1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7VT1jW0c+PjJdfDB9aWYoKGZVKFUsdCxT
LHAscyxBLG0sdixyLHUpfDApIT0wKXtMPVM7TT1JO049SjticmVha31HPWNbQz4+Ml18MDtpZigo
R3wwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10oQil8
MDtsPVM7dz1CO2NvbnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1TO3c9Qjtjb250aW51ZX19dz1k
W21dfDA7aWYoKHcmMXwwKT09MCl7Vj13Pj4+MX1lbHNle1Y9Y1ttKzQ+PjJdfDB9ZG97aWYoKFZ8
MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9Uz1jW3M+PjJdfDA7Y1ty
Pj4yXT13KzQ7Y1t3Pj4yXT1TfX13aGlsZSgwKTtzPWZ3KEwsY1twPj4yXXwwLGosdCl8MDtjW2s+
PjJdPXM7Y1trKzQ+PjJdPUs7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihFKXtXPTB9ZWxzZXty
PWNbQisxMj4+Ml18MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1g9YjBbY1soY1tCPj4yXXww
KSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7WD1jW3I+PjJdfDB9aWYoKFh8MCkhPS0xKXtXPUI7YnJl
YWt9Y1toPj4yXT0wO1c9MH19d2hpbGUoMCk7aD0oV3wwKT09MDtkb3tpZihOKXtGPTQ5Mn1lbHNl
e0I9Y1tNKzEyPj4yXXwwO2lmKChCfDApPT0oY1tNKzE2Pj4yXXwwKSl7WT1iMFtjWyhjW00+PjJd
fDApKzM2Pj4yXSYxMjddKE0pfDB9ZWxzZXtZPWNbQj4+Ml18MH1pZigoWXwwKT09LTEpe2NbZj4+
Ml09MDtGPTQ5MjticmVha31pZighKGheKE18MCk9PTApKXticmVha31aPWJ8MDtjW1o+PjJdPVc7
ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTQ5Mil7aWYoaCl7
YnJlYWt9Wj1ifDA7Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nb
aj4+Ml09Y1tqPj4yXXwyO1o9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1
bmN0aW9uIGZZKGUsZixnLGgsaixrLGwpe2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9
a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAs
TD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxa
PTA7Zj1pO2k9aSsxNDR8MDttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+
PjJdO209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+Ml07bT1mKzEwNHww
O249ZisxMTJ8MDtvPWYrMTI4fDA7cD1vO3E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3I9aTtpPWkr
MTYwfDA7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dp
dGNoKGNbais0Pj4yXSY3NHwwKXtjYXNlIDg6e3U9MTY7YnJlYWt9O2Nhc2UgNjQ6e3U9ODticmVh
a307Y2FzZSAwOnt1PTA7YnJlYWt9O2RlZmF1bHQ6e3U9MTB9fXY9ZnwwO2ZXKG4saix2LG0pO2sk
KHB8MCwwLDEyKTtqPW87ZFIobywxMCwwKTtpZigoYVtwXSYxKT09MCl7dz1qKzF8MDt4PXc7eT13
O3o9bys4fDB9ZWxzZXt3PW8rOHwwO3g9Y1t3Pj4yXXwwO3k9aisxfDA7ej13fWNbcT4+Ml09eDt3
PXJ8MDtjW3M+PjJdPXc7Y1t0Pj4yXT0wO2o9Z3wwO2c9aHwwO2g9b3wwO0E9bys0fDA7Qj1jW20+
PjJdfDA7bT14O3g9Y1tqPj4yXXwwO0w2MjQ6d2hpbGUoMSl7ZG97aWYoKHh8MCk9PTApe0M9MH1l
bHNle0Q9Y1t4KzEyPj4yXXwwO2lmKChEfDApPT0oY1t4KzE2Pj4yXXwwKSl7RT1iMFtjWyhjW3g+
PjJdfDApKzM2Pj4yXSYxMjddKHgpfDB9ZWxzZXtFPWNbRD4+Ml18MH1pZigoRXwwKSE9LTEpe0M9
eDticmVha31jW2o+PjJdPTA7Qz0wfX13aGlsZSgwKTtGPShDfDApPT0wO0Q9Y1tnPj4yXXwwO2Rv
e2lmKChEfDApPT0wKXtHPTUyMH1lbHNle0g9Y1tEKzEyPj4yXXwwO2lmKChIfDApPT0oY1tEKzE2
Pj4yXXwwKSl7ST1iMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDB9ZWxzZXtJPWNbSD4+
Ml18MH1pZigoSXwwKT09LTEpe2NbZz4+Ml09MDtHPTUyMDticmVha31lbHNle0g9KER8MCk9PTA7
aWYoRl5IKXtKPUQ7Sz1IO2JyZWFrfWVsc2V7TD1tO009RDtOPUg7YnJlYWsgTDYyNH19fX13aGls
ZSgwKTtpZigoR3wwKT09NTIwKXtHPTA7aWYoRil7TD1tO009MDtOPTE7YnJlYWt9ZWxzZXtKPTA7
Sz0xfX1EPWRbcF18MDtIPShEJjF8MCk9PTA7aWYoKChjW3E+PjJdfDApLW18MCk9PSgoSD9EPj4+
MTpjW0E+PjJdfDApfDApKXtpZihIKXtPPUQ+Pj4xO1A9RD4+PjF9ZWxzZXtEPWNbQT4+Ml18MDtP
PUQ7UD1EfWRSKG8sTzw8MSwwKTtpZigoYVtwXSYxKT09MCl7UT0xMH1lbHNle1E9KGNbaD4+Ml0m
LTIpLTF8MH1kUihvLFEsMCk7aWYoKGFbcF0mMSk9PTApe1I9eX1lbHNle1I9Y1t6Pj4yXXwwfWNb
cT4+Ml09UitQO1M9Un1lbHNle1M9bX1EPUMrMTJ8MDtIPWNbRD4+Ml18MDtUPUMrMTZ8MDtpZigo
SHwwKT09KGNbVD4+Ml18MCkpe1U9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVs
c2V7VT1jW0g+PjJdfDB9aWYoKGZVKFUsdSxTLHEsdCxCLG4sdyxzLHYpfDApIT0wKXtMPVM7TT1K
O049SzticmVha31IPWNbRD4+Ml18MDtpZigoSHwwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tDPj4y
XXwwKSs0MD4+Ml18MDtiMFtUJjEyN10oQyl8MDttPVM7eD1DO2NvbnRpbnVlfWVsc2V7Y1tEPj4y
XT1IKzQ7bT1TO3g9Qztjb250aW51ZX19eD1kW25dfDA7aWYoKHgmMXwwKT09MCl7Vj14Pj4+MX1l
bHNle1Y9Y1tuKzQ+PjJdfDB9ZG97aWYoKFZ8MCkhPTApe3g9Y1tzPj4yXXwwO2lmKCh4LXJ8MCk+
PTE2MCl7YnJlYWt9Uz1jW3Q+PjJdfDA7Y1tzPj4yXT14KzQ7Y1t4Pj4yXT1TfX13aGlsZSgwKTti
W2w+PjFdPWZ6KEwsY1txPj4yXXwwLGssdSl8MDtmdChuLHcsY1tzPj4yXXwwLGspO2Rve2lmKEYp
e1c9MH1lbHNle3M9Y1tDKzEyPj4yXXwwO2lmKChzfDApPT0oY1tDKzE2Pj4yXXwwKSl7WD1iMFtj
WyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtYPWNbcz4+Ml18MH1pZigoWHwwKSE9
LTEpe1c9QzticmVha31jW2o+PjJdPTA7Vz0wfX13aGlsZSgwKTtqPShXfDApPT0wO2Rve2lmKE4p
e0c9NTYyfWVsc2V7Qz1jW00rMTI+PjJdfDA7aWYoKEN8MCk9PShjW00rMTY+PjJdfDApKXtZPWIw
W2NbKGNbTT4+Ml18MCkrMzY+PjJdJjEyN10oTSl8MH1lbHNle1k9Y1tDPj4yXXwwfWlmKChZfDAp
PT0tMSl7Y1tnPj4yXT0wO0c9NTYyO2JyZWFrfWlmKCEoal4oTXwwKT09MCkpe2JyZWFrfVo9ZXww
O2NbWj4+Ml09VztkUChvKTtkUChuKTtpPWY7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoR3wwKT09
NTYyKXtpZihqKXticmVha31aPWV8MDtjW1o+PjJdPVc7ZFAobyk7ZFAobik7aT1mO3JldHVybn19
d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7Wj1lfDA7Y1taPj4yXT1XO2RQKG8pO2RQKG4pO2k9
ZjtyZXR1cm59ZnVuY3Rpb24gZlooYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MDtlPWk7aT1pKzE0NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4y
XTtsPWUrMTA0fDA7bT1lKzExMnwwO249ZSsxMjh8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgODp7dD0xNjticmVha307Y2FzZSAw
Ont0PTA7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7Zlco
bSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgr
MXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9
Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1u
KzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1jW2g+PjJdfDA7TDcxMzp3aGlsZSgxKXtkb3tpZigod3ww
KT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+PjJdfDA7aWYoKEN8MCk9PShjW3crMTY+PjJdfDApKXtE
PWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MH1lbHNle0Q9Y1tDPj4yXXwwfWlmKChE
fDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdoaWxlKDApO0U9KEJ8MCk9PTA7Qz1j
W2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTApe0Y9NTkwfWVsc2V7Rz1jW0MrMTI+PjJdfDA7aWYoKEd8
MCk9PShjW0MrMTY+PjJdfDApKXtIPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEyN10oQyl8MH1l
bHNle0g9Y1tHPj4yXXwwfWlmKChIfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NTkwO2JyZWFrfWVsc2V7
Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztKPUc7YnJlYWt9ZWxzZXtLPWw7TD1DO009RzticmVhayBM
NzEzfX19fXdoaWxlKDApO2lmKChGfDApPT01OTApe0Y9MDtpZihFKXtLPWw7TD0wO009MTticmVh
a31lbHNle0k9MDtKPTF9fUM9ZFtvXXwwO0c9KEMmMXwwKT09MDtpZigoKGNbcD4+Ml18MCktbHww
KT09KChHP0M+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEcpe049Qz4+PjE7Tz1DPj4+MX1lbHNle0M9
Y1t6Pj4yXXwwO049QztPPUN9ZFIobixOPDwxLDApO2lmKChhW29dJjEpPT0wKXtQPTEwfWVsc2V7
UD0oY1tnPj4yXSYtMiktMXwwfWRSKG4sUCwwKTtpZigoYVtvXSYxKT09MCl7UT14fWVsc2V7UT1j
W3k+PjJdfDB9Y1twPj4yXT1RK087Uj1RfWVsc2V7Uj1sfUM9QisxMnwwO0c9Y1tDPj4yXXwwO1M9
QisxNnwwO2lmKChHfDApPT0oY1tTPj4yXXwwKSl7VD1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYx
MjddKEIpfDB9ZWxzZXtUPWNbRz4+Ml18MH1pZigoZlUoVCx0LFIscCxzLEEsbSx2LHIsdSl8MCkh
PTApe0s9UjtMPUk7TT1KO2JyZWFrfUc9Y1tDPj4yXXwwO2lmKChHfDApPT0oY1tTPj4yXXwwKSl7
Uz1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShCKXwwO2w9Ujt3PUI7Y29udGludWV9
ZWxzZXtjW0M+PjJdPUcrNDtsPVI7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtpZigodyYxfDApPT0w
KXtVPXc+Pj4xfWVsc2V7VT1jW20rND4+Ml18MH1kb3tpZigoVXwwKSE9MCl7dz1jW3I+PjJdfDA7
aWYoKHctcXwwKT49MTYwKXticmVha31SPWNbcz4+Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVJ9
fXdoaWxlKDApO2Nbaz4+Ml09ZkIoSyxjW3A+PjJdfDAsaix0KXwwO2Z0KG0sdixjW3I+PjJdfDAs
aik7ZG97aWYoRSl7Vj0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJd
fDApKXtXPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1c9Y1tyPj4yXXww
fWlmKChXfDApIT0tMSl7Vj1CO2JyZWFrfWNbaD4+Ml09MDtWPTB9fXdoaWxlKDApO2g9KFZ8MCk9
PTA7ZG97aWYoTSl7Rj02MzJ9ZWxzZXtCPWNbTCsxMj4+Ml18MDtpZigoQnwwKT09KGNbTCsxNj4+
Ml18MCkpe1g9YjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3XShMKXwwfWVsc2V7WD1jW0I+PjJd
fDB9aWYoKFh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj02MzI7YnJlYWt9aWYoIShoXihMfDApPT0wKSl7
YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rv
e2lmKChGfDApPT02MzIpe2lmKGgpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtp
PWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtZPWJ8MDtjW1k+PjJdPVY7ZFAo
bik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmXyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9
MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0w
LFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wO2U9aTtpPWkrMTQ0fDA7bD1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tn
Pj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEyOHwwO289bjtwPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2O2Jy
ZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtkZWZhdWx0Ont0PTEw
fX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10m
MSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4
PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8
MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+Ml18MDtMODAyOndoaWxlKDEp
e2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18MDtpZigoQ3wwKT09KGNbdysx
Nj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwfWVsc2V7RD1jW0M+
PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7RT0o
QnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj02NjB9ZWxzZXtHPWNbQysxMj4+
Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0m
MTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj02NjA7
YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9RzticmVha31lbHNle0s9bDtMPUM7
TT1HO2JyZWFrIEw4MDJ9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTY2MCl7Rj0wO2lmKEUpe0s9bDtM
PTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0oQyYxfDApPT0wO2lmKCgoY1tw
Pj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoRyl7Tj1DPj4+MTtPPUM+
Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tj1DO089Q31kUihuLE48PDEsMCk7aWYoKGFbb10mMSk9PTAp
e1A9MTB9ZWxzZXtQPShjW2c+PjJdJi0yKS0xfDB9ZFIobixQLDApO2lmKChhW29dJjEpPT0wKXtR
PXh9ZWxzZXtRPWNbeT4+Ml18MH1jW3A+PjJdPVErTztSPVF9ZWxzZXtSPWx9Qz1CKzEyfDA7Rz1j
W0M+PjJdfDA7Uz1CKzE2fDA7aWYoKEd8MCk9PShjW1M+PjJdfDApKXtUPWIwW2NbKGNbQj4+Ml18
MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1Q9Y1tHPj4yXXwwfWlmKChmVShULHQsUixwLHMsQSxt
LHYscix1KXwwKSE9MCl7Sz1SO0w9STtNPUo7YnJlYWt9Rz1jW0M+PjJdfDA7aWYoKEd8MCk9PShj
W1M+PjJdfDApKXtTPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUyYxMjddKEIpfDA7bD1SO3c9
Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Ujt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lm
KCh3JjF8MCk9PTApe1U9dz4+PjF9ZWxzZXtVPWNbbSs0Pj4yXXwwfWRve2lmKChVfDApIT0wKXt3
PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVI9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0
O2Nbdz4+Ml09Un19d2hpbGUoMCk7Y1trPj4yXT1mRChLLGNbcD4+Ml18MCxqLHQpfDA7ZnQobSx2
LGNbcj4+Ml18MCxqKTtkb3tpZihFKXtWPTB9ZWxzZXtyPWNbQisxMj4+Ml18MDtpZigocnwwKT09
KGNbQisxNj4+Ml18MCkpe1c9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7
Vz1jW3I+PjJdfDB9aWYoKFd8MCkhPS0xKXtWPUI7YnJlYWt9Y1toPj4yXT0wO1Y9MH19d2hpbGUo
MCk7aD0oVnwwKT09MDtkb3tpZihNKXtGPTcwMn1lbHNle0I9Y1tMKzEyPj4yXXwwO2lmKChCfDAp
PT0oY1tMKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0w+PjJdfDApKzM2Pj4yXSYxMjddKEwpfDB9ZWxz
ZXtYPWNbQj4+Ml18MH1pZigoWHwwKT09LTEpe2NbZj4+Ml09MDtGPTcwMjticmVha31pZighKGhe
KEx8MCk9PTApKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn19
d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTcwMil7aWYoaCl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQ
KG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1k9YnwwO2Nb
WT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGYkKGIsZSxmLGcsaCxqLGsp
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAs
Uj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTA7ZT1pO2k9aSsxNDR8MDtsPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtuPWUrMTI4fDA7bz1u
O3A9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNl
IDg6e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2Rl
ZmF1bHQ6e3Q9MTB9fXU9ZXwwO2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCww
KTtpZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9
Y1t2Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0w
O2g9ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9Y1toPj4yXXwwO0w4
OTE6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEyPj4yXXwwO2lmKChD
fDApPT0oY1t3KzE2Pj4yXXwwKSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDB9
ZWxzZXtEPWNbQz4+Ml18MH1pZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13
aGlsZSgwKTtFPShCfDApPT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0wKXtGPTczMH1lbHNl
e0c9Y1tDKzEyPj4yXXwwO2lmKChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1iMFtjWyhjW0M+PjJd
fDApKzM2Pj4yXSYxMjddKEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHwwKT09LTEpe2NbZj4+
Ml09MDtGPTczMDticmVha31lbHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7Sj1HO2JyZWFrfWVs
c2V7TD1sO009QztOPUc7YnJlYWsgTDg5MX19fX13aGlsZSgwKTtpZigoRnwwKT09NzMwKXtGPTA7
aWYoRSl7TD1sO009MDtOPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118MDtHPShDJjF8MCk9
PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDApfDApKXtpZihHKXtP
PUM+Pj4xO1A9Qz4+PjF9ZWxzZXtDPWNbej4+Ml18MDtPPUM7UD1DfWRSKG4sTzw8MSwwKTtpZigo
YVtvXSYxKT09MCl7UT0xMH1lbHNle1E9KGNbZz4+Ml0mLTIpLTF8MH1kUihuLFEsMCk7aWYoKGFb
b10mMSk9PTApe1I9eH1lbHNle1I9Y1t5Pj4yXXwwfWNbcD4+Ml09UitQO1M9Un1lbHNle1M9bH1D
PUIrMTJ8MDtHPWNbQz4+Ml18MDtUPUIrMTZ8MDtpZigoR3wwKT09KGNbVD4+Ml18MCkpe1U9YjBb
Y1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7VT1jW0c+PjJdfDB9aWYoKGZVKFUs
dCxTLHAscyxBLG0sdixyLHUpfDApIT0wKXtMPVM7TT1JO049SjticmVha31HPWNbQz4+Ml18MDtp
ZigoR3wwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10o
Qil8MDtsPVM7dz1CO2NvbnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1TO3c9Qjtjb250aW51ZX19
dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Vj13Pj4+MX1lbHNle1Y9Y1ttKzQ+PjJdfDB9ZG97aWYo
KFZ8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9Uz1jW3M+PjJdfDA7
Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1TfX13aGlsZSgwKTtzPWZGKEwsY1twPj4yXXwwLGosdCl8MDtj
W2s+PjJdPXM7Y1trKzQ+PjJdPUs7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihFKXtXPTB9ZWxz
ZXtyPWNbQisxMj4+Ml18MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1g9YjBbY1soY1tCPj4y
XXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7WD1jW3I+PjJdfDB9aWYoKFh8MCkhPS0xKXtXPUI7
YnJlYWt9Y1toPj4yXT0wO1c9MH19d2hpbGUoMCk7aD0oV3wwKT09MDtkb3tpZihOKXtGPTc3Mn1l
bHNle0I9Y1tNKzEyPj4yXXwwO2lmKChCfDApPT0oY1tNKzE2Pj4yXXwwKSl7WT1iMFtjWyhjW00+
PjJdfDApKzM2Pj4yXSYxMjddKE0pfDB9ZWxzZXtZPWNbQj4+Ml18MH1pZigoWXwwKT09LTEpe2Nb
Zj4+Ml09MDtGPTc3MjticmVha31pZighKGheKE18MCk9PTApKXticmVha31aPWJ8MDtjW1o+PjJd
PVc7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTc3Mil7aWYo
aCl7YnJlYWt9Wj1ifDA7Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Nbaj4+Ml09Y1tqPj4yXXwyO1o9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJu
fWZ1bmN0aW9uIGYwKGIsZSxmLGgsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2g9aHwwO2o9anww
O2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxL
PTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9
MCxaPTAsXz0wLCQ9MDtlPWk7aT1pKzE3NnwwO209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2Y+PjJdPWNbbT4+Ml07bT1oO2g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbaD4+Ml09Y1ttPj4y
XTttPWUrMTI4fDA7bj1lKzEzNnwwO289ZSsxNDR8MDtwPWUrMTYwfDA7cT1wO3I9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1p
Kzc+PjM8PDM7eD1lfDA7ZjEobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7
aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNb
eT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDth
W3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWh8MDtoPXB8MDtDPXArNHwwO0Q9Y1ttPj4yXXwwO209Y1tu
Pj4yXXwwO249ejt6PWNbaj4+Ml18MDtMOTc1OndoaWxlKDEpe2Rve2lmKCh6fDApPT0wKXtFPTB9
ZWxzZXtGPWNbeisxMj4+Ml18MDtpZigoRnwwKT09KGNbeisxNj4+Ml18MCkpe0c9YjBbY1soY1t6
Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Rz1jW0Y+PjJdfDB9aWYoKEd8MCkhPS0xKXtF
PXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7SD0oRXwwKT09MDtGPWNbZj4+Ml18MDtk
b3tpZigoRnwwKT09MCl7ST03OTZ9ZWxzZXtKPWNbRisxMj4+Ml18MDtpZigoSnwwKT09KGNbRisx
Nj4+Ml18MCkpe0s9YjBbY1soY1tGPj4yXXwwKSszNj4+Ml0mMTI3XShGKXwwfWVsc2V7Sz1jW0o+
PjJdfDB9aWYoKEt8MCk9PS0xKXtjW2Y+PjJdPTA7ST03OTY7YnJlYWt9ZWxzZXtKPShGfDApPT0w
O2lmKEheSil7TD1GO009SjticmVha31lbHNle049bjtPPUY7UD1KO2JyZWFrIEw5NzV9fX19d2hp
bGUoMCk7aWYoKEl8MCk9PTc5Nil7ST0wO2lmKEgpe049bjtPPTA7UD0xO2JyZWFrfWVsc2V7TD0w
O009MX19Rj1kW3FdfDA7Sj0oRiYxfDApPT0wO2lmKCgoY1tyPj4yXXwwKS1ufDApPT0oKEo/Rj4+
PjE6Y1tDPj4yXXwwKXwwKSl7aWYoSil7UT1GPj4+MTtSPUY+Pj4xfWVsc2V7Rj1jW0M+PjJdfDA7
UT1GO1I9Rn1kUihwLFE8PDEsMCk7aWYoKGFbcV0mMSk9PTApe1M9MTB9ZWxzZXtTPShjW2g+PjJd
Ji0yKS0xfDB9ZFIocCxTLDApO2lmKChhW3FdJjEpPT0wKXtUPUF9ZWxzZXtUPWNbQj4+Ml18MH1j
W3I+PjJdPVQrUjtVPVR9ZWxzZXtVPW59Rj1FKzEyfDA7Sj1jW0Y+PjJdfDA7Vj1FKzE2fDA7aWYo
KEp8MCk9PShjW1Y+PjJdfDApKXtXPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1l
bHNle1c9Y1tKPj4yXXwwfWlmKChmMihXLHYsdyxVLHIsRCxtLG8seSx0LHUseCl8MCkhPTApe049
VTtPPUw7UD1NO2JyZWFrfUo9Y1tGPj4yXXwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vj1jWyhj
W0U+PjJdfDApKzQwPj4yXXwwO2IwW1YmMTI3XShFKXwwO249VTt6PUU7Y29udGludWV9ZWxzZXtj
W0Y+PjJdPUorNDtuPVU7ej1FO2NvbnRpbnVlfX16PWRbb118MDtpZigoeiYxfDApPT0wKXtYPXo+
Pj4xfWVsc2V7WD1jW28rND4+Ml18MH1kb3tpZigoWHwwKSE9MCl7aWYoKGFbdl0mMSk9PTApe2Jy
ZWFrfXo9Y1t0Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7YnJlYWt9VT1jW3U+PjJdfDA7Y1t0Pj4y
XT16KzQ7Y1t6Pj4yXT1VfX13aGlsZSgwKTtnW2w+PjJdPStmSShOLGNbcj4+Ml18MCxrKTtmdChv
LHksY1t0Pj4yXXwwLGspO2Rve2lmKEgpe1k9MH1lbHNle3Q9Y1tFKzEyPj4yXXwwO2lmKCh0fDAp
PT0oY1tFKzE2Pj4yXXwwKSl7Wj1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDB9ZWxz
ZXtaPWNbdD4+Ml18MH1pZigoWnwwKSE9LTEpe1k9RTticmVha31jW2o+PjJdPTA7WT0wfX13aGls
ZSgwKTtqPShZfDApPT0wO2Rve2lmKFApe0k9ODM5fWVsc2V7RT1jW08rMTI+PjJdfDA7aWYoKEV8
MCk9PShjW08rMTY+PjJdfDApKXtfPWIwW2NbKGNbTz4+Ml18MCkrMzY+PjJdJjEyN10oTyl8MH1l
bHNle189Y1tFPj4yXXwwfWlmKChffDApPT0tMSl7Y1tmPj4yXT0wO0k9ODM5O2JyZWFrfWlmKCEo
al4oT3wwKT09MCkpe2JyZWFrfSQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJu
fX13aGlsZSgwKTtkb3tpZigoSXwwKT09ODM5KXtpZihqKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7
ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7JD1ifDA7
Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZjEoYSxiLGQsZSxmKXth
PWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MDtnPWk7aT1pKzQwfDA7aD1nfDA7aj1nKzE2fDA7az1nKzMyfDA7
ZWooayxiKTtiPWt8MDtrPWNbYj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2Nbaj4+Ml09MTU2
ODg7Y1tqKzQ+PjJdPTEyO2Nbais4Pj4yXT0wO2RXKDE1Njg4LGosOTYpfWo9KGNbMzkyM118MCkt
MXwwO2w9Y1trKzg+PjJdfDA7ZG97aWYoKGNbaysxMj4+Ml18MCktbD4+Mj4+PjA+aj4+PjApe209
Y1tsKyhqPDwyKT4+Ml18MDtpZigobXwwKT09MCl7YnJlYWt9bj1tO289Y1soY1ttPj4yXXwwKSs0
OD4+Ml18MDtjYVtvJjE1XShuLDk3NDQsOTc3NixkKXwwO249Y1tiPj4yXXwwO2lmKChjWzM4MjZd
fDApIT0tMSl7Y1toPj4yXT0xNTMwNDtjW2grND4+Ml09MTI7Y1toKzg+PjJdPTA7ZFcoMTUzMDQs
aCw5Nil9bz0oY1szODI3XXwwKS0xfDA7bT1jW24rOD4+Ml18MDtkb3tpZigoY1tuKzEyPj4yXXww
KS1tPj4yPj4+MD5vPj4+MCl7cD1jW20rKG88PDIpPj4yXXwwO2lmKChwfDApPT0wKXticmVha31x
PXA7cj1wO2NbZT4+Ml09YjBbY1soY1tyPj4yXXwwKSsxMj4+Ml0mMTI3XShxKXwwO2NbZj4+Ml09
YjBbY1soY1tyPj4yXXwwKSsxNj4+Ml0mMTI3XShxKXwwO2JaW2NbKGNbcD4+Ml18MCkrMjA+PjJd
JjEyN10oYSxxKTtxPWNbYj4+Ml18MDtkeihxKXwwO2k9ZztyZXR1cm59fXdoaWxlKDApO289Yk8o
NCl8MDtrcShvKTtibChvfDAsODE3NiwxMzQpfX13aGlsZSgwKTtnPWJPKDQpfDA7a3EoZyk7Ymwo
Z3wwLDgxNzYsMTM0KX1mdW5jdGlvbiBmMihiLGUsZixnLGgsaSxqLGssbCxtLG4sbyl7Yj1ifDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7bj1u
fDA7bz1vfDA7dmFyIHA9MCxxPTAscj0wLHM9MCx0PTA7aWYoKGJ8MCk9PShpfDApKXtpZigoYVtl
XSYxKT09MCl7cD0tMTtyZXR1cm4gcHwwfWFbZV09MDtpPWNbaD4+Ml18MDtjW2g+PjJdPWkrMTth
W2ldPTQ2O2k9ZFtrXXwwO2lmKChpJjF8MCk9PTApe3E9aT4+PjF9ZWxzZXtxPWNbays0Pj4yXXww
fWlmKChxfDApPT0wKXtwPTA7cmV0dXJuIHB8MH1xPWNbbT4+Ml18MDtpZigocS1sfDApPj0xNjAp
e3A9MDtyZXR1cm4gcHwwfWk9Y1tuPj4yXXwwO2NbbT4+Ml09cSs0O2NbcT4+Ml09aTtwPTA7cmV0
dXJuIHB8MH1kb3tpZigoYnwwKT09KGp8MCkpe2k9ZFtrXXwwO2lmKChpJjF8MCk9PTApe3I9aT4+
PjF9ZWxzZXtyPWNbays0Pj4yXXwwfWlmKChyfDApPT0wKXticmVha31pZigoYVtlXSYxKT09MCl7
cD0tMTtyZXR1cm4gcHwwfWk9Y1ttPj4yXXwwO2lmKChpLWx8MCk+PTE2MCl7cD0wO3JldHVybiBw
fDB9cT1jW24+PjJdfDA7Y1ttPj4yXT1pKzQ7Y1tpPj4yXT1xO2Nbbj4+Ml09MDtwPTA7cmV0dXJu
IHB8MH19d2hpbGUoMCk7cj1vKzEyOHwwO2o9bzt3aGlsZSgxKXtpZigoanwwKT09KHJ8MCkpe3M9
cjticmVha31pZigoY1tqPj4yXXwwKT09KGJ8MCkpe3M9ajticmVha31lbHNle2o9ais0fDB9fWo9
cy1vfDA7bz1qPj4yO2lmKChqfDApPjEyNCl7cD0tMTtyZXR1cm4gcHwwfXM9YVs5NzQ0K298MF18
MDtMMTExNTpkb3tzd2l0Y2gob3wwKXtjYXNlIDI1OmNhc2UgMjQ6e2I9Y1toPj4yXXwwO2Rve2lm
KChifDApIT0oZ3wwKSl7aWYoKGFbYi0xfDBdJjk1fDApPT0oYVtmXSYxMjd8MCkpe2JyZWFrfWVs
c2V7cD0tMX1yZXR1cm4gcHwwfX13aGlsZSgwKTtjW2g+PjJdPWIrMTthW2JdPXM7cD0wO3JldHVy
biBwfDB9O2Nhc2UgMjI6Y2FzZSAyMzp7YVtmXT04MDticmVha307ZGVmYXVsdDp7cj1hW2ZdfDA7
aWYoKHMmOTV8MCkhPShyPDwyND4+MjR8MCkpe2JyZWFrIEwxMTE1fWFbZl09cnwtMTI4O2lmKChh
W2VdJjEpPT0wKXticmVhayBMMTExNX1hW2VdPTA7cj1kW2tdfDA7aWYoKHImMXwwKT09MCl7dD1y
Pj4+MX1lbHNle3Q9Y1trKzQ+PjJdfDB9aWYoKHR8MCk9PTApe2JyZWFrIEwxMTE1fXI9Y1ttPj4y
XXwwO2lmKChyLWx8MCk+PTE2MCl7YnJlYWsgTDExMTV9cT1jW24+PjJdfDA7Y1ttPj4yXT1yKzQ7
Y1tyPj4yXT1xfX19d2hpbGUoMCk7bT1jW2g+PjJdfDA7Y1toPj4yXT1tKzE7YVttXT1zO2lmKChq
fDApPjg0KXtwPTA7cmV0dXJuIHB8MH1jW24+PjJdPShjW24+PjJdfDApKzE7cD0wO3JldHVybiBw
fDB9ZnVuY3Rpb24gZjMoYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1q
fDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAs
WT0wLFo9MCxfPTAsJD0wO2U9aTtpPWkrMTc2fDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZj4+Ml09Y1ttPj4yXTttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+
PjJdO209ZSsxMjh8MDtuPWUrMTM2fDA7bz1lKzE0NHwwO3A9ZSsxNjB8MDtxPXA7cj1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7cz1pO2k9aSsxNjB8MDt0PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt1PWk7
aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PWk7aT1pKzF8MDtpPWkrNz4+Mzw8Mzt3PWk7aT1pKzF8MDtp
PWkrNz4+Mzw8Mzt4PWV8MDtmMShvLGoseCxtLG4pO2skKHF8MCwwLDEyKTtqPXA7ZFIocCwxMCww
KTtpZigoYVtxXSYxKT09MCl7eT1qKzF8MDt6PXk7QT15O0I9cCs4fDB9ZWxzZXt5PXArOHwwO3o9
Y1t5Pj4yXXwwO0E9aisxfDA7Qj15fWNbcj4+Ml09ejt5PXN8MDtjW3Q+PjJdPXk7Y1t1Pj4yXT0w
O2Fbdl09MTthW3ddPTY5O2o9ZnwwO2Y9Z3wwO2c9cHwwO0M9cCs0fDA7RD1jW20+PjJdfDA7bT1j
W24+PjJdfDA7bj16O3o9Y1tqPj4yXXwwO0wxMTQzOndoaWxlKDEpe2Rve2lmKCh6fDApPT0wKXtF
PTB9ZWxzZXtGPWNbeisxMj4+Ml18MDtpZigoRnwwKT09KGNbeisxNj4+Ml18MCkpe0c9YjBbY1so
Y1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Rz1jW0Y+PjJdfDB9aWYoKEd8MCkhPS0x
KXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7SD0oRXwwKT09MDtGPWNbZj4+Ml18
MDtkb3tpZigoRnwwKT09MCl7ST05Mjl9ZWxzZXtKPWNbRisxMj4+Ml18MDtpZigoSnwwKT09KGNb
RisxNj4+Ml18MCkpe0s9YjBbY1soY1tGPj4yXXwwKSszNj4+Ml0mMTI3XShGKXwwfWVsc2V7Sz1j
W0o+PjJdfDB9aWYoKEt8MCk9PS0xKXtjW2Y+PjJdPTA7ST05Mjk7YnJlYWt9ZWxzZXtKPShGfDAp
PT0wO2lmKEheSil7TD1GO009SjticmVha31lbHNle049bjtPPUY7UD1KO2JyZWFrIEwxMTQzfX19
fXdoaWxlKDApO2lmKChJfDApPT05Mjkpe0k9MDtpZihIKXtOPW47Tz0wO1A9MTticmVha31lbHNl
e0w9MDtNPTF9fUY9ZFtxXXwwO0o9KEYmMXwwKT09MDtpZigoKGNbcj4+Ml18MCktbnwwKT09KChK
P0Y+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKEope1E9Rj4+PjE7Uj1GPj4+MX1lbHNle0Y9Y1tDPj4y
XXwwO1E9RjtSPUZ9ZFIocCxRPDwxLDApO2lmKChhW3FdJjEpPT0wKXtTPTEwfWVsc2V7Uz0oY1tn
Pj4yXSYtMiktMXwwfWRSKHAsUywwKTtpZigoYVtxXSYxKT09MCl7VD1BfWVsc2V7VD1jW0I+PjJd
fDB9Y1tyPj4yXT1UK1I7VT1UfWVsc2V7VT1ufUY9RSsxMnwwO0o9Y1tGPj4yXXwwO1Y9RSsxNnww
O2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vz1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUp
fDB9ZWxzZXtXPWNbSj4+Ml18MH1pZigoZjIoVyx2LHcsVSxyLEQsbSxvLHksdCx1LHgpfDApIT0w
KXtOPVU7Tz1MO1A9TTticmVha31KPWNbRj4+Ml18MDtpZigoSnwwKT09KGNbVj4+Ml18MCkpe1Y9
Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtWJjEyN10oRSl8MDtuPVU7ej1FO2NvbnRpbnVlfWVs
c2V7Y1tGPj4yXT1KKzQ7bj1VO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7
WD16Pj4+MX1lbHNle1g9Y1tvKzQ+PjJdfDB9ZG97aWYoKFh8MCkhPTApe2lmKChhW3ZdJjEpPT0w
KXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVU9Y1t1Pj4yXXwwO2Nb
dD4+Ml09eis0O2Nbej4+Ml09VX19d2hpbGUoMCk7aFtsPj4zXT0rZkwoTixjW3I+PjJdfDAsayk7
ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihIKXtZPTB9ZWxzZXt0PWNbRSsxMj4+Ml18MDtpZigo
dHwwKT09KGNbRSsxNj4+Ml18MCkpe1o9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXww
fWVsc2V7Wj1jW3Q+PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUU7YnJlYWt9Y1tqPj4yXT0wO1k9MH19
d2hpbGUoMCk7aj0oWXwwKT09MDtkb3tpZihQKXtJPTk3Mn1lbHNle0U9Y1tPKzEyPj4yXXwwO2lm
KChFfDApPT0oY1tPKzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW08+PjJdfDApKzM2Pj4yXSYxMjddKE8p
fDB9ZWxzZXtfPWNbRT4+Ml18MH1pZigoX3wwKT09LTEpe2NbZj4+Ml09MDtJPTk3MjticmVha31p
ZighKGpeKE98MCk9PTApKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3Jl
dHVybn19d2hpbGUoMCk7ZG97aWYoKEl8MCk9PTk3Mil7aWYoail7YnJlYWt9JD1ifDA7Y1skPj4y
XT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwyOyQ9
YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGY0KGIsZSxmLGcs
aixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxC
PTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9
MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MDtlPWk7aT1p
KzE3NnwwO209ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1nO2c9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1ttPj4yXTttPWUrMTI4fDA7bj1lKzEzNnww
O289ZSsxNDR8MDtwPWUrMTYwfDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkr
MTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1p
O2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZjEobyxq
LHgsbSxuKTtrJChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisx
fDA7ej15O0E9eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1j
W3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtm
PWd8MDtnPXB8MDtDPXArNHwwO0Q9Y1ttPj4yXXwwO209Y1tuPj4yXXwwO249ejt6PWNbaj4+Ml18
MDtMMTIyODp3aGlsZSgxKXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7Rj1jW3orMTI+PjJdfDA7
aWYoKEZ8MCk9PShjW3orMTY+PjJdfDApKXtHPWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10o
eil8MH1lbHNle0c9Y1tGPj4yXXwwfWlmKChHfDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtF
PTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7Rj1jW2Y+PjJdfDA7ZG97aWYoKEZ8MCk9PTApe0k9OTk2
fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYoKEp8MCk9PShjW0YrMTY+PjJdfDApKXtLPWIwW2NbKGNb
Rj4+Ml18MCkrMzY+PjJdJjEyN10oRil8MH1lbHNle0s9Y1tKPj4yXXwwfWlmKChLfDApPT0tMSl7
Y1tmPj4yXT0wO0k9OTk2O2JyZWFrfWVsc2V7Sj0oRnwwKT09MDtpZihIXkope0w9RjtNPUo7YnJl
YWt9ZWxzZXtOPW47Tz1GO1A9SjticmVhayBMMTIyOH19fX13aGlsZSgwKTtpZigoSXwwKT09OTk2
KXtJPTA7aWYoSCl7Tj1uO089MDtQPTE7YnJlYWt9ZWxzZXtMPTA7TT0xfX1GPWRbcV18MDtKPShG
JjF8MCk9PTA7aWYoKChjW3I+PjJdfDApLW58MCk9PSgoSj9GPj4+MTpjW0M+PjJdfDApfDApKXtp
ZihKKXtRPUY+Pj4xO1I9Rj4+PjF9ZWxzZXtGPWNbQz4+Ml18MDtRPUY7Uj1GfWRSKHAsUTw8MSww
KTtpZigoYVtxXSYxKT09MCl7Uz0xMH1lbHNle1M9KGNbZz4+Ml0mLTIpLTF8MH1kUihwLFMsMCk7
aWYoKGFbcV0mMSk9PTApe1Q9QX1lbHNle1Q9Y1tCPj4yXXwwfWNbcj4+Ml09VCtSO1U9VH1lbHNl
e1U9bn1GPUUrMTJ8MDtKPWNbRj4+Ml18MDtWPUUrMTZ8MDtpZigoSnwwKT09KGNbVj4+Ml18MCkp
e1c9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwfWVsc2V7Vz1jW0o+PjJdfDB9aWYo
KGYyKFcsdix3LFUscixELG0sbyx5LHQsdSx4KXwwKSE9MCl7Tj1VO089TDtQPU07YnJlYWt9Sj1j
W0Y+PjJdfDA7aWYoKEp8MCk9PShjW1Y+PjJdfDApKXtWPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7
YjBbViYxMjddKEUpfDA7bj1VO3o9RTtjb250aW51ZX1lbHNle2NbRj4+Ml09Sis0O249VTt6PUU7
Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6JjF8MCk9PTApe1g9ej4+PjF9ZWxzZXtYPWNbbys0Pj4y
XXwwfWRve2lmKChYfDApIT0wKXtpZigoYVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYo
KHotc3wwKT49MTYwKXticmVha31VPWNbdT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVV9fXdo
aWxlKDApO2hbbD4+M109K2ZOKE4sY1tyPj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97
aWYoSCl7WT0wfWVsc2V7dD1jW0UrMTI+PjJdfDA7aWYoKHR8MCk9PShjW0UrMTY+PjJdfDApKXta
PWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1lbHNle1o9Y1t0Pj4yXXwwfWlmKCha
fDApIT0tMSl7WT1FO2JyZWFrfWNbaj4+Ml09MDtZPTB9fXdoaWxlKDApO2o9KFl8MCk9PTA7ZG97
aWYoUCl7ST0xMDM5fWVsc2V7RT1jW08rMTI+PjJdfDA7aWYoKEV8MCk9PShjW08rMTY+PjJdfDAp
KXtfPWIwW2NbKGNbTz4+Ml18MCkrMzY+PjJdJjEyN10oTyl8MH1lbHNle189Y1tFPj4yXXwwfWlm
KChffDApPT0tMSl7Y1tmPj4yXT0wO0k9MTAzOTticmVha31pZighKGpeKE98MCk9PTApKXticmVh
a30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYo
KEl8MCk9PTEwMzkpe2lmKGope2JyZWFrfSQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7
cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjskPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7
ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmNShhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVy
bn1mdW5jdGlvbiBmNihhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBmNyhiLGUsZixn
LGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxP
PTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MDtlPWk7aT1pKzEz
NnwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWV8MDttPWUrMTZ8MDtuPWUrMTIw
fDA7bz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3E9aTtp
PWkrNHwwO2k9aSs3Pj4zPDwzO3I9aTtpPWkrMTYwfDA7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ayQobnwwLDAsMTIpO3U9cDtlaihvLGgpO2g9b3wwO289
Y1toPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7
Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7dj1jW28rOD4+Ml18
MDtkb3tpZigoY1tvKzEyPj4yXXwwKS12Pj4yPj4+MD5sPj4+MCl7dz1jW3YrKGw8PDIpPj4yXXww
O2lmKCh3fDApPT0wKXticmVha314PXc7eT1tfDA7ej1jWyhjW3c+PjJdfDApKzQ4Pj4yXXwwO2Nh
W3omMTVdKHgsOTc0NCw5NzcwLHkpfDA7eD1jW2g+PjJdfDA7ZHooeCl8MDtrJCh1fDAsMCwxMik7
eD1wO2RSKHAsMTAsMCk7aWYoKGFbdV0mMSk9PTApe3o9eCsxfDA7QT16O0I9ejtDPXArOHwwfWVs
c2V7ej1wKzh8MDtBPWNbej4+Ml18MDtCPXgrMXwwO0M9en1jW3E+PjJdPUE7ej1yfDA7Y1tzPj4y
XT16O2NbdD4+Ml09MDt4PWZ8MDt3PWd8MDtEPXB8MDtFPXArNHwwO0Y9QTtHPWNbeD4+Ml18MDtM
MTMyMzp3aGlsZSgxKXtkb3tpZigoR3wwKT09MCl7SD0wfWVsc2V7ST1jW0crMTI+PjJdfDA7aWYo
KEl8MCk9PShjW0crMTY+PjJdfDApKXtKPWIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8
MH1lbHNle0o9Y1tJPj4yXXwwfWlmKChKfDApIT0tMSl7SD1HO2JyZWFrfWNbeD4+Ml09MDtIPTB9
fXdoaWxlKDApO0k9KEh8MCk9PTA7Sz1jW3c+PjJdfDA7ZG97aWYoKEt8MCk9PTApe0w9MTA3M31l
bHNle009Y1tLKzEyPj4yXXwwO2lmKChNfDApPT0oY1tLKzE2Pj4yXXwwKSl7Tj1iMFtjWyhjW0s+
PjJdfDApKzM2Pj4yXSYxMjddKEspfDB9ZWxzZXtOPWNbTT4+Ml18MH1pZigoTnwwKT09LTEpe2Nb
dz4+Ml09MDtMPTEwNzM7YnJlYWt9ZWxzZXtpZihJXihLfDApPT0wKXticmVha31lbHNle089Rjti
cmVhayBMMTMyM319fX13aGlsZSgwKTtpZigoTHwwKT09MTA3Myl7TD0wO2lmKEkpe089RjticmVh
a319Sz1kW3VdfDA7TT0oSyYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1GfDApPT0oKE0/Sz4+PjE6
Y1tFPj4yXXwwKXwwKSl7aWYoTSl7UD1LPj4+MTtRPUs+Pj4xfWVsc2V7Sz1jW0U+PjJdfDA7UD1L
O1E9S31kUihwLFA8PDEsMCk7aWYoKGFbdV0mMSk9PTApe1I9MTB9ZWxzZXtSPShjW0Q+PjJdJi0y
KS0xfDB9ZFIocCxSLDApO2lmKChhW3VdJjEpPT0wKXtTPUJ9ZWxzZXtTPWNbQz4+Ml18MH1jW3E+
PjJdPVMrUTtUPVN9ZWxzZXtUPUZ9Sz1IKzEyfDA7TT1jW0s+PjJdfDA7VT1IKzE2fDA7aWYoKE18
MCk9PShjW1U+PjJdfDApKXtWPWIwW2NbKGNbSD4+Ml18MCkrMzY+PjJdJjEyN10oSCl8MH1lbHNl
e1Y9Y1tNPj4yXXwwfWlmKChmVShWLDE2LFQscSx0LDAsbix6LHMseSl8MCkhPTApe089VDticmVh
a31NPWNbSz4+Ml18MDtpZigoTXwwKT09KGNbVT4+Ml18MCkpe1U9Y1soY1tIPj4yXXwwKSs0MD4+
Ml18MDtiMFtVJjEyN10oSCl8MDtGPVQ7Rz1IO2NvbnRpbnVlfWVsc2V7Y1tLPj4yXT1NKzQ7Rj1U
O0c9SDtjb250aW51ZX19YVtPKzN8MF09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygx
NjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO0c9ZlIo
TyxjWzI5NThdfDAsMTMyMCwoRj1pLGk9aSs4fDAsY1tGPj4yXT1rLEYpfDApfDA7aT1GO2lmKChH
fDApIT0xKXtjW2o+PjJdPTR9Rz1jW3g+PjJdfDA7ZG97aWYoKEd8MCk9PTApe1c9MH1lbHNle0Y9
Y1tHKzEyPj4yXXwwO2lmKChGfDApPT0oY1tHKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0c+PjJdfDAp
KzM2Pj4yXSYxMjddKEcpfDB9ZWxzZXtYPWNbRj4+Ml18MH1pZigoWHwwKSE9LTEpe1c9RzticmVh
a31jW3g+PjJdPTA7Vz0wfX13aGlsZSgwKTt4PShXfDApPT0wO0c9Y1t3Pj4yXXwwO2Rve2lmKChH
fDApPT0wKXtMPTExMTh9ZWxzZXtGPWNbRysxMj4+Ml18MDtpZigoRnwwKT09KGNbRysxNj4+Ml18
MCkpe1k9YjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwfWVsc2V7WT1jW0Y+PjJdfDB9
aWYoKFl8MCk9PS0xKXtjW3c+PjJdPTA7TD0xMTE4O2JyZWFrfWlmKCEoeF4oR3wwKT09MCkpe2Jy
ZWFrfVo9YnwwO2NbWj4+Ml09VztkUChwKTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tp
ZigoTHwwKT09MTExOCl7aWYoeCl7YnJlYWt9Wj1ifDA7Y1taPj4yXT1XO2RQKHApO2RQKG4pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwyO1o9YnwwO2NbWj4+Ml09VztkUChw
KTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYs
MTM0KX1mdW5jdGlvbiBmOChiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrODB8MDtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tlPj4yXT1jW2o+PjJdO2o9ZHwwO2s9ZCs4fDA7bD1kKzI0fDA7bT1kKzQ4fDA7bj1kKzU2fDA7
bz1kKzY0fDA7cD1kKzcyfDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8MF09YVsyMzg1fDBd
fDA7YVtxKzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7YVtxKzR8MF09YVsy
Mzg4fDBdfDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXww
O2lmKCh0JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1pZigodCY1MTJ8MCk9
PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXwwO0wxNDEwOmRve3N3
aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0
fDApPT0wKXthW3VdPTEyMDticmVhayBMMTQxMH1lbHNle2FbdV09ODg7YnJlYWsgTDE0MTB9YnJl
YWt9O2RlZmF1bHQ6e2FbdV09MTAwfX19d2hpbGUoMCk7dT1rfDA7ZG97aWYoKGFbMTYyNjRdfDAp
PT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13
aGlsZSgwKTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNbcT4+Ml09aCxxKXww
KXwwO2k9cTtxPWsrdHwwO0wxNDIzOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDMyOnt3
PXE7YnJlYWt9O2Nhc2UgMTY6e2g9YVt1XXwwO3N3aXRjaChoPDwyND4+MjQpe2Nhc2UgNDU6Y2Fz
ZSA0Mzp7dz1rKzF8MDticmVhayBMMTQyMzticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEm
aDw8MjQ+PjI0PT00OCkpe3g9MTE0NzticmVhayBMMTQyM31zd2l0Y2goYVtrKzF8MF18MCl7Y2Fz
ZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTE0NzticmVhayBMMTQyM319dz1rKzJ8
MDticmVha307ZGVmYXVsdDp7eD0xMTQ3fX19d2hpbGUoMCk7aWYoKHh8MCk9PTExNDcpe3c9dX14
PWx8MDtlaihvLGYpO2djKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8MDtjW3A+PjJdPWNb
ZT4+Ml07ZjkoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rp
b24gZjkoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7az1pO2k9aSsxNnwwO2w9
ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbbD4+Ml07bD1rfDA7bT1kfDA7ZD1j
W20+PjJdfDA7aWYoKGR8MCk9PTApe2NbYj4+Ml09MDtpPWs7cmV0dXJufW49ZztnPWU7bz1uLWd8
MDtwPWgrMTJ8MDtoPWNbcD4+Ml18MDtxPShofDApPihvfDApP2gtb3wwOjA7bz1mO2g9by1nfDA7
ZG97aWYoKGh8MCk+MCl7aWYoKGIxW2NbKGNbZD4+Ml18MCkrNDg+PjJdJjYzXShkLGUsaCl8MCk9
PShofDApKXticmVha31jW20+PjJdPTA7Y1tiPj4yXT0wO2k9aztyZXR1cm59fXdoaWxlKDApO2Rv
e2lmKChxfDApPjApe2RfKGwscSxqKTtpZigoYVtsXSYxKT09MCl7cj1sKzF8MH1lbHNle3I9Y1ts
Kzg+PjJdfDB9aWYoKGIxW2NbKGNbZD4+Ml18MCkrNDg+PjJdJjYzXShkLHIscSl8MCk9PShxfDAp
KXtkUChsKTticmVha31jW20+PjJdPTA7Y1tiPj4yXT0wO2RQKGwpO2k9aztyZXR1cm59fXdoaWxl
KDApO2w9bi1vfDA7ZG97aWYoKGx8MCk+MCl7aWYoKGIxW2NbKGNbZD4+Ml18MCkrNDg+PjJdJjYz
XShkLGYsbCl8MCk9PShsfDApKXticmVha31jW20+PjJdPTA7Y1tiPj4yXT0wO2k9aztyZXR1cm59
fXdoaWxlKDApO2NbcD4+Ml09MDtjW2I+PjJdPWQ7aT1rO3JldHVybn1mdW5jdGlvbiBnYShiLGQs
ZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MDtq
PWk7aT1pKzQ4fDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtr
PWp8MDtsPWorMTZ8MDttPWorMjR8MDtuPWorMzJ8MDtpZigoY1tmKzQ+PjJdJjF8MCk9PTApe289
Y1soY1tkPj4yXXwwKSsyND4+Ml18MDtjW2w+PjJdPWNbZT4+Ml07YjlbbyYzMV0oYixkLGwsZixn
LGgmMSk7aT1qO3JldHVybn1laihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM4MjhdfDAp
IT0tMSl7Y1trPj4yXT0xNTMxMjtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTUzMTIsayw5
Nil9az0oY1szODI5XXwwKS0xfDA7Zz1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1n
Pj4yPj4+MD5rPj4+MCl7bD1jW2crKGs8PDIpPj4yXXwwO2lmKChsfDApPT0wKXticmVha31kPWw7
bz1jW2Y+PjJdfDA7ZHoobyl8MDtvPWNbbD4+Ml18MDtpZihoKXtiWltjW28rMjQ+PjJdJjEyN10o
bixkKX1lbHNle2JaW2NbbysyOD4+Ml0mMTI3XShuLGQpfWQ9bjtvPW47bD1hW29dfDA7aWYoKGwm
MSk9PTApe3A9ZCsxfDA7cT1wO3I9cDtzPW4rOHwwfWVsc2V7cD1uKzh8MDtxPWNbcD4+Ml18MDty
PWQrMXwwO3M9cH1wPWV8MDtkPW4rNHwwO3Q9cTt1PWw7d2hpbGUoMSl7aWYoKHUmMSk9PTApe3Y9
cn1lbHNle3Y9Y1tzPj4yXXwwfWw9dSYyNTU7aWYoKHR8MCk9PSh2KygobCYxfDApPT0wP2w+Pj4x
OmNbZD4+Ml18MCl8MCkpe2JyZWFrfWw9YVt0XXwwO3c9Y1twPj4yXXwwO2Rve2lmKCh3fDApIT0w
KXt4PXcrMjR8MDt5PWNbeD4+Ml18MDtpZigoeXwwKSE9KGNbdysyOD4+Ml18MCkpe2NbeD4+Ml09
eSsxO2FbeV09bDticmVha31pZigoYl9bY1soY1t3Pj4yXXwwKSs1Mj4+Ml0mMzFdKHcsbCYyNTUp
fDApIT0tMSl7YnJlYWt9Y1twPj4yXT0wfX13aGlsZSgwKTt0PXQrMXwwO3U9YVtvXXwwfWNbYj4+
Ml09Y1twPj4yXTtkUChuKTtpPWo7cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7Ymwo
anwwLDgxNzYsMTM0KX1mdW5jdGlvbiBnYihhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MDtnPWk7aT1pKzE2fDA7aD1nfDA7aj1oO2Nbaj4+Ml09
ZjtjW2orND4+Ml09MDtqPWJCKGR8MCl8MDtkPWJDKGF8MCxifDAsZXwwLGh8MCl8MDtpZigoanww
KT09MCl7aT1nO3JldHVybiBkfDB9YkIoanwwKXwwO2k9ZztyZXR1cm4gZHwwfWZ1bmN0aW9uIGdj
KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3ww
O3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MDts
PWk7aT1pKzQ4fDA7bT1sfDA7bj1sKzE2fDA7bz1sKzMyfDA7cD1rfDA7az1jW3A+PjJdfDA7aWYo
KGNbMzkyNF18MCkhPS0xKXtjW24+PjJdPTE1Njk2O2Nbbis0Pj4yXT0xMjtjW24rOD4+Ml09MDtk
VygxNTY5NixuLDk2KX1uPShjWzM5MjVdfDApLTF8MDtxPWNbays4Pj4yXXwwO2lmKChjW2srMTI+
PjJdfDApLXE+PjI+Pj4wPD1uPj4+MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3Niwx
MzQpfWs9Y1txKyhuPDwyKT4+Ml18MDtpZigoa3wwKT09MCl7cj1iTyg0KXwwO3M9cjtrcShzKTti
bChyfDAsODE3NiwxMzQpfXI9aztzPWNbcD4+Ml18MDtpZigoY1szODI4XXwwKSE9LTEpe2NbbT4+
Ml09MTUzMTI7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1MzEyLG0sOTYpfW09KGNbMzgy
OV18MCktMXwwO3A9Y1tzKzg+PjJdfDA7aWYoKGNbcysxMj4+Ml18MCktcD4+Mj4+PjA8PW0+Pj4w
KXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9cz1jW3ArKG08PDIpPj4yXXww
O2lmKChzfDApPT0wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9dD1zO2Ja
W2NbKGNbcz4+Ml18MCkrMjA+PjJdJjEyN10obyx0KTt1PW87bT1vO3A9ZFttXXwwO2lmKChwJjF8
MCk9PTApe3Y9cD4+PjF9ZWxzZXt2PWNbbys0Pj4yXXwwfWRve2lmKCh2fDApPT0wKXtwPWNbKGNb
az4+Ml18MCkrMzI+PjJdfDA7Y2FbcCYxNV0ocixiLGYsZyl8MDtjW2o+PjJdPWcrKGYtYil9ZWxz
ZXtjW2o+PjJdPWc7cD1hW2JdfDA7c3dpdGNoKHA8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntu
PWJfW2NbKGNbaz4+Ml18MCkrMjg+PjJdJjMxXShyLHApfDA7cD1jW2o+PjJdfDA7Y1tqPj4yXT1w
KzE7YVtwXT1uO3c9YisxfDA7YnJlYWt9O2RlZmF1bHQ6e3c9Yn19TDE1MzM6ZG97aWYoKGYtd3ww
KT4xKXtpZigoYVt3XXwwKSE9NDgpe3g9dzticmVha31uPXcrMXwwO3N3aXRjaChhW25dfDApe2Nh
c2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PXc7YnJlYWsgTDE1MzN9fXA9aztxPWJf
W2NbKGNbcD4+Ml18MCkrMjg+PjJdJjMxXShyLDQ4KXwwO3k9Y1tqPj4yXXwwO2Nbaj4+Ml09eSsx
O2FbeV09cTtxPWJfW2NbKGNbcD4+Ml18MCkrMjg+PjJdJjMxXShyLGFbbl18MCl8MDtuPWNbaj4+
Ml18MDtjW2o+PjJdPW4rMTthW25dPXE7eD13KzJ8MH1lbHNle3g9d319d2hpbGUoMCk7ZG97aWYo
KHh8MCkhPShmfDApKXtxPWYtMXwwO2lmKHg+Pj4wPHE+Pj4wKXt6PXg7QT1xfWVsc2V7YnJlYWt9
ZG97cT1hW3pdfDA7YVt6XT1hW0FdfDA7YVtBXT1xO3o9eisxfDA7QT1BLTF8MDt9d2hpbGUoej4+
PjA8QT4+PjApfX13aGlsZSgwKTtxPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10odCl8MDtp
Zih4Pj4+MDxmPj4+MCl7bj11KzF8MDtwPWs7eT1vKzR8MDtCPW8rOHwwO0M9MDtEPTA7RT14O3do
aWxlKDEpe0Y9KGFbbV0mMSk9PTA7ZG97aWYoKGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCk9PTAp
e0c9RDtIPUN9ZWxzZXtpZigoQ3wwKSE9KGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCkpe0c9RDtI
PUM7YnJlYWt9ST1jW2o+PjJdfDA7Y1tqPj4yXT1JKzE7YVtJXT1xO0k9ZFttXXwwO0c9KEQ+Pj4w
PCgoKEkmMXwwKT09MD9JPj4+MTpjW3k+PjJdfDApLTF8MCk+Pj4wKStEfDA7SD0wfX13aGlsZSgw
KTtGPWJfW2NbKGNbcD4+Ml18MCkrMjg+PjJdJjMxXShyLGFbRV18MCl8MDtJPWNbaj4+Ml18MDtj
W2o+PjJdPUkrMTthW0ldPUY7Rj1FKzF8MDtpZihGPj4+MDxmPj4+MCl7Qz1IKzF8MDtEPUc7RT1G
fWVsc2V7YnJlYWt9fX1FPWcrKHgtYil8MDtEPWNbaj4+Ml18MDtpZigoRXwwKT09KER8MCkpe2Jy
ZWFrfUM9RC0xfDA7aWYoRT4+PjA8Qz4+PjApe0o9RTtLPUN9ZWxzZXticmVha31kb3tDPWFbSl18
MDthW0pdPWFbS118MDthW0tdPUM7Sj1KKzF8MDtLPUstMXwwO313aGlsZShKPj4+MDxLPj4+MCl9
fXdoaWxlKDApO2lmKChlfDApPT0oZnwwKSl7TD1jW2o+PjJdfDA7Y1toPj4yXT1MO2RQKG8pO2k9
bDtyZXR1cm59ZWxzZXtMPWcrKGUtYil8MDtjW2g+PjJdPUw7ZFAobyk7aT1sO3JldHVybn19ZnVu
Y3Rpb24gZ2QoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1o
fDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTA7ZD1pO2k9aSsxMTJ8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tl
Pj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7bj1kKzgwfDA7bz1kKzg4fDA7cD1k
Kzk2fDA7cT1kKzEwNHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7cj1rO2s9cisxfDA7cz1mKzR8
MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PWt9ZWxzZXthW2tdPTQzO3U9cisyfDB9
aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7YVt2KzF8
MF09MTA4O3U9disyfDA7TDE1NzQ6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA2NDp7YVt1XT0xMTE7
YnJlYWt9O2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwxNTc0fWVs
c2V7YVt1XT04ODticmVhayBMMTU3NH1icmVha307ZGVmYXVsdDp7YVt1XT0xMDB9fX13aGlsZSgw
KTt1PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFr
fWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwyMixjWzI5NThdfDAsciwo
cj1pLGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09aixyKXwwKXwwO2k9cjtyPWwrdHwwO0wx
NTg3OmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2OntqPWFbdV18MDtzd2l0Y2goajw8
MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9bCsxfDA7YnJlYWsgTDE1ODc7YnJlYWt9O2RlZmF1
bHQ6e319aWYoISgodHwwKT4xJmo8PDI0Pj4yND09NDgpKXt4PTEyODY7YnJlYWsgTDE1ODd9c3dp
dGNoKGFbbCsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTEyODY7
YnJlYWsgTDE1ODd9fXc9bCsyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9cjticmVha307ZGVmYXVsdDp7
eD0xMjg2fX19d2hpbGUoMCk7aWYoKHh8MCk9PTEyODYpe3c9dX14PW18MDtlaihwLGYpO2djKHUs
dyxyLHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+PjJdPWNbZT4+Ml07ZjkoYixxLHgsY1tu
Pj4yXXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2UoYixkLGUsZixnLGgp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzgwfDA7
aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWR8MDtrPWQrOHww
O2w9ZCsyNHwwO209ZCs0OHwwO249ZCs1NnwwO289ZCs2NHwwO3A9ZCs3MnwwO3E9anwwO2FbcV09
YVsyMzg0XXwwO2FbcSsxfDBdPWFbMjM4NXwwXXwwO2FbcSsyfDBdPWFbMjM4NnwwXXwwO2FbcSsz
fDBdPWFbMjM4N3wwXXwwO2FbcSs0fDBdPWFbMjM4OHwwXXwwO2FbcSs1fDBdPWFbMjM4OXwwXXww
O3I9aisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PXJ9ZWxzZXth
W3JdPTQzO3U9aisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9
YVt2XT0xMDg7dT12KzF8MDtMMTYwNTpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDY0OnthW3VdPTEx
MTticmVha307Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDE2MDV9
ZWxzZXthW3VdPTg4O2JyZWFrIEwxNjA1fWJyZWFrfTtkZWZhdWx0OnthW3VdPTExN319fXdoaWxl
KDApO3U9a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJl
YWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDEyLGNbMjk1OF18MCxx
LChxPWksaT1pKzh8MCxjW3E+PjJdPWgscSl8MCl8MDtpPXE7cT1rK3R8MDtMMTYxODpkb3tzd2l0
Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAzMjp7dz1xO2JyZWFrfTtjYXNlIDE2OntoPWFbdV18MDtz
d2l0Y2goaDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsgTDE2MTg7YnJl
YWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTEzMTE7YnJlYWsg
TDE2MTh9c3dpdGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0
Ont4PTEzMTE7YnJlYWsgTDE2MTh9fXc9aysyfDA7YnJlYWt9O2RlZmF1bHQ6e3g9MTMxMX19fXdo
aWxlKDApO2lmKCh4fDApPT0xMzExKXt3PXV9eD1sfDA7ZWoobyxmKTtnYyh1LHcscSx4LG0sbixv
KTtkeihjW28+PjJdfDApfDA7Y1twPj4yXT1jW2U+PjJdO2Y5KGIscCx4LGNbbT4+Ml18MCxjW24+
PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdmKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrMTEyfDA7az1lO2U9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCsz
MnwwO249ZCs4MHwwO289ZCs4OHwwO3A9ZCs5NnwwO3E9ZCsxMDR8MDtjW2s+PjJdPTM3O2Nbays0
Pj4yXT0wO3I9aztrPXIrMXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7
dT1rfWVsc2V7YVtrXT00Mzt1PXIrMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0z
NTt2PXUrMXwwfWFbdl09MTA4O2FbdisxfDBdPTEwODt1PXYrMnwwO0wxNjM2OmRve3N3aXRjaCh0
Jjc0fDApe2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwxNjM2fWVs
c2V7YVt1XT04ODticmVhayBMMTYzNn1icmVha307Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9O2Rl
ZmF1bHQ6e2FbdV09MTE3fX19d2hpbGUoMCk7dT1sfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTt0PWdiKHUsMjMsY1syOTU4XXwwLHIsKHI9aSxpPWkrMTZ8MCxjW3I+PjJdPWgsY1tyKzg+PjJd
PWoscil8MCl8MDtpPXI7cj1sK3R8MDtMMTY0OTpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2Fz
ZSAxNjp7aj1hW3VdfDA7c3dpdGNoKGo8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWwrMXww
O2JyZWFrIEwxNjQ5O2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZqPDwyND4+MjQ9PTQ4
KSl7eD0xMzM2O2JyZWFrIEwxNjQ5fXN3aXRjaChhW2wrMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4
OnticmVha307ZGVmYXVsdDp7eD0xMzM2O2JyZWFrIEwxNjQ5fX13PWwrMnwwO2JyZWFrfTtjYXNl
IDMyOnt3PXI7YnJlYWt9O2RlZmF1bHQ6e3g9MTMzNn19fXdoaWxlKDApO2lmKCh4fDApPT0xMzM2
KXt3PXV9eD1tfDA7ZWoocCxmKTtnYyh1LHcscix4LG4sbyxwKTtkeihjW3A+PjJdfDApfDA7Y1tx
Pj4yXT1jW2U+PjJdO2Y5KGIscSx4LGNbbj4+Ml18MCxjW28+PjJdfDAsZixnKTtpPWQ7cmV0dXJu
fWZ1bmN0aW9uIGdnKGIsZCxlLGYsZyxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtq
PStqO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2Q9
aTtpPWkrMTUyfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtr
PWR8MDtsPWQrOHwwO209ZCs0MHwwO249ZCs0OHwwO289ZCsxMTJ8MDtwPWQrMTIwfDA7cT1kKzEy
OHwwO3I9ZCsxMzZ8MDtzPWQrMTQ0fDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDt0PWs7az10KzF8
MDt1PWYrNHwwO3Y9Y1t1Pj4yXXwwO2lmKCh2JjIwNDh8MCk9PTApe3c9a31lbHNle2Fba109NDM7
dz10KzJ8MH1pZigodiYxMDI0fDApPT0wKXt4PXd9ZWxzZXthW3ddPTM1O3g9dysxfDB9dz12JjI2
MDtrPXY+Pj4xNDtMMTY2Nzpkb3tpZigod3wwKT09MjYwKXtpZigoayYxfDApPT0wKXthW3hdPTk3
O3k9MDticmVha31lbHNle2FbeF09NjU7eT0wO2JyZWFrfX1lbHNle2FbeF09NDY7dj14KzJ8MDth
W3grMXwwXT00Mjtzd2l0Y2god3wwKXtjYXNlIDQ6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAyO3k9
MTticmVhayBMMTY2N31lbHNle2Fbdl09NzA7eT0xO2JyZWFrIEwxNjY3fWJyZWFrfTtjYXNlIDI1
Njp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDE7eT0xO2JyZWFrIEwxNjY3fWVsc2V7YVt2XT02OTt5
PTE7YnJlYWsgTDE2Njd9YnJlYWt9O2RlZmF1bHQ6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAzO3k9
MTticmVhayBMMTY2N31lbHNle2Fbdl09NzE7eT0xO2JyZWFrIEwxNjY3fX19fX13aGlsZSgwKTtr
PWx8MDtjW20+PjJdPWs7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0w
KXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWNbMjk1OF18MDtpZih5
KXt3PWdiKGssMzAsbCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNd
PWoseil8MCl8MDtpPXo7QT13fWVsc2V7dz1nYihrLDMwLGwsdCwoej1pLGk9aSs4fDAsaFt6Pj4z
XT1qLHopfDApfDA7aT16O0E9d31kb3tpZigoQXwwKT4yOSl7dz0oYVsxNjI2NF18MCk9PTA7aWYo
eSl7ZG97aWYodyl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7bD1naChtLGNbMjk1OF18MCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1j
W2YrOD4+Ml0saFt6Kzg+PjNdPWoseil8MCl8MDtpPXo7Qj1sfWVsc2V7ZG97aWYodyl7aWYoKGJj
KDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dz1n
aChtLGNbMjk1OF18MCx0LCh6PWksaT1pKzE2fDAsY1t6Pj4yXT1jW2YrOD4+Ml0saFt6Kzg+PjNd
PWoseil8MCl8MDtpPXo7Qj13fXc9Y1ttPj4yXXwwO2lmKCh3fDApIT0wKXtDPUI7RD13O0U9dzti
cmVha31rWCgpO3c9Y1ttPj4yXXwwO0M9QjtEPXc7RT13fWVsc2V7Qz1BO0Q9MDtFPWNbbT4+Ml18
MH19d2hpbGUoMCk7QT1FK0N8MDtMMTcxNjpkb3tzd2l0Y2goY1t1Pj4yXSYxNzZ8MCl7Y2FzZSAx
Njp7Qj1hW0VdfDA7c3dpdGNoKEI8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntGPUUrMXwwO2Jy
ZWFrIEwxNzE2O2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKEN8MCk+MSZCPDwyND4+MjQ9PTQ4KSl7
Rz0xMzkyO2JyZWFrIEwxNzE2fXN3aXRjaChhW0UrMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4Onti
cmVha307ZGVmYXVsdDp7Rz0xMzkyO2JyZWFrIEwxNzE2fX1GPUUrMnwwO2JyZWFrfTtjYXNlIDMy
OntGPUE7YnJlYWt9O2RlZmF1bHQ6e0c9MTM5Mn19fXdoaWxlKDApO2lmKChHfDApPT0xMzkyKXtG
PUV9ZG97aWYoKEV8MCk9PShrfDApKXtIPW58MDtJPTA7Sj1rfWVsc2V7Rz1rSihDPDwxKXwwO2lm
KChHfDApIT0wKXtIPUc7ST1HO0o9RTticmVha31rWCgpO0g9MDtJPTA7Sj1jW20+PjJdfDB9fXdo
aWxlKDApO2VqKHEsZik7Z2ooSixGLEEsSCxvLHAscSk7ZHooY1txPj4yXXwwKXwwO3E9ZXwwO2Nb
cz4+Ml09Y1txPj4yXTtmOShyLHMsSCxjW28+PjJdfDAsY1twPj4yXXwwLGYsZyk7Zz1jW3I+PjJd
fDA7Y1txPj4yXT1nO2NbYj4+Ml09ZztpZigoSXwwKSE9MCl7a0soSSl9aWYoKER8MCk9PTApe2k9
ZDtyZXR1cm59a0soRCk7aT1kO3JldHVybn1mdW5jdGlvbiBnaChhLGIsZCxlKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7Zj1pO2k9aSsxNnwwO2c9ZnwwO2g9ZztjW2g+
PjJdPWU7Y1toKzQ+PjJdPTA7aD1iQihifDApfDA7Yj1iUShhfDAsZHwwLGd8MCl8MDtpZigoaHww
KT09MCl7aT1mO3JldHVybiBifDB9YkIoaHwwKXwwO2k9ZjtyZXR1cm4gYnwwfWZ1bmN0aW9uIGdp
KGIsZCxlLGYsZyxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPStqO3ZhciBrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2Q9aTtpPWkrMTUyfDA7
az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHww
O209ZCs0MHwwO249ZCs0OHwwO289ZCsxMTJ8MDtwPWQrMTIwfDA7cT1kKzEyOHwwO3I9ZCsxMzZ8
MDtzPWQrMTQ0fDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDt0PWs7az10KzF8MDt1PWYrNHwwO3Y9
Y1t1Pj4yXXwwO2lmKCh2JjIwNDh8MCk9PTApe3c9a31lbHNle2Fba109NDM7dz10KzJ8MH1pZigo
diYxMDI0fDApPT0wKXt4PXd9ZWxzZXthW3ddPTM1O3g9dysxfDB9dz12JjI2MDtrPXY+Pj4xNDtM
MTc1NDpkb3tpZigod3wwKT09MjYwKXthW3hdPTc2O3Y9eCsxfDA7aWYoKGsmMXwwKT09MCl7YVt2
XT05Nzt5PTA7YnJlYWt9ZWxzZXthW3ZdPTY1O3k9MDticmVha319ZWxzZXthW3hdPTQ2O2FbeCsx
fDBdPTQyO2FbeCsyfDBdPTc2O3Y9eCszfDA7c3dpdGNoKHd8MCl7Y2FzZSA0OntpZigoayYxfDAp
PT0wKXthW3ZdPTEwMjt5PTE7YnJlYWsgTDE3NTR9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMTc1
NH1icmVha307Y2FzZSAyNTY6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAxO3k9MTticmVhayBMMTc1
NH1lbHNle2Fbdl09Njk7eT0xO2JyZWFrIEwxNzU0fWJyZWFrfTtkZWZhdWx0OntpZigoayYxfDAp
PT0wKXthW3ZdPTEwMzt5PTE7YnJlYWsgTDE3NTR9ZWxzZXthW3ZdPTcxO3k9MTticmVhayBMMTc1
NH19fX19d2hpbGUoMCk7az1sfDA7Y1ttPj4yXT1rO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYo
KGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7
bD1jWzI5NThdfDA7aWYoeSl7dz1nYihrLDMwLGwsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tm
Kzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0E9d31lbHNle3c9Z2IoaywzMCxsLHQsKHo9
aSxpPWkrOHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtBPXd9ZG97aWYoKEF8MCk+Mjkpe3c9KGFb
MTYyNjRdfDApPT0wO2lmKHkpe2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNb
Mjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9
aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9bH1lbHNl
e2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDAp
fDB9fXdoaWxlKDApO3c9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSs4fDAsaFt6Pj4zXT1qLHop
fDApfDA7aT16O0I9d313PWNbbT4+Ml18MDtpZigod3wwKSE9MCl7Qz1CO0Q9dztFPXc7YnJlYWt9
a1goKTt3PWNbbT4+Ml18MDtDPUI7RD13O0U9d31lbHNle0M9QTtEPTA7RT1jW20+PjJdfDB9fXdo
aWxlKDApO0E9RStDfDA7TDE4MDM6ZG97c3dpdGNoKGNbdT4+Ml0mMTc2fDApe2Nhc2UgMzI6e0Y9
QTticmVha307Y2FzZSAxNjp7Qj1hW0VdfDA7c3dpdGNoKEI8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNl
IDQzOntGPUUrMXwwO2JyZWFrIEwxODAzO2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKEN8MCk+MSZC
PDwyND4+MjQ9PTQ4KSl7Rz0xNDc3O2JyZWFrIEwxODAzfXN3aXRjaChhW0UrMXwwXXwwKXtjYXNl
IDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7Rz0xNDc3O2JyZWFrIEwxODAzfX1GPUUrMnww
O2JyZWFrfTtkZWZhdWx0OntHPTE0Nzd9fX13aGlsZSgwKTtpZigoR3wwKT09MTQ3Nyl7Rj1FfWRv
e2lmKChFfDApPT0oa3wwKSl7SD1ufDA7ST0wO0o9a31lbHNle0c9a0ooQzw8MSl8MDtpZigoR3ww
KSE9MCl7SD1HO0k9RztKPUU7YnJlYWt9a1goKTtIPTA7ST0wO0o9Y1ttPj4yXXwwfX13aGlsZSgw
KTtlaihxLGYpO2dqKEosRixBLEgsbyxwLHEpO2R6KGNbcT4+Ml18MCl8MDtxPWV8MDtjW3M+PjJd
PWNbcT4+Ml07ZjkocixzLEgsY1tvPj4yXXwwLGNbcD4+Ml18MCxmLGcpO2c9Y1tyPj4yXXwwO2Nb
cT4+Ml09ZztjW2I+PjJdPWc7aWYoKEl8MCkhPTApe2tLKEkpfWlmKChEfDApPT0wKXtpPWQ7cmV0
dXJufWtLKEQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2ooYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxF
PTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTA7bD1pO2k9aSs0OHwwO209bHww
O249bCsxNnwwO289bCszMnwwO3A9a3wwO2s9Y1twPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7
Y1tuPj4yXT0xNTY5NjtjW24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7ZFcoMTU2OTYsbiw5Nil9bj0o
Y1szOTI1XXwwKS0xfDA7cT1jW2srOD4+Ml18MDtpZigoY1trKzEyPj4yXXwwKS1xPj4yPj4+MDw9
bj4+PjApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1rPWNbcSsobjw8Mik+
PjJdfDA7aWYoKGt8MCk9PTApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1y
PWs7cz1jW3A+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW20+PjJdPTE1MzEyO2NbbSs0Pj4y
XT0xMjtjW20rOD4+Ml09MDtkVygxNTMxMixtLDk2KX1tPShjWzM4MjldfDApLTF8MDtwPWNbcys4
Pj4yXXwwO2lmKChjW3MrMTI+PjJdfDApLXA+PjI+Pj4wPD1tPj4+MCl7dD1iTyg0KXwwO3U9dDtr
cSh1KTtibCh0fDAsODE3NiwxMzQpfXM9Y1twKyhtPDwyKT4+Ml18MDtpZigoc3wwKT09MCl7dD1i
Tyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXQ9cztiWltjWyhjW3M+PjJdfDApKzIw
Pj4yXSYxMjddKG8sdCk7Y1tqPj4yXT1nO3U9YVtiXXwwO3N3aXRjaCh1PDwyND4+MjQpe2Nhc2Ug
NDU6Y2FzZSA0Mzp7bT1iX1tjWyhjW2s+PjJdfDApKzI4Pj4yXSYzMV0ocix1KXwwO3U9Y1tqPj4y
XXwwO2Nbaj4+Ml09dSsxO2FbdV09bTt2PWIrMXwwO2JyZWFrfTtkZWZhdWx0Ont2PWJ9fW09ZjtM
MTg1MTpkb3tpZigobS12fDApPjEpe2lmKChhW3ZdfDApIT00OCl7dz12O3g9MTUzMjticmVha311
PXYrMXwwO3N3aXRjaChhW3VdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont3
PXY7eD0xNTMyO2JyZWFrIEwxODUxfX1wPWs7bj1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0o
ciw0OCl8MDtxPWNbaj4+Ml18MDtjW2o+PjJdPXErMTthW3FdPW47bj12KzJ8MDtxPWJfW2NbKGNb
cD4+Ml18MCkrMjg+PjJdJjMxXShyLGFbdV18MCl8MDt1PWNbaj4+Ml18MDtjW2o+PjJdPXUrMTth
W3VdPXE7cT1uO3doaWxlKDEpe2lmKHE+Pj4wPj1mPj4+MCl7eT1xO3o9bjticmVhayBMMTg1MX11
PWFbcV18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFr
fWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChhMyh1PDwyND4+MjR8MCxjWzI5
NThdfDApfDApPT0wKXt5PXE7ej1uO2JyZWFrfWVsc2V7cT1xKzF8MH19fWVsc2V7dz12O3g9MTUz
Mn19d2hpbGUoMCk7TDE4NjY6ZG97aWYoKHh8MCk9PTE1MzIpe3doaWxlKDEpe3g9MDtpZih3Pj4+
MD49Zj4+PjApe3k9dzt6PXY7YnJlYWsgTDE4NjZ9cT1hW3ddfDA7ZG97aWYoKGFbMTYyNjRdfDAp
PT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13
aGlsZSgwKTtpZigoYkgocTw8MjQ+PjI0fDAsY1syOTU4XXwwKXwwKT09MCl7eT13O3o9djticmVh
a31lbHNle3c9dysxfDA7eD0xNTMyfX19fXdoaWxlKDApO3g9bzt3PW87dj1kW3ddfDA7aWYoKHYm
MXwwKT09MCl7QT12Pj4+MX1lbHNle0E9Y1tvKzQ+PjJdfDB9ZG97aWYoKEF8MCk9PTApe3Y9Y1tq
Pj4yXXwwO3U9Y1soY1trPj4yXXwwKSszMj4+Ml18MDtjYVt1JjE1XShyLHoseSx2KXwwO2Nbaj4+
Ml09KGNbaj4+Ml18MCkrKHkteil9ZWxzZXtkb3tpZigoenwwKSE9KHl8MCkpe3Y9eS0xfDA7aWYo
ej4+PjA8dj4+PjApe0I9ejtDPXZ9ZWxzZXticmVha31kb3t2PWFbQl18MDthW0JdPWFbQ118MDth
W0NdPXY7Qj1CKzF8MDtDPUMtMXwwO313aGlsZShCPj4+MDxDPj4+MCl9fXdoaWxlKDApO3E9YjBb
Y1soY1tzPj4yXXwwKSsxNj4+Ml0mMTI3XSh0KXwwO2lmKHo+Pj4wPHk+Pj4wKXt2PXgrMXwwO3U9
bys0fDA7bj1vKzh8MDtwPWs7RD0wO0U9MDtGPXo7d2hpbGUoMSl7Rz0oYVt3XSYxKT09MDtkb3tp
ZigoYVsoRz92OmNbbj4+Ml18MCkrRXwwXXwwKT4wKXtpZigoRHwwKSE9KGFbKEc/djpjW24+PjJd
fDApK0V8MF18MCkpe0g9RTtJPUQ7YnJlYWt9Sj1jW2o+PjJdfDA7Y1tqPj4yXT1KKzE7YVtKXT1x
O0o9ZFt3XXwwO0g9KEU+Pj4wPCgoKEomMXwwKT09MD9KPj4+MTpjW3U+PjJdfDApLTF8MCk+Pj4w
KStFfDA7ST0wfWVsc2V7SD1FO0k9RH19d2hpbGUoMCk7Rz1iX1tjWyhjW3A+PjJdfDApKzI4Pj4y
XSYzMV0ocixhW0ZdfDApfDA7Sj1jW2o+PjJdfDA7Y1tqPj4yXT1KKzE7YVtKXT1HO0c9RisxfDA7
aWYoRz4+PjA8eT4+PjApe0Q9SSsxfDA7RT1IO0Y9R31lbHNle2JyZWFrfX19Rj1nKyh6LWIpfDA7
RT1jW2o+PjJdfDA7aWYoKEZ8MCk9PShFfDApKXticmVha31EPUUtMXwwO2lmKEY+Pj4wPEQ+Pj4w
KXtLPUY7TD1EfWVsc2V7YnJlYWt9ZG97RD1hW0tdfDA7YVtLXT1hW0xdfDA7YVtMXT1EO0s9Sysx
fDA7TD1MLTF8MDt9d2hpbGUoSz4+PjA8TD4+PjApfX13aGlsZSgwKTtMMTkwNTpkb3tpZih5Pj4+
MDxmPj4+MCl7TD1rO0s9eTt3aGlsZSgxKXt6PWFbS118MDtpZih6PDwyND4+MjQ9PTQ2KXticmVh
a31IPWJfW2NbKGNbTD4+Ml18MCkrMjg+PjJdJjMxXShyLHopfDA7ej1jW2o+PjJdfDA7Y1tqPj4y
XT16KzE7YVt6XT1IO0g9SysxfDA7aWYoSD4+PjA8Zj4+PjApe0s9SH1lbHNle009SDticmVhayBM
MTkwNX19TD1iMFtjWyhjW3M+PjJdfDApKzEyPj4yXSYxMjddKHQpfDA7SD1jW2o+PjJdfDA7Y1tq
Pj4yXT1IKzE7YVtIXT1MO009SysxfDB9ZWxzZXtNPXl9fXdoaWxlKDApO2NhW2NbKGNbaz4+Ml18
MCkrMzI+PjJdJjE1XShyLE0sZixjW2o+PjJdfDApfDA7cj0oY1tqPj4yXXwwKSsobS1NKXwwO2Nb
aj4+Ml09cjtpZigoZXwwKT09KGZ8MCkpe049cjtjW2g+PjJdPU47ZFAobyk7aT1sO3JldHVybn1O
PWcrKGUtYil8MDtjW2g+PjJdPU47ZFAobyk7aT1sO3JldHVybn1mdW5jdGlvbiBnayhhKXthPWF8
MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBnbChhKXthPWF8MDtkZShhfDApO3JldHVy
bn1mdW5jdGlvbiBnbShiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0w
LHY9MCx3PTAseD0wO2Q9aTtpPWkrMTQ0fDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
ZT4+Ml09Y1tqPj4yXTtqPWR8MDtrPWQrOHwwO2w9ZCsyNHwwO209ZCsxMTJ8MDtuPWQrMTIwfDA7
bz1kKzEyOHwwO3A9ZCsxMzZ8MDtxPWp8MDthW3FdPWFbMjM4NF18MDthW3ErMXwwXT1hWzIzODV8
MF18MDthW3ErMnwwXT1hWzIzODZ8MF18MDthW3ErM3wwXT1hWzIzODd8MF18MDthW3ErNHwwXT1h
WzIzODh8MF18MDthW3ErNXwwXT1hWzIzODl8MF18MDtyPWorMXwwO3M9Zis0fDA7dD1jW3M+PjJd
fDA7aWYoKHQmMjA0OHwwKT09MCl7dT1yfWVsc2V7YVtyXT00Mzt1PWorMnwwfWlmKCh0JjUxMnww
KT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4O3U9disxfDA7TDE5Mjg6ZG97
c3dpdGNoKHQmNzR8MCl7Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9O2Nhc2UgODp7aWYoKHQmMTYz
ODR8MCk9PTApe2FbdV09MTIwO2JyZWFrIEwxOTI4fWVsc2V7YVt1XT04ODticmVhayBMMTkyOH1i
cmVha307ZGVmYXVsdDp7YVt1XT0xMDB9fX13aGlsZSgwKTt1PWt8MDtkb3tpZigoYVsxNjI2NF18
MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9
fXdoaWxlKDApO3Q9Z2IodSwxMixjWzI5NThdfDAscSwocT1pLGk9aSs4fDAsY1txPj4yXT1oLHEp
fDApfDA7aT1xO3E9ayt0fDA7TDE5NDE6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMzI6
e3c9cTticmVha307Y2FzZSAxNjp7aD1hW3VdfDA7c3dpdGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpj
YXNlIDQzOnt3PWsrMXwwO2JyZWFrIEwxOTQxO2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+
MSZoPDwyND4+MjQ9PTQ4KSl7eD0xNjAwO2JyZWFrIEwxOTQxfXN3aXRjaChhW2srMXwwXXwwKXtj
YXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xNjAwO2JyZWFrIEwxOTQxfX13PWsr
MnwwO2JyZWFrfTtkZWZhdWx0Ont4PTE2MDB9fX13aGlsZSgwKTtpZigoeHwwKT09MTYwMCl7dz11
fXg9bHwwO2VqKG8sZik7Z3AodSx3LHEseCxtLG4sbyk7ZHooY1tvPj4yXXwwKXwwO2NbcD4+Ml09
Y1tlPj4yXTtncShiLHAseCxjW20+PjJdfDAsY1tuPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5j
dGlvbiBnbihiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wO2Q9aTtpPWkrMTA0fDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWR8MDtrPWQrMjR8MDtsPWQrNDh8MDttPWQrODh8MDtuPWQr
OTZ8MDtvPWQrMTZ8MDthW29dPWFbMjM5Ml18MDthW28rMXwwXT1hWzIzOTN8MF18MDthW28rMnww
XT1hWzIzOTR8MF18MDthW28rM3wwXT1hWzIzOTV8MF18MDthW28rNHwwXT1hWzIzOTZ8MF18MDth
W28rNXwwXT1hWzIzOTd8MF18MDtwPWt8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygx
NjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3E9Z2Io
cCwyMCxjWzI5NThdfDAsbywobz1pLGk9aSs4fDAsY1tvPj4yXT1oLG8pfDApfDA7aT1vO289aytx
fDA7TDE5NTg6ZG97c3dpdGNoKGNbZis0Pj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aD1hW3BdfDA7c3dp
dGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntyPWsrMXwwO2JyZWFrIEwxOTU4O2JyZWFr
fTtkZWZhdWx0Ont9fWlmKCEoKHF8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7cz0xNjE1O2JyZWFrIEwx
OTU4fXN3aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7
cz0xNjE1O2JyZWFrIEwxOTU4fX1yPWsrMnwwO2JyZWFrfTtjYXNlIDMyOntyPW87YnJlYWt9O2Rl
ZmF1bHQ6e3M9MTYxNX19fXdoaWxlKDApO2lmKChzfDApPT0xNjE1KXtyPXB9ZWoobSxmKTtzPW18
MDttPWNbcz4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2Nbaj4+Ml09MTU2OTY7Y1tqKzQ+PjJd
PTEyO2Nbais4Pj4yXT0wO2RXKDE1Njk2LGosOTYpfWo9KGNbMzkyNV18MCktMXwwO2g9Y1ttKzg+
PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktaD4+Mj4+PjA+aj4+PjApe3Q9Y1toKyhqPDwyKT4+
Ml18MDtpZigodHwwKT09MCl7YnJlYWt9dT10O3Y9Y1tzPj4yXXwwO2R6KHYpfDA7dj1sfDA7dz1j
WyhjW3Q+PjJdfDApKzMyPj4yXXwwO2NhW3cmMTVdKHUscCxvLHYpfDA7dT1sK3F8MDtpZigocnww
KT09KG98MCkpe3g9dTt5PWV8MDt6PWNbeT4+Ml18MDtBPW58MDtjW0E+PjJdPXo7ZjkoYixuLHYs
eCx1LGYsZyk7aT1kO3JldHVybn14PWwrKHItayl8MDt5PWV8MDt6PWNbeT4+Ml18MDtBPW58MDtj
W0E+PjJdPXo7ZjkoYixuLHYseCx1LGYsZyk7aT1kO3JldHVybn19d2hpbGUoMCk7ZD1iTyg0KXww
O2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ28oYixkLGUsZixnLGgpe2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wO2o9aTtpPWkrNDh8MDtr
PWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9aisxNnww
O209aisyNHwwO249aiszMnwwO2lmKChjW2YrND4+Ml0mMXwwKT09MCl7bz1jWyhjW2Q+PjJdfDAp
KzI0Pj4yXXwwO2NbbD4+Ml09Y1tlPj4yXTtiOVtvJjMxXShiLGQsbCxmLGcsaCYxKTtpPWo7cmV0
dXJufWVqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0xKXtjW2s+PjJd
PTE1MzA0O2Nbays0Pj4yXT0xMjtjW2srOD4+Ml09MDtkVygxNTMwNCxrLDk2KX1rPShjWzM4Mjdd
fDApLTF8MDtnPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLWc+PjI+Pj4wPms+Pj4w
KXtsPWNbZysoazw8Mik+PjJdfDA7aWYoKGx8MCk9PTApe2JyZWFrfWQ9bDtvPWNbZj4+Ml18MDtk
eihvKXwwO289Y1tsPj4yXXwwO2lmKGgpe2JaW2NbbysyND4+Ml0mMTI3XShuLGQpfWVsc2V7Ylpb
Y1tvKzI4Pj4yXSYxMjddKG4sZCl9ZD1uO289YVtkXXwwO2lmKChvJjEpPT0wKXtsPW4rNHwwO3A9
bDtxPWw7cj1uKzh8MH1lbHNle2w9bis4fDA7cD1jW2w+PjJdfDA7cT1uKzR8MDtyPWx9bD1lfDA7
cz1wO3Q9bzt3aGlsZSgxKXtpZigodCYxKT09MCl7dT1xfWVsc2V7dT1jW3I+PjJdfDB9bz10JjI1
NTtpZigobyYxfDApPT0wKXt2PW8+Pj4xfWVsc2V7dj1jW3E+PjJdfDB9aWYoKHN8MCk9PSh1Kyh2
PDwyKXwwKSl7YnJlYWt9bz1jW3M+PjJdfDA7dz1jW2w+PjJdfDA7ZG97aWYoKHd8MCkhPTApe3g9
dysyNHwwO3k9Y1t4Pj4yXXwwO2lmKCh5fDApPT0oY1t3KzI4Pj4yXXwwKSl7ej1iX1tjWyhjW3c+
PjJdfDApKzUyPj4yXSYzMV0odyxvKXwwfWVsc2V7Y1t4Pj4yXT15KzQ7Y1t5Pj4yXT1vO3o9b31p
ZigoenwwKSE9LTEpe2JyZWFrfWNbbD4+Ml09MH19d2hpbGUoMCk7cz1zKzR8MDt0PWFbZF18MH1j
W2I+PjJdPWNbbD4+Ml07ZWUobik7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGop
O2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ3AoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wO2w9aTtpPWkrNDh8MDttPWx8MDtuPWwrMTZ8MDtv
PWwrMzJ8MDtwPWt8MDtrPWNbcD4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2Nbbj4+Ml09MTU2
ODg7Y1tuKzQ+PjJdPTEyO2Nbbis4Pj4yXT0wO2RXKDE1Njg4LG4sOTYpfW49KGNbMzkyM118MCkt
MXwwO3E9Y1trKzg+PjJdfDA7aWYoKGNbaysxMj4+Ml18MCktcT4+Mj4+PjA8PW4+Pj4wKXtyPWJP
KDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9az1jW3ErKG48PDIpPj4yXXwwO2lmKChr
fDApPT0wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9cj1rO3M9Y1twPj4y
XXwwO2lmKChjWzM4MjZdfDApIT0tMSl7Y1ttPj4yXT0xNTMwNDtjW20rND4+Ml09MTI7Y1ttKzg+
PjJdPTA7ZFcoMTUzMDQsbSw5Nil9bT0oY1szODI3XXwwKS0xfDA7cD1jW3MrOD4+Ml18MDtpZigo
Y1tzKzEyPj4yXXwwKS1wPj4yPj4+MDw9bT4+PjApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHww
LDgxNzYsMTM0KX1zPWNbcCsobTw8Mik+PjJdfDA7aWYoKHN8MCk9PTApe3Q9Yk8oNCl8MDt1PXQ7
a3EodSk7YmwodHwwLDgxNzYsMTM0KX10PXM7YlpbY1soY1tzPj4yXXwwKSsyMD4+Ml0mMTI3XShv
LHQpO3U9bzttPW87cD1kW21dfDA7aWYoKHAmMXwwKT09MCl7dj1wPj4+MX1lbHNle3Y9Y1tvKzQ+
PjJdfDB9ZG97aWYoKHZ8MCk9PTApe3A9Y1soY1trPj4yXXwwKSs0OD4+Ml18MDtjYVtwJjE1XShy
LGIsZixnKXwwO2Nbaj4+Ml09ZysoZi1iPDwyKX1lbHNle2Nbaj4+Ml09ZztwPWFbYl18MDtzd2l0
Y2gocDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e249Yl9bY1soY1trPj4yXXwwKSs0ND4+Ml0m
MzFdKHIscCl8MDtwPWNbaj4+Ml18MDtjW2o+PjJdPXArNDtjW3A+PjJdPW47dz1iKzF8MDticmVh
a307ZGVmYXVsdDp7dz1ifX1MMjA1MDpkb3tpZigoZi13fDApPjEpe2lmKChhW3ddfDApIT00OCl7
eD13O2JyZWFrfW49dysxfDA7c3dpdGNoKGFbbl18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9
O2RlZmF1bHQ6e3g9dzticmVhayBMMjA1MH19cD1rO3E9Yl9bY1soY1twPj4yXXwwKSs0ND4+Ml0m
MzFdKHIsNDgpfDA7eT1jW2o+PjJdfDA7Y1tqPj4yXT15KzQ7Y1t5Pj4yXT1xO3E9Yl9bY1soY1tw
Pj4yXXwwKSs0ND4+Ml0mMzFdKHIsYVtuXXwwKXwwO249Y1tqPj4yXXwwO2Nbaj4+Ml09bis0O2Nb
bj4+Ml09cTt4PXcrMnwwfWVsc2V7eD13fX13aGlsZSgwKTtkb3tpZigoeHwwKSE9KGZ8MCkpe3E9
Zi0xfDA7aWYoeD4+PjA8cT4+PjApe3o9eDtBPXF9ZWxzZXticmVha31kb3txPWFbel18MDthW3pd
PWFbQV18MDthW0FdPXE7ej16KzF8MDtBPUEtMXwwO313aGlsZSh6Pj4+MDxBPj4+MCl9fXdoaWxl
KDApO3E9YjBbY1soY1tzPj4yXXwwKSsxNj4+Ml0mMTI3XSh0KXwwO2lmKHg+Pj4wPGY+Pj4wKXtu
PXUrMXwwO3A9azt5PW8rNHwwO0I9bys4fDA7Qz0wO0Q9MDtFPXg7d2hpbGUoMSl7Rj0oYVttXSYx
KT09MDtkb3tpZigoYVsoRj9uOmNbQj4+Ml18MCkrRHwwXXwwKT09MCl7Rz1EO0g9Q31lbHNle2lm
KChDfDApIT0oYVsoRj9uOmNbQj4+Ml18MCkrRHwwXXwwKSl7Rz1EO0g9QzticmVha31JPWNbaj4+
Ml18MDtjW2o+PjJdPUkrNDtjW0k+PjJdPXE7ST1kW21dfDA7Rz0oRD4+PjA8KCgoSSYxfDApPT0w
P0k+Pj4xOmNbeT4+Ml18MCktMXwwKT4+PjApK0R8MDtIPTB9fXdoaWxlKDApO0Y9Yl9bY1soY1tw
Pj4yXXwwKSs0ND4+Ml0mMzFdKHIsYVtFXXwwKXwwO0k9Y1tqPj4yXXwwO2Nbaj4+Ml09SSs0O2Nb
ST4+Ml09RjtGPUUrMXwwO2lmKEY+Pj4wPGY+Pj4wKXtDPUgrMXwwO0Q9RztFPUZ9ZWxzZXticmVh
a319fUU9ZysoeC1iPDwyKXwwO0Q9Y1tqPj4yXXwwO2lmKChFfDApPT0oRHwwKSl7YnJlYWt9Qz1E
LTR8MDtpZihFPj4+MDxDPj4+MCl7Sj1FO0s9Q31lbHNle2JyZWFrfWRve0M9Y1tKPj4yXXwwO2Nb
Sj4+Ml09Y1tLPj4yXTtjW0s+PjJdPUM7Sj1KKzR8MDtLPUstNHwwO313aGlsZShKPj4+MDxLPj4+
MCl9fXdoaWxlKDApO2lmKChlfDApPT0oZnwwKSl7TD1jW2o+PjJdfDA7Y1toPj4yXT1MO2RQKG8p
O2k9bDtyZXR1cm59ZWxzZXtMPWcrKGUtYjw8Mil8MDtjW2g+PjJdPUw7ZFAobyk7aT1sO3JldHVy
bn19ZnVuY3Rpb24gZ3EoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7az1pO2k9
aSsxNnwwO2w9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbbD4+Ml07bD1rfDA7
bT1kfDA7ZD1jW20+PjJdfDA7aWYoKGR8MCk9PTApe2NbYj4+Ml09MDtpPWs7cmV0dXJufW49Zztn
PWU7bz1uLWc+PjI7cD1oKzEyfDA7aD1jW3A+PjJdfDA7cT0oaHwwKT4ob3wwKT9oLW98MDowO289
ZjtoPW8tZ3wwO2c9aD4+Mjtkb3tpZigoaHwwKT4wKXtpZigoYjFbY1soY1tkPj4yXXwwKSs0OD4+
Ml0mNjNdKGQsZSxnKXwwKT09KGd8MCkpe2JyZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7aT1rO3Jl
dHVybn19d2hpbGUoMCk7ZG97aWYoKHF8MCk+MCl7ZXkobCxxLGopO2lmKChhW2xdJjEpPT0wKXty
PWwrNHwwfWVsc2V7cj1jW2wrOD4+Ml18MH1pZigoYjFbY1soY1tkPj4yXXwwKSs0OD4+Ml0mNjNd
KGQscixxKXwwKT09KHF8MCkpe2VlKGwpO2JyZWFrfWNbbT4+Ml09MDtjW2I+PjJdPTA7ZWUobCk7
aT1rO3JldHVybn19d2hpbGUoMCk7bD1uLW98MDtvPWw+PjI7ZG97aWYoKGx8MCk+MCl7aWYoKGIx
W2NbKGNbZD4+Ml18MCkrNDg+PjJdJjYzXShkLGYsbyl8MCk9PShvfDApKXticmVha31jW20+PjJd
PTA7Y1tiPj4yXT0wO2k9aztyZXR1cm59fXdoaWxlKDApO2NbcD4+Ml09MDtjW2I+PjJdPWQ7aT1r
O3JldHVybn1mdW5jdGlvbiBncihiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzIzMnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrMzJ8MDtuPWQrMjAwfDA7
bz1kKzIwOHwwO3A9ZCsyMTZ8MDtxPWQrMjI0fDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDtyPWs7
az1yKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9a31lbHNle2Fb
a109NDM7dT1yKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1h
W3ZdPTEwODthW3YrMXwwXT0xMDg7dT12KzJ8MDtMMjExOTpkb3tzd2l0Y2godCY3NHwwKXtjYXNl
IDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBMMjExOX1lbHNle2FbdV09ODg7
YnJlYWsgTDIxMTl9YnJlYWt9O2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtkZWZhdWx0OnthW3Vd
PTEwMH19fXdoaWxlKDApO3U9bHwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0
KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDIy
LGNbMjk1OF18MCxyLChyPWksaT1pKzE2fDAsY1tyPj4yXT1oLGNbcis4Pj4yXT1qLHIpfDApfDA7
aT1yO3I9bCt0fDA7TDIxMzI6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMzI6e3c9cjti
cmVha307Y2FzZSAxNjp7aj1hW3VdfDA7c3dpdGNoKGo8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQz
Ont3PWwrMXwwO2JyZWFrIEwyMTMyO2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZqPDwy
ND4+MjQ9PTQ4KSl7eD0xNzYwO2JyZWFrIEwyMTMyfXN3aXRjaChhW2wrMXwwXXwwKXtjYXNlIDEy
MDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD0xNzYwO2JyZWFrIEwyMTMyfX13PWwrMnwwO2Jy
ZWFrfTtkZWZhdWx0Ont4PTE3NjB9fX13aGlsZSgwKTtpZigoeHwwKT09MTc2MCl7dz11fXg9bXww
O2VqKHAsZik7Z3AodSx3LHIseCxuLG8scCk7ZHooY1twPj4yXXwwKXwwO2NbcT4+Ml09Y1tlPj4y
XTtncShiLHEseCxjW24+PjJdfDAsY1tvPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlvbiBn
cyhiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
O2Q9aTtpPWkrMTQ0fDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4y
XTtqPWR8MDtrPWQrOHwwO2w9ZCsyNHwwO209ZCsxMTJ8MDtuPWQrMTIwfDA7bz1kKzEyOHwwO3A9
ZCsxMzZ8MDtxPWp8MDthW3FdPWFbMjM4NF18MDthW3ErMXwwXT1hWzIzODV8MF18MDthW3ErMnww
XT1hWzIzODZ8MF18MDthW3ErM3wwXT1hWzIzODd8MF18MDthW3ErNHwwXT1hWzIzODh8MF18MDth
W3ErNXwwXT1hWzIzODl8MF18MDtyPWorMXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0
OHwwKT09MCl7dT1yfWVsc2V7YVtyXT00Mzt1PWorMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVs
c2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09MTA4O3U9disxfDA7TDIxNTA6ZG97c3dpdGNoKHQmNzR8
MCl7Y2FzZSA2NDp7YVt1XT0xMTE7YnJlYWt9O2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2Fb
dV09MTIwO2JyZWFrIEwyMTUwfWVsc2V7YVt1XT04ODticmVhayBMMjE1MH1icmVha307ZGVmYXVs
dDp7YVt1XT0xMTd9fX13aGlsZSgwKTt1PWt8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChi
YygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9
Z2IodSwxMixjWzI5NThdfDAscSwocT1pLGk9aSs4fDAsY1txPj4yXT1oLHEpfDApfDA7aT1xO3E9
ayt0fDA7TDIxNjM6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMTY6e2g9YVt1XXwwO3N3
aXRjaChoPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7dz1rKzF8MDticmVhayBMMjE2MzticmVh
a307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmaDw8MjQ+PjI0PT00OCkpe3g9MTc4NTticmVhayBM
MjE2M31zd2l0Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6
e3g9MTc4NTticmVhayBMMjE2M319dz1rKzJ8MDticmVha307Y2FzZSAzMjp7dz1xO2JyZWFrfTtk
ZWZhdWx0Ont4PTE3ODV9fX13aGlsZSgwKTtpZigoeHwwKT09MTc4NSl7dz11fXg9bHwwO2VqKG8s
Zik7Z3AodSx3LHEseCxtLG4sbyk7ZHooY1tvPj4yXXwwKXwwO2NbcD4+Ml09Y1tlPj4yXTtncShi
LHAseCxjW20+PjJdfDAsY1tuPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlvbiBndChiLGQs
ZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIg
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtk
PWk7aT1pKzI0MHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07
az1kfDA7bD1kKzh8MDttPWQrMzJ8MDtuPWQrMjA4fDA7bz1kKzIxNnwwO3A9ZCsyMjR8MDtxPWQr
MjMyfDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDtyPWs7az1yKzF8MDtzPWYrNHwwO3Q9Y1tzPj4y
XXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9a31lbHNle2Fba109NDM7dT1yKzJ8MH1pZigodCY1MTJ8
MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODthW3YrMXwwXT0xMDg7dT12
KzJ8MDtMMjE4MTpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXth
W3VdPTEyMDticmVhayBMMjE4MX1lbHNle2FbdV09ODg7YnJlYWsgTDIxODF9YnJlYWt9O2Nhc2Ug
NjQ6e2FbdV09MTExO2JyZWFrfTtkZWZhdWx0OnthW3VdPTExN319fXdoaWxlKDApO3U9bHwwO2Rv
e2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1h
UygxLDEzNDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDIzLGNbMjk1OF18MCxyLChyPWksaT1pKzE2
fDAsY1tyPj4yXT1oLGNbcis4Pj4yXT1qLHIpfDApfDA7aT1yO3I9bCt0fDA7TDIxOTQ6ZG97c3dp
dGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMTY6e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nh
c2UgNDU6Y2FzZSA0Mzp7dz1sKzF8MDticmVhayBMMjE5NDticmVha307ZGVmYXVsdDp7fX1pZigh
KCh0fDApPjEmajw8MjQ+PjI0PT00OCkpe3g9MTgxMDticmVhayBMMjE5NH1zd2l0Y2goYVtsKzF8
MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTgxMDticmVhayBMMjE5
NH19dz1sKzJ8MDticmVha307Y2FzZSAzMjp7dz1yO2JyZWFrfTtkZWZhdWx0Ont4PTE4MTB9fX13
aGlsZSgwKTtpZigoeHwwKT09MTgxMCl7dz11fXg9bXwwO2VqKHAsZik7Z3AodSx3LHIseCxuLG8s
cCk7ZHooY1twPj4yXXwwKXwwO2NbcT4+Ml09Y1tlPj4yXTtncShiLHEseCxjW24+PjJdfDAsY1tv
Pj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlvbiBndShiLGQsZSxmLGcsail7Yj1ifDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj0rajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MDtkPWk7aT1pKzMyMHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQr
MjgwfDA7cD1kKzI4OHwwO3E9ZCsyOTZ8MDtyPWQrMzA0fDA7cz1kKzMxMnwwO2Nbaz4+Ml09Mzc7
Y1trKzQ+PjJdPTA7dD1rO2s9dCsxfDA7dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDAp
PT0wKXt3PWt9ZWxzZXthW2tdPTQzO3c9dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7
YVt3XT0zNTt4PXcrMXwwfXc9diYyNjA7az12Pj4+MTQ7TDIyMTI6ZG97aWYoKHd8MCk9PTI2MCl7
aWYoKGsmMXwwKT09MCl7YVt4XT05Nzt5PTA7YnJlYWt9ZWxzZXthW3hdPTY1O3k9MDticmVha319
ZWxzZXthW3hdPTQ2O3Y9eCsyfDA7YVt4KzF8MF09NDI7c3dpdGNoKHd8MCl7Y2FzZSAyNTY6e2lm
KChrJjF8MCk9PTApe2Fbdl09MTAxO3k9MTticmVhayBMMjIxMn1lbHNle2Fbdl09Njk7eT0xO2Jy
ZWFrIEwyMjEyfWJyZWFrfTtjYXNlIDQ6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAyO3k9MTticmVh
ayBMMjIxMn1lbHNle2Fbdl09NzA7eT0xO2JyZWFrIEwyMjEyfWJyZWFrfTtkZWZhdWx0OntpZigo
ayYxfDApPT0wKXthW3ZdPTEwMzt5PTE7YnJlYWsgTDIyMTJ9ZWxzZXthW3ZdPTcxO3k9MTticmVh
ayBMMjIxMn19fX19d2hpbGUoMCk7az1sfDA7Y1ttPj4yXT1rO2Rve2lmKChhWzE2MjY0XXwwKT09
MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hp
bGUoMCk7bD1jWzI5NThdfDA7aWYoeSl7dz1nYihrLDMwLGwsdCwoej1pLGk9aSsxNnwwLGNbej4+
Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0E9d31lbHNle3c9Z2IoaywzMCxs
LHQsKHo9aSxpPWkrOHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtBPXd9ZG97aWYoKEF8MCk+Mjkp
e3c9KGFbMTYyNjRdfDApPT0wO2lmKHkpe2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2Jy
ZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Z2gobSxjWzI5NThdfDAsdCwo
ej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9
bH1lbHNle2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwx
MzQ0LDApfDB9fXdoaWxlKDApO3c9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSsxNnwwLGNbej4+
Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9d313PWNbbT4+Ml18MDtpZigo
d3wwKSE9MCl7Qz1CO0Q9dztFPXc7YnJlYWt9a1goKTt3PWNbbT4+Ml18MDtDPUI7RD13O0U9d31l
bHNle0M9QTtEPTA7RT1jW20+PjJdfDB9fXdoaWxlKDApO0E9RStDfDA7TDIyNjE6ZG97c3dpdGNo
KGNbdT4+Ml0mMTc2fDApe2Nhc2UgMzI6e0Y9QTticmVha307Y2FzZSAxNjp7Qj1hW0VdfDA7c3dp
dGNoKEI8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntGPUUrMXwwO2JyZWFrIEwyMjYxO2JyZWFr
fTtkZWZhdWx0Ont9fWlmKCEoKEN8MCk+MSZCPDwyND4+MjQ9PTQ4KSl7Rz0xODY2O2JyZWFrIEwy
MjYxfXN3aXRjaChhW0UrMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7
Rz0xODY2O2JyZWFrIEwyMjYxfX1GPUUrMnwwO2JyZWFrfTtkZWZhdWx0OntHPTE4NjZ9fX13aGls
ZSgwKTtpZigoR3wwKT09MTg2Nil7Rj1FfWRve2lmKChFfDApPT0oa3wwKSl7SD1ufDA7ST0wO0o9
a31lbHNle0c9a0ooQzw8Myl8MDt1PUc7aWYoKEd8MCkhPTApe0g9dTtJPXU7Sj1FO2JyZWFrfWtY
KCk7SD11O0k9dTtKPWNbbT4+Ml18MH19d2hpbGUoMCk7ZWoocSxmKTtndihKLEYsQSxILG8scCxx
KTtkeihjW3E+PjJdfDApfDA7cT1lfDA7Y1tzPj4yXT1jW3E+PjJdO2dxKHIscyxILGNbbz4+Ml18
MCxjW3A+PjJdfDAsZixnKTtnPWNbcj4+Ml18MDtjW3E+PjJdPWc7Y1tiPj4yXT1nO2lmKChJfDAp
IT0wKXtrSyhJKX1pZigoRHwwKT09MCl7aT1kO3JldHVybn1rSyhEKTtpPWQ7cmV0dXJufWZ1bmN0
aW9uIGd2KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anww
O2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0w
LEw9MCxNPTAsTj0wO2w9aTtpPWkrNDh8MDttPWx8MDtuPWwrMTZ8MDtvPWwrMzJ8MDtwPWt8MDtr
PWNbcD4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2Nbbj4+Ml09MTU2ODg7Y1tuKzQ+PjJdPTEy
O2Nbbis4Pj4yXT0wO2RXKDE1Njg4LG4sOTYpfW49KGNbMzkyM118MCktMXwwO3E9Y1trKzg+PjJd
fDA7aWYoKGNbaysxMj4+Ml18MCktcT4+Mj4+PjA8PW4+Pj4wKXtyPWJPKDQpfDA7cz1yO2txKHMp
O2JsKHJ8MCw4MTc2LDEzNCl9az1jW3ErKG48PDIpPj4yXXwwO2lmKChrfDApPT0wKXtyPWJPKDQp
fDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9cj1rO3M9Y1twPj4yXXwwO2lmKChjWzM4MjZd
fDApIT0tMSl7Y1ttPj4yXT0xNTMwNDtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTUzMDQs
bSw5Nil9bT0oY1szODI3XXwwKS0xfDA7cD1jW3MrOD4+Ml18MDtpZigoY1tzKzEyPj4yXXwwKS1w
Pj4yPj4+MDw9bT4+PjApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX1zPWNb
cCsobTw8Mik+PjJdfDA7aWYoKHN8MCk9PTApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgx
NzYsMTM0KX10PXM7YlpbY1soY1tzPj4yXXwwKSsyMD4+Ml0mMTI3XShvLHQpO2Nbaj4+Ml09Zzt1
PWFbYl18MDtzd2l0Y2godTw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e209Yl9bY1soY1trPj4y
XXwwKSs0ND4+Ml0mMzFdKHIsdSl8MDt1PWNbaj4+Ml18MDtjW2o+PjJdPXUrNDtjW3U+PjJdPW07
dj1iKzF8MDticmVha307ZGVmYXVsdDp7dj1ifX1tPWY7TDIzMDk6ZG97aWYoKG0tdnwwKT4xKXtp
ZigoYVt2XXwwKSE9NDgpe3c9djt4PTE5MjE7YnJlYWt9dT12KzF8MDtzd2l0Y2goYVt1XXwwKXtj
YXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7dz12O3g9MTkyMTticmVhayBMMjMwOX19
cD1rO249Yl9bY1soY1twPj4yXXwwKSs0ND4+Ml0mMzFdKHIsNDgpfDA7cT1jW2o+PjJdfDA7Y1tq
Pj4yXT1xKzQ7Y1txPj4yXT1uO249disyfDA7cT1iX1tjWyhjW3A+PjJdfDApKzQ0Pj4yXSYzMV0o
cixhW3VdfDApfDA7dT1jW2o+PjJdfDA7Y1tqPj4yXT11KzQ7Y1t1Pj4yXT1xO3E9bjt3aGlsZSgx
KXtpZihxPj4+MD49Zj4+PjApe3k9cTt6PW47YnJlYWsgTDIzMDl9dT1hW3FdfDA7ZG97aWYoKGFb
MTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0
NCwwKXwwfX13aGlsZSgwKTtpZigoYTModTw8MjQ+PjI0fDAsY1syOTU4XXwwKXwwKT09MCl7eT1x
O3o9bjticmVha31lbHNle3E9cSsxfDB9fX1lbHNle3c9djt4PTE5MjF9fXdoaWxlKDApO0wyMzI0
OmRve2lmKCh4fDApPT0xOTIxKXt3aGlsZSgxKXt4PTA7aWYodz4+PjA+PWY+Pj4wKXt5PXc7ej12
O2JyZWFrIEwyMzI0fXE9YVt3XXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0
KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGJIKHE8
PDI0Pj4yNHwwLGNbMjk1OF18MCl8MCk9PTApe3k9dzt6PXY7YnJlYWt9ZWxzZXt3PXcrMXwwO3g9
MTkyMX19fX13aGlsZSgwKTt4PW87dz1vO3Y9ZFt3XXwwO2lmKCh2JjF8MCk9PTApe0E9dj4+PjF9
ZWxzZXtBPWNbbys0Pj4yXXwwfWRve2lmKChBfDApPT0wKXt2PWNbaj4+Ml18MDt1PWNbKGNbaz4+
Ml18MCkrNDg+PjJdfDA7Y2FbdSYxNV0ocix6LHksdil8MDtjW2o+PjJdPShjW2o+PjJdfDApKyh5
LXo8PDIpfWVsc2V7ZG97aWYoKHp8MCkhPSh5fDApKXt2PXktMXwwO2lmKHo+Pj4wPHY+Pj4wKXtC
PXo7Qz12fWVsc2V7YnJlYWt9ZG97dj1hW0JdfDA7YVtCXT1hW0NdfDA7YVtDXT12O0I9QisxfDA7
Qz1DLTF8MDt9d2hpbGUoQj4+PjA8Qz4+PjApfX13aGlsZSgwKTtxPWIwW2NbKGNbcz4+Ml18MCkr
MTY+PjJdJjEyN10odCl8MDtpZih6Pj4+MDx5Pj4+MCl7dj14KzF8MDt1PW8rNHwwO249bys4fDA7
cD1rO0Q9MDtFPTA7Rj16O3doaWxlKDEpe0c9KGFbd10mMSk9PTA7ZG97aWYoKGFbKEc/djpjW24+
PjJdfDApK0V8MF18MCk+MCl7aWYoKER8MCkhPShhWyhHP3Y6Y1tuPj4yXXwwKStFfDBdfDApKXtI
PUU7ST1EO2JyZWFrfUo9Y1tqPj4yXXwwO2Nbaj4+Ml09Sis0O2NbSj4+Ml09cTtKPWRbd118MDtI
PShFPj4+MDwoKChKJjF8MCk9PTA/Sj4+PjE6Y1t1Pj4yXXwwKS0xfDApPj4+MCkrRXwwO0k9MH1l
bHNle0g9RTtJPUR9fXdoaWxlKDApO0c9Yl9bY1soY1twPj4yXXwwKSs0ND4+Ml0mMzFdKHIsYVtG
XXwwKXwwO0o9Y1tqPj4yXXwwO2Nbaj4+Ml09Sis0O2NbSj4+Ml09RztHPUYrMXwwO2lmKEc+Pj4w
PHk+Pj4wKXtEPUkrMXwwO0U9SDtGPUd9ZWxzZXticmVha319fUY9Zysoei1iPDwyKXwwO0U9Y1tq
Pj4yXXwwO2lmKChGfDApPT0oRXwwKSl7YnJlYWt9RD1FLTR8MDtpZihGPj4+MDxEPj4+MCl7Sz1G
O0w9RH1lbHNle2JyZWFrfWRve0Q9Y1tLPj4yXXwwO2NbSz4+Ml09Y1tMPj4yXTtjW0w+PjJdPUQ7
Sz1LKzR8MDtMPUwtNHwwO313aGlsZShLPj4+MDxMPj4+MCl9fXdoaWxlKDApO0wyMzYzOmRve2lm
KHk+Pj4wPGY+Pj4wKXtMPWs7Sz15O3doaWxlKDEpe3o9YVtLXXwwO2lmKHo8PDI0Pj4yND09NDYp
e2JyZWFrfUg9Yl9bY1soY1tMPj4yXXwwKSs0ND4+Ml0mMzFdKHIseil8MDt6PWNbaj4+Ml18MDtj
W2o+PjJdPXorNDtjW3o+PjJdPUg7SD1LKzF8MDtpZihIPj4+MDxmPj4+MCl7Sz1IfWVsc2V7TT1I
O2JyZWFrIEwyMzYzfX1MPWIwW2NbKGNbcz4+Ml18MCkrMTI+PjJdJjEyN10odCl8MDtIPWNbaj4+
Ml18MDtjW2o+PjJdPUgrNDtjW0g+PjJdPUw7TT1LKzF8MH1lbHNle009eX19d2hpbGUoMCk7Y2Fb
Y1soY1trPj4yXXwwKSs0OD4+Ml0mMTVdKHIsTSxmLGNbaj4+Ml18MCl8MDtyPShjW2o+PjJdfDAp
KyhtLU08PDIpfDA7Y1tqPj4yXT1yO2lmKChlfDApPT0oZnwwKSl7Tj1yO2NbaD4+Ml09TjtkUChv
KTtpPWw7cmV0dXJufU49ZysoZS1iPDwyKXwwO2NbaD4+Ml09TjtkUChvKTtpPWw7cmV0dXJufWZ1
bmN0aW9uIGd3KGIsZCxlLGYsZyxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPStq
O3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAs
eD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2Q9aTtp
PWkrMzIwfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8
MDtsPWQrOHwwO209ZCs0MHwwO249ZCs0OHwwO289ZCsyODB8MDtwPWQrMjg4fDA7cT1kKzI5Nnww
O3I9ZCszMDR8MDtzPWQrMzEyfDA7Y1trPj4yXT0zNztjW2srND4+Ml09MDt0PWs7az10KzF8MDt1
PWYrNHwwO3Y9Y1t1Pj4yXXwwO2lmKCh2JjIwNDh8MCk9PTApe3c9a31lbHNle2Fba109NDM7dz10
KzJ8MH1pZigodiYxMDI0fDApPT0wKXt4PXd9ZWxzZXthW3ddPTM1O3g9dysxfDB9dz12JjI2MDtr
PXY+Pj4xNDtMMjM4NDpkb3tpZigod3wwKT09MjYwKXthW3hdPTc2O3Y9eCsxfDA7aWYoKGsmMXww
KT09MCl7YVt2XT05Nzt5PTA7YnJlYWt9ZWxzZXthW3ZdPTY1O3k9MDticmVha319ZWxzZXthW3hd
PTQ2O2FbeCsxfDBdPTQyO2FbeCsyfDBdPTc2O3Y9eCszfDA7c3dpdGNoKHd8MCl7Y2FzZSAyNTY6
e2lmKChrJjF8MCk9PTApe2Fbdl09MTAxO3k9MTticmVhayBMMjM4NH1lbHNle2Fbdl09Njk7eT0x
O2JyZWFrIEwyMzg0fWJyZWFrfTtjYXNlIDQ6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAyO3k9MTti
cmVhayBMMjM4NH1lbHNle2Fbdl09NzA7eT0xO2JyZWFrIEwyMzg0fWJyZWFrfTtkZWZhdWx0Ontp
ZigoayYxfDApPT0wKXthW3ZdPTEwMzt5PTE7YnJlYWsgTDIzODR9ZWxzZXthW3ZdPTcxO3k9MTti
cmVhayBMMjM4NH19fX19d2hpbGUoMCk7az1sfDA7Y1ttPj4yXT1rO2Rve2lmKChhWzE2MjY0XXww
KT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19
d2hpbGUoMCk7bD1jWzI5NThdfDA7aWYoeSl7dz1nYihrLDMwLGwsdCwoej1pLGk9aSsxNnwwLGNb
ej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0E9d31lbHNle3c9Z2Ioaywz
MCxsLHQsKHo9aSxpPWkrOHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtBPXd9ZG97aWYoKEF8MCk+
Mjkpe3c9KGFbMTYyNjRdfDApPT0wO2lmKHkpe2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTAp
e2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Z2gobSxjWzI5NThdfDAs
dCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16
O0I9bH1lbHNle2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMo
MSwxMzQ0LDApfDB9fXdoaWxlKDApO3c9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSs4fDAsaFt6
Pj4zXT1qLHopfDApfDA7aT16O0I9d313PWNbbT4+Ml18MDtpZigod3wwKSE9MCl7Qz1CO0Q9dztF
PXc7YnJlYWt9a1goKTt3PWNbbT4+Ml18MDtDPUI7RD13O0U9d31lbHNle0M9QTtEPTA7RT1jW20+
PjJdfDB9fXdoaWxlKDApO0E9RStDfDA7TDI0MzM6ZG97c3dpdGNoKGNbdT4+Ml0mMTc2fDApe2Nh
c2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7Rj1FKzF8
MDticmVhayBMMjQzMzticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEmQjw8MjQ+PjI0PT00
OCkpe0c9MjAxODticmVhayBMMjQzM31zd2l0Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4
ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MjAxODticmVhayBMMjQzM319Rj1FKzJ8MDticmVha307Y2Fz
ZSAzMjp7Rj1BO2JyZWFrfTtkZWZhdWx0OntHPTIwMTh9fX13aGlsZSgwKTtpZigoR3wwKT09MjAx
OCl7Rj1FfWRve2lmKChFfDApPT0oa3wwKSl7SD1ufDA7ST0wO0o9a31lbHNle0c9a0ooQzw8Myl8
MDt1PUc7aWYoKEd8MCkhPTApe0g9dTtJPXU7Sj1FO2JyZWFrfWtYKCk7SD11O0k9dTtKPWNbbT4+
Ml18MH19d2hpbGUoMCk7ZWoocSxmKTtndihKLEYsQSxILG8scCxxKTtkeihjW3E+PjJdfDApfDA7
cT1lfDA7Y1tzPj4yXT1jW3E+PjJdO2dxKHIscyxILGNbbz4+Ml18MCxjW3A+PjJdfDAsZixnKTtn
PWNbcj4+Ml18MDtjW3E+PjJdPWc7Y1tiPj4yXT1nO2lmKChJfDApIT0wKXtrSyhJKX1pZigoRHww
KT09MCl7aT1kO3JldHVybn1rSyhEKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGd4KGIsZCxlLGYsZyxo
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7
ZD1pO2k9aSsyMTZ8MDtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+PjJd
O2o9ZHwwO2s9ZCsyNHwwO2w9ZCs0OHwwO209ZCsyMDB8MDtuPWQrMjA4fDA7bz1kKzE2fDA7YVtv
XT1hWzIzOTJdfDA7YVtvKzF8MF09YVsyMzkzfDBdfDA7YVtvKzJ8MF09YVsyMzk0fDBdfDA7YVtv
KzN8MF09YVsyMzk1fDBdfDA7YVtvKzR8MF09YVsyMzk2fDBdfDA7YVtvKzV8MF09YVsyMzk3fDBd
fDA7cD1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVh
a31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtxPWdiKHAsMjAsY1syOTU4XXwwLG8s
KG89aSxpPWkrOHwwLGNbbz4+Ml09aCxvKXwwKXwwO2k9bztvPWsrcXwwO0wyNDY0OmRve3N3aXRj
aChjW2YrND4+Ml0mMTc2fDApe2Nhc2UgMTY6e2g9YVtwXXwwO3N3aXRjaChoPDwyND4+MjQpe2Nh
c2UgNDU6Y2FzZSA0Mzp7cj1rKzF8MDticmVhayBMMjQ2NDticmVha307ZGVmYXVsdDp7fX1pZigh
KChxfDApPjEmaDw8MjQ+PjI0PT00OCkpe3M9MjA1MTticmVhayBMMjQ2NH1zd2l0Y2goYVtrKzF8
MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3M9MjA1MTticmVhayBMMjQ2
NH19cj1rKzJ8MDticmVha307Y2FzZSAzMjp7cj1vO2JyZWFrfTtkZWZhdWx0OntzPTIwNTF9fX13
aGlsZSgwKTtpZigoc3wwKT09MjA1MSl7cj1wfWVqKG0sZik7cz1tfDA7bT1jW3M+PjJdfDA7aWYo
KGNbMzkyMl18MCkhPS0xKXtjW2o+PjJdPTE1Njg4O2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtk
VygxNTY4OCxqLDk2KX1qPShjWzM5MjNdfDApLTF8MDtoPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20r
MTI+PjJdfDApLWg+PjI+Pj4wPmo+Pj4wKXt0PWNbaCsoajw8Mik+PjJdfDA7aWYoKHR8MCk9PTAp
e2JyZWFrfXU9dDt2PWNbcz4+Ml18MDtkeih2KXwwO3Y9bHwwO3c9Y1soY1t0Pj4yXXwwKSs0OD4+
Ml18MDtjYVt3JjE1XSh1LHAsbyx2KXwwO3U9bCsocTw8Mil8MDtpZigocnwwKT09KG98MCkpe3g9
dTt5PWV8MDt6PWNbeT4+Ml18MDtBPW58MDtjW0E+PjJdPXo7Z3EoYixuLHYseCx1LGYsZyk7aT1k
O3JldHVybn14PWwrKHItazw8Mil8MDt5PWV8MDt6PWNbeT4+Ml18MDtBPW58MDtjW0E+PjJdPXo7
Z3EoYixuLHYseCx1LGYsZyk7aT1kO3JldHVybn19d2hpbGUoMCk7ZD1iTyg0KXwwO2txKGQpO2Js
KGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ3koYSl7YT1hfDA7cmV0dXJuIDJ9ZnVuY3Rpb24gZ3oo
YSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZ0EoYSl7YT1hfDA7ZGUoYXww
KTtyZXR1cm59ZnVuY3Rpb24gZ0IoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wO2o9aTtpPWkrMTZ8MDtrPWQ7ZD1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2s+PjJdO2s9ZTtlPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7bD1qKzh8MDtjW2s+PjJdPWNbZD4+Ml07Y1ts
Pj4yXT1jW2U+PjJdO2dEKGEsYixrLGwsZixnLGgsMjM3NiwyMzg0KTtpPWo7cmV0dXJufWZ1bmN0
aW9uIGdDKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2s9aTtpPWkrMTZ8MDts
PWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1rfDA7bT1rKzh8MDtuPWQrOHwwO289YjBb
Y1soY1tuPj4yXXwwKSsyMD4+Ml0mMTI3XShuKXwwO2NbbD4+Ml09Y1tlPj4yXTtjW20+PjJdPWNb
Zj4+Ml07Zj1vO2U9YVtvXXwwO2lmKChlJjEpPT0wKXtwPWYrMXwwO3E9ZisxfDB9ZWxzZXtmPWNb
bys4Pj4yXXwwO3A9ZjtxPWZ9Zj1lJjI1NTtpZigoZiYxfDApPT0wKXtyPWY+Pj4xfWVsc2V7cj1j
W28rND4+Ml18MH1nRChiLGQsbCxtLGcsaCxqLHEscCtyfDApO2k9aztyZXR1cm59ZnVuY3Rpb24g
Z0QoZCxlLGYsZyxoLGosayxsLG0pe2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anww
O2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAs
WT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTA7bj1pO2k9aSs0OHwwO289ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbz4+Ml07bz1nO2c9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZz4+Ml09Y1tvPj4yXTtvPW58MDtwPW4rMTZ8MDtxPW4rMjR8MDtyPW4rMzJ8MDtz
PW4rNDB8MDtlaihwLGgpO3Q9cHwwO3A9Y1t0Pj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tv
Pj4yXT0xNTY5NjtjW28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTU2OTYsbyw5Nil9bz0oY1sz
OTI1XXwwKS0xfDA7dT1jW3ArOD4+Ml18MDtkb3tpZigoY1twKzEyPj4yXXwwKS11Pj4yPj4+MD5v
Pj4+MCl7dj1jW3UrKG88PDIpPj4yXXwwO2lmKCh2fDApPT0wKXticmVha313PXY7eD1jW3Q+PjJd
fDA7ZHooeCl8MDtjW2o+PjJdPTA7eD1mfDA7TDI1MDY6ZG97aWYoKGx8MCk9PShtfDApKXt5PTIx
NDF9ZWxzZXt6PWd8MDtBPXY7Qj12Kzh8MDtDPXY7RD1lO0U9cnwwO0Y9c3wwO0c9cXwwO0g9bDtJ
PTA7TDI1MDg6d2hpbGUoMSl7Sj1JO3doaWxlKDEpe2lmKChKfDApIT0wKXt5PTIxNDE7YnJlYWsg
TDI1MDZ9Sz1jW3g+PjJdfDA7ZG97aWYoKEt8MCk9PTApe0w9MH1lbHNle2lmKChjW0srMTI+PjJd
fDApIT0oY1tLKzE2Pj4yXXwwKSl7TD1LO2JyZWFrfWlmKChiMFtjWyhjW0s+PjJdfDApKzM2Pj4y
XSYxMjddKEspfDApIT0tMSl7TD1LO2JyZWFrfWNbeD4+Ml09MDtMPTB9fXdoaWxlKDApO0s9KEx8
MCk9PTA7TT1jW3o+PjJdfDA7TDI1MTg6ZG97aWYoKE18MCk9PTApe3k9MjA5NH1lbHNle2Rve2lm
KChjW00rMTI+PjJdfDApPT0oY1tNKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTT4+Ml18MCkrMzY+
PjJdJjEyN10oTSl8MCkhPS0xKXticmVha31jW3o+PjJdPTA7eT0yMDk0O2JyZWFrIEwyNTE4fX13
aGlsZSgwKTtpZihLKXtOPU19ZWxzZXt5PTIwOTU7YnJlYWsgTDI1MDh9fX13aGlsZSgwKTtpZigo
eXwwKT09MjA5NCl7eT0wO2lmKEspe3k9MjA5NTticmVhayBMMjUwOH1lbHNle049MH19aWYoKGIx
W2NbKGNbQT4+Ml18MCkrMzY+PjJdJjYzXSh3LGFbSF18MCwwKXwwKTw8MjQ+PjI0PT0zNyl7eT0y
MDk4O2JyZWFrfU09YVtIXXwwO2lmKE08PDI0Pj4yND4tMSl7Tz1jW0I+PjJdfDA7aWYoKGJbTyso
TTw8MjQ+PjI0PDwxKT4+MV0mODE5MikhPTApe1A9SDt5PTIxMDk7YnJlYWt9fVE9TCsxMnwwO009
Y1tRPj4yXXwwO1I9TCsxNnwwO2lmKChNfDApPT0oY1tSPj4yXXwwKSl7Uz0oYjBbY1soY1tMPj4y
XXwwKSszNj4+Ml0mMTI3XShMKXwwKSYyNTV9ZWxzZXtTPWFbTV18MH1NPWJfW2NbKGNbQz4+Ml18
MCkrMTI+PjJdJjMxXSh3LFMpfDA7aWYoTTw8MjQ+PjI0PT0oYl9bY1soY1tDPj4yXXwwKSsxMj4+
Ml0mMzFdKHcsYVtIXXwwKXwwKTw8MjQ+PjI0KXt5PTIxMzY7YnJlYWt9Y1tqPj4yXT00O0o9NH1M
MjUzNjpkb3tpZigoeXwwKT09MjEzNil7eT0wO0o9Y1tRPj4yXXwwO2lmKChKfDApPT0oY1tSPj4y
XXwwKSl7TT1jWyhjW0w+PjJdfDApKzQwPj4yXXwwO2IwW00mMTI3XShMKXwwfWVsc2V7Y1tRPj4y
XT1KKzF9VD1IKzF8MH1lbHNlIGlmKCh5fDApPT0yMDk4KXt5PTA7Sj1IKzF8MDtpZigoSnwwKT09
KG18MCkpe3k9MjA5OTticmVhayBMMjUwOH1NPWIxW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjYzXSh3
LGFbSl18MCwwKXwwO3N3aXRjaChNPDwyND4+MjQpe2Nhc2UgNjk6Y2FzZSA0ODp7VT1IKzJ8MDtp
ZigoVXwwKT09KG18MCkpe3k9MjEwMjticmVhayBMMjUwOH1WPU07Vz1iMVtjWyhjW0E+PjJdfDAp
KzM2Pj4yXSY2M10odyxhW1VdfDAsMCl8MDtYPVU7YnJlYWt9O2RlZmF1bHQ6e1Y9MDtXPU07WD1K
fX1KPWNbKGNbRD4+Ml18MCkrMzY+PjJdfDA7Y1tFPj4yXT1MO2NbRj4+Ml09TjtiN1tKJjddKHEs
ZSxyLHMsaCxqLGssVyxWKTtjW3g+PjJdPWNbRz4+Ml07VD1YKzF8MH1lbHNlIGlmKCh5fDApPT0y
MTA5KXt3aGlsZSgxKXt5PTA7Sj1QKzF8MDtpZigoSnwwKT09KG18MCkpe1k9bTticmVha31NPWFb
Sl18MDtpZihNPDwyND4+MjQ8PS0xKXtZPUo7YnJlYWt9aWYoKGJbTysoTTw8MjQ+PjI0PDwxKT4+
MV0mODE5Mik9PTApe1k9SjticmVha31lbHNle1A9Sjt5PTIxMDl9fUs9TDtKPU47d2hpbGUoMSl7
ZG97aWYoKEt8MCk9PTApe1o9MH1lbHNle2lmKChjW0srMTI+PjJdfDApIT0oY1tLKzE2Pj4yXXww
KSl7Wj1LO2JyZWFrfWlmKChiMFtjWyhjW0s+PjJdfDApKzM2Pj4yXSYxMjddKEspfDApIT0tMSl7
Wj1LO2JyZWFrfWNbeD4+Ml09MDtaPTB9fXdoaWxlKDApO009KFp8MCk9PTA7ZG97aWYoKEp8MCk9
PTApe3k9MjEyMn1lbHNle2lmKChjW0orMTI+PjJdfDApIT0oY1tKKzE2Pj4yXXwwKSl7aWYoTSl7
Xz1KO2JyZWFrfWVsc2V7VD1ZO2JyZWFrIEwyNTM2fX1pZigoYjBbY1soY1tKPj4yXXwwKSszNj4+
Ml0mMTI3XShKKXwwKT09LTEpe2Nbej4+Ml09MDt5PTIxMjI7YnJlYWt9ZWxzZXtpZihNXihKfDAp
PT0wKXtfPUo7YnJlYWt9ZWxzZXtUPVk7YnJlYWsgTDI1MzZ9fX19d2hpbGUoMCk7aWYoKHl8MCk9
PTIxMjIpe3k9MDtpZihNKXtUPVk7YnJlYWsgTDI1MzZ9ZWxzZXtfPTB9fVU9WisxMnwwOyQ9Y1tV
Pj4yXXwwO2FhPVorMTZ8MDtpZigoJHwwKT09KGNbYWE+PjJdfDApKXthYj0oYjBbY1soY1taPj4y
XXwwKSszNj4+Ml0mMTI3XShaKXwwKSYyNTV9ZWxzZXthYj1hWyRdfDB9aWYoYWI8PDI0Pj4yNDw9
LTEpe1Q9WTticmVhayBMMjUzNn1pZigoYlsoY1tCPj4yXXwwKSsoYWI8PDI0Pj4yNDw8MSk+PjFd
JjgxOTIpPT0wKXtUPVk7YnJlYWsgTDI1MzZ9JD1jW1U+PjJdfDA7aWYoKCR8MCk9PShjW2FhPj4y
XXwwKSl7YWE9Y1soY1taPj4yXXwwKSs0MD4+Ml18MDtiMFthYSYxMjddKFopfDA7Sz1aO0o9Xztj
b250aW51ZX1lbHNle2NbVT4+Ml09JCsxO0s9WjtKPV87Y29udGludWV9fX19d2hpbGUoMCk7aWYo
KFR8MCk9PShtfDApKXt5PTIxNDE7YnJlYWsgTDI1MDZ9SD1UO0k9Y1tqPj4yXXwwfWlmKCh5fDAp
PT0yMDk5KXtjW2o+PjJdPTQ7YWM9TDticmVha31lbHNlIGlmKCh5fDApPT0yMTAyKXtjW2o+PjJd
PTQ7YWM9TDticmVha31lbHNlIGlmKCh5fDApPT0yMDk1KXtjW2o+PjJdPTQ7YWM9TDticmVha319
fXdoaWxlKDApO2lmKCh5fDApPT0yMTQxKXthYz1jW3g+PjJdfDB9dz1mfDA7ZG97aWYoKGFjfDAp
IT0wKXtpZigoY1thYysxMj4+Ml18MCkhPShjW2FjKzE2Pj4yXXwwKSl7YnJlYWt9aWYoKGIwW2Nb
KGNbYWM+PjJdfDApKzM2Pj4yXSYxMjddKGFjKXwwKSE9LTEpe2JyZWFrfWNbdz4+Ml09MH19d2hp
bGUoMCk7eD1jW3c+PjJdfDA7dj0oeHwwKT09MDtJPWd8MDtIPWNbST4+Ml18MDtMMjU5NDpkb3tp
ZigoSHwwKT09MCl7eT0yMTUxfWVsc2V7ZG97aWYoKGNbSCsxMj4+Ml18MCk9PShjW0grMTY+PjJd
fDApKXtpZigoYjBbY1soY1tIPj4yXXwwKSszNj4+Ml0mMTI3XShIKXwwKSE9LTEpe2JyZWFrfWNb
ST4+Ml09MDt5PTIxNTE7YnJlYWsgTDI1OTR9fXdoaWxlKDApO2lmKCF2KXticmVha31hZD1kfDA7
Y1thZD4+Ml09eDtpPW47cmV0dXJufX13aGlsZSgwKTtkb3tpZigoeXwwKT09MjE1MSl7aWYodil7
YnJlYWt9YWQ9ZHwwO2NbYWQ+PjJdPXg7aT1uO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+
PjJdfDI7YWQ9ZHwwO2NbYWQ+PjJdPXg7aT1uO3JldHVybn19d2hpbGUoMCk7bj1iTyg0KXwwO2tx
KG4pO2JsKG58MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ0UoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2o9aTtpPWkrMzJ8MDtrPWQ7ZD1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2s+PjJdO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2U+PjJdPWNbaz4+Ml07az1qfDA7bD1qKzh8MDttPWorMjR8MDtlaihtLGYpO2Y9bXwwO209Y1tm
Pj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tsPj4yXT0xNTY5NjtjW2wrND4+Ml09MTI7Y1ts
Kzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0oY1szOTI1XXwwKS0xfDA7bj1jW20rOD4+Ml18MDtk
b3tpZigoY1ttKzEyPj4yXXwwKS1uPj4yPj4+MD5sPj4+MCl7bz1jW24rKGw8PDIpPj4yXXwwO2lm
KChvfDApPT0wKXticmVha31wPW87bz1jW2Y+PjJdfDA7ZHoobyl8MDtvPWNbZT4+Ml18MDtxPWIr
OHwwO3I9YjBbY1tjW3E+PjJdPj4yXSYxMjddKHEpfDA7Y1trPj4yXT1vO289KGZxKGQsayxyLHIr
MTY4fDAscCxnLDApfDApLXJ8MDtpZigob3wwKT49MTY4KXtzPWR8MDt0PWNbcz4+Ml18MDt1PWF8
MDtjW3U+PjJdPXQ7aT1qO3JldHVybn1jW2grMjQ+PjJdPSgob3wwKS8xMnwwfDApJTd8MDtzPWR8
MDt0PWNbcz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0
KXwwO2txKGopO2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ0YoYSxiLGQsZSxmLGcsaCl7YT1h
fDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2o9aTtpPWkrMzJ8MDtrPWQ7ZD1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2s+PjJdO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7bD1qKzh8MDttPWorMjR8MDtlaihtLGYpO2Y9bXww
O209Y1tmPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tsPj4yXT0xNTY5NjtjW2wrND4+Ml09
MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0oY1szOTI1XXwwKS0xfDA7bj1jW20rOD4+
Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1uPj4yPj4+MD5sPj4+MCl7bz1jW24rKGw8PDIpPj4y
XXwwO2lmKChvfDApPT0wKXticmVha31wPW87bz1jW2Y+PjJdfDA7ZHoobyl8MDtvPWNbZT4+Ml18
MDtxPWIrOHwwO3I9YjBbY1soY1txPj4yXXwwKSs0Pj4yXSYxMjddKHEpfDA7Y1trPj4yXT1vO289
KGZxKGQsayxyLHIrMjg4fDAscCxnLDApfDApLXJ8MDtpZigob3wwKT49Mjg4KXtzPWR8MDt0PWNb
cz4+Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn1jW2grMTY+PjJdPSgob3wwKS8xMnww
fDApJTEyfDA7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59fXdo
aWxlKDApO2o9Yk8oNCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdHKGEsYixk
LGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7Yj1pO2k9aSszMnwwO2o9ZDtk
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbaj4+Ml07aj1lO2U9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWJ8MDtrPWIrOHwwO2w9YisyNHwwO2VqKGwsZik7
Zj1sfDA7bD1jW2Y+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2s+PjJdPTE1Njk2O2Nbays0
Pj4yXT0xMjtjW2srOD4+Ml09MDtkVygxNTY5NixrLDk2KX1rPShjWzM5MjVdfDApLTF8MDttPWNb
bCs4Pj4yXXwwO2Rve2lmKChjW2wrMTI+PjJdfDApLW0+PjI+Pj4wPms+Pj4wKXtuPWNbbSsoazw8
Mik+PjJdfDA7aWYoKG58MCk9PTApe2JyZWFrfW89bjtuPWNbZj4+Ml18MDtkeihuKXwwO2Nbaj4+
Ml09Y1tlPj4yXTtuPWdMKGQsaixnLG8sNCl8MDtpZigoY1tnPj4yXSY0fDApIT0wKXtwPWR8MDtx
PWNbcD4+Ml18MDtyPWF8MDtjW3I+PjJdPXE7aT1iO3JldHVybn1pZigobnwwKTw2OSl7cz1uKzJl
M3wwfWVsc2V7cz0obi02OXwwKT4+PjA8MzE/bisxOTAwfDA6bn1jW2grMjA+PjJdPXMtMTkwMDtw
PWR8MDtxPWNbcD4+Ml18MDtyPWF8MDtjW3I+PjJdPXE7aT1iO3JldHVybn19d2hpbGUoMCk7Yj1i
Tyg0KXwwO2txKGIpO2JsKGJ8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ0goZCxlLGYsZyxoKXtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wO2Q9aTtqPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tmPj4yXT1jW2o+PjJdO2o9ZXwwO2U9ZnwwO2Y9aCs4fDA7TDI2NTI6d2hpbGUoMSl7aD1jW2o+
PjJdfDA7ZG97aWYoKGh8MCk9PTApe2s9MH1lbHNle2lmKChjW2grMTI+PjJdfDApIT0oY1toKzE2
Pj4yXXwwKSl7az1oO2JyZWFrfWlmKChiMFtjWyhjW2g+PjJdfDApKzM2Pj4yXSYxMjddKGgpfDAp
PT0tMSl7Y1tqPj4yXT0wO2s9MDticmVha31lbHNle2s9Y1tqPj4yXXwwO2JyZWFrfX19d2hpbGUo
MCk7aD0oa3wwKT09MDtsPWNbZT4+Ml18MDtMMjY2MTpkb3tpZigobHwwKT09MCl7bT0yMjA3fWVs
c2V7ZG97aWYoKGNbbCsxMj4+Ml18MCk9PShjW2wrMTY+PjJdfDApKXtpZigoYjBbY1soY1tsPj4y
XXwwKSszNj4+Ml0mMTI3XShsKXwwKSE9LTEpe2JyZWFrfWNbZT4+Ml09MDttPTIyMDc7YnJlYWsg
TDI2NjF9fXdoaWxlKDApO2lmKGgpe249bDtvPTB9ZWxzZXtwPWw7cT0wO2JyZWFrIEwyNjUyfX19
d2hpbGUoMCk7aWYoKG18MCk9PTIyMDcpe209MDtpZihoKXtwPTA7cT0xO2JyZWFrfWVsc2V7bj0w
O289MX19bD1jW2o+PjJdfDA7cj1jW2wrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW2wrMTY+PjJdfDAp
KXtzPShiMFtjWyhjW2w+PjJdfDApKzM2Pj4yXSYxMjddKGwpfDApJjI1NX1lbHNle3M9YVtyXXww
fWlmKHM8PDI0Pj4yNDw9LTEpe3A9bjtxPW87YnJlYWt9aWYoKGJbKGNbZj4+Ml18MCkrKHM8PDI0
Pj4yNDw8MSk+PjFdJjgxOTIpPT0wKXtwPW47cT1vO2JyZWFrfXI9Y1tqPj4yXXwwO2w9cisxMnww
O3Q9Y1tsPj4yXXwwO2lmKCh0fDApPT0oY1tyKzE2Pj4yXXwwKSl7dT1jWyhjW3I+PjJdfDApKzQw
Pj4yXXwwO2IwW3UmMTI3XShyKXwwO2NvbnRpbnVlfWVsc2V7Y1tsPj4yXT10KzE7Y29udGludWV9
fW89Y1tqPj4yXXwwO2Rve2lmKChvfDApPT0wKXt2PTB9ZWxzZXtpZigoY1tvKzEyPj4yXXwwKSE9
KGNbbysxNj4+Ml18MCkpe3Y9bzticmVha31pZigoYjBbY1soY1tvPj4yXXwwKSszNj4+Ml0mMTI3
XShvKXwwKT09LTEpe2Nbaj4+Ml09MDt2PTA7YnJlYWt9ZWxzZXt2PWNbaj4+Ml18MDticmVha319
fXdoaWxlKDApO2o9KHZ8MCk9PTA7ZG97aWYocSl7bT0yMjI2fWVsc2V7aWYoKGNbcCsxMj4+Ml18
MCkhPShjW3ArMTY+PjJdfDApKXtpZighKGpeKHB8MCk9PTApKXticmVha31pPWQ7cmV0dXJufWlm
KChiMFtjWyhjW3A+PjJdfDApKzM2Pj4yXSYxMjddKHApfDApPT0tMSl7Y1tlPj4yXT0wO209MjIy
NjticmVha31pZighail7YnJlYWt9aT1kO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKG18MCk9PTIy
MjYpe2lmKGope2JyZWFrfWk9ZDtyZXR1cm59fXdoaWxlKDApO2NbZz4+Ml09Y1tnPj4yXXwyO2k9
ZDtyZXR1cm59ZnVuY3Rpb24gZ0koYixkLGUsZixnLGgsaixrLGwpe2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxF
PTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9
MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0w
LGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wO2w9aTtpPWkrMzI4
fDA7bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4yXTttPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209bHwwO249bCs4fDA7bz1sKzE2fDA7
cD1sKzI0fDA7cT1sKzMyfDA7cj1sKzQwfDA7cz1sKzQ4fDA7dD1sKzU2fDA7dT1sKzY0fDA7dj1s
KzcyfDA7dz1sKzgwfDA7eD1sKzg4fDA7eT1sKzk2fDA7ej1sKzExMnwwO0E9bCsxMjB8MDtCPWwr
MTI4fDA7Qz1sKzEzNnwwO0Q9bCsxNDR8MDtFPWwrMTUyfDA7Rj1sKzE2MHwwO0c9bCsxNjh8MDtI
PWwrMTc2fDA7ST1sKzE4NHwwO0o9bCsxOTJ8MDtLPWwrMjAwfDA7TD1sKzIwOHwwO009bCsyMTZ8
MDtOPWwrMjI0fDA7Tz1sKzIzMnwwO1A9bCsyNDB8MDtRPWwrMjQ4fDA7Uj1sKzI1NnwwO1M9bCsy
NjR8MDtUPWwrMjcyfDA7VT1sKzI4MHwwO1Y9bCsyODh8MDtXPWwrMjk2fDA7WD1sKzMwNHwwO1k9
bCszMTJ8MDtaPWwrMzIwfDA7Y1toPj4yXT0wO2VqKHosZyk7Xz16fDA7ej1jW18+PjJdfDA7aWYo
KGNbMzkyNF18MCkhPS0xKXtjW3k+PjJdPTE1Njk2O2NbeSs0Pj4yXT0xMjtjW3krOD4+Ml09MDtk
VygxNTY5Nix5LDk2KX15PShjWzM5MjVdfDApLTF8MDskPWNbeis4Pj4yXXwwO2Rve2lmKChjW3or
MTI+PjJdfDApLSQ+PjI+Pj4wPnk+Pj4wKXthYT1jWyQrKHk8PDIpPj4yXXwwO2lmKChhYXwwKT09
MCl7YnJlYWt9YWI9YWE7YWE9Y1tfPj4yXXwwO2R6KGFhKXwwO0wyNzA5OmRve3N3aXRjaChrPDwy
ND4+MjR8MCl7Y2FzZSA3Mjp7Y1t1Pj4yXT1jW2Y+PjJdO2FhPWdMKGUsdSxoLGFiLDIpfDA7YWM9
Y1toPj4yXXwwO2lmKChhYyY0fDApPT0wJihhYXwwKTwyNCl7Y1tqKzg+PjJdPWFhO2JyZWFrIEwy
NzA5fWVsc2V7Y1toPj4yXT1hY3w0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNlIDk3OmNhc2UgNjU6
e2FjPWNbZj4+Ml18MDthYT1kKzh8MDthZD1iMFtjW2NbYWE+PjJdPj4yXSYxMjddKGFhKXwwO2Nb
eD4+Ml09YWM7YWM9KGZxKGUseCxhZCxhZCsxNjh8MCxhYixoLDApfDApLWFkfDA7aWYoKGFjfDAp
Pj0xNjgpe2JyZWFrIEwyNzA5fWNbaisyND4+Ml09KChhY3wwKS8xMnwwfDApJTd8MDticmVha307
Y2FzZSAxMDk6e2Nbcj4+Ml09Y1tmPj4yXTthYz0oZ0woZSxyLGgsYWIsMil8MCktMXwwO2FkPWNb
aD4+Ml18MDtpZigoYWQmNHwwKT09MCYoYWN8MCk8MTIpe2NbaisxNj4+Ml09YWM7YnJlYWsgTDI3
MDl9ZWxzZXtjW2g+PjJdPWFkfDQ7YnJlYWsgTDI3MDl9YnJlYWt9O2Nhc2UgMTIxOntjW24+PjJd
PWNbZj4+Ml07YWQ9Z0woZSxuLGgsYWIsNCl8MDtpZigoY1toPj4yXSY0fDApIT0wKXticmVhayBM
MjcwOX1pZigoYWR8MCk8Njkpe2FlPWFkKzJlM3wwfWVsc2V7YWU9KGFkLTY5fDApPj4+MDwzMT9h
ZCsxOTAwfDA6YWR9Y1tqKzIwPj4yXT1hZS0xOTAwO2JyZWFrfTtjYXNlIDk4OmNhc2UgNjY6Y2Fz
ZSAxMDQ6e2FkPWNbZj4+Ml18MDthYz1kKzh8MDthYT1iMFtjWyhjW2FjPj4yXXwwKSs0Pj4yXSYx
MjddKGFjKXwwO2Nbdz4+Ml09YWQ7YWQ9KGZxKGUsdyxhYSxhYSsyODh8MCxhYixoLDApfDApLWFh
fDA7aWYoKGFkfDApPj0yODgpe2JyZWFrIEwyNzA5fWNbaisxNj4+Ml09KChhZHwwKS8xMnwwfDAp
JTEyfDA7YnJlYWt9O2Nhc2UgNzM6e2FkPWorOHwwO2NbdD4+Ml09Y1tmPj4yXTthYT1nTChlLHQs
aCxhYiwyKXwwO2FjPWNbaD4+Ml18MDtkb3tpZigoYWMmNHwwKT09MCl7aWYoKGFhLTF8MCk+Pj4w
Pj0xMil7YnJlYWt9Y1thZD4+Ml09YWE7YnJlYWsgTDI3MDl9fXdoaWxlKDApO2NbaD4+Ml09YWN8
NDticmVha307Y2FzZSAxMDY6e2Nbcz4+Ml09Y1tmPj4yXTthYT1nTChlLHMsaCxhYiwzKXwwO2Fk
PWNbaD4+Ml18MDtpZigoYWQmNHwwKT09MCYoYWF8MCk8MzY2KXtjW2orMjg+PjJdPWFhO2JyZWFr
IEwyNzA5fWVsc2V7Y1toPj4yXT1hZHw0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNlIDY4OnthZD1l
fDA7Y1tFPj4yXT1jW2FkPj4yXTtjW0Y+PjJdPWNbZj4+Ml07Z0QoRCxkLEUsRixnLGgsaiwyMzY4
LDIzNzYpO2NbYWQ+PjJdPWNbRD4+Ml07YnJlYWt9O2Nhc2UgODQ6e2FkPWV8MDtjW1M+PjJdPWNb
YWQ+PjJdO2NbVD4+Ml09Y1tmPj4yXTtnRChSLGQsUyxULGcsaCxqLDIzMjgsMjMzNik7Y1thZD4+
Ml09Y1tSPj4yXTticmVha307Y2FzZSAxMTk6e2Nbbz4+Ml09Y1tmPj4yXTthZD1nTChlLG8saCxh
YiwxKXwwO2FhPWNbaD4+Ml18MDtpZigoYWEmNHwwKT09MCYoYWR8MCk8Nyl7Y1tqKzI0Pj4yXT1h
ZDticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWF8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA3
MDp7YWE9ZXwwO2NbSD4+Ml09Y1thYT4+Ml07Y1tJPj4yXT1jW2Y+PjJdO2dEKEcsZCxILEksZyxo
LGosMjM2MCwyMzY4KTtjW2FhPj4yXT1jW0c+PjJdO2JyZWFrfTtjYXNlIDg5OntjW20+PjJdPWNb
Zj4+Ml07YWE9Z0woZSxtLGgsYWIsNCl8MDtpZigoY1toPj4yXSY0fDApIT0wKXticmVhayBMMjcw
OX1jW2orMjA+PjJdPWFhLTE5MDA7YnJlYWt9O2Nhc2UgMzc6e2NbWj4+Ml09Y1tmPj4yXTtnSygw
LGUsWixoLGFiKTticmVha307Y2FzZSAxMTQ6e2FhPWV8MDtjW00+PjJdPWNbYWE+PjJdO2NbTj4+
Ml09Y1tmPj4yXTtnRChMLGQsTSxOLGcsaCxqLDIzNDQsMjM1NSk7Y1thYT4+Ml09Y1tMPj4yXTti
cmVha307Y2FzZSA4Mjp7YWE9ZXwwO2NbUD4+Ml09Y1thYT4+Ml07Y1tRPj4yXT1jW2Y+PjJdO2dE
KE8sZCxQLFEsZyxoLGosMjMzNiwyMzQxKTtjW2FhPj4yXT1jW08+PjJdO2JyZWFrfTtjYXNlIDk5
OnthYT1kKzh8MDthZD1iMFtjWyhjW2FhPj4yXXwwKSsxMj4+Ml0mMTI3XShhYSl8MDthYT1lfDA7
Y1tCPj4yXT1jW2FhPj4yXTtjW0M+PjJdPWNbZj4+Ml07YWY9YWQ7YWc9YVthZF18MDtpZigoYWcm
MSk9PTApe2FoPWFmKzF8MDthaT1hZisxfDB9ZWxzZXthZj1jW2FkKzg+PjJdfDA7YWg9YWY7YWk9
YWZ9YWY9YWcmMjU1O2lmKChhZiYxfDApPT0wKXthaj1hZj4+PjF9ZWxzZXthaj1jW2FkKzQ+PjJd
fDB9Z0QoQSxkLEIsQyxnLGgsaixhaSxhaCthanwwKTtjW2FhPj4yXT1jW0E+PjJdO2JyZWFrfTtj
YXNlIDgzOntjW3A+PjJdPWNbZj4+Ml07YWE9Z0woZSxwLGgsYWIsMil8MDthZD1jW2g+PjJdfDA7
aWYoKGFkJjR8MCk9PTAmKGFhfDApPDYxKXtjW2o+PjJdPWFhO2JyZWFrIEwyNzA5fWVsc2V7Y1to
Pj4yXT1hZHw0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNlIDc3OntjW3E+PjJdPWNbZj4+Ml07YWQ9
Z0woZSxxLGgsYWIsMil8MDthYT1jW2g+PjJdfDA7aWYoKGFhJjR8MCk9PTAmKGFkfDApPDYwKXtj
W2orND4+Ml09YWQ7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFhfDQ7YnJlYWsgTDI3MDl9YnJl
YWt9O2Nhc2UgMTEwOmNhc2UgMTE2OntjW0o+PjJdPWNbZj4+Ml07Z0goMCxlLEosaCxhYik7YnJl
YWt9O2Nhc2UgMTEyOntjW0s+PjJdPWNbZj4+Ml07Z0ooZCxqKzh8MCxlLEssaCxhYik7YnJlYWt9
O2Nhc2UgMTIwOnthYT1jWyhjW2Q+PjJdfDApKzIwPj4yXXwwO2NbVT4+Ml09Y1tlPj4yXTtjW1Y+
PjJdPWNbZj4+Ml07YlhbYWEmMTI3XShiLGQsVSxWLGcsaCxqKTtpPWw7cmV0dXJufTtjYXNlIDg4
OnthYT1kKzh8MDthZD1iMFtjWyhjW2FhPj4yXXwwKSsyND4+Ml0mMTI3XShhYSl8MDthYT1lfDA7
Y1tYPj4yXT1jW2FhPj4yXTtjW1k+PjJdPWNbZj4+Ml07YWY9YWQ7YWc9YVthZF18MDtpZigoYWcm
MSk9PTApe2FrPWFmKzF8MDthbD1hZisxfDB9ZWxzZXthZj1jW2FkKzg+PjJdfDA7YWs9YWY7YWw9
YWZ9YWY9YWcmMjU1O2lmKChhZiYxfDApPT0wKXthbT1hZj4+PjF9ZWxzZXthbT1jW2FkKzQ+PjJd
fDB9Z0QoVyxkLFgsWSxnLGgsaixhbCxhaythbXwwKTtjW2FhPj4yXT1jW1c+PjJdO2JyZWFrfTtj
YXNlIDEwMDpjYXNlIDEwMTp7YWE9aisxMnwwO2Nbdj4+Ml09Y1tmPj4yXTthZD1nTChlLHYsaCxh
YiwyKXwwO2FmPWNbaD4+Ml18MDtkb3tpZigoYWYmNHwwKT09MCl7aWYoKGFkLTF8MCk+Pj4wPj0z
MSl7YnJlYWt9Y1thYT4+Ml09YWQ7YnJlYWsgTDI3MDl9fXdoaWxlKDApO2NbaD4+Ml09YWZ8NDti
cmVha307ZGVmYXVsdDp7Y1toPj4yXT1jW2g+PjJdfDR9fX13aGlsZSgwKTtjW2I+PjJdPWNbZT4+
Ml07aT1sO3JldHVybn19d2hpbGUoMCk7bD1iTyg0KXwwO2txKGwpO2JsKGx8MCw4MTc2LDEzNCl9
ZnVuY3Rpb24gZ0ooYSxiLGUsZixnLGgpe2E9YXwwO2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9
aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wO2o9aTtpPWkrOHwwO2s9ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbaz4+Ml07az1qfDA7bD1hKzh8MDthPWIwW2NbKGNbbD4+Ml18
MCkrOD4+Ml0mMTI3XShsKXwwO2w9ZFthXXwwO2lmKChsJjF8MCk9PTApe209bD4+PjF9ZWxzZXtt
PWNbYSs0Pj4yXXwwfWw9ZFthKzEyfDBdfDA7aWYoKGwmMXwwKT09MCl7bj1sPj4+MX1lbHNle249
Y1thKzE2Pj4yXXwwfWlmKChtfDApPT0oLW58MCkpe2NbZz4+Ml09Y1tnPj4yXXw0O2k9ajtyZXR1
cm59Y1trPj4yXT1jW2Y+PjJdO2Y9ZnEoZSxrLGEsYSsyNHwwLGgsZywwKXwwO2c9Zi1hfDA7ZG97
aWYoKGZ8MCk9PShhfDApKXtpZigoY1tiPj4yXXwwKSE9MTIpe2JyZWFrfWNbYj4+Ml09MDtpPWo7
cmV0dXJufX13aGlsZSgwKTtpZigoZ3wwKSE9MTIpe2k9ajtyZXR1cm59Zz1jW2I+PjJdfDA7aWYo
KGd8MCk+PTEyKXtpPWo7cmV0dXJufWNbYj4+Ml09ZysxMjtpPWo7cmV0dXJufWZ1bmN0aW9uIGdL
KGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MDtiPWk7aD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09
Y1toPj4yXTtoPWR8MDtkPWNbaD4+Ml18MDtkb3tpZigoZHwwKT09MCl7aj0wfWVsc2V7aWYoKGNb
ZCsxMj4+Ml18MCkhPShjW2QrMTY+PjJdfDApKXtqPWQ7YnJlYWt9aWYoKGIwW2NbKGNbZD4+Ml18
MCkrMzY+PjJdJjEyN10oZCl8MCk9PS0xKXtjW2g+PjJdPTA7aj0wO2JyZWFrfWVsc2V7aj1jW2g+
PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtkPShqfDApPT0wO2o9ZXwwO2U9Y1tqPj4yXXwwO0wyODIy
OmRve2lmKChlfDApPT0wKXtrPTIzMzd9ZWxzZXtkb3tpZigoY1tlKzEyPj4yXXwwKT09KGNbZSsx
Nj4+Ml18MCkpe2lmKChiMFtjWyhjW2U+PjJdfDApKzM2Pj4yXSYxMjddKGUpfDApIT0tMSl7YnJl
YWt9Y1tqPj4yXT0wO2s9MjMzNzticmVhayBMMjgyMn19d2hpbGUoMCk7aWYoZCl7bD1lO209MH1l
bHNle2s9MjMzOH19fXdoaWxlKDApO2lmKChrfDApPT0yMzM3KXtpZihkKXtrPTIzMzh9ZWxzZXts
PTA7bT0xfX1pZigoa3wwKT09MjMzOCl7Y1tmPj4yXT1jW2Y+PjJdfDY7aT1iO3JldHVybn1kPWNb
aD4+Ml18MDtlPWNbZCsxMj4+Ml18MDtpZigoZXwwKT09KGNbZCsxNj4+Ml18MCkpe249KGIwW2Nb
KGNbZD4+Ml18MCkrMzY+PjJdJjEyN10oZCl8MCkmMjU1fWVsc2V7bj1hW2VdfDB9aWYoKGIxW2Nb
KGNbZz4+Ml18MCkrMzY+PjJdJjYzXShnLG4sMCl8MCk8PDI0Pj4yNCE9Mzcpe2NbZj4+Ml09Y1tm
Pj4yXXw0O2k9YjtyZXR1cm59bj1jW2g+PjJdfDA7Zz1uKzEyfDA7ZT1jW2c+PjJdfDA7aWYoKGV8
MCk9PShjW24rMTY+PjJdfDApKXtkPWNbKGNbbj4+Ml18MCkrNDA+PjJdfDA7YjBbZCYxMjddKG4p
fDB9ZWxzZXtjW2c+PjJdPWUrMX1lPWNbaD4+Ml18MDtkb3tpZigoZXwwKT09MCl7bz0wfWVsc2V7
aWYoKGNbZSsxMj4+Ml18MCkhPShjW2UrMTY+PjJdfDApKXtvPWU7YnJlYWt9aWYoKGIwW2NbKGNb
ZT4+Ml18MCkrMzY+PjJdJjEyN10oZSl8MCk9PS0xKXtjW2g+PjJdPTA7bz0wO2JyZWFrfWVsc2V7
bz1jW2g+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtoPShvfDApPT0wO2Rve2lmKG0pe2s9MjM1N31l
bHNle2lmKChjW2wrMTI+PjJdfDApIT0oY1tsKzE2Pj4yXXwwKSl7aWYoIShoXihsfDApPT0wKSl7
YnJlYWt9aT1iO3JldHVybn1pZigoYjBbY1soY1tsPj4yXXwwKSszNj4+Ml0mMTI3XShsKXwwKT09
LTEpe2Nbaj4+Ml09MDtrPTIzNTc7YnJlYWt9aWYoIWgpe2JyZWFrfWk9YjtyZXR1cm59fXdoaWxl
KDApO2Rve2lmKChrfDApPT0yMzU3KXtpZihoKXticmVha31pPWI7cmV0dXJufX13aGlsZSgwKTtj
W2Y+PjJdPWNbZj4+Ml18MjtpPWI7cmV0dXJufWZ1bmN0aW9uIGdMKGQsZSxmLGcsaCl7ZD1kfDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9
MCxGPTAsRz0wLEg9MDtqPWk7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tr
Pj4yXTtrPWR8MDtkPWNbaz4+Ml18MDtkb3tpZigoZHwwKT09MCl7bD0wfWVsc2V7aWYoKGNbZCsx
Mj4+Ml18MCkhPShjW2QrMTY+PjJdfDApKXtsPWQ7YnJlYWt9aWYoKGIwW2NbKGNbZD4+Ml18MCkr
MzY+PjJdJjEyN10oZCl8MCk9PS0xKXtjW2s+PjJdPTA7bD0wO2JyZWFrfWVsc2V7bD1jW2s+PjJd
fDA7YnJlYWt9fX13aGlsZSgwKTtkPShsfDApPT0wO2w9ZXwwO2U9Y1tsPj4yXXwwO0wyODc2OmRv
e2lmKChlfDApPT0wKXttPTIzNzd9ZWxzZXtkb3tpZigoY1tlKzEyPj4yXXwwKT09KGNbZSsxNj4+
Ml18MCkpe2lmKChiMFtjWyhjW2U+PjJdfDApKzM2Pj4yXSYxMjddKGUpfDApIT0tMSl7YnJlYWt9
Y1tsPj4yXT0wO209MjM3NzticmVhayBMMjg3Nn19d2hpbGUoMCk7aWYoZCl7bj1lfWVsc2V7bT0y
Mzc4fX19d2hpbGUoMCk7aWYoKG18MCk9PTIzNzcpe2lmKGQpe209MjM3OH1lbHNle249MH19aWYo
KG18MCk9PTIzNzgpe2NbZj4+Ml09Y1tmPj4yXXw2O289MDtpPWo7cmV0dXJuIG98MH1kPWNbaz4+
Ml18MDtlPWNbZCsxMj4+Ml18MDtpZigoZXwwKT09KGNbZCsxNj4+Ml18MCkpe3A9KGIwW2NbKGNb
ZD4+Ml18MCkrMzY+PjJdJjEyN10oZCl8MCkmMjU1fWVsc2V7cD1hW2VdfDB9ZG97aWYocDw8MjQ+
PjI0Pi0xKXtlPWcrOHwwO2lmKChiWyhjW2U+PjJdfDApKyhwPDwyND4+MjQ8PDEpPj4xXSYyMDQ4
KT09MCl7YnJlYWt9ZD1nO3E9KGIxW2NbKGNbZD4+Ml18MCkrMzY+PjJdJjYzXShnLHAsMCl8MCk8
PDI0Pj4yNDtyPWNbaz4+Ml18MDtzPXIrMTJ8MDt0PWNbcz4+Ml18MDtpZigodHwwKT09KGNbcisx
Nj4+Ml18MCkpe3U9Y1soY1tyPj4yXXwwKSs0MD4+Ml18MDtiMFt1JjEyN10ocil8MDt2PXE7dz1o
O3g9bn1lbHNle2Nbcz4+Ml09dCsxO3Y9cTt3PWg7eD1ufXdoaWxlKDEpe3k9di00OHwwO3E9dy0x
fDA7dD1jW2s+PjJdfDA7ZG97aWYoKHR8MCk9PTApe3o9MH1lbHNle2lmKChjW3QrMTI+PjJdfDAp
IT0oY1t0KzE2Pj4yXXwwKSl7ej10O2JyZWFrfWlmKChiMFtjWyhjW3Q+PjJdfDApKzM2Pj4yXSYx
MjddKHQpfDApPT0tMSl7Y1trPj4yXT0wO3o9MDticmVha31lbHNle3o9Y1trPj4yXXwwO2JyZWFr
fX19d2hpbGUoMCk7dD0oenwwKT09MDtpZigoeHwwKT09MCl7QT16O0I9MH1lbHNle2Rve2lmKChj
W3grMTI+PjJdfDApPT0oY1t4KzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbeD4+Ml18MCkrMzY+PjJd
JjEyN10oeCl8MCkhPS0xKXtDPXg7YnJlYWt9Y1tsPj4yXT0wO0M9MH1lbHNle0M9eH19d2hpbGUo
MCk7QT1jW2s+PjJdfDA7Qj1DfUQ9KEJ8MCk9PTA7aWYoISgodF5EKSYocXwwKT4wKSl7bT0yNDA3
O2JyZWFrfXM9Y1tBKzEyPj4yXXwwO2lmKChzfDApPT0oY1tBKzE2Pj4yXXwwKSl7RT0oYjBbY1so
Y1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKSYyNTV9ZWxzZXtFPWFbc118MH1pZihFPDwyND4+
MjQ8PS0xKXtvPXk7bT0yNDIyO2JyZWFrfWlmKChiWyhjW2U+PjJdfDApKyhFPDwyND4+MjQ8PDEp
Pj4xXSYyMDQ4KT09MCl7bz15O209MjQyMzticmVha31zPSgoYjFbY1soY1tkPj4yXXwwKSszNj4+
Ml0mNjNdKGcsRSwwKXwwKTw8MjQ+PjI0KSsoeSoxMHwwKXwwO3I9Y1trPj4yXXwwO3U9cisxMnww
O0Y9Y1t1Pj4yXXwwO2lmKChGfDApPT0oY1tyKzE2Pj4yXXwwKSl7Rz1jWyhjW3I+PjJdfDApKzQw
Pj4yXXwwO2IwW0cmMTI3XShyKXwwO3Y9czt3PXE7eD1CO2NvbnRpbnVlfWVsc2V7Y1t1Pj4yXT1G
KzE7dj1zO3c9cTt4PUI7Y29udGludWV9fWlmKChtfDApPT0yNDA3KXtkb3tpZigoQXwwKT09MCl7
SD0wfWVsc2V7aWYoKGNbQSsxMj4+Ml18MCkhPShjW0ErMTY+PjJdfDApKXtIPUE7YnJlYWt9aWYo
KGIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MCk9PS0xKXtjW2s+PjJdPTA7SD0wO2Jy
ZWFrfWVsc2V7SD1jW2s+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtkPShIfDApPT0wO0wyOTMzOmRv
e2lmKEQpe209MjQxN31lbHNle2Rve2lmKChjW0IrMTI+PjJdfDApPT0oY1tCKzE2Pj4yXXwwKSl7
aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXticmVha31jW2w+PjJd
PTA7bT0yNDE3O2JyZWFrIEwyOTMzfX13aGlsZSgwKTtpZihkKXtvPXl9ZWxzZXticmVha31pPWo7
cmV0dXJuIG98MH19d2hpbGUoMCk7ZG97aWYoKG18MCk9PTI0MTcpe2lmKGQpe2JyZWFrfWVsc2V7
bz15fWk9ajtyZXR1cm4gb3wwfX13aGlsZSgwKTtjW2Y+PjJdPWNbZj4+Ml18MjtvPXk7aT1qO3Jl
dHVybiBvfDB9ZWxzZSBpZigobXwwKT09MjQyMil7aT1qO3JldHVybiBvfDB9ZWxzZSBpZigobXww
KT09MjQyMyl7aT1qO3JldHVybiBvfDB9fX13aGlsZSgwKTtjW2Y+PjJdPWNbZj4+Ml18NDtvPTA7
aT1qO3JldHVybiBvfDB9ZnVuY3Rpb24gZ00oYSl7YT1hfDA7cmV0dXJuIDJ9ZnVuY3Rpb24gZ04o
YSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZ08oYSl7YT1hfDA7ZGUoYXww
KTtyZXR1cm59ZnVuY3Rpb24gZ1AoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wO2o9aTtpPWkrMTZ8MDtrPWQ7ZD1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2s+PjJdO2s9ZTtlPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1qfDA7bD1qKzh8MDtjW2s+PjJdPWNbZD4+Ml07Y1ts
Pj4yXT1jW2U+PjJdO2dSKGEsYixrLGwsZixnLGgsMjI5NiwyMzI4KTtpPWo7cmV0dXJufWZ1bmN0
aW9uIGdRKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2s9aTtpPWkrMTZ8MDts
PWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1rfDA7bT1rKzh8MDtuPWQrOHwwO289YjBb
Y1soY1tuPj4yXXwwKSsyMD4+Ml0mMTI3XShuKXwwO2NbbD4+Ml09Y1tlPj4yXTtjW20+PjJdPWNb
Zj4+Ml07Zj1hW29dfDA7aWYoKGYmMSk9PTApe3A9bys0fDA7cT1vKzR8MH1lbHNle2U9Y1tvKzg+
PjJdfDA7cD1lO3E9ZX1lPWYmMjU1O2lmKChlJjF8MCk9PTApe3I9ZT4+PjF9ZWxzZXtyPWNbbys0
Pj4yXXwwfWdSKGIsZCxsLG0sZyxoLGoscSxwKyhyPDwyKXwwKTtpPWs7cmV0dXJufWZ1bmN0aW9u
IGdSKGEsYixkLGUsZixnLGgsaixrKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0w
LFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFn
PTA7bD1pO2k9aSs0OHwwO209ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbbT4+
Ml07bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4yXTttPWx8MDtuPWwr
MTZ8MDtvPWwrMjR8MDtwPWwrMzJ8MDtxPWwrNDB8MDtlaihuLGYpO3I9bnwwO249Y1tyPj4yXXww
O2lmKChjWzM5MjJdfDApIT0tMSl7Y1ttPj4yXT0xNTY4ODtjW20rND4+Ml09MTI7Y1ttKzg+PjJd
PTA7ZFcoMTU2ODgsbSw5Nil9bT0oY1szOTIzXXwwKS0xfDA7cz1jW24rOD4+Ml18MDtkb3tpZigo
Y1tuKzEyPj4yXXwwKS1zPj4yPj4+MD5tPj4+MCl7dD1jW3MrKG08PDIpPj4yXXwwO2lmKCh0fDAp
PT0wKXticmVha311PXQ7dj1jW3I+PjJdfDA7ZHoodil8MDtjW2c+PjJdPTA7dj1kfDA7TDI5Njk6
ZG97aWYoKGp8MCk9PShrfDApKXt3PTI1MDh9ZWxzZXt4PWV8MDt5PXQ7ej10O0E9dDtCPWI7Qz1w
fDA7RD1xfDA7RT1vfDA7Rj1qO0c9MDtMMjk3MTp3aGlsZSgxKXtIPUc7d2hpbGUoMSl7aWYoKEh8
MCkhPTApe3c9MjUwODticmVhayBMMjk2OX1JPWNbdj4+Ml18MDtkb3tpZigoSXwwKT09MCl7Sj0w
fWVsc2V7Sz1jW0krMTI+PjJdfDA7aWYoKEt8MCk9PShjW0krMTY+PjJdfDApKXtMPWIwW2NbKGNb
ST4+Ml18MCkrMzY+PjJdJjEyN10oSSl8MH1lbHNle0w9Y1tLPj4yXXwwfWlmKChMfDApIT0tMSl7
Sj1JO2JyZWFrfWNbdj4+Ml09MDtKPTB9fXdoaWxlKDApO0k9KEp8MCk9PTA7Sz1jW3g+PjJdfDA7
ZG97aWYoKEt8MCk9PTApe3c9MjQ2MH1lbHNle009Y1tLKzEyPj4yXXwwO2lmKChNfDApPT0oY1tL
KzE2Pj4yXXwwKSl7Tj1iMFtjWyhjW0s+PjJdfDApKzM2Pj4yXSYxMjddKEspfDB9ZWxzZXtOPWNb
TT4+Ml18MH1pZigoTnwwKT09LTEpe2NbeD4+Ml09MDt3PTI0NjA7YnJlYWt9ZWxzZXtpZihJXihL
fDApPT0wKXtPPUs7YnJlYWt9ZWxzZXt3PTI0NjI7YnJlYWsgTDI5NzF9fX19d2hpbGUoMCk7aWYo
KHd8MCk9PTI0NjApe3c9MDtpZihJKXt3PTI0NjI7YnJlYWsgTDI5NzF9ZWxzZXtPPTB9fWlmKChi
MVtjWyhjW3k+PjJdfDApKzUyPj4yXSY2M10odSxjW0Y+PjJdfDAsMCl8MCk8PDI0Pj4yND09Mzcp
e3c9MjQ2NTticmVha31pZihiMVtjWyhjW3o+PjJdfDApKzEyPj4yXSY2M10odSw4MTkyLGNbRj4+
Ml18MCl8MCl7UD1GO3c9MjQ3NTticmVha31RPUorMTJ8MDtLPWNbUT4+Ml18MDtSPUorMTZ8MDtp
ZigoS3wwKT09KGNbUj4+Ml18MCkpe1M9YjBbY1soY1tKPj4yXXwwKSszNj4+Ml0mMTI3XShKKXww
fWVsc2V7Uz1jW0s+PjJdfDB9Sz1iX1tjWyhjW0E+PjJdfDApKzI4Pj4yXSYzMV0odSxTKXwwO2lm
KChLfDApPT0oYl9bY1soY1tBPj4yXXwwKSsyOD4+Ml0mMzFdKHUsY1tGPj4yXXwwKXwwKSl7dz0y
NTAzO2JyZWFrfWNbZz4+Ml09NDtIPTR9TDMwMDM6ZG97aWYoKHd8MCk9PTI1MDMpe3c9MDtIPWNb
UT4+Ml18MDtpZigoSHwwKT09KGNbUj4+Ml18MCkpe0s9Y1soY1tKPj4yXXwwKSs0MD4+Ml18MDti
MFtLJjEyN10oSil8MH1lbHNle2NbUT4+Ml09SCs0fVQ9Ris0fDB9ZWxzZSBpZigod3wwKT09MjQ2
NSl7dz0wO0g9Ris0fDA7aWYoKEh8MCk9PShrfDApKXt3PTI0NjY7YnJlYWsgTDI5NzF9Sz1iMVtj
WyhjW3k+PjJdfDApKzUyPj4yXSY2M10odSxjW0g+PjJdfDAsMCl8MDtzd2l0Y2goSzw8MjQ+PjI0
KXtjYXNlIDY5OmNhc2UgNDg6e009Ris4fDA7aWYoKE18MCk9PShrfDApKXt3PTI0Njk7YnJlYWsg
TDI5NzF9VT1LO1Y9YjFbY1soY1t5Pj4yXXwwKSs1Mj4+Ml0mNjNdKHUsY1tNPj4yXXwwLDApfDA7
Vz1NO2JyZWFrfTtkZWZhdWx0OntVPTA7Vj1LO1c9SH19SD1jWyhjW0I+PjJdfDApKzM2Pj4yXXww
O2NbQz4+Ml09SjtjW0Q+PjJdPU87YjdbSCY3XShvLGIscCxxLGYsZyxoLFYsVSk7Y1t2Pj4yXT1j
W0U+PjJdO1Q9Vys0fDB9ZWxzZSBpZigod3wwKT09MjQ3NSl7d2hpbGUoMSl7dz0wO0g9UCs0fDA7
aWYoKEh8MCk9PShrfDApKXtYPWs7YnJlYWt9aWYoYjFbY1soY1t6Pj4yXXwwKSsxMj4+Ml0mNjNd
KHUsODE5MixjW0g+PjJdfDApfDApe1A9SDt3PTI0NzV9ZWxzZXtYPUg7YnJlYWt9fUk9SjtIPU87
d2hpbGUoMSl7ZG97aWYoKEl8MCk9PTApe1k9MH1lbHNle0s9Y1tJKzEyPj4yXXwwO2lmKChLfDAp
PT0oY1tJKzE2Pj4yXXwwKSl7Wj1iMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDB9ZWxz
ZXtaPWNbSz4+Ml18MH1pZigoWnwwKSE9LTEpe1k9STticmVha31jW3Y+PjJdPTA7WT0wfX13aGls
ZSgwKTtLPShZfDApPT0wO2Rve2lmKChIfDApPT0wKXt3PTI0OTB9ZWxzZXtNPWNbSCsxMj4+Ml18
MDtpZigoTXwwKT09KGNbSCsxNj4+Ml18MCkpe189YjBbY1soY1tIPj4yXXwwKSszNj4+Ml0mMTI3
XShIKXwwfWVsc2V7Xz1jW00+PjJdfDB9aWYoKF98MCk9PS0xKXtjW3g+PjJdPTA7dz0yNDkwO2Jy
ZWFrfWVsc2V7aWYoS14oSHwwKT09MCl7JD1IO2JyZWFrfWVsc2V7VD1YO2JyZWFrIEwzMDAzfX19
fXdoaWxlKDApO2lmKCh3fDApPT0yNDkwKXt3PTA7aWYoSyl7VD1YO2JyZWFrIEwzMDAzfWVsc2V7
JD0wfX1NPVkrMTJ8MDthYT1jW00+PjJdfDA7YWI9WSsxNnwwO2lmKChhYXwwKT09KGNbYWI+PjJd
fDApKXthYz1iMFtjWyhjW1k+PjJdfDApKzM2Pj4yXSYxMjddKFkpfDB9ZWxzZXthYz1jW2FhPj4y
XXwwfWlmKCEoYjFbY1soY1t6Pj4yXXwwKSsxMj4+Ml0mNjNdKHUsODE5MixhYyl8MCkpe1Q9WDti
cmVhayBMMzAwM31hYT1jW00+PjJdfDA7aWYoKGFhfDApPT0oY1thYj4+Ml18MCkpe2FiPWNbKGNb
WT4+Ml18MCkrNDA+PjJdfDA7YjBbYWImMTI3XShZKXwwO0k9WTtIPSQ7Y29udGludWV9ZWxzZXtj
W00+PjJdPWFhKzQ7ST1ZO0g9JDtjb250aW51ZX19fX13aGlsZSgwKTtpZigoVHwwKT09KGt8MCkp
e3c9MjUwODticmVhayBMMjk2OX1GPVQ7Rz1jW2c+PjJdfDB9aWYoKHd8MCk9PTI0NjIpe2NbZz4+
Ml09NDthZD1KO2JyZWFrfWVsc2UgaWYoKHd8MCk9PTI0NjYpe2NbZz4+Ml09NDthZD1KO2JyZWFr
fWVsc2UgaWYoKHd8MCk9PTI0Njkpe2NbZz4+Ml09NDthZD1KO2JyZWFrfX19d2hpbGUoMCk7aWYo
KHd8MCk9PTI1MDgpe2FkPWNbdj4+Ml18MH11PWR8MDtkb3tpZigoYWR8MCkhPTApe3Q9Y1thZCsx
Mj4+Ml18MDtpZigodHwwKT09KGNbYWQrMTY+PjJdfDApKXthZT1iMFtjWyhjW2FkPj4yXXwwKSsz
Nj4+Ml0mMTI3XShhZCl8MH1lbHNle2FlPWNbdD4+Ml18MH1pZigoYWV8MCkhPS0xKXticmVha31j
W3U+PjJdPTB9fXdoaWxlKDApO3Y9Y1t1Pj4yXXwwO3Q9KHZ8MCk9PTA7Rz1lfDA7Rj1jW0c+PjJd
fDA7ZG97aWYoKEZ8MCk9PTApe3c9MjUyMX1lbHNle3o9Y1tGKzEyPj4yXXwwO2lmKCh6fDApPT0o
Y1tGKzE2Pj4yXXwwKSl7YWY9YjBbY1soY1tGPj4yXXwwKSszNj4+Ml0mMTI3XShGKXwwfWVsc2V7
YWY9Y1t6Pj4yXXwwfWlmKChhZnwwKT09LTEpe2NbRz4+Ml09MDt3PTI1MjE7YnJlYWt9aWYoISh0
XihGfDApPT0wKSl7YnJlYWt9YWc9YXwwO2NbYWc+PjJdPXY7aT1sO3JldHVybn19d2hpbGUoMCk7
ZG97aWYoKHd8MCk9PTI1MjEpe2lmKHQpe2JyZWFrfWFnPWF8MDtjW2FnPj4yXT12O2k9bDtyZXR1
cm59fXdoaWxlKDApO2NbZz4+Ml09Y1tnPj4yXXwyO2FnPWF8MDtjW2FnPj4yXT12O2k9bDtyZXR1
cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdT
KGEsYixkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtqPWk7
aT1pKzMyfDA7az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7
ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7bT1q
KzI0fDA7ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbD4+
Ml09MTU2ODg7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4LGwsOTYpfWw9KGNbMzky
M118MCktMXwwO249Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktbj4+Mj4+PjA+bD4+
PjApe289Y1tuKyhsPDwyKT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1vO289Y1tmPj4yXXww
O2R6KG8pfDA7bz1jW2U+PjJdfDA7cT1iKzh8MDtyPWIwW2NbY1txPj4yXT4+Ml0mMTI3XShxKXww
O2Nbaz4+Ml09bztvPShmUyhkLGsscixyKzE2OHwwLHAsZywwKXwwKS1yfDA7aWYoKG98MCk+PTE2
OCl7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59Y1toKzI0Pj4y
XT0oKG98MCkvMTJ8MHwwKSU3fDA7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9
ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8oNCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0
aW9uIGdUKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MDtqPWk7aT1pKzMyfDA7az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4y
XTtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4
fDA7bT1qKzI0fDA7ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEp
e2NbbD4+Ml09MTU2ODg7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4LGwsOTYpfWw9
KGNbMzkyM118MCktMXwwO249Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktbj4+Mj4+
PjA+bD4+PjApe289Y1tuKyhsPDwyKT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1vO289Y1tm
Pj4yXXwwO2R6KG8pfDA7bz1jW2U+PjJdfDA7cT1iKzh8MDtyPWIwW2NbKGNbcT4+Ml18MCkrND4+
Ml0mMTI3XShxKXwwO2Nbaz4+Ml09bztvPShmUyhkLGsscixyKzI4OHwwLHAsZywwKXwwKS1yfDA7
aWYoKG98MCk+PTI4OCl7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1
cm59Y1toKzE2Pj4yXT0oKG98MCkvMTJ8MHwwKSUxMnwwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXww
O2NbdT4+Ml09dDtpPWo7cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgx
NzYsMTM0KX1mdW5jdGlvbiBnVShhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wO2I9aTtpPWkrMzJ8MDtqPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1j
W2o+PjJdO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1ifDA7
az1iKzh8MDtsPWIrMjR8MDtlaihsLGYpO2Y9bHwwO2w9Y1tmPj4yXXwwO2lmKChjWzM5MjJdfDAp
IT0tMSl7Y1trPj4yXT0xNTY4ODtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTU2ODgsayw5
Nil9az0oY1szOTIzXXwwKS0xfDA7bT1jW2wrOD4+Ml18MDtkb3tpZigoY1tsKzEyPj4yXXwwKS1t
Pj4yPj4+MD5rPj4+MCl7bj1jW20rKGs8PDIpPj4yXXwwO2lmKChufDApPT0wKXticmVha31vPW47
bj1jW2Y+PjJdfDA7ZHoobil8MDtjW2o+PjJdPWNbZT4+Ml07bj1oYyhkLGosZyxvLDQpfDA7aWYo
KGNbZz4+Ml0mNHwwKSE9MCl7cD1kfDA7cT1jW3A+PjJdfDA7cj1hfDA7Y1tyPj4yXT1xO2k9Yjty
ZXR1cm59aWYoKG58MCk8Njkpe3M9bisyZTN8MH1lbHNle3M9KG4tNjl8MCk+Pj4wPDMxP24rMTkw
MHwwOm59Y1toKzIwPj4yXT1zLTE5MDA7cD1kfDA7cT1jW3A+PjJdfDA7cj1hfDA7Y1tyPj4yXT1x
O2k9YjtyZXR1cm59fXdoaWxlKDApO2I9Yk8oNCl8MDtrcShiKTtibChifDAsODE3NiwxMzQpfWZ1
bmN0aW9uIGdWKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9
MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MCx4PTA7YT1pO2c9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNbZz4+Ml07
Zz1ifDA7Yj1kfDA7ZD1mO0wzMTI3OndoaWxlKDEpe2g9Y1tnPj4yXXwwO2Rve2lmKChofDApPT0w
KXtqPTF9ZWxzZXtrPWNbaCsxMj4+Ml18MDtpZigoa3wwKT09KGNbaCsxNj4+Ml18MCkpe2w9YjBb
Y1soY1toPj4yXXwwKSszNj4+Ml0mMTI3XShoKXwwfWVsc2V7bD1jW2s+PjJdfDB9aWYoKGx8MCk9
PS0xKXtjW2c+PjJdPTA7aj0xO2JyZWFrfWVsc2V7aj0oY1tnPj4yXXwwKT09MDticmVha319fXdo
aWxlKDApO2g9Y1tiPj4yXXwwO2Rve2lmKChofDApPT0wKXttPTI1ODF9ZWxzZXtrPWNbaCsxMj4+
Ml18MDtpZigoa3wwKT09KGNbaCsxNj4+Ml18MCkpe249YjBbY1soY1toPj4yXXwwKSszNj4+Ml0m
MTI3XShoKXwwfWVsc2V7bj1jW2s+PjJdfDB9aWYoKG58MCk9PS0xKXtjW2I+PjJdPTA7bT0yNTgx
O2JyZWFrfWVsc2V7az0oaHwwKT09MDtpZihqXmspe289aDtwPWs7YnJlYWt9ZWxzZXtxPWg7cj1r
O2JyZWFrIEwzMTI3fX19fXdoaWxlKDApO2lmKChtfDApPT0yNTgxKXttPTA7aWYoail7cT0wO3I9
MTticmVha31lbHNle289MDtwPTF9fWg9Y1tnPj4yXXwwO2s9Y1toKzEyPj4yXXwwO2lmKChrfDAp
PT0oY1toKzE2Pj4yXXwwKSl7cz1iMFtjWyhjW2g+PjJdfDApKzM2Pj4yXSYxMjddKGgpfDB9ZWxz
ZXtzPWNbaz4+Ml18MH1pZighKGIxW2NbKGNbZD4+Ml18MCkrMTI+PjJdJjYzXShmLDgxOTIscyl8
MCkpe3E9bztyPXA7YnJlYWt9az1jW2c+PjJdfDA7aD1rKzEyfDA7dD1jW2g+PjJdfDA7aWYoKHR8
MCk9PShjW2srMTY+PjJdfDApKXt1PWNbKGNbaz4+Ml18MCkrNDA+PjJdfDA7YjBbdSYxMjddKGsp
fDA7Y29udGludWV9ZWxzZXtjW2g+PjJdPXQrNDtjb250aW51ZX19cD1jW2c+PjJdfDA7ZG97aWYo
KHB8MCk9PTApe3Y9MX1lbHNle289Y1twKzEyPj4yXXwwO2lmKChvfDApPT0oY1twKzE2Pj4yXXww
KSl7dz1iMFtjWyhjW3A+PjJdfDApKzM2Pj4yXSYxMjddKHApfDB9ZWxzZXt3PWNbbz4+Ml18MH1p
Zigod3wwKT09LTEpe2NbZz4+Ml09MDt2PTE7YnJlYWt9ZWxzZXt2PShjW2c+PjJdfDApPT0wO2Jy
ZWFrfX19d2hpbGUoMCk7ZG97aWYocil7bT0yNjAzfWVsc2V7Zz1jW3ErMTI+PjJdfDA7aWYoKGd8
MCk9PShjW3ErMTY+PjJdfDApKXt4PWIwW2NbKGNbcT4+Ml18MCkrMzY+PjJdJjEyN10ocSl8MH1l
bHNle3g9Y1tnPj4yXXwwfWlmKCh4fDApPT0tMSl7Y1tiPj4yXT0wO209MjYwMzticmVha31pZigh
KHZeKHF8MCk9PTApKXticmVha31pPWE7cmV0dXJufX13aGlsZSgwKTtkb3tpZigobXwwKT09MjYw
Myl7aWYodil7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7Y1tlPj4yXT1jW2U+PjJdfDI7aT1h
O3JldHVybn1mdW5jdGlvbiBnVyhiLGQsZSxmLGcsaCxqLGssbCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9
MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0w
LFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAs
YWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTA7bD1pO2k9aSszMjh8
MDttPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW20+PjJdO209ZjtmPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1sfDA7bj1sKzh8MDtvPWwrMTZ8MDtw
PWwrMjR8MDtxPWwrMzJ8MDtyPWwrNDB8MDtzPWwrNDh8MDt0PWwrNTZ8MDt1PWwrNjR8MDt2PWwr
NzJ8MDt3PWwrODB8MDt4PWwrODh8MDt5PWwrOTZ8MDt6PWwrMTEyfDA7QT1sKzEyMHwwO0I9bCsx
Mjh8MDtDPWwrMTM2fDA7RD1sKzE0NHwwO0U9bCsxNTJ8MDtGPWwrMTYwfDA7Rz1sKzE2OHwwO0g9
bCsxNzZ8MDtJPWwrMTg0fDA7Sj1sKzE5MnwwO0s9bCsyMDB8MDtMPWwrMjA4fDA7TT1sKzIxNnww
O049bCsyMjR8MDtPPWwrMjMyfDA7UD1sKzI0MHwwO1E9bCsyNDh8MDtSPWwrMjU2fDA7Uz1sKzI2
NHwwO1Q9bCsyNzJ8MDtVPWwrMjgwfDA7Vj1sKzI4OHwwO1c9bCsyOTZ8MDtYPWwrMzA0fDA7WT1s
KzMxMnwwO1o9bCszMjB8MDtjW2g+PjJdPTA7ZWooeixnKTtfPXp8MDt6PWNbXz4+Ml18MDtpZigo
Y1szOTIyXXwwKSE9LTEpe2NbeT4+Ml09MTU2ODg7Y1t5KzQ+PjJdPTEyO2NbeSs4Pj4yXT0wO2RX
KDE1Njg4LHksOTYpfXk9KGNbMzkyM118MCktMXwwOyQ9Y1t6Kzg+PjJdfDA7ZG97aWYoKGNbeisx
Mj4+Ml18MCktJD4+Mj4+PjA+eT4+PjApe2FhPWNbJCsoeTw8Mik+PjJdfDA7aWYoKGFhfDApPT0w
KXticmVha31hYj1hYTthYT1jW18+PjJdfDA7ZHooYWEpfDA7TDMxOTI6ZG97c3dpdGNoKGs8PDI0
Pj4yNHwwKXtjYXNlIDEwMDpjYXNlIDEwMTp7YWE9aisxMnwwO2Nbdj4+Ml09Y1tmPj4yXTthYz1o
YyhlLHYsaCxhYiwyKXwwO2FkPWNbaD4+Ml18MDtkb3tpZigoYWQmNHwwKT09MCl7aWYoKGFjLTF8
MCk+Pj4wPj0zMSl7YnJlYWt9Y1thYT4+Ml09YWM7YnJlYWsgTDMxOTJ9fXdoaWxlKDApO2NbaD4+
Ml09YWR8NDticmVha307Y2FzZSAxMTA6Y2FzZSAxMTY6e2NbSj4+Ml09Y1tmPj4yXTtnVigwLGUs
SixoLGFiKTticmVha307Y2FzZSA4ODp7YWM9ZCs4fDA7YWE9YjBbY1soY1thYz4+Ml18MCkrMjQ+
PjJdJjEyN10oYWMpfDA7YWM9ZXwwO2NbWD4+Ml09Y1thYz4+Ml07Y1tZPj4yXT1jW2Y+PjJdO2Fl
PWFbYWFdfDA7aWYoKGFlJjEpPT0wKXthZj1hYSs0fDA7YWc9YWErNHwwfWVsc2V7YWg9Y1thYSs4
Pj4yXXwwO2FmPWFoO2FnPWFofWFoPWFlJjI1NTtpZigoYWgmMXwwKT09MCl7YWk9YWg+Pj4xfWVs
c2V7YWk9Y1thYSs0Pj4yXXwwfWdSKFcsZCxYLFksZyxoLGosYWcsYWYrKGFpPDwyKXwwKTtjW2Fj
Pj4yXT1jW1c+PjJdO2JyZWFrfTtjYXNlIDk4OmNhc2UgNjY6Y2FzZSAxMDQ6e2FjPWNbZj4+Ml18
MDthYT1kKzh8MDthaD1iMFtjWyhjW2FhPj4yXXwwKSs0Pj4yXSYxMjddKGFhKXwwO2Nbdz4+Ml09
YWM7YWM9KGZTKGUsdyxhaCxhaCsyODh8MCxhYixoLDApfDApLWFofDA7aWYoKGFjfDApPj0yODgp
e2JyZWFrIEwzMTkyfWNbaisxNj4+Ml09KChhY3wwKS8xMnwwfDApJTEyfDA7YnJlYWt9O2Nhc2Ug
MTEyOntjW0s+PjJdPWNbZj4+Ml07Z1goZCxqKzh8MCxlLEssaCxhYik7YnJlYWt9O2Nhc2UgMTE0
OnthYz1lfDA7Y1tNPj4yXT1jW2FjPj4yXTtjW04+PjJdPWNbZj4+Ml07Z1IoTCxkLE0sTixnLGgs
aiwyMjE2LDIyNjApO2NbYWM+PjJdPWNbTD4+Ml07YnJlYWt9O2Nhc2UgMzc6e2NbWj4+Ml09Y1tm
Pj4yXTtnWSgwLGUsWixoLGFiKTticmVha307Y2FzZSA2ODp7YWM9ZXwwO2NbRT4+Ml09Y1thYz4+
Ml07Y1tGPj4yXT1jW2Y+PjJdO2dSKEQsZCxFLEYsZyxoLGosMjI2NCwyMjk2KTtjW2FjPj4yXT1j
W0Q+PjJdO2JyZWFrfTtjYXNlIDg5OntjW20+PjJdPWNbZj4+Ml07YWM9aGMoZSxtLGgsYWIsNCl8
MDtpZigoY1toPj4yXSY0fDApIT0wKXticmVhayBMMzE5Mn1jW2orMjA+PjJdPWFjLTE5MDA7YnJl
YWt9O2Nhc2UgODI6e2FjPWV8MDtjW1A+PjJdPWNbYWM+PjJdO2NbUT4+Ml09Y1tmPj4yXTtnUihP
LGQsUCxRLGcsaCxqLDIxOTIsMjIxMik7Y1thYz4+Ml09Y1tPPj4yXTticmVha307Y2FzZSA4Mzp7
Y1twPj4yXT1jW2Y+PjJdO2FjPWhjKGUscCxoLGFiLDIpfDA7YWg9Y1toPj4yXXwwO2lmKChhaCY0
fDApPT0wJihhY3wwKTw2MSl7Y1tqPj4yXT1hYzticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWh8
NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMDY6e2Nbcz4+Ml09Y1tmPj4yXTthaD1oYyhlLHMs
aCxhYiwzKXwwO2FjPWNbaD4+Ml18MDtpZigoYWMmNHwwKT09MCYoYWh8MCk8MzY2KXtjW2orMjg+
PjJdPWFoO2JyZWFrIEwzMTkyfWVsc2V7Y1toPj4yXT1hY3w0O2JyZWFrIEwzMTkyfWJyZWFrfTtj
YXNlIDk3OmNhc2UgNjU6e2FjPWNbZj4+Ml18MDthaD1kKzh8MDthYT1iMFtjW2NbYWg+PjJdPj4y
XSYxMjddKGFoKXwwO2NbeD4+Ml09YWM7YWM9KGZTKGUseCxhYSxhYSsxNjh8MCxhYixoLDApfDAp
LWFhfDA7aWYoKGFjfDApPj0xNjgpe2JyZWFrIEwzMTkyfWNbaisyND4+Ml09KChhY3wwKS8xMnww
fDApJTd8MDticmVha307Y2FzZSA5OTp7YWM9ZCs4fDA7YWE9YjBbY1soY1thYz4+Ml18MCkrMTI+
PjJdJjEyN10oYWMpfDA7YWM9ZXwwO2NbQj4+Ml09Y1thYz4+Ml07Y1tDPj4yXT1jW2Y+PjJdO2Fo
PWFbYWFdfDA7aWYoKGFoJjEpPT0wKXthaj1hYSs0fDA7YWs9YWErNHwwfWVsc2V7YWU9Y1thYSs4
Pj4yXXwwO2FqPWFlO2FrPWFlfWFlPWFoJjI1NTtpZigoYWUmMXwwKT09MCl7YWw9YWU+Pj4xfWVs
c2V7YWw9Y1thYSs0Pj4yXXwwfWdSKEEsZCxCLEMsZyxoLGosYWssYWorKGFsPDwyKXwwKTtjW2Fj
Pj4yXT1jW0E+PjJdO2JyZWFrfTtjYXNlIDg0OnthYz1lfDA7Y1tTPj4yXT1jW2FjPj4yXTtjW1Q+
PjJdPWNbZj4+Ml07Z1IoUixkLFMsVCxnLGgsaiwyMTYwLDIxOTIpO2NbYWM+PjJdPWNbUj4+Ml07
YnJlYWt9O2Nhc2UgNzA6e2FjPWV8MDtjW0g+PjJdPWNbYWM+PjJdO2NbST4+Ml09Y1tmPj4yXTtn
UihHLGQsSCxJLGcsaCxqLDIxMjgsMjE2MCk7Y1thYz4+Ml09Y1tHPj4yXTticmVha307Y2FzZSA3
Mjp7Y1t1Pj4yXT1jW2Y+PjJdO2FjPWhjKGUsdSxoLGFiLDIpfDA7YWE9Y1toPj4yXXwwO2lmKChh
YSY0fDApPT0wJihhY3wwKTwyNCl7Y1tqKzg+PjJdPWFjO2JyZWFrIEwzMTkyfWVsc2V7Y1toPj4y
XT1hYXw0O2JyZWFrIEwzMTkyfWJyZWFrfTtjYXNlIDEyMTp7Y1tuPj4yXT1jW2Y+PjJdO2FhPWhj
KGUsbixoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7YnJlYWsgTDMxOTJ9aWYoKGFhfDAp
PDY5KXthbT1hYSsyZTN8MH1lbHNle2FtPShhYS02OXwwKT4+PjA8MzE/YWErMTkwMHwwOmFhfWNb
aisyMD4+Ml09YW0tMTkwMDticmVha307Y2FzZSAxMDk6e2Nbcj4+Ml09Y1tmPj4yXTthYT0oaGMo
ZSxyLGgsYWIsMil8MCktMXwwO2FjPWNbaD4+Ml18MDtpZigoYWMmNHwwKT09MCYoYWF8MCk8MTIp
e2NbaisxNj4+Ml09YWE7YnJlYWsgTDMxOTJ9ZWxzZXtjW2g+PjJdPWFjfDQ7YnJlYWsgTDMxOTJ9
YnJlYWt9O2Nhc2UgNzM6e2FjPWorOHwwO2NbdD4+Ml09Y1tmPj4yXTthYT1oYyhlLHQsaCxhYiwy
KXwwO2FlPWNbaD4+Ml18MDtkb3tpZigoYWUmNHwwKT09MCl7aWYoKGFhLTF8MCk+Pj4wPj0xMil7
YnJlYWt9Y1thYz4+Ml09YWE7YnJlYWsgTDMxOTJ9fXdoaWxlKDApO2NbaD4+Ml09YWV8NDticmVh
a307Y2FzZSA3Nzp7Y1txPj4yXT1jW2Y+PjJdO2FhPWhjKGUscSxoLGFiLDIpfDA7YWM9Y1toPj4y
XXwwO2lmKChhYyY0fDApPT0wJihhYXwwKTw2MCl7Y1tqKzQ+PjJdPWFhO2JyZWFrIEwzMTkyfWVs
c2V7Y1toPj4yXT1hY3w0O2JyZWFrIEwzMTkyfWJyZWFrfTtjYXNlIDExOTp7Y1tvPj4yXT1jW2Y+
PjJdO2FjPWhjKGUsbyxoLGFiLDEpfDA7YWE9Y1toPj4yXXwwO2lmKChhYSY0fDApPT0wJihhY3ww
KTw3KXtjW2orMjQ+PjJdPWFjO2JyZWFrIEwzMTkyfWVsc2V7Y1toPj4yXT1hYXw0O2JyZWFrIEwz
MTkyfWJyZWFrfTtjYXNlIDEyMDp7YWE9Y1soY1tkPj4yXXwwKSsyMD4+Ml18MDtjW1U+PjJdPWNb
ZT4+Ml07Y1tWPj4yXT1jW2Y+PjJdO2JYW2FhJjEyN10oYixkLFUsVixnLGgsaik7aT1sO3JldHVy
bn07ZGVmYXVsdDp7Y1toPj4yXT1jW2g+PjJdfDR9fX13aGlsZSgwKTtjW2I+PjJdPWNbZT4+Ml07
aT1sO3JldHVybn19d2hpbGUoMCk7bD1iTyg0KXwwO2txKGwpO2JsKGx8MCw4MTc2LDEzNCl9ZnVu
Y3Rpb24gZ1goYSxiLGUsZixnLGgpe2E9YXwwO2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHww
O3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wO2o9aTtpPWkrOHwwO2s9ZjtmPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2Y+PjJdPWNbaz4+Ml07az1qfDA7bD1hKzh8MDthPWIwW2NbKGNbbD4+Ml18MCkr
OD4+Ml0mMTI3XShsKXwwO2w9ZFthXXwwO2lmKChsJjF8MCk9PTApe209bD4+PjF9ZWxzZXttPWNb
YSs0Pj4yXXwwfWw9ZFthKzEyfDBdfDA7aWYoKGwmMXwwKT09MCl7bj1sPj4+MX1lbHNle249Y1th
KzE2Pj4yXXwwfWlmKChtfDApPT0oLW58MCkpe2NbZz4+Ml09Y1tnPj4yXXw0O2k9ajtyZXR1cm59
Y1trPj4yXT1jW2Y+PjJdO2Y9ZlMoZSxrLGEsYSsyNHwwLGgsZywwKXwwO2c9Zi1hfDA7ZG97aWYo
KGZ8MCk9PShhfDApKXtpZigoY1tiPj4yXXwwKSE9MTIpe2JyZWFrfWNbYj4+Ml09MDtpPWo7cmV0
dXJufX13aGlsZSgwKTtpZigoZ3wwKSE9MTIpe2k9ajtyZXR1cm59Zz1jW2I+PjJdfDA7aWYoKGd8
MCk+PTEyKXtpPWo7cmV0dXJufWNbYj4+Ml09ZysxMjtpPWo7cmV0dXJufQotZnVuY3Rpb24gZ1ko
YSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTA7YT1pO2c9ZDtkPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Q+PjJdPWNbZz4+Ml07Zz1ifDA7Yj1jW2c+PjJdfDA7ZG97aWYoKGJ8MCk9
PTApe2g9MX1lbHNle2o9Y1tiKzEyPj4yXXwwO2lmKChqfDApPT0oY1tiKzE2Pj4yXXwwKSl7az1i
MFtjWyhjW2I+PjJdfDApKzM2Pj4yXSYxMjddKGIpfDB9ZWxzZXtrPWNbaj4+Ml18MH1pZigoa3ww
KT09LTEpe2NbZz4+Ml09MDtoPTE7YnJlYWt9ZWxzZXtoPShjW2c+PjJdfDApPT0wO2JyZWFrfX19
d2hpbGUoMCk7az1kfDA7ZD1jW2s+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2w9MjcxNn1lbHNle2I9
Y1tkKzEyPj4yXXwwO2lmKChifDApPT0oY1tkKzE2Pj4yXXwwKSl7bT1iMFtjWyhjW2Q+PjJdfDAp
KzM2Pj4yXSYxMjddKGQpfDB9ZWxzZXttPWNbYj4+Ml18MH1pZigobXwwKT09LTEpe2Nbaz4+Ml09
MDtsPTI3MTY7YnJlYWt9ZWxzZXtiPShkfDApPT0wO2lmKGheYil7bj1kO289YjticmVha31lbHNl
e2w9MjcxODticmVha319fX13aGlsZSgwKTtpZigobHwwKT09MjcxNil7aWYoaCl7bD0yNzE4fWVs
c2V7bj0wO289MX19aWYoKGx8MCk9PTI3MTgpe2NbZT4+Ml09Y1tlPj4yXXw2O2k9YTtyZXR1cm59
aD1jW2c+PjJdfDA7ZD1jW2grMTI+PjJdfDA7aWYoKGR8MCk9PShjW2grMTY+PjJdfDApKXtwPWIw
W2NbKGNbaD4+Ml18MCkrMzY+PjJdJjEyN10oaCl8MH1lbHNle3A9Y1tkPj4yXXwwfWlmKChiMVtj
WyhjW2Y+PjJdfDApKzUyPj4yXSY2M10oZixwLDApfDApPDwyND4+MjQhPTM3KXtjW2U+PjJdPWNb
ZT4+Ml18NDtpPWE7cmV0dXJufXA9Y1tnPj4yXXwwO2Y9cCsxMnwwO2Q9Y1tmPj4yXXwwO2lmKChk
fDApPT0oY1twKzE2Pj4yXXwwKSl7aD1jWyhjW3A+PjJdfDApKzQwPj4yXXwwO2IwW2gmMTI3XShw
KXwwfWVsc2V7Y1tmPj4yXT1kKzR9ZD1jW2c+PjJdfDA7ZG97aWYoKGR8MCk9PTApe3E9MX1lbHNl
e2Y9Y1tkKzEyPj4yXXwwO2lmKChmfDApPT0oY1tkKzE2Pj4yXXwwKSl7cj1iMFtjWyhjW2Q+PjJd
fDApKzM2Pj4yXSYxMjddKGQpfDB9ZWxzZXtyPWNbZj4+Ml18MH1pZigocnwwKT09LTEpe2NbZz4+
Ml09MDtxPTE7YnJlYWt9ZWxzZXtxPShjW2c+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7ZG97
aWYobyl7bD0yNzQwfWVsc2V7Zz1jW24rMTI+PjJdfDA7aWYoKGd8MCk9PShjW24rMTY+PjJdfDAp
KXtzPWIwW2NbKGNbbj4+Ml18MCkrMzY+PjJdJjEyN10obil8MH1lbHNle3M9Y1tnPj4yXXwwfWlm
KChzfDApPT0tMSl7Y1trPj4yXT0wO2w9Mjc0MDticmVha31pZighKHFeKG58MCk9PTApKXticmVh
a31pPWE7cmV0dXJufX13aGlsZSgwKTtkb3tpZigobHwwKT09Mjc0MCl7aWYocSl7YnJlYWt9aT1h
O3JldHVybn19d2hpbGUoMCk7Y1tlPj4yXT1jW2U+PjJdfDI7aT1hO3JldHVybn1mdW5jdGlvbiBn
WihhKXthPWF8MDtyZXR1cm4gMTI3fWZ1bmN0aW9uIGdfKGEpe2E9YXwwO3JldHVybiAxMjd9ZnVu
Y3Rpb24gZyQoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gZzAoYSl7YT1hfDA7cmV0dXJuIDEy
N31mdW5jdGlvbiBnMShhKXthPWF8MDtyZXR1cm4gMTI3fWZ1bmN0aW9uIGcyKGEpe2E9YXwwO3Jl
dHVybiAwfWZ1bmN0aW9uIGczKGEpe2E9YXwwO3JldHVybiAyMTQ3NDgzNjQ3fWZ1bmN0aW9uIGc0
KGEpe2E9YXwwO3JldHVybiAyMTQ3NDgzNjQ3fWZ1bmN0aW9uIGc1KGEpe2E9YXwwO3JldHVybiAw
fWZ1bmN0aW9uIGc2KGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtD
PUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODthW2MrM3ww
XT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gZzcoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYz
NDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7
Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBnOChiLGMpe2I9YnwwO2M9Y3ww
O2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODth
W2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGc5KGIs
Yyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09
QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59
ZnVuY3Rpb24gaGEoYixjKXtiPWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9
Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2FbYyszfDBd
PUMmMjU1O3JldHVybn1mdW5jdGlvbiBoYihiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0
O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtD
PUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGhjKGEsYixkLGUsZil7YT1hfDA7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTA7Zz1pO2g9YjtiPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2I+PjJd
PWNbaD4+Ml07aD1hfDA7YT1jW2g+PjJdfDA7ZG97aWYoKGF8MCk9PTApe2o9MX1lbHNle2s9Y1th
KzEyPj4yXXwwO2lmKChrfDApPT0oY1thKzE2Pj4yXXwwKSl7bD1iMFtjWyhjW2E+PjJdfDApKzM2
Pj4yXSYxMjddKGEpfDB9ZWxzZXtsPWNbaz4+Ml18MH1pZigobHwwKT09LTEpe2NbaD4+Ml09MDtq
PTE7YnJlYWt9ZWxzZXtqPShjW2g+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7bD1ifDA7Yj1j
W2w+PjJdfDA7ZG97aWYoKGJ8MCk9PTApe209Mjl9ZWxzZXthPWNbYisxMj4+Ml18MDtpZigoYXww
KT09KGNbYisxNj4+Ml18MCkpe249YjBbY1soY1tiPj4yXXwwKSszNj4+Ml0mMTI3XShiKXwwfWVs
c2V7bj1jW2E+PjJdfDB9aWYoKG58MCk9PS0xKXtjW2w+PjJdPTA7bT0yOTticmVha31lbHNle2lm
KGpeKGJ8MCk9PTApe289YjticmVha31lbHNle209MzE7YnJlYWt9fX19d2hpbGUoMCk7aWYoKG18
MCk9PTI5KXtpZihqKXttPTMxfWVsc2V7bz0wfX1pZigobXwwKT09MzEpe2NbZD4+Ml09Y1tkPj4y
XXw2O3A9MDtpPWc7cmV0dXJuIHB8MH1qPWNbaD4+Ml18MDtiPWNbaisxMj4+Ml18MDtpZigoYnww
KT09KGNbaisxNj4+Ml18MCkpe3E9YjBbY1soY1tqPj4yXXwwKSszNj4+Ml0mMTI3XShqKXwwfWVs
c2V7cT1jW2I+PjJdfDB9Yj1lO2lmKCEoYjFbY1soY1tiPj4yXXwwKSsxMj4+Ml0mNjNdKGUsMjA0
OCxxKXwwKSl7Y1tkPj4yXT1jW2Q+PjJdfDQ7cD0wO2k9ZztyZXR1cm4gcHwwfWo9ZTtuPShiMVtj
WyhjW2o+PjJdfDApKzUyPj4yXSY2M10oZSxxLDApfDApPDwyND4+MjQ7cT1jW2g+PjJdfDA7YT1x
KzEyfDA7az1jW2E+PjJdfDA7aWYoKGt8MCk9PShjW3ErMTY+PjJdfDApKXtyPWNbKGNbcT4+Ml18
MCkrNDA+PjJdfDA7YjBbciYxMjddKHEpfDA7cz1uO3Q9Zjt1PW99ZWxzZXtjW2E+PjJdPWsrNDtz
PW47dD1mO3U9b313aGlsZSgxKXt2PXMtNDh8MDtvPXQtMXwwO2Y9Y1toPj4yXXwwO2Rve2lmKChm
fDApPT0wKXt3PTB9ZWxzZXtuPWNbZisxMj4+Ml18MDtpZigobnwwKT09KGNbZisxNj4+Ml18MCkp
e3g9YjBbY1soY1tmPj4yXXwwKSszNj4+Ml0mMTI3XShmKXwwfWVsc2V7eD1jW24+PjJdfDB9aWYo
KHh8MCk9PS0xKXtjW2g+PjJdPTA7dz0wO2JyZWFrfWVsc2V7dz1jW2g+PjJdfDA7YnJlYWt9fX13
aGlsZSgwKTtmPSh3fDApPT0wO2lmKCh1fDApPT0wKXt5PXc7ej0wfWVsc2V7bj1jW3UrMTI+PjJd
fDA7aWYoKG58MCk9PShjW3UrMTY+PjJdfDApKXtBPWIwW2NbKGNbdT4+Ml18MCkrMzY+PjJdJjEy
N10odSl8MH1lbHNle0E9Y1tuPj4yXXwwfWlmKChBfDApPT0tMSl7Y1tsPj4yXT0wO0I9MH1lbHNl
e0I9dX15PWNbaD4+Ml18MDt6PUJ9Qz0oenwwKT09MDtpZighKChmXkMpJihvfDApPjApKXticmVh
a31mPWNbeSsxMj4+Ml18MDtpZigoZnwwKT09KGNbeSsxNj4+Ml18MCkpe0Q9YjBbY1soY1t5Pj4y
XXwwKSszNj4+Ml0mMTI3XSh5KXwwfWVsc2V7RD1jW2Y+PjJdfDB9aWYoIShiMVtjWyhjW2I+PjJd
fDApKzEyPj4yXSY2M10oZSwyMDQ4LEQpfDApKXtwPXY7bT04MTticmVha31mPSgoYjFbY1soY1tq
Pj4yXXwwKSs1Mj4+Ml0mNjNdKGUsRCwwKXwwKTw8MjQ+PjI0KSsodioxMHwwKXwwO249Y1toPj4y
XXwwO2s9bisxMnwwO2E9Y1trPj4yXXwwO2lmKChhfDApPT0oY1tuKzE2Pj4yXXwwKSl7cT1jWyhj
W24+PjJdfDApKzQwPj4yXXwwO2IwW3EmMTI3XShuKXwwO3M9Zjt0PW87dT16O2NvbnRpbnVlfWVs
c2V7Y1trPj4yXT1hKzQ7cz1mO3Q9bzt1PXo7Y29udGludWV9fWlmKChtfDApPT04MSl7aT1nO3Jl
dHVybiBwfDB9ZG97aWYoKHl8MCk9PTApe0U9MX1lbHNle3U9Y1t5KzEyPj4yXXwwO2lmKCh1fDAp
PT0oY1t5KzE2Pj4yXXwwKSl7Rj1iMFtjWyhjW3k+PjJdfDApKzM2Pj4yXSYxMjddKHkpfDB9ZWxz
ZXtGPWNbdT4+Ml18MH1pZigoRnwwKT09LTEpe2NbaD4+Ml09MDtFPTE7YnJlYWt9ZWxzZXtFPShj
W2g+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7ZG97aWYoQyl7bT03NX1lbHNle2g9Y1t6KzEy
Pj4yXXwwO2lmKChofDApPT0oY1t6KzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW3o+PjJdfDApKzM2Pj4y
XSYxMjddKHopfDB9ZWxzZXtHPWNbaD4+Ml18MH1pZigoR3wwKT09LTEpe2NbbD4+Ml09MDttPTc1
O2JyZWFrfWlmKEVeKHp8MCk9PTApe3A9dn1lbHNle2JyZWFrfWk9ZztyZXR1cm4gcHwwfX13aGls
ZSgwKTtkb3tpZigobXwwKT09NzUpe2lmKEUpe2JyZWFrfWVsc2V7cD12fWk9ZztyZXR1cm4gcHww
fX13aGlsZSgwKTtjW2Q+PjJdPWNbZD4+Ml18MjtwPXY7aT1nO3JldHVybiBwfDB9ZnVuY3Rpb24g
aGQoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtq
PWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MDtnPWk7aT1pKzExMnwwO2Y9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbZj4+
Ml07Zj1nfDA7bD1nKzh8MDttPWx8MDtuPWZ8MDthW25dPTM3O289ZisxfDA7YVtvXT1qO3A9Zisy
fDA7YVtwXT1rO2FbZiszfDBdPTA7aWYoazw8MjQ+PjI0IT0wKXthW29dPWs7YVtwXT1qfWo9Ymso
bXwwLDEwMCxufDAsaHwwLGNbZCs4Pj4yXXwwKXwwO2Q9bCtqfDA7bD1jW2U+PjJdfDA7aWYoKGp8
MCk9PTApe3E9bDtyPWJ8MDtjW3I+PjJdPXE7aT1nO3JldHVybn1lbHNle3M9bDt0PW19d2hpbGUo
MSl7bT1hW3RdfDA7aWYoKHN8MCk9PTApe3U9MH1lbHNle2w9cysyNHwwO2o9Y1tsPj4yXXwwO2lm
KChqfDApPT0oY1tzKzI4Pj4yXXwwKSl7dj1iX1tjWyhjW3M+PjJdfDApKzUyPj4yXSYzMV0ocyxt
JjI1NSl8MH1lbHNle2NbbD4+Ml09aisxO2Fbal09bTt2PW0mMjU1fXU9KHZ8MCk9PS0xPzA6c31t
PXQrMXwwO2lmKChtfDApPT0oZHwwKSl7cT11O2JyZWFrfWVsc2V7cz11O3Q9bX19cj1ifDA7Y1ty
Pj4yXT1xO2k9ZztyZXR1cm59ZnVuY3Rpb24gaGUoYSxiLGQsZSxmLGcsaCxqKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MDtmPWk7aT1pKzQwOHwwO2U9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2Q+PjJdPWNbZT4+Ml07ZT1mfDA7az1mKzQwMHwwO2w9ZXwwO2Nbaz4+Ml09ZSs0MDA7aEMo
Yis4fDAsbCxrLGcsaCxqKTtqPWNbaz4+Ml18MDtrPWNbZD4+Ml18MDtpZigobHwwKT09KGp8MCkp
e209aztuPWF8MDtjW24+PjJdPW07aT1mO3JldHVybn1lbHNle289aztwPWx9d2hpbGUoMSl7bD1j
W3A+PjJdfDA7aWYoKG98MCk9PTApe3E9MH1lbHNle2s9bysyNHwwO2Q9Y1trPj4yXXwwO2lmKChk
fDApPT0oY1tvKzI4Pj4yXXwwKSl7cj1iX1tjWyhjW28+PjJdfDApKzUyPj4yXSYzMV0obyxsKXww
fWVsc2V7Y1trPj4yXT1kKzQ7Y1tkPj4yXT1sO3I9bH1xPShyfDApPT0tMT8wOm99bD1wKzR8MDtp
ZigobHwwKT09KGp8MCkpe209cTticmVha31lbHNle289cTtwPWx9fW49YXwwO2Nbbj4+Ml09bTtp
PWY7cmV0dXJufWZ1bmN0aW9uIGhmKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0
aW9uIGhnKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhoKGEsYil7YT1hfDA7Yj1i
fDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoaShhLGIpe2E9YXwwO2I9YnwwO2skKGF8
MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaGooYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7
cmV0dXJufWZ1bmN0aW9uIGhrKGEsYil7YT1hfDA7Yj1ifDA7ZF8oYSwxLDQ1KTtyZXR1cm59ZnVu
Y3Rpb24gaGwoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaG0oYSl7YT1h
fDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaG4oYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwx
Mik7cmV0dXJufWZ1bmN0aW9uIGhvKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVy
bn1mdW5jdGlvbiBocChhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rp
b24gaHEoYSxiKXthPWF8MDtiPWJ8MDtkXyhhLDEsNDUpO3JldHVybn1mdW5jdGlvbiBocihhKXth
PWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBocyhhKXthPWF8MDtkZShhfDApO3Jl
dHVybn1mdW5jdGlvbiBodChhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVu
Y3Rpb24gaHUoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGh2
KGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBodyhhLGIpe2E9
YXwwO2I9YnwwO2V5KGEsMSw0NSk7cmV0dXJufWZ1bmN0aW9uIGh4KGEpe2E9YXwwO2RlKGF8MCk7
a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGh5KGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTA7ZD1i
O2U9Yis4fDA7Zj1jW2U+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoZnwwKT09
KGNbMjk1OF18MCkpe2c9YnwwO2RlKGcpO2tTKGQpO3JldHVybn1hNyhjW2U+PjJdfDApO2c9Ynww
O2RlKGcpO2tTKGQpO3JldHVybn1mdW5jdGlvbiBoeihiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTA7
ZD1iKzh8MDtlPWNbZD4+Ml18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChlfDApPT0o
Y1syOTU4XXwwKSl7Zj1ifDA7ZGUoZik7cmV0dXJufWE3KGNbZD4+Ml18MCk7Zj1ifDA7ZGUoZik7
cmV0dXJufWZ1bmN0aW9uIGhBKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTA7ZD1iO2U9Yis4
fDA7Zj1jW2U+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0w
KXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoZnwwKT09KGNbMjk1
OF18MCkpe2c9YnwwO2RlKGcpO2tTKGQpO3JldHVybn1hNyhjW2U+PjJdfDApO2c9YnwwO2RlKGcp
O2tTKGQpO3JldHVybn1mdW5jdGlvbiBoQihiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTA7ZD1iKzh8
MDtlPWNbZD4+Ml18MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTAp
e2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2lmKChlfDApPT0oY1syOTU4
XXwwKSl7Zj1ifDA7ZGUoZik7cmV0dXJufWE3KGNbZD4+Ml18MCk7Zj1ifDA7ZGUoZik7cmV0dXJu
fWZ1bmN0aW9uIGhDKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MDtqPWk7aT1pKzEyMHwwO2s9
anwwO2w9aisxMTJ8MDttPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztuPWorOHwwO289a3wwO2Fbb109
Mzc7cD1rKzF8MDthW3BdPWc7cT1rKzJ8MDthW3FdPWg7YVtrKzN8MF09MDtpZihoPDwyND4+MjQh
PTApe2FbcF09aDthW3FdPWd9Zz1ifDA7YmsobnwwLDEwMCxvfDAsZnwwLGNbZz4+Ml18MCl8MDtj
W2w+PjJdPTA7Y1tsKzQ+PjJdPTA7Y1ttPj4yXT1uO249KGNbZT4+Ml18MCktZD4+MjtmPWJCKGNb
Zz4+Ml18MCl8MDtnPWtlKGQsbSxuLGwpfDA7aWYoKGZ8MCkhPTApe2JCKGZ8MCl8MH1pZigoZ3ww
KT09LTEpe2hWKDkwNCl9ZWxzZXtjW2U+PjJdPWQrKGc8PDIpO2k9ajtyZXR1cm59fWZ1bmN0aW9u
IGhEKGEpe2E9YXwwO3JldHVybiAyMTQ3NDgzNjQ3fWZ1bmN0aW9uIGhFKGEpe2E9YXwwO3JldHVy
biAyMTQ3NDgzNjQ3fWZ1bmN0aW9uIGhGKGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGhHKGEp
e2E9YXwwO3JldHVybn1mdW5jdGlvbiBoSChiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0
O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtD
PUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGhJKGIsYyl7Yj1ifDA7Yz1jfDA7
Yz1iO0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2Fb
YysyfDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gaEooYSl7
YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaEsoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAs
MCwxMik7cmV0dXJufWZ1bmN0aW9uIGhMKGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3Jl
dHVybn1mdW5jdGlvbiBoTShhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVu
Y3Rpb24gaE4oYSxiKXthPWF8MDtiPWJ8MDtleShhLDEsNDUpO3JldHVybn1mdW5jdGlvbiBoTyhh
KXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBoUChhKXthPWF8MDtkZShhfDAp
O3JldHVybn1mdW5jdGlvbiBoUShiLGQsZSxmLGcsaCxqLGspe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9
MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTA7ZD1p
O2k9aSsyODB8MDtsPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9
ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1kfDA7bT1kKzE2fDA7
bj1kKzEyMHwwO289ZCsxMjh8MDtwPWQrMTM2fDA7cT1kKzE0NHwwO3I9ZCsxNTJ8MDtzPWQrMTYw
fDA7dD1kKzE3NnwwO3U9bnwwO2NbdT4+Ml09bTt2PW4rNHwwO2Nbdj4+Ml09MTY2O3c9bSsxMDB8
MDtlaihwLGgpO209cHwwO3g9Y1ttPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tsPj4yXT0x
NTY5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0oY1szOTI1XXww
KS0xfDA7eT1jW3grOD4+Ml18MDtkb3tpZigoY1t4KzEyPj4yXXwwKS15Pj4yPj4+MD5sPj4+MCl7
ej1jW3krKGw8PDIpPj4yXXwwO2lmKCh6fDApPT0wKXticmVha31BPXo7YVtxXT0wO0I9ZnwwO2Nb
cj4+Ml09Y1tCPj4yXTtkb3tpZihoUihlLHIsZyxwLGNbaCs0Pj4yXXwwLGoscSxBLG4sbyx3KXww
KXtDPXN8MDtEPWNbKGNbej4+Ml18MCkrMzI+PjJdfDA7Y2FbRCYxNV0oQSwyMTEyLDIxMjIsQyl8
MDtEPXR8MDtFPWNbbz4+Ml18MDtGPWNbdT4+Ml18MDtHPUUtRnwwO2Rve2lmKChHfDApPjk4KXtI
PWtKKEcrMnwwKXwwO2lmKChIfDApIT0wKXtJPUg7Sj1IO2JyZWFrfWtYKCk7ST0wO0o9MH1lbHNl
e0k9RDtKPTB9fXdoaWxlKDApO2lmKChhW3FdJjEpPT0wKXtLPUl9ZWxzZXthW0ldPTQ1O0s9SSsx
fDB9aWYoRj4+PjA8RT4+PjApe0c9cysxMHwwO0g9cztMPUs7TT1GO3doaWxlKDEpe049Qzt3aGls
ZSgxKXtpZigoTnwwKT09KEd8MCkpe089RzticmVha31pZigoYVtOXXwwKT09KGFbTV18MCkpe089
TjticmVha31lbHNle049TisxfDB9fWFbTF09YVsyMTEyKyhPLUgpfDBdfDA7Tj1NKzF8MDtQPUwr
MXwwO2lmKE4+Pj4wPChjW28+PjJdfDApPj4+MCl7TD1QO009Tn1lbHNle1E9UDticmVha319fWVs
c2V7UT1LfWFbUV09MDtNPWJEKER8MCwxNDA4LChMPWksaT1pKzh8MCxjW0w+PjJdPWssTCl8MCl8
MDtpPUw7aWYoKE18MCk9PTEpe2lmKChKfDApPT0wKXticmVha31rSyhKKTticmVha31NPWJPKDgp
fDA7ZEUoTSwxMzY4KTtibChNfDAsODE5MiwyMil9fXdoaWxlKDApO0E9ZXwwO3o9Y1tBPj4yXXww
O2Rve2lmKCh6fDApPT0wKXtSPTB9ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9KGNbeisxNj4+Ml18
MCkpe1I9ejticmVha31pZigoYjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwKSE9LTEp
e1I9ejticmVha31jW0E+PjJdPTA7Uj0wfX13aGlsZSgwKTtBPShSfDApPT0wO3o9Y1tCPj4yXXww
O2Rve2lmKCh6fDApPT0wKXtTPTI0NH1lbHNle2lmKChjW3orMTI+PjJdfDApIT0oY1t6KzE2Pj4y
XXwwKSl7aWYoQSl7YnJlYWt9ZWxzZXtTPTI0NjticmVha319aWYoKGIwW2NbKGNbej4+Ml18MCkr
MzY+PjJdJjEyN10oeil8MCk9PS0xKXtjW0I+PjJdPTA7Uz0yNDQ7YnJlYWt9ZWxzZXtpZihBXih6
fDApPT0wKXticmVha31lbHNle1M9MjQ2O2JyZWFrfX19fXdoaWxlKDApO2lmKChTfDApPT0yNDQp
e2lmKEEpe1M9MjQ2fX1pZigoU3wwKT09MjQ2KXtjW2o+PjJdPWNbaj4+Ml18Mn1jW2I+PjJdPVI7
ej1jW20+PjJdfDA7ZHooeil8MDt6PWNbdT4+Ml18MDtjW3U+PjJdPTA7aWYoKHp8MCk9PTApe2k9
ZDtyZXR1cm59YllbY1t2Pj4yXSY1MTFdKHopO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8
MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGhSKGUsZixnLGgsaixrLGwsbSxuLG8s
cCl7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7
bz1vfDA7cD1wfDA7dmFyIHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxB
PTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89
MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9
MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAs
YW09MCxhbj0wLGFvPTAsYXA9MCxhcT0wLGFyPTAsYXM9MCxhdD0wLGF1PTAsYXY9MCxhdz0wLGF4
PTAsYXk9MCxhej0wLGFBPTAsYUI9MCxhQz0wLGFEPTAsYUU9MCxhRj0wLGFHPTAsYUg9MCxhST0w
LGFKPTAsYUs9MCxhTD0wLGFNPTAsYU49MCxhTz0wLGFQPTAsYVE9MCxhUj0wLGFTPTAsYVQ9MCxh
VT0wLGFWPTAsYVc9MCxhWD0wLGFZPTAsYVo9MCxhXz0wLGEkPTAsYTA9MCxhMT0wLGEyPTAsYTM9
MCxhND0wLGE1PTAsYTY9MCxhNz0wLGE4PTAsYTk9MCxiYT0wLGJiPTAsYmM9MCxiZD0wLGJlPTAs
YmY9MCxiZz0wLGJoPTAsYmk9MCxiaj0wLGJrPTAsYmw9MCxibT0wLGJuPTAsYm89MCxicD0wLGJx
PTAsYnI9MCxicz0wLGJ0PTAsYnU9MCxidj0wLGJ3PTAsYng9MCxieT0wLGJ6PTAsYkE9MCxiQj0w
LGJDPTAsYkQ9MCxiRT0wO3E9aTtpPWkrNDQwfDA7cj1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZj4+Ml09Y1tyPj4yXTtyPXF8MDtzPXErNDAwfDA7dD1xKzQwOHwwO3U9cSs0MTZ8MDt2PXEr
NDI0fDA7dz12O3g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt5PWk7aT1pKzEyfDA7aT1pKzc+PjM8
PDM7ej1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztCPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztDPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztEPXJ8MDtrJCh3fDAs
MCwxMik7RT14O0Y9eTtHPXo7SD1BO2skKEV8MCwwLDEyKTtrJChGfDAsMCwxMik7ayQoR3wwLDAs
MTIpO2skKEh8MCwwLDEyKTtoWChnLGgscyx0LHUsdix4LHkseixCKTtoPW58MDtjW28+PjJdPWNb
aD4+Ml07Zz1lfDA7ZT1mfDA7Zj1tKzh8MDttPXorMXwwO0k9eis0fDA7Sj16Kzh8MDtLPXkrMXww
O0w9eSs0fDA7TT15Kzh8MDtOPShqJjUxMnwwKSE9MDtqPXgrMXwwO089eCs0fDA7UD14Kzh8MDtR
PUErMXwwO1I9QSs0fDA7Uz1BKzh8MDtUPXMrM3wwO1U9bis0fDA7bj12KzR8MDtWPXA7cD0xNjY7
Vz1EO1g9RDtEPXIrNDAwfDA7cj0wO1k9MDtMMjg2OndoaWxlKDEpe1o9Y1tnPj4yXXwwO2Rve2lm
KChafDApPT0wKXtfPTB9ZWxzZXtpZigoY1taKzEyPj4yXXwwKSE9KGNbWisxNj4+Ml18MCkpe189
WjticmVha31pZigoYjBbY1soY1taPj4yXXwwKSszNj4+Ml0mMTI3XShaKXwwKT09LTEpe2NbZz4+
Ml09MDtfPTA7YnJlYWt9ZWxzZXtfPWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO1o9KF98MCk9
PTA7JD1jW2U+PjJdfDA7ZG97aWYoKCR8MCk9PTApe2FhPTI3MX1lbHNle2lmKChjWyQrMTI+PjJd
fDApIT0oY1skKzE2Pj4yXXwwKSl7aWYoWil7YWI9JDticmVha31lbHNle2FjPXA7YWQ9VzthZT1Y
O2FmPXI7YWE9NTIzO2JyZWFrIEwyODZ9fWlmKChiMFtjWyhjWyQ+PjJdfDApKzM2Pj4yXSYxMjdd
KCQpfDApPT0tMSl7Y1tlPj4yXT0wO2FhPTI3MTticmVha31lbHNle2lmKFope2FiPSQ7YnJlYWt9
ZWxzZXthYz1wO2FkPVc7YWU9WDthZj1yO2FhPTUyMzticmVhayBMMjg2fX19fXdoaWxlKDApO2lm
KChhYXwwKT09MjcxKXthYT0wO2lmKFope2FjPXA7YWQ9VzthZT1YO2FmPXI7YWE9NTIzO2JyZWFr
fWVsc2V7YWI9MH19TDMwODpkb3tzd2l0Y2goYVtzK1l8MF18MCl7Y2FzZSAxOntpZigoWXwwKT09
Myl7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01MjM7YnJlYWsgTDI4Nn0kPWNbZz4+Ml18MDthZz1j
WyQrMTI+PjJdfDA7aWYoKGFnfDApPT0oY1skKzE2Pj4yXXwwKSl7YWg9KGIwW2NbKGNbJD4+Ml18
MCkrMzY+PjJdJjEyN10oJCl8MCkmMjU1fWVsc2V7YWg9YVthZ118MH1pZihhaDw8MjQ+PjI0PD0t
MSl7YWE9Mjk2O2JyZWFrIEwyODZ9aWYoKGJbKGNbZj4+Ml18MCkrKGFoPDwyND4+MjQ8PDEpPj4x
XSY4MTkyKT09MCl7YWE9Mjk2O2JyZWFrIEwyODZ9YWc9Y1tnPj4yXXwwOyQ9YWcrMTJ8MDthaT1j
WyQ+PjJdfDA7aWYoKGFpfDApPT0oY1thZysxNj4+Ml18MCkpe2FqPShiMFtjWyhjW2FnPj4yXXww
KSs0MD4+Ml0mMTI3XShhZyl8MCkmMjU1fWVsc2V7Y1skPj4yXT1haSsxO2FqPWFbYWldfDB9ZFUo
QSxhaik7YWE9Mjk3O2JyZWFrfTtjYXNlIDM6e2FpPWFbRl18MDskPWFpJjI1NTthZz0oJCYxfDAp
PT0wPyQ+Pj4xOmNbTD4+Ml18MDskPWFbR118MDthaz0kJjI1NTthbD0oYWsmMXwwKT09MD9haz4+
PjE6Y1tJPj4yXXwwO2lmKChhZ3wwKT09KC1hbHwwKSl7YW09cjthbj1EO2FvPVg7YXA9VzthcT1w
O2FyPVY7YnJlYWsgTDMwOH1haz0oYWd8MCk9PTA7YWc9Y1tnPj4yXXwwO2FzPWNbYWcrMTI+PjJd
fDA7YXQ9Y1thZysxNj4+Ml18MDthdT0oYXN8MCk9PShhdHwwKTtpZighKGFrfChhbHwwKT09MCkp
e2lmKGF1KXthbD0oYjBbY1soY1thZz4+Ml18MCkrMzY+PjJdJjEyN10oYWcpfDApJjI1NTthdj1j
W2c+PjJdfDA7YXc9YWw7YXg9YVtGXXwwO2F5PWF2O2F6PWNbYXYrMTI+PjJdfDA7YUE9Y1thdisx
Nj4+Ml18MH1lbHNle2F3PWFbYXNdfDA7YXg9YWk7YXk9YWc7YXo9YXM7YUE9YXR9YXQ9YXkrMTJ8
MDthdj0oYXp8MCk9PShhQXwwKTtpZihhdzw8MjQ+PjI0PT0oYVsoYXgmMSk9PTA/SzpjW00+PjJd
fDBdfDApKXtpZihhdil7YWw9Y1soY1theT4+Ml18MCkrNDA+PjJdfDA7YjBbYWwmMTI3XShheSl8
MH1lbHNle2NbYXQ+PjJdPWF6KzF9YXQ9ZFtGXXwwO2FtPSgoYXQmMXwwKT09MD9hdD4+PjE6Y1tM
Pj4yXXwwKT4+PjA+MT95OnI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9aWYo
YXYpe2FCPShiMFtjWyhjW2F5Pj4yXXwwKSszNj4+Ml0mMTI3XShheSl8MCkmMjU1fWVsc2V7YUI9
YVthel18MH1pZihhQjw8MjQ+PjI0IT0oYVsoYVtHXSYxKT09MD9tOmNbSj4+Ml18MF18MCkpe2Fh
PTM2MzticmVhayBMMjg2fWF2PWNbZz4+Ml18MDthdD1hdisxMnwwO2FsPWNbYXQ+PjJdfDA7aWYo
KGFsfDApPT0oY1thdisxNj4+Ml18MCkpe2FDPWNbKGNbYXY+PjJdfDApKzQwPj4yXXwwO2IwW2FD
JjEyN10oYXYpfDB9ZWxzZXtjW2F0Pj4yXT1hbCsxfWFbbF09MTthbD1kW0ddfDA7YW09KChhbCYx
fDApPT0wP2FsPj4+MTpjW0k+PjJdfDApPj4+MD4xP3o6cjthbj1EO2FvPVg7YXA9VzthcT1wO2Fy
PVY7YnJlYWsgTDMwOH1pZihhayl7aWYoYXUpe2FrPShiMFtjWyhjW2FnPj4yXXwwKSszNj4+Ml0m
MTI3XShhZyl8MCkmMjU1O2FEPWFrO2FFPWFbR118MH1lbHNle2FEPWFbYXNdfDA7YUU9JH1pZihh
RDw8MjQ+PjI0IT0oYVsoYUUmMSk9PTA/bTpjW0o+PjJdfDBdfDApKXthbT1yO2FuPUQ7YW89WDth
cD1XO2FxPXA7YXI9VjticmVhayBMMzA4fSQ9Y1tnPj4yXXwwO2FrPSQrMTJ8MDthbD1jW2FrPj4y
XXwwO2lmKChhbHwwKT09KGNbJCsxNj4+Ml18MCkpe2F0PWNbKGNbJD4+Ml18MCkrNDA+PjJdfDA7
YjBbYXQmMTI3XSgkKXwwfWVsc2V7Y1thaz4+Ml09YWwrMX1hW2xdPTE7YWw9ZFtHXXwwO2FtPSgo
YWwmMXwwKT09MD9hbD4+PjE6Y1tJPj4yXXwwKT4+PjA+MT96OnI7YW49RDthbz1YO2FwPVc7YXE9
cDthcj1WO2JyZWFrIEwzMDh9aWYoYXUpe2F1PShiMFtjWyhjW2FnPj4yXXwwKSszNj4+Ml0mMTI3
XShhZyl8MCkmMjU1O2FGPWF1O2FHPWFbRl18MH1lbHNle2FGPWFbYXNdfDA7YUc9YWl9aWYoYUY8
PDI0Pj4yNCE9KGFbKGFHJjEpPT0wP0s6Y1tNPj4yXXwwXXwwKSl7YVtsXT0xO2FtPXI7YW49RDth
bz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9YWk9Y1tnPj4yXXwwO2FzPWFpKzEyfDA7YXU9
Y1thcz4+Ml18MDtpZigoYXV8MCk9PShjW2FpKzE2Pj4yXXwwKSl7YWc9Y1soY1thaT4+Ml18MCkr
NDA+PjJdfDA7YjBbYWcmMTI3XShhaSl8MH1lbHNle2NbYXM+PjJdPWF1KzF9YXU9ZFtGXXwwO2Ft
PSgoYXUmMXwwKT09MD9hdT4+PjE6Y1tMPj4yXXwwKT4+PjA+MT95OnI7YW49RDthbz1YO2FwPVc7
YXE9cDthcj1WO2JyZWFrfTtjYXNlIDA6e2FhPTI5NzticmVha307Y2FzZSAyOntpZighKChyfDAp
IT0wfFk+Pj4wPDIpKXtpZigoWXwwKT09Mil7YUg9KGFbVF18MCkhPTB9ZWxzZXthSD0wfWlmKCEo
TnxhSCkpe2FtPTA7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9fWF1PWFbRV18
MDthcz0oYXUmMSk9PTA/ajpjW1A+PjJdfDA7TDM4Mjpkb3tpZigoWXwwKT09MCl7YUk9YXN9ZWxz
ZXtpZigoZFtzKyhZLTEpfDBdfDApPj0yKXthST1hczticmVha31haT1hdSYyNTU7YWc9YXMrKChh
aSYxfDApPT0wP2FpPj4+MTpjW08+PjJdfDApfDA7YWk9YXM7d2hpbGUoMSl7aWYoKGFpfDApPT0o
YWd8MCkpe2FKPWFnO2JyZWFrfWFsPWFbYWldfDA7aWYoYWw8PDI0Pj4yNDw9LTEpe2FKPWFpO2Jy
ZWFrfWlmKChiWyhjW2Y+PjJdfDApKyhhbDw8MjQ+PjI0PDwxKT4+MV0mODE5Mik9PTApe2FKPWFp
O2JyZWFrfWVsc2V7YWk9YWkrMXwwfX1haT1hSi1hc3wwO2FnPWFbSF18MDthbD1hZyYyNTU7YWs9
KGFsJjF8MCk9PTA/YWw+Pj4xOmNbUj4+Ml18MDtpZihhaT4+PjA+YWs+Pj4wKXthST1hczticmVh
a31hbD0oYWcmMSk9PTA/UTpjW1M+PjJdfDA7YWc9YWwrYWt8MDtpZigoYUp8MCk9PShhc3wwKSl7
YUk9YXM7YnJlYWt9JD1hczthdD1hbCsoYWstYWkpfDA7d2hpbGUoMSl7aWYoKGFbYXRdfDApIT0o
YVskXXwwKSl7YUk9YXM7YnJlYWsgTDM4Mn1haT1hdCsxfDA7aWYoKGFpfDApPT0oYWd8MCkpe2FJ
PWFKO2JyZWFrfWVsc2V7JD0kKzF8MDthdD1haX19fX13aGlsZSgwKTthdD1hdSYyNTU7TDM5Njpk
b3tpZigoYUl8MCk9PShhcysoKGF0JjF8MCk9PTA/YXQ+Pj4xOmNbTz4+Ml18MCl8MCkpe2FLPWFJ
fWVsc2V7JD1hYjthZz1hSTt3aGlsZSgxKXthaT1jW2c+PjJdfDA7ZG97aWYoKGFpfDApPT0wKXth
TD0wfWVsc2V7aWYoKGNbYWkrMTI+PjJdfDApIT0oY1thaSsxNj4+Ml18MCkpe2FMPWFpO2JyZWFr
fWlmKChiMFtjWyhjW2FpPj4yXXwwKSszNj4+Ml0mMTI3XShhaSl8MCk9PS0xKXtjW2c+PjJdPTA7
YUw9MDticmVha31lbHNle2FMPWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO2FpPShhTHwwKT09
MDtkb3tpZigoJHwwKT09MCl7YWE9MzkyfWVsc2V7aWYoKGNbJCsxMj4+Ml18MCkhPShjWyQrMTY+
PjJdfDApKXtpZihhaSl7YU09JDticmVha31lbHNle2FLPWFnO2JyZWFrIEwzOTZ9fWlmKChiMFtj
WyhjWyQ+PjJdfDApKzM2Pj4yXSYxMjddKCQpfDApPT0tMSl7Y1tlPj4yXT0wO2FhPTM5MjticmVh
a31lbHNle2lmKGFpKXthTT0kO2JyZWFrfWVsc2V7YUs9YWc7YnJlYWsgTDM5Nn19fX13aGlsZSgw
KTtpZigoYWF8MCk9PTM5Mil7YWE9MDtpZihhaSl7YUs9YWc7YnJlYWsgTDM5Nn1lbHNle2FNPTB9
fWFrPWNbZz4+Ml18MDthbD1jW2FrKzEyPj4yXXwwO2lmKChhbHwwKT09KGNbYWsrMTY+PjJdfDAp
KXthTj0oYjBbY1soY1thaz4+Ml18MCkrMzY+PjJdJjEyN10oYWspfDApJjI1NX1lbHNle2FOPWFb
YWxdfDB9aWYoYU48PDI0Pj4yNCE9KGFbYWddfDApKXthSz1hZzticmVhayBMMzk2fWFsPWNbZz4+
Ml18MDthaz1hbCsxMnwwO2F2PWNbYWs+PjJdfDA7aWYoKGF2fDApPT0oY1thbCsxNj4+Ml18MCkp
e2FDPWNbKGNbYWw+PjJdfDApKzQwPj4yXXwwO2IwW2FDJjEyN10oYWwpfDB9ZWxzZXtjW2FrPj4y
XT1hdisxfWF2PWFnKzF8MDthaz1hW0VdfDA7YWw9YWsmMjU1O2lmKChhdnwwKT09KCgoYWsmMSk9
PTA/ajpjW1A+PjJdfDApKygoYWwmMXwwKT09MD9hbD4+PjE6Y1tPPj4yXXwwKXwwKSl7YUs9YXY7
YnJlYWt9ZWxzZXskPWFNO2FnPWF2fX19fXdoaWxlKDApO2lmKCFOKXthbT1yO2FuPUQ7YW89WDth
cD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWF0PWFbRV18MDthcz1hdCYyNTU7aWYoKGFLfDApPT0o
KChhdCYxKT09MD9qOmNbUD4+Ml18MCkrKChhcyYxfDApPT0wP2FzPj4+MTpjW08+PjJdfDApfDAp
KXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9Vn1lbHNle2FhPTQwNTticmVhayBMMjg2fWJy
ZWFrfTtjYXNlIDQ6e2FzPTA7YXQ9RDthdT1YO2FnPVc7JD1wO2F2PVY7TDQzMTp3aGlsZSgxKXth
bD1jW2c+PjJdfDA7ZG97aWYoKGFsfDApPT0wKXthTz0wfWVsc2V7aWYoKGNbYWwrMTI+PjJdfDAp
IT0oY1thbCsxNj4+Ml18MCkpe2FPPWFsO2JyZWFrfWlmKChiMFtjWyhjW2FsPj4yXXwwKSszNj4+
Ml0mMTI3XShhbCl8MCk9PS0xKXtjW2c+PjJdPTA7YU89MDticmVha31lbHNle2FPPWNbZz4+Ml18
MDticmVha319fXdoaWxlKDApO2FsPShhT3wwKT09MDthaz1jW2U+PjJdfDA7ZG97aWYoKGFrfDAp
PT0wKXthYT00MTh9ZWxzZXtpZigoY1thaysxMj4+Ml18MCkhPShjW2FrKzE2Pj4yXXwwKSl7aWYo
YWwpe2JyZWFrfWVsc2V7YnJlYWsgTDQzMX19aWYoKGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYx
MjddKGFrKXwwKT09LTEpe2NbZT4+Ml09MDthYT00MTg7YnJlYWt9ZWxzZXtpZihhbCl7YnJlYWt9
ZWxzZXticmVhayBMNDMxfX19fXdoaWxlKDApO2lmKChhYXwwKT09NDE4KXthYT0wO2lmKGFsKXti
cmVha319YWs9Y1tnPj4yXXwwO2FDPWNbYWsrMTI+PjJdfDA7aWYoKGFDfDApPT0oY1thaysxNj4+
Ml18MCkpe2FQPShiMFtjWyhjW2FrPj4yXXwwKSszNj4+Ml0mMTI3XShhayl8MCkmMjU1fWVsc2V7
YVA9YVthQ118MH1kb3tpZihhUDw8MjQ+PjI0Pi0xKXtpZigoYlsoY1tmPj4yXXwwKSsoYVA8PDI0
Pj4yNDw8MSk+PjFdJjIwNDgpPT0wKXthYT00Mzc7YnJlYWt9YUM9Y1tvPj4yXXwwO2lmKChhQ3ww
KT09KGF2fDApKXthaz0oY1tVPj4yXXwwKSE9MTY2O2FRPWNbaD4+Ml18MDthUj1hdi1hUXwwO2FT
PWFSPj4+MDwyMTQ3NDgzNjQ3P2FSPDwxOi0xO2FUPWtMKGFrP2FROjAsYVMpfDA7aWYoKGFUfDAp
PT0wKXtrWCgpfWRve2lmKGFrKXtjW2g+PjJdPWFUO2FVPWFUfWVsc2V7YVE9Y1toPj4yXXwwO2Nb
aD4+Ml09YVQ7aWYoKGFRfDApPT0wKXthVT1hVDticmVha31iWVtjW1U+PjJdJjUxMV0oYVEpO2FV
PWNbaD4+Ml18MH19d2hpbGUoMCk7Y1tVPj4yXT04MjthVD1hVSthUnwwO2Nbbz4+Ml09YVQ7YVY9
KGNbaD4+Ml18MCkrYVN8MDthVz1hVH1lbHNle2FWPWF2O2FXPWFDfWNbbz4+Ml09YVcrMTthW2FX
XT1hUDthWD1hcysxfDA7YVk9YXQ7YVo9YXU7YV89YWc7YSQ9JDthMD1hVn1lbHNle2FhPTQzN319
d2hpbGUoMCk7aWYoKGFhfDApPT00Mzcpe2FhPTA7YWw9ZFt3XXwwO2lmKCgoKGFsJjF8MCk9PTA/
YWw+Pj4xOmNbbj4+Ml18MCl8MCk9PTB8KGFzfDApPT0wKXticmVha31pZihhUDw8MjQ+PjI0IT0o
YVt1XXwwKSl7YnJlYWt9aWYoKGF1fDApPT0oYXR8MCkpe2FsPWF1LWFnfDA7YVQ9YWw+Pj4wPDIx
NDc0ODM2NDc/YWw8PDE6LTE7aWYoKCR8MCk9PTE2Nil7YTE9MH1lbHNle2ExPWFnfWFrPWtMKGEx
LGFUKXwwO2FpPWFrO2lmKChha3wwKT09MCl7a1goKX1hMj1haSsoYVQ+Pj4yPDwyKXwwO2EzPWFp
KyhhbD4+Mjw8Mil8MDthND1haTthNT04Mn1lbHNle2EyPWF0O2EzPWF1O2E0PWFnO2E1PSR9Y1th
Mz4+Ml09YXM7YVg9MDthWT1hMjthWj1hMys0fDA7YV89YTQ7YSQ9YTU7YTA9YXZ9YWk9Y1tnPj4y
XXwwO2FsPWFpKzEyfDA7YVQ9Y1thbD4+Ml18MDtpZigoYVR8MCk9PShjW2FpKzE2Pj4yXXwwKSl7
YWs9Y1soY1thaT4+Ml18MCkrNDA+PjJdfDA7YjBbYWsmMTI3XShhaSl8MDthcz1hWDthdD1hWTth
dT1hWjthZz1hXzskPWEkO2F2PWEwO2NvbnRpbnVlfWVsc2V7Y1thbD4+Ml09YVQrMTthcz1hWDth
dD1hWTthdT1hWjthZz1hXzskPWEkO2F2PWEwO2NvbnRpbnVlfX1pZigoYWd8MCk9PShhdXwwKXwo
YXN8MCk9PTApe2E2PWF0O2E3PWF1O2E4PWFnO2E5PSR9ZWxzZXtpZigoYXV8MCk9PShhdHwwKSl7
YVQ9YXUtYWd8MDthbD1hVD4+PjA8MjE0NzQ4MzY0Nz9hVDw8MTotMTtpZigoJHwwKT09MTY2KXti
YT0wfWVsc2V7YmE9YWd9YWk9a0woYmEsYWwpfDA7YWs9YWk7aWYoKGFpfDApPT0wKXtrWCgpfWJi
PWFrKyhhbD4+PjI8PDIpfDA7YmM9YWsrKGFUPj4yPDwyKXwwO2JkPWFrO2JlPTgyfWVsc2V7YmI9
YXQ7YmM9YXU7YmQ9YWc7YmU9JH1jW2JjPj4yXT1hczthNj1iYjthNz1iYys0fDA7YTg9YmQ7YTk9
YmV9aWYoKGNbQj4+Ml18MCk+MCl7YWs9Y1tnPj4yXXwwO2Rve2lmKChha3wwKT09MCl7YmY9MH1l
bHNle2lmKChjW2FrKzEyPj4yXXwwKSE9KGNbYWsrMTY+PjJdfDApKXtiZj1hazticmVha31pZigo
YjBbY1soY1thaz4+Ml18MCkrMzY+PjJdJjEyN10oYWspfDApPT0tMSl7Y1tnPj4yXT0wO2JmPTA7
YnJlYWt9ZWxzZXtiZj1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTthaz0oYmZ8MCk9PTA7YXM9
Y1tlPj4yXXwwO2Rve2lmKChhc3wwKT09MCl7YWE9NDcwfWVsc2V7aWYoKGNbYXMrMTI+PjJdfDAp
IT0oY1thcysxNj4+Ml18MCkpe2lmKGFrKXtiZz1hczticmVha31lbHNle2FhPTQ3NzticmVhayBM
Mjg2fX1pZigoYjBbY1soY1thcz4+Ml18MCkrMzY+PjJdJjEyN10oYXMpfDApPT0tMSl7Y1tlPj4y
XT0wO2FhPTQ3MDticmVha31lbHNle2lmKGFrKXtiZz1hczticmVha31lbHNle2FhPTQ3NzticmVh
ayBMMjg2fX19fXdoaWxlKDApO2lmKChhYXwwKT09NDcwKXthYT0wO2lmKGFrKXthYT00Nzc7YnJl
YWsgTDI4Nn1lbHNle2JnPTB9fWFzPWNbZz4+Ml18MDskPWNbYXMrMTI+PjJdfDA7aWYoKCR8MCk9
PShjW2FzKzE2Pj4yXXwwKSl7Ymg9KGIwW2NbKGNbYXM+PjJdfDApKzM2Pj4yXSYxMjddKGFzKXww
KSYyNTV9ZWxzZXtiaD1hWyRdfDB9aWYoYmg8PDI0Pj4yNCE9KGFbdF18MCkpe2FhPTQ3NzticmVh
ayBMMjg2fSQ9Y1tnPj4yXXwwO2FzPSQrMTJ8MDthZz1jW2FzPj4yXXwwO2lmKChhZ3wwKT09KGNb
JCsxNj4+Ml18MCkpe2F1PWNbKGNbJD4+Ml18MCkrNDA+PjJdfDA7YjBbYXUmMTI3XSgkKXwwO2Jp
PWF2O2JqPWJnfWVsc2V7Y1thcz4+Ml09YWcrMTtiaT1hdjtiaj1iZ313aGlsZSgxKXthZz1jW2c+
PjJdfDA7ZG97aWYoKGFnfDApPT0wKXtiaz0wfWVsc2V7aWYoKGNbYWcrMTI+PjJdfDApIT0oY1th
ZysxNj4+Ml18MCkpe2JrPWFnO2JyZWFrfWlmKChiMFtjWyhjW2FnPj4yXXwwKSszNj4+Ml0mMTI3
XShhZyl8MCk9PS0xKXtjW2c+PjJdPTA7Yms9MDticmVha31lbHNle2JrPWNbZz4+Ml18MDticmVh
a319fXdoaWxlKDApO2FnPShia3wwKT09MDtkb3tpZigoYmp8MCk9PTApe2FhPTQ5M31lbHNle2lm
KChjW2JqKzEyPj4yXXwwKSE9KGNbYmorMTY+PjJdfDApKXtpZihhZyl7Ymw9Ymo7YnJlYWt9ZWxz
ZXthYT01MDE7YnJlYWsgTDI4Nn19aWYoKGIwW2NbKGNbYmo+PjJdfDApKzM2Pj4yXSYxMjddKGJq
KXwwKT09LTEpe2NbZT4+Ml09MDthYT00OTM7YnJlYWt9ZWxzZXtpZihhZyl7Ymw9Ymo7YnJlYWt9
ZWxzZXthYT01MDE7YnJlYWsgTDI4Nn19fX13aGlsZSgwKTtpZigoYWF8MCk9PTQ5Myl7YWE9MDtp
ZihhZyl7YWE9NTAxO2JyZWFrIEwyODZ9ZWxzZXtibD0wfX1hcz1jW2c+PjJdfDA7JD1jW2FzKzEy
Pj4yXXwwO2lmKCgkfDApPT0oY1thcysxNj4+Ml18MCkpe2JtPShiMFtjWyhjW2FzPj4yXXwwKSsz
Nj4+Ml0mMTI3XShhcyl8MCkmMjU1fWVsc2V7Ym09YVskXXwwfWlmKGJtPDwyND4+MjQ8PS0xKXth
YT01MDE7YnJlYWsgTDI4Nn1pZigoYlsoY1tmPj4yXXwwKSsoYm08PDI0Pj4yNDw8MSk+PjFdJjIw
NDgpPT0wKXthYT01MDE7YnJlYWsgTDI4Nn0kPWNbbz4+Ml18MDtpZigoJHwwKT09KGJpfDApKXth
cz0oY1tVPj4yXXwwKSE9MTY2O2F1PWNbaD4+Ml18MDthdD1iaS1hdXwwO2FUPWF0Pj4+MDwyMTQ3
NDgzNjQ3P2F0PDwxOi0xO2FsPWtMKGFzP2F1OjAsYVQpfDA7aWYoKGFsfDApPT0wKXtrWCgpfWRv
e2lmKGFzKXtjW2g+PjJdPWFsO2JuPWFsfWVsc2V7YXU9Y1toPj4yXXwwO2NbaD4+Ml09YWw7aWYo
KGF1fDApPT0wKXtibj1hbDticmVha31iWVtjW1U+PjJdJjUxMV0oYXUpO2JuPWNbaD4+Ml18MH19
d2hpbGUoMCk7Y1tVPj4yXT04MjthbD1ibithdHwwO2Nbbz4+Ml09YWw7Ym89KGNbaD4+Ml18MCkr
YVR8MDticD1hbH1lbHNle2JvPWJpO2JwPSR9YWw9Y1tnPj4yXXwwO2FzPWNbYWwrMTI+PjJdfDA7
aWYoKGFzfDApPT0oY1thbCsxNj4+Ml18MCkpe2FnPShiMFtjWyhjW2FsPj4yXXwwKSszNj4+Ml0m
MTI3XShhbCl8MCkmMjU1O2JxPWFnO2JyPWNbbz4+Ml18MH1lbHNle2JxPWFbYXNdfDA7YnI9YnB9
Y1tvPj4yXT1icisxO2FbYnJdPWJxO2FzPShjW0I+PjJdfDApLTF8MDtjW0I+PjJdPWFzO2FnPWNb
Zz4+Ml18MDthbD1hZysxMnwwO2F1PWNbYWw+PjJdfDA7aWYoKGF1fDApPT0oY1thZysxNj4+Ml18
MCkpe2FpPWNbKGNbYWc+PjJdfDApKzQwPj4yXXwwO2IwW2FpJjEyN10oYWcpfDB9ZWxzZXtjW2Fs
Pj4yXT1hdSsxfWlmKChhc3wwKT4wKXtiaT1ibztiaj1ibH1lbHNle2JzPWJvO2JyZWFrfX19ZWxz
ZXticz1hdn1pZigoY1tvPj4yXXwwKT09KGNbaD4+Ml18MCkpe2FhPTUyMTticmVhayBMMjg2fWVs
c2V7YW09cjthbj1hNjthbz1hNzthcD1hODthcT1hOTthcj1ic31icmVha307ZGVmYXVsdDp7YW09
cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVZ9fX13aGlsZSgwKTtMNTg1OmRve2lmKChhYXwwKT09
Mjk3KXthYT0wO2lmKChZfDApPT0zKXthYz1wO2FkPVc7YWU9WDthZj1yO2FhPTUyMzticmVhayBM
Mjg2fWVsc2V7YnQ9YWJ9d2hpbGUoMSl7Wj1jW2c+PjJdfDA7ZG97aWYoKFp8MCk9PTApe2J1PTB9
ZWxzZXtpZigoY1taKzEyPj4yXXwwKSE9KGNbWisxNj4+Ml18MCkpe2J1PVo7YnJlYWt9aWYoKGIw
W2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCk9PS0xKXtjW2c+PjJdPTA7YnU9MDticmVh
a31lbHNle2J1PWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO1o9KGJ1fDApPT0wO2Rve2lmKChi
dHwwKT09MCl7YWE9MzEwfWVsc2V7aWYoKGNbYnQrMTI+PjJdfDApIT0oY1tidCsxNj4+Ml18MCkp
e2lmKFope2J2PWJ0O2JyZWFrfWVsc2V7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJl
YWsgTDU4NX19aWYoKGIwW2NbKGNbYnQ+PjJdfDApKzM2Pj4yXSYxMjddKGJ0KXwwKT09LTEpe2Nb
ZT4+Ml09MDthYT0zMTA7YnJlYWt9ZWxzZXtpZihaKXtidj1idDticmVha31lbHNle2FtPXI7YW49
RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEw1ODV9fX19d2hpbGUoMCk7aWYoKGFhfDApPT0z
MTApe2FhPTA7aWYoWil7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDU4NX1l
bHNle2J2PTB9fSQ9Y1tnPj4yXXwwO2FUPWNbJCsxMj4+Ml18MDtpZigoYVR8MCk9PShjWyQrMTY+
PjJdfDApKXtidz0oYjBbY1soY1skPj4yXXwwKSszNj4+Ml0mMTI3XSgkKXwwKSYyNTV9ZWxzZXti
dz1hW2FUXXwwfWlmKGJ3PDwyND4+MjQ8PS0xKXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9
VjticmVhayBMNTg1fWlmKChiWyhjW2Y+PjJdfDApKyhidzw8MjQ+PjI0PDwxKT4+MV0mODE5Mik9
PTApe2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2JyZWFrIEw1ODV9YVQ9Y1tnPj4yXXww
OyQ9YVQrMTJ8MDthdD1jWyQ+PjJdfDA7aWYoKGF0fDApPT0oY1thVCsxNj4+Ml18MCkpe2J4PShi
MFtjWyhjW2FUPj4yXXwwKSs0MD4+Ml0mMTI3XShhVCl8MCkmMjU1fWVsc2V7Y1skPj4yXT1hdCsx
O2J4PWFbYXRdfDB9ZFUoQSxieCk7YnQ9YnZ9fX13aGlsZSgwKTthdj1ZKzF8MDtpZihhdj4+PjA8
NCl7Vj1hcjtwPWFxO1c9YXA7WD1hbztEPWFuO3I9YW07WT1hdn1lbHNle2FjPWFxO2FkPWFwO2Fl
PWFvO2FmPWFtO2FhPTUyMzticmVha319TDYyMjpkb3tpZigoYWF8MCk9PTI5Nil7Y1trPj4yXT1j
W2s+PjJdfDQ7Ynk9MDtiej1XO2JBPXB9ZWxzZSBpZigoYWF8MCk9PTM2Myl7Y1trPj4yXT1jW2s+
PjJdfDQ7Ynk9MDtiej1XO2JBPXB9ZWxzZSBpZigoYWF8MCk9PTQwNSl7Y1trPj4yXT1jW2s+PjJd
fDQ7Ynk9MDtiej1XO2JBPXB9ZWxzZSBpZigoYWF8MCk9PTQ3Nyl7Y1trPj4yXT1jW2s+PjJdfDQ7
Ynk9MDtiej1hODtiQT1hOX1lbHNlIGlmKChhYXwwKT09NTAxKXtjW2s+PjJdPWNbaz4+Ml18NDti
eT0wO2J6PWE4O2JBPWE5fWVsc2UgaWYoKGFhfDApPT01MjEpe2Nbaz4+Ml09Y1trPj4yXXw0O2J5
PTA7Yno9YTg7YkE9YTl9ZWxzZSBpZigoYWF8MCk9PTUyMyl7TDYzMDpkb3tpZigoYWZ8MCkhPTAp
e2FtPWFmO2FvPWFmKzF8MDthcD1hZis4fDA7YXE9YWYrNHwwO1k9MTtMNjMyOndoaWxlKDEpe3I9
ZFthbV18MDtpZigociYxfDApPT0wKXtiQj1yPj4+MX1lbHNle2JCPWNbYXE+PjJdfDB9aWYoWT4+
PjA+PWJCPj4+MCl7YnJlYWsgTDYzMH1yPWNbZz4+Ml18MDtkb3tpZigocnwwKT09MCl7YkM9MH1l
bHNle2lmKChjW3IrMTI+PjJdfDApIT0oY1tyKzE2Pj4yXXwwKSl7YkM9cjticmVha31pZigoYjBb
Y1soY1tyPj4yXXwwKSszNj4+Ml0mMTI3XShyKXwwKT09LTEpe2NbZz4+Ml09MDtiQz0wO2JyZWFr
fWVsc2V7YkM9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7cj0oYkN8MCk9PTA7Wj1jW2U+PjJd
fDA7ZG97aWYoKFp8MCk9PTApe2FhPTU0MX1lbHNle2lmKChjW1orMTI+PjJdfDApIT0oY1taKzE2
Pj4yXXwwKSl7aWYocil7YnJlYWt9ZWxzZXticmVhayBMNjMyfX1pZigoYjBbY1soY1taPj4yXXww
KSszNj4+Ml0mMTI3XShaKXwwKT09LTEpe2NbZT4+Ml09MDthYT01NDE7YnJlYWt9ZWxzZXtpZihy
KXticmVha31lbHNle2JyZWFrIEw2MzJ9fX19d2hpbGUoMCk7aWYoKGFhfDApPT01NDEpe2FhPTA7
aWYocil7YnJlYWt9fVo9Y1tnPj4yXXwwO2FuPWNbWisxMj4+Ml18MDtpZigoYW58MCk9PShjW1or
MTY+PjJdfDApKXtiRD0oYjBbY1soY1taPj4yXXwwKSszNj4+Ml0mMTI3XShaKXwwKSYyNTV9ZWxz
ZXtiRD1hW2FuXXwwfWlmKChhW2FtXSYxKT09MCl7YkU9YW99ZWxzZXtiRT1jW2FwPj4yXXwwfWlm
KGJEPDwyND4+MjQhPShhW2JFK1l8MF18MCkpe2JyZWFrfWFuPVkrMXwwO1o9Y1tnPj4yXXwwO0Q9
WisxMnwwO1g9Y1tEPj4yXXwwO2lmKChYfDApPT0oY1taKzE2Pj4yXXwwKSl7YXI9Y1soY1taPj4y
XXwwKSs0MD4+Ml18MDtiMFthciYxMjddKFopfDA7WT1hbjtjb250aW51ZX1lbHNle2NbRD4+Ml09
WCsxO1k9YW47Y29udGludWV9fWNbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9YWQ7YkE9YWM7YnJl
YWsgTDYyMn19d2hpbGUoMCk7aWYoKGFkfDApPT0oYWV8MCkpe2J5PTE7Yno9YWU7YkE9YWM7YnJl
YWt9Y1tDPj4yXT0wO2Z0KHYsYWQsYWUsQyk7aWYoKGNbQz4+Ml18MCk9PTApe2J5PTE7Yno9YWQ7
YkE9YWM7YnJlYWt9Y1trPj4yXT1jW2s+PjJdfDQ7Ynk9MDtiej1hZDtiQT1hY319d2hpbGUoMCk7
ZFAoQSk7ZFAoeik7ZFAoeSk7ZFAoeCk7ZFAodik7aWYoKGJ6fDApPT0wKXtpPXE7cmV0dXJuIGJ5
fDB9YllbYkEmNTExXShieik7aT1xO3JldHVybiBieXwwfWZ1bmN0aW9uIGhTKGIsZCxlKXtiPWJ8
MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTA7Zj1i
O2c9ZDtoPWFbZl18MDtpPWgmMjU1O2lmKChpJjF8MCk9PTApe2o9aT4+PjF9ZWxzZXtqPWNbYis0
Pj4yXXwwfWlmKChoJjEpPT0wKXtrPTEwO2w9aH1lbHNle2g9Y1tiPj4yXXwwO2s9KGgmLTIpLTF8
MDtsPWgmMjU1fWg9ZS1nfDA7aWYoKGV8MCk9PShkfDApKXtyZXR1cm4gYnwwfWlmKChrLWp8MCk+
Pj4wPGg+Pj4wKXtkMShiLGssaitoLWt8MCxqLGosMCwwKTttPWFbZl18MH1lbHNle209bH1pZigo
bSYxKT09MCl7bj1iKzF8MH1lbHNle249Y1tiKzg+PjJdfDB9bT1lKyhqLWcpfDA7Zz1kO2Q9bitq
fDA7d2hpbGUoMSl7YVtkXT1hW2ddfDA7bD1nKzF8MDtpZigobHwwKT09KGV8MCkpe2JyZWFrfWVs
c2V7Zz1sO2Q9ZCsxfDB9fWFbbittfDBdPTA7bT1qK2h8MDtpZigoYVtmXSYxKT09MCl7YVtmXT1t
PDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+PjJdPW07cmV0dXJuIGJ8MH1yZXR1cm4gMH1m
dW5jdGlvbiBoVChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBoVShhKXth
PWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoVihhKXthPWF8MDt2YXIgYj0wO2I9Yk8oOCl8
MDtkRShiLGEpO2JsKGJ8MCw4MTkyLDIyKX1mdW5jdGlvbiBoVyhiLGQsZSxmLGcsaCxqLGspe2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAs
Qj0wLEM9MCxEPTAsRT0wO2Q9aTtpPWkrMTYwfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+
PjJdO2w9ZHwwO209ZCsxNnwwO249ZCsxMjB8MDtvPWQrMTI4fDA7cD1kKzEzNnwwO3E9ZCsxNDR8
MDtyPWQrMTUyfDA7cz1ufDA7Y1tzPj4yXT1tO3Q9bis0fDA7Y1t0Pj4yXT0xNjY7dT1tKzEwMHww
O2VqKHAsaCk7bT1wfDA7dj1jW20+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJdPTE1
Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVdfDAp
LTF8MDt3PWNbdis4Pj4yXXwwO2Rve2lmKChjW3YrMTI+PjJdfDApLXc+PjI+Pj4wPmw+Pj4wKXt4
PWNbdysobDw8Mik+PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDthW3FdPTA7ej1mfDA7QT1j
W3o+PjJdfDA7Y1tyPj4yXT1BO2lmKGhSKGUscixnLHAsY1toKzQ+PjJdfDAsaixxLHksbixvLHUp
fDApe0I9aztpZigoYVtCXSYxKT09MCl7YVtrKzF8MF09MDthW0JdPTB9ZWxzZXthW2Nbays4Pj4y
XXwwXT0wO2Nbays0Pj4yXT0wfUI9eDtpZigoYVtxXSYxKSE9MCl7ZFUoayxiX1tjWyhjW0I+PjJd
fDApKzI4Pj4yXSYzMV0oeSw0NSl8MCl9eD1iX1tjWyhjW0I+PjJdfDApKzI4Pj4yXSYzMV0oeSw0
OCl8MDt5PWNbbz4+Ml18MDtCPXktMXwwO0M9Y1tzPj4yXXwwO3doaWxlKDEpe2lmKEM+Pj4wPj1C
Pj4+MCl7YnJlYWt9aWYoKGFbQ118MCk9PXg8PDI0Pj4yNCl7Qz1DKzF8MH1lbHNle2JyZWFrfX1o
UyhrLEMseSl8MH14PWV8MDtCPWNbeD4+Ml18MDtkb3tpZigoQnwwKT09MCl7RD0wfWVsc2V7aWYo
KGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtEPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+
Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtEPUI7YnJlYWt9Y1t4Pj4yXT0wO0Q9MH19d2hp
bGUoMCk7eD0oRHwwKT09MDtkb3tpZigoQXwwKT09MCl7RT02MjF9ZWxzZXtpZigoY1tBKzEyPj4y
XXwwKSE9KGNbQSsxNj4+Ml18MCkpe2lmKHgpe2JyZWFrfWVsc2V7RT02MjM7YnJlYWt9fWlmKChi
MFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApPT0tMSl7Y1t6Pj4yXT0wO0U9NjIxO2Jy
ZWFrfWVsc2V7aWYoeF4oQXwwKT09MCl7YnJlYWt9ZWxzZXtFPTYyMzticmVha319fX13aGlsZSgw
KTtpZigoRXwwKT09NjIxKXtpZih4KXtFPTYyM319aWYoKEV8MCk9PTYyMyl7Y1tqPj4yXT1jW2o+
PjJdfDJ9Y1tiPj4yXT1EO0E9Y1ttPj4yXXwwO2R6KEEpfDA7QT1jW3M+PjJdfDA7Y1tzPj4yXT0w
O2lmKChBfDApPT0wKXtpPWQ7cmV0dXJufWJZW2NbdD4+Ml0mNTExXShBKTtpPWQ7cmV0dXJufX13
aGlsZSgwKTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBoWChiLGQs
ZSxmLGcsaCxqLGssbCxtKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8
MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9
MCxMPTAsTT0wLE49MCxPPTA7bj1pO2k9aSs1NnwwO289bnwwO3A9bisxNnwwO3E9biszMnwwO3I9
bis0MHwwO3M9cjt0PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dT10O3Y9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8Mzt3PXY7eD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3k9eDt6PWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztBPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Qj1BO0Q9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8MztFPUQ7Rj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0c9RjtIPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7ST1IO2lmKGIpe2I9Y1tkPj4yXXwwO2lmKChjWzQwNDRdfDApIT0tMSl7Y1twPj4yXT0x
NjE3NjtjW3ArND4+Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTYxNzYscCw5Nil9cD0oY1s0MDQ1XXww
KS0xfDA7Sj1jW2IrOD4+Ml18MDtpZigoY1tiKzEyPj4yXXwwKS1KPj4yPj4+MDw9cD4+PjApe0s9
Yk8oNCl8MDtMPUs7a3EoTCk7YmwoS3wwLDgxNzYsMTM0KX1iPWNbSisocDw8Mik+PjJdfDA7aWYo
KGJ8MCk9PTApe0s9Yk8oNCl8MDtMPUs7a3EoTCk7YmwoS3wwLDgxNzYsMTM0KX1LPWI7YlpbY1so
Y1tiPj4yXXwwKSs0ND4+Ml0mMTI3XShxLEspO0w9ZTtDPWNbcT4+Ml18MDthW0xdPUMmMjU1O0M9
Qz4+ODthW0wrMXwwXT1DJjI1NTtDPUM+Pjg7YVtMKzJ8MF09QyYyNTU7Qz1DPj44O2FbTCszfDBd
PUMmMjU1O0w9YjtiWltjWyhjW0w+PjJdfDApKzMyPj4yXSYxMjddKHIsSyk7cT1sO2lmKChhW3Fd
JjEpPT0wKXthW2wrMXwwXT0wO2FbcV09MH1lbHNle2FbY1tsKzg+PjJdfDBdPTA7Y1tsKzQ+PjJd
PTB9ZCQobCwwKTtjW3E+PjJdPWNbcz4+Ml07Y1txKzQ+PjJdPWNbcys0Pj4yXTtjW3ErOD4+Ml09
Y1tzKzg+PjJdO2skKHN8MCwwLDEyKTtkUChyKTtiWltjWyhjW0w+PjJdfDApKzI4Pj4yXSYxMjdd
KHQsSyk7cj1rO2lmKChhW3JdJjEpPT0wKXthW2srMXwwXT0wO2Fbcl09MH1lbHNle2FbY1trKzg+
PjJdfDBdPTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW3I+PjJdPWNbdT4+Ml07Y1tyKzQ+PjJdPWNb
dSs0Pj4yXTtjW3IrOD4+Ml09Y1t1Kzg+PjJdO2skKHV8MCwwLDEyKTtkUCh0KTt0PWI7YVtmXT1i
MFtjWyhjW3Q+PjJdfDApKzEyPj4yXSYxMjddKEspfDA7YVtnXT1iMFtjWyhjW3Q+PjJdfDApKzE2
Pj4yXSYxMjddKEspfDA7YlpbY1soY1tMPj4yXXwwKSsyMD4+Ml0mMTI3XSh2LEspO3Q9aDtpZigo
YVt0XSYxKT09MCl7YVtoKzF8MF09MDthW3RdPTB9ZWxzZXthW2NbaCs4Pj4yXXwwXT0wO2NbaCs0
Pj4yXT0wfWQkKGgsMCk7Y1t0Pj4yXT1jW3c+PjJdO2NbdCs0Pj4yXT1jW3crND4+Ml07Y1t0Kzg+
PjJdPWNbdys4Pj4yXTtrJCh3fDAsMCwxMik7ZFAodik7YlpbY1soY1tMPj4yXXwwKSsyND4+Ml0m
MTI3XSh4LEspO0w9ajtpZigoYVtMXSYxKT09MCl7YVtqKzF8MF09MDthW0xdPTB9ZWxzZXthW2Nb
ais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1tMPj4yXT1jW3k+PjJdO2NbTCs0Pj4y
XT1jW3krND4+Ml07Y1tMKzg+PjJdPWNbeSs4Pj4yXTtrJCh5fDAsMCwxMik7ZFAoeCk7TT1iMFtj
WyhjW2I+PjJdfDApKzM2Pj4yXSYxMjddKEspfDA7Y1ttPj4yXT1NO2k9bjtyZXR1cm59ZWxzZXtL
PWNbZD4+Ml18MDtpZigoY1s0MDQ2XXwwKSE9LTEpe2Nbbz4+Ml09MTYxODQ7Y1tvKzQ+PjJdPTEy
O2Nbbys4Pj4yXT0wO2RXKDE2MTg0LG8sOTYpfW89KGNbNDA0N118MCktMXwwO2Q9Y1tLKzg+PjJd
fDA7aWYoKGNbSysxMj4+Ml18MCktZD4+Mj4+PjA8PW8+Pj4wKXtOPWJPKDQpfDA7Tz1OO2txKE8p
O2JsKE58MCw4MTc2LDEzNCl9Sz1jW2QrKG88PDIpPj4yXXwwO2lmKChLfDApPT0wKXtOPWJPKDQp
fDA7Tz1OO2txKE8pO2JsKE58MCw4MTc2LDEzNCl9Tj1LO2JaW2NbKGNbSz4+Ml18MCkrNDQ+PjJd
JjEyN10oeixOKTtPPWU7Qz1jW3o+PjJdfDA7YVtPXT1DJjI1NTtDPUM+Pjg7YVtPKzF8MF09QyYy
NTU7Qz1DPj44O2FbTysyfDBdPUMmMjU1O0M9Qz4+ODthW08rM3wwXT1DJjI1NTtPPUs7YlpbY1so
Y1tPPj4yXXwwKSszMj4+Ml0mMTI3XShBLE4pO3o9bDtpZigoYVt6XSYxKT09MCl7YVtsKzF8MF09
MDthW3pdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1t6Pj4y
XT1jW0I+PjJdO2Nbeis0Pj4yXT1jW0IrND4+Ml07Y1t6Kzg+PjJdPWNbQis4Pj4yXTtrJChCfDAs
MCwxMik7ZFAoQSk7YlpbY1soY1tPPj4yXXwwKSsyOD4+Ml0mMTI3XShELE4pO0E9aztpZigoYVtB
XSYxKT09MCl7YVtrKzF8MF09MDthW0FdPTB9ZWxzZXthW2Nbays4Pj4yXXwwXT0wO2Nbays0Pj4y
XT0wfWQkKGssMCk7Y1tBPj4yXT1jW0U+PjJdO2NbQSs0Pj4yXT1jW0UrND4+Ml07Y1tBKzg+PjJd
PWNbRSs4Pj4yXTtrJChFfDAsMCwxMik7ZFAoRCk7RD1LO2FbZl09YjBbY1soY1tEPj4yXXwwKSsx
Mj4+Ml0mMTI3XShOKXwwO2FbZ109YjBbY1soY1tEPj4yXXwwKSsxNj4+Ml0mMTI3XShOKXwwO2Ja
W2NbKGNbTz4+Ml18MCkrMjA+PjJdJjEyN10oRixOKTtEPWg7aWYoKGFbRF0mMSk9PTApe2FbaCsx
fDBdPTA7YVtEXT0wfWVsc2V7YVtjW2grOD4+Ml18MF09MDtjW2grND4+Ml09MH1kJChoLDApO2Nb
RD4+Ml09Y1tHPj4yXTtjW0QrND4+Ml09Y1tHKzQ+PjJdO2NbRCs4Pj4yXT1jW0crOD4+Ml07ayQo
R3wwLDAsMTIpO2RQKEYpO2JaW2NbKGNbTz4+Ml18MCkrMjQ+PjJdJjEyN10oSCxOKTtPPWo7aWYo
KGFbT10mMSk9PTApe2FbaisxfDBdPTA7YVtPXT0wfWVsc2V7YVtjW2orOD4+Ml18MF09MDtjW2or
ND4+Ml09MH1kJChqLDApO2NbTz4+Ml09Y1tJPj4yXTtjW08rND4+Ml09Y1tJKzQ+PjJdO2NbTys4
Pj4yXT1jW0krOD4+Ml07ayQoSXwwLDAsMTIpO2RQKEgpO009YjBbY1soY1tLPj4yXXwwKSszNj4+
Ml0mMTI3XShOKXwwO2NbbT4+Ml09TTtpPW47cmV0dXJufX1mdW5jdGlvbiBoWShiLGQsZSxmLGcs
aCxqLGspe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3Zh
ciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAs
Tj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtkPWk7aT1pKzYwMHwwO2w9ZTtlPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrNDE2fDA7bz1kKzQyNHwwO3A9
ZCs0MzJ8MDtxPWQrNDQwfDA7cj1kKzQ0OHwwO3M9ZCs0NTZ8MDt0PWQrNDk2fDA7dT1ufDA7Y1t1
Pj4yXT1tO3Y9bis0fDA7Y1t2Pj4yXT0xNjY7dz1tKzQwMHwwO2VqKHAsaCk7bT1wfDA7eD1jW20+
PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wr
OD4+Ml09MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8MDt5PWNbeCs4Pj4yXXwwO2Rv
e2lmKChjW3grMTI+PjJdfDApLXk+PjI+Pj4wPmw+Pj4wKXt6PWNbeSsobDw8Mik+PjJdfDA7aWYo
KHp8MCk9PTApe2JyZWFrfUE9ejthW3FdPTA7Qj1mfDA7Y1tyPj4yXT1jW0I+PjJdO2Rve2lmKGha
KGUscixnLHAsY1toKzQ+PjJdfDAsaixxLEEsbixvLHcpfDApe0M9c3wwO0Q9Y1soY1t6Pj4yXXww
KSs0OD4+Ml18MDtjYVtEJjE1XShBLDIwOTYsMjEwNixDKXwwO0Q9dHwwO0U9Y1tvPj4yXXwwO0Y9
Y1t1Pj4yXXwwO0c9RS1GfDA7ZG97aWYoKEd8MCk+MzkyKXtIPWtKKChHPj4yKSsyfDApfDA7aWYo
KEh8MCkhPTApe0k9SDtKPUg7YnJlYWt9a1goKTtJPTA7Sj0wfWVsc2V7ST1EO0o9MH19d2hpbGUo
MCk7aWYoKGFbcV0mMSk9PTApe0s9SX1lbHNle2FbSV09NDU7Sz1JKzF8MH1pZihGPj4+MDxFPj4+
MCl7Rz1zKzQwfDA7SD1zO0w9SztNPUY7d2hpbGUoMSl7Tj1DO3doaWxlKDEpe2lmKChOfDApPT0o
R3wwKSl7Tz1HO2JyZWFrfWlmKChjW04+PjJdfDApPT0oY1tNPj4yXXwwKSl7Tz1OO2JyZWFrfWVs
c2V7Tj1OKzR8MH19YVtMXT1hWzIwOTYrKE8tSD4+Mil8MF18MDtOPU0rNHwwO1A9TCsxfDA7aWYo
Tj4+PjA8KGNbbz4+Ml18MCk+Pj4wKXtMPVA7TT1OfWVsc2V7UT1QO2JyZWFrfX19ZWxzZXtRPUt9
YVtRXT0wO009YkQoRHwwLDE0MDgsKEw9aSxpPWkrOHwwLGNbTD4+Ml09ayxMKXwwKXwwO2k9TDtp
ZigoTXwwKT09MSl7aWYoKEp8MCk9PTApe2JyZWFrfWtLKEopO2JyZWFrfU09Yk8oOCl8MDtkRShN
LDEzNjgpO2JsKE18MCw4MTkyLDIyKX19d2hpbGUoMCk7QT1lfDA7ej1jW0E+PjJdfDA7ZG97aWYo
KHp8MCk9PTApe1I9MH1lbHNle009Y1t6KzEyPj4yXXwwO2lmKChNfDApPT0oY1t6KzE2Pj4yXXww
KSl7Uz1iMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDB9ZWxzZXtTPWNbTT4+Ml18MH1p
ZigoU3wwKSE9LTEpe1I9ejticmVha31jW0E+PjJdPTA7Uj0wfX13aGlsZSgwKTtBPShSfDApPT0w
O3o9Y1tCPj4yXXwwO2Rve2lmKCh6fDApPT0wKXtUPTczOX1lbHNle009Y1t6KzEyPj4yXXwwO2lm
KChNfDApPT0oY1t6KzE2Pj4yXXwwKSl7VT1iMFtjWyhjW3o+PjJdfDApKzM2Pj4yXSYxMjddKHop
fDB9ZWxzZXtVPWNbTT4+Ml18MH1pZigoVXwwKT09LTEpe2NbQj4+Ml09MDtUPTczOTticmVha31l
bHNle2lmKEFeKHp8MCk9PTApe2JyZWFrfWVsc2V7VD03NDE7YnJlYWt9fX19d2hpbGUoMCk7aWYo
KFR8MCk9PTczOSl7aWYoQSl7VD03NDF9fWlmKChUfDApPT03NDEpe2Nbaj4+Ml09Y1tqPj4yXXwy
fWNbYj4+Ml09Ujt6PWNbbT4+Ml18MDtkeih6KXwwO3o9Y1t1Pj4yXXwwO2NbdT4+Ml09MDtpZigo
enwwKT09MCl7aT1kO3JldHVybn1iWVtjW3Y+PjJdJjUxMV0oeik7aT1kO3JldHVybn19d2hpbGUo
MCk7ZD1iTyg0KXwwO2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaFooYixlLGYsZyxo
LGosayxsLG0sbixvKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDts
PWx8MDttPW18MDtuPW58MDtvPW98MDt2YXIgcD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0w
LEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAs
Wj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAs
YWo9MCxhaz0wLGFsPTAsYW09MCxhbj0wLGFvPTAsYXA9MCxhcT0wLGFyPTAsYXM9MCxhdD0wLGF1
PTAsYXY9MCxhdz0wLGF4PTAsYXk9MCxhej0wLGFBPTAsYUI9MCxhQz0wLGFEPTAsYUU9MCxhRj0w
LGFHPTAsYUg9MCxhST0wLGFKPTAsYUs9MCxhTD0wLGFNPTAsYU49MCxhTz0wLGFQPTAsYVE9MCxh
Uj0wLGFTPTAsYVQ9MCxhVT0wLGFWPTAsYVc9MCxhWD0wLGFZPTAsYVo9MCxhXz0wLGEkPTAsYTA9
MCxhMT0wLGEyPTAsYTM9MCxhND0wLGE1PTAsYTY9MCxhNz0wLGE4PTAsYTk9MCxiYT0wLGJiPTAs
YmM9MCxiZD0wLGJlPTAsYmY9MCxiZz0wLGJoPTAsYmk9MCxiaj0wLGJrPTAsYmw9MCxibT0wLGJu
PTAsYm89MCxicD0wLGJxPTAsYnI9MCxicz0wLGJ0PTAsYnU9MCxidj0wLGJ3PTAsYng9MCxieT0w
LGJ6PTAsYkE9MCxiQj0wLGJDPTAsYkQ9MDtwPWk7aT1pKzQ0OHwwO3E9ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbcT4+Ml07cT1wfDA7cj1wKzh8MDtzPXArNDA4fDA7dD1wKzQx
NnwwO3U9cCs0MjR8MDt2PXArNDMyfDA7dz12O3g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt5PWk7
aT1pKzEyfDA7aT1pKzc+PjM8PDM7ej1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrMTJ8
MDtpPWkrNz4+Mzw8MztCPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztDPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW3E+PjJdPW87bz1yfDA7ayQod3wwLDAsMTIpO0Q9eDtFPXk7Rj16O0c9QTtrJChEfDAs
MCwxMik7ayQoRXwwLDAsMTIpO2skKEZ8MCwwLDEyKTtrJChHfDAsMCwxMik7aDIoZixnLHMsdCx1
LHYseCx5LHosQik7Zz1tfDA7Y1tuPj4yXT1jW2c+PjJdO2Y9YnwwO2I9ZXwwO2U9bDtIPXorNHww
O0k9eis4fDA7Sj15KzR8MDtLPXkrOHwwO0w9KGgmNTEyfDApIT0wO2g9eCs0fDA7TT14Kzh8MDtO
PUErNHwwO089QSs4fDA7UD1zKzN8MDtRPXYrNHwwO1I9MTY2O1M9bztUPW87bz1yKzQwMHwwO3I9
MDtVPTA7TDg5MDp3aGlsZSgxKXtWPWNbZj4+Ml18MDtkb3tpZigoVnwwKT09MCl7Vz0xfWVsc2V7
WD1jW1YrMTI+PjJdfDA7aWYoKFh8MCk9PShjW1YrMTY+PjJdfDApKXtZPWIwW2NbKGNbVj4+Ml18
MCkrMzY+PjJdJjEyN10oVil8MH1lbHNle1k9Y1tYPj4yXXwwfWlmKChZfDApPT0tMSl7Y1tmPj4y
XT0wO1c9MTticmVha31lbHNle1c9KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtWPWNb
Yj4+Ml18MDtkb3tpZigoVnwwKT09MCl7Wj03Njd9ZWxzZXtYPWNbVisxMj4+Ml18MDtpZigoWHww
KT09KGNbVisxNj4+Ml18MCkpe189YjBbY1soY1tWPj4yXXwwKSszNj4+Ml0mMTI3XShWKXwwfWVs
c2V7Xz1jW1g+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2I+PjJdPTA7Wj03Njc7YnJlYWt9ZWxzZXtp
ZihXXihWfDApPT0wKXskPVY7YnJlYWt9ZWxzZXthYT1SO2FiPVM7YWM9VDthZD1yO1o9MTAwNzti
cmVhayBMODkwfX19fXdoaWxlKDApO2lmKChafDApPT03Njcpe1o9MDtpZihXKXthYT1SO2FiPVM7
YWM9VDthZD1yO1o9MTAwNzticmVha31lbHNleyQ9MH19TDkxNDpkb3tzd2l0Y2goYVtzK1V8MF18
MCl7Y2FzZSAyOntpZighKChyfDApIT0wfFU+Pj4wPDIpKXtpZigoVXwwKT09Mil7YWU9KGFbUF18
MCkhPTB9ZWxzZXthZT0wfWlmKCEoTHxhZSkpe2FmPTA7YWc9bzthaD1UO2FpPVM7YWo9UjticmVh
ayBMOTE0fX1WPWFbRF18MDtYPShWJjEpPT0wP2g6Y1tNPj4yXXwwO0w5MjI6ZG97aWYoKFV8MCk9
PTApe2FrPVg7YWw9VjthbT0kfWVsc2V7aWYoKGRbcysoVS0xKXwwXXwwKTwyKXthbj1YO2FvPVZ9
ZWxzZXthaz1YO2FsPVY7YW09JDticmVha313aGlsZSgxKXthcD1hbyYyNTU7aWYoKGFufDApPT0o
KChhbyYxKT09MD9oOmNbTT4+Ml18MCkrKCgoYXAmMXwwKT09MD9hcD4+PjE6Y1toPj4yXXwwKTw8
Mil8MCkpe2FxPWFvO2JyZWFrfWlmKCEoYjFbY1soY1tlPj4yXXwwKSsxMj4+Ml0mNjNdKGwsODE5
MixjW2FuPj4yXXwwKXwwKSl7Wj04Njg7YnJlYWt9YW49YW4rNHwwO2FvPWFbRF18MH1pZigoWnww
KT09ODY4KXtaPTA7YXE9YVtEXXwwfWFwPShhcSYxKT09MDthcj1hbi0oYXA/aDpjW00+PjJdfDAp
Pj4yO2FzPWFbR118MDthdD1hcyYyNTU7YXU9KGF0JjF8MCk9PTA7TDkzMjpkb3tpZihhcj4+PjA8
PShhdT9hdD4+PjE6Y1tOPj4yXXwwKT4+PjApe2F2PShhcyYxKT09MDthdz0oYXY/TjpjW08+PjJd
fDApKygoYXU/YXQ+Pj4xOmNbTj4+Ml18MCktYXI8PDIpfDA7YXg9KGF2P046Y1tPPj4yXXwwKSso
KGF1P2F0Pj4+MTpjW04+PjJdfDApPDwyKXwwO2lmKChhd3wwKT09KGF4fDApKXthaz1hbjthbD1h
cTthbT0kO2JyZWFrIEw5MjJ9ZWxzZXtheT1hdzthej1hcD9oOmNbTT4+Ml18MH13aGlsZSgxKXtp
ZigoY1theT4+Ml18MCkhPShjW2F6Pj4yXXwwKSl7YnJlYWsgTDkzMn1hdz1heSs0fDA7aWYoKGF3
fDApPT0oYXh8MCkpe2FrPWFuO2FsPWFxO2FtPSQ7YnJlYWsgTDkyMn1heT1hdzthej1heis0fDB9
fX13aGlsZSgwKTthaz1hcD9oOmNbTT4+Ml18MDthbD1hcTthbT0kfX13aGlsZSgwKTtMOTM5Ondo
aWxlKDEpe1Y9YWwmMjU1O2lmKChha3wwKT09KCgoYWwmMSk9PTA/aDpjW00+PjJdfDApKygoKFYm
MXwwKT09MD9WPj4+MTpjW2g+PjJdfDApPDwyKXwwKSl7YnJlYWt9Vj1jW2Y+PjJdfDA7ZG97aWYo
KFZ8MCk9PTApe2FBPTF9ZWxzZXtYPWNbVisxMj4+Ml18MDtpZigoWHwwKT09KGNbVisxNj4+Ml18
MCkpe2FCPWIwW2NbKGNbVj4+Ml18MCkrMzY+PjJdJjEyN10oVil8MH1lbHNle2FCPWNbWD4+Ml18
MH1pZigoYUJ8MCk9PS0xKXtjW2Y+PjJdPTA7YUE9MTticmVha31lbHNle2FBPShjW2Y+PjJdfDAp
PT0wO2JyZWFrfX19d2hpbGUoMCk7ZG97aWYoKGFtfDApPT0wKXtaPTg4OX1lbHNle1Y9Y1thbSsx
Mj4+Ml18MDtpZigoVnwwKT09KGNbYW0rMTY+PjJdfDApKXthQz1iMFtjWyhjW2FtPj4yXXwwKSsz
Nj4+Ml0mMTI3XShhbSl8MH1lbHNle2FDPWNbVj4+Ml18MH1pZigoYUN8MCk9PS0xKXtjW2I+PjJd
PTA7Wj04ODk7YnJlYWt9ZWxzZXtpZihhQV4oYW18MCk9PTApe2FEPWFtO2JyZWFrfWVsc2V7YnJl
YWsgTDkzOX19fX13aGlsZSgwKTtpZigoWnwwKT09ODg5KXtaPTA7aWYoYUEpe2JyZWFrfWVsc2V7
YUQ9MH19Vj1jW2Y+PjJdfDA7YXA9Y1tWKzEyPj4yXXwwO2lmKChhcHwwKT09KGNbVisxNj4+Ml18
MCkpe2FFPWIwW2NbKGNbVj4+Ml18MCkrMzY+PjJdJjEyN10oVil8MH1lbHNle2FFPWNbYXA+PjJd
fDB9aWYoKGFFfDApIT0oY1thaz4+Ml18MCkpe2JyZWFrfWFwPWNbZj4+Ml18MDtWPWFwKzEyfDA7
WD1jW1Y+PjJdfDA7aWYoKFh8MCk9PShjW2FwKzE2Pj4yXXwwKSl7YXQ9Y1soY1thcD4+Ml18MCkr
NDA+PjJdfDA7YjBbYXQmMTI3XShhcCl8MH1lbHNle2NbVj4+Ml09WCs0fWFrPWFrKzR8MDthbD1h
W0RdfDA7YW09YUR9aWYoIUwpe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMOTE0fVg9
YVtEXXwwO1Y9WCYyNTU7aWYoKGFrfDApPT0oKChYJjEpPT0wP2g6Y1tNPj4yXXwwKSsoKChWJjF8
MCk9PTA/Vj4+PjE6Y1toPj4yXXwwKTw8Mil8MCkpe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9Un1l
bHNle1o9OTAxO2JyZWFrIEw4OTB9YnJlYWt9O2Nhc2UgNDp7Vj0wO1g9bzthcD1UO2F0PVM7YXU9
UjtMOTc1OndoaWxlKDEpe2FyPWNbZj4+Ml18MDtkb3tpZigoYXJ8MCk9PTApe2FGPTF9ZWxzZXth
cz1jW2FyKzEyPj4yXXwwO2lmKChhc3wwKT09KGNbYXIrMTY+PjJdfDApKXthRz1iMFtjWyhjW2Fy
Pj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2FHPWNbYXM+PjJdfDB9aWYoKGFHfDApPT0t
MSl7Y1tmPj4yXT0wO2FGPTE7YnJlYWt9ZWxzZXthRj0oY1tmPj4yXXwwKT09MDticmVha319fXdo
aWxlKDApO2FyPWNbYj4+Ml18MDtkb3tpZigoYXJ8MCk9PTApe1o9OTE1fWVsc2V7YXM9Y1thcisx
Mj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YUg9YjBbY1soY1thcj4+Ml18MCkr
MzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthSD1jW2FzPj4yXXwwfWlmKChhSHwwKT09LTEpe2NbYj4+
Ml09MDtaPTkxNTticmVha31lbHNle2lmKGFGXihhcnwwKT09MCl7YnJlYWt9ZWxzZXticmVhayBM
OTc1fX19fXdoaWxlKDApO2lmKChafDApPT05MTUpe1o9MDtpZihhRil7YnJlYWt9fWFyPWNbZj4+
Ml18MDthcz1jW2FyKzEyPj4yXXwwO2lmKChhc3wwKT09KGNbYXIrMTY+PjJdfDApKXthST1iMFtj
WyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2FJPWNbYXM+PjJdfDB9aWYoYjFb
Y1soY1tlPj4yXXwwKSsxMj4+Ml0mNjNdKGwsMjA0OCxhSSl8MCl7YXM9Y1tuPj4yXXwwO2lmKChh
c3wwKT09KGNbcT4+Ml18MCkpe2gzKG0sbixxKTthSj1jW24+PjJdfDB9ZWxzZXthSj1hc31jW24+
PjJdPWFKKzQ7Y1thSj4+Ml09YUk7YUs9VisxfDA7YUw9WDthTT1hcDthTj1hdDthTz1hdX1lbHNl
e2FzPWRbd118MDtpZigoKChhcyYxfDApPT0wP2FzPj4+MTpjW1E+PjJdfDApfDApPT0wfChWfDAp
PT0wKXticmVha31pZigoYUl8MCkhPShjW3U+PjJdfDApKXticmVha31pZigoYXB8MCk9PShYfDAp
KXthcz0oYXV8MCkhPTE2Njthcj1hcC1hdHwwO2F4PWFyPj4+MDwyMTQ3NDgzNjQ3P2FyPDwxOi0x
O2lmKGFzKXthUD1hdH1lbHNle2FQPTB9YXM9a0woYVAsYXgpfDA7YXc9YXM7aWYoKGFzfDApPT0w
KXtrWCgpfWFRPWF3KyhheD4+PjI8PDIpfDA7YVI9YXcrKGFyPj4yPDwyKXwwO2FTPWF3O2FUPTgy
fWVsc2V7YVE9WDthUj1hcDthUz1hdDthVD1hdX1jW2FSPj4yXT1WO2FLPTA7YUw9YVE7YU09YVIr
NHwwO2FOPWFTO2FPPWFUfWF3PWNbZj4+Ml18MDthcj1hdysxMnwwO2F4PWNbYXI+PjJdfDA7aWYo
KGF4fDApPT0oY1thdysxNj4+Ml18MCkpe2FzPWNbKGNbYXc+PjJdfDApKzQwPj4yXXwwO2IwW2Fz
JjEyN10oYXcpfDA7Vj1hSztYPWFMO2FwPWFNO2F0PWFOO2F1PWFPO2NvbnRpbnVlfWVsc2V7Y1th
cj4+Ml09YXgrNDtWPWFLO1g9YUw7YXA9YU07YXQ9YU47YXU9YU87Y29udGludWV9fWlmKChhdHww
KT09KGFwfDApfChWfDApPT0wKXthVT1YO2FWPWFwO2FXPWF0O2FYPWF1fWVsc2V7aWYoKGFwfDAp
PT0oWHwwKSl7YXg9KGF1fDApIT0xNjY7YXI9YXAtYXR8MDthdz1hcj4+PjA8MjE0NzQ4MzY0Nz9h
cjw8MTotMTtpZihheCl7YVk9YXR9ZWxzZXthWT0wfWF4PWtMKGFZLGF3KXwwO2FzPWF4O2lmKChh
eHwwKT09MCl7a1goKX1hWj1hcysoYXc+Pj4yPDwyKXwwO2FfPWFzKyhhcj4+Mjw8Mil8MDthJD1h
czthMD04Mn1lbHNle2FaPVg7YV89YXA7YSQ9YXQ7YTA9YXV9Y1thXz4+Ml09VjthVT1hWjthVj1h
Xys0fDA7YVc9YSQ7YVg9YTB9YXM9Y1tCPj4yXXwwO2lmKChhc3wwKT4wKXthcj1jW2Y+PjJdfDA7
ZG97aWYoKGFyfDApPT0wKXthMT0xfWVsc2V7YXc9Y1thcisxMj4+Ml18MDtpZigoYXd8MCk9PShj
W2FyKzE2Pj4yXXwwKSl7YTI9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxz
ZXthMj1jW2F3Pj4yXXwwfWlmKChhMnwwKT09LTEpe2NbZj4+Ml09MDthMT0xO2JyZWFrfWVsc2V7
YTE9KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTthcj1jW2I+PjJdfDA7ZG97aWYoKGFy
fDApPT0wKXtaPTk2NH1lbHNle1Y9Y1thcisxMj4+Ml18MDtpZigoVnwwKT09KGNbYXIrMTY+PjJd
fDApKXthMz1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2EzPWNbVj4+
Ml18MH1pZigoYTN8MCk9PS0xKXtjW2I+PjJdPTA7Wj05NjQ7YnJlYWt9ZWxzZXtpZihhMV4oYXJ8
MCk9PTApe2E0PWFyO2JyZWFrfWVsc2V7Wj05NzA7YnJlYWsgTDg5MH19fX13aGlsZSgwKTtpZigo
WnwwKT09OTY0KXtaPTA7aWYoYTEpe1o9OTcwO2JyZWFrIEw4OTB9ZWxzZXthND0wfX1hcj1jW2Y+
PjJdfDA7Vj1jW2FyKzEyPj4yXXwwO2lmKChWfDApPT0oY1thcisxNj4+Ml18MCkpe2E1PWIwW2Nb
KGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YTU9Y1tWPj4yXXwwfWlmKChhNXww
KSE9KGNbdD4+Ml18MCkpe1o9OTcwO2JyZWFrIEw4OTB9Vj1jW2Y+PjJdfDA7YXI9VisxMnwwO2F1
PWNbYXI+PjJdfDA7aWYoKGF1fDApPT0oY1tWKzE2Pj4yXXwwKSl7YXQ9Y1soY1tWPj4yXXwwKSs0
MD4+Ml18MDtiMFthdCYxMjddKFYpfDA7YTY9YTQ7YTc9YXN9ZWxzZXtjW2FyPj4yXT1hdSs0O2E2
PWE0O2E3PWFzfXdoaWxlKDEpe2F1PWNbZj4+Ml18MDtkb3tpZigoYXV8MCk9PTApe2E4PTF9ZWxz
ZXthcj1jW2F1KzEyPj4yXXwwO2lmKChhcnwwKT09KGNbYXUrMTY+PjJdfDApKXthOT1iMFtjWyhj
W2F1Pj4yXXwwKSszNj4+Ml0mMTI3XShhdSl8MH1lbHNle2E5PWNbYXI+PjJdfDB9aWYoKGE5fDAp
PT0tMSl7Y1tmPj4yXT0wO2E4PTE7YnJlYWt9ZWxzZXthOD0oY1tmPj4yXXwwKT09MDticmVha319
fXdoaWxlKDApO2Rve2lmKChhNnwwKT09MCl7Wj05ODd9ZWxzZXthdT1jW2E2KzEyPj4yXXwwO2lm
KChhdXwwKT09KGNbYTYrMTY+PjJdfDApKXtiYT1iMFtjWyhjW2E2Pj4yXXwwKSszNj4+Ml0mMTI3
XShhNil8MH1lbHNle2JhPWNbYXU+PjJdfDB9aWYoKGJhfDApPT0tMSl7Y1tiPj4yXT0wO1o9OTg3
O2JyZWFrfWVsc2V7aWYoYTheKGE2fDApPT0wKXtiYj1hNjticmVha31lbHNle1o9OTk0O2JyZWFr
IEw4OTB9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTk4Nyl7Wj0wO2lmKGE4KXtaPTk5NDticmVhayBM
ODkwfWVsc2V7YmI9MH19YXU9Y1tmPj4yXXwwO2FyPWNbYXUrMTI+PjJdfDA7aWYoKGFyfDApPT0o
Y1thdSsxNj4+Ml18MCkpe2JjPWIwW2NbKGNbYXU+PjJdfDApKzM2Pj4yXSYxMjddKGF1KXwwfWVs
c2V7YmM9Y1thcj4+Ml18MH1pZighKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJdJjYzXShsLDIwNDgs
YmMpfDApKXtaPTk5NDticmVhayBMODkwfWlmKChjW24+PjJdfDApPT0oY1txPj4yXXwwKSl7aDMo
bSxuLHEpfWFyPWNbZj4+Ml18MDthdT1jW2FyKzEyPj4yXXwwO2lmKChhdXwwKT09KGNbYXIrMTY+
PjJdfDApKXtiZD1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2JkPWNb
YXU+PjJdfDB9YXU9Y1tuPj4yXXwwO2Nbbj4+Ml09YXUrNDtjW2F1Pj4yXT1iZDthdT1hNy0xfDA7
Y1tCPj4yXT1hdTthcj1jW2Y+PjJdfDA7Vj1hcisxMnwwO2F0PWNbVj4+Ml18MDtpZigoYXR8MCk9
PShjW2FyKzE2Pj4yXXwwKSl7YXA9Y1soY1thcj4+Ml18MCkrNDA+PjJdfDA7YjBbYXAmMTI3XShh
cil8MH1lbHNle2NbVj4+Ml09YXQrNH1pZigoYXV8MCk+MCl7YTY9YmI7YTc9YXV9ZWxzZXticmVh
a319fWlmKChjW24+PjJdfDApPT0oY1tnPj4yXXwwKSl7Wj0xMDA1O2JyZWFrIEw4OTB9ZWxzZXth
Zj1yO2FnPWFVO2FoPWFWO2FpPWFXO2FqPWFYfWJyZWFrfTtjYXNlIDE6e2lmKChVfDApPT0zKXth
YT1SO2FiPVM7YWM9VDthZD1yO1o9MTAwNzticmVhayBMODkwfWFzPWNbZj4+Ml18MDthdT1jW2Fz
KzEyPj4yXXwwO2lmKChhdXwwKT09KGNbYXMrMTY+PjJdfDApKXtiZT1iMFtjWyhjW2FzPj4yXXww
KSszNj4+Ml0mMTI3XShhcyl8MH1lbHNle2JlPWNbYXU+PjJdfDB9aWYoIShiMVtjWyhjW2U+PjJd
fDApKzEyPj4yXSY2M10obCw4MTkyLGJlKXwwKSl7Wj03OTE7YnJlYWsgTDg5MH1hdT1jW2Y+PjJd
fDA7YXM9YXUrMTJ8MDthdD1jW2FzPj4yXXwwO2lmKChhdHwwKT09KGNbYXUrMTY+PjJdfDApKXti
Zj1iMFtjWyhjW2F1Pj4yXXwwKSs0MD4+Ml0mMTI3XShhdSl8MH1lbHNle2NbYXM+PjJdPWF0KzQ7
YmY9Y1thdD4+Ml18MH1laChBLGJmKTtaPTc5MjticmVha307Y2FzZSAwOntaPTc5MjticmVha307
Y2FzZSAzOnthdD1hW0VdfDA7YXM9YXQmMjU1O2F1PShhcyYxfDApPT0wO1Y9YVtGXXwwO2FyPVYm
MjU1O2FwPShhciYxfDApPT0wO2lmKCgoYXU/YXM+Pj4xOmNbSj4+Ml18MCl8MCk9PSgtKGFwP2Fy
Pj4+MTpjW0g+PjJdfDApfDApKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDkxNH1k
b3tpZigoKGF1P2FzPj4+MTpjW0o+PjJdfDApfDApIT0wKXtpZigoKGFwP2FyPj4+MTpjW0g+PjJd
fDApfDApPT0wKXticmVha31YPWNbZj4+Ml18MDthdz1jW1grMTI+PjJdfDA7aWYoKGF3fDApPT0o
Y1tYKzE2Pj4yXXwwKSl7YXg9YjBbY1soY1tYPj4yXXwwKSszNj4+Ml0mMTI3XShYKXwwO2JnPWF4
O2JoPWFbRV18MH1lbHNle2JnPWNbYXc+PjJdfDA7Ymg9YXR9YXc9Y1tmPj4yXXwwO2F4PWF3KzEy
fDA7WD1jW2F4Pj4yXXwwO2F2PShYfDApPT0oY1thdysxNj4+Ml18MCk7aWYoKGJnfDApPT0oY1so
KGJoJjEpPT0wP0o6Y1tLPj4yXXwwKT4+Ml18MCkpe2lmKGF2KXtiaT1jWyhjW2F3Pj4yXXwwKSs0
MD4+Ml18MDtiMFtiaSYxMjddKGF3KXwwfWVsc2V7Y1theD4+Ml09WCs0fWF4PWRbRV18MDthZj0o
KGF4JjF8MCk9PTA/YXg+Pj4xOmNbSj4+Ml18MCk+Pj4wPjE/eTpyO2FnPW87YWg9VDthaT1TO2Fq
PVI7YnJlYWsgTDkxNH1pZihhdil7Ymo9YjBbY1soY1thdz4+Ml18MCkrMzY+PjJdJjEyN10oYXcp
fDB9ZWxzZXtiaj1jW1g+PjJdfDB9aWYoKGJqfDApIT0oY1soKGFbRl0mMSk9PTA/SDpjW0k+PjJd
fDApPj4yXXwwKSl7Wj04NTc7YnJlYWsgTDg5MH1YPWNbZj4+Ml18MDthdz1YKzEyfDA7YXY9Y1th
dz4+Ml18MDtpZigoYXZ8MCk9PShjW1grMTY+PjJdfDApKXtheD1jWyhjW1g+PjJdfDApKzQwPj4y
XXwwO2IwW2F4JjEyN10oWCl8MH1lbHNle2NbYXc+PjJdPWF2KzR9YVtrXT0xO2F2PWRbRl18MDth
Zj0oKGF2JjF8MCk9PTA/YXY+Pj4xOmNbSD4+Ml18MCk+Pj4wPjE/ejpyO2FnPW87YWg9VDthaT1T
O2FqPVI7YnJlYWsgTDkxNH19d2hpbGUoMCk7YXI9Y1tmPj4yXXwwO2FwPWNbYXIrMTI+PjJdfDA7
YXY9KGFwfDApPT0oY1thcisxNj4+Ml18MCk7aWYoKChhdT9hcz4+PjE6Y1tKPj4yXXwwKXwwKT09
MCl7aWYoYXYpe2F3PWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwO2JrPWF3O2Js
PWFbRl18MH1lbHNle2JrPWNbYXA+PjJdfDA7Ymw9Vn1pZigoYmt8MCkhPShjWygoYmwmMSk9PTA/
SDpjW0k+PjJdfDApPj4yXXwwKSl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9
YXc9Y1tmPj4yXXwwO1g9YXcrMTJ8MDtheD1jW1g+PjJdfDA7aWYoKGF4fDApPT0oY1thdysxNj4+
Ml18MCkpe2JpPWNbKGNbYXc+PjJdfDApKzQwPj4yXXwwO2IwW2JpJjEyN10oYXcpfDB9ZWxzZXtj
W1g+PjJdPWF4KzR9YVtrXT0xO2F4PWRbRl18MDthZj0oKGF4JjF8MCk9PTA/YXg+Pj4xOmNbSD4+
Ml18MCk+Pj4wPjE/ejpyO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsgTDkxNH1pZihhdil7YXY9
YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDA7Ym09YXY7Ym49YVtFXXwwfWVsc2V7
Ym09Y1thcD4+Ml18MDtibj1hdH1pZigoYm18MCkhPShjWygoYm4mMSk9PTA/SjpjW0s+PjJdfDAp
Pj4yXXwwKSl7YVtrXT0xO2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMOTE0fWFwPWNb
Zj4+Ml18MDthdj1hcCsxMnwwO2FyPWNbYXY+PjJdfDA7aWYoKGFyfDApPT0oY1thcCsxNj4+Ml18
MCkpe2F4PWNbKGNbYXA+PjJdfDApKzQwPj4yXXwwO2IwW2F4JjEyN10oYXApfDB9ZWxzZXtjW2F2
Pj4yXT1hcis0fWFyPWRbRV18MDthZj0oKGFyJjF8MCk9PTA/YXI+Pj4xOmNbSj4+Ml18MCk+Pj4w
PjE/eTpyO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWt9O2RlZmF1bHQ6e2FmPXI7YWc9bzthaD1U
O2FpPVM7YWo9Un19fXdoaWxlKDApO0wxMTgzOmRve2lmKChafDApPT03OTIpe1o9MDtpZigoVXww
KT09Myl7YWE9UjthYj1TO2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWsgTDg5MH1lbHNle2JvPSR9d2hp
bGUoMSl7YXI9Y1tmPj4yXXwwO2Rve2lmKChhcnwwKT09MCl7YnA9MX1lbHNle2F2PWNbYXIrMTI+
PjJdfDA7aWYoKGF2fDApPT0oY1thcisxNj4+Ml18MCkpe2JxPWIwW2NbKGNbYXI+PjJdfDApKzM2
Pj4yXSYxMjddKGFyKXwwfWVsc2V7YnE9Y1thdj4+Ml18MH1pZigoYnF8MCk9PS0xKXtjW2Y+PjJd
PTA7YnA9MTticmVha31lbHNle2JwPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7ZG97
aWYoKGJvfDApPT0wKXtaPTgwNn1lbHNle2FyPWNbYm8rMTI+PjJdfDA7aWYoKGFyfDApPT0oY1ti
bysxNj4+Ml18MCkpe2JyPWIwW2NbKGNbYm8+PjJdfDApKzM2Pj4yXSYxMjddKGJvKXwwfWVsc2V7
YnI9Y1thcj4+Ml18MH1pZigoYnJ8MCk9PS0xKXtjW2I+PjJdPTA7Wj04MDY7YnJlYWt9ZWxzZXtp
ZihicF4oYm98MCk9PTApe2JzPWJvO2JyZWFrfWVsc2V7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1S
O2JyZWFrIEwxMTgzfX19fXdoaWxlKDApO2lmKChafDApPT04MDYpe1o9MDtpZihicCl7YWY9cjth
Zz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEwxMTgzfWVsc2V7YnM9MH19YXI9Y1tmPj4yXXwwO2F2
PWNbYXIrMTI+PjJdfDA7aWYoKGF2fDApPT0oY1thcisxNj4+Ml18MCkpe2J0PWIwW2NbKGNbYXI+
PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YnQ9Y1thdj4+Ml18MH1pZighKGIxW2NbKGNb
ZT4+Ml18MCkrMTI+PjJdJjYzXShsLDgxOTIsYnQpfDApKXthZj1yO2FnPW87YWg9VDthaT1TO2Fq
PVI7YnJlYWsgTDExODN9YXY9Y1tmPj4yXXwwO2FyPWF2KzEyfDA7YXA9Y1thcj4+Ml18MDtpZigo
YXB8MCk9PShjW2F2KzE2Pj4yXXwwKSl7YnU9YjBbY1soY1thdj4+Ml18MCkrNDA+PjJdJjEyN10o
YXYpfDB9ZWxzZXtjW2FyPj4yXT1hcCs0O2J1PWNbYXA+PjJdfDB9ZWgoQSxidSk7Ym89YnN9fX13
aGlsZSgwKTthdD1VKzF8MDtpZihhdD4+PjA8NCl7Uj1hajtTPWFpO1Q9YWg7bz1hZztyPWFmO1U9
YXR9ZWxzZXthYT1hajthYj1haTthYz1haDthZD1hZjtaPTEwMDc7YnJlYWt9fUwxMjIwOmRve2lm
KChafDApPT04NTcpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9UztieD1SfWVsc2UgaWYoKFp8
MCk9PTkwMSl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1TO2J4PVJ9ZWxzZSBpZigoWnwwKT09
OTcwKXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PWFXO2J4PWFYfWVsc2UgaWYoKFp8MCk9PTk5
NCl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlmKChafDApPT0xMDA1
KXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PWFXO2J4PWFYfWVsc2UgaWYoKFp8MCk9PTEwMDcp
e0wxMjI3OmRve2lmKChhZHwwKSE9MCl7YWY9YWQ7YWg9YWQrNHwwO2FpPWFkKzh8MDthaj0xO0wx
MjI5OndoaWxlKDEpe1U9ZFthZl18MDtpZigoVSYxfDApPT0wKXtieT1VPj4+MX1lbHNle2J5PWNb
YWg+PjJdfDB9aWYoYWo+Pj4wPj1ieT4+PjApe2JyZWFrIEwxMjI3fVU9Y1tmPj4yXXwwO2Rve2lm
KChVfDApPT0wKXtiej0xfWVsc2V7cj1jW1UrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW1UrMTY+PjJd
fDApKXtiQT1iMFtjWyhjW1U+PjJdfDApKzM2Pj4yXSYxMjddKFUpfDB9ZWxzZXtiQT1jW3I+PjJd
fDB9aWYoKGJBfDApPT0tMSl7Y1tmPj4yXT0wO2J6PTE7YnJlYWt9ZWxzZXtiej0oY1tmPj4yXXww
KT09MDticmVha319fXdoaWxlKDApO1U9Y1tiPj4yXXwwO2Rve2lmKChVfDApPT0wKXtaPTEwMjZ9
ZWxzZXtyPWNbVSsxMj4+Ml18MDtpZigocnwwKT09KGNbVSsxNj4+Ml18MCkpe2JCPWIwW2NbKGNb
VT4+Ml18MCkrMzY+PjJdJjEyN10oVSl8MH1lbHNle2JCPWNbcj4+Ml18MH1pZigoYkJ8MCk9PS0x
KXtjW2I+PjJdPTA7Wj0xMDI2O2JyZWFrfWVsc2V7aWYoYnpeKFV8MCk9PTApe2JyZWFrfWVsc2V7
YnJlYWsgTDEyMjl9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTEwMjYpe1o9MDtpZihieil7YnJlYWt9
fVU9Y1tmPj4yXXwwO3I9Y1tVKzEyPj4yXXwwO2lmKChyfDApPT0oY1tVKzE2Pj4yXXwwKSl7YkM9
YjBbY1soY1tVPj4yXXwwKSszNj4+Ml0mMTI3XShVKXwwfWVsc2V7YkM9Y1tyPj4yXXwwfWlmKChh
W2FmXSYxKT09MCl7YkQ9YWh9ZWxzZXtiRD1jW2FpPj4yXXwwfWlmKChiQ3wwKSE9KGNbYkQrKGFq
PDwyKT4+Ml18MCkpe2JyZWFrfXI9YWorMXwwO1U9Y1tmPj4yXXwwO2FnPVUrMTJ8MDtvPWNbYWc+
PjJdfDA7aWYoKG98MCk9PShjW1UrMTY+PjJdfDApKXtUPWNbKGNbVT4+Ml18MCkrNDA+PjJdfDA7
YjBbVCYxMjddKFUpfDA7YWo9cjtjb250aW51ZX1lbHNle2NbYWc+PjJdPW8rNDthaj1yO2NvbnRp
bnVlfX1jW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PWFiO2J4PWFhO2JyZWFrIEwxMjIwfX13aGls
ZSgwKTtpZigoYWJ8MCk9PShhY3wwKSl7YnY9MTtidz1hYztieD1hYTticmVha31jW0M+PjJdPTA7
ZnQodixhYixhYyxDKTtpZigoY1tDPj4yXXwwKT09MCl7YnY9MTtidz1hYjtieD1hYTticmVha31j
W2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PWFiO2J4PWFhfWVsc2UgaWYoKFp8MCk9PTc5MSl7Y1tq
Pj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1TO2J4PVJ9fXdoaWxlKDApO2VlKEEpO2VlKHopO2VlKHkp
O2VlKHgpO2RQKHYpO2lmKChid3wwKT09MCl7aT1wO3JldHVybiBidnwwfWJZW2J4JjUxMV0oYncp
O2k9cDtyZXR1cm4gYnZ8MH1mdW5jdGlvbiBoXyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFy
IGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MDtmPWI7Zz1kO2g9YVtmXXww
O2k9aCYyNTU7aWYoKGkmMXwwKT09MCl7aj1pPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9aWYoKGgm
MSk9PTApe2s9MTtsPWh9ZWxzZXtoPWNbYj4+Ml18MDtrPShoJi0yKS0xfDA7bD1oJjI1NX1oPWUt
Zz4+MjtpZigoaHwwKT09MCl7cmV0dXJuIGJ8MH1pZigoay1qfDApPj4+MDxoPj4+MCl7ZUIoYixr
LGoraC1rfDAsaixqLDAsMCk7bT1hW2ZdfDB9ZWxzZXttPWx9aWYoKG0mMSk9PTApe249Yis0fDB9
ZWxzZXtuPWNbYis4Pj4yXXwwfW09bisoajw8Mil8MDtpZigoZHwwKT09KGV8MCkpe289bX1lbHNl
e2w9aisoKGUtNCsoLWd8MCl8MCk+Pj4yKSsxfDA7Zz1kO2Q9bTt3aGlsZSgxKXtjW2Q+PjJdPWNb
Zz4+Ml07bT1nKzR8MDtpZigobXwwKT09KGV8MCkpe2JyZWFrfWVsc2V7Zz1tO2Q9ZCs0fDB9fW89
bisobDw8Mil8MH1jW28+PjJdPTA7bz1qK2h8MDtpZigoYVtmXSYxKT09MCl7YVtmXT1vPDwxJjI1
NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+PjJdPW87cmV0dXJuIGJ8MH1yZXR1cm4gMH1mdW5jdGlv
biBoJChhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBoMChhKXthPWF8MDtk
ZShhfDApO3JldHVybn1mdW5jdGlvbiBoMShiLGQsZSxmLGcsaCxqLGspe2I9YnwwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAs
RT0wLEY9MCxHPTAsSD0wO2Q9aTtpPWkrNDU2fDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZT4+Ml09Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+
PjJdO2w9ZHwwO209ZCsxNnwwO249ZCs0MTZ8MDtvPWQrNDI0fDA7cD1kKzQzMnwwO3E9ZCs0NDB8
MDtyPWQrNDQ4fDA7cz1ufDA7Y1tzPj4yXT1tO3Q9bis0fDA7Y1t0Pj4yXT0xNjY7dT1tKzQwMHww
O2VqKHAsaCk7bT1wfDA7dj1jW20+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJdPTE1
Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNdfDAp
LTF8MDt3PWNbdis4Pj4yXXwwO2Rve2lmKChjW3YrMTI+PjJdfDApLXc+PjI+Pj4wPmw+Pj4wKXt4
PWNbdysobDw8Mik+PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDthW3FdPTA7ej1mfDA7QT1j
W3o+PjJdfDA7Y1tyPj4yXT1BO2lmKGhaKGUscixnLHAsY1toKzQ+PjJdfDAsaixxLHksbixvLHUp
fDApe0I9aztpZigoYVtCXSYxKT09MCl7Y1trKzQ+PjJdPTA7YVtCXT0wfWVsc2V7Y1tjW2srOD4+
Ml0+PjJdPTA7Y1trKzQ+PjJdPTB9Qj14O2lmKChhW3FdJjEpIT0wKXtlaChrLGJfW2NbKGNbQj4+
Ml18MCkrNDQ+PjJdJjMxXSh5LDQ1KXwwKX14PWJfW2NbKGNbQj4+Ml18MCkrNDQ+PjJdJjMxXSh5
LDQ4KXwwO3k9Y1tvPj4yXXwwO0I9eS00fDA7Qz1jW3M+PjJdfDA7d2hpbGUoMSl7aWYoQz4+PjA+
PUI+Pj4wKXticmVha31pZigoY1tDPj4yXXwwKT09KHh8MCkpe0M9Qys0fDB9ZWxzZXticmVha319
aF8oayxDLHkpfDB9eD1lfDA7Qj1jW3g+PjJdfDA7ZG97aWYoKEJ8MCk9PTApe0Q9MH1lbHNle0U9
Y1tCKzEyPj4yXXwwO2lmKChFfDApPT0oY1tCKzE2Pj4yXXwwKSl7Rj1iMFtjWyhjW0I+PjJdfDAp
KzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtGPWNbRT4+Ml18MH1pZigoRnwwKSE9LTEpe0Q9QjticmVh
a31jW3g+PjJdPTA7RD0wfX13aGlsZSgwKTt4PShEfDApPT0wO2Rve2lmKChBfDApPT0wKXtHPTEx
MDV9ZWxzZXtCPWNbQSsxMj4+Ml18MDtpZigoQnwwKT09KGNbQSsxNj4+Ml18MCkpe0g9YjBbY1so
Y1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwfWVsc2V7SD1jW0I+PjJdfDB9aWYoKEh8MCk9PS0x
KXtjW3o+PjJdPTA7Rz0xMTA1O2JyZWFrfWVsc2V7aWYoeF4oQXwwKT09MCl7YnJlYWt9ZWxzZXtH
PTExMDc7YnJlYWt9fX19d2hpbGUoMCk7aWYoKEd8MCk9PTExMDUpe2lmKHgpe0c9MTEwN319aWYo
KEd8MCk9PTExMDcpe2Nbaj4+Ml09Y1tqPj4yXXwyfWNbYj4+Ml09RDtBPWNbbT4+Ml18MDtkeihB
KXwwO0E9Y1tzPj4yXXwwO2Nbcz4+Ml09MDtpZigoQXwwKT09MCl7aT1kO3JldHVybn1iWVtjW3Q+
PjJdJjUxMV0oQSk7aT1kO3JldHVybn19d2hpbGUoMCk7ZD1iTyg0KXwwO2txKGQpO2JsKGR8MCw4
MTc2LDEzNCl9ZnVuY3Rpb24gaDIoYixkLGUsZixnLGgsaixrLGwsbSl7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEQ9MCxF
PTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wO249aTtpPWkrNTZ8MDtv
PW58MDtwPW4rMTZ8MDtxPW4rMzJ8MDtyPW4rNDB8MDtzPXI7dD1pO2k9aSsxMnwwO2k9aSs3Pj4z
PDwzO3U9dDt2PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dz12O3g9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8Mzt5PXg7ej1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7QT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwz
O0I9QTtEPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7RT1EO0Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8
MztHPUY7SD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0k9SDtpZihiKXtiPWNbZD4+Ml18MDtpZigo
Y1s0MDQwXXwwKSE9LTEpe2NbcD4+Ml09MTYxNjA7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RX
KDE2MTYwLHAsOTYpfXA9KGNbNDA0MV18MCktMXwwO0o9Y1tiKzg+PjJdfDA7aWYoKGNbYisxMj4+
Ml18MCktSj4+Mj4+PjA8PXA+Pj4wKXtLPWJPKDQpfDA7TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEz
NCl9Yj1jW0orKHA8PDIpPj4yXXwwO2lmKChifDApPT0wKXtLPWJPKDQpfDA7TD1LO2txKEwpO2Js
KEt8MCw4MTc2LDEzNCl9Sz1iO2JaW2NbKGNbYj4+Ml18MCkrNDQ+PjJdJjEyN10ocSxLKTtMPWU7
Qz1jW3E+PjJdfDA7YVtMXT1DJjI1NTtDPUM+Pjg7YVtMKzF8MF09QyYyNTU7Qz1DPj44O2FbTCsy
fDBdPUMmMjU1O0M9Qz4+ODthW0wrM3wwXT1DJjI1NTtMPWI7YlpbY1soY1tMPj4yXXwwKSszMj4+
Ml0mMTI3XShyLEspO3E9bDtpZigoYVtxXSYxKT09MCl7Y1tsKzQ+PjJdPTA7YVtxXT0wfWVsc2V7
Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW3E+PjJdPWNbcz4+Ml07Y1tx
KzQ+PjJdPWNbcys0Pj4yXTtjW3ErOD4+Ml09Y1tzKzg+PjJdO2skKHN8MCwwLDEyKTtlZShyKTti
WltjWyhjW0w+PjJdfDApKzI4Pj4yXSYxMjddKHQsSyk7cj1rO2lmKChhW3JdJjEpPT0wKXtjW2sr
ND4+Ml09MDthW3JdPTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2srND4+Ml09MH1leihrLDAp
O2Nbcj4+Ml09Y1t1Pj4yXTtjW3IrND4+Ml09Y1t1KzQ+PjJdO2Nbcis4Pj4yXT1jW3UrOD4+Ml07
ayQodXwwLDAsMTIpO2VlKHQpO3Q9YjtjW2Y+PjJdPWIwW2NbKGNbdD4+Ml18MCkrMTI+PjJdJjEy
N10oSyl8MDtjW2c+PjJdPWIwW2NbKGNbdD4+Ml18MCkrMTY+PjJdJjEyN10oSyl8MDtiWltjWyhj
W2I+PjJdfDApKzIwPj4yXSYxMjddKHYsSyk7Yj1oO2lmKChhW2JdJjEpPT0wKXthW2grMXwwXT0w
O2FbYl09MH1lbHNle2FbY1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9ZCQoaCwwKTtjW2I+PjJd
PWNbdz4+Ml07Y1tiKzQ+PjJdPWNbdys0Pj4yXTtjW2IrOD4+Ml09Y1t3Kzg+PjJdO2skKHd8MCww
LDEyKTtkUCh2KTtiWltjWyhjW0w+PjJdfDApKzI0Pj4yXSYxMjddKHgsSyk7TD1qO2lmKChhW0xd
JjEpPT0wKXtjW2orND4+Ml09MDthW0xdPTB9ZWxzZXtjW2Nbais4Pj4yXT4+Ml09MDtjW2orND4+
Ml09MH1leihqLDApO2NbTD4+Ml09Y1t5Pj4yXTtjW0wrND4+Ml09Y1t5KzQ+PjJdO2NbTCs4Pj4y
XT1jW3krOD4+Ml07ayQoeXwwLDAsMTIpO2VlKHgpO009YjBbY1soY1t0Pj4yXXwwKSszNj4+Ml0m
MTI3XShLKXwwO2NbbT4+Ml09TTtpPW47cmV0dXJufWVsc2V7Sz1jW2Q+PjJdfDA7aWYoKGNbNDA0
Ml18MCkhPS0xKXtjW28+PjJdPTE2MTY4O2Nbbys0Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNjE2
OCxvLDk2KX1vPShjWzQwNDNdfDApLTF8MDtkPWNbSys4Pj4yXXwwO2lmKChjW0srMTI+PjJdfDAp
LWQ+PjI+Pj4wPD1vPj4+MCl7Tj1iTyg0KXwwO089TjtrcShPKTtibChOfDAsODE3NiwxMzQpfUs9
Y1tkKyhvPDwyKT4+Ml18MDtpZigoS3wwKT09MCl7Tj1iTyg0KXwwO089TjtrcShPKTtibChOfDAs
ODE3NiwxMzQpfU49SztiWltjWyhjW0s+PjJdfDApKzQ0Pj4yXSYxMjddKHosTik7Tz1lO0M9Y1t6
Pj4yXXwwO2FbT109QyYyNTU7Qz1DPj44O2FbTysxfDBdPUMmMjU1O0M9Qz4+ODthW08rMnwwXT1D
JjI1NTtDPUM+Pjg7YVtPKzN8MF09QyYyNTU7Tz1LO2JaW2NbKGNbTz4+Ml18MCkrMzI+PjJdJjEy
N10oQSxOKTt6PWw7aWYoKGFbel0mMSk9PTApe2NbbCs0Pj4yXT0wO2Fbel09MH1lbHNle2NbY1ts
Kzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1t6Pj4yXT1jW0I+PjJdO2Nbeis0Pj4y
XT1jW0IrND4+Ml07Y1t6Kzg+PjJdPWNbQis4Pj4yXTtrJChCfDAsMCwxMik7ZWUoQSk7YlpbY1so
Y1tPPj4yXXwwKSsyOD4+Ml0mMTI3XShELE4pO0E9aztpZigoYVtBXSYxKT09MCl7Y1trKzQ+PjJd
PTA7YVtBXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJdPTB9ZXooaywwKTtjW0E+
PjJdPWNbRT4+Ml07Y1tBKzQ+PjJdPWNbRSs0Pj4yXTtjW0ErOD4+Ml09Y1tFKzg+PjJdO2skKEV8
MCwwLDEyKTtlZShEKTtEPUs7Y1tmPj4yXT1iMFtjWyhjW0Q+PjJdfDApKzEyPj4yXSYxMjddKE4p
fDA7Y1tnPj4yXT1iMFtjWyhjW0Q+PjJdfDApKzE2Pj4yXSYxMjddKE4pfDA7YlpbY1soY1tLPj4y
XXwwKSsyMD4+Ml0mMTI3XShGLE4pO0s9aDtpZigoYVtLXSYxKT09MCl7YVtoKzF8MF09MDthW0td
PTB9ZWxzZXthW2NbaCs4Pj4yXXwwXT0wO2NbaCs0Pj4yXT0wfWQkKGgsMCk7Y1tLPj4yXT1jW0c+
PjJdO2NbSys0Pj4yXT1jW0crND4+Ml07Y1tLKzg+PjJdPWNbRys4Pj4yXTtrJChHfDAsMCwxMik7
ZFAoRik7YlpbY1soY1tPPj4yXXwwKSsyND4+Ml0mMTI3XShILE4pO089ajtpZigoYVtPXSYxKT09
MCl7Y1tqKzQ+PjJdPTA7YVtPXT0wfWVsc2V7Y1tjW2orOD4+Ml0+PjJdPTA7Y1tqKzQ+PjJdPTB9
ZXooaiwwKTtjW08+PjJdPWNbST4+Ml07Y1tPKzQ+PjJdPWNbSSs0Pj4yXTtjW08rOD4+Ml09Y1tJ
Kzg+PjJdO2skKEl8MCwwLDEyKTtlZShIKTtNPWIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10o
Til8MDtjW20+PjJdPU07aT1uO3JldHVybn19ZnVuY3Rpb24gaDMoYSxiLGQpe2E9YXwwO2I9Ynww
O2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wO2U9YSs0fDA7Zj0oY1tl
Pj4yXXwwKSE9MTY2O2c9YXwwO2E9Y1tnPj4yXXwwO2g9YTtpPShjW2Q+PjJdfDApLWh8MDtqPWk+
Pj4wPDIxNDc0ODM2NDc/aTw8MTotMTtpPShjW2I+PjJdfDApLWg+PjI7aWYoZil7az1hfWVsc2V7
az0wfWE9a0woayxqKXwwO2s9YTtpZigoYXwwKT09MCl7a1goKX1kb3tpZihmKXtjW2c+PjJdPWs7
bD1rfWVsc2V7YT1jW2c+PjJdfDA7Y1tnPj4yXT1rO2lmKChhfDApPT0wKXtsPWs7YnJlYWt9Yllb
Y1tlPj4yXSY1MTFdKGEpO2w9Y1tnPj4yXXwwfX13aGlsZSgwKTtjW2U+PjJdPTgyO2NbYj4+Ml09
bCsoaTw8Mik7Y1tkPj4yXT0oY1tnPj4yXXwwKSsoaj4+PjI8PDIpO3JldHVybn1mdW5jdGlvbiBo
NChiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPSts
O3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxO
PTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTA7ZT1pO2k9aSsyODB8MDttPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZXwwO249ZSsxMjB8MDtv
PWUrMjMyfDA7cD1lKzI0MHwwO3E9ZSsyNDh8MDtyPWUrMjU2fDA7cz1lKzI2NHwwO3Q9czt1PWk7
aT1pKzEyfDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt4PXc7eT1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7ej1pO2k9aSsxMDB8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztCPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztDPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztEPWUrMTZ8MDtjW24+PjJdPUQ7RT1lKzEyOHwwO0Y9YVooRHwwLDEwMCwxMzYwLChEPWks
aT1pKzh8MCxoW0Q+PjNdPWwsRCl8MCl8MDtpPUQ7ZG97aWYoRj4+PjA+OTkpe2Rve2lmKChhWzE2
MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7Rz1naChuLGNbMjk1OF18MCwxMzYwLChEPWksaT1pKzh8MCxoW0Q+PjNd
PWwsRCl8MCl8MDtpPUQ7SD1jW24+PjJdfDA7aWYoKEh8MCk9PTApe2tYKCk7ST1jW24+PjJdfDB9
ZWxzZXtJPUh9SD1rSihHKXwwO2lmKChIfDApIT0wKXtKPUg7Sz1HO0w9STtNPUg7YnJlYWt9a1go
KTtKPTA7Sz1HO0w9STtNPTB9ZWxzZXtKPUU7Sz1GO0w9MDtNPTB9fXdoaWxlKDApO2VqKG8saik7
Rj1vfDA7RT1jW0Y+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW20+PjJdPTE1Njk2O2NbbSs0
Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTY5NixtLDk2KX1tPShjWzM5MjVdfDApLTF8MDtJPWNb
RSs4Pj4yXXwwO2Rve2lmKChjW0UrMTI+PjJdfDApLUk+PjI+Pj4wPm0+Pj4wKXtEPWNbSSsobTw8
Mik+PjJdfDA7aWYoKER8MCk9PTApe2JyZWFrfUc9RDtIPWNbbj4+Ml18MDtOPUgrS3wwO089Y1so
Y1tEPj4yXXwwKSszMj4+Ml18MDtjYVtPJjE1XShHLEgsTixKKXwwO2lmKChLfDApPT0wKXtQPTB9
ZWxzZXtQPShhW2Nbbj4+Ml18MF18MCk9PTQ1fWskKHR8MCwwLDEyKTtrJCh2fDAsMCwxMik7ayQo
eHwwLDAsMTIpO2g1KGcsUCxvLHAscSxyLHMsdSx3LHkpO049enwwO0g9Y1t5Pj4yXXwwO2lmKChL
fDApPihIfDApKXtPPWRbeF18MDtpZigoTyYxfDApPT0wKXtRPU8+Pj4xfWVsc2V7UT1jW3crND4+
Ml18MH1PPWRbdl18MDtpZigoTyYxfDApPT0wKXtSPU8+Pj4xfWVsc2V7Uj1jW3UrND4+Ml18MH1T
PShLLUg8PDF8MSkrUStSfDB9ZWxzZXtPPWRbeF18MDtpZigoTyYxfDApPT0wKXtUPU8+Pj4xfWVs
c2V7VD1jW3crND4+Ml18MH1PPWRbdl18MDtpZigoTyYxfDApPT0wKXtVPU8+Pj4xfWVsc2V7VT1j
W3UrND4+Ml18MH1TPVQrMitVfDB9Tz1TK0h8MDtkb3tpZihPPj4+MD4xMDApe0Q9a0ooTyl8MDtp
ZigoRHwwKSE9MCl7Vj1EO1c9RDticmVha31rWCgpO1Y9MDtXPTB9ZWxzZXtWPU47Vz0wfX13aGls
ZSgwKTtoNihWLEEsQixjW2orND4+Ml18MCxKLEorS3wwLEcsUCxwLGFbcV18MCxhW3JdfDAscyx1
LHcsSCk7Y1tDPj4yXT1jW2Y+PjJdO2Y5KGIsQyxWLGNbQT4+Ml18MCxjW0I+PjJdfDAsaixrKTtp
ZigoV3wwKSE9MCl7a0soVyl9ZFAodyk7ZFAodSk7ZFAocyk7Tj1jW0Y+PjJdfDA7ZHooTil8MDtp
ZigoTXwwKSE9MCl7a0soTSl9aWYoKEx8MCk9PTApe2k9ZTtyZXR1cm59a0soTCk7aT1lO3JldHVy
bn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2JsKGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaDUo
YixkLGUsZixnLGgsaixrLGwsbSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9
MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wO249aTtpPWkrNDB8
MDtvPW58MDtwPW4rMTZ8MDtxPW4rMzJ8MDtyPXE7cz1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Q9
czt1PWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzt2PXU7dz1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3g9
dzt5PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7ej15O0E9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztC
PUE7RD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RT1EO0Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztH
PUY7SD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ST1IO0o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztL
PUo7TD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO009TDtOPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7
Tz1OO1A9Y1tlPj4yXXwwO2lmKGIpe2lmKChjWzQwNDRdfDApIT0tMSl7Y1twPj4yXT0xNjE3Njtj
W3ArND4+Ml09MTI7Y1twKzg+PjJdPTA7ZFcoMTYxNzYscCw5Nil9cD0oY1s0MDQ1XXwwKS0xfDA7
Yj1jW1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1iPj4yPj4+MDw9cD4+PjApe1E9Yk8oNCl8
MDtSPVE7a3EoUik7YmwoUXwwLDgxNzYsMTM0KX1lPWNbYisocDw8Mik+PjJdfDA7aWYoKGV8MCk9
PTApe1E9Yk8oNCl8MDtSPVE7a3EoUik7YmwoUXwwLDgxNzYsMTM0KX1RPWU7Uj1jW2U+PjJdfDA7
aWYoZCl7YlpbY1tSKzQ0Pj4yXSYxMjddKHIsUSk7cj1mO0M9Y1txPj4yXXwwO2Fbcl09QyYyNTU7
Qz1DPj44O2FbcisxfDBdPUMmMjU1O0M9Qz4+ODthW3IrMnwwXT1DJjI1NTtDPUM+Pjg7YVtyKzN8
MF09QyYyNTU7YlpbY1soY1tlPj4yXXwwKSszMj4+Ml0mMTI3XShzLFEpO3I9bDtpZigoYVtyXSYx
KT09MCl7YVtsKzF8MF09MDthW3JdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0w
fWQkKGwsMCk7Y1tyPj4yXT1jW3Q+PjJdO2Nbcis0Pj4yXT1jW3QrND4+Ml07Y1tyKzg+PjJdPWNb
dCs4Pj4yXTtrJCh0fDAsMCwxMik7ZFAocyl9ZWxzZXtiWltjW1IrNDA+PjJdJjEyN10odixRKTt2
PWY7Qz1jW3U+PjJdfDA7YVt2XT1DJjI1NTtDPUM+Pjg7YVt2KzF8MF09QyYyNTU7Qz1DPj44O2Fb
disyfDBdPUMmMjU1O0M9Qz4+ODthW3YrM3wwXT1DJjI1NTtiWltjWyhjW2U+PjJdfDApKzI4Pj4y
XSYxMjddKHcsUSk7dj1sO2lmKChhW3ZdJjEpPT0wKXthW2wrMXwwXT0wO2Fbdl09MH1lbHNle2Fb
Y1tsKzg+PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9ZCQobCwwKTtjW3Y+PjJdPWNbeD4+Ml07Y1t2KzQ+
PjJdPWNbeCs0Pj4yXTtjW3YrOD4+Ml09Y1t4Kzg+PjJdO2skKHh8MCwwLDEyKTtkUCh3KX13PWU7
YVtnXT1iMFtjWyhjW3c+PjJdfDApKzEyPj4yXSYxMjddKFEpfDA7YVtoXT1iMFtjWyhjW3c+PjJd
fDApKzE2Pj4yXSYxMjddKFEpfDA7dz1lO2JaW2NbKGNbdz4+Ml18MCkrMjA+PjJdJjEyN10oeSxR
KTt4PWo7aWYoKGFbeF0mMSk9PTApe2FbaisxfDBdPTA7YVt4XT0wfWVsc2V7YVtjW2orOD4+Ml18
MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbeD4+Ml09Y1t6Pj4yXTtjW3grND4+Ml09Y1t6KzQ+
PjJdO2NbeCs4Pj4yXT1jW3orOD4+Ml07ayQoenwwLDAsMTIpO2RQKHkpO2JaW2NbKGNbdz4+Ml18
MCkrMjQ+PjJdJjEyN10oQSxRKTt3PWs7aWYoKGFbd10mMSk9PTApe2FbaysxfDBdPTA7YVt3XT0w
fWVsc2V7YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1kJChrLDApO2Nbdz4+Ml09Y1tCPj4y
XTtjW3crND4+Ml09Y1tCKzQ+PjJdO2Nbdys4Pj4yXT1jW0IrOD4+Ml07ayQoQnwwLDAsMTIpO2RQ
KEEpO1M9YjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShRKXwwO2NbbT4+Ml09UztpPW47cmV0
dXJufWVsc2V7aWYoKGNbNDA0Nl18MCkhPS0xKXtjW28+PjJdPTE2MTg0O2Nbbys0Pj4yXT0xMjtj
W28rOD4+Ml09MDtkVygxNjE4NCxvLDk2KX1vPShjWzQwNDddfDApLTF8MDtRPWNbUCs4Pj4yXXww
O2lmKChjW1ArMTI+PjJdfDApLVE+PjI+Pj4wPD1vPj4+MCl7VD1iTyg0KXwwO1U9VDtrcShVKTti
bChUfDAsODE3NiwxMzQpfVA9Y1tRKyhvPDwyKT4+Ml18MDtpZigoUHwwKT09MCl7VD1iTyg0KXww
O1U9VDtrcShVKTtibChUfDAsODE3NiwxMzQpfVQ9UDtVPWNbUD4+Ml18MDtpZihkKXtiWltjW1Ur
NDQ+PjJdJjEyN10oRSxUKTtFPWY7Qz1jW0Q+PjJdfDA7YVtFXT1DJjI1NTtDPUM+Pjg7YVtFKzF8
MF09QyYyNTU7Qz1DPj44O2FbRSsyfDBdPUMmMjU1O0M9Qz4+ODthW0UrM3wwXT1DJjI1NTtiWltj
WyhjW1A+PjJdfDApKzMyPj4yXSYxMjddKEYsVCk7RT1sO2lmKChhW0VdJjEpPT0wKXthW2wrMXww
XT0wO2FbRV09MH1lbHNle2FbY1tsKzg+PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9ZCQobCwwKTtjW0U+
PjJdPWNbRz4+Ml07Y1tFKzQ+PjJdPWNbRys0Pj4yXTtjW0UrOD4+Ml09Y1tHKzg+PjJdO2skKEd8
MCwwLDEyKTtkUChGKX1lbHNle2JaW2NbVSs0MD4+Ml0mMTI3XShJLFQpO0k9ZjtDPWNbSD4+Ml18
MDthW0ldPUMmMjU1O0M9Qz4+ODthW0krMXwwXT1DJjI1NTtDPUM+Pjg7YVtJKzJ8MF09QyYyNTU7
Qz1DPj44O2FbSSszfDBdPUMmMjU1O2JaW2NbKGNbUD4+Ml18MCkrMjg+PjJdJjEyN10oSixUKTtJ
PWw7aWYoKGFbSV0mMSk9PTApe2FbbCsxfDBdPTA7YVtJXT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09
MDtjW2wrND4+Ml09MH1kJChsLDApO2NbST4+Ml09Y1tLPj4yXTtjW0krND4+Ml09Y1tLKzQ+PjJd
O2NbSSs4Pj4yXT1jW0srOD4+Ml07ayQoS3wwLDAsMTIpO2RQKEopfUo9UDthW2ddPWIwW2NbKGNb
Sj4+Ml18MCkrMTI+PjJdJjEyN10oVCl8MDthW2hdPWIwW2NbKGNbSj4+Ml18MCkrMTY+PjJdJjEy
N10oVCl8MDtKPVA7YlpbY1soY1tKPj4yXXwwKSsyMD4+Ml0mMTI3XShMLFQpO2g9ajtpZigoYVto
XSYxKT09MCl7YVtqKzF8MF09MDthW2hdPTB9ZWxzZXthW2Nbais4Pj4yXXwwXT0wO2Nbais0Pj4y
XT0wfWQkKGosMCk7Y1toPj4yXT1jW00+PjJdO2NbaCs0Pj4yXT1jW00rND4+Ml07Y1toKzg+PjJd
PWNbTSs4Pj4yXTtrJChNfDAsMCwxMik7ZFAoTCk7YlpbY1soY1tKPj4yXXwwKSsyND4+Ml0mMTI3
XShOLFQpO0o9aztpZigoYVtKXSYxKT09MCl7YVtrKzF8MF09MDthW0pdPTB9ZWxzZXthW2Nbays4
Pj4yXXwwXT0wO2Nbays0Pj4yXT0wfWQkKGssMCk7Y1tKPj4yXT1jW08+PjJdO2NbSis0Pj4yXT1j
W08rND4+Ml07Y1tKKzg+PjJdPWNbTys4Pj4yXTtrJChPfDAsMCwxMik7ZFAoTik7Uz1iMFtjWyhj
W1A+PjJdfDApKzM2Pj4yXSYxMjddKFQpfDA7Y1ttPj4yXT1TO2k9bjtyZXR1cm59fWZ1bmN0aW9u
IGg2KGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyKXtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDtuPW58MDtvPW98MDtwPXB8MDtx
PXF8MDtyPXJ8MDt2YXIgcz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0w
LFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFj
PTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MCxhbj0w
LGFvPTAsYXA9MCxhcT0wLGFyPTAsYXM9MCxhdD0wLGF1PTAsYXY9MCxhdz0wLGF4PTAsYXk9MDtj
W2Y+PjJdPWQ7cz1qO3Q9cTt1PXErMXwwO3Y9cSs4fDA7dz1xKzR8MDtxPXA7eD0oZyY1MTJ8MCk9
PTA7eT1wKzF8MDt6PXArNHwwO0E9cCs4fDA7cD1qKzh8MDtCPShyfDApPjA7Qz1vO0Q9bysxfDA7
RT1vKzh8MDtGPW8rNHwwO289LXJ8MDtHPWg7aD0wO3doaWxlKDEpe0wxNTgwOmRve3N3aXRjaChh
W2wraHwwXXwwKXtjYXNlIDA6e2NbZT4+Ml09Y1tmPj4yXTtIPUc7YnJlYWt9O2Nhc2UgMTp7Y1tl
Pj4yXT1jW2Y+PjJdO0k9Yl9bY1soY1tzPj4yXXwwKSsyOD4+Ml0mMzFdKGosMzIpfDA7Sj1jW2Y+
PjJdfDA7Y1tmPj4yXT1KKzE7YVtKXT1JO0g9RzticmVha307Y2FzZSAzOntJPWFbdF18MDtKPUkm
MjU1O2lmKChKJjF8MCk9PTApe0s9Sj4+PjF9ZWxzZXtLPWNbdz4+Ml18MH1pZigoS3wwKT09MCl7
SD1HO2JyZWFrIEwxNTgwfWlmKChJJjEpPT0wKXtMPXV9ZWxzZXtMPWNbdj4+Ml18MH1JPWFbTF18
MDtKPWNbZj4+Ml18MDtjW2Y+PjJdPUorMTthW0pdPUk7SD1HO2JyZWFrfTtjYXNlIDI6e0k9YVtx
XXwwO0o9SSYyNTU7TT0oSiYxfDApPT0wO2lmKE0pe049Sj4+PjF9ZWxzZXtOPWNbej4+Ml18MH1p
ZigoTnwwKT09MHx4KXtIPUc7YnJlYWsgTDE1ODB9aWYoKEkmMSk9PTApe089eTtQPXl9ZWxzZXtJ
PWNbQT4+Ml18MDtPPUk7UD1JfWlmKE0pe1E9Sj4+PjF9ZWxzZXtRPWNbej4+Ml18MH1KPU8rUXww
O009Y1tmPj4yXXwwO2lmKChQfDApPT0oSnwwKSl7Uj1NfWVsc2V7ST1QO1M9TTt3aGlsZSgxKXth
W1NdPWFbSV18MDtNPUkrMXwwO1Q9UysxfDA7aWYoKE18MCk9PShKfDApKXtSPVQ7YnJlYWt9ZWxz
ZXtJPU07Uz1UfX19Y1tmPj4yXT1SO0g9RzticmVha307Y2FzZSA0OntTPWNbZj4+Ml18MDtJPWs/
RysxfDA6RztKPUk7d2hpbGUoMSl7aWYoSj4+PjA+PWk+Pj4wKXticmVha31UPWFbSl18MDtpZihU
PDwyND4+MjQ8PS0xKXticmVha31pZigoYlsoY1twPj4yXXwwKSsoVDw8MjQ+PjI0PDwxKT4+MV0m
MjA0OCk9PTApe2JyZWFrfWVsc2V7Sj1KKzF8MH19VD1KO2lmKEIpe2lmKEo+Pj4wPkk+Pj4wKXtN
PUkrKC1UfDApfDA7VD1NPj4+MDxvPj4+MD9vOk07TT1UK3J8MDtVPUo7Vj1yO1c9Uzt3aGlsZSgx
KXtYPVUtMXwwO1k9YVtYXXwwO2NbZj4+Ml09VysxO2FbV109WTtZPVYtMXwwO1o9KFl8MCk+MDtp
ZighKFg+Pj4wPkk+Pj4wJlopKXticmVha31VPVg7Vj1ZO1c9Y1tmPj4yXXwwfVc9SitUfDA7aWYo
Wil7Xz1NOyQ9VzthYT0xMzU0fWVsc2V7YWI9MDthYz1NO2FkPVd9fWVsc2V7Xz1yOyQ9SjthYT0x
MzU0fWlmKChhYXwwKT09MTM1NCl7YWE9MDthYj1iX1tjWyhjW3M+PjJdfDApKzI4Pj4yXSYzMV0o
aiw0OCl8MDthYz1fO2FkPSR9Vz1jW2Y+PjJdfDA7Y1tmPj4yXT1XKzE7aWYoKGFjfDApPjApe1Y9
YWM7VT1XO3doaWxlKDEpe2FbVV09YWI7WT1WLTF8MDtYPWNbZj4+Ml18MDtjW2Y+PjJdPVgrMTtp
ZigoWXwwKT4wKXtWPVk7VT1YfWVsc2V7YWU9WDticmVha319fWVsc2V7YWU9V31hW2FlXT1tO2Fm
PWFkfWVsc2V7YWY9Sn1pZigoYWZ8MCk9PShJfDApKXtVPWJfW2NbKGNbcz4+Ml18MCkrMjg+PjJd
JjMxXShqLDQ4KXwwO1Y9Y1tmPj4yXXwwO2NbZj4+Ml09VisxO2FbVl09VX1lbHNle1U9YVtDXXww
O1Y9VSYyNTU7aWYoKFYmMXwwKT09MCl7YWc9Vj4+PjF9ZWxzZXthZz1jW0Y+PjJdfDB9aWYoKGFn
fDApPT0wKXthaD1hZjthaT0wO2FqPTA7YWs9LTF9ZWxzZXtpZigoVSYxKT09MCl7YWw9RH1lbHNl
e2FsPWNbRT4+Ml18MH1haD1hZjthaT0wO2FqPTA7YWs9YVthbF18MH13aGlsZSgxKXtkb3tpZigo
YWl8MCk9PShha3wwKSl7VT1jW2Y+PjJdfDA7Y1tmPj4yXT1VKzE7YVtVXT1uO1U9YWorMXwwO1Y9
YVtDXXwwO009ViYyNTU7aWYoKE0mMXwwKT09MCl7YW09TT4+PjF9ZWxzZXthbT1jW0Y+PjJdfDB9
aWYoVT4+PjA+PWFtPj4+MCl7YW49YWs7YW89VTthcD0wO2JyZWFrfU09KFYmMSk9PTA7aWYoTSl7
YXE9RH1lbHNle2FxPWNbRT4+Ml18MH1pZigoYVthcStVfDBdfDApPT0xMjcpe2FuPS0xO2FvPVU7
YXA9MDticmVha31pZihNKXthcj1EfWVsc2V7YXI9Y1tFPj4yXXwwfWFuPWFbYXIrVXwwXXwwO2Fv
PVU7YXA9MH1lbHNle2FuPWFrO2FvPWFqO2FwPWFpfX13aGlsZSgwKTtVPWFoLTF8MDtNPWFbVV18
MDtWPWNbZj4+Ml18MDtjW2Y+PjJdPVYrMTthW1ZdPU07aWYoKFV8MCk9PShJfDApKXticmVha31l
bHNle2FoPVU7YWk9YXArMXwwO2FqPWFvO2FrPWFufX19Sj1jW2Y+PjJdfDA7aWYoKFN8MCk9PShK
fDApKXtIPUk7YnJlYWsgTDE1ODB9Vz1KLTF8MDtpZihTPj4+MDxXPj4+MCl7YXM9UzthdD1XfWVs
c2V7SD1JO2JyZWFrIEwxNTgwfXdoaWxlKDEpe1c9YVthc118MDthW2FzXT1hW2F0XXwwO2FbYXRd
PVc7Vz1hcysxfDA7Sj1hdC0xfDA7aWYoVz4+PjA8Sj4+PjApe2FzPVc7YXQ9Sn1lbHNle0g9STti
cmVha319YnJlYWt9O2RlZmF1bHQ6e0g9R319fXdoaWxlKDApO0k9aCsxfDA7aWYoST4+PjA8NCl7
Rz1IO2g9SX1lbHNle2JyZWFrfX1oPWFbdF18MDt0PWgmMjU1O0g9KHQmMXwwKT09MDtpZihIKXth
dT10Pj4+MX1lbHNle2F1PWNbdz4+Ml18MH1pZihhdT4+PjA+MSl7aWYoKGgmMSk9PTApe2F2PXU7
YXc9dX1lbHNle3U9Y1t2Pj4yXXwwO2F2PXU7YXc9dX1pZihIKXtheD10Pj4+MX1lbHNle2F4PWNb
dz4+Ml18MH13PWF2K2F4fDA7YXg9Y1tmPj4yXXwwO2F2PWF3KzF8MDtpZigoYXZ8MCk9PSh3fDAp
KXtheT1heH1lbHNle2F3PWF4O2F4PWF2O3doaWxlKDEpe2FbYXddPWFbYXhdfDA7YXY9YXcrMXww
O3Q9YXgrMXwwO2lmKCh0fDApPT0od3wwKSl7YXk9YXY7YnJlYWt9ZWxzZXthdz1hdjtheD10fX19
Y1tmPj4yXT1heX1zd2l0Y2goZyYxNzZ8MCl7Y2FzZSAxNjp7cmV0dXJufTtjYXNlIDMyOntjW2U+
PjJdPWNbZj4+Ml07cmV0dXJufTtkZWZhdWx0OntjW2U+PjJdPWQ7cmV0dXJufX19ZnVuY3Rpb24g
aDcoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaDgoYSl7YT1hfDA7ZGUo
YXwwKTtyZXR1cm59ZnVuY3Rpb24gaDkoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9
MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0w
LFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MDtlPWk7aT1pKzY0fDA7
bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWV8MDttPWUrMTZ8
MDtuPWUrMjR8MDtvPWUrMzJ8MDtwPWUrNDB8MDtxPWUrNDh8MDtyPXE7cz1pO2k9aSsxMnwwO2k9
aSs3Pj4zPDwzO3Q9czt1PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3g9aTtpPWkrMTAwfDA7aT1pKzc+PjM8PDM7eT1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7ej1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7QT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ZWoobSxo
KTtCPW18MDtDPWNbQj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1ts
KzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO0Q9
Y1tDKzg+PjJdfDA7ZG97aWYoKGNbQysxMj4+Ml18MCktRD4+Mj4+PjA+bD4+PjApe0U9Y1tEKyhs
PDwyKT4+Ml18MDtpZigoRXwwKT09MCl7YnJlYWt9Rj1FO0c9aztIPWs7ST1hW0hdfDA7Sj1JJjI1
NTtpZigoSiYxfDApPT0wKXtLPUo+Pj4xfWVsc2V7Sz1jW2srND4+Ml18MH1pZigoS3wwKT09MCl7
TD0wfWVsc2V7aWYoKEkmMSk9PTApe009RysxfDB9ZWxzZXtNPWNbays4Pj4yXXwwfUk9YVtNXXww
O0w9STw8MjQ+PjI0PT0oYl9bY1soY1tFPj4yXXwwKSsyOD4+Ml0mMzFdKEYsNDUpfDApPDwyND4+
MjR9ayQocnwwLDAsMTIpO2skKHR8MCwwLDEyKTtrJCh2fDAsMCwxMik7aDUoZyxMLG0sbixvLHAs
cSxzLHUsdyk7RT14fDA7ST1hW0hdfDA7Sj1JJjI1NTtOPShKJjF8MCk9PTA7aWYoTil7Tz1KPj4+
MX1lbHNle089Y1trKzQ+PjJdfDB9UD1jW3c+PjJdfDA7aWYoKE98MCk+KFB8MCkpe2lmKE4pe1E9
Sj4+PjF9ZWxzZXtRPWNbays0Pj4yXXwwfUo9ZFt2XXwwO2lmKChKJjF8MCk9PTApe1I9Sj4+PjF9
ZWxzZXtSPWNbdSs0Pj4yXXwwfUo9ZFt0XXwwO2lmKChKJjF8MCk9PTApe1M9Sj4+PjF9ZWxzZXtT
PWNbcys0Pj4yXXwwfVQ9KFEtUDw8MXwxKStSK1N8MH1lbHNle0o9ZFt2XXwwO2lmKChKJjF8MCk9
PTApe1U9Sj4+PjF9ZWxzZXtVPWNbdSs0Pj4yXXwwfUo9ZFt0XXwwO2lmKChKJjF8MCk9PTApe1Y9
Sj4+PjF9ZWxzZXtWPWNbcys0Pj4yXXwwfVQ9VSsyK1Z8MH1KPVQrUHwwO2Rve2lmKEo+Pj4wPjEw
MCl7Tj1rSihKKXwwO2lmKChOfDApIT0wKXtXPU47WD1OO1k9STticmVha31rWCgpO1c9MDtYPTA7
WT1hW0hdfDB9ZWxzZXtXPUU7WD0wO1k9SX19d2hpbGUoMCk7aWYoKFkmMSk9PTApe1o9RysxfDA7
Xz1HKzF8MH1lbHNle0k9Y1trKzg+PjJdfDA7Wj1JO189SX1JPVkmMjU1O2lmKChJJjF8MCk9PTAp
eyQ9ST4+PjF9ZWxzZXskPWNbays0Pj4yXXwwfWg2KFcseSx6LGNbaCs0Pj4yXXwwLF8sWiskfDAs
RixMLG4sYVtvXXwwLGFbcF18MCxxLHMsdSxQKTtjW0E+PjJdPWNbZj4+Ml07ZjkoYixBLFcsY1t5
Pj4yXXwwLGNbej4+Ml18MCxoLGopO2lmKChYfDApPT0wKXtkUCh1KTtkUChzKTtkUChxKTthYT1j
W0I+PjJdfDA7YWI9YWF8MDthYz1keihhYil8MDtpPWU7cmV0dXJufWtLKFgpO2RQKHUpO2RQKHMp
O2RQKHEpO2FhPWNbQj4+Ml18MDthYj1hYXwwO2FjPWR6KGFiKXwwO2k9ZTtyZXR1cm59fXdoaWxl
KDApO2U9Yk8oNCl8MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGlhKGIsZSxmLGcs
aixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3wwO2w9K2w7dmFyIG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0w
LFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTA7ZT1pO2k9aSs1NzZ8MDttPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZXwwO249ZSsxMjB8MDtvPWUrNTI4
fDA7cD1lKzUzNnwwO3E9ZSs1NDR8MDtyPWUrNTUyfDA7cz1lKzU2MHwwO3Q9czt1PWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt4PXc7eT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7ej1pO2k9aSs0MDB8MDtBPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztCPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztDPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztEPWUrMTZ8MDtjW24+
PjJdPUQ7RT1lKzEyOHwwO0Y9YVooRHwwLDEwMCwxMzYwLChEPWksaT1pKzh8MCxoW0Q+PjNdPWws
RCl8MCl8MDtpPUQ7ZG97aWYoRj4+PjA+OTkpe2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJj
KDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Rz1n
aChuLGNbMjk1OF18MCwxMzYwLChEPWksaT1pKzh8MCxoW0Q+PjNdPWwsRCl8MCl8MDtpPUQ7SD1j
W24+PjJdfDA7aWYoKEh8MCk9PTApe2tYKCk7ST1jW24+PjJdfDB9ZWxzZXtJPUh9SD1rSihHPDwy
KXwwO0o9SDtpZigoSHwwKSE9MCl7Sz1KO0w9RztNPUk7Tj1KO2JyZWFrfWtYKCk7Sz1KO0w9RztN
PUk7Tj1KfWVsc2V7Sz1FO0w9RjtNPTA7Tj0wfX13aGlsZSgwKTtlaihvLGopO0Y9b3wwO0U9Y1tG
Pj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1ttPj4yXT0xNTY4ODtjW20rND4+Ml09MTI7Y1tt
Kzg+PjJdPTA7ZFcoMTU2ODgsbSw5Nil9bT0oY1szOTIzXXwwKS0xfDA7ST1jW0UrOD4+Ml18MDtk
b3tpZigoY1tFKzEyPj4yXXwwKS1JPj4yPj4+MD5tPj4+MCl7RD1jW0krKG08PDIpPj4yXXwwO2lm
KChEfDApPT0wKXticmVha31KPUQ7Rz1jW24+PjJdfDA7SD1HK0x8MDtPPWNbKGNbRD4+Ml18MCkr
NDg+PjJdfDA7Y2FbTyYxNV0oSixHLEgsSyl8MDtpZigoTHwwKT09MCl7UD0wfWVsc2V7UD0oYVtj
W24+PjJdfDBdfDApPT00NX1rJCh0fDAsMCwxMik7ayQodnwwLDAsMTIpO2skKHh8MCwwLDEyKTtp
YihnLFAsbyxwLHEscixzLHUsdyx5KTtIPXp8MDtHPWNbeT4+Ml18MDtpZigoTHwwKT4oR3wwKSl7
Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7UT1PPj4+MX1lbHNle1E9Y1t3KzQ+PjJdfDB9Tz1kW3Zd
fDA7aWYoKE8mMXwwKT09MCl7Uj1PPj4+MX1lbHNle1I9Y1t1KzQ+PjJdfDB9Uz0oTC1HPDwxfDEp
K1ErUnwwfWVsc2V7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7VD1PPj4+MX1lbHNle1Q9Y1t3KzQ+
PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7VT1PPj4+MX1lbHNle1U9Y1t1KzQ+PjJdfDB9
Uz1UKzIrVXwwfU89UytHfDA7ZG97aWYoTz4+PjA+MTAwKXtEPWtKKE88PDIpfDA7Vj1EO2lmKChE
fDApIT0wKXtXPVY7WD1WO2JyZWFrfWtYKCk7Vz1WO1g9Vn1lbHNle1c9SDtYPTB9fXdoaWxlKDAp
O2ljKFcsQSxCLGNbais0Pj4yXXwwLEssSysoTDw8Mil8MCxKLFAscCxjW3E+PjJdfDAsY1tyPj4y
XXwwLHMsdSx3LEcpO2NbQz4+Ml09Y1tmPj4yXTtncShiLEMsVyxjW0E+PjJdfDAsY1tCPj4yXXww
LGosayk7aWYoKFh8MCkhPTApe2tLKFgpfWVlKHcpO2VlKHUpO2RQKHMpO0g9Y1tGPj4yXXwwO2R6
KEgpfDA7aWYoKE58MCkhPTApe2tLKE4pfWlmKChNfDApPT0wKXtpPWU7cmV0dXJufWtLKE0pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1bmN0
aW9uIGliKGIsZCxlLGYsZyxoLGosayxsLG0pe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtuPWk7
aT1pKzQwfDA7bz1ufDA7cD1uKzE2fDA7cT1uKzMyfDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8Mzt0PXM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8Mzt4PXc7eT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3o9eTtBPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7Qj1BO0Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7Rz1GO0g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0k9SDtKPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7Sz1KO0w9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztNPUw7Tj1pO2k9aSsxMnwwO2k9aSs3
Pj4zPDwzO089TjtQPWNbZT4+Ml18MDtpZihiKXtpZigoY1s0MDQwXXwwKSE9LTEpe2NbcD4+Ml09
MTYxNjA7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTYwLHAsOTYpfXA9KGNbNDA0MV18
MCktMXwwO2I9Y1tQKzg+PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktYj4+Mj4+PjA8PXA+Pj4wKXtR
PWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9ZT1jW2IrKHA8PDIpPj4yXXwwO2lm
KChlfDApPT0wKXtRPWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9UT1lO1I9Y1tl
Pj4yXXwwO2lmKGQpe2JaW2NbUis0ND4+Ml0mMTI3XShyLFEpO3I9ZjtDPWNbcT4+Ml18MDthW3Jd
PUMmMjU1O0M9Qz4+ODthW3IrMXwwXT1DJjI1NTtDPUM+Pjg7YVtyKzJ8MF09QyYyNTU7Qz1DPj44
O2FbciszfDBdPUMmMjU1O2JaW2NbKGNbZT4+Ml18MCkrMzI+PjJdJjEyN10ocyxRKTtyPWw7aWYo
KGFbcl0mMSk9PTApe2NbbCs0Pj4yXT0wO2Fbcl09MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2Nb
bCs0Pj4yXT0wfWV6KGwsMCk7Y1tyPj4yXT1jW3Q+PjJdO2Nbcis0Pj4yXT1jW3QrND4+Ml07Y1ty
Kzg+PjJdPWNbdCs4Pj4yXTtrJCh0fDAsMCwxMik7ZWUocyl9ZWxzZXtiWltjW1IrNDA+PjJdJjEy
N10odixRKTt2PWY7Qz1jW3U+PjJdfDA7YVt2XT1DJjI1NTtDPUM+Pjg7YVt2KzF8MF09QyYyNTU7
Qz1DPj44O2FbdisyfDBdPUMmMjU1O0M9Qz4+ODthW3YrM3wwXT1DJjI1NTtiWltjWyhjW2U+PjJd
fDApKzI4Pj4yXSYxMjddKHcsUSk7dj1sO2lmKChhW3ZdJjEpPT0wKXtjW2wrND4+Ml09MDthW3Zd
PTB9ZWxzZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2Nbdj4+Ml09Y1t4
Pj4yXTtjW3YrND4+Ml09Y1t4KzQ+PjJdO2Nbdis4Pj4yXT1jW3grOD4+Ml07ayQoeHwwLDAsMTIp
O2VlKHcpfXc9ZTtjW2c+PjJdPWIwW2NbKGNbdz4+Ml18MCkrMTI+PjJdJjEyN10oUSl8MDtjW2g+
PjJdPWIwW2NbKGNbdz4+Ml18MCkrMTY+PjJdJjEyN10oUSl8MDtiWltjWyhjW2U+PjJdfDApKzIw
Pj4yXSYxMjddKHksUSk7eD1qO2lmKChhW3hdJjEpPT0wKXthW2orMXwwXT0wO2FbeF09MH1lbHNl
e2FbY1tqKzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW3g+PjJdPWNbej4+Ml07Y1t4
KzQ+PjJdPWNbeis0Pj4yXTtjW3grOD4+Ml09Y1t6Kzg+PjJdO2skKHp8MCwwLDEyKTtkUCh5KTti
WltjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKEEsUSk7ZT1rO2lmKChhW2VdJjEpPT0wKXtjW2sr
ND4+Ml09MDthW2VdPTB9ZWxzZXtjW2Nbays4Pj4yXT4+Ml09MDtjW2srND4+Ml09MH1leihrLDAp
O2NbZT4+Ml09Y1tCPj4yXTtjW2UrND4+Ml09Y1tCKzQ+PjJdO2NbZSs4Pj4yXT1jW0IrOD4+Ml07
ayQoQnwwLDAsMTIpO2VlKEEpO1M9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XShRKXwwO2Nb
bT4+Ml09UztpPW47cmV0dXJufWVsc2V7aWYoKGNbNDA0Ml18MCkhPS0xKXtjW28+PjJdPTE2MTY4
O2Nbbys0Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNjE2OCxvLDk2KX1vPShjWzQwNDNdfDApLTF8
MDtRPWNbUCs4Pj4yXXwwO2lmKChjW1ArMTI+PjJdfDApLVE+PjI+Pj4wPD1vPj4+MCl7VD1iTyg0
KXwwO1U9VDtrcShVKTtibChUfDAsODE3NiwxMzQpfVA9Y1tRKyhvPDwyKT4+Ml18MDtpZigoUHww
KT09MCl7VD1iTyg0KXwwO1U9VDtrcShVKTtibChUfDAsODE3NiwxMzQpfVQ9UDtVPWNbUD4+Ml18
MDtpZihkKXtiWltjW1UrNDQ+PjJdJjEyN10oRSxUKTtFPWY7Qz1jW0Q+PjJdfDA7YVtFXT1DJjI1
NTtDPUM+Pjg7YVtFKzF8MF09QyYyNTU7Qz1DPj44O2FbRSsyfDBdPUMmMjU1O0M9Qz4+ODthW0Ur
M3wwXT1DJjI1NTtiWltjWyhjW1A+PjJdfDApKzMyPj4yXSYxMjddKEYsVCk7RT1sO2lmKChhW0Vd
JjEpPT0wKXtjW2wrND4+Ml09MDthW0VdPTB9ZWxzZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+
Ml09MH1leihsLDApO2NbRT4+Ml09Y1tHPj4yXTtjW0UrND4+Ml09Y1tHKzQ+PjJdO2NbRSs4Pj4y
XT1jW0crOD4+Ml07ayQoR3wwLDAsMTIpO2VlKEYpfWVsc2V7YlpbY1tVKzQwPj4yXSYxMjddKEks
VCk7ST1mO0M9Y1tIPj4yXXwwO2FbSV09QyYyNTU7Qz1DPj44O2FbSSsxfDBdPUMmMjU1O0M9Qz4+
ODthW0krMnwwXT1DJjI1NTtDPUM+Pjg7YVtJKzN8MF09QyYyNTU7YlpbY1soY1tQPj4yXXwwKSsy
OD4+Ml0mMTI3XShKLFQpO0k9bDtpZigoYVtJXSYxKT09MCl7Y1tsKzQ+PjJdPTA7YVtJXT0wfWVs
c2V7Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW0k+PjJdPWNbSz4+Ml07
Y1tJKzQ+PjJdPWNbSys0Pj4yXTtjW0krOD4+Ml09Y1tLKzg+PjJdO2skKEt8MCwwLDEyKTtlZShK
KX1KPVA7Y1tnPj4yXT1iMFtjWyhjW0o+PjJdfDApKzEyPj4yXSYxMjddKFQpfDA7Y1toPj4yXT1i
MFtjWyhjW0o+PjJdfDApKzE2Pj4yXSYxMjddKFQpfDA7YlpbY1soY1tQPj4yXXwwKSsyMD4+Ml0m
MTI3XShMLFQpO2g9ajtpZigoYVtoXSYxKT09MCl7YVtqKzF8MF09MDthW2hdPTB9ZWxzZXthW2Nb
ais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1toPj4yXT1jW00+PjJdO2NbaCs0Pj4y
XT1jW00rND4+Ml07Y1toKzg+PjJdPWNbTSs4Pj4yXTtrJChNfDAsMCwxMik7ZFAoTCk7YlpbY1so
Y1tQPj4yXXwwKSsyND4+Ml0mMTI3XShOLFQpO1A9aztpZigoYVtQXSYxKT09MCl7Y1trKzQ+PjJd
PTA7YVtQXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJdPTB9ZXooaywwKTtjW1A+
PjJdPWNbTz4+Ml07Y1tQKzQ+PjJdPWNbTys0Pj4yXTtjW1ArOD4+Ml09Y1tPKzg+PjJdO2skKE98
MCwwLDEyKTtlZShOKTtTPWIwW2NbKGNbSj4+Ml18MCkrMzY+PjJdJjEyN10oVCl8MDtjW20+PjJd
PVM7aT1uO3JldHVybn19ZnVuY3Rpb24gaWMoYixkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9
bHwwO209bXwwO249bnwwO289b3wwO3A9cHwwO3E9cXwwO3ZhciByPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAs
Sz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZ
PTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFp
PTAsYWo9MCxhaz0wLGFsPTAsYW09MCxhbj0wLGFvPTAsYXA9MCxhcT0wLGFyPTAsYXM9MCxhdD0w
LGF1PTAsYXY9MCxhdz0wO2NbZT4+Ml09YjtyPWk7cz1wO3Q9cCs0fDA7dT1wKzh8MDtwPW87dj0o
ZiY1MTJ8MCk9PTA7dz1vKzR8MDt4PW8rOHwwO289aTt5PShxfDApPjA7ej1uO0E9bisxfDA7Qj1u
Kzh8MDtDPW4rNHwwO249ZztnPTA7d2hpbGUoMSl7TDE5MDE6ZG97c3dpdGNoKGFbaytnfDBdfDAp
e2Nhc2UgMDp7Y1tkPj4yXT1jW2U+PjJdO0Q9bjticmVha307Y2FzZSAxOntjW2Q+PjJdPWNbZT4+
Ml07RT1iX1tjWyhjW3I+PjJdfDApKzQ0Pj4yXSYzMV0oaSwzMil8MDtGPWNbZT4+Ml18MDtjW2U+
PjJdPUYrNDtjW0Y+PjJdPUU7RD1uO2JyZWFrfTtjYXNlIDM6e0U9YVtzXXwwO0Y9RSYyNTU7aWYo
KEYmMXwwKT09MCl7Rz1GPj4+MX1lbHNle0c9Y1t0Pj4yXXwwfWlmKChHfDApPT0wKXtEPW47YnJl
YWsgTDE5MDF9aWYoKEUmMSk9PTApe0g9dH1lbHNle0g9Y1t1Pj4yXXwwfUU9Y1tIPj4yXXwwO0Y9
Y1tlPj4yXXwwO2NbZT4+Ml09Ris0O2NbRj4+Ml09RTtEPW47YnJlYWt9O2Nhc2UgMjp7RT1hW3Bd
fDA7Rj1FJjI1NTtJPShGJjF8MCk9PTA7aWYoSSl7Sj1GPj4+MX1lbHNle0o9Y1t3Pj4yXXwwfWlm
KChKfDApPT0wfHYpe0Q9bjticmVhayBMMTkwMX1pZigoRSYxKT09MCl7Sz13O0w9dztNPXd9ZWxz
ZXtFPWNbeD4+Ml18MDtLPUU7TD1FO009RX1pZihJKXtOPUY+Pj4xfWVsc2V7Tj1jW3c+PjJdfDB9
Rj1LKyhOPDwyKXwwO0k9Y1tlPj4yXXwwO2lmKChMfDApPT0oRnwwKSl7Tz1JfWVsc2V7RT0oSyso
Ti0xPDwyKSsoLU18MCl8MCk+Pj4yO1A9TDtRPUk7d2hpbGUoMSl7Y1tRPj4yXT1jW1A+PjJdO1I9
UCs0fDA7aWYoKFJ8MCk9PShGfDApKXticmVha31QPVI7UT1RKzR8MH1PPUkrKEUrMTw8Mil8MH1j
W2U+PjJdPU87RD1uO2JyZWFrfTtjYXNlIDQ6e1E9Y1tlPj4yXXwwO1A9aj9uKzR8MDpuO0Y9UDt3
aGlsZSgxKXtpZihGPj4+MD49aD4+PjApe2JyZWFrfWlmKGIxW2NbKGNbbz4+Ml18MCkrMTI+PjJd
JjYzXShpLDIwNDgsY1tGPj4yXXwwKXwwKXtGPUYrNHwwfWVsc2V7YnJlYWt9fWlmKHkpe2lmKEY+
Pj4wPlA+Pj4wKXtFPUY7ST1xO2Rve0U9RS00fDA7Uj1jW0U+PjJdfDA7Uz1jW2U+PjJdfDA7Y1tl
Pj4yXT1TKzQ7Y1tTPj4yXT1SO0k9SS0xfDA7VD0oSXwwKT4wO313aGlsZShFPj4+MD5QPj4+MCZU
KTtpZihUKXtVPUk7Vj1FO1c9MTYzMH1lbHNle1g9MDtZPUk7Wj1FfX1lbHNle1U9cTtWPUY7Vz0x
NjMwfWlmKChXfDApPT0xNjMwKXtXPTA7WD1iX1tjWyhjW3I+PjJdfDApKzQ0Pj4yXSYzMV0oaSw0
OCl8MDtZPVU7Wj1WfVI9Y1tlPj4yXXwwO2NbZT4+Ml09Uis0O2lmKChZfDApPjApe1M9WTtfPVI7
d2hpbGUoMSl7Y1tfPj4yXT1YOyQ9Uy0xfDA7YWE9Y1tlPj4yXXwwO2NbZT4+Ml09YWErNDtpZigo
JHwwKT4wKXtTPSQ7Xz1hYX1lbHNle2FiPWFhO2JyZWFrfX19ZWxzZXthYj1SfWNbYWI+PjJdPWw7
YWM9Wn1lbHNle2FjPUZ9aWYoKGFjfDApPT0oUHwwKSl7Xz1iX1tjWyhjW3I+PjJdfDApKzQ0Pj4y
XSYzMV0oaSw0OCl8MDtTPWNbZT4+Ml18MDtjW2U+PjJdPVMrNDtjW1M+PjJdPV99ZWxzZXtfPWFb
el18MDtTPV8mMjU1O2lmKChTJjF8MCk9PTApe2FkPVM+Pj4xfWVsc2V7YWQ9Y1tDPj4yXXwwfWlm
KChhZHwwKT09MCl7YWU9YWM7YWY9MDthZz0wO2FoPS0xfWVsc2V7aWYoKF8mMSk9PTApe2FpPUF9
ZWxzZXthaT1jW0I+PjJdfDB9YWU9YWM7YWY9MDthZz0wO2FoPWFbYWldfDB9d2hpbGUoMSl7ZG97
aWYoKGFmfDApPT0oYWh8MCkpe189Y1tlPj4yXXwwO2NbZT4+Ml09Xys0O2NbXz4+Ml09bTtfPWFn
KzF8MDtTPWFbel18MDtFPVMmMjU1O2lmKChFJjF8MCk9PTApe2FqPUU+Pj4xfWVsc2V7YWo9Y1tD
Pj4yXXwwfWlmKF8+Pj4wPj1haj4+PjApe2FrPWFoO2FsPV87YW09MDticmVha31FPShTJjEpPT0w
O2lmKEUpe2FuPUF9ZWxzZXthbj1jW0I+PjJdfDB9aWYoKGFbYW4rX3wwXXwwKT09MTI3KXthaz0t
MTthbD1fO2FtPTA7YnJlYWt9aWYoRSl7YW89QX1lbHNle2FvPWNbQj4+Ml18MH1haz1hW2FvK198
MF18MDthbD1fO2FtPTB9ZWxzZXthaz1haDthbD1hZzthbT1hZn19d2hpbGUoMCk7Xz1hZS00fDA7
RT1jW18+PjJdfDA7Uz1jW2U+PjJdfDA7Y1tlPj4yXT1TKzQ7Y1tTPj4yXT1FO2lmKChffDApPT0o
UHwwKSl7YnJlYWt9ZWxzZXthZT1fO2FmPWFtKzF8MDthZz1hbDthaD1ha319fUY9Y1tlPj4yXXww
O2lmKChRfDApPT0oRnwwKSl7RD1QO2JyZWFrIEwxOTAxfVI9Ri00fDA7aWYoUT4+PjA8Uj4+PjAp
e2FwPVE7YXE9Un1lbHNle0Q9UDticmVhayBMMTkwMX13aGlsZSgxKXtSPWNbYXA+PjJdfDA7Y1th
cD4+Ml09Y1thcT4+Ml07Y1thcT4+Ml09UjtSPWFwKzR8MDtGPWFxLTR8MDtpZihSPj4+MDxGPj4+
MCl7YXA9UjthcT1GfWVsc2V7RD1QO2JyZWFrfX1icmVha307ZGVmYXVsdDp7RD1ufX19d2hpbGUo
MCk7UD1nKzF8MDtpZihQPj4+MDw0KXtuPUQ7Zz1QfWVsc2V7YnJlYWt9fWc9YVtzXXwwO3M9ZyYy
NTU7RD0ocyYxfDApPT0wO2lmKEQpe2FyPXM+Pj4xfWVsc2V7YXI9Y1t0Pj4yXXwwfWlmKGFyPj4+
MD4xKXtpZigoZyYxKT09MCl7YXM9dDthdD10O2F1PXR9ZWxzZXtnPWNbdT4+Ml18MDthcz1nO2F0
PWc7YXU9Z31pZihEKXthdj1zPj4+MX1lbHNle2F2PWNbdD4+Ml18MH10PWFzKyhhdjw8Mil8MDtz
PWNbZT4+Ml18MDtEPWF0KzR8MDtpZigoRHwwKT09KHR8MCkpe2F3PXN9ZWxzZXthdD0oKGFzKyhh
di0yPDwyKSsoLWF1fDApfDApPj4+MikrMXwwO2F1PXM7YXY9RDt3aGlsZSgxKXtjW2F1Pj4yXT1j
W2F2Pj4yXTtEPWF2KzR8MDtpZigoRHwwKT09KHR8MCkpe2JyZWFrfWVsc2V7YXU9YXUrNHwwO2F2
PUR9fWF3PXMrKGF0PDwyKXwwfWNbZT4+Ml09YXd9c3dpdGNoKGYmMTc2fDApe2Nhc2UgMzI6e2Nb
ZD4+Ml09Y1tlPj4yXTtyZXR1cm59O2Nhc2UgMTY6e3JldHVybn07ZGVmYXVsdDp7Y1tkPj4yXT1i
O3JldHVybn19fWZ1bmN0aW9uIGlkKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0
aW9uIGllKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGlnKGIsZCxlKXtiPWJ8MDtk
PWR8MDtlPWV8MDt2YXIgZj0wO2lmKChhW2RdJjEpPT0wKXtmPWQrMXwwfWVsc2V7Zj1jW2QrOD4+
Ml18MH1kPWE4KGZ8MCwyMDApfDA7cmV0dXJuIGQ+Pj4oKChkfDApIT0tMXwwKT4+PjApfDB9ZnVu
Y3Rpb24gaWgoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1q
fDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAs
dz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxL
PTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9
MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MDtlPWk7aT1pKzY0fDA7bD1mO2Y9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWV8MDttPWUrMTZ8MDtuPWUrMjR8MDtvPWUr
MzJ8MDtwPWUrNDB8MDtxPWUrNDh8MDtyPXE7cz1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Q9czt1
PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3g9aTtp
PWkrNDAwfDA7eT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ej1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
QT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7ZWoobSxoKTtCPW18MDtDPWNbQj4+Ml18MDtpZigoY1sz
OTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1
Njg4LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO0Q9Y1tDKzg+PjJdfDA7ZG97aWYoKGNbQysxMj4+
Ml18MCktRD4+Mj4+PjA+bD4+PjApe0U9Y1tEKyhsPDwyKT4+Ml18MDtpZigoRXwwKT09MCl7YnJl
YWt9Rj1FO0c9aztIPWFbR118MDtJPUgmMjU1O2lmKChJJjF8MCk9PTApe0o9ST4+PjF9ZWxzZXtK
PWNbays0Pj4yXXwwfWlmKChKfDApPT0wKXtLPTB9ZWxzZXtpZigoSCYxKT09MCl7TD1rKzR8MH1l
bHNle0w9Y1trKzg+PjJdfDB9SD1jW0w+PjJdfDA7Sz0oSHwwKT09KGJfW2NbKGNbRT4+Ml18MCkr
NDQ+PjJdJjMxXShGLDQ1KXwwKX1rJChyfDAsMCwxMik7ayQodHwwLDAsMTIpO2skKHZ8MCwwLDEy
KTtpYihnLEssbSxuLG8scCxxLHMsdSx3KTtFPXh8MDtIPWFbR118MDtJPUgmMjU1O009KEkmMXww
KT09MDtpZihNKXtOPUk+Pj4xfWVsc2V7Tj1jW2srND4+Ml18MH1PPWNbdz4+Ml18MDtpZigoTnww
KT4oT3wwKSl7aWYoTSl7UD1JPj4+MX1lbHNle1A9Y1trKzQ+PjJdfDB9ST1kW3ZdfDA7aWYoKEkm
MXwwKT09MCl7UT1JPj4+MX1lbHNle1E9Y1t1KzQ+PjJdfDB9ST1kW3RdfDA7aWYoKEkmMXwwKT09
MCl7Uj1JPj4+MX1lbHNle1I9Y1tzKzQ+PjJdfDB9Uz0oUC1PPDwxfDEpK1ErUnwwfWVsc2V7ST1k
W3ZdfDA7aWYoKEkmMXwwKT09MCl7VD1JPj4+MX1lbHNle1Q9Y1t1KzQ+PjJdfDB9ST1kW3RdfDA7
aWYoKEkmMXwwKT09MCl7VT1JPj4+MX1lbHNle1U9Y1tzKzQ+PjJdfDB9Uz1UKzIrVXwwfUk9UytP
fDA7ZG97aWYoST4+PjA+MTAwKXtNPWtKKEk8PDIpfDA7Vj1NO2lmKChNfDApIT0wKXtXPVY7WD1W
O1k9SDticmVha31rWCgpO1c9VjtYPVY7WT1hW0ddfDB9ZWxzZXtXPUU7WD0wO1k9SH19d2hpbGUo
MCk7aWYoKFkmMSk9PTApe1o9ays0fDA7Xz1rKzR8MH1lbHNle0g9Y1trKzg+PjJdfDA7Wj1IO189
SH1IPVkmMjU1O2lmKChIJjF8MCk9PTApeyQ9SD4+PjF9ZWxzZXskPWNbays0Pj4yXXwwfWljKFcs
eSx6LGNbaCs0Pj4yXXwwLF8sWisoJDw8Mil8MCxGLEssbixjW28+PjJdfDAsY1twPj4yXXwwLHEs
cyx1LE8pO2NbQT4+Ml09Y1tmPj4yXTtncShiLEEsVyxjW3k+PjJdfDAsY1t6Pj4yXXwwLGgsaik7
aWYoKFh8MCk9PTApe2VlKHUpO2VlKHMpO2RQKHEpO2FhPWNbQj4+Ml18MDthYj1hYXwwO2FjPWR6
KGFiKXwwO2k9ZTtyZXR1cm59a0soWCk7ZWUodSk7ZWUocyk7ZFAocSk7YWE9Y1tCPj4yXXwwO2Fi
PWFhfDA7YWM9ZHooYWIpfDA7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2Js
KGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gaWkoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTA7ZD1pO2k9aSsxNnwwO2o9ZHwwO2s9ajtrJChrfDAsMCwxMik7bD1i
O209aDtuPWFbaF18MDtpZigobiYxKT09MCl7bz1tKzF8MDtwPW0rMXwwfWVsc2V7bT1jW2grOD4+
Ml18MDtvPW07cD1tfW09biYyNTU7aWYoKG0mMXwwKT09MCl7cT1tPj4+MX1lbHNle3E9Y1toKzQ+
PjJdfDB9aD1vK3F8MDtkb3tpZihwPj4+MDxoPj4+MCl7cT1wO2Rve2RVKGosYVtxXXwwKTtxPXEr
MXwwO313aGlsZShxPj4+MDxoPj4+MCk7cT0oZXwwKT09LTE/LTE6ZTw8MTtpZigoYVtrXSYxKT09
MCl7cj1xO3M9MTc2MjticmVha310PWNbais4Pj4yXXwwO3U9cX1lbHNle3I9KGV8MCk9PS0xPy0x
OmU8PDE7cz0xNzYyfX13aGlsZSgwKTtpZigoc3wwKT09MTc2Mil7dD1qKzF8MDt1PXJ9cj1iTSh1
fDAsZnwwLGd8MCx0fDApfDA7ayQobHwwLDAsMTIpO2w9azAocnwwKXwwO3Q9citsfDA7aWYoKGx8
MCk+MCl7dj1yfWVsc2V7ZFAoaik7aT1kO3JldHVybn1kb3tkVShiLGFbdl18MCk7dj12KzF8MDt9
d2hpbGUodj4+PjA8dD4+PjApO2RQKGopO2k9ZDtyZXR1cm59ZnVuY3Rpb24gaWooYSxiKXthPWF8
MDtiPWJ8MDthMSgoKGJ8MCk9PS0xPy0xOmI8PDEpfDApfDA7cmV0dXJufWZ1bmN0aW9uIGlrKGEp
e2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlsKGEpe2E9YXwwO2RlKGF8MCk7
cmV0dXJufWZ1bmN0aW9uIGltKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wO2lmKChh
W2RdJjEpPT0wKXtmPWQrMXwwfWVsc2V7Zj1jW2QrOD4+Ml18MH1kPWE4KGZ8MCwyMDApfDA7cmV0
dXJuIGQ+Pj4oKChkfDApIT0tMXwwKT4+PjApfDB9ZnVuY3Rpb24gaW8oYSxiKXthPWF8MDtiPWJ8
MDthMSgoKGJ8MCk9PS0xPy0xOmI8PDEpfDApfDA7cmV0dXJufWZ1bmN0aW9uIGlwKGIsZCxlLGYs
ZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAs
bT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxB
PTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZD1pO2k9aSsyMjR8MDtqPWR8
MDtrPWQrOHwwO2w9ZCs0MHwwO209ZCs0OHwwO249ZCs1NnwwO289ZCs2NHwwO3A9ZCsxOTJ8MDtx
PWQrMjAwfDA7cj1kKzIwOHwwO3M9cjt0PWk7aT1pKzh8MDt1PWk7aT1pKzh8MDtrJChzfDAsMCwx
Mik7dj1iO3c9dHwwO2NbdCs0Pj4yXT0wO2NbdD4+Ml09NDEwNDt4PWFbaF18MDtpZigoeCYxKT09
MCl7eT1oKzR8MDt6PWgrNHwwfWVsc2V7QT1jW2grOD4+Ml18MDt5PUE7ej1BfUE9eCYyNTU7aWYo
KEEmMXwwKT09MCl7Qj1BPj4+MX1lbHNle0I9Y1toKzQ+PjJdfDB9aD15KyhCPDwyKXwwO0wyMTM1
OmRve2lmKHo+Pj4wPGg+Pj4wKXtCPXQ7eT1rfDA7QT1rKzMyfDA7eD16O0M9NDEwNDt3aGlsZSgx
KXtjW20+PjJdPXg7RD0oYjZbY1tDKzEyPj4yXSYzMV0odyxqLHgsaCxtLHksQSxsKXwwKT09MjtF
PWNbbT4+Ml18MDtpZihEfChFfDApPT0oeHwwKSl7YnJlYWt9aWYoeT4+PjA8KGNbbD4+Ml18MCk+
Pj4wKXtEPXk7ZG97ZFUocixhW0RdfDApO0Q9RCsxfDA7fXdoaWxlKEQ+Pj4wPChjW2w+PjJdfDAp
Pj4+MCk7Rj1jW20+PjJdfDB9ZWxzZXtGPUV9aWYoRj4+PjA+PWg+Pj4wKXticmVhayBMMjEzNX14
PUY7Qz1jW0I+PjJdfDB9Qj1iTyg4KXwwO2RFKEIsOTA0KTtibChCfDAsODE5MiwyMil9fXdoaWxl
KDApO2RlKHR8MCk7aWYoKGFbc10mMSk9PTApe0c9cisxfDB9ZWxzZXtHPWNbcis4Pj4yXXwwfXM9
Yk0oKChlfDApPT0tMT8tMTplPDwxKXwwLGZ8MCxnfDAsR3wwKXwwO2skKHZ8MCwwLDEyKTt2PXV8
MDtjW3UrND4+Ml09MDtjW3U+PjJdPTQwNDg7Rz1rMChzfDApfDA7Zz1zK0d8MDtpZigoR3wwKTwx
KXtIPXV8MDtkZShIKTtkUChyKTtpPWQ7cmV0dXJufUc9dTtmPWc7ZT1vfDA7dD1vKzEyOHwwO289
cztzPTQwNDg7d2hpbGUoMSl7Y1txPj4yXT1vO0Y9KGI2W2NbcysxNj4+Ml0mMzFdKHYsbixvLChm
LW98MCk+MzI/byszMnwwOmcscSxlLHQscCl8MCk9PTI7aD1jW3E+PjJdfDA7aWYoRnwoaHwwKT09
KG98MCkpe2JyZWFrfWlmKGU+Pj4wPChjW3A+PjJdfDApPj4+MCl7Rj1lO2Rve2VoKGIsY1tGPj4y
XXwwKTtGPUYrNHwwO313aGlsZShGPj4+MDwoY1twPj4yXXwwKT4+PjApO0k9Y1txPj4yXXwwfWVs
c2V7ST1ofWlmKEk+Pj4wPj1nPj4+MCl7Sj0xODI5O2JyZWFrfW89STtzPWNbRz4+Ml18MH1pZigo
SnwwKT09MTgyOSl7SD11fDA7ZGUoSCk7ZFAocik7aT1kO3JldHVybn1kPWJPKDgpfDA7ZEUoZCw5
MDQpO2JsKGR8MCw4MTkyLDIyKX1mdW5jdGlvbiBpcShiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTA7
Y1tiPj4yXT0zNTY4O2Q9Yis4fDA7ZT1jW2Q+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTtpZigoZXwwKT09KGNbMjk1OF18MCkpe2Y9YnwwO2RlKGYpO3JldHVybn1hNyhjW2Q+PjJdfDAp
O2Y9YnwwO2RlKGYpO3JldHVybn1mdW5jdGlvbiBpcihhKXthPWF8MDthPWJPKDgpfDA7ZEEoYSwx
MzUyKTtjW2E+PjJdPTI1MDQ7YmwoYXwwLDgyMDgsMzIpfWZ1bmN0aW9uIGlzKGIsZCl7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MDtlPWk7aT1pKzQ0OHwwO2Y9ZXwwO2c9ZSsx
NnwwO2g9ZSszMnwwO2o9ZSs0OHwwO2s9ZSs2NHwwO2w9ZSs4MHwwO209ZSs5NnwwO249ZSsxMTJ8
MDtvPWUrMTI4fDA7cD1lKzE0NHwwO3E9ZSsxNjB8MDtyPWUrMTc2fDA7cz1lKzE5MnwwO3Q9ZSsy
MDh8MDt1PWUrMjI0fDA7dj1lKzI0MHwwO3c9ZSsyNTZ8MDt4PWUrMjcyfDA7eT1lKzI4OHwwO3o9
ZSszMDR8MDtBPWUrMzIwfDA7Qj1lKzMzNnwwO0M9ZSszNTJ8MDtEPWUrMzY4fDA7RT1lKzM4NHww
O0Y9ZSs0MDB8MDtHPWUrNDE2fDA7SD1lKzQzMnwwO2NbYis0Pj4yXT1kLTE7Y1tiPj4yXT0zODI0
O2Q9Yis4fDA7ST1iKzEyfDA7YVtiKzEzNnwwXT0xO0o9YisyNHwwO0s9SjtjW0k+PjJdPUs7Y1tk
Pj4yXT1LO2NbYisxNj4+Ml09SisxMTI7Sj0yODtMPUs7ZG97aWYoKEx8MCk9PTApe009MH1lbHNl
e2NbTD4+Ml09MDtNPWNbST4+Ml18MH1MPU0rNHwwO2NbST4+Ml09TDtKPUotMXwwO313aGlsZSgo
SnwwKSE9MCk7ZFooYisxNDR8MCwxMzQ0LDEpO0o9Y1tkPj4yXXwwO2Q9Y1tJPj4yXXwwO2lmKChK
fDApIT0oZHwwKSl7Y1tJPj4yXT1kKyh+KChkLTQrKC1KfDApfDApPj4+Mik8PDIpfWNbMzYxN109
MDtjWzM2MTZdPTM1Mjg7aWYoKGNbMzg0NF18MCkhPS0xKXtjW0g+PjJdPTE1Mzc2O2NbSCs0Pj4y
XT0xMjtjW0grOD4+Ml09MDtkVygxNTM3NixILDk2KX1pSihiLDE0NDY0LChjWzM4NDVdfDApLTF8
MCk7Y1szNjE1XT0wO2NbMzYxNF09MzQ4ODtpZigoY1szODQyXXwwKSE9LTEpe2NbRz4+Ml09MTUz
Njg7Y1tHKzQ+PjJdPTEyO2NbRys4Pj4yXT0wO2RXKDE1MzY4LEcsOTYpfWlKKGIsMTQ0NTYsKGNb
Mzg0M118MCktMXwwKTtjWzM2NjddPTA7Y1szNjY2XT0zOTM2O2NbMzY2OF09MDthWzE0Njc2XT0w
O2NbMzY2OF09Y1soYTYoKXwwKT4+Ml07aWYoKGNbMzkyNF18MCkhPS0xKXtjW0Y+PjJdPTE1Njk2
O2NbRis0Pj4yXT0xMjtjW0YrOD4+Ml09MDtkVygxNTY5NixGLDk2KX1pSihiLDE0NjY0LChjWzM5
MjVdfDApLTF8MCk7Y1szNjY1XT0wO2NbMzY2NF09Mzg1NjtpZigoY1szOTIyXXwwKSE9LTEpe2Nb
RT4+Ml09MTU2ODg7Y1tFKzQ+PjJdPTEyO2NbRSs4Pj4yXT0wO2RXKDE1Njg4LEUsOTYpfWlKKGIs
MTQ2NTYsKGNbMzkyM118MCktMXwwKTtjWzM2MTldPTA7Y1szNjE4XT0zNjI0O2lmKChjWzM4NDhd
fDApIT0tMSl7Y1tEPj4yXT0xNTM5MjtjW0QrND4+Ml09MTI7Y1tEKzg+PjJdPTA7ZFcoMTUzOTIs
RCw5Nil9aUooYiwxNDQ3MiwoY1szODQ5XXwwKS0xfDApO2NbNTIxXT0wO2NbNTIwXT0zNTY4O2Rv
e2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1h
UygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Y1s1MjJdPWNbMjk1OF07aWYoKGNbMzg0Nl18MCkhPS0x
KXtjW0M+PjJdPTE1Mzg0O2NbQys0Pj4yXT0xMjtjW0MrOD4+Ml09MDtkVygxNTM4NCxDLDk2KX1p
SihiLDIwODAsKGNbMzg0N118MCktMXwwKTtjWzM2MjFdPTA7Y1szNjIwXT0zNjgwO2lmKChjWzM4
NTBdfDApIT0tMSl7Y1tCPj4yXT0xNTQwMDtjW0IrND4+Ml09MTI7Y1tCKzg+PjJdPTA7ZFcoMTU0
MDAsQiw5Nil9aUooYiwxNDQ4MCwoY1szODUxXXwwKS0xfDApO2NbMzYyM109MDtjWzM2MjJdPTM3
MzY7aWYoKGNbMzg1Ml18MCkhPS0xKXtjW0E+PjJdPTE1NDA4O2NbQSs0Pj4yXT0xMjtjW0ErOD4+
Ml09MDtkVygxNTQwOCxBLDk2KX1pSihiLDE0NDg4LChjWzM4NTNdfDApLTF8MCk7Y1szNTk3XT0w
O2NbMzU5Nl09MzAzMjthWzE0MzkyXT00NjthWzE0MzkzXT00NDtrJCgxNDM5NiwwLDEyKTtpZigo
Y1szODI4XXwwKSE9LTEpe2Nbej4+Ml09MTUzMTI7Y1t6KzQ+PjJdPTEyO2Nbeis4Pj4yXT0wO2RX
KDE1MzEyLHosOTYpfWlKKGIsMTQzODQsKGNbMzgyOV18MCktMXwwKTtjWzUxM109MDtjWzUxMl09
Mjk4NDtjWzUxNF09NDY7Y1s1MTVdPTQ0O2skKDIwNjQsMCwxMik7aWYoKGNbMzgyNl18MCkhPS0x
KXtjW3k+PjJdPTE1MzA0O2NbeSs0Pj4yXT0xMjtjW3krOD4+Ml09MDtkVygxNTMwNCx5LDk2KX1p
SihiLDIwNDgsKGNbMzgyN118MCktMXwwKTtjWzM2MTNdPTA7Y1szNjEyXT0zNDE2O2lmKChjWzM4
NDBdfDApIT0tMSl7Y1t4Pj4yXT0xNTM2MDtjW3grND4+Ml09MTI7Y1t4Kzg+PjJdPTA7ZFcoMTUz
NjAseCw5Nil9aUooYiwxNDQ0OCwoY1szODQxXXwwKS0xfDApO2NbMzYxMV09MDtjWzM2MTBdPTMz
NDQ7aWYoKGNbMzgzOF18MCkhPS0xKXtjW3c+PjJdPTE1MzUyO2Nbdys0Pj4yXT0xMjtjW3crOD4+
Ml09MDtkVygxNTM1Mix3LDk2KX1pSihiLDE0NDQwLChjWzM4MzldfDApLTF8MCk7Y1szNjA5XT0w
O2NbMzYwOF09MzI4MDtpZigoY1szODM2XXwwKSE9LTEpe2Nbdj4+Ml09MTUzNDQ7Y1t2KzQ+PjJd
PTEyO2Nbdis4Pj4yXT0wO2RXKDE1MzQ0LHYsOTYpfWlKKGIsMTQ0MzIsKGNbMzgzN118MCktMXww
KTtjWzM2MDddPTA7Y1szNjA2XT0zMjE2O2lmKChjWzM4MzRdfDApIT0tMSl7Y1t1Pj4yXT0xNTMz
NjtjW3UrND4+Ml09MTI7Y1t1Kzg+PjJdPTA7ZFcoMTUzMzYsdSw5Nil9aUooYiwxNDQyNCwoY1sz
ODM1XXwwKS0xfDApO2NbMzY3N109MDtjWzM2NzZdPTQ5MTI7aWYoKGNbNDA0Nl18MCkhPS0xKXtj
W3Q+PjJdPTE2MTg0O2NbdCs0Pj4yXT0xMjtjW3QrOD4+Ml09MDtkVygxNjE4NCx0LDk2KX1pSihi
LDE0NzA0LChjWzQwNDddfDApLTF8MCk7Y1szNjc1XT0wO2NbMzY3NF09NDg0ODtpZigoY1s0MDQ0
XXwwKSE9LTEpe2Nbcz4+Ml09MTYxNzY7Y1tzKzQ+PjJdPTEyO2Nbcys4Pj4yXT0wO2RXKDE2MTc2
LHMsOTYpfWlKKGIsMTQ2OTYsKGNbNDA0NV18MCktMXwwKTtjWzM2NzNdPTA7Y1szNjcyXT00Nzg0
O2lmKChjWzQwNDJdfDApIT0tMSl7Y1tyPj4yXT0xNjE2ODtjW3IrND4+Ml09MTI7Y1tyKzg+PjJd
PTA7ZFcoMTYxNjgsciw5Nil9aUooYiwxNDY4OCwoY1s0MDQzXXwwKS0xfDApO2NbMzY3MV09MDtj
WzM2NzBdPTQ3MjA7aWYoKGNbNDA0MF18MCkhPS0xKXtjW3E+PjJdPTE2MTYwO2NbcSs0Pj4yXT0x
MjtjW3ErOD4+Ml09MDtkVygxNjE2MCxxLDk2KX1pSihiLDE0NjgwLChjWzQwNDFdfDApLTF8MCk7
Y1szNTk1XT0wO2NbMzU5NF09MjY4ODtpZigoY1szODE2XXwwKSE9LTEpe2NbcD4+Ml09MTUyNjQ7
Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE1MjY0LHAsOTYpfWlKKGIsMTQzNzYsKGNbMzgx
N118MCktMXwwKTtjWzM1OTNdPTA7Y1szNTkyXT0yNjQ4O2lmKChjWzM4MTRdfDApIT0tMSl7Y1tv
Pj4yXT0xNTI1NjtjW28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTUyNTYsbyw5Nil9aUooYiwx
NDM2OCwoY1szODE1XXwwKS0xfDApO2NbMzU5MV09MDtjWzM1OTBdPTI2MDg7aWYoKGNbMzgxMl18
MCkhPS0xKXtjW24+PjJdPTE1MjQ4O2Nbbis0Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTI0OCxu
LDk2KX1pSihiLDE0MzYwLChjWzM4MTNdfDApLTF8MCk7Y1szNTg5XT0wO2NbMzU4OF09MjU2ODtp
ZigoY1szODEwXXwwKSE9LTEpe2NbbT4+Ml09MTUyNDA7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0w
O2RXKDE1MjQwLG0sOTYpfWlKKGIsMTQzNTIsKGNbMzgxMV18MCktMXwwKTtjWzUwOV09MDtjWzUw
OF09Mjg4ODtjWzUxMF09MjkzNjtpZigoY1szODI0XXwwKSE9LTEpe2NbbD4+Ml09MTUyOTY7Y1ts
KzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Mjk2LGwsOTYpfWlKKGIsMjAzMiwoY1szODI1XXww
KS0xfDApO2NbNTA1XT0wO2NbNTA0XT0yNzkyO2NbNTA2XT0yODQwO2lmKChjWzM4MjJdfDApIT0t
MSl7Y1trPj4yXT0xNTI4ODtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTUyODgsayw5Nil9
aUooYiwyMDE2LChjWzM4MjNdfDApLTF8MCk7Y1s1MDFdPTA7Y1s1MDBdPTM3OTI7ZG97aWYoKGFb
MTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0
NCwwKXwwfX13aGlsZSgwKTtjWzUwMl09Y1syOTU4XTtjWzUwMF09Mjc2MDtpZigoY1szODIwXXww
KSE9LTEpe2Nbaj4+Ml09MTUyODA7Y1tqKzQ+PjJdPTEyO2Nbais4Pj4yXT0wO2RXKDE1MjgwLGos
OTYpfWlKKGIsMmUzLChjWzM4MjFdfDApLTF8MCk7Y1s0OTddPTA7Y1s0OTZdPTM3OTI7ZG97aWYo
KGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEs
MTM0NCwwKXwwfX13aGlsZSgwKTtjWzQ5OF09Y1syOTU4XTtjWzQ5Nl09MjcyODtpZigoY1szODE4
XXwwKSE9LTEpe2NbaD4+Ml09MTUyNzI7Y1toKzQ+PjJdPTEyO2NbaCs4Pj4yXT0wO2RXKDE1Mjcy
LGgsOTYpfWlKKGIsMTk4NCwoY1szODE5XXwwKS0xfDApO2NbMzYwNV09MDtjWzM2MDRdPTMxMjA7
aWYoKGNbMzgzMl18MCkhPS0xKXtjW2c+PjJdPTE1MzI4O2NbZys0Pj4yXT0xMjtjW2crOD4+Ml09
MDtkVygxNTMyOCxnLDk2KX1pSihiLDE0NDE2LChjWzM4MzNdfDApLTF8MCk7Y1szNjAzXT0wO2Nb
MzYwMl09MzA4MDtpZigoY1szODMwXXwwKSE9LTEpe2NbZj4+Ml09MTUzMjA7Y1tmKzQ+PjJdPTEy
O2NbZis4Pj4yXT0wO2RXKDE1MzIwLGYsOTYpfWlKKGIsMTQ0MDgsKGNbMzgzMV18MCktMXwwKTtp
PWU7cmV0dXJufWZ1bmN0aW9uIGl0KGEsYil7YT1hfDA7Yj1ifDA7cmV0dXJuIGJ8MH1mdW5jdGlv
biBpdShhLGIsZCxlLGYsZyxoLGkpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2k9aXwwO2NbZj4+Ml09ZDtjW2k+PjJdPWc7cmV0dXJuIDN9ZnVuY3Rpb24gaXYoYSxi
LGQsZSxmLGcsaCxpKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtp
PWl8MDtjW2Y+PjJdPWQ7Y1tpPj4yXT1nO3JldHVybiAzfWZ1bmN0aW9uIGl3KGEsYixkLGUsZil7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Y1tmPj4yXT1kO3JldHVybiAzfWZ1bmN0aW9u
IGl4KGEpe2E9YXwwO3JldHVybiAxfWZ1bmN0aW9uIGl5KGEpe2E9YXwwO3JldHVybiAxfWZ1bmN0
aW9uIGl6KGEpe2E9YXwwO3JldHVybiAxfWZ1bmN0aW9uIGlBKGEsYil7YT1hfDA7Yj1ifDA7cmV0
dXJuIGI8PDI0Pj4yNHwwfWZ1bmN0aW9uIGlCKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDtyZXR1
cm4oYj4+PjA8MTI4P2ImMjU1OmMpfDB9ZnVuY3Rpb24gaUMoYSxiLGMpe2E9YXwwO2I9YnwwO2M9
Y3wwO3JldHVybihiPDwyND4+MjQ+LTE/YjpjKXwwfWZ1bmN0aW9uIGlEKGEsYixjLGQsZSl7YT1h
fDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Yj1kLWN8MDtyZXR1cm4oYj4+PjA8ZT4+PjA/Yjpl
KXwwfWZ1bmN0aW9uIGlFKGEpe2E9YXwwO2NbYSs0Pj4yXT0oST1jWzM4NTRdfDAsY1szODU0XT1J
KzEsSSkrMTtyZXR1cm59ZnVuY3Rpb24gaUYoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7dmFyIGc9MCxoPTAsaT0wO2lmKChkfDApPT0oZXwwKSl7Zz1kO3JldHVybiBnfDB9ZWxzZXto
PWQ7aT1mfXdoaWxlKDEpe2NbaT4+Ml09YVtoXXwwO2Y9aCsxfDA7aWYoKGZ8MCk9PShlfDApKXtn
PWU7YnJlYWt9ZWxzZXtoPWY7aT1pKzR8MH19cmV0dXJuIGd8MH1mdW5jdGlvbiBpRyhiLGQsZSxm
LGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaT0wLGo9MDtpZigoZHww
KT09KGV8MCkpe2g9ZDtyZXR1cm4gaHwwfWI9KChlLTQrKC1kfDApfDApPj4+MikrMXwwO2k9ZDtq
PWc7d2hpbGUoMSl7Zz1jW2k+PjJdfDA7YVtqXT1nPj4+MDwxMjg/ZyYyNTU6ZjtnPWkrNHwwO2lm
KChnfDApPT0oZXwwKSl7YnJlYWt9ZWxzZXtpPWc7aj1qKzF8MH19aD1kKyhiPDwyKXwwO3JldHVy
biBofDB9ZnVuY3Rpb24gaUgoYixjLGQsZSl7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7dmFyIGY9
MCxnPTAsaD0wO2lmKChjfDApPT0oZHwwKSl7Zj1jO3JldHVybiBmfDB9ZWxzZXtnPWM7aD1lfXdo
aWxlKDEpe2FbaF09YVtnXXwwO2U9ZysxfDA7aWYoKGV8MCk9PShkfDApKXtmPWQ7YnJlYWt9ZWxz
ZXtnPWU7aD1oKzF8MH19cmV0dXJuIGZ8MH1mdW5jdGlvbiBpSShiLGMsZCxlLGYpe2I9YnwwO2M9
Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MDtpZigoY3wwKT09KGR8MCkpe2c9
YztyZXR1cm4gZ3wwfWVsc2V7aD1jO2k9Zn13aGlsZSgxKXtmPWFbaF18MDthW2ldPWY8PDI0Pj4y
ND4tMT9mOmU7Zj1oKzF8MDtpZigoZnwwKT09KGR8MCkpe2c9ZDticmVha31lbHNle2g9ZjtpPWkr
MXwwfX1yZXR1cm4gZ3wwfWZ1bmN0aW9uIGlKKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIg
ZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2RnKGJ8MCk7ZT1hKzh8MDtm
PWErMTJ8MDthPWNbZj4+Ml18MDtnPWV8MDtoPWNbZz4+Ml18MDtpPWEtaD4+Mjtkb3tpZihpPj4+
MD5kPj4+MCl7aj1ofWVsc2V7az1kKzF8MDtpZihpPj4+MDxrPj4+MCl7ajUoZSxrLWl8MCk7aj1j
W2c+PjJdfDA7YnJlYWt9aWYoaT4+PjA8PWs+Pj4wKXtqPWg7YnJlYWt9bD1oKyhrPDwyKXwwO2lm
KChsfDApPT0oYXwwKSl7aj1oO2JyZWFrfWNbZj4+Ml09YSsofigoYS00KygtbHwwKXwwKT4+PjIp
PDwyKTtqPWh9fXdoaWxlKDApO2g9Y1tqKyhkPDwyKT4+Ml18MDtpZigoaHwwKT09MCl7bT1qO249
bSsoZDw8Mil8MDtjW24+PjJdPWI7cmV0dXJufWR6KGh8MCl8MDttPWNbZz4+Ml18MDtuPW0rKGQ8
PDIpfDA7Y1tuPj4yXT1iO3JldHVybn1mdW5jdGlvbiBpSyhhKXthPWF8MDtpTChhKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24gaUwoYil7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9
MCxrPTAsbD0wLG09MDtjW2I+PjJdPTM4MjQ7ZD1iKzEyfDA7ZT1jW2Q+PjJdfDA7Zj1iKzh8MDtn
PWNbZj4+Ml18MDtpZigoZXwwKSE9KGd8MCkpe2g9MDtpPWc7Zz1lO3doaWxlKDEpe2U9Y1tpKyho
PDwyKT4+Ml18MDtpZigoZXwwKT09MCl7aj1nO2s9aX1lbHNle2w9ZXwwO2R6KGwpfDA7aj1jW2Q+
PjJdfDA7az1jW2Y+PjJdfDB9bD1oKzF8MDtpZihsPj4+MDxqLWs+PjI+Pj4wKXtoPWw7aT1rO2c9
an1lbHNle2JyZWFrfX19ZFAoYisxNDR8MCk7aj1jW2Y+PjJdfDA7aWYoKGp8MCk9PTApe209Ynww
O2RlKG0pO3JldHVybn1mPWNbZD4+Ml18MDtpZigoanwwKSE9KGZ8MCkpe2NbZD4+Ml09Zisofigo
Zi00KygtanwwKXwwKT4+PjIpPDwyKX1pZigoanwwKT09KGIrMjR8MCkpe2FbYisxMzZ8MF09MDtt
PWJ8MDtkZShtKTtyZXR1cm59ZWxzZXtrUyhqKTttPWJ8MDtkZShtKTtyZXR1cm59fWZ1bmN0aW9u
IGlNKCl7dmFyIGI9MCxkPTA7aWYoKGFbMTYyNDhdfDApIT0wKXtiPWNbMjk1MF18MDtyZXR1cm4g
YnwwfWlmKChiYygxNjI0OCl8MCk9PTApe2I9Y1syOTUwXXwwO3JldHVybiBifDB9ZG97aWYoKGFb
MTYyNTZdfDApPT0wKXtpZigoYmMoMTYyNTYpfDApPT0wKXticmVha31pcygxNDQ5NiwxKTtjWzI5
NTRdPTE0NDk2O2NbMjk1Ml09MTE4MTZ9fXdoaWxlKDApO2Q9Y1tjWzI5NTJdPj4yXXwwO2NbMjk1
Nl09ZDtkZyhkfDApO2NbMjk1MF09MTE4MjQ7Yj1jWzI5NTBdfDA7cmV0dXJuIGJ8MH1mdW5jdGlv
biBpTihhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTA7ZD1jW2I+PjJdfDA7Y1thPj4yXT1kO2RnKGR8
MCk7cmV0dXJufWZ1bmN0aW9uIGlPKGEpe2E9YXwwO2R6KGNbYT4+Ml18MCl8MDtyZXR1cm59ZnVu
Y3Rpb24gaVAoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaVEoYSl7YT1h
fDA7aWYoKGF8MCk9PTApe3JldHVybn1iWVtjWyhjW2E+PjJdfDApKzQ+PjJdJjUxMV0oYSk7cmV0
dXJufWZ1bmN0aW9uIGlSKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlT
KGIpe2I9YnwwO3ZhciBkPTA7Y1tiPj4yXT0zOTM2O2Q9Y1tiKzg+PjJdfDA7ZG97aWYoKGR8MCkh
PTApe2lmKChhW2IrMTJ8MF0mMSk9PTApe2JyZWFrfWtUKGQpfX13aGlsZSgwKTtkZShifDApO2tT
KGIpO3JldHVybn1mdW5jdGlvbiBpVChiKXtiPWJ8MDt2YXIgZD0wO2NbYj4+Ml09MzkzNjtkPWNb
Yis4Pj4yXXwwO2Rve2lmKChkfDApIT0wKXtpZigoYVtiKzEyfDBdJjEpPT0wKXticmVha31rVChk
KX19d2hpbGUoMCk7ZGUoYnwwKTtyZXR1cm59ZnVuY3Rpb24gaVUoYSl7YT1hfDA7ZGUoYXwwKTtr
UyhhKTtyZXR1cm59ZnVuY3Rpb24gaVYoYSl7YT1hfDA7aXEoYSk7a1MoYSk7cmV0dXJufWZ1bmN0
aW9uIGlXKGEpe2E9YXwwO3ZhciBiPTA7Yj1jWyhpTSgpfDApPj4yXXwwO2NbYT4+Ml09YjtkZyhi
fDApO3JldHVybn1mdW5jdGlvbiBpWChhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxn
PTAsaD0wO2Q9aTtpPWkrMTZ8MDtlPWR8MDtmPWNbYT4+Ml18MDthPWJ8MDtpZigoY1thPj4yXXww
KSE9LTEpe2NbZT4+Ml09YjtjW2UrND4+Ml09MTI7Y1tlKzg+PjJdPTA7ZFcoYSxlLDk2KX1lPShj
W2IrND4+Ml18MCktMXwwO2I9Y1tmKzg+PjJdfDA7aWYoKGNbZisxMj4+Ml18MCktYj4+Mj4+PjA8
PWU+Pj4wKXtnPWJPKDQpfDA7aD1nO2txKGgpO2JsKGd8MCw4MTc2LDEzNCk7cmV0dXJuIDB9Zj1j
W2IrKGU8PDIpPj4yXXwwO2lmKChmfDApPT0wKXtnPWJPKDQpfDA7aD1nO2txKGgpO2JsKGd8MCw4
MTc2LDEzNCk7cmV0dXJuIDB9ZWxzZXtpPWQ7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBp
WShhLGQsZSl7YT1hfDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MDtpZihlPj4+MD49MTI4KXtmPTA7cmV0
dXJuIGZ8MH1mPShiWyhjWyhhNigpfDApPj4yXXwwKSsoZTw8MSk+PjFdJmQpPDwxNj4+MTYhPTA7
cmV0dXJuIGZ8MH1mdW5jdGlvbiBpWihhLGQsZSxmKXthPWF8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2
YXIgZz0wLGg9MCxpPTAsaj0wO2lmKChkfDApPT0oZXwwKSl7Zz1kO3JldHVybiBnfDB9ZWxzZXto
PWQ7aT1mfXdoaWxlKDEpe2Y9Y1toPj4yXXwwO2lmKGY+Pj4wPDEyOCl7aj1iWyhjWyhhNigpfDAp
Pj4yXXwwKSsoZjw8MSk+PjFdfDB9ZWxzZXtqPTB9YltpPj4xXT1qO2Y9aCs0fDA7aWYoKGZ8MCk9
PShlfDApKXtnPWU7YnJlYWt9ZWxzZXtoPWY7aT1pKzJ8MH19cmV0dXJuIGd8MH1mdW5jdGlvbiBp
XyhhLGQsZSxmKXthPWF8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTA7aWYoKGV8
MCk9PShmfDApKXtnPWU7cmV0dXJuIGd8MH1lbHNle2g9ZX13aGlsZSgxKXtlPWNbaD4+Ml18MDtp
ZihlPj4+MDwxMjgpe2lmKChiWyhjWyhhNigpfDApPj4yXXwwKSsoZTw8MSk+PjFdJmQpPDwxNj4+
MTYhPTApe2c9aDtpPTIwOTQ7YnJlYWt9fWU9aCs0fDA7aWYoKGV8MCk9PShmfDApKXtnPWY7aT0y
MDk2O2JyZWFrfWVsc2V7aD1lfX1pZigoaXwwKT09MjA5NCl7cmV0dXJuIGd8MH1lbHNlIGlmKChp
fDApPT0yMDk2KXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0aW9uIGkkKGEsZCxlLGYpe2E9YXww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wO2E9ZTt3aGlsZSgxKXtpZigoYXwwKT09KGZ8
MCkpe2c9ZjtoPTIxMDQ7YnJlYWt9ZT1jW2E+PjJdfDA7aWYoZT4+PjA+PTEyOCl7Zz1hO2g9MjEw
NjticmVha31pZigoYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4xXSZkKTw8MTY+PjE2PT0w
KXtnPWE7aD0yMTA1O2JyZWFrfWVsc2V7YT1hKzR8MH19aWYoKGh8MCk9PTIxMDQpe3JldHVybiBn
fDB9ZWxzZSBpZigoaHwwKT09MjEwNSl7cmV0dXJuIGd8MH1lbHNlIGlmKChofDApPT0yMTA2KXty
ZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0aW9uIGkwKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MDtp
ZihiPj4+MD49MTI4KXtkPWI7cmV0dXJuIGR8MH1kPWNbKGNbKGJSKCl8MCk+PjJdfDApKyhiPDwy
KT4+Ml18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGkxKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2
YXIgZT0wLGY9MCxnPTA7aWYoKGJ8MCk9PShkfDApKXtlPWI7cmV0dXJuIGV8MH1lbHNle2Y9Yn13
aGlsZSgxKXtiPWNbZj4+Ml18MDtpZihiPj4+MDwxMjgpe2c9Y1soY1soYlIoKXwwKT4+Ml18MCkr
KGI8PDIpPj4yXXwwfWVsc2V7Zz1ifWNbZj4+Ml09ZztiPWYrNHwwO2lmKChifDApPT0oZHwwKSl7
ZT1kO2JyZWFrfWVsc2V7Zj1ifX1yZXR1cm4gZXwwfWZ1bmN0aW9uIGkyKGEsYil7YT1hfDA7Yj1i
fDA7dmFyIGQ9MDtpZihiPj4+MD49MTI4KXtkPWI7cmV0dXJuIGR8MH1kPWNbKGNbKGJTKCl8MCk+
PjJdfDApKyhiPDwyKT4+Ml18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGkzKGEsYixkKXthPWF8MDti
PWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTA7aWYoKGJ8MCk9PShkfDApKXtlPWI7cmV0dXJuIGV8
MH1lbHNle2Y9Yn13aGlsZSgxKXtiPWNbZj4+Ml18MDtpZihiPj4+MDwxMjgpe2c9Y1soY1soYlMo
KXwwKT4+Ml18MCkrKGI8PDIpPj4yXXwwfWVsc2V7Zz1ifWNbZj4+Ml09ZztiPWYrNHwwO2lmKChi
fDApPT0oZHwwKSl7ZT1kO2JyZWFrfWVsc2V7Zj1ifX1yZXR1cm4gZXwwfWZ1bmN0aW9uIGk0KGEs
Yil7YT1hfDA7Yj1ifDA7dmFyIGQ9MDtpZihiPDwyND4+MjQ8PS0xKXtkPWI7cmV0dXJuIGR8MH1k
PWNbKGNbKGJSKCl8MCk+PjJdfDApKygoYiYyNTUpPDwyKT4+Ml0mMjU1O3JldHVybiBkfDB9ZnVu
Y3Rpb24gaTUoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtpZigoZHww
KT09KGV8MCkpe2Y9ZDtyZXR1cm4gZnwwfWVsc2V7Zz1kfXdoaWxlKDEpe2Q9YVtnXXwwO2lmKGQ8
PDI0Pj4yND4tMSl7aD1jWyhjWyhiUigpfDApPj4yXXwwKSsoZDw8MjQ+PjI0PDwyKT4+Ml0mMjU1
fWVsc2V7aD1kfWFbZ109aDtkPWcrMXwwO2lmKChkfDApPT0oZXwwKSl7Zj1lO2JyZWFrfWVsc2V7
Zz1kfX1yZXR1cm4gZnwwfWZ1bmN0aW9uIGk2KGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MDtpZihi
PDwyND4+MjQ8PS0xKXtkPWI7cmV0dXJuIGR8MH1kPWNbKGNbKGJTKCl8MCk+PjJdfDApKyhiPDwy
ND4+MjQ8PDIpPj4yXSYyNTU7cmV0dXJuIGR8MH1mdW5jdGlvbiBpNyhiLGQsZSl7Yj1ifDA7ZD1k
fDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2lmKChkfDApPT0oZXwwKSl7Zj1kO3JldHVybiBmfDB9
ZWxzZXtnPWR9d2hpbGUoMSl7ZD1hW2ddfDA7aWYoZDw8MjQ+PjI0Pi0xKXtoPWNbKGNbKGJTKCl8
MCk+PjJdfDApKyhkPDwyND4+MjQ8PDIpPj4yXSYyNTV9ZWxzZXtoPWR9YVtnXT1oO2Q9ZysxfDA7
aWYoKGR8MCk9PShlfDApKXtmPWU7YnJlYWt9ZWxzZXtnPWR9fXJldHVybiBmfDB9ZnVuY3Rpb24g
aTgoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gaTkoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24gamEoYSxiLGQsZSxmLGcsaCxqKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MDtiPWk7aT1pKzE2fDA7YT1ifDA7
az1iKzh8MDtjW2E+PjJdPWQ7Y1trPj4yXT1nO2w9amwoZCxlLGEsZyxoLGssMTExNDExMSwwKXww
O2NbZj4+Ml09ZCsoKGNbYT4+Ml18MCktZD4+MTw8MSk7Y1tqPj4yXT1nKygoY1trPj4yXXwwKS1n
KTtpPWI7cmV0dXJuIGx8MH1mdW5jdGlvbiBqYihiLGQsZSxmLGcsaCxqLGspe2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxE
PTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wO2w9aTtpPWkrOHwwO209bHwwO249bTtvPWk7
aT1pKzF8MDtpPWkrNz4+Mzw8MztwPWU7d2hpbGUoMSl7aWYoKHB8MCk9PShmfDApKXtxPWY7YnJl
YWt9aWYoKGNbcD4+Ml18MCk9PTApe3E9cDticmVha31lbHNle3A9cCs0fDB9fWNbaz4+Ml09aDtj
W2c+PjJdPWU7TDI1NTU6ZG97aWYoKGV8MCk9PShmfDApfChofDApPT0oanwwKSl7cj1lfWVsc2V7
cD1kO3M9ajt0PWIrOHwwO3U9b3wwO3Y9aDt3PWU7eD1xO0wyNTU3OndoaWxlKDEpe3k9Y1twKzQ+
PjJdfDA7Y1ttPj4yXT1jW3A+PjJdO2NbbSs0Pj4yXT15O3k9YkIoY1t0Pj4yXXwwKXwwO3o9a3Mo
dixnLHgtdz4+MixzLXZ8MCxkKXwwO2lmKCh5fDApIT0wKXtiQih5fDApfDB9c3dpdGNoKHp8MCl7
Y2FzZS0xOntBPTIxODg7YnJlYWsgTDI1NTc7YnJlYWt9O2Nhc2UgMDp7Qj0xO0E9MjIyNDticmVh
ayBMMjU1NzticmVha307ZGVmYXVsdDp7fX15PShjW2s+PjJdfDApK3p8MDtjW2s+PjJdPXk7aWYo
KHl8MCk9PShqfDApKXtBPTIyMjE7YnJlYWt9aWYoKHh8MCk9PShmfDApKXtDPWY7RD15O0U9Y1tn
Pj4yXXwwfWVsc2V7eT1iQihjW3Q+PjJdfDApfDA7ej1rZyh1LDAsZCl8MDtpZigoeXwwKSE9MCl7
YkIoeXwwKXwwfWlmKCh6fDApPT0tMSl7Qj0yO0E9MjIyNjticmVha315PWNbaz4+Ml18MDtpZih6
Pj4+MD4ocy15fDApPj4+MCl7Qj0xO0E9MjIyNzticmVha31MMjU3NDpkb3tpZigoenwwKSE9MCl7
Rj16O0c9dTtIPXk7d2hpbGUoMSl7ST1hW0ddfDA7Y1trPj4yXT1IKzE7YVtIXT1JO0k9Ri0xfDA7
aWYoKEl8MCk9PTApe2JyZWFrIEwyNTc0fUY9STtHPUcrMXwwO0g9Y1trPj4yXXwwfX19d2hpbGUo
MCk7eT0oY1tnPj4yXXwwKSs0fDA7Y1tnPj4yXT15O3o9eTt3aGlsZSgxKXtpZigoenwwKT09KGZ8
MCkpe0o9ZjticmVha31pZigoY1t6Pj4yXXwwKT09MCl7Sj16O2JyZWFrfWVsc2V7ej16KzR8MH19
Qz1KO0Q9Y1trPj4yXXwwO0U9eX1pZigoRXwwKT09KGZ8MCl8KER8MCk9PShqfDApKXtyPUU7YnJl
YWsgTDI1NTV9ZWxzZXt2PUQ7dz1FO3g9Q319aWYoKEF8MCk9PTIxODgpe2Nbaz4+Ml09djtMMjU4
Njpkb3tpZigod3wwKT09KGNbZz4+Ml18MCkpe0s9d31lbHNle3g9dzt1PXY7d2hpbGUoMSl7cz1j
W3g+PjJdfDA7cD1iQihjW3Q+PjJdfDApfDA7ej1rZyh1LHMsbil8MDtpZigocHwwKSE9MCl7YkIo
cHwwKXwwfWlmKCh6fDApPT0tMSl7Sz14O2JyZWFrIEwyNTg2fXA9KGNbaz4+Ml18MCkrenwwO2Nb
az4+Ml09cDt6PXgrNHwwO2lmKCh6fDApPT0oY1tnPj4yXXwwKSl7Sz16O2JyZWFrfWVsc2V7eD16
O3U9cH19fX13aGlsZSgwKTtjW2c+PjJdPUs7Qj0yO2k9bDtyZXR1cm4gQnwwfWVsc2UgaWYoKEF8
MCk9PTIyMjEpe3I9Y1tnPj4yXXwwO2JyZWFrfWVsc2UgaWYoKEF8MCk9PTIyMjQpe2k9bDtyZXR1
cm4gQnwwfWVsc2UgaWYoKEF8MCk9PTIyMjYpe2k9bDtyZXR1cm4gQnwwfWVsc2UgaWYoKEF8MCk9
PTIyMjcpe2k9bDtyZXR1cm4gQnwwfX19d2hpbGUoMCk7Qj0ocnwwKSE9KGZ8MCl8MDtpPWw7cmV0
dXJuIEJ8MH1mdW5jdGlvbiBqYyhiLGQsZSxmLGcsaCxqLGspe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9
MCxHPTAsSD0wLEk9MDtsPWk7aT1pKzh8MDttPWx8MDtuPW07bz1lO3doaWxlKDEpe2lmKChvfDAp
PT0oZnwwKSl7cD1mO2JyZWFrfWlmKChhW29dfDApPT0wKXtwPW87YnJlYWt9ZWxzZXtvPW8rMXww
fX1jW2s+PjJdPWg7Y1tnPj4yXT1lO0wyNjA3OmRve2lmKChlfDApPT0oZnwwKXwoaHwwKT09KGp8
MCkpe3E9ZX1lbHNle289ZDtyPWo7cz1iKzh8MDt0PWg7dT1lO3Y9cDtMMjYwOTp3aGlsZSgxKXt3
PWNbbys0Pj4yXXwwO2NbbT4+Ml09Y1tvPj4yXTtjW20rND4+Ml09dzt4PXY7dz1iQihjW3M+PjJd
fDApfDA7eT1rZCh0LGcseC11fDAsci10Pj4yLGQpfDA7aWYoKHd8MCkhPTApe2JCKHd8MCl8MH1z
d2l0Y2goeXwwKXtjYXNlLTE6e3o9MjI0MzticmVhayBMMjYwOTticmVha307Y2FzZSAwOntBPTI7
ej0yMjc4O2JyZWFrIEwyNjA5O2JyZWFrfTtkZWZhdWx0Ont9fXc9KGNbaz4+Ml18MCkrKHk8PDIp
fDA7Y1trPj4yXT13O2lmKCh3fDApPT0oanwwKSl7ej0yMjc1O2JyZWFrfXk9Y1tnPj4yXXwwO2lm
KCh2fDApPT0oZnwwKSl7Qj1mO0M9dztEPXl9ZWxzZXtFPWJCKGNbcz4+Ml18MCl8MDtGPWtjKHcs
eSwxLGQpfDA7aWYoKEV8MCkhPTApe2JCKEV8MCl8MH1pZigoRnwwKSE9MCl7QT0yO3o9MjI4Mjti
cmVha31jW2s+PjJdPShjW2s+PjJdfDApKzQ7Rj0oY1tnPj4yXXwwKSsxfDA7Y1tnPj4yXT1GO0U9
Rjt3aGlsZSgxKXtpZigoRXwwKT09KGZ8MCkpe0c9ZjticmVha31pZigoYVtFXXwwKT09MCl7Rz1F
O2JyZWFrfWVsc2V7RT1FKzF8MH19Qj1HO0M9Y1trPj4yXXwwO0Q9Rn1pZigoRHwwKT09KGZ8MCl8
KEN8MCk9PShqfDApKXtxPUQ7YnJlYWsgTDI2MDd9ZWxzZXt0PUM7dT1EO3Y9Qn19aWYoKHp8MCk9
PTIyNDMpe2Nbaz4+Ml09dDtMMjYzMTpkb3tpZigodXwwKT09KGNbZz4+Ml18MCkpe0g9dX1lbHNl
e3Y9dDtyPXU7TDI2MzI6d2hpbGUoMSl7bz1iQihjW3M+PjJdfDApfDA7RT1rYyh2LHIseC1yfDAs
bil8MDtpZigob3wwKSE9MCl7YkIob3wwKXwwfXN3aXRjaChFfDApe2Nhc2UgMDp7ST1yKzF8MDti
cmVha307Y2FzZS0xOnt6PTIyNTQ7YnJlYWsgTDI2MzI7YnJlYWt9O2Nhc2UtMjp7ej0yMjU1O2Jy
ZWFrIEwyNjMyO2JyZWFrfTtkZWZhdWx0OntJPXIrRXwwfX1FPShjW2s+PjJdfDApKzR8MDtjW2s+
PjJdPUU7aWYoKEl8MCk9PShjW2c+PjJdfDApKXtIPUk7YnJlYWsgTDI2MzF9ZWxzZXt2PUU7cj1J
fX1pZigoenwwKT09MjI1NCl7Y1tnPj4yXT1yO0E9MjtpPWw7cmV0dXJuIEF8MH1lbHNlIGlmKCh6
fDApPT0yMjU1KXtjW2c+PjJdPXI7QT0xO2k9bDtyZXR1cm4gQXwwfX19d2hpbGUoMCk7Y1tnPj4y
XT1IO0E9KEh8MCkhPShmfDApfDA7aT1sO3JldHVybiBBfDB9ZWxzZSBpZigoenwwKT09MjI3NSl7
cT1jW2c+PjJdfDA7YnJlYWt9ZWxzZSBpZigoenwwKT09MjI3OCl7aT1sO3JldHVybiBBfDB9ZWxz
ZSBpZigoenwwKT09MjI4Mil7aT1sO3JldHVybiBBfDB9fX13aGlsZSgwKTtBPShxfDApIT0oZnww
KXwwO2k9bDtyZXR1cm4gQXwwfWZ1bmN0aW9uIGpkKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7Zz1nfDA7dmFyIGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2g9aTtpPWkrOHwwO2Nb
Zz4+Ml09ZTtlPWh8MDtqPWJCKGNbYis4Pj4yXXwwKXwwO2I9a2coZSwwLGQpfDA7aWYoKGp8MCkh
PTApe2JCKGp8MCl8MH1zd2l0Y2goYnwwKXtjYXNlLTE6Y2FzZSAwOntrPTI7aT1oO3JldHVybiBr
fDB9O2RlZmF1bHQ6e319aj1iLTF8MDtiPWNbZz4+Ml18MDtpZihqPj4+MD4oZi1ifDApPj4+MCl7
az0xO2k9aDtyZXR1cm4ga3wwfWlmKChqfDApPT0wKXtrPTA7aT1oO3JldHVybiBrfDB9ZWxzZXts
PWo7bT1lO249Yn13aGlsZSgxKXtiPWFbbV18MDtjW2c+PjJdPW4rMTthW25dPWI7Yj1sLTF8MDtp
ZigoYnwwKT09MCl7az0wO2JyZWFrfWw9YjttPW0rMXwwO249Y1tnPj4yXXwwfWk9aDtyZXR1cm4g
a3wwfWZ1bmN0aW9uIGplKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAsZz0wO2I9YSs4fDA7
YT1iQihjW2I+PjJdfDApfDA7ZD1rZigwLDAsMSl8MDtpZigoYXwwKSE9MCl7YkIoYXwwKXwwfWlm
KChkfDApIT0wKXtlPS0xO3JldHVybiBlfDB9ZD1jW2I+PjJdfDA7aWYoKGR8MCk9PTApe2U9MTty
ZXR1cm4gZXwwfWU9YkIoZHwwKXwwO2Q9YmQoKXwwO2lmKChlfDApPT0wKXtmPShkfDApPT0xO2c9
ZiYxO3JldHVybiBnfDB9YkIoZXwwKXwwO2Y9KGR8MCk9PTE7Zz1mJjE7cmV0dXJuIGd8MH1mdW5j
dGlvbiBqZihhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAs
aD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MDtpZigoZnwwKT09MHwoZHwwKT09KGV8MCkp
e2c9MDtyZXR1cm4gZ3wwfWg9ZTtpPWErOHwwO2E9ZDtkPTA7aj0wO0wyNjkzOndoaWxlKDEpe2s9
YkIoY1tpPj4yXXwwKXwwO2w9a2IoYSxoLWF8MCxiKXwwO2lmKChrfDApIT0wKXtiQihrfDApfDB9
c3dpdGNoKGx8MCl7Y2FzZSAwOnttPTE7bj1hKzF8MDticmVha307Y2FzZS0xOmNhc2UtMjp7Zz1k
O289MjM0MzticmVhayBMMjY5MzticmVha307ZGVmYXVsdDp7bT1sO249YStsfDB9fWw9bStkfDA7
az1qKzF8MDtpZihrPj4+MD49Zj4+PjB8KG58MCk9PShlfDApKXtnPWw7bz0yMzQ1O2JyZWFrfWVs
c2V7YT1uO2Q9bDtqPWt9fWlmKChvfDApPT0yMzQ1KXtyZXR1cm4gZ3wwfWVsc2UgaWYoKG98MCk9
PTIzNDMpe3JldHVybiBnfDB9cmV0dXJuIDB9ZnVuY3Rpb24gamcoYSl7YT1hfDA7dmFyIGI9MCxk
PTAsZT0wO2I9Y1thKzg+PjJdfDA7ZG97aWYoKGJ8MCk9PTApe2Q9MX1lbHNle2E9YkIoYnwwKXww
O2U9YmQoKXwwO2lmKChhfDApPT0wKXtkPWU7YnJlYWt9YkIoYXwwKXwwO2Q9ZX19d2hpbGUoMCk7
cmV0dXJuIGR8MH1mdW5jdGlvbiBqaChhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2NbZj4+Ml09ZDtyZXR1cm4gM31mdW5jdGlvbiBqaShhKXthPWF8MDtyZXR1cm4gMH1m
dW5jdGlvbiBqaihhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBqayhhKXthPWF8MDtyZXR1cm4g
NH1mdW5jdGlvbiBqbChkLGYsZyxoLGksaixrLGwpe2Q9ZHwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9
aXwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtjW2c+PjJd
PWQ7Y1tqPj4yXT1oO2Rve2lmKChsJjJ8MCkhPTApe2lmKChpLWh8MCk8Myl7bT0xO3JldHVybiBt
fDB9ZWxzZXtjW2o+PjJdPWgrMTthW2hdPS0xNztkPWNbaj4+Ml18MDtjW2o+PjJdPWQrMTthW2Rd
PS02OTtkPWNbaj4+Ml18MDtjW2o+PjJdPWQrMTthW2RdPS02NTticmVha319fXdoaWxlKDApO2g9
ZjtsPWNbZz4+Ml18MDtpZihsPj4+MD49Zj4+PjApe209MDtyZXR1cm4gbXwwfWQ9aTtpPWw7TDI3
Mjc6d2hpbGUoMSl7bD1iW2k+PjFdfDA7bj1sJjY1NTM1O2lmKG4+Pj4wPms+Pj4wKXttPTI7bz0y
Mzk5O2JyZWFrfWRve2lmKChsJjY1NTM1KTwxMjgpe3A9Y1tqPj4yXXwwO2lmKChkLXB8MCk8MSl7
bT0xO289MjM4ODticmVhayBMMjcyN31jW2o+PjJdPXArMTthW3BdPWwmMjU1fWVsc2V7aWYoKGwm
NjU1MzUpPDIwNDgpe3A9Y1tqPj4yXXwwO2lmKChkLXB8MCk8Mil7bT0xO289MjM4OTticmVhayBM
MjcyN31jW2o+PjJdPXArMTthW3BdPShuPj4+NnwxOTIpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJd
PXArMTthW3BdPShuJjYzfDEyOCkmMjU1O2JyZWFrfWlmKChsJjY1NTM1KTw1NTI5Nil7cD1jW2o+
PjJdfDA7aWYoKGQtcHwwKTwzKXttPTE7bz0yMzk3O2JyZWFrIEwyNzI3fWNbaj4+Ml09cCsxO2Fb
cF09KG4+Pj4xMnwyMjQpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJdPXArMTthW3BdPShuPj4+NiY2
M3wxMjgpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJdPXArMTthW3BdPShuJjYzfDEyOCkmMjU1O2Jy
ZWFrfWlmKChsJjY1NTM1KT49NTYzMjApe2lmKChsJjY1NTM1KTw1NzM0NCl7bT0yO289MjM5Mzti
cmVhayBMMjcyN31wPWNbaj4+Ml18MDtpZigoZC1wfDApPDMpe209MTtvPTIzOTQ7YnJlYWsgTDI3
Mjd9Y1tqPj4yXT1wKzE7YVtwXT0obj4+PjEyfDIyNCkmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+Ml09
cCsxO2FbcF09KG4+Pj42JjYzfDEyOCkmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCsxO2FbcF09
KG4mNjN8MTI4KSYyNTU7YnJlYWt9aWYoKGgtaXwwKTw0KXttPTE7bz0yMzkxO2JyZWFrIEwyNzI3
fXA9aSsyfDA7cT1lW3A+PjFdfDA7aWYoKHEmNjQ1MTJ8MCkhPTU2MzIwKXttPTI7bz0yMzkyO2Jy
ZWFrIEwyNzI3fWlmKChkLShjW2o+PjJdfDApfDApPDQpe209MTtvPTIzOTg7YnJlYWsgTDI3Mjd9
cj1uJjk2MDtpZigoKHI8PDEwKSs2NTUzNnxuPDwxMCY2NDUxMnxxJjEwMjMpPj4+MD5rPj4+MCl7
bT0yO289MjQwMDticmVhayBMMjcyN31jW2c+PjJdPXA7cD0ocj4+PjYpKzF8MDtyPWNbaj4+Ml18
MDtjW2o+PjJdPXIrMTthW3JdPShwPj4+MnwyNDApJjI1NTtyPWNbaj4+Ml18MDtjW2o+PjJdPXIr
MTthW3JdPShuPj4+MiYxNXxwPDw0JjQ4fDEyOCkmMjU1O3A9Y1tqPj4yXXwwO2Nbaj4+Ml09cCsx
O2FbcF09KG48PDQmNDh8cT4+PjYmMTV8MTI4KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7
YVtwXT0ocSY2M3wxMjgpJjI1NX19d2hpbGUoMCk7bj0oY1tnPj4yXXwwKSsyfDA7Y1tnPj4yXT1u
O2lmKG4+Pj4wPGY+Pj4wKXtpPW59ZWxzZXttPTA7bz0yMzk1O2JyZWFrfX1pZigob3wwKT09MjM4
OSl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzkzKXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98
MCk9PTIzOTQpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjQwMCl7cmV0dXJuIG18MH1lbHNl
IGlmKChvfDApPT0yMzg4KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTEpe3JldHVybiBt
fDB9ZWxzZSBpZigob3wwKT09MjM5Mil7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzk1KXty
ZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTcpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09
MjM5OCl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzk5KXtyZXR1cm4gbXwwfXJldHVybiAw
fWZ1bmN0aW9uIGptKGUsZixnLGgsaSxqLGssbCl7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1p
fDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MDtjW2c+PjJdPWU7Y1tqPj4yXT1oO2g9Y1tnPj4yXXwwO2Rve2lm
KChsJjR8MCk9PTApe209aH1lbHNle2lmKChmLWh8MCk8PTIpe209aDticmVha31pZigoYVtoXXww
KSE9LTE3KXttPWg7YnJlYWt9aWYoKGFbaCsxfDBdfDApIT0tNjkpe209aDticmVha31pZigoYVto
KzJ8MF18MCkhPS02NSl7bT1oO2JyZWFrfWU9aCszfDA7Y1tnPj4yXT1lO209ZX19d2hpbGUoMCk7
TDI3NzI6ZG97aWYobT4+PjA8Zj4+PjApe2g9ZjtsPWk7ZT1jW2o+PjJdfDA7bj1tO0wyNzc0Ondo
aWxlKDEpe2lmKGU+Pj4wPj1pPj4+MCl7bz1uO2JyZWFrIEwyNzcyfXA9YVtuXXwwO3E9cCYyNTU7
aWYocT4+PjA+az4+PjApe3I9MjtzPTI0NDQ7YnJlYWt9ZG97aWYocDw8MjQ+PjI0Pi0xKXtiW2U+
PjFdPXAmMjU1O2NbZz4+Ml09KGNbZz4+Ml18MCkrMX1lbHNle2lmKChwJjI1NSk8MTk0KXtyPTI7
cz0yNDUzO2JyZWFrIEwyNzc0fWlmKChwJjI1NSk8MjI0KXtpZigoaC1ufDApPDIpe3I9MTtzPTI0
NTQ7YnJlYWsgTDI3NzR9dD1kW24rMXwwXXwwO2lmKCh0JjE5MnwwKSE9MTI4KXtyPTI7cz0yNDU1
O2JyZWFrIEwyNzc0fXU9dCY2M3xxPDw2JjE5ODQ7aWYodT4+PjA+az4+PjApe3I9MjtzPTI0NTY7
YnJlYWsgTDI3NzR9YltlPj4xXT11JjY1NTM1O2NbZz4+Ml09KGNbZz4+Ml18MCkrMjticmVha31p
ZigocCYyNTUpPDI0MCl7aWYoKGgtbnwwKTwzKXtyPTE7cz0yNDU3O2JyZWFrIEwyNzc0fXU9YVtu
KzF8MF18MDtzd2l0Y2gocXwwKXtjYXNlIDIyNDp7aWYoKHUmLTMyKTw8MjQ+PjI0IT0tOTYpe3I9
MjtzPTI0NTA7YnJlYWsgTDI3NzR9YnJlYWt9O2Nhc2UgMjM3OntpZigodSYtMzIpPDwyND4+MjQh
PS0xMjgpe3I9MjtzPTI0NTI7YnJlYWsgTDI3NzR9YnJlYWt9O2RlZmF1bHQ6e2lmKCh1Ji02NCk8
PDI0Pj4yNCE9LTEyOCl7cj0yO3M9MjQ2MjticmVhayBMMjc3NH19fXQ9ZFtuKzJ8MF18MDtpZigo
dCYxOTJ8MCkhPTEyOCl7cj0yO3M9MjQ0MzticmVhayBMMjc3NH12PSh1JjI1NSk8PDYmNDAzMnxx
PDwxMnx0JjYzO2lmKCh2JjY1NTM1KT4+PjA+az4+PjApe3I9MjtzPTI0NDI7YnJlYWsgTDI3NzR9
YltlPj4xXT12JjY1NTM1O2NbZz4+Ml09KGNbZz4+Ml18MCkrMzticmVha31pZigocCYyNTUpPj0y
NDUpe3I9MjtzPTI0NDc7YnJlYWsgTDI3NzR9aWYoKGgtbnwwKTw0KXtyPTE7cz0yNDU4O2JyZWFr
IEwyNzc0fXY9YVtuKzF8MF18MDtzd2l0Y2gocXwwKXtjYXNlIDI0MDp7aWYoKHYrMTEyJjI1NSk+
PTQ4KXtyPTI7cz0yNDQ4O2JyZWFrIEwyNzc0fWJyZWFrfTtjYXNlIDI0NDp7aWYoKHYmLTE2KTw8
MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDU5O2JyZWFrIEwyNzc0fWJyZWFrfTtkZWZhdWx0OntpZigo
diYtNjQpPDwyND4+MjQhPS0xMjgpe3I9MjtzPTI0NjA7YnJlYWsgTDI3NzR9fX10PWRbbisyfDBd
fDA7aWYoKHQmMTkyfDApIT0xMjgpe3I9MjtzPTI0NjE7YnJlYWsgTDI3NzR9dT1kW24rM3wwXXww
O2lmKCh1JjE5MnwwKSE9MTI4KXtyPTI7cz0yNDQ5O2JyZWFrIEwyNzc0fWlmKChsLWV8MCk8NCl7
cj0xO3M9MjQ0NTticmVhayBMMjc3NH13PXEmNzt4PXYmMjU1O3Y9dDw8Njt5PXUmNjM7aWYoKHg8
PDEyJjI1ODA0OHx3PDwxOHx2JjQwMzJ8eSk+Pj4wPms+Pj4wKXtyPTI7cz0yNDQ2O2JyZWFrIEwy
Nzc0fWJbZT4+MV09KHg8PDImNjB8dD4+PjQmM3woKHg+Pj40JjN8dzw8Mik8PDYpKzE2MzIwfDU1
Mjk2KSY2NTUzNTt3PShjW2o+PjJdfDApKzJ8MDtjW2o+PjJdPXc7Ylt3Pj4xXT0oeXx2Jjk2MHw1
NjMyMCkmNjU1MzU7Y1tnPj4yXT0oY1tnPj4yXXwwKSs0fX13aGlsZSgwKTtxPShjW2o+PjJdfDAp
KzJ8MDtjW2o+PjJdPXE7cD1jW2c+PjJdfDA7aWYocD4+PjA8Zj4+PjApe2U9cTtuPXB9ZWxzZXtv
PXA7YnJlYWsgTDI3NzJ9fWlmKChzfDApPT0yNDQyKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9
PTI0NDMpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ0NCl7cmV0dXJuIHJ8MH1lbHNlIGlm
KChzfDApPT0yNDQ4KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDkpe3JldHVybiByfDB9
ZWxzZSBpZigoc3wwKT09MjQ1MCl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ1KXtyZXR1
cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDYpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ0
Nyl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDU2KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8
MCk9PTI0NTcpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1OCl7cmV0dXJuIHJ8MH1lbHNl
IGlmKChzfDApPT0yNDU5KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NjApe3JldHVybiBy
fDB9ZWxzZSBpZigoc3wwKT09MjQ2MSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDYyKXty
ZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTIpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09
MjQ1Myl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDU0KXtyZXR1cm4gcnwwfWVsc2UgaWYo
KHN8MCk9PTI0NTUpe3JldHVybiByfDB9fWVsc2V7bz1tfX13aGlsZSgwKTtyPW8+Pj4wPGY+Pj4w
fDA7cmV0dXJuIHJ8MH1mdW5jdGlvbiBqbihiLGMsZSxmLGcpe2I9YnwwO2M9Y3wwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO3ZhciBoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MDtkb3tpZigoZyY0fDApPT0wKXtoPWJ9ZWxzZXtpZigoYy1ifDApPD0y
KXtoPWI7YnJlYWt9aWYoKGFbYl18MCkhPS0xNyl7aD1iO2JyZWFrfWlmKChhW2IrMXwwXXwwKSE9
LTY5KXtoPWI7YnJlYWt9aD0oYVtiKzJ8MF18MCk9PS02NT9iKzN8MDpifX13aGlsZSgwKTtMMjg0
MTpkb3tpZihoPj4+MDxjPj4+MCYoZXwwKSE9MCl7Zz1jO2k9MDtqPWg7TDI4NDM6d2hpbGUoMSl7
az1hW2pdfDA7bD1rJjI1NTtpZihsPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwyODQxfWRve2lmKGs8
PDI0Pj4yND4tMSl7bj1qKzF8MDtvPWl9ZWxzZXtpZigoayYyNTUpPDE5NCl7bT1qO2JyZWFrIEwy
ODQxfWlmKChrJjI1NSk8MjI0KXtpZigoZy1qfDApPDIpe209ajticmVhayBMMjg0MX1wPWRbaisx
fDBdfDA7aWYoKHAmMTkyfDApIT0xMjgpe209ajticmVhayBMMjg0MX1pZigocCY2M3xsPDw2JjE5
ODQpPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwyODQxfW49aisyfDA7bz1pO2JyZWFrfWlmKChrJjI1
NSk8MjQwKXtxPWo7aWYoKGctcXwwKTwzKXttPWo7YnJlYWsgTDI4NDF9cD1hW2orMXwwXXwwO3N3
aXRjaChsfDApe2Nhc2UgMjI0OntpZigocCYtMzIpPDwyND4+MjQhPS05Nil7cj0yNDgzO2JyZWFr
IEwyODQzfWJyZWFrfTtjYXNlIDIzNzp7aWYoKHAmLTMyKTw8MjQ+PjI0IT0tMTI4KXtyPTI0ODU7
YnJlYWsgTDI4NDN9YnJlYWt9O2RlZmF1bHQ6e2lmKChwJi02NCk8PDI0Pj4yNCE9LTEyOCl7cj0y
NDg3O2JyZWFrIEwyODQzfX19cz1kW2orMnwwXXwwO2lmKChzJjE5MnwwKSE9MTI4KXttPWo7YnJl
YWsgTDI4NDF9aWYoKChwJjI1NSk8PDYmNDAzMnxsPDwxMiY2MTQ0MHxzJjYzKT4+PjA+Zj4+PjAp
e209ajticmVhayBMMjg0MX1uPWorM3wwO289aTticmVha31pZigoayYyNTUpPj0yNDUpe209ajti
cmVhayBMMjg0MX10PWo7aWYoKGctdHwwKTw0KXttPWo7YnJlYWsgTDI4NDF9aWYoKGUtaXwwKT4+
PjA8Mil7bT1qO2JyZWFrIEwyODQxfXM9YVtqKzF8MF18MDtzd2l0Y2gobHwwKXtjYXNlIDI0MDp7
aWYoKHMrMTEyJjI1NSk+PTQ4KXtyPTI0OTY7YnJlYWsgTDI4NDN9YnJlYWt9O2Nhc2UgMjQ0Ontp
ZigocyYtMTYpPDwyND4+MjQhPS0xMjgpe3I9MjQ5ODticmVhayBMMjg0M31icmVha307ZGVmYXVs
dDp7aWYoKHMmLTY0KTw8MjQ+PjI0IT0tMTI4KXtyPTI1MDA7YnJlYWsgTDI4NDN9fX1wPWRbaisy
fDBdfDA7aWYoKHAmMTkyfDApIT0xMjgpe209ajticmVhayBMMjg0MX11PWRbaiszfDBdfDA7aWYo
KHUmMTkyfDApIT0xMjgpe209ajticmVhayBMMjg0MX1pZigoKHMmMjU1KTw8MTImMjU4MDQ4fGw8
PDE4JjE4MzUwMDh8cDw8NiY0MDMyfHUmNjMpPj4+MD5mPj4+MCl7bT1qO2JyZWFrIEwyODQxfW49
ais0fDA7bz1pKzF8MH19d2hpbGUoMCk7bD1vKzF8MDtpZihuPj4+MDxjPj4+MCZsPj4+MDxlPj4+
MCl7aT1sO2o9bn1lbHNle209bjticmVhayBMMjg0MX19aWYoKHJ8MCk9PTI1MDApe3Y9dC1ifDA7
cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDApPT0yNDk2KXt2PXQtYnwwO3JldHVybiB2fDB9ZWxzZSBp
ZigocnwwKT09MjQ5OCl7dj10LWJ8MDtyZXR1cm4gdnwwfWVsc2UgaWYoKHJ8MCk9PTI0ODMpe3Y9
cS1ifDA7cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDApPT0yNDg1KXt2PXEtYnwwO3JldHVybiB2fDB9
ZWxzZSBpZigocnwwKT09MjQ4Nyl7dj1xLWJ8MDtyZXR1cm4gdnwwfX1lbHNle209aH19d2hpbGUo
MCk7dj1tLWJ8MDtyZXR1cm4gdnwwfWZ1bmN0aW9uIGpvKGEsYixkLGUsZixnLGgsail7YT1hfDA7
Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTA7Yj1p
O2k9aSsxNnwwO2E9YnwwO2s9Yis4fDA7Y1thPj4yXT1kO2Nbaz4+Ml09ZztsPWptKGQsZSxhLGcs
aCxrLDExMTQxMTEsMCl8MDtjW2Y+PjJdPWQrKChjW2E+PjJdfDApLWQpO2Nbaj4+Ml09ZysoKGNb
az4+Ml18MCktZz4+MTw8MSk7aT1iO3JldHVybiBsfDB9ZnVuY3Rpb24ganAoYSxiLGMsZCxlKXth
PWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtyZXR1cm4gam4oYyxkLGUsMTExNDExMSwwKXww
fWZ1bmN0aW9uIGpxKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGpyKGEs
YixkLGUsZixnLGgsail7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aj1qfDA7dmFyIGs9MCxsPTA7Yj1pO2k9aSsxNnwwO2E9YnwwO2s9Yis4fDA7Y1thPj4yXT1kO2Nb
az4+Ml09ZztsPWp3KGQsZSxhLGcsaCxrLDExMTQxMTEsMCl8MDtjW2Y+PjJdPWQrKChjW2E+PjJd
fDApLWQ+PjI8PDIpO2Nbaj4+Ml09ZysoKGNbaz4+Ml18MCktZyk7aT1iO3JldHVybiBsfDB9ZnVu
Y3Rpb24ganMoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtjW2Y+PjJd
PWQ7cmV0dXJuIDN9ZnVuY3Rpb24ganQoYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24ganUoYSl7
YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24ganYoYSl7YT1hfDA7cmV0dXJuIDR9ZnVuY3Rpb24ganco
YixkLGUsZixnLGgsaSxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8
MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wO2NbZT4+Ml09YjtjW2g+PjJdPWY7ZG97aWYoKGom
MnwwKSE9MCl7aWYoKGctZnwwKTwzKXtrPTE7cmV0dXJuIGt8MH1lbHNle2NbaD4+Ml09ZisxO2Fb
Zl09LTE3O2I9Y1toPj4yXXwwO2NbaD4+Ml09YisxO2FbYl09LTY5O2I9Y1toPj4yXXwwO2NbaD4+
Ml09YisxO2FbYl09LTY1O2JyZWFrfX19d2hpbGUoMCk7Zj1jW2U+PjJdfDA7aWYoZj4+PjA+PWQ+
Pj4wKXtrPTA7cmV0dXJuIGt8MH1qPWc7Zz1mO0wyOTEyOndoaWxlKDEpe2Y9Y1tnPj4yXXwwO2lm
KChmJi0yMDQ4fDApPT01NTI5NnxmPj4+MD5pPj4+MCl7az0yO2w9MjU0ODticmVha31kb3tpZihm
Pj4+MDwxMjgpe2I9Y1toPj4yXXwwO2lmKChqLWJ8MCk8MSl7az0xO2w9MjU0NDticmVhayBMMjkx
Mn1jW2g+PjJdPWIrMTthW2JdPWYmMjU1fWVsc2V7aWYoZj4+PjA8MjA0OCl7Yj1jW2g+PjJdfDA7
aWYoKGotYnwwKTwyKXtrPTE7bD0yNTQ3O2JyZWFrIEwyOTEyfWNbaD4+Ml09YisxO2FbYl09KGY+
Pj42fDE5MikmMjU1O2I9Y1toPj4yXXwwO2NbaD4+Ml09YisxO2FbYl09KGYmNjN8MTI4KSYyNTU7
YnJlYWt9Yj1jW2g+PjJdfDA7bT1qLWJ8MDtpZihmPj4+MDw2NTUzNil7aWYoKG18MCk8Myl7az0x
O2w9MjU0OTticmVhayBMMjkxMn1jW2g+PjJdPWIrMTthW2JdPShmPj4+MTJ8MjI0KSYyNTU7bj1j
W2g+PjJdfDA7Y1toPj4yXT1uKzE7YVtuXT0oZj4+PjYmNjN8MTI4KSYyNTU7bj1jW2g+PjJdfDA7
Y1toPj4yXT1uKzE7YVtuXT0oZiY2M3wxMjgpJjI1NTticmVha31lbHNle2lmKChtfDApPDQpe2s9
MTtsPTI1NDI7YnJlYWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjE4fDI0MCkmMjU1O2I9
Y1toPj4yXXwwO2NbaD4+Ml09YisxO2FbYl09KGY+Pj4xMiY2M3wxMjgpJjI1NTtiPWNbaD4+Ml18
MDtjW2g+PjJdPWIrMTthW2JdPShmPj4+NiY2M3wxMjgpJjI1NTtiPWNbaD4+Ml18MDtjW2g+PjJd
PWIrMTthW2JdPShmJjYzfDEyOCkmMjU1O2JyZWFrfX19d2hpbGUoMCk7Zj0oY1tlPj4yXXwwKSs0
fDA7Y1tlPj4yXT1mO2lmKGY+Pj4wPGQ+Pj4wKXtnPWZ9ZWxzZXtrPTA7bD0yNTQzO2JyZWFrfX1p
ZigobHwwKT09MjU0Myl7cmV0dXJuIGt8MH1lbHNlIGlmKChsfDApPT0yNTQyKXtyZXR1cm4ga3ww
fWVsc2UgaWYoKGx8MCk9PTI1NDQpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0OCl7cmV0
dXJuIGt8MH1lbHNlIGlmKChsfDApPT0yNTQ5KXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8MCk9PTI1
NDcpe3JldHVybiBrfDB9cmV0dXJuIDB9ZnVuY3Rpb24gangoYixlLGYsZyxoLGksaixrKXtiPWJ8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2NbZj4+Ml09YjtjW2k+PjJdPWc7Zz1jW2Y+
PjJdfDA7ZG97aWYoKGsmNHwwKT09MCl7bD1nfWVsc2V7aWYoKGUtZ3wwKTw9Mil7bD1nO2JyZWFr
fWlmKChhW2ddfDApIT0tMTcpe2w9ZzticmVha31pZigoYVtnKzF8MF18MCkhPS02OSl7bD1nO2Jy
ZWFrfWlmKChhW2crMnwwXXwwKSE9LTY1KXtsPWc7YnJlYWt9Yj1nKzN8MDtjW2Y+PjJdPWI7bD1i
fX13aGlsZSgwKTtMMjk0NDpkb3tpZihsPj4+MDxlPj4+MCl7Zz1lO2s9Y1tpPj4yXXwwO2I9bDtM
Mjk0Njp3aGlsZSgxKXtpZihrPj4+MD49aD4+PjApe209YjticmVhayBMMjk0NH1uPWFbYl18MDtv
PW4mMjU1O2Rve2lmKG48PDI0Pj4yND4tMSl7aWYobz4+PjA+aj4+PjApe3A9MjtxPTI2MDk7YnJl
YWsgTDI5NDZ9Y1trPj4yXT1vO2NbZj4+Ml09KGNbZj4+Ml18MCkrMX1lbHNle2lmKChuJjI1NSk8
MTk0KXtwPTI7cT0yNjAyO2JyZWFrIEwyOTQ2fWlmKChuJjI1NSk8MjI0KXtpZigoZy1ifDApPDIp
e3A9MTtxPTI2MDU7YnJlYWsgTDI5NDZ9cj1kW2IrMXwwXXwwO2lmKChyJjE5MnwwKSE9MTI4KXtw
PTI7cT0yNTk4O2JyZWFrIEwyOTQ2fXM9ciY2M3xvPDw2JjE5ODQ7aWYocz4+PjA+aj4+PjApe3A9
MjtxPTI2MDQ7YnJlYWsgTDI5NDZ9Y1trPj4yXT1zO2NbZj4+Ml09KGNbZj4+Ml18MCkrMjticmVh
a31pZigobiYyNTUpPDI0MCl7aWYoKGctYnwwKTwzKXtwPTE7cT0yNjA2O2JyZWFrIEwyOTQ2fXM9
YVtiKzF8MF18MDtzd2l0Y2gob3wwKXtjYXNlIDIyNDp7aWYoKHMmLTMyKTw8MjQ+PjI0IT0tOTYp
e3A9MjtxPTI1OTE7YnJlYWsgTDI5NDZ9YnJlYWt9O2Nhc2UgMjM3OntpZigocyYtMzIpPDwyND4+
MjQhPS0xMjgpe3A9MjtxPTI1OTM7YnJlYWsgTDI5NDZ9YnJlYWt9O2RlZmF1bHQ6e2lmKChzJi02
NCk8PDI0Pj4yNCE9LTEyOCl7cD0yO3E9MjYwMzticmVhayBMMjk0Nn19fXI9ZFtiKzJ8MF18MDtp
ZigociYxOTJ8MCkhPTEyOCl7cD0yO3E9MjU5NDticmVhayBMMjk0Nn10PShzJjI1NSk8PDYmNDAz
MnxvPDwxMiY2MTQ0MHxyJjYzO2lmKHQ+Pj4wPmo+Pj4wKXtwPTI7cT0yNTkyO2JyZWFrIEwyOTQ2
fWNbaz4+Ml09dDtjW2Y+PjJdPShjW2Y+PjJdfDApKzM7YnJlYWt9aWYoKG4mMjU1KT49MjQ1KXtw
PTI7cT0yNjA3O2JyZWFrIEwyOTQ2fWlmKChnLWJ8MCk8NCl7cD0xO3E9MjYwODticmVhayBMMjk0
Nn10PWFbYisxfDBdfDA7c3dpdGNoKG98MCl7Y2FzZSAyNDA6e2lmKCh0KzExMiYyNTUpPj00OCl7
cD0yO3E9MjU5MDticmVhayBMMjk0Nn1icmVha307Y2FzZSAyNDQ6e2lmKCh0Ji0xNik8PDI0Pj4y
NCE9LTEyOCl7cD0yO3E9MjU5NjticmVhayBMMjk0Nn1icmVha307ZGVmYXVsdDp7aWYoKHQmLTY0
KTw8MjQ+PjI0IT0tMTI4KXtwPTI7cT0yNTk3O2JyZWFrIEwyOTQ2fX19cj1kW2IrMnwwXXwwO2lm
KChyJjE5MnwwKSE9MTI4KXtwPTI7cT0yNTk5O2JyZWFrIEwyOTQ2fXM9ZFtiKzN8MF18MDtpZigo
cyYxOTJ8MCkhPTEyOCl7cD0yO3E9MjYwMTticmVhayBMMjk0Nn11PSh0JjI1NSk8PDEyJjI1ODA0
OHxvPDwxOCYxODM1MDA4fHI8PDYmNDAzMnxzJjYzO2lmKHU+Pj4wPmo+Pj4wKXtwPTI7cT0yNjAw
O2JyZWFrIEwyOTQ2fWNbaz4+Ml09dTtjW2Y+PjJdPShjW2Y+PjJdfDApKzR9fXdoaWxlKDApO289
KGNbaT4+Ml18MCkrNHwwO2NbaT4+Ml09bztuPWNbZj4+Ml18MDtpZihuPj4+MDxlPj4+MCl7az1v
O2I9bn1lbHNle209bjticmVhayBMMjk0NH19aWYoKHF8MCk9PTI1OTcpe3JldHVybiBwfDB9ZWxz
ZSBpZigocXwwKT09MjU5OCl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTk5KXtyZXR1cm4g
cHwwfWVsc2UgaWYoKHF8MCk9PTI2MDApe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5Myl7
cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTk0KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9
PTI1OTYpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwNSl7cmV0dXJuIHB8MH1lbHNlIGlm
KChxfDApPT0yNjA2KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDcpe3JldHVybiBwfDB9
ZWxzZSBpZigocXwwKT09MjYwOCl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA5KXtyZXR1
cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTApe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5
MSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTkyKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8
MCk9PTI2MDEpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjYwMil7cmV0dXJuIHB8MH1lbHNl
IGlmKChxfDApPT0yNjAzKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDQpe3JldHVybiBw
fDB9fWVsc2V7bT1sfX13aGlsZSgwKTtwPW0+Pj4wPGU+Pj4wfDA7cmV0dXJuIHB8MH1mdW5jdGlv
biBqeShiLGMsZSxmLGcpe2I9YnwwO2M9Y3wwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaT0w
LGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2Rve2lmKChn
JjR8MCk9PTApe2g9Yn1lbHNle2lmKChjLWJ8MCk8PTIpe2g9YjticmVha31pZigoYVtiXXwwKSE9
LTE3KXtoPWI7YnJlYWt9aWYoKGFbYisxfDBdfDApIT0tNjkpe2g9YjticmVha31oPShhW2IrMnww
XXwwKT09LTY1P2IrM3wwOmJ9fXdoaWxlKDApO0wzMDExOmRve2lmKGg+Pj4wPGM+Pj4wJihlfDAp
IT0wKXtnPWM7aT0xO2o9aDtMMzAxMzp3aGlsZSgxKXtrPWFbal18MDtsPWsmMjU1O2Rve2lmKGs8
PDI0Pj4yND4tMSl7aWYobD4+PjA+Zj4+PjApe209ajticmVhayBMMzAxMX1uPWorMXwwfWVsc2V7
aWYoKGsmMjU1KTwxOTQpe209ajticmVhayBMMzAxMX1pZigoayYyNTUpPDIyNCl7aWYoKGctanww
KTwyKXttPWo7YnJlYWsgTDMwMTF9bz1kW2orMXwwXXwwO2lmKChvJjE5MnwwKSE9MTI4KXttPWo7
YnJlYWsgTDMwMTF9aWYoKG8mNjN8bDw8NiYxOTg0KT4+PjA+Zj4+PjApe209ajticmVhayBMMzAx
MX1uPWorMnwwO2JyZWFrfWlmKChrJjI1NSk8MjQwKXtwPWo7aWYoKGctcHwwKTwzKXttPWo7YnJl
YWsgTDMwMTF9bz1hW2orMXwwXXwwO3N3aXRjaChsfDApe2Nhc2UgMjI0OntpZigobyYtMzIpPDwy
ND4+MjQhPS05Nil7cT0yNjMwO2JyZWFrIEwzMDEzfWJyZWFrfTtjYXNlIDIzNzp7aWYoKG8mLTMy
KTw8MjQ+PjI0IT0tMTI4KXtxPTI2MzI7YnJlYWsgTDMwMTN9YnJlYWt9O2RlZmF1bHQ6e2lmKChv
Ji02NCk8PDI0Pj4yNCE9LTEyOCl7cT0yNjM0O2JyZWFrIEwzMDEzfX19cj1kW2orMnwwXXwwO2lm
KChyJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDMwMTF9aWYoKChvJjI1NSk8PDYmNDAzMnxsPDwx
MiY2MTQ0MHxyJjYzKT4+PjA+Zj4+PjApe209ajticmVhayBMMzAxMX1uPWorM3wwO2JyZWFrfWlm
KChrJjI1NSk+PTI0NSl7bT1qO2JyZWFrIEwzMDExfXM9ajtpZigoZy1zfDApPDQpe209ajticmVh
ayBMMzAxMX1yPWFbaisxfDBdfDA7c3dpdGNoKGx8MCl7Y2FzZSAyNDA6e2lmKChyKzExMiYyNTUp
Pj00OCl7cT0yNjQyO2JyZWFrIEwzMDEzfWJyZWFrfTtjYXNlIDI0NDp7aWYoKHImLTE2KTw8MjQ+
PjI0IT0tMTI4KXtxPTI2NDQ7YnJlYWsgTDMwMTN9YnJlYWt9O2RlZmF1bHQ6e2lmKChyJi02NCk8
PDI0Pj4yNCE9LTEyOCl7cT0yNjQ2O2JyZWFrIEwzMDEzfX19bz1kW2orMnwwXXwwO2lmKChvJjE5
MnwwKSE9MTI4KXttPWo7YnJlYWsgTDMwMTF9dD1kW2orM3wwXXwwO2lmKCh0JjE5MnwwKSE9MTI4
KXttPWo7YnJlYWsgTDMwMTF9aWYoKChyJjI1NSk8PDEyJjI1ODA0OHxsPDwxOCYxODM1MDA4fG88
PDYmNDAzMnx0JjYzKT4+PjA+Zj4+PjApe209ajticmVhayBMMzAxMX1uPWorNHwwfX13aGlsZSgw
KTtpZighKG4+Pj4wPGM+Pj4wJmk+Pj4wPGU+Pj4wKSl7bT1uO2JyZWFrIEwzMDExfWk9aSsxfDA7
aj1ufWlmKChxfDApPT0yNjQ0KXt1PXMtYnwwO3JldHVybiB1fDB9ZWxzZSBpZigocXwwKT09MjY0
Mil7dT1zLWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYoKHF8MCk9PTI2MzApe3U9cC1ifDA7cmV0dXJu
IHV8MH1lbHNlIGlmKChxfDApPT0yNjMyKXt1PXAtYnwwO3JldHVybiB1fDB9ZWxzZSBpZigocXww
KT09MjYzNCl7dT1wLWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYoKHF8MCk9PTI2NDYpe3U9cy1ifDA7
cmV0dXJuIHV8MH19ZWxzZXttPWh9fXdoaWxlKDApO3U9bS1ifDA7cmV0dXJuIHV8MH1mdW5jdGlv
biBqeihiKXtiPWJ8MDtyZXR1cm4gYVtiKzh8MF18MH1mdW5jdGlvbiBqQShhKXthPWF8MDtyZXR1
cm4gY1thKzg+PjJdfDB9ZnVuY3Rpb24gakIoYil7Yj1ifDA7cmV0dXJuIGFbYis5fDBdfDB9ZnVu
Y3Rpb24gakMoYSl7YT1hfDA7cmV0dXJuIGNbYSsxMj4+Ml18MH1mdW5jdGlvbiBqRChhLGIsZCxl
LGYsZyxoLGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anww
O3ZhciBrPTAsbD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2NbYT4+Ml09ZDtjW2s+PjJd
PWc7bD1qeChkLGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1kKygoY1thPj4yXXwwKS1k
KTtjW2o+PjJdPWcrKChjW2s+PjJdfDApLWc+PjI8PDIpO2k9YjtyZXR1cm4gbHwwfWZ1bmN0aW9u
IGpFKGEsYixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7cmV0dXJuIGp5KGMs
ZCxlLDExMTQxMTEsMCl8MH1mdW5jdGlvbiBqRihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVy
bn1mdW5jdGlvbiBqRyhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBqSChh
KXthPWF8MDtjW2E+PjJdPTMwMzI7ZFAoYSsxMnwwKTtkZShhfDApO2tTKGEpO3JldHVybn1mdW5j
dGlvbiBqSShhKXthPWF8MDtjW2E+PjJdPTMwMzI7ZFAoYSsxMnwwKTtkZShhfDApO3JldHVybn1m
dW5jdGlvbiBqSihhKXthPWF8MDtjW2E+PjJdPTI5ODQ7ZFAoYSsxNnwwKTtkZShhfDApO2tTKGEp
O3JldHVybn1mdW5jdGlvbiBqSyhhKXthPWF8MDtjW2E+PjJdPTI5ODQ7ZFAoYSsxNnwwKTtkZShh
fDApO3JldHVybn1mdW5jdGlvbiBqTChhLGIpe2E9YXwwO2I9YnwwO2RZKGEsYisxMnwwKTtyZXR1
cm59ZnVuY3Rpb24gak0oYSxiKXthPWF8MDtiPWJ8MDtkWShhLGIrMTZ8MCk7cmV0dXJufWZ1bmN0
aW9uIGpOKGEsYil7YT1hfDA7Yj1ifDA7ZFooYSwxMjg4LDQpO3JldHVybn1mdW5jdGlvbiBqTyhh
LGIpe2E9YXwwO2I9YnwwO2V4KGEsMTI2NCxrbSgxMjY0KXwwKTtyZXR1cm59ZnVuY3Rpb24galAo
YSxiKXthPWF8MDtiPWJ8MDtkWihhLDEyNTYsNSk7cmV0dXJufWZ1bmN0aW9uIGpRKGEsYil7YT1h
fDA7Yj1ifDA7ZXgoYSwxMjMyLGttKDEyMzIpfDApO3JldHVybn1mdW5jdGlvbiBqUihiKXtiPWJ8
MDt2YXIgZD0wO2lmKChhWzE2MzUyXXwwKSE9MCl7ZD1jWzM3MDJdfDA7cmV0dXJuIGR8MH1pZigo
YmMoMTYzNTIpfDApPT0wKXtkPWNbMzcwMl18MDtyZXR1cm4gZHwwfWRve2lmKChhWzE2MjMyXXww
KT09MCl7aWYoKGJjKDE2MjMyKXwwKT09MCl7YnJlYWt9ayQoMTEzNDQsMCwxNjgpO2EkKDI2Niww
LHV8MCl8MH19d2hpbGUoMCk7ZFEoMTEzNDQsMTUzNil8MDtkUSgxMTM1NiwxNTI4KXwwO2RRKDEx
MzY4LDE1MjApfDA7ZFEoMTEzODAsMTUwNCl8MDtkUSgxMTM5MiwxNDg4KXwwO2RRKDExNDA0LDE0
ODApfDA7ZFEoMTE0MTYsMTQ2NCl8MDtkUSgxMTQyOCwxNDU2KXwwO2RRKDExNDQwLDE0NDgpfDA7
ZFEoMTE0NTIsMTQ0MCl8MDtkUSgxMTQ2NCwxNDMyKXwwO2RRKDExNDc2LDE0MDApfDA7ZFEoMTE0
ODgsMTM5Mil8MDtkUSgxMTUwMCwxMzg0KXwwO2NbMzcwMl09MTEzNDQ7ZD1jWzM3MDJdfDA7cmV0
dXJuIGR8MH1mdW5jdGlvbiBqUyhiKXtiPWJ8MDt2YXIgZD0wO2lmKChhWzE2Mjk2XXwwKSE9MCl7
ZD1jWzM2ODBdfDA7cmV0dXJuIGR8MH1pZigoYmMoMTYyOTYpfDApPT0wKXtkPWNbMzY4MF18MDty
ZXR1cm4gZHwwfWRve2lmKChhWzE2MjA4XXwwKT09MCl7aWYoKGJjKDE2MjA4KXwwKT09MCl7YnJl
YWt9ayQoMTA2MDAsMCwxNjgpO2EkKDE0OCwwLHV8MCl8MH19d2hpbGUoMCk7ZWYoMTA2MDAsMTkx
Mil8MDtlZigxMDYxMiwxODgwKXwwO2VmKDEwNjI0LDE4NDgpfDA7ZWYoMTA2MzYsMTgwOCl8MDtl
ZigxMDY0OCwxNzY4KXwwO2VmKDEwNjYwLDE3MzYpfDA7ZWYoMTA2NzIsMTY5Nil8MDtlZigxMDY4
NCwxNjgwKXwwO2VmKDEwNjk2LDE2MjQpfDA7ZWYoMTA3MDgsMTYwOCl8MDtlZigxMDcyMCwxNTky
KXwwO2VmKDEwNzMyLDE1NzYpfDA7ZWYoMTA3NDQsMTU2MCl8MDtlZigxMDc1NiwxNTQ0KXwwO2Nb
MzY4MF09MTA2MDA7ZD1jWzM2ODBdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBqVChiKXtiPWJ8MDt2
YXIgZD0wO2lmKChhWzE2MzQ0XXwwKSE9MCl7ZD1jWzM3MDBdfDA7cmV0dXJuIGR8MH1pZigoYmMo
MTYzNDQpfDApPT0wKXtkPWNbMzcwMF18MDtyZXR1cm4gZHwwfWRve2lmKChhWzE2MjI0XXwwKT09
MCl7aWYoKGJjKDE2MjI0KXwwKT09MCl7YnJlYWt9ayQoMTEwNTYsMCwyODgpO2EkKDE3MCwwLHV8
MCl8MH19d2hpbGUoMCk7ZFEoMTEwNTYsMjg4KXwwO2RRKDExMDY4LDI3Mil8MDtkUSgxMTA4MCwy
NjQpfDA7ZFEoMTEwOTIsMjU2KXwwO2RRKDExMTA0LDI0OCl8MDtkUSgxMTExNiwyNDApfDA7ZFEo
MTExMjgsMjMyKXwwO2RRKDExMTQwLDIyNCl8MDtkUSgxMTE1MiwxNjgpfDA7ZFEoMTExNjQsMTYw
KXwwO2RRKDExMTc2LDE0NCl8MDtkUSgxMTE4OCwxMjgpfDA7ZFEoMTEyMDAsMTIwKXwwO2RRKDEx
MjEyLDExMil8MDtkUSgxMTIyNCwxMDQpfDA7ZFEoMTEyMzYsOTYpfDA7ZFEoMTEyNDgsMjQ4KXww
O2RRKDExMjYwLDg4KXwwO2RRKDExMjcyLDgwKXwwO2RRKDExMjg0LDE5NzYpfDA7ZFEoMTEyOTYs
MTk2OCl8MDtkUSgxMTMwOCwxOTYwKXwwO2RRKDExMzIwLDE5NTIpfDA7ZFEoMTEzMzIsMTk0NCl8
MDtjWzM3MDBdPTExMDU2O2Q9Y1szNzAwXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galUoYil7Yj1i
fDA7dmFyIGQ9MDtpZigoYVsxNjI4OF18MCkhPTApe2Q9Y1szNjc4XXwwO3JldHVybiBkfDB9aWYo
KGJjKDE2Mjg4KXwwKT09MCl7ZD1jWzM2NzhdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsxNjIwMF18
MCk9PTApe2lmKChiYygxNjIwMCl8MCk9PTApe2JyZWFrfWskKDEwMzEyLDAsMjg4KTthJCgxMjIs
MCx1fDApfDB9fXdoaWxlKDApO2VmKDEwMzEyLDgyNCl8MDtlZigxMDMyNCw3ODQpfDA7ZWYoMTAz
MzYsNzYwKXwwO2VmKDEwMzQ4LDczNil8MDtlZigxMDM2MCw0MjQpfDA7ZWYoMTAzNzIsNzEyKXww
O2VmKDEwMzg0LDY4OCl8MDtlZigxMDM5Niw2NTYpfDA7ZWYoMTA0MDgsNjE2KXwwO2VmKDEwNDIw
LDU4NCl8MDtlZigxMDQzMiw1NDQpfDA7ZWYoMTA0NDQsNTA0KXwwO2VmKDEwNDU2LDQ4OCl8MDtl
ZigxMDQ2OCw0NzIpfDA7ZWYoMTA0ODAsNDU2KXwwO2VmKDEwNDkyLDQ0MCl8MDtlZigxMDUwNCw0
MjQpfDA7ZWYoMTA1MTYsNDA4KXwwO2VmKDEwNTI4LDM5Mil8MDtlZigxMDU0MCwzNzYpfDA7ZWYo
MTA1NTIsMzQ0KXwwO2VmKDEwNTY0LDMyOCl8MDtlZigxMDU3NiwzMTIpfDA7ZWYoMTA1ODgsMjk2
KXwwO2NbMzY3OF09MTAzMTI7ZD1jWzM2NzhdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBqVihiKXti
PWJ8MDt2YXIgZD0wO2lmKChhWzE2MzYwXXwwKSE9MCl7ZD1jWzM3MDRdfDA7cmV0dXJuIGR8MH1p
ZigoYmMoMTYzNjApfDApPT0wKXtkPWNbMzcwNF18MDtyZXR1cm4gZHwwfWRve2lmKChhWzE2MjQw
XXwwKT09MCl7aWYoKGJjKDE2MjQwKXwwKT09MCl7YnJlYWt9ayQoMTE1MTIsMCwyODgpO2EkKDEy
MCwwLHV8MCl8MH19d2hpbGUoMCk7ZFEoMTE1MTIsODY0KXwwO2RRKDExNTI0LDg1Nil8MDtjWzM3
MDRdPTExNTEyO2Q9Y1szNzA0XXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galcoYil7Yj1ifDA7dmFy
IGQ9MDtpZigoYVsxNjMwNF18MCkhPTApe2Q9Y1szNjgyXXwwO3JldHVybiBkfDB9aWYoKGJjKDE2
MzA0KXwwKT09MCl7ZD1jWzM2ODJdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsxNjIxNl18MCk9PTAp
e2lmKChiYygxNjIxNil8MCk9PTApe2JyZWFrfWskKDEwNzY4LDAsMjg4KTthJCgyNDAsMCx1fDAp
fDB9fXdoaWxlKDApO2VmKDEwNzY4LDg4OCl8MDtlZigxMDc4MCw4NzIpfDA7Y1szNjgyXT0xMDc2
ODtkPWNbMzY4Ml18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpYKGIpe2I9YnwwO2lmKChhWzE2MzY4
XXwwKSE9MCl7cmV0dXJuIDE0ODI0fWlmKChiYygxNjM2OCl8MCk9PTApe3JldHVybiAxNDgyNH1k
WigxNDgyNCwxMjE2LDgpO2EkKDI1OCwxNDgyNCx1fDApfDA7cmV0dXJuIDE0ODI0fWZ1bmN0aW9u
IGpZKGIpe2I9YnwwO2lmKChhWzE2MzEyXXwwKSE9MCl7cmV0dXJuIDE0NzM2fWlmKChiYygxNjMx
Mil8MCk9PTApe3JldHVybiAxNDczNn1leCgxNDczNiwxMTc2LGttKDExNzYpfDApO2EkKDE5Miwx
NDczNix1fDApfDA7cmV0dXJuIDE0NzM2fWZ1bmN0aW9uIGpaKGIpe2I9YnwwO2lmKChhWzE2Mzky
XXwwKSE9MCl7cmV0dXJuIDE0ODcyfWlmKChiYygxNjM5Mil8MCk9PTApe3JldHVybiAxNDg3Mn1k
WigxNDg3MiwxMTQ0LDgpO2EkKDI1OCwxNDg3Mix1fDApfDA7cmV0dXJuIDE0ODcyfWZ1bmN0aW9u
IGpfKGIpe2I9YnwwO2lmKChhWzE2MzM2XXwwKSE9MCl7cmV0dXJuIDE0Nzg0fWlmKChiYygxNjMz
Nil8MCk9PTApe3JldHVybiAxNDc4NH1leCgxNDc4NCwxMTA0LGttKDExMDQpfDApO2EkKDE5Miwx
NDc4NCx1fDApfDA7cmV0dXJuIDE0Nzg0fWZ1bmN0aW9uIGokKGIpe2I9YnwwO2lmKChhWzE2Mzg0
XXwwKSE9MCl7cmV0dXJuIDE0ODU2fWlmKChiYygxNjM4NCl8MCk9PTApe3JldHVybiAxNDg1Nn1k
WigxNDg1NiwxMDgwLDIwKTthJCgyNTgsMTQ4NTYsdXwwKXwwO3JldHVybiAxNDg1Nn1mdW5jdGlv
biBqMChiKXtiPWJ8MDtpZigoYVsxNjMyOF18MCkhPTApe3JldHVybiAxNDc2OH1pZigoYmMoMTYz
MjgpfDApPT0wKXtyZXR1cm4gMTQ3Njh9ZXgoMTQ3NjgsOTkyLGttKDk5Mil8MCk7YSQoMTkyLDE0
NzY4LHV8MCl8MDtyZXR1cm4gMTQ3Njh9ZnVuY3Rpb24gajEoYil7Yj1ifDA7aWYoKGFbMTYzNzZd
fDApIT0wKXtyZXR1cm4gMTQ4NDB9aWYoKGJjKDE2Mzc2KXwwKT09MCl7cmV0dXJuIDE0ODQwfWRa
KDE0ODQwLDk3NiwxMSk7YSQoMjU4LDE0ODQwLHV8MCl8MDtyZXR1cm4gMTQ4NDB9ZnVuY3Rpb24g
ajIoYil7Yj1ifDA7aWYoKGFbMTYzMjBdfDApIT0wKXtyZXR1cm4gMTQ3NTJ9aWYoKGJjKDE2MzIw
KXwwKT09MCl7cmV0dXJuIDE0NzUyfWV4KDE0NzUyLDkyOCxrbSg5MjgpfDApO2EkKDE5MiwxNDc1
Mix1fDApfDA7cmV0dXJuIDE0NzUyfWZ1bmN0aW9uIGozKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9
MCxmPTA7Yj1hKzR8MDtkPShjW2E+PjJdfDApKyhjW2IrND4+Ml18MCl8MDthPWQ7ZT1jW2I+PjJd
fDA7aWYoKGUmMXwwKT09MCl7Zj1lO2JZW2YmNTExXShhKTtyZXR1cm59ZWxzZXtmPWNbKGNbZD4+
Ml18MCkrKGUtMSk+PjJdfDA7YllbZiY1MTFdKGEpO3JldHVybn19ZnVuY3Rpb24gajQoYSl7YT1h
fDA7ZWUoMTEwNDQpO2VlKDExMDMyKTtlZSgxMTAyMCk7ZWUoMTEwMDgpO2VlKDEwOTk2KTtlZSgx
MDk4NCk7ZWUoMTA5NzIpO2VlKDEwOTYwKTtlZSgxMDk0OCk7ZWUoMTA5MzYpO2VlKDEwOTI0KTtl
ZSgxMDkxMik7ZWUoMTA5MDApO2VlKDEwODg4KTtlZSgxMDg3Nik7ZWUoMTA4NjQpO2VlKDEwODUy
KTtlZSgxMDg0MCk7ZWUoMTA4MjgpO2VlKDEwODE2KTtlZSgxMDgwNCk7ZWUoMTA3OTIpO2VlKDEw
NzgwKTtlZSgxMDc2OCk7cmV0dXJufWZ1bmN0aW9uIGo1KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7ZT1i
Kzh8MDtmPWIrNHwwO2c9Y1tmPj4yXXwwO2g9Y1tlPj4yXXwwO2k9ZztpZihoLWk+PjI+Pj4wPj1k
Pj4+MCl7aj1kO2s9Zztkb3tpZigoa3wwKT09MCl7bD0wfWVsc2V7Y1trPj4yXT0wO2w9Y1tmPj4y
XXwwfWs9bCs0fDA7Y1tmPj4yXT1rO2o9ai0xfDA7fXdoaWxlKChqfDApIT0wKTtyZXR1cm59aj1i
KzE2fDA7az1ifDA7bD1jW2s+PjJdfDA7Zz1pLWw+PjI7aT1nK2R8MDtpZihpPj4+MD4xMDczNzQx
ODIzKXtpcigwKX1tPWgtbHwwO2Rve2lmKG0+PjI+Pj4wPjUzNjg3MDkxMCl7bj0xMDczNzQxODIz
O289MjkxOX1lbHNle2w9bT4+MTtoPWw+Pj4wPGk+Pj4wP2k6bDtpZigoaHwwKT09MCl7cD0wO3E9
MDticmVha31sPWIrMTI4fDA7aWYoISgoYVtsXSYxKT09MCZoPj4+MDwyOSkpe249aDtvPTI5MTk7
YnJlYWt9YVtsXT0xO3A9ajtxPWh9fXdoaWxlKDApO2lmKChvfDApPT0yOTE5KXtwPWtPKG48PDIp
fDA7cT1ufW49ZDtkPXArKGc8PDIpfDA7ZG97aWYoKGR8MCk9PTApe3I9MH1lbHNle2NbZD4+Ml09
MDtyPWR9ZD1yKzR8MDtuPW4tMXwwO313aGlsZSgobnwwKSE9MCk7bj1wKyhxPDwyKXwwO3E9Y1tr
Pj4yXXwwO3I9KGNbZj4+Ml18MCktcXwwO289cCsoZy0ocj4+Mik8PDIpfDA7Zz1vO3A9cTtrWShn
fDAscHwwLHIpfDA7Y1trPj4yXT1vO2NbZj4+Ml09ZDtjW2U+PjJdPW47aWYoKHF8MCk9PTApe3Jl
dHVybn1pZigocXwwKT09KGp8MCkpe2FbYisxMjh8MF09MDtyZXR1cm59ZWxzZXtrUyhwKTtyZXR1
cm59fWZ1bmN0aW9uIGo2KGEpe2E9YXwwO2RQKDExNzg4KTtkUCgxMTc3Nik7ZFAoMTE3NjQpO2RQ
KDExNzUyKTtkUCgxMTc0MCk7ZFAoMTE3MjgpO2RQKDExNzE2KTtkUCgxMTcwNCk7ZFAoMTE2OTIp
O2RQKDExNjgwKTtkUCgxMTY2OCk7ZFAoMTE2NTYpO2RQKDExNjQ0KTtkUCgxMTYzMik7ZFAoMTE2
MjApO2RQKDExNjA4KTtkUCgxMTU5Nik7ZFAoMTE1ODQpO2RQKDExNTcyKTtkUCgxMTU2MCk7ZFAo
MTE1NDgpO2RQKDExNTM2KTtkUCgxMTUyNCk7ZFAoMTE1MTIpO3JldHVybn1mdW5jdGlvbiBqNyhh
KXthPWF8MDtlZSgxMDU4OCk7ZWUoMTA1NzYpO2VlKDEwNTY0KTtlZSgxMDU1Mik7ZWUoMTA1NDAp
O2VlKDEwNTI4KTtlZSgxMDUxNik7ZWUoMTA1MDQpO2VlKDEwNDkyKTtlZSgxMDQ4MCk7ZWUoMTA0
NjgpO2VlKDEwNDU2KTtlZSgxMDQ0NCk7ZWUoMTA0MzIpO2VlKDEwNDIwKTtlZSgxMDQwOCk7ZWUo
MTAzOTYpO2VlKDEwMzg0KTtlZSgxMDM3Mik7ZWUoMTAzNjApO2VlKDEwMzQ4KTtlZSgxMDMzNik7
ZWUoMTAzMjQpO2VlKDEwMzEyKTtyZXR1cm59ZnVuY3Rpb24gajgoYSl7YT1hfDA7ZFAoMTEzMzIp
O2RQKDExMzIwKTtkUCgxMTMwOCk7ZFAoMTEyOTYpO2RQKDExMjg0KTtkUCgxMTI3Mik7ZFAoMTEy
NjApO2RQKDExMjQ4KTtkUCgxMTIzNik7ZFAoMTEyMjQpO2RQKDExMjEyKTtkUCgxMTIwMCk7ZFAo
MTExODgpO2RQKDExMTc2KTtkUCgxMTE2NCk7ZFAoMTExNTIpO2RQKDExMTQwKTtkUCgxMTEyOCk7
ZFAoMTExMTYpO2RQKDExMTA0KTtkUCgxMTA5Mik7ZFAoMTEwODApO2RQKDExMDY4KTtkUCgxMTA1
Nik7cmV0dXJufWZ1bmN0aW9uIGo5KGEpe2E9YXwwO2VlKDEwNzU2KTtlZSgxMDc0NCk7ZWUoMTA3
MzIpO2VlKDEwNzIwKTtlZSgxMDcwOCk7ZWUoMTA2OTYpO2VlKDEwNjg0KTtlZSgxMDY3Mik7ZWUo
MTA2NjApO2VlKDEwNjQ4KTtlZSgxMDYzNik7ZWUoMTA2MjQpO2VlKDEwNjEyKTtlZSgxMDYwMCk7
cmV0dXJufWZ1bmN0aW9uIGthKGEpe2E9YXwwO2RQKDExNTAwKTtkUCgxMTQ4OCk7ZFAoMTE0NzYp
O2RQKDExNDY0KTtkUCgxMTQ1Mik7ZFAoMTE0NDApO2RQKDExNDI4KTtkUCgxMTQxNik7ZFAoMTE0
MDQpO2RQKDExMzkyKTtkUCgxMTM4MCk7ZFAoMTEzNjgpO2RQKDExMzU2KTtkUCgxMTM0NCk7cmV0
dXJufWZ1bmN0aW9uIGtiKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDtyZXR1cm4ga2MoMCxhLGIs
KGN8MCkhPTA/Yzo5ODMyKXwwfWZ1bmN0aW9uIGtjKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHQ9
MCx1PTAsdj0wLHc9MDtnPWk7aT1pKzh8MDtoPWd8MDtjW2g+PjJdPWI7aj0oKGZ8MCk9PTA/OTgy
NDpmKXwwO2Y9Y1tqPj4yXXwwO0w3OmRve2lmKChkfDApPT0wKXtpZigoZnwwKT09MCl7az0wfWVs
c2V7YnJlYWt9aT1nO3JldHVybiBrfDB9ZWxzZXtpZigoYnwwKT09MCl7bD1oO2NbaD4+Ml09bDtt
PWx9ZWxzZXttPWJ9aWYoKGV8MCk9PTApe2s9LTI7aT1nO3JldHVybiBrfDB9ZG97aWYoKGZ8MCk9
PTApe2w9YVtkXXwwO249bCYyNTU7aWYobDw8MjQ+PjI0Pi0xKXtjW20+PjJdPW47az1sPDwyND4+
MjQhPTB8MDtpPWc7cmV0dXJuIGt8MH1lbHNle2w9bi0xOTR8MDtpZihsPj4+MD41MCl7YnJlYWsg
TDd9bz1kKzF8MDtwPWNbcysobDw8Mik+PjJdfDA7cT1lLTF8MDticmVha319ZWxzZXtvPWQ7cD1m
O3E9ZX19d2hpbGUoMCk7TDI1OmRve2lmKChxfDApPT0wKXtyPXB9ZWxzZXtsPWFbb118MDtuPShs
JjI1NSk+Pj4zO2lmKChuLTE2fG4rKHA+PjI2KSk+Pj4wPjcpe2JyZWFrIEw3fWVsc2V7dD1vO3U9
cDt2PXE7dz1sfXdoaWxlKDEpe3Q9dCsxfDA7dT0odyYyNTUpLTEyOHx1PDw2O3Y9di0xfDA7aWYo
KHV8MCk+PTApe2JyZWFrfWlmKCh2fDApPT0wKXtyPXU7YnJlYWsgTDI1fXc9YVt0XXwwO2lmKCgo
dyYyNTUpLTEyOHwwKT4+PjA+NjMpe2JyZWFrIEw3fX1jW2o+PjJdPTA7Y1ttPj4yXT11O2s9ZS12
fDA7aT1nO3JldHVybiBrfDB9fXdoaWxlKDApO2Nbaj4+Ml09cjtrPS0yO2k9ZztyZXR1cm4ga3ww
fX13aGlsZSgwKTtjW2o+PjJdPTA7Y1soYncoKXwwKT4+Ml09MTM4O2s9LTE7aT1nO3JldHVybiBr
fDB9ZnVuY3Rpb24ga2QoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2
YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0w
LEo9MDtnPWk7aT1pKzEwMzJ8MDtoPWd8MDtqPWcrMTAyNHwwO2s9Y1tiPj4yXXwwO2Nbaj4+Ml09
aztsPShhfDApIT0wO209bD9lOjI1NjtlPWw/YTpofDA7TDM4OmRve2lmKChrfDApPT0wfChtfDAp
PT0wKXtuPTA7bz1kO3A9bTtxPWU7cj1rfWVsc2V7YT1ofDA7cz1tO3Q9ZDt1PTA7dj1lO3c9azt3
aGlsZSgxKXt4PXQ+Pj4yO3k9eD4+PjA+PXM+Pj4wO2lmKCEoeXx0Pj4+MD4xMzEpKXtuPXU7bz10
O3A9cztxPXY7cj13O2JyZWFrIEwzOH16PXk/czp4O0E9dC16fDA7eD1rZSh2LGoseixmKXwwO2lm
KCh4fDApPT0tMSl7YnJlYWt9aWYoKHZ8MCk9PShhfDApKXtCPWE7Qz1zfWVsc2V7Qj12Kyh4PDwy
KXwwO0M9cy14fDB9ej14K3V8MDt4PWNbaj4+Ml18MDtpZigoeHwwKT09MHwoQ3wwKT09MCl7bj16
O289QTtwPUM7cT1CO3I9eDticmVhayBMMzh9ZWxzZXtzPUM7dD1BO3U9ejt2PUI7dz14fX1uPS0x
O289QTtwPTA7cT12O3I9Y1tqPj4yXXwwfX13aGlsZSgwKTtMNDk6ZG97aWYoKHJ8MCk9PTApe0Q9
bn1lbHNle2lmKChwfDApPT0wfChvfDApPT0wKXtEPW47YnJlYWt9ZWxzZXtFPXA7Rj1vO0c9bjtI
PXE7ST1yfXdoaWxlKDEpe0o9a2MoSCxJLEYsZil8MDtpZigoSisyfDApPj4+MDwzKXticmVha31B
PShjW2o+PjJdfDApK0p8MDtjW2o+PjJdPUE7Qj1FLTF8MDtDPUcrMXwwO2lmKChCfDApPT0wfChG
fDApPT0oSnwwKSl7RD1DO2JyZWFrIEw0OX1lbHNle0U9QjtGPUYtSnwwO0c9QztIPUgrNHwwO0k9
QX19c3dpdGNoKEp8MCl7Y2FzZSAwOntjW2o+PjJdPTA7RD1HO2JyZWFrIEw0OTticmVha307Y2Fz
ZS0xOntEPS0xO2JyZWFrIEw0OTticmVha307ZGVmYXVsdDp7Y1tmPj4yXT0wO0Q9RzticmVhayBM
NDl9fX19d2hpbGUoMCk7aWYoIWwpe2k9ZztyZXR1cm4gRHwwfWNbYj4+Ml09Y1tqPj4yXTtpPWc7
cmV0dXJuIER8MH1mdW5jdGlvbiBrZShiLGUsZixnKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2
YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAs
WT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wO2g9Y1tlPj4yXXww
O2Rve2lmKChnfDApPT0wKXtpPTU2fWVsc2V7aj1nfDA7az1jW2o+PjJdfDA7aWYoKGt8MCk9PTAp
e2k9NTY7YnJlYWt9aWYoKGJ8MCk9PTApe2w9azttPWg7bj1mO2k9Njc7YnJlYWt9Y1tqPj4yXT0w
O289aztwPWg7cT1iO3I9ZjtpPTg3fX13aGlsZSgwKTtpZigoaXwwKT09NTYpe2lmKChifDApPT0w
KXt0PWg7dT1mO2k9NTh9ZWxzZXt2PWg7dz1iO3g9ZjtpPTU3fX1MNzA6d2hpbGUoMSl7aWYoKGl8
MCk9PTg3KXtpPTA7aD1kW3BdfDA7Zz1oPj4+MztpZigoZy0xNnxnKyhvPj4yNikpPj4+MD43KXtp
PTg4O2JyZWFrfWc9cCsxfDA7eT1oLTEyOHxvPDw2O2Rve2lmKCh5fDApPDApe2g9KGRbZ118MCkt
MTI4fDA7aWYoaD4+PjA+NjMpe2k9OTE7YnJlYWsgTDcwfWs9cCsyfDA7ej1ofHk8PDY7aWYoKHp8
MCk+PTApe0E9ejtCPWs7YnJlYWt9aD0oZFtrXXwwKS0xMjh8MDtpZihoPj4+MD42Myl7aT05NDti
cmVhayBMNzB9QT1ofHo8PDY7Qj1wKzN8MH1lbHNle0E9eTtCPWd9fXdoaWxlKDApO2NbcT4+Ml09
QTt2PUI7dz1xKzR8MDt4PXItMXwwO2k9NTc7Y29udGludWV9ZWxzZSBpZigoaXwwKT09NTgpe2k9
MDtnPWFbdF18MDtkb3tpZigoKGcmMjU1KS0xfDApPj4+MDwxMjcpe2lmKCh0JjN8MCkhPTApe0M9
dDtEPXU7RT1nO2JyZWFrfWg9Y1t0Pj4yXXwwO2lmKCgoaC0xNjg0MzAwOXxoKSYtMjEzOTA2MjE0
NHwwKT09MCl7Rj11O0c9dH1lbHNle0M9dDtEPXU7RT1oJjI1NTticmVha31kb3tHPUcrNHwwO0Y9
Ri00fDA7SD1jW0c+PjJdfDA7fXdoaWxlKCgoSC0xNjg0MzAwOXxIKSYtMjEzOTA2MjE0NHwwKT09
MCk7Qz1HO0Q9RjtFPUgmMjU1fWVsc2V7Qz10O0Q9dTtFPWd9fXdoaWxlKDApO2c9RSYyNTU7aWYo
KGctMXwwKT4+PjA8MTI3KXt0PUMrMXwwO3U9RC0xfDA7aT01ODtjb250aW51ZX1oPWctMTk0fDA7
aWYoaD4+PjA+NTApe0k9RDtKPWI7Sz1DO2k9OTg7YnJlYWt9bD1jW3MrKGg8PDIpPj4yXXwwO209
QysxfDA7bj1EO2k9Njc7Y29udGludWV9ZWxzZSBpZigoaXwwKT09NTcpe2k9MDtpZigoeHwwKT09
MCl7TD1mO2k9MTA2O2JyZWFrfWVsc2V7TT14O049dztPPXZ9d2hpbGUoMSl7aD1hW09dfDA7ZG97
aWYoKChoJjI1NSktMXwwKT4+PjA8MTI3KXtpZigoTyYzfDApPT0wJk0+Pj4wPjMpe1A9TTtRPU47
Uj1PfWVsc2V7Uz1PO1Q9TjtVPU07Vj1oO2JyZWFrfXdoaWxlKDEpe1c9Y1tSPj4yXXwwO2lmKCgo
Vy0xNjg0MzAwOXxXKSYtMjEzOTA2MjE0NHwwKSE9MCl7aT04MTticmVha31jW1E+PjJdPVcmMjU1
O2NbUSs0Pj4yXT1kW1IrMXwwXXwwO2NbUSs4Pj4yXT1kW1IrMnwwXXwwO1g9Uis0fDA7WT1RKzE2
fDA7Y1tRKzEyPj4yXT1kW1IrM3wwXXwwO1o9UC00fDA7aWYoWj4+PjA+Myl7UD1aO1E9WTtSPVh9
ZWxzZXtpPTgyO2JyZWFrfX1pZigoaXwwKT09ODEpe2k9MDtTPVI7VD1RO1U9UDtWPVcmMjU1O2Jy
ZWFrfWVsc2UgaWYoKGl8MCk9PTgyKXtpPTA7Uz1YO1Q9WTtVPVo7Vj1hW1hdfDA7YnJlYWt9fWVs
c2V7Uz1PO1Q9TjtVPU07Vj1ofX13aGlsZSgwKTtfPVYmMjU1O2lmKChfLTF8MCk+Pj4wPj0xMjcp
e2JyZWFrfWNbVD4+Ml09XztoPVUtMXwwO2lmKChofDApPT0wKXtMPWY7aT0xMDU7YnJlYWsgTDcw
fWVsc2V7TT1oO049VCs0fDA7Tz1TKzF8MH19aD1fLTE5NHwwO2lmKGg+Pj4wPjUwKXtJPVU7Sj1U
O0s9UztpPTk4O2JyZWFrfW89Y1tzKyhoPDwyKT4+Ml18MDtwPVMrMXwwO3E9VDtyPVU7aT04Nztj
b250aW51ZX1lbHNlIGlmKChpfDApPT02Nyl7aT0wO2g9KGRbbV18MCk+Pj4zO2lmKChoLTE2fGgr
KGw+PjI2KSk+Pj4wPjcpe2k9Njg7YnJlYWt9aD1tKzF8MDtkb3tpZigobCYzMzU1NDQzMnwwKT09
MCl7JD1ofWVsc2V7aWYoKChkW2hdfDApLTEyOHwwKT4+PjA+NjMpe2k9NzE7YnJlYWsgTDcwfWc9
bSsyfDA7aWYoKGwmNTI0Mjg4fDApPT0wKXskPWc7YnJlYWt9aWYoKChkW2ddfDApLTEyOHwwKT4+
PjA+NjMpe2k9NzQ7YnJlYWsgTDcwfSQ9bSszfDB9fXdoaWxlKDApO3Q9JDt1PW4tMXwwO2k9NTg7
Y29udGludWV9fWlmKChpfDApPT03MSl7YWE9bDthYj1tLTF8MDthYz1iO2FkPW47aT05N31lbHNl
IGlmKChpfDApPT03NCl7YWE9bDthYj1tLTF8MDthYz1iO2FkPW47aT05N31lbHNlIGlmKChpfDAp
PT02OCl7YWE9bDthYj1tLTF8MDthYz1iO2FkPW47aT05N31lbHNlIGlmKChpfDApPT04OCl7YWE9
bzthYj1wLTF8MDthYz1xO2FkPXI7aT05N31lbHNlIGlmKChpfDApPT05MSl7YWE9eTthYj1wLTF8
MDthYz1xO2FkPXI7aT05N31lbHNlIGlmKChpfDApPT05NCl7YWE9ejthYj1wLTF8MDthYz1xO2Fk
PXI7aT05N31lbHNlIGlmKChpfDApPT0xMDUpe3JldHVybiBMfDB9ZWxzZSBpZigoaXwwKT09MTA2
KXtyZXR1cm4gTHwwfWlmKChpfDApPT05Nyl7aWYoKGFhfDApPT0wKXtJPWFkO0o9YWM7Sz1hYjtp
PTk4fWVsc2V7YWU9YWM7YWY9YWJ9fWRve2lmKChpfDApPT05OCl7aWYoKGFbS118MCkhPTApe2Fl
PUo7YWY9SzticmVha31pZigoSnwwKSE9MCl7Y1tKPj4yXT0wO2NbZT4+Ml09MH1MPWYtSXwwO3Jl
dHVybiBMfDB9fXdoaWxlKDApO2NbKGJ3KCl8MCk+PjJdPTEzODtpZigoYWV8MCk9PTApe0w9LTE7
cmV0dXJuIEx8MH1jW2U+PjJdPWFmO0w9LTE7cmV0dXJuIEx8MH1mdW5jdGlvbiBrZihiLGUsZil7
Yj1ifDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtnPWk7aT1p
Kzh8MDtoPWd8MDtjW2g+PjJdPWI7aWYoKGV8MCk9PTApe2o9MDtpPWc7cmV0dXJuIGp8MH1kb3tp
ZigoZnwwKSE9MCl7aWYoKGJ8MCk9PTApe2s9aDtjW2g+PjJdPWs7bD1rfWVsc2V7bD1ifWs9YVtl
XXwwO209ayYyNTU7aWYoazw8MjQ+PjI0Pi0xKXtjW2w+PjJdPW07aj1rPDwyND4+MjQhPTB8MDtp
PWc7cmV0dXJuIGp8MH1rPW0tMTk0fDA7aWYoaz4+PjA+NTApe2JyZWFrfW09ZSsxfDA7bj1jW3Mr
KGs8PDIpPj4yXXwwO2lmKGY+Pj4wPDQpe2lmKChuJi0yMTQ3NDgzNjQ4Pj4+KCgoZio2fDApLTZ8
MCk+Pj4wKXwwKSE9MCl7YnJlYWt9fWs9ZFttXXwwO209az4+PjM7aWYoKG0tMTZ8bSsobj4+MjYp
KT4+PjA+Nyl7YnJlYWt9bT1rLTEyOHxuPDw2O2lmKChtfDApPj0wKXtjW2w+PjJdPW07aj0yO2k9
ZztyZXR1cm4ganwwfW49KGRbZSsyfDBdfDApLTEyOHwwO2lmKG4+Pj4wPjYzKXticmVha31rPW58
bTw8NjtpZigoa3wwKT49MCl7Y1tsPj4yXT1rO2o9MztpPWc7cmV0dXJuIGp8MH1tPShkW2UrM3ww
XXwwKS0xMjh8MDtpZihtPj4+MD42Myl7YnJlYWt9Y1tsPj4yXT1tfGs8PDY7aj00O2k9ZztyZXR1
cm4ganwwfX13aGlsZSgwKTtjWyhidygpfDApPj4yXT0xMzg7aj0tMTtpPWc7cmV0dXJuIGp8MH1m
dW5jdGlvbiBrZyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MDtpZigoYnwwKT09MCl7
Zj0xO3JldHVybiBmfDB9aWYoZD4+PjA8MTI4KXthW2JdPWQmMjU1O2Y9MTtyZXR1cm4gZnwwfWlm
KGQ+Pj4wPDIwNDgpe2FbYl09KGQ+Pj42fDE5MikmMjU1O2FbYisxfDBdPShkJjYzfDEyOCkmMjU1
O2Y9MjtyZXR1cm4gZnwwfWlmKGQ+Pj4wPDU1Mjk2fChkLTU3MzQ0fDApPj4+MDw4MTkyKXthW2Jd
PShkPj4+MTJ8MjI0KSYyNTU7YVtiKzF8MF09KGQ+Pj42JjYzfDEyOCkmMjU1O2FbYisyfDBdPShk
JjYzfDEyOCkmMjU1O2Y9MztyZXR1cm4gZnwwfWlmKChkLTY1NTM2fDApPj4+MDwxMDQ4NTc2KXth
W2JdPShkPj4+MTh8MjQwKSYyNTU7YVtiKzF8MF09KGQ+Pj4xMiY2M3wxMjgpJjI1NTthW2IrMnww
XT0oZD4+PjYmNjN8MTI4KSYyNTU7YVtiKzN8MF09KGQmNjN8MTI4KSYyNTU7Zj00O3JldHVybiBm
fDB9ZWxzZXtjWyhidygpfDApPj4yXT0xMzg7Zj0tMTtyZXR1cm4gZnwwfXJldHVybiAwfWZ1bmN0
aW9uIGtoKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBraShhKXthPWF8MDtyZXR1cm59ZnVuY3Rp
b24ga2ooYSl7YT1hfDA7cmV0dXJuIDEzMjh8MH1mdW5jdGlvbiBrayhhKXthPWF8MDtyZXR1cm59
ZnVuY3Rpb24ga2woYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGttKGEpe2E9YXwwO3ZhciBiPTA7
Yj1hO3doaWxlKDEpe2lmKChjW2I+PjJdfDApPT0wKXticmVha31lbHNle2I9Yis0fDB9fXJldHVy
biBiLWE+PjJ8MH1mdW5jdGlvbiBrbihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wO2lmKChkfDApPT0wKXtyZXR1cm4gYXwwfWVsc2V7ZT1iO2Y9ZDtnPWF9d2hpbGUoMSl7
ZD1mLTF8MDtjW2c+PjJdPWNbZT4+Ml07aWYoKGR8MCk9PTApe2JyZWFrfWVsc2V7ZT1lKzR8MDtm
PWQ7Zz1nKzR8MH19cmV0dXJuIGF8MH1mdW5jdGlvbiBrbyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1k
fDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTA7ZT0oZHwwKT09MDtpZihhLWI+PjI+Pj4wPGQ+Pj4w
KXtpZihlKXtyZXR1cm4gYXwwfWVsc2V7Zj1kfWRve2Y9Zi0xfDA7Y1thKyhmPDwyKT4+Ml09Y1ti
KyhmPDwyKT4+Ml07fXdoaWxlKChmfDApIT0wKTtyZXR1cm4gYXwwfWVsc2V7aWYoZSl7cmV0dXJu
IGF8MH1lbHNle2c9YjtoPWQ7aT1hfXdoaWxlKDEpe2Q9aC0xfDA7Y1tpPj4yXT1jW2c+PjJdO2lm
KChkfDApPT0wKXticmVha31lbHNle2c9Zys0fDA7aD1kO2k9aSs0fDB9fXJldHVybiBhfDB9cmV0
dXJuIDB9ZnVuY3Rpb24ga3AoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wO2lm
KChkfDApPT0wKXtyZXR1cm4gYXwwfWVsc2V7ZT1kO2Y9YX13aGlsZSgxKXtkPWUtMXwwO2NbZj4+
Ml09YjtpZigoZHwwKT09MCl7YnJlYWt9ZWxzZXtlPWQ7Zj1mKzR8MH19cmV0dXJuIGF8MH1mdW5j
dGlvbiBrcShhKXthPWF8MDtjW2E+PjJdPTI0NDA7cmV0dXJufWZ1bmN0aW9uIGtyKGIsZCxlLGYp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTA7aWYoKGNbZCs4Pj4yXXwwKSE9KGJ8MCkp
e3JldHVybn1iPWQrMTZ8MDtnPWNbYj4+Ml18MDtpZigoZ3wwKT09MCl7Y1tiPj4yXT1lO2NbZCsy
ND4+Ml09ZjtjW2QrMzY+PjJdPTE7cmV0dXJufWlmKChnfDApIT0oZXwwKSl7ZT1kKzM2fDA7Y1tl
Pj4yXT0oY1tlPj4yXXwwKSsxO2NbZCsyND4+Ml09MjthW2QrNTR8MF09MTtyZXR1cm59ZT1kKzI0
fDA7aWYoKGNbZT4+Ml18MCkhPTIpe3JldHVybn1jW2U+PjJdPWY7cmV0dXJufWZ1bmN0aW9uIGtz
KGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wO2Y9aTtpPWkrMjY0fDA7Zz1m
fDA7aD1mKzI1NnwwO2o9Y1tiPj4yXXwwO2NbaD4+Ml09ajtrPShhfDApIT0wO2w9az9lOjI1Njtl
PWs/YTpnfDA7TDI0Mzpkb3tpZigoanwwKT09MHwobHwwKT09MCl7bT0wO249ZDtvPWw7cD1lO3E9
an1lbHNle2E9Z3wwO3I9bDtzPWQ7dD0wO3U9ZTt2PWo7d2hpbGUoMSl7dz1zPj4+MD49cj4+PjA7
aWYoISh3fHM+Pj4wPjMyKSl7bT10O249cztvPXI7cD11O3E9djticmVhayBMMjQzfXg9dz9yOnM7
eT1zLXh8MDt3PWt0KHUsaCx4LDApfDA7aWYoKHd8MCk9PS0xKXticmVha31pZigodXwwKT09KGF8
MCkpe3o9YTtBPXJ9ZWxzZXt6PXUrd3wwO0E9ci13fDB9eD13K3R8MDt3PWNbaD4+Ml18MDtpZigo
d3wwKT09MHwoQXwwKT09MCl7bT14O249eTtvPUE7cD16O3E9dzticmVhayBMMjQzfWVsc2V7cj1B
O3M9eTt0PXg7dT16O3Y9d319bT0tMTtuPXk7bz0wO3A9dTtxPWNbaD4+Ml18MH19d2hpbGUoMCk7
TDI1NDpkb3tpZigocXwwKT09MCl7Qj1tfWVsc2V7aWYoKG98MCk9PTB8KG58MCk9PTApe0I9bTti
cmVha31lbHNle0M9bztEPW47RT1tO0Y9cDtHPXF9d2hpbGUoMSl7SD1rZyhGLGNbRz4+Ml18MCww
KXwwO2lmKChIKzF8MCk+Pj4wPDIpe2JyZWFrfXk9KGNbaD4+Ml18MCkrNHwwO2NbaD4+Ml09eTt6
PUQtMXwwO0E9RSsxfDA7aWYoKEN8MCk9PShIfDApfCh6fDApPT0wKXtCPUE7YnJlYWsgTDI1NH1l
bHNle0M9Qy1IfDA7RD16O0U9QTtGPUYrSHwwO0c9eX19aWYoKEh8MCkhPTApe0I9LTE7YnJlYWt9
Y1toPj4yXT0wO0I9RX19d2hpbGUoMCk7aWYoIWspe2k9ZjtyZXR1cm4gQnwwfWNbYj4+Ml09Y1to
Pj4yXTtpPWY7cmV0dXJuIEJ8MH1mdW5jdGlvbiBrdChiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8
MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtmPWk7aT1pKzh8MDtnPWZ8MDtpZigo
YnwwKT09MCl7aD1jW2Q+PjJdfDA7aj1nfDA7az1jW2g+PjJdfDA7aWYoKGt8MCk9PTApe2w9MDtp
PWY7cmV0dXJuIGx8MH1lbHNle209MDtuPWg7bz1rfXdoaWxlKDEpe2lmKG8+Pj4wPjEyNyl7az1r
ZyhqLG8sMCl8MDtpZigoa3wwKT09LTEpe2w9LTE7cD0yNDA7YnJlYWt9ZWxzZXtxPWt9fWVsc2V7
cT0xfWs9cSttfDA7aD1uKzR8MDtyPWNbaD4+Ml18MDtpZigocnwwKT09MCl7bD1rO3A9MjQxO2Jy
ZWFrfWVsc2V7bT1rO249aDtvPXJ9fWlmKChwfDApPT0yNDApe2k9ZjtyZXR1cm4gbHwwfWVsc2Ug
aWYoKHB8MCk9PTI0MSl7aT1mO3JldHVybiBsfDB9fUwyODA6ZG97aWYoZT4+PjA+Myl7bz1lO249
YjttPWNbZD4+Ml18MDt3aGlsZSgxKXtxPWNbbT4+Ml18MDtpZigocXwwKT09MCl7cz1vO3Q9bjti
cmVhayBMMjgwfWlmKHE+Pj4wPjEyNyl7aj1rZyhuLHEsMCl8MDtpZigoanwwKT09LTEpe2w9LTE7
YnJlYWt9dT1uK2p8MDt2PW8tanwwO3c9bX1lbHNle2Fbbl09cSYyNTU7dT1uKzF8MDt2PW8tMXww
O3c9Y1tkPj4yXXwwfXE9dys0fDA7Y1tkPj4yXT1xO2lmKHY+Pj4wPjMpe289djtuPXU7bT1xfWVs
c2V7cz12O3Q9dTticmVhayBMMjgwfX1pPWY7cmV0dXJuIGx8MH1lbHNle3M9ZTt0PWJ9fXdoaWxl
KDApO0wyOTI6ZG97aWYoKHN8MCk9PTApe3g9MH1lbHNle2I9Z3wwO3U9czt2PXQ7dz1jW2Q+PjJd
fDA7d2hpbGUoMSl7bT1jW3c+PjJdfDA7aWYoKG18MCk9PTApe3A9MjM2O2JyZWFrfWlmKG0+Pj4w
PjEyNyl7bj1rZyhiLG0sMCl8MDtpZigobnwwKT09LTEpe2w9LTE7cD0yNDM7YnJlYWt9aWYobj4+
PjA+dT4+PjApe3A9MjMyO2JyZWFrfW89Y1t3Pj4yXXwwO2tnKHYsbywwKXwwO3k9ditufDA7ej11
LW58MDtBPXd9ZWxzZXthW3ZdPW0mMjU1O3k9disxfDA7ej11LTF8MDtBPWNbZD4+Ml18MH1tPUEr
NHwwO2NbZD4+Ml09bTtpZigoenwwKT09MCl7eD0wO2JyZWFrIEwyOTJ9ZWxzZXt1PXo7dj15O3c9
bX19aWYoKHB8MCk9PTIzMil7bD1lLXV8MDtpPWY7cmV0dXJuIGx8MH1lbHNlIGlmKChwfDApPT0y
MzYpe2Fbdl09MDt4PXU7YnJlYWt9ZWxzZSBpZigocHwwKT09MjQzKXtpPWY7cmV0dXJuIGx8MH19
fXdoaWxlKDApO2NbZD4+Ml09MDtsPWUteHwwO2k9ZjtyZXR1cm4gbHwwfWZ1bmN0aW9uIGt1KGEp
e2E9YXwwO2tTKGEpO3JldHVybn1mdW5jdGlvbiBrdihhKXthPWF8MDtraChhfDApO3JldHVybn1m
dW5jdGlvbiBrdyhhKXthPWF8MDtraChhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBreChhKXth
PWF8MDtraChhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBreShhKXthPWF8MDtraChhfDApO2tT
KGEpO3JldHVybn1mdW5jdGlvbiBreihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wLGg9MDtlPWk7aT1pKzU2fDA7Zj1lfDA7aWYoKGF8MCk9PShifDApKXtnPTE7aT1lO3Jl
dHVybiBnfDB9aWYoKGJ8MCk9PTApe2c9MDtpPWU7cmV0dXJuIGd8MH1oPWtDKGIsOTcwNCw5Njg4
LC0xKXwwO2I9aDtpZigoaHwwKT09MCl7Zz0wO2k9ZTtyZXR1cm4gZ3wwfWskKGZ8MCwwLDU2KTtj
W2Y+PjJdPWI7Y1tmKzg+PjJdPWE7Y1tmKzEyPj4yXT0tMTtjW2YrNDg+PjJdPTE7Y2JbY1soY1to
Pj4yXXwwKSsyOD4+Ml0mMTVdKGIsZixjW2Q+PjJdfDAsMSk7aWYoKGNbZisyND4+Ml18MCkhPTEp
e2c9MDtpPWU7cmV0dXJuIGd8MH1jW2Q+PjJdPWNbZisxNj4+Ml07Zz0xO2k9ZTtyZXR1cm4gZ3ww
fWZ1bmN0aW9uIGtBKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTA7aWYo
KGJ8MCkhPShjW2QrOD4+Ml18MCkpe2c9Y1tiKzg+PjJdfDA7Y2JbY1soY1tnPj4yXXwwKSsyOD4+
Ml0mMTVdKGcsZCxlLGYpO3JldHVybn1nPWQrMTZ8MDtiPWNbZz4+Ml18MDtpZigoYnwwKT09MCl7
Y1tnPj4yXT1lO2NbZCsyND4+Ml09ZjtjW2QrMzY+PjJdPTE7cmV0dXJufWlmKChifDApIT0oZXww
KSl7ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2NbZCsyND4+Ml09MjthW2QrNTR8MF09
MTtyZXR1cm59ZT1kKzI0fDA7aWYoKGNbZT4+Ml18MCkhPTIpe3JldHVybn1jW2U+PjJdPWY7cmV0
dXJufWZ1bmN0aW9uIGtCKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAs
aD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7aWYoKGJ8MCk9PShjW2QrOD4+Ml18MCkpe2c9ZCsxNnww
O2g9Y1tnPj4yXXwwO2lmKChofDApPT0wKXtjW2c+PjJdPWU7Y1tkKzI0Pj4yXT1mO2NbZCszNj4+
Ml09MTtyZXR1cm59aWYoKGh8MCkhPShlfDApKXtoPWQrMzZ8MDtjW2g+PjJdPShjW2g+PjJdfDAp
KzE7Y1tkKzI0Pj4yXT0yO2FbZCs1NHwwXT0xO3JldHVybn1oPWQrMjR8MDtpZigoY1toPj4yXXww
KSE9Mil7cmV0dXJufWNbaD4+Ml09ZjtyZXR1cm59aD1jW2IrMTI+PjJdfDA7Zz1iKzE2KyhoPDwz
KXwwO2k9Y1tiKzIwPj4yXXwwO2o9aT4+ODtpZigoaSYxfDApPT0wKXtrPWp9ZWxzZXtrPWNbKGNb
ZT4+Ml18MCkraj4+Ml18MH1qPWNbYisxNj4+Ml18MDtjYltjWyhjW2o+PjJdfDApKzI4Pj4yXSYx
NV0oaixkLGUra3wwLChpJjJ8MCkhPTA/ZjoyKTtpZigoaHwwKTw9MSl7cmV0dXJufWg9ZCs1NHww
O2k9ZTtrPWIrMjR8MDt3aGlsZSgxKXtiPWNbays0Pj4yXXwwO2o9Yj4+ODtpZigoYiYxfDApPT0w
KXtsPWp9ZWxzZXtsPWNbKGNbaT4+Ml18MCkraj4+Ml18MH1qPWNbaz4+Ml18MDtjYltjWyhjW2o+
PjJdfDApKzI4Pj4yXSYxNV0oaixkLGUrbHwwLChiJjJ8MCkhPTA/ZjoyKTtpZigoYVtoXSYxKSE9
MCl7bT0yOTc7YnJlYWt9Yj1rKzh8MDtpZihiPj4+MDxnPj4+MCl7az1ifWVsc2V7bT0yOTg7YnJl
YWt9fWlmKChtfDApPT0yOTcpe3JldHVybn1lbHNlIGlmKChtfDApPT0yOTgpe3JldHVybn19ZnVu
Y3Rpb24ga0MoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0w
LGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wO2Y9aTtpPWkrNTZ8MDtnPWZ8MDtoPWNbYT4+Ml18MDtq
PWErKGNbaC04Pj4yXXwwKXwwO2s9Y1toLTQ+PjJdfDA7aD1rO2NbZz4+Ml09ZDtjW2crND4+Ml09
YTtjW2crOD4+Ml09YjtjW2crMTI+PjJdPWU7ZT1nKzE2fDA7Yj1nKzIwfDA7YT1nKzI0fDA7bD1n
KzI4fDA7bT1nKzMyfDA7bj1nKzQwfDA7ayQoZXwwLDAsMzkpO2lmKChrfDApPT0oZHwwKSl7Y1tn
KzQ4Pj4yXT0xO2I5W2NbKGNbaz4+Ml18MCkrMjA+PjJdJjMxXShoLGcsaixqLDEsMCk7aT1mO3Jl
dHVybigoY1thPj4yXXwwKT09MT9qOjApfDB9YldbY1soY1trPj4yXXwwKSsyND4+Ml0mN10oaCxn
LGosMSwwKTtzd2l0Y2goY1tnKzM2Pj4yXXwwKXtjYXNlIDE6e2Rve2lmKChjW2E+PjJdfDApIT0x
KXtpZigoY1tuPj4yXXwwKSE9MCl7bz0wO2k9ZjtyZXR1cm4gb3wwfWlmKChjW2w+PjJdfDApIT0x
KXtvPTA7aT1mO3JldHVybiBvfDB9aWYoKGNbbT4+Ml18MCk9PTEpe2JyZWFrfWVsc2V7bz0wfWk9
ZjtyZXR1cm4gb3wwfX13aGlsZSgwKTtvPWNbZT4+Ml18MDtpPWY7cmV0dXJuIG98MH07Y2FzZSAw
OntpZigoY1tuPj4yXXwwKSE9MSl7bz0wO2k9ZjtyZXR1cm4gb3wwfWlmKChjW2w+PjJdfDApIT0x
KXtvPTA7aT1mO3JldHVybiBvfDB9bz0oY1ttPj4yXXwwKT09MT9jW2I+PjJdfDA6MDtpPWY7cmV0
dXJuIG98MH07ZGVmYXVsdDp7bz0wO2k9ZjtyZXR1cm4gb3wwfX1yZXR1cm4gMH1mdW5jdGlvbiBr
RChiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2lmKChjW2QrOD4+Ml18
MCk9PShifDApKXtpZigoY1tkKzQ+PjJdfDApIT0oZXwwKSl7cmV0dXJufWc9ZCsyOHwwO2lmKChj
W2c+PjJdfDApPT0xKXtyZXR1cm59Y1tnPj4yXT1mO3JldHVybn1pZigoY1tkPj4yXXwwKSE9KGJ8
MCkpe3JldHVybn1kb3tpZigoY1tkKzE2Pj4yXXwwKSE9KGV8MCkpe2I9ZCsyMHwwO2lmKChjW2I+
PjJdfDApPT0oZXwwKSl7YnJlYWt9Y1tkKzMyPj4yXT1mO2NbYj4+Ml09ZTtiPWQrNDB8MDtjW2I+
PjJdPShjW2I+PjJdfDApKzE7ZG97aWYoKGNbZCszNj4+Ml18MCk9PTEpe2lmKChjW2QrMjQ+PjJd
fDApIT0yKXticmVha31hW2QrNTR8MF09MX19d2hpbGUoMCk7Y1tkKzQ0Pj4yXT00O3JldHVybn19
d2hpbGUoMCk7aWYoKGZ8MCkhPTEpe3JldHVybn1jW2QrMzI+PjJdPTE7cmV0dXJufWZ1bmN0aW9u
IGtFKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIg
aT0wO2lmKChjW2QrOD4+Ml18MCkhPShifDApKXtyZXR1cm59YVtkKzUzfDBdPTE7aWYoKGNbZCs0
Pj4yXXwwKSE9KGZ8MCkpe3JldHVybn1hW2QrNTJ8MF09MTtmPWQrMTZ8MDtiPWNbZj4+Ml18MDtp
ZigoYnwwKT09MCl7Y1tmPj4yXT1lO2NbZCsyND4+Ml09ZztjW2QrMzY+PjJdPTE7aWYoISgoY1tk
KzQ4Pj4yXXwwKT09MSYoZ3wwKT09MSkpe3JldHVybn1hW2QrNTR8MF09MTtyZXR1cm59aWYoKGJ8
MCkhPShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7YVtkKzU0fDBdPTE7cmV0
dXJufWU9ZCsyNHwwO2I9Y1tlPj4yXXwwO2lmKChifDApPT0yKXtjW2U+PjJdPWc7aT1nfWVsc2V7
aT1ifWlmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKGl8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7
cmV0dXJufWZ1bmN0aW9uIGtGKGIsZCxlLGYsZyl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
O2g9YnwwO2lmKChofDApPT0oY1tkKzg+PjJdfDApKXtpZigoY1tkKzQ+PjJdfDApIT0oZXwwKSl7
cmV0dXJufWk9ZCsyOHwwO2lmKChjW2k+PjJdfDApPT0xKXtyZXR1cm59Y1tpPj4yXT1mO3JldHVy
bn1pZigoaHwwKT09KGNbZD4+Ml18MCkpe2Rve2lmKChjW2QrMTY+PjJdfDApIT0oZXwwKSl7aD1k
KzIwfDA7aWYoKGNbaD4+Ml18MCk9PShlfDApKXticmVha31jW2QrMzI+PjJdPWY7aT1kKzQ0fDA7
aWYoKGNbaT4+Ml18MCk9PTQpe3JldHVybn1qPWNbYisxMj4+Ml18MDtrPWIrMTYrKGo8PDMpfDA7
TDQ3NDpkb3tpZigoanwwKT4wKXtsPWQrNTJ8MDttPWQrNTN8MDtuPWQrNTR8MDtvPWIrOHwwO3A9
ZCsyNHwwO3E9ZTtyPTA7cz1iKzE2fDA7dD0wO0w0NzY6d2hpbGUoMSl7YVtsXT0wO2FbbV09MDt1
PWNbcys0Pj4yXXwwO3Y9dT4+ODtpZigodSYxfDApPT0wKXt3PXZ9ZWxzZXt3PWNbKGNbcT4+Ml18
MCkrdj4+Ml18MH12PWNbcz4+Ml18MDtiOVtjWyhjW3Y+PjJdfDApKzIwPj4yXSYzMV0odixkLGUs
ZSt3fDAsMi0odT4+PjEmMSl8MCxnKTtpZigoYVtuXSYxKSE9MCl7eD10O3k9cjticmVha31kb3tp
ZigoYVttXSYxKT09MCl7ej10O0E9cn1lbHNle2lmKChhW2xdJjEpPT0wKXtpZigoY1tvPj4yXSYx
fDApPT0wKXt4PTE7eT1yO2JyZWFrIEw0NzZ9ZWxzZXt6PTE7QT1yO2JyZWFrfX1pZigoY1twPj4y
XXwwKT09MSl7Qj0zODU7YnJlYWsgTDQ3NH1pZigoY1tvPj4yXSYyfDApPT0wKXtCPTM4NTticmVh
ayBMNDc0fWVsc2V7ej0xO0E9MX19fXdoaWxlKDApO3U9cys4fDA7aWYodT4+PjA8az4+PjApe3I9
QTtzPXU7dD16fWVsc2V7eD16O3k9QTticmVha319aWYoeSl7Qz14O0I9Mzg0fWVsc2V7RD14O0I9
MzgxfX1lbHNle0Q9MDtCPTM4MX19d2hpbGUoMCk7ZG97aWYoKEJ8MCk9PTM4MSl7Y1toPj4yXT1l
O2s9ZCs0MHwwO2Nbaz4+Ml09KGNbaz4+Ml18MCkrMTtpZigoY1tkKzM2Pj4yXXwwKSE9MSl7Qz1E
O0I9Mzg0O2JyZWFrfWlmKChjW2QrMjQ+PjJdfDApIT0yKXtDPUQ7Qj0zODQ7YnJlYWt9YVtkKzU0
fDBdPTE7aWYoRCl7Qj0zODV9ZWxzZXtCPTM4Nn19fXdoaWxlKDApO2lmKChCfDApPT0zODQpe2lm
KEMpe0I9Mzg1fWVsc2V7Qj0zODZ9fWlmKChCfDApPT0zODUpe2NbaT4+Ml09MztyZXR1cm59ZWxz
ZSBpZigoQnwwKT09Mzg2KXtjW2k+PjJdPTQ7cmV0dXJufX19d2hpbGUoMCk7aWYoKGZ8MCkhPTEp
e3JldHVybn1jW2QrMzI+PjJdPTE7cmV0dXJufUM9Y1tiKzEyPj4yXXwwO0Q9YisxNisoQzw8Myl8
MDt4PWNbYisyMD4+Ml18MDt5PXg+Pjg7aWYoKHgmMXwwKT09MCl7RT15fWVsc2V7RT1jWyhjW2U+
PjJdfDApK3k+PjJdfDB9eT1jW2IrMTY+PjJdfDA7YldbY1soY1t5Pj4yXXwwKSsyND4+Ml0mN10o
eSxkLGUrRXwwLCh4JjJ8MCkhPTA/ZjoyLGcpO3g9YisyNHwwO2lmKChDfDApPD0xKXtyZXR1cm59
Qz1jW2IrOD4+Ml18MDtkb3tpZigoQyYyfDApPT0wKXtiPWQrMzZ8MDtpZigoY1tiPj4yXXwwKT09
MSl7YnJlYWt9aWYoKEMmMXwwKT09MCl7RT1kKzU0fDA7eT1lO0E9eDt3aGlsZSgxKXtpZigoYVtF
XSYxKSE9MCl7Qj00MjU7YnJlYWt9aWYoKGNbYj4+Ml18MCk9PTEpe0I9NDI2O2JyZWFrfXo9Y1tB
KzQ+PjJdfDA7dz16Pj44O2lmKCh6JjF8MCk9PTApe0Y9d31lbHNle0Y9Y1soY1t5Pj4yXXwwKSt3
Pj4yXXwwfXc9Y1tBPj4yXXwwO2JXW2NbKGNbdz4+Ml18MCkrMjQ+PjJdJjddKHcsZCxlK0Z8MCwo
eiYyfDApIT0wP2Y6MixnKTt6PUErOHwwO2lmKHo+Pj4wPEQ+Pj4wKXtBPXp9ZWxzZXtCPTQxMjti
cmVha319aWYoKEJ8MCk9PTQxMil7cmV0dXJufWVsc2UgaWYoKEJ8MCk9PTQyNSl7cmV0dXJufWVs
c2UgaWYoKEJ8MCk9PTQyNil7cmV0dXJufX1BPWQrMjR8MDt5PWQrNTR8MDtFPWU7aT14O3doaWxl
KDEpe2lmKChhW3ldJjEpIT0wKXtCPTQyMjticmVha31pZigoY1tiPj4yXXwwKT09MSl7aWYoKGNb
QT4+Ml18MCk9PTEpe0I9NDIzO2JyZWFrfX16PWNbaSs0Pj4yXXwwO3c9ej4+ODtpZigoeiYxfDAp
PT0wKXtHPXd9ZWxzZXtHPWNbKGNbRT4+Ml18MCkrdz4+Ml18MH13PWNbaT4+Ml18MDtiV1tjWyhj
W3c+PjJdfDApKzI0Pj4yXSY3XSh3LGQsZStHfDAsKHomMnwwKSE9MD9mOjIsZyk7ej1pKzh8MDtp
Zih6Pj4+MDxEPj4+MCl7aT16fWVsc2V7Qj00MjQ7YnJlYWt9fWlmKChCfDApPT00MjIpe3JldHVy
bn1lbHNlIGlmKChCfDApPT00MjMpe3JldHVybn1lbHNlIGlmKChCfDApPT00MjQpe3JldHVybn19
fXdoaWxlKDApO0c9ZCs1NHwwO0Y9ZTtDPXg7d2hpbGUoMSl7aWYoKGFbR10mMSkhPTApe0I9NDIx
O2JyZWFrfXg9Y1tDKzQ+PjJdfDA7aT14Pj44O2lmKCh4JjF8MCk9PTApe0g9aX1lbHNle0g9Y1so
Y1tGPj4yXXwwKStpPj4yXXwwfWk9Y1tDPj4yXXwwO2JXW2NbKGNbaT4+Ml18MCkrMjQ+PjJdJjdd
KGksZCxlK0h8MCwoeCYyfDApIT0wP2Y6MixnKTt4PUMrOHwwO2lmKHg+Pj4wPEQ+Pj4wKXtDPXh9
ZWxzZXtCPTQyMDticmVha319aWYoKEJ8MCk9PTQyMCl7cmV0dXJufWVsc2UgaWYoKEJ8MCk9PTQy
MSl7cmV0dXJufX1mdW5jdGlvbiBrRyhiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO3ZhciBoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTA7aD1ifDA7aWYoKGh8MCk9PShj
W2QrOD4+Ml18MCkpe2lmKChjW2QrND4+Ml18MCkhPShlfDApKXtyZXR1cm59aT1kKzI4fDA7aWYo
KGNbaT4+Ml18MCk9PTEpe3JldHVybn1jW2k+PjJdPWY7cmV0dXJufWlmKChofDApIT0oY1tkPj4y
XXwwKSl7aD1jW2IrOD4+Ml18MDtiV1tjWyhjW2g+PjJdfDApKzI0Pj4yXSY3XShoLGQsZSxmLGcp
O3JldHVybn1kb3tpZigoY1tkKzE2Pj4yXXwwKSE9KGV8MCkpe2g9ZCsyMHwwO2lmKChjW2g+PjJd
fDApPT0oZXwwKSl7YnJlYWt9Y1tkKzMyPj4yXT1mO2k9ZCs0NHwwO2lmKChjW2k+PjJdfDApPT00
KXtyZXR1cm59aj1kKzUyfDA7YVtqXT0wO2s9ZCs1M3wwO2Fba109MDtsPWNbYis4Pj4yXXwwO2I5
W2NbKGNbbD4+Ml18MCkrMjA+PjJdJjMxXShsLGQsZSxlLDEsZyk7aWYoKGFba10mMSk9PTApe209
MDtuPTQ0MX1lbHNle2lmKChhW2pdJjEpPT0wKXttPTE7bj00NDF9fUw1NzY6ZG97aWYoKG58MCk9
PTQ0MSl7Y1toPj4yXT1lO2o9ZCs0MHwwO2Nbaj4+Ml09KGNbaj4+Ml18MCkrMTtkb3tpZigoY1tk
KzM2Pj4yXXwwKT09MSl7aWYoKGNbZCsyND4+Ml18MCkhPTIpe249NDQ0O2JyZWFrfWFbZCs1NHww
XT0xO2lmKG0pe2JyZWFrIEw1NzZ9fWVsc2V7bj00NDR9fXdoaWxlKDApO2lmKChufDApPT00NDQp
e2lmKG0pe2JyZWFrfX1jW2k+PjJdPTQ7cmV0dXJufX13aGlsZSgwKTtjW2k+PjJdPTM7cmV0dXJu
fX13aGlsZSgwKTtpZigoZnwwKSE9MSl7cmV0dXJufWNbZCszMj4+Ml09MTtyZXR1cm59ZnVuY3Rp
b24ga0goYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3Zh
ciBpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MDtpZigoYnwwKSE9KGNbZCs4Pj4yXXwwKSl7aT1kKzUyfDA7aj1hW2ldJjE7az1kKzUzfDA7
bD1hW2tdJjE7bT1jW2IrMTI+PjJdfDA7bj1iKzE2KyhtPDwzKXwwO2FbaV09MDthW2tdPTA7bz1j
W2IrMjA+PjJdfDA7cD1vPj44O2lmKChvJjF8MCk9PTApe3E9cH1lbHNle3E9Y1soY1tmPj4yXXww
KStwPj4yXXwwfXA9Y1tiKzE2Pj4yXXwwO2I5W2NbKGNbcD4+Ml18MCkrMjA+PjJdJjMxXShwLGQs
ZSxmK3F8MCwobyYyfDApIT0wP2c6MixoKTtMNTk4OmRve2lmKChtfDApPjEpe289ZCsyNHwwO3E9
Yis4fDA7cD1kKzU0fDA7cj1mO3M9YisyNHwwO2Rve2lmKChhW3BdJjEpIT0wKXticmVhayBMNTk4
fWRve2lmKChhW2ldJjEpPT0wKXtpZigoYVtrXSYxKT09MCl7YnJlYWt9aWYoKGNbcT4+Ml0mMXww
KT09MCl7YnJlYWsgTDU5OH19ZWxzZXtpZigoY1tvPj4yXXwwKT09MSl7YnJlYWsgTDU5OH1pZigo
Y1txPj4yXSYyfDApPT0wKXticmVhayBMNTk4fX19d2hpbGUoMCk7YVtpXT0wO2Fba109MDt0PWNb
cys0Pj4yXXwwO3U9dD4+ODtpZigodCYxfDApPT0wKXt2PXV9ZWxzZXt2PWNbKGNbcj4+Ml18MCkr
dT4+Ml18MH11PWNbcz4+Ml18MDtiOVtjWyhjW3U+PjJdfDApKzIwPj4yXSYzMV0odSxkLGUsZit2
fDAsKHQmMnwwKSE9MD9nOjIsaCk7cz1zKzh8MDt9d2hpbGUocz4+PjA8bj4+PjApfX13aGlsZSgw
KTthW2ldPWo7YVtrXT1sO3JldHVybn1hW2QrNTN8MF09MTtpZigoY1tkKzQ+PjJdfDApIT0oZnww
KSl7cmV0dXJufWFbZCs1MnwwXT0xO2Y9ZCsxNnwwO2w9Y1tmPj4yXXwwO2lmKChsfDApPT0wKXtj
W2Y+PjJdPWU7Y1tkKzI0Pj4yXT1nO2NbZCszNj4+Ml09MTtpZighKChjW2QrNDg+PjJdfDApPT0x
JihnfDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0xO3JldHVybn1pZigobHwwKSE9KGV8MCkpe2U9
ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTthW2QrNTR8MF09MTtyZXR1cm59ZT1kKzI0fDA7
bD1jW2U+PjJdfDA7aWYoKGx8MCk9PTIpe2NbZT4+Ml09Zzt3PWd9ZWxzZXt3PWx9aWYoISgoY1tk
KzQ4Pj4yXXwwKT09MSYod3wwKT09MSkpe3JldHVybn1hW2QrNTR8MF09MTtyZXR1cm59ZnVuY3Rp
b24ga0koYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3Zh
ciBpPTAsaj0wO2lmKChifDApIT0oY1tkKzg+PjJdfDApKXtpPWNbYis4Pj4yXXwwO2I5W2NbKGNb
aT4+Ml18MCkrMjA+PjJdJjMxXShpLGQsZSxmLGcsaCk7cmV0dXJufWFbZCs1M3wwXT0xO2lmKChj
W2QrND4+Ml18MCkhPShmfDApKXtyZXR1cm59YVtkKzUyfDBdPTE7Zj1kKzE2fDA7aD1jW2Y+PjJd
fDA7aWYoKGh8MCk9PTApe2NbZj4+Ml09ZTtjW2QrMjQ+PjJdPWc7Y1tkKzM2Pj4yXT0xO2lmKCEo
KGNbZCs0OD4+Ml18MCk9PTEmKGd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0dXJufWlm
KChofDApIT0oZXwwKSl7ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2FbZCs1NHwwXT0x
O3JldHVybn1lPWQrMjR8MDtoPWNbZT4+Ml18MDtpZigoaHwwKT09Mil7Y1tlPj4yXT1nO2o9Z31l
bHNle2o9aH1pZighKChjW2QrNDg+PjJdfDApPT0xJihqfDApPT0xKSl7cmV0dXJufWFbZCs1NHww
XT0xO3JldHVybn1mdW5jdGlvbiBrSihhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9MCxo
PTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAs
WT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxh
aT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9
MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0wLGFFPTAs
YUY9MCxhRz0wO2Rve2lmKGE+Pj4wPDI0NSl7aWYoYT4+PjA8MTEpe2I9MTZ9ZWxzZXtiPWErMTEm
LTh9ZD1iPj4+MztlPWNbMjQ2MF18MDtmPWU+Pj4oZD4+PjApO2lmKChmJjN8MCkhPTApe2c9KGYm
MV4xKStkfDA7aD1nPDwxO2k9OTg4MCsoaDw8Mil8MDtqPTk4ODArKGgrMjw8Mil8MDtoPWNbaj4+
Ml18MDtrPWgrOHwwO2w9Y1trPj4yXXwwO2Rve2lmKChpfDApPT0obHwwKSl7Y1syNDYwXT1lJn4o
MTw8Zyl9ZWxzZXtpZihsPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9bT1sKzEy
fDA7aWYoKGNbbT4+Ml18MCk9PShofDApKXtjW20+PjJdPWk7Y1tqPj4yXT1sO2JyZWFrfWVsc2V7
YkcoKTtyZXR1cm4gMH19fXdoaWxlKDApO2w9Zzw8MztjW2grND4+Ml09bHwzO2o9aCsobHw0KXww
O2Nbaj4+Ml09Y1tqPj4yXXwxO249aztyZXR1cm4gbnwwfWlmKGI+Pj4wPD0oY1syNDYyXXwwKT4+
PjApe289YjticmVha31pZigoZnwwKSE9MCl7aj0yPDxkO2w9Zjw8ZCYoanwtaik7aj0obCYtbCkt
MXwwO2w9aj4+PjEyJjE2O2k9aj4+PihsPj4+MCk7aj1pPj4+NSY4O209aT4+PihqPj4+MCk7aT1t
Pj4+MiY0O3A9bT4+PihpPj4+MCk7bT1wPj4+MSYyO3E9cD4+PihtPj4+MCk7cD1xPj4+MSYxO3I9
KGp8bHxpfG18cCkrKHE+Pj4ocD4+PjApKXwwO3A9cjw8MTtxPTk4ODArKHA8PDIpfDA7bT05ODgw
KyhwKzI8PDIpfDA7cD1jW20+PjJdfDA7aT1wKzh8MDtsPWNbaT4+Ml18MDtkb3tpZigocXwwKT09
KGx8MCkpe2NbMjQ2MF09ZSZ+KDE8PHIpfWVsc2V7aWYobD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXti
RygpO3JldHVybiAwfWo9bCsxMnwwO2lmKChjW2o+PjJdfDApPT0ocHwwKSl7Y1tqPj4yXT1xO2Nb
bT4+Ml09bDticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtsPXI8PDM7bT1sLWJ8
MDtjW3ArND4+Ml09YnwzO3E9cDtlPXErYnwwO2NbcSsoYnw0KT4+Ml09bXwxO2NbcStsPj4yXT1t
O2w9Y1syNDYyXXwwO2lmKChsfDApIT0wKXtxPWNbMjQ2NV18MDtkPWw+Pj4zO2w9ZDw8MTtmPTk4
ODArKGw8PDIpfDA7az1jWzI0NjBdfDA7aD0xPDxkO2Rve2lmKChrJmh8MCk9PTApe2NbMjQ2MF09
a3xoO3M9Zjt0PTk4ODArKGwrMjw8Mil8MH1lbHNle2Q9OTg4MCsobCsyPDwyKXwwO2c9Y1tkPj4y
XXwwO2lmKGc+Pj4wPj0oY1syNDY0XXwwKT4+PjApe3M9Zzt0PWQ7YnJlYWt9YkcoKTtyZXR1cm4g
MH19d2hpbGUoMCk7Y1t0Pj4yXT1xO2NbcysxMj4+Ml09cTtjW3ErOD4+Ml09cztjW3ErMTI+PjJd
PWZ9Y1syNDYyXT1tO2NbMjQ2NV09ZTtuPWk7cmV0dXJuIG58MH1sPWNbMjQ2MV18MDtpZigobHww
KT09MCl7bz1iO2JyZWFrfWg9KGwmLWwpLTF8MDtsPWg+Pj4xMiYxNjtrPWg+Pj4obD4+PjApO2g9
az4+PjUmODtwPWs+Pj4oaD4+PjApO2s9cD4+PjImNDtyPXA+Pj4oaz4+PjApO3A9cj4+PjEmMjtk
PXI+Pj4ocD4+PjApO3I9ZD4+PjEmMTtnPWNbMTAxNDQrKChofGx8a3xwfHIpKyhkPj4+KHI+Pj4w
KSk8PDIpPj4yXXwwO3I9ZztkPWc7cD0oY1tnKzQ+PjJdJi04KS1ifDA7d2hpbGUoMSl7Zz1jW3Ir
MTY+PjJdfDA7aWYoKGd8MCk9PTApe2s9Y1tyKzIwPj4yXXwwO2lmKChrfDApPT0wKXticmVha31l
bHNle3U9a319ZWxzZXt1PWd9Zz0oY1t1KzQ+PjJdJi04KS1ifDA7az1nPj4+MDxwPj4+MDtyPXU7
ZD1rP3U6ZDtwPWs/ZzpwfXI9ZDtpPWNbMjQ2NF18MDtpZihyPj4+MDxpPj4+MCl7YkcoKTtyZXR1
cm4gMH1lPXIrYnwwO209ZTtpZihyPj4+MD49ZT4+PjApe2JHKCk7cmV0dXJuIDB9ZT1jW2QrMjQ+
PjJdfDA7Zj1jW2QrMTI+PjJdfDA7ZG97aWYoKGZ8MCk9PShkfDApKXtxPWQrMjB8MDtnPWNbcT4+
Ml18MDtpZigoZ3wwKT09MCl7az1kKzE2fDA7bD1jW2s+PjJdfDA7aWYoKGx8MCk9PTApe3Y9MDti
cmVha31lbHNle3c9bDt4PWt9fWVsc2V7dz1nO3g9cX13aGlsZSgxKXtxPXcrMjB8MDtnPWNbcT4+
Ml18MDtpZigoZ3wwKSE9MCl7dz1nO3g9cTtjb250aW51ZX1xPXcrMTZ8MDtnPWNbcT4+Ml18MDtp
ZigoZ3wwKT09MCl7YnJlYWt9ZWxzZXt3PWc7eD1xfX1pZih4Pj4+MDxpPj4+MCl7YkcoKTtyZXR1
cm4gMH1lbHNle2NbeD4+Ml09MDt2PXc7YnJlYWt9fWVsc2V7cT1jW2QrOD4+Ml18MDtpZihxPj4+
MDxpPj4+MCl7YkcoKTtyZXR1cm4gMH1nPXErMTJ8MDtpZigoY1tnPj4yXXwwKSE9KGR8MCkpe2JH
KCk7cmV0dXJuIDB9az1mKzh8MDtpZigoY1trPj4yXXwwKT09KGR8MCkpe2NbZz4+Ml09ZjtjW2s+
PjJdPXE7dj1mO2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDApO0w3NDA6ZG97aWYo
KGV8MCkhPTApe2Y9ZCsyOHwwO2k9MTAxNDQrKGNbZj4+Ml08PDIpfDA7ZG97aWYoKGR8MCk9PShj
W2k+PjJdfDApKXtjW2k+PjJdPXY7aWYoKHZ8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+
KDE8PGNbZj4+Ml0pO2JyZWFrIEw3NDB9ZWxzZXtpZihlPj4+MDwoY1syNDY0XXwwKT4+PjApe2JH
KCk7cmV0dXJuIDB9cT1lKzE2fDA7aWYoKGNbcT4+Ml18MCk9PShkfDApKXtjW3E+PjJdPXZ9ZWxz
ZXtjW2UrMjA+PjJdPXZ9aWYoKHZ8MCk9PTApe2JyZWFrIEw3NDB9fX13aGlsZSgwKTtpZih2Pj4+
MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9Y1t2KzI0Pj4yXT1lO2Y9Y1tkKzE2Pj4y
XXwwO2Rve2lmKChmfDApIT0wKXtpZihmPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJu
IDB9ZWxzZXtjW3YrMTY+PjJdPWY7Y1tmKzI0Pj4yXT12O2JyZWFrfX19d2hpbGUoMCk7Zj1jW2Qr
MjA+PjJdfDA7aWYoKGZ8MCk9PTApe2JyZWFrfWlmKGY+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KTtyZXR1cm4gMH1lbHNle2NbdisyMD4+Ml09ZjtjW2YrMjQ+PjJdPXY7YnJlYWt9fX13aGlsZSgw
KTtpZihwPj4+MDwxNil7ZT1wK2J8MDtjW2QrND4+Ml09ZXwzO2Y9cisoZSs0KXwwO2NbZj4+Ml09
Y1tmPj4yXXwxfWVsc2V7Y1tkKzQ+PjJdPWJ8MztjW3IrKGJ8NCk+PjJdPXB8MTtjW3IrKHArYik+
PjJdPXA7Zj1jWzI0NjJdfDA7aWYoKGZ8MCkhPTApe2U9Y1syNDY1XXwwO2k9Zj4+PjM7Zj1pPDwx
O3E9OTg4MCsoZjw8Mil8MDtrPWNbMjQ2MF18MDtnPTE8PGk7ZG97aWYoKGsmZ3wwKT09MCl7Y1sy
NDYwXT1rfGc7eT1xO3o9OTg4MCsoZisyPDwyKXwwfWVsc2V7aT05ODgwKyhmKzI8PDIpfDA7bD1j
W2k+PjJdfDA7aWYobD4+PjA+PShjWzI0NjRdfDApPj4+MCl7eT1sO3o9aTticmVha31iRygpO3Jl
dHVybiAwfX13aGlsZSgwKTtjW3o+PjJdPWU7Y1t5KzEyPj4yXT1lO2NbZSs4Pj4yXT15O2NbZSsx
Mj4+Ml09cX1jWzI0NjJdPXA7Y1syNDY1XT1tfWY9ZCs4fDA7aWYoKGZ8MCk9PTApe289YjticmVh
a31lbHNle249Zn1yZXR1cm4gbnwwfWVsc2V7aWYoYT4+PjA+NDI5NDk2NzIzMSl7bz0tMTticmVh
a31mPWErMTF8MDtnPWYmLTg7az1jWzI0NjFdfDA7aWYoKGt8MCk9PTApe289ZzticmVha31yPS1n
fDA7aT1mPj4+ODtkb3tpZigoaXwwKT09MCl7QT0wfWVsc2V7aWYoZz4+PjA+MTY3NzcyMTUpe0E9
MzE7YnJlYWt9Zj0oaSsxMDQ4MzIwfDApPj4+MTYmODtsPWk8PGY7aD0obCs1MjAxOTJ8MCk+Pj4x
NiY0O2o9bDw8aDtsPShqKzI0NTc2MHwwKT4+PjE2JjI7Qj0xNC0oaHxmfGwpKyhqPDxsPj4+MTUp
fDA7QT1nPj4+KChCKzd8MCk+Pj4wKSYxfEI8PDF9fXdoaWxlKDApO2k9Y1sxMDE0NCsoQTw8Mik+
PjJdfDA7TDc4ODpkb3tpZigoaXwwKT09MCl7Qz0wO0Q9cjtFPTB9ZWxzZXtpZigoQXwwKT09MzEp
e0Y9MH1lbHNle0Y9MjUtKEE+Pj4xKXwwfWQ9MDttPXI7cD1pO3E9Zzw8RjtlPTA7d2hpbGUoMSl7
Qj1jW3ArND4+Ml0mLTg7bD1CLWd8MDtpZihsPj4+MDxtPj4+MCl7aWYoKEJ8MCk9PShnfDApKXtD
PXA7RD1sO0U9cDticmVhayBMNzg4fWVsc2V7Rz1wO0g9bH19ZWxzZXtHPWQ7SD1tfWw9Y1twKzIw
Pj4yXXwwO0I9Y1twKzE2KyhxPj4+MzE8PDIpPj4yXXwwO2o9KGx8MCk9PTB8KGx8MCk9PShCfDAp
P2U6bDtpZigoQnwwKT09MCl7Qz1HO0Q9SDtFPWo7YnJlYWt9ZWxzZXtkPUc7bT1IO3A9QjtxPXE8
PDE7ZT1qfX19fXdoaWxlKDApO2lmKChFfDApPT0wJihDfDApPT0wKXtpPTI8PEE7cj1rJihpfC1p
KTtpZigocnwwKT09MCl7bz1nO2JyZWFrfWk9KHImLXIpLTF8MDtyPWk+Pj4xMiYxNjtlPWk+Pj4o
cj4+PjApO2k9ZT4+PjUmODtxPWU+Pj4oaT4+PjApO2U9cT4+PjImNDtwPXE+Pj4oZT4+PjApO3E9
cD4+PjEmMjttPXA+Pj4ocT4+PjApO3A9bT4+PjEmMTtJPWNbMTAxNDQrKChpfHJ8ZXxxfHApKyht
Pj4+KHA+Pj4wKSk8PDIpPj4yXXwwfWVsc2V7ST1FfWlmKChJfDApPT0wKXtKPUQ7Sz1DfWVsc2V7
cD1JO209RDtxPUM7d2hpbGUoMSl7ZT0oY1twKzQ+PjJdJi04KS1nfDA7cj1lPj4+MDxtPj4+MDtp
PXI/ZTptO2U9cj9wOnE7cj1jW3ArMTY+PjJdfDA7aWYoKHJ8MCkhPTApe3A9cjttPWk7cT1lO2Nv
bnRpbnVlfXI9Y1twKzIwPj4yXXwwO2lmKChyfDApPT0wKXtKPWk7Sz1lO2JyZWFrfWVsc2V7cD1y
O209aTtxPWV9fX1pZigoS3wwKT09MCl7bz1nO2JyZWFrfWlmKEo+Pj4wPj0oKGNbMjQ2Ml18MCkt
Z3wwKT4+PjApe289ZzticmVha31xPUs7bT1jWzI0NjRdfDA7aWYocT4+PjA8bT4+PjApe2JHKCk7
cmV0dXJuIDB9cD1xK2d8MDtrPXA7aWYocT4+PjA+PXA+Pj4wKXtiRygpO3JldHVybiAwfWU9Y1tL
KzI0Pj4yXXwwO2k9Y1tLKzEyPj4yXXwwO2Rve2lmKChpfDApPT0oS3wwKSl7cj1LKzIwfDA7ZD1j
W3I+PjJdfDA7aWYoKGR8MCk9PTApe2o9SysxNnwwO0I9Y1tqPj4yXXwwO2lmKChCfDApPT0wKXtM
PTA7YnJlYWt9ZWxzZXtNPUI7Tj1qfX1lbHNle009ZDtOPXJ9d2hpbGUoMSl7cj1NKzIwfDA7ZD1j
W3I+PjJdfDA7aWYoKGR8MCkhPTApe009ZDtOPXI7Y29udGludWV9cj1NKzE2fDA7ZD1jW3I+PjJd
fDA7aWYoKGR8MCk9PTApe2JyZWFrfWVsc2V7TT1kO049cn19aWYoTj4+PjA8bT4+PjApe2JHKCk7
cmV0dXJuIDB9ZWxzZXtjW04+PjJdPTA7TD1NO2JyZWFrfX1lbHNle3I9Y1tLKzg+PjJdfDA7aWYo
cj4+PjA8bT4+PjApe2JHKCk7cmV0dXJuIDB9ZD1yKzEyfDA7aWYoKGNbZD4+Ml18MCkhPShLfDAp
KXtiRygpO3JldHVybiAwfWo9aSs4fDA7aWYoKGNbaj4+Ml18MCk9PShLfDApKXtjW2Q+PjJdPWk7
Y1tqPj4yXT1yO0w9aTticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtMODM4OmRv
e2lmKChlfDApIT0wKXtpPUsrMjh8MDttPTEwMTQ0KyhjW2k+PjJdPDwyKXwwO2Rve2lmKChLfDAp
PT0oY1ttPj4yXXwwKSl7Y1ttPj4yXT1MO2lmKChMfDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2
MV0mfigxPDxjW2k+PjJdKTticmVhayBMODM4fWVsc2V7aWYoZT4+PjA8KGNbMjQ2NF18MCk+Pj4w
KXtiRygpO3JldHVybiAwfXI9ZSsxNnwwO2lmKChjW3I+PjJdfDApPT0oS3wwKSl7Y1tyPj4yXT1M
fWVsc2V7Y1tlKzIwPj4yXT1MfWlmKChMfDApPT0wKXticmVhayBMODM4fX19d2hpbGUoMCk7aWYo
TD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWNbTCsyND4+Ml09ZTtpPWNbSysx
Nj4+Ml18MDtkb3tpZigoaXwwKSE9MCl7aWYoaT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3Jl
dHVybiAwfWVsc2V7Y1tMKzE2Pj4yXT1pO2NbaSsyND4+Ml09TDticmVha319fXdoaWxlKDApO2k9
Y1tLKzIwPj4yXXwwO2lmKChpfDApPT0wKXticmVha31pZihpPj4+MDwoY1syNDY0XXwwKT4+PjAp
e2JHKCk7cmV0dXJuIDB9ZWxzZXtjW0wrMjA+PjJdPWk7Y1tpKzI0Pj4yXT1MO2JyZWFrfX19d2hp
bGUoMCk7ZG97aWYoSj4+PjA8MTYpe2U9SitnfDA7Y1tLKzQ+PjJdPWV8MztpPXErKGUrNCl8MDtj
W2k+PjJdPWNbaT4+Ml18MX1lbHNle2NbSys0Pj4yXT1nfDM7Y1txKyhnfDQpPj4yXT1KfDE7Y1tx
KyhKK2cpPj4yXT1KO2k9Sj4+PjM7aWYoSj4+PjA8MjU2KXtlPWk8PDE7bT05ODgwKyhlPDwyKXww
O3I9Y1syNDYwXXwwO2o9MTw8aTtkb3tpZigociZqfDApPT0wKXtjWzI0NjBdPXJ8ajtPPW07UD05
ODgwKyhlKzI8PDIpfDB9ZWxzZXtpPTk4ODArKGUrMjw8Mil8MDtkPWNbaT4+Ml18MDtpZihkPj4+
MD49KGNbMjQ2NF18MCk+Pj4wKXtPPWQ7UD1pO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDAp
O2NbUD4+Ml09aztjW08rMTI+PjJdPWs7Y1txKyhnKzgpPj4yXT1PO2NbcSsoZysxMik+PjJdPW07
YnJlYWt9ZT1wO2o9Sj4+Pjg7ZG97aWYoKGp8MCk9PTApe1E9MH1lbHNle2lmKEo+Pj4wPjE2Nzc3
MjE1KXtRPTMxO2JyZWFrfXI9KGorMTA0ODMyMHwwKT4+PjE2Jjg7aT1qPDxyO2Q9KGkrNTIwMTky
fDApPj4+MTYmNDtCPWk8PGQ7aT0oQisyNDU3NjB8MCk+Pj4xNiYyO2w9MTQtKGR8cnxpKSsoQjw8
aT4+PjE1KXwwO1E9Sj4+PigobCs3fDApPj4+MCkmMXxsPDwxfX13aGlsZSgwKTtqPTEwMTQ0KyhR
PDwyKXwwO2NbcSsoZysyOCk+PjJdPVE7Y1txKyhnKzIwKT4+Ml09MDtjW3ErKGcrMTYpPj4yXT0w
O209Y1syNDYxXXwwO2w9MTw8UTtpZigobSZsfDApPT0wKXtjWzI0NjFdPW18bDtjW2o+PjJdPWU7
Y1txKyhnKzI0KT4+Ml09ajtjW3ErKGcrMTIpPj4yXT1lO2NbcSsoZys4KT4+Ml09ZTticmVha31p
ZigoUXwwKT09MzEpe1I9MH1lbHNle1I9MjUtKFE+Pj4xKXwwfWw9Sjw8UjttPWNbaj4+Ml18MDt3
aGlsZSgxKXtpZigoY1ttKzQ+PjJdJi04fDApPT0oSnwwKSl7YnJlYWt9Uz1tKzE2KyhsPj4+MzE8
PDIpfDA7aj1jW1M+PjJdfDA7aWYoKGp8MCk9PTApe1Q9NjYxO2JyZWFrfWVsc2V7bD1sPDwxO209
an19aWYoKFR8MCk9PTY2MSl7aWYoUz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAw
fWVsc2V7Y1tTPj4yXT1lO2NbcSsoZysyNCk+PjJdPW07Y1txKyhnKzEyKT4+Ml09ZTtjW3ErKGcr
OCk+PjJdPWU7YnJlYWt9fWw9bSs4fDA7aj1jW2w+PjJdfDA7aT1jWzI0NjRdfDA7aWYobT4+PjA8
aT4+PjApe2JHKCk7cmV0dXJuIDB9aWYoaj4+PjA8aT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtj
W2orMTI+PjJdPWU7Y1tsPj4yXT1lO2NbcSsoZys4KT4+Ml09ajtjW3ErKGcrMTIpPj4yXT1tO2Nb
cSsoZysyNCk+PjJdPTA7YnJlYWt9fX13aGlsZSgwKTtxPUsrOHwwO2lmKChxfDApPT0wKXtvPWc7
YnJlYWt9ZWxzZXtuPXF9cmV0dXJuIG58MH19d2hpbGUoMCk7Sz1jWzI0NjJdfDA7aWYobz4+PjA8
PUs+Pj4wKXtTPUstb3wwO0o9Y1syNDY1XXwwO2lmKFM+Pj4wPjE1KXtSPUo7Y1syNDY1XT1SK287
Y1syNDYyXT1TO2NbUisobys0KT4+Ml09U3wxO2NbUitLPj4yXT1TO2NbSis0Pj4yXT1vfDN9ZWxz
ZXtjWzI0NjJdPTA7Y1syNDY1XT0wO2NbSis0Pj4yXT1LfDM7Uz1KKyhLKzQpfDA7Y1tTPj4yXT1j
W1M+PjJdfDF9bj1KKzh8MDtyZXR1cm4gbnwwfUo9Y1syNDYzXXwwO2lmKG8+Pj4wPEo+Pj4wKXtT
PUotb3wwO2NbMjQ2M109UztKPWNbMjQ2Nl18MDtLPUo7Y1syNDY2XT1LK287Y1tLKyhvKzQpPj4y
XT1TfDE7Y1tKKzQ+PjJdPW98MztuPUorOHwwO3JldHVybiBufDB9ZG97aWYoKGNbMjQ1MF18MCk9
PTApe0o9YkUoOCl8MDtpZigoSi0xJkp8MCk9PTApe2NbMjQ1Ml09SjtjWzI0NTFdPUo7Y1syNDUz
XT0tMTtjWzI0NTRdPS0xO2NbMjQ1NV09MDtjWzI1NzFdPTA7Y1syNDUwXT0oYlYoMCl8MCkmLTE2
XjE0MzE2NTU3Njg7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7Sj1vKzQ4fDA7
Uz1jWzI0NTJdfDA7Sz1vKzQ3fDA7Uj1TK0t8MDtRPS1TfDA7Uz1SJlE7aWYoUz4+PjA8PW8+Pj4w
KXtuPTA7cmV0dXJuIG58MH1PPWNbMjU3MF18MDtkb3tpZigoT3wwKSE9MCl7UD1jWzI1NjhdfDA7
TD1QK1N8MDtpZihMPj4+MDw9UD4+PjB8TD4+PjA+Tz4+PjApe249MH1lbHNle2JyZWFrfXJldHVy
biBufDB9fXdoaWxlKDApO0w5MzA6ZG97aWYoKGNbMjU3MV0mNHwwKT09MCl7Tz1jWzI0NjZdfDA7
TDkzMjpkb3tpZigoT3wwKT09MCl7VD02OTF9ZWxzZXtMPU87UD0xMDI4ODt3aGlsZSgxKXtVPVB8
MDtNPWNbVT4+Ml18MDtpZihNPj4+MDw9TD4+PjApe1Y9UCs0fDA7aWYoKE0rKGNbVj4+Ml18MCl8
MCk+Pj4wPkw+Pj4wKXticmVha319TT1jW1ArOD4+Ml18MDtpZigoTXwwKT09MCl7VD02OTE7YnJl
YWsgTDkzMn1lbHNle1A9TX19aWYoKFB8MCk9PTApe1Q9NjkxO2JyZWFrfUw9Ui0oY1syNDYzXXww
KSZRO2lmKEw+Pj4wPj0yMTQ3NDgzNjQ3KXtXPTA7YnJlYWt9bT1idihMfDApfDA7ZT0obXwwKT09
KChjW1U+PjJdfDApKyhjW1Y+PjJdfDApfDApO1g9ZT9tOi0xO1k9ZT9MOjA7Wj1tO189TDtUPTcw
MH19d2hpbGUoMCk7ZG97aWYoKFR8MCk9PTY5MSl7Tz1idigwKXwwO2lmKChPfDApPT0tMSl7Vz0w
O2JyZWFrfWc9TztMPWNbMjQ1MV18MDttPUwtMXwwO2lmKChtJmd8MCk9PTApeyQ9U31lbHNleyQ9
Uy1nKyhtK2cmLUwpfDB9TD1jWzI1NjhdfDA7Zz1MKyR8MDtpZighKCQ+Pj4wPm8+Pj4wJiQ+Pj4w
PDIxNDc0ODM2NDcpKXtXPTA7YnJlYWt9bT1jWzI1NzBdfDA7aWYoKG18MCkhPTApe2lmKGc+Pj4w
PD1MPj4+MHxnPj4+MD5tPj4+MCl7Vz0wO2JyZWFrfX1tPWJ2KCR8MCl8MDtnPShtfDApPT0oT3ww
KTtYPWc/TzotMTtZPWc/JDowO1o9bTtfPSQ7VD03MDB9fXdoaWxlKDApO0w5NTI6ZG97aWYoKFR8
MCk9PTcwMCl7bT0tX3wwO2lmKChYfDApIT0tMSl7YWE9WTthYj1YO1Q9NzExO2JyZWFrIEw5MzB9
ZG97aWYoKFp8MCkhPS0xJl8+Pj4wPDIxNDc0ODM2NDcmXz4+PjA8Sj4+PjApe2c9Y1syNDUyXXww
O089Sy1fK2cmLWc7aWYoTz4+PjA+PTIxNDc0ODM2NDcpe2FjPV87YnJlYWt9aWYoKGJ2KE98MCl8
MCk9PS0xKXtidihtfDApfDA7Vz1ZO2JyZWFrIEw5NTJ9ZWxzZXthYz1PK198MDticmVha319ZWxz
ZXthYz1ffX13aGlsZSgwKTtpZigoWnwwKT09LTEpe1c9WX1lbHNle2FhPWFjO2FiPVo7VD03MTE7
YnJlYWsgTDkzMH19fXdoaWxlKDApO2NbMjU3MV09Y1syNTcxXXw0O2FkPVc7VD03MDh9ZWxzZXth
ZD0wO1Q9NzA4fX13aGlsZSgwKTtkb3tpZigoVHwwKT09NzA4KXtpZihTPj4+MD49MjE0NzQ4MzY0
Nyl7YnJlYWt9Vz1idihTfDApfDA7Wj1idigwKXwwO2lmKCEoKFp8MCkhPS0xJihXfDApIT0tMSZX
Pj4+MDxaPj4+MCkpe2JyZWFrfWFjPVotV3wwO1o9YWM+Pj4wPihvKzQwfDApPj4+MDtZPVo/Vzot
MTtpZigoWXwwKSE9LTEpe2FhPVo/YWM6YWQ7YWI9WTtUPTcxMX19fXdoaWxlKDApO2Rve2lmKChU
fDApPT03MTEpe2FkPShjWzI1NjhdfDApK2FhfDA7Y1syNTY4XT1hZDtpZihhZD4+PjA+KGNbMjU2
OV18MCk+Pj4wKXtjWzI1NjldPWFkfWFkPWNbMjQ2Nl18MDtMOTcyOmRve2lmKChhZHwwKT09MCl7
Uz1jWzI0NjRdfDA7aWYoKFN8MCk9PTB8YWI+Pj4wPFM+Pj4wKXtjWzI0NjRdPWFifWNbMjU3Ml09
YWI7Y1syNTczXT1hYTtjWzI1NzVdPTA7Y1syNDY5XT1jWzI0NTBdO2NbMjQ2OF09LTE7Uz0wO2Rv
e1k9Uzw8MTthYz05ODgwKyhZPDwyKXwwO2NbOTg4MCsoWSszPDwyKT4+Ml09YWM7Y1s5ODgwKyhZ
KzI8PDIpPj4yXT1hYztTPVMrMXwwO313aGlsZShTPj4+MDwzMik7Uz1hYis4fDA7aWYoKFMmN3ww
KT09MCl7YWU9MH1lbHNle2FlPS1TJjd9Uz1hYS00MC1hZXwwO2NbMjQ2Nl09YWIrYWU7Y1syNDYz
XT1TO2NbYWIrKGFlKzQpPj4yXT1TfDE7Y1thYisoYWEtMzYpPj4yXT00MDtjWzI0NjddPWNbMjQ1
NF19ZWxzZXtTPTEwMjg4O3doaWxlKDEpe2FmPWNbUz4+Ml18MDthZz1TKzR8MDthaD1jW2FnPj4y
XXwwO2lmKChhYnwwKT09KGFmK2FofDApKXtUPTcyMzticmVha31hYz1jW1MrOD4+Ml18MDtpZigo
YWN8MCk9PTApe2JyZWFrfWVsc2V7Uz1hY319ZG97aWYoKFR8MCk9PTcyMyl7aWYoKGNbUysxMj4+
Ml0mOHwwKSE9MCl7YnJlYWt9YWM9YWQ7aWYoIShhYz4+PjA+PWFmPj4+MCZhYz4+PjA8YWI+Pj4w
KSl7YnJlYWt9Y1thZz4+Ml09YWgrYWE7YWM9Y1syNDY2XXwwO1k9KGNbMjQ2M118MCkrYWF8MDta
PWFjO1c9YWMrOHwwO2lmKChXJjd8MCk9PTApe2FpPTB9ZWxzZXthaT0tVyY3fVc9WS1haXwwO2Nb
MjQ2Nl09WithaTtjWzI0NjNdPVc7Y1taKyhhaSs0KT4+Ml09V3wxO2NbWisoWSs0KT4+Ml09NDA7
Y1syNDY3XT1jWzI0NTRdO2JyZWFrIEw5NzJ9fXdoaWxlKDApO2lmKGFiPj4+MDwoY1syNDY0XXww
KT4+PjApe2NbMjQ2NF09YWJ9Uz1hYithYXwwO1k9MTAyODg7d2hpbGUoMSl7YWo9WXwwO2lmKChj
W2FqPj4yXXwwKT09KFN8MCkpe1Q9NzMzO2JyZWFrfVo9Y1tZKzg+PjJdfDA7aWYoKFp8MCk9PTAp
e2JyZWFrfWVsc2V7WT1afX1kb3tpZigoVHwwKT09NzMzKXtpZigoY1tZKzEyPj4yXSY4fDApIT0w
KXticmVha31jW2FqPj4yXT1hYjtTPVkrNHwwO2NbUz4+Ml09KGNbUz4+Ml18MCkrYWE7Uz1hYis4
fDA7aWYoKFMmN3wwKT09MCl7YWs9MH1lbHNle2FrPS1TJjd9Uz1hYisoYWErOCl8MDtpZigoUyY3
fDApPT0wKXthbD0wfWVsc2V7YWw9LVMmN31TPWFiKyhhbCthYSl8MDtaPVM7Vz1haytvfDA7YWM9
YWIrV3wwO189YWM7Sz1TLShhYithayktb3wwO2NbYWIrKGFrKzQpPj4yXT1vfDM7ZG97aWYoKFp8
MCk9PShjWzI0NjZdfDApKXtKPShjWzI0NjNdfDApK0t8MDtjWzI0NjNdPUo7Y1syNDY2XT1fO2Nb
YWIrKFcrNCk+PjJdPUp8MX1lbHNle2lmKChafDApPT0oY1syNDY1XXwwKSl7Sj0oY1syNDYyXXww
KStLfDA7Y1syNDYyXT1KO2NbMjQ2NV09XztjW2FiKyhXKzQpPj4yXT1KfDE7Y1thYisoSitXKT4+
Ml09SjticmVha31KPWFhKzR8MDtYPWNbYWIrKEorYWwpPj4yXXwwO2lmKChYJjN8MCk9PTEpeyQ9
WCYtODtWPVg+Pj4zO0wxMDE3OmRve2lmKFg+Pj4wPDI1Nil7VT1jW2FiKygoYWx8OCkrYWEpPj4y
XXwwO1E9Y1thYisoYWErMTIrYWwpPj4yXXwwO1I9OTg4MCsoVjw8MTw8Mil8MDtkb3tpZigoVXww
KSE9KFJ8MCkpe2lmKFU+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1pZigoY1tV
KzEyPj4yXXwwKT09KFp8MCkpe2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2lmKChRfDAp
PT0oVXwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8Vik7YnJlYWt9ZG97aWYoKFF8MCk9PShSfDAp
KXthbT1RKzh8MH1lbHNle2lmKFE+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1t
PVErOHwwO2lmKChjW20+PjJdfDApPT0oWnwwKSl7YW09bTticmVha31iRygpO3JldHVybiAwfX13
aGlsZSgwKTtjW1UrMTI+PjJdPVE7Y1thbT4+Ml09VX1lbHNle1I9UzttPWNbYWIrKChhbHwyNCkr
YWEpPj4yXXwwO1A9Y1thYisoYWErMTIrYWwpPj4yXXwwO2Rve2lmKChQfDApPT0oUnwwKSl7Tz1h
bHwxNjtnPWFiKyhKK08pfDA7TD1jW2c+PjJdfDA7aWYoKEx8MCk9PTApe2U9YWIrKE8rYWEpfDA7
Tz1jW2U+PjJdfDA7aWYoKE98MCk9PTApe2FuPTA7YnJlYWt9ZWxzZXthbz1PO2FwPWV9fWVsc2V7
YW89TDthcD1nfXdoaWxlKDEpe2c9YW8rMjB8MDtMPWNbZz4+Ml18MDtpZigoTHwwKSE9MCl7YW89
TDthcD1nO2NvbnRpbnVlfWc9YW8rMTZ8MDtMPWNbZz4+Ml18MDtpZigoTHwwKT09MCl7YnJlYWt9
ZWxzZXthbz1MO2FwPWd9fWlmKGFwPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9
ZWxzZXtjW2FwPj4yXT0wO2FuPWFvO2JyZWFrfX1lbHNle2c9Y1thYisoKGFsfDgpK2FhKT4+Ml18
MDtpZihnPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9TD1nKzEyfDA7aWYoKGNb
TD4+Ml18MCkhPShSfDApKXtiRygpO3JldHVybiAwfWU9UCs4fDA7aWYoKGNbZT4+Ml18MCk9PShS
fDApKXtjW0w+PjJdPVA7Y1tlPj4yXT1nO2FuPVA7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19
d2hpbGUoMCk7aWYoKG18MCk9PTApe2JyZWFrfVA9YWIrKGFhKzI4K2FsKXwwO1U9MTAxNDQrKGNb
UD4+Ml08PDIpfDA7ZG97aWYoKFJ8MCk9PShjW1U+PjJdfDApKXtjW1U+PjJdPWFuO2lmKChhbnww
KSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1tQPj4yXSk7YnJlYWsgTDEwMTd9ZWxz
ZXtpZihtPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9UT1tKzE2fDA7aWYoKGNb
UT4+Ml18MCk9PShSfDApKXtjW1E+PjJdPWFufWVsc2V7Y1ttKzIwPj4yXT1hbn1pZigoYW58MCk9
PTApe2JyZWFrIEwxMDE3fX19d2hpbGUoMCk7aWYoYW4+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KTtyZXR1cm4gMH1jW2FuKzI0Pj4yXT1tO1I9YWx8MTY7UD1jW2FiKyhSK2FhKT4+Ml18MDtkb3tp
ZigoUHwwKSE9MCl7aWYoUD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7
Y1thbisxNj4+Ml09UDtjW1ArMjQ+PjJdPWFuO2JyZWFrfX19d2hpbGUoMCk7UD1jW2FiKyhKK1Ip
Pj4yXXwwO2lmKChQfDApPT0wKXticmVha31pZihQPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7
cmV0dXJuIDB9ZWxzZXtjW2FuKzIwPj4yXT1QO2NbUCsyND4+Ml09YW47YnJlYWt9fX13aGlsZSgw
KTthcT1hYisoKCR8YWwpK2FhKXwwO2FyPSQrS3wwfWVsc2V7YXE9Wjthcj1LfUo9YXErNHwwO2Nb
Sj4+Ml09Y1tKPj4yXSYtMjtjW2FiKyhXKzQpPj4yXT1hcnwxO2NbYWIrKGFyK1cpPj4yXT1hcjtK
PWFyPj4+MztpZihhcj4+PjA8MjU2KXtWPUo8PDE7WD05ODgwKyhWPDwyKXwwO1A9Y1syNDYwXXww
O209MTw8Sjtkb3tpZigoUCZtfDApPT0wKXtjWzI0NjBdPVB8bTthcz1YO2F0PTk4ODArKFYrMjw8
Mil8MH1lbHNle0o9OTg4MCsoVisyPDwyKXwwO1U9Y1tKPj4yXXwwO2lmKFU+Pj4wPj0oY1syNDY0
XXwwKT4+PjApe2FzPVU7YXQ9SjticmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtjW2F0Pj4y
XT1fO2NbYXMrMTI+PjJdPV87Y1thYisoVys4KT4+Ml09YXM7Y1thYisoVysxMik+PjJdPVg7YnJl
YWt9Vj1hYzttPWFyPj4+ODtkb3tpZigobXwwKT09MCl7YXU9MH1lbHNle2lmKGFyPj4+MD4xNjc3
NzIxNSl7YXU9MzE7YnJlYWt9UD0obSsxMDQ4MzIwfDApPj4+MTYmODskPW08PFA7Sj0oJCs1MjAx
OTJ8MCk+Pj4xNiY0O1U9JDw8SjskPShVKzI0NTc2MHwwKT4+PjE2JjI7UT0xNC0oSnxQfCQpKyhV
PDwkPj4+MTUpfDA7YXU9YXI+Pj4oKFErN3wwKT4+PjApJjF8UTw8MX19d2hpbGUoMCk7bT0xMDE0
NCsoYXU8PDIpfDA7Y1thYisoVysyOCk+PjJdPWF1O2NbYWIrKFcrMjApPj4yXT0wO2NbYWIrKFcr
MTYpPj4yXT0wO1g9Y1syNDYxXXwwO1E9MTw8YXU7aWYoKFgmUXwwKT09MCl7Y1syNDYxXT1YfFE7
Y1ttPj4yXT1WO2NbYWIrKFcrMjQpPj4yXT1tO2NbYWIrKFcrMTIpPj4yXT1WO2NbYWIrKFcrOCk+
PjJdPVY7YnJlYWt9aWYoKGF1fDApPT0zMSl7YXY9MH1lbHNle2F2PTI1LShhdT4+PjEpfDB9UT1h
cjw8YXY7WD1jW20+PjJdfDA7d2hpbGUoMSl7aWYoKGNbWCs0Pj4yXSYtOHwwKT09KGFyfDApKXti
cmVha31hdz1YKzE2KyhRPj4+MzE8PDIpfDA7bT1jW2F3Pj4yXXwwO2lmKChtfDApPT0wKXtUPTgw
NjticmVha31lbHNle1E9UTw8MTtYPW19fWlmKChUfDApPT04MDYpe2lmKGF3Pj4+MDwoY1syNDY0
XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW2F3Pj4yXT1WO2NbYWIrKFcrMjQpPj4yXT1Y
O2NbYWIrKFcrMTIpPj4yXT1WO2NbYWIrKFcrOCk+PjJdPVY7YnJlYWt9fVE9WCs4fDA7bT1jW1E+
PjJdfDA7JD1jWzI0NjRdfDA7aWYoWD4+PjA8JD4+PjApe2JHKCk7cmV0dXJuIDB9aWYobT4+PjA8
JD4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW20rMTI+PjJdPVY7Y1tRPj4yXT1WO2NbYWIrKFcr
OCk+PjJdPW07Y1thYisoVysxMik+PjJdPVg7Y1thYisoVysyNCk+PjJdPTA7YnJlYWt9fX13aGls
ZSgwKTtuPWFiKyhha3w4KXwwO3JldHVybiBufDB9fXdoaWxlKDApO1k9YWQ7Vz0xMDI4ODt3aGls
ZSgxKXtheD1jW1c+PjJdfDA7aWYoYXg+Pj4wPD1ZPj4+MCl7YXk9Y1tXKzQ+PjJdfDA7YXo9YXgr
YXl8MDtpZihhej4+PjA+WT4+PjApe2JyZWFrfX1XPWNbVys4Pj4yXXwwfVc9YXgrKGF5LTM5KXww
O2lmKChXJjd8MCk9PTApe2FBPTB9ZWxzZXthQT0tVyY3fVc9YXgrKGF5LTQ3K2FBKXwwO2FjPVc+
Pj4wPChhZCsxNnwwKT4+PjA/WTpXO1c9YWMrOHwwO189YWIrOHwwO2lmKChfJjd8MCk9PTApe2FC
PTB9ZWxzZXthQj0tXyY3fV89YWEtNDAtYUJ8MDtjWzI0NjZdPWFiK2FCO2NbMjQ2M109XztjW2Fi
KyhhQis0KT4+Ml09X3wxO2NbYWIrKGFhLTM2KT4+Ml09NDA7Y1syNDY3XT1jWzI0NTRdO2NbYWMr
ND4+Ml09Mjc7Y1tXPj4yXT1jWzI1NzJdO2NbVys0Pj4yXT1jWzEwMjkyPj4yXTtjW1crOD4+Ml09
Y1sxMDI5Nj4+Ml07Y1tXKzEyPj4yXT1jWzEwMzAwPj4yXTtjWzI1NzJdPWFiO2NbMjU3M109YWE7
Y1syNTc1XT0wO2NbMjU3NF09VztXPWFjKzI4fDA7Y1tXPj4yXT03O2lmKChhYyszMnwwKT4+PjA8
YXo+Pj4wKXtfPVc7d2hpbGUoMSl7Vz1fKzR8MDtjW1c+PjJdPTc7aWYoKF8rOHwwKT4+PjA8YXo+
Pj4wKXtfPVd9ZWxzZXticmVha319fWlmKChhY3wwKT09KFl8MCkpe2JyZWFrfV89YWMtYWR8MDtX
PVkrKF8rNCl8MDtjW1c+PjJdPWNbVz4+Ml0mLTI7Y1thZCs0Pj4yXT1ffDE7Y1tZK18+PjJdPV87
Vz1fPj4+MztpZihfPj4+MDwyNTYpe0s9Vzw8MTtaPTk4ODArKEs8PDIpfDA7Uz1jWzI0NjBdfDA7
bT0xPDxXO2Rve2lmKChTJm18MCk9PTApe2NbMjQ2MF09U3xtO2FDPVo7YUQ9OTg4MCsoSysyPDwy
KXwwfWVsc2V7Vz05ODgwKyhLKzI8PDIpfDA7UT1jW1c+PjJdfDA7aWYoUT4+PjA+PShjWzI0NjRd
fDApPj4+MCl7YUM9UTthRD1XO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2NbYUQ+PjJd
PWFkO2NbYUMrMTI+PjJdPWFkO2NbYWQrOD4+Ml09YUM7Y1thZCsxMj4+Ml09WjticmVha31LPWFk
O209Xz4+Pjg7ZG97aWYoKG18MCk9PTApe2FFPTB9ZWxzZXtpZihfPj4+MD4xNjc3NzIxNSl7YUU9
MzE7YnJlYWt9Uz0obSsxMDQ4MzIwfDApPj4+MTYmODtZPW08PFM7YWM9KFkrNTIwMTkyfDApPj4+
MTYmNDtXPVk8PGFjO1k9KFcrMjQ1NzYwfDApPj4+MTYmMjtRPTE0LShhY3xTfFkpKyhXPDxZPj4+
MTUpfDA7YUU9Xz4+PigoUSs3fDApPj4+MCkmMXxRPDwxfX13aGlsZSgwKTttPTEwMTQ0KyhhRTw8
Mil8MDtjW2FkKzI4Pj4yXT1hRTtjW2FkKzIwPj4yXT0wO2NbYWQrMTY+PjJdPTA7Wj1jWzI0NjFd
fDA7UT0xPDxhRTtpZigoWiZRfDApPT0wKXtjWzI0NjFdPVp8UTtjW20+PjJdPUs7Y1thZCsyND4+
Ml09bTtjW2FkKzEyPj4yXT1hZDtjW2FkKzg+PjJdPWFkO2JyZWFrfWlmKChhRXwwKT09MzEpe2FG
PTB9ZWxzZXthRj0yNS0oYUU+Pj4xKXwwfVE9Xzw8YUY7Wj1jW20+PjJdfDA7d2hpbGUoMSl7aWYo
KGNbWis0Pj4yXSYtOHwwKT09KF98MCkpe2JyZWFrfWFHPVorMTYrKFE+Pj4zMTw8Mil8MDttPWNb
YUc+PjJdfDA7aWYoKG18MCk9PTApe1Q9ODQxO2JyZWFrfWVsc2V7UT1RPDwxO1o9bX19aWYoKFR8
MCk9PTg0MSl7aWYoYUc+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2Nb
YUc+PjJdPUs7Y1thZCsyND4+Ml09WjtjW2FkKzEyPj4yXT1hZDtjW2FkKzg+PjJdPWFkO2JyZWFr
fX1RPVorOHwwO189Y1tRPj4yXXwwO209Y1syNDY0XXwwO2lmKFo+Pj4wPG0+Pj4wKXtiRygpO3Jl
dHVybiAwfWlmKF8+Pj4wPG0+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tfKzEyPj4yXT1LO2Nb
UT4+Ml09SztjW2FkKzg+PjJdPV87Y1thZCsxMj4+Ml09WjtjW2FkKzI0Pj4yXT0wO2JyZWFrfX19
d2hpbGUoMCk7YWQ9Y1syNDYzXXwwO2lmKGFkPj4+MDw9bz4+PjApe2JyZWFrfV89YWQtb3wwO2Nb
MjQ2M109XzthZD1jWzI0NjZdfDA7UT1hZDtjWzI0NjZdPVErbztjW1ErKG8rNCk+PjJdPV98MTtj
W2FkKzQ+PjJdPW98MztuPWFkKzh8MDtyZXR1cm4gbnwwfX13aGlsZSgwKTtjWyhidygpfDApPj4y
XT0xMjtuPTA7cmV0dXJuIG58MH1mdW5jdGlvbiBrSyhhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAs
Zj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTA7aWYoKGF8MCk9PTApe3JldHVybn1iPWEtOHww
O2Q9YjtlPWNbMjQ2NF18MDtpZihiPj4+MDxlPj4+MCl7YkcoKX1mPWNbYS00Pj4yXXwwO2c9ZiYz
O2lmKChnfDApPT0xKXtiRygpfWg9ZiYtODtpPWErKGgtOCl8MDtqPWk7TDExODk6ZG97aWYoKGYm
MXwwKT09MCl7az1jW2I+PjJdfDA7aWYoKGd8MCk9PTApe3JldHVybn1sPS04LWt8MDttPWErbHww
O249bTtvPWsraHwwO2lmKG0+Pj4wPGU+Pj4wKXtiRygpfWlmKChufDApPT0oY1syNDY1XXwwKSl7
cD1hKyhoLTQpfDA7aWYoKGNbcD4+Ml0mM3wwKSE9Myl7cT1uO3I9bzticmVha31jWzI0NjJdPW87
Y1twPj4yXT1jW3A+PjJdJi0yO2NbYSsobCs0KT4+Ml09b3wxO2NbaT4+Ml09bztyZXR1cm59cD1r
Pj4+MztpZihrPj4+MDwyNTYpe2s9Y1thKyhsKzgpPj4yXXwwO3M9Y1thKyhsKzEyKT4+Ml18MDt0
PTk4ODArKHA8PDE8PDIpfDA7ZG97aWYoKGt8MCkhPSh0fDApKXtpZihrPj4+MDxlPj4+MCl7Ykco
KX1pZigoY1trKzEyPj4yXXwwKT09KG58MCkpe2JyZWFrfWJHKCl9fXdoaWxlKDApO2lmKChzfDAp
PT0oa3wwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8cCk7cT1uO3I9bzticmVha31kb3tpZigoc3ww
KT09KHR8MCkpe3U9cys4fDB9ZWxzZXtpZihzPj4+MDxlPj4+MCl7YkcoKX12PXMrOHwwO2lmKChj
W3Y+PjJdfDApPT0obnwwKSl7dT12O2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbaysxMj4+Ml09cztj
W3U+PjJdPWs7cT1uO3I9bzticmVha310PW07cD1jW2ErKGwrMjQpPj4yXXwwO3Y9Y1thKyhsKzEy
KT4+Ml18MDtkb3tpZigodnwwKT09KHR8MCkpe3c9YSsobCsyMCl8MDt4PWNbdz4+Ml18MDtpZigo
eHwwKT09MCl7eT1hKyhsKzE2KXwwO3o9Y1t5Pj4yXXwwO2lmKCh6fDApPT0wKXtBPTA7YnJlYWt9
ZWxzZXtCPXo7Qz15fX1lbHNle0I9eDtDPXd9d2hpbGUoMSl7dz1CKzIwfDA7eD1jW3c+PjJdfDA7
aWYoKHh8MCkhPTApe0I9eDtDPXc7Y29udGludWV9dz1CKzE2fDA7eD1jW3c+PjJdfDA7aWYoKHh8
MCk9PTApe2JyZWFrfWVsc2V7Qj14O0M9d319aWYoQz4+PjA8ZT4+PjApe2JHKCl9ZWxzZXtjW0M+
PjJdPTA7QT1CO2JyZWFrfX1lbHNle3c9Y1thKyhsKzgpPj4yXXwwO2lmKHc+Pj4wPGU+Pj4wKXti
RygpfXg9dysxMnwwO2lmKChjW3g+PjJdfDApIT0odHwwKSl7YkcoKX15PXYrOHwwO2lmKChjW3k+
PjJdfDApPT0odHwwKSl7Y1t4Pj4yXT12O2NbeT4+Ml09dztBPXY7YnJlYWt9ZWxzZXtiRygpfX19
d2hpbGUoMCk7aWYoKHB8MCk9PTApe3E9bjtyPW87YnJlYWt9dj1hKyhsKzI4KXwwO209MTAxNDQr
KGNbdj4+Ml08PDIpfDA7ZG97aWYoKHR8MCk9PShjW20+PjJdfDApKXtjW20+PjJdPUE7aWYoKEF8
MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbdj4+Ml0pO3E9bjtyPW87YnJlYWsg
TDExODl9ZWxzZXtpZihwPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9az1wKzE2fDA7aWYoKGNb
az4+Ml18MCk9PSh0fDApKXtjW2s+PjJdPUF9ZWxzZXtjW3ArMjA+PjJdPUF9aWYoKEF8MCk9PTAp
e3E9bjtyPW87YnJlYWsgTDExODl9fX13aGlsZSgwKTtpZihBPj4+MDwoY1syNDY0XXwwKT4+PjAp
e2JHKCl9Y1tBKzI0Pj4yXT1wO3Q9Y1thKyhsKzE2KT4+Ml18MDtkb3tpZigodHwwKSE9MCl7aWYo
dD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tBKzE2Pj4yXT10O2NbdCsyND4+Ml09
QTticmVha319fXdoaWxlKDApO3Q9Y1thKyhsKzIwKT4+Ml18MDtpZigodHwwKT09MCl7cT1uO3I9
bzticmVha31pZih0Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW0ErMjA+PjJdPXQ7
Y1t0KzI0Pj4yXT1BO3E9bjtyPW87YnJlYWt9fWVsc2V7cT1kO3I9aH19d2hpbGUoMCk7ZD1xO2lm
KGQ+Pj4wPj1pPj4+MCl7YkcoKX1BPWErKGgtNCl8MDtlPWNbQT4+Ml18MDtpZigoZSYxfDApPT0w
KXtiRygpfWRve2lmKChlJjJ8MCk9PTApe2lmKChqfDApPT0oY1syNDY2XXwwKSl7Qj0oY1syNDYz
XXwwKStyfDA7Y1syNDYzXT1CO2NbMjQ2Nl09cTtjW3ErND4+Ml09QnwxO2lmKChxfDApIT0oY1sy
NDY1XXwwKSl7cmV0dXJufWNbMjQ2NV09MDtjWzI0NjJdPTA7cmV0dXJufWlmKChqfDApPT0oY1sy
NDY1XXwwKSl7Qj0oY1syNDYyXXwwKStyfDA7Y1syNDYyXT1CO2NbMjQ2NV09cTtjW3ErND4+Ml09
QnwxO2NbZCtCPj4yXT1CO3JldHVybn1CPShlJi04KStyfDA7Qz1lPj4+MztMMTI5Mjpkb3tpZihl
Pj4+MDwyNTYpe3U9Y1thK2g+PjJdfDA7Zz1jW2ErKGh8NCk+PjJdfDA7Yj05ODgwKyhDPDwxPDwy
KXwwO2Rve2lmKCh1fDApIT0oYnwwKSl7aWYodT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWlm
KChjW3UrMTI+PjJdfDApPT0oanwwKSl7YnJlYWt9YkcoKX19d2hpbGUoMCk7aWYoKGd8MCk9PSh1
fDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxDKTticmVha31kb3tpZigoZ3wwKT09KGJ8MCkpe0Q9
Zys4fDB9ZWxzZXtpZihnPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Zj1nKzh8MDtpZigoY1tm
Pj4yXXwwKT09KGp8MCkpe0Q9ZjticmVha31iRygpfX13aGlsZSgwKTtjW3UrMTI+PjJdPWc7Y1tE
Pj4yXT11fWVsc2V7Yj1pO2Y9Y1thKyhoKzE2KT4+Ml18MDt0PWNbYSsoaHw0KT4+Ml18MDtkb3tp
ZigodHwwKT09KGJ8MCkpe3A9YSsoaCsxMil8MDt2PWNbcD4+Ml18MDtpZigodnwwKT09MCl7bT1h
KyhoKzgpfDA7az1jW20+PjJdfDA7aWYoKGt8MCk9PTApe0U9MDticmVha31lbHNle0Y9aztHPW19
fWVsc2V7Rj12O0c9cH13aGlsZSgxKXtwPUYrMjB8MDt2PWNbcD4+Ml18MDtpZigodnwwKSE9MCl7
Rj12O0c9cDtjb250aW51ZX1wPUYrMTZ8MDt2PWNbcD4+Ml18MDtpZigodnwwKT09MCl7YnJlYWt9
ZWxzZXtGPXY7Rz1wfX1pZihHPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW0c+PjJd
PTA7RT1GO2JyZWFrfX1lbHNle3A9Y1thK2g+PjJdfDA7aWYocD4+PjA8KGNbMjQ2NF18MCk+Pj4w
KXtiRygpfXY9cCsxMnwwO2lmKChjW3Y+PjJdfDApIT0oYnwwKSl7YkcoKX1tPXQrOHwwO2lmKChj
W20+PjJdfDApPT0oYnwwKSl7Y1t2Pj4yXT10O2NbbT4+Ml09cDtFPXQ7YnJlYWt9ZWxzZXtiRygp
fX19d2hpbGUoMCk7aWYoKGZ8MCk9PTApe2JyZWFrfXQ9YSsoaCsyMCl8MDt1PTEwMTQ0KyhjW3Q+
PjJdPDwyKXwwO2Rve2lmKChifDApPT0oY1t1Pj4yXXwwKSl7Y1t1Pj4yXT1FO2lmKChFfDApIT0w
KXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Q+PjJdKTticmVhayBMMTI5Mn1lbHNle2lm
KGY+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1nPWYrMTZ8MDtpZigoY1tnPj4yXXwwKT09KGJ8
MCkpe2NbZz4+Ml09RX1lbHNle2NbZisyMD4+Ml09RX1pZigoRXwwKT09MCl7YnJlYWsgTDEyOTJ9
fX13aGlsZSgwKTtpZihFPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Y1tFKzI0Pj4yXT1mO2I9
Y1thKyhoKzgpPj4yXXwwO2Rve2lmKChifDApIT0wKXtpZihiPj4+MDwoY1syNDY0XXwwKT4+PjAp
e2JHKCl9ZWxzZXtjW0UrMTY+PjJdPWI7Y1tiKzI0Pj4yXT1FO2JyZWFrfX19d2hpbGUoMCk7Yj1j
W2ErKGgrMTIpPj4yXXwwO2lmKChifDApPT0wKXticmVha31pZihiPj4+MDwoY1syNDY0XXwwKT4+
PjApe2JHKCl9ZWxzZXtjW0UrMjA+PjJdPWI7Y1tiKzI0Pj4yXT1FO2JyZWFrfX19d2hpbGUoMCk7
Y1txKzQ+PjJdPUJ8MTtjW2QrQj4+Ml09QjtpZigocXwwKSE9KGNbMjQ2NV18MCkpe0g9QjticmVh
a31jWzI0NjJdPUI7cmV0dXJufWVsc2V7Y1tBPj4yXT1lJi0yO2NbcSs0Pj4yXT1yfDE7Y1tkK3I+
PjJdPXI7SD1yfX13aGlsZSgwKTtyPUg+Pj4zO2lmKEg+Pj4wPDI1Nil7ZD1yPDwxO2U9OTg4MCso
ZDw8Mil8MDtBPWNbMjQ2MF18MDtFPTE8PHI7ZG97aWYoKEEmRXwwKT09MCl7Y1syNDYwXT1BfEU7
ST1lO0o9OTg4MCsoZCsyPDwyKXwwfWVsc2V7cj05ODgwKyhkKzI8PDIpfDA7aD1jW3I+PjJdfDA7
aWYoaD4+PjA+PShjWzI0NjRdfDApPj4+MCl7ST1oO0o9cjticmVha31iRygpfX13aGlsZSgwKTtj
W0o+PjJdPXE7Y1tJKzEyPj4yXT1xO2NbcSs4Pj4yXT1JO2NbcSsxMj4+Ml09ZTtyZXR1cm59ZT1x
O0k9SD4+Pjg7ZG97aWYoKEl8MCk9PTApe0s9MH1lbHNle2lmKEg+Pj4wPjE2Nzc3MjE1KXtLPTMx
O2JyZWFrfUo9KEkrMTA0ODMyMHwwKT4+PjE2Jjg7ZD1JPDxKO0U9KGQrNTIwMTkyfDApPj4+MTYm
NDtBPWQ8PEU7ZD0oQSsyNDU3NjB8MCk+Pj4xNiYyO3I9MTQtKEV8SnxkKSsoQTw8ZD4+PjE1KXww
O0s9SD4+Pigocis3fDApPj4+MCkmMXxyPDwxfX13aGlsZSgwKTtJPTEwMTQ0KyhLPDwyKXwwO2Nb
cSsyOD4+Ml09SztjW3ErMjA+PjJdPTA7Y1txKzE2Pj4yXT0wO3I9Y1syNDYxXXwwO2Q9MTw8Sztk
b3tpZigociZkfDApPT0wKXtjWzI0NjFdPXJ8ZDtjW0k+PjJdPWU7Y1txKzI0Pj4yXT1JO2NbcSsx
Mj4+Ml09cTtjW3ErOD4+Ml09cX1lbHNle2lmKChLfDApPT0zMSl7TD0wfWVsc2V7TD0yNS0oSz4+
PjEpfDB9QT1IPDxMO0o9Y1tJPj4yXXwwO3doaWxlKDEpe2lmKChjW0orND4+Ml0mLTh8MCk9PShI
fDApKXticmVha31NPUorMTYrKEE+Pj4zMTw8Mil8MDtFPWNbTT4+Ml18MDtpZigoRXwwKT09MCl7
Tj0xMDE4O2JyZWFrfWVsc2V7QT1BPDwxO0o9RX19aWYoKE58MCk9PTEwMTgpe2lmKE0+Pj4wPChj
WzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbTT4+Ml09ZTtjW3ErMjQ+PjJdPUo7Y1txKzEyPj4y
XT1xO2NbcSs4Pj4yXT1xO2JyZWFrfX1BPUorOHwwO0I9Y1tBPj4yXXwwO0U9Y1syNDY0XXwwO2lm
KEo+Pj4wPEU+Pj4wKXtiRygpfWlmKEI+Pj4wPEU+Pj4wKXtiRygpfWVsc2V7Y1tCKzEyPj4yXT1l
O2NbQT4+Ml09ZTtjW3ErOD4+Ml09QjtjW3ErMTI+PjJdPUo7Y1txKzI0Pj4yXT0wO2JyZWFrfX19
d2hpbGUoMCk7cT0oY1syNDY4XXwwKS0xfDA7Y1syNDY4XT1xO2lmKChxfDApPT0wKXtPPTEwMjk2
fWVsc2V7cmV0dXJufXdoaWxlKDEpe3E9Y1tPPj4yXXwwO2lmKChxfDApPT0wKXticmVha31lbHNl
e089cSs4fDB9fWNbMjQ2OF09LTE7cmV0dXJufWZ1bmN0aW9uIGtMKGEsYil7YT1hfDA7Yj1ifDA7
dmFyIGQ9MCxlPTAsZj0wLGc9MDtpZigoYXwwKT09MCl7ZD1rSihiKXwwO3JldHVybiBkfDB9aWYo
Yj4+PjA+NDI5NDk2NzIzMSl7Y1soYncoKXwwKT4+Ml09MTI7ZD0wO3JldHVybiBkfDB9aWYoYj4+
PjA8MTEpe2U9MTZ9ZWxzZXtlPWIrMTEmLTh9Zj1rTShhLTh8MCxlKXwwO2lmKChmfDApIT0wKXtk
PWYrOHwwO3JldHVybiBkfDB9Zj1rSihiKXwwO2lmKChmfDApPT0wKXtkPTA7cmV0dXJuIGR8MH1l
PWNbYS00Pj4yXXwwO2c9KGUmLTgpLSgoZSYzfDApPT0wPzg6NCl8MDtlPWc+Pj4wPGI+Pj4wP2c6
YjtrWShmfDAsYXwwLGUpfDA7a0soYSk7ZD1mO3JldHVybiBkfDB9ZnVuY3Rpb24ga00oYSxiKXth
PWF8MDtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7ZD1h
KzR8MDtlPWNbZD4+Ml18MDtmPWUmLTg7Zz1hO2g9ZytmfDA7aT1oO2o9Y1syNDY0XXwwO2lmKGc+
Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAwfWs9ZSYzO2lmKCEoKGt8MCkhPTEmZz4+PjA8aD4+PjAp
KXtiRygpO3JldHVybiAwfWw9ZysoZnw0KXwwO209Y1tsPj4yXXwwO2lmKChtJjF8MCk9PTApe2JH
KCk7cmV0dXJuIDB9aWYoKGt8MCk9PTApe2lmKGI+Pj4wPDI1Nil7bj0wO3JldHVybiBufDB9ZG97
aWYoZj4+PjA+PShiKzR8MCk+Pj4wKXtpZigoZi1ifDApPj4+MD5jWzI0NTJdPDwxPj4+MCl7YnJl
YWt9ZWxzZXtuPWF9cmV0dXJuIG58MH19d2hpbGUoMCk7bj0wO3JldHVybiBufDB9aWYoZj4+PjA+
PWI+Pj4wKXtrPWYtYnwwO2lmKGs+Pj4wPD0xNSl7bj1hO3JldHVybiBufDB9Y1tkPj4yXT1lJjF8
YnwyO2NbZysoYis0KT4+Ml09a3wzO2NbbD4+Ml09Y1tsPj4yXXwxO2tOKGcrYnwwLGspO249YTty
ZXR1cm4gbnwwfWlmKChpfDApPT0oY1syNDY2XXwwKSl7az0oY1syNDYzXXwwKStmfDA7aWYoaz4+
PjA8PWI+Pj4wKXtuPTA7cmV0dXJuIG58MH1sPWstYnwwO2NbZD4+Ml09ZSYxfGJ8MjtjW2crKGIr
NCk+PjJdPWx8MTtjWzI0NjZdPWcrYjtjWzI0NjNdPWw7bj1hO3JldHVybiBufDB9aWYoKGl8MCk9
PShjWzI0NjVdfDApKXtsPShjWzI0NjJdfDApK2Z8MDtpZihsPj4+MDxiPj4+MCl7bj0wO3JldHVy
biBufDB9az1sLWJ8MDtpZihrPj4+MD4xNSl7Y1tkPj4yXT1lJjF8YnwyO2NbZysoYis0KT4+Ml09
a3wxO2NbZytsPj4yXT1rO289ZysobCs0KXwwO2Nbbz4+Ml09Y1tvPj4yXSYtMjtwPWcrYnwwO3E9
a31lbHNle2NbZD4+Ml09ZSYxfGx8MjtlPWcrKGwrNCl8MDtjW2U+PjJdPWNbZT4+Ml18MTtwPTA7
cT0wfWNbMjQ2Ml09cTtjWzI0NjVdPXA7bj1hO3JldHVybiBufDB9aWYoKG0mMnwwKSE9MCl7bj0w
O3JldHVybiBufDB9cD0obSYtOCkrZnwwO2lmKHA+Pj4wPGI+Pj4wKXtuPTA7cmV0dXJuIG58MH1x
PXAtYnwwO2U9bT4+PjM7TDE0Nzg6ZG97aWYobT4+PjA8MjU2KXtsPWNbZysoZis4KT4+Ml18MDtr
PWNbZysoZisxMik+PjJdfDA7bz05ODgwKyhlPDwxPDwyKXwwO2Rve2lmKChsfDApIT0ob3wwKSl7
aWYobD4+PjA8aj4+PjApe2JHKCk7cmV0dXJuIDB9aWYoKGNbbCsxMj4+Ml18MCk9PShpfDApKXti
cmVha31iRygpO3JldHVybiAwfX13aGlsZSgwKTtpZigoa3wwKT09KGx8MCkpe2NbMjQ2MF09Y1sy
NDYwXSZ+KDE8PGUpO2JyZWFrfWRve2lmKChrfDApPT0ob3wwKSl7cj1rKzh8MH1lbHNle2lmKGs+
Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAwfXM9ays4fDA7aWYoKGNbcz4+Ml18MCk9PShpfDApKXty
PXM7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7Y1tsKzEyPj4yXT1rO2Nbcj4+Ml09bH1l
bHNle289aDtzPWNbZysoZisyNCk+PjJdfDA7dD1jW2crKGYrMTIpPj4yXXwwO2Rve2lmKCh0fDAp
PT0ob3wwKSl7dT1nKyhmKzIwKXwwO3Y9Y1t1Pj4yXXwwO2lmKCh2fDApPT0wKXt3PWcrKGYrMTYp
fDA7eD1jW3c+PjJdfDA7aWYoKHh8MCk9PTApe3k9MDticmVha31lbHNle3o9eDtBPXd9fWVsc2V7
ej12O0E9dX13aGlsZSgxKXt1PXorMjB8MDt2PWNbdT4+Ml18MDtpZigodnwwKSE9MCl7ej12O0E9
dTtjb250aW51ZX11PXorMTZ8MDt2PWNbdT4+Ml18MDtpZigodnwwKT09MCl7YnJlYWt9ZWxzZXt6
PXY7QT11fX1pZihBPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbQT4+Ml09MDt5PXo7
YnJlYWt9fWVsc2V7dT1jW2crKGYrOCk+PjJdfDA7aWYodT4+PjA8aj4+PjApe2JHKCk7cmV0dXJu
IDB9dj11KzEyfDA7aWYoKGNbdj4+Ml18MCkhPShvfDApKXtiRygpO3JldHVybiAwfXc9dCs4fDA7
aWYoKGNbdz4+Ml18MCk9PShvfDApKXtjW3Y+PjJdPXQ7Y1t3Pj4yXT11O3k9dDticmVha31lbHNl
e2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtpZigoc3wwKT09MCl7YnJlYWt9dD1nKyhmKzI4KXww
O2w9MTAxNDQrKGNbdD4+Ml08PDIpfDA7ZG97aWYoKG98MCk9PShjW2w+PjJdfDApKXtjW2w+PjJd
PXk7aWYoKHl8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbdD4+Ml0pO2JyZWFr
IEwxNDc4fWVsc2V7aWYocz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWs9cysx
NnwwO2lmKChjW2s+PjJdfDApPT0ob3wwKSl7Y1trPj4yXT15fWVsc2V7Y1tzKzIwPj4yXT15fWlm
KCh5fDApPT0wKXticmVhayBMMTQ3OH19fXdoaWxlKDApO2lmKHk+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKTtyZXR1cm4gMH1jW3krMjQ+PjJdPXM7bz1jW2crKGYrMTYpPj4yXXwwO2Rve2lmKChv
fDApIT0wKXtpZihvPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW3kr
MTY+PjJdPW87Y1tvKzI0Pj4yXT15O2JyZWFrfX19d2hpbGUoMCk7bz1jW2crKGYrMjApPj4yXXww
O2lmKChvfDApPT0wKXticmVha31pZihvPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJu
IDB9ZWxzZXtjW3krMjA+PjJdPW87Y1tvKzI0Pj4yXT15O2JyZWFrfX19d2hpbGUoMCk7aWYocT4+
PjA8MTYpe2NbZD4+Ml09cHxjW2Q+PjJdJjF8Mjt5PWcrKHB8NCl8MDtjW3k+PjJdPWNbeT4+Ml18
MTtuPWE7cmV0dXJuIG58MH1lbHNle2NbZD4+Ml09Y1tkPj4yXSYxfGJ8MjtjW2crKGIrNCk+PjJd
PXF8MztkPWcrKHB8NCl8MDtjW2Q+PjJdPWNbZD4+Ml18MTtrTihnK2J8MCxxKTtuPWE7cmV0dXJu
IG58MH1yZXR1cm4gMH1mdW5jdGlvbiBrTihhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9
MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wO2Q9YTtlPWQrYnwwO2Y9ZTtnPWNbYSs0Pj4yXXwwO0wxNTU0OmRve2lm
KChnJjF8MCk9PTApe2g9Y1thPj4yXXwwO2lmKChnJjN8MCk9PTApe3JldHVybn1pPWQrKC1ofDAp
fDA7aj1pO2s9aCtifDA7bD1jWzI0NjRdfDA7aWYoaT4+PjA8bD4+PjApe2JHKCl9aWYoKGp8MCk9
PShjWzI0NjVdfDApKXttPWQrKGIrNCl8MDtpZigoY1ttPj4yXSYzfDApIT0zKXtuPWo7bz1rO2Jy
ZWFrfWNbMjQ2Ml09aztjW20+PjJdPWNbbT4+Ml0mLTI7Y1tkKyg0LWgpPj4yXT1rfDE7Y1tlPj4y
XT1rO3JldHVybn1tPWg+Pj4zO2lmKGg+Pj4wPDI1Nil7cD1jW2QrKDgtaCk+PjJdfDA7cT1jW2Qr
KDEyLWgpPj4yXXwwO3I9OTg4MCsobTw8MTw8Mil8MDtkb3tpZigocHwwKSE9KHJ8MCkpe2lmKHA+
Pj4wPGw+Pj4wKXtiRygpfWlmKChjW3ArMTI+PjJdfDApPT0oanwwKSl7YnJlYWt9YkcoKX19d2hp
bGUoMCk7aWYoKHF8MCk9PShwfDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxtKTtuPWo7bz1rO2Jy
ZWFrfWRve2lmKChxfDApPT0ocnwwKSl7cz1xKzh8MH1lbHNle2lmKHE+Pj4wPGw+Pj4wKXtiRygp
fXQ9cSs4fDA7aWYoKGNbdD4+Ml18MCk9PShqfDApKXtzPXQ7YnJlYWt9YkcoKX19d2hpbGUoMCk7
Y1twKzEyPj4yXT1xO2Nbcz4+Ml09cDtuPWo7bz1rO2JyZWFrfXI9aTttPWNbZCsoMjQtaCk+PjJd
fDA7dD1jW2QrKDEyLWgpPj4yXXwwO2Rve2lmKCh0fDApPT0ocnwwKSl7dT0xNi1ofDA7dj1kKyh1
KzQpfDA7dz1jW3Y+PjJdfDA7aWYoKHd8MCk9PTApe3g9ZCt1fDA7dT1jW3g+PjJdfDA7aWYoKHV8
MCk9PTApe3k9MDticmVha31lbHNle3o9dTtBPXh9fWVsc2V7ej13O0E9dn13aGlsZSgxKXt2PXor
MjB8MDt3PWNbdj4+Ml18MDtpZigod3wwKSE9MCl7ej13O0E9djtjb250aW51ZX12PXorMTZ8MDt3
PWNbdj4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9ZWxzZXt6PXc7QT12fX1pZihBPj4+MDxsPj4+
MCl7YkcoKX1lbHNle2NbQT4+Ml09MDt5PXo7YnJlYWt9fWVsc2V7dj1jW2QrKDgtaCk+PjJdfDA7
aWYodj4+PjA8bD4+PjApe2JHKCl9dz12KzEyfDA7aWYoKGNbdz4+Ml18MCkhPShyfDApKXtiRygp
fXg9dCs4fDA7aWYoKGNbeD4+Ml18MCk9PShyfDApKXtjW3c+PjJdPXQ7Y1t4Pj4yXT12O3k9dDti
cmVha31lbHNle2JHKCl9fX13aGlsZSgwKTtpZigobXwwKT09MCl7bj1qO289azticmVha310PWQr
KDI4LWgpfDA7bD0xMDE0NCsoY1t0Pj4yXTw8Mil8MDtkb3tpZigocnwwKT09KGNbbD4+Ml18MCkp
e2NbbD4+Ml09eTtpZigoeXwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1t0Pj4y
XSk7bj1qO289azticmVhayBMMTU1NH1lbHNle2lmKG0+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KX1pPW0rMTZ8MDtpZigoY1tpPj4yXXwwKT09KHJ8MCkpe2NbaT4+Ml09eX1lbHNle2NbbSsyMD4+
Ml09eX1pZigoeXwwKT09MCl7bj1qO289azticmVhayBMMTU1NH19fXdoaWxlKDApO2lmKHk+Pj4w
PChjWzI0NjRdfDApPj4+MCl7YkcoKX1jW3krMjQ+PjJdPW07cj0xNi1ofDA7dD1jW2Qrcj4+Ml18
MDtkb3tpZigodHwwKSE9MCl7aWYodD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1t5
KzE2Pj4yXT10O2NbdCsyND4+Ml09eTticmVha319fXdoaWxlKDApO3Q9Y1tkKyhyKzQpPj4yXXww
O2lmKCh0fDApPT0wKXtuPWo7bz1rO2JyZWFrfWlmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KX1lbHNle2NbeSsyMD4+Ml09dDtjW3QrMjQ+PjJdPXk7bj1qO289azticmVha319ZWxzZXtuPWE7
bz1ifX13aGlsZSgwKTthPWNbMjQ2NF18MDtpZihlPj4+MDxhPj4+MCl7YkcoKX15PWQrKGIrNCl8
MDt6PWNbeT4+Ml18MDtkb3tpZigoeiYyfDApPT0wKXtpZigoZnwwKT09KGNbMjQ2Nl18MCkpe0E9
KGNbMjQ2M118MCkrb3wwO2NbMjQ2M109QTtjWzI0NjZdPW47Y1tuKzQ+PjJdPUF8MTtpZigobnww
KSE9KGNbMjQ2NV18MCkpe3JldHVybn1jWzI0NjVdPTA7Y1syNDYyXT0wO3JldHVybn1pZigoZnww
KT09KGNbMjQ2NV18MCkpe0E9KGNbMjQ2Ml18MCkrb3wwO2NbMjQ2Ml09QTtjWzI0NjVdPW47Y1tu
KzQ+PjJdPUF8MTtjW24rQT4+Ml09QTtyZXR1cm59QT0oeiYtOCkrb3wwO3M9ej4+PjM7TDE2NTM6
ZG97aWYoej4+PjA8MjU2KXtnPWNbZCsoYis4KT4+Ml18MDt0PWNbZCsoYisxMik+PjJdfDA7aD05
ODgwKyhzPDwxPDwyKXwwO2Rve2lmKChnfDApIT0oaHwwKSl7aWYoZz4+PjA8YT4+PjApe2JHKCl9
aWYoKGNbZysxMj4+Ml18MCk9PShmfDApKXticmVha31iRygpfX13aGlsZSgwKTtpZigodHwwKT09
KGd8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PHMpO2JyZWFrfWRve2lmKCh0fDApPT0oaHwwKSl7
Qj10Kzh8MH1lbHNle2lmKHQ+Pj4wPGE+Pj4wKXtiRygpfW09dCs4fDA7aWYoKGNbbT4+Ml18MCk9
PShmfDApKXtCPW07YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1tnKzEyPj4yXT10O2NbQj4+Ml09Z31l
bHNle2g9ZTttPWNbZCsoYisyNCk+PjJdfDA7bD1jW2QrKGIrMTIpPj4yXXwwO2Rve2lmKChsfDAp
PT0oaHwwKSl7aT1kKyhiKzIwKXwwO3A9Y1tpPj4yXXwwO2lmKChwfDApPT0wKXtxPWQrKGIrMTYp
fDA7dj1jW3E+PjJdfDA7aWYoKHZ8MCk9PTApe0M9MDticmVha31lbHNle0Q9djtFPXF9fWVsc2V7
RD1wO0U9aX13aGlsZSgxKXtpPUQrMjB8MDtwPWNbaT4+Ml18MDtpZigocHwwKSE9MCl7RD1wO0U9
aTtjb250aW51ZX1pPUQrMTZ8MDtwPWNbaT4+Ml18MDtpZigocHwwKT09MCl7YnJlYWt9ZWxzZXtE
PXA7RT1pfX1pZihFPj4+MDxhPj4+MCl7YkcoKX1lbHNle2NbRT4+Ml09MDtDPUQ7YnJlYWt9fWVs
c2V7aT1jW2QrKGIrOCk+PjJdfDA7aWYoaT4+PjA8YT4+PjApe2JHKCl9cD1pKzEyfDA7aWYoKGNb
cD4+Ml18MCkhPShofDApKXtiRygpfXE9bCs4fDA7aWYoKGNbcT4+Ml18MCk9PShofDApKXtjW3A+
PjJdPWw7Y1txPj4yXT1pO0M9bDticmVha31lbHNle2JHKCl9fX13aGlsZSgwKTtpZigobXwwKT09
MCl7YnJlYWt9bD1kKyhiKzI4KXwwO2c9MTAxNDQrKGNbbD4+Ml08PDIpfDA7ZG97aWYoKGh8MCk9
PShjW2c+PjJdfDApKXtjW2c+PjJdPUM7aWYoKEN8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYx
XSZ+KDE8PGNbbD4+Ml0pO2JyZWFrIEwxNjUzfWVsc2V7aWYobT4+PjA8KGNbMjQ2NF18MCk+Pj4w
KXtiRygpfXQ9bSsxNnwwO2lmKChjW3Q+PjJdfDApPT0oaHwwKSl7Y1t0Pj4yXT1DfWVsc2V7Y1tt
KzIwPj4yXT1DfWlmKChDfDApPT0wKXticmVhayBMMTY1M319fXdoaWxlKDApO2lmKEM+Pj4wPChj
WzI0NjRdfDApPj4+MCl7YkcoKX1jW0MrMjQ+PjJdPW07aD1jW2QrKGIrMTYpPj4yXXwwO2Rve2lm
KChofDApIT0wKXtpZihoPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW0MrMTY+PjJd
PWg7Y1toKzI0Pj4yXT1DO2JyZWFrfX19d2hpbGUoMCk7aD1jW2QrKGIrMjApPj4yXXwwO2lmKCho
fDApPT0wKXticmVha31pZihoPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW0MrMjA+
PjJdPWg7Y1toKzI0Pj4yXT1DO2JyZWFrfX19d2hpbGUoMCk7Y1tuKzQ+PjJdPUF8MTtjW24rQT4+
Ml09QTtpZigobnwwKSE9KGNbMjQ2NV18MCkpe0Y9QTticmVha31jWzI0NjJdPUE7cmV0dXJufWVs
c2V7Y1t5Pj4yXT16Ji0yO2Nbbis0Pj4yXT1vfDE7Y1tuK28+PjJdPW87Rj1vfX13aGlsZSgwKTtv
PUY+Pj4zO2lmKEY+Pj4wPDI1Nil7ej1vPDwxO3k9OTg4MCsoejw8Mil8MDtDPWNbMjQ2MF18MDti
PTE8PG87ZG97aWYoKEMmYnwwKT09MCl7Y1syNDYwXT1DfGI7Rz15O0g9OTg4MCsoeisyPDwyKXww
fWVsc2V7bz05ODgwKyh6KzI8PDIpfDA7ZD1jW28+PjJdfDA7aWYoZD4+PjA+PShjWzI0NjRdfDAp
Pj4+MCl7Rz1kO0g9bzticmVha31iRygpfX13aGlsZSgwKTtjW0g+PjJdPW47Y1tHKzEyPj4yXT1u
O2Nbbis4Pj4yXT1HO2NbbisxMj4+Ml09eTtyZXR1cm59eT1uO0c9Rj4+Pjg7ZG97aWYoKEd8MCk9
PTApe0k9MH1lbHNle2lmKEY+Pj4wPjE2Nzc3MjE1KXtJPTMxO2JyZWFrfUg9KEcrMTA0ODMyMHww
KT4+PjE2Jjg7ej1HPDxIO2I9KHorNTIwMTkyfDApPj4+MTYmNDtDPXo8PGI7ej0oQysyNDU3NjB8
MCk+Pj4xNiYyO289MTQtKGJ8SHx6KSsoQzw8ej4+PjE1KXwwO0k9Rj4+Pigobys3fDApPj4+MCkm
MXxvPDwxfX13aGlsZSgwKTtHPTEwMTQ0KyhJPDwyKXwwO2NbbisyOD4+Ml09STtjW24rMjA+PjJd
PTA7Y1tuKzE2Pj4yXT0wO289Y1syNDYxXXwwO3o9MTw8STtpZigobyZ6fDApPT0wKXtjWzI0NjFd
PW98ejtjW0c+PjJdPXk7Y1tuKzI0Pj4yXT1HO2NbbisxMj4+Ml09bjtjW24rOD4+Ml09bjtyZXR1
cm59aWYoKEl8MCk9PTMxKXtKPTB9ZWxzZXtKPTI1LShJPj4+MSl8MH1JPUY8PEo7Sj1jW0c+PjJd
fDA7d2hpbGUoMSl7aWYoKGNbSis0Pj4yXSYtOHwwKT09KEZ8MCkpe2JyZWFrfUs9SisxNisoST4+
PjMxPDwyKXwwO0c9Y1tLPj4yXXwwO2lmKChHfDApPT0wKXtMPTEyOTg7YnJlYWt9ZWxzZXtJPUk8
PDE7Sj1HfX1pZigoTHwwKT09MTI5OCl7aWYoSz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWNb
Sz4+Ml09eTtjW24rMjQ+PjJdPUo7Y1tuKzEyPj4yXT1uO2Nbbis4Pj4yXT1uO3JldHVybn1LPUor
OHwwO0w9Y1tLPj4yXXwwO0k9Y1syNDY0XXwwO2lmKEo+Pj4wPEk+Pj4wKXtiRygpfWlmKEw+Pj4w
PEk+Pj4wKXtiRygpfWNbTCsxMj4+Ml09eTtjW0s+PjJdPXk7Y1tuKzg+PjJdPUw7Y1tuKzEyPj4y
XT1KO2NbbisyND4+Ml09MDtyZXR1cm59ZnVuY3Rpb24ga08oYSl7YT1hfDA7dmFyIGI9MCxkPTAs
ZT0wO2I9KGF8MCk9PTA/MTphO3doaWxlKDEpe2Q9a0ooYil8MDtpZigoZHwwKSE9MCl7ZT0xMzQy
O2JyZWFrfWE9KEk9Y1s0MDQ4XXwwLGNbNDA0OF09SSswLEkpO2lmKChhfDApPT0wKXticmVha31i
NVthJjNdKCl9aWYoKGV8MCk9PTEzNDIpe3JldHVybiBkfDB9ZD1iTyg0KXwwO2NbZD4+Ml09MjQw
ODtibChkfDAsODE2MCwzMCk7cmV0dXJuIDB9ZnVuY3Rpb24ga1AoYSl7YT1hfDA7cmV0dXJuIGtP
KGEpfDB9ZnVuY3Rpb24ga1EoYSl7YT1hfDA7cmV0dXJufWZ1bmN0aW9uIGtSKGEpe2E9YXwwO3Jl
dHVybiAxMTYwfDB9ZnVuY3Rpb24ga1MoYSl7YT1hfDA7aWYoKGF8MCkhPTApe2tLKGEpfXJldHVy
bn1mdW5jdGlvbiBrVChhKXthPWF8MDtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga1UoYSl7YT1hfDA7
a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGtWKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0w
LGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLjAscj0wLHM9MCx0PTAsdT0wLHY9
MC4wLHc9MCx4PTAseT0wLHo9MC4wLEE9MC4wLEI9MCxDPTAsRD0wLEU9MC4wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLjAsTz0wLFA9MCxRPTAuMCxSPTAuMCxTPTAuMDtlPWI7
d2hpbGUoMSl7Zj1lKzF8MDtpZigoYVAoYVtlXXwwKXwwKT09MCl7YnJlYWt9ZWxzZXtlPWZ9fXN3
aXRjaChhW2VdfDApe2Nhc2UgNDM6e2c9ZjtpPTA7YnJlYWt9O2Nhc2UgNDU6e2c9ZjtpPTE7YnJl
YWt9O2RlZmF1bHQ6e2c9ZTtpPTB9fWU9LTE7Zj0wO2o9Zzt3aGlsZSgxKXtrPWFbal18MDtpZigo
KGs8PDI0Pj4yNCktNDh8MCk+Pj4wPDEwKXtsPWV9ZWxzZXtpZihrPDwyND4+MjQhPTQ2fChlfDAp
Pi0xKXticmVha31lbHNle2w9Zn19ZT1sO2Y9ZisxfDA7aj1qKzF8MH1sPWorKC1mfDApfDA7Zz0o
ZXwwKTwwO209KChnXjEpPDwzMT4+MzEpK2Z8MDtuPShtfDApPjE4O289KG4/LTE4Oi1tfDApKyhn
P2Y6ZSl8MDtlPW4/MTg6bTtkb3tpZigoZXwwKT09MCl7cD1iO3E9MC4wfWVsc2V7aWYoKGV8MCk+
OSl7bT1sO249ZTtmPTA7d2hpbGUoMSl7Zz1hW21dfDA7cj1tKzF8MDtpZihnPDwyND4+MjQ9PTQ2
KXtzPWFbcl18MDt0PW0rMnwwfWVsc2V7cz1nO3Q9cn11PShmKjEwfDApLTQ4KyhzPDwyND4+MjQp
fDA7cj1uLTF8MDtpZigocnwwKT45KXttPXQ7bj1yO2Y9dX1lbHNle2JyZWFrfX12PSsodXwwKSox
LjBlOTt3PTk7eD10O3k9MTM3MH1lbHNle2lmKChlfDApPjApe3Y9MC4wO3c9ZTt4PWw7eT0xMzcw
fWVsc2V7ej0wLjA7QT0wLjB9fWlmKCh5fDApPT0xMzcwKXtmPXg7bj13O209MDt3aGlsZSgxKXty
PWFbZl18MDtnPWYrMXwwO2lmKHI8PDI0Pj4yND09NDYpe0I9YVtnXXwwO0M9ZisyfDB9ZWxzZXtC
PXI7Qz1nfUQ9KG0qMTB8MCktNDgrKEI8PDI0Pj4yNCl8MDtnPW4tMXwwO2lmKChnfDApPjApe2Y9
QztuPWc7bT1EfWVsc2V7YnJlYWt9fXo9KyhEfDApO0E9dn1FPUErejtMMTgxNjpkb3tzd2l0Y2go
azw8MjQ+PjI0KXtjYXNlIDY5OmNhc2UgMTAxOnttPWorMXwwO3N3aXRjaChhW21dfDApe2Nhc2Ug
NDU6e0Y9aisyfDA7Rz0xO2JyZWFrfTtjYXNlIDQzOntGPWorMnwwO0c9MDticmVha307ZGVmYXVs
dDp7Rj1tO0c9MH19bT1hW0ZdfDA7aWYoKChtPDwyND4+MjQpLTQ4fDApPj4+MDwxMCl7SD1GO0k9
MDtKPW19ZWxzZXtLPTA7TD1GO009RzticmVhayBMMTgxNn13aGlsZSgxKXttPShJKjEwfDApLTQ4
KyhKPDwyND4+MjQpfDA7bj1IKzF8MDtmPWFbbl18MDtpZigoKGY8PDI0Pj4yNCktNDh8MCk+Pj4w
PDEwKXtIPW47ST1tO0o9Zn1lbHNle0s9bTtMPW47TT1HO2JyZWFrfX1icmVha307ZGVmYXVsdDp7
Sz0wO0w9ajtNPTB9fX13aGlsZSgwKTtuPW8rKChNfDApPT0wP0s6LUt8MCl8MDttPShufDApPDA/
LW58MDpuO2lmKChtfDApPjUxMSl7Y1soYncoKXwwKT4+Ml09MzQ7Tj0xLjA7Tz04O1A9NTExO3k9
MTM4N31lbHNle2lmKChtfDApPT0wKXtRPTEuMH1lbHNle049MS4wO089ODtQPW07eT0xMzg3fX1p
ZigoeXwwKT09MTM4Nyl7d2hpbGUoMSl7eT0wO2lmKChQJjF8MCk9PTApe1I9Tn1lbHNle1I9Tior
aFtPPj4zXX1tPVA+PjE7aWYoKG18MCk9PTApe1E9UjticmVha31lbHNle049UjtPPU8rOHwwO1A9
bTt5PTEzODd9fX1pZigobnwwKT4tMSl7cD1MO3E9RSpRO2JyZWFrfWVsc2V7cD1MO3E9RS9RO2Jy
ZWFrfX19d2hpbGUoMCk7aWYoKGR8MCkhPTApe2NbZD4+Ml09cH1pZigoaXwwKT09MCl7Uz1xO3Jl
dHVybitTfVM9LTAuMC1xO3JldHVybitTfWZ1bmN0aW9uIGtXKGEsYixjKXthPWF8MDtiPWJ8MDtj
PWN8MDtyZXR1cm4rKCtrVihhLGIpKX1mdW5jdGlvbiBrWCgpe3ZhciBhPTA7YT1iTyg0KXwwO2Nb
YT4+Ml09MjQwODtibChhfDAsODE2MCwzMCl9ZnVuY3Rpb24ga1koYixkLGUpe2I9YnwwO2Q9ZHww
O2U9ZXwwO3ZhciBmPTA7Zj1ifDA7aWYoKGImMyk9PShkJjMpKXt3aGlsZShiJjMpe2lmKChlfDAp
PT0wKXJldHVybiBmfDA7YVtiXT1hW2RdfDA7Yj1iKzF8MDtkPWQrMXwwO2U9ZS0xfDB9d2hpbGUo
KGV8MCk+PTQpe2NbYj4+Ml09Y1tkPj4yXTtiPWIrNHwwO2Q9ZCs0fDA7ZT1lLTR8MH19d2hpbGUo
KGV8MCk+MCl7YVtiXT1hW2RdfDA7Yj1iKzF8MDtkPWQrMXwwO2U9ZS0xfDB9cmV0dXJuIGZ8MH1m
dW5jdGlvbiBrWihiKXtiPWJ8MDt2YXIgYz0wO2M9YVtuKyhiPj4+MjQpfDBdfDA7aWYoKGN8MCk8
OClyZXR1cm4gY3wwO2M9YVtuKyhiPj4xNiYyNTUpfDBdfDA7aWYoKGN8MCk8OClyZXR1cm4gYys4
fDA7Yz1hW24rKGI+PjgmMjU1KXwwXXwwO2lmKChjfDApPDgpcmV0dXJuIGMrMTZ8MDtyZXR1cm4o
YVtuKyhiJjI1NSl8MF18MCkrMjR8MH1mdW5jdGlvbiBrXyhiLGMsZCl7Yj1ifDA7Yz1jfDA7ZD1k
fDA7aWYoKGN8MCk8KGJ8MCkmKGJ8MCk8KGMrZHwwKSl7Yz1jK2R8MDtiPWIrZHwwO3doaWxlKChk
fDApPjApe2I9Yi0xfDA7Yz1jLTF8MDtkPWQtMXwwO2FbYl09YVtjXXwwfX1lbHNle2tZKGIsYyxk
KXwwfX1mdW5jdGlvbiBrJChiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0w
O2Y9YitlfDA7aWYoKGV8MCk+PTIwKXtkPWQmMjU1O2U9YiYzO2c9ZHxkPDw4fGQ8PDE2fGQ8PDI0
O2g9ZiZ+MztpZihlKXtlPWIrNC1lfDA7d2hpbGUoKGJ8MCk8KGV8MCkpe2FbYl09ZDtiPWIrMXww
fX13aGlsZSgoYnwwKTwoaHwwKSl7Y1tiPj4yXT1nO2I9Yis0fDB9fXdoaWxlKChifDApPChmfDAp
KXthW2JdPWQ7Yj1iKzF8MH19ZnVuY3Rpb24gazAoYil7Yj1ifDA7dmFyIGM9MDtjPWI7d2hpbGUo
YVtjXXwwKXtjPWMrMXwwfXJldHVybiBjLWJ8MH1mdW5jdGlvbiBrMShhLGIsYyxkKXthPWF8MDti
PWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wO2U9YStjPj4+MDtyZXR1cm4oSz1iK2QrKGU+Pj4wPGE+
Pj4wfDApPj4+MCxlfDApfDB9ZnVuY3Rpb24gazIoYSxiLGMsZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7
ZD1kfDA7dmFyIGU9MDtlPWItZD4+PjA7ZT1iLWQtKGM+Pj4wPmE+Pj4wfDApPj4+MDtyZXR1cm4o
Sz1lLGEtYz4+PjB8MCl8MH1mdW5jdGlvbiBrMyhhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7aWYo
KGN8MCk8MzIpe0s9Yjw8Y3woYSYoMTw8YyktMTw8MzItYyk+Pj4zMi1jO3JldHVybiBhPDxjfUs9
YTw8Yy0zMjtyZXR1cm4gMH1mdW5jdGlvbiBrNChhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7aWYo
KGN8MCk8MzIpe0s9Yj4+PmM7cmV0dXJuIGE+Pj5jfChiJigxPDxjKS0xKTw8MzItY31LPTA7cmV0
dXJuIGI+Pj5jLTMyfDB9ZnVuY3Rpb24gazUoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2lmKChj
fDApPDMyKXtLPWI+PmM7cmV0dXJuIGE+Pj5jfChiJigxPDxjKS0xKTw8MzItY31LPShifDApPDA/
LTE6MDtyZXR1cm4gYj4+Yy0zMnwwfWZ1bmN0aW9uIGs2KGIpe2I9YnwwO3ZhciBjPTA7Yz1hW20r
KGImMjU1KXwwXXwwO2lmKChjfDApPDgpcmV0dXJuIGN8MDtjPWFbbSsoYj4+OCYyNTUpfDBdfDA7
aWYoKGN8MCk8OClyZXR1cm4gYys4fDA7Yz1hW20rKGI+PjE2JjI1NSl8MF18MDtpZigoY3wwKTw4
KXJldHVybiBjKzE2fDA7cmV0dXJuKGFbbSsoYj4+PjI0KXwwXXwwKSsyNHwwfWZ1bmN0aW9uIGs3
KGEsYil7YT1hfDA7Yj1ifDA7dmFyIGM9MCxkPTAsZT0wLGY9MDtjPWEmNjU1MzU7ZD1iJjY1NTM1
O2U9YWcoZCxjKXwwO2Y9YT4+PjE2O2E9KGU+Pj4xNikrKGFnKGQsZil8MCl8MDtkPWI+Pj4xNjti
PWFnKGQsYyl8MDtyZXR1cm4oSz0oYT4+PjE2KSsoYWcoZCxmKXwwKSsoKChhJjY1NTM1KStifDAp
Pj4+MTYpfDAsYStiPDwxNnxlJjY1NTM1fDApfDB9ZnVuY3Rpb24gazgoYSxiLGMsZCl7YT1hfDA7
Yj1ifDA7Yz1jfDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTA7ZT1iPj4zMXwoKGJ8MCk8
MD8tMTowKTw8MTtmPSgoYnwwKTwwPy0xOjApPj4zMXwoKGJ8MCk8MD8tMTowKTw8MTtnPWQ+PjMx
fCgoZHwwKTwwPy0xOjApPDwxO2g9KChkfDApPDA/LTE6MCk+PjMxfCgoZHwwKTwwPy0xOjApPDwx
O2k9azIoZV5hLGZeYixlLGYpfDA7Yj1LO2E9Z15lO2U9aF5mO2Y9azIoKGxkKGksYixrMihnXmMs
aF5kLGcsaCl8MCxLLDApfDApXmEsS15lLGEsZSl8MDtyZXR1cm4oSz1LLGYpfDB9ZnVuY3Rpb24g
azkoYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGo9MCxr
PTAsbD0wLG09MDtmPWk7aT1pKzh8MDtnPWZ8MDtoPWI+PjMxfCgoYnwwKTwwPy0xOjApPDwxO2o9
KChifDApPDA/LTE6MCk+PjMxfCgoYnwwKTwwPy0xOjApPDwxO2s9ZT4+MzF8KChlfDApPDA/LTE6
MCk8PDE7bD0oKGV8MCk8MD8tMTowKT4+MzF8KChlfDApPDA/LTE6MCk8PDE7bT1rMihoXmEsal5i
LGgsail8MDtiPUs7YT1rMihrXmQsbF5lLGssbCl8MDtsZChtLGIsYSxLLGcpfDA7YT1rMihjW2c+
PjJdXmgsY1tnKzQ+PjJdXmosaCxqKXwwO2o9SztpPWY7cmV0dXJuKEs9aixhKXwwfWZ1bmN0aW9u
IGxhKGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTAsZj0wO2U9YTthPWM7
Yz1rNyhlLGEpfDA7Zj1LO3JldHVybihLPShhZyhiLGEpfDApKyhhZyhkLGUpfDApK2Z8ZiYwLGN8
MHwwKXwwfWZ1bmN0aW9uIGxiKGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBl
PTA7ZT1sZChhLGIsYyxkLDApfDA7cmV0dXJuKEs9SyxlKXwwfWZ1bmN0aW9uIGxjKGEsYixkLGUp
e2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wO2Y9aTtpPWkrOHwwO2c9ZnwwO2xk
KGEsYixkLGUsZyl8MDtpPWY7cmV0dXJuKEs9Y1tnKzQ+PjJdfDAsY1tnPj4yXXwwKXwwfWZ1bmN0
aW9uIGxkKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxo
PTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEw9MCxNPTA7Zz1hO2g9YjtpPWg7aj1kO2s9ZTtsPWs7aWYoKGl8MCk9PTApe209KGZ8MCkhPTA7
aWYoKGx8MCk9PTApe2lmKG0pe2NbZj4+Ml09KGc+Pj4wKSUoaj4+PjApO2NbZis0Pj4yXT0wfW49
MDtvPShnPj4+MCkvKGo+Pj4wKT4+PjA7cmV0dXJuKEs9bixvKXwwfWVsc2V7aWYoIW0pe249MDtv
PTA7cmV0dXJuKEs9bixvKXwwfWNbZj4+Ml09YXwwO2NbZis0Pj4yXT1iJjA7bj0wO289MDtyZXR1
cm4oSz1uLG8pfDB9fW09KGx8MCk9PTA7ZG97aWYoKGp8MCk9PTApe2lmKG0pe2lmKChmfDApIT0w
KXtjW2Y+PjJdPShpPj4+MCklKGo+Pj4wKTtjW2YrND4+Ml09MH1uPTA7bz0oaT4+PjApLyhqPj4+
MCk+Pj4wO3JldHVybihLPW4sbyl8MH1pZigoZ3wwKT09MCl7aWYoKGZ8MCkhPTApe2NbZj4+Ml09
MDtjW2YrND4+Ml09KGk+Pj4wKSUobD4+PjApfW49MDtvPShpPj4+MCkvKGw+Pj4wKT4+PjA7cmV0
dXJuKEs9bixvKXwwfXA9bC0xfDA7aWYoKHAmbHwwKT09MCl7aWYoKGZ8MCkhPTApe2NbZj4+Ml09
YXwwO2NbZis0Pj4yXT1wJml8YiYwfW49MDtvPWk+Pj4oKGs2KGx8MCl8MCk+Pj4wKTtyZXR1cm4o
Sz1uLG8pfDB9cD0oa1oobHwwKXwwKS0oa1ooaXwwKXwwKXwwO2lmKHA+Pj4wPD0zMCl7cT1wKzF8
MDtyPTMxLXB8MDtzPXE7dD1pPDxyfGc+Pj4ocT4+PjApO3U9aT4+PihxPj4+MCk7dj0wO3c9Zzw8
cjticmVha31pZigoZnwwKT09MCl7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9Y1tmPj4yXT1hfDA7
Y1tmKzQ+PjJdPWh8YiYwO249MDtvPTA7cmV0dXJuKEs9bixvKXwwfWVsc2V7aWYoIW0pe3I9KGta
KGx8MCl8MCktKGtaKGl8MCl8MCl8MDtpZihyPj4+MDw9MzEpe3E9cisxfDA7cD0zMS1yfDA7eD1y
LTMxPj4zMTtzPXE7dD1nPj4+KHE+Pj4wKSZ4fGk8PHA7dT1pPj4+KHE+Pj4wKSZ4O3Y9MDt3PWc8
PHA7YnJlYWt9aWYoKGZ8MCk9PTApe249MDtvPTA7cmV0dXJuKEs9bixvKXwwfWNbZj4+Ml09YXww
O2NbZis0Pj4yXT1ofGImMDtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1wPWotMXwwO2lmKChwJmp8
MCkhPTApe3g9KGtaKGp8MCl8MCkrMzMtKGtaKGl8MCl8MCl8MDtxPTY0LXh8MDtyPTMyLXh8MDt5
PXI+PjMxO3o9eC0zMnwwO0E9ej4+MzE7cz14O3Q9ci0xPj4zMSZpPj4+KHo+Pj4wKXwoaTw8cnxn
Pj4+KHg+Pj4wKSkmQTt1PUEmaT4+Pih4Pj4+MCk7dj1nPDxxJnk7dz0oaTw8cXxnPj4+KHo+Pj4w
KSkmeXxnPDxyJngtMzM+PjMxO2JyZWFrfWlmKChmfDApIT0wKXtjW2Y+PjJdPXAmZztjW2YrND4+
Ml09MH1pZigoanwwKT09MSl7bj1ofGImMDtvPWF8MHwwO3JldHVybihLPW4sbyl8MH1lbHNle3A9
azYoanwwKXwwO249aT4+PihwPj4+MCl8MDtvPWk8PDMyLXB8Zz4+PihwPj4+MCl8MDtyZXR1cm4o
Sz1uLG8pfDB9fX13aGlsZSgwKTtpZigoc3wwKT09MCl7Qj13O0M9djtEPXU7RT10O0Y9MDtHPTB9
ZWxzZXtnPWR8MHwwO2Q9a3xlJjA7ZT1rMShnLGQsLTEsLTEpfDA7az1LO2k9dzt3PXY7dj11O3U9
dDt0PXM7cz0wO3doaWxlKDEpe0g9dz4+PjMxfGk8PDE7ST1zfHc8PDE7aj11PDwxfGk+Pj4zMXww
O2E9dT4+PjMxfHY8PDF8MDtrMihlLGssaixhKXwwO2I9SztoPWI+PjMxfCgoYnwwKTwwPy0xOjAp
PDwxO0o9aCYxO0w9azIoaixhLGgmZywoKChifDApPDA/LTE6MCk+PjMxfCgoYnwwKTwwPy0xOjAp
PDwxKSZkKXwwO009SztiPXQtMXwwO2lmKChifDApPT0wKXticmVha31lbHNle2k9SDt3PUk7dj1N
O3U9TDt0PWI7cz1KfX1CPUg7Qz1JO0Q9TTtFPUw7Rj0wO0c9Sn1KPUM7Qz0wO2lmKChmfDApIT0w
KXtjW2Y+PjJdPUU7Y1tmKzQ+PjJdPUR9bj0oSnwwKT4+PjMxfChCfEMpPDwxfChDPDwxfEo+Pj4z
MSkmMHxGO289KEo8PDF8MD4+PjMxKSYtMnxHO3JldHVybihLPW4sbyl8MH1mdW5jdGlvbiBsZSgp
e2JQKCl9ZnVuY3Rpb24gbGYoYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO2JXW2EmN10oYnwwLGN8MCxkfDAsZXwwLGZ8MCl9ZnVuY3Rpb24gbGcoYSxiLGMs
ZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtiWFthJjEyN10oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwKX1mdW5jdGlvbiBsaChhLGIp
e2E9YXwwO2I9YnwwO2JZW2EmNTExXShifDApfWZ1bmN0aW9uIGxpKGEsYixjKXthPWF8MDtiPWJ8
MDtjPWN8MDtiWlthJjEyN10oYnwwLGN8MCl9ZnVuY3Rpb24gbGooYSxiLGMpe2E9YXwwO2I9Ynww
O2M9Y3wwO3JldHVybiBiX1thJjMxXShifDAsY3wwKXwwfWZ1bmN0aW9uIGxrKGEsYixjLGQsZSxm
KXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtyZXR1cm4gYiRbYSYzMV0oYnww
LGN8MCxkfDAsZXwwLGZ8MCl8MH1mdW5jdGlvbiBsbChhLGIpe2E9YXwwO2I9YnwwO3JldHVybiBi
MFthJjEyN10oYnwwKXwwfWZ1bmN0aW9uIGxtKGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9
ZHwwO3JldHVybiBiMVthJjYzXShifDAsY3wwLGR8MCl8MH1mdW5jdGlvbiBsbihhLGIsYyxkLGUs
ZixnKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPStnO2IyW2EmMTVdKGJ8
MCxjfDAsZHwwLGV8MCxmfDAsK2cpfWZ1bmN0aW9uIGxvKGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9
Y3wwO2Q9ZHwwO2IzW2EmN10oYnwwLGN8MCxkfDApfWZ1bmN0aW9uIGxwKGEsYixjLGQsZSxmLGcs
aCxpKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8
MDtiNFthJjE1XShifDAsY3wwLGR8MCxlfDAsZnwwLGd8MCxofDAsaXwwKX1mdW5jdGlvbiBscShh
KXthPWF8MDtiNVthJjNdKCl9ZnVuY3Rpb24gbHIoYSxiLGMsZCxlLGYsZyxoLGkpe2E9YXwwO2I9
YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO3JldHVybiBiNlth
JjMxXShifDAsY3wwLGR8MCxlfDAsZnwwLGd8MCxofDAsaXwwKXwwfWZ1bmN0aW9uIGxzKGEsYixj
LGQsZSxmLGcsaCxpLGope2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2k9aXwwO2o9anwwO2I3W2EmN10oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwLGl8
MCxqfDApfWZ1bmN0aW9uIGx0KGEsYixjLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1k
fDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD0raDtiOFthJjddKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3ww
LCtoKX1mdW5jdGlvbiBsdShhLGIsYyxkLGUsZixnKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtl
PWV8MDtmPWZ8MDtnPWd8MDtiOVthJjMxXShifDAsY3wwLGR8MCxlfDAsZnwwLGd8MCl9ZnVuY3Rp
b24gbHYoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtyZXR1cm4gY2Fb
YSYxNV0oYnwwLGN8MCxkfDAsZXwwKXwwfWZ1bmN0aW9uIGx3KGEsYixjLGQsZSl7YT1hfDA7Yj1i
fDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Y2JbYSYxNV0oYnwwLGN8MCxkfDAsZXwwKX1mdW5jdGlvbiBs
eChhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2FoKDApfWZ1bmN0aW9u
IGx5KGEsYixjLGQsZSxmLGcpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2FoKDEpfWZ1bmN0aW9uIGx6KGEpe2E9YXwwO2FoKDIpfWZ1bmN0aW9uIGxBKGEsYil7YT1h
fDA7Yj1ifDA7YWgoMyl9ZnVuY3Rpb24gbEIoYSxiKXthPWF8MDtiPWJ8MDthaCg0KTtyZXR1cm4g
MH1mdW5jdGlvbiBsQyhhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Fo
KDUpO3JldHVybiAwfWZ1bmN0aW9uIGxEKGEpe2E9YXwwO2FoKDYpO3JldHVybiAwfWZ1bmN0aW9u
IGxFKGEsYixjKXthPWF8MDtiPWJ8MDtjPWN8MDthaCg3KTtyZXR1cm4gMH1mdW5jdGlvbiBsRihh
LGIsYyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj0rZjthaCg4KX1mdW5j
dGlvbiBsRyhhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7YWgoOSl9ZnVuY3Rpb24gbEgoYSxiLGMs
ZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDthaCgxMCl9ZnVuY3Rpb24gbEkoKXthaCgxMSl9ZnVuY3Rpb24gbEooYSxiLGMsZCxlLGYsZyxo
KXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDthaCgxMik7
cmV0dXJuIDB9ZnVuY3Rpb24gbEsoYSxiLGMsZCxlLGYsZyxoLGkpe2E9YXwwO2I9YnwwO2M9Y3ww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2FoKDEzKX1mdW5jdGlvbiBsTChh
LGIsYyxkLGUsZixnKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPStnO2Fo
KDE0KX1mdW5jdGlvbiBsTShhLGIsYyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7YWgoMTUpfWZ1bmN0aW9uIGxOKGEsYixjLGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9
ZHwwO2FoKDE2KTtyZXR1cm4gMH1mdW5jdGlvbiBsTyhhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8
MDtkPWR8MDthaCgxNyl9Ci0vLyBFTVNDUklQVEVOX0VORF9GVU5DUwotdmFyIGJXPVtseCxseCxr
RyxseCxrRCxseCxrRixseF07dmFyIGJYPVtseSxseSxnRyxseSxnUCxseSxnUyxseSxpaCxseSxn
dCxseSxncixseSxoOSxseSxnQixseSxnRixseSxnVCxseSxnZixseSxmNyxseSxnRSxseSxmSCxs
eSxmWixseSxnUSxseSxnZCxseSxmJCxseSxmWCxseSxmWSxseSxmUSxseSxmXyxseSxmVixseSxm
VCxseSxmNCxseSxmMyxseSxmMCxseSxnVSxseSxmQSxseSxnQyxseSxmRSxseSxmdixseSxmeSxs
eSxmQyxseSxmcixseSxmTSxseSxmSyxseSxmcCxseSxseSxseSxseSxseSxseSxseSxseSxseSxs
eSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxs
eSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxseSxs
eSxseSxseSxseV07dmFyIGJZPVtseixseixpayxseixmbixseixnbCxseixkSCxseixlbixseixp
RSxseixkcixseixoQSxseixmNSxseixkQixseixkRyxseixmTyxseixmYixseixlNyxseixrUSxs
eixkQyxseixpUCxseixpUyxseixnTyxseixmUCxseixrcSxseixlMSxseixpZSxseixpUSxseixl
UyxseixmbyxseixocixseixpTCxseixqSSxseixpVSxseixrayxseixqSCxseixlNSxseixjNSxs
eixkRyxseixjdCxseixmZixseixoZyxseixqSyxseixpUixseixrSyxseixoNyxseixqRyxseixl
VixseixjNCxseixmZSxseixkQyxseixqMyxseixmNixseixkZixseixocyxseixlUixseixlJCxs
eixoeSxseixnTixseixlOCxseixobCxseixrVSxseixlbSxseixqNixseixqNyxseixlMixseixl
dSxseixreCxseixpVixseixpOSxseixraSxseixlVCxseixlNixseixoTyxseixkZCxseixoeCxs
eixlMyxseixqOSxseixrbCxseixqcSxseixkYixseixpSyxseixpTyxseixoeixseixoVSxseixr
dSxseixoRyxseixoOCxseixqOCxseixoZixseixnayxseixmYSxseixkYyxseixmYyxseixlWCxs
eixkTixseixoJCxseixoVCxseixqSixseixlZSxseixkSSxseixraSxseixreSxseixlXyxseixk
TyxseixlUSxseixlMCxseixpZCxseixlRCxseixlWixseixkcyxseixpVyxseixlOSxseixoSixs
eixneixseixobSxseixjJCxseixpcSxseixoMCxseixlVyxseixldCxseixlWSxseixqRixseixq
NCxseixnQSxseixrdyxseixpbCxseixjXyxseixrdixseixoQixseixoUCxseixjVyxseixkUCxs
eixpVCxseixkRixseixlVSxseixrYSxseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixseixs
eixseixseixseixseixsel07dmFyIGJaPVtsQSxsQSxqUCxsQSxjMCxsQSxoTSxsQSxqTSxsQSxo
YixsQSxqTCxsQSxpaixsQSxkOSxsQSxoayxsQSxoSCxsQSxodyxsQSxoaixsQSxoaCxsQSxoTixs
QSxpTixsQSxnOSxsQSxkbSxsQSxoSSxsQSxqTyxsQSxoSyxsQSxobyxsQSxkRSxsQSxobixsQSxq
USxsQSxoYSxsQSxocSxsQSxqTixsQSxnOCxsQSxkMixsQSxkdCxsQSxjNixsQSxpbyxsQSxodCxs
QSxnNyxsQSxnNixsQSxoaSxsQSxodSxsQSxodixsQSxocCxsQSxoTCxsQSxsQSxsQSxsQSxsQSxs
QSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxs
QSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxsQSxs
QSxsQSxsQSxsQV07dmFyIGJfPVtsQixsQixpNCxsQixkdyxsQixpQSxsQixpdCxsQixkOCxsQixj
OSxsQixkcCxsQixpMCxsQixpNixsQixlSSxsQixpMixsQixkNyxsQixjMixsQixlSCxsQixsQixs
Ql07dmFyIGIkPVtsQyxsQyxqaCxsQyxqZixsQyxqRSxsQyxpdyxsQyxpRyxsQyxqcCxsQyxpSSxs
QyxmayxsQyxpRCxsQyxqZCxsQyxlTCxsQyxqcyxsQyxsQyxsQyxsQyxsQyxsQyxsQ107dmFyIGIw
PVtsRCxsRCxqMixsRCxnNCxsRCxkNixsRCxqVSxsRCxlcixsRCxqMCxsRCxnMCxsRCxqZSxsRCxq
ayxsRCxneSxsRCxqUyxsRCxkdixsRCxlTyxsRCxlRyxsRCxqWSxsRCxqVyxsRCxqdCxsRCxraixs
RCxkaSxsRCxqQyxsRCxqeixsRCxqWCxsRCxqaixsRCxqQSxsRCxkNCxsRCxoRixsRCxqWixsRCxk
dSxsRCxjMSxsRCxnMSxsRCxpOCxsRCxqMSxsRCxqdixsRCxoRCxsRCxqUixsRCxjNyxsRCxqdSxs
RCxqZyxsRCxlSixsRCxnJCxsRCxjOCxsRCxqQixsRCxkNSxsRCxlRSxsRCxkbixsRCxnMixsRCxp
eixsRCxpeSxsRCxrUixsRCxlRixsRCxnWixsRCxqVCxsRCxpeCxsRCxnXyxsRCxkaCxsRCxnMyxs
RCxnNSxsRCxqVixsRCxoRSxsRCxnTSxsRCxqJCxsRCxqXyxsRCxqaSxsRF07dmFyIGIxPVtsRSxs
RSxlTSxsRSxpNSxsRSxpMyxsRSxreixsRSxpQixsRSxmbCxsRSxkSixsRSxlcyxsRSxlcSxsRSxp
WSxsRSxlYSxsRSxpbSxsRSxpQyxsRSxpMSxsRSxlTixsRSxkbCxsRSxpNyxsRSxpZyxsRSxkMyxs
RSxlUCxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxsRSxs
RSxsRSxsRSxsRSxsRSxsRV07dmFyIGIyPVtsRixsRixndyxsRixndSxsRixnaSxsRixnZyxsRixs
RixsRixsRixsRixsRixsRl07dmFyIGIzPVtsRyxsRyxkayxsRyxlNCxsRyxsRyxsR107dmFyIGI0
PVtsSCxsSCxoZSxsSCxoZCxsSCxoUSxsSCxoWSxsSCxoVyxsSCxoMSxsSCxsSCxsSF07dmFyIGI1
PVtsSSxsSSxsZSxsSV07dmFyIGI2PVtsSixsSixpdSxsSixqYyxsSixqbyxsSixpdixsSixqcixs
SixqRCxsSixqYixsSixqYSxsSixsSixsSixsSixsSixsSixsSixsSixsSixsSixsSixsSixsSixs
SixsSl07dmFyIGI3PVtsSyxsSyxnVyxsSyxnSSxsSyxsSyxsS107dmFyIGI4PVtsTCxsTCxpYSxs
TCxoNCxsTCxsTCxsTF07dmFyIGI5PVtsTSxsTSxrSCxsTSxncyxsTSxnbSxsTSxnbyxsTSxrSSxs
TSxneCxsTSxpaSxsTSxlZCxsTSxnbixsTSxnYSxsTSxnZSxsTSxmOCxsTSxrRSxsTSxlYixsTSxp
cCxsTV07dmFyIGNhPVtsTixsTixpWixsTixpXyxsTixpSCxsTixpRixsTixpJCxsTixsTixsTixs
TixsTl07dmFyIGNiPVtsTyxsTyxrQSxsTyxrQixsTyxlYyxsTyxrcixsTyxlSyxsTyxmbSxsTyxm
ZCxsT107cmV0dXJue19zdHJsZW46azAsX2ZyZWU6a0ssX21haW46Y0QsX3JlYWxsb2M6a0wsX21l
bW1vdmU6a18sX19HTE9CQUxfX0lfYTpjVCxfbWVtc2V0OmskLF9tYWxsb2M6a0osX21lbWNweTpr
WSxfbGx2bV9jdGx6X2kzMjprWixfX0dMT0JBTF9fSV9hODpkeSxydW5Qb3N0U2V0czpjcyxzdGFj
a0FsbG9jOmNjLHN0YWNrU2F2ZTpjZCxzdGFja1Jlc3RvcmU6Y2Usc2V0VGhyZXc6Y2Ysc2V0VGVt
cFJldDA6Y2ksc2V0VGVtcFJldDE6Y2osc2V0VGVtcFJldDI6Y2ssc2V0VGVtcFJldDM6Y2wsc2V0
VGVtcFJldDQ6Y20sc2V0VGVtcFJldDU6Y24sc2V0VGVtcFJldDY6Y28sc2V0VGVtcFJldDc6Y3As
c2V0VGVtcFJldDg6Y3Esc2V0VGVtcFJldDk6Y3IsZHluQ2FsbF92aWlpaWk6bGYsZHluQ2FsbF92
aWlpaWlpaTpsZyxkeW5DYWxsX3ZpOmxoLGR5bkNhbGxfdmlpOmxpLGR5bkNhbGxfaWlpOmxqLGR5
bkNhbGxfaWlpaWlpOmxrLGR5bkNhbGxfaWk6bGwsZHluQ2FsbF9paWlpOmxtLGR5bkNhbGxfdmlp
aWlpZjpsbixkeW5DYWxsX3ZpaWk6bG8sZHluQ2FsbF92aWlpaWlpaWk6bHAsZHluQ2FsbF92Omxx
LGR5bkNhbGxfaWlpaWlpaWlpOmxyLGR5bkNhbGxfdmlpaWlpaWlpaTpscyxkeW5DYWxsX3ZpaWlp
aWlmOmx0LGR5bkNhbGxfdmlpaWlpaTpsdSxkeW5DYWxsX2lpaWlpOmx2LGR5bkNhbGxfdmlpaWk6
bHd9fSkKLS8vIEVNU0NSSVBURU5fRU5EX0FTTQotKHsgIk1hdGgiOiBNYXRoLCAiSW50OEFycmF5
IjogSW50OEFycmF5LCAiSW50MTZBcnJheSI6IEludDE2QXJyYXksICJJbnQzMkFycmF5IjogSW50
MzJBcnJheSwgIlVpbnQ4QXJyYXkiOiBVaW50OEFycmF5LCAiVWludDE2QXJyYXkiOiBVaW50MTZB
cnJheSwgIlVpbnQzMkFycmF5IjogVWludDMyQXJyYXksICJGbG9hdDMyQXJyYXkiOiBGbG9hdDMy
QXJyYXksICJGbG9hdDY0QXJyYXkiOiBGbG9hdDY0QXJyYXkgfSwgeyAiYWJvcnQiOiBhYm9ydCwg
ImFzc2VydCI6IGFzc2VydCwgImFzbVByaW50SW50IjogYXNtUHJpbnRJbnQsICJhc21QcmludEZs
b2F0IjogYXNtUHJpbnRGbG9hdCwgIm1pbiI6IE1hdGhfbWluLCAiaW52b2tlX3ZpaWlpaSI6IGlu
dm9rZV92aWlpaWksICJpbnZva2VfdmlpaWlpaWkiOiBpbnZva2VfdmlpaWlpaWksICJpbnZva2Vf
dmkiOiBpbnZva2VfdmksICJpbnZva2VfdmlpIjogaW52b2tlX3ZpaSwgImludm9rZV9paWkiOiBp
bnZva2VfaWlpLCAiaW52b2tlX2lpaWlpaSI6IGludm9rZV9paWlpaWksICJpbnZva2VfaWkiOiBp
bnZva2VfaWksICJpbnZva2VfaWlpaSI6IGludm9rZV9paWlpLCAiaW52b2tlX3ZpaWlpaWYiOiBp
bnZva2VfdmlpaWlpZiwgImludm9rZV92aWlpIjogaW52b2tlX3ZpaWksICJpbnZva2VfdmlpaWlp
aWlpIjogaW52b2tlX3ZpaWlpaWlpaSwgImludm9rZV92IjogaW52b2tlX3YsICJpbnZva2VfaWlp
aWlpaWlpIjogaW52b2tlX2lpaWlpaWlpaSwgImludm9rZV92aWlpaWlpaWlpIjogaW52b2tlX3Zp
aWlpaWlpaWksICJpbnZva2VfdmlpaWlpaWYiOiBpbnZva2VfdmlpaWlpaWYsICJpbnZva2Vfdmlp
aWlpaSI6IGludm9rZV92aWlpaWlpLCAiaW52b2tlX2lpaWlpIjogaW52b2tlX2lpaWlpLCAiaW52
b2tlX3ZpaWlpIjogaW52b2tlX3ZpaWlpLCAiX2xsdm1fbGlmZXRpbWVfZW5kIjogX2xsdm1fbGlm
ZXRpbWVfZW5kLCAiX19zY2FuU3RyaW5nIjogX19zY2FuU3RyaW5nLCAiX3B0aHJlYWRfbXV0ZXhf
bG9jayI6IF9wdGhyZWFkX211dGV4X2xvY2ssICJfX19jeGFfZW5kX2NhdGNoIjogX19fY3hhX2Vu
ZF9jYXRjaCwgIl9zdHJ0b3VsbCI6IF9zdHJ0b3VsbCwgIl9faXNGbG9hdCI6IF9faXNGbG9hdCwg
Il9mZmx1c2giOiBfZmZsdXNoLCAiX19pc0xlYXBZZWFyIjogX19pc0xlYXBZZWFyLCAiX2Z3cml0
ZSI6IF9md3JpdGUsICJfc2VuZCI6IF9zZW5kLCAiX2xsdm1fdW11bF93aXRoX292ZXJmbG93X2kz
MiI6IF9sbHZtX3VtdWxfd2l0aF9vdmVyZmxvd19pMzIsICJfaXNzcGFjZSI6IF9pc3NwYWNlLCAi
X3JlYWQiOiBfcmVhZCwgIl9fX2N4YV9ndWFyZF9hYm9ydCI6IF9fX2N4YV9ndWFyZF9hYm9ydCwg
Il9uZXdsb2NhbGUiOiBfbmV3bG9jYWxlLCAiX19fZ3h4X3BlcnNvbmFsaXR5X3YwIjogX19fZ3h4
X3BlcnNvbmFsaXR5X3YwLCAiX3B0aHJlYWRfY29uZF93YWl0IjogX3B0aHJlYWRfY29uZF93YWl0
LCAiX19fY3hhX3JldGhyb3ciOiBfX19jeGFfcmV0aHJvdywgIl9fX3Jlc3VtZUV4Y2VwdGlvbiI6
IF9fX3Jlc3VtZUV4Y2VwdGlvbiwgIl9sbHZtX3ZhX2VuZCI6IF9sbHZtX3ZhX2VuZCwgIl92c3Nj
YW5mIjogX3Zzc2NhbmYsICJfc25wcmludGYiOiBfc25wcmludGYsICJfZmdldGMiOiBfZmdldGMs
ICJfYXRleGl0IjogX2F0ZXhpdCwgIl9fX2N4YV9mcmVlX2V4Y2VwdGlvbiI6IF9fX2N4YV9mcmVl
X2V4Y2VwdGlvbiwgIl9fWjhjYXRjbG9zZVA4X25sX2NhdGQiOiBfX1o4Y2F0Y2xvc2VQOF9ubF9j
YXRkLCAiX19fc2V0RXJyTm8iOiBfX19zZXRFcnJObywgIl9pc3hkaWdpdCI6IF9pc3hkaWdpdCwg
Il9leGl0IjogX2V4aXQsICJfc3ByaW50ZiI6IF9zcHJpbnRmLCAiX19fY3R5cGVfYl9sb2MiOiBf
X19jdHlwZV9iX2xvYywgIl9mcmVlbG9jYWxlIjogX2ZyZWVsb2NhbGUsICJfX1o3Y2F0b3BlblBL
Y2kiOiBfX1o3Y2F0b3BlblBLY2ksICJfYXNwcmludGYiOiBfYXNwcmludGYsICJfX19jeGFfaXNf
bnVtYmVyX3R5cGUiOiBfX19jeGFfaXNfbnVtYmVyX3R5cGUsICJfX19jeGFfZG9lc19pbmhlcml0
IjogX19fY3hhX2RvZXNfaW5oZXJpdCwgIl9fX2N4YV9ndWFyZF9hY3F1aXJlIjogX19fY3hhX2d1
YXJkX2FjcXVpcmUsICJfX19sb2NhbGVfbWJfY3VyX21heCI6IF9fX2xvY2FsZV9tYl9jdXJfbWF4
LCAiX19fY3hhX2JlZ2luX2NhdGNoIjogX19fY3hhX2JlZ2luX2NhdGNoLCAiX3JlY3YiOiBfcmVj
diwgIl9fcGFyc2VJbnQ2NCI6IF9fcGFyc2VJbnQ2NCwgIl9fWlN0MTh1bmNhdWdodF9leGNlcHRp
b252IjogX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYsICJfX19jeGFfY2FsbF91bmV4cGVjdGVk
IjogX19fY3hhX2NhbGxfdW5leHBlY3RlZCwgIl9fZXhpdCI6IF9fZXhpdCwgIl9zdHJmdGltZSI6
IF9zdHJmdGltZSwgIl9fX2N4YV90aHJvdyI6IF9fX2N4YV90aHJvdywgIl9sbHZtX2VoX2V4Y2Vw
dGlvbiI6IF9sbHZtX2VoX2V4Y2VwdGlvbiwgIl9wcmVhZCI6IF9wcmVhZCwgIl9fYXJyYXlTdW0i
OiBfX2FycmF5U3VtLCAiX2xvZyI6IF9sb2csICJfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaCI6
IF9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoLCAiX19mb3JtYXRTdHJpbmciOiBfX2Zvcm1hdFN0
cmluZywgIl9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0IjogX3B0aHJlYWRfY29uZF9icm9hZGNhc3Qs
ICJfX1pTdDl0ZXJtaW5hdGV2IjogX19aU3Q5dGVybWluYXRldiwgIl9wdGhyZWFkX211dGV4X3Vu
bG9jayI6IF9wdGhyZWFkX211dGV4X3VubG9jaywgIl9zYnJrIjogX3NicmssICJfX19lcnJub19s
b2NhdGlvbiI6IF9fX2Vycm5vX2xvY2F0aW9uLCAiX3N0cmVycm9yIjogX3N0cmVycm9yLCAiX2xs
dm1fbGlmZXRpbWVfc3RhcnQiOiBfbGx2bV9saWZldGltZV9zdGFydCwgIl9fX2N4YV9ndWFyZF9y
ZWxlYXNlIjogX19fY3hhX2d1YXJkX3JlbGVhc2UsICJfdW5nZXRjIjogX3VuZ2V0YywgIl91c2Vs
b2NhbGUiOiBfdXNlbG9jYWxlLCAiX3ZzbnByaW50ZiI6IF92c25wcmludGYsICJfc3NjYW5mIjog
X3NzY2FuZiwgIl9zeXNjb25mIjogX3N5c2NvbmYsICJfZnJlYWQiOiBfZnJlYWQsICJfYWJvcnQi
OiBfYWJvcnQsICJfaXNkaWdpdCI6IF9pc2RpZ2l0LCAiX3N0cnRvbGwiOiBfc3RydG9sbCwgIl9f
YWRkRGF5cyI6IF9fYWRkRGF5cywgIl9mbG9vciI6IF9mbG9vciwgIl9fcmVhbGx5TmVnYXRpdmUi
OiBfX3JlYWxseU5lZ2F0aXZlLCAiX19aN2NhdGdldHNQOF9ubF9jYXRkaWlQS2MiOiBfX1o3Y2F0
Z2V0c1A4X25sX2NhdGRpaVBLYywgIl93cml0ZSI6IF93cml0ZSwgIl9fX2N4YV9hbGxvY2F0ZV9l
eGNlcHRpb24iOiBfX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uLCAiX19fY3hhX3B1cmVfdmlydHVh
bCI6IF9fX2N4YV9wdXJlX3ZpcnR1YWwsICJfdmFzcHJpbnRmIjogX3Zhc3ByaW50ZiwgIl9fX2N0
eXBlX3RvdXBwZXJfbG9jIjogX19fY3R5cGVfdG91cHBlcl9sb2MsICJfX19jdHlwZV90b2xvd2Vy
X2xvYyI6IF9fX2N0eXBlX3RvbG93ZXJfbG9jLCAiX3B3cml0ZSI6IF9wd3JpdGUsICJfc3RyZXJy
b3JfciI6IF9zdHJlcnJvcl9yLCAiX3RpbWUiOiBfdGltZSwgIlNUQUNLVE9QIjogU1RBQ0tUT1As
ICJTVEFDS19NQVgiOiBTVEFDS19NQVgsICJ0ZW1wRG91YmxlUHRyIjogdGVtcERvdWJsZVB0ciwg
IkFCT1JUIjogQUJPUlQsICJjdHR6X2k4IjogY3R0el9pOCwgImN0bHpfaTgiOiBjdGx6X2k4LCAi
TmFOIjogTmFOLCAiSW5maW5pdHkiOiBJbmZpbml0eSwgIl9zdGRpbiI6IF9zdGRpbiwgIl9fWlRW
TjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FIjogX19aVFZOMTBfX2N4eGFiaXYxMTdf
X2NsYXNzX3R5cGVfaW5mb0UsICJfX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9p
bmZvRSI6IF9fWlRWTjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FLCAiX3N0ZGVy
ciI6IF9zdGRlcnIsICJfX19mc211OCI6IF9fX2ZzbXU4LCAiX3N0ZG91dCI6IF9zdGRvdXQsICJf
X19kc29faGFuZGxlIjogX19fZHNvX2hhbmRsZSB9LCBidWZmZXIpOwotdmFyIF9zdHJsZW4gPSBN
b2R1bGVbIl9zdHJsZW4iXSA9IGFzbVsiX3N0cmxlbiJdOwotdmFyIF9mcmVlID0gTW9kdWxlWyJf
ZnJlZSJdID0gYXNtWyJfZnJlZSJdOwotdmFyIF9tYWluID0gTW9kdWxlWyJfbWFpbiJdID0gYXNt
WyJfbWFpbiJdOwotdmFyIF9yZWFsbG9jID0gTW9kdWxlWyJfcmVhbGxvYyJdID0gYXNtWyJfcmVh
bGxvYyJdOwotdmFyIF9tZW1tb3ZlID0gTW9kdWxlWyJfbWVtbW92ZSJdID0gYXNtWyJfbWVtbW92
ZSJdOwotdmFyIF9fR0xPQkFMX19JX2EgPSBNb2R1bGVbIl9fR0xPQkFMX19JX2EiXSA9IGFzbVsi
X19HTE9CQUxfX0lfYSJdOwotdmFyIF9tZW1zZXQgPSBNb2R1bGVbIl9tZW1zZXQiXSA9IGFzbVsi
X21lbXNldCJdOwotdmFyIF9tYWxsb2MgPSBNb2R1bGVbIl9tYWxsb2MiXSA9IGFzbVsiX21hbGxv
YyJdOwotdmFyIF9tZW1jcHkgPSBNb2R1bGVbIl9tZW1jcHkiXSA9IGFzbVsiX21lbWNweSJdOwot
dmFyIF9sbHZtX2N0bHpfaTMyID0gTW9kdWxlWyJfbGx2bV9jdGx6X2kzMiJdID0gYXNtWyJfbGx2
bV9jdGx6X2kzMiJdOwotdmFyIF9fR0xPQkFMX19JX2E4ID0gTW9kdWxlWyJfX0dMT0JBTF9fSV9h
OCJdID0gYXNtWyJfX0dMT0JBTF9fSV9hOCJdOwotdmFyIHJ1blBvc3RTZXRzID0gTW9kdWxlWyJy
dW5Qb3N0U2V0cyJdID0gYXNtWyJydW5Qb3N0U2V0cyJdOwotdmFyIGR5bkNhbGxfdmlpaWlpID0g
TW9kdWxlWyJkeW5DYWxsX3ZpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaSJdOwotdmFyIGR5
bkNhbGxfdmlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWkiXSA9IGFzbVsiZHluQ2Fs
bF92aWlpaWlpaSJdOwotdmFyIGR5bkNhbGxfdmkgPSBNb2R1bGVbImR5bkNhbGxfdmkiXSA9IGFz
bVsiZHluQ2FsbF92aSJdOwotdmFyIGR5bkNhbGxfdmlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaSJd
ID0gYXNtWyJkeW5DYWxsX3ZpaSJdOwotdmFyIGR5bkNhbGxfaWlpID0gTW9kdWxlWyJkeW5DYWxs
X2lpaSJdID0gYXNtWyJkeW5DYWxsX2lpaSJdOwotdmFyIGR5bkNhbGxfaWlpaWlpID0gTW9kdWxl
WyJkeW5DYWxsX2lpaWlpaSJdID0gYXNtWyJkeW5DYWxsX2lpaWlpaSJdOwotdmFyIGR5bkNhbGxf
aWkgPSBNb2R1bGVbImR5bkNhbGxfaWkiXSA9IGFzbVsiZHluQ2FsbF9paSJdOwotdmFyIGR5bkNh
bGxfaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpIl0gPSBhc21bImR5bkNhbGxfaWlpaSJdOwot
dmFyIGR5bkNhbGxfdmlpaWlpZiA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlmIl0gPSBhc21bImR5
bkNhbGxfdmlpaWlpZiJdOwotdmFyIGR5bkNhbGxfdmlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlp
Il0gPSBhc21bImR5bkNhbGxfdmlpaSJdOwotdmFyIGR5bkNhbGxfdmlpaWlpaWlpID0gTW9kdWxl
WyJkeW5DYWxsX3ZpaWlpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWlpaSJdOwotdmFyIGR5
bkNhbGxfdiA9IE1vZHVsZVsiZHluQ2FsbF92Il0gPSBhc21bImR5bkNhbGxfdiJdOwotdmFyIGR5
bkNhbGxfaWlpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWlpaSJdID0gYXNtWyJkeW5D
YWxsX2lpaWlpaWlpaSJdOwotdmFyIGR5bkNhbGxfdmlpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2Fs
bF92aWlpaWlpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWlpaWlpaSJdOwotdmFyIGR5bkNhbGxf
dmlpaWlpaWYgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWYiXSA9IGFzbVsiZHluQ2FsbF92aWlp
aWlpZiJdOwotdmFyIGR5bkNhbGxfdmlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpIl0g
PSBhc21bImR5bkNhbGxfdmlpaWlpaSJdOwotdmFyIGR5bkNhbGxfaWlpaWkgPSBNb2R1bGVbImR5
bkNhbGxfaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF9paWlpaSJdOwotdmFyIGR5bkNhbGxfdmlpaWkg
PSBNb2R1bGVbImR5bkNhbGxfdmlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaSJdOwotUnVudGlt
ZS5zdGFja0FsbG9jID0gZnVuY3Rpb24oc2l6ZSkgeyByZXR1cm4gYXNtWydzdGFja0FsbG9jJ10o
c2l6ZSkgfTsKLVJ1bnRpbWUuc3RhY2tTYXZlID0gZnVuY3Rpb24oKSB7IHJldHVybiBhc21bJ3N0
YWNrU2F2ZSddKCkgfTsKLVJ1bnRpbWUuc3RhY2tSZXN0b3JlID0gZnVuY3Rpb24odG9wKSB7IGFz
bVsnc3RhY2tSZXN0b3JlJ10odG9wKSB9OwotLy8gVE9ETzogc3RyaXAgb3V0IHBhcnRzIG9mIHRo
aXMgd2UgZG8gbm90IG5lZWQKLS8vPT09PT09PSBiZWdpbiBjbG9zdXJlIGk2NCBjb2RlID09PT09
PT0KLS8vIENvcHlyaWdodCAyMDA5IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0aG9ycy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Us
IFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLS8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZp
bGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLS8vIFlvdSBtYXkgb2J0
YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotLy8KLS8vICAgICAgaHR0cDovL3d3dy5hcGFj
aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0vLwotLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFw
cGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotLy8gZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTLUlTIiBCQVNJ
UywKLS8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRo
ZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lm
aWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotLy8gbGltaXRhdGlvbnMgdW5k
ZXIgdGhlIExpY2Vuc2UuCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgRGVmaW5lcyBhIExvbmcgY2xh
c3MgZm9yIHJlcHJlc2VudGluZyBhIDY0LWJpdCB0d28ncy1jb21wbGVtZW50Ci0gKiBpbnRlZ2Vy
IHZhbHVlLCB3aGljaCBmYWl0aGZ1bGx5IHNpbXVsYXRlcyB0aGUgYmVoYXZpb3Igb2YgYSBKYXZh
ICJsb25nIi4gVGhpcwotICogaW1wbGVtZW50YXRpb24gaXMgZGVyaXZlZCBmcm9tIExvbmdMaWIg
aW4gR1dULgotICoKLSAqLwotdmFyIGk2NE1hdGggPSAoZnVuY3Rpb24oKSB7IC8vIEVtc2NyaXB0
ZW4gd3JhcHBlcgotICB2YXIgZ29vZyA9IHsgbWF0aDoge30gfTsKLSAgLyoqCi0gICAqIENvbnN0
cnVjdHMgYSA2NC1iaXQgdHdvJ3MtY29tcGxlbWVudCBpbnRlZ2VyLCBnaXZlbiBpdHMgbG93IGFu
ZCBoaWdoIDMyLWJpdAotICAgKiB2YWx1ZXMgYXMgKnNpZ25lZCogaW50ZWdlcnMuICBTZWUgdGhl
IGZyb20qIGZ1bmN0aW9ucyBiZWxvdyBmb3IgbW9yZQotICAgKiBjb252ZW5pZW50IHdheXMgb2Yg
Y29uc3RydWN0aW5nIExvbmdzLgotICAgKgotICAgKiBUaGUgaW50ZXJuYWwgcmVwcmVzZW50YXRp
b24gb2YgYSBsb25nIGlzIHRoZSB0d28gZ2l2ZW4gc2lnbmVkLCAzMi1iaXQgdmFsdWVzLgotICAg
KiBXZSB1c2UgMzItYml0IHBpZWNlcyBiZWNhdXNlIHRoZXNlIGFyZSB0aGUgc2l6ZSBvZiBpbnRl
Z2VycyBvbiB3aGljaAotICAgKiBKYXZhc2NyaXB0IHBlcmZvcm1zIGJpdC1vcGVyYXRpb25zLiAg
Rm9yIG9wZXJhdGlvbnMgbGlrZSBhZGRpdGlvbiBhbmQKLSAgICogbXVsdGlwbGljYXRpb24sIHdl
IHNwbGl0IGVhY2ggbnVtYmVyIGludG8gMTYtYml0IHBpZWNlcywgd2hpY2ggY2FuIGVhc2lseSBi
ZQotICAgKiBtdWx0aXBsaWVkIHdpdGhpbiBKYXZhc2NyaXB0J3MgZmxvYXRpbmctcG9pbnQgcmVw
cmVzZW50YXRpb24gd2l0aG91dCBvdmVyZmxvdwotICAgKiBvciBjaGFuZ2UgaW4gc2lnbi4KLSAg
ICoKLSAgICogSW4gdGhlIGFsZ29yaXRobXMgYmVsb3csIHdlIGZyZXF1ZW50bHkgcmVkdWNlIHRo
ZSBuZWdhdGl2ZSBjYXNlIHRvIHRoZQotICAgKiBwb3NpdGl2ZSBjYXNlIGJ5IG5lZ2F0aW5nIHRo
ZSBpbnB1dChzKSBhbmQgdGhlbiBwb3N0LXByb2Nlc3NpbmcgdGhlIHJlc3VsdC4KLSAgICogTm90
ZSB0aGF0IHdlIG11c3QgQUxXQVlTIGNoZWNrIHNwZWNpYWxseSB3aGV0aGVyIHRob3NlIHZhbHVl
cyBhcmUgTUlOX1ZBTFVFCi0gICAqICgtMl42MykgYmVjYXVzZSAtTUlOX1ZBTFVFID09IE1JTl9W
QUxVRSAoc2luY2UgMl42MyBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYXMKLSAgICogYSBwb3NpdGl2
ZSBudW1iZXIsIGl0IG92ZXJmbG93cyBiYWNrIGludG8gYSBuZWdhdGl2ZSkuICBOb3QgaGFuZGxp
bmcgdGhpcwotICAgKiBjYXNlIHdvdWxkIG9mdGVuIHJlc3VsdCBpbiBpbmZpbml0ZSByZWN1cnNp
b24uCi0gICAqCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBsb3cgIFRoZSBsb3cgKHNpZ25lZCkgMzIg
Yml0cyBvZiB0aGUgbG9uZy4KLSAgICogQHBhcmFtIHtudW1iZXJ9IGhpZ2ggIFRoZSBoaWdoIChz
aWduZWQpIDMyIGJpdHMgb2YgdGhlIGxvbmcuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcgPSBmdW5jdGlvbihsb3csIGhpZ2gpIHsKLSAgICAvKioKLSAgICAgKiBA
dHlwZSB7bnVtYmVyfQotICAgICAqIEBwcml2YXRlCi0gICAgICovCi0gICAgdGhpcy5sb3dfID0g
bG93IHwgMDsgIC8vIGZvcmNlIGludG8gMzIgc2lnbmVkIGJpdHMuCi0gICAgLyoqCi0gICAgICog
QHR5cGUge251bWJlcn0KLSAgICAgKiBAcHJpdmF0ZQotICAgICAqLwotICAgIHRoaXMuaGlnaF8g
PSBoaWdoIHwgMDsgIC8vIGZvcmNlIGludG8gMzIgc2lnbmVkIGJpdHMuCi0gIH07Ci0gIC8vIE5P
VEU6IENvbW1vbiBjb25zdGFudCB2YWx1ZXMgWkVSTywgT05FLCBORUdfT05FLCBldGMuIGFyZSBk
ZWZpbmVkIGJlbG93IHRoZQotICAvLyBmcm9tKiBtZXRob2RzIG9uIHdoaWNoIHRoZXkgZGVwZW5k
LgotICAvKioKLSAgICogQSBjYWNoZSBvZiB0aGUgTG9uZyByZXByZXNlbnRhdGlvbnMgb2Ygc21h
bGwgaW50ZWdlciB2YWx1ZXMuCi0gICAqIEB0eXBlIHshT2JqZWN0fQotICAgKiBAcHJpdmF0ZQot
ICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuSW50Q2FjaGVfID0ge307Ci0gIC8qKgotICAgKiBSZXR1
cm5zIGEgTG9uZyByZXByZXNlbnRpbmcgdGhlIGdpdmVuICgzMi1iaXQpIGludGVnZXIgdmFsdWUu
Ci0gICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgMzItYml0IGludGVnZXIgaW4gcXVlc3Rp
b24uCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGNvcnJlc3BvbmRpbmcgTG9u
ZyB2YWx1ZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLmZyb21JbnQgPSBmdW5jdGlvbih2YWx1
ZSkgewotICAgIGlmICgtMTI4IDw9IHZhbHVlICYmIHZhbHVlIDwgMTI4KSB7Ci0gICAgICB2YXIg
Y2FjaGVkT2JqID0gZ29vZy5tYXRoLkxvbmcuSW50Q2FjaGVfW3ZhbHVlXTsKLSAgICAgIGlmIChj
YWNoZWRPYmopIHsKLSAgICAgICAgcmV0dXJuIGNhY2hlZE9iajsKLSAgICAgIH0KLSAgICB9Ci0g
ICAgdmFyIG9iaiA9IG5ldyBnb29nLm1hdGguTG9uZyh2YWx1ZSB8IDAsIHZhbHVlIDwgMCA/IC0x
IDogMCk7Ci0gICAgaWYgKC0xMjggPD0gdmFsdWUgJiYgdmFsdWUgPCAxMjgpIHsKLSAgICAgIGdv
b2cubWF0aC5Mb25nLkludENhY2hlX1t2YWx1ZV0gPSBvYmo7Ci0gICAgfQotICAgIHJldHVybiBv
Ymo7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIGEgTG9uZyByZXByZXNlbnRpbmcgdGhlIGdp
dmVuIHZhbHVlLCBwcm92aWRlZCB0aGF0IGl0IGlzIGEgZmluaXRlCi0gICAqIG51bWJlci4gIE90
aGVyd2lzZSwgemVybyBpcyByZXR1cm5lZC4KLSAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIFRo
ZSBudW1iZXIgaW4gcXVlc3Rpb24uCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhl
IGNvcnJlc3BvbmRpbmcgTG9uZyB2YWx1ZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLmZyb21O
dW1iZXIgPSBmdW5jdGlvbih2YWx1ZSkgewotICAgIGlmIChpc05hTih2YWx1ZSkgfHwgIWlzRmlu
aXRlKHZhbHVlKSkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgfSBl
bHNlIGlmICh2YWx1ZSA8PSAtZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl82M19EQkxfKSB7Ci0gICAg
ICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFOwotICAgIH0gZWxzZSBpZiAodmFsdWUg
KyAxID49IGdvb2cubWF0aC5Mb25nLlRXT19QV1JfNjNfREJMXykgewotICAgICAgcmV0dXJuIGdv
b2cubWF0aC5Mb25nLk1BWF9WQUxVRTsKLSAgICB9IGVsc2UgaWYgKHZhbHVlIDwgMCkgewotICAg
ICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIoLXZhbHVlKS5uZWdhdGUoKTsKLSAg
ICB9IGVsc2UgewotICAgICAgcmV0dXJuIG5ldyBnb29nLm1hdGguTG9uZygKLSAgICAgICAgICAo
dmFsdWUgJSBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8pIHwgMCwKLSAgICAgICAgICAo
dmFsdWUgLyBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8pIHwgMCk7Ci0gICAgfQotICB9
OwotICAvKioKLSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50aW5nIHRoZSA2NC1iaXQgaW50
ZWdlciB0aGF0IGNvbWVzIGJ5IGNvbmNhdGVuYXRpbmcKLSAgICogdGhlIGdpdmVuIGhpZ2ggYW5k
IGxvdyBiaXRzLiAgRWFjaCBpcyBhc3N1bWVkIHRvIHVzZSAzMiBiaXRzLgotICAgKiBAcGFyYW0g
e251bWJlcn0gbG93Qml0cyBUaGUgbG93IDMyLWJpdHMuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBo
aWdoQml0cyBUaGUgaGlnaCAzMi1iaXRzLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9
IFRoZSBjb3JyZXNwb25kaW5nIExvbmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5m
cm9tQml0cyA9IGZ1bmN0aW9uKGxvd0JpdHMsIGhpZ2hCaXRzKSB7Ci0gICAgcmV0dXJuIG5ldyBn
b29nLm1hdGguTG9uZyhsb3dCaXRzLCBoaWdoQml0cyk7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1
cm5zIGEgTG9uZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gc3RyaW5nLCB3cml0dGVuIHVz
aW5nIHRoZSBnaXZlbgotICAgKiByYWRpeC4KLSAgICogQHBhcmFtIHtzdHJpbmd9IHN0ciBUaGUg
dGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgTG9uZy4KLSAgICogQHBhcmFtIHtudW1iZXI9
fSBvcHRfcmFkaXggVGhlIHJhZGl4IGluIHdoaWNoIHRoZSB0ZXh0IGlzIHdyaXR0ZW4uCi0gICAq
IEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGNvcnJlc3BvbmRpbmcgTG9uZyB2YWx1ZS4K
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nLmZyb21TdHJpbmcgPSBmdW5jdGlvbihzdHIsIG9wdF9y
YWRpeCkgewotICAgIGlmIChzdHIubGVuZ3RoID09IDApIHsKLSAgICAgIHRocm93IEVycm9yKCdu
dW1iZXIgZm9ybWF0IGVycm9yOiBlbXB0eSBzdHJpbmcnKTsKLSAgICB9Ci0gICAgdmFyIHJhZGl4
ID0gb3B0X3JhZGl4IHx8IDEwOwotICAgIGlmIChyYWRpeCA8IDIgfHwgMzYgPCByYWRpeCkgewot
ICAgICAgdGhyb3cgRXJyb3IoJ3JhZGl4IG91dCBvZiByYW5nZTogJyArIHJhZGl4KTsKLSAgICB9
Ci0gICAgaWYgKHN0ci5jaGFyQXQoMCkgPT0gJy0nKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRo
LkxvbmcuZnJvbVN0cmluZyhzdHIuc3Vic3RyaW5nKDEpLCByYWRpeCkubmVnYXRlKCk7Ci0gICAg
fSBlbHNlIGlmIChzdHIuaW5kZXhPZignLScpID49IDApIHsKLSAgICAgIHRocm93IEVycm9yKCdu
dW1iZXIgZm9ybWF0IGVycm9yOiBpbnRlcmlvciAiLSIgY2hhcmFjdGVyOiAnICsgc3RyKTsKLSAg
ICB9Ci0gICAgLy8gRG8gc2V2ZXJhbCAoOCkgZGlnaXRzIGVhY2ggdGltZSB0aHJvdWdoIHRoZSBs
b29wLCBzbyBhcyB0bwotICAgIC8vIG1pbmltaXplIHRoZSBjYWxscyB0byB0aGUgdmVyeSBleHBl
bnNpdmUgZW11bGF0ZWQgZGl2LgotICAgIHZhciByYWRpeFRvUG93ZXIgPSBnb29nLm1hdGguTG9u
Zy5mcm9tTnVtYmVyKE1hdGgucG93KHJhZGl4LCA4KSk7Ci0gICAgdmFyIHJlc3VsdCA9IGdvb2cu
bWF0aC5Mb25nLlpFUk87Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpICs9
IDgpIHsKLSAgICAgIHZhciBzaXplID0gTWF0aC5taW4oOCwgc3RyLmxlbmd0aCAtIGkpOwotICAg
ICAgdmFyIHZhbHVlID0gcGFyc2VJbnQoc3RyLnN1YnN0cmluZyhpLCBpICsgc2l6ZSksIHJhZGl4
KTsKLSAgICAgIGlmIChzaXplIDwgOCkgewotICAgICAgICB2YXIgcG93ZXIgPSBnb29nLm1hdGgu
TG9uZy5mcm9tTnVtYmVyKE1hdGgucG93KHJhZGl4LCBzaXplKSk7Ci0gICAgICAgIHJlc3VsdCA9
IHJlc3VsdC5tdWx0aXBseShwb3dlcikuYWRkKGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIodmFs
dWUpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5tdWx0aXBseShy
YWRpeFRvUG93ZXIpOwotICAgICAgICByZXN1bHQgPSByZXN1bHQuYWRkKGdvb2cubWF0aC5Mb25n
LmZyb21OdW1iZXIodmFsdWUpKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsK
LSAgfTsKLSAgLy8gTk9URTogdGhlIGNvbXBpbGVyIHNob3VsZCBpbmxpbmUgdGhlc2UgY29uc3Rh
bnQgdmFsdWVzIGJlbG93IGFuZCB0aGVuIHJlbW92ZQotICAvLyB0aGVzZSB2YXJpYWJsZXMsIHNv
IHRoZXJlIHNob3VsZCBiZSBubyBydW50aW1lIHBlbmFsdHkgZm9yIHRoZXNlLgotICAvKioKLSAg
ICogTnVtYmVyIHVzZWQgcmVwZWF0ZWQgYmVsb3cgaW4gY2FsY3VsYXRpb25zLiAgVGhpcyBtdXN0
IGFwcGVhciBiZWZvcmUgdGhlCi0gICAqIGZpcnN0IGNhbGwgdG8gYW55IGZyb20qIGZ1bmN0aW9u
IGJlbG93LgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAgZ29v
Zy5tYXRoLkxvbmcuVFdPX1BXUl8xNl9EQkxfID0gMSA8PCAxNjsKLSAgLyoqCi0gICAqIEB0eXBl
IHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdS
XzI0X0RCTF8gPSAxIDw8IDI0OwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHBy
aXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXyA9Ci0gICAgICBn
b29nLm1hdGguTG9uZy5UV09fUFdSXzE2X0RCTF8gKiBnb29nLm1hdGguTG9uZy5UV09fUFdSXzE2
X0RCTF87Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQotICAgKi8K
LSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMV9EQkxfID0KLSAgICAgIGdvb2cubWF0aC5Mb25n
LlRXT19QV1JfMzJfREJMXyAvIDI7Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBA
cHJpdmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl80OF9EQkxfID0KLSAgICAg
IGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXyAqIGdvb2cubWF0aC5Mb25nLlRXT19QV1Jf
MTZfREJMXzsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAq
LwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzY0X0RCTF8gPQotICAgICAgZ29vZy5tYXRoLkxv
bmcuVFdPX1BXUl8zMl9EQkxfICogZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfOwotICAv
KioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0
aC5Mb25nLlRXT19QV1JfNjNfREJMXyA9Ci0gICAgICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzY0
X0RCTF8gLyAyOwotICAvKiogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRo
LkxvbmcuWkVSTyA9IGdvb2cubWF0aC5Mb25nLmZyb21JbnQoMCk7Ci0gIC8qKiBAdHlwZSB7IWdv
b2cubWF0aC5Mb25nfSAqLwotICBnb29nLm1hdGguTG9uZy5PTkUgPSBnb29nLm1hdGguTG9uZy5m
cm9tSW50KDEpOwotICAvKiogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRo
LkxvbmcuTkVHX09ORSA9IGdvb2cubWF0aC5Mb25nLmZyb21JbnQoLTEpOwotICAvKiogQHR5cGUg
eyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRoLkxvbmcuTUFYX1ZBTFVFID0KLSAgICAg
IGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKDB4RkZGRkZGRkYgfCAwLCAweDdGRkZGRkZGIHwgMCk7
Ci0gIC8qKiBAdHlwZSB7IWdvb2cubWF0aC5Mb25nfSAqLwotICBnb29nLm1hdGguTG9uZy5NSU5f
VkFMVUUgPSBnb29nLm1hdGguTG9uZy5mcm9tQml0cygwLCAweDgwMDAwMDAwIHwgMCk7Ci0gIC8q
KgotICAgKiBAdHlwZSB7IWdvb2cubWF0aC5Mb25nfQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcuVFdPX1BXUl8yNF8gPSBnb29nLm1hdGguTG9uZy5mcm9tSW50KDEgPDwg
MjQpOwotICAvKiogQHJldHVybiB7bnVtYmVyfSBUaGUgdmFsdWUsIGFzc3VtaW5nIGl0IGlzIGEg
MzItYml0IGludGVnZXIuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS50b0ludCA9IGZ1
bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmxvd187Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtu
dW1iZXJ9IFRoZSBjbG9zZXN0IGZsb2F0aW5nLXBvaW50IHJlcHJlc2VudGF0aW9uIHRvIHRoaXMg
dmFsdWUuICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS50b051bWJlciA9IGZ1bmN0aW9u
KCkgewotICAgIHJldHVybiB0aGlzLmhpZ2hfICogZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9E
QkxfICsKLSAgICAgICAgICAgdGhpcy5nZXRMb3dCaXRzVW5zaWduZWQoKTsKLSAgfTsKLSAgLyoq
Ci0gICAqIEBwYXJhbSB7bnVtYmVyPX0gb3B0X3JhZGl4IFRoZSByYWRpeCBpbiB3aGljaCB0aGUg
dGV4dCBzaG91bGQgYmUgd3JpdHRlbi4KLSAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgdGV4dHVh
bCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHZhbHVlLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcu
cHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24ob3B0X3JhZGl4KSB7Ci0gICAgdmFyIHJhZGl4
ID0gb3B0X3JhZGl4IHx8IDEwOwotICAgIGlmIChyYWRpeCA8IDIgfHwgMzYgPCByYWRpeCkgewot
ICAgICAgdGhyb3cgRXJyb3IoJ3JhZGl4IG91dCBvZiByYW5nZTogJyArIHJhZGl4KTsKLSAgICB9
Ci0gICAgaWYgKHRoaXMuaXNaZXJvKCkpIHsKLSAgICAgIHJldHVybiAnMCc7Ci0gICAgfQotICAg
IGlmICh0aGlzLmlzTmVnYXRpdmUoKSkgewotICAgICAgaWYgKHRoaXMuZXF1YWxzKGdvb2cubWF0
aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgICAgLy8gV2UgbmVlZCB0byBjaGFuZ2UgdGhlIExv
bmcgdmFsdWUgYmVmb3JlIGl0IGNhbiBiZSBuZWdhdGVkLCBzbyB3ZSByZW1vdmUKLSAgICAgICAg
Ly8gdGhlIGJvdHRvbS1tb3N0IGRpZ2l0IGluIHRoaXMgYmFzZSBhbmQgdGhlbiByZWN1cnNlIHRv
IGRvIHRoZSByZXN0LgotICAgICAgICB2YXIgcmFkaXhMb25nID0gZ29vZy5tYXRoLkxvbmcuZnJv
bU51bWJlcihyYWRpeCk7Ci0gICAgICAgIHZhciBkaXYgPSB0aGlzLmRpdihyYWRpeExvbmcpOwot
ICAgICAgICB2YXIgcmVtID0gZGl2Lm11bHRpcGx5KHJhZGl4TG9uZykuc3VidHJhY3QodGhpcyk7
Ci0gICAgICAgIHJldHVybiBkaXYudG9TdHJpbmcocmFkaXgpICsgcmVtLnRvSW50KCkudG9TdHJp
bmcocmFkaXgpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuICctJyArIHRoaXMubmVn
YXRlKCkudG9TdHJpbmcocmFkaXgpOwotICAgICAgfQotICAgIH0KLSAgICAvLyBEbyBzZXZlcmFs
ICg2KSBkaWdpdHMgZWFjaCB0aW1lIHRocm91Z2ggdGhlIGxvb3AsIHNvIGFzIHRvCi0gICAgLy8g
bWluaW1pemUgdGhlIGNhbGxzIHRvIHRoZSB2ZXJ5IGV4cGVuc2l2ZSBlbXVsYXRlZCBkaXYuCi0g
ICAgdmFyIHJhZGl4VG9Qb3dlciA9IGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIoTWF0aC5wb3co
cmFkaXgsIDYpKTsKLSAgICB2YXIgcmVtID0gdGhpczsKLSAgICB2YXIgcmVzdWx0ID0gJyc7Ci0g
ICAgd2hpbGUgKHRydWUpIHsKLSAgICAgIHZhciByZW1EaXYgPSByZW0uZGl2KHJhZGl4VG9Qb3dl
cik7Ci0gICAgICB2YXIgaW50dmFsID0gcmVtLnN1YnRyYWN0KHJlbURpdi5tdWx0aXBseShyYWRp
eFRvUG93ZXIpKS50b0ludCgpOwotICAgICAgdmFyIGRpZ2l0cyA9IGludHZhbC50b1N0cmluZyhy
YWRpeCk7Ci0gICAgICByZW0gPSByZW1EaXY7Ci0gICAgICBpZiAocmVtLmlzWmVybygpKSB7Ci0g
ICAgICAgIHJldHVybiBkaWdpdHMgKyByZXN1bHQ7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB3
aGlsZSAoZGlnaXRzLmxlbmd0aCA8IDYpIHsKLSAgICAgICAgICBkaWdpdHMgPSAnMCcgKyBkaWdp
dHM7Ci0gICAgICAgIH0KLSAgICAgICAgcmVzdWx0ID0gJycgKyBkaWdpdHMgKyByZXN1bHQ7Ci0g
ICAgICB9Ci0gICAgfQotICB9OwotICAvKiogQHJldHVybiB7bnVtYmVyfSBUaGUgaGlnaCAzMi1i
aXRzIGFzIGEgc2lnbmVkIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZ2V0
SGlnaEJpdHMgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdoXzsKLSAgfTsKLSAg
LyoqIEByZXR1cm4ge251bWJlcn0gVGhlIGxvdyAzMi1iaXRzIGFzIGEgc2lnbmVkIHZhbHVlLiAq
LwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZ2V0TG93Qml0cyA9IGZ1bmN0aW9uKCkgewot
ICAgIHJldHVybiB0aGlzLmxvd187Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBs
b3cgMzItYml0cyBhcyBhbiB1bnNpZ25lZCB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJv
dG90eXBlLmdldExvd0JpdHNVbnNpZ25lZCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiAodGhp
cy5sb3dfID49IDApID8KLSAgICAgICAgdGhpcy5sb3dfIDogZ29vZy5tYXRoLkxvbmcuVFdPX1BX
Ul8zMl9EQkxfICsgdGhpcy5sb3dfOwotICB9OwotICAvKioKLSAgICogQHJldHVybiB7bnVtYmVy
fSBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYml0cyBuZWVkZWQgdG8gcmVwcmVzZW50IHRoZSBhYnNv
bHV0ZQotICAgKiAgICAgdmFsdWUgb2YgdGhpcyBMb25nLgotICAgKi8KLSAgZ29vZy5tYXRoLkxv
bmcucHJvdG90eXBlLmdldE51bUJpdHNBYnMgPSBmdW5jdGlvbigpIHsKLSAgICBpZiAodGhpcy5p
c05lZ2F0aXZlKCkpIHsKLSAgICAgIGlmICh0aGlzLmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5f
VkFMVUUpKSB7Ci0gICAgICAgIHJldHVybiA2NDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLm5lZ2F0ZSgpLmdldE51bUJpdHNBYnMoKTsKLSAgICAgIH0KLSAgICB9IGVsc2Ug
ewotICAgICAgdmFyIHZhbCA9IHRoaXMuaGlnaF8gIT0gMCA/IHRoaXMuaGlnaF8gOiB0aGlzLmxv
d187Ci0gICAgICBmb3IgKHZhciBiaXQgPSAzMTsgYml0ID4gMDsgYml0LS0pIHsKLSAgICAgICAg
aWYgKCh2YWwgJiAoMSA8PCBiaXQpKSAhPSAwKSB7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgIH0KLSAgICAgIHJldHVybiB0aGlzLmhpZ2hfICE9IDAgPyBiaXQgKyAzMyA6IGJp
dCArIDE7Ci0gICAgfQotICB9OwotICAvKiogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlz
IHZhbHVlIGlzIHplcm8uICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5pc1plcm8gPSBm
dW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdoXyA9PSAwICYmIHRoaXMubG93XyA9PSAw
OwotICB9OwotICAvKiogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIHZhbHVlIGlzIG5l
Z2F0aXZlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuaXNOZWdhdGl2ZSA9IGZ1bmN0
aW9uKCkgewotICAgIHJldHVybiB0aGlzLmhpZ2hfIDwgMDsKLSAgfTsKLSAgLyoqIEByZXR1cm4g
e2Jvb2xlYW59IFdoZXRoZXIgdGhpcyB2YWx1ZSBpcyBvZGQuICovCi0gIGdvb2cubWF0aC5Mb25n
LnByb3RvdHlwZS5pc09kZCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiAodGhpcy5sb3dfICYg
MSkgPT0gMTsKLSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVy
IExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVy
IHRoaXMgTG9uZyBlcXVhbHMgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJv
dG90eXBlLmVxdWFscyA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuICh0aGlzLmhpZ2hf
ID09IG90aGVyLmhpZ2hfKSAmJiAodGhpcy5sb3dfID09IG90aGVyLmxvd18pOwotICB9OwotICAv
KioKLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFn
YWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBMb25nIGRvZXMgbm90
IGVxdWFsIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5ub3RF
cXVhbHMgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiAodGhpcy5oaWdoXyAhPSBvdGhl
ci5oaWdoXykgfHwgKHRoaXMubG93XyAhPSBvdGhlci5sb3dfKTsKLSAgfTsKLSAgLyoqCi0gICAq
IEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0Lgot
ICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9uZyBpcyBsZXNzIHRoYW4gdGhl
IG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmxlc3NUaGFuID0gZnVu
Y3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhpcy5jb21wYXJlKG90aGVyKSA8IDA7Ci0gIH07
Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBh
cmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExvbmcgaXMg
bGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25n
LnByb3RvdHlwZS5sZXNzVGhhbk9yRXF1YWwgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVy
biB0aGlzLmNvbXBhcmUob3RoZXIpIDw9IDA7Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dv
b2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVy
biB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExvbmcgaXMgZ3JlYXRlciB0aGFuIHRoZSBvdGhlci4K
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5ncmVhdGVyVGhhbiA9IGZ1bmN0aW9u
KG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikgPiAwOwotICB9OwotICAv
KioKLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFn
YWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBMb25nIGlzIGdyZWF0
ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5w
cm90b3R5cGUuZ3JlYXRlclRoYW5PckVxdWFsID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1
cm4gdGhpcy5jb21wYXJlKG90aGVyKSA+PSAwOwotICB9OwotICAvKioKLSAgICogQ29tcGFyZXMg
dGhpcyBMb25nIHdpdGggdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9u
Z30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1cm4ge251bWJlcn0g
MCBpZiB0aGV5IGFyZSB0aGUgc2FtZSwgMSBpZiB0aGUgdGhpcyBpcyBncmVhdGVyLCBhbmQgLTEK
LSAgICogICAgIGlmIHRoZSBnaXZlbiBvbmUgaXMgZ3JlYXRlci4KLSAgICovCi0gIGdvb2cubWF0
aC5Mb25nLnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICBpZiAodGhp
cy5lcXVhbHMob3RoZXIpKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgdmFyIHRoaXNO
ZWcgPSB0aGlzLmlzTmVnYXRpdmUoKTsKLSAgICB2YXIgb3RoZXJOZWcgPSBvdGhlci5pc05lZ2F0
aXZlKCk7Ci0gICAgaWYgKHRoaXNOZWcgJiYgIW90aGVyTmVnKSB7Ci0gICAgICByZXR1cm4gLTE7
Ci0gICAgfQotICAgIGlmICghdGhpc05lZyAmJiBvdGhlck5lZykgewotICAgICAgcmV0dXJuIDE7
Ci0gICAgfQotICAgIC8vIGF0IHRoaXMgcG9pbnQsIHRoZSBzaWducyBhcmUgdGhlIHNhbWUsIHNv
IHN1YnRyYWN0aW9uIHdpbGwgbm90IG92ZXJmbG93Ci0gICAgaWYgKHRoaXMuc3VidHJhY3Qob3Ro
ZXIpLmlzTmVnYXRpdmUoKSkgewotICAgICAgcmV0dXJuIC0xOwotICAgIH0gZWxzZSB7Ci0gICAg
ICByZXR1cm4gMTsKLSAgICB9Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9
IFRoZSBuZWdhdGlvbiBvZiB0aGlzIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5
cGUubmVnYXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgaWYgKHRoaXMuZXF1YWxzKGdvb2cubWF0aC5M
b25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5NSU5fVkFMVUU7
Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiB0aGlzLm5vdCgpLmFkZChnb29nLm1hdGguTG9u
Zy5PTkUpOwotICAgIH0KLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhlIHN1bSBvZiB0aGlz
IGFuZCB0aGUgZ2l2ZW4gTG9uZy4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIg
TG9uZyB0byBhZGQgdG8gdGhpcyBvbmUuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30g
VGhlIHN1bSBvZiB0aGlzIGFuZCB0aGUgZ2l2ZW4gTG9uZy4KLSAgICovCi0gIGdvb2cubWF0aC5M
b25nLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbihvdGhlcikgewotICAgIC8vIERpdmlkZSBlYWNo
IG51bWJlciBpbnRvIDQgY2h1bmtzIG9mIDE2IGJpdHMsIGFuZCB0aGVuIHN1bSB0aGUgY2h1bmtz
LgotICAgIHZhciBhNDggPSB0aGlzLmhpZ2hfID4+PiAxNjsKLSAgICB2YXIgYTMyID0gdGhpcy5o
aWdoXyAmIDB4RkZGRjsKLSAgICB2YXIgYTE2ID0gdGhpcy5sb3dfID4+PiAxNjsKLSAgICB2YXIg
YTAwID0gdGhpcy5sb3dfICYgMHhGRkZGOwotICAgIHZhciBiNDggPSBvdGhlci5oaWdoXyA+Pj4g
MTY7Ci0gICAgdmFyIGIzMiA9IG90aGVyLmhpZ2hfICYgMHhGRkZGOwotICAgIHZhciBiMTYgPSBv
dGhlci5sb3dfID4+PiAxNjsKLSAgICB2YXIgYjAwID0gb3RoZXIubG93XyAmIDB4RkZGRjsKLSAg
ICB2YXIgYzQ4ID0gMCwgYzMyID0gMCwgYzE2ID0gMCwgYzAwID0gMDsKLSAgICBjMDAgKz0gYTAw
ICsgYjAwOwotICAgIGMxNiArPSBjMDAgPj4+IDE2OwotICAgIGMwMCAmPSAweEZGRkY7Ci0gICAg
YzE2ICs9IGExNiArIGIxNjsKLSAgICBjMzIgKz0gYzE2ID4+PiAxNjsKLSAgICBjMTYgJj0gMHhG
RkZGOwotICAgIGMzMiArPSBhMzIgKyBiMzI7Ci0gICAgYzQ4ICs9IGMzMiA+Pj4gMTY7Ci0gICAg
YzMyICY9IDB4RkZGRjsKLSAgICBjNDggKz0gYTQ4ICsgYjQ4OwotICAgIGM0OCAmPSAweEZGRkY7
Ci0gICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKChjMTYgPDwgMTYpIHwgYzAwLCAo
YzQ4IDw8IDE2KSB8IGMzMik7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBkaWZmZXJl
bmNlIG9mIHRoaXMgYW5kIHRoZSBnaXZlbiBMb25nLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5M
b25nfSBvdGhlciBMb25nIHRvIHN1YnRyYWN0IGZyb20gdGhpcy4KLSAgICogQHJldHVybiB7IWdv
b2cubWF0aC5Mb25nfSBUaGUgZGlmZmVyZW5jZSBvZiB0aGlzIGFuZCB0aGUgZ2l2ZW4gTG9uZy4K
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5zdWJ0cmFjdCA9IGZ1bmN0aW9uKG90
aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMuYWRkKG90aGVyLm5lZ2F0ZSgpKTsKLSAgfTsKLSAgLyoq
Ci0gICAqIFJldHVybnMgdGhlIHByb2R1Y3Qgb2YgdGhpcyBhbmQgdGhlIGdpdmVuIGxvbmcuCi0g
ICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gbXVsdGlwbHkgd2l0aCB0
aGlzLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBwcm9kdWN0IG9mIHRoaXMg
YW5kIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5tdWx0aXBs
eSA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgaWYgKHRoaXMuaXNaZXJvKCkpIHsKLSAgICAgIHJl
dHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0gZWxzZSBpZiAob3RoZXIuaXNaZXJvKCkp
IHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0KLSAgICBpZiAodGhp
cy5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgcmV0dXJuIG90aGVy
LmlzT2RkKCkgPyBnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUgOiBnb29nLm1hdGguTG9uZy5aRVJP
OwotICAgIH0gZWxzZSBpZiAob3RoZXIuZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkp
IHsKLSAgICAgIHJldHVybiB0aGlzLmlzT2RkKCkgPyBnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUg
OiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0KLSAgICBpZiAodGhpcy5pc05lZ2F0aXZlKCkp
IHsKLSAgICAgIGlmIChvdGhlci5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
bmVnYXRlKCkubXVsdGlwbHkob3RoZXIubmVnYXRlKCkpOwotICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgcmV0dXJuIHRoaXMubmVnYXRlKCkubXVsdGlwbHkob3RoZXIpLm5lZ2F0ZSgpOwotICAgICAg
fQotICAgIH0gZWxzZSBpZiAob3RoZXIuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICByZXR1cm4gdGhp
cy5tdWx0aXBseShvdGhlci5uZWdhdGUoKSkubmVnYXRlKCk7Ci0gICAgfQotICAgIC8vIElmIGJv
dGggbG9uZ3MgYXJlIHNtYWxsLCB1c2UgZmxvYXQgbXVsdGlwbGljYXRpb24KLSAgICBpZiAodGhp
cy5sZXNzVGhhbihnb29nLm1hdGguTG9uZy5UV09fUFdSXzI0XykgJiYKLSAgICAgICAgb3RoZXIu
bGVzc1RoYW4oZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8yNF8pKSB7Ci0gICAgICByZXR1cm4gZ29v
Zy5tYXRoLkxvbmcuZnJvbU51bWJlcih0aGlzLnRvTnVtYmVyKCkgKiBvdGhlci50b051bWJlcigp
KTsKLSAgICB9Ci0gICAgLy8gRGl2aWRlIGVhY2ggbG9uZyBpbnRvIDQgY2h1bmtzIG9mIDE2IGJp
dHMsIGFuZCB0aGVuIGFkZCB1cCA0eDQgcHJvZHVjdHMuCi0gICAgLy8gV2UgY2FuIHNraXAgcHJv
ZHVjdHMgdGhhdCB3b3VsZCBvdmVyZmxvdy4KLSAgICB2YXIgYTQ4ID0gdGhpcy5oaWdoXyA+Pj4g
MTY7Ci0gICAgdmFyIGEzMiA9IHRoaXMuaGlnaF8gJiAweEZGRkY7Ci0gICAgdmFyIGExNiA9IHRo
aXMubG93XyA+Pj4gMTY7Ci0gICAgdmFyIGEwMCA9IHRoaXMubG93XyAmIDB4RkZGRjsKLSAgICB2
YXIgYjQ4ID0gb3RoZXIuaGlnaF8gPj4+IDE2OwotICAgIHZhciBiMzIgPSBvdGhlci5oaWdoXyAm
IDB4RkZGRjsKLSAgICB2YXIgYjE2ID0gb3RoZXIubG93XyA+Pj4gMTY7Ci0gICAgdmFyIGIwMCA9
IG90aGVyLmxvd18gJiAweEZGRkY7Ci0gICAgdmFyIGM0OCA9IDAsIGMzMiA9IDAsIGMxNiA9IDAs
IGMwMCA9IDA7Ci0gICAgYzAwICs9IGEwMCAqIGIwMDsKLSAgICBjMTYgKz0gYzAwID4+PiAxNjsK
LSAgICBjMDAgJj0gMHhGRkZGOwotICAgIGMxNiArPSBhMTYgKiBiMDA7Ci0gICAgYzMyICs9IGMx
NiA+Pj4gMTY7Ci0gICAgYzE2ICY9IDB4RkZGRjsKLSAgICBjMTYgKz0gYTAwICogYjE2OwotICAg
IGMzMiArPSBjMTYgPj4+IDE2OwotICAgIGMxNiAmPSAweEZGRkY7Ci0gICAgYzMyICs9IGEzMiAq
IGIwMDsKLSAgICBjNDggKz0gYzMyID4+PiAxNjsKLSAgICBjMzIgJj0gMHhGRkZGOwotICAgIGMz
MiArPSBhMTYgKiBiMTY7Ci0gICAgYzQ4ICs9IGMzMiA+Pj4gMTY7Ci0gICAgYzMyICY9IDB4RkZG
RjsKLSAgICBjMzIgKz0gYTAwICogYjMyOwotICAgIGM0OCArPSBjMzIgPj4+IDE2OwotICAgIGMz
MiAmPSAweEZGRkY7Ci0gICAgYzQ4ICs9IGE0OCAqIGIwMCArIGEzMiAqIGIxNiArIGExNiAqIGIz
MiArIGEwMCAqIGI0ODsKLSAgICBjNDggJj0gMHhGRkZGOwotICAgIHJldHVybiBnb29nLm1hdGgu
TG9uZy5mcm9tQml0cygoYzE2IDw8IDE2KSB8IGMwMCwgKGM0OCA8PCAxNikgfCBjMzIpOwotICB9
OwotICAvKioKLSAgICogUmV0dXJucyB0aGlzIExvbmcgZGl2aWRlZCBieSB0aGUgZ2l2ZW4gb25l
LgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIGJ5IHdoaWNoIHRvIGRp
dmlkZS4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGlzIExvbmcgZGl2aWRlZCBi
eSB0aGUgZ2l2ZW4gb25lLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmRpdiA9
IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgaWYgKG90aGVyLmlzWmVybygpKSB7Ci0gICAgICB0aHJv
dyBFcnJvcignZGl2aXNpb24gYnkgemVybycpOwotICAgIH0gZWxzZSBpZiAodGhpcy5pc1plcm8o
KSkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgfQotICAgIGlmICh0
aGlzLmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICBpZiAob3RoZXIu
ZXF1YWxzKGdvb2cubWF0aC5Mb25nLk9ORSkgfHwKLSAgICAgICAgICBvdGhlci5lcXVhbHMoZ29v
Zy5tYXRoLkxvbmcuTkVHX09ORSkpIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLk1J
Tl9WQUxVRTsgIC8vIHJlY2FsbCB0aGF0IC1NSU5fVkFMVUUgPT0gTUlOX1ZBTFVFCi0gICAgICB9
IGVsc2UgaWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAg
ICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5PTkU7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAv
LyBBdCB0aGlzIHBvaW50LCB3ZSBoYXZlIHxvdGhlcnwgPj0gMiwgc28gfHRoaXMvb3RoZXJ8IDwg
fE1JTl9WQUxVRXwuCi0gICAgICAgIHZhciBoYWxmVGhpcyA9IHRoaXMuc2hpZnRSaWdodCgxKTsK
LSAgICAgICAgdmFyIGFwcHJveCA9IGhhbGZUaGlzLmRpdihvdGhlcikuc2hpZnRMZWZ0KDEpOwot
ICAgICAgICBpZiAoYXBwcm94LmVxdWFscyhnb29nLm1hdGguTG9uZy5aRVJPKSkgewotICAgICAg
ICAgIHJldHVybiBvdGhlci5pc05lZ2F0aXZlKCkgPyBnb29nLm1hdGguTG9uZy5PTkUgOiBnb29n
Lm1hdGguTG9uZy5ORUdfT05FOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHZhciByZW0g
PSB0aGlzLnN1YnRyYWN0KG90aGVyLm11bHRpcGx5KGFwcHJveCkpOwotICAgICAgICAgIHZhciBy
ZXN1bHQgPSBhcHByb3guYWRkKHJlbS5kaXYob3RoZXIpKTsKLSAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChvdGhlci5lcXVhbHMoZ29v
Zy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLlpF
Uk87Ci0gICAgfQotICAgIGlmICh0aGlzLmlzTmVnYXRpdmUoKSkgewotICAgICAgaWYgKG90aGVy
LmlzTmVnYXRpdmUoKSkgewotICAgICAgICByZXR1cm4gdGhpcy5uZWdhdGUoKS5kaXYob3RoZXIu
bmVnYXRlKCkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmVnYXRlKCku
ZGl2KG90aGVyKS5uZWdhdGUoKTsKLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG90aGVyLmlzTmVn
YXRpdmUoKSkgewotICAgICAgcmV0dXJuIHRoaXMuZGl2KG90aGVyLm5lZ2F0ZSgpKS5uZWdhdGUo
KTsKLSAgICB9Ci0gICAgLy8gUmVwZWF0IHRoZSBmb2xsb3dpbmcgdW50aWwgdGhlIHJlbWFpbmRl
ciBpcyBsZXNzIHRoYW4gb3RoZXI6ICBmaW5kIGEKLSAgICAvLyBmbG9hdGluZy1wb2ludCB0aGF0
IGFwcHJveGltYXRlcyByZW1haW5kZXIgLyBvdGhlciAqZnJvbSBiZWxvdyosIGFkZCB0aGlzCi0g
ICAgLy8gaW50byB0aGUgcmVzdWx0LCBhbmQgc3VidHJhY3QgaXQgZnJvbSB0aGUgcmVtYWluZGVy
LiAgSXQgaXMgY3JpdGljYWwgdGhhdAotICAgIC8vIHRoZSBhcHByb3hpbWF0ZSB2YWx1ZSBpcyBs
ZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHJlYWwgdmFsdWUgc28gdGhhdCB0aGUKLSAgICAvLyBy
ZW1haW5kZXIgbmV2ZXIgYmVjb21lcyBuZWdhdGl2ZS4KLSAgICB2YXIgcmVzID0gZ29vZy5tYXRo
LkxvbmcuWkVSTzsKLSAgICB2YXIgcmVtID0gdGhpczsKLSAgICB3aGlsZSAocmVtLmdyZWF0ZXJU
aGFuT3JFcXVhbChvdGhlcikpIHsKLSAgICAgIC8vIEFwcHJveGltYXRlIHRoZSByZXN1bHQgb2Yg
ZGl2aXNpb24uIFRoaXMgbWF5IGJlIGEgbGl0dGxlIGdyZWF0ZXIgb3IKLSAgICAgIC8vIHNtYWxs
ZXIgdGhhbiB0aGUgYWN0dWFsIHZhbHVlLgotICAgICAgdmFyIGFwcHJveCA9IE1hdGgubWF4KDEs
IE1hdGguZmxvb3IocmVtLnRvTnVtYmVyKCkgLyBvdGhlci50b051bWJlcigpKSk7Ci0gICAgICAv
LyBXZSB3aWxsIHR3ZWFrIHRoZSBhcHByb3hpbWF0ZSByZXN1bHQgYnkgY2hhbmdpbmcgaXQgaW4g
dGhlIDQ4LXRoIGRpZ2l0IG9yCi0gICAgICAvLyB0aGUgc21hbGxlc3Qgbm9uLWZyYWN0aW9uYWwg
ZGlnaXQsIHdoaWNoZXZlciBpcyBsYXJnZXIuCi0gICAgICB2YXIgbG9nMiA9IE1hdGguY2VpbChN
YXRoLmxvZyhhcHByb3gpIC8gTWF0aC5MTjIpOwotICAgICAgdmFyIGRlbHRhID0gKGxvZzIgPD0g
NDgpID8gMSA6IE1hdGgucG93KDIsIGxvZzIgLSA0OCk7Ci0gICAgICAvLyBEZWNyZWFzZSB0aGUg
YXBwcm94aW1hdGlvbiB1bnRpbCBpdCBpcyBzbWFsbGVyIHRoYW4gdGhlIHJlbWFpbmRlci4gIE5v
dGUKLSAgICAgIC8vIHRoYXQgaWYgaXQgaXMgdG9vIGxhcmdlLCB0aGUgcHJvZHVjdCBvdmVyZmxv
d3MgYW5kIGlzIG5lZ2F0aXZlLgotICAgICAgdmFyIGFwcHJveFJlcyA9IGdvb2cubWF0aC5Mb25n
LmZyb21OdW1iZXIoYXBwcm94KTsKLSAgICAgIHZhciBhcHByb3hSZW0gPSBhcHByb3hSZXMubXVs
dGlwbHkob3RoZXIpOwotICAgICAgd2hpbGUgKGFwcHJveFJlbS5pc05lZ2F0aXZlKCkgfHwgYXBw
cm94UmVtLmdyZWF0ZXJUaGFuKHJlbSkpIHsKLSAgICAgICAgYXBwcm94IC09IGRlbHRhOwotICAg
ICAgICBhcHByb3hSZXMgPSBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKGFwcHJveCk7Ci0gICAg
ICAgIGFwcHJveFJlbSA9IGFwcHJveFJlcy5tdWx0aXBseShvdGhlcik7Ci0gICAgICB9Ci0gICAg
ICAvLyBXZSBrbm93IHRoZSBhbnN3ZXIgY2FuJ3QgYmUgemVyby4uLiBhbmQgYWN0dWFsbHksIHpl
cm8gd291bGQgY2F1c2UKLSAgICAgIC8vIGluZmluaXRlIHJlY3Vyc2lvbiBzaW5jZSB3ZSB3b3Vs
ZCBtYWtlIG5vIHByb2dyZXNzLgotICAgICAgaWYgKGFwcHJveFJlcy5pc1plcm8oKSkgewotICAg
ICAgICBhcHByb3hSZXMgPSBnb29nLm1hdGguTG9uZy5PTkU7Ci0gICAgICB9Ci0gICAgICByZXMg
PSByZXMuYWRkKGFwcHJveFJlcyk7Ci0gICAgICByZW0gPSByZW0uc3VidHJhY3QoYXBwcm94UmVt
KTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlczsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhp
cyBMb25nIG1vZHVsbyB0aGUgZ2l2ZW4gb25lLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25n
fSBvdGhlciBMb25nIGJ5IHdoaWNoIHRvIG1vZC4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5M
b25nfSBUaGlzIExvbmcgbW9kdWxvIHRoZSBnaXZlbiBvbmUuCi0gICAqLwotICBnb29nLm1hdGgu
TG9uZy5wcm90b3R5cGUubW9kdWxvID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gdGhp
cy5zdWJ0cmFjdCh0aGlzLmRpdihvdGhlcikubXVsdGlwbHkob3RoZXIpKTsKLSAgfTsKLSAgLyoq
IEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGJpdHdpc2UtTk9UIG9mIHRoaXMgdmFsdWUu
ICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5ub3QgPSBmdW5jdGlvbigpIHsKLSAgICBy
ZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMofnRoaXMubG93XywgfnRoaXMuaGlnaF8pOwot
ICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUgYml0d2lzZS1BTkQgb2YgdGhpcyBMb25nIGFu
ZCB0aGUgZ2l2ZW4gb25lLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBUaGUg
TG9uZyB3aXRoIHdoaWNoIHRvIEFORC4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBU
aGUgYml0d2lzZS1BTkQgb2YgdGhpcyBhbmQgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRo
LkxvbmcucHJvdG90eXBlLmFuZCA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIGdvb2cu
bWF0aC5Mb25nLmZyb21CaXRzKHRoaXMubG93XyAmIG90aGVyLmxvd18sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlnaF8gJiBvdGhlci5oaWdoXyk7Ci0gIH07Ci0g
IC8qKgotICAgKiBSZXR1cm5zIHRoZSBiaXR3aXNlLU9SIG9mIHRoaXMgTG9uZyBhbmQgdGhlIGdp
dmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgVGhlIExvbmcgd2l0
aCB3aGljaCB0byBPUi4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgYml0d2lz
ZS1PUiBvZiB0aGlzIGFuZCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90
b3R5cGUub3IgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5m
cm9tQml0cyh0aGlzLmxvd18gfCBvdGhlci5sb3dfLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzLmhpZ2hfIHwgb3RoZXIuaGlnaF8pOwotICB9OwotICAvKioKLSAgICog
UmV0dXJucyB0aGUgYml0d2lzZS1YT1Igb2YgdGhpcyBMb25nIGFuZCB0aGUgZ2l2ZW4gb25lLgot
ICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBUaGUgTG9uZyB3aXRoIHdoaWNoIHRv
IFhPUi4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgYml0d2lzZS1YT1Igb2Yg
dGhpcyBhbmQgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnhv
ciA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRz
KHRoaXMubG93XyBeIG90aGVyLmxvd18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuaGlnaF8gXiBvdGhlci5oaWdoXyk7Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5z
IHRoaXMgTG9uZyB3aXRoIGJpdHMgc2hpZnRlZCB0byB0aGUgbGVmdCBieSB0aGUgZ2l2ZW4gYW1v
dW50LgotICAgKiBAcGFyYW0ge251bWJlcn0gbnVtQml0cyBUaGUgbnVtYmVyIG9mIGJpdHMgYnkg
d2hpY2ggdG8gc2hpZnQuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhpcyBzaGlm
dGVkIHRvIHRoZSBsZWZ0IGJ5IHRoZSBnaXZlbiBhbW91bnQuCi0gICAqLwotICBnb29nLm1hdGgu
TG9uZy5wcm90b3R5cGUuc2hpZnRMZWZ0ID0gZnVuY3Rpb24obnVtQml0cykgewotICAgIG51bUJp
dHMgJj0gNjM7Ci0gICAgaWYgKG51bUJpdHMgPT0gMCkgewotICAgICAgcmV0dXJuIHRoaXM7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIHZhciBsb3cgPSB0aGlzLmxvd187Ci0gICAgICBpZiAobnVtQml0
cyA8IDMyKSB7Ci0gICAgICAgIHZhciBoaWdoID0gdGhpcy5oaWdoXzsKLSAgICAgICAgcmV0dXJu
IGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKAotICAgICAgICAgICAgbG93IDw8IG51bUJpdHMsCi0g
ICAgICAgICAgICAoaGlnaCA8PCBudW1CaXRzKSB8IChsb3cgPj4+ICgzMiAtIG51bUJpdHMpKSk7
Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMo
MCwgbG93IDw8IChudW1CaXRzIC0gMzIpKTsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci0gIC8qKgot
ICAgKiBSZXR1cm5zIHRoaXMgTG9uZyB3aXRoIGJpdHMgc2hpZnRlZCB0byB0aGUgcmlnaHQgYnkg
dGhlIGdpdmVuIGFtb3VudC4KLSAgICogQHBhcmFtIHtudW1iZXJ9IG51bUJpdHMgVGhlIG51bWJl
ciBvZiBiaXRzIGJ5IHdoaWNoIHRvIHNoaWZ0LgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxv
bmd9IFRoaXMgc2hpZnRlZCB0byB0aGUgcmlnaHQgYnkgdGhlIGdpdmVuIGFtb3VudC4KLSAgICov
Ci0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5zaGlmdFJpZ2h0ID0gZnVuY3Rpb24obnVtQml0
cykgewotICAgIG51bUJpdHMgJj0gNjM7Ci0gICAgaWYgKG51bUJpdHMgPT0gMCkgewotICAgICAg
cmV0dXJuIHRoaXM7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHZhciBoaWdoID0gdGhpcy5oaWdoXzsK
LSAgICAgIGlmIChudW1CaXRzIDwgMzIpIHsKLSAgICAgICAgdmFyIGxvdyA9IHRoaXMubG93XzsK
LSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKAotICAgICAgICAgICAgKGxv
dyA+Pj4gbnVtQml0cykgfCAoaGlnaCA8PCAoMzIgLSBudW1CaXRzKSksCi0gICAgICAgICAgICBo
aWdoID4+IG51bUJpdHMpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0
aC5Mb25nLmZyb21CaXRzKAotICAgICAgICAgICAgaGlnaCA+PiAobnVtQml0cyAtIDMyKSwKLSAg
ICAgICAgICAgIGhpZ2ggPj0gMCA/IDAgOiAtMSk7Ci0gICAgICB9Ci0gICAgfQotICB9OwotICAv
KioKLSAgICogUmV0dXJucyB0aGlzIExvbmcgd2l0aCBiaXRzIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0
IGJ5IHRoZSBnaXZlbiBhbW91bnQsIHdpdGgKLSAgICogdGhlIG5ldyB0b3AgYml0cyBtYXRjaGlu
ZyB0aGUgY3VycmVudCBzaWduIGJpdC4KLSAgICogQHBhcmFtIHtudW1iZXJ9IG51bUJpdHMgVGhl
IG51bWJlciBvZiBiaXRzIGJ5IHdoaWNoIHRvIHNoaWZ0LgotICAgKiBAcmV0dXJuIHshZ29vZy5t
YXRoLkxvbmd9IFRoaXMgc2hpZnRlZCB0byB0aGUgcmlnaHQgYnkgdGhlIGdpdmVuIGFtb3VudCwg
d2l0aAotICAgKiAgICAgemVyb3MgcGxhY2VkIGludG8gdGhlIG5ldyBsZWFkaW5nIGJpdHMuCi0g
ICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc2hpZnRSaWdodFVuc2lnbmVkID0gZnVu
Y3Rpb24obnVtQml0cykgewotICAgIG51bUJpdHMgJj0gNjM7Ci0gICAgaWYgKG51bUJpdHMgPT0g
MCkgewotICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHZhciBoaWdoID0g
dGhpcy5oaWdoXzsKLSAgICAgIGlmIChudW1CaXRzIDwgMzIpIHsKLSAgICAgICAgdmFyIGxvdyA9
IHRoaXMubG93XzsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKAotICAg
ICAgICAgICAgKGxvdyA+Pj4gbnVtQml0cykgfCAoaGlnaCA8PCAoMzIgLSBudW1CaXRzKSksCi0g
ICAgICAgICAgICBoaWdoID4+PiBudW1CaXRzKTsKLSAgICAgIH0gZWxzZSBpZiAobnVtQml0cyA9
PSAzMikgewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoaGlnaCwgMCk7
Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMo
aGlnaCA+Pj4gKG51bUJpdHMgLSAzMiksIDApOwotICAgICAgfQotICAgIH0KLSAgfTsKLSAgLy89
PT09PT09IGJlZ2luIGpzYm4gPT09PT09PQotICB2YXIgbmF2aWdhdG9yID0geyBhcHBOYW1lOiAn
TW9kZXJuIEJyb3dzZXInIH07IC8vIHBvbHlmaWxsIGEgbGl0dGxlCi0gIC8vIENvcHlyaWdodCAo
YykgMjAwNSAgVG9tIFd1Ci0gIC8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gIC8vIGh0dHA6Ly93
d3ctY3Mtc3R1ZGVudHMuc3RhbmZvcmQuZWR1L350ancvanNibi8KLSAgLyoKLSAgICogQ29weXJp
Z2h0IChjKSAyMDAzLTIwMDUgIFRvbSBXdQotICAgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICAg
KgotICAgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g
YW55IHBlcnNvbiBvYnRhaW5pbmcKLSAgICogYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0gICAqICJTb2Z0d2FyZSIpLCB0byBk
ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSAgICog
d2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLAotICAgKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KLSAgICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0
aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0gICAqIHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9uczoKLSAgICoKLSAgICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLSAgICogaW5jbHVkZWQgaW4g
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0gICAq
Ci0gICAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMtSVMiIEFORCBXSVRIT1VUIFdBUlJB
TlRZIE9GIEFOWSBLSU5ELCAKLSAgICogRVhQUkVTUywgSU1QTElFRCBPUiBPVEhFUldJU0UsIElO
Q0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSAKLSAgICogV0FSUkFOVFkgT0YgTUVSQ0hB
TlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgCi0gICAqCi0g
ICAqIElOIE5PIEVWRU5UIFNIQUxMIFRPTSBXVSBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBJ
TkNJREVOVEFMLAotICAgKiBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT0YgQU5Z
IEtJTkQsIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIKLSAgICogUkVTVUxUSU5HIEZST00gTE9T
UyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBPUiBOT1QgQURWSVNFRCBPRgotICAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgREFNQUdFLCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIEFSSVNJTkcgT1VUCi0gICAqIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9S
IFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCi0gICAqCi0gICAqIEluIGFkZGl0aW9uLCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbiBhcHBsaWVzOgotICAgKgotICAgKiBBbGwgcmVkaXN0cmli
dXRpb25zIG11c3QgcmV0YWluIGFuIGludGFjdCBjb3B5IG9mIHRoaXMgY29weXJpZ2h0IG5vdGlj
ZQotICAgKiBhbmQgZGlzY2xhaW1lci4KLSAgICovCi0gIC8vIEJhc2ljIEphdmFTY3JpcHQgQk4g
bGlicmFyeSAtIHN1YnNldCB1c2VmdWwgZm9yIFJTQSBlbmNyeXB0aW9uLgotICAvLyBCaXRzIHBl
ciBkaWdpdAotICB2YXIgZGJpdHM7Ci0gIC8vIEphdmFTY3JpcHQgZW5naW5lIGFuYWx5c2lzCi0g
IHZhciBjYW5hcnkgPSAweGRlYWRiZWVmY2FmZTsKLSAgdmFyIGpfbG0gPSAoKGNhbmFyeSYweGZm
ZmZmZik9PTB4ZWZjYWZlKTsKLSAgLy8gKHB1YmxpYykgQ29uc3RydWN0b3IKLSAgZnVuY3Rpb24g
QmlnSW50ZWdlcihhLGIsYykgewotICAgIGlmKGEgIT0gbnVsbCkKLSAgICAgIGlmKCJudW1iZXIi
ID09IHR5cGVvZiBhKSB0aGlzLmZyb21OdW1iZXIoYSxiLGMpOwotICAgICAgZWxzZSBpZihiID09
IG51bGwgJiYgInN0cmluZyIgIT0gdHlwZW9mIGEpIHRoaXMuZnJvbVN0cmluZyhhLDI1Nik7Ci0g
ICAgICBlbHNlIHRoaXMuZnJvbVN0cmluZyhhLGIpOwotICB9Ci0gIC8vIHJldHVybiBuZXcsIHVu
c2V0IEJpZ0ludGVnZXIKLSAgZnVuY3Rpb24gbmJpKCkgeyByZXR1cm4gbmV3IEJpZ0ludGVnZXIo
bnVsbCk7IH0KLSAgLy8gYW06IENvbXB1dGUgd19qICs9ICh4KnRoaXNfaSksIHByb3BhZ2F0ZSBj
YXJyaWVzLAotICAvLyBjIGlzIGluaXRpYWwgY2FycnksIHJldHVybnMgZmluYWwgY2FycnkuCi0g
IC8vIGMgPCAzKmR2YWx1ZSwgeCA8IDIqZHZhbHVlLCB0aGlzX2kgPCBkdmFsdWUKLSAgLy8gV2Ug
bmVlZCB0byBzZWxlY3QgdGhlIGZhc3Rlc3Qgb25lIHRoYXQgd29ya3MgaW4gdGhpcyBlbnZpcm9u
bWVudC4KLSAgLy8gYW0xOiB1c2UgYSBzaW5nbGUgbXVsdCBhbmQgZGl2aWRlIHRvIGdldCB0aGUg
aGlnaCBiaXRzLAotICAvLyBtYXggZGlnaXQgYml0cyBzaG91bGQgYmUgMjYgYmVjYXVzZQotICAv
LyBtYXggaW50ZXJuYWwgdmFsdWUgPSAyKmR2YWx1ZV4yLTIqZHZhbHVlICg8IDJeNTMpCi0gIGZ1
bmN0aW9uIGFtMShpLHgsdyxqLGMsbikgewotICAgIHdoaWxlKC0tbiA+PSAwKSB7Ci0gICAgICB2
YXIgdiA9IHgqdGhpc1tpKytdK3dbal0rYzsKLSAgICAgIGMgPSBNYXRoLmZsb29yKHYvMHg0MDAw
MDAwKTsKLSAgICAgIHdbaisrXSA9IHYmMHgzZmZmZmZmOwotICAgIH0KLSAgICByZXR1cm4gYzsK
LSAgfQotICAvLyBhbTIgYXZvaWRzIGEgYmlnIG11bHQtYW5kLWV4dHJhY3QgY29tcGxldGVseS4K
LSAgLy8gTWF4IGRpZ2l0IGJpdHMgc2hvdWxkIGJlIDw9IDMwIGJlY2F1c2Ugd2UgZG8gYml0d2lz
ZSBvcHMKLSAgLy8gb24gdmFsdWVzIHVwIHRvIDIqaGR2YWx1ZV4yLWhkdmFsdWUtMSAoPCAyXjMx
KQotICBmdW5jdGlvbiBhbTIoaSx4LHcsaixjLG4pIHsKLSAgICB2YXIgeGwgPSB4JjB4N2ZmZiwg
eGggPSB4Pj4xNTsKLSAgICB3aGlsZSgtLW4gPj0gMCkgewotICAgICAgdmFyIGwgPSB0aGlzW2ld
JjB4N2ZmZjsKLSAgICAgIHZhciBoID0gdGhpc1tpKytdPj4xNTsKLSAgICAgIHZhciBtID0geGgq
bCtoKnhsOwotICAgICAgbCA9IHhsKmwrKChtJjB4N2ZmZik8PDE1KSt3W2pdKyhjJjB4M2ZmZmZm
ZmYpOwotICAgICAgYyA9IChsPj4+MzApKyhtPj4+MTUpK3hoKmgrKGM+Pj4zMCk7Ci0gICAgICB3
W2orK10gPSBsJjB4M2ZmZmZmZmY7Ci0gICAgfQotICAgIHJldHVybiBjOwotICB9Ci0gIC8vIEFs
dGVybmF0ZWx5LCBzZXQgbWF4IGRpZ2l0IGJpdHMgdG8gMjggc2luY2Ugc29tZQotICAvLyBicm93
c2VycyBzbG93IGRvd24gd2hlbiBkZWFsaW5nIHdpdGggMzItYml0IG51bWJlcnMuCi0gIGZ1bmN0
aW9uIGFtMyhpLHgsdyxqLGMsbikgewotICAgIHZhciB4bCA9IHgmMHgzZmZmLCB4aCA9IHg+PjE0
OwotICAgIHdoaWxlKC0tbiA+PSAwKSB7Ci0gICAgICB2YXIgbCA9IHRoaXNbaV0mMHgzZmZmOwot
ICAgICAgdmFyIGggPSB0aGlzW2krK10+PjE0OwotICAgICAgdmFyIG0gPSB4aCpsK2gqeGw7Ci0g
ICAgICBsID0geGwqbCsoKG0mMHgzZmZmKTw8MTQpK3dbal0rYzsKLSAgICAgIGMgPSAobD4+Mjgp
KyhtPj4xNCkreGgqaDsKLSAgICAgIHdbaisrXSA9IGwmMHhmZmZmZmZmOwotICAgIH0KLSAgICBy
ZXR1cm4gYzsKLSAgfQotICBpZihqX2xtICYmIChuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTWljcm9z
b2Z0IEludGVybmV0IEV4cGxvcmVyIikpIHsKLSAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hbSA9
IGFtMjsKLSAgICBkYml0cyA9IDMwOwotICB9Ci0gIGVsc2UgaWYoal9sbSAmJiAobmF2aWdhdG9y
LmFwcE5hbWUgIT0gIk5ldHNjYXBlIikpIHsKLSAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hbSA9
IGFtMTsKLSAgICBkYml0cyA9IDI2OwotICB9Ci0gIGVsc2UgeyAvLyBNb3ppbGxhL05ldHNjYXBl
IHNlZW1zIHRvIHByZWZlciBhbTMKLSAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hbSA9IGFtMzsK
LSAgICBkYml0cyA9IDI4OwotICB9Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLkRCID0gZGJpdHM7
Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLkRNID0gKCgxPDxkYml0cyktMSk7Ci0gIEJpZ0ludGVn
ZXIucHJvdG90eXBlLkRWID0gKDE8PGRiaXRzKTsKLSAgdmFyIEJJX0ZQID0gNTI7Ci0gIEJpZ0lu
dGVnZXIucHJvdG90eXBlLkZWID0gTWF0aC5wb3coMixCSV9GUCk7Ci0gIEJpZ0ludGVnZXIucHJv
dG90eXBlLkYxID0gQklfRlAtZGJpdHM7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLkYyID0gMipk
Yml0cy1CSV9GUDsKLSAgLy8gRGlnaXQgY29udmVyc2lvbnMKLSAgdmFyIEJJX1JNID0gIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7Ci0gIHZhciBCSV9SQyA9IG5ldyBBcnJh
eSgpOwotICB2YXIgcnIsdnY7Ci0gIHJyID0gIjAiLmNoYXJDb2RlQXQoMCk7Ci0gIGZvcih2diA9
IDA7IHZ2IDw9IDk7ICsrdnYpIEJJX1JDW3JyKytdID0gdnY7Ci0gIHJyID0gImEiLmNoYXJDb2Rl
QXQoMCk7Ci0gIGZvcih2diA9IDEwOyB2diA8IDM2OyArK3Z2KSBCSV9SQ1tycisrXSA9IHZ2Owot
ICByciA9ICJBIi5jaGFyQ29kZUF0KDApOwotICBmb3IodnYgPSAxMDsgdnYgPCAzNjsgKyt2dikg
QklfUkNbcnIrK10gPSB2djsKLSAgZnVuY3Rpb24gaW50MmNoYXIobikgeyByZXR1cm4gQklfUk0u
Y2hhckF0KG4pOyB9Ci0gIGZ1bmN0aW9uIGludEF0KHMsaSkgewotICAgIHZhciBjID0gQklfUkNb
cy5jaGFyQ29kZUF0KGkpXTsKLSAgICByZXR1cm4gKGM9PW51bGwpPy0xOmM7Ci0gIH0KLSAgLy8g
KHByb3RlY3RlZCkgY29weSB0aGlzIHRvIHIKLSAgZnVuY3Rpb24gYm5wQ29weVRvKHIpIHsKLSAg
ICBmb3IodmFyIGkgPSB0aGlzLnQtMTsgaSA+PSAwOyAtLWkpIHJbaV0gPSB0aGlzW2ldOwotICAg
IHIudCA9IHRoaXMudDsKLSAgICByLnMgPSB0aGlzLnM7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkg
c2V0IGZyb20gaW50ZWdlciB2YWx1ZSB4LCAtRFYgPD0geCA8IERWCi0gIGZ1bmN0aW9uIGJucEZy
b21JbnQoeCkgewotICAgIHRoaXMudCA9IDE7Ci0gICAgdGhpcy5zID0gKHg8MCk/LTE6MDsKLSAg
ICBpZih4ID4gMCkgdGhpc1swXSA9IHg7Ci0gICAgZWxzZSBpZih4IDwgLTEpIHRoaXNbMF0gPSB4
K0RWOwotICAgIGVsc2UgdGhpcy50ID0gMDsKLSAgfQotICAvLyByZXR1cm4gYmlnaW50IGluaXRp
YWxpemVkIHRvIHZhbHVlCi0gIGZ1bmN0aW9uIG5idihpKSB7IHZhciByID0gbmJpKCk7IHIuZnJv
bUludChpKTsgcmV0dXJuIHI7IH0KLSAgLy8gKHByb3RlY3RlZCkgc2V0IGZyb20gc3RyaW5nIGFu
ZCByYWRpeAotICBmdW5jdGlvbiBibnBGcm9tU3RyaW5nKHMsYikgewotICAgIHZhciBrOwotICAg
IGlmKGIgPT0gMTYpIGsgPSA0OwotICAgIGVsc2UgaWYoYiA9PSA4KSBrID0gMzsKLSAgICBlbHNl
IGlmKGIgPT0gMjU2KSBrID0gODsgLy8gYnl0ZSBhcnJheQotICAgIGVsc2UgaWYoYiA9PSAyKSBr
ID0gMTsKLSAgICBlbHNlIGlmKGIgPT0gMzIpIGsgPSA1OwotICAgIGVsc2UgaWYoYiA9PSA0KSBr
ID0gMjsKLSAgICBlbHNlIHsgdGhpcy5mcm9tUmFkaXgocyxiKTsgcmV0dXJuOyB9Ci0gICAgdGhp
cy50ID0gMDsKLSAgICB0aGlzLnMgPSAwOwotICAgIHZhciBpID0gcy5sZW5ndGgsIG1pID0gZmFs
c2UsIHNoID0gMDsKLSAgICB3aGlsZSgtLWkgPj0gMCkgewotICAgICAgdmFyIHggPSAoaz09OCk/
c1tpXSYweGZmOmludEF0KHMsaSk7Ci0gICAgICBpZih4IDwgMCkgewotICAgICAgICBpZihzLmNo
YXJBdChpKSA9PSAiLSIpIG1pID0gdHJ1ZTsKLSAgICAgICAgY29udGludWU7Ci0gICAgICB9Ci0g
ICAgICBtaSA9IGZhbHNlOwotICAgICAgaWYoc2ggPT0gMCkKLSAgICAgICAgdGhpc1t0aGlzLnQr
K10gPSB4OwotICAgICAgZWxzZSBpZihzaCtrID4gdGhpcy5EQikgewotICAgICAgICB0aGlzW3Ro
aXMudC0xXSB8PSAoeCYoKDE8PCh0aGlzLkRCLXNoKSktMSkpPDxzaDsKLSAgICAgICAgdGhpc1t0
aGlzLnQrK10gPSAoeD4+KHRoaXMuREItc2gpKTsKLSAgICAgIH0KLSAgICAgIGVsc2UKLSAgICAg
ICAgdGhpc1t0aGlzLnQtMV0gfD0geDw8c2g7Ci0gICAgICBzaCArPSBrOwotICAgICAgaWYoc2gg
Pj0gdGhpcy5EQikgc2ggLT0gdGhpcy5EQjsKLSAgICB9Ci0gICAgaWYoayA9PSA4ICYmIChzWzBd
JjB4ODApICE9IDApIHsKLSAgICAgIHRoaXMucyA9IC0xOwotICAgICAgaWYoc2ggPiAwKSB0aGlz
W3RoaXMudC0xXSB8PSAoKDE8PCh0aGlzLkRCLXNoKSktMSk8PHNoOwotICAgIH0KLSAgICB0aGlz
LmNsYW1wKCk7Ci0gICAgaWYobWkpIEJpZ0ludGVnZXIuWkVSTy5zdWJUbyh0aGlzLHRoaXMpOwot
ICB9Ci0gIC8vIChwcm90ZWN0ZWQpIGNsYW1wIG9mZiBleGNlc3MgaGlnaCB3b3JkcwotICBmdW5j
dGlvbiBibnBDbGFtcCgpIHsKLSAgICB2YXIgYyA9IHRoaXMucyZ0aGlzLkRNOwotICAgIHdoaWxl
KHRoaXMudCA+IDAgJiYgdGhpc1t0aGlzLnQtMV0gPT0gYykgLS10aGlzLnQ7Ci0gIH0KLSAgLy8g
KHB1YmxpYykgcmV0dXJuIHN0cmluZyByZXByZXNlbnRhdGlvbiBpbiBnaXZlbiByYWRpeAotICBm
dW5jdGlvbiBiblRvU3RyaW5nKGIpIHsKLSAgICBpZih0aGlzLnMgPCAwKSByZXR1cm4gIi0iK3Ro
aXMubmVnYXRlKCkudG9TdHJpbmcoYik7Ci0gICAgdmFyIGs7Ci0gICAgaWYoYiA9PSAxNikgayA9
IDQ7Ci0gICAgZWxzZSBpZihiID09IDgpIGsgPSAzOwotICAgIGVsc2UgaWYoYiA9PSAyKSBrID0g
MTsKLSAgICBlbHNlIGlmKGIgPT0gMzIpIGsgPSA1OwotICAgIGVsc2UgaWYoYiA9PSA0KSBrID0g
MjsKLSAgICBlbHNlIHJldHVybiB0aGlzLnRvUmFkaXgoYik7Ci0gICAgdmFyIGttID0gKDE8PGsp
LTEsIGQsIG0gPSBmYWxzZSwgciA9ICIiLCBpID0gdGhpcy50OwotICAgIHZhciBwID0gdGhpcy5E
Qi0oaSp0aGlzLkRCKSVrOwotICAgIGlmKGktLSA+IDApIHsKLSAgICAgIGlmKHAgPCB0aGlzLkRC
ICYmIChkID0gdGhpc1tpXT4+cCkgPiAwKSB7IG0gPSB0cnVlOyByID0gaW50MmNoYXIoZCk7IH0K
LSAgICAgIHdoaWxlKGkgPj0gMCkgewotICAgICAgICBpZihwIDwgaykgewotICAgICAgICAgIGQg
PSAodGhpc1tpXSYoKDE8PHApLTEpKTw8KGstcCk7Ci0gICAgICAgICAgZCB8PSB0aGlzWy0taV0+
PihwKz10aGlzLkRCLWspOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgIGQg
PSAodGhpc1tpXT4+KHAtPWspKSZrbTsKLSAgICAgICAgICBpZihwIDw9IDApIHsgcCArPSB0aGlz
LkRCOyAtLWk7IH0KLSAgICAgICAgfQotICAgICAgICBpZihkID4gMCkgbSA9IHRydWU7Ci0gICAg
ICAgIGlmKG0pIHIgKz0gaW50MmNoYXIoZCk7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiBt
P3I6IjAiOwotICB9Ci0gIC8vIChwdWJsaWMpIC10aGlzCi0gIGZ1bmN0aW9uIGJuTmVnYXRlKCkg
eyB2YXIgciA9IG5iaSgpOyBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8odGhpcyxyKTsgcmV0dXJuIHI7
IH0KLSAgLy8gKHB1YmxpYykgfHRoaXN8Ci0gIGZ1bmN0aW9uIGJuQWJzKCkgeyByZXR1cm4gKHRo
aXMuczwwKT90aGlzLm5lZ2F0ZSgpOnRoaXM7IH0KLSAgLy8gKHB1YmxpYykgcmV0dXJuICsgaWYg
dGhpcyA+IGEsIC0gaWYgdGhpcyA8IGEsIDAgaWYgZXF1YWwKLSAgZnVuY3Rpb24gYm5Db21wYXJl
VG8oYSkgewotICAgIHZhciByID0gdGhpcy5zLWEuczsKLSAgICBpZihyICE9IDApIHJldHVybiBy
OwotICAgIHZhciBpID0gdGhpcy50OwotICAgIHIgPSBpLWEudDsKLSAgICBpZihyICE9IDApIHJl
dHVybiAodGhpcy5zPDApPy1yOnI7Ci0gICAgd2hpbGUoLS1pID49IDApIGlmKChyPXRoaXNbaV0t
YVtpXSkgIT0gMCkgcmV0dXJuIHI7Ci0gICAgcmV0dXJuIDA7Ci0gIH0KLSAgLy8gcmV0dXJucyBi
aXQgbGVuZ3RoIG9mIHRoZSBpbnRlZ2VyIHgKLSAgZnVuY3Rpb24gbmJpdHMoeCkgewotICAgIHZh
ciByID0gMSwgdDsKLSAgICBpZigodD14Pj4+MTYpICE9IDApIHsgeCA9IHQ7IHIgKz0gMTY7IH0K
LSAgICBpZigodD14Pj44KSAhPSAwKSB7IHggPSB0OyByICs9IDg7IH0KLSAgICBpZigodD14Pj40
KSAhPSAwKSB7IHggPSB0OyByICs9IDQ7IH0KLSAgICBpZigodD14Pj4yKSAhPSAwKSB7IHggPSB0
OyByICs9IDI7IH0KLSAgICBpZigodD14Pj4xKSAhPSAwKSB7IHggPSB0OyByICs9IDE7IH0KLSAg
ICByZXR1cm4gcjsKLSAgfQotICAvLyAocHVibGljKSByZXR1cm4gdGhlIG51bWJlciBvZiBiaXRz
IGluICJ0aGlzIgotICBmdW5jdGlvbiBibkJpdExlbmd0aCgpIHsKLSAgICBpZih0aGlzLnQgPD0g
MCkgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHRoaXMuREIqKHRoaXMudC0xKStuYml0cyh0aGlzW3Ro
aXMudC0xXV4odGhpcy5zJnRoaXMuRE0pKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSByID0gdGhp
cyA8PCBuKkRCCi0gIGZ1bmN0aW9uIGJucERMU2hpZnRUbyhuLHIpIHsKLSAgICB2YXIgaTsKLSAg
ICBmb3IoaSA9IHRoaXMudC0xOyBpID49IDA7IC0taSkgcltpK25dID0gdGhpc1tpXTsKLSAgICBm
b3IoaSA9IG4tMTsgaSA+PSAwOyAtLWkpIHJbaV0gPSAwOwotICAgIHIudCA9IHRoaXMudCtuOwot
ICAgIHIucyA9IHRoaXMuczsKLSAgfQotICAvLyAocHJvdGVjdGVkKSByID0gdGhpcyA+PiBuKkRC
Ci0gIGZ1bmN0aW9uIGJucERSU2hpZnRUbyhuLHIpIHsKLSAgICBmb3IodmFyIGkgPSBuOyBpIDwg
dGhpcy50OyArK2kpIHJbaS1uXSA9IHRoaXNbaV07Ci0gICAgci50ID0gTWF0aC5tYXgodGhpcy50
LW4sMCk7Ci0gICAgci5zID0gdGhpcy5zOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlz
IDw8IG4KLSAgZnVuY3Rpb24gYm5wTFNoaWZ0VG8obixyKSB7Ci0gICAgdmFyIGJzID0gbiV0aGlz
LkRCOwotICAgIHZhciBjYnMgPSB0aGlzLkRCLWJzOwotICAgIHZhciBibSA9ICgxPDxjYnMpLTE7
Ci0gICAgdmFyIGRzID0gTWF0aC5mbG9vcihuL3RoaXMuREIpLCBjID0gKHRoaXMuczw8YnMpJnRo
aXMuRE0sIGk7Ci0gICAgZm9yKGkgPSB0aGlzLnQtMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgIHJb
aStkcysxXSA9ICh0aGlzW2ldPj5jYnMpfGM7Ci0gICAgICBjID0gKHRoaXNbaV0mYm0pPDxiczsK
LSAgICB9Ci0gICAgZm9yKGkgPSBkcy0xOyBpID49IDA7IC0taSkgcltpXSA9IDA7Ci0gICAgcltk
c10gPSBjOwotICAgIHIudCA9IHRoaXMudCtkcysxOwotICAgIHIucyA9IHRoaXMuczsKLSAgICBy
LmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMgPj4gbgotICBmdW5jdGlv
biBibnBSU2hpZnRUbyhuLHIpIHsKLSAgICByLnMgPSB0aGlzLnM7Ci0gICAgdmFyIGRzID0gTWF0
aC5mbG9vcihuL3RoaXMuREIpOwotICAgIGlmKGRzID49IHRoaXMudCkgeyByLnQgPSAwOyByZXR1
cm47IH0KLSAgICB2YXIgYnMgPSBuJXRoaXMuREI7Ci0gICAgdmFyIGNicyA9IHRoaXMuREItYnM7
Ci0gICAgdmFyIGJtID0gKDE8PGJzKS0xOwotICAgIHJbMF0gPSB0aGlzW2RzXT4+YnM7Ci0gICAg
Zm9yKHZhciBpID0gZHMrMTsgaSA8IHRoaXMudDsgKytpKSB7Ci0gICAgICByW2ktZHMtMV0gfD0g
KHRoaXNbaV0mYm0pPDxjYnM7Ci0gICAgICByW2ktZHNdID0gdGhpc1tpXT4+YnM7Ci0gICAgfQot
ICAgIGlmKGJzID4gMCkgclt0aGlzLnQtZHMtMV0gfD0gKHRoaXMucyZibSk8PGNiczsKLSAgICBy
LnQgPSB0aGlzLnQtZHM7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIg
PSB0aGlzIC0gYQotICBmdW5jdGlvbiBibnBTdWJUbyhhLHIpIHsKLSAgICB2YXIgaSA9IDAsIGMg
PSAwLCBtID0gTWF0aC5taW4oYS50LHRoaXMudCk7Ci0gICAgd2hpbGUoaSA8IG0pIHsKLSAgICAg
IGMgKz0gdGhpc1tpXS1hW2ldOwotICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgYyA+
Pj0gdGhpcy5EQjsKLSAgICB9Ci0gICAgaWYoYS50IDwgdGhpcy50KSB7Ci0gICAgICBjIC09IGEu
czsKLSAgICAgIHdoaWxlKGkgPCB0aGlzLnQpIHsKLSAgICAgICAgYyArPSB0aGlzW2ldOwotICAg
ICAgICByW2krK10gPSBjJnRoaXMuRE07Ci0gICAgICAgIGMgPj49IHRoaXMuREI7Ci0gICAgICB9
Ci0gICAgICBjICs9IHRoaXMuczsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICBjICs9IHRoaXMu
czsKLSAgICAgIHdoaWxlKGkgPCBhLnQpIHsKLSAgICAgICAgYyAtPSBhW2ldOwotICAgICAgICBy
W2krK10gPSBjJnRoaXMuRE07Ci0gICAgICAgIGMgPj49IHRoaXMuREI7Ci0gICAgICB9Ci0gICAg
ICBjIC09IGEuczsKLSAgICB9Ci0gICAgci5zID0gKGM8MCk/LTE6MDsKLSAgICBpZihjIDwgLTEp
IHJbaSsrXSA9IHRoaXMuRFYrYzsKLSAgICBlbHNlIGlmKGMgPiAwKSByW2krK10gPSBjOwotICAg
IHIudCA9IGk7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlz
ICogYSwgciAhPSB0aGlzLGEgKEhBQyAxNC4xMikKLSAgLy8gInRoaXMiIHNob3VsZCBiZSB0aGUg
bGFyZ2VyIG9uZSBpZiBhcHByb3ByaWF0ZS4KLSAgZnVuY3Rpb24gYm5wTXVsdGlwbHlUbyhhLHIp
IHsKLSAgICB2YXIgeCA9IHRoaXMuYWJzKCksIHkgPSBhLmFicygpOwotICAgIHZhciBpID0geC50
OwotICAgIHIudCA9IGkreS50OwotICAgIHdoaWxlKC0taSA+PSAwKSByW2ldID0gMDsKLSAgICBm
b3IoaSA9IDA7IGkgPCB5LnQ7ICsraSkgcltpK3gudF0gPSB4LmFtKDAseVtpXSxyLGksMCx4LnQp
OwotICAgIHIucyA9IDA7Ci0gICAgci5jbGFtcCgpOwotICAgIGlmKHRoaXMucyAhPSBhLnMpIEJp
Z0ludGVnZXIuWkVSTy5zdWJUbyhyLHIpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlz
XjIsIHIgIT0gdGhpcyAoSEFDIDE0LjE2KQotICBmdW5jdGlvbiBibnBTcXVhcmVUbyhyKSB7Ci0g
ICAgdmFyIHggPSB0aGlzLmFicygpOwotICAgIHZhciBpID0gci50ID0gMip4LnQ7Ci0gICAgd2hp
bGUoLS1pID49IDApIHJbaV0gPSAwOwotICAgIGZvcihpID0gMDsgaSA8IHgudC0xOyArK2kpIHsK
LSAgICAgIHZhciBjID0geC5hbShpLHhbaV0sciwyKmksMCwxKTsKLSAgICAgIGlmKChyW2kreC50
XSs9eC5hbShpKzEsMip4W2ldLHIsMippKzEsYyx4LnQtaS0xKSkgPj0geC5EVikgewotICAgICAg
ICByW2kreC50XSAtPSB4LkRWOwotICAgICAgICByW2kreC50KzFdID0gMTsKLSAgICAgIH0KLSAg
ICB9Ci0gICAgaWYoci50ID4gMCkgcltyLnQtMV0gKz0geC5hbShpLHhbaV0sciwyKmksMCwxKTsK
LSAgICByLnMgPSAwOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSBkaXZp
ZGUgdGhpcyBieSBtLCBxdW90aWVudCBhbmQgcmVtYWluZGVyIHRvIHEsIHIgKEhBQyAxNC4yMCkK
LSAgLy8gciAhPSBxLCB0aGlzICE9IG0uICBxIG9yIHIgbWF5IGJlIG51bGwuCi0gIGZ1bmN0aW9u
IGJucERpdlJlbVRvKG0scSxyKSB7Ci0gICAgdmFyIHBtID0gbS5hYnMoKTsKLSAgICBpZihwbS50
IDw9IDApIHJldHVybjsKLSAgICB2YXIgcHQgPSB0aGlzLmFicygpOwotICAgIGlmKHB0LnQgPCBw
bS50KSB7Ci0gICAgICBpZihxICE9IG51bGwpIHEuZnJvbUludCgwKTsKLSAgICAgIGlmKHIgIT0g
bnVsbCkgdGhpcy5jb3B5VG8ocik7Ci0gICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmKHIgPT0g
bnVsbCkgciA9IG5iaSgpOwotICAgIHZhciB5ID0gbmJpKCksIHRzID0gdGhpcy5zLCBtcyA9IG0u
czsKLSAgICB2YXIgbnNoID0gdGhpcy5EQi1uYml0cyhwbVtwbS50LTFdKTsJLy8gbm9ybWFsaXpl
IG1vZHVsdXMKLSAgICBpZihuc2ggPiAwKSB7IHBtLmxTaGlmdFRvKG5zaCx5KTsgcHQubFNoaWZ0
VG8obnNoLHIpOyB9Ci0gICAgZWxzZSB7IHBtLmNvcHlUbyh5KTsgcHQuY29weVRvKHIpOyB9Ci0g
ICAgdmFyIHlzID0geS50OwotICAgIHZhciB5MCA9IHlbeXMtMV07Ci0gICAgaWYoeTAgPT0gMCkg
cmV0dXJuOwotICAgIHZhciB5dCA9IHkwKigxPDx0aGlzLkYxKSsoKHlzPjEpP3lbeXMtMl0+PnRo
aXMuRjI6MCk7Ci0gICAgdmFyIGQxID0gdGhpcy5GVi95dCwgZDIgPSAoMTw8dGhpcy5GMSkveXQs
IGUgPSAxPDx0aGlzLkYyOwotICAgIHZhciBpID0gci50LCBqID0gaS15cywgdCA9IChxPT1udWxs
KT9uYmkoKTpxOwotICAgIHkuZGxTaGlmdFRvKGosdCk7Ci0gICAgaWYoci5jb21wYXJlVG8odCkg
Pj0gMCkgewotICAgICAgcltyLnQrK10gPSAxOwotICAgICAgci5zdWJUbyh0LHIpOwotICAgIH0K
LSAgICBCaWdJbnRlZ2VyLk9ORS5kbFNoaWZ0VG8oeXMsdCk7Ci0gICAgdC5zdWJUbyh5LHkpOwkv
LyAibmVnYXRpdmUiIHkgc28gd2UgY2FuIHJlcGxhY2Ugc3ViIHdpdGggYW0gbGF0ZXIKLSAgICB3
aGlsZSh5LnQgPCB5cykgeVt5LnQrK10gPSAwOwotICAgIHdoaWxlKC0taiA+PSAwKSB7Ci0gICAg
ICAvLyBFc3RpbWF0ZSBxdW90aWVudCBkaWdpdAotICAgICAgdmFyIHFkID0gKHJbLS1pXT09eTAp
P3RoaXMuRE06TWF0aC5mbG9vcihyW2ldKmQxKyhyW2ktMV0rZSkqZDIpOwotICAgICAgaWYoKHJb
aV0rPXkuYW0oMCxxZCxyLGosMCx5cykpIDwgcWQpIHsJLy8gVHJ5IGl0IG91dAotICAgICAgICB5
LmRsU2hpZnRUbyhqLHQpOwotICAgICAgICByLnN1YlRvKHQscik7Ci0gICAgICAgIHdoaWxlKHJb
aV0gPCAtLXFkKSByLnN1YlRvKHQscik7Ci0gICAgICB9Ci0gICAgfQotICAgIGlmKHEgIT0gbnVs
bCkgewotICAgICAgci5kclNoaWZ0VG8oeXMscSk7Ci0gICAgICBpZih0cyAhPSBtcykgQmlnSW50
ZWdlci5aRVJPLnN1YlRvKHEscSk7Ci0gICAgfQotICAgIHIudCA9IHlzOwotICAgIHIuY2xhbXAo
KTsKLSAgICBpZihuc2ggPiAwKSByLnJTaGlmdFRvKG5zaCxyKTsJLy8gRGVub3JtYWxpemUgcmVt
YWluZGVyCi0gICAgaWYodHMgPCAwKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8ocixyKTsKLSAgfQot
ICAvLyAocHVibGljKSB0aGlzIG1vZCBhCi0gIGZ1bmN0aW9uIGJuTW9kKGEpIHsKLSAgICB2YXIg
ciA9IG5iaSgpOwotICAgIHRoaXMuYWJzKCkuZGl2UmVtVG8oYSxudWxsLHIpOwotICAgIGlmKHRo
aXMucyA8IDAgJiYgci5jb21wYXJlVG8oQmlnSW50ZWdlci5aRVJPKSA+IDApIGEuc3ViVG8ocixy
KTsKLSAgICByZXR1cm4gcjsKLSAgfQotICAvLyBNb2R1bGFyIHJlZHVjdGlvbiB1c2luZyAiY2xh
c3NpYyIgYWxnb3JpdGhtCi0gIGZ1bmN0aW9uIENsYXNzaWMobSkgeyB0aGlzLm0gPSBtOyB9Ci0g
IGZ1bmN0aW9uIGNDb252ZXJ0KHgpIHsKLSAgICBpZih4LnMgPCAwIHx8IHguY29tcGFyZVRvKHRo
aXMubSkgPj0gMCkgcmV0dXJuIHgubW9kKHRoaXMubSk7Ci0gICAgZWxzZSByZXR1cm4geDsKLSAg
fQotICBmdW5jdGlvbiBjUmV2ZXJ0KHgpIHsgcmV0dXJuIHg7IH0KLSAgZnVuY3Rpb24gY1JlZHVj
ZSh4KSB7IHguZGl2UmVtVG8odGhpcy5tLG51bGwseCk7IH0KLSAgZnVuY3Rpb24gY011bFRvKHgs
eSxyKSB7IHgubXVsdGlwbHlUbyh5LHIpOyB0aGlzLnJlZHVjZShyKTsgfQotICBmdW5jdGlvbiBj
U3FyVG8oeCxyKSB7IHguc3F1YXJlVG8ocik7IHRoaXMucmVkdWNlKHIpOyB9Ci0gIENsYXNzaWMu
cHJvdG90eXBlLmNvbnZlcnQgPSBjQ29udmVydDsKLSAgQ2xhc3NpYy5wcm90b3R5cGUucmV2ZXJ0
ID0gY1JldmVydDsKLSAgQ2xhc3NpYy5wcm90b3R5cGUucmVkdWNlID0gY1JlZHVjZTsKLSAgQ2xh
c3NpYy5wcm90b3R5cGUubXVsVG8gPSBjTXVsVG87Ci0gIENsYXNzaWMucHJvdG90eXBlLnNxclRv
ID0gY1NxclRvOwotICAvLyAocHJvdGVjdGVkKSByZXR1cm4gIi0xL3RoaXMgJSAyXkRCIjsgdXNl
ZnVsIGZvciBNb250LiByZWR1Y3Rpb24KLSAgLy8ganVzdGlmaWNhdGlvbjoKLSAgLy8gICAgICAg
ICB4eSA9PSAxIChtb2QgbSkKLSAgLy8gICAgICAgICB4eSA9ICAxK2ttCi0gIC8vICAgeHkoMi14
eSkgPSAoMStrbSkoMS1rbSkKLSAgLy8geFt5KDIteHkpXSA9IDEta14ybV4yCi0gIC8vIHhbeSgy
LXh5KV0gPT0gMSAobW9kIG1eMikKLSAgLy8gaWYgeSBpcyAxL3ggbW9kIG0sIHRoZW4geSgyLXh5
KSBpcyAxL3ggbW9kIG1eMgotICAvLyBzaG91bGQgcmVkdWNlIHggYW5kIHkoMi14eSkgYnkgbV4y
IGF0IGVhY2ggc3RlcCB0byBrZWVwIHNpemUgYm91bmRlZC4KLSAgLy8gSlMgbXVsdGlwbHkgIm92
ZXJmbG93cyIgZGlmZmVyZW50bHkgZnJvbSBDL0MrKywgc28gY2FyZSBpcyBuZWVkZWQgaGVyZS4K
LSAgZnVuY3Rpb24gYm5wSW52RGlnaXQoKSB7Ci0gICAgaWYodGhpcy50IDwgMSkgcmV0dXJuIDA7
Ci0gICAgdmFyIHggPSB0aGlzWzBdOwotICAgIGlmKCh4JjEpID09IDApIHJldHVybiAwOwotICAg
IHZhciB5ID0geCYzOwkJLy8geSA9PSAxL3ggbW9kIDJeMgotICAgIHkgPSAoeSooMi0oeCYweGYp
KnkpKSYweGY7CS8vIHkgPT0gMS94IG1vZCAyXjQKLSAgICB5ID0gKHkqKDItKHgmMHhmZikqeSkp
JjB4ZmY7CS8vIHkgPT0gMS94IG1vZCAyXjgKLSAgICB5ID0gKHkqKDItKCgoeCYweGZmZmYpKnkp
JjB4ZmZmZikpKSYweGZmZmY7CS8vIHkgPT0gMS94IG1vZCAyXjE2Ci0gICAgLy8gbGFzdCBzdGVw
IC0gY2FsY3VsYXRlIGludmVyc2UgbW9kIERWIGRpcmVjdGx5OwotICAgIC8vIGFzc3VtZXMgMTYg
PCBEQiA8PSAzMiBhbmQgYXNzdW1lcyBhYmlsaXR5IHRvIGhhbmRsZSA0OC1iaXQgaW50cwotICAg
IHkgPSAoeSooMi14KnkldGhpcy5EVikpJXRoaXMuRFY7CQkvLyB5ID09IDEveCBtb2QgMl5kYml0
cwotICAgIC8vIHdlIHJlYWxseSB3YW50IHRoZSBuZWdhdGl2ZSBpbnZlcnNlLCBhbmQgLURWIDwg
eSA8IERWCi0gICAgcmV0dXJuICh5PjApP3RoaXMuRFYteToteTsKLSAgfQotICAvLyBNb250Z29t
ZXJ5IHJlZHVjdGlvbgotICBmdW5jdGlvbiBNb250Z29tZXJ5KG0pIHsKLSAgICB0aGlzLm0gPSBt
OwotICAgIHRoaXMubXAgPSBtLmludkRpZ2l0KCk7Ci0gICAgdGhpcy5tcGwgPSB0aGlzLm1wJjB4
N2ZmZjsKLSAgICB0aGlzLm1waCA9IHRoaXMubXA+PjE1OwotICAgIHRoaXMudW0gPSAoMTw8KG0u
REItMTUpKS0xOwotICAgIHRoaXMubXQyID0gMiptLnQ7Ci0gIH0KLSAgLy8geFIgbW9kIG0KLSAg
ZnVuY3Rpb24gbW9udENvbnZlcnQoeCkgewotICAgIHZhciByID0gbmJpKCk7Ci0gICAgeC5hYnMo
KS5kbFNoaWZ0VG8odGhpcy5tLnQscik7Ci0gICAgci5kaXZSZW1Ubyh0aGlzLm0sbnVsbCxyKTsK
LSAgICBpZih4LnMgPCAwICYmIHIuY29tcGFyZVRvKEJpZ0ludGVnZXIuWkVSTykgPiAwKSB0aGlz
Lm0uc3ViVG8ocixyKTsKLSAgICByZXR1cm4gcjsKLSAgfQotICAvLyB4L1IgbW9kIG0KLSAgZnVu
Y3Rpb24gbW9udFJldmVydCh4KSB7Ci0gICAgdmFyIHIgPSBuYmkoKTsKLSAgICB4LmNvcHlUbyhy
KTsKLSAgICB0aGlzLnJlZHVjZShyKTsKLSAgICByZXR1cm4gcjsKLSAgfQotICAvLyB4ID0geC9S
IG1vZCBtIChIQUMgMTQuMzIpCi0gIGZ1bmN0aW9uIG1vbnRSZWR1Y2UoeCkgewotICAgIHdoaWxl
KHgudCA8PSB0aGlzLm10MikJLy8gcGFkIHggc28gYW0gaGFzIGVub3VnaCByb29tIGxhdGVyCi0g
ICAgICB4W3gudCsrXSA9IDA7Ci0gICAgZm9yKHZhciBpID0gMDsgaSA8IHRoaXMubS50OyArK2kp
IHsKLSAgICAgIC8vIGZhc3RlciB3YXkgb2YgY2FsY3VsYXRpbmcgdTAgPSB4W2ldKm1wIG1vZCBE
VgotICAgICAgdmFyIGogPSB4W2ldJjB4N2ZmZjsKLSAgICAgIHZhciB1MCA9IChqKnRoaXMubXBs
KygoKGoqdGhpcy5tcGgrKHhbaV0+PjE1KSp0aGlzLm1wbCkmdGhpcy51bSk8PDE1KSkmeC5ETTsK
LSAgICAgIC8vIHVzZSBhbSB0byBjb21iaW5lIHRoZSBtdWx0aXBseS1zaGlmdC1hZGQgaW50byBv
bmUgY2FsbAotICAgICAgaiA9IGkrdGhpcy5tLnQ7Ci0gICAgICB4W2pdICs9IHRoaXMubS5hbSgw
LHUwLHgsaSwwLHRoaXMubS50KTsKLSAgICAgIC8vIHByb3BhZ2F0ZSBjYXJyeQotICAgICAgd2hp
bGUoeFtqXSA+PSB4LkRWKSB7IHhbal0gLT0geC5EVjsgeFsrK2pdKys7IH0KLSAgICB9Ci0gICAg
eC5jbGFtcCgpOwotICAgIHguZHJTaGlmdFRvKHRoaXMubS50LHgpOwotICAgIGlmKHguY29tcGFy
ZVRvKHRoaXMubSkgPj0gMCkgeC5zdWJUbyh0aGlzLm0seCk7Ci0gIH0KLSAgLy8gciA9ICJ4XjIv
UiBtb2QgbSI7IHggIT0gcgotICBmdW5jdGlvbiBtb250U3FyVG8oeCxyKSB7IHguc3F1YXJlVG8o
cik7IHRoaXMucmVkdWNlKHIpOyB9Ci0gIC8vIHIgPSAieHkvUiBtb2QgbSI7IHgseSAhPSByCi0g
IGZ1bmN0aW9uIG1vbnRNdWxUbyh4LHkscikgeyB4Lm11bHRpcGx5VG8oeSxyKTsgdGhpcy5yZWR1
Y2Uocik7IH0KLSAgTW9udGdvbWVyeS5wcm90b3R5cGUuY29udmVydCA9IG1vbnRDb252ZXJ0Owot
ICBNb250Z29tZXJ5LnByb3RvdHlwZS5yZXZlcnQgPSBtb250UmV2ZXJ0OwotICBNb250Z29tZXJ5
LnByb3RvdHlwZS5yZWR1Y2UgPSBtb250UmVkdWNlOwotICBNb250Z29tZXJ5LnByb3RvdHlwZS5t
dWxUbyA9IG1vbnRNdWxUbzsKLSAgTW9udGdvbWVyeS5wcm90b3R5cGUuc3FyVG8gPSBtb250U3Fy
VG87Ci0gIC8vIChwcm90ZWN0ZWQpIHRydWUgaWZmIHRoaXMgaXMgZXZlbgotICBmdW5jdGlvbiBi
bnBJc0V2ZW4oKSB7IHJldHVybiAoKHRoaXMudD4wKT8odGhpc1swXSYxKTp0aGlzLnMpID09IDA7
IH0KLSAgLy8gKHByb3RlY3RlZCkgdGhpc15lLCBlIDwgMl4zMiwgZG9pbmcgc3FyIGFuZCBtdWwg
d2l0aCAiciIgKEhBQyAxNC43OSkKLSAgZnVuY3Rpb24gYm5wRXhwKGUseikgewotICAgIGlmKGUg
PiAweGZmZmZmZmZmIHx8IGUgPCAxKSByZXR1cm4gQmlnSW50ZWdlci5PTkU7Ci0gICAgdmFyIHIg
PSBuYmkoKSwgcjIgPSBuYmkoKSwgZyA9IHouY29udmVydCh0aGlzKSwgaSA9IG5iaXRzKGUpLTE7
Ci0gICAgZy5jb3B5VG8ocik7Ci0gICAgd2hpbGUoLS1pID49IDApIHsKLSAgICAgIHouc3FyVG8o
cixyMik7Ci0gICAgICBpZigoZSYoMTw8aSkpID4gMCkgei5tdWxUbyhyMixnLHIpOwotICAgICAg
ZWxzZSB7IHZhciB0ID0gcjsgciA9IHIyOyByMiA9IHQ7IH0KLSAgICB9Ci0gICAgcmV0dXJuIHou
cmV2ZXJ0KHIpOwotICB9Ci0gIC8vIChwdWJsaWMpIHRoaXNeZSAlIG0sIDAgPD0gZSA8IDJeMzIK
LSAgZnVuY3Rpb24gYm5Nb2RQb3dJbnQoZSxtKSB7Ci0gICAgdmFyIHo7Ci0gICAgaWYoZSA8IDI1
NiB8fCBtLmlzRXZlbigpKSB6ID0gbmV3IENsYXNzaWMobSk7IGVsc2UgeiA9IG5ldyBNb250Z29t
ZXJ5KG0pOwotICAgIHJldHVybiB0aGlzLmV4cChlLHopOwotICB9Ci0gIC8vIHByb3RlY3RlZAot
ICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5jb3B5VG8gPSBibnBDb3B5VG87Ci0gIEJpZ0ludGVnZXIu
cHJvdG90eXBlLmZyb21JbnQgPSBibnBGcm9tSW50OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5m
cm9tU3RyaW5nID0gYm5wRnJvbVN0cmluZzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuY2xhbXAg
PSBibnBDbGFtcDsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZGxTaGlmdFRvID0gYm5wRExTaGlm
dFRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kclNoaWZ0VG8gPSBibnBEUlNoaWZ0VG87Ci0g
IEJpZ0ludGVnZXIucHJvdG90eXBlLmxTaGlmdFRvID0gYm5wTFNoaWZ0VG87Ci0gIEJpZ0ludGVn
ZXIucHJvdG90eXBlLnJTaGlmdFRvID0gYm5wUlNoaWZ0VG87Ci0gIEJpZ0ludGVnZXIucHJvdG90
eXBlLnN1YlRvID0gYm5wU3ViVG87Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLm11bHRpcGx5VG8g
PSBibnBNdWx0aXBseVRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5zcXVhcmVUbyA9IGJucFNx
dWFyZVRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kaXZSZW1UbyA9IGJucERpdlJlbVRvOwot
ICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pbnZEaWdpdCA9IGJucEludkRpZ2l0OwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5pc0V2ZW4gPSBibnBJc0V2ZW47Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBl
LmV4cCA9IGJucEV4cDsKLSAgLy8gcHVibGljCi0gIEJpZ0ludGVnZXIucHJvdG90eXBlLnRvU3Ry
aW5nID0gYm5Ub1N0cmluZzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUubmVnYXRlID0gYm5OZWdh
dGU7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmFicyA9IGJuQWJzOwotICBCaWdJbnRlZ2VyLnBy
b3RvdHlwZS5jb21wYXJlVG8gPSBibkNvbXBhcmVUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUu
Yml0TGVuZ3RoID0gYm5CaXRMZW5ndGg7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLm1vZCA9IGJu
TW9kOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tb2RQb3dJbnQgPSBibk1vZFBvd0ludDsKLSAg
Ly8gImNvbnN0YW50cyIKLSAgQmlnSW50ZWdlci5aRVJPID0gbmJ2KDApOwotICBCaWdJbnRlZ2Vy
Lk9ORSA9IG5idigxKTsKLSAgLy8ganNibjIgc3R1ZmYKLSAgLy8gKHByb3RlY3RlZCkgY29udmVy
dCBmcm9tIHJhZGl4IHN0cmluZwotICBmdW5jdGlvbiBibnBGcm9tUmFkaXgocyxiKSB7Ci0gICAg
dGhpcy5mcm9tSW50KDApOwotICAgIGlmKGIgPT0gbnVsbCkgYiA9IDEwOwotICAgIHZhciBjcyA9
IHRoaXMuY2h1bmtTaXplKGIpOwotICAgIHZhciBkID0gTWF0aC5wb3coYixjcyksIG1pID0gZmFs
c2UsIGogPSAwLCB3ID0gMDsKLSAgICBmb3IodmFyIGkgPSAwOyBpIDwgcy5sZW5ndGg7ICsraSkg
ewotICAgICAgdmFyIHggPSBpbnRBdChzLGkpOwotICAgICAgaWYoeCA8IDApIHsKLSAgICAgICAg
aWYocy5jaGFyQXQoaSkgPT0gIi0iICYmIHRoaXMuc2lnbnVtKCkgPT0gMCkgbWkgPSB0cnVlOwot
ICAgICAgICBjb250aW51ZTsKLSAgICAgIH0KLSAgICAgIHcgPSBiKncreDsKLSAgICAgIGlmKCsr
aiA+PSBjcykgewotICAgICAgICB0aGlzLmRNdWx0aXBseShkKTsKLSAgICAgICAgdGhpcy5kQWRk
T2Zmc2V0KHcsMCk7Ci0gICAgICAgIGogPSAwOwotICAgICAgICB3ID0gMDsKLSAgICAgIH0KLSAg
ICB9Ci0gICAgaWYoaiA+IDApIHsKLSAgICAgIHRoaXMuZE11bHRpcGx5KE1hdGgucG93KGIsaikp
OwotICAgICAgdGhpcy5kQWRkT2Zmc2V0KHcsMCk7Ci0gICAgfQotICAgIGlmKG1pKSBCaWdJbnRl
Z2VyLlpFUk8uc3ViVG8odGhpcyx0aGlzKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSByZXR1cm4g
eCBzLnQuIHJeeCA8IERWCi0gIGZ1bmN0aW9uIGJucENodW5rU2l6ZShyKSB7IHJldHVybiBNYXRo
LmZsb29yKE1hdGguTE4yKnRoaXMuREIvTWF0aC5sb2cocikpOyB9Ci0gIC8vIChwdWJsaWMpIDAg
aWYgdGhpcyA9PSAwLCAxIGlmIHRoaXMgPiAwCi0gIGZ1bmN0aW9uIGJuU2lnTnVtKCkgewotICAg
IGlmKHRoaXMucyA8IDApIHJldHVybiAtMTsKLSAgICBlbHNlIGlmKHRoaXMudCA8PSAwIHx8ICh0
aGlzLnQgPT0gMSAmJiB0aGlzWzBdIDw9IDApKSByZXR1cm4gMDsKLSAgICBlbHNlIHJldHVybiAx
OwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHRoaXMgKj0gbiwgdGhpcyA+PSAwLCAxIDwgbiA8IERW
Ci0gIGZ1bmN0aW9uIGJucERNdWx0aXBseShuKSB7Ci0gICAgdGhpc1t0aGlzLnRdID0gdGhpcy5h
bSgwLG4tMSx0aGlzLDAsMCx0aGlzLnQpOwotICAgICsrdGhpcy50OwotICAgIHRoaXMuY2xhbXAo
KTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSB0aGlzICs9IG4gPDwgdyB3b3JkcywgdGhpcyA+PSAw
Ci0gIGZ1bmN0aW9uIGJucERBZGRPZmZzZXQobix3KSB7Ci0gICAgaWYobiA9PSAwKSByZXR1cm47
Ci0gICAgd2hpbGUodGhpcy50IDw9IHcpIHRoaXNbdGhpcy50KytdID0gMDsKLSAgICB0aGlzW3dd
ICs9IG47Ci0gICAgd2hpbGUodGhpc1t3XSA+PSB0aGlzLkRWKSB7Ci0gICAgICB0aGlzW3ddIC09
IHRoaXMuRFY7Ci0gICAgICBpZigrK3cgPj0gdGhpcy50KSB0aGlzW3RoaXMudCsrXSA9IDA7Ci0g
ICAgICArK3RoaXNbd107Ci0gICAgfQotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIGNvbnZlcnQgdG8g
cmFkaXggc3RyaW5nCi0gIGZ1bmN0aW9uIGJucFRvUmFkaXgoYikgewotICAgIGlmKGIgPT0gbnVs
bCkgYiA9IDEwOwotICAgIGlmKHRoaXMuc2lnbnVtKCkgPT0gMCB8fCBiIDwgMiB8fCBiID4gMzYp
IHJldHVybiAiMCI7Ci0gICAgdmFyIGNzID0gdGhpcy5jaHVua1NpemUoYik7Ci0gICAgdmFyIGEg
PSBNYXRoLnBvdyhiLGNzKTsKLSAgICB2YXIgZCA9IG5idihhKSwgeSA9IG5iaSgpLCB6ID0gbmJp
KCksIHIgPSAiIjsKLSAgICB0aGlzLmRpdlJlbVRvKGQseSx6KTsKLSAgICB3aGlsZSh5LnNpZ251
bSgpID4gMCkgewotICAgICAgciA9IChhK3ouaW50VmFsdWUoKSkudG9TdHJpbmcoYikuc3Vic3Ry
KDEpICsgcjsKLSAgICAgIHkuZGl2UmVtVG8oZCx5LHopOwotICAgIH0KLSAgICByZXR1cm4gei5p
bnRWYWx1ZSgpLnRvU3RyaW5nKGIpICsgcjsKLSAgfQotICAvLyAocHVibGljKSByZXR1cm4gdmFs
dWUgYXMgaW50ZWdlcgotICBmdW5jdGlvbiBibkludFZhbHVlKCkgewotICAgIGlmKHRoaXMucyA8
IDApIHsKLSAgICAgIGlmKHRoaXMudCA9PSAxKSByZXR1cm4gdGhpc1swXS10aGlzLkRWOwotICAg
ICAgZWxzZSBpZih0aGlzLnQgPT0gMCkgcmV0dXJuIC0xOwotICAgIH0KLSAgICBlbHNlIGlmKHRo
aXMudCA9PSAxKSByZXR1cm4gdGhpc1swXTsKLSAgICBlbHNlIGlmKHRoaXMudCA9PSAwKSByZXR1
cm4gMDsKLSAgICAvLyBhc3N1bWVzIDE2IDwgREIgPCAzMgotICAgIHJldHVybiAoKHRoaXNbMV0m
KCgxPDwoMzItdGhpcy5EQikpLTEpKTw8dGhpcy5EQil8dGhpc1swXTsKLSAgfQotICAvLyAocHJv
dGVjdGVkKSByID0gdGhpcyArIGEKLSAgZnVuY3Rpb24gYm5wQWRkVG8oYSxyKSB7Ci0gICAgdmFy
IGkgPSAwLCBjID0gMCwgbSA9IE1hdGgubWluKGEudCx0aGlzLnQpOwotICAgIHdoaWxlKGkgPCBt
KSB7Ci0gICAgICBjICs9IHRoaXNbaV0rYVtpXTsKLSAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsK
LSAgICAgIGMgPj49IHRoaXMuREI7Ci0gICAgfQotICAgIGlmKGEudCA8IHRoaXMudCkgewotICAg
ICAgYyArPSBhLnM7Ci0gICAgICB3aGlsZShpIDwgdGhpcy50KSB7Ci0gICAgICAgIGMgKz0gdGhp
c1tpXTsKLSAgICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRC
OwotICAgICAgfQotICAgICAgYyArPSB0aGlzLnM7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAg
YyArPSB0aGlzLnM7Ci0gICAgICB3aGlsZShpIDwgYS50KSB7Ci0gICAgICAgIGMgKz0gYVtpXTsK
LSAgICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRCOwotICAg
ICAgfQotICAgICAgYyArPSBhLnM7Ci0gICAgfQotICAgIHIucyA9IChjPDApPy0xOjA7Ci0gICAg
aWYoYyA+IDApIHJbaSsrXSA9IGM7Ci0gICAgZWxzZSBpZihjIDwgLTEpIHJbaSsrXSA9IHRoaXMu
RFYrYzsKLSAgICByLnQgPSBpOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICBCaWdJbnRlZ2VyLnBy
b3RvdHlwZS5mcm9tUmFkaXggPSBibnBGcm9tUmFkaXg7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBl
LmNodW5rU2l6ZSA9IGJucENodW5rU2l6ZTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuc2lnbnVt
ID0gYm5TaWdOdW07Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRNdWx0aXBseSA9IGJucERNdWx0
aXBseTsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZEFkZE9mZnNldCA9IGJucERBZGRPZmZzZXQ7
Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLnRvUmFkaXggPSBibnBUb1JhZGl4OwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5pbnRWYWx1ZSA9IGJuSW50VmFsdWU7Ci0gIEJpZ0ludGVnZXIucHJvdG90
eXBlLmFkZFRvID0gYm5wQWRkVG87Ci0gIC8vPT09PT09PSBlbmQganNibiA9PT09PT09Ci0gIC8v
IEVtc2NyaXB0ZW4gd3JhcHBlcgotICB2YXIgV3JhcHBlciA9IHsKLSAgICBhYnM6IGZ1bmN0aW9u
KGwsIGgpIHsKLSAgICAgIHZhciB4ID0gbmV3IGdvb2cubWF0aC5Mb25nKGwsIGgpOwotICAgICAg
dmFyIHJldDsKLSAgICAgIGlmICh4LmlzTmVnYXRpdmUoKSkgewotICAgICAgICByZXQgPSB4Lm5l
Z2F0ZSgpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0ID0geDsKLSAgICAgIH0KLSAgICAg
IEhFQVAzMlt0ZW1wRG91YmxlUHRyPj4yXSA9IHJldC5sb3dfOwotICAgICAgSEVBUDMyW3RlbXBE
b3VibGVQdHIrND4+Ml0gPSByZXQuaGlnaF87Ci0gICAgfSwKLSAgICBlbnN1cmVUZW1wczogZnVu
Y3Rpb24oKSB7Ci0gICAgICBpZiAoV3JhcHBlci5lbnN1cmVkVGVtcHMpIHJldHVybjsKLSAgICAg
IFdyYXBwZXIuZW5zdXJlZFRlbXBzID0gdHJ1ZTsKLSAgICAgIFdyYXBwZXIudHdvMzIgPSBuZXcg
QmlnSW50ZWdlcigpOwotICAgICAgV3JhcHBlci50d28zMi5mcm9tU3RyaW5nKCc0Mjk0OTY3Mjk2
JywgMTApOwotICAgICAgV3JhcHBlci50d282NCA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBX
cmFwcGVyLnR3bzY0LmZyb21TdHJpbmcoJzE4NDQ2NzQ0MDczNzA5NTUxNjE2JywgMTApOwotICAg
ICAgV3JhcHBlci50ZW1wMSA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBXcmFwcGVyLnRlbXAy
ID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICB9LAotICAgIGxoMmJpZ251bTogZnVuY3Rpb24obCwg
aCkgewotICAgICAgdmFyIGEgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgYS5mcm9tU3RyaW5n
KGgudG9TdHJpbmcoKSwgMTApOwotICAgICAgdmFyIGIgPSBuZXcgQmlnSW50ZWdlcigpOwotICAg
ICAgYS5tdWx0aXBseVRvKFdyYXBwZXIudHdvMzIsIGIpOwotICAgICAgdmFyIGMgPSBuZXcgQmln
SW50ZWdlcigpOwotICAgICAgYy5mcm9tU3RyaW5nKGwudG9TdHJpbmcoKSwgMTApOwotICAgICAg
dmFyIGQgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgYy5hZGRUbyhiLCBkKTsKLSAgICAgIHJl
dHVybiBkOwotICAgIH0sCi0gICAgc3RyaW5naWZ5OiBmdW5jdGlvbihsLCBoLCB1bnNpZ25lZCkg
ewotICAgICAgdmFyIHJldCA9IG5ldyBnb29nLm1hdGguTG9uZyhsLCBoKS50b1N0cmluZygpOwot
ICAgICAgaWYgKHVuc2lnbmVkICYmIHJldFswXSA9PSAnLScpIHsKLSAgICAgICAgLy8gdW5zaWdu
IHNsb3dseSB1c2luZyBqc2JuIGJpZ251bXMKLSAgICAgICAgV3JhcHBlci5lbnN1cmVUZW1wcygp
OwotICAgICAgICB2YXIgYmlnbnVtID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgICAgYmlnbnVt
LmZyb21TdHJpbmcocmV0LCAxMCk7Ci0gICAgICAgIHJldCA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0g
ICAgICAgIFdyYXBwZXIudHdvNjQuYWRkVG8oYmlnbnVtLCByZXQpOwotICAgICAgICByZXQgPSBy
ZXQudG9TdHJpbmcoMTApOwotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9LAotICAg
IGZyb21TdHJpbmc6IGZ1bmN0aW9uKHN0ciwgYmFzZSwgbWluLCBtYXgsIHVuc2lnbmVkKSB7Ci0g
ICAgICBXcmFwcGVyLmVuc3VyZVRlbXBzKCk7Ci0gICAgICB2YXIgYmlnbnVtID0gbmV3IEJpZ0lu
dGVnZXIoKTsKLSAgICAgIGJpZ251bS5mcm9tU3RyaW5nKHN0ciwgYmFzZSk7Ci0gICAgICB2YXIg
YmlnbWluID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGJpZ21pbi5mcm9tU3RyaW5nKG1pbiwg
MTApOwotICAgICAgdmFyIGJpZ21heCA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBiaWdtYXgu
ZnJvbVN0cmluZyhtYXgsIDEwKTsKLSAgICAgIGlmICh1bnNpZ25lZCAmJiBiaWdudW0uY29tcGFy
ZVRvKEJpZ0ludGVnZXIuWkVSTykgPCAwKSB7Ci0gICAgICAgIHZhciB0ZW1wID0gbmV3IEJpZ0lu
dGVnZXIoKTsKLSAgICAgICAgYmlnbnVtLmFkZFRvKFdyYXBwZXIudHdvNjQsIHRlbXApOwotICAg
ICAgICBiaWdudW0gPSB0ZW1wOwotICAgICAgfQotICAgICAgdmFyIGVycm9yID0gZmFsc2U7Ci0g
ICAgICBpZiAoYmlnbnVtLmNvbXBhcmVUbyhiaWdtaW4pIDwgMCkgewotICAgICAgICBiaWdudW0g
PSBiaWdtaW47Ci0gICAgICAgIGVycm9yID0gdHJ1ZTsKLSAgICAgIH0gZWxzZSBpZiAoYmlnbnVt
LmNvbXBhcmVUbyhiaWdtYXgpID4gMCkgewotICAgICAgICBiaWdudW0gPSBiaWdtYXg7Ci0gICAg
ICAgIGVycm9yID0gdHJ1ZTsKLSAgICAgIH0KLSAgICAgIHZhciByZXQgPSBnb29nLm1hdGguTG9u
Zy5mcm9tU3RyaW5nKGJpZ251bS50b1N0cmluZygpKTsgLy8gbWluLW1heCBjaGVja3Mgc2hvdWxk
IGhhdmUgY2xhbXBlZCB0aGlzIHRvIGEgcmFuZ2UgZ29vZy5tYXRoLkxvbmcgY2FuIGhhbmRsZSB3
ZWxsCi0gICAgICBIRUFQMzJbdGVtcERvdWJsZVB0cj4+Ml0gPSByZXQubG93XzsKLSAgICAgIEhF
QVAzMlt0ZW1wRG91YmxlUHRyKzQ+PjJdID0gcmV0LmhpZ2hfOwotICAgICAgaWYgKGVycm9yKSB0
aHJvdyAncmFuZ2UgZXJyb3InOwotICAgIH0KLSAgfTsKLSAgcmV0dXJuIFdyYXBwZXI7Ci19KSgp
OwotLy89PT09PT09IGVuZCBjbG9zdXJlIGk2NCBjb2RlID09PT09PT0KLS8vID09PSBBdXRvLWdl
bmVyYXRlZCBwb3N0YW1ibGUgc2V0dXAgZW50cnkgc3R1ZmYgPT09Ci1mdW5jdGlvbiBFeGl0U3Rh
dHVzKHN0YXR1cykgewotICB0aGlzLm5hbWUgPSAiRXhpdFN0YXR1cyI7Ci0gIHRoaXMubWVzc2Fn
ZSA9ICJQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCIgKyBzdGF0dXMgKyAiKSI7Ci0gIHRo
aXMuc3RhdHVzID0gc3RhdHVzOwotfTsKLUV4aXRTdGF0dXMucHJvdG90eXBlID0gbmV3IEVycm9y
KCk7Ci1FeGl0U3RhdHVzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEV4aXRTdGF0dXM7Ci12YXIg
aW5pdGlhbFN0YWNrVG9wOwotdmFyIHByZWxvYWRTdGFydFRpbWUgPSBudWxsOwotTW9kdWxlWydj
YWxsTWFpbiddID0gTW9kdWxlLmNhbGxNYWluID0gZnVuY3Rpb24gY2FsbE1haW4oYXJncykgewot
ICBhc3NlcnQocnVuRGVwZW5kZW5jaWVzID09IDAsICdjYW5ub3QgY2FsbCBtYWluIHdoZW4gYXN5
bmMgZGVwZW5kZW5jaWVzIHJlbWFpbiEgKGxpc3RlbiBvbiBfX0FUTUFJTl9fKScpOwotICBhc3Nl
cnQoX19BVFBSRVJVTl9fLmxlbmd0aCA9PSAwLCAnY2Fubm90IGNhbGwgbWFpbiB3aGVuIHByZVJ1
biBmdW5jdGlvbnMgcmVtYWluIHRvIGJlIGNhbGxlZCcpOwotICBhcmdzID0gYXJncyB8fCBbXTsK
LSAgaWYgKEVOVklST05NRU5UX0lTX1dFQiAmJiBwcmVsb2FkU3RhcnRUaW1lICE9PSBudWxsKSB7
Ci0gICAgLy9Nb2R1bGUucHJpbnRFcnIoJ3ByZWxvYWQgdGltZTogJyArIChEYXRlLm5vdygpIC0g
cHJlbG9hZFN0YXJ0VGltZSkgKyAnIG1zJyk7Ci0gIH0KLSAgZW5zdXJlSW5pdFJ1bnRpbWUoKTsK
LSAgdmFyIGFyZ2MgPSBhcmdzLmxlbmd0aCsxOwotICBmdW5jdGlvbiBwYWQoKSB7Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCA0LTE7IGkrKykgewotICAgICAgYXJndi5wdXNoKDApOwotICAgIH0K
LSAgfQotICB2YXIgYXJndiA9IFthbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcoIi9iaW4vdGhp
cy5wcm9ncmFtIiksICdpOCcsIEFMTE9DX05PUk1BTCkgXTsKLSAgcGFkKCk7Ci0gIGZvciAodmFy
IGkgPSAwOyBpIDwgYXJnYy0xOyBpID0gaSArIDEpIHsKLSAgICBhcmd2LnB1c2goYWxsb2NhdGUo
aW50QXJyYXlGcm9tU3RyaW5nKGFyZ3NbaV0pLCAnaTgnLCBBTExPQ19OT1JNQUwpKTsKLSAgICBw
YWQoKTsKLSAgfQotICBhcmd2LnB1c2goMCk7Ci0gIGFyZ3YgPSBhbGxvY2F0ZShhcmd2LCAnaTMy
JywgQUxMT0NfTk9STUFMKTsKLSAgaW5pdGlhbFN0YWNrVG9wID0gU1RBQ0tUT1A7Ci0gIHRyeSB7
Ci0gICAgdmFyIHJldCA9IE1vZHVsZVsnX21haW4nXShhcmdjLCBhcmd2LCAwKTsKLSAgICAvLyBp
ZiB3ZSdyZSBub3QgcnVubmluZyBhbiBldmVudGVkIG1haW4gbG9vcCwgaXQncyB0aW1lIHRvIGV4
aXQKLSAgICBpZiAoIU1vZHVsZVsnbm9FeGl0UnVudGltZSddKSB7Ci0gICAgICBleGl0KHJldCk7
Ci0gICAgfQotICB9Ci0gIGNhdGNoKGUpIHsKLSAgICBpZiAoZSBpbnN0YW5jZW9mIEV4aXRTdGF0
dXMpIHsKLSAgICAgIC8vIGV4aXQoKSB0aHJvd3MgdGhpcyBvbmNlIGl0J3MgZG9uZSB0byBtYWtl
IHN1cmUgZXhlY3V0aW9uCi0gICAgICAvLyBoYXMgYmVlbiBzdG9wcGVkIGNvbXBsZXRlbHkKLSAg
ICAgIHJldHVybjsKLSAgICB9IGVsc2UgaWYgKGUgPT0gJ1NpbXVsYXRlSW5maW5pdGVMb29wJykg
ewotICAgICAgLy8gcnVubmluZyBhbiBldmVudGVkIG1haW4gbG9vcCwgZG9uJ3QgaW1tZWRpYXRl
bHkgZXhpdAotICAgICAgTW9kdWxlWydub0V4aXRSdW50aW1lJ10gPSB0cnVlOwotICAgICAgcmV0
dXJuOwotICAgIH0gZWxzZSB7Ci0gICAgICB0aHJvdyBlOwotICAgIH0KLSAgfQotfQotZnVuY3Rp
b24gcnVuKGFyZ3MpIHsKLSAgYXJncyA9IGFyZ3MgfHwgTW9kdWxlWydhcmd1bWVudHMnXTsKLSAg
aWYgKHByZWxvYWRTdGFydFRpbWUgPT09IG51bGwpIHByZWxvYWRTdGFydFRpbWUgPSBEYXRlLm5v
dygpOwotICBpZiAocnVuRGVwZW5kZW5jaWVzID4gMCkgewotICAgIC8vTW9kdWxlLnByaW50RXJy
KCdydW4oKSBjYWxsZWQsIGJ1dCBkZXBlbmRlbmNpZXMgcmVtYWluLCBzbyBub3QgcnVubmluZycp
OwotICAgIHJldHVybjsKLSAgfQotICBwcmVSdW4oKTsKLSAgaWYgKHJ1bkRlcGVuZGVuY2llcyA+
IDApIHsKLSAgICAvLyBhIHByZVJ1biBhZGRlZCBhIGRlcGVuZGVuY3ksIHJ1biB3aWxsIGJlIGNh
bGxlZCBsYXRlcgotICAgIHJldHVybjsKLSAgfQotICBmdW5jdGlvbiBkb1J1bigpIHsKLSAgICBl
bnN1cmVJbml0UnVudGltZSgpOwotICAgIHByZU1haW4oKTsKLSAgICBjYWxsZWRSdW4gPSB0cnVl
OwotICAgIGlmIChNb2R1bGVbJ19tYWluJ10gJiYgc2hvdWxkUnVuTm93KSB7Ci0gICAgICBNb2R1
bGVbJ2NhbGxNYWluJ10oYXJncyk7Ci0gICAgfQotICAgIHBvc3RSdW4oKTsKLSAgfQotICBpZiAo
TW9kdWxlWydzZXRTdGF0dXMnXSkgewotICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10oJ1J1bm5pbmcu
Li4nKTsKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKLSAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXSgnJyk7Ci0gICAgICB9LCAxKTsK
LSAgICAgIGlmICghQUJPUlQpIGRvUnVuKCk7Ci0gICAgfSwgMSk7Ci0gIH0gZWxzZSB7Ci0gICAg
ZG9SdW4oKTsKLSAgfQotfQotTW9kdWxlWydydW4nXSA9IE1vZHVsZS5ydW4gPSBydW47Ci1mdW5j
dGlvbiBleGl0KHN0YXR1cykgewotICBBQk9SVCA9IHRydWU7Ci0gIEVYSVRTVEFUVVMgPSBzdGF0
dXM7Ci0gIFNUQUNLVE9QID0gaW5pdGlhbFN0YWNrVG9wOwotICAvLyBleGl0IHRoZSBydW50aW1l
Ci0gIGV4aXRSdW50aW1lKCk7Ci0gIC8vIHRocm93IGFuIGV4Y2VwdGlvbiB0byBoYWx0IHRoZSBj
dXJyZW50IGV4ZWN1dGlvbgotICB0aHJvdyBuZXcgRXhpdFN0YXR1cyhzdGF0dXMpOwotfQotTW9k
dWxlWydleGl0J10gPSBNb2R1bGUuZXhpdCA9IGV4aXQ7Ci1mdW5jdGlvbiBhYm9ydCh0ZXh0KSB7
Ci0gIGlmICh0ZXh0KSB7Ci0gICAgTW9kdWxlLnByaW50KHRleHQpOwotICAgIE1vZHVsZS5wcmlu
dEVycih0ZXh0KTsKLSAgfQotICBBQk9SVCA9IHRydWU7Ci0gIEVYSVRTVEFUVVMgPSAxOwotICB0
aHJvdyAnYWJvcnQoKSBhdCAnICsgKG5ldyBFcnJvcigpLnN0YWNrKTsKLX0KLU1vZHVsZVsnYWJv
cnQnXSA9IE1vZHVsZS5hYm9ydCA9IGFib3J0OwotLy8ge3tQUkVfUlVOX0FERElUSU9OU319Ci1p
ZiAoTW9kdWxlWydwcmVJbml0J10pIHsKLSAgaWYgKHR5cGVvZiBNb2R1bGVbJ3ByZUluaXQnXSA9
PSAnZnVuY3Rpb24nKSBNb2R1bGVbJ3ByZUluaXQnXSA9IFtNb2R1bGVbJ3ByZUluaXQnXV07Ci0g
IHdoaWxlIChNb2R1bGVbJ3ByZUluaXQnXS5sZW5ndGggPiAwKSB7Ci0gICAgTW9kdWxlWydwcmVJ
bml0J10ucG9wKCkoKTsKLSAgfQotfQotLy8gc2hvdWxkUnVuTm93IHJlZmVycyB0byBjYWxsaW5n
IG1haW4oKSwgbm90IHJ1bigpLgotdmFyIHNob3VsZFJ1bk5vdyA9IHRydWU7Ci1pZiAoTW9kdWxl
Wydub0luaXRpYWxSdW4nXSkgewotICBzaG91bGRSdW5Ob3cgPSBmYWxzZTsKLX0KLXJ1bigpOwot
Ly8ge3tQT1NUX1JVTl9BRERJVElPTlN9fQotLy8ge3tNT0RVTEVfQURESVRJT05TfX0KSW5kZXg6
IExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctYWRkLW5vdC1udW1iZXIuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RmZy1hZGQtbm90LW51bWJlci5q
cwkocmV2aXNpb24gMTYyOTYxKQorKysgTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RmZy1h
ZGQtbm90LW51bWJlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYgQEAKKy8vIFRoaXMg
dGVzdCB3b24ndCBnZXQgaW50byB0aGUgRlRMIGN1cnJlbnRseSwgc2luY2UgdGhlIGZvbygpIGZ1
bmN0aW9uIGp1c3QgZXhpdHMgYSBsb3QuCisvL0Agbm9GVExSdW5MYXlvdXRUZXN0CisKIGRlc2Ny
aXB0aW9uKAogIlRlc3RzIHRoYXQgYWRkaW5nIHRoaW5ncyB0aGF0IGFyZW4ndCBudW1iZXJzIHVz
aW5nICsrIGRvZXMgbm90IGNyYXNoIG9yIGdlbmVyYXRlIGJvZ3VzIGNvZGUuIgogKTsKSW5kZXg6
IExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9sYXJnZS1leHByZXNzaW9ucy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvbGFyZ2UtZXhwcmVzc2lvbnMuanMJ
KHJldmlzaW9uIDE2Mjk2MSkKKysrIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9sYXJnZS1l
eHByZXNzaW9ucy5qcwkod29ya2luZyBjb3B5KQpAQCAtMzAsNSArMzAsNCBAQCBmdW5jdGlvbiBy
ZXBlYXRlZFN0cmluZyh2YWx1ZSwgY291bnQpCiAKIHNob3VsZEJlKCdldmFsKHJlcGVhdGVkRXhw
cmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwKSknLCAncmVwZWF0ZWRTdHJpbmcoImEiLCAxMDAp
Jyk7CiBzaG91bGRCZSgnZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEw
MDApKScsICdyZXBlYXRlZFN0cmluZygiYSIsIDEwMDApJyk7Ci1zaG91bGRCZSgnZXZhbChyZXBl
YXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMDAwKSknLCAncmVwZWF0ZWRTdHJpbmco
ImEiLCAxMDAwMCknKTsKIHNob3VsZFRocm93KCdldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0
dGVyQSIsICIrIiwgMTAwMDAwKSknKTsK
</data>
<flag name="review"
          id="246520"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>